11334888851595913879582133454676836696577866006820860590442377063465114791456112471098137450680710568400361478508291223018182578789881329578969001513928722766240570011253848208377730468748998926502865263000647785305267770716083924657388761378300505986819327082379245639504139907797197517361167270990093626644917616168912632236963909049703371915181261302739038653851503192810666675103580184208376744913233192071255311680048207320608884691855188539981492228230846006239439905382164869693471377857042929083362144105212194002429731774789380519666725242991164789081712572648850962893280701833706656976968866267233275152391686015775924550806805541192098131987968898404146287132018158523030142787302544788457553917602609667962063594564830875844688482173454959742030637038716090513180114447325997203924155248537905169236260979668439293376221517000285988439427527365599405353260789178392656433479279912612599050025541392305740496097607855723740019800803573308863823733787789665346401912758520697627625479464080322424833941829744992122586770059576072631814055833725199281525211434350359136425222601896316603763757797373569697034531395704104210835765447530371251926347302307195132523413894715568611712323687868761744790039056930137699366295451114434992004478294361671827829298879261183130718082897422309367726116955235126865117402502628341199880195603516063687620515918941386767642558740529764324294892531928759667365563154769924641542838768971401096775482701059610261493017637529232384049302818812341098039954718583374808464992579306653668398635906554942605148806138231555102748968668002600588431668596583202485251446367832973696822559867943060371096055328491670229856731227696330509505822952842384913402281961505074488493296836305287158951942566154762720091633119946335866040065685804263967362162567782686681434175689338534260843412839998344445165141848332787935599049998380531280299243110522472908561643549065205849429350379816321610492270148055512530723487603576966646339666539690146001432075620174199067990220491290552480907701127844520150947960722861374312400709016177577638813778387266664774024536781996359767567016794612767984135135793433309874853833081453842944616423252949383891602907964416237391763638949180907769925155898003998916096286364369884444042611768387503438231639661980483176778979061733960786969905292571790297348747989261169251229123693490341364634485248467915572609872272458741189821848152954342761725605035423596680377032104175389134892298059004001407967414754007425409333602179195226615016674894949265836858666896388935348588759131704641795290744480900550814159317582304334981088710686731497767789239296219747733627274464417194301420404151169196687889525246456684005165039561234740270380446845032371052977398377177926246291685962141244379907061009299321792071470239522857515299095487038352926255768406811916301685871764292170315566571360775064245854810604027064034584815127821511625008711574958336224472604538524911173689580225279058324981336895915509231684418426962934768914237814648473491183754203199837196408964034089262961433759510656753601773509212716916447574246733228573776880343263510796054953860636338133227537872421098401480477160352198944398772762257808059474213891243706683814999499101048260062789623654627931178477963906488632840601865245918363420295980546526655364821093912658629606479086320840391324747347936089193665676709969001761687375648451300615938264699049600802841304632730329365684443594929480499388171989953301426163619988921643639211431096608372270070151491603537878561013954849923595459492652544054594210211696192046637967426422722140412025213671313079202325876865458344187268157554752884449604708661149826355754405455592473117077252137192158101920504707989161218039878031346550448993356674059597574353932560635294298629500334427664058954794754501466082643423532181437061614553139240850997934513597171308771905640419613735498730067207811066573082225856059605673256193697277971566270271490317488401030254181209658206876334091035324005943983062168760350697274231695263795837468252351155152223768798108804756758532857859590619490029408060634870193452696193786284303475403745194948626835486541076513667913663649779291614642484620439454713774931402511572711592233008239554086113484550774429527217293935361104722116472385877333779786841760850341506320355905880267793808078630550519660571631174390838537076493688270583544533526114636962665856197212377471376625439692948983891612998516431775275582472073224103485947401148395674002398385051007611093281302919166721864149598343895266999725922490373177705671851386302546675873543200179973062365988260218549693076126587283243792651800357627505874458583631021172803874837563252045389148041936904641127704497555330069804940309215760005224619810099752091632014526187694683166136852930668456855893279047001262390636473771127423575216326678677125909932223473414954294182336300194978382512267117129536735226405464126083194822784416094580769147798862212020495284399552295726722223004366325311328282578807917663809028848428103884088104999903465410471190574497316311915564696232920511279585918064973645782687522688753688381867855273436111098761163143477505641363375609909584853881612913953460304267251981557211869728140302416900640627633456769908411807088739168796215503992641617509462683688501794870667682686651914238418072934662936784837126898088885435003429168845954368396839028997899190880110655274391669459824278943676902449061828195351309002749107709256849429793442825628882017631198770906042293322080419322954451039501599833989339155212614759843689068521243422134366422450799654484620504480322126397912203824205248910923638812668386243620154217462387186835081029500609379215556234926674529086631709097405747550049089253684328337517694159156472204468284449519277450696006755882659276299445039277234635285642618951091904060865247849414089648845040539883324688511978250550533312814395111089296513478781472473925570002798113547712944295455554167330091840137570530223185975543232029393797669238133546751649188019657778617308711503690874334729349615160491273793574165119919179039386811352225522174245927159273446905980609359590403261413632313123217709902924672255838215134199788147485796491267889572558296113759912540107094662152382563282259394581434992413859480662804570606792877367806446779242140580568031673843631251364556728437594827740742041815403693559305980934566912758214584893437604310802781638185007251351246857121864044864379819550034433190165590167541926628148109759768219298830244907176817213393437666504250035690562265317087496555596593593979979436530643789228920073333064338134370480572733308571797841469605509365216068381746128027691906828638201088420593612897293974134884998342784153660205618058088061923429093278266568071269012003467553084143538915105216129096411086240317730690882253251742488359529544148686779338013781214057486787179860426855827325757017199403976410269228541392745284616411308864834487933093241142000114984821270494816054388913322005155437538655722191383751862060956943757410274827905569137958759151010872095570290297005164927542124730140085066814928185192022148111445386781117041645696047036393810393343807338728580807844169489286376596948206153929099492819239598179083875843930777370257825740411575985737398922623067508090183792826481997729859322051987304923713944097917616962982491600706665450646024989654129191706672398503962817729286981079402090503868683002992534413462728382024298359428965055768520610225376269565968750998271240528027124013440631466907671562258818080613945078003858429940095290947822315918207319871765724263911933241188668446998603838959966862292388749577576309200077267819992154810010274617467810033644310928622347783141156785177214957632746869848237301392470419281208429376024136928575480625281425721661665899031028377482163078449884332122557868795864736638757625592048138786393481537808069633490608977796973844957062843727286154122998041926285728623663295656755557520405632997550077193627258615283026146100771995179435291174774408671663967663944713225056523939954837001775524063720152932718599055151365278696803541874565019578508022329183990138106714462833675701811314777421707438844691039042126701570590499632641539176619648443779425256476628009303200077442568124893595128983230636172544739715678723054859544999368138091988748106991852191818319223541131806714995044819196868895119669632521638447800701094178094684998006620181700766540397622714631810023348030344916719803198283552855783423743045271796159364152630300908633324968235357643860581191141356727949584439871291297104302142399729087929347460240687712927677484458701229428480166934102669135568007737188001322993969809197146808662155544904128113559433201992918495377128152275046164689769212242910930224234112403412971505898321229119274637187675208554871043818658315825893462012008740995481572864958299399575633768929080984306123524613524656927248885415528412785625019919074481717031031794218986592466733883339533974931415463950381864780024859839199841246665671636876727193485159510198455646401810081305320703967471515273043663566322370004346603263264072740119936583740607681194397639523292298867207732443539246870256003307888212608953761889046317742151972247916027132644634135129670115366326066448715041218146006471447279813638320860395651045103391023726526893539130177245104346302887499356396767721840130586593232898140654712899723291514277821988284139421050904647742769582899306314575446722393996479014794076550141075461405134075485111086135705000117671479519865114891348037819286399149621380070225576446096021115567369310548426849026414322740270934303126309723892306363067061889849752378860451199576320684807887065338154345275119070657515073952723148252847728701569013770631239658975657661229163254290616174224801250037576805739412809848604990905778709035316727798981282717480137434401709709496788309651204987443584918184090657571003250392094230647063971037818099229620443654853545061201041087681516323011221212070186518323002710642504061545709271706577111131310640101791907232797128419046219533949971032965314442345888977167948663709838731605402729196329035058074541989914367872309318097217087521499510752333513713707003512960837813403122165721180001574746879917746580029819423572737661840756534793397190336523251943693743659844613979595296597496326392867448348495292170966621037240534266760926371985433548806741892985566919539905370130514779810045664467701462906966658484475381413048647551814691257180405486799564575911895439292481101881776481909506502187278467013047203088754618893926869514687503257601086129465033448594435086757289000461902541870671150938771928051951994372407407968572334316918791756683085024098791113917091716002888044153025628576108615366231052963849632841521199927986100561246179702258941308093817946422733158224587709839224816602539517102490082219098962502228420546211966573266260157756979992693907732905772635936933558738449422257095575001114278580211826425937299757777134723977062066830092329067076404069975782946285174565666914386132412100095464539373269267305653617149046998991157757883277746640114051506675823531322931561449742234578469881600461713251413833925601596745237720082824712438462775689312864146421722753806244945568416160725978276019915239833420085526431434764400402030722811495199505933152825610560317787908201886020651603053259578613197458432870388841185222784945206525870950413586992333512259275064408886990220516836100798910341253871871007659679267552549721354447646773616803654283272181306814816149799418335911671224915990084555115235303010117171325370747437448606911929386940024324936722846105126370671634351133535327897894903012191499218811147167382517873154866637666265997867269360985717452123195070373066688394570966124338446002085943651964141146401660385265940767683935095466363898510181259178110508732699580801540534452589309893262637311104392936165591339790743265370285709560990282048952983915221957948598524768924487087108262416430551781671377255994245939061043687446091802871534728922031528906381395401516366646270185729921251012765553067244362095991915454669098511946141751099112187898374059212482358758280174397612014304785050244170740092855836663571134921965877860261258986780311574805753891768176726371846845704560048289342891799756055502452586881479884651385724874039893638952897623190992278102839795624479937520501240694454692609926277946364667551340168882901551699257536046001613683436401201948181075068193067029450385531832617648652316759610597938524011576687332403723528486674032840315562298194102178062235051508027079842942329805361107268484104054122176401138016218762205196581247581681083400673082708380691732426942376559780951614163264307901970398241176534917479781666072593352532947002932381867147436318799955751847031640747181135770949015288165167303818409520668962992502143630204323470952668067198115650777807880564734932394224819034116912887557868063700850536333267021818863699958885485175710604997299228492842058546524344488443930224249761790925974868573153951060829543672022922047886308871714931160720943799266280472008272848723043885956024799347123339521386511165247693159028088733110997832905387542136021424180642679430710108786573425934691580671447414713791477142468520584936254770360876053199628605599472403899372963395130222542203303667638351676314851444881075691345718698026547383372402722362713471744200416711714686263708481549841683778652743137861993723686172457806854823605929987893666631153495833949097355494950994088748477642218569351659860619671790013512321524582913845592157856859716147420799756247848823074432096703428788361188300322689510256873659979937824709719907930710466561358899657424579066122801322010319417630583470595329130390504926293126480396178325646993267767788097815738634426775903696293682957261999602713196256325751101916543256272111913688054918333946592910055947823653800603746512262964900990192791922552320578906442458044742460483910032983331385129323434588426258426019655196874459268955201072305064698227885137123553005974085632089069286678508370941339394777790672643573880514680879801765026811098405792355114978106765866475426112989091803152356422825012044653450999595527620559962307326652620833032586831693430860771278686354878034899814737976628112772323702949455072888066357437759216861703108340082506585950267114298448860730757894171401204175920102068921822153356958540366831975920481731473930242841773808382399210767856353280635728631701765217642803475333760214649617855890480633906108723074906726597157440640207319466723686573819469402209378079276979546180732221127499949169764504967141579552382654991649318118991277144066451836674745317882408985286334135192283536189593359897461128305064472743880825237610138461595391985305315801121671395799235008316345484943839060763445062393647638327352107426317431515197889354437951000544777061110751057301861029954416678218902877997199559861623916124339734430188243645747531838281941328759108527132191307891523547871932895198855059322615198228050981680669870237945158792410389288759544166435297362720447580695224590791936202041763022766824167839893213691129845805729956281531486863549427421083233697519080148208973384408614934267330964587095327241104010579427371989415994559121907031122921612707956570053101266539640762446695972845797999399074114554923965129250269827955114757996297377461207716011265738425082740564395133334881958055478657675168138475541383642002421055661583894702023832445742279550590188006321937587373659562211369075994183106183295607202169011983529930088360768947721608003244271676601321609625852195214058216217994842053928948302300094760401987311068972848590970064829593231604119307881437850091764980506397546129802636896753852680288851655853543341316050728787668047137125311258871947495528527546370392678871259781684759069730030529210765004724911751402967376662958383195000814176843269714661185182404040778987078752822428608560830684421422155214427597653270355503247257860445252223050231427489225134542191697770914082936011360364290547632305085797303692682709463519809738625183109843005650874373239929459574544421099585704313639498037075423732572697049679245191369457567014532012556956890197081817999746736760533138855836703053693587382064215532295450509134079900527929684563953531804978026282686307436927500208690168134717344832953092997302671578955416838141430336489578665218521528777606450426294322061111470576659001188596251684664616341713296878476042863445187959489349326913322505966492264719597627483150941586447099316385715812421547907346316164241517752376123169469197942809594428345718693619755872908347690823822682955090706358235507697033974538674308164929892779671102696895081651849083273276796658176848013813211906441285615159309074488122114979009385668333678386441945789426555720971382311443098203939913816994039510504080743237102925677397554286794245450214029905753153782558158712245608007205107708667014670642184130001628716044634445470655284908583896138875131079924187544402803601139513438306020014140379127970878686669655789502479650723941895936945245758726917524452568041224398422615780050382797122135682531560813198220672928376632216925794007880471801007730440646757486699827894759363388641387582570547873382747400225435959098777778401120894473423526820566937068509051458835618181764945733727056501830486715361323642423920438192959004525992927088471444019391179090297228137938598483841575246478409044008458094031093431962050033188722843173495504231083050913871755806271714427367683183115677745589269368098360331499789706383719933009519500204606665468827975986814347549786314915573739675564210880510122059089746668350743257823671185406771569566765946283823404989769473910154948529014500252474288853014351161567118809196396773711576879839992015673749766007082887991820282294626748567981572064851316302801824060270314149994046328426286258611572667801202400389468672111683570839916489948823963276433219881787006534982669212498573627201629648510558970680561509291593998114096530481722329224674597591326591044455824248232341923266346341501738590864084422296726360044608403046944652698736628332770934759480271657275007126170746356507181483157680469053394207245117463096445599572439137051476599418006528276346514046306854936841841626275511905851563222712839092011009998997947198687101162149696619905562947306233310881407908252898593351122544934731870282797123780975225314525120533675048499904038609610899671885857096815098681266393470446263305764316651810805898838884514732969936111204444510543713185290966425576249643754687238888081332656016692022566262956872801675594255733171672700229968515540566417183845887088543552127029693429403748938756917471135847236838052441672103142846236970824946259837746066996670873258453512838554169737480636939388736156785419988437971479498211425411364909005667859881176741184871325233205944361014707858334732768461473058742641022737265144205996984114202023989190461538747300189630967351144231054768193924126032436035251447775703557201483790431814011331996358711319514429776480987268995649137207404072408412479982982507477525731562051281762358806461648427388516804967582638104695664558586285996283447629250184859270718230274686209228788804584545763807694419332582447619210671123572224687662767375345221403305023310571507674730242715176668799621205526814107593553986806595203577113438692159540028419462245226341566165381879861381978384500582369691667810402918876146294666338884184835624561804864660146479432464288540631504831007758697563330898225523950304867936198692913194393359228425931637827164216931246196112130287092053008537759157642536644043470835633324988324129871229572653243438996571392936080391675817681680936797960713792882387443657028912936206121902113179746102690660072219435372926131419150019687056044175189680994375246910162743410676873654336551526959178748436023890702191711857561017457019836582411962985669603540990778813741736425486143245984769737667449793716011891940347768813059921782162288905072184945435264332970768450356656755447413580400149836523772891033574217572497080728508183892365156997662898199773818834312409590341215969372068182410595714108387528852856793992712037996942427868749896977321005406166588117445103679504940435621144496380298918201083818600310018559823384668958453841830939893720592954732579095349116907795991600524637551568544559464731082126174704922378811075863470644449218376999408912336729892471026827470276489566808834848454681689868633448820028803911430224043212154971906927286649665531598101135775382781953958829543731456529904417601769864517815702016295655569306675997109467170902333872996701607234690673499108680788771403555734649893566568181392937407556680590381743547192646627526388031132952639614670815047857349833420598372481617486832475686385326623021394524771299070758588612192853113458289254977645650420690496582978323844153662929965839012134699579267154788740665792935782301425028099712586935306168715680989087940138196012307651911677503459256637233163601428330607156652843549834773345537630218369818267822740796060317561229084460440898072031360440904908920722862931308108333097015474550686754807833127309866502207976160296156798094035650396763342630682458075369908048010809103161306092767883133116222634827437041237696404892171205480369260171305979812900880759817382082006397809077918575187801269633373826119870095291392050988239417194767589940805369509599522297973225092011827916970467712254449258709360046522223473516403982046568499277111479242726491171420869032564355438973850814456304771183331729434941715839412007045462757113602145806179034324276119821075832558727483548565228091749032323288766685779106465466582242369780119109589036311085851419628336610649605394319897114520184261670574129554120974126624256571024402316711847159702092219772503312335332652391163758127049505955364156880067716183551767197705452069792566013490770142122690357991071836908430182485241023247756317513145873261639058137925685296415561678309179435844131516603303349910407278284160644347356461294926601436133275539121443890011175593032957153940480042256684988340288230543364949742845403528485717036075681640852205063723470189354974768769585728746748573917783597022952392442055162078547504106875774728695968625865649624292893375006884050223510228983044533030246548403876559047529364647732689291777995897916603648811911920744571711892690937065329089090197393386619515803580418641084560330939911162265713232818994939582232047669589777067079748839004155142986890235553091333553567537527234279349196120500779063197179149434144456364681897890688912777094402964408917291412548182332553299282182149798175849344604122257200092115548296074132080605742655885366923063452724537296561503904665592825527349217704624997928844466722327724466032348685098590744875673131030421530872844071689994476447956899705706590220247361532423109166635448195078447840691613999358127492755141731533620759568834040488096992236248668856511843794148979057019270856568201210903085745581311602354122183898541824981249780354796157499695932434075237375054343022547516192458487471797362960640476633311237243951822189495802969481855238303330317358716334811766906163350886953396524350050839208764645857299929086711718230806002249567436626101048566092909609395066146492449151911148487770756381014577950269400169623777603616341419986327688599608751397631083628229089770744313645164382713095291634638315039143578184077236482897345592187134878119769986158339062939923466152227693818670688257864913145078973623298519079193728138417628953296894369036512500740336133586002576386130205528369482241212830283767502709014843541398405341022282149357759133826116622953335688489504137650929019357375658060689138810720882298183815891974105247288363611823584528486071527347440354360679427279805893309493637544829068310550966884936740290361032899750344153438297540597516028783033976359073425050659313175132048453327542632556458584833816059007088056858160465506822067019278346928204548032501692378987794412760255439333418922690090663535710511399913046459059687070961860351797169938511355768271478863446155826998077737127671232008652702051689798177927702284493744872737122207608855086810912270836972170246179515040039025575533958736622908441323393524345109563138867690088949115154883321874019074500577223823405419160895176163109826949510803139148486094611515575271764612875425740771879586356300966555800997481595338515764005512264057943837386002530915762426203852293300121580548624750587270560907631093758358814270147941545497126379273739989829755101231675434731371388583623188275722223563973159832753226457518426022526240465058452936292418717346440299185635520799521168361066039733801469018514793620333253718756693938199036911142940571535341349544983632724274477717467551986430864981926015829065523209548134515817293997722255429427404555751519544615835242879972987270163631170953919552320869472708171241911768927617108911186175905771859981456292313700396470678211240052792793102765629270665136263072181468912126318178689290899562131893918319495030179298526422649836805752138578317658691757810113892151986575237751963940951150744262543605469885656209164406128188350483492418802444495749201468496496686254699767076235223883096617130660508461430888168900048388631396473608231381714725380703488312700281126769188924659972020579087680869508360962878669121079064693982271061299123909474371998578089373126333018314172668384280223210242183059746009966233556369969423693591936538371477191228002252649947099949541058642433447713667085826675796385233979022685370514475167955522294173561345817137986880645339952275590481642067658807520715466706653055443778409924587272355727870466459005434505576649989014914162893157202303395984504249608334626498875352407716629161182848863538435997636499636241166033431867964592153723881052468427910182453167399302229943449012037158653220988337056987324128350504768418066436598043366633368097535102748121018643578199008700508402722178410972658668907932693179446493034008251246078827971867200985188384162524268673109850034875244522237405612121167876787526116880901956782289491185815360838079202044435652741158313259343202455144146394919041522373522643522373459702301743223528731252509877971354270580569281030799193808091338272359567102022837613362361509764055405037299040454440103768911368350037373482857009233129580997068518791488639775171940210039291487884370922269263446954301554228311425972475346303896527325651999922191115810824161353449747287833523888196416935592359740484765913519788813348567583871741601282863359347396861885014424098455932690975390504503820809428862953941036964511658758815006906257099896958940062864834328951370180550663076584565110498958139177189266514000730335136340937622716004567273664241784705345310242522831051091275319731253444441289406970083296865344859757297213935467884673870859507809541850238352067428805924264171289420175951287656894529961344940011667151364638594785182522332842394815710980930065299630742330141129426639864022654353064966840418569075650677846561811696990803175569103421450073657692923140966444159252578949740397027839902828257883712327254208512221128363833345827492460809439617400487914029014586935330864134771833411455439155781325708603232881207594944000032270976591237406889013298355139488330981126786622647725526769482156575349293060452438301846934918025622093492936883905131248782587880574577639441020655156088329277582573362500893319471938653545479843441625542020100080214361699915370563084598214916768697352977148624778432518267428890518940537067091556774883250127357053377509405214139629355353472114844281439567409326168407262924381903937545196940314508714459201169227487135936622484696203495136659525145695679218607451825287326544901455267424805121950037629969258265813172663688485075778499039566258369755714107052836125426001841438733225154210866571133127953943214937306367177643212164358081452967731852931020328442958089929899559552815720170663935141654263684765249813152818071506709048833074947568281383597529479674815239787654914865801762096413514462207975104905807592687682480199315872085774534815963194940918962696560402190502748577542590611564399860602733031535004524022153304680501602760707080332483305925648275392757122629678121250110195342898641703885845571839742737324197943073170357258979648477691491167028513766267389407669685549743794745916931337786894580938418014813818137020533047967347339348668862719217310687934003722349576530092947708807023679105747103631981368489459110139245036595329776946947531247357873516351349883812312201581229470600006317316962906574674278967212778440563690551085101065306953633623390170494426530669810522531618016940472329457452116292925350721498447564007911114980655575242260088605651625370892393347024013624043701070973740719310290154651363850364063519273956672776099470819045259847130353207228014810450176946821190469550973100232517139905879375996473699356528969675409479843869797697588696135021295742392353234543879525821587052261198708200663691132974487830990278964579754886132043813703393037006265680509285911557346499379232819034555527331929307578397269501361577806003820363497911608430831850446226512772562017905749265544150652388828304825360178003116875995987415005316918901155807895516886981839601847835879526890305516890384604067361445191226994503322658538168778260071528581918872356960366508704692857809238512083460219183462753612179421137321561979766612528699227825347641832175630628967121929175063890629460405051724178087582410048882434164671555260318898333476795367386951366330543494186841400225405499786747816719471662830443095139069666316646097258155951171704164987929124872229856977559096554906429274245871793700126560037519939023345364555270003928950717235352596374238317742255381702759552773315968851919917392393596934508500599366634656706455836377016222656962028909235532933048243896761454486754834402910516933381309179143472273249505845191565679566708773725767800854202924435011418232861701566504578477388519906578364055641205992259833484236696486715225315074772432571952915529419750631278988230309912657894516217173849531103812095610270200516674564602181171749337829233185660244306027319393738408275232757386102519635817458449963133852332195672925639165861829084583304125090702561148503682085369441040199684415154797925370547727933294836161480486159133108776755781081492425247799737856375215592395150268823557623101595336052075182973756157695253091412581924047215508087023579850599743866552912764332715008444124676096286827708864250694911833758196139689062915038353307409047967566276573392430811992672176519684054387058306951494112142513516871964631610561577092097758750983397709731840179058134552001560891226160684029571254761148217714681113360044464233371296552008662470552500808084879482736985457024560473342709122891415953358234338366242732282512517865895874511118635594898582095971371338404704074913549479907627405689656133527498614120557990036149156873244774884349112771367273655024670026502338545564247087883796280154494507625998547605783372709752974919020635912388319640087014249524311624599698076968302297596225833109980815856174582477464057696301505814872579219514521732679954675111457024826624722256612480233178468293766841000890091185670923458168246111167699520463447133423761246486408424304021711936273790530295436916288237564784276043065266944434208878696881651606398559813424722368510869056263450792379407285259184731122200295807724285371564700722891973397110990585037214012067046931459318719753802430996328776552370776887993660833516052105446950983651206243461000172432178418167158180254467947239578078079095936342804210302093449669326309023021811225539231478200831149349096372150579443217342919264542039253308089766157070160821100339619715236230136876161223011889371166184343079172369245457630359205311644721446784983012373364338074313091030731908009030461042413995662509047891027969224741739974511402103234504329037268879062927206741008027061952277104674448726436605147816015759534764779994526942325318578572960333241669769621008991978123505233321600498562783606486079717374118004372861406382356115601570513211918174866148372524697321900370688750020604152295724261323131678619094096278183322200184409849665590417148011824607607924068045416357422995418436793037618535521347780895736702745994554037072685267404008195040417978818529291557228424913970865249852964816679638511056845907370029912836549631394685535582526849064840045980995677988131427395286826753992208072604998347867290559142446561838304601397831971690424973962211013293381126408533880581566967953495158069031550097891043769304626874183517959639512343510484203168965175499208427158742750313410957625030173807164459497379426198675466278055959332596664516160923259945602353531596077113945466791519372481804139473772182867996153062650412407144214152669322465664956244709732930620203749389329156294197907472023784848615406496959701127570194958852707530158229842343244200666151057875934319728479733553775173733061676603046273433959138004597432794794869784221500219994610851657426129438009794853923275198345155012957437975431088567781029388842612429696341912892411895524453288626477490620037822669384812101577416504984245895049360221189098327354298393839003306077239227562142390796930814140997984754765375491105958928251420805290103883952876155136409556709945893033425233211301344182172592282317608487265952071551312981134017295330045413449767560574593822280684081154803674589620045145012930892677677798805685171643878156170845679765137651084320466538978862391454429328089046154772790838573281284000962828101863219755788310342478298181369256561127860187744176368389942386076814910017569073897581301888645211808957725213978764878631413774295205367684760415948534344468440198958518340613672142397652644239579551181731824121150467532669239943863409556587878918986816505785801574462199244507177669087276296406550634617416219512030630681427282231502847535475576564374994511154857903998285453430170897198693747362095027672944610544551211890314475933278554942079747583647527224926866107560606341152028260553243013421328121529962969779671192200048616594936136486201624625881575147394905492558317468564335381343972780765418425819918191993410187082235734809089180497773538980629380709188489228957008401912445647273332202014567175678352122458092974085139728787555863977357765150738854443120087990209042166816930067484438054476576433052017639735721183218874774665027612670520744846302256369521466717459954572232127252787831354544559630959120266506816782296850618493749305290367887455717811990988789214479733892470734761146764468948081159930496519112435043601284962297721294573032926029117730261656222627141651930054693431537431921927918579291379774290667146639921620193367105894869138596594830490410624978164389933763536590990309911073028944625160468079874435473367318614283725494891909164612844242434930921013361473194589873974783355912412706388837044530724602567609355535925464926415817067484270568622335588466667021356787935803561306228674376038155146064179288276342254520597660258803267873800138125793918604377334903192014379761713247078792794441807864865953025684797496804054528692466250525431898140192913030814626950428747392633412741849620946680654724337934837819779171983912636299011910375564609377646527045653746742703492317824396398972368946705907416311779705268884824799758884901839152653077392657840081771732737464948953352295465615489165663224653972199671566235516523433984018191656917941402935610635435597615008658702206000041490161491824595484074750933907421957526080136291958597472684917938410479554723645629363211245085432363324670534409289657861496318905898487324410228786100455800921995942422683437465144733927176190824436045071061124487299929089043560665842971666433143944702443752554793848056390659081225378073389515913969697804660172470380650436839513516229614325309963441772406999662589708866965811070888195052440225328813476789568193694017570002083933231323014320725853527590474042339277069785394788932779203936333817523794488925853080302867335054107700381417546399634928128248686055148098290266988495248651955891614834563211399142754836442066380084980248804708287332228696009475620161024777499457354454647279578628228447871901077505289369076772114391279992438413161253426127837763872859630379082854718774694612459301838394579982755176608548449360799039099877862608810493285850749899961010842463077009281241311514202908215199502946959128619898744907940810616477288584413070039822486377900579160902022938022276753304634942045118903838254128217484009199099105198935664057691510809629158151333775009651819953429335537883048790869179846029340603525669805044927611002768803922890458628331731449812148750244382118299275918326169414889073088199347872884700739967295969937704633229702814179470127394918415561625990345187321405790377665316168557576913629493405461227249434543347296191739499588667987391148724348988368156519213689267159447436451767048495722097258791343594540979460035476192814520824687517144563021656649395668849490724638638649782003834571371321472438628653762039151188051599154737185703122872474218913236446126796845322683478694879716383740020325539328398338428733308045056143682416583360350560704058911739923113877746252601979437729732864585355902327514471711801873057606910499793679690398920047069831569336274086083047696736757507253259117644858656341423575061825475823189354270059034955518115983773074932462435710121026852957611741371569516433798012564708346456490216917020403164114891996397262710965991079593587205959767672013263911811685522052014119938513412291244984561947624859823754534327885903295825276402703130415070892808070641603335868009339328832151785436767053465752797515969786602759725728797727166814807384723889724690653729254751471437176451051104212524733514856648254993791909772535905319145351075020630291832524210650640716475215860690635071771559352759328063677131110625039257824633190441342522714552190997699499045351929385550153950802106409189793941598539401561643385315572766157113258790491566631583459715129586366584170049411011516344371078152935553346967876463112162996437611206198302036660821082134730777349528044136337888060482857928595628976784245092867660374316861993568522218687660030886709807126933578244351794360613969142880509208280652988978096261380943447934845350586134130765996831984105170617161389037882498800535950772608913971419404949444148265103959783078564597950779499688903828710027303938232917187892931720050054848159135915025195629802685188169038875962402978008793965000297314519106205162281311753444865120452509611654361555972394438134935090505249281051007860043231898477061181541802440193876711817045437559207438820390131065341648886104738194128049519370554977653253453570346071756758140299604927101695305061023546073335829783839399064991311394708517719301436205295692427630801884646839037019330301092148718736409386437625253975572403274970440816064794483171237335303142794267248432666286207259918701190489549967894275073054002543746665628867216824666873683626060867146633713154565338614547512840566165430223735340953229881685130286927946695967716228878225015710803201472581397034308664202579358087123588781491904238800022115307806782897690756103971566672368513889492306629933118568431677975869182050552330557635536429569773298070285011480478304934307429306142165718420121784734366368092188707648588210034770676268642181081273380213080332444251168337256405444342551871299476022621184103825654613591305349558094636843410346009788132058974897110245697243603439581318904284363948812348513359003466649173561467550887321340241553709799145845538335622185536903434567774173247735371725874993346173719747085276556039740858740810997862546256605528399111807234776083716453116682143474543198715515012188000236399467975969397130811255838728297905872921037526151256024862865499790581444752083355611035756987561009192182623027040606895461913123147543822511626609894828355035163904707863212741019115618816154872596248864803904492501676979896971137069184162480323813565969098199560028764619997070487968247627895058055982797195132941616839110973979375976235310305754229306474801236840907437074209927440835657051062185059013103439458610815363691512322006170001033976641838359062427998832365827783474166305322649412163615640379262221424190710421655875957644504615994466567851128954510868887870191568265588316938899752097525457299919265722094670598674783689902061531065675310015529702424428311150509136821312395980922023436322821785728011328472994515358010890318995041304910036169536911026255443953867529654941106093395686021695380148666671493460989201404592639078374523203036987362647626635865611436774702976236209446689181281642437643223925375050096505470544534583120391844872822398487522026985249556552005138970576164587116924822499421264097530108057362642253522823843652517716811009519461701714399683928868624233928504016998725592075717101295584085554266251995167743358631631286176538494266795929544142090068279043929346139401738086497607421046699297605615487782897982042005179514323744283743570600567318121859109865337509206707782225634606174508488617022074608840138063498293183795951994630370579939998433863443018892612174812238094614882228362995307218609791545696003440726304533129547939847183854309797579214913900047730564382114328529967409029240839841767948312167928260086470273304094585561409559951806506349165068827389972569454848908660918954761467872231362796882898246498389108864067347014753358160781185551235823493978523899953050403300000269679880239040111342103537009382715319924691328507887513186323801687690968541388774816139555607162400057629266507269937801234579961783201466799083265911717842773402237008278968836043942711931146025868509339076739661891062266356227221506348037572238797771036342144432830408324521911361614403820650155798016594186675942771743474266372584395556761440490327552400635606551162993929260893338405028936471759671754390615435414665709082618630272641981708790853787954172758853574347337423550358598749556501380047216904877956434922384084056969356327442026131941200360307248594303768707075765166701075571430029518153191405825536698777548989553468388371687150652635264191507593924410632162706758200694241554148829283741808424459398642413656219445903460130739961706470280476319464862202191123587834054932378814332857517077108217041048874032932032847283346407964626229380917073773502477332665102220136894207211503716063525366412866714091502510021538743795144551362627831095975127913076261861597067464445075478550462976816931742280283498724540230791328411562019878167928041922610335051357026925721059464238022009405661950916094272604917807663915305525436190924314886388436762042765596459931816460975580186790635554130573358515473382705054572132233203453671062095090046030137467783850661877726938173818213965963804953797310536147098171624075031995686051037891005628643433419340098473231328324393851055099461739493739930147400569235353886641630117206174101535661663220316855995640497017177988926510681549877003765750358697003852750971113214776377395550356353251597244615499054982137601863307094426348204809014345117825229678178229694190638851458244854131216637836264643136390426792291558601644470262502118651708364263014025994990629320471964010906482455546645677186101277001955107081219509149419361057365279266599407866494158032865517006577914158816147662753951149142325561511672875337749003126820940782491518368982256910438971180163539027150881666081462290690630806865568729050783021408092685976982987986355321623759803893917137822975460499623996431239842595889825640844656231695460486702811243405450602884755088229221615362918941488388593842859136638626133789253130575709814384174441488961028526807184632036011923779397728388970618242546170246715905697204891734330773292736261047178602549136723595129319874094850862780024019208484501681099888739745814369225801412613446911947024966355879820030621840552237814411018759985348727205190680687828125622798102057878416657929838051153590241857285545560708648949972491056817659575248921581907321759785197273637648315661864773276916875306487193810065706059378237668823375775900990214651365880366468197868257099385433651118064612019547517219665658442637108921479848988311979640297108172300593124063051778454781785266759755848600531525148828401866932448777517906626490258126082395266243251164175348805717154751685960207911720895043408839764594928237774540235079314656127788168091791947043033780091319339021171882496765575997599984069384754744590305569258212447047017723393640531781361398326031885424822690997748597436522093374337683250665474808921264382747156688507600965566239062510270198912510898027247842616514076035327979589209013037712317484568987779988469688625547058129810709847396636810059201987497474802301583786911541782996866121332263449654740167472700404952047478254782214493498275805078375921416971746118123337191020188534962927925028759234926348177464649384247425235393402376485024376116783436033220896488064850777729611025269666496747249542263259905337011605648435794511086608135427513153324000043368354317906387179872136432553519485537634545118545799616628678574201233558982860512058764010671742656394478471622924091996034803794311985105159425142670120178209783058009427778547281331169560111816357842794130233359008944613911768755394557220499336788579059643792315745208346132588578978192233170071832712773874539667827450425701239311196305051767968196456668711164402497983013249270264347167884190651780779088132844761439256269640813084139695698482322752717397570176612089995173685434238613556375069053132168717136872590628220176290649801325497184860193788329760777051494579677960398283549343722236379519064261127543415533266340751200183123758041116343302128983387291186949284567606307862166771134830502753165632596110515982955068738906307237241526001541257772044998365268470580886949278835370303015967483755832548205373058904664493827292835865023403017318541678721138094996115894957523576890318600520824542094989340807648192519004037619511088477346102455766267332955771106605045360483909668055021849914225986938810342698984287603701550724867761623112253574322723180160031311722074956785341253050977633000326581057229564393056998814651608013299264604250530509019982729702794463647370694386003069205358807589311298073370962201338955805157690945097979446065445465228136575198701932633504873815237355758930745188778573331852214065186349051364533247363325225627317415496969388788399031128233508639196712636923823194503647961411040412362102992319531501349801249232458644464034601761350150472787928634545287666799952287907829305255554878846956435646076433284086904113241642062281390907402474812788647174471817362843164104709438155586321524863703557147483064365176850947015217241194539909564256939155368572503571078656376571190877053889201669326760915965295518745403097077095418058427503393175344913051453044634611402399543516405139664909805144584269599539123678134412019756815849228669872712588520545194682486576650658107536096838436706396437758160321337364422764758074733304852499675751809776222761932759636375899308358963683623787415052413010912365750864199005158377055853344146132800235657516917564272570327338079330910925255936624571139052817100075544433045339219070063950146456958037126117974610118959317274710628335886012680107891382146939015369517981829822456743988008868416694091825654719997493892383641833263982183204321065495583197909792527419708781380556494775732692719824512381471889057095480976248377505301373607345075183682484041647684036155934110616529013079232035346151511417291071536354672108500897415789528923900655983679872918900486292582773244166067869277752481753358422091990731285795341069691472696920569638687924812361413318770865942674216377187337595619609280620390934616509449715357664259766664120443266191997033364099284401472511524348938000340427416577719219968914608118769782783867323570686784396717739614826338176928562222189026831920425598224200884076971144837174141400664127491036610377341265046153403292048141030055024874878033462200737207745977573693283315345249326088865675985063878961313246485697415369472825521113254544404480597295261014850854690111741141439530233194526371954197294779708939065701437746194026286153218476953694686436608473905345303170545443106841925644815337866832103808546180099265850874255422725354939578093739977133945462692523414020419820243186186965242694982313912175480655576564702852685767591074389186367273173742309106283864344616335947579075617570060438127428000013747054661131484504822815788684480795766642110740240593267200562747583041994382942318228273496160995807587971955558438486312551873468751371792254846469309263536698953329395455247648424011355904017959307082155619004753838528658152706517879754578537479768363773449943322381701629373047941756458504462038678982516792548205507779956381325854971706074015392412446563492978156948085434302459425331397319675300856553534049013221066388481035932876819513171834076403353073307212397092750552037185736740586419059127056364544581948001104431909962576405592631795142905016525404037859595098396531024437068648650812731905416919248846878684801864987575627931453740349213458686247294170999525608570594982066218972671114897041494456796313726903320882496328264922339023615492579915186295634457931426534722431757860127666784480776546521750117923147471113296546107991065736790012492142462037481900509110998209334595896794347758873175612181669880763230285973948469299653055823623972455682748575864575822786229152952457699097694199307066432470781197344429884992946326135357941082731108857630043437471387027919005724467270313854798813945364478757831319733833798254029100814106460228032782168831538391214074063844725309750526190051427751345037859274601522001402870722801222023896048642571187105599950305649295525121314096294158842596500492927004705430419210128880470386756598923667200449228988275466505451082927741501217912496851126846102546927300359807806681835171347947690793846170236198600792622892482247770553317178090746121424655791298225779537193946919774668675839067380294684081788962172745081795737059601026989770127203321995383593624152660091343174830793200717385848335835804025213886017982266406429785855744048924506550181034172896131213472436883951032975870360201121331279947452723522538571285421367839906747611966271104158790600449741718431278891304277310043911043124173346747661973066385221708218411528134719917611094243732443169702702829311243115436735859487189629412873074397958869032019906373055486667221504811691189536065395222703299350774125580861036795991286087645976816912604927053861133050888603457590675491653030144856121283252965135024799081981638817421035068607316358896863786374812543695788217880881901287374707741825046194331129489882815780402929217654768248653259015008521186079049882962976572100365703227345801865359180403276713267231050367213310578629670220127057285572197465870676738901805296885254899335975434875993435889411441390733124951701822864105297809179644274071889065275075024839976312023595139564642895558192002043244480071816446076388063153786606759078619330519947186205797710090584346927484197557806026903522348383607548429059190545739984293836284079583604835515698000475465894553303366175932870900400793050979448287410984677800267115303110013795785658409226373682048486873237572730382365474806611568037121603995465223537378934739389849966562225609882341538406672452909310039092626664780565112407888510771243521750518926007113186453641673807959642385998697432828109152928355958306355360891145402902878462135085645607642867891071303876063151747325887261051159921536277272564907801850681211291183157645715787474843109829066135893090894518346679778898416595033956824951269101633589461440481857634595403960190884846447739733089913746881909069379452508335171694531310291137540763995834837762912470695978962447250334858635675520481516760740708022623793111836788440477187200012919002957408419636557410818637175035224131786535014926410958419832616136719059296586007313478194390758763334548667195788812305095143402738742918176203680376732862393291789484621174808957550795064153964082592242055010050195264030232184892426227881795783890614078444730243406320154694965834919739357596453030291837177219738743259327370325404035120975995650911720131567269740630219726690065142814424051029848125712540413215450557130979628380670196328111970347059361611168199187105372753753067136459025438209209233253274363143042371587107117371492434505753521985754371677700675381846014102892275423034278648046301101434456951833500477460432364643177379000868010179237034759014131599757619243341362841340645939510255285330312348633055442984458113854804200873974978986188308677297719822134259368358953298340640288967939935506642936594902747012542424564286792204977213423482490572325225386376821599461466270307307483705797637580081294035948013113987343156853073612028492524089904607762952817323835950683027497725173302382535816902515814466424585428673898365277157898845295893960215604217278588823673854852453404003199191592426327455403388910324972568203422390418618923738565563774085688722563065187803793547061307520725942542083498551966798570351435795972227162293188220857802797963439137063587030628545862542375714691422082849862353191079013610234351690217207951725770755974088755553258504628198356871407155345208004267193541660493519654375601573222870621208660847654618296877390560194706805925475538639797686843676431322222716905295162470150632165557170579739273196607326181790261356260806163236861677135622305667332154370681254903140762931334639547584333363975458827439795923024636393514471427052988879465463503835106587815092958059172156458268044832617585240016538753920619148156392076053308321237441451912672121468327086168925268400383685722417364290689290685238309761196283082710097161512047024867340685209551960235246841916535881770409802613565834164675924023743468788521204159913606302442925134942230857380283311347485947496656267865273515849747050659283034802817307423327995588140468484927003248275075611934815904527972041345045457929476424592882539178213625915805320412650562958395744590669732760286651396258154233479641943968277444838487773611887450031332823003308233427705758990902046211792368502385398177648534678748462243649676608201167464927445451930103388752079533035712590491189609881502057584046472630882839203241666712939332916062457012569681568256146566654558449876472013677704137697149096569408412196394609286178245594773449716867657975265436259622521714893702973331257898531115402638868523703484878121078157695377378800821917255317710834581198681717508110715561330874369935793158489673461350014387301473868202860839163641086070492425696822540579049400625307986585052848615104359052562866187852742195390405958481562799958537400138188138379448636043085935442015997781642499435933325407118071622133270439312042002648115820269004803768306424988567158924922637964890918624464617988182428538313672237662306580833007446473001053706686838344743093397755416903536833554718837863484087700844870602614972559993479415426510068173469590760464808006978268884902034706300631517357128258689854224703312027165748451959938640509708761593772441035589228781602475165024183058528443235633720686927312699723941439638200611722654377720982374534126768933463616648289940720497026135817701928170685071176208153166926697374720603415905141243908732947275796005895609668972000326584181655856505462650649813981837273159576495371736105246989042253670381451198161993048159112098264090168598852396869691191556824409321763535961831769986246999251733939616206918127803532111869973501935669815155540373911027005317100591031046828116317109959006503244607920441404810780885082161431925954510462886963305211387619335504870561304440194059629870993780996311375077395162028960005008545783772811043925004094439829225584672908352095026530613161296734322595713784143958935416389209308424309331971507575483422380014358385313002021106802557888529462464644796881049252825855226387970223108915051526408120701583961199989367260585781863139276107464263360352403654105326161320670149722785584269921019920678297751496237666945090306254054911854218871212063737114110553897080793740160999670650228504446636389958436490161598837409872015621080637195970532609530238392443816568857761540793831440437607671987203368112728637617393415484133751741412843590348649114920659953899170104683229990999586906069088637548034454392631265257036896794093391899514070057204731230583218655092125326772086866951323467312332194211695760057205552618156301969914074201761384512515148385972101361914134809227105328272493381842170742501003467951121166399461296041408338060944841895811754621830917394679225756158298803845753308249132696311570995576310082339280075576477891224111945997449669478410269619413832316721488654369453233893318674147257402067217178651574102247550125475526470854879341363572576681802238441566074565996699803348674486374827790437594639720744786067559895752985067484467638610054332958850628981500911439447463410624223906747740502601019275655789104773374555288010455934182399596549483107118646392958820005441907630330580128556720331385396837831820933931351100234769625773616407981585331127441666468602239531566044333584300217046754540813568362005513952416973039893361621937202521554461928475183063018292471713270731685356438806524478265043212681438044966033493219462223572770322115357815762735221303157135197409573231334405670641398017836491411651793540341943561400380499371606089405007489657210406846153324177466419845262052461223393019903732003227319355190971642707343187310680911992801961115152725503341870814773333527750877263151986586059110209790985033807771202731373194398552571115619130775122808381503021350292035117625470893169766089165027328344326117171634874161401562164007354890364140633345931472200885858439038792847023785346361478171610855114125137861473900329707991573228861418207650683793914222735204239568266846076888919779675924394127959230250966574802818380751996363752950699334693795974199463645606759473042411149160246743957955441504632721591512442706443395051248444594092058388717958527208118553103821827941678220780416507559832998876297291338852261974414627386011756916420338331232807833253669510348179972387034455656202561180918392235536990137276012778527606341674972769154677909248606985453932110535515676334703563209111519431247414304615996120179986309678594733248006979686812411599179097160204799334248167257155272996028780667599613816553670644057429296452951243241834451386566552148444468950078043499930098877612817468114391454153848576200063433564902935880694057620596139440266367124332774196731743499471974415398979501819776582355840172674386288020312854372527661676077996470185295053346524272643525888649747108963051295168582338888143601260436404983855859157261549312201297810040938097018587581175518352629562589334072979296066173265427209543308885722181894528526749747462963260983662003435916635467539543924236449995360682078534167906878586583937665758878082524756603129122070369840038439221909617224947378835938018521911644274745683176656137320118009754969945721884109446381640679550219995537656983785975358521830184772029721276144583675114226885654649619667080633649552510159079737524629273411262535955624563049607068012872111268547105247732586825004847571900381404203218210266173684476949943854919175393801942520503503942668444214811462678093610305014253856868797618122988806373101190094311887451266729254605123929085733433880416424492857442024326126912649417422618400013291902563802421747902142840066032675244705588814487299671664087490339592257893101177124160731544102729076734740643396308409524526252871648576621862386575503585759466845409168703711356624737422565260594222136965154360211060182373066051920276838735679681807358490529806323107174215884215136151794430221261875474965241855772132970905710573786886047015109740808599824921332355129062771823413642311294630048319419071801923587160379813645661367363913878391315281424640830875068841911932252973863271291501551274160994624745936007623475621563786316487201205274788886471675356168441187652113450555475064361995288088343024709779780923892818959096599028281529063680284669421027457876102105467045810903792331453404890234890952913969666754650990963776873081025999054892113822777558116327473711001628220674017467949191368970862882357353719909374060875750013672586402322017542020526338826659939104424255421851428229637387763697889670584311909311354196683172187744969670854717681827474310422204425325191842811206352508240554560021318546318987576235019232689582680007273357433013639580258600494593221825544336828881361211837311697590090753193139068601751736051297871615160001614104071386573247317220991367724612130048783814238743802028703389726708173386425110821735891776274243180622082097619723332021706568455478048121062649482895503770124138445313285951718902498589210655613789584277963370074129326071187179771078618776796311818337855388103096784454960741043815340797502663191127255699373959279001304172666365095031142707671945404750526772759349645399283801893312854885496318986021702637181148886052677910550568716644522011833072391900747936490555206697267698276087437555258463137512729589183560411816292194577878242888928627123016344309733105644543895178105975243534353134237354322156103918353096461893963373699203066416538194234161526200185472556228781419897825103464508324492778897680569874887355273580177885939941551942394937848794770415733806581868808421158286225591789768123016936726768410647189872393919266142388908795838617516248402889970813771700423341178466636758437413110589688303174982440759005414443499044612186275912924503673315261159356186838551884685454606688085213969360944315038963263494400111391150171693695247866430252722264217715665039725196607322400909912173332254218950943882034310090302908221012760372811437483937424552210303065828946783267167993758833698813184076364997793020516549284231513978651550711093505651643208558225109598170230688250408309807778342285346576874619636393696403666813857224650984596927583377838574972616750367408213091822487584863019656000894402515565520305479776954080044422273779729734730347788358893018919079587143986919865711323943044346025623403979149570742078281326774859079648561250088725881645088017257171998485395641206550110991413620554594733825470891526880963519720262168493251952280345970467479195885011779305793433610794755146345126523173705811946293298773204472034909111534814204509379679711686413796850900403821316506294689832897832107629262291074394622041522210701337873290570148517005774600629391713856679098777849713416457300462765346543324417847953739640650596350069552996126584925180387909061862938432440059861006591287183981048493110340967780109942262562057641714416609536363909278856922466298040843020219855844627295272268434161135809432729856958030442574958165452639886019108882823003992991769186162898682878142633349305024021313378927332033598423283412648127997286766468283771127654857698647548491275602130607888525261968461785523500027067570054799119114519650899385758814882965465709381048315712991393833100043315040623237507345724671783209927415406492543769427824071625996243563130209092321864903017795223285115049260443980468641047666853552725845512285918214066040918451181756222929215468191916650437401616488604380260241848855214532512684887186585120015055086978597415765862540335783800821174112515922055596161291242332404150347032112517150889857732250118843006184693503819588732331535642977147202374268319429729578430242530379075585804566719157455261070195085390464845710524353035737393949642544187442819984941965825844853499135162705879114774806919023045461847724445864035594177251039595769042632661969218028484276439449399697908248564590612430944403615351583095210802036633008163623996266074415587542231435220497071505681011982705182829136395687120997741774374504110282131513781221225964212811319255772984106905540494619061176038867392832451385646800386551660357059426418496396662650130657847376183796076638397449799737663264906053789877550891817205305031487513270528374005094050854633665504710818199555007379149766660036498155692565340687766309526343647955611833369843825427309950778769961065535875063483883185310157299204833058975687544160426420429066142027826068617445635522370002223494344834113989068635068473254478156159083378149089754191114434271749726532647757941975506541623960212530931316922210436670848639276483865673122885793503068657952231947516635721307401628914272278858732693406928836988350294815749772131312973376556721864511627462944693002001190619560927752598805409413674682478829215387922868566996605294403267802421472918470712392343934518221261547611363473079611356804916311877302829419698709119467686577466826808372999434618135749627678622552609248347930187483206897707445482958476258865244400579406715592033356838430563507946535821262209678274924671558635836549269847918465784118540153523609015645490568044822993033814217745511325132645822204660780189366454006143920313198124888048940384643783636263688692053126330008471099748732567936847880064441248278859687323010900246412245689558747968200832165021419007689294545864216476754761305607883817550877440707714951063980382480751199335188763072898230484108555807024414475719106024071426329162151192734413218394064176531397308266893146571257391210503364201650883991768024880729822250078769446592974614030286314467152457469166632665192191231353242381413864917715355967202897569566864992172412311037915140784940906243338613134585207185544328350792507700074223281091935339799730315768529269417214769300845969028102097106956690394958512705215549574208310948862316195835465921787803068969652081649878318317990056150262114994500555196045887975701786944704556671419995360030494979318288577297616219811375480273063897219820139432960592011856609796696031337959417070113058097649341275226286820922984324703506873329266710178983464384131716830676501321129642092061379814127245573173609330487950970749125922597518303655950748996760736782512906240760936599447318655171896291145257947176757434490141159446992834131771677144415643431810064959430293516047951572214677277787573552143501859196737588453777962728679438678108205276716382088391549562891965661264819076939662368912229336325515448808374317467048895852962126441270146123078505462036351948390052284054612463672962476847332544181392400606567172714343878821733779292026651689597275547218016836259978761681525852592601271939384264580315254613417150564847114571133652170609113902808369147833582658172117935375148819779874359120872144901974486456678088163963704036062886768542396854768280903003073961567549801567781229960379898717342682853962344310602199585817605794633605302999211472786236974504610976807432022974413334207688227598950815112804395316659229168945820003668899373911396074594295473497021889019273141734212074112943807194969116890461895724207784538082130487272884666693234073887947374490010306913755271419759649047086066927373796078916408488180104765368126921461306230747743553644126864278944121800653819472320963182417856729293634106698957826524848605228149133560609127423327825632046710807407646538015282296896938782489759244230611504545060179636152068497862396443518791639539977099528163737841470537857571896610330334216945002249356726438527745991807873394908560484766427007481840975687305802133685530859131457534223509745886227725648111971640296081041371401999385880824974257491410752468185314961386043243806112848032767815489035975780036336386189499733965897634974948659091820030738598591660553436796545926372683284185818416622763844055091133913619789334296590810131255896869330235868652458008834032866322443852169705553143125702672192481893789023383704287944550067336543379942994973311671882790787569846411435669497907784484682968888650009980638841994607734736859254573305821921812882176791064851846648921635044014089207177442715825037474006340088650407139291118285885536367828122051217940888224170019661751417723273398145829943092976166952322202024562587720837882187630673803777329139495389670540413067656074922781696266393550591957615678577700707590586541731289003122308757693892934177907649411232795219109675377210325915290649706750480358637277634958457750734520515984505394688149920798288977175786724069437450482330106859477309142045218879341405698986611856311143481898540940697219197622228112406423784856374118575123539672527360633815800789311051002547306639388312406891232965065402015092745677570392690735928732340487743955159626525941413780797874333078356407000981900387246871517732696305756696596608980220121783846246279050033099781486029068894918081719000319075259941522344111893123026687777255234043279014088085379565193921823457428968845418440522860858136058416751490642641343610169885982942838332274842140491472266294677327555921248616657643310583326476593465976881337641546357802736642107142205662929519560785456085976892215339606600580931609977011974221882813818194414993469803270498827085672218697024324404759895254290713659016601816404545032103963838239519241507290308336157333927820857371847924578727806426442676794721472331253649937660582790482991882031239379457862440542067089242388154332777694998055928501969600703701018179847213936448102616552514047614424989382947030005089562761054860726090281497796241976904668363808619559104615402543865638153444292727320943893595552475462795538929260456208066784689642769075256831352591114898658772740420668301293517067907413337298531792469604583094659707468246827125278226988383410012571201476253895566432249202953813920161029811909766005730469961179689308895348975615761177783545406720930959551452173285113871338277091266458286231808501295385171374507781810192912263250568694430712666258085953899519629209535903632022497765514577001611744997329260896762819218011097897054075347884364904045216842194528191455128339812403753692794810275552054900248888950061488831133337589567303173035006152459991262793069834340824418184857437366433358845647456056029190743572649704862868899917817855317697637915735472378630702286625715745090035990153928361232588766510485841437293310015100382212215279542615221832033413945492347783232522739120889178988218080417194482114078566646401391911056661147198391749646740337264082537398409248054091139580036719006704471477947314016818509465212351561283833714201335695272513834661893681443303546752032791846819319784299059693835385859040857957910373000510045411485769149628199213642208507657331529915727122643391295501989242718722775013068669969801847487251614730655816270136170731660394815497039611121649659521139873419107373555320169584813022954603510992028679476764708286247370507613914565800421937483156931245884567306092803918464945630137298043492676831781205869245289855150118948147083788088944269821211241966907370744512207297156802897777921743150908691595820248664051327377141101723050228489263463118391210675542967914539818093103492489052475120155973455389122359789933635323891194645969315191741870457758352188424966947357929999733619741436023193925495911551266971190796588808989591043690001288137830090095840930869338950208982786426704225813763791034012411574345731178112688155961913123089848526902162289670667462017266201396111559584097040211734172058159306922318227619028844017038440087249868075201132935747432588926703378113658848947650857619219899831644823378009672307360469601570078797907389357433958455249657754485978399755580867940561530922832522207439269082686360654464198410829173426234320729724895730876866971067082978685402283379902690655769147255786226076630817650820154607736537135752185922178655404646944059149244169180010448147059160501373213076603325595394727064865431890355606963511338538920489297170740298781575727293956068340703477703291016208580517093985088865127168639637455147020734059635769062016170650949330428376053015166228812295920628869253349550691974835992778632943341521609725909011948300212148449104374792423848203552758182038703037156876232712810745244453257475343947097859454450310466899543071647368305379139020434409180437156795865752833435810266718896982356852682223846761096196247753602380655685679586469286110362997991343150331290801003209983368575778998106407276013714813536246350154496571459783279357014115805516631811139770910492853762946269295595716842363123131689307278190150226499666778631635081046297398965648261980844599868612279516654233493320362820811060116463944819164330123334176504302504529127817900992661365458083223014456087813698384990727037194354062368199996648997714407548418114233433494037301276037562385515036534785063909226530346866989037162530798507638333112371346241000920027033577569841884682229690743044697215448831057830395134631191073673617931131874669980766592697478297670500234553330010169670210318529883162846674688423113204019148329679756943246395223489873513001857569078535571692291233121543096389974217470508245370562683688524383818381867641212057877210645428906477354195021267019347377244494435467868806646294279701337222277142192409112565780171263432427868105377562001370589468320431076725374166391513794936640928227589652408652869271713389330962385818315306271841856896952902621869537736716292556450376091128979616389247061685999839083794746523717118318420577321932706653578317297939041378065312321647180416703453066954262710324484586776318200970874225420076205774975493025900875075635724832878230604880852854553944546118539721888642545899386204473067275110821298470878753904824640144519220611464571738429816458244693387253818480066939925379786362906669844260254443572466063431170337591105483240150189883759706815061565164750953244625793936608159023286449760421264541514615276512230754439297814672422560976067456733414761744504466030473873422133620522108923024366587108770099516467535569020609448478726753818427565565031153785589670879494035949270518086223407952140060427222713854546803635655713256696260610200898262349426962243149123338914703361464954024279714800967997159377918590610758650339593247896727303923667870978876983075879677070671256296973710916180138873118047155376028905266688864470905953861379729092136615110325281090106738348982582824451300483367189252760620307472058911762444415563481506448523640264964881948128690099710174624983318302142652580490593368628341434274325393829704008654095369676721111701632041880759209064168906468192153103569258374104392399574761369351092093412541221760653976615054519310038732032002123445535886754217460991097187651027381441647201755295277446451973448470394897179643022537649037890825529398531532357609621654812264835617312817590740536600107917987073810470690334674411783242659327833269569432998187753854352586908302571773041545555409213054681792117664605900713148934710777265428647394493236222080037765457489208132729658180119780413922586197908618307764502917033669368658494808907126286807758063641870753146503678987005660971742747494914043950731083668095489294290010854887239772210087027586896819958513893795415086499526645771422267609182792951332832306470261025448220029042918924512095856904854317549749298598875151950391659729339238649226740803214658160490139633088604468090294944859176833894014915979601766773197032274980574459753054763155507339891284141389334684934540797080635669148373942457300611305526671765890568449532358813979967099386329142243624451529266762894571476166292941299321098817785501735911215896375738025500770630933873553526909870078640720847588157461249950882988270629209384917583199302096357619186768233573142024234945237372225131130541373302377168611863088329020431098642181209480879443651625123792328028765258884948931848147931747344418869234253998306659455156380750650530668616313726249724355407445725378647598285925196679442022681807386890669667605424802927201659167000555696411855773638356738756246675654508645722749626925870656992591918633696922248647703637405072097029307823375546255269773444261303838287042068058892185094396272641620944807072139985199059120011016177386722273024404411028182557016373664034060492153148242447025979827325136057949051703058499288021668864459035465720723226902679068632548346116341810975002682186264907045318257623998758548493042414736241009916910828669536444015556018374446410471390206302786800255362142860265573414251199029502681008445975437523388128594801457648625643795837230302783846473627851917098311075069830455631561005430793908867795634908493070921137218244262264450254087577414864651897263799038120516227158807415978700149725429893462232746181739266451434587532240357509984719010985379168236428023831860700914019374103644111114281005609981504972439745686889143170048486796606427058473320957998604044373556959412359877058772217277193190840405045237348558313782082317534495673371603692517162187639265166917960798119939837780334001282952375611416652683360117971166771562468533657061466988587059550301133682351570145973812500859162996068962109507238285522495120257645211389054134288306853990068651178618451995516823684561837266896058341915053319901391872619785730920954949700783017134307248941073369264726145795186080994361888904376192588400651890392975628217252859671611157046423536791318173976973022032676072857464322850366533645651089734318499110510836279294654657515310992142993134942421703131884292985755338189636700272078682454121812557572900111973635595045134281116791456186646560596780758475297638444495252414947343888265545614544907102493474081199089792873360506027674227958102271360308771502877130959495516389940415879617631764515258073779844984545923618297754140954381826956328691663237846778975957529475765124178769005279173916702090487870707443756215927749825137160198911363743922053392585416591204481205873292818575889788277066251378105445668370405406449139832003106423424767583498287894336135136202589681518678816625420704316446316114356376721364248165711267714721269387363088597399520880566086963343572522198462719018788090757414148500984701542270343027838422889095459899959264740928630680384812162949915444677784711232876076929367996717232395521746613451809334737820621799543514783679824634494300460883877234650004917598240218416753773251878944996050864242457693572132379362052432928180985535570712763706127166125812738334082979270008472195917152943430876181288748889611710859634285168481523994170306583406199133519486213316567455939835631115969664014382054794466804214524114097897524022929769890452832227302546717299261929995026883680951013686765129299999492716922771107379895328781301885911996360203434677821240121812498887249961825807891472406154045067582133546303284843219765785826484297914919029434901451940379404960823847376262805518510772831979394484520925103723330286352333396935570022746704357604761823166830506441318333226455721528773257613077099488797140203267651402889917574789287022544419257704027630727291053594352004957181946171299527647588577665085599050725832338707553274177091458188488895394972422216688677636207360667107388459761041988082595209296175851607107563535231861853138589558516678076408140636355028060125391959164792616603965852701837223732554177411022882097483243914066785753597560640369514933831666089681482649414775459348093543774040239709522705440941934325497303707301296293083749134768297121805597670757784005013265054161673468124182837497757747028985447352246583847539341678885578370509718811923500225127894783916347766907180940497963079317132270688357690438520773265282000744486013345178880737430840770966849072420825868530106943308644999167946378464395796393753844025445472730729836728089516911001355870483551875772697066340226081322428384522633198548552860417779523304361844930204185807106638267638151065103742170430769718628300794882518631671520253151929718763753329176152070645936135246074971614085881156605447207247208330322106932324270201703648846935577505346240019173783704959907256829966647912166706585447445367391773196323525862781806876324485707359794093821394300885085960950190194131444735885041744178891631358945400962736831119705312494523119350841538470889670021223156801087902351089830362911908543866221789266854399580243114947928914869718334033561948056305614713149505840653511949066552914908753025232148431093379564006660393190564386798956366955285607796657712462548544056270229104989748877001656271262450942515337801441560078679217586665135315012536387535319357920240346485261099868835222699340599979179730843044390743254583753992806045133906250113267848041152311992663134454267029280226132159454412423991091518670989212488678231846089105383762431017534822115044052635714720201725603547180205677770371398360530827726442221312130259372805542965487686583860371330321840273247252550779807258220330228536526531878862291525066643001187920145711703731367472703789367902865460387497715235810426226194721222391649718860907107219999112677247050433076852226204929455384377775702452741685784707388318882351710263421706341033726455009898742894142380892358169370498413660432450746009004183344490027684268713712474731135063840678137306486906981845829379994137256940818284741972077555461270393834279206857388148220519027190833526249226030376140539393602151391040890784766245168740113447606470210544621930542646410724858615199557710621287605229387294204973642791532465957623103350103744765731673627294127104547049061317631591337700703835379841563155246092890185967013964229079027510678166877892358482078060293407328634506132986061659319269212202408650506468430894735532677774437605769718314218336654277658273580674753600172000658466886615038576764734292799035081743666350367635531725617774050243770133796015304804077880542792559845751461908097638820917536119725168017984381356046314135346180179673235833333775839841562179331974030131388303316154490235542192686840810150233704494676714154225066805749660840846514571241280467632986869243620404385688644678299392876247488345557854695313593346290187323101957321502592827541157097182149275188010560711962180155724246497927900117450903036188203394833346346737245870562373748038955949744194696890246380099763189691304664828607123497470792871535853689537336741179816169490451181312278781168412356301341080245851116455652452955202869927859083287950389044272791438750155782386331250552694496169208167264684354796518321052935415627382335461120767720587682713991038882913895520185053235835522889226882725407700614395629806653513130967737898181722967390612390233185951630582805904522135924138491241612049553554585107225240407015383960369829174831047808657694968600243335132103169480014432226982268575144535196380340965334942000683354336160394499119676172601674702229866512072860961114970851674838760752215630313807672840555034641631051267498295422252733667143551703161436581624983537604954839508357199483614772064630507781520899310269953295449364393200060990024116613225933446296378323014871225928180550130626384228674331563021787458533230040432528244250426361294057339232841419718706551887325201815929229826094286050410096611408467075038292675489707602572979362848447505613875113833210416993806461280611259762956325537047265873657529355407604792130613740654770933717215008683622948900582796473842727872189424904665263160305341230906785727447485663957615481765900448574489366092051831765385768579462719603025594584173872498420973915634352234821984589034666353221126500130308346514376985616800457692711188871903824513979039546681716485096763172999079643489308832779946379884380717985763390624716358210811884186177445425907762864499809728529400961919962933980497721038291369187856093206088763889648423170520520761522779313898269581893662728369031470537227167314571051226924948495277427135398109679619447128468263563474246774047877894049802943623923736994355023038351104533442819192058653313817944728222346172115178521230362665161214489313910919799425294215805410709921251373153969464060126530783487984588128299130392403255291037818020467909009565365689687251226561613506129763398524081471781273033616754181662056468524630916059921198997636334805314664681316832474687706857196289058621501659114736719966160616152363933158364802208138615197535915664547104856399449017951933869007358698273843149909720470935855820742073561821042351002937257624064676990496955459573718129319464954745889290183579579798419919556038804391271639674115941811749950132272735641993231566671971978708613232345140597260806883103359465748923321003582503082740492465332786975921363581963618012530834475259611948466866560850776730355026448775253182681729889374951862314634815184725530877888358759423610595409664122295894819313656302700742684473871318088364848398417015742692120853363201916984482777788018401396409181894131995534134279394468060779960790849795813814375661987908444321839319068216739578449002570686286098009260925897686943309161476290545042674797689139852949318999220874068735554194270328069173258407852517268203370785572929656397808242045672668271678056684309617111538239834592529411497293104880347406917269704225801557416890715603535334464519591626833301826026443061262894392156702233695876934309941339399528422582576935082447563189599323848507548705880041886776086425345227553231145712643518880166910417869415696037110389261572205899021077563160966187037713245345184100554003534746309402857711059819027868442596262930446351955506044888516762217601532781926550651684931538635333755349747800072408398709431203503281967521564729427409844740540549999033194284477759673220481731071662353968745249331093339256149172919825539142799434797050829357939053430527375611783570173603825762164589355058245160795706656392187840257904366689349484174859404089189545633740976151679998526156305425367057464616745292074395335727272926139302687054180322660159375912064232988471992660309377462957333134825070795253746448701672849567166553266258389224969431956455740916040821186429357131232316550219662665053631726453430900840169397319419760171532110373332152255955693026579523419145653472092126098101661457275714791624336880676994563892231096204277290534097842739066571560286909102216941790602154088008172226136645836716298982979771686521558084916138445662419000954823896589854808928165223890207206185488577386928481669391872015540906095905763990553478435609586687452309137380958646732298569714976389667914361008220485940593480542421403875677066809547484683935994476768442598721707997317125746221748018066101188805353141889627855075497755187710638476491421619255749321716204428878612029960806109463561988371358952812569070814532485326949801806701007102062450030815778540569450761912127055438067185260199407774246437389028817477578421791174750603867856850023978355266290947920208793418869759328929697310518801790868825071111280496123628132886634796699305551491217106250222786573789420145451325385824599114195816043215822717833752027499625720924684094030879427684362475897189750976755931948586151691352271784131874939392948458118691313542084450619746672898168260185874443377307046083280015867954080985159609279360995489496400404467970295231544885465490235980209094742339598059709559157690817976797952770045063628945913895126577262058320659251371808398896436468481195615973471562918840815622738947865791827037544069895118796499756333930653619898801284759980585351793564003636378620974768396779410341229998053668817345536470138296476543525931525686901465988792823109004752672787628173283041321037272538879036966478193533321039251861465551604077842569849198368043897970967760425611120624984794240732957035637815806492118345451471747908143764666374353585452647717774553721766820502562812930828010681591344037178771434715151866650582334071701818835201972213493093498689153397691214489503197615613800376071443231776966056782158557769986294339226312648892315295541548751848854130858838759001051415806371165136938914990345563318319575875488722850810742998081703592816473657546656138884820398355121435370370318761409685204898533461099695396676010629369518115998857666501623984357620681642669047015699501454452686524240121505815353601272004620236821621193210903191566874934300584956001908878709867998019266159999059780769347268143898562140890911708725361727160509890753829708793518240804136032628774096147066828621106372652793408334201812102152476673543421672347409944531865929912230398832758673124979868201787467403805069071966128229635833655949328092835055923009545311052152308372164187796393736567224528889671381115433286691701843219788445035713401168082195688715267031149698586004956730730186255470885289756546821338453826984136859624632003051818202832942735626999228401404587493021771789792958029052869823243879202557242891610099447202805628927452461709000919050991646229177038038508579510527746179441641717793520229310081099662423551040235549521266924348159164944013256450019346859453632701275228910455984450274778609726900963160575123451665771793991583528664212197018250844706631586317025015550442513358576529864823890742070038685196716187325639348245161286459745715739225631107220951987785074312004370626597466930363251427698740515867042266621359270256228306681431169223329681484356429952952165614626979813389428981443492551236067010554989414556926292637066075071702072172840056837034942175486587895231099225922694212721933898478569453464440556509007596180331358673109833712919458839636801267074272237433951562010569852869517342218858788169582352711579446929877387352362032502735060235163564121015523374693175156337223466317683788690438299369428812372954350785101460912620254036831090520195510063358634045747216252344154712267413755319264828712172194396731879405326843984433999687842950319471727143769791394275760537894879154563436538819891290848190384707036855091334910670509458056387196956049584510416081308601791784962991203768010652479539840098534911851401282464717703780117795544691924211842062924527602424900092016452489922510946287227335058225659812927159677576863336064747338169115080904913761872313819566499758802866483139834294393493080093714155298735730552295099881028179272444464961977238268215666664227265876745737087425836145833618851342368572662247438618813431466294175837972452861167084645824110359116502864126842503071931892751026700283137949093806832786758514233174192977434656070415114040353719033488464885348233183692966271049163602741767106312613780182717544078097572440744350943536656642859764985635080966234161719410080983587299867084361291041945857357150153153052954357754726750152295856051347410603100779871029730776238084914452463240910263257468272179380509776428874357039271665375844243209049178505244012929938307315188170260897105285217671771981602717287713500143115394721661613085129385290770265156882487014231990702592242907017141071273428617291063898745892280400073655781855682941324923998771480438387291969843431185152090392332635627127818663325725342720793202063900412416377187640608141281956501580366764831436653453016236070988579021878742551735452449854888966110676391318513531095480470102836535075295666883722678021644137706995633466710012856586299684241472192679259936179051637293436360248972061343789002873880067756711032585846724760311373561494729724648818956087798787494191983043181850228971613169469316303920147485773688384571684235520387692932218517312435922285294393701353076713398820095239268746032357238408481383529769463275308121000458244709546653284388505328867982179744120757182604985276917232885270955672886973041761665939315288077811894754541273997647643001206711460194119693256891104800524610218470826978678301696341495888704435343174440410214290604826263951261041306825608787041886334109161940061835449349714196440966123677397411648049983417243863117105249484780453694502207212244861671703254692200691460091447982065860242026690629379687309690706241283639204348869506628977417036785956295222973414878583904755897050024355103080847565436933243319930038420009510849189252107015781691678659429476594031151764523261426152629014759796098507346043793277329001994646914726589147872855444014687514424616556889681719967117582073060492402675067352738961291417385054592288022833935085021346058341167833602009736825189537792406388589495530577388186849589568458554158603293944938939856259258172649401296781496767968481592906896612427518310749790733143358975595509830692820700453936043702719142331302970648174044817750837789011024699628053240235379732956284037215700685345967179219232286830860534917289431975405024341568142625419606195830295978610801440310506366459907987199621333588009055870000158748520085314601106559752069472739259430462394567674989740958241892020977917397906206084952873588559097308346111147006044957973720722034653765772813598780680791301175666717972511929925127674104645461661993296337577274391258358487786851605533700448863969764678969243886723886353834934814761908068273962595704299663734891475290265778212482580788919017392218497682100631397685872659781326759720165260852342356552840143643418360997933932188226081356970012170748776972365052502854012797241773754562458765808464603749712844226514358014836987857240101464772161456232117371686890365157057753433543059635486633824839914523605137742560736041644684454662670463371795736615716763019956933952124056406401409730108182138613804263690588016804181413923332500865843372189412906844736400872513423249329662578710895434928049188441819982308029270980614566961917785974445844878078758834156053979910610576261328059324772254090803855952978422185501694310055656643568117731479228676262417473154476085292650205729343727403469193738070928323580253093996353651529319310507933602336102969076081897656302928062047337814735010518750926807472763988005854030740612043754424321419322582235132594236112184699943876605959691555584665890772103512016116302069376595689065841618596926246505559726052809341034662103967978846687781646317953084891483218858938005754077435288218254482623316359763088585328583111741367554238374672875573774387665481903913792743765697509300696450052874284000932031916958695562642646553056156353758378837710117272269754225061877151878734672327058928448851453386616018654781229637755746844627262472464062954648729661811321153547078560161473672863310321984031399717847219055833552386131351863083223193012176848279528677315431659585252704125132137538884627306932379338191374673667977939999292487881060039454481212710041805863933694882370412223003862958248412253808714480186720847570251315344825832452152797306844872353666186305416252626777240194134451736979439840859998740012755228065632066833963167087487464273217482209236787080737155051693148193386521612963992695691599366260784378951504336632060136550221436008973426023739587672428114595940120319694252459111514287188803453551719963522227322212912191321850219368553290775638844913747347601923066532306521269985787101972958073064075554679811974265317461024212661227008709577182436621096263593664476519469903829320472138045280850271454027783032909556991491563060194726357016350978777949442462852065719881548701046929926504702767870350412566840695362675973395398808516553506737345331482015961330852043848883853472130030319487126086755829823697482561735059170155838014336605011406365236806239300679909438365408279842853423131606696730879118716510678039606445878834735014430666406083763283411902294912710035828562833080613695785644848739620886671704572561221487599976873997438955884444638012465550677527699340079309128508698459439170637731731960249589987982703076051103059050507398151331501203312104936196175963001957038505907562299278143992003590578819579645368381461658514607608230037767310991728449990428772238976221659985617414492557306851404415090946204104676247749081535238281925145938954926649900381621185506786749224550082802843170755552586638904363025097468509380465566239178439188764112565483171549999501467896978045469840436316148253948232745944836367178574309326805101397440079668079098979108424979009538114253906735979070322426231653077326072656319849489089674498562942145689478454672179845227510957387757804074457241555095429793570118242149776247524171425576249407883679830948038730446770318364639860880453351848908862471323356953611546745320618229197863346864006114792869910013964518062912805310463890097649011897744535098416354603713501063246914427619353225779313881778114267292663976152726888654264808114514639759584482614766734919179515123797772680173154109376605563960520694216765058977122582700299210090373739632502160241216759413927448552681333250205810507048532686031426932330540055810858143637439699725451530234341002265989734966657794628761421140985658995361399456885181035885667797941261606807197686617000969828984468533062842793693415620701512858550809628522577356255066280921211242142313661959985356850397568823372227143679026321819937468445065116722123771532976470077266029645677004621921580269308300453521162016142233984477961931104466616498324895075673088906944180086711122348542536035640584929250849774650447733170705668284970727666484005774020013788776939827649834594503507089144784808811004315305582262765894459432082520156929994626104104498081766057645073695057671917249831899162610140118664560881486764747704286272084678403397692256540827813626613610895845331038218276469082586284319119516859296893481390595594570631095500866767036233213640883688738592935639540157606225228625493078601085781394809769727997485668177815347015223183335162152374944287636563281442556300704642563053725794667892971267600074852729376724068927763569233421154035369492407380264982028391222385438132968105692711421781993872752639416516183937168289960336130598703036665137519318122582932010040386746490003600495004809060071395509361531106547061713626353772651976719725644979182051658082876372542737568912017317484423093135637027729662542636453085144988920419161465111205677758286103950309636691617965326286131164165208407554169836915344862903187993253505115266789124283570756559945112348913278619473393630797847900464680665606911374355966185341620742401928698991513216575125797197082454191773966122275876655319460984720054546629553528206605262494152123480436185275918078915289346331978665280528116906658649425925785352129829829182565605240517091917449750656486785323277740230221238770951659072552993210918670039791656094944419706286916557658694208521035035074584973775337138361630461542639485026581589657215556719236436876263193294811473003719104643793405329835998691493449364623203590077652984347176994185199112181587022342839906723903762239987459151701653895926163401710330543381444511352090247733206826875313463835846498549608044935186408178694722987197504342244054479065126009561085924667052366934841843520633848955946031257119633327003338758893548858911138030864388357215914522953355961302557953625873665388936863520904909182502710612101114265941836729701706103852848867067950297872319670634114227319259826623515864979293361469801381342446790474790739299308151146400775442619890835870091571903347526964246229185841345313057603858431337463565736338654096981426834204257144599839501873563406799425824227573601470515793669495943235664346352958358250949018773878440440249135718329288746788149725410338729335785926847325252600380661464157565106799914677429287842207983865439323236833656313684478753760795064006420844741343038966596176839866278973158991793867663490495102303209938728509853445706511866215176152619658424544685753533082295882464373621877747796319964606043052630442318334207320672750368252882988426097872943849869596494645276866581115886519860652581798976865381932751219083823622872214036992407066549503535861055644268294081591012534794920583831867553325624276470548147255947658244649797364312257912954649870238671662934898547083272822509200020621490199678221503119235375568555612575022620425717662317171536122338443222646800511372922018286354301747416630870082669840447803919539464064820553325281261016647017757864208356294362390332148898440596528547027473828720539964905405271595706592519103162086133187640506983266839230792979843967909578515598828135605403089200657876537373127412743986557348737693600130286684973827705313115053104371501666161926088589801193669101363400833438726806328433314449877035104448970926148598907074957893226663110477594628941346796801357504548406772541279752121406886218143516370657116919303879291543043759709715519531318636286566179900551692033509398089184820956907526808525771803511724986561566297788474806565559020663372091500762390776192126842579796159002892319707753128070220480906060280055980204448428534856290643940524541908947728056948382540846587738350082382544120594424831896885875760214082104341740647880658027973893666150708707741776529812252747574127469248074958353473824013097264745537236203825187962664886960724608275529107864103969305088082205764328701207450652897582544888336964645576337075927940021542303403310818579631615554265939296947588034529477652480875166802998774333625695795392381184419978244841140646932191741748384548669375405236999408911857166807824159426373699575898691170549032667725845463972745657502897909801540663639936950736319639383541997425711814093075344221097328540691803455873787642947608055019010263810508398342336535496300065008490758110861340682077313342234478108691622630115704041620517694363083118077493391265237430385186630605461209060136973305063042220741105669294558320752734318195159545666379329992438944519779138985656348270248535697409443443802850988580679442063663242167735361885785291339675849951364496483722671052361234573479004974401931402303192657177521558691912673884146788020845643997130270474865517781101682629672478134137396199210581332770406729547392761181995110794688724584223227864455445372861767575608587688480197742918450110806128660364508309457635903760281460869367466894819333332688365594513457304447421502737891102857159383058623092972961497800808414148641097917576969005843671951887224953644945745667231093028741383017709745193447760100883495125529029091784862570187776414726542905980893977734495628246891709046883594963784417775855398082657475951304667536121633689794195175673026508052716908229647620547572885795162467221138667600288710369468100150995118835316959275639756519623221816837055714591606567906136523656592246879344635074589092567021667785736669244774626415646417189395038582903240041115149396327636352747831887788184817550307226322274876799112581015172961416077890801810608473319521014232966904468065061177737253059927799324051925747913068820807486211864095433084165141429456945527869702210850340759994147810856270556432716788854622716305697972649752401118652978720293352379009700172338568948234124010571590114523564793941298899670742024158727516325925038538959936741582078742903037657263527300416977018974966557350117347279993348239836737323396649615028434583731411746580059592812017002369354685194710481565345307277432821708483126078338740237618173652526695325504000517453625677075051543196048562717338000191648561526823195302397674553720502836628543189258268063572542033262323180501301661098524995437935127650881937585262596573090791195620695061533874673392482628236469811017654444878117659444552915915605247012281071716026807585252626543092794334210771354390888030321864819058353237356961127760902069470572848682019569235575530951698530487991445389340159068173869708978405428913334321851232807036547182896304822743252831049929624005344812253230540559420669678236737785061464364884323453277004819654154509771738528588554441627057101512190555264193419365233978584613210275498756689376004227619764753201304326313025800439309546333297979291870758718221887727565401568734298001041143009687266025628418427246987960020628078646062326608413099430373235904086284506550193017687199267100065998375998826781084925328331019022075604468216938038338166803667702865430560457171139773629943727978388778530411648173485225658011362655006578260953741128109869532887178273007542454008938730231205837209118567254485974337280232440718956288352228709239624523604259327245661736922665457967869837624034286577240607296091210101269325547709668388125354930211661527851233511719017875536574376375259671349338865409487344061019229173406418035944026907264495931164859222874770302406125695739017124608146659532672207902109164046606442677544082446218326932362947427804218915933029108386012418077069340687952393574979741004205262286554903649909193447576037236982002470310405449240170400850262294729196226298883662526544576009443163575974360053983708807736610060624823206087257898943019383776083570032604817943537875012230913784782189797794002703344835708459837442728222720467572315575294889625755142226129601199817093948721573410384434367763731489096470041724419785749348258881798601012906427473687491428141845745894802400075622210491961052572753836250710111266520908749804694064039842771801233869549967818653254551282219165172513093742643877432418768284387140443369027078310240503549618878596353859536547896950537266049802380678452539475797524870462266946173750021274497172695510529462586353939793082618572547719953062165265209247325221187932642600461673611607080656263057975422125482114474643803997415380134400837999522567302294390245548894414342081255022586751874226313924667198289821646831300847172100319800416853986412577422177466936844995507569007418619410428741864899042016198871538732166580710129580759040513623694914034785250537605935408843834444226349472043478314763070740558137460105019206286140555313147925621504811983912371825585935437719609049613775306181640670226220591844488765585833034193207160722587331015854374946972669411833818313976736388503668931756868174316005818853198178740749191633466547283205942617815179517331892108967654678813313398485152011282277082714924246791676708246901403917799307136859296032911304809529726326685775707740508320676315208906229271715215762516337891610341043525111660710462378129534837839851340274617574983822120341073117757519243722549001511039544192034403730558510975795892159624735411473257363958194423853634220130354325878672622601805125622250924275471307268645329089122346153919389405961563463862875539679918146119071798838459256846012665826280673609030202679101308159521488346484419094940514328480968346669844844043742392774076094517213696550435641724554458274771455275517493737458527345253377119215594100896715520590752715706655118046742989814019933139503912487960332408491379795293280080059196785500065709700839876231616600616722050623145614543604524282953538287982785727854781811369142015625379491439711388306166980149126677118682371508508704010740236036085275970413725434143337214636670207024405765950104724906212966579614897931093482280496834623791090004985253393543313771517903786776437709905098106604876265093145121067501885060420536835344194618870297014271224598348698324233432770584657108854661600075586149889808774961786388622342273204418963848006442592681071952791744686043599392094007699220199974392513835510167482520097755118768419548946143370829295780685978100348727741372833288982854744593285559573724892388265053515131329714967043886472665403797184021356251120239995277566471637825910296280158915858686064031619251784147714256047877968908539201539860379403256252838420808285566438663207031143168645624614995864498699249445910282917154367935071852073615603011174818327820266822303537641520473452840423839163062156846291437790125484297393245725350158738308210689723778885655577116930202460690480360708216738121579119285038173214205911269880396235849992884570433153200636626932005926983091860393014179862479384786877698297288728884566129220471242649571888978936152429110316414351569452559961399243621506679103680419740854850605230146018944455366609697681676757675113833003985025920012568860378858435211145334098386150106097835877133062409741667628438962573060303743415459279056433373723289288154203738417627207045017936670369813641056902300519100951229785197882495374430789991912548838093243960525522608909550252477193688427581157392627846717959042650284356990172724372982168939446197888533970513397086890362466718365042486209230547980758533749257280601592557495220577814056844302916264913882030396944397229379545320650528083730792154941873585810925442556429184074241294811356081994539431791399578346217585003575472915170904328353154604301446002857669215154440707061409710923754290877924843774766923377280107990896702920189712669315542866203825191294354609553825647279759453102503737969119463976631099826020648036080810647866771575481483318887959035923227274658099038359270832997040641614289994936470066394324703702400849319363778791416371743054980591445603680385434568880847828884005218838040777442298839400053855521560815397684518140083515424564648809183091479245822248589664743577447629778122034274342344001512762702122982138739366997928718086695532153732503167451958981319886403599055576682564438203410825953176213719625914689275726404442775304918388123687575916498443546334676423448007645577096569033757523975419485839331314317844192178799229056922913200742213326050499463639495678000818024226013895378847098193876832371691970280913163823391571022483677899849281760375928388103082044813686272780324371268513248256978649571584241096510127938870387181279563920417978746429314932964356023382076584424129042976843629355573225430425700115172782776801767475700520773933277560566305751293682217631589978330430099348936335811075775636829239201650723754745475755146224892254447505532935353776947015605741425685033306287433614092182451082460684396538929511735019423911372293829697396124872773870476464991439654068595019566920790920184312110960351009076042636546753819788645236264770958686974313915518540037231088189792819540709136904836351198319676050524841362932954273954310164807369170396729614256044229620095738246704196492576149757297297501725198881374904425290024460630063669456081244677243049636007430799084647892134734435547081561165327948113106847607584034045634212684121022536383846805968305460226188461982999282967978035124667716234281034072484219179276219336673103818213591324804011821880640359030892690021124944707292380457636662192500660014236228930647512561126854060177561180907839973368727721783958918363783713220403083243457229769406726894105949632835940943218866692958950361663463732059349871031134679397085281675640420687694569454778648660976207149954536367779501890711627925223283118251548423447636828874622163748624988681756451950804275290527259229776233951063752333366460116114382497366982010681102248981898629956323195602804948246798690553585958823558787120016402637452256730621633260794684455708090583708043492465509459826487628748171423547742693441852024725180398358113598198585774000402031498849363722359480709523279166093767042906602214355848305039554768644532263842265711319426224335051536364966339479041204775846994710500944565128969748291751134955383967057144011907654338125948944336224179098140076790837779201182758494566982262847392110253372670090059101343196964517272647791533105893754558988832311669479511262194887892964288323351022247517822142827150464449973259036503812149628712950736358936451781099360868728966167867519037627428800179497173333960114960949549890200978852851459002295023695384737502677362020272830195351672475645512969915431407093042113526291301554435745624754831108462534019972754557896292865585105834188599634681040162889478221190146220907426872262549651041333378103533411713207559462311310320051783769038563649663144192006603550634188409510674602365537834235668047294964581552692387607223517240021246231687807717069415410009713355677880026309667667628706752286940275792199681638792871325566681656267832654336644307710477044130152110627792401345323630029448238762488095361097641123712870962964338642156208737272285155152281436544074834980526162523234103408376571042888206982376384216882980911558875998239224154777541069219405715074521084660757782116655552799261601382553343399844181522866276793852569989270802296091473877841867901217946651166601372818077452876304482372337752079198511397921485417074686418259622722801995285557753990084467768024781652118899657171818520973640280177317491951000249708548634413981855843751832538495739890927305725811790259068252680626531141148286975435171297799832189203741612190193304735748736133244694821367010093367315165135973800401381727828374672570769887068123908174521493369553627554760515243927233447200949729518066026887917482844060199704482143776260905071209015015561346337424324648520652178571644027244177873197804002864382636070162684024554331409549856850383326894887814882940649244299953365686845287805068525101057465001499008211514394518633157710666032073971328475836289650683608226313978109550699688878262356342647732731433763807928386103973582661742870233453575411617225022465945767467381864751306075790462803297818590550547163640007615116105215692255583972060743359592969873433075773657503122587285638827614190432167026961666430115644879247770393435182135104896626187680506625201174795168851065617795268035137127090943060860040197313444178178921155076083871458348929138111647152419753219725904150722525906668490409063107242652986334372832974190983411022727974157279408721112254149544006320434899856132854174831309196013828852464535240786169596602189870561082285705945890244719542290613785690082845988848465495431797831411164552111747189919941499629690130097734198654927937960656085882585453929215551180888522767339843462375027086124902216181240909792055050989136007104010877408894025299346262900193614682956588490348356988610789143019180439415890720277674332331780241530827813734627640884019107899001952792541270720261466687378612846148364588838680088003054061817721610351734630254965358518182218932298707319220548893480275544235506506342115271195892521552177456007570945374795904327080812921094076083590841663192808332898368816481913093578328886275342629424018443367818027452342056395514528180883078933767796983925354740688849640270714214105739917701008467721495203358303733102909060859773865685362426672564288665500973691127504807016451036684095434038247870704353643885646670013656464118950726047911407745462668975809895011951152447896468783091095281154056707891273696966894522891892703056161827552802564487243616078886209674748464487339658698321907409448937429880956569729870688591466020299894030852982339761812771152834363624924209375667075779805892517765832715460752044781410150448291875296912512736877293703693225367582723593836714363482771331130273849585818282490957910950176645595902084341694378370112177529585482702621421465554901769372405347354252244933836252252190910454325702336138540785132708182110219599806542076916034704115705119615455600808486007758344271704086977577447431776794773691601103461933787143766651092523713854991362152565742904494093816506434017107492348354973414799892863539440418168523772831383029728104956142799470342700610239375438009294757530831948186614194894198620038929515370043766537599274707872084030163887113494551508279402352475469773962597786996180965592747186328079632168231138999515823980508004792174235852308029530628802841211861995526643729033973332308446113622162981471783138798639392521077023763606401485026447480514344138550905276909978647374254796744780324041648477913795935658823660021323050884279059443661041327589106856823011561138140924129122296075016458847012656150977481970390636578618265918731060642880195924089193489627387554233296572163952808764346735710837909914180766282361144154893117725869696479669563501310988711048050173720381560289500300271467482591549861396830726294773544851821918512343028684013972920869329666925108905012521094487126250248291809289584818867618129890087663473772067301352288270679355222323937997690615610515067992373884428485569443309825513338866042811885535544387253355264796413533990341144337661395879420275946983895612685704387222585118703260593659924565176061518872457128682949417118850389070704170203886001053809096609640162885316686035604465079771639673812459840899991338814850985409287232962058683239049712442600365151014873822118940294507592538140647941729195385489325225685251016763466588566784788669418160793585511943453518385683300339834359359333708455033070910498597841279697952608313741089600705175181459403136889851911843738672636862584072687451777214607331206509535639609076037652638801497455931676350514222194543197189945658179351545253391527495642614681258476031211846592051085656619851269473685193025895460620527191057804117971017093775950659556760086080836275385696722787811745970590250915371567706027571687375872064800002743032693460901968561131058699363911688730437266689316058593135606802395450184130417212548823936503665517059475032692797100171588642764824866328693028462570033405101399030047689659747030645391200243541696794196028784614494021128990099761970246051013013444959571547659863784372352812059482716189102213236421707701153953740338964690805819466187463978406806800423488696581961380363866382011458027108144162925866017776820106178940255461465630782403359462496558284145166804504994678324844585613528813026490737463335124344975184028155014542131262152140441502629364851160840643478598171519542784292051678897569096230124993242916833318762185170238123085085454441840354211766758525219684522305493077654539857480727099546792653066155512886194978900953296019968545940756680410173718530706343430001616143096775968617190212769517033183783848418853095890178435228726713257319543110812388549459598697853740064561891702075429827842003126563861590161498887895852150027951593059180151876250460777017946313497259496820396483285788066450473723105328830051573821986032319132521710563593071949174500449646052129670708521918225589780193824902557991721843427051653472375623806557434324144643921853963600700007260415977496409850882786884093178463663745370234692594150391986770835427417105557725813213749029721845805207210294355900292478838953985791403143514708762755188825396830686891782290564465334948747134901850965443340563615498761376777735969572008440569019366986966800772700777835139804852494097772964662726368042875536811385201598049687715836180929259167885853248230999766587816735399266211571120833536971710727740010701097906150126298739959485845423517337109916995589609070153661089432086326579984011303153922802882050790024171698867076081852625539805834467358028313167529847672789551904310433501803085929710176074614657543449062620311383230077467930465541700955888409089193921503867370401153848530265649522326190822102870271630746558101843173412449369020623121004722620172127814220184073602079390885326983835738485185601143561075693098642964279698260383660630254768882716755343975139684039072208723847828546949305491576381568503172824017639015097523259504169337000608946325216191822113425251342411132319401289622714631562090129984746334081439232005626174816447527861199831366819969543986335541956735007046250183772303259383395988117096010840562808111339062187818148133825950541827833577866935943242721654979368250070046094031214729039950199416891447719760415351159821860371971559825937919311928160198993785809850987322366198244540331329207717340511883071983402519096852948493611795945030112733123356998792480804903852902435458145249923757115203527311584351939664481793673370932098356954984744509199956357866039621838617959697126764392820452658933945463704113462845183221483226838953007603073565596828773510209736421358270494494512932196644941186174215945185539288855201795283745566959367627769614407685520055890128337844138086942396883982242749414207760603165621111047173562893321804371042377454838803211186313142057056930654561559095911182947821518577164358839707052476854308318693451777940656368980663871615606154411882281824560894537314633552094058405749378676487476136945083824187825164813224038709177854455825530862804720019896792573035138725247882088145935198143798868233453550765432363625542966726167555518025560204330345433127145830153752947380376489302825744158327318226122972288842784725014973986210247033839849599633640793437066020807892674494994255118830987505426160179987038185098872053150301131684323683520779272634518058744825040573291469657397313401921807689176889670384904038131637953806347058782028663919870946733777065433036917772201333547655135944579043230258295234087477404650759300484209990730356018854682281215935727310503473551088071764034673732624112556142754144372048601509202092510564610105819486545686966935031073212475768100502602973002645358103377624301904959553468464591227974591411471493370929390437888120913143517279426550875633585390245941187605885484497086742884098377861889202538041843507976360450581140053938164006789982469035771360375503276326134422716317755591124960237282944648103091417250321095139721050453866177051128284950467542944678307840437295273854878332423676682366165104948137372376053416848403163504974616656976000089418911054790859315472400527360129241317547365530453679656004094933839716029030678638152731399537723207714117944909931756518370078339828086239744740222885721880150735193501484902852023650843785235011328058692193208467174556249919842081703139865090913576346092128501704575223285530599111473400634094074597391106061316084800220461289692042044663762023936206576545283524766249864661093741083593315374672398368778839807353645601796551384475688226873001748662283615735520573971701785520117317301345575460073181858766072912061767848882643423792750707107767901479379481744879199979945371582793388253041750604548836000295563965137687555603294812805051091218923610684385338641654861931826523726355592822847101259883794587187911102222604138442173172904795294893814081437399159123698459722979607620257644868935250818059478309946458678466972116073709891364132008688652626926937767112964018445005223239197557129414545215327505610724119088541636512867743335412578096160571607861223697850801440797648219874476423941026061803400587205235121009353919734848792634282285700123529984527496630445889811006448149578403517926948055003755747246664412989564899355163877481941734144144819566337423216763125102462205264127223538107417014953285325898849573294739049581310186099441994696355701006346508215489714932796804801637586817113095534415745537228781408292704268400097141118221339937745844606200739052995455247056405033869609583670252595835746901154522411823240943317857140299237769836679295192383534962082895119818466468754581796766493250225059271385711192208815863415209525361048432911672980552641590029002192772946589126626610949688253125800616109867313989415190346442730597455179120574967773407152284277773372794508603977910333317821761442746028794900478664657916736579038948177217036536333605568440485703913076573405222792361158862487513622301390963679067273732941266693781502835384836000645023885695576486269866280960833163571024599003135550020691310660447092469519923645876084461940451153332503905109137141025903423144180024701493831451904239501213886452406582303136120571973871515168663350111704283641003407077514506000324533687294947733240573658842952820879351198380153569015974501195602426058122555825857644116717195860373366734416425532088240388490350302613303791127378138888823893985786044545941644270686819761005366595291944538667487362928629681329104204699923273366576783305001883650137718452840856796360743938622701072432582341735480346687170073003809329373129108815576691583648683913328114250750290601807115583874913964925655715577206443890331758135777121252370578497833735207173200428351559729401627815291780296793115809541070790576605215366086099121093616474168899011163355660584783119932276104365317690075580831469049522724963276223461783748840491746641364243107197764754920197885569297780850153427553851344144780978842210322020361727846105306600329085442630879048981787344104455033093240918791406808998459726878189452422048273644552563478425324754325737107885584683391778934180151402209740106366140227836261832385810034310118321637161451271705635349205412698585831569403809322781887938747329630665337697926677940220173263241729702387624239925502321859898320754212565688044037614135096151719802128075912103446379487553002660769766216921267556453869974268233913303719975072949581539576849211800805558865382513781441401289988038050336528077923255864061092809347338580119666466030545904769483280017117693431834801989725546966744049440245545228380191453363257820911444856979043076280823631422919813784567532133106214012211068666091815194173455483214209020891130145049014319727607400576977886046287395551485010840568783198420284262868370091469093299728723379972669305320082292547781232790809452011770815742855438889094335532751252451042679041587150096061689556872186633416663742123693696962874954933856013288562256098427496297580187356591489715130575420871792503922272065512209459528625917592647245339439441513391473071408293516878107506540831213770456820779012852796450600376477583072431999458495953088138496948412600643967990230788559934401554903423661390870447126819298699120598432187386158570961060493483720581040297181646909412123413155399027263678111857942047923468403209320572356800501363738434770510158794818093757186770323777733819658323364698923983899703253457417987840607425609829589996655485949058779323571975374129087679948229494174650602141836967781955883417084048624120505704690316722611450504901365183606654617715702836665724186933438366470664202110802481051954240488681784424081287189829581019714812078765952010386317034551912447666641256173804023519858888095898022449082206240104648197739263039938061129639222036669771599700163155545159041620665563670844922567395037321255470362653258563908753177092104153515605990226013272014604865240112786612360741617441686513124985897232484126363518606192739204467153229022443581606263842943132937307377860173874919153744111957167173836180008038943366828213612479444797121244459249579280826652676499303223536253828332112570007846631812761623740784056305194203295211586548282165906163339575976944104639508830367271384292152419025712301661854308580489423144129411943985276639867205221219483763969149440969279124384434523397091549673299421982372956400605767618278766965598812780232728281348441593443609829598766041477368815466150794390331486029811931509686436436750177892200967239115487089959787040887138279575995305719781066381330184879254656090733093768313733402107868261283242218164398101666951588350658355645588464874387539868171962617604131864929449988879699703902775616923497510548714252393145457188197693247511198458379983361174200521815183397748670965097511523475361058877568236084040050396031708891004390205093789945657639209784649224290616586723018804643504289362270772107994457703809275748038507860938000112557640671137793789932869479313974926870084346267833951363827480444466757208407040832182306781687157576552390674051029671051947276318918890884641536125476427467113123988550196406032824141463510066494566673425831929969539177034910442600527838724023459543287230855676899042892240698054268408563933096493124562876160565275681688941312415252271821596929607676275841066735854525495515869460072389446885341909545417153630424821434634105325246747647148500844773537390845089339670451673751090920262437623634219898351217092628159899046786816759340673024239169308631867402290464595034886148559376697003849150547019727378420972111398952182332383193487505741210370025556321328083719348780990209221650887515173153259149898808526811478891709699499240790896148819407851720799191829330755383396750646471418638675491522919664187866555021268542065908877437205250091426837890909243670710923413459538109759555871266248260255960560686086930875488062996821246663115382926345611082879594588425081874525636288837445939977012932473254024806271694311539843395934134156415080287350569555185451503845788139869441295045801535201143726264711913453935590672812837479891093392904611102434388925522854708479537131662804983261485234376970369103442921058780445954277132964802178039619910561434908826504249524131977731965128799927931018715712951754352990113971819593338191029348116004553537320270245841142418037657035747205272867553313390538886429707002323003737780294396670333870231481485985235388591010451458095353115018333550996225847272790418490670918225479232369639703909731980865999120135566017964422262498591528759174307115100152702652681428825680650662975402647859332318933404057117908301390215147029338290898740011040734034769389329019131098709005418584783402430703069045216297429660378564096520511143795714522478921257861915777706371354218461732606659584278506476507511669654376096226086087351179170478670867183205078976201847148688471163592200018229880329400722622598919913820779902150484225619371284691280716391582844572654046797421126044416783858526118067263152410150015585131108418240021980904363060834587790371006223803572690059534259946207708704766388343223198303671390603228887695528941114158544789547307405441067975304638734312468701557051367562530427992539311028150156185374445435396434825226597335173137286099338158678308711528932663469790507725569578202466905688054463872514762898491835250363565218830703645572528611575061382788121365853439180187739378998623860034142286785372344619931225624204648715622244791125499769039444920410553288660465496148551177213006082809412968216678977983519566348825752252979719710608658061403812825280570796032748592966403453953522486575078792369042350865980032765793937652783403998758887710554332779987678115133991426689818764241052064780567468080812480105423286540597122500759198074077414763859614675857418977391157782911338462760798681651151702062151680901642774652985305359761130757557414760105818036471914447487424606648388302935743081132335440910742033977554463389023543922733482815684700574324245083034767546046738564148533392359863414928997760534909832767885411572244743602494160057478665044841395902313940920705985949504906292901520149297821513308776985596797194744396353587678713212317422146624146901469558785951786420529774135506831369888964165245546510195246243484295365870282677059115804761627751183795915992260311607559497105596461283966590580446989305670719807632409347548895292538398332406081843310235204883636097586905818673701798444499082761508930317961553542512692252773267553466272977865712248754642369746896921023061862505461210737345072576046396388920851154924327102177528970924960924931684639101653077351318353046166649333837362274478553613827979539039676937901283740408020428882670888510931380021260846156653675898968017825748955688574211150491412378517247109296582861088089875385100526672168779617381466019235145749342324378192934479032935013725511049559870814637451600807456459578877350989503922030281336369503434030861223158568684318185936516055178310273848625743644230763033981180114683354889535194492907226543716931956834524991166645918812617048529074235861048917933171747031916051062811518391159453780242586583642219397431688777639378601537621612159533279215110847545257384037595908247214492389789064277649763364499742315940305407743994955207447869382299340334558837961462877538636602624127821098666419777018485839572230000265988609227068076380333513357890394792929002356035028322872794687018967974369633209646015532867189412583853847212386321841714612123556991976494971330192603582732800837969357719222387631314907294543603179442673475106077589818849025955441038051039305936267610651619236409687100590963966719193706352401583033178385806143355018502129763609160762964062800368171211265506161359117457593310541756796894146501473630868942064336224558843036756272825862733925626127167897240946517160808300379556189544617657440402918642272597873551090509251696966731589725327320681748165787948510034503071249346325865188310227399639651854204512186216732537281316810783652906264674983857435523004664949722794777262391969888738665249996009895745404442378946775033710252686572977225283943866503794666593154127079917159118181939900673746386212727865998543688979228122023323395981239747183441955335644382588264439079092915050559287329273728777887338281029415578683757590142371906755383679736991299817494982257903953740530398915523870628429386774170239370982533629615929186443959308648898106162120452293030079752366332213655292917285110305470010317075668649169316400870594447276720371042913246399863492947184895212756941524455763872124793949269288546907710619118979307377253806103650587521116150476590972371375876703330964863458871458044616938474309564739841504106232308987549621460246919395855003955753355350078520022824026223757456626213577859638247162459355960271960724832277115200977892343955709574277695255501760931364555861550576458037655732082228965747224625638228778687632483054041659424834002049535796194084807418990871030668224369911595113485107396365316947931250388042701461476226529323346438457281638073460218372650981881319478545685464027303240266353571137955633176908227380168460076480517443915809325793718593972158565100438253352565543251431858654080900802190845950124628132281668442064704914033950219975738581538456433571087140986258866598006242520141700023629264975483658763234878266812074984888514753371348497345982086993101537792997018250520816268039191598690498897700078769013496399004771031064818711302075374708040570199731770221592377100510997993294889876986185210957185198371838619181922250946040023185777241770528877734088761986473623470336941548027024852212175245273089781364596901915480648022789598324058580833648600356494387054024356780790730240325614369163732350903414356093118817317920715816224925015143602644155348301150172750257578869736700905598175586767183097851287805678745652200800400835133503057983423248784916381113217397299984349681631728360849985816420113554439398814464197406154807309883952573554547355588640521690039952006093778353021920903244093579461644724248232565780480086836399770091936844200670449415940481211319816581048868382187412609323007879044142985924442143810576219845910950880709427885796610593424122252071973685326417974535812362162519885792326392132873847155686455346566038818806709791792020062344797850216828291151980701749376652224085231742229820448576080654720573949234933361563893958468536375002367162296294405231484746304022189304996003693770723634223919053660159343271123515178993711251409253609454069778438063861576330807979348751736181035135166360805479390219465743447395397520367160607426151546665775293933102834701037215550936839725646031375620733224525011559812395769183983680270168956239522458386705328475869428018969456186567111226981735153923539517733131939656035397657235664846386214220849014212596961610200708914751226179679706536228509110313278354499981662254239186605014341211325116036244017297335946343915160165266640417000528955395079136631231470866110907984493401497280711684577219694217371368954924924806115946390306569388397607941018518301791040485123712844927063203765875158842716764579527245865029268965785215233433617368979081248679761730494372210630789013076475747032307243373216551663352025993264013974258154764628603615225956281984138460414606751105239588132562646421073807477805051046725748341883024914524756202547298257933617744000287554463521705894648011906839823058174311713968509909883770293621996504383577831072096133983899663167605571859356290851648919371875973828421865026484117401713633009953225521644384397831519028886267351729537749367538145426390901616045469224986622633812414015736026624466716954304276993200239537476354392988757272816946248080682806247887428005481411366527154597192177888427804222720279212678835675712620308348072522976508936617302238768201144037868220842728729700753866350960667883752611065562070400137901483840313870613658678260043680872521383532514523783362412741418853253434673382596851452870918013640410839966764146013586548147359001486840602920108138503406576434339102058692924816198546888227130976305148667201377454291250354410872923060501607610287596569866271877438667889663832754415603834653795063583711810852406954245186619995946940259863823009819477244635406536873004867926677397209920538529720684778747625662192414986142111679813016402364000095441813533607026134576708144779483917842110357304822911818286715349706909246628354472702606079941126125030978847086263822174593339701190980343437256572770107843766799864454932923180724924567320305393392505119292100491403137039152726386859370873402033662015325694801903821358999835814074174184439893264840469839956490046707025805094612268465510182396146699441908647116248184861316813543843648908335930732840178983994074545010198837979452303289550846656742449402008225514951201194672038569122003503070422368207536782724483169868804655618533689868573629882441951775925713604492617740624248073334476412712553371430020371370941520358656014360965911876460291772739235983676504669781136515655913371404090793355530445802649299793635918847071931891112069121822935074456002214793503132000093222163546845439238004419880231243503854828666826058700641114784178914349076318518816795603414815030222137422722876909909332433252179593893792822285982342961484001173698158464185397301269661704451794663267815886140327641474734320753116914881860115496484532737792301547373680596536637042011449521421963918984655060653675139482542869434567111457702145007954774076748190348080194841884623769458938349945283973908846352070330556072176584665117057383728986961625098424817089252702304842756745651597786074672339194305694718397246293737395427128179120212437079803828187727654278785032106117790019241892632600589824723922556826378258668658824894865427002561648912390961708008360616706355210705013181546361451636312995578095233153371210929605207995093501299704846787559851392203561829561092484645424861373064420038640550055641562154218847354413039097688371641253626861776221486202862267832517698071407386740662800549395083512067499365699790979107077401583305310909301071837877952455574385005378029351973366287113677034688481201483429391758232831850448763776811759123687428891851726634877915522112211264782142953661701226139659831290357678606592215500800923419932496143615351646641198403912594818599160726055796696159836077986268817275636904693199021591446122982888300966416224139900052531463240953509858000584417797478292607129524017210439318926388087236372044699901500779960626293090179110813598034033431459694432579091720334813725839857876746000033056095750099691353871613937853034643811751712603651565693372753900533902266336909641580932614927949379177527694680424782339224497855300781291495112797222372717039362891426838756255946202179344130198551099169490498728477873127738133015120121995684483629632876697383442367225043436485776436414866383014316081912210491332692526359008788065566700232461134078028710206367760659362057998420685036149053335641830859925760537892214210203113728203356245117192373477364928031315474770858651318910030708981102243859235227813443459818789863636823861686905175437347401971002005676867872052525922009014082877534445916666334174166460637611111057854122883067708696260753811384193054258328189600132275013589463376925723202096564694395269182864693028707022730889710294220246399749145179796801499891584307340094666572881417952723307930273388569887206380360276678456485648114546566887848584480557634115693351674601080155008835039969588366653508305907884481919941996754241298148835656290453903409676945121514870505527299483083091120488553261228583262618424354820035025521442426273368798294917160606437781064102083881231346281661663447741353109856809814233744536075577349921839631025382439009495188292509776237743423875637961526847485885973226315495652943723765577717503124682632224083951699734691101754966197180963635856293425012685182496326892280211357662118476502875416342924235602830812355539223656977335369586284039881197318484121509266295754400299906325273866386979932494158347444658506899340144016972751703037378416966424122290913198861613708938957726654621121514754459801306384591021838502136480082005577919425236127905195911942838206594073712155382639935079250111775324344743338627642168892191742756389885862044998655380041708150645466250383027036796434283309845903951781427608593718256206057712626878777275176565360812065854838092289857025144644409868315099585365987225549971798975010727486132713100290999745269322607298629425085918601535861217830614871058916806949367990140591870701337856317054055898208152196948712649865554848763098507515487628487723631679362399753001048368997722917406010610992601215524442235542640000668686230718835690860699776556774121295967368158873413769511494005414685217626448651288322116062802584877724813863068072029096431865961158741389191286386587161091999089531842638097285592214447531293350890430067986935128563658504462937398338620531551639553858472759577744225891835882407352545832391248136830903702684138316470594928735244800971937732375347451740778450502653255312962306226504075314086063678313966379613973075755606947441737542562678318175037377924959093196604514656648702085932785168165050798262241378213761787105355709364414652698659252720519402058613345819959117045800878071676827221145198044140528184763726339379892231609576022094523914187744220410617659618620639618976997956698485737610868745567568489343106662241953716879644564191401902438195091634654520757288468694348970852308499853070836260383556735186842757823390735455477833658703481974513014433951912956839379263849428700372530566238387508910841277104835979335895023544560449138109377234823026793321188276492069819161764534821677012724741096448492815507755599652415974578457465784559896733370312204136765349782895218162071440707307410694053421727614373303838469334260512053984582027553756751470227132790050569974929720808555595272195813800625381667222525783040676943084419461112298632585667988768547386842296186322739833287610408311367334896056038433457756017043468903431817216707793938186043049183190776704402114125933308362723676740028998984427109994629604942429836059415163811304511283128326441103548476257141537422259574912497025417040473224379106031763101777094669482967448392527861470356624229791493936583312086865794511615891291099911597304531695600257893334413896154655922024574924758470342763584275988507224858881428611183720922581470444360862043132286768550007291811510324212685986176828675236731374946761901855323864186062474059655966541722221228468120955959762657823924785617116150144248327799623706912595255862732336972096048862412283396444303956077370522521007597483581446382671911416351813305545284103054256233116768635312540521090062856875729983364651536244657987749044802440292852432791416826753915129949131732406649079480042990755401648381437548106096331436491796011395603439327256851527188081824734733691280616955003464545998117663030761983856659808237411502578665603475314495772870874686393499400208582175020582511752560789842270651188203857515495743929902567927273490603793304638429374147884521151124980928768382424181688811900364613146699322295378621479588960192586474034812522240792579082383390585867168208449947760902048779842629117779854891562325407576829527830662815642431116033940249041406154427861501607836759004706338027022857839026202211888173475009141839146323974583456625257451064514150284956081399680592594421422808658278023238180154338425179582491306360858620987530831329295949279317814317868711556902003882487115173807447248777997230719591411786639087878250554793700449987645943916360800242011350023642237410347162591025897516690169494955271146920002226138014519961668553981153453256671450878709551113460788336805541820718931576879014325554803856774559293938798264564835646914914680295240372752673916654080545725157476275976330683527407241971500072344269064922700147148657352490382688481065205556464407058288809574757762357180436681067813085889662351891091829133251119885967947520429336801624714416135728162870393343930232496077159823477866792502623019622591852681798701636109401231375594123693416568121008823272112988041531924539960582714441960200327468009300757255188533052206653712772569724925100585312072055107670923418175246410251704003857505319590157411157027703926427400912098874596213003863862767737739726301448814885140257589073919894806087369123986477702539838855249747335928844150087860533922271757290833762586713436361063845256398170161903679807165778162230857979225181091923293857797240799513576105040450132713053803646541021703345430402595292151758946817576137849594624375053367196160763468254442461161487268700118325279522058625712951654263898622421562632844759071706930095830272285246508182020008922529623604727614191848496430026348560473861012280260428598512100220062762548155426623568769117753748462476999155109580459134292607901571818598850985110603862632438110471534323614107900468584380096247648223094683871142558477254565293738715859940172827647237578624184797406787173973997177314661672796707487462407541155012615604446366921322513844725073570718844778922101579133532149036179831018203354255384975563544202886260789934171546791418447878195899424552498958771744837518616457956703002475490880147289456510527288119936563148446505196132117201830861910646300695107498521253353095076690286893928764351719235446032911091328756483026174779559500590298778776536534954009757928357552449729334326316197014075409028838008155157963780206923270175254007805315606930477947481985094027201433953297990913617030596340974905383367146715760658904430528609044677846393647055904143381106232743672592872814432330322582480087646867979810204858824843577122488813498277644346566260111180034027823361966539824421993500528402927080817530903898649122136041171964573436550046075777555520577422565959182653001484163499472563225204434413757363389906659345144975632190377620764459133457742539171521228441340377641599555132683813093129064651762862387669173272949248479019179181210840636419921459817736904158721683210507799438771386565931747137158341192677987670693578870573162030236377347364618545200057729113093956692904446690864137446631632433778418443574141943967765754191320955732673399953641758716560240849563331012281034122342537154280836539044707686078019962880841524301546125624881821864167690941944454833222742879253740834879032960349450855271218880095557135220463098414297594297830187582072007744300613776307426329105630010747297710496235090372220673866916206391434020844865645360234572611412549883073259930869104409209228769464429810635633665283404169988606943642014658289894928078748465442089858266915961693929213089534802854177898214833642565770036858101167410636176707636240854564310844830533601013104939296703197952476982415433526290059624246409022477971448256635814274983329135145466864460897529218458244684897658135752633094152048773407740411139646872202629751140036065432179927712762316518985899495990802904665489424767028440158333226283929354148783936129253581325456230587406331588687048724654309908639944901306598650359431853207269988174012510333638811964199805747827553647578138638988824302321054059664684797160425844244058464989369016287153269339874369772511419530841859535471634848986090758854978615921637108608702286879490034419594825472777513680163798917690098163619282740489575791762939170547144796489282321101385633224724721801351681149387875093250944642984907472554928979718153609399240579771045920736348689060473508394589830855835171378413039160092218837355472827338215551820473757752788813013299112973911156908707518935872702386008092111182395373695727606098414255895982481528213885307557318738732295320001475985754808009065709731699752857198951103915867133525460669904695009821653639175394786470767903517891761739682738886489039155423057314464685749709514458078649480717476982746945643874579001339277284962225776113305940557567859419013753374201381474974893080063309089769191435709296521111150207136242070649944945554583531243653535851988248614888467579430137501421866118228094341353814750249340438062435667562193266984605970561908226100544789052498002177803154613745534770797093594484693904566223966645604393071576643309667080738767555532471857077315607568200734355638314324817442476859018412262735760143776560132754446942310213013028563196092980709061340984239003501267927034920082271770539541081482489945843205579954442216688589791952069719408302749579895532946413092111488746171538680492597755238659721939150928270189181515411038719722816939795866497580652928189889549837151371084019625797970266000036056155631609334947282913113925362009785285874913620196257203042182053119708186992794077505588312311933099055585111435048466948776037472476133204581263698959507050409452710025118269729286793640316404787322600246238702722972043747249069590575214626513261096621950878341069705117986599905119680372110461410601435731952016411476260741204561854340868242164346628006880491875185785784653213877734873370458893446942434186522323486518970005208344985854822505726305464434001718274252394007196574310568150003499469151050560853246966714072718120962492966519607195832052406526644463206015180018303148007839559637848164966421947662201814036723813134453730930088663112819406421148768796749047876110026662679928250936088065878509701018623194119001640949775015913644322040135809211879743428357121400824632772972697485363089368315142641308382540556652541098452116510844219670730255003138420439557786918590584248080951756663392538867877153827375089451628519494134715910632950726711397983587491375571252563176103517719093137059700275478880994954768534239834945273053719424288984928910360565437950433814860511768762823463344995051436892307886104695449280688003547868717086203815243371309733745373812931302561464971086615840759949437712609231103144355064354572682641424746339932023022106758711390427237619738217696188758047324942577082004474024896654799568514650730723725754577441067348802286778804676037701499656628549700168829836175600416347524444346208818327599429532065446664409935700591433074219225104907437913423022241424391903440551419947514559524309912441132031989871387374942511265598864704892486598134998524894971402774972196463558884771280063377707226577843998010735293098110059246114990727988087383142669332587973758619580659093271353226945045622983393632783312299829929928901055592028264930308950382208551660638950309177535586326908119233648854444168872920328811314345322488330899108106333079954537825325201276826243447663906884940478266500481105382129390732568118367907007360036410780105657581253099524609956403419017337158482464964434369858983921898298516575538863815712686450370935114249030594853612916581437583320754494576585757118301156855386722374922062018887415178095059106276139950724360038583860207345213667797153780020000361450014002402513685060675786928816889046044650135457975479270182253100031232437836157397730655551457559268510047511885488710388236763865743382157626525983722926400266489132065293587430571076832013790475017851749162988136871689551895240278992692043210682875192744405164384210521350436111608803613012693831502733046109142279070837512311282478114392369401672139141227260311250680883515818553936462242807837893347397632835787626591793350057031335640267595139403102490480344258017798710709424648153563687615623056833069538304806507724951269217079265722029100173112821005808619160459833290665151279626391866779996606720926463512989669115053015626037979345645325092080594939283107427413525960563101675331028522964581669776726920506011032913122433071976744091277983362690556433994038484727019641227683784378893576993366066202889118261046225805790520666326635739467055074277500827707744465946844296919736325097052276319186691177558836457755195874599790610113958991461825483203772626666269902635812512475116355906379721795563197355838432572553747110710954533234602494791389453490218266843762128320037666120105748512623620111684272642978478481480468872465714535451736383962469055852653189561991314855872315941568456331881520193139964167750185168595461821987471719805427650725669093284182725154683051475976940232883306055507094896715605421439460925450649505429217404713503712535212915953136146312966288969523850780849807696756224632834628825623584693427234532285597391568501069589216915819000116074344754400720601809739225061700226044259655911438536199400657828895186295321059675451829508051357398910728680487528878370063381238359413515200403137763067216173485325320523138672010851995000240044656374129322359603581270025786096916649705589598504232080823186755047869950125410208405766022320361919375884991425302926379218874337513564516286356296073712628985978523272189341185280761070132171938116289133229325886634133878744245683264782116684846849625661741571316018968183092493164436858895272426599552208930783647157022056121051939190000782705560011816481118467556334495924696637897186497136837250436626814923259570729741918449681755063823032008752439827342041480775825877452686479797821696368945710992952412071370765968755165484533986585350860041691609936633774341894163946616804327516606545226724572883485082565796581092998001737486622484650821393280457876215678421854556567326566789355135146734331532140024691173227803397251636272022324399348500597533898622807952909298581552654232911703189438504170007403710121930891154722766007807481229561303117298576481433117253154275805338697404873141354358131885359376929977833225629939507967744926629009558830747221918298453801338659878988492290582719757872976430494376395962858339088298107176634041672369869774995667765856162712658939413733924737457079323119063504895314859345660991753270844139927545650119725161368333580831019696394435693394470974321653569260017122032515533274816592162416446960648500512386335562702403286893927104976091277702451056030623705589121640764460990770882405589734864352031798128957984829950195835020315895138273353118374200080055343855906263048278060430262373528883451250995095847254272689262119294150516439910876680893834765781232734799754443130576772940227924420989662035767454593529933074787238466564579551104809377652911734844199364048309064263412764963400404040920920998848841349453983082142698478870913264205365681548794321931000802723959489251840614559226026856452482001770333959462382658646938883599115094595920934919304281682256525456261288057827723301396524684620800295485074590109954188810285617471979422307529836491493895548827170402432593381042934736871316935274382424893118063144450198417548765954206775270221345177431390318682125186679981288408175144142304035792282859342996291109242233353732185064390771727063060730471740514161967833733941908628241657272804177597399308497094197126706219777320670015305112758154985219102233746319866767443079149722137244349720436918536458995686237954767090748511825862799763187288584204785136061936714635809304373194755342853128236399010215664070921198226149287777694935241985507316741135232956263072691374605949191895607011273418815580721769078112874733825181790905762312515502435155348138752780345441054644463919582431266784991549921355648067097707890365568835792733388383001004049212526016896319052272949255843609751794589768796489830999550130856078248761637406063101690196916010182244063931381623904979591090140251344949899507056478415365619142113622973973896954043924133164405470713219249690098238890601751687824868730715372230602410777944989184900764314779860472626102295979178760679476575816438214318317495291037135849395916709953855565605900074105269735081170376601991468615360790366919882934165201014413829437707236287341448548048642192162148868700175701181066445598196983651660866831672276762004229030687950956493811469593379043411138437272975468466760827055131264377117638550623562342574816769849265974806530350309853994946150963797135235780312920673693125633252313464202750478291849031004816677797779150306359077118104818361795133566920073048186756157990581172523052905185896928935758884699510113425656670538220371859120107428638303063969374812968237865242313458004596432446277350985920618459928872479067680204067157414376777145742644672629947594217914437845954395401436777341016403538043475633607291144431557368030324479849888099317049220572110941261163512772736587253465322718604479712627416582094609256429057032973841757252833030826228417938928318344158957771861829246003987614071229786467916390270570684597346673955641262306460121249247283577492991719046850382601892663560650596174249845136546445352188171155892728369890552178116722843929833286842142031186132255780734571923315829372345719729108107659157592757016865969763191974543623367840017939608199312106437403825015441177453855423965382943717937689011887713018144884969268061932471119547947220971758106529718394955672008569857671163367257593855960306703865150365853461633078551967304451586355565510997066275655820819548606945538505762833659102225466248234471458025155717124109136459699217639695634567931218096032509356797282457908619594372470836417289503357302595026227926382657888633612344008630749897647240771682537317763776696172477941040536392052453519822020041548899516267909017815587058448651324771243673486310872292100327869058399556915141381856544988896076670850677809473856445627422833243219174879419002782581305072464227628461978656896070620253375744435041725570005461206167780680958303222257148928961272302870253499446400234432226703157892024285100172900052059396363423967086987081071395688010718045870379838313085790788952765262356978212364472265708252320595524260631012379037284983251578075132192279639988403580887151704432294297809557810098407428984515503568925486593520429559084857035176530449519819426412911419683485449000942483721968183508893044855872517468575393032763788361616397650543532147783411896143354656980973798555510816263726737622889387798851844148284570309666113051896850510678786872326482775520991480103818576358136587629068215896288188805554595577610639948279055603161705427858078562813400019393511918716138529685539947221652187905936881719976895865047860088525635634461226690188759474935840375058288464817740918759955972001194647852252370848486563131642898611608757009534443920933982738507774904250317907737021733963910574059063194380769273359332921563867714824519931730178321095704201500593392514792221105350914378962146239387245357338431710366699921054366996828685905222776834556114435889201421596091719290816816985818964808156179198246412424228520832687011607307153518619975734676053780673861278064284822791286592100866265403006837120026236293695758414954917023217875193445038623302566205097107328914469459361668330659270014431971209680211586672780762594619670715418823688695156292862699910214046017768781795442981431911175412760437155266944294447745640139534389256957780930896890522749066806889177244554400766320419056010199882957966542817162595895652079505697548213791598259203782905529748721535507073992448720479517991233310180807301025680225507839260138809617877330251045448438364578965537302205130100292668053113860181642856878896516208436425795108719767665560139619245930177979418042768973464378755583815614369509922707779303883350700151842262252435920992690162264097815864554114863683159971361472943676615828402376012872701565067296653239376014529190952166307508887080018395381278198286879337490247707711256722525824125176581188349451170244518140136165610099575275959843666668525454912217576958624387347106281350120233712302846215800561027935321567484744446337561601445303177431873400667853483870962126614459788980694350345480818634182855838736276590278259182355588559731169313379342660787426200770726411829724232939305350522406092388060038873164429167998360549183664316384187345906678147418347435065213530693720832492816748128795556042613302184472152688291538335789206196968714889844101417103204621193443192466716638157546540663270639005616527234300613574866583744430221876852749187774210787732423547253939271337104501072222276555295091627372406550904330037502020020236487661939324327626693630295477612161815960391412761632072130838052780376098246864919920569869153510967276521716219754016747398253338628776575196787125424898889980659692231401328072107288944346049934961628491587786720700345666912717434514642179783120957144620581254139305243267830364616990173525672276512405609459966797316614903866893292767841907575792579245213887646725848783492357279461042930682792227881036209075359261006872486985051013934756840869844798010039175079268420619820769197561007049783328262709085839987439414190088234675109171279201086862781769462976762077828829687769415380578729050480160349541691462457177568566351454913635439690656746608210213490007872538902409569771769258426028668137289750231296442785504779987062773568599381899549251123302557921832882647382204940676621029937814936141461039273694030141441940810460499210761433189005610827533630358472200857237942607967991893270708715193009650850489485424691194912502998676962638491191987958808713228987224497035598617429097573537969488481391113604773135870490121063496132883096756449275759945293159630349307380414199815245152677511270728458901385425953274020741856602787725157038123763416606184916553565209869370227463036776904173798390689153384182951561564023111575824135106850684470943182901289176919802610460906602986964500799703708027956446993239548874930224483834030656514963504568766386384510890338182229236713445455277906467644163055934359162061387181481620404855109422489583813994578438122309410579251665645575175450684528685086513454174951043619306297570105120812608946147761958585609662854722699146104532505621974033872861159056189727149041485085197469501469465673835608491050724010512163926649502327271816223831755568190099638424227309436336474996185039773443347180077008773609830850961530022883970664578845930308612325622925563169000280771567683363884396476612158929326215998910761141885272061014516911204136473021009691800938192713967347828341578606903934102478656143629538510821803168472276516118907913543461091363822638308312146293929526052246449908585704444539735103535734530625540624812831714394297904466895304719994128646784775484968910526312699216027598801600445490085705485212642992323698186957941724102286816530430110422478632043704928195811117460488576594940582170734851906286200159374857434163425761332824379189068688657442021894372096308469428582692151612301325381920389742817303398755576869046148759996254766039349178856377775089715954548378364877268535861934337606555732882303828230822355012610790772777226635168835077097789105999095632913644867272996954014897132347832747673514620720663329891324469193356542952325680364135359355979944530621487885560220474431910444315938248405649375199457730418369004141877750673564263062873843561084606790436036704515598367889161624372076660824745426665645634641486464497616797537538028761418692961284715984584716150607303832149921017362511297339211327158808491650271412466330381626877520546018701088058993065539408251667152433062343991318471280603697169095117187273295869028152377642535604788349315151158624711173103627433220395876599084187671992464917522197675133322538609668148120069507998466644860442008600159421945601751197412185041092051838654639966912629717788360655769372282676391834308091063587212723212595681167996850599247505998387266690128050941819759891924578721279989269979111018414323374025686908123740984442913120219833962430300004780268449726663349330352868690413901990324445016511814266951839831451798648535004620090083485049936681158284487658969778567850805869980054955265174992972757313931352163512088875402521262866696635709239823374319283241867725136956602371757827362795327636781024271108024246036131017679849050141716196870932258126528334908014819701053015872155298759908272793025681808558836177904058132536397327381607975038199579063977840042821318947486424676777861767953632919492557409160248915774341638015334270304197138173264633111179967749925549711376777912270593200620408179351613611123363658182628592800637489370044301025277168548207433610433799898084040674785648005694872540979044240742270215137041822084826654483893100062708362251458564331232376518300964253537973539749443589491813399022638667137930876389192856149118381775147232085253346502459269862712035658460962744566108741392547653557882504736041187406091252460056014506846937131881086672398045367103785413640971592154679707394495545355730833331135707469471429997107959612479688510988018209535976384895099886215314961011525976789941762536046075113629573538986763035819850333229125044093452104891925505948325776610875556980459594373117112940205439233084380633956467318314232322065184411858810497913023289941124703058775102057474580308179938348964701581798012227599615619933264193257049675836917949940475297293007564417142643226991433178585567224480430689493224512785641678135307943693618017238959317888047786527871636588324684022205999579496132127475692511471804645004736200370709656750047254944372758606163172273052660246107205736194793594581833412477427980437199195858930005614909612739437224839226510574853294352960501773801835422490783107155145369151774422663981327445861093771018966423633802476742962853480719762223221740541437767391365289134603615626347919662071026214551042340581061269674125180487487391825011007408520150645792651695166223610812000646987267807653287290342855790376299533646046837289507338379300790998259069169811980009842044013491459624347226534318394588075900396177455721993722265424824429989965241454088165919454798582307535790899182284136851784809799067066215301189901712024589201640624820970018345297621967296100826548710624940906726957256795500195036373413837660595384490007780048525473148117837388685518869134078465449601737655157685664195700490613107409658170804094926753876898253556021845998233368344406210161906275394147443240088132480922661615632712934247550751734827468400278640328742672685198337252495014754961688837964105864096016097855577592204880849270158727158955010025664114777919281586158623652264153502505810739091208044378853950605963472085654099762775396657169378891892053797021260656428366683923419769631140063881040363193357442149672360205618827664322813136921171353116932421138329795827381598022774545082720917748079117005622041117723433984726553877886429164899184248784951882848063812416728843250949285489485608019573188827157746376178282069773000631066623989003545603327820960163814144531454757692208777721332195839325361423816554263704096531089201798738554759985013325029979206538075217597121835516278152590130940844236350815025753335257880040113598297886825275950066592284847391269709830298994017070746509604761207069709017606350738564203322653665015436791445194057738951066598368499357074743848174794266293326659149537329311718258069583225788376383024709385636453315452111460720337377790052230917898986026588260677828371417579565587444739310063947461956468922613400372797494725120133955440294157471604430598643720106050276543381284983692076109977199664905750008113728143544050311669164018317428512288686613078267793608564279804728310800615019756639478346264360459948190502519378186819011232806191367416053536323003692169493977725680617098770448476614146356793872126822136589332247514982640750206363897705252074370124710986218537455050442081920560415575300113886562468281991233130350816045289701322025338142567522751325634956635970045722450289277347138229094746866882705266226222381044012137858828335835057364642482660915371320678899688648506917201009508693410730809443971297034129850767836339072728235515880394094563634227059308643243418566312523915909980151972881813564562121003746708574529637506111108516180845601227340460329237285342601783009182199819935624665169404484495770668965786175596309448955760818199564032042484967923253945310666829943687978094683347158945910250356218948659305851072104206971645555059611752332179705783016009085488868514468510905017840500121776030511795536195204126284581092297869914582938373433428576273854362448293869443049305507857825777488030339080440675125903896027391105568556797983089272957477835870813536210957287162643420310023690895512267415096053227845714323279985976376719823778654545508156488866574212035324692909632495163734783188710610792837024385010848556068893842031096019895935780205136405733150087186088704194964551035185804116739601955142683077431581686216483643084710156268017519387194614196727363693695594733461792292054958356975184473436671799514362932430832677804021822717319281318374112318540436310521961661850259188008055118362979381685765944689719822602121343122131886167943402593672877002838854657916526249913870707282085097941183659068261846752300300421327009212003660101318546167914454029974551847342431494527921224735329296984714837588894240921014819835546805798439297727337110355402500454257390957986533681875417195180648847257632290601697811305873967643280849130165683361713970463522061646500307662646450488625590752010142511677549616691672331625204500454559540721535854665598824899169143959652626704902129147151738101973676191619628781823989381356703622458749402279198829528714747933513826777871349662985123503586832208620934113999189138176269446062566123152340655269379212989368966337603023369747904740354190881879339670534534543645478922691791296385503445076208594379259965297633981299771575816959340017868041073239210165860772780210195382226362395044109276426399403252765969632039231026776792152291078512743888412739694420658128501650904955723174990605102395797746072958546297388716526092036184181733979030854149785210938372764572837103216038033803552913167243058530353508422274655266850733561503578937213228027888331126340057154735900774906442983064173431579274125317651983303248667811119819004467302310321276883312241629249528496540077124794552282698325137007569117436397158418860765832312413494361033212340886324037327909540499169750598697189799757773881305794468226273642806591357647252249500332557794786382975841576993618052098331290256293780995748296219815261727552874373752622495718955679685115925615420107373887612253683188013518005245998342247360344735832442111852485722236773364024332942023827786830161535596305269621811321392545931546569883782197978591201365069374432777633318626966649258868192056250294460476702139331545913556723446698344091893743582616863248949709377363845543157243789546706054151208863204301194754048552154946181298640704495487853267045329427120624441300487490920923062542357412437721526557199048986393063952453348219896977964994416482044530517389222956263928200567605281245840029238595755466489888141600287556962635187576569903963583852359441653694897000688544325525612773463997477429874171478260048598226014146918798657516155771487538742353164668992430807903086168468935037080719992889805111771354122705450894273200837828190485702658173162973793720153224600501006184144061369300407173938078758665513428822615860275175572178673607940923459542695810597394822824919553672950315330934918160270853788455916181523001216087582850594869632556553683563589030880053800975823531869827731646496233629711537146281175061977412564829298310230932053263797682904913489967411249753159353106160310462820389852113683173554451862045375622766625068877415400335534127269684932535095928730617176207182499004977977680663817933878736805520494740917806339316739620713228669107093919163009736749233181828578993502812724670832985176567150878464860448187741792154742059310748645859402618351376118070633964613934159915217370004279383952141766826462246754210663724993849047835354881255610576660288198693498503529615038551933088051466289244184378186772716417175888652327135966232934363324798812083207918707128763866091522480633416388344115307904056299804058827331005006822024408597527065024628082324121799668861504885865428139429955619890681233048114686682832703322667515859032147295831140046006266844752745470953648138921465663334002804822583795328463051440465088072928901060325422566394829686505864514668965852450616877267978330063306604815867606572063459519274976590714643541050697877973037539436047252789465456809133284727837983293064604228106497279526862977181060532046024336962771708780984611268854357519267637506431431970780566352511004001384491597164110241153103760535064461314453226720819713836369892963752479535087293460994147185356228288412297789130528700837281601409709487815468864483695844017215990859743355096842827934285525459208427181224645918271987422336986776432170399559478020432683304111240710716907783914259047171757147085744608570627281104147892550031422388350034716215963253844211676981579811426619203115170794886013409064757301376746415551357625864129936066452770370809574572050954299886228875249939017678490401695088552040450972588659492051277852236200879897444516812823596585697148275436555725429182580326605759129991914361873148777274766191335059326106625624637360526981844941711342881682736551606449673831113770276127607671290970908331799132936640054910131731677148096340552163665752508995822987896679369560906653367665024934412101056431443056750802310037032403017121505114571411803543876464842688553860535389032325708917089563071828139590596510878215911268678962534100127185143507958046183959513320494144529885890524672049789671634606463383236397586885494334865352036912111645535913870985542428772464772718397029853658028795804709165982235872953372779045017362663459911641820286637437714938860780822518081757098395328525035858190759948324948096277355813123704990740444991444631667892581650840666221276845899140213552800010972667050754563023125845923010024451588500807817904357163238756238419206040976583524138915109819308179443749346890982293692921491965788688662650323531149230717875258510733668681271525625901157351772371723873136636260195154714187942999082141215937628842935617724942867295255306838685400816019315297614736058554453285978149861518779535860792942859994386476950026518137259807212745160072144194611692844218174101387404697707750263965528345911621219683306447199822254287473147001303447259578575692270417011912660499608892256097061972341792821807895778335143843175988205795967995502855244210505650187890853090521572544860928977164019388786842305264104305825502992804043187527870119468578205334679336586450301619443883977825095665817903935607202581480799408183763426547200813287990890893786590354509658716754630140618932454798512382354725592033642221749443361791994864278109721467392838793612674074845972765727892699475477606583655031236011081949545527826958993874152572769926336310971556229799878003409405961359864622355259495188513562873815641311827258223730431009810518450098253477523481304025416097629597365261362423572209705002753273582475347815193448781351344579508062817868265333435172933605371564900553507514353951434729479071196615641347828768916696835554779306009136006134575842194022206670540089660947376583236259637836012983843287668867387945645705954560980498971153452086633047652726695386499115466709578273580265305949623356094951417486496641462806869046752664714821927885113209917016667396233816845213279496353072465286573021256557212624674419368568194701426565621557950842752000413967585554716727265699295015570796588207202504490709140272343995991168219874847872739700375767911953403152736685821660511685819030711248513052384913718507873486714316632129041093978695225090921598627916254338755721688502308857917209677194547805244275272767432348153525154578851368072343474153467204562937378559590653737282095498812575313428585694274385454388161058289616954097109575193514905359569353861724057405824224058092646797398965390267843328870822279616010915751875235295890478864178657407166283893078343394175886546059293737243599960961277680762141732934805553827025259957624718144389753543715817462873523050707127065921006573646507116566995762944336661072522269219520640546161494712654989408513198372159864238689973228599059140842608031346743021887405189319962247434700791344026800536201405109964551733464246701524135249006682095944576639171522501385178257457931821361589158763582973197816050410325588222744158225945500285429686441821889364228718996450578496441564860918931704164954076061429385833382971151605850182547122024559895349849108032987249491303998005935335288541860596086178218791307764311862882388602529478436826609887228450867949054192466927321792524544123709332292765890129839140490414820994434102495690352546320310389913712470735838838481804342054014732526361253258312506307389248967710712893845786063571079956259622382128359650442181693029787815327172409587363096758526767072962104694863673055396459511036428437678451163468422360609825062983012549865338509183834753545415674662018724702190589807209711937427461318673251121989989797333776987825526828762294967431578920246611961481725763818691709272280418572974935425908435594282989574603437201980571426496920436273847248665026077566289541119854491328681887044286182367889224378078873868099107193023196951791790047556713538253721053509799035039405064614715063038155801845618643705992794473624024115816257565711907743571502346087641093289872506452479572206836830187283885275492874265535097257700914479659610370372365098326335832289255030771620046399457015977058397967097540606202174267179539767870893851052498890274149253066484701294924671519374385643318839665272591202102338815517172686432283322023062129605913433323167412973400815149903542625446205733607895243459290347728408664246628485431306609591408048270784170041330222623061148888343552242034398846976362693933781119037304150374892973206458865490405262498154005265420646753980292040860081591501138113750763954354259742462408697674881570439013631416157761699339765812596111031052088328214075286719818604703107697750247429637440830208062289979557381042627957903843437387976793118987612650911736134311022486505215061521579019429729533270869881990055343946542300335528464922198812059208632145195999475128336717056047334287072227073083230350184936205452031914647823019389766281065899587081202900780337722197576722427192121904147848792622129404988123904872056911834696620226817766393400032292454012554541427148533910558641718297477293817082943590028116354675431781411458262813187266762199535509559819301987160486735992196371290279228903816063930456996902216222522642296925723374709774644984645831784239919369003341697380766858675717701249592465937031691910631720934008383264322978070738661271117802398254327535887691071035686765992542186756327583021687783742707069545845941504172187314272547644038110066879109135126579348139078718460317271712382111416586884454944275220694093188549115808836194797888965374359215118429642859078542601429073564142405556255328782793931102028877866728807628917374834246623200883771882477003193817479804846261198713311387160775211931801898506754247798206595372620002897476242948293277311524662302985576027309508355265956394015526312750550425993390643646439781046991751319090756343583161387466416827455988851958682621363213975008178826733138708596878510248280563192799766054135329757860509022244201767954280578823913232801332604433247470721413999524633120711886259167061916961926519071021257092978462667791639918381378291181458251305549725008555065043518096890896009931058487493938134751202553833419030293835454123982143856250204398283089538060927957523539293915073131854139906728385474102165853025814476628030118677522607712435911475939772166859737396533894631966083850877714131028095772712952376155978084840758600175904503620683366087047712596811843004733141781730865285242799950366134322767905839922920785322853987977476481090830237033036148552143618440898915637780968149498764533814395150322198981242268581227106767785831610096991328067150243200404492767117700537761740320342898810873783975838028155973222063581397557895428568264435334531785076551747593921176206529212452396450658393329374779241552266045883303068471377240978191820137236223268252478162892910179674840380528773297100159524782712457716995238356858501039205775294182625757422489320887021891974737503682079114171786851367997220914876058952104992164306378242321062939196583184591588327720591385088988981576660179997247118821550913389648456795608383253317644218590315546495874491138323253357427652513979033933544064082328076517917527620152947854094600875890759750618324540907734166070885498460682860720321410062491864868988425517418306897715333362934988401400957599490192389151800348486838211033568592830370078091860519599745002732534593129233610056804981666900159219372983399221786352576767927241281422399297131350478639675724200991624271485865808282046231362082358334400549462994007800647430024887977304199440129815007190231814028173999792116921823497473988690593617566793005382096947686769102185957642336336411714500301368676099427213486412960581459598641330204953628787561320775895948716838156659200962316669998626906021898356075342072271076452470696210842026777968076182292714129746528816862100494514876502518450780455137154384590756027777817457970685828395670757513766614549477102041567692887098963426790686878057620391129108675331373280871415905795629793790877523997475655729179133245603450799418807474654563840561944750048572378180885388559268478601045242219065610230717462128636615860477945074435185656643069975089372527183502674810803520921041855451303009156811373854944744551101567722779947980327680318567374273227753768987097351849785339461264189316840688657353172962906292591715005284470717282306965360467489871045321804476737244529698490586645517927346947973895301268383511716258452719946731741163180416038372905171310925546480008251833300269734196764362838434241394080996931673625923062550965811702850329481001076586202563847520285387497476561631500173322478722441247658039071969227428971859227177090891160502394793518701838348167952260801380271234572038246504127269926968630687197938911784915052083989394830771355895488970760574471040984550542016745789937299539061161187261248639675109659803115428123739381080593159428202890715020401521125754379692802416165213945228839351694433155461037679809365823133739925470811763483013970927516752978183346809173728173355494394953429058258578826042490790966857680037668936279575157475312384839829051898542767296461985776070165773781105521324581631700411905432309223375883724568837290085959191719879531568659062616379623984946878340497399847901901891117750610300831723873035484496757769795246310876347436024404534283570440516035427856163101351708263202377141992300873299959372051946892764870724786719290352479673337084820251963900472792760603043172424035846182987494641920077303491108629613217954233737038480654076555773994692805442743325213809695409394154386238700113599880063219430433116557453009873551214108460126716478970047497732200147104658847227391138196327214650388297493392925910293170704312321886323687806798833892314670179119919821955692888440386672628296586690503518768492964061668198419851367705561739993421050403489683667232648765745988784069846145505864495429126889698380048557977298718335700554678067456328862967730587839956128362096028451396712817573608109295388227302975898976573083963395607996812100421326282320588837439724567917056221396649573040326458598027181912414819923062159186593115678589382730235564928407872525423716277540421630118949564278961247340720644196136176980351890251214490537889449350617016650931680689933197524991906675089798482645541287196096899172556538269615394839099976601128072153294877292692662009011536693687836518142322092003945846787445166982120080280786825179810610950437420606348772582123108891788046795765048785911709945904900362818282713515674606829164741831672886811889919145004030790382013752216308467330479092630783476334118400158842094345346905637022352951693893640357908385969210698820357859412838564833567314546850692028636430158902528393692925147744101055297036811579537657619300041867920429035639499464827025464340050625587218333646036380132104724928457818805057941217420086286177251897529649439887402005831946643600843114572963129218056019928208408310852548060556605290586075012123466855887128996652910646310072833464314006183641785613622649461611627576794293358097531404433226263241521106410257716121879266505547979866806337961380508622876914646692499239424143967492071120742453525254982182980685325566015529759411573250329257916864936825029399561521458145021256934441043642576140783295449193266781705669312616178469101351288001783570116724347299147479640117596053487231964249018702436928611820999807328528522514620025345693996928378359014135991928297391640092170505920796265524911087515615194482798794226325280259131954856126645971535828273888595502799025517707438707754963590781445252347394931088013623026112464296133458225609651490412940984393425720955999497242074822629951542004255982506733568889014108714435491027463312695660434775797248887307153563505529768832970410583987692178785950381580956120865525604523833972902257766834661316657473361210021861130598013761970353676715413138843714410467191142130442517591967833575369771084662019679849180511739774103317809996778000728032680366248277073478710796709889367044138194396448102258165482346122781491731442237091407411808997457300481879268163366310323974699397813630329108735915763425119816836894427256927489464468208921062640091088237484143701260393599311460267371827289078756475707068024436603735984952572692604321844171615717087565059218916566883516755690668764879648177809918878678873525830184037015001565499771251114239113551009454783895028036533208451899337396942186059580794099905894259454188945688026158409047632977096366209523582519093403686716403742444288214044023071644346916065549986329491896355455177498285164681914733406795808176908390086074239338408823121231852344958786323690931601469905255569404778219619463687662824874742344177615781325305797058903320475720476402603931732014626102276862611445062508254979478151936581283190796918682463824568729508197173562364427239203483752964520720668802670225184591644814665908856538352216297919350526761891667765072735833442021689476760117715846589536194863544226308376578332040221076524715112908161777908144525278991833318795662140497342342177168645934387875833044273865424809334956848651077760233634780444022099555643600038646784770474438402473013726902679780126835233496641520352633755293080761501152664506900362043448458311167319923668677449707511689452942541152005728517514381222954775086462216738923909746052035028798063022385265348619933952313137486758637491273910354399500669332231202378868175640782211802519616746035895129516211443357409970428334730485401169584192346158541809301032306922640241208357308828009912664784401460688493487292849994958319267979937224769356574767135882709403213625770265797189629595357915350571464281288464383263529947353373094649718613139735297349969803154240219036811377849271407400713416468841805745223764684809293788045241535273241209748884329866353555156855146543692651796467250681947213870947093929224279786278783468813087408526403450615299531336381598017294915907558254447031077598690907271932530451639920731481085308806694897156169235647735098757769369683184488085933993572188182089312944144234044961552855002553536185902294390339313415568838804287275747017406060844885316568839571135683679968656100077670718327550622683387201477106199302780793789453309986390417220042017969142831348694993065719652281855238935731478201979355489011786335635256137837937949445852877214616120885426201644927191149432065628075192236839509150954489069629269616866459392060021673595266226537855453137897041555801536175239481586985218743320312907309363170835069275043057472946936206606439879550969174005283377084081231088138661489693177884958387136156666569009631309412078007855096855025874811871871653316049038598185066492777280285845101226184760394133275875587565216484581783605336557143381910434339751299334042772374689668160693811465812683653982526579624102230848061154437537135611997291747283219093392736314100065908865120192183530157363925868141519329224738992094601316950500835061476798569301663001991879607254938302097210093394927621173234619958056644277130588094704020438309501509657064942966175368595561376440540448261468406351727194132973153760528726612979802147686390329513584950139879091482834882233954359815782473731296913276261652234215998348283302563016521690176508728392727666493320974824330561301884677996270292693219517388751398468263407987824016375333633388873872121932563341222096593459465187305383829740941972930520579934672828598511427612885087798473117183310133083889374166644158126251772001942786915141227468782377149412431970257254995168166575305446857338415661808440652192151497301732796877730046423566442905354869213678629997751509166955675446266884497643313596527069162826460017827787694644655257495336241787472263591890203468733245303136683141254176608933213386628606082849936269927210861985922746109434266465259295808224245745954934973904560835722507157132500820751841019388908244535740096560717712895636562961831616489097541003414036499821033465003187688410689528941752551473329099924934962356949000319038214096941436969597508113386373603669883876791320423700926608794968275991670934482238456760049171728931040102204956714955495773121048597737780000855450171965547684620488666321407757866120401081653139388973767155124769317245391026887818187312990860050238199106898019682140307289753493069653117029354931775722975223843783839540858304670668106892942439646635229125908441794678411067007016193083233041933634024124508374999793681718934820408734362271047862871122195252079762141100246342317512911689994490779834684064235180945451766376271965292777364757981708870341770918912651572328921828404126206550670085205081152004268511722078401688217032642081087374589522461652398303354380356637008367728177093734665849648674108177548851323921096815693491703313334903369262342054198668511042954528296332126019943635235402345433072692880077817065979776005052907082489101435163542376826781908495263611472206654832017889686480710968605951054934269533364049914459713081316995633123588726126006913431404315874840211417844961078717279307088574938485394458105437763782635333060064397190428100217538700773990227752939031537990778044104812506435768755787064719601295898885079812984240649269413429193553185000827104710921901574609422397117456934742226135562789153592086319382549507537356615348354476154458450759101527114533480475947832772466724599572498770437027363620329835536120251804922391234463229227403792984157456275699309574960186658726506986102707330934789383771891215707671334042827105750436616282982787649225894063718956352374297058201579642899952075935615824883453115763891231353037170845368368045747326212165796894672761829804921734938377950931573908535669944836887478572222262288865736504031366009458921102505592422796044751202322555783593325361272265695283126338636563511336692885906711003323788586813439695396259750516287697620843533165336033968275626489193460673914043807334430490669598395495633605286036936995231207563241905396996217594987723441348166560395121373281245888016508495351887961054384251406754616196728972583453916615609995569038173651809111211640661242367468711081357475337824771133138672440523665362298296211967759802382402857488909148943339367498328509390863461547123642496093396536802187442661161694984599226952274448976123079036931793369542071923402548601219896269584178641821326670080151620845993867220640312840746742812138633165110441240761397607227599552422537076886534799294688465826438366847077823282126184022892373763413703460368867265971861435222860584195602365236368290326078210326264008632701194908617603581187602447447093951990502982489388392194292261655967224045797941610912651432351157620115135975799295849431220614594702953700623173535245815835873576951723803274625770612262738830055986909749616541973312635927871726420126665239640492029868456287964679348666278033815515329523182710030676027904724425011316450111202995058958249816765342254995445603080836707286727856389694691199699879435731288728323723438326869444351207195908068415981102045896375846476818705925600462614509253187864131661599804104915084863795657163551369121234155286869540772139551217146014900949970990167177114051280584141165092255949274334930013415864455567662009083329839691173957899636865506864406788287363407894993777750073003951098077932580135061620491389059214279521412067280505516028306398079844301557810977795414353091054621610788625803306938695551637010976608580845309882905877252624481950916423676436063474115695250427193897574133513006277663758666474396782722371864152047618054828936445094072875300399241232755384119080145931489733993768021236289306377050778861701394167804855257144744716471717691789132262619010206709740939367356572329137862487366817469648631684154411129455944157039610804089772650680290214375621034199184880373308582541845862945134752577850901553959804433088333598826863839940849343963566381448535815802371157214188745460588338155020959007737446353032723205145885910228847557277970227190050587177208648055505995043634992393228642130823856112035484459150442395041603534524604354452705748353767460985513176559419179240029819282403561292412323027618277300072706612667034408675195551095557104897303759803422205474709297020621935216166151789620125599206670813512155899825212356710685662791519731074954433072784760668910029765033389278883949656268098801811849409721012682947309282600063947740068055009265179357539935553653900789663620722550049030608212026502531839749878367870823481442049510992181530973702119612873532626147705068132262456928531197512883027018647250157008955582675006472216046762633853645188715734126902478257743539929358861160612473294674827830944216412788296837059940585682306587567121056874664912783613887160441285225283341553475355411620228931392313631175422038355837914755291806935676074590497433679801889565283839672566795148698987562562237241775942145876921786739320990155826181152021297511181248388947316258134629869999945037811997137868500958026012706637219800843223327270747027044077942383766422885585884542315912612800270700823956953915016925975899353638156655556693084205492884845637490197102661796980702397083950145016295169530132471239284170368473049043580808632002177107501504091857699400945796797928453046147612061745979613976759558215119421035723124774069674374367703348612419997882891072472927241227027992865125991139011780163082738905518043054704619699556667784099058087574186759507217247630931356130112931273404621372839498256797902279774858832910226182952525316863550797876626644756197039149376615169861459082799706633624663948847100220866810880264665601759054925299714716265862396954043321196581659511234658785086858453876563262491521925954215498537049650007576557498036539587255994223531031808909254678270343903070206724456109377767813801093405580856744620999725114667975954649879922063474388581042540096424151132638371990585152235343240884805397243045377086487609539408073319801092233126045440191894222727061700589001106486234825094527047998300803744230056339360874111100577526764860472313458232208575346880740415910664465406152170726304796545211370353218394330802052352834354775201726219131320090115764464722523167166895932743440176753184589942605023229377958119568411782548598903192567758851010580684485948717502222142856564517476731861548925914001566820112252547432726515397463562236766635365288229340875113504497909096527865999845821721169531380929817361542761931220822929623185512283129704789848258687076495272105256143686454985214737630461869201587212338285422951150688345890987190459061754008945245459277384259115061993739847895318967773622127335395275212764926583587086536700015351383215691652172914604599711378907117643537055324624740428047834856830963435177958125136003266418951905900028601172934683463287187067441173960114663830932350505583809152911323687793595533372971598298799737513250990541643015806900552170215208694266417065380276230729754530009551102956777262312532334416387423986284746667954097181958033157214760952688201869291097863624880740720796713004635746109948858675624222960902580150035701820758992289803673241612488376019492866072960172556534199552351989938494206519725502048747797101201141190445767940243757054483468151663756626978803019479175836616416541805530602646076151489917151234328294384645080315067228104391627050236532233803373216776678822481744135370366039243468373527466980221862902299761598248231402167466066710464577204921066522533357591449458439993127069250990153897506362779243683902867243557643166478767212677340813670581279208839907763929985909032291881547267061913859405111117962110087075233719019172655909121007923960001700513190293158479217074712092533610229787634550160179040082778698798943261916188644300094790741009049864525439367887654166920894517141358267737069548018043145357159554294696536791400020117133860543815163066954761099341564731313329162835631692522248741711765553950457583490844331019192197169637960040217709802020980678299487702600161601481108355608325536990792936083877152435130195579115556640459895502831841866378093261804722861094705555035534174355086561476479863436047372089833433313234535517266579912576587614460062369061029782317475472287516898862834433545835774995472400088987801328668600689038006408377802721364345889248613320786280837876401748421296553654295453058332418432260251724860444421712747792763300976634139829032356565512036940060387314607564547893216956122095619800283320065944992162392313310738030943423230061141907563914766518202212999159557190968774689906913087359554778784201963522583055607245767166737816764477888994075379490197002873560915433243117718851075360964902481830235625129562874316880215313319954538922835858481005364973228513674824853402491029039632945824862681941214084490101380555582040150894618550094875740917658204749446102832580162060049825918575031808241698921579313291890850013044549523178833876483073957415699787420364796582393351502206945884177412635858523566588844289303318603423734497835026289364100068458818774950156029082261483556775694463616390143641972515663359206289357450798695781268971981228109694069396552112957855758805903635807007895808539172875575343034794397684391410053621727033414261413741284472702324234153325204788527620707302748005533377731212607636991573719285772984602816607620116585989550500271348790115194729227166465710818308343819664231268740856714448055641284400534647110950254578573705348419611547773674352245697092234034124611593749410442185358632923787266088651606363383413039448044216279652520978080435510044147803539938648853061387385096210917494451824564353250293262625446782443990237924986430162881395656190623038702330427575579542323297640026224423317400120468564559641561680518726624650655963247359199629505930649137249835530995134683599920442506651762229174875859778601554172022616839404219764271849632473647167665907552756834646633700272826582576716176313387309433701826551392247414344545671340882469488744558639460061405059786993468967026436182997024875512443128748690605204846488803164171344635229001300124575589312598466656881532041101783917678347174226707732835570430199106312410538912359385817115281738629339043973280021179544863791692027538754763490451816222693979348333539621827458296808050256978145048532932188534306879164815413123281486549781864903764690330704010382849131905422772424153211196630347528037546100713876009124217648774843118052832061692714329572870083314747000782956511835102732111837759543778876767223731353557727759785721893137313497398990665176052649299313515798726868754560345531613046251012879024982608168307491987212572211042350707308548989835559423578674733633265812961573584305436866179195068776684444620360818601154438125674228965116326999678250244248570604852631293660965557238721416235403291483009060696607899237297161856606942087094122225524225524463201559908157602225356527821786492413650283502937917535592773823036805517863994835828171242560009806202799004028409778152962321344750545477243114961671533374978676280802230408989742729525588167260311079913377095603054872956848164815216577443452318302594809490211026969075420788830257896311446122332024447832050331084406684899981253860767569402182585502055554199678647798079850765704450462023598814458596131735891819424769748354542990959135022928827954186838737283026202581837594866681602892270700248567743216653984022242132504076263264007723706770976276874822844483091033115293151172585568943874882830426237150113707374685153717163162096219269435155978092357526762359392908799994992574593265780017008715222909327113305262505304331497328635074514399678799221057319427715124150637224835661756321763999117344436490850309922547364480042178233679888284172006390870866408647667301689120924711139209447810452925201571689750521818541891294210461705710906593645392139026346938801339700903961606171619963077707609871968930637715328924768324279680837400413392070892962665322050663372017000317862646102000872946168474583631088887554776699227780395354415384331047048216669095180871636259533775541435931340193060325448394132289389017679291282294244261027604330614673883110171002903798167523761196373208633289434321645300073272068387479246478495990788203368363708872694864104981544124068879429694934181484434332870655822167000286204757766303656693388271034335892475157224560968385615257617653608667074479644597807208267087387757591734834156963662443420758995528752831700922042678095954499434059630420080176603774720115740642686247426157332999488426622635454763480813575688563107094761292693257236725480440231600822351876464235443562364011106689226781608588930863972727785511813184702009072219257542026913961672046811615513485331529809097215069390855071657817079835450072680431886688986874377752647472033223419048542240605715416929916253632520179481693660114541699360813830025724577282676775411886784906097626797058188874119564779775981274361020609625080413735285016469063278097352066517434513971241008363216189805225016442482788352045151116234777807942675081714283423187015354753094809676022892143277545086100585978977277769648251351284185919779374058528140773246054496037558854135769666070368850426675114075845356022095029849629938618679927179787948777902641998557968945760187682745702640460492816857539260979745028266132615560271067212520907100679465884837153347770965781138736809974551263252725943153262001943921877967199118442155219902181273671422979861668763810634601903871676847823058515252076170830523514671239825237386364827326852119396135889618985851772914710808257528466577475095145109789065845416439584379937670067980589067372607431547601995405679399363262957912643513876376036093763370007774889948452297524552016381590187568933417659845351416008988983241802522660772291320042626593010917075241237647304896561294232251095568071406121775979889678822269616416869694088488046999215248817747694773093455878624081483251080823094163879351808920059041344547080690662991989161850139632507497699740348532785930513272923857162198783529547781240873052747252861487463374419046638747470919688458489927632527747226947772421705776786111841940249452988151774560705348085814777425528946988029017298345158725899931348180220902186549697876980545851576390720802630362331539659393945926101118724183658689499770712580400338080710681847738644347100218585418507597319850531286362791506411535292273123148155010720475813145945383374870475742983125587628749127203242267358984580867282223749221534105642062790782094058788840760465775435668409151118201672831832694270101897313036090656151396257639297679527034902908607173118257794031545526163909998943415878375699970898273827679206403023613558566667766100559020637835835079945623560991721066736246433928410785262710221899375863191773305754109109436716199150120442153325573623737648087669933557757163836541127621710432905287864837181665372158379217770486631695527597602264561490274180191025748741785605313833092568434023478406795807115518715455952396790737480930990484545257249826357428345744752372032442384258772511417451918086489311364342025430034371013780419537042274157859290634883273644244695743060886391750121616670865053548681596840129137620649840338696358987595211042727487412541705189672246085523920788832239978564757678574673721699486053552546927954468609737245332159539922626935250544796210176987989310391667681438668920669754010208135220151835583773903267613063169552254984706216591358834386469472286471229783018142517598869348826506200067272571384145847882057873632642478472222861151978401357994519046303303538186306831506675707519682326951809573603885490827297543656903449416941372246443078631655509124670415004822292695598603089440961372827728988485709191098451094500596944950968041972275814620202060002161843423417040023353050212936726318405215183461018952609396130970863524850555241089585521992735832044018663699288167993687570695389452675439499265249620111623298673963219004473104088469101848515269770084269740488275797304904886477857989964952733663912112807881110442804079779785775774474567186112994757066577707247945390992866595678047012479896747008064608554808596616041022764542679050991311385089923344809347429383842078612859646664438984296205542559733153360519775754491647907071108099238158812790349960279323454661735263812853966087150964964563615205612151615166455479708366764863499497860106575564217855875571400354827360695207713572886014413472105754836581177407819626571256300578403151455314043138107991640120527636842072704709347344903147332939880334870411041246863952506158140902318669036097212084194929437683182969624297078938396955920060969558997243072791821694435894325767402084359545441996335152683735409885381909218643518187140792328985179652500795777260988335657805345173536752303099442703617856648120193905626500847109041532788540922103612177908464694532738419795996019901102326542452977169955034881261848435007444638140241469341602837462247848792672335698371923322402791279699446032281775798182687100463644956772882648756383156890828620325740176093158325638162056474353154121292647996655512247922541638190501238307991651307666452225767329264881699464744893280230318881527497068123565873138222836895686184802216834067556776157796286304531979160511893699297749265028396305914930036090533665326457267058473511973918920627351102225291186460904897283386438125147386963535579637032340313652247205730732357017086767994375797671292526982251544898549950841854978753371118775859509300018714163093613668033313965791577736975919494909243865919939671324749780924579920695835458879969174473655185105989052273009470766438718040091254529123498675536504743966394459412457872754642248244544157429593287127721023083932642120725292839447609638820392162913454205845389263232807473682782569949619245807526837355077440444452647938878656462730660332455708806865585329091292059150434172968011025170249260622032478812937310190750016020626589020377757640516857242344827302711091771566271478993780459071312348054392829613988561334621086404948069247077515298552232376939079793975773773089026743010433800450714748598876955870190492260976716012617636605746387302807106752725793127955677714809565219207280620407465729112122152016108803949848980124899103230875675956862368943073062401730211863899158671956036416555155486470152664087323287397797067705831830553731490546821840977591525987675211712770511347699814665081771524438463734652376546011509004593072822743952711502622541038393419476433437461262042878703145574802636622814827785548844351668802453440228146142904237623566153389999826338798780371900414977671545432686439392151168034212830661910541477786696818930890675062545590132435281188313209592014566352641202141821891124142411780115998321439646253167849456915420243602844557868656047521733117166262331575692520706263703417739306946970408450642927733265304287416305245841584623752850190273243337768471740447038332564494277293776673243157870355936005222288311630160923161543453081371708135026518832019970968251639670170756024426339503423114925007212464134387641158168464345146318827462404844762165950399457050184897880807365164642318280371815591902845321603549605771008078204053340736498053285514352353326358519889498848239494562985847191448405340898617718192179248629852071933234945100481810762519618965365008945595913084789938513581410868438638291294370756806512320504607765349957825040657884715099287048775014436938755437035122754647991451811593296520547577663513862787678795847963174854931645381034179022748759379869502243647676882488091490288699596548627212962058698098823263606755185222938756779346979896225031284987446047899295185133903627472643453721399901753561822331648515226990648008678991206223616358954083783743012333324896897266855189203357561792648812713307109023108325532723460075619015561650227055264748999265299460036976127915219533246955163231869488321274970812079924382546359202242037139242420827067087563593634841426717615964208337871525037103194933174645077943766042920216828282515403637569205618291447843370087513188632431331973586108815597798167163716010200846601844015559403841255612077461278797938805140471959317091213461521309691770308975195932555228889181890936031335364396545111304369765545322616082530853237580348032110625428672370540038900764089470486547155584771307048293352421100738146225429306988433570878479106967112645232950856790806881516652327150922286319882416871873674794183430997421021120230346198504296557726458161208381143389387885946628430351256835705468636916038249704868372334421587078463266365248558350318493202736956079765145241086515565945206764915189649944941379607404797061420340311438430098239185163013780785287482471225574292046367732067962801013263165445859656418613350645342755524374445087381238139096137100872097716131068386223745732232621638921268823901912555497741138005832765711221281391937322589006735906754547798008023027975225148325022215518832183393198447731556319974060409768576838748756070460765443586567870269171178592727317765427770572335808334846832407578265725241970304812780270963906456541875714731019178646383615039141096173109906625138346568670046323531898736943779019784938070100699081890209301249701984759011862727405739275294002608056090138958715410851415889946958161307411609274645517691316000547629048761626701471185583338212210638664550187593035129719651221808874663435996090274579632321673051904253137322384927697785912578886586745445216655525048956284019493380934813167182272558528750107977210470471312287585049443162131822385460881903057227694322362858863156391875053850007500902114018012237186916677067179734311918161195647801096890375084575807953249484780828194654487521579238179673863027865023348465857644875944131337539608535570078142130186523643466445780079503452299837018465102182892973034270512367248414017552717109520710481620539266949384898008608550702199484890130064366156136454071564830358039647219559756519233151953707483315500065742923589438714088497815505605352039507523716412700894012403718340008103412803469700965051739265553966553312958601587248013534694968325630326777547679270325085720502609480395651944168914259959428227163604552859298981456328096394128243359439578675687632091775128283392486944556364831774488079467111281241603284644596321280230838221669528804060969384646462623289051137465116001373623667789688643073642344466040185633562613464733220441155941758392048810106376005107014126909532082883386460289277444435879018157464527959415100989796415427588558320213189424088292544262187754661596236153005939803459743387021667913390151379385094978314614707109811905599965411481548050753460033099318562416311892046824281023532536581143423715448938433810501750394485769229473795176656415404519159914944699433458786506058082446951939601733334451857508647768024176287103860150951870865672937406859424836324262202235198680567889095720178570663949651234892664212324232677505701496367838448741816448092749545730844175831488467685462643107487304992399974329634169556238761893516541593313732407527247412763644452484985230515347731108668115357250760914167397771985115992445695700322902125775793026678426156545517537115879297648397726314804800020028008591234635720864098217292816851016498408706711642252777167352472005867134751768903228310681705779778612469429968945785282588264600455401842595153113829307999900795971587075598373439550848645902224194490818362858737868712449048227238313011556309396762390344299510404950887731932191671637434469056034399419066153630044233717924097743432322953635382226585395158587366600490942593212734872173623873185176655616922632476828201498703584858859691109069114854183882154233694439210076576596461878213013450175065271744806699087919686387509722194982720043853555419524735012796564050306961186740790498280332866763317374432445677864043575925200187973882432788884528880935770289963933863691893761930190169289751813051679294520401973709852342004798246428887458040713258582186400549431481392998513935708312902446616568468550715857921718397216004393116284718067790232841256670972059828203198126498813524999019472123924475415657764278739456360980149001153580013417806422870514493677141999493136094850150701582606538859547982449711348507473340722163488203749667266555884635949257347421599141522617028330787759246409903052204291610586723508533398533463532393636691195146393671083955511506386662990252002368300129875063356097690870829594232319955756858177547687554345359026679403602790287323478108279509397000116073509580898307833679689307641878533186558651439659758549088152830756517502553863348286315219352237913606576480868982921458906070563794068281933714330371892147187830979360470046221183313893038891718518676263248797317931250149021611707503014720864968515699907810811483896489129833087403169460332464296478910991781961412910577286693378943927003016994056856981192226149877757418072473642217232247167075493093689815585167059262136875625927287201419736146691665157987835520638232499082807831280348885881476226515015447720667564050258113635699028160002340936358578579411043726785736533574648136720767336090899447898078484882897766003247126037271633953543200785994078196557568210496849434988417312020310909715579103372365078748836895851639582430826731178810339417517511956985801621523347611942069622034999115345257506738837639168495228108715591128976837470306743484037260667104114453259248690641072016618028824455589581665969542862236372919207019159564258436065886107181317492195136510380850292533217480816705695990654302397321803869587534450299936908476522441822989705762885534159334302828387241762172469298720390159408470553790682790869927033410181783779047150758910191849575371533093719317559894031174928687094651567062498237999618367002547485625702988371058730266488848814555880167286199044174145443122261544668460096334227862123520138273939195391839887685049105625208836756190297892127036620671838775710369118756100221018644162155552477522445836808123513111712821376570895477558839946759443621331959669456951486511202741421255311360722469047721889901905349671894640892545941604215416350970682781018177522128509991272964227891063694190899124367982319624365767064178949613229986960075351639465874556544935912595694429654755240033548541753704393977175009558389002407693680425661304637710039276436683524034743005845549775683459836427779664931881398711081488929971170103335373552765081076730426783167764182414122071907448510010192666090421301395571720081661942210219600752758554710850214470094994281173311979185562253387837229210451407547022291531598938416107127361525192300838595928723319767289671882023206487509440840211107228105914366607298224080586882690219913150471341903386817760043956203568561707614474400353296523804323659160566114512552112514891290046897442655465675178261430636512610281123617730383275751426328589514580013788623793687240103257025874067151180517458199657634649340898322040621453933224118075069590390380983912911806860998857660137688883725699508602100317441179844369712946797264025188513449175258224153028708844652719285992565090664583403095674634041825977766388189673825517663993709408224111684091859926439159610462902608162404596569898817787752478326587161094297014581630060412728682326740070911036507452826525532241290086422378742241891646500180531492929817046750227807461812924811255920133424892065633189652242115131321437508355456365379298327627648008129241896355802017921533494596167767890593063734357807468493950711338644128118879489595472159306032963028420712560774534559921077886561837659379846004545359532417272014734806521582526547193706208971222018167130185711197384894563678072992796550755074361279368977492329207628414787633146509587359914897748743595970577083380546753938590757988675588575111247063234304742187065414564607804775440057487189239804600026160498668890212590678213487714287330922262636202795629942336405186666649410645673598378371382568051645721650436560067499016448109358203581960958690185683486123937531587565554091295132815844236443946955590362517154313722192788324796818583239195095876148056432540052590452281702189675369981289459159484206545067781742254998258765973613226126215215531637972399666852073686784048789375212940396098023428241043500559371981641471681303076802029883980571546794489732146880680532400643871419440577992397784085781727475598970630383612427858670966281015918690815869718028420890128123140759136180302373654070619872988485567450650514542706049822007742432790979619465416511915749175243641484281221918576602022066406703850862440941017992110511532491889771574295515105850101631228770761556174604661359057269830426719955034313260893358119379480921623858256104370048226495264765468473161083281727090731847993191445630663458391520550946964128997105933152758906542712982658127269744216717517019159506662613609429901996127418935744630192219723044781590316162481407394502334068844094335704297666904415153780013304192859163665549540910293304954171941735498370164359490985464872424877445469552164385070210147895086183129125067427059778924999271771120333317042471320038754292306415309123192162215270775095617069320774177379888107552580617844170521969248499924574336962193235095463830876194490911591264080905262633126300670738391006085976083737567407859701375057510911285830575003137452810326456554999178623050365094327852205830660851403935944568590391616080370865818072795992221668021476547173551888232806221307482282679350623669710678708308032190538696708378938700567203494618614174594471830042964175670424360250386435722180373570155089156601982409760544194410007982633209288766269151939234542146017425853007849620120271893219512372106413769325792903832617033317788447439632409123548905725975515864584169085057147264386278883550265617207911164997880661087911139388143361281437405194935974828041835948064049003816271215393142616606770560392597316976837351574763737378532430412833999735890551306165178651715514856740993859026882801136935018271700887408295954368254761450471752338641781175942146052496364783630564017229778315847282229853673193762384697404417911992553434355568252206299396762310737595665786859847216214096798616077606157020404837861307120320521310989069932182807678918366886759113190594536712007409025405121503529891917657321205718688630858558708117503184666469389481642030371167418416503481456387419862903529626878186569874981844322599939051828521231244902702460038686722374380847050181766718080338773633553689455912600011533120271881884818829705268071815466906426368085699827639214313638675865990592183588248616263782917419088001511447949769808051096475458108074694343971473372980963852621837247809700294638043744799081907575047130747716356590238694752936328718591488109781730017609550943996139260471743110381964971151010070425272961380940182913801436312940400220385046757307334815685143913157721266178834756776784677607482591087234008096031647404862928574198034380554723983526872706333688722413299139936194321842986273275143290466523019687393667434199681327275796511059911778063340057696974490827883736172870101636914950324705020326783198947873219905543725230744660083632454277164951486862833890350138629664082737119949175111935985047276736280217830125289863768471999793927844321260985484277365926309373129583963566449081293327107076632551066045049452966180183080240406958431961105731360188450910584366090273587325540791409517167178377515382733193359150567915498832936011576245358927009040867438934490454813068010927978887530377905673861250422622863944346450581502266653880915110039805252349097211496184597599172141548881305578779168629898499269390186014415673234047588188232684379545875927184065040291963057069880539188718593736878542599531315744624376009639884519359537626836649648236684536466807585913127686632133018151031044987071602574962591774469514750822783006081185437055755534629031790265550435381973957234032456495066968035292278141212614208976041507472143171450415605265872955745226115788073552184533742199767446685033047323424875712308218163196093539080599704243724468634162084891106857589853216095434051337632200442187952011768897927536843721250855669474318307856741085043551705404366938761032374284225882776954550168660562414675551164230202116117684045349133705195714180858128413570641258148649515803347105833022339020968368044979325671402370184640284270303853936595468776303476100081635645800701659580889694460326828840824602517362440097771582788936803514126396361013537016619914123049677134970193702385722248587247323605463840885919493980274662242985209206580570535038146879545785983885273480855092390381251138737823240790739823541070621215011616027011866937217614930078536434852330913717701495014659759893564314097357962861016088861403577649478110849766790830653810787388396108861013843247589711579654758459203496701794508650400884338758932886649630177985734367914766194715091273884841166008374706671102347076283832617440571522172283326646855921975459543674235818479666138978857075835536027604105930057536142130148402590351130182939786704423306123735280097182653562484030698248223282129879299351099033204475329505558687097740659116541621873323329262110588593345625708470578035463463106239324363238050374792917870093984863624630913455193974042839730812920072458301647648866614934210435078102754405480983608163481589414723637136957697761993204224288194141946128008325701739434750976157345102521618826460961429298538936646451613250650806314519294019383244462997420793795688010394296677499603926440543606612867351911476986349381625521277214125651049139025191267266641818855515091761630358693554559492942948412204012413941246326228288837547702422716691064985795762805321401076452086993496259145773464995503943086517352354410572212558547363776310316462122554774578783561831423215660713179507598416650604451765236125268781265843891963165122713202921806396877240347163765834145692477178326650903986019103157609930644010311326106267621747281728479522792746738527927364050442249072781312518606061345886285562003329925408764337526231386730269648475895916028937695494247034514422217779820339084933322496461903903764814556597208618753962591561822247394759510035330550304319363967505756070153402496670515615055864462192160584684663077843772483614961587709497402022911995666833711118758265263679695582988199009928406113419340123142686598899833115182200375374940375323173908992729600313009553584775626312536648373932884146535308808296046993161532520820723379920115344703823708567754939243909435942775364552430107067682049835862343134421202867151819059081070879769509476299680215980232836765630168425395128838198724881000575439821355674813803393104268642336688133708043064553125883828548116255383714351297709939303933584300747604757896697752525176526276887196408138127879498535633085021358975727362235320725966291688431578671107893045198200094444877865197496678407666698018887858374007438714801609453841831928321262947910896468632399634369211346273643254351974783650502808102708464335948617279792179322495696340766668316793056271184326959207947434012572881882235242528188648114923961061340211791497676291129606237707951561554066159537462146885048287092739493933894943035518087643588655389753889017508171586800165016386481996692045486904991236930948735041280406173471695916337537197739123110541846677764742290990434550111798439699068020344098658170245667374815800638784631749355822962234184944817756682476356033682512015819324135869954846113054297125005959237199303726938864768211137639895675736597008668596653582386153400843692122413828223547526382931207160686872907775557655081627353729936430295837172424094670870876440586533644194979063366145686840315717632894205610550993268856268488037676553660017507878202867215760682897027859534491823904066113771155411223005643695222659610562779599119620188505909744151868951585273282629045215991367424077830986002268586305434005701703824251495843487822742422555036748002237123973199227472504783964678425895810538341842224760528080750516728450656900522692457930875410858974501876466958045636203072555037766907687359747077257264978525530013458402186510828870413148176761977815550897240598096266670581462166730309793036509761566936398203651260527707268086621155521391601373574220583423989517501036442049520803750059265091926425331579901701921838350017427139193299726853275898085789518728846814281625899216091017181378152500258398823130220440622507368855209906734249532682802105535921580734775064834358809424836375558154342816256951993930561378642053261820749686570096554332110612540588522051302341111103766944557277853653756429291642673556854634415019111952562264120996643201440186045210752319284888744557905178203884271357838871267667626076074112688215141103827437098981870344025656301133991746838343188641144955363744321921513757286015825503803474303695708905217281055663014407547505325304321914623833243305359787843205856650088223615718136612693898203329336501783195671291273251655177066190011186335444773460341607707292681872614589175585434670788852495687298433284678375692047609842757410698362759232494837711337103118245007636668829397858219144952034647905511758549772853212394047285803385480310077726203548899082063002561122102818451171788737858427688112922298127374123712820616136650194701544296353003492581158097191441358424514493830714343030441885401653001137234272758125624162981394932304966141846516219413934339315039095792417784789765367319433075170746574313690276459460050316534184287271539504877199868889621152838351552137092941278228097806640363463803582002528163735263645584297955412137123346866598481593921120886955400252852031620899654640154185719305199200522381649147928956039270528856136185665330493231286766296286631026244152331988731063584602750868141209337367924033741621174014660565738882386706895917931508784196733114402883226575396158484736674170193949428656852803692407483619260337076481475085027451761943618643622431784332603041898139954603758420415618467472032922843148737001548637193991487833709635674769339306280340512156354718080015862687072878210468081693440903824413191744361271455746111965470267042866122600741901396593129590682563798694003215511812785357720025726763359406856638382581563250547990920081024823365711512625207102526470973617800712710893659960616016243270641792731260801341356172424920837395153472898351873097878968082798528095151876333719446153704665193252225689413287673866450182632929971009623189338472383366482042835129971968987580165100054634594928263540399712977252554810527537218340330780929272598013500101908167664876744677553018235994275012652236016008246345829054265654386087473816310484736172386851088955706344156812794441638439163358765777635210805648323391690939234391004582789000388544442231545510779339310289158028455972967473752618476657178531031955925373769467430928738799533476534256931409704728460483582406272604411131147743700607377627190768676522922239181540962632040248656006513060580521175396222927675076061204267687496630653323942865785677209738743102382586191524175098117892759374780679446581492841315952716459226543387136198974167419513436071289160931658729734937092815191287699843856911956232676701757690727654077095172970270412818654851551184248805342223084278447204753521409092791995620813193809162728038778634286220048380298051140824064635360092962188502837470315769240472342290588096163751117954998753358031996241337533580253396653185041385618697661960242399055489705081867680989263636789604155441714873907903294858854880840464863449801002682332299840121993696041517223590973006793297992954447071661089890428519166049111034411976484030074583550861072077064263205762063000527192662408784127593311280676146365331303022686662388229301019595293032123574347566866205386593094631577792334546670082501077414450068620636911606264815335633512340356028838706744604599822182739009598886840287890189716375939812467245456941005032266426080956362281417156227746733938425225639603575519313929526624853214603131528432343909908331675398780357469876771186462973954329486831399286803044917188391760222105125754571378585700625786691288084434547540557901922659623667930091971727753129161540440636838703914085594040239593922809812850678742440532106996519581006384901991121881541201575682016148397694558506513194545805390414281059799945111838222408614617026207142054983146728435092027979162563797311092933513128423538724345999335617975127539471991921247721216503942798168329472820719709281682711085770335799004234956771866316569004373089563759223430776278193462324080680494095899725756843058489016920984725421444538258903303854045391891907070579457317693087350229331465961901812667899202512632515553554391534810201618146697914154540974407861574028778554345919021520159112101440957093888925873237622580193779027528415651358653393668550491457451200579305017821191658369759184908296678375362995119102862357295674292938162714309527259889315533446139139626637951124619565246973535929821419853340683035602803217997406699317865807702815994389514056373735577648376932409043633888210853740002584903563287084861039008411539718724389418612069377310956644693800639098723137311808120231136430284012004093204041236243907815724291209416806519241152638558538978810351433896942398725855417492608162690689700656204548757147185240951053555324345051699814560579836251396246859211166951938990713362468771091962743166971600475512936426564935061775275896883325881223655847824664163944588912056583576493656913186448126231584130368265896872299452795520987461784110110429558296402829209589157510728368106773234310707944266247950479845550374046043548846995671383360332414731340085342728644091732096029719721141965347885896865321396322174281722918269711073080822731475092259821112807586088355651856402987999982714807519024968878320169441190173087905385184431958751133952617706936332672057594839888834303977790771394572695228195681679747677046790449527824921291316796100653916557601029965710255588151709919573883076366222909671143588859802864386885891416536590303740661277519716664991868259564522598839275246755286154488141334980096549060666252715309637187500930382456834585684399734877114669108511224235836829763743146928021391429510534498486775271179337491970088518308822549696914299958719298930797346148048735596368481640228987146808542355144065700817740003160670066013275720247644208068108933319099135435510656570188539724232719082098780646475691782063405550610717061681955658378107672292262478130528135036754055418261512950236780932651824495326691485459642764326121099657630773302535588951654388864085765683877148954109340759726836239246516377558268899361865467506472080592633957757930508470906671250744826039467700958185568808509959018752074647636128009750190792161531410322748948032523337513565021989369282770410244525386669700433994262443798891643470702572244414353602378540364312783986909567097439398805705323592965057172360549019441170633875181271215461912503210112831696902741166436176824473092968379320812196143779437180053984060876230222237785124632255883471099904955719512298361190645772610818156810872446985333386077764333658049166199341643437479338891583318276109856711005700690638997662093097284396228958940038605528336965728121593229558084618322904439589823314398825684686336553012354917674750875046785790010929219650846806032239231339345215424621791584570760763642840552812255590729821463231501669721616948805083597036283971958783502577033043675736300422025967498672402706155936326986241603213280905969495978240693146320396200005231696785016687161716339947907948212200499035179227771741900863357343863555357189400779914532774151906411639469639520300319390425065050039840153860405381339406748798740801335457250113651675962102069299503354526395684805945277007594044057461612004525745070646405613442616577636260559754107609573538117802905898466353752709069931747382980831974681345405638937829264630087162868962183143700324752490052394296235996002880382603986520144583445842910850819402992804045590035739907957109219942841837178921651689926481712934674692828811419811993324936964101449441011699503736340749985242351882196919278631300302119256410778915062513511388331662448639520609553975780005973298534756840233241061369096760292558684263657675816130359023683730725257069942008602187217106864217580764874270138259102238139531058244468280296137394194731716527979471407248834508341331909327260984295670654213131947587287931019315387168355414757891910666203534902955263850249818044060260943764734366604132609416915231237300550515187997101708142795739710025460172506888381260396233759209386185104980184332870076925446226054251263075185601390096817148796820437303820892958292572580535171671407152343988203651238701692427985420204324736459817300174888516800595858220929993972454995719763678811623892279501390410536347588592889505671002505064230619836788462831647909820126380150857348383929654500083651663942748034383635097842445082265268051777479296257035098567559920555245848248956912898286515038410625786096453923873903916233955631366727790326596572492226246162383123852633396092762927619547209642888652925589118413884151861055104474645060343705003723523177647354568917826653766864040928790277494469780328652002578505908528856196977295353907936989528847219950291549216164032554302814231114949250589072654372205916823511187785057643284573937266669210887975954977698874956003277219056743931009518141798644337727835343262534720448811796749403639522545800298492182100193872752837969673508481490357259844370909676273839085950549555695603860781994622910506467324748441853733760799055955280449712996009908682372238998933521766562444845874148882008985381297464348901561791301704251539072902182406069945595793970767751911971234471529093648279812518763950003782817245888511173842168930757516229962689225432174771321071352954143579556289409559326743322013432971552990340486374900699965090677155192624638304228631045803871783310610220610153453428431575806879273192039617556606450798243293501983038286241202764723593333112369251360922843103433821049462997730639681334842760385993144358344727295299272109200878959114824761626256113530991172403363799243897971356630959972370058317858734512174235846658376517033052826868821702535208283143943555377934161970807016650043610545145072965905722937802043683270215838021430124665655350186935933653387002268859330954946066910277483144279149152632429545399958104746799651461060777644027571415029795540759429999935096843308498727669912384123359459451076945133713150021951296795798858366488244003569164877771923091484909261962791573643997320977128961034926807156265978228134397386527628933057922044204320190159430994225188653417258144749491897589143303781609062665863701361406840866232351978120409702478824846533619210110154273888152189078483908043285834976558562208441782094894467781874685318594890834846477111925649736505534635968446642742867341300240900249931112415878107616188209393642253982370954553057319723860236110147007883809345710487275301708239782398585434931122520311635764220838518439037560698258670679982320750883655217965809566682476734226960545347516874298879163694382015036411345871049614314248866872088249610080156332347885239931138486647524046502742431891582745103845701620517257328529089949173882315107553211280974581155139560169424825520962763064286028206583241159640494713699348464038837105095544758415663735102681393750483536391211528135086470677846604509121506774887353234039687403227248140347311951299425741086412404275186671056484430737632272905846889738750475331131218730425698490248489267312625458265457932597543886722441817207802285838215827820014881036582682287102308553474487196295835747568770904613510094600918190898028892910986443149582440771902902889480138279123143216037004107129248822801811909857523661898433259170145369625421536817896231995685856953360263448121577079753212638062898446570423036651266638796453021454989475306161016599339804344501293248087460689003065977021407734551116572143645453268908239391471232358991502698076740316423621306934869690514809789039862594140781880974834493368292709577240168415365695529243043902262193307659759677742386357377581573102448542498893299141843035848157974264322309046210398038837633264326848131003160790617566126606728085507431224153484446668648499983090095116678129023703984668550060633791883190166784407748696314699726137836301680691314349376037062058093731366198935564293195193469472512208636305939212703742156178736727531132744255395402444032136268443880366969467333225128537323494294233948346626859091821705247706622837314687313065097438582492491041302241539942566183004229250239775302620862529591388146052066657261332525987796936355041960264767868117884390486454980287811668917102969045069580639972950180693067434663270891617353748918224329971283622873162788429396421857405391379660797844744913077333748608246293275426779766500385273384191208644783638072479405954222177974429141761287782603194012115329235546259326021962365129200577100712646601020750590540755654821839344127119647311492427964419760361497742654997732331181206869183030195565384499932352789505258877034595729534215526096014039638418500362783281053531119547265871869501061378792579209939889157977568750934972170239436676221637706746529090048657538784181752862325726552278326706808422537326070391497583343251015880948052399070660986982002055196068430246787995503605866865424692326335633545108474296818837198845092703144755089239334941962059994786243390243204157106073190804067481188736104106273320299644083696279656774765174318445132965351764592563568299621277209605965060936880263110733154505382710655390528630730953628481745550061994638977809515694784725864757664294748523748241465640695055310830079154121173003674297701273928430081858393772627299534943514018508008554256595959224964445786971490853125182306260122634421645936610816484616052226969616990049866775837986681878249172132996695698194724578742447658466763193892813645691601025892635245648795184787293429194734864272108889002296131089612606011771433662682079487550516764973464320261119945622804991868756026528763537006502194904320844354495520663261345110340630038025786462105886355372981101081206205387168962450075549974308726225800842436741117409706708137250539103901524116807411824077932221632379274692612224599991385730113854828693082516166934696522560615773296932626661569864273549202616533612465419813632300205042288393173946295266692475630636268560818315585803752231396352219272897808978638028537564801136833524346282398783840494171145766435405623627592285906874806667161547900105198267093367657105346596696442581893591563297854850618247518493798381355638794309993111574307795967753560179770293173709694530873743321120595073660002546901285727314600021376436727880884369680994368529894874864688426767333761294815527944593579835360323143282242089358252588361415894221366523514384686258458092157957888117539820739530512296000370844552090192705668461292297655642162651684983213598911514186320366084564801212669731292322865948780612687013917181047368651690202004471974191374560628170497346551778261134587533492085449561186142397129490369516647166844387423743253281070760133403909154558193955224039677521878043468413218949418023974864923011758355157249807980063705939529350377174535969546349596539255376557617603157631665934168576493665199575390249418495212484367529671633408157750246211195672504381814764024966032090246916401089145465955354454482358111162051065101332869641209864805219489928797365262771535610836485943111313924118027465851536383620845431436018804756899268260889903785785454552168028590322473290896664560696722338994304579496248859898849801839869317420085730524205297905180372399567009383730859234992858278620462717654755590386604793573083334283457179851255381619168452603230703884108837678919192602652526882517068657865890888711137817924227645474704114691226792751937488760719017033327638855798811810172896451841761797574487787043598543114434897608951162916002192225907795754128453838765839258634755844902418548307057889845129827258049456490450530198213454293933985448921184740597316300524368879075548402450486060627605391747109632821318938322212224399093220019189240990409463252957977704756855214847652900355547521221060179714146944363556721224670536534671537833435867692450224821284108730702552694653704629165602916629296741994732651836846234822231032550170064155965637301658737322563231850274337852641126152763363376949250558377326345231950898547530192905213837072746593743986783013685409126666176010290200775344298057690854123058659411373103322976477908128793440303510489035673104283938674844824327366351232549084650958399107129326348921267206289725759967790088070902976826531886885955081916904128246754549003364263886145590511779661591281974171983406150267420925957541953787456918743728167352830216551463108680543477893297435301512463716754475329997403320101858835734182490956612524760985015129067176179621209856010947428314522494901448822306760623510177367988571631928197386093974745090982645809833656889235349091013791862513958937206157335405599035831691267684576947406223392385731260826368789906823947809206550159557748389883144596084721219333362039501349406128323581980894607841845586174796733437559252907977331662730792440689935933848266483626033285220923061706530388390226832251216030104445438373836696756199306049605692674676325143705122197120369384081491050569099985110016738195111386049410802010963903880869474674341427785786725299856440630788468586620189883916860594781283605799902259252591079071240845788726571568917411428785642492854027608314745365902162188022655068740311809280891295949779676289734427434353874741037994230226751282581502399322093960515943422883348303204594103071465558252368772209970685127131574845628023209532151502002406088351249922511830277670299320467694783519508492044890520736288286014872319977814491270089323386380984533885399334746279982664164793408033332686398976269587805009658096412280712162757369147792270018475265745538240121585394129639897209867873594527255166357210731515391012739047066147176463917418027426114531339733519028905222070982552190048214931700634580857762668038799949308170039650913131095809814194107167436186225916118301659076203176553423095388169025825438226642250889495225636322654792736244409774623570126894936058138354265430369349463203214088705112903458353509423293453859411491220299129882046816964057740086765587492405292283469647952713167370950006001184113050449137915811884831923922116807955430928528149228747940790487774570718367379713939050360040839159852863021972449158292467769974449325240287832711145661541416632462836418030770201906181562335521546584610302063466559835955011866103880981131187247864339992409725088149252770497443433606584793058994574287286508538142414432755645969289980547540800394694071418455757713748495583427719402303190297735279306111378913122167752422542629589319880544256296142579392860341495530726619541992018987645145711355513905316478855884976400434186458221368946878217367930819366697158795167998630468775988850784104952352965788083718709252331549697355982417642086462021586235969338534713961135804573210779924386653862860167262780464042553222505616835041859995507705030532975581816280316064019139927202993617150975827352424160956819125897892963307932554508798376407306663898553082768622198043339864406074605675857788106605077422700433771994170303069958391276853106142576822061799231584608436341054288459403342992433351373963563790187228592128854715924114061399708431251415196007211108217535129319901413667649292547851663154581984427460542425466787830035446753433484795991591349535613048159931186906373809676888959771002661005296027424139336889450817944620164116918848480432492234167964357978225218347951104588675362592899880866584368303664866959767401424456123958264635214776603940002511765788304195850063289344187955832358224956271880738614025167812800951040487036118601295996898581437473669317481398904990126147652882451866162340509080955383607796802669318756493048861426870532818392134601146991434235958714861107862939424901568602544764879924614112955427700754634477260522168915232408070761664416483420268128012642691073283528228907835594816948740149940969665188823700822097457021417370478370589671996655424834773943797948277131177626599006864193089309424842682290835126612562355364551581188479752932159823042841176825750455218999793611471469616378949911809135452556999215435909694871432235889022874846319874185491115459970977853563646008490756855218803815275867052497368823754300107869354828011706813086617252882096145794992971359780157614819882473989379734031269572541335698766783236933648588892382799018243087768387259610311121562210878718483993713547144687520870416908373767767618300417080464960800472251835974193182338336433528682683149695717837802415509997154126631442053130058519730519550476064058114476577173315746488997405556423811364860592455014034355466630586574968455136257561189121804023335887920818281846488225869476188673558399782236030697717960789118380262208943860750696885544812152643844170201175099922188985968648204626217610727864035990934793532648710578441243865069537922775114770519266192611409524619404953901185033832430678117691486190924429293973216361727472590612006623000063654795356270666313084210291843944069043672305702521956448134580633778002974279113710239521326333341673212808513649136163344978750038837260664632164119410419615348977116453669900774958432932420112979626671025992623783914005645426475523986488995148808224273450016148381194670987236549018469847565796324014162926318729003099697295348395146133765619054969154670820884663823850185364909280810287731984363879037737689919728985696485021780714748107517742176697234725029984543341589879589609120273223581024227984668394458620708662728649020593165029334934895554326048455814308735809353231081463515886370741488813679825913301287431082183133112068840635386279455261595753282493949081141355208587155460172277526047056233485967009877729822729905518223392953047858384423932207105536931548345807609105068092384606061014217542881504786762357948368127266645759549515884728329945671762370996499259086101294626193236628075424923645015024047365099392745578601193936528972978740866879856106675178243096368820064331318996917693139792228190934663429797844082885121402986111246263738076770814740084045253973036113254474596524415232549391063757062993405633611633957979922135742724370070633717675382244196461725867417363689409379519049736170653599166654433061889635878832741806869278092818059378450193418355675933439747375886412231831945340951916904963979669569654768574752874094574527500893081689649656599301220522234032410402899777450874651614488132684720218112335488943844406943717252517736358711743737313142442379524921351597204351355215464054513042804698147508392591104954831278232706219602580100719879338438450762969188268929564115235467297635700431410045313023122337284698239638423161360618797066707358069314443992865012328696825984463916867463442135920057715566009211348263083462737130978955394092516430198331592821157314121409211703318168707659206422978452052059190070609920363157440179141017184103891125230806656838351677821318097604539357128979050658310088038842594271592086716087757672045825873032735651852799298882061315077792606847166312962924310132517338227462931366286809843983727098973975081726488896286340485812758895317313084304200271701818789647654566953635885646789552900485838159572116058561014519289837420620149394141870398945877646425988576317186041441931916114002077508878419509241253036684549680077308506831651692121470488894991732205578844120122680106707866880674239895973993017714926359992752022523743700974574351393527651301514826302024579805948243898257665185934943577709867435777914661505168899939830440900535767626495710464117633759697650674128780449776812479347917926139699065608153757966279860720480673897540597365348972613062055683816375281762786005301800536496740682498206033923782932573683816144151357190279203126289086831929926480882081969450750484056250870575786970410305108457254064161875727143935554405919465316355666856906107498887522443573548670868318483638317250345365461232295951517191563845917665993702638412918571927832522586418947422848859781081780405443406019609696932763005922059042723721234315607695893662681233784687404601489727707621882928695962996191674781519561000785424001873742917817434821165304500686335478987497658399611096502914792538826040606948355136170936410126583868733824576084172075068269895894860461295132183395818908534613077507042958336160757344483858048045002330914461109900398647165345654264950393406794683058774429604370777391194675988402580649888526887201845363989379525183550605642486019345911544297812156368287183162906115831652871415743515704280190149233752912851670321413307480298483692696413572688592269487981060682945809064133280234393145459997318812554622951666333649685403178820669426016849149551994174520996023511800196605893565518214415673859288889108905779923675680537234493452689247894858499815537135384650217737223272433766927406848142569926181807437941794188512514172046533458881244799961585285692773435272837358527469549657065676753205997913544829622788099950629529243198882006040564558975349549019970314375411538858432523637986999800634937932090399620117863302779022318139413324464233577814376722008216838311255570356144090601879768985671614809479709515128872278811727904799236562213845127618707856716360408710790021313213917121549851936543840500743061191547830984556422464194865880191191175685318273227469463178552510731419213803201583100558990909286746172166326772844407753561935115257603376188777878627711777881870284441481112314769506995573907045501299715383274002788977975964464673870212234402976901714515036024220547379132750155262865646786169829170065857127628798599639501254310232037799612032014223063067441246815827617564849769906621722938782484738501763811727820992997624434902151701913529699346981680775056484396446977655474129284607160688624757795962759034258293894954849660366218642277674798387882223957461127987810824319714296377932638720681834034810613164371044961256393005438809952267612380193271571623802970521885299264283031209368385868037561667272385366501333693502167052841990478399213281372025876929509237154793831402836804840904445482510212514523603807927955922693583072124340080017103531539352883055262475058868229179025560796505599951011481639242638457713229254190625474570806012533091628634852799682606786819597188901391226211121860861764685989727532197992720778373289820862031486609036129372964844742695541441728726644577752275444288207876496291649963026643535590769583387016915489252977961014021298552540835457140461791282217500759626627956262828244163295922884132591184337301652924941264057227604516252119181649410804022926227353945595469429153388523307134138305798739143338200375171682358751782956571402652809934135675341670605553926522908055770441928758480388714728948294045135840099027218000258279651670477875113247550456339027286709450149139091989563105102279657258462963009328430948472044077580077916133375660778735526151048143867585079960254663407178361871640340245004868781972350003563022152940372747033096033365534546184252209339322272208291668945164313022126577862329620664329779065648655396588783654875799438377720976193352447652660544445802921379949668966544204002981520554580173653356339141269191372369478210620515616294009131666599960671888025273944903784971581346081660723259557941142013232116039370266063928287692990073726948835913994214803710886186442388113527332210854178369469800162257504419176086111110655415310949608848202271072006829366689256680669214637559710977027609876499886350993522383110445462596214210447105566910842604279547112321284913369958944030191503843850365247719108923442269571727940278561545693223705061521423180683935645984262637474717824301479601930951609816014945925872825939373691620311214867787905084286125548524928807373297602027970902810951059978602044048018716446076967844026447885885104914794491425619461575662372084870086464678180868941931621047575800635251849267847806361068208764572510758450796177518510682997078559724341124842479152599174413967600795644662283378960478895084402248291424827431270062513349505804602551543458509052476710775784987074725706788572153375053460264916747766431841446264285658818730296087919542384267659563493667774290453230093495367537825756582152714405999489659198986553196709401733711290034436545070196021399831506253354155113326124476225941402509448007700105683394173882495830423845282989837120839964647922494774601657994039339504850455606718143681910189346863844629067763817842439123412177052039366887926443813796124723470836548344463678044076320726820414776510523737894603441314012669478606686451173975300892299732458256756545292241683066684922921975505575538518295800832187874907158301913899459933444526934545699886617451220828401864295489451981688210390151379219746259486097503747502218201358766587789815139694022187416432842298999039529332632678917889960946620240825385005208510284054801542719903489848061237011916341980147593195400287851890969620793307162731648738004389833957601129410893066052060544029281484588384000469451241983876339531119354728207775506051401055779453957497487643975456036244104142934333353878082240761143418575730529443363584166070926428541419129461561100332756205941469439746909728519627412995164003014352353646797207670714432220364379975903135331490967068739404677754630744410108804940214737846455746048420478476066425447420450103959449226503262942753414668354983102138346739975308702755908442991871566824953103245717643327225791246836075911677460586178151879110025997628582530629090981832912663320370078390806349046943107328024057170669192132942930367837697198144567519191385540540755394485228149902325145733667395421015427304212074667493865897016875477006491547977558163547198548682935979496247322862866757782052534927356740033182566524816309950566433305400918249883809152245635357307144312841853650215442226147946890868414416732099276799815756387863120632800419328046298048082323237751081228636462842608758738440312659919951845300085536225421483141882413573162061123807014783596776284528176196777425828066433649324803193126349671458273698773564143297954760748204065975915490291349640647851696439457549726170283642279790243471813413092029997305448299062281005375329678310295437093824349629011506823598174364356015092571260948454955874331376216946830525688969380330613626561831126469812266158552784642051322810662906413768309583558311355923227328513970006225876044131213996251506173057204657179744629857378413230381405870649510679356004090870912916338509661565024385945855737952905648681529084202031851454795267476629717881291549120754867058259367910485176040428646536163472138937997696690779740946992194131397347202984737731813309377796060306035723707634482253221229090934571180261964565352788517990024646550851795776618881884780684096738837400544446378891714464521021038859621491080652277438768801481606450106521694442860746233124753813701619144420812100478755072870560902544697658326724124392420772827970676767105078196142891073602086818735383307473662124890355840161347213564811619775728733693668222501044115893945310323060693673618511243291749000155190119993244021789040477591866431510521199034030531366612290611174846960415279586059296151940385475955288365510770076519437460664386272626402912587644964212066710884804728125831162456461485713153283541136988931223151827860732852823498721589089511392830179075597479036863804408988888640643555580190101969856805606812913831540440102096578856511369522414963949399003283610201189407188868932304148714333460947747697747839831884227233483621727275314421937759648940491214573578720423329557625621759268932672895366951047602899136269604360022637939408961525516543844995738807020776919014928402301428739533436742007228161790687108063104305924352161796182433791558253223339359826095615694442698437999789520853621011182212414855735120053621086264146916512704028288680723897497863621087650055131786970037622060758971389289931743185062471654482923604934183922389582486298149597094114836257346514035985501147140586304332165922762166053804175122318154276722112819138158507001469316940548867785456274145796712795037527835921743505658246076046699215170958297692000866855317902738681673865350304345843771021837451330605333507580073157914078848643204945680400019219451007968909643020768663278056205193216122576139615199987455024417373507725443554560130405096321078297241524599336299313684771565424836727470831866776689207196628829519171554048404746241654586370915769198082249013923980015501695157994188327497309077371824344927315393834450451749955967957168553376362433287555022152427670411858622088982388356480352826697725688493023120283392732142404484034907987683050382831052081930702522696481991686828767131059312833053669794614493663253447318030103770533257605288269618799877695361976433694245924382901376884670804662429491631241141311899815241715333501613171564032772981432935011548798585878378720072214360906318028273687054074408606915064990223747331310243787756886134078366660842832543660295093672018707439641456017854188183304515202706022682064305714643344970051568075780305918218569985368732241176409911657056816627034879457440988029845382058546407997407046531606207639632457841389917353589326557727201301628350933467403266437493392228085814785987996993069143697827571294181428653249488911962257369075545413367802956548415766647327777239222479998683908646439756852348816149583609007455085741880735836136978107715270310735207676286960611266101274388084992030133990079112206877242609625122780041159846510863530533757365630731170215038143965501959134430209312061261942639160503888351523484419436008037678368930360712585051514668014509920741683866943692629260669711108996557380491593458217664165404406762164090249019724216738461675244058738889561509355496600123786306719998031432151763075174879400200001660180606759075597165565807877104451217334391455679405160914422771371540725073550120434245989449282780415049252909702004154326046440493134417076951818362804711460023588337109851608452623660906725558651280907059426458606928678215834763953541613458284012171814518015799166932052115346943903609576383354371403281019353489740893035937881689272274197428469044651779408542447610724154939183184718398186599919365272050784327384346795205433413025458326908417452615761952674154036336469698884084418308730564055129099175057989996230097005249460277723690344512069073556960391452304018515323018122760234740932395052267859140861316343754795503874766870552722003007680659207439393985290474086238566936821534776538542408137377483367572658697623849766680222533180976347931807817551309801158584205174930446193850015934487369005361945139690213436245335352568048192835722934353056908253661229961591510618666442556943085434332075292083027378923903173350369475376435015222457650395591350121734434739343900580526213874177350433250801571146114320860892017012628092526749268211355801123791384470100673188772930781523330982288631443611990844781704055800040645757737852536508982631978061286478842185715814967739501586238811186640676395129888756876149520128006484561721752561481443513625226224804300721889185334662496786590169050294373432453774830829081897871440949684260506489632258869009831681859201344768011164451264906095736178251398467894218094643031089337040065940303104937912866853709409672927982401991254863115687717657277850402559415057770596226235428969670619857553377499910864092333914291969165635847637242933218567746389787300935682585538931963092101412213212210843952763160198915964374864197562572504412375350181020938690986043289429396119494958777558561728852746166693784074708232611458478834433925952332896003019804591143499865994243750248794376183597948811524171602020511651668234100938261644947033602612595227002313799507356371517361703737136847263353504949213924061836388455745940970594262183405417770305538262363938750420587510702546132910686930999800308300730820248662800026039921328693587737905530308667796032577390917424667402509259036906857395704543384721732368893054605090241806440325172233907524819484455971931090816436014450905171850214507398684895937817719878200909346151909367171680969409215582659891320426452314200718721763167047664905359397322565278177389609424208408653165051782433631292385953525928510875593044061199110842769846780881913105693313706141389859844653735289095370607198325212553518874784005298380207029773245802162435001857587236962984792247374975646639021070540965658545434300911459725759966365070631144803286902911113711487152690339278570087305137718005271871466267401429046951866079856605320752361958497196000981269680999945488274406121651702059164948776181703677755485110514815714262912886444921068348853158718287290706343697814003881545890731751240541456365692951553649084899980435746521086031478403401112772835786013409912267575135757544727258341587248560744658730282912581576748739324358729725508972429067410390883442552259638537506614325412540499017087581538598528960827047684720349107413217522521255312480191050456577950758304538733686566761441894490146323852939720620102404162171262583227623338416581309802870850859686528669612245086739840784515052818902632229118325943479881148198253948145074753568122081398981876899269354541478684062969717598693211020038000837191945497052528089908019404354514624184210749986521950806961395637978800105694600516821818201438281897798194384380931923792852662433590915974187453568983124504210780675342413493672458322748049770387773270981645976971708403831535538698751930413503222995742870195580567270404257677518091167345487600594149979292980884310523319902652218554953716895560333802611888930312549969712206714138097332535628147998054996568766526931925515157810764628564228958507878411893495594796361847855032474005688570530032880791654439535662559418253102874118765570492716881179801731599756459905176447451045491740828326451464877392837783787396265756854916346884550786148074537525502861851012664972570812516855458625326976728937637130903223911817456534242773850348941370975693662221088606381324144695047099917049886149528881218239606259964147834408176864899953034437205307377787605487958055835379803077645778604420835185746235665656767696426245907515079073282801169796157713030732259270756536050110899470600054128274833510159419384560904790483169206424755338401894322135566180435242395146251706473695018815238715197120028451746540471614339040919167846996111799250610360319728036432450677446177444660315380622026631147384011676237629892911163814256789561243878451703865894499653730278220816303290189184218374502582225458170212666320274452408592209306668744256429086618271868733629688489018572883964880775008850822030530474822726739144660745833853485989567741199778922374385489724424274388352383656266089349038667806177752354393162411883951549550781453050128061844811043460926652108583107173037522780818009701517696594401430721499978670083417019661241990244508796796540352513404909805922325153794498635453438228209524847419742685530259682345793034926050305334392489899530729336098847963204697903223145079676936722858210407767642994727520009086123633834496674738714634722404102154522286904748474826171776609774866502383018181579118106133147490846014390732653017223367215839143142984816733789655512590830130799280714093577159629723457503364806823676208444852305270412543986965342210639840154558447809609635679876916316760184346705927317959743064170105448792453538033991486237355167323805199359171574454067886921508035673030415507738285715006423616376216220744272097750546947544767848078796864530932516805778023392963135167560120642733817965339648642041004591958115082471593350391227420556015257779508586443533872429793588088110146915433385559228744246221171053788063024539890467784391957496451091113510133728155361429147043871556890522513187130262474057154037121567054173702656048514959601614746728162285625477211844812199464856634835729181923222434003946052646689793737305051963036225889291125727167329750326860295483099871618386356119779931787462115645543992343781973252136184536398290385095124011983849767570647664488736677110188841552898784278112749817563216372009050595344035582371972680456961798241693825478300437660655184207160368068058994810948696722979345429499287421988969575483511378580895156213815462344490900636192104942374726718304367762097161543682274013477359208023940073389803449922466292921459491986836266836771504733496272218912276381362673495191604286637958579618683880895263150576443434519322274102122641746568704073747495846230199349383825849169063392467292434143499197945310900152176703417915266957202699855385445979515542330777521097083222011517908787714045699325502285896549820304981817884917564125396917112705580006408584198819423183164832193642970344931502878759223887876908105547130126882142015707717436475753846826693176813781472274093170580849530884202567033143841212642968448647158799912696549565290638856147153891760381772788241647544213209704315752791814556874383419469190778149751248874934787557190875110512030524973110179312735388177157355518943161036887562558228263118316448567691462181838919503846742534439395307460829721922049890721308579725368261574304706084623985909770798768622937593580336501260860540027167599407124588650103461287425233244124949122280994675316371954051651201303971412445993373593321764090235496519269611112984983645373823293625804136888259752184990565586477137074582062579622114717854540440485982884192266485422129306110977826818511575845703781607193549633209929422346834194210069441396812355352783767757144408199463998041279760014939035105068322718489195453418476981305727202434533636787674955788128384819919569617549979642147369836517459565818771345603607903112936275486219896691886573213029957769579508904651255792347138083237066357458568619456772814746878333867153684078061668868113334116760683689878519162608981601147547986724927547129584380956461126574612737618560754494748035692552034745592208003720866628772899517281781361158165875415110426288044818679159308173156251026257274136274766377994589758303932673639594174228412157717610408706318267250563316048541137943969394472840336232707061122443426162984106764266544440604661270264677883711685849944312647762968450413208971544232535760000397937232075298497456524625733601256099465062592175075097525830556873615602513622758061451683424102237275463618175410299415662717964526003208161427685412251117544284971268025177705070494692873254058686615980649202266483165402410730284767366171241684151698834849401746339906151339637709805123388264017106817317242592926963874753880644859349079102263645384434385168771513864258035410750846937145048565236839838438749532980573217984536562417686027330134842590754968720976423974549817178779061041822868524917229154712463965455158260283959583729697361620845097230886854127709405340402789031436270958239826862997109905594668677530904966707190331075349467504668353058291034655614059436043666428587481836377727023775615493503539446202387348611144425359265890078616124795332820717400761741204259869632391997166027888808079863571181258731697641292704059094215059737884494288349139013013086354449895475143550728292579523095686086404815280796936165554931709589343725578754807072297055526306912504384475522577562582909563412001141815314017153502648559224238769075245966863832980453733280165657814429053716791479161244379862301277778553339137928685465125547697080549302876885821187725522967706100237396901260212531799184652824308517504048464151233403109065250006733669343710148076928479826451531838386824007154103849739367370782313969670324822851990856731097568823965597562362762086097590055183037214749977384390383792766492874224331980394602001826083714010801927863131607107286890747450923792863496750688588276365513452445056940605904802970059300958390561798040738520940881997557617116903563493869810998227512241995237492943613949289429582056993556495019247399012225700590147385354487319287658242797114739919774337665159894572489640985102451422032093374064499342302721748826440560762265367639243888925261795533611469082430579085038607855638905421221326645818494745898170837195604757664874285340373970039853322524035899708261249177563278119332429307731530884958463784296261447248475087434243550516651099260161051317038556806691926988286092403199847453858360843070843114729820714601452530142948079827995320772890120493512156059872895461941011101732982740561384720459815308876872565790587267023602773298009158116324642974429421800769081814443355384338020390770980583712639714296696726933853161669559655161409512593514801314666554588390016990930553952514346706070311078863642066157432490280157002472982670868310634399713001761004225265632398613562519537580932666296244659244216605119517702677031569253261092475049000795080661098242403781004014069711735736443511285327881970130376097226270179682565843975260970916330446960287531784680059507133054875128242214553273506764020834193180572137644314486574323844362274775731006059209909059724548258402964359284899267915859900398450399767211397127709716965040831721570983857861985613583914045796946124965155869210394330641267347581760059290395340656631494152519391869776734950819961810069731485701900551201229669284528827528398199838434150023401501840167478379692356575100329598783559436399877515741555287884089710322218679497712409603328604602867553663396460542333793566390850746753602383334836618360147048765809466996173878387248751845590680811970484838335345213185862128732065305932131119433827118879195390579639775740226900000697284836688785425245977089123672602774252315474285577519110682053429496337061776420311394224674490364968506266175246712788102313901847229739944707748071531529493213588322673838730681686940847990228519999649889202006877905545387292163580521974796818042886940831967180997322569516483739353458618521122056340221517744270587144218006130565088213137695683180123776949508454450565855949800080695000257173002930085280808321576444046810020179996866185674330939927742775821198136164843268869786596804503218504593019778924841107519663435740293203771920272020466848429714936934660798535967448711254989783292752991417757202927432818365160259491464256606122037182970558921797269326966652752686723749182795428081979431173701578594855372432304920791251826817124458614833630262832843501024097155761721712117696601796179874549413639429751462077615458237772903769304538429726831232866675748161031534704765271415095846343474356377307832668247826912936409470193168879118479806393035654944548989148788215761560360851928808452575583767303492269416160421351916862645473906694081329117637880890689225979695020109370947061062233669839635223629123919277585961687425501241158307568486876328257988066915362792489809737387966372538872491000247188293305709659159039613351009745021653758877980060339832128246501085338486647803950416141639732598250312830905765618528882115224503178515735359754882427352186436856642643863145010423083409281934349753252440458018782039116011049291491603864086048691736854479928343502174841912676498614955266530917920144797866417963864006113668618506358376324679328338183420938061716677148897262250111749332807849945416103015320222194536738457676824698523323281821069100877496592555292934336768976996489019758580363551787774533724800053216179405952626585223078551752419491068941631938512386868446338506409086009503280808910409957674125796833381922425641949468836713064283746889478630570437336908250472389468351479059404278480583864322232387577029817623592965849210740716222292141851519262615336052299466219378302022830015754437964331765395035250316897122851930041590430433376039493193344539144184645025265265686080255977705977213231880855304485189371838210190100116037923225194422399207703743186805434525495138807801305696454501155582103374124905546904894749442468751109799729919287721390169239632031817951378167593415495603922071856153859345153331079625030178878272280278829303874935234623605540665790826498842815904727402829224541713950855689519308175614620499599129140113586370213717817414793954011765734402201165252607782702855871690998123973515862035193991892756841472203999016439954260165585667959438444426807569328764666519220402830717151619981962849584043893269932248912450971587410290221420552286227196479647136315991954052283105787846391802536780607353036659450449695138576910567796191301172894514716586489727834567992094100856183163096549023823875431691784529698666587095054273172514395481910806381500916634832272362196462766391668354524478989461934696327553973648833936768722424745195882104098824655141009445107045977086787836802847100228510460380706729965610293121480950235722373495485164848904431755639114795170166776136804466115078892273214988834352473190889600182546007901963857077017700525000223015441226043046872989058971070923208715191784058558633322733291992155231525749071406870255559161374430255798280819534409828561153126016160585120824273809568541466345586657541026522068480359138746284827354920693891942113903357962381878016878853855301610324222321555974803347458576680647371982509508097353249869000141898504096088608461611087788576117018736710089226809068768205505909043422507906298435151451714429087184833655364554541904109770669640912363454968190561957951552222631102801014889475579604390852199587105804449913632917310964712339147959838676011719943927696694956335941379107531820141937943116409169042627651902498116902229539750201122357149226229989821809737863413610391116294175558809260111379992811040680066175158788799689771012552969849822080478400138182059381992956467391294227105645014839833931947939021433808233514790691662381489457136975966749516277428777438222850794694724629561225373414960248007030087998467137209254727137891604265650587928406833836257858835510349865365699815068819226212213811821911304780316469118980256444402111173048858870166398584353909801043261683505485662886023486725201962495509797444910792372050191634600654869465831962410563423200923208914550356150961461710109975018691464970264253194826336023914797319956606134125957487744009348937085536296722643089912626710649001182615381342532817061915473423577285971088534496151381623707767938580152323639011996026687534298339306259848511807745104577990437248722146561924819159610566616805359200747544449106638061224978042520100526993438170635735463858614142673494789666702679310094724330580805951992647064815297645485456432524285130110387841256091341899796635520008716173812435982872553214117955208561506918817543523641600031272587898715890521942627950756930447065528219670800935541783469987978552517684489056321310448489870003946311014665349408481707461342527140681247746980839008603797194360887891276894432894013880357734726356809935089918456374785216856471272392636048616520129980445977523449003028164431054525969446087141785417270268934804857246529527870528570492184194168572559184402847255341885357613116996008960704898449159195368703667340745285037806351075187181178000711379606138371943718249806828859299448683755072303894965895715883325022138326834052763189245929210947779108114143453486853204288092438926778791141778474796857785602360203046035229861823027413360065888909948789554672538382760197332433437334148293520047291380735557411078117666016475985431183533660839502844825862486360133330858518304964748305874300150454188432306260522572204804087789275777850003710203664038765404661279557936843299983157233735320546440870805555306254394545548724119592114323386085279946835551042926884496551993700110571862768641880678211289628532314022707684889699111820435503233388150047742833630947080087625765358003413285316306022832504135546280558218467250050263439728938867068343637640028538633581550599980880736734402449219632555428008065176564831630279249765639283052449167679037595475691719765154303614355676369921400953195615561486526055655643071930434715265352883579736204221026394544868626349973972583160013395720621296536556563966843262484436269590414533842058666974088495887891411929141305572055753008825939755368383414305187584273970476031476884418946416844953460258129521525248818954688200466327451421512365369978304527430548635036753744083988249542529932924445521633188895074014342400476638303687396433278803375268953042402029434481212209063282931823387779628622728746943034302417697308874040074598598088866055863117197826531067172194377336059216731274580380107527977324806963869690379378248461415307376929929264063264485780431735100479863672359701397194075931789295507196444389521371570633979194203155809609307364662449638914630661566480684865766092478717514325799134985550515498061255423720576533428154623798841267261979202180587501916521551527260071226122590556932771817714851143767189321180802273666950458722879111269272842207590183264434743723489447497652812478553027097903926773722039465587221706995431478285845845042555700511749497021240892103682937095852692284500045369557569431285858023435805485752144265474154712972700856279076341356833625465277655476836291252705051714746989782689477445617548811992723812220049449726466327483853971840329121728557517972698242656417998253645250629818711492272236157086617327864812372693868227020847436453854948980139178169029028998885618928402454621628780556103168093941147969556637302258579385539286276773556353879589297702393557746179308511557610300719950324396232251539637114081457922496409299592989003872543594342150979410822630055424393969975881063759950645789515026646748139989630137925997423947436976913716134264541495445768038521163597013956978803629072359074979948907723612890363517318461874546690461021272305219228052251962379679390576130895075341138765512167621926414023442321804939261729930992091004103937890667349309574807105625299409863246111029202463235448680947212836680846612372355992929073193019119872303807622553597441402393250788597579800877091724600852096325860069219919240792357593988886481500290407052683710505955448720177481563447897906527034836028005388143540157661793938804273514318441427493729711550997070013672623909390852802332369277232770109362064058826996515742319987543970213887892677473595135115802572882496339674179670801250214028918176452301238539928227634365273957888588531587015212403252184909727659170518782565723971675912843744443238449487674418178286400934667402777945523588171626576977032578946104317813006760634721486235095651548894157017674221255919933914792174927432565435339099551673503353863549263747352016627274534529240036404193781508182804720257189369840396679150984037005886241362764141201521071643993783347335611066790929996366262804903034724737583395093855111176312446007842919346131922663552764827086553216239172586605320045029001011085904995057024206634126652134645179527280065017416057258167974886229731727029510784841451327365073665686336958876424980060390813329628480864487647537961241488887583152955834503986470977319258337645443311399776430162047756577365971452724109608443831834591773493646971269107478799684681497234697601727976002919270097099798260427166493566169150690652307385279601406303807451118784465045173098593968720883139855762587708598504686217173970841284610590825185495777832317515103824764958938904223762226371837072835927707986692087864649009486798963954155021984212995081982005836194090024214087010629544670474900924278787155652125579918714089335012410808652057063940198291787682015763032829775383809646773958115214204170800282051154059084549129272488578621583775330602909801361047505571136681556957563168755479342315583815814020315446425072291935657649326387670320536070274491293840241797518261848768568653525173433663131044738239102028495681414486948900050898562890412712769278013342339228892642196699287180090494341016650334468696711063711851087977193283301370093047965109376820075025456175310013448559870328114447384289737391258361551187357131416499046935507794686597867875521448593477240216545752180577337502801527953446742496964778054073647745785031371978854399171033866393054227302248029187235350768645320731117571043263500013357143433896292434712561409975919007337932779246615221023073191112519234870609214610808076317424033079164741980996057928863853565985413237755630025218328978038655129279570643031724945348309453758561424090315790721694158466272907187243410067455799341852948308826267029705921133527049311166137382599943242974604075073302508350853802274290605493465814435632299934335901557719370969424086388705117993939818343683409231644266761773214128911086504579094371849175588535158542403632294639162486608243320798974229398917047452115778595360558590004364447846338601979555187098093825333982093665190886810849822358884894138083499277487084447943054823742782843861011229447866345404224442646306472339565537420367243511572073883309060061820390910096735948647082893944937409238290608165589465870463388882771987469863206785129055970783133691482467678949317141156596185865429556809646486022809175137177520776221415483269538084598027174998022528290750238548712207923780118266656908660756038016910143188989490133957465707354621080100950323627001636094619572236305567756887686466226773931284397658435634993114102011836288148076138697022088630614232690186784775972562408875917336034730920952401995872236637204089582684376294564294828825274006218129419646642719348185913371532015017239926851325116536129434356787278034328462421412347237207110735007313618548721774763300636781481435898054786453877475551257532438678699895632722191864392665683189069873769097927077166131878672439858562018742038117188471981371942901572631861558438044416210892213772545426196015739734260531458377408882470019013808012626293296612162232000936818118742549589041092408998529270936604564717148135425332531887228409928973725853557743867818286985917360129687611461360225422187885510846940137555233330106631671456437128726559214464745295540185615463001628352521212796444855609589534800374511055674974666060342886364167804490241962214596436720955330170149553706064919914842089975176041554726816563680968305158844658912924457594263585121928808211719393132015386374661366929345119822350206614180377634457313540427003291765357468732081630544091019039759406650370001089572135284953194585625661314495003508094968290407579265261386613861423392197566007271811975840143886047588282275059549132412095639781964256949914805978995510571568203784060975707571486495420481765004346651111859606915679532177915474522810241366008949277812352671604599741109777313315948090396379090343851558782437186550410363311831092022290896489198859779444126953807748457121781872271186296583834539414950952128338783480250141966970776314561287817262837793504132924521670875491130617108271971027929658789398117320458491130843938339266814351115182190753131421547767605681161319810008262868880790874294280712354532402345034841194294039309468708851628558571170855592624887419052721027776368596595323816711862624855226197032878252803548005466527569685232781182151063031353064880517874418143332695531439520937353514345817618780716868767279393303606862514147218013214109344703439548770976655100668293720929991716273225832871475821783003724233612850363170203455390857798629550756828567697796924779717553823753744262467828089068153496394840208632564390196064017789182252550025758367464174391934602920842639164729000626747782953926547407650334729708605456543055021625136827408927789519056295495264064458689063598203116049454883564936130290115214421217340748646697869344720264884062594962490532685044000222341404473627727320794184400562928411836721597136625191796724549731094116565053185644739559707121160593989170552733336041484131459815463555955836286943428292097269335225783588861815420282167060255712340596184167768884381652033334509326682098370612275039803931873996065187118900257699569860032685991439334467179236841941269478426359604392716496305003437177364022342980450549758517720850448451700145770326441253747490522103321134070282752798679598147545201772821772424787744633354162452404462987419034614499089270975125875294356275424153374967368217754372613634939881410475145366631987698813798737630661000322351686328660824324825258528728137804294386171780057980336376812321844143210949824565151033667562837801490342749893103651714873767696292750714794527770977815334684023390740138571327319010922410000995764714875349560138920174015975098669566376417908996304051944631391173077983655069494942516028661204925581354993432532228519102748556867574233737803002812951992829964254810287248267865064890873284139647403099891021605398273905189388624682999090148773259483710510389744162766244528786991066468450275750091077653658358873873143447236134590741416961211650081632531860410881301204539193547893562790757804846765402136991656840274495413067783374484926486338069182990925869705688655716193477051384856533892520972088007039074604875480974827239918747271488032488429546845091970040039824953967714518401423974039255233805357757246136982568705989227295107514591412827989151815182506879950768941783275354574694712896939609267027153844579230044148864611958476273350142267937320505094106079875730683563863358163538630791075370025948388788518143158969152810336942386438096421531407183152594993634334219886337170100951486333881480140095264799940456316491443390743225347172045287659510715330161882144839409170141965899121154408970413525134838205382477338908708772390050643143241649633567395638893881356407887587018595926490485711903337850525618518315200810858745742343051546864439348684998324444468786686237655723163715468777713612793576119549340199457617195737426670529440209400345944593270537291253474864803637304243478991038465625852664760853332844462970916920168210378555407872462720418658793924592206589551836093581422116046636390583206278788545097295909030627450665318750214764036322032143650919874001536892512152603726042491594700052590997088725546158480052427648351019403566272074956013611935365466936416043068258858102295267124129110642130818877420827419328569017771142037187337416882212351975137133916468279019028565421704515474218521962383975895180807733318985584179242847950114347215297467874185988540609653435644361503218398021315480807867141059132541777427193325722337295956651959822470929588802280247743910247785939643173320391251044088598832456573298501438322363172314264210591997893456984298856884727686159150669397479469731783297645119918771274602666427081857849811824099968075985290820160616671177759500563951995414361897167057706919000061490825655161367973875460559666268836584749649934341912456928062322152593165495835503484824345885074523451596381801576737804244175224546168291602507223104456964974944184233014655464841635125962010381636563265097427307518837286154053275150968947068614407407820480443419779073366915053681583461626074206228569856098920929054912994876509111215517978041648994847749427063452648518269721611526387822144960216399712854990016610480940271186128184990677307907568038710277497081897718329486419274589316557840320997110109224406297743898976043810851836126571649772328755053441575546068292538646734390513827912765096488977698225155804918668686953630678554139321067195748176911144581683141779076825534883216493400312285804932321054233272037941076368330998468480424913035922386648900209888436244717795411457553274292970479634854938663177655675662961532019166258465398899754783012183646196460202124519816937956183079147130948437323912239609653639614224779006113028492783223770067702876934404337046899767466424909413471935135840229404772326331002139403797264239938260484299172638030893654305641356843307353165091655971741357353048250837037261863425029079189972657550253867910715738121586144132486922867641980136750624418782671882429421089584541384384715515132407376488785960176919601584891678880285824182188473728935022801696136386539080213671635326592528676927600995664892702316647419326573131088694129110889628060433317246711787925106001255205879015502140494339724968648598972608908601218868163383954459948129803362358848989491486374878401825391287260281725970750197986268473232375502886557468839150304568948345145619217729201298740292467316971788232334533359878716662920191224800673392542482343336174616742605105358756577261631491482298703443038911602593594825031343690660624986504492005018897446716589795641955615708286130734732839682239712882649049155207646419695767916429184652446426575792976024854136323452382514004535352764408035704024137193086584957639664691821844057561806042829034424114664160590574967157873721575954527211587759857607403757166088973130104140868181173376787767833404976737927773765234213609928192170301738805616037326908998798935657450945400446161939748892438919492721388046801688632541139395949495749080084362635908595252148912183095885508546447473391181655267784583062257689364861608549946991127166012476069636199156446092407769524991825004397235148181149035614251466786636424551694917838431235560782724174956884969915209184318337687255674027104288394137805896364988401872800503654830926022933428920778570128625932420704665244436309924212497143893008692453425824881997597502497126358915980095346218175500410579618917025402079296826895902672365761259674573777218176113116771085618971489171890218424438540944052064528894255995568482171635578213479104409878277848194185807445773975733935790679066064956018183805542216598554435176801021112040636374397724124482913527017631024625401287569779558080339379132014902690037526364034449315729772868081140995682720114360037820143822242776015745237486681816774249392446249414474733195425807404038663816914791667224979455843444684128379341422059570925387265827290879856825242741921338718343232260254642746513127852146710944077098538437641781812958632034546739972879443896124835792292863150843034941896956341861792872306296455313848052397707349525861910624785466275709279146318403734906466833799167930572822564730542145697592910702363387295674609471873897185940561235731989649403499584389517237153093732399276520511239536173749339301794600047177851600697904882955371121956080636930869639682265990063703888886493279075138204066071598228821414442488605047525891274228304965085233126333001279548755299160702173621887307432530233767361805077709842762156760451394428883899115437641562892595935484891140787196096400559287751219004910242556741204121920791524848682777156457443314720443587966625830534012442704857359742623877482902248657655911402872313353146308381891297073099760261147737208577855824809229604086724725409288881192032206130785139465872297770352651741045040587930791271050889158284381455473073198770650974850112755612098090619979523266322376962321217273464940985751565732796536033992460533262878594199256861902945092644301522460633495426527548210348949883062279344335476388612317052103131529362707217849302989813470716093562354738449654780568593041581604679492005131626987429250537867547229224232019834072602927930896814934780651945295900771897603612851730656065395923543130272574451230358539985389082950430211850751304384294527629204342879624112231978223358089783531495780591653988666946329986739109749147533344386977597092591975297903798171017699261295615958349910148585781061936455758379538332579013765622653395836920630338398791375010390045927508195700297849080805835801904087154514417370163377972110654316675539191654113445497663254891718402036011612623541966210381735706137626089828456911348737242396998171334858796087780007033865774662832946958477673981257323867113143218831099520099200547658062353766728233934365043934702133259410135930561380749547461022569233083600500581080647383496225952718700286086097652228374369268458016302156754356195818980517995286326013247573262588022715822878882512487964392843748633004196334121142294905684094040659491618541762456845261927093697768116734660141095530034169520465947523478050471947258863237514968031470906507985952066588715904285075524564697095012052243525240936651531630476010784426950086032508948966449854288767326361024124360875054267019045931421878229240703608872591106949972028643757786144608670641551383588524017031918582140065060180583406636335696589726659554204256807083042169151605938746632038831165743182679122229976496616385841514353658391240846927478932149719635887407945413601982352474261303550772968612630796561294221595304697306012116263177791350290662462928780429443716094584261351925415481181914770377632103794262802852813677721187222273133982368961747039596095806181301803597553371788064163057667524766134697675265899309593568279822428612557240037122855523984920115533189677757825650007263191304136089170027615008788723831529128634900104654293294600271418346423391980392743995407146870645918486978365448063037903090472037946533493262687604192197793931392561433396069651949194454840470024994748488640074272525765519295268015674444473470161060997352638998833748413692548125221866426250795526367104625834066046660343467469355914921752613914738697587214360201392383233731065041935591456361998488824638853246363417811526454924537178075025118867212062024884157664702774973292515109534694765767829894011340031248261838965811897467237648176378361692647209160155133469053467784935199233849754759703447782652637169221575555213627439566231505140675015771294697565860096447865427425736121392723968240517315675893447248902070028420296194434852002576546013381053013669871620594177584153686866694138952007002939077008099977270928657197945045149363766549641857610651614822296825092064852837159657943788714687602798212478346819685231804083867023232715618586898580483092637113384467383657317547189995891811497851737533609514707759428169596306527711905277738973526542115596292130198691016289069813366434241933823820890230371461608832457069231832762896000376457843220438095170400815217964182787620177667260967456104885314424502703110175564697173577179301825051958647982545217830316432013640576123311491268562777092388523298000309557332423584353614960523885122212368274133216968355763990887737237371985352830086028679952746904978384951316916217017235883616028076753934329629340865858139652271829363922276603875597518330079243134188590089752778148314875493995650019406364941700099260683833242148486622645315697858921122491875136000618129771380671689671427575394665838640224067299140576987372682870661317983147208428925610711282030090689436085918055674391173938919447510361207067738521209283681845510944968817061306724226588417975999336684476714108786804693193360240309100902660330519676485868995488354316005280022159380121265742419591526688304909120396496463643562816253576829552850729000805494961263316809355334567029822808425663158035755159303371988295026125895673347317616154631571962651546842322172389506320604681705545038329281191462011933262683497876807285572039418830823136387416775586941569171593397010172362123544244552914740885192052107704565950680664073177898120778915099553523763677179814045389309546837296036094774288062695665146560512099118932560489809680745027396281988035257219598683702796410098476482861970145610672090299440990509136456452285172967093896590213589989395057748954741486321125805374656160848735753855690350159761162698261562571130891336838522065215862722899822705544707473420888391582265710355506928414305472635791215595900879999332643220285466469118559630166182824820365055274491589974780290445015619118620096674486322286407505880869312612441440118960835956423189660650868831870231466176763368463153507105812498585779584878293319479923368882917217906760240973804779101022941408499812020148695921510697730941179048562353402838810361093235530838972994056443949146224609060658001243152167033706359923747534214349188607928661497039756813832667160923802675765413346347997469425772829077459672819633339959251342960063445707462258313273210573089599977522981445826940603634733295849725569041863296887866560989132629441628728366283296061038589742134117526192786294569606974109957064220761823972977849561799335170023277162992595946772866334989646385610508928590401832249932618173144109938481861621662488850267409757347092914693947271105133062677589511039768408777113882474681725850235109556974584403474832897934414103383067252794539659371815606606131633173083813985090219254066502845589389760906604851530774351094980852657482713050457715170707019041606296671738779918983220144442405099782195092220171852204236038167198546564678307430806929410931145210544947329821943963179933220866822341174667457659059423551561664530298192449397301539807927001418827293914976909217827304334946560540737898573674986301394842891110667186930122616986792326314450939008470517479583216130498526105117665670031786656059885867447755162511806867398214728145615334751106903915908478010108726987669449498257759611433795443952094295653425823892591377145236470781674519939009568185147534288422037301353138565206619270899857895756210023066601958763188598470567330945248052929468476493780042767588868726788724141124272669941555173475746774426294180570030880865532796674608258902175178596752568299766633225664986273606190176615989923047752697875076860736541610412345900087945816763091551460248764456503661964408189531592279956942698499001670787238808144221294316891077375475629780369462168905555153758178066323039538794258320565476171208198914985162970150037077936413573199285647100102475077238474683738952836028924973613059259053433351517078655749615364232592535697615604783447192535334944239689138339099142601082127898989809503839835992405277391893338384428155027782282234904729731508963256926406684815285369773770513299633237054998199913868657085113806470314169242317065693871575442524414834280038909903085533886024762328689290914240722761235188176247555408942791669212289437017031761416985672896268521362339115271325146927100212056509974097991383219739362002019409426095877724291114619331233186105581120034103809663627370891758891717105832569047929880014449025696592514321774586879843143129400807728299121169083925766553364498069114349670666436539422525951248519705379161082683101154392079994204903312949202232820262524107557918058550565907458930275663979410604272736680343665350871462818027017847865709065246594281830705058058352613913262327443406942339685570737697654894400227947190600606158359354067483194049999903073046043882455839234488572905305996628640024072627380439382079305559873852211481193996395294432261372301262370285404448953826405759074703001445916873320063614155660928440078060181886175269779791455910747343991575100092369975086691627331465526949202383768678172545388420152004410973952625142356877964332137062558091401437583739829002926394142314002796645943243540201265168249031183313664684168172949865196108495154624936014181507735921919370037883116997807396078528183668210387028354984607593027255069342891947986631190361861561376574831715168049406737343634150186032698068944037224284701093984627863352633096850843390316923105921649582785810158065943096044331432621225558263353870097634371771381950319387345584526067215897668400967695668632474477562354535516043815801756274132289978381205737372380603180197485461978364074506093539050262177402133118068762263507472414036308260312304411808399939507262800467292415535676994317261884706595285607297349866592904486290420372397871290976705143365265525313000103691210000096572886646040782971836873352020690271193945502518049078176658357438244464364962268857893149621965883876940778950773325799100084435241614965729689063881986454231219442054116207551295490205212537670812686837852754638458809731019004684962729847433585607266677037409787660623338985216713218416298538163443879933601067984763875713158744753189005533145187268747253685264936095745880258973874615269886593726371063949735699089231511022783703093583308600325000696934018945331822942765910499750034853652189009400923500159330509187934863855169943743940016406887622288663364673851778472559491702463623769280021682417643139861170122090524079409286104577890873736692437696635686674331711366155999249355589115750255397997980547822831384445350358644100449378861410101211178903185025143910330675247576359107888517542800646833450985393334212767290565508069723909845484077616385670341295414478375177002205645538619318937450826601423218195467120760428657699984654000697834207206687166259980748333014007902029704103607745902622998215588833579978237446067671762792278885197837783183380551291778215684397503311327641044317349801750126427825863672818736150989435617817884090809186290858733948839574032534737334837072986328995420850705420215112995955602527649882806460076005357518353339905246538404738586207621189640631431328298379167329290967410562117383518602008489098672558034117523302799953453937446357066813153154032133811068575768892755750003518036011817492319794647010134263970012627679155435827965467261766936443855488334512543154748502142965563933307973249157833969579964506280743884443157024663297514729468323949982455749932190758283401821803943153114497006447951311125524219853059702271737939644263887459147058229525896491645643616889446724486882752621424766224743091488456911694028672821299246613548679505517886153908206596897477787089784673521865367522061986191329141392431680614800283547625449294125838853624481344566059400019328150806853930713435911520843835585592856562377727726937782497839877101204953469007048503105253336519331792876624588527440824518949942751788593782532824400784182865677292593710226026742700377307390651300263966174353597641080380083950310251943674875130383255216945076539826481090526791425525644157485310900639817999367243049689880007134204370981005362696268886092897293217601410500069254535857541413749846527605675578864805184670393433260708199881585142728044335047849490519359203508516153367498396035734944485905550854457735653612594012299929238097945432898610600733334510054479986132365115841571843603117774602480251803219923435616274729546599135871329667906567444580841213460181723763407976038276908363087585021604316758956303489109640857433159239966478743891494480483340188491147252984649248247176173076634043652123754282218644472334535051408243836322828129361831941848122977652980187762948053172285573109877453456966549556554635151080592641970562275711200453909603921923741369154643661451220732346221540519999336374165614357256654593705332988130688725869283797938574382599938535291843994401326923533616165238504137772341402259309490289560971471096546736500117021769196918493988135711339605280396462158044558301070837278138758438072923375043425467815050477804601308172340203692545730825055418709436697489679835421357106754867493650197643821461710346735401173758947522413392073548013405469129832832387839242265009627465026958588000362603439682572849211813263974751347083240306770995351024244174513479678442403515097414554184660440682461632480676557511030136905965615000029833892054965284024349738669329281234827872304755222140398610013584378835048167685602252839510607146269308187079036409494045258875768236782129737058081381545242048086621864116433452542062885045512200280744571728660933335758771268130304406253031575176994299835893734109663673214495397660586019875863941650990828095532783145692653087305420727311093878891081710796607439166021017798361662941826313125967718307000743456510089016401047753926523682819091114853728234437395841062201941674377899802511357997853434048004797534177731560310466336043041254322250008926075758409891767028264415801796399594014988412124628965999273848998242460611427244483832304263221473586696861795769626579433006103770417195082813582468728032120923841832317532180882243001635894046537607889040662294306251132523134247800607223454565565534155548484057568288143448896349602889729816916518215521936622874833721466623401459604014897804859828315741593438469493797646010508314228592336604821066339956807664775204688402387526318527704011683071505269538357318726311460259276303494468424376671383469205731763012395874108557670546711669712411303042353993072167797288407174232219643821497397991236082320989582491377899489161543933777049972676973929264821125929901766745459306212486972440405199517780620267999595294978761138777637944906648813909276280527889551327954288135494240974081171379222579410846687689526479396890634265037421623781369393289589167007289542152519955978466808800589577404915729676367259714689766002907970510259113811285233828971260579873114763139713879927175437416600340576747636974871093128120357009741075306533318928425024367873361586501864361182702379513133439153892253491039909621326923019597744535053884380586391858998261913648991492259162304378796798052289465442206751043093956005200093297973005373425541572278895571439093536201298595535031793997254600587691318948894881624201563246538380872428718657754282418264553245424181801615334241412293293182644191862835897260311203975290680682656903143175731512683037356425733025111305443361969746774420995364408405050994548663483199649197404557631743810359569289936912377926282159831171884583643906863002264563746801082535307968734235037737114666267449562503038400910361663508107725885777323767767551514869247294347042340469987711180456500010586252321514450973010283754399651685493598155266999478388505857569051416278465011390350175046346341961347025328267676577555806566715262708533800493057315286096895992082335353791764007431729342171545764107988945892354221738073444372422911104972920267117663418938139495319824799096466175068865970023609178352415648230446943915995256091293854590761743957830327548109901408250859001621129922342686645770945424499776032304029628506662931320413465428773164977382712862312462844296252550246858974991818549399574581260780677784548531215947164820089479142821826313521642611750112871583946064182498492524555581661909042803817603429297423956154247609360761401275516816889568142261921218869839277730753903109560179742619864873299400514397891295953169891674501879282694143245977327914874340424445748077974862666288083398734181439985528880668595081228058775791753499694190456347861172201055022750007397082750753539190133623842275612397398312624426313555970898907238036608402024925480310313343848017697343430282704892180920405546152509669558612395104559259809154357314660823784145514885195123499666163658447760215564408336617455055303700912580634315223187162775597856957185949246559886730675436203532156339790875893478474561748688328548700227221698692436948199307088199933127093965321424378555484972429979089969547120631336927950458795042312812522171854412658552852671839770150833169019357891466453764474460154769260813540785967670013211893375572354787768495727115750694766509140909747178368584506749464252979345143113521318906127768899752250028588923586455824052506887003088114385025032950737515074576976851677345871867981949240593785588911533640122382927162954087447917787840550214234147962512843324353400084095531902590156561554949763177987782266164859481715818848064690403218208877322306173538509427990549297740835869464999992906609704269164823927158833204002608529852876076529857702249502193320585956145508038815303682346304609180835162091129190295662942829964462806004450078096212007037113981881097080159578589755551852524067434509566047835932367772707717719575977094584182968920440080403063716423955420298656766790328139174625079265475472462162782125879592727320016070116934058698541788165955000713183380366063209894991430249655571974018312418415614898638187887421555543541590602155408677778506137624795522043902588402993381821655155482961012181159127394196112137646154903114240358758510173925731943792540298639394247948717886758308132139332936360855424743416102126990009238411120082822158249279667927988464828768365490886063749600099245613964942511697834901267249373712470004583877981314162507815869658798484175419333590141530093926391832270350668912663797217014276499792483061117328480114219225097436995832708031209458139166885020303247954317966018405929431492252445821131383521631890692431952642960741786320362653070648314018566605513221647911358979940849035094669399997106889259064398115728822295770191941056878072864458986004551941404697148541932316132741703251326627216083035701298140109198929328179691247104541272724027642515844651525500535760951383081547032241103333961497760330004916891020230829988705870258925947171982447378512258549392626301853067565807894028824028091738326506664798801990723749908650277734175277174179404700936731347619214791315318672966197511332144144755498007174954067236940074225074480843421632222353812574224441589934555759071053426280491901493712773684438560373061997447725062045867581913716803653549571650206243559156305195105035510844331862532498562367383340141303961512590520350872429984957086766292277255173865040430615836074727086002872387858780506602478067892490823384436539148751016052128281539653020147913815986318413857324122500349796441060414727642079952161843794926440191557135183741725348447072375470986037235028874131003493991707465624187790996373868455672980159385786883591958211077200901823561599558620043702631681417481106603545000515543948915555998994984050705087655186553978423195697801873966461099015836318385560330619694738313116823380119231173769520744047756140600048869099655478408378790625088153232572089578437938005607195296198606935372156232038589983927575698810723823813325212232311873729470833439580009920596551142035488781026149552582458059513429262862101508581212387559751121647443194764130673069476022238596863091353762506599316783690212413076656191559580612534912175859839357073637086188422017541293020031809157813701224739127676873897283080551494309176439789048432060985289504153584991195334608149061714171381135401988104955250808470236260707239355008607743463136038969559861049973437935303128952831307790678074126182551843425689234448608522273024373358234801008837109738070754576924389314253302338966605836362406666561886403215022729259122209374980605827212194928194605551965906593390114978859884955459392063420718175298299559163238320434319935482201516842207968289690474067095955878650227044438282036389796075777627238799999568759210197474470586246070857652059869288144388781068882166744144383344770103908891690399511610697700748689602310498048702819208507553998063606151858873890822457021606444184327654553967283856588273459174687937188340987219345320931993082904486346849743422927809632054761762908546605117783290009510608998925679851943294387664707684338191177099817498272287125731217199213982670430330987727860072839227875639807650781456663819943280854840004406688814525096997981735221946846398230264423169126894668466347499878701498951888056307328522897727838536733284013911630897850865726304507902476764663177811773041643911138955957669845624109855554945654265038146316954672823488022055930955568046343163531990601612129276071147387818813321739377701554652581191772355259075160847764650382754064141388866432145400608928792960205010074229482488728790641659278394402225435540136304624952411086799471631427915283254795749355126403245381814559237339428311595237989521001965586264060301117463151277485303374182854725426521263294614470011727816319465534512405402900101589402747038525460963913198860997975320634561532451738869147334457367211311549866484635652509948324610386429596661171210809363197399377030843650765204851465823690684667124632277789505464649395037357551167188189953171286670695822332462768381106874834265530172133779176458954468819478162938560239053177355260233339650991747007030611104152457301651213406215627493285206323636766928312292055868771545290736547898797508350426779193030511939098559894619969866334460613808544909972180430501363061445905840663526659426208340035716809063428861838461461803134491547976006977883601313695072398039029433371792299315155397813328681397047743600766173657636448848479945897781253228767299263330997904839255260802608643568926414551998757437716657466246214275046147124933404383669712289843087800462863605817826604921231072428192426546027402276805292009034817096421605797588589972074392866750862969562339908732848371870356441409767773674843337776190068213266527207307964095010222704869060779816740382818541468433984918733549946897068214882147133999767375841546775881164012729409182812567233165011413659140306995382287874962384020033451124473130050833319544536024158697704396998089035474046234512878348881266738868291667191333106114482229779534592212261393576539019366262021456192198985633191078466779802685093753644968707079027976870203443001823378130583096207633117418559486308768754733972538581177733041919802777396076696196010575022323377240694018115407963228877330891468747511629000338255521540349562655293267348352668751158536490041753068500864313894871135978212897772902934207218481012610180638733679235453330741188348781759438824967487134881259852827774749140749272791438864185629207286469363913740236794692911081442145268475971651565709331421702337711680760785224800933868272869394709857328078718651392568546272530526930704427511187543317801885739802059188494346214151466017455850047369241644250914236512916657047268205558150043480301721667019538386315386800513937224962625115008583850071264382209034869379601312410806872174970427112908591678499849591962438142826150453044443189008534350902928709168023809482240233519144700062414209886946435217480047140628297135872892885105444249794545214784163100473983610195734593577805119320413546249194485565045798032461625874899445955307064812364722766608582922971108680301715033323633140024750461938589325106059154901034410544085328384946443329063547073798589818332398004429858607418042543375477879334539019051286965256386525199653926644027585407811704038422002492507781965056149582362357860942680992964816170014416488588977358130106421399512248540625430561167694830808232435404820348293731356802276540026718141973580423467254307341801295521636629599023209169309208267912497155767537758476691335125013280192242022956847705591833332594493294127448686363188843868879334916209974021693723438557849042304469862564245104020622482923062453761909790272531761453491663602565167183087052326356081740765882380469869935622832643456476711783354316188061283734304526167130770985083501795634016548267314946949113557304801474336302017078048610877260586578887424582920049453651792892355862224734105493547904956665652398524280251469438162082596744589326721215037627745765748681913836724986959506461578915771355858554491912377843401229840449391118021637839044734965161551021981399509621218105775315415140321989602599629279345366355751616852894186977124492910681834173387938763660309713038404025565817879919455500826159364502832155517391946015554708990333883986683928495173805464375366062890863285963532830142372164366209547085358140456630929034946939841524930258947785992808405290239885110044075694135991509758416076195520903454446497333073070631630336378955286970358616436266585616214757977269001907884083991856944495491499803305841246830766723022185238231613424998308825933511365807702744140043691669941774124106301061643796196128324665118637636092779497305965214450156210375237582518570861908256763254077462050568094587278212442118657434855495330374646772254823609830039027925282116897417782346434005548660595557004854264500449976785513733683475982458565735895286275406939934637371192874971286445014781640499003782666115988131350526143030133667758523458724268434570358283289531278324545185894514464090921717641364783359812325805376421099910062973557824374018281006007294410028921667283345646468968332018346490367233898123727721451021865868120190793009990037252003838912583607861080076441737657575948021224934223496563212580496611840726321160768132069563024524455800688575177422225448274539231977266273682596110175701310094790493803565661212378688478749580252914134985591881482234396445812066951018503226547256196659435506979174678668444621712184199452001367141503019661074787395957298970099747565118376249267879700365023979548846094632359565128485950083158982315920079733306763070575613618529720984567187205258469607953423066781213102344132669948410996491532151429074683109207252764391086406443964696387989398280107642902576768948487754491012314916409473815690443452603493277829486956763854009056520861922819177495867324497913547282418236737795791315760225163706234136134938437424076000054448276942905758709391264740587421455446729761154018785823734812604371729335942467635178616377221795952809287841724277373686030954252518195062333128446889168711859693122934814187587150856747555936230272586644218894701115291433546392375004457534970000768074870661262149305521686203117899143027049086978980488550663974322724540542548922129396585275791222230643758745843562762972311144444122983567459796045168848166289309152701095337619817958861533966648290006888384652505701112875041001636589423006601323751785761761413155469377161710911594630648187600002081943419646538582805348648259197581275597126702296147530995779837781320876727339820833758656203894663458497952246663192842560249834882797865135723392214769994195722200800857590342641257951548765224022685225866818758772522837629832101758290322499155472028593666046183658777444051040057362821975941216964929618071686969956797194743436421975886020349366728865513983154007190513353901156375363162966256377767413922193763886615131329578161848992284293830445539269130783189493470169377955683255075518123644615689981065442902211213524044732796329980739830945876171206868470806344865513194918052772576571467116002270597652411396466204987452859091656258570928734739854926493701948965424851620042729388339039587069752978395502449258433372454635064540884973565955676517438416413559591185410345250046137882632166256076591493073963368312455408924275375832815420686439109011041183718863107717768684742061791633072262302097734246828099823403115750642469159382611279633545563155596805528276108054783052841074052408991330656324260767889452905847519185200219866724373209129431491531194610382067010514677602861646726513360577989008675023537556447691719509106175981984924034414365084598197392731287954916025066775071288792380738087195268270821088990416987402220538727725642214126475996574592013930385578952611800816963814395998829874680776469939205512271810755715677905050941378960938264486681009609361608113076088858231789209902205431128394920970476532224018806424599309037446657546618359108073797626204959467039262055435259041155651227165526496384578141789849483795457787287187722806888573618845474404419290055824195012627875879702755818650614504967920435713885032600956852122669480444085440408061585869013367474512530714438245085207773379272155842060678603785539478828056779556980661034204981257856470532877323611842473261640540132728423301178566716135629314803442962102699841892473128342715560551194995105829791244483759071073407820736597163787566267626886338973510733795638814186139906451417479912459858497993604140179050418367255127553965721244425489297251723102288459855806478200851217416394966308986116614064009950454062967315184524862106719893894662608557698672471567392818943856703005192913429261010534996169244636022896003670517701927807264497641739945442679183857831128560583299716690560044916399020558713993166254397073538780747522035835641605078027507319331032791985715560586217628687490532910344459229080509277020142219707064881844414269010001300398326921738610755234749722863744132736100892644731468734002575392963732711276026201175633346826973965294598438247391045799961881872444138595501170370338514036654094887565892281227308016741300393957050848866021647531401283499305633325292558032961583682566039640386200297193897829893863137395024117742344989509233577892283584483550869630175580585737026992779566232437059699224775602721942368656299795968514420372114312372093900569504508570197885097665814509484708318455012724529713710118563618509513113530850657375169656701714144582072792528525342118561798938260514980838645341198832491248450343374876926429959776066569916326000014018653301141671355739769924997926397550833395745310395478517272716620954188883415880476361534681781001050358326816048408027295307552671859365061001580418696409470335589539917526597691329069924918614335716358508879580983840619094621130193263801025227834041141474312114971986731924263678547709819663682715853447593899194688588449100620981037474759395948536265185788253155549655420009854715707152154126994689265851547384471882596508966244865377279364729390913239627592140516541283934797205312180332112611344567416139068229958095612543419546697265308673619050711006467886260850782706443759115848361236532611197909151117182404428947087767148249725482303015936494275997890700377518843490553269544900838416801341208512423026674436993056285623490237374797048612747784362831369810626575315490044526271729417455343232026736426754783489735204740698932239766461539782920833225008106719622569571999124834201111597004270341234001081154325369837754251008079015191316848180097727833250497169032639930978521575538591769226241466696402012402273283952478889049898520782255612844437451765244436969650957922410039548360368528946117535652824721508676726202444365955924405305403893840416637227553863585013461524952925284464895356190769925846686984340032178580857860486067097960207112655803442363856208851453003548648099444813740161909409688131901407186481041331499980255412919305261464340766383814196109587860088160503618456569673379766872359055563240702775879522253626148141897316475659245282073747970629930446125241301455152399556663912503332147584630645693069741663644413831082597332618635544281759175219132427790761192874067727620964759607161078811379142523027812608567668228165162540061630466398068866098699831337658182246123614912001794081471274054602385230760690280566903254544632925772378141368709429120129857348007283158070310733044689916345225398345006941317849137730145463067803162840952614740303575735758575611061707567853215141897323230380962748131843667051969399411294106564543118569920790341154310957663469293566834771463113751161523608972091224025280760262266634249652484724525905984495616978555340358446428881410689875416211306829791750981449951532577918252358740897119717563540778087366453217120718105916587569830837120531140497062969070132640436905023215819174771544344712461809956462541428259626890548573858767593541258018920558225770846034657390072084776775114296929179385320321373603404996700649105800328156456787940798132685392630365991048790696207165143375314985540207163384684591367012337330855284604196251508710677110102507089562081276229763034012143730788608130542808497268283055818733573271666711171400734619312542781758171647828746887199841558043062052707839312649527439209609947066040402887680645968364371894521931679617924268336531175305135721932775456481070517108541525656157499099787779413957383048834465995889322116960440190039412876335997792348981768547575777934004463069929014019480859676360677190063606560501805258348404798900573359883181666904625345929937642333856702411260193112769462499450358364248060259201285604361212747338247749122262777602221941442074286285724980074090920579915855391674462765176110630783098152002343646130413703595093650778873955040582324472456890893664634242390103493168042810768752090531342579907066855563198630151871122718828353017470707026156001842092882576788035592424978813206868652554884185151177478326666679651024482658469178893831348024637652998755412369213852401908276760933491261502752413989386964891714284005708343498190023857181236847842898853139268907092771908375207061540928126297514617543335954749583291824119797597957088055422761629911693700054459179156231590899002374743166832347188624597669236169225547569029172694504504088204340129962196941616980411598550935909518909711439682244747689429150848186203018589294843368658489898540110869123816885948148289445868367074312005401658534684365332562126623839801799856357261060147599657209648835564743649107888782373840136657100045442671484404965413376471962559434670787314802371971676432311119754976450968937303360408605883813517546807745996415997917204063253366541551212380795728219709743844838174516467407376574029125162632549532755244588995324520260961441107691809523912937877370944651287386286537184102793814442016377625786892775751686380981332642143854952070480526575724369369310342864041486617750556945248713831754612377819699450387303421956352948428672605150927178086542204890393293147039330290059288130781017239165440383816573598874429598011030099569426093096202404962876380836464971715760580839955146610104934817276965513295161043890219203189840797552101185676738409163136817833006392913716929708672238721989819201205818714844720600450972306943899746799003723529285719346021341468505928204240379537348809594176202211102531162100624909622913002038866507170930095062068354233668051707882581713193124519393211203274242446558438614486631302210720427758139142627650507332661848171918381255971291251220611786650096090957492006656607498540475067264525655800192081780941156816165829826053440329257583665831980743499397102540452495558716135392054088169345577096139229890593254552270739830907687152313656227878530641691172234808128477604625994912417813936877454762299079598471487521323822632836867381492118696978130352145432410530868330198178714318884528368013396141059066450725706345056715398863604570580700485760699848679744314360283746350146289729886841479949046577556882066991787706646067611867127583582932943169957514320800309489519408926338723521696445489790035271928551116513691476214379082028312946420618803603109345108420347756896405962099687939321538023937066991121546560078479119470566565746159608463703848885843365295287195600296899372976496224374163944641395811883265095266515079672486947384869840465572991858603972670838775132273989680991768291635658500739933030971227300950250968254382576018369212244127267617635385573070967805078826444065091770863692966070572689885886676148407076471330049008459434638910444307053046372243171544080487560037364161615853364860952191479321684368787338956197561684536748624000389452081886364263247295307224153223324935293889654076054546231036062551734886839459012665700602341103075502549916982438704516402302299048724812241398115291104108096693839961906603659177120701499037434653625821945785413405503562646373353377339682382759676206900825718066856422598461600784814104160924391896297651744921220975644133142841233818393306365815013520418180922417891958285492210925828129388515427067722650981784847498101144367217850985401734757342467071899309704100790936821571831898400363242209814791730699593868116784038721058625574297860639336555112857759055006005169407982314383988016184574040818848373820872571738250101781575556450842022171843578229277993220455386019089287597986367392286357765828822445700873854716158332995013114011503875152310294383834669058884388275804204629938083252945485651774081068091149398200851092276655162840058375535129966102577327122737068381189398736543679609548993678925836034454889345476206125866190065066422135655062261189996098475642115296087074801277493363660549139701728659680577077796626940437709439339710048580107815237292768393577587337880451104428711987001664975824529896738332873107184589136193653484481251313990378362936793496966865440681110686909873813581394164181558588092538498454708391563054975480549854106385998388600134241508213858745677508669449181931485244662597527257698475481342725074474663471661116489612093740360805285565186343626670840840630724394637222298386706784011738277187618370195641451754542555412426858193119168393072889381960305473237361569772102601561967947727575520516238216886638379669353161084153980470843614827820249182155127971721388212376876751546319074543410874824825299971655788427313931926900848881401792989973095057139117945950803532791940352718161521662534565895453163612290037686777466378533249816190324976825405374635390889053162040068259335672276669760522682402170856659550088536924780567646374047309155288806297111506344875556829064953028138546816259545965340897593039348043594172194741919435559178718970086810298515227837810754309783791213384319916037458872192963413784700273139812602374288518824236718388533582004629082351010409020549558665027223481409720045378254785507164073550400648135201940941942562642309869291894498902656367415240001862284149520587533918137591381550029234599377673497842552470242227359995628479383239172310901552441716624788142767982266264418831966684112506838211399099630490953885603030996699675074861643657369220945017467692232102144494284557034258953747003937589123373855820652814290623669573678239323282357599587176214745624684000227442786447559880164085689263181262286547418971601597281827277551151349125736907998453348664925598057309421765597342077932798550852890959526484124094191141995303414601230839119163946941058087491893524392396876361686686524970725899690650156586570926802825959785777836160863009129943977104788556018001386109992707953913382237784175123645599189272126872269550282538186697422242948826539106000818977906628663674681279687137282311306387225362169744566103480379655398743506896864008517833028059453551741088576863735907361015004134086649424186287531370806383690051456229746798437819195572327633212263436231356573116117913619762675984194971454142288448865751829931132220363075523740689836272134998644042283733066658507418583248765128031435536869426187085595161447535705645083320424523240372884184789871481345035610082841100178892227351843964310043734129332538006921077775636185611031919148253316334285000758821638306495971159533865770701071341330857929683817192520142724885233536947801484098045137089562948937561341516479841653624284166191520586325056021259577641133074745265059857182817631539773700521338395792608573151400970628141172788775244197957404869724422826834102134060673854589742172977759132473109704459467703981081452658210084898584862730606068978457848721162956550449211158951362053235476571447225011439993324504244475402484866950829057241022337115582221007483205418014056116881389192262542877070838435348615424943755159681036457143368125433596557420879243994839317557788061874917360422316254542211180247181542761525863517636398033365071752884330577632010434092404152100665696143271627590961929129340619895243304722432982857691991191894001836241615135403901075611911062733574778976372487811295572091898818815479260046880446209747073434295227066554478042520065814962083049452311821361626472883171827639762884518821957349467371409880113500788444744647211951728702579042600858082678516462369691471211336719401627492540348521587427162166918716702402457107293625467928497245605299969206707720133624315636363475062088915879320204294877423124718918435172834292456542782697802412210956938671103614272409764273441117422397430395342576661277542527520612839800036118594135691762202497745414972499086075536953821551864718448743257808184514388860844779851838021758167194945582216620893733644738801208412140383198380014706243071564178415605971219616125152403482893814486153591083239230891763317701387379782821834785208005205131312593124583697673383483801197993025576281534231260590514547406214413880465862532071749241784271904440096991988758400466105658326329602301739046471242857391266152026821721783253589625025742432965037473360088610538018314378455861336084311152523401019108363225530795595657229349509499729265405850602177905745223513490822624233574678939425855519208296999549466634163763845168831796635980163031386290133512560086725842622601599111407186625857129844731270530259260406063454106197428393250201060644582997873689928061479153567238944247620404895572055432363538675252636765982242904401151083884646244877783779302713761997230476030714476580996312946619077377082248338470478601118580820115451428711573387544447135787935866703091440525172919567527947999155809597337116014563722951702196047907584003295180668576271841578363474369625490684380139840221544832642549860414278600201748129853454685459288675605805846765918607085248305344052169729893447976037135631175986421796352866281062875863075302939459409267638016588874416755806820681600988423626986676599270220408533720447210964179036883576719530664110496210620707214947063411369278359501625150271216145071571887264946946972542336927309563904433943815064936014450107360690490361486147977662052311714915552322812680485465925919708270374735371713115303945787855524320118191590177343534189441152225630742731630317620639849408947403863870036824311258756637192528452519507215950825635593992057011192216735918907905661509624015496075641509614020453096544017896383780499656343564972540123381044871136101358584202565522443296978309853663234508828024867306269029823276626826570756689949997005425070545903719979618702902229580853197449663890176486700272176422166067365391602836466534087188948164185154242934237525612063468468092107216876069662517712642906685543301959654111686056709988370170404630983377229532918657029967842740782267948632880974189369539392235026866271349832143850785221603152193268182927600813984073001332075097402401099097552154595827312934618874444614861255672722425267291123064141702836060226683223821830323030884794487835165029007281460973201498787711341685259428223279055827241568471606066874072643868830366784797454152346865349273799355749222135278784952358005338650225888760932999592956082497168086613953435134681053201518951670436283354249535033395473148050713053217567848767051465985825462613330820345302161608785888604409318143552929093646506909898400823850181827101938617878506395215824899772531699629233293566710618996224264990970700045713942060888393544277364434303503248790420064581838089927134441444295014538622064372496750956911062896999414320959840060702806832160970494542042479213973608839434817368890033939539917070478442037066043845894169013379864822703851033390758393694016953112629564047101922443641362606671539108693680067536851055290802211508123547095579374260434816429200383876638266853807941595034125241049182325880771793355599065674366046888207149843932208610186967536002480682357118390329643971481198530894464809466373506506335423073496785325897318624847491404229272320816533690650692935846572360292826068636382272230158058582311846408796846457572173532985715424664850219131447634479170727356640176260157652535434831467845531299160258795447908035516121766696372305751607999136443481349833912751318907192601052632626067443838716354495089854309915265046720960045164861576928173870120652917568294548774612651135787075541763183111342227905098794344329994943278159034081430447376361350512365334524224340200307996420760033046021453319018043950186556262507438195135266877797622775233595821042580566902263588200901961584305091968229087922701754689759057365519621384336233412720297991787059095119744548108550411453514934487708303655754727251278463671364513539865193908083857062452074107701542232966333643923563800032122725832090907958441238138438335922231319134225387004066927013796701076538848670076894796965763673122349107064706278412294359597000082998491474885203620049672341575729670944965445613662464526048456478432976750453588746722999028130007983477647958834917365559250562168375752713526679799178282160672905941836489016465038383710129032541484838577275451398478977998713576754194229885627290486787698025520530375354826002473426713148608577210032511242803563752714063110665755726454431759997249974450994328550381700037320757185306576966440994270391552342407208855253617954900380360300113564279853879348524327535654190568130836744565798376414725219465711116503069547157978192172326504772945738053521950564950019934731012119770275288013679801459683274153308800201864836998967379686155821864768552339750738356259699743496912474585357429376479038282480283790987038148197383139842614045882307152169928181448012459471752972784790125247685437623514844950388732532910640135001344372719259509415469109649012070571567424258668782538991601666557818142740294460917893462516433230269140244087112784015366585087240631384550813936251969133602863835575437382154502358796174619350759908599682543862909979705295581656698967153604126970745241470797898804463498486699141566995408427177408923078680517850888958451539536330055281920515030540760685625736058893904819375535738012577396999281940453421280840157024874599483917133399250820985573304937412290355396950479893733105237224662290131269652289817891884274428862324623157674101640004343711522644780608104791326197186159177340356829532313523850013822184761500516373886751168473788999012653035630275323987653753384686292106676080366022722052295162068791754352384689443577433494808107501692911409051243015852148730222746579094506390495024908644566781580269213177520761551258342828767638990084087729293266509688532008759225473074555825556763414819931426165662698432656788639796421701351805259181217190869969612975502005117934263154281913837021230277933747635761860892877454518215246424304616611719500321499679145814170372611610379257684326153470837152160322670440304598465620608236613255154642269375958916641315949337250918965610497474247655978613366725776739241931289383557775624410899702174376477970341572154692146078937387062754705802744247158396035438660076225195397637443488320931239084917672975377083891612098253238057441097246704766828934770688546560884219347244018086661310180748558771037286174225304451370558959334488315734425047621389937903953666073598566997295497285810540091614995144207226614485596655263134976952997553251978913497449673222359984477270787059962367691006521593228578909864463063789227824727037846418623659691964537652746978218884527811338845163478268174528203207541717273537072578658860538160142357880454602293878137439806604215087770085356470559422670946538083038330377739630750941239750498971484537627503608906781401913261975400231543026456075111069663030196669603132910082451683624699518940544338449934578689848377985335196961848637480046096172891329225700628228995674847491693142199348651093309578303574057972607448276084965024883291016078241071355795507238375682571667614343576969102042090268586589425921605144575087401564651467499208551202335002817115025887785592030585395945500847698110199486370606249177742588563760447899065162481949954014008131280785289418855014506261490722584067243593587836450958229516769321819649476228996452618137846490478076747044378943716713102163831419562598656986966134390881524129539409808900991634846468911557996121177766254024154196434590793903364645365361848023763960703687091722603231696647338823357534025526893412975117071519917162398018465545012993462985547419078458633688398673588875632050226612510044239952845419410398256412889483521656898259696293535076380051903372888897265449996705160981655439375510414111147324930925801735585602177361582109892072805529811049270447951306394043377711733754840027332353838993381021532946620811172685960739136382677675598323191245938289168828864254311753149041683139054112245439895071539105485635124202905804355288792263171236738527986303113806446078859881115661613424545102737357942539535325750689686442031625179659921626861419903342394040927301931644805326516789357424567820263434764080747215888857034119761008802762679407858681326598478433035957008715465933012853090508474973086328045114073266072856087577903704202391203170077919155142610426514144476914810691620958181291132580887085746974294098156242025898691040881417550021044763167984242278191410197093082566476447454414452665839687085842107568274390083238095931113656662360223895721663397425728075159036169816382711617983428446737821523412539194868268526224843886195587431682707514674495195968962007516392240238589683417523780239296966851932123310848891410826361168737403634092501453885333944623624169617090973272268895437666726077039839403099683603539973904336774019378831823222233670183589728130744659396501358216199577485218513296524381903021459769769148632523343416680875465272638293260947709396411219320976381972719706615705373454759372779636084667766739986857352892543092075393757397569309385139223377022100189558346288476018424595796083817608762774152145762931677498015762347216857138759823384541670593655001134912272627370060231741661698860291966021199060387804128158049051141024666520427365836908630702652389676331328764033386969726357128019965194933562919710022994057311438996069581255558921799403579217898806382828821941171713726580970082704954090458719397101203904435022793642111694924308531089969621855876848914865896801384453734966044851657204731294871644160043171138323161911166512035626544895455999125797168694415661669232318144009669620533984169652900336559971727045322694751099369766451374665572322411913358916713415827207638343316090720371000002413211637082776841071461541760999307126272783220003588697213890102285024374678910022231366467680991085312713033933060879878535282343960813023425351859197519350535907882376165862879256388413984447713863085029048489350067241226586938011054765222006731466047651055203188130606401024469722108084467937173935849906276442745075999346470218548633307913748915948292282452497651755086895842720206171489708251114579199056626660605937369266466832621481297073146693472620395018564876035872286025944961863599554896433722977371989479405533713648214608447114984126816167313440347189863335746249198741123493286010183276329384105900196465237220489876541252186754662667895529333134839172415331063650609631619299683420836185794208153329682326336895105996026722938547745257086621019326028327329310457246935151704544104030760254917651471109446567210901111453677262527456429116860915258907313090053980790878713228561824340373908269493594969548678100209454173017634640418238510968313930729887039166738850846299805534253382493536373490700890249015154662098456634840567002071345739304572885948594649651903638040571287331072352698507734076559083519551492289296704412151234073299553300407425156832718553435605190609746942177831349532326312780873878027506674453095887468873261363995001495080210288201337246455882960031173670428499862898896099458125698308152242070406910568140809545855118696644449421267839411027568922355168185018381890810518741246507828881625464548393490897862264465856936368447697284672523576019210456318417372331996082240745151058229006669513547571202957283750487349969628596241889491474445023316878961438937508039649868750263013557899480462069242781616896767036956180167700051949512342532077412701371059495291922307323396408258046873064498423744501071988903896380304895545809076149570104980503022397871279138643441785896655070579306648137547180450082071367302949171636234243589796391052815391862549814965110567941925456713837954652996662227179545507333735232444941696442585535205664775114768880985775440123803375327001753342109747050355153195539513030938075922277059776817336283524787440472302180250055640258623855853727590025780692848147928869305100964476692323040328941678084019240832220708911689199201215023618479528012554819255061375472932772467240820985313379414531721809912647416945633159631170593775905642048909114209655210863008053907462188395408913095119213019208418511493184566793944413105754947371677230215450676296798073510795655788644054333254988356574518436807092157818247002360750386795061482013286496028374651424306026318886159043356070181307564069039251042163294649603386607156135465287153896495502453143291592465930416119117492402000301781239452648721995675666756316290521161345975358713855727203051437712568567383443440403464405395325964757299545698186785943177390167659986322614289859799091181119090373994640176294229149488189744832369999264080128381109782789132669888127534660502243855304143414175459889431037269441444268726991352749944845866126582460519463492825118939330898167214119682526472525566325537972283435098862171179523460175773965241906726995054883117984905444860414197955112783594698494401045614397514347136682614988688019390743389633594911824529126373826613799506493421494606067237582682907489395984806930211413985134999297450954410863659147205307623232898715905328577137640210926833366501740763081010426968424742533864335669380900991501294329195889871524660889674231763914397886598256694815077422981389326020933862782509295246436052831752226178790387103626991140126105627859900459096025527434914173052316472097674733824191449776750160413547314732640244820691296044631460079790058564682109929084030015307215283062447315169478525350254204978702470296529483895118189432604854127629095562020544952220547894166641824797646140778741820225943121300107276794101886312943127883166065106748643830722676381433745095685556679711588824630003927294895781103669814926896457710309451638744798252955942120369200700893949002217383467781662930063748884672420856363331946265788960679995677464405316569566982805137211570477096332387338247186133130540229890876540678363565417434039768717926203718832720359008115645636833538542715618603893276702480855251709406380984244538977353452580120556236794712582703202199333601767453677283221647256873089837650885925967558503739020034923425240285920112691100900329920173164041677679677146073032272861969298327490474143942459594522175003782881021613071438945535738609608895601961766976111396591192520893023607337386765564511899791673297972131338864344602159548507958117311818041054316287920387723852616754981795179968079575785472715943777283175045739917711331590268043567256006377334564172887512253127193805440828097822677931191544372434721204632912570274078155511254568393640018100629007318341786455685341291520872114524809592806546663673674685013344864061142647274359264846672597270923805381947873232350046610480940838829780183181624481893819739673990537677096191853650626905297784998273640429502358542790945040331072696424045190510744619983184300198600513059429627065899328374963564393106191215366843272863626164324771935937611111450759160024389123995974019009401851724386192828509047970808397011447009847155043221122182763957075168210404429093449085703997691156128922426761729029003422534881705104729382873755090454158874157364689691864258261274572888974315926653203754667352249745511735787485524244029522999372848454193835018741906023579586611332302532206232304917401866807580435892137422289154727043292545786657153995919673375417991764669131648085799155887408517608510407474608661923205057005705477423196153119575752054770070274575422597412062061502502102127526558373927924191335519030282581399968777585562091227240929222913327442532941003671121692846900348389966708202736580458392702698940968575551967060863372231848687568384271482505512949736580637316226638539119603260898980016968117218147312968268995655087684654804617255091245928502618893105785976049164078387801674871345008678826300573372520916282797672090749125389135953789040590701434773128459363441311060230084881020582380535394694608575240893592103167593162524366110726561506017873713884258790685117674578441153691556244008974513534904519860981052539555701343041256154283702343369751010647414240661744796064821452793361434769797815309599233963564395819137150160547218917534312656613074610230448408961226898284342449422686447562205202766670429022406583392665652693509078628837181852469559687961655422196850872423118911280956381528406555208823248018457604928216554342519791180291753310807268122649662872711513147683705732299021565984146633966423009280485238305716002578966431672192745679561045628833965283525451513221684715560929909123362568158448417128973393475461903072585911684604180539501149310759971233048233117841683188001218166434538969223125878074416507620439935093118822296589300195162278528978052026363618601793395886905456579788787691059031662818389864456761365280568783671444689421202464776629610161565688017377545646524263161690988788954798133915220570844642486505651684321448924534442557509295436631491210810106886966523683762278162608029722412814153963294544819551220115552379774856846649522641008231930532955805100252845011791630627148641744078356516805899369265945927884624107829811561330940371836037702496272042277480991474551566472680375656282721553847348315722627549725730293454061298443940374960205253039046870068421865241587939931481790508631467447354009763337329795995846494843455091661033644841104836864101675072014800362751403067163163979129704825931729108930626749527527085687199214901474613470745715891450297172445172730981578049604080882451913369726656998955359595651308994915456051619327112661557744554018119402287563904007465233993709435580951108742902190317106566216320059208133204856133721636964920679244629936361499751499433120719268553070738211532885199833714726822785134528650053974751560364236158054143269022595789778760579608264333713272637547811951330875036980988631178366173549721480196791479992631359983406659192228895639050705303019914736048623500263817322920008133132793031931261790957834932520513783178714305824008493033724880048010067185864868301025131097585464805268223079123100562828702221820295481902836306953245838497150344443345973580377131115567388017753108048526615103195776736101058316651516605646248105293096861232295128236638704811001942462461046236187472784012957437398296692195253945430158496523821513955436665595712627936793712055669055413237324521444381030596979045609282556331360205050846413622180361055816991154993104969376277795738035758626935311490565280735017275995633616759411189872004139303305250185470336770451350907022029189379286836480568748941751596640100514166996446967192914066250960459372814837621893511301025902170570483263374967167110906756378048832204680583124487827574120040865940036976862798000627791857396838371591254509503840357473792913898046470414622984792845837587917941509924182106031026701163103386799192966752925857977226021754397061732463966234589224689124067845248795046626179529502633516487499066070690019405808799780081741245705469739775773774958630257779171498694634993117193994003956841584394741895165006556833095266457649042470659450742815542541070789091274550154121352116093096516425927785742112259915514112742579586087265071464870230563856780920990806342829555381143297532381082299899253992031693293550563136379959170643927621647371817974835533845428417869629020303218407276808308299316059303087585125044915414756926310378854281993435043267367731463897580779992405131115859555166770729394111812755159037719104810895109538588940310004950319822887607061156620353880258074457209094845758109713114378334630635226596563228028011096140346172751890760260370315448649385248609220310604004427604219209049448351532206249207338619115839250175215002524245969044286730826931172367555107317490380955748067241090391234975225289322917886160880772246103740285887606839585800811733393294318301165171328797445076457286251077091104476677650305800917976296047605142665455084454873920469944037851802537250150569366257105653892213879546174192320235158441413415433394971511051064568172583994841582674370451495843203867615657967877361444207121262013800250035998606239321030826073799850211229968861653574772459453910539179605451421063360083110749223848792233654514076643422267143457144098697185686066590626044824309079709560067153034480434629434956765480814546043402715896856349460730230584921611664062995491058886825870070168407182875988592276462573551870526948460052893942880906233884571815326022740565975279367882043887768974221525551002547414902060027343624474669370913946195688895291645823620434404805241402302170853415969825792232121878194464701737450277508831782809599185620065552449768916130064381450755979254483134787898927560492691721590871401211643791183878550813517978353024710198711435089979936945579036501756668990640662909358128415621437998603808312743206758808728804389597682289826611041610143604684973805294550610579778762165689445148824433599767900383682357822531834129401600198537189178340931053375493483251622545189338971476454495172983097072221245965152929340634030737693591736337370867957825144040514602015934787300620991924311013542757514772779269666975512325279776150328632959860705285251624299198476023630899223742792590160905396776727344265865538296664970810359797448805632161526200886886417250015146235963108091290312261103269061269953572719026579106223557472045958983547145147421441418696635369934649569756884489470764772052068770266233058548248666133907876659145878527569575268067487784699217372544626925033749000448895449588571923387683460973235028471152604684216184682230401112714649538703116040269649932783925871414819066295321676037451975432788809347895731193482871755213421541337578466018152456033540171520132743109460583118558374634881333640704055282144139905837120587600482627449433346704988402233680755890769655399125115076343192262315809696781185951291621460177717672287045319752119934785642565913499903829835868516593343040502285129554641388058301469550977524624363002108597266776972972520581687208679504599967726558979200791534432790588888041948311068659525204725165749574488769517071647506442852211645429651901289253713684533206126091151569249852551379681102205203146884768723126030929987786430851115412370142642516625952638383590541801227148531851386960644441282525330168993380170584420366497865187207850811798323864162049492265816157875021686046068275845352910985902812885036629319826775843428425284764563639919083686607479859489880848691284497931581579394415705028118741977123639820910372625436001288984776201747869682427860467210480197187885431293013704622670442737343421835755124518637132453167235097565507755052146972698020452099363260477937428191843037244270838822969989042223748225277400168198292002240773312488183540507689432812336118742766131526047215679510542584195739584004190627492075248068432990930754451816057978237978770831174945322334852105161030810288660906716725543393808559556881381678289547071640221490944043180298672127977872929648824287146141076898973076336344228158852550005243728515841677711121731984767169779704952563621229631855424998770367139540630900081393352964649019317225008955779859948136391658228953791052848847706243079015804695842889646505502921161497290202067464244768005422805880294407358595595140747673925144652268246629933044707733466806237039448146557194806099773933860589295375516165223189111806022657479653634358423059485796751225197092607916029301715250517994221170326187209759434923877716529282927267520723767539808924718176988535919980935541359655725212826922790745097646376173713163146132326489518558084526110795148492601301401738733460412758576697635857253849215611281808577350998017355107273307554572275495233098671896320033106254720600563392208839626012714884803129217143505152764768674999797583844817998565563331267679144416844358912400670790523366139645817572181079326216632154322064016801618908743649029809543623328877335344580797152369666517333483900283982807441552561747696359130426937646192558831371929667983457454061864905891187473621833348558767634788447812453442006539414584984883036538794278310431233173806824185928675531283003192267461556178183288040667697847054979584545415937363805315000012196920724601266613340487465480322128590470694080137701323774831419385751331056523222437776295452561134381447141842559897725703877460538067632089159969396080569453137191101290617413415335532362987109312990144894303221891802592913918768363667430920696157908495165918493133289590117974411137398994600355812425357541074068268773531643974235115931625363811892077861403882716703935754880110038982373502156146559939597876245098671678604109861367433963863912470498439129728663992615706912152041227166304602016546881382118624705006427894383294774589255237921592534851456192039544441876293688960594553512490756641088351945853528342739252955250282286353963480936425616534995013369584948214787681821263732913960639057348247862039476516161703076467012261409342707972863383806333350560482142117944844131183924049911206776992813405512380667242437967451749427534487087372502343029926527438133434625123521441900855888043372539871992832788450489152717853777099964654821854739894933784561907407162413863694760200983463625196813786069644074064586717124596568338881230995094285337206123232975424980424245451231634261411437490185862627401244685794610695468820856009745481728739985452975240488427058598024763110812343324843530526735751984411937747956594274544422009051734981708278858991127794930789891407636968133489729273423674411100867660525451101471526965494413001054323573164296007607397060926466491752696972167760880475078797390895066005116841369034136320177572333462787552356862398517949405640007235804619397731953210091965531892817617808147127093719170044524702843775069195526843172809072268568289212112816993365008025828259963905977211329320178906305895030435239747308743921716707225291631976432485477811519512369173675753808055847772489435889634908323050398571541482832395735851211751077462925887862963421695992496259908823731664627634650556558670899766999742418682559565527494442122823305353647410026653024477779310852962467191745150146135155008685021603922893038238014378764956903750190286586756517721379820535177204664604843244318647660060883619783298834127846325027644365160943887938013360120838314768874966108566767545057034049984833226512665290103310234343433994036056459287908710784008963931129500905400027338854904775631088338377723854683876323496927738703392267321645598299448153443043242483185259277865026132774622287500653035690798334214106412204503347512464421913640117295581385469486193246306918883889920366094033175259039402390227651322586000246488028380157605154184603071154410150369409289502497740046863006524926814081801653158886063908878952149375829540154575863558049897795269699956526332438338137756849949350794756919477406232191643542316866581440590708001079152531018967836328327571684736304137990790274227969368680149733034083011876268600079440040383548556728478967621957830244275673501274099751354178371783874932109438315563081850614462990327697252638871414295871962893736243662840771545760737282191468167769788897568289641084053170522846782065215707536903438745049158739107475674866182630173728131233873758909818213546007774514396264975299916306328306910120663846451487960928147524648222100893231011586755396569764425414981973069928443425273444404992183527834705837589912420972292666574085072567872483334834241039897139435469328011468601343219352846132092151579203771097389126803292295637381556756247509818510180309084708974301253970687675656702780863275544754321439811013504418471350682631257601439571881045604330950315676915410772960180578919562854978238042724829040161637773112403534556026471327456373136420690944313950994546320376221337612068067302637592547467047068852586771600123542035204831602963710743662296387022221000126620534414253195109158739439902600364482953505953984754042450849318792724719374309310390893541313877297627201361548681367620211161968937213965423542252049581298886610679136026468628830942246264506579535160093114293679117202765763213031996555033158679037654467569012052655587022881581230419718692370352572821985007161116683697344398484572971328025414029498557566409801719889900228608184731059668048048025478842445564249460274063978901865629701688134195089839824639264140158609839559906304595510712530957181751602130185557963310862382244294639589688927085332563153347773897869553007392051086286779820214527611111538008246584182102485357235914114097281334013452213041237355229870248766140114088742256002578218842660115302788439906689905383666263179243538577719625285916275526919526112390748736162821957221169367583549890412502290695956593839594909476466366615863557090170479718272223821147762024832226679465723083447647656092192799753197187679588305854841924658518118471720991642237779398559115849168905992252464354807937612216968542123390770016242189177361453658090684825358868452740709218246497933722743696527922555161678465170506595582373128014088650169789595947522130689159854216440486531279394262554577119223427044750051255125278142252114232214500682856228465544648084268161363223443534469379653326420963552609789811666395490055924153301273353369792216214478141569173959862697577105894164491582942149251235644373986106370591593594126450111368931174330121209231045250595107426430052578477594431450979336875658651731845515988620196069221010368845592422884611997267300000739306294976226107286618946756744203134677798669736718871600052669673428173322314977819631321894146120863412177475806065292868230699683362482208260176728098322115442010897259536997349768677023979723813881452118903311793108350858148975939431694667255216272931399260571909937430868075815792721955972694809482592838254580644108501518441561742565121465003283132655146443385706892487872867523732315287649514432211717112383383947259968759904747861399662046046638197550501975574757727665040734588109737701278284979042319738172365715807414820318411093529595531000441574723125989603454236610226963724199673754216633515262298478739087894598760182067622129962421458201820074451407950420680550571258490943118368544020798060097857217255228058023319107171750483134368098251658659339844158041462250398452358574850690452755331746091013174715008514013716430100664820999533862087414351843840805077166114368762520430249171466299429640934135428116189984486238048457442456011902882945124302689452917340063949357277318148253572114545794160473912790162007421774424932748651217888976243487301796280488798197379094556195243152483730485594664143503627548660175179483068416903354796102245155070468001856623037000952773230759570288407247437685311967348607204719537659223274575023472994704618944714593861315218973764913113434267107360489673365872730281687267552814919163228479724163322391790613162665319133201775361580118281750284028163889209315292858559808089675595132610754074113038655779321013271111258406294433411029454909424822244497152412266705035950703438067850211942319906573232775779060268421728684232067512923052611665481812476934637277107572442540861141026081281949048976113872793033497748849140554617292966961986273226874546946414120894474336756727364632690900156618978356180578345178545259476432458372484421801921836724955982546396161034606797064524784338359422707727244321162525773299259807536406968545072666773373928547367487115719129299695558700910367907235876718916591133662440537912434442272771835603059869729772347829037049467149331309687069520075251681022075774777566346547931269514159003357861607048182535683290136027675137805711688923732409871867335940687411569042731147579603441711466258510405992408251357080530529802176826911326642629921357194245465940046363088560464678060337757168762510706272057533076084920522490363058306141362674511688709710879480591218082308282217582991554735972296108875098331820877996619099569400922341111466581207150464138771204924607112901774335944046179515659194674758050640106016861334949427901904624200976683832334919974257523711171074472072326660186501411698609121224244297866505785897771104310485833273872123630157456969198526881131758520177941256929052751588590101025516895899996754304634865368423632250492842691418058890327238067553210716743294799859448607261151163157124505061426622956672934834209309910848180462149588764515772942242092174317142524145878368961272035418114253285497303108899432938419086017923070121632124053419002026665358359499157815240362586618640510958416024136094228430828788454601418079197335961535098565662270164513493714573269758062773223316284791040479785569805131821299304518474113092222219225467790971456619556854341119700090582370137091236487881541013104734550148707433486927731619580291303335350843483249119159022022676067310156930898055602239762714557531481691718303145851949223971476051217204977799997190913758346935355255555372712169340307127720805033579207331111914654055444953317361199126250775741990701275346533689531325886806526473356399701902397731312887934604279830409378121749823247075874754267042419428215413588013810469072674809679888506653514966108240831440499022813120599604659419662434966640732185808321857744754961790070392300491187771969407463984688867758368362501112254583438115182060871690643114078201126364145192096544666244092025216906462158636610226589051380331700617715081940507373570249592514531766905980757901066874255595805872280674670287997383661752723316785377194937975552183189917611008919785472226645368385726485257903422960669475000210180943955947746980372706440309766447267415816155468846679524136402701458108185799942100137837640957355610811420479515324501044332221274860369067621161920896248042693294072506851058145348211249014969771984492613041773852945507688542709067929446219829735385962678673284064404677712481558681754490265715909556006717126662058268302573904186937129096260357649337641691004127864567923034031586366054072837219021319300665989961803292110183039460289517801185069108998870306580513811191759354215562681869236119518528144067069266791841411544807621648332774967624514492956921395901492704528800907883444978853023263974594588746550671020772565044710102916132585753412092826668057299053223094293127652146433157926933121450268413106232087847952262486898853110863711125815985440620086427679456235236824861602602390100198777255070258327458175206618605572801165831504239454023660954887135603189135163689807716907566932142161971284196754900011682796513828991901783592758887813872723354915284848486806599549198799896430483971244666544078928137433868133581778268769160200437788073402857809506439497252198600583581394233545350366199738306689392689790844523200542790687430847251387719280742211906907727749817291912497929015645785471681394357649347301438401315760551043461965921376877467190216857596732787883470232087641438907330714480457217944988749853053654258552738597624708229170255678400243186666068430930769791297334949731072122823833898638164518425978781882135206938911921858695431207400280882152429469649734612926058331894526380609553860000486394214198291908098326839378814340905455816005409549712260011298480387863869723937754878313728991505392910263429933007041899387955825529478976040016311591897742141749695438450754952958093387724705702171942331061475933117265629909590914418276514349953613736475823304112649112352250191612914172688934717166546264883981003120036509441488224042294198686710483241918485727342814884231873924031347753909245144682805357739074104609740769304224082290827582940339737749851985714255381217330566029040747739067653136708270805190852283653733647758851688159733242265296291826973135738265997052558702937139080224446695002132196449445349597449721486949325028848933354861960779751754335956034254687638430453158756235269645475169850152360114990037658428207533855037105789467593814450955288152881083970221863932352281629971038972742903786365063665061693907838833041153439225907606809119382817418083586422633465514146906852280232913082449854120578332787067475353962792012665008474095690833686599607185078668150382143992789107255348793072716669817957538211010518720713336448931006965300710969877248072937239902522546184616980504726534310828535890047212453975376925761556681947795224373851282358161524475351335654400856991788086427338077815204022388147554999687290976941819103211320138672380902939221616530637958309485130868905188277783880212067878861983489880933526874552032521278646714149268632032433308028208813496156544621696649719116247020160746983464448218803334725564129864690886151216580240676655185954576430390575844291811371795510874277153594418055766988496737949474614700556252871796877824096108956879704669204253691983337857841284859543888639592134783247437254127451560710402050137947602450062665401887288675543297850933064307216831279248845520798762137636252428657880831401457534925601851024094923032557686623405432732006452146831980560790380732823787638380249831244864608168283973202774205497933922722659606696245053515534336368583285168413229072831225445306264795407287605987183006046235970036292139293856186953166593928449282976071500135497732970433065004941001697706643923150850441522326861153610500258086523262744117239190823203858195827350318091827110867109728980491211038749093202625969983944183451183308008013733942522581842003255236841565623568454891142678735474899456785647434005324482016167954307115218893501105978397351783988160565075893502171854816465896021299565098675752431973854800208985676582000838901186693582625908349727878180209596119444185432999793325342827705033511850081238918640131975587421799465606136663801050048632322158575744617196441509703507712917757377293058886719855789608663895822467421231910923034752012166439425328757272636364589821245942540912704536285017659061266796877054147229707600702081127821265222262376758745182881505991908953938584862754634501728157873956897542086445293839007911912914919005336249839845170808849282309405966291264742206236350374253466055585909825791082779642232441664168064293623664219803224653673294725721589457068118199290431776283891385084021977863835936898343363018436161570752185871480180638160172447050360630826585658866134305199171871046182601595449739453489961531712887371814532313256185490133308835437067467153108678310063867239373107359744479641567742137087938593948083820158709501316195466920123619100151392781202581479714155491794066747002832316079190543648286173241350656960418006000223995767854951039295052685387022223178734978238156133610914277220770565499629703055568246016702637627344952899639003657566649074130843167948407594355955573313661241781799515285769984763592921799174785705604030221217145391921302461452362877522293718141276367113344237138750163923315707205986296998282144945017745857689147555013447360620345116981831132454100274044591666938668407009903156888072694155925734285126205617379564608288037033505628904490654201834491304270082262705564569650555669262068308543259461864567833996899758338800605668872554063069065399262810663244290303306810922616382787491238631482699697543705445793881389934887434697884687704243264764512918987652574410004631333165338155373174770358995926160579179911789968376881368447541651847450207836040284826848648447252645852844475045086372204539349410852165583447631775281270384062652562431428157583629882993641172941013905591036623990590222709583597148160487958153508500020530055787023714243441162195027518572379330868598053133570859995328031032565917506856770533355739210520760702557999366575102506206314493422177924021211905111043471705440373021482920433348303603531110994322398528717431817996599522403434837010955363890339398625551860349199038278351872915978381951177038709812557831590058545061177440629869930794721919326049834382601340844041593308144415719076036323145132634618396054177854864724740483382152156620058658247458526796091431261302588050134605990176093483738728102749165740187057678279675797001899907926654245728690592309023964500726247702187386961554949510298127941121906006732680173582281939645841018699565054350938401799165361489135827789329043070279626709317978278193200328244630983498337966296098231481099247628138219964498455558813830761833910096338764626629241593961040934945775492405378763974410384965260326980178777466177503433802394276176583138600192388761735728089532909253499091518737941946901789640796964629674552314221490704982675976898100438353301423929675209026463893645329585959036485460083518852059009454588120085864871522368999281155054483869333897441610645081905961282875275285431682826707945936424397668078064091381223812083874213046794747264260243652175733062285161477054925609617870894455413906687544137769500215174955531106552106981136950757280899730735919559901319587338663208868144499401055740393427000145224178990304657820751740234437091500136853126751804546433861350879722248321563130935359001646850210220485374433298769629515950018002874714851951065704848588000360683990467623675868076074772116165407071074796241834400569677032202131702840601818821330171440096305359319671782801452811876941973995387436515717302227454558453589251902804478531265068042261349608039601400919258401589889117385246975910593033787482284571184936595640255167856442628570050943126395840130810644349722546577444412655174007026157159753926026897880444259849843042225659380719749035541504441207170746710911218400005681171140623836082893805347205970880961556217891075616566654961084374777566905445396101113551509149702703659928303167876339921201650442335973867894256726689828528146306924810022318667659666963293658252624486618330710232495704590419218794039345463133795160619157210303594456357281065289578386963634959675290273407341775189020577151121181928877736044640145351590146909660504482594371124069232431556158414098304870084572216354430109674306553286589026889533675958025572910249792944939659470824678857909331191103956868935269448352127747352750405853498605668670373524129095075354798860464347301407086855508678935922484476963660149475714743625539436338355107644964819745898227732960143506657356414475820511192253518172160016569707443025861311995611958658072712252073675274798703425348973359829459256503037511162491088993954754579796106779016053575181742677908700007666116367930782120059073800251007117252663508531523189691998961059700466020999326855377415708449005373240365987638998500433956974276109529100954397404319885942111169679581241645507041991080253951045515567392736372734024910975328734320076214654182687178137635890061685004514779569248845478372337079655005944685387323538257186909088289986484562115512588949350207473286816036958106564303823638436378628119131691105835835505781823136566313387614499346959980240275362582693806284636725353512412798826905505511979408331388278879651868913201050162458650698749615301757262551058358797912679046984240003761206696659285743697704401208062244407153459047742033609481415186992141023956303617707331744892678707459074776862794857557322632755444306045147452110428001880625276588456209595957119423155793443177578718952019691436311687598947697883698990004808171344514252888119691272478732031070285400466310876480942805113009921640258742081747119060959775161935385917586760179332177710405713388796444511100891014315907472295442085035693202241042530514075054861149433344359505933955423617439304044352744978447323885786511892935124288435128157480209693997667337569402681792129005787274297955590015215180192255932491916102580965092083466766395458932010200555530700495234688167781733649974911306187553462853869975322742133316773879970913987425708947211494946088596193699656992132773288057462883554332870219652394158012692786006787618253162875590193708216795202058832436957300943052884817512020905318089042930351186937724430215218676455687638352947384452178060874516567962776561095105393955146518611379537705977062920263687276357122333933304480676988134033489242068675232650993793843885372321166042881889239653717123859325408897015874186868374677440080162125065756270040811320797151496803479356469409368778114058680629058755206130181708060947944490255999247327989327027668085401044654589741523380842101629102009305357131758548064780987270973428126900324440169140788176302750139053909692254520548508169574944078516090432805574927988682397909860431062755866963193875477380083911081866534322305575863908759558770721062693035324051498608359659431559361567613087495764614882148134939337159114249128636914332616102636780253077544044188554569158929026588577257671451357788677362228906459261094988100488842459254290866293456626967079969583128445338885852503273223509321095374741975880951257051532360735246252669326089350270713432966191693947374597865546077878404701309457232978932961277903679295521244102147136160996732402293719044917016169430583270364823387262036208136478301211933269037070722485320139827019747227757970216145648229012773465763588677173383660932854421141885160827675185380501338377517310259589165650782030177932099907542351738241568493442567722813048127952921300335397464802369249075671656838111740764084791558175910363489894408037130764177740651181156089824915778289765576721608301232085074255339175505367045777929878773414435758155466951242976477048647936683310838976047424706381869781463677652442696607650183923312926503306244537201373640129474067755753598598406087766202586257615625301659483718486473422335923830487718000207723428306106665178112582802878222632417647587416057501090569616905282441262690117692762822829311955945056663421788611860707244615321538956011462499607989168319879747652009057667855427773602739893146436548415919466396218477994530300950073689671168114506398967584838939710187817556121013864712962913221235911712964651921108529263456272304077652456772985804195568566889510352667416448355318407445651518024681014404822750600002978971974164684801701429399676313873499640304333135058325679752313522607403658539210917715426462887364751133486961976612297729737925802648497597288320588562928567434986089594756377170470327177181826706102212222072632440517091408559745029221396171742129242805549742230351569184238007243877083197473666850922201534379177140610641233917610368925744528609239191991112864890965654871894335283248646557623436225639486023474054339678960246449777260657567462195407234962198739090233267116064806378320887885934638600712839026949111984082134617544041600049372771524100440431819005944591948037560546955570156507976217884001845020712870922756321301120575855517750006207573871072621726381494342784361077638541630964651827241349989244524433101068910638216196328515135843890316012769580097924315934357709632868484025755796676204249267025188768422751800572622356680341435332570807204838952413047756859041679460899849329840328582985976262211149007626291782751024719976379768047876064621827731654915754912667018711795669017149258984892481235485188962500662968975849801967862619828505801610388190479766540753755981606051152452182273414664880502925097120293423229203748092682788153597738898887140525505997996227502877189542376022477637258352349517701841115929228387357333364357426786478085187712131551776016710922825444465474943614679516284242969702363520443849671685876992756789470723044322997818341809248735048443135465087083703496797629433524468897069297781792004638311087209740923564016233989140945930256397035196759390711903074363719020375288629009055039395151780625475151780207481597141815146290011656276326220938850156375019266888171207021150497812643363729306744867747918448529287698430700971245184821229537425647501161087452914893401997142583684149054006605903239417042434665102105378974742818480111679580895601330968192454770950648071777042120640986139648981473285086690806615662913612502623195413491941031676425285854395901660198540827689012530792031838721001518603276264297724724655761538264270277245791874811197758276098667780210406827698097712733738375785346615968884961211934642706611358108901127461059332350301080834422710575772444013684435938092901222121482607052919704827774380441797814741524727698065166503809200511353439282876589114465818613077911344580774385260501618180745787766363339416274408348599677985462190347631834428716692951880929202557074606320144924599716655270378117627114028031597339646697763124524614902237502853735790021369323314094954190102783023347540323266602117942117804442918313652561565287859358878363667854358462294524222713045611799440941130679746051293678708201444629712360909439121316109747674052461231378534969701809624114424860545955306833875716182331384343007377497568031499086285196565047132139992384569566482664502551384982130393637267610316059034647617884038288762087538297118730396130699660317882129343709383181362808280164318549287837416316770096738411653422415453071737618754227070858142110303493371575868345693355652331610124571760501652253981509153168226907053030479604113557924046763607910686438396364448232806322355642587437035659224863477854231224334736173997075364908886299403929857560773693722553733447015950125080848139543333892397035008258694836459502992943368986785347413303904967033089738568954180907519464617238422699746121815293060894705983245659455001061734177433126300609050870339543124957759865362061519486930546148068249453155509386468333858149232478838069144674514130844042134425329822944031627349200383349459985845826616465865348443716058037079161420881544111204093939521314533853550233900857878135916166587568042378146849016279153352920588835921782284339776269911497614427592026372027847552085810567494090617373093912877924242801505373507300253907363290385623693595280922274077773904724064358469379293932431947011376972911034130781399328163222869046830861785078660159016135969981059392870955064131160423561217410929024115262641858993549741200485167858961402134690783187808116667232258221288250680270367425819088628885980588409234527865335273679648157201335889775157938399069042192671623496271185941243439767660943970567340799760571783949463266460332015920679633976742696323494302338283168402040333625746013163209362818867808614254801940162550995878150543136934629648126849764030606672346943458224706102606994817989123072395222132320113073628820246552807156006008869371586274511616273499026484048906006250871904262118959823223894501981862516490906457751172347524315483328398048294384307217041256004093070735447521983625110464767736169056507739976921652530768294277483551859376649688275563873097715204449103957253219573172454664661098937201931512019730634546916471645576791386167710747540456208441648190559624892202654119115940743933053370628810814169286402171915648706557762116017839756341803961244128868756708062731360420045648557043846419290625169642175719126275904551067129808147874476986320258151051607836203213532499043260530337504304186481856695200557738774951088902558799570403032527780865640000326295449092766305116411932402535270136130352571698248249272626896621767681771796743771963420528474545598553910207197850117362133735867914678896289658433769382474912890624382163731733439675010611460747767973643358581258111979658727132598849685921222422733151653504801145179939345385705058461238871263101412016289749333910278074616512940987908984389914550487801993055613028669975288659352566671624034973315243443949582893453757774646669683628448340151812498509542446748842069710612729290005627654852077911958810688356176513455406060077463220187383946034357484948343160135226634167891253815404844210284635468178230557520744511113821256887528467293005512301459660648882129472326475220381888907937945216786793252490916421760787954470483947041534464871802271860440821656178635447966423971355153398262030257240574203204224522356976497691480039958053279577690743773269867951636567760786036078853700794410287334238593062734488681814720740866218984858621753914197311130058731816046882719771258697139923571326514284792187361879578954931088960451253365768516955786287971317447060371545482126033907295415434678009191686882789217077525431019742879833828702804130864678743636300046168451348809138356806882622135474046725008738508974856950867432680951318462266167766286214545212084783782054861208716549741124176319113158654165964945523279450682842358195134244515152369402137016343178525628478299081940340176319008703734533693443776260348091424859632495310904141913238864803835550610608471580998912503982078385278689662421597721550453783373580633893980083918508503110043975218817756138479374440796787128864492648061243487095812163600664843659514886986966600626856345866404039587251374839823276119171237269396694884764876794888669744853532965693105343295306179227366313891337986540166604217267129551052571828095402923338387898698615314299968506364288335781313421368899095500254043048424184698752698014418022191687920566523902987167451998535307113936339074787364601081312169689569910628321190131558966264295711849616741124303242989585829426605804302890421011703807967684122697159007549864330713528535134718469778606529957833571896969176772104985318099636859443144568344984539404115127375547879816750260446713834774055873729018986901218782890556297808345918999119285074291550432879529629874857604787549377982698798449640488258550373702516361899939549171817054845679459547390730385498061147590916213734789394352510300128022611872379220394784942557511892733304083606982067690273143811340166087720075764254642234865273616588317220653154666186616596061535299096169111683689323227462191731192981497329602399362273500269936130801002447322082515296866040669762562151543669037978614107728576942186329506043105197362017186335626416597259179722191700586244522752805573892406965716516809485518550954296802778914785538419140918988048793880374414587488616658019405995403917121721108809423145239246381206828106019410949279867950844337656815764455093929813106024238548855708916343851538522021095945677685272023291226338166126935500138509316117182707597339810395003696282972940305573317003566865664081689577536606103372778083950436740152790410473443227256987080617194009614298820243749378707502790004276860427451714062422103719759203362050565163079834016885907465629466424191768081007478611089271892682684116858970861890984023633615780863534229220240566401084066982079005671215269965276079170166672162940514850588731322320954543847268097038040224058628296873320936909590566611908351780526429264648150598046908576776984716960369224688701805202914035760500920626299833836390249652105308889845536712890844726576147234132324464491297432324614575159892975415033125902330760928055733008170608600462750183293326538852747065621347429779527291643955863985210393263460749777279035722073519510956519171482225138675545296456095287055234231811598077808576012252591155279833206453100071521385672771282887408601243236233193968273358535458357496378068950018786029808464895202160786112622539308620996218819595627307765845837387240530099019022714604523222324304900457756836326770740651665249884494833355000668129148362127355803595156434848351824139119907870796446828714074515091769821666541135309176013791082276065041332882446633224309315972768300468253915779886488561780706232067328356964982443840842167312483170687235400319100379534740819805256823591805658644504831167023781617810416270538170758468007989171914383422881401814000867699544606841861213955981480111934553301594873179433879507760759594935460028682248115364714949509676813227646432611477163008892726227660487967985565761507635460924914677987653236296416308518755407191444726536954980859309231215889254011289213849735448240483542655201890641484201193109390294513883180898721871808676529818223232294958895762008937315515848414610166516564177278141546835755493869622697444668250679217410757152667898952405977889672375774734319341953025206596116148565881883214411959838200466758122373142361205765764992921864279889392599421967446517980121878713715099599261480311354131140838031221155563416147411502422929747689336387406005138505449320225488595108355362070281916993587213175393624121505656311217667503856154649235464284662656818756231542749200530582177628873775837019590930797646943201332645717121767712418683039600313518010109613911677145540482487426450471838342482698606243823323747290024495327042387474895944740394828349305822785544387497405151440972910573620265996153549624348767861006156216695349110893579354344226653288896315307303397772674514948953267956405699289244139834656212344691015573847916460817437709557210299576984890432554985495019045158193926337497259019511773018187760962496605022863364078693884613328403468424587324604455088560153956726712225817951999969511544046332442841258495018989581910106701464468531208689825108490826240673902576433986409685721317440339180071691289870704555203689850719508888462100809045346481130922945772388943872125789371942947544509158162179831206915251960458579392537987559943044279383033860115812648187843894885816060217210679639371568299163464600367702242467177252869586883332371264249358898890302829227709815551978694271406232989457281686638797288999442837464593977740684500091316426817168892804068654049959413659735556511209192615568058742404159803051649050129427633830814913956660618540950268479754358896193559507076428530298976453286389061152005606243031732824069142747824692926984422181063632417319607720936071355678624273381401930239669607370985819423903497426693485225692260201252600233917535246642535029400631094093244830480594657541597524950784782329917914718714562186742549749304318335663288762491920856039552236664555064154632828363785944499008964550375233235573022155486538149281720394118833339485228565271546149000702508998013150790743394796995552925370430053431295313916897358989007788448527403499503013848890114668471223407554950006316089855653617241370660013953560781524854494217756746818736619101643437120578122678679237341062688277025725337469782711368088980144628195169911277524449865634630023120802809874536198795992493221989048246746226455128837225481369244546830664957118321771354044154107568280947732903978371702699591416304029849573906627311588201193484692746337065488803404996427327240435949273324205772371886377445479674321762702242336995814436686452127172033320799453498334588774817807177698321439595624226139264315868070465118000473681777840963071499507912844314859850323218378792088230172576030706747958626381519426204994538162085237245089667449699501093311814684460714337394228261339184009353112332927848381508222254745948303768722928433424617999554522012814993143436554546593533107693484708039941949039768475212344757907502165666463362944839866557429536527330132597889110605296895803552045929431390545440866342511131057739091341882892274721372279794577486107603615206539044479644971214508351411058555101427607208850643055133782264540457320075429275902179369725361046972363576451442002667856031952168361878629269242876696833449721831297516214304637081944628024392273049647297633098161776354028318300903283878960188590822842165312527262054882792618240299486070713621143966895569934738408915962977203993066442072552764480979462399291519482444554167741209838434919086402794954925796485807090127960228792343631091778511361924913167011426329851670784105226876648688769967838093480363044940444844897491030618469619524177772412254661838815199501944706806999866805153164271906024900933956791352799028386136454765623511813201327697466239641089303223303563380103519075131214575504628360746974631590262664506505006931352978136890845232902571498373934530005121163702108996526175588359423865212518612126680998803833145285666990186599101779424790319233620669520773873945662894835231186802244066975423919032888028717828849461497499425829658443856145005798137630031996970351745496862166449079015180138791738125353192416993541789962279230411971291650256893761754816766419187520155761961127218125434021763331965184359429016560669484696817540962543076143330217792422224735691467577508475813279397183032206672131201801372634597635647447524160232971833882215536267280186574487806113798181208952703914828396827030909756452405691782248697278922023226977048804378367534529345594881848057727274489476812932203133281563220177318802395838360757943540319405572380445714753089860074838092369069569111494193600814613241107305218008878842170642128937317461410553337554539000450520242391816682126322832519341380839978960490787221374987511171034299648430301778942985870628098445894606044369008149136094317541478188097445498682409324661088776848160922256975080088218795424822253364568702805720374438249635537302751365098274853733356217525060582330017914601425701431930242292148318495508854027483717470812590966618035503721164114637344684817050681106857733060751469877906292207317932696751691956370152221489748830190796533860801583851814129631411061878955029955064913480687672759378445986559525578202445514376377118563699967799751500575474986706572304203835635817789672431156379739825634847166928948804318149299461607923402297799313206317330450840883522992594003505331799205387645804132026082297106324136376962028752153055881883945395269091761416431844980131246865114460997630146080067101468914081169464346124276352910308325516121507506601517822341830757774476278907624920625433852036143824631936225217391494353374468848443657149217156138757366138269237007328004802669885617785225450696388368615979923654336177769846603246614424378360401877265653996980077938581830594798140658214854636965861003376718635629764280885482754549718689028223448578814752261447099136672969529676175982798661430790217189368526305401753665101884065071989737155417467831627404972859846774568705919651749487706926135824815101051286613182910290165208870192320813566678968891173825110319418045685371408767524389325664430842935044462166863601814664976479238532786697639874052998697255115444710123213923953969162301839576956734342952101615330627659798418651242253434052826221019850325877923667321592444764767160482041291928433695434200322125576809344906974937257407076787754071404985383686515878944801731409239307569952893663343783294794847302819063581308971620431127253113324232114494331689065467305788632884482169657332576421371950758850840128123525085425719633306592080659396225736814707535545769056487670369290737599312298274781644110532746673176388456781792242640447949431982090682431854586479757807505302711587365465459965226872013885842594077267643893089882413021377479523326989249666707491648297856911983688190677032886111470291615522544429780247655967022447140394615088806554186055692605501924308717010522985232455765563848995117331452202229139458082004823165584598719584898568477151335620803960846206741584681979595855774512832499508655356496078534840119217980957748867620858582306111504354745133388428888806399355258440078881318827167038944175572248605533164981454051512682951240517144603309405414317174520930280148375028655305563780015471357136444473251539634531876448565340654449687325146749187304356143227188428209718165423127082825613579747509860068741716941455209968775958205501115801484669610553451372761328236029884370180117731428238585932212125520680614735137893321839941035176944346395846296839050159368081351937828677020116328741818705305149180791131662725125048400360226427255646553572034791936225068783173764298717954490154655923959625044074620407647463480605715619959095180599350921095283549766985265051543486964155384353734260028965721879153720182616167855883193692904242496960177113274075653378742442000268256131140093544845114393294033377379457355875966311731617545163103818776666157381760744027679766537778323875794008863259851830187949177353770813956622711165657072067539727615082055764595400611659906136894785540246437017877558167619634766622668519510412969187665102718632467697588471325751710831777449640833761725266918177327289866924092226009525247853664804623802596018070415852901616694514553921577331652362535398081672868689989724057829263370524433359266431804752970386709766289196688238967243027176545501205700804711266155145686694638796484357846313154659513405324294941535130850456950288809634693897315175514927390207973768359218914335788155180968093000469869513999837708975139525418450747296291794543937621848836808419100573932680973155248256641810463080865288161550542592448749754694354774369400990644489272828158863984344897260492825829761123305711049507880554774969623311237145302456428386982176993206451079598082390992201801118868719621634361448160368215935545352123722475800778507688424720388021957176879798574982524531892897367949928122880532888845957000192244247896342519123913431211637420774670761134126183332796969170221957467753647580536299682476239595778121989205079881421698416203472572504216464099000016803545821896209146728930108742222065180807482931683076632916138387900858323378848346607537564067774347497675936180900232380316042247878679522849884854926937381654541258221238622375466923564431510144021221370743850150472529259764650398804331760590082410557361577498685198047206299385671934160987735499432581463658170198176048650821949994865231558881420547025253809173686468993030373904637461967873751498160360250717521356567841511756135805909239109086495699958240773583690747031915479110651939214344131440759742268491433172531395156350767435998047389075562732333166069420936225064191299443323123627234607347143068130049188539697666222400039052047066327478912229299937655779478225327538318368427087880876082115696625433956253738616954382634123329102666534478191337879227104848450663355646602539071942485860740345981434390493103730166571694597192437810456072347038719697007295331640953807938406222894991865622120954226976547765709051016580530982826626419347731110121945678985043764574452933045650809062362634678931340205786639524889819757097270529044178249315735843063809236957358888438381122688102811550306527518794563922407616745892855645176584541896396192596105465986281714608368209500320991209825893141231499815806152871016475453070470998606296544354467994335013742908733401014655400653032628687686862600023155544105464965156953262522375072604015742847317845275744500458331497378345708385502721794078276592404715856924625348449673669431692188929691375187198791684915267902070186398613877635512592643606353070105133758332776260450326620450443487811931666951879342793571038921002154379038750210464288016973014824121497370790088279046529416917270585584451168781571372072831193477053796401656952338042326003511615511946116534095377348668080387871731365016742621390872551150497607874078488385872394442894290164819353901584763562419493629620774743141009208146660479477824949222716371182336585829308122732244224224313617638410438559041349139971088992965885474857085442814749982610511483722560703098300092478306483184809346363392712139661225320150241136132447085718629177790299687600605177484838416906170433569255398867748445098224496612793273035900625594125486449520103447844211015572231439475078827959560319601817289156261554838738530057525099155627261837470352616973906737762157308567107363663576710473644627593318062027308360083326494850036926437433226665774530133159596456600508338480187211297529171350002274822466454542172092943760588279386195743166491295231088399509006905610535375330344642323404034206066771719281085949993871455634724118659810612117678431144665227711862253804317004385456650936137812550226589853516606508003845399749927180800171956317825240822096239428642796700749346242482541321705568201341295213294702544294449126550812014256325919407002314900050152215954592422920380115944490794803719473590008197906110420997365926047002376392726715459849596712482916639315186379624118844405676383935434748714934839292659476461677529538647056266931538279354235858344763337933633492839698858276265944319950026920752953310454025021155232929437894258486001327461005782881835653038616493418060512450288733183794339806395835830241456850943852719870761214055748599604522940248812666825799418465375805554675226061571712848741888913758426888609018888744994876485680092073744178730837626245794440048262476595357625229788507121574349420712907367525861895963019259989446001976590051907378175528143457529899473087345382596852249501378255626666077458444556923219714070765463000479145586101993031191183001902230871719927919179386099445057824777747662260773787190110185098286513877008168423313729659087253004428380268914224734519726182193139460003782212041421164098131622578497843673351992697234925555783330997427788593494180134241822022590067547476817628291276083463990913938641344597470050058488651724110379361094758842417758009284289912492967127924434041483727057731937311324212072453109057350508643237256884817917428401223815005298226849927398725958707382908324230161958724721140074690562996070519319341739618386884524967440222334210117074504503505419726238855735658966993682400198285618277593490400274288397469284381423796940762632825075612120810001946325820921780602443271425153338693748734402916496639019449581827053586759304358334542435460755677383952062542374419769697978904770562064219048573632193816200585511257390484336599037605612295311715508319826897193342398407720755867401191064991957576179331753485662785467916077475743707353219533855514404122707499880559130816652352200829016875596498598419009194379402243130172100284381624251470233989783257066314666777381453807936901152815244328737690642892982387534116219011008983686509859255120234618006924567216476028831228397474606526948156502175454964168207855364988628160123282894954980872987521162163961475344534529015765706323171636125064393453284150939318375981807251373894456417340303647694056575160871137924735548659017824426756075808177425497626045645976106802596818325163949163412803931671003119617664020183386117194085755681799120198615436833765942545320457312489030009378600627371029942762092273824242060451790495886687354636486444540692508345726219480688425703867654406277741172920211086967570839034299462914273799801716113664620131030007125252865617020474712359640519957554609104173542961809339388482989519439549284434246731499354995937139045751210215164329467733663194936936132462622437783227513661566648464679094401638948537801279140414121075521749231462778489790478916506836647994670488402672913410752012569918903464322796206900824584562343564063969127537467018009354994381423639400703888350518409958658229675523044140616240916005636991187998873430975475104273917727834545873043338629440165402887750718063916419619843014729245429450988511169304382616477295002379214009762969533128722850804406678182331062224130481752645136740555075308290732927300195367174088869153907721409480766221214478661304833262637229001904455327910119423500387720686964547649726568896166258747323059973248038720519509594439679240499313447041312965379881805314537831341563940741038574057170427265250844213040600032345779209904130925475902641052123371720651905939231732182581169080473931210841426682778459302880607288729606674175105305956449326098009738621818084729454877326438885593407338411634066768836390705606718139236997751716876256334664774038107755767477929752360075142109767184521039314800365362714226721708333216443564604175812836789133551655694027959750144132880620849269221946569613098489865700859955613741075985113081708578719095327896567759876919569185790006373349251394000955354799299370235305956525028729917309892535942983715021082754393547882382327224783695033843273144675411302950288435870557376177386296378227202497371948176421794071606075719099710987666393686990964287613088555283068628104854191362550192863780605160105973658230163040057839821435957750904284817260815954119433646922585771075676907659142701446244221262713952469417872524816835805900395686455824204436313113332796258298837134081291285001779406758777123148022784262162866027322680195576631031953327680081878715942239079567724373780647760368626415177663899854548263627883129281436962340765190343280307928040719489478112438692985388162549554654078791974024612271555167667121218633614540408551968064342657225402640050059545060259541353169744383572279652482466268993664509866334132964737512096947613989641783118790111435968930990444741779363322534036968312485767461284957513559771780979205489233122210322643726642532210645304887002866793280476508614520209218620366959264632320219883243023805067917418680340140360653186765261545089107209205645027663664052536782024644801594853705978122708776351522437556284120560952272115770559597435670126071946455405566989496877620276666375090458327921105456562566189307145142575357813198560286830397758105009416448353108913993446081643897297345912983700271632483827213308140261719533889422980104032990359445914999866041872326125407613778078464229197214439795471257830098107299329156656230430900588168935564172169760826821010233894865821212411942844604134778822253694531684843973564171433930818831121545388310473177329397492022294688574293640751249955705058310243381699673957958511884326968734083923971912200228252484803386884377864517453217940352337130051060455866057510789856299316719946381768787455258434927230930819286481162932284093948294150299615417496551670204431185312164423324776580413191634081272604237801015847123726774501132987324175227485297250064696537148023178292380490118931372521199553135024959320710647857968112266441242182064519273139249053067132044118310239545495693540900007150159370965512808009995676807796698333670185223717767980816411860877356929026995368251211589076165528386269837884714881465762480383765525034123631968606578573680583559545550853043024216961580715635107068010543601975267544335854200424453553572468415713875508971926347010823348840483964451746241089431322901068961609825234348508988630049593536903498924522876375280997754663819967462112207051119198011943632876773600150588333602765963740235070977477821430740148554701347906361358098411314322366944622420083753089993535139347175928537563048258316404224877208090337603009865384514063025463187641357313501429037997742574370463941069379939253564570880882954165511895301438163047392529407227079865448459481161822616609508477338660812686021164219817828848208482326617659339596712614223908584478644005314595489886134890289902677378919808796943106331642984882675879173271022885284323473441781687144403407715909463918776999246745141287939955838244506541874891867985373537092882243463757234474408796360612273806982103900402752746863208985458995134284585495038011352770758404207890585201968919958556720416826687083215120806981138615723092157935320988020653291663684062595744919114553636682659193112686939058488726003080420613205674986428537602103636516794285867056052264910735416577091053527528480145308069455358950125410975473132688628429317144698639525460837037166207660228718808711723424217762572559229233015373787651711413715710461831572873155404135432400181209697332543114595878640523136933928866985861703904371544899937351143485127292998086394403920832842143491042811306535535877391854081457830238525337830946116028871799433575506831081156112624646145119945126495899073506404875882830583871194190082555309575702031879314391900546520866739894892457667820772644688789260985949913385658085497974668773784627861874315920984981318888830293942939731729742639701720647780506605316879993723364546945537061721974795234315472634563804628629419047776607165296015682786071449522862647007898840603976879336229326605939910577108479252107772619003509519292292551489074397881970108722522998245339436910084972629661240322977635645735786329439372114219727359947686496251071091583918985771087783467047094169184082384512326300256851742403944748249296426599788155188575254578852214680222117957697560242133370086402585157636154413299420649605842961704403277102339915885032615947715446431365879592258341363113808816958443686409303744348348936267542459361761006348985757335032471044305936585043304296223752235392362476789109261204520799874562483649895529915478056629062273633403865735107598889509952621237328383685990243378011691765761188690973200028342618214266327616328696288793157265835099328122490963195107632752514147784946438954298986779367302550304946459256201215401904734657532778882299874591678048657983109198491709565998053887035520189035914754888823483040788493697844948053893610773782027441393720216194152588412520151288318260196850883228175430962682516383308998672289242748725963546915935571057141685946112823995880747189276061181530896139367603666967939054152165308808364374024164073448817316116304382148633638442806434109622939315900488312452523860562588888911057472661402283014708028969346451723856569739515155681670353452352996369300187403089007216204012245986045084786763883526779380318375458926409160910538908663095684085475460539426706583676746517832913855285941557367449221202413953171555410611066520845355774492554381674103722020320779424998071269768385260359006734814855606269768222070041577459831018548380567645236930536584058614900044208704083261848424368404092004714232384458106478356235543306997502071888973248612976160654221649086195410767460353368344266120225822770556840397763049971901386943948194085548621282131938722891986440016309489080063608227319307080314706814483173296881114930837531526395257488024604522414484495680997282290816511253762422058162160110140018462280007101450484886656774780593372959581231280121723296668683431404541162436681932161747235269185854524333483546126323353236913140995974336558937496263499010982546812450667774362779490328476665800148278648196422902800065965195078561548767087578533980027800374269117119209617615057107640786241738048027365767951757875477706123340492451026070648597411526776583822155373262166065164456176399142732783840554504746372850679637450666392580508505435954617665122556889174905366778608611548172040011213675839567097172964385423511686828487626437395527544506019888698630705659535607144076766633120980738684720241383121618714995049102625145866226667369556306283972555821755239810906705091818686111839096439488316763020180398755119316076561253801295870452348492044790969126614697321815698362216930706554816299977876345846029302943449678647174732914367542367805228966918828914258849526280079535626238889911195011012382244023330823006041989849012409154637963993578310918724117542545719572124288015952377854752101060715244548262773880243216889868188453182939410055574976573943294825988739988505574932798540594906577223738200349399948283482181127537904700088207736490435536838227392577512682954722833577489422875718885060417767497681715622719795452513618803257384781903746629651586626592743240362737820489114481276027147845896313806266608350913325637544478165938162267764606778244223550981796159623428432308945949250181748699359389153891825133151997836155174430994353711103165047771352139393389110014509888143690869280881084805758912472981563964269285073490472054489403954324609487161510822940325951426198929689082486837703669208436725656061769692115904626476942896038288184066714655516260049250305725901877481512061421818980156327115742969842475973487162710788749917063041751624427755170458875999437917734261913145356420509300676299477690538940950658373510659550624720936732828847801513236262170303173693876713590384481705100104087740815847745849030526628780112802904444013775852977631910250099978408928609348068590603545657728511077610663296834552886395922231511281703042294128349124377180033455593164618495669659939053980605209144379173943417273437927579569449788068625064410698909931124622843234449790817325420807993685438086066590988456722850396024461017520177613923305259659933731976423416471392503954223090421246562261510131908149008196216724535239081802226293307980654405497581442796315997906273776850104967826893532193863112063275153560403750847290951636939086864814699307920563524096692617344616792398579477590299143480615160566451952939229617924450055179935418802401802238490937842305961989008326764323675313758460083279714539524553875131857984691794856816336062479911588578543403952614625926241050141694168162521852381170425440879290151982897299942741494410414597950740747163021893801517083670158630832804092604226635231400818329743551579225753511114677156025743117563747257280026682968073286701470113554769161528044947845507786119825246338053316678038926542774281908625590226416998972230751830389733967665509758570454112909242577645350922921178062641591741496520105825212912910588550245550740739581061102553136564420186598165095725325046907044759569182698107507686585383058308986898691682279003113525858219643800803884144035783779828530040166066777317523576816828374356489947351152708142201532502104449185833460073085841173011550373208510102776094482457318302051863020033178377412166918801677953187782782489423946698259619615096192405158087987404888578049978883464376902822606218366076017663483702315649705903165999240249143172821980996575446835224076700738770653401940131532005774251392330145158670025894807805747924908659359319587121209441248972966330859088709303994205711156772065253998504990842037802009139643201526291743342717726280675801039961941692055426960041027187973098399975663581858614192584220917593182910154510152330979963477133460580590622281534722878451746249081028946700782340718147283857558681530912381887659756914346792561877658173834741699634891023390708168646757153960262850367745219123306733712492471609015107876834952904337912961024421079917623351469757986177880675067724184727768770947651157458703419697709269743408478637915303818217465847503985411837035075731740168677289300600363435230789308923151356105346193356460584791529628923640494563911149139368269748950842975733555511594292362616964669312228684491400038105762183153253905585372999668751648438597151395646376452855333843695311969644181443897517223760660077791711942988992517819659137261675054006681243396338215252889082940431267441385612237639220759676326206289021792975179547776283387720230938665224398017410578651353947817554058828503019391810868918243672110240037206724254980342487328410352601749345666453468840128540120912972074454040436494890392595400175675496060840590117028674213925587597442270895797915867884060988396815604925022180695534194715249306987041784516904952631738734225962074516320479732567968131761529794099603740264173230919839184554490351017055011674628181836227900074854303471116997098693225695266021617706314927867270312864553341247923400254033638250299625534530259541434158172417266761487132340709090495438097361307351798497723231081389827184392547313450062754775703014629974641160485357958103215295182151346204427741320333029068047455414845140988207175483004668598458598768428194288349018178826375441115047266879617805937308752577630163227489120927657948810726481411706906528076556790800602518100574914429901074231857068685793393960737207249813453037733876317849648667324065512309790814996441272510704821838674395178335601287325106576959607729443584431184361206274577802137626379940535768256557343504297883436206281987516709013239133651414740639327482984470306317405604929863395046592849018398577670935220085267327414568147078045546524154626912126447451965369204183970669424844608383808213035034093946882395328644965733483786048206222633222768953483431946440711300726052239547687338907000724705692838692748827169540228558483887450824522238690328677033419269470569379329461745265731330403422080052336336862982570857272577121271659801815608988421064229953501578935578625082001626351207979978412071978630081311125144095792462575855873339710636034135765768074915049114382612858836061947246825400606908412267483406874261332770909861265418210967807270106495772687441621718908826839140604378691451711191737873947064138485503958781234975599493350747987032644530197593761785517098570246139235004794545634095234796485809259467418722476926383539853075433843925679063897789586243569630323880377249862502307271888158794732983842269775756511750253484164972544208963944996278097141508675913916078779985785044571979892545887972302307224281744064601297738574398568493010535178837467896323995365770184059550087655234528832138969310458878234100111806886322886698733731952773938306713012834586106651953107263939946591630783983636463425693905777961941050282134619332364796821431728638999380488876966405572434917727487412731142143056087280463590069266202970904044380829442952788471959992797553806411320778527259343639667119012436948249301263394881147541650901934319001665840683253299803084942776387061747798904908368123801039408562996002250194206473186309843108408935010756549884347841265287346231094558928437559258751816830230221214333097158516337474866023499401159577899980688635091010154511114361238816473250202576054251281722024431992552172504250405334012054968842954016739888907329477674363484840989264816603294268941192654743715358911277542983009154293792003782436691611080531500796990472958455624304486191350490370890406732875892964446021960758654739870114833807065077007773046832745179353030718708363921488827917840005321181058179936820282374063459974786869040972236995644199481908473674711401429435785743340128965388828216980828744996316474151219586093958994996616456545866441488343532640796455715140050694738237696295578184859134269722882833538444932818183126691972315645354291751132258070613464833384410357860769118783134204110855984140902973678082404475970150544824632532400501660992501915148441087793395406309147150121388594743481764701856760248419920652671977244647076944522522746871958649148270210625809582542627587463636612451422108400772426635196885784961302711914669364803922090175361945542445638209159445990165917617139941279743004846402626624058609228269887873850392077633075548013444530776549576933790091532655526014441402664617898700194758528063131306291630606189451644747719251261737994589098510290741536034394035481764280329481038777091387430953446975052810017723917125493119155936601585263850624970400829633625872727805327951249078968915332049069479163037227795893222856322141350890869067973835613580876858473426997910403867388581322799260942138618174837801334106120445673431366361089199977158740953923048090959432486557809435229663507644911496040384757070590186019900880519297151075284328137430275237505669789967824810145000530809140101041910503236175550680121537218543533112281065974347070767851256021103490056100060335122420918933660250745208300527808388860009602450545673149118024610623214611595229818378325186833215428839825124277609172742388385269567602866547165607498787497647899090946164670561571397531004683743889435781425086921365632918739434146592804224066643584328956354764449362747176330121527830382341118764391302478873334595730173662368910327355264081370412811903774558407942211236170366873958208270609305113789131241435199262652429314562791385016408318275518157273848355497041457276380521933704914150699413068149194995826479662407818795514230794176755217422255316038208015298945182138890507093843297571756197062899463786885548502613626827283375584533866122003779669416415588790584515801096192539227042232544155408393208537933445787374724687038715354466948980467830440187649201719527029276652378041514996254163411686441430389603313615517800237196445414709913041108757657831829762357767683444886621098024730313817636510985837527381540659032202637043782149417910890748849637894712681422136129933730898875584056034990538289138098170410623929991884567802350953063475930678794017831640248222473614129984515144027510929269776027603144875377586036579800461249713226506833311640637121262689722058027731211109792559583863268283406174073086928340129554940470071553660775202917910199361939758636961252045324219713437418549648021074745188451219999939476362145665293714492398809424536671876731329008519899444793662300362739970864515378383749989357157628283982615148197713168830439757608552060448775776810081572592002982303236037417879376634442715044710208245356987356271856683023734462812118678826050324219175936185463349158448642689574403807576776123956653256075147059942984827069594145571739686849415292946427751854291673889592776178135742015717335482012706068649607972548217433021623582621641932222238574760777942447535208204856910615854098227766539818717465101085871871994929215885379113668882044729815405247645268093281043621542188020313505875152954206990939183813215380051257576713117139267193416596221473802334215515242543735997107339071283079371978475598026008175034723093465947568402689253670364399611338055665425723922079720416108451165759560346952626052110258326756046359478794538353815918839527822385191085811155552689428162712615174811824783315853667824228371273062505060545633691770993602596209884083682808569100453757075923584021000295260124635953834183308662945310572858025525597191051858209884123795127646105482360385697850901769716575769248190059143327474789181208983372722594635208330728823743767858515804244885310240836279689985603203141596160268652235312256381989677932416219644764964528991480139629137993722998147662654591618625917787557254711639306628210039781467756087251740026316836891383192447161920211222253733133524323874702489981070863008137298920914726182671179245788635743293302662986441649394726892170186068513191398843085276322889256703298042006080186263465105763584872920871924759599598866013648158235632290221924717204059135121672752140247032503657189132676422149364629219686941070430099665262931582579875125244484552495066940151320028132931295423728919963514214834364219026481776952088908064260583050580394557913011674075068380347424905961724472090383731037942621273522151097445866772051315441831384366344416735913464757199818796004461573068366102735467709724574214464749157892379916200565433048534639892035028205941015883249113450360158703872125501193542975129153810295382027935045907302740644868700566000639685227901109540647511916779915161957978449890513516340085378509751340908485509576638571262589164092445457590390011520453139560089197859483875872243449185314870256731361096915588780077426848598283667999534787255702270456355022607396123647641016324267421517940112980186999045758530986230500567831771166013660436409765987441931581620229787253749970467116920131890205033508482769134109581976883875003300498158984589136286789450988457885065869694351053814009111731096942417118088202677675536997065845424819894787865500871301264076162779443123539826746784090380679200629944970875592168622391658599293072261282552581456383400811838489879237020687209204101360938995206738772964684675585321606021600875764460898707981478912976033448014349971847827842142071871089080153020728050934390534649028144936810749309231118380307431623419109493027768236968945757678386048282561444770057319854895095163298838359213992725809906050985672732270398188982349087430891922355082260287803446649130969147424555201989690914682195973240728391141473733617824933698446497728894546414451392498282621021015767944123504414737679108637602423723573119423049478502006672081266590921509237825107035379074507513090633835010501525704533957717369487053919394216089136590677637708311206889254307237355045306098853683089918506317422091492098912932793488633169828941943431380714805720072401436223714838973230461828282502257714502183877531993790222956657980673048370057508851629555625882678603944877356165550189704610596588570971804242437059776599808691712850805552539290953968405525086636906089151023189979659532402702439714364063457596010110743423931149768196382706056925251671233898137226980554749059405910014502718584179155197177439121473740081806772958946604158189208177729302019356106652867854332944128327510521703398876866880445982827749357983782496582618791246441435650454958498389463514908128995343213547643126119920659494092123737399313233845426537938179400142556253649114840993680693987718202952791523855984693458920831553596728433165675845054006728261254469124814587072425471380230383232468072076409490904301166785338796653821629013057268169127573722403009719982074617106349346971518018745956827635931851870564034676292202061310782088469120029064180288379575961180622647352601802046854033285187572992426925555229868053154855125313380374065136644145130114765263044406218792009489223538230430162060187548554676447409649563164034644526239227829986420355731001500124311143144167568863705193736404901840200263451064569069816982119891107145628024922809283841668172704451969307311916435873727878840255896321997353494886487797862203087605111253147287650978374113617531863381861331903126110821311522963706659531293021049705522245636140592235096692713825795598094120922119520021549044687088192159116751082246006880675979810820123694970888427732499710226976950233581219240563058759457458727270533260186706541221012149460260201153832745923367449841444177320889204978999973089518857965899530418076133570313104171079649574680398299628862669067380213839949109631555777539331647313694614751703279368739844930433165825141980108450021020718391534973601407183164461734432264057868002329351544808742021003667593249985835877190909025279312951758727892129376796098281508780883629750669617455681318737826066303360316148194216746961856319148761319313796513581584807263389972085076058407204172469263675264292747101794395874708032155806477618680698653112715057619894950139373913625447830957188767420928654662472273353590472174151819777098438539874364930835539336009467484392524736787871543113632687372028052573637514349077080371410042270888245516402790168274160143186698566048120568101914030513389576693533748715848925466932114434443257044329745075892694495788809759242086595401513758241787289429660927459834444091790639677782988059871746722891692104625354345531647854608813960949567188774519730265336231873594632575544891876570694732961264929212760019389546822850213788114059974960246414892960305443270621287896472888490818770915622973314192448512833520069616043538662512093205121614248660196425308953803417979323162206148496122613676958429732729895944999842606540628300116017671444822711579355226761896411712006856567010149594248359323205617660292958600532633484989733105496524689728805923965088139522318217387507485949298062258461328725696994449072905160012884432799219154522744158519474715382559887127180773773203652032177517755589021246226431228298445938615294301473948695437537955729863601353006937433987442317268462565650600938136637292331735138884235013496350424686579239270299461039001257079114118619892461602717453788986005548573405495161251013243847803159339877969766205714408585176961713439347266688916236940498934668542328465258479678353231099533416954527491518564100787051124373123173767723487157406042749122943598060098235720093170494561144168813707601473897348287558470362473754623220498785038430191885871193746364089227839876260186152117530137867943123974220238720549693372205954566383280499937833290823701940235226227500605641175787406297675597102114566977816865014740128787773208687765426316008434979437403078470441566218193309670329368263146664992350517722016717029255241566095928924828702962323390573167337160264009171060622034294721651127503522856204593605340994208469867420807065680157100667216133097125021386822527730485934614387895663886898829782793978212206486591485342999486736367841019323927879584033959300127655944829865725055501682675406732038035404830390409428374086484606807844566696947638577749614597722975781620821107744268417293467711939602308619220607547550693097670516659214977246111155266979698012475160960035332231590334370657429541933027804569046126514941056795602232334654384602371749690686728858463210398956522354131435166934295542040390879916246138085811627560344279132936520042067015640325610280604666907912913603799756206951168882187892008289008882788187611402214860587777101916723758203889790226945653633248769862978290867269624179883238642148392778384436606517300951144674007502713426828024764557239918187444764618344398598256500858513874496360958727326062132972251232294525840020982439546942854949028805107146462102127347151226652021211800374247041637175475780883003518842147254293176206562696737875580806877473617241243021436023098136980193657177672793984105132860244770069214104651223477035327710416906386046222311937324513090435536683631775029062481909111023490826686158819249246345121341192276304207740146846357024830671211620228303461433170710310755495598638445907752428104341726848708992668013894663786044543046866971265460228318574192899642822444259485987740428875779445154770587892814459450787779381900825929250446240922581799949734470972540337644051233612832082295315931194683137560305866467428145486908190780124190319378220320742146493344048824743260873806871269699877217870621976685947067953104326144538552569011733110992134088458062242628084591987127476696578618380467700306625301631413001267093349598882221707500455925366548843356702179657877527758429949267217355449775074061555851941661703610915309623918171978006221775052367746827797052600685474798782847161191051747085409562562930405393677846910081882825984368640685352597094930515609901849494748782635818875382568443360816223628784890559858992392849232664569276475205148277514946885831604342302447006147313881871935605666034189541239757881537867615069503584307503271549519955207170025208842611834603826279685883295808375759011534236987660017956001104215383632623535532600176611908311100947384192849367368581378013157896006114077729094482181910498250344058386070682614853636050138415996100903205820291726464897038391827905329931411864556398561469751611378006963777512196522446971078402294612926571111888223904462027055853086146100861437516295517993194503808671319885041997614212225402190937675833756314955220731759469737952057538534403661737633929468818177580892287448146478030852753528048409374138052072412731125842368821448473868290586262542485403402808916448456103201976161935115186603129118511926319391676950232532816036685776175962331527058364315722052378544725680649937390448114491127919903275792999988197615512297555301166379663329359489693564257326773256299976897542989389360531218440265306760082140878252795551616318954972557212409550230611774239498317795886682329134578723831282409826542037704094157783939609535960624386577305487597982505239179823741609498064558330315552369887239793831422976322336171738567238833322475851910367899519575676287978284486286648811048068063854826217813527377010701731575685515526299005526317265643322469005374529106254500430486233800192279231114426221596584413670909120651413856701021900944515049044064246968784386694132842144687660403459019194971202504035771951454415000784537148838412165810856366820995326934520842776737857357445175054979893280875948759033056305227176788014849439602606881028181733817129484973085465157742172547497492380658813568757657294550496289443107635110859397587189319649059629813218329371428818033963739690794825085005040427923280994917988652992410941694148880395860888630355884359316449729002897984247483417729736080906117262748225904544299475867865411927156789442485175848901048635035569762104006353311538551360252157777666311805614625121792369421637016941984479851534610186905310604081286593235585670664687181143396099165112409752956211626518961153815502463411796486933461312744291533742367349747622679206186323033008700497923126967179724290961183377849995757992036130910679654831802578111082101981029220175473473543824805021990912363936776634264685036443643495805171384073594971286353145990440868999992842695894370543863179971436349355322766012097874276903101197216953042175232699228504779646193118441015882732852214437110786199899924272523332456256003434880422187492717778159441008519178787835650952820168626913560594961846082677220507120315163526089330873959179020041897400156118045719191530144236195065881922311281211273551866796395395079629773217929252417667937235586815693845989801917853444294813118366713018829413689270042362848411506373137171305623420306261182992375898040191831847058597672842408735936039278345355157387743929499322341997351004481107634049513016532082622646402786022567657053647054023304422894090051915425155197515328823027845754791001068090366364760344453668123939556874584864274749260651794735219477735799947158949866530218061204514931286105723998455302244191952984869380759216625224749701366635557846774016615878227126373397042207584331931314590334943855086853266789870276794086390504374808133965809063271874715451500189809337859363925767377913806334207923291619589621706073998077824056599359845481597502118938656889085650264565027640944022149048122995792479638317679231408884651400135336608923204122449410053219810100940557705848615695208303334922478744479163372917642139097152567270085764006472275146812642879228443790983313681384493512497517047832538913193055393735255440501997189694069807798347311100643798271098328617695985873414916536140336938062172037993254004800984564183876394384707693384608633851408629663334092336664794948487793345802535386481967596586121030966874876167159320173605033382427195390781587372479302719746022132282310196594546652782880222061993652183896622583295970405573131371189696227255356457277448570501477956657247151754578338191357354712090030864259796595339105901536439206753577022704920547079589897372524130731558204259570974704504899163204804542761206108128457646877550975855728747850004819446032931279608518276955006445793560578406030538049190735604582729134248220223844651953904099803781650380841282715122023777385420686912624425890572608861029150931212033111406348539820069810020818812480435534024006669414769556431763130449694380610731832271286028290530525761601433938341398230269599065435392951546160531600205930210257765107615873584027190243216260881786285838673096808645236575793984094642650560093894679706865279628258828696665254089422592015829545882833395887142609802049607228140272034842502015214353690804859239013019422232729442890871868932541794129601240850685635739367755682660603665449634906242871885417514027982215394281359436441532836506158599733829214640527707800759347431718842582915372779005166561929706295162355076473803817834270862211328882609755272917419919423876076138963073712572150821732166570788037955620441885794030373188729502282449161964001285023904702193520615981179988935797220480882037110422066907940851171383205966826969599834242986262980891540265762034928258390986136074744286507452639621489244768556957998792002882058194255189524069152799322532696233761869608709251908787632457701733719983089346421400164616476915954501398008095872539028900925120675705786488393786130114626953912823205580365930256356820538116178983171886062966364972580843624782731773165818009170610897381263590219869664957818262840807656937134861739488655650633649430640283923130205535745728879027990315795361206438507554869573990681131457468368080308746301778543928679405217230775059206215372826262391653212065727429392850504005767458537915148208634057405072924505925121411435936936057263078324398917049565555003513186471899779289760916634613086535016169217999966867072684291676120459262203472846877278621963690855718124241396525674026463970256133040324584392613001509642144306037876128507291177365325078457008953129293360607323731364253502055656085382026497852526014458127154076444441031590808241450549940796390486158470461907103673041481122028527498671577035081959956221454312641416597012719156954572292935344676120069781429453736795246341552224149616055902401706630072276274748516383374450543761080631534556381882961667730510733601195441612011834493269524506847234881825576776289635448572660033343137919666884566129169401007268436053447736460317678876384981458985739850782315564544126050335038281336735110479427011513223834944198699143969190183731163346966610248806243737630150835713700999946296374860239902927681217997908164794367483399844430103157060723873975410991046055314113785080276089747125378001269671979108542849006779352772802727877356446233922498636678168957946727775139891741360403463839581665690350969906369237561278301807697351877408217912868572201184042104261734396251472476821287531848802785762454003133903348537901251536891655357866894466056071480831500837011241022967846163877209348070149668595336576943693071197740196714927001215320734241686162700470087017264655693037302235544386717940956660857375912603835521435563269110567949817536997099742017003947095279378822600379865817826010752863390639406200430703636164118265497853481084620550612055901129528660989194926564861874353180767838922238197287981882698283926839698020531403877886225302572998587333804384113438119435601451167196564182287239640927825642172935875893860224327974857939065711206237627089482192026991204560432570521530901070248748911481903983319725290318587530655066936383684217765433236934484393952312952139573519025081220606297258648865421751532949904333662115432258542764170540008660456853183806667408294839785766175326471073577318817462083955677055114620014233017660134851149748923650323984345728385624911052945170415477312722032956653836070847742167276930248315605920874570618838871053688920025630515444992930951825786324340740464441531138219941218444225836937746580978694723354395028834736708013626043585379098270683745641645142791450200478047785334363557625964399032219858632570872864964322361530064254812513145671804241163613070822089800558287090261041229759725687619626255961580575154623126185424557994351143465999820877967750967477798548539794088246435071519611771964936681078485952009613229864692824730919411512790299754376538481827366823016969398277072767682533505614775901148930533958667724148398058034887684837560896342191579028652286158115723159118073861186893952810401917870081092197992514688962347844039573209006885101330792261932797437028772565814046942601400432831394406906377482382409793529164941574230143709903618691141204159346194055619300961419138635351623307868869151714643322449762231455115109397041563393337529701234413158642768505277176273850332048035411831162000862868070865289146673171352113950378710039134134615676138508032246771109511176836953266375402319095995292134678151256368745785233644597857615571593532243614096606526582645339466668404811250518654019679933218175553157543497526024440576919151216389997485666874160286478622489463693589704574046305995816058272182179111014155903466533888579501528944330553701419875596665428325783077450407651400330247193221651713646876125129261563867156980822425061826636427471370767484033870187652448368355480567688948672458644777507954402885799265881412259299538233138542461002051453339557808124905260362573203143769250698214451648145344334295963535888048364977153886237645285719286471770641144298444693536687760597128731158219694520496442960287834937848893754710885288952861661187537591700836596921067472342900171312421774648096954606503750244276088887051868639668458843431388720136580188563736805005362087073692075197216108538242411262317848515379135817119842500688559648867713611439031920266585913498686994642514917022551561924275203814864912206028529696766965388183713959031541452123203297005257042755564365754990225379551820306564233021648863716737459128254846405924972044317630620102273923319802448319060692741653062192261759751440352320160997756017018041003927309029845968167391754765405324463836345093322921822707531178166562691625764806834044831216186553003387205804819709772040892024580183143864121889574272028155943702645682738807182799130648199099929648606086876765472392508870286808140593356319572805362042830861428158639091592598795617950809229310650761585389138631250517511666668225586761864955801810708674982715961878645405291487628475056809101335640445667139699035045905392576489991842067896216166587552833972057414950547983535716959323028166137281315254547024845929996566391930130409057244961118262585844533294030828047671326800169299474131017359303899116701935161085916942656523156924902766970241912673226924764009147656504831764824647499686964683993715329997967508547509191971367243602464202833247732952847899831703512516413482496193924836741393506056622578562564036718377103638963645743949787146393019195257858443217219721102375012165268507385376485138774032075567179268655177091268980406852656481615030281736705136325451495170652968460333896537475158155968357701571985182696431040809007337568507116435649006784802559287385064008449558592144631598701283794068868447526837705293063541102385737776054298283482631297519841395833111134733903493364371397652750476129015720820207430007345182415322293825845141057222523553166810293336399135950236670182738116579868182412305139482986753695182632435265908914081521529855901673527151536893825115438747661686660569351388539317675558830974334109744376263951697375595470365936894460175016643395974821062984037160763621483214041353059079620996388304623432148217920989506407937484792338160721220435476062545647434564853390353929132478052845464293616206952299284125339250816028571889133686173429352383186295922962115947625508560577730008143649629864902153362317384007217651571891718076987100393568350752010741243940755086842662741950202985101727578929104243915883753022819010055894411424764682869945870675278426411840640172520441424208610177840119700897986544081426893654992727926263213687862998397174537009219894039768226678190189219176348207768018771433610886871322335850057787471896740164718689093063446784010678843973422791761548456845276568279627940273607965973657589505200564435029561941987875719752511521398380286382298694584455735168721116214351439909133518330746827764360242187271465803825115164073898966682196391340884589083725625089288911288405609864705630604384408212772725974686095749188187438180004911515487394275123946183732491336763538669013546976833091658787305489268157475832239850722332769208015275783265016314544051349548264302832144818537641787812918762173429335421190528174898668982897421615423553802027248446682184534387291373979534438271353532515763903205709370228835528734598301352530212010615826942275343711721677781479515741675960428907515676599672446910759033456617725673258942232989386557319152181091820661688300081620923358515596112760384527491877890125336581082874157830035485035845118324435956819317852932069661810439917472598347672802868674673962300748896490692366051786217039944117584244862436142130472501815093829082645257514892917486375411611532202798001014063233873221656573088324766283999399576995417763334269028566598869557687885362352002392549496454264147794362749833958008203327724505034226850713318976822746801766514875099130625627219925802753640622502395120558349982017046349332891925055190124582233117491004903925551868970620063658962292797043363836798111625592253134723043593488093171814253851324922388982768689114948204422504378938316328148525308135309792439491313515621562182485142833414497154230399704007982409934285656507919406604439948149195559878250371764854519882218565363393575757778466238745470931657712534218699857275938075298394068210202925986771979296496219981720871671389096223929409301469369920741416824585774728696436221603307459877003566879327451767728021973416934818422688657504666018810325327283602165407807374862896174451498255333345006733806402715995682860067570845291065446624845619236881772288919502562830897315256033697059377888310574330822927678265302878370768298957496981037803542231217539752297689766766126984877853068763548604604054853877675699288619041320372376732102726848772566969726031637539265546290375756403784848345689393173636990126720754687337315772218712565226190035826976963033040959707764681233318000955800345917973416538092621404372946257396107735778858448846611758020236152538379192811685668226264430278407119901810950503359329791925915318408779804050998225792729503750929819075293463335615621484472741120811838025837775708149546737263364209497648468129493661707724283709309566469649700822251912315840545661721558194726607594721261834087499918177217934239237620275189093805152048758570961822353625740322736560323829763559352541212622876359592348247380090242088835485583748212742452285760884716105629590961576897628381486133564881483322831935680439269999527737358499292941506559316642452930530627882418968703980380434093729381306224113094221455983142257496465542796706703321435334047685930035808304076888095003537188761937736250275588266904422027138185549105818798971058986899561031604392564674111622590097012547106605352246499414616852548997940984037585850684080060011186401481523978824357101004939859224485959238842033367730359952011652485919862896260729944451708922541084736650397382349762142060755838441834294755175479252544406763578035958091449314563714021930211416201388249747438592719353124846249336528042155108999072482494326953937541853987963065950739981853689173205132514521191866955118284967732219770686594982327713051080159231375432649422619209073300839078787450173320973147881245388318372717492816549686018353103890475281665145574715163830201874497330158890932338365729077091288605539726174401750931511953193722343689621215844438038886035864552224131130731735242863236311591128887197913285779327664699695321043231651698248710747401445684349879320739235530895964216365520394749677313698631439868688307841842143902719928930959987326886022788973289054151709687699535323171024045481179354660126117207210522023845065928292924691129900058770864282957606302745159208670447745092765000225339203985589073072265370875820481492966363296141604974162742260198254961238906913653320826933883374294473670640536240860887684278640742737309581710810105640942324093210919503438345086926804394926634060832507665732283233344441605427578017144075360560131544463536847328457648576006151094156347709473432579718140830592756266844701697410353126527238666419610422796970822972362590433592650207436380205123172286749971003038859259871956575137006437927260270715409823398309337369075355504379008275166819284519977326914320863339169573960091090063472732195769900516268176572766624323618957913862084476215836373838156664432134261776620741584043641296119743236715625784570846261967500244898085021318473990869629240007078249723539265501195853625204212955689711319562462741811263356633554204047777236628557065436966395875718873558106868556150168220872882182970097126617701433601260451657111648940310973235708393915822044349247900168860410062987419676462446968979405065062729478358079437074779020112854374017296382659673114402945490067656875768748091016574562362681986708711726887688790835251503710034707841211600736547244949902457030635325471470285660550694420351115805765381670609401363936105460267430067243530910563723055230940442534451182087050188745619142399875115901849913443067366968107560514980267416388780266663133109777989808891512501999831296485407684525688438035334840495016954211296641657164812335065778025806684503884011850453331120647961995438790779436082875019754089400628738685587054940173215303837350839007987197054483441253949976031607749912073015130642386888360278624503071453023416236642107151279110934715722295389377353833470941130176487947285937521794350262169890069466716606946679753291784437993558056021138658501593990857008503633352764979178955423075076210602438258042296772766964858080648381427962478826134431789654742454915821465161403267655265370900021217715129680265789116109244257505883803399057168802885984357514220756836649443810185514375117391887206392046349361108224030517407273235778507835215607679656145238307266726498193702220015186130878808747526109763724856393192940422894645194045197942715841603281801502364879243841970736522123505917951260222246408940066587320009082737674120694955730829850983473892403649556674417421509117500085490619282382224699887453768167839651402778920555435892077715595202995265065170570348445250206864778531175641767652644019208431520922609020121271863885373745529059271263613864473295644909734159840522477301211427651933200832232843890370082364411260969390961065203986082845576510478987127218771044255320345913038695714429134977599894673210841041495989493464059138011737762662633304479249530731908241181878880408230756274129015299999209484189055746839941045711251178760691858671958339317559813914914538574784769543072063983100047857848511412589960556917887010056630382907678344732833342426769742699628218015116098096934367359002135783954017156004070861289114953123131365235020660187054265462052760488405355164719613371433347873694819998573297746262590145474849264498991395187755596560753765820227562533163813734286752557423473835681462450563406765858535434971409063738081544857592583620540819443058754846785438742614437876382032163723010659757473682446559134161764999129009001682173144168551795944075898562578684908552494987514167467178226290857952038094238649942378981650245678291002653087170877735286320260166355626661029168283474539934958191517099734187061433548248108200598450662863378705633735306850954355342748867957949709545904509081596670172880472666395919620495720039574462348256335188750252072670011806588371805245047022434590156869494784105539701880713279651021187741670399274590069014699966949736735566114492392051939625468360242489246900951179575463635519644918488065285220879685324658220085351863778624669536048625280282337266317405432619084428142711060532322996896794355822161690493643682680400234618910043516970268347762640385062497879583521866496099658247325895606175930288947366904658965721667395403642312119044357994065712450779702539712797438109513579321782952481084879211792366879034962300519464975116213975217081805389647064806523398310876105325852070174835173634164583404532012973976462680120763156012520759351777846910351634609240033932497512396389759391110043569274517679606306885572032295173666199113279360950252685096073070757833648623665428654337036312880260127971608015314270593770734561204153952129987126554720240620148741248291442155938007715086855801101173691191950498219089900203989542233801106589226869590166299220653258795366639801119590825147126912546234819510253745208979276874484132430247645131500414881190281658261185023225652170282791671849666549566006068742668681231553032201353103330068843873721260011238056889656332809952171063905590083284741178600771024993671082875562644136438216817288537076605096551984759500943571256886975387298134890867395337978886405275287010982608298649633355736188023389654785190899267880467900160189625278588076908010571810898554302384868215438236602739408529593868334661153234186136296773945845017512778972059203196120718626312352554722729118781808139143039257927254832661806895551284577759529607150641216373901102106266641377259766242066862924687468755095093775731106151971111729683536342406676152045810093655687598968654956247586985603816804197191765338114098577107528468289105683180101076207906181517870704450000666673559025574880602140682492029856610992487269164671794322883105581072243634431302305946160901989524468938055972620397487127896380209602261703350748492731025383880044996255539693444210581909080467263183077974747850361275857720157687621224448315021504158338606543801083413189754523634237743336386499033533883061840529691635520259621073921466458994269153004860432766268400949292193426746973663811838302166749010534435237706769983614470250353188745174125047838278237434717005266103840691531129833426318873146310990929117710071138144452381740092750603753167002662211051701408826278006398247564757160428822819029791440572048853066144581548108373773029804424752667594960079197494000503418493820030709654370068932421642490744459684537637859206735209330686912417513572119757512983297463166144310786587594049265622875920537551533347910136924672138242877657857064811387326571842884290483222469377082113427218148827824056120697093454607361179322707617168590081803709627358697470885451720260789775940437999050854741350126484719416431878987670051179944493135129701187699399214951421480556951633471166676811815901904386747831592268997355268920998527111282758655707854293058224401268744876404373309134984943253506343777461471511865543727617346242705882553655575683794728766811589722905769556630041303440311760569470332107655583626620148997059958363463069539446415454181497609211498778100131415328947120862276866084154871275445402558668582186179952587356594974508062730739227846992714048701068952140331979042344858284583990521419619406521689303608971476052879754752732655341218081057135118064615290676770343276111022315798100149289907888602843919523636665949354979781425929570475250707091835485239292545619373119779959888553220196244079980831079959103281546203155097300596012710484042531627581796830650480601242117290869090420878035650671089400290134562978403727731821555479101659969106851377186537897454151885172895878056446836681747380807384320038249679826312897248371026092158268978834909782195634911591150171871427850804572724271695306757550411876407811437254184667313563656560764517363344508648233458725567849742357931931538789216182074255342576373586200944274605700016331033595332331745464525010522712178390004715221770807151232954800485067987889209215612623241788917288152387528511244432116476962433013466476935514382913235144049211731257532819755642226527471906005697853890737197094160164974281584903377590916207312024330873369333289917456583677942927703289217754272456431033338941653532187315903776348368465455819169255865181637959182640317695471165036369951411926475580893569870232731478390567900424332598875883452806211942875520439183120233463910398031134437163755919663238936677549300026630081094948350140330187641372599818833078917818946673294795496041738384401328994475556610239131498749247586907516207867257656714666047002189940249190492837243614114600000520738953907847623740110135547889772498526510050847572382656696572581013223425766683876979360768278550941433230155234181332552542625475263971872306875901196484514439562631178613819769757308488092280205231516234448382810850303642591916532340471982533965069890623889333658474320325081036084467936627095013317495560970138067376836585606317751429681155049115676397099692249346986127321987940803116881762065242276191979997641078690083911266081547249345444461114043659801344997378527321755517629986648531396620261495951770466699325482694844896822993387094032438134778925281353102237759891816898522989210578251760446594864452279576493139879504981430943250675273506656483715506049817752303416613523780754323781562630694821667292977187978008584269916108833373197154729211307217129641021775131608369272884533308228266618580566976890614705413386421886723803645784141868643578658441726163324964087644291718467323338595851574121234520814514688506344408896326004925068573373670304511416470929648738954054139027238378524039458918802698631432698370054123276859177113732166581557736753226305950631517680817810527889944478410628899683803599525547360679013415177398799738104904029244332101387959991855328596719981369402861160995823098751331577526054513692711846482584725447150631102219404867981437602554433028810490353943276032503756732813436975297726501298750198184037553576397768350715214435729864944694191856583775440905880379950467092287758506337083818754707013778292227433831831352591884292489692568771805874755984462171470331909076300933999620830340935703454535625720545001816302289966549937572006415639944950458187554602480880869719641264001025946933686152940896501772377581800066670009945286210447559393626822624222685532717593520586932058349910078748919068623187528398228183855313554169449408466116963595600917727604883455462084510241500524220219858382638311415765120788398138283471984548332276410986990631648205762906890000215402188646254184919407629821166096361727621008380102734561203382150933069387081247347839083369322868355921567196267932686665038679768492387985430404589893774118801139213147779127265713530032820954212758378291654235109561250374943784164438743856402908761789189756382716291714413706201089270297078391498319472800422074031556629025701926859681594206315586900087897870082086424601661333910903315270597759408294372190558062046012184188401170862627582127973228545523481270415950424819438995303621216878161161506434394954661425980396540107807997922885337631936634182288452199266017695640135927143766213426453930866408000515226291546195838457954602941325051496861089421751154163771231870329603242980983258580924826152326537449345681293640624820673822747796694465480007576987908069221362697873123482421778967545295473855386666078876123522210640181562536236214920459746954131068363532819415021471696827606437215059922355275984977897938718108090088857626944200839958597013652832822904411744377145910320106625544990541751694574850435854092769190285015483355767263580988740193479545278818173739857059196516823686770944925505925615264676539194928857317477964264984877318383962867228550771235918420553343662490779699760024479917770741688403904473579560909122371575301468119896201356136499458651247736843650611941920305425351115229292310678900949287673829610977666155696886037341208029044087035012160192245116151826398285758669728222868938786996297935527503197396946433085475659193487132510786729316509456341434284875847597066091458033871174998999642670201073434835042603855672930447758268852099987886420004779201257756573423425075529313418118676567161292193583605282870443833078568138270172935739657540472139152096442966053718833833078620802587835757821469012901149877352175967558035710527694822728881002028101749504593221765271912410544636013699858563497800977822029244571153122273204091891810437430474070467988091392094739905354998384113293380442136533269711601627702520984843278067662475381311685976985109181569270781006185579804404259998275618562368062053353155159192396299368059126524300077613968295293704459891178032041344194608600086866526392743165424767907319936875638952644921105710959264978279719755936924421745914762119827589511295586812668442656673769577205946553914629551841027125145056575596065102586304218044861590185361943723294018955957085082210668880182263932920593194886449289746921158445017165948001350673819402800066736127953639968294520631894211220474151148842511837768854193632043316408193681394043189370325729610226258653556997051839846405987874037552148060551765531918256149997475849665055044693272087325383941498260973368941010114486083675025367887948321356015517943859989852247160979759258903528215173066121876886336429663913638019831680105288579575376949291718307625425474597799889282166875947541017614532287932039534596946060858553328977930702454576522592637015403563802267676884406697261167900935382417328083188325703535456917997747153154238945669355599065823001331494477368011476467486839878845499490106420363744918265603183653983533748655646205904865361177026348196861224339423216705407638581840587173788315694079860944309952289599799188469650809833642339682321463160847903040371303059643532206838053280463204397089756294621874572222841549154388314542410112307611062957652511333680584263676195030924126711131749278822916330034479058548516136798347461649574248692446508608227630135650902478391863678545843518230556459372838772833005070861888739436294891321570886225230201071080840835608640869774299033425587365256079379383382708745203241934975095530908608290759469632629095194408796255779753078045151681077265817304066279396619201100543387566642449311356818476509899058452176015072169782458886843580304263925370490793446834760389703127496137304746622177385033661734484991736016495979697321366892750023000590619270560518490372061211741471498889317121711847536159948399054800337109502616897099755320936077298513831643089679032122316652284219140994564476630814381870581507096055061364625842973045546832720300021055245895444730825180380703440717825199950277893312809484241020017378718814928954023700642002187335088292619260867493939808689671143210102920979312735205972151864064988991572628988426818294537313422513512417440280411628915910058503658613013307153071004456304955698214766202219554283441034605180557556865671025591443622231289549135933437957219110950628142730915688872864330820054285590721150676360443324772113350508062993605641055975511664169140006331821463824891865536567167370198202116648658425486338419624530004154003247227724467930333832484058812478538933720925104070220315448826021413875108255630236837946374080986944234406247002093424809915020154461538950515841975180420289145496326710816603862007896445921389155771037706796969485592440486890955685088385965095017373821209045183649046951060731210972447061053861379583019178112988052800287260323562995681107649385590267637546544586545436340878612967510710529808011084050200575689694137828489314762683608871551504012946864594137475163173861926238280861293814478073500667283096185052663642052841937807134440516547940957558837448335265562748800519928563490192501125851621224096890470174230863948899413399681336410348464116142637349047254081412343375311006890873306065315319188201623442105689983395453375551634349321041504976890950880779683991754283021042984508096005166952245849526288351449282855138629394930588448714485849764756630107484199738314789582107688997117936892326955758334229019600433668433769192702358565732951094796256684320628942444999502417580810168550352161936928554221240683162389479774162732859105405636990728250382958910567443843292187879241145258889994978008777808420460163775367735138287969865415467667764170352939691705627894243086691475683422563609560114391637143070164974527900696428163449140317579744848887783563839811711155252853477659442910716212386248768094526700124132782429291057099721906111242264945668580574237454668191479212716282678553893940362858932151282750560878388881227224356808559129996246624048460406156871066648791916549093473603916909881360453657202191118832996993546088884834596786116346011977379359911110760099209637363493780441999095643154734270225120249581626493680458705502139386424794861469426711304156920250572378380352433777848172019772166993742958374716268399878544794081396850013038001427449107839674522172386737174784646420192638134562409270129355038875946314036020214254242047663871025114657846921755251089202201202011279569081712042889189950125121030969224742880386871447625199799881212228165128260963401992554057180457310524652202656715135933300899486181126662565974949801842671366016051648667239631295612890496833901918541434024193184749163533338164524869706640975573739503009210046275965577868253696383519009470046727348453535227862172514817855747171707531588526685390669717910262323084195890452119067734401408946398092480012429489603797794071260281230724828249390757171575298997554575509673405387494981611085347827700224096221890407716241525297263613839586991072928342854054436934633169890572647245439582456934784087818537067981028445524955455981321764090066159360935695660832542960095227845926383933927023965273979226591971285102209223602204307847229608778651961755287438076284280107737643039453449502142707563064776876620828485718221815304272497980990328296598248418341457807635867578988883034001994087315152105665006002399476642526957794762454885974527555341590145033815098428747171546795718739003841423125780084634624202714327529724664701513180327677953555150989261746741873285065681044905327444558957682926462263385235832988325556936657246097840953148113311791717211764487753256495964240358545929400073449647368034594248360156470054128054011546123891097946671374200731604748387441066996786510928722149820757872668128649513673493964582844254843318703285218200013569404423754022255914198706702229553996947519774099533271838662071497150634937913681294502731746897182918914691908183412538233124850412845385389449722933899427115868133881159799158895902918340126731414596743175700774286962785125974957339078172913229156032431888017314700617527700992113211939247781435675544917828877243786183208176463614728342192882679537564185795668028941136966120988291686702076678554478309041450662216951261993201333585878650613073718252221905915469527239485377960026980470523983891922164021030173522695788834861856128386473636817417090203087362108204006530263026419342945260197870665759346523505912581013631409004036390689240670746021395062603044215560740559531806959585585613623117065723605775992893068945495634734257024449718541200711744840065024939547927452373079156064447409046180808296721725773066387201231369597058132610237403781052757526349438383397488093496929580517596833833762584337039728565303928897146734005633375717864750323142397949781403202699838791473555052557509367040471058080494654003994815544632157866781980722429578851321911868967566372536241306180352778667321635926127479466217629262906217460592732645867314391289855044549169427440899986348441027945291042662065124449722151156414003510319682524541682786563492210302267715599348357262671121595727283773583652679178212884616475437946923357554798437268171325179813469737206124049839843375907350877157989927649215525434666365619429132127337926320526627595774031731320590595622927557646542618706446206923581402997603356931176203417440549428048361433814739498592305622255721180710350978476938698895241385425934944350058757475193271023467317033391091151160530976743805649655395565056648550776793315168162552686066550696106338025945014879636945036355721619707531251531179080372542102402418456798689282345416129496757434502200370252085642101163771422368403561944970428090945316245893391270612685743838700928447240136343401888576380956203928400868191198403101060828384163368670721566878244755026391067422610121300823527785441199608279805087643895063949193485440087137422271788635213975292807319718885952701077840561118767001322528938473568139708997616971486647707686346466132027956726215430166809972527430908404682666459182603485696657863972268776655889878481366274772757414631879964637993707813699071026423238752836199570997825054814607413459432784188969349877483248042954684227063656989696502068423347783514187716975546941547838493845192755728606574286817464644805461493406195698454068576475608824408997310967833671847769493033224335515229732869230587346824432385369482762102191265101633780385531887504989173958149830917713283934193264401166179838809746777766473161698468871865138323077380204832717251755820808400874002323988913897742024456529789067402360750080417380732473485098166043222161293415658164183977530267048818832765637151910269000345932631156405283039998511902294267008169625022277554489457042201385912425157863978106587962743413269941327524486669748777672378609915557568626292115476651319795173473805130613906428511490250387663849065018482178805360684545784565852348963306570363571604455189965006522297781038883378876974033108901357979335646767892046865136794115539724582573403635353040777474836169474126336883131841554802191442259776485785069308500385797783760247538562933017580407068079373441522462308538464551680136521117725127981021932899228215128147422331590285973957777328404979396193950494371486067083920109026100201715624929732813743055166995183274767542167492420396266899478007570811553732686108989467656754527968914301889601041006108938938363398942142021047927452130916590519317198267756677951780707428105356095882493163792704866479229181328790074837883623089538200203912374174066364269429355307930436867226171025480738906604081707589013487541109744014261968335278260800210197126161391091092900463299356263368353478854217932193618648797774187504205499831344319917176820276352410292474794532637670270014130312597766307091709309728871551274994729556068123463604527085253730842227961720024810377151480448629632381058894923133207900600042538870349581987547151419659070274369019955026030543772911093145938977707150664122421552749487575283695003836288643443543813507327790786170538206587316638553334579099144573778566966473078723534346842569396593156576433370780655927926681210356743997515370392875920348961986684789737155499059838308000464591475090195338512080938815683182209521621574883836078065435663677537235021226326583200347995258925318658579342346577423824043698872222462328765440685843909373114104728222447763747460797744997007900260743532086938644972516868139597395778689055784236909444378560862032978258523456747811509954285274989990498268565975996737031245166114258920769329857311948394830412436018042889637116787111972374050313561179702335482124641207263837412098871479935524371053256763844782075932888661219536301403962530016586639734951004093159652231416695594832285455534207356597561288403795039674069631459647849014610504593205482680627358177320597612389183291691953464634749676495534399282494944882801642497171259557722926673335296426053083349265904809035699043461281720218633031857145691546757991234844411052143419516679876858470856834420831097751251991634579455901783299366889179895498526556540304634045302409431229470950684883571026256394440544848260373542588401879986499966432561816432497679503562383602149555766049132983397916546654392619632624942297010841249190716707297446944414018349503755294824878826589267082342803897525924117968815519386200735030763110412411739666188472997195044666909544167834085843588639743350866067243948696358194960454754100568112052702482692691124022903022326077328061606594988061625598610159533177812800865897719484552806478260484922960236746804561225099068943975894404538773955228976960635239113939438386753869047880435796778849604588761954100436710661620267235298165894287318125099687199594565318311837686922441990038245072765197348580950040815389903520140164510299494709603762325674788635312192517463285804582668284669313985612036283836486369202290193216299488790085001908706122561618176020961132428817762196893591797057453386720888462307246539462741410141687318938435672314142761135101669083591788603392582273562705026687372986108624372605399745957332320870486389933325957963337468006965413368921725147002385793593086101238587245111696654247624745627001501858266111987821273573017899152845982329060446414120834085313131175040334580533540273182078944180841655041093704453752353932858722584920918436698153304500241413134997533682315756120415237313519544425198537649712065108249419717836712884164256068159266403370870019361638023751850427332814142027402651378050540750750939770485212964555847672241259272976411635065746368970039627303674713159443050309043695385904985288553271737856088529708305784527025562138862096676889660124870220042397330834141151499895681623995579772846678778055246968007007993306908061098443442655321876858642470659211703201678708515290300505732864842635153809366246095110835580191495202780265368279764806029456000021548663964600509340669767321854094752615449654604073106057609439312528768079196197640939566649724463618672172484781594791762257791206378341161664630234825944064625583643470008047914141647768146596910855745422450464364627404329733980363932041406968009405263968823501035895776948959220056535009063051403822986810803199031464315107112169820045503522365348977049584634262104023703143624395674163925011838720951712541220332182931279605762814284915770166329169223992299570974347548211064146539477596461134884674521423315910807267667425355849601436406316207002954774968886227076989231287230873439120884856478883485319707045763538571048261053896929591882569205501662003989124360733451882404443061578315909210074857831374567277054233076477037590748586859461415957117924442586997223449628397225203102031861578040006492497374115829369064161262161521421052608692300442082306522377061419126905376107229676921622913478939035030509698800879446407745576634637716644050520590761034173599391290816551330565863366847151605391788355405204753191578198528867250806417725716860974070257565704446533165727970030557525994659475172635615659250318115495318696652766599042464911578287084358312048931983448288443174968427853536097161691781568373479687597872965675033624291107046643884530067428547655776370633025834406028555434285782658459252381911201289569711162456367304825090774170313241036668744736094255646976319723374038563521624306317709924232094014378351439216323023582917847892054467363961206037971068337764028597781095497825721619038708376583448667221150257414417746646657219880515962812210672228739327079778079193363622242169042731871895066249235591304145605607623075108265168705067809362331488777846774878271168794254165385546368402804291785493494570683144081168816434283228127666245719060797783995427813915840938701987891099223332365527153942275432283194408065603259637298330748690334503824162764792072823891827478585296377247205184336651951508149868600114384348364150789040953108707671138870673673776903860775169773182520619654455920190837441531614459215723251481150397908584020456786400811730419484050639901166583336730480824180985601168187304842045140054797890975516919818657055156983534188600001830121850452120857946610645571735359065287165736905430547130174761899788352803020865424786169313636850732028893115572675632131190283650885151785703108761047136758925861430593100376565892380506798278024879769821335541520685255227846415753406634066868515978963981897432856548275960861665132445876724445424136934400241137503364025482148191656984274636562383895830266024356799343957327354618919805042385521526189469551392663576769581372785926834447198757483834038139622856561956745751898146600891108720560010202209650920034613072831517924727852241111640709706794484843519576359836096817835063876511783711118736280474197340965229708623246648742651734537593392425882365195134111991028786317745124074007733953118855185775262014695213345722390631156012255499808780171787090708664689557202177793954122970166548354536631461781134192164417931351097494428903899084796436701334659553149261663317852039501236141143187070825003750562025402823498574746218240643529686811107638580675787838943727557045906117738077620717248971482786958653853700465283677117090782459775870965714910686122307858048132107555504302534222454434158382259921220865378276831627279853768252738526193988842131809899475321205196806000011186466093450593945461888594681263092908508050294500986080871932121612036294021798399099620807079481746355248308730512351312778730690259908244019088679820113577614389083167624838142572866628738938914153421275883254365064507588918393233036087400779463299914701492770574921148595505555973268298682376143178657669007391040093270332045099866581788876067723212124918739809326582218659008168811842473699225873297390795836515223587498043522087185396984898133625597348175265108682904927260255154059124885160180652945241133804291821706432368314702175667440514505276922105001691238658242433111304013211219095176238344176495899916296680698858100114556786197636170235434111649715577718731128133950850483457697167447907441855956715414519452014020369951682979368985716346718701503425153862623281398347238171219675146044110959698060683014513077701409318791118574120877187991919951421115086308244303274233627792656751918602822315275406774188854736255736299980763072373091397762862224546759315087473466006804028618533215579990660626071777892051765679176918753966686952119380738602362457536500221393264638275399887551661849276028709216276682341401457201123022287436704530029012037069253020947737559152544111084675567949955914165613808055749031609383327564687454326622904037635668183150558246910968125000786636211446807825640331725890783017750271360362615823929825654021005152916220381193852677309818575847008707292553217966393238251919788913510401522224459057025538950961799700695923679512350859608080072297918887523381126540572482043040221093512413302322563516746893013727315876672608354122189887615067365612865001362214659578873506497893591021588395878082901079325768606105008350241718420061489738662647049966424652108087050746882353871742195713478744843945392587985503161827736631012904927078904642459976677949762769388430295129594442161776589412014262165151802992175588068898611413315977993621070397834058633146042493950950340364125736860639733099365367312930917321037211011548286122171021657064072651795192829664755969385672085396923492047428535234825165108430381886766164149097553942541059316720019424319979424114458072688572759771129449702973917997631174314071849049335027315638787556693108128231006643035934350180909786162529420065580840507835914154724418878097050370308325901100058091706336535411885665710866138044050480312245429111633063825494310029528166698629808820590455454518118857151483897591933427363265944609300355823855363047037644709469565338813237645289759907272851296848833474759272395848730169878541628231143229228941513711637795415937264345767351799513175140724234904889230842825240396145571422756903593560657200258595717914010615312051213084873735833030185535275304893787204615169979455339395709357279257061560675240415370190782034086946416855634520659799514874049135662137122818844516395614207923786608655838090563127391026453517381149772696090662991720367241368730623602373593575923512293213017256145292315664637929449418357305110078137780256021694136552089011845860526173921864806948441918222545976719481896535931463027817566131236782144676535410606081410287730115972458423034845924678971350960876326539846889317391147162401820796987574352259909995356917041036199233423026815814540774225715911892842749834513528815966169867291994108449000932135802892163510706522746383738745797125749900655540221065651570921771291670994081910705228170472247682076740456881027111758294894160199628149854228925125908557758114740101639626008381191665835935864455095925590255104380704920187447761123078854528083711194146967732772846658051852317832939569246620173708991905619779003570350177362714733199529216169120250884017740455498002999867601096861874361460323604202324016108898389842219728368113909767135341295075431993078257158206955983263960104777570428307482304234222391671010760551808745605698463208550716723036383331350734942007413802600578842978965122917479158534999100012009379894626420781160348408811502716099967039444821558648717253798223095599288851897198715710500453144077462115490033647686215359800007522240146111348175004919106657387646329964708011360369381309326791288447011595789005802371156421358226408074406604895309882024587874829316754481262758002466587539897485879906670661307892605468874703359627309420773696860676918498082106943829024711903146691732147067276983294593710519324875039131626435825097812576192466862065725806410865034920295752588244828825322509198804297772177071528997322742173413814168328278975007947667484225614553822327936735018022736255643916519317360066301302665752886746494192103394878412928373293211124028360020760475877467376786518632177702955161946940970475793236930020663534537982370974841699247684015005775650060863326665067796278040690722392127394169072274218673748319240941500799926912035841795571156723121860457846787927080409008728187485235057716695220960072028415111215959286171545427491951520378781228360245504146584968564204105420725471894482155637892977905723143871631393140779782168021758132479201560475009309221021933518280310576177422855946593027215575403280427746432957282989873955271544143343132207503860132877150630298627410728924792117872841285459796985732641221403643861964372417014823040500702815236102847041022991477042335075296146791820956469442809824927000828525305117968607058003110748262543036546516551465303142041355774272239612349961822649714180737041266897675684122447354403301811122542346270596760602178901697450510673292501250417086433292833217975175999530188409825502992796971303479206826230281321806014587565515855287163459575173941091121160078799274300809349543717275213705453707917701782634073119337181045257030096939979316585075795829729589168138276976843386428534476116792058401642226772575019619391036251463227827587725082836154522748013168572372120092075048023441242878766689807080914357676034771887939340025090384784107042747603891514957682499265722432806496864570259412907449835522270977415027711046270236556134107776679952278747450417995058646714818598944550798405444825375023798119146878925667513361514966645138218493741016206925915074475103165638345610046056984500512783611982346006154911858309649029323993888524110432959282603101482469018958923861085039285897782701687248335913231165471430273419325200058409811593788392447793431080160034914037044119283938277809036126491245116136747717014904010028826057254674779276568552678443748430942006860862327752270788563337719713930269371912672258887033175579237277736307600061504643064915042508701973267813461316985471548005824155217699329939436138004055764615430212432932818432940927018862557917284479686197466307791128985073406310797917871405377616450170551942720534415373903736690397405790139470309628011545425011925410511888076953885386330658643091719374289662144613006525067589451082709186074037364122198084798010527349956168470070495369080133460277040852013130995277350613260637224770629021555673751761200725294494290548094902131276240376376478264764413241381489172869211508124433566918394361369513660437634535207874800125727165212924159426724570024620644817354681694764608936610555038885220628067374277280108427329662951974103073034860491615495478517171281229071126784981665053561885806970419123323248194182058973429514887253539205526721406604498924059825565821634237229865007634922924441426490292106563735945873522759576603894285629393442570935176708262464082651304876848275319308135349899360305779740587128607511626337838816103246247306044190282502958871562161809074279015464010563931536473575075735724090362194592884055837329161585286528696409877994219985101524811044015373078004727080836087942300299508552963910102143029680882967416492496023073502307531351283622480588928800683909385446396782924329906339764770682433083634618935903691884061270571044666345698540192665706599819974595938427452572622733105194585367266840341520122381895311109310209331288934698879312580029676046683453182098216573546707600990694151623968013370432891178118827450040000838165743867217338264964151883586856073476800805072151049435566508471367565384308365653693770427123688518581848378050103076320655191258621557176278463636303605937906900768726909151224392821838581397571957755527346432107577759668969691520501822749479875720894694878380253985979582921112170297692053848583344611555288782183975569333980578307235237907117732138110006966627003878811121399666803176342662392465632770245166362330113901604460018959984532414923605697648142819217301904853897315390065396383454705411920404356070182483382170993945461141079528284699277949550360996615063644616863653156841548624258263303303644111059256372505024552129835893361511986815730973475951966954443451738312180963583861006365397514789172083365343864924393034989164978931604119413284127698254833426187334502186463274163613668293307088406419660056119381486529757813775766686472206889538395309905861250263854780532882789212607496892487151759954313922482154274391878685033065126969037900772553547560666368869335101676953289404349481077769703329945195452765307527041764049695972847390951776178921728799406023956526788703496785169473816944086680892978738579199027632628690223756814196731217214780069236019810461558700224807484137150988470501179598196478774817802376236931482461237085424466700282896638307283462388464403864852619699385400540760463264498110130570182458666309651118317517221690454843838949260503625216812564477688367038314706193614866924739174887010526532528016472644097294651796385871877018303609424835037833251476609457863370758062742464374944255492713764263544929885375463154504544996582971621440671228951052386582684683966969361301675706341281249275017123620598655642890949796203231787632201680163977292690070540649210330138372991107979169382827863734646325901276461387069411648115616019258903504469359335002514061885546699319371642369799866895278702605374319697768602616217731127143132014122387898148967015819727788425314437707963002858166178121968637144343719728299026430565826804073711735921952522032768922781934652736843198491069146125370374477606844522567876756282860384685379813840908802187568635087022701234867562047380626779282241860391056219650760703443477085899109573358380184168024399258751151168307678384202710421926199364269462591990298878828068741025516349250287577371351749312777288184637970434173789396331027694794320526680060847450791118088537644604782202231343414529152834144981798149569555519836153480084160218877999895017407932716347524017336385173864619014363712888697791274208816012581388659350095932858620323922433407370084655513271690500141539445560928447360276884676254673499359300729293683667314296631219270997675406997465303283861541236934833297428300344816465148197243169635585658155605580014653489360327621651498708309745324764124280301103665340457201050053366830304136136042813290168174238279265109307038009645889865280986060734603385586442291511206111295089130700773240567354571485100190367453999468059014959391604838057110168817367232895537879459234767062876947676034915307408406612489584436185453275300953117973707634250963985159000026404864524028071188090210281382938586402626481115577237709985144426283552095294027653081582131894468877302100435002487449513298234708310253363415882258266668284762932397435294928878142779747365572440617692699347180717656986865800746674928550147284626866227498418333404980533690421636833652337902531001545422928979022893253864489945146947760492477322702349073497525375800841567704962724741609122143221951799454501647073012243314959633019323465870177296706696513544823518876667142779820902382508007120324641398811830000333724196594350784971580703968383256420502957593478730975996199680874111422741069635493591672257490282086025311411737822136686315859742961776668081364325649262438365842701707569326354393969493026999600457336258020786744645614218354664369608668587049271358798668066425544140793323958671063063945902438200318856255950280853560597940499047851445654231371825986259182465729435548692627577068744164764824338223249980792569346923830349236562922212977386742270950671557728104488097656848940550059592080602756791004636486464479532538124498851215298761980442146587021443763684816803891817861347107088302976088170098395883295186717010686614793797252126230949105173027688222341817441883922714747534535549277722479265710755030275732679603428500681001452980834581652027936428930428085557676345189186804612892435357711301526893719733340727407999734297331773696382725093652744191907987599262536519612030977444836799122048136715146725471947157009995294766159161177169345406669697894824620692136052665080313265544188989542370336967834203109058195786417856587342733394657235676114542768870483609764749992463996189159727535999245321521406580569920964210492015354268161321323171584570242800915855472718060634713063859079263763749830811290315120354662585385533113537199474377843572751921439462292270975782196676315413643281069617457448817042658439719778908714492676180623350624725763692661838174272166375772823130467504768126715175884574289834854675830677426312258754372873503337237416240943513118808350887658097469088116642023930346204075488109612557440118391151886320842495962804650855554428122492645191631124929582831074574852907639332867522646578504528301469939392149855851477713564133689842079823542097386724086047427584559178195818172151895913979639277208193695518560201222209616338176478979158103281482238068143652753252632836433487531613867778889465339083126614857541577328972811452686304352396369019699974007879848654893989913925946933092648045912448824013212447361552442537830249566297157935219043179989112684405111043700464208103742676415865694975678807597970753373904932998280284180062176026815177124868219195973754254955909353267160044428752060052771467673574882902134282057137495922851573966127608231165666465506514948342089008987688106330110222444948892797866526178994514416143830612454309342614731812906446645462658097673785189106139366268731903908659323397009863408674768509623133498375094430655998924012862354979075080994635131515582626830097350518398161583631629883262270898150797608550245912593213752103440237131529294600370355300150562853994288160599227748439105134192461893770379695280810850763842707873064372182818853967653379899488726905738282652446850758928574563683130638788490988190759886768654869164528106560583728593501263413783378288324462291574935788388294534342153046532516587521592677683606197268719616287345083700341603282952878062220828708426672573271841929712904550762335933383079321237867341270242944778751220994701441133755773443208206988035434895616779250566031081550698448819486198404885487303133720706457167880700385609610087072845036044637604729507549269272189222400369194380001385135924768688591811423630119476732831296809840996097179865260367643239701884998854038960882664013460601729500574020806122665361528417562595445079672772039340417177261382885032380181239893970022699468860225465049348716356647141981284922712729790976565973148871739170177046619362994052604038682376795081045440938150929839406909241530270554972893077046157509302588041071639111039158120438705530765819618608237830503365352775812357526696884329117060294502869515595319745845571234385114913485351257690729359459649576952301343807380502101926374879548963079366366764441398956518407605957095201138374402384671493928990967649055823080845686322219235268225377545288704386650595196344362869335648270886415486690446199141686874207565031484235548951729030185024186394816491346024172470149410379350468622008003316372148832581224597589602240379680364581973818585584355966390271644841179626292261446680507733720292507330846269151116345803690756489734869772686186805657983069759437777537716732717147805206738503589962244735246522118456943537301628897693545451375843459170002021653739154410907507074338383247306165927157780046589307624109092213284909778809068855388775488398574022566013182130169860689084341388238819635879238328945108033556747632348111278605403599308515610821057753570166900782447294941516217532840357585550393444114539763652941462257564479700920661186065676440202920573914806712945171394099008626007706854608692394348477210159198971137177833338475772257561844442219834043391873071944226457928740533200108038795120433201091934148596333503038480416074740947720628804505726587525140155180647794579574054696284031893258334805983188606759079333010844189675805096385729767928443010165217755446830321299561221762592381773806291846254063030413400075353090924125086438842152637175406387845266966540530738551547260526191155427482300278489570902951977669013385387993159222094898486015017152121710184642405974322135784057797250322381502583272485331796108353684061546388775141083235935790917673017340035571639764733981860856407422591062610161010273701203714811590187317326095352494728792802179304277210267941372191745590937711484057914520806032761024198126341079903793921311744951086181021268230922782132964739089931891396004988037610338226132732641247495691643760303108636726737020542201890139792709780830696223626566418749359658416966486583521045880512519987383248483628491779321630333459188610569046836301769618118028573807423467039357088290270813660298263027334976595518415361705471650125057340502160580525919490212712233042281765717647945443359512982088677709098508697381556656892429486479787161146474092304339511027008518678124264764909160869506860133009101539178507263260650269556499082892587166851501380619410416731189307909090170601046456203325488982667568131022077632753616572021024627660696548321454045356208660566345932744724306393074442532783555222151237792618630047445260980845556391399329410230449785768475772421831014324607858952804459338572429544896726503496044681336167296148417209761024540485990402131101286022971159510571282591521334117563706790496258479670210435793702087065371370957751052689622685350780255047820971950019662802312624108729866007476814148016561670677856883983272705642729792558790369469985329314139855193938295313673436721496900662355627917814050875657823129889565772111765712332290497354652337202410102486401308330496486205461661309754085640733331919972713495827541525889773624452686954604282210417249249393377548602783228465054748862709992133125109960373144300953248809579494327519849228539506076633411636818886936870052163583485055032891343609316043262857265827148370394656061726800286789126454134072404775315999122576678901928698000483064011770105430318411029711439006555387479816370150418209497629191172304584971840226332228102069283132298682576832910356762595686107686068184516556293864799613386863532658903170420056593245805920778548468282704712458623794976139117400217975938672777744559542732985595578746407091538575310262582912798253222397868544784130129490680730463715201526724257318382578783406905039734139785428900096937000377107510632596306992546936626393689652846978742025897686147449709889257961576386296950356835742481971841463350500141674369137132074705018308140406786591037642737440282714333241738196149915150918190005807715748705978851225193838611457773503899802019130063006511556569348028539224446554864192142737517923711899916918507911126352433813767632591354259117665485991851479119628556765876280304482889945049152699200042425408086320179500951236916490171313989091628662709917008917970086003300244459728663339390766477521068913371974155070192969924845110633348358433953006421069407339211369948482600608568363354566503825291958467495090198235724895206581122201322812383860454587995986835651852979562559284535665788459483338738842773840117725685431412010902879244846659335924862671647614405411636967126505767327299837575676744640821653341413147604205783107989976530410158975776968654546667303667360393000484321076314286062888467198290725433255895803083776394746906897544635916948874316163333964295294667485611563731092273456990668919402807091925590444025414383346196178004280560505608689239542111337117930915342987930874580237428330516369364167133871957502375649213162726748012139270919280456131539671484979042471456089699041022940380007346445494120601591878671689615406093323489799948192064925289895811977271971244902088948545813069637703189501019814321833568151754923145341845517019623346845502206721953632660792832021244208111241368380981986175975040490143973834932174857821175253521313853629454056085357195688096378646226628215405750563465836593439371895503427832659688632952496980144158600074258630453448596013530776487932849149528096053755138594516810702018666683870422151899447202991015072694139510464180220144971343552663219854877522380822847941469110697986697438164602693273605246360426113891314102864454767793878634334375512679547695039139703488176318085508646781112414599250956595611341223669839423227875979524724518480530174875972091168856720238316472282638903076304437780962205072811862179724594746284981002770789426221727114157497000475126298025915604490899864039519070602607190521026134041160522052745572091335034092231937846487475400909968961240127324062418974134732115315557039893103858722146098611059181717873918440678371643414620547528231063471974053496981349187335348860796521429633537897231098971320140342089406408034743116813822435143701780830589694099950762365292445777432184743004067086373539204179443757210331900725329679786529279619834512240949533965060266430957266506712540673338630402304143207636987633453011734429570396452455206654497031823518592405477089199879979858360877380567537350050590217757265544493082585452810677221953626408050592863742149796727037457142298344796109746682817902628247693808065853318127126856068798239955361325929155590900887953323852644536232621905095191417561035453005361270824324976139686420949487022972116234283204512029171497545103466167879686867623588683310034582889337323823719584928083532910996405502107115213680576803600608389320104719188759896870816900920162036645301464111930755946188652168791995327748577494285947953984776064502430088316929635810101608606132534539140133149800409008871603814205403204057447006989235649221533344375595093219897038538023985584955753656328312785313735897348365228925371687583873739986468078490828263206926990025290974192459350281286597586200068416809579547828823424316780514674260562769210500686700565606842579777258908342068536148913828160856876557876387392977321643056867403450710713743773806187219153541862533144360208908806818043680605672446845776047672508793058388805319350988389432797351828935768192604952901328891803505536561159555516706495896662885698911696188070894681534803635750367234727143945060109875369769129446180755943724686146291176693590686566229682042271856735116041506823472364016572366716642781947169360653075741190376729609232719652183256834154679189852816938806033937664103522837040681340971594148554444159040455082903211977643838435490742889335880050526274855251758007847908970923594019209140518622056674885453167583585056323334981563865116878940130284784279798310841576770914859843036662589489198467817740642145996402692811206715330134254115448602513370398156916451096718554120345553745715246374196601234641440123391887096827354134201199082249524099316214385926994982473210742599553414381621387405373797060443763301522917760084742777254078526758454895960713730894407513036294100004004539708218277149558192702818578535555120259032696905883152403313004481344619251253549549555518318112845799795352348451579528927101690945261865682851711342131124966497348858664988976531118364678495179388247964298834780961923324433784478152144060073364929206868198122368240388731051635180853519959199918440278248136010327352564600657831969141049956781449207005734026498546996260127861642842563031193273294892434209659629159230558306298111067134643567209087352630091097954178727562097397587524653346869373967079737494523087036599913752846673631009218356601814301362970071825927546854952463498029246361694233647364146050929293483189642679733420542158612866488219500749333075916036895737029743652735857351073213204938670580279935119931764581405309991540279138123081600423790339416666550088404684275849003990225882809339687434164969443381739758634830165815009620892890451725824508420432381024768252948192532960963481935807049771162545410108555263250719763696654960718467041337806942806560982484645186452036528549681658191783130375271562816794313079326154508328317238121811914993105153131911670416999308344115071258978547733773176256478297163486492597404312964775076712380354522908357449041473555952056315427248503370495679344112005873182207370020042460538798752888756974105826662346361162848427517066988541508041189421016177943790607319518399973814825074643938107169046463555879716519789451122938973374642615428061348252554557010826820569301765669949867162897341307372283331151432611207162466287812337541859627377738903795464407954068620874131729785844898781112838261490144770724146683025559063750122219695849331305628782750886417893153875290347029169427707921586554855851444221794672621003277408652874965937123746510709398540033166373054344579360947783380791470326401211010744242900383011590214691569015285052502627190013145639709111529866254465572350597031766221544510115816543285145882855469972166486136851943442177926661831247678246241576180829291222732354133494197445593961414414594145556779148720525401278209473449270784547399224352932185057315728972879388414425009841157058409494729986662389640711664038765946656469903696799134963293760197857643472297539650013777561594601788269653618997513448777591924327596446947414352198936621210367095705851280621012777563402361675693802867534851516893086196025578562026154449243948522389332722836921472298687390571802413268669902201500438820735814805499188484389499240876982234517754610437219726506728162348917330145626037543495781735431267042210877357200512925058470399754722136743282504963708272955377421804136717259187223081312346990505611110231594630863794711464859108455104299547214472819775028939523129363851267127509107501903100643279325801191148030053373492917675094375612316983225700784964643765829977588295158297671596208503801808950079088991761650876406765995593571574504277025683847144559005172742826767765026012515145428774567221475150071685663289200986058410477174405276168623449592487847215886611296681298103708556361618247191248299043791456282653514766951072708142372428385360558170955653038975534799520449118458266309301676201359190665166690523114120236766577592842040379300928674710198031324288366130749291415210470114373556794157954942720134098283287239341104727850851288070820886545035271709118986674030051944270012323145659072351759834668538258488285961976643691292915214394247252242328959834336522936588077984265779735760687930684456979758269158526483444909287860392269216234692858564491867679078468276336742944034303241132338203603621952986641398099931060157051559750409533423284702506035734619182813073386136624106180983090270784421048320992680697928310282579986252031504341999987250371265162356629100394069213622187603150311759121607448997095043809988748583228658188066629459285046594441221313190984844550947587387604766004897273339453880839287852197717724721932942961878832698088690086049435784765502382241061089341557091472322498214838986047829832120205506529269385757379104554745629951707019783591827735499458894231024195531650175587095752415730830130411741640281796924007367284085888881139756250036596617342960777519142284515956339180190742464954080897805860054405197961694088850186986432371502128692576917169494726931687173539105981142645944468789923662893456230114564307170939539052309089785078669162417602723069198499167662497797078643613166207260573263610370915173064199259675538748349187003959414564944226933352328586910477418583584377798448896842637451915105850865583164725939731756305636683814514424482468623718877101733554201797439974721871774876387407958715955583608090022769056755954826519414181493095860147432260768377273555326377910840480710225028592546126773575039855211165727581091990559608539221451229355480624577891772990774492499364230085802744318044122574219057964526649771764801015047022906760376820481465355975511728898041267092610935221363113068264277308677828236155671967409408373132124618597925173779065311690125162279999096059761507765729285776032210518188740844780992752962822274806655793639706604193521347811662201250927872942618873683847388373790426244294093893499506009414168271425729152620953287846265734165309022078555851505033693229113243665412236936859359517724652315033555668602795142078272918502261286829253360831318919657403145884373420651780175350594431397057368877354075254560718172571552809699554812064305912818357165744645442638501104428661521385646092894494375469253116538171032816557258188300118445316308255278574347250462647656896216893268862161945264528536087423937216748460109197030680624349671333369499583236043642586817567045566676959996511021153886482159942226617776136634442756126027860954726429816532108854985696565062073090369061898804732604133519938792651483436395750580529046397776159246197782362895925975272164453558781344998126494118456846587641132379738810574394996944877804066450423257124169446206895119025016723401257466476130353702746704668791741882946890416115812008307687117358062406768066727707107879283105311942023109439745019304960260757581344281144271329249610712429339353154967955191627472269324356970906105558135352493373410510088147856279038969852098212554635739885053872336697095794996192822969407314841241757573688428887073606006546772709492673576086993903048061852719643640631353973324908472536955928476859504722276993040982765411796858803827903361187055715395775509113562791906365557121597133155595010359743794515267048251766861094721081496557232634712262417805534535425271336025368141380141364788819894918282351806413014226898881810756314210822833612097232053387915851651247732372549605567606469028992855611421294223943170141908037542516059735186854480329991778042523500967284302846118638856164120813297158283370291452660415746396249312135253637920173479452693708136239834477147015125957762029273928806021107715051745541846593256396680312899008717573872728682957779447266146941681192571715887364385376595303169662735425526993410960028012436622224333525399660494448126246439398642043628609691043784716216055978089141671030111701964524375094823465341434895943272855975711441870966393378553844718905168488584687915200952431662459184589735278181010275268749782795521023654845548805007471191334566505357710079360635183954446032722956552253658963287340453779920315187743826106819869603364533194382567104074392108265217391592611224305601914897031628414777097305190975263010294520271326531923048479308014168062629640951554444312995332545220746404651853518390583877498179354454604928925661001949302337523711506188255897464483015109121102931602120707943168705062564835951671613108907547906875359913102801450428836451948209642168393101863887644099749171285213863256815685931745605057607314082516222463168306878589669923650886666462124490423921449223520024724494028761452458267452482434118383961370194639352713772943205304218494844015983103665825888503890020273484395777777217314779091522272095393781134622847213952218461638912915617792399626400464088669834199429196810721323974807210838046668633402950415138949195873033739866557424797655706851182078993131121902363020153543943180917907893652733891266371265278928026238050377709849213263601536646820029458296946073390781495279188634166708733780536279209715999039585272181474770780911094336470695236543502922822773509974482583264083794251081419331210310592848007887248375750870910137709303416166658984662561962252643438149598228506888902473158990048060983388277997338953711163412501169555152934040583881445397671115961927484040173805035850569854904121337958440963039366812679263332697367788191132512834978667971050789320650638037327391226691723654560979328024761801240939366603779766307301588473171436632635079534416913669122896809184013082637121474954432376333689347116976854263273556623478468602443877887396347438489839155494892795722772272846459586598805511689555017084952579277462032077393699003439105252687331726541346679652302111234063146159277236957085417574855341168043233989339725766337786011775641761020736242427984727831639588775272837634826094039599207745448331971354093999538550986203501006717409525709255597898722953672570268157659614336621140156122548424410228156897348106699817776291851116906897099353235015649777994955294193481799539484579385080408929395764831883911052447500035793128870368149263759322456940575062336306739594033692987448373336477473319252753028288902871698421937169185093655472250490728308233259043730439707800544671116963593543143028749038918198847439217408581634449492880644829827838922814322305277290891990427245290251045107123891889030394670039269394598103248351908860307912283479561481552357649897093401540404850837766111509919196617800059576444930427130556854043696857330008390251982089449525501538822742735917219095771371615002087255454638565270430121197898905267832503771541571543013535382009352818004988126790454675994551696680441145050709832306720957467061195435051248618718728041734058662147728490636126833341338260211468225023614212450100724309566173437532397040985090204571124819140303801339985830786510957966827987997657104652637627561405145179705264218142205846569089433846875602387759947489710410081166922410334939354988092518298144482990355018899997108135734834077786112529748689558611205660533942804478565258230878429686662489259118674339047025603708050366643943240716783861262424461162303145600432006223087129220479722821561291792859092366497618695267032509826567644613545166740494719368944869727140110030407577896308438918768252590655824729692320069374645948514166378404436521559261673379089528429592643538398672017660491294504170965950612139261500068082441185830832890496108747261723761210592911943565948379978851632496553697593326118588291656165224832684679564725385578974824800371531974940808342184686002118108085309575061214099419920536819723092493714017159761417453053620756217962472162750431456507089228098867083640924838372764324586865429257201168221196136515226180809544819400169777052133352051537833265467308962499867518715536323497383633276998859032801003175380981280030046377410789392800216661536186472523294674420485214897115856014463817241721417721754814386927688332801715506869403645040035206726519158505676566846807071640338736151108965505300019690485602722083079284382384535199937861078223936028565251294398620817527745415748273245163539811495862440200491857973831911202663062821304752100861849467805119478288009642874947064455142756509267734071419440639459899728121867472015459934538767774669309122967598914152649141755318045294924340209027892116730603106944654939486921122647204595557262405779919637495719383052109288446526168774804435003631402561711158879762842558664317482415453393644303884816966575083987951058963880078692259641456111399732763336924343819546926635275235024156884918235869314974204379676937462200395043945837845419951069777393697185781514847330344375437653039453640506562664885569895461858956715375044128036442477004905794792559306065049440233310341056443973771410908142970157150547140034903037189074554932469747141749681467521674038793880210624494643269441332016454620158918091586361244520860272295866750210313351605586504753535651105179234972640934438276137925077693407034325363169610570565476243978798436486143378211158773319015333761432803071747505434442978311831982500621894734547227323488036604739243021745471998917196335897489177935758396846070441940063514505143457562915299001608738792381293327103444465144979264328407933141214504636701934963864494071470002387085711380629765757851404851242384272560835642864344713806052609568799546194839368349237548125751511714868488116886951209945036959195510759250456613244328920281479321859306075642837653825593575893374288620178825984120510879346650195173556255032476789539148860681500003955284763331259184108556071648010716004122857828053398339611912253097753909125344691837185838632826752805112493837667391559248552518910597853645545298484254759294692167519678583925105278389565017918756555656972292866412196532238162730542545068267660453572507920603729363050404748783206076905145516330237265693651975484632432903267283314175016483933495760395687451220991560770651871501758101477293957930869147901036228315468149472322345810962284376623969915468979911093932825302032088372928994057651732260016301894627761564275385620767710961050656701073776353035937107882823882297105582283456802752322625787700005265705617186276757568822147923208090571002702768014643420995972177289523146660859106194873158250065265407633217943569577999629228045930301281033099860502650015745254557262254117171584860377226176140690342949815756554989364931447915247615366125187356118755273083516775817388191375526085531314241857141953805124442013094951957170682420120261246851232130228760369237913838246161433943777240773810046459795826193970209607205724163844443448404220761877872405967237074514020201151721625072048461780884486749239990884327207435148948204855265492464046033680593675390774294181456119456560541237169828040722048997623605274722483283357044831594276546177764726361644455379070116965450159285230668991036176449561184467735832015463827321083921756980849898723183234206171933651632219534546731734595046936795429352525446587329073932355559671188515303632413062474467406732059799267286944079853929891404400666108755650536032508790425037730586631448089818410651375229434808060956840136927728329096285853259101900478625514070745331609435612085909854978822403997806169062596664256968827227945587215099471008860648215421603120364031818389672635586734030516450169022789152011887403283309548397100772181981016344951311502600320223606152579964983070345895729795625524902050526436198993043204554339717501483541481811451491973779684566237190184413020430765920316549747559322590495935087192158900953820720917418548447909424038640598964573485738982355811900576193823310164953618574943685243986858975065624719344353457894402751889612616385514678984429985397564529504697900281750067548609312474489238032375024508133778804353647443326198374131297410088516994269693801058513485403264171986463965400687497592097949706709036874721399552596007467255042531949665677915382746580356696532544536063545966212222408066746499917788058070347742430096888260493595353742656132607462701238815400431393338960541029995878974701172552270656065029290474028918292421570300751858760456062135607874571701857385438480036279222928431702699774812470824438255092437422444745540692413785858930593932725125229473595079262426172936530065031908613631437886051324260927763419594765871603720651845865911394273729851964941822072638924392514067114948495287708937526255807660349171288824004514491219146309238166792311938480973538414827130600136135078152940766718788130513962710950531128974670059497882957615211288247446194906777454507169273436698866364568750606264706056175239345472250643373541393240525176326994274420881794366136437142546065655033908279146208772749288113113415067052414302203379682232064844067398788425691541985773419660226503439129005369865680852229259484851406632098578121318836565578182770036315555248960797294578844208059416018023238678080584973744867733768380062016042168207755184445292443695562497928711029890747794518629146263698557405022674946103687452990683008256857010759358800619523576623036756111274400913943899692929317718178314578397136539828463849783901864886118513068221165564179481631844390233432533317262719034978349788164744662914713919358947003906403637408779077216081211738389328861880077714854638695410696619224413093376909268602214305682713007508035222724677156564387289579895961786479473435311577971848612681804849879309979347868717696546116389076446226569371790736659441560758404512014885076900064455345015939377655036476129389335763654813508617108624029937039033551658364163110789373581146975548156043444853957636832864975908171441620126785657482945652527487376835422799005366340407825800177022284831096397835133450425338490987774099296640517927116456090010904644217383282525883807364915597925909064607662483293989020062091510305107228189125802966819155605865452393951674443906569395361553365459841362776848340196423549004631978995449019107045866245851065739379603355432275467748332847444258283589194628250794432507310059505756590522474097475113729855115966136921141177261295490153202948418591140531480754159257063713026205676497815490855011022927517738009649306728918931390481305065794618473871850797697626842787606659779675067336894459184033673350170727976271451441268959950272086854738729722474831939513371988074565255037920737240282682104147344959788614947485805042184367073101507567518227921226412320396679680203771514827781752514942887855673155686999566373287775745906711776741274171759025104781928732090026427317501791125577421375515901663649076534733378997932129227618868729449353614088547814369087171307026773425681675616626151674419152741483314669430827516117862226470722299787154016641608764574395306708773938376402393333019657412952303649730695511839160731451826526547488186268526041826194851436943674832136331818954819752918337213047317475701014334783034314225853785802608042716825642343851059868333599862608702400282592674767324696947572208315462390006863154408202245422124812496181572081458703048760035987505315164602888006902226272111751436148024496428457269091741355045566739717543165120375902855586374014457630897466331236982238378514169165539415198046818579923120014493685585130221592897386500622698084702606425345596461770177685363462885161179887736550115672947800155007723600624719040141196562420446317585419145192576323797781600726329630025418264544529745378950639135417704561739036956698840933098960786184999468065546694297344028655955255825979406571076004460452479101147695724383517583069315592396661982617943836625007441457309003135576610745632941218943783116076935834992990260581729483921589444386954687838811035307950246698114283523344922046411573009135894241311947774605066672477767351523780692797369779751713595129134922233161802211744097236258040157554517975298663844645282780173977065916937118275562237318263985604861177118638847699776307052629544617735656369234098933844250882312666534405869986515132973073475415291317893793108711423906302059641342653899118903995929378194611723572978078365051240309370860776102183112389388695443122904691020697192129866596289965407083744627198839770991186724091624774390267361864941230529436056076933690099000236578131139850683644761473702322348877895848570654908612718573406848302596637933590095416806023040117110623135739238735359248111720847688103170245813143180080884764194245216128661729017696924250588764062437958903948141379700378028628988675851600707611971754073987490816519207973779173046523718049872766690299702013195950911107571169710891808644239596625183476368251609678025954253590221236476498484001748375518030374525249983464726852294501978494172634832461410712331983625471731181944955863489436640394676552704788512818733005615488466897275999736293281001661343722707920955244968438011878399732890200344525950082342565777743216176588365688556846187612030192725230475928193317531787889011213928633763410970113958267592001478948874603969844164389870708090347771745291700699264476817475668262783436077486478317326663194163287478172720281097464948525813590195923738751069172993945428367922142789890519288666551129510797048305124198382562299604556707848585903333844206443627299815111640628017840268280858733972698716685500214469196170935978781727948316815782636957743776931979077527018832832483601704554426859004314443474650863602500444887802950381252616711299152470004758861639176789328365110345153414309693492115150756948385814356871154490130769616092922734336154859644058000669322346969801351789413164434189939322550673543858621884389137178636688579007592404415025278791575967713287249936296209316666165427759706947366136010556687840714688750725458094861679986380540307810497189183252031518710003967732489011623748493783046038439548480290948584472804604772765831715814469047457148894848381330889395938080146217405332387558338755420600293948259532044607756225821108893538488849785807237492506944862981732421588570586272144913704197342435466929914126459803102795232508477226329362052521322817847552425736360530256027852259171101427422135177382583134791624694922838136616033007754734733647153448157760059334039147854457887745989348062675326470131122458307558970045464021137149040336037958056289322255336106235630588989424795464895088700796338146120819602327413944308899204112000574991216445586261600873040507367203023589861235872678687844891812955470182049574756389754482952675384800915972422075385638395431703968489096473101433003194851027012996709225776087638050153139483330819579630058012784549944219790714373068837018339333751638478988878075261141824237344425355075836556918712450888845138938292457378479291539365650412946259707985247794039772636101652227298464109570750545975004013173341440008791930381775409399989994752657951989746335001582928555132114315891583834977361500078841477362567607124466692453463184248472032811613892798227858485941718135299577954948680356751284103479078475888775447151723392273486044021701001056882017145007873588707541242758246842339917491529552264866226236446223328524625116596906948036563443380781642260165010839608080919519190721840649486355053545870827537923335387001226851753885839428007847705815291669464405337170231513123833823342477193680282785329569203642260364617894828087281860509322552968358377238113398528089777552125672886997211919517744519919075693580557885418873112912923273992113868272649580557317758877926255145754216284395516976625729264911281436449432839902239031963275430955618400990495346464689440136811427742671699863349706187337632303926909571515529777501146750628158512661077690438187447299444226775326668426983458333074760496107422445850466272736043653182159181464723573638244409498536755390973041255448644513337734945095075691297756102399689343568757613396857403963920630280845950086047467888362553444376304569261967443308716778048847902752714364479121514780481963173630768872076532043173263120696859829616037351764119894811553484741672240120833470760942848306323438974993013293871737268456591245625135535561743142774997004365530714092852556690897542135684867574582482091865039877618993268183190798084120897056837434449460935334080443049444977901011672880184737241622134990351850807078212212336605418146275875869206483611778872530556999418240820497738036272089334110894941682782005132248052389946286470435297750703970015321982169795968206523187230885804081257671278887802802249266986795172801196960137550587082746486657331604507420884586596617295246500900701082895056471128862458805415289662579868318372587103458971745793385699637180721226797990173295285430133152525552226725849853938046989904656906650332401301517306870884684726691808856577880507332782961189952706872603346029620459201399918592098541516262867543825559775156638812015067696295326366531624146652952966878064633010648358768327841417805849405019245303622827817838062777035247129560242468378710485723917413900677857280802812260983091184845469213760067688074411986447851791038269195350143728805671309140012969597350249054013609290041011558025047733905700179554765563934161376887925443612689434614647776891407961518066887889973954550983054903132695932992311211170566570994894977884323371941412824989146450230799697882132083610600886550234488987286813083559966986359375089369096850123015087835277856209275711510628230836848070412105377315850655417295879746085166718722560760004918864034372776819828455719283734848902271319151240435231649037294100876829475410024470814411122458587617870579208594719247844315656484361660798417461840895886506207649227437679694031971117833979346536414637605551174203954345303396667611533146448487244389088427247811559298502102429223563964998565388188340901071607471612265339503180460306440728889637997076018146725333569665796109754249648797017633810138074023899339147494919632644295916380292628829731393092863454567797338476015570456924876235499762198881484308219862775473828066108992973270421063854870624547479698520900927316676029307107125507357128369859723203650362565070487791066417886303592934771090816732555981350014979035893067797024125464721125114415104492575520643309745774756387384429447616686447457566270460401799663733296952027460451921599461810929997962557558707150259789946427197843901813379146439108035385170515700525585858973522876125226897843392138507115851647762915120213906579216979393685674016382351672110378733879121321263211525693610022613398839847075083525998277578055528867798119980615702440708912330933634498586444578700271197642004393435595357118952592494033270430872248246707172247182676426350252398931024431658860846508677234520033629810054180268821883182213445296055306374792650535096944782669780692117671773723490432858587489732509268014059833057756586753730071502108062193454502249870256549729974898989955229011282007801013536060342242380900071040331139235449331255866661621502358822526375285693838021700309822935522730326337036440196104332144634223244050853855698467697135308263065089809567847355607564420178214289807383515355704006600262085758452604904672994697847841396740920405521041025243475375241673808121264421560361529654214317894839612938848702305607766388986399311916280343394430061058329638716215532843430718575362316393138074457350589520669960247296365197534303512298980419272832618794937217134529010152890975303437229943487703834569515078638535662719740998225065647698476921832454039581960005106566807024855628159654031715687772275998957337049273447067931330038942724832189971559601077396344440091979929858105724676053730855815870228492703216975462101936086759975163360473065004054978896962576583059223315174238882291448602171853579486238642829077263052127378849420128132752184953233038464930688464724606847859161216360381016846154219638708366391141607813970622911855658992149294167023251162904517657877094193996819953769657172902150015831118234239006515174913410298794820682260184855847161250377394805562831799487069505276614272258174556389045101047546886313685058688708187345596400842430163457640180967158816480146859428234168916693818536923260882192523830794243225256188203409189680072383910045259194831139432711277694859675752842284428057532068005677222589480357084420392735244459651957530375221476251953679679937980025607228703054673432396201538192865493462486296945948793774158851909094842073749815260244889179260748036064711156631898487403757845040939523706249860788236850200646763195594187315307605778873937705414517877633893453510120687632144816393450819208545443966481805378976250417506823551654573381261120865433144397619024235366991079784657135785135296867513660906620533752165159119420854381744100723257965650939903334789367456580573067273578182856652067195346794511912757719756596448335388310551603469975740602941755716095734948188928771017680451110694279281876417294397368533401196334138351984233325878642902694358127853797788993841008722538107344652367007171698938778615527775305622572103520450942707483214149189828365717621308323835179922516439629238401882955486845862371675470135350270100824775617752146961010925530587360060740870567424910548861086637206875228922519758072110246104963936155286218079718397873167517050707986774001520498809299756430993190590458017388290478637537856757191884150653302943160526987052542693432975956859773243654831044769289443143103174753974458334365283202358417528892706793831054802698115219214952050423103650006229857613559574807716308143420094692334490380342201068080441341577895812966648513222434291618515602912700706939368000410344866469769424966895089752124185898624487526155212493825520401811403981907810044564870236587127425266222565516455199715936362192639930899739302038158064854985977755772241586247399562600334908399231349043764617085614097713547814125845954498578230604623774297210681502366342000566504008930667350991569951744944025713021651117991189877796188185651473437534551146727672857153991634265728317286220967118075994083472838524839291271606508779442940794732080986497379532343105763270983942174185974256272030700200850054933703985095600787114700483966770618269912136934784409362573824223825977180970144465661543907900907064613366856657696958929899969024712689657003747257618198642971718862105990629445941345992946642184055820786420194085139517549666152848021400570151785137228965191553225062699004325730005197058440506126719888234973839864777341097071248861414487747124202410912530819419654417077835610841190925248574466191363681948439813364215926176672682829444140831071648905613628832323248135618521513949819338999106321519941708910405131749576383701558530711394781409987559940841255430199566297943515152875465030723027079152362792313458471763805053720482906334971274699678731438795934778950467548954864745961798590722685803826419702909416638606676826172862082354645488552024489102042069271896904861354303672345429230075953503430221352870889056581802894584581047270915085514123670013821175144903010596018666005743741136095386109734515238496798503626681353405658719703397264496697845764193798162249351679094772071592039846834221014015721237937122592345885546031108055830504060118211734966756330090217834966051537746554397815451272537072600093332049645882729453309051771414307589820285601205469097491162690639830264791218257445756227004970794843779437010196366855224816967413048696634360105298507864410132405367907411884377224875779208065644749726962396043433940070494349422964211865716263771936855812627730950889170940184447852617672298343369626753119450118264037704264126357893794281904856671276926284011648582184040907119983009768690223630007456477902953714243003428268045488887045631497611685385651637019804850183361070178950885881712341648491168325983443215010092531814458665832407554832026923790017204770284622419614519506073961813689085296340876115998001525698146383997766614531186983195891884528311799135445025856654146042871406949553089750290869199183998683318819646486599193920327115503116114938008531760245509898311637823857977183748297242284300363049199859482152495772968505300070664293883508502540177421749111340124503074178671994806484619259135138807705307012066949481553052906601605637605832845869394981904746636379452798044580254515193712390315569580154951453188611491680448197412223103947330196465560163385868881177894664004053559347211928432927791865512257852760233343720757304278757350021824668679634065899793659992994979694634008468724148410943911663114847701840930380467985767805883969120826935310371012565551565823246113874271765504013007084426203605197997159890077584721104458320953176628089544525027101183070380693228358876176055658322232228894546757383504090103033014744909018849965709179452158241720791877004351756323029159502006640181504573402736033506915337195941640009810550603452863513401270323905270477812729221192868452223986959763269697556351025108075968849059165698787055974488848090145506842794594818191011900397977995758622058025523496290738573495785869091768400478877052810606502824027321283771424468827468066032154106186826547601810594433441849236978102520785325525740485248285536181819088221060061795178888208791860470866512933213089514421578729756965512678981862718151570536388121919374682749205987403890508630459827027180513394842882720603598230185877389834753905372800641153396563190853614386356746785287498918807061692724018990221560797618209235157292561370879059238735689806925576945097707929108873704202853200966372746795641776903349798780524322119617915487550797670893560759167098116961930363026290646085027617040092403651832581757641949143156750576602621861216765803633479429838143382381330761677918925638437133805143565115382820154560727126964729490913529212783041201241822043200985620173343818663905143324971407967461897666288803753943738075258358900743909781245710173057873672051557213824795226982479250574851024658804275820666801009593983557031748954058007650124459356675257087781131709422126389411712149887245703283570918724385889808593783668274319220805505574150168063525107236110944143255073169108351659266589978911834035494479690319333156445613276672809741736352204146566891602611022933668010659765025762070124446727028814268753536884668223277176107934894747856301236475235271832953875377626554577215221101628580772610318747327186758771056750691776324495036781116969829969182369880241912598799993474053262295712312902982437156795446317335052133324524540874260678195132653845400870468803700397988070306857269752289578034064608614686477657307092266491335457858784141848096331069483827225336386350721290983129709990344259139655664623359420035873093459301655347215721131772754029517843907656866159776864171297012309942771153202824384039012137936478506228500771248074364147690873838196793337190686927989889457193149388668854447888213999625858455029004118571172609255085028505996850263476511616974735922979775396351899766574852921222394825262698513918261485808318410642706457094412768267247209256316469186268280950079311368791046311424363763386328370940286639956668207678588796829406307331853414514172035242075605239882806853386860624396965172784165660642438766688193941134081997158790299270765342456060662287581320599468988008695692624676996190944145930121875741183420771856872192936951882842956001640319889147411880147693573205541240038946744920886636701160505509283389181688997399133215055699300106332225553923045380236298306137996428049440569840618392724477855471198390111459983034564876741453884374199362616735863159933648337170940963495879202281603618609159679401626126489755206558453589588597134040696317829531931804165997636756246046963131596377388661728656159465223966088589864067842980909381326814816509491631766762649807558919677103140793633031008319109304967628621363487795682677780432724064642293020144433547819377519092823809169181007504997484835680676932000078054226294125030590167912940804753393316018328357710925043722071112573680133140472302217565030801518609470635495816052776109196776587479827375541644506168372536123509024771461699627459003704118080481614468735851680627887775759203587799571631956876651659147912063366353405986548929033359066877501363649203325130598416663847231179565781172075663509151083425826406872538982068718177612470688446081834752385773009451996021420229883250427194821539951809573377679116354063890594327276748051295114601050445643215437278622507630371071358221890282940485141816520777793608201589213070579483266526936936331285444104302105438772262588956972247230115089872171560883014972716614496866076073747797114834576254110051438381972472784991707986617594961372238536116654659948407642284909830090309668348190704705557692685725924350442456089676059653682051933993015819247618331843902090715449360304811679653747223428048272767925852613882778285535250351929288973989442408923487992159877878470279160466781302447541368444446052750674776489226127532302402056282663542287938197616769323673795489881697769017762532055106121615007575208872028991450767037963468025944653345896806397316474519312697618791489823136347753527497981876885609970705855329990742164122777144970399251127489701686606887886480033186061463340144982569937153344786147045617844796821464185011025741237823817388741644152782054698767290122050017432519602660032989518715553213201528456893620714463600075648146093848681997191786237718887520984851041828670857096550865008444182260948332750654080595902937394782071418627640401433184945902525007678571378271633785881533218683072388554818749679056445204726617150198677101084329385785795676388126976396494499848496066262107379487623825705680639931785379002108201491239249982168867461876101025818530427615628781460471075345931720698052296816888281294695810256411797140983484646531877853977659125122804622153007482910452762099365607797857348883709853312581334340021873896852269605294013569052752987772234132575078938194360929810564861420788357537290388321408975131430223633492369309218134794509711256825821665086012075983083082585411477271735137810659246948969776279552940092595769091284811793824357846051668011104280458684799499539257694746946659669371564307235637464342592637064494092926461240108547117020445693725514566028928331796609127276833591651297332102261953346095283178011794669195992257023732660137252990584094501726141824421905904674982553549906993808975675515656223076144243723641671708335391610593826645643387427659226714135423791191869588486553157822898886364704574918018661142405242765941400020912378646698753733911158722076543147325559128488130935773368234952116169378610675312634502040641667415702533390603207622346282070594631489906201339034230805135256009878274187875987443254225793015565464239325676066947478805692899814375946021472954897638208800180695239162564374940834088775208996123835284571478125964329750197923040799762520658964124350834445357003716840426650598784810557835028120062365455488512468619628123867890210279421316880551220926924843609045396887771224965898436224167256288523231851957299578819109667785112152309210427340864680852069159546074008730693645919942660597049551877969924014493041836497734423765707926824777969203728536419782192763197484625365554586144348063030735969634944489874179491953906519462532823740087954377149323581920748022765347105369396757475953454616152324644629020315589011582380585531395984591532740025709705062165775508805871804080504847680017221801275610971546097913519530850057147864997611463465768089791479323733402567504888621060319018054670872810027686372418363301240546709550915104734313684616333686129326113453945078835932339611493898248415877293924641749408170410977400138285730975268628069534016688033052982077434564663974117133355337116713933114642874738362059877681851231046088046587179304993138284158688620771824355363737327327408811200253889017084001773692428809550128352176881447631109781780229347617069438643003069953626661259237684069542882186549505868269711264959133027634462431949831376439486800460484459156909330432081517997050248471871591716541427372883351837756026278139717191532520846461495339495208646750614416163623248176720908884320682354486246971551696919698556834905592809571555928840464880529348439448352582698120465538837576474071487344544382432200453405861693488059243081151335120531333078213519750614738227573657597194658490262796398704342492009349974072093989370939728598628942198800565878371327433177686769451106437866124921242452184936970352623236688705835740987036930947518134913076716668680383325943949601452358204392444814711862552996298573419330742440709956231543682594251920054463185367419866136676039794059123606143734631265886464499814218057482273680587453251675155467927760809843807966908835233922358087458605461287272114421372297579426758495271971180764700126882032737499057246570594380647069048281509025827912341857486335147963338051250903805630070943477410215420080980813450931117985602394191553916713572900487551792585587865420849114313277770293966879700895471879293062992132591686703749776059483656659924283678893150033503716941599377176458880653086534143340278893466819415984614222629352810046778893964864383478241961006376473916998035196314698015919474723864541001865347637277950652185682879470061202059851570802417012912924548769060792624556002534811091279732000621210311393892225385105290250673152730765975727322367032335871614326285118281853320415995216605253610502583592578159067046587504276440010805991614301134421287208020834746775829047343285448752031747712599519028047003947935059506159852230965658780053973925684030842559220534496522274047403813417865757832400919112881930312111756908168046264779490174012583481661466953543400581334158819504793530606772210641790825644006704182830756209879565510048380504026864278023242182906631685851311347275700395913140468194222266557131606223074855556191520851072616420221023224318932349022810697070690201976412262292346957917814098108568459552083806881750624101507646311631949306878259149742627079157602407860920026243770164035746516294939157321010350222824480238858915746523415755612275918618930810269258976826791641317593360882546475803721774180725382067451273535843113248516178636645159207647560433269030978334991105690436892734114830222068338149761997437128672108006022314706652219131889529267653525067519041300625891666233228366067448198621652544558940733844949951443300567258589463109473250329877391037383195262976173074252736605309722967352532587892223434585411734832871081473783500175705775054727600140186637560181953365773169133464109544193525706366203453291780255395820717111836650557668869146974398147234678229494358912581259862557296085203901225282307259235965828055104732523920749907439216276960340054096187739499546818193242773978819302386573747633721111795063371202231428057971530620979111347422145839390277146086241915922793132118972533786470973879758719152421832987427547764108328827452474083534842970948216368812475339096242969242948288959855503064579442423323710585983907960212704057840201196919010622199408837471720339704302608939656596113936675226520916655648212069501103589857714409346556204929378699813023143364973220104692375673446260737502709192422256040081966285737595397042592466125507151867999034662749745932542769936722850870716076230810889735941339880903685076244860321534831934864917373507757045512190982003105264347622541130398627241054884527779086767325139546681024839599270779442777358044007232449042358399920554304061996930999351790202133287089152228344154518314360398206467167657747525717649586801641478086329853121864214472687774568526330193094918320353879615897072010641668005606326185594647145526948847326429199439512104362531220169392577486221360531563508485037246637109569871842611255751627721054627625884638144528205178292427145454774925944156584439076229438928258725614182616200654539551390306856211200102219313959460823394937582121484864165448060657454375643856131137634416693749072545187093320589192197367381774737134016207655693207130039770899921940308359310154653174401095230838763285133209743128033729074209632693532365240662635053110473481615003086154723486639746873444524261938451658729893467655304269629740605945707872790141346693441439697943905998519688062810177539288376128706810263433804667512500731318132590426370699922377344031717572057694019759439700930525298776833938243915094667641250766841439880051606191842419312609019413106850632078845337341817608598007577282243767210997616697341400689196667637740851710226126379468137594868202474715454399401070387306349473995861803074942149880350451658143907384771332611524310534843262097441335630770299002838411682298803462008647568582780596353335051586879527535317526735666944902182439691406968214075452377436729888606956837942039384175175059579063502936883868111680580945443062743397203508562202374286816157023700998137304510388328464483668671043156777988357939199528843646844552512175407405105926831510016423093808684982194261777302854646308208083381323235951644025249439019123431530539943460384745391156333708690911837459422528406540716828014358961974449478517899400764374208291755375511661727431208968336737173974357548311804187066677432781763829683177621070539261405998346381419132843689968826656131462239146357821902241647812341064873412017166391099612932600766158127725520305525925969995436861849554868448417947869761875084850384036292208119275796545277018987160023173453686375728371042220698216215890595537041045445703474436729741517899833219258241098521377546069575234237271091136236042153179723868119549592007562724697835456477712297596157455186891066867312741534839701910340914204709423411089768018237025654047619602571591593030304011167657409002298210346590351300831171010270184610124770901319677768216362945194305183231434947494190923307568526849574519562371867478740791208040816877152285243410011195828499027162590159892023484330974971144648395175551091535679841451559994343376431884087281139866316929471460187451370465275908951262101749127895302507369253635962713058200178749741202656327437000925194203886359282049061853762650727782008956286301112322372430607869676749696924015363538513639046038155443835894583632755409811584231989064423608528960841171980860675005397245010592791783414117837656389372190748811918016242797845989921636640700073011103415117231748614720028177958918458132586086167547051730543929158156991305536812385718202594431181534198601351808971930627930807132394592632472518025495279483561097474486864323054758668542021275740173586260150714405938317623331829308908384660259201198207458843471849464095179179670941681272655699276013937067943574737611796093850739085382545495899868052192049699118978594272805362183759528526723189402228808443702208403728513268372629660732672544541948245157477972481833918674000804453728238426911653705517865728687172267897290671176443723961253507708679038579175463221764175403218225045959927267873861727732815906072664890891055797063841457917297268733536502498215437933022589767356169854434913281631526656703544740808689794722432486397346875759606669343763714155246665481740964166697049271111947250197665888927812258233013871834152217509533141052318272494052262510415436899880642913236550513301668267580598158634366240721492075773637517888631530393193116288402946593900306085255348548100355632777160991540083843084823112898684328671724380496161038301788224885622565833044271366592271894386138032565885355596159672003516139026556997840271490228105632687801043263736224553432497551134393546365120940529319405885102387771357709605768838211907541815147050738250736083487517772121369663351589752638870413110350359223892260215364801254712236809021914789638082855092245591435518926537969189033480937441971091429385883500516434948882780552081157698609991053221364711148706584505416777055502351648824414418848473855697408636640489717744897719539277216549127242046099231129675168875742602247531903194895346885752822381834411545199572862414766587080676587813588913110860684239359573939758241955260629841326506739457202844895174825421152255967381386784711151762109608490510724759321787512978551451836154303807593660145729038369262955761972602575103512188527761713497210928939018107015394561719742668922473960866286531920488833841071561241914954391234881772085691421154160866822754847653629659115326257601315729218540284111433188023146016515044503239477980024852085599619414256001028707756189710417796780247329047620717187397745376844136199626321607610973571467022608465729363854635330372329809169465835505529867708682019597345192241604438874802256446687877556557208674327383867311129404716478335171331566216095971665294835662762706699679645607301198028393032223877769959328575085341540643417458631176952262147151720070885242342895883966362502800999672141831774126835797808903003543006800186331180640109569537128171415929612408866870833168817862651214943305053947063158461908601197959418364950510625793634955553792996887867977184118439778499474784586470366846374631604012725600472439661787535714432902285521169253196669894628962363687762677430637543631465018130098986688759900238192967804025708452978889833538038239040755231485267529919205292574199207085294454087125698398471722150089590705500949515694235822309074677175752598660265052071047648117210979604217413586653915305423941598365532035515981364697749091687675901833753295602270043651917449937642956118357491187851285740785060328415544654413396410231963753589492767168124807137917707071017827548193920372684348127693987394363359616097489501246749111519202567485531422913813916369839896462509685782721047814987482080196726435687443164433289508391843811292518269541260102880013296373005401114597654604797393762621519106705557019344414950360019385486789281444424238983872017214048997203582688509229023795826609139065844306790975776232034518005432632835155892284120350082820242438889400124352156454814841366021915896206727284511800219481675225959045350435031553817113327581494596933296397684818449157857508350716205397126273749304859066377639259002106716542673346615117056695529584322607976282171679866668511863222336659369608247794352840385346759924235378902497866827789312931879841450498438788471516620550918748232685602975803180153724904869360686713524838577101665245018346105029607202401271755702240493815908563067553366434246225789380812818464914300496066368767520792743196008628394281282728860363796544933199944267720387671935158299883578864931802389612837804703651246561363221494494358631487128252347255942008032279594700123359723998625747011910225529182883306644601303761346952995091574089959732814322426889041006663905628863293097900222625916194927773568570266955792237916282745857145015882180531981660868398141180845127757244563374207374548126256103797792274046823234395280619275976512020308649303732990443614676323797826609358972964990556925065129204088820084654345774500829005696770836585811750696148020949909536877906515916852399132383817217763543740050775067702977728190790541737347607375895362964694342616349912976310186202951727863777452189409278512573248516731346766158254494777030869594509254198535590860009814668618959710076215196117664685949185903852418061039560963522213955434598260635999823353439511748290506511161728415185773676361388307706265948652932106528288957450543073864440800134978274906210719789182068229872743360980160604772571028270176721273071157429443521169577308751328536913243759156059265639331216868270829434126865951140111829136140917084031196936182286136022461407968351369739899020736016478262363093602116870063620001108967747697598097294166103725289207628038290712898072534645894286986912488150223610674507257907795138190740159044533655614975689208246586424592530343830307067976317032764630705665063390568965542627715077070880794810011734162154192261421091844044951770348432605798294879536124642493341438354870462226020935628173968804851010280111183932623494552138126683919279767157607989745662066727685274969963049597617452640042180213985542328516287346752707346022314460906072461367169499692906471253728191464999230222306275593873431403968311553402999056641258791189721367197572396961280640654664378342872087997880862586025476124608071344608576706874486659451691091825546263700524051873637919345253259645784701685874705647297261963467050231313790921581491432733384703161457797890783798372083843829993494129510667192823367097291227688809380663498426843840149233102381127986225210812873916204136642176246524174268411397618450353193389925273492176504621829313202907714038444810770664919996012061556823078611693787899519554989215592546274300183556380388659262511303053135378851352320409453291648362335743472410793909569052951413224615163352144940475191872540763121136038770593131354042323077390565657241597910028302951691539961943034571801575605187354553655085803974562656870604701661099689775842172452745704981772710916657825166560600934939055646288336622135327955166447132153884626471806349804646463201505816810285221828069856060075787305766814678849673495092234988919098652812023547897745066890044724293621105351420269265269275710040073256262568532958837413391747517683403421283471489916455310507918608896541816708343333520550072504867261762395164113698047932077514843814243336997642880768074258704180363952106944014351837180441735869931029924093481127404346478088570979130838718753550320930221621353769826779776254361730419917655908519920907350499835114050150893393710152748894572576841206155264871806900891807163259801330997454696442131645901554042992336044752530072454397160909196087811724146257827556820056987838616629758706784214216110201424080954517849438856537348968618932926483751520513960203118154355348562298380456843273641715321497065431286006549342290514933844306573734890346555066977818821240961660528032593925660064495273279331766462541947736702054856154060952656200719136093036795334288138790009403397191935618902202971198002096405352525622178846531083721387647564647954279296851334139554235304143840912298116373694862742087267105953343067181121138923156410267521300553005677524584303715658918777350445926459315526222467360597805664930207808894404895216129558679526708010406618619015053704307321535261284685030888257587470435246785256286119983059110328265318641456333077669289977798454060594072508029718662968278384054675305828013755860313362220281856204039908321271501169181759907594383027853961004925171023475852153021393467524497381387993651288719055505971737999136410114101953538886370383830341572319278581349079537325954811933610352559576952485745564650886953683336265544957133732503991635807924134400536991332301095184606475261103971923433720868514745143533216683000351558784256322410640112181968648160045610571133573108229644057123878057511767528981074477736439236021185240403219332507741243606977205301042486656109221268592866880924157501717476898053627615257331065423783985371888817819992136644768195418090579708372741023620026772369187832542984096056162166252815002284643128637794703464205915935017526676284648828556414190874062974981300126108928629853778384191101339035209930865627762856457201805243233045457320595776029589437526231043101377274376951858065034036035148270633992512509314488652011321522848769354921179760698392418748794133480015091799337797366765531949856979857717051061323640055832530488306367237652586460260951028786968190603199868591834005119522848826709722174076062579414807680419871294064847598310272476243497169972003557201936458680922578480563153454204185212194483059016203642766458832883541124152054703739428066099868012504913566718640124030617634391159633037873606234000042615144542240425245565497968039890888286092806485817597292771415425337615198063724151669480740307527488970556706595003515018528516463409529640931779028224683426024506867949247370056583286791018780263533999038934412955792258773350221050885081689779887323181194212946458083633399580223112942464461610205758468833325624888383034545791418412614877656800364258907611372955291562222816313656719269192952930753143681374405254012351955836798833884123119122092310834176387198379580218580021836341837954786015407136232591070745913664734567125243070571682355050222152504760415360886354653970038727539872112982977597114635283707020118266824179445643400119099169371676628212459091227003561942836085331736759099402899251289187136417960203472090916543367562210693607230182138038377056167344705341181782313151190419944181917440167443290963947223587291206285113840499384328390850012100764513169457189739007132450465031348857130803677036821642482216559320229490162896490061109237448766466564746974611228529120273457187936768944872896020809504728325640256783069419755037491261959390490278641713715149200209580811699364591864752298716438381871320828713122321589203844769786321544267436309172935490516193706777282790382365368696450602498854323861336343347649558806274367636385970989325537083022495566949886150362562726190496796381520778501934686785135041012850319795075182163329975650918616417680185141705661099336943924569051902306492147108958323007128936752077602494087301060628846369355415613169471510271932170369505150600376742053511920328554057458094915375837125076327826950169835637417721941508148727163242910929316396731943678673313035833889228660106173551009249484095759634823480323743402435213774890079670803257620225095716160488772617532982323800658679811384564080703940533206519413112388396869281738438834302619175010703145039584798854288465636551497559197912208577250783673017692115178823662745996776138251533762405319246117461534476235754743742428833101211160427742634958469185057573604486267376723134279551843788865773038925033814857095743275012210079937071301994303581420495148971629377484617461791027896582740913871089600804869944454216970252102545511470010422162991113261086255840544298653746779497941040673596722285799746041456647131589162259828994754090750704467732902430707782976248243768258510303123484695681766004252346453485741044251723080353613166767186467736807303833168021880435009708451298910824229189784869169415944641163228788610923315484476055007496241542914937028107581669819551221438213976493301054924607422591454522152833280131591575802311554443359679696127580187172070867955244475935522434592796334507897218489354530576804756731315032131400935823656125360134762393530737268831460031173675602032723391767411858249652642226625396388480476424088768781061693896349640412163837616817738772802760157398070050875250731565116266137609440339248123524791361150467087119835710764536915894899707163753121432574996404629626802283412640316142169259361515779888013128539725758493718448335933958343441419101635598483903287328910725261020464438575610909379180040396160795863320776335147143244746735333822096802471577172150806054052240405433637286810237946832579768398921290129295855923815798623986067509705331587564856069480918296446627607000136234889979025554888148422973928227854056492692033707112307779588951816921989790948643959202025759034532750918713282164124566942891963606366907414161840060590088136681394423555956536449191204025869856569089393246570572971911871812482686522910006859577098771221339209405928460945846061123810039090406277697427755141143334056372925732172596570996041013536024212183221293915070432250737100331747023373441754822672209215798067321254410890876757599434337833974165106935642392430006520797358715684648909977702120037317372862777506650716165241220556108473519623018104552588819364385316773131368420166502835824822612581699587481479114110712590292169542000740280898865729515823658374867792716552976408131165549635293236833498641175548704528310979635355006366077212304105507335635427007167791431318628051674640278688759788678884205090233561114627729718352881532994744486660032317186180161406866537948736232399272222133937351296172948858450590628427510115157255568652989050011017181136151887199592198475527654506836271769581986395238078221453197565692389631404348732459309223342247378241759300169230716708459453960184736485223724755608701427432279742323031907475791010245128700100921444325830595728420110285178484592201780102073508553318603229897756867048908718107418345173487126069141427392573287062641670001719751198449963729490300301653937660045004758707518839646670856156482740256136479280723947539612221401169952558056649290177492830381575589078394328847817622698959640338708156110480641930725385724842617385373792863973262684228944104294228100230995297022116346806712375449027822208012992051820945269173243408351390922484622855376107955875543532556990895123407061169228688872746854892062413393551020661230491585443040964022399766649022577755107402625898427894194562920258839016617371385750464987757822984795653600629976990047209975739652549152667194639838198010845856117179052129880029936560645075092496795035685694695120394393098381306897077455351394699601929616711662143159745947250170353487588385431598030545002695148252610631072251483843376786484876730836224458014468941746417892202287322474875234366488891901412403258644237197725466151305654623013652340719471701868483610890806108203366591166040855892330383628725932791620477931491701137325529209007473235107668727446383774304920328387678581704180574202187443465375650272358116350576184503907045705550814544808010715019508325717149823862543020788929673741128762199501678549389532871605434602960660204794757505131026523487022145402801076585789994818975713387960572167146035618823072990754374980253130930498706018187551142027219301807816515534610733698919388499780492592332341053309571667206407301013556812152897253373483498859050742465736343774686792066421155407680601080867372057580089338111679503578036058408024783310324899310883719720091704626229611872949978585644823679353802408786943728785649468738259556431342809207868325800904505916409604221027685133269241222970520031823977293501881910299258494345529847961566153901161863011666245982785243801299802932062829544292028087573870142815546916777348185074626836512371277999296832346773496151819203394048098687804529030340813292725036050564302358987592941336604565290695231555749303316222820388652766949705248072265514441928499834240815327776209470450027843485275627308481609894028416217876542865143485000844446820790214292805986410118525797947574483410322580325286117759116464610469277012113423864418832151668248464623240178636398855150373837628700997199322649686416088033782236615103511713517953464032218583038033639399906083935822477185437870844005221380660634971448734615562660026381231066233579155993302885244318846980956052139397667576318671337767671018271793680215144127786690790231712781019856163654426934660330175576372539270585900439522638193367308228018832939278792658412487403480193387395596097415985633712232019868696008532331080538079201815402689679385376386799028652253775618626188822394640366570430027168154597772352228989615191368979578753235597555779721014469053014506737277482788067109321811364695367260416844048332172400542719753802275899933147455009077246658179550258416809952176955226596608703284628185179033999814897515722788114437921362130909317334018654057578348125634486082411440598592421214819963182662395966819808410766941405983019004185432191459690798781353077126656778454732779646747311334464758608733039202575560249232112809874087319642664719846259909346267969033824444149215905109245749163326302842671216201011218538881570245211854770176026818325584840490026325854405600679326494965617780992016883349071681660395420955522867533765584515943013529263429618602747850867609849636169000205695131588968473394630227987558119914182256843527259137511086063503421522209115879571735394952663187846945403663454235923201312958638299847360034793111298289897337293784663584389697184873023972851617756961635823508053632522216242083966052471688649079185647597014490315568913926028289004246331419821321075014040299134982555815609184639737126124791994342084582238419770122822836006448780371390533108019330808778862010189771735009925743311850231046698569590069782813242012963901898958557036731047343563851142947209586866256902161682829980643335113776739257611051116600407009970031029179113113785835721585450043415181015037194440451359480891566505858610243681667383161789505352142256857206017647800808036574049201617988366377047626957204070434388426120645960548636418199892413807040638002023582434689278292531565542593339861802915813106239807317966213269502662212481442074181654594717212475382523039090675442593431283228714488208966577702432769428589236485642223774138204108047949983404208343870033786271940283224406097183433762482134015470954455284253102899747800079193621469139505812874458712620296037091576680098358055468932189945453156373677708678494187642233623665263133449198540839195409230074577595602371768056238011051595495157180948810866999622332205775037223987108711760129903889433976452975518718193098962965633518398863759039281773050831339088535561795356293236747595090828984543277290594080165620632052711795994544771253982789978180576616839388279072253025556084368158226737720135702853404361654815663343838302839855981963862457734842251678360846450264972738216273361113757618310717071249242317332574156848404095758534428314494742541758304656716184941988886272111092734157454634600800776412982787767182870398628231382772706667984985181783548784513757985745751069461446260584126410810968684233952736335295127610968458274363679082680302246088103344279444081592161866944626577581804847038135849940727194261674500399594467086152420487397570483774423478895841508296796463243688120866568558852251930357973720694760637229162497122378608078220661543525956843559658959716055399403105931518078335737076595203750693805300747299997257598015384224881383233077920888814304581921687935350252161981638050866772028164590561205795643704237736052668360175980327564830685797086290114151624347318553796631150428458276505568658749158049360672924817164083877920368608396526811751727986037425323570261591883096901252220053292198903886414312487008325225925088697875358720186052893067928028877814226340036403212824225677310869256953340507851331970163755247816241338634172359225863199689255788374600362376359443047849090860617884604411832101319997944673823551722348300777395582069397161758230099741747038950321214752291338726025836630313047059282421562854478608360443909107114041931050548766928949893252077819898442059976632076416645770674513534117715727521461476169942656142906559841990622327591460213891714327370073261509121318525593403561566950585281500589800752172329908522972108274240288841748198635371815543707890055501909389509455691788561374187245913023970729653184896757751281747011437441575011699022777630689286184959626370533069835544188144732465447828751710122294253249453959280434913823395116788106307005866562269700993218109717809440778164486329435113626458620168612196240555691772515523514501207471968670242651624886605461714285708212147602355962084258192580757861473374322829550965253291508554677890299126062968978997765324024848846707323552115565699634277893530490359052980359569837258320314348688123956823674387555893256636982094183959874949522103928146313523914555965752895648655238067899826686333344002323739021692300941304653285175783698567368947408491213206204931630899365193739860820425108272799532930062401142617759325950683110411742480589714365472156561971906300391870419474925975826082523735759321412818104160117936493810917465049873863443307709604442209285987231066914112283488834308128559222245619692984449326295661238152386236446697222330527207204761635385415396100232294221177867576881097832884256090701225316801833110407779167341682142901234111859741849643275871950277958715676362307646035675231107656273777933989711466372011235645527108763189680905086133013903646121821178545326652685249085314990913970871327744486103355770383658908872833534888840040924284441059510045468344979679845401112105501162142659611525544464701217955207340265336119542368514429823910419771991571503846244505189550267465980444690331116200743833605001207082823530293795257724208127959452682198562069461361917779012161173496508313435453482254665674876467149879374255816413818273132507308367497269391700086882547185442379773066266129302154314765216738147149292294329485702497491869381370794536230766269503469461685653083228674022956008812090126468787876001241977974865541735769673580830557528677348117002828293150250739818154203988838395833173414895633717467997926118305901200017538529636430692172077759348546030168082799979777993569024264875023024349304180902255454531222232871565219707681312709675511834118262742347412818151998366533721855106163109615282376892120538264954736347447980266278439554089569582025733463200909220764026666306407637580095175751674825490299696321068984193282923556826933129789379965550916479914719833575106806179707648996788041691345045981784814937088916182243812903167824788843525388175735498022915501503250653351399180426651040096250551215189453445159793913974222912143656716690296429759304644759836177145390396097493125550132931243279099894223180508255980151269426864675625126118842656278416288323842134865129116936473343621113236424558714566927994453961807829159250762519110438138055525046954652520543343233236524409844405813928223097302080959459639573115978140767319955493938481639531002725131526643912510493237999156747802138112711876555709311741844401864025105471381746743730015102945757273087285085585720211512020404700294123113582888138059021702018486915936787826083138187265945337766936410246445836689222028550458403983659957593540115905685891514662461472566359381908919906428688632002710907230666035066658024881765228456462799548304732834213483529668515654129732812410549372269576730446606160960106919586889110268167686522170728386924087774473748231862020382975924907940085441033324972952505300023778675923469900912621022299032737194800401237911862185941314146588725624072429991680736535015545668757755423630287338269672720080594303290158890675725460505713508306022395916952508627390572619152991897266929805438098366738184906823155917424206076903961328786139496598766857816082566227684359642527934605270561910051931698415421682144788616844180009945477828826605939757336648752635945489934627807723033000177849474797689946225777523587926333433239223119888422164852764215338140231601457698747709976325676699787826352287740847722907051007334870492773840481913566227337031099620619702982098824167323803668915420627867721083170456712599075215249813107382308376991269558836251673562828482316391718672891501554109891522197557888958520681634238223996049390832489907691125752275079916527455739689082409208263331558062819431702514328116900033007071727265634971353902828427018806642451167474385686098599264066599042806662763012478608113453525700622362552019870807067666525775559322560210548462601202767299707366150483708480619571622931905022539418963037571175846892046596547138533774443038272240427625846293085831497798636512136110050792854917142514682672231904428809336837074252679076052749175354200771973643027302500834471861205877087989721096939689361811537286382799269621553146971683804704872144657081196633416172508573503966279844436794761476563409236653360758540272345033794954691589916086607981381286141014713554427642298460900453761283879022222014213521859983754550129689921443923221390943879415144717039882193544723461406190277067150546680099289380183726087112336885406763455994661163668382664872897989552627924374310761937058386343244749342216514462764746284418106993244953678942255957753823823553185928851744541235261040047099592445394629039147119537636913475589516537666299093698588182230058071946801815886531374629443032583016007022384480443790318244662820940242929450941045536772318374707857464264591413808161650271803468798666820839256866777216305677543991703700284826276364002013509962436497399481919354342855326280347224411514267898205919982265659322102136690414260030478380437503915054043847409520967625668802821152172880498233632787483247919825727085605938981681582904828931042867871629193855012771442418456338389333579458990274462225214932569068832624788879195920178215153874530154718056890089666549893314646147127398951140632760270611965143701839828739370256373772710464689697519953817470605279045563354370782588305927316508948893580415660264147932145277054561014286024245843636691305277749993677327236687568150261749554241458978641229276828227745761032488507073191617871577271565904586427689205445358773184922198897534441857945091661704743288286088409864826176215206575135718349016667972222691348876350988614647158532693031556053992897591031185799780284034021076044819524336413514106151857514792024702711575712683949491077976188665098665532598392423878748193159658260897244347387838135124759893380623875962397530005682855080706258855060475796583602110061444656526082560294688083011975370439278888779679771501635184690410522279648679906036973201486493824467860358557263619956421110447744134352027587120390517551826024630005407767246950602748771254326092842486345854861412492780989793998106384721710982153040402445559828790304886931753666446628776935413803552218434139720908658288616317569604521048172276678850256265532043342079894549222771126688072341735675360021056890887788359533183425988102030981404600563530178407718767430475014717040390186842033333031597997365863368690953115564641846533829859785294437953775281776956401561853728098872324521809486048314299267418615546977456461683874670444915357527064115121308222590281989355726678641230583506729737948469979545347078230618734352814762321537756178203381571422651244215407913074072011841776111372230329755414638147775601758724719990980334239533038013675038255094383009565682086845309718467773535344049160480788979510429263194447814455802865674833272866561530644544574599857451883537471939264504437208853386303176825494801997550331502784192456075524267517746505830334233811041598851682959753264884779538562572525989944795937257209658961465052051193275801676827800030281906400324126807337807833269039028706113429908244032064716810365615536115779392001651387029825129855464257186491690061273421230660054944809770047161308883266599699091791650604822600582012480471176956847060104361272824065869281413214124600237233865971725597833578292757328915815510452475680763643899328385928843063525961204131050287613148065781112134235052610593012648073560863604123030131129298485574669074112399087656692099044872987792968253820075848992164880564658743944601241041175743772619170488347221126805488541558269522987703386536217436052596539981309140102788467765843163064674648774411942050799209811601660935573061717206075931927623819522747690572699184680340595099373811568093586539734057932116077247701833850294758935423196470849960653516875435342844897105479625152885910896795497207236641604838555470702681023355484555171394744202671199576262555846564716215617958532866805481533857567588409379792981377697512381729155038088471484081289069488252365860644143314403557289269203375805601010456799581550301555378238999775216061684311501683344398368208046863423520739945902993408700125927375817430284757886775237058987076564835375609032545267342333681231721282181325353300427473043710959912859584041057409423095201564973324902971980005113050898574114784698962987267276289380812266199148334972097960922445831722779415452583990664568223351127526765892601161992315238185842911464694012888349931458850985393204794178255122653678221547458398957251950579085201429858265256378881301863162415221317248519725841383563279394230031384472499478972969873235726401926100582614911283504899967138386130578861401704157097564614727415521540925351893365318617449636076289035874766567334308854792842924602800500403536216831738052726819384571739956862697766823678109851295925479115010553710621026787249450804610880938990695975508612137837981856446858221742617472545001705952954687327362869734189509039920341730575120023911236286448894332528039544225042687609970680995305844815288897014222979161220603858092640162624395324541821877846226207952185619089066227928777379538754659642575079545027622620789377511700348259894090594841704346983610374213567330449612194365677594958024002095141159129086043931299084281687649542823413752097349357936500063067697237219219954258816205244288532757917205208056395718177982249439688112081670014966764444752718097187185345250353314016650973337435438356461843029734521169908335706949857701691119206786356848953256718779467449178026758676201704893922896927092546632967375140576314492850023969508847402872592217325554186254834016816681792883395832470859249794733323340622364371508417679956689455116156562713802196654463339708123555380450273994841271606581597164501066511096591094443967390766645676819464335208688822325057596474417693598986601860506514100417078670964443439115527355267078416272633914855500163376345026353505543732542648394216027498378033183224495112571144188479678795003948334357597515600353824456868359142805301617301871490992100793764483473086409029983135463192651642617790638884180962891186927962762401656813792813774922434688277532504767924436129182275819071719939953982118274598472638734086325439187254631868349795415520321453795781106001531712612380078787727736325406637751911549562592961280193890816803357542765558332249297183153327858825814841518841359094812066411354629110353010305212887726087362514800077266723794759939183771677568531942470517347367227601946541175661445373287680028167855069546274589070382145569935117854274301995574007714058392788944935035536928195826920241292970327430931514460603371122309456724276280747954629353774476890837023772504514643983436804314587997283000367234034870804283471989098476322911738668511548334663962840169033478461978817132230617577589556039690708057107840762662899036161799632653074932098130702044620911196437197858847716899981431885650513175043453016463705087354169141351958358039418918289298735877906832466304011353488220739481495704468646699920424587582975239221921367745339651980772756657761279618689167044397850371393309464009435575377549328208508402074351686940415807544663910583798640830330694443476648707850586356088865908014530639493779422107955290300028735101667940017771479350177538613709360896671742536246437001503288322246355314798860906644479425900528467850732854941620331149513823825740116265604969832758439187142000702046927354281672830112047021387090921686688778584980559414737598907813428817015671333931423070944151165496348776703974082278845302742489263653322573077048178888180838170273742131963098830381300430982907056033364101778819522682707143205657600302989286854043396797048722687064387987874610067494842556718283208090902395659805278807233442262275961519510708367637644654001296438198365628421248092923522420409220850897795183668595820661597006759953761801713619192690575285540099513332184114412655747905441694290555279917030489395884916474530152842176039856342786563646619092615071562358100434515695789742040175520959991827906320715904959824821711304997879270118516855407781794059064837383018146834687477573997085567222947908278757685896779367228980910953359257105794343842949183531220251635854023970830130776299775023184517176510678490499054998939431154935435888771594488246363894990854344958522237595828115195643947433217935476294512278106179354938428287636633491042249773061292095048740730485140665100898626225476984469581417989770279354785440905248479358301658107993001260254791747549408942256281527669020230636057804573262176863525040013439329184618964017203723304012651814243598914836057336296339017062479440401929811423898058787036033511813238033164376987957151518564768934684281983728687277456548347804475179287833853979817368426887709565716390488524212877876265537482516041892181993561578349410294670322475777753949618444041901519155278180114280833069904050852756689846231724309313694957042535133407533656038883286683468897751408515410007818779958882299596373916704279165949138817226462372734075284828868120082803737058511125532085329117614440131871649045590787251201094316151031179579767346961363192877480224393136301351100725332864140123358716369268231830652923297634006064910363628990969405447924137224707042932053554063801988710604094926953834195538114907586153696446183938822491396565691552322494524394088488424379256942352724019213820099778895184511573081430572837207806419908436881082872821030589231902122558286666036470762515336653040744708859743298247030121037960502506653463381725183495194977881636693669927733462324553269586309903140416849310385558652825606107013533051154592863531126590465782729314809667836600250104897250968045446544325289985110785276324734269424955048416449964949440539922834908473237638494582028666079056676408015745067217356281839705059620352198629010254401883255485931002862440762227280292558990967017994750620849200625804154720107383861804948237571244026420621333584222293320244837106816213239001166606194450929094878610484633496951874887335894004797325751912665462805784541189983078551473000936055795880275453688534244112089156251927258944949462024083316749207114772523835212524374730461642974102501394711609006266357521495262315361074449217420231750321982511090886605709836188304710215312212444655147960253720764917103333397648517357345350946752869076273424046411881856504237759438306601814303329806960839543640620658845180624081949002443790496273760197973409166807778690068210962236575423721609995381642483544662129951807706547250784139075764134536471473120699388402410920461879563305264657101964286882140087078186127793966500973068324674170658553565265016988528085539840701543500651185915210666159438919662367714437490951443051213922569943142180790694254035671129894055239023756835616834864346918429227834837239406748746398430040318279799556948352967992928538398219976132053895824677242614124946822054680057929631191795550996989832930376431207195626299824450399045651218229544001294498973970189688516230978002882546190794432582006751481545499144774018209903825394706473136814478159544003058289797618181413483281348408773499269672534240125364967472975509803795275947946753690416104933974685441490734478474677059186267467841397093822836869090540698394563466940548570711299517896585558898003216265995193361523666254650304917153849016976678135677663822226594371388228068003034727226249489237944650795327457055945340505073350767032359434808284804170990488413579759958863605198243210077760338147832476346204325222668399441372128478861346135989945918912076757859288598028470751188607731960974650122693981892198181876203656332639735772985022283960969904837950832312204037832143277341955618065166124127143933039590772583030952462201970536582813118450935127193563739799599247956515944956668720335092745049012133958580865350076354856980835468198756227757097456430055050630796220249234343847121985125270568368104957026184615257973927935851981528786844051726864776179399436526724594454194482872807151178729258097044423060188873241499363598888483571765022651376153596822733783358264859982573107355249993460930588784304810971893624759344807829427060702658660546981976589405117255838433605936547975775523163412823683135844831336623502449148542949056329486562689538174147321422430236098462856176329096131104795372106268083739019748671126668236320488122453038061974952722232277295812684860558013572813780337303825378732659243803322247070402967153830947107996313406585803793116699594073386562527771957226186906610411491453367135994861102174858963165604577442039102211630077026389933268232625820256973337608266570320980625222067428856208537559870524020661996584991058327045107015815699177854687097596847091260150065075156601903958340224825594654786428610504297844173055102800322092314113665704423802016431837426773189282458000912293177343487234294086761296650952505452707875584861021217535204894864949425471520915757153366926405687712785647411592866993106862580205224711064881965616753886753202491207543841353943397770303418733550261057833417746484016376870881789766944839272431704681718686128817224795968611316082376180218161769161802677540096293268405261537870292483284762098670447544937724444938324041693753084555254801366620398237594039297727889854932182043506062358292762939315252769625805299314770983746543970166346967869133981018481785155531574177041213832188583244316343430781998496286818434204276944762601963890989375625817181216398499543203292235854934816493672682202003805516978911172685027772137087186101957847567226806379117258742517085673522504720157482785980885247355507888580209043993082742796638866737909333589574488962434432239322350059509991952704601620054514139283645529110336834925494018149449254268210270031602533367595795698634051285468096817378294261776489827192446365825322964185709739813672707485601146822163541314303825150892197981133080961153443444619376493754617995027972847510380733978083653159107297172019221767930659881847657128880321349407673525339301618827705145070702166770958875205151205023599776118939696992678451230054170257855291557650199465939932202009701726568680377941873842740713913234280260351941847229949077366043496159488682396848449166061976238306957178062589599464639830901913895751883711111103181412833482052463598190311801519692205439128227456101934995880279806121866793224607095381782694744022477149334051833695461741968038873031807255399021460964614532280882647645455604580383180172992879777282578158018340526836231197035924078174255284337277327779528896297340505533274026433537779021028100723940350298903500315707235473121738639121075216905511695240403319307454799536308470121951271918821025521237957261657484426229178447345712368611738555190932162116183003392201798429219758894802733895735513580758858613674583461975690878447945705688618652880957510049717454184014476822837334906246236241578684379113954042201652679153339682978330190166280551014709856880377569746486108783653074712284938104530752880100469326454535659172691803866173086796498623139150727325043227276098619185316910689545043678168479604361483870481966930196036145656215156807534532470188295254015017112267968998247058987312068538621648370740003607348716074538795658878572152403201029855074913455731845039281615580590288458801805409905915680808126455732468841486395273874979072429025864115452209344122748411453244440070400178546698325397364024462154652951721675610178343604076130441653068426168463369056567643946819089691991219883141898642607528962397818773244801292887981512352493645205457281330443340552653339429792398498226747762306396258075106969973580446198540480142185769913513846140664042961258091847569450504653212229690128683698543863886922972342174210202189009313236196414464057508317437491523115259062614731075153569587713548943775595871390254035289468698040345524903923167385008784579608593976439762424437223863014879984941342267808579812536572776428938010910071178264724827193200957155650344341741352340416840173103864916762748060297980728848300236574030024314290760294520390759812325703672075541633460083471861622307224567541327530022911812404665165681418570099515560507667890093407196516488010356061652146417232810463556260251490949784884782265211560811231561314678956466584708054386751990538943230846271039712306046652159225976023624303422779048342512665767965094461539278480280443258804865351131618108300986308732794680799486468847185322553096768320473357043937943031649511455300144726229492795879237605576700298582364438865133037794705012029550195623899376382834242955369947775294739026293863661863475552633209275655818784444919208944365238401832026634188957288796966648229566474528656549293485072102287149580893270975530269386579467277809600443270923502726852085522948572563074645223903484608622768174422709711124932474632006665902360734139246230536598747085343089748198579976489888651004036019706687149557950751874881764637511655522186887877547137741020958596155053849194733181358829721734431633117206647833133662698412256175105664970151945176866653887206324650630357949507359935779950106978980989075528561189525323981095703257905045056763925464201704067188353533362242651600582954826673431650357016555621672316953281835830639623278682954809112568730959129823789220527197614046030595492781716462387907814348668074646957133720013045582494080594430224725767657546460521932091717562596964243489083072411241096667589508087204466978770099335086730400667734027437008817077141288867953695491623705682660135712029840067793292373291839807514341549058646068863120723477345142021568399674583322584133359618730424051909158922007790462234459323400382295262288924156248551673546076257339553121185670247876489800037584320438154355065365916071024023172404583768689195093360246284559204643824924505611949637926503039145698360398031855500405433311346768208352852681354606029516930909577257155117346528236435587984912317379671096549622940054376196695691631698651082697569469756536043049755574180370011338382787096041923861662657889183184699000746090154574711268905736648044250953468168486733241434929724326561408850490230835391856440975174739038667678979654221535131240239629447988492095274536892921747474418977138347638535443067202669725271392263079856324059933850317347507351925658937125723554307517665145332507696905412780417582126175119682568594817044819930120912822885071141520296172148439736198446474018975612528571221802024911767026743132184956908776397201432865579804779629979264389947348016028117329375948775570969502061185267577590230312580631049116240839569022943182815071502136178270172996192502874758498749929189163264917576494398067256818841790050188237359986453854261985719347819771831831949487471474250779806721374405075971186804746714063896242065803668359691146089477743482809944433870774027904799405938800420780050255647926517776071454815161998985645418394313156173658687804514840869392040090540276265453089688462728808633041283901748181672892590765449518652941146075877390318214729745681978112779558230610372903230136241680513164607889602024652411490230403038968836352262461753367478721108525677023141498276117972297680143203983916017854057752438697448605299235755283519009341181672140965636812818134639475989067134386047981474323558161016179520987912714126612653671642422499883280200897740639101181158844189235061614251694726219385338374974756350556990261988086055962415622179836056557406378004544698299006960800626728475690435514071572155316411959249872173315212431147319011242060243763537893573006884473980304287252685749596216715178068678897103705080951539779277192942811025603322253707160741119053821666502834055607339854033540688218683208401020913365674557500739559720178540252105003697557557509366264978019587189906157094971674306304441896431240265171999128760705571153034556488241597222331971489451721726813491187419615466748954522214563680205678672371886364999406964117823638699132845533093323354330277962690130425789649300358375447050260918835314708281693236109353998819129366314997290883630801947008386176985254148430939206006884249351024284635405915597550244562210244975638283016503277472765246197253573251600450511848251625079586820051283687221601724309726022718106233406354222648699814048266970271708021381996857090623452312014196092253797438424898862397047644874032838704267569015269884426229094109737223283910692974488401800418269822308788017444853127782242211077393588837363766610593597517762947170696854950573613352718440317981057777346168599790619731603071534280472672347353661837850504224219719718222447337703544933061039337057169704932069812075755902094857775982271694899499906673214522024282120545481606675000177142974263841269502945138413456760610967821572685936563050162195662405694964154853726479779388052008156228612668359226740228104915269437102046592395139463147347590386242993368591346686278008804771377001290389976926755982531595013763472150640778585023247239363690136369698977456708879035247725783499586595053515477996254406952340021551042820590025557142717667135397212527538921786488496626961210130241193012124422361767538555972358427259463996806036976515375318686264446885276999927246960952939140117541129853953681064644362454066748433313032154806797215648282774845029158462078719229011036197461049778556629876169980772549579712897089309051596744581422113603860297326880003775731189614304900952953747558669368277296638378223740274217818853711099851045590175235100655385252747596763757101986798485727096131733292188478207807650110122195995500542749354274347420371851280610739252923830890824657133006999646094273014574130708096761445275117591034257467569786011480990858535693381030937164932000134928744287789101096639354769050575990159855539743889032561912241661621103364213532873919296805592534451004837201498041412741592097180904407411138341081935533064317029227644451012815559734875742091277625767932268091684894998680108674195310901416660613965611890154218971215203009608320940188512265838615147488223785309481492953121127094225521441956335294739267748832663369076601494344351098304162703294750003017436412152341788791402395435529760222943186926171737515307195975044501239715880776512328871557648140124594501947476368821703297057623595577195428796022068443316046464207982346515142552098915592449204813883518274923953593392022418758036970668026902511802084391245707708872817977913632356158722642308736088180327204039373652913531356814576991925885619156505971221001842428415383591844817941015815621764461817037915389334097252058647186731705043311264930497955283041999769930130967004615127559065328502426520720112379343969148108070388636797885640586309266957928004854221328239241029419158118590488017712484755501449640826726081318221445615655199785754226669747328296133252770722512935698900865371639876044820302500076645866823493444629895117367360905270584843045668295261448002810847338484712133342084073680877339868695767597512619475083217391582334202826072897516161901421252383538398484306818884779305137847644606743220135550763927966975744902762033370942329977313722347091156999812678299017173447759302895878857032453808127805065020321312077023587976421851556293544370271965809239454153412797629737178223153270376232573270836472865871783609954316367328723476374851478314296316032072819225054218418117002339728362056449138153114397599762741367379414820582439804513643488138501311138442951564894856415685778334391739185367608644178701979691470684929155767709428132581299385751110406305366349821457110150844906190552760380678847901359036261500743236843529603074385332630214275453944110391144793734688976811559327983897468481434809149676353970999761356159171782139922007652232999462186334177919135861875809064129552069973680822895583754927783588938288515917054508660540242552328722613797077842378058335868824962194562133268317941953767102134036701000382360422559188614948410529855133199210077860535498113648322767611390609399490898447336514600403522453764218324204319829549558034514767650272442733449511331002273038615623500020286170033627045490319146973041094794569335216581450927387083570961950273454491098178724640853512347421265055124375338482808484339884930815247806169966540898303047607297260644701006873772387780750255750240628604707605158397602094930187727203557145447183971038410826336535903080898177588585896630157134848826149391511628774903579150855450413641056530859442363935581871438064384075653059241889101158040131012967712821107017530457161762692514186514351447861593569882502077615883142932998139477805314285913801182345662414518546586024375952468398957729252609785485890693784422231624226455741090638902313161907174130668378494317547799473637025223306756358308449862531844979711158848900843963654961729171281766455744544989111208337783183188135780351106554962982221617022737187181624685057224147656703887836038182654915459123998674708463607629190493663225198130774280115344647195324859670710994173919133123646086607346636557298631811992115620261862855902266369861633069382315328559459115833475161854958823598148976772418193520340175542773204002879441422451205856728083781422628275429372498320373013555574504213481045993348052417120856288831916911081142260785570276480505945804263219403584664322551051026543147135659955086012288463794730965568088788880458133935047111556809350407835535842534391825493198990938092772727758649425149303280089096964712752067155757579162843475597995207121785271651598045361184960045772267656663788345924703996582891815231430105039634205428975865747550069350476266445583574337069660514802444338356000795661661465537449807041172297828636964421668083936724940383009518230821277702387514382575952897167858181987660225709955786911850040090141273093734234938832726316451389530502713976756071145194005144296869547125396240974215297108427042765593139979208078829367220024303646084668890141521717895029014935017731912361498397160906138159359095372980292603472396168660786921476097620388437504684879946382784905139809153328249300479397891588619433055076327622437512337640993231694694021399407783422874495343756756569245649606679498541014362068309935193554724591507407401439845414163089512078579755651171097941318686590295002525128781165458850153902829641872954953979942243795781173402966046312620306718097133019012014712664908951010828783647018557356402426369314060763793364871167792229897632244954345982378838736483674469246247771755639698267009365802252588075404938855167947214159761046771792232720644546409197718943709681489503416223619797093729384445124360042315527899606895761682841442789299207371043434246841055337051910896189359878869981507140501580935725149577656075563116205121896298844195452871086307027572342934440293984578731434688648904979532150639915330319651562011432187446980546196530745406679490631295760184545016927441283495886288668590509866030031040351941214544789134554320811862099800080432897261698687480925126597489573786794440679045487192270108888992693735821381580388928910999214580361412720966821410897361674151566746633255210430579929230147674651760298565590796627932985877319185352129258418397387757489529047043339466237050280607259140333723411406767202936873047122116710403222877883719931402993385255795021922613344436804667836593001758083612404652978660202990439976608652774477051074869871377666107098359543520042851899431850141154415394378755250363380752201604271640570346906225921174315626489986738414411300176194335089441215751719596710907208782610903185953061571739951455372541020683600568822872774086600055266501140314624568636745258167242848954282663580432030886783840482964300923390985125784274905807816734130401735389706779824907446319536754835974789822607319949341825463960879816948778574410587828814025801078056094155369665783144225229261647387568328758287027173804999747834380666134066317485645944136105859199931410499322488960841244387872339957695178119598887280228671663932379332349965178836659504820310242521897615351546247728853266909384459464940124730454076088999731243068913293394677661877962318633094139559687880639663964495972869564814722070041012350449598906104047673374558551581550267858657795608247685275006407569270829666615194098111385537295159770459226397077795909571851427005489441728917982408110908725514280595154471280095878703303031346306982506567687134423482481994293724809585458020288191402585730901867571129058176730444581615844263506884437858218719017877459339535795367688001569461812285872129697372623040726134239015466001134012050346518183209671571152760555050985206238571307167110069447440766838613758354482466691042449662935572005800669139534766724109694741472884481511083773448271400833605860220328772125663328809776629859137279121035738364372437884465425389300393164065526877173874675439554399921548443920081968145553751723711616254610983305898355633935110166893529569585114658084585320131782316616491996680002513870976701022369656184527492823531836571454928119325141587757673655784442872928992573523572857810390172281105873991543836875761690301858684251083258966360891006349213762318074345427062201753695329932513559852866249940998312133228490938231189881143477102190098885047326358349316738721302399519480949435270065046598243232498351564461026279479550824352928653120882511778423775710784647869776177580440895046942046189373470655244329110401924629609174961290192034786056159083430962877106637478968444121949921320866287706574366976004560634782592246627058235212287820518424411444884372673754565585773957676651413925910736925466336528656665735937923862555079621116853686095078804568661078705007696193990238243477220454213986534000156663820707324911329038806862053239025042146060758474462978619171934035548479473459087806115668742071178805831488197691290010791071749000071529625979651093302121859083687957874984585528906768981196781708651920710463942238764678623610291096224315444647624972389201617157081382619521038853917522118964634107236433035189954474892965823349037750340830551190612733677761454335082383493101771443408728287732344766236891527610760174200522979527359903258081033924139335611967013840333334722390248256951352411705447456642897117108159945560677917178974835818077067021526843096477045872826747351744389790814920153092371765732906509069977633797306978671650405972123633544151154442453882129233509421535919623889111720830842375065704132467728308726721492590677819527212544391585223711733648760647272699042248281688453962536962809930476657114192978982451758229574722449093510980134348743547293561719068840113849698433403520209175517706958553083884452320545288561917833494064929981607930942262700832046772877917289459242684768861287560419254641831510636806101940908576700620965308967541490516949355528088764988289197559141631821788747903224529940637175321897861602480659168101625081719380996612250547136543076500008608095771990326544047559791814051966830693925235770272097227822774414865583058073621312498235914375197043275033049073560295355787463705115792935479871185645423181672454024150199226352708402107012863970672822058360648098651486541290267735754242857144352755342892139476911612876229788205866072308794004845731512557049115497155869599256444908999882155107599070275859045541047249911119384120440387365228090978103725185940229346096032912958360242672922979631553571975339103221376891933203793060288311487705404742532866902819505451833305500174643124462585712837005288693716335415487158896158294917352158402053540198956851446917481309159858876495922188443539669994448074327267942802104314113515693114500585518545999709250478148227713878783906165376190767459213329593010770601488637838473772634547584008961187234809980455268864634784421258979126327410117239905249416628034875501984402231026011592157688197808085599899667618587753147480326004053840457986506366331716335588807281947962561123093578297082652970524977381494187841416425063455282834575811034205228446998801199305767293578491544145615020243025672940529245813212392332116459125983773460111965871232063788894994182504308810966002922852268869741307182731601446107583804009271754843353859757274478978833522428477262858364791270225387276173420443706802680814331093893993585986888679754384645389413311686268008228978945616895236984532224573171233976711807702409816152333281411085570085370143216516776406662011033830692467625653638371799818781308965488610823846659431013293484088181258910269077839017120384975498935795568481770851944340833104888452966669037620980222357038729521304645277525418355397480367286442305100124091504642801530904123226521315912044759297983305834860203449443212310964871277585502329396861215917432423192411608862193396311546272117083018965780199078761330197451303049522089515675931657833715208974417701289244923548801685825920576549817825580736084782911473916923874181936055972006249853057495531274488232322044939133625409638904143802369491209938215414689239717101618155936488716242280622373435659387491480989857886868554178263710405841364858975550299311959886796697464029619028463790869710312357692625916732317392949541862571834433327075075304436487058051491672529363228740415892742622788657085013177630805234195340843168665267670855863450129314798840032392177204923443720789520810779094563889232281808471880327493688066849897700446349483079766778395551778093106348236255235001430412246996750028495089217819890986768128694643336355836517794802975758398428366571369353335791715397850207871861925288308087148734187549041825215195364912965610456774616731424980640501446457585839300743536619203507605443711604488864366830995698651019810187955096979133622899143432052403172724773508746502005710106175686607170379421845951347656182420625154400393304804697356757262796520126970464194425143774911679604516560864161844798577360789148642819756307001276322049130092422057118251222480967481754106193490617096765881345724400552763010022720193326070237416009742231059714128282288515994239599686165089148803889348289267840594850075279931876780366645482379058388370283660298622696789556819566738928252610527397392476549045895607667327808728811982112549111007390494324656243839604347138878965368879882281218220590883507054909513374966138626738797294617075605270790941401718366574898919356698084028533858231678756515845936772644523957120011183970813203690378070465774116016620010474230887162582917366891298048064662624816150387146228307231317406508024551810146559669939158719308070649290700363865879595434623597637827708881791846259883213557967669814185515585691770643036359370834839679198905634774755001555530573064671972100489022522595500813982306387086449997081853999034650905918112757550592599638844885435278447600622377410140841629570656998595158115020926579041379731090341330174418572851016310563485489757672323788723650104934551800286987914020672268134741102625966396066828027231272888831152048705782320066596870911533082679425619980688080771890176303379850256801799074111699024887488941161853159834544443835337175841893485663120106692716169060626585067315578181289622211796400900396143117396469063823718939340354509943054318395323358144630664546031147423700376290615966599089331828643330635071347581826018835128882793675103232044977784304084424214821208511659393629153600489092594616515437073579993309500434821660409447740599891872023754758163857530639566593801263484513125054065819974060171422457102339693760164604376354224975916186341495320758906798133720862113174109358802454755828912621988913284712801474175355750495201145984112802768380155735376457879379296224169610713365038771403950486885892870344620387887575960439739625161217801794006219837858721917934523667465224804191590091709353887021876074114965939268944749238749918095796015591818199114361316057049000699982881035056896660508145836384231241879152141415232178281716625082505992232812281786239513294272286685321180144454035502123529080469683934120447138117121434947424010290487991145198127512524405728945710057201563357461395565493834304594412336848426520176351907983614381310630509536016372620418938521861807132246771234348250719931323542039999430038797673687450743020676790252291087246260948431461318425206387144475991509618844152605514597318976655018520597931826032171248991081210308502915278065450668840251724690161719490971754555709154308725296940978854845081347181165248998807063215151371166887409710417144740059568166221986732536841269128656497626843540297199632142083150328876435540285411868106476759177817013742625736339911999875647960758633827015012732115684469838288303976403311954263853779931395712135847357871753054384122330958204291591277141159031697421588566906514047552500927788928619258131084036536123792550337957173499599398865313815377007883754624305697554205543635700288599189980484326288481985185509570169291539876624105709147189281553447421545795026203130299534043369342971966597015496536857419571072381831122170255854122440420754155417979030416229093588138760660914046623550160520272388734008576657618150471879695187248638260713985199518333343190838169451220443719419232118257647341557844987816322512630629429917947282849983196791854929262116587610839482017108079677740955986109745087126551096036104588408857646600540417027689446410551570928446261888597989504060135185868769651279040445730634999817624279447568096962675067184729855645238821101655418229811008627488044190161389185372926307691343854850251368666146653243084478858134081528046032899770767600503408310893760014377608942797885242683093547168273066261814906196731774569862453324654594250194683907509088966504605428041591305592208846188503301096699831807419272619330566399055613863501050296214911627184824988520829328161919996923952318005582422132015324159389328472686286086112826586367693684993035799108087769355486802861080844499874306763344853236381148632049724162723419261859033020808808779729238521070638661784199217148642430755699893924747618406829554449817448427737900282769593947165293779559553041397580930444514838558460569366355952971305368824601746966901753408273024001868886298765936320415140169182378260409340260018995649984623439535648311799670444125808354863798439557500334604596602958385887271181445935653206945046249731828686197631357094899976549148988816779390563762081437979280811754610670735514696325813406476342392145289064750275928819852034606292445851499860165683107226171396983139826837255005650547815654312444032766058697478100247102266395804091957538383451658181004849908081136043251207232296384178648993462776157600558140647466019939646762930348289418591634255275879079733277010797543180732771236436972810289752136399463753110062930164668233185571283463497809072572623533244009952095669294334632580264064942783610014442457637469358267713151847052216175151938153043370002222886321894362060569514157280159760736662124634991867562707680853885793690867882325537280517850751398463711549001419042020174229420750113091423303897160857261791012868110004308834636758519200686818864604904195824597896653260020684920686758267282041658140445903188894630831632737336286744168285561997222865073368060393830071110668249325412651520717053205661090105409462975875281741639368980302634371152242771509246560566882207443836099337119295240993729082333506447142265955712977925686063599934664320713377448101428389798992516346686646620602961033754844081355551605522365000224369954118504422235653325983560729712542753581374284984720055649485554595002139457264075766697569014560502672676433497049587483094121605150246990039813292324565753315613958736346476786273289157967306673574800347782854104836646294912192885625350109923290027343863651289076909664762264813171267293977490694463652571826738761581342445355549001633163319815998667629550694364412189561169157213182002643050154028195894590806309261597830400021801931386520514300486715230101343964001694399721524735887943417629377106929605265995238228942569528010358977427022929760621457285701597626732108505819814762810633487371753808745133099946894814747446038580840795537760354161762189519765990580770530442238982169022350824403271126455719409373365434138838096427986392214864896394221460858331578465131135029149132461135957711771695887814338017331066819940981515212449644972987130800876201493911822742617796599537735977687463815499716672930738132421674350463640060907246445272208713086188749347564277503344108969370616397305636726096347609661528322349517920542712570897775069212517265382095127872817802590446214046862046057051666275911326391819114107391600100042463297876548485648216345539058338655545177548331256962250964723532166613776431986787514130130537597658379258369635750504235671158353710471042030805203762543390556060461567876931497070222897269823131610466916473796166783937926729813570610423214830458386100183763926870201681861420013947288476379873602349622703620580090086544491560214407528758030872906527323178900870059409014941843005375059761497979603527155437417992360600990112559059683225440189508224252494614513478526104251290292396708813690638532335140993256825314605098757541827629456517218800691830407556462107234460977035756302665425570112269317725144071602849810299077945627990460259474149811727273408822617068007870327792391405547636163815922984273506106481905800028061686166073685693976642304916871268008135752659574089519107443154694831519808283209260719424254848712183302426575038541708410218554264522480054712410958280142509976702808836266987233864960540617488419777814800999831628170290060783112271625430688483619846868346035963035892513312511543669780887567645031189409638704383996396188572600701029507463085103884482409995277882323057929405743224461560109468235776608617528133469001469407469781154059404828660163517950058271930841854859678560533808982164613889674297909602589906705383393768750102674932290734618446527046710183030863036105528082824329248486453231858937740211788870038190664654041097934068484225132591347397946387612192621987227430736617275518282203560019018402032835819316192636512642636092353043988479252122211336870356779751504051141064911512248045006827491756762441849017643003780468217426036785582574027788862319152784676925138171263768491588583344362782422687062973028620612485852546814431756778690091066349334993576687812398158635105449612325304489424593852543610682991822175453367413139843892831229914417267435939196592839307908808745682763891400176505661770729874929070501473281761708257381984931004842537056853883869223379554268990011281971444238822825492202058087267658223874806996281274636916629417574174865911409718019890066002545223218972464817030792569309835867966866881026069187426367148809858313711650670028943659445603753776372519566397101267222902220204401422570601189293751679482499867446184410682803980754363646549955666832532840622806131645027154545262242814151528135701739761339337779274423310345614355632047846872300125201045265141765606775145943533952072036682866465434124392374463961303059516780408890158286458133770962105618714461477977694776197963580803028470470042571276057265383153894905966099364497211935748630864502623775370197971367241477390902318927390245656302288658142671616165943372921920467757443191109950973547838829302641225413411192518634900016765004925496606614918494423557593290959005275245632721968714447149005514265477520252368358539333469804525018467147319817347914616947936921635002068084010666059633514208878950837240140743247753164631576577364348759039861276461114679427260802097385596033143714531230215680727247929848871162647235453725253483530898462068254604124634678491511215848413306523638925398943749490794916694574956550102333122920963391188118479804709889386112501966517248483613875177484483875404076413803934950983534942711232013782800713770329795030561484248208919121687562392881822359327793449115580537531654484182742165574925221870205131471388808026252058405785698602904233093008002911840114186172018287323456432405710085578619009558843541704752119072502840602003635294008267357137268316564964699047951684256718535901897232492013940401605445737695124794163176601868886555657590373789032958413832163493989585159074158021914045423528920330685470423920729627192315152710827961184961715666763484199851576663928207404710021947989185477288798746551181027314473981252807222118055533191729179245012791591154882742199101192143853243358065939734987791176514228041987557662593860171467745917172384194376263253084520303840027428087493759125223315838987213176708068773338915597170752545615867471283184432353285810972482776108712814971699183029786552855578863021371278095207761322224100493250161960491023965828927577419500679069037974884368889558161321314549048934770598477404989036563718705803660918124698183078139793738430943594255342286689774743582565143589111617458272201821228768025995946725155588696053067061891097163339372810982783019247944087938598748110162920445252391063070544702810035022426021507977599465905532369943116146563095433781787682865333279039945147003392090905694452851026205545219859266685374522964030498976164705011821864795055971338128713501722915937892560610778734081821935646779465472764476659453129475710396866898688139978733208038113829155488482521864465213401981914695408635314959780601395108187598150508004211357432935151194859722122830134406015771975984739561809722434862375565091670037211885541179382586741494851177146862648922112170710660023905649168453617284953982052549778472387305692367698978798953834722410430758973741339051170959885318643214600238486290883646135502845500592297117008322020122448531358305414963523242311023763024973107174163590304473938242216587411936287973352542731206588995965686168956038794366280795982214855376839750793421161528894200642954488777190746286971366516152205065303346908068387557097050917058627079785645266907020353591910538163145433171370735044501192914123579644921783637933821513185434983548891508808076430965577108273091046798126740474465188794902760119659916652545658347402232758006492046279150807743181992128252359021485023138686388598495163157527892416099419909133883064699562011683871417817254983197098594279184387800397062000274506639862148807617035368732312101406324081747408104276250814400327445683487517169632214685312306494906660878645792110407580480700030583796465339033575641620947758614443608948332529704192659746201522684165304224411385785309681076807746664003404158090994722977475899110501991592592793973550814894721817531778160640983896750447255866526806946911596381352756550537640197961061914954595071206015203328008782304434358700524871089969126109162597950153611116746287499772943173500828641385959964617701878409428866582513248161694030039674514221849046507187458656956435908664453032585827127198779279437131832737606263479285208418759465126547961081370373097933394446172574477186377885847724344386485300734959658998445587764635039726534161488389865779877103626395129231726532805006112121909062283222494347324953507704043988912979869155147858815343866565417120701152976864491781611984146292824092242340847397208719926630441930026234354269133488865640777229896329828959802084231716516324405040772048489949151920242941879180604843165188237655409286585415074736971979747216250227673668594625609608677555848082314343594095184822198372638109443797380243354783838847957119720168113710280694514672842104670892224766868642373450800039821479158472462335736311567515647974461462168374409854200672458559924325383729147600822350966460629886069915704329914097671216248066783050929198646312688322935850618029100790172880172207322149633844735070231084103668232402373361889307411175167802513860087572726087646623174099018297822158190225562766370256401334011538950767886691808379840546446468648833075140820682565487195051662643703223010966366302511064213556689606291904358087313115961503753220663736518601717399812485348814784075384795681238095269023797947845886185839664185814024310268928877862727122181025178217124999514047797246770677084911779478286541437555831995572594988128689707024066606670625698082155672027704775079288592397405625056309678081596223442567381398262563806687550032312388677143376017400094844514377258574842164165598178250287768546085883212887243265080635185897735031854772973999619251372987630698981494184274254835413588052373389377827126817889000085265259382582904754672343289778874947390333284187235034738155268705168317128708034558638803946181361114003213182361775494241563594208102633727322617248549286106677736873969658669487369115302586608717182890874279583674847746546353857261101254460358835307483504644782553367888566412339049816399888420859810305059317553788533370623686514236480663509876341543431816572923801143777293015538202976798722264287605980478518384052557934612960410821566354162517741119175385793551498835311568717370166695738021932226918521773709195718591188405620557422957049024448747379331281768826498898237230731297523886528926971291041478306892644128962567097651021497039063772822427975229756165526237765128070897083275417759618780802805651934937337786909313625787522401200154033971343611078885423384176388296454175991284572160299003999364469285863897252175883072282910357435127163229896225772761460131936584266846417961090981155035010551205390164479742078045684175701925953375871067273324682809362766863514686609908715796258259257355315285823488273901806255589225756822661381546501177420493284706466643260638318785485990003990598352218431388286781695663597135323102269123599741326844479437003084478927317337071328297783930119286088811131579405023484066528729229864258709846578357740156276891269236531696165277460855486047971547539176185788277256154792100427230758336456963699971481924581838240387978367377166718683744668700106998535198128694623306126862902921160850537935534220949923954117424849951469453590869785803558483177672408823601679407219318399504259469987069812325889498688133400251099100542201606996128118808538783616815814553416266605714263917879849573603055733981380993332091752430201966084790550781964178995888040252167386251556058974901547023476558595164579200146171312605311463525553155008495371638523655594036835875742518864086798649193263450334809290665390816529095188449476293319143007988638649025685752244423746000314965250507651992712439988314954233541561680616107989521667304274084904555771819445989237901533755216510320385154573402911347073094422657073902475361010910516792091615406829061229552561659846767660506212316044069354409061221188768137976260092948949380704509621833362942297755042920024554900176809843317003595892493741450261631813435022013150957835980900897979193533448696772090847407127402600078333809160046838019057370311992813593705772392531081302018898535735497006391324040904652963345809377953497661134554043291055621379123539785203953119032369347211814137906390222497870749318658005854057887963252381972171136439541565613307932903382543257968622727113710035043818499536352178545350843134159073846482192761310696757844956364070033753266524953261103028531155311620949716206020317435773799016780300483122476135967517318833573026054286967081324053487506380806669125840958032297218947361293750040136020373301710021894979475686814330379559822688501682072186963001384872023368961277487923765658970209294146332008946741053139235780270745619783086786290279672970208465089194617121081074859384340455532239395212071087284403021462734912660869659581208068614205966809524847935346375623830415956536589216864626647073987098902456231760312370383508662041931641467769046285507919802348547319659949092555808973415792015372049991547231424954649963185354156518936412322947948641306501420851850697545884942788100643343815942990240212935535668627512774761903636303559041414185481785664776585735552951905605685458549281541399269738971464010836088844586561029518306677695995343280693610815397863171007708963022768323905219136261934180159756644129879528836519979343016710055763606953183317606417928716408597696810868628422059705433252291780744809064165863728790811191179609570161769287689185766054092183273677844034890021725247372139279225701346224117168936292527827351339583448562669958198363906297161402276397976847519216773553300318745549600577878391426543436546602537346391893456196183106747153802269681639773245442999019835548583677122792849794532635088320908375630236635730569693661232012707680635157974101135617245465060959314562613152902984923128682958212502167344303776328082461676144628749504458252936106160470779469265336453129082940622022361648775755709603432149423418432536366141143073047963338875302920128270847860021210071045997437158431407912144722795402142442765252421888017668280626113977884295979706505802386342256827620330326740382887943892701211880924969386172582713112755123879126683262935135212493234093925950867291876831469986292355896630811181135898548877917944158411858466294861516907744211531754647828805533487685191162425158524211401377390940218585767073703354623304676747549536473999033192960823580165497142589941285167227588571297696462884622758411172514091795689354305214400197106796668982173513937671999758190879069061371402251584188000247190414619296056140447957380165689971141214098697017107187842247269180790907949301950695606169826852824270809962280805336074916514557095779858635413019885202332951369777147361784612053326296409147590341187323464713043182083634111443907437888989701414381333475671107892125815289590070558743936557579897513302531526823464980906129587515657286650355818261383926878223287080897719023251208802970533060495545386770118538985194932801728495620021324255924551352214569110188257089566532927633692352760610516810429152444373399473381716382197818240440005623450164530925609258113267522257451789982004969231889670467708130454062100418065284729669870053503962615913298276616750186365079880289449054092437056376226246679568515551820424969037660676363473040357953571131456232082813114329937985037401273875923515394534806096966107391357257233281648835498450921606527827089121564673290958422511218603758245192897062992539343321543771445672790854001735966094042448434549179504375312247027390516903721994895776306433489636252759595943489193337983996383442589964666456820074216921418682894760006398061665800188581347165600529726493286110104270328273721779004181179795047744168867706533085176950713280970440171049337677785048649623669536583970370857658620246266359635508482913993071809639966693853597019434487283426390057451510701095656078465967511411532518011931689996160818901082078268583651052832799256848132451798811115478034113790828634990282581393902386992227183523295249240196541118497605418009629012235124387066641592754878583655965928736815784041849726091864407913455988790628036540115950556738042889356723300233012721237120382052587257951065551523959507295608645400274334085177294829175239866048536366846418214153302460639844471758883323605312633391799802208642021144902755337156121723921912313515402527241557236239386720160014973632543549344863412205482055463209208938178383860013228367238342989722360215977955705062168134320682863603826441052199456302358878482034136726282085743849330495539909381740523592118181235615986147031882854722831310544847167765388597839902601526702230980276560371925441269585275734462212436177860883103635320802038263456493935550510423688290445830671415881993396804700822924139332026103970973590717687619299115148994458483016174733188200090588620026886701052664790311095356540317744452348395150582633555552024075549603220924189028514939742681197606750973392135055370782364310659951307734933352858756184151067693365406818733618983374065049995541537654204612295882945540724218851961947403036264836003093863059690964287742169723085244167297413337725604379258744630990409104225167359735461388684627694952478004149829429249633213649683944191571279397264510815902033742333318162263246090717138282056820050349235188291694035124018662136174974526039381991159933344180758313386043356395940200839449815338672615854202965999964619882366968277144020051661376289687497720403604526504939641512717506943824154953419775365196573347033513125664896464723689276949979191751425366396986174014546056046036932068529237473739419940850658328369395794150895894954480896854367898149639981148725879066851831539272915852555080530541720835059445776340988193009064157200818244287820376758904215564270457882802977152349043094579191438654174438984843747980277431393421785039627959180435695836077331162619310154610341862826915663820329587338596869424939094446270290681485194293740086049837726498708322185561161185289643478339776504877175406288556739864968618379226608162340873742018598884210416140348591200344871184261550372198668846930944447859437435169379591987103197037318400948972080370389073131185276098809401875159282274984823892251096176380720451774225474607534520397766767106369724489020309399884169019289817617503669386878384540114493988609005203308386150548330734370095118984256782324215290520647359888661881114059967012085069717716790777294334845578279141459940329057408225195369428211383229910463614865837678642935841731321235848621828337903148396605800966276768509820643838253691686231698748373529978008267452610670997186675976026363479924742530774082089778503736871855902963395631215711554437327450424949638400186222302519440671593852099143737630144354129606646991439206614333630931260176638513955183607540387877625263350281383618553469691909257572144296164847034451629298627898194118403835386643261438985552703784418400937732139975443064346307090872732111174541820649084895300027094151846166403468269483907623890661953838489791334710738283996946766942354186755294979713532144742861356606407189565525355868536377893629976910340785850038853679285778127657772957479567158454402854823223840070666560492376232387500947418390435439088151886559916286737664986073934269645674255986654387058853135178492045253703565165856708591554309241905358409434269571733500637865348822282178944804310769487505456999171828299715676481984848021597393820027951376062517244074557190329051356334509035772309425036108190042648926246199309657801660997228527174309540300908110618677175071649806821616368617714639891069551918501353916942053984798162483065697697003361730865180137927173669971898911007158064274595023921906941128568501605557097253324204775344006284494956519774154290023711469055251647540996045079226283025525525227254157884124204511609274115388274965165651233583704102046360273682309421665529178183823224281718399424515698455199216055003696077895857664564658976740863117615909455032913195427125508559478248703520200146027001022659049053051842408542105315805214009164378915026782993327729648858917411551953331594680005074652214993115492843237316534990837049741125946234984846533004909060882523596627427869973983115059138127586282958137661939167142680104865347159183515213329856250473947225817280918049854202002274290073262751756624945418692819096416633280569588390530167581856635512962396759113587600955757878720079334248306097486138367928533419530537833910152570163035698171938567613344089438562799046186864197921114228349158025818484216547940982547344384913485986235549902718384490931927352914102707400131681389404104716809804505326853227545936565020148672972121362814867103938043869557745995138314884977638903837767606579280307474475450958599972577809386449342072054007064356244664483254083313691657301060800753964043609389657676555443311341676583168929085003397557522154912298195813464544624929679448384649318367509998786214422022111662067974317979090916217936678896134615962620603461717804605559476489225068658714144292456387517085743493670283039392063989325585414761464767906173572191135662974341625213060768529794722600948409077260156648100974468700689604973342037191588265449390340958333733243574182622268615981801540780647099566199970467109709788496567340426719860596743445298987704235726214130783669760053430416169729070704844098260312929356635404856206981989460990119190473472215332028181543951446813449569097371022235145357332360144272801681863654910443428010752615904085360449311572375601787697265196288454873608518280107792597430371770986764064704948827190441334702346076179151999206035999250666674908638073825095147233034461743885877167102419043488246429295667843286631294462170308753143753431257480439745036405039133793311713084579552642503078873012229615043442607207615285836837630591694836948904529917719059684727515943834497069563976272182322467915758006728935583657382907989560226488097742204509863205360922520412444792443544624924433725801031775743221302466686882030598086560430259279828320078628414396747316989080206022274763543622914531675139691108582153803137516803592143099971558568256271263125774273560999186601386243623695934261203067085977088163606311696516353919743862053480870758029752783355706039912738197155821445010512285766330571373717267199722031937141039630703210862731555477376503729430719234865612126692229514608493860253531962044976878261606640641326715916119793322589244349007455013703434851584495749466575807329158350484555150371563214515886479389210293438140937516305929442268503186606819991383226262418018382373248689461256377527621549211850300776856162145746878230352047060098348226641123047972710639325850597926008921871599267965198569986718556096484767300718958129230626935946816430453068411627306424990955421958996547670456948380369192129588191152467404376081319921755022291381174600677392150094900043875322103601367850921095595537797016323015581732562321715896349472751640925533333423529800014684634060948457204556679176215020276387613030291966236293117899823159373457283038488190081792077364067001803933314944301588076704270620801301444289791028125470805936792886625220710279129228869813207311740455128870763061398502344244505607359622781992933588720856816988181671818342902899062632180184661441268846360773635060322594277345438031278719949583138713654012006344914052249192161215446696618233497508291744079578489190547381226366445353024493631235024826653993194418696418046409676989622570239216922440185920347823564651193728800554943475223431596402110075595832173226235386599816997698779029612338686150420028742873910219751813076311140427243900429302562047743807863006832688295887863725758062168513559466772900797743977605383878165416284395281952848281171044034351520444680570024327523066652377062905500861697621588635841571528374693321396659324203170054216370993700273372479685404935228295240583355538829554022083971810641428173399143243422249456173626948222952801975231929776369254620075811428853226797594358513062251180645042761026997704348823213836656458803949519020111051545783521258690785796564050580885813980620647517885835622590665750759854754517334233404528356191666493956614627419711360089749390978405784837988689978447122250052314689333528468165087803228259696646269299641628045104803770345270141137512028504681947851487201000594453784690629506416198812669453804340266580746245480687924905735992345909251401255483097598541849400492816219542587550840988015215564469055906590058060444616290832288852138220034758310174695206374977253808186790431605685512283241936402939352924888746908981595933966179066169020334796891190404824492140760178036083680760905251218125563749151342899757954006653520196271775368595864174329738641815446672348779777123638773074536280151340798636607846387213481593685495010102282094084777226357370007909130524955333718183732733178266444378691182076057930918436245745016580850402970933802418590368871884284432486456215480713556950290456350330564594705356386440712392259742342466930450120063100044834800545985078681337620894913651508954517098069336409928893599916368667228989094602108495837858770448310630401080550951197954321985761031535909448311494988967931781708253512942681117643596729328810750705975834494597219443668874171999272446577882689100409487815519027093706671162879737910460423955495004026972887057338809181847345905689171423233068220308148699237887584097339548531039496735797782654762756824003435347270109950514295543298763505592154202248736993230135291486178700507371783222614387390210581161024539318936970429211691021751478727548313080487230975970072285920752389283671053900442585893548682984092547254490976761045943753161986852319127407324840505877350511455525155733027623441477902637329572133454753621210811869875587998828448319700671408587505002353606184570390465084511696979829050152605013822525669522292516396637859533168487965334731193214454911447569937664467132513758511861486578114972139051379151377678177513796177380430601856994444782995235579774758090041375622165160423057047833106132936000782823039412320818805360166074633386763914827653236638937203705936600087683899826398290365232191640490633976311501452080216447903360495811531841975403961509458750748345915711357175717762216538969269407147260487087590933275436496021141571769653044068755012120642686916682976507621461234627425190184648187328904814595142996126880377303511710001079257299841413439915184181678583508457469616257638970537038183284252130819094522654673093746688309296684943962050267460329678470603429915742435851526305424764862064163593918579573509163361608237415018753108155671150955256557933126298029758123451997301085558527619053344978913512798168475158119689077206108194580943166188074352314414632383567117813918759381160438656023927806743597598006806705337473664626255085439718925397250113618036761644935036080573845835492945335875951916298635543218257175715711562555512731975739288428659159054167096545284173937564356604819554676599050261448704602161498378770681833345746209072358443349678166861762881385975383563912490590644427185965719534444801177339153489163506172979948656669295841288906487790529503263938748487361789313152074354420511250863775990680393370462064281897852436019564670277926979415059310157954312834502796297506956470491323011713049892082359085141147875729485370824319101162869080313024632536774157877584379429373691251458951420510244491469677905566180651951498600365900400161322803020646206152134756104355697708356698808804100027163220072644261547305239686679860122992001415125768740293234547656541860138555902641097371553747475674189246287305687422138630348845755919446451321018084163359183636709026328476631293013126650371259348829873479005728714874876038071320276399021096635116489031358440099414517777541048004855053606256760353229432172658052156846958553031883250952565794872411906467546048030905980553480297413651917236156579243049005169290489939447459271376038788393566005327431049289802165369529810644071804164353982662173498837795034468307872784217405523724730391467819338643335495149950456421094277871285649421380892890424588790158983479243348941064394728315499315620997440458144811414227103637568056231194263875525913236492320226758028216113171040554429497078913286153253733443099072729000410700221209298834477116604721217192094934293866135858599564578791385513502601953526184844945790237849863467911611018528343334096030636048880006344370836546370365919541237985429695450183135301245159512739551414079693337283408136800228021592204413550577199735365416774572967963925216070075204408228068093567894095642007740020758298022674382953195400562459643553171542189369198824403353128006525536566530865261268870695940425735730720691972298671169466649450728219743200434396666006914565899251364843924555601154731359638069105357285371200090317271933061244063961382954139468004924804823962630831384997482638166644509956269185429691189424042785770070416379346352337175656699239648508761567486673270979064698168043429025138689511979470861657217960751401571254274130825887570520460288736148668233565509650809005731682316019139355296501810137369116443731975097505226332832025961612179780705786505342602169099400432225718666412963777444263622216360562285605381200981462746486710776166703394200430566570855607584130494117520180792584323506750102886756799574871607644707495180794827412608957416606021127060498372709727457195533297050989254995385629975132833743757091323716677670157904877470095560085361931866879627595859913075697757402407951214191944259575609285122676008854516825222174076243514667195403342907440370444947210191566644619669213116153406708485278655778940362205287317926124623763827088907310260453758394814775875416476803313104830765031785578110741901523861967293767038624910350966713225985779666905406487607695474815384399983420586582201329614023843859609963745748854190623701928617238101122810840212504748224741047937089305988539284788325794035361691230986380819692499546106610481340533128186008520673362570948530052975015115217351076614440598521852737901926301651560592850842044899571031303962283110211537155881361179861692621285481337229415822179306876828683209742168899744971347740378210959621527120487707489178382489938701918066320494818796796690070790079973058658774797509660257565271029183849238673078879767511481454887488220725932177364249437581975046808796148730551504000247982076600171298462891271715970001177522537700669864039003413568428823167520799160141984263514669041863354424066089208290642048890221000567535815451570197184745915639314428472423958269350307986442055406844210778232654134551998008420358477340729732906081521427292018676777329887571021932485520556451379156075316327580690687611964429187889439147372502450663192664194747683542838309167515599700016070080746609549035328937119523451218226038250533569043169789177217559011749764831645114040749547977257989611031786586750946626241942521107010793991050431122788596767302048777211954675659258663263068013028432488824925772754236358533161747394564594041522894704094670779944401387818294111840953312903121297038468834810955255386476092469783589085415704282029493403945374768909331636600307428059064258659801922468831277442174391759599104670559241346671798216820087183803185880344746291957101827581321522056379101262668267500223504165475847455475317896391318625354954626049904734064275954722813245810026609752593896888291588301797996525593722075017107241873833754884282675303349770741255679319428644563282491909391203160629950166037159123361132705021270002953477899624753667968328905984687773702607244880771720343837838357642474041386374072501044229973348308288609975522848190729741616345269877521315487360594624965328247854607436793291321708060894916870690703500013029944535761157737887445064927450990634566631369291212365871928594634789497808994370876957922924820386238697522809301642908127586635469272206053948046176455736128873557961558911844288127973121449523881590716000809397438757216989204194422382405243096366203786261920836874099503487103958384629645026196629826100218310467530110540006678124071935462944154250409518704927595278171469211377119339229310277542472282239340007433976160116493222680789741398153308712943619677804281654826694153218271439489678520191167521350626960581702424498512899924259324082114342729269483909699368760102329865215811324723543180218713064715643038508153875102805141882167687668536283320544746254881964415758103825121691460679191460196489971313550996427375598077146676241371390349168190969731111282812467504856248579868372933780014398422081888498102319737013476245796799603962744496644440627093051308657504989606535055287318662993470671068891395867203355604657083908145411156214527950902373729195620528622750083397180210782642459037700963683546498255138910663546848274254735958799895753954533313492736757730953835682513114678079772167500800392020733174540479291670097869613443211814071810387046542464143141445330363204889161063079331664456576548895414062631743696650927692678788336788087956935188131285058641981419346581655445262919338043460108349291876845575382877002628892633162396820776889800433803725721390531866878016295779797302495753803734593663369852162227919034297206724342145999414520855440440343074647277508838454418782925821243353555099907115092404240557471256835602440309133700694507971626406438037647811004571276632255423096761957789884065606913035681051671007447763605553144406348053009550821097583664261372054333902768029892962012317465937910586707726984416128393620936907748476232561516271326364140394194594742676890080990039283684741911486179876056289115442105286678332472093316792711069706831213250622923510286197627835840445210505969131309499958942114317244085570928160830063820601823638688697624797385556364034124055364858226586452802951179055325996468765871387820924309062601327686183216017755521550599634914599844722040946305001716140236458088693306097013884307036468301569587747357625983451116430744930363202953303307846863998751706772746239356381242435612248033194850795219118048390432415489554976187745395729688608877223694485630608951758512672185547624506736339092430901510213074991291945299245039546599450317591178279841911693502647883605445289615241327813160855150554554294261983362273830727499583786639442237225804421725758141953900131329048038638227264083494708801388341519821030090119914025246977883830823710676494632241309438143637933488010065976149587573670409495998356472615743136529448999367856336230008173457808193111458912162900800807524113833284212469615870176900883373179702762582727994141876837507777142240871472962945437134038173547686134034669685246211870028571384200565197079263006385257840855989149814632061932481367655447541058344241880545513477150705780941111666619969072131168295512289337826274214328764353951649149386098351689073223850139216394444128216824885218429004535159205156863115527871112158648175552615539964704370899675797114340366894091999716380053071260763016759193055405833175061427329172279812487403532671295237559468670675437824867878231774200704830755937009331410817063209302368888442622578586999205568219533262041943411802644625612869183533586032195336457166852430822393427011184072415336650952527911474267922868962006791369940735623463223705847473259503301376581741164201806594863404082809012982152496066510340439222782458795223038979061426632543664068180166629580865049437855539037865876963142794977161714105163070678239700968855228924856960173040468209401473153611058298129678874328181722561505851630411507356664506160996178581622401151271502698457161169849355210844294464606462823362882068223233598760129186047167283471558853787169618059698761114924443957549835396850373513846958219393641066974358147329073455539442030814942998368602432441406612644642375861177951434552383062934596080323131724137962292659973695404338442483550638774486848712646730924307192702861055323244318568911306275307169938425657833101996946984037670497589112649917832142014554350698258165023973403232283155103864048909578199160494969610101348544385719094493528784558686145328100972773559192132446067032722898711415207602702244796643857734205216244973217450468151266173394938994862879498939010720509943845538652385592059236653335394510141695169744184003622641992216153574928531932584992154020265423790648892761208426495784343648141923523296016028025507420170113814151626112932435496325343969560477048291569427161287533473121643919635604641200017614766074517055422000506849447551859423559402284249179900191432631774359863627276740347090817925592110179406003006492078923519967494007514610256176989698787074097447313355382174211332532685324717446377741488230317316563249841535934282174357125020367333733164785352100476829785524740860855200200533289982597786781185428823987670259270663977976690499281612315760616380969333427912777819475412812153976192985738053125870918105838197900899044824674292626540351392247226020734174726307401493260029920214456776618516768472984952903394652801963585975480519872906811885230707709666375554662387746658806418055296530454874865842473899539173409804773795692427138042584630966089425706890650683298599030713600048776788503162379980136136936854319897866002784048546106806684890556280149164135954685343372296927648168598846820723407822395722543353815908404471640541111170282793021775112865122549362820620116599305534473006476826001680376100713579024049666467049703312099949783788849070053586934950402134588323019410272696680920341942912670835380227900239913761006576499795165526286255443014261096283156531820100415135866970915929313633740444030793019574292620286893391930314703081504077395448872070248306310099850161149249822358960496924729096695187197285778538014378389814252963420395680050819248242983145063700605522706945034637876463326259653307493394569099752965790734228584862283391890603212069403535143359850722068144982309713253901038346691047168501563756343773910296706356328576389956935285494937750617148204496241138443509681208135544472213540451510849598721972329530471084424671674204142594817874255815053129211347799568954701940290184146754171648720392486447737290964671457518682144705066088702121727561347021656060617995752580982760346999469037737179208573434179264733122920984978491209928426679262387634322101990466348911916446604359655741492488157908083825221643851235180018323012442796133577900808959240425044190787452191990792755105809102421969908828786360381321663865192807629649252776538333702070473672535243103366400624155008407834483810461642133531660993430887803471660255795820775616043719744803052270701753582949943338937279392806133356937583827372356593538252258432342388132339934265241965120087032693798795455959730443699946708774841518527458070997691623409063963729139315670689169268966020241503779653317688210082726303810185173995475503740063114041371522594318775292627894231839641165775756210985176756741333377740864962212554561878088602234156058447294358002723620590080416829459869593836793478752166767870318347190788315921768145349204136825199688153410126713227874372414073211753601378168833896921524377168857476461136074420003436711245466018197415511444040089802132417932549858956765828188766123750966918742598903940588043103182190665877965038221700150905234744363512834258104540800325196529594689197844870643433427116030117758897375465349161980272408174852101298818015444945801157110356201197981750427234062383541001931718358660030344396825682628250377575263967961132733782659524110121822854966115144046886134634992198231644762028244264240132988408463650030287599961157530415569763532548661076123743682765618267627156404913168326840613322052981946697475501854851190258155729130390275721807033814501841991125096341274865454765022481865986172366450334319194644947190091713055565203145703330734830206306123826506536925674151156854688077733370910595816854124910449530417055882793860572060061507945182132405508617769154540930342512975977998139165930377481908384328786512016073351992404342053080692427915918388620724617992295090331215224004483135285629954545772257285179214629037471100913038931959281577853028509745890077286035016002761256999623715656411402459675581927449681894973292681357867659067046016866771511456389522902294362311567079742223375249547798194117065080076749989662140543551966181886476032888192214483189654334632197138953926022240264157326181798667563931548539036087602078448398048667341304700107787593793092840086301268836283814629579499180773182444242656354829800347511250598298481071468836586995545269057496993537464463224879180678235034462985328963720845969706553208729927845342915446105795733489258662564114240789104751371312674277798362453288813528843673542728447652412544595874767624715454452450749907432013653052849152220372321059811865130445860687579277385298863517074877228410629276892912496898949138635187935910501924951960927566829040977676445685551790801254555604816580800255214232468700631095320260796214497525471036375663902270106187086111629462780950879736560697406927602090792642748416182230094921243806339680123496476041202548772613412015584882260783950439943278341984505039623386304790507772041850223092708709790176940258279259549355240233776043935717241189754288044991097961929709327379152577626199945403662812973863776593201023262717128899106163572608742793419946210483095893967967339158976592041254025510301283547228529850563158824630176451204455276860066310234534329052148784923922994371116921804958920750511615043101327861928276280686562275729483665748534126792606362546798712105949823475020901347397993036927986970208383580882855395745246246982204796777786003336465911448613364655292271401926638152651484284442087737066515867613033708463784258647934009253830249172280978751747962849934292821545788852808652825049946621628438149704358373106250210275668017795042338660578697280095963671364744908872914509779625360477282165895154716782998692928404764709028833947267048595188996062687713776912567448196664588118506338330390024682019637096401934251769641895395244428404177521284563201079248806001983540612860615525721277183551707361192794274395595272994494367894218676479119710452066237970352246356267539010085731598346696438500344501498294781778787254370534274455890796164744564484320086951593477256407336551354627536574819956341989965421211572911090535016290044199779003498934457086937801941301243205698228187085092612590168664439717728720111964662222801169203257265155805806450877077406713710108737308838662106060970351684056647507950412800236098717528347427841645425540191115764606911187032931893403606158480778187068109062028240314023660272143627010905558163165468149394575064931562001804394611525995168519614881073335180881949577675481056920386343938945821804453753563288237293493998838270142006692035079253384700350951718892095225683795453481948542388797745619851819435821288931936970907287920484766585832270756698049276912900401903853128519699564902493607217704863264386643773336868502289174278131215461339291612955612464684266734804744608929429279847993450674058654261558796731962947088100918508478835845903462753384653059616238993796198560888854298480910079527198305845560554476657055915985036471863574713745947593246282423277495340045992447586981483593347078904990926776041140244388022566023344250478455147968816998508218460934345210742558527645326607023930542371737695822870022028846197874427280235696028566385746589224474843295436935577473174684818858860714205742286594154368997009070991541570307613727210229907248745096423544068439990438300630279254832884506644983016895215960777945056145456873416916441826048110740358887427816486123282739279745089168687705327204467982318354757626231436664237864198110830450378077102988725876310311802424946303740828043981348060340093485694636409846073621834642003189738222665012374683103510717812923076909503892068189102622859896546038185513168830896480843465289712001581906828558998762328840670436303032566394309284854921298650462115822465445845515651678376809250632019636490318713907637543675064948718147472720004244479356593531179799701315704818363811599684171731420546961955445703435845632482650485422421177984822492950579818166745845891615515200517696882894351517772078028113247998954143676628278887557603064684930072169132395837176182811881017547572039687396487907594291094474681352637143596117666341608492904137840331202010646407207395199408471398397345618442627238094192462801464700756216597578614187447996290589121834079482508437531819952075799995681922395229534836322866059806485567661844026344474164023420759835444937274872200418369119187125924911975127051040010561471871601707159492253725720528795452506097161081757898586276445927140158066522682258993938502436206134408086058469953918914684529098239409538535996660210114801858997469296156186072184899618093719073217207129175273017763962755582038269397688767073558843237157922389651641995539524281788777366371033490778964743163810664179112197024058949380486699812453611076731364327395306727611334908329538304100668597436509370109747446366275250545921680316523314650366106401763452868436322468394122970373338412649002021652402677632521019300765101212142537920257858930855945561539201214320912525765587828891957575862194623580859646915580191246980518454616105458924573707275487270304503689960126312845688986855021995062459996297916718255636531300417630109422405865140581699637486084048736063504450659773042738201796506091211878815603390948987197544805459768830698269162665197014617084988452914348133861517374142020623587761805748959262199506354606420290448445068944002669874262397018024290525178989298605749113917846090008017958309275162392533033221137296862988754223310221177847905979737769165184808899829922174506698591532896794640132233236204581292303920117258035949490441424076660037158776474009161767345603012984185298792335159586150558260608728319756264402608914627544148975138154218564667150561548290618483935037249347654804402783324535021700644199799471999619921130235241169665666136459071791608100666174217823340694208368892490040273679472419188551348608872423843609085175092229989339641195327707310821349578899047000228767427794092621326725954264632239278530674971291221474261269174665163585786576898025570675242137313514483133515576999611917588651556853660596492287430494191056411304376923071008117204341670371634258383974230176756835255253399393593558261953212789123752472430405274893757243793328505806651422016031312298121367403904550985665780357006433351979238935119144328116324006638528837983520680710073972495719540482349022298596523591353462119904440508356399868261669352286215339527323379333897368947247004201891554578724257034246216444232648786409923081912176991214968774100350431026419575750430496802337821061951201890904376902192940049264691771804656781562515930492171532439831785291888872649079351215611252376186206117117162849463964471824303069059666165146953979990137156837754872188172057693202398795341464749961945360810943802275238529512188802583861731915243159216099028854478479195752449238292311253756103448884848453372967399296388152368957020032125638237114777584084825406120542051912180880854227798266208598217567371519712680526252433217600194574760221639306040535156245834740767450164370468407915951120045728748808248216477863291639356318309967715349147800130536734297663520311962466121158404566010385602092857425719650212835489406983405228385809711744684206305406143483129205856100885702671377574531002924638967220825882922173693660948997331412087629185805913579783618494964960710839852113471620892879980865043394032308975044565561448749380105469948979241655059681352643301914986649911060544359204258056886932824069268014655603177980336803475288846839251913686224293543008442469356556832842589977876531389842614439452469934461020381010274364088059794010287412810993359550071356407864867996685533751349782794967125112860244603972697358126505535549962273410304425138897215652248320188095630124742641170863556763722551735194559363929173444835415304958034415537433413198332940197036010746752443886450363842544040081224860009279662812265986797110155268127413910108918227973989107875354079545372017243498161557871187579364365480871439584736384347571097491013749697303233481401011294977159538981038187727021897886085049683038979854652267415982417223469080795493560816858158001203832209987057978072060327944410495973782977717209002029355003258024137009812597869777009965095354779615157737903518477668502103662108031694493475395639102064835618051522965259585138606404575004239403926994008947521713141071573208793705364966496242184921533567113834626210076823703906432674388341470191149265670830993813722588037385872309944519592090393120714952607342325692928933790173311172152128844608915651139971431936483089583494949119394331464498330134751677069471222500410513130560484597279001006158716979350000439272141665584579482678887931588075919979872320893472350089146718193676611098212681541757093190599512518378349992967824606343577750221509496517903384287670667298685148008737416022099325130314978412861026552396844659914684882646901457879304157703021095695205949999028470971272585520606828691833568994357414817681414692892855517544563460144655663420422782832686477825809373922098744261753427118481536944881274075801477392436375557294818241103883756686900668451663525979841928780084057033318251509928876685681972941267994508271043567391643537779854187650737904067100967556015923707612256466084110650853331551226142479595050629057848211895140625514561030713821923629446129612846119553930848015553069764776168146103251579644351730436094644208360130077690149562270069605244648278957622082893398589893152804582989970530320968420047286300912963767462524502112855933848261493712989010011912801738267942193896703693381535363419570180149892519015273774565976059944774263224152104821282688542808975612737496528645992112899279384663031637399198555974842037305555101282882113835513277654981978359434977686186224374655551075696829587774934619975536501680807868422083513901069711702014886126553805698534459894160811840789648912443293160184585011863534399037568472629011721551092770963832495820269398746465935900837008868966635043063642224884531602158779747207853619499773077955047776392023289123929322704637612965866856811281872597972162398921450598859784776082039438993643031122331632958618362014785134296316165914037641388043079501362547973978243784668470017996381673744094599237225090026308565121341625077648254216582372985296474124227368993564671026470541750380856701147289110026410964063305856289935011292116888571133299645202209279200240456816743690033278841688810889738715650331933570157614643211563140141583761164581684966394798277917228909582320101552416664713866697873599370231065926434319117094570876634723704097288915570407669075387068262654109330148583174783429878521432108054293129631375516230276685488495667318944036771623911423411944032950048487551255528714501268252532669427787931980610877292249606344003044166604311590145099124279568157644981436897575427886231327942396963757694683173443274476416103321480803436527153957242553631127985883754520603402274099277136195142502614600284256008522068907298552709661458251016972157058226939038958377480929765954497864065204639780989297493088588034229105319579576828501996196704259496445686858442219203417376615468271597985061123283749548542983524026676120421389468598386002303680273183487437769732461936246943413916773223807800414334892577636146648370170907037737771627867845698087402888380301677121579719512259373083301170592519717098650756694173010941393806307530912885820075528539211923982607653374428106829710705067911490101678250357750725290038198415635639189399516212391713133138106745315130045413923673898971836035212017954198417968815684013742456199428202463744728886443468464691738980743651722712002918593974576838907152487503105536528937236873726619288840000865389844527347471221396776269313650115707019746494416670595094902706004267391260418543988702632813022397113990083496719513346975677397241251130194214481839455645367244329227213520478973531134403673656034538555749220636410068739117675941898032394963820966987550521951775576199652308153148909528456076417841587223583903413146648396332414192902638247262061545774859819367585410910781406435501207375941493865243476612540105955017067489593203190405478732203488737952594465562061132008730915143657790239345449713653070420547032265435464558833123219095116904723895566289696010712030692286378900256030974884543381859773042472392434245522945570165558262027800409810066696493366993119619309507638425440475538924409664193430182937846348842812157301448921683862791132979580995346326499939852307236434389424691457662393461178768070596354371345446644716375366496465705009254653699814383816269979219476573696396236005130392996093272603130633196964014494836346085764125448695959791226604992031887239229318548481270098791770295280917343370688708632770227091304519379191318658452190494608098692566409894663597698121791016349671855138126672834306551618734265634309980348453085936021548782446273331188712468407824006278079574867879696704585140711461445841137439451391093027856441176769196724896144190993942242354824318482348744794959312059262459609564156821100277339045929026522656841369483408452968051057848962176267549753230689772108715745539907092750533237266017571225700811994101404024657821290698590237468584752273790066019316512871779024820955189184645537682825071966005973628934251056986143804920408649472002484601579955800425526943964308980644057778897759970497604132279209370438438727887103770489128179071937732016571830019175688539833830216826899787842519714376578525794624032432280563193426110157885404680697819935212890447813097618136460413785575229988338093251436326430720680024628190482278422190178593400294677655772982018652046323470599028386016758934768471801185576009609218578965105220818126742234642598345507038428554293222592229950027255188277581552329904514351155136813874615607627471421102249490512606953613559265517620155135299368581755189672270555036199822033392257488775711529928162684045916580870935319999159982472151592817148110901072576662928382454683799451906570180236320782455077329647382828331831115206405930107083845449981441833520804697269969500373344362375307333800317991178815831222789704624137549390807558932348842381429496210207257995060977858815538551189632251832411346964015678525765845539203768046208011084126441333229851119210091109914224746287748884484769744237354009731910305410369800784604321569457923144883018690294184066784826965334585431632829378707004288961210174198258130495731593795255179886958145360345007551977878059033498131619214815744346492715162814993070341714162888915665091428818128306401858367821692140380867056151745924513901512066294180384845837439930374651535217173681174774423215279043836691298758174473905771844297522509773901459174049454003523613094358019364436275090902776272374351488396057821508023900057815461142009117710237437850603581304271126959523128387256193492064376750218214766407187403837514645116668893703503515558874965558266249136529451860623664262102397766353435635152771128788907290716652641677866140868187132374279338242984676530156958610201536022955453570584461893197538181529008928265990249255386729725733153808003156459190611757121618960660875066933617771682278246737588402117035664028541197042688277463670404004544251099430347569293738669696896436636851375683752767052380726008222994887744992722574638979801523554520194087568960958218322611882764593893387560113118614426280298198451413910324910600969117839147795006622140269905566832200796562638353540966712803445220198975033999330718820922341491348684975793899157169838658130447489188098276156814554317828198172920381043115255235860484854503400278228395631172052746888800073022094964115897636666733730195163552537418174166997087302402799736288321949209397014452993730186711947360953035345621156444286847279420220267925579074534851105900181563248291298096236957133744694094001864316824969041354972389769028981501990350535818450466887242403388398736724822104231291198794479391459100227719337963613292445493798925662948617487356708059546472698176044240290317506983969325781017226277330495497255999034861878695514599869125327822614716434501943726328671270662141657481137989711271500516682139516499258690221022587817214225320729092070819388015206857935047107186458971154293352902875066848128291585830944504254176376424672010862527436815832489493916400876431185899459010840666106451267760852665608988604629719148635660430531353914905175713588532467383412065242413556261968529156284590973221467148649412601778917426728734242745639904140216701338228043698619245091216778063877608282917157607508361745391856860944050507675024219075663687982751291589621806809237296221160173509547927950648761867312213115233497487034055159208058742102622036614917086372460231319896197225552977377692985977448692003024866222001572480973328474630172835742006900491706227276827261422171669529740033738978220990880019618390452364787642094903271977979152390211803442238405164684557679718294452061012617712549929773567261570506078328361419572944918382827440789121973202067496557679508496915091713410892491495063023779974213016480532979333643571334465025628998712012916225198419387693899217678293494846529294403831140017972360532464330600002474811782863457850780928100315653707016248655175451061119543927027467334300411821129948676486860721713104295658915194537474670373252742165364569092377118286999680489024263522957744179334336635284148009894885264014727114428526587717941360881453104767681415533633681716551628171802095999689977577959369519722236164656758925890452955685968387840567356380299376372163288722020688347946641480545863841701874908011263081069539136465604674915831583502961140942763867377391151783830994948648071525549409591074223237161401440493314126858944730247447061414519299796461067784479824186250324859243661166154754823345245527771239113988375836006546369916085771670511262100274983026906903553600789429373877401095698527579424713863597690582485343449783573915290706747286255197793365776726148672842762263575988411958851750286517194026981988360881947404467492158842538536884703728296754870998986766107236783449742759856656526212466443421769095737208016085920403455815410770358581109274327918182945092772582550116639736231578329963371950039321368059334006682323098176128326717923562937122644679270801380762586731986095561283871330388145356481019323086089073598368179652453680237378029872906613859261592266165941206421321502153000906949479892631686925393160294935001999144042133313581731353169007097461192505108300688371740656467431337141474777943062212427225611680785527008183802250560446559589179631972543522649614701820187929956292265208079276758856833345532030062589466477176180245669362563394980331156398696202541812540671581225371755516117422760131982196776770112588934287148112238383081381266660123039237497760564961127906894876547832598299041982301041246848355072163674457832188351539072935653419764405472390320997028793289708656449779146640078528833529079743698251685510426619314115858831372242001866677268508883606857050513090267228325207883874699685488780189245720567100515445938220131888291298951368067312176215725028977535076678760760450447591414967482610805577247469932420560256966456386492784756971688360086965722692104986818371979245317522696102888963989320406100041148757495057566138868825313882985294376867849778873686071509526709505996416105293847936987715235518114286441206712983404793704258841706840381529839641930822826629535928650726714449766178555976387388013989988542905494039898910754398865182061301829310099467143792233763189601382308500359779387223806984197316228401037045549309144208341444828888125468785613398928572850574001879562278145795713508368935261814530603344688160862140434029992181354520693028283832304925027245291371013323093117188958889478434617824175908189000692423753998762432913339425612982797568828756290356134824350571304087087585074277014961932022244985277393757734719340611252482945087452443983620551765908097571346172031334361835885555740689695255628108402740202278393279104273972451483397048747680120095627388850084388548001224241540690852368159714057168523798319066668709917546853968114634730810394778619405663116531888576482640886049363604576037080895929682212881721693347471559988907944477678584914338215821120817802809629329523928456721706669537886594061274342509232089622347890859322467698382683962553949341613841429597000896799550372127690151878388108948434221125862335290740840722721861061742841101832225269159130687272738630551835155914285563763389044164690215195597919442941291529850335355146384653740319510847791559355564083467667702638141616123082023908403506641274781564348786125330415033610783040715916563447654730801054775146125697337153078671513685204356410998697686323390347463700460593689848890006920438209180463591210941150954020169404507767737287533787006339347453310488519934953093129239448613078415393086975083021386360130812297663452344991791667332275115791021035123687024543866867443003251250571561970458471538572166163851443397681464095663787173304018392170054620719043682912585508345846857672081041154715909318424901124629336530580273372756222038822207081723350216673012940961277458367190466793559356877432011610888030855999077878648738809408892398959673356187999106448384484965263779336217394815766124177258953631159323526180317933159095161800050155704869286651440782393102885954467425112115000338025008493955453816408785145908109030201233742129497522472211837589282806242995935254715436478815875506009022641125570419946065564450962194293443612085966350216209339553751132026467730891521248285416122670154684128458314280869731816539715101709113637517654259494869262830485615214850324236794710350795788611621631422130524416823128974438111937403540954582975773644750121710417935150325748292736044909206612962537380777233123557495141745245230593815399672564322078682085353788792455412731727552387649778739308529193808748557919690137448897332804679661348736070630851636832624357688484654579745343921760155111304075012503268727247340405698884796971321076299575412093219782120590540699267129712814365567257230177437014084628777182089147774246397918923175792442370902276995480099323063334138820590561148915349040042961860868784902781844946387758609401114310334845829276940142603498713073216008950770444445614891915724276455962592823978442391364605868081491213188561768931980703021651551300903359666593705918078707793062698197457483547624833444541472546638702412581466531094239657719462535428561392603165348998479418291095552319193850253263105722553836402777880852245293913150493280183493116239926883664349604835900906850539691566899854739127206683280636995695432944190861894984489048814985625365451605682595828115193975990118722760177113267325763528083268131518752617222653484188651858567603890944363254535498911538202499988415031645984298348559973014535913305579106277523158740977855339590920385175871095444197844657202914820114325632630239346808844858639233834926333946352810015190355267084010868762406042030615373382421678750499598434336003402246015262318307586378766186540194382838350223875857404130757915097546347945434485229835847516529536481642790105170917638869782243922005804222916340038859704183356481570348943024136056583814548324470954086184422739689486583164717335483287047017723396314370692033714021896402257455672702746764496644466742751468864403634360889615059688966681234399090962545646975741445086584881904647260181150995508887274971510706615578416299266568772524752521199721867390602814167010857491088570716557311966701329466076275946909447369644527517677206008474992955377415186634190265107265048459265067282067288373402654287704059897054102706987455842404062772873004566604745231192586917053893689812084111767331552876843980383289001699701587439323509882017406296717827793818602938900908658782994466472260629016940072797117482780329077653100771062103355436059162520960777445251692492955276216208224424390443902635966843373249181875107135191414345991474292752529887053949435039832625962601170199616467563529223247726132413307694110438591847159362601284239767863786783976334822462919223753773240250824493862599308062665167741126544111929389915414953752430086256538151866060895102045963793300041321934368435905801119778491984287076516284423421509247956499742239984367473331135733458317517033375957137626346050359225075854465523211044241574065022127880874555252824579479470056061260552711712252655436555382061510954820952243523048649239225310053615830939221854357590220322098494198570091151516517301716990361699962722897549072384407106068632361378510004427901593619743818268295276222164229893358652288486918593366735978739987312028637085768406767730552507619792069783898156577333397943788608536064252913513929187451681277582823836889904752993576910090284558178160705865707890262969985308194746951425533902263657568861230073979652008350240747740346012251538528394897969035927621473413994212675645736669835254724438858926841593872126357853759318008689665587906343109774270788696617837978451165389492310881921063261006138954589124957885185599052440051597372170531488950576821251270513446318731821566969783438767889538376485162035555968550285414547111656872122443089431198474638797779039157643725150378061477115840640676275112228913012141197105311274472760983729519703817287629488711633500359134497488860484833805503083589414294257502199803585465442859880954704686465018118162552546437996048667669466161344448438069240457563705965906920051647737503095208631516751665621832854186915105280643568253754816082541430657907201098109263526463515695496270005543960834145976023876329278068303362495306717120446207563381752867550291090770469750931635926920148957456061618499623372074548181026800332308608976622518924122847747282410378635105400721248284823154638402005233713120063370033981110078118864919804039768335771856219144749178291408062360612161039262366200533202941220094162135344629519219733462511663601484854211235250803488897023175269896590028978471984899960271685636110327325198757219252129352722408846897183667885721251220742131161703440434373503519030855600563691225064084907392252911062821605614741444824590116945076179885124155408602334048872706441458343114298393467466811307278605995901758346135469578454961979084766599546506728986321600206515722214985450885987516646887280816171659655161610229935442861328976588881183635158253879019677028729017719465050527166350950849456697056683426312677293628760920795554100108423932828870693814937794450589596800845605378927920093148245750666714793682202194994475894493391727801505910261360714430520712950966293064442574688407821339109859595032049709093618205449988163971181278823450053610700715271237678080728129913876525733278635042227282281254082852677589153488654972479806329678196992110816583810803359598674994327732099587505440749259627877175306613135073608793512858256341957028323336045417692723976393606908202583040089411053141841076952038583179701999049372911897999068036558948686278749074319082096110110614908338903188573493001002875128220274874305612903222143207663715332469440033234054139411343888661583505269521559829017778686507896300940211842403655645214366430617157380695551820723106141405334288057445577001770814639888412154346367268438813727003471537608264404805683675515688726543455470554957168078319278555210930423049309801054494018724884861607823990519209878837537283647105827520498596663761559001183013485761146168059670836370449298748815676539383381155932911425123814175698613388411355575774302279018648945403260916628686923029898011891049263754509964846142125249270730645046856567765298231388522303905809743736746336619075947683711175022805031443752288122527246173091177059885753007434935093567170600013376925139869310535024571853902866693645821856642118736783878511117134303098296695410804878729506578362572041144906277442694480845094809562068857516439705805814855959005883435343553921161139578140465097653160352010473423285881335947794123248355834376702686339647583662087550147866574439834212676617064349524369089022542681664569949912284749280216775295885983121599322218913184385106768232706124898890374118083639665480614821798331780025016598818996480689070490277447941071643529101397614671504237485283377928443297609810847125025226277462566260253354050950556893770290638598026204398990158848594923027212918223427761945247733150442500534723963725732387859372154718899379245828514029601226382218284747080366036276601468082468283529715053606738813164747085190390057799435610809895736264385784070290041259405079911972624977073407754456077641530996945042529726498344845223955800569029623129166214101940766856338261467189811658369608737340497553525088713929348564155004010569135217869242698189659649792873818080636222274465519121923034802521156105130320960662770752107604834032924157123237294141852976986522266923451599457055280644240242034915981917415859106586330466856085336826330613038189526289328457608385244486758201311618028751118436606027270987661709928667762537624267482077906017366950124257476824427864988755416749462688829411764442656579402306846949923032965057299152266831196628466174981616690387746643248285779873741807334377826568936883411265220044888746840820680889398440088782713815854346809529680972302571873121710012593746990735439807683074114287885079305234475010988468635132244515219837402553923853064987548505386249892930614315507798794177680894420620072892586953517326072275563413791546047268566872974329005656483259843428889656450806223715082060623561639156213847220277964342438644696575927843005542622022685086301015980613972662961557525819889983914553963926904935516991029135993903808871841717700656830891590229334969899056693099234536526371652532906520632742329523391026637644160726251080349300190653160117435923617420493786819418170679781686310418406190947900334553404476502797150600484169480506846756960971314272382846474845620312640687208994195927424886804897903552036011041536873763212303238491836795699872000740725220903201411181099313629911395603667679866684358099834867504598276243204769626929462119959690665021600140778822070433497593635450322349142138988358937755315334732719308941968630463904012331535254628545447612078118802885332029614256570576040382614913382869850019920802859110051773122041440464782715940875721515955897976874176986103987665711192158978074146064371399180696558152395820542745549091514709914053510242446484830389620305629341356307608962281304513121285472418804935414017044452681933012374968961761733881450697343237666253490967517776928459800576514230301204709001434756168737829286292642826370139901585553267552897603325119113099086222881099740721896555787248620033769028779497378428036394705975544990058069376476602881633201534748117086226454486071749949009947096349814034721390352620055540258997429004616790900074670781473046628782351195638104620779909990464044007098202023629428156314130720257068462285636954717156453059641639726475181941515753981104861043190037122174484844036395549768352968752821706138374874153342619825761969718765081200917296848356406769876783834651011063779190624279454052479833273085161062165376479583484104721778182244341323381335534226994572867688221771753443299536746684665830512332641906717195636546197797639430606537116819842353775069376076062521494229653712107684630076656865443848678101769390165695161558884511911651054806287937640314648190570827317214575924785716537760246377042659355776642016479703912928664313006591384466610642255892903479789006044942413399240838371786827479544675374642338998208608426869178276455563748431407789568265854121956665398809711548255322005712876251550842665532057189639234254739007848539063032343483617922246115053657446616994246596999963723263056760547176048799362109693537021056983796213575219267965498768341010826105180830714522220958416683801492998057794249354862705034860399410408435682394911221491662368914231732289233981024639227421282208783457368404309148134962139994931582103906350605451863017293722949990900207167707570589579444620425119074283866850224713245700034763747725656547219166324087461501627413754446123390291359130966456254913455220820822830301472792352595262157855867475726208590909582633174488424116431620663664211375539182337214620517798354421296350455512443524222575192537736961283457984681272026404728870755032308505329059114040477600718968545974289610476535195880495129145517718488345109427717122060172372248100831734218630952856610417048274229972252866153452606383602576088696394698818965074643202019402014302158010018425379728450992498061530475542930989665030782215395326363749768656098755822779470371498066546980197881620457615508416728533552489629515926404967279860215328506937621131553036885716693385032640285569103339611937847313242763975649720247521256373694962687294281861576517033974700544922575948514505777279270926887050153202347016559318742243181959210002894778131025533736281897398938036761250555993829593260488847696682378580286789473305436051473182733563103303148125506812306648682092429823569348566879826031165831007433603287678256232603129055010949440899560753278462097432106983268853640814656520370602534569295210437333060382073835072192828974013497647177494361423517588663407206155621215214004417285373278643098404309749680323485532923065235041223501077207252291728694546619263176740761007535286255257017078512381463877407676349163755267271396712128074267146214698505952562030662057300321094111450032360338381788576339522944679807982093906812322251515931944705714666761096662364199036487380121441205896958917046796267503532425794885478883462758084453674477597548250216714338326163714153862405580174470435430476560850503613615029676242698457142962139969663098281265824607216850633675134545664384251223255165957280270972169518813247005910381190874014121505180814363259993818107599806917333092461643517463557248811149875318650919134648521451016616387589752788998372278750478802638149897817634919322950872103412591994133339532549398113172227739021976132853638809906574431733063301462365513861762954627709325828328623545140361388961419928015937361674525069228112140093208825536832119431787606851440959300456407276402984588326764921422846461234946274044210705018232870968714076197559734816502827170973518358348125761370596064782380736054888532131245231880772536701151311946147413506965463697376722560163234570822919012129542267584375971109874285580804657272548741983362761068690260741306465531287278622741565556950544745707106373277238399818413568746842894360720675732025450608979846790854335890762124756991644960498592830247805882569860280992887185170785240488793112715734150329489665315883739194135688398220066598325086359136324162436190627977236576394884417628368861167362450879875307278257146523234328966252701518261036201046412129500213586941303462148803759963173024834791119980296170061507885278296981928853381346526521348386477674859549850272836261477684330959567788007335535776272400015163111429917404663524774967298854454510159525543405699816260381155102255068966693088568244544257488830224254974839397679296219088301236707863694450546826987945892309457088731581629857263151686562975584569682047700546081312805196441688763293420048593812309228263420109621586684974665262420571673413903040869343466740530980007084797844224559845908387434252532341493121148556616936681543007883120389152725859635260339397500342118452388198396873418405768452813110227538523473872824794266526551936270945244149410434907032737642221222854155594339262029076578805371609572600875000023502802268626674660608257674174235063607820009913856641971788428317045130027613510140680398040421220502325254879356685026924633809340596076298140415142222309343489888722057164359475299238257310815353929237507681029496033781179613812459906588813355220614983464689261453173313845930201118913450436585447934692315650611823328846047008547322021287601222522942609876563835409561860766990044535513174619326082609656326397003693212051877411870292937707815972060525777145487167683185623616457202735715942301124516897205400784513499075166082131961721527516994828214442271362834600454856794351835855921453605587926690751630539145565089279877939275640835044229470052059974009969480451207162755915174108781499656981388852570662023375435913655308321851513592211434153802892766365622422516925326993644839546474900914347512248963803961646949226204794775150115357448121867240625793158526317344303846565740447161995612209410179420923334252437990050094081429356294264009170228309414414295745959607659216787025891992681083082931592057547345884383941691744860791545161765506235895089941996637183266876609192140723788007393114011321148659380274346076186069502220109341390756951689745337223326211653152267978315484399274869393278183011917481805622772332178714936500758972860623224683549163116182630424553132598013027668780862587290004176998726042978354239262097313423526021373555916861749793586824488422666749148747183552686140657350217679009277246641142980853136436407419410877501647324143341313291869790868040068911068877070482226440822476352505010035060419553862447633860808187605299510510073670529939410407791149394088051611370696229842750393473959687209549389588645201774479960720947686328033700120339800813656707084758443199628032267609840335466037399495635706598039946453788499929457161101018774015352016894521623098651721469975329230327856426649008713213280745217073755643673489210662343809627814507336011434460912582158985317929971071529080977477661553957064152530277817216218631320565172975288294132049522749543207168032978518637052015556569240843489934209909420671401620198444612297550321479208848291494964921225482734318718558094604102979577751323352199885725965631003657113777177370535988096943612312993471546790880721183766300263565311868552122519113493948492022726962639943083282307417758655831635594745836450286414756297163358612760470259715752124757216486245925684920526081663747897116604198169020048771376516223721967935883973500572469076279645901179698421172032041441223209167574383326391928996049337758200908589659887799236223936993714089489836442067573187119710790427671533265017868591093262932337592370105772435561095223054155439164641925133544820507276919031498382642777284710550363856531557409667199732633982901324153668702660924730442843451737770494402927457609418464137921935666765078923200609730343751075493268596623092272509666062871183481205285126375082979231223653632790627624435323562738149466225361700877585627155240516962839716588363924124950352417441256924258738013444322765627568904908204879672596171744200926284350768378516265604455218669859153562211804915822374437989111071004282132840195360931129027315599858044734701498201603037127412551299373579962393294639467281876267567405517889501336224398930091114216783015990490124106110707441066593942579258700786964233068781280033748719098649611147232322308333885457765883351406428037632430938431781008359613685347785060938642130659328616203209799474023155949703544967476842195178166029150151077175471820676834924134949336421860462357109617413957077184570717174166690446663321151171040972221858078584103732344864600108401029510153649005825194016773881963488881782628390668417091980086263549900447023797449513544085925991415770138358874601719205046360165856690624453025112240258674816383541438547127412557774367439294661033872327578097826932732532540113761875949910629268866756479126429657972354165362593799931283849281304627538944102337867683741156928781579127576834247567495458255263970668500936712456491571551685581576635316959566718980560284574737264266642380847514240578886654460895742778262130728456911860480741873514100384210001178358389085407209489672863649183793367097053889731109042734694938993244037176056883417004969170989181507468250643072306056610712196468501739265340481393675775748591547087869504312586624522736838088549434501676998678330111770883253822707899100851265200005425869252395550550655117139477613684839173934759605954097480195927240328631485097791524185577562807461199424373190130326856491104022922919113095786431153984202115314875942980445050429533567068236313975290002423116462317611048593066070033138146727515946652168942994076428290278251513364386318356111113161085847596899622958131382332032667876578930241366022063356181086259363350990514555237682450948791023595400182552090299205427385057340046939537229650341909566949270901518536473848449857704209995510446555892066063745470638728399112812423461044544953745527387865595039211184030024250384358580038071651213267988329477778371309930201256077807409858046322154480538244885078993724698681702877194775443554407912109366880966818193268005738419786814150686807581870228024888646821636035618721356574480180044227301636816122018924838312960923704046823983227589211662291240518757586806815566721064347161550277884463253352485006069455944049795177171939514605278123376624725288160084684777671445629820566208969935592079246805202940726819456618631915489931488290334958849381375284509921803699218837474513094169660485689115777780373148901995261140270495596672535248978519616124215195091278157575608922530910056152598492368042766499408123600694275593313885287363615669245375550788373925279029146079863561306054187118408324284897392151698342183058672805616182178096017966618199200943766148440518263672997598307898001914199642230630656603076142054013979441518917625988623492271387101892819959061834563444707341493465180686227277609951276547545488992917702536341147228440046056997886947068933591578329181521934189751611825979778929409537560905621523999123409755733258602971773385951070207325663383857208227063792561132367431318807573249767987826540614935992484823827827804158062866432547029506076441064441633177325369079384930696899340171488468906317078108552676208895010711035800377772372344936784804168948095641571853226727582081022120638210984608616356305348325897840936755906468420518204523008728537766604990095943218660660024351273415354092510524005949560596940280992438034511827032620436542024155661616056248871361163557233117168464421851895958407040157290940684902811698814718153137266848831552758765387793276385805309022534429283986610505354250863728375366624174828142972023272176102225202568922770448736671045662067072684309958302487690761471469483923348527738296639474654912847404495804172835947817251985168806687037758143235154207331113190817266899570717369773552610790477967234269140943820050694618347658137846360906816394654902389014036476677222141486113178037532928692465267419196857158363088634516530979648904118323557911751128645726986494798377125307209091371225399781495499116688834708776319913116358978337706989919581064689036649680919248250691531566545490746388543755385835601935369472625292565392920188452864031076584017681178724484193890193039281194382626582085811377097628489823498662854339228072228397334909240438195050388131779051426587880386269760761409432631552258913280302225079178210142373480732216500297992483438859068901510415056637991075207768065399536246443063611192653062191326227283127622289505448294969208523913926590993171028226321577719179697706157388271033235085757951171241070738228383832918357944084808001590611339766795549052127255361565628225092859695112736090057977390641298397009584493581017327009097868148336964143594715172689854060872143643286823538292737398401106229166551503055728603715240483749698186653306120317372618633439323410403111357078169453278039485516494698713487187421238300202688533562287542535843895759023081865396522298981603234578534051792257900430533501833946249890851884179196731773964847784288683709943802168743500182753580442408436191664204239790227124539593171443689112382653708393471882867730584247164191333050794115713027276803147310758481625084893279998158713330134203529731967323495413691382955535856873435985669274332441199277367513120246786097486877304211474199053405266801336628710127760359757236874380975286658557239272368220421094024687128456322192252297932959684634441654597825562166772141844484661493058032788921268945457702437609852112412163896599342560431846101742547292952616357268177048157611263104801856757464546403362025465141021151312260759845290132755721104358505640503363392894125261767633908756738278967465197667053907991471688340126946064558329611344898237561515929047911579507610118259488132816314492913913923295965743599544391662477787793543203611830797652697136411002627000537187709408380286350455476134966176785179093094642459879070332272454806295374462192644683786249884451587417521616147694532842741249746287638821775715499984596313068873689456446824148136097120408743555283447109661136146500597046469024534116456252799456132139697437705284956155758267021309098326396276976582729223615666626174793038048931356960973504474398437705162049677134676745292968889927286348705512514390237344496634575709684273524554918368327042253407330348515616306922707370513790647429044048486095413223285314094433801482631531065865272767903014044284313113711437044518374774345949893738286542592589927918560017019822036038272625047532681697977765000792528673407438159488861964579085252943462439181205781135384322554420422627081049301585612267232197609586290248953207109798168479771721618141399894880358846944719348295135641042688602069033722944982952655719337217876627757413543776848746185082468228090851636178545471317320523313144018932931398653155248598881871390985055117563627414714625176374533072797189865327172678012500035238584427658932337816536652668751326199883834018090772075359957109838285704144149176905703667883422618048770228216844674130426962848599509377731842109681670615707926922548160587515742631576423145401702786425544088420504411304069021072789224543801835261831071126257534868927145047460101464457391572335917686088879507764626889341402213305048826378985181717144481672271672887819998945563786474134673331524177396305505492759764711489953875856885126551732961763363417621978737912791706238564766503918101618388640477999699387357139035564570534197005945480707568772899533374946613275909147940245581387711216983996980317098565702841081537467408262446576953043782879686932933568605621426847075741187456192273064848891502003744919998721681621185540463282375538637714310050207486175062843047967890214878349394332224544296429596391270326218887512510409621502286182354774533046906868306540964503093585058004729649762535735516712271038951913128094724135173443421049122063522063080271471457687877445866037022425227785087344318757823172456574498841560874953011154185277611414775068903523748983457749278057798822655766285561134835392761438002620147481561527757202193672628107114193171000046126020421958305266064642542744941307425223845863502724150916511880152667030578000903479483406432516781140856927925336637743256423896181235848261937702061084632359673675649530344669007909790578482127677179892582223382316262874336466482069340291276725557163620182719831377392757817664874988235660923897616990602387088959892397449532004204827777659699401733353265753806475047946873468366331470444570157863626933076225257438438132507633720307610859388765257696265405771583189589961995859743940610963150999370543185289866325183566819385254147610293231705427150615618699638916734034634980590840846621859636515996743943701176992791571503182159796134306587957728585679555449916655640220423580386768235709088430355399103758524258214471373815334002989798491208729895932376510774777254191944185931918822778055001741492537261790490464166149128618405981180348482477679752646503874672190893054353930967682738181993455444812003331478065687496898483403643769477183491304262595407702636511681112092534249665521380985237890888866132208061448330728580245629411143473399581735758543731860556269263100917799177694420753586309199891865467658724895844599658244481013441883370759022436605980897967656040248546789650562051313177323402602908796498925216508283679096755074666856770870630085079464029708135993117394070817719792228414862540657989337114309955567931326550891253396788512016542590309774672121276329037978315111040552668548584182499581429521061601275803747111967387520117644314351027664139131133148125144064393633497856178844917235798003105290165379116928854272208918114982540804201525550396797888650354911946361597046087731650339661514218803493920037293606283147923158754729927225472983776435100582086496646901922273988017414057287470398640502775504099113323483171011704416738901643693219891345058944899372422452797696712103177635292741834839206929874148533681054307825135157412355907965902062214658153668463465430434408783135759065490974524822630412856495866452877290924679733113654108331758987002523719674531853379682749155484437444755039360513131122729868306550904569110817605346881521583774767305377430378632542352604633557542458736026309267952366554547724116706128667008274803931620787487331865218745180978469324752306924903030072766682122162866366427414901934515489944487171165403069238904626078454554695939167016504646461152964798172732049672432505254468637522321509051446828647598769364854156926043697885016726894750831673446912742737547477430404881533715538659209718978767969272536443233457741390958085639165324887384392237363580975814236388351405150473450275465845520548142072675791647310287135100294906103599974261213264822963971972185348036294128585288448362131449801657744097647283575163720212654751092304040167575251543142834006166262344395085956474252140978558171602761461885148362785012890144474767301499509167911277682156124664059640066824106785659444226701535101580101241707098526175712190493627526488170076108539271982289250070978847459109480436386527747427110065673238066545541585568276896256957141324093331190556771953135774374950570620192730352303619433332281316097136530817677674647096536528355721822107107711507779438424421732355031860985588382547825269153023531814284770906576270517176256821172889389290810977564010873997644039202688218864238066846081260170683569057113298375047823001292408781777071590183151648256085893726130941744319179298154515843456427237223420694264630654004318336634385866034025557429883037441656667091406109778467073924374615641017990036955492002503181130404565296620904216912600399876967528740416991503305525572783148164741633322692084442737529021895587085083719130763259025377451387098662908853552061052820120717167382028405931688279092859177820110370656002741815484259203895488373917792467100866772566012844710788411432560296781215208724948400869843057618832655831683208914561563793699437923241079290083684286407066442778397865122129526795119699758604982318323277666092429031939174862903057692032021136182680118572961608997452278693405055865202404475358639371449220171870233332781576212807067843367747721754491968516130230688277442725483133921018188816021622925393999840274064577572346498847557869324334827785795979438617252975496973609531829443793042609735262830583021708892481498536233542554344291357194338784156394263989928418458559537661693835488275541782818524769559999501167856024160448775696926912307443502961512611367757322375440609361954850216863937937866786032547148386275581298093247672400481962089098562862692771697843587089704003804340839095344956567043870328864088946563688233003481276820778182988482336125802226683846202542689091767241887533555698192121045579331499833009540476207622562169366448787001545806799351933193969420404182179128060179926484302719073183558760160575264752225186147125064959815580338572080638702751081044940472227436655200183138469397086178424807482564641662736400439030972609502346704667439511893508717732272326511661647706624634131296565038953987637912633991183358399996863012312494807795659885042929779052480111949247958877161373626702309456402537650197764979826848239097501683674438888156488536559584031967071468226053799240162402711840696967853101557447242682538720571452757108122022748704415125972493801200671639149633270480453595740434591063456531256452671961065302809052695273000908041019921144300342703438791199854573615907036558723372823064731980694973324221900482316028779719542364873177454687633390436138172514787155209919586735422812648124068898663688843640736238738427725553833430402065489729763323547271414955274167970086528148965192584358468214480388237572826930471375815870751971856206599179535363085918425218327836814486146349374123809962560987753531788896435987602656974690325352029040236589521846538171011079469186809677726909260471425840430919279744928440785529417918833781492868815193750679737425070994570512715590014270781683164858784826264500340541547502268349962214405260548314736423666793001185239158000496529268439138807304313085369156503470240634480378459842712564110988719391448934684027403585224727874330325562905733393024637129118431986671334779106596391072225794105132069784252876205000927514408533378607168139014145649028609041299578912721000741628737574834794612950084235367474881256169061338457908591626688846968979706768014392709766544832489072192117959362989857323801803097652992926464651298841597566465808915528146495915025512994161275134094489021745958470547606176471079860927527386733045334048832624085606424966010375963059499658345125425856611268606083335762098958450355914296241692361596219837501608852511756490836459464869267066840146123082988221146268581144968327241306124296989889593961274843810851825996726666047093693037125550441737704468648608075906925039618529088925661060680440158525836842069070446278146169083284795970719669408356911487324766687590299277162514098305806789343841826441671373094602326185525270544852776781608035837357517707817893802376737154205161943273183245598124617328311996888410583771520666221075072439182511028798414434571250864070054705558034944708937844376371113474673051935252654406718151904622923201704527340220273479453403347261209469371801008881995036771239250853122788080315421329478233388216127046580937328087415234198117745861768756216511119312992301035053563917244575902084397744502789693820511354061991187400277432574097585351783500896116662759172137550434221890272224233996339686075720145487499127328231063966594255657269471255276274276310511169513630951282310139873882962709443765758125980314590947267723075199122015492471512105775821188769639639042493917040617387055915666610412270653918631789672951841977063140721173195849001116277593487842100981865313869035897745887255394684753080000157526603247848634934286158734690667824282249843536622251513248025478866161948270424609539627256688070211317247091263088138163356536696852878716811800839051041513068041713235940684936086145415272408738041580966589437059941673712114930219557069628736174885959819105003740811847483295507777455573132040518571823488198041455994754013085938595767830387269907515109377435166190323169721119925141992713965390465057710534346149840155710711157854633800807816782696673567871324356099021181966951081618568811569393780245005650220646452718136938517118293795874393113885969793892022125280264883956941096500410780163471507768243047834185727765203112316834009110393866469863731205232320808858267128139938851663759335069195960135178331178829410788410277193297381156890830028123108727056606556163356186672733179722548946902055870130405435908158146280548153145304416846142893143337499122466256350159815844602130923128349399974748066552364160957919253725703130376979429275212496695947579541996345143743280777548525008609792607475913267129147404960391131485242991549029370517260603179221975014700484271751355881472351318225311993519109006015704037441570777860681615289282614653998597616250065679490770088074440734112417494809738939436688974072530626280801776058993682421757264889753186351006703845440390241257144209019391663881144349848116507272244579399425228149670620829548917977559067726165319992724590125240292503290028942809601674016796431533249503475014199045650716532232389295850510308107914313808131013422490437491792011945241365009492914583564601844651590845191247156006043182078020223730606258260340113746285678963444990141491694502186757706933602189313704180043273210314503895673156086833820203430819788200041919498227773945865207841647595078143582249136073907583496110117815258154551523621545537149219050608274249714338303834729390035738198778116288627374809049659411662997766458845365697010624832022245719840805144033549080943364371425234873585483709522363976364169338711410110543856111600998584618980309927212271546519797026278079794310534020627551700520946096788891424420748450248326008325336078173990494214260251321755900202280220079690065811124764431102714573243317674839247150411448001756028733735113798516393544689296281956992518631754385550292801082142640740951985008451651336745125431336668122596024472468864332882524702716028086393143424226631380668310142764318284691341799531789813839189942051064141854926383013023897773546967400472122588977355373446756318227926629966397907923719859916195715616466029738327437162808955064271214803713646960152347934838017169575281144536493844871061099176345764079881226076165127424201638575635644293868639418393567672350623273623368772440848938107424337879368861242516925704456578873129846075475509898637624555715483453615868806833604517228791807272698573276490892444658530675579940385881955096241761153844904976625889023852468590384411828216472752066778988549319539494564574917393366448964548823284267422165616966202270596671515037960263726084723829816927297962876158860838743868904830032965430935702131106155568860506846324585793195653569345443196935150684023868128104954256031584908451365649590554581408145143303483723587017339885146614634056828469745826248119533671867710513949392907588485832525281791137833231594319684871211604556632337443304518312511571568872835440121891997460182260359152337987085716041420449968971668295011110157160132054378630706689427415410539858520474740949543968974529840969191933692338404673836248972044580313155629271525542329621056829733350729454508532603753643727048459508594446913610207296030440598407311967209495795138418806699859334466437544842404899747476580365679951771637664848929823634628324164615462817379184219470496838955637219255157108232053126668845721030646734556106455414606515962272810189627804944768736445929887116759275124803741510261556471956629660075012033484084531164879994782010945532536168898504348493311262510223113807243685827152229721267924408536878029350852143071213040149646378858720169980904041393673739883625534418065918096456517036588071690872533230640886129829830746231392810174443283368180758127968612737322489049750108859878736435869022316646376080100867583863679234332067357321524462541483313315166988196217036252935930257465687239900110868720703525306558541681928050689118813263733158454001156086798780765520857593431517709956937623767114429389541453554441806957258488800805964770748529046844961869776119331374363723512597613549612997716840634624151462688351704163978673600437465073369186639132376602061003132374593660731129132144426081789313874882967289060942206618474399313347475544346420291584831586378819927962234855406254732171113237391860235579995180201575526137269890839257158577304166789449597341269037330154710673281176190863397158095885304886442129252376808819004808852224612155415750241687397147461785414168567350759477403878253433442284000900104608304449642651233625438433795663593226837102411809372671780959977396152073056192560378592937844829736615247621573625552104396864024044230570164885676984260301184221642239142135982059761325232557475315180449504115096110484801277500736912296679046500396037323452344087556562175947669761205321095587432127856212334661575121947733440815550142962675101695153989713347896418034598898641782167263574482913827600718501515078366159187806723227520199094303577921677120227603327123243604572283577924567328544220037069066579560307611050319159787636589648307045002426226313086728156795870706622635504661906341330642061826755433928398235464292305757900329714233331603275240160702936137967214180789993226336442215777377090880961591111566150583337996402376704050569356068223353272232864775128706652544719507619109697996032381943786490451357783246126881835227209772539352795236891409285629191347301159553329771029338491829568002353859005736003533064045544266980708935966660917990446603252299315740394400098780322819948113262826952203662190617485114897903451079891589045115720955470804640863912886866307259167374813710726782901105266437491344646291900184768725555558009354541311394147596718049481084003202845763992853159394335097392661429117701223394830141012670741085956567289413383922741458880645309253918144911603459597658456661678760819584923407237852257903847907076466184949238509586892829908788297152161384846392961666339472730249282489879102995614117217509745318841625088387402100484772906412079683441854426421917845190438375783703887208363503901368959917388681023626836388603331002441370321842180312423391305604173131162719974754826403567368836517740780462375824306987587173897090598454459765482751621907094918802021280201891636822791451244448276953169261872100861159867318698587733544709536387644969889286386480903249746400382453127479007166849720281300220221640045449233625537943677710497423483338678860900537301897051358804433893793577992483682565309848403978265586866336066582245742871774992454512314745601900101347563695116522431864447662933146872619752785755123816633366640588040989776845171631460626177393991968647530670062632257666478194638637711706834125531244312996951449060494918088738483604201165178857721669899503741672106206870091646997035914296404641823573026480903322947469969062754585336048766294304885456780684128135893347617057895288457610319503757865089100945142806582879403432121708967680055173845846364881905687911885273017865216878795048738760759343202788150845276980452399459518628997521923444338838693336172860866280879098311512761820939503009174685739100150933136726463081426812704019177813882593713242035390177106301534034814317878535128292571400776676517211614793915486317308657290695405890621224917603138264097629998209858995623613965998301117516176936152379868538772167478278698996782703819111264062889149314597993665478349167671034960365560022614859986479470990183517313630585327669429868727326885261889641891424238674227884959346264135351855203400201747678559306145470684995645553438131145492301541017287248796497781361613762492543028723116046240138066692243287945413244045841912784129615105338254668821859675998717671308243893737140036531837252632997151976773816410391943429203889979414044547249760203827140640191909070807378122826188862973807803606392465780927102377761023074894863059014653106373774792662529824126162344579763504393756521995518314834070578546179718676771952740998269278828979927145368900601387593807234290230245571534062519275820946610201881876194929482615841556468068285984164351913164818804110489887513546345686015330329389267373301033558500614286419484035975411693958153900152091143063043678958357147005317908495179384983709157150059122503484707300652672896250373227842357452100982640719462668596164655851294170974937091117197222972261846828411390859687395630872583570710637574787601298334362849988767381010205647065456835274604072215177646404303843202442384506446236224715512771955040167115157785924644967442241718445642187123713998882240534479308104685925588165827729724293851303547642864333416011785168028881531715732985251320777232284858848440358673933354360588657239153247427002301059699322343176967457636622641976388749484007828149276506648595558412850809486431413666465001127069061884485456566030143702138166847407852418462984294926650316575543807456032307651307311173409518125394175200613270457116842753666070975053095427005621335352134576403134783057243136094573036787503549425071683160350242407454369162080627739905242540968433741240244343930386259921251723572181951718240619070462748744128117317153459241710007839748896211204303094890635309312850352710559530993645462914082706268543196383952353020664295570108159610726209603352224218956977943413317435416799690798536042724058395631352682731335237406751062852821752199721278882261136278205683767474245659014203345878958748982064171089023296160171646461354515832383783870337332969839924676628982925004177461722118313563253408970062125503992294964327796208538683882259968673671202213576210601728439880625462037164602311657484474824090604489154608854667622038141636528128915686234181317759095684425041503150516413707678341607151055796886640946324048080751366501423544075960684805553943325270321372346089805897662099325654667414054335817846056194384794655843888304890578592132591744576321373339906551637475607239638832020504476721250814474067081018467060466167320958889346348444566794233677008768310203273889102537074931341770541276397760784388831833100460694044847054771839445678186156564014092855019025517466104402726663758230171927034314299723464635501999032188600241686050597778875358560945008243758969861814414455365318079364121097516118150527660079201877633568972085708700218460224539890329248840838484836484220615737300823710402724425373526643330439692674198220474178252194701695787601095354171771022175538918850992971406206078704895354267468551543921747948328693295512164732384471048749355461693081950995014536820882478081931011104612966635574195674568435488670510283473214270979791989591026675283594071089021002455593417078554018678442910799131618426537573872871580062723059554142408713071405827785236481608363601440179104451723567024497858887418745210447588001971795733783795412137030513136898002970066867314781555805666099673141301701632976327918398448509827395684188735084496768959777077688403834241546942017044493141463614401891931750045353169163084413977023592101567064616309426979362709610581926246704269142337553963866038227624318377903093052403151300189036663186253854704202762578376662801890220867798149948296326915073969853939191592464099314210302701239601546371406572453883945968899226950575188341881517970762505852487310914711377666699490301732426822981000396370740849054991468038775932198438470680457682940413754367301812608816469241187734521735779362471112585385644238274503692916308881072845412952621530392912664907410776922931584760784371869586685970690074594427788490874317510941313263299951338994628315799332375618648587525546146503123921477464340232518515309745532397822501601276639009491423003541864313665374433054004255362030779559183698733638015878819358651497064090677316930129095797377974473308738896895373241816336533939341319930466346792100512441381059351184012971758968215166429174304346225494762462780528131842849222832660808450319858775812502709965212689729625405572754853280182398152450357560878561136648429137228917680954568462569779619335067982404356758255938204443245428840449225870010825601863714609938413165085357544121540071086234669894464641238410048292373582651022715712078060102178271262239497287988338982624535236885953199113956162433337032251601568531980879136129296240169603683450251781263915553406422288974716109479505762897694130320500453301569889472683740128211753023714242837524934646308931963611732064669609224429878539307170382715284460591318895922642437372613213396755373467852209052649778232613531339143746781766480584614678091491210156118959761481180651002091437444654340632412709765498541371039773252920659125471612542174722342946883696970357265420523732773435802134085515396437045073591258623081226073043526587638348974489056862693043076171625309895210908844247591267729299855808373470127407692563395436162913352873344013931563856010772851894257345302246603412446087999965497176082574488667815944309631778612303216840336305263381448420459470031051489828958323299770536969122748109877913341024197389192639251562306523129034533937391257135056446435005202240218645743211999154229785393137254840521511369109363576637043283968368530312251167859055721841640040707003771249365127030448809910912453230142985379729736675139094879010411528643820231712528269713573342632878874836724080188356626854930354936625756364780207367264313121563997243107943046854492512237239536704336689975886949105252568978090265021150549754466507835747288260971436686906045631876655002767000113570637765598875884637997198449437450358788004061229073804251861743887676724395728482695500201097530934186920111660754980859579169642613051434704222529693135113366456650499151813974915390461385178943929735181270654916211132580482384468383372047064947346499690143133014776570941375984901524471979822194822802137441919609382169305808002822297716039391546756066744431298570272792561217326623499260462316309678967899852007341192083871661451764683898330241991695646545206419321905405661044404467813644757172812480310478010349301831954052144133064293041063012565720699462742938069350404595268405980037173040285717088419997163529974733323609436830292583243501722167817627668871253029113451311037414922241173568311147718802462580463795169814254272984039060998632805156231888533251447698573815011876477281737342494969652747481680750521737322144557858036200398658045481050539420833071537620011071467517214181862259864449079361581391692426940907440707003403127574969566715087072885887007914306127469908139364821983161271470847305876696794585436244012028136130467440850998128165760040830971655055879597141155798171185811862788516847123759006798631118454683322707686801677982531325763688361673788798910253666694128615663139929304563084222081711801697806308512339408677020180545562682959302493274075383538922980459792952637956704664741053371202657673526205391123634770600661936241353731584832735347085529012215567697779127978176902596126906562580727391987024796995154710698849338183602336909932564122094497528860613229305014585400132148626984724690364594052765107130812130001251598374472189819806294747730644379811199695029521073864989128351836468885498764452689133275044488961089334305760776866422751594231989600316804236830485598389166075229776237481858153780922547438477151347443310438807088291162934303397602259818187427809595213511041603652507488387660409396942891054024656677752670431363511123493004034136806868429572734477460350728212518565727407889938056086860566399787525016407687631542837962411313399222522922341612510240807482723470194587152596760170626585221082201207814470292938201748135691399003864197469354354316901559220545755297337100520747813836646944070913319169985689218821998726636994616050167661799761091916728595886420238146390380116626939619089561014308316372209867193816491867265021154995421749606047002333338867092384573051115339774198040287748552636729125643815639979130197118236379372537779757637444406739693502181330288572428040138337139716405387961468942350035221028238806932630068881874403776076375787019113688842990553690672962315878820558123182497120108413290779120495782366272488693283171429493932706844120840154897706278812349941243847994324576239882923694883292998085372652734311207083299314011228964198040102926567348278563785100870185891669608364006608305204782780454377030942805859138794922053289654691320534843678211830363543436534482748242492273127393151923273314675457332264094840711670699818852277087601883749820358837885034331906539936660221346401612995233416518205336371613537159131516812777102590875850347847116358433414739697878856115191710513986361067190011056406722997628934345000115514313703227125960228827780449294022443625737895249504786385035554070585340871592540444486839069202701521302244507326119232434132878305152028977697856656352917459677958935335705220050914281196134821413831044537429562961553612201410211482151472724125760631417228965081672732892318672976805639125418227939693002191708564884218875506847119676691393994875752967544313766053450408881330890532425224510407010957442820290885622173134499830747706667426369914289500416115232666780190175648899558391143800476065125042814467633528597809971391093079593038494099106409259541996976940687578207858306456983794643164566286010007093339028826017925726140301738271426458981723191111628356871809384224396451424852013360387285946023575516793789318740141065472771238651718786138253978737382737812766846003387048204646866832498606757558051810389355251162405083675780289344115269299575563512124335496190360936578717534707682791929016912738580542935519729208550953097911935743901689173950376155175589824383589138046817092417736496117523124476297159724393564266127961966924581955675874174885436170342045630488387768723074116638266289515921067231253491923272784184795255139621741783845033289774901622918825691619658386877196344704909521338720554390872535074961572897265351544421879974631842889415181871520121821531148768115646016720950265892077710307266394640613642940327908303454731053059792777111175329008230979835851827089082341294828700226293915281548387041790096436027048514160569313136885063669751733902185558691184750660369799055568020475379460013565936390583471503373789992994534934903805604676213981238533810213937993405220370333434361138454313863105826351858264976609990530123261402791371979269790109444739837877567424847524126745129767876656942485402584549571166882558227002503016317956084168953862884208469786074646838232038716305904688163933790086097832795767283074034295228435099464875503826024487758070418067134996645227606136176369382761605491600186932987529424193985413612246492858433270606623571591088985902933424999019577729979076981983323605620518941336524268735500990081176789766770630337120790773597924128351157279426484004492389968923109683798235604116864966876871402769071526787714987465497337893287036957228271821276432698881780981880602395977117939715256897290219896672095824155299591963529755328242364653084349455530273864652262932243720860161790490013766787677815749789842088811933236418571188486364296056466114262684296846431023834962620212289931546520071326187439854186304457577702923112290606522601077010551446639303564608542786396477427583238899472511114888385129821747514221807380088486319559417537777362889066019052453790877667806565708008275661203592286636503863458930111571297529587202327074737654464926810367624575675543730288214178023320325526021971578916074906008066594860542352012000067217767517399552861597803222437871408832203822020291081352532297963648094806703076242721907390794792748413238040333220524341732989589712453230729475551612442423526013881621108954869410118489652228851011982409149422494580459775609171078044852602742031503373211948670777834841667465637726179873526451525089500953550904801681176565299641770633511876329350881372259692330347999954003874368535922351020780444795593666251886699631080526786597287578001342160040580584198893018161268412595622662535758940884302598436502433357524564828018743897635766661325593758753957506299895539084953603136521126276189351720135432862059209797223165982473555151224664882075012132169795698157455028157331606515229327136276527707004484031243226521611688210033696992261477294063478444889806421448877329806935332883940954709059068240423425950168333486093398211601953960797460551918686900746333415573943735563114975535682003417329388163033951327753588315203094108141475101762852113924776559699488802290575793280828780352933082266194169214230903042772796812456084798765297015607275382057344102017147186019197422583074694305227667108776452154850219285007626061950193337606409955106593698670812741629687134754844722639546892581615344605124187829585673092555322904186617807083854930809732184841046485790658407881430412598105943133491417396128096201588304942467935895758129439236758003851788700553816625976524679689533523093276552918897269683876767214724814736159771094723678407711764009575887496187451629978126940823331240103961119537453123957447549746186751771064708812205491830380870264481024444968622740180712277057302798326094391319840919603014403119405595170072081966491374522877025085332175667054443943201224266366031741040480695677829004576786153170031755681580054986916891299255930416625414453539151547506350736376569462677046674096083034015363068636494618173404101709175114826224305539887821274042010871371084638385674137821167044812297731750985844468153734370985244458604157814744156075862576741077427335747381692781618760418201067415476525359639167085011814802305757106056505963506248053835456242994828125702218919990877906446804335339596038876877375287961514677931453946616907393090587732527858413351205999857401215599558683287558158828917395284574498942358603310243955277233504914208906596481340816340829153574805462045353523255745077902527497286448445700393320807484259096869194495632287495959227822009108871224600948422506933688608590562142019771709388255098339856631037255017088625944351573670664140801749567961583608500850005583274273779131189314949445878244108465918025516459606196928276769599511940363746113884881255109980070997831653165375393518571711112254861412970045237064267242737894253079890562327282833836613881475818890498248256307959841300073778726022285479458205302803374234226590237902858559143187752222133879666313980056856274944745364090456235812899203727723593219223409032172569790098012364736508491654076857138249930668174661716947666079939702481623653134776142683392970904711335869256242878177512463303966379624027869250791144045758128047073646816274123272560917002743133759135355227840770247266100088557798431366514091755185338000725824249337957730013447765988417465815428134590469574724797927361995986329505843426956830099507170122612907479267603304105695599756926211764263682069254230803756865819535242820189769486323783069536139415063618167453254202383704351281966041565037469065438748253481725296380691144074634041818112025385198711520149689048793149504607073001188835188243707550464434684011392691878807689693551607761318118925461835013718013201355890983184741587366349329079816592507186267527965859713198408802829649848740619452544740664796903219845621359692543139908854198507176539393103565793447534786933582304337453268472295148384104968435390296785831760316823749762460752632627037441558957876362745699672404789354558482369163626258001967178484557712887394718385736574506338857924216853273695231118885379986975950964861465586007505149990131314050441210263731739047720056154619482516014084117385950264457379987969523031546214279204877874805317375961970144717232819634775285479090007822805789983603119941497325365519087536836791548034201583741067723440147977296693755299797532729247547625812926795281812810876111788650380535344559727943771184718980721626140828685389258694419418318667739938093972117540384024954818255896445064576426914917203241105345011926741546005177227939236649818199754731782200993967108672079391797142701178032246516443643244498226198076053588347831644441783063399522757664407940393779536868442623575082580905627078417225047973022727424833202893446989348649913530413910522734633080618300176119013629436576372871772284100290534392802247735756320117121740009307020553370847084239548760529231966739628359787736860225502624689451841488930663879097405634090620601349876303101252699119958761644100459185880916098037152044462334405560285635156894723586609287869347099831815454759631823525902668053339285608438562568405786669654607868905611192129143025491410750416579580887253156042129579492548773783862760415073539813309761671512809274144695730305377061917435114610187020688278303270254921310859325150182388820750819774681808429616806964579277853180976138118799024591555399981352394349174661295989555267216546323705338835765333557830646988421841457187522228781592583040532666404584132300266648742484382886163700485513948109000041474169740990553411092028136384858657584152094427672641991936349921119716816247405784740218767631689859683288911533917630908003572297185598030524110082878925584146163530709691710872780361098729241472108429662313986049548114469976798308609924527440310245683429998882300585765954962883230325568438974151860901129172776194420871696133604215309550071662601354276682873954576167215911384858949426001090257078164827550436699611242159915070072233661881734303710577903819955553147730481712050644343143362808448015666466765869209836575105989306294600259819860229549640252105828898722370501493228098948996673005933483687168240209061089162441381084003510201720564814956790977378103700398869263789546658673843262126576056770159174783811021027020027191672495262634120658117472118998435377068175488992729265044136973078747913808808188120437939510779864407658310920085900916134134223891564850334370671839318733033403646958518476806471209115987587593052131543519644944579602969805932068224555622739969194789114751901415894179207029020853923553048605806189218935254372944053521742730530115791053563032318834536790187535602447603493714971261837777276865629716596679140559169909916192035538687556408275430361826484987087259808887408656182446491365475448681585186783769695147844325408893202945672019543661994650328427143806196890407340203006312514387716460933675765669492607103292141850094334966440215076591875900393515784992363900188074243499865598228703791547922662745425870297340499702631673608395511091605154224000620736499311147269765923068414240437937167747149283083265378478511546239837071501059663724298992604197629452627757743847659199104794653979616778789125723934192302445217396633205321397382494579870378356186978630736215007033814600047029089073238085139986022778111214894844614089867912564976536245063814832542641122539335226108761243274631253984603994505671198772469273500723586011774058244917220888857892715671639928901899211595740528778278246123018451395438978072871408973786196771520975446518721904758796710381602708702957075479379106739780838810713688128671177158848985345056301229288497367683062032735763020045182054508573471468661354904363267077573157811243803354676399769341305915499719182368747713615170625868685138096482689363897961298309690819807784379691278548400480461432333529943398682726903594375631281411526685460278753589111851815662886008235176607201875852363758404473033121979828332550380047493633372815646383064440187459513415053656761914804983789039478661657495620940520042637409694171990582091008206191565838097509232877129359467317492784735449116000008137764279758302795516562796274145049146025028537434975443464100764152816474278668494300266361640306886601142377495422548509953013249680657848245052885483898067983160714372420717769538946539502711239501221538678862795795031919239284594780576674747700398544364089235773290490371116244088649727098944391275654820508033407861842412924845819389629551233018665332581266719944513431562648296107796000915827301129567711535657887334955358526042124395479937909850886865545019973870884417206378672571790087464552634637656771072274901226344158621813523434247245469561930037467206199113499626177775668534656087349463443481980774412867682325546439110524541595700839965876375953507089343186538164891129028567540206175630713087313486626451088827968189294290154593879073801641355042491010248280043904176887251936981893594219503667769543083368057120091687242638354804140550488820175345747235142684576776584099307460152232637059649032605971082645623591027856806681464389514518899713595502303514997444079100140238033653544595101181090163258189762277217457010779980723778294261126735335753153939484090739652664784242420206441038747515290057600211896014410108480935164183012973570030632377276392048959895301102641226330478711638984535774856613262183029742008706413290256659770857357580382128986344158005857056708338610559548542849634514667500645798720387457242475999036322209336008881798507513321285339782710381381906811278939073009507983090320999274481400996541905552014730334890632339346099972602745928592032517594316109501647382512582879964892106272651854047303137033773976728761411263512608285764674777863949749147643617050687875380934679769453649838575746180989218004097906241365779868380734943217086706347347971517341861888643478720848733285329632605786153846296662344238714679314818450198888121307819165917945521299444758675356402237070769571890948108331637191968762439790543492258999879234688591922014427669347184237157164108270075708234991482324986571081121689826711749182063193808013697518923906507232261183188729489067311251150972981805696385009681164165040982246949596698807141515727340033668635808203168976321628385759858069086174452961191671424799129820835955941728417872073804067635581007517274268135812331625416221168683890126546853516127820418158582313617290918251147358784959847529812472221320261071429526492409738511099620815114758431258258846796755006835234401925659939367458003072175267501605858675375108850116058355361095642261751874594176034408570467419800084200021095764968461440867012715133087065905774204528081701108886382326268224941173413142876532678032611880151278338038907464850931535815620923037336070809581517851644013405989694514764632093170944804949489432463986680368877259070626566839236547492093392109963089839455332844868532868498171117483577980356483539700010104234285173199842441829661161637621301593618037751837229563156575921930453366822354818129372510741576375766108824354809964560938861292880104956840596019345452686097956745358440924425646641732107939451137280819459088293280128078353333733715755919965209875927083440638549861812390549312870611788369168029338115932703057761327061394858322552697430663739412687817872851938709241191901314064063218367678875063134131828956030255844998084957684951432757563450226728212359007359996697408514153261635842462003877577716107596938567617512662205613195251134028161698352256205054254183779970672306653130683879087296068797760358727442403182937388354189579197309111777131082661772324364602488810098216836711523522984406706108216254269984098879336617383235183841107029305252526727468384579384435423092359308707689890219910123218152299870497219302135199347436197309847276495756071013069502116321256692808812418498546279681007240881096246661186598997464699434083472462029633854770952735806066916068734140662834703733423690578978870562065888244116534092381744188067952262311472380414164874320057612828396875459942107604902854114383976341808670095417891783981256982647449021142566924617789519778420716099239343042040830807782476216127046651624702629835189660065445151478354146256574792505319617274845824049747172332918098626444799369144941185820730987087225932344674386358656896150713041597153844715460459730556325028933914824484132915503861505824052906326253824462066892345783003539311125361724545901661369126444585360389019908202479955286186626426391087710680028237913106407431792491093367058807108983174510558902052645479732529064388895574168586270233006743097291705544264226150157265060883819276089081405161311635907593195413902176753227123162226525143746919927640443638157181242549004723573790177418433776600926284166114127123469666081379768139769762666240680163353049972999443876639549265796083155163177057546941443542155933509911451090585870138677324520009341542844315289983783113354963989697537429705683131808226663272813550160511874656455654380097510304525351535018773098970685392735889062159240217543016538590648276036945070923165459620695610096763918215448234996084141166988059631373317900594564655553434807160575884440159489124047389001789108505110150171015101063710013121068220849658364440178493717526225137832828295655910786550566713228603838612600174775469233301509465333112350918696331531240018667337151790520146426522961669808648138416673685258619484869141227248418434108447455543866639115217513721791419117039272337903191305056458858294294425776932854444803340027053840200206610945065098195509112672349811341224246797681202539528242450867519791356732880469643955024907980366286432761216475565971858657371468886058581677725712140311569337934897919189605519875383509729880951691341320937411428147374213763633726921059037319176944429618657524642673379740630491783244229866191492516517195034986585578370700153863340907544859518140662978986241538790247968016935133751875190459891712429981256925580765954444534730229071323666019173559647948892403711143347923150757034090171596343907505538738977319728240229657900940484118800412679665648327411696917940492904925704923176507266684708754769998649932971703648962071213812010499996819097656091777961525305518599422463325369862170904603277723174010308123918469510590829947292737464076751191550514390807969815307286857617912561272147241345060977809879984741508037548460000797316353252481101570123366597726605260586078678911420954988502636263110227115471491036706601890540148349667168013151792118533977562014246092040601687845259957753640415499174746246099360164185361544870749161976866618993479004344769980671048214721280423562086578848959057940148213696424405856428592673552609515363319139279298753337599298660855899486895703480403336132000215144668078602300331101220440807668913141299740691416020383991068839437903460903355123283982252784873491561061693820491653826203721635007424536457086515573788508611152198650668782981291549139332700497721443722828703666160224239454014284556485506840689138090766210710342222733150706861501477845012330917384896927726115835076549654408062481870111812083034603588962191200621888044510725171262933988112912440021268715740261918895714086784964152941675468557651328641734961838975784884335295698989371909816575607678258736076169882331014703283524459528025205325772965825946806182383482990875664385900069701413585685460527319889859062306255038425247996429984050076934933990606131828848803686844848319285765103774530457404496163678000156474381224809108528271667701674968080281295961112636321422098596442481792271718920736764746218595518029379792106827965817173734314593315629332842695024980495099337462835688098946504242329252230315533136032991401988895759800590283504339897753131916435372697923143048000778486520869745533568028264898347408244130800182109685566568651263277571480030701387206213538616716549350133509388823324263426419631972214432692935703505356400729639394961841656756658805561015619366045133994236273478426932862010508614117357440439301293262836516934085218152180737793318913149926092694960566384300430178072404041486344474425266579360499112677701487650186065259828803814968908987117526122640963008171985927986601679210353597362579103751926306093442695543053872376430699181083976588819219430891546428060302665463812966203035843887600107667974391048043616975009366387156441128174753383043176096041505711756983294925666170741434896282783593250220553124980711780561606958823851272604096737098737091983962409897582002557973800551452160643935990345277072035281140210385010680858290994178371353506300733669330551910251119751588708526087410023271336338021724963046546706795129301298191831014230910399843313142436022410410386488453594192905929725889185359516552486451372261346095841185170828990773764737101362160371564966916669560666015612946493162875795223783716382698611125591001539036074345288299561506472901908868241076820356635671555315209262804860454552439351832944240456966488994838079132942962706526448825438664749486484600678426725192327618563729017309713339762681703212012879228780417513879011530549310495143088883174000710092535077650116733936268876104729182914574451844688261087276805306419594782749228252667880599709315606912531961939497445807557648870961839042662045101474456601054499995006173985562087274796311891507568144170514581718504955974475840763905921557491056017806022423458663170348002922704748891809100946867672303013457986109248210851666255250212815808041807547572366472897510711274961443444879172873127120355334450559491564006898064438574079320493732302362217110253507167073689462232525254702916332971868121918164081592053486265524382901662193952521784533120732547260575492720204910224369890419597824625053752382400580148726573021872679738424603901794061204732703177030855199108196155836373797134987117442600792025203665588895055459345791317275531732014576984476583273464634588375627875783313614669990095865283322752439119632153623546479992944070519416578094412591679418290526479607481689460914198007226241482996361023687422467014302256602298260491774928048461005298830979858344162034869743283539703290969350947310025568224399821815917401574641932114926084944876075199888849196314635241137969491347136225661008416986844374252096482869009713876546619555441779192135151003950015912834457212746784729411154054059973494885714427801077773853938016320772130955354630296160254364392399494303963869656062381735210165841931068092875584984513220369070934668498023521845543780052377110838596906298449024618713963058387735708761903269710604844054683425006596653772827852824901725356624003218615994614975263663626441482780111041782421659099563931656561215058167397207697987450644206052422043149321605622814047735788365299122629676650504875449616197230580714472234417117104742079684131665693133112019928131801580117890266721074661482399368785681170061964300727866190050537121902549135295095166135816040295348222256692282772257389683604498427028902835252420770046907473234368368676994159556059311929067330558468045215846897276018412887403334335654581221777386749454052117338794149682714280138863376643383591404131395786933787704435855752775285471516593873002211105936398094115120326873562284182008628647198319179523723284909183034701190195378397286600255262586547922381351637686924149779650800557781251836619093013850313383931006701523464312118463778220773654078729545163567874926629488106040179805585291042872855519153696402244859046660557452135070924412109055707496493388158547103097478020344235579793960764146128695545508994311679713603771228286486542731891403092001276119997423075432379783079369908099718124336288647677736169661705956116841174675352228885409537873162100342839847367723181736639621082206559793532279962155067127745177314886039731628755824950331088460730098402957715093527138084015272009092102925007058847588356442248058075093075101745670040779923740181600480899744537987103934031992130976672542041957761654720632513840053979087060075880483277242549630597197301601606052666995878957725210644989844600318218840528137959038412495824284600710882057038022275047414182817668249974863634275061252085843634101738220340859278744593768838623244656068654490394824330710281095967829804062066617669696198649123401814035467558928642457007511152099909125873531739916607004584152258729621449471811016040318601670296737343138023431828327986536720681100200400755045085895891352267756453423960896724731641684643885023514696839018731038698616028758027734489997483061731854772485435914686369988849270913006824042190907642021420654674243770381339165255458336049582808993504362499341379306911115097361842096401623277592537807095018897057607141089815298059985591528882214794038987972922741259291527995332417424890579499697322072948363128891064756888378202945598450355354470639515515419328432687785995000152587565053259476428587293398447799253455478353918392668762770362218612621841133625535678282583904502455228914951737552988282780143626825232265678018414249755910051449199747927192015290762157484540898876771586308614450102839024323286853652921914303996233412212529786716975300432974592628693453163915010999258553967742185147250924230254379643111323621290851329037072991156970597462500356505601836288521581566751930295413368297867053660720156749168289252122105081746121992227251859167657079724435130705939211482781077454020475810120068288203487910819134609309992483746469137813650974406162367182457938678850964110188687773823945900504026403509583132535473970175595854129084478600637902397649892208207360794796983820359150293239082072035301668946044372873268027805900867318174744898035712952457362150856200133037014668434936615182582775248041179525638391915506337353563721071521238272672257208524483713759470190311523777039169098572048147545490551216251512897363808680597321734266622768808910423671699576041593078037316989593552252280932908875529022319962103146872992055639245265841846538164639670254384383055028143176064856569406709915763726733875060733137315460160430577382353020585178183312567138109341426747162634727454519788097387085608485779668485091088899346090953901486526661024022608547776754828862585320825112580068057869563075567704913043696244286467379996496811210120852110615679010870162661361015919998392491482132542269342389025114776551398373117995461757996290736783782376200908996914366013000517230275067264980685978052854309160326527736356023012730703214685527747857660761242432263900250830382569515897783713458385650108605361339317439181328904916810979462962426309662920841971656051073906224313272278628330432924754960754824423726839743141814024067865135570651349904327411125332562232197842015630743168568452829779124288480533169036511266700399346007131044020333962168648312051759095636815247336632279175446873284461994241274340782454071692636651312347604503186061982708564373221637724973827099898184284911596678018032162876639252682570685956807297196494904243043594832472074748295452967992604513948223030458026656237896575401757807529385588310207022683102802231801085646366619750596376765015126949452497149584006493674246037000865058783072444065747763846146690073748676949138625595817150939212004009135831780334091801772466076291073174396781828526507542228905877540891349187149412966802592536377481095646100713265067635740753903894654626953025284044571155502644731017022791027810290827509452752395919915799643392766596681386127866784421072487611608541267471913292176248396913305980367857202012129557137263889834237746534159401315376684179996593121496759274344348949625690300878096307626415664806351027739874397635835894696554282663468733671323259119447388129409667165647501207393874495204622582119213305845897741241559821682654374041984730921985253856025091872112989622106414422214371945004568324171073774540628346172545623333170888942213383727397704433040357446648249579313377355505001407493703187241353042278693730278352971253861578186555098477870869483652417267985544926174223543075567147820076829830828965987877665509012817550622154782922290042863688482628088186838447936264618338330388702122496856985838340566839591275737813496394505932658204354244979678718301307126913360353629568590247724134109319798403514640539122091395618322725264570832504190205326105944372022946786326852796863476577848476104081020310175746546586409917888253645839421838381312217208258673639016572327531041361746054104551576298865641840682232528434559479170435899355846240251617476563896773574930292832182277728898971917811594325119157452694712487656697350448433512297711458579143604275862928824334897626589752902165366996896139872800573175416809780023894462365447098393857730293264687903775890575809042447693753583255296879279160052554099481479809350440733066264838496753891548845371884542298264687003413099999403059604820760736237101063194708406265643094537398083341070536392824957218777155787779665092017829815697978405836020926355184683244183412276810587501600644323759439607842479313007433358786858849534989195467852971577373094852401938469118817976254319430934947245895236492875881314624288841633127933670476074024304612431795664017385147326402645697098803133624697483133085232328701013864564924686436547643460844454611315476474659361452394261248891513779698774930550325369815850114136675819757692296418155587050809436261034010125899618652510692776854112171204216497367801586813288384145401019546218995188729155572018024799962655540748183405794272050078223605458519728815838946153778433922050958857851674221019344130692507796264578387353776122732999610711655488958518570820351233896243540812328868813919690044355467771402430280689118614009629748524724733531493817077494921694872145128801852099169182303920027203562066639931225263399707714051696828151708667921879429827428668873777997331192440598413127514990645258156606302602924714172300365774812641019439968688168551035070118146882518982868829270655452149193502857792698928912343510743046950447559380441893590923225665479785238421790795097733361944628607097744920782614851609284910386209261132625940419239474253736984382061577362617809912401600758503254312257675547463317404825914617557066534162510320112078794172132005544517259924840423264539143013340946037810812476732486727426383343986950060084225177499562672882208773302307571545822138222701464470923986020782064655043522658237417257661797187582693420486029400545535177705104834308798880035117000339243837419642806825454022169429094495933374537519799833110426009713460801245844363138603464230454451206902892499511182866215075219215987419876033301702952003013063223388569474839693290578494750007332279522390739146158097140104806037048410296287319355056102143521876793343537032904744364920317089580657499064588423734428951758206248440246544125840002299577563444450322721617387214443930387742783918613534382441662387507088019607562642681965073337592203058865903200409137875636246705544264333795328727202451815280697466640997999551168558185012172953635005759185614654570247438073451615909227068943185658854705218690431914662774752993499238855447552228729319600201947505866776301813859461921420909139451619497617986253644280533850314331007372379471141610388006159075903067200018784751481564302740369918556560919379738278941253702866524934904322724712841132422670911896858058015410689715015698133371728727013947186117073384571476497457558113560589777636587784281843969858020210271673773727172731978730149321513953910001599721102150710275865650751135761956558317848998401691054641367914507993787378266281963998418500492243942780267061540926813992737070427746847684049801824541651736114865702044268006317130599634601461002615408817317408929877430832984868277673634808495010604530596147174413259998813328479381941615797131655930962620291807153618761230336981323086894389755113241248348706679639447141729702390012409427263162571539211707465641814901096036021135975999259850566003100660233344014065386879303983471011677649764564017122736408935188702672729158146890485033402589289042133530063247567694176178969672562809837139980315014117643015548347654120950948021903811040976146493625235732705921485081203349412063360774386671494644256233749807941430820070494551531297740066947319979186390398733028293938704901199840955139829858648363670851151015115720102277869919818965748370236324879230842059157981408213459472740168958609688919032706505168786454252137556047502890725972326119850819398473528360261517286102463823011344142444665817888848794689025268621852893275531681516436874726900105555521909941396763356816376450481970156469472769370309437641717944895620510473347486246693803244271534436374870766227570432881555949749635049255100730055492422058872390638661192626840142497871457820293666290690856297086575067125514941678648068220312483359483749898649371209306220647290267176592246163261609770893934366227246928305074581218935375012859532031518242958086074691095205600111009316604760522923890815123036188031497634306919212783688358513715820601040535485269969511484781245704504033275673793748248118945368514684652850777260621936911856725726172278206050232068079397394739270558045105182578726472676439324100333178448137987766121804825096296422488610052576356795226607389456482563397573575340038741764629578491594065644825971294324703012563179527977369289366817066675067772309412061216631899903129070565827337315631704670396908726593559468270890707662159307942232079108176755207713806068907032606390859345731248897399486774090186633303435819818501425975869282359075781808598456293266504066068012353009691260069355826261125191564116490087836740908924071736779019883905441640950811470302636061808028578770372166683626354259726481247637978877692757416640227564254888202779510726088438206383082351588869871930465838271285909395981138411279163652255278182475637216499018084236111417950954824279143076743158367528171688857870536134381018357809804044250033517825537229099708785988325827450378385896265692320901741306061278636053658611150843957660315372478661179460913729276804867525076900614135827397698235455312878234011932220195530052476860088657683942773472556772315285750162051179767888125894967939578986629779917993633173861732760539820435875647357029005594913821507422937077614353146949301764513599786707613070310037713256793137450501686746042958142478357930916531954098413089623325098601551861791753796560339775622959333343676831888809621836914783278979106807805040668785485283004179292192248194817783392386447540278394599766810714525094697517726765880561656762807948614183817687155608651496316040704931444601118545014353879061220179312521721363997449922590012814068687081618183874426905116802518746671969222969765226264474428886648351118291481174036038409009524659711553262477486219680342352106033086642828185537555722990903643244075311719097645617542669110178710220229649620696274956845183587283151998569178961234118119103138501978975750737597888356039803251486393280910210812909144562952170706800714136440107068603432139369963365593157559647658700238918595522199589508888452540032883653059535097448923247867148051443877211345180701338415497016757941121817996559019289886556905491339648955312815711220348284007991721221488232932552294417241956899826743957169811251594751978265239359149182065936374632438023490716381922067764446310494807005515751544156328032778453674451156017100138427986740751271712969575205747694353161034028004051194597498737322391855354390750730587197313723022946634769707210885874293445128975921971975011849768642082205078814724700182627089145463054581239852184843074766645940039547351031302021156470888485110042002648611607046171187703089493679849875918249582019880538502500710672566426256276226233732289330508342286529668402651391323995935056081793786946361800185197481522544826998088918043864470353899771504366565205429130172396260783549650970345419999456642575607939573399220573961116227425618760382012731377763275591785514746914977569313730067047270172391626999620228000310532680567495972620769844247537259779529415952001220655733833966197525010196131826755922551282774250012491784556259423596891500152029591244971921397695022556847448638333565306205304338806261855998645057656155580647285046276937191091371946783389405577278048186584383515836658420523301071563282590061333728512812957765535249917543538371535310994520885874853601111769156019677471399916861692681857465175084274450222837509920763005243516062954256980158634354141490840171399731142825055762931567118860190415590401406540390361426551786796527850530733690594974769680772777841076074217864870557656677239652432064491510297673376041812102873091350438216033267835636420336250516427637101026908491907510314755747688684564321076295013321724450453260552209575901079468337664132839103082059876368928734436301271791104499221407932147881478283832979891260970319424572773848886558049338128334119490462941203246049303369191884606169187100921406982793724330658716026123188565416784646901218915576276333028327365212473416801718330269817156894502140838919366903785661349799094047602910357047078837236934596733125726020035759687047720219178351877432871736198160182587756850605817940797973650789252494151520809620033221671774195364800601533879586816745748108543249985863440214497290405709196905346814338552452482335166461382130522513481721924256092339527405437358073086076456739192455007322508702726445609456688031402269194431153530971466866842760526156087827277042355896527888630190484532612289356970154281882331454496076546514833718945303896823951293943763349641838314226091175020069022864324402522597424901438774503645683901953863661845330805178511582939788138706598422266428569558107179464600133839955203224728158943313343462332491347689592661411205164675202934783242161275961778581135989124020638108373746396556101116099607979958309505767169586097633875139304487888415664072365689812815305118698997848654818738106194876479001948159685962700019916223615922020349522577715881002960763547754116530153885036814108389314212277754005736988066486277602288206397353967468999085264108302347409570047158515276646264196503323267639530627512310864324717058356781608004179081548901550924902690436741065788138914873825930250677790838253117106661191649743081904463405265205143320122148738131565327556888227661597812146397849474032924460722738238875301371678061874713647057099552572028192672475128703791388067199580745593163569188296797492707516066262628937145727053263307005465166881668623917010645770722996992153391756960242058616150723640776663391417011810638829025363440066493002772413122048873892177392746939197030922855876298072301555260248885410057848939460726830046664296098165856974721191833282953582861689449028648872879600681530964599655335287916655094506498446324579814040978736137348067933949740314434616013971971355929528583531419605448867600048126753822225768589841301198908757260552201013487573057588582826406908517756608486578789593894780923623216038533627268557761976347536171203324231971322513724857008511627349503800068315933748766915231192115241346480416679302182820688259910979457258405737928565701898455852882879764878884181506624888566160781784689318187301258195590331725534296011749710429297869044792341132143894528711588115040554585708852103840251008860207408694686440832737596307891686204887432651157811049103065307071935114819519069509010713485741782342677138601619024715773009877085948367343429141130996750139849683650646942937383922960485689600845650883283136203318271969799908248922944151349626168298111372486873125412705042207643804407321954103165469318211437287465315533703705847289859320352639509241224697298864589820118978170178806759234361223544908707623481483571639911639546444194379666340146045041467060671080886381635312056759324411190949920035181770252437337881535149459236057920208106297484222431720440286882360702582410960689182610631941486262528968882132393030606384487701334156020208080605959538509443303474289489871457415602520515868376998021212118568871467439995052332731317691035829741318127715422353684361197775508494941639504463029164336472651810969657171167973517856609582740158897849366428889694674827585796738824132659365591979095865129176643155582515454991988281905947507003037718430276380627473198318946732131896427695038133838039581931892124850869727105000539330543218944166165609306651226442620462340524172417606556332358627088944265219357467979475771707486362135459346605861427400852906882962175442130008724535770551763185983035230497333591785723736963697481578751003732346386955336075138044888070531322128344103621962701862579852554527171212141043540739464210326245411415543295456480902221088839890196132304454442929385729059859675383029830142602901260445256144413433049694792491911923799795738597288408281158035846413624153092786633542272494074968128044526099237857552040890235450392732258564899100667965445723072502685711160129232495418767691371009272050791256094756812754876413677503339621453589285195439981011688530892912686492713993911302032554893235858718784226143225791837437408005987036916803960297950053125760802566454152805038349088700649257891974709351039393376872817741934230541696076159352676992225850455055363654243166355464773032501383714418063538426447710629619967682108194827348312074083545523727439062530777664981082404584434205824139869316081647182702698468324523845042976594832358393696296544721140005904945799028732676015099910200033203532352099155739354700525845946835422527380636651728860972686095704245694892402464699114157799172626647912141006020993156080578928924251157298461089758465950369230087361350473913318103544237520649696832858554999454746350717604121208843112005302303006429153583277678073512448591217226497077427139908293697942403441581008547379577188966687303301012556893646337415361087211841939328961809967904348261640555313244334701207921554623339209480230548589061995106603981303643260004950655600232588339614270925384953171791627640421122435591938514340367806721531053730822755399183577742899684139287916607505455003224340712387128022291991150679514772106903822588054010702960294018249449402498898593832830726271684460430677500478059258438041950558960794393140788360449455061110334138804617702986099782817165531107673946931512944111345984822154021829924618405227271773788714641764362751823969616049099625959196521919122808994980070330099080784827584258564967691262244656081350952941693439347302908671869318439261674824141825435104238510316498122436121955009013320839857371237878709989002661874436020542763667524533842095510437146006912191822617114385765969230958125919918184240492817083622918226973340276058537825839028938953457166103872117850127722599611629490765915277247458385225446926828485989266782221846740764380932141922596051355925369522526600609805597291790862977708118952279957147164247850483774138330348415629103145526709420514922368791614029599366056088769434620840025759375389842106718523143564488073551570966619483370790988333657134178166923422257287617643270603082760241161581281043346209201269639734128219571868268724528126276949401533931555674884720178116170316222944751607638432091990604621205505210067333591629923454737246021984731480083871584286492331855582257459111429240610103507546068066247067061217607008227150907053405692164793981350954055815300897618761039627464045816580193717003973146990704953226667739586025399612406286215742047655293618824582178746985813803964291717568122568270240358409014363797175163421096287593613770111793628248249199059312999804710068447067956539666785224329186955721601307269811276377920891253971895289720810046949740372970223134932247640224232179055373529781487380328653170609976559520204959007568822533133296196263779586420120343567781524839684002021327673225725751841910329226874231003237761813739530668309386794769338475884215818415722644808524094213629084828270825778787299221488824984692513815405890974235353437774084415586484098532988876441032232193613839667767463980927509332150642552846460994798201739824315456092991756321043826139382128830260546362732429266593325509790826105545099357593057378971342636707012730166785376053792676139988731612190001138925937846227703032279962405056435869521002996329633806376946897052915536456527012817068598203584920448477590564268770237224845599166832279468567317425507151349805053787071457838758833073204744107394849665879514464050809642457593609295673208854030030298314958941420947990866153778872257952658199315270515715475668030564360225844017070643150386472896882159975837295854317377887503716262110660972695556128395823477111490311835179602323875766633630850875128639978993602473303196075928935114499712311054552431533975548306839228776886148926731824698934822036857648656008803639487612582862401975332682144392065111774592628146473966494600730661111304658649896256554270019000368755493112822548484525096341333855118698587276331632697027222264799484754647813876008784143054327587847845615394000939146743786846127209295195099470474730313110228963787323028934935428350216213265476001843841069737439537948466226843448944916905514891868460607408645796502324567210612776300687536596515049614083198645065246361358082123453441943870030867066905971670793882319344612167520002513850653651996551636388213526604159544716245499171840947156249157833470851795616410768365677057610337338762895970322968204597665253515728356141372239963733988813797471255583329577410286311320711508865091906188100266701514125359780715563346096888180715068807919719144470328425075940399620334298717859063207376739049593367489461074832309781040350750385179088806334616569665427335670576125549838164277613512404699859183428319120872666041566892597151076303449627927696693819186692895964839374776505953704071066713470598425578858949633162020456904713222569970811601091030517784893107717688347174673804392045979566887602681322481283419670735328668992646624121846179271904476579570417169247085345278767221642823927670161843006787932613187932049556792128887567127544387115713715869325645649644658237022656268202063034001956653648462949419881579782356735064528019150534572047637929263844392043428278448941956777827188351391924789829003723648556595059148672540646347313198475450779058256786862687336022946925869586898979484418393105115812368385218677666049444464832924420848736582763193513111511232421384046164791017843720830784486515435799436761999158666943814901615838684173431462021148093346503626563996463396378231417272271525390584215178711226997972276475150657733819449860397402904449731087400019238456836701766804749837344380363120569464837862760311012777415134541720137774524096288298563455789322268862102335668699162116127827625999498838230594262712832867719617647819108484137558669366082527462114053556819799587251148248865189030734851980616406455989755928459268320075151296794408258492113724533588984552353291156507787414866934322362392957763200688646924343861775771974538310223127748428182642856796044285853939833331231990795082123779486640949973760154118408214518746313151381522158578289702603383050116218044574530338420071136943607591105398458480367537648911720451801439722419728961790248637933987228769770894614653263881526220807311638833079922434142795307375766871244230395148807794041203975622371844699981794634475794360745758977040280691808335665512228542042696389957505125404797277705611173920393030189364851993882093730462099519205261101292489783473168026819985679121210276816935676365209504395752167462043680457015383099942381914802044341775744905303744262465459679407801421508837640226756401709905472143088454288789129768908116777767072142333644508077896753799114158891666003580431481543102608026016619066332967120095610552528512596420238793011112573784645228777710585371048963572699755480998951706030701902806366670968679503098693893773479631488962511747993659024333560093591688520363338183751141530426464821602778499939068066893237379562414331288323342787851484961803621355552258553276017226695236757953466676081518862079809622183220539105407674087049536350209080977445049263615725633260814390458731688958706859115176090561621674607263226392278380378363418175676411996014022355237793887510164763647989179103686117453559006892588464389883424899974085060971793490838551947057192214905695564616127003107262556283591001395484664402868475544755810832617924239808677209995315299583745498809105637182127484413549946299905981099984878712572457982796565602369055340277557007141687877626729857448165742281621829272576338768111164835147952358624603506033282763628917471168944833184149674710432537330153860257553104260023894011839444695767969803187276955142119037863848005942189703762119381821907091585147835960754735372747167657395833197597353421820786682759352219934452757974003920310092205047172325954154753098504391105871545042169657263523878031666428938101233735044061321122670309306252109234461487090404276798493449038715738524228295263152000340610809474654177008900658470433183306325662372490969023069374913838575520526551702531965462144151270922682150251539678984833605417734957573113470045964080164630868295333853932824732891109656625078592927501200813559714317277232335707279847895281142163069602913008115979643125769743009042057157613184119312795926413418708538534791973251544175781654922605704083975486891724082871390318660363272589101487220103663176108914800470990674009603483423159939357818310896717110072891582177431603991444351995952568541483481668102086153246771122605528675661195581741299451017979302120963029512713625062112061809355617226932780483941892524836482901149054856226358159031158539854840080383674934994202287566998765751116704447083637686313228034162441353929917093234845052272625185732435088036415590013692523901649711520382002627034219459458791456011049546818682704724617378059173092424653093278957203327250216920482768328934955008507261983109840349966545791770051101848274238300707566864536615343606195243291032970921735999360663406406370839975000980882878928870436569464550266248560270534638426572685705403411645233409097656919641012161442145532086495811272354700770389006207117176541306529564633846392754220945195221186848291279179246033609308971047998775840612404326998875117935766784519293960400547394042309293007759794836241752846364208954639336376759527550077890479302065329365030613095477784023081839261126705323351738068291802150245350551780871930931478567305320896874048514109934328228456091180048216061237947235078271779760372336580603413080493520008200259650884805209921842230613378925281256275210965847164191646336319342259481969192640374958647385563539039497673600822910555812572511618808773628368073485353005713317180505021490565323846906780208030576299230626353054974419089414547533165025365631697974360976401065637116340692369894833745829021553684929723600513902134790739292076539313363026886723006272353566812091481618156512481277996436861338633001330796459965384509467331832608198583711225375901855459607255063164505157394533895466971338406604226470168271472643149344424612209766247116996868373785274407669125998173721007300516623447900518150072191778495742963699094323607285327397119486154830845105115296324259292055839478284593368402884491834828350671664230012063685802251091259335777157147958158254211072903204659529644403801390092647738015733548897721516874350877226383740987667202468936849226563835602611649889615786192346993770180962667510663784070886442329404158890941301207399267970259240420830230083171711909811574599750538010040934227517266738334554236795197845320672262869657670225437863974798156533295803706071076368246766970854992892404969408064098620692009617858682352758153776472744039744465695806517871016755930892995701243177737463363229617272519714193370062801032702211584037352926938267458506141675782928613131028873632861305986000456613208083597518707829780680585923973206289986123954493100707954825944420345134366319243736535813143409388504558081209528853464634218100906888821598761790026126273687766596509926126202544986616887648267834544847952774508277480676010177120403945444460561826613763746554005814973205343057483938845928041456450445752194228363177604130379665975843446069191549518712472446315718546038815961615661914978533201316459251084842337411853085013861619142002598157170545078576937206263765570671495895135630715657577846121446511330563876033678909351164953084618655132239987204487236111928576793677756244713878153627399782744800308669809246501559827208538791724330790063168763500875324169452226681972860522098222904933399042358082304364143265322824951855841715755514893493487873526159358841324260765028508284683768546224331668189570698391637279453542639558236556268419885881924703669914049094725524175182121292445202060628899749830278629196395128945073290008218397385434696163087863852019268212685842208075443212702001326053430906668561452755090745635024425587691872090690140880736407161407713830958705016617136393602426503867866876070437687204866793593181898917381589381388298800426880948999932147483287131243969019309930874337879264575151030621774234540844513915123190371227843195546136963231169477233936137358248751751590684536245833440758866492085470552820640036744281409292085578068263919655527263236489199413204967615261603525576455151648224024889997151510932219795066262494375035618650293381310358247827323862367575574418213570374707588061761096891501641888329308886317436675963768177270485367387482832787128605746205459642077666245368671623736560345403370026699024421404013939720097153432902158259211891093133348269194761756359350884372810521113781228630644350844057151361875324957833902331582184137457669035252443372815494690800666274354134036363932803565144649367253202822591896161957078962303848451526989110679563019475388406369342577045819071244600345317591529540724012605855825710700395600631197350272856489225292808884683872734831807907527740394017786493374289082784766474569839491616423626275130213677437637405046042881010611101394034965366792175270240253849284757336729943981503778936074104699636978089784572294055096631114166369629520658484986853064512802957619809891077662789309966536704634816697735565737646198230212352371884387866340242960155208297502298974182550844983927650827409689876054657854924984479436171501556081254769241186995004830966858014584545017147408067023209741820428604017192218729231765837164817254449153033453366673075558445447493599799984561086681968389463529834545823676058904126496996934451052073593471295204000411074947014043094283605279016233514481242490647219584421248981592559302354720534769795399228146326211284388828713449342085560431662677193647285047555158479397408961519055073655745340052059601555819333788764611352148205113905294410486829904147145474284219590336693191751221438058767882214162656026059483114616611294405662093285254671653174241231641010607417313354196972662537915978301771284691437331065432735092322532602146920718224419108811327902712661700660830422350534492437681321347906735955476882607908904098480084729796646753864951820362763002069524281821609844479723575569332050205155563253944156149547225593366613090788649642393414023530192725684681246981879628301625932413857800790716551280977396791198296787034440623716339810192766107811944321197606766703237329766652164400733606018025662374830770311875737574083116250455130423643722127149861231602464984208230199880279302038541358130601758445812009916560660914594961959587312121439199036166646128235670536091170990278974073758466389479964706025078250600907857488490520684616945991616294815401547344095574393673161887263073213762442747861647453228284601061077500781521629867904147206838359924554451520365190972051139803725320440384863354809640619087874694159946797521545825617998218768576676113337389748722655856898410951653913164814217020337856223369654316406090280561112670080725359085323504454320772555837837046945004267266827456567636703990462690436344810039277096238299042365140416402194352135928569333004617036429840835456995560572899680567748608983663026029038475171216788793464033140473472805725933226613281033754349197023838748586271828457817287570928034190537730031863631258920635026078213776788899267932758157286061603577071529315057697143226597071681227246362743667600072593127699568344618899823202508558624728131496272281438582210723090735069089520280723999812843815613804106851434089567672559046416428790942750653599369003967511586150018698141644377626299292279580982468617185668357463274600461301556515149114523623926344186201777703728045036668372614444115254414051942380100552890917338067707705874936472009253794796550719410351520088754833394262676732278685790080875948153448975884936414336032237025921207268222813950029044430551582254842023700022076127691404776610805705371144987822606684821052088351559520874792448977487342009513853224517304924545658303961535421371785577927636671101713415204259314781840055036290439946653969827655792883945443829812079794756796755611538704723836466120130768350064257685308428926428538407586270983859149535577385610870175581036977753707407248962975375312160790673931492179571924647852188371521867411173055363243221210223109360672836145767192866182697299372066777955435646918729328959876776308083925341335622786145190668424848340672887189968528150858966535675653376004552718701273023766604117587968864673130391381312255715035126397438053496777804746819981681530433629131834434349966678224118546407157326642965241773388475954679440405160543326285054804095329269959229518955155138678776025405551143696356480447837746401901044632019535778523455896094399358369263635993446946131000216099477537877466540329440123279741990098058913962661553201781090478626365768691062137475555534574807150401800428730821916453865660296993763831378408669313659804102684216271981340190929035116114056801685546648743280172700839516130237163267539032406578057293378766500793645695660208847565005315054913699039365771384328474015775220987632064539964805645824007798363239948522231208645867212150146472330984903508886254387615339403329701349778174643495797941639278811366099345018653646543612136059816445483675384718252941085698728505672979682567483411767811277700324268170272200426858327859720208610257611690343914475991867689443763643190354190126539070644793120312777619670234215712057985617845532657381414865575991300337097021143260353288714783716655332228453537679420573928675289251824172437354419213869801300154279434697710106895358016821382360379241226840606867388484502928780834468799004678268487979363605417435321078490526930035096594933483363867282715192509578132600161479121463174095136547581058972783494149739616432913629259853428955287215341288260176211242063311441016746367934812114801089569308060902159655987701759299788322926372975525095315384926178116413970004932839556783529683565813604197280493841240895653047857844991417828695314998494316980681474897092386818638270235723662584529079448363028381860380042681524499136179444162846248130627626200260089256257630457098230718086720685254192950118804860785761218592843524470602524660022601876666201268516835892862894397556143333084896628988626311426773592176902298158253888737417425824995122701810396582475052824228696127576156127953976923383650356659876768721761579901359042461886626741586718855111375783455186027552000001739041504790958823148657272242058469199580331840165879473471857662192575732591634032625222003663938605116431358198970655555172286718381193394532376316769696218350408343140706148999067147455081059936633231450574315307188860837336607695271196229991402524411871105326827055360245768423619645754743490502585017470809172520996531616961577219186182257483602907235266024216606516575520806117920479804160822345318875853569256163914775365737271373544956322008562949811993927565715430394767435364396774240114530102795310997529500345031155049808292992813549737130435975155787790019060959910137476054322670442417797276935062567416164488619072848303786184201365246778775069488220993458224127425970678788724715540017633843163126829244946405368255644096023468719320741210085845504110246965057540991746936691074329222476007325121660585334184286805070347832664478820168920468196299703309549229085021517358133573850551168908637365635482069281800701537380318104247623864916243027741898110888806071907799908378319373100980772490986268092705200930012375528903804360772743611186442509613879871843802195792160950375776110937151705278533441657816154441726411450911617041189438834347028759598229015987663390546332921090585986902619629837075436988726798215942972876063536600520377448272767719525558807353112814881582876287673741779532606569528750710387644225992392822916052350087917449918163399647061146417231085822065067470583440884608862841017269140606060975307400819500191008776363188235607820366932837869945514092621624478903672170583938827274822271811877962843234953613067061912271962132835244694625447619697697204059503211470735515203686265567888067174700745716451540481788146563496534451947663842518366044091769020675417832438515345485766307712983606866612424576254689447516491956708672959994837927966256295409150567323479743705665211826108151823814864329575010710261050066646434209048024489047530723743569754856205162238462798249035298701729077393859336141460898439583519749652258179628230309508935512509170145029567112710170453525825625906595642449026290873289166720710479135498169370877197353983439102966564750215372828534919177148976377827345058187108035175378007587659824083673531087510553706902680588817092910578824331442335665574454112578368231737355611970404824262819530897896135708622781639193578956067400851674221566798619668308767574055850423711516353882085032015556008599794786581080977598176143679045504006087007494580987486903816495169383278132232365757665876862945246274836255913544277376507218660267454912739674038503031032047766348638884393003921993499383815569317157867890645941547043350386107667592770190506356923432289735192026553876109898607093186596382272262008459089287796914346903142505883759434571739192418708410739011155515870510984864323525641614892343399804231290726910269367344697891933314517189847347871542232047733270569844505777917542900446376998262319806326191044120187466050893834712161017769054913275384018639238448808522002035223205826434499095013252801918822475555578158341255933798058743036039476138928899236045993716101504811332466098529033039429279966163690378340264503378010311171465513048405133887074828233191600587420016236947944282515161875057872310089854852947381115134742567944178171336491935995542972198617167028952326885581761414184074672358645617873032220926039541989947030679647177648225308768249602029989816034520268614795035001475914955076019074244444077265240323180275218427855997440620178096252016839275009594685241426311232829218182504649462524617883757964368418426424826584030017786910945819676781115480101008350275843517655979071252123180703283026806746113235382596496001998263956373287750919646155559738456679712298501732342482474698410095708814109817808675341215328074452446200671186988510122393353128607625932031166693314253395679804431043939837902522773077339437986573817672206597011662145613639850636604848859523227807578079486135736591126899219047696380347608793844947397007078056356858098495586061337941345848206962504804729763224163316644851614450988189149097541501346874042863498264618067626696141522173722357072429516295690005371720601826463631968718020243454891111334012946103521316779562192612456641647095861507611036948785434793977609323311751419046173205158431723867968957059183235593462477996223064388406052312293422883045296172715599064535986927955014078283444892366867493316108500475045493210206078595285826435562303643441027048938327396358800010430334227733923123041310112964333788750701763261022832343438651322529126801100985573839025545229876628513517195856041983876942031396577108883017278714431529136819322963745671390927990132816767500326036530084976218098181102759780102454621140434484717795498793706226935453020930226856112586171723090234309547085618600873344446188879024504117404090305574992833506559556079628415037795161652274657296628538872133460737007016694588898902898595271979604662989843346838322741690517684714171382483062813321023556894717541325436119515539391601848833821429832381733337678341410604716803979716326100771988073126581791038597977532432676632214651531738619400133451948794209069363545693881148715508403120442273955187660159827454828010383986747692267218159414401475738998405598561498763062463599902517302372533244090111560989852696455167238342793153934857349898551852931492455966069309047056635731248542269846383136283991379516838641606424955139241413495011686220654820591901022223898576027572933482950288612273610381573128336584390893959862139325428512619842332160042996743968529521786955912369540846242644904613164310193094918400139977383621871553944757886415815771671560555167796893636335643496690852155698356529611117294647770573176579376969575375329123542264977094668478394724051460846893915614530390194229678762850646779475583302137625157837235410844873824676391346155754397890771249191557143212377295325866295884784145155733354100375710933100345388336392706672726950706577493280957153486332117724091122324641627869879768310349112718556630058596506452920749913987457814197679148594289552639462970152411564407177156938545041248774143994098163866165010419083607744702920543793398396652340869153603795889203571021973653879221449307769850123199587240278790339884223826776582994959765810904614265593740609430091647099949991277428158754511661466638960318440554431407098972764414784641370657685861197538895269978816350344986492861816902224915045100463956463255400968240980194050266937379411729151399327158587537894143451963772392908649832096574013693537244246530069441603117881840457184679543767112566710063281016995759071766792769090789854953191576020400288047331112333528074674493789860827286839585962252314805853149363850800701638134998995413132755381666973440669208426587608332329785358650394658477087047568319939757260354559000669172437743171774879702605585892940718359750413307774129619156102675110994540637221998695040077678096361066910218374597793228933383232101356424127536692637203828549428072601084047233678532222703942376807155194638502410336902381019426572480075639293731701623675708964185109690549948098359977677300875569342077885071545753501936225454678646714360154148882479017513460873307002494316320967729583677845662674978889746396783629550067951696841383580393473148483363339038116240380996344956728625143354221681224308336418581067652308367871387724771787340196176693967017139426375100693240294164816731885138017607740848386342469226375242859682678665638158851106426683310209692333688668812027686457811096862547754881561926790424065911236762622829025463133642160953039532259830444451806223729744668872298429843357924447282320564398657756731358173469693328520498950413830659713590432101957073519741725235600507278220896243732375636135421096308938195568226668442198601462409113196375650780942922209093608860261711449177837356270727698678043715558054919909299740448675420391031682424258058668838496589257525184079931865437244727465076706722104608967894635977924311230190869203050101710071669859562389373480967797862969837988720606749866750816176018896749763946126890867388515636776880148400968729746305199329957928862110699199456729073270872491285654813873946565861960397071412852531365542149934565994357085502554323950545113271708895209710372242267520776733571609075087271925627677263724317384283024170974866108047755272281633347415543817018659928932890315378547891451884357573709353056045043218159312463432872174340960684016077271011084207728799445048253526853320784644228149904118126854875553553320870218673664350828352641277856151659149379493916958418025747191898170633266618870319571600509750764594931395199468602724320630722221963765429825603095482973460412172174043963167846429463879370458650158809974540396211261996896286732870459624940180326570836281327471982766724595337054752225795441450100155370665589110279488417373432350642810821219134498008118248073165336322257070095836313994648764524997608069297392732780941671957544111572926374035482593792809240430493693092654840838798545752887877041919794503513122405032862451049536570511607243275021019127066786830820778057980625325248374074513113071124738342287663100875883455810774764433750683931122476155843199048990808565602153858635130630056524050218605500798011867746242715420995443019246946245629238692145726314204184046709499754559734365267345667919904190409923477805489220830593983399415949999852902468316392602580175437184800210687338813760273038822292736569155110508704434107328135608238609510941812246622847606531123018986965959731782169732004548154570348196298988828045831089805104701922894687643694015953383221533974242882963203618775894858929081231223837419963360347082093325564546847024560222451052033353259546004051437875474104248017016743847841237203285441657231102114033555043606267206022976750940471177652684484355222527865575003383163276546763868552521489930932157349361217386366766779552784993900171551018985837083470760671265013630092144321103154872184790018892749096399649846121189652363892124513262555620208676878669131711618621960080336950752199205409346607053174002186578879849648687100942067322855999606666667769874476555952242932231655198101400849445731070250507070659852363669523104125366326236328034165630707763686552545952579325371509112620182847091158838361716755214316730615021504213459950229776222565385809543964375270230382566964027122157139961894400141081437618767261271351510362454344097963412802265550393232001748284985261942905263829079294070840927147168912408533879852067532954871436508100993620317705703847680585961786698713703460609985420087381608446592989277367721585449512099176722774666091916698358654820713485031025984743588267507440356425538990470756912910597173199616660029125496900870784983692792785808013770993304485941259212441176176550062880205155135429135663465719031193565753835044675667531384993384538999565326268611629307804606408010715419830320368894551726312165044305824122532767548759617452171687652278525102583168043793654072356687807924068207084997474819359795756454709572437007098303511971421479906146469614024158214240820273977170162756870780515841122447765923312502673466067960982203893147030002139777949566901916752630523077733377407349263552658201231513196434211568407751454598869791297189831009934656975153700969462562552380462806869585754054398104564855970626699723743724406590496426173111933938319337328062505523487277307291517722307750935029776883712648301650440490162796484988609471346610997378974506005737631221301929207917385769764407078313620514446541105515910757991829525787547987043678222994166781584799974286485688017234049073784179248352464632484487865558962442116587076145438968263122098395145685533303004315632646569386111644456777379646200887266400009471811252546960634735588092215671387677808085456200672521286815693801678398909583787576366656177239286807731782479040862316946377960238990505378606427205714395807407929427819061473882486911933742792140316689091712330194065523362226341736576624157541947495561001170644682634076549717913258166134602048934549707759473018193676138669748439293605104805712896026785242820130456616484638915603896386135058412448494146052762378023024165392251781398470958656143999161261540771664312862729183488263939207578333619146236819868205441676414733953033278066331146370659356153156545084320405693682457921262439805628155299421841517341512142789147173478827519244561426787826914877208889871617998539507999462839488563805006569926632812666827670759264185536931960152028806318459529329124850142281904361277002660683435502804057877422953441556781029746108044940568842519037340692588899530007127701751138730940839284282063053761820391254388286861473508491925773382915977195498217103580137862024425205607913857753831316192908227735247633696971302081319441916773327346453380992041260552961167247166862708076436769540755605482287631417486001124355634078992124071277055709632741373832821697462276746503175174605094885299789918772145699640869093103442567758230303005145863769388552740453556483695726129480670507900719631336525776593634136462872211604351681859401612245926340553306774444978734767569624978053445975891441356578547564837865910507009040913462297295512074134277196507121645740737296517703796639139143948668330732710405895064920902129549175980000343465644842524149941069224424827998806568210880944360788954393194486792437555102489281584908992112902272573323405947683055035723053337779374813656507801730095698259390532621684118132206539960504371915024605463861474334683848592351507873095380758424381929145341102076503606949543580436468484986758336458033493241511743919163752115409260995905632795735644981829787029630237642068668399426183115460548237919008544525662038386704199319413909915748054554113415773809884793860290832449798092559311253582581295570909325630099846012745491214235483164053470937280962679108630987739846686877813767000410280053133446993296847683805539897547781588002330753919277751519615333073764092432353046921531268039915365360594806832726916429251670442049526691534894831331561243507290790468316924081309001183466234873997956031476907774911797519726791566498309093451970492030543413266231351296937988850131170968503712934902200321315038450574529659856751991452867541086492670706960259889247270025027010554994211520206503873165913670039611543013298948920686216241103817867588103609393001612926528651888100681655171884966471549663493394616852627010733304955801835501468197429587076212713118555486837674871298189035976646035850254643522906404254678488140446022595998194991929020513390684513969190367446629505064643934209115294121085968502371921799149573228992627061810651629158625894681893626895760675401527371499487792299232727940863085097584317858978014876477711567223770114794441187152084732384844120986163421773524876241241797711706717369580029554205243543776551163554937480995552009499190499741098267628935759059236028325664082717694429437381505462661183074033226441238365731603200866369228095128612384651536828950756038878447670357436491827544900398174349617100889361617645542556909911744796665673900278430028680070032013268235254548913714724025285992802895881994594012047145008419912561172762862690023336758163999192954303336315878925301714123631608116923197280383451293593496871720489194061233719120589521081374072632990670446060587217110651922466135452960672517298580980675042924712851739755011081076697789828761215042034730119961734821227313770574227369308318365801565455157263076434478995420993858256794747428368680220489895799430137022127434204877054928007647825587866742541719814883479211289238906051735190604817494114240161910821375223014905750368944687549738635548469377592679418716649078726331943914078985922249657851062334983585067306763560466641805511861086178078959293726784733097803965504276473555575167179066295184659444191310865800412287647688307296489500271280101694836290630309276502194844305302415079195281664815376065204474088198013137760282126296476718171200250057908910295303367998296723605867153442217813109921483130097469432055225308817803071032630490302480206621499444536720185715273405580471137483094093894666408191557823605462499738933972619903738140329992539298916594053086809947007520549100176631866340395611096860321168756539177155911170908221030954851391243139837987920699436381009344000539571011864043730861241194396962667330877687567486263339610340003880476793580699639361019749268394344683319435707383093238660049115274074184391231541169710561252062642174741953801981269729211281045745834022779757648867120693109378229550755269752540752274928555099841860766783915775532185578915402264833510958068668606300393627463504684321923713728955408005264150944451437395965930617153828349885818958088000256728505195602857482196675158977219525716691899290815941212329286946763583010542624006562685666953977998974068287565189645368483063814639356957336733323337117326722164526969778401191673564483770824453339910873769877661210825920934871350843011886262417753304236498433932623575225245683863808582575974682607990465555970507693685857348257843685978296879750652429427971022301554124619880203616534321438125316090976943357940230086511890870596204510034632238275150896355344208412933230115681958956450828697361490446493232537235150005361654860433607259469532853896306334902709254239437702448037102294133132530030655226178109796998605235206174721694451284660485835785992992128909702648529094093438334235114407824325396360300100698978025414985647694058331849259982755174568543151214476140119253664506774590185643410088276951718505775426181081752838001152439980738624341611528544794767221451860204217484992456502299792743043263223367509740824032512181042156189204990490189943473491859316758036202153925968997687919547512703761048974614021366927263859828537652738605996034165125367868824313130765420351706945996676239181343725829888646844077778343295116662535602790052183015895391344173741296056885422772456741454024364835075335275282537454427279451531613785365623201739724109074007605767099031396151714607777004199875105785592601421195355986952226596021037923151842907061404195436921977360649761289634060466542267525579019499406815052495377234652308061540399527353682868341923444304201132288690596327212616859725347940081150355872979534001754597515706345814201346919020351847347083120031568735987995089340042933656107934816796796636627097618426853677853116153556150911759111585322895542033721709306077125943204529624656181669908605749347894750552137105334285569628981262652391651898548483079821514749780211513916166281665470735052112870427253687592497170988075972249775313841188280526805874139451918566568267044809837300649229177618879261536776895386001558673399905964715042574718472764367424713737764927941770030492772421536384152582097763899827082294573441226228205390388505212257083450767406261535164358812372491767392942539943307218972536804973226494457145705199241604725222642299264935430113406839123804701670668850660816995986679914512812208130531849469126996837774978556244010431514285770600304191058437222296261511403679192614675152868526116578146764632756586096988360491395389354703318099648654492068352476405039410477791012480736961013802367579027062436191266781704201891000718021541622190092877351107821520205013288447490024354609279920109850620318384372733038580461444232235254017873063751003194743587015052099839986341527771180987012259284045340226469957290645604376380909464987801538399355066045798771353398730938746309634355628379060845537631488313413453992938353371692375069098271423193375425620570678286953856565382721838361971243061075722573275627493164027173846274308231686119117583507731455839174551095774142175789189179900259940093119263905861634749973925798119031087164672673465491876453770364156867073815968119015107678654200856498214802536460340039235491256140406949637840704234508927896512056951053999148648864918781960189996727690467035406308443206482326958759950902449180963396371569712942766522616942262372490414699238958971521332589466869114982209058924968114295418873666555458492280695116499051089278631393064378894979189960703255241142295910814398595659445634869359590170083499356967582926210187656417462300006471611602964296758495951766677250634298585329466577294978404069292429672921746389005628329456261633064636972921655703218970515821856484189440776772285084874630623314013552308347854446085803917356221242176618559916123963833168962537853942287073838867630160016521781397777902778693100746558425745571578885695038378681151259312105040849403044540029677692555274302622999458113910646170799757812231610348461379715923174939909585713977243971973887940632601384875712845256105168974855115540825730726276670694540904133646078783228109563820797465969269084894966436198445686212311196271927045585427234949147618063337084511848397841517918101809076989502565842157371371783061047743785131042300807229222878536345570172809931870842488129195611830684804202623575948369917799707144520969025323446047194360568017901206267047867750254368019617045174477165151726081107519338429720264239354141819308558220079884781508047713249766997619074641837459970174062720228007835824698654966588742028089443103185390120464700972918630137841100187580802583941903681185085239999114963430061518256792110588321418204737280000990148034363104983866715039027548756080737321257381161681877443949929828641005256686878129319132561636699069009979446809323157695110137398211798092800721878898742356757609016176852442284028468930246830785349834674013710549775431791030552005761150657438786303784197903737046544334306926499629055679096056519389449825295332605691732316627070176667230502415555467691518415004237454469714403140905422226336732299047504739890187410247143541534343013718034002431466311550581694429346288490434833083228201786341924616783938331504961093246716065151888156478315334741844807721552999717252953364455959673896427583225800513852448756301212052731684912169791807412539966423410453501265264721756769577129423493609967183892486200492977719751334792184799075285482675134595346529184178748718294910265919782305872123309093591852530346951299991910813514381881724918598522981567544756865308849015374944957560763704975214120359962595036302968613639298759908871755437942239113437733049150095827983557805040010818613910586980603380838598780883579540623998228676482549491339293043977758600123889643166297729398457154538913040483842178334633024748852440222237445610697495319200436893123659748800880301779707396256306079366415923029687769879721115655063169112034956209788900154125809333671754882148065857510505132988980244284087075930707920577020942346026638094101896323334024123383160687191871984198669386180376508392032927939876719905554463317640737754127149396134327409134096142264865509504265045427090274596889821582573202305067199820755222199423809115292781806263610972436925477126136604052332212044662955476221852802148377938343275736835043828198884672155369152331749982807661947349399675223119307463170485348650328704900586513149828427776504643907537079363032232484098411650414555720866066731544099362215665203416431962854937731353056470628056534735670908330559614445358762146714823939409833877084785283494924327342629273141712013711377820852111025815228943544556715594240583529063880535328944214380567761823097900790116041897504381661049434306213639360294822491407436773094326240922284825103835792318975150185961921330674237673507936421321847500332739050084483304629769552008586601210356559558358187166937797880444349434110070709699383888992094631810424872599132071148359666227760763116057170352825479114007329122349627247039542598010283070979018683503225277478258835159945683796615060062634078604714737025805762639013227757951574377527344195891799382423279191213551473479849882468942669365858305265368732366497891725836937414231420581900290046090766906852426956268851915320070356106116046312967496162508973120719676647672037513116854914993690660551322563626830219411016992127454517664825035330981637705047121589556293853013215258944880520004687615032063267115777318434591537868484060565740784294176166558785683014310164507246730251086407665052122976486757532875399879492389550301006929515638895778523041958648922606215224057181608969194722823057054675703340567759661475385348812435557841686497266780049062781889203542078920865836622040546324376308140643348689668269830781413359756844967828256511406895715717939787298454403464348284450654613254314220063796252814950364374796753920281312837400221866212025885274355797957703673544475223214124548259200598623451596093243614232334869999156762043244874893013885988155118243448926185488472670158901918049796553083285938874030735402606406049049940304478772181827978280277800018180379461009915167572645991880113944719731486406450142129920248317850222829946637068973026072883690509390401080516875669155154366711972963327175066395165265863469664472527768306650966020033725248962007533987955491259813864493410932781297551758135662919615089861045405413411727354133324406661493198641737786518556366402562583103933015487520735818376223158850303481318798636713927434147250248667498597851837296700883549475906817223563207048750144835956613453168818976893790432048391641846950246327985890767663491715771162704439803364439035498073225502210425311670402611404304329022797141386991459997617005268730504057363769267434281823005825942288015825943478056222668044857886538681940533222009418181417040111447457187975405502730551171152819633683981700020204675760716691558390924001278351876695995546421949267399556564566471809819724748760418410303504352212308808658530604322289060923463889611930544947017013483519088842813365481089231907716824050609663235605227226644376151976833508808074615402628317609256776869579704443670366848190109978841014838232710322365630942120352527560295658902449103472401021733592391277221987909405009001896009427849776514510203035875307212930990559776819007533535063914114631948384699944183527871393852146674568355889044901628113613484621549529624325483214150163177133547292766801734570396177324491556633493295081205434657791559791741563520211761473270838432798897663290388236321939939713440269602710329554527288729413974942679828236234152944421383444554916761425859698151635427291747045940972706760217688867066389978971916097817617088786405976745761094634512310531843645591850689330759718916436781764964659969472429014498552916662476935858497894047261787713184652131287650994333163771794245479705766872520089859107233062523645585195877009206259678635319428883982068183879094391262658414249461085878419648834804023404972334708159424905670076751204734198400064029480411776322233599753408983399977885467196914498312311105903050373732646772399711147131258515138734713345129712765732439862572562396675552448844191564788712944699027724188875077601418074477748316956217682417959275569215355945349078430294178935133641875539418813751113663645296063009894775485929405807879642891878561727823047171592682908553972458910535687975358261872263964702407040291641240103226901553248931716044946554462745559950779126553120486339379302296069654035788715176567851850584585016787842814512799007851238972015592688230412635996923093262911425446682850713365278151170318483875810377844330337714343947849942270998985662454507518392881374668800850766612782951107161074628694873403393125052751076519359135537158409732321910900956245671294641942134713972561908485676880019923061482228057580750002825907159340961992430253149046623589674298234820688004728002368669545278347002012846342591727595055449247477701720431501198810962010128652771915120918056948486041801504148961632043965324484659439686675799506923809389048761315625659545167240986314207597527448297435704110928647839576495019691931401611522750772799279471032090479234527745367755754721764423577512335244186212811996531344925917607188729019622567413457621582288704026876786020883291780983029657556239743835687382956852940703751723312411485239088660358433179785429267978537727545849513429177504028788966163432795280056459118750253050096235978160936723610483240195940392590504156614408146451926628682359523864810376074451673411833894631101524985123979532660642618327555448949348043719866646195353736300093189911017972143587667855957387670540912293535566428171782408472585565844352447290393330559957625253414039101588065259309076428316242177729389227058903029190395281296898515428886287737323403772638991991695406630904599805734187850795012014401498065058736833296963492300639354738366168862495474525306902107863244098690288775306047107807945528962786471099484563753315032467331573652625484318481793411641303022690429528310092252558113630010740832799082185968245064997224854304989246212973666501007036675556630256971233661490729722762168501126656355127606692772724276801834943855311533340828379267240484990695538591033129491827315473032759363754058710487437343735236907358317156507285317917300244670560140914334412053784772797587132915514276132294817312212916712788794891687485050517462726825056193593968575574027170863090753119652287699020951178724512194241902440119628118459054293338083069226953113766948945397402015100648223993886448212861639935735192458292602665959869145691363477970322916303737731525454701812590578144030653043152977791380398628557361503280615507999734314314394354885936447744607276323983414285617929231772322701732296900498037446157145475416265534978385434980930823369619140176488423244003955579589707276004614302171407692001243872015320916120376627767169444421329218246505359080291764528618629851428903691730958689322542300620793994989854932786413308548894206858098772353242858261116066307587640491893999815318336496395350872424549507206191393157826246135285328342973298090342141907495890924515174266009342796355853118089412813569418866884512413607794269997534377662949565882927131284820981030391719369355107472846885932224339227156630100524214683665007381370304171086435144122641845152446469877634572933102835860294412738585127421153306781521293097319723586453052537057424615620866838373941843873965597189992429778425361252636789028478982558005323348801747350323702884564236889002430927519679278688947909499401767477654381915990975731715963986008786681543633286694041177586284813922591840750846391247361783103959785965688067793450157474849289387403931597566792658721236528851962142718048504626934801465370288174355517485089200436027443105419638754076247370274820438569135824234916493538958821771687529635107957817645183492464723596698290810100016884431784538611036452249178047319438256587647727347839992702693403754526962748343051709007917387529836743052279173004665480587715284739387641296771141939056170497706266233859776858236597936714012684496479320207183810852434963299401370561948752359747876577408230076497895188475610958462906212066936979688681491071836049045243513730907283546002746910023377313686268128509423407814845515523660026582206591076631338366954595460350507522117080871781261497718806570606234647752780140808222440606483914745875109560615708637053570940482569715235243440005215721456924202419860212195504802522826415681094268205127224598727856839238106846050230460048609691969487969899065054801278342370186121677218446505774897751606779704551936671789038906394948891969242427821620224857322865655093671318508771805275033534034337887398390245554104372704553329778487026270905306254565199036212576165001402287024050853648333949685635277712197253685720999157125581597427464046284308826471939469899216569914846521163600763579439208528187017471600318272671780374291477393135491870825562945572216202735175816372668916505789311430383856717762428413977602880335497774436596840896277084498779916320270125272178010738065148289616394350543620401994902411629899401627949047719489045271083635675742378558832318171949865882411032023390095442661594060292333056073068234118013895398609854850303463269018815514564373285946158995672828215873354611828778017081075984476246874750472494317910471242488800054988531312159975836336232889875299402634665274803168461358821282579188367520606642328078980866851600788046940668074728374395141643959114113301651889336877290883725722453659094241330860804890575872370278217844215637309909976124800282815797228274639318759977843469485951614963472997995465136785134034529672824694681412217434632383142334201498585392332432454041720855985033299630232749288378957520198812924919737176951983754215457437388839080257297289879280802542917072536230987560047766207962252494042780627220560382186315855146456983840805005859937471130435575634346866300472900827117922190451080436085872702689074755192385264339373153348471154113710008398412857525933484672334864911486491017691667986460421281037709536062829701999123280973935581421733965814547813263218262604763610292217203794978616043408597306430408327512497509407458286372610074444992274045931476230303136814882615329035257220152090433313555093360071465026153645280430627392803574171155178223517431104306948364686164387513829395255770310210847425458817614820077507841711759199243060936030906286430856383581036427586903353283929697636370329178099497087000563641417134688096620686003048237879056333129276504337152895127585269817883434066560718527935715949845645014717013395442242107774355596214218539654252699595799606923282188209583402405404069030189247112842947186982964823953660502300399221279553516614767301793797924202543277812697521611696251310568252922513242133909844359771469206655103471200820992857728503419393211947209391535293676988238449657670006946738180835364738346251103168115539078292996900623157652582185171663965358957301586627228960954142611713855754082845433320313357550126256452560660111130174038660138329095985308432629158787672799339674896594595411440949758895860236112504143173533779297983006397349538971899066993319954509044605874593527702510297508179542550309089916366318575449741623014992212163578807169706299760194148294539200103010160348637374592749322339587062104713018020654977856061377925869215770281255098314208664998223953978269821349431206835199177431692218651961058548263185917519862704435303729189584346015532102553699754154317775029288386455518895977632888493648684300511596011565513223619141161045490668688255058224138945127717268505876173088005162803761891067166603981207216618404038991254659782451536945491738770817024297545993324343017938752222163124003406785972029559144479737911282369762325545630473212658578437807412605918905153494927154037821737228528297533033106705739020333860360703377927147562765256323890414923972896956251994449732106990536873610976918863748879716048140858718406235126604636542856344129208355222174696248050481218162022694960531142808935983860537415506481249790028388490652968896232306478228756264336011732980594826835998780913652044726830645533376244471620516223842075686784492975543952553486222370698548105057802855296301742436784253447201919662322886019065422388797601113283112643282866165271098617108396961075627437767485596425342076911532574437436845687125574616618150111323141228379020908084518815802582991903189380068684733656646835568828174556876213119313136810727018265283535908148737389622595771867936859527303319855333325110894071134124879588874438959266397253255537636106563613841965314530252715982689744086929681635970959139741325276684286703902812461429349082348032727327896495351733744910284690208554740405939927271035181297955718747676568082169094261001534235414603727915099275480878952822073325847264761172277647867327635309451457889901178785295930459921275088286649711021894737787253751287970233953234612475834280805266487098275385909670644212673093819959142759639180674370671885745425542802580023557240075423070959419833826601408499044436616326086365994217589023600221367284498821109695663550075897718994300497521247678087694022326363791297210779796690016750072753519289577716990248737073851797455072590927636307406441086759707940491372302093454515026697429086543051439974396534086603191595540910324501751922576492502871910786109026169655167466709733579318311388898987855383333772436854189944113432049347629087735115809907251768079867102955127424985730997194229057739915190080950627089941843301515011300672878658099107334855757831863992336253128761303389292002672354693669697303155119910566879396066279135931385571478264461209051744230665345272253203127001633587140339807156212602257964034948256712720317378771982020209563998960083419568601801438486767240851583826687204167502524691099272830942580370878190158542971682458523533943037767708421650581899567090636719898039967779319854437222541974895097548329941241869102888474453896737173682213199934249378219436997813160728395898927135023246577713802051529570559363202876968525360445342094791956061878851131652571383547091794536726707439687261008172488733293918682212660802583215068528513131387168188679708740690531822218089777492065603304848371095974638195537377845524497166124976346638611984825372441746960682378058283755552142114071129122388202185481547275884339493383828141569746375606295574093913036006023649956274109062299061432349271951442179948443188376259694659634219848027201032864698611757171393874269179957464862297387519227017812461998141701412221187330432451296151378238421998505906544066048027499234355444998430694208524270984168193186008946717947601153936192760395368525226694424571960907017769419017603635503786687299167826635551540709619164033626879388983447346385489182279477628084646025614639354537138707610794061983134222346812883523286747162307568423172940442683480181530388539288234940284650467092260132393375133040717948424099436061771854748729994150622614311187692239697915368095326138248237529010335778804990897334073073691496596130093439971873525107116598138244870392447339883616888524145015039298705844053039599158225023877832798593981301153195245940681376350487780423577163124406938092249148182458116180457212718587570560163057380524699344746707882416435881614374386319383947433752874316964341454296109072117774883201661760011007648341510878497465865672448865885829605328631616246425913668142719616446397939416406515882740579843907411558167059049458170443683156284799265305543611326024283706410621530652307685439513156404082886791874065830127600387933479233453847354006476338808475605780025509215525413021497739650420877982363036774021161066479063863032944562134564347125971013479238714396937114500375910089805520372302557792298487424184721042774724050305225249394530701456955998435738237807481927975103704732357950064485183681804240309970029748501523398850806321043189862411926226147692929636728275147326834565728899524085859917557485433496856684371257745875813450641765817352738602241231543638036070759571643242297537336380961576760842606662059300538012287151882874600094895621708234396363119408258906293724657569246647526998383058714964216838827133907759230813575779383497297221153442373255774969007502034414120922480670759017050610269418588960256829600271797709636353351695752438475734774973179824054345058819795662097179322535949265438741605914043810706552671746936655100735140247965437563250391546291913847907857281209835962786234080840064054142513617138571514808336412259210583871283029067954551318644023061922848705479960609621710100454532503696211540198777949653291511679033315383992189219536396280047514081090034762726216168872452891074217754609388898449096144158596854081246834702225380895119691178621948322930265812671673944415838628184665071111704671485448937461773522746760958094422310631425485264703577331233070537642422758582285700277464459415151255618846491299541499622292854141355888019365866960996757112805609108617939731981802515606323966306743333242799615115593244424673988854935631138049764122723487358888282083442063037427149757152646010034907515389346438966213910262453297035662811593829931704608480259684591824627191127353618267151296610796744842327060532893790859224381570550641110269588921967228005120039521732428096176764004250363314486337267301035595826304978741896192204542582053950087464552814599190179259127181500877809222300159177363815165671314839554811258387895481446045185461739391373903983494931056687296868927239338922842879582015601301681718297419158177312429299362886395116977691868213139879584387133035769520687940548380685276655386030099673148869773155477706859446975954480457001996113052829703665074220218903076377938405358704110283822782414257082682032053753523718993576964755958520639909984094457476460719246689873642168680078782633080933424223025769704642441786368717569317493188558584927213860172565343078248757866125658660765392919826471069155232605282111369735916311920499198322210142196031947205098889154499554060578553056893949336714361606078399214806884941059642889463021519246463869288671929483070864185360607752544777117214436937097829577545116927520262324297929714639953378815500570486575965134433684035485536714907723909730066387407738845945823749614010520248963238390748061770922901436446068539275584691865167740686248919013793618681211921867414401074373244880424612448829657598622633467679475871902679783825319891179712818246392975801430248839220444276309183818170872267407089801784753140403008576469352376218247611959399279052783446318880502586018336001522058259293126243903014839164419641216645754010167439030390938137702742708073543336065845661048896667858608125062660497290616789326451754064720198602809362523991550179627051368248566937916584121367125608587194888382674472283073071960238463152753842131618213848626403671731066525702552868941343327252921627046285547119043261217776684423740350211269777586369450185791111507648850867355109560726665580499765819461242536490667127779262686875631359931457794946451201726066527408586789169896513714767903111220673740279485401310949098547657172132687201450648194892812025325283665758087738551695945234710848874289516068017200033919742023452997411482984137881647002024312346520325185279451281146753496932955293827623652772231184706688114383124359457363875275953132343394148700677158450410490105389089807626749212121670967614905344870225102233024405979965856901276451928009831653112050314126428826752411995381137621212258260841549438623431996125101423896840755341616040163787364558169373897176335947782562993593423271591484435495308475281976318004230270420987013693958739708149666539337411288242494607720862315173235315167298104270245134993072667065143204431297548997372690766933231366906210234334724863036181044389968454137180497086794702998123297370942795839847577340918627552054518676722098035511109165856718958062441702626809801230093013206920754646358843098855266794347963273080856118059589284869415695085743396359719860416553912259877524000219918858420669284164905033493770925156742967188992732719020103656339292229046983389377160364481390264435397685546042874348899129268865992195367639553541317649056317017970078547209102278780226487249053200625191203343713581437714570668459322856187848559546168158093741908087832211932941874741980465829740049907971485107712916415501182682767733371276196929912571434656587302253077555181354349382286280374775615273577811996500636950834142686292481415700403081069994015610427790586801112051806797701788794236738240935114178385336333209856091644970870283826513271306883829150416342359229961799627371030224943317204055737179419041653143278181670051803557580651085981832888546943502264519054156732607678426584888188395108173000510480643310194546149906945603130834270689813680403059519533048878860756225451596959202485560327440937002913750904172034788031313326431687515896263376121777258617860177333310524007181488264576127236433197171107570291182285272193861964105147842795146375020590533676122289448878818812595789827492346784978868028846414914471745874277607060403708654469061539590719800570610314029904228043333584709979765389799122846336496597378872116625235068808061870199507568584932885094768040923004407749370587640790801735993347524095267610577865104856682114377471530118280683769046078313803352143685702086282558122429030559453666469577271476154183806830883425874840630216739037447662590444392779343840537103982239627755928496385429810817379359033016856160735843471283753215739156974639965649573850948914397687518586920818615968693397346415747205594710680330490533530628508945336261031570058656150231299848702004374659949392752950233366632164420963200807887496886680127215241406700434916793624138552805235037802176024451235503307634000597770963837408822749355570461198878091227195336527514710137889765398353134823873968241329595439331709796228823605226340351621820041005074841937006855828619843287473729613465689695774478179263532967473805405019488982792123828390376200178862614400496417646589257403427705672187585673969357080728780775271702404136298036748108356152060192117434320341850811751056127818522492728515642137694061769856740953779412626655360347028447026733987240336959245398602254645302192759054690624785224807039961606593767320912084979926703584544398200255746275090607959948478313418808499587377877716233502648026777132260127544499352123797242129820239832562082439530742912982354393681568606511685296538394584224753665541860840439401322965706950293045880731718847283129213942713213110496909360470893136298017723062105136742597551732289860257561177968649485773943346637768668569236760257794433779496267168862352245072500384082376292380961308468153993202264161742330860730606684655271343924044003087078682878735121193223776076085021890579165066018394428647687965047367986914795010271677978512602167785992729075869056885783168736496766063860558221857117792323041359373180625996764632770434501697589256634111537193380826067035395803132414673091757695294194115115121302056511567028870631297503562681008048380109098204254901794107881608007434397217592308604987176821103642611137034764884096802110785041893785823896912514842083937939027167576970031896778953058023578669498466524596151295148084113283699838054665633060534353757065137717858985794806060577384966343840863153332768251575060992718256442192823372437857131415554234819626307996645266096175552050410770172367652132894754726322488911562246765759642234290956983168422926091579882065033193280578956229805573464760282819768309100153392093663364895048557979176797382510356108612843212905620069434209908357109586665337328094155545232662362276082646116051743683747946553175384686645723306149604714351940848428976077796500983797238812508029111082604068155575886432138226381664616870122477142642136847256220421431272001653694808938795120831461280444826161965134452728281216359801384035886281924610087351759113117448711937383938818017386829418211703944001956160743025989358355638236952930154607871881066594176821795189057542158935831015199035199114013315046882784283217818164824890612075589498509668116443817242065752337275898898801200778724995743622261137346010092867930843390539975048817113301416008479417799923901976701650248678179371567825063321738401517372507035200851827121203238063344369324548671533226114858528102158732830589626911980557534459079438095565716300869318875407582270904217571277382591230101137191735493297209709850899939699446989891855083854087246821583298413572169243601853181823803438485234887780113290831665958879267018060090596012866683239950532725184150464217903902794466263396370721253095940992274714216663657649096531587518426666060877807230915114860946117233947947768316445718024922398745400979488589212195948183812586329999429925379074367677903520075389095038843088351757595167315303678002675833663813252977028925179304102842606954922476433004706718856830242239287332159224059842065200179610080033961017657580338226324006818476694932972140154860957101337114698957185320397470518124970504710788099066742843336621944991969457388246425499510123005741966904838980897189209903024084773821492646256963881241691269261235487785045455759381464305941106591403594146945597139899929734685482030761891577914849317755000375511971111604374616856543345565659457463294508985437368989259571715816008040086406642049413808531184013821893542581920323487353410554048766819833434740475270827852872532092861211944873526451854366911479558963020911419192385870030327621987128170291512205322098133231702706292803339217460271931774183538306356839328281522705296144976070328584324159939936738676258667637916249547128792055254676964150201053534380345839076745363655287713681596252214452713647551529195622043821106847153933011899008333072563659093295977450151639074605650753167320408962010646691635234029958680927456674116960453961244516484011429728562576772284892529036716807169839386196254777183372115716759287413551081682694773178783063242039432322989411922850962453624603606168312277856977322269181095996994994178726378842115422274505238359747337410971437758196097465234069757001317793500937396297596669555934830977076481653884125247251922051050124526092996880452069637439564152599086020588131984154725172609334392127684838710579279673686613207642479327615033128226558630821185402128274683694720548008552527304413846348392432023685901582022539549629925817055351310404992831386019982457873418490628948689458917758677776668893137511012331981738940942178360256692746901924204775023941460798947476788054757968071380127470808194773762110724357445517904039493805820766674195502998340477409884970008614274745613647776508035432448525085046120445171581563728088434953776062757534543253042491328193950421259159272321028107918056325168069380258969151003675167647565379886791387360851556167404909952899730530817521559415519074981214403899941074458272588596920436979708548673140029232721266293829464000097179089475091817901451514317710602400367004039893166914731363629829919059554178051866645563618619571969537239542727352042028122034948618235631276460493151474096177786697249570298287122579100937006107551664079298891134106009787174319918987850690902307030100831155773224388008909667587894230618216563706802155044577228173022430766534733743849800246968360859763493975296724932972057508393003990093210716652264923755842812259914154026308777569478643958311400375313035956174647443001151040602119024452667958223106880975002616905861968965036296147066683073786771106721320561824776102606098694997307638870043549573214079943944156162498922800384107133474933992783042542788007620338116373780526370952685913483626186433669374512861789026642813365723942200961709352142264301077255649246749455636485569565917759769389564329263991112520004341349574841168168104889220809229706037331095673230614516119139960858160684351933487569715587511032194019555896504223748529614668601682081977577446355213603856122644969619180438379333276562028759374672879299065291799864848041530902258490303753325668859072598376586652910757532539073638006285589418132999569339553957989168767304257340122510785397967005719110224314781879149279823514323257265932577398161492345297981410617618823951708610573361025010856632162369511201015857253072076382471857540288047639239085028643722307378962002039140405672566167982309497850891061125614253590081449399493541988694396179543405169577076531616375361010428872546615975401543779334679348189656748575515696587814888589078192099840321933804541495224320027818446930965177394897767581295401540708024954073136616870504098542633405412101663328303471350707524000390781912339825103365383129601435259266879309357779129779126527775669966618103550356649866508396979481674844190175483256182372219601843354930198998363961024678295674710981393539264118383059045838511071066738881413935110005855969392596542936755125744505343445288578450693753631158041760438337251561840539252641052769031808762664306945665154275468745411555510805855788838173404943219243123589475229195418887705292646160001341428467731335079542583835912284734937545996764263689210886623442356175007187979737299571588230242120956732683208769133962754898612392329285745642188939488583966667620766761192424902504715970126717216106453389119004756726917223231932621976173807616982625315705330972972503815234341503447903256973407583841483334492290835388765607344958666428024064099278671957862981467700159375068115284295293368384526330021493169353982366096249418869326446625614735623529823963250486312664253837465526782817506803383987293328076172520782013699767915969842615813819294353382502790272215141583233123570007718640355846883647936504038621489871164465304172465071088897103642762638316212961315838853516058204992714443307316991141500019048826805952924111359574689395411476135482985512287660036816867671956596824944406780379970237163787873043533634475017509344672409493133945524855254940334821535469761267563560367154905346283284302301596501967463994515393289801441902044932854489982990584608704427822728362395755206678083141737300987495234111469103629622859221469952357957491058526680884253615112837128715635665760672057231338851280968193151749111781994321351854377769391175608635054729814016529932527029143141182498711488986932222530845833810694753396665681974020765480529680032906178818217934713374780970896054198590970874886134084170269943526484427869559801950976983827619937793380905208198641957116547066935476317403672019887268698279578652466017665887996768671465081374687040061493465815876969162136307026655348908553545222741672649055171625412556059770680847172229990478486452219149036436836086780745382562371284164881638070646580208770750812994295899682569725472381777342220566959022272038811076734599819088524890456176617575861415343338821337790184218069248104179206670681617838832796392850014628950214385560757042385589558979603261021026964608830784760252972465272287622387226298959594188595288147905007890628038144271931315295973980079888014568406246284205273519971729277435186989461328003592785498795548965520053742704070113702528601490880636349037191373861187239093124176889332744494369987116290214082154173174889535129764154020611640698226654728909934262702053333509805996516730665274039138736959228358676891189806205492701014721815143296056094045767930777507666255284229104757515778749122023694214220067681230238647036003367350348202841541536780443901881147007188400518728213763309754709806152462196969657269272480191380467491767208663944558947276124375154435307678323153468898442943875115866179238477221578263957200733929162222490980809274751500622076949742899272322796615908846945563814857856977467412373104432394493068116801202160239968651271800325810099963585531138986230916859554946944711700898123746806108273487289665272782612970867901276949232059065294116678832381333066033079063921546695216271717833908231378280501664141484235443177847385809136242643942217430892151908941395375666595980403126332092186847060105437586644999546581401903717944362243571616068818434255008924586244653948195283979269535666207928446090667055138873015824773851152761591800505671968826678154034910022823913217781132733411070025514206471715407359185338386226184422521824113921521112845933085653876268987156982137305586198582860140549969637747561691822474820364643257355991877134020767886151190327542899387671673378486092941774574414169034089442107610821007398084547020141297198706221513688450740221885938212933218559940264128393767987894028730782118744140574118664783443095350286672339231330219817494509406813809854113971498134519050741108012380223767920122069116093241064015782969513369525159028425442718852596984216094834088036671543883538082137253314871597702822605650853119746150076523177712847064676848810572491943829759377359764357928134604321513921730676493792380980569559463685182062515474215241460409531470462620546916520190534396996652419412594526634375878758016799417971405612099113222235316371129064376561179177096767253789374283506557645402124366788461368876095209611508982373501684565111772671678959276742797697313805911275761117469947301974415325085161248109433036343818070246758062061574159281052923315402166471605458862811638010008072331332338236116317623094641335389188261442703309422082968009126949315691034578058133863918079708389208706892007228697024263552510023543597261497251066534533343729262014698530089150405383354650786889265774011569232362115447937524962658025916169988709690828121197331014546407813417996716196621393279128645901723191447233497639910719650684397107012257021101520314605139715868908559454858464549801540845094649148126735467882825994990087143432067591855145322476125038612301941331168007139111821426071643820279443503467225041010321058548211417647172656535366026378258523471790267767085646016297241769481691359577552262176834210724137033157806855020931606742836548051773455886581251693250744114207000866391760998341489832743232522083734947661859739384716727447528773209028264084095388601660570237607596132560933828973968896345686772723495234241160630212308071401807855721864292047737596920168822934834414047897340182935588767559193215615258509651072037104323064188180294638140083082458298918748976370796083019259709084605183111963372669701068886195638866123271236159116724469309008873434909092036096491186872126814536552837673213265975430142185280152978842218287126716250928329273159713826006095742168638102009568846352437092109712443639501893635946489502623477279718605168753097544114949937479948556071762542074113997619479521784131830491109738183299827294112381470727670615246504473245710524306792325202087868190434726272341606000068008963239646541835866249435178243115371310752691405022008139205826846579603396278299955574689798897083285236184968473157505118512579853798666502435221519584725865183219917236106925067158395868234200195766534724168390012011927298844059816665774600002893830869076505801119847595635159707583586915586200742421945244921344759130703060038333728172618673223427565279053274886865614311887378074813823537691859084270199008275139737109185008815714186908852217605249674333828335241485177071111395340099360459124071869981625910722552081325994424101243996655523466342479983565581515812237795535203689285428084044510250671982150414936741722152641471871533032699704691126249138110288127222710671858850756974939601707794982110897650579822900183589197280355393168003972625761011354027927660290435296069495000344728593350257422264976159217348963748544744111530806833860682077759872258288272593759514019850057899421211271003136955692766523155653484760816041772725900481320383005842560694342036887066781499027367769196122322533940136656943272427933726391900186896154931445210374276375496632870187146251393946753935168109053462063260505289139070781764860630599141119097175002383348396261966005597033926886145829148582541698990174271438888053802664861349519987434258867880015068985524194609811131417991047514868500714889498380599259326763026293024775079527883889000971145430460702431471088977210463396317346356208053974260847131268060642987753799176191273190567905669289520839491580626111471224181848527727734050222841181846874603902296361795367662296172122651960571186801878795353731551618459531620085813064303398478487421915010658387217980760628232269317053346706407690948281020742054093044656493202064401818570999364519701042816849896929559679831149280574937016116306390065835241928890002574822401325879382625880061841754608927999128019753962433039961273728660412579113124056311749647120507788828080494959671649195643274778380255721151295565531245292016559705325104314655265897245208574535252179303010622450115813220911247745245165175306601700934207929436090284086422512551019356239927474384483289856265740069324306208175475975520118122634046174531574898430062852303814006375605910244227185704777685096389020220029458545565395132746863131708398828815646685602503444880767622428660768550837846829560049647513528395251023584238132943125528619012613246486714664707986307755608504067370036696146630768131975530873160078407455308471073667272069061259926106327542714417042018293817534919920365764376062323705477921639055985545937270394155139470223124916380729555959727308652976315888430064621562421401289686758764420788821080945196006767864060924580617963372674892530745691847004099029086344092807611888712760496937385493012599836896162188267733189185733941287996905166020389641188957917388082485381565642896997707161558806090481362939819645844234624130987214493433636943862394293759536096697165495486728023964139414999494498586344580508743067189188797675175285337687254154812916045107562397959067556815749132398910538080090180786799181601369664613992546006217743529409581440095126474776144112618174688052236885463467259167068097969117028971492057063871131708078542323973263212148761637740247337078585258283394961474563979543649477065201619546692383623181962756364879186015424102407585217592540594947109761029076360826443626958117790863503526729985560573151579159716287646438175346555292929517917550805569071079864566746486542083163525734116336479035784977014254019213343960974141490337869509915114668928186293100855069418337488116700696709840573686709544813682926895357567497339913690882661003832177727273742405572829690301023709630840274996498397686544560957738254840028008099403810441691594539227310552356166031273845332847945390724206439454688444032583415913140368052265474248279127153412733354258748771193358044512046991980263121232344276809717583850366752311075595711830449778726625495054489686885600547493030704109640266318542872796872932139427368592072762950891345308388995559752578890618033366527454372861708602869550809789025870260305657451752913352715969330907067812839500048713582196362370280286807938670595008633670007776915595879392406225704180808198292580452215982620656132567795107704401337521713743709555146374017617371209833397112177636378681247480453028417135710148640610458006989442676070392287805564994247743579932385328416839246522639993798433450837154313707485395695083441900148440611931133479922391563551322368752264479384815943765976257800332355068164798470059041225826434464160484680049824427979002005903646073618738468939891629670373982080172571603914012036661282765082051961066171857657422239211904520644073708220924439981620599552542985226280001749002160089863568177458781280015823276953337687284105335576611627460845844433341226196640578323092100005497737019382473397922662514579052915321657952424191504430296775753825841636580844294833143824605984961182491967715680792136941105266870337332686182189623361309927873044606264147409701107256871002181882057315683478423665804016857970412533675908822706257733605733948346314940401720362285496846062096466583307140409566606216746568259625415978784288382289825617062932778067482442948509583767823732784716801318910815667540875785123080434492854603421600892168830886481744584598637019924130885481781305849793946059782653586964286511112579908952160910917820239730880639078740881040826375882039286722364270949935620206473843382838701583149862705559848192058515802828532936601354422744489761646318497025459368628386910949171837250247274752701284055223197524635046752651736292733126373959699098072256754996053341598164197049977435707001849393366707507430338487461229973410061954240389102010787384131320378298925985368356651201787153847893400946320171649274046616749629436983201619686712253421541764255035927020671516977925650056383077484278504989616889795457404126438365941787510980607800088172918985149464449654833107103046095785655460751978295035653811467754694400729922985833784332165916262742909858864905818246933138898901357081747120493913744558449235242957101360348131158741090820988101576419174340168927388241500014115519325323720372775221518822217051255102891147141692784278534150455582099080197135042656541523855950405098617091923640255655970494857652026375349223247820122371664631019674689334019466892148160496278824705903348440458602225798882093505636311536362264534445568136387915106209353289005737509878394994058378723873835285199950822304148898431257259269224632684427472889796004786313094749492062230497348481647813411365579274914657747667636481878952369374154319085483401223913472946630358502233613293164431619832004497975238861439354067036879227191813203897877057046699875265049484200763110813748075957263686770224765895916896084697670956509000474006920344462614888101110653290412600237966366052845130395136299625053235014932119648668605509496670215243464138842987669875674686939540050647879682632840426999524847630253297768911294925055597194640733163470834438266339583932169029082983676222143621565359763203078097624821574965829794862599568476338131016004383015788874501543056745164920117264047744734202053328778973720722026949912175761577553199240022881980970382470321284714249414365912572512279080399529727312225447899073147702557131694005768714171380236539828738860434333840663089856992039413249992892458767159089532904075934011689549738353010855504480191669166647894118833564373672961369552950142134854723044539924444393696265335336356798587728405498397382556136328253364040648305736993252614772205708699110282144515473752206013200647018411927811321832773591741281925833065644545241221456801160766628434740668731321777686684765038613377220304678596700040019277877861409669362212979429636937613798610101412007088391033490017061904583206803958156619225923796420330078505852907173730808351074903304205171515437034195766997268422837386046110963506159492299403890100194851179445279426390766288508526839186878722295229904465245588199250287322833217884216371204193782521121837168488941557842100433321530428662147997963151370658688543296639247481573873108512563442405671686068593971033648238482425427285240487048718655451022509111732870436064666214192781611646488435832011738749909853580839511012569133353041635869113844171675199517168834136086866021336403415895572953318900637142864113031727569585165740632707626569290222907127949357864263676593768883839816324694793948797324139191953292983155752575236975023180143970317522299191751371421312380257110986211731665716608751817625780604645524906916540795650266405286345915058225051112661337606858754868430258556962500173772316187099153830102406261015508889871385608362209360098905270729954603501973561747951180597335082811812222255219488888953230344416469422940148983178933982939481037528702775087586389059491878568679972156842659705210672284386786975728293366313248307516213354962921717598036204371805940702943009059338652195252190804495171169655483993502757277193631193428804564571520012922504402817493245617553886027621944545884483548045018639181975660735300869944836183984603029362009382144178317125267972481841639097783641355387737892700476160514783987350579079287041614733231763773664788971265621390007365541159398004006127533927239446454314123275221447545934719950584183757104661689735652266140028076287824943221779055988892677432163241316023995696503774860214091718679875064972509696215550694876137304423138854774799607720922047010460833359684311797876429948554524244700926627900206535346600835986695453359702520696356547557971616554248575126512295484479480380210776043951933238724447912811334715783832929539023511041169045270140457403896464652630624391739213862469887442254794457874760919576281623322905584211403419754126764939592677847657006052338552564347320216210681301508136558248752461331261847594972028794226351831711992615230701344789058956426882102941392098813305999667261791183256780320206195627279615704287299808409043822727628550721638647718800620985109036971932715224801767653603593514614162481327294253955387630826853250639792487755924303194356750367127777259725076823763610417104536230435491512215536903187614131095500750296204633829215449503397171424415325484557607955228109531810302852225935287182619193174192263449912862467171576518643118578399944069571860034979876335957187093473624855943971178294792317452709489785134426250083171123430724749332844468429993169891971024249268469989803512137633987692836301439175539810930485634265039505283033568972060097944910792363256304603242568078264240776201203745576242871817149153813413157712575391469164897771339278520358581542399469234492725439561850069237096836887210271381414082116510198465939214147638906752966159211380768497754373912974518255512454274785020014435595611384847105521744882791605388225240180932615192310132336033428449436372738055525965532611885183957831672420770912523349091923100799913427438901172419327808620227132603216584371120294606912400686413101841892353969474070721663491970031953327114243206067892545023857567602610838830810264116521646019462200194318505411589624376414677660832558423793552514227453798147573493395409539476935591392165492097162626632598384333552581922845149920440741194715290401149270793308011130213650748875438195680453077097938774672957061035923978036731662253167019538058060521575999305646060694187037340563475193078606829455476941952324674419432312374585028696387851618896905763781868095134353105516084304305055178321519133152237811766317298061959321845393624119538490751200584086270765235334365793382868882724502258631767333639154270051580821226485507266692043341566078839680398783339121258340642432757287799377583270592861169190638063604750790806792175865340393671487936886022443978781344014478694183915379078508572275404562356007561164042645008850627884071996527897230235489056696191043230544510582522636739423242282250996133934274776693421678697329979807224718698565747783125119942004464691366808330343421732134253682723398998188781732661474160788716871432424200312923649048368178801816403846400650300068140270006372050438748709890538805543281428514114749723656737313986946304385202338827355965618915426599432314016522988387258270587953100531727457124934059971547591648382150218377491823705363418265391426696992314771186658079983798911507737011230118844822598954588191274193505302553729610531547406285501109428672070038196539914316547276185687005399147359114241464850679895246289996403219882031302975706725520544022332063758204292347298495076969052070742810275663660765800926956124407368707720429962407597437553152267341035614563180479394450420817848311839203092703409501428208142692758566011507693197760280194243968486490047521553236178749265484144751722148375463210986595312300009112783976063570186467683692585791678330451880290755672783699933517107836218411418212958388776369446650051151908095606378371895682333112378758070007053868343781428299854146047821242842488514798993244455633035806911699021379352884631930099038658362716557045619866185205908347689923929418308789606355538631137615636672060863053020357636374491170283201487065790901482104598727644117806159279317060677794007720496746573909057365345680987902031594051729499358649986159056606085850750846444162851932492858563904785046275641612643709211602892311683653699088405349914786964670581293394706064227441818374989521105629699548798738507228113613165673631766672191252466588332484150121116575547808341663420233132772297547113980074558532002060370907338436819912501601581070008675856726376064523970842960968412665440848811952782180683829679000309224654561066175609768850333152782609181301737333266111487023278585818230451188519001785837419952703959805513102409841511289844654352955557543500831955998898607598844846515666489763397482955811213877134742447980739362062390146665413221088591066252053888262350272213487563950674545880550769774081856531430177808392589259886569032089202279655418230234181461654948754375652294728570547675859790108852221997862858643496409670381517247424112197508794906686211859484147979157052322302148344860549886218578395842541257454550432872447674769856485811232945644084775435678605421998350891732994971483928086144079591497151685176438832945728467300183939520277854165346206806093160161630908514231093381958849963322052622507307070968696951342173084206784492482637653079819559305301240127316919512446649262456449637618118248748140196796094752796025636995260861913619878414233269576942599280352020367435545333348794311111574031405804111571860881378834571769781956793637174990859495897399447423807159117702600819428435510921494912965035490780345367459918170377744877259421887168870866028434952348122919304544188022263395836371603155647888770493645755902529251438544841731013257432676233894575124560223573025507464193955839359596648683269547545743964633516377809380529855593183510944276132109382403070476940792004137602463991382123441863423717970909955753177445453857017663796368792296369486569952493082459914367882500811219894275014841755351326305570792069909988766202004037554852924005390869485221620728788011113478530457917188556455436601343622063673291659384629530924615624030441157937095316315816787361069661784393463103572822263943937890891765874946911832196851145923262204108210908062406139178060810231938990751790389611367150679418272590068068801154886511258674784347833075402479625805304846121417064102628400995331156875193559044810872370986378312226095674461930317919431243373862470826260478934040921062576135176556016206956231159038590344245412701721429995070919871765659074728625962573022874054090061001983790934835626381416919138902984980151851541434158986212932784617902004946160666336497399352233774147109549850768702173699548546644701731463607351667217085927354867628788192783403322231554219196815874561112196596247920808467183561447727786164046505461557919488578167381746604442224909792661409599089839773744572746460025476172612735169578035292962743940426022131045121049900424512950835190575802830677882687719333830617807143959447123190326473497193278420405413218366710334913712143129825133180009200259978958285698451142804554056626847207469101523305560188801513265598950329332231472470058685786007240865156918677202429095948694132113644368258295953394395178258907870852410202733768955384423314510669478791639552420151568920623899183960400993118738571988176712393614606389622224443230892865238532239630777278865545970984752962233782350182389783300361906360079378551366430924676862016769542127196721967663353041049815602601101751199387861299403774872904412985969439412939111445130808555167404417622618018707216283151326832281224416878712097725180600385353264273041595777687495379227621550421999259214531023311075156736165069338471458498025772129140685862554902096536099432850986707661990104551336556731555762551307678980557630517485181728666494434023986142877234377641391452218821497100817516731180098040174050572044334077910866657256172294079097317405855264144178102341458644023684062536521464569493356311692754490193556048400465231151370753105249813423690544222966189809589251350299005396045853823120691324761879163579275891174441333432274728343873046563127976589608643763812596226404991743437733190273750880177023993017533514983151554561070837716402964712157002868854005516421122353168374682726027112270059181878597859224303455506110924983201604732168582100581708597423331349822831841900456332623845223037621989283718599217817190355651311860779573736101690947407457362561466954865242166491036967413159766082494401552855564449811846103473194216947514914432564256622400310999540735527513701602732317368975632224919394590232653093822559381065388066180080396785440886868935698709739166891605160132817601151387315279087112307809343459135917437670955162205581255347896406267246844201356320038914356559776806988322770875985315451522500103345478232299238973730664967376306065735501267348238391965801885434668694869273605571739150779793793823707948746944487194870329038524413759800703733147739235633677762966426848199855166712838001616468710702581738841588662295161880744677591755382996422880191102497737531921473562922320387401379634924071812117462932185850987334284465916087651004856223231980402901591878438942491425575906500405986423548326260249806951138745973364038399734596939717615647678813747639441278973322101423855785580242087014483721532103622654634658289792997189476214299250368601956826320482975870995275786126242207962994793133618813173451453430932632154149009270565041219218387928961349316965111025051699075962084394672602952175029186500350836912566007133066160417110745559707277823976939848072985805749854192799110118885115862185151875968490230719283573760269762646600178774198702924494862992913955790329354359200161228280424227129159492937358436214015992091995750195798226640566203223408663600623175919395893522142153546547845060031931216184645584983730909431260734979771478082877097874011795165263750886663508413827994124571084465180509953544413960859370301452370345284662788337209206062800441799755975116063319447611114879647992060278240238039999641770373863624766703164422514405278484065864149575806286907971802883365123336600977819553387913767316883822633517174848393639951907981972925929159062258831619942088050991280045251217300714527424908395511236913731815687282613970927056647693865515278125824513094545729729021171693370122792215669938921767236007938086681290696400240944148475104866247752987286938080258091901482482614592913128250734411278733897753855906977732494637788501054250145781233275486925960844504993064410677666634597857237884107570573896590799523707653587848452430690753262749250853146341275076187210927154940908904028777320872533903165202050494770521560189195777686823499938684704992430951007770686457613575745794316252668130293106224506006284702832079326268766484237139911660484200810104860478751242311557285900528657065386929104503887452222465092025276408728890276282140020378757955241964397225948581621224611686832937571822030712969896116830958642927666751193849412643259381293125970308019168490637609568560893333005014713356306321321990235602894380658332117452447648650930126319176160800225646683052608125540068156674890832253384712704511942553531260779439676001853796579442017459469305607652671998401762022635941882869954233742896146642009079575056506411600593177365037611627678348996073750919900137232111235820535972969735424688065447773315616201467848942025692341566191890029779498996584764390001765101403784676473877046557907325876036475895537919543119479904761694535719625926503216121474543459765135024170449063958412773025749873188258775137943273475847897050215894992746255822100708020689516462353013728147183614946407866465909693736634674665512901429758119590810248615083605880925572279597907030611540290586912038215999039785450230352799611946651925192617953422837120401957363760689745084021247044140144644444831707067225853041618571924788373505511188818194986280149843115019039773610403113144215582147781519654147496465946557952244219761009048333493926064619753782248728632203972317722637697557458407444649201322055954202095014486905475919892750304554212722045036332190833365997385877121912101546557709697330703582187628977818578891719309110452483961097726418953669268378604113905753296339733353087031014363383599096967190023106531957876124737376730710911781223312428392278100875622384083046393779759394752990298204723096843181920256523530306080431770998030833557344828519972610256415804728305552500527718222082073712812593399533496927162066274272184665381574853806369625192350129918118902096908705456591870681714221406698045872864382353519238191555050474061702521723897625076226583538869927445999036249302248688028251521237761029025816941032606217412805562103388769183421065629080164222518142449899196813159836690233250364772809584299487284993157911285108802436795129062050543556746815641337399864103480496502318594933506403342064301961480323149979919577076197233491453863802002025269509893572580169810396831217978256368036246335507420297128811319447656281472381756440920718230130588568762898161999158791405303023540890296202835476288742408245465714295907132713672611292611051786396362092123042689831517727764998370753057931779141999441182611004303408503883366900608510243100397161160680382512176068194240625138417555665506514973204979795335297520807732361499961968056120005304473952061865431085416440395470551317251311471514511798571361174389019718020651149612925428280657633871226740813360708049384607364214326358472619785091502142655164739574756297178026653107506854334567345427583189991218195270319542866258340063083145369750265818172134013261750338472563976261045403374599651675306753304478245773572185526738095612195392375937528277475130820338213043970402026125979995020438208142913524368215346746589118674830316195935109774408704517668712740527190279172754778428599460048403272427354762790832394086124369001581239925012477356438890206231024663488938253287554766828584263487938297599962079878442682822419100721941484714685812872466124704962041948668290560999007669205108896484100414064659856047291854080739197021983015790568048102513601061271001188550798459048057598616986948820698427697678219200549389083168743029208582474195297946192049189709383765822655299533257073421240240278318230238014954126518381032115965000312206966455304991494538634965011079551391045050672125000902815969447259814065513398767723077012108892824463758727882894898478752710973469808121308327402492028600137127843959542420411073516021844082388262663819893538528771374071432182308342289355731589211520149960436042127223038222317659698305432466892895382557246408991134438758634686388446902547692335633077613748538081606949774076515896069278068239808888266734131313788064678496310018498354140331740018876998876958561241603922746025148850712575060950122882814154621305743236623505414856183039654319972822183865000861146935163681595256996847558679082379326683523617820658269065644399010601012835674592294293552978779275052804108280588718006102068152799352458597943660586680410884102910759771512522086976647610492520807062414732749744053917084071473945149155566038501246813647634941100632759503477014659593217811410755706168263651883000457432135796655962192269279106575565711527875239718296406792279131185469189107307274035105990463388865738613715790106451293906890557772832696519325277049960212133749164174207024127113944248029102438794898932739883673210594296028191800046396845718540305274152204998544528558735725796458008355723760589999044655153192799452472735861637918403803546664419856152853312400272788672366690599719234866664283852514278396941077550550871444576768950658160209976245880741325248256560064300867397415191080381371517796887975419787213666115448695087876483253853065314112107933610774215345619426594394031972960198652955608403747791536798260077956306422716491419051732228301791761800179178519842631754728931466115843461339016445473388632429621017777806170955743209550066205689268881743567847867659615851402081384023369111519004867890624136003625164780778936079828910043061420080006088135415898571288091292900263715208371685393414761686049112653760516392751153460301725903329276540234922118530016590951477075420213272833546940128680159187725003114769840647848873601534354879922105064189387049120808398808196149866973298385738022750175195653153166231881836039250551383934668327077071719933644242763071272054864950441655518662973399200201232247053203468376320327488827908404540791803174435068715248624919760047424926114618259280525308380805848768767227075406492854615244846951130775763700131209387301259611486378151243362909258876614370688422173424622001213187628177420331981631112463267719826628550616465132772354271076069014077297280473033875439699920100954971496202417781027077247327317703983396256283944594824130731032905911583066053671528305092419552306504978540659996778261917575534490214607735795299731671441854210690695357479050251471721323116942076337689889279045893568655547355029953577869446342530916886670355765289035742314473645749429462134074278048275582238585204286695025530584213898691311770429833660577704256178756909886277626379179307345150586159873803499925535433819157948191691803166628682456072685271952505627532894457235860663182938588388880427281107946315276028369358982934602760060421330850551299698381357429829888642951236249582354450253598867610752491280015340568498256231573000369847386191367351314313924796178056304126139362746703971939687257342255201832154257218096701874605761828910646270534066834567008870081030316159856445696052943176378137108279726529327127369610422117474657066207143708839184056542713504055197569728176320991924805487505047064655754201055943791670112323390085281838943741546557534465173725209372200703313649948239733506854992265024101455947981173975203590388125988950877335140402532358804369128615802334055798785961368237012827037373379746647905705255001502999054261829278781634591274494098956019002214600278072601610875150325738508193021453418038375610468923096244331099769456492825589454938762956521601114692118779493282512407491423219015776507756734011576945997235228395426577677067056581184613517042768291008322781063638370605025548057057936700846108228316157326048158816141207574010013066226177189353397474090622796411269108565122782891374441098404260460130150212897018488447020472337020912424369808057360633581699796114898756635970119288867255787573322160399578379574809582830673119899969512142682772559918728262549367559701094662502827223986652871629105308001279499753436780438723751640840514404303623960507368048593588147435747027350133251247986958651948175632175306544786151489974872504934286895947523145833734265650546435380117604558885573161904683513497243995243740576800136521162285003551151118499974085151069216080677438637378973885657248408804805422666628861886206593810217105410716941521842435986647605803136770637349862989953964074672380019801719581283169437570795545854960140323108159857036650659999506823489693003921638679285620668055304194545339197304727778646898335914912914293221503028323190714042284044156082498160457934854902861401225256596321939972740365065989178063128641612613260734445045343569770889436872544797602169739171083981815124252655909354088701919194299467375873763874451964304630204462899920177278199814970773357879551775064246447989798592752992925664459681653700066315694174822522990537612638607294950656587312520949978636841522859151227813190779191177091085615527159843949196195161312699334614476171382035353617277447361256946289598833634659532571975558624371467488139261844020909795619172085859754994051146348053676529100878532556040889745932107547788746235858221540764930752109443674408829233302552318511191928229006491102382877244437483436036322622759653409094458610482865232078759393707570730968031927548517404271735772889326382080923707042076387676903591563795357018568475544599781717096037027591918339693574295089479936968784682798388633385045207897962714808640406676476065385430114015587015998979818175223282237489371031812346681095110630726386313121347063953239363094007636016098223284395267098715771605838423359679605904626048487028837614990843203032059509631236080934148563016050991132523547987607793322269059409356987723704654819293799112156835930840272383516933762302775922713331823067612758596837933236610825173746958658293180620184196674185454625468269816586660440782028169242012906899150789752624500472527905021683905088759712503448560838364769829138936481280899551091982369846318993405588286927363701753199428325578965788954710217107260252196432155122162651349100421713876478697045940944705993439628266556565883331814820104198854152578596795815833010216776054270149849835131990661980743656533425613254668806852067794710761109766729585660155633658581062747937020982744550774177520107644364723431666506415025532507899458992828826398741853375311376813022967922412912215233998544679438392673954819715546676626844644274343191023170674131707776548885189152317796862517727769217691946592490857420530988847186352077367825220785636001328199098789617382035751369867499924409717197053465103659856163979704091673303830131682537853443565928280760826637440042853713472311120491629200868939098876469915426646884387012256680604974288215713257054030210760631005549419265449562288342364993077081892690349136803837898086271012516442097165853227658264960254712724147549696163710222375077257936957436063346297370601888613080418657597778859393721802813028599423996353001693021585659102208101655662113347393825231350687176233677523684026923904390238016974411540106537157350140918587191175455777506540638914778783909336625987455902880838896298428158962215825783429147629226788394107325094519792138002367830958539814139075892404484467651859153272339563102128546829833465077257113721358092165588611518736307753217896942560201201809306342433337908971607775423618416227890958899234761232220564924557467183543844925694282803982640290986731049137366371529220297928295273755634846349333659780190440558390208739557717366342101995478058540013216038008079928034992869463086763112953484778723573185451555500033400206030364878117269529049847424847521517787875569610079836609224698943177299614353641845660121664364119608524846996760780634851754256392253588673812110256357380707290599192171615923061040017446717690123868624437389874200295929386822487234343832953265327929624848954863718154363280366598302780876688815465706534494107182195051838517174699892468048720524242849049852092196399282399345446805742635896392647856184658052382568121413778904308883456491317783122728410946715800147415844106266369888108980650009906914118209123651394185680776427855364977343572616895357371639252315258940099900961082258665009207469039754164824963401384328198846478973923624870241222188320302694531749636665242935524702803448311777354110291294000043286703604530571694870752948466711984057426037463596375707772793142391035054634795145189718295651405941607119222961394265850103740267232366393197250295803663530564408474706756888323936506608073149620882926406926776067100735601035361249690838691409833731841353460003035419266826966128633029509996647735690848055399677582960241422840069356114885375822050996143099284835145181575407077121527760559601117846409259543572495522130386781971592146871298720946180374704735520649876429112430796004145932617413408404777331179200573286527987684974638219973114219038401792412126001690963317843183638116183642564206969584780944834894695323925575365113510485460031163379233590210574455654520171765670997124058755728744193733461188185290362296697540159718379740288780815968958015880066294307101510964853092780415020484106081338970675225091822697105874909851590866032027489694242325109745263902933721328811405431968191117286530577271957517950796302746542138704679785015682499263765642537150047000409329107625446690211997588180638098481604693895466929204069763583136095848582885794663193663255539484949880522431262454433033247521492082425456069841636967479605330537254827275799307168373581404095524374915751546474316952629295908960240846243913043988846295757728293696149014093872036651183689492076625587458119849063375357588808029237032065678564472019916078130874036576108902138950501085668095458747028199278734174678545234276625881261601134901488326145603222820012697082337380587497998070279769182847997851563505381257379403638096702070771308429758849363359785137374758484916163190088734143784690666018864969062514954721026812308677559600620011810145566988895639597170083513692454635204909142660984475998996960587731050226465471554022461883731700756289181651180426939518758309653712611442683947473795470406085111006899551096357585037656026430191881980881363462359495397074939636409622616891889599963477182908366935618461408537174000356928820493923004243055246915921308552616540516656797914827569500080034539293989623847937194037512306563015509795888811314559897724517160112957651242351214798572134662963639378567678754590762396308985821365724392807323016902570324917536341620386068342145053327685404354594012065527376112488544241379355898579481468098163448034707580703630117895529390806156118771881640556193507309779133532814876631935197137071879575969331034781730994763868961935403193631112947180727366878515811188049721027634919275837729125383131996055326794090505478503008125985785481399296151099917437366508485596042057674878837430190580110789424242058333249472436359450913983255965618058316878830136303957519399933875547104766615918483105168462254616675493866603182837769591202945446332766747437785784710361420463893997071631546740956240665684823721696387101425381077732149015981099172523215083814767487087281706241474518005397819741061509910051856766234403474603535830000733473093502087683669179856491515796946999852758053859650035417039389546216248611152447756688484513441893263587834996887783318356351963987233653643762405103981446557865321916917752363446873559381301500412454896131088660042611610940603235035140686917985941784218433882961558991981170291817427206237632046290736473817034310006312506252891626212864019890964634861921822840429875049102172449728022080060137804291506152990790632594653368277022249105930732430762496530953099958614794955439515129774369827174533942808699712107659816042350660311960558828761881830768759631957732654627072465052410551159855609559789622520474780868695093805614981246548802155797089973558653757216043232024010037648443720591267675762268952367713641314909880477825019331475148960140402567254347789867163492521087790816220576402006585422605466603814500660926733201034219274336470797739954204223189157171896262268842566714110090656743612491563134143328742120821444621295254469648219356745551879378589218246170850836855683702124914076451908116233581582051066065254190127978721346038211376245469318919483020528374157809552015766849586323181786235166994797695045356808963413507594523941620540585907683681620136777791200698304758741113309552551762635838454955247762183571461029853175014149078353265774092587585944846208214937758614038952908414003633144002017813203167032593837411961643261841161839307775991904280606874335279171032866645050191493657025283823961938310701204600914017865308577109096942710990304497695717063944287777289416144544419663493264592220637091489636286136989124576229428337790107453707115571192863106944617494906743142287223763906988934169332807625466013243497881008636477391064751880846829521773693032512230483935174460988415497729492142156221097343309756500829488387455167127110478160068674391369907311183928223266330146553228301445513329613181919450594247832090340691752060601068435147046599936169040246920612504701828178673462734916643445800946959290313840035170057435057434228574709895701282596322316059740011235173060191491164469197196826258524046514832124659589749492018936588294073616090451751725577632762993048913198332181652951304580984377786859300107843807101673469734989169639154945128892314838296285258050059066792573363660549972768989348328037699138877475934457002628498104468874243006093738244583217024344737443009194594203057154664923000318947629751829334968169946570080352760558667127624361895770526069854144425085827051478038928008533274398060730291215674791981669175356485006938131681256325507835118752223075095223031783782362765115914487211708689094308327848253283562543199762694392602297097017969772264168881089197041807706622873714864361645752721184159170022819042628624171254192453991481794572226085048874589635809690291903012325801772947743194359356236803541202589857217744144960032658479856184794109363336549437165060170546595266068757095727017591157047958342787995211623426290906857846790735786638389583728923131817097378017600166904751126338875900274013277191506668867427477452521516373212691424589583678010794441094276243001571944549508172403283303560173861701754513080249091889548940955680346919369566727108192282810384188252550833124916513803363862641319213667781789052362092797610881604286873012465236914142590333907482937297255152234026798860972729098990702058133350156101763853224169287191955016582164253047365811546217007781838131797423619028500078939096626121746039694691849421174252568574446783431849370570133694951998824774830657462532002637685980620976828984228625553943559409503894197504991217374619731953544877607784865237435699698362376362650824266511090180870580434885322021548741343130646133677853437737420532285103678505828584640658594348934930466345811220003040485444919263058267271366729011286515202387644928562341017052816314373839743528168351695251823189419233445253136817868492980802952705946612085842752075082945625308652418699350833092463544933082889847086118337472591413869832425918931155353101055838939468612068513662076153891008139333645972484168433286980887464500824335994867324841090563583745510670641803702843878406085206793245783007801728345721166618158350204019015166290961346530507063560452482931708609321659193753962157737287635139185800182583411247304428223852968971191188595547035425416736107834667155355086560413897536361486757090419301096436262019106711157659708975246434145464450880127941289162653178211022979675415975147364972075166162590576039763599680320842099764192223684642082643631018383719410159808085969083229012675535913353254144150130353720122643701008461846319072470081090473984214734569731467254796630845404054785205501781107852156936248537487984015462298325944816038341560046843265640497729184707568863896855874773035318628559491119811657740693261700724293769048113060707081986252271609899116428184932900462050260800999737141878108026371950626197786747762619232118136589419903636967428708310573212997539480253459918115277969681862940564232088003627925377053676446748191691583190540275863649098183931667139588330563420238796387077446011705807744711198448512107696803681857148581585565189073322780556295405958316858510981036880633890427121606667348214551531270753581908064661422791642908654702585514481583266848989009033059235625014295973356798912909742917334173087044742596802367675122894682295264687012446242704953102197274953089335412080804021971296432844372419581319737402681796887043032104580057443037011876276159516185430552518018254530149097500353970997052094494709389168500139406812886458603309632771815543119273295709909100721304654859385308645650479971568532478443680811638783020876108166384903813383780053682020764316401817615228538020530557165560684532885005733197308682365676479731146963503299401548167691830316080050580147535322087821519637979899038022353634290747746223272625085357925393280109798150636172760428821057853862750186678897871834494409764255120978018260329238484305182273859255700600200349945368492287523114395247069665192486170981308018250606578999756611775260074629109557675975251205825816027311747106814227985244234102752714661248884655596103957480023062593669430749885912086069538184267630370743859270591392558850020440235580398594832736904893100235446393393108959778958169383989519890352314147291543711165905236043331907202857150665056174146448438486536172810901932188386983848842440472458005632695215552681489270610235960785228807667668317055041359875932213775770115216689973354700900395220391233927076826007965600176464273941108148544928235353071278928214648549870227560743613458745291889159067715845382870423285257361459863016345533175546291248139288146947361774462278703561065018054563576321744206744137766389335949287638593414308684387401630364797721802068401761499957440226398821315848191305116221892442879249899431654932980266268652947635152931578835034042062853207713523733633681074259281411689764306550804952028020937374868891929169525778624169239852508298143808322424820354901905500868162859910931876897178280853558996313304935283861541813547845200310068554626038709334126843051753864211972539247851306994569949162851616628213333232479842326153704200548195064153098082668555106422405577224542107767324353101552198780867450162545642840394790671347756084000308201963330552715051164359523871674927531190390284408426662614774805490199258070704213821528490807633057484778852122572374260904272198476261527394856808565579645227686128163486364184583624950553809831640402396220801202074964223743318348040948135890336828956859768587229975621239238822063713333213803575878590685735838079498943052016820242069782064602244463149951732928646187900577996959237617400938146288842845261709265899649346175816203509484005531188636031306906863023464248373348942854983168460524575682579012455750207393257651823888450010762011802840861588485439114432528125894664206440372502320287497531807315396572423335024292446811607427440511531312377224016989549857416988853712226754290757928272839051273053850596504550812995459028829726920473043141965111370694663525991600712035251065795041676168349666882525075597766736049136576056463121395094303931137163883541255869109836522730333515155631627110030511738281178788402843430547951414737184842158597855991227032286388178152151630971833806044191597237964499305696353440138426425975405178895571198829183360705421746710100358638695854742203075102435167954280475576816742419922664154205720895163032577671261955087885653905138168601422993521468730723120128501215736333267914830728795560752873161466781252180591161615183873620941017316197299900124281058006750104963967010319203987600653172492914993743761740315876467901441110750917551112805617836332239901851583087777350772530813433368260542040506071435501079325796163813622617871576569012981638108383967716911153006135996139204198911146632147728753903659386561555581347565991780511507692353872824562896876643085427586929520242162982922208285327161554215533330831394904401299508989431895787450878251801604995368721455442113710317237610190059920467392795006377498615995950509873870934722621398652707443109669146315784712877661230490117426139484858457028027876866583135798186699442360517491499866494295582757024221481891860031814209593559440782739220235470363146962936999960244225101728806305398875281351191749494458431753099341834963661370561450572928334149206079324018392841064090488958313006033800106021134926538367374729085632527088374007077192585377115677176879949009518953344113609990902909474327112942243650155013827900499159707327482573827089555876985987288116759873557304167233548741047806637228217432325260569962208457408324880151889048705446474868851353803438606040584151623842012819641488969479964679725074075694280368522954328612042564570558248972082421694529653085905033085527370245545128107285984463167303363678792821993994186436742729425222322317848767876931953499765596242447871877441981457081387629673334038302880480919070659658254338546491937926129335915558558039551999680614490700193381829196918669932336448034371747135282156208773331974863592911355775496037843390801805506645527329094485303487285789561844127230585571230039670449113593264060137290724854825747382094207695741210473604522240672534116318554225589146371059195758059245886255754301697104673791189900384665480452855338573294906702572077405234993846162215996475933328810362189392633864456597413281855664501988056676106101750326829215163709447125565763570691934414658398869795327643042222659305067897153139567467919753171460337880956652163517869285430415314229132029331419319671642726706943265608621148552657681098563149626765767060960990584427857107088259664885121106996821876281036275318529641253083809037042675005132161470484611383532434571979199648570562033865127693793997345425312855188814656248457678491407413512081421177957615481674321616215513320260665280365445739943221655821753293118259197973102176854549847107247019331697782978446922171819389692468313991348302910747226176368998669508814176677179242299047796691858979067397152089967011649145815647883098104316399415679199861507198424868247655944272804716439698902559187981610667355154076059109228184205327231794239007653566554152501934864921197912369162998735506049201872896924636437559877811532133977879226357300789101872697423188487295857890966663341999831052874059510180004296009043881958475136035896337135949758982312613683673403221254157995304443841326512163383552234483624513978254063179998132851447915635434692755259969272713458718828497799315441255518379253126546338372976396099617107176238546423206844543397656492854292540410697556448386191119111545419734144893866972867198921139627434994674464813601803971394693720233707132863053230364845840814448217465010964808339290799587894112131737775718371818495541189597851059761250957334016112744155990403947011629673769593767224228407191940767344470469846867185613677007848827105383130498513501075992075961007608805131035862196297923334482422928251775988535814051395194029606468217465332197603051870021904754612467364724034987929169985923043579649299822142330667937835563435324774608779542170702890411583954297702823371078240883540604738876452811483569185224001657781567071864081139985304196359450887891755707013293191136248416374010093288184440443506076193073877687340711323795953712054770427916792444508010933801831620116052476107251328804639419605021502206131048294331246096033004674024873895843920930751187244109529824323199989189461968644046137033446208228062169166732471269099837165561168198671119994586748895208244619147637782520134725702688472254003519366586975987353756360123175089261212669687138946322222549857358474608162003473778007579491992748224278049721397180994907716089724178086617795169525780468419040378506183534318036425684668396780434190231958603000975641941702334093794261251051545488184539508039856772040671709672437440742746775218277725776847555027015749795423330523970539823465305818880901321314276063012853879894185475910907186669098112631841996393532592661404789612380060856444255529181907005977270704959912181816616653736909092366647451945893098097444002962616497538794948697037288093689398614718466486398042883193166181443972561609110160660423355246522719347894152911479144377680079022542996567988193249667026044646658448133505555888544847071105755018280061415309515236898237943333789052168515966260443914092807174718165201393303768334645472321912646689671763656424744031298556556072020825253515834388660194189923827490476746947906509338111538434767567957801993646139553939792598859929626081281725940277770602551557024542573599113952523952694950713074974610369820842287072404658050183895943645660637383419597165457522932725106105151278283833638542922265785662625003246427057666129019821224820724973867100133232157835445591854065508041522055366389557413763381321630186741623134297832908345621947458349622590015520297116942618301401786540234216475431627988251901074484319100123036375511851593886173189688020977459225961115018878979176243550082468802882335559902149342170519380140444270969413028118900324321788566617518492574152831990310595304744475913689456727167063883748440294221976361133063819012726307652661279072499454393784307600472399085021737954397849797055843820280086566385781414781312210969474524710257677256568202071960566758555778553434195792399895522319768779220643968586296712612717807617218997324669498919947331512016962088657025374542922391263321636620396293387748693862881303754537818540663765500423622518978329204582336726769310691974759841508054377460931903641781238512374805866534570811659301846180376578288222909428932122964864082577338478878739933260954545417216248203599919534234763169395594228513085344820365720589705706250678883255525349927290760165477729298068691095041427764216751020217801398349518526283930967915845732944980965615753992746642399470952853114144713866510893367015183044738795208372363175981500923900644231594471466008355363304699271269225735337362997742755814914527371508335132151038927238236591544471086530317410996443639653172038683573821714923810846756529383407802490194852907563989820991438915457069845819592805809963084598035311230268201836694089201065780828590131857550346702881965391922267391106904107785218741636210830467435253116936250398064122002338015259576704300819806508409813324230796700061920536428703032283233295672820415532889874051952619604416815963025898056304504822796575721897118474328379201840794267854265308655092469099053298352495719967417853890661505186871319178259471283114816569416989080403905906132971641160190818560738403749354455589348323455063844286416299663376865190244473297737870916539280847389873818129735809881482057436310356558169630947516616468037017456815778467214433254958158211416365743182629765920902995475162568640632807907265306312071012703309169602113135690499728166254500852112820773124186100013439345088029428295095312731387479233161010354625551285777426275940231337169156074574902517006753581978197961016448390362150948138357801676917261175567509421058281799791834215223125410821325790382640997082696267715510550506115425743240100561120487974720608601659611525883803856675601511417074317009538289216319332245588769750763197481105409198352395332284370321747579688194444828195053870889054246232483227224788151851153466054169653982888379530782495607830185777493454968618580741774235510394852944329164391420787355198415377130046743874379052510990018785386691664555115182316665966372473265280652429743119384522378840608485247084986816439564658704394509799729971707030638066373639982242821050206254719065474544184113113993328690703047591173479349673435328456014315175686119575045219647807528085096789032881561504274323830866252090976323797542960340235711377913879423623698556287513164250334101459459338798262269759430295489849395880708139770892373734808813740396084931388763372154222189694185380232687438275596523464950377612985040758511406325189148324069931577269898435944580855118213648962596564205820640089744037458684958548818460176670521367096115238451175343147842747580168207436254052235012074942891080964852434618443208855041326268034384537737615191810780039520302093491342521973702891416395081303803935056681824712528835757590494367921696887411860629036534317932404277083193776987601266703427943725495236409801242767602787260743010081518003967974267823216729435048860159665513285042041227328861085823993416582133178065978455001191549660787907764608126082610608976702112945640562253802653314925828973733088942111372783959146276601758456880441463519322481500731486242108858595942086911879609340280280539097987868836009848900202527412789099548039686056274843044975407798050374394201947731575079045988232330013980430171585824351083447059293347722744765175231133808112323527627495239651499713681812014548542672230680045437987141319595423367734275273897881143197789605865270240543645499977339998352327993054046975373066084714164356726213353846797228834693089236097221330314162575908595753345701918041912200063933075874889038838343960671942425888605214117849184134836728979655364837452158140895950318153140479774383762808175584337746411230086100763158905206592957309802015909001237873755086013361216954799112736482996124380507002446349684556162124752071911080892245934279139430708666505258105727708496136428632045427503041917936240137453824890276130556093681480904271990007996372399657196546610849644611729671554241523893215369672155059227981090005396911215847983826494233019323017021041647927922560589448868591829301833145870729595850805532429042043882003528873909182540564782530793354073775519836014405054246840582221088139954117242432148915398903771853266336585991574454472592541041627679738591901394930821013080732813288822651268833767295562814105298633865695215366170994474314825060968841187298965371898338848043525028101634586541127376953943289965575933304454590582925076187965629456329540975699058466932571258036045538109443693512758069962412608616530642199947842635710012373475925880005623112583972748079806250578675756479631626660363433744957811500319003098830338440162845930516739510812490529725274712042337469981280533509786904466080165298627966418655612396628865256306341723331968194134303505695121892576434692487461185709207298531838209084674677892751835569965724750457101803743711846936164888791008276169944946732448935832972554954706240009658705804870010622946511896281287791855721724421570381937069158854488093657196951340940109651524747076640014820609491820982897205071346299010163060631334999527318215420424047957119079708415390133088201639233013338153789112769952458813265563845255820399350980483116176716228072999313305495554356079884569811099073969020271106255921260189364728812058524464572083833389652015546311668023561054221588720827812999518308983834541952999642232765698167022525864404230723625524750363594384841775022354237903227938183643579446701093754184579691494954666815773267232862985918360246174863082793603777661021372552358414316445610842451451185183669569592106929340319470552529771605148839387673764295428364621065922206399998253516545074742361201606044505403329230739062228159567865112571994122066080218472143644467858408476219578501865656032869846372607954156520285022575552203592406025484067166039717396227658745660294751535746924755297074281787414226365699147127199937679353632875530830499325308999909382276530438882121431421527465070713630709890981229199221406096727777611993170169822902438710960110022865952039427915041786430184514383018609163674642992783605391931976078720068085717363677780136033735112031278520308589131035930907353211565947216285528235021936662070101942356630643882808174825397126832687692567553233128675909744149449292449591310891739578539239541459774942003597619404159661140257203520453696666470361060311960899931653717605051386989541795355103786773306432684535660302109680084510414050861680313634648680824619342201799588506101264531852991088206710060045967163750349604579472849019234782065550068073352721481498906774638831856038846064745890860362608959688239465350157424832078683800035958562245035563832335126129925309888249874436379935505455114616254253353422534462147900932037192484214609896816580878724138723091835623986360371997914789355272896729448014766891490443698479260543723849127479832287691036175761192361247290872809404907782375556955997482183622026387067043252842884604101218732684298187723910330346991299990447456556796411519760519336323934188939245223468568468130944849897583935105515354283397485828836160260020384135534920583753161250444919141617208472085043904134157644601540077092913318657521564204659260733060168362351184720742715038062950105653939972069620620945405345608101040295380991913311905615764872290089333642578504784881585923242781743915724710629780928788406859969019216934842007184544595704891315282318270568471489147147925582145109269239399021835851212512293056489784418212535484016846253182156499699645044810864925569575164142489479803266667298403630493240291352940175751275278333168881931433150725873800333280721567349688405918060010065755875423073335329183231993243733964057851653676125106732756446672091267246408359602971044250638112091283729885189566822575845331614608413694832477911923724439806960562319136621741122204643169208859135208935606315598226394259058431794019443694918149963368941496755977899571817616006937326742730958974234585947310272611184519103556095973817675523867652421282450305514601104516168040244293018911999022474560066252473528098511954405780861536326009993133280720197065219246950488700682786647667715477406068324852050380532058144193211614262054310018484396892589408824677466519668827633888773516794160273593534072601705592569887158855388362873862668222334616536745447652287521640450889850920888653332140667105981071623075620875975303089206005733953654599925299878174657609908242090052136116787746742336519854845288347345243824025477383392613377121515355426342764703832995933788305310817651304407944469967305012256007906013084865314507309061427124005868050194542341664552487446780278628649432740350472550315464588959610106579131773105694445559313202515288177398645815161019483460236853532851885297327546111733711987679302322901332366883234019756243774528931351951103080137862906515440798518578066447581839988946137091796668614382376290546136320781203288982013875156990138322454525463900647048589155870874888356871379012619701005330611323740395336443697304864929601530405405190576651906199477963122352583767542697039052662760915715359026749413640810101197546466462547659282823436032347121264964467239113058824896048932151411883535587210479105097223641972740151125206066821430862728838156101521625387640652465915814890238080391120840834774475556703611222361428430767200500333038142626277572338112244947910795192956448507501474235213767633105865927809427017568840604743825939271320346859951805296023902607421616472866996767825125428030392165839981852880949722782001440866088528763966696255168867123742225394509997358073834767033029034382143972435408357904451425601739063085336453341259159816250314484263736189135006198750556389919780139103272510494268483427813711926211935955360089345010136248354594421402494060333136940857377038650651781844488874245084005857792850822416644932600586321714371885307211517251887257143649544808482765943445507849787684749495474706465014695975809150899804536559723835439451443473582034060747266087943017130736126687150475395302564234558198039603993744333866748087160170002911110714502314039951345233522961884546073680625930334899442908488044532199697643952813970441539029549169013538358614463928286417864230146012883248430141260936413542011152053679881802953084889657725644627610811527509563769458282828226010543763004180925069532315636303598987349964514906167670056521381797623611527945530688789992603373527679166898190597650787204370139919273356866064266489000849215732486392952600503374324513188979239806655747029090402395741321755472889426237438560637013013473406055104315958030968449298778276543142183192125267682154629036211413422052046817318768099372433229384846297406513867327370936083806169473838127331531236291695357822763472530886064803346204530451107948198465104490822872281112765660353880409795750958400982250090202504483813302150729279673149658823544574742795050366469113610085859848880550154771372641202119317362749577547051756600388733872091009066391969694135887625903801820649011963274660143007490621996177329118576633198383435910489060917747877704245519645663001227808422480548637417629660103668093399498256968358583065926810783801955580459604952846479669723055593996910619008783405355039477830319774942042669954264707325851854571435381163617733063901861315450124502897434161914083285942075715511587765948954381631629028364103258978297215174737829222650775422823721284768878793603214483044095317510359706596016079900868553380765057201012622383712278394237751517696261167331208038461600826088746883047605198677755513795933599119060928490032699957321127752795133964871790023506179606488351305353937248465140146077372636482136741309196409150723581700549476246235062620245486385486898609589352780949130342494867869229141747991842737408880955640739043838408853471695226157938788422100391399970701115809920729676249719130393263991758008371069450389517963801038198742066478731158098237376555022272024213408605884778313050858001322152136268732342046592119338474431787326268562758223642035191304011505709261287295174125749490726220153119428941691580706626814382456929312045764470572474572651333987235087977555121274269231863113627087568768403039665508211796697502782674311876605587963102115394134164989284908722726258483024204165428866141521259971372431863634415738493746551294292749891766818074256188307598548055743622316922526104971502551121208084308897561957972441288271480401725350552327897707474400181331305890736129779451666193755247009636698358702187442225309291581167196340527494615794530442702124456149652297505443518400411892885273284532981386058884475035895310321687039918272467044385557750855495353802579936290769257146202521058490193844511227062403094844842918642273398579755374281155399908673603636235522228666525095168093718225854950066428296015281259718771119742668305433398735853575163419840820154130152448372010899648176596797841454571219405692442314013500671930544241972903672111197645596072048920913653440166558299581210615386664704844319484668012192588819479650108527988188433605699950300270346161890280543978091960345395229902072315056837611013731018149476023798367621329082550845642806835729468519825556576111487264799710042725111653940795914811634006842107740989559997236322694793979445697415485794451893536341111541103749644927397402277362400983436608613417993309182365457638358776109648650437960714856415942189232992004417129072755560425691228777462666673337313795597071699359766456647951687884666303673799687544439530683240234423310556420043702190249483880131089366456494493611642188672048052504118648704514414197505197273864098002298232487526945076062670182974088459955654887573479663847308856852292034609193588677200757412799651712668138731627149466068060066100139801274992565976040013069024409796208465051634080958335367042942715644000915681742796149423556041060990821712075628343151796851153136840204768267484302347008171763782555905768899485024927120858852546084252900765269733281662724059872539620450404683495213454828465355731820425643798172515707680352688252177746045625783803524796512772121444590285878553022289515856828395284420690801507891501775760314321404743178835884116573419502295331210479453666581492987524948003940428056812918864804493267465732582245152242872923133039560908732909678395765363760860614992080951662158660235437962793579259895293686072572627794896949012184539556966398660339834202067622783123898066020167544760098060977803067540626070731027682316497168303226093539759992149351184863743924739594116589542701242400818819397673526233833800512647807155716988319318981837286791204026758674647434750412642221806462306400645394834274814893144779887440901064422312020630954329105638185460211258432108950353401349394339558220722828575859768056180645465994267360032412275686751849857482462926672217112513040253568015792101738035332141903860947271174442301260096154255387648143306347999067112624030150326123439858296316563093000688684213674656170719055118589812651615223442747206944089836207175796003662440755301299369856424023600078304597183063529645486890121644554459876038620413703812318064598084625374915355415453730519296770405362848751734917865214679514679123347821300328991587465791479132868572574644867210714238799618070474519199303101132615786608073192258115038627246798984518184638432978045189205525191043007797973507145605329584486839344524468340753725824370703323980783229084092876237628334438952742002641188824070540343162878126893422476770720725369498924356871935910063347259211222741944068524375141137978967334780394301613328308805983412988926992598930392935650766700058303887149733339616190846862440103317360518238123064947319936703721706640861816803143977454701354916008073481827601444283575354077958467479744819636896377517041122554945535486666684079670137515868195944450205494653120106347374589284065960943127622624461021062770000325027624082144833651521624390937765412451511147702249519779289679118143249121053859576765769199965730966536388234003047053041711672590608550096981368174721728667789459402878317969048161584841484880286797653731702539529183802532939135638386796436578405614556526915902272089683649948282817193308802319879506429503094164791953818747779633212162854292237808311341381861198001673555866877597617646759344907834243126458946278682816863852399643413901246055965037535643965826821145922764268034159692513449473190969123434232077845718692541036616098844168256483453876955776270630091213866910100221310799455933618775484255716164058898873718972284742998166013709909031008533659470372661413077587137661935133625330898614309622368427154066200852981818924809888805806261420725136740836096348323298255090037734955415829681980964582670958803606734768791777361573227116587135270854690192746555727129726344633652841886130587447701527703404595842256545236607938966334942646346159803159427862923674771940606084965331406899658652689581282486182302673937091942899355703941318983952745440390252473925244746738901685543474804233770706345743767109563163321519173915669228869504403047353137738560388473207971329025288408043649258746330712722477978276090997862351945179058776523367878237328072471564815295555674016913668402272646601746925121260467810453074235988679518209591894030480711372418905182519704343750130333429076046857897370700120604012209338163804440642176613336138962600836034802806263969806776754052830576224631079211457950199098733632196553346871952283079332513759901528061486533157390012083117022247509945497893894032481493449790967990104396132994396493800386019580090959332815543801525048064613522832095241910246734497953736646035218339070415037428629279986949926973968287894532653530768758589935030874034080656037786688597915367427613512813592719458863899289777388375673812296874413108658986032912932746652336910954872095773036544537599309507804590702037127981196592146033860457078280813444951096237881513200840771023201753472072312822789521586713250671414869062422603291065833577650269242919623325713569551747931437640341085710027952414617831215690742199284036417815098144881329404625077558189761402528019729928068793406722293382816487500768815014703170746276887386627237408490274670073881455398281049161619272801331909456118149832391610546225248736134262915003283030076309210348204493257424582097585597097842139922772173459139952305263634891705723752207482014432452679124186928121379278711189222062989225088834688799895108607736952640441365762321208347981930717036014604527554803102809470040493376859262987297153000186466425421239534751094125664086598535008799320509869935270672365926845643723118473823747426687947570309748164156782232929606880269456865081804734144391894505270926362818302570015462551441679436749746143716830730318140003645705556178611359497862510947088819456778099309221507827487053137015717400970058652250662054651420886485474752754583774547262013008705754077697167046888749128389568669179509294994788555304671679987714607224641027144944034231581211081241196759890737885800082083695181880264884324410599310631898416516193578375543947384356856512989511626359556431442830454817955921587153152432787135785200294857471736349777269427130884463547655571208700219557226477796297406683413722531428562402743336193475501382538233231565039776055066188032462282214705785317546322411798599503033455571465604009781252422605142985142925618697235159786727629923703007382670054805883608380096378338385743128762018476252226907496881638636622019790620375108305270514975943588247657395556358402980389454133487931417654201343189653660834174311578482563550384512955068868120065916347316868304513094613838958980889508971219146700559168913305857988254414681139108266944802397284139389449052132178162125506015872951594476546379837180364891858439887632072740221684230128566971118991010788182431357071040362893128486357127868014293536459214205673056312651707592987891181528103080689197665938742257097093751927716612934453655840066750747218459497583420826825090922509434455261618491262459010501077855453784732364911712791818261121014410110032132184281070203800680617066183283023015011066792229969776461903655675885795329740842289154532010458476150200059140751620406308112710306820306505017163487684291597333719402908697002197695367080863665155844995233250925529655397648502716911401721074981269173693736828687880204685559201608231270634470852253776087675250590285942994890732452998667645847308340554993349197562474189899599684738328286216126378692316623129726698242930259254310631395786839038773680929911233347640930114410575184944075709354046891668787902470380732042825315896185903921215921672726297561650139050535221536621985946182882849837597000079246905845973868915187505784926878200287402824125194954988668367418288432011068109292449738668939148138010653288738004762478505942399094948206413512407400804831834046184130201057714612486086043659163165640694730019171664647474778912198806368091020411411416216843153960639261005428117527956045774482809073384458290462960912818490244082862906918983537135046790673082891571891269318413183672612499248934186151243396527520183034597060126115499990552194147662148641612199489895935193487571716111974799742613781650546675034892938548202456325525609568642725801502525606857868283633376359974362380265839132318321252299775095922398549003822234121359516520986748051987579291117098804278879699541746335971367719429067965899245616918851064060645885032788276923545474463714865394674246674400759054095418637371944865908598881530222872203536203918450971843118295866992890570668605548585175224142134212503367875714389328426955118673708071337450649996690653719314302727980018533596141516295939191979910460233828475921842070424678136512752035980176865936708714736600934491043041632141942016187837337722798267655394034515968045237230139995174047816964101020215148008121359523162556252087246693128793466858827660081088371347980615398933994065735787883041223201979098606630170002014417614787190620886751525584599267733757947225906251728656178453285553370069225323984123113939368470714207886256990957286346002347696773183502596220911631881961993396843223536887206001669149591294776686284854222723852852332308592782811086884977941746753186525119062477532720595626800536036613765231808975263070794179545833657560195419142886945539566180182844838800074091784592423416937241415841983418797293009749373179239493766481014466068783564299237000021316289614744099004395913821591790192731243600505556380125775271887101918553480371524544205860990342454567460909829465618800991503544258874100097050960740452475108780537354587234315432724556982103171152527846747902142769158147308348728564211149052709391053423739198903325226602036055406820387253290643909811688309576177997958673923368017724000539445124244512165047668826184631501799484428765164035697448679003456147608647173063034130754494602581628507150032788376948667388703374503789238900537757091274509607760869358276146137326900946290681604750894564927642815893328344648487023885579366060539268788562781945316216895523474284866692260603883655829796644517293034144176478116229136923703144287128610816131435623471001573024664123029841609843686479268592414374407462507620156249421414815642920052972420413033992338787207601775784292272794724724351919077543051099529002659122442509124152715351305805265012768199021320307653271694837755455601605929023715763860224730740382210779583933815684258588924786160591353469212982009212951290636647888870407538004389839919492579801381880010561098109748143497520894343140634576228958029387317440946394633940593098030521541888906986912670203210500772730003333277707237326415744373610586398821753369073136139526564401137454630475693242603353721241908184109562914281736837676519743515707494370479052115556752513136270350713500463064767244053209752571759178708351725685691748754321002013604918201431728901673183715085412783183831296774151961769467174881146380484273329083087605774187188304209741341034121412172915214659593240488422831694689044860358255445030760642413510580223421560023349446442675319975767413542755565396571145346714805724920405177062761881269580137073268587390328399647787221473207408805490186542657244524301360165444096938300629834222181763167345083795156193584735705983938083383384900427998363350979758191707021832081008590050860931466075952940718826835998004026209055756896057363294008343524090138708258136727259171956346598512095831627669979877008715730960474042704293390259066335382162613258826084196373505830048155331051871905491158853534605449966945948215803847937843280250394413649729855621171333502555489002327460566794461358059281708947964050599678092766928187536869327385301138281589986891423039302777920816920390232900110427988073948275746339057173033237810061067652942365018519705323509297986031285603464461498468212006222016344108678512564235863279630221424867481032505067453138449127927718106221171189037837620989930945821488146348244669852445251157348007391502020781473243531475564667294418472620373175699004591714004328225100682723309387708819554682737760422403994950245621104077094701394415460638930106182439833328328040524162309111036809930878313314089232310374791266636382370186811524971473063805043605345729157425461975008114149773573508263066123291971136779822749375043653453467620953872547026824185477445900196950770608860492033752332320000567744415855770284112405913625549145805714004874345656805402566792477461413209449943970717965788563326558261226758801082844075584424141912620438337838400126108308649610413193622331552636951808777691588668830744187686183292205347542487181696387265496098190679128046011714308581396142022908423752988271689226321561083767641294958478106849417858918693996402809062551700551381766229144817520977995327416419326746098791460128494090999512985028796759622160570214310616536636563853110217634008584665305404184051606824636128541696312552308434712055881769008057854047729372530258724164250429043422633267259510200828848800064059031646665508619067762201626210762208572556895216115505777545697514874972685284659729099036258481909503873093996335316296791428069149289725022529809873794495864640386625348298292876566624016777802581966975838649224871293821076046680175323858731885516976962400287131217755707558463556417755452943176906641264454400268024076169482789814712441303075903480789131638930608998036141279718305450647434311665053461157276966633575068867237952552030954594075883080758191965760334910707966113550617321755609093495202913044187580869096957183901490212330316702029747339017387574022448172050282287505294250890813738657774580723690209071266835289349639848319279504730803205106170481128743096097803870875044396177740957169396516382382177411943366189343850515264772037034599645319878668542743411903294461766870932924250211891595809286571589019498546093598191720387230935460739240162756116713738600121509867454898188473817900097944823440854045844501752944296617453711289048559525722703908447280310984718355627934884276745460498739078904229805003276969910156906505981741865111920511841987111512963532744713431716034624490029848252271117665082431476893180057656949995513832826296533402915266063016681255186247849825050969347067157824182506483280735726845528094435870746414979856476414982502344304476131925218678925451470489964184932568546644450308037630758599040062057906414563202409200524439584616300100377388803820876798736292848852776931406011236100888937046393347475672039597609745808796088542457864259969617848785111160433455883467830975502136554135590558260474254680373028313394882050903716099496995766526381467810616320162695735034570954442521124245849772896209770735135743193496678494737117312593169944736462841892789313833892598440595720108003009436734827977682946693696296392490210464900638179406479524884681619482203794065554962842363412529489151222440332359087129736984102301652701434325543751949835353338356050694176001854380171131035264054405241212048618170873108238689064225424337265602145527313227585464484379062077310676942755002464481935537560535053365880314944900009698640986587157641275563180664894061015224413019512017192309402147843694249942335194228048112439602424247698202753886481668772014870304928316838313883520428502293417311596113741424831851610241733566799938048454097688785886977278588726892969094299817925739337960669185956321005596962414781183276653176807778067677653187198300900871826750710494869895135413695316445137117523413712431494772566671257300033492299865089380733704447055029827319167630354712657049824204348288923699366860154400486959288429515318340139607612984575779150272770836603519854888295091321139490249391829234531974554207890544274198350507185509912443621178304028192524571918465187660182740554972009654249481173181443553935729375720159029686920518032920169503970560330037755612631476434732739286279195404647098980990400461153925461739605000788453486135662520050128744571825010903799911719863386834845008151075063179171985332386828723423403517853604503097732271793999933575282627882537796990029011666989780639661611659178468346978787973121360563439085028206497253916520485735799461461336637500090758015719192802422262187698647111062692281295378867088343112664022062956055363752151311993685408297676942961518782551684976922891757815434295183525703506692493495639623667629508287471226061784530079144681252856116407743768181041212785309308316946611146528333553244164408301465538320599625623546262691975935912280870301911087494578729791805978439585616964591926511903903248969767348437310471788430736664292297396796190075360211059998080594270443496115044496696292588821056435390377507106549665017169129362964611331182201145212609749624819295624346578900119502620002014833357863688908271913054799299799995478802635589269790549605143622199551596128217966779712064299014820676842349042180973014887292463240613716384563385931866315566073417128891717750300035144627994358570497605854458109870532490811821206211895318144085899185578250408829209273015525489862853788936712993506340158150835056445101289004307328219184569687986114934766767250268149018154345323920890768072792405106914989420179614088890290333838774398456988972559242537605321789925821811138087947560426115227994083278533146166616905921625971117756406812985689258401500142025461575760522792177347164732914831176858695512507359912684637172606759498880025095319168477825028371010709876314043126486734998317565680411362400041964700401716868123133568502023074486996693959771638021047159995284385242301893300267418393031744190984529895675939999178043117579361955826489252185744304209744928916963384928795890356372863506397490619461332242713157828911310705743327191845816515920361563562568122549167956030585995378628268406458644492999187631354872089848282410712052435525587853192343689205605453146610802994831687372554156569798432739303756630821870742425729314950838851523524103581928659975803599789366127098495639223337748580421360941026449941678678755875802995665808814403874934929885683002744308242053049053438906607643080437724012785417288988986189140808787273410768412406152950051293531205073877309965894171605488244148554415757007603009002818241609828524789760662137361695847438680439207104239046254978143506867763155075975698633480066530417337427904228678852282075881227538715913451833185149074547842244965803719823111665787065565133472226354429590262178370972274651987376540673186437299698605813559784123428095421619990928893543354262638351746099722726745989050778812269409567751986363503063951207816827826755026594910867915530138808941979232275840469864688152280484980556199992168553105614911957936320876801041102955240384628723108171602539125440241385926303734575316703276360082554157994501637070605011714747641649525357933034903401748095820039551900067145794223941930760467528531379344366490015184987367179410779759460465706376950977063695664245445731599321906599623750416387332056545685741707926829006089979039874961745384873728740186567326119153242184940755511086626168802552033662689824929026977519070760927479082413426641130360912415139650349849730077196893464336166743603088340497538845269054748871474023763624784934483696104352736396836797049966491197216254036352976183650949027626512173429667570559536984641751184273525440245053144904078743304347239719445905335856860123552034690193999138750788647931253723501093594426409776894436227529926962724321578770518474886341099907438562154970436791511369139148945692234219334092468125838538647246455258543306003753896687384769757232305929522470588634370995512538810316208669005059900538597617778458264151997910882408847218747166042350140729700282920788431743591687685418053288722921499515916362421011788822054907753187717244241666084868661997429438546287602145430387449727542571624447626086062946533924349750028574525066784922803214866449653991870147127467121625156347459981368486268903242784690902520506711552832477146885447181260502029010383895097868105836715435360153217693108348204049236053966118215031455211186459348858240966094277887309675477759580459604906579335128450473450592845193444105999468449092329591186600406300070307067679843104145136420145599472370413055017490580212397905424868752308238895392826485651267697831281582635035290776639714412188701851580031351421406791113743602916105924841485053220513234187123669947566074536440317145922666804140854608558118277082134388157033562359440747272015737081739137541242341649480403910206323354792117284629987885028549518041336768113696497670291126637945069230744623259819165159390678428123987185992312935603564655023010758082513630072108544974570720903716912125022297857157224999145505594887004638561984850271769782518981681106585313179625013437344156861200385448070169554849379739312766160100307466530083078573350999576457073843946549110205306449334551832542509251410731090035072082876088551592220621572364714172330945348089822144795811576909069716543256567143183375413737311395115302364860073871170068110371332556071501305112211836129990335940057894408124166561470574523975852625986504813118153671687083320294313531066061142330184322893182896967523434931524482968062146825750576714999046982167592659328304774491491114559428070576066332438784352082458253780002282469086131797185309039827707160602929731455901419486965775580692024309725376281442497515890769673564427139101313121013236780154092378801881968549482621203776997069870548788936347254179505318066931306661941180313793741241423385198919321707225891798846650938437891977121144197903107007655435710697374199858478617068602387132986546073437171201265943797243418043315384141992645006623621176936835360387046846103981133456144582008955399154391926857595422249983359945135229470013555427237652278669055628421245164991584762971179954055436172577636374121398425386564952401450338776605105644113424055795072464185121212705064920676522816640696362436576056120356975320025681693113925963179790607255669956532913097868165404596561274793042871425582401897841300214398466144420504336608216623218191570841508578730702511048636931793501617723018213732401982883034259419883481775767093820534194437562264636332749847841992312374763483199680760992818307621841619706855674902797012795566308298088303331484490570345608311691207599058245870258194648697676105389576984036509821554447627633249089392575940951739481937262886733124482003542358407434733786096608282004937727403407156426550242007211513610479537513853856309307085379510020365102603177256113652653424429983460791657480659114190941778181159823632165179875214972868405641473983905951109673483066097715755530919593477387911711876657973157389425435368672126671544315400078334759686585512825343364112696952830332527272022617767612069767972214506838107189782467263680631812767242281454840371415003439420099737850822598488776797526941458866879157401222983470208347191715500264007175027332034263100470442661940818829239206892582970535155857720841168664872306663834618514377536709797375619220444991298862494702736210206044462317427849097954999377457235626410396224654735191886523593799496898936791356149810179212823866695894584844748919832859494647454757584484609833989732442318524681032488693643081291974858429315440376469673855673852319047281912465353170760275656865442564888468300325819445592272545034803031254042577761160136679133818977405979784187330360255720216471837208700902530056217607988811869322992237031038969421477439167881879084613765653365961910046090296751000883977529890698721462549680497273622648340964576276367872254866250694333126237966001455556062670563409746103716306918338658343590244442505606890471117185954522899345351530900816701162979041146816677026847510627698759885360458291485952549873320369383603974806982938214075574204326144328227577714952343144996068219526895244137419947139804381863695480049921222904319264382620406716888460248941898479545058919995290105856120626275356032582719130868732922225726371649583254516772703642383688535467501979112126084983858454497905361369107168672301507215381461595311826768024495447979095865544833053367632345314678067336278337419021262628104465385888940168445034186742581491618645693732935891821896337632374988340445747213444290890088162079506523947747409935869463838490517196933451824719613699356073105177907220173363285986393461530605406778312371712666263707829766063459071472651073315712346947804626933119077562511388553900088627711580425784000598927360490726960615780010479646227684239730987579295798891266537851340848460692139673494235772637131819050050131135065225762002552898967450016141132577632680072279756260005481140157583260613355164924158929516655466856659487558832285395096547472079691540813109662617809679731811296365978374060319000816573182900536691486068319332466441633297914179603677457120359277186997567539229319673757177870837022372667856789195435428489937382017652954132752578302737212355483033483374648194897085710434354111206240995409874841262685880372759475509463294357499793634662139533298649638031756703250577720275146487267417186180167275099854479600764852667017774763570610702895552566897088580901556911234764119001871987001661808540225614749200447112740545250205461885841139991662443633032302366509189292146496649396261378950585838207612905417964830405968883314108962656718527916680011476267290051489289570942945841579064243672137511779407065184993732044657597945481850413326177868726231428629829815560149333566322151796464682037892373221277575077884478195764643563410793730097906288970844632976063075312747701317096453045389494586714296717305679889254048073445854229313253915902891663724194857508351949035180844162644942593892965065874883677746501644315457773359994186484745140179112956844355787849622390727387635418258517581230378095515891078159049866666806651924604362204043990097048521595375629469876406824494934585955373565102824017561328179010335223539834716473305241394745164247675494371470100323876115996975956621543587511062242036155479341962970511330581852680425713925022324914369789421069693082090081726199169760161674172535373504973429784477214559409618587502402933030697811055913486431927744803963655427352402866565729467775752901078698229091506544666265427020962774844686113716364094499029906085861400568013755518546712872467194827951036457129840849880041662258919282285358851180313945746276882371977176711874774231326605374282424480159516193428655612616569634269783086207514228946638509736822437400395537326565457939420162087813320481167930935751272619969453824513780078519961506233817383779394676118721219981967964545039880516514852067032547970475893281889634288228673876426801451636932703412803591699306480089296515352102062579211108646224745655545697632742657807892172566095083035387783006982304328408654870802464520970295938942305488551024470487273750299954841930259546108599719567241981338181061207855461654952574313066569679186543871039176940058751678932558581044621706071318220204835031486372626105702914582007485728041487756956213541041184160139463875639998199363609569617440876272623370709750656807047796033446119818961749920539305798526986404846605301196913232628330203431089347446702307227230571727305844216337218880032137836914453952531207017604585237803776783294665754160898578810823365737322306685221277600708992490544253898688690973955390489393714979554499629913013901990588806734152820653335076925911222599208590588859981234604055630091709574693317630519681785722453284240424097744503542421713846798543250329433283491280391185319333487194254337429738707964795326142206465956554571710170020868700431771182587181755205151186134643499859263733779948954445556098505815782773348693810724953787921685557203030063350122184892264622715055580058439702385563246933891045581361239108375987387026028041659095012950815662515100528279694892154845419625861659696798121811516471889895400223005796841819978961456319769849449845675292602628627851117367173132281472178276726939385953287504640678440942508023844758152610521007821250085343271709227586779569800642544527301561878030391325820980459587949063828696699447516396390171619210184509258013962779991908495405731157260335234102233291170525896553744017329330445232880990044302060202462489273257022242802947134112937892019517430412043002887969048160083594700658238017109663858181700524992587705866038247885791820594568351265848057454225705313695568724004640281914882828672834450860082660630679111632162930682346260711589031709067724385091358834041823672195608295624174349814650786994906548530219943983013864235140626722065463013526588093899580192610332256764996210588114992805192220688886636524801328710360201467050293434397547318044834421510269125210074509765854875098083515884280805877014492127248043405323137819381013006814230346442415888338743401445527662977217159510004623248482617915778388272334915340326399048507511166043136457366077247349062699956426882003059955172762479997969100251294901340489270813728162786150691183592060096790623365994093772978429355075357408757367838508827394275579268967734786035725598546668078768209249614295298033679907796517656121095708490439977908526387009739016514809686281387813700134962826335399983213070570152410960718142800901458229824404694627366520200360627904286453852925507194479440064145441542375703662913348250036752378857882377040528203962329127634279382606220781400586219163385440205036597975838367492838718165838820810004111442662246148863700393910508560152143611997756265727767806137808775796161441590923985479026702533260868544145967678554523877996147387250399943455605533804906541392203463236488949599615447347349428728748759079502165836873287183189126187008228634878414293048315341443975548329340215632333010427828807848578863539422804712600668459369233183190757755449685022977743596154171624233665933683917789798804238951716631970552297882745896697037382130934863695775698687382936966804821953437491093349773080529260298669099609472655095016814481406083622340610105810627454191688671645706781445001288911243472856758842011902329058407949012880240728401100156650853459380020211331449811027420250762282252286749192477858399866810802473169743237659018444379532747398484124337759962583390954743506833532562306581037076242952203456299129803190163031713267371366573116544026237961907803778289669253679393957192435293361858563536069489748613983381791727671231849828456569492986238932513839168319617692664456285281104102123608041871053880624191904393174924813264588761219010910540719417553547764111781638674551584710540990839197049276990178276268473105271699227919211522701337161125752148096751045810421625406140910420126082158103512145974052675014097734872069006629832183094999453794073336717097020573209770075357532924345091494818460311713330236730422120458623456262023936770569459178153845031777442244772983634486296937882886298650973601904682714579218477220575774430451197490805946005187415137827659834833300448076807432591053371558833010618608118701343684417683395995959076693865454082314671948089137082222233350380142928273814050862027757194378639709896673548962547501649899004427373937668933668578941923231934942544661401018552178648739236362436413320283310365802771400068801451221972604805694025265639893688276880295103700487449925342892759220625374221357887094319341678173953244249589784137900253804493608536120695109114904000399522026099831905013503184514115968506961246937022952224862657219710256758707730470914914971928835220970910610792629355176724855068146972379631206629137280622507880972260915904445911619970575341790123580672641421958364046019433404673830895030769989072779651652558119676486475299863508675204913270540195924010578625426160396137430025297249296019670405584675216505708584015083423614415334163096019060032610964879194215791429747901552173465244133879330812783997962321346560500442256935708753569610270289561910878108608668602947056757808074413772778023189677160862173083431046367969642690555291399808975944721314431650048335681949049128476754474714943781532787741114481326230735719511215577426597784916586298969666924482040365112692470555025488697576028967369029830341541906641123098220979312373584793686764828937344693782417030140981924031909669810768868217959737249597454219347150148072791592688603578871000892697753996087472984825368784048317024761290313750029004784341288813564776914308517345772000435224156346591411024701739894687488715319609532414410699458888336782385121909441435906996221271535942931151528975191292216136518689704662720531745249017838017357403686973977365028322685372811644585067664056110920049806887961791852259289901877192160113773234371856817883094766837223624011645702589791761398172885845711219764511731715840528721380785849553764467668181545043587003603452534694362408465556362065310659466421175797443254104330765506825716502960407724814255180980705391834334820288325501118682412951417224714880973575971165497633726554252776372208340159461958072116251699848698433717204295574800494094795183283675726384450050091805489733656702773187065279048657885804520859577966070232460454509025373970288891713399634047594175940378743805301249974344194274529481566860609762115224930778322958808527290424075614319161951071752928833868330422997064401050590666985627270054195185088500870271651877552905937337328665744898368442588250229734413673267441435782347716784523572953883504918663871488748985815386756481408752328520704448811999856082750804169525602161738480330895659894986919138688488619297810621051184184056694309946690933494951508309763732892345673930750539459277289062232366607149154379922216229524266317662828186872587919661977909341636059023706263220695895884253460708114446573925136181116457683584775749149659347039822035632549816388978240596642344741983260812254563523103758081340218017406939662240939787350983826199170342802172294858398983164477362267097489062120535004044935138925995528647411835306856589311531240746874561656355336478479096122965840400626488551455855994350462923221091775420616681529651233468614160539961289284799360195153713342547500001290474012594403006069536850212747728647316811997708255629145611665085672052908697717918186621991479805725606761357871095831167471504769101590920536545795854824291465030660621868174437829773971059837648952694452037369263896971584663437086513017882245764752002957905959679785379620681069979932455671829455310980632909636701111367887321747376681758580165665620495357490880987566042330784559962207503694171986959390379615204527909661613462767670445093124251319707986946224746984805902966355320659851834612388170061435911347970936677551998117883095967508892658264343857761890342137521324568901070573479407581907283444375444373557059228214932600464293029957582044871577572381510575058405727462697825572536372673093340872283381041976612349231507612839092821821105932233926671095354265748499709330873117115848961737475717235942194664913413993542823667091399680149031286432794423812744204974733033721295909065627819746873345993346186441893261454651032775818378806264098371486928934215093396130441843732178401282646543168891888224745535756271257018884099401017159185742703870468063919613846786575083086361165285179512556389126331171535072098980290252436418169005665708829187279146785806782633652197711289755906114232159738966914579692645525952243803778890698762135173231115895073473901645933143734833115740346473806083659396850205483818454998191909183030884644328597770690381662580817252743444821950484457971071121881343757894588492360967016724623583550372841375556564710337436749301440525824182061061444866502965457121635176308108282821534254138065643592407928608148686070095086554480835478338561009093809649042691232950227139330070213414951245413900152640885066628873942990962575464579301401277148342071573283976288674001153950984609911210015544228071324518878342827509027146108782202920510464993895851563042950856594673304869713196438759149260431774064526760809794981983644085534829745953159998087367814103968314916538803366661243802525444876656585647126613687213857029915124019994749264582443760617488878222190369567407664359029181138099185862940647733319264151271205123358924477558473516182366456703882567489126038371591805921047701437845608655164793797376818993086007021034855994089211390890221876811200261257891683553232557073737675554611273227115813205216707839953431704611577981172729915162832969223600652069506705457784821660690786956274310227071531516327638164693891804776366727552679340169745390629470421306334442558836365347863852689812444758327254315654961229926786435254450877530326539788832786185135124113594405557684298966324966806026024044548297307822230763915422596084051487381215857460589153580188411146357632518404331810708052567619758779119587055043113772830422461120122271475531173301555556086469314362510037421127943243545725240192888537263163930622981936266109099277817701099519881982382745323290755615430083834855939271923727408862957110144652189851180189613595120405237212253248330959216566303154310442836574110060856119777050298915271215259101815477124440783007292905099965985796588787976816017489039398713788315386085051894937655877633250855738771405909037382342151393131742220113474733493729968593323371691168146937093557324050879357520731598371484224207281008594806506833486400357402852809427960356308415954634734849027966993802095218803705988442055835473684775887491377908320745011200246749173686189352292122528847334513855433604554312199375776215157759342670479064449616881877064824581167362736877799982996809001870037824221610841741795116767412960987609380223763992191333225574868200085075571236240293709267346129131069318655553190632374030955468959102760190450039747294373811432095074457341366321843319555393689280206094862409216486871296087617645664227108498266491032819679658658419037178162556629558482071586302624704741972455275691200310683043235207880038404925442556010851165205819109963223155922900131488843391217038312291815102454412131025290999038610710335205213379109478654516937706295294404808584856146465276211169075992110997386107557225693172732733641544519884145083821670565966049726985501051438992317267948227514106566518226766770897892141778953846000999097182275406727245064031750212341564154459606245966027262372538612973416959675129233144860782593298544783293744212623345969548975442266076770782009324807998342898594167666757369513245744508158647436253257957356845144424170786513725455172452024251567265467581017810288070430297570830011038445313962411126568008563961668858185026959299003949580314072601348175840923053821738924279897647307456782834078600258755861637609561254446126038277426018220050849451267688983554121996157190711618523344595734334364156393558461781121565395430925847949291100190486002154714304260543940583712763329355043105325786737603513535982447380114343129757367711472686077000884668774342680064582484178805318906493389630316759333936660463146484821746206365352568401879501110375298666978959837031391702095940414021131797523827587657355112279639936480193576292444263189175205504054550539023018302847444759858502894391957965674062404429292612759061267396971101257209582412857471805960771134889373428563578280610065062696622014368342762262918857851743551619116344459218247349674049579515289945753127479357179776310572022991398030486243648919522768727419034296232753158795995546138753525242142472334795059619826174016191468669647554585641565933392118275167701348179150895724396532995907741483687760396345135488631385279925513595796551957051732091979949312655127021541298145506534478976600803726301819470243668993290797267932276215712210148826121532266206842201046054056572326841804686715948059353651432976577724995645618103825754337649671971619192108306622749968906672200345288341899131517304782933031728808781996696096214350860376437501296220960090197625940806255554115794956213760529666511041036125259811784600805297504771472017043692500194939765367528216405105096028380438665622806275510377646484133618413608454899190272258395491116588831138477814110526756656405072210622511579194509518113469191896473336538811682258995549385030459778502919225548049619949606685038038318425674699912085577958532724288607431300219693980710232631691108960913867290925905369596644617113653957938965688284446381071897350957045480420729389496943511970456907810779062142415579514443794670093279077624059254414479883441936530018174754897070366613067295274648986349057708097934482119315329049557957196524894881339716727103104465954962839029499192085913191749933300008880864456443884816262413790299569108805667707640768720105681896585140362321428001819294600330082428361080684817614435708355637829164600506166250389985822571707509191724941445443721609847185455279253386881358752455966938605816863594422709699045551252517282037548051088786293823626992437034989602776081304000207852966621568283606589347572115308362221490923878638840121806645788957335463359632225393882796266715358356149792240400821249069177600155312841867391524646012854913129732329374739828427213955057473164807520299643133056051830245578471776629798779688950849812047265830913691708269133386851127421578389141407395375783277209970176488326573221175669125174296675467538371584785421283182837251705944616982364783439320628541689845663215474509035842166084384905621977041467916857042464349294310257461138115014720330707006907924695007373953907049089492688632976751260087741712551442573502915370182819815142877390049341423789242395827334259546306020278941603616745526427095484795962103536873554447153376968036697855412075832157792616441700732279828802733188747162582001154536330950449276607494523369883436633148343704667523111252536606153252123659228903436074653706154789805477073696539688440436434042164990686536884936981433404128636292806618052544423651339320967791403386086093490516084484337624248784110764985682537970830829165731015842837040348357817493051864417128960035454584446667320057377997953991350833806364093152961622136404239371952858805899254480992178840037809134178174828210557967575625471190879542866868148311710466063136981541872097490776947271550350414362239403682606164778547748743153550067791739216475567745583947211864178741771480311398733422479357257637797309681307555728135235923660782097103480022983144037692143841968270971524160290299152300943784505704052303286591570472473406171656704894316348186427600211830006888203546754356491036982042120590299431161523941641364544517486906944488938650525085802424219077977230010876485542060928745964372392153327073102638344386691797279576545529613593046674542187716061678623681306993054994664487433829503089092430591800193991921129674605107192033992503176968072291329252924243244774234219104384102999250900201052695700290680836824457145195167042229768122734699620691985500720573546063151435755464918507112512600172892656734336203064307806163649698658471177752720499375915572585714073938157857015847077472392539222225749295621524200001394241865198021774970748521527230415795618160712943942169778894096813151892320937864573068934578454652933380951712463914143477381565795683722584905864387762663074094484883164485579709005260107020512722741772071854648756517509163304203455908154636891820853462742788279419102152347480207216442963273748058211976940080937803009026115726421437006698047886780721850428699999167086476557511999000370337672957586599031496276094411538124828089540576787666822076785546667366566327948120819375181799421498716691875489718154803412991879854063921350882094765674013973244965555813374229399136418224130567599294115752854627592285120362988373266614264599813620208032543349786648463937774039237571958273695470265122571827239061510302131942862621917047104225716659892175623270460792996365367551789637280281510498558580096688981465124335720530373752190627458217929997474885345616069654337791379900571332895763050552899474209705009257287383850395673734353750325948897377609244334718124534381984054077857585046972908749971158599135792625191496157828528624421098368973658994738355501834445270628983296575006985737772614513949190702660903268199848054323447932269136629182573841970514926342937117219688023112021021547340457078821733234591308163075452762462798112960903218137480772665548206057075048249566661506561680705763529629058122968763271591516084975197626131143929217942569656674439937533594655454574181438152962346643906886014027814068500251352316430443222681119033965386173431069187642887623794525547122374602436195421269369019884128948092004238985010794241157902494425418571108301189302991481714407803455052838018171019292427216178064088148860464019194253415007234471152825755527861792917761956849760144864490512011324393209481286169131856443456799800345763681145960605271031755562514247473602495288309364014282639714532814391032366157576372552744080559853420845840046292764861501506067061854516371861918601395250383181290549604540381321728258226448387075458149688395397718155725268703821719555172783053801255934303230020933753057605380498514054919604569237540010079500413920599482084183287209718093302618838476714901419404920222950454676298219688641944606850450694941969167189135320177849166312292053317238978692830096242570583750062810682577818640310291576393848645145687858303617790727495771380460327639486344443951175088865065841816327398580167829119560719103456930178850460927489714149934859297470609974737746389434266802955218335696640920294280136855674631467134838761809528569503148216636475850581267999141017678357861625282504410442901845973439130214986464874078768332129659367811695953054649129157471931270462762665844157438653906604731152729639231260400626914172957205381476539736345077272408928637900676185347758127835387255674664080519434769235005925801096355057650260508281885046592719971581658826589378102141654808228943791865670143732194299973579476679964002749029311750236271273970847544515816831144582616284120510104195462247542519348848671678916020939517264564971117213007636670728756328999168349864021578552816372377189171439228930913037980718419411238741862085775849064639591824071075511058441530605697320746431462967847485792711542463773307112651702160986067163561573027384237090781047527140464918685819319107951906909710427642880674824997386221297404131955600579839300098932962692991136148987098620123940890582465348738325286150077108588239865613263854095302283961171219880552976878619353132644042386672107309733191653898791435722083430297035252450328775650558955203305008751628026564731608786394543618304917708453687904362952482144549032627339986037197696845543239236015852177071640663037970020161859518680920340901504685172192979718134317544690038611844226067436876618674650489441618860634276907861928281943177052435092835423069151773059852956950593049999316013072071221580758464843967648375333251771110129455869867648623198642958488635879460571007287111399972658892385599498464668335795699110799316339944299372473902942717131982672848035889645259261575110907356025469897225394337931852790240407452491962637736170118087273430074634572616910137587245091615047975039122824601211108307813666457410153335053038177624240374127851602553113014090500417835960487309629573973264573083121479758154175626409483981293759450451506837704351773224581321912385054794791746894382672143252281841401275398335634045305365733430740786844995241487413426358476413977973964145663003042643298258774788256963292791739616713427429071694362563490983180906554202070449041989507595539806375476968632909061146581404375125101379728016631322977683225168248465930412335642905588124577987677938821919819162830568754386717729559285431411703253769856755490804122332829028520330565202489329912861811394938657339542755592104027165455753280878099153954109453773431188559627122129657998357341181968242365819308970586672006226070993539612316056278428718222573682417698179913139522572085685779498059960871360045851563590293525796382651207760898216621323757684642930776190215557885043947028542957710686431874030827822451450386385751229437549664291637133955210583093368418211145470322584391001975838602684733317184813140192219232389359046688192813917211039652042386023560783934920400680643126737727514061656156344488010015476426790747254110409762739824869346095910414054184577955155698310626827058604838318159470098904316784945565135935955776361486397304904443646561257318831637512146542015695711353112854104947624917884009606092971737452551722696567905268824880692776586778774204302461765724848004877820673343671902553340060418340223361376136557185320608645193112864318592041468255267759307232796506452098157526692961488866578871683637761754564896674102833629545839472767361414792762453759745533903631300968944257586470739689199953126738851371688825174192101628009509365102061048264163768241101174930573370719719895653397429191261636603183342443355415708248476356785615939006184098711176965196183114076232179692954558634243830265452799248623052507606009490777155588316865345962916403281827281448627213117698658451888011926518025959412138677601177552772236190680968156819607024444224504700280056195323235378125252246052223241771444440275422459920703176706180337913683363013565934722460344131420751108911010349490722834755611128506507958327603590357120167255052317918731808127144598755060937946078924010695704593121917360586165925439397218651589940901078957990306067535701826689509867398257435479603794182454634961560412686822916447652289638999558423105535219410416689746754961621646917617245297378858497381846356517271814518390699753492132425708017169560612384441061375595330316255355213386940830453321956499296425539644211942120746868840337531792456781217091793339382347610920606657355876533484822598227001046192813176486187003077057025601063970758422370618359715768173926079718089766948214883789333491584584733630247736334515708349134315779842898537195653520671251200489507254977126791505848136672612715423008738274684375079187925179470926154708809809640749616897512998470691038487448829063148472297127278669312674167592651821674531094594554119632976125942716371299387452657484827794910678845669042797316987479646919978148771674730717950752404253362300994806408016403079111068388332794074863264510185271724420131262741970175170591190206433059835986111352590799845540479398208044679353661087487483019691843821859070043247955575106047448123948480584329781894207588859096438912257338310000912439696252629610034021365861908051413510557165992241794359587418382514916055691573128594745516469401948306561163916488434524356632398370747079200983362407057320720005854259377851016156976273129020994187656266194576355442577317765959728566354898444694424145371622741424414138134270297247929330231601094621063684463893695280221293371733821144265536800229829308236949874484479474171907214972273754464370969783349734709076850113403317985678647672969977376807277145750539622959224626781631968154835787878937277278398257688755542029291957076968585215953702638141358779249029036871545181483773383312276940394106572961272682332713823543043777079445094764175626853972053981191139816185998117719256152449920593409104084765004267961771814921762110010801768033796215151321016180437900954536816603011873592764574723823981272119891915628384306367075468466605739428966358295464424395487286374480417139149166185360660859233325972424528596398958827765650980146528183924626394766000640170517850797065130827266639237869788597439663038201889065692387692097034201866817325845465289624683584502468047795264873192120080377679861971503296198234918853383534600131105555491646092410246743770799662057769876683474174553845751389171245108400226614507916831295853754392611334201391817107505526471165661787543304212344340929435093747938390172640103296083017944692214902383653512556668095632686178819803875716159800208516863427902688309968974817815096483241087258897889994326137891471821508551414629189807200233785013615941551830308089496915859463673736950626660928538268476842573612357595566047500342958905787729218654952131440074762532635530452265246797403216812486357165365367664213933330805864441828061478766099160403125129821785253984871119250730577412464346699868366419925173688491700981640337853405226121782710348269854293236388742306835710787429085398948649763487130743812706263050037108134241853509587077312296081636180587733603219957139999751614648663244928183855563267234229361835799752012574737292522404203660508451618921437946670474856619005658960293150188850299298447074681345981150382963590475463249324624544336465472129066995815733602429624176104778161581103847070380427008437295064827145710037576173696550215313913567921290952233597231367840456579017863510958152222351639996803664396642627678152712606205638266511064027230059211428619688915011422481476203108457193461186606412549081241726486835397570677078369187119265153956433818057863104206276787668824876617912540956478026606385727580267972406816297300280041733599067541444576801782896251803642082005707169339567368918671608183038530393651012935745529354934044036620423781238088067070063791983642725924443888898386726534601306713461733946426983008614641218054155975912961923579269684891512624695970693339776377324887523813326866900660210104945570399974905798429816116251427248681460780357738106150390673300438348926120206625012684384625236363460997941147376672020172125454657586504127509145657467616405482701510339338550100983797594187583433218329005202212503038072910642414121190972776618317382307774406789376060657462955892716425524901751709385839803243343838443303004331674215248604657862686341601198288566364996713418936380264863960696213898012552445928400793335326002373252638690086416387589610090478027230873255411909480273608229769860894050031728016333308407363018989926168322952471338947990728775092551466087411311272975226084887316681910866891663075283249746742734470016149712722800610108083954382497449654276972162640623152822784659195297279137314207202252163091161257872776603695929947647714973559041927057627627342916681010213365536329866068287027717393722629299657967259495705392780401187677069799629220492848809844808778638805349759064222304870666963548419337558257304831563382976823508693293562495110148963855316682391892244706722775871976583580379718765733712369200969952917076769005017696521980209546497742451227036455627082007372979190666297201559824477707876839870704535695584043134216757556284765459952392870603737354152780424298876688703459503064618448453933637650682839136195487514939453733091374400200851316181800432043893150078531064404220447277656773304589759753325445978486933354475946122731053918110344120956818152553416493235781336133407801265163204823801067221993857336459293752919515200396906484585758490881557577960221541515260257376869639092300054225257088035824839291705020693961303270467209425611504286736163102980924019373166012888220812494674361906113181453534446963161436696939690353356790659283404399681302919930936066347103824803273944288419279354176684098086775327378169953071695700550425180432802553853606864380954114532664192710107727324095347187307323427912667639830464728148279843564228508469615586424283594581037424140500644482873724079156161337280314685468005786908587393480328384872772341762157458001151224221905978807241023263815095116525973574870158415779063811779079903897148101703736328609417707302172695504301246965104303046986424096012174746025918300537151220866025281969165162756477692314846987988199889208909593799086594795468710622854259299273922666421429945452951818905399568958846311373656251300328590312530114382465766695110116615132938765976634024113809962590991720121916369732402663605312245044848091845182124947570391538483114415728516515787314714372667093431148832508338293879936168350421291923733078145266119100672137353775605058128711933137375914613835575495330174762696360258850774320627256914029758173203179288320911504829449883296189166329175687907098382098402837214363573923319926135460168590045629381071443708422836604114187258509009424060128169366609707327731053934152922519811884468419281277562926051517021389647301378298694022931435064110354481631933624195829673509248128451637928306918185925522680367761506677394026111251111501123814885780358585272648543937622542899019802057466516338297094466279562216100607407272719899309532389066725095912682013034610054135272132909567213348763685892707017481672032584694174920196239593136914915020863985041170104618934476047711666933730717540810418043092791394150118143678034191024943081086257420175616329075717845669664348456064686974595113954724074609977211297891561952614382629153967885013099184382471110893400366422253969018110015754922851240619237689675076776629872323243840440431493973061530242703147337992133238526437840370772341828879213084115594948744838335478643610608949427927764964025297987072308626596498634743762716430024146724452073459458269505502467895447157952349331411492122163392177660500783140863531134867623178403761819378542248836116353520337459547135040335547067678597684727478596550109442694748763408195099695309842036265984644712538200831802939794928526945028207416933254808968036215667715220146806167206017004640311173021728636936669398694842796611457720455794239894288891888777178338639749920155190846714960702842788042647354455386168739238032338816195946129661190812486917479866594335993997499067371616222565751417362750070967445964212163690675418776514380889108819311306188249744671655788240178197277896150367808076674861353624394312256645653679245216337325277944937049873587619621998708887597881885990196658747533115701501347505305974570754687028260366264519981274565131703331222028970066908227726502718862307420759253139353841624415788753285271225098100446387687405107113869164396255097951994708984852138790669160577651068878838640382287004432196460127104037537609630614453780432188361134684625678761300899011012064127935164798076799048653715979662918202158753881028936568038331444666850286221770933619799611138894951507941599193691016201712198608828908622232080989296346660365919459786610726691579052351654429494399083607359360772063788479511044627454301186952831516798669242396594952453987539560500428002417624745818771250070349595082025076316703285603215295512191160640498538410388416175967939230549044703366346138121179986527874629080142258678395470894349902267501642463332645290915733050832242212423440355245863287587007147783214356040115350236852516110488683132923692679182391433628357629445299880109292164951201024001419734322866543943403503418061892855543356683416244119132314168942643106699388113650747403038412204575578215655959281143229095401710495572107149614994918742201895858504737921860649431796251608675284969871356677754316155264179755774983788607043152040584836725372157839780774490230708597562834036266634809519177918403785750748324820014686604073049966166981681486850084627627339380439028086840977639015284313355844639817228823216424647400082632026994784235716245901728426985231567811253272227983776495815171462512605689494281945500414162081089201837921942876042840878241628157417141039071778507300458796515635485242068651962134866269259319523050566718979783186688555673878367922631560272467313470835017404385583603583225376897696073209494019361508280231691491746265054454827517037447913361809357452766269683078292059733423012513123629855146799322783098893065104524691116674920698232559484267825535841323973395921677329675565109280341984752786267693898780741940879413467040273619950260357092609805920111885676247899021708141322592535644299982854838026974707828943562500495637551055024523532533536310401386515382418041259483296516519951799065234576834345348851678593441813652375431643202768481085960655859585326026743703843952489740172146198377858539739840715250372087455231978562194073186065915839589899678072291862195854489491736403846527391791031061394248915720003451202279119010696612077508108883363009002055116500734861095819218677949072200509685665990488462323133349280768146388608988958144969034124994903342367126751171472672953621352990321115857139128231406162529572590591473546879425495320624280141804206419019493362208831236339734086800145433961807729634297648820512925197235456480989765376154188453709505552708210369334432830652436228776846168867027856837772065938575046832029411220078516381288561917887967881621676770860959822014160133975051216266231286430862880294017576233999387896281332694915464775298593167249956659979987591235865344600378103845507258425676109311659879246942552395515712838331399526346632119371342351676679975077880467949642814162049116027604535248673962889773694593155872296708656700351788038216449122743860822305549128540579175227935498411266051630832778574261223094138167511881841875183738336024535873658767058397431440440135214140220688424452317654885648276974157908925930394334937637077871349597034311488826979959498756887245595325920532549762168045523819857343799037129627821770468980079524204901066131724793289440430039115820637000511286060058025965246976732306030153921336851052758646943726851057171087840622119236074456655083983418412394914588691846615807854393341513997999940245889486447630190048014709322661087178124783833596431989264998670007540083478441576699868285031610513810587200254372073940380033419436618841754889902638590927593133515778384614024760714841966911761051961132603392813679938796985965416633305415848957229321941558667721791050053931068289753942756974354343113708080576997849626196889840120661688150332402325315003422212217536022004540058258285163467361165526423924959676804948573064954351342098067251615772509309988422369748825048322982860548620578376970318643051026244367309633067296240456864280905680743760031309166013320156145518040291291599213463614006154049187749092187875017272241735518625196751068162478318660299415153564527915977347833076742682697955311561444760425928252375048535731029124328895391111481119000007555404426403787880689661018312142394875924067097954688806396359221159293607060440541381339754960444236260542186495999496022319914114331174429478962200533871627139227675640237456155215246392659430822934877452593312817935047929600387723368897638984715878605080009418652057909024302879748104968200660666414251869738609132871946302478878833916156753597027032094000642883894475439139690660563694104437819649512208708123007746677219973711742978072186586929502813379260710464605996449767135346022867904967124372691555673805919732475132886741619514531162628816290898299550438069329482401046814695599952358779134028730883068941210422774743203431916013815801566870144196035586049546003838813160645122662357405349008387874771552658909319733789966486968775379556183431369473235754131332598973701371899091295573104268601768584337451968791279619733793818926790826012271525904032893995790890374576358336853956724723315729624770087785340122446329484762833525031306464007628315793586121488753261749758595431667533065947932190408577936496331153725965713359603659688886958158457960250433528160925210559186395116640390154943786500145294267336555921332096025078450916830555406254120162143800278804495388866164232149050692136336189654926422159068467579643931294010466850534210996622342987945062021276092783047894129281787368778780776348463095271233321874842949043309239626210870613102989609214281870373774187551116734281579438043474305186819692281828229640075329200097357583382808640347226133026193795429980615830934610807887703367057664394763402801328617801201661143059137134517112024249103050764510512923353118399590785988785326022620673263478438126895914596034824372454261053001337982464924806924876314567897646539164397358101122131828707115205542635359943429196154160087377500272554822040877652467585510993407593595162521765861058540805000120462776882784640582487773572177639263019584832668790028499655458332476132107424271382079812354254959177827270380483854984624684773859108988567612621536105441445688883101799563609719493228368166196498825964651949922033317294723177081295840647364601811432784286759324782246501703018923971706054876956540995550655310835002141434166317563701783791300176895954725781417056803992588774612286075035610415688506226046610719352542367531496963585220678211892890678079179319753045006182313542227295241968643751317682594769005560732726885828582389962146374879853499523979028209013382553908079457343174515914749408950590906433204062543714838433052631659292214978052523080684906241105966775795690288466794661591965406897048381903716879931798674748268074450012351979293589733722349481114873319060236805952072598906086207941085754355541397420318049881299971385159593352412758757756349450977818625198199956481442858621984528053334180522180619531477725786202210374424525059514181940572855336199932531200485982780484177490305593867487994440240918053337039614979593599379316665387060131544826797379151017167047469596054947333550606117396762083100980890461849086251393868947568237136053631576881822145667176179071423995890655865529553398829132420976035265440938878211096693729124720254347333359635861508332298747018091987861389895636710870212643397239147730408158388827753717832121521324579670786605864388247977806252267961151255315979196060062651674066469384255904082396297408109610227182002676968664154002683666287420626583660292503338799060410040153742192261756701780228062183095799863645571930716805089561493743813160736340604715995419598681007137886210963465968677357772027612627346313959093478098268480710987584892561967867165070645409571873756524766488237174074253856933585386508834245996517820245862180064132270339126740689691201998483212418189059448732881389026660387584843718621333132564252980909045551756390968520543774312573450843285171217498485800031685693541873611670306554349793534524148925259857840968571501712337217768788213375119418076703376155383021310775747758640185177926674609162698266492562211026549099699505830366803430828348390512240553561736509964894919175782734800021636122388472597270383585213773153908246868409592246966130539730533508588207469890095319615710467846864110999995821652290560243085175551084792728937512908030071141834433856178223912304147462610542886554500867493381150394265258751574319428803015461057723323454610212971056300533147849676897825961825811303926562623646740233319002392177795940653149551597996696183791047159104251117391380515570231713522456369903929201531310897794369137830253092095410268046080877035385076074579846523061275331001484684536508611522709693490522264178653028819396808227821902905366742954218147133815876366631285840185202587611579821937345625844428386197456716230836056281268514680314391105535217153878164197596494503814799157297738857173067996750416415732388368182209782607795757189710604778758509967428894422453294649542459483516493635169562928917339161284559454537057632210608026615988665867705048312882814168531930647817083070358478754539839346689192419138564847383756762547803243477207723442635353237644388893936543497847895713354997786924639528102164808592511128778262332589643254474764881844070353662615694653995575544021909579883018910610712504945922890256247692036443851616502495613006216085499636437957876655813286847780958423561933840102092686318283611485381352027667538190301503109922389747225505757694091193528062301458216175361462268268673121683002350794794159201067991807854264339323591204003703139909986178446332671428553187711610339480943063736798829156298593973937487877824104175182783216063396706557115582282280868899012879599929939685018862453240873529476680018739792893103151661918246316031460660041277827307119432713064627840566425913603753680937183271993334682878068335034052894267517351054508045727188789859899631039846821636282113583641313557178294726913408592557738447992898921336429131994530124911136834388547498761931334856890927245508818669413805702720044989952369977464000826115016788419825312326021173926615987255620179027869586931612453872859235028388992977765859411607233843277000983657871287482947727344115997829043283107237776624768437993413598199736138268766844424031517391201342972956928693344176593835323754897537897328152585750776479275316630963914334824626441892203262697796333523844145418991420107850900356320477408918710575191714914893512808179476124949593057529509394147012017503493812386085757088841325581226304506348026610317854091781641532824667467385355861557681979912142197768774764120758957572107346081733268973151517339657292220960626703482724004231349498952504573175193162818327656860171886442024892665733418697292627060210352557395153417396192401034848336918576324273450727298578929255138336320887931481779042960539885052208423590348612624517114769850735782280665777421939272081012331165217695462550775089093136164835710803446277755638040026654697177309715989526364655702905071788845972932941325620316644111476665322858856299119214253425949581596491286664478279029911759557769221821099115309485805150937571628930030323082603956237755816773948054879285354862468982173481344063222307246305488689261624157672755061306127303947171064441066218010450274352591623218896286300282163592179735363858672178240779811122729013879489663086933322886853225390055755596112300331184885510406163525307861818621605268690792574055213925200242305586561940565690921390216479752609152848094719597900271293956657832977920642965817832029353202355720149207133488131560591375985617942602252522108833745761067103753031699222528286374747569659032515788421739481035238438497208532735251441463891545597330686966663453696061629137766337219155699154131309046772886947360932781314663993759518106261327961474358849599504769519980981165239520068722251740920239618967925847633851854502390313886889008177210703563976683913431636476667776107379651836231374805395833722108102373891675234759223819260169745021861629786664095369885565364976029607141561078922403943425719964364627779947195765854903293116946836250349747865847550510399403454096501037916321579137402724011609513983456789923060253662201161929294125897317623693571981644523388480461983613032182521054412259043463432569669620354747839098376682080531496713386374691723243138203248318381711805583702293394707907642995218771459359913996371934350559636042226838407695935791059204781779548136490625991783214151172061852842590143031523138305983183260066076985121937509623646545049042093237374854979549130655730899793380191672420273353783912113833475668168123648824388181455677342352180670115797167615303758960572067612589512764611156854683446437669843965594659626997217031598520680585332616449280356471622497128872878592018339830324925094083748204088113949681632407804309759089771419131164837497643951903164199207291284164047185513494874383988796104304375604209103097447821122859192325419400746079919740885923426496012798184560174884531554535987844326147399086529819101015478758676677150547656061218473858993484453581046100110968335457795571314740655718582530365814605652259027487593606945037100706505989001527682662718799385155003293710334651205868179566871752916495898259951158858187995460802990929466476726293668979477719300456602273305151998067508951600072699844844724047544228836270701971365733273495026578508545321483495802673638773562960193687452574349081594271557278593117451532109529667474601379907462191495606106825125124412743245033806362761409007668144439562137365789505244994913731696141771383649838969589017690716354992724210510954792373318296780711016325332785899269375024084184358417171427978041222709782857291635546178695004711648302029670095418882733334398550096803065273330447682591172056979333722477883188446774898417283215566789485668275363080194323447130130891350155052021596235227459170194082396939392468702823605461788571237962627110455537739995263789726977791572812797007732499411281911071248611431731780217426893797839821018717878542819782400272802440014767676422965544702790828193836570414815782426641556696330144308503824847261551195013265489236941612238775992562670175636995012528161110180996360458542615567481397758256501890893328734178003030047175535341220370327925219438849812429962926526898198573974991795201754969800849953443463789391467397823819333118929363384068869574486130696773534395078988316120283801001312536832349700506641943615971094693974042503892652238614359142817248009469360677205612839930173696551040588539137746165054348251506728818845853202266549885279430608225023310897153567456382070728664479472913099334537338319195012920553054462195812246331816704446062472771057789792851779971851045326675042127552915310005563020387681732396117404256728645374257060877047549591681398903084375213344812738351997747862122343068269934687757952811124046102589204164135459245079367763476158877895235045683594043301551682471812299362153632629394441582819356678532648359968736113280167795803097518398585091963763208784559051591856421233076697105804012060388769676262560608724266342430147759583874040429173708531156953805369905524606561504388899605885310325670624830367519572170900700615992146155728778744345410197947025789249357920689207359075165037671750020386242241215003480460211859412970074915002076757647256095282005586069661555106520700309529847491683189688020012444400395647924473740535658714825002360178793207987280561540359646493798255967701131598382422296910511826279599658951450932141003114395912689230819602125491982620144472214188639181096632104971923119810303991574344572432183464507713032736615035767137146957414202703277885314744126286583448022800299134709974390336926832885855125285840309462584250414452902989649890385917770998539984269529796605574873681022234916470903739944019993759030350346401900242266643005077609163532786284106199779203408051573953610781333458252294440752319042091794288329063265712435947883227991871691934176337476983088461873819525525869574018380593535865828597501843617261576878048916527967862595734097469750434614668448756371061398917566356019836757152595694108878219461599628411767003287507552716397041440450297739882440570205851260586713180865332648254457860259384755834723713756011177189007253122693046277692597818899683691771451524821119696494311013814835370604779557285702965220687289339271706979642185564899098031476212121099246761830539347360365055537927199776598854043677979790213832487373781113227599202558959860057177814820474234053030873590378685739083821402944216641988673688109805381192830177575478207747496276104312231981578344326336261548941845764489204073726673100262039001242273091678917547507618103076021527835402405438064607146375923341622468830446113821403951438186366642718633909295109911715781511895597465372471336004641386173261933028787648792147356489073366480303174008424077685092106494736483217597636645203564523774502428785215684537047453801695144531533211491815322835749508333766727412829152919888495725294720905537299823043920905054817157321989317099489248091817019832797419068418006352344505142977271768158207029923739287690309604516291194575726203978864787620629642067903485749011924190179638834811997627763992615861002070982993630068570161947740110140730726771684205877287408810720638799710143380875336438716339012707974157739867417268889395546918898102671181749120226625486001027787623570485383717114792849234645173136419823387370428956051741182606565731720363182729151683726848151380776670374545791131785949294145456249693408189100623256122361837097224019163428650627729955268696315353768532102106981358390883936848013839653040589299041415686229253760661452291427687517163029553457664417784769626549552399596700843494393595268161355093274745117879856282506208649304175208263213759748440552637533962889686221294012622528766707719606138550534011997344523908247333338482671715379486916631552568324100154496924450176790727153287962356833549574090480357822592041718807046894025873903057306912485730435153644768101549190360538541805179589567233096455662926097791491580381567093275186287838586734640464803412988426676989817079349832512950287443249852216140701588761316413725214327717206446244788802890126468818187817712564139123150212597324807785957288236480917014517084226014473918695700295988129620480240014750672354405248508498238796271279379166252501736360397615154770165713869937390014908593557960025085423152421318878172066838960199525436450928591716788138916480950134209792542157846959192697816066353745979691223942368020486758132486056113921046745324235614411111109811562751251053012998997803851417146594812986505617814820413585445515494675003151937014805385776159492627204210530533159037069838278659516908967147040059417741811341930013272232504358480814412920293140116370642527158769861839928088319866595313880072138793821086241378241332720275933217656767350912647271604307800296515214139732396071814190248057752915982231005652224783011241934508271486005628947582384750604360973524173581167370094620209198238177334698060518021064990118733109296564420757914170525420017005208834938239099821470933171961441494171905045605057407742939598061446802089217383335484450063564604366774544153167750154778140775357559722889376426773893087672149928160123347579888112749310062944467089097889427076829186459389875090941837075695412549993130176700915927295647770411741036592089981767083042919198717988802507838453742892378975544821255325948850347596157142750044091320689435737852693935004427351577140002957361600033772168487911316979228553768270574510794268895633725629756114399761328987663820895103016016561795956863468243427412729865187455904138380605696831993341730073186892780563663314351882418020618388965422614354897791638348048325649035061292878435039229420499814303856611937755834973299635470503340988515997188518675101123476564302715245480571847814820041600953686509809054987051582391939336412375666288469520351282005078377039930461232592395899052517260255804224370775414950534613694280224385467703052343586872688354097359027146785700508149036090232630587916434578901882331347148470811175949387528264921472879444687164863209057966847712560861530580882470644319674611254795954406323953540157587327722715773219848835478753279889841873589272723451160672637138045465351004660082830868035418847635330108727592091745263674714130322843200182905530851433472181279942722246409928989317843433548348152991144694174905937977017926260820144093761874374851813260459416101487959821845046341183928837980586209782694831992483058187314451053038001504171013033547303708125017968871847046334270539105696871135227789009459528956881246273891281493352343326881131058937364732908390501620151818962324570309577871603340841801696735520845855801921811433341199836830467318526965792540725070447819704962349065071738478377885912278029251164543863141964567614131403712197997106719410069002275368507388826124356480440317119918736610102024592486925407446244165073272619411168790227552117144364750571805511227529193117536099821515735567768776977545125511506290580458400481195231138654960293170444594316925476114289502033659508766014418210913282495299658698426780261492670674674062431858102248606162337440961874102666261686266301996172447149322373770332384384106697650895129963963036128844168696107955742437185429263267300569366246956299231256919020764943720612967509831043258786533414277771971945852293582252650366156592598986312647992561846227218530555605432174270953913428238199303688594839008003640354933311764325283953862450055714200956043552699043266892515078354965852377835312497019904010585336665014407072212829849529501385407867117527508204826798779183761401444557119481418544986024249781674925465781525394900430177315608589645198262786601507775123126569713359608503261441685309586792559080088192929092885090352945527295425790833514000253288870440921454244023661753431453095810917548712876244271368152291720741854483593751424796373658458349643469959870142549902325895442348421812566678470846198395264172372161376120531602185556990254736200898855498293478791950041656314226483390352302026650814360764626643241191865210553458634865026824811688322106768877306066492701986997195068373591907757175427370153972916800349282555664667604294880031267134140897680588849320644166504565593536727556653047155713414431225144023285691241956430946130934519172478056132761115029713569532374243120046978400064437358956396317954183932919240387754375792933598205354397909120011830581455659572545496780702331767514249233038138340879547256714270720967507058837837709691168321288187292065867822839803744465379608004108898168105156090582909300505377132992288589058741853710297211678635252880583910765367934822249564426141823279291393444721672082870779170722630728456163823609722546128707751269064210863060692857096617481773375400899760180954429470436835975145148376042125285186532170993644516688873779707565283010709034595732816430211165428488161292974427155310404377543309873651249400716493493249669845384507480596789272035209527931708106873979525872219479820418321208574580104318747656417291499919820035731726291013850014657487753308182607199133731728873230806413997391673697343847182664074642529923668182049689392079638484280264147222249389552832490196736482700315084591642133203302310129685904041460918754379472607941919507071383294103172255516252979924934664735806682973948722573682867672328733346404941433922328561568738213246763182370403376618738545969011435170192161365140913478721892799671024750604329899721575802920299592267006612235292494845488225105318524594106400010554227107685233130062780124808440248582784789745141871360956737181483051108795221514913861557054737481988840814412201073987190071593733891411174891713704695129876483402793186802800065283152655993847034164632314754603128058543517559261469885796709428624415762510146441112010493203764946816355327656294315202056743412267614447349274308036111372151857763561135945069897545958278441130261662507900829960523373250949997035122902010122787932579459823053907080020760721829912364452368363212907992950873493659484075908131072970046462742230869500032724663141812281330485160011130138233006258003812129795886097212600805236638239232807301631783108122537049367646095343114340666202257349058773025375394542924868493365423617057301549910972956827240939935036834636166588753869717736054301613845432488284017919928118309232124815681358510300468302758376796235098585405615778415229261133844552937480148144586467944236166398680558496154849613155658761784112782454089338558050692418459969572414664885565077397505553779560163514955408615056397537162420228575827309513574357240444737556959650680259367209023583384777216872004688988872449590506132055877479591173105760248787200589297329981908175784447003880384334008129645003929410756343044107259340989671312310129193908745795663304358442300620607017912191255083804897081168460909786116508421387511502992572627986436598409126324886748220970455268817979299120811832882010651791060602873068308246454995464861618681691632462811538017357886004219468374208835958900624655440225740592296665761694783130722817278644826157861234697712167728382480255289042120832976741117874909505852780427141706112803125989187229199790245902590570927223701987494405971148007364915611002921750031425605284222531968119866082400033042816282207873362376566069407628739922690363549584017469480416276901375667320219759646298560248336877244649557976424284188724467436633095763841834751576283195777665305970930975053564542524896990300371497711299007728016419524892683658791032406013093729242296108919821415269946589494448605783733101114015028733444892666058708981162695204109925744998371693332726014877768541036050762314002232697382209157599757984310216706976221269940900588014340875957630746312116599518071599279116196496573624072766135212518971847453689656243261830393767422980500039538968929424347054125925264654077314330560662605367420256512285321629343117878390003283654531353509873536490675710869961897120061092417483642016026713497121384545802480459776768499821258175063677155007704729681788506467172391705842532969033838608380923079338603836363596937973467755340131892840656158193805838338614844545959764932321682154306693916954784123026330733588883082618225093804607645487733162297514441632061922732462695551913959191932719427713722593321518703528045235430632018584836377587105933216190967240915660402990413595826066072098034784289180846100814958222346285950446965409178619156772308069231797804648662946559310793081231446698772141559770063694996254522438916290845286269100396240986354115249445919224395151082928059255390333410889228897756193133921455433823826247930558345151765167934554616372973680359702001953332999584052983798042507347434636964015294972436440901442949196515412640319998681771286350557577547572138141539307292097667230498949441247373086342107617683578489823205439424476481074970108897282944812175259100197924310576291327302512123533409747279897290452948810854451042387600626484748740655358132656140668328485573292484542690485223398141687953721690131508659393561025973103421171934028126702302835403360014997891980808401805811791799267958717209335722757274156423698767947525387516581935885647992405924822689824268333453651100398768464919259684026194071139262736832991771106893710503680494623331821862813049230724945920242770979402818703491529088427839117189406081590981438209920087574169627075288115386501714695081328755453202701867184625009217434241342811720497803541389657722359325072678407505036807163193139363896813784701533954505459132108645142549329152198413582812326852944994878983546611617347815798369399413532927007927694465794757030227794822595090805041414344094222248570771720002260153193117769163682433947486535045170008181469068294942616165386277344661474861731193281519193920863181179360747653577072475726658924489244531165354036646433267216017644790932212170604385670892498148457003775009031175791114454331017440074581698381456987508296249493132497034219419580480789947392628431075722296445178247433770871957747439049664072190660323268325510787934057633382639799487144290664453966756083348716711013547066497574773712399456304067128475612307872476708338920690256675835645942337885301237599321947039499554391700504869520317399431505095246159455782500636814478423428311589446657617421272822471176991864460603247475536505987624688445952382570956631240014346281122512805607598565564251200444206043250465739689050049280940061030941112826255327531553086980091276877991126430164085398681034229909522845238429194614479516970273140961824122130591309207647234773353163269152607177973820559972887995876362433805747197356466378424553413983476376309003177909743116219575886728896724099758024369347780243224310795000818119972383854159986552045605312363856663733895089099783697275320675008738927058295590544681024340551903197664210004726822332889850741826706564521053864187875294201749226173322188356786964970890253446134153218788677580966531352403753527231775754755653645873495511441134219126476977498493035641670715236103779412551771149656726890994328314634309495110497134657141366040034889227052896645208546077676009515315678801454825669383288502950224558974314346658204615070424952947979276035090437739600817593492467923629103224245234784307243260423845098949507759028286419290637341393674060347263187606481368839059900241539420120197893493471173403679305792719812360389827946329392996189964109371541431087098830528545340498149016498423391601961023913396636704926763034929034625974825367706213038343270594572670010898881480595834024547371095156055322573359543700502412175372376478009074019493764459899183043802339340136990736517785429479260327538804241080972580905078191955258560802179685107504449338566785681546815158159580689450891541455323510500873343498423439382785149785638778232335238395883700527214576441295022969535623947249140549317549820945693768729972057509787782015761490429567980536759840589332673295178562919871943599775863747327971177769667786173742662582651159672059147601006224687476602976089104414962598886454416370100525609720125217304179886297626671665779028105888007199180794091519541782173774899067911605461475342126324415386673250739269065564862076485191034602879033071505137282364735009845308676222455361597252807264674799006212207334317983460496447141381883514252422794027448637296204058702539816624716074002446773542713918076076943276422125224288657047691566745929605066265624366340784921412187423854222466310863104533797150554102755021668339057835026785424843220621217863654071476487228333843984559824649887460781038316442017593711098334309605593367287715436343527445142264878431494424818619720783001230143254507859675451637941794458709731656273398273374427825190696639283211094870067147117989334502716075658409884030863518085923283906348337995304443745217911781687269854268138012845927071458880169269800832965079818520662248009055085319051917212151454611238674196814616080698749709878740732211783034937269600244786201546407527171845400406829888308702069217666993135384289894760005819640705322804616876278638112265185196348532484999363504504186837408172016885520164605824564700621871254940896747860281088781861625104684638161713150575067147737314203939642262570248107528464358386867669987182467522401800244745285011942045275371833441980243960195735722664949567345106793938264582118895282124663638437866185489923035394511107019657504909215689853765744792550230653433265506841880868568515099594991031318208498587001371751345674283960406399024302794400004678282661921690249574327087762622085064649672476493643486218135710029993253218627856584836268644201856099698947509342422754076117155706870595903376748542786024760246563207085445460419968809783531331929806811171011543002102133577781381972260521005319243900738911142418707216693516349100070048387258064172944002961109564260123928334853861985966359830344322339003024994456284258623441194407578856629179506657237081833795453467896423213240181583729667031824809109016986333504539846243527145587694443696452408749826493242722421433778788390440020865183947184809611953492401265362025580531658316595158664550601880521378210259386721601798168170138301305297127014414702401165516770192858620979689343930663760590547394171277764846564344214364887727594872572193587139540338488707813981211370719344743778027668597439210982318234576143404773093315199130475742975106849158233386911523988934860021127139632193515266228510466747858555043550767159563027449108640195457003633525780463405138996500161352524467477015772514848099349689568064970113006730254330984670567895051570345336390758634992684869099804615889799904004898722288694452045505884189412669755544221974391777380626436667695893719233783343503878034422896512148579580341370812493394323181231516054879886472765001139218147119500325535613124987594768398143364837384989324611372037271134451986888997879585008583441791188744771220102505590976606683884208795432528532046270235748039471024852404821899359931600203539167287575775332876951964820660971374268055391780484462720409699611259467390020450781139387595733961172949516298280106737402079491406404766695641743763251669504827723364324873183176624055592271407558910113192679120915982700749391410110374976464063972372096261627543144736362439294511868355336221737321668333150961126948622713627242994520196294161035362386293999205695411631345964517623562444871585894908335174877650367149788074190489945145273671142433454396185144443912144086573564972075173308067723877339931264270947308911952121194848096124133226292881348988614760456990446029104702725678644654976644607639842058578925851884916530344131157524228951964243976074958101853088836013471842306339382098689338823353849200936048438993717247549114002657944212466135815875593762505452401963111008013024903256426746063984396271056725687256445976294677635291240107105420010675915929649852648380238412089601965794096991898372688265270142412110591750571319186600163380828459340827917060307530573800640238342998450595080543897321927210525386074923448338657195530349664053654421940698416743845726417889378092211472449381920646405990790823377966710612374374662399999252693433298501040223694104450018377923779528055961289854015732530288311282275652193670231109348986543151656418668541061431130559842203615953525553069483703014094056948740648734550380082865363045383102651082678799965317008391050015912900858120588501949121571520116068324079774251966632886211519591022497263857099406595140587469531126825693223961576757245653638269796968905614946219439027354398025515229628592196612419056867065399741050640294683426813208401081512568733170750993863383095009563651348144247469449350304381521445750467497807589756440010117718682145699297207454627482209114256616476988574514958936127149966355212301666769341031621915035416264754724521780977102273580360384262919934332233980793141111683804279802405154149556185030930256819407844357355518555153394247400994145407223116661290981957724703321111600964270568756423781508624299142173057885107795658453472426711037613102793636226921592241515643035017576401653565445975314601343238530138112663872849970066324155697251051097221443236933109037295853864294365447670761186382852041407547977821051518392061567793710311971924046238621753202186055899625919607380291063684501281073582143762489054282297381230782811912792222937365468422383454066534445408311580451076392875261556712730352733182829265830666904097512037155536026183487041968310169550041176180509004279641483163268017901311770358433257249986112387562962796279395253616289035385474564374115066225187740743258312627883211056709590072066562969543941944356266233509367690718742345994454276402998776198457712662951171542724101036432755839535644933198203647783811151919341953243376105494604719478075827226482030672645425869675052510115025009068726017036504629778888986718384772973634493557207280638529648134274446907932170484460413687489232012122758115292209414769776200930548492803514911296800203150708573369013490103406363512154672749080206635195021227409860200320206667415342114088671435514624405587880833691673243125262491371699456358480657213891410771556702518580573316812140167477012838330239973858265538383426966518744107142045476910972644447592254892917615198992226283103616792912865272142747642429276130904906938570157774130027078378637498295670325697036038964670843607520559236420042278530310336476192695995078928291006682737849414123633301346924467399275137063315436048805841281832581267494823945194718085183743110495736165445402360189887715423915692687493590207433831742347489727324925357786190081115185596228360726381909495486971513152385594650706294401370837759310906004101941531463985895872321924059278000189119725030208294513514803251204290040927562970217699113007459600931258776829486843009344187304522069721662014212078564575566781378737303458039324748698139007650629299147201490140484862235695932390261822458846941565154122559305293492173687963636320546853467415947023143082624429010360708902952090374584876492446237859700376698107449334103999010945419751697636437900977301778480728008254931827988101693863723428736979098805555093026348356502127674408081066985001616073346145403908339820121611298668815736637802376586470278505661052107001178971622153696365662626945246130553552689923751873663403037345848374886314492820639016923637745721246720634972071308328384976220784854708188508565967357860791096804402515696950864193642789212377770366277038643801462756150907169175982931335552304017384462927237725854593309425865376904426343766520940892635296731675589509735976041357405773300887535685869587315013734048822120105233867906894316081687114995230859800532607135714640921021388254922770905815728208024238345674314566802227131026747172931534808717001334839036709845841681774373742393883567300402247325854827093883454954167220994206648650749888307498558208477553329826749626618036106549041756672062647543344217345712592533912080760387237308799333461968188052367664857017115930390823233810725712843502399577689213010953711495880016960375368805640202450581426861711427475850090531853241601800666910177378742320826055323875592215674042762442693254600532777571124065747600197714310570484287683688265368518001302325230542053335655904065859157181607737576916533910765277054693661732351626381642867643104960309753403396731277657647836426531893544460171049263167605845775531959083242502243555335101848452932189693628367819676373633013638065228167665211702811868977926865796481003962798581244798537912983921403395447829149740210774945477801919061444559852563382180885592892796221125439507437323037009719755553595164171651058584350030988314338812555563620974219759056893023178668869170881305529263027072196431300489384006797326654750922427444317591503918721176056084496915141381992679154766483482039391382331666805097616035822064522694132069015242976617385648003864388338822131880350285132917310490511932065102429338045102413006693131456416071755444864416664475685372892851866877082782360420791325407365240277028780443168956686550714274274404968184023207472847068431073533590489680681212205401377957092053300405540549436941369235903719862613970424983504080075666325444491440679199819673582698215533210682254281043295579741711577936479996450136098265228556587606216363466548282558906004600979948954788404224307931833226779344691471768378061300347450030922038965486358728801777961148269371739785069547008468442684909761625458924073043099413612053599536779717904112923621828578096969465336739005621665573965361551631293714147747912164340329183575674351346138865640987000034452271120425003205411210715676138161864207606079162162820829314705496451125769190297447654301279820444949922462156177858191786292844081614754855537807986543723201659451967659686869096244129855611629058283720333389038777310181236561881764557299528233672996347431976541936673528446716004095481691965550498246084480444846290264705251792213712175002031765761152859455747056772251729051653267100422476442360874078564174429933465010235851185435647218414709870504226469198532954768105051582986858167289591458258519929169619582767836865882245068817337752852500272203593134641560979692855561693440359128921369842879535237002875387103939102506606013544801184115303641590433862033987393521395785627975327475414592751790773820444099586759770655305306353606190775766369338006343055432254005688933056669699990838513284764458811793420059394334919770831672291321067796294161607408207817556154395444125255051053266881951669148774975403578881234090194017386431563211939503717115244596007748835833680807916637043400184179023838761933721879608411992987512245695092727584360205484990811181682391218121376423657783553582415862871234711295176748074547555636112549762420664809982067644521791310969194570227166264064617533468618814847686471705213602222634682393670246751155782540993485852021482973658823748998915655606198538753639474263339015887540977249094795352239596301324225238869389274779273930358388528000830719789471522748574170851991826811321895656777512856511860994257919816224006635263811294877259194211578934305848624425681594244628196064490610583638426503940394265152828495934171723157625381462012858872174995002067824731012973730537596588862400181741568081071986145844837754887876747881599657711931810340806181430169444413794643469381463654877390269591890397241501798022122598746007888028819825043117531713840960019280978926047108772065764583330976530546155794471808644341939019805035664503101434293386514917670214094425864097382488655842643688187982411796645589652858503548492396181315835140632221498509847208527495484829256302954161255273354994329118400267886459467505508792008686357061885935068534555554240165094393084582646485915140832757472780826767099276159737854139940369845325150554905819506473382644358731783551220868432272935719796207624844447560144514517057303398461278933762441436039471518474804638174873522621147548635693243351136042514123645213223961852533343862272190220916322278736811717319221964039948369898267895526233133144558822539151999308156922399377487247559526724578447523754348682542860348835980279880620836641682576046307656804211973943676888629132252966001141008164973879014995131103413630971329585863411502669133664128253850789090978284522765180932037177281165501053910338767637327719203543676566465789490054527586712087961300760870968448338016074511673456125246765755595607782487066465442668209094434097823550632386958967854616663993550443559770884555447230786839926258284967817102801366498053540302614485421135396600591632598535403999272742513278061433196515013650125042275247427001986047008057952029430255270678458919743758516480685920824867212913079539579225452065087284925562349534397900386012298142847893918667518005987592161315129726477329654221647939430774527980651953718383571862851187717402078906929271910620781917489752236179272893886549667912215351724312330720270590672027418058652718544664078871368013725843314988846902595857848156007072814772162877922203351455101838502036763198129048035212497773377664004249052962154854735805573310091883206583183311295423468740055473380310533433204672753367719757976085049347117924581872064152350728477895958048987567114369243615164685448755523607896751631761786620083613067922801355883119836071444895334960170880703375609039886875836371306832948978474834204880570161043921850052024039894775706474069062178851198423892867340427221363952668420627345881880982694298698979773339656031751677243863269498346618258952886496762052778691239369358628123067956207324442268880741956152298393573685256340025079730380476992949689998202016386898803412844701526243175714858948777583368797224346152931178052945209533810679818623765846254749544816601248781578068247197702338555160609967159516102206057900271830017383899248291235117195973557217825030207167852470705902058968226512047288347411206587037057255684371628854256592055068991317635873988790255501218609522638842744517758599133321733522326783701854814481749204449123249420624480965796135412903261461274206103453638731831015149767156406982191682810439993059872268264705735943013474035593663532575645427745934846896899997261357600896528001673179816327117805900666935895516704115077879287395301741448877999909955400381392064070744853898641341697706841195254518456924480919813233654951740069538559548096338600009876026518701847140535556114264178422537504425699954556556517639065696363742244032125839450409730463240673962876627780681644930079690772147875256118136943581616646721488306838397087336185001470984212967393647294974985367762485106396316138978139312779620913321874275861481605947677342773369474655224060253884787983175893337898868627878364883871432953254180315439958689620348988213039846506289210445182187811713877614840072770937841573202430010493657681367393582553860540075928317763038529284482115154221676932663811586620429565552268328393597636463423797149733801810847956625598796914007669170017637802991280869099437697677646517962081390430572033165467845456521566690527151501482681624892757460662389986152265366056648557437749450764682215846686571985310627140618954455200140624967849467112893553839572265543415371438282505922258502436710970956988285887065343652273807429953408075112940233623676029671343485601906519563625568919062802788063182571119888997102329008088904480895804215350115792329369814289008649273000857149287865258173541074495673915920964959831444227376776016743518038186258644701453347682143748150362757738077775368320632299298331904556642327791747227782156571301744531966958593102748300267550337524068639684446491284834041069427468671106940436698108053785042622508268827114091441397204940146661442210616456084152211162612734785475896732523511846639780478377910220092690270108736634901390558006060647605150742894489609782121103705506475648034151463816433052667165049396659024185957338598490592095904671768897211300583529985203544153934321151906101901854927176249233744796837522358501580435805018628587388292217940224052507202571912585254174018237105358358281550111843450938113826865338084766802538701263242672215172226719521739628087024166460575737558980116787731298539905381158215566046545471497621741608278409670115992052615341350225231453620877802506826622764988456500783809466134448210354413034789960680527355948712577301386271108714356058840958713071530940689700621562108834777615364420863964303624116462647359781964730695265878342637230124942067761989383000908632085489795504171846776081508516414982499450051636469580548132975774645483695275286595420746651896682263042407013567608697176313668507387719266514722151580785121931094202890405555273545306180407047482653622568518212422510776874407101825969347429705300270279461649066478187383714044835168428414674283296298938356948395851833290250552097050582715119915345199136083829408327678248512991354091430606932242900361763225174802467433521779581954667649082425707762488633330515586736305893636368369166491923477284416241950265456435001050735261080014500430849496379046307369275123843466917940930218125857690045595063644884524475042059671872167280078880829652291448097349443179432762746360433871857247901802912274980193288608972870985469864115979240201987879019923983089685803066621025830044743134222841341189670257527953113067112794980063352478051225634602099156157801093375160027997347759964961525522300679612235341225724153431863220935524275462237986253235002681862095554180397589657550461702736329103442572651914106696945718059455313535932981526273693654090430036829735324286843280809097913286036844922530610586688673746395126611820041336306889183780973074484404560343852549750633554314330350820970496940598337411427273695725966046541278175761641531708008203212861535518732911579949217376196208426594507420283715925868206469211503003727944547270843706517380261275512777228378865924007107931033589746906669410292962364696706925949716664497831143818792205846735481190021824964884250060202820269437111220292420334003891048880429757140115177926264551686531446042587905570141950864833559840577654681795900935161190649772317622032634472842117634242456929582066527265543361615615976249827080622460786006744055139635804560866097854265356267481305139916860470647854227137591580606654316414835157888222498432556033395689930185293097946646508253281137153477850368893668703385313503703027753648755428006705090659458220539595999143323831079847195471332880960741941801014861304785098840473301571608851049953038304942787990512928522629977949405771984689180059827504253471844484866814328594948123570491774425928198184583240366468502119986306947467740277365333874906088863325062369998790109403041520443541391466789447342320683406573881679236941897190293823558523651965430713473903795934897626246844124487017791648274525105518720351776349795912815285933141312637330750448501082793161053517493741014028001389944435259593498529226427969094141845601778204353661412217992610741784059029847484695032161943040733668109592936104976834758118348749847239585904265114729008041380428093865946281206784842382130143466029929081712849302563968614274597166038939158168420382948601366753588246382076111072290388408268478444251877761334077942226317874043676179197338315549234123812113677181553341888597624567836349781099178796002756758180352463015074612515391052036739417994841788970141911843900238035998429271335150372175999895042480583909560960514470365215129851321260346279829994551670445568768321105864112659691013719814169657775760148148225177604365743481097300099462978234873643323625586230951702182365345188899659047788736279151557671687616807962648860035004147106139662314170435439253091161249798057516847861426524300925356520533398017739332042150706206587162024802978578643401148799047647127500653084727985377697978351571037392694601170124350592995775150476776698080952314533974144972008205024614578728083445435170621187298951662005893058356185015794553889176150597390489411687290088943337140360094479209923047236786592208838632768009607312273261819771483889050235282523177639824363382253372610991886561900594342682184836634437654762450525588494479135763558820574576515071124379439639939902608482750633397960769546806544191908851905725325610141750075437258076458239452088412804086013662053586785881903301266416796415984884054939254976624816272921695343603849857005278865454407489082741319868266895881525396527069808798010696182707130805223856677388528111460641671859584587959101416386128817984658537827517964468911603637934916396128306474361699167884022756429344776963708876341831336858989305238582208734330658259083380661009701734489462135887667885659684695795036822917285450127739233754424364825721575543105141318566006247358909335387224840775133827024075705681847953221129913458057705940418760329926175928662730795089319002139345923977027976032267251613112959027884811272299141602770056504972341989164871497696431474806734679549393942191580226090503403638675271218261160333996697022745723076793822731035829368708778048416246144989819252585966345104501623393922099789953037942182030840358834964194417926198638656394775320115407844093325411082925714871239511707453943232681002114809912032156572972491405195326048310066177443998186389403594737656798881891406468029281723753702315504397631824455356353249605031186768626449614653043128667062031474119732074510054261927970084756857970632912037080352744375767417880471256262361274318097055856026000152232932747362852828789874841116720447776952329227939029462910133216967164568992958405363297906648299431806351075092453984702183257114142307936033739492745605866134847949976275952467008890022922438412585776867695945623940417049803670439602366757147208572831145761785043287143619665139747694158187250131932514050096891175343106342947047678987213897956007020398011453571113211816285437428956232971422739749461648999957925111410539114341615992920080562334066409202994795135448929838473011212613888346183218803323105567740901210145365421236688648019003140131507232387064225457095736645539754327426193916036228858184176636993663283579376909376290358215702884823234952227759901317478329154753839300424118741571416280567466584919339414920174359353353544856144432806828431259377647675616756978696779743526630514310827904354392589217371107968909281227761098878107201745636244725329460074077892605158670548317678523548293202684515977185015398823091375111761354347610454128557248991330710086614345984749655584655774348302910174278113015260491985544119791274962181873513867101407259413674742858275146448409620966345135191994527634172016028976298057120136616126869206361446673235178667374490611803376331987405470617437642920160977986598723398963281934144485615051060857771427462786724399447671020083198427482740775019391434563862459769003928325058096930021202705852170704117739329219769623923335558648146172121417619663346944355177213061179168355927435476116199142175498831472495508098120687733896885412748870423926079132864285107952254152546574878448950458420732875816581121716828801420922040932507307402544280761670324276279317693089694676274226091515428265208608334222079263772363631269161657772555885300705207625545473608125444243082503124401164637654371250108561074070610803744184284146773036266466429123852983446936003765432302244614875046551003788787201379227892563998571446456227710408533084958682270216779243557891160856222145913352595423266992842117359517932567633027054275906825020026494002859342712205740260924655566436162592140573821646444676740400709995655089492825677339694769134696148912652453239485259008754149258454428340579144146354848540755858946819402167471953667741128038036225362271885457396611682631371650756219280755655137334694272826008322367320179926774901660666131875580942485145339327049040947152209796674895956048315522111346592651698400327753653611952137918354558209304386237927077416676318319413074504319133984042519293455965235283093020191687088910849809111999077261256747602064811241150142822285402109298781045493137363688890433947199961916940327514989973185178977472876912468843556232566952865502248721551068515437116398296194895516612224192480715404548802049912799396258164603712323313993730543906596043917790533655161314748190806337329465018744914965471220075692865314822635947078866328111958858320443124786742394702434050490036768137412725545417821465313671922287930909809658424910673714556734985092325090078186102670546210540977409223074196737780744452003010288792963025533480428942372746589369402296602440856853590733907589155110655374803107073710484540843463090837380052638473884066201982160652095908453015725050237704388150213009803860683694035269547030299236819187126646029957070245543043265587669043383582293772271277741566790234180259545371119028711652465876056387550112745599367593771133906487006690263498529749768915070809267780747048203314324790770711483749329796271314916631310576628673600893423978424934970794011692692318689275414944475503328185731304372460622302028702933878439995759846541228243589018843661957005355312254339339832416177807425163455148503449980130210034700096299106760111480847044977022486629252786983925773758941500065125285446348135444022290881873679595583807976129358147926609850242111787421401537319238661178823184834232458891184781648170693771610472315947561126698852561774423187578892953189823286217688383005590251190795876852787218988460448568201298057011969781800193625146304831243968141010499895262578144466559585615897857413711158490514012703619519440214948724596275785649808950804112290933026096951067829680077092759169590815791523592301084235914683511710695051338341071868782048941808841424205326973400186904300728569740064999586418964838397269976026790583378195306741634132225904216833115662640200630659046054854923493247120293089748780263941888021321692626957755563317581926276951069213970668941583887162343657133831008357443484870028244163014816944060399617429871782296206019097641665145451742732273059877188870917955679995394891548104609191641994534571771962794732629917472707225650150663424987435687621236956272070790341891101531929932996846470712980129707289324646326902087605426090419625007912245602182507877469877151362878897751249036792417204750386448828313784700625580824248195139641612130919296649090714063998651676483765577623596374303507579572061125561467807958727654114994713134114566345847790562010512665749487313112466208437143885585515583449439159742401134388919645008415229836135198135402434887535664384308166787944028945367761425611724034011167889352405453584511972031359802373930181155814424573685693107423011817666233140741288768024772453240563497135767347736773533716262410456381379443105959861744247125721169195739711558932825666426722251820634243637868055354517100441803165521480269717119224634663238799812539574629817246082987936937511958382742225847557298549655769480578123563776468345181648365384550927403977837488183473666920120573486302018016908384588450510296047950380415324440847346858937294542558622465400353781281734951202602120466711906659060391434805366113261076008974667901185619438732997635971995187698092364563801370866752475176041675524255602113110075552482928610342342570786891809770193485452644310297836391847090444895564265787921489208536959047892006314626050650723208896237427089420543897411438121835859569208754851609147617974124930639885975954684944545216864194667059034872514212325460458313304880536650689194562183465877482052093696934340853089950731138470746538767930484875298951864326163025619570365988584497877584620704165783276344572971232787374019989220757681695029936538894737422261860052273498445303565993107611752908885209911501608535644596758975126577091335291311469354437218771198322841498571639828311779230755010311216683477730159042100583628649801790142521625517349419851880162571020645758494838123412595163773071341706303333229270798087834301189276595256707928740571431011471854326149459565059710179297516113308746725050648087695403199431361601218784008561910281978052693710253041183673394030375657983858360635582932665734615065232141108007799421848120887768510125924052427736279513579732594482944055255759007932651986024872868528257930020559821114420186333443544019602569067060839935738271968525449884433519730181879634874340810944442276675722040763941143804922519375045845569423784718972127777440432011022618078263143843971587300835074781670370304184857055619223630736279679327735349426020877767274514596110355601209996329460676079901679199199747083993507234123596987134149840485529279990562279863071379480154392157643097305053561550672169997924447166467043806736767972112518388100446321152143895643654926575470732844659736320579126523968234018934834445089771504048900599810417964246009518030451529859507378395318025323096553021915384515816848550365240402608790453300517096208602537013344755903630106945154708233520698738745664014421375746878888776506245147509141377754849360057917478796350583080867459363454365214558519487025959077028870607914799326466927616366614942967809594845327552330684517316289095770224961172010044882305818898231112675360686884340097454597919948643713015323026260171608788952446880001411426237998131693081058905328856077717260322775354687464836826181446226363514458034127399309418994327917490384782967877013236687598657216398770964915588748008669639461633908815462021738751373132058259569365113607727083397528144563549341842340140255645036750166762784246203834091358420280335425558827143208946814332189470065968548787396144310911872655640334430816632800334300555257563962498285987211650040959721228160563484484620524576099626003554058785443656814184780250974699054742253989916052124671642949033890019472842820829527130660447393609718933412785692727177341529568327685421903622184323629825536690799958686400501755871845970097588303099930813948737704198126667392996821941884120425109355029301945703425849722022178493315575334958899785848753592235907410141685703271220490786779025866753047385026405086132336187144330776146228683756722301601005271402135878533928887364596283904466176873181753788315690224143491699740465401134554466737019614404541548507551747846281038475266640335457453060362102832390733572883571090677433673454888946010153599818353095872494863326405126521711246507761844494686500378519455160296738536326223366982961157687005462724288273295228636783461842020924192729046717684072949771047761524611089338244263893083677480005114738134784905548003329605424238659014241558584950374328790333192835441034012878973404465823393165365502579568890785813016891050281617048828675375838641712447102113534883118883360035728807399967304634133619911759584801372196177476671295268615337206113657236083946383039021891120405891305931371639482150200463050426032094709919071648744151566005045119529982992663426285184120990140560341873507860060476637666031820728177437443283213666403526451770020476132554564002470189887170320026680409583659837782087928051217862321604256342623649446974405923776103729279575641687506156323219352184907053962642286673249089946256317553232225084472351634644014092006537810507841588842264536411719566070068540332145870929198046256058995635655911386157062413114417462297642383956946620682098542256716447445694970938657318371426901695092397817182601455111325425266261818872914328886052116872284508122652724691663282664667069282100385735355585807862376187430389614656929262978064350385595778206642343980183237928078852527476541888467121212459087340209301886561637080753013321253468182206621438216437155660442630402833746712384442703145525901438548586969320974386112959911255531027119401924883659195314675000891463165827446174363932043698271344211752152447304312078277626494527719764177223394438757851175015622959998549920188898965730542239620298714445574661533269881668015239929192696549858560334490512442432808080086706967424459368971420068504561721602779132204522794963162694456816629614787706735244077987461557580496888040578893634411967179590025981324751144797671067721077612455063365437615557075216187508335658706658220564760632154155976174540889270572277140013336508441233851687569586541276202365206145312983372539452704529425828243344303988475359848140685885803660019037243231089427179686048623979620530241867351750993788757252601570636612003468430504567346345730619332185569859760499745018455012926321929914835240407573272972635393924245823550574104595240171845296374976056046691142061743980556700682959542348203526763736504423198996662003591873858700806530244734192411415363912435645404304842208364729186047386078470249805837241836556664366239506689167290154457305918509348811458322362135653077180099556631626779729934497441525194638195482042815835950683883930350662236899567215770843377549218904536096199262170057211188326437002817238950838540196075785589175897381214699593455628930167630220961498535683076839171660221056968968743948880630692347135025368514951211634542145901758361352606304421262344348077275567093809048924591207557891096565895013456768018006080492143297549265669725247246707199036790142141575307473540749618156823848983729240367916146218967422057857131247632939101915684810918960699604028455333625277810648430535475444413658108894361752542026519709240893634266740665313428037046944849422465323235390790119732531197138601468849187258080424343691232147136862742746273453813114221878060751455652869895545320499398853277169210730739580748974223770265896924656439968543901058677895160711082540540330141171509449481323354275115708062171620860462095995797887356852746502351746593152292203758092063013372292252671491488476127478627685752358277925748043481584197296901359143558713549788046777996868905386984005481631553531923781376761761877564550432181770236116652572435081308472726949643523513987486602207811055197728639063003251561656419649340886574127381384377182493274612671759813554392889411653484215913626178041238232441909755339030541757969912410164188124002842229727842823511791877918629380431034997028957265894000777173248570411898009249974324010905203390190140395053244298183077321335238207944831008795091000208823191002409862416287647714048171561313309122953608094944478880502989930690713832133830560446784652008814310828977891136230177029034618199382578046266323002508181608851284332926720865803871119005492931118647229194241997989444135097810698712240715719205556936482661089432893875597609987940137277839341540146042827412022882981211624738291344325895053008575733214934684535843548986761494477982245822476654321044999091304593682284976083426582848799124573763057278153223697439750445207629358793442611611958283330295781963262467215690993355317172893565458308895570584058819268089381470119475181740215324417479911204232918439225470747905526282377889832051250521464386659937376541425792524543559254418369873376395667010057820875897347956629383538759627812717136798120850820040130581712581929128730731041040769889485810092778538744421007593573113995361611934255873247948864321932116732921629108081859071345258739901868746802177241257782683796250775089201464030969198419516997825661107203204753014524684027282068766556782975581822579575687037884563582391879735280679864668821634652789596144217882731420400311574088192036745022443738770152763949653494803077307217389158483125322467182148072477012831111634601042321311820874032761787987371872087346640917801373685444193874564429794651209054261611346793987864915419461727305825439828757145549818255025588550551135755586232975483352669057153935275326085832488860856795493620441689708054348811012528533036566173055267856299717305827425401128763337190022980942135425693155601074207419719367648332631089530987684169441848709231366625586986330813153574206181522353353107925938729728172038145356519687228762083809858440627292262921866941545627458410614842678013470018016731651452889946482665602175631957604669565026081551548890403574106401351104639814202404122507719972164051387827479692623241492255965105139104768288799611040925525545174573194521448112310929862807011983388556059313525646749053633726574073895665530081639447440305618190842170753448955841906557614245680519685454319948128049909225926410546441955222502047434359790879037702688519220910358266993904997335540066643794812054254905079460988309492315028905738170680700222055918842697910265780251792248200920369130159872437457190357354086589736521370706653707756416481863701980868333335972340418049971832931525034957238976105260339802944177489498460459854816021930613954031629868195230936218531523040664751385237796633643339191099756793289737766419744340621621539847921958928758700912291106339239917506422828345823073472065697607882520214000293286126122632898483821046423132080474260985143429171706821659564865010164734438717660469227222893062195208951477520374176254339351994451119744026123842483888847804675567895375701519802670626735053976683183012685921019506166449231312228288172737315585713759688912114379503010059604528679654455077814123104610795431250788071788122908044288387451249676352670796071386716278414321191427904146832075158507282462800255708983526005712466514967604947256033910209857611088804158581090372614461608368853161137551949182755199045229457391799119720974230572209713440882522406266277924218512805182352836015801330672184044052250920732900251588631689102471729703795996483176692420171998405258308707445624215435532731625048046989639959330784570999760458301355666272734944133419985892984715005417470997751096840599603230526396329268149855227313437711316944381867349590808812522143207839201657015069127620251577219406473903401695754445365718755059263323188399577446518207988703491799383106099710736462556409610547207869913707162380006821157360907853957767115078523510044807257613615162004010441675854255071350337416383051505959085357241106076208180665520535180199189077478169532879799585628193127706111649921790788598926457044957892038494120589731772979787330481106519815005852900213956055978027190565706145475586598860970416363449706376941465464583228938826112041028120651986285299755664566653360065646145488738394425624946473167504073217347184946267556219045547599005216682218365555290274919432531482443855424711403868149111569539239245194012618381721585964170876415030159492155181051757525944588401083012292739401799767393470827806906794195502312095507329298295901595907159337184151004362794170076504558371175449564929021919579689939830091770323851454718295174049770284663945615663064742452214358766536691755412424858751150398036349656417122203261329321520556133349332258382478451537908733586731918766420228327309912112185806462464190812392011433436811947079916384786741973540326983966230783148683343342025702697954634924688712543133403150787154946462882993693873947344591791323121024134845045414987424458504032064295817874044009112212825266303513873967255251417476448622101151684900805118035443167899342398013060254937516743993317238210501573479315790828173257741684480476782179380480776723448096155307842734259984870383048053119346649366029426588635989829844221280832530170958492123935594638603827396974223667804803341204242573867904946176397995924968341728234409723743022350604308942549647876850026877302272730654445399515798516443669411603277550797889959409521336740138071002053238309700273811532069175886562251541259838716066822062560529047874811726141292213034974601204487284251973244616555147498259961887540118063441866434098307288772807044445208601537569161038613390959434359742650580441723134406987431534989882737661783626086887601354106989723145741313143252173085181457018649347927812187588442425446523396661098913140690263238686925840102819341879981989229924001468938330074569942685852722468747446150309851635395357737146740523260446746012003007505140445545456183386574284129807969717270878769911474692007526557662587661591301879738590937956363343566015827001561215060712180486541968364972496058948025776470903232966977205200785515865830637301022568241883825409076785362269994113889543694065371683264496807133818022395562147181011902123097652657249468596503645036053832296088575698406552389134786010479766583771214567279912070201434676081178358893280995878743884741720026872140308390509833777018124166509246400857522907285606958856540283286307386933562256989895156589123752347909120421835558206425394105752524909456333773711982449804437615323175904515799697820133386036849871565454400418064455381989426356110944338870745034131810414622971288469609979321115812172740769920698648097109674094363744549016530267477594625644652732573887457326709522986566498969343350976589956295395621594883861736232069245856009361757007314370139989160216950572368970853890069085977121873009919796583455026097219408044627234137770206077022289992883122838541986943769998789239078268218417289751687142600850127379896545961239282873379355938892603566342249277288311524983428357797951368268080082165411827783048649344751642176492572134276428415867199668003628421692502746542391835753634549448681488860266965370800996678197433292460755026772972831395969775153027160916086779489329159729304580142986005674171115502148300360516382283064124360366334996271941954439405754355992440440925675285427761112186914992444063913733552506666249240431916563292002396392974014155410812927682669468472918418298898695200270832212291876762385580410027871692707361063215932927072325920158582628353941907389371459026577378775130522230762170143926145806596350240000367179589697188622797694928468362142595467543076583979544431468422252276090295828181826408399080859619316198534740718346169196548262745066497346955576328875272337541621777288859993911842578875174010090000689053328837600903774088577093794086731256601446813718159095701163236538146362149667687691444910372832586371816018983612468813985487503055390219948907368643192073556285247923082866395764789228780087461959398220382929620553514304052283734073516320613338339491211766466165501979243503482566558202360043190034755877230474662802153142263660540033508901424793079545661518270058395788816349624758386049078382700186256972408252778586257057734009540688490503795573001437162653699307940536724668707110408914035316035451550299443940446871323376057875302028079121801118430797603781289742918756856085337347099866172778010222856084451022077993109784523970831451674036213677127578785970482365082038988166117038858447211617942511362748766188181011782031729159861969310429054444695526326019477564461582665851753877929169525548406955779506244372860774411072352482771859280326978011569267057537697649126575063976513166370195873337564627590305496580535637687939672536787692541053401245150699286800566483281932325009717970353776160237384716447628016995605589798627844044752182492788679273396154615753622322945264146608652411880421722057470206397352122006559792644556441939975082425651445569757231671277382363509310153183256601737182464046076633745578012939726357579832131390077959141741151965510825901392967504524904572092843494554919818619315414058469448492297984721927296098962348867443726409289097860827595409372946504422519403390726394504321205527694244167822856595820160704623285146030108826677301398834959295572616184363555279663876720835084496954301865301552289143297198427598406310721822666070923088473282485152205478256283009478088503136543238982618109857255209500574640368786113321411865975440365981259959663524703433530665416257726248586757320926208579265999030822526438837617718792857306107404382684284306142555546451253257781699136103470872836423371381867904499337003266476404041619788540700532703697811853145728755555147158418650195930317033965460503996769759254167304374956358901526516993074839050648127658625033869211289149398158967366134533215905747939534239809977234292169934422515366921331465580152305665798156490550251869472051381970689565059640126057881491434106734436147903017210886678175876052703872255307918522637995489065953250843956524674518909447461311774235713317248667868241683819425079730181530771499108868185385795657159510876641584311919654906465409994529579283791559705668471769200527877951296442486631361764938883977486254950296992600493185173428243116808893649933198505726218247805668072421843318268231172663930101365018522962436871128055419137910861932766870204909842277335064721744242951911835243380675861071741868321971300733470319173787857434910235908888671150460665250234338858709646330441674611487822245732557222875438872081286276285878568298172567345548219640203285128663502429637857750250367289302752914779682156060082551577751347385357947076694324956918467063431268973446636589091510559957542281893511459250248426178586650187456344600625821887105058591539375239525326355689681521042912199673545468390350047186883404501193040445550266900819693057988356161577942489823458429023623696923104665578422143065604188259181041301280928618316936843480156055300190015778544723526634352259097332172095216675567428313158976351779738836529496388320381165318640511296240402222990763144255716052661788875881491124569513677110037348802179000995213079722672384552206517892851157462781857033900895834959430320108657478320608795587150664121336798725332119385039265077348337171826183611840649996062387827730214953228141951668384467478247357650400492264497429611979436569258378075775510593413029096165433232619354777840099307938095704991333250734041276153948164792883605141620398157392579497187774510101304455879957853300172946502947559284962250364931208122055071979307237070924774365496892639290183967789135977854421867286639679867571833680623424892480024527480855842274593699900122777238786451387475962142703296994732888712943391738033311841023801059201516471038606498340370630678518014654137439996231071090868766414483120320812404212560367933257762992537135962192792795552246678871829119299071214058403790726528721590416016278792974575547197006453270215754510192578974805335009591119929790405994552052571778002950427342102761763654661458849542596597200132460459977514715140183134676536487711784542501469445706531033472519513871965440964461182288892278621349969037405786513929164288783897140867003302596637414588276007633492148755094256374250862434374526971829769320294274178488197944377308573867736162083280713220365904765225407377799820853943033751938333048767531211541961280282929886976284353344385678458561997005024797336351975063872855472473150544494115802636717633771915458248656076094025128698113369794241953030166059190900259828625954029800899361977831510095844752042091656011783346868694572991309724206854540832006472251145556944800691648779560226458040710938103996493242710276722990904045365270747251123266340086311272762677848844201542111784406653728621618602694579462991717038024896363961365206152161241593912235053446228918403663369180356388344346419371503568566984426295751247778411892422756881803870400243096058093638016972358003585542602658831036146558487161640329424137198156110022981137198642246468672067729980849146147223731304390354965792698365271843545536974115047551421503004398389635862375040624300877895740970783008366454406829324491897446281350295314224896419637658404538423559805991281517923397635034258115591335768270129936163935489293276335228704459843962107237711104925757197078630124534944602244713927549404128900780985490443974225540815871186000315826763653118977546539769839822925159433933510146319180844900295357695253462171681525812704769825317930694742680021445532342768574244420141135555002850638350065316302019840603164036055143838771182927307132022672096128808833025007626094584617027123956454614448233418398015491656115487907030714705255333249609383245357020444864575624876786807413145789325373351677854598896701168951374860493232758478149345052248147227173346097362605344772512914396753233106046835691624666333938410014736030572736876529760055938129889961992350012426886409567984114264079515050595125582153938706115869904178451030815503840584875412022494856321476686939543578003273017150622578885734539886621511301425541300083218019896368304205276514852833519763058513650185092774785727896045525677973808949723303524055872694309061032535034874725829461571860261833757047793513962687448752975047918349270918076761457472579020128529276815566844768480056736636844544497264419926106518462531257770191947235089393779286463586598876471670389686181184612332361872433961348954220678634927326125061019338118461786695578819220755265712317941761525084590329888050308655642208225335180149457510981808613998704571328550643984519656788332081631364378313471026424290311475524740953207722867166945248574872332097286206082256087359140910860959180334173761286136117872236393077238975981026924790791297870728228454594442849807572416158961086617945120484164357691120108134040781058382520029438736315956487119229997896359608390269665981097099442100618998674497478668609012671247734100590570571105512964235598806383485887508225847022337996636914922253549263585163287419583982674688953253682899080036491114668341087061056354823754899701223580434999139631951655395224333663434713732166684325168997088215211560280907316045826368069380746708021329520410454568633945588499147825182059406031643342873153030442816780083546435911282978378073569862747852988103870878440380448305268720815139641043756594537500085712543005257108186096527995097400750925149982707529931059663794693045184983190317053489231673173423503807683753664798248200644954238760776879613496047170119892055275849053254394470806120602743193717471946375020307739265780409597547060297971722176676515360479831585452109159946702012397547743260575927599227252737738830380331808792024248408852714534710886783517047226339427061714087614615485648288605675579983656883705782726896091540914482109218322123910463394631213449253872634392246111354420432546223085432490733668071264227553087768553427509056263336676919356887940823006468237450155424088860527049240557074749554252938575446123909761029348180940691554916674251544944028230961554179001457210365966758430696761420118671317798728216139562059410824949176042947602638812842383400168158277641086831219445523059223939200647019125345496217354712729260428660730554353431021859421710735029025710716491027702279481373632540431220638998367898903197076406386285339956191897868633929609510485964683539119126204555579192640176612830000705450098220203506256304676495518103457735597953350319279072421208201569115373802489150679616389428429042241072940199085666632123850424805737920767981981793616617689026512560188395008660784075857255677022538907142427867413343624704596120759597622992716030367823019795982910438539004887989750855895164285050687689505038277136508296268104381768910003048929819562843881932604755940424671964472955283938826549832972993569989065313357462731211094597955416179288405829853722089825586537735493178295589052682525556468865136120340825331639669360352702990081296809234297702654324149081811587814009794724653395713282420429965575307078544532020968674313216820848910548758634122827223124001291786402132108595553573244810446041918233461789092993332498094263368712984751104539062815042025994777394850593667694211045038043827074560110870406782760397569149417964512213046168497801631701974096486642216315222248044526588884240905474212575050590561684004758502278022270379762465626218459536972707883182384454082711051188443818107171539411574146405205103591433828184391956149301201247063206224369821175251157260952269905121460861452101871511987849467634125574752536318290620897328751826404575064518908171040837124328714866627551523398533638339377349198296193980986207127230490736531865403198207890368680888152357872049016564444430707930467564447124102626358294044069682941215597198689174140880952484232630345435890310375687160449679986564905163794374648648139305251801351711749301259200449189008781242412728825788423547147753439084404746846021200954251201645173037535399427797067795220073159832445064769304886773980806733745922393444452773717833104287238964112648913297637143594527638798852583216304780983561980187716643516939876947883614943717667814385723577446212461815305133484464359053420918870498355634718816585511437442176227190017407079013835719031665421870045403227091691299162292520930092875396077911253473034743637360529182239078308497506157421139402758939151739378862619162196414691567669233948221857106406935665020735129212556688931307201353696962472225271204230913258934683549793522161545502591280039311122826380060479665046887016058092118173003121378309423816019599160063090975506547122007561200909850903354651872366758770588971288965482404638070563091843005223653817732991927036122710267530416685437835467511482599577158013325211818324877036144849726773827889461332517130583215053150488024880141064916410414520560810890947843654324014602364993604439860834121224929181452257021028476171010726893120021284260336350246542311059723753906576250826758082662721619386983812016713529823016177254304685084557538846721934166206173433807375149623793545330562445841465119058066213103400678302351195446512088796891555824476067784191302274206720358116892886843174421032527732035931138594645308986538744332196452259584368404006091578534408540280056205448791679734179489507373520590901111465375148132117621413427139214919571175145147822113514004638356811693783741418687218599292040314078707974690198438466443869276324272532060889586403477791414993892205564055107073709660341886636105479091960947362380624324327817168419793239457667555181290861440301365533490466172776258937355299064413113757444150536972037051257364336837646859708612387984143677502474906844505570047640867435960231363265152343129270943794939997215264074418142894352381175411141257170045087517360325753523023806060692256149016289376654864891457284598099037889355148005716992398979836069908248861449594146218808100510284664052256192772655660224497821201242246949396321090709444151644654246584098604512339866085007721342585634700326760910591633736357608697246336911351764659729971291141205032147905771411582574776241546095214648407823463339600859128796554600047057312580776967838227655402180098215288582608115383609000285665742855940179375928584311189376444813978202606535352573098314234871745910551081477169835854460430833020180370542037153576484887554681345798043347962975299691481210547634897794368948468247440389580273886567672023359696754260088508846020419605408032150111664678327735100674958693727123159030291262941931916983262259473048507181791885605826655397424397541310735561595560068145079780915509528017799798978794007997251032223412695876172351359412914467452523848482404774951321938677013724933854901912267753833087559804322631369293526938234992400709070992501526881001584379804350204915490001343883854483108286212097234959883967361020631328629888933151501864915738437448679585417111553439539476101503915764524041676037668892443709780146815615024693731773983848688259706819660917329495399043281191762466538582635335817098806417099942851828273393385193394505843683200847750464170137550741813460944575955842752255217390668273835774432745783193684563406513590479836225424419543494552054309859455470018120372320829940371444099846267361281050555138727503657438089557669778722462384032981056873369830372111979372777632832509960411395621224019914969479687570183808361128772758758989813500726752230453772031423661365396941627508457025036672092240487858227742965592836546786904655548690054713292191640152725446543152041090903724948630799618853004098781679879319006355818461484380568701311466815684681910510685828715630658122730714801870128684859714818608351979144636528302030659840500389256903081242199944592767655780508480575903413635119127027701095249712847071752416323247012192274826680125817834606012223554012153587434825785259571792894237740961933238236282359954948344410473425568282603285092219684920550167642350067303875310342843424551677144558026876149574838850361071026958499815255861533625598299909614523270657098495527731412952169857238754023959318069887726098842724012387774886285391633518158731782691995634220641383951377102069749439135080970686464177128206473686969965237066217581695514320506345733305483636467288173259029566594486363867571096060166511767954193445947170403459946214440049384276447561442136757663164464678384406786847904755809757880321724235800465912197996167862603534460451389065631425426969811726623135028583045072806295741274174539896958168101462875219484932026657106333554305774749441411490999278737591736003864190614340627931406462467637333196367072287426762520603757829676361171035293763715044789276753718632003914267093404745428481233992735378636759536489458619577513046636755268790556367667741888170029934906278223314415100252516861557756396873221447829122214640278960852867434144519309158406275048167726947943420913412435888862364497448441659416457296591417069297595377650364045681573922984454076213773420186905760538653168521201794173298242432286512892409793555525863488612221201639326654635532571046179959895989239917095337513601068240910312860315498711827151290661958158383298826957869430743474179703231957013397214835748147877575280983545265443904580280962026347835886683681845997390715246232954513486120093744645774652368551211317305338478160005012682408507266727049737567976361105574926955448587871205728916881487858774780376471690818996192366072801655791511599996601643037612687411454651947789349756364115252236074601720154608509501367772817001419023179731647333607780309508068330030599468510530432797762996712458037298579782462552151346240034936394948320781239574046062327458014190600888775972382843693199473745289249483256745643948205549891916532835146709984144430062889799776224615208331384010163208985467380168727322397779307793033294112641131310569810581815207785841177420700217773190585322703677821754823924707053711274238117166887397372786795838717497049152901796896103592465951222313453587303976373113106159810422267842103534129494025936881675865349565597672089048451303479382204480018625815876847857907611972610720664556004908337074719232920069786978959349307900086105326962253757728689832261179798937207865354817458548313923992004575702638248032037653082024933966719483322716490892880498724576088492998753791858036525916151625052938969938738355165361364107892772797561288310661827084948987828149960902619639391406036420930054539799727645625920162269900056476117328377476487002575424792001987357898835501238282008560983319614661553063062612170004749045181150572734753662387029764380312814771062403519387818120445605253411868753137338142787603288804073677167607030241427445971557918417868012209947025025366413500018332443816194415591665594653476479152916801041412963810918415027856959932543223553126985123101786753042744515597601071834387314621746511116273025748071891265642811597647160215634175443505290831235116514687006535443961547941536190932351041155133044195947007119937952545410020497218624578133739454644268869242228863940663787405535802520579460061509435049174034119856032852104376943626771254485782301886687004477319030120610815703523342489074593229104322520312028240951229663743837350712778654739803617662346529141115753743984418821750972941880798026037776403046071897437106922894593198702796794233324457564605580926429071643219690811789490335396811669757591207715215439169321692537497723576932249406152145004645868328355439836281464960580831760025352618936418521588427534613562430040496872490743301573416840611435086203023278274991742042142216310234598371131019921884192236973779217113437628280369429850575551800484967589211917885909956075291780027972245087512856277138855697456778169324299320320688251036541336366602276004712561440858634510882918904687015965701442258866058610441730518139049289801614264176590549553740887791714837353232326345466661278388747664951926874740415054526419834384820283793290134159802272614794708886635859689487061112479384598699110936080792275973114054074626991422519150263013610745022621151082460660259603055116316846847792277393616708387262052978037464798320217295593811264498675936836062168960566068691825455006518488376496198739916730452563842821246515170489048669556522811048811607235917407705795753070402945386816433280518609747263532471193842104420030814123368532567975021315025320295518432740235342373830335217769034049121962333511078889509181724563322551477323197693987640375228847873781845527443373101487583901582358598303439937527441610033649816815735738853918139291857820224400560843600371433992874290404538568938872920345881411663424775588811761809950618675792691363890442615651137956925617905092494523218498023960674363765650193202974245688825345918819168294236314682181478628749500000704345811057863694286622298987879528985786764939412571174195966547024854853826577636111378869754522294177840310098128881422332926446306611696247408733804888445397135430944339895686187359314098073167331264699885186491062574743657557401999700017568569427108748459204069324491038599735682039269419898835413300274349556497554376243278576446546620848319218949911956458071605080697340293550006419122491892222606328112967051703879926518108224468996109752665415438639435619924881024706040113964275713804320226907948521467415139818490288938563897685181313557327642276948798491098719016528796807222916275155766813339254998555727528238112676377773080954300259011942795037297248150693537168366140496935587553895869599869236767671658457280778471405001414149545419748899519023633219118323733202366333128769499593910218949450207766285991720268759008760000846676653398073202520204574769113075448827522919750230153848442121549680757502908422209327720557321385021356126426683206564845822269600681522694371947213616088613056455177465359966901539670357259915859379673645009395535026730573222298794601300241388570694502658890961875380201985875431787950540020141930209186919379486180635690252774553282878361288359944310098747491685404431291734000219548877001260525718465283768641763516482857779382287588774136122942158092782003254566437057176498571958578485105146292790324266684285918010250467424196223637733113717824174164460312698972066252712171653023228073222523189664548753286458518550523202950448880654408648305116394300057230527861824313945727631880230043866066725896080930867739584052039845042121243285779340521254120047732232621597322664731958298888124262179447448672755654703912329837553730278319019778820250612806266081897028936464404464901777428778376759013168687743146256776577591830196893444504553253342108346718917037828256190625808618366112718561042604523653930396903101661736634348971655717141873353949641991101233087931789564179644164099299718280700082481540987743896345844237723692102631830686383920207887869519449431947517220859295573844062438437082575685011454343096813312506815027185894542477053996514436997787010791957970997918283253503921095445236084283479515444472239703461973487405242639001277567567799502085511829789828517428575013486543953555033608930033905455305852570231920867859427644459515336678870436897128596026984208518625046750933376343686985906207345056098419913346005381751466548289082751778572889597384846828269349429147167088626912832953631582558888919871096536965832460059836430289887792206427465311173328537922375572970489391064617215997911363405788439602102624700857113102019726020436881972084048397252165604043711263932791912050678887674451462256820817936046678843334151970134030355236709301537256886090543537129394767298388224213360749180585268779403648616141806893309528493800625912928460877995831673316482464324999972486281570650964465552567992559622156079302466625706996355205283145684297115928745517680852045940470414299028286883604019016575973629778325835978458009618630163472395950374227718227005876663934476338695130187705904974308476254206529151554375873650065641687768877426138777249642599517851817256691189806701107626566262030535751636985700288786745615220190311416522405361846062538619214614281072662528342648126379360955634149259780037718842309526715338408656856708875151824165044249707819125572622175352106319944998165323187180193449790866947050724409370340349094745407292974461100660043387473719753032034184332627447690979731657074306066525906657589158435200872182031783705339030517045821292844675152878150947048326561120558134555980643027842035278041032150800771241772466354139261028413057818385115684522054369302125212182284200582739018048235229410709385000762091471557010260055481273554837250047516343134417415237652819381867539338037915055748444545124275253867585680681852431359776228589040222944162148358152822595202502557438588125667815141804502766480587832829923972276820390806758341310031933384764558376531792429571383467473114344938457619023820890330409108226354099968603730189344049543376303477063924756278332621513812355118407772756033871036698664548142904269083011786505758169781052668387223156359970754851293777166522231011795826829509233466650266452007236605363696913600152750342458863957319794963725207075738329522379229466405424598647481377736904726187991131308700703718141581706999591003512310735148934194259511140438235384065171344366218439082398820285218326796867423862296815282515924830281057096420708512061198060758432216759521922427707648056829835193324713420073144562321247892441640690585750499862935758889107366286745578708490136046070629672436201328557066490063994225628196370151461912791921918507148798203604094361717031733097635185824623577062653593315085044880714486679668668834020267813144511660816883438905336412313214011636918304384397730235694183084124091223439185181744486887662135060180859009648949695207466672253160070005122072596341788555325526838815789477901434861136072010787719627157958174004478074748673134449729815089080671601457745839724021817242509958163682137930562016986475439392275229242723501923289412282750045790951877671598217208388138811711304491670585042082904268160675718351131565740091366720114134344760210493793376212186292576921288452140025555750847257791552991727893263053775278935986703350552494129978281027147969939637684709104891884156911797004576738757017432993457494994394006914707567684504292964592429464552117749560773465403165978524620474249413855357579735330204648227010683326536298755534756497687575615401487899926814313888338981942812550158374977357934484257220375240453684575343280723533230672442220174442568445858658564497889286117593693135877650438187599908404702383276639831328951558765497963738082929892872945564769020600205490459011961878353862676965975595717538162420888216590836843865798179499999935279347225450274864079602876078018789748801827651492636859577099058151749911402947057397084039712184135755855008219345789466122501222152095782363583232065295417633669143582001244206226472409128649141644910553847310634957945555673035416788237199676402000255393025733378912530982838888836013719012694602908465630786144376487619723763521088301372113255877339549570679211277394385254660317353605715392160535476949154358659669730036239991807277540856259608854746608097592282515449303284887126452014756962172121864522912057499404708466594006674313013772655195677669354341236808624520184264953993708054597965840695717892412877433689938764561094088384130919708422752052941656381280117791827834366461733025965657869453173032123727392623297277633455028827481621817900308070461644565582045841933547442270549254472748874038155668950184683326432380145741866108228832390995888260141393887083903640368586916113380761065403046864736378464130782991490194342198108049853274490169729759718762994328472262674490440522410915311553500362494520277221927588580408813618280673152728995162702400902968247307974729744797207326187717772393037686791040934852479489182222669087713582570251492160336309508228577300418730439357302205814689245497983206785275100510966234892652782747350839180977491865281104255936800941182364673363684303103729119595782932367907815556948746737148922308751115030907237197001656777989782586744683338909594599627770344716935933211489052518827166477897090944456204555663941838006737877192650460460755792579831180348151247125804074746373449054195487971968011744859472540816351199211718106451730356981853437929212525117704711101164381473637185325122048229412864103259914918911649497125427284694052934965804313315049914551693891594178705389634524805657436885064133636790722417532816563229552854325671709636953213050537348899172844510226859883952972614183010022279248422985515294266219151360447996288525455424491539485234351068666982686143038415226608426134924555342592729302696186510275730581765631133602352879583144572021133535271969810920261254555396237110331468672681486942667694318840963545262855195491627798305971463972047823324524917747343163885166717192896590316572560821846098557912451768026894174439779670072133862912169787619872967058882539357124418195748502137353327262699917184128204068338724301818425649425274867139517439513847503943114897962900826387787103273129517152377513628584400002990278896227998299870742324328266746406487380566559138628250985457522631115437476296432614701072965644267241217242355827990147863883242755732268508703855264204773398717057730697261290043872812394997618413754881235251010548333682060733283579366880953914232311191025244840901923633892370024104798806029407596571360012688854262700191177334157989426457819444121229558644989094426746384721498889229490452700982525552183908171892685382290197525646650632702951445919641268088807753002118970909060037608247963800096986706572521800837398182858227857618737036706200402159193954192779646060549849981249343848340492712369483705939008506157006028824600636856241331872667185102532469032382379829417679774206145799093462068195733739841449675244586520308265025771045150192937970998542103076899189937729576779213780726891849530149696623233172994307777422959959424533165877874161342282093128619870725640069051071230620522162289695435491895690369154352502317110600097983069372333017896125892539396165670338214083637424269275858511072785264801093300199602067601741221881471442384410059733836484267334235007517925826347995922838845290311883976665220043621870922398102888922893735591952268307534673473029213242062641738607323449470268336841840944737717550734664195145104226808766767253983482784711440806893919189128278304222729950983709197126363008324260221268283776629045470817532438664774968553628733417423372127468818739054085958810264766198861956887467606547270978947291132526210795137995538205324917424535964041148628472537628518048815991448007730806308392437242664038558478453526099297849467604847604094975208022895665427315013032047141714655875012343917837160371814640268626515991158050742315927793945128055761128398552242514412497192204371074083368821419756720750443964405602231443595138245076494560987459444986405949731585911772288422867517525909674469523716636770981987331106664306341390081797542375544099946654828111552136681739943375975426834674887313488324140013826064163225618982423156252742442954323040596024697310964651341278057309031219578487064268125203449768688081034041409792173999104892253108094674433708013311007399925773715021177168766058378551608168499157972648773279890330580607101172135248347300616479807973210630037971483865431804459581262469598239765687326058117094687164241863032342066621186511321797607411750669831727864763025389572693706837003850519964696089426726962547388251364307869935092643863237494178767504671342403312667310315104419643732799492130077948616617407933519291464608706218471977114426592417439825884507097719646099030620356650389184126802772070328699027514185142459334325499125204246487601383113888178643162758487464796633952668746508734267836818975355625232422025369860617068682655196111014638488546419844192596828038745233403934968912735331857580133051459684846498996425826483153680258478705096293588940439335133150334317495500169396350233970233981302221595266294829441923505311885904486906779208205205947015027051594773884700966082471514991090945659016308549603768667017131714411898425548690867265428518657199934396122091500941114651357212808213269217253253066592396430190220822491853006057338715953243808651893261372554865373512902479150417382109942615214069814908561853336871721912813185591295970722456336234706989384395783128259915443037680080628262726392892609418410177679282327170075385641119283591259725509840634987831246813697588136164198779610275822172700596594861046226215821483895680718527219405744001348470907080109460139422643490775095938137650201576492483738117614093902128176199666599798885076922174018955792502677604244700154871778352592836033301247194826965460216152210599943337122979422019291768255414354671276828204501685543645827015822182895352037518107387809215997554367696773083827306098380163819891354696944296889560534140319187674391070008769231981258215079071512115378764880502834111903365619683123316176968176236848169128706082743173918492545222966611239757964054742828884494435862300524126524581891681571872942909199119819252166500997181958278881779658828438292434315028010502256492826583096887972447130141490083343642852048035277486253374014806327825280571755151353487540902602940363399475249518290784084903319061168014332721297059023375136087275214225717866430058425218138447322258287282937647365751545882552753600626904857002538938399552454347704755922587288181287174243861978712867381394620562984563176284341614200461099711789558374635162360292433991521296633151273155393843802671483963058798245479764771306301385810610894515943836993501295113875984480720225735482219558603470985713389012079666937079111641148170562294621182996561860897612342661363696003042450480321042950779722480164993314233548875483025348716948754126115165058240538042034790241268945635507491686347964117024319872251785363660321000140612974230214346181417035747722651916530036398875415547640703994009407899939613218203163082217746653284544911722938253840726654914739760904369335368521212408452773033301440938756441146757681967411759503916755519168326791680631850843486076770045032499212861045865956336939806935656545004321813859776368285022639892601756401544230054506012208027030657143103574521108955809651982604589352336771946213284205249673433757398190414068563074007869924531190397329832149515362685164760845804411866854177789598651486744178819035303421676310918318921375567468752845196583452462437954767854579896918486651867028708351858147216440399809616890319415456803224816190687151265755802030331498297453379479991194519900387234130643595375608302304565370992622633790811723578094456848832065316753939609359451222849680128361830750778897379455797842244387369667407976511815911709257529331441112315636939049782653100244009074239750348452492979772905833326920907649090151952871123639397014812249446375821241853697576156604881320222728736407345316169969893329909799031106940277920528515327221588056523877211535218013116775654749119092617082014166899058754010747570948264587452071450624836173599479335667816061897205725540703900340990882772866924036233275185063977050109339766585008506825915966502795553578029877986128212562946214289567972954468353948572152121343522390034084585527266965031354422381668569557893665765908804196205615659958235553174017524580985760161414402030764552939694451389907499913197097006780084503450369177773124774629116437058476362661371127108901501657605038098946592059917098409434504472305007450219630066832885883887683803050016970479537695008074874264123872137754266967184848146802879801129666857304440133119380633896487259634963874961175854407444393355278388640646619440648481329460563169408691678545682887112593325818295853692187446425843905164333271097174897126086733503955409728294099134385745060408942031323118461998894289079970050393612767285549304933154053301271289994894400227990437495497905143240065304283866835609402106066661481674476702051170470247778560177167725511579313591506575567659734288417804009237437366300239109925394302334877052040477087456710610657785697428820692165968598200945212401073714449228995500616243249034346340530502520780728321986188618247637461912616059876594051233006483007293724558256498285182186854115044829091518820702264536410136308059828059213018997717152134667758048873855092542920989160678430774519164304630690667422986828095148080051619129947125090748032901661784891649305288093382410809656619206520325886517375968134295266727945263581683947141610575210278541827820797371166154646357160443517322506066921103818933777704995502582443513283139006250494828418917862645754640595368669960757947944632581060424398344150462957438506455951696114981447548229847641765597226772659622517545373048099923398468173735375274416649193085936404584630306669224048033149407091825521643117068762363444187298434546142885959485242005365524456401289564443046912149838868980766463105131751183371851823311169877385727296661572469070163434409627216205897628021361507327896384571779157936828751704887932027639255988123573413739093463229567562474939344788905673221604887374848744986633203635146539408066429275571395026032535865089911759296414659008364700406464152495208133499275560191399140314398221748405744753530249439359365153428780038970343070868462572238054564449199374947805934821420748885314333806576564498421357671959539017900882570459473598502185009113099024590636933876677511003955838822954623595944438755254232615182507459257957473346475561199338320967934101050800657672796415619189162216504581712756530251343374029420651126820286677585046404936161270435939320331388510665457914691300466954217177296029676761044553598078099794191074792628003823608699100053004788368988510916213193625771842200594223337801543138981977047959088061052319868129841587592483473844986423656010244917685553276644423505121856050342930815454396980654872008191399547122498865945365281652183585894250525077735283353792906354153856895983223897646894555064410768261206045111711032103832314733273926442005359905247466636541188750887969763224594272278373053606592254196374914032891166040177848912169076490348304411712857543098679364443420853534659611283067468908631589553947666076612503495171270154183387702899040392859590127957889511645807548656399240825994676388501852766816223972507710540438047422868233941112802383743033007832011100578007230414261788873743050754727843936757963728004841075124155248192123134364785117547835061670677176121220964401491768175882483327197060137185072564398063819324459458816657943524320139700829344416788132067106211755871344259702163576375700451840327469257006018399231730504839844888540906110775774466606503154566598919435995235860314341707807601041591234308698159931517110906648233334412446618434941194139723948841007477485877320758788906178836630205885941943694710171725145112533402265999029821999617602613252969387409475702514215497024034138610790290302595862057862824749571967266599058201375186647398063036159184768574350806690740895421497378637726743481500847534169366720684670029271685840473000110770474980054022138956243982283055404210911997845237327749856856671564883466451277895174622866427581688597659319717150070382639317727149525693423124691370097470712408238572579820775703753198650844395762480226082123820466140656660186716246861879462896833391775971069425948988558536636053801602932096594118273704901662755798515312349966241836720764473163951407191278757043976183816508509369707865794574600639384235274479518818394525188886374782398845753062896935268326945053150055790277433663900480951067496268549086903728773431321584430990808263507606319905485536954803851554311202032479178674769228304215877365400664578971544405230428562643182524292282663055908598962581225624357292017248352964491311213693350881670208755421283438712516390355515213305955125636281631357818546058911995316453735543585758434050910997714067026830512506361722130473757506580796834009710650207433548553219740999548786243117421368233898631821680969000952160065692023853065827165808898614896779862059032347287626073928019048145307822516775131363318137490527342561253146441307573747945035230938688381775291775794284152206605340996620378544166017322105010726333520198666509733525291240786338755147112029841116725161174201533535972260408358475786959491945083788579882029891847238892857506931933392524025144533286047175415778629501965336826737093423831633679335609595772610428733042464740638087373590895076760060872071003553243860867521421507846716142546436048881179510264802746003914364516242465768258137957178576286093791279302833450391069791770517465577323852154382805928682170231609489492241791976227840520267038459835508935245062704991907209772490907062024431733690688165337333110342091871702087282165508688048113519984071256102566159345320914805371330232039090692175004400769310402992585397555555536205619336768511756243169244377965946516788246774923331460554041833191174881704028101694974764090882870763287294724970129873178195032552241326342916260116744983804515144800299759346178126041519416627416925605304979227795813244369275090366269478938342458950699352473342051371570255440280141169439416983329636982129913733447793542908358574811160361343100999872880005469543805745924588962955312170059349859324526603557796639863543013983131918134144439798146378076486809608231212265818016715031645778611608609968121021972963153486979150508943956314815806216943687191408548979605027870271325061587443595798770780500504719203828414831939544121364007804565448385463335304008407117242761306533177179152038748890858350030006648323157080353746990442013810666152239049148842062058140092970777688995893327906139073105496772661939675948814824149519284279554102880610261628194170306154068663472357408134405512840824389793058094029876425112262599764690594478736265146126987312438851861045833466648441741166061854283097689989578117902305469889188796532734408486458807482510087600700049246815982411458973405184543026661219123619843548410703412709201238437613688869948779809326975989588656169608885275109080348069129272319084646252911595895200321878100008230031955555508998233141578576453647212789418327463026626114048504297073310975548952599402514380186601556106156870091593178552380502465337094829631234399001688702506572557746040619454499244700191695397088552882648014830099639119351392632844577261279962221451830956772875602867598313962111859907854712937686410039762267429543799510088887894549417391601698488758674601829550361537424571552647904640219477517055328144284668319832582028300633198751033148502259000700941849291333533027658600746329277491411799919106731675315103479666161382824659434999000536947606375777218421248212357628213836219576108428393836052197160221525901097016678586127318076107817813329707640444232251146008256499500770430460889950200245198457494864461784965256251495554585218403044069961162775170605665676282952512335632465224551992205764030344108247696450226956969184191593638016012238283682113090178675026188754335022069840668396468774300618599801916946984624393217588301945316024875952495278562929588049303153309301341293119652558126811540658764749875009408224625200719463411200269875476490265189807624476490071151735102972110086802444133748680611462323419019770294619677727974373631179547425468540777511810718015537646414872980191843842592334400835942376431746660661399432110460917773698178010390203325325709193172149199611873456667836570832615714887505244843266369912304077609268542125851663483308216087387749661831128693329267448300334197251936371204393834952174479198200229223995253592370119099080790718198024440397416989730336862329955363933911730240582613155101755758654559935071191153629375256718722468568885167392925335029531333386433040239349579270444599558647249560929912016804863336707741202729006651843390260356083630158508077695320269361578013977495393118483664904184591519214624699159153515563258746587767340710557472119901032290711971974196228195343221083862042713824983447907659049973239399476792418680297860895166519837612869482007576854086132305219540401824893651279871499258722988164620597491733832755735837338742608225515047805525171912879517061891995411440803322670638605534064175262050028822338482678818803122234630930402276890547341405101916665914717889989746861362995979366805608077965746058818708390449234535214814261883361101183519171431589488214821672951949929552897393181403666901290502342117834715455809017211629704649594483507046834755695618806945955494942240604905643927667740365218162289280890625870469444514574647250539958814889490156545739186492799952057118237494600796208647685338987377319749795162022193636771637341212187620745482813727070731698650005071402462090650227579281053806848807695878270356356680973860734310185534388910213798826597144911440916497501979389779773744251999386503988956697412391188530559079428359228865100415494700638156232621597051612310777614572142884751462331925229933128213124424636813389092937554987739112780512268388115225982987413863924015388233957190555592243543436622897484658799904832877069805957871553750738636560363763573742847588586180290908834306458731645936072893815075822838105890776702461268554032576254403385198453416634518124664516411703057893977585082509465580702663936780315248241296605193843300356541006923627588670481479048444169528159094559843240706111356699028202194250244077529441760406598715595544105607369054342821047358148196435884504480514277022368292063290880599330435527396988722173208664824343858639051265904191094145640423342020478195010531647198635586437478926358522582341586368282842157811198860915072516379875916973042196521882088242921732743789295703777552470915841264162843409737823442321376060764023767929951177334038827852306540529926747715302604797343976825901125800081170934230159781497326215369937515074882809152145358451125070073815406889967828284854043001913108136436850905028914054244070602252411618824185449963321695450941114076255094235258164999900732464934115640303287672729026787314916479817409146041261188294824204377093996685692004729046894126240412710105887209961563186009704569323363872061510425746544136102295339228951435988260790151258046697255562466280665350580024086302577078835884752022166914219705221485107205386405947725023683684210650398016845673706900898019181509999518592571020385921270775823793485788200784977543337864548959629109089065232093991762749623912472471115614735624601576443428767256804736393647065351178488187029091032910794450501044707241712250026799717242759790496949863194989010082797985218373937764804328794248916642955728867442620836395456041414741996935140566002395445041117859732480492753372124830931662164758178872441417671981595119808388670504758549533738874648254191796617216418624049119471373834950766584021228273247716170944325401607729139862242934674908227300162074798462459193993111304844081584423460947650733544500204211972104229070942706950013103176991371674954957162886829570406351807740022059950499374657412568835978886606434051369164234601799109180254611874733829454540582869662750227169960264786316492438009426552816639953864053005459991745390973349105534196538579545833192414536896350797080682459377374557893944192692922412378520908810585073172044478702486828948761330746565203370606362595391825582038309349834988154578802788623322586419524435406315409843421442218214059808623171428403506777895323551198530125819287055919242910253289882619095767162643715712474493966390504069656250223010654595902940307401785890953596367985185030587337570055194103947442232392712881586377235392128538455218116276754377418454627343834414328442634650347500255815171808088750358414548978165033451903250738319268882052184373070973040659353680235370002864130064107011705517485073529240455690516867455870509605605382712292374083907835092137476192946499375234253372970133295725690798371930512542258071139774147943296702902325559949761339977339640581248188996606675659481583916381003315062916698350725320093798739837743868951980596524350121261619360381859864661698227229700239360653930917083688660066888353079117557587860596209362958026156193500207946147227226221065343999896431670803215203055195844001252015574080248575770603121251007735279550607420334023149029314383593774072875764375868937696146428050695859841649709803293172140345398795223029199155365210507233941263135689981165556402300061598835435540547860037120520429587502420984421423986179798407925232964785368526212275238335857246792515728262684202186750872731024010105552627603222717835873791060184373389043768664628622798864712188494794148590986401949676379668738211555081881637562883354203410255678254465296831202764330615314495039095807631979103739547546494208570975317293699573543445763509803538378260304316623054015630739548978611201763642410388409707509775191342153598943331804926320290219916667831760517760497460805581990251601290774465329521234640272545312086932140334164730903225342475867673853425153781565356484572761582947302155249764698744838818589196538322358490922191499675828413387617341236405899225658970286635304371903913499839789786274500380068455103843147556514602116924261699008577678519961398982747396201541803783984933038728669571272059411500986617728987816331090331704335161170960330779450746610504275678686394821277734106702581885069641863819483737798922194784563569956948695406727599310032053686607387544756604648878813273362744132794250729054215401939031861478696164173632273009196409217977966855500189062775275192566987218334007443822001780916902707942584471333722010064278738198023038831994230612776861434373179205404061927491178525725983945493972220182433025333944523265236132674414112211810945374486485174243178291848302756330466474124071936346982077405856092686879798533727958931690875188035804282606936401898537938701993735370557171285202807328200628335514657030491810595558354753700008894536532203218661973097712470444525673498761570507797047645759451661257817371468816618163169129378302548490011131033797421338656468005743578308234493814320141025818696510808325982942492362412628158137583494514466235001673061745506980983177296990507400940286970502714367915670126200991888159513299115275823287271348389583814553656035017267013907701419821063747086607194906802660398948085300002927049492934164381753750233186025737189366278186513156884537373549672410362724668357790695667010869675554841987017279324542902224792402443763179354051678312996056588497900405287393342536208328336406639836462437613685728623514371244619230955140433739300566918069052071824590218699232769500476052842892439724909974015566359770643709734060060593183079852090866801384828467498464495875924283252125333762936640538290279967663680925459874009527211063046269939716713070277514569339465699332147986521755936044407987882923106593275108214448877981910263086359248305061499118202587600670392752654501681454091497371718816617600506493164109702383850995696802155509007492173338223321385572004904867878160489686220630718761702035298210398285429246768352369919963336603677132899224717965472990152417009320814580954908199489662785611945884342023047965643406053743123287119149985237959766231097761031420931725706632371491886666210121540737475887257251531364410106490848571126669758084384263210532699050714590582541736901103516284430343701124018174030583066169351916017043821274323115158415786625953953198630556520345501832277200022470761601928693947759422692013557543291898838549009140397393166560570831471746153327613250424049642550130845777360313846528909840114084277314856672850566953864708768042571600179941017988905854341716657315146094434037599097529383881287388341882092553244006799828243098845099044550101154511571085734241834542159156516435414346388796825362521568569047068378605313499303125672248713970359138570108836864876127811724674165895341410799943387804436250510356973506117866962259603278169478443767152656860910514952185491054005764953002237544765321272282867696931617512994410803082391362718338004909621959006781956435563495023642404737906416394998736811743979841474602680331541858541095516673628115764104584647379327707142556285532432038631207636777005489072447799750338191878363042488280798873585351774154936320359722229357077049688599569879960610445780861140315425846507258241379209302094089476741951753540123442191326689212986258192922588134343993402596119493173324501145544394627968999546307552842638885951436861446417550104867057230826994954282237827920660092306114559988950317050872248861056224266362219765728245164151158635523222102283886787172803829658735726774533525969243797027244318496208103377778666783770300699198974075840273931793515228881951144108652035740118986404075086500847619312042570311723660095731748562770184461445345961810655675409411979434114863815595178649277393408636817050571737937586556504725562194002803901578613125739159581134697441642673640425709110751183320752384804833411621384236376660446405661621842025853092370101125178620801155565657245664844859339343343334209077188190315898044385893204755099922381808607930676113467265481508258939462286365858823104960061306796648511304333307400236895168572860865676226249623016419827207846547619188804164489837420170842518559946077528692025339800804051029721248111522405027937895580045848458146741174909042138548791375812906832929091289203448792133782367687714518572854329707638007699558234778297751567579811648148808075630050312926167520434621124056926679542399162485081962147936797034780713105778184378614274364874156007626758382923720950416969801922377639949440064417220729204316668261388791193960366363982655098663050092392982476751932689346075180840791402623822110922643231322005125458317447525931217017549305327094957215910281815591792233582686752983102775072342891195561904646224546667588510042725700240074615281444889250139604371394996455107244088462320532931022937327355094755209818433162501589976633470295824987944537200224458125947818474773339434482758663823808502806484283498335226152880495397395312530647709663514935054039943456112173504254256747720135299138900038965449684432430288741198981969003246226557622292563925552585541485355707858638551396796789884636027952601649528234385839341644649570623855698607920718229322475080553108018850983933392700005343798259925325561756970281365478613575212150796103833175597067715271310564450669838740163055104142039539185352108774724755948702543979466747875821094856264125841740432935216732760244611922357754465560396126863918418503629136084684819700734000466659764513489861412835566621142652399956618875975582687938356640667955768373491565899312348863280239022739029550559439711680752129830785640131687540269383258833412183155219511174102491595065272012753607605830418225552603500255179901949196080385923923829671348249404267487108373424755515170094742966575581986678606524534179327168514651345180255152589989697496113162946595136589483675098719864178194421156310535023989070773040475510101057858302533970479048359597935445643029862914735633522780800695032875777830536947496744855010874012300521757448691323004410828217029273487104696043252878770436354357314729028153096192097088921614795789506178725633808473773693795480030006876115069351526500185889551293407063744271144009569016620229767854090563957502994565124875958444100726663364121445416805998971878248855934608754769090921530759163169407996072529925242723818025209037168399271063885207325206851729636554440662908192203150637945894039467254263315309638140813322887651128726421602541879537249894951340330670002996536838077957798423134300072918615087446473327025057666117643864703191920514484431113496877322706473547435099959023191931114437761538219427113633277692654390305694398785854462442507483715671964462041752307654959999080802131106879225163337697374344644793531867626220405398485472473597421825576270429883519364241863239981636385155800864108417395895985138910320344190750512044216043467639464089757535827404474358369206292556640172056942143569874388197396441961887942447964291001887017361512339855085084283943627113344792322933428472900661355054907847850559306145824691390217296928759262297401991967178743909506927297459543388730909897310735418918399730486065376644683237553325351684067645818668421610597177252867941011350328894273150690789721806180747467452290403359297424411079738424421829184785392459458878185367606736437699006751652069483593416657218907451076730539105873665550566231323949359117333704444633089186548421032765871729776871347767060358586268121786729575507417738088881180175127189097993165819911491161295702112976485186770017020460528699455602251752738894093913100893990564830220340848204338428779472355812828041163643860267327887328643218359295120792520264675106851206895193728547195255090760896828524797047550311265809411450808514169543115986445570904615713784870161738449052013769210119293403195378891990598312396378850257875546008276439970885873676261346085695444307043171835442463721493579947467145073368729004380834487534072710640837975200141564331455950586279915138105332499484176492657865875732336848111386734324542509422349628427662019178735784013490059899198474609295292925488437276193367955752872272659713869600363183799880373603485586525729416669406392045780120238032404119784820595735733337443699002892797908290976081109608506511163219243192055090241031856787567187398186435032498831351882312865638858187582694865965840588659513802320017502384951710517505903014903566411531015250833226373652244562959220579385367522960457770969978874977956979801434318329696169644667783279394172602940486640585012177740286974130508552838424476110947683748026189460609806405404626474715260668981847135610914986632970258670100098994650044881988763872100270266101964455097456351209085161489169917395754302292410408207478464069681093863164704372613626404756366720136174502918172791902654860274510497684415499519877785140278018104619524382217920096362657015256766918404583692630273771687266956305947051070947980295767953642257487126920135978258025434879161428059656337761813178640727352319280663572231927210653132592911728716523186346332009032245638282073526376735241775119078254987826202971836393452224989423908776214145464678591411136992009534403613711054473353074989432985959951297485749241290029402201753313141000394467292067673534491985959010648243233833722486381173063248456656646619271598162359033020891766696042884728674865464550352127281092852340528366472918601356091903398015613371447925314852939219998089953276919580394538308038226837978328388028567793705353695486522558212002984596685324381805606799586199251497735250626341023134897470604033387492800787883651901547836867057078323965962151824930142158531083172280444086701597230667256857598587108608298127152404097215736299720117795881536590992637719314528358500562551575358919248124775392467336905040964511922892925103465961549474433218520323984578332121381372304404225907175909729336948797469386158915545001735709966810903942754468654258948385356470873075779633438493169566958555712625310846519163832171928871457495925716090078296226490914266304334024052460451923452038381497917890357710884175107756892045659805469365774006927241049918394332259950807971888492253809133580943771933610673205253004199778086633753975823781608040140006914385655153632623835867942687349821271167725697951016085526969137720645101182887131069326050109590321105455834077621420047899169530935129172890678091356891481678170673116130805436290755913192936821372603476821746638969464413480860331885898177117928559837719391912614932612604765056554387900360374575253060760813390395337794937818555656451091654247308535106883850152901459152111364836847637938529071834348292001256569993115388731488621355315072458975427099599047775945479620251788043824698361738191281717933346991806904719246835765879433276939914205700918116570164535396515882589071252639647252141029776404476979312270171328333678135353854354503916034511597096823851538605322957546093978919532778600472464743705505750444652365691080796174277505930859736295688772722049196810021239456894482941805330791584091722078798862477331270077192190957395380126351574527928761496779407958915894253203881036950465163262727035781601135951138527323706561475729315020720445328376638504606136237575645852739929481269092914198124633553720400992855432777159359997846801102498115899668828743776874634800603710386793613156370264137476543977301161667169398903888404369814510400823377231824695056166486977023296390739356499128272972683919494697419123992658345141310955568634156011074936331715046463919386149204012864775019441990117106378168690532852678569790672783745881496654053004337520675188247922457754629796433818221114473181174263896731085644688086901425591451821619856204828415550958204036751213053023257900837929612874362586560730242109307293254336351694511729125157154487159696411099645948400011101688835358001824566788411092700799077315199650814153516280643449724396266869803734521596187694213075412857451914126748853884002939658470382444385104147418511399597113653479786308156043835704073684729755632229125187336312681260700991225141747161080956828780798012186818213564180025373004570226865705993297804002530903532908943668095397215751170661204039767555431131179369397221627814648481036345780871156744618350752331328870696554659751651362569069733475058395689759859254885515925270310969146271358364143884082180517431493592912876636515992307460806187200798829706141637883904743359817027014534024995448301305664210777565521547431116755236417737164040663977457466653022145810777580174970565499930823598229049674843829737634907533355284079123746306089810206796059373240084435062706588686252450211458259890747146049700811419555207182302426878834274012981852005607983404908468968059800966733415563015561551439164824841999481278057423782198738892055770178116951088235397863781778340111338312431636996859669556893222172342921808102219869422362126512317218570693542166890277890418570120651191910282420800761010793668243772784290090764744263354063642316055198558391820765597468492888070456136146095438162072910237183512052499722016940764164505405047604060440764463495791588732295960155378999247690693524265504620593449330711143764311368937950993340513870536668530848595559536059357393996839018854477041739257428446827099400891744981154902574734902341045613449730560785438145666735838148037509657585505524773979527154108415368817339320537744451887631259584053981028141677383343330097792411751210631289137868612072258837699388044651399187587977578732016299838910108184641900675455303613320844630397629270396918112217704424784352137876965615135257261513581293435328184461519456919271649887497453129678273752921359882597717461539346634546633127998488165811876633045188810255032457396332979478411970502375436201493273256708790251492077113961904751307162475786715078554442218759778262440205150504297355137355500270856204693629027760709306057488037516262956062721163765980388025228295707297788801672832154852116558716096280652246982152162696272182708687287971926881848331273774123045416593456809663066130776596365754457857419379059807620449773989750759061273580078479947177047535719538006585718781159074544462724569944541829903527532653205979053379402041840350153495990361494217287390985975904579154798168541892037495322581521239994729013374784577104194076506547697370596721216924290360612441723884441110814037215448378585535767722611300539150164091645300302642541548452619476580349975593113088196518412650703094702633524902812414392436430559789485989995224137015495645508771201935103361089847955555875621105814949425184682945021861860726288530472546452079769904356391925216630364042052741079200252948888703067912224074031967363214215962262761029953633822120974064400195158866927841875824638106898733078339379009222126406870799959014372645873992339128822984338447214704243076216128664583486947218762560270973412888607227758184484751804265294526061317540212401302972905327501567553984333320844993544317865990456798569537488943837366729517537096635756647508078035511359404086236771969989579023239847976840486986904538432491181542573231135895890079490713191036445485347700175270276147742986700241999468274648537821691568929597133426208065383945329919252879677172281842524014335689927256380038917080577323770538409247930447187289728507501863874320946448521822945238407143577968695791541240936530454766814348961921752106564951646626866386115687423396587392489677904146634701715156288719891332253528234652237169208550766591322806270842105088691904832387145073708863654234429678101279318540898239336134286589940557354004814364737533466813631596483887688186816165052075433581549650218103282392235098545831991075528362329358497736394161215956212361187592294078598433157073856067561779378815284815940384598167016626363891836587241835007608846035853992024757394642768539463381841287421012193409222266482301915786464313034936760615552963776692727358968617904159291345580592814133727150436060837223664990525533124419393350561676316633987053419989728130350524000153843545609782219255517459965674454256089352749136752165925262444156430947155020338675515573760607832407470808190414837543123838838649113210439995624365960509355151983894083508750781397290308854588183854075071275417115357071876444523208095503440955576480659255722018500683125121903226517864317272021291772924877495057901936409978076140916169402069492253463300401288469366026175090425011031487988943257165899882787569681822492330704594021477196417557542662168199718302779776372553279810460177664267169583060435701913405985585941773612041267587744027730421842683228809492756537601140243094179625886062677187074682765502719630599925587181635631110374147037524863061931328706726175146194146181557533835168435558764146133411335592278154184291849879842535220446586105794745740907691962689794076167950791688849835028384839310413436060018680619779796567085793293942868412675758922951090716040061868603173671142594123352346362838767672018514117589282206435054998961742309740963994772059752344702850381689824765636018302200046473706968912053414963749535137656153515969512929786959886254416351424082996824909271544805379761475410108351736559507817270653049114499870999558813849905899199430642920781540756003952868367540540381004255671222433293925568806882866382832993349981930966203235452542042210925025534337624596520932370969844409874038918030096662168122762930473550313041859944043930891339717913916502630095299691660625609745440865883012439155469266484313558365491234180788362749855642910029133973731827865534165462524305459938859165935986530510113224797098461566047104775788930998445955860868031690478778057445447100604245741860196616191770115621851446877592411991221394027509170069692837957826552020235017073613798730139877799273560168013353569830354485976484169582533532080079723752704633515289685990286835005321265330513868993661572182637326673981230963850378785501450251715791415486178881717722524370999589057888054645352217504100547551770173242705326395449481410874674693346348450490028556632741400801690560183772301963975084513334755998040200577636963602096938077467195978366175551556132781070928044495463084047468701308333279881902396802963444051048065652032175757803717197894472399927393074433929912809424037216131907569422949014722582559298384665679135546207818213098677507083346345281797464471792598172158006078860709245935630964891485492392717674983629867543324379182222420147803435291027610191768599859534900921926322702666988991300016836281678425522688573288568220157493542646213548761068840116436226913948169648450400233155314572043675867206343245258212024305289338780376731466885622587043835463643169880723216416892274096561949656164388219273570797272757839744723071808271885615283512893188655878825782679792496243334461216953970600378118224031478067350440167100086733804492935842400674787435220164255079039880202708548347379253379112841088796878027281112288830215591978433415495806000443165910568643629107659185379043015452207037541356943506082403402416034879505251283545279673545734654870622940387919208013152586426378348121053519739473355450497153893035965043900322039973537994211843106271455479866564725897824221075551633328658700689270072754727992440696146662033836461325818122443868711819388448885879327230577740335468540910221251766635705465277493806478539753464981091738799876244777066031525937890116180015671715913404585786522210235629666784179394565508641148989428903788801658505047782729900637884319343014944894250203461354798464354298230323824714615942954680659433311644323361709729264408747845669306084721039965853748180867073715514652370144370320079005188972812857247812840749483975875365015199848972616373683702938741016904541662196286730234566876526752954804608307860433724215231736846235268973025873875705965763034399885419894491010789730535990053750979632524363519791501018967274348572106782510135115829100203298376583642423922090503254425564071756777044580575562647783185943065480997759215275542317349820871642753547596886711357227515481138102661581469200783525785005109359596850288095956628082734607471077928360961242487912887174538258318188668314947487823228281231236361313728176398197376992772748240456592666051798766303893559387560530597602364306568122868453196072464666816014938955128139090278755391821896484420610782415806685427520483788656185642729204362824071236542037819267771342483723701225605332454617267890636529670708960919389405090507384107456970723190088221759957230302731384209823197314702883037827701022901564050812215966094837381835989010737042700070022274711060593418268177494339124070272685167835489086942863618306734121759664727308979130648705994427605012635213258450659161179927739412331416568524715013257505059171042878429198982229524096632116842963745377415536311389919179221880575866143914398594955146985314612199310159864767350421615260231327602806742721104543724746055589258986616133119712993092544981277631982691055447547309010298310616551055613590590711652991283507235684878408173828565154813695329046130684479707258314395589394860845238256949129083463192673817987845261962568350364910243992736601801085174107202928628970046788921811228159074859894063564718579017674807948842764070317272584065282435572094597591323008511411324341080688478459399122016995412932963638791832308491292281078869927306625915427945061777139904499951845673443144225511259058657585969404673946722279089264724676898788644438316547766894853645123819492505242739018627428212882367233957450610684152520879457729477229686246929030708054103041724090116905679024000781971920862766575875003083908947243694907961756071107578021712542601733197975893212221143036644403108787174552694624019192099702038131514064715262095797640475580164122334844436807037501859231083744502286935110469284599495948950441866726219051125277121982151693036149711350573390164401796251063827956437164239226105197282519944895094624361997203196020204554391005571036396788845949961946685110583157543527736036850594708774388819573558858724403193712652063857663393923599199880644312500129381399384133534740414537475004371913275152876874167440218302699984904725659820824258016629384469865727680778639943470503081903603390530729169909152685038527055902262294929444565000134026562299463809713619854628382153352307295326485277456131703923339078013722984685634194039027598501073015326134889651003474084075204709805318465805849817424984430063375818061216804118340629793589091648109185046672524987097982204027539002177396530742611859820954506187831678830841981670686979597304623615622396402955462027053546851064076912537953195959838938796916504801737158445924493615933388213735577103145757241064753428412039782053394771601225052519011961249166659348375897476775130801338415337026070118047660187489543187673500418263590298971578070267289042226856586765885714866641204576921882288108822467307619968414699027177431869134427401828099170449964306055867064575846064389972984402089755814931256855733200936000404683660878992437916243191534102479333757306749452063180751055086294035071888184767498722900734337266740322476953152831726195105443513688697792904904426275300595343732466371391129401124853168378714676613823174706013471037420811652287844587276781951248697480174977003342359303933059463172281809211344941365975400613128309482122906883205328406255253952905143996200515139564505196743545081525030041589607312725893990770937350826982908351884577564018370071723263220218591009993733873692432004876336312899071912401126483482223283586488803064656677281318651047548309730613199620035623040711170093944088829977437527758370683343554240067246580621371858369098858700002946118200415344285026254547638087484269388492623084160067470565339875366590455290373634632263355386928495790889141858040281447870932517693376982432281513227841843721194420676337991926637308939988956472197590800616858254385486762290132012620276512566426265557174905384846688916321740192166002914163168113557608442314617571456003037820884184946744587964492590769383266512579454184429429929206230425619122864220196901515749033885232090920583010656345868862518187542273282621644666424393019136252529061245928505022547798540463622064513984402179783906017679846717822125804657722877366881072425502191235878924077423519881110626253161806158787126885198645134461947480096799516596327284324951475201388298562395067034606427710417670818719666537833269802832794293115758295901762567982633220977940137520661279812119129480651877244123528823719579810988577787799002085799820467862045628447287693305195186827891904446042298286128019551771769491575871044953245131869856833655110696370325741412501463592835140655921452909689673075725746971973638383528191797036953991066727740345101621879150724772210020856786281315669471960570926892673849402231777021722741262706555535351408792432872392513162544876293634776853051531158355165508274285577791911891854330038574193283645900468995630965610511325373936938831425303289206304078889195582029276782771057149462780401298423033617315694113513329667141563586012260591028839263070288584278387688600957568114122763471504354009881824628094993416984486756454690213375216584221988180039835194558331769639711369029413690148692111008553469370516216984730699311417270777692667895250146932746154305396916939810736377039175109032367232549941861469954193947982874843898288696807220823284961297349890789291293252899937047990374096445962946751367053371578677509317393897806788909192075756513660531516909319199295532141322106705408993026818004592966087125627263724154924460185673105060105310732945978304134098965298538518698777709427534627221207367257021972624763088063642864800363062486978289388090816771540412818722531898442801644602095747614224102340493343364957787093298748026610232249905467520119561503647055297729181028318475804981587079089127478279461676114890614034392512635268680790864743423630195481578510517345864532773463457027078461211994647815247224534995691057171655872752869095111788756448249902527766075191427258740840701552039841371515029245108705094395787507033467699307218072672481407375799662633571054607152434101942698014792950097883526320857823382992316837884393289233617021333743683365397476075089721202257724930756870343494185575397649605578922007899650570840655701114693059358068321318371261214006047337349895964666764048397122732551437871395805333839719919143448184847581339937361553675889203922021177492985250190872900235318286708048057652158555967593234271489165883036039831604286157084810482080484020701258585290248450836489149659468235879947119447236630260829927518595841218252341811742841294977066517689835768027113052711434809034518387783087365702274615848495731310727947970720763250554035922298286537046566718377361509667906110753491369146512595675281117117429466482347000721309115591702040441529749775274993862356324833917991407750241254919688809463049988157419769576733975452059354346072942826303510006765530784987623344922847676432646943574795665909315409871318913307505495153845905150238376387658689807672065260761484507893292517832739602791735657765351510920841716931443829095147424098772169017360089797114373921751772407885191560708710099018254368790837988571061962624877130592791019026218190951932600719633820619147119341398540110624874208328053751869734294773126074098483038784236691197977820979514180113281027316665068162319231415402997375853701724039549945721353679063133484859346290644203172046187676729869300175627573375533858227563430327394723690026786910447299761983734759741490450857139913023402147981741384190943359944904658808937897986874042739219146364393456738921231061347358241292513741725922131958973859201102089448048264782199426294783438162542706704186042775320792248244440351030344486143934414789325631965608556166564953796407123863167820964782484851850053153318291713950442426365665379814794259578135183849118566050719048352359371141458849561791846176825424614981874595189685752142199105740716396874599989433178660923278924854549981051772530840129354402681957838912283089364579902510481971818726122325954433049536879830868277817428471675522425724242877446609702858140978613874971342301925834061162298827707704876049156263072681273099979488227925225027920754723984092138761196074756277829350917909351536438017419318059825860948488089878343922174577851195539099350638937582961190949749142485755336060408410607993774789611224126893707032937901269048989793764734570142849349995926593302987810083390084522297112104224051457446127743223292457267294136049973870996221468151995687083679000409655209103843869124701881684150078443694162174516440768679985042962555642303411699437350161494152505203553419726341312946323092340500322146498264724983012406420753205841559111739863224859492099152881420163548166049146548313810469293353043005439438401026059099783483484835506023950902849447664169584434724871924638074148317207304303198301380097389013041577763493797061040273088828869890394540975093185013018255334246576582114414817297131004078674420260142213332613053846824875223313285488981885085942384808863434139998427453665841409837180708206143065226494216426164015268758761057778572823075323882701965517285299774133313996265160732073514695456385868511402524500127872918753408981121882383787496345569822283043778215633282076217132654116661047080772798579552810399493373009214765205519495160802899496785361621114972731570345602059978268177077319731083624267283020236171290699369222172961210004403675121369052632259794533736188014323417677899426569257338177521374866115924565587926478468513837920318325954440010778827274392915424980934817467494047649089796903600170593614983467349036704550741195893742891745303237376161471767563239816119012696458512548237094535196482784847926490748103230985705191041316969850392464834306902327698987627646296807184389748581037291861135892198039908515708183257422069846318757467427199725475583668477913270297159330942604702105709021099211959332677786409352037230225332019490826171124971538383795769494487781963701159447688350066411082347372832587067959146210048325687655574632970676102467460074918134780815860384670070511612113489732569827539206534401881875808466269053894888820379483792530239895064651544657727044410185493596405535705672565344504583333145718487077080795587295792749422687334992566053224897612172057066887589765101703753328197932572057491088287543246652924316302100309433953427383641812835443853844146973986862364974312145553666580059055631762152940467675403363719619947706606087586783555411846837747296019341191877508848489823428288017103113122056989601515410529723282099388499785518710931854532640973036101449650107927815666956388053669366256232606549822493691363290722183324023335942924318888421797513870715452853896332546454063179647134412391989124421548572470421203234332577528284846605228441829829570465608250896018945454689162054246962230130990973002087064314090387378639797432105221176143385397340121647546257256854111115326631338311778823374871520692490360622660049636649192481639135151413291540525958903232767376395381961542232816682048178726851959635457333766386465161395408654406046045183502573310930793474680833507049925575240531936300199209898798877570683060292734332268982971840776546301024261079135250450902558892092298162748747190591229234627378198723543508316774919844663855626305979282640983807986996255210356489155898734807806538649905233082059359595638968949808737106730068175719128801397124443422134611498785689527088108445728783310133109087066914524251049480274342969468131315384308718581143103900564466807355357573385535192046677802104843501998571071522036026717737424363131012194421361066615047058410191895536113726321517415193335710194705860816283492481707695536304124597616004690676668933107334218459553929312840709962658979587758865206575127755227093302455416101679267389528867367286512294653907731951506999951682419597170369255554950750230280868388573122789798639158799336958334950283983349153429584238050685486421343346081504382279134153334219558778967899204222112686156624345578722506881086022878458675717504973625985685816577063510997765254934751234898501152349013092131016598026214391449940228899519163352129653299594445706551194830443861726669144213360230839375529587401745101164410560747138978397130610263807422838122300812968791278810854607249358109706483574703916933007297894000775231539012192901166720420643220893112059699987560245637950580891028783374632053528504079848248170413997992404169510330905114569765131293551370822549903044906605358178899415641373020024217921606162658011380376994373571139629685215060595570560584464673473980818210130301631831184051562946074229952132799836649165336160459461327328484915259619813620584255620696946362055776829270419004981346411182148664170978294305810563421523326043984388044023425704152793239286548884552072820321488857972438207493266238306754290704583052785858783076685704344278310163963354255996708604170749763480419289834215347052555570811581610932743434154930189632575525132524606270310279550736777770304189020268969783672105598194700426548854431329314563189785596526960580474394336103127064842588655321562953354793884619350603874938385804905165697532629681672321756214695005587976960288752854362431660273519038269143864020426257876102657694036375205277775892691961959476879220623009943439553341989817916691796702406766318490125135648215241480187082360278551819049520835681702761671344057911984924145253111027182660104106816019989844567210647294253864553367786798561933209438610568416035436539494264457048811151010240860908939894923511540183775665804572008612873512087127101139012295128816671337103857913054333021198516026056197712870427439542341143414708367192636826078077311477848006605945337348513566009252933013450900181101729574343094539079612324015051945054723013759170515540149394708781790452896506237427785310514090633366522117963692564460786745344860616337314171201171861946478055741657142875057872312399330614712157317058516464563097440065899460439668474924305641458721932942364402497510923238072978089927590343880984184247367031711313255740454230603271347078430973887842144681791252402283639048615371432512023237832371626997648107603021571645922236026427304521414945390502737356457222850688413404653298778540622128877456570185027935363880059469042602901663717796053346806558446607260671784691187786923526020348191780893500885979850141076255706632474589161796341413989664362860785401384708309741309550226038168126941227249992210849356036675161637108665577832559895250821125734886663285331742988338307947242171367193104200020392473213187162683575567710025467982112754160994628591588379304305672724826940177473772616097977222912579701788158439645565586959986913597616773855498256018754788192759559839782659432546249546966465482706430294979627622395821792285127455205805100553892385810738399813854497083053487209576146296319576360982822302353889685665488852846021840500681483233291834702029804353377817530681044923671735149916769528813036439304580454008660223834207519153834476850441802944134494933090183612008984440481326667088488404271608914549579467661143404934817602361074570470896400857073453170574084239524024681472496022144342576251671586072693078810829790219447572856188583549759251025426116686930109167447250105663748873846270546776839545561842800133743038785150688919605676660889547262276349523302224512442794655069157099131257767735847722214519994651036721219439090520947384315956084665370373855457010513977686897669519854654226693456774271708724143086174776665840224360688719312437904049372712895304265271317786981018716967659853980201182842199078783249887523221361991226194579972778133880690278693765737245080942096224760666063506097852756294324854596760046911669764871609243887169395011184412137205482806352726439625460517434770308750400065569882717458018292191428829123379296533525541865435078212674104897487579090309024512546365459561565951640190319108908888007843533617162674605952827355968974689603112038683969468665812627934257470423049464351132419951797483412637200846569567782239190257035981031704136598181002384961264530137886935370468248274697748338924916769907619005799710247609121619834359311719633501513436196993733142755847856948407550755947771705242331970424903380099598238494931653240281978696928377813403669843740605989392177747037697569800339497659792632525206415107685429740463674559830831283273345486293403930893496555037721426410290930943967442618422238176142423750564107779745777586117078997637792001732831654761634314134570371516931462236282845494578698958998091551706674212787326854200569761659662552122110270023475191450611740906474303099437014553454772913605165187936396862416761859178981322147256351348836315951815944596745647835985061495702858770157358510559300226378054460530215601195562823724687684657405987009151489679688261403509574027024193082304194415278646636775241654286688578217237943834164892531565014602899969170746439421376416821893312550884858942847684353537061208705153370670108566158799231018253315443539032599822171929012213844176475830994144122308800998904165889441993596298245236964454764210942030091935363775052756302843255793330955492351274044722082104132000018375161028418206250024357384010289037497785420935261659202150156803111335026315025354931347143345137115972155011632255285733472516873945153093467668827417659042790836379418345716007761383285810903367267130477335728523287778443318305088283235571971090383416986743131192876472374128286086194894433120332196050396995816283097454345837799090057086092017103597501180874672054503425552047527793712412214446749740020153216420897652570796873620922760713051300866234173826534359500714188632846045760807572779713662364573209770037354158420695896272706915824211402322936567195475943990993023051522499502976740143287929341709690459349072050039096011626874183875420769219267243425601389054364487063963483737605029177387622222313630630476458705277320655809545395027792904655218401797846037328829789229977552728331027696074129161691676521084865603733339872109295444813432144734036487959175385054449349157765054705435672722874251205518094877526599143954295691449352472326256404883364976648624788349503776107924905639405307180882559485084738435871835387147159616267167038974135598975593547142819953157078687285209578164366073667609100917742577776177222776692161509621791842062998583235997221430937115092953924431081054166614618203438529531060916474665413604111668448920558618167425201927013316763491861798711825953447294857986005887862740180273633845967495254783504717412322221813946439427092439762627956123845832702243889142105679048550160829148329408662932998114300542342396412386414329993820064564484681637465590139597605772939668886043172690237170894351732074703755575179012569165328093511954515523376096079505272752344560521221654998165591116545145761699824286130221233006837072614631661102849107542734290496738767586255307297128394631345545346884917486887021804601592895488186175406933306231800095626138907813063039089902549808822571495161234927279524340215155351136703582051612550927927687081481810802337457878490900538576117073835783261779781230270185417477936806799499300938534154674136325942786255996214035350311757226850970616835950910827162272977138346046427856154832691144356944194225411145354735991715212904105353231369565859381890251680890758109473092987864649273206124775822595323266944414555240020100202177998601397214191700742595974264421611676582448070896770095348322484693309478804925518340019107284101760808695975910445064438893800073411256116417898245420720732009429889001098710238669151876057333356979100424594865175781638473593686296790454160532524694796550250487684168580497889812337225969607926496482022451882104857163898278414312846537733100180315464312370024651919550750754604569936220549406096501981775975521808140852113895412597658923981635712679519664046719525664601558860187794743525137491168343880260093269503965636592949919726070561231982721367761063284235495672857328302365747827220186179881236300775900042493235201086570905349221544038811836864653277647390322046003042838454310417743589788937313433612682439779819345543640043687085333266017565608780052330836540373440382258355244261657480998084269424953400782609900390946963393991737378694051239025788393676303713770977984582145035036445120730706354884059212338069202527817811477323727896714268402571131591177471073916452329715206295316080279229116431178717743808862560095950210642910351145913654357634857207694927582057263274702644008424893483836983823521449716512340800386040917019306590765681929818499294502797500664987372737580762032994813647393907386907504904121462997810538904407440211969806301685748375618733537914637420458876208443570234805334387815313442648578577591141523417683516210860447936290065489294648176128136148703515384771071979191404382917780057266778187487459260166750457648833942413066124665652382527616551657857501057002830390251748365594212605259072788702727194831056398926433083833257382499346078444416489809869290462481829196456309635207161704829909022423729403018025776096259399739709411393235557382441197578714524501917056023645381890576347635612721927807396206812627681254104613990339992206214307311132711017838360378355887772928776362739227810291126921863428870962393087106479157532377703074796201810425666648869631526477979538902878430618835156834350336859017135211609031449812533099524885857231743589453293175378434893050303297589027532636221143073508819085964307990436662790263885894468368638359200052725230749518287437161246630146735322639594158037213181002934148842660329968948781910596610880729168298735092150513509400355753314140854444977923825029367707551937032238578767011506259462887997321209291974720867406319262918197099220229945960543302393293869852546374641522593525849272426853852484424320255373000588605645293298263322617011564478143731070657304728464031281158663658968499471549878483774880297396826272019181121785909600495707627206082086629523557030231547726136819893758981167680899357432141922672904264479422895350766903084285685233884139872113261887790985492446141910340089518446515794307726225875378642975453275972359508900441451673756101773156053352267415290218914580931979634952022114552679246908445960377866459094084579246612873715910172689467460208469918934200863536155799430066429246008616716044485444249500883583956748838598322260770140437922629376922709322160284213957598066600283406171073586917671831088391559335412975766398116720608686572533536173168467514326098543446636802774612454521324215272479361963788469290979374182748784019016582630148215685391438732544298326115190344198544951242537429929718089073053348791927309928172387778347583116592282765034655035392922384328433956578180147889260031404532268505598134380000785633921384897423637572604382310310144108227372428966585510944235310135216550078241430704939796047506903648357472647434931875136192129550268630414413610483982399090279116769646967325863986512113047171368735781319207575829670143235213577258923709560986768790621610573234884015551514944884679871884035115019410215401428824957690515745961399864698751721512850891015582569674957520836732630816280372650730922302749791618348151396430172569855039515222565803689603965636536024085746484097993345127420436363262675395872210563838083150237589997436662241530467770089255921243765194548072374169790658305011524224870879413367472112672745277681437500896289152302313500116708947945760637447266829083496971128213360247549326368941397135209318115266861933130057369423405263254788459317504649558423079740338194945521398689374892663870066205738858068508782539737083545707183600785832073957811632506086300179732325622371145438369902521736236129138712829315295679853612853745895190896466452785424602575458780955429695107674871952083620466937617989094120801281330159400677119023265656069110254036348942730395100478600636564255086502418779741134940945135093815962374912738437458243544821912127008172125184847229004860196994342029329646820706192338682171899367637943737568028835172780187677944197637878724628018076974464181888150685144024944852755279132259868564645386643674120274611974727743050052675822160535330338783783380223377251087311080434010317313962559438518918405080368137454423927607790389231601560761146835332340576339431460710215050882394499648760142633343200177505501423095443109692790573931758970150200928907305501505635665284688386817318983059220262381607638317631978557321559625045913349459412167759376885035847444290011613608829710280894683848489139870254649427975190903934402423781381795436735680131619320388856285243559264315937514224123728634578673635131548071261114144142683370334179592622324431325619184610665241420097869466837884348497843096153649788851282331224896494146070060754271930729951825496089436394526228502416035252338855930416296855034564615647062400246369772083922100948415142802644991212228902765400809309595407834572025174345527939195791168737541993287887766892078189145918631274420962796632486152763937120251278489881196488009497967487680413471003568361833820304019255809777893825034326296258243565341729527145687688943331888771997498264125962912750488950678737796619638621355069836631065264351674001363437302141537239310965853040340824446422826705359397791273985347133655215389101797770151837635071350759833491833290385020980524743997713166949649004088015867574548629143051619205159858856759881027969177659905646237966024516290496424895431790619019166820290361801748853211411047242960999931574060216209866180100415805853081193889688656141998235414228623333142384828447347907434286270193899533992282083719765675540332535358775754814401709937061215493595785408077405581715089044908893512044842054647278092884998774195771653209443701151517330932501128849321488623455663486251813395093988217640147092445912132283864741107506547011011719443182994215143813500686384296560376847830740853471054728303472864199433457152365358868510849066684778475143444758435344691194400689004676067866024311636355263698646161210137892808720328521664962851298805754222618837448514678953828658967335043149903645968095860246009400955917334914742979729618750389856968823452230807801303090934613021475791786517663339377848502567178224011643297732850365550360803913107098936304310439360476035492843226693931860531076229119885460291952699853048013508688393658257191844338653295078621865432805172996266713318388103609535611596474827337534953100055279321356207979382985189076408094381671773762793788300171644355670998284676075861836227748058520923832920609828228199078488165151755226488130138697362019201328030345374234626186840855028593145000477970736727354993457351410484917145731574329003731450171744725523831578955867481478115861589774538436167502528936299199823747907467564106212699171396249633573033518209857577301270533942275026247020524002550742990972742414009162240967815836647268741967475093308630293907568698349453891372676419021031516868782532511870120353402424268545492783367843869041296798946732137062772344670920353644238770618119054282681996707353503615041494394390749008312011234143551214229067871952169059373395343243561370984475108807341751238831331602847916947079918205724887450318602242773070474955158580912162342018102484574489398186479376528953241203697718260678355904497394717541098315764423623995740620147663285681390005332895288377291232606120587241405327288059356000347666377970550638552242303368668575235991909783911696066160422359550408281295542985478683229928692471830466972350396712891111042752486945341981055566526378271513768844530124463883378032949344246277173762727835153559067821000603427854139919704280137898327257683078597079619145293846333406996100884840917275823384186621671001007950803436857979287761882178844123427669221672588554308305670646394505463289657315491655541445940803215196883301560654566892026548143478492643529918912121964549279097392272099781652811503127820912662080914883352647611008859610149433953241661879560231416773475339638394523283834126449503503579838234160749222452540625404207706864624420786350070214964313400462062721538704071691576917260804271086001398971039543054619950342827129474677029280444772311775827661330994322401268490947019004406776838501626239833169204847174192656970356675963337600138328470302179952664177945256734717643798436205863378868889310224086656107819843464503425258831251285264285253238952514853044114933576041966893800861380284319476874961371356625113318440577835353817858928795099868736345538053905361620475284722924524391832666141541947850685166310382809713897498104779510555373830307787313768330891838253713196400157687217083269158814602452776207614019366354275432718073466845894006099413142388021784150984017957166502301913698083728641366482092396864675345062086882571568479227323230190542104655269226503015891811721438187702955132843540763871414901580423011836875912384313489998067957734240672488764380591202607057712745665773361262688994561083159444733633745573336341703681639595314230903093722243845249978266625513053171285759999013762008532114696971855844882250095965923980381180241990628484146854072447089338372076544886890398331219442377285441731685789860371019850517998559201011365854377268891934514434014806949209291415528819329413378493281470259342111523430507745409165407443241088291282878876821811849463713158933318998067611561115078869102789187563251788620081365736152404501252830911586753617383969780529933005636141673280821423242884632948260934403743983590346568372128098187539165385881432910167685546888283216823095350468169662590289368741585399388466403796152276342748583346052819693852471047514415087476968328058597966150257077061284329269213315395112548360725822175802737822707888607278589638835166459141059585452254647539198789724242580709260791597392019869224618477403418534392487546724201618130131910443469067479821835992717737934427698133786701405991466840005611445458368743497217899199399999245003151599311841940397433332447067807738403206766261410987297664777794795702883874834251300275154203982859023887927468967942920550671572526412303835343136878630266774902521368467526391499900118148278107453236682401377044233740962744918532513059874414713166640373377962799295462938678939600141001115003435571931715527108106124107534622574044564983707827545179164147557095225950418871808749386947027600810744790099854327779820622051063578798608113255488728104077052678696775411948560879286700874840601014613373120012171114336896378084064422963101373327335144200353371438309619830660972198805035601997619865634452483570774513713772821552412296251940319084808221125009689391627939668193728288640619207747256822402189359523726039691255311134742833202352523707109838860220817331038337210770851415487593766852839073584167575700084621994314728900945006092429175798786415122561162228933761153043617060556141718594012280172798234334438104139842483922407340516063718338371728634126641481452599544138164887241738527384476225134868420772651112799474885579460069240715038533097282719102646741705930399856113574470268550799801078201045319278340959410651494781966181321593955758569320169334209884524455750483411716531539037370896794556887954894155375695973333083042016927585664526041264427647218497220155474066438845739052983144948878638376150799007488241504670581117194713215256880347507795126790549124943113945161871835353584984773085252603143347962290953949628457538475764596848051090036619857575734771847391477957445307799299224797711003243021996870619567346209209451840050135134555403006001918514668581207674419321734831685443299816277349859231517082964770355084452986365456448620712496488788982023667963389376590920475731732251285310313199858563251848855025612136375331125469533916747653904213099691777629885273549720688398141044125281479512775443895705221051801298388251573614734035417704546470223894143909598342741356786495233251188703997953597530289034228422373278222993056805005817435799040541605361080051302914504952343904929432812917838640191690211968627084956750434980138243584589344625600262713844192598173763709754897689607642980782955320757004366529702616232359296888468405525474764639508313427198551475030389301190780498306835207811153292032412374591316435243223309449947339833815260270106197471651690139945500119904496998941546539614756137867901106974682458679584395289584787887121964542003288635097629530837561115495475223301142379557105472712165503539315725543580374011127174584501234508622336892386264017562457220801912063404201170151253085062708216080877257026510432315023188632769813172360914718430606175824928812751892836182206174627012839286511367848740432205726734466424717152971741260851491707035719072241099073417931623217385803116923881152619963533270336160426744040033787844156905552046705180113598230513332888047221198527282122844775818089010073044011629339331023096934547046012559128015085662427718359790199037690578773332417291924906390179254894723288774010526936688261618023997704744992759889995639898212577016249232407063280137038344257458238041288362861920756153274971227774253954113298923880222024896857048328846216760180889841537564763349476959527354088425081722410627627538141188797064781441938144862032393285505517846715972995230059786498968706478594317126578777180157777394000885040930346442589093567884790576158605310646576325303598848273767263440158096627014377799332324602010566329856034683806060039364923519860023549307094683861303177106917330084636633378546712739400037597517129658129125506049992877925306771069472107939749665550005493013088660960029293488772502793691890877610829478443030730008835279607381805603685590717664634485655659781040539504253242238063403004134853762682682041831730240860682253873144696998175726177230154297923787159197941392498330621499376868189031565843560548247227994976092742472371675495809325914923457410573919896311859134811327229264174097769922395685727531827218265172140255454922498318939668999862929222745285208541957210543993310971429683026426438085130157823943679823486798323761995820510113311299980526531449255743154728412939924828114014601987959969811508522589219248327424603131661728843366434569272585674554737349037563176222831692285918452358253469371171040358745217334336877534945925931711813992605849669850237407030011024900963913793009315215275040070009352492387571653654011621658395505576249505855785240186806653013044816462830468215657150602834200916470180530145566420590680503100766524178727470903197945134446972424999943234779165974946314285474012538195139413420711317176799608332442482082047422505603382571721797080640212840007347076092582998555762938455546624331446248378247808659925738266277065368507083765254076037816812631765922731494446148627868327350103052619361384339975512811850989556076980251496307194430296374719069637999598334458729442241427463527122785744690841818170067633053604619365796510410171934346269020285957256552504817832687883476734476321206206835381878122710873459490527987519476736623620885287481374820240537700431045493595386624390232154007159278385593222557827400892698463394853911207339494222807993380553778594481968598127591259108478949138964925622974501783334940263811526797382065999688303021235199025337557261050238230938218675404261465191991296774301464773324555804667830683374463750182195274912872784155866054237215054569987900829486742666487509776485620413802378951017096695153308814115864998659393295226969301180692210974856451912573334317619780793022924289383930329404357317415441021050841041852211377069973375091624750642522197297201752438727482247262818012080420735921487195821377902951386253033734491302789381192329099615169364426143280911577262347010663835962608560580387282045789601615341131487347419835071316197909675128913533271479277671067526971480632929164455611643413656505533408682393994456172940224189068003097171226614511371880988895064841652444634177277380811537447780276359415384844304238368180615533796990028322159170232707958304359820606423385770636928741521879037300758284952910535366395524363602543613455592144195593114451464740335959083382763581678205588550656078955107523970147575349413217859251245787588130908671831280087584663430405295172344521326962804309342111570051798306274664729117091870809995489251699381170839264892083554074920748374676461156610298592811282644240809048378981838104152298561214433628568888634037445917841832162347922265349813976795541908713146685327779316254589588935165966893760155857291919215476699567827885123425209441380068418288313397358694120984574020336152908339890169611004605917580169063132264968377369632428585588845452098916241104308953138927532146642415599979668907632190659258646342007723515615407991256959632536429895130443350557052498510104920492996974575342292428797154840260273036155470469598482653810199668027333934393864647266386155900916298113822812588732068824070149397182243339181831610494035680751763725331833805111609812398755088496755707123189545587963829209394231706644064736207920467458331006440546267964877118414347173131629521100980333644487973610799543602978033528157789695033888838022784890939220544550931515878491315955203299939702043947751160716970690619085157394003446421761385724379274365268815227357445995403256356691158969395461648023166624684030318933076170236539691513177370341018965511128812019019078670568576772073144424019948704857937378882312618477716686054810959743501062612614554590453899110085805008922410777845309155936754078978237790600524449735686102784987248097517997193270937432349826322412031033465550755918538821961815825254882896706754589883911242069583649227911635930692227533152038254030792303472677079803292738857418362811958118987993664965291028712484864156992032742800808388862106832944683532908802877900803530217518530858361161548132050830628902419805126738664417438313160893972798051046160489640673636975464360931091191191729726182118498877294121725424983123348295255127546694469011809703082720901350950017530881511122055145695556711744197028980563395992563823570182069384562140867119790511199471619034535494734341702639414867094898590756381040598598441952901720586564290347114297043913096692356527672798353901137664524054759969474188021749474967481141119215461824969246468148579310393151897101278312270680080751817109641211677380248632851424757492388134407830880517651264246145995935245886812731202124864811544675039496589608896479956069825881612556858717097964280141746423867267919284508992698817357511109471776934992571771607031126087674307081373402028092986933807310259237424476326406699559178764475003691151319495454459318067445193202022930401117077725636728945640685735998942414865883906186209890485232190126472258158069762676288191167267883955143405951414407041132728245702673361243823370635034076599056761299810256804080289608250805881374051786005166439650208842603079770320313297903640591023794280360988459835903972080910976980401458421118264469019423562628541675236101768171106785194607077629915835818015052332656695142331724604433064846954870949489053393696152312736531270978606026372957179349612827780132821259398236752422346536357881483246621624899223042330738084012681185685669019335820119240969653184280647339301187513024122106754779390503197169232920511862831669824154635066834588931981813829225252545556883131307835602074331694480851113444748773780178284066549699014740779833802727952371851410117601036816116750166888303759680155596421770425059049352328588095424323498088725168049280004679864956482937875635339132566129788186943429321025079242900481610472142737809216618672602599329803172904005056504227314938762740260154263295514909237687488701409005074760837898491566139038870652107113990871055195065330039079206152074157629024394101572447543988881495586620997186187280837508998813204187041045150486387280859279115997234081532637177940034844390474930390853607308826135727961620509352464462273388646107247115710448793968496621022627537886211443193784905148668773493500167474962329235139267509300161268142487098958818643715123623801137014631681696311499658310092850655385119304006909409704714315837856378423232821700994572620802862015259739962116450824062850367260823502853844102877576004089356575575217397023477798200504001626645374543796951392892189460443847135237991139707534948421416318638136197088362893266886703473681256689098657773285158534010099527270648939587371527931834334878770293155235992687614037439658418137139049190222052314272328135973431046833185270329234446347155119952726200812923603343112482214209816651552283362176768991206896055417656886908067435078357900043018638211770874322146398860467117293425643573167519893260367711320312906826164348589899117778298630617488322982277748165939631550910270051675068751681718154006934667535013543975586899125886198252911741075191327498225484712269250932149139092844436377839559710038197108596281676323857237285402599522177407752690691142482722938155447497977164971432787595462375927096593629267536395724934849207350036099827800875220792560731659079506796883215070092339892370286875820818091499001088861324580011322403394648083087927092198042712747305320933199341491289474927871592510769737478746993362094282940028543381255692326509952798491878053290156982763999405185705730718732565124476681745980826080785214794204325708452338602130500427615084861547188456047573592858341324289383508313244864967682762580483538897902318134962760519599641016487106618804018013785280917971643364345140340278327855421152659123356943022710370344160267410311975716344550437480534056445553557178749309372239345119220158042585092243580682083880383592351001640475558752618418088071046945361791638566435533556509110025837165057881831132520688190277760709128949116461261619834487522003824041333235720849474777004873118253230300825770628740952966250123221615372141155758718297216791179541666292895654624617944735899586786763513027034826106790321076197805446222233658263704005815875325918853309576534571454544090583884550077923805411938569784806749109812363917330686968527258505282946230515848682222447804145452047128570474414498279726212353803376548223306376230134355211659487820010533551678144478206376699517106123747187559643377983365975214779955700168116260797639570234586218015451579983365634060098679217713572406913066513479175035977949536923353573655270164247643557660689680177038101720466912882981052645966965179910236917290014655037490987507213883528800246543451934810859875234950674066012763963558127779848075981938456890870660660797245029751194643050536961991043227277527200097409256255218785652486867900682262692877823351584229629138641862526537719077795973184617824977160038383506746243710341013628726389825068265657676086913045440233869357443048352218456028380723286329868042215995755703966749113319816455598995121453277005966042084663225870957509808580765970892042744188216425496508736842519803557642670052993577615488539495757377907268175742775180702374022943889230181748970410065623506217050968565997539954004332824582686322190642845896180108889606567520564777705335901046660799174053427456091262309204884355873910591215373314873479650357743671266687215809820472771970118416633264443573773186994046316677513573145926103417825314056359936436395963582586461358689067080800769401172571691744725976838623840528119306785218237990207054282517357965663058876096735848768032557819555386034101129335162325912801628840277734286352914341670004527992567748234076674183321142596808714903538171740006560821890550662087189175852613336837668402068762355083455297853487181043710480920862458255002345444777166033379646346365609984737329460215729653577892300824601786965924573178017115736057874365281380245042308657551244715756077125675631161935182112014419326818896698162014554932364213781504497921060826679665737293887060931512117827482659241268574157400761164231463433768786760149293795691375117141953192940367400237857648921408743713527958247872504789669190310225425969524758148514985441792757892264355553411744293444175290072547746979907857436708754081076469049483872939432378625148387955619740063114967505687622900652136701699109542651545587017628606558208550821282135477006681435763923865639154476218487809337416846908507375820633652480186648196786084753338768840677564225062896063568132300187204883095846722385036012678234919551437037895117387263990588711214509510914903209136916972882227051773562085816632491813316609945605422974981596157396992701018049562450704110715008614178455246835109098278019844442927465747780963250331864321412889675885509896305832367299772507465252672132414244927121443650418244113621719829965207967243530116509447142777739854504519982768711313259416231957161394748381513129369810792895194417994597284460327716014148862494459751573357145211025889716445681258427950841745557598231090911791491823257929978902655022742101176408973826418948665813312322583152264147730005681789851855457491418569183952993023314266034788260634299571707670119399204159480899462137271833519487288162994493570756509718265097326054951464460856515324961407409953324413997047723265138615897042993549793536669436204228121216317969792336030357732589962048755563784337928166275714389322079280858943287893166113659648580724426524766448618948497902691911531401604567980513533506623937187076454104111033529649339648194639683800698951523651162553674025752118629081846304417272757837953502785699021312175454931198437498279466841542569625506261642383244033780359630582608882637592083072857307324730107221455982271075306733754184748031663753296572151472974756492489774843718210958051619856609024801643683264992250854032128204381597279370026067396509106806179634772352777044992274486352060939509584435881375465251942720283096149203263128082339436576537955804614872172620532802672265608264648039132413627494020543675104634586827429131502458008011384730567465993618426877217495127982424435590217346463959822147134909797802776928967970911708074305437680017153490708965597665020676295793163398484938863968593601121667967731432344406497694911657992601268886493410652771178252304871428185367497112027458714490736475177182115848618953394294344316165823448961331172801014969259679919854001277462629394236293864550065626355295515320839361275135803610232880285845679755797390236571810869884902218302777741908891920707837159960537652147689367411765335265412154623110348746827117066612867718236226622699946462193313658031384181473546467970823781916741329586587974984429294246045905162381682927814776711368992399506681155809490150355370415568821730436346994588066343799108957535245836978358217903981335168659502140039092445149979221108847642406390262598845395579623572610036512162156807457313814210356340212573361375845386679429164988207901780054806717553385532331655706691367379557149597028505732349835539045581992457467984281408641603779504335431030945729397323001443687776839996986918631680157078852097747672914038152607905858890682556302048655181724529019171013188898257823222978847615186624538867588590959866698395967605118831806563264094693750940917250501653132082186956085789546746216167111563847671212843740077449906809086518682854439643163380313890014288942087319142839149793792950989136051051884328963301836203789271782900920854516596586287158646704793144953141733505862965199943287720953315977971248129825720901867215619172420106353456256521574683840211911951684701837422527607244303994139873511726073594736124184203784156102375125186747353872037655783260018587920772452179492518887423385479897992824657230442677393253073030203599368287099227499221092437912255251340277339028803243282941305413724620164682688410924848565234227839118138209094317834853544851468579717599314134877571229553969057722586641836611662839553240870387599863876755864272165867255388240851765694469836293879335118845158368677279471721318960692290225285382001251115522369137163316274551819863027497169117211651310110811984561908665335593432121595704883917076765548414093351241646804096214575577003960628871327354546124205521451094408631154127528209398930918979188631410490851930581562248787425957376815008830094782287440546306253120636356142817068116409930659637050443918562701646279398083903985828385788865353358895022008231946015300365053721928165999487440758439315475402282986254698439425093395526358831852353303124567365921936308898228169452636212764875979308346493787958930146974617368106845319440231645556012108001687707402296113435965550785986155880248211493257908580049379366898295496401272893012413148213929920185981343764774858393110065385623986676198709033756596929231997744304764773341677389720414713997331359798304399418625631854630856092350379621539620537530601631038126162865737817097009865311642122063713360854206159923967352904739942161252199190366783963344267175944512292853979265202671288081218293925265096879040504322414023764927371215436921539903351209869697859711201889021262579146449428877275007901944994975530862943371105612592445189909018996630800127708935087895257657271549119250729175785470701143812393560063500014811567149485105413390358381831283964928314701458938584334253827018088845462970914917859358632348660214221032717741986514674851801633922362709321062669913244795847842367632783443329794760031453144471173210440389966742022312786260888473376790577160764172829131403796815041047644916010102194932198511315825855382484622041981308265953561918167101698047521476332897050087039674734047324345966490552657510691678064948412951749199433173673599561268137436290693932211067776837647178426928615450112230951417866075019080038986679190869421959425704749558845328045367896880181787112564916456253590178666751680697410070218406412095328025627685503281595238984647428415365343128456394544820754367341264873779930743820829117806389465938674366655718005655564335873188513407608768120805453444547404329550125502499916905710549771277300266848575926582584337469857006508831599092775286105673712620457709329308998678132359341524331183637574686965705462361475956260349050675812430906490717622742050751268961958799123887458910078401298756499379645094235102940373406421565336132360261223255146838060654865059942364254863705787264760022959040051595549278858847308990503705490197278970018076114276129346886413495874131947665357983072396434138460563693665757561850665740380866423853851555695925904963079459045964445250291482061879097850756788532978076380998170556339222769093723030893845241872332969846828027220362663311313940756943742948048681654514224507650338231678153033926227925695487083833200475988822823609253778111435558553642336249766529773259183677315090923472740877600769115097730651009775745082171140181857393491223240053401952633362718651292624307957976351099016303869173128099770857031277065486889396240750986759638750237576706698946412373550264761833233689292054541666998860938151798781870810907144785871186044006757276815061546566256104705874502344195416434195130955545523359338967148804887524812233523381847965469162831216491622131674847470234451385234219735040380350656817487025952691807073931542160962732533143034656269469662906984980536877979196935500044958330754060694327330046348328196806358381901253788851751747502988370646860881061973065941319174752067872218460121476152949723206212719599039158160270407257977776734867192985999802193204471385823469493596256024570860489191757905733934470981187048453947144989552340650421604251694490406262809508282159998948047504132791255300569272160712428609766557110776307694451694047058495848840016577560643667049347192384236158551884524959368701679863087777472952488757958464724512700783982634964047060600220741342753880741345121247037154795664363338169785073331102933091573285360037456979220943552301035848113182822067915543325790579107678872464102198906256249906395573201197198271125347105636348012094403842570597306355002500381316961067631980593330233064453848740965819655406979158775965620031370689602095554210450135065984675920069299703409997940477275233206307705340922649941523131538134686066555086524111833152053940954336256515839706939505274876394548001349935148429871588492729647045923153814108047982715106777690111875682019381082851280751111016247275983968568535279633679319229730285055534212900198390254964052126485030768073260908891450171435133852526019955770871641092657151740824174289532750837384945829756609865949171202989566792527819247858534017397215271949784046263058507646964529121499609857587265675348415557100768056584932325630255995557365791841754194295658715837050469736690639871671141988094369023949748077550040053962991166487372044959717147177129182446686979973056359899701061015071560397279908891282265060648178426297005456471300152001764177852999851017567401550165737079623603046384511121200067617660383690941296939207358245116811538193021774608611917223224021596928434179409104467997629357175788685577367283401693129003466354973651452538439186063617288963743827281167977171829270291492259101624688111521939320557886872656204014441934494081860772595074654906774767676407965176667059816895981979144773340583812641728812275534915297744659023217686926503582450518770706821823302372605671183585384789682076253323886993897856334366669198964809273838803559845676052889765450336956756820933793376637405824321468448970941549950581121221965330430147421621399450243658857603523001972554566070199618044885001184577902268792274397053131331691909553432609908897622088978647061725769473124453564372305298383626015870548952296981302352217548680158873913464264189745340769554347444750015506985738559591459805658427889653905190306599399136907238520097204186227097840331752233905481226928139866579895245630807911309678137564815544360537124447990697785443303376814761887925118090414418955318385769608019052352355843363628098635456303403989544052997241841831886068654693812604713510105544169743262846462171541434187244946156423244016689517446511011291523388508968370305597179649059065245105398205864430012553322343364596506951141616619475194651810150389628666149197385707962060783196517635555557784527443596100047596111276424787410509425142533544023509742214790436867575861640606415367603513678712202206065604641803918171307540445230947174531929007299116996185822705154356773770294759890727703771141545160087055926488650623640508068887116039241368599284156325519378507947866656331527043133963926529363749405239145547613943835780962156527799113167675448379719732431983547236444561215959509335825297263153366404517138351122918415317863025337642736106501313121538924257230069875295874867914945082668150394201882322675055067550544001231111005974852842612532463927086800690777146390355392322993016153808103989046894831184678885299609463063455526415422313814289483948098765924773950166616276391713449824554354745117274027921526697604506849380053516352439796078273697474429596153492359346442618905022235590284061890491870224651654661834403630621524335138427084745816680958257357022754921457803341660766039974382352472196816370013245649807979918298247158601216474994995164464608113429409975384945159113141811145308517142223761604286477942895044067026226213915321802343951769622107850795164183381594208956437388324995459045104525060966873685535000315238906917932699719860941219611555362777660638600995314176132988687835150073182348218223766700965382839426765425458732299688306821538266508977431014224673043464067401506177622856799339874162129727636832314262519682580908371177078572608128900396015652391089933569617859682513774167677420281727259956381893646580623170385399181678649062426700592164343046781957727979625174600765763404178505343641014647383039923411080013879705481225065600776405472977110511144945900273351924237101606644426705852577044039185457436586920965736424526225414476013321193310833504788857117525546723943340360204439421179588958998290717516220652595248099183009594416786494010880291505603422888691936792470555582986473350746454909451921029585355252253274157956561409945812443244939444983178598400337040101102811669503798117160122357915862438506711033256280759975592432270389068464115677431577894561090961790282314576732219399462179896576660817960176583748739252635219546303026381562671684048147259514116613541832790756881649771224265660762579400662813774524321579392715636377880884793003845465155691409099236651162825669081459249183275448682116806365790710283606971688733732184748206503353581317052471086059618133081877077538934666666332485936006848137540626472340092017735764551294389596695215004671381533545389096948840177664448554259844679491460496453167237491576238271091788139310119190909687162885230268483111701191483346463500409178908590968447887981079376741218936803381413947916219356398019387787077954117331023648881435122006521966045121093749650043534818493869048130047574183540803689206178491347717983009469967322361628135494572067128700572035213501670676395788731508717236159292794662037979690374617827039876584396356419568581467865137807625427251649314973954428667956882440736491840402340647503695312609590892237430523105469394804841796974759972732704989998515327534664427576914787459953095293500217303384556300918958156829927542530486493245713498000908598213112429641827376437228196245939133915964548877751885491758017099938626426180478086773431319407584474470960123133668299804398713015293524643156853407369189303054910970924813330812032856462205781857061118958206767377385376838230957368162159517499439633666083868548648446074437154895400962001243017347209101962380668506034250793035040600683747053460178640565270656459201954775457093756938240111993151004998167611638523342216441957710762684594117881817635850523252818250238388876888055060010819358932644652373634824757790850243558736265242928146163737941046221228726742479984500226844504949531789718258350237636972703929097600238616729635847186013120846592688974448336068656954653933431917556841558584073995294889943867717874202666590163594970388873068138283622059181176780219802500235305759620058912986728245881598475111596839983732273502649651212895813530219388155470077210019635169209357092466521840955310933651729202749269449529288992253003073809061041108407146886146452312866546997685962301384163994710140746615830172777663671982268101728972061132808371680260706428862195950622577073974830702485773609987432479831474830256175414436955964326412359423234368254329848050218124433696055307222460933325518881412570286403865792376721239805383436319096701191875194919536185640121424378764440242982724019960804694870972849547091582799380666761153158128927440495656514193862622098129024854745210977804576003781414501755612361713299575441424060096614756982387173278633510238098477828653040444468623800133426031151455426080680156233412738792738258077804716715539800546911020146835087896591115582395130490213399703862901754742740130110494271930362518954233303870806180653422148879455855783303700085338654096020971690984820384769512887239471246903571551141939594630238618053074995327533265840703840025095839286281200938647778883068592190659966859538783834902115840120637445717251801115248080616925913497189025581306933837359590448019646828725846200633183647251993637527822947245960587015410620679933116344098871944606408448394813799421922802136509047759601148832107521200445670046873325230513019555311175205378764120290249865969672862942891821395220630928601437409766816381360662617444711248492814908463659909901846220472422532818053027799429284798731343651508836351207247991316924228367799262316668497891020735747768604929755023242179032428437334037680372475032526219534125849827841153556214737117514738415994398585058121251484607721693049313121105722180853681784991777786163982230434644922762364470131672711763060318440417415279923692587749854748399835298036093768404166582313795700291589167952114221933663695924268577444586284418704385678787066044509911521359029170406677973298035948380906747747306677049089230660964509613545788064620480259151431929189419862535366074697100120614393566431180830134128429043882352098373233250053733174671740341279764726893676998232179952130258007983560057767039662109411477373931334166609215440319418751277710043463507873317272630758716117999992814785756109207122559771225839092486664233956890176576181192849127037959334197090582404429261859544771849478326606185108615353514068266986454594161473225163170983570275745803771429139645039565393363603329673392553901414728902655555912064574881396533105756898304261354123944748290043140894634725417690941131931439374768265898952699766935873749902696198157675587936149002367405829035965452315839033508480555665043019144856753999441187817896598754338871471168796383687729708125903102683334683535206644392698549256843595631306920184508326544959702633765669163988614785833140747741342289837227149216699879187362659780074564765131362636573466260766404111913302539182248114031986681573757921638833639785843701488237610608937348962130903920488081241714124488561805989923470085066826622920759106214825639780702243405361900187278262840988356734799586993878890510308768154694417723006661382270740453809357038922891095306436442722777245423031795573171439795032385097798542186293031179550619589598193834523197886154111097872632949892687152280584999520561535730274417393151332537367457417205996958725369697891412213167346452252897753445185481993660191703479462318345227802097902525488880385369561116748624955668020375236723527189702153841065437554823772059229582173691052219560815844701250250837451498715145281020421952218772001318268319387337143681772048689021477606321672657310074447586528149864450337038479194292183572763823947834089244144591247495124779594529389456482525721426215478762899116197558923212234136818097257345102825459389553702105030389059235797310550273681990093365768065711258224514406051542118814975098212533383769562798166175422086532619710914698907496618101091280372641486563005478734774412903213278962063971187744560426351155043162704887698878023608309297003849377659094063620285725406241343567976772207626983090430035861991596668997763268980709277139717559453019974491014647891833952470452731690093156088679130968982356625156501072719389939818848047889261107517909016658890883010841297893493700563750390069011858543728103384316283000188027382919502285608022678269369508049482429746096072114628176821949182375120305342205211024703974169060341032201547262831638138141320103585362452588697695648976976264239594238118558775361192886342694340870042443621150990227422600578297962570156325287199871854506790318830102650979522024060318470805815746684953930612526705663307910149836470565274524736306638988115784157296920436259702529037255938192725347923669262461041255829013736259004622223858247848386812771128482074743551821661818614526141618392041043916268828778036264084444043601852317048149391458282730440275333421528311623642162829217228165525850344670686097212135274427189737008905772694345653450250608391309337729377317969653436605534957924429985318736084129780255062039896140301601539940513575266482180028568177479660591413753729728111267611236257328694246622300195251872423991832219649685290111678049249251163618204191421300923876296292971868962145952421995940418596289668665625760211711939867001393628888186955947615380814297458667090398302530036225670832376271865500416865692095576363341939967284676279989379309560276730081998268570706200536042310864622444497094075275773784870509073649678721651456498411905977161384379878212287186736331439641151220605168911920306457118849148869550801661415597789121447384351008621684565796119473631620191176314847715422549465713488087219574027549573042115830649889287741580582534673013714897842724243044501096834671011114200635830427516983890652895864985555506989948924555514161119757400490988327100846484502022886102741656759720062066126405935452212309272539142476322024229614499809380908509883597707073885783635148411740223439687666997057837236168972201405333323619275798946207471386493959815216315074650438934668563235137478176485811907530094868102013439477449264030138746360654851044272638377119766109503952762616214012162770733798019551726495096223858462054565099092662169485029323948514601809690600526558653876339837571599363031927370808123794541823584971072579780111029346409364968034143465184535785760309171806464700676869857698412676955998473997214569151797642065796877169199491901744568478698854192165372100941852417160886607678064956598817831485707854549225661556564303689119894055885152427335810775867500058518340065297156860587634685170565248915597845359872106750021021446593689089543865528061624344453076123768665508023421542815179966568087109006031487404517461641160380099697771834629851379518860496500247419947905409012041866800859891365336270417264642772264764678626811218352991807271693827292983299140182255722356523751865032351420280395665278003758214650510833974102905285449734552277855295074197161089224290727408704478434063815490945394461367300720030868534914501044563964940634688013538697103650655290274330521367287576133642045509442546834920184991752209177995609840933820888153273281939937729355461111519232981824329766343333262744681005038984079666910692191548095747122187253315096360013249508907617115503157532669691303334029506724913051340606942444500046589795520721463923085508080987822780855207799240049620380916825954408669846190157671272365532428748556526316269013005705628170512662061686176056270371582541338432043043995004042905576484723233513253250433446658170618623308647539539590212063171006776753623061123350111525182506719721309781832389480541935049755755716509502552732123355160015125472811703166538538825079934746573551852374929329816039272869599119838051808115511183404958133441124162864883425651841361874838544065804719701055208321012140114701003283293752511354974434489108012688295647612365937164257950369691968689065733506321012687514294306072208365687540559208045593405629840155102730397673956413735931730342991472811688791805091774358740317428569836033209691838151067966826858781851750278751146610964032899456008026952126064438517926421679013366654557772951384705325628395803758899183444961427944789065122688846657221968386463406642979919735546190210661623555868068997372731896457106051549899297088421934225003917323661697125647314526562779552135365069109822189813467713528271021583583613249887403457304577031278253659133016267515824431597526248012745737715848178442611310826135266457620586009188118092266439174472415072253760216502469519929564355146723353751684013555842493820648580885431120455030251364804556449498135433249052047178261599401949777297599699468804669955045165561820761279924788655559276176125185114321494731483799922994441382914132040278386442925738256460608677479745245231154214124808699960692068020988010008712126174997517144051774777099240738244768551335609770053214719629969299918860253194924700901178518127664923736975433467042498090497390959760946865138127868912085703322412682061812888945127326583991962014856822654994302087722206937500386458452750074665825589743527705891136556121672027030900612952544529930831448355584536618830582496223392289757806211504800774068036391238780314829687729746968523276972561271976451631035304328571534134635115450093994125463701848794452519108085337503149804255572376881160499163413570805365871122727696226930910888086642052738078634973075975815746386436788318002532039921230666504615324463392242556152226628083514846405602951194965655049832909246081289426346303809373421453998260386266897119421409471577950745424626422312380343832064947237321764885064288122609187376653391770106167002475374313289995876112803190902472948255885462249192227768206759735927073718640414835268921925773970336064995460941443666076135485455578808590346241536619974219187616518253870162533187942785392053255280275395697731775551246557030222364890983780113651644363174426257889468227169186412998753626330423696891254364808449603399163165647068161001264611590532026966706996411213602363314227772373811086027490711824099397793711815874527757636893854425788683381287029983154190196111334341165142843140221164278901000326212864321944569491765945417508832002317517317719870815249417683234658019350364104211890827809187264241418587247387958988421943093033586846769991627244467988785094312005872713758914366067737316447338247859323439158637577971545052790028823376176123196743860562889490246641614016189520239205393295257427160723019081520565750584145382018929107396800193196687258983398392642405179873483400441593017426483819693916425912797565287156653558386757294966780171721853145759577584421106126865963592945805681327047371231079873265872207202559904446899890795880252098306497794534966980712765264615969722981202003625352244668087270081359146805871253850126121319185086023122784030108107843675021774359188440715910422110976719830917336184133523008144879296185820197271829980766587786899801813751436332464584339635757246177062713872382099379987459823662637690451146951460358697568884648735265919330945253075548592453163520078716638615833964566455852204335856681935573902525633096920542866071753073374253086968700026454736368628040349353227315064036051187079816969662581145484562649837131510987281699371288369797068061487092961832100889598226404674548990788643974564140155394162087260227546123048519822188545769483478831551946266185867906878520702719420750690540849330367702083721701486433950261463298376246120968183957146243333803053308754232054498694815448332880174588381082388452377172209484550653446375889980958411311033564660086062303041094432236772822630888657866284703293263803569668553983300921249902250500833679977824362886969466063924470667768468913021968287877141592375019037870790873936144291655635327115128571565068681804747320613748219479157218561318413010924738437932028427444607785472550278323777596091797903039315247177423348332117403633620062827923156607764213836083730682018478142866117375082744525118816843989182908878143447068300393806597270706049764956529703824115153122479718512597175833018679020902486841621653842313669175298693412440783874740176140584405381678917613127493601585806942702654495026322086375684934325588254016924296702521006507350137909437725952541067460403602575430950885049130898917163933513658067824989528424861650426238454146852879548639897714713300112048899913018282589912622090551881444883576347390627963604957878227493584828320937016818323226692396747765128429104494212353747167466467315549605193421943401645637644325357897524816563273715343722168916003016283187486616065912788400068998209247621272885759295028358627286725526898926809014491462123801501493632156504725694814222977255228337296533723627412103660793212624222291529281162578363675126166799381336695020152185496907522352761249467695128032133337590010854025685814805223749617298253973962673521729165037439138234709260717709266128214806218953859838195463581021090801475072195118280734917141170524770921185449181705855167742686658136741626713477491153261448167108669173634085403536865289873775125263460788942737145089492583772642392027402664033662928629795786988469022129910822086700046957885508372484191399080408071417149833049869909304996259070603391382251502414720951791823637205965778749877376927965644622841542873802165531156556741470668922679745223075823191487083190882532618977772233939730227094995977885977518679329149657594903834284819367959078856444011388027180131921435431678632602160648525075161222448288583202386910354956805068327176281253272765717158492716802855551963302554342123632073937214325624907281461301894849326666138018427806682425749731241084645170420190831368868176429542082183547309267908717169054371139602710999688250828637290589975858644172604816848953400150180212372164419939625200936592280268223250786547935643231710342195724994938866142326659303824926420638111654480443074488750021093155584779160951463852429427851836102066328687540851121559469369990791974728857053236409951536729108663941457635225468223650218898951273667193388278495133957225966939338493726382929214475846874235148410746556142674695743812715917724896115938146299326982429529022827308853632340535390517951904757888343517085272341962823440427734647423492543612717469749147295436103362728531211840846331487986979968199800947761874739113834832415548995304591497572037150875349943112345703082110292637653777956564840387820206392574738576477378845563101037561426487177429512185137083987249495449724971540400623955158979321085159986129205933436351104101450391262152667731836460941621507835614402044008598991995506598094035222015098814184294900221050905152215902063573087668532741564034409040966938361134556159076315569415173180021218897048345377202521882147425400617659559565952556532993223947285552855533969272607384565714410027612644088214397316463781837729510460408282368046642076128296851948931541946516488017831634565782831584495045021890959908411809395909508253711588186731667494774058916260676655719207817230416335956563083024049735566192665697471376435772189752175749652430001013416846020748994984993605989781787377646419059111590833692007952930646725002865773939900619369288039572780459276190862038123167671127363321539078754321586116455145179486524284502757371123120341867668406224371562806102713183429035181321922664151289175724725748798658905179486379884589556747352371339136465583607073795977645884263604593776942522286824061156879243142647322185912649845138707533407195435193575001494719869428599191819668145097068043972004540406262709055329869049762778645060981357256025970615556941560267360136543601768095224179082147484695706069338562487643923221234731157860736893160822894654333801632669947458176018943449656509866992802786554416931737898154465900108782166177265665249566100037559070058250121289527164531519607418056765355020825132177473527667795497853048609098221749798137442315330112031562959242850273681168571592609988916412497160076653593347897331520228108968913948865644640088948163310209709829167092913099837693851510385405759621280207137307704454429149926687599439909373153616296293708360113899726354566766509103151594785896112415994937093168744092684213156768053403078446755465004855366348402097863857511019804341491258745486606634120742254804343587682605093692413107952883413843166632214318671362683685096928454633742314698013230498834564556125640379436485022934867880090307386085529658080689088299240695371673763100771039809845152966115139691671936134895139632449625503297335358176620805609041464925480816354033245477950518920778375419776682928927532930845921961049820407274979060496480557624013043209038243097883841418984583371488812201147839464421715978041313263790604218505372931962296453913648703357817289435902024766290655649380136475786171818193908943271871818396085060081753636979467547049894843721597385306844472575129715890571599631335230924105377733520166243408022209188240884231533774949510999965251323891170812254193862933088997795188538526158251663882047838054593719693183542452083484175398655070969610255215070860001684297070326862212028331171876879302430965895616225889621384359858980238556702644128851844332450865654491999126512674752538822504613563563096818130077563679003200169826520280894171627826339122787110401649322520101115075680616162709889980004816116480349403738509181658174894395403194264763852510870197027426436708174880867484052814291964783927445305680386377839923117871455388246894500773744623432145637125180202202232455936202609452659520691763070633523235864431241841716397518157194394974578745143629966496465827841841773142004121606543406793336480829273964034950328836632682933503103597274211666326878564674524410425194819490088915868849909335581129807858112890386057945536700646620805126014459245897573835060156116060118625984293052524538253526198685875432441477831692509267196073524476024964955568587378982447527973184155949377439794461586406081422090598005063866573359894664280017087558184511822825235195277815862993463552512391588304352581970401326853701283265169783314727309397416761147308876808890875972620087661744421959885757831430590893929300681298429442895671704047867134724077857374592654632141273729737996807798805444346063550171769540071220383152305173249605028349526523132997003668780082213400992366502524540552822431293804055878003217249759411576491343697562926506430982035377835170632819373713376019658098175126669865098513619764053162454179577485216422627107068036578047712837532227044866419524381976718376130327217751924197984910809893029312299781158001081397635453019273289823382001630706604803327865974850539357405920652761486123992614086898604246765094700816144633265922175768525173504984599055574311552467717649047733542219585259225025274930559660449775667519968739102653917785062226492644683200906276922837420868408129270363508425756069614575667784679630639680593044101560084462696816866692923400112593385543811387594008194094050184888858291085634184243077871569765910243016514849080416040776752638139805457173359509239903228214519210799806804890969456694988156884217952902965890072961411855904009027185512336043305293559910754911898199638582423985600781841739833016479929756091151082078635772743717129451537330254031206018546593918339421762970402150644136598373714791284574522441640190743908802386452951344893108657767841104222254480115889940578838818162800815697507094535594219346416528550057032150386379245567481925855667180571993234985316470387945350464320098351165383088578759419343928650834798822793003102898118910394422180602298963113930011719114275320704877965450796845075949776389981302406081494485962040117803690667937778432691059419436257338846125768029694331141351165185354857851872024714350907557396044420026425751744192506480676407579640624994874848173682081235341089525929735174355833565895296784916266182885514789279956276028829169515005064909956963554700394838119362757799648759635316194230241796467220680816745644995347328670388441444545702835737165779924731634698617115046795876855553795354659567990990664793096758463883342866137209760979176790213478272330661626065855717173508681240559336048467969708925215515434328676377712410173600095259630845406156717628990700635082831062176668230227530219415244391628986136696244618826057597073067367419113624555164825210911033722393352679608899043326014871891776511392342473801335111349586045979935556013160310132042581525949883057835154492143340756753641008159556611802249456099032253209308171482516088384560567530183716077282499752832138139747843945748239757808408134324327495378148988770224141919036344336480033358183121316707300554335425977288023835359974217619092135504329408828475197489867737157614763310166284174434660763881575954612727187007391473775350717022073500636832208121120778595484718460315742715647719082121622835025640900234314861285198861455057413657653027358051414039983128345734407472587320063197679634932250792563200086519547213213501712256684727376034042597769094661939441079210313312903349160531647681786050610162508805145974714809120295926942489980687421014867422160919263083693789488090512476378029722599393544521438104750512136421495906074425502923410195061009841521737048506398803464666720187433266224579987452514542898075335276751751117933936048865679565327020143834624581301808614705914311601947028896062855510323895343258135431230873525571256970317721879394777967394024765686147498184911159567791175198964988090207964069381036171306460342473463061303867919171490469804882441547000448746220934194482682617249226966418182791730440341658618144001537619521766972955150079511083413212054214108070726152497756251411980400830822354040477626643817832216197943663260639641777102549117545468237661958638079406688917383230981025644367937500192195687362824755236836701010804327893536138747806790528088147539111410124402777281659671100765038557687985723476824781792623647969930986312780452827185009409358510067087239601860198875369498401119068889085006195557078326860968730241654833158225398222598714302794528222411505456798081503756718661870077128446706486795527045727604505270767988190968514166876322122776315861195274082624118719121915697107881952082241633829222223062156542549130332565706881423880320723018050498137849980601540350255187929156704180196186872225627296268810766242219436112276836719107980896737676504751007437541946969489849298983340688818868415656714322278458483562938512596983595654699998803094061746891405194685381903023437480724525464658961118659862053004077447474823333068263311303192558899230186892761268156947024169142065802595838697221880711091980933427050503597586488198299907882667789228508419985503820368841678058087086441876867487615967668936862048780415654614042353146475196799538903825111602015116154296299949087034333703819344215547863361735348768376595633978431104725551169277454664434911371567875484451100548640746409742370543208604890579928118631668327044302690913650697191038055298192143762357621882290779524409527811893176372662716137704156853291231503550026018370015758075043429114171592522672260536379744964253409882925427371955395974939836598461579730919253313752756545340670679908372450773653947154039982514759321181654883996552981494035666217240898304362771573281841403795589484873468473705778397178705804735786434170940491277117687871126384612827181069462185537491509576473981951495767136169138245609014519147254484264865938036075812331062513139472337638466039882791237530394810958444817229332972684181688310079819632711485381513586760400378826934407350107820598407788051487038664698849516213295124483915935627273832571742333562644705142551536970068836744222656072183263997818848497709574423447274933059444364992288672234205848852980098640863364594664182539889917801038830119502098253901654615435286590464626736833066599515290478141652025775221676559137259460476470022765239315860338204897004801955246679969555962107381263338519465051089980181132497839682583080237131027582823794852159360582795956264129804340873923682994587749813527146267286738579544493740307908973042837963349036158801292957943780643983114618173965128759077558713305208177694829955267683220885544772898240587265122047390631647746717180869462665940588730433887175145143960707772505565137785914928599549114103032945552651923053298497100394524978701599126940903218044349052534451194355669970591122461776163472557337494109022149695906516024261987305300331644247235538070167146513847956021464551733508009614467687695272321123652062936771548810076061434911408279957933243760350296698143659266044535462530602804806593443549048066067566790569274421422390079661306345086271127860162530485345462417941884763969514511058674805078699304131631134323252437094198229276364854623243401618955184420693124049628005003959969748571039250507818890379479649610493117448583958953739529598106946919988589693816161379257483664762965668343812747365742536844076361864361865183797403886665716769529488145978047988327967362661442812702505162097392351934926067695133350909841562277744976376476413844405246034806749385423765124381084275604092438466716659326749959331247977046158472003661297607430258939590587336722875798710733351956717814382273378338547042926846576164199951113006475527280194460673162358404498935806611198060481722507512386434851239848664068891187354793424027098299183001967998348908390232791985500367277615766126380420572091582622320652484957588788448598885947548883595550263849736839890154547795032726809025938973640244970625909959589755335533685616740623808299377864443767572718634344261592764092290830501971383664374179431118543904972909706529903664624926979399951552062871984356568290303319544783598580516389477614267053777691196220857038587413121621342563074584792902627596965081333013385576855132449027714785965663890880932792674876204596545447382545525189178825188405474608085813190259633707244015925284188806959176802761432099251521000790828269983057056736420062753247085381244997144377314476266307422231875023157804015476921794502119573760658629728001336947059100235213289863037580341464396691877910492253239482809829909391885582666486680382607335281947105428649654758235637250705607393517495983471327017059575587294197038368846986386653425575658097061502656331536509065213116298399623643034879126905118490905902952896146965148970473926651284654118885726598775233831201073789576681071618617845577367851963511966900217947051594078137595229718151977714488698721430734946964847962669163495852071288316939276003222965292725230653746003377159016174901293225913349671740231859180840632771912761784738014633786666541188986826301310784582343215400544117947294108314897718646418931677146051538685855242978716844106792542671280768120795430351067881846992778550321500899485623400365362831695833704343678877739780662413840657534755534486506535897500975840177201287513505877764449098188674085335856759092368931824873578320027454495570858548171397265151329811684958155480108159189928213363783021593532627924257284125877673391226590974867238772404643577948527850460017060873246008246271484000787083964577550243509674274379856881924352743109752878946783427008949456805944369610733270788431006709743753422382208848163615823053999398374825656116561771801427020974668387022459367887645117718291985004386216633806027010208408494073119861276990536053585506904195088083752561621741575123521752341802516049250182037221001931240400796935895104918843056990779703729192524894775734715365326570978621246563085532834989855596004980587103643444708493950328986185888452668259938564595177345757828566276669667771409810488828760581787020324596848005783751273769682955583560364027905719805534713094252789247606850817453677938988327516239452833321975533683674305222781749584646745668232899434789201996035217538548943200932775294113678378308861004536873202368460758623170003597025439533599211255130949668456544692164546445522177453564804248301522609097512721151027235841041778302339400261809793118395919673087611573693770809659628194612514161999561552969692269561729764108528909257555350621468241309310631395248058493922187752420098735545732179422697137075877680085598558110249012420965977946595673317917288033264574450259547811356340594846229935193734259554882135953210175366096869550485898989392830093358203431420723155049360678188461419886827327499429440298190179255457038319768266233887543795906620461639995884301703398433666044277790994372117387061251456225331981604819662019782519970145734394518145449931389433503896180562198447595962178626062331546395189614926694869805824979154799986707666509940857640717715787989600846663672086444526412851150041355398176473923542612093285846871526724885278319349722453053340912346402709902625033386820691176930124739003759436020337068402711379657521531815863719024989249260341313894159523614469306297931711212848793959280507420450176464468784118275496385859227974814266604034152537197470513294333077127718571223307969992400950228160503144076531570441257556391297978569324502416873787859466450310616834573726629428895624188342486880634791280527228848360157635267190415404186905327290481290818747408881002628827985028479159781953873420171194471094123253754770304568686540363165148527825996726076119359327506777550722863179189670115874826997790893189516827529287910239896409134584012279215609008738880348159778841890504964565247555279253429058211629895908018504730082650473218137703462857675109214411975233511148868447985898938193306855997358664743876895361872047968619679862091952702431638150334629809631656571974687046980773500216159011555204135452360444868079982415459896108249027554860241480611055311396542377930340467621320360645577518520839429342582653636394354047331071159949272247406382460256868594989627924071847929676982662433159126593847289096681071809181948531878276802537389878640791928435526804209164607274341295797893151814162480501112071967815180263366723239290351693898838546812705691464701944738100123173218356294574469474394570114843761940426969640063968326024607284884578040265967295464879352650805373143748345228190355683993130605253437815543778482626280889152131488063320027430219194561201977145569395261183391877919072466653828311081829632370318371363418117733047235225013384490613469672094552457535231990585047455221331144589424502239109883479076234221311298195605728139908046301942521865636170425033817200306757396029163725624748383461311014441976347033287461759564853102069337166982147668942992156885782924759194888182460339755316501282200514665327805830064818781237389945447620995066671324053585780866308326156461408276255138976723361809827366385984531167918999022858527560459794235971798823060897310678922236377891749279441418655050655715679505258918461159143705514049160384263491336380045989779658501482115011573766840935930092704300625413590282928846007404088546961434688822052835656354906754097545084258590424152183443943763747081711758631109751811722656794353079370656137770333376968189457231463590026298750777795673848013477076796620814479128489694498873542086035405664813711963600986060106906370565071532934980554725527345990963800690015818979023734733712194162508741152711598919845771996180256540185872075353805670597639333969951194640687340625667584045684413120650072301818385646651751179374220652690795413536105091384430346850280866339597367446091148632765250977586296958616103782879104920243569143593797937907512462184557470973799974744758375920030101397600723581871455363999363908467681495965686218010383782150769648794840446400569513482847496808763818801357405365622285661706044779055242890295999012500838018673642649321536283496674908775213947951728643190507096409482794171333591549605170037573697274904288750915457640907644707505776410034780374304004448138442648819402250471111429195213408585549558507642655612673153361915687729258372254162753563267816536465912208534073349023074457854003791373825241589755437588095377482767853935901321445837491995549014309941506639649784981344639240656888070364283630114513073150697670827648277451608504856208671936039348214654678642758763159334345129244005146728968066191756845449962194754069342366187368875110715389787456096641217347647041674440197874830341020334886008244671988858763564602099733550747510658985903330620200738004529161674337076296245666005320953900477641856947618469808416555401867920502829389327881200777179501464118013330955294197453801687559700177390401174584881342270372832264778655975185361478619583008305647559903562383714569152924893709621571112194824459632518586077887646258632867940909701712412270385525520151434400646228537788257413580694726106409587767507542019864272877722964259496976151628060029807576322486541355229903445152402228579722389432520048343432922657594724369422624065060620559473079045063408133953821519140532959770362597460104468992054613753174654011490774877076799677615880239427267370640209498734992460156198731758068455158028135197149211251631646921125759457613918367575765543092814464958172727434217313346270408362463320481468615987614387600784120619158984404482987310693985861522598389352821964019867790244650379936411354786233230381535728396932803410529940812934367552979409017706733909006498401864974993955233667238536621520603644767580175478560929062468929206010617112908946392138211925138597460608365807753831620530904194474208641789222828604308280061738445067853222830441601447593107781291347136505294267143819019727125825081628052707323455680309157910383727747531407560897799166638362995581137628868201993590995126353457900675743214037576976178073883035658824689063315796671542107647788330687028042323820081049662201954097116365826866834362201332452082197878244889052785378779018137937963749804319636918796554394735669902926225625486327420831264908026168003809989711832292796487704387571576006484315845169915282272461362729964957833086796581058103201257925640760388487458222182287055197645207808786390605990867870036074390025219418827091758562300114110701285099762105794538396866577606625769379273236550022007757584092033781770455250177961968297972330956123681890622877420656691289860009993479973430898254764438597502764322345442877086616197286335094059069670970239843031252856509969159639634186528651094392809611684960505891218237365438877372177016208291414977722185746974212432677034124894794261539831745976436328349680991431580232335416398426027132680742772763975680713062271662231101367844590783558973010705083499169180602639767203228248462028780161100829627618660613038228506298299246211218949161836723417257165699425807947288297240381757449031730092369123648087403744926506667570062434345642314878995288131669639367382734483377685925672999922470435395038549452353578976477458406598850988361725383694115468051684996694445510746038476501800193690269635757799177940505486978943154564762846535826529952478706301515996461227777735524014230421512401376772860679290672205060981613087755223478778786041622006537317239224488277471306176850112438092480059964945874294758238638943625689770744877751543452616935344829667592065150035423531463795087746845395680891118984452215062933918279401117852295660253608798309369461723195393078578260712113485372637168968430986340865200753833365158956901175836712691805915988477536608133319675300241976664360541568779824937967685223769618091998899482803838929454087356142592998498813093916219219135829562185545815848605200694805874985645398717920173181730961054995285821699305805159372335213739387826487978328195028163469907812287539503993357436047364379770630220028700249042659481068900455807789008294802349919851953036549685451201613671704257063921787421998110840320480495566115282415228689613695811203707844067677310744343972499813859276754377407836645029905198552248536041103677280573267983247392637172223168633390753803790907363231981285912806066346328789065304852933025217776194407372411898477523891228418518853069589485621945002290512571181256075989247468798060552899637929338050186248329311053483840238058018670130041430331519325154551452386662106467097284600547824152163634818705600398610467679694360602647988188450700724757735645537708425576510906076094843112650220699390856860199809234214068743808951792781824727805878515862431902762363414622314712656404296842876817946929083094467709668385866628779916006129516720011251425098776510180218924228951436737196594442464586765077948699726139464438004918410007129450118530902748667165385898985830092363643437392716645260408072095098652588720602975485753597083764496409861702650035816154310062138426493257037442219136128505172055112453936382870845331212915695485153205970136601155801459121432201324019102540882548406101342353522417660053025704517222475396637221702799510592909447210830390616418120837864448422026977835390625981310074442638850283394788892061699140449771125705219634951742756078766805331153368015591533024779677882856160466570163529442609121664524914154631775521689236406812579364587795808157281385780829418241540659387412019923862905416695000990951607921014361016710850672630156222799936601278994435088042065402844773534120465971188742804491502909901121686762313429202028793953373658880980059314087270647083467117244617786081114976720102041236044895240160107137212364927247561835645918433426744683810524152684446536532332213150126026952670522105993987023671576958182107631530033821821952341682851116905722955831211321391938054688364911710616685863800464661887457977298379712207535030949080920368139973584489047760208617484489520786038009336330807511339053097989241943780154422112148640998225207191147538046048119237048619531765206807419133058464807488907602817770017743361178348137150951654907078050059523954563098958024619808092649118466694870277462671880424158606546028792096757385198649518753258986316958739756440954240399949641579917004363377290788383569744961749557862199701485038238606751747995047646332141851709392401847275349617804371535607959828725171919718240886948465852371656004646323501493781215429782141136718052559770515301906532431803444778605206026877626248208526402873012594622574816465412309085420581551767593792184144653549550673232240686267523230574410107593101918040004420638267916567941125844296031436684954101889327851886402166653628115408887560575517209212297315742061757129518342719772375499953223846357964605662401715985446534659094545452859500873580855166727694974121176351245049621882372041446095949597437619614576348831346188344474037140631245334358400315220717426607940902610712245749797520796401506292943626390038172990965842651398067076943110451905706264424590788642619546852328903056917675238599093652893832887138977458451876656007900801998505319594433279329897220049935909314217793296028679305692063653475450381873670416676532402145274232239332330828673624125513244324058190091771818498307162565281602258326643083885503410709822534299495102578089327799980913712499429387581200593430470504422038203170160052017058878301433048727413214158871535989233274654827589643643047253214800640389391175229728119051871813497425510536867034628256506441378884463398794571136995684403855366386342327706116695730446765132955754829719123814915412203869614853589114650022626219073186650727331298631877865279469141412034826721508857392441554935310355074622891819275786231565132996019630234800586304924080142972562324900242965110400376432470656393927583954216127967358906449124144626569416198065360837956096416152410167938587417926283788487489661535531544386788706568981866234550071652643404768537173989621533110743247850242206953310973928872359946041514651172791494823386898197383680497854324219585837836537922056186663266713866848574632661474567524016494920883979188325922996124097547534844412245340772225526346911978721123768959870111422305317607334968165430655535470330049420860571393504381175343957727440616257778968739302843969061401046353736957665812608262734126602885757105589089330108505611784313572073954275100903308622128889028214511272340199721958374842333597157820054283908798957581141608835807380246487854600617333824596720341288450379952421648070036771740627256032951818666697063013283944941876687376937371024614527645824947358087807772786540773110800971892593068775606269889725900989533914305430199744781211256910934757398831477443539649801811563273576564082244498649853262581341156710634404848530368866660534115780325011665743379123657600153917071734810991813925221063778631964327930523312251957532781134050277230321435672408988294886014258291042633710430278660131375658120855588927790104332902472173389773070444883677056063009003535520649785121929671418484899170937727527643791208049864910698414213870017148068188478737550312414581279115579211248095832575204273652739146231618493272796752005251563010665997383871712374923403833038389411129823852621940005572990270600229325169552996898928286452054552651800489090917747813077966733543974414801456400041542913819109028339807001755855758312289557976470167417667469633066435932636317390275432467631464022449906132846442485990760289395143210461542082801180072708331736278585157593214359512497637473383881587440721969134368444764823023417662450304593464988696306123098118459803098508470190837317706939100909460121860420112959527852268364891866249441157059172228272588205414853177298824554701457545364836574861926941598157995544320534890062458267827621091079757377691098201422656221696864595743242247431449556548801733591521094883902015135278152523897794165678797044345353938110871584975389128371085810100368704707682131704595632725090219485047682004690919331009144582091272728704218770384098378060881926133295253616177750358553046485106875461245132638405860177702412809648322701633265998368388313097219968268554254342686187057106109486348867457834559396115687079183553047747614349957924896388629732378434552381417837738994496734719305158522580321127349212254249185653048851425040457778868221847177036574322573456107955681592084231188680665894975024893131910155649746882562907709551307698320539383375244405670556751754673822940548891390242157034867594955621675667126648700376485107088895171180629649546310892787432162463746339345486783789740085317990311833202614927198069289784213686374569464440402273447724985372015700672712621081657972440111921226134024848999769365908520502002546225376026683059903337412393538419218197462826333403743364842527659396034314148329887383292944204318362028178587139409641181268413650180012382795196674677570277554047226371331870960450574805303821741834760019323036386741490627605867789440567297064397300186618987330405461012338852062067320854026091050600118258597571261649724976911290513908807214982245125403396531766986638071697317046389390849771287157834519260901126323969155593884377878761431925170358778569591932687348368637956392943527073763103169089582220151151096260510559621472199504462923830437378104554195433013789508486119921962383000676846417648314356375138968220885102516222460319004437829216562292955630046624972921847974376326329925711298345693019083017318157914969168422464222850370996041693903738218186112012719786303322464210865185293379375089086692073303071252415885567439723025896787292005397011162736057696988381342838881351731896924818851117657703355945041499535700965980566053737805394368356736925722959779256521350943229672859747489771113531494472319517086057089194362185147616322117704802008193302643670214266319884914927041844204218309000207942259128314098379001491669420973128958686092792439395124943446099905887567121532146674143702460839452606528729890825165817680353608005065525932580790536382776584019481496848521694879740470424487251616686151568397146180167697269649113279893221457752938260781043392447703769766456417285282664318675605842544523437156888258977344990053564315171549648897072565861355684156395414539359332608599073796713312919374266449103854293560584031888748259326889088806662318022213596226832482251922213722172892226821431398431616040114602753136679076986038261466208470531850340423221893835633771224468051524389453573509181617466465838318504578249802657961633587651129566226096158884974855476951609094690411201079421474218192964338490986125397319916254037608915101499586710787720614740403861916520975587002176209891279670834593721757398113918371808434225819221965969105282748081434552168190916015382559448088378769557010865939289049962498397129245821844856584876107014947145898240632246328439071653703767120146186752643729646249417624026558171882419963202115102945602379942586701784367641330577187837470150381796626726467923376143615539557714893701722397334809399450162167013037062497231929402066831483561228543981122396240763816824894948430843834102371942924513500065381888765394434195063769722411410784829395249032865154879035719993994018221299417648855710345413702706977402566320863264539168146807363830646820155524553060333074981015392835517513962819367570344453470977911031507030191443753821286420660852430198770463046677561947164152744826534621405449266381445600305271263353875349807463274981083280688995208154137756776751413991160221741050934912199146865761865037581013258290258608674378439481665946642602090490761214485134325378204021022618395996296912194094427993595755015759105806442709941250708681976119473560634504343267343220227245070229646449487641141868625958752499631376814250396032837523149745619227393975898348231690015463680483683471838663792431051849466002532839585940656061457509341420756652061566411362193799267426040049215166219283405272381634072977066536323491909700838566197365113314691718153484939763463847918734396055112041421962115530039902013820989189548360563484730585356570039700991819742779811826820140624872268133698358942005596844922164133952086524455460494620065667222130233544532537340082253859062229625894803111349825456428111160756038068693503150559802156987195215314978740588676511164793638509645858092089145164675538325860249074186998600169622501885009015407135369761436032316950595665865320967608231659169859777372049303550278989840901289001699838253609675217250930658406948927049496306967591510595575194397853867152416303182499267607265284654623925655161097042745220209490292145682592298460783228879350199564459510947261836483931732446422796979214177505622543543512509709981537376629667740354211182300696312215174928479863135447105236427190975733359405507344163298588323096172593506113136759376555455436266601503164354030669731385144941520653065001514857851128702229597554394722022118005389814451035681110228962668487142713017280274040364567279105172969460748579274235631685741361318085393503309414630808085253556624507255622474470539804107939944817767136848165775216609494663609074516417472585668439195368964786712568113372440958639964775529579689017240931056464448261078863600085422453254613071043118921840640105148946234851693022694637832153406056457990844924635693159965618541742577769808730520016459346723023389483161239027201147809044376761224569576159603697360729036591106371901276931714384785148248730401339847176549868768844196874822008156958819874203935858014092129654103230642587636436192253900249031066880713539360823173557629393770199909113796428405913899593715065433921879380898994916247913960193442002585097645541396817549474400691378706753905584194492103910617987723057594162772586878855973618345518168992080697431170612620937423227983297070048358933188784497242280924053975229414233689283324285533327538643410076169743147561101198832142697123761022226220334727365751911842696294935934935838299254651365130331455293687036644636257113001218573990202902227297268161315957201205561467319036959916132945396180762004934422703211432944488383882332721465944686591471418695929968336599687024544153087834146127262362835882657568690910019874934399592627186806163285781311107774481070901606503552293716388022439819363178965057327685758605281163227836940713367932711264849182964890059719974410502733598989912384157120774987237824794955086021978285173287887091267489075659240260600887033648890280592362999811263149459800856178117961727561183296828990192271701918205241458352440440453372950317515992168906062389198609869792175654470866048375876834169942087061023212558261656492688102772796533445650310432860319857695517257601552710274036270338351354330402563870008822899061987298758398834823062953501155158102440058610389175911058466841370250716682579133257745967102831456148606318279391403385368143791752847460234671923595800951268070582655944020636381940312315530725856723255864735419078711614457679614102990783014853429186041289675981174152783005104870783211515117799740296389565673076016046263982633709425437252895793549750548570132562607487217315709250835367248265062568851044290087199230296807953738678722010434560292955143951724633817880782057562579436232963440039719258646946151561339946105412982584372487167114647963981444048585922901291900926168762281478366148657093262264457728353982219399303897655562471254873777952904234387598775791893077822607146578116076333426614374059013624436815596359675756526243771408250316196085189454027748354339550601803368026513724273954413369152169027661199833451275498782077590670387700519439759183134115689547633537924229563659086261870443568872602931768307970146721146859252286142791922984601656656833016857915701464715459585002007119780136636695172857942748034193051643681592339831402192006772989778877643846599594150776873436513619855709099907163181529932885988145708766346859950309341367157323440602317469261929574101014178624520313260641061898092445180148329483269050115938878911182425763633821976968029317068170692916146122274183271035494548683145918961122352868784779480516490979866890113460564193362904591088900525000961669480461916510159551509491496702140576499039243765562396711702478314961606116337021747141040690354496781101676388100630235007290632922435710413308092246108925637307494061009504275766982201067187931272828114080639686676363724087160365379176405279406833981140826684350563230082036619442649096031254785993711600736195799937153275309660386287092285778650163221950027577641504369027213739092212638537731077689629324697684466189546735731037760776623971555192111779403932916673164124134865470202398039405482219577097305142478260713072064177886381209945594590028813792940318444918802409387377647090491426656231454661103677173055241537167663688466339061722404539466813063477428265898417892145633669999475588670185375465319421955566619983005174751608686274004738074015746389999518682185987145641415878661423956585720596067926300092016625500381232356222430496007512068939059818474152822970257247155774035638729784716094520051550424860072857174745699724987222783372417473705788228976216440274508719685311666296693378892013817259561797568475927196278096668653267459723399087476504621456473997703279851800904534960743675484823553495568612165434593651884422234196914816365945374349873214489570545335962856774605314317935940789930848629516920099468105446307278002142345516752872257263719172538484167864723188335007511843138133658546378247255510646942601067223937742833841906225146430444346746716588057327074611768057040854905453400906564232860514605623086559925136988301839047544356221210829793906678744578166612267487309943768573601723859069824548393268542566219876954639999260019740936838844842965460872970945236442421393101466429074358575588483425728326196307400299359814777676300073886678234387914230306975045241166027961936562666980676025864583528164963609667608177144613337185328939433368248296015129888227747821268361062943203714729527133516006117938532900796646070292766917950849927023381136234738593067072567774069918714704685944035223719333611903428817986575034335905744567344163955225508286444681307423257898608139255130113474486976871809452928115994281939668533640893985556095102287874333563934655080281785318233979244814091747510447038901919342414610965188771081900416462772600822849771314235739915983943451769993119698240814753457457249465495064300573841906592847626342326625647296985790889410200461572976115948941446395644961130436180419090246025247943654598774825715800877988495689611297448916135196925083808935134622097754323409807403827468697929380705737309536080321990103236046171395263750840703439383947778616081340971744323519009297490766993423589545308186686146833882938703636713813326365149456395881986764023530397654289539671124637456285955032745125275809756147764183399329636939443954765428600968065859241578368104876102065714793677696415996395889910012231825744519285125899239111387913504469816297671886335894922883361426593803108415023098215365655225503468592587966987801994001315955271916811150147116986910915828783885080823524150119158211640713335095355890210867248476923091218887290646087931141316804757598311447215492333072292324202117024017634344186738385661537891092666163223661910661790861935070693571958054343921054987398768942224135426484330477222194524096939036465493084537356074499211892672263822170795409740425958797743697410236839639447890618880902100446515972972474874088361020041885197528782591638256589619204488975363854721748903355513018736085326084687216019060025232133297326430378173991271426637525076678570796888355985964004350731594993382058791098392043561408224791406218004492968115933240921453063689090508940634649567424725700361585632976031776904158071459430032318932043473095165835974236284306460708885993970778768316212562124765886009958844387421024062757488654665226005102520879727997085589372146571855580804597290456739762725319502753917105029748860552537017643741318554171221506108246091035019613395821455195041738249026852008809032687551026792230166080769425103331620237272990229503184793519727896219594479203244450306524261588997737780490936394939960869237161809474135293053241384541249843660742475167593604643701604396133061171131961873992997942516550383940462342585657566011156081218290016555654427802322453985582988764368687158900810029918382519844848222208438644991550110073440677775089653238331484273333959092111402631988016737416231577840769841213041199649615336100672767613311644153823200608473466654226580400636080706067374527255998361933741022534282760760351546359613410019471263490415998327262618850699912731632610766267393883045477141425331697429558723043047151844160152264321091102320252118110308919581047352345301717994257384795708453746485602870363076943335098080185354152015165241741838532916019688418764913173797642066357438421781087807620984033528614252842921960741382617097262919235054472915630548580332104383921279932772540233577155951587097446068229807266964310713828717087769124196430993455616124290676091902790488620210923325345382634189558845392727108852587810089105105850231053484270894704676664880444264590063185228524010193283065868253922407948259212392593845083551971775474090316979889039760409775724367075727673486688360699837962063295674691716919824541821324023134466510077615749998176062239525092677347376795857676231954853926692477947181491167826240732613278938723602788151045216831853051476696101284001144095433904513243403985226766923192277410803179668949981457155906881945914216936316299795445019765515126701696173544855876627297433584328395902010238876928605830272714461313926975593126408692691399301132849641465460253184876575181871378483889018943695710858509434625528664198300219830119145012793721224042229064168347035738226863104849099489020428743373278159355024039542819545821338555838291423113164213511138935174506430431715734832987446808730276100215078255912141206254277676273589594318233203737850467847219329300321492615808870038169314990429079054445635255775565044535166127426212860097391303214228550193294940785338532562922613096373369517774627253635440177594248032654052728867077267763487847476784959685105675839818391978087030007131340746335341528842012711267346569671034871330021482608295082295301402496401511714641241835194746347017722332454837916453035760284099406448372411155282666523098765857741850136471701389167020539515035156474820722435216858594379826071287383724191783535841336763212863224173140922244917113713051475287125417953589024914294454595395217511690928868275436473212157066225990537501535422975963198911503136838857080396359610691391933096266235499457642298430723207528368620533153475546882596269610272168557631302612183257205120791913864149592912014139721137218634724654890525154199747936809734527630660820094763304767981249516213470987146718805163765237249634014437787973554952649899070302099192046698369968419282033958575049201998119703236231723790782624508386186114123884001556732614358519170599642182210590241366519448167157796577892840029799816316595614252965754933346894839504381760168496408768680943689464528283815113410936443862462436676044496788547941826114581305139243640440943183328738459762985243405624756182604336471031815876626189544854351412478423438664987044568303860091777076088807421341507833856403315968589839696954038189691822124648268115698407793355558249908619718465017217228886321025913342294547814830317269984984860942437006482646089921578976680675596358390433700820724467245052925462676946679308594179356151255465257998017857739794051013109255150240790279518836098562789199635485198228762055453562123907590089226341102049961609640747668479745877893429879513742792692964166738031481797588057598641470456497968224597804273576504099352656813454459108976612096514103072700412703205542720450723978311335451342788458648278997984491851711238705252283967851828847202311412121456359007195773573480605666919856085540693621961371779202362588064137825957268872953374938704509203122355466223022496086209992719742674170127727089144909148024042663281609620420213517198153198676730566389376999767461664281181469973751659543638094747028813601267377881216872290495060548330993780373746297282680805540748729761647125303668432352298299901088686413186179656601413534147852356443550503758094905520784684093813198428717540237653274784577784722310519312506136978077293552143175162756341242635434625664039048805897135434222340211514760231176446528223527356898399044519681646030936265700784084290760759117853127736735521879008190076605716669564991362062673503376209151848121808858500245226258212438771693662008444820346941829067918908214756524254044355217098475281529794882973241003001656019497019262627157286919441934184330285280630340207998686764638527925553940433981580312957254352976570273579971663405679648771527100915863400638521827372092515481932621497683022493612181508714330474379263193246171045316498787462042449421764169803388845087302472570976440918505990711967383061777041254243949157359345512903163918108411249681588121627044279058746279531443588491385202246911651000431427406572917661331661533318254690255685237809347735507923001581001902202329264081541142331595258514505002715260199579807918668002809568504266549767659360427798804930879105355804073185284852038678681683220310296282269370912988619269167461582212541777337865027665159733208237697576397222344298157030299678247532141064998620965210717607638131480419716645571104090893511774759254962409328674515999822034774934964311901226435794461911101410423545475284997420142266696074613367486583159899083999689475757440672591645404549698649309891346323678935526701673003439325087824943100608224185715937091626523587817834377257787336647563672264266070535039224315329466142351024273571935624432744866754319723189550923481657464479229547186443836662713443305183344478435219205489675350609965018103960180245300122273021408840623640627937923436869834808213956158806451571260525219478364884482170237078890994069031670641017869138206953878683681398940401267041275129769431575025837059897164307694006477779400936607521711302658057039412518613694412448062727300782635601358701371392556240554451278410569374394402512117570949984626279273637370005583893957424716614069524362621446644883603440284708069762782492335798953607766881220381819518611079503830911853304447006362466834334399600876386498433272405293412555353548496145699397805580345160999347908981879907916739317844191621647274805702477929339298532764873773523699397455124554731847917267503728718225835732731719766864638063101890157823162811963660954175919807712276696671838718715732156514612580185113357865521376620519248920908592512880608561996189096702486122846120401180708844760201864499391014411243793723765920264616609121404816202238822850660358117684803992322016719716104873536830717783889655665687219902126054559868795197413234719216623412543731719304512157546873364700398428734385308508913679731295118281675824462734640468623566307147879008324525718861304730060070288142368287849794508782851985574789094907449439077913984446844091772544221449938192121443881151256025133739210407292497846437361566429479484298165408201136668062508156781746211016659608132042229226839086283137713571777782677702079224869213820863674760614967741422989993361904883437096866304590072167799920177618406186186761589784857254871109056201166531393107300852199289528698499133643129767426381579615226446414467576581567594837981744604442466752094302099286076147541700700764261353159920864052956212634173013461953310214435585197018710338093323459950306316261062680468068278545263584378855953798651948303612684214433284866577689751084340363680401095092151874653270578361445412604391872358141155274068794743891065061355176756569456593783563428922526870102105648539755404223982331054071171223409459967607745055928256499721116714745934994685522033103433120790284947640009471478327066295619813574845520132108704857571845971251853284673195248774504506400365207768506886904666979263300184552669669865835468296513923364340333800729574514407687901624219556961865953682819342325836614669145318738089853195660303746457755620428802628684011725117235452274201033177273243833305074021732336813230801236655159391856022764356684010889774234916564595868851177045434092333656079184381650042211493516881767898293305825852748219014663918935101666343648080384374987964866613133324550277195743155925204352453021220534595236785724877206203548854745970700584987781129954197779679902772573596730105949044956987733958724496848791116578054897146428111982382367070720348390878211438465258946269584619481511673248812729566202563198164815295899575054446870585482239754877653488077904926632335949376879098665195338543267482345116878408255391283896429580097904531228560521258558463199002732826997009932998897905816807777202152726852587250853064904646736049870145651392764976113366487290798329345633959074921841274783627198414193594118755516044663881454561170959092861430371959772725733430244851097150733297841610178471138084068025281035531608516305270823279710287398170389288621850053497318624880899248323625681669196340241895311051837442298466334080607401048969979114414379484020329478902108303930559399926411626098232029868336553139873035810764296322196387057003517072702797181981373803496530582524546748701130531305065086209788193758877215217555143625154029437975883738440730002664726297650648735076844661801681888155449201564217193458301851586196151677563221297206868483494006521440501707213878485897648316603930625200500072530248722166011268991743380994968190424209333655968282757474951069246042051189370478152207697551396622581836154498723349198258262411587510772882697865721239488765024412444675039158547852705974560278672659278121101809635193802338757699898386782351941931025956138381917615523560447958452860909126055654826272922376364508640940124409110492107458168619263866148150405367251102612649561276456457976293428628257015853291936242701367020442625362550526250210308735898331782650148787510420261905453155968876803746633092438146020975579629430245444949910403560957377817320099691426106690446046911661550632358238049337599317124823065635244427683055015075419229416065812406092289844028251384876425294165145778995626512427420024689811100369535478082564687949236049424114540730305305862776517688603355220518663851396920905003646914099119190396681036332226746766993610725538438082190268816454563413677644326073896013637291438397500080895019335140762690142468576338039740238312816933011642938648396979367407863186560882283903147345419424425890680053087230934512453086635632730081717005855499842177507409215122885268713047859709529811351147927038105662858751903154032137622433395073987761363579392656837990704334586660915344833156294183353668470637892045326797200427731747427888832343888863993824950016530269689452860785548666507962095801747672344747238106806774627197118202040518369233963811560430399073650907513244580271972409542451394009204908990384717638560434244752033325465167247967073840808360801723046644537517581918372336948305297848699945790725698554298782425149349990330787628282242461928910859294354707093777258740002201886664419956476796249626619615882527379327801147637152601608583759454612440478719616270904526707413126326683206057976420765931464915425191891298704993491493780407357470160101388876263460138079381198488230997360993416147157564978288453281193169953559641085390120539145982691930974863962565191596645304479286201745096167494163710479138807981378006501265670478752337329563931639952928973772959320689158993105361797909981085962116773438352166443675333414125414463385543766474719386943823617897161743789638331230280914739891940201827115015300766569648861952709321247162503054023280476720961713016003995083322961778102990283904360764675412065796002528537705994378642552280087316775806514960550401747640744978278985597492075395783622529274454018885590903680263117912072582853693858132763994509887479031060323108536300165761376503452996690841586974363461696322916331077228077296538439259774956690824946464373979981027060665998427350458316755829019375974459078261382109486984322071774160884014448601365870732371065261696271312416060205210468278774081098716086679476093173962414868329943077688019614468456209250017214057295109875828480827748293191439179777767942935136736934135230059699299765684376671149236241933216120627460920176836738720472586994900802708479788573651943345463567919786980234856414406552779295415991027942775741064987062364275639495598059700026708771856636843658377178545593773920817727052977926083186487393477126625462307259101736543228253448710552154017690177092075714021065987525326658512653700927023314715895347758247147508952631174442979645898020651176250495786362588648035965945809437729845955363654048933252585272167465565207916225690652433475351304858464916962220874909467444126079467391696460314099771507204168727703256099800230401294832741803090208393202265741423872852053636348523130747988881330808110119355737412272147226249430991967593344485173491263923681913010277129492819691400818184555382399274405729246549604227679737012780663910472306487549493534696006813798934997946703966724672312660542301809357784786427329330913646167140676201725243854942357587632978457765068703893401538335014198930743641818146882375276183736582769446216973283886082772457053687442148203549448292319920581424216539851093509630805296448836085854255161773691429688978256138748284918116040958489307243161185572378053245320658221755427500458077075476983022505582597453852919037680639738004868461224171835282442223036112894108121514416870733387774491074600918858387281250974076180625291001674810551479779244131166533737932494498085215242199526087762790484370348573375725650214801680576973385470346422537901459059290772026224475359590847361673524348757629521380249584603561207109005025975341525508318820781616750043603705231487608754784851568535725632329052739384500280248307389039553985204770348059057091351167525352853089733608873439022390317221259494538092664395693387843525234068630661879894025265902160222258526364177511873648745647540780634143804564196063682225438032770812331206844809581246099416764334602255137393790964676469568930608394127058822229068403334448402695257498647523056380902865746625683927714454629520717862896219006159801410921637931573185627168755219492186446277822061699116559826421633213936129540684121825393662168253794909904543685591131450984841921935960577445015289244055916039746408479228457339421710012261695615380219219675002188840309760756599168076052667787505587853986925536239554943976189204972336110897955053199233539301508926120354190158602039251533600980582852438910175455050526169785714553084562423974857670618331370652434877997579099438486853140219646383474442844976218761902589242722348206572825837743435294449430872309996945765927175858421720839057679422544233414723544496666742243513788927312243950905906384307220901964228290046103179080137547500448099432123041472516693861902406118105235340619305763101271398868145113247907109881111682995813650332292976918367733550772000386665482645504484963306268459565324595480316472401260586651329699221123405805335955869335824059735418553276349714045952357639286111720043455669262174042192833352780118664012928664647983502935866936835024365114032257035947813245103745814570479746517704089562218729019044124220834057133447735255315996530183069620936605533867643669554695905510455710053463596349664116381713212700709447659925591002259091685717342938030551954716678363553100381652040962185214088435377041019360695457700722397861982104174397105807582059889762019760297430812970909267305374375859789568559907249423490021759629431583985421368055695052789923444839330045292853144090509387426044538110718811623477615770192817283156769825357497909472496798012466857876004445778762613598660762510292806865618637581866907984141384469988244528633401146295233944285595936039556829300039084735119271475816713366434561118675060187610363616942028548401537118793440347435591103967048666736971053563904693144619515979826965982746919432542609421508291822996733545328484177466870475674634835800100193111711450227307955370755685529299986840449520370841017951008465830806786833459139524241189568054601170460026749407322662282731671964802641524979172526104221172197334120616223209282370810153551434034107182760854184889107381873376484912940764435923471031647024440608195384032123304700247865025518972218308882824819390727085209636099799415870879203308498899853462430351144130799861609377583479502585413231588447613980305910629245503186889195638376460879979519588841037909339238978996158432393289244303339880758931144793689369981424693492534587981863245374544148546646753303678004512334372557618431829245433982549303691477458131027812967924766136380458497037236225579063184794525476550326357557811110698994154659882828578823109234937172212023072966916042837536112790685220969630492197984313037724382047882887687990873677230799927626401947500499330905982455535194612139440568573296034315605145495261932441096068761134167513028018251093078378452192272676829980997285326183583043195151454412903558187945851845673030062330666704304173597998931752934911898600877593091425062214517918341678931642844436981648115470660446460296335544194813909819618408552446918272289291087556856338539766621648640163677124126502714916235522769562573067710478653002698011018140854651581491297455748319749552339336676205579176293664295005667983151389068601625998397946503388102247334298829427922697306782899101461289319502204105577008525684004418033422656373431962043735831863570798379742759068145136767540672892504263758042820072059251181608003194191788670051385713085654849540019197403762504182676028472595340506020058674361849916946122585886099049220130816462729064047250470835256529524269692456475963716431920540218894043499656051309838476618506606083487383286408996282233804042317350472231040674225380829627914514409592615132350050995952415496179383369966532981971260675435123453154670330671614618599258333610334789914871087353185578220975776745508048426185604033775464171399304335568099188569813343824125746179880286596524953410942704033479798108258695922474413917143984780018492030314712729583814672786930634490473043760558607840555417215567614039830564025236208374332370373019355881956952658613910169758114373522341005017155364613287543946129749856908984947438164803130234234705767743602835998756197027887965559396219195333651319410879539635246368346701737716976362678011901746851339533495544610282009909199746586464770014999183886213527833393633319554295818705883578583561862484513170867186809827135632453654474738024155194989871937681694337441487441471248906892131803999981956210016477260078603918289822201416158631395372948746180128659684441243974209052495223017132132210486719385388488563297170731069459959971692075581981974568408504783545912102311406093873064526936576339084595232713667958269968342080073806123265819139469438768060379969005693252295128702886971708907742688997181854495734484975401802295513250809560849812397706908421692055985303238353349566644514812017423208509498927544351856127826485706339282611787615130187517789292031079580140150311430963138598690148369100608516361363812734929010619299891263348847985799490685923692179864697030369963764572094898933863563330368435299773101051249241023626015712938405537764326824862300891700763153778675624065126093742606084159250292284955196455856256328552504638929376523249610000497301291254363686759373876221724286445167709402642424559713880891026014656496269428341427860147706795979392067053394007163519951346785274425564151537137581951063416128510532674362748558157441886106135518769864596611879941253523057050267574687328197668519039589959289376408685490026537899234277884640135574220241382496174253257852585340994558572829101689019823339046790390635115737120801090454113033721384090032618101461220910773473821309464753034842626131658258542539364189065699775410090632521434620113326343053819897414580582407347815534856510786255725593546544488287559514577141355961495305335682615528628957045223245638665100736235982661283747120211028309678990217452742044988514672689562848407074120131856319066234000016720486187470076521226617049760179261055097623830064270507698108999902309111254949387161728713448801381104963890614811983233120128230986900646144200655708832959884547370426852252042744342769781104063001379891410975248906703112394291755223570128771763726874902356223152369672179731251399427060426304644014657976373279100029171904850189246307416540904974155750225850142602020523678011171335619963474208055646184092354080703638944496352977462194067605802253237611188182080580408129188226839082132225450833141524855281853489242460497971910576401698512603623310221296827232381484077234844947969155359471336235938117286304523748033045110340822822439514053045872839316631054650466222640120658675993897024176853264249897864670140364647446432181181847687649249311704938453214624109621151370395454550455511499768481412011645990440571084739396356965523290736697739181539450875930963899561735573387895401686940115453002510859675902785778855842186147833229743406098368165841426286236567730113833609491937837504582415340146417875700590633353946537134867376432548272082701060095930562232793886899308329606873489524049696312323618003192454565339708332909746765816688079506854697685498327041098026068617176674678840112688934552944733557689433490770725108476853627228911340531123792999373923574150578232551544088282792728146476720998169953206326396891513782988155187726591917650874874123355214699664199831442849032533052717129022437776919858601687968525283115108540740210153823962390666902121704734220325844806366390361915230483520228187813785903297529356472654710538975208956934790598247662671741424147847901423133646954313607351911185618227820956431849550581578958968047146050741550395866923804173617306624215355256100200488642176675984571655463048773811597435047123762164457807732889244237605985877909080792378880349336169412030959261889564334230921778748157984656332213430491273195542649543563140568624323609543750151302273925225482862045557166983930064512812741843754001606381356456243888231572439717384872472558817315824963417543478699954433946745302939223461288073119229665809231386593914187805883689909640764525922822194381738171251547086736413543338948808303922755256670188028720035593584996158648684660079446138492067350306476846606741790906124116137284468011122984213223043594413507099578660519667075533332657123848179869802045253267736962201548680800384152823870131698490059625205547230616461692926594039939066569517310353400648157307077516831693636046215791561483283553709033361309126634003166365411170147595138515096895419480535183540928676602515206567304338809781182489368355968403455719174699207372681104875905398032882665364632157746275647089971261013110486738069236430624963995959984502645676201343762861810086032593263336979710938620310992047534028371674208093201317792530176552192321175748502106049519355657715804254576771993411443986415825941453774905432763614442782211233353884437930597515425980606184491443640032231957841718092399044246691624469718474632931433217288018687584499879872834738032032395571424753118934571652920697744817677634537880057924795823628449418787390220795902418459949091231289481685758956280665510906020938951676461597163039763731723132738515167056336633863616757964966003832585157605673810076283312665477990156120486372808682024050506267460047135479771218839784548074883903155094251376237682964324729476029781998049094054527280789195341359235745756930312801260946165097440750323673862665715751852221410710444918708751718397810728307878921945918533041653520351738579959135476112586229778644108329924204762386324286063516432238749541219592621231155902197250139010332635680206363099765349162241224771292043543090067891236782846669252181708408338861857304689659760135954326232703494874108623096626583679646757802327181780522011719958124774075909686503468757862897786536387314526841521186805922259704109909855956103502039545311891014150006037061369180499620039200497329606772756720150714129851351135157205525934614041624604532185213845054915259795790178599532792903888590120057398217646512141540481667563586470547505386757258008918735948043316806333546911960319070206310851997026115551005463341938706341613138343028855467158896425804084000299301643396930160442337346013569201188764276380486353865388711341463666238610604601502901145310558941481815470535490725276121696578700460868195810304357757637787625217674794199745868098397161964880642998042176790902778681991943314612206050133539960635165922177682056334513749550101192001779709205656885502997193193624197394715144287075657506642457687894544832995417218415971265108879253339742993925886743241495061417596770658708760078654739193219325597612936552798352609687934943377828998010318424368748038999379661478391418094300681439358138600857741611176990848733950529770350851148360107118239167231747544000956815649887656283503782021064807749825501409204810368055675112834449162325474856139131570857451140908732594466174726405962584786968952631518157506192629526422083041323003884243046058262657554744124269033763951596770361279674876784170579494002463550682153636607482103870193333644027474223764112801558822068698529567001057419216924255678480162347481787513916828423909879614640392925562601186377292991253314817716083667377126756814472904093156980184973189068033078167623232639634321161752421907973275824135385398121892902287745603493989595606651231617033666414208434413407378209711862317312867249999657097368416527495093284741659681101369691685818458406215369722160036136847353381618577230590364730976778320743738542678741890307665562776070055309911560407627605286737235506320920742827814595513318703726174301045886832864217870630919992523290513472176290865837423761948874176449231847935858144569838878872131676334145711861564715811680412741702434654688691511322008713626175441803654828150939711740684147170616730295473668599500142851241077609479199142782673895831612935713477255949876947551061914399893502728669299726327804674675704255706813179018903082938260711046814474312102857590670509573781818350128410224915054556502483933002053203105062642160085871659038250314627348657406174295875095438609961244275818013997611789656359434677745468526477884071270130735891220549581512313157374041068120199839561584541135459040797341038753569085373038144910688987938556127099639812042633789585549582205483351623406123328276237734657646509205531359222819473827395701956116792779626288501929248027271033101748947871546684393888767588961701565021569711509162087545646630933329798518696209943759215895797130457049089975090452487596858115506185225939252945044016780413058662481679623782714613488931619413615152583403221181565216571064886151474228160619014544918047388522088999680596410922495316241782608189796373259502675792425666451725772828202718692860980095635209385851310102317651238426927844126860323795456808644494665832049821462576932333416773320119198830473755286367838874931805760064889839813170833455347104965361485301580349054627128015392128642127678849812292400049093068231304826961357600194481881005092106433886028526900442167614191291336862162827780720130289538801495822310298302165047533008967997122590631927722204076980580845526902821536428429295190307292316276835141119295775438556544184477127032797886361816753094271495379921632243762664001308009912760067269980725451895734892968257136162508363335536030906256913351875471797420447707360557649470908280398649431088255382097768003358979994715136843616843813588210719773692206970899183936014119722782583403696287345395138269437724776739107813289409683086142556574813321969371662649404222915734506341951373021212011583931925046056058520255243392363280815587650029667970737342230557141646292371142016688443248913406026565204123469261572159055674402474122531483161620603477786305839454152534994545616522915448254259705093519289523899386964130351586630681293376975594235411133272535162917383575674617378855989617768140647610551158833460576638198626981948469362735482727795408797754589163736365122490707345810970332498152042288052772818981650486085898609235271621790423993500917900097682530266208302124212013259620818253623650653044881904938482198895388384251203206166212771861076928283811384885423249719001488425364596245984474815349824756576127164738177639158777678404601970237143322373148534969625170040476496840482364528219866200408462198487525231739062998839472239754140836188676127126830491604249383420211557764764934010461916615004434909248630594842886329215800375476052088629934098924310101088486833780990750385493525891270146184809500962016773054011822541986902851363754389654657453293239568278105339415764939672668063834705596230971424275477717716731380749397516876860108184392480832739643014176671435876200688974602209195673832820688964775966825684766498421487493251974570882164234054577151335815734030687841489229531322660130510142892886258592799503734774669800152167368936156346653428334966722309332770185677568582713456566307507845824261189009593928627442544384757957976990196155446851242299422773287925779290581815201972063817819804817464408664928239750229148896578963950440309071287501217932532912154448650338345871225201502423247721137129870720726315621920945173771462880305128180892392521865256189348767640851690217159975514896314847170867998529649489578107426982571204864543522846747020595243297523499762925585267216795720588218886324503893662282550883052115870926697909810407642275197068504761070638490997225664186450285970090931132574999169745128497636935528217346663024910427840028945101671908514157662209879588100369630395758154216286466634317038290524993899811126410948750482974245977948439046862111969313557429386876949476001942771486788566747702906765780524458812757245718817708592378243052784842235487787317286200056434938048942141838245969695728359745051442415381287816900574855693545198679416484185283459168403927028297183259034933205814964558469842878471258730492701994584765603707430260364221427245392530227548847118398772482360095124098768721028992173973617753015497474164575433041917254577707697827575439357336779294925437093068033846571219412192792517489271006425680425335920973692372239967766945646466569062935157321325481783589107264011722579214118242304035595276410142338481039183825226934244920577457832030159293599808693934406962258745197053610292546940922541455689978072442796835030308114741081873913976996767414755501260056962724227171146401721190533744613657371872202955195441935437395896615018084983021041956462634258171126530827740948099680582962555786655425238250870912608527170497538531261781533788913834167160733401018646973032738645115186788440681877062625200988938148710428849097211440022673124325512274959679490027259564556769050296626124055349474845300396690847225472528990739495503347175528262104612826323061236789843063116454763964018503072942999841064854880118041019641063197283139136523745068872786374012091910867490854841624696375922071431542732401797621398689819369527697544670707149108308052763929697215164064984926469236957187834565579022900278766039442009417247312901349797402641482069271080272321014544440901225336232762980845507754166064241362332478186486726910549244487955054134672453998282011511180996209515030265003927880281148153199061484204988043092274561146877210087708459646913901610857135389562212578716009398315060955531989844002769847341614974084039748809918365871574398846846746081391347736201641339754158848364386496187639320698834638545224364220012532406119799987194711327086046593115127192727593600984830514811268178950703617107338182294505293550814530853868495293215734834609519987805388129229022050731734817133592986077205951712315443708398295080964284830966421035193224998388521809453944523259966767890367015732019870414212103559186668008892099449903377357590785843071308434781516141349776490687537469126903446167885700590685550052102615565324338261457612168533193629202698413357141756959231151762780384607861180472758800708631673745288940110767302445394040705930924297106465173794858918744474807227065460650136072141902661569614697735371181704479326083409081889863910629074467032246498443393765374366254716774155375269973893762138743437077746684283174014411991599666544301264442861088969595220410747185375062482947341308229607279952664063009283076714931386148832851619049134253363110196278745337502223287434621674838482178486920348062820103682633739442807384747952937637987087054913664702134818103179222954389075698169659360219202416952162258301432989579853158684961096410062357727218705157169842797946223746827878924698048304702823033296429130252474227214253579284692048672992724584445875504566623062046996208138112974979300216024131003820670485826606289075804352882319313109275380645278344430450483083058646326203276786778566184667263692538073437214857781510858690852480909420634112583650420944952704098013504852697296811025878734606132415183676423310785612003628886994328500140869474522101772012052427181580442651735230580357435386039724512310362057165934168397754753288901864033384278129608117753462566612500002869151019585313643389065287474583317930124972145553550948183768043699772135917319397313260691013909450334374018855432788787075511666085268868444018483825614923893477872378090549643685855534988411063203021600516199168378970435534641093532575327366417579227536877167926770928234286758824424035707432767887015144225520021706406837393097475706371987505755645757741471374520915830823991544451598113840529295707983517213588149891682614796378070424114176837231833446352850423128945540432323993031407459463329772543460878692607224557677352909416351641851136503332948696597801262397910339127073064947364253146429358565731560091666431637388878511116089351121052995123971327239425491295453751213093073153793708577147329560042098914927836917249204789762299581007766226424337321393119362388321111079711933855555336313484333036495843679248930257124669559604410852321991827315265449824604608339168333678356358314627599772328566613911281197903574188105925012896618955294269176726827213054262666945505094950037313491335872161792945928961927214547675527805418086320731505076598619111949699833160327524718639850105679166245778782508454761703980388690769316516570874153349631287915913493828559436288347111504005449046823604079600163100642728371853018148916500245243877224956878251612260478809233997064474449471364220807193448483794623112355527680735486075088186218345665777713219043344432133700419192427373526230146881403848651845406841111275152087939552383825527587585809523669849444433665941429677960316767675264911419845657718770932057257867511968301046656185766636754764188012294659328690957259197146663985850831598723190797268404536267613620896191688606199167002651421682528106730937456130033962982717726594105549850270419291982243756990583521084135872548914812532203463880554955134604155284801829213567566312571319396652741876259465037639332262655120949519516582664941685984855213356614329061547177876275042010173812908921099345356307001147909156361317235823954813172183890226100918727285912656295577216091069204857318463926231654660203316195276710356193229528579172069165131441159425447228868661215998629410551475231534448038811124224936366650041864535969501235966583484353575605678838887470720493805112805692856272832531273798528949987769667226385954126970411243484875196313925669426876656139442464261949637172245803626585575167624582922590480254013983321563772651127381336838010578900291936795252879711847631634704306079230563749763916452833593592243760978846809943790899993883588490434755739588381175686128283563915049534669907575046664081241748272205756585436818456065646583386199303986811724151221194479965576968874643925745773463205832359871909082173931520093016523015474586293788412282909592913325695987574155272429971144349002408197663621205150873891951810578228882461281049798694480624262199903719131449416714752738400249186816080152670925123928345453049473172631163487182323114567242904931640007268165764894426312657250545499054363385316848113777537165649171916809119236794188261675812266917171729571847876858078550894799949224478285326915560896193541489257874446186526047751387270509410909953727581237083262736823794704342633110559927759834067068701199132030969488500391016203387488507357471789749217418156481485549192666135262159423187327848160603975383871070663071368084236571292670255626247665421219194425263834665347087177296004122722821457419339093407888080122242510766316604997644657371730250794642457738369706182241628220124095436435993301654786814453172094888995595679837038730410937824347557089158892110794133466128058219762056689608809054221594035666990274791380212164184296248794917801227019487534245264699883066804626324234592254949389923865242329391288004016866168949203514447392771772217680904135929972182435015957483396084405395316067150134882444324383909208922648762358156702069071184237079186076736752805664550340438220878008045368863499653865395728146710413665906093921710546165201822249604226395374245922594572432107686784237476081212714034516294553071157048911467032576141633612161366382795783472068419061334930883297584683875604321225973400020116268076745414067781921197400149503314148862848647049677358092834717320643957517872992541858471323079557867265398841895588763865059262115909568266451607496509405899268011362798193086240197537901993070491862461065893802281348184769969891487578125204171709564283018354259429563909104617474973053232248571470761861640101502229791548448323860886110354298640565959856971266771162571980905840026152469390903923515194163559389755794770514746719269387792344857861041465066606123506162919751578700597478706347005920393588993507008379584757752571954554685368145900366918166827343372645409209062418457998083299237963018881387082987745709488740744886976088465618270770638023186939710479711965806502718640433052167137969083102309535349586331502799330064748912765639906118394086732587407150023101856190327105025251504763538049072474225459987078292101186324632099607388891860477865623866452711553966621475218091430608898257157536857202175007450473887078053939043805148055686827516243021611332538816794200378048264005039855828640684745291625844700964608212898639656022418961982547997643084162068573442994634123458914074714567929705896975137136089885940705394016021653887450973999498377963334531002940456856731803362249440923655604887199512648930903445981673386206591989294152641565119138784738675668100866401178834933499832217883508573961069489383109889863176725109164636675643704597501953623750324738541403051296092063210238926839159988577931389221671593395517054548497505238782732421628394572068513231204943148107258867364902781283946900657899002471456223463609193768900886191915133021129400113104439835922339820553026470716093514917972186602801185504018617897267306757736041128811032117844138302464993589986618064186565479121286480551463000650558394061031014767204651048890795975468710749723907413929511954622155198358908886037932170310485171481403056201382952438785471039290934330977972046070907104766982249443894960192899191138328632043103767943317099972952970660936564954399192742993852003975297668313936693526984432890248289925501764881706804288061507471489622439235188566416182803280462943924351903706317961644704230431129647706293100757165518865095203813837354565083364332493700448138492178667814628244804984946872053490076224651017922414940331369297866650503327136782012108209735093818723952090914934371230220144554371782619221888346282462198289226096758162177291972752332534367225563792143691569349062059562465192100589849098597785547762125123092595534232548905974767437652226887447075213262353001340298209367641987486849725554251434877867285249305091593618238887637262287620800150201410370705949832014009066755716433645190712184070448736518195578530046687690313270897453147878141775976858677411324611497708467978983919559336789819215097071092894993677507182422991003383565556550127475495350700194564298410262276115377437410973930792135208975290958592079979754715184276405359221252105763089165218604936284487891898938297924248215187693131921117677669002012936506918607392963651521446645848980380529319768731647828921923038646276081434847244935745635085825990006043889750590680218670932758747782938536952751509426229745131274773753839243460276980956231776291408730675142969257917102123997570202217201818391873232860093470580130803148872248642320766809101337271480099225773654743878357960426646511822842970826196242646290979379648166669142665283895976998752664035129071194742775517369260776572570895411055988072765894547234447256453639397550548616208511083378287582645631152592588226312862081176682785304338449606637385681481751408720827802918021200831500840308189203483296698139562003406170985975671643796080961006446273055679935694513648186264930191740190693008006007725077120779810925493830163521771385493704876467453999364586806814939190134738829284922349986376411397829541552048778435555408525124628235844261863997237667636968814264880193254101077986006139576537901737708788630402795701564148931469864904811424692736678278208937584237142553902382000879029713180195523907895690997012760796250325163467196117481853844287546186255671522559966320464318027208711328746223262970589792793598106920828380065708355155731454692574324184972573387400506268857659019787273407370214510628987573095393644312554984308801817180896459573587033943189450033071652622055237825335944108018333712696069897392544080760579378371664928591296071646392118775243337115187347730525376132059157881214966160940147667940513578685917710120225787470030705761927098275876362703518089781975374910484793976399257046010142077445256108994599890165671370358619607929191822607399169923166896734723752990723139739305898003740745850375985250015969023557054237442407214699169099016641439014174984794732555278675918577401428372055213188070258207549194028477488334442159700146810998544982431390196242747082922725383555531939534590495832522860682115007975482106328064906973005116160431288214617192637696859313772530644550753735868922066732382190284088407977892069547200225306046493145831449761035378404746989371966897371067804079226363002932105552640994958780169254945023731662875850801017806718362561394906453017741547892861610216350530281222819765822141016949623000800651460217653157000194517483402310024404673458149102933575207348677843344481391267454840562102325418831896886011407340955477602351181199983188682480643976568027088466292699990658524753840006824877344450395238471042641554454887140370831592855359508012335618257519840372169658971324948729378430900311630680222944445568440868651828177456481701167064188588483808957138678310224176173406821573913793257024176863910270001360041165303780240958210833852949667003145509608803872952474284795923974237980681898235349080656409012734298834290321547945301383800329213823168704738300827522032818922362320366012828887127858060012996242972491713896795351405314316336847501183553370801714311934105507473711033044991180929967306841928815292806932561282330540285887856435966130178898258827798206523464649677084897760214551973678492792366355773154961325470117384750283810254706623312965371082045618753065164097928947543226825942716383413245085855454981229035610422595168601709020535854408132017760246652610553708213792858914314909382926564010430557297590754208277655426133241645335180163512359967026083089020063674933215907078248998193232030869802331217011940962383239462487348690289182295494295787238842572590685019479285299771998035776507812299890044467520274992715361623385343952362257470536623499325573581275006471755908961799165782704617129683654744217170185587590592560793048250948061606771111221717243226414322204493564364202708615633364611626509794646981227701580701107580346200019155295410307444598692638956132712206203340128454154060492450988995142633109565809808432001648565516273224151646357797431437775678447764407182253366370389949297771082151679262007048099526422509407952260067860191850358741727342112994236345712080071798982378633241979896401589328638806623784977636836872384627082534351630506261966703955174985429891386085142525441866058826043166760623633270330189263383511204321280198693381433873633710097481680966370255877356565234548329821381805138846990825704620827999292749456821433375479894253066323243153202426323973461271056428080688204365766855654156026159066068066257271152600422557690133992495562499546708876675285168046773685245966203463570234357566692536489534583926476793088529867788272557809352242510781022961215976444454832069931387979520985381310667941928247770094748466486742733861587200209942887879131372804395529295903487133538703447690060871882687853518646241496492949512660389559995955623935940780803945300147631384075849873926529426029180199112735980411625885381320465935029156396243863568101573328924097457700979773704612848189859063089749703860628363603017331556713236777427197557080052856890379847694100238752316658476823340153961653358607281808552858382558198233327638985605897256177386881990816324782781446886913954912631282801962031354391698012500541308175805080757469217956219791765134089409179128948577140846771267270427352719199059766638029015003020856691858445064665808734297907375567360970684670980736190737333311349199101835056264661653196792995124941243685778586173838197408147329590345971192145913118421634629736837255381733334462934589209771496622188224836111817994754171500911679974141125131609317113192772344391706126795064410775291820083667256610857535310752327312600945565948880078807802823354526464296902683261025776595614695614792522635068020742866090312754241303330669151148971432570057200925046599996275347369378317038435656947745486962362652391346315712159748910254426858388408778868841529381072328215387427632905652501321819304559922204642151668020568355653249966751873842298128248460724745623284928225367019073161597117195104194029418007798428486812015798683703490961188928120876111311976935518792823267632348025610159264159572551491685598313458066120804095313745514461045984091774993688719378192052645977542502534098412612535394230926789118905736154764339195396681170148620536217498793860429667491854790040973174043565500082672740516388239955924916919210620801043578513577726000603949784637831677616260232355588002404102317501488321487080731434668961904593099343323628529965742670841808795710488367108414290950151727332358964559906948071901726880165047671647593668995875180560996234397977430479325068434343810861541840227225209278171040617502262403475595510753264598664889038332424555125585190733070958348669321068942106444888198380892118045628738763074146551406400930979156795577366650361718808785236533963329895866987376186628886704307760158747532769457813406262769264262206717415814744065235700855991460730331354317283390968904082279264336987228577832106332908577574977408491720450879721251863480598603985918197742112383467244634698108711661388585359130185441362247968133280400777945212694223347732582438309966171707347350936437826366586893248836870824143181648469803577028244335405941570107292087370545329610217364268931320371308140812266199826931384772458684686023829362694522027574200585796500534259742085157782502147900932786743599562319475006881238197427451763043038807258151152833709234480275699742951518398783366815155765048352271547357948706881413506975436150384295571606160727232694451548740409157028297828137905118073797570213039557978346978976289833731238061733066489545464579217054171901794296036641625801375352774491707450503353458813138508422789149979061419252229079378234834954913990676958749407431989164652605220426234545775543331180133585786101279038931495538043702319179413173887718395810363168150695394040991390957563031637358741083274311349478248054617262370205934126347232163515007192362850590203984650262738885524428808563381243809340215147134371879739460625797548741595079954743909513632182396170360143680020792191224949292157736602530752241012810762553382626457669363932422226970084382359604752614741117259388213769311820272254256388247539408082909748736884566745207487183275862429940771253266312167598726622610021673949815889290945176821454690962994102465663716416642130837250550479785339545120712051541297386547413658766534920563679106278593563378756910421237525136921668789405580931090858329318920408838924662776813540953089302604737153111171907873022319325279536557823289901586969622194570802407488746894377846599993007041259837133614930640664078060009329715596260186200501617303805995388177916012789157303468331428981439426729957315583482388733885009416196098086822197833957243240292067339933202265375078238051677553293666639234910128292469945704593907302818787262139571746562005925450906606389281920741214913377674133345153543361173288677710422927087046113467036519763370492687491175202120752474423210549726254596492972798496728036069639815075609679114949736425592938507069345118345159029192833284514034599879270802944954143557683623566502105306024694717039514983550075733225262621611937174290184980869386180867752986938142139008507056986399153542557759426161828919449067673416725690362847623222423923012386576045913180321342876908102190211771439567301499136944161433810835009882005764542890400329565486640658791315124022695789070711594727550350757013261568528303960770523939213323380326298940921344898100454487959304643555650552764807891498150950943680238467207844750649577839069308631407800677050174593208072822745939803629401772430474805011983141480767177354874803738705484358806895924337212021218926574011228668576771293340946522471963783611265156397991053150482233745725295487892049809260237333356033132580871351041712773784839022303308098102742100586162576055983279684132566055628568419195512109035960192330723698178412985808694391205991391690008446728688256739620592909466617813228184848342396601231061419192125317221663896657495559353418074713646197245602391934393050386266805253162434441625024208970969691959553636025028454625695581616157384380099565572929955289575074621720545378584932204155514708383459873459521829107481284264562453838865030780357007272854667114362647919868246401184900599583244638104975896341646188854503306659924957296784000142849780553714081239770228794100479139565700913021941313647056657652227302389746226609453227670754562531244915595101968741183791685457337951788745637518056645080620905683449805964382055650900713029746756108308113160641430493974395285736359507148396898546955625626360891928028622263974782828494977095651065631712468507195889592049631601939138502528528130234524079415081609447051520381113184548812950133274798289271212595917085283611719149974583774502356550531079909254388137859032231491624413985814782091307786554976101872316636355745162505122437129289799923985647713865469405579105154830976793362416716391062252382514140110042044227978327597924659726750495857676171877677835346502391193642736507822854835350769415786670694422629977903467373109314837722143171681057984000849869077142670468981562491782966189848931947642282707892729689144499690206865600595884332591792778610990531952414764965130053617640192317864078660520423555512470055977428016865193040939011805951736246100894984305856959064086575702331655861655753184427051889246270900023936952752250934099049925773831521674727984578362848245727825153353189590184952310867705700961246114765974577181995665743078730893095786592778277726793247851681507218325326399530022534343544851282700443232039563280737399279999858897451497015152748715434769003728503522678352579796102596438586081464922127439942804166113934398316383561406480552738805728938148287314845275787062023294991974985589923272264067040790517713228976308915103494635714704461335554579501466604091533167135622129616728484445528350454144229776247827343393228276032554575350171218830927955623247696603698482661324186457384225073337975684710438250983559641978077162468674467777677265021978045984248037875195243878787773422333264242628275732654375715820414205395514273357446627657322693883934276455464596189347750990576366733698778079479175339507998459097698793015819118339411774950537121553425700107468625240579413474564244406163638021169824590861418582134657798732001296949396249264304905590751047067020459203112582376761721974765858451919662876750852091284365706703145131111097021766232499926645031380802467040291765241704605662737988833111703093646457281142267050079565895669387393648234888693065684784054506411287621461665502290469487999559696076952781335070935921572090833739337383016723867700253399471743321769071715121071536729451111934093732545586211027373552928342267873831387918613863666948312408894649406150109927340526957217572637708324866422409946845863903060311315542831347228951424765130403240979870143617876144732636005281259990758195979328748546521259869325051692134305042761862801958903200307706776634137397389656533236029965699062036515756635922465052621748485295743809592704695666450604779608624675205090195102193075670533793493466704874334140392476749849278520390722855645751193607191903209098892101983996776605610295917195886936972832688932762239789334943455078730128034828540093329240929295283688677813310574178515273096724669047883455264170621825378921588435335325384242402473977164668370543697505696469229538326249022865269854699936738497461296084812597615900327573436837314531730962795040089562690716876369332392556680194204283171825970987833016541731581657396775636342645784396545045199945119670357674784175437142462001432002695819405588430329926122290655433095297927331909635332379472645558905754702933298227828809429763210660993040588293556068503391794403966486874053068241355905461304509111948052417577955402642962756645832464152040625374650670548553998952753488439024617397741076994553145183139004910952368738285789140904873399369553608309613090107230137227945096080928189541432298323718608138107023378054439894523656340214743683166659185493058318538053200590020937170632327184132991801014384356352104318450736867387276221150204503057033608158201016851371580846487297890701344838006982454204937804987116930877352706120310351465640958925762757112922925458523400258033852682739249675989634403191610637460901769574661343410308163329846533440405693475141073943781783258450729664730608698460921285852529246894602164076332604459029787917061932512805163393636650272590692830664796085527631770986420532619345689340216311308611081028161294754602121790873425779281571487339092208766669333067497391785757856015987088967816612044233014092486977607276334633077066995149826938521012462577189626799220609710641524929352970206033878077445532150963362080762877000570364067171466724842643935608322172331511939321135064224492705382567306202630105821938603757227606771538673396910485062335658540809999294351598991564399084268529512110160882976691550017294025825190952587046509889872969586072945832002624284086684591972832603655807399712251078863352915739101217246236344171828852569006005009896357288973457257402863283072852265165514213202958896504673642470720506663424243772322705066842907435077072857178135187171704626021738836008303699248523113237536498727973117279097226840210907917913328069393554778228062951744747960352570433008601002981609785703351670179953413995654023621564433781029032686132990862821556608563805957807121327479145556496338710020323362872397807854813760769853844297186794022763983353093088714926219135719453391588057272547591571585135441869474075647042082098514181026558085044393846361472954911223546904422473316545964890863034557992897482807735945579483710561748568499241432096320128199028475858632149115742897724790395597310876507413535037169717463910877116638816824528159115242775042735165698309631442163598245939070764289009077999905945108821837342838353466556818021070209651445202403615452728413290819208886893539566328459136385575955907484489569136974120433974247527822867537808548480048551574386714253205135864241042095294557264718166972776719786192961528140528062128960885902972833187693592532740281467346399526171200763224515663763669440501914504868658523744648634815138900140394560322275670288422607939199583226401535925198783496602757132019799740218122536790772153749371468209556452642688129609232713674694051346005971555218647980326643519032840109117216912700593999000761555253341264137561490541098492182385030997385246169579237103999657939293798876330907734220045550669931315649768261162390021487502965968396354126959531811433066889269945107015972307244623949420961405014665310352140036629646661723290615991072856885433222250954576373531441989642188189467822769590581719056732445184000939984545183227748509140963163467505019505215488119320561001948823201900893288021037390455581305520274419002937437169073609074011466566722815741606953364022772052170892509941103135991249495681163308877899371490420166740733612156677781857564465505141857569334814389592982701350348160657719183869307918895874462111076854824488330048370065025511652839857513088423238782578430434268958840511488120929049599389439578817783274739407779977325028470905835757526992429522424454137671538627437832648673878596234734812659526580657631709738013530928330646573482488650793267246186901267617341094703221623935712812144236067047748812253704344778254781794531147067201675916638588948053122393226521931876493570100963375763298686463263274674352955310374222443322062421609808831044277297177057421513727526359108836979814978680990155923948813426353986032017828771474970079590099868312951111786531480391683471025029656511969275042597741449645263548919072788521577036055472638339507967691034703226417752054521873929455949382899238981371177153758083157468788736137662642975025183481904316237820557627034852435735359881710652935397595505428462757704017052368507151863075699960379283056302639235601632431252579101869284239985790963529467284703554058077097090137213454445077874852741429563888107014452293733382410415625764301975225380544162439169236271787265347522341813519708201528664692530317845820707168966377545033728418196258402833209142225646527337100489028863192520352980229216843495563525198760413419818515636235514288567051180612978059202524282915684451336871526115495027089380491698113873968376682279942790635156908923636866767322980898058595781060384684223544787271513320608704918317569418664120720146934967024961801699602293146969290872480808419202079410066171332778916944189208107605924889340598718114772222984791724414567719278326664134801367668045091350906605357918601552898400335710613324935768548000809569656359988207881275416257106793687940242074736902626147774533590628605257752576694715197153868375560916221535925422765311657046612799321126659900988223450642781214414337619727049598453790939226696970392241056944753843192159804748172114402514016147752563493518142674997676112904364802614770101434920041351674883303806278024449767758143257804861929874421266825451814558032377806220693210882520990060866581518832003748994605853652594567189427510678762935115680672054092872453484066948471762220511717361734036060256330897655833472914801717797314366278745052238295189146139318085815264528802318962290674228844694882419468012838848898767696280028079915054782278223430540646505509707508391369480160137066059478697697661997853535619694714139390067249179327678567929278698890237305091535222884724324671324495274933746738075357107021461689792971758494169394167814373032107708875845756697692463163494300787533228167138990173425745394787134586729948796869274716238203050280731404087754392555350198220517556379300846548512808261572265476952324015320227517505733033480236829004340891576115283051958790558151253262333889351224469170159204028518709472467551374915061830258441514838824617251024532217354771362621684638834445779297322013933185815857594108256151162063537777769141803610463777319847315971477063901928324574145609053757437439776814979842504017105266249371620306310462454782281016441515508081992388667165666601644276858740329844377707076763029813776173449649435284176543653423225039202817719978350246689245315827388844281822165977129167536829238507714203866300218016286388605759677249601902063670512941119072000121571139663425741141494298135052190569333407373591266289619216565338519299038603198309649745694151497761285455083537067435106663139965732908485823299775585148744410214166190417074187282874443948474285699559744983509237714522606730595204259301152030104705527364947630642580580424938101895865076562115170286412140720126222638029975063876837865552976914642749863529220087332845221605416593637896063802585862886355634820322345065804142551352189790568876641183475624904780760675064062928827577632271168163022994585448202744220240797506904900838414640387893455676019092451486243234754131528825972391450189642971216441022778333494092443903609764734677032558233286251286496645646145650303788759935831402952388119302843210256821804405883484062178465305907520832608444854738133417936022105996706089905351885174338406455069161955708332535716744956357517206413177572959726858839731788486248433662322072484250829698080885413770311136640806235224593032159146470143909902916252837432190512919603178649192025291943836575452353645928980534456602336030378236772480370947326687860758115630079844559891749726922590005520095469703194656032525501110590912428049561667514524299094067095313798097773949395622712135271878892706044655196279511616662858523356798434031997340432023145209182342262933442707861880664972787934051276999397469772880756853015016661006700568132265895707097630770697383024445259457078009289368298449860654391296435240992644947766283694424252684729880065053454005859323013503874861777728348943462481051432581675905759637409815540157432869689440367134910336440402895248191636487629925894951364507162115083789569086639211497534413198987083443051674643479793318889642288532718052424710575757074093796393816292890444630875773496186629783105384410874296602675343520726615972045970476358912708025491631998021431828849066587898550001367875287924590895135690264560838359483779888127786260458081009010808004213294115953042659051089994582558927812141341606658711757689016550606473786524734870814017747085568574685937879260882956719176717075021987003268884276912133870829911872753757660520432454874867254683404069252069631710401178722767887270281985717668305230177571013575339802220405818267724440286403147357459314739480442174010128753141124903014009376006627956375232564304035289826022393649639902298315492072707435542296059994744575411855482645767007758197464163867430765996704037306993884089812750153992114919119516561222813699226971213294470878763313147437728871776163647334857356019413937226063557796200576979999218640147839011843405192461297620793715746837438592963816218686916820472804911311899947195435930979557594544174611534575646774606908523547531617875662969977046896941802682145384907715760365388643740198429534314511041375654935963896907865398042473114283380256583232426033954215313001487378122850108223754185200891565274302130033695320270863028317191037523855866531915946091408662177012160280500022224698024551115815278836218584301125078325358970570527674385550841252216246305727941988189472566437906435468842000173577009566913666045147527297506427891836887487552562838597642568671068046983429764060924951090106109705911815670660985211216642897776935957581415240478518017301331280998366758174802305449092594503498527265807810861902702115743030364505695355646360236889868260170940745028328341806492200884400104884229080517037738932613764319828771061755783718402050417409104489973998125012081979937164130278249221256165313285624385946762852736762096072743242731057944799365085981282264723160077434836882062036390100488670584499085497581526255263155493610377448587869738066491026867618255185399090658407680701614561984751440137962539218919059315336778025645282394900267848507058994620801868783391198677625232308934261951261344190337451319331759332438288399608493218449249408679037468520748569129873841568239389866172334658245310813744544231840676952407074726012733566325888536162476057058233242976308770601084075489289155664494333203432147269373794818875674384267522085420360605147437628665352269774899539080256877956606005218843071839309077946507103884434967905652362364759954182929685747777140052969972028733879231152619063861827547327318355825669499403410911565684963647949818066721271040168719217221810678451439446224032219275364196851660005805026325873657322344022774112302559855443074282696486566984059903969478021620952870341455832016644989950319601599621800016162823265903366640074116771355284068775357983564614684804834690224741649941493804430426968772742131854425485563794912188580741625887698421025113591135117200974346511209453946310351823787188888645977052496204054228165109223008810624978203174770739059566748005508726275013852524279392826058991320030686200379270470241187827553938717965969552722835263804945882505226151133901670652546756920006410974079662508397314856853035912827134573786003227598335167395580864815910975958965266059968833149319185893739476923029527101294092812052999453971270711707477813683168426464504241940602843346998053961674097478920959395416703039603016520178528668870152637149809730086165011251260510669569308005205987624876545830383387753359390093312394102247593099919963702727634104352251561234416846230407163814415678127395634899386291766974986996581322829668647045648433983674341977858960146561415226630908933726964266562068883914051692494533717220976606347379493520599534231383742132274824366144775777482365098592564483051387907903827292747352706951688243321847909858043398468722420668831052927378667400107936149533668683528605408964760453529732569944596188122351879641435605567597611925179985290986596481330317526014199113464395908131776252143045488956023697993717397370404567793922503731899378586309471637085377937185755615275648412390709719838696308968805223369645707306700194886672069507424003299815178548073175485672031331785984440372437037273326357190768561334233167397528337475932825009677117650913614664598743198276533068229977126592895218878189012931391561835077403118746043946519885681552559107972551500685601314722835193236353908812815683803208058790642581419395767514348168024701364763257002996718896622889649705884523360252007606195839874941556631107767062524467190642502114672049401279227192330425577534960392670965371573393905976870527687583441287185116517128696458700339203876294926343120636435333521869423236404342640362062510547948947435799625078933470796899704176390735302036221279547646019136131638158727487409156903303119884892726898872687284328036601929458546399042778332850775475525840479452894326414904269116556872015531757578120639137463475765262195478669023929210482013008997367724706855871240577682436901449965061274313133606295017300422005377965607139493013345073948449883999298886315970888870311593962011923674119521163278073886995924594217556042033604481722017846193377971111508002710796523644893425655256764144723469122220969305620556856053767149067003832408758215664418971620782481900712998834126998805471567024033207689962813402266984885263773784936086741906499481441500029694883301957881706189631784227300956518845089923656262104523856698486394755076992259370194500800769642821313681650532402938593256894215838160964731677161131731406680348489582238478120968482637471517838229855454407731746464864118525223839642858841058941599447254053564727565522442886095660027097705130276149245066368675242335854144611630608996875337234489151704614860177570240854329278451905359675828172437089463136543009450764444577935861979306572445005243555070381380493595027227664659716257577802914567555938919771998998028429703100605105284955761391364654033554895533303144854548101707466086201568109147506993517670867485017383108263060341193786348920012149204938466534858813554023451623136031081170537489282401318744601824417713046691720775201705254254029964149942762279793865829201377931036584117279394878931106094423115838867051125781150768586853324103574559126823608366953433052508011487719684302132130341301964933682313505183105328240430769433950004185764853179306521595920840439819492013495021791155334044904991015549553194794849124668078680193754528332351228645086570262098829275919368763059386530053146167800503269428428570499011788199217648956576889254273407450227828138097846454870653105531729471764955675172601852759235566395990464613481325222180653131794256195287242071512071012622726891003237695276238894833827561563352549235681531461241800247170051945820432481397983664111554042682348512559678782453750629406035569348290121998850031105627258198328203190744036426742225966515380490749656174014547652050755518422519507253263520092748966513337295482089793695078825681337627633916112437193076238907489045172310101522033678375606354062868013121498256886531694734712222923734872857482015542366600908399789274098674056011771728891290334564148447949329787159039173429279611840882600355217878160640002265312348989901024338476749160394663024413509338587219033083001845511977400986044372730527548978044675145381461535576152220265494672028409149700354649585199380392815205452595844554924857873298205264918579963914376163905722927400761235390273046294173056926989775268131983099070189945769283804923003985765803166761139929197944229179478517098374617174762621738284562138172146822410066826090008058373404668421912660151822229033465425137940360109924547125933521198278078559746881295766425239244778565022861159079781641566074417004140799995675483721829365983017010997451629155426052550912240797281296213059890936382505544257693688314847595329504496909609035586515577802838297432291857265500867835485831870201934825293133286025498679954888877707115386457565547063915275386851101864781823368738949994971666390042573700879620640817035697404863180658021450938232030959831363500767518140251652185295138863251142803007594871787426997174469710605137339406983959482398602185363218259232376396530988255009265056814270117764597233401701644856847616552350838309937440269337483674501715919724751951175430999214661699083385453977319549492208362570450491493491923997839841567774887660108988200178558135745564303398151486733205270217033750451205572132944217704306908209572240198433410010011781306071531268692328384117330641617468944300325638514250982041471919854482681076885562581699660461432846258708960930289401389116003990945240211391171152508105306343941245082208771554379033420376728637321503874553094052755569276044078799958647463586173697355451526370975452628063652652518270333046653438204637545857809233417672113830738058599885420762220959872484492417597843996326390906508849270905282500477713242027782579219018179065251571857865552913091858382015608351745855877100798753538641490874624887145146455909661393394449086108120651344107127759843816559161465367386822582209821902562419915481939183702979611196816742996821388582937245618670992718189726029698071659426268267554034900923358820778732823053324065288125886464550590491415936274634920318572612894164981952898308326432442990154591450228380186787104864333963424503718650300469953288926634573842482832796035495581576404664835404401832640998467425193648947260360411038680836344268001925585748458633627164470877387862708243087486716193055254178532138385450950424705090678937002428683198769679612623486119096668352072365547565502822439592697045263599627228333446021993230517985207208776322529716435412432770109700651847162282404438255880133105494643287402165857540349608921049268737145981649485973584562132723724143333995967888977329729639412821139847405704793772176665658041641407775534980930900060111953864170518014036987730858376412388635112979138164231774799166999688599813963120610380691744971587161775169129966673813789016722204854907698881454933244980775908624331631967570229636311402118698125286549960047644876325555639223565932697525644798854955091968006552553475154948395072845280475444504209419680821063790257306131153861185987982006569879397902826318230779450861565469430689055536111928565439206384691049984263281120399524346877712907769817946198932865129626981110540763625160737574088301733487757444102652233573925269295468292238340850886376307265877554558526893003799969876302771079937286251514374286958901919802262360928147993462297838828387532021530457468709252675139523507710094261812866399506580239726735813820079910742105889423872747780822109919910057427194650472150079803884613175666618743604820572661349592007170815656670240781133107472803958172166625300625191190685138731419828594931291822039257841938235937732067461480713297167394426638190519694639546094507493557154891574217180709518716309224352679238095518546693547455944663023061969010401596538250539541451092654046913456252883746992022393397715729613536223420048529701942201661472937267730745886373256626444975753067939403291420126444556213070654189788490342923873765758010432891252162467232767113093721584790572426385523311605712419116021900840599472092469346191893062666828236287050577165675821988271560383225971951089643298500928964308712369852521977633224221592399378571312940264648045028704427644169371125939738724828960511372248937521671864224930616644335617806967924744149520741356203911627191256786428656444393066041166541029539357741504947807730827544539306909322268873068045916340400069093805584888963541991862090876137447050239724413545284889860549487390630759112670411452266926130128705254064345649331153433355809969046512924984073399655456565074678116225970964352300259833324889593840537455632769153476243480807303660311313792500342605605202962584259222691811439452866358106204499245113008768622917374261435040210667165166942612412770811100366341129523562935128110420824035697664766868512426832004885842202466668788749518223691622752165694048687672688724028889108671404459966770985987445955391063395482799507001127235526860029840355488724855518046325652811973507731890824807496556294846554120220256542518114963643729414491120614004519926254073634548864883554471308875205075235036499051363301279748379664572366559924535391038634942123179600981058090477512078046420924098933241865266887502386187724263417361424783987387909962145227853426383254963861471178583158368205623118138752951004804181368587574934046229515706025342923655292031455971282110881517191487543794495058723251114174625178096873814944339336268801318105018878336387370841286555720403551004419481444668753617065010445071684996641086290530997999856843862209268186975934612503263626480933868239632483471278210702101357739030257194364007330428283277982322043681156264209139037579364982760301523806913881939744113875781415336268452904140783921087794301424143751390591163746616784077472560391189418033668317531612533687957284920390426094950414194743716577290330987663867953652489197611185626738803099407129620560335254302130879608085950719872530477731627175155980901102522294989087095665814794497430197597081676275130435428245231750981115313183585639046485701604665182678794817775645185579922778132695214333782523249846567852363739792947529356470989026560966463238704674918890783319292240280780464444302460852170466716734683765685826722420177559088282377517908773589827083608873509821641905291177432110212205028584215095444466451532926662048245075705931021487041251293647556827592317270866069109238344366667772216289614089870654347312989867933500472981700355510845547086078609684097559472347944598409197094085246329498746356015070173067911119897897987220609407448763608759027842301275623380346826234822091163876646081297623987813728576306493815388662499692796388630478941924949110643615818495257776773556509930740786024718489438377260321058853584922905795657752493361235719751579352473573770730205946978707117173384349368843492493286075065949648529285931336239152979148787486648908128152497777977481797221485384138526440876766195377232613733032404127498702597151680165754726118707805863363749599393684059443256621396348774655354521145505297011384543257447938353076215053830584132695603855201693185845634561095370145400230455595262704291126997719146112632507662036456791496350579637581466402443041159609588864858457886038358313394138241394509928794957090671356085778178208744261237513531263391546187058418064598555537283210800227776577536337681925516058594857554248021171832903812575836666196925035953157452018107219224069521157751023479789228837871338297344507126409376215549953959036140033985905621506780667028528614776780821314366478075357885409853437418069207615227295298830253924835155006547873212838562010564635040182296802989769720062713209385634749444087839440578422725582511199476057441027879750552153252450267027296268735311109819035586082153707418798593035927809884556798431649240577158613773391824181766608645401093757091843786773749898495603783497534199134621945610219530930334771215963906749127705561112877215048080676687515871173846261432614265043547287596550529990634720850099871304722967959171273826376311133882512568432710236691775815098445142534508426271585221232601918130652325980290577852142843469112821936978161500921658236099762989293144638626792384452615255266976894987467585735818930729648376839059603898439739288717129800500171608732820042069655253563275080904189838970169757527125780801175236506876930347025037983609021717124856022080930070441351644672370627475006174197253356180524391593608526975102481645459359109354770453028553839730803655750071853727564685711855323339216014880356456897810233679881231571259351919551055314953369177440049452076651497837919026894961598612068967673565543199005298967544074546403400144544603354333124829807410263462874662252032675158578860304147951289624501007807708587636477710425425747178274691765267290683849977436053587145669629472317544279195857363727617270009259549085847955080255464570562826238388259251746488458949636455434008164064090549460465305766569121462457081883541089261926126421975986266493813659376605406000600847417279311029418614130528547018092278736008306515356708829242116962833598553115806676960729657689283948830699349967549271036601545346446222668309523437332448462739970919824933289990136530422943697375448236485196240573677122027693606761275114202480349628903014541734265869375156133293970974630063080176463539081292047273018431487194169204572816979479825196380439371227916001220543856688401246199750239868431777619754210922071480173512832273106465595699759333909439478838328597685370771157119569010210947737432266972253257016899175619126845553468436631830697123526678958382329291606777963040719882593249938321888473355148823255770336980172654901044814848058144786715991747931378779980619685421085816508627704218903934275408433306542489553590434343363561672061268080093001648915710098186233850815285310420767357049403434247155238452884699587254155686466052359175238071229618810698738872527736498103250669531779799401225871126818097482209421192680921886822845155970903646380940804075018191964698954462873160070192536237072629724699861828519648014467258833698506716554613621897071695581455766048269699348967008058116647418106739296820842392831926154994961482059321531400396108160526847917236253086189782470785532636088861544946841167973428361575484753917559401848374186521707640063501005167805969499951045355964357797426610400336573708661199478408466822987130477502525171185897358497813127353649887603105926112965990313352663294360505964900418801794662463558014297029453147221534268260557924128847401138268392094270670869595426022665650333096356101225845188179150695092616651207318502116041139699721327176834606870626328109695181498310995532921018219023246008660841468217976174814731275208219594572837174330223640517698669904755778356546240103847372935036207282579178553884860147109659806916751599289456508143641934151133649200335181562481221072711692492313955511446969216265079919751920468785705445833548887707963726857968901242203330693007613082095632212960329342936496162145233020285394169234462232234712129106608786338519513600950185709719209645545929274930960517312301862637338431933869056210239630607534311517488100583738358473710332101782815809267043761606498061208319906878266620870959574520614958451393866812825955599402095030114334191195338440724316846630799179817297342568422249478399456925032734783571134285694823673742487242015569592416452590129694873398098827411692673818311741631625687331223505091517389666480466318712833914083219171580149026294987945342740856104890118256998451741192683675281300832527156653943289929339077340740884224157560939535191344648089595429578116301138748420428535253560553422389556011582074284339932506393439240905096608181307056135355027203660027623919782529842352740031273358754382133385331291771905940183420465256778149680398256385834700667112794693960215582157330759133741502378388199876162005332532515548616043856003935691235876562749334565396826711521896814992014268819603172898358748604293897223371874193585221869660697011144288868285418760481199616242909177995974670514827736998204243951355364513828186366796072052537108867922031969792888821526459660862710753176664569013168854660580909136262451695655291712328740365208331082367113380497564816337243702585464689745588551310847954311633890164738421916136168849031098254150279433297252381167599723991196261604490609848835726058696640490225525828610495502366808439084051911002881293522750337395965887338076748874975162053923480546183804203909181270271287765528272077911200111716649962590047422912904277106965720142747379034821015513694474666681048117638487062656759095529253774772579478290676689376649805700061924793693133043415745693261504714136823788397029335938635615691251261906444564399133004026896147558764325163568191257395394434707872634669535720340296386280136587798379686557546537938811714933969414156500433675436261803021174715933735306939682891889289525994178803222357208646884735619828021262760494749433507658815242151236247876100173220763733911167882372450790038659086052025200600554017248882014119344762612504607366632269575022064219593141390569977665119578423575200669131311010897772592805835783114547918671366515098253828169090167417418673607460730921430809309271239406164587858797983468049940191309703033868371084934217488069997743641760062429884355622816417896450249146986979333707364838589738161876264734807833181698001525803776561998618275803009146123014639432524778765966109849893685494796683109813990318719206674747108380897702301075491101156972941332356745084903059457388070515800481683139165953173147874412936199649215675729139110110702120006276963150341771243177696136875174050430339927799939304938751670582434486966151451737420300484713076873452306525681350316774434891693523870258059503478674308833364156784135478072544176657260805119338376815557496103143589456809960973283741316587241107807511154599606482120824555496197576392640157677559096548202747082068398537600988424963207022223177886418806105741618238128339920420159562613143148741721683278687222056357195247376332193354059654988869898927178863607215205194214575282966214381099885776043514722047647861823902827967541987158291316136549690844519570170402678782449413213811627431339773860642098381640810441259004063439082184707273378964543623311453159648575482002990423141808432678328801689367851964362429580974549504322253569538503265586378288601034701511735732435691681528373540464818789244888927930081949924131877055338343367420561010923672601267965522663348950742607092528525039423161931686312462106958999482372435971531265843278620243280068204936889360248623649534295341090883647674966647012014689901800476499679404774163114919367298648223441537363597257528887845467300399522137664796181533023214906127408512214214884020139790779802508616341550110453153210558376389808213854314919243750057756148732343105856432888141619259306779745201949689373840300402299387612441261304329300467840753105596747222766717148447845409104348271186919416811213862605404966450798894189391466869573635142303481859039324294692999534132903309592467124850445172397903423306814049876456684188825634280217599015622937369192595257433018608971983468048155074101599789724898398746013301523630255821045167473018415092938876189523044294333522638859571899613945577379229969665408179380186672222070906094484262892408710497216071922623246627403048108785182959855904091919202586717570301676285788542706867115922599808395106290306165172663123611681362637904783667441645498348292273367896192726768816027190872458002321364890198374089638617300569727241248245639119630646435416588242556082820976747512294084180652215752129821026470603642469275429899181822355069011389155056580966901936003369680515101421646055550083983346324834892246231921928998242922699907727407332003488133939697705844972397583681052205308617728501221370159307582153199553984501852550672672131933701172963421998021806947911832515528168937261665959756787249121675326550949814136256178128482012614775754600886904518560191840420532472865078196681513876677651507665319322103343924752308803988326101616402940108231683682385405853777842017789242460629035191367300178690506429334326277132037991961708081657464431541695947799760284190151187887177999991606082068914478323917071365349934388189581174351616374186705246576272885819094227760007379900343010779376074648245648287298844319007003432325619651679406285679013078785477112286664403589902181438196914120095885713045584008586379430068176889854715655303547710224185406484520266455086639582819007678700892033488234603871120623771404850032886010269135122605886622949504251742616112323248123409475898167469989193325578245603087106364180864588817098165948410327732905116122563466246835305586453290813020194899187388916101477379478995962479010801870438874492115576400073010563754898984658539226094231173459707833860291925722935317635310373953365828488720599104845780915391646801659110552139514224705683472106041721953997931469034070824921216129595635861360510185095031959292942898021738295420871197322245390258028947517428312320212135674707303488500617926415162577355863901822143764376540559680188101117170670228786154493450841742340540707150729097278009654448957116941838671165491267829581952701908993522179740416060010614461951696176943939511673194626041892481481753706819946745763977485905277247050697683452679344722585515361512768272357509938347668441656894608248892000213317440960123829456928757061900594613847322905658374399700863445770157989759949561979921936362304916092091560987282009958811465309317502946492016554023215901707244447302677321646754707535745165200818751615056856658941701348380268993172643937755972343099802571718296561535637969685412258793671584113455020624423453122890644563894630358625363645200256368055052709813187557605525770458159860186283114359827717680839474817437048394449191141117359185421967360832620738898695456141391207309659950223786312715935111364720861978926208763809468367517260743602924389718482881117152327044767343575195571829679227047568695009094345206188246822181336575172876007047394607342499765977920163970226807509050335705014385834364776057898035270773417820153843350188681937126835719107773604683449551384282670375445076836248690097840292243241338618985584366095309373657786778989194398924390090007230519338916413527064013108483492246224939435576879261372498019518560230476157368405264205917683008384495946135952277983144552649757383026108802555875031521589069118687339230141802554994077878815195662866183389419006789480324176467065491436312251840116892835262674883713996361500296523152086619912578628930117375444111901215972681462459422364063049888970028209242673412227468155135846137893463041533883281706834748532192058825102726115224023925753348723986075376587507055213899166190484664801477845499312274514852649206244966373546577322816679216618322837768576812341199958369264152256336761248749320626339035697717256865170328034791986918771913448848028698993184170010732614786949851212471232342210925153772499461500926220702518476095343926710061812058560496550451407904658207763558004339471209118548411793339426522370470433961883212150273401009349682157629721502446012648193063303592077999449300771370171907714178771333287366753912343289531688811924202896266918307619887664013652367232383391944768108286007560795196460691302045541995419462800721732379184425453848761872260722512989751409986689224630711324042528641271952841236458773999365508771151859421860211834666350299465722132793568672865488794381244042691574128191795018795057032754948797544155660743710644748671255783862416965434808550465038973195632032460143906017559300721593556334009362661166492916522402440078749810987452080371543754517696005775898708577472923475549821789987655762494693808144423753496772651173620128997236951010701936005819653364786136527068851642713042909295723503386984618411540257116897367452816322456330946243933560894779360108614583095215410863258915306341472815535026680826704733687387773736530840564721771625750345456046208707805459318655471852624032515543078982740275453536547124981986897661569770335916011207984326231443136788973529837256962995886145632050666402791174790897665894252079149013205422562095979227358165493301448178563678711495257670492981459525811889584201672122695641989869147658754952108599071360894019826010209824839730071401242388826561514095430767415814933087688631512464719197260355610515036488662293680958652251840168478456094342564281574649191674986742568285952334767187201877841224003802094940848356998131416562177820542324299269165145187781734624678016832653430874545220476659318103749092977724911161638640841136123225890573091004903970214349201859264820488326624225726548368701891980963435121368421714474092595111008023690236893397266534073488919135755006209532692725331894199401526707591092958872480906258888464699652896593013902243849866325122539711279107706003669410510636228849771347790832152003600756253419114397331786203407448990021369041317796327605717482487421331148930048623197768313346647430784857630640096046531334443694663126644210970613618670967942414520453575769204755087020130328014403359520187503945626872040390633778637612445375473250753095074150874970914661993862045948110743474205847082521136698464984985858100759399871334417038118942427938596117012061777912020452675874205377616350669605932545109285781044054607767574622276987834235647715802568251990028703916850457491745290555793932811670787129972446561723286191985827324046502523735903917476149506261607075979992271104634119039195910048889260224196761295446192125039637025213506868269653287009943760152221999856581959768850636855281477485944553782535164402816345931689146157287686889255914039946248878331744630754462102426715727409956883186932922144429421527958286154919573882820446420278776812151269243842207843952331312457841331117716164104119536248818018285338237731232128017446070901291187134023673485346708960008627304295263334950282247840527798954766822920379502019308342186319354359741616904879477399042695488099775543800020881574810559530164128116546170360534812377035207227014021228134883170793098628666555307653195944106772916203910212668191918303032920232603104119627265676848645464074864149951842925918129949537953165402522205904116700523793362598689694060197122370455214246435672595783322871436973514237267811561886320600523931172470265014427617272938772729520400419666136370708164586395143295017840867082061396171617262007562013355767382900490454782520560033314699561724773639407110047559501453743236454397517435756018955043109315689588604622573428905984139323580614436174489321401274352590354993059252997783206759953625206651308745997629900551241352110443079065887941119172595173470246351870753848867339652024421523369715866859079645028025159410579038061355252300048516565947507023461140604266347807940111485709788033869777095346032211055415782343094461030877819204180614543449903908378093279846509098317917096304754672759977403727362833821931023238294148302636922785000861333814217992434421493033783938634261336687980660526843481445072096275206742733139835567754649491254192414550298383151180627996645811581005293862085083677596160790493377405295009406639073250439231330269795006034568833339090372360139641737888840222878713764931172672051381963055507145400966937694669242076682788250219964525320350339466070022147547120861697517539180226874416009844138890557653527492044546715963197184242456001549532809145369635278644190688811973422569073622568089639261683545724704898691759440465139023064851377917077481490312811832586922798268829040021340389376270828651306178130528254226934864305404300255734815082869419303586464014587562998412442380470845102308481481912561682323442826129773135210817698007397255936518142557347277699179373606603544834973044517390387422852157565243267986986108863338952254140245844046528753042431952532081984089573985609147719447357358487286976584617273269657085326469014216621069089024834278933390439314641059370329500444148416541558452331735278811524159119799272385756977299349578835866358215466331667233405709380143560582605566629486823836761530314030504594909368482537753253228517771773498377964370675656734301818573912352597344720579274299040825307826915390508422934531326640252728706560587778599136012499601055247348675928769559588804466913692459802270623738398890197046152698128157532134529845255317523256917194092378121059174010530742391670118752523858618141152019683249497566202641448112812989235803002350696857890931786082508482178307231380670423801656939738501252145083911657926056961452111872139568774539048326597049331175195529232709728754006254510828134889473196406921725454829355304409265974023957640940467232414076677846549626658655984895713743936925613183771469025537379058583281922148374105225343520290469438205680999302699611531184406531342739730045168541443593339328017977501115876833052398019689109195504674642089623315341384869277244727521721726771304705460466777619734665192638719636779390900889833231320773049883544049159973700282430694707773520653999057955133633399569171517424734702706610540010506870827715971034040016494669734621850746152067877742791363319611905899235101917958065195095595040043461575508422028362964094592765503163374913983458503057106257626950435549637925139572094007914088555434381961387985137759749375288635043393745205155048342631638846464438561058435317460758262609849407185239010209777487780343582725569778521452120044017487467615701524012571710471952099916054755848812053189067206336700699271497418384213497244035567130237054899627068710360655283732905249048727291780006383898872656372631633377756096026765668058423676052164251787822743331685721843390259691861250542915002446684099926275034701186176431662436473523160086420860571597797352609497382923116462892369300849426217935042166954597595702781974825425561023424811479753119399926833705967256223827664088371884863777874568167634307478693876487064766476123855539754928614254087841096845205284352866547956163159363858093601868490074819697177760479220833939105167168929578650664914814393864660369290860426471113023081742512147259841778269939992501799401056151802982926126202260490059585334192762119719121358480319437908657452698588067675796485401105012116666032383695706417553524948164720735576827465408937251294705127116523396016211555896679259851061901935653285356623409120813907800421456324527703181760256463944399803265128374003032092815163003938473014688291222786884381473257449738152508338511615385372719758497601506289344507971157166508757871012389449427185643683921928715178413535359556070499643431434926440944620107287883460561547701167327811083571525038412190876745067234680670460843704144249779359042393573051874932983133295094163677903265351298348614284166743210929523624015711844890966487848425569768211416121495773579325808430014621051656158859913286115215309221426341944745980574109025987451675648423051299469961746132077535943479856843440168730484202339634131471256504386303313119456848540271364109192523687796845388566655718763153624720327847251757689595586963716040539891957551510231634339906175642592389327717890758681898839732778304328247565130306774564661653625326442790802844378834673449393329987125655506691185718511709479613737050097159945547992885436025703925838291181499954961762541495057477172840782909872536483510427532637856309157536123890119932996998239861966306177884445601868037146496577069735468383500219216807014345997623740415915901425202171203279504854225083690033320227473537384842701223789223535406065023559814226517377070085613530346678044119828927895188567913524321095526108846398899000632426432395644084521400969135662352775862379011045828538057114324374827221628982169591774129592190914903562019427743299106977937855960675839737331810245235848589969107859062832040966940543751996363842628788221993877492201265391005391811883009762191543686284927168048918079881078099832695774994406415209504524166636257852566231459087078312201573412222403993768396374714097852211843339521836024599122667952463118339363327545344777093868498878210805482552832699341508296069251625192978152585872827091282345838839212244951281435667625120226483832774833216133604193316841840532553832531382209011717925778693366510016945628338819331354231886232209677287393649065974879314337212914398186839140324928094431545525538478092437094714998447002530923247211815108319733361410335995078076981623995102948242787479658164569068085173254841633977364709621982095402547473805001595600272064864486428699859167345694965591955131032220963120963290747340504243411588639786552392281566386344960757834999128967598867957533280721018361479729299438979305413575211203658960126335312304691786696931048494713461971755683149636694528492922990946315278768553411587034453727174652214396252404563604289806550514951447240011685145241436137697700457627358883955872353390865921472173476557960179756084988069805558307686474575141914498737223387139178328096699320808306045054677966233625198700895848273933136921794629149076179479897229082071869029596527383905074520690624286518288544596569494788209032193877585666338580775639033347051621439367425075436253352691859972468748620870202237742179465463574208403697265710482652187111500042388434367664184195180221573107639258690082353362644813322925422557727204252729417806774578524326555040815528999661125874788193729119939877424812716366995888769803247986278004293996667500807648953318108085019092118210330429395638527312282500003159009515803668853954682868409068126926029274006364665702189921200749501677870027495604731719926485153835080902783475171032650863238024501396070776679264351051615663081575928361853171080467691176800423065490640421918694917530514747216688071560081300111453057246933187669013866171014959071705197294267790437366090886994680105073840527257986319849764642705454706986460750715666685910417264906140067736291007274766338028595599453349143956844774843444175962440602643301963461410355625839029729590804309665530270970306644420148887182355420195150089634309193982917392104429136862271013844998817204533620241692269207717100772919934175096929862301383628970114753337683555224191282069526683927942000326936789992570505971454806399165595360266347028778961103781358142259725856697688592003636050310101920497244068684921356333877615716857203648295026199851186793240261618737495124193221329546234381659163368999620162802479554206472677025358573399392818049560105138221485076230209942237972045721772975103534710643722103904064227509923172404817784631431433048304026759064521517343360358889497667924638036306162963674025548464971964167522194474488098120464740995161013294442679126618817321396241480624511248121843183387782802084348907129854589853563083133453720621621729799688924691530833484611967565721840482822282417455969051997306467529751770592993370057101844111010923981078355856410183774365008393847109119165865648363915440131268272437555886898418255271106357974929748904458797263287559192325321926805369373149161516112072876133953399941231659230943038245544204852461204896588489291998824702981634252746002065119149736593379092649755693574896641836297535140146955988803899595453372439074007298358707283732427702063138871545367480384440076570082155753568280823305213456709574634716046784051003793045322414642197176299265871749583786166361357703472981673332361375114014109014939420360755406229407560052009073242113842744137208493799499697477191247722244317646829058058533432454146849966077112876414992617413562834270213562814348425974635172109774807764854809154006564155950256862436048554645128342672179252120817622319527432069941080340462010802904709072645736908585619403061052094506208954592752973546366068363128489671902199292939112134525159364535018317819883971237170202010003407476910993820086029639501643814310225341653749531656897128435783024390010731289490963666944366658783120590750364421249192516328934203710152019656667559539402906713525186791366650938945179268424591739231380900358422326807646934612947681330149761315784958026509112154482632280686790588620049954607482637315239024504769961299789343991689261348371975071994446650696849425796874931267709984993514423556294695373890996067694256405048210795495255182159647588951597668587632039469591800088630465948058774397659311497638620371842686607427146646522403412871601402269415243608130431520991917216828114770105801172308429060897257078730404971148017641669140283272110559248729292130306701216736419662468864625738709512361350655170838383369923209953507753812692360274257507892020020442736552555691712318069446748311995522007197407083399310324705689368829508231395668302176350054130388334251385113514401358765669011804559831123004090227529113843559458477712390059864982323291884129982713772812289448052638560497593357740668935000574332706783755471716840680353159346328565134774304826786769454765800755118157538521420271234601884994412486084313143975409672743199399819173443808365838651817784202672948660196066937249933755291411640215567868686157730951271275705672362804461568993233904687970041562805437885088083014809049183608826904059628600065835949673660512205732832784616598083495214637818605114078950016628364062085682979890983404542236637621477519007977039524005693747941046534191109148450015799753546451590176694283135510814327387477584521647891960611145162056079006332121115595733908495539025529021142268339781724593728465935359244329917269321015348974493608726468900049739644622702841314512125803282757163543321917582897812858018838508252320743387538236046018234204748111614655085311128567131300284850496356678750446592708077287711869347926109094589993350633498626178957374703620072153860560158225430858280867179353006308255740235239756754351608856402027424301603297024143131899618137331917246936781643054679703889507372958921750019678051911887892681515490080917703486764605475724832453087201930145333814934257363894948535531596019922307251784115935756938451393943048852417005043318066841789332867559926308475585296769591605200098776667144211120875014438561678904065990891646972416437428639956385068953519713180518324093654472707280179891698908098820752496180945372798089517914334954800592187054934732856859341797084960928306618400022055466958960143384834722279980589397189441075555868536255836767135372417448949628481945454607614020276993428468107523804044566836534289070481954143267501803946681853729300112839029215483665820830588176226672233746367150392451083103578772779005899840290008930427166946400371643672919042761333900763889135367362182821677922523727753237570400234064311544649287478577863417311555854943850700434911734252709627375048273199143521788578677569491582700292865443327351469462761531102037232854900187424592263312421620287054847547513074971068146732994740633658402410969099478503408577616880615306477673185682154840514501387209181946479361421083209045242934918437196290284763130840308633039859095870657731651689055853292031846077734885904327046450002421977244846039841462216349061243393696181576197286189226071473569822084790476470537102291648349321413177717976910912849866697893397866508894243314996782302342438133538733875361916334136392527587461915107452090063822684843284444016197186918394804668910019790284965723628070435480950363241973056036125233810496704171142071683462916852986726655364585514979349120388676243727327680860033104382387067828555492772985839228848148289556184490089831361029780827132536307740223278375878961092685526324399122408969724500175450246041760015031750017887179255858897035416289403053181370633849219504490682523758500049401963788863811821558969845128520846985947589271021217375071194752002581866263811207262324385019303305248634559593956677897120174071754920836663870793995919424908574125507910463546873054366451786533445211602195707378710237485476495924706559003545115023995520755065684432791294032740678567821884395990555425093327823370667240514502803454724136521995291160244492821698919164510403919718618163908267386339383015601181684339995701300901939738009778514346847840949482916342509236469899282399183183722289561705091395713925435535152401389806191523324836107787440169377999748185358078199831234541418092887921506309527671952532774868367560968818934828935493498968312298995918028551377513979767899178284918677297340151199012554407990935255724707727594240080026019658414674468068720863774596573051099154129253232335737447698834555878144979993556542442999064634547911907949351197087033641439748129509608716602058125634826204387615654916924018643691525988008421651262640754136795016853282525986861784577692234090963621193684434994180262713220195882959939236613826077182117943945969364545455105632903228310639735764807981634536680675222902462454836267750805542008192692618950597626921007225928974123187089781455057597641199817547338739230880544949594953533382454761302119174556986688699020899393949277259680856092183758764451892714100771550752413845398185603744668328195140397198574240643437436469757425001078351716780135716012304926127605684465046332835891507044799187989755941609641822404154369095826207197712333521597703083634698065267164581671204479982132805842393041748380119686518065959784810279721792241447921245143034884017332018471468707601979133917816974235747344838274828715762595907934573920593890168806599901745756014709388595495760316990625951975497240010673663380051650121585832725940356004208459654319302263732049292652644155327423160219864407245920912054856502273611168718340234234986395118127895064755886746015840264731535902316772046961609135892447798512690766196312728060266311078843142753219415926390511189205104124437616193510959491979696600249888880921894969756863175588370649286701071489354436389641355477762103900029897933161367495674880753514227823508915249250787584637231793948723588734686400612257003125428952465137183044791026735858934184576826856147385004937812530439291599848106480937419425800504547757389235797351598925595507704445641909336315840764598970606571597207856947268886500901754369012294944016944002538147146006920873347762304459008346061657308204445239182249052686763620171171970105484849269379876428267047480906597823702025157406923021085719726838894681743703727418526237486467168165840527537799009923738139667337988151904609557589465909247046050266655807471775278047412973682941482558749455585157528704837421902130046058330819698825001925914333863685854949910243317117552417551478979641869131983365152579478843104370530424280084125667538223934725890058961893769081339426736691737707332872240106634307005608500764011999980344190193454256409106514573388001026398474587273539345354772804296535840391638316872791583294301120483250201133548514100813454067674708917208719212565093422251878943704116024731107382746927386153488306970793773132821372144903524237160946914220986544558056440466763833449798813119033048499628016776275919486035284668385245267113105619580190243052269526984933556181247656610271051714168432336864158408766142043636938510036315564192288288265512096840948440410173449862534456698335088208001175982320672256305651768820628071591325283644141778546159851321570842305372958906325544196041317854601626205191615155020154653579133506064903687886439290085333298348670096931743167763158851438449268212225592253154880704096779973390783280531055584769787862640607544723386211587820859780427689158502696105426723719188489404575355378227952875439602472680379423796322263549792677620819032219590171910163671431987217022101522611391034094883081287138193112719015450035255669347609940372338124339683686718270909363969864052586790318110509299983169743349272893368394558303226034059974279665345489073467824141937735126681237607792859851298321465838406203003208949014088856006401619189832246893795425277567053688879328600995558124863867945195539384773548407595431411926854434034453165478212161202322078730686657797704546559758703610650044485621133511123716090515266968097713815987508460917368247312724399030222217509424175293805827435067718194823231493644168826282828528039446823726285869864439246981931540048538956768651641494037925657862285581844998031529480807804851663743317115529246513080680977448145481506833652966778608874993890089958060677725600128075572107880018416805668229390465659458947750925559945141089651453500079285460502652949041678655767856839486513149387736381314344562753392974350524301307493081730455184107606197663409754198939817732146575979280945686046315713824841661238672315814237633230092248724129805646655327713767293006590759649527508609257040592839960030862855756633311150992476255863828320851039449148542823362789248935649865965351105877664503524263856607741771026060766281267804448473106771244066261794007818263009087265337024640478522516676354120059127400882546909949384683729605568804209142133805181447131300805034986267348516142513884639409569367191181298099356924534089652290980246973376138804837428854506114287073685828214194231451352873858629601086638484229211389783484419490040804466258044890755476040310949736947414980836032238983818668999343725798817559362912726198512094558093704973977829712613902418976392230955775006419021250023550749657638840697897415025601877388330808842113561991620700825012814221154264078428113706079713889878901599243298679615774073464426232361528222584263182417609944426779223021015957402359106546163896392057201181335229486106746803838017865844730180863643181424813625704123234835376504781330082090638308413134581495162448298961634808602661455484388391037485396903022974939920731662603424225553740486243024754508075715070035873406480298683157828747810699525368026328045018990494682597158639523288542386488662832932169838927922142838904586033271228310550950850762429281698753201324582968009547891336223632904021084412892204091358970149675909995258258627353374641872588199022753546204067575343036310064025059436173327359443390494502345907581863874103102257114480507164575710935404358008773175306242894015899754250279051013450655820277315632308343275078005008910584838880077718937516315469018148365915425790821411954255859945350545783682258653435035131244862967152338115123324873664645897385556535116171995418834162891969758164152896400278953678303959870592350377980144238024492097424779087895714934564009656795911567602919504366734269814663813453167997595085709181302442059995191463771292048306648976038586453143498959254836469725510913831718905856369618898383142558360334093332132319216398851602497980499960222455993087289433538694646507102444200063725740415462762750277640207989042801991721173539573911460866949705830684837097330167967789882619703386502686938425370360202053201267367527453137732131928239462969154472061087771618865692384919615395796969920263981367783288429532393857818818632894563475226311626554374280878152259379924737177087974295654139744905643100042054196822722225130376582244854538038625280627317289155549166308858694881172382766982499080160152373486961254851822457711694792842767564982036414885976804352249103569154975774871448796552634116409170110971280675159598028070804361737688560635759963445938330517628357047570155463723403884433560305493720754718507458415326462885512188430279949429686109372897245912412230194601711646247027515876183651834234676794156296331077035625908535262971178023422949383338601794094872078951686887361042734766621593258524379893764913495568746048450078453979845181846029088749837094542436812931848760042137049845905472268743557331535295222188947142171928291147069039418591177637257753004355009562080158624309138908611230512819099651117060107167475347141005927288939246402906674649999130370793181524381154010555882507826161477902966365173310583560137015292982761968510930723336770750745449926064327764311438759874805583571462379184800207985870932549544010179986971719932311597774495122658217474741492552244180143808061054491777932803980881547421195349078120707417899266880593137231712320757675652909986594724570194729350121872961886114073389176802056689611051770602290676105608406012384476641565250831580875892263585345286493718589805054372712059318557723572229669112126868597907898877204694886112923953644225011464756485497280838043129077368637555150484825405250856172190625539430868136219389851228899778320777095653002292411662100329423471326015779313926478674076086560583379812195991010740141128357435698911996287942921837633389535401291733048006499385145308131843702596662420855305337424903938925556588285288232255064321556702586233854146913580033091831413513100604338588314083754712665007469316804394411724580688754482465715575082333455498223387650189402742568937173904327512122925477146129332449700670133748745757135748435074294921876057304738874939351968256624535460189049361278633739190164089804631610534208268333750849543251672671982809313135199133935794315477598284145430918569145604983530302991345139455099977136047966258553811422438822427893505246976320101273236662770062015989121251315829949291165105735229696427827070643022030230735401313559989482943701524261109862646533110199667384555356832426957218571421503081847584757031633274330656303299301648142429552545333323315580715716862793474715468192437317654531720723010835362245907626996048820085949515006664439140732914988500290428892780329608036021165677272290784545758474841891688312303503186208389793659855812555638827787705770542661595910129324625935905977831686095232269823863666812576822099033577106191989468250085635488206639592194850912047201769767628185164771791020594327489800841213151278915855693139009511839734680935442475457172880215384354535213315683747490863826104134882173326138113084830914278168051367188627905295255347657152119682727028370741088759889491922070756739711412822401390353181824824613985849079376106977536967201408798056826535893649218626504262950033391992110974394633535196093392672554194716556153794530632468951796835848569051694833880013116042813889946970537139346742350076843422864392646281867235084620198952841339941574283269475690411589362061242701129808460479189056753836714218684577763932929624766007057179865241078587934449278297758528598972164432240968190810845533109206292410754118835243277578274892639991502189720589382321815727165365830844304626653185010031483960850728737358478037508130672380759428678859957677820855853593851236346359754544967727370757518851420606743821013043525986613588712906645541968487734399226259053560976648822758688182217853372577657256923185444636253132748965862366166816423130373129829083252618131974635971910421875667311977247847651736826955994278216138180171845882309581887038126878216839879262063808666318751463060691044628251925119890562809551144540888218864548481643220428999032950803015919000008175344706811731304096239809107771593232464754160665021481702836635944687125610947591330305263011779739562279590576368059858997812178500411878313342941375378998219602138779297441476086866468569291039315394596439717072824370312484266460847656397605977766421205985952265989495286060308604085064298440717685504561954281298551112144162062117967058927707750804173459338247582268322810688142102225260985422006916092074267107523382060936076297207870406175187555122730750722029459556004914229954795452792162898064979890423086286456591417890752521439538011955947539322146610077592562835108563779865977542000155149536211933368412445045832341297758954143046465213387431262719521325261455775548112005713506725792369728503221913698307957241439720603203453728238690294108946846143614813776995262440458446219977676436956762623704201438603588843423823999335421228838125970446991128293058810727839129983464501015902083420597610694675999526693321192108701312162364519529088402858056389297408998889188938532633431854744206993545102512210519287265061475571313945215672460198860771591741744721622188978282740523522322221440260999946390168050717977409688026894218941406140257261378575806530860075488596632782592839074713140064758856871107244034068408870606487018697159556235488145305759037853050594926323329508924930153087762332724513824944587414643285926388143190857020473102704527173056990908598579555630912080395369141230232003235619413339330415174706461693450313382778070896753747710333559789583760004704419928187470063125326584359528725289782646769092422938229507115326993680845848096468106543799372115355226111919593427629929015996063101460268641537979233284024355158292619910976339889588349331898354372177455832202616328640051148466130650197971615035024507775219617872473420551387070204919284821739630658315037402792607396238641826899009758730342601888595014050143507077915184691850278229379788876300988474829824155721746322554001740767750653586465664093160707714104307209362039728558526352119803733450036437240145235919493767281583316607809033759855504209514232655960922549747840506894367389051545822893916481405930151251064238349245100248811119864505110902685642597239891444413915040472704143486261105598526306302263819677696592497459897876376571383162158415513248878717213146673269482833791239315154683510912471704171911195523743274675741210628475829154482858549739660854087572823058748779128270994401072912748664978995093581208582153940916023871686536924248569753528612765483420064284926781911493236309371833360684939949478437241765509057362693681000513797648618312950175532326561497884780267638319860571584372832246388083501163245564135133923044297649191806880256589685688252442733612759542056099765672434077307912928191502672845044643053531156207339234009318729896675686934799038489019012831289008534920390616316322393603978401033141433484579180800694584976841070476153512673438441112093738496070287683729678136804228531506677002747406024467286092074737412292968098595948101573558468733895825327374406918531639136824389457308686109301537621453640423945893547916556512582725981643699816588150664967926937458937532390060573777910217887066498538902379201286515020848593552770165019323873502375235291564251567356142645613226966633397529610220769864136705473299554397747439164577451561150917045443083700649969511042844963708123967279016693814631561562164958706113549911298691171427813958697776372835397726570771731778212501753803379924877048567020741790000059230205259117070102568243742629191519677816538283172269609333299753777686293612897175506905646222897330619997938796909306712746092115719202883416088517399962585228947607775334264816407571529433683094733839838415578342014050164920738791322879773993281391319260585150468766546400990357501488302886409130222133729109109655366078854147310887667972910210852218823194990721458101927379584434875327244425063957662777447795434083183188478075095920840073318805244999629850622362348690157514662890872967808269611564769011435747940602260337336084299855180479781885166688730261405359784094637073278043739808482749658172235054820304639965415903358218447039373885854643178154324297851363022832256050667337225632628178744420546328091946208706748388876292920499879589877379306356681446850979258097387071499868147464110687803743539382088486036895947280473024936067417415512277551132218973168328609740660967576714286982313594961837096113548290495898678872717921644565386211330272741067821932860437147487475565312588004133324539922001138794861055178846013970903560883158252628730801905046505706973167166034100526702629906115344978564536831582073132670943462618225190512739746003401236762948763599917128068144219149064557702070783816787425983422186755380562837289918704855232507511215063319372659363357939781026383588969607718062067645226853243002153661529842440523280331195657221911282335177618067755114954662865432282467339763883531671696169119485939191143277489525060112515519839956757968705813099696970168508479303617663191797271450258964012545137674010183619844665023654760993973425142067149074059739151322981113615030514080808652311905379720021943205226321490958218133171924295786565706523810420463316938479575916055921616828318170311452466172425507917459095715684120508244077926943344372385353251995421361854180867161876786159403083118551681549442022322720566199627119292618430247032669466327546652459380920446104429373060614427579671811672345106899546532671907901316968117877525502715666043497687271399360000892556809271904286275505211015947345664967622857959243504307083982362009363788035512447139449649837724499683744340285932279185105408422113202962214250833168740900464391413179155330088358665236717398892817694938241120676162116822863716241551425456669151498568149602006636036113013743827017773325519138077690096208332348909499303302769299353335946508486642915820403776448598237675942697726991157873208894749029204586066333741563074477913265251722216682738559495140219303440974898549077538295860587163425971399021027975731604312889752142982488669658384741261032509214365800786621518143627150319437203130787848281931111510614625722604610505979637966962527160473383077802346911571995492912326481059207385138919169687392212222569372184208359733668368867270731779780702273050912894117772585177013612704578216536253170282651054387948989561257404573260975864107963923426682212050669536753875052970987912196303799102661511891086868378887405312907367495057345124596571244160253668719036727019994789190800406141644831087519949437062912725634605873710928570938644645342205576112737937325237168410125761410004798859604462574028967536229154937500711069928549891214463997646350329350362771366143183729708818887049540199465376540783810586509784022879612743999508122524467737405710042483077779647023421299103831338630254010915875177490182924673263967924961890877296886371642327001024231578265560052757501603936679088049695057777245315730784129639704383895954768589693361862010621506990691253205423100050241418692901045252935791133302134058435549567536966139134313323034361479653598108007063306585745809975070264822341962954275747661532069642732528141097563829615787256566089460133796873321367283441390480094747035574924203429252719449177320780263650695315346838958847864031058992100169427927078578582223484197828777655195765400497083860380332152295159813022086556833561381865092357023600936860261824252580931845099848517351110679744062113016647252252342562114182354741283445753040308857054741185552969683904542062912941914450582557906018087618160234330638884837131134555176488925770905806301604898258629835326206679081592193013964903910853162958161606541247255716126094871791960449515592976929309455293833135056744407864978199771604045998744365868398528225368172403120289637575382988085868036913095460974128975057343093635621970935548273200384237425780685093107021410984667362016402451574364933383050348543163024431005301203591222603946609843869705485303210241795211506171968152377456742936350497248730041457434483109226112687388952494323970933335928098185035103610075955621711372558375744986177622405858541169966713751949110780127940232644567561509359480072419768026202032559428764548002317870259942251772208092171798359742373458425494488836845395349925122421509181658785221594448424828063152249920212937680913671284143657154231850217011645514794036553226449664436753277161778776148983880133874093833214824702069652489060410235863343198740423970981373693701388217032379109933630541572820813997538165166939597674767650204618831527024587933337155188738275075792242310149360404769715254446172499185105652454753653428705944974709484190668486829692737842128828900894980394475270204369597127366399278133766376666008281837026010938925587183532012640926577503179753615939412294286961298626336664679390575568693823996199245630423540170518728474924893006386863784472350038359425269971257852182033519327869016734505819966050061870942889750060247576825150376858864372562319648872394809680331781490564991251311134083654044053988874016814704117808496098198897449861146325310554872239158262806216801603325800771050117039565594163579125564103875876699675202477622293190083992863915360296022691917722507936499184839492328017080314233773922606395356966855508160443070812174502936197090282939932501162404040844320778182650572872014095191147003454918593565176570469547205035487364032350312419090236616180204613923448878131861527096016652160165398659260495755099928312491170871835290949288354930876450956896220826764452838822193590595931889382731766976259889583653759751177134619702876513087187133831901201269258994324965720312727040434168982277559201895899283910052638375785524251309483463849815485761343549805191071555038044333854198853746872074689394035479519723667447095223510531265153221908166396295883028540248809590999579579777721964972794755771096230568345894867591445906245473789539139819294503338989133590799645078414393374240068789541144102115317838510588447441053608285249818813691729575484159559735511569245975684788369880911127631269513752858963184743244799562947454041026308925664409663472846662798238783032330644096993456221056506175245522146276398927741880353535899686560422069472475818249948015981763399446691185400508875750508115315278799940299767361133063157883684500922389191735334843165405389461509944880246365800100491036504830151244719278822761255149355907118131617413188257492107965171674939310679277114208817945627044633682116586570560950985113385509560454581621403557914387553234074144419205314294997777936089289440789540500333626357783806423521208529525270311868019686032782178105526648306016186021094922570473677715770294561138206439063459518624979800475328029996511109919762903809254269189273339808906300278291232643319932370380841738815442022904853046153528296547230729272182419453795792074705731042987043875993100129784063998177161711616758591736762783067650765146618148877890914734398205648365588853059383530068299949779179169914494093043075604351531240598819057721012073157233632922177825168259536717741885358237535449420071053665573196888303698878750973599012919053123317998826128718648028679906013988446538462453265108694509314295767414209635280638969941789790885816797434051872734145434328073896664244248250796004150948840277081630281747789214668755720688160150923206116896873639043061044426083875962621967582354565418887961921419919084007421114478340238074569957835504686810306071438237397257852875445536734638700158436086860092900161172851135314878027236587974710115691623994320880552051492532210817207743536709775230877684238260330748942672850124068614299823314815527987857994768615326552119018225929784172504512861484154433110876956650074513677750371213413344513824310376657723240137515096511387756261455287721212157439931238534852051435337065167076298264189352412137324090685862889697844600307217491297403311329329086422028542627394392311818763843752990331492652311058608155917834835389354166972953005324782237464210791654484943122787346302180557708347523343640807999523746317926631144140386444615551841008371623853952808888404382726711331865473109880794344173139132154662177128836776071537053967626209140923740165946771565343728501621121524683384877117523597642852071370196442599045923782014348886916127652600836383715156470340981074511889233234254978163579402571726671618233218460328581501514368780930192083892805608945852135633708485372897119533271421944211548620476450102667074357322811639235749959746103003871808584942338980243772154727654593981520318712286405691316944851422363787241018709860690109318617490052911696787339448308257006307703858670095414847418985059985959486677513788215765064184863576083347206772759811787896597390012875779705677484930481361977896253420832669405412820015857645150664191125796370529900184920645782675410644443105287439056333382250056177261400584271161011369601168551281666651230096531782862794426881912268896153943516879253547965424932015011370991575653816645526292458371550485401576543091846987757727445455660702993558091883482815139872649533746439746351935510052519840685447066748111753273103896444874915881324742983995832989650976968971708476933616705909637968133414064422086309453996719650498658527242124578930434466103286550347797171452804160399694919363684582494330707483430616664510772512371336724087794104804603161434611614105755309542387797034696557845538235393311064219573680543116803977915919623048871277804423376615347326867132341301055322208690300864536227739781962925850187397987873271037649953806146421385273607808650873986395051491648952935892072102206758488998036642512396248331526379479004929463916707066657938857538458144386605357796447452477756580736889437670918745524049189309080814295043267860269813406456583306599663381023033801876776474755620987372505960818997390678763983505677411584832958391346920766485116384478055335965568522042061384993538237152184862334330291428752176091199422861805637612244141582666880339334390637135738007589790676686618501634174592576119314235066070205945291013041738342328486298608479792188749529389347855791912272709757529414042462992750906221493395869564670021711952283633342360358490459459765138610448342855829136713784666945724842627646318827825567031464247363917443331807588483800834579063321621314662104893917568983040514975910265516842062721169673134569844784889382192331275665154804203743952253389860266669881123844999032972676994646150404179521515256011997339245110278705929937414445320370533264845957952077327145213726412801227675626498982349751695670859778463525998774478420859638952043110784928310287755267882635094960154327548956234600086182236377399183114435789493838909735600469661092414289861122564001038606301927889184569393450521317202780191956618148593220139683134509928482535101232696362739755907865851819912170563186366953946860296808184754207482182390479590437131641119159128352084316092654669891693437372001954885027759376772355951385508665582058279172978064683321056271196595530842622333641984064269233119785358421209088931710013221380025138219639499220847957906427960069200340003082615742034218184620296469195871718810798531251513187301132324158791277289387983743471863200207938181096608268954740598698526319159842679258467487956907598333988624427606632240311897516327176788398235264328711357918489592136584915396149734106181245360695239843867401386710563451537579926277995580754647658482437994725623355044530465694658634827904563759991866020820844659330114342489357150648606462087119221440072032833853829294935868181962642547976065050831677722480081817216507008873547603942028063689353717096474002323061938727365562498429982938159859345743475180870506781069963198257987832846231057056590859442511630312364285609449807300977460126506724505152802744866762858511683921659960693091625431814456964639827628383548589760910961025225968414398179711410219024521626226098818098977488647244147286831051367135634396548033009940395403020601559374323109794917250065719610703945106872485368308813849287394494852846842229038945902938447762463266247437620239179426565176737933704957897524845038049803240165632757899272357024201475951213024751999746688305313900565875763231347812229025373889847316779155028035624309049028258375054669163107562169347295439085606223409581615014361413868401603550167775068278794606141870582668969982404620726154776902399995259835761983143977650633133769514444214133925528256194693017974782175506077616994802040286132345648444092942025427917515414308892130495757934266359267797812189231720480566323614369771349447507937044232722220446030738981369079534662896935194645365321861433152148457645210448876642431444947599070800073364172890415227591931037432629731594534955178713092088299873571553697448495177593905247407450996752649980444775564081507424241566239696408395455358425238942122351758819187261595100367895937721447905356642588336666507409095749128376879748012496718523550551341296392200754915124319360056854517768600151392195359827041926693842554785141070375109121805786260496506559920187807448403849753456611686137272410015023079140746150668904057483549265045824407133385401651944939964890671975347470920183589192195286621601033216312677979179972600825794936325964894288455370697108783097824306840962726534960206380384785147101080565521381537022079234227165268332846077607619546322028129570326944966634394610746042831002837686567566739969532051621438699595067451396801291479508556260092761795806958309914649258643300826357148416084583229203684102015329074306768732573577851272225580515065668807414184978171145564664844142073935960155491094747062379710468777821429527035326832869898081410398142916900338321793463473226107213245191498546937031872102319641103493865751094872315264930140545004029343833617512743883352098162823091868640223299183884607387008819005006541972366249808055629134164976520041668657212505896303996078189368828502406520376323437563542297520640909422369819947281970583813195782670247503183004805570999932983933641550372454460718063901793377712118732722981776643361205587828393342810135020240548210403226612421043143173987453481489748780155637795268510418578780743663550024891373843967489236407333709279953596903785331974230238554992021084906015035443614165350476597358932582182744792616254740702989089872216236808746428668335256036491182089846613948458228238798874382832070728054498881895952613073005234015651989337887497655506695791224006572250099983127039480423489835157459209673606079088080117378108126322892043409141868071802175656015312292723099422520938815518493696593989600491026013461270652201145477418076734929970469348940765871962634310140620047106034795641502478557870301594517165078393661149784194509736261860332171526309073781131214611500955800315386554864506113228074408257834325357348629995130693828742771548911674694413002920699569532366061353029747518499197503415108952672989578341766097111887120437081114391784564596500496636850307112911366039943835647922449798505143092166977243523493971166704139518884144181853759454063591981901053767411737036862261902760045879420943191882599662625526860023031155030738541711406901015336618945406289601327691360996918443979828462091026089064320114568206662410034971420721710185129890255786504461930887006902339449392788925942557258648878231780223904267330028159097421305996995234352983829740774026734539639511724663338212363060503841703624210528457886512240960898630968519265849497770952207180044186097753953595659241748568206939267078894261275071823927813788759562064046098172503858139122834000197803777830890146701859886238442417217063809592547842237936123975212471164421918960817389210966661339477692734497046561820724018248424485087477749695166914007098618701991273754698142793541279097598139639353940221570372926293460531861067023832675062175315728066589415929983131519536332607250010427242214468754850366079913424520558450759728893136415412957188918054659453462782591477494176415876010276941711531115600217751349372359559809264031704880659172525473220699223349939567549358735181310483484788927988916573764526345368472252477377649661863406014398989662304716703949780332879238329919216077600288715323146854466511613297599881240668014851431771063676700583484034408769253637348545187309417335563212937138182347026563992731062805116464177861447107163731795981287008527815366730124646107312307840649424286967173130918248896177967122295426617954487441744122454594964544091071784550271130171713872188862312336277155576311111073415355253877271130654698726195780236382420074359494717750844519133649283206962579430527525988200760716428729531614797512151331226669854965376590398577712188491897781599176567500734250859616602629240071059428189051527731898040295858045305769718976670901854003330943490279370665004893717819243715209738302486557718252150133963061915294960753861441491595067623826333215961357740568884702813974862078750593920417076849795146094930503572651234382418060331146979018314961081905771181004930506431575673590157710798517779511737041998851693900086745774146540444878489841150509069423534624976675130478129032414641313078175550982127209728045024454892219779935257913543555216429906700375501237729711673985199532279248068817919113761597917316318026494934704106519223508196128861793476603312711223033978615802519369294801390179920341908395732674070546203203413536847507939751359799126994876638963479515993332742872436385236971117795556779325178974027581994962258325917247298772344379608225471204927373783064127089687493018257211972666270726700796931016109847535821997375903660322928411641722033316224926660299960604711196581771902300346142988373819091324180839639921091252877117742211126513714750192289084985915718518875435993032532345903812178523825961331640253928319348617558046727489056890482885146788824755628569867041300683445566891885343671486539988705196612068481644064575944435325265468539017165544134098367975214483277447831543311657029359501575365550344726986819004952979490955358804837703136829064571973660842281460934113115550317215179578469795674931782745049268414363338045727804237226745602793754032363560794605019130409720482185118879354931516798687222090839785212833969371829543932625407117974626513397537359916096587560017912687710766737249686191025937914106285625414203387084204187397815017137656853810681400820783306301671905424657801590222892749853581269531181266983662190573341552704726782548595128197840627922754100949893338961520436251542901118945308839570503357741494652335697622670437546649301775040494607053497820837909719455664412608563282892973318574700027902506712849325032585515666274332585343912614117720227183549808224448091349666283348660965658432858955640545293982132058992891948345702958249708552504716091450197601478044109718901077102551957532736644213371200281247785626583649550105343448071674529112715462760083849155456050172813774197966721667333169928873926151499116904129288284056349818962401135527448916271939151108770014287872322642164473445888172942890580798153943424408398167053609296887353517882226594263510710775895507419912680174023721262838855771020599850001346570489643448076203746657673553249823302107753500419072810441297068242786341062288740895791506396575836515159690237227939166167120477964418035090536610898263881457235818493800586233319373713916015750175990198731771869584768736014526141417440197094350845090955622409040390155734447415250009773098011536679757398281005826810136801666442706154468091497876628747860430090150584537362123161456698529050231680391466698567825100525594351332570438143311157031290810167334345153515579292466561728901725799460154105125774001290027924098622845374210527566189712797781504179657987444464466009530111418415455466171818876443453274647519016254293486947815614900011677980987314908905551790491287249563046939781038585326692609811635646436291403891837290069299246741372403111726477864195033046342752179849237244158209837086066563897538319094558034144228419353180039905279457332275226332487826387531103564156514630682967701795877230426568579204882393271350126648630963642406790682009320090033767655058694260045870227810339567454080582133010490453698043716752115032604312728639688856659911089162524467059050703121162253276163770693018276248233261036860146231890978219817393474321244502410439892011376665308364784384830550792346386522396836395905118954979901135424027640596116907147820472374874953227083311546660551747200019412177662387699024313980355756773999235007738308993931080908502879256055710509344386464133697594852975968318940491556912422828464575636581411964485560737050578152653907871155232979047212911880435139235829594376787791398427961031445772004926359683622115214738507639058369890381554306536894969802119683516601796740144770664960784445813120308626043520672917878603747842407874694096625035635432071124114379270853875124569228168816334750507617436427223427021516215082322922946202383524879516410858634576401764277781535377006747035518356801905237968086738312278362846272197251387190936327689985314600761424848503332815005166382710034908457947285093219609959805610243630325108679917960773826347434340747943821588681053780564520974796742654620350888112607223609701400327901537147848438200684329341442536175403416893963253248827095923193467752449872596617500049983928234187552025953118978067469936185594910766322098229187963423707067662547938921810562957276860423089564744202261173009557536901433072100092590557896789548102926718280997325673351332973066032938070998492529024638279941335797756445581779823867130044367103964472760748173698608439683568241120264248846888829514446152367425896002606345910901211488687538307973485637500864570263456395760014991056518004112514556714091792701369865326095805524116621632009090892612926476673972698223150135670868215283151021882274423777359006579592077086805480847708249904861656247154585872908291505385426877461743047674258979416487196245097537569253198213713740235929938840532180319673200184451739418606165018567377182721504491914372993777082446090887491900947088803007441099279259135564487324080871888434117218547801192588365796301505125525349128594742486698085339907608052160224440369100888833316736322316574583539235699504672803080347770187126384493306235454693270275415314906879887017552975046232736650492543903930469399839555822679011314943504651742748643251552177659082882303680399802264639745235884979461790036681537683233046511774049464482261007826140879789749147459003647631716989686912978030961729147771371891422658216907670390974638122061491777382669130073322824808187978562279153942515769906006488029974244251363187444185903030784702228295029804073495613500237616752250520124336871296556151362065357545849909915757098439672794331155588485311357749595472247397256659629757037564999550207819340758318799964152020857034005204676452747311100585733810333021812093978147506059986505084876773146365169307166144436752575701464606121104991918360051580696219523219593479857948422969945260145427835002904284922590929729792704305879909662005181800545295412136041195234337884415329959053729724527148881251738233468895883892499084987814131969015892055204636585210432755585946294663692612197653987046125136992788457757172463858493165933624199896167992729721042868024729369021645916790222274235641943378359537482893051440609796726634048281930337585379143556237210820028551732508144458778761719746688934493552978712447647511957159608385861153346423500082133305180336834173380167115968511441318496675854984997477917290068892410468423596602509805289560133969452714299889795994716141622024702636446794342850467772912466308284384164906312826839664578235696763140442581300263302588071651223716604528702958919902983146645984385378979339799128799578337071092993891082170813399789166355952320133520408827012860608937736777025109390201427132549981367726178977566019673854638755702861610134174287228320321664430099932136990321908282809422915405551005267500870274174277240058428526163974998957569395517271616470447223292327249005386632521351862601050956001173128664720445994302676797070739547504688683034165071474910505772815557753304275280791611841056298877841111224140346067038595696468957088486416638385270504430564325528553820618074667796965985491334245059637813395233455719625762325220093764903085393338275936069171082218684455949154185589544182310669348957187728444844414652937124622941968347250181510392468161680234352597208570188709340718023444238804618089086272401706294791446170296196194271895881860173811877394590465112170479516290143946334832034808848688989940931205935994206721844110485734116944896656030289936561422675437052136085220652850853838329403525371740341751168397196937849862836998252875276527019380801601470637532673702593547488815975125572670142369412670487199722121234649820000054412447250596339941692073456760190908759066700963344329767118866477901082747430503334339798699601937924427572640936625040941397840502045482139228624059067107894879407143006449831793407586241419050196622622401165610794359844595435248254115108062159746714355626079854268875451236441714474899116954432912631026665769466592300273804660531220528025280684797722553041110859138423520299504994318427270250276097237166613936554151071103602222195080550128815278822593493288052571636897112665353362501563802612409135640871218801331338520132298728022508136173744385889748492109498484831077440623016881950782327657562173196969079440036283469960943380953617514336213534440989525324443216862064163467312397772556770205196550264202041785623557757479997688323426840491192478422256289753105326052220498594255453978430493933103938581109764194937117782174053648802393905676374258599635250330857825936713387921904032533307819855899712553092934830857974096936309838352992220068330385156187642014715169029844476542791692298457615855401740089205683270763681488397945035000545519419003945028966504548048469676134783344720029349054023130776455131372708726671524368112846743568110628912329616130991273491346272061769174253812357050196855194690107885388229869755467918795320373333294355567794940235784280143283671563264011206148220887859169496366172071548020040431627790290681729476864535843756257963191068159546596415862246878228580596586647352144717031005022126159717659567874213916546408066474468608450672454114976828078131677131240402350696133976586938196043948675438340698894025117839881916230137769860382488217304251691802913570126589942460468751554641531446992204915094062903161965405934338838891052173042093592794355278922901549834306002851077779189757988709746553940573375687658831873359875100936115354725524211083322246662083844588936420466434054137642160005324671906295803911883068167318087026001811061125347935920088364100395418865623224034735871813092581276936753403946204772263088606985809543225334221775114284847309848177671028927031625736847979631275857792494663901729507528179800917618491702747305346961307053419622532183733340639111400373585067396030337090913270763992280895777704436914661363501772947987654048177053781855189646815434038105875708101402186687909482670277525271855808953782435247631509527026258067111425035505228893225359363880028038504380571001009067353042529776706825669554803011128219651031665318846416997165100928199171941151374359022354090743423353134435154534629987397372396983776568689974927889402036195425268287167729315643059278577660933365400459213670883599632382704860095034735981112263082071567981328866035745336398588599587589739029926003062317076796865705619380650057431750622441997014394851353714983128279712007382297905070011192949117691412933280202263085878327270353204699227192014368873728727242655023416045257338122012071472004060414981592334342395987562965673480535026011422546113683881401712068445601714569374053160560995760522148206404640739581864102593150651183081875492305067099093200864941407272667193412997576129454454505250995385367621315657047563238777201326257678273308065967706287043543352484075442240142636601490177784410899855945836458338988869052832721665304865350130258208512595312316582164526702677084587443707165979927263220389554991682239575724511105309217045436259646363574066431121660420627505411386050771712955284670123157913358555900065562933467152706354131671355464885217401669877524609384273496275011589849916314457559529201036192531010906393816899375899832977045364111029669802489806260175300137765430954089576074254766886908173139898817133131224445178423382560573898595817535840997375067900700660248975717812662327195089222791927219030254457374363347793604811750205101119451175543706847938693809597438540245816813583524026671797059648172122030440027377438224698879873450192156390029894215493827123007355296473723465111691375524678361626785595202057409567030908851958884350831761138455883133072288272648945115376538746180909291005661628777936138169425693006345120362128096735436918223688554393201446348892145718062615590506485631359678872581903128068638538955041353037718682111543623401719935052485167129687832234513983143773668591639778722223903405923221444284452361741542546490714099257014558901389498165733597534484013505289034408122039540442905050353858078877292634244229373185772676299174725509762570087786118222162983521585668679662233084705866120256343565515044952417507468012747706807937869693444902005853916138569883206500980338146767640927972065506065991740116313627550980660584665229373543286572979486792251580457012944708445535773653891902381900244049421158395156557987580574401327494143637953643649797990344730973894229846425144873486147743324584644460630479111515130472251323181309418688636574670184402328474147717751199326020814823622256785570664502839711273837571022788319730135965488450417345117318943507238635381761497435193482756188591817993894615197295449997659138224214323748952314306160407786508548432246185814461812265498400154233268827961385976405607768095608323907322369019967698444692679142697132517824007059141076936070166116037808423026006512662850417417716178009014205984475232877137263778858710839931179711764349142595345996385236761034887207587780085399743410155651193296347992510854595837464046117737305051962701132163242846252891951529086954962115966971800041348844619848977426466105272109923201948838942117683571392753900508394456958302534733947357411510036829189237950853109857176522224637922301703179774298632223773637270529651295037093279622217925790024623083442984458037763602833269976755503813879839339540632208169930797556797760303973712242364215271502230371181481691881088859566028393007267937515817489425632301825395241034610186087141656067802881439457543104518614782153638939050421726751403546883129956274368340907568973030890748250890166159723199506791378342990111673806199002265048515251546571904798353543271911335636811332415299739798881890046512724113650222694795322435918293141170174567337374419302916803376564805042592263619662502194790342374599715531673856724155921056943387871631630243192004352941534229064424452132337764984061352462473607573468857989906753136241603620273425893479555809284785481207681303804078315019397114108608402431615322678568052403283318441650949127929299965503425257246882679144200763671883502941181566318779994689162301503314805626414542623902670795039882028099952141286970977977198110801394805801498658185536325116099187406932504661598762865009448789346926413729519247054022253841467628829045124104813352313966446532731328170287509029068590216481446246052537604107666914756882247633969217767546780505618431318206891371370861319084394198008679716874168783583674202974883965165222935831412729759806646251957511339045572978505615742579765170721168874072329518968172084888703616708646830999026770718779769089670406770649924185786463430315391269916516573503367388201953138857841995783704267154482607422703410405523852039294770412185214339692388468607973691338471692490368700637497523694681589701120846636557333930110484002499263870018437023339825473187353370619970000791875966376700014482949832416579856562893318517709700234326832316113100545121004901698448667881177125398159597452270109108141205488078225361094474042099361864624584229354332244111403742860397084112526178123652547697395888281894390994630344844710144521908802166470296704979714804340194862324783123344884177980804193709469873458758439882921687053127457396388206778656496734125139986842357531116856925257389518908866640322470982608362113031324596552233527459750478925533335407144941476074484076038364593524607231888120513722956667561062242202968014740794380172084078482003965898694407504126704499327229822218130741069288755212912387995222658833881622602968774533109933028050665202646541580951470404873541973913071345218408178721109087071202354111346459779966918680495304932325966522638654974999576449062343667876430381551051353855559458246152517056526072751068979751209036127401618341540205111414931547264219488393186721738081464804826706125266222826855567495243795444955774070746853533397399909614941144631495941560257659487924666840186793613471046280560631168742416076111503596967539160977486237661388857775084017522601156079774410417898395431645557852854645018749894176172741218445029206189472182563494968617602349468969918135337750660652099791444581143256628151354839531439103888316723062570845311215355015662096946862185133365099936028082364533962196422024126106041469218219849972828412809758311323468374061244083990738789592837329125529491831378245987422203085660168082575706917769511352441753476961024326413718351180913915667495768133967494187587120750905632039912546244823056122070010509054555816937601010006067229457962476704135904900360817851654388539844608156858192936264028251536028956806621879177818719893638536930169749840729428319290192082381508991467975297723464631351045519769180510575137301998508910768728052343297659680506331836840123969594254815588122966050230783127967401910127694206775405618108480215292811644319267133963823220825573016243734161517414177312768591538702004917527997578765375898516827598856858266575777888852162797125946502365951421244267067308603283887040889168368747182922057314600238671724312881949903425677278416252724453506475286990208730006843074675882691501039219800051797221449526866744651644386328211170042612610619409153273951939301612134319993763825252696710413362367125433724692921430042083474954282171215352520563932679700040205478216843941701916838365385009063752092933229067327373014486389815177408331389809425340964207210431261577247962260878614511944055370728393079489925822825789165868004755296363046297126124873080811244771122008507434412296112086019104154440414315160856823310670758314956383895619286076405356853995110449863748243455321037627118949622028445523767816639379283208659671897353537561701722354709510825406993900150766176629802634350269162227065316050237503107751144400464557500675567848215976896757714494551316126344512682398865507355952660642582868797676696064840946043649617572146645415878515891434684891275605320497235434468408883718819416327444484968405843751105402520008979013240990898939947376027932451508875534273204255557685825126843797948426418134145635614500537591145934860397164046446079557334452557171056300836789594552910474707180324929848315268492513489333984625546985700732774827310652164987491044503525804460681227623551168167126872949305854497705241853649015820407211123569050906103699083725072221760526699339995335289270596689536144117429718747482174133552412389656058629704916489575990513168402904726229768728800258801850360702198526935128929680294040639534037703728587126506321994875795896317773128411022570275467310144534590793414063991486908511954583301466146847454764306776983152358372639473324060400472915704557739414758502818025389759169104471167577517400630884973359925884688910432935878632882513083094422453174213828479114477655018287382247272455843310104822759933503762893443818032420045313140007441828579847369508005171776668439330441529685459947088874655623765204976133389084881739569441541817783220849939290378823683052164323156585438979232838758337251795791031074693347298167875499878426259921008273108592746861701366017063357688986646666305299036248181464014253399688176759080735062963629027360040511999828635699107499276470175777304985615580254941919635619984023627859183186546114258134325202197053125436558120172026087892875067310605969311574950707575850462471110274618615229443150179516030882086472831987419587123164998246197151839266995952231549146650721389609192229512050305876487484736159565754117312580998049197175759077665345680671863785063795954545752284813348367966450453863455974068215374960439336114845217884811194016342145833825853597809542020187672263015981602712930144376640167610099122391271924015487755110918408993046867903931687472872858731482282319031414566483900484183357941533794964721540242738733556576707915751044311669272376853875926576344148715103469687209078635476727455750865814300188989243234889598120677534015909610380182390143536910076589491628372347727690368466055956171088023308556149750800460334684024217779456560070524533191162331059313095169015972228495201434136058782475072132246929916371781296545631486082949208051874580546369535194269757854307727829191493325179772109087008759195176999509529981887994940531394807958600533537351478366320279201775043873287204755036409917546300587971794632172955593454439688563097677437013069606285690002282671762410118524419978180653848871683671762441022107324854978684302652255261517277654367793760694604475697245982442005873762348903486898498794183763364634012947063491116469358600487986868019678329223295732801235280514109712431224529947286999565736074557091077998224838988242872349394859747647075755047961115385512569127960936538572458832767411699915299420382135830691492757714294057588546403458903785465636775766513458754583843475709264439870885404424919933408694287113197709802535339735408498661372783933475929019416894278219812642916332410155738411047978566429981614817076983315396795615783920219000203699923489911821297876760590764433553823278038956971247044109943446572269287950377100916196826548669411765498340214590819852756897555794756964674513976867377014739255535495022520369175344319132786963234681534584361126264106252153578271887637491342483916672366772379605124673279835111396628645483504814410105284131911723336810673572472963948113669406285482843376545986446135416860826243601771373764777794898672184697229662766055959352959310436407413797927035836033631222529630646135522710487610753856570783078824556352792853496560104994064341636191035461667145299209615706649880944538579987012973289957790329349573086555286864635721059260643025018815980284189260705101063485508193567309993086245260936578895668330002804593224014318668452607023146572503481885104662257035172378866348372404444303807785249584369574064173598039358360506521212178516488099190879750965817620320883182508133100646653536839252082971909526460118695788525378578092560287698753987746090996893292929214508230943290269275222869665472045393651942980279519451994155200620930710261315457076480181341258211645022441938004539561042028778908896858312878171995305328098781380312648041844243522697856008207789820967041375186460780440591009471955406416754934555064911468102302178803387161110730784243858962157380872104839181889761751211169128373831425187498423422395631288540403629865284283797976412924500123012837696397115139680087436214536648854574378903702812313765189380227798794504851755940990129121108718885345807243607989245848305259089680921588820284190769792552943384852625368283406840537884322530857431272182881510660840704130283318465127863766551648254959239086665157204786046897603136138889892726911197662066876471419212674553779483052204313944517246323201385869845861831816977473288117711157903669304926550532749717968211918411591223474825873281693119720539614179208728054066656145806638372721575406374731715758968859237296209345800875342639911777485237602033017999645113507600678029397860679742582395289629030683916220488701918706349453091397996020537948412061944805871563986013841022028332498408216513289113049918413610726372781211131571430868304488009012755246230207690452066760962505770217349697885865338350621728596592176772498220516318026896942382345042373553024843568790654567962449961125757109975309338684895375492306382582540831155616684531564522208287298083600282819051258323472427948873780253417854254649998537949813377808609161672538393750240942127697620599374805344624280138471231589374338741056863196109412295849439218947469472558593254279637323189300067593570050547360065084321617234624709193471146782573203211081948093213091933386313301368907558568279936953214383019654648785195020598368579668106966989951583823862557353612797749271636391651771507812597785959929035840104235424463092373641872777661490190170578489354376881961975355783425810827159260952698226915094524712876351866891483833204674092137166732441553863249100310900874262427769161304840473620702338791409247101762931256984111561655337326278517972947231573549999943444190848766975303682926208812457383867425993327920996088006356307220937591226131865613655547540989468424042111160893297402849146152873576653629288909887734743013439531490451823687789409113112716472338177625945880474583056468883674624599142971437222049305551226208628444805313922435338053169569062364562253385925587588508177290173680367610928664384938719435168889275819453063060304756777613567028321554163200149945977753693377763799004094839341677032468475566560864470078546196359394663874296240759042264077844491840013050988176189226000710311041748318601033672766934346003667998206419055247948183637781369911561997238582376106886889414000047240840941374163934247853870269120620826835025004261646305939596810309357158469719732709391163443590832958417046483232375381563344459027061273021545321296696600616046990573795326213981575470765987558462797415363610358571382119145714108484490803820817577724489780126896754559477408487207430919984638291079216430597714441066012469448658686862862124682900311336998316210282996723764105899235703964875196420464793507092950072113686139230893213859886975079322662137995341401644107665416265835695018554265850410429272198875765677905751400170131463886281091327853715721015110855982232501232477958701033760694277914853462861482673228525746238276704122539770081642684921341231792264315548220269647729542173233334611688861336658793330645599806363917283911770362028319477013760692010261685704764416839892974442409073731910939774443782688148848428150172691087984589071161110631615002354418670683231718102554502715191885997587628652138598692443611398144089445650103255451620398476561230664504234217568031897485660957877115991482601012788734809984077449351892339992574073332362624988463246701252689357633071459210001832721006617939728472267044840476361747168077653385910269083810929148113158591218740162915557380525867252702835590298549406233037621543836214629892055043464816340690043101747691778739349104393954146890008504629323993147069538432956210353589662109716565994751573875980472637269481428723599543372692827295626395628934762783595052957530388496150921649318363719614621170808573553772263462540616569862550792846134253708313126206997927857702109412524933844841577398815179012466440334345410381045990192014652410775981064406671343383908434128994303670847995988268334654216294531669370419527508195157208760333787935579262612123856148603033401678339991195073467648989750755112843392653115181828752010680247304861786544744603914723964820688894617421025101532708865681305817260824264075587541377240007970706718618787054249669389347899429686925713182149937994827579932311499261521565781467685344007165847194754686291852978310331300467980825582134022694344309518901326854059389001828868787783549090222559468190180389970229164727368424320960034247753858929455787146367716230536289406982944314575945789548324962746407773252937145972656434529167060871303253066016557143434286452813215750970292111982605388069440435027587780384136337657940628645424918242758788826000920047169759770887801248791823762597690923294857499402331151227845244222144730460805572738606628122593647962714095426027214608032659321208083992945714151677812451836769481695058423377622854476202332819792465290509430814539072666085439722884823995135614003132336923774409680498844621690867122321242535726041013315563231184977431199350776111824096517119046287505103715315488881303582593304994365802349248676420818867091501530332368209331174276964394998809944854784091799677278626978947197653380675280141245615109168854780828318348322295593727216577328472659138102516696150610376103106797370854894282395451322216608769662551861522027656822105427540621710274649952799332603219016784338692634112464285660638576221189332235034575393135403938233673419194221749947285866046596838467344416134574353537740270196240763828705743989652777602105026873785090571469977064135040652597922651221294158367270380603171040357387395738979001022061509506196604846137819702656466048852804450569953430714572508185269674916210613774610155414349178806934085338740587171906055346248115651303587633205665191989830531338790749022248397999378628260886923587920817443116724788077190728233708383702146811002558711423310428620032775311055262696578787207568723229896001438128076484861306419009094958096121673672523909084102815512776705417067396998288358769271834983174765972439858686800269733242466392067315548056468833974737059664205285619777098412769487237431222713998238722556469995185147969725469587509536849244589253885084877401596808876737075111186564506249287978143113758743762109142976662938462510815143668952888190542833321216290952417153687107218474481689897538449214843100626411925061272611238249491673988524639227201009453244614644931404384855501038870197085026272584453107152907212021467675918398350029830213097863329915821195062853779781902752224184429795165637200785951467084554540476592629856214220178246173770585824932875384155352095466606031762728258477919045447009317851426719863416476143777389729469510075417020625433982804854548917720503613435188145915172194444345814396028729255151684708343112038725940052301367625181099545039104061955525480528208475558193752273030467328376854611630594869164284678113506885127031590459524700378872986918668180143685250334123088084104511776959882784887036106551138535837907410919476801557739329569544999260270320164421014752043212170012264803837549531044157541385904301235330589647218489944624192009418875464463082763792341032401891931153468859883828404606668123780781191546480566603601525299287890737628005145290496553871436341037088170871193537557722962132538964291021505102703606624900730435310680945312410300699653746375451660584108260764649831800078319966080567458449884016265381667807593396002184111659511549418887561870701005287117919040929624061835023090844374015193471326592865746549530582262723145058149146082408278893833065002899590220745833776599636168789320328952169701604029275113580757198536319589631840203837554721239699015725935021270474420023168470362787031426378193742144827153137230014930241630922294400800570392278497613431832807912564390214578652129744374542038897670454917885824143133113473689023665139262126992380807689649899029505628003719719346641336478523349973647806602558068681139156432608567918283087551017377438066521848329767846052118290086868382182822546083369229295176994613851219677205876598260217167742349701335908033877339989015237511907968046265818195842694483769652447024749292552907729460538350621091586057339458538143070490582981845496392637775424948551377026432871222958880460606973652781143685078036988368526720400649857680723841811503411216069413747434618807004274577423611344175578986665526816078159759803723032035848497684442289513538510528048006700387175182300392970918134893387458822855547252031430562613070816648006865372825211995286608113898830347412356337119082038135031139864507690567293332337080096119358959479170364849322238221262380748107078191853028193280702824559829665897903770666758973482121696459044521140271922905308166471658521842244899058462423994532380694013483565490644189655176029672437906904863136472164088487573130833177915720990171319071506447805967386294407890042992924097046451376656898224194535863638673850248578908685414285341203289232230752368458305507242324969090242747798999210533921403248842878435302833394398054349060258381601864485385752028835238130321632671447417079729895478008044958638095782810119864164119536868997001972236463192995343133619728162537482786195488665612618562297654639940573675830790302477319536956652881727671108694460870125736340062522647129849119040424532975442327071866166842425188289691442700595994235801492579950526797557283413704684456555501974033853178144988972961268660849316843417133594182363521283013384535490407636215139916776778718496805075622937039355605825952180107616467990878806936857645337323332793213174930825553935063024905348909991691725246659274491121805081322259844133885645140043165699765667141691032441686994167891690132763981471325586874758763033778746861683110112102470053432086626813745842221340130275898241915053128197824591062413130769948410146336627640398218668478819797130748026038962215218690749091014418822624503909774967333787034561123274040751037369808837599058681561264833572413920368543977052085780614791711792148857467673068568942163072419859363567817341068087856897294579412012303149679918512380366191397196988748724996248317564961030329554718233630154022576317534894410737248965351133539218426294493561505975344034545319317498596261915436326105901188889011055010957999203263624123717989349239549701105680250140249419069137476538063759349751459272804881897783678521309459247270012873381180709342518176260773437147624502011788148219777276170519231325809099920777407237350716782520034580292362549635633617694893671720143092793629851047308959270493201400615553206575698888254491481791304967423980637867155413460465156290158086861837840511709362406249341648312839836903645451613353629653557028807870753038937138568312946493939143113324969473090686312240264963729650184068942247914452333264442077401190470246701145986444451832521117165485591762187380601211844064826412185894325905881537343976418965577824469785909687082080141232941647686286537274916425474922319203385371841790431484092396775521721868962300661871711641079048229536616195452451077473621280767234783948735664923945731984399128472125891733499837731663102498050810314986422155978170271711833407906962425700993060267153116474152121862966440500745513779027200876615769430468710475480578796302982736658987091297040275655870427880845793996757642586933225459985603329928670723752425018373023565230497517121601588293815648629822603884186804189182811943155004716537841909844643187589045513692172915061395168599500983982999720108862350785148424204220135031987845609091838122674617506375725085252283282024424907141183698038738986768992726301248770606763586204900863458939614728100981090988274746960356910242135074235824004438404470215682021331063549048412608289183703517703779129467800148246245384001526748504722502333294746203292414248542132942714696674556384361652237522390368262948636615974730239603224052574146914775465137893346414142268964748565210869794014594911500014760274904708615694376000484610953426205217161244142452393706223196812734615796199363323939436811950243927907085704393127308071190262964655321312781869866154178555221134188661988370910707423559268703881049729347884622742019271753950182805685287674984590119030194456000353118106598929942227199833738144886295797149308377531310830600839726669336994898081347781224287554307079951183124098928791372703112203759126975760631697065749187287071838747291826435458806203261643949481491431074676310483046156709454740377472522201258605639214267054292158211526791762605195855349491775194777885890260246241612303124733228424479251631213806955297080202872320040810638856658005993386747134239551410235397422358307109036992623253022948756322170540305805168523312493583424012121380246769334581760852827621320345834277947454620741438228619156903548007588277461971408914390776494111819836741914231997648181749988787645872049442272964991709002630212116906055176276417088001011225903929470479845019696257814054755959159787848366630284023959717179333453232342490315226736477933519052456951553395377255419874110993359240248142177880680212786540909204220053034816764163745637674774700125748550099266210009331307379432083915921773753822623082240084440925806535782457409786329314690552626394409670552227324338526504382318248273488888511291077030718177137911165807578685618789727134741805092390982851507934011936348734966154488805804139848435488015373108443718985991992803526722343071903457480249348847212937001473218739735306999690550642061086455231230460870345604059465536025060323313530073971407051639523320860865874681761378391904813424974960105925324207823254251263917745356138294580195008415655629732897549557812231181649426168810584600962780217624723836297340443602535925128113838726995858574752265218023081970850919357374676127451324712595277945074989453358805138332420632983706658441369164426848044046686768398832900998915515610340604821137833155207180174014051049278590299346115027398317972019590518431431038203017333378953796757855737003709447162779850753747854634537393969797057032523742642637909625662593638530707599557249070465842244932424899060816309159045634846871334892605807474326146726757570176766641280497768502710118715074294056410254256807243161685238877607651228405316483707803344714809339082095187340340005874397117890697608378516158440122235206477970887063204086751639059188220739996558555563882159656861540478859695704398028009015984698738919257264183396123414295800624564371512931698135344474563488677904354297795523248169388628591383730963990310187913513004316265018355096661537019897125837354956997997247503570790652883198406906100118750955073911464087153577693440008783528013383439739790164746502727503622144467132967525151395507473686869695022915277251800506341249881512914830872580675466403352109309232990968901425407450728240073069016158087064810957064942548678258212503533171465858395880655939714380058038141470699970000199757451521295170742533806807775676613610434651201586356678046446406761811313740255750193175348126106513716494824975788713786429651981651846247187859326834440258542632062148804995408796874537645963882772604785167042864686720598765870736256764059151857998337936473904990200512958672365619396069209369189924856698491954493062251229495590448079531601901325676293590472096309190352789081366104454118904427240511221382180100644940222998428552588584437903875941878470027891269163404362988885740116235764829200021763228334057285512548226921368946383205481865729587795571171638042762915625138659317563142719517369448031971585327978188712370639164839881329141823484654407783354034506914382206858126976071051955493067231227560706933979914489394471167834872434227382684307479135524558404629712688030500355053524274423753862051047371494030326788929259724254928360422405347213961036122185321550599443203245409179225176492697324375558983992331328330480945061728663113759229756862277639138867608776117191904435079396941262992312824326676232868781199492064624208695454426205679703277360266686366764254934321518573446710960230032281300915227639697291965877594031190562420142530878439380131768807885332780803540701262263209004732797258773783327197053778661492284163111216081596852408277519500022430338162271147084128054856304249271043102223808015168941487257536087893030163149158932038714057964035116312445592619163384558172015156396810639690778444941555605799417855271939085542570027008869545611862446630667660191963162690459736819268880708739519917741676624319445957685646898115725416318690907064614973837189187855728380126727485457059517394798513109911156551937254459875507784078520419454077292054936689457147982442843371550360808794871769525305735150475297773959037841457413884049317228076140166467002062986633375652143865712687395188249698570026870597562744349625374891672715598126621875460346107793493174700369483170761707380989694863259937895989900449516557465944277248458724917627818292315878067106695396408336515646638418895938624492072255165166665233248257714867876766416527388960350376177159869221973957660710713392800406836621371320302370614503869772345603802632978917280324611288736430190920404523347503550122653835739475775187900204630830639227200451717622371940175511000897038419167091933400672980336376919353217115539465618640885884571057930733507511005187149101716789546075528838643311054836028331437896324279041857701775985047518448139927528152845866804994995746697475935865428592319482129971157686427761207746299556855911325964018930079230736656576145165645126345098017604348562740422480995780578521752908724488811825366565196651422144987812933267635321580735031948553264069794678834177841167832878409583204808073612019945814130108523930221768035176229720817069903029789029444003576919470740569669119901946132676324068431973175370925093602807452228123406421929181939632674212649303977087580919472773051413509111718991916913409337135105661968313852054595861759495950664499296379077384211823834372993464561768337176676143597847310790745220141738011464451255112460745081071418940148339862080559868117936309600326962801428157031166344407770225166503248329029680297573237549746258332427167103833205126508838073352649539663718925610883235391108711347479164417879254925460719691177398845791305410609534282364215840429866544544079399892863536930142225455148911387832072083117232565430915691434635799969274715376191143345302134050953180235544241557415401114157832089249355689895423692794067930230447028737861756234455878845875470283456171959859066688202222075490631994162846272487802754468765930767731756373063782656581223155302463501140898738691222643080494283008245254916154276700857764647167283907347454153562993707859834770319403582182310314468431367989869687353727062990660889606367703812759450955119776700399637971408521872473106071930825253358229047089413150905346914301917747600136492965076710181267001574442580637630080462254937815958953347018158025535163447399659464749213234089421586237409473533033475435233475848683248317778430205855265219989236232020944088082354101079232381744178097432318198345550711605857900608878781872589132393291319538328943047952957911891279448650785639612612198864788857246452924465129110244911983696278517296195589565476615184503978103197074719033187196715401266917321947580261831752957579236297942026515206310654017466129530406663041723912232537234990083740087342468410841591666134690415106146472641117011722131716190058836173329437998584582099612932881917507709949062222245837554744615062908632169303829231188460587018654927551812691337268900788694407829367305694206922606605081108793836507909535577473712031466983439001506429366272873858810242144131485866983886167813867368579134770019920742191623222742048709539281755293929613255138435768762540866337511607853211110610743277935332191561921181863865632001440936709073061805558717547854087028830578002143662293764041866064461794488097669864429170022742616151180136931460087039222916620972929739813106242471769357818321159841954975819461982035798136556329227280576576574012801919066307385532031534709562766136168705458633541276834733449227326959021592471146378840030024444283562960178540078179989106497158129661713855646964538522113468324380260244311490908953131061086696629329502055786935467372759145177958298378471535019730658369477169844302891720348350266431943800718204755032017998549139883891476805188778519723750506335058037712354988670869723145533406149160467002592542669628945666660612685041369867603796851208226112703749151983023093860833943012281931277521920557923418838101643550022431697271248624454164930714733892158552873069356947594994558822053317639253973189083852304262305079343514298488944561248552552117813666440786327202557672469111444023755400675603872612049687252494678504400726960902887610394620582261177437879161805949898262726724115912200827226946348205566082746209402386965063136386285932234076933999014397592445057241992259539663971366061079608931226664100612514286814143631935123446009613074792756574102321254686343537765363132492603229427162659680023269823349633842294864668022434784215799619817985112438582759111941742001078423760853326035045856842264854374256952798579022154018351040206160782045263809496244677366941590337210681778014444424779588516803238249814754786867869751927166400768145257610920985540175242354148292509866799031478010920502553304451962100235146981865978754715025987921550243365980266029605136634811194842989545564865162811096578721766343213866285021266977376151746114521209167521902441990872645687772278168109314416914902884249731528052812317572426735992839324045115261789705458000397469170308286358875759954578170255617825296751896557643702553749983139193089104938375293053869679375449142899795392157369133793042933159523063160136297533108658611415999629013756868859288535366449056886488418509162973398246791456872957781491536837079326673212348530757268314635869502285648832458592667720294894400490087850338833395543519424116233723917842442458460939192382560589933169233615888178099883086624286686349113762951018583477962827103614534789232228619220797789875601825692816334898941114251054550195791924398808233297789901025374494385915766848447957316067404428332295650928026079422356228472710656743274232578113788945844804564124041056990432213040644860565128260863201607771999287389243797824750790385985511566331214651991387689317229518147688150818218186804300923637801695280108125636135478686244924791802994914799766295134480436182036873925181604473382007055793056289286714408770158693460752121863491380756868522397987952938656894607701235388234760606367745857246809526836952682558068593045521791424769547354294863365119403665041237502339617990970824667100769121455904758637002785581544888581877708834319885053952786267183625621598543643833283040815228910759770929827785856332095846276880722984972920683044359625048010627860770164222916320761691033337543713180830049912496962545164292235300020647912609482417713473459661011615425489617712000684065078735415585477540249688026218285516569937690382721572830886562132440307462287657561424941157127640694009328356152287902537842355914592646422057935337176230436320509300166334993398298967221603590780972595887216533468055607601778076932118054546372289996414229301785039984424542600159214829182957439851249747424313429723130471600790730160721243581594402026821963107769140076992958892399904517982140573479616210938272308418056685953075794056063617576495937813085882740240982999419571649991394882836199795045961941604092778729293107612065639919019168917077369790163741014497721464840132875082387634918545333891538040038965443566929002732249236700314523405799060660313061490458923514919060052870722608974628660908521532083149502612743039272580872063055516891245888125819139871462936595003203404423327427049869465391907400976889901599631693290529261185914788495019278275602028445938224731577425032182211644686515117366565110328691047605997041658280801879119039050349781032806192030824390425731374155379525739193442623252769725150042846011230596566696663643501479203186266594447059580617668704592272729040775702876916875139277908540037887412819042323523093723515582050765061074570842746463794510518532181984932765857046833904721906960451072316331777038952052009535452063883965068221104204540031327737537461768214790654627508083313972840635323335842458041719939860790182119919533821881789276650872236330254055230826915761929658454418743253320769424528297747781534599582882563866892997772056578827439215354366967979363569593940755230979667053918261864841954315042046746012231289991728146588381841330456253838008860036893551859609217426064128456331982450008774684747593048919202528790497793773791350746317938795817745995073288302682584750286308285401740536079611496855211603618133809749076397874960846487690512875767611814220830098256398207881217060507039626123526801744760817810832664274666251683101773684341277826945884620921741324117076096756429576139037753881107642974339051963565587800903498627320804679972447697641624169238294748362818966987395985535493074763197306158544107648865819081877579895020815367074803002374877725723572270232541683155770074542296278113168631279319799789549848896978017118619418606291952741723552367915430459696206544551056156304825865898937658616255086976401756311999599304302997549801768677105151836843773037865616391172846824896153687280531075002084585706742854242341202272780820753273934465838599506210970702613202039531622699883347790462788551157910645407356223768488498767754037005934162950351133393072926677133339221853047461654695310479286318116065512033873612621031762380591647496001634866204680967055312749826346542680640942289640365082604610717951252407917700649416665208620887778043175091623260572925642134775704313464918496348823239387364794753829256340139752973301697762237128588637345716313492713456851985889845301466438473749572161041125798504995782279291997545207737729619200715135007132953313742974191353552643938666537161131114016536242953927467466845501234158145169425941051428571965592968006454883921047645250965461624852859545940616153829306881169800084050378724469792098366576638250915214284183552145307979046645446439227860209368052401014149358050985968900686017428017922020995974777666423953062334647240111118388246464259141543468956681061688639526693076642692333542955615379751504061295563179818990298572018000924700761265060444065518410911129603453194527043792690963153049475197974461142299336078750373504597507528438147033900211508787228608580068297466745613203732006464953070434231437652896679861582536791027282335154628935428299224291455360604680491889818419021314168696119295454320450411698988915816737868426119246729412013792965536117464155414371585646932135153902510715933464513835898799751008206744770836010285705874483782990636705213509383836821915948484294921008298253100542879788103967980021786368445771106769941804129429877967171059340482722378860177958330118763098177817299063462429488747580655562928422367944325331844629913947134834007631426440191922167589784914181076077075281906681604929607762586421711425453965714359893051602806121073649563509628985170972779090251853813416904623297469217851337871018051077128125230097095762234677058225904689956561993872702851930912566341349612358243180394667387978316485824339871466937324639122595640187793723518318369943724302424850961070568999361364160742675785375304236199192713389583711996131439269735874622840229018433592000636892595880381340416042426134187617741960065985673886007495168680527784517638903108401124267425622420749997619776687506415544394647002956123287692589622292855002959404667883999493767458182855216878104943140424312455335808908611006621866271194326639314602609980004056660657951467030815902938576511216175834112407426929410544512724192007956802006658937153459343834840250815251382391953109124716861883411443715099200546101290999126987085731358509171723702432105323716954419530805535848244683964022906829058855127856137322994582676855787023597699073263814552745825929886780251774198002133231923388896579938967715161714284398812901016078852158831811209536114037015046878709775896193623693482295598134810693927133141654487281069969453345985552478728425642997874472451943749353083496211101408145743496040990543903328405674426858819733421213323275591209595121999200211813091508910622917309403601068670664292043222046137206979310533525487157370023052326524770345788208326018100141775617239342546044592628656542184057475132047657352382145958593294357158006325815132587837041426075094709154810282431782366965077221817393320346165078470658943084132398446806023379232371173370222123140245804984473261060922771335534328858535819153514962625085236065821468474825973212925648991885309402483321716948823757823569416623019970270422325685323597150432514893418706333906031227098089562665605701554274389251293789065703258552485444360606102874412466399079882686573937001905420848835576312383000300122196639122926786837939058937205595822396440104045075639796686484046852119777829866210066208615798564098526908867174829243562579725124427314482816847587148165169471167619355014203250990114083778527932190447371386019083241944471187353582135614720649995156482898141022629740467780365316551918722148462447963117413066062401715809128041532159565454360124766228404675785131685144460077761053777063452087727033198285631497744512566664269614414722800673680248684608494323146731582305721110619647336149858437980696216692634801204266701113222610280057083919850153213798097213758065180940657211537337672374266575260010616690843877054015830033178190380900921719947091908923006043004642170856417401187983981065794986916029895604060813958498989381434830426619720419091895947180163317166474400288374539607971758761043995300600964506488207798658420757930256642267180482201981165034501018483726076866894412063611792073116629864958529668370789938249910461410151222965599254823113361086232792458846319805145263341611519409028528450219420287540989832685455028217448593324060727301592741204928234633852766622519281756403735979762730566135396764436147227970842249027392905099457676177244595035693356010337567459638236986237707359904161664655970980437603612325864486810860699982016022849528058848379043094537730480445767870790309322028205178911241238635010983342430462322890726554023814469395670389820340076457142417552472726418691218381466157331450277641826735729576693040001067984886813547695893932999532438807919266343367327784106167031844785575841889826563220557992654075695411538332277694363481778348938675665804685990783996375919884126133460659013464257825629742217469403063558545100436334829535002226832802698489471756361042099629704052890413625610257265581509149082260945799440921587982381503276507916777629243503553338256592501117409556433180278881739799493521134592356274414947012790486346847234075043079672538883013055094602059792939523383981781190150812498204302551868005762453223479044529784787916434295249262876927376519387395989045765655518060040065489748896526033233601318142178903601159735045703429131448362190589580972161815183257114141172562806712634611918103832669576103252557592062665708288313804392514004154782353741470997044718212790781221296488289990784572958511507892757454290512098686700651548989280699319345287098070566723575928888442942293610340762834018512935032245027814089896011905646046048397610151614151266420991457112144535997276935504437646480975994649606179058643850376416916944852281791953413080475654580833719824425467418688606513578632920549912814528154201811237134081324088073194170337430455123195462308734091898427764270629227109975992038958109915272426138500356638188658873042273229579281312624822992492871667327159373712695698094561945192729425844314927293311778032263146027656237755236717679250770129528632459607535845505974111325134308017461678236820362040039113043411625535306059342332801347391199037876532481467467961328864364062768100183616207087623339477164086905429402376472501597420407857198385637756236300561598316078713034575313947237853091593886827168984144601991041036787594178697043490131695539957235911114253670455543005567523499519031795608625203326362213293290638179130053125710159649243008592419695625942653733297089741199492085688146248786289453419155134722704993424271435259741590494766247916768350361674102377116680231367719028458010492643122143540313003087287542021915095566750424334990939022002920997918372934103729394880353604342064539644150071780232862615068934297224645336240525051432696573006764493145520440075203889110465378485397603405134710684676817661726377868306418104779523790013668112928249523324971741362509145505934066669859064932015081319600737595942170929312906153959548061330287262635956197004004693475210691578369336107576426277155120719916465720574809489639054729050863681073058139422818551948508682299863080968881508833172514199336800702099939140384414007970967550797795888033639575340105276574317785695982034436601256977155921532393779218512609376291644672149921792116128251081515115400926400967654562499266333418924701742798602873788748092284617743094931908927997763370194913988571595652969851145739773828259932312352725094218861819564854095112595906590118608228026122442241971986726852251785710408597627183604907863523382033794948641025802638469537441467434785545041205853683577112906705890145531327043054883164914821162931669013813917760644365697898317575344062634297322341063503582837031078149784000450440628935561293610383294757223243888417986206653526967896300186227638620106841412094693390967412442651651069374817740129025603577508177900939564342411192587475643065041551033694232484415773590178291916037887570220168441768452846564079193852133898135912435074569337131203107755378147662360564740930264812102107907557580691769745210388556384338007568347372811889726746038784711126485783158499783956094314147321541490646628435321759529970870351976022989134482852929915443046125261303694221099174598137433899091240381284040197257946393326808757830594608383472646375424638454899850801468800479227578055049721397853202840210959367392733609486442317178981410252580248854388768686806557032659526536808331799748435745091838443262444717353119094285120169457559919795485211695062840145538871248858343805353500344414544781801617185966608285429709282933119920504105429896695614814416244067924709279265468797880054123292628499913317367128969740665667326173826339366670394623935647150859429023351992723466949120290488510860470111379329917960447664147388570344010387600772151288509502526938533400033593622289365382842939864241590166914865819717671187352736276125973063941430574686592073229244781923165739644304580683951809480666722950490278853556927850356610715482426076156258183069381223768877095319219170251655339094648379567595586055025198400371247221313161837654976152103431541164002996206085988260560170030452657775344234592538643543473638827795048490789086082428369311743399425457583814290499775341344056707833416855519367408639951214803791920703786058027724035095701427379466989370160510340836946373104643990617299262404040413410360129875606948326405164538821522420605412684277540912852908591757737643708302263219665926730121847816353273533868409640312689479372811054055794818834287247578159017251989404354820125892158269146296521533488822666482105977803433470144786501810963858941314880067868403396115429696403320080739901084640001006496120267571768155506562346277711202537804172230244106040614358192674835882685393016045701264192645265204865115505445372149102405826680007770811288398868910742002447657734566650390487367005174554855095146729860984308661918789356258286598338359936414394753475201803228432721401475283928355118630889932485472788164885323479695132403745983058322035565114781241344405331573201702269375004160129617032500241340019830565168377289328659855113202712933506002297867321305562581518064913174400820560582453179844671715946828811241743174797909187241623235127939482149766118863715853735206043278462343166564085496433562454334329789273654411163923289885838390042884628613488212495714227199940740378865863977414982201848510543921827130132922520327024181958661595951157159931029831925392863936837084244717816469183520364300239400801241914202867812836676030364668580892738881025289617623711759122870166925806339788116149019730465728782838754110130701151132727256782636406632371165031475646460694400896726962520893121535314970884167800557527185354268364587933373673997530227062344643344644957129697722707300304461895651654284575105055936238946001036281922977207011140011695826518033478504372044268008947040038178941658209198946288590654163164514161045526300821893938649191317994519640442672244681987355966327378379092174492930750231855725581813272599884314080870360004883618012404068857318357587180810193985150578591134949647636984420553823173492527999627148286223315181547087849731878265865805554291376289710371280329523786417205997281300684369800064320993093033100011422187985561090252941818159124050981927032758448480677824218113360609449506332696748642682042004374209415696246875036463814203438351387799524389213615630092893063680628678396975221849387247179504274233126896100719040554993708147982871744033625101302970260788481142103899647480310558600865697039002400575998650409174657177597086342220851003527360779570353861617619472617462485975296015967025666634121331487521246465558380840061457789449117839214177491824713673478930473031432938303964144418435696376851029933089458331368250405744020794685984928229841129707150131456334265607548459441239250290554977136729681631586903229204828631001763932879763180468076227484026160847105188468582402974557861746707225502203124578049582003903862563947245540019032247472894339054065375113659520240079142274012006231935080300551288178912206646523786234398743907934533273325495161516447407609746224732597070362669598360246483680073185288164446705736310503641903050792216001858016579707615854339696992528183043102076944202509927304014036225862327707081403713190330278653887247334123303954384885011594884840693093663187053744907619657363753170823794622985605350852149924779426025587544117456242037437151062692912008354368859478827373534516259762122600943115683849233086943093833322971391298792309342263756149163053336177926532963363645126592396111844685073863054243389699214395266906402673755093806892784267331430906378314746179847660045960277692621072450075677545446099044859539419205635589635685286469262243013012964627700730043419515635964583246372163547537583887489263448269553255185027562508870562894693608458181613283920884858596605861432614316388387905232374021473569218895122271573765020017875948955490262685989266892193467680799465561638514324971862144956421613430812992944920195709672821568348821187711844231651835230052625838736608597363048049371830347025967359276239648496915582906265819123333217550018468641647018712324130991276627340576946454759593693728023514032684556718373778756338229972560268650728250166978055811158935863227806570536304005867776345471954517060913133251567222217477595538982771224165847294813416826543928701786585728726033917971552460406080859968280406249931417111499262935317201284797016937790337393213497923674600212657394547587121726812727228620050120033950378073327433847528388389890305743478634602518467625583125416653000583185400095538503403890543976677500209751465280033573127744915566512211057239862147452289895926201223638392861813388888638674717743689814404343382399427883633442453929142361701094391360122092896008349887392996350013909185247313092067915416575272689608559812131562030516566571828188234950639767650759364613131405332642624025449160326195302625408821605883912849356240638012775841494689202780790996895318018805245427474571732924960273672860870088632763951411290759097542345014190813399986116758634582320081458788458971650025610661227551947350001837841730132520471221249961267705615585077460464573842309362420088459575305491792298566202149868031507671042328819327810731528424163522437935097219736165811002568119790168944564362380918592691079445484895161987063825796278685698190345502623320658810566025224502638853886672548880945384407205103098682930906660691702721088478647330914177304809636844607374256569499433388028301056881351122956103890553103877902310628660640061772944189130639565251276192159895735253417849474829652030117010316619729107243455016541645582041604877877170785727186323912051129456673394510587593296493948741996590024818242681373415413477008701969578749239971948994364299226238056426493100996393694557654352903642451499467926748320093613185973094858518491393862676723938852759338012977281876079712675164138262296723876472735618028190152258472918771375693355152933762991351363000787598513045595926189555296006225620281592690170644347276471700919094159735436960427973161694024425744086729811649264231196535678284864724888734779670655813813943671669485058885676596886681263550923068200043381310170088262318765551765467187842184694072931272062408355752903710034046902035154328948953561714617324664508543830760256059003464838513231434728704948188171914138495612826248433956563428259655239091149433356651064498961678994865801466503389985649190036136371537351554257705343474116595317937579790317628043877673288657383943178790132819760818446196720956712377686310006094116616150117816343354946046726930055212161403077814856930983281347899568887139040502681405419687297944063249841443708113896033181328977716351068900314686574420013804921093370797596679069610388920728599027580361771533417251100271005495113803710257769489570094827342184593318082188973650839120679246950569851168121340848742757911586442291955291149369199775781313116083080972681211300776507788899470803816586815887761298111495291425518927861783993977508229603649557556626661000580276766383901409676387047655495346667909629203008237880189298329563128703435201222073686867596117097123340576799943069278869074930843059907959390726608306107164889489376206597407406126324626873192096732846563142365724517932924140038671914814038818316353257358320540840328582412383212228706893194794730783451741517005241679898100940913400007673599108335702356474695561720816400123875031434928683273626115524243877882392179233497829771885814798774984871445178945641242653861013227886418467437911839607148786498782494469261298145376848586830967763105140845519989121928347501674133093513298294180188125169856458531676338979837201421929566607999392239680460284629863258583848331418305772811297821132482363767518138212316689449346351939125826437473526890743797919437053085845871042373256241808543941191233940339122235589919275325956466011318392013772173813073903162843877242293481054365624888754946225436340412126593994661467996329954048572414477018922899378313117609440111418593409690038990221730389538953578773811857362656307113540646510328623921125904653328145052816117209839013683191717911290582822773120504618506859304567433716745692171352363266173594529523012651292499786034891677246542888019190528700200529931629987604763555493235172463393629503409351721444470082046972676159803539314207524548548711431119009021254893133761921800991306513547512951838302576453056283602479348287799494502344722263031987506620904232817084769121140214997679712098335474844701118735623433916050362172417412974072944256658272313473257741747695142592526925583495192677830794101854175347860378997464858880148062073951820110226761351934403283409210438774834472987054408719254637448831138168804617636900974616757667868370922940149612252390519919968086995426442407531629953082024274241954952417077251041277222438375008298036847372710254064196393382372232106740365547999313440379970267753731520087532664284058329582558112264372836591798983556496383514772049738135660537603137138528155884837913683721005925474038276486270184572457878683966107152773550147678539919568956562733527088407707418150535940842012146599884773787193728801344579588768966543931925740172311078815485116312435168236227389671676011272355802925644428230575632290115854666571943460117883973291529508491388036584983118647715567576802256584560534031795607246955177678438921388374230425855894999797713297540007797922172017035035858903571205127569146011319453093454947304016130641941083034501032010650375479117582307118864419784001943959197567942913654949069136059772242010728365682228829148452832062223695006303052585273347421310893048956214711513646092130452963123023307122306285881571924715518243236156504657040242354541661324131448962854684065623621847025869015681279257538072035392365639858371703347253458435547877341031457502589335961874025301496865998819393495298076978108732605423104695743174616050968125955967425602778008329462384689693247467465003610522679616383279029878325820394077115127228055485753740027176830851735447121761357193945385034407782259888979562837917560157624720049113557205007635723751130627950839712177522465088984267631207505504731257300865781140733492249408556243719556862711276795434865053430630123812642385570441196087746591823279523222761555891538785210311547559823205844851301632879849448160239880561187150082357838610548550815058998059884778687237378505853819361923103870538268478674526763172234056907390464052771095333365868654061034618849412439955818111598931179977447763818601472352086964274591152674939053132094819082312608434028016117575603351996950696178226836823136631627542777741728921984749957483905911778327895844242729547910593282942524856407945134932163221255535704894073123209845964858293339433742644744577883617363420474671794139145831717942069310523488761720451418166781370997007928457249965057468064404440217083424103035367859850589087541673271904401550756762178946380253065381400094015523073450721337329622019726160314690818879977348831363385588176388362320683208416278959256683499800776255329347453836713746027104368574388018201575221323580594941271916422011180641897597382564084183069964218336058380118302217838582773730599070822307930686784810806290326102741991578325297567384473072247663414014653617689999980569970549889316370527212400489226155527081687703962643126719816800414441736958935151468405904898301659657891788049316272206714603808871318510623612794545117129314328144196935584637814297885760826266455476894580151525653076495523964864776889005381634966368306960014772153560692995603705106519007810583890800794187840059857274103240888316769137987432753304796206046963452124267505863429514968441722261400786529038582609013645674259465729622515388023283656086531910195508521763799404044718555982686589001056234517110094020189772816442185734335270824661466812885200519351649945771120771610764180961283856074623333110614622410735506434020234482744985762514866883678494577805417301629801015958491415028081372209918233038543045456695637885569099721804756790483323087334248577375709426751641205044836435270436941673472672324214619619146898257906820974719536427194918394631593986709851684990544120625861046752164280620035968590486365478913437382231506033473774201791099088237803522232602680291114023328692043058496762584603522588481165503363523075322282214369568744607982090065869432295247327895037632950107539458372839824637630785011226397050659492729090851641797566793572422248781924146021098947247995370156880256934448436602006494348385981570055368742500387236147595528607111310913689010993497938188503745851093317126366502385807589140981800722256600109602469709866612744329763807304154125304306493855599112148910548625865913537651574339973247282188116411208018757380158716290248280914136356258265498201496044135870306069376950911808408652273758250894145309622967679379670508644517987057888671040676515741518020320412338660241746376916123742164681902708400482693980761458080443037355381081873384699212680100750897742834291394994348518425505783347309954810224836993633191242383067227057987310581263865625489452112735530649204219703514570638708958197670043592999209731939729926625404164501537781019522061513419502570120253799893216339732367832849131223299495299887445820530508606274975756251465106573926000096320344780500060424792448655490784933996886983061893452326225032012845634589669913820871290613462403958799066355101163880866900637646350005539998988677908618990605797736492724928635459757186932346869923134522543119044597028589740794523215180900534841309307387014260026499411964966120575164046985906003440897528833707363954447515814075336689849183299253760939849973084942573860354356166697049073260288605966203177736384725152524983436893417395082010930430676518790825943402529961210668358563787060840588797320249685164758964282522768823461502924190249800382319716986268769909368883576595030803828874419617512127370181126068137182289714717730699269226102140824748213595590233143842285941353777524634248927014644259839893746012237676795924690311716401756203917337935946888687590967527412914325879283556660921770413352303700256043187998555475801878210638340563361941371700182588784765541788009217090157624641594371482829003446228979594408486030939565556597942318949178948552079554606769440008263895920195292514482388897636420445846231559371456368518838450836074282645075358997467903702574058242732503893063939380366620531854555808622358039517395687501527364230763594593781737014175120699357213109921491876896396910918174198446840310691956705826681798149319980660969193240067158238807274942039402733090611799138015398715984699026682041398978517178857408749546498049260725956903977330309309833789588021611717053414104858397877737854926216634256114839173285915042772064854826924398561226949454994279443380032954981620750702555522194666450036459941908646611639436313090636776002243994831894156227635425399332629345865834692217026209840661164765555305648322237147327467102574648069890263978094947815367944305601197090848657688671803611115865654045344640299532238858798849756682387799521181406418191823805202062517832503375443536215591683620254338646307497258649743648350043187149091944912836715023632459561191833967952249155486917837771607100130061681432491673983776829109329604290637754544047010726166782398329397776093668984223312080096618135302496534362928873140899183213624749814054269008995381802861774086666046904547461804957561819921520466209121488309859268303322465771986899736093402849251308283302680411601233381460235547319351045882832234983568869188395839004895507070492703133111111695501345385434755538805796218424190816157830749559547681622996549319769909413531049909335616923670217368632113658490602335729928531028053515611576396456676083446102754983482694895854267362611746587307025716555044896389484454402308050641817161607417275637489603574297284880184068983134083738725923097668677581788279632502453325721623991573394757068180945756713784831094871834493953947775335846596937151767698854401643141034839151485903195118763046850353833718040041944285148594230466089896819114522887964441865996528213959047440385166076108133717144889597388192134053223781838555957290897011101487718725421191255256636269913533306833263925270173605272170501691877398384382043619488564875194776743338171123647155072171347267387983924795645542377879623818420354288318098207339121449048063070880387000431869997360543402583774824780474326111765478296182881308885715605846919603188639732611012194909283166371529442016416013309992496772030351730766939414592980668482584280520320645704611802318474317944433051530818508254409256388099772496010532682688817352033838262381620648534856835767433743033676984665281907929528265595080912722652119331161566141526472140036826658983432053514438902037631278042677383623967119842218720524208898978354535864871341127461136272672107867759522904026623673965950092894465916571827209818650841323938841540788334677188157045498921887976371690054060572803412075826319238476914621196797479508311915354312560032502168052601821262888099134726915729260801719684723261432337758178747818157114257709349699381767438586839827901509916906318661728812037567296465477989803421520057269496996147015383172390936004435420942358035780614383207991508980426128880817360072532390644149727651317891709053576959187086919362186449952351524677824842436037404303576662823061351580532456157942843859532898768021129915157198198947191473514507271778927343975296897510931196578755317063651937195875865915487195447894613263495938134329919431514764881609266198749296465181307221883943205467374222959538420982422132329214873140527915883680732349743422091370524445671922901278801764385159872388599731204317998374273947753000875019344176861006481276985891351446358143580872050247885433306637626209406763151349834568751643182132515781749179233030793178115817276950150021920879554630615556947669950792405035108235564920174222315723632358253570765087644657096592848953404586815675553590681986639830203091061646748293618441098732163651952152155048316412297497682706572922067383947991984394744017505657970634036270829205343546117130505847120636906265108708959734363411823882409294585968293760300705034184693047659622333353640492143305930366821644200797207196449632960076410791111809103863186536879440097331452711603640279328036620342336742944473300034270339980651823339124048593112486504138339230009936591405875174552160956389156521140752946053081391746897268468623410049380133289386337334759452029568872399995478575217444585760183183760228295706765481626691056382768371027307626951090685979432278564195946976267989219264301246260067454782407785318521317117295394124915177766506953321906545957582220636311543965646949510327893760158135901041923513839977869534534225553971155356881398516207011447440945074253510586119200633922804901251249412362586166522960565626133823625206230111345606491526540298883851928409696032501814100134811617568673614433450667440778515451708661433607617697960367660878982714698145813879766443909264897100613506513791530810893336658399338581723787746701481592126692438323505480143431650209211197524974991884492442634823590566342236598478691790388065506628678525815473162342580043709635635025227725036636023144719492767779534660011001789201613017055520417354918943081095115596359734962527653079027203643394662339491777869102496449787937592216198142567574894536203031224665641065734580947078238867126308761708978720002254507780121546577781128538506411346849136436153900324867319640630305312958914453051264508717329121275293995783148563869402241985197740130283737473344036626699092634450450980227706429470918080383640785132457751199502716306389354292987674979265565491051128038110393791633597000699565823683563940461846424007267056162342073666397145638775478110176652546813442528106403206607889718013315626671601581660421164094073906728347365116459378536624185623612185785255246768899385448896792631419541328693160169838889343039228089954940048076271202997352665827226338834272505017183813416320352991910426516709013824377108377055938273211868843036088015756960533065987315655181438733593399408906248065110993023668686484957255447991923173855996613601557622144905254046627225691887829249476903295940280121477214872592517490119415077706575659677859411797268684361354458767000690762957420990192291902884821378328405674373008032003062170424466387126116902193257365558062124780307775159585892175501902312102260508416472375692752722494767415254047332285671608397673688297002207663691231803163484743820832049335873954271079796179190210720515909029829005007921477917927318686915901240310488182127381178678390412792866720770646084078360555936982523088757601252157253773310561007230729497661653966108856256175232170196849838083641985384722943891049662374291106880217505275724964017697043111035245108025421041837130225156689764645759569515277220058114992047037896202049730005487207386745478730549724189628307446226256367456653302859681592964606777913495371462091205065824298553697253362503431558081480795434599483312128553133629701822320139417671981988969929653357305489065782395492643918707645220352173013573982567533919740495708705585586724163936629930804009679268676416042402843748936323382859278320056952866842546671075081498657751480954270739770366964394348705795941440090247538171689756203346889402457297604991728043795558833087381381814222580292230373630002767652358889137207367589874061583683580041461191841693865892770890774982979297529824825240471017219048595252090631044325146841854801567142495655856458166895610925103128151272697842065261051497389090999030679633801057124022406498762211196092923342755172022539296500947009997085153611512837200497288385610549206768130379584971192446497481858400221369067448363302258050006752778002222791400044745416040689462300404130827081268376654735999917315166766247810995399405996932941915029680364869190570465979286081807935103902043375205882499196651884292036020691300558273335354881533746507005464819008538009618717804791071944872437181332763274028395701630410957626525681595291285138850782994679081720757596050576584308363017537860845457854516700536870484542962978935638397722981204619472056756148436070357303174717511951460288225008307635930528786298867046922795775234669955100603980831599810240379436458798591146041677785564824111978204123548055593617059764933716986569668215461382101131796326582933747580117340574561744233707597799077840008668226764401764765445935220774153804237103783103172185035617569850651180491932265077707299931734851879562321345836373729788034429605323200784855114700512134355435128322346406935289555996622333148766568605788641159061995146272914992283014248138233750752591767505507733392902071408244806084192034991889291084221764736987858232909336250830004929142860109010176405998135217207923083390925784334280180795421991564701960964346923700094703224919005664822412545568775831250008326573761438747463268633733406931898858865107851787902756044442797394047295975436632464735508158681344431415246160831507523365385174191920682866418471998307336029327016410349677050713175577192596219236009422422350706797716143882965734367362037982319575413801669981892720591387350053876168840224464461349621657779352448688041794215771491261810055440465644881936516732685436114464489093233121337758486734929412549250721435731952005145570620634753023414326863499865719479924748921622678373508418342335762576452928900384681712488997575194972214154485871879911184368402151305786318372378308057374039195621853956997898962967187519526494484534261754158697162583242642793563351102805920789097497238335192536625285538959693496050678950265421091214331041659439451058666646258623299436369461123918615106569821759726841195414656207214673949163629984495170966956703575093392517351270015748879143844692361378606176318407020451188376477758227821923831065388192154483041524380212675194750685985985344569267843927864864424953574231229687566802169476370941261051555448913910599197979681558548342803779365042946401918589664431806699349941496182374212576759788359822466939735569723193943145616783025651658654969630617073111368242545339934334697448258134180653963889230470393557737985851172348849581569091570721787289451190068351315679253533853890035481077944994897546171816399949313705425134761159431524884196077677345589339153200697565237960018022964267698637398797057185691175199728427095635883793756778237170225666464082156479483121914326445553516272584645642090142172275684966000564240646911843133628791355150582460362235906343246858881507436700898894496436426933525428605711667056016825193437669141691817079011428070477284388996209174758691633494487942192647008301236792871129469830061364425975515817859123970445558789995610429537725030530218846430278191240574759610650242938506935774118066070738395747412873383031119493974195393177131127872762976068079465895645347075860800763080656908979997394582470356390839953444662239929542440656943413958049675047274396845360928010424137963570575275969611711095308125052235653666622668169706892534613933634605290614167489082668441416285818891352827385440604562993024436998106503735296009551660738499530903049593777986111196856980713640475662106348009850793257719226534096770317120616762449845637579852930160946859966068931446372288472217206920294916955640881253770305562475742195684225736985038752625191170089202335186929899829100433309532118858969973386144224050932185686291383559654401195496968880143051277159424374192761622114832713058081862969926917585699951368664720582989038397295897074189514232604523658046826509156179463423180052762172817169449222971375430648354040871601510411502190469418152282761156800502543939479814978888608626322860037523243891387946092142616886021600413403981525922102611321336977135850475119617468759868142115825992155725190195787014261202277792420390036158382522641655706518258146665350764419045908465162962111458690880244775599447184472344161613397656766662686101158508543051563811386674045989715802916089024905495556995592934950985966479987799256638642554324892169775423196346357986641298701019206710755370344683249826482762564833574142927158505349386182965000122921214876858302160531161566137467590840960714471113684087413391422985539415785624476746798695326334425861695109957420495475955985858130802299319781428132521078910670865821131828842698860549577948609634202957894507683744528834291054642201695562860527709333507347654474532264034560975586349059068870335697602914800264608158421448106200935792555449284448745985149620244920785360355014026934348225571395785329325907352357811952022842390535300174664338253739015795365468718502030852929595469019937062304941958336380772740439232915477516124628872723230871615280193135097547225537714359580673708687728881750644416411281860322455936486319509324629810961026940855560639999068720258540021318271168108947485034548034514710664388658186564214733008276203543502265899802674713360212869454876125755822737726036050252019329435896633823891637108331171816575751126779910703711721656745835485830928445487926869208118165588494515959093780924512979538136777589713168852845556874754891324966255466264483796422975919075814127530886876725421816890255053705540318280667525885544859959286203125599598991771567071626219609861961956532811023339410875056175241432932721682937381653830769052285492772636245853564303497221551532259643784278136194923584454062360024474834047530840937132986911974679852212865379970004301403430965213943536674219008016689454434038650946857020981049047583193928540805835350342256081439346776125021032041113334962630912246407617771846268482628914346787900354924912929946667139483051417970264093985656904277249098064556170507751271837470297563747689532631306081588104298461988399480423882252834450212520702952911612737321963476331169371409190591765107643262124254114087274442489314238054858050906615251407234427997472344087494599849738019701167868932575488558580796721820507372464621809191937957874532720930053739432431524120246735156067611166268423631855726120985692203021535405488879722865292710368487586581926170338709739481408219409316715486964331496848470380844909879489413264213047595037450801616378889775206763932274477101997715750266354970528699441298728314339472830292814311846902636710979632332834020920740380744001072770318387095685042930488005817070459646594063645568196899126095596818929553143763268425784081000735257196513412220656461494073683867187206052686996719731319347330128107536492723280492546221242297822787955572721844717759065232641212113962386788957473564693132927105729698129338653899419648305378378514786186270607164491913750044313203632274033365389286468483127214562281420789887150533112551307834142595846109052293630363563816969775141824839638866210439102074043111004105006585712755446565216310659625345967507912474201896675406096906546377895832484912080336385484215088271398338344234466885398355342817671257570568113315482630468472955837359564812902897395180455288653961765003944955617012772815995068151450015485640612781662053224312223255136303252102728113860899531568326734012548736222618142543449505808099591750233615138367311688774116895033236406153689433385828294176623594704410177942394415725606912571407236115570174283209092286828077284165236708335725249081450938401441716516792205353572721682522657400486909320479665340160902319965868351818969563990727452615178354799664075750836611155960223243557782730322943964939829212511069447441832264117574597605781577856212061549903562944187562098869296950923751680948145552391170463170017156603212670224441937300884945395720219222068767547099319000683631509227496506322156261279064883719784137121460472477018854666636038581937133590097275052536624530173219954748791831090611608146296638302216847092956874739080375139435915678207991762276032302448294738282989645978195162067711744771113789956047774311229541275728469165508332626516722233870182772559409195266743592291076704756384518232500787885355410911016931204732605752044399551026859838014810675052184744671376305194492712257398806007293440266629311658268119406140279078104861418130392885019630949365134000479718783631842878117004148845333416542700982977474562018932389102576090997517242054683334451706522501685010166123627401374497721454827240177571139084193387159776139773628673033492809359889969522982391965780064237468261327645491911234348455206725988619841497772012656400503460877524678977870538073396132493985599968919027365157713099145369790928532072503800298193591055590483568121827965998342726501040103501038965252073092890933758014986305358002898465952778685457413386408478720689175806322700021969548672109577891479811071548695404042683152769632192314247340438166854863650845423035300283803293486300971382530199401411745674080913786574816341805607018594551506416304677158155900319027828306002927600680865254527652029365434070464014407534074057657795045562021228158413761513832409749518959357648726572306299344930381637997917101305671097155315621067013696319910725725130445945049118083146608272024578561603195503953419367201720285517550001990012674360482548513777145138755127727027337171645099666403507038760700898049804407659718784287839534670029619234000882796942476413631684624391415718854931804409783993183527560470137758511649637464233356046430545744655794868353019968816512313624635393466638949414441691232451153175378688784926675158013979333781809633143443310933644299347067538194532891971130128439412244328911613696198398284018913156601109089983098277237476629640071410327696900293909940458685451337081997179790273355075544247600865091507489503810484144816947431786595545742947447929448170081743085883283761788298421423842277258324482553100270462065044941638130750867817781623733826435914428899594271723832809921449185959433692129265412573482347058823849547711579744443592894393017706164547241649614923306597150126943859216315083300709506331053833449688592903219500653476782697315157499565254570345319445674545493335244159972746865691333808028405090061964245375600353216223053099365680085601925329724063591395578194314738922146000102545065834130066764336283546679160592875432429123492164574446327411197879710693176410183114877334464188116150512408494199322095389554543022259558207730150694925305669917049481353446532379111879170247802042989546221073530304054688272649933876439456514230728354962094162800861165306084998880816562072946181211956084610888418837069518102871915075330580250893600961751477624567753405385905362926491677410761654387957941729355441095687967096361151489184363655305588230262919696570497131105486190433939984519099817645314926289484115963951992030842270210534095095089434026785243631702480996814387330526679677670435904748063833799057075356815946783977867343097228486834936620971518186811479797026278507276156211755963754911015441600867541096432134682656916124087812816643262622385052648440998459763140080651312243347062744060246939379091476403432065776632314525335721557676607907734720309480133182705399668381789969653605834769504639403726023339696516902787158654826546035653910518458729511677203382430387504510001651257513586094494171899074676650408060106022404486508260061144229638367184667362107547882007542773830093335022770288290127496946374481719395392994937622500960985471103327654798279637260075641426483491263923925627647475683827613198307589417183689291912098527351893943491427484110679950370618145729673127828134857523368118393890983092540220204750635214266421018713248337539772830657806222378593608442913827948854316162238595479413095506301575587702570541992064258987874549566592452418097477720626194750108288910723426895725276554944435051802475557047819275464261780780420323826404421884027428161740967788890123826417574493863799039869645554281900742389324685899299535592825075877326756721346808849379144847404180942913531991554430194323995661755886059762448990421320310456450712996324965936641812886138111039847505432360229030090609089580019722542612002776446477100229449475099552416836831608612353782339658708500604072198130419318023666725326294919973509620459732169439212412523208799293687921174284206103396753466174993857215636654335088155646165833194128675690109453561414410065135540196885474712380767395638466681887373862232735811536455843482912354546171640574670239036164169931071923750020849421872695404969093826993351320751100204576072182303503626276713294301227457992629346799958707680477034206227496044315975643554831106363190940995856168673410033658324689827446007972185227674129781416185848941928104965528807392505052563846747254929716609932964856349870158852063879019496117311867613608335231346181876530748193147004553887662524362720970963434801917305352317961438899745724726089373211743974581339125099333619591338338062500623442257654592104305232576649060650824647673193694818052402297375748482626640143424523522428907905361293552641224247315420282774898944824872379096024186295693435475885294267492960712428716011841972178050783658108160381053521821310210018631169748601661782068247521227049926503243338500671350445038230720904924683912987244658677973390438807441897379774560816446232491667702900247955379005091094348770965501183679067958480196602021393167563907228414461831264352156655272487711542031937054526809493151255192373936222054362351401319858151790705541277072043487939378139426589602019546564686541428672547782154860754345422084093388730450743789965979866166600055155643070486016813825613258451529653757019697432368121676234844753432953466214795887946554462337026381358770872474527014027908445620774592307326329298829714727188938775417795208180826452551835131565741355259434250037686084924144188662053122616222032011453131763935389551881317485742862197607124132152871779006685141370559103851290188655133311312582843395892377572953163685347762542893297269359743503920232856379702344590121859161904458347237353257868358497158609233576301301231547387111587188968885091990396474823007444544344527012255828209297650163990304165642059495326731214359132430036681347685264552936060018282808518765890471387216107120520825662494428313221022276308186293709277557615679315239897866404320547697901950935318002507833771890034679525529530865358176490560185768862338877832816447951364968472218277763514234769403944733634097081608016652159556628387319297871260795935102449946769356430222604965604128618434638066917997173115957422558331457053577932234135175790000207968790142841952092387076779474633481982363789629243645070626478540828623638123108810640705467094670327211918788724100881285711625042707911218327516773222982495050088991083162959756375291348402455539709665165302056843608478075613552200630441228220353507663703246970343580817742866157548992805618517068765083592553075491719740582214648933904356574610201056759792760399151420818330823045843702584035524709597930108861833927129870959838559310724102966163166828265254586394005387506841544586613902457154718546981743420074504907106203788729631625718306341699183085920547286204427764913619026877805483022984728767516407694922730620852601309579992270709285727592332358698642283252250741594535527525327479594906329540402464071940075614841628343997470878878037622076007665649946092968102387074178141119825522897554414629170212633402386173394160213246712051696185741969596802361877837155377273121366407997732706637429286508994391189941228965925202298538631955772998815782597041412731404673300835220708520131173916755257315175640255314138336556425991644329116622060416519258967697909189592272797895794148581193783409356448281951039419461823734303433950004402508838823611778420764004076468755230878288849461376658395775300590864277107004563263305825539997331081729233942820551654150956312233173670142964835482676588361323129333575439021389368824219013473426992633558687112143191149357019131927214667668561715745220551534907816308166466614488712214579351369249506386666108221503679592944066446690104478889929257303046557645663462356756022735555958514161088592771059782464459355014671741284382184044645137079341519926659631832593212645876369324198525124785393982858525714774580372357682796273693465020231379933414143074174998124631103764937477010551797677012404681904241390604342415607604789840060461811444109690289766687161328865066602178383685215108083139954146165471114901341445256771747832599605926198709656086113725140460567061291645751174941164643493512307137949670642236501133589615492791832941212295460973559379778862481250365248654515535532527048434638471277566241490662702610316629151622594951117469891831507473544372977775151043531959197031230922039825703448448760728104448335757963669344331816371154954256851453352329104962799141490352275448925767203587485948792863917104844183673403557731096492765987236934177764132276331198521347721411854854356028064924925015516719214882236751684680906914779792919187792831521178803337631620224312894301910639924453088240387241103089696988850056125037892681735071773135932993972820894792297986633776494307797392187540198770667984298389710755223254060448976777393167588403407317960118324354894630082365594684883765127166916448104841798978342023278651804898341045223503107575501691987828194407454058949092549334127183887764203897156998495474372797546720598303693234361671736718358776265667980249791011419775791700738956477229707006793431217425044326663623547498128153477797151135136855069755683312976503543243510921942298728790975106676392833198353990419078420958179821817024065205822571858474432433738315211893627301080223948618499793913199937259339578736856123152345140913999894187324546181778886517628108111722134307511066287190720601081944891518584024760310090712131481394052802289714300714408523957818175680753385610005091385391628959234029262798139695462923220656696592637238956287704709698508834944769738418799824456463343763151127528955648582521464965751861452825248363367553425487760013818840346166349186812800851544363660742503045542663914099874126427160167386252069413425484586694850734153625753659756939739635043235653089104362102929044133210137594473488780822828317101243657685507984141628907671639352006199175546635540590841106510551639928589666784296315761062122846026047093745679989873195879602827942299662630447548792964093878035271168586524041966722124010209802278651434759525623721289683983931837742836620047261647491008655902135999153473610779313117218067411789558054423720492455123557679844356722332041430590197815717319729394016525346733899988618207215459267276822069337599989135608666016671054766965588306183611498948225754432263135428231365770899142143939006449417693756608488801755140230762268057785249624319707821108363016050142404701919542824571641548901818932375024195512140054211117327955450221664872591701003585111001676994022055010550224854937782192928933315869960279372619490967233947255988273499101853445452071609220858432793864791449247736490516395561986585989965424915499622733269740760670157099435078763988719529673108269359906598832517841202714959867808366650572855008026364534809420903219633967782755574914246140440531963196506405722310000014747246002413718017456280320613481063714599259676439309593982299806987416299258242737606866819101940569759278550053135391235074265491916057494861881932090917266719101945372689432294524343467896334333303065493350596069170688163479964262726692470650154767403578319333265378780545553395759879030810018690744183163884197083763464708989781276764276214892247204946884591961661002188331364981506346176507810005339686595421266682037792842132806781522123429723523920147900930399362016908559380302690557951154634764942142300964164558830071058913465609155742413554450317372984482365116352960738142729742489798497282942132963362605715588790003631433732096486081647894502671282631481916363202948771218507197108356854091564462223875808122468200528693159864611813719825006297263604948520530357234258966657917100595766185000918614586439794635290913418237974490847763301193811829048026346963866966121031362086328008439122662460290322980178794126036359071513187841174623214520907275086524565680293262897044469052882578573003142963089207156776586743958833169884964112791846915481858215472566177814971769768049714074965777207911674477084234526975133472821113394653825866154538607601777818521358865024073226839255783276136509680221459202277980874673396981146089346200857734761979598410903934916774740362796949993415114031862309946556999829603394603442801102773408474799222635209436582559641473202636611865752903482835777832903257972126658929443971668492525805393382390883267203715187475161042134310764349614348075310648615675110107604576094622523883687917740759946785736103572188096799241414530867194290837609093360148143498040979082135875784307525170654729632220843699866267261939835167566896503928061885364590827673087256881330177399726813744114398733641255136876978177200909326612027150145968285349510477805352236529538847892308262960152070459479730664824866215471998855274238550344634843290499339432043318808384300767607206724932180427516486442904058881862221472149721109049778707587043034883126321494033439537999836286445820233441339542246244880448822160373231534598005944234114933243004505377999957696407782668176958329025332100825730710991838730149926437442541103852329409181337441163620026718894253660509785225016146344678012087932544437380909638044162816325151668760784634899801443064002667047769996734773444232502133057729596456453193166953157958306670664537985732662587075605075410034393985425178071151979898717415173000245959996069158323122740923136676260528243261625482911454699515265181645040035158775684070931519494456656910621702466599650478661049198627552449258804842698116803502489046513341867488399960684626520008981808828433785872839150972182400292807299408727709042520027092405373924339059892532215240319094826435578672270839513014410565757682636370882044235105177746750302521041000754946851099804482205575086624178743168692040441117494385186954976081188744303209611397372598333734301823460980083428989163487751588235925355620822123800085842217380171378789616691659470885519322697133501166944248985317418158532180640321598734931933199272172548738140344416339832263275738759425667741495763284102631127613624271629892218161014005744624361917357080379332893893758293848000800048381114495897592392366052783746479491681994507212620918980422823632773676306444412475310740820891909397394632068498179190349164466279132877256807926588730829228590524904795989753001209867110594457120928746786713085329649217091881755461414604266069530523059097165179179923689812348599433485661691640094328635912494853276316337124743198083205116399164486748191176870027181601500309262462196564264565084740189437880196238589303605345989520898947031972985761943697674576232756532454784965300089340047559097132211164646675987515395928971317880500370656225949122055131010025250663488705171536029795996645779891462390869342063966817601603035577499261748385514358070514573352087359072669285025476342856263466993992441027477408806688996311217258788593119315982437731217714671135643596404627249037204554439976862169718621613797641435604605799600257106007308051155502644823381665580174501655645572444388862647517994571184977713249203038375130507468388539545917376675371088074214292110728404133572358057732183520125779928063371272714013239851662833760389941147778029411594713901439727642134019631906434391342411551514269447553564778286409277110430545423144706176050125995542109252177441525268521185065936827386391207148587922937985377879755915808114176045086670651690582048159680521323014557736153327229445805106015046118853253347324242326160733678586189985659252712777770898293084436249755040246596763271128529398937163010988197866234945831399300093889068767133973522554132091083296882515048115866924552143356428468653933472875626953412937974533042124835722224498643233391490839007875778653002777629683786415278964197700935748136939919973424552976876586640876433701851660903884349537225631988155804274230193453305826758762917551631827171829857672444357421487997045391128501842059216658403162167944009129048058719730219832129595023538492544417050849731769659587134549337623353593536889498217449655769783603591610650042903947963273806552636877939972950645473532386072307484086026003975431193872454243254478164609065258215357330874171331550793490061767410307105220032756963592024156084024939343435548503525259497316134365697944836060039602862918717481914439858551712538999256116823230344300729607203432588882184905117129773790979424205811226177566233992910393889086457376137142791443883597908590650383365928143539274588943407652282486649024384097336475237086773674300998164696397495000742737658390191937459439063164961509634593458301828608965572636444073290823455526981318623363564982304408506188335091484278685622505260289344108548747968530616811875004676095718681370348212783210866429795010227105787740764917628452013396575696743416781566102045553894060908958866824469043942493004557847717045118575927907871497095519022289344332120444561881306475358155887658383543219153293198113266826567467431833091943322832190294206096507579030804519685143509603229209653979783238648722362407479971733989122809921119806781941514575084431568655546206789163509112095136343421022683880038376991665496732711301745738567996169838680802807540036164283536339778392189719317190231912150941436039540990000681308403413794358410723750002374119330667264997005611676919004395782934594931992667213672941092479563134860983488478247818142520201610874426871626849364575099928367323037784517623124808012245279693333836487837495302438266369301450663450259668534996584415190989352551478442565816155353478083776066756220021293380560651105122431296403284562449716799338851993293483949123622314173865548031729077375589114773553657414371266605416728775202004126476309472565763689162399535306075337136113762548991672496900848920014934595882233477411899622774733102772672278910287978001719865281314918859046040824884732005691381636497084381315229313115563404849774362935904040398394779714928023694929590873536379213538404736658175146081762066114984323226089301717053472737247304301254632457724599103474434947057065653445693398791147386910818573659069359078845896484724787251257963953548132729610611323802310374740699282884608965829595622123291273447346434931363746966079301443368378378067589508811296228967701343051471383063654381065156882701927394965671342564381610099152780441923116201269837307483312990969116857110832920147210106954786735629796928047079775844338649382333372285879695808253757565634837323911221760007474142631964098075634717274085517407203213881912715418697663520769473591343663755709486332025333668178540477821157869826540384430457272210938205498635981179814158418440886757346831034672467521621751034600532044179445220334898547734067117863902888732447630205308127721037466620317502721330497528501977613631157022119714682735722306898131720103580222765265813241509758106375522410996976346751861800001779802541612179012043991052603542930263970161543225286126236808923507339942931761118353323821929854804421646946653750431139101702671101725074426830390535153965684357911911485716025514563669380397852589887838485093742129694240776243270878213365732160711622403023467268410853102829886752327719388609281799291926923515290297225157892945543140505389991017002403641363303170957429694186217675280385496069700163654617451590176092116327320373074956896396978476445360288123231196510840461653612369794908964072002492699572386486418772438064146071147012867541674243150805623813499860168385790831803232448296525955193980828247344228274874352640660775020149964552756951185598857686396388520988006647346071747602679873756557300828048335288353059757533040789289733218495700089400080941231905633166749558677000094123349061156108063586368285237321216886611759169559278645592191140853165914833489214441556015429846034679751078853907961293235859953817117999801844430802566228529691390962974832494930947816230085727789132132894148784328113904320807448862671388667150714622434492057219574381848167994661038627815833068376971518244141160104091232023870081296534201521666763075530854947833859422334057070715204189837426024424485870143514144633517478537879344981706940642615191612909930379491500877248734873861320400520499463258377119297789241152455107742391294330037109289063179418726209631919238027695441134906714679861892616018123808790496412863328316250918939520590257191927684255131994824505722295566217092763567899293562485972770834755790212215080090793004115227931272925587196555289185060597575563821700953513880193920038271842136499475382676559629895308879431798401331253791468285355075456922539071675417875782833342550473024870860545533953512191391361502657438365832299706063714734058015047529984946404335079989124337267592541389634458017999215427489079431712232264590931401202401710871194218489672681972030762886347958371075701487045325276105820788089438495955263474856553174977869923128508309972248930584475429224674753653489498335775235337757188073159128251113580064219610901917697483257974742054739611991382247839753817944037954090030832052521574471981096715105105659762234858489512989751133795694649635919355880193826290619178711419408476350872998954276706031441745106064717716062524341999897087020038146086450188472176432191381879784712004021557477843192693328097660320871196370715643267521624252123849716800788190764352210677891916877490352772118532434228118912983915489791556299596569375184707746545996646105697511708291533784593963374036156814779848451341692160832320687776351499754436739897701019852681256228267051995263180458775029596163303204610555446281955360470845666316986650328953059648970981847778024635741914004152597839932027507944300408605403809609893365275772278445557205845778722766156963944944831788183836140347592156834111266938939702774479345804353264885371287586125908307348149768922000615217754110864408664685006246900713269525274164805970278429711175821927981305338864345453192992441595005665970604412446287914893646107514817899643931782112877092015599085372437528340072218561373481974694087327412195692659467550137912978452874480336534066453368450967023040429294255045804007658301072861446926030342682704272581199321308328738781424683842505889043310428446129225067016325755151103274690145593338612566723039102902611972148317972470966097567990215562511687462295196344048001515442115418417059761721793536916817092704504346781138391044890136280519339056649923711929819089126372812201792818009134948807292207670450310657275952265883230354397835242192056518078569516317130844134558341364950943359593165876007876121494993404919876975422005307574875914942518414641745730921919531371584000982726654059864252142644380861859585448332139065889168217846125669302366559222888168642771104714661259520084829509064704501958398557511704756485076162383488088976531614647615058740721040717993389818174291677313741301191176856186707340932392935819522964477509336924942881273986029476014911578076914375235071655785404570866563754483677430760449246705889203613151120590468716840286699517767434852596750317881044064511270254886554217116815194833673503597559745612367872441673759899522186876142912922680524448108000054213508582140333512757305215104974523888266049943018419186891208943896968313536256606847152806067228023451031852564009106070046436680195109701706168690064734732006977090233339745916878956307165307152822858915893094860114707468578589586521678155706593421380632231604378650552468977191476249835688942855881863806854908348477025682155601393031002141534291927577787411029477875986370071867502709151932683231489536830361806436019753768571669948057338667724485908528710455327923322433948504224498746621658089628299501490542449654268371593226130894966380822027166274725759099718043777251015422635176945067049421047812026802478622292942325925864177248336182039011373302771629237576754254726573019835671628339644116653331299553820190417095432859826271342745431514982705019652773358511320632451433216157496996043318903207117022819772133120889906365963542660252282320617992542301293292782838981848198330298842685472120747540789031878705950774871246789894895013666282691292546264730710124740361102980858117424602899201078270162736880570721736198251034365271583744660401027178755573034555479183907623107104046457666714568018564870843401890627061538288008368047489396509470877772198909705980241145487186660823686008361590403141428038445066812693239161061311307909977928103173824684997884422406847823904277759204200955151383690571047017423568331556349340132631919397542839708042950545795345162190171858491136629211068415423658111093227319566372978219220024436987991310116467898196392848826876052522804968662704228932977427532247491008573549704848732519214652812907921610607906740387493070966106332880030567458300612666135566370921257988073051655144453661991605739412821251313616510879925061967123669515775555482814047142785033074647379117735939452415126767377093054990519079197403768180947668563179710233171002405933388976022714496141966139986456148363058803687753898311056643625620287279809400744982672325469230391859260035718025858874069845123225217592038580273847089181292967163348375527888070943257447953460309357942005363847064409570686288641459609527125250905331598674871964207701088220843702259041744656651469755294700050316216059676089301453969603896423069091771628192816746688767161032664459544182658792079304408757463481395166365497906385921451125267177592473951548405928255736662253319719286954179583369046496156459665581107287840267023349097005141407162427285096939140605046428391180855530537321010691030344275723731345752316561047022908880808395846498796700550146472677822394728847659769728917903067597041418245255569506811054812467266303698500462996519067906858681447977003170725175143197875794973562321424895321404817405372208614786585719942677900076049739815680635721166373867363182222926477196828336514466953450789342544499624440819010408100524443783275890653325771727335779159107714175766642294094173141848478008733421436031152830935724552473699487335817847842351905898393374506497418062545772834569157207511274415195489087406254310978370860984778542509261621291233721394705941875487491922321769794955029867953497288037238645411294074916509527326971459790349530639974096680565678394641827226276816931572967327621933386959017236408983990635642287229386424000107230277003403277954322161996620196577272435095516527125153704059275932664610740712077814831263898339215693244970392991812614061798761311332000481315114034598757491226827910211878474837460244455752266315391255818525939583645368228062814160949737823815173194712481800474174787686211580297098507015177546295824591802730636613404387862585699174583971800375170798502502713968285460674991404279476464669545730471521121279600724992768225146859382040058927163191119054610721824369499687524847110245843072255094996213589292942942759566560839166321865450994123277702796762546334582902959875006293588691360386541151816978144268541321182764948843157651993681605792703309670126843672194220747391957155580004397408901118796057378544775707304407799885497990810306371945188062041865458198968400010619641506817246708089248976453832934416005115920537337737661333600793465674493373089950343654883451827054953831647625063834532249537786476137173082286907034713116304853324496957835805452239607886130386695489204818124634586323169863053024060903845087859128291104969720042411037570188014765554995480969540212958204368131285572217943856950436211277211349002415104297786341266556005589916732245491420582622137841862729983251173521753737484194902011742388165559836197672319007756777893654513326928285723101030135781037325726126145290294853363279513199377899800241788103395666201159763717675263241314203066905442600087024970337488224575574948041724979554961298158609568680674464188842764166726076948873295731994438312286092555374621259247838558677267122799457454994148249249501972291904220183181022120632898009415370661387463204888852234599119258115050961024524860083053414133586175265051556516628712398381763954130417502770680500533438578183198294702326768806387421193392708056989486832519100061470093810100425522588216281113897029162978065314306823348396030887134302711971130086999143272591260210962402430937103331377084822897239168779026831011190493717751425783091593489584872122433156463704593306872514075402733624848476469451925271891342949175290319280450907846797933472999622829044836973055100412993628593594252965148341227152329562810516101352138582805754644866649391429553826820264626993574396706869412174142397159327144631945132580378151370849944671729495238196894351119024007895220581719158721249907481003300806383844471135308103934983675361407824044783428637770479396477308134428729466269447166996673174771907758770142832588092909737465948196881028671820728992318660853500600035998637873503863041769970509346155437577257480631787413501693893702858687245792368223279114895878088548228845081453093405169413477042843150303146404207799160918486738579854803730732051996731598994895462936937256745908528173480331812910430028253107553336326536259187665141769704342803581936934018501936017187376889212123975215942922902625139800766930623650898152146352476873926610511349651669195048586045791766644435032939326960032001579072372266790356118501793073442408946561881884088493397705239144025776437136097460276357787058692571029234481345689861391954771848895388510867224803651886692087315338280385870711088178635435796428377819363630997044530509756107301534747107673087126772825164427401548997277171818660600565025632055443085631709599656841938990859091386072237783873030782723500524726502163094799955308744446017035079073590907635916183514807742421979987404650001503227990700447590839959995719998631639347087888991983169880021440916160598303281213970123662783136462166865407086120927441916902879919717837424589042730635066988254875825744773327448352023181042456063805896598741881238666742208431060325930796128350058557798249445805397133382386742998971609213804580344449742065542980635645247187394518349218357707922788775120725983723630101619735781083853344747064540619665694571587475943641358110170420803491310646936456614863532839683289633828851431241578934068427516188943957569521412390702818894025887824066184580832117356686994170256641758856110295659371723392219582114719654718499455383365264206316293178478992050818886835829422645917420388962206753074898141598116494366437674381086116035091839597815021087698276376782955636375029772701747456540900321179686801355237101187173570469661555235460304652351023262956264673891943384022517406505178187694704014936274422173917837863912203581827575063454547872688849154154320538349110289813499713523996786459475418438237202547865523995093410334179693670560404461343000711741098315127944867480232581202813143870687788473392064920014509888972144123983998583499459114268304478157920117636715491831433684494411660638923985791098869324515784828570679554264325274250868120212875733940407210262730710566290596901333632672419534381882696698103349452306857575509088130316142219364336774885733519361040985917066934414326271628073199404373056788439748232728841949626811335073911465874702278931945879863278995820686809541850744350169533566997570692694131755234414425313458544021515460216560802754432010343737690502902296547419638434088605044925442582496334952454304836185394476115857995637549861787126608499048765776946322031123511078178469507871379548498829835698306414708229451355587141162054305263168610782270404977269635590952124360486703764264433520301319437371904566080130520016844851802864012771745178681670323464087441054078214515016115282358244809520758278410783705985555277070764656898476679197988016785836179409875284417446036146132375883517065424375276026766217180863964027804836642322736745737165018271760048494806572245886006129127054990552805778078072402060469234829999302888391623708712359342662293141804581011928800263629321808757255255827167118487614390431799742332623736540243179857526737654346072545126645540530372345578868512397271220351732028738087397594644854876978292671066274070108589512220299686507813575042932531396984713216992389414795816347235836879566675062925820842097247624063207960834354532789466954396284826408463913865892718799903080233200957811828045387772025090788814060695881510747556880419349725692247547014255173972053329232235120877926456548685726891949284290269059932010568830756879227966523962158737404799349076614837396687640368055563564278338110988629934960253951741607574511698540197732807618148209736314087916592792328350234674245103233548476266467816009580926042379106040073717892492294243644618658853684921894996858117937290410357537065365054990515770195634124885236599776313375115431017453793245542060844905075661111838293331787212099583857811161534374286104713949694641942161783074489238034020492764075306022249045152492421884876638124279876846455734159011050752395357931817359817123526312034342398239695719424093024535860657646625923294324983493213001685910878913870401676791192205724050137483921681357994777673934426266938750303634176168139401916367136264377634277214036477604431478329750733615424531582629980966910411224075707965041466540987721246197759827777543308009236515080910861246060584141000084739008298207994397426367773155307422468566138896653657975167342369008226722494056778971809979386697884789803524049268128013646445468857481854022754446728600123216410368067923030774694704215848751619499760494873176026615430472581407129742260773776596236978839835751022098927429247206173718050175970110775162444159617784825883489327581004915078039223378381535490376845890232503125207509270296010823730177924622362421233078002752683006319064810299501699210200344015492169343380925194594890219145655830352637269507709782784536699413206318099592407794664811591902714337606099774639110518430210748998579797017517431614543872494664115802312177522997359952921531449305141691399594809932901582676063952818487711205867722909860783198583542935177469256701837824698376946824570956574332682442607987295757401160808213395138309028135542494705827534661821997559386210253741317985692318939098604421929222659232113530558325157049493366256082341501225302211232563809068496647597565376773769291976250686096469826393914718612836913561436501782905454127727373179613308063265876028347238574689883258833338536205482510084245190254360987989942001015313850535992771498103224382744741126854382417886009991848646839869427601605496662276360629009808764477053382067177916906555699486370676286593035672554139425566116725977395862752760321665345364620664738575796356014761706160043799132938929325676352036949526862086241079745243236405375163377364193028783592680903066319708444004406348797755433291255907466230152584964634020978916706143807664536936884291170247406662106642349500925980901292781567370040483695414426004594134240466520728926257654821958636283104741848494154856535964831974517111491266518644702799077934429572362078977564250198138416867793300774618249816916452771505132165076471224382818392069061687740934696533102878025851112329293176052597716132632253073586189018070757103036057044448495953011671492714364187372812970395268139771574164448720879354915514513712783284142443463795069373696487707636668450284904117426880329723794407963802790577769820371895520683713874558260144769026807181626574909394607407695309776701084080894027778055042262446427819808175413048816948387449059822758446749354297128999688033768873646948434955146599230822666299443961852225832571044172090200715154671915176758212572111769968113901247650058513853322116793356180399488510496259705398133871018758900553550829077293785761304018212345601707572517601431332964913544961023597202321190199643977285441727053149155882168057874045228717001708356007905306955790228959182571396688185024732338614761964493652408512813837222648896717329512313096389594679242962072347415239138495479408262412473663556940847703596924154729150678159185953616556433726796424773389223837592757207950988724807193323082688719927992123512505084482550181216919156855967349559564107325598137238221608455559305477503004944113997726395461427985061295470378065961792706600317414857022047263192543572422746909740465029168645862728021594675301528733671477370019168851707476547603171825741004316223292239812968028558963793926078872479608847005543267952765620177868227022932088486555306128418700338970203878276810743866946073341182828228063316873991938788884722224680674838839235598841007854556647143648193554300031017182749527585202344266711778209981333978786278948288784279503893846252792240505520192737946415689548856894080818910907928932975989133040639319295059737953739043274808178301643338928723480892546671916646575192359629469874798169335351058906536720250910664161408770777375053116233586620139764179913174144412263816338243521861326058428238348695813777790531820224943107640561535650416241130329645002464700351251208730394558780737513526630615984486783028197616379317625296984289303054020498308151876519747267267956453634451761885110966292609426723491891894635680241956989619391984330006068190779866948181474419306796107736139228255491239189299440305099814910457141967215828438061911371522174249837535088851257827065240077009288379287078829483587614583520131387150881032525389470581014092714550921554571063304735538378737426027563232227860098825968614382660400042754041876274061997686026472060011336369458335090824933337373580573563608607381345236724708192034779133447841750700764750962496444649051199170992614540643837348044587070654384134890404530811878895712893846203619391457795557677671493447588669208316541086548374096426077501723645704248079722590325838256914180078964227479603966330670247784033140275723467305268364776976249675283295509112647228375243852943232039353351584597484414707306687063092038772440779287993503802954053254636312272509303807852245846988214824625767100598581498170368828221265203801962180335843424092551072544592398472045432781194301854756619465982909757567204245728317208756171731945780666608689881492846013329857474798260826302900020817146166584049935212829300523330404517073209796800048309158393526946876436599872175733880946316018872724862532501139441644205796982336351019386240263609981271007171214824195647392299814607405887979214465574816639947393032785805061875627159478736541641097088765635122114810010084243369643957439930169033326872149990295232135784606728162567954896781326078835327676855413450544404498926378645624274482921445120135759684145289037615859891903337965419239468852928180213703600719227333630982995784533601024128323494459386432980450705248434858607703998246647315696451751012031590761181190221141391921362819282734833392564121786297708025984811399259991459655688707022007499163275370419492046226134165884706503148541168212912675224708651258618332600517089543226260311769385571900884282745734554224068526670001701774336015811674917380617521261247652790114029803593853415654518950572233222256348420303793046579542186521048555514812124395530472919979993758836567602865082514657225194288870794360189717862522729847066097618800100592254714400558542902778131466799150704013448785700913891303757010733245275964632627106958085738102501061731139563519703820161833871190499168751779516817640115768129682447767335254577561927164607785126126888643742407274981242902110209650702672527294433837136517490353087278456406549789153661615117584296497745810908199091642376094632487757251199127000209981450891097524180115540122700740862585347867773783971224032037351594424430435493334173477500412172866030779176433315796644827505024240307945037286038595114679559805409276165182109801961472843417517226939223265393597136438417154396921424744765584754106004201781068056184813249845719432791725983257716941795866353515887705947989370338748373637872765872975073717527108610099891710204337226017317195421352880569917697665888272269781171401695456364263244713380632294488915887724559015622076632734464307810235287866882839589138977080380246615962511330973112061484261243260966960130107504122498679974074312520957331698259381783426895297101017111347195002922629810049167232142006338094277402900804643050059915997607281232659922547451481036560828289673997657774349649997339643349425565729002186118514827747070123309303581165904667768389144562579271988206086093626746650759999521076864716241982204601449363206350005596020695561574165546302851865311224538868159067094919259573934633892592236152513711285402327770026741998802188876267883670784118816327525325656597625587605571862114880426203448258434298286770624314242759837953765116664624873772348483435247574550847796106756144106075786269182238988084036963730531537525061310937650482107205042763331999123568195735698807712214797077521221802679846797200708764525150605139129981946402925030628498205409348052391601194360077600141787817014098422109204481150227168089065891807822594729431638461084527122713541487327702852729243986823263253847112019937665797328436195437054494094437560589124446224758159807859341677824308464214817109332129498167203144856956251093299461917913971884785075769689658458164007006356393397596230365830751284232722968430748232350769545146179057508595122868505552827583464446846101420917754366267016948305542556407064109169960209813833643051212995424260883099355123391948324664096030944841622744040232771114129386371623047065832282397630154425018507701649116318311904307461697729053970255091892722426909492720857317536021166389138706507075724884961532483000747768702050940170728983828196186832765568454401781213689429124642512640641130959575236842422332572078391740745877276503968605634158308927550062600330651941250542683922302373914263618502884015846634477059990602861982142530779311047914189610914062711726869427691026566840435026872935214205433780296664225361312405216020283749716459363675753402576333686504621092902824300698202722874322859496234534707073762370711908864862654518246373564668094802479418577711091902365923769841552459251986874366082024903022854127701460081672582887994742667650624663927195437626822734511542075868816606505309585563936175470589170455725870992745541107227621817899583562568898816591847568606358137183893649152022312205360883777872868160365974095012321345352041304520976687205116624778708132230064623364500185561229013474254025430333216922113500560078172745097183857828943070683899938488110007171355831276987766851829598139439076672937993335179535247143532612932526517400247333202110996069980230806216245085137202046435043728052065073922539129421600841261093830532456367273778218016556715355140699647580282075294874743908209635007408454492103867990115178958378000727889099708523127114947851173018556602662100869861997661261082463921624067854399342020823467216666654956803168289488116040574257128777311615729473974369308554670849674187244859319378217771043369349792166932329449364656012475921601817299504947527874021622105507460557118171496284302821090923904851174222446842021271647162035885179705430753894773229055683313449544360059390622624788102112672884295174280123499744204577184827600974253662016385325701020692438710226937846784915775513524777850284896256045344715665857788270155173247545811847836470339355676818646416904979432614040993208551502679840967938902707033520839636140934507573841710496815022549917846831272046001034834735268103231658385872774272058633383457887492451205780079905637633234345358916099273426557831667925232880875538884262845113894638294453035373046379121625309009928716638614922912871103555951556855731936555582785504476820557426536319190491714632579380095190557129378788176870525872680508579003953883984787468180705386570610254199412599261723497687632756077473341467975815657619710632290643825175971639008945474692251728045912188275322869119576284339566531779184125857723942017826573626104990176577257177987729968251533406310663190767387714039090656106569835487937102713141548655941228270263165753795385418561833139592647101003956698124321918792667712433241628236528703285406709650702926191962916873330619948991342325991385871994237607208433322641496498915238610098278173173902845597968365679278448711405511278170504956740567796009142416873181642843761123860209066768746385687903881210308295237978081461940719723155761932424605873262621903208790978046076971607997343292514576942461808519193828763345781244798060216908704034823917508177657239724872979548062786162455441117662432954670533876170911565319821904718325503748664196823161500866363749151488014252381881297089484861057766132189286872487790966663817560852178270394317455145925150372738585762162089077138991830916705260158728342942869967635754092017904639458131486299676859639767760715673336473280984768287670579665696309989255923541763197143537924513762108326249424630312434362308993108646616202356828242995829191847886993879117990520258719580974061908498231206468712829293940065393276832274480410900073214374617673911951165782604899483768940621912936593149722695481330548237481696958511067463831502603929875415714377836037572958106135962689695277593281797821996852309090324715632368513295837883900105530048843205459331070591550143203362790996999781843625910168763894328955792712571686635569640231991902071815804873812336144240884429275413284777929479251502393002082113602291605130639994124366356451091570637832857882409516174448008606690030908262546184392926226345630966725882831953477682762617309756093297996114966902395302467017024642708219131806611050401998121140137691835771789336622763856998513336197412639780525493527478245749125299491400545625282114760206262747795559236929954656061609543732873047394628507823473881423084633037052068750367577961740802636793180147313324880391375004920900405900511829352491500599111054304640568917925495144278190076058165529873292108369119879963246797479338243717215026990171417984540361035246949800896488251580495378889859597238837818774212045817272307334820455049548291774052680944580238721605336446891923872592603353165063302776234092001279021828809364329212849565597650664724889439995515843260695228108593947960771426822461962378343478278650738179048571711136284960460913064323241710665882511740927185798382351756245950694740860112135986234830282512031311408719576364301271460585836383791993285744622018539426025300283638931901286792338310274855451201938363483226845286133555030027024745850521704677105021797601518650785545044439019264668616289768031004799336632712986395570263764741044636665547907066698945092007017397842892021228519444871194593718981279815508704138222676130908198090917205904575544588690532044581167339126682830501448691747902943413321027967575157467410183478019060210991087032696085848028220342109130499989125442555255844638564699086133556897216737154768094457954607948461185753340041830605382063301931781853246395235882427619937053725534886106622061391149982589664119626771311785445447450370275493847109888815224913887547022481790668977762489781545929573774010187681853979054927082700363808570187532639199010528114860530310606490116758141827969759891925682973872661254333967096456757678091930242313525579718638590730385830433342983874661759099344027592987493159276892051451349096476979140435827700043667306623617566397454240871762563713715301714635115002135828104511241556524535237632749142414827393541568361693892547356508820102202952501949444796367002207584953472115738441537398750898849381659198438528224927275040675564647281447131992902548487099587863227172953454701930022639476789940253975471733167807161435011769911562569925581147971349274077911526488098585683875948413434305382832084588578868348991132583454564154479967183054135257166485255828222168204144223623169867355791786717993289534514560659990252898966513018312065976553916604045468451822931659060468598091137101336011999418323155126107690976358735586218255492655983404001276963790988327392405823882196401529029197263959344208174761197060439107579921812664014395598217693112005112868241792572680071460990197100059441389681086567273669093188357909677551894768984189254304040291681254862868491316375516992185982403729266994570197598690148026884933613116611753985648285141791488555583699333272242197351452980869133213394823113670305370589286512612211017187257249640714405118639390228835143141333554474961961471713398562251571687331044340678078238941251073796516234345377719107440218668456061713144046599287627901581150111993058187229373299654003375125622633686614370337414825151261772183966241150298264851344883579267403680394645384059111256016370218993547787419204851103017434255053076055359487509563170116436708524399523415908752901031640355573354331798902869071963265873364974713786731531285921614635749844474425624427593074329131274197551441276937445701441791717556257186963320662721995527507622481392850927488542913583909464508827185716149223503500239146760603673120397609876352719290518125887764825591704345477659676285316888104194440111052075148719077487986866135722824328614358111528295869103135348441825177808636851458120587935171853494807543512879937645138324617626420034799886281838981416267112586773429946577151100840736414174198415590806090802319249903294637788035385375252486517912344369350301160502313819459246263363956570838223166011115193802915591951340024587654159276522260293687088990725734875203689425137319280331393529738588488880366973486049128808553333257704470114341073104789895837036724183977998673574434912740491121685271205343019158870440159054585054888276863946051404470402821974608271073969223656253539983869251783042534993104657635306825881195852905360851874723668849281071726400819527439569900112656875459841444233669616669878841547496728334549965070677349973136630947970361434951511466586042091290506537931943064131174852431108576681230065478034509531818366252928294770551476935083817042311859490380233873788849641534887459382048073783288241409667178731343449378193937060911251521198435460643347425061612560004178475966686856302561110568735405347669003707349498119973497996518600358607746626479106395123061212245289658581566148698611762099567471179796649886009622051689367367961638899405601780829938883356509457314037029280878968871373552022709485825005407803617707131093717647030838357364636298079179504080008033114053448818340597198602932293651540265146027793904228462003254353517778460961517548768629812699844283057662796097421241545007150300792372605791769094270163178204041623202106533407342310424429465975551317451262040244237205895699387300561470305855043336890239894251870223481725809214766022099301388014222797167333868420803166964638517710675298065226334193996033097533688866680814904774776186513109204154362513957133776722511225508520432093726770957901862364614061564891627206339776759628504964401311371974226107547791560709590426494109105357903820813354452597823914742219347811315322179557041187210066646350671796695266866075509300345166581431538919869144675572039358832900295148575759495380953041977582774490716884071034430038794364145935771155433213708802082601823645290455667364975461696709956982325672503325925317056380680990670054470011927612134757562253060819513882962272060643761616120860135073041711684433585422257140129594634375068710998598731852793698484803899785272357102597099962702792122146585500110465654259487225418410753470474480966963114653406225359463567872843984310163810566060475163469096930871734110033234665573241298139792325790812800849358839048617598107264803540162995533735518867250251552992816667791701814702036764689439514984603866356987981861971939887450800181263659713849189401991312447604371239330439314597480650481053733319405146529167858035717854845188449150661072200691037574768458706629728887800232782965510371630220476333624793442080869944405363687493487608876938341992143171426099499590737218664489975836366652869614110287064227625424434560542269379363474379764979355253243231060658510903392769021766533741804335494489663637519095331494546554876799004693941003554757849714556427706362620432938232495123575128559425732246858845100982072917746188748628926472921047601516936144631573126440361240716817075762578908565758922075200834971076348342370908366021392024395322870776234476899869215131239752709359230309616606586613478733144322741618512217711539029705429073962385941899701391207864028375110002774391900311489612094309694252719810483427346813661745832767927925622826691253663856431718323094667193933286374547355162128459810286064376801017862199444196897777961567034996019523378738007245861656781583594297751180956042861314771415704043895617108027377609167533590523095960010945347465368979853550976608311098472084524886168652291869358729901459667047651426490990641195149091877293851857894245882653459054314888177453473290527709551644386025799514327606997631984851100008869808862504518042177230114525121571264616802386763245273257348305787201162758409181059318810493949032244591445359335869651581787087918922941029962903581129397465989013223223846046072273894315615142822160747172084438621974011851143484422817291680459315213670111853034776006920450930926272343643646768384940201104967621512404159336312942262136142735898805580125705993345285911886510574754725058930643165735052472635336192136324156987920468627843486272815985030459689625357265819800169221167854201086124323608165085587163735938826474502822810275239063073275596134006666624061454985853719913525447544925515060637922815743737602085658817119012879175504813162020608511354672961032230506729388001784157838991664401427108981227524653045662147041886096278077677554413285227418449844543505617190739846836466310854608628937097390496424869590420458107934670645559917239360846443540928329626544687639948184482465600686356700277395518149837796798797729351659964985562963606756579382903102313705301162416023229550452133197287080330477402114798521253497554548139419575228334069943930197953426363777552947590086262761324001336700934364466708212087427201506210499715080168941819134338796754347297646932513202485391991074503913461753634568873509593918841527509262574058225392194823934351396815574239325157285402402593157526448206073402351177509823318658410909235059863027642808591566152565943915396426021792073292970545479130960300334858076866665265698712447017135192737063192700000003161414956026877320950190044519399888666147618162462820571782587582687892636610671200040297707632205182810547752523233101390338603219053324265075642884904737882661946874110765012974771042793375514477137686652443682664237906178554632205275584642532866520649160165382054272763919003636412593328375928850463305103599841670888466106704409536871964165612262079362709728582750887595305287066079478656711373969594163616587487843412978131540742555017069609453542857287769225620816634056344671269671518005234705591920357888569612534358468830470768210410290595874668938805201778634636586105977785529071781631218164968908346375811105961794089928641892498989606228124657172521957147726202879804243977275236605514599407742187539955519752534558032670783719626078711983284279693094446720393620457652939263929840259044776973314028724059211303704958051483418302636582767436516572084027435256316949310110725785983571310707793569072115884389097855239709028926284819017990333517797623022450833094351633277842108551914568419546277529181908724514138756100110773368072378949883138351694395914599499780649768816513756148070726200765796517298825073299998955098357879629085646292302857762835175601815609986053456803681890219032035556056098452738567561512263517511672896319647021120402465552623029606924772486681965783402691775760734273184506541677746938583299955854135291801938122149773064458773073034082909630838656308542812386402506449507834118984556884498306835664565411902131024975791595061162917573886192456953583566174237637661838610304224093265477900508109234440361796610119321360571184129516634698833287046164350494030714162129560917583378104083188580135928384646090836413631992411196308052790922492029319515433855336728841429683397863397506113383636225130938404873255625935195632310363561048613309901206458272263887791606126335212712678845090895025259856637951613176578981309196281223570816181820521507847569600742660513476809898470789699790042166708478229579969710435395026146090364534036354279853017995838348591875823633465346530252446912681059264545730425321949208966978088540867146277785046693038538845956065775114235432751942763339910660356017379791265639051602453814677019040450157702713217443033796437365474343635231867323318364349732858318491579506997976901886592854122082944749827769913625729017392605071077668832062854578032424010882954923941227051430474841545941700901739268248386831187104142210798461327386556329852841602318114944508378258738641171994199606056735488332245990226622414531174787604688541564696905210467789692593034020670757943861697291322129335226870265767932362336006946913552901049886104857702840690198853153939175619929945812891014730898182786588199169647142032916334200699390926681132982854931009220017127587261714057608368125705287374039237657495198655073703639316436697901715892761622549436309253243968394632348018074483660568161014010530544181382275200327202303483922191051759242214507845887639114464240452673340784965880438789273719399435509485697112844920806378887780945382082789588259790229077395624769504760212030702437690565727999431147421436995800671853701980687452047778786994871470912330963801670298655176641454146613846565706648186932117895117085269566592821917755938392154570543662885908884818061920715446529936775193366416609823683697008052855347547828279649999701006128086940628156061369833499881074779915472249313795688796171315092342051846437634668948532744612859674111485400464945081809453754331814685880078796296709349927286528188176118111890243000947077184439071646797459646202271910754013515068176425104657562983637107259427427188951613110302881354032403453723578324194649045996484092945525186308528172008911103742699074484126447171615917803823058455733650074349942387692890431338507922058790983763269644787745758470782580260530915430311568682060617711018386494234837446310297875268020521255555487866064121177740323771841910605926974268462773184628401132192886952523566317047159679323522849380291047133616627394177698046455679621373349610210877916446036037065804090196177769150033096452279839169213953234155558126343980996780339697159499260465011212828424837150348702647223982899519954413745825905832086362279504960780902844517375916078559890710508920926058281875514181216369915234723285214148719304939722650904469796323669656715875078376043256951975560711678176681118483319955955116145052055099253020024963624521264832072393191715317166170168385137922948497686392981590420649942321146050520719118326633774599935274750730094902429490222188102802961134585653247220373201879365584376298734360668397939383739894685852082894566718452220691264123508956013909985375093323486221540186505634443910548529510880700395443438741213169364631145120737885187972960151943022453096483344668866232343549370133918307086814763544665664664179329972963017650996794857602015810652965686199873907375230910702262122225737553246107376496806389737154667162765559102406202056134384431661097601115620478255429465611674688300175074077611968818273772397865148318742830142657155659096832240226557464028479012352887524049249909396344797044534331913146359037654973992874377561110251422269945284704052489558771075185199309425108120620944058407163451818393359084615503405078309556393231558764207745074390061475929494885401110607494185165235275866498537240868385293814162225613217675182233032498428436339825891892959044712482400385394481619418362548045083252356138967393693197361340638404563855367057551433274173206176342172449940122655803951730886715292669469816758723957593928100123956229858705936023540931570394529165364522990906366314405682183301070159764849751553259998205481657665432922468978035959300858144796660857771784571219716787831867921882106104525596111142395303187865590454963244665414871021982325953031241950346764227237928558038194955150106475611591469177068078712120331143356107484976205888250249023965173270072769761062358979882380078853037579558695541060431537542760431612594933687032284887945141764682174912709593518449916776841331967442552660350845643602034746951190744362978369706589684082513501788378531263520963829088852389351947265209289606029925747589295219816011261881508400834068836982482200405320580257340631454842407353656168143820923222515738509295787525071336365314241629664174955280161670352228778138484234637042893724399540435511419030398983437891629784394443454473507945159716222807408342323297228699468795330235286025424782414784416569795141978032839783204947588074085920706593418492816381407413715811438796544623922270498580078776339111331163543321473854414289556329607879441883205224818771475594962902374933873751655454159631765874942432910363276894234556513141979381152719368238539116539771971724037150508175708967871842920597249513793277038961384438294573931234082523561153109314964887172463891204133151410678483552547834099006423844514056672778296516240981388988505942932830755751193982439026754732466086825129242283568727693237383967046848534072486609467583832266763138502518038995827254843798143199077163866996340657562603440831678831590835496480515100539038904202881782395536803218757145723397252581908919712613271461925063969607774042471724929757570855256780010846859325511644448341390722443426920116442438760918037087203440944285703707152906208200253943868962102663114848554972652533195606036174207440368161146440535933541693349082812180383876861575750544948442114255406188131065814233281608956830704982409452555432580250968549943510205348693867136126374494777152929008448210416494206718177203954043412289018127452397408672335871043780451765675777446487056873281051843209465544685807280265002467927033074811251033195398182458535099490188752174519988045752271805000095662811069434816360971349873208659551502032787058527550653609483974219885931209644696450451473877094169539852699239176302386094775012212854072705033942295847693127707597881981752678126516815570708685519959737454337355700836353722416579455665533039758945570322589490355738120055833896310284856823788811651524784941418477623200800955370845929230850178228772529689851026937773417709209446168245796776665186817957622112255719784916611303973136380970367874757150797908316183986756666598561798325600525669482495622942284657142874334655156081604338962274731620132443871715626213676862976695763932703644315663085653250549123345903489125885212604119088746137980476005907137505255608919240494472343375391910100458993805162158119744135624631170811777879500341015918361273935112732428633686326678672171124554844490714977942103828925786570612435357991547012766218066108333041947828088743678369157769533119994686334781900635261843844062376764384573755503445787488804579918507397157319548469363392147359013712073016637951633737687874052555259664606034354521279215115903180228945686057911114554914860645310207052157860690110836195291439612190370479207352189760676821233828237874608771232111631521059010121036786326790475862661136682228970384755407188162477714996319821969060289987179772087507564437304376194635303794964691554043735695832234124750404442703192727150458107724540607873453083925301381966445202337756949934448214262175112572402903014890006130983270293893784210942016067451695120204624575308707711190591832529732529038749363070689718667611433128154924205915418177604753050848308730547783570898216074293969231232356698490383340273252879956626167704436893757506963734780669584503268362265195229816167896069476117127871264056883498581784686011739129775572977488735245979356849721301616111606999980140090939370440404954296012736529442118184328444730263669120458830930836832350850865335954768961520269599092605195729830849276623249131118536777692457665601706313719692026511210244144042806504531031492126168094354951481563400627905844335167640602586348674852261968844534060452261940439847450529490092877309843230505960771071771939205759706028302493997413356387280946079282446374828210614325870789456370674258355617983082480088516268531588295461256482921216908540050592195569799428302709416027274465237583159456619847936386409619784781203028317563365652110871701744580348386693661716849600984389204603945478262849191348741514145831542166719269127227172569865756007745288255907457940822965205658553044508521037729347907314813144066758923612322231904224618405427697345019441391607871600332256493388056611005091193837389536269309812912795795038447411940388955756274578476634711643187507768239817238152144918346002423887039334564135146887527987608035545397047793177406398083549541701281287686630132211897295654950579652928177240675866414676491748083003919158008858586233350296199583678838859019875064606189203292126152003568914513140421336859036931569289761056176291354187140829372094008195067058008178665672600710921886127182897674906032697728214990027261577433434540810222347858663015530167948419972871417154470297702889617165206159133009896811085189674469253752861225869136204450681829863284041971276523966446865396550001620810774653605125723343665283824569541109101052755228400032013992411328833926141150169198126007459390090273567282902573749672445162231610289121607053190579730650189528695636280705209835007909292728327784450427879237425437154148008777355555866368780272570428646665207089713745848639951535452410687446161418331223166032780157448819394399053419096300167813876955306733710278621823408187456029302098249339349021827483811942334387881335605743881327028099794119575159635948507729495280286687297917176493883425638374958261515928269862106966080154640088914855771948334265823912746884222965977866148099681150585126148874124118409668853530947995424182695990415180295879727006896189399296920260552785805872440185485954251616040044191621132005531092409809545169058195705073016432251514631310742437409160233357630039459974171141797747831920784683444863025512997878783733865506708546699598492894857003402664954288815019672863060378283649020234679093799506601346307730010318628301205740987538071346046078537192217032247304352958193260520383603516364152882406415625592870629686388348115201197380478410464251165209076735963854179379989451534236950221541913334432595921248444970466850489190118409175174811916005920811174343400520673530790130125637834408835585045187008316713232656466818741791841264459340801899356555839064129732762204100981758650656755533256799783249451684479978682976331856205680560668558776700171511043041345178610423921674255532531391392210708196370505528244549273606002413754129118675366693012437113956966956459047236938936635850803352841018802619042087959583414619664294726824816865191942078382893556191266276551810153925210521015132897012265969854178149969855249756040002407148460171992519165874002673243474163005721474315334530754734345935332756956734206032202650018669505103884601853283496524786693541477481842189478140402652371169066222110715133891297867747829753342098276652344462449684563215992926995379258677175999202025565724429259641209494132697150111787498293027628764300801539652416481118609619047574586067246507593232515472328129207239993942561446045049747305873649240213156542256151371334961085170810068298563138568539005116828411391361940104713422663200596925215320930786991531775206898484828393568430360767704773697053876367676237791762477586504593427019510029456018337240246893292949899128881700263724599647291794178929125218433085319198068563082804563755269682452378384466210694928610202185112165835175420779149537596265035909173753271185467956946267788089339260212214104990571872879661588461468635246551059660180389296572330624488979845648210134001923620820312629997059508549763429682290443621204434938239053317345383154973357642272278167376554679719308667156072053315015913787090883313193469294004222845204204717894464856519145071214640353843572110171215468173732755819972779564391230993230974102363841790203969625337273282068798186111823411810710273154746666515317165394431838892699599383156119466531244113368756033111754342849776237599670325460787606392252529717204735299690435040194585119702769164664513049622543238520272487001458391569606225596278151128999941242158075397166195597378694599523195931283107600224523363516783645510029802092494244366185661486807855966359394497778468706814078573812571654988413656568639583954733039112009413309157726947667394219099864479248704570635971139089751230680684746023901765695816340272596942172695329417359638196218098411458591984172935394208941937844886898554261746846159514890606623795645936641814384397908264758972612776142257850152333608169414109167234838003535215286234974416194020532258030096810483657086408962798898609106990312806882542913489891453436671642156024818514735639794527206857073284516193340122707220087202787887844709605726990714864766118324831431501754909832300572111123293914688601927846117447078752922655205947099522390337240239624765953728268945049011263014958779631387684798092774543849191266463937318669775125446362034273043309688068787457755806549454692421566317752489146500773895573128814892936213614806623315595404525347553705379087378908744907676073209044703784204588937660920477067744537319327341625507952527016951767303765299808793280565892952098408039920775229028116762486756763242380529755281816743900890732030077288553655868002475697545112075453492897819797736035383457994466411211093925131599447957687425258486735323663141099029050400907808226953673985642021113470210066648326858324909602207032628300294543733605953437051784028732903057984368109544398318367544911428640265623329455071335158026166486859734464568520764863483992245763380967456266937700566436301800495444902934108594888353695197747808726906342263444991144464698412768670506609529343254448625783546130778993124510382936565281722730374610470473985076701301730750961778016846009088555312934784182595861179655298660269876423458081162224117858747557898408707435974328631827454042533587470306061203199208013427453883217246556627811994581659072134011025159608703531247832318140026901578058526157975959422900241641406319397096677692456225279237999212408758726933931876800951509426706489114680357746129263123763868155042825415407169807609682054586906059009404485543033443985197089382240897703941684865095135629378075278143355677157674419933329188796654588592111515421268319936474338080786661626955497472424588763805662940122477075407623522632043981512694111618739569442670370066619706834957430002043864822348459787385687388357146248893114402972980784039419550843832567494922395960047336122504723330666595188669257146801126905310818219607114865878992143400346179103997100636498790103436189799839177601378556651739418003153351200157163156019175610329131451450025816210654544946132653331224587956384826002129583657708902868557045215505131255861511466452030261653004191336112517738563173699263368977397189281258875492187194449028277306039375854739962800183235735564673561942296223787846311314206176687123822882122680873757701004606657962559567141109610489325992500559196819572706885088333538563302580507819804307397376163480883209121994319696656621859852122847605132189779822855898079933226726485322569532370654182035980404151624947027301096867583993531356139171522779414047343947062471798860525163821602863421217176727125302756772187459917593511961098315148602562864273276572538483121030943580705428914460697416235215611219156987208171333621487350778398492034752163645071554918057157055028334367247494485833003295505098591166784908230087185143530711719560927614497688604551119459648341916818805721914647707500477678217887215159131186067214801895226838009726225252686480216984773945002793501383193482309845264522638887911403273792032594509538026377947887501922666942648660404340085005371502136048407489215187035144719468991684683040390186240153317659895304997568837568969720682508672948952235361200187094506523695028316877327463557937745672691042646468036364845374045450320391199677348044029264453717213648321529480778076377311167986102980724292885240534014260579421723661269660192686749807764968185660530579167925240666985468506211440014010966450393672471302707461859978851461749161663753426896602272690521831348241681001748454777744803811499296195759420531480983206208498732832643574601112693773501062441405102217456675272263607045430131035249351967435412061672427181305888955774392916654535802338495300894799117938537021058683177622664496932696977183876761366170408236179035280835917475511304925331492116180184426536058539189503003551538771521585900292549652088197701567628301014568439000703295383707202168825787028637245262224276180368786702346834195275636435409632619009805234712023370684762509168319891785153271122888249512281947972547767381552075629360417689962490370843089480319143395090213553888552461274677750344588233692775752409002582208910017732652913379715924759171402448451191475933797794135561227012862140347090456512516235023667785634708080740394611993177397725291219265861100321484459136049705864004569536553510452766321842297222221398457481227009122402382975711928483661709414951594903679281143209212854615331872339577746176265303894398236536789976066056010779473462072542433183553543871938560046587061912164243701588028630332197387526599212009608684691255953235128309066457213767467875555378001505111697510310446468150444457008811861744548039534378194079215639433080925153414625567150532493413253905049398867051956385448469353697130946327594585753369689027392831767494922114422057526239953875961261607024174644593379648233376678072495443730587379808844037113680441635437038170294404458747516935475038851047789182832706457277436063638486406694199740255781431976541822209976414049024290774732819086880623299287664577680682201848854398378095827625132849032139294991915613817083404342642433828933529979892304377602258453599544613361310815951352561836161092074338152594553858340493939455300945847532586675726931165342958070272689661501302513963331501176305130828452952374313111070526964219946477102359716119693948670851935865078932225596346786174651622496542189564558656442408107066886920609846089271029865264376825998249690708098603318907762778431205569961097972632292691075686599197269626933636993646628324337907113574583599432529733906005755616548400635197683016959226393354362330557190730163768416187299798878691370559581613602488616586822255502814380331291852893396601050015193658122185483957901753563065187922198593337513910059981732855366664641873632811654844463063747749934843513720131059574447052346899391091039204288910949995083948233070871265838876904706135833039567189664120803784654222342274981174805043194655343332453476039059710876018254248264247816495001132771296555667154992743040250347832370349728680333256569796999595719888055681029381344615890555790589115240328112336939065371400321043032445309557658526704968588684368618945832961691588735535558403933533915131143736687221822325931760496161027789035506462566481051499183224572434907354078568253393063739197541798826787745093791999427284974165969533944368765200812679921347283910664522438849410245642549132619057959563301721956453445237230525972060198806760426914473012367289432035038643359475906917524375170470749752819549989699414576046490839743141027736986483107605266597285778883733729976724284572606395764568139891290764811614858109591173954398070151002638486860252124439207328220732677357039396180803795965901334609496776248175601175577637576989091407584203024695708252967189634062536675896794453331115235925915790541586330944117978929279813901552711259645244577301243495880777573185839141466974000243044653008698010323508385731173662577741980727778157046487488650899138827308630516957708693785989412376181478432330343201492372679301670567150090838481906849213903163452551027578232429636444092139416390989312200951009704909611376552139579720461378186374117579680825025651337373357081024684971448664898814233008521113283164372823372062306492383653253051957682349448279919183633022023550125495909270904457397828013042118495339242481361682103176210036454103794185710300621886368383917784095869667878399313441553863875361133634732360066862684868938865130372170046992144590114607527556244365138594207738599675682233233261205787953212164559705172500022480312564113180428598054202401720820124309665705914603739476222861375821434035404368701024535473701973630418924678209540289033627942991524713043752587576595473955686335750369807174759496238256663578516035489977117869389235027815244231125780559128218154511108402143935480418612303609782416122740979011448967157604016841314278668830447992600764355096471931203855796728619847427767139459818211470631088004691607666560168164492560759051936468862056588852382388459251865248083860386356278229342792403112081769787485948934815900934253125139480308252933107703275610178663386581155898385489268674006134465997131472592885785766699787347784067210857323255655964377651064783484884119739002336118501183710396225726875892846657338932569292080332719585700315743521899641767384477920741409594855442173085354458732573635355065004895779863883333657892091107296766959535139624410042766800272898198946191368716763314071507038935903080134316192576073874280753983754740618657789870395664930289269878687887851095754102231611019193247796053684108293830689362963949875807438378786055669171816560072002577406659272066779732841997069592494970531351135724052065746911427813842807986557886832560560344035138218994278854820368195362035985422069342598736872014956559997917848601701463461344836529792838806996540058042217115793486166510976048256506136736906646219117151953035992925469980734559998364463029088344514490843982382635743333955579160194910252740413642604794831709847043960799157419647101096427966092537168349145552387408586135587671926019116470457887782193228509543464730209250689644144174740969363911454017565843863065494275327017704738718715576794633153546857336926180145361017713578681290661017267830028947695122797932077428417333969658667998731526166349396179870841759140793653400183396192802151696689782775480773001566370547802946803006601542852114185138318939768612439866679821074579717093089074215851475700462744161853941179401801610115882792867611360776992259755964398419983457322789512620200392780306360607495792135904207923232878578571378858412706199346860994726244592564902906939571925378840494218108983525108180231853157747656007670039677248566167152760093523158032177759892356557389552407207920400828167665878206885921740495347732009593245334236164954794576424668329950391621313400889494582950379424310774774162491413283964606274711221977193405041296845408202345752421997757866351766631055828374783453312859374093134267780442464871489850145237924523893061033995060278728846220236490860800202773280885869800567104974073344262887085282593459632797778796678014729494540793529026695732533193203282368469137741185410251253203212244313178087421114623268968158314749958363791977944541792162642175550513058496596006863823092854770679333891054746945492309314777485275182794597770875141122625287021636913061755198006015815914024750541453678844197907109023908702015765461680236451851560212072854661842537628253150775015799038879733656607248482513263790403433406026638446744577219257227494489006838797927938947022695226313079548523830151517536569441209579916291850039288098777023063542051694071776757387437934730451281647814515494947146858962641487472840489959187945102080638575627428089010648117517884805027894507583166822298656319978949422245578513169739342340455840931822281896057385930874518636739606001231451052030472141755393750390312230596836742180354730707152554329792329154094520728508024094790519584053570396606428330338009296240273027168534282697453976396680617388483815658357716094986170134489262616444332523409876441522762998156847602479661758256543904540128259439166757846727037256748705141314752321936107258079536111278145794573124251247956029326459281469247482265497527782641853774870879143417156744618550522499965179809591146032820344190882600834022400574976939073901814500690187380813497062773086958700771443092150160852201341339116379218412297437272594584364427093130744666894305477707129050752989655594775271820582155893286048302817453503852381167152199916428242098768952688004906321706901095779963891926570579827697595810103963848487235339520484386620881129941350814785728409007576543583330757798749263363523446031878091108790009571422602602350748150289728852836733187587965498976502416644207285032775168697303355597035922129399702841413778430926582672905854192725265618910261380954803647252881498237807921634166492898446951348069322933702335903694947475661676217921959284324220637424383889534245388003919960914640542308042960247353489658422656971952829115459984883137213042761984170286352856486585808863384367941276986213298665807338922918145093844304424308471212421229273290807626026512273546594445976313601558410001189606010346531685259542491320002064519334245352903447715088654508691740051097549295181016051139139082307367144265826786448247489542349558452179989716573277153604898371568558059725143895707689848949373041048435725156724018914082825522203152955195086893269524731423115969503794630804479416036565361730089874960878213114480375922756385766244989322760279195891435516404935266338961298529343972705552711260945106567783816330246399897799744941717217882386276841662421065728234538885009584614686734673562694045694574126030352001349950417228948094622844443686199451668439383159467964867087698026458154486740429001263186620277946190604423403393835732966093761488003051896746365419243315906686999976577589342303610653053600214309913003481073486817825529608826362937151264252351453432907253581313994203847025341358042687671783821192928674305207575729777131454307037841768178700206934563358920871219017126864774593560824003892847936914039347751831905490822151109933695504882755280510793131828245150708501173311709780254184174697600846966608372762046758453626641252138418328458918900478686653300186424951154443847345341447058884351535014902932872492122132309049983993293437020816204466030452802471460976057098236692849923406637363120932108053209432059208824065009857987477400734762747107877788281813850019182465179362216499258751014355677673267750148672536862079345903468929412983561581026873050781587347178934095618801025787437981963087146537610840333383829775298999934842612814099134996300045793155363755435324676829142252568202481838213331003003162057744817803762267725503159028568351705816158859610428750248403990708666657229212242317543914087479374558165553822590062935750760886791854149073502534878643903767062808979872785668266021860523426787927516785750882811555937262008338508870106273987006379658637757566664736545840794273045138536404509651873232379174285977785375937920885073530243212468678727911535312532921874325750117910788537986776349125293288307081203285780400865848428687911325444811036174264745018109581316370750603312772185294258958213550601277207398794760517345634235834906827010531638292537726460160592860195605289101925933222098417471091582413533337726623564015533346829601505838701027840780688438129566046534844380451735518235166727181479174700880036785261278778166144436633520823214875917571764461123504263260622824438464935884623004141308287090033022591652299126634731955316278730038172843979607812659135729607989202796225625851168775029787520619222521372217081752305694702919667337722453490277175158119549679240833316026347308622146896099999025056719886522717466564390116749861926861482606648601814094052789496631979487730406293705331360640620657501542999828618889412686100398302228725111390640440998267638208225937649296133867431293854046357485101235789888873399059445132886868274395954222797304492540549993072560809952769489270514947088862893346333899975528456003264277764832172466603882838888916013978625495236198687240749287483655669491589166251034364303332595794656862205769097058416047497356263111931315992055667360763874990346229131005635684429960986760007389881023022420129301037549786836799652287061200659664434826454549116709250790583486577222890287542561221762911021577233025979611058171434195579248322568725647294898904027089798678266791188404910238834890006988175800972812702848984242650740195002688879720453700923220615110273283612539903494935622479937854429901681620448513314403717362846261887996508742327915260934649453210230509827797062610629723135331879600024692751755698935800439264600712982192987739900961306212969890246283997098052779010426595388300476913643789577590976344108176822524757615155293533723342627411436516633884816086669456908090971674658298567728199883378313238899639536652361584198543322551455320210499925701640261202620558850598879457843999922938820235612710802323023162838115661482701988363043350846623050861455304595317890681113736499252153416938053920199082621673218213625827500002332060010913582904667969978784739325255296975187197716488381182576219649353512215074882564406384678976696424723464565665031917099964757920661961136461411787620800895766045332531032929234576508999453840032228878886878574152216605566447633356256009073432358074822924451078083765606020621525243026954437384914931427218911963477432955300308148482451612345124898961618591766255999941746954403656031592532017719455786260953672422782607134554551259152451166821653474009288297510073918435788374587822494979470065622176277665976427233053438420777842078701717717218504684524789659136293810763152056884001505831283580096897273263138404119528889842109159847356443069519822536430226670031015102614517213786730154046521087148775739245239600308940600932177499406634106096879524831756103465483052470883980732042019200040965016229227918210692970340033636461867456910230049546063716697005922784498628723588251476742543709410523831282221190251412018661854265484868889218639888351682467501027096321452083248281215678306656900329303614801348328049006647422937856809344597367890405095421400649256230231974897147717941965570202463138427955418182220708725459836237121969132291316357495143016896613646349170854400803037072298881763934023525473147146449810057466558539911986480361934500598246226470883961495282273406948143719886150125379809735547957310590957114649824071710519122217125939996127791966079009410103663407622162845635254398069395995577682107803742813002801246497665736696040724240813693692183786746570000243257573969883686778409812522941838698975511278752328445975819167065217130291543483563150429539203799407712925942203860073445665488386659112173844334020360896141008665595664335826642794768349118693780949595283282764618949042654510148067789737489982244069698782045761154425409755569206445658708838152862193249759393217098342456926298117878231913053050232816262198894466881660719365830424977342391438058395005243184260394553415858649812951707440876032120841651970444174969857994633529636308928424126778920536566445103185458625310389242010507037006131014305044106808680709469579166533631447533848159198492590115749676487120058395594995153540237125844661518138800449513475048676721776932913649732590959575717557641439736047545116701440312373983379271475789604547275468058316461915065359689907759679051331160213971129390846729696331626102938169719447554220892684348624371749551202205309225952821796363600370696241025537022613645601149135248152743230676962241334814916806692933226380792333781809547052894204676594819274092648968237011370706899477020083543863610985837057257260011739228349633746750636376527110180504712460446653951565745593915071226034148902254505573073302053188206645153952691202304682074216880046703015007594969208734591697323904862817409057015013738982959262468694246969780099917743201566065300944326489415297728976250095557000305555353336355628038186538436439216328514234271155971563181220267657129262385965023496684046349245412075577234243747868514512779014315137910393181667485283798640144738646375730276557572317165223850612430556049622682056951064689304267637603975504046373682537875498576576516249340931581384568719207163634165853236499587258716201931499618731217353128569674507193628365060504750040890101016600197722297194796874585483072465242754586153937088595164480662733090400869043598503005365208253909356623040417859563451397173478500626605325497043484912289968530516498424103284393661316811105331647387259301927871457464635823457243438647849759286811190639926690177268290962137105404168842869420295208417654809986488651881359369226533035577048675030541200388529478483842464357513487047315614898674008610339889959607273974312785812215522175530556167098862991123924127093729433770600222887924476518768683697665110150010358661399741549029094419028304196836381218783080494562004710332562369000399093776657986024508570592324186552993299933778085533552974725138446398439337380837762932132982556415923391351205336084856605842390516225513666402401822552927654580127749542213835969934812146574985716689822480764899131222367137601403787091542075699905630498541062750022912357277886562636831604165022433945271439916621545859415512996415449288986930433352426666810969734525828017945441549713126087826915566197678812971954808775267954398845419139125600036656325533979136289820474379204608641057301697873819225363337713244340825220625334718487248398340572678209468711959284871883813995469379609719479449739373807144164496369023805996514519717464037970319147532021501485075362582294344921593489265036822423607731424201458260520161494667471880060979104921357571602352438830057829981556400522997723113264092661976414600659000818489406203019103614737002392936411672656473338861913647205904751954463050657658278147714693656799751334633161501763359367376768430152084689936825825846662320757383814685005849272532221158633472454389663351327011412305357800124068849775997362209986376704720449326442755943991055835174346159774167483536979939033417721704053446423126335014649640204786003631841709599408430368238618347131936093326061085299775075446225791682350943676534829163962502485736164907981594920859797111483316623264716677731769172729503039794431418531189987645654336702751772411855064457840321852814354269105306556608075816959183284349842729557045284344217785327982783311252712890096005493703933215060674713359886558366045004625637213458413401618485230847774394051283410574729887833443978043675676730792703074223653765295616681520469802070409469844847252211888888171020267403281862790514318577426822680923606207477354895367139368341418691487084780817147368069808212509191419998206816090019920288131102872144196258873035436096360723935848191626774005083028479332551717097931896442624230538158801713336531181127455931561174697891464673254559536036239731412844560901980885801891959002747387757891159835633685401767868925570342738170614172903882256733479828111346736287768058418832815225252659475779875131551999621855825296741380576607223498577301406800967997158419773908519909428879791729678586742805630331503790057682492809518482882217530309767569899238493785223328720876978871974063223770421785368664148342961064927439183169065751569411253384626168378563918097270011723037585428267181583252372099925430723080026499301879706703386083139073842302553075420343951728298421253587909389547229902507416853902579955364660990210297587312298009439087405151551831289112068128348282577982242252597833831003930911778682736819730824019048973266872212609314588015922650946982902401001314733868394418064180717042475900587813986568140077102808930882674113065915218200099434528528655137213721128782229356541310950091787126557040344167206596941300737910919943797421948615432103695280367594934068472809521972422983772479024406268391299975648702730628367942780519696474271764726426087698144316292323562607386927058135916027394000087946315767169917826408061606920980009223712246494584736410748093707035477404307969030912519822554032907966907817205631474283880610355198356745903261318060682641885429975180885961736646186889427774044421106227115276598531082849851019742569210349642817208121101767242828883738993551006502286090894019588872798561668979083354243502464189463136551650875872255811222189947678351717319574667199957627938084227391660876889989504922347283461838329318589677146050477792144296872870832321145077651903113876745281180941567751968771999699218450584744948789683529483271522175189176383114319798190681037920037247592837943873667156260330414595069958798453615884593838020881712995108498187539295194646574220526058558451706030418618024755462673775279998479632020196111758421702718983583561362170087253693880362019561661364741833489786856512109730753101628291691631075097640816756755780773962514761969919482684517398422820332393241233617633257062378758892826068812925456079300935119958127163474373853527482352821295234124517039927688618012358361151944825999401890648172900026089492531644607672154750082014228439282316109393253631232058189613816383413676536749127469361529579686667341524268142247117729879790700206591592351055743318651499291978321837323035376209125943836902902537915902598334590788402674052256390929676047926584246945571326418719440876013987767755853622931588002085454158248314062849305940811044706090992158011934676321750839765950245517929353480613408519933346535522367231770641199861210037895033127827103429364350823532194049589366844418458939613569665192031875376732762728332110204395008518972195719337583204319178761264575115432156102577886816652602561007105020725659260544004700914091033993349757217779398399931141748530360071284709707611504899712946364181583620977288856029292944304573137675857997391530948523416599697288306624423725422475761263811521104515707180565697772403708198793203113895152114010090023395576893262547534703425403008482099173473964252191805050957369410006917716796230429359372752226120379589953294789839674400172747786736411781284656298789154903967664381246652869123197287920500096640433173423597309884500924752069061407760591229232939014365060434318434058650958093285007291736544106886764265960617202879973907836043077562958624858854939550129721309296835802951886837137983280130459551269848619824036138730570292027937324441401160951191554436080056138092527668904679753479982712795741614045692116553618542768943765857005791662846181078517659379229022958892020076950256932630103012564727612898791953011322953813827732311318740430809848569936951386933481495002357318710647127264277797339768278227981902724827436031998777143385197027198757142367422130246259672486842326448429828799741150100403081077807757798975405636074354819769266521330786505451102404853284214933528446292620928656187262123029931714081609761439270903789170775163862326122598177133394570005948235782714665031028330129754373890107601126257428785244620598251866557652298135879244305208304069090898406105774896858299552300201016020365853171834392084654379457773238238949400752382972285582354714670320405450311846196932488995255071833251000787117789457081355656956546620721855747262318692345792381376030690897165032642818958163788518834869031979345845054663263905993892124225688052712938953895484114140637381932677906543654725623183613218398860737683988466351967571494086764241940864478849390754332306679506325228789003107649026801016750504081957296606337262918649292553856974584532665316122111984104237853937738458201426713758664578431057852169805191899987976743788186918958285634299281578161123834815745768873851276654533065391467130634258684756684830954264186195869412110876842317523252231431337336783143228447158066912471798563470551757389817069439762311868969601644114011112859955048437720196350693696748242020955231882614714269890477010420895354421688562826154979192824830988020035871352679830827342171958010950628192876165919038030443828430967349450357988551767232772308815693190348943652842516342431300148784725379929133941451647850551868562420954681815748393199460800779256602428001304779491226982926780887662519080436600897017116352316409399437880337484872870270652717952243362620297035895709233384863035149537961782301886059776705278923035068244244852963014472494752143943946585564964436524639067437104064469556338460433750698450980823474785157980726190842789310440762396610755170309084046982466788020453567810731217726927549350321332356601187156252483212473391860533678130336667445143891578505157813938060737827712773992721680221510586948070160985152424829474535909717921107356425326305520994422170472171128161616058642523031859648280654014969791432162402141028524699173891863770976934918491477047331370493596428831393267853630475074127497528874918758567623054511732304806470348694399486945839875642391779710276774520917260789682659285248276496199796693996734968746946725544070989963949619288935025489906366004975593121369320544741873009175361053930582062950520880324359446738871224663978367451508740381485594385055368720219952394224852772499252071010584066752490032462586602316765874987385038401012147610329158170796480522948591224515160450710252994117631112045411512199212613918199671183413370346484485344666368532777666022696099082509400496431280725235336542266952887107742661895865000512914825219113841296503687268319798043265258316368429211392674074822757615527876937924465892916283902785846050116439213214601396872964879892988258829978093310808014423202372299352206714251197763345009766607452785940631462748169916675851670429780609410425867615634440753900297063534488550512399939533104417314109264473370530276026808264458779507191897744981666741631180956465193592489854122431803380746746071710816072660360366042959794198998402200686906294951172822691425273819593159317552363727358528114757852072103828388755815066040623200739091096328880059705910612839735152289688459332003316846567930887118089585464366339730008261256148599877744926367735072960928543858516012315378492856937512110385048071856662932070783627696291935418902037099871054221012097582815498219226100777439325360779425177636633945874977676615481414189153272858154885204555042100987587296382648445848265652592176306034340885272866128581201224609822235096602594730191988871509495123270736063932935862220888703131207950000311417393221819085385334037542562175956507846485892263877907726292160370865888890136659155119485921021854862932752230745235106763759590558908299470489675306971485077610255182375506618393766194722461540560791697783345014459243902741336149122103464911229482594590831991590614596403041070467700145880292457453828430754966617394117339980481012778731197804926439406967231296472856027439343826234030663740708055937344354149750870819103058619142927941321087284350852840653713462200818496851165149359626055642849020162616967508437834847042446818640055363075778502313808483547634067302465274714927225096466640795334672044418173723008493060702995121188906867738857024573578084776096907769198827800212042545221187028200051672454466157957908196543961861641171549290338763985043663430611755831259826481183429187841949603101803953062448811956438808713346918508869505464370781727659643232279905863575056063054780799828368371199696434066673037144420490859949429108852294396985595791484525396780350851457810885528911827209036464411954597372373474917761180497065517664744259073865801140987669811695854944065746471797983976799194329543083101153601137269012908945759224247546659357427206964509577912481795291811673076611881792974458397705555804452337486180758067551851674972995533160723843068300871304370553262631050401119814294194090516329975598496628025110470522403552236388981418065865482879334436905332409305577520840468806272558614419097118691482859823858446487863365136361441910707876672757148652894872629611575211468354769009512828157994859148872305574499947245369096342343511671121809397233295124931274585392359267543912753350446743825735254244138021370435660974862560954735519510603815030928438402201318445775267656075666717387660199368708507453221664398068557198301875102231700329387841597886033532441060069111955222412510366743707614533833583239038445368413248207231414812413907386397572480002752115351109657356063109961109352925954194836092568980426837407833664472336681238655094637410162873793216291697664186313601239114079178596424092783834957490848790252814398500354582680038796167607177200693385443608120331467935788083864983843933253425400945534455576180748802447520946675675585013574521452483112576000384079141515722437755921055677671314258388183038512480024252827806200331136406432185782403535189094296307828664111835888973678693800005845469171608939432272404388664640271736191267866329241581389817561330375758739167544520492047220889615840373383600097840819468984521759176951742185712645651250944048343879348899212920517481732651365531701329413145701564912403179924243135687154035786290028418525651717071401970692063948287423182159483635288165538946050359576683771980336032410752526814938402234216351975259310701727541645271255200157844141708428740702106654231548016951450616732526931382475019583627654834295472144782510898178967624695629289716168685519761116098706809546155290954446861587928626200680518306906540091380233582883041219309679203106746137868750244514117625292650551944450693562670177011785360887041949982134621401156558205066296110393969429597356188123494113532360097888167199293042774213569595990897386787635339939023150439333177038302435988837766190796335476131436175534565900772872943886092442814968719135148746138115894847873079197460880828329550293686192843059449217023631706754359109887936710006830165464184708788259644788058243761347070665309166942898492039670782086096855198424122111361135745806633425709309631878825086225799766182699057671280913624569566953031085083045472331935792807415521365731371972690461997282517282833723634353554354841646443224183713471430128210633035467347588507107173240212724361571312599250425153767488885872002979788383392046162480127280179957042486398231623070233966101117422738231215711806958319599656098699631599870210454719531990638308405002528453177006277647317642551986138072358483788626185856042541293338697856774882951990867672040449983922767263873160603635156200978129543568759268017410099210527557285903215287322801899666867102666642293597482552319936267509387065710603972855654232838611574393925196608789311462348948772774790480281091466675095062290044708608916869269669300989507726807832509470297970952922200177573245469983568244098502700206365828139333798745189143836312940077585208213882728121674630963464159669879320384044394033903396859813432555157877529063217646961676641756663056505656803546869867091229160558498927645198008557152094770952643334583534964420902747332706794685905708888332931356248825326338700190634378865945380069920651050614852137105650137396057729255186771516887795797949913416029738293597864329488074688071498834962840570958665475188978926902964645356378265090771009136973841728020115340427424064258253274036244044744320375857189110263500577325207887361852807591208047723685366885552184016380708536370804266906082614005864761094504609129145315464948444698282246105046572757733280188079103852480499253580498833157665848990342443495921631358433264668750924080487554977811298492530481028167405977700470670688112577547030905738179657999852400274978962793593817832990261435002464086162203267921803510113253556820780815781348507027605153886054937026503202922626529613824200209452649729783210212575713929396670615891954739247310360275386163334334432783790650655010928708946843188329513564936652842503327135175467637061526955936664017471505384101238856450673070239992067772348965737588195356060451268021659190622904933308504998399244094889343321829239577006845694471424009915735223235702645275126205364384156189398499495190194266673622573157080319050175570090873418646020418465230888719875734980899938308057838090334089936566947950077404696567108914252046042393581026693911868515430455308865307534254839060362910507299599948888612584807655759372471171760166464206911372068390138291378341409990227281682434649336547201819477767072457609465051710570877970064489988115930820744247513053200151317187238322412435171497001707637398776924209704671020832273222133600746417314206613541781350879346630524605714988381963910349034492237389693287831830120368656976092250816378599836714570496451370709011927193522455413745693731439873165537112892950969207514837535048095734428883185693375258191922706059047882157054005482983021821567186728584734959345121347619519221301565339803305078188908310431203765176815040662953536370691378151317284748890883136245346709882368145179673857692126736490955359815112933068007963360269298166052901246655038285884907530010889451937103259326569741086729082740967211389673358927589266643254300743605645867300053283414808860118856359754893107901426122097869117531369219277182888515371765859279497201904151543820091923631016098374382045699797609781655433977854642067781455766575370007674070402900490676581772733385134080220988639056965134791958066130179428716481225497928083747661808535953044627225236440517523727535577911627826455393079699844513856179573623637926570186469446939586228786104877391031487602552521025722643455348407534565324984577984748612756808042960684719319952051566475574895546567017711417274775321918920445515767660003088884633055369295765823254843918150984024342131974415447184769372091530560627253065428508037813522987649171443830661911797848233337949351405162802348433007575807307715044414781448578451622831557477622647102714937902916940758052119080608065996361193807246841242701297753391716796211897380373707230744818089987366447029629639780472509124645736602403075695893002713763760077996059103462964112400033697664621305183861471846488599437513595240922614733385524904742636144743962129386341917555188728535352694501150147222771682628658694048978074299865742610419061448951852276425027393620476618207342329364829326174448336046088034532788270270727599811780023051688172287598847586056575057871776906545008563271088670771377628002957176536998491367174478530388283938970372110779465790707299086542151225526823379149463381504833635208341749130871710612563530416465168133417706403348563395621170518987206759018777312644554263605429657516442685760300111523724622533497868409198924015945186713639935265932604762837412487121121205314740352990724621962745931665710824121277517269771332825504031679866092005000801425233415514166070295981260203080252475208252813234548650107067280048627175779778017293998786638792867569350154611008425486611058375094716046432035135096992152820169908795490662651687125034142519594852657530585304589527732222569367420886420612756466442421069487263571218418905236779730693279941071768373334666296021971858384936872783986497245584725519150710879305885528439019099754758026693319673943463416286455849973192715665340446057580516848281035604120592037581772482601477351819993653361032614858527851280243369864256124769380951865068586397378982710317456054827525894278602263325625057128908594424077971341755730657687477595583085871670276752371908067429379061331780408024483625957512951899212812948015928856205216814338353969092271120184985202482665304875786366149975631947095535359227329336845597504597213017364351164687664553156769116423801715947531360211166095587370477404151843720622676338909095860630912106520815034079043071926108839182070305123838835389353205087485769484413652084099694069361908870823034156861148420178325881836477345887111824155688805608589499353304038067180116714167989083108978542023041629118438490379344022912724910171803278022134676691449695949508818427512715719062448463186384259316260312980528915109266241545254677482642112615765058154044755444913753753922787459332525565278961742825041625655279712214143240076242073127921474659019991741215818199435210313227055267547103067648373944675766367630310646165612971404187439094928801888476638733962244742693622169240469044895973223177218479437630081641785771006189364250709835618193995437990842939111482303938449474220515323878229857079305417488326813077302624615359450547672624009846375636016421194366596640318543627497651943219646106956131241696170012846302498814371431133919600739390616906188330589503518194319512991952287194867495883654929748146964876111575800429736445775276207306667484329309164112268853430684142973714262953737597260024856584673642154276519656031805831508345737365418591561597728232821158063284925757431058116517415646218755449858269601367461313484000779592212626402149547507933382742222501512620141355328710474455126326029897101466489741005638210806222883964788240028024474992782541560649302065993358765607094348290659585977111183522624882078097295427364388925142283628384327292217606532953961928485993025681160410931530047744794333360426650852682850031269435931104437239504263077731562499945503397345393903087721601689560169671264510559574808505984055610311305653919064868789477629310079947984442730316561972123213511888044569205251827426082083397366430304063739606309553817162737845816902825225155364962032898284201766096943377816628164681154905933171689202481277239130995237492344797770816853898480533805249782162388076479816192021032291210504286641872639174447777855200635110247773603426234836591543378115936060247306817268783787640268269244645460055201806959960314496435866042223289662615064473861594231611393797797955079243532207503277986756593879933458286064696394530833883260358548017749044137045283929027524654317673074227597053527982355788226519592219740038780512240962338806120247674949573658980777033429891614935279429409925901556190787275297284445496156849513287196321304675678945289123938670298803812930257672303629888274893336327986953617092567019361821430767466822441221867698451113312677005640767720903390119822249957203580160621343620838335431841689182189514109112817949243281264235457448546885935241219979777602101669043615460786697218964948338235440609521224262386307012981307051033752683938551949222208622707780533364791068658007633271733897814234675611608813036010764701934647377407467346930750075942951273705272865837957391612278828478523609707899581786739895294375933375562447267103266648603612666882699270139390594698317502002410308896536527946267169860138388676006629373453203509136209405951972373310535237748967046521236222385860325116141154780002986001374853771523869972782756019439992779020099544398670238557002102384489548884644408438636769257706555860278464680507069405468972760934593240127236586630458909365716757972155862918304185921369695880687966834099347527406582700768138833733942996464941200958862547009918852191492217823418210964670357175062443870349943648972042058758782278191784361725444582687682052403437938322544377836956538419127496810522179104130931965205398853517079363461544630376502259472165474532563319719613699101802053839730378034382410766586575618973093293722726734193965121276281386430826449977709220608122280176217898993694478486308730374770486265295325556282126568688792207832250271344896805772235398621325032669829976126118036035092241373191100609711378964673549733106777513146063385918704020842155462426998921197124846299418355843973393538393266239302407455930209526350905151256332786221283143083123277421548753881163367482797315512823426620853971404723443561720246163561558486911053546729542281734858161164934866619223025407654255802776763790618496704361085652578337821412083977083409097702755064672179902440024840361447269694692606068207639649550073849533601360430970384523778402233810873041113780681395437226572369575391684080573568590122399773439520548999942992897176132217651795352786447963089306712726034612365490855635762048817701341431197885049647146014572193542885767124240430221988356975198937015642739990636628908492935506659630320233146307047813134243489174641263100227871865860847540732140713352938675734676264072842956683091732727634556896485112881940236636307440443678206580413185215050364560099206399948252959132456218958181026899700880757802831540872596241623181913170198507731799065277430205699086912166230883204278157401310127426277911870199669564689357187849722989299955698896219096604680935003832620551330041507571017709830410126310515928067341707932993264864046139497939835182365142851142833459892799071802794266125745943540192986320576301775398191726029643824628325059146246893222413858464244495755403667050753370041175722631970904614727003527937064443169796280157362458268310006726634166805687706251640534107732702121123198403121222399333792835062914809861554985517715076218731378510314525396519383419193708481407561445853531523743703044712387994478752801401715788538033754340941679182072640822367162709084241750085305484563278678782671518141024972675212638097295032849927248053273669134511416289939461982642734800000977058845700638496585559485864894324994817634802772987561751660881717705868642974045892261026986848308097497662582604646406493291412159221335654438942635477228129874816055582156293493923029936034876405742950616668158971070655430925484194362829451983929313162490052480719572699192896181526085489287261744947400667958469641637529183795004405988802240693564232377331002574633891261635502805131404446005434985613487135631921077064332494530450538531552241602244379190568867491896356988087088797590489107191080134824905713398639763348595806617401800887924944735904318045693753407115555737373427255434822157209154104599108937074378072233666563625512447323513908206619418003981684153244364434184109605220924513120539763667222344198816368433884759638785391037318602106492583432793645814573271617185713776545986078938512643206373012731388673511329898378898693634830859012569311600312487758676438602912976171607634351159944515904717361543548729710147987400414624954638706366561792205575007031809098662125473598638448541491868387370347049650103563551832219511610527830853794852306205873507910128008576567583705317919550263797803637377029416590108088682377183822067375429541628525599175051548155150569962035180905751586476913474076100932914907274238060541565319576836267884675588412949248682440705911200777961885659834192613642575010629747652807991276086103512470631225401886745599908950073809529703131610827082498856420090084310217297149296954611196489371418393217570081593690401851037619356030438505104935890195926326639816008276899165156676037101049067842271005051018693417727322530362601335037198232960117154779298770601385109095157247892704072405244496625490503650829026412340647397018475410636891243464525132787053745763376626439289527362066159349966179219681634320805415033702935764792096592597300058668743936708801650255703441422692734738515364204689780159916625057424980382026959073575994713161263209878949080720948886037109752681175628211124569833060119765733287047724015044007006258758804397223169569515779310353381832798659305210592290278854886162643314089340510137123600248141678280046825105442314932900568085113203725708993110503889082562070354001759513409809939462067336904765440852794612038263384984375890868046631209754619382181777648012724161918613236894756217463003183881409316730353464465302642367048542272077846423861420911291813401812037641832964011857415051990992916794503671393398604249572722492721484668167668132761995912921707299104859804242150012095655710050043299834636320702879481537599300304850528651504875190396753962359446899377604226636562540830237259396825258276320896642154969589582029750031723710096573136422767857335534247360300538033030091442592827131960621874884161050089464155268376826838091758514676611140220173040106562101729812743544312108842758028352827071604247951430646064820161639655217194652805620726946316127192637337437043734539010484515274961207872992512662040786710238073267609468120576949587055491854343799424330568809473561785577996451445197174707353855109264388090616520561326461275934982451420855016978531069358042491262046877461577705681652216930659446798078919775779268533910413604748156570826074423902859547934546870774570138896316026418181172432758213044945501053563575347526047680471698792625475047186364286104058653838373145307411365290246265326973139165988869958789374845822724510748452520323392471106725503545968236331710790372814674093735105190201261044493807223854195281791897738849158219604939928811795829431573612389838823598495028979593024750948600401647900250499596593065128012210278376100082070789650621093019483353018656603314787294478789333515374417178709282192908259737371430946882502512040024291544072219264694815425853163458704059674269319857262177100068129138230498441511310497168544551641675822814444945270630236841369260910287854978534793977990342027475879535329606013427149326572472420368084389961858676322396769579795865997874875678916327004201474563351491807750096167490459839786046111914006648130965358673598047762661625162201165865108774101940198684707305546041676685981235514451057168009663608205868123724609300470994127966920017024732749488354669613609171235627959308700886724090971808621623681880094331427963374384319578127155690538910400516693784069995179782021261266968458324522876148811319203019947493017084899860640351439535278342058481245602797984643911350768445040759793965320500132154491025933196791276076158581538740309633358940300331596159932359832525937746565851782003298671117103224443982260880578180809798686187242335681273238552075559848045166195139706144371231759124045344668427298093974304011027562965886186044720655502172477057573737488356887445672223200660996138776230037639153711276916450313733166923557405820975108273497521525438380563649544765062782853760110999102613267246290961894159469047985708453292126871522128417080398708335263548525051034320883293337140484286297703194046327224387479309086194678849849085400274012504620027337855893430743411931787530086856287690072465093370501520352959634039314643354097550707723732888983219282998309086531033878431997189506828065640017115936187993406743707311877248442829500454891810677782767379974204344400582673490797657845982775404554855743855333978214706763679631045681058671697009823643574674195379461443526718489811936275575727901827775524416239535564116992995387124782036820384503312635140890680956566118599776392601794432531149277155909269117130134977626410154343965986469802426158287352942859902171926919688659864952596146364550213658727048946409774691745909503691078929520141465409805906992679640484468922206355336382415028958770292654127828212680948120891118159131642811175004526587607173018812206089356211644017424150095827283595673019456240037288364631734679506947340325466574526645173318065255984083537886857484695783304969561573213250983468036706411829420803073950378908204567517055101173291391267453428749760060694847972474935557988672767195205094080054408528700906004123833916906153776181180121773005922488119300095185179626178036492278927495491147379405522893507743353206223332599478635744652722109612129082561832941336550736668809063176674389988094377384938978881444692217228683358729703313749399414629964819305236186332870973097224530779173370712771819807418839881347149499594570975664084336559752277030551202028824410833571781945722355780143702459486529081769331599773514140997835690168443213398981425944328866823731880652781068619672062850192448242227474681682482978613629953113567502993732269670756899637700762116725804229504217836397511118551857421523783053669166448779195367203828877982895404384734829757767040732295001699403732457202187500750791285524155467837822464937072080964498682545648892305962936303264831419108052225849617125456598123260017206469789187346132409708444164461081122398969081349262026315983699955135132825791822091012438615455570385701998899927039121795125834579420288533568978845547561690724213801950385718178572319280928279809261630428455035663879278664091900266483467687937447738955441097284722531529022544215437319456643226055577217199569158406402358917266669828687012279813249197058482153280586105895359621090004661399977990437835955255513253010579101230427587533791508731642844565026137816685565056301464701221727118562364695727974744559133165439316049398931706148503345981996962040565048771194882892886648013186664459384132058962516944406991346005488153871732985971157937964360883298713586140580911680704510178326181093637517368417994205632887940878665191256853103178808064210176062148173429116511132621881476570022304056916482633460176472685127602670051776020189300065272380300925328195117729107607459638478652281872900729148406849938699083816536828329960158217705842401767901446352389232702890344125710853555923829463087418107255361749397674682218214817291626752161388531951161834938368694645151591057984557952601978808789323876619350376409497821889250651867539931188620957185787083037964612377888381979082066465801956327776749556416900424717848753378092854724304208356027489485960645480520943818630672804929722176682969951062201325027281563842913397816937994481523989434027893180615259821047280996426077997714144072238397949264158976541069923159731732340969258429964819065534534094507617435370122356992342478739099982223477513566286304505233070784362750983117759897882821426646322029374082831485517286178509097945078299504804406303371499943644370906660180194817541342248254133612304693895085388072185659696342051562858110944326566464322492736893274933628253527588761694381164195256924295346159813472972713017206424414823003032477611292847811427706328258938461006550065423934694765080619685127147989124422363606412711427077979676457740581249395865253479976963432135161372738414590724228228375230856658225628162020917371043947340964413145310884453104194650229705255407794613125256941790166252150620941859275778828717633354919416546039699817400997698228335881354319465362095901790332409544866033986789992995029503100469801034492422857035176014461212909967233213193395876451634203227528251497062287846129778061989650847899847274064348028551927784336730842377623096972873481900666539810412601700498110773573748506816558176168052367085736967433926667852299843733734810306184295787199414485333095534356953234255548178808161595597411850630061472246665444110984967710431837806020972628006596688147276573292586571038499145505477908227589766636941306551150427974246502551465705634478507342209936156972816932124130391832816135142629685551647576766292751264009805216662807490827936533514341638719459839612426328399575347880229643792690040292471592136025045711777427681575399244196598490808656515885592110605471235228742400615942701809655989286583626340077341106282948369930380687274869245875017383821321964129013701105737394604936311586356650573776030984558638182452307052642513145168695355392447052919855796527508166451211427953659777072381562232782275986584294405401144563641726966195936617271754333944595670189535344924059850130268883507412251811305396181618654897305092223636189278616166631827493270643811697545467140771637289195251104082478956051585248738063038264757283099766012054164509914977370822953483703820885412487552625781621631599077741001347550422387852021931926566215315833454676176967610431404388376951594884501325107125032700512240269923117740502920643965338050786243715919547517313305596244566484241745777489183555112711788776172415600435057123613319252065148118339481972287992807344494118581598404026801698985382224904879331205399335819986225077444333851438148451273341070668878127879824606229826967338164092433149590805585203649815387785128554830885807404100563441028205501361139352448333789280465521573900022383219623585588690021876010178154498539114187416366557255265084934914742647495977485789847329896621003941452088115328264872645770339296053794799629845052213844898868949276206306163144677182362762016657472628781369090359726679652611592984039794113837050114079559966703380366151118065590152409723887454657559022963749747208487326675129487277139281043153158543621710021444297407233788999289848494509408366388202387972898232961014319778993875790214922408035947459871034819364879896300963943245046922546524602061961765337437471931466691581485569462834516727503445749921895067206378152676798978870246934612549535449822007374615924461262624113179737963241041917614628939791177975243886096086926918214802526126689726409158431869261467867344710688577352243762037783029353167908259371534446319537311172666466125266433963192224964426224166078364444921249809099450843752731311131786241058273613745393884683582918147787721812961011211255418265720142007284288318227154948999793144994292246973926991181304095466766181804436658325414205982558665926097434897314926765596781081889154575376575750083370473022263647325616188860334077197198519906474557500667728941974182908173274762613167944030063265883757192414014324270432931173750188934603057418044343413464541452335701819049434835627000734662694355307999298133321524511437305913362396215664162327699474428747855146273278803520928013111432063771218801435449130684931283129051709057703590736149361972676532965653442473251880384125922549665879829080456609987827408546850627667764284654053929587332955032939926519417714808068855886309014518336306511947317970273398109077626488764972238596849697344411111570859842669087977976596928124897621895566774975834014001402039234804142156271730220047541183654616249576641984812104735726942891079578129177583058143622732973849409201950878972037611489841967936204927627441029166411578936836378193709308008144724288596613357434374884730118900280717416672895212575634552718048036090281684791065179124722486894560189068364210652034481380318705402647774361070080114694496353242581665013270674896803080250462528405174457018192642670506022833240482152207163409943706377592773834689069432114663911455396684252878954504560342297673222459086149930664385232118548049488923707248092116635392309851762648681244996080959025578357474236841179738299988345151795141615843694407079940617121050219462233875164280524948108110500832148243358587765792976251963857332609634167275589421975741713034559869038453283571553678679583383392027286570054482197721945172990505744922964581979531671070338262201986557503490032975886861224334857737334056786617018264955530989717844599612488379019229286419850997468857905606824463976783741956018342894362765213462920837688784714901843837563558757493250336298205050212942142159487895227237893774726730637128326171872745707878868242515159013763968877289569067084522162060677684901305223132979513115379648228581834971350791735351341107136017477134708791182602216965851552000411459755220607084459413002927652459372781553004035373203449303745448479746242301587828655709298515550541924331862143460286866243139046670066779196328642541332938916465473640258857010154027562018959739112792346554943162222799421446681283006917834118926902312403414529285035725430715583487478820185331188250761795001469863237775999566080811326760730913117933728655740563271756435246891065382449368123558593233268778891220658691688118919687509941746527766633894373746542119707044495664183458764483983472416548636957066918847470893088853128635280186390828007069188504397904641455533358885410920626146575939823781265324176331215965123664407025088285691186492736465593242046075815071622645273497069564358428951621466440324260154248414098567962244743106080529637390261451503142905765424778823853406955320744024454857908547515338788739434865088279207165194968889455476790444724379554235307935223880565455165150128559875697777587096463634827840238842944113534491281375302254654831290478476219433705380053908465956122668663203943510995116907583945475935519903265309995399599587744442549845848538573078939192243368982031377389032566537461818380631817545747866735016510448340228894192865608768433788889686330137297774006376526554790585270253866093004831479748161378164762486554415195538584711070142154352627875555750805871431620101521408034655080419915391281838088620723984383559345143644868896366834684120320176074200044678298148697932479921583970316994296598425757475421253132379097707213684653145544167697836965834485456948228263052536863561863861899826121379764238884759588030433548923350887469485880538526876630913555601335793742372015889518323943962119969173426263312869943311833396526264268844833903991926243272515982863024462268106374464820306574851418827646871288759269876678455343723891372781503405348525320953577511007070569445429812218017307185991838670873623108994871763853273229980278093543141716391161083829715144490119162318997374344116072738530435716776628460731112049769109425801431217151468399505215404961580305981417202334238142853678011907071196549243019431426497310501945724444636811488011641084475171806179318391041138009003119596713329625249859705512806935966013953210330944971996769558090889186700554746889635306660005099856078970413717047633332667603093874692254350792446139485314108431591390331589957478914408994399139580519313552584236615378389826317381647491232466020909713206751147387028067619694489949326921264284283527942937607785050047061011434227773570833583940125286128885524363663723305086086502386429072844996802324604772778033545355029502638505668201142929397951675471047465630323416963336001097840039570432410548042622033126282273285829576597347470255342764417850915274478135767811515283663036098134950900349357172480405642903734869566920756070731638411959046694110084516882177217338944992623150906115061013497129312890191226972135211331207149727931863806732356557219815828544066587873393117279860037196829429342475788886811097740117126600607650508890937991249840387346313622461701930500182937153096380316593536462959460663278223205409913503645540216945963499289307838353964461161890698403990275100536867474276431996693120385759124374033211267017952320281109909302342700352591292736211413003415395554128027938240330139191870531574421202665790871600636832638388652692863978746001463391997845389191817197597061361698611646397617809974867571821372967265180998917627618933418859318592430613438161614541664496624492845358206104609904033794767694751296148198679565708592475182583128630729779082095477590976845786357982765652382352049952615300104004962948473608991331426931320502648351452800490065430048545363876538338571710592207053127783303029296451926547406891858057741532273313542657402149957777373048742217111367473956861478541837033522231261592524235599391441170741090353184552601695392939195725563881130904058062366427165889558368914856174466677455838437671906229359146788687485382747830321832650932450380989572799373318116227187613264516979280289644412722941059454604953581217326808154286548966254971054698690812350251790395082116012805830322152162670192216926514279352059135498395639579618796440323153815795784809057696261258777452614019899843535746369474325650894193260387817999033886725446423652511146606674121819271423681409678548528640518977288029901914155002570104135053380656306691820917035577588015445327083034980406530934388254925952127033841113444190953537397305439262691174460547654730666307569147165361302096573666118885593323504310938566208439668266502267639793679556854503293352178661736485188512873824068789984401075128429387436930179669476333187609831234197292243174827583543369827995161666296321115302831139549648249467068830227024235181283880564118102162875400543708381630452683499151086862294926810588905892938597825707754222712216316318613572802451927888824219298089842873433894005582071666976939981765984568049764251630607779621187047554961658608125361426184616683442451374851818498731032308025505384153871020422272191127166988337009077211864085151212557767134681367488775297632932568802206551426755834619018954620991471530263409314320356537312557382311094263143395267936110678044815955723447223656242280219414905436874105129667215778069319558142389748107203395144544842768294760795189190803196438796553940309957753425111566643991248198094546415318715062387004860595557147430578239827008947967906906400301308502455018864222256760013826461429259298312773960103872173218514697111159778149493608210130422850806726943204526333563102388527509568971436212378491831373077112880264714899808680113232362657342572004160666208766982055173251504573361471799003458410754210084399520039025758870632780591245544864150732139385273921662000729394031915061170187601521868331664946151769987619150693059015806603858045377938363587727949071358155491746358863816500944560040849849238968607902011732345227273923521961862457208174705192512038319220153079731711877931025999806596017460515252760903177326619876137942222399098819830168596274750425595217247916497864015941013283075554823693344963680740513411035598469244038811019022007681071402949472727478539530530807498410969950466535524509039819856166707551047115862639609133165844644362136234486326361596883692118330800436891532947052454220446434235313683972626400667950733875091142113874458291364653692769004642740649385114824931568966713955439178736897676470551223033350547172196471823647036818657002838020498934952972397875850415162399220908255495517736092704983323434455643081604300850601719177045591207926922691725368715490164946920811300883227883570543463603475180001563466241617982338451385315546648029909726249535200993812903995907987273411523862789876369268319035135878318649811460501086221979380141312215152564049993323251177848972493235942847500258379626443426624262052735127170574009185437296854126368352498306992170212170100210053644534108234979804169997845231074918326053089887153009924683660516846870840381018324443609288237000453116736498416278253367032807763258806164073755393713130691910313350966325078322351668769929903037930554603272314369599173998812547399548535200263779312717584863624411486072655801693137581698505898519631858511004019196305855133529638131968295792420992493017151026574601679165112367639182305966559461530344439644255367291999799520327367776315906610607371848316090855739227338378706941499922223562058220020382545929968566047942581668806679219532759671432241392549002908614597804677519708265750225824464918376266253345926165995381752632201153111124730427264090230593489584135125657750137245843041954290147985227639008147036287260205371335570638894578016215735784824197318718332959593122058572335623428579948829172722060271554552539162724071813821487184227491681748360371035907653265033924879513940787353620581450855829297546358971641612030920195064643773938435819750333452426398470712426966765006260503705017898501377671913203820456577750921153788482735744720218491203650642031654793616815064101404954756734058479787321286987238923900427443517942500556772792797008493065182851174380412373481493860081341841554110577328561407181561557838080637223671028132728010300989665820723839463187212930350750130535685183153868727715902559360603722529796597965518887455095225080896456975959491848647840285567683191398447771403227515055589625042930351595309098605336100732228692471882838746412736322304922875737968836991140341590678178107630520086297647171053708729886122463219814662284136151701265216000103137581346379990169014296225824309192478642730464376284511384109080868944563572814094949828007493577744789348972160162741226936942497709160511447997956119270835632336052798037805005727954034485962994690978558245032737951195834971978281008879529532756039153113826525080568505418309397199396483747036751961305976256278524370038308169783338837682270877602212595678989172900801988820044421129507183351908505719639976098111031993735658978942211615332731476144909864689414110269325153933963740110835611332038770872895917210231676361124861327331010083614175699969182162625992968745374451200700772566824332326015698807540643303530655858862908880337959757162738914575354502739733628204980787419715256178573939446957870763235321484355094026301198977260772394708563215812164887161657794735302124443167987842817348245217115631777677876422169622846120827801566255762720349146127220559549219244094485643191102669430837726952310130431212805504344726136734224673050014731579013266313527846659297884570970727028792340462493153250801730367101817511409582294480690597742638227898598328502717551705221209533864477387409136008097597140360174757314584541710248161029799907163095613312868189711829785648699838236627164633013854335984657313365293816863986016547701223907318945144329847118633939335428709240841252202522966202351986523080350827043558066925242413529676654698055114165489769856173453069230074854856236582016838819943821074696093415109384631382235048105889798457003260827369355939348741478477063843228778768722493993131692042450594476031545079206183942408157804117590738869908747954143978414390325988516984326015420033994018735513304861060035263162853914064069186827006938062750607647265225478377869426434917292920008021939781456017068313685528969274837986074278881138284671600197693915859018784161401442565251095647715076701487495113851415742880783641830476741789618082356547325737418414637921071165447766860163562435038217788702138353287181435125984217037494552590636154338479492682306437304740786450116153295613926261616515134230857838173693124628095164043287369843181806046494610352355497464905386819402168752844746926195742296580750721287085258735926268515924463581625922702423921668619015047400699530542217516478875300256473770494782981269182154650288755051129601257155177828280307357269440903372127286499702925417280911363656300960275806495873169193382273347077519222933762251991014150287946574684034236951797430286873553740248009249366383004781061729904010733033490922601033779864346924591407713698421789549179579103625713775986939939516392916365331386890029862912982710204154711427949960984631169354581059708130777230879998538059452757250669512736940751693522343486043147996219928690250211735210177614663791716955973687152281586544500105882756269695356566775721205566190116390177335899376652390721323272910254837760311295859296895820319618245623883509947219562830163011398516725225386191863479219650057216566671974324917617840388056616458274252296977251797598155762663091775943345254325610831636983222578013883594018430585853806965376065575157860401944203028905471982464533126058207828600341513957454856538284914063150808564850059591098814527212381982498396032839716678931554724348788693556527158829879900535173235632724518307187606202116500740315790035718097826258506123509011334964284966270293195200275344718341235156042836938165282383254723940423425418660872781236822543439778269946870568758003458036587781691905825809041218253312639869484177817999278499047092877982009470053724159086419600770082298382166834201401095843870154957927724951720012769085853119265838713589045575823838833039263988116313682989890636682222315656931576294706616785101752785851218959766027961646324916724808324939539415108415973743410890599059988380338113026564310921628286761674996691965795777686313371674662124174037602205687570101696326069736161446559189590320439543568448171191328486457073299001558736442089798454930882383446612904331644102726212050221187529929447562783427549820877697452315976708244649991973102348918597610967425740137666734970119377703506452519595832537403483611609212695055297068352762842128098944868323498483794643101999501967867947637764770144883350428707409008839880109834393719298099703681309832830060542361465586921275540411332052769488456416694598609376235986828215363443985656057301796497983761906409596104729901143783711215561233439818013246846643868831831929011500134264863337500741335375576863343473617776299801700940346187092487818568553919349294245603493127044022349195762571287418586774031765131846846547510558791450856612456568142753012904268416004658022134400669833572299088898077072951017733572990210990486201036871030878020222297543820158621292672848709865131224606782079896165866215623099447941738563304099990330411458500972107794706892156942836940183431928195522644348148494150468008652000363415516356971617081119942365353156298295037375010709659557703963654403198978599115778025426368665538618364244908303541886719705159802664400431794188132128020577221578780077305122847701906299017045658714614627511646750608886125200349318341286231835088238179260635109720253056938294685178345069027753246092606916540974496504894628529629692957537098012096395192323738044818957737338083180708562714842336683209013343951790729879185989746618241313835719002012051748727871853997138031301734277267104713893366323269416399573086941818495291994135696375939925869975824520820968343107101217404628071394191168338021698024558209266653382682407279662042540656214505973251087412090005349677852408113341705353839068751421399117291442091781185329952768409575789271447787074630369052856564242669711560828737629056753541762835674645750550191116822904338010059857283319925777877303665412018225537597486620174708369197633740288501595981843486546926747785302337836237710048016040874898679835536889917762225390885737111308911525600812559843644411668561708331185998136009519883770120563236941432069160637508593091381539005560733293777843730202053271568439726069224422802593135276734581187791206278902782525361826405914437101260585093066399758718557857932144758143977207824694541801036541388037751448585764065249578719313518383049894589164201250249568034937604028845475159930449403010763018089190818933207287445258714223669174075998021090204824024237132686830474071236347519310708516883357742149127679143761754494866435241894588219316321353166544074178588631388255948151399880992223998129337054855671761636835281435734058423729341961931341827059718430981023295154449857147828481696215471174475379511501064468473802859238167529004319797235026664573817413892671923275728692835682161123912931410969256668735486170153296047902161160020914474983309363384938120560315473113766192439316021018987575737106291977965023907703387817407051817171657636893684081161591218071732967395127101662636000848775723966103370670123856972621510156872188035324839257129263604330078319469993722487035565922964777658965430958083373603699320685691900562076638552382706170849401629432938251613257952104795616063132766077811962238277413834018102594101093573480375625952853477797951988539064702081007140745400408877626861933519148973923234831941190253553405764644886948254310408486758821207986433785630604236040461921753953707955496559559445579650395193902256459641033065833755541562980879957311106167557154756692836857567052872822542404762122117826364686039491187246231835241611625533645959094776279382974014338123355245098965156192262348836422689553596576064476585660778910780330838116189126788354053938574347206830458918378861313359766813311511188592066779720647035696893457569478056100968106713202561145445934147458541068830121772485610140719415582323081656586593413374288155702839648551952935714177566337411517511535838233445226369619167132151578027994262741505075436660486348441177444139968223396587126373755095592156698759551303616195709829823820340449490179660531628813396363809296862465687302801057859444870232304509518478336400182884467683792582515177190815129737067974531910159415349654718878905804189283801801700516456090145406777836017884240030917574005236005106866928975721339572395644150155831905003914277974006570800620996415825515488476084845588268512615340944338156824799037272036781000686272957500930274907801018105123200759194867506600277541094100385605406769423577579438736296959688160167414480632076851919169571998060727404433550985091203460183771959186270065281206100373069212097338258518749005365074403143088382434227748881859941135021211692312691391195193821697528557806930517148464230031957407274036429943885245017985100198447192666324604940339562497073037958256935609450157534639156513147011498300943167240709108074653204603520732840701840327386027200142647678173700454971564628891563219189600061436164713530866161801498583892560678066741307779464016808903718859025828061230717285443672201380519092178696164804004934689119662594797512861025320119369630984133998862801427224000994274916741505239772199423300581183831308510053873723063740510114945609985844037961181622429263238455419719475471615763513325807632972944834352755946378979950947233628602382153793233131243766816413225018421301176455744263477840219626488677813125116245628546573957782881969844126612877309531840163794599382134590855751788233971794974624859952655412338449861526137626956131420079018409931576229924877106674039191792134788231553607251836069085810278452694580278801352346486471256091980012127180470746089486994667247626126075355539034593789694705950146175663806553147464308669561592001513133078558156505868052461091964418685576947335799845866909115041716265749751921312571877371508906513841239737759973717221138266495921958233336190412766972891187563542404692251275900608093134748484607639540930828055448926679370423425963059991800928081500565361828748887518387022295006159099914912016597356769102016716680371017026842226022039305246214623996078636112106474569435969441576551485182629160355820730688287299003477358269933628572061462624514822444792301072791433128398704656591316454517254600972085742465523538571350723634663144774088201647627264941785817490777742209761238494527399008759729543722787023542293123048578235294456593074376704967396151470359317560084285746550723072077424647334966776963635526423252658917805443956671962864419829859380275705450712448024929846067278398647568186471742935173054411601128367991531829443246065597813074292751292775692482727604973388663661560547192871359128529515549705818962613140063810726453805918545083270284465559809825383863298886045630888287655201845300517428687080185815245830550671552406952790108680285368101472543663094257226116916288836731857200580405043609639803308486195746865207824263272824892469250767523723395564386362184773969727627321400330947989067808945107239226444114436133609665597604509852941849736069118771636185684669971980766383466604695368586003691947812770763779628387356808123684642727726954908754314626865668781110492234652763414910900524296499321160895875487039854676112949232322704389010548333710187636101449106900725394798589164032640043513443188665625825045602972366934116262884629484795367905235066319438196537952031611813168626076198255531240416519764130593643568065530833302578587427116303525971877613380610795118179238058440843108138410701165516553580320891694969922422594791972345033710899036707375664753816595470192076283979034759997073427717904065554598119365367395824198477995502873380829544098562332808579529603893317176862340639651939974625424131262822040791636938090404241195228519863487761213628843988684962156434119334314013645552793289882332785390488108295387300604371174750067158587678767165059847715499112154812027697142044555219233740095060625189193465640665884366907598394957790346717406791867144153651387173924340517380227887188036786072583510246158623116519029647231631315175537292631001141972925360647220498984143533277513761395376081384481077960920090155850829669431462243057319800558504644340758675419582181875889852838202469511662148898398613955364628002300556475287479228223563770338723497818900343210291641811541306383203964110291801459465587133390096114869815111366309556487845422007619617300562921291591155434856607727434958312547390390744646292132433363943386725554566802261116995979194785764510340553526850776173806357866389766316372977130761054825293251612687372638110143960878105320919512477370974066088823159643823548104693880922198667252399272338344103552819678680251014507725856573113827787278379002152526075657259618918623094729876835916585398817912272208208198299518765167100996638201576981455192212626054063813581572381533458632835242944226179768700367855840312250345152026772354335768794861204981420504994223786948153082593620981896429640262121268975533812429630664342202104121159944089278021370281318543660843629424381088075103624042702980501948835342389708610622863508805420387184101309022787371683575721076468186579077193705708133200588431029235407276015324943028482328923365673803247195186155587503615339753655439607202669139994887546290540818962702366269571809913942599081275259900836208954219389893378608611966722139384339188582198625656307349502418158841990275870805703182849867427920130054627973746177021480267849806753355571346524130158837992616060497220842742852784932776102616036857211358239865280926623365064271569156816480738913279948878766679437227985627071427560945228674491656048814876480852227369527099779542185567184110111753428679761746462700131573873741204031251113609052548301944268724718782738539590043612254562256354798647548622896951345324369241642881042500606890635761534466427553851453733501319425675198709612931344741672600333470255096889599949070213575580061728820406315253673718289561553570853074534945132161490345456414971003297317040177086193907699157025615834988269079125157372654986464056413361570605675373704225610289725628193403229480241448354064778360388678861437552347184744966312002678355435063532003946161111525244240631199096926896363906232638741569963159888939402442910320194359537615762833148980529924086702946604367385170960050047221632993937221635157220973229728543164872756631764883385770845177712992818470574575019608313751146421076819464698190572139976258534554091042963423060079579887800219104339220045666794701819807027458718912733160729393204615714450507922065716990438361267089563880852777985599321501064050669596130947865973681148477354733557918488041571327861332474695535205400875243635982583334658838753716511241269341209860453330578616959051129415722399207708467603718594377422123753245999805728025523885629085706216053620047683494221291911999651284261483444750556728506910359537771209948577507187237225824556228208377467068245166279357309815832556751718189768061392505837621169642114577929056975868273721447639056192211238877602406239187232933337715170369023476037124274371835059688394623543451079682349545044775510308627226026184147432455953885229271953142468048741653502344600076948384835937967341346598773252937507527287224740755397629761726100504768705341827483397487475035212026600707860698028508415128400243583405794720845568627911709375824955055441379249190147141095680176613066081252230363446420684225238987225774148904867969485957582815219647525736419858290932348490326850680208175108999832888797061608952875757709844355596634888836591985168100042450033728704562861822812927785341523157336444112959510865479866854438396093198347626913190268582464916430909242207966530379719716071905768363516983621944753863765936892281755195448982919681633479019795888620249751728854486834273315029226739258256882516113671598846702825856687455768673430960216154020307633893634675927714532671737421494913990309420056503942144332780540737988335058418161748786060235879767992605303394078293972577513549919840259024551800007625397172382752459734333070731432191632778128814082699115194211199839204892420264980388439358495142352173793226575710299736926473708833517818809247908205112378819538237615365188448603872446427131618896779949203223869381683321248398407652011217902762611668605645674353853828119728613626875279679967662937619955083710151885612249064030621621596172961662010984669041404296708590877096243302985399106353649522072561652263018836324657550602683388817290580155813313558405150364472855061322177962960108440686736069035919003736955877515590319987196029435561685175707458049115749049217533102998770295586167541166978748498227241283746112716572174831592482474311633975902648784473496079658489222615079286717303160886824237726872426600927518151127782295847048094898909473866482070657040678879182529229547294203535288566346203520149364104465932908648641839842982429032957620140640046043814517123610680575357170557679838325679289505562580649345108026473197139737346403732248662990372429719122793769542115795699239893774867442315544645187106288551779585072676841194549355885832402701863294390397110331494100675665890101876588747606261280518923829222560332609793926067876794746369896038471398611090555745248628790180996232839290685431926460974183589281802347525796228431793409416732247999717404453477347818116586692401701539289530165575227375886846081076152263821667130100957918195523356536103117330309834837324964968465307269402380067755294299608189720924863497992418742016467805346268890918560894897010526305882951004590796667593132569510547462054348432273443345122712929643609026510276538572106884171279658828051759075800342056297295339239323664512440906610363595821785277373851118432831152201917957357185924105665335614482501435206026992468122853774550404434516938130851093980130904072983188781812408053168209695620986009980831102361930153505395958264551078325099755284285064389474217543639363819495159987168086254880541429582798420035565873426559771824397978819701507963484234824142007474442143937362082068523232794791430050686021272593049190222725138637255584758936336749773442271750615131266639885402639953231748991235746112862080867213800355527352076887456240717592410360148268410802985088567136921627756263232485428985929370053715537674784247342595115365089937308724436134126104694126579986821391500586903449391355820519237510196486985291044772445833575660563024684095307338499075363955117505958294932046715756398491759047329541666588102292647423839307743958449493013896048229742868568299240283508858630075701477387398893354261010760011886903720841578265544575977803723940655421419865838333645245816837221847127272904542937301153468291271599310850771319979032293011589846750316958102571767002958031517013318053615061867126398372501505571193646169539914097427215973862141084238301333982076971203803348224914042232288794942237776465668658723181670521329234605668627138935388984860399372273352269047509558718827781499746827823101431873990962709284272019733181109160278718231525663771262533721525133793813415713799722968255556814195249795768439652951789498124333772154185669666766765252421873329762370426210929706510740880614706072294895763070642150725187373221787912990135395315469085442058059941029401294343345003657133932617065009169802903970077914590687479480159546908938674114865987387230613500548597949504279480204028819674102748370698626064885733872444828635964417740014488346840264249518778240830578507020657538495321972860147648772467539173197716982631795973100122173121352665277936824939094490332218449397592797180887301555952672692340441386848650596198349866615015959917556627119619339242022915280118871520005741321245377774350178111642322756478727261676305958161128351856222638249538941967818209690112004897018771136009481228393857947450050534302102036552315964030398826170862581731403478093624474698907951007370692758108392073446856277906832360157129635274577904714789390831606587208088219604087516945958885229843209203656976133581533687571637464301940983044951925301103364972084248719672573694520952991948721204757832781622595644527982395282444553816255920159344311511818631974575834633976880348733923705152073649307495958667175260561302293653341647900774914106590949373913648124968201441947358725125826168649010791775213093350212263957208234325448523135176111021299278671833484774705400736198297829883393042241242675679500489384152780525196403263331877156416607714444105745615602914036536469900229258403034485924874322500329543803932359910220839017039307804388481711001231581384605892703331073873116975088883988663474664628015926226056496156510019869772500969473759037513640174726245213474175414220570655224249423511904648882965284034125501848790035311371681461463911266383454469991375707300611252580175721052226067079705981459045304988757632884862235188073570787386185744888128743297461753968205662288945224478715316637037470113449005973215453112564714317721507906333808725445451223295024012508377074852959934455544771781090823545184620548586909402425889488090366084624811041368226023158803772326455038518828043714336655231237389213607812417734122242217061194940459194734093025822941215133317991828082672433562228677582866423054363724314161861851644574227562377559515744292190654962164398069479213194944249139126020683909836429029381854572651986596792071318701718288066651279092467571449502246913000140446077246620213563271977887093516611739985055716820055355828721457013006969305977397654935418793048934048976196355812766989934500340832200665647947376598809484320287378359294218992273351097194906850398474946029196253320282036905096485160652245501559152013972595611719602399122860342173308925537544751077073649673162725443485085831741818720108748672168835601074228296893753372618958310821889088626312239367591623531561637377299563003225125604235247868697645310927555329415846782438515485749672923626330153756798104635772713869861912350620160534865452721359372357962192872662974030131318246092750702834298950888170145463624847680524645587616419451938099259680610477039340915329523939682192792284856857099648775504058436531716708741778198929477555405278441078279562767472864091874954548946751194945755496852657730078200400984813705647221156263095493892612720391188945964939822686788452686072488242248471857326980863030891782703015902931571497482483060411636322003943532651015546685345481450304367058053977285597429564717442794842369655682581994142966993385259053468546989942763701654539823425729351386115643923493367627379749199832884039426111921423172513566742700637651839976164390475168956854772164846859917181791300579287135906745385773749718536265578957681151945840228116449320235854965430952919095512504492719264959205834379836040024188969443456889213028082853372776994904671382782664115512017454315576815667457365852997265696651991512279365703915263751286489682650562580686205742461197630179539057705600375600928826608356125681582981313829737238664323734455732640465937775343583918306183190111156038246014250540131228063330677475456454084353126425438220084032429094709025223627711768186820718491361529019688932404014343799777093914249707129040804021829027471848028827972390042255344671389890177219071285969699873995303642080191432809188965474208680218549795647900898631463630601401869089651769587681607996230121768837458478463525350998127881309258454130449781225144943985868262859568068990240481106156502259082343041385145933979630185119217983400573822160061685534117375938974969665720787243136573773014921032400491127234907104062734956123455059182389683858253989475798435879401468810941768091181449613144720525036242653360444504670766887609120462109858796509228320602577737392137649030975974364914713681273544666214179010197860647018285459120733660562679160468193343548305349335572293489045243085049759302018852380004896121795375807877409177193258379421713895067942532700916264243295778667223250000840205972887925481277319107741567152009575290336627359098554479661439525120526332273220375421858191803500393896860419771559886042639976311133094822252319305932556742617720126942367528064675128297272007476326333357536700442307048451139666454933203373714534840155755140578103829379869763359377319240655660351017473870521083336447468361124880171109286994114406316899026554195901397508988392775604577342114967045211193504869761436406855346495809225714863182731573583642912421192453975688734713337870208038645773798057207098959728195249292045572512931409371582444844738084048767115506526327352276244357478412114391297200875441865729283668876741761299920082339733236566922547942324835239790786758669571385562237163098116906068045066847011621585144195973354194590412170880632594441469250492791870512091805738438847096871711184158044383762395668570936644382067785303809093023963406696855874655134469944573249051392980635647461650583063873495638263507833381848654807253170965585110662612702073216658407689740160270420779184478192730380011086077150396141146973011458272715672344417808121932559537453328246887992575631919322402536817094175996360542368180929782912440024219620369520758881546391490038781506016825780188781078270885175650977027434093071084390286681557847466109998618751002571146552892819234162204644230454273511850323967317370395274586354871870775754173585748448238247266013793905841547077895756002985028403900415396013790254102046108891596370822430563114974388934492477499027761388000402319524201804341645030078477823759687328799043517758501993688809433900567029518493587348529146881408172040693961746586770699447047968846854667761265843699258883307511399668789758627495815135429346685496819958978701885240449635430850408898670721168532675074486410599277800506176024184836514600233501967629142476900143059498582777349572258622824718363769088097044649201170623177929229465151234315240040965345159503720081985590602180508243935238071912028424160094273588570241810067507968134682705857459980310634680278650519391044350004118673089193488430101987803515149334536909845745900108106169281282034441871269524990323509417460055112817852329814335248598012447707106129121979773916784445993834063407631239890480039821742150029686931788001048308344660705998102803180856507960388637499510242567281153786367952633831966982178810297948905954597133128017490398988967946240972606457467894176201822363436499038790768130197440447203487699999733057955526597062467496203099713700946621328245337620048268831738171520865991306437575765450511545816997955634060914727485088392739839974839473396280726171366917629180653377703105140992846675299798067621345495906507186896731177171512786386652563954930112514907803736048988337195428541155521551642933288617284012947030292402179413691626641754400701746746113283670972947845978849615225583457604685835678015541644131887500456169691907612837986470969888994970073739461053558749613073887417813154446712594138954758908141459985181915612419081741475765415126103465316466089203767989942664295543877841036113865836586849309674566478125601441706936504832940647930024666666847879119715146921283214827078905556523884725732564427600263443887087300438396895735844509120469114939079263787977552103024796522224296008884752082115328290307088918439594600776345285596968180043261386919515781358435867019205633636068999147400638761268753981469655939953444008243643991298946226118065205454406556435901885387196260240072262627796310585838411487074921050415036408645086463786314206936172097279418391400908562608108664106647979543455881421534766391986435898182736753321397828646498264553608285581808430452378302824029276145522195441611654611379945983878465376058341217736485678345862510291367354560470565499401362699491537881436286358398530693356432575868861094597686632155798834794500954515661665029319599340499146834308979188458976147419955116086187729158380945587290506059881232278614618645598107631371589996493008246485544037886393026965594324892688825880893518080732237867513812379607146559105228888954571477022670653000938588671184404479471573843349410090847364485979594730793655190950218125431540436740669916416955212507784065870078049489851715714562376798572017843054286874013359724747257928271263566746983726896635448504993862788492763944941469809417406750795533189863566686667113836052160928009663131627656708186557944398521241555121085146477058742763145283342476299515509612626237726107500031494473580204912750973583211422182489206037988818944202167150587515631573298064362762576514680130948657672338265220337437961009623934460011739319962972266562743056542131447801430653265656273922108483142556069801826272995313642792089199063437771094937862805252361124837358034407940480730128507571029683790769439045313634182306394854314635630595019957028011790298122326035195273825950018407781468697870536992056576459148719425000749070884729671277807111839534832191102268904619158065800059242392391232731442159479972114194799335349785563618098721965466495627968972720685162884545771487997643546153909998370340037011859813397476177049854497572851029322832549359162804860961213008500813428206383062988828071058747782243630748193470736792586122930856475359109631583189782969371048875801119090999833407458694274821518860025049929604885924339183095476631602325774000775877512225651215888185417768859460068938551815123481156785352209810295851941371601587675569896599382673571293443651147809954001052582402066915927454603530161017461595292633813060617745503528824643513571977142718260851576615253163478610046919016689399182928391980153608120038235757859678951373967756913828831472206368245544863341056715173615639029574546430431551597870983832834871660736180495655438877403862277175559302745858528560881008910162546383124889277823150338233688095863721205689648833147679563626232899670063374502839756540693810909136924180638797007040039746621122666187571559886748686959397933118214182812379122810902979690903172914325973346644814963809251457515642640684296257871715868516530589407288581331030997176167635063977735460349654239042455173124524849392958981127961999141462245124703548691463721778060512332042303428042164714801958557118024840998061110371182410921031455362232686463913637160612206818217776289528207007284057043555243359425270933369159092121867301642306525086970086099654930496291280612219473546774612527148031798767974824527377031031890406732237578371208209581300158746561133287734613112243254975594368696268528058213019770480533392029371285262440130121101503585888207145524569157852471854082795163410500646847006131932052833020781345593587338689707816805558160081256207927580627140528395261558119562246492006431869818897366613743940268241046607176716897993469417797543931987377259353961520736386186532373752285040646995077560309585233701148216794290436415087813609480851707988272469237713342520161330280440337957660417255318011931918089483720001508247557030311610069551726529953741048663743805556787005971631703679860460931548000089895087138381087818562920607825556403444230253037040593764303927239882383845662962192606335988938263996432365250557837585609975847919136010845521187403278565498915203563508036708910192745612653645367674266581114764832427572825539854636413548749931454706983795289926897502968415344581419218036083254562837344159794123089204354086448610555559336298167273853919749721241446422024939226336803586534948320251631011337435352682618812441554368858548400875720367981467346274803027603887687049612799505399282953171152721522304451710573041756036967789843700034239757438350822193710264418310276249226663862357946773831467144095862259164444306271699464729593745424531795040878619043123963716602241489131228597064319806640073937786363814120865883621247256230177046691668498254826141576400981090105606983100013454277894008205514723910567736930178487348955369795962532151733353226691651969556262090902424202063112846024436406707995391080590339614202897302742273871120612105188263017373129528599807706064493402412986615030380997778456796105160184427021783278677196863108682377931074956090803692091871049635454726532655392241028325644744147601690235972846572929619733526279104856886250607618419296257755158559202168587558981794898113960726342397525533514921601073286533329915487593650816993086063061179624832414545518218185299821920417075774695916537627947357440600305256001031398108608049668042489939547495561629246917693421967524614585457078044664545829502449813783945436078747387271975990112423733819786419785915550888096744650643003523728183866632204250987452679167240665386215974766679280860903286517843260577928787809462202695524215227195763201479802634157342128034720078123688164651455684496378012906531940076728510107023479080246411700095999002626896497409491564399561557094388910048630888721319841171837815753572934510297582095615287643687441898941918104685778935569494371906487544971145253355987438565354348084456255397533299519728017648643264440206747593756609876974896324726208902206546005709517494757511048755135552329727659700832583400101899417817298980027236021613247003284163976797555476983411389490548003937872690884548236379741231791665768458899532936164901930826078579487940995955163151452086692476922873205425177440720613120124006744728687601162977705020870368122784312573213872789898362528543101590663620101386167479587764281812507287356855388124737758996554415305125076342852708940858819341552586373192727303197406237429384548132290346578502250896221995802505655617740850936927492478652330647102254953363496555984847192158252302175669630727618801834011526660659655653996257727552376063219656769208117467440610560719810139863221064233891094670326163320495942668599876217392010659747534727978113903526333870383596859924942647929119645788054740315864693860541833544341257114700075952722446761092655753028939750277940673377410109630756428296603197649130396417596490174994497435251991522623236385893333075035189495854981476070292990372276441839004905070961968714823637932974461577999737739341735325255516948264217753336687315405357808303553405565516026499679304330847171538952510012057786343103911576903871089968045528174972594199620061117659422510748246922353014211918500807807746387874799873154697307091841733652252453087177384480572538631212974364262948048982212572063624596707643259973368260359916678676218608371002394455992309568693180284923583531270656053276846543053926466506089302491918754144008235616027117231221492421709527181890760728831652807362075622685391339809569762370468663342551156212916932236296066576156741208938190497462941402360776862799326215241806334915245172337588492380533560836645408534538325835530391115146863607527683150226664702879357035997035701203011762763895350463322743161851358014554619131035364631347853153442794544719943455644556229584376167472507795213965867460158376404369176920391454298143463621042181277673501795906542296947277132374861420704606521824484911372325772932507076625493478565573732804004329929704350947427285128596151634829789916945434905059240220567874026187250099454077394393005013953864720956140604072014412891008662445637102590563341998757937342601588416120518763824219115225226958995455116112363902862858349532179039524413350236738025063522088492602972853458742308638420494095891602827776513892767537636315006802522739571200386826243704981867463290701762707865490942573237228742850949091569649888995551129962956345219468798073864411295216454324103742675442364930998411002734917827522836038347736155828647176277830024391252110388421399109692211402374423680818414011178816638982336256147863696619041378181892518297892725877462818473464785784924629872710764164947037203328334532317924653035858897079764947966165010297036498171234582086754963838557371262647966266561210514583787298871877497889863892398852038316726326818669936854477986433312934162974897374795212119298398492393561144881613014688543197879027892254948812122833447631975430139965594615132074837848387511651680090156731157680870324137581332067518408238990484134606963148275793886112729290599916235651943505985005165835701793365402297599632568795073211087645900491996544876512284229960287740727212021131588170553173575623595899585252815448943265598950039181285026130953261588705958179683194040418697138281122259616292755728242262600899138896303238415785903456191671339753228887878033068525454668359876039201661874784032716617239653417279461100448303400895842258683941738643621335208290846813898135714803741082687976313994311897043012743436569837096502171611607312364565160791396825099852205864788294729651249732479212576876631394651149835356537689277854906677853765528940060935113766781665238669446786609844386038158813016662198412502809253831543754323336774877301973010560589395148541242871305239841958180874788481637399838292144857434212243279835411179393627320653488503375769787450451008781730751209698247708622818195990830222289011200426093569256725016899859663022954425015471459582604370445420790652522659065198474169482259517914028515315388526047567056364354960074878227651219381336001950879568949506715090913170212870024659052264031997752587814185747206082954351332635809813186743897333740981313632204018431948168293528763474077266300884031734170561685542666778363581370883442669669145904973801175385075171216573332488946425951405006965530138979117012564859011941729159430157213017068334988326938279556406476308895285642364402147793431321165723149720940896072741845607135460618100701818919264990895544838081909110478857621919711159795308947430301940657597417158937019463080249971042003304499493947402105771499898421190764056091241122356890948416054760660730659900033372904871983040461894095025525142688368962537293410051735831930906861484363185645218404748774507093691301790932738628734123693076980596667455635892832393850064908804059099915169628718707934094923065396165307044017110499462653892570220970096333810904045340051877266672355678616406223367970216173554107104207268028336877500551287553133942579742818427048978632876814475145241467804998045255639199014371348107203647250467639315361094439921939207499627184310197340852197791488425369251693196952293787059001205800599196844989727423751683274037121908882575356811976543823029459227960426384396341412911463531322664835276607452476691568194130218914521271623658928504773092455129589915967930520622302810903963195215857289082202204609268076172889154845038090314240527813074281878614353014157599066579114756200046145326417565224321493830624162686679290668561163846724854343859024495966715582712730731003586935029659660520205435846770974402501789345017728131890153270426605793737561286361970558305742304456419909557731119985748204676046071648524842182521835538890569273987223030033566387075407552051450927010097620939001328652164147080896040559602097619250204633633582257944145978332785417782185085108546012416734248275467223420769938153470362078118984240642246942825676296398483291744977127284563804369008138261846974417193495410493160291780695855638436264475577636395468583113690744992734983400030532990934854202468522071577554883363249576784239889070126141690409434134400264113736610975972006837470064169481787044536221789338137904365807017521781692805793113501137967034624677280812267298574087474063432175259058646986249375848279273497081722984812555876232187348485617744287152333325899400152282854805072578394833797080994213364197760986760665862261520414315154368498167155024496320132062130583128112546028241146886852020131888588413663256220567298007724999971155486490539537008740962296724708093847971436002130783926844877451282294632230241274397858552233028079893619745673380514896222828271263041257100458284490186680096954225231976706719622346747439515964003233939878762316640822356067793215173988096602333553610761095441137499778426396914682736332238888642809370327640629377651506503437056822270334059290454592769162712832780659064492985178328022346374446667055760542393761764475536573843161054097936935018063134325670290591281933628296960161966595812974094632697608900481092656232095771894718206841959330130147606158375782047358916405521986603775024728386917591796930752880842086497147800322626104959027240399977052993927675608237844028473249040595767169870097211019041145060166265307362234984416305177642701219246819162744709464787846286925986768548808435333651212645710378170037649407790141037886053993359613299979363458493795268705417890172808407442545112857578812760085517578351097477923378718138178809065260727782925385938790555010779213029805191247874759878552834849918377803008917593425534808461844567991526018252723643559859724920078369980157540709207210761675799366293133698463956786429676375839167607567116632110792075587952501986440140015072818330077072250212974492364832032568884570403596883712606686668227084021218440096788854513664357125328187303980313692333446796958084365051330469888225353101882707775789196727400527334790474963641570529325307911197123004129383344150511731284025606645006967413370384815710338988148188053391001212149119378118184158062097191056367340943323351662413463983931830746341397959571235396915613992630646627365364138934083104830065384287622624153483648280258953809607493893374517756871452875044808096605215099179443678519464526265710037006414049485768443152000625499838815536347863474308429289168414183692671910164454408294540432397011629948832349852158372679275771856924843980052032008701094329927903355126901197274532668025624239314506480745665707918843930804605987806149292903846047289584708293943911780015915930255130064809118791682502319938695004873380238771880545067629202955891164156747471414038318464013773931464793133284284378172361485129358036004731945279954776692971408050341516019647137232948205638518104359980494958081440772867446523181630573431469518008769475563491300715059037906904861666926476928202128572027438704744349954909690501501892668445857754781618430065963944082804618198292096067512881420752383472588447077063371334793583839622268867514448468447953571316785882585869715557478127941298615547231619472845035451898651721647676212150558586990084341190005394333944987700556494474572125251362096509782253431099797506945647176742144341239736752121873942702524474215810510691766807958583367573096542036520004371490095135403826641784287746274731629221191781834279219404996968425094740442068186527364176445158163124336688662071679262074658510386026273892873555672344827261021005579894489797681521413254352754152565951774998510064316666723486775012526902936533304143838743791841393653363502043425434792083695741861387639656079594700144436548524618082587562863151298202674713154790449745617770550237329880192855934055380558417690751210419461569735044461900948006565886963495134705781426376643264097649110454819111956322757504473700260089481645486261867447935827467707411842477622083669166992991786191108560338367572816740703924603151362256773683125252773858097446182601980843546878315094122726578381277999395989854867484294269073728344940032760661799369082887693079966134517093754751495406554516783913270467192570311313658167272647331017349778361089946106742227492385343328766890160337750908012353678519995072287031640845432900220806495446677347638146179177569335418552328672193794681072526582028597607513704884294660604682364932339436798971576466783268622892525448227977758811821518236099892029966110677670941924738910151515382166610548147941021144268275521245757787062596208965944223110692925769070797652036131982990489501048587646673187004210934772042856340061097147183211248860702813510820267093170836423304080761065332540418886566754368970974565442061899717796185268845509952980554008889505695540112679350006485553812254457322114411053747508229360635758118772462691702044858699903756851050161951740511773165786116802418231771421544815144367206254508809321056900739815647509054667362558139676761627124459673144412900045590852640538768756070543547508202070583663415556962079994403247676963005862144805625779739219611432750589476029425264194268623781936421010855120832421185291706281805987863118964221967883378243980485096125773477149795757330870813525412845932253329590911180764419872680950875313268109486135008828434496064180620894402572563476309679558165956712385649980722939769584867749222627164767111755409362392973412118906877013316707859139686271758854296781600066062666271208757660692230583035479948541820855546068800988534933534923285304220285192504883462037123378635925960326281079375676659058577278061505101556942305299521247396888509888710197442647303590936334309291084518475979074853956297775733196792007837743592879342494143692107820755691103356826328981210356283145555672660193941503457015901514282556830239829411571103277594327336917411927600455060824455659674184351379988654183462381535929984796673744713263329420620826329971032899793968363048380587145445755546060753398036884316732162549383437875880843790403975395571359018274828116602125021489976825284249583676539488587547556312737807311699423275781083316936886631662896713216579101326018988748704372451034426397374278296316585727120718987382868165483009580044212717250941256154589782441777399167919954892424952637968053240428465687027076448272441541349109681321169421548898945161154474625930016603191808139324881210343825866958864384882209248978569270598769405912649998494644960808652650100728905618641470783462513323296909326013915244274791113077239666211228504651611189052921628598617630520799167981059742647524047375615362910900082885245728652938693812784809712027032127069684727400510717499913696600979266463308674311038617470923715209528696262232804410230978560541618792802798090117108550185567063863872969397563537648683624259203096340533665024392365327990695476734201919539321405812078584520298098400891419865264472345109895805256766163336715697654094928810442038227511347133488660024384963455456557893595645020641891741243405503274791427380128203905934194811493978328898771516526004419494126724133298372570793727455947149100014252687125523411114226791124859089022017154018570219952027733667946688902769664735540591592470586445462815409449022028304396643446161649635798158156460694709606587953393852957351860003120898815742233088398006313759523359457190380709053804008366707397145399559167389360462659386861970180725763379994457035937667521158049551204732442450585297501522985151248248536921433013461862310476838754801282215992322447779556878695805938048268142305232703899170732226084132552166250280063531672605697136357938078083723631389983850551959230835877187067996345935584298298248400683621415842217219462889169068107893086036116455270043192959760025075122441149611677077851598210118415889840687512198196744072964584027014891680237192755302490278401820309195852943481687263986550874751145716206075257407575340449677677683925744219185442588129686545320525706566561548413307480301442918345343655538576136693716132282685498172506832958560583865305189011765462967636462186791843696031894246391393301042302945078710438835887232018209692034344505457045796158766441070138518011513750885127385773795925131108717624067736808010857922199604176994706428443316749071843241129136789685310742271943529683789041411674697406314424433842203110552986630964933053893099692650936617906126820425298035722950613523242857320688739004405007224922710453368772617667027704408322140226356531309884895815831790228649065976516456454927611878112909837564249490204691193061694616965069676788683807144021632151498699482915861547493778889584431782564618531361900310075356411727125419977761784376196609929597211432724612851380444636252741400020762871188874047187893456056362230102397598333560126935717212963998275669959023479934234113641559339503124360436252014073383154204858103197972162500751918762060157764585924475396403733744675710805691053678727327758829430027237924770340200041935519038469767752572580410219895214291588495914833717751492248258751426249566356857568536636755206167437290194091887730650976440322103400152398877186392965177285926557052306742190133168658057842894119225005062308430076152130977382697193667862817152487299772595834260540489797080861940698215060520534497199610281564972266364611573931916240157772018721612003494131407654619165400016663509532605376292373378985476228604780326126968993175451827000357441639049674151856847749980645814378009475502816753832903974789410652329029541279092461798692615011079677739283008774327635342972211862209815766953060001340461347319760889153127215994533784692512947398430974360482717760676505588020922702230389358796522785842835538347089447035878595499460870015626190777496369226172646939520131183674802592413848038787130708094932153737361410248074654271691814589952138463639302061740541331884166900828298473716764849084872647326943100722230391517700113555020324077800645866637169114164029472325162507978304160943223419608327672367264438551384732833063014164880749390770833304129059766911152712535388582260280827475107862648079874985969320479402324222802596717989643794807196463760685351868557627441779443092706660435884216185872783960467289554876155157681625366963668593730176143669869288618350843739777764280300508648702193516236716440567327090371033807291240484377182752281071170246960891741514263350782253509753397840533549082850363559364221929317808840921766545983865856708480330885986389249038270008510901423743105184354363007926827926618241282070800867667967281570710247010935356167686092383019964970171944782940592855003321335142283120850178259757214656003810053059631622953375603155624006010979414039030163039630649525921996799478884052250337905214153483902995313996301621183727395026857792688559998604602101539462541713057400025299881629493055874439608644363085505777688627502638921944108467125231370409029349563260436276463255815495490601457117427504801765611305446463237328231913241858890405047154837548796650688270811493188697131486926704362576533213302475052102024507908172052975047156196084994664413913579441073041000425147998074858165141567280553054724414708064857854745078019141743245257676962660936702986377159844050267235121681791115975269760549779597150990627448269073942086222385253117422281741372812720791571053452347685505120258631240332469342594994732588202507603339611227575830100585512847727388612340108483975312962826609856765733822476725420266584952257535160710884391412278584153447037695700394685462819486815305330793109445578991462838956237180546588440496818442431782801431880317895133966836486351994427432431021103500815527956261024537921614437255556742516316358354410876712279268167788664293927789180601726905173918057766550181908578043756271570040419215014832551221678199174268285801774297595338201728791606359846895828406946227240879799263519937591436429726039371609877380984425705464634758663165869397830597457790196554180535267852483179644653447449570498008114994467579300192734476252221703935113116761120089311717361228745659455772042265766420261877958969009684623419050635770675955875743549065283502121562398797859716504145305561378775662018724904807479008998093772848045613156146530702665912825024711137377292285581102253315850062209929345763542758064646629585574937527579006451611821126414878441075094522207193411427212894065284720389460438348001226070777412376690061183124749702817199906037003683573118158945737079064576538401100121332208611047986775457445160969232817502395678303666459544168938500086304854141891017534175088658213601708201152684752952361836206281084214028822568159323596542777969888040866925878830130975641231043879959264791735682302919364747553022468471031861940351580488899967269504596549107991677383764233305032399355688253286113386172719295822815803227576911968810506411081777201074829908900461555404150137341988652585248095998436563568722078425578437466083977822787959338057059267882834025755132555102349630801309491748369357319447307297211992972705906304640167080890918080183139127132596175191385545393484515505488822176461764015073283048009626699850980561754727154008528144702192297966951108066638620057113488222775705190210874373750741380275510228512776367699376321777924176287254712643472515297939783619504316006068565836518222772460253494026282694227401186549939644614919825126491434133461356156808085740942834295514942646032772107390015395867497498138089461807953643435336708240738864711070742073902651276631168469639981930003590384627978191960342994960005509263108602727018586794409716149010775340393936848302592654970720053792769437017905283235705122297492930058342679743215291971848152636648692099393370417932107704091530514231262010558403877058393982752437788855493520271807128607465883256981137456974701578174396990201339460932766233115232697122658843369657400551507357836635574681044179700251321896992364253413854586440102617457838866593425585513367109138483883648703623214358401617218214575533848747803022153517683486575285001845559762126264309401134451469695178097096305757240618916725047983670057087060572389483935297174684940944584417517138860351147808093139947149762801908803068018603382299013383314153528008929062568667113210500977227345758925327132500689726542714817808882430034467330179013195584024141043676527490989726599312716725010797374642725371674953545162541795570618312647399870338052749898198448551193544524732690218916141054424625661400149032668289527320280311306075141909356960123968212512508769832806181954763535441696370498378247826069259928234617548934107777062411782798358860886120872237433923847452370578538295183497068157075808621644199919004864887970105183044053369541110225571824358604155878738204236243166040890857987231234095034779151435517835972474481954206034859819576988183843434044795314249563708999622005728719490043099359117421916978509413847211579855890792857011382303060714464539436470455438097812875780788893117180890495373255638394278552861710126128264120938504951102549473377532277843796147081388469720910615983015813421909567840296723983094217527494760341095324395756363941784240987910705831152257508672140391774096904690634400566126212113504014098275597132350461936892302840525916595385004984881004021957066438665119661604820420055484159589458690404242648669013649051097339079828355914270634057882039071873908668073539161176810990106981004846290125048011315406173229118727442950896616307974836008762207807066891988735044963913006545562432253764574449718746392123805938213168953572848339623447366217511031409445570945713558376242300706956744638762718491105447730914690911510036928518727783712981643898845649511302709315618303132460787102287213226198784696015503542124665978244066306215392409555276565819864943033685358186706211821884370412020804467644532264055705592021226722622892488891121156362622126848665240439775619344356187145516491400336099700040330671465209589748533957535796464145424213493283056411987024002111870082443523117593858213436063173659397680636634168750981804782617637868951355898761168195130729119264869855232239156307509975866129445104485600489124329428252020957961791529322509902433122523273395765812577871576821725022247566156176111232203610880452700738064437310323093772799947853772391765773166457207127794699638229633298427197664172477207524873261170537118445644738674557451307105490322574013812142980144792309546726562128917251529568702878906852670903862277703186886415252391550024600775197497582413087000946570371123559042397275305963261910904134394359166851717873841047122191285771343074482558378518312616021855199918193638526262048176196924695297163370629567565943671862106338031271177468402388875172786589017345893398733887061440530578627771597478446372418403490832332142086829139404154359427450065975788776702114059982746797662617039292485761926257202948581578031269788533896771481464338437601186278724695982587276034705734063931346719869387933696751571618167590793768609510646716172511933325375884541585736573729424230134291079752741894948614977314440900473509113548814397676966102433747541971712438657957154645087614447081057714730627519220426757745055834930700560539480493488010324100598733750763548313211306745021333586209491743347633112307761115210239379918160774424894367028125547386463587847197873486504027811046553675518416839753035163789487940495766997584159789441938101436414428597269400899460819224157074534625248520297957719355831293979962225581014510976816048040088028704704522290655304057681063741390444530261303650937404679889313933977330427334431264205120734281480553715749145641955000406851722056268776759012920846132289801072113559171369464774922736178774955170871330211491180523832950079032117231264060970537959717117623382327689361629078323568690603792799045181754423920487827205985717668492939883429339560157678388135299492135871327220082066291488317382955803503080510036282712276841897469763075539895014013834172339288605022261346086262489381712223969781804895190478862807959392793660109785083764323896640510065125889534727916892252776754128469984373948272735964197935631994813313091486064651185381514213262568825476651811098421832079351903159489992311700092234114632492021203708420345574888164396145513438024440105316346856815177916825811121503949012104324699532309792404963268286305915880320286679734527340202364960548213818897826845231761179362730804017001157792788874105060899992870184484983341163765779002123106943691439254375295678776212418348539634026821097426011269936107613507588188788582892429481393999854980009887051218408091755479656709221343471803191661158200265873594988122007470885462131866937408327475183935763823842980928364746858549983717616388127171330312735424889125658289575214231541579594081770680109396580713079523991689443361880694615935629554449097432100963063708744644975527100711333578564143348502348457877721143440021913693908513397792034654057532713118465616906329022880712639134504292784783786020315254909288343945844032544236250345704708658688706046878934130019536923276292516987744982278739539174230539195872771549119779885547128346865206501512697149131475216439488294760022638708195267108403090371756890688724969137801576411963266758669775612743379181087767279840387769088432917354227567645469199540536518589858273400766932079612335252712989063858429328093826176307371658316616796621198820867559819153968698942390257576168427630669102064877583717100949094583628269212820340576416582828953079882625635635134067276569406866629821974881124320119217874780393240721588767449515282471453123129938876600307999774182656231364557244107480079992338695247896173232180850523785266720296892755344674460461653372062365524469840514881129518460582248002981572364158938703306518802955782024292531225118360139386025544461464623871447941910966574433412048023418216674285491579110106711249467365064638268012733974395427100564143790705902151397636852677215768025312778243167457587153583143231098315873543279432271643856333008547994724341911964701815277672681472908770514391569746611906609762841321640570682705728958411055938096754211212761209023139017545430987497752461036814663508480537853673419368868492263174555014174753906938796902379103688000563834354785224049012519611295181639604275758670504787907642618664136323934347133878705265491380236446887432718696819871437159988674554658095631255775071621316901948390304171193634935843892928076256358416106764619202115493996700231636022452704834171302235378964677183386237899677660852142385229497277822367638703402617845576278289243268559404611033534359003725917377018127136593058999433705641488335310857572130857603701557788401464201838554488073493235029225628089848607582266804144913737329714720772150068404911782539756160628436369641512819653368990227512338008573277946809845678309628899477727432662141285947911853757702231210580158299078745633733853350148684792509983272903082554941093302787946116115175220458863649161509630928286616744621534952675195621295877745998763058566530753277196841019689594530169222362354879024539242914313953983558916075198132281915431305398988421833945646394965254428746782163880988054062971640230037804643838129062930664444292440950672156634241620378965657277466781111657362629290544381366367717113175698647127490652055816237910550446459625618575013849651193406378938102053741206568631137764266753096860664729472371597831007296838893541558041596406091461210347002752324482758795637314517547034662686510160860687730762491591512992475575136257283215362467024272571721687338037763280680233454416571089895334422823607062406040758976031702501575604799611735967272898919418219243562734846475564076484577412511769399415899482807530638837449146188022657731006176316520510726260362538286078478585652965628880440801532255806392461423536343639539379938258411949157718787665598245543501962067652325773027171197423136216175455938850905748789214097788752772451691864796340707791907955499369198123597733381439993980797744964794551624975382921084162101165288220993910307671798211238731645612820922665370839630611417912459316547134141209131409547514821875640723288075767526220920272322658942876188737551585386779740089856398117411830443620616239964413599919087711238587422563870791855007928527038925489556868909524445950425155613793437679568407475475073120241671111510230510907222821295875755826679746445701079416426582992422977402761926499472963412533719467009400410705276299916455545527397179090359691900059143483329380717192608871932461153487399235327991990458120315827629285045850529351439091944563772824970205590416643205463824450122094698064085994112308844331383847475928392171207505675114199311619762963156182115677269332105555802467020764980006268944441867090799641978558248020796986737432528633089035052412166249343514300041189468711917108905130657263793953151202749196985263166272152221886506832862984689046875560148270250169737424942137165547898684146615470105343986272703142222567712717672310919059024378104761395339478343158066688683928646297894067940404418521455549327336773589115497782998902303319908761391347588191161564123019979928887849963793650293854626954073895493542590772741130735821934653315116485369491650119062896491943381008519365424284511883574805679886818123216831692713990262468363814385263108076303311352575283220211622816744695075853269778253019488551257877509225653504926164857922968491421050258896351483079059381202820432343851407670587601606704240428247250035930547400121008985631588514130526499037748339257054717873108980550213467160102377321644357068095518923699808215952184217417842362410815918863104668203598215816746399066055724316516942125456457201173641174568373156167143105420044766431292642022786297923369738964143859074131652245770712936001693276039229147350957781030467679580055517456102556927989897661929816714527898435089058879641119070305866633061161237777037012450198727169640307203664108937412156645761887780561464561665362544084008749725072084151772919820721182840256389586310345282715400247679363839163546449225067475280616213828357067212546731901000504108485600817074961984064067669634586198518048077991174199177611459266293205975390286028422992930676539856328073725302157827451120423597279811547671272888454077329985586007951128899115696808527915590280303238770067453501457184913765506371911686699722239462129826362168589221608901873304912733936062756417509896840422499553471744401107634281426551996162213186375506787300632634656544732206339060835550531915693739100671013850253787615632220385178169982332849848864958982028546644434415427394617599627778591251895366771907493669057160814948246265433511028075060319511832785538793115264252989736896470940099019934231953911926725603230174189403427099515707865184168932299644835165397814061369562888171328306604661755292539820102000699560718616216963105382539495653003756239838297619408920046997851827940419948117455369610884661471361915522160217551549759406711590117496447638852096509794109163069960134363443202673447387778910184941230386987468449870611037925959826171552916113882915472723499747651314724323524613719177657039688293963625522139953658227723968427989116883519519239875945826235257624219322268683850582418624128330814810999331655554997305627817260449048952374206300386856724671528922976687381161709678062371914179094906706732589589912656721493599178941796466023295628687475238292945012579823354164010979877259807085267845192322730774138318244671132656949872731082624295286828664436755432618617263681558164291739204672421332512022962063167207866603934636849668487695370241911236898448500210126354259416456203371937300093976824646659218069398835009417690049291149616975562242687323151705545151561884691077347682037515440175391345175291845672808998716506134924360906529321747929101296994706040763115487820927568656180593241496056469163672892439049696567362437660088452628101899854608674343049238027850777095953791121396820037179060669422440501345583489827411464157578631500405373434758168124662287263186463664035677227323085599273044551117077922224444522552210612070459786218272093366474246581551624756609638211968331209006806759744860564482108219399130447651764301176632755056330763049348311768977447993685944194577408055551344645010449698248563894396131346697852319823419300405469933651962158018762422306793351373317908161090227868815896539293515685621398487002186053066451516633387815217320957896084663253753530724750521740720830595733453143474277083495459326556322257485010559404845557397963057292206674070821633388138248847230248235878809576830085835649948128679916219308177741406723856791363088725792638236924860197057584537430432149915240175986021555183370067370839961373285515148863415163113545811055756823798727143202884304281543241052737078670215385286456564585686979933957063794571126827669581831040934769806322625801754300939538785983159727150674912853848916902689945272882956063087549757967546202283039884644948706870653126025227733823015236985133910913136710205138439168385868742004031527333973261243448750261986708799269784208807061814720687005377055582005972127856237144764095805259482450539684587114816318326983700426876095135628870496544165156933432608905096892289011977620960084808659942188519004711727836379144752778582202619181587905753031279054223929280198517274162234566717380689003278775276455986315261087989998650108211572651389653974192686403820815558845258218935686844192147977707057050153586654693017421354765063602741799362088598370617615049525225617572008984355662599346627790648680682212459712413520411066967626559922425301170382666413368905251051704380959802292249183866025714471875987924288942613348997885248800899699383967711254843258508692755897600430418844300362281436228767803048226559466534338071874118124725018151987568652582764756689367831817754670046159294084184463154714836050603426872121918535194852534429136055574560285064337862295191299618644155927000121994201399751462667891593441917531659698417110582981268814006179459812231576839700646537732761388169538065855926629289095531715011820512008765178112814819841602558015731025380684434537466865310376475806360901324184327405627342516310059836642213747829449023028255133050691453076541804253314243572255372624855178274163488341220488426336704720884997307130082362991316417522577959327616329741549152503293210524367219383191934743019854809743959179355714012401686560321262113808866178170832105440192388639731513059617508750109988063879878429630015857555154011529585982381803923670512910237177307970639912433742402965913111628124716467626656333215938942949681110949109570270977943090775335836411428425033497672135475125994651941045338801731490862208974368416062443581146339531715518319045868094346512431424521053028566591611925005843825877952344364133954394554429984866404596889679335763166580243969872677000409190520316962658449921584186270704946987208551017870698019236540996470179721651363919004287815746588576555359893952335880160059048763452453446868412680139615654258700739902414401849216199399329605225796155710430527164099924533886649394336529476759041645916586441002234778403799130242227539042691513153494858803338973514137394149053896050988667230582459514195976335438690162464733301119185763644319276360057738743900169416393796267968328506179754185894084042965110970790193977606967124774196406017678567130150252862318380271705945849757178413588626928399641900113060761270792416708203181165385625725860941139889101085423158656510485257699974782300706107555314017654173081727823049771913998893888842747484637221701928595968699618223939347416635001471158060391215856603307785239825954043889496076049976914931947250062427484447050394146240023699795491826840178509490917410683822468547048585463121860517454690467036748042612643420466192532196531103470693394475960181487812577813450654335885845333332703013436386582427845801219895498632278796089055999412694556607874445382074769332165847968089130425646015049148461083259534571187582390473445100277186377290256720759489047848124904473975179060981684194317666547163125964151423167774529731324762415889277895460629315870690019327824252348101312684720885868337728578812018512243989217247177931656066138418862810763746198924834035335750809855345862072005051723732529607880062537204633123886969130581945120257091439681363547733044679219515500588748809078488693954567160240342442482581280884098553222285940408898739966307943725705675270554457982165352454322530819644170694311157819966814598737643225544741309600746315879076834324489314157735588528054500061918350600919491857500982247558456724561797015259625731237800764616582838730932317178910988842055305067149825192819442524560884629158225558549601599413287584205055950910375491730883378215424988550532486776366998840300058189094130783469942852658937134598650694718640372136660177330852314038702268277095278448770696291986534996959202571088886574449781098444423645146611194387378955948467683777496684469452998878988128916439280640274486526805435789067371873862994207229038298191883921054784817493160284222868919360958300313620727587955559165944137421234107087139552692337557659402131260271360023232453608440561324656190491034259225156247604178812953782351198748629826768664820851947071738086849241571476749759861501683556793491868091738214237901994383601676971381780541788203267632842644803954040141369014763175270236726298440539029398679280288053218651431442135538261938364075913657930489660894593278638964542775911557016039998302172435985834895199571393288868427808592457888580423113728820506375081025227539131213358025898776613915074011869405576973156125568734604490956434346327776947455705715529713526491167978504967841907143522554354538252292653758545203440055353615559276246328309802130651583434802990246158652887180080886817029496220358456247675943912738071545544454395388121370056051315446142809621499319354871585173769659528792803748416915444362688611533480971715105996078106979351282771108150827709994051784382557432603657995709938624422503865741551505492602105522426164140235116163587735040354293862297104335303125821141033067738874487397161705313412925570144881307102640848683018948665913838449741472341270592307651192856897211962113461219516078111215481838004748038906527011031144504554395353731432125955421837992998626929803461066975341522136890818016836201468078902735400506804145853435918529219631760393320366392914886266189101246189873341768074467983559566962654385570443712455206732305435292843120688889979920973343153108461284906426867197758645392367035549489125371654522305409804325866581051159554820059241827984518756915471518287755669435890613236141740504901118382390358281081075542471979831200423731654824275519124993989984468767519677030926486437655232458689795175987650402061102736231238111364257188495322252862343044026580077224901949665767467207068711335160501776643096831237455248258105286678400412479900575866590068782687345541529555129943343243958177052987119537331421512352201484623187782251063215140605439978286420559100736027764314572847099226732606645081850656535841703162277202772049932028339175868211381216911818934607394528489418495601285098048098100166220487913470943990498391031974550431805758156605522546732211751305136571926638337605626035311968503827447618438713243221914277165653882485649498932560917243811377267605008688723166781076621357146337318682916362568782571486356015802663721218610852193942865699960995774383002686849754449156812594401387900991801214157768883768074806494624329105319176900941857793144362883898397201228379168506229952656786785773288904874119297090447587984195037095608823040860744668618571669157489169770669914973214120076857992750286464128973901406345343748894935007558076853260680325270675200959339633816942190161746117270310558596855155119979292109333423119416652741885071727854235743500382918077877340917877091858485328434814909781685034768086768280166641962922503978123676286503901872179454591853157255789564870046192726589649374381805735433375428558551911675932275850021085743044934220577210665510752249784364550488147707877987344864212611147179400702539312366032831066403079157204063588246543442892640367947092335153532050384007241536730987087941270027514948480819472970836038172836248599285908105886878389790963597000206031237927052474594824668308195237097886244272730354401407635416839678425434581254079509207468325761418390481908388459833167395844642948687162628180598019101316572258021226606057573787635634184166713998114865899338214667260708912897350120247088188167024221857277236629351733129887491557573503745628465901534114028508788704138723968997843393805275362856895867456099409646072127832848914798095925720579818405792353608144816446422452836958500960852062331380552677558965258516686242133895948319879365529317292279970886543544943611678683267095207538314422655569461780214145261092710577274722270668634544191016506831453660134580575480023192393986090485279916674477426779949109799993667892461158309444388784037691279802369078676932909303749051363993728386046738987927693914720712302563585543316432676395756374568028687054974688408002947875739722798752931534493443275095067181667972688610852641219054791890598507138036588689398031932916697938037816590508287418337952479624471816764110754094373591777969907118178442592774477716153984715994830833075357014883164467053956123953859041283238982727648702206861020457217075003216044864562699361511680884081572492424561342510252433524325799804001825826759512781708874176055427995405353219308859894650692706726565787467824148120177323091928623505202310021467722535709191203446171151998905481861858047107308423305140206710868287602306199479063980853116529795390096151826887767678584865592558163781939571997520078620741503098193461462349823659507785517605343680170659559932196983295256972956908669206004163601488495866018012050953975801543745202580582011200494346164420130111909731280387180321420754667109233538978939024620566054015988142858327743355139065961034961116339171248586942108748385025744380905182779837662229054400628312476240081605079748917713100216958498769402296331903333648484553245631432628513719461167021593005616473826729840640256407982036662058589800995256654920435954693577075913286991285415189761062112372798211485555564573575894392406494385171335813364082455661488158653790351019066294746606120668984908439468031645425179895407581426641259500814217570659220840134695388143901230316673890581674173489410508419774978900469796724245362974028633017061256941952637409035067263202078814661638609574992121146800175550464280810420372844794981165970898216669002293170417491798034119753650299814651302260965249045547459045859081875889870383506397416068388170570190136710645870952392495986921864530894938577809161883891185537561729888561734825463399766327865087339943999129082455689294209157516220480392963911151284856108841846563947421025858253426718447775805517545735993433490828505597795276097083377026661298949278874678789899565453264320737143798473000655073428668135388301322197475006285769593610312187633410890800145478675139323329604879328899181163018513950162443765587101607529761380073902218551272895162081592739899109941979541360391058279321820214763495026450323230720861000268673786070591918376837521023426852428390186537238345598252429533006254028754872447326240833565159693294047983825148190920688494846718324580582978108361293855782066662237078085489323011342222586247885295045827975661026802177615961692964211345967298619201484399536926094078519403771474869287669390711891998482247662331758391750300913900431336460947793974485910226268135749754276450373123828883813544704195643843662810941413319464268485080213697192231741408177682023748911966010515307025010353426457763760889338489574714007828701947199265555726395582658686751000460971775899635475532283433198060366134636505024094473185347029984317537300460607585571585867389719266636059774050917512022536978623085631657264757631409768628241761323418292589651359744982743921656917167717503544335376982829891401576310281834272692457239546444049295360836181358309064145984907131060735888021504884964329152367948935649668449028149042636390589853280691838535333033518326928352503755573706373731839708718426634225247996210481992734701635481190108871530161366204090657113428167106062109389424482616712779319597230993215563528252277228131315868450612666253162974554549192633390015376944063029179917899929805326544076278716225308904358069526948803985906223265830611383365076688726846633311035736083471711019563868749066270456011330527503072010569476353667651821456852470374982291847847569381068099956006355806720055480269511191648786171232932767395115135173110550377249088066502479119884650421147647481563192150706953315081468315377659208748851164561672435876294955548512790029007869070169688944090049744113927041912642420143894732769334165834661044972257262412099677083949880615053786625812616793720550201183966667409575965433750368487059590748966305105017513697327750747939117570690788448918039761971222250051638273670722140894731592436463185247168162336779089905456262776465419669910459150974569709752820086628789272531452531846343160113273680979818239064208962186476349910603637039792957577895315787659134763247428855515919381712222697468935449985734281854156285443500246553680424951841953332189213782316980015559910771839957250132151125230723062464415247348046051285110483708749280720455393512400427013807203898446551219489813468663765868149468940191614731364732885032048701062022813857407342698957029310412118532922066434255934434672645747856879423270856833252651443100654109273558526153658202296047968149561806115940199185109929495380952908106836283590952837281258139750782423382360357282476697356920047266603284561628809886483907154538043795840618850868631265352543631833289731926725586990385121426524988953649892089406363366748708938185790110891028716437356502336458483878374936502093398068150061392043958977254824286948189799067084966594953419096789068588666733998893987177425822980888115968848225949451592785646223219313168247628100800011708483431346743812003150457667652158440625504159279187898311154137167169930643391202618644529296394934568797843517829395483683515136750472802585780935377400590432066326142807829044916533489647664372642176556344190885538640996203574560904509858224594998783800228892290277680270044467127684780388990303263442169640448698512542300454815510582005365470696775934489379811517819108225159174200247439581056130779529842710507933539537258566411048062350174562097049673139259570004506600880792702807287304551109433664011640989955391323320804294223645868382883032819301073970400902211253596626613720288056704403914191839451004745749278996806208066847660605873320106600874036505718904685255612891876051989431128718350169262638036412880819499656290400054742676783986461191020898285062373265546108554155984952505819156940511886231304045622241932502142506518985576977356975023560027931941243500212297588926040651730913242239110174370615040989079681613816070385135825233644284818796234976267140519037651983896340792589309713153319722532025221091863424214021111819985332425150481136726431626472100983989193703590071764380812994587532708807060393310172516615496333067420723810998522999459464552480430040123699582280900100701503460571457744558147563365447378620357371978850689105646652160545241872924381612401612963885162957595931004333679090429407362404129283969666884137211971566604008601048630817989006400456474123844881864645414367291069999759497347757452671344623972935173471031108887855524551511390564265684485940216307346663173354794795419546590635317147802260301469235638296599484504427096186011405256011660852765214811084353601409240478206113887236757802717354129051854594630984656328750545136058051683531888630878453603801428909660940255819472683544856968621646587296242167880902423214019174644006652022930674032263565963158146260235576370854055711857670081890378372231968727995605606835229124191786219752724160358330191891176363124825618579576534756455556577406945471434779365612737937368522007461228382974965485759167083724530574861882861640947217627353883748080686456958279844710371800564380315430034717904453921639824127634089253601678626732556176184145665909081000268759325845417881936282702457428781529197746312379721961933444069460736979657308705266941694183761425897526248254419707563238363402323963663556462323971236184011334366811116707990187215890885741095280664608965305282091765470491433312946220002405885266168726461625562976950928688274915947682277174813936642383196379637236659705054902763791919886060538501887832815590014413720566117997298102931131688811834655870808722438127041964079883414733968652841779830904119553199136235688917909273697801805693870069892149621294122883957756868084578149983161727852283609959040633314066444134682381285221850179733585931343607415992374098468455257017319614365840692098959989325237521977698084029080106975525803759231037976401523835533098736342702133705431720835874300875594668792810686530651137345141954541094519265698798000193021973777992899683270409797843646622416493677398106074087729451451839424906063458656493385157534117532045972433363005858846628694080548447231688219620880830197677757775758180176937338357160893105696129045225763074053095972153967674936842731063392371092611069725593601897050124375591781403380654543615726851230157801609182230176872670103381485807738906097971080212405616355224153386320195564477557529408641471905215414398023578296047551882038227285653341201128209468980882920902366255904083809837790611731729093026172199659399718719355620004701871301740870056141413102987822360604466182069891501853318106778157843774273741895745768548714841570266906759959962029416700861772923285352785493995822009383376881007832410979172526541871763083122073340970150990437102345315162370972493549853198987726920647850177770809863814389387261248536916028458764115937864862116230310869386780306394493104626434338354506619531070859805428316370520181976466942211055977553344808328773860224345479875573613916657618636621648194489026610317298109341650921218024265345108273464325306323964644850339997056093146708001523513139874664581019978849161981318229301978721377990482462590149719752105416579492307809476459618901420130082655514532986373484901772619920864150018648489463810708555127997626888868002528610766328775332026810017066563259697004935610275889685057351952258052220089030749797093489323801632557562524320790789162182104604570966107750821150489190486984832552268448330723165910802076063261513147125095018902969029415231159337067683264460405574337886293418470616152388425836707310178228761470148530948078263645011269810279739596926403575054588103238959282168191499647004837069315748335262673748145945234654287585361641328082398340871620331688002392328184861967356224129315712639002966837670619456893275618748268989482681169384811609086205956013877234129564969631381724965729837535055498792727349117482144351987910444833446088825855168684682317232966293700699681187050284264112082385479415186570860449552650101143085542732634360487102886739168443434140276393076545016639627495709454193029566715092087458805697008785254798832462139969855193042582779839585517531503263579163176429590900928176579859182080760142533116914968223135737592197288257770844864351079892482339694293299880114865471766291280271265506035706753104421011448960699544214300846636399087009114320131593320423886570156534553502468230197319339449107231598490353595879102676304836011642678201517632902410837302964501005863008390326143715472976552786417676905954080051026554278351746044537113900446187386588167018155328371299537204658698368694161745224776353202721781609612814592306962698476217139213355530112781216147184182375583613587087347926982203301257955896864762829152444839740230745690200573692349607413775692166701113371091404946956048439318039346071858606519810235464968400148859677232432545492796741715624465526770966725297220744204940630686480581516447841903676430236117894369753646195227322547428538386908529173094638722674975355318717282072433720591817789762795462506534220875615674086877676819892911833213535014836640787035005105691298613887025097551857389099210025042150350782009149235870818964000184355987954451717807902061115603009965652148661955557719907285658039978670160246846405764783915923302183570607529725861218396968020057755855781843032625507221823095718361056407030694315017749906587942630330221518592243335090141703169259042025241901920751222654715784189942925393022178810922845960077699334657211198950160171439432623624771628242021313788156047005479675370916108688555255992411303066377259960222290227848840707946089039577908595959600654475975887268720122007467277651066928507635352584403672001268061720348666269714736507219882649226600674526727588476196525190886543004637298553496883880903441112132727217768998121830257934181276767390513467689465175528077142302530210210787050947019967081348870228138112215112710311889305745972813311959232346641616235897552508517551408270799952420176999590453473089338129987626652952836262707686516093273036537506060678249249146020578373810020204309051247579108521552134976788381451479879768272225044422743307619097968588617409000014576707213964186422272413345678173950425330996518771102417556946671640366811917360381856241258543344122692537502584186806297646754788421298216443773884882275635362498085129848078588207325177186366556083010519143208871603167404085091664167653393862151998627583429016467354401959515706200027302103235607784078903157541526366112559353781853780426553317733856372865793147306517550887888586746542007471383794493660896237013367164484143432877737782355757364683147479895620617750957750425292922181428794982575118980446639739726511356425954815315073372485468711094072424169417776573349465256039166421740231086621008933949030714304951910135212470803117258408694785441879258592748141710736902450722382797969911420079710127664537054590108694252590643214708116685363516565023098708557449351681921208720739993014510538604046781078977011602777081544704902386867791150387786486360029846842180300424572319514962483233863786279900694188117073341713402157441177803479159495245497166669418153229160256498457938175754925380600089836048272664449311981992342432041033597258887336405437037187594025320363349109513640340740316514664460076207477960218972714173844157150284098275539585417648926917522278951907073610522367814427380369142651351063848397473176045852210860162454952069356543990849653343066962759412730092341153263733571730055750277846473989029130101726334182597095315230301816402825153403642482037414750688344729629727057558697910420812192311305927446305993252684165368365115868497239012605254925241638563818751758613356750850639829303594795444568027134634928183312594198246967742621861062460815145926626577953687060726211167844890519150232880877536429330486145325421324287390574619763962065100830474405461910627240923213519965526480246694794273618926221526237997366029279837980672641975841802691665900627643450442281785481541537263593715129956743695579690622345310135787918758400092228913283991427983781047731948280443208438650548315892386261763317233825890768051214836161078681636071694654287470433590076304989036598833735637583361628983365321737759406275918508827943650392632392922700470060766974955462264077257144833971228696787221559195001207347248590700172977343299308297513755148401923497273692231796692388924746660348680687109432558479333899146700283667268855585821887631706556090234533816521286031347382220484670385306467535561725259035627954445046065482148156274926249498847449181390014205236902536832271117144892800916460071674525523970178876683678064531634983206361317324259482551037518444851564158037406698319001505387147723345099057743251982925876669054376500921199156316474775057651210331598632158717492704956552294898284074819116231873471292387973390039963382333737462194558096890541060751080978982331086853998499075498094610678989216510291222474051904084288802916411810547450301227334251173838778707087697936949546064817532803617708982350114380431390236061319152370847048521512814191328232917024519302931485818759347637657555679009488405056974058376134884618581624604275957809509241254544596225737427199675477872150837589710694570594504734684812384431095541723027085997909918250601233601344657686763500641490098828664800064906096258153082332976854425893936682412459601922699093781661588504216098245064882021859582223756034073518927942076060352108828113628575828100581883299929611267169523392303857726942484951596555069814311541040972123617723632700810100727855352612358059300214184864349888357928960854399607047011793066148630145700829841375247938350709944184216979811427916834877732468727803443201776192216461122737726742993534006348168405217397265628433546355709422997953594335387459906051616355457214081342991759878243632326698089101032182613175803458852104270697788056205145683916188265743130506818970227013845563328956739862011448958541088482060889843318230688792115361927200138125964503548334895291002872873930300102817358632080626358119756797942457155936471558701433608828043596364643789030648034879414685349486288138144752059380591805644183475610022632415636673458392192920542723692950830383211752276996953814841463802049628649020325735366975201040804696027877509200223427854983184615114999806234807703541062776170798901600154969102384658016475849561099310192541875747780525346950192454689274966573114990520095150192259382855028285567621641958114495530847339491896794128988274308993222373940584301828571541532747506031721911545333890483055344593353895972741320088476383579150879155650215375024921860289258314645444008582880747285029432022271629773891332603724745519421635646116223966669679768702651375320875795644751076541445221293075751269799825087999190534713753267383353061668675827392408512998724387765694057576606178434972856446206849429399892501504452077441347862871747670852369754027921717562142951163613212863466577422239748559015028074641049452509627834342359558384166401751947497678591624152315155453918167078977685210215538384226132054482540569791132916627890691481235518283979486296801673915169005671027496890141537567364174495608791315347020492354883980766729198900388895132078060624246973483912035943423652166278816699969150248235045544145417460669872081973987419193843958000665562549283066403496576914277647328228984637847503294598551086350647438365608955160419002836711324872383674546502449087314267246775397608035517749647284255439774475617655360810652678740910233796823738157880445513955649631456541899863556214937049957239345501700447270060923982051341992517407207151481505632819304381068485298526494412117551148205167853351085169051647250508838788382297973158167984250956606671878121827888879748776866149042317830771377215760333783773824823704812283091704146462594383162310784446330811275062348749477365534272051199564621408741489438323800913685235250010428124184563975136677803159760929293874373539559226690596605835327282722108156541385667737727489293620870490093839740522486238038507375034392370902782944665590743625684326315564831654364550254733070410759107091871280666773074122932394092175972618817050359617812971089557003174731722870790236164099679689435278369187335681211099928904727500287228730130283442144924689253894684442498360311850214566820333331228774698880358819374526367068900235036179789201068040449640444457699297763892732008532539021929007662155213788512735521328176819957229620411455238046804395875230935070234088310539640690932903145109294800473869923585930019959915787426222226921237702186345296435288699415788087684905843351009234844345629996701538863937795362205460551041053998810488875507273333251708367907599844100043584937364082353800368493996314802156849025785271303280515437193363441032097126658807640935292011572762195101315447565444197360954500981000542525172065306927190853916868062164062996935973078067363465171947764292059582659162933386822388457433600002838660655844025208760324171181005017820800532095499118687912210460293282982176533217107992255733650177872177574110379240969990562309152381588300290501535474511556408070363501678981677595136941333732586967080606522838790921592948999324881101619892409925280209072540944484101092851941027556862849016143793678946193487854622871782913429759886423300792213408182313646032113561065133458827319273625218439719118814048418211905569006159153030301791584758212225018606073229134546035052318398911852972863482083358064434380965369449407677457710662556166526781294330397202528768473089695055854594444004178245050801916110346515940370410216604655996782633020496532005522605787603427192757155129822031309587841028364365244538960084948415835704641610097310231786253710897635928797642359397138516359674671355041772599405217558013077343761294569920758508175274485492376884901485492650691868744208814768634552525870964224476208122656973434557132889371582355758803527835770588722302246901581654585549626487654219357483361483625146475528048817532456515047443209814525880663376705455853646651853245128943459700529352419392750513405383968769977884614646239192003675058715221325424019815763457500490230487109420170027457783624580360051846136229880545091196678580961125354931286903649256601720889251603843227703270250331060196638761297113889989153787310426894124572352721112340350157608134047235106818010371158450385797725530775328584922658473357635455200776125692789527979499901208730175529560583777789309912345695871267306216070972692865390014283964161326619813151045749637088637519004074626468185071019834080792687180506634297258393453979111976229050076933370620383804193579116324068979249947579908019312944034323645763658978500171073397522884940780794217247085747570394287139515160214276350505364867844226128977121442688196809207086531118478161640981141371426404852567418257333311327839704586150679982614547130817262143429310775769738315297567305992110286390323094501850482038140415045705152435186580359046259490621191672876500669025613314001021691153843442671310209919553522348310057981793488826617734943449356111121288770854940698420224970070921987209391106297952163003911435070655900948538262854159596776826557735491385412321256079530095151370901523367825121464013991606871052999084205438829194828471340873830408166856820483874340323879815853668576826812688283484329828088497763125852062681182260990099498801416300360145468426370500028508588716032717177936061818928767337962559519213444202668942381929211968508317951886937400121318623747813839876424380452764472305775397455574179250984261196224824554311065830384331342498880516487856876326801857314559828818693960582096979776221546033417714433103892431456755542466043686447316606240131769583749006501432505609361752916661093227533994864919271687553198720885918334993517349665886546026970365877405657856241124760889047080587610582202190560449234350148565852914756975453723123460166108473441288865895395029790115039005318780583620756421225464021269640013547386933685786920901447906117495438775281172466375694163986095474977372715341743119135602257358435535024145276518072058880214804243271049656326439525893747232034139697709915379455732140654577352936519684382693419250087393963001124118118902599779578845253447437754934884632443483613886901059142009539131561372470190741308564685020821040715130013251590902940876951351511241077334242364190067167433153053843539713396640843403589646456401932686273819690919756709097293110018426867206838456639286294483897947281011991922176091332054852194419781436163868659355320699480714245125709889491160919897656808353099613898252991779197999795103654121133998082431250847223938136691535136013254577147147725634029343834818718109125943487442726452822748246825313263714174082381665729722802526040442667665763524598479635246438682456767196875535673351924971437051478617389190043134880941256108117157840330105853676851748153218425035549242225212896140795803123958003481528820810336734147344750087480844804996829895025181672325259175812600537064545219105478655122678251439124995939776416744662543481856769765351616968853739089598772982031324086583081116287634418149129186750799017094407215441842970326743579499966869356289979645651277717526467308599974764352497066669655112234757435454841366448532255906593593183782292994832633644284886881978810476162811478582754284649563021409747128335209910810147002262694027155372666847147702760365054288390413800668775530592195247064768273200496984724815457349133257302120507013424098786831352627451073375470762707896626844488905722037923728063951844875587424562180941626884480687127931831324506253859425978392777603191955211091477892239973131588899131933151536965492649216946194379877371787250327979322113313891841419123917557496911437453573144524930020960241250268272215802277221371553048637727180469724949217297497055064531392705913004202320953642944780487670883276864309368220751139313584726708707039435811287045591377865524695841769742563421787172256132948804262481657403176633841400951733067450770984164628365315478302079258888964878448128486100335963475854356478371487033001937962247965432375739867649276373606724681849661672400866865908261977949454429071631344943406170483533372397686927738496914498905261640562466914415129041122410587619904497687737869586412828932490718537047791312175730156536077052151459317264799721833277605171918141347577774588578266927997705447316730228160877809966353235106623047125208795142984867227667723436159586106547935600795176450281851150374463069120094128190132690607055606861166566180742627762560043702938430997818068792808219704780183837011014489022480805538082381623097558906543216138968795426097847001207481402431271800820289529742972517161913742557905612511738726109039994906066280858762109868146724801894249022809571755434591611682877983794213456062188925660743995992899691437700747831052566629591251147054430971753906692878085359115689539918574838770431182276277368122846414104460167284521356166822251591444352755794588544223072003703657761276228668173020636638664618040142219952909217789265538022460399602271645599062144346349321097894351042413673154847519734142534451065923363972771219718704685253937735905048570730885798795639844475552264152049141733011791057295303061066948218663159909958881547253383179224934397649100655803254647524906653824059073296928379277537452575054858843364862025101646175412565079173984897375421388587471614959056159870730280557841636979859516790879836045424851515259910888566263886796440599897541681458150602253297229649075617837755897063912642857053142664055674401727199726700556288950128436499899452311916405122686999144822496732558369076095454074863623765360051033163121320770448503927445939898620369312879134779033159439238603233908937687971182449152987174901127661746507811162872431165758744492759640620372673156498583503314695928572686517367183789823640859510527099945906342728210772625555982486978140204995132482118704732513863898399797849515466701311631281110657886490709126573129135888030877601827178863371828382420747123035827662336162007901427339051463958073864451600554325580404007401115222661236526008528489587803380287445182209178751238572832545234915920850854696662774030954555129341664450832888661563299114861816673419209043277824661784968218187798175985457691724137698086226963420726624637313420384921095658936259056106056972017811962508653345949768788755651228319448642824450062044583956022288708133428471553327995206532886412154556068947749952966570080127232998724863530513817344656228305361921612177515744401075629678112136434464719018696982588461921999884652276169470190882373179523208943234034220106880803610888528903104323468590387542051377767485321446091845047899478217845160740996532525946968630062652870687487733075503327398644824488386704424068910128050388278093070965621544453911020793208669928908009734350083097497412796630663179090966065823970069543775488248040700700136293712421220525949568751345251927444664582001508243896237356827010561896634627122275404894699540008748125362366958252379005583509668404983703640244276566457108051901788798193448328079936881074963599777054670189069780387930961567602008920752798213013580401328222196713278079363727097939075700720045378447086694408069916413483399866097172534261591646641232931217118201674705658440274361508467824013506920929124350997256510208324595260406433089374425996139813391237109011599810381499976348697472001792150609452978264714635318011109341936734505924587937594862609069094698416673746864279609741738684099966958789871854794094114273826272737606415341309931746331921625103328776152710458916207870401226626905034040228709733792045410834085607622902309212516272805829880494890898883026613736532453859863512164789840020514264598654473808817524188135169920571816157554163162926536611948676564589551485241271666487556133096571504417318603394848248894668034487353221045432270342257656976282239731604502581367305196195942462311872702074648350932009387663153931333608946103792357293615248684757614755529663527064815166974086982800518430489455888373793341106290014760707246627069780543754600329550926476984743016127414589705545962724421374754163106199254501503232443865682118941100230251235255115658578364700525143436637035878378049670969420192335869991676384583153846457756678643443400734017475618553334993254046529087471472452502212950929040141729029815987682248359613508226125998915101537786982171317187593949081967727077578361540839042405175859396589871081900873623020391198190978271388771374211005726948517619196655167734302349289452129078745264924990227488879564170353032052091966416876385281903261108993149396544356548975938925692728303821147036511565436920176807685052619045231441128942851563745441814719470995481467790622677719392871368003373464386442068152959088326950048040239999703471770253215279654201685015319346413275104570773058787687139594353586356320014866009448157989448423979700427119185925904766747140032200253931551449872695226208011963699317878194113688655555790278731951363772693223757090383565451957343864060732427730313881887718539116356868072070913206810888231743085881236959989420570340149815600495724394736429267271641506362441497892098597542708907474199928192043479479130678424901025431329103161185146845686492328852487712438567599771945098701421602046948478653542600503392430145887613283775800719901247422966923834285639174067338486646230337033973587053036695313868923501755078758072174390777391999561336248828628583538934356034343603801899576627639926550700131264032110248945987241473119680496977688884518343488556070034472871814096160807581086657104595648723939910409566467705308079203393013368535372447292926748253489648633986672215625041893239063130040461415836509492092582670212271132339254423908250453591301476210694890993530362815781193226122510452411674691854033201868398895636111300735402587947411053377056948200695770997042093369240905055358167215135254451432263209478370972576607015690115540235582441013620859172528255326123482331266484201869265780824309084668867342160467044617452236027994356362551388961751967907274540130656124151759125108096707142237255117687292195237056637219807689261152543243571756785534798771456526285146722474364390756655038229902055003658023699365565143875762270544232112855311990926470228450844153232719612806526756285857200115022862760636834455402585265026333061164394726416654212781803325081948774839320160276358211491892754714775332215862593042129438174144310907136459506065507078779609472043483816124211395692821137841636539705065536336950579474624222929586263638080669234590692628406855605694878758327337751810178236782870832946337198272732729284390748435338642366311636469903109758975007358221617328763275706041889122107933754487938840972167579691205153734476037333639106482768144398677105454577345038064085885842696613884399530466022910725553695502347465316388957622439104893582958688508952708170387775078833600030941195510103953949642375531625001019419761806547073606966622634720653970969420712571499233320302060789710581428146763072909721109706753571140690797643031933162338499712900478496828019555012768537705631668512547218306283618061842105905614494155064448719582840815414396017461077756258177436226464563023200266642236901502630259946422173052470258511796948002973576560619702947442745921917112531839648850537958847274066698036850776457065191806726079486292292934748047906497230233939515547828845651547183336267152489491390972775622124071191833011992079702401936469979343085925191505723025547069439616819438992924176111358789898472186532951175780726774331497978833310717747292254878439644731140869415634750483098843006416354394863956136000053012700608847559052089938257765271421448321419630502446437297268981807236014472714880631834805744431205354316819572829696786721968152217548257675613319529479960110626642990417909791103758778934066722248323423999314162902169204292259534331399059846997770600132677559469622506212167076747216424047519940566550084846156641029512307837744114457099910266634690981258161397549943367240291190569631338560330161269924338003841772942487825619989475775339666550750969876313381275691363413000994932908190126410881823010555391029149834287661983694394645740295876176496003831763640418030677813328084452344518415153548457513884526988126190881101029964795377889025849038215968002584816690167440338727893579785596170378439734622760595965617863889515468781263127340456872809968808820614620403868890248202645617744417056166090937291666471938487514704059161266310178266203893331672231811397290325998862226979161296839326534177814809535516678916396850822610939026227145011233176022450471698971385653652115131039007301853346464782768310841787616971539456038130093772276654279632321241764673912186156609503499011277487679685912716623358372581176159158788805854735977289874055197185823752654224717197639132294471892529817421095333381956575665249819734010777593426476860170057282030596713070800155898070545402681896492732714582739897623284184610255479721327701729595444184967936652927744893335210376079442256398927900502219136478114145904116544736676878485674283465518363905455524570933645636978886184181423466376629236997371089047274935493163732312450446810257518504444610211885071498295089517192878297222829486963087783991605933792402550489163172226512064387038580795636326431328059763898046841228777261358713122890415146334543254835410204995762882652314951568730179783452665713033066878342076998963419048760198645665753930066443821122830684529924735435287906054229411508758858140837105324870311369415362914220099825128696130814307405640814905481542317531514310813102275031810257073409361525624660186445055945220819778017209604804155091888388247613552726425523914996001416314317751778850699934292992726397012082024363267944058162228632496903854166608817481750633570181153956794903569089091177858558259205200750948958908773980386545022733210445345882763716628351467069801109572761715433363679686651139383651357958695599464810434346653440268689176295405393150686913590233879872217231629545887639304692732119660991599342758219353781856729243575489611962314973018813008091261336203891261807155147066968281965150845736729797851670030588033027220680292096368492539099533428375333698995132769843310787969743192733678622382973327514422318205145184347707094456025201354445670259198640039608106005286787063287960562509800085241511737995833229193679675212076225701086829450111525282170584552329987271281910236814182749637762695552413943964695059153416299653767837485235197431404129830041467550264146956862425327686986549003133594860164055899967212569727231072160294599692951341130869600329448576924834574118141802400425569029005521642598974800364776304050239685616158786080300593389120447125210974165879682177673867957940029233267152833519497251212316132591911276153237515207386822411443071555196676099417545572498980745710807976648253436340893615850038448963305844791824320988036387949561109455015204182030947977642244020345837587353091349098016807924788133010237398452462969936710948337514902572100488165915531151578667797682998186347821608203892059223304709594095161901576446989189646556879659417186513588396361793783883725782192276335981837121866029348391135436803529531899658311459454130833035072414226686590463750420423781638384596171448770865978568551392889872228498697775811577127521972303369514085868109318617201705076459269225443396777586239238222989633254324675102744566657655889053581570916488320414324312607015905069946614515573655026592683593423127251091603413424182036481971799449348590796022320580412171546082838234742467022245161692921625058998594086307492313371013670465156061077203084362896762378558926319292037442873021971284391070645542608896935322668078262064633293495537805738963706134632059635780856040830304772247441869622120589954081104136665499509829302547229418312038556153682600333710101209755771560705557733554470273005685753112240379236623890543457422296449094540312604171459986030958873037868616149899848610921601271870381121056154464554671358210338698268840234131074504150156937010411334507004978767437242879424572373537263316135691349996055047282751607136760815952083888741600210087207015818917300661755092787332500922495722682611425271057369835143572846343705491196159456052263770052361847730371959662114753933612899733269074442759201692159136769380176129478239920779858831490549394835941221343571533472182159048974898465149000578084177947061169088699009913745668475806247290143099670800452708800357436517885638760178606819764940727118657249948687080254009824398352485061489375731581089419948358158552317533030866040300683626757061282388012160123365598834854597943332396941850927308387233813857177327945422317830005172704549585157866156949262263714898763978223737322984421830358973560109001579413217004893822291339871545084566794601101138913603481311588372875025492109211722782869183489973838256666024660590354939904859447653765368899542006669082440334339131078500811694355280837133070763515834982003766286962690594759231015741721478282916198568208871387719299947240099169575585748832060960202305623345256646191183945123761124741303899420481066883241655088367851651518463357508195757248777606152268509691507412869895878102956476780227147879103647630071903868239032471564544498515845011966416712617301735673558091787694421333260867272240259818055405445988976985382230468142110996299783172299544401474080922276357996318304015963879748044999772047957926748784752673275125514181955614651438592576860014266639396633000922860238617749042389768313392243477944316866439107580003827535357150077445159021872952622645002548181226380111414387186867865837219944559253924411416543241201038373977395158876763620629394963754861566854509838709329896359470432960488180178085663974769059892969144160889783910434333147797547924796897973900935878197370404963383220077673113658598571910326082254324494394474927895276830756665796653814490183658975777407338067434016541813105928620498884053274452043055206774107206304181847900481644063890327128425031255443951263416413151121688358159876085627044981011956677494285724242132639438690668394720477873932822724126546525020423693123594650314465753762673397018189726012542880492095111040975422350821728541983296792611844397539851305389130958678077908950798537205234956385893031527808380748600310456647838536956806633365783366745255262032495487242839004153386672559796632754560430896790565878124283871656793955893758921887352008208859562089640402601375229835172935002777194398353803510847468036233204482979956685756139518275736137108425105974748393509250212470911344123395640340269874244877007059818278039935069616704582371527329592891273382147816564124403009916340141654379266687081601262783722415201352219179585255058264886474379166877694208796488252941163674878336442810806838541338404989819487655889214999387473676679705921081073158597134097700000300387104842474205012648765535451636101274547603313167450143063328650858937163537219491638127243450395689314455286130074912062611938351833362001406458907832503208463481432602494254471549190785902335822590886594905118726982197828138256792821940144703835589926232620749941719799193396377195754185608444218005015780587717397429972603421224888994818750937803676384434733863513805816484242514020538483756676691347721660680607149711645797788961540838697541506893774333615320543267078277767242884546671147131627608505996530410201100158607829097947633678188809280442505215118535856284660280048184959078586245047867770779722828499538690163269793179348512611201524829059356902699212056085434000440612861793774467043842290063461271340861165046673013504003677841238052257096272121599026806020827729660390996317939125656055722940033228399145727328730609356920524157146705265853639507481167657303344528665107968910172740741024676837419101490025337637315462716940093222242175113161119884111504630600249146509327569277515092185468118035801554239670186684030346741931260753166292922954194842345116651803035392242218128072770213339610221658997345247388322258369196810085876010834783999800432139105329067882813581877877477304388089164277756512518985552934837216201274237154156971936788883970548309225072619924297181078551236454639491992060564654232427250815012515172288750971735728027664714067571482744127423927380644925640801173849891856976997040613962493848964961858828737974254596176766591166582102982141664973201353355331669205410259195635303374399588296357243962382242391704842235752150497145394839684269984750185965867177658018705151831030690343509543732852471766834137109468980108214080894201616835697152689593137064535863346428115510264980371732477505347459584237438021589651945086471382171133712259379419915437982634401354747221532205658433584091918230307239360127254648199829721507951099156123731384535044243010414867318058810247326732939405880247421312008372546131991573988420734364337013523646807438298750079732911302638870319659821623329855726986575692803137946678665118893986738732332102300096682380128242444372345266056405416717029841837503465740397041063736853717102790130311083305653823687108210671429829028247252337786469875872282061900171014801312992433187101444250360357190391648722233475122800006828374717256764460187209782679136646530098590526580657459466691100269212585944782334581386418261461153170361941118045795168338930577861060580940443612069833230218432930490372762135355484837238556702311517738842983769796140138322464673775272533960053826518693956935696918783227627175715726363790492606034156264414360451381065012341340846032838847641243817750529784908208704150113294295852974221348579003183767377455412376531267190111155017299667088009019378280791461631062815325830124448592797692126238623643762450975553404705104114788359120816568665992896649706590862934004386915220732957130002473516139948833560739888910057806437995915132968463356334037878240188211915081150875532066344219809679679081349891817684797442271262590339053317091937761305122595708080808553075154506257401933361428897241347047287980658981008559281301196151613107837083009583438862051682011251269041192254699534985589663181694248137363677683196924009717596363258749561716606875882037972148563880498234586953161138227288558062293388434372107789304688828157721986892829568688903073042328688687859274753472729175745130606809336943711600406437249191815848262997774314457497897283624506242094135874275366573094932064971835477694843796044624686317728696691257482416111433950792954042653669155238883847991083014103384153802039413913224392671368197629938086084968723616188850311188992332736905188527408693884218806352227149486489403428071639098851790908287847039919024502609708570797136565445653838744045226794001192411106286672211864439806791095450580738183149438845924382943512877979235433278906663997378105585245573659724069971799859280088571851281849960223935481409395662284959042551322899740540295649840282010410065913087719793070498288436293174546519673024194408923327167948543744909707983010329051325721232801234457523334750089603711092088292482915464132236907437972637921476956670146833510019282890470691017050946255402083000933570074784153564548595857564090999330765804310621887425308919700042261558332273525558835351874273242908860857228004372699318385990774148671260662927160970362981899476689560393395836526700257503682921594446731502601546272811689920586010972966840856178737163869278889240200697576156936880479498596278020444182257796617166255916412136432364511813755097960962513815153236862747603708879856387677102255031803342265106013389283059044715181119756534188561926155119417508126545186444492098136647857790352435055898170694013412656775912959725326779592679031762883974604284082634874892406776310318578862474402054417520605548349145989032007610641396121175643014372694319165380991617472703977110982767911185739245985056580750634395205146318394754112406144597092625021864167019506309520333891799570756947935225056112125066040243789849501944198078119437727071752360807140712596219242917632480650586261798748660085144804037271434759394026696215613258974775938817542494872296363754016362463711811835972331419858429349680035691706652695649113881156761104018315824688993255548559719364636260194240966769087624255997035785751955392526598351810423683447477581861914550661482593979642693843595205574238151622721254051789174722122560899189310308766640238863443696905554033443352729981659289373938292565139667045580372565789168353176921990166769396130599344160471096483800028811685497216756322395779797131109920172559409598112273567956168427560731955184178516780851983728037345236921465662449764974659257330133558667637738325130776785348130714600351877620533948111854001726280824362946375475377422620737984708840827263480843182383302625082218642943242762091246004528092578535295066527411811019732300615482158962262087750346617816511557941169122840594325949419623720123373679618932220868119304803466244344118379882771678467464931939266167196718120548541234920246332814199918236175493661651140403564061211552128648451051678158427073930492881698289914384933882390553204467932300085731180604291227105388214950692434087748544505083595461793822711957545549812737496296374196688468044464171223520530544366080720787234591752149204390624728728345840781532689524643507959410457720375826266603654542782832577590561570972709691586288860471339285389346660369335116379294556544122173269020750260318961231591643075122644629443670626129881608601697943788512799702212120582527063832075513870849346602070011940737390897498307927431134821877054820705105740683264161953652934916341807814660189995913933264774109697678417405877694752563469371094462911085930824264350816759508715505404027814479154247351152275974771740169826168150435978729510059250142646800569758476125091012516906489864029996193450759873635892272958925359081784907769097606348179155452760573913165960461701767877565044483235029393981261447847738918311471398194135955696779567576714134902839911641027642890457238251919174154196769035230162291059456483267285571617396244549754772618839241313330115214738590142784301812579070073844557198778837636785092687826326104678684105858737650046875706368673910115715738209153527358033024208174012221603622759155960502863810435790358133298572560289222234613964988579934031136730342899869912894511991796726999876522108602552159331982608355943775376132249307845121548547446317535140891492452442555420418828636294746742176369122453636998774369111214373717745175284098188329621896008129803753574951969581036397392870817016907794272066200536553290573850076307734538561675530432119014334275687839526647795444087296576245796018089965367611090039421152453935491520281706297898939305607368764108651947956991357771144562736818996363165305938368507609097714740144591691392817779407470988711280188857274947663483164656709082268551101815539071733064774323749829376378602286288739625544497190168043531366484852743656671023940693993992494290460611639991041701857743363754321993397528123562657989105665079877684226107276154451972831868110444982750562562136521988921659724195149066213054936506907842975467404869269049427640079030999718181847332658935195626082549008510490662855965449869089464847846449824914453206387029135955139239094664719817199717862697014583054946526161495155662524869443304490875107252143124266701478928300216269959109375756676072339618030916879203343097889775037353134253239064652492340656300357276115118409326028816482061412536233594925899160907434382124045328476528047705698678248781562449486184325034992572830917493461175337212805792189413186820662515217880395189898472429000142685775927617140085749993589147067617927521222597310130143795128604457912305830517871641007363093424863927606865705773706537369313351256889730340234558336836149027079197793053572755429653821293106329178772313108607746490461977874947032847814888687537548897262840917921061752380623684548290007555168497289814640865287359990955023748965045261813343522123193982865121400075908229581349603907260518652952646120765285365664663214291371145668254071911923244359327238294071181941730795271507608719037352425097448151219452890973367288650394855356007152677251449531497985390930337191647017035333722520506250969021335757032886719079273259471618123557379218113537054980777491411883573194822007364282761686722869357633633782982141186989275573048461494248794744670132098713638832964337930631129204031659128901799146201751067922168073368713589062545822183101565177169314090955634727312401566153059904900102982538650167720924489240102767394395373508688149994993426414845284754285859349464670555494669048331618942200823804353694405163264266395653922397580824818106300258565993314836552188373830810682596718370185438802432637542092246942551622947479587899160625203828121110153992353878304700403405954715606087049960195410653232215143053448305179182613240692772457869493875563609672731849070049356711774790081619010317620832579365163458867039397293314346486336637430821517925693651982588096673525543962001356583424961341095815801817908376637004704285906339625644907727067986611159844622087139239759850107873115458611653135884388895798695280353706377000591743542640725558260422403667521892310905787455975393147670442166499021244291284171402176851443618117671281612337298131273005031245103414078228604998120743472156043215750602603519668337511820710189377790989480744152002325051373376819231615437891125692693954695779415441910679818461626688052670426547651218130650794911243817997132185735502993909446058439993790867476176726367359821341513480768109728825821071659727419229880945959654437034192404627402253671516254038048694610693778369804951290260978881004422438582577615553511256696457774990388995257090547763713149119211108256420187935494101851595150115498849880496595442040670264960711107804759854969715186453945072665156222788829385804760668164834326221148363547649612702832977425261208616858854890296970756135361985784884830551368111382226708609048568051301320490945148100615862455114777991170231502652091357252662846647360161447172372291905592159200379288840350011953291620202779440754953780996996376076174944681369163197054839783395182504309510967701059585528240098997726136833066629582959793501794466111076448321517114777094997422180003061578334725719254538026449033175448158563667509912861146429870497488074488564985054179428880066906621566181307716127063934630012071676780506419789419685449424540906610703283006026499215462026595111094577041669234267791944963345690087799095622168772896727448300803331444468054074496179550506916418688312334003097936984943998113100281005282816268640562884134282061762400293152196102094613241633179984085053404666186662521192557458973664677117938677138296332372483583144950400967686469613210795818095792619265716189984423659075376452042110723760519122573812598300393313937911792506983701931898174624690395067910078546843628036781027423919065694742854182228221014593271583688346745588574332697467179983204701140905212500934104009921878784316889459976908898558983529669004679259859744585730270400238384204497673766666184677048077114532331000287831101499204577342393607564773904508054590983914644245277628790456767357163137575977666424483311233064483865954711632000811358038084855773270902792443992782980070629446435076834228291886221649689661549864999762498720008394000211554960043408300090586131283909278316254547857039593614445327524350319139632800176475825538470246699318233062718800904725560739993077045355186799397337797706236599316045652632551004212708539182563303458031499081249004619800001488860388905542683088801145501881359109215518445618413929453480214105615779306359779576374295708581199279663489580960732845893080831810887187737404932731858259196020210571242906849447976797547631294338045593496180082702992527039013283287357009198089572233862640305839976488932633768191830979245959663599678404811126610623581669373491746316678200440670409945057171425658628302294598155344126083871749730725335212220537732191541685034902009776749279384234278277188079049993278993703804862693466179715459134093963121615551546753624448453755080519363922975036475225105035877684566889670130007098828766866095439591096120505162654519312519029296513981798524531699726673757643256242397982909656947220765164058811940172877291179492171631125596782649424304584786687132456957227544894592353196354853877947718306492486778085680630463744600864242304459480929863080129677449738090597376134491961353124406062323510674551703762887018410568534013026018379357507190103233864186691820887623972393625682103253313518256516399849434498001200831423764994459903377495970781415422107116135990973068544372098478487258208207344229283129709353705954338053676827522384858380278768086787637227319281538835269608790260320205704906724637514322663493624633186743342864030479382433080938246143891831924020737733977289798240580744555433050964307055781740074455544390282148159340342798590274795760214202046819233342215221083295902086588106730760081421071504520222356299480016603785263678479076325020338204436891569876490251602802576906865015636323043801043032707809264277598559823223606326856709372210869161071364296931280951762110658625592043328384091069240312424121328918558966009403581242793668348874251734855172685653176257825825595750518027088373751239996384511029629052154411261618838577513198250951551134173419337049185003264714405607852737957558177789014443454459292540151849070164759338110207469875578955014023264116462125096949681629879728126314305549711265846064272229552709642406423010965320750106601706303579665515022420389779703592468728687603156345694494678859790314303768835251897917366480090845064987771100236872128385512540992605461839200206419905782142333162999814171513803063006277810996514303887162471679345559491431024765131861357688479117572781286203271607731471969804742408321028542788821500104669300001416420490832735512454620249896658274335202795882014561520381941161048594821092904344192840260542684853701151778596503481863610950547553144798684341863775185763922172781663631426505684995021008936296299424052111668434063885319781889248091875562201662346139606810455782170973654426991978763729801201899627221303233645635953991534020578115911761455561328092474355934995578131422776640159500334350505953331819422340114046152168398861021225662751859603663842222532327430007688337103668721256455028594561201022283429728939397587997007803866243157928590014282510582309755954305946420779781152535747021833466610240168013685038553358012866639723060091422774450173442526600754013213504467029019060482961340361742867375471378948945246099197327179630174922100746500237767884337469182515532887967210006851419891781771605532688753642669654564099482906068448015504156771368923119641590174680974615327941950292502580196332215329261214420089254179402520569587791234613553197789866887799622574505556969968354087813942345986045861222551133371116817019192280532771597787297458726205874086346080089678371706472675330508618923917477556322758555767208613025575297290990049931911468675208236760538205850660720959129212413628206550499375537081982095689597256976112772923523032602256553297642205839961533346072674833292326473480188343546433746186540761190531310948677169676006782360246245438079102640969802693954066470796780844735415497834802250435751759885130991548036211926977962320574569291294406894731251402528274994658413038900198437596377418826247648888143864638871101867848825860031447287588952653342057167709255952519807082849044701036949616127472879366294513629474701561124738361020748229254264952953716532057723223766784224291777984038148358369276171904300700011955362684177453254268645803456407996306545644567252688489289901650512443009692569368235822985297128399932133807525055755404447057210660363820919042048282901930014439312627287316380081439958177081306986372511151361859716657577750645838936889539279428814116244133396947836759566936196228916751464799081633790650918223297546547526807379879190829080053151497825272325490321348996701338280494335176641331772079553398417999167062804035333346739511441193683941739976243871809482110942973894560761472547658785921139460321959072557613830141590354413321554849331639860811359923580991947574126685007056954593822921676906773983854462760417449764690672977616216476709840601574397837414785055467406081123760832563468950540481141421594328673404079410204095907664880919925046018895750905430979909320852965403139049414852830668599963806760317088825171281762217316648913958793092550024133804058894801959083812245601263860255815059077832822642953496319251198121560506283055733934683161573935909694718090058870940229093988590537008513647088141851348219636587623323583380219389240387107340060184181577240405668532043602423419756882786432230775490531334132916744816583339653003606208643300792433967270563772877535539280968636958783312809648602777123685824551523736002349834607087527859752707187055109632451347888080757629097149744495828769551834523389952930186995389397624445438564772937835043775056585145949591660195858369830901147205265850828718905983406098782886205818894063757577999726662840983064016280650060392229371750537219521345189789492568831297291308295651583773447363060281937192431176982840143448257407427577164723940640692293868751317019011503216052684324669837651228403377377605845684221792844189972882036790583386605732341675709075336499186006357930632782682034275672724847193445185246891613008487883876190108470067975630905002788117887715280010392701589166095853273434178433723575475501124946048515283928460908208299800299798885161996371894771730682542204557365987413812392373570133664072016555437668038891687587605842843591591352646857761141178665357159425059073589480027039427651839197019332463804004338691202470941210064111296247466577302618908927381745591932568211485087990568506363652619318269101729522276880839911128043474109307782788756646720810882330035399510051688241139303756500548577165013904615642063337709575747893466601166864757226531246542123370625146580010701713631435007397848341117159407410816808822035677421907299531394297258736318295248439665886649424286797249184796748435363464521836203205848426721544693639331546174420604860493068750923415221596914734231493361693132751010590398285270505921981456780898975013908107483627554905401936793380818214518228456184735103431690909773958066848566093005873364499118006398454066774691774697729174972891497272545723622489899271155212179861246850113655440902969935207379946885174496082119191231196817529081088457985523763314494296078539797776923910094251316536496344955830112416155036212104076007867998771970081320132493494316604978150311690990689693563189406818207308780324181663550215955592147818383051788499072353005328007277950281881015157751131528696187221739594058310026240800340836796345999467895731726411467173905565737599580957643980350480488214522466019368316444465298607396465556955204284672068056447121361149656596962010207635338291893894219806033301571061634383059123309164304763411753778045533639024500994185990800089271607445767425977766160441512826836295443320167257734015852177640720180079238553815720003604348718195271485573923831862261303066231586226401212826060379842321533624807509363816560346583792796157736242339137208871812056780103284904896442009481804173844398896732423615020498307910254938856147147498684757681907151132861423929947239497798175529745197415411316259744248217250886514532871654069261417335934781626709471938824103274929742015463520932871491730394903234280987093172360867230247088932239202744277005506212878208124753326899414271683077649384566578716797650661909254039802492903765350503141856893927029206140522510783456729843147131073215640506561636002253211052581071369423378314326502829167209087804300844179241645477652052363574248969412415698903687843377402292160918296459233838023968755205424109871980101265730599641495415085224014234430168474463014949666216350298128207483978688208156175587730100714835874250028791238358095273150114708810782510849358127926345915113217806431855285496082807380202253408147406992764382049190079923465182628099369454852043801764620494136088597115209145572740712871639227813823590182681118996578310659340272008294381993982692358476494675577543305266340457559416868478999776770403708246196980864136172115882761907000264490994667540741899596422104435343477365364397881345174011634301154740583490581446094122328730151830987996863345344296070265303807598834687216001189732933199196742604731557877621896990418866719737114217660721536534399686525585209332771507157877290711104307289281342588354577515838549633273119893889095071684502589933161095152444011570186954897355589182411627647391297158581754783475013368081417159956292965235731821864231803648188672250152788828953600623190146982869415932802373966868321329939458065522167844461568990004738373737077139233812115817209895778252431195690767113218140842595589814488768603248534760924499440975700715694837998485200066940274401813718950267844941027635648075621853171889293205947506775289556919423170102609207780155110854281852243488374984392535972154150443443575094348908454121577769647989076935147759149172373554737100309175895395832908312830159659694376249605982873675125869810127224983418977850827910460029234620745297473833139465529666566365560671811773916706148331314194942329970010538226541719312432564215477690485723049876101740474062227184768270161133195401122691379241405968336671156443093376217280242532032097003525027638716802019660602639862921732949570871794409318666176021042241152949312497630454750697735859134302045440626943263420558327860605384142857823449617387535977752778676105158998328864832807552667564707796146075501744355087691667184440177262037819067778317883855249164873023582895387582643337259678535884130846014965663209555573465097188040517247493259561941965698128749232590228861020727579372079679037669053096655617600211121831559574164371230030837011409399682185850706738137196322239695479612899644713168265328329817547126502816691996850229749755641034284665836604265709742103262841752372077194435533030953867852149026279832723897836759573993014798471662941032806292894421721803237185868049082645128091590247513713449526805395727069602662881768132897195127592059484073382135533341206825299938651621255456238333220181816779605999786504080045438904486599433095706247540222890816823649530099911491543670157406894402620397517579412017855998196106227529071090232432147515833815971314404839593728592161875119838353334877698532413092699348812690698315905790966037487229798140023744563809414175698067340942379262663809055376573899172386303338714251610943354281769806570074852145915059798959166313786376283675269931046695921562993910246246479339363770900119953198021039300486407477756582703962289944342511970719894240512047234464207504405893773347439227434827215222087008808831191580987185239420345787246501650587186946534005036490516934104357338630316157346297627780562454519051862563077413945933553294499383597779364840276290749958132690407855058803349699572468520920508492140362025590579978690972958441554456329391659394687568601218242466234129755866857623977172145151857128459848239016794623615710639467881752495245426738520044246424132685477429071701728325614412863570181516698681493423979540276975899242091992806363756281892552145529501615877934439751144800443031379912817444956897270412612171962340380804711193770022905223399235548666303092924577909989786505260987425957185566035849954375747744294888344220805247639678310443352963166657915060558395400596257635797633563208666611600338409151727005177036554590198015102121814216613405504940022283335848025738830705027395366745049347588195444502167566847976184212565154679689396853003599546269115602725846773589534624624331229431522504790322137345070239882663321026416646199655478300132401114110071871576656581885896307150861929818507704582755874171751985733835699996709341617357963745181110031913784129159828518608690723895431877226379501011349967565854487281196930971250823152331880178825601724616885488530859443265939302254601291093706189858949802564243381885456702924333988751885241277378182262242615451669567618800317282257554107902130882157283329999876666106244859048423640139558224453779900607092769471417585947662784294586384031205008935037013287223712678776361912892022307665758172709728491345439481680782174087035281609648386728002020513940340264652740360487748465496283581424393387452342236262681702963391462384118530557140189042755380213675173634538948405266091019133574958113286245376883349749077727940395143640190545662686354299719154137061885213987580455623707483725214318475766784566513796662951466355541279975866344773626616955467255931243391258352593251699050210529540460947838554136429634785658455173264141508104954267597391760498826265297684581753057107268052071383928442372824680015487861356058702038598588400298030897345476020314084724569718353186925001939274006714160416565649749272260215162600583387815495797394108029869572956815394239424207499051060651913596622637675194452305179160120432917071213136842579337090609402622501330200289098066955325004974998311821280119350080791248111238951210015567232323017656315848245541626893549096928264954309590676044732505613881569212776296100076466603311540704423810012959676906463372093057435320529438096792610299699774756916101228197966855276341060063448369442232392138662459598642739474427425636254597313601831653687918039941991340359373727976176296543391773302453496184474669999866646980860514506030975737373604460631117308337823939657584938881279921251438442133011046950794023237692177558446637831206375835692445223322167829836394605532607596713778908717338949565520068310524322098456668303229553998770915731276417830029253149613238829864767521496236442468280890651419451083228038735526932084320179488016992626942468843692383433974148298746604843955521372555855034285789911975809333148816389962881684689401244720381617094930092312791109439394434509950647608763613421273889879155378028973610569578624106270822181199062445742417272768598210234380296235767393363537652659262948372968799041750722909373980727154626115655058204425674195215781806975766384459934344920851223728786405258722102312822758504792051565099363319997104056516949821156232259146198458433128311997323011190986322165128448765317922356650837013336505895977991119816500472346448970567837894469565466215975665372500334453607540709590766457516499242065689382610699141476117502796580994930905777972342761087658593781687030236833042275133884819363722694683546219470304451510104319781876983526591103674270581941454597373467978683229258899572755338549673193574050106571951230518868274013422928467664096768641540375140964207724183211421563449225678424581753806946108097013632386844061348040429371906130317174957203004577027038796001851908609683071394438781113245812161345749387363256993355763540638451120692100503799214803329100732247526702584338325291241454811858185723235698943535204333694704536352569198795209423321266574280274759401411106143340435756503582061760793031575630155484896482034468830560583030632924889744351460114346182185422553471404012290892301668081354290216268710987403499711489920013467560408987265641433360226251551996140261333116831185565903698135670635348674320701685167026997960671391541391042165520518151017209094616456906166534587065514569325674515885219591216608085285964636360771013083125332504146302329064384785294285706045178278824716904110957538106066708142844752478680277951231116029867702333582416793787595506152605487883942044154864633016263823694212006494122598887074029758636862902767166119531156854947506681190422394601970770214886139579225988604075317716930705652273773726890558910825019879023312328251198591959172424458645900043636430665273653977159650493736036938048250828377459034285786987402849108563645912712525422695317630899808875943236716416044997502505222265875928413166741197236215521177543580062711745548196366651697773306842738636703175338640889646780554237184767241189107905220667268328989460672743110007276793763607489272872063476015308153343660938541642973094884341623443699758561341901287998134479813272285909067199902493044564504587598024647332215963291050818057906216818455434390054317397160440676948418717621898448049537032754081302169950870963525418510616653089223560182811043366930923240324708135657030439048173412034694372338705403837516607435367416784602604831830734063350669204337263414430634878135073606123695456298995097980304186070248101410236700846786836652572582039438596641608546620190656214379520996721605991539398512172248094152376098568145609701590387977582916203941422127664648251936185002147400814852646812675819730419329636638564030227574987719916482651653462461247549937143052078927603778096516497839287125818520345501974642799464100313745277195506114596025390700426362061730344116908279958781451544306067975616821652478963915330627048112191636747048168244675299040092212359972429227903232926270806083323657302366215193743692875677245012127120981058786279928779721867150022804376395095662568537305851896982177050546194743479450210682893293444411546387590790274567780061022601364271956261036470875082523506165200891251871570666091613284494871032596912916866922749484359776514601197908941448424861645593696326598203860034821366501518180788522763462634629319518775034326700534974582660112171993858929611024705306857999836583903004066323729443939602023861323386243213370863912232402723872863270090009465456208416338218727366324063898780408477593514204593044510843716280693824237319803805896802063629680851329048331467127588664802255561556238331206912664805547300815699108503124144254513925847597590333609408827076515502523685568522265211541635691663908202753380405615753521519737514165101351313090325338217069437645552233628151770384624206026644592925926722009434500407760300360870372302696236138650243284146150085817057193599470086725023856531713466583758925741917071240907952656057943111899091358772940052612821579390408049922823656348004914259754485880351104401995992315692077510616244117811070705087372807210393743649427945490301522150138502740458860578066371069991693231009251609667893958027770124421491914327147830076701191023741289030365723764878360841271123024277964593608688158272930420027699232273408830462142790596193391844531490934171611696657894313382021954525692876469339114146080195490340050206340740840032695167726767138994296449512791342501051345258958385078571992617691316380582553453959997897474462445376096958017787409763294063920939759220364480829492794682619953367352503170192017668348771672800708447886937458508795672051104671789441762213631790671959230667827372763885580698215873417454887801273206271408279059759405119625232591604636057545319506201871929361216297617337729630846456883962947777241072620869345083288121890434670541374557860534492498988902100975161686581597017101225071278356425451411495116546087094471580502753461747611819720133723572338941157542422433285784570352008444059452910451630595095499134563628090610473875617924706493534267075449512170543793513069241192195704726620907551453133040511774782895511041057904182998688035729101913088313104383484421245788621699681149515001729846545664196718422524742499430823808629330237379137365896645582900829028542454506357531962579751023962995332280025753389182550210876542292864166300383390951684224555787917291396858128530894285880129133255438115510551960888126398847738178185960464602634924120073707359619194037491222654217448957168121911075259170082483709860295804969935623299132673784917357781342905392402126556883161785001478209038793063489009208462150726730496074369586687334100344616516125217909502244669265603100181600374182493462635317833053494479536294958113247476227097950351603709293805490070669029188806553565663536071959138265878507194827101450282255239305835473344179000791854310128041237786067127825904869318809394685054677625415120328458076119334178502194372012013645834104447002363123233524134810682921503649543564461593435121494742071389520124300222537652542234577635946339862078124135584669293256848454356008241421412568105428312815315507234752230039092063625256760729579551902348314177758043496162310203109504675304741227121831304374625063529076176584536796145100573380922563330626831660503783900612710072775751347532752461791106632598606832203022476721116612607405275185457699688542691488090532437970153613404912747977379672988303745305508026257302786788576830496295115720909418990275831771598043149500164547950149369777377370333513832616433868336717856167956466435045337190014264166476062353700265503072540119535478837143514376877217919073497001702456435479967987427817292575137286766498833661157317811430200682927100913848672076871051157964068828872078514950996362264709708899969663440176714234669075356045451562981554021297051731568623463129880403441183728766261139212020744390823661533948950058311156795413435286960740290728220105962470791916779854284087551836968547742262471446346677797664724175501356313083217070028677780888372881317879590381525928089814111610056557161784384510487240069945783467660865484852850040730906156705553044089398636158814172522231548535397912115821915385367992479822658752071852605258578620910447554387329397336133633159797942693785621851209380372620575826612689165711293355886129463851944973138913297363863289777218646757417724717417823889659160656778628225389751849472289350275641834449931211338761766720942252946466845451695940705536674382330636122412341495256883643007076382566007333318008420085205580982412099413568070081504942292273970448378179918409920015707694361842996845377020205719903719120834019164764991822908798769377388986119274521771881387075992692242172082275622887285027591345951079428566627021962037844353233351957358700130361893555179326738810275509451587323219582378330916049328479333278031009141109647883200674709559586515275816539723474175430595144667397045244931218688386157218651877703829366368962376187501304590409753583655846563224716233153108590464120913798507295881460005769043468261244290041845049259890106425879138100847613170626805229472479575422503136306983396808582042939648994038186874902758637855986672820102879281669151798923311232669350050941561233384303292098279395589081570490845423421042245074404620248700696673995411055520936106235162933922177250929670602339187435846703318932737048515572258994276989179818971340031200485878230821074158356225881306008298728388639595987995315712840355323691637873365558016521337560674793854238767918674466366522804625147514807403683131131804215554293190628501777144954927608863198516525481213602739466711469065380531578393889143478839475926785100494260264502137312394959859371683238842862672064029954880804370607158517913238869889386351171852310091943620384316399138972002350388829383021110017202109950637228663050250776658996460444539730241728490837162714946707082848287081855596999203165362212421673260606888556571891213094002881254486703859271814172348244484219516201163725200375130076563829484063088531558140968448510243983674062135071547978852244166022124314868265795411411460553848913356593764073426538226736199879405130804809218863389336436323326765392163812813370258672313662862311522134858025690686833031558217331594077103079816299793581781872363534731076241939797098950715442056604183508245566971421529842134096106909323653714005803211540594522048115278483798769341572084817531263715425755260787014453086172802907361553644022613381089511243468479423826891856566046869151020932217275625643464752152880049852761238293264674054421108197401914470757377548741150227118098826499472923183108304290153011211124524962825691890582047310852782338823579756506640098764972583290719317270006051779473203468091407341607433201967950939056212502085170506825188882122949607876390609470784726658629871909555908669079038281724421554480110483846940282041610474830816813322681645953964427859470493020543255272386883106066313751688292769404427726462341714709053552705480583404798727357035041676539865242849826651639363732456160119346535094196269267423788454288933569590137231547151431066666702531373194197257344679022353977132425302067408197556539926600535577397718762933514170396992251947061103605128335333858012918369471341934447629833692435435139193944237933826735019146651324464446749057007921259926849181277880700832250687783379529693121220592613334294957141328055434823674589285449322387408874742840146881518190248827783744593036516404548249873257587368070362804918808536427898147088741713095385766462132980639461603132704465857352691605768993046478902975359215446188993807175878242728256193809024364458062598562141444387681894346941375535103691278243987178493396940033324247319808284523339418715723664853086122998310845613531124738304611022770564465024313781149916898024305573230950319248708657106743871453563038687270752037741901986273980784318698837425418892837590724120346952792416009790614563887546945852887798952322592761855304419411342452543475798233852304283938128390401580153985289593688430731461258798101853418141671178227990907040584592371241246269213595262714685919472188998228966159560328958347601067827403858521979413884005488696636019487043069975624880707673911250034629373717085558878426505630739798429078408079782973866856759961857045791924843032274843613871234050628517604387771294814437665754767076363293504108589142035979693819209890521846827479581728546248707559455389926802106738234322534381607680620948413389084284063960941978627348960680034310617194358521802825451162477661415000423247314938179679305223888106650902573332042649899570858269105672390970068503929787614823159653505027564372368910836569906550269104810594075290672646214942422673695104396057375678870457787948129251829978428059239009362862147285066551068778766284469720235404792133902504716898313715119859826699764066284934236495746439665206247109818518775543621681610875486636870206992682871007821997460244794391432487157129011745222913617450896487988270288872879269406590070562332838006048147889704488670009023237791983690056670799451676413550444055469001978509592388043009179206268516417893890756322361052525609529342385495481400083166056266973379168180286415373312722033784049460601958497531592308405065976905123770465732510267273247282458767320935163213524479113144791720291092405911899920614652628583953670638327864070153510819680559325968717936486250255720522294737781068396651630230864349298196880052696436788503455546896746902897816147307670121452498617559297934889697146702586905380769212230913099685871809238757372884101554438501210891783186051784794643729258213123254352029146968279955228207761931952956793054489051637485615374008478878705927809135085295755442944265361521612522915695303523174752703776425415548056196153905388403421448301707144042101085123869563515603665412557176233804913390296528889997528450692077327899686465041540812385183885332801341545170565950249361161147865558149876650591667619070537135799627388429619276209122653590496243732791227340450353719950095980676332283167479327756707259211093221423146446853388284442258450488251727153768221390668970374217967662099165849673116915053248029525976882704090048295629311647985959647083256153523685132014888096424457348125766064393725566094987328804450630963324582215142061307719144732872740750654904710627780551330350875191221724375562944108820625961624337462376932655536510512904259458103372588772574813037137961300288452244641392521070888222062192255371223124105966009561252200107299724217919408979567513042065621269826412301702711279402875309418980427957410474662400332438502831970480537080409821774936750313452887186259735171011424026404948017670911212902518614553704527209087956078850839022894545522111691835999903812542624841257542980760336552391159749995064050011195155348859339436065839109369924622753111041076759970643186627629642854176846403474153077809361357557788016381698418968192618565820765362619005176422360570050306677987508060418673314830894584497003939658663791254262051081287204164315306639488397372309744765492201932768522368930395106874425738166688559692206833476390911206510621106833560516218163369016157592629261635389462520081526897050300026199078523039179231034724266866952177057169187172191692564471989807906635974258831903928151067404798973813494928236511236148516591841379308735118849510258543526885599241894106398107943544513046170282939007964529525758825412526795058082664322353202714542610985360665273469556084391352061959287417482165994170935289081433105436926055538747753019505397666966575625384217341551765128967632597395077058679804126221047821947718621534125901943755254034048210769927401539751705686234510238779943543498454341693026992453883838242006269273630726774368196788738786051701541701941881101389571484260725128722452169313882173945864675513171082966403458987330693013703158000284153001515127578583701038597844867460684538348416004345886778316936249216542341794152877336923406136281688293859540787484027920552489686828157263380932468144633871202888980505117167397005864601603241869737181693799004635475808163761044253008930559560238189632692460160771153301828671712850747745601983920999477240409955545425057054301534484466805887378729188738580354270093651600982012844865978251855280058006906616115061532700846329219006923036737629872824833077264677083983693437095960864622284276785461217784543255929864741967969031363176207553208234285451862640590300680133423141934843373062263225484958282155644986871274657097716958284285343805922491444651956676735068754447286471761103963042324269283445205195250460075084373211226931603022508025428742681595322738346203749361737489319622439766355602415448506692245530244792411819057253096834897907287688420658535092757235069688482423815061966124934385403100116617675460059361961610660769476208468568823994043084471047407847264033592965583471902550632992844910933837026839606446551159772160019772111504136934461073958883055879644821869804528069988681526869785841311868290292517106635713868885132423493565876890961947446057786913881012379146737116537654790075791958676694684173432218931156931582333170367316729758439108762785201624633181279790067385154871740716444903011016646474594615669426562596749223743968950307058996792970237728231905393970218373982361443131935839957006808987377418741189846092031906814611426209449241573163447140194307621393993261698472812700125360481188634677380289962071319583540365832469691400907138953423387410500092520538530092383261226736140628532612211722331467475710703037588703995789393515667736863889852011902838894401159013775388376279247183913794642168018357380655886475280273097514986452048442327128843437610542299975121890515892495855201250407925702765751651247031331805246583603351489592694032744024457029295475742202330985842392453305919889715478299074520520915850339444871125139622182356368474878881396343709844389040697270993279111571474840196913380798471427777508411909709933081337189027963110096886294353176496254551032189909117154680191839365148538703520388352127317601342245766439510457365388782169049788710938907923456341168217507448256294147624968016851022586046114009245536350202177603999107874375362623073834166297657680832047264582785757087616285334211368589512625193802446533076746089261707791712237185130684524179230041753439145166362197658853963619896585713761380120399051529481143367964559295063550919589037194381843821072050724359513367944036100462346249379686858254250371843078715878249645367497727678331673431342117804054809224920898222810645432719326502937389665954964964220155134659999399055186613155108703575960839299962650227736274472929795387575424153618010322219668052092517901616833976005259005611723591173418996001446437391612124092139984605079206285359164848345317632695372451050878553295865833514894802728537771892467670968517061274983352439033011682765387751332449504600452601780584632371819085855901463349148647879499969903019286602607548247821205660453252085548696293355172533261369754500828487434307128899999723890674314942109033856181727936895635268817319278742645844464533232360553878077254656179055899599850153606737731990768149809133007731274732778833716172058699803759814230754468532693806868231357391996538247671637323205840481229636973461795124456280289438392408727602789132724085210685917420665847829841534597768394377139428846778541595162479447888436869071908422507463820953135566107583768830435798651103635346434040160148969143187285364760220529853475173008754749729766432957990801766397913605230188036485515013613170276667277255005031899067403222077053166362727600624470860367321339778171484050225511738876036092711968252493435470032750080555138079534897693364399884064059371298299054094214416845337781527174876619507640500750555751525095091826677830800654285543857102313021650344076598927785337889644492589607799182777424515230943681823645524265868571106014219620549645942438772212450824576316346725878654196767253771669914672186317081036471042826808756750976294244180354458449725274872487933467506198649037838691881066418004571556163091609700846501880002728753662057449458858472783304640166028975394573379961227207030049692234221668141055076312336039152281294529964593249920531921230826897237932928129364375818664112193498301949246495045827813523707544609827766309453775562542042697702104975877468826333068370513938133713800948257388753619818930949287917902501002924600336738971928544210959676507893076028056165121774347563222314576660078730772873692513498617564301936877696767470758862891868981747476133253641604549085766759058776594735429924681196721630275771587261333391803523824320719819767136123912197613421982607611032863632479976070430192341378954007673102355343167447282120902582735884369202849648109744951357529673470671945551478012584192957824394707572834603066543574654731445180617658750742242737959939006713577473116704805060323567069736442199619406925390130637846533320895013641149348591406595803726924458199777846497684600162135207569472933181049753130124258890416550335529347566287409138525685347854341906240519019326592171312690024204201154864504303361882741581652752803149067421941086971526068682209649117738574059100131073232305610699748883394478566245398482824743365388365412132844148760171590436514821855643824087247386267220103304295969077846157716491802868157963124900537113466176170415347026314988234788914798278237455193823555642641975588416313861166525066578245994396616001768652009604147511860364565556049083994381185940963804387678001894072743120826880263480716356253458329817691446966225239353762186096246912480390362938353600147622877184393910317970268840145120442543401842055596830085383066476052217430822630506815727149009444366267637313378655282216229616709769779302537021813428770511051782532587416947015582761160772993578513940713861819626868629500817003876698493553304362590314768652741409275444708703650458028649722026780812802507633599548765138104946345888250846739252511658271532428147161172989092778517488967089500033212989267899294628712246891446593355972178483897003065047504507926455077904237221201663594263103484239538655113492554476668035933349428632983073709866496284483871903341486838599399543133133976705098217677313953516830281335434829687942803536666634784109339292899303482178963620294073855869405635834844139039305822283720569774342370708456560361616951939102693533513407293497836850368165683146157448814157645302010264955028685228612901788813056670757749258962605172797051726549690546068541177652597290948531852936179558072982141519242796577643075734203414221583493060871825834909451436867203574393522717325514477413574774873213798644521164911472976830284338621251743422622080662400907436199543089637998062360101607568729382403062059543161174359636095763033052789321737048644323116254295518627649760207410142762502323680590375544527957593260751009189801033791962396299696962057822787849453779185080725383019264289372990230548715992642639407630342239148669012954941465682095343498069568500224084050541528305001468096517691645345134135827386566697630802674289676267055174713373865146665160536873071689315104003114352683663532140741870036362661189631653438120272676827426352065803478543850560788232967066890562428037326312903191060609137246647185148731158832347918708756050334536846768749294801198157886248241106350796306968276391931693830570892861784792846062799747136491387424668492431757715381551624105968200354825830793247802299060880400693522824195290276141446044356032202462056217597072360679563775288454970834802573632112792957334767120591737526325447115434604632509196077441425669610178210947658571640737883484111337259211877633734586066626726526388577736347326159056364202532564448168450627722314764794224161667746519688709398166995687232722521740946892534111992643288652154313546364792177751649422474733216232343861218427839476538025787263100287689037487292499969513490717135697467570484803761628048718114538492890133386457422213743287294850112234950197308792796127097323455604551986456782082047111705886300914809555114341876612979304817491779557682067650556230810088735199541538920225625604533234697129740962023435296188043842226384215374604447883720913656148313580808878874509583192859473304248181892165615839670408971285629608322212084721688430251587464533014390035674479631487626417378705702542590946021810190919810559159310793905871250193041608600317806227629772987505658374374437632222945497057790839896658440639436434834036195617447210554711628123751034724941973181767072416079397733459069169597288001752511496256590395754591688139694925742612923499751434528419404193745128723024352325186689587785313966370738794818693926506972585816146464638404721723941559233087194403938194326313892705444416790116255919896243105508489182059377254850155401246776977829663922696237890865498059761791175571344481446919934854151664355825761872762357600204732092220700038963168037110710741024097906886464022133991891463890733375789470430278885402811352382510019429702451584553989846365637263417624479612189376671912746835141188579266656709127721086350941234783072721502026178823410284220488555751777828649071395768223037641490534365584338974505258207261024339413260111206603213007220026360607301811959030982222712376823214526511046974230773092352577573117183570207813557664397052167159019482561788617667420829444147987635775264776880812072273008122599381703564364449420973927138384059740001754106023827875247836014192072284294081859435418643518905516512313703083459894097277824727546544534222080486322138741053112009571387505133035524200390097290916714960401912400354050904541858252630349791449741597108016699555115725614227981330513044415805222226682906910772071955217756631819362940960878758805728154311052987158320317705393143597986614833421995423253550754646211237260880209585182050180498629510605163561088633562492219532034200986304555669550948331967080667095863236932163643736363711511633319676076988534434562445448706718557677955960620606312745784248039947040175666187716653324717225943389484792839192194990254226900955444876956762763335386676262943181824544859664602961382629551948946063868079934853675849743834819407236536208355555788857539995556662348669368287072785017395528363730488030344235308082189542085028608087688947800158151677057769465781161042531773629301483661949978084171774399100781841362694279385584947276964421539321747978191156773615893058600149633967906678569849333047199565698707620784380599656623009102372732423036162254583911999400959967744792128362941442844191368370241368879799943685160667295189232717337645583971828126346462680718668311295732231203143374147863434414262552379847193616941498765751496884578478814405963447069383241894135609865743427067272681229245857463222693252167892193160891815151476662438141545058146975135098086009057413033336862532753524047698228049888166211554827732377897593755709593195101175921633722273822599361706770110616277849111434166258684615280964388802156412593057438420655858454815727027650736379764378967033180544839354399940496271920083924358770503753992361509700742667556607116029849787664437030365318000312091490898684757263152943465783888187825742806906854366800970141971459355062846763278877001044357263466844455220468295014011764096313757787754887345671220301349468325468232662395335411169316655596345886805381306717440086187728710917336684442711748147036250205821745351426859159297543787845487624648469150768066670044324382389176264940513067003359326968271293687431711662221347815287088017314237477073540921594753852384135952131608588584717703200882286314062372062772110886719089029971315337352138307487943341113730808517161283349545768633078797340262072330432858838396072117309593610699310839240387035608369856987243508880553760802273674573404038779320808804041877795914779400441983600994119485357351019856740317632383222443378201611669491255693585892639513372198419954940601553358763503569385411547517132004624752041220841064994909235781141057474074160348039476588642059847756452648800724471732770172202867658369336324193765098642390269778622652830133402305787715883779493412183406601648056040459857479080632374464973859425709849374894628291689496258647604441291485956875682714107308305751390222971969677045287537946980090697627049592619920475415014491615965792279296081721377401471150689760035510749407161956424623293086601863863549346737407635424997691214362703968291033822595642346940594937892185782021409065180865270009077908325103699179364097408165103957170762636005106177968800746989807763230162287641022190180384136623585325900031100632285584977044606376960167358005285708348665903979199114283342657836616490985414084138785295745033378600688803498243698000842184417305771329429385979004986319971330614260810988237114801984378023655511195778564575930470034831096078240853918179912553572955361547274868577299600416835682626110248823811231838995008778811299076943424131331838845671503493549985827338588660365026762951870714793924208923178836067358278048521718899168136746765795838200045384999758435580187938602891339695963049702993252631013243067317921188743299660931624370494434501357406691446399167988217047433039914980999371017789094287719029805136444050171652632270154733023693487875828538980083778964756383658064961122214111171198215024515418362924107049309441080769170142598206449208722282109227153871485442617613646526462198317092863942613792431175390663647820515579941502290363723206832879282785188184106835890330665234177414196634099254082427061762367740983838866801087426551980731634171903765186537813097176168056370507673907815824993384468607166162010849632509574818817096544626716348152339963526357688803275767202941185728425586131153019782555762293476253271240172587177126491638452834967984746680538388370166244323556808943498712687043277854721908016812542341914202755189202368428840200546106041424857759686918144105925172321730552351365192799353902440395042151948008749058575113904707674274495574179410226290072447409877333756551199217571206739427772124316490834559024921708262417527142784601331065093466002507237917285003257110794266975567548415444084875622102428947215646591460536918341800478567600266906349911412764407650996389591076775500315122507871579879581965681611810431475786137018832596492170936337589128706505651394176079766635657508197130100458064979985689611165890757103447703152966058149583613861649182495282267210063567362717040966725999806702446330129306549398643216577684258737913378803322714638165053315725656536755944340417146410789296850464465814185273705209977821062427495229706874374744931666381504513875402689765905623855750080517328582537614753398176404646446053573761628242683515015400739720122041065813457419750443942735049785185463611468049814244375216139405251722542062450120663060423338980859278417701354650401666826340825005653775164400961167108860286438489740367999444773876883825314507607960430774541109130995338961239536135993013047727911581095778401833768980704519003164553948120630880068476060564812917569674517018902617896678253405147328833120073735707223870427093776360160710842925142144959540426497261118240357599029735193850017977638675016598588197230985824571504332233561285715556874121775665878931309845387562950912770731195687461200577151793728913793938687771942217837541005365875974355330977634041116333006215495909030003592925242496261249686639749442263979789376317832354460400138666355771962577566797182381785787268650741508786905530547571753874234121460308655461466971012398530724750896883632186393482682754111778598124939178105805830254779427203332067719116092146518091142558280318528014391674710776149695803702319217167818641985979232055581224810146277427779344515612901590842573673522012799695561739022689240689442772188981080841194133723133255901150586082276687450084039314176661432000725069883919597372293104337950954468818826021290685555549856780795929585363135556501419453050014832337515709092717987234864542947650048150400574938684856371557986086083664461221347049417413752443328954987569875602345617378751901971394795495039663793376009322908738823343062898940116424215635990813856741012774187589805548058631691882905658752309398019095228360008326853508013252911496840656539455349350172921475295399344708471637863289934177168465291068082398870844453405026532033606331215821310075580313050490540217993672538045391633705998751533385406766039009339408489482237977318655825460944741460905043703780232696575632140369835858667033586376617629459263477442526735806661174587177985297902458183090093999359925629532276725626987217308758860181456311512520969772024899311802738593061089998547673701368847172263468593618936778008002753326382385724875304157473511222894431276796203521426852796417206085118887383090846822760798636586534883831813431158073715127163421670186564896437583040487434757391893204906232963470128518124038004985255406277608091462987327081846870054635100741943024095468032748595289411902479546176636880512898943078262634645037110770004567978778230065690243194904058050488805979369166868810924645837342684195353430922537829364521980491562974558902557155652778336681630963708283205696716208211943496276131302678926702842288826544471940654514881532872631579153343477247573725757217787256659400319788448312265083413936153403518956535429265162765218173665470731409376133932387925712553470801666222355111676912143132738321600799473967056731114073392038061465574046245437380016004659738401358218846687117252137023197708620903561007771140220207261251394604334899641291310577178142516986112450949066694071679883213151284997865791395384724746446405876321141387187333084020088713951975996182377129754887662165409931174619947873934025367335041665270659276718266920112245859789791660907795608057483947649376589970347911426164841661056930777185399371245251058312366815462468614592033306192235322102201945889762439728897339419086596030032110894724755911513719489833614578306438173693420404038010155566906165530812664282965302258809868579995873489031415046056686703853472711447802115314363618420397294187638125514803172478013492321712240610879630873352358448777821256831394233238233056552970696998471741814269056920370760735335797922934412142813788937339898772808298559814664014298266106518920577698718659476332602437259026348830029865030874817598607376229712457747149000211924838187836146194361236915854125129137088590770506947913862759786575035272707380620614228311342488687044611236110664220891570822084626488889053743676190733124020855219207827901433061169236683704750495476833830426224002986370544546359943983158983713564845649294219697288103272050618211548804637773659089347383316349292837186445250227309928364013741732655790631535166707007541082006351808105972500131492298483407908668297721471338532079939929014918300200540424197622271899538906981923652976075461352053565857983838854041694896352712674202570759013231713051514717920271799281173710842216986135060899336841870594145357477672444096086881166408368717425842528352927572385631530984350294347010782149977285841439446304590224158155845989934088400929259727561385050791780973512842395117287184054140835802982622818635032340986809570903412273473179415962534383868631002195325646015043785192563459629173442356751030709046213123087118568750717372619432717624985030901930461702995502544474267529953993745419711291603261609775160457082717022744019898166656765426041781537498696739515808191502064876872891929579900453505459442439653850849741147896283344325842496511503031203645570558500153656212174604619181566899046906443013846917765282364061615966801788318943471857189901124150404812004899861487253670572118167154457932266207334791827289242386558134824302116728223590005551571795921038704840590995831777420047070200172700735244206918448830744115697158713479285346502446512830804363565140585875792705090370086658318768840976108296357354656036760033754405561479907590834124767205457687661170118996342659599740052340237696369312059555788106948341115566234357873842175949341218461474852787606324444381207395735309951917659083448941504975693667675775391663512180532257074439191093266742557627437732903727606274759902334741491483460064669672469122152109518386786053869113413563157912529976544784387965063140992092132351213651552287610980173049195516074992039089215338205797074189571011970317297300264510711546160920984988279125198131616775819757533234556517461966264945629831260081486842018100820304515215978252678228800270927916364692601761340718867959779909515646387096683489151987523294399316933951098056774693858514451956706256215857689158774940561777951984571125102862101945860161837438055265106365667808407347472209903722808009699937477954573284377771967419929359754520502584915356954742478024647002806820871127759845615661789176952619007735460827190886676913872775820866827938760825295443054795670149934496529863840874152468517424794921877741774845234273796874186896307348565455666919778900201140561976784387152301888347498458244973472847251658071008204969039469440758053447545554532654300854463626882884011866776377349933325202434597884143052896334409657927759810597364390342765512016688571423627868533401354551850874760166826469017834929671271296160719620061337840001377995873828516531501415821113631354565354085518866355898528339950332481651379380494892207098431501892709079393298029072845994249191543326533142449804857099109457612757378887992395255334727742975604791212795944431888409321305531163968638165655503204315399408390424548433699936956585055044766652249677202629623832660221654699101211488368682809913802251472798482263577711312864987071513701912380850903712584506851287835628891669677847098996747667993623293511320696301572163864086743495285221112124747126792783451857034189296459242876141876333348717443273117276035238184351054820372389835369361199245399874564317422079113669639489424242853787817821808097248902697938189976895911194556264237162450331624246875237724277983859996368914369928944435860505761713313651695426714548539274672833637778367747935799607434917559155050524407768675954413255021336982465246951886569153162375876524225613341993233929462325690110533785953872647323372545948448708277158519028022937795597198591245765446400071994221411717749977558654483308445870694521356002337138798669560016852473153874158740546791254765914352002079731538003998810509883407993428240755798177266668448987290700037384977701387604449243310326041921862547711165071270778206196846244881954915405548624701731829436519860061543669094117612693921691852248364867599426463190868993908165567336018871337735542017911776204115763139063551270920572793222696778019233262384899810656672997465568463938280504849428519208273044684424269960446426085045799658831513210082378070229913368877291599509719204633968287519380292125280255937702230834584663975337936494934926922444353944190949343021640388626644949245238087947866765640294856979585317457761783780856669747033033049522692251742990944491091536181469375425901096535971813224857433183184810965806477660125186871491994612905313559678791445068874966702146189463831410847297124334738146026843217513905693481730892395577300986001497418319987174817841244218992720794627224980620674777085309754476369633709068309103292128282652602639661060434910132342899399626929674300502422809849605284218702364875634918336881504044310574995371439254518779124816051106278323582902079949406653750779896127686283256046910782241520992692438111883974753805212089897260706881064265954371027892409723916332670939876211453232770011439159561633091385641623309367222489821256627315469072383022749326772583092491541543714472896537012260099098231387392929529727266443137705717568641341463210354792474770033772321275019767809680501866789394845322513784621575580123814920036129086565805510789274572604776794967214330457601839340334310094567305158588627193841800930269253678734204243558042709814949636761369669757944073134201425657012947338465550926076033570338879449071368329439647111421202217327651355191407583428697863646880871304372431427994667272094035707094403092750020680303805963313660883233852206567892809779456148543163701208916945987157095130756564763338757367199540074690711774707031330261253595241040298061039702347382007527632970095489924916221377089441024869210593822467289822698255990485372694733398440739946545331354890790866350288721029385247791753955574298733481353583535836697213396439346812196225362049636757990928169772473964929825552663670316532842327698278154452967274188429409762955482567974852580843129731569717906548602975513433055558777036116607119225852925729614650590430857998680806667495962936822766713040010546173749133727446200740822124276272915186500580277998687428871462227024261754478316137125998705244709513413687707035680236520322431788550541760851871300040622848918067034445136301414855189439412191317692853989102103958180552740104417891061085320173332134144178382383267415323119899578359413503433505121262740378166350716875549494642717805555525341079288186115015236619820602645292533153738793892504041913586753638373199153055278185690187165822307963093117903333650273458358488486281834661874616324666526717111589459963047419330448827221581009592430839949133288804534855532785419941361966083350693233227531905249610761117855296875918473943135077170281692210412482591161295620174100082090676069026052240081695089385456931971476183036768605991731718053152642995061774522413691904847476299066245526917369401839549374294984533929054328909384356229619649089982220149325512615374686446721650968931513117874887430993884894001733608696966645873933733228285049805043092914949466809956759544523837323782337112026277183912576276806467743866609959038362820402265372447870986322187038927539687184063134933079832695782762553428110828745374488274688602522169646055584944463199625932524404323520943537262630045115487844647979839530630277831614280990233811530876784886890218413249542462360281770869017727041626524051617228834749001870938693419286884151820175954490524122813472263463629472790061534549568147339249760529443201731530720700865274039465039418569804360395871427816946189511160629328034715946628334023893581262804108948309000946938355969295904488094541810329319853172414139542160887322627738955328364985280756703857694302640345777500906802764289888205097526875143267207466628674355546971234228323817451381419622546787932727028780402822258241662000116371392442998260510729745161056976113084804284254506716538757126845351033251867336100081499283799734569499412481912722812570405393635898537853737733705379319070226435495225767831954435629142225490583888683710303394706662523466585359584898319320579188403107445844586457842418511380335393038995460541291280132822247535681255071052073453851348606481373994915694525946560614808077331463268805520699194972462542569220590592783470255946913614031121046132068817889475869832248479395357471976232307661404950398157352525317470860756232684214390405583016389335481848378190571684270119229601966142423088094163448616354311756217284656598772691593596341512614846171402811088232618788854528990136536021989784362526212613452982369740434825401726806511687483233116348187090344671109422358242421994449381223563957967672086424555003617767369763908332278078805250616770242735141416454397418927989543020432610539451227361629631880103344341148923443399406700839634883414675775605576536190515441769278569433642543448942963758765952568323646173474626159329060608620828688558794491965747072184448907663145437983004729696750234664007812105279634497909336327316985443695177952599222820159810843964275833383422857768944936015607750235542369570718753195113135580969676051927140007352360835942108426676823823443247375593951249101039076819772975528733180677103386427926958997828202123654566772956459383062844843998502442024360596111248531761118718186078424182900127551066302008559973300418094307742534729388738216428484876593794485621396830128549775619436263009047395686892601764806536481911073167685994355433298684021486848780539077065410608528269536149097039429548057524893831565249996844797668446259261565524604833917339993451565387153996807580547191450920251024947130087650253254775722203876044142634388375872107748957196711439052628345500145980009860001546233911333785351762351641100094884545623415024536974948646408468536056009154114138955716249077677907041666412918569355007605399042300147184439493679738825031308476550142766538209849068614734948038693657110939859299840320317719389526821064878686923859539576658344678719451373966055881085009324554208057748358525447346297056977417179833738595445059407069283060837207410480639597307529105847465154530288599966323581790965505858892473373193063198388858429272748666483857366429905750983523082335657991842864623361619237614111675500534096449419996516522044490616282871311503266934027307541494328388685762652087219354678072439947489380510424652857245263280780692170144797221751000812505234219891585381758201862449043838452634496321650324003880702280709820588597727275343138828977169245452716127346901540975897800387232825651386014477537487316305440648549133872404067406803930123473904160904507435348103887174217523316822242935391779789627919779940803636690170957819211247576907563970317889486844168360533964258709011937716754921528386658735456146494042117045396782721190945356650950410414828851290154302391456357345604608006846278708948345805078325424237678137732336376041492556304634535620064349344673838325692787928019318851060271759599218598327617072636867900190537085776901963697128861374740097093930874158566496247891181341692383441688420575258383538697944614428850004458104111415284484581083155404823416996864035361716264875937843805438734682120273243044838989029862452302182799510851808667564201749191052825883209075162369338397517173161247358204725583580423937649513121354033077186478585877276134732574400399827165843872961163723861627091511927496066003466678283046670044803102932907300627350719538318348195181050998443865025262957871897619600968116446246143632200532355551484361999387928136750228039224008862474933672414670323197696872056988157631243866568758659143185039041010192436865861009308112376868360542046866223264033510583475763781183675603747425037979536592519888721045696730073268705616047477066964484625091836660399015462438941588633095903078373462038327401044727683812225737111641399267349262011298848444555632752288065086199572500889214155802612450469837364559852584765147688030825060325193937719335722668877415029929297164987190443325986411536111228374328350568973480464852592000268310949881329179406572757779368412232306372793526240008635872095357457374256973540680611945318730112882455262580577986463360123368954150000078804159664059746516176029129107218135081678391494323098222119287713702929280096324373770960130211633031868405804039010399484019771439928846840049904156684285561733669834328176006689986801090344355038700857496322055465149717239136647656102350488421188884164436766800926657868569769585755009214051646279827785954151136746548281595186894474494244465958485878565833220930645231751032757739605351786575258622512703831717451306148382979628032546739193100322265458054482873612552484912622878699892408193012926691814856647463007155855270079736825514353720377735187957264197820471282978722401900105353330891725090076857183499161972086176040083595138767766803794397455811355004029482299449887656787415848700587794925671037103464235568683166619010097886059892397129888905555766736165258444586699060815141306118161830580477690888613270585766170339172826202902088725927673967357432491762943876348621000109848812388001319060684745836793005903026920768354216976695994047690282062264605232093546702198582592789117627701838943704853137450673442142258189990393365159203758267523798401458772690429590428456768324006435791527110157234861273501841714868535674915236154362760205831131970780869764015648971249649729348484864264522534991718818809323031400629467259221608124726511734574370931688779841895585610090535586650167496532557118772454324643392303606889059818285460517205468289150536224425333297311292313647722269276238105554061633280949714889888153559375939305608323914442909448167171218197617562193736536658768246586082430080492962629391904806069734464793543877013337266653919554548906216638227816009473713370687193616699523410191539126745449875840305326104902306844490672933341291203577410473892344029113927390116137593087295724629666735824138773117626661485188251403847822198155914244743101305338525558118855852288504117589232800201683829413690464413360155758154160506882430175603080871418805779296104911722640319984424027854735326145019439166174144844893780552899371211918029938868939621006698501011069887733003614373677391018938058555250525108679561463395814736860415500795587658909004125988099102264031198172364150439988716671592673731379207372799125135497762260437663326070154476223066856904930671996987857054517533094325364395742478320148409338836664439603883095632312956180428663538272655357930527728570389597418607151148785657772717468814169132823079783273699680009948996057902434645410755862887887088990440520870338382453304504348635752539920012521715146060062588741818298991414857561017067379070871183835747818989658323412642501573361005818297648838585117018716082899902961129756881985163215834551289227721116842196936885150270357260768770449459389342970651625445197651108713852035386485469758742259752069692720042191385118321300234202764744461162048193350171702755786092867355119325507483018617482027983456823058122092254948742530861487752953483372889475372406828497742324864155782470245554486779640826612597333619378937625933644666777970018889707056667695594312873694739724831982137268484782018735831008139158050912391602584881102646309514812580423832720420745161710119706217879298789024895009590381137791811983035685953142572534903583510527610333066208111360874081996546442612816606903161584289638412587547843162365777770998006450858026540182934742775004794860603822554018535558420805519409345545842927263139177564384967557014678227605002253816037720513428187654665870567590486854220117598450093251051045898283745030370324651233497897827395805370836308964141672831805811177454469192350913856943216435750141346639697417174032823556829291336989702870863693066038012282013965946782758881301235749962688079606099886000441665466939364664205801630948243748561818412163607853666810716614157594750591181871062362409055397553847916122549123672534351011098846228393925747225443118847537361111165354048801360788101272408982944822915023648471123097329382605872975180927177068750248154290644905426778121314597563963338035726767004324542157998520364269363290821503399007392811430920941846575278709955446297070383238533806540480600026211905796178861835832846170757816951378327455243981734149864883168360381425806508275360628478644667882799887900354920919866484618359762823031060477526257964931062924551591902934024051011119486937410757825071895012141696660549890447649339863003579517421025202652802391986676845234256529805574118585382522075014067619146721590097272858119821053508857840469124587287320735068430912426096020933574584189741675259221870890219489932975259324257882688182654731351290990235722898278189762052404592525433174136799520897798032888575643127885598843537406968859603227113793317683994820277830475238761122157789596691721139865510380586475444846551278080410275678779368761144362230479567682928730561321079181177235091760351090633785412090517289865331284244337441791641111067955459427800037789426227805969996039314596555491669908332535930291525484580237093655854422944301929367356904288080035153780346837095995424915419371725598914810058394316258903065885908741642212382894672335894285904794590523085722698566707940566036757600509198947203681604041512773029309819950961191336745792671179204047720912192615597776359874292291635348052784755005623825970999510020200839039031751840943701331035557246188373472557172403840834738883446963956990976684656410070806144677865600051432403085400048321806108113020156403520132531449006167471348257488511192758427519579649002175525991276887722027999221074858018513609489572155812115558567979187086837511446284051355670932439216660369422115183533284113790962185006246627492222072555967519107435904669810349473825016460636684940328270849744085755501234807256154439728707753621079193406555857306735115857738007971858066159822285996197396349907186215004722891873844671704446726662240648318191265908311288833824779824397003453456801286723424461668729384988156034279790637271399167578297538940834168678637887797267853385232332549899476231097648013263777071080503576318807542622824766972126143435897025481993108715171297626014043323200421343943663232883339829659981188205574311975359061460552105092712412082586707694592780108524666102865766140081480372766691015126142588933410780318972825073705177625604776274188450849426066314724592051003545652303337418899359570375424191770710276725461049492797238374807953819347610269939272010308182614453737002793107912477432554629776623778787990037200432552375424136218708877415407309861616167022383425884229088282708807596680312116814067469984630601548227076862248334415518152878058607509634803580887352097001054209675634639201584544725335965646249728583721839543419602330488033484887866056609310715787311398498856760686191805708857616144768513715584051891345576700255891900692928409294808414876860132041173472064683476256976470944480249346088185503226247444389522180580744635525318799458075572080881441499620572326025031428110377868302431659699302784746265361250172431609163815595235350743845626610391738110587539133097238392567104332499225494361790304840748402527439401091328059048120273359191092420552116314683462238068497757112912303748298081673927067557176474667651471429655962177777688862051578262275045359237109180332413752920647522719384826537406225616671301013816102069306992899385288868662760795606612652552734638127361149111474559711874743084230806044976318105173190609267999433168944566726994693700039842798213827905222464904518356148517998081774970000432493050026271839230498588337017662171728109769492660023937194249818369158843562915946826595038876931134815860411912640360881146698058379863991123551222605718580990508037559998278818585165047217551176700994026039197324357449140979854292705078060638980617069577213931524538352719929290548314395972530415804709354547277106414232951733285215138748734562102133367837470047212421750782469552477737813244144180380612564610382058043602050767735626938754006434637442345047960080765813178457963051705358116389380471226926342748252965816282711187958010282153124988855900540595751444120175630211945423934250729209558136212629115513562641143626706220798136098499628266199290621377404007997141624196696301708470498731606372315212019458584180996438855521483283321593394995353023819610510213874700171047565256583918658121573829851840910435027020843811599080741510495485096797171918824562026040955122916624530040597350891493087252534409322307682786098573501563800577111194964985359641880421201204697122524819384503694167430666301132126561276146552025038687446370634996116082525523734132080305034870695777401164885562467891133500764062712910897195977612651508031204442910205877783008436727968425746318992360319919412409308198668138974572718394346576058298429751551672709383523473449522267965116964424975066519661131617273944428987116785669029189469490112699061952473098371489685191779350297953254490661702511085816085190587822954859680430351022230907933418542389394726831009434379543889027927204391900134119995289267401082422009933626082307249348848949485935358823228788296646698068876640567538271275342509168344413953314391093370966470478755381992878294110870445765556429086217620676855538649705104089494225077523649730212735405754754086154301481588912648446664581378246991330709714719414872479256403531682514050368282718318180801712242950531512114341163925311965388730340282805798056302282570777645430006604997850700835597399478265831998663242692015865611385639725941362847484265251342862941460328375933153028114012985220763558626873435406149020170057023505826313891779956433318823724231505506674679146117601029174462880232392416499614563203927703372466489579812359587580084268960689394662773182109848765660016278307288654155721946939987008893724749673219661781363224022051525514997701937687537380093414101190459548288056695783322007822013059047300450155008801626274037980143154390616250822539375068657252619099729862495673452092474550212824333116177713293172614641075994606887013148437067846069374291523314002838509039846281914811085754947620499967328579150683910591759905503717842153790139319666285956894882822295624305031053972853052370721410397586780754175090909878271350053633695585763048641274226562143046256441371212400578762322378504326457601213166986720538720805007801843902765163279647462168052496934390991821677396628240373976250029984615009567750349510505135527493479547673844239038101634325470197412535058178511341200626584067476198454486868169068212150849236342562019401844426113432670346879843919005454139170943458485554330394538348112111625836093844374574879414787583528488899568327458913179364927392816665938923499429467750192417322095905479307194326897711391702048541630530834345757933921609854045088165113198582405124811336542489000686743499406240327945045237553587335429041410315241127333101033487602305972792545598242997235228543705392165972557886196670105507601841510111710811792671142484240696065259695278007197725386834103066166363333826075370144594189247184085547196851969805014152433020886392415643267653983432740603912260205628303570328647758527192880844932491076945386209051781950530964701111870299024796545457517453123847079090990155201275282630943411825915599804138253788531082982815110337790378108867634759996944508350899444257757707671173906283097701879120814308235024919191664078634118045997225342890059831025075111722432269480271306980598433666907328020383205098717331057063655283708028262263960781530982488365504095239327657460666028126767323929580072217113870027808832003194143838133446267480745386197817959587018304483899192435208733498839961482174374234687818693515879327811819567754949293096346456134185928598729030966813100089478333203776312671222994681871056747822456176180380151299740947669533959363098283784258861022596446004587532930419985792948610913447313198135021329544575692944762117635190228644729200325887092337662628236987812795122720962925202624768763592897838980608136344699199311022982259214115747394599051435245545363072565534537915587101709821908171624721357628753696720854579532425444130215838313593891431952795971491279212806051013903902933350638173568017025414487407656698051244399273242777163848429662156199737098157971038324219354448303601861969334974273149843878128553095236058005735245423411940669000394475950491814633681544863012691909259733644702980777753795860865956471564527752815403362486216463707542602693437081483130363822067784431965319092777795964888457951114212191007661181748456116751314905682734824490057448426717993374075927658671702652620499951189037108322419567469000959453674201842199243640053548879723447800938631001581949506880964688387418002613511243722284242217838370363177153770136517476441648538107859793141683051538393373211651955754755599189136415375167357997608550771386036439607688934949978037229474538100912559567274786195318371835950063099745132267370275841285460965695469526775359429575215580591987998752179617409423894221136546676142846540773604853425255628823527709186846799355599653473356015684688726472771934417569633603820626984003873516604080782650591361016493064538489632912765865643724294037843969132323490157887192713715531290366859344124956817149146046071839174871769656073368480378472269051239437863075575955769831832318049987739306120211951297049942787590965192193550809639986964923428079482216444208114753525214568902471095914902024060152678816130057489217700535668178473792479401394026308268188721469384498625421783311064067300623193044633088291756143379080733210184324500113749063007307577299577614246633394590745602468210632905537932761469645524269404130076780827963450551576601585355170008159252804805691538635704097844990704664190698508212828173580927883659026821907069879032557932937231553957402989745825627443958870783984897900743388052831675712101837692204721652503577630285895486453454068888727792256894982115946466985796070904659406104452490042838515080042074826410359608568706980236098497388577701471885559209240579217212414413066276779864754369284044616722193197732549376890093841395637077096955639395520374894345726910701768797360412201813296833196519290803490350620321787317388210005026724678614474833212006437985688114186623958418710057125580481661800296317519512013633936690855096399115545273482068694604023408885804502302512252653098875629684802535697721956503125402027532439908812121719356117095142746142481500843293872803691277648231256304301267213258009102471331621809650236094590904611025125052761067070670812892604222953173578086568934127866868084360594539937836643931799035928492843004024380316392662573235824653569125557425566987476422519491406742733535106659548273661249827869111723698074790160741914007557962347644639679234850398175717262089262100222359695221016667751936700322980361363060104845865520248603175099990900592534379874289528120624658059214356463860963314253820081088674724759554699006772843279676969951604612211769321162879575116229760795145249759110848468558474170637690818644712024267617555603730901981395697970266894052669698038915715237022563481239125987312686381948888678898090509666243059893271388536885594150982664825609473142464891251147591044101190365963475414849761757080675874029480198202229509992396285863218823711690989766319600754380332046030187529376935602467496168431300022372198169284931834138818250921126496465399408894366017861464739371716063858316316884199928636572927539511593344772083467804270014477364665209376101344072877366726825488819285532258765482428871412011793937017755131586199338831100397284808537716804576042688747334807583542329216555549874915356634542886936686451929689317982127408207032006480017702486917544329016787745355793467683735337946341923913232673387451949402757369379635463720127815550038697954295890152059125464676391154803293397092677942347939657081401479890424038435078192886660322790131436502424812024544709885531516091402915716359140137538822488808036843401599778690395051017404152562896465605544060471944773836624436599340179043788578550997435420937560249319847852110819173768102454812814856210658866010181472974878438276542938895889195441355492946666728606194085478461332267307310692541463801054856692935600393891353260198640718844832233177852806811864416793177797910214694061794740348851560306252308023798418350365830317267394363286972472939149174287896483318376697423924050494702451337129955927871555348219377456845953716063194295923599429818041280102079193247437966841420479293961663075124268230769098112662880183115273447769286337121766168800321008757973829492528334940294657532979238316160771840187917522940384729565117003279996901252512275313321782884653296569877360983999100401591621918794202617217039724407091480212329366987634383764714843717442208580633162391654128047037937970371650480839533624275242420034609059751453269544912837772033578466669861858802467149822954807773104162662501072436318403824992113550257762423390889088699123912599334105765233395446836661001781319332563278799172763687046794253659322392067951640512791557193902013747994211225858581138218545782495425087622749468686396287184193250027774189903005448490816952439719082987750981338084522190588085386256607988091038281423430816098978738758608966917588776209828879503277861326443312791822310073125543120609658793206187036600548384245952256164127217882516939858576815632513064123989310534228371829580807516509614303509000961344078776169836671935677997321463886803813459485238022869078816141221860577319778345757136864891159981781351096380851435922483940859598911790361799433232806425432708634263747392215894411344297103399873484912046912562861987051524200084117965490575474702684672051723422726987963831452713274030833342813857304076422497020860260749622346192451932926943752941066492455918390219094162995511931361009953770593597318118580089238801705899797990521455352684810871403673451679332258579485878510041368758515606945919550651016103087506519477681398127991334074644857185661350554154283688461514494722919926231674858658900354830891383697221918433354445710618883151926902746802290638248663532046900401763426165349980388229016342234530999673757140288099132208567702013015818097861126323327281868590261073103844430446722335393248900829759168498538708757416674230003388579991338284166336536588173510672195015223016939924865280468914736371910995930461443421600262650503339295906723761547853907800487201378231302773540475239338730558192170170727469295947090336287113121408054892910298101642027772993499119658490132152483305670633833066003217830742507438283845117214523382389311825531032112854560888361007560148661452834625919564238775968967426454651953708443330126563477911228571073372916529601852789206568932137173417107696728585773635974495398659813458405733369811994014881522991593677597149910905093127193904611590221145732400445175124820157170518291379547498719098422196249062240950278765728988411970391845824286816514710287796980018022334154742201280459177095874130330288720141261881810923719538661405635584140102993214485333611148420417228258934489737977206535151329019240281910248917558162004886920146260559870952255798737498304543090572040665861682909135097630197434538039671069494147293038859124295697711535893808800553994535606711212963163454509909192893324352158404646585212438220315286393065882718078230068944508284861674924667795633881780067813437453476213622382920363325073698927197518875996846985676214234403999135645572198621804429204172135909918726027643003547413475425802315447153670058011010771471728927755254795273402775356730727769373155980358445466235265320377238222765737318608065347385220249519593197439950972051008423944593328372863445791481368755084858342799116797862788186166278120196368713072331838007497506332175843261361380231979138847313500637875811589221019614896531557863800873749384851818617203781927002962641194803810195961231832561215742396840987200138083360612770840236894794231113847729200356790437032357019302999337895047646628984416217943810824735933834709836917938363352750641376896636479788608042468390854070895700689930130837437258861196188370582500902473972840556579802904126554824570003291396162101212715131960869328301575817478459203700567143354793717960311869870096659726320056081952401716272316332439627820733446757408033006817644884174304323951723946510218112606298129772799496404844396304113142914060898968764437693326005345062838713417919714439142875386000349481205841252667023843683235740734976921732186425733497750734450198168720878552076167476898984607253425141950539322519534130976407183368701439204829643656790738852225329361337528207941336973979191672269103736293315919329861877693799014677686428808331678133263230460572739202630157321933731028926005422940620661744678940614485761937529875704857430709011971758170436005818138430078544135359728591619184847423597113810018034599046245193958838639647377162359450603801537326781915099758341967221338419033110098696554467369240849474765279015425509295324274340326509131243659102563223158402873742815937751089028741515110580244723900355955473330843046967863659181630292255659396382182628835417490387861055997620352322660653512174619303063556155627624720681068621670419377889485716335964654339724971512986638793821473661005788620396036587373676007730974312501775531438429781434263213700896047081126836338206193563610525070627485458659451482716122908723929259700432805650491323177646925243943207393760044888393197060699157289925316412192098741875480710206422578257864370474315552405672530908318611477664538135498756839553092010788477173849445931469336185324272720288813157973540435757852570834147633330010089512322905709468375826195317354429456742071351498684501979857108904613404423941920679894056236320811154671149889128524567578106702223442355036653263130017615722664257158032882550761499118368753861314052710546871580421138805021431858992488844839758865258477066453296932958123765548039061477102460359141906722894722020010492673903315656651660585372482146693522826707224471673574421820153505211340500483180919058909516506082748752007283328585274434574373330671958496968125955897367803510761648913221160642149413326083659689701898033214029865729190116636685322867783192123128759426386633331468780390108967345149154174895828851026627538894029374839354679838387193475161203115965843484688456524668275681726781478322449621306251934166539901090678460699648165629955948321280772037281710833452991449498527245563651670333149801770485281640813116295216042035118514036607860176839737377724532649052996102675952478226022164504876841230296193159202816766851671920082483155674487541969934878646460978456405011647694900632078252350534460431728814315689020399123691913835435984597766677640601476235094820861129812790728592048969391781676416083492476653966576666461571029334564098110541082015953727010472311818855461298536351877998147416697421199761665111501302353221623221618737135934220531439967565130039583999508446788832387872967436812854554520657052736815948299544331451571631912112347878267436713148964709622958680549903856116137079664286317210854480600572553748831909401421808332811753873198236579462112501957810188287016750408945460778478345535015909773395469042672149398526222053845181833318670175799360538082982956104270683279097585460850461192160120149910939072495912619338349475443831213985753498969658023833305870957432216577933976580524062313475345895020678558709189882556467656466256737799405847158326002371389815497512488642303643305941844402472934640671568059231329579062338131840910367966049874362925484266178842955277979890753863136648120969191401258136055143356006002257549444350979187264815421362893059329805810088859292929682144881889344316143875122417710633409974669808942142476881727862561252092270867354249395803679705025307908257946183296168484160655257540947894166934714340646213947437362422218477971161929525256194635823024219963010568184646597785308195723744326432224289182145390119869010069810768378896754747756386263888846195846821212356461249822378789115335508854497161335746966979213491852158758930353125995369170003520859138986539388371858708445172491855267169725160559916448861243231969836125115281774203963497591132246607258586254670697338176884692933291108289166973567687004481204183670335887731751737935902410193128771795509131810227975705877400434228305794450330546442250831884282104666382328781387231161840793536136428648826648310330516154673076066509410573175712326820150986934166187705815276754507340013024267619614110588617064632782194797046219940067339837749675460413031669690765735150818741969176013063712110594991675311859545001539189932033116455556793941282436237491509906921230172944439545861255184022931166111325645997696288889935805014840030790797121593201304557402930601795401722718435158408970818312286093274156066954286751099709469847728501837996899377245262340691321364320136972787733054737716386558844751763123388146498422810057777814480804550244955708581471564355758484162335970595621576292332862182350380025086238039799448012817306758510028025028071346351815235522839081442180928954418352864965972493075554886977070137205073481482962812955092944835198892352684741347319626061765135870671957950453998143964664766762113853575629713641890422568199689804828822380575116499241402239506109988108122879945356433786675356323393677336070688662089559908504821382741469694661572903791334496917847335841175894193855622658602483154670841288886221993104351940094098313719881376087107913111757017524540431046949607897318392029842953764571093228226616589018912423535174704284086191500757631152110723736617105876534117154464080185573936379479589875806870399459502375642378295548640081550324831875129505068680125910531920944211753328618181934110883605033832538177583962209852258363610905436585094541794427512886235267154447398213290614963818000007691494011013333231106003001920740073264829571843477117977239095330132119648474594990960521956719523803604915864537165916012870198522270677823227790515274522478715778482668049134676037611275027127674154219703956211566337205922005372483467630188186479167733135451938149320400555697788594284710736274345805592298669374131537920701270141945731574026065017035590779315729182964432297444146014664750570948010892215703794128717195241670079680154792576801464793666421366447635626969553863688061938326904131365803223059118039855398267946220152779032501889623933883100747473761901612453862065648137976176131950523002783713785928717431833941134577700680968089670948233403917451911694981643563968984917822973959963218923397704416685192035488585324125063873483164611517091527911059426477814349761578907407489209859381602161441735417725281918954798289850759100055307005152988922850474667771065987884907375750520720294507582243750173588367131013393595288902758762462577938074766683943082004998742945621729792975719823673791829663693443604050430426508570888258144135265507837907385900545224730826767295335700754205321971580956447092113882891017690665339806394547618894338767426747052199582254408245400082835761032202765130297047168042692835242403331556187701617060010460911003561417754783632912893037169110600510247055740162813839496490217102937096319812768508572974096664809427840113434329813580621555608505478696708118486144592025640056641987906524222796889855407289281281981815385820436792722194442556639566319108268531799284150550312576464680426594165747348443539047868755438076783521778526007999566477848222640509322447358973437130154264484217129179861646953617061189821103949222299482091741395534303822668529419588853220363000253158621588702939603763232422665806431410198870323627428474673905220531559106578024876666615234918678230876452880059913421159396862042567007836435457976550371022824208211330290457412069396001379018174661785939242773128483316570168593210180141849425265739499411587714433596291932073588544016139136103810665572431480943852627349779693788438829423586817122092188885273579967359017554494247750581643004505375003000477292614498017677813600351964356593111186939251605620086468420840485650400360703854473808627072235191705908064801840171955334093086997216255892158351935893645015539848682992744877334001130803625029042514717125256592412158025431392812762012820209652321004674650663262584376104055198858832912950890939562493049762428624388992758991895100525729743175531738578203312146486835582726603027380640909222514519363345009090458282491742818438237789232020749631459072678887517745210106788239516552202350048742326956158954375887885098612798064607287710360836837813502306344200879268456582659084119430029914832828336136837726711584354289088281359928964077613407110881905501905132099521636759580486407600035253717602949094967977483746570188532079616591311216731100147316040327520539489147241737041952330376554503653028790240429115730435962826524656785698262835569343665436510133878049683837824752390487825356942189064478507646505137573201021340116170115684595037825416398929293801203022368328092560433572809376897553614004825987563116599504455009560787555384693351589605062281011595729728340783810052706305816725908560162796836771638563216098867468847039059843168998087621662561655455757577385462701629620863469206980295351349493449426666520589932282784996407022205708039167527433532216201951637879253596602614253306730011047498236953634809734423813657047610375412014383720173862323061371841901160952909340927701288771684487472832562871877491026531759501110645634115244752123677636080194654518159570604867457676090732127921303933292044166988662314690032548170063916420285552885242980121026604255876514672291828620776049449327036160885861669150997177753763025715946079487110227272584866044173778524052787864376588394953717487546517045659547518820552476314761542226362055066438273752779934229448105514399972860561785210968900712171444814517915304998243828843836396769880514858473307416704878349331281099428547879857656344315730688806014686517465778768708858784799570964971170508620121867283999550243196226435338094621620942369701324751994734485288106912383920608686211205802171754966101557793744319120747965590077062075581222931279182566974611317940836976073632884765196238557483533872681091389242642081472353262442882804742830320603614940662550566017961568551385724175874390844337945062132064344977052533934534765099794132143270650194636134677322291848157536617578680776577115614573576119864004973936823504848319813472221060748842436132654099504640478470691022614167352709993617888418604366820679806613531800839637273588652726255661093834576342185997528810881688874097923285609300265861250452652780181504449707492545739026003008780444703783556968482135194003388542718429404392150430761075582107171932806399069462094600094103298083176997322078317423720835636193497119486236592964525194948080847802065140280792557635030390360204955039274799568851606942121213320995822995236420192184741304570735883182414818543105190169644158096528191226089473219854694718603049805963098046255383828016205954895762382588721875703156680072904812107661447952523453813870562075718184932082388646113298998678438086973927066261158536806880491280827132022726120120093688356463882546446344736319887704581814989487929217511542444739209770760926385095702653126942775764855123306466943603170376298420346855620225304149836873186293032471296651808339836362007273361694413996791284094961575000751796013606013437184655776508897840580626513148255516329475916871660375399087349779027572667136548522231940121045814940710078689605493643749380950413278293977067507139154577687003494524883976138656479041692603855622679643261060448623230792301540386491766953852596124393711718302186806946501420590556777825135842885259664842160213418519800945009654469504244133703882016235554360810203388628874165225086476990678720782803771090795818105959357142097702825665494541892198767098394740810749623381935807868615678919039218891963389118638381567247895555623474737926157927959186779760775679096564530056500775654881502791970605699877125926582434727204121978640127095490457404337628182826503271780212894075300338537822743626094986808001070098730605663335671219869760323456129129463434493105215590483472796609613327824979132411541234451078734656528832676215862290243282311985329317737543918256403639317255142975810671780313606295612278051168983174946526956272588800129935938817946080621708187997169954768982384332169907403604329859686249819433677568577496402895721718635128205966188304514480550886396392442026591463442411811680845495312481708094754903085506728622903965203832628946327270935941550948547710579360393047502934504225177385730011275401370785461742973479851904081080475842851898811545342315658012554342220048756340939139380035431369044289592054294870069185697733898101784165697686852567021882508659128556969773920217473513354584114598464657011327325990641668069774386788208360608039997343045036322108134323653064223634920902917543221283332823241404638872483507251653115490311413772892326950103051279487739232384887379093972982567321426538931452167858888967009012066212021714947398853572256972613875184507158422084045282829541512386679753364398327185059297813346603773600843170607793579646158610628835145913519300108662212056727926104507636851871195299581337521678327692279309355585261049450670750961990520889990945157069799857964062894680588240498893293288984316268699214820718727105532557256214039351757860769179170744472360072966234055545786955678015611624335723673261819499785198879114849194538214063780796040298759604585725179692287063464221507199358514543642521373888438021698307859376551135723094875600113424555162887960502911833296747901088148525056654826309370590192562313412963294107184224624181822333015934955171737082294171627674499745100546741552462007156317734115432783107554271331873074601694961393210950066940350282588968986790182944484857342787008319688110254773932637181720616288033898069398724890803951647522468218114992937384559935924781500504125293881451918343003271491732295667230271900982130912328793154004394256013297500578562072296921893661567278620979663681220910039484633899400771915433974197227906855553435016845092385328569943359723650507500854964912199054648205576431299105624874272835327128351617003822742720323184218541545450254264453532881259480739281575902385293154425838951228113595691071051951212597342152234027625794510022006089143390205438431899423738522322272855546522250348022483793544409940341599868263505365029322870392468368742343286656621586112844190116829266060287179518205718972768598371272300874184373563359667855768617538498502286717009673595966265031288282267008951757778787223279976411543287235824607823422040223994448967690877880756223630361988153080293423546184279945330701170137867820496002812271584359656656064291516449651672489658189899929183031256196739965174884148169807829615839592048135264794614437496019228455591750485427044938218738705955650967091702372607432207360936557884912104486669364882413846266699535094406515939530377230635921573123254731239070047606327731617770492399967490679084013150460659438573546907026436695513644210326091552862983722824556913361477314596540873902254327761386070196634156162775839145719927792292276509414171913128443884008500568521616747174559754960504690806957757102988463530759112883194267501159344244823007164367775898282933384270143119457758855221311656438676430845945641383635996159677772034339261251977774151384238830180580649049453589287219346406740279990451885666998563757516709890358634140259449759258732392601305016789491552296130268762613779213109835140420881547765289800785792310590732171532812842299689313583649549117879850557484683227757296654005615289018060478988938563383995683683983710044962929584871591527861311552095461417149221978352866103739688416757002205923880369222867601525039173843251868979288752715159530051817112400471065129034604634899486738809076056978151139872847246727410636711158826506095864023133338150676855054594919975674969601507252933183849876702985981771356113612004316837728887522320819323401599799713007873740658638430928821492862145003422424325703731719828913693556218095862813018244613524601847514344403898116782348615006962827186035301693716328850418748763630568309474816670051502498962388388770785578910037363696662715355105930187992705922453085918557964317845088082605268204065529821222437314127165035101242744139369941034348644280357917608876844083808512032184818785704653662425100744126845869198191682849989969099194185160067453567702651235253710503647034545698693964348948245549843048752490815586127089135685951109224854490606107778717250784921261587179587250924283874909817395530338866037338048810761362346022622854534675430273837425255164696814763501736691580533104412837079817262587211462682531279536843904350453928321987448395400914298942384968480300444061763608162339620614769656640013281721249264561589233071657805085081017063043930154263341105734670174779945613091577319313775440307968293620012226943900895853070077224712935185676440845770286419963355232569727283183039468604852276291877179521553631645153908008234758961879043397262770562013992465001255539726601701841250067128860827740330809574586912500432515318452807083196534148345793038997258874740586361953006546524675627256330240079446384192753310096580951886153314602447351138001532877389036702830775015233306429579591715444422596724949639889307728876736554617403115063659111272090317912615564392434903602998709108514064720802568243815195336963791320868449385156787122336080473233376086854180357358579709128864710699553588310684110500955778664484128450670041164205356882873508625484677657916602609626471076739681806997512555141411279964973325812845811842713918052501331379659825001711331907702620664798892914617944095792075538725848062240845177577227328383040158616230557909003030907873791639417945564588836856397171887747360235829652995081180504577351947984331124918891899079167599095133953858775634494869672703867417040132080307541357709615622979194754147652516012348373033643689196029023660496725399949463182979660402623019642564129128100139500114548084557995973636098132115364747868487433859543189821990277642285173068516117651065009736083477622594570771726541869890398174112590244161302975137374785630154707897667931603477906197187280823688599549389132897799262497538205585788369962711772084741255176718235155984728670034972669296457963085042119338173319376247985519170712514990391607027715694934006953195812506136613746056625000331051655453679519009578390992188832193117811682177884543233809155431519732230014964106580536192652709175935332376288368522431643367686926290231965469167510336625273450473651268981727328953908213006630414579760116098181647024620391587939148099370447688646757208213686397283732496186925791965243512196490306917016072797511860370611124277221686160248428326614498816053132093085512531957546794918838306389093442593587690107555958830220227628529892363631885159237919360711964921061166487795651389221515347600067864984175924463694632123439350856636619552318775863268319777233529880790370506977712581231662190031066425471698461780451331054431704025215203941137976066363430389537611171475708925219600994679746892119033231397772895371319473629019938487177674194956650300357685223293867084113024952832358532336644744921781862075245302413490815267503470892219069168023899073200656858711183077959909163903958199902807564077741358542096091022616636113275507957491680613977500825336865830238491316788479048372546284837757080803224992043302155936690605750016635081133991509040619672409487690754049794830119380030417388897027811201542040073284656953223734426807034086812542064693773316407283600724026916382749599424234074437922570689114205441492234918921045578153990423737947246366423602819417353915277376048910397662291939881144464397054483027777249707526997522609925417261690969383661751977331334121762174741631505141340357459106909980238521369038415521145457027510530612601355988619977875200430919084839000403777748968334347632661844222308066027372988919598592893992765670646207896457398428913764028159960461165065050673096654197602946384914314650267654687645046825280546086471816561165673425450811844061627745887887915671239145511782117906550502075292359456695178150756555154217645833391516425043225964321330826706228269338189117357586847782961497073751409960827830200142069187390091490226918661765365285171671884124042064958384048827911800315763098173158797860870878968960121746966019356984624805237093780460587353707881285413435693545906760938183265534806238084191208698600924438860167651047624758639574551073390029668056301580246715185286141929753964879439185160173252897398278613088925755974373886502656414221708269377034900885171559584065787762955899628740990442598072798335076319807822247330937503503262307577040546614850775947178082759089872569596177764072535394261398254979824728087710114120553970675988717791152008369328476304816311755170511537187596105165036830493461400278154418298863113935164754232224357057854492525780889364586593374623241169772208462532559989414927667286011870052138343463570486072105840781830706271194042891250984106162507278543314514027398464775248626886130058338413878249210923904774204076458617164985684989969857016183592469820137553203551856639904041625279427643205438687369173618984869360909407014633762696127353128663955691917575489547708195649987901649166369215587713268243710724745808663266286045495874650088968965797881540790451955390003806008011605971449854062106294468813275479379335741108343631988426093308253907750575268142658079623290425688625856352417096849756750997639653510823332117866156743767482719573432815302769532234025207830006863327259419489128047501391359501067115820549715368177381005734093547341001298991644355843111053536845008807222030497558673166930890606661743285497033348673296363198117016377163913723491317585798716692969344148757838963252148166421957302937290009700045980255529134944584142885343301582779802285220055935283220035505103583304909829077475970737333455441526038778494047268254991323561284462252272894070015412413732143954972275707724909157301176002595464595468717915798141248423428548306442158072343108010123632839582540164555681623234598606109157569824142315609934754079274923714325082482586272130686538824098020482644937727672942497172374162519098986975152591981192779386532750798723958070268563416324440259413899854685042242468563019757516424028635266479327587096315927252006383991624297490240790880148948104576000720294360668277280948383324059774175804690200977162504183105351359387594133352861103801394564700326218749913686223879323310403872303236744269943555529644449134949020964606499262093325932217063080233402804217254042875763583798042490527346808666447437680545117959999825304378045957037834224438294026090398238883009403685721059398879408483053762659102072520226705348284769456898486220486102490314128714913355392108763958039161150028644723948189047601608396838702523604428580395425461384838013937987854013606332038219158627330517028532257395765302460355969160725064246449072173792975945332269245899318612978443801872161366133712340743709395084535171901141166872423378639643054912721694107626573111470966361228591819336992313892909338891487795290410257577847885348828343601628079463195588129234190407098098786567102360041538236852227636566424330324974266445607336602608836840530323867447028202852593057059768994514225596470753577513060321111437137210380537691710460833078779608797069824261154968218635048703605903831062220907901058767822547656855213227314482701367402489315414697718418559469646297717325847163512053858591248289468715200550470221286994732659711732789001072880084504640356984243026890004668054220954647670113205531162831598915305104305626480306454285917515928042635482431716634473864605526718898506292203640315729793746144654682745242198240088022204660004569701789641068205025844241332063332339009117212306720027519162219697673320028218460986607645888360538176524146319334721137547190982296154517044760385762439027325223688162337634634340750240597720599718521340727857159189778241570249047745097379921621506204043918033249396615619580987307389397704736954451522711672806540098621797685578263235820943879592402712333708674322006256104033952232386909916386726375508527933910653427523444695473983621978152954080197463991181126812442334156584105642391756120566425019238701710598833797304820518539311708150845014621176516748121284974422571407285473776899499827594047518396389809984493918472781895522786947160544984954104968773480523875866547726506280852776954535585085831069694641423363593696959033954142657685424312060025381381258760437337891843238950855528955026788786461072307805587686269797425117995955229623381988949725567753474446873341888106020316284001880895320190872639871779106253663510066199989648693012207506159077850530521356013541408817391465039380115428212276734092709423227615276432794840334846848842110737053458676457864634470543888077795931897247324921789516314697072493917292777498520131716291514965053563151071635208963056805543881120165616191739066294674733612467868032189862974295930056054158431137742786421732746466971270499205148539732495092487659254838236642285886151747559633504443799082690414997595772369230751634655707499571573840013233507396917116948580393767484768917910099412072801272134304546904413200057376239975936919110674508137827402063810266549976082575197187050632368650372655765265956723835266989842668464565509214748242866541387890708942389837094255926280877977869410209222744076401293352818248656686688892140160393590545619160317377090413137369596980132933854397849308659970867326318824103736022602704024607133621937612561487927174951754135778812869392801039568803102234537592078223167198111079520476303728712643057982407315045477893037449106776672192370788003422960737328262153500941661518354741932484443139714051830286419818469000962602330377811164488275023218537101008854225215800104027549263543952897214646767984890198399452177547041351839383849418504671677341109340684003680078679309666259918844708654063573635949993463352153053749548239475816254476568534494632529543097998746659436145613870537149891868949912877698443895721015912872982359947885777471774959965394555284205610296276512472329477430023499592176688978594848519177399916779396346391217983752866101318219517469715376247790634025904382576502690405613641110374629137927306545864712688941323540269012535446143936278688242950185542834929390404424933539069403035031902353086678551799226542045763168205162839354611682052208901842205192158666565987212837351664014869799262836543906257374373425641319543181265591779226136624387461702881165411663625555890492685001798054563560403309682140930623726921241494619186948584018695675332821065271895030128960765849393196374099941447292905776010647327564363675083108030689297490512199003418917377024518680803628072455878977745168856578849759435780896094725819208246195234225980497475084754822678185109123752112091630281642499304871528827891166849711785727344929926068795719441647090181560538989089649683165364143399815800192868789195918157739901428090068276080495222769332649645218960133670634765721788611788927229659800370961498173880080854606972670430206567465472243920135549193531767286147366869530534355159491893188454482477715176306428903942503392833162191239703217251270290458796947332656943288068201199903002107981841858324156083073354191307562965719938214767318061875738391027336767869189527643535299768966211559270939103401543336565376973278928905538865293030830442904907920011657795475450304056730441526060013690953163895431264128791637101789070857086986592563991087035796626767269552357897697379627819821512586074946647572713561613864667676547344035310354031466843442683571299194305802722769553793527605427624698877199591564803246040545666458947948349728688963868880831358510284564868852688694496265673710349699018609109677777440665594351303982623590227665228595634302793749998563517994256467164360071553532688003082345003664239950579335094631416110701346107107554312551578027040809270731934827633342161433476984461826865878148052227343370085258394580015059317834092712138291821631897493236861088231513222477185752233732844586141983625205339408871147395662956981323035081149776992757725052807646876851108029120228634832088074649455587012147262592382305476362260968305020517870611527065645726387783905006321665977742907959877074501638102633190309016242184311110914673903655971179991613512859484897018998356531241172624606562718767275185060069310229781363522790981734197917861127953720903453553452760751091051614498846931632668189626311843676387208511576270205766119746377727815667956927134252129806367933265226841372638299378490596729386343249801966605961049274087718821878529687302513399637565332529616526625281768451909114319540954228864978496505908758431080491418853410830630829151835364549973273617101856839712568944675544536073119738152007253559213404894219432210190935995861129752741835023638453624184470076893173553447559469429911033739589536911181430624909511397728764740749220982646188648795585692637901940948202350482068843938165441363324346531860229525551886088734473284651653061772467192216600095711197891133512557690910675794994408243368655774038791761835662411100093519794719846470641415449067702102359807276208237602281615371051124919745385801272958524682959645396089481658655451436263696509915617117476978839750243627993555326993161683550089157387686345056434653597806673346120616157498782998543526939700120200756680108044348828689326507798105048413854475727728151133419335771710869183642198952515456576967299635060581638999901525218114622216216319511775507148837064450623484025453489115267584998814823985286636971147296781637837969231118295229871138408295645109684772254768679694151356692936401274122852861297890527214786703390478154315951713985982176122471402576794145840743652492370274962671384804987362488844612865188532849454266527205209696783133949078938568946352303397982716807423834425909690328705765437243741088340166118391599614805090356419662032179106418931725766552490534524984575559772266457185109600914664392809991348616235810515404161611133856574441684244893196595577296668785194888901118814028123335748077736038855223987767747940273968253030201465950181141898439355329389492476442953805919052328213249412009845327968179758556951131210939562254972608373840137006070017452283185867371837865229855717092892808290967977744768236457757944535046215051817504345995073218089425785722726502950152176692341861836838170395788035367737588654528838753325753492360682776207686659038514936002912791899228189801716409740677495615466739556550776033177661684540447562806263375465584928552229524443193356169732984918149699995398524311708597058542660345192651486897767174507440579786954109199469529811540295633817977017132060652029762208455979670209222542811904657079189395404561477525158407940776903607010391683210873529895156882713966489784413913022155708194091175270143010670427335353329783964616353723577733825373853362579867407173426457119283257128792273350687468639926345782789125926791574354947371636460498835822250956544601296154110877198002268002445515181611112372490820608955916226804770004776794482330378828228747654353114741165109371694279927961066864475135387041236825758524781484289541256413872934631325654906625520691536251095183299223036258446517318134184564533401098264375387860456084913522703219602824647432617442829278263427418867077359136972483732180917126721936671459367693101909836162236977814707152903567471586217470365805968757729680632065086245440789034618434981569643479429213938113406228783751133833960645377984805945091791496153396297395122334955295629225045687090723964538479118308024200614208935465301444093836422357592649305302994778230477667411728363681505482626434329521917098426332499757045661153697545565782515623434167960502346114000976676496519602020533082816060782566651722660758276554815435283754443626335641428710106957609116099151791786596255049779907473044448457928025614026377228306562956402971454193938496960596733971413794080551928047988676604430243226962112966311740777393212552222874059931128102628030860642773294097330810405689818866447331344619047647654285211129818329160998106886010883172686836729278785498855318954724295151298455863406851285984390008909551621300111062258740249791744092097299983334385601866550531231168190882017988536259928023367716367349335679469050597062027552304276214916480408976299729705326589575803834139081079089237782457726907403363574012207863420249761497169461888127015757160933952908812706342369505617700124858841999710105980655253965336857374253298251259884004692480643743521376934033952630675197511555904879703946872039631393113340538722716523267600475000286783322945656059464291389357201586555993195949222445950007192903575119313763086983876279425105375571992102988699865879898569965664524712475152330329577931057875779332501862133697185246684628969573337906708990813669480764751721351465077860634285840047782831444005694528279193400282832702506730088164333068294490190445055893799986577731206140875757819508042855814782053084382118118433461498784845451639009353584279693953428667804350480254825005610790033109582235645831633085618184188884936711640904360635813676523017656733494627965915361367733530475567885152289899534179782221341546330819590946608051258738360832005669785292757659422527771288049167635861719131333291803298836460326247439401105108240300939720871751735331129803913115929928986865326450314357760684695161795824144578463590663899539129475170599127830771186183218311308524633593121280770761069587623687203477414877714012645366960843801743166236231058424301027880088776263779590036625173485308292741608516656050524803915970603685149837257794625183804915554240826415823800057435629105054812579436727082383298574666776982671145915238499681432993821367849340933660721749639244289182742089155110953060177002713352524760103305694784151261816574547134321300903510547216120911514167334249862385836894471984909694023942151099240192717201285130182728276400950606802861860076581622316715987618944989157762075309852029287951706027573633950778183422920197126452818434540371255646377152693952442946219196586421776783840240004587241689917930372907366748968632269116761636471150824582319077396308583642501451288251313379908239198752463542855959711788762821979885059898096938882791753245166462069544159509922573391000745993194685263847546711711600895665576433477559283902412475007740062402956234029625021317273129008038350442192492585202805092172470495337628075208404883000975171861451454929470460704140782448157449752519159210508764867137361690561737708698551473263052432749545028614071137409061242457771106427818010467674750841375685866280413171612741664595873677907811392646192782432140577035859905969618056103809585754672283618038286870712752822114150448432908387388991961989873272281718005931115309736621657038715366555419501166504208566271197700821157755655080551957401956243560359039245192258149792265805014043872083553892577133008837244999589999168066695204467652310877425442432328537343194756149366203092988644067060725335848017173872536394622595443992990144465184974209874812797980450645728632928592138373607391774706814230914807159307721004398085753058012785402771454855731317253890596650971613481024320882549025317061373805360703172455938507755681535052423112939962588712458813226009186807839860109455121219832087965317681060528364585936951022190934078173681712174897848391426846837541899670832585722761673059632569236465552949699481733746927742324013918794312365255584967955618949298512917081947437720481488341636761444122624009028703304589772366604023094850098063952846239521951641804064802552055294660060876286013684227573332960358458853091412583874061346994342831594822241828086964329511233728787912006018267645261194310621438165239040518833156179906415664808258500331580707474236949983359841027948413148196715185846826771653434610617040237614343179151814767740835961312624788136427212506883261219186918342787928955637675396854901477582720876641285692899227899100762307582394502671470314700713208941236209253495686549762523802947521713868290949045255264234054085385156884751312586059761944146089053094816750154507384818626263619734121191752014790219986868768843674656512570932188029873455107840838598326067836153182835078343823608997452881053174226787142416170506253893749178014975889351480206639368781629109757157416859596916147924130151128723294087691579175326727444450115630493358397189380754217384240140364048001326315080119229658299310699588656415812915608968549539874655646973469141038519947576880887708951257310154802652170719069380121140410670256711011246311919432982694395651479077675756109359497457520270043545004414816456703992564603619611280760499899358800772782479096685193635169803395202657062447747947723990361485654499792488569013769874939513195151151561344831490365747697069516178109352711128542237325056114949325236330386723797244403611828724220108431714746075343543482802282672911831239707799393651236392874205306991872494173020444974384936215014220478930346363786100600324524489075679743913721634203263310072109466490486902975130554895934559561925763045783329013937872784190807206118123142747343492128702037695476247988696559497627023552585053334230295236405021835942377824630760175198027306327682438346801854131156459342043538770576402118606136754632461150388198563679691181199528485868215493786149033276444476414124378610120695011424578476169143645628707980180960857093105073379289157043233436660726896964094096870575592151903706474854284052399247738750871686403808357875817351832837696793231233422106773128168790488997785353018691431362272589611781840127702738562670484965472627962956940450002945323991689480708257078730020724579260262179207033230380532770055671220947913151164537045557619665110050731374820960658066681888794953482170836270450368267985240690730662015561045340186308596803571255379559412234698859766766800877975150256716385644155875528207411097914816572678582156249164389092577981680618026317894615025128159625573555936293721764884895748381713311357679894372633281993838289900249090549340061298420737374355145381764981240416506641458036515461584260751467565870312698159784106709770753526527937414110712864352510723117531919856579792493023245658693884700449306899773524828408796429734305013403255921844560430362365622088035654784565698140667824207394627015057382638632074683165143659014240673814798539905357646777186273546437356237513450067665308353592953685333005535268665246862390647905114556767600135992326820058821706197253106566829688367438497664183310451333773747348589544861834530590703868127963162827552307373804336494535308440655792438911947199311691631269557576091781300573647857636908544501249055176998223403087164573658765179356224742681225662491119688428725123881234500259397844108585248961893700088915535510817316497501997467901570672294875425011610274825976937397486410532720418644241502376073371376129604051390187439404156709545434146307205981456073737719188305924822331282221178048821850975648658326133352893052270132004687790358691199322267307186538579602846099640643144035923668861765786734046954151334741759440137976394175148876374848752962421673571352181815492188789421997463364829535181363017458147293892279127171265434367712470144399746689156453491089813904137411941707377232252718207500927430001928424164799387800382960963801475639696314419299508524758179098403838932889503947420181077809075605292498258169717827240127759892414422520184398072225163017928489321107582016932963062141874862567196989196104701160121900918984225818597442610791266482665600861997270460900124259160220360832727160757824010145164897458774605170259452392488329026381968751940192986720148619609171743650360809089919182017128152520992122183303914143918821903271689663252853447279362480917085260597304813334961010093127025490963914530947104512824933187936488827443322167981318838911630621880302603505874869666910646666198800350568021614342717997254773227220940332196787696674178298278640715954187282333162253500988600159501457084166656286831015918119026972154801111393639690976976150950287728851493283108496499417293217662384615675710443969068287688154965522128336997884811539959458572525165744720735528219908092068971754498281115573217421825263379352662017779848562053672302966491211233456767190504315189120816515642368534651534351690353508100350175015016009899200900003658602739295927098345691847959919354976848097990799584841853927241819258743537991983254786705195139347060416102723244227484501161043199382874398496738126357593878219157315399762879108092178534220081529509185099828701147741552031844071461469232608473455641611741392884704954262686954582581365474987787076756051259183699191951091573599303349774212602017069587535714645590502502140332538771315776782853450708235054300969182269378168573231903903225451044526094892889475524481736484260801790642816873941571186733804343377515992424113488522791493348288969568840298769361515728807924364958030882173387380898572248953660076256672108864927621637879091653558279105738622596099969989857599014491580857922099219295834088860128124698888769567926052455470262248568817691337465566430495744958275471171044445435679433484385254717504559124981579449511714493659151412500592113763840969432247372183769146787828789570476429402975170968022005247319980158917706168897227888315154295298475489275175680153779017403583305269755016033504627115013949746531720315637257170898745001962060567550894051597892046657053266188008770101739062935377158831466399094211834804712881061025682282432275461303830680850878676936141498728378132600759804844902810401178079872929640482107499580894059643096899021034612281926860002257364520814579579167425728527769969256136704172727290144255634679102874935938479137316956299325774034056917308074582669639995192170863635103885940090973028425539130000670093969912630989731933753277917962809031537387927475688119172412783337758837647760820246684267920915006048724016137465504199046594618900880698581435874413147904422154718462724023232965170580668904900193607150740020662805355660680490771842180132681006810696152621175463559335295522084033755742777610662250150910418581304626457952850453580082164788629299620007007164695065089602819737633710702485239479791320341269907395789580065083887128518824183010580709270347713329838673539032284425782222848626877593269741964933752828593246567927327105066690775844257474911677071668461767574218496263133465034657390688918514270934434182706887590276829003164058730737583061067580146364981757666020751091467964773714112481458030453820015032099745652825252666938053154763600693619120838976577945867246373391071848080205708380208178906133751509845869644024660120288538463375501853117881470401198712188637393934594291132645438265927755796822232935143172512507307475564782228105302779669653000260610802890237659099260166593231007378566215644312613488058168277235818047401180791659636696093408686661217402473978493265620732702100841127091192162856451135117103270552778417390019170646480172193576262303632749910422493051931155072104135004130542020436007633019291432540351057488648409644626292760907016381149382102703954307351764052763765331247225495313203816914599098008870506593952079670540790082652475006940338920225823417709959626873270799716845874756921476847021391226844356301859480752387679737228648152633671242620073682965801394271090191431330312587454544025038020468445012274020316859191372019908480231330098323600265380193586727341750981069336004922812746912592999474881363755757113344920840711604518942666081686634250797466868338443555852503194468004160395654765466863890715651406673702702944423889121440577742982690829845355594099144820070933733301320778486640896370194720717239910571740053346677791558401305445395953048949323906544133675283930385933674498860455615582076236683228257628331638338695961669829592799872689099627437713429447376899684265868161719956386672403604871069476038147596376524097699659271770894885440800257616696448999776308301574277582969733717376049590902881379995064002471683024241297884815537861305845048003784659581272102651443959778113656359511877975323062454170860768282785613563413059012274996339932759826428902019026775193124112025085076243974459513403779144101059600268125193583533161369252029611765811727726852731599778273529522578041416700636824198933612522248837560147408179332312052086832234193091437081836700021496718171362027398853247428610195832529054537181104806152600744280033617030831036167211234348509122531189831226100842913515825172874821728744772721771652694920371241781621234483743640363246782223878431472886372071907599712324061499515272517212930422784798001214563303556666443967021567338055396410462747035205216957697632809633804091439298128982705682062405552504440692623697988095413902552712584892971216917244887837562324762683737758522432173186456720837839881120676694561931691527087778650381368222778284380554427665796764823928892772795516552701198559277537502187192888658757800033656496211200511376140584565711784323603857238501111561179172170414683014793588489390359779202215927801530527206220484294766679206023680509444581707519965354071040880600988256164535472708310502968987110856220637050114301363965439664999710162400401009712647573585417361476348200390222356232478008451802896399162988036306703461365337239904624582761978317547615684010729998323286116643733102849652060394493974986719002945642165887073691724705256746246667159047837308725922836293217520421858595092281567199225610464639773771315620033798712125797456326793727125223312451854268430856778535510871495588336398469170684665321045245636446590743242474767598179580925319052075183748585230648842847326760314277512721293280355897614298956154677205419772683729928864398966097364344384426583632667704699670938017260044237623282238869511504343740720947438678362439289997013406928414001915341598083123619473932453870016946190481070341091314796492579749202525856631397305968977123393288169903322774120881015812649451223148568821797978493375447515483757620604259591098485187834515770776991772257277475237102821606266645686949922802915397412347577943600814665273892848567589153339432090971110727436565217247897703095474776911458599039117244216821268603780346218114191604634958905101229137948899780014808773494868196505793718673372120382828340531545448276295468579695038244355613967197583112198513962407175718215255944147626583508123279327996946384766141167941809320807419992961744500618540384021702117272370303702645593319426527664373177523384283480089094498420986477203027568269648655212325218650242797363227694994589442941140123801617804561491704826510697815519936027181734822068937072927553818274860996781477104413514393852961677368261143167851523734260044611291381373612609542734824948171950489433726997922226949220968139709145218326244649719319447477968011118099853185691638534195447047721886868366252987764710079754133758286951276232383055200137047016639218177649255813336046813762987187991353262816352285191921826507562231776954301181110469850056551965025862390037423054741940741024864953448436658709510994183247019948909175152110901522323568423838637312967813509347114803027911514095849288408575104329136444330923184713885058394496896234379517037461255720622407573567649965082584379068281487570316748502197704828262208957958318522931536410266898678450514294843734969672649118465588273844477705602982817707610824272603854206310526420601502619535186085273966188433685550684424097906579407889354723939412762138010494907296229964037164664193507825014170141841114941179269906694093280065442494403916916778302016312860838971033828873616584788968602863710799834598348683591593676991013146316612026051116420977082888784888133926250774728297903056184886236933113996015205832220681898072394378736733567081569510510722905641647430295198028078707372160431504659465996557191388726525466022270006705291621850867074614521009236328922111004371023360420725709494118394244457522024226806038574994942881356216878991625197303028321347532728707357137288675735981617200252554844205515740804202921192330744820299578323924531174902838621049453263919492333967310005944658225290235443233944522624945668118930797295767950080589589981500158141560485605496798126362756732194805055984880154550847830035808990129647746114540766833914827469018331065628603422944589540526595775844070771740506620766049143132723890270211826067448310259092543182883274914562958110827804198265522947419244399714872535284351212626982723394300428135361069464276771554008849774786311876238136595507960348239522142823134359067756956898846954227561374652560373914708033992355174895352523040424752557759547135966253828076531834905251205218879752739338568581774124369339830504957482508575591230858461068254600119800297426736427988681058569038474165810968108527891941643903588014981211740921548190404306449327506535107777254983583229310766847854049972379973022717051480974593048654245389278035314302647994422529084023843906392788392312525743765783800829292516206851045705132267303483423994666392315276198222294827050196686664873416185536222082445905239180397113235734992407091990277020790634330300148947539801242673381388612135314073351698055138113739502737319203440068667433206137232128100232666213193858049947945816303583922593226178786749608969467604680770879036225680342451639167579001139156262294560993724166718587075924453546932257960520631485412056381256584241057437636338473384909979582060938821023459917046006000143925585946962970239986220279765264317196400451533561281534011796163488512357550867718516975309778317137756863053436121919139533096398868128740259618151793019016028942103672931923829377581904523301218026568623417072026018218958595116107277317325188874405115806337695720219083867938168068199848403866327020247445392135530116065510406213242760450111957720523079866230445069579839594248023261396555154635804435029388543018075706809414507615359981478069629229133506050864094224983669025832282991889354890819143895782146887671297955629797581386942252785709518692366732667789495570987253491948782280448929167801516715262816549482930156059699045460192370759559130272653086857346363208792896737052005591241280062838727304794951011058474765341490720461577347508748708599370840903996287859140414825518807787679309582068508920174548655997754689428679747498993549145399176218440826486619029269641337906260951209802082436373727953727433848374451800321726020679580950564032056099833473203208519224923474770740334893695790762414664323852228276632325461163826123859607268651323254868157379856134433301812860273965294589038846019102676077823453544288765876965230059313300632587182932961622304224045995704703175221073511454355506179140640221506740672388889041463402986150750955301720783210303941806331529269665823865060198564396071059132607399798492141890229478256612054785963189065279089138139063251267560329069338032061065996884155824652585278658682704154504499023437976726424647340586839435566469400936809601540426272243113562361892868450579086173262240715688052290818541006865165126594221658219111952352711877466104221300452475839361367330085873996340749698613133229200263667678435952168468427366576352856473683112186591504910832339877513861924943330016569965121630214202816078496609048423882290083179407263744809036294929950044276469638064649543372067423629270801048958033312677681252744650956841116349450816839705485404211772587935012923664396810696723817557336506311900517536044178688078446846665310974201136144508922230927959505247457863506135560502990415706901985229706624626538980533608552656178498495692310992394110366226030664082501319542054833015406947946505331939982015965131382534107289718244236322238472355949203966015699564126239237219156079933284934072972251487171180201793173940948614517940188712762101672492019506097692356411006754535984485239176369280048957038451153843292981024928016596266969074648234571839869662165534076715800590897868426236726854647955476200362611694071628050894087647980809092988138098572765487327625315015360370597658372811543364028950536407650495736361171469964800615038617298596285480968540690922543031753051768569220435786081538736676816490999845215148757855999098350273004798205533377191974875424656525875214383205983607228369324004483623773621339696929579891987278386904245417008802403681058795636129765143309261235499243929134329975210871634768869751946739575109254553137026449109484834803661518011607269834489260054230128864968975875330349197153242023225708717554690620916727891842903999874370032731813068192068149499414874938572815035169113696272674838496229711399356850614727615883079862981036809089692057737022224102485690549134712411709833309363423954792033661846036262618070970715661143447167872470523453895889243776342077596418475970467178326612769712786156859661177898529939835549962293074058087871151289755415578497113457489567498371596904438009652736156871548245008705851445473130668008392028705781314512559651946367584276709754603118401060615823248568679831104627041048569565194335878906275206639902172249127492445162783775111923020055869075848818131351242772786221847661108063758692205273959412605610308600576836961420771777423912573135186489808818189792399862188705390042125025519254882397397447808017148280031382509632840188984472616521336586988001568975677274982612842437290002555244604669324451437087453262019365035415610257253967845584634122281873036792113770640296665250583347846466271482041842968622524296588217221494140758334640323203333439301619917518556424524229923719922474402001662352576522093269223427684960453264806940245056544135685544168563433165262787232939932838086917629310743875783069208312973980412926429612385676622094920837974756311909786107037433371074102656023623372618588447300365700396248631771096728309769987540035705206083373135648463392824984052128225237948355908705177208072984923720263348215337943397980261899147858421936057052134519718374085553076850969436771048165514711380078568038259048931796116925716576225917461684761973145025331311781854458572211143774661324601376635443661481734173824417013487935959482286183180435090532789922234155249785331977428379440884124195185438168682880789094932774568867551039650050962339828153300742735345636903422317637603829682722872955731314217221755781387856161458540986626619398488583505561178239492579535841504922049429908965914563775729348594669577983005021513598361946753589623344299353516184955912038080641754763899876026891658745889097611187047791608219786924469830301131801742854286570387996399701055218599977710894420803030560555132864101077699167979498509195103003965724442999024634029886542210253266247555319991180736945540014351835073794639502144243429776033723500871541287447481909814183737208217705224224129029161472446050411233665883859921811528425555797949159844357232445583271418406230596284571392900353654631618760699973622260960907097599985859416593329716617980706359474974969502574351085382819026440346068804904870556562886165781207873767933069383820628118201534207422267889831573671581962297980272920457052290209267439401170651294108043275243246964093059687482010952245077496017058649893709992880071201754915353413340520349766495266479588202178524224161677706691096860807082280777561266350228128840824576864067171590119996256676431146543725645722814840342933327261953743829379464060460671487962163098211375404609150070834572256938236250460932419402014039176028475563651998156148791906685113401555331623726607707472155705074856336886990275101424152585162477485429658523478242964984142302964236563925810100825815169296507345916741575654725095669318300400531427987975060816237222671907682376473616342082969921506558604624397010906611974106683538819566326220854083619777143368720685649457472429770774781311712135454459176556627770995369878137057651391894946404850891699340999724447082824926644043262394313649643731007647544598326032667659183730090305618298709117209721218196645486973818122827426656719381041109229309488101307141518478189329650707318030778406064470689790677619609622445839426061896797792909529034450861344212604459909395300189854695576813427668321973213964437581096953868087834016489403768934673276368709863906772692735756351069066216570728656902620482816705624128766630024285073306225067569327975755560957511578032086530905270113850172042299231965546600984853197199214746407297451369808710856656640824816625686822938216521882952562764253488009718365938042247489868770963815451299400532327720181695096358241713128097924812630986786768809626035719064040165134994722563534489058977829784806307434125245622297016296142383222472101068836674643989854087895984828776074151226832226959425141487757852743705923746050193224032662104094045223088404896185992524934137565163979208507644713327213709239185995512573267087916107216896338714263019455842713716893862620771955356810264652753549228571469187097078980367228344483337419311122476476035810247337523927732564914560052817611737201184847001551003582145721178852267031951483922925463250821857502548174008577060568145555209413312436357329622105999801912947933114410070132802161501720459352572546055733671760238105051524590385613421160213097159953243781975666321013188297075254204824605197895493980120651444659584411265868975513838157650932027333811850667823411643908483357540933965096385143050715150554768396536832855585713457206598966939196557025243268962718094026479852982578778152729900670439691932835083875375631523656985524855916350288655730642057114307518495240018266198227391443865734369904669789675479952193198976837024287207707955899569674401054468416735604038497348162734769012826613785288980433265654487344217277987338613760287600913155383525466665623898645506510325793247978159195580350251218339423879200045815359701027155459483479499639419286179554718824828951228998311641762774709949060666021128833272042082135360707771140299798077176049878910793460905512990748307233059817467231751614941328710205845324566077322393116558308792152594577961584575211868331561448034634914179278732669252117147624541570414976719699918135111452470923668694359183731603365507532848078366000863783328419065855011923116730658799449614656372386599580407757905287837293032079637291021564348957023170644359265827929632539961819788903899913913244575929346969134102473111970451213059267848376194267858458518257713005227120232850331717007462732501579983729032325701498827758597365462448650745784982569419250055404190360249381363352244680836090785371312719471326139528319739207869967444744969360152208764044113063683325298098297442699519456719020513432795205027497741572225090443648814290957680395936679089301202518064744735653926581662510767314653652546104675976121685482130353620441573676641499269829356984103978861054790825778365117339636771457067411674998406589177669936375614902051068898096906766786847332054751725888836629923039329610447126387159492183394937395883272695934911121804207463331785797152987787103430709256686208634630482326506297509233706308520808202604408834549785248733132701574820095414575642436937791512767028977449558309629847608542316945380678744862122881451342554019750911384255244901818136969539496856113218684885878093354883882426125095379292228671028057412485318579174281127461593577617487366557060509824449004639692713418894210249757340005696449819786564594028875033067757581820958931412616067147071444213323849296840960541038669282514588024288290196352519944784073939003826540767818961869614414965653710113186357727570183287078840180156855647232542127588414728763575888643036051383503371601334426250579882006489405193045247118914462764034091111640553458944422697108785900303151845984763993180381031703141438912229054988660331405992096892494804334349177859878219739773937310695097481650399499358490689806014871588383941128544976001005316326038691274215298241191874747599341802728564171431684502072033555981099151249911834027025448194814491345699816666119760414758128431952302337613268030944295630329989491922714742930717415013538141690732331889891707806332542332020762252944945091142246053834257241052297105966405733619622616658312923907058732431316555743162353513234792355658881447183918267783984046143137284223560895996136442270847450817707800808437565574740253305011124746078415751955888924353179990993202711531404618044112867062726866925128522904295594534825380701821910185128062905511580490673541128602147673829463556080896695663503662984663968978322273814564882494705036030539429183737846058696250651644927541016749811031739395644745818819425784177419723293885934725257013999906270877304299246985382217210156139052038903004864062964118492310578652458887320381932401983887678667144771541599693708639271453895621977064842375227875839888745372646331181440970061100919398479418706029721696927285058631772479143381608750307067898599012800458015936870869836621161853239043877199117039520888706674196158330349767912523748751928302445128080409500047486130412525952471126259548394268258187526623462510042696270290501430675655560744242934881436969167765140384317567810333102461297528187016846636010904023867347087698545988951454732625343003991727420145248753753571004949454562935267545599961360481941219631309982872568530042189310578902205071550924331485101891906931389045113177452324339712791089963033278287392539824506572734015220431764386010508734448797020155021779149958039908189400117428941743445893896848945303133733625731522156620261393645207581549611134753532420845884923927725752012430739145976099643260372894568307335714778983792044582186093765685462541968944557506056566883316551719366066288298482727402728267774478731532601800959727921475938130229032240086363195272176649053224801324513830773938313166752265962691934541289116104194380512484953903841125119573404928403367447670325572221555787678317397082281058645646722033794667568940332519531020787516229570095992378012663782275226397229567091552313797743419164999868133587189595968741434036302467413419571811921099412577938667244010048209636724625811275814872760469084896387735064568344423645055975228920505389600062619558112932509043502894039977050338054579657594532541248843517215409321930645812020005381494758734898268407119678479708791370731138018937507504932366127557223164736530843867130310577504702726423850788140502054317067886286082776644289187862973962969469089375310106594654522433508008425937666462538168335305600906582155933213064873611045598053666558776765052919502183921801558353249962793002243886935267524189430257534129422397608031948483442871591343435457016692334246537028062071143873907956661771061483269648883345091952713492597481594501650114193346235948396714662073534169867684227121941263724255870961077400052418769980948313907204398337201186372089738811245144352967935664103625399113617452452669301028990280401495746406113161156931908241815453641468691528181680645750483630549354220080618506668879591174147953803731855252327054124856037061541405644474694358374386429184224522668013018504829546034925087477082130790236704521570196359830907878809978297313761837215764446723860433498119067102990917007397189813072407699544291541988356912333260653823481209554583623337500001606179160303447318932343191577647292390560693999111728311246360598892559263241320832001100449295843574657512952564666470752460928825510037153073465416562946781330207626608110178528563289911110182990723694697901769169174838344496612229210407333172465212097813174156722691735394243816765070073829018120998325677163338417586331588196635606830787019694568749502096324740545189789914667889905032403428588665690614819630627805736104060890522097527586010767648939807946269584082777805729417498770767527168596483195875546412775578460476500894961204377451597391363883606785584202726494206860926254885153277029699087002725108911439083580643409031831697069762625344661229911958710585439130134469607451081498480902416454577050051674985210938414885066400005177686779367266992036026317021868630397750311742858562403502289087590246514284403256748072712393226006991015000472909776224318229823027200307178335238251896725923392736113842396177265500485683925288633835017735002861131290136438170153063769730500128881142854182291325817551646636549017811355346557737010700023664013473635013525382413399977716038171605157372951837508354160585888081262390361267844638566877634283764792265250376492912231900397652765497082929806580693045178942783304528724287279907338087407979756610237747916704071336719801309389237007251416593722075271381331874376259433804141324559848694572045683410377806747581680481970908597633896381779760385949184161066302354873109496805778811855736213552857284727809563351564519000433778401115060183783292087072982441057787124070590646016009623138419608886139829426760804121890142277228104415525279774678308399841698744456246866664100621827930482021024568617183190024905495557724874563320524394692364274282093010698850506795880842855286086688665751538904544850019695502926185579046499233985090927708760535525986523695054530576393294435864038160714110114921779369840661325561251566731838442724043821277004576183724176058081042696269692271668775732783203882980656830802060174015081919928789763651489596004973727125085797837145696481002440395916020075328221690146585280868695901502063322522394825072921320799721818429369809193085191327265573034003205858163340643053222102437099178117074452924842733871161413441706250839770877487662383132449526764718756519993367206433961493293331540504074537953300139182415623732006687178148208307761158655671822094176706547484239216500455869618946537405900009325514502631433078075961147840738305641656626369410000885893862256860207859773692812635465106859070786431763978706457365772242068143751293049080907145239295143291354019406941960525156700368896817284955690752553468147462840912265182019494953504389548120595412083587502019462410080511542634140943149632629442347304827383414796682980867296155587932374687154420013716917544779302138376262785409830168934399067114753508462866411862203572596305130669374584356841912249064163395284543964284112316395204617767522391572871470052684171742955659642416524662298625708600650454098843436067628940683390870378934858155682861405426270189360085046529215171982482521263326948440496932743618434648066969785230998850883335469426406904801860121682213567652067893026751219408498953791289729400872485205363885759548988094489929196411937317548791957284139023466765063280720414222693690260039999455750580909540462566480750506855441017151565147596424174918119023733088226308698423724945912702261912391074366681209265153628562197677145317967404040358834949288571857644369973364595056756328978445687607023517698190274834618401693962329731344855057040387460079230950689284431883256903728386623910786526562329638417429514165473240404963891616905269229601400083325352227754503653782201782545300077178356886472055745211133891392501313612498497358369712937082480015757277385342121714718293457699725287399582880547751908745110869674583058041459632077703305967815760043523111689442034298487041642031421398823550208764899092939814919090713240326202048094957414530113777565308594103926445493591860762868012790868026755501775555720064195553535141689864389068388883060996929289029889277085813611576262580705307689836135437535361917192110729013280115000257316078755421330645649884229834839706447878061626347425250143964299825899610258593126341838141677788874282675413973284501498000805825785135131620063457008504395246749042786274771353343047955273509470082437501029341371424771047149025828089815875094872853030924004272546564361352380850687503311109580435912126678602532853135350226304480709854446926164609696631181253328699736763474690576748766813448374225656550149929292544400813051174397189746705584708992847401951448569122796746007571117307450495392951991710281427961403610776393343583787780576006216304824570735539418708152936511391254219044376255205233761082145172920262042870201373399316955302914228294074136537272508706557618447838914802270125365036283160871380394789309421433403102072553354347057746427232490942649347377918243726275447346071126486760557573685885152620872482206552772660891645582660029540152952726095181015495653417165457260388599723256028033235663061496799931700224938517661278648911511917705847178570852110263647934434382943798820615013221923579077347708115783262409358854590848360959205819321743797994345414765912861798719339177434289852436292637403212659458029606512731736675634861143211525933596657788520903842747723968141075062314448179659096764963616195398332132387488335053294453375033373953727293152542724861510785020090375309734082181093850558132788842736393930909124536486788159488374469102870027257899419452494527370612521135129084950425479118107348460991090813023105784172719714603623952236301190409270712936752090499366298253996453399653527390172901021094069302545506951490104837011652461737142064198932231815299121447295056991819333630598016526559508365586639714513305960146844718031664617524308478912764075768754691345448462269378435779859013429856600339705547863289101699325818499727975749436999124664452075569850128182338269597961802774091623891345937015454659631161999188970966079821846361884581913535039933233269464334575471801922241157167654116321961605823203682540078966696192755589358324873221757378327628512568587416874794964313852166188349330007423278854035820084593435317439115027057585693278969624822357743143174079796673830903003273979033585173587570268295204823129348481318801878772982797620334479652407058230278243534474173413774126238721641688756022806740310989033904760877657761767011622358904230684546364584145717611254761209707436797847253179306298888656344302138909776099184969735361064538778397954607620705523153419295567615205532229286984702028876876575247660191271287247615052684518341719224146329317133629413495198661648715805505776284632071021123687725094050735321696639598013198314370367253655207025745988184440783676057278902932970221986904583091822058786737549722649244614604603296093351796156143058300746159902898490628149377513669314678267457253131121237684236666065945708710989578261290484409157025505275795360806507984072607148621723414612288158062757306403945165805275503460861254480850059649109786525695655379550132781703347148313205386558213825901654577434598588035385691342044477753647859048879551967260996958929378241403972550414457456979755908155691005190173827539299554258971827084927038776329261689969719403354263312123806240443057292886353675035550047952953061630275864482793096516610125686488023904405161706589780761091086956617743216231722807128916364835646208088566415259770577273155595212625535119294246973539728968027664211008695367588022576379259997127879213527621697869750363397858126195305607301776795581509406955900016277556954060099054413108595022693312915778305599753506134994745710965587193396580399861216726543565274052220740709862454314623981502639647314541138987739186874400563554823545303236674915323670520903402980650358694022940578070290798106115606841151016405784140544869975883160937829999680309663477983989115885255690913006548857370400603190433259027272928344635693139065393044820886162078728524390739329568497117175326704635059134629349166814634949458378363920442307712985521532901474465241122507423504125649733129309954167717958727584559788625659420956788200194311713258879933732381693953879195220834338795144957452246344776578416242126343470853089965983764921186877930484924165025247093585452607574464894444331419447568199171019761088665284074411878848830648963696986824297563350019488612460287198481848196160041918861641763842157085355713752535540052620016400164552479789201974040650147062662123591359067568906562104926010945985206655720883430678252085898393375402621758832387464213146369933506693195537570768314828982430556373800640558000031151510941733433027406068761906255346570725932572482355962369561862995020326292522306450410989663175096026908342540474481280378596039995628534105102325868764066731676989236058769563258275084148416338632684539921423105710248666059558687836609439391126588686478174726459973435975212294920136571707436919861046144558441186981487580605696068149818148786891099275089379416327143471715960066203400895315793241004507495536627885091122459821552850525468424926873388439873689956033740521960412528295674196344668381410064075561607587621127484656313803314496553149589411654543400082559224557711796066487846398451633031679076083769918692498854200970002995386186127235856312931376400762476339311564463410504298378135580489318094499326494183797095981114515931308790749046976559152382558369285566841337264192043336794932398547184683444754320329176912269603065487196941192322827425251110093382849345367558071855945675566612820245807027926482824681906528781600350808156133107672506934678815400856673958520507451841106751123389394222032333437645287961917932866505622918803751726811647450104131065777592363873083796897681496994179725365427777088255729762598029315677769070861864807483411459299606927523865753286508736541539483239400985739863455730326198623639003719828775789320461244140609241043012443509909308320627993910717520260334213419110866720417160542117854677839944740770197755865272722160155823728690507823316764622076636909137055344887517914654456441006030217114432966565922034034039514948800883504001809152992782303028682182153000135843475781323666474955321275323667246240398888074388788531911746859512772247575605148662703749718887350683355240448806964732047606106744383304501935756063541913648999470467174677043738962295236741782446705990958074596383894844045328340004402346390256420723164899369009845339420227580497991956053429136621454827167416802021034228842496778958393536610085204818587983973683592429456055321029159001789171648922578448637921822662509147937912639108426065837386056078430131251367246082420980248925665773493789247221559058361018081428922983658368447970892752537035547711816324118257557345099009913224045101705966850149607841351361033207053458464588956402999583939883463470118390003956182785194624001793306655356826086055668678055716937853402757422218980389130934575654152862377061621006408726903329588121480494680982726421461861137341854106025783602574636161093046237914004447201543678229605587110080643924732836865074020332523294710297303106121359417806365982654975474174824407642625125229012840349904383140003578273551795904998075500190578986627742460227831413919720944230401990560957122953148551818689492767409056614377974612828709050710393075094016893875787260320422307409014097307073158161020332294755093808598679801997643636993241353182700153516589996667377648185141392685968953017237134060401138989884726129534728410385143103618696586941715922958021930626549225605109525281766520087695422800054326407711783911943576000308401702574189491805546734633765988981915664703412664275355327820477822341581434341212937611985188409014763657261008288699402394070980564161601765675817989775667291410421108293259804756244472750000504917338575427911831559481611484321718597802820036382668856701047683644312128911312046164843503622304394215044650517268405183028457104842485720098292854718449206798825799411478994017477216930037296092011519324054462032544190843936537286792929478130711280119312475699231178869491857950569659615689239876869481185507809510849768195356581424665971195137007843314768244912206858742863364484322009871667893863957220216059678868025009221463076163393356073142473864764261101035951069688174829829394096555343358498158195322950327570739679940262602582206054132505897209155107901031433211477385659850909027608983932063081793743992470892321707713995759077707668992383852916108539636132274133817522171258257025418082848193417601038346373574445770712158661488013524713686103363592160010079322639229855700978676814368236661646536812242162674202784735526205650217035458076047014613882322006012252722754076090596452718418323203844498066768108063100578670229254125825734073684806009554784619654135509113883929176680099418393755482448267021738655655408713471953659017203054867920565554347399654133160516010027914731193373470250525963018523536527303732583363870731908876147046503489000152111760570850896482795597045842025831161166931617696305608083837104520305500878645529828811211584997323772945915877004028091204974869956970579908106128996640320318991955675463217119948532084322134456587965551640556288063929084743896201230890235936328809295721063121328653022389962987070087892013698477801283972008853715397047346982248621490648200165121712224083677750023643788090138860827049224300313325103163090324846845104609286736454370432688547452994413062100107571674199768423359950153800123369363653024239780298520508402685298107557178348538349652313361080641004136683285266673024893425730425652228074740670890691314889922680791148085289775174035297651218154290550092229924631924851468569431334156182613163307081217257984309160100871047079535773309674224845108106656277669342419592802560352365383457583428492064032033725604232444285914852019384668421995001247841102731100142556413206802227589417766451102027014292408488556588088139732021511772789613077714224854692475350083940171098487480072078262460874140478542642627566450726693159868417412475512402598046378777818716954992044888014276927326125520572014322426411556685080753763789748250144887929106169894351992837219495199635554327550163559017635063404989683223018939422282319339543594587804389131793618246679319742064776659085398610270647176163138668058782921215203360908642782342672558570736615908549084241680689333362329583640049759029449047308790684774464588376556697290577442263922868334330365457739998521406981170004140993057825964865857807422593167933469070675883055319191219339678510530842075167909288377820347468877511031886878684229848033424662304827442049917344176227512348976055541831673616490147117221538289757405525599964736061884062370034145726815709296410998130767249995706809860201221447304852790761147640434856522833930380364694872563602175442551961703571078577504751277211552103858325137996490131904081724268945142339424674434867359831844308454295120474209593606954670352229033649998320129760333284376624826621229583121012702108718008738584156097847001399600947303026731268185493664546498838062061398625981214687650127562032049667014489407304017545184121907022618955094413194125004842025160338643830659222103951028422088683654974175802879873174316509828403025889010876818354229629199320251722314144494845164385527308113987181455046101694514318897030883780815340325582825197943982072828515516637965046319130802847239051986984245008251388251179982574661360399809868310507643065406419596112219495573199085800833097665278424566963189642003298382980242532461639065317952201352800522145822575678867467812385165537507864774173119104369008128877023033738056871366059043400690685510292946179095253536396585765077517678950019548808879607799001127287601865651168426000842080878180214130047834386042166466742245723075295141866008714874355167026238216115916581757340349116316802731307820678031906159220142635955536134805632629916701295362524273018183958603542623854091927920963053911167702176206139162011730178590784995405864294581323160092914313567922422911433664109354240881614815059649189320847076970070649817522310935866067001955552079698660181563051797805681460557726407934535164620777295302803549125836947630353379736278711892574120366288517798782904831151760171966740754141802566748896465527883420216285050348480466187115604146509553158404166977146096978450043027096877558976282831388585585153448651423457988823257693594921499795811884596568916687737490850197145111811760854840582369236994853212354905344122393841225097694349896530239857087664096870656256887072217410626967430240379342282157319725842322184105369163217788270084021768098206439122725355070467584337726626615654186869318541612126147448763784875725866485155725658122874270551378969434372194041068379799181153853845578642719045622709687981842026472866400911263295020551411370831884776090004841522170548976254160078970692955860470390008091420945839385355201034951441793247159995571341768062316729305196609051687598539541256871524001326601547994912609441367443761799989305388779027555634576983665328919194064053182256227036919869911944949434997636067203122559393678290470448468190574842425104847795009863974120756042176202653086713366207849507365004888600239681130705822807623324653597814029823676225921039565037673099477386484998762550240923448842944086957041879005933332684845808542672338756962157761946460072484072384029694185430483181706673708498296468190946020796516767307996635093559863207500389061122644067834068894480310210665537274000897060635111475712962721018252598506739197579968097635037450114151424701189596388646321387245651929586148879526366128455209025725758039343759395884144362414710188860670946692220431879013827764327604788154306135334286774446926260309289529739148217947507063415511550817725616324472582329011167100601192719713731119263660628302151817993971617330383283530480831572197203142514530050121371859351474009224259044341858730228379122209335225208966238866670409156052741136937350612108419863545535721641535354511922125724449164346624607972366569706428149935286078140679717428824083686913288834327776471330371620937411678534736989319979223313652414452713578258400347634664653416876703869271059005221807184273207224431430297623345325661865072072390798320745447074546779795105168062544280735352574479869771330352619766480234314718878989535188103347732670670530549871969950684344664747943466424063401749131165767766384842431066183410510966836691194322663836772479056832877377958833110712783692829206215256024444205257454392616363070195648601120824362970937218318008757274141372628955250509734779719465959929104821432811824454511672960662352719934434252368931945523821651687136665440743284848152470499035780480514734094286705355145898371837052890778636929086782447890867177411931492618879663482299869084956763734437471293864682521513810016020328895542249768114540997082905407915422250376382633869749613742214313449079389323579107424515672962798970108708102467483665235952098148101255123021190076242025338198345023094142335281295376614622863495757054831904373096695136981573415852311765539395575640259567208935664402813632374470598642321927477543219866145449369793598539878677300988256742093726703676270625264227352289806707472369812335587040517765599570321405001961365614533773145029374377854083118481685602954040092987690543063264329304566951130015130797888627760194034101877118055968840559977987153891335383423188678395268359024432005201189319257638844806749366980849566546826949720226418424510052836785499353401077988399057189225351520150333534617761829293838730985027468927902894202177863324408007022736236840216247494938564480068096951579187133774042992884798994295972151820866469670568788316139868656068734185782593301009665974491893138433663310470711549561294651373378864770582241438257793069913895125121982713913550451832059597305495561915503281182665396232449415185539409640997550119981599364702809083326627981293021781249296845358575701177918675668851680727680781742825680451900889081865039385723462343306522365915724120263849460324226827829024902638959992084537798768049984466313789440315899246434184189469550773262716923392455300063478246447576572776478367182922235228850016071588764090981416906813283683787535218248460199107530533873722333770645727672870448979159169283494001393764833012307100484882469865505292152688364276859731310020450966129051465206309327560503567570854287208843609821647789129705634109066822518065861472396789916848538848648557061601814233665533682586782990065994731091669729271033068027343819387962075891837822430403692121521677432302549847087836290819409873227421818253675432515523641684451486917657435516838374770590786159461817358816152711934208048819117302432785617255641578500780971513338385335318984463542534499601053447566798931753373588060890784435789928439178505660084542334308407429780442661224071440391459924891983514500406513664576320407606124644515621128488084156648073002825444866259763086175546070652888376806863377602816276123625191618637819231018006122226989933710822866995797749160696120442111973415033465519361295299460969176669501100204811498037925524983465000728769685321334100383929543620751036829246340117185386002357459916676998809887747337870965238943323445670141852829185435993622165763149026597812600312954272564899266024893479817795015807209059223831406264715603499017264120251817772312214123500485627758377617090856594372481633744814514651512657589823830907623087455554578305933283473940555389885757698955127664578471499522069077609376045347261997949392500724598923054662241626622333524805627901903290764879044771346645140219705127047074518750399892531684682013129850230094015210044163043226457764161568815315030408399387425852106014107772116352709376578928907398411336546094601481113009925515979837155947744241065658424171693218721590951969815944726294815370078202803982280010811478192006668216199114708047314120279821911208090565769093135487359344603008347970161633783490836350535387663163119522374704601347526994335466901778117889588636379463944814193054442982541573251262371051594784878703632437003652053298902510853553038012671944998489598966274603408261706631865270689497810388496549060557785292963416413195542832983686632506676309399794883688939055922594123876566607861552707914958913708704154962414752723359676835863658647052168963653742854605344117626317510496857721072504798191898761548219172223136589019665169848332210826118338382783401537642656088515292752094584102786452378391864046312117165487172005353344677051656240957448306086504895481175547207474267908717984277072064885994930393884173758026273526330400652062076908073558803734384690883761526079277709715792809657229067094266975611276963264246132031219250071581108916982721128943541031272992899934124918271454148910923561325957082510542839222292401680582123595692355566119819767464618946624001662594288756025048213079964684620551153357210493799123264939487376103219747475961372500887472496194967417576018843060896420964373828250076164183143752281889175428309508763281135565962689840747672395780238138730582687723748428260422102446276318023152418006970473811323058729560071240070016664863526207529311503463383491297482361818601124554321395911174259296919148917056368612882539998044424207086640843057378256534900138427383565136337153858443389787940713065063524626962599701786574284427174095863558978210509404946810838757920773723086360277552677031036754208985143908697518346807581630859012129621092813473129732415751356269668104847727079182709756558674280587668804277154969310562729242126609524409186471275278114935978220140769552155941433630859192594356961403971948459189588377548406931060934199214592317655778692282940798490798307781261782701986646049186281659866306755919486677788136764139663819358006501032076645391513738442973024360044510050717600713791008428623736399831604594367457738988011207502463887726747480344679787578362575307591114758571915727226371664950539608394349307828287090913111516051839581056985937695519193618391437578095274107192802476733546420149453598481348676691863207837338906554761503015648430470355972933417905437607037290604759533777494118418508614291779647546519545709595456686797492023784026449772570232294540912998144871238193627836172379070492037417496485194337860362075794801335673214322368295873539352616747388350506223788870191418877170244174107822186189736861751300701302514333505020876584537951531475762101888258510538300823215714681662072546308810752407588294199416793327288465794443600143826201879061819580317173122385945180969887915157567542082112464915919917815981910118140999608563735228208307123187725533458088157792716852997786871957055067999317006119566232282258443252717572786298930642332331896628670162170246609508980445415253128544012752972125520640175161008213278664363602336905984150425034268792020418084153051350760239915428166343462844663418600248694573895606257597861356268932802887227570559742545631610002172619566253854483765151801582688220183103923917636457399343387669775174203597179954879711392882452967506666301437376103219278746776593361455154466965396679874059545238979698403001426872326896574199832718787993745095795204511425432130787298818538760298339330405195658540495558965489038099108213132223653345811267832127740508438886327366606611252644891456606986297326787420794524773957276053797251908307213522021926618617292479129791853129767237972064220285222777422421631109848771534454584405243153080440288317280723568998909468719921929666256221696712199683448562915056682589666107836484524111049306959103542404554719411560015542407166158659843574711218718604610475860107445149636082991622672672090010744659327218605344275317428672037179661936957533061608161983296580895386827276898974715333197383002265331837636030934477913280456089762689426873489218582567238498963547985670200122301868044376673345524812361092303363631080486426463356448775500897850654729577068999389914702278800959771913086713256040440157131905952682058929740922841931138206805647326166877610082408017804340137218189389492261985914666233641823160390437818428204898982577001081454011201664790022806689431101022387495277669007037349743960047935938088213973525231679345514512997126912103935998036175714330908803383343016929020332647581496583490346446597484686726245232867620082165848122004746425913976210597514282484702117972395439453180332351463419836463949433321975742831970925829605841452015597713949242928607194002500195855490006402370680094093515649057171476814282531478952891897925417144785286289480940118659288745651208236317152948978828338483602881289644938940258744803621150849877000377715788840376807257390674123964207177906454482420975049264884574961246729700938115000552520137330786687725011858370604325252269301970197226201191212162955789393615477207504689281929789931487509038837635309064733445101932670000586904843455169887928826375358478819723801973218783343151520858094936714731295521173888363291823759755138863789516517385867888290259453925478485689273526178245901862316103770438058023902982469951851037182778870836453864626036591769718671566196187717397795795059340619104918294600397970473639649293318927801527303544427427909473176296122191193456728395986233785050875146612877445820291241288311777577509059181168531840987008736274493697761710095516050526510413015338668097094237584338477621937973253198210499696544315016383387196655917233286268541729442426527459459190982165208081295275178909250709864093947587496698861036125540538300324329923188537853702634291073764050602457994207852507284543598642431121906658380892067794012437484586767331062072159818637013766407258497425380401984148475867778561051844793239321735201926197521338303330147754385229502715131988332855714308248402410955901030482701562706110233870377169073683748755021342562541926949755164769086269707320917854754803233009218633593465047729137528033203904178946948103159151194411758072769691683544619151862577042020768382692190354342583822194864154283086102305667157862992719325944148891763311730258887124764112825336021031539569198714814962164965492198945194102057757565704868936791012218922298904380143712928094540161848742989738382683459465753351899419461238312578189121231421639391718805971281595551173583532312303245794934012505760763355731939921412485320137699058400295447762469731639525947408114901088951752221022462769474308899025664623016532311896460937909895653644739771802737142983906318188017039278880456906218758371895479331413561495210620550655163009902253793628401787019589813043239211759024854738032142669805931332653904537061918887262842683666438510663516464746613718944747257622418239442658685698159772725584962714121806611853073800862440737722372065443712056227290658809726047814155705449574283179637103749431570671702828156166907486051554480468847097452472675122022761482770011436886212919226300360825323556449506514997817015277743441901293769303221993285603891443928775662035278739471457604503604154725629553788211268367079802775664508644447482599878706461819740750735105230847911942584137876172032263311821090237150597911885898952869844055635695520796745034626416014575258474874524982135788923364754782917399948489955227256408866478101522199606876509217667121150551203828081376811906905081985900646480615285921695963455147086724902750510780203226139492636699809136378882247425611748797878895606862713411327550756424339040421542481179499992970445929420535930617717381581670251108518909712434571145333757624353064928870696427031769266922373211020679122039854523293010306068286070717395503893043311663190068411299471974768008035067019252161896496598356047174285415466164866537810053858742241278906362179018652994091606178211164782877297017281647353699752570279453653169024192423734266924460279299750599668497408348733915343390852020277784907391892498987701077796941539786607789570015920127420452913747034707695742074684752594958368211036011739079862773984401021267765055870544874466763935421579529715822532152270646078563956612551124263891105369939939495612642330735050556560348321962322760154107448700115864653648876564854573011525024034412879316563611249770325205777241337347877705406513999292808561675836923289518811435913454263795139265438360512615951644151512429786025778904050307400670030824201960144857239473707165790751859346649145313958373148503141784315802192730023814537812722227028946919557309816308593811253874131214274037987238832701857498148511447960587331380590342463836008398284158009650945750598105711464988185811435603230219321500189746025497123710033962347943625157086230354818981847032281657727785748071093662707493812951729191521487062372067376933779269494433101038702244806320957659360876307319965602260432308890282871727311857628741389554235410175190674680146959212721584405242079041768422226215823537595632233091047450145677366969575826633191231807249982327694429718136209220264364361137476421224167115798628977208671147432213049687296842408479223637528003707249010790622643614069629781612867577864806937502485100234144835395522700873380930347905638839494733489509785320886611098647794878549659074059409934525652136454454543397227313512628474925833218169394376783290307085362028471200227732185831069509199686368818435179125450998106934356587054095319474462986878346607569422657353298100311032237851070163422167941680594839472982543463853252656522341464050645297885556789154848953108493481074552888073838892527342374529095864013706686657969682346453550641417316046888973580293041417942608435973821476063397489716317431555038936075007654036697123997328227383127801837259011345618555623697011228398646633845545623501527980508903669843479783361747169931463702758715603365295665754574170393061767794057432467926454522035991969271503508526798395146184134002217509727619219923272208897131631910540228479730731952325348253193136563482328512238125572722599892652155985844529577541527552806617107809466659148443956966249938243454786870112412095838573075867318077574415077990058223757666400175913543100362846055116186929514693012791687774878304684889408040197803990981348815717821893413869679745012549182214734178135457734408992937462464355167777537574561365675527332338341331361569668600792891036580409959572333003657603778205121720245227328563155869253254502343739902473193531575422015481456254394389209444222371524982678550237552742917716475822277569601823965325721726988883136472995294269732414802246052181508355599206616873616029358658135044880195855180211301724069804268521511440624990988185064361283387992822527810032588832783583190413818580964960222827283676164922839916743369490886580300410230424887500761758510963664900628255460186595802391133475876559773645331334646219110588472225317702142060701194048572080232389406212254028754359049169650450171869175469559150759719832484634804245259639923759551758017995784576194020946076099968979964993772154991131679504332852155158741772773321848452020625498965518514209311946952698124070367833566693823047922106323205251790875065365371994855097631913737322557388227991572983312046380630667554279387051478298047928281455625853322068005797908817112684646072226582376497649876247067098253133615781939399080408730037558644676450091623724983450858702357876509197674009494974299300214498842222112689735136964162484319778229530076530759942410042951009665252000862678130508457329051882944984379516603711361670263061247516009659222795493993766660460439180460947093848995001672882504183859746401854612715081243835815811854085169894093869443737478731485993663551086681977363804179286292789297596470295190991918269505904754158818866072268865369741303067873294497181207555950342431133363810865397020308253413510859961473359365221623142525082902096073243560232941267362748324185687178219174866941967625353593336426321088054534380715100577489542128153367489888972549012808326325310637910810763975196760239863627438540374193761120813144234111589835282513566281268940377603324323527879084672978275154185445823558639836031354835962364518758721836404807292866255104801113737922932207866838359421622903431719074381383457164977514589040467205276481958643658848205734717024421799173067761430036720478271930533528777109885505610933504905773980686483433077227581587241893543858819634529532698320810447563019484305409763465082632325108532661128280617839323812334919812501531908913360672323340841523589874640870797061046258384924852682947990332730198644786547068081293573100258012847986126634734948974785205551033635745194266676753532637502362191261280608328141260616758776723489704485315623018679443914805684197395138226419639744941026744726461341659499292884823817244397521274179515832191121686828385632570432676325812319600042468136662254813384626010358404123616838583702062246610411277917259219654763273940320731068769624783433471639929506013703501010452788928719415220153771802648515715221804556371315263401250189091050438859458577163811012197309499680448099137788551093467688068325987921837980686212432621065660194493478286573934659201891103795067168521560497274259788763032919782043558860858316372817014868718057014257571528728166826922204144952173080403632857938404821211994640745957942206507824646324253159944889133863193349153220505650052185426151211584246516376662461104410021559688705274544217779168252396367533896714560922050175913038395031410283913552621151062109905944040993820107610967785710841151953539457074445004353159719507296371442394628290560156114727937794889226744148363659441759257780250842824546550710343461661202395533990149588005455102403711044768271026866755357877738400467600152117082201280455566009858463791237547783974827101997532631623983429443009258730270859660397054996639377329013040703557199551442785781301957743607837315016074331581723871299865219326303116187985555014429048043605541207568399550340288858223782434425834907603802532404394608598372535073368602558723139325160471784377754708591192512632380781665265710347290676122175193541059984674507119118748462973981615235312608547483840600841740127274675539728236457139243694989793660036582932202666281212555956111280990301416458435838885625017748948315856075797811130775096571745403166070997059123723876437893961846774974437587573528581396990323823387226221880569278565304192486978347046608745089155421191335527410242120079839031120810291361409650090448007825463299974837246463661220041967804135153050166992302375201164839774544013502630971179898975485098172724830687555539626872273373864372522620638928272512311347275737800131670557483066724930709371651501199114113570803908241239517244235679911500026236980280279649449918946493490119620338181914368060886323936917549208044572940482119167109592726246646493699495463414221944568546118864104406717644599539874100125810252799006392031304946877442181403337627035812959643301729271105903371695762694910670408709151084308053113958815543676475733498061984779945933208990307539131017610704730123327217037350711015993937373982747389934172593707064244331911951462612686595827639866257864026790716479090813676544678837783572840781665671325181926601468728154076008047134951776115080101399365297866642080841204835005137586710637220900265746920666023934241854038484084495568717443529131625291264749297129527796851701264500317652842338725332511039498593745689103651881788864167303012973637137074785078542184498332380886770386310327296935899719398868241456650930975581201537549114959215183634305305760782924070120783906166314208484101946790402213537005327787025154143472067882232757515506753439614752092281743209415430501581185476767232088233867809464437176856813684482513154144456604185208231529117952562210936409372365616171563791133126909811376388823368604827933691614836183796820667984144572097066610213228562352185251144923532409658099253606300529163597746560151853640030589392803523412924877177743416170710177739377159440000042112018673407286706662658862515309671498646550673298015049111000258574371339958341374003469072295005204544673475539529151325883924562500447313023223144625240765046800267649638556113009854567237814790074075195320847793552998777839983841361293164950395607069168578049564393353364395377518165170797821276646884350744898947891592358705120969487319164353645566206878528218026475000592706239117450979972901457419668669004905245676150402636571535176375791965722076305368135010446045053525568960613291483870761960004380121919546682717299646317916356037967776516119533912281020905452188189391631635666282860095476869714806682188474561725254540414294091314537545242912511826840254990733387755780899637663984021533514349288559800172208990959852774523481160195317767591849108410384331454897599871960890216575924870412305861571967723094103423419159005553906645215331710553821566219173266037709800083772861014904211634751989664569641683572173681948496222596692093203240769470538867605467850113775445688036482692305867078944325304670054323944804695459108898758084433148060402506152213764175641811889734731326339771124324928244253381076540979228603280493299602505562621991460417441829788198339907989670735151419999777446345386559898683076833098942799908622509775847148006780586742186088510489304356984702051207039919597234641560403807561226559388741193030156066815558062993172190568736440642852103492029873814455503901018862843362527934932941380369017234911630537451350768405745929283234858168984786375261729275428522093908480230369768046882829468091210356607473450230710840788170637796012963144893780435679680327588369608306858988363459149717909451960221219818639056677829544676750615793762905563123372506743121987507323343943265499246658801468155628703697890048630185678650207468541697768399145113435926041336140507002319854204321136415886608584306083983906076403888943669261724772690916382234772450204648196736734300230223462436222528288414176657176887461381173430316544573208826184760116619285629786744215231780398943078190957943450665068478437413321305414104336299912873629508763343580172248654772363409028514214103804448770301685174203163583826489092137305709155850895813350107273294642293118571566244707237987688799209754822553484843349295145122568659258655584623055003667560594551741593478731691997283484261570965716726378698255981476155020430113029711440921747933927456748649229305124930697787274282314672993488371130427723552974445045343244995279659063110390222517627913789881685403506937239312262881062673760407917807488173258977916940496951735829896311947090760491900971229386081898611340723978614567586131639837783890096853382944877770913837456459701129223028163794695099093183307902892782262702963876252077841306485714937325453922901341945760785023983922716395662500893987848795581901647156651994057071031671577160659955211804413255849279426274289431997363016096436815831406211870558739426283782529097540722875897876996335213117432471256602002934029076457308700145745651303087640222039593068510394924524697545180872765078506412582009241809154822725256526802127992975431919511990612351044657015958927564445306002163425578509086940313718732046171284646231465005977259308957667350187683984113438323688350347933823024693537441746516074958644369140093000202778938545830998799433918455222118944829309657398279780904898180970402255139529038156060962970115159678080134228651343412358378324889380680407007213599882618487471430272529696301663656730444401702721333125268552586310377983260357403837153796929286993883198584583125930119549250555098164140149265311891733918083319025611677450402323322755006673709837314742922555721536045343891072385541417974045625373432808250229634814561981738337401102531108831267267447335991912021660896114624447402697970007452808753046946929718746345553823552932863066815990060015978355850206967923045081150528854356652770022056980496657681108784495629451898130581457244958766852533948282921315513186261352642138189825354273626387367366038136361218557133164942918093148915908302033346927882617440477262423586893108871189718240394907688219881859342031176500821551970117847169623240242789055484195571872756602529223355907717513479720191340646665132144031533520069416639678204138858223915752530487041526278124322482843519545835963113778484943488073084763745254503513714569491641888283555639417120639052499310884773624422239933916780165178014516256488542737503417948058564507746545167523614685828354334730743832588555939221720868466882346098963003615276839010594322529192665635976513307847857316693529724154985953488330267307079362427361699059456174014270586181510597143632145725728056503604567592113877285054433434448444018221894127970396530614760507209991221711674361979896901892099724987885186154369278598366358350007030445697716885224644839971850761449463039814629194187303960002949892953965739942154025999846593861452277134513943700998862816567743848521731157704924404857477550619032417106295269792498042366165609027735255161302178997976269395790907543673731075670165864289373795085727874132982736276098365364825512705807330254220419618815524711540405020864873955934821660970409876295313650388340041711383881375636359701632364614677473806635841750705049867138640040736187034872324266329545089818632473189054926689296021555843662665542559970106396845206227959487700625065508048888077331460373106971232209952522541571908759789268110743669122700225471012296438588060186359778078315018554558953174562972512935899344103640882940814456305035717888123100473645277721861254688858484889878350033049998831392349016575283438725229531646301861970672302569226111107340456435121783935262633212736341270032024462621875488437656629491372727152642514740769744248261625702602098120817333844566720511610391806538941863539493776034030530855831222581571766619122613971661952844319461484822874993512655874690974243719729859493316097217463447919284187499290257182457277409507891901019835409155086319742822049973699009423597700553011503315737650324136996328699713963365299380220188230098524368355660073272485186631875071055368987534644890010155834489516445868654181602489425130525168801220400260217965446371735329944828347203515612938563603016230724771526941010778340363028780423477575827615465887728937540605157711954050738061064444823086368219533851417556131420354262002024169964854636510024446465308413744775947333708388799649450425608402425688073258720436337663608839316949698718734592477465757054355861631857316380971363046820502025671767908210672508339578364217552043042087832504607310222560733166407637970655877979706828330711265090487193121053634023603129240423145298654382158101883680169490607385993315327655176191672400553772891590071952089271493677298831235166334951623553996188331125838885106426163683390681005518123154685957054468574079534488142141183359890799420812962721639007978579462766162055377417601996912413995309042354517614694616822145778702063274182773272633318015166824610514635643541196812179680173166848699923467442581322575741709294935245773032714583332419329879491410251659369580540996024126776867241500251059405437387655310659750801612664820298609408471969141623741925959991918381144315774967032552542819437747506859086667595984329438017549802304614589004966334191334466418453812446134053364343933868041675057656736830418042553863001364993039415711794989143136566465207486822505441435421821017377733531858260389597857131044164710454147505076995418987977793214859908480713540050490031286579566129064453813104623452398907726106270502751530473915378254224723740860334092145457388324533143589795251886462426484452394476540135048891164579563058474379664738692621296716280672541866197540476402442688956467608033010070088577272574755308851302345691790425821740962484966752856418514698585696367953135705016034042435942474301487195801199872822070318582128243967811492851542913159171007463672039508574827283584869595318211798446587998320377433289786462560308318741509533899267705258868136925587872455450743210184011035952032350348224209882938521754039131748489427828411821908054722302206761032737778002808327749699506577819757595037355006590459683333371765324080859289733582347926218223013790570991923301602495480772919532585052488376682860853341481492917768718443241900164272606089621300509711646137375731750541122753977659685571031036785164824554940896200369004996373956667242463251685092711372130744459149555764846193146363145915367089805789022050176384218546117220890369168865015247236460327955674876243655312202945283743311882877524932767486674913315066843902984879491315446955174806224347550891546635518649914806272434669197805797315826099379307821324753009191042043054339920197902083297949602838311882303558465450522806663933313413478702519665463316244895500064503647812728668959427423422459131560390013102567775023315861732881788615078897192840580174140035051124777576168127942642712138731109982049199109910259155785933179541113089865666718644696985842565522546741113128531469495861934804822725307264370317189543083395631692296139099101123957029697606791254965141317003703896820054534793905271736050415310673317199886830739642176419035533285449768703186391677683756919413743584734746775609125158217647942830871717649930634957288216744906160109659673519009568816614312175489302335746668809244685998265551835705173595177831814035163876547298502427337793009882410861002097498997494066294331112142378351353430001135003797992278014646635582165972804311301722345625522420432336191411899804787259970253951319872910533084593333370424126793621585913708731889631301899058288984946401846720363858143861971480949838632815691194477604024611699044954365397986382099210057650475442669201751729548362916556072762205503285293104206952880187152693885609135811397587601473349889218849782971217362549666703774026550897864163968188065805816518127964648698259718764783644093351926064019558584824567397908439019776417755760218213171644809407074887317107852700841590967856202601242944784362700978243224601409151201055094296025213297170488243437744114248173007902772975660539540757209678764595682841395996257643693949296186545233284377187996202446952453980852297678851422691338579669819716873704500410322104461735114784178017148110468695427077018781638347192628914046160062762386025260835487103316056179666352245870257102035243090890983684232632086153703133075690135991941407887374558044806041695637523458501935422614941958080304951231175566799670078507187359998094883042091883277911570986113178029804644270438796715175585519290453893687112480274902740312765760800192026952068534655841463667469180829407425715826781122496576895442261662368783981457324101042197250945267474561516893061797778104847486514814301409972086382134378402054949685344193524887585566169616479650238031030270664112035980257694541036077091443188752497698557786212645364528033327704237490158778957188664647404303297933934212492124841081249432340332436864908760624990317696097148988913677581842090498927184176541115905265941650127488430314597648835709219144680791765681821841269818044706933583743364022777566533473804607250846903235261472898766218549673371665691371584507018833617521383795932248572912726091213053801779705720793848065883196693922064366675409703956841051569256283357493816048236021728474059115456541705773760536829543645038205415049645729451269447050943431583431967172789720550138181588775459909426313373484805582363455165741546631145937177708721444061966097308669105376890318481504530563227241497416154351629818158485805544865748547147900956731323877839834352216591910845206976850293986214815531750765902188922724617396145967889580250712439735207927044429073077699841261550473049013409746791073619077837018969771146637271312157053480018126574973760743240586706039116002379229560245330104916459969731380786876447305007069467088363176884678336572567364392966387584431136542530758701872047287658926254840791859382907434178919506786950968545551304927774741850151825432653730803673450287397900568460747669403008238431003183326512420994574137526119554140101779635461639459023561418297579832764616774643044910542492102365418409654608349057678528805063169711938600083342860790266777792095851158750286867015495303544370513212691363409743132927936008371187153371294102028498863944491026941340533302161815834713157722372127783448039730269168815636693871887636728528041756751015980716812008390857214732393529973956722124308905806073856624541802117514899141919261122560948725827449631751819513189447981644651082245281681663860369751962109225243111008423083319594704226599664398065732153769479744466993879384346730098090623915696568981915703238013063932885115139236288784400888695274077240761367961708850071051405745120787834096666706392464158322443735157169032530373998413090202733331013122785055182509206479346815851745993818583793613984560576947550393844196312227342298446243957418836166066044451999154994882567459996212143567035131899625268085529111218846199016242234786927370663270631177352512943579705863654837084050552677133811211028915646111941369915628590557218313409671885948845906553663199663087531983318237142108275052881965221053320325341497352433607342455696581257243735208178418802998531681780793688110602100916759598810671717843632450101069673560423433639151589096814328537058740545672710370073494537634765180875805305185489478017659650941363521403699356465460787495092315515549300311389171615677442116675126140219684103977410928447315638254216677997955448958175777755397562407620383037514657766876218127851500141976693196783616969357751897524486506562315542560733021930486852630357902355319463036702817058892462782347029779760316401768810404010650755010254829221783093507017447865889881947558079549956677840471157553369101818237317688243880286026064874403435798752753712449633651738723281055036312725074541267294522438548165810456425636129009190570275838032515872810826189071654742083649263624735256570197310247533057003835647164016468155497510145053387750399612807615692456435535625736050472235673181261834343710113461353390764035353912458526455436724086834134994490413497799105848683861929160903848744686645846229009268746084679183885195767682889263826326800156183306434636025903114108576821083667981650401510297256844472135007613273680277436995488440763266315746173536421991869183886595332880749704393436581479066359372412305059240072695184369552156980350461392476422405342219118292901889214404595978652189603534688700598294640014697077702865611219002005174555340247317291379838256579451044590164113162118551245270243647581896239134500314733779242746696567869910717750783600890833846717965886251264930762667265410642725648715196968174651363392256983661399401130888166176999934742374747616815424334587654212021387787875805469571892447612145734238767898800294477235218649683311098151254870023028747264245400430260636256140400975258096434370375304284850848393597832791075985570235666607728417977241294387810866710352436525649850353005514882425466756162849674156129966682801631460184556225282902853592859363488532740743073637006230154119355599585575464668916072523326823838580399140870750589618449987307250255912728241952005369727375194566897880894527621874791939027443007411925564173052205677287124304797429271200293881752707435097807263801930894638851140535896131646035193603889325600069971230172351550128603079657710208441562021232186592165500503810888225553500322317749610083815170829670547501817579347408260702211851749723146721146898418648114786692302993692978010751495969268833945180920840733231509918393457437623762675839911748427516260910447076175393831462974986020597304069482662670890444345380570546095054041552651845732898614411533369012897874859023662933223464543215789936954603502177347133356125285485288906301536117486935516990892246612775101657717778324848105326335873891026840895689139386433876692389099576186202549375750199807067824119577856884498073038242355137201252051196151944075443426334596626156737750693373401234110824483183331925590553000715046194765332426469600297191492489088101882182993225006517378471661196872338175641996189118197559116668258887386143847786224199055142778882170606152899333034859472222076740423667072796802348694549347854701338372157214548582078633620584285264305636456398584289159505658491946237534553857439766092634118684940095910843033767521090555707074333821123220347386741010804504288521235506385683319762966478210062569165759287707238268274382973890016312786389697953967551293995887396297208114249397908526934989364980615699675501562041688806439625580495650616705778604269483077197281053454821753083448092056695219795990775812885239585268520842546126514506318049433368775512670636856188022124537543488804639267812697340983859926424207582044938301274443028998521937205059019636329380854406940648980607372540838112872523818649754755426579789402756612005871722944629736132995120255011815333665957048420129397039294432223398659922276691087393694964858000708744319984880152566269191404319334970672170330607381363443117625084139833974240777311093176964077278892791937995043567437849875786679283419053466018324788519132501853246087808747041726369314460866767551928550646478325137808098641187651442984945216646914876770775811945390925788913909916726636774084370280680842403861938777132908089483837555488803634273044234569593701234772949697492482665745133831716564184946779216564553669055779715048159221676442706715480302959133130098752606084299808584458844825671711603702959577184886750805413693007087205975109400036690997850643315368505247061849728815249333428323238765827656144713790304920364637726949133711386632475546131479126889090814705911953326862314783328625360520947274769213209645789192740125877698453556779977698436515003496464844515708610456542695500435121257056302880598493547310613080311120783391526858383949977173735363062809367110732679433561644422702401121544293884072950599817005252703452735081543603899429559748826089961633078585579812727196427141626527001048698075237124027805499550955100952091499374948042300564650124067676721080957164473629967508393631089673779879768368044159783962039331131053437827620926431695127110253299161658014861861628577036766159770572375799736038751338322726819838186532479795442315254142721240447072584698556077412745983563938410030115930528906016655183611688297670773991641241727049780781396163433297966697711655448689971339717546670469868533786027441829211975532832563882955026825315684285951097273319585708143168894733354128088687116566754401022406363100648824835160905813096092182046602098083469681273869102178859808748565264984349476782907771870630047926503726190531773037221164980368276505271931653791424859402464004778960742461315838224398206302471333415966627318184174155869519142235975035747974311616566860960178949422693610323570620802529632008074805509639508946818437723563498033576372699615370952860909575628207404690236243607393880151540983562526730165942920093040448052976724687747106570357558808233518107431026638670968372219718449834537213644600774201579324339524022942027000344848903285927766305623686549444898665073377992702383119136639795007911107884916674743428324335770017367818688006054500335525800463618416315418872824280957759549043974697396842778079018009847220153863014023650754026236046488011926672066768509381904921742650966382824972974988853892529701327652505302737206727876747301957008410369307358676924766169611865858053706360162023942215543091637429265280674749307784403112110035504318946216820978107986863349290579645168262787205245413537989530557321800943645620609409748479219186896663512037030118475295004953273641747427998528582770353323100631147194657386462176592018364520509385713144525125700391081540099027580152586879941727580422486527662347157574690955753775956519264754654103114150556982155453569766289691591982613495474273632389634004839954858431790604283280967368872443628985947258362445521354998524389200103686587040402754127055257885898912834260620845461808104711193546980121446480857465066233048277224323240665368675719337763802310543110571421440818144277546897080506070138838625286731289780948982530437628731653228063057935092139258235801887247860782827282072051683211125692033821742989786107314126385765383321094921491554483273856806230772940136035393112564820995908334490111098998568429310010666553435729621102856564920937678795563495384884604717029205920177969380340030302085214774285456177045897507984073332868951548245522704618282863282774734513334337189950031787081479710201418073229942529086069458020306352100592715233617015933221623325426943137680647170403908241767710322070082597202007595525049954911958128330414845336868759005277156385249269996515926201998007564703811341652317063947108632556831584602894182310288366796193856046554808144286058434204714495072614224839878129035729570338883431803618357336438124415394348875783192328008633924685260651180331133172793100734406016461802647012959689215306648384847129871375981237787791839541278846067310206348571258572541004635888056155388061069180510634429571669016650451528954893256353266113458359348635092120971985649202220154937773757764152298441317413963274054795783347108847631442526354376526364013632522583641475823295252481222338526016387020156156426473594629337498119651984750634951634799821902407652895949234843112820150771708931686423898934018729134690868360181177634885287673621544192644146767571154193817451127532592948597150757979708543755859833399930213138783600240223720230876755004460565637533971220336774000806852492057632657836216438760092790080539819016690980982910272788049023337953506518226764728466906059341870462025886893715322658486291046493214530232466717023373196944500291715475009531185331570691141799462063821883082748370572640618286877351365567541722586082107832934478445475109333599629304679399928430460184758209652977239156904286353189519009916047870064348422133847420621580526811264083723802881127580769843501493902706461377727060986082600840817639941955289673140382513461748120347467236655877171400617171726171707207014759396355465481166594065814505204930045067788662212401473976227755231525805859696038904587154715131708370177178586696680513214906926652412844558508163879996204401424699945348025667819482519051399188558771267932005737698958337410187756832166871623312716395541649544513804458236666425751899444252681634592487646941766359132294691906572315931311381222638324709841286203512499693058390823190832053364168786045975300296091928033621318048704947313952599663671843482175931557243881231386749809895221604624619488022097351520241895442306627926601661133391196027318916818766526995635651519231994611868842277644335580399495265280703195482028165114295777681850264647556874276875704018735348311530525780733416685404966553504968860403758438842821376987756801602918566254538620281864156118080185061407979360665440758280581771925704485835498783422377983253551112367091466605223071668605179012302050391324733900695256555496601473320507813769449004773906858501618191833882716395401867856529908740695906683313209401604866237112988528150365397656148877438231742324467228135589567861061639788153884648425617616015757618815678309965118484125296639595142249134081372414696140416277565883818602108845579791944867953471248294112831230781337065986470172505669507427695618448194080031204754740538682653978463101706468567411698854102632320626562865577488563275154338264845194875581783596000384010725484646561040658653872215595421272314763162409986344646626727897862339619687365760988434444260893927969580779399137428169497061366553102435459829040880672318361857492282581009854949508313441649287498432882136820244272173575209599886796254492956760414747025450858033606947972318775019056249729885326921323013243184657478912427003910783841660653539896597726078800283204205483231232800860455539967389157926782823706762813978381621393737650290732958997479827831961369091153907619824846565271731106876840835814008233311136353558523996232607495543319496858416923566524987132271772708504999025026477671179855234073558098905773048006040492034192327049333436782402868968238261283763804620805236716148410332282108734840004600361055802612195539950559742152207784992688270387114143656921119220313302464187951824252198454549055898166524992516814596032568503332071134626624400909602758151276452549319561505169439170426701990233886174544923915954254635653356828118086163812122962927682030330771694717347387222632621332311198656428723214280305340887483712669321937119027849390270911867163263219834475033849912411586832321926262867534053814880299397432313948557161937401126613283440359658453394666611475323216462534256331577930083563727667891904724621124265210597751384867245110316738722148664391616141290656586700482120340845019030894068957037920878737608219756278935493492676678599656900822775268896806432530847084648789944963179298235289520473402310319999493705613163080749315991740885139589869451199867310907738901009548390013626790954305047343202929256468733129317673414994575175831935023979240443259968734161686938426378698569410189248619313530955360782892109750121851428375983022372422455989866241557900583849646907075851183844254168606189931714188894917075138012461117863338320167111983320776952319150344386580951898180926368583726753370642921350694397423250336872746659924659014508162514955236099912713985401201519331830623954068534231509993913735203054923226960885161425431058459812685902385601294955713535731449331793960530428897906716105542189323810132682712767097574475186010793214397397891529410215456291822012389800516223307522188828424553158666266870801021758861750710603851600007828836373233397358294466208688324692111039513976881218498880329314989055021753257615581798069198507466678755690546418349417659201628445161592188737931533200910842821641075634862350314394040110251357984676312830952683962297504787775928541762984706175201895202946529724333801499347924573534397698531986505201977941109257521889586522101852752587838938402061145113799415557526576094290995395204829892445380733093860225391074040986587745863366950721518092183455263891236278502326159602631225804335249179489946034421049171463166772206392505593289388149766971189944891385336526895636769289873749028573715753014807015560765372138618218222540992876543193115103385100777011441734465537390884962869555284853372019880434251602671641733340760887889990293783923700058185880822777326794107877306542820391457739466394731927408430006225410367531215423667356334215681060061272084243426367530558301204901026206572843622657135256707333753157233801983749345665771854711548598574469544625908158810236533633762260202628263037346710970199776039437089922817933363524867530734252458240928500774386103974722996306570979256972696127567088162025800771373440846354865070865647846262415877241068212148570544914808534363205252441463690903866249998993587511341709736776958968714584356351411471452564632657940417994501384738291413393036941933388118014907470391266512579142386441851569612196171068772025744213467808730071331716014058772991599044051479608551841324540832353057669393708002169029614729004665342102721301654833797443819685680381919287711697100343277681520016921328349955338493684955693901353609375689824978713800882393188921534477324943578628944105401025440992425615967016828786149473512211411963888613996891829626097040337828338339469306563664621576099284279261074119981975467979771531200580015456829072075069489969445314690649654065113201993902750833487127227710289617064635303562759132044921624118875440566470797641596596472717410724146315113310682050542115408416415871045695417166500871052149321273378898688749594020452666688305029737013620591729487948875338272664478920577967726760281437646925134848786656656620729740113093296272689763951084291536017858788658988180163648799145671927735892650941575952872516503079676571814799983847927375860741334697343185574022735739101840744045068266587834162356356029562673837028710519464848496949961899877638842340401009695043310014364393305604456469662824359079656033821505519062969805045496060765146737458256098323137825671503567621815750655570871762566516734862687590008566060284826230800053554070442777556021321509432037273362687205296828695725890150425541044802331356866211048565339073446410081210629982086552430342379101355084806011218352421493986698931204104688247077057003970062438080219436928640955474015463488615967294415276307804173432341232362272953757130787447805246807740281911982787376726643854883453342960551873582955174193283729055687246569308516316380128040054841841328345911111552769025501863725388104311921069151647144942322321776383355088562876935416108973437898839646755460010299453378015901389714518183623941104871179134702309815873590228691988892921971891946215482602253039569384588089040647958010696939587588727887359869064318919853683333185097977858845261446815314907786429437998524034526549939761725648833949876504536575270088114926322761219173129288392890166254874566057792688574949347011967629720857989299645062924140720701123996958769774745010042888775202203346091166819737347838984807663009279026619496708454726079663374345589176203896603545424923876733408179867773841129787453016660002187985475731847038883901199001807852954423738604525698395962851185339767424050210024655699830276778824505353125636537903265705568181606380031894036248124735845520301138051651621354978675163517468045367465078159636863605995646274565612847553598295503027741442038414964271806933527750694318560075000553757242590969919080981452110774097605100654084690863327816931787533406300883154667546667560801701340369946410196386076387475497905458219730611354991864277243883837360298485566674756303850605137087028316114428832484977929985029989151324575629470238414227049927451162835516867717683669797678817160384831879211838005863811327574580351785516454158327091969972852290453595117556741898349541212907372143093196696267207579095498858565913194833556963922900930992455634083371453972684157193644413880961958899067409167052363275895509750719468883481611435317579455952561586701994367838680086891441762352397266399461394594264995985820674509909149525974873451367399625859844303906093209465317566046059201529579841771185870970068970754401130742906991561062969767819693783213782439138023573434181282461534709608302731659988194966270637371928195091963456491052806937223136545334089552085116344405019179349799096591022519000024099446493352820851478119608631814401369628209762392927408705670437168021565237694336664098624625781605280561507986948445125420497301002891949998193149160716252464182750427948045831257939433531354998788854471812795876586675893131054714521750197846603018007262392673346126868483023423694004789662640918778666046399987835601801414193826448078424541916487247329592903579729317254210096575537603664978836888842236353433937920076650376177531365973328618205702055361210973735461518033434157548423158253865879679542696152058397834596855028482255467176122068126088238760135829766219106046947784413401864432804822417602219872075534607042987154530575387214511606695712267537850809729359355706606008229772506519599868699601707703684662708003064977982249588073121252453168207730158966599152521106602703363216765656408045236725412814704247572210889487684635495526408546087634523361501908409060639178239502497112645037952466821548573408807634240543842024850061715957483086625230997948513739362906353028125303771959828991724711887556864676113950371615794565107412746853080496679289428113568151562593448828717417317177466712181185308941501012747480611657769826745222886686164191114921184772922546978289037077676897762977616082323916934462542004221496970132892943724253756301358931145375743814264916182151903443393543535743692098494816901380079440069898439355531503188807767323597649424934639668904445389724284658734390144311580849470790814244771412133943435503663897372985475310666768264402136089992851569897361916529035667932468222271740040084977119138828053463436520088722374594288712137544982126420448373928635136410384677932232050401637373588200469662736534766089517725513833979416377991601699180712939644318526469113057783278962793796701867199162443479327296051733746544738130835511334095388643137154657707661546756568506936229331558176638575681459652334044641422054027530280673701323603106265126022637240214186135432346371422687025682996903068946855280205701606866208131456304701508062360909758901059528545057237143165681517882820294309477927577298083931065285016640941248725244074600207902246905553953226768027413090686059500135808988024621658883683207560617713713685147169229353802844505304576970254657903909900909762761832257843703830243379681336264153954984724191285995434872564969900006696466245394734630025800354241495890846314625144468609374616085471191493253524613094983402329359476258207049376938765910745570355811230284928187957307805849501748567352697978667285047914156802747386520861347972933855890364888251183420802249691864270959875859123284592471792520000236244720665146844299103311229192242945097163392335661244327551842122694448752009780687800917942673840241038511041789044605860125622175839555650664737566605183678709878353445989548789023589278042889700570778446936392412092695518084715042130285881943524986709808332246055059566925640495143189879732919163091360349132983222502408364441308112231759496668368377670121521050683774198988651087883955879072586075287590879040577993041799285899878252882129752676854194015887917237918153859590744629982145461482645161846735172375870020786752304678660510567582580007737938974807229814368113412040239849072155072613112290812890689730902584526166392761709773332477835934696280423602168542308690959499336670443024478173027030047105118949104968663170472863282686387492608046626166440084936744511926265223145963371951349002091367762231220197946213601611683305273944052012649156275154995788572551344805863169498027968787223372409608111496568394704037353452103673983686824801920336081812528724745486720830710184111101057469982143380282915184614625141814170937526196515221193396101931605311851599761893349507498070226753313618687347520159821885326959773187010410775670411016724055703822150392393761545721242800484057019761589813239315377426634178084242222572514225351472929886072687917178925906082842639902872767421444755090088635655667035507592845822352967365971417207531253689201293016178717971954630591376283669019692137949649290677172445595640519131511922599119580857701418282957821748871175400046638239811807572198697788152553808340891505218503077999358713138946376482030434205482843716794371605489132092170111669412671431571136326341171134440126857086422019410332846220691884729428615708999618602240985810428786967692603965636330434523568829331254764589575689720055661944618556053501237169337003721776696617136298209321546143554936566780210310877759335007746987785202695304023214956604696161078054754189801797397129076258291171073786475900412638952821376077462498536584646571237674723220765357349586286398279124103830890690744179367605358940232129928048482144105756824054447142972720088999248269760700833258997001831317300040955126260600957650051136467945688235684206637833306514186391588414156864729308405178385836595322391817781185283227350048115410229322593439455463399876481499706964623079044895179904523647345719291858103626736090932735606641497668599932669686728102254039910929388278073523834337357150473661626841047263265220647029782793019481218856300486487613405986496091249719318402016508694575822855146902071318194359591814987501083286942090892884792594728525435588090424836920577606398250618383217868628711846456150346729382601566764713657923575292437694732886810562328497464529982627939742875414284061500544827334479109301386012428535520034647661449981195863678247578030931596718871818914809499755036988599875057841181805377236233334561897090331116798317892498615250025997881982301722148644353107200287538651075233360311345837123241654885606747938552983227374999414432235368305892594335856972696576003065760492724393174367606117612464937959381356330926938584947741240188171529600243239221491016167856601240480734177035071317250618656182041431996898705882643572594758191969229955139842533561064330736629077816145603396456134325156007825066295048268148753956635675627348376536700635959668554333943779733498962794743135562563547234278087423197153210243935709729665421412249967758677849499281986837043567669868532655555803331489934180689165033446308843888854994960691775488195978487170549999374992614958835579272483902316185215680368673341171107591616541270865756714416997630812595428177924736485050949437575181715750801886062956703750489032619372138079217153882526062319484400353816475844278154688717251275705521458322297969425803299879960357290305552363739510268891797515406706681072964552223406798261261394814917475713104265255210810164713665932010195208433043829745986992510348393058262052979467525382836357254242456536953959439367723298938465118658682536590476118093096484555571716828788214264661175398694481867782475135720952593448646390588864976606987412608663286948504528444505158580519184570186961275675997178837647939841633388623162977045524252506761284572679209803727395490706997308446031951453296662714930686505244771820252058826862797129921299469725809541498083756623845943180044371365099608505575657369529964261515024857111707054504646064830971962261005665693765012365750641651518512844973858728300346495332948035801734859289927640600450303505817217245846154477426926274433051223221489120685547080229900751115795050439873764344151959931396319449256725573172135579292556822255444386999624862700696149524777025206469527715536642616589224315975565102902429630877114405925212196961199537767024954422773447793006245353233932884258037010280331581750635897634690435703831903689715022529354930960218401968812663024715936972939882901594702741168215690559646031716724645978635871091091554460644075218640993307646045576555099456821788086617943332140116714704430642116728327861518956472990197189033308277101517995457473276689964773141567305014282371691191573993562479613475626047464607149852895005176668134481414362054025593840203266303341442798650649052550306809038962103336544452768228152568708884868565507298112867219851799430827871990385220068390987667929013994837521489285097302940391515281670364587805753062939880817598927165205198935150647358065460994486090878627448500398538684742160723003262236274402610499338509135174158515981613941364377171309431001202867723210725727983121445191504853701976096652894069814265660070684796385875995209662381024029131533493878258440281540039291259213640637510031293478686310538818938476080750458935897904794128519953725410339000671869911703835584999269507611242904864867908679458425849778107381336595142455998225804624457994981930264988078311113270904881732327187949906797983901981297013844370829029835093866967495655077209575071439162105795133070962632922231988390662517290484585237436653002003942206379279857849284795131743280526467866486079583994856450026662196300056841536442872020535568115446563608060033583427198302073559126152875414926118726395419772028474055470979166660161183900550048213637418109575806392702302398548359169616708260896339812222110175806286647675645870082755743553303801407582213783970693999041846422934069397091096488133240198159833265559368656761985077801090904215156695250539800299254264230297886151819866732333597644783556191455735082035781483021935284805885300264158383223250309752015091848900624806882787212612042230181678347900804987239340073846997163458719952679586273225023079885246655672439611413200876866779612149324846373517328567837418947795222785668798688896108271641253620980140571597452502163398724975519865662571872229853301929494539590883990683463935437101499554049358806864872998994081897901389977558810904261345648881412640005675131122164585403404806981707519287124087127444999811047335027930085320585025123525070419357669038295155585342863905194449114194721797580967307016261461963035535172044360723042215363039780031968907146535105658461666417368279634308045021793343858401307087971041333624842797396097720981566247504733082432743379673895574336659937666570209929106456630779942188258717699172177167655879126965702687513285446305433836807906969487616431864518424309701604151583447497217020047374699200887865848068705314677799696846113212781396563658917609398201205081224082900609375382948245160159305621679883872729996168582062612361726314744085730361080567181853598338432180874348620672976886042143941909948228716374963736953539014795608924017154608453667822045560136152654411799287909484524167834358615722748536917501234048521812581342920734048902001647074619796543302115163701840199771974671150183447195880190459044840061875246275881489596622059437750813442168498083406146386202783343628063535099655927863718211228187593969643418661856743020322857107351130757614349989244396665536781166941676616599709315128766672354950731067799885905505575170662405391255535945878068498057025206015791326820825368869081702861376795084896056166456348424587920416137393315798522726814534757574958774408580066103575807283850714238552378366977681548736470642703526931883169042742311424889911634520478187409638133968185430687219062752416667356318495915136567485581879362116356639410406573076773526561927317353620601566874561615496876187112157455748065574851429139686155804789146078096447940128631949033398671201097053766973548018205966454044581908989088182349847799654942572330018542640614308463485684624568314896195916512567016933492714262846628910445266176828505746887679172500543689540123390237526193741883224729940417550920014903867390724968675765524943796134137966386320905620977004075037485364335013194790117799562325126956197836766787420256839821067220527971404276612489911971833574841326481509182549571825257576602788243439758316662294359900326756700998100564304980321686614172181294252745626502305940299723735266148212890669628113669728651289109211765491561192090216462922371007238759740002610787986250449297339442987491094481533549398927496443813722756461215559772031034513241172318142251725631218202450281372820588067938513442717799021793581759075506543039766129704288562100784314546369104199561238426411944498477147978258020190568633669016696832724895771379837026831239112277807205038860063644030242042202441501099575578550735844865660192252301282292872492016883845389159221793768265102620051843871599108871595728284238634480121578666939675286097074092763016715737727536582118283624799264644872697439166550894189830178558614141692287749182500150320153970171624203267185936522974641077430024121038307133894920694418285038511597095777512505274481519436945270275509013623622013484865440558197054805641425552899508000619345083784803189625148980509202111868282754829444255346066982507806243332595540401423917136632065670025713289405249656233980308526119642075514717837517044441748995768169006511666971775942208359198372637328795371299467370737555228389477167018089056348786945380749761742545833181989802747677510106514202242771470802049914285922202137594539560185788021886784480276590291062819611377117538589896745871173767332957294432961624137449047248274066332037738290120391626652505965826224538786001211454909602746603668402376161216482819796787002640392303823971875497922782165883847639332611469744442160775566240594117785004503661001606140400283599852548074225657415533125011796685448468992057385694594735027303353498322320284246393869386025520464897566209976878257716041381954996909564279611778427755331163139278623347741595161051154353610687190845038853637678271680218708319099683442121760561547023275755679030953784916653156128373438793397860758161175534042179376054690463447052923592687145135991133493630812346230706910778369948661720906720384533106587975591110057116256613111249106537523098825512110993092431213880651343619121680284564234396437612645944580408579363532640054994693152657554496504079828983482553024431535402547980402525639562877841198968979131607677671467087008262001015932131389712462034928653257866000654852296690991706923927039901031366603721777788703650007355576947575193502717332774100984145060389514108885509439396769216821572833157279202689302901810539079254045760875812958707076020727098167843369489864586635104150691105261930051559289661559965125432522674746306906954492785670107164909702298195033476470426939155308731554278937646116703972831377770099893341108436297392563547137258534953673627214958185237156058545871853738079705318710992653211706399093453965753858797127965942322163532594424368094620840632871168927165524285465502691567276202176276874379872795862663328476709341811140055912745206913005048391745104214659474189391373266701118688736387172715646494029360280646330106675414396405241644127220058771467699888841795803007347616493436694977653267707225141694562032143792371700475137415742695923532116801163514219336604189183055465075179883563438740404055370774976553212610132365122623592772902283611576549223590786987437049059146480871521677410356408839600212417656722773192799999793122683379256596457102600387959429163453251968785172228231815038932233234978555191398856246420006045983692717301661503086671958782375665817655183598111494118071084934268298110900189081045643558760516820121395057058894113388421763851213699963437314639967601930546338730375463141071817158365059731496584429642260756285643575789870391143292928476066713257962367961798008610812575617865319425897151635266961268335050495069778050548610120013295710307080974318979415755763546076184666603830450751361400133726549845578574086784262097148024800526553801098087693323882286677379789773671432514372421881502308018277657105564262795553332373532454260225458448566376736843762790886353952688218105901020030443614897257875624456472109039048926994727749706181756221221042983330427628699769620257798097343981583219686595975159719547978254583073972333689935896723009669650587690498305348496932293291129191118225171126966967816193281260713254968581547798308640948686463366538908630274698666959324470966301018930135071829406823902141017998265576631787143753660508203215876443640826581418005241417305365690220889042927865908265249457412368007458918517291009019448491084131585230644444499130391564691843266746464976675189668839447322163074634090092559395687359353453132917539376847899917811475071602252918852917223853255105060300246856583926582993732350563241932829480644149403258649966321748643379669800760484474626867398587126154889196087893121683711664046462394189513590649161810085961922976991431618263900136443254633545384658748406899288760973076299267610544563594621375538146445977306392345522466770650277561029058259844583358026136053426632692288320764739113988459286834476126711817644257793495679546135932425879636992642840335985584182058243528520881056308220640492247468333816122662636207088717594439835525804930102318815332557743520620877617742482301828629370231340623090804776722378000167522163379895738686418176074708050074002654173230334449016315789687174970379094523091765794176680465290486244887854005795368783618960275963828578111078134823383347355410432915365485885409706348677964807892378382361720483262739151537445143266057627430966100653544328338685640035193387141640159590833993350534408052969334889433094289886899524659348901298319505152429786655083561401103094931542486150609805967510702027581947103427814334611034466657563543431824859205853077931951588707257726170747547492391813068002960221584289604840071982272311351965633019634925926008618686527278679425203618846806398652435191457614004105845990838076435662714369834762984894538421979878097072409512380152691950288510725289254379249535406861665000279094567786004518770172339159697808463535209124571006081355429823690270671330283020570464116259104786601498142298138638025826790968006904832842855464057813072906761891325526099899842870133117855710790317514322831792378214649587686689437214128424690927888274808797389488715355261455079036077030091641089894708126696958712613277731135557248339078526623841785274430975672513773337779928697023779743872537988089348854842283917952148001625559124582593284113639248094157980643307945171297537432098492306118003259201297873946662692773298393906923287542473568360790428248931797275168098357761968776832533737312334887322589540565497286685131070222319834904658454788373762443255724355010165026860430974512333431683028979879014450847714194371418044428510743172607210546833628175434183004385112382654384244814205413177444684374568693667171265597003197334636640670217214854237414975422492798863851836806252535111573004750847781482734207419385028972282233829450059594545228441493359137619952942878036044544671933231285608950398084368956971108129347855877002679599199556815038619346235894494718488610059332455660500761273216350825577681150628435170759399222972941596785399599235746393442682412613264608544173400498438546961953373113175404780127571798885272942659439368629833585329818703906690008504740530720083917448658673802783198720057454606650342726758877618597502914106902546890389629088672985622170273181286305076988287922766933437219914478313451583315580996710538446688297640852354116098358003873799488044027506620020375480672368771937487766207632833734622733064773819319108832245781602688542325993282493491912371348431502641374865726738198700078447552410233570601368043207956460340239917172979063648439115861202851092361021141287340483812107138848695826845119019968526395942346541943914968386666616883151490387190684636208002815873820787295167444674928157055714059920062631961209159014657526767543963492487107808231710731886909049003730150721501845592901864284088923706231723587221391836544958272747166523719516718662327245286345250598422014144743446613877713668503033864722981485051395239951050408847516296775477749908205695013589598865127240281980322691491811512224796281069185359565625287602766404641637645019899656693406758210537274517927003863320551849327469238119975499021394193541649744107419013127501322616571941463201373117345834770591467617399708437367729846046469972540516565198016412108701987517526474891160387571467640570583037824044227268840722614483674947038394541732118571977559179256822082486678317947325029855613100218325364060586171788703128960244028408551470259819450247205070637303613982818054506422616222203794692804358896887203564501217707205981084221548911257084513336349857605088169453995845141805840564450615742054135112780765797843507221493526576252994273462091075906743589063805771715452045812713770707800778916234819253843959001491990155646118689063471402474899152744109603959018974777141896394300121930368589206459584817648779706499469435966498235362123991894623550448641908216048190093708799604939739032808499913651863979356602463654425851704275108959366417396398180447033623279624236533096928189566165695418473089788873902260995814467947515444833634503071564518828311660013545699900292596329086807947690516695890973800900214045214607868937860152151518064701602803268886287380905365308742622965853668688913331225440826517129050749240394661980080200826032769738344716584467093802288851327906115927973040354777970519760076908920976978001856328736326435511185659095076373890627441037928020691827946807067909083090558706381320307277679490785738467237697065310625714496722102030691568702820304036558448356032077348806875145098981789767090919558349253466207276054730429126505270374350379876422211159038758045542962264766133625028173067280929667825805722429976237702975219790683861726920979776517473987195302195280356082069216907247826012615138114314493346457424515363125500649314816460852320217200379325619294777237034833443840612908016082694981949756753222596726306497607478197706001590605624079762834625933010184072826047007411939321565379488570207315700292583543311469969766672077808603167759593523024654993908842050327225041656097380158359201013338236791225067721465944316163009051326715394861311599896406127432940876104753008214044742304762024837809862520682383066596482246092994553391045363328853937253105802431947643857628809824146252613437028109651602403344898078669464317967817829722375244857174262263928936493758074662658807859602547738994889780458468457664030975850343188564546257515640830901942469912259209561531876093350069827824930804423462723860737273970756066473510920820654045685971091706512484893763388793869357390755618408659025924900216273984933012424857463435519447570746108737816446320457490015470055879703388835458456326793616822141952769858274853962149279370920169318330097686106476419511874559855306150415387143737410455619066725960710198776032037177418300537051177272133296070960218762837481424193031084947394174685095415350304943408021240530690711636787637093037632857965879901144715609199785359370648107497755386847393900537641619868050833105091383934231059135047055907321691455525668259259870236165231632902087130729316901052147534688240796151537802982249818423856694249005057674351742396126549284035585876668820348637087106289725432351841556043247941547341137978833698670589985171590791616885071393090799543493905185411995121533179602085744157196990460514823152185569078676790074111944523097362960547414650890794873008274552967305403303612699220632556318913408635719445956250310328874086702535587311039953851595961108794998412964400388391978098637997328034483200546095626510086616019035549363905480379850616639617004794235969706762767871966109851990953369211834624697039513764299294160721394125525498224327279697000872947375367966704833780977494072217611564180841673414382035483940761529727382072260464576606718165707383632711356498054156461519910808381590517740401399901996507870387520379230126002474213180488774522251266238467231654281381290981071669617906838816236840780813604166279215151881056596380892568214720913818197425037620449696114603375638162754696143521183868790601985055087365400228296409615843807393093315736716635887412046009637302813591606519609119081467503571780882831273353670143788503293821109238561825437765640730074315302675658689358133673648838560998745005080924917297651358891249168833453087879434183394217033001460248466618378735942571183162151513462428124333205440632369466992192306806178542207415458506278350622852644344626131060605379702858080528846210313830280692198657871776612608054913768785277766460421845026116864883653946704997470745997536082658890946744559137785231996600634620003539707144028386129082656445641311363960073986279679699446487148627283764696015624087043353476710562843576880202038282921526091154187602737141109149913959473611821726138872017253450500122549013220292885756711333098697270469211037863945715800236607809416875521089712208395508053321099657483215553531683798085565525749199831769682412726022458283739479962818322421813232507749893878489075395092400705969995573266467619682173678059856420150378849217987510498941482364489780469093964049054023123614745357602590364598929913873932757190256550020390090158827645620795171172039141519329773856921657507774802032709462870548224469687067445842192273207749962158413687516942269617168723512783181169027888885184333337188571821490468443469510762179336452968238234686483447666143530126499141753791632651198917700684457065477254312291143500595321181044528765297275674161558998649094953116820933766771931917313147481832779016450146990801112171713640625728185816098074266281459991348938690555349261829291936869551757292414757878575356587481399307980203245551049646401517549074372698678888821631824694906235682690174152397214986060029799650905908004744718674866311246464813994100852148144896616308425264079261084322558103334720247618395529427898502052762808450105071931207059010613382356227000594981362102063400913130787613364610419656392849081137445283539916231555843246315543596300094327740610547551751405884766651863867477789779751752990818941072818306209738004118284403851503195325042005822407639363619718248582253919146676362797909463579072283623675622036278183986362129157119546209508971887535180028493819167776208221900735357273120226779417184677677561739504033522526228502302117577540378548617419185766228592841875477924016875954532264948495311288450856238590705211316517223022110798028036186904916017504488713220687772318862688529474366813414212502536277343255047486948173984998173926989278704263943513181094556189291168905575609029034969246541921460102986948686103621175206877520149268065868758329133234250641329446278514297388816661561513665934305919704531777447291088375951996129336371190181081197220851564543863719411056853669721145953677858467012642838879243909783220509838503781899595836801571886637895972099849359093721601570060750425574729329440617409212554940697325461659267180431862847148408895911311334006115900018307375397078784902965212232701227897562485546839343511290739048867813994223364049656172034908048310014378696559376525972903473002545636459177978020975388635424481864184580860165752427098091360364364481904048328555273068525798966755383971538678264865862216531520070189055908943259713246731645680240665270521253669568374029882598621900871827403681613246661686403752326154894497726186758598964901922579330555206268257000320168824214961402863581473268891763209870001635510674177392261460166339047280960138870867730069216435912127951077801382146453748201562334386682472838540731202686243929361873053965832923618836440615536886987911626503471772127806603062495286745224047365946696653182297084816809317549429515012378563441857686864747866818640150322785291928993558395779806816366854536959870304935348761183038843277730983235537639154703109274354641531431899947301549664495300099351277952748361375225083354933050816151892617954228980623738001286679500699806918070828161240280216603976192646921544737486085821728655905367515753607473050261045033687942624509516242022068554310272970885787799261732893935940963917625486834952038036977867074932830634399501931528119029808629922378545589815230919209455566829043151090908081861324322678547333262365294822306724174472641680551276450540981010549676888517906336888669155227564416900683829855531601332049773536488673076650872382985286343072872312421760457931655437881323520859086059183100864990193217219917271858113352630562327713686023580495058468895361635524059533416965711166185430436797316942380451505788478872326930698325613352100907038208717745744565318241306896467983276750079491286166221732999400170167162835016462621748765291986519784429749895296300768998109135152730141659018846825854258963448613580731670907963400360506258760704020053061101045838624314948799798797211266658279847798381580410774005666778326357090011940593208387391169699121848231772188423122780500136435416872694548161407257761490942888661727364939632829680461028995113435687409422420229167634043497690673311551134283922043875819352145697568002016907253276230818871288342529165856226583802537440539133731572446919889885801506896855082376756341103973631909143384963472902602609303731885383750006219418738173204979563090292737490861852783104831559304361530408557354682250792280674089671671268047714903364006545922001732367385101157043374780204480895137844553646973899959502463105804943454187236838944630772693654478471085724301547132281739304516227058278140205531485228040020845714584254147076153120601535833107321526790072028945111805362459751679682552150679719645838360641252472860177506044288989438545188405208461764993503659776603637718772239690125112149984201506722513111295560819634489323150130878601040413162606667108165448463195173406968817190672400436238630117840328779169837957004144443848633876360960587679369486637108309373058661568340550071993927866606443578267889151319783556829373522539353520471877284464839508439524535000172179967573257652563098983894640830790592549708349906285395119507302920671768641206518109713153217010707331088469001725972929100462793699416548757458979933002361720292751725856088758700437610481267585864349792444056309547495530394683860706798706463492818655847085004899949787929187998047964877848368190278139344385173230541758196775166930536032820574978873836090455732686519758797036084153704446169475221419901640487040507661565237424657620018118037687807996244810222282003326864346163711883271008327597987060895425399543825001189016123161454370640155421649305678402448429730666940228654888432226997197835475463420759386427579719155956581797089692194822150133053258719664338465239497157480839498985785407617633553564473987602437596660447403757071252865007564156082135069196889165679514059726653304064232571100437139990127778129141761356068254394177280622866389011918412700064130667159812486665345278381588444363144550995971734072126185541085512740422216408541781982616388204816475996823703390324279942024786736128461366456454905605316220273414993175815577824324463034628153940236825004420138571759173385911286501421525728835614699212370310291912301691469711821763244110023634301447496239959167497255460615627375005711292159940159795380989487168259652238391370751824398221927395192098983157720970496504749005443169555487412207758553854566128716380451186842767678215035782359743664003559443718299216105853723724708127554174040848790706436036881637697925638114444130717181872246135452221382312270513229930139040006024605647807976619496947612213212482035951346755608411822970768306681261438671627574502537767249196617393710353377699290605081651234182097433399573582315696644029418852537717140520541353066704545240511578331389199173777594804710269829943287869803612223602788616675612126913373335203024448079289823304433398153864650719672975259758556535655441427708353314435124990096301694715464326833114136340831762015797376747942382872419037102600933046372164300847972546269479970895828620878707138558587494497507960614812565690513502191207433389109851819985555190329912513319545994898568569331710222381012498996936516085459575079352619287539554546213306629931351903536463718891436491888906572963463583555622084086417408264910117874955334664341800763697286587491839602004651118991629362488413033744697418764592991404821743715261066172278320084592490640785046989946711774838393651675543410332779578288457989589329007223447373835202077604109551799822734205280821773500793238068571671095424730205018515635868791743533695901047774491801371752495990698983968045772272465510424268452153359872107458488104825939195702484321281991691934059594553109517136990084046690583741300451029181951839592904929450029346416287561570735368060843937120202054996402608033114278663387959432560000539357916438393208975992858793416790375403181375121551929742911798592790321887375822732125509668956917372586545677880102307127016756952690958910135409935670855711859172435100884416434452307233321269495547692132655680143393455169403241360342741250300650442804104069264811269893605821024735596345700909188644093141882300932358304882269855227404704848356721898713233768586314900178492278174915544952806440145853673704474203177845098553196813986428639808834541183966901396566011159580655769116813752830236353887204923271250068446899035860748594657256118022805195889444238821391812986069137254729231489031139906922027263537950955253197422527346990662359873406973993367440492579599418640051410759726819961365406015357652963708779642579890935150151270143292621660496060572987046834057776768176986092602233399904509714800140297014350845381922300058266596001578772948587264915522018721196472241940736131642876718336013349951797581396418817527204627371404264997667487943162349458214471462616970889083144578312554842012005658692759744175405612921741057399375014156796183195614431590955765148031491779803469411866338300003113091983439823446661538865149766305884515305787156530876149126587840260497227414388804239187276720321611674677306098473933798028529704384615780359024599115353200148512862119092472455245279957126355043964844437028565206553599208304047583492033091762173144395720446352227170358089503706047862088138362802498244378002907873769792263400075536915279928611732832495347991171080464323276718814302813569889884137250287495075517884271139440801631997245790118496586902843231200282777369387045974043229176665376564696036465201304186374132891321855167412792875002841183935642194649180489454360712985329182739836646797867829936952414135781862141665711287081288392934571802251368550640135686395311375534089376136022649060583783360210448851437243394088427534879264111999520468113160433188882674652717820928744549238789933803265554772928220856093296426990984353017675812918673953627764423428069078760764393530884992147763220044434180614804893176113538898043601715727143443148951326377256938517242708489997558308904931153434575798011955796552042281988459064571105754518566717527343732139982497720708262448917218330543593979269470470482038484772364946486576693338389407169675111826383599057621592474239779083465175830876255751976725782738907838781891276393546818121885908220398429485088392653825088035399928231641391913449722745478992246420437379771952661259052411978726720241564699353946820113179486824241055342801273361794318824625794587545662776918545102947206123710842364984038298326793602394910289029384845620108329255141898785611482541445694685177867320373828022195716804777294761293374048014983995300512517884706716678173569512972577259127652972043429864129323113514071718081124678523994229224831722201989208416654931102326228309690198104236320696033027092960953537629213746397177717900978115304419602989509486566404280307892245664406228471482462093008778665437735290497465534391496570543968940245273853739582942742570645494019123040075532321610137834663829615290593970347060597514241854769114504598810325376371315245393782127784983552798286723288812087305992688448868591026890351445474571826670745451874797258916245889987111467961785152591865516272355479856110029943072700354356249449410017616829410634902654316834156813782972635565430617213252997782413137097372103059208966688046267717636020358530005922002350983191293395266318233789538537086071516866449842568537110192081270560489685772125658234410973246101752411057978372974196873862545772359073713058369173055179974186469988875371559362402782788758107598759859130899576062337046694788524720214821162924923046992590180202326067784272407778849843350483442263431513534491763990166678462266858198143391635646941679921265363526700324457536160124247183779429906161417454335985065292086601508549625763115788967329724177566816916223054583470971519673145876502712278887090958735582517566518432218866524605563012985508359241488938346258488782373964680354009497901469903213771935590538835264807206096468814464773425107047554040418410527794955512135616753146133491079030091836967059420220496559267291428335159184832169486124228476499719737819112066244629833697524623829707110073441009462521253922234397252878026834177724222696289642742969501652610635042460673945833534403490754908643928923905330456844505847291878557082364116880964865530437918676386401115068896460339125891979751751547402595241452149893865113954156956909584892242980992922471315852156332215449182626267083164510311221209102664132070906406756541647105053542595417412339191860877938255247701814852907531376858469407609671917123473073507359530559891784854126642771776159332625646597743232733123498634419122981822827626894186465426701536740713805763978791785291140322405371861257970650143717453752742062010216685396624187699319342804560387841962563160135348947828388239248375544632663171764153901029571718266507543901457519246832621889997729589152518177769687906479078687467796984652002858054522165097325043471794448355292514958970226515772328511997364818760116517664183216340961565501409361858715138962474166376998390675471767052216026433991668490183568048051966597979519772939356394908146280607056874296686178626317028982803928479611269517017640300992233214029484753225398753274889045978277212521587856457814899207537906011685467928938462826484071975051801557442368360659351669896663210980383455237913722489716156818452711106613479822246845324762078677191463654902004252781221235579127013279466638453979330752565510853503452622940876616316050771541402450429461730553521198017166498360260160537911498422289442067775236166462347572856567366268423980215096980789860610925263462733596426291886289841916478992212720495253202130539094326391832385979725445464804247513506854105626466939817578925137007261279645021666338233065206553509488622370475698638234900339601807219034230380291415764627799228316200900778879302536881540924616602392278986530287884728398454826104387205337439568599596496348549000400910355826542110139088743589924644573490657831965275860542181331329440593030848410023231951215376231181220205952480824911550376853274071835860660369989340337699399305982566235461309398615906729077902919148567419465639419251881517528947393936420340856756141775083597278153555182472997381742422925664685827710107463844495782593613229676321990334704404477111530130683964356053123335759063216666337588189713239080090850615746472434251576407119887165046474174965724815155112490707945463208051340819568681701995097916055951520011415099188506052398226853248544192821390734880283698492599900234303599255439170091368829376865976614026515571461162971950215410225535815633801329861647151183866005834352240103704115028134887425490339853176865443729685595599476720070364957433592255680025188928085888653759568479372515785520555901937449194543300370387477763503612004244062826678284699601698478347597372296007849660579347714732787661985699731071304783731258172427850578548648601958068941265224568893119270185501190416951226107270008817775226798276947114886527081886221564061152822408926744188256016898445743089137357903886304743969442945820391975571008974389277664385246775384137521695507852025826558305574567401679517067338788761454445302911411764298284117551931105514704314882210976306939043659030298676642438929309121700269707121416735834268037939463959926954591404502169281019114014752425577126974340256867546722645019713023934130312117138716422043339878344098469980627951249622536519588671271024210271664333213876901180980932613281465002420583587213157040719883139940615966013593024204523955742456222132177723211000351207906902799806348342373678519938607924523797567347242213053980563502910361903099314961149331171422333271627019228255336531524170303620028261840455503865986203176476026102423620920346650662370334973206324460295327865781485506462123208158018001431074962023739402021730160530167067396611306139624815067533102921923156697831272237147656255098153496242023121161981447626589238250768645169421072654188431866635387910684908206620109922270144985957304866135711115412110889971024846205239370288293296791563735462447608795824404943946511381812027993628345788465504335830508393435341091288756048822679233103587799010419344727652256463732871496207497717994611987769640897399532920314243445170935699478454786746414615233365295294654649204140179856541708430550411118481116427771326930602456425849520963162419472371768255577015354384309946312170293211106832361113210234157947317551742039974143746764992534195260629512295687452480277308300376139525478147580201361138631051028885140424205071361973315841177150863136998530713627530924353479024891956507468304627435502348457271651234954403754644723737388615383408486673654515396609004485334427045176832282495445366356835929554315642496674965427972760455628795442650243632323075670580301740944500814533855947257296567350505607669304439781151723356633975855554503057434096972503953307518410344459158690822025786608594754868408084986584013837187028630562383407477810086139549128574066505060630683339184419331965660574722963911655258574505920355147878583171298966387909005121783716940055100989756093210389445610316365188913489224743998443815959387844608359354261561539931151762255319745756077016417819562119586496114935246178792652544155043953968297046223864028680737898780741797140995192481425409040160394036079540480615441944793575761442135892514498140295392500157746988706254539178391274113298953660285792037737837652979132077678015114574901261568437915874921444368761341532194510230604303422591295071437992744526622559594634167609237740822418767572133678767922404201354301429661533921331901046313269265388226911753630320421393628206657601409395429569375608977097184122435545152583793759972352365403896581367838235797860744619511488256293719601879679768219873584689384671029862865854740094522998810563092587967833367331139499421776642962156795659896130228763199936233337481210743828840102416961343182544337737954235135929363300644746722527054975281476429709866991754031741311159571349973307640803451760388680789520871334710265306698637892180306006318121316521065145421098757921157259781261457651072387111989682293061122835586356877957623206947984010571961885925894592017193318189018431994932570577717959620162899635738889200862329638405345495069059705061576091283612296620214135127834624254598978682613125406967033681875313686419141781326896905188557171253379015770485251787892703994217840847270215043698406434050103964700613344014664500928352602144355314790452644625529775577028962374355554464489189873583021356457715156810472184821772001701072189271230495159951324893063423748518540091795482485411556388775890294719403062820996107624669898624166232754866728447688884178565506081102662067997597479195633917176247320716243359364748229906821971066567741256754048028092724851195421133637417749494085159950853212736919682424279226914400650650821872467017431117392182396943974488153252628683093969851939765518391054958111369558219451547983489428387903410755470341541643101520999280160061241402896112229024273266783915136628748318103557267859589999207753946879191062908381344030237575389853107103375065467068794262579043970880465650975800016598964142201572881075108081594472446439341871578582028808190319391444248915538876506530518856575896580580162094787491016064920865693486141332804797169701825716499969179113470327206409876553286205416627982301812453454482081974660477546558688808123857607674750551490097114399492077161961055856707839712021531679584597142101428102146990995180240336347604034001970528929507519713577678346146190661597898677259055522735884438811606524568018189948887442336411329341746419251006612163157594305202681113790822281040260506502670449576982835349497692957409713416432781155532411186833054677844340151607678233137649763028933169416041293405962644736195344150529777269343523647904556152390799119253141217707195542148994168726787830590833031308783835629997584062035064525361048291352844079247896423860677671070813279281584252672003562111843253928196621162063243201571051731938216878381738597837891142232421587275052160109743663221830654264872025836966924321155829056541464574964659252578790106968164674559578822667572122346605208894924075607063894351901889759552671183548564824894168909105160602280673246301983183908123203939024129370176629349943889000181048233725503212436027264805090154487358621474703610380382288956129085268615086379413716671423622501286776261836709416270100502324355270475023543422420222028032446422558861338902815863176892349154557066750947717728690412294349449306674365807229931200208448808044693141737200466124545120640228772092323951238326103087710539068689675298510692739601148190987850694966256817099284347161076092113476894144167535196596190337476151608030810234124896866724649843480367218610616857354564179257520837793995507347834115484605912114960287211102399354604389742566271868955917913382735939903760823879218557947672471825867007258326601321969486841121294233575616506175590970510626981889476170016182754826169191283621442041090693616838987620088073359372720099935527619513920448875710903704076864905456024846675854796709306660349734054373411397359639674225636562224870586283937942489552055017370342448155027110505483385395338975455509997896350184650726518774725797274943551225324636998796113666447962128913628188594778283672175875758468137449531462939265624213758217033527182988278962607449955972856906794362748935877021024940104262503436863542449296550224092109917224920017423642160380293437697502433836642361838540305024641481775481052959241157258847353844330915459358223211283545344242487936993687339653277450162369375405339591194443351468042442516721661369074678862603091245772397012243116497256028936022526897293981069775808618372831480134727623952165730080852614781788709986487669550150495426862147432571708839224992273330782959149432621626758538466110048558207240231380479564784529859267589526312893656435643315781477768235199480668999681191904442259464664571554137255532971120797591268334837967713579819158673609975834083386226841850809107670684860481960462862563385411176262093533428699380137676212570148085858288165683867497490215580697472508763678314187637895280604522781534599782509375466643013803094758055832448378455410751746147365953966299303336699679233439093376201989610366150914161179992792345837312807770326028532819499050280493369139658259125619918706003868776209351533438443041662176382660009457894554055316850949219464699816362913102814788993466992469959589501747244586693681564984207185728071847253842251232551379960154347024041933675380818907325720635879790883751494705498486630297011345384921635942981281008630696722093082557327111544527138984429315705486678183906303269893797062784663033454625414729093363899004279405993553198503799304898991647968561396194336468471223418031752356407401169503530517629861337918328068109346997715063478414104740696955505734145242477997002349524169402496583444335488637441501448186252903475942324992362170744104726375056959721781419358499618025086357268236360511232051164385927086980575987489036203809455516738511949310797098361315764874456922707492639821387448792160600130109025441720118984417289548878672600468825348730322860448645079092560418723063134913399025207894899484018319022732471389880673673857129596766677488224419953390256092639604383010512662615696480792477667455430829693261398359657787613455799358308813242902769076975826233105360007943684214627334295595462828943092043653568305418496417305244576127232389450912953891757514868466776654077049835705622771973435034563761590180287194408149767250777101293003080870223662153286395669432147463178382360080497611558603774841500483243024071780894306911422291614941880576117032609344728203641461925318659978540634541837258562072472882780153217433215205035217659291638238683997472046387544033105428808250565528938034780399786272185906581151065610559330768597645979648861167748901482909395591788043988274304345679152802709584796359592073345463701339213878833673650431456217897866020037468693198768429955792381496624630704669114653943785665326517692088799082225209512549123456857336691079696161671567006221840169268768369001735506420442071905675984748303032251774425788226173007865814997774835006641491869564368480085579556573445829512140589188501735643490016325586318602118036527467433757191762574912631367169195826736189748926139739960789611131266928010169062378434122826975544268742467423102457853348770493845727988613099285417387832742244820666582271086107675741089522116421187317777272893660657830756547436451722140680623802231172377865028979194176946050476719221649690183113693061047324256426311973404165369034289959240210618935807078597266066140694476591354923637171693721043530854463857641481356633870604494575386478534973528411820494270059717371838062772313907818469005343829819887603310533719234977461686634906489600214409170470743224941355890231669239478263637369950558714507265537345926825836584281583215359522592228897605331523717239637116638128090585821684830316231839731142264806052779583360777432740152269019090043781623520631576058878621012689269424691207213062715280636743418620102586754323953714532827654284160862669097776873192722805030084133197606735426707650690552037115918484626833155809720520974859042874539354275034254760924262008106357126894978181877391805641619112929983186145313256992872151487357070574780411195211551732998033589350539627943973807654816671126624826111327919886994916271208980715974171674093693093843221316872890814080474467585596834987681913399663286572349970476921603286793863525682862812949743370279219786059465335532406334460211484731233654098169049807780729799887180973208126354521668861141009713605749990852768590326941063381180770794693908961000731476902325051859110265788748340976775136236848869706089848274877424515880484749351634673629822520401603352873174705980471571508018383234870370186130854089000283264591511450778750873777373339618299076260753393013214169171993296142424143950032933677136252332684445120808800089290407023391091725300495018576272736735470399744436034893790114694882647311793801234476176343775284719091794027286219063367129051542517228655368223588602242900142095286331831253465291869426453731549128471734421293188449681809519486210486744594990204516140164223642995504160642558639978504655056928690886134670005090324551519892301320497853168801897800693013477391893197547531931826696904120406316772146193552353740027907589119214971935738673459713797523311585335506499182871402567265935404574454940725882210627736121307746741479551836656524520774798383204345939927686213900049898661566939795421933967120896791220131108211890082356322821566674308089729069270168348664072529242498119535134371884645939637434184305199589569101321354040000550571470769153548671430957362872120247016938568561032631153809099244937473008614070583393253252413249924702039419343639705912474132374140119040816573013163970686326130536794743525073465284819970873389439218666052614904728231450386817469855183851435762212111111078896112793026849291376963638712484221697912570427362984399772691581483591091087751290382826621662777148599016655595273339198336808727003781179308780508839779387591438837348746546400203169360956980232775633073201804394186907204500585693573249849478334574336882707957603618902181597801723997777765707453763880551353494741596131043518588639738652131842143026719442765006278877867096587200051948735323965713556853933308385591662473383676048304395245750627234080612684335100902044011028124872073093371024170366601960869122977597825676115271848408780451327990651811589904629828627817564802453685275489839533384177316758014898262534906311606203366278762118660642688560163942719847676832775526001867407408010032381535295429242096581601533544835951845541168523028138972486847872119641624443661415180966805652020295617720900040914315988789036380550355613478656356799716395363371383312091715489015678225070143645302498857009123471505297969884296598357898071912560021496179080288329924996399963491136849498090046687998785610886651661326783349772532203086730927185162571758005314274558381608608796725031305920115239372833637989393874118962368516775215813831314666039806601485636753128829589305699664600887527821240410911552410250837811987505010047719288966895790298892941845468955814010448630667434273008861648746064423563991744614737880212143196334621554137568741386643208916486901225109015228404735812978647487759282637274818825108002130158920855349115214172287784494726629375551672387742470017166914513042868066606814760253801435548524903666404877336689911287087173723452179045310396406279911947490248571792594949917032253833212761448925557277561029577664119222169116072265251810766828082867499487350407518606846966846340948048129831167469956969489212681725692858499114142863655303738954874216754182882872991142440243081892978221568127633208201622134995282583110028550073752619427014432465946257026468219638874215875652021250251003561319072920928179153661957124352458262394161515060509678657915020584256786306114207342904116326225558922625991512058361945192308174252815982872646651280758972717594213333773829880540437859361425534662912493540945364100177789543834898037420056277375863866194207611111376383665168834228758001166358037163804772892630544724760260909272008136975782454620193177137849475038974364531314438219149248397075414014362252935836671924230062013378651448014060875410752235410637009818854682925789380176125885548837103155568635874458682002197002261801099652873987749049148987042398662410084006649404920017586359719319996182909804260847488766415378838699944455221088822375760850752809123011671719480242598421776679902225171027209411546554037171629784104168271125575545010027978492008357901703576305285697840693613864069231799106257220362795946637981743283581586351160720748409328836700339204430126765338045874958936759838397953037063406717528850907703736511244926592576688953320895567033952759018199796376948949304301447752464884034685565172755912051583204574794494712480050971577255192374218937084621965365811627690811965660522658010934771749090075252898953833886081727080491191013475965292460220163788112127257922948763040526121196508810955657439165667975306982297993241256697159433538268807232044105961128727337385777789500535928337884473703875473446679631184852846269582230645307206948983261201221706187471287081995458636287819811961764522589356316432901614394580313238071844116053106349103921738959404642002326741405848176503605473607037144996952345703505521529077456153264300955368083656930367795422098475847855735165423064164025111612709350885323748564298270914043233822744534797124537685350001438038817183294457866802209946074938453953779974940308777245918934589155475166599618671637685527461865121279629165194627197278321917818966614431692876724926930940701913035081698043838212844690506341214900639532605207443048828906265065162264374546843385654360064135749711608870028729389275414420095259998099370620524700323362375979973821734882753029774157476925262032708313483083009252272111874337107093505041959911650161980150610799801083659637366251301849147949929037104790316747179778637598123863751703835630467604777613367499411345709997638703596563561952752721080759773124562687546365898910682840178815877548602190153821401830110569705777420755548041632257670407819514144643015324222557547601599077930323649232562228044708239394801253201436215808195057414319119576479176167530160067572536492918951992922006969094092516903725610730473082753730978241501250570632010252146822950733857072596391872996501856407949623251339006415271259668403079061643359607140572388768481023825695478105141244002327893033745589985733809352203017187533461548649431043930041407387090935227049330337483044755736103930119545337984560989295838224653921128749007048419863982254563007309618327019801515827755055373518830205056385599655238144018585314202159192964235608485424782845307930780182520740012922366395984169808529922952590845878826425558751689966077973881728615297386892177083801155358055424531054654281481680187862645431813624530037513260516330088382137523956333719722679187857435366675991813519519129727775906333008904533264141889232297151085081746909034012994346447619329280913011496012844764086834334346720895200929182636773664546518397370083449951178562054204157584067982388607591852651426939804788619375285029364103462914698457625083114912848734189714745435619582150832874633043519170951434997099157945715216456563349718136195992333416230073281750256974669555731002438298136453607673719186476822029710140893601341468209651509128289927883652823697254592953763705502045703161439456769021214313513218817808103692534256657881121021084149621393347890362591035236968607918100681505817035464390403784031185412618335524076576545097130816797949169845071964177079825424992117133167184348438492785066409408471170331608667271224262085253326757811563687272336208065191506078348676829952847506868054770577179150070516708525882109020891560227916838380823922915806735270079453860758452652057609563303598564817226753484041422229066569730390045090098730999475766232057081892733901479237069927985534914030269226678120151716623868030610659015830512764813282213938000741549162501211096308643937815094949495494886520031125789805252690715132507194719537667532046993087386373188775449752064662548418076658661148140778755965911920265634810712498338730565634669668316490622182373299396301303617460537973602511434874799247121013234348148352630500630001742992057601616322412519252241140346216037362934499056575449852309300965889159452530891389210553915909782124732722194558535087141898998116459965086220883969628940969043482742420856879293673763744380549809063223719456126662502738168145435143083637198490916051810672925016847432698853548840101073279579729974552908764268348954714549364065742273643650478991101837909999297552249129450047901381387097504556816945347721261790948438864594437257396547188951553113727144179234346848714838823790528070572405426794175575113832338252603829515729774821854371913576868747203297621529555439112008773402671155717487112253374687990988661160882722575729042944641909864909550338079167726480216511346894238219864769414962454877803537245190008480003619058171862243133884431557015711096234320037969911020978396405245535729570269200143425367057017656746553025249911253881377063893556548727064290090047039564448640494292116820481937011711710140319003106102868922685245111633201325877357637738470995911681970000987680070900892872376414065487307060982709713899409267720140915940448014354328101469483410645636785335793149700675021288878999350207806931375141653094202274238584062779779935181646745327490899986749590173894629268934559096015709655129542871527344559763676039654362446708107522224702202928541626229652820831898326821265946037171959967738066559130408041190373884485997410946881158946747773958087537353858715403079270605025566073512169341522618081332660929423565828456255955142707824811325012006039200907326330774036223513674190364255937128687564533625843456696695133222915747545446958403645933956954008130565157290795674721330238217270790267288806244538067334934871190486222879062918320610827361081198486946695190775102445743130050459944629326252629921747692460016946155146146756193365142374901953162526712271604678909394431405186312407610552950737030194118865452607311948930752085725945784318130715713884249578306863277406735978571124804241674853707507812175079018453049059051379608587179043436287422273803995131159490297058814083934859914744922180015349679955275254423007783438473802157676190484749127180940309578733388735039802309940156472052014380754931111559473804543810358303782354573757149741936768235071111189745489886647210951016778129359225099050902204431336644998913929725345028178080233129152806510814477543932274303735655139684344875429831163348006958031273753993801786555812124209452620743131087870893911288937363563993030789014522434617704052288988256310799533434395158257910095810072236231190413769262637155149434529205896502313245558716514470210848013461797251795304917461069684989538410261385953399722544701726996220502323651684847170077236878643888239017918270488399434729916784907182239077935009173186814281851045651746422353189031403887281225697147355161942252189660121937773514279051763658678189317513163643947337768871466389789152500443960937860311670815618721950861452748294816115734234632768967356082739896537817725315994241828945736468999312988977225371700354789795362769014642445294020447500107365504740003528484467358166386393925023765014630997697237014919331554650198449533511819231352210630992685048417212989059486579631261328584095279977495336057617074755126952312985888871716844722571191665333239905101672892464412597696773799031348786322216204331938127233248426368383036299057134014111840184725043010493242253179043529103900985158507917680794169834704060101163723911792051894903083799205959547322492458057869177622393062400132937685531482266847784336172977174665427648110155122023736336303059813329790314906357515307037973025797101373986290142924398528886627416317396431489181631825846712035727344228019864248080387074067554517416445550619834686693933495648838322537741941434540634708711037434700158813749987055785962831592091830752597936145541914569435374808120326109914607652392865353029890570936798544609598982427907391033996601279459943979378038807544818212625421133324423186297274333023689028534034210559879833315791550690589343048115865383136280217458283973915795848566325992807701121457709491563402376455660572823377622420820733285129269560332459592438622853430074575828939346757390898257293478125783783803154619919428109016244101853356202167861156789423633130666660773399752764682850361732136247034965731907361164772670173794157417087541408991494174216408713784770787124209541279225338660973796385750754046334274408285890485220621779432036822321936722678492543534588804321931655473957223829547297001546681822557964073069633332847895660417003792416676250136518510423511846875373106790727547879893294799613645528469317106299503590419009160959744173778619055951640632253366830894779437183923054948759794710384928268153804919522580927143921335980246867825440220067415674935615975763881857758371263770147988847346760317492698041871139779356565568419206129218903075591231480218203950710078814002638070766421424236504111925147936075136957354116673758526590339412189737541956503947305185452312406457457150251297861143708183529628339912964591183102290437142862350965556939144769163301998018692540539864488081762700952382391479714054751366380670952081328381935603260158398872795124516682091473765719028094734391776253547265667096229129331202430614450182764208194070968089038494538336118170889710875787278138704348186556282595610581328826313056404297291497293587844100114795221613615518948483346033187109799787598825625915533723359456538790738403928870590608306925801949528823662439408346604042566978322947316772121627386050607075991643515257593780520402172083553174949293633903485434574846810680462727410160144436471684188992537580763875262318397423330288312719002047791429785061160721683654484066136032991306958225777776273862107312638320840946026954036046650545694114418814247506211821483269551467560215707366344970905988257738410300191499411152194184706069654938504093219866341911069355664781339676029881284268229230178468846311612614537647620105662960269157244267257331969181287418717587472170514604506236662487509030575365824690619914867089464722922927302137502190536631386510559348281250795264742382892205322330811694529905372344909164782585148367733904973106915474401923509075805207251217067760225025721650721355040372529030112088035621426767576933652188633673210799431688291677261224730451025864464032541623066432129914166703445325146945428623386891083964339636070638353866641296690508690957093342343011312256267087838435414346812651070219841055155921338474062366356628998896485125923442902970217635900318605225745617479263233100692328436711094286533897606709886433107871154346091202409865361196296599850717622738751391841797245609989243669414383468262865621673136656975231911322809650782005445876947249014810424372751910729597927265798048870632585833812338916027746454290907268662575288299311465634564575805386469510422208579824058870058259985919702010781054879774089579942567131079814040825635904176832925842870192299532089864443048068669784019641510542953269258298682312425337584301621688593842100845642515420012376654245334683997299655692763381084468433401624152401798455108756043014099601088348122025017286905416346220112960472002591730565808845688668512387365219187302993851654823120646766900835908046250918624392295639714831429399259633092718494632234773745237303664087610554772161812147114104535535596838202779899543702215239790340955628248463799862883736317059087866078844046058053078111348376499969175776856563596436145250226538124718067584841962831726135643332111399598196354432376753158691988031013482475247355636806582450783580033633133752422137758142902642122062450196706798680583726933160450675571579587166218474420959071927135594972408521385062891481611967474010650714576986135327982015258515382460331393199132161847213469835455799520460118877155583547218838702262740427020319869689047789091605600579643684150220277516023521858793062671739524430881423798190883029295135673381931159175701251005533947769606423770728538753662734488334993902649710781476435571821973042990446509866728264563740259302873022375527914057206936778615951016660811131780364622245515358824680525358931172148452881902712653637053489895353732977386172378336222024092352257391364626535974877505575735025381939195275144824589081079387589841925857410926878433564832660089092562879616063901825256654489332034524382789694873539254846619719659475002361591795478087632791177846821555680917941518074358711357099164410604600540145390246461386539174750970234377370239336590371744385939426012228305078205619526459869524133650888305532751612800981259208733239229611131145032679295937007809378654881211006806947148018498955596941906013623569227419988706099227086129988742952283069405567286724928364899845521953832653301102444650104818791748330244189656072154871594138231939676305363635252412090658039785523298780800723593335249822491205151313701029675585230735476449750801405913636134067670735451421057207443829267723329083344122831010990563285693954248212512797359211976719023147118915255133157138550106138170232087819389388289869424364344734413571421743934042259764249959778620456396812997717300941516399247110080877137911409890223228458166912102531881689682042169846815746201089115192376708833544499130389562222641913334764924586565575274853886571066750791008686590006527300248907499199186392154584775355504314014846462178125745192910748644254779700886479271446327521445229267599160309204747505119736526298808988037196535269534877542159484251256873114860317483536092016631304113674424081586473118559319814306394364109237956112582189757412588164893119380070293283000370217733598532706614108166323284946170178726676125214052132262876217681806554886738250827798149368709430878600646231469281432351301792065632622880107988334648211245066750357564372146512065348044898169632092634787167192656424515153057068163823698013430965525109662010159671633272591586510446182333805369223415173963750255989757357600245544720523778930566164781789154409275597948275698212059716975683664914145788228990082006089067120463876632756483486859325763674510630162834342123499355112241604731816234360804615497094090261276471734996129186465873254281744460817995465988645608854736741403096451961614188861839283995191716743827270825158939928413993971234585477277104875895004825215511091867205866945767511727505931461177893957475886438700636478694849128867041241510013842672596331127434634611615687765462587038020849755476140180719619319943274447091597445538484353789656405804239863875084851900082033409560391654741792746185325663490592919855867380605242299989421784433109916926242799476047815131783312460003828579043959267474733348721054329204420495497997704820723833166437728667622571096442359036373164115082180402287590801305548767814688012467435630756633848129421467762487518347953597202343143891211233200122143797235476235390551115370273919010278209464074414033607113778875276490336650686273650811638826050826446686265712639245633896720831190933159852243699077865214878878622709550272708172236937319418033566952950219692930404853788804144865963907088889978905791962849789748148902862426884253725035015775339202899245441875432075429725313646581028019286733699566699012662768303475672125804673447870462853650767226152534372045449983809304177881416648408727635299227416972311319737356803346889069574328124699257688854821644218126237488846695006635893903042095265350955711963881741512613386706248782223232130997008435436227039378098580628992627874969122891182796982500266555237421829165958024834320682928478918965098626136872405709302581602486225861115093806064765307415855900484472095528976669916415110612323694644521371064796172932826302824564043688413419736252938888726724299131652779298986613143509433467079579810388229379609782748441008719324464740418173953143515943219830071581071287277169410991279314484011143667504425108812804454431443570632055586236668838897377072400152880340081600792503886035071044710957365811226571719541260779409741717490759483336978498497562140365549181602643419548177087121514981486831783239719423703146583607777496793301271172287660154130955321703247837111859259607536486521647025596203970760025289812181942033999590211787699658982113119714113280066152565135697206824414873642989750879930564831662324518753425272705263121108778161257487158744862601314870861829166775378824420681650581299134258903356081802492641649246929345593186392913369306975253502130275702727621443293890777247989693035598840460817134134033848093004647993058724372749176319603635336094429577269951695861027096816023409330256575375265208725017092850816786617278914016528472763197394106551418110679109578077746436042249316238117029974256592998816862971797175513046790925331201829602386911982297697359311504483941618167713208416458974932085767797554030308625777725823181921100691359368068873631125096610598689239516421755508508172735018371954806023226335540460352672750686590170295680032867708037562219447052499945080836454351790181897360717514225646907678766956778238612356975927580735827625594989714238815519026839915014246763149559892474530301664166702323209638357860969140940476978069760361931189162252252436870292137108121085413559632421388009846866339130395002747313768526382192840111756422347319143025862882600619329492017585975446270268879532149301854828563976559733004063938662052215008810159300325179326107850411010631051759528453609473277922701710967874471224005710141687205985346698322700073057137236220745717233070510422086260007797645344108363189623249835657243249918894102085924558675387160873528565628155492245217236803260280889305055360486040715688912785660545042751915465705159092587263986238862280201350302115640662600781176990388839297708708771993842445232650975620835471255969144467019253830806448376591310714890659248582075785938491095127188230914995797752214943997451992710427040136143944761613636217800592733903043652154490663427911119245720054107804991659858502924700926506029934751079857041748529715468721389889373086731132504548344575703408319646277690714394489384955410799407219931366989926686763879417764465994798209802259093134233995945055501365375979246812307493430997970469713615599446732517604808452799771411788387851796119952696272450932165566041838527722006706054781052687232962595527358144082203743859405812480506563552122142649062418189581099207837145817205774868401574676549245192678124831151149056199772497406412809234323871112714556129649140981913116095009360622093133191222136480741571421946643386091784206214023074016896304009445596084493721396446588599854230159353577604349620107180671311030538570752690262664798518570445169690065270126923099804813531635387520122060964982966165397193305999543089915539693385825706840370665691041696025210162113813105457464201460624195425905365741461566363117485264889204862297104202240607079034422194148621503024985972012132569851773316029763719855928550921053862277747105969255020195833924510962070325083906828117929859102903996842986297930603244209950920009491537179048841483589281088944556207501693712148413551434632874329648041378392146897971965288111620557572760326174459932311012924234110576890997093856837480835981461220382927733881288910477105659927671859699282144249585854288057214885797454880916291343106900059960744058517136832604009578858411161641171086454503299466783987213440684623104312438571710786403107605707004540901830722329297090147790829073012506981649281813635527472837338869131490659687799602129315233765030094430580798956370380890653068366917766108198357841404990429033964227681960203518869877127115641936463875546243182543507495729974862624201040739095279520731830635931671926547769391983966407146415756082451919022689536647556268462456394595756104694577737848066441428117336390485826777337854410401200940821097447490084097214780569846218793983901908834683369172110381179205328955305727467129909208278302674215689341951712566958002416153166085082795650640339037651326842558351593760131926059818240687340861562088419985314615252745585969006866145837155651342450402781656597514198399744614041607306439612516609672116713464509385670373570706505759340977481636940035550579462456459934413618274612419417464176072074140963476573744193353298302094711091695704375875486551923315333250591779530350480064356957154306862429422109899393015257302560787226286853173103023787682438609024810037981010175541979619950369124911587825772812748382912159318819108017171450428644904860924956081966901340849996688916886374501123158866395071539134847576147128915137435927641080031327645708424416339223207645459820006083769031639698568373039407553633017861299506905026119684647447791247788145283091220337697075585407641028864626823739462389295772083340883560588932049806058197608989552853514912135176657561806046635203489126854417779070873231953583680246522468613497518676153302583464973486835170006618661316857286638597826504105763114780832817834309149934073955465825944149405898271584114972391553403976130033710856998683610596707137755141817836467153510863965870539082668558441200685709021943735363212649955469891707374518596928917900838541804437598675356245355187031721256660865932085192233303364891639835711601762090823812693318211306315663117688531658125118363293115623418155670447220705462176367452447179618326744153723774957637261866112304911068967982800040188935461757932735321330678880409021917314713296696292241997982250578043759060997213019627379087012697739874606110464982801942666252727269176542959453251237534930568752472744510587452448168750381674836744157695031981814123767922227058334147250895779452242225273931873767558315244214220152802323002302768760704096937766024808500862601384004799804854249583522927685021026445828304037815804434080841296219183479667372194733542022807355867327245493947730917793924461541283918532829060409921889973336471346554750054370553499427298194476079051949072646081541557515061355668192504006432107517306233070910848150426894485855699992902280791860706056276862061131637913588877151631121800809921103030187733025618095754594008835009926729416601719544254921144386820536873655444387037970541410653356716627732772452160512597316624646148396579090587169920842341467729334776090194074170394765270181557022515153402699659294295096850181140052961696440661990702877025981793275655410804570204894093137221056737201583902742289468075590878136530387357518242006511356859414234252629564805455294027385662057313523521488503088411593429803557461083204770500038151932501607736872225019218539644415040470041518507835819533625891329622762881580633507241158242868750811144198753907901262411397580447134638306560413507788029819535403563877498014661617347651724515493467962232607156773304912309738093991138474051333388227360647498995012892836178856300593780125712255912022493584645716678193727054379139196520381793743140556070547357359408308338092881216942637520583174123671880771525457883198063259165003250174271248885022687112891315163535409487284274396564666037734900454345382768073223441369281746757659892282916003444791549286305153673251433662539958132275797853662938032074015368721467573683165991681207037610554697215809800031795425103278406432145527441646905793263013123667487178334273282252549710890640293926578314498400155869801361001774043389169855169421240529427594380917997159268356302214636587234781825939000959273222095800193389726862196746264614937098959003840010042530216056211964210662000360946008340921245666341674627433333219321642618159261149965497087429899889090598235658469669429336729189836214077300390433402224612340778069578774654792578959051380840592994621400743011616995193453809889068432783053758060636543976985289448676950544948195912554178960875139937320148422726080671953493917133249525631373369514673100876624503521910678183069682587479704549452233153785637424256799826502767327611674902561188139064676785503361254135264935457139769427525562113773215100168878692868176104041298364458672714727644514618414070287991416274481265556441619656390044578021087698577126653869044723793762805487384987033524526141177779161410675411967442336222562484169670402235098821780641594941916848841411843389696656042981396311918975449290424987356864310350123885743934427359453971735234339545593042429813153608040736962452533434342127591604234019983791920772312734292820537882785913917718986511194282930818730544479091229992771377674776114566515289919820921645676519229202380989350868467916250617780726175004926067573247012120637156896067221254419121450410551148297620667959487507558316373690663752833053410700348069380874218276426595136680935354809961205242043188220477899189629315343802558336458075511086293346144362863606522820038046771894571155416814171443564230848636557775325572602981795376526274143558600475350185278171891101534884874261170894061273445644360060758742986057851834649366921059703827862282454513043503557725085229171888849754691876241661323607873554070049613475468555223563126864232510531306703589070577721507618703494020712130305697744725671403625681898394429365556036292887573993770767535646451475808821951061163686844834682842159473896353644868816307957807364425909140989632150602164665549342927330238200570774324331495593079485853998919964598591217685378265599913816564631788317459646200239323095942582992962848972892935699716229073979072289486715753250655527858795668394102714580074056591935758551952240111292679564118222268725508251724998208981594887121888571149467091977943741371428305555654510443067208595478365558312888916190115111789760520859537586956257183112523334842314332720537216756961192929261658013681378362835542184653196533154280534122772846168704312157331656742123781283112948626175489671638970893997937288048408802778174000982546410889350402061065239592988953561529825239406605058275977301452182353338705240824958526491610873210094406727351171289291858179115509656289238109342528366369146186496673044009357347648852800219975614936588580419823974792589414893207094943648466732532804372283815362519395206819570426515073109634808871021913951293525675524726322614542371676987573507117766063526169547658488222761376721601744261648968213574598978166845515000203445625273595600007130593975740071652303767412116115430458430662404363140450488424866568592153313166756033816731556730177084822012710479723425173077305258168781569480507716329755381428409318845640049878361817412196258096970680961559911491148902509628867170737326212942975702453779042122667746940155708016999151474873567436901193611306190915397742176762327001541612914462050198839180299945505856663452321898193359541568019107141299269686587993778704802605016413182599987191938214917509225182653584375795663984870213036583277501239096772690371586138356283413429812143821537032160949648368001740693060366104557303873852045721948976866927289273420311563005113709953206273413695069433106206246018543328603107796881349600242969595247776479991133431373845683864852345392334457922294748043744951950733305788574337210447288245105127183727511675997847526027910126547990178325425445233067357760829962864152998535451748237246777682707480923248109915914413314219124325512832108357095730654706584973144253316965814137499620401533954149329313117526141267347996830958334072090816842800171310770100498018795184112508920333752232633587461923789670942983414605756192090567970454687228782582089202707030766751956703610803911101128409269165503382791755779100316408569418422914912143204381653093870303957480673459113658616880234229158856339553147377079705865836713744240104065286545004464323327272117936943527935357977093206758097259667008154045702569130850601406885680872803216798729708209731195949436223429820875515469768040403942731696093721487473449351834270626502604246919079382485639337567535520009670345511598076652563982208361013959711044302457975996114371862252659524094032075784230626343806765153260550789419236953245712091919211179965761679902613214025276447306816453904301329560142293880833991126916118774427742756192121338759570223472670852558548341758607834192179740408260825554037214530641074725923933784082706363435980801309804282260158955197978056952349220688223365727985002244520931225642507389198753795827048603558994059411191056301481019047064091846177089179817996098674070102628994956863947682656588281011073238328380556352278802557531328832852378653096584928955555740636889153805608143992844842436959870157824013905978455339989611774413113445806499570973509237430245105711962916607441283639116576050761356175598759492874840927047050150203748353779160983728920693259347725745001301298550307088453690399863764772902872470062476766173379765623024431163968816441180058269919972221243235582013065487277475999526085601008802040341109862988982832936739129820118986339170073970245038563172114963611794055334041086385656975386182140458012620308097515953362098762608497565286897940706924774546928699535830541158310553078819437562668012118042089960194268039937535750230198313129398306163969164980661042504238247103814014412776939146775026701916888539017635277150732695994123290666887422308933385652209428532750565828630990428539688912043249516334524093399839905509051085309441445816580226174139685814072029808357031961014712862842924289265805913539951682851525373692247409960654509997415203346433728066416179031256469990750938289232852033122351570550820404165976835085123274913120959807936609088108552510097046212102240920899874874174816169925957752863776300272746940799889983574053200091025515920708060652144238453050638960038056738708523463301971994700640373664499086708108496817872884110546347089737926218291256151371052942500179687120851867369606825011651452765706305276322410909911664052103470387668100738962720192349335938989413232535334831060446511521483174026173364858411447863526986483948753295087937225707086240533158800589944390417597693173712836056954313726993097870711739176121885347130897959962268054352144677443709341024391959988492994869634207866004504642137876890137096174614353436849698397230780167175503884351608191566723310814030168807265212544558268603940894838976199657159298157599144553413329032375180895439730144206105145151329231036198895929888239522010304264599588165959510896380097328201715315089851942412167235828026597432593964600425304162064349768854530173556139881839951164653513131744456384656519299730304268098929324702312171422897297384088108776686645861426858993401523899833801044492257014963782355312820163783382392167190202928434296362506022944137821458969952664252057711932339292424655100195020870302153275684316756495868053714670238775400967907583559715987229488946221600856044772142444906102967515733364063737146988294805019248185166279415746931699587966761921427176298220524031539285474432826387793927541940978238186510112305210983505483064441284542590434041841024909300156891567609497667658910602450984228184788206264301573044184111664006884016049755185052235308269112833047435256241990852729238652176535316670043828976748748859900214379642290082421824302647518715643682034328570016327058509454580617619739138753148684121318436443485428717232620895723406073611780241396539248806355857059094399590353551981435901676734896493465363634552598416356350654623255603224375560329849022820116774381461523486295179718800253612285330953502321557638710718076910313767048857790174806524219780404909735817318130982328173149811355208853763055772090430066419790284550247797809096665181023119407348659671791643377094209873585059106841132637122923380797151357268339289499345886508596656859226784889600266483238427819501215900109856795136996548492600960054412926733255669716659120512501513531991117346707821332668799231324494873381539935592251074513669052811589721562251893103732072764774957215298036332176118259924204751476177738024877405405439999322136854745326855314434713019879661597031795755569477013946653591448997171065444621495265522416425806063335730231492075352525583343147580069203958568530731396058135291098309496588413171135714060384423257620132826736674824025029853642037924746296010356911430678617255443029616818959172245083886008477298676790633805887853957914400385693061585161001542657502463519154254385856535459372423327133060530960731603451999432254168773895655661791290066356544231031972400072632129242097618827447262282681539695394165875724486263397184900647752671619601407997327587422241706637401888234263265101064447103978544622803626045186241976639152087055259405353887004306948153929926330747790402604740814702197673977527942746565729472543112497054049846436607050881792643246176123808439658451478155209856195634849457481885970421485648349877179152260743635810482622491916496930752972003247002786671841399143096200219719557997662116251408019319555379527305122977010380588192282276954819343754433424146555439854777743288585919151599000335144418913016990988609796162137042902974540501916162708192541941801500136304328175863821236707368128525510015744388191050615163002685453271365419011287767106466722897647365820616925124538864386788542027129887056256165241748609428641555051510981240395527499396551362557123007509044079127789050967126467150907604448570192746583177709140023403071082070059354534069406534917466783535988511834091007636914104648659074508880618681987874549395307732819867087706858871077663860889935959196504124557569602935867805578659481661489564827353683976214700870714837362459289976606201438124451176491836634325209496293846208843966155263643721354608260819463340799105616254059187965281499832362214227161765285367564958343840879861098492593085468408513619657558768885457859208691206914614253514417376723530629089198156785743392351877586119551665172757363251326031062606563469781163836158002606781886830401296772128447889693442039339881059872218322552552993942391296655026008790020868984323050138853718606086851868345475083031716534985004421119909129498112342679430881137103563117240825195511631009085658025515779371375944866239878154775150065103145405048794196656542632876599037137108717896174867213682597662366677423723795548006672918786127162616846774212916927464628422857970472988859022650390769529676303745290330444460457871585311672505734218999529791585502630626619015055140939967476464974966472313638249087472004659649741638757839887273533238620180311519247607112264821755586106655446206455478311518684830972785902210966794018368621144306627359073702288468091531506857001231559834556094148036413147502791587718677612793058133049002075898780462830748499208001052385778283712691523561060921382972268990239767816210536260103264829532438526902968681824045675502822296786545119818193858850482788170390410487139758063383321293780158681593633209537651868606936138894794300131763052535791137306937633458280404375199423898941008087610963487907533370979058566099697278619853302610793724037371261303677361449789347631516668582058946697522690622772340160761873288557579932370561177269357285979748394649310732185562276535567181477964335470589251452141246120895309717692237949916310782131409628851271054904559444241894150157525779561122115274149071493851470278061309321657572064344031125053167958633640958245604071218181214295030021789186054132544270071174705966076308953441643688133043994194969537559326025712835368553436153201021570647047492217521367088014267111331008457165213618472811146506409566572931314809287452147002413437334044847033273803087537064646204907535226490051680578206254477054623613280451626239592274827839216244966059509580941734124843012968839165373165067775947619263464424158916428470761737694581022363559591883264769536182425635135369078990804795992926832398271879435288709434228039748600010244421841684000518585939499661240177057356241120287163190838132764237628396028709830106901375498656833866004404381800786647568979869835845580455277847731811505010557145362307074601560680222212333658741597412543706536159210490386403631423260097962526616548437377179119726742254050752603312373443516569099125485531062215051139713189986959237884587332461175839271434573354952564707516562056108548384203922067658271319559249942223665296527864560408442210542520907637644574863232603827752733769635221160100747786857276887933171662397549784582916673596330496808050548692068861593084124913832399625113728505203667617797546315019872634986904714912280227935206015169325045731183309846556779607161409327170558384898440267812864284448165455768343374120730067790291772102118296805295747427553969831974640588708477027177339898604737203801104586600039974167531169535827942239613446428864560447049817767511585602593389580965904776958241853228812467250988170576245083639247271471874848371884214736885319880697111171546036457483717691801651039556857946227632077360131932554293492997959849671313396165887206249039513285370804349555300467807553867875132150616414186828811772178600134236412951383189054913251085662092284848801504281306216709939642745416456452518813144264143062506405674865024001338794533974182452967818251490342256267589721149942680695665307696580435222114686053799257569575703944815917345240067831074703255645190264164178727861402353157745404326465995759456486123383683954607131446255281361378510678250018926932179002223234221603069991095322529671596893829673027832056738675351721075588396687465879123952103597000356832518283220918182269580211041534689480800522843214551745575497981388414102781134731913053900769493674210047365264382134282847559371102023805362936406674648966424918867539981381459004000467217085046474597293649805486834052992653213194150266476540951701724898096927368305765798321805634146071037051958790615051896353311225389821708158095918594300808519991756111481174729222709726926243906436778759194476078617103444468585996720828201841806620108042216138045851919905092797398851396388504616344205190381795132681315340413213844587240116589448814068753409823475140505594548198201859851667016738466076051837890715093862903240620890966722728678860681093671582685250067445409969213216288555626313040402732488658561394682575437402010928709495627328130941791931709987583757271020012364786194208072354945923882312021813260786657066120910962920148760908700497733291873594828700122529137319814818374393274488364330979602314060426918791215682210646637652279764183031929570525593121964355241490341177174535103647804201768938654364619154364198619836470934295044008097174447918804839335274622163211989144360544141912851382750486487365545461455867058979177306134379460791499003710172040448902575191690101122083051177151946802686040646204587000570148382571087528566432268584259305956132703811640492425095138431627406417372911253332898443176514944263647478735440260118177160964981016519440658912740654193289448100092996052894662783420963509038816360753749031276769953302201809574011875764029103898591931398354723253165039127105553662073804223359936810243518042877018198086018901580261881895143276952819425227995612632568301095798301851813102086663092510047448488290404914919131565033979269552538332508843887564473630211457199258113028250840025888759658229159100356324854362333487851875768898249433454021184382527020734164494935268068124176793718198564132720581903254912367224570157513542635552266032425263002918252852294110708605086543631634236528776639089853721176765292343644311139388709709165591363912480416498340580368389321866765906179164188630302387114088376535358521132036929044437072250262197207436969691459488728917081912680627415328940093850993265710711157671894246191571317006681075140073090590754679438134767132544782209296176277539431327944632991711330635483953523958714615761068900705178611853452456629440658972124852667547456739787994347900914636505989303609900329695781691252759029194671980142103914282715774284769869924492126867849188191619482827363173015154782979638286525083530350956518552845080111830864883142406194846612605737498706615305950968289446122889402337149993417102769316103538919739556666412400272366182302907914421034609371995612757828353999694752987147933011943524675074839497347558048719778215989454123011605353395199537977878560289938136441323345916643864110473511851785551524164230423079318104990477119312507497294912058200945947917714339017923523606697286661626250257821411902113810759354843592217960534051246202414094094279825323207898755878603179406532600519915842995591934368515119526284289549623725275445201525630913713749073973317066246316591056864109510101222535073710166374784006400211806048769084604777336557609305916729917058939157697536458557777197240680635660543401327017491654565467019022640442497640879548026559945596503142237949416659834322720260759690966495548307130359583464811882614674516924075631285806086291888140678396470222728047456149378101574071900362065627654342441005383706295532407084830254809544190232596364872114701007674190787110871431352367401771659861610991060361356049842772203201387124761972827689202129409350506266825281582523197762622681835611413825938828332027901249470401850184968550227455452676839550923850286172198808745016199403749353169188020724918110470498878954680846299932822221188301327103259979535910861532029737613595923095168291308702033859838425053013031708012753086742743739170922921261849183798377555004764740207409463693871628756563996580316173754751596356434014206560203229803703877308295128201802912088401562962879316090826465469527942217464807516179151467822229677714281584266499588225494860573652945164223024133294648318192174138833792885212714659574330301765870743839071429848145634574716867269372555621309515905617339687353225659492494773410757993903501065236946205810706059973284110561340233798445013511705059431706105349080937968671537295975518914184312211450766522148683239003445701840882823319536671016541869924626120031994639097617478359449578141406269113561910758533008848722589608775462198835747818323269079271940646778729084427603255088725253777287347989220820479643004503018749690899671799494478562910841218293263460458174103941728546953048024540880707959810358905112841467660173112902108621058005182248857569949439638241387684598143947720475969536807025248800721028288173032105400539331379944831860188549454396987857971751537030057189271947139623605674038392440161588645054669307346529211409901868587832625607505020454130947270536688920985453704941318894927596764412498549107403772613168033008175771721164208006613596135801042027081024435521855973964717224246883782258332621140294640054359728770996776969758294510072270846730779792817396399344940674930808071031490804344445259347483796861459568969529250528759880488792183628085417334428179077344792375092697698556068954571562644678884397004773809891583799076755034531724478310428507210283753169157228885125554462252151747371719481655879740161872670080175692061671947557889452469728978479968795197413321808513344054940027586170354739637738142809094070788818300795352870455270715183530455835648729910190523709116238751664486762517395325545835131742642352427968411960417887588679272723326875225947271826174506180764365676069939635580742377236615932510728261557537691720947347278268891112127933339569694452125972910706372401716610370729635727035863225617855758055338974403255540978520378679130912426780490682755020333690491763499711391275489821268706387513663831369033018339845707172119978330757848026074844978647520084943059302014806190518942569725418238157712265556311183891668474484060940059855097122963475788797625223992732597985186036742247879507166653421746359252160503927034311743603221189499296590966518177109710028333958294519485251267501150069375829596536585040180691174325812418880879090362428060863012409704712976435689272113797597147876601529635605387752075857495429181855283310476216440782429474870506183681402181314040997750948210488816607505275040177477750288059263568188874567957819928257175610275180428900754371496939362308532546903425051397814000465978579777749926387462919433891025482105519826843992010807935697388338423011518168087365354108364486593121928755887185477598243680455316107354559642431241932837339432352272749904558073691829372980267959133493394722827114761422987210790305800702692669147537361023026751117742369736634003376307117313543237846062644207986072660292220784583063678532306869886141058299137908750179901299241092341467186519214216785109602760106252352661903819478827099622345090096493130894472414734162268325500735323293988186619878941610371689930152533204603065957814906914333318587295092954670433659268668877368184313261818706022694149256838172244512086907706417230931966977075815286280824388441960227157258667764563497433858591387633098856813289993104546438457661462949473166016699786459033995819208003784436233916702750604531551811471370033361821222545516829165086232847582910974337379959158476523520576767291759031630112031398523570586941693777436191533336557867424847828319317594250949352806689090476845701050969133864163645618171666276288475195684486217380241902298512577098253666884429349700642457898433904952275129403006081617917213943086238939790742591851843885675467154331971620106496421659848576874219685583317817254540908903421436582400012414119100873397403503620962901674073098366393794908416220380902423383244089790671507235770999380152423169475832981789284202354352936271471883396693221185818801190494998505308117437300391657854575767215350475121514964606998918573115001697055601782216390114655487437335930089910419244542021719084817077790544300816917875692220271756178784765166335012623681851031915011147520577182414817361628298561363134473067433653124136919088663723732645197382655763205485722391233449404418084701473637757284773090973494447752080391113789681633428756523433608827046259192029266921336078310100118311404542178937212844054400644732962898398687357616971674241310560484936370826985689720328922315114077472448107920739133101371603956950331685748045808031350527472181328996226037843123368443890729086177637073792360693087041397709842590334895087312203304773878213904942430149837151870299603371333724505254688946102593152777364855257609991733977290840025148871505866471433688727087721339767313188735364542080904956403656144266859724642459515001643223102019273905691976707107100572825391405494799717610099098437331175033692834914002602942967384576483045351408514159570766016984656646885026021572737280997420791699809802446555951266587963564563050586973115301309041620465180680225723483029411964736854513010548656555435749456701160662308386128205372639550818866642699916925442133073546893884200191922532738742576663328757708876632590575270608185555187718693542749337939519554742580159034298062934420784333242688210106392691403807383806071604339662668744332302308367518232302020194705964541646906459457627005988196734843566741179597725792947926279643228539387087941363477289293004294947562240184700265020585734155679388568012027709545191284220867082430647383572487689922818055463239045167356924787225912034671634971629653474441120762631105672927857322025884972711972510863856184700806077275197404000066221390102741085329650140635468195773135910387635894088422953617446898893271851021358166294679020906550539355055837578497662894838035167563339357093312152711875072898166448057838462556923587361684484084494116470076231727183105058168480914558471383100680388746415370427732339027961454779478108949796901420856291949591292620363549872659183384731160073592375307222905988830268498687508495054050542332887622361058919320589014090391114591909372445087483840159590633938755490989592519106312813476169733736129602150882355254881252420693392105840135245544768948539215652500327287439433080055504807524523215382212720342780478941624609306473149257713395708409576897787552540014581496778650785293664503240524446389559629267522335108102544348275326191175469792487670542970303719545378374238795090603832240452882818989350827748312237800621814702219403654039590818671951875936091290462154864119530835337378029646763528929956179424857383386012760631042626539949237010250119753053928146790468175314616763648612145847662834036155847346443041011902509723728088071234937985037983609473590004849094807287598316089158790541181172899598166971122782741194521588410010613302223232720042912504482921311882438368231513287924609411770018772778392902410837299866665193075881257555091131743306381711506366173480815837190224333353880101669413815769801049468192437794224846576902366358515698026769094211709451694248141009645407816118366156970613338487476720497692193014368173204142797443984695933830147155981894503281696042345842340173993917436446939173719596993979496647811742106958392882907949340686221232679711936771160833202400758870328125128810619381730904652452101712749870966690054944617563852075282047604116325855051682686583256299304669885552062282893984384005513334527837942497617840326690346937582510960229699326973587848148752802245769519885794326516128025162926557670820589783023711073783955811203966267498202151495424670431863222228588614779659232098656255822260281655137212920967499112425674238665982713164587485612003996348981644361731122670146649894664818481549868105213831404851292667629395368646777398437277864538499759285498347456330434785334286159676445364147093937243556625912404237623138251912592997079960948880140650705665288323498586011870157076986656518504935851280792379393894696372037723035479042286982282267436798126487540080772631641602927694789738901778244988713074201124978126456147030441705286486147369375484054166267154777984171440506664559840893526445634289541261907592139521659981567064468820736594821491332725739348193799775498930045244951166957705410051856754531240203971152033026638419742238234862157488770956778769018426457937612646270296126016481154774512718488660248634176959710815305515992746188946906116085988194155494085440314452223884246458877313042702429300446704685421751328134747054057884404575961689235610458354663507490376528129108578212922556548037244216813391465344388806041454420206745117056620398526622283676908867197762377826922727334665006895065366133575257168485180165012491129587243163591149288198456091160754753078018344711532969025293305715412777208203840483864094298288342229884030098413022703774107125354108507591834899149685585544680918763235025202611022381243168318232329535285234745924499850618529965252489621367547049688619361239773272812199228923461844388264631279119497311209453491036431450335712953771629566187668054747736348940920790073197757404096626751636640526623227452007648315002631503430144775626173415236890594046813963072530340865766005819969930615235074411214928985293461794185566146367560031276112354403336901499308145998670011738799414664475804421370906025518915970180717329243703255934076348714705513430288804481695831580687657272199409760743893837853652547842114661484485193363969665296971076401800980696578315489006976180002810016378795763014717074361507608912641939866121251198913011756762853120349522408733738107789076193565393052393728150479551537866200177247943040357142365247029256284208679529185854717072302040126437195587869610524829595611989348956401617814840927797007436327271780076277936936186222381679841605142831470888595723661366706842081116537099042396570814432537232991918819700084707872524224313711499086032019538307906238528098390938793225038303563276159665848328300111603234809690334292896781375758790493832366283646868786500389264775737531765100681391938628155386567961191850681342873948142776350724453370502295947458317997993308491492903149973032479805331485231483113963777186621218239721912821772038606965106445884882777407158135929587147642254190502940922547872332418474152166953364610050866094922047349614587000217664268347561754096356167730579636690988685915452904546170747900373379192383785416605664761194929566604447543317530104865273401721680442821774702718875889902486860871057133402527514223312538306211104011217319227209742060856239949516876199671846308399193015483351383516427229670433504227798418287045014147024691932733870951347173326098619208364020607300205881978430183970457916840248501191682889062256076892419679283891897209969443160114093259468619470516565420357037992484830105875520189819030055489801245728124746997777205562934478657758422923715118220666003085782821626980585811448850109707505139745740720141101576446198864614553365373429708109882412421781462033777151030695462187700382459534568379149375951730875740572873413156915832831300417342006167137586504466772243561992862554148320904871000937749878212853698857218639733753904982986498345592412649754130690708629683786645437793389599834572413019408395218480556639437948619224432904778630528634440089740232202276539283377954414782788926366248809402852700356664123682587344194049251193933448329527274405948592438404319252024779400478047892861671636305072846391007990283013534792630555844023106831913047665566561818185138755555351409100853282411086467115897581585386706290732696474855810342809245479821842211297789013255260583691856297858249561912891370914990356148747769463613264938448603602495867420614088966883768596869814151849670817110660286070144367945537447707119038424163957856150826217920569316544376894433729891084382506665299949284815898164507837143445721692271931917454068095310595056395022476359954966885778786091514430541182867117692052547877401104236603958659609359370426425097843674870305165770937609687507865466001674461836895791863378678835553334118371687310214623556261466556988538219856897936051072012973316245993062116258007574476111417774000223919854505646400868576620210898588311178231741906233175113413897243524985174743327692295143262529862123315324626019361145454859749971895032253487415970360079214101502709590266262054279022851482122139863681492627242526750041498120155343829606395836059300157262217518624487748914718674477486178275899179738151683950728781775906914484884766379693653877540697420253429894042690835780958416914955681241231178462809189044030931172706325935683381330940106329056803011768812233459809414321238103241946445221545233082347884094265094831732304882814508879101677736101171683044625498400674691246611013361330310838218349528978966844828745934593912741199825376490467169160191819103001690744500223266493363415274606318415221852119729825218252539054384186964964990107343702928680949765708186473256480589160237044992292280800460593938443032824364643104024090813965905398098919240202911524316823323092500957096620727027102589235339443365739788039439064882702283734626419634225246935904473560653462446745990382660795639461505690803062928524965000467975714526399979323518250922860707848543884176035427350990641943500637997990828582129988369444218242445914747736870576231176388698749377845537905915505413626413980939717374996860668615231143400283223404599260729554504378030747592462608152634349907448399831644000888923354731609661877192306630890863118040890800749070325520241056664087325207170532365709588088970500703515976697181347699888046394574595579488731733173930400722933541583566463170009061761689712789087347825252460583613069980398310805139918231158126855019781585393686897840982799125422853349100941869599451466171106219686313154652649928754346008958462613910230913164794145194147587774052970611806070332659380160333464420619382828657755067531578022426644084876025612978324532270328343230628126388185509478819561852734407556269553103262763758833644849981370727504789032596191515388667347361916580310898928350973217874505759477151938456340823157131706466030131258133284712567139311024348960134986224723833269053589002835337695162144082135524187278814150070339112485972105697953446596807302524378140383923402019210010098210049188592804439438055446555595230834300863656707291619825068995919032074473181280490742495930239612824262668293639805985028130752778987908080355405204527369254863539819557940958325949732846842901360056885178700237334984220887811344410784869507229025986253544573048609618222495653985605937146130140854656421711546732368286174263625734989605066383892990230663233396683375128572419113982749828425067138988035644642243210442749487699346418362542948124812777298956068191086584470395914063256176175303334172576461947241393169608193299525115647779694205725284610018250245166780405966820816295806251376286717297752766661003009287870258573927444086886322202748160015477545604744846319760752863423240006413994845594565100965033438728022715374152018687029407184742316457027719465718719127506484584767979531971202776396631571916846011538766300619928055371970170810852656134738053407944909411885769462959956220082064535801199621882599244371772674385605411370013950707143837310699289488927235788225309546736462125411746948076964371051505600485273778627631553672407808283775382784887784504836939079932589819876321249145621914865623216267293861558243729666664456962251454059328634803178851096583172542809594713925581304952103868961975760995208490621846237264509988419658605289038666990599278355303560837808781249269011480258903080035634345525698315859858398111326204539610161746044984131269324127819047555527111998195908146043898001675636155000983891028180919022718854530872091619359574729414258899750684740481806202308188208573736902814520872678860931536545375550101311417820931001356133697150814981245729454653114690323769155649331936811103265958412215896485518842454829081500728111775507468171789185646750307510836174732140950809674665325248744644552182682542120689865506018063594291274945152470873881829255403399274599603423870692502825733906223132404727155704369256150495342292404494125379023737795611055747020202200140800774781478984284755704086379625845961981497563149982825415347822844117560833296887884626510271535244131761528852707542195143198068146795116277567990108895463781325304429023599345927738637502699464928007665447398758565331274316674241733140298756860676711057492055930347443963371278006315850900475099423243128526922319840148702491044969238553317809972044434782910547709718569479080978961117546766522584032325629408371667176729322085095396926471495572810718804722664842973788293817903039629095041338807976720966407561572401372506772881545047997361325739778477444187014400364040043484646035520495315312689643269568397534883997140490581543327367622889948477337994280027328367497400608886045148096769670181646487446751696188963786028204168950642366903508755754027775943941434736724179251185884281277362681024369413240806337009890167052178175926843910115960216498559594661604948989139507964376924208104998612889982977491073668322052936262378076193039366295501105448308870623325273633538889151081335539070292917653056877716246196911240202348286655228939063322653312567020648666687984100726956740428525754270636925181909246638312493994780359126891969855178796881281055096662388284850471711416036184498082539510133465944931677838197277132900040029843503768344640633900632801876796066557239753299646770050124748862417684428302079574798465681800390690648252690145574875718271626586194466437670717650884230433247331528384674835522371845638104862677325114947898159621925197505794539629911901396660877815733898505027251439275710478091352330308311898806559350030584930663097447195889190352521043424906243677286402759504315495129856984687079585054642107216634230930257280894215360144922157164342074940167269664485991030033328152652306840693658549657683302168152399623312513719012296913365997775455815987798499903812529525224389144331448098046285809408724732718105098277881641376941529948718890227965591279656848687031997449182147644454496002936473048507455989913154270601065716386580040015595048307332924056650348609711572636088740180020652196898190327780690517776045443175565740091653071760735882344478879024402070001479576333372309616725421286173887544462018586869982783091714581732729087644699697653989610219722619956609211746420641310755367079495432852498244765685497279100065126884795231838726779277950035666165571332835860738719081523733216718754784922933512213522157505065538395788466436333120703861512566124518084057533043833891198656615739136181715870511938233228674349372059931725516540597731463237858896548421899585339784050986558878362314264908922285885986727187676756463119156785828161603589925240838353843369971942882843505030008966179924908620395438086226181206112697146876809893757221720320300247754373827446700611044008045449712463753937349281892244500306843646579625999916873073053613310978173566963378806663889184562223715710946470689788179007160459616607779991862389023187112828914135485812620136062287864487939810645400945128880195630831531768552711236470051650284707742048533766166909783796528953574663249539579851544799339145245841408918438115136330221591630748506569179037968091743499745807921435646915345754114547967531305145828353078504257982004746453242667545528012259811576471011451163872180791948248683236459288025080335586036087445501936383114436668878823299446790678262168454847779284742372010404511457700235089689729937757013362834077588398921747270006252939401268341385858203800303360798081878839478753092439745075323339468313548211139885756636761181639903212237647464710595469906326864854932615297789331796519151834241447121302948616505639935214602947178458336875655435640435128693534777652509772129306421682207472269496535055550272580477864404188422820499989934819471264891790826803477590633830553954697460251788706837311442620227825419570427334637836418411107442101431709767795342077873475952039756425108301990623451627152257873589274916764674799329077472569981492347791240786773262951622396453184709597703276876104706065602083643124431302779481495249204256241824662202856874179180195391816173748215589859684811278477967917750323932630809874636357395742634419165539637299930816451311937140027276932925893353850539646286371665871112832311927971115046177441844655136826670911950214257240582838377477784075873940655686209391338424125414728681855954157787689735102001203181832073637895776263554989342529092242165186387665443727899453655544882647251419972590383233935511388595433231366244714580928562140323127597678185999946699758287829095260038876966808862053368122305921688819832876503632070733888591576957828135483588221496099775371484244490068813256687732173263571720416334792829284078300848893234796980272818738519403836979735248139025555549308894415325691866783142965999414193470536791451228096119812953178161127442387370677507355548358356871326470232632841829621639598421829206873678678790929094083247296301372862213207698949494267016861960990938521628417179271603568696724399599373060588228510879360345876780153204844537588680704366542515391928113875059207208409289285966366500103594584763523135585904969788945914154476439145268609640062253745208122429338548554832662537924256383324278955209318982364452723347000360873169249003324422665033358974808795106021262088136870606265034600457779782182129812570254444996852157831912684497622842274801920934563502366398378399880288219179730972424526610125653407588063829860338874595223812991944633284532702675258916118189114708548787631898152421507496189540042668757523958556004833214529413652611035233150252394147805299074127112723896119192750395872229089170307034562444365012465878414708995244262503179807832896049767687507804644208651917199734335687972679228786468102628836450414393111892517761631983486998826227904983617751448987803535999722057437887634291352287870184483842361048637898949306312432717392437415478384757477822681155259920956469558590943201233451271308377419617949753724564612575981028568829557278152934201153177102938704643377915447190958773111091464785884828145306700664150106174846224024936062860667427455178087990196774286503121574695736636936824799680783481334476480235223456541581930260691357423954958581831141257968073975532766828102692307922511620177001214243980328090388110556200791612754894219728813554035442005728611577802932586803077492557346007126923841718976807067941542889105623638593971435518298872706143752093830150755941199203693431270608354547983180152041703895992616215798510105011181166313490957662990895852425464655828788541127021221456089383228632949750736286642672235658213928795709585191935847794415579360271951876770941506168489915472315760908147650868915362754303192796953827501892260718417482347521005505135969938964923770941171002169999105490372795021234661234626021856561568141542100619079157900674123860559369842201403403761589588065511325318665129675794606747073292765505548733868578668338761436038489366107916672813387526706885030673306616809726731841767596882755149514169934406596672301333936390432979324129876690990679794010941381666608815980848398352014541770295123271771238120206765780590308244274884230452904415526668008389487527717688689682618713263568192019384562682555502450377032383334269911465922579316654745776669176074598567586555425818072939232541294024086326742645675581181420230889716203335943569713088737082007150359287518024151742000729974920499728990563635004446360316712660500997425314020397758671277658791082488002149547238275312462384304441003932736922898193694796924030083545022368476023745998488949663390402815042261885405014845971606258157334390409823844027630990449225287868498677762392142996663571624094220546779215798262174886004902631644303373172834545545593064346252995183933068426393537041737312489186434503099037319811630940682651792679219950875225308271070749708390732494578322326605468032155333619365270016629679550003374009255401123016301726902992820896971632463225967343293902328390157759214453174437856019709673351277824319200956133127105360144711470836143905992716930802355449280722949592373280736660469724728848607681122308936051701705080027158495042943406152018206278190279128561118806743262511213180322273338064809714086614067307993831348047203030077547763190210086088187397929078531453799486446433117706396053877510308013832567261225357862237080061074198912234015134898963312656904766770751776864090059945745169188856582885387882700053176465553839088400278218799739185442406671442774423463270492975640474593009935170031226548616792923443607484583795182541118889820820822726744228232199592003125203884093745420852107616713765456696222069084836222358307334037437039200086153522388280219962214110945852662382244315509829102151269799318040643772181445789927161149373071848423417243840005809217009120842542559361573313620718706559187821195385171308689787531625275647631874559062840337321387259466704237078867653486842753863860398909369037665007300246988867013926820934917915260330026530956766141836425768163116911719179210107856550227435763450069626792205187440133061670198602031825079314707811825076533480217176700285285968107230591778803959959498505520725869142176672854540112373325412944942638337422976030858175960778213298328071213258811813266573293390616524401714786359077447285031763845070367162732083137914791078537071841931962993835658546424735359115926298894085280817638614509594003393646968620806753962183874075478674482001426997924112472834295120193706316987842118748247946338238621438808231603169726452536051354624189988643532356349314739957208159145174567327344217085751976727877472322311936807249411680874733694179482264381770328193623072366088339431832735677533889403999054561592453121247618560989119914769982734533671763088785702300181653651704520393940357577123583947151464427814302504380348504392484176020570157268170096497653112545566939208120065216194116046470212587770967171956513988162269737838398190882893361511756514691344664957911945634881840660951830578365605865888508685224968121517440007444304008773514943030130477374132205039526583031473589929351520733763329877739631315712157328173076724456755771088745963300665519783284122246783154389876470205487146002690889895044788778910502793340334039023928172212390809260485631573459479514529146357121687074416915086343648640007854494179837388646599881714365714603190166580452856518279520952485466698068018473642603095859203777586960524545708247608295438645769030921901971817206197608133058536751630461330451900763464715574620946194730325735036491805988127632770476439916931996354570940995421150253471326096133874939882380915875950418550693686573535433955782216464736777746399430767568366872251254108185562433048971136891344344039486800571012593462905265386764676291933445862653111650442808125856280851520109851747520758910450389278147518203818767359044037267476518910578026293786129180659895711931602827229639373746187981947206015059948416332745078483918991495724419323618873866870852261375210714753927294680463310342206536806404414723735218361140255584761552442141534105765348787221861146660903067459578519712794758328216173883985238403190822468817244181522545070160736657730714677760811324892799213691513122177525721800507104478131906168813080500659592901853496877649879814197238199118254965451474908998185843966131215862391425073379289219070928372433984726252627529534823804347163382681275453500254029444540088005654202241809184063351562384933611691851561405364756797563620260388633902992698736606023132688026208377533963714430633318610000933839148537699368597932054495391454947766739029587818893588583347067532924517634826842104233117846246043804363425727426885704619468772562484097786211545282840482074633707460530186395696208133954367227779418708186440429119757768985793461092299484678884007987769240047915218551910973886371623210449988026548587551564612475029892571191526560638274164458065993706973857664429500557275299981911872754742815774919099716077957274784259582985498416309153549040588718305921142730223330291992685481325284909367914476505925228717646248443017172870477665424832654964802290955258992305225983820735032022741437270528818622205716828055699238131329429019207973178309436031482726011973729676087425289572736632577939623233987053901125349894349615367925808457595177737941500138469707166084494110481601377866889983285838494069425970204784668163303161739619627844804251609300030960091458098872745645744253863261127236378828268163223960185801152556488247027499995461007672080080548985570695278015908504408967491370702642980355767971595184013805295352203384408238978400074702128616822859662223711810086087059696621665394702088881265559489682665832859483576548066324805999871955913027310228499272565392353469984676620623538730229349523501103465322769581364730054945994983417279298810691902422956703809995652796782361069113021996239551330186102918254260017084569278775298398872174611007781694631796710583617924944687607729198111926378268564378550486830101979818400008581980818169249661252370030471057760188937573256800620885671606019126418022032973035167658642097279157007388997027424149001194051747862827174442139399689032393522486464409872718767493672388967356532589059629302122548446615087807903341735041788287742560590903551750091892910688422053790372234387395659094579789434449127955745253042665503733128357343363042076782142469459739378097165908722289482382452868441622170866949810721172588083810235686403046247817354285949829832235745006372644878546641319892436403001307048943672129448478835337566227119977665838511547125513375965753727941735166692162338227290806095132737919328268030499914476597385054425599039364413397365913306011236536885689116536680018467558662662977816590611031998232514121437386505365002673227400795022605556504504836044551805162015247733806297345518818076411390895132299693029459859275784083515434870957613200869297611009164827223339981656159669636278107190304165162793813245782636856192845864152211706871061144102909255202779973322461799143386718333744833683260531571045979654870178274089509550240972804649975391975943608828047014542073111671710489555234974840340292327411176740102307196890556896451899352402020452656045951609404387431644064916020974145322717530982189617732340294771928842455279928394825396724589140328544692029040557369146008556396577684570608456557032900329084166713750191013615190744556498402652403272978829458099346108379587198976497562358146993454964747915454200060409503069906485844335015131254950748210899769275177834026438087924516748359111983920889838198710968997704853505137139842957938130977202381447528898488634957850999922978084150077978738952428266739957449053629965346351722154559693586829161214834005786522334931551964897635184897253302912222632807604578537187161595704288968771579407892557110874693003252989905716788859002492734583064062947392311803743252729228270364471505875354756537375479229478776236853482691622211514614309966919900016277471541532323487130249728826497977305374028531470475688512827848494276502135554239023531106877021564787581006872770818591726705913546416744448983215673515335343532289408761838129667289088250113583881951386242670983626300478615330264902351824350937995448014069820634422110507494797607590916270091004196845785068500657503244688927043338716817349138008442491738117463544697255038934307394183788594504991361072503826880878396690197146112496219048934737004829965620657730431550104068517876125774538107959983801100668291212625068747368629574566374486438941507901307053558184373040121889666027527482621075323375835573052397497140634164287909383515060173640771499881044984550371796024389991092948590310457178884558467405218520733401906154007648102273324260742837567107828679221404702719957362339760140937319426121189798486612112451335274506349816453868123979255779808276125887017605663299912455162032557954720401718751644822527024865698461649937621736430693762138378748294999676224251037580464180113072383513138050095059391040669179143717528446634906933358973021650601666485493721914395188028553082699879925558390358798631031589318467134207226197159936707313844956735170866715348650236440828935421220240539094449773885786262187566857132940100949751525017478143946394218857062675864296914932474469312045329828191318560462510496818203400797631544699583972480660595783324487525365028767102223723094873940938995069599184964109082302218752586293942993848748886134562540843809719315273211084986622530247542814292864397995717416592657693261442302451653397119017167773344105487288301113524876464171891246400163000379096446793565576073329392380210203944565116153339738647037977274154627164989734862744835269388744953223497136726610930405034036151919802484754664408034008132946061833894794993925973758079304145930467141442540570298479671759563467137238031199737466512834361311296117671344695686888480819243951318835512817064765878931773061570096099826928985176271050814829712208521158803918327088683189467540688417770343203428841261332486721694982098532915938792507583078275338687606643498132686907527983405862583704638455531318786401141962647794627833200401905696592656381461148059476361176721736151737628770781900317709492916705565747101890564121918641698355878674610846661593174291525986071699010264938817846793419967149656756002567520562529473999563260695664874973738447474949910268404943797108221577954249627443719764283058289415857182403863328694577046289902945301055421508024902456197377425837773492939837520703070982495762458736830978019327778291377854493744055781349471626909516044839378848014186329374514554670583591655510107699989703821472933805069092727292843367182784443573154331446314494620186106948561742608143992726637066163974438587873944025106781352974308845451661348241138398347383919433838208378247998706899059581862794665839124675919668723758663863960287772489277642944103470651359829608077779782770208455567709434585317133094973584421000854995030978788159121946598829494138872579829547127359026284681651876643953397975794811082398257933829365324500636956631415457212539543523592360368400766696977624458249809594220722208808992491418041665766865553033989371696167342883539841947357903403600283815758819510730681237308696906875844960687599727002281169436520363274483111595371720453299317668297908665046415380792030271383196484688056826317614881630791945973738221189558053267269163418276591265711864711682443139935699694667968991638033176487334049833089853293757679116178120672576553090397110325516678075765119076727968354788503262916771721969965188108244254114294970474284785143138960923945743421310539531438907955544599455470873951319144650150568441307677852832581491300187892996328476416811075001127416176718507123745246964814262837244672337934779419773447325053173543489597048634866515902148667505006973471132046970381516967759562129327984633365849364704174292446350695054905521762626564220936268211929219558224054798130911535786256914097823784522812927669096130030725592027821648645699861994592276099691747335295913826563434055575983762354717269974143766897469555155860393756810704839071022619144317429720501394245604697072093119556458366247482249313220788136856879368134031797420914752488058743481693333115622804851199097529533741860421625999987614635788674152567954319284783830626625519409558076337470142439404498348316062751613437089226184616682552102043244882305158588706308845199560435692887568458560742995371462323157254985140150973527770375536883901689783864664082481313306650022419993515974847888279623894102773826924048208516986177277995964730066961310888498132133970856758520186468845458004817511297493708521918633327228267800992722456502289406513248199946120802313732961295658872347040706962666912866868474010626812472306586763772320407821681796236157306288393034308034901575523187618423245777777228152036074670771336710215798743765673662223348330865682128390773683806674445618966248074160211675648873788879958582299784796916894967219121507100958092477896737360623589300737873328109568608022771385107355158160863774944005843229697619758729159238683394937695610020752416702862680870125473707990430025012409181096832092040060825099128453937806493834458021302475620156027854647004867371503059164789286585342517304056159913144601661530153137409511584022534331100475608735215608029209110977293396819470784891562103344348616350001316298988976664658247889271397296187430840305495755671401922373219424990127762232387998755316742888572418513205552531728654596998738196811693630105494054186854781041195361598026541951638869993510976808166389766563456416493328569189084149994691345383934297467312620726605867477778603948801873569889661953984720275396377569524372676434083919219736934549453608668893989799885101264627817756256592920888415939522045646330148853059030086278405392353024278908314294515651012183917557715079048294497168731803109005242094801705463942523120879210194406735365967196136066749699417694226827878507463044368117802555858127495362939249884168526085998576569282452775660830242951915036145553731920898805056797987066199103819769408524223065769953388019239955431178420511953557549196900218872378175224376763575874930517023543081918779743381895836040113670282324738489966750653006086885160791715890822696710220009398729516397021120711274116049027170274578222500978784597534598882185381505386599487143610136264083338451301692854218120220905360245235104752554924223135905746120922848537200806189862623718823485604773795739967539837733854954938748397786869057464986400373089020258820252918413301731325043609355934670525893051516362403839681599562442010403363369789543528478259744994934693625192291898012391104554020371079478513527851342223440223943776478124295035534261150306599849886074197835478778851983953933992036408769778877120368573775474204473456299462634382546945824115371940629569434937287374794564273194284632438171207212669833089931924790502756833430964183048745761430603208328876032174031291166177159203950015458346870575300752738014346014352981627038600492898136444593477343423003218997806496364375493525357886743107956564434661422473057091056427912006873501832834903639209141268364350273932189301914652014025123270519537029027327998898761125746113324341993416134586487858750802550305745800899566759137121987227340766526259582396254675156861868081679789019508052753134185325285319759089633644174678631911352598720728379180217481400388919579274933648413160621707385587140413811467134105135442101733521073805842274566339172853320761793862533962609088031239572306319023660295764034804968135349764102233570003251425497604750108996740852955605778678912217366938393136337370731359347230460705489927299436480057617290512005811067990782730335591131724669044464108991288661744932097975384503459334221002652713154167961778836653575482021165254648436610921199249092267621073838649586186967520285710015907662418475211624445764809874313292582997326494223738794556024563540428143191463459615042439734891808241031424907211074268525092869550612133691007623164389690808444924696874598039308139776155354301303986132733354310921637625995166803120935703435274306306502870338361697546896965644925385012391401688402407726366313221165313363078102317132166813649560905539811336018851750409956151057414935059658316216888245275289345954595384248753743428809518702867021974699558248167839120642376943758266036975083640486707084504181035289582149598225547972303419400991087118136362729489196050994002683504302111638315664509527291977616984409034280683189055361814549886866004461962466764140049687541332798931524684122840372121827035538711280070847795453148879472768197111869542725023222743934751428300133148877215677607976755660902065384857434654235101271018157846721647250882902877025397864691566299178615430397906846908938202255909272699991436297769347240427469139511190395755388413045798647256749414905439272021713185343734966480244188250467923589832686548498476166444115980135262089016629039600726029682555315313941857539448581015385439156212494538660522638537402882736099165294157590167769953285626776675491382232483592260913072786395530312515743692738102952849662209587978985452841596060770170272638212493102966306643569434306355388933771968523315683667513282971262745079835568974779584463949946394873965994494466803376644173928486244323371479232910069646667541411719658676527698132391505584630213191942925674586129188996188074268284268271009080958128459166413283551709514069947165611638424638236270409018336150238955987040754334677154012196154088044482438969168735039576580138879520420683920576673246732717808270242683059653380918317812355964224188067780443952595404664446319745250637120755921093783858154256573513346150480528748371283876366296391574011209290720571794979352921045065237609555657116815195579152343478689817774904381786808062528761150150781911233412923167980789631272028794936559031392473308506155273729416801886607803520279578645123774478538185115892025509455911381379203436399077969292640844281646024418673725488589129605145601045345599659826108068061854350524614410808512844020880818761971594926427598138853731366517938581052107903062927443305448179766986262034726156803517845978603811565684882867886630693620914431074006754334754020905327729396105752251531530662765118269719396533868832562040344760688858512527937887671346324577826748718585577792727799333768572510530243421326666526018497419008043528064586999728938007439800260582082816868381727989790346302897527138749211966083512719678353463071772303658535713429069101270316367753003211498232927466661946316308181031030550660480045941262061073419197552952968302953621297348550801129204318108873638629779912706566555891925920345831573945839683135349170448138036823060526569451514292505738296094160230656625524677582137361087982614952144116862146061070339037182305064016641132489849086567347816039480203796610446857251274903733521185963163304658623200674983428085477165324949206843445553972182556813917342754056247585105022342032836996366318725382709744248923407592759181006240371948509138114857639209739172256700956424722307089377138126697810853351963803710688203105954688615270040414866471762861231813192934654515771392348886299494018956994665066345334063160936258188582236654977858998533037327667123157710250519065640431434138890387368418359948191819586175049433956282952796570902998319187101918328784525132095027398056027905522727424227720281140895561565731863253658086322193333299448456582428784643922626328607338555394952996953698289751396817012747811607751754960070755045992783177492949163030634747051082557788073199791275284041399836994666956512386420645243045368337259988790885508392277850761010923788404773594004198956267398391060858281809798780257363002943952204380578146380356398897310478616349673200327923296627092094709060230803835900481694661779928331234579877545357464680048065093164915751154363100115484288812904100477280553547631491765521348466562577685561596543677113571472719204109252720782352447072311383513168196965416296219185311107922719306307588894647467720796086919149751295476001504745443304272647126335592835171878621518257334038253271561179099142790493883570605935918932919075727667568822399278135126303160802192929210899778958792871188266830035313734510766214763465821171208608348176044699824895823557512748446467486880921248897884591280680467658947234593145459908233624770782752165296910331060445397822202384749669009134751793168200120953404351903268854664671180188234512799632746845144334974189443074521498838093880597097951858738826824404861549997710793424193503203674412461820909528344259629837640006001479425699711216083641453767848269163366900983535015086095181336993415485602568459647875487820808201506424902756009352198597760561484211269777178939771637571594214970518892104046174425170955359405942679845732135180940452638823187910827170905519341868241640685541858378736207466155372184738639067061166936586731072299119561762372046497517631852779384877560926155187671762561868447114349796360851631057937444808125616082305257715391275039882351976604793388381903028877611980048600684049781792437554049250925720783959014507856862404438374624181161538222804786251644420950858339819905496347334141286476642778169795540086334073541651240082853785063051773185250857389114799656790955262388145070600907482764072769457723163394939365508182659923102138650106295689207687596733686771484896622684017651744174617831321390437129638826289379862678062004810601548249242105099212020990763583539292479884214577943175579814490387769281921646204153999013361066898475056288394228006489866382815231853705944046446475357654987984635154058184211941404265103248276422750150390264842182810595946354003508519870503667238371172276985738732823702717256650244779912318727309385859767505930583888961531236895872899605651395746735472900238812566356513838035565426111698390870930081003927166215061925216414603824582985217314212265704125371860815426498948412862045358517510047839546036258066329385878202067236180671756908646802656903971986735539729579597692115345722513754939612820008396546682872287592093259891280571096781568044663570308078282272122929831799561718942681808574970109019914409488154996103415416595076964242039402797400463668342232806853384241535294513376032413857487631580005478152340745418018167613175475869296600850838425148306337777696010709624364067027148566141136878717650181357531573780277535819234939657573806266088645739041646209928873001938358785240959906739905437409307089158170274557535803067714791924122869177250997438210084520317988274574982787757309083849859209758836082221157421696522431971902150806672517264540375514555080668723682194696306609238658069012460897472205381683738898719457473401927338574496679652058844170080572192760745833910543626497446731177306377612053281549774206338499736154405247131331256302956624222579092078609995026507955586503326569714551875133287431667032804702237355307382684098506588043746493904313460507706646982452219846311908061581078780155233614307921774765762364450598313113541058711791064015022795250870777074478864640843624157790175042910109825640325188707669404949708804695508002832560006831183147833193595593462703693574477860543478784108340094490175460310813797038769010366119687653737981224465708861352273846042512272618020646569906837711235792068766366443182160951167485317315716203943494883146227971707058525165271491214937641632623512866969792974880949470304620988697299692301692875468870874812886072480815355406893296217565040817585282105992299783570647050792938459924138166826292484011607375209068624965260854977508252211717124333981941738191372481768868690723372631671096890588738551711930661475309854850278036769286736221400757268054712878396417026826949290254089390555465734059330525292287419528108693594310537281861329522655895028072967705152080332940131380110302718480799567948359528177071160212791762818630534819941661543070502511580863432415366177396322061315964511105448586036646130905648344485996506369064990044702438877908693334804193491361606743634499239942968518120304143707990037673870495052026274364320307585225477340842136373547692139238814480442552809824230544207997691737025387517496451347276203826496219131982502166433164841993123867270275311319102414116842766155943264123796141637340377338148696092327157355387353146868906456924315729027447356992572401478932938216000702521113157286979475251902231522486119860079310932277812826476907332808994201251744155605507942891062051162920809824117324450518169929600266354494713246017263545617372216495419774201501067301547365066294213417316267735518635599271066648237552222328273118239651680185783012117743257815164622532125251061079773578869254270148836769134256227719621274931565797140663332502721133711187091840968415540608792179920607228639721632175890958721745109522396185495697077171154598903691194473073488223089751073898274686694905485283668078714469955445372323446416780594314163616826102664346788862202341121932502960157958669096679852542372647883737919313848602953111300743994717058412824388700241297577995588121470181830469438201326703344620442381267959726701642392016264440326951686173859156798578565444112607669786944586347488143266242914214712624837133752004536765526316710536363726288947421071508526029944198853411195504963980377357067109164112559739327895094596597985610050218285909029048446393425661556497578645003821937839411169155097406483356010524549818585791872826919147665261099608128643743129789505623056307750897876478967089802471301227362141099167069286108983716838642494908417065238676304341856034278741826776368600118822263165652772572224640766908117006588547020463714154170935689549702491682089712272635193425847194706805038654638928670843481670279605650617660540559521097991360676628080430596960869248647182517165643378071546815311088677767016201408308777648099558879286721067264618522010547036063938968066202051928598480923992948027624432952335425584765509299122577421233117339285847609031015543526942514533206126326938047191612472312751681178869990428963547280333210531367693253222684460053066596303260616176695738817715331077368160258226666967084980751368706671517224748021715400117709002291541558239943096539493540373133505155065292463468117967062316720027112110159343302416464273181462739218970971082550274304911093902745206494248063893636130628728253063935778351398298476666560822177025081056651179667779947168831461425109968299522840621987235332947531919157237744684042993799601939817556398023401044973622827107648068460669346852116921193597928402070477780632592575808879547297544331681355552773405558692470081615052511026232879945065746264759200822899970147164861091998083187315684098924234651761389372173360883404266443340176810657853747756191696915618120845689074231333667713325258210138671573692882495660675221439162712091983501635716512449159664083788967387863734358025764533108858095855345171488782952798050342506982296379438951658130521948716083104203716424174809943007497212017695606957184743379931543493773357380144788350931827969563824161491435673443803179577453720867394140984132112056795362089894792965014899836600932310990737565417919884984492778988387695023448337355631236595605781212918095745650429291062643154713764495240937615563767603621941760532240537408937824932279902563385265726238904696356655016351809781741999412046109553645560140055588811154256928441864921468413751942632066761620182101699421503066321495538785123241658631669010497148303218592673550319505940274683102499253925642029494137667912418107413309891760012283153747546770532302240869280045284959015957055946676587803360681699128594613541962492937652533031151912162015736557354254050047296115507935388121506524250629794944397744357466857223224880346277999263547958270414488672762651628379966165243649669797955099143760679294658106367333643327065081397616950972214046915562562406830440428654332571639270371763254704235345045752280181565444301902235060596003594211503083101157647594805062034197630689830227897539685974388146321968772963649897122636369117244180331590286039485569859537059161273143164988191246498917685102343512557236929826697336255094556032014019345604096919129028026481881727145170146881615582256584448331884516047149904130230723681994520433646177317276747303867650326276183702074714679840784590032515655615387480439248152537803564024017290783601686945098834074375116590804763917744354093469582994890628478803132534085975349267917366266724393999834546819896393648740720691741642299549932176825517868875386458584316578555265265451748035816344359835621301702384566550898309216286264274506356932749823081989169993469356443191238635123921462268572568615412247636924420728355368690797050488968817499414032902161502835076538482855575363200703497933980507964396292253083354600712559138438841881693676638996882424071202643712119495882219314884665194137834078894107067794277174173105214729899517069641390797261288968380400786483941522190846857338528008961047055817053702807207045388762959541338501665999549760149116349591061778680834408355371861276352826145955633821812256000950061047792224586442100799838225054734348232267752232617673506519807715121765480288251597582119175994234480272824671473369862536802934370405807830319409051773299515992416226928527752666026945181160924893435308730567756453530575910994742350787340119459493074271101362443897271094038892439504530777265400467215382783822196166430912062029491730595649174412256690895124867051771844901632458852962458150189683985783202418801331759900543566319024535826399895486373779900566034487658319740054188852398833656215619603184142700248847586944108921868485788799912664770971277286394326907840396936839670646566874570033760716253987667121056865966846280110486196651444712987048003029533248668687333829299057673622175642344384955958707649676630165062861017967860534644685407394490437194191925958759983350228673981456778823923610099136861616461517474622799083033593893327923568807088046726863539694501668005685479475475146631921224204031031363987696934404284596389935282747025642700028858532319684389908525626935161758243981260127882492746416474300927976831413552843058054244514754391774542596156538953070552551121174427028237152417547951009165124071413259525293594766162745585000239579582142833863893891764391994516209036677161107979737240397271946053720165523324954626813508158708653102660011472308940681408745982458636744998270823526942109454645562874095618168575594333522568090465961583323127749654691749828160945905708255884454665996424302864728618202262918737818635587567506401856992268443742295871653327006725903081351214140755643699350041002960005629236059231130835806995843306386400847935933354259074257307934220900012958206151722462321892032246330640217199665938525466832551738720341737062207604744057209573915979653456456664965407701027383644927928498178995277641524699510734372915317041269604238659386181341254853336976728627395947632892729726371890696213887358613209265331592712405889504730123926385500011210692940250988729305604348001452840929641380394485826608569239463744902006647875747622127894058559189098139570874199720832245606840402489094398602401906086724519940478785327138228267190797267565816999740335166497829410794249703932450275191588507172082503295123044759846138291667117413077778974030159653000837440184493394094345691304454300983549872785407686400247957484535464357728164823037827974326202191498309160834269452609459918805120523184716176718029602694219952488017326852281897294526152218947492663218411067499470653401553337151541013255859476756444719121073895843613810163402528009333374973925262625793567231097635618607205871995347067138949834793128483273930617844900515253393064922624305089002688865833843621011235796002482773564244987510239182875851416247210742294307348356364407359625068516203746780986087420137929791140308769701684819483193287455031215756341096729485771788985697101855011242035755748430986978870152807776101435431000677675291909178122225988984047525960856364993164514434205180383341334978549011364845031333838533637167755455089143705149251598251753085646257839467625233068014399985740446322565963764418457839473654313342798931212735588038650091836216138666552459260791355016855910019948785397431125881097492820736384713683486823700052382983763079191163336183156076291146398048330668444880284011927472280471613199789149696813176497000810020422303694483036069805522201094723213730685765346289007432160817528136135580455270372913456760506224725092223704381942421657938881605001585068180363485630692265342099373150178888495652502848126720808299125997731581885287167332681038654829156704275265062660976108515234395222615143489896385452794458068806733898999459257859945925581171958842048210857870645495085897640497181385935689564540591349092182803359412217301127036875701070351757354298858546009720228367689509286852300794491698724228021599572752228850411889394344771749183810370387036120336403243814306992501833751726468523666453047539830790725577150708676151587272405410176372165923348686165682205766040809681430909779537709742583117269113984355334629922580002000895089083932748123929360367933346161384935676196187494797703521344689473104856967694565976931235730196998095936910048223575907093207488454638880196358355957001502539408334031435796040634118632355682068731886431301690279104599380965972371243249484193811098955554357514761249764454697025718380190807470981080593267442631583941448326491427184237506947233620288145006701877273012079677010886224096072112961956712407080213290798105196153129715409576688468228645698919506095632529250011784443958041629973468197461782071506827588541440826372686370455666932834898042793626051260528486607749801024062910322050606323207848907066712861201272973285165912836289806482815879100753130494757578067761362001231525548685695678002068757105059457134935914413822207982801504835692370777353244477469683384855114799093186572925526381783912804983823099059211522522941747686196450837297745230794776491608764803930183940216786096791092934239626699419513832982578702379866931827110293991199730697857806866260415433023136691632739058514934916156724821170967446491769475606750438697937415696264535220033299457473623298214521870311594174357961815367666644335784783598239844074753942194831138491394685270921061276788307221878544280997242807014789862043815015802137271398459416455901326910820864454669043156341961812448880613005080239667601856214280681753664804028374099993439278417177127950632563654893431451760477434565120250945268973438782914499604216600468803066121759077661981768713817605835999123334335555231374539060134534102224946393794246583027491999566173410175649357514668061825423107391453391473570733506524218968388690427793261646479161140650704901917468321445974542253166841932633573685968887636855151545657466415571821406565452634833909196992178161829802130120075083385547882613437018340680819296771204760454288522028879379123013124412374523802789925476184695509283438401975410695302897660369099087882248275880564112887271286398223775693851916650810052006679351317750547858681760377774957723787325943873039157743283853356005600598313890088442405127564980485179779045328571841958988703484878477080403200259002741525274277674324300986954516307931216009256754616942872369856613796720826335677341575408965437502165662656197482257776708085056573862970159742318954577637912271238602428321209110315972466884149795287004320952608188958719600538311493732656826538131613473388562782741192384883911386289341126918919622953213913605943385148134854951307386007127793187548048565857929300600830836566180869674347118766417804111425390552941350025168194295163736031115886597889919489621342264140672239350274905277048065251409078374002664156068022063230219837555614607223763523776270195823678124589489763469768583061127201504652021638658771964693500827746358075769196620802482262173228368866487522643558609018493996713640520102152389448643287299301884909503934510970024555255255028260978097988694953413267486218261423232741225510305207973812602499309482185640400192565418153534757401237930146212452441249055730712352229026472786276428913122145497097985717299033350781047734389751920457014375376281523828601976027988948375961492859120314164948871310606569198758241713646480468600517078536457509953116925932396116723328653889475918669914086392680176228048356796145315257120628225176887445616706827596106243195660309244832838597389831162507974889761967818196063710537152983159649125058251427258030895621012961523667388520899582399315128814740488486839370537230372663048724530327881790508527010090024468342690996899974975528260281314251957294317555787853221185629798614464721202421715464158494119138437187406605177547784176489144382558218124749105295740107684743422712751903826677701745349426019008049169657117973389687812188079925423737664996889789350546071299303819783323609472647152510318286884474266700747447633708486570266467611099041404046734658041436368444307645969446310929402722621208033096988655373986634818721149763229590726930785437153774469780390463785843585350634724128771089041479557564109060291814742649953350845196675033312493593715196754079845210223868260769763629721738912429656159355153218846009759063185221182617982659744971674529215519274739503692710052730878873347651019204583624653843938011557717538760522282803183977756993336408999825399494148108738619120413600204336771429349668380326618181764858161361308221808606551104380680291562151615794912931183865294082252412627380925775860411898923235786301253173798324054586233146350407577012018778352360880783498033063725058650047576039345682873569730386382291085522282635258854128699341507981518889886422374363605554868314388239631820538029507848808657576314817290268701329320963048353739767594140792905099756341712330505894059454255412155688250844420640009185712165671312816328466648640743536153286543318822307088501115516251403948938821435942031384430040772101141952873229739674811901140318219615266823969164789147050543508401573380063245939677123033365894951380110209231108607218439316981854559775735171476884036903162842557786137894552685906781155115738742728206624223018693172732528289831002260334243258544458590318656103906813037981688903998861025078755936743328814127336751118268100545485031797967414040144912208740199551994441105791421141443911732630723076733587857185728865368006787974553782451073996795585712981739957818022837981160838510764827772303026391521245110143472749254779099703056521426334924129480891150920505884118527253406829737475486368553654366516430859031095194347763986074634154874421463155491582834062186078559013623242905391708912210032198349168248196509367557499270829651256462148066805967997695939956203359058360184204761534412616802783371020616822045933604611777215679008543932348897968178964395895170081167585704998620766568253184870941286412928127563414166256306125036046219196680967747055688830868394886700923046738959452718053290073765716365459238578667857670605778605056146967515974054291193442787435349252013957389672892993946952343478122904303162320079487381269388933291399205324107854056901342793272482128555335168423934550740414953334821730979131960373031961142729594325113936654656591618719583713407224530520123031596338953266424551874588046214051892001783059339437075310685978047289716576055229621736292381814012791840238801294708025759510787783621340097425050155158318961511092967977009778635828161708803656137075603262947268367423490788464157770522068717987889067915991376542315374601974122241755610989921655044186594861676345266158560547484602336880377835142130891902750339647783823844143578358312589949301397803518162245035948717491488949439375590327219755887904237104682867085291413857721122100107329701360746330766426020260285669176513873484788073139834126331238005914703441292698464333114221631076083833431865759716390743976502064456211545564332078863879387809752988902488718956175817171727518467810360303686229737947999230113767491981780640799370912670029602155000110390380071779958455517783553386952576794542852189201235695711495770010748021542627127321966629313369267034269166848614030862109034167383183242522502836104268987640136888232560710755765631646558079317474935120528605358010142658070284095566093983232245235811245066339914275469134421580340800747024038955333371919314844575339448417752844749316063657722541762451401639775716677445690240802821512603704765421519179780929864841660235126715312427364806183970133543664757013866439750342019863628999939723520037337268001131068383296471917506104598424201016525274755512386201878189166003037567340088529726373245994930786041973728636199284219359461056455139287055910940350369272271216815824983196711128691777106132232367267917908177658429918743805968325532918073041448010114374990987023665570949503689976358055039953354080233727693301158194348659438537858833726769517524648192472333481929956121957180731132897808188962913944253982307407205631731009227254888499585958053606843233876030064390963968961830557363089163794656459511035314907113167403975147215101440716287053082706244952456065158977675368336743419073051623157490721719846408929475951263348547785566716037920114137255831189715505131751018130649465868032606760295797544137046367093794048987779442017576358345630520941519117886418301290597883039973759693903887292874404700226830545258678468976218978231429700446894473718677664966364382259144778360262451437520940648284860807268993082157969305208307926890850816772870406603386660892155496090243627996008478761052708994151417464576777367212777758387311442634040307310369891948491535151787205190471790156471333657618928883327594776449141798968571202232681480737844682943353085566232810607694264513191592200666219861205756633404016893517436516403103003052816614745576825924216310852680350818046271426687889583181502082291149530262833153322208417011026026268546528016155545329329733361458695160221101620675075989264758975689090151295168089287638875232042975668882893328022591598856586197012577275402819849659491242720657395982274034863259289062877654769884062197953527271646921362309816035874985253816838796274460255303183228082219649061302661413616467825633143332864116139701793967967589929175932790200539716936046316201269016918306266853728004292772032966866580100250541607868852660707341184561521482782854743113163762912185921975387375738840745010595654671832414876186216274620465669717149104135473198291409801504966541667999298007695181957346457449916207356001411516021196209023749084364646654152674807348048285724160526808870386675180095428679602935732484943571674709141933660213676182000573142665980122565817390187226719178399203885838564221373806869610794132768485005851649251703202537363246286691567328351232247487341322002557190037866508776422566051460808712758894999653582911902708394683980797439102437621476947846648652969297218861595183427006851105895528156994043227649176317820803286776434013872653221192574364534010995048275015636126507616774933992197621506581960546632856735602793619038356861705772847718586062437476159109755270136567035590826236427701560116377139106826302905302500196472372041956801593694647222100177285545174747299948155241398538626780160176596699672866976911496491740877733724379347723296436679535844516735301397646554805299668584401824647559523072270894514303509945800778172819422768766449528321661768145716432666977340758962363183278872927413088300262598677973006183799073426188542163057767129549488823085401710456727942690319828496732767983265497001897124437489519804530128867350079021925408105742240825298108995844203143623062519148260992616052647458594369414128570259718917848053419046510684597224011640195638531813966754938464660128764432887267325181591654696441157462481593623565918661930910660882198477889032868058565556238466054798522885518795311477958164528971048951855335241718695257766807965867936694361067434622327506188760067611294656521417459031804962802931039806223528515630716664604085513257248814297258333671318027448333469426613056717196264656351779923946641870992994849177220111265763392316709188101794187072127541572828464957241410083080133970933099544612294445521066441808445956718233040343029306202212183899473198050057112240555219160936795699281703485014315915142121066436311634288938418579140048834735773389481519833120269261740779125178748459259792408836188018434879636138201763741745818240107195195226358437000112427068300955618315242415824903372763570370373320986462537643324764631107974420375551621994091659280007706376147327043396599331866819940073938414489445412257330503220804078594641609774304764303778898135452213524518688034367630029064795570233914133368303933341102271379408661864768188226544800086356593639388905845365800572238047777828032417028832010304464911605648391773505996757203649683442195313350103430750013029707419085339611475671745547023717067608606699092995433135700564738222733723207371513097274921079028053950413257765423616330174728216093783254666563777196263011953166346163445487949257775112254258567880861942480808566715471697790353071867787752589349354521181545599087389057263050354875600521247316588184758437033950128525794366276021485005348978875039472931695093246348865438475093044768942665240963074310048252200040517881063787666343683366706591056191975721478407634250819423750860674920035668811051974327028202245078858790906629345721799787765717120487485139297736071891464749769235692319332300434771685030885584237928108053964413656229907562740518443244128397379403356317637517268768914586887127115389002837597423628315184269289431635936009705320863753065113903409154910071026303575038148031036949542260858377081951951300932695797873129392878912825080063231204166531379582305121819952712493427435844885898920637480358014829620969771440627676722525772980200677684608857222928716226830712847961771704926006373499854542273669853691623377209048629559308065707534376248293280816597063345098218883075270820839657244167991632277993842549941173525000571189496612933792465876855514412668548657341800419109595057799969944717939294608245421608080394940368973463225035679428213132125001791515826895264450682113809810128367757150933103512809202008793762175572640799618184170867705266072659066829112896127001745535163532026153903947970870161956276992939249080218155390976547216236830313460435313187438803339693112782204041904436065843416481142544621139175397773768646265771120354948178450217708529272451962611179584551343280244605726590865439506907455671960434011777004617351222608646084585701022409154778714199426139024680048731894431796235329167694439076865104815938498163050912276962368623148446874221476153687267122975968822577735264448760832665435352101265095235916991076274581187760440115233137057305348188582927840939731191302128610492077123597224214285803723438278952003942473292126843822611810894812272935636946480169062080482604417091798672358474867994727743905907487604792123291255155948442968672049277637402248004890406871465767554163413203049558858050221173818077252028350566836919902477718872471700070151267976397518239383307145083409654716985041511907677456722582277815537036378280099384654483042190495209430488543086687200515292900859415295273844003806584641651527566579934664043159129999269352177665354412920259346615610786530521000863779648990325208992063572424564479995680931836731451768007448758176122087919015075127316852835940898159243269294363486939223965605499215452018768228449543237279943619361256927793320183424964496535945322940971627713461814525691012141386400543403945696521169156802164211851513768765960409467229953095807439634805845387069064719133229581352667797058748325813397533491923164873790269682500722304134066183309513568545077170762850190031704545007710684180384102459167188464991290627721724671187958479496492977554293341066716822156735818296647582348675722159670930653314283402737324937267179014105230471634257944933428986746061041493062449140790221130777795008196891737275023501777052354011279632737883023983129769171810190572843136934301770670281547002325565265923955988591994433617306892110522312806694578986478354690986625616992866874925196202054934649487744013404514622686825701836861897275312061283403048980205632603709165048824920946895334616057424735768818941309300811368592040041074655046794187748920622310186143555677526279071500275396165376131754474808150086272886233564298869998415343683678041863374783546720111288897596878117982317945537195762097583003503185145531968589158632618889526694885571296402194809416440040837193022347663474370898099635581462200181616874008759215063580161893802068094506640098270323748620713272807512870218282684506378687782479565509943224190077760122149352784635642569441401551981093107221816667975921990706497131109291685592493398654525476731279850737560565971701409845315652460833293783859006988490371386435372332817700570489917961839676405779171079111219610791963475409739522427162235879998754099608236001119735589787143847090246009440773140851381680820687562027873560872380567855093461147857619788007181680223665122536770309036932530256771299552780389046833650231709372484683352588734027335661198555958069836359480202257664154134719450173174631688408639313812228835049719366242838303294859711910124506309644899790831640371598505492482876609894624328923801831348478384227003577211263206268972620226721235310648803271547744997722185492317942999124441777498532593333695525852961142619028216969159625848583928097857518275552420237709559565805362245008203419930647713835174109066370434461587233423725411520592422363064266555819580095570990604069208966168525411563350219681793554922358980833094146992408633345009696551581583277485326608668525400378813393172604179112396154658402363289120216966846837779331502741426137084448920579123949452093955920034272221037038451882363868156350719838649069791933422198536496528112898715806190164525644241107854874695978591400005101459593630763337758371552563087324849241040988379146820483043649554081724119053753775037175351372726298411243502171210839796905605287695965467146413527530068603760801861705194961232726446154391961847510294028575079489787080129269804612948385890766133000392569161174616979382333245499728858221901250513676704766548572955604629631740292152962224538091380383671580050737297419102896342103122803565144921514793823100154994324753482097045229300243474137919636082529363049708582762915933417283878374746423145710765772612515475830043847520184091464088636699735252398683589646237120976907227472177134806760967024306392022083271271609995077863331891027060227631002736831185341743035362052010522845049685751709218615173133761731418340907258651863348170795591285561292423310470118826667421835760992189569732292549598508190244087188926191056240285395374752087858725548153960297163521759869845969507914150242860836558961310063740094153813206280739213275236918723986005376616755037942079173210848040437083443138276599470977862421816971912757904427318729786220079635931368172141585147964515401005243281877460489371268672691304914561865303026933997727051842577375930829548794165274583267372097374629086571702537259659787035888421693318018726523328372202890417124211496333819069413258904683550757660774094647456191608282761347279038357461375074070030265281752482340683587810555703340492725486023450943680845847720447085018023435910307448256493179128501011708273574177002831010321557970778274045860475310083877386040645094874036469575805270808514763022845812826462247264888449188626329868126378096606205874574236352251349528697581412410317716961119086717456725121457383925669913819285704366212575812359610374300748779192634647735652157319130891661216366230303123484598358454123525992670197772690192230293285086312007722254269652982312785842067419833898378330123095580685721823269559125670567611450101795115820564837778813920007645352926954104139143849307714739070081595901614304099129328072915765443014294518964952170350861392033798165149891848757226415939250906987196893781103832395854647656448610794684254030951651389233750622645903940166389212915889833219664658890287774866089805641222404808712003152544161999601856096580155350074878443776871376840352887924665027957542432651384225020148415685451138073153645646817791596289326506807618228839148842184340468483954387454993527591612452222469936546844795956094879713803102159589387007126487418520387645154122698920569448170243117352978923899748127979859146016019161839078360939866453758429720154100265909343176670423977353027338344874815030681241087589565404286790749858230016255283785834808531209837390453332225252014795037455489109095983739807587286385506894970822479417199810467123464983170535412109747983463362741020603933812559279367859875173868182995156764821598487296818614399027902279120672142542370054558745283749314874731038712046640763233898052712493667917222556072892589058637685737883526842047064809816452165555899843963468134100298408411098248760186439627345822218396750625872594774096069030918132673041387799311275919657299229001621694913033758572940610144579396197527003380236785490454443511917650033486753276369126020148974287185249821759872150866927989507898223365981849025802386993855742682491061481008152867119743324346972857903340343546020404396439462160791839883526190177441864102141726770291444406655189175608960361724657500494801550531516092975903104940918292575661986233063217286357125137814291857694315219920636799770554766885262865592112343962153206746481733719895551328000151247009718412864760237776884459335201894754429449603964504674012612257123928694509696477088267615824345160072694756066887413958537900776547224170189537240455965769047875261611266634818711157838587984874646305690287408550113189900829214504443309700311452981308827993291182873850359696895429653099452340063076700025057601907333545551374001586452600456325019488628529405174339807476136404262325541750775501637397632750246117244392104891353308848733173024353557409690974203029144319411999735509056331332233578546498570297493555894910077412989223133988919606716126812336263325926997002447519425017618138280568950278899224055825728471311501497055888168801572192532530692811232131859722769180192414837799801244002706854782591856180197341844838675274181092393714764536184433020138124938054885374929240146809271217570392642532009729860776218515189892211235322288952900462883602577401119041274946431521145022327302975238516773143299059536575139298649116748057881046717987403766887367328718228609035790522642816502756960196346627457733939415507558453328441006849323402079795875279005526583022449426369942109421110723626645125753057736638793985116047297426456569426899482213355660767907344481559405875142151052767401320962371517950563624270971111594203526117156214849869903672393402830970030474059151163186980653502913238603620140952751888275705749186386963124999530362628526298683877452594649312710351282037651372903370690976226159124070514026226563617863715876302672962778856556859947696914892586710910264167969307656691166585148223633483718526512616970019681919521414366605566237878905070173965234090425709136071382054774933327166430736241292887791266292236076215218059350133596519016228717900281159980925892851150248394949052382862445937234048098441561684056336241159902293972024996248065525534960802099232284663112648237897575205584931387455346822941010904228774987161446129148314236684651596983099794712881592173724989585614613565236820039236468012229463755517159928472549115651467300677974950536965057995229407025233067785806722557929858607990777854327673833369226227277520662207934914927889616012485694365424668108442740666382937221467079043229467212213750963399109249202400859005360441171268406795702670049129960221809261899142723799895397940535021409630239865550157574452004936940075898729502313100306803535342359470736939452771226077848753845945439665636605194726818080418060924679547076869296235474828332040244132071942515756331354412907595310171925845489728575303775972617674154824123707666860389894497859071084983721981600636726240208817512498311093311077131237025496709378674644635115639672865556629241791577359005055031945728239822846533236381980910270567868925214394846105466901866019071181720086893364589903645796174578328294671934695717350644524652834048236062240974656019990207068628156001299442458382441000408180468766738194640031847526728195673206711843098003545463021056013920070495481877652060468344533976651888967234869485322056648908796793740400448158275839694812732159692869239091860386489945597136100200664750683956796296996063436733087796377558214250314721081784448966303643346666597595617468614108942164612533810554238922269417328277681643810647839478116137371468028135760194232118893633564066553290682562593823342825394471782273039399528842791559919761137899159301461765813431735472594336875514177847197845109794730912192252941060812333579258633035241430108680985542261876622949418143074070740405424180993433452159159408960784553455320711345259964755698002315404293355568866628709596567332611976125282658606407277723596918086666776227436899113956741869391799268053428566292524336826322462825503949504493151728104100864181950168411063047136363398693615094533476788589540136931858859990431914390628652902880973764210760704188421037832299280926475936474490064381119014295337623566808863644820496153106792087862895341244008197327705773508294116323534132800677968531916360899340262759355187656808623717074577025049625191777366443766566938359114645099789125216824497366763561694665187896304417465660454935251718844557426749622097627549918493284139773867254568033828216955670829871030249289094983574358821074674566640299151183012961092758993284009551321033192307477163925137891300273623451291220116658737546663252043147701570132379769867348171619868086731449241329017301198400366664527776239484415397593739197973831019261933996330845768868559385456374860464069955826270542747665726728486782688207660776150236375239973114577249587967914391367060996141888059208192127934006054173945179245073232745769226422486508952346943820430647283469702578016324268853514545608945580249860644321965529967056795688537899159286780713182059274379888828553835383357271422448801526973697666294083878630650479415915118218742854002773066070001331677707445093815950430025224836071014301312180088404089029723023876908656598155465514273511559863714524533385304128618788245752746782983650664465985452025925866215898233031533859538949717749515421188406628699134221762507874877869969077799595633997998888634133750734942197862437951952307274535067383314821793296716484439912164512182423444624498592774351785996026599033151692527030718471016365159139010834916984647974048474315516011263150789867683758385555410657863264254197949305567026749826247726155164841465380354389360396764030574145541245993699975608635602223602015026367374163011576791354690417359763634128366526621290298501296459823151259165736386128529516937779462570898142161447847451847183868534614734982618298997564086986452287871503929693363796992788264219590316339990069120378604458965437883703668923041661638842240830789652591490198274161391093033192534649499112719413896356525922754273728838882280541365643788289883880646643948757036119863198279113338348497729447779533207046375779682810118374801434128034358944525690061185472781362566759250172304778634899365030740789828727162381511724442082449905864120549587102186573498637810982787165459965375679499507250902137611341787419684148333001715352888479085691474680852018899434837027986874743912449334612464534668318675237106818855904601191997781596042631854139204238127037762791555953667369709814633145316212720365030178837658413082120811319784044806905405086122603613387431607649522214153914250692008873241961600800913817829050172389749796081406058415315732024842000497010555936996785834384912466826528337973979132480333611334635036681845657643590063524541289187209831557179937667177031293292244175619171714975581020072024083050590139029098961787745400433916880957414245992259646801521325746619032260271097565627036598487204427574336131662052915528944136648684358425422281317195918870812944575058664647215540701275169668958135713204589759515694398581085996276487590668917401627488594215600162555020559306685817283700049586508561051074658268430029963158576818978992487566828121716151470898289989522336755165530683311468830924767442307293559415790689489358138803223674568861559883964026895554072697910712472665760616537352134569933655990663398937987412160059337392118721329689708459925349624006348834964394313131457515472497465480461734262343125358991549507254042453917064987826196081796593934394762990176731125712575110039516010256189292911677642818762254639121821309682473804415333702549827055159694745308116782518037407258188332968240419494998990880615042267033970445572055475316421327859269890095303066705795478708836486405052249192946074539505869016870986470482322478751266992920908430501775301150961741631619323562093176439613896870293080006476382328036744486245946646600017645262946899079939017690102560790754364721228174603977230946944356544000802119846149049248309760472448629262697399155187635648085036273744541434843775216987392031829192503051633968291922149671575988762756849490966553256785994636151763741827850995532173261120873434306123512214625087400133607581660096651146136664651555847811156752459248820943157252019592924683189574616932888871008447733656026221181868712519401307056262131947676918760417946806551723905465118456288260360438979013990358830105380639841912878772181191804548290844468184994447568504980870580573632369196873617549430016747171581717123020883264849652609780002255489207389466522649187759081379525510161027946963876128070277977743655955646953684237691102308697577470867867716579494704163920919339731157478322088210892497604642640451541271866446565469639982640427900160779037974899917130376921380928545609395475766758596051143359765818079499835271211720097784616385199386745752893208759602519052051603742735654936243760317853574208507107337535940129210907512858469445072356068121169304639440111052228950753314872143737330874748696759537913884067182480236612511469761599999943033439779712914294760442795271724151566773497261012632574010328599501246743475926124231449151160305930756713179957997141086858782725388300815459808630289549894022462640909360706388892057436252606464929650535701163294295732164783800346054565783914161042282415263594515698276822141079299176198128366128400889550881029643878294497660307825215670433270470861954020563589962690031024701300464822489321994701128378095364693820150943130403823349428161563410282816927634395738415039261748205374632081720948290581731488803070012651660872211493684902760101334312075155897684503891759248059027027436856810271419305358689693353397165739758870395165782416163340247392099222296155630532360003786716277220217675635612381985886179812530412646023691886264564925246023095425273067659609144895441054087278951952520857605621924991383176686122744873385834329601193563765439666690176847116207720883691056129416901843991697541188195663109739369366107597408650152793402623737069980742584040602448793191079962551228361467097668708677938141255505193832500243186201085185439123763851721009519430121746574744101855446217922862837606744975059242647323631657177343473222163724558536786311911997269299477433907499388299535637945574588893817212506277683343784684207146595605453903997080249488011699709954563078148518277678599817030164534612016952490756111160199787981406784377915789341330979494198722723844152897675960436280651474278350194934042740658976837884720365969703637220572420425150258976150273242510725061511140558603825999523939003565113583256708254820659946229918701795252696373036344963838658806283973693014274589794066821656980535771872263089372240025993235051563030204523948239674635417011410186185427719116100613746903137567586445598448624388609570450457456658784824988910810795830951664956597497552553698551421554065300822770739399859364058357064048269771411942902864462777496401203765849416215397031761937667010143335488535211563876376040380830267981145684269838642811101056460478037968061669347709891445046493897903756405839382365506096481589441400907925517873794343814355994821876073062546962118764325432446831502185457605376799156991010041414130966355191441795927571157128763368746208769166778128717876357071652508294121471340046545326939357550381609725156373250936351121621847140878025183631367653236463979206341635606017816330783790270153097858201622300466432910330604432690732490689595629160909755692638812025393703051599320851467952301083488707651330843917151400168476668347709184501937023044208251161015095269801132152737634042448492974183190364882316390446272279518202428325276818986430968659853193290810224748934256517693577263368244145862499909198920647688141653606689157929505510837377621763904539800852755922092758664738998665791809048502100826384134476279647934486402878682920388407682756262077230617029086648091706582167960913481292694912276993798535381204406515431918789710187053637704219011388237735680367864083812851021682111658861876678312315115892963639580282291543817244969260773184806664073670156985537765443057592859693455986409174243603169461861214898859438982267606688924922464864236605343818963001229531633546433400626214700673634732267677715581356444033536822202529059360876773234734396213386625857114254283095403151467958440183309569755359460767298560843982114431855640937619079409788091797185714532551044557366838295442237597055990692563823195874953434607476297165334989763109030831558179803776651911039246696880454463243512095732132232966530801028789732114098838357049671373390638048641635828370434018874767839544795528687998110115062460924076357615941648526334300782299474970522222436008300198235672318232485612359612692912454141851256891857982060196286940036913831626145285122486188853571697052755166653699682976531893683810253281135913321536756510666305798653509025467230984571044622847718317398781766017539137514668221174233349970117914292273316401679829676259417541217733644198159669484224088606252024261584975592633957704421506601844137646376277944175434837060238202120409100519360593647290686535520600464141923184499174581211865731352619255940484486602862314737591233138503462939855380548316250462598325050540773155583556516090034274195557192366907735290031704032685751446283085905287883787365761198082235198848053017527729974115975028364950434914598583742027635492557983001292693712277484247339024447897976941757334285073359610114846605616347062123862471105476323293745885684701379664879898288577826378184303184868529956747053983379297831487999042719163176157615005006457266324322526365370157552981123048135672491974892197371483758855648863003279320059222512412032667209825881198763194146810257656234916382330177353393152950756088772083062633706592989678030535063413971083155247545247732939467628516537264174206985154143691457636986794709787097241413750631140677672287674211663884439228108600970221548540030914751017747787772256704425761536604411196619704712720469560265256521200352843975375172118729567322911986092477459890084807933680018999387521901328658632158271695238528077675493146921688846181701004778633309370861725479798902146888130550888928688340912094722550488175714017724117529414245356543127746292277983780520367556011383679859565297121073717224804190884946921255218797437559668905964228227023689908272323528312585619060479631231047698474246298549933331520688896342127550629996225570984317556308557488838882598114741480993004330666159109487653773506496354737095894305413448009494015629678410246695613993809158810338217141995871646153347452447183587415461132199837582966635301826469746391467198406912866331316236505910188687531698700286657098096807194001775215407453033635832986736452174398160513989977107529182685782092555459182675923103940546977665397686594732147011388513626537297622029246563713049982567460729588150673311315240333329845287906336645202942929628796849549095755519700807452690737803675955875946872119376773961894272409828607502368644593156746522861902641675103672800410258035123771932060226452442341941393574975486207962599880596855858254479829507211085122916755901736393500812838630310179627014875687332011995969578022333809082829307250708652863964292435226625959491376506944710879753758035000250650744377830660563280823769696679286719201070044019563325240645193394924273342386962262145646396131045649496025524785533236441418720770959184678357771045986427624779682944135324234607106051496965385576506956552431603885262344494156451102199238821281864030375248221071799850102998975247223817540566220591094257697406911525092967575501736575826678608726095562648631035674807719009022157777976544447103880938770428740073454796030121298297169441147047455435947061964497275392831332701600810152876052236007483246147391692280719910651456468213109777272573314596105203613078365186243650702565883714808799949214679297480984827016387648055030028152540359729915114722668190246159571931503151070311872477150553978168403026655584718978162733864296761389565844008945843742665011106265672977685268772629485951815351589188693559498203142735108955108352623648708849172537185686914163951953749824944855780753171033012243248450428515143194097582490526218764125781355771712763792661846538716669755435712838635695384598892798120042359722981764949517582187635668833144271457797901426939758718462042412491211876744412219169175980085146814332320556276321024360124280946833440329456111224126845750184711578683580916465710625034150595159423296261805862032736834517928777625252252443541577720858627707247639395043818805701579844224011573510290677019180899793453913802793073681162083770806174264024833021568776920776725774155286567139382541618446916010900194639697336389849060527897908187583534063860712272265468153009100900451325062457378705275043554627610601561599311530582961638397983496570796988369256430260592897704891239238935356971617748544248513406446794392521856869719950334584632764375202832364945473625363871266170274050072737429061133951001775943362126517557174334410979975780075035067342421217354026612289482809563708665215777231678045230317749484559137980748002245708159529732830490159264852007595058830061512204640232992673592799894284691041472867146200551899951533409987555539334988380385433502464483193835374349444409167348010332655781963011630263574826116771060543247785051992962527852886056115921200368835040350032853781822753429164159256765054331796938474932963385786413459162004003863724905199639773235359691726466721332293414596303093156415809631718070922225477697443569008376673619672798262109970499574511372494832051040443083698196254510035736328492026533419999499914340598384648324499001016724472014820886059502443352927391775060473707524662916010983144941962125709770575273643019400590240723969825640015668861072442644225974657389811467395862750070760986541136428398614725242606328884528674482491117501228676833386846047496431626099920935292724674473211334395635424189900995041102376389205552883312543865798488161475132941019736507626415182764717987163726066971615925293639805272681074784188296735843735454038490818909048074647099337482431104762284024740221363488108151845650245993960895137558480576619756912194976471368491264305418600712435813971396286519436333138298663256719435230092389885254101841041177488846009436177776852114592935441474138703011739411913426162990272733886225162733955851423438717243835445223388847026389933662479346267613237361799989894860600659252711266188483141306928521558259184958977202245633042658705606532869437657351071063429180747359905249186544057907858149712749062765220177738193973645674441434494106853981320871754106595796700005058062066937036582250612052429067174961973386979713078204005725325521613735156194626025730453340211033658678634160798546654621305125723056646857859300138751240505425250606303325064555408581096355111373267617566679348977984362768273445369814685366673471940300922336162763104416367599202659276574547853428412441615709282527372445349380717832113637173012594790923838223298562269501662583060528191573744483957130535842243091554362341334040114771100069361503842970091911168400018887353917889137223195523385067702920422403884806987713408414923873714387228680929088366096687467447157482144813808784416685639249086870564018467322638487731052567586496947871170379232987632980185798283327640211957969217528632674113497650722717871799428526211808167624207670769427335243038312020718988717459478787068847285490607081516689841479066086353982818870149068555640519353966516918668208647157792624601905460606809422674472158903219017988774863228601648949215262212139642787925990730992151964317794474293384666969817818018028874673163113769703546076629776245789365804571329787923678488555589942388597095763136615155432291967834684571769787890241406051305411754168762827403773952477390499994000418357928145461104708363229246696432423557040868812110049338841249478620060711626341730504707688891656631940345363726943930335331033876588666179897869411987512789083058029153103757195912142288869039046827168345038620982155505714559574045490526991838816305374381515707107101055743530369251181962798863561577716893485274818762238499567227807118452154567823780067090673668471113743215258643421875946355198319442668727335375538377725495174570307621211692354878276362393022772008861755247024824917100198998545886812766494913018497199852138371909610713338856773882980029921670787661575339601502706826100719517651914173193739565704761720906494936314145109617350193188174461974625730555896296034607327185280731240292713618290048344676500257935644084979936019125450353897803725573218422941099148111278903258845797040912332417675635037320615582302330065687328260365428816033803103442900519572819928349567964884720237355365902166064526491943028720015963166616678089780573689443170990353412380466722819166165121963475662539376663595064168203600819927405906726484744003538668636396849573049683928480866243529140367336388855538018289526972219562164627147027909215696719785103421609275306707577316131280758218403170157251802512377675218944774862669883565042119475471804424964659313108110531845451703290829242699081325149091861924814729644546886100605958865492575919991402105657026584432724853743167682823030637240789367609132565240288357336854518715152772817469747312156109477219793084511691488775127059129638378764356441422324952476567148302396594326139325377011123781879856426581456537528845419775747045402668230646380614491836181956258645699733531173320360037566181056813392952852334291302796684105172593944397694094400204502641836707319591593358568654790840366630515778068407413483969056350821409456003858992709241607960868986926870965054286300454987572025490851214294128301513246555319398607568378489003913864876758278786341022701661354890773288688969069387729955620203864178327192852341023119333916312271442144052513608680750965594771018772300356436237115420738670197588409849294063783794335953808718580620945560225024793408818274585514803677730546216439372927486608595902795199973282932121521022462827931590188286242628016623266539864916663974411142024788751334346718461988344347675651102179982697796803625926869683960418014429340821071636756093823223982854053397168603701742179194175713189074410078641879972236795594605996374544229591976722956072937040559423489073089798973099937731075323006718441138530473046748196032807786622397134734853209154607830216778426895869853222659371535700988615639863048691329174458391827194501518784322301660863446403691397107000323949266276060699505841840955895435773974235086634081172093500357719907548835947694421864061756719837879380898928900942641160912119570864690343245484456525904948124278308357433466757866913439295863124151716266137411478417501441523403631608452940993407486742588384665249358793182563276657323115132195289974064346363411621043366912993377786009863879083148523241612760279523145666291790811782716452745784797074032695767652496296674369259119111193853183078584549767414668711191742154660722003264194941098517198883288374670130697194952833933449422406393735400179840944050243296147815913806782465204364788757168376647097591095601263685566818186170413952872300755402339370399798125816594558439401207861148237386071540673778483767221634323781816126712411394874422691427032400557198388262169403921747048815902250077889860026227300447740468271010497883701030974147975430511889165282833784258420884145839222271090108441172371799843061474392791715409930022584932687105253101536244401924538942504378260129975849030068453345822689791573079393365161849303029074220383821105811041078909507366242655505866718174270386249018198802062651897351412971757180829567087082956173905163756027558605907865243950801260929107634307980780741570921464723672590277770213269526396538895827083409130273986919158716321454925382431950912381534787058232454585930240055676426079041556652188527237854006910722204883587235454614196420160849100113239111510857227857794589520901905904762606721813527025775930795791550901058399786583255416573640418184966795492465181345396715251987163435839900809426398035731197545802647159469544556363056848182157055055168040330120207745610918726097170240516285513659671890391948862288163033759685543620532560484799612503681905524388009169323616575269196138168032271732021144683652110383503015033588935755241643850479505934696224069209807734637703949661355179645807094125749062824828423968455133699706338227577234883986650920673905777307411598994504200031691105124612353258997696440778926431641512588019591737186784540231275160674062434439243041872272430855926707661038008473618338897391718499615502045411753408612906904180619905509556858085426754190565158696891968368584839768704996136064215713417057301020036746280864621478988920558793292990672636992354489759494010975757586960267449079450571467810261110571768314297203378348715406164370597093035653121259037200261628017759319933540752063940151713575642837098005199726552376431115589273378799755232070378096426221454110216732252256737188675384468205004594424065145371103848135356863080875547813366282321279359880178807978934853708189312659249480089232700097875178930959845386606341851254298353359095753358050511684726438913763650288404600050316218878669245848509434929829624636005654479015967080100198848711601012838002414589638424869030776882160735315577093763130516183967480957135792479011390656053955046232565368773305400602228946048722751231920830345919087545364572982979726855599012477089321248454987980119240004324693940462478876613624299094520246084822387787808220996068319597003974064570643709645551231147529612100126642047341996689275468990112181453051038631623313688731264689653709335675818658994893286847787744174069654414703927295503751701460912987777298367281248103040691105427911252806391834053354630240297455624840131630410275268085050682525733999400082306371704595447313387586282514282949050880294383107952235126933121235080529454277826849573833512035022618889717127602878782250818177429707827706836600180466475396032673289513558725558364381225695167027271300594137388111015018399070061319587496650906528590550342794252297606601216216710845206443558505211950340475587475199743765219014657633378014766015008445944775017620928690502115060028196494994756247260763520343102739876439721291012571200419675401052587303873317672113685864168190214543299338472501030317605389436472786533728023068776776046449452665993277489049355595275903776767138069081837303714250593376278289926968748428527599433786625859150983097072168481901993342746041130425267749972897462337488712819359420706756141537999496218831754968586451461256208041743945830608469826595030110886862746629389719406779534427751472490772828021576306718956441322538909243362332055595497014980293146244983573837046175338824705062106318043906837279790208212916319858762898268370860281309637060410508296987529185180259010558075023463010373199272272153891524935269595979772805251155814522192151084663142815820223830676856429172567004161273236957806153551401033452330930608930408934358226104461556383128238572959623932204509832608328672129137432752345636977585701368170987903574552551659140737489216678250414946928024698357234123691396206749353750314425691091515277614107668447757660975423734832148433320680186994425635109783721873138269080739134896602780498504714276093828982712299918707835802399137201400868030716806641870392707396201688018453378952020926091778667732192155361841513415033056392173763087222137866715933558245103779190648193885913167359024649240911110068751025718622746552824828996490698626891276653022759151189578034794920493165245765739680659876866557676049441833274995033126552742386222283653293006868546405730630424983631105759693803441412270829081135446215500730700665199598289115186039583508206878227671607547589376183389751679991407811955881998021941962182021293197284199742772607352313398527577563225997675119859882094081124193610127225689892969875603493572848307348623589215542245009126010128470077991361271809598085178907154902473193580603623851662519705053093102466919451724268464405135400856204768968443452118286605825545020278029579659838758984190434943640568119944426289497020296643023080849234947202368942155668055616727888558730868338814686878553815780848633414205435372905044678346408029565555870777697850607802224139881790756316166598401936228907686775662761798263907428129515263591562622457944499415982475832323103493750004310923637062576615903365195613257562875821187560711017007213171266541961027205166001924445043143678410830929224419424623006422414805250591603616850256314901369612179717916841822868482497154716748744887741056187414739656507849485869118038648392132416171850225768595346836994374808571808724648380545741537749313166612035695991463176289587175165693025736383596322489835432052541821622666173603593756357081333202851211691524729067354587173475218135538774276163550247462159749187076809520875890932383028627380337996817370579170571707546224628294210899381586853430744102184479259686796425666995445154192306148422225569446431360668529850845744771008196125502903294759193576163949449931146414689856761801976244628726578786603033113548297455155395894662335415494075225683372087442513552712547370271935690124906969590100872203395970635983837370246133457829779981284412135736687381041019849531220009481387320781188381761993910625989257433562683987673553144185554294372814068652921838992963584946994693243654917709796740073620898791925158351161922414423330363569490382448176657490822021849830616070011552989026046691761538657824459343546822147699541818841788096402900793922580866103125481658926419740752223273838064657543483781076939906530625501828821114681745803302505006528626772692060046517549811480072387238741662838176709653830596514803998098977974708512002020589571004687808490547239253623050804085164313212669977834121683132339733354751762755119476189326816536875548800440260205814838537209823541376937485034478902521335365739314358814046350561139688763712174699479934747517179446657110412109943663352620298903270471225820147891905911161288787355422801348952457098728091427630941518770895169076512856445063506386467597928613677594968328812964971294389435938361510322223288177872270042099189723942817137004326657662824370827954364168872300124575521376692941422788682166262594690025336798405477990514241606990050266096744104256272477135767043505322786627551166751150445968120436344606102133387929632991709290100178515083214234858324051911831189256501468063220815977595255857278583731047448608190191874611814680665840312505070349899486631695692528455268084885186710413207574818535672816543206372140303551717341255985405393591655823246691997585664762844084931113367951658049232918834664962922493443116746972536146412552267877906203961421842593887553331343145675596712117735706817703673424558362055900212763595968122880156583537776376894062232648197965036219947953751631362908713525376809376428911833300357400385794084349407484837334187966912113926316614293898648320234119625581736138889525251567325509231954106512740402780839526229154470963510602147516009680848430782170137428956812056221862300941516668820403032977741515567114764908590452966761191013578390710911378493062403613962009295095352354930572028544835194214979607848020891145052379885385847585544457889859290243703459816066136822456191335974737072532861564655041186923551214325984910715217290674950026730260044103713470700733590841642506694275666573799924366346821318198057642587448627493273017740989664266203602138627164611545917450823274882481193967450447623679899033751126894637715922062928832375423356404336171464793476285806782812439325620914084309423484670128867652078274786624393480561286223008122435229853030324176561840658628414091333554360300366037405899928553846895507966654634586004600414969082158948441310346897209914561802464806349271897469733925897520351223183101942045751518790105758872261956668754861758865194555669682723535649643992472441566225813936208434059241191685589677278506285212241342642630395402076994497373172398322577776593296602664513782376476113174482394376899979488096632141472238739586666150082924230954478031706483058579566278438160852054540585767538790032564486569373857843285414992519846856257951051629856531612998169875553964204714106840734056105786306088947764291150140612233969989055584516974402557641427225136301575876245967799342923614515919988335802366919865791623702593780196517949161143431230560936890319264090455464890346976474829255752491373728391702806103900594929500135227100780133285251979960795340156604211587401143649664404685872061050594389309489606104664398300178511029996209233582313327984582973957831264649543431882712676130079385267861237238286643069187227422030224358151562167840010469183406380068482111741462013809541098571778491892053354900414443930712413460052047271233068084192097983613397633982103541442243951374167154370243699532234607125122821083853735771817365439722933742561880463981803104317267073711886105009021780923511632476569904920306349945191964728698068862235955532705374200509198190754032690603451030262890191823475858774368917285098472866509704166479467544874809227766893222179220630571521612272124598578503065984921286820595691815554772176451109651431668923516214911436790357793694320558420494678291005879038120898565082189383272405486173387188506150312433321027934525735248519467681064617979415919128662952418897337309323705053469062620050127739450987051837873001630589138722373877785262363958551028836044628553383779176931193916558856502737215543244093877319614860877770573471184501284974921613075630587297483742774029084775727464977436577246048356092004218593351970665407949813854269539748678558392361034190640342471570189702113536207497843350689181657758819030452381616138336423815553020306958653358767795107470567524676560617201240160958950332715277298808778988187469464767667783754249893979021465206095469260170381678193104010871148548847835276621194647978203661972951351858161708935264679751217570965935499124513596923852943966360430475285837934061505602570813051255449284405927010124111073100527612116199113000412626281438546989131878210312276953853453974472712048554977626979555481493495152647542026515112367575000501631417507393435217350815863405189032548474462528448991002475784327086607638473620118382051464780243899935832640390019219090907678971443199758349841837941546603486582944852369499557040384584985485853043974057625183692480030013296443730518505696883102949986255433096512558819011980271560025468444036723615211283156459687006569189405381296406063642340554361167788763186177745570786869781567374823083028999283991326131390162097607156656733862374535248732019083560024972718978950845303029973135963542314335541740661242820293186485044622020911790753873711378306471303720077418067900501925771925553994804964710595704087535843856217759920894563551871600510856434966635809731764201590579931175702391107641629919287369042836817658699980630100715356764900269808574557671756501432346035371778176419716277154798118111976539785324430302048773867549028162397167514418508877768958842662017415588133937684618529961393568609500916109295375779788480226115238219992589727488743428358066793639254491036133735008692171867345162760113184446750839705468432442481013467879297668177475459979295623785967578793161202938667768013902391718937193664081929204978929227622864714379508752816624818823007436689977180962052657374679844739455350263490518639329601602342122272837609294426768133731122905797527531227524158750782209925559530096205748393223187641227107083175123776409499675730394883711347775573511078244801962589989806039966382111126496654687611673568504898524253334202219066168073757842830669312840158953851902017830766563775422950936072392752942941334804030568872464413117667593607531392620305874840750100352218648312246198773463379030106605579072777902488278860709995038064234487339155199959865664118048206263119247252687265513384867336654532492968543510348992166345347788050060818704856718005324429342917859089517811086041592206086359925997228265926609648170521313418830874284739580543844183959361518676764280440335665287185597751817461499256712370284821013479954328350618453478303315025655032901016135021121634237069285386603556288240092711186018928395895560054681128873190145495532348658143126536675996247731571652710077237584737993065909120761375261149034162941378390443277335322382013767019388378373706934494582562675223034507426958654180830296811053649333435662927935322958150811273220899797303849210830373323820843667288855359433667739856125597857055913494567803551035909744104435303699312352776991597808665907047131251729057805380378305943390435400990536322171741306403606815855373062330794040927208595544212363198992745311093201057097577344117086042492197278515983577688508085703597116516422025438379105163473953177055246380918283690241067967726880605101674746191242249598049839176932275739023527882394154000626826582251336996587864581121050977416997069637337365383615990803200596874005592397130271561539091656049448142585069145514680316000190579112784008512417097441042643618377832266908204305159336711107881188975841701513358581398496436066347989003083435247164832706117196028962713347901971454322186328951924049181991033244141293608546042935308761920769780056869948705647448167984093496957307327291962164656712013145761357405055763957614540129377213573533092287867140565405370858743947786808209569913942369674819067424811828443706965751636695096752617328361817111865046458890698745233582318595234133356438616116671986929003193158793602334346146657940310783650938254766869422912598582437749337939434395716852460587183062317986614711320773830583928652076297766096639237187843943132112094975369939574141124768784106286247176059841615605441615561688390419388781356015195514197174244629763005065188682935666445169772971738066269646958345908410359247454924728156223382500224998584159065623471150616448645843814089900126419790284987133312573796999594475303385105725944045462635710319043649456070640889436421776421705804172666153516478452945304251788759539469774642079373141619099366213382634278091757856147018815151947922156707561630370974399794795764871970269778639986359653173350599156949387694178995850873979864682042092806758340689848073645524619674070960684274920384950629111080074329964393565218674821494678392031879492937980189604565909448816858769234049466591553935455839967221327239917952877626926551336230467670823413809914559143181796319261932654313628191186207933612814894517960880572538626202812948465012221844376746772018566676358729291848620911024146364624510907839133566705367109475077461781001689228945189352272567477852423978268598377841119195150492146377468916389227192987432145431555357320118021059763852753631257789034664876478163258687959108065674887234666026688485789121266446649351122327774288390508751481440244660313228501866608728063986160142390021208517852627694575752915029297423371629238405137075194403092384012369178067571639676883511134798332871273734493361554306892901719598389466695943049966009168143909001845287538444520070746621617748116570223584769087715788860980179044478050856801396591123981937197276809923169911307813752953841634745069452432214657329061492933970621860049983637605840823895575544209185516100788593085010535324956629509528659161558689808005258489194182776911124297244821525627685921993683107573135928780896285704857447359433129111852159458635396737846564155553182326502805375038519391705177305635695383136592279599446845293621446513893884234136217021045501145081865267203990007733675047556951188030222199784159761021659613062794368385994083030663226682097806907914936530491083387357120873526161455115404516548340415743258973162493107641384329585743594152261078493738321205628278443324376029589574781200640806726707479026425365955341153181128014231090481641507139096045639700150184377034190547711101433345117982543119084382189051779443014257402351297173865368642536360121349416073126748126126872690927470523264946879851449215005950621547767991510767971001772921371810383691563404642535478692767776560489372466288642002066874657132973138215191772106015060991496170144609595682357583636962252277798498472584575961716177645993349583329378900289364852696348223955102026549534581019285008339675061818739140502465612649739188069383256929495943461120100837227803812516427733886346889279735900065013019530975896619373329058980395597588599066531919163417642441729816524477758504684946637713687013683943790834117346020689248592798037450184487303644377032918072012017544241318621711366239298614176847446472317237013580430714048372662867089034065458206584345298800771346462788254032044153295112455580861215917205605386474900337313940278831377258106513200246148114125687320239050855320710160518860661264128595969603126692054685577101194393534002637712259285762132416041184223791819733371262628324698845343275856143248558228139749422362747373303959469036233806800937239211462857690267680794667933309830807621378719511329104935066712746240153909617750779537771707953346795605817294116291493376946264976472660915881700219337587022665500806513111767221220750832928287284956290382434025366118168664862206533639391454605484857146591482336675752417979178895824649701029618433032538330102806239326356617158911153054979196641173143923221732217808401039849602243947509779325981975494755495203462527379594150354005126087688955053578915519594391817695694208264681309906466398138869495132719818527775065354722546837881839293973459446252298232434621004648816993352999885203587893993617643435493312703909379360038794554320115762223077440852175013252687896456693569292546797251921516709804556695885908520606354860476239181694961000871320592777603998370059942421356384347785993676076632678125959064738590270144673295056599848908685892854578354072265693160146307985661278658069763670947016520749934347386896637652425289694495914835436672207408073357029834645620392526492229922254646889652143490106786396317311306471107821626241170907622432962637414313469764350389748160938859452149043011245259936968008537175951394290069170959067355077576128325169530383574171587915241676870651448936670886284286784180165787399164540562551309600221582853374074051560902446912399534708512730854699615446460765273332085711664440878791282243525414447336898742221640426600093463272077651898343096888050127381591703346387186558632528464710613642416561628781521105350734408792582836667723528656213537867317623261765893980358168533774322513236651260439394825133856140533847744926941639335889375150687770930938181044612348751610112827718408013995830079619900353297111232011862114979220736360384434351370930618668947470038858479120334550221109790244180025878734151122874806290586093917124264368544468006717716822497192551195790821742128036191072253019712439587898867163415625819635978278398507785525261417605596308247980064360432298431352125354519383745121805010015521331799879534143327048777998517114111363872792111448972149217812272754759024620381015312089143109561176391192007467456463513678172396945574354972591960131192497921879328691667260802229520710926409591175419452519709928525295119175900071172722618046764433801249751621992790753239872982773764635063068946525941147037256344986887839303220201917433909585676826483893179181826629559219836220547025253303591365751626673585057524910354739854765441141224162429961592234532308141472577540274336661966904845126897227686763957457026364201202146282055520793260264300919149031412646945397543974187923249522291154174024984174641911229013938980420372439013403237709778453863791803114971739874102959061349023632799534316521909518153001796857801122785186846705947454967963781908160921964717340982430935412017093553826700781861992340785932819938652879447308378513747951961320944055842485615701583333255575586817477307330161890577400599914463823012345704886906599685238604176496359410625456272080888181325779769230406823843093206087073087464186558949951861605562689709225529353235251614170520626292087687365568994231773044016666215577724552254017260443185433958254864311885658718207247282405962419875393029244869235648979230369668691623091675601149380085363583902961903261113964185503641419095614188170504875568608292549003267412745795511764569279530297764926915395878329721950018715133607362170397576685824660429681353523638983916777061970106535688921396812581509895367568386085086672009001145370982437347075584541955743384899501467007692571201396463641083631860344977583297307197279291444546585206217803745195851459952320870436782438076727687850787233141116905628887584541977495315724203499516406688080842380443770297991706363909671544961633329274111228728030391493438020525718283853204690074809694981297826813606227057754262658117905893320824519050093858829131753689239539313086466392696009765330678921122469828961292044569096281653952742978590296112238495460435335386516064321295825122518248562270119783774839806396097381905739162149529315274369690846323822612629315658644075066484960185892275530016617186665827374758846637934950272654486594927300728688611463509000129292388356135933556548408295155857970930879651324458056706150853005489636983018746022115322193126719298411807918486241474994659204462516653605746485368533991706644746482282976565147509626468981313003496514372750899906639290567424266210924017355881294953893381486043064693297523788328225771350706807866810408187899543574810953249615929589965864147699437177237954921591480520542815863201297473418574555599111811778532962404095972343524669477894868097145466798752036948674223760370204400681386820112911576031177932028193226520256187600794093169915662938893746653383010547675731555645315745638973490864623789739747223234297854312524768011343522782638759081507360923355150264243431997699640896819041878358897114837956035218739357632565144407207440449320686257029373026271436566213170481264270281192401600609550730882631808263268252236227974506492902910048644477624158658582793047517382840052147863804083557191320151767850534796388969563030795211927131235907340521424238470669785371032654143982398686742862514046066194886610845494337924493847618704148104142592264880739617082298105056470221782790953607119179362023869305117140676251902507425010586942700623394816321152347703838823283350533722088776977572465918109549904081392800587447007470409139907173270372081727601830653970969284043678474450886317129536987531092821528227975953230021747315581763885699386422074843574407487550268363428483203108731439586608728448736451250790759437441628886862297991191317054051271636642910771893907377368530273539893305264634065261095190011013856719246894074895006248533381957758008748765864923432488793396865874019364904816043415430217886785277270215489855138121629531054592364396653189707453578045611250343861525459800790845722092885405581359142472326025452320564221280007000206247090879071158160716141856433218980796086355841360948946069198357573629216680817592189526060903736814290464126129143790175252214281138640414700397540514190536128974471692344346744867254763743850775863440335151747714156965279138734970576931331322764800480767487056761911551299160822143722136022617982293074021470233884798442074340273737457636525623321868508071359542888301577114572993490344538021498564301336772711422672512255014843343425868787392307502103538653641331137794204728774011079419646922325033408523116025575260005092273182789368975103294588873191324955698055252112844052009498394558890583154891706785718321304093963157584625586227787455256866397396387516578817718502539730887305804884832719224424543332269440047987099870633474380717976954025640420741931029863563902024819901023916087952023374843324529854780647991266042809816166402610620940472504230521522147017786013590218420523021814419364829237822047614994899685053214051638612718088074612312972326417687258618676229217411177738973454954620594315892180833926567377266455746391168000339300923060601017794094081751782739190900654095431335265885987714739882124335107680190134781845631752526245900984791644704291472563700892230534019857724589737550136452358429781402071912040525356676980733426558191688745691144431332923113310155031167493618792856517095271711388150866749588521138971016002112674145749050786312845584404396877055910588795520068389783291836963982456719429723310476993004599010831540048125378747408312963039650231346847883440643667922231445503239675017121809305472082991097021944431080364602281377135615127022029484571877944820432134802603409712960950631205696589086298016836145112175219517972466417062143214930179502843196866560016994764027118771458623650879100688108857148787142918073354515668744616015818638179221487519016310578032828014354105674846940985825672901403723594176618858880644252689080972596152221205921793940594637118898848651532463141744222413043412727213805723204158917395996253899530850058670238495322392977931961103158968991508143750035081911527623237322927060640799650154630756979977547719144288015464140112986493829568872870069577796868038957544400074596811284325227598197400154257298946758048833664520851524738080818898766639471827159848888648245690856038771635811505417705691820337175256330087713284946323241441844022691668447913840801853072835113129146824232290276643026669413150904696050904353089527025205073307818030475115940098404108955291146530224564645061332713861410097765897122649079647044656415538000979644702416905595655362825553729242758432957146128582144731360252679758520207087367286185672465031567438907129245655658182572066301574673453306481895304659631010696904691582665334942183251956231513717981545515069410770395653179469496705189867195970941390324400230557519986936845369456370907087661182498470591330668411342947777948339899465298353881916690266841190806998407887404439861090235785925080093134331599873702769975800922737974387637547965474666332791108505783635885895515872530253968378637072753734589323562461914913389763879343170117826462427481649570658790543649206463421156863751512932174008939497285203752900343166431860442831427364111202019980590868989689553503230473824383010390941370933149650550760010878352814669772475199365634278804911913597779828506309265001939564035463758042233099845886430944045196598803932537700284213599314067365669815578393411963036409175356275094968628307370132057432000147773642545650113510018956010426247489724059903489169092322542045500407026250085523614990798007388262106813153832174754071129458753174842234725194107574665625915616515093430715541505550777995802986220377705624114708192097559137782924240615727693017930768290137213017063440259994797967775176992361217477846427230387215581103541567220747349181315640455541936566774403850124663989248949328940434963711611795950332407180655428526945775993392047957419212588035347982225960766883741822006162925850449136004519992507919821281206092801770905554915361592686549851638920020147328934602591753276323124376669227717474164633082352009391190136024078338450924314854930634068132814313202844591428675841093851526826292492627905300506444057920102712867980314879053313670310534122160300506750743006538577743335542879051996682825058493520667065305442580109852443481171786459844367245235985267973964762130132710042086639886635550813122791885239153665211159624884393169938473527733382701212035958656187672311580149329433002392762052698771834134343701985120300499254422763858789399982427274894013136316430796467180225657139057163887783408882945445273830104830198334353169882241612741749047875604680919469432264025702144267930130653897838276600870870597999123709806831371210659600177427511753611912200140177498653959885124013111417241672822561235575350429136895132065179626735618788663898298126099364840765021237357888781045981122814438047677929073461547859381981910040418502693008782098570988943289749131015609614041742359066650738311583851935996189856182886505276889312523829953973922712461355002682037679013143968993427794589150979850937186695640538329561337436120829539822085457251481635240145434066002964195947672902582743232741766662363088455915878714620463540650904844436688478847696061868249240468025987645577737106406417387321674522350991369005197613134369269140482040009402526313308495814129338706370234137482538895220004000663628277008743923947984792446539332360712093114391420897100586858641461174985173917900414318156110876644217889371897094560739194661440713448897944193270319765332445950155948520516559107538032606793632839147663796115438446534631599647552824111501115182338210832756968337636149367782159139663771793392002736872927993415031506907173480528189148078037788950447388361817320763331486159102739446673859269840835919729746587252010836093261702533639153164384741182591358155385139627987927744225251049099838135817859564614104202679020171826973554510835718284514169379757640516733587097725178699682561715716258260264542216828625504308279930728435753595745852707790392013631158614235772304384847433370917687330292970445981297382023034487624032239990323095069247038092041923218657077243316171574939235380484893546839304697118105237940560553384447231177479057183159584397946358984195579771866533380293604730297700031427529935380745251801342040429737347867393736983692295746536033922342199698353953196174701776591536764062630342346778877295190674661868095013621103577779130368104614487034758674565672509582182920149296872838848471335550950295703735648685040156474654558745360921682597128984169151534356633477846785394628543278738298171707951442332178926925264215160055235640224814893779708154534382423610886995255611704835467209834558190859224475799637661182915921198575378223661572990703967002129771535810407880636631050380949875466097759961265473867089426132692579029147495763251312156830476060387153962937492146055366654996527136050288948139091864321186802598158296408702992187586911030891415424714467525757286966663930537877499212235769317945112640252443692013912129149051083697768576960944697402119897744179984407448002441419961712772253574250911499121723389793428362259745806790717523194621998307738807598538708949261135970649285293992846995090551982608723018830548908341465650377460658584303351833444792952093847444276806673503365745963310957461483903722774715638601887135850185082108917917505651032231644145430567975121546913325487212885279517140589408166052297088090896017713548609712262590801845778129271395635597803815401184901155153108529464360298197888390726552881743009618671833227336724586534391950336042772258663460378550950986327212671330145958159271755742808361747241681750438457294340202679447808527535720808945426815254994556345149584115929329784946368685180745459398401342804999717071579601703740418800433959529363804212029596583813413694113570675462640001369929025674916359680807369961310153813332898099834625839024755061422911495507186773770293577199882195414523586908975566642090451349684988412290562631800407100861162736375140110842968619339066316398117309974768383930768784283124294849962490116654238666441175064019763631781299277508650775441133199215360173971733645384134258556236859984742051701868585578562469515672916891148145195771703655279938109586686228686153594826857810514864190356485933855604980240984824082483825258611889860406231294948369644700461377725102112615158129579291118970200547808258232243228472680612156606445748643599409719554447722862785475588080545853911466532916820875971554654536516827819646074061954797152889603277356479582819075971071104101865427778232932497904322441009687860546749312659802024263864404942994118193216383816719224586887282141292274947329616063936446450903927993746066962061120555101200218083683738012726613887335304672757015764894812081535716846764323218480050083561030848816124232043023558112901028853290446139105220705430393182433691489506186247027912167309518975671678620158696802549278590642450015481642406386437696104823373927746847465273124609352799421947516148988236437355974257043387455905285214246786949211258818653204030630716483814682671040123668797799088884023915209298195169062821097766683630283920210784494576366243916447027618462923863752919653709066144889080534669561624034169537488410149838380071738981886865039955363135791591078339980769314188207307479692146743901826201585372763473885460754281879303765637314972853890605194551091388756118895571221201217046960614187557898246076373417914200467034139106317131029546456017213287699554343583707071842631613274970603706083094730305136870453438284885735092708111812805527917056476097452915015391212939922361351988787868896043742643567389210747275997356167840852143677076966329121539370309953795194023637957549893424770209023161667880145789292286693062540258056971898515862223622073125684277916891035721336724592531788639672353879839465832015735062878772749456309227092105202790137297466262713835909864425433074096524298567424396637654378933599767326572597019130623070292768481550432551418382355389592330225878088758853114333116499252452449616559081689323002095079258027965250540987768588063598868719433081603443769884642748727842083427622088304018012249632490853810141412069254752067515031235080992282625561535746766732683869507335298372336345135846438733317253516083845960302594271717699385646863098653889496962062737985161740551569923818497961867140558834957639204932499671002415224012373967107098444656288956160898249525568948416840694336009286318816371891450127993311911429332442150143698164019998199978589652799575210321106300527250802554659832160422303797720094807673182075861464756453041087276580683001744180458416871908038647787870359231610420700633417704624178796825181336646279138383159183645233072916240167205030971754386585652475833784998736838372542418019651698127229590495393355744402238395603117666713922222078686871090624880666649277260753081974032952979586323028178035824027076673516503176540665447409398726332799347945707772137162725536412756740134554759650281443839805630923184032232423178398097601766429577979767500073358804666733953235483698189029857767132580459910324658972054260724723471791955881242130226139073406293924236070211816813381289566446918013896227410506169938684652641377714772148374495079735693758180402829115761157629573203556231029795952247283219722381703759274393330159338583113714665941354814402560548677594463638201667600443083731548320123732553111435742079984976434203223642699429227327144436047768568600962450785014305773913808352106345820505469994128699863009842404093286410571320414349317003102179172636855464465170642097934939560017771251643683774960037153614118086628267487759433538999979895992586662507709784449262661306844604300708680557951329545933683855296919743067164056581794935188956131563010589364185088590504947347613106459210060781081710416323295641461530282846501332928443832363141885334881970496022717906147648391716175684979624564063003447734933360522452937034181808517304962593288381659931845420601687119152027252972202686181076564966927128815470565186598176151314078686443314025512607143060662099755194020598665306103368408382311813787619932020090980939122892728278734402758874035578453632537425196941620383073106738497491121780050765628419293368580584094821951413545100532244149171809299918018036108226201748372482597554096581459224811951168352348812083780454617111623447530959467289972760012565211240576425205754333933939727949567712434894268502893064381688037977275211401473055796547256632080616006567522466345252724682352472504185842865237823278683846351042210811269486452684348394375722688171956239718802254955930656697163034989604054541885529774171227232044900570549334230729324740778814100035505654138714626653205077377686602255242456652127534078120603786480639571919835118827649774604215425292597165086181044299506632254401266886054820206358323867641902386630034090697769271049502766944456000811728234576560495509234912876332391901044399814091767456932534716588639384699798453247656814893386634095919764086608737030491678134026571378736390854036650936511658966634475296240825872091908070351825654207171658733397817139012541201529574112837678388883892293690254533079048093923637735859441121715146998974809126526627142287731466723872197851517807760924764346313832387967985456374002568702752303654631496498607592229507664841724297719381859960952483938994718914856485711503933581306941657756348762581137991228082087669049421864326528525891582899180392160465305273622182067473793149401759680438299847436055590276011941737518118773394381263289096631749943539276366695362005952608365675439070775694074079515443251401439701411642386354937971371302074303230287837732331881739005671732492491598252864589072853915090412519444394265881607784625205358678866440834783965846902255250853486754080356149791165098148140643204319351473031413054090995015805126583705591578196520242952143656349117115836013744331376520629233978201437786296354869834585280895331727881906699683092085441443218470744673384369469117444995221104743566552337387067156441040699063924103267722963920240691352460311592179448207519984681824862584995941108133079670201537376990356666075460281526569319937378282910322039219367464012565552502547345408721906261824765715376045638884883472949633756830121182437199288568878575197172274013344667994247908696555114765084617336517783766791990482335202066599585981815236189326804294479211389234653075856327678731113587644210527405858619986988146257733748706751413592658664427366124324630306896284860790690500118590919841801644412303176383398644000687999138957576326635274595863755391077608502804116948891825476866340562430111267153733348265451065473180294379024500459734281704260315040094930602134053734834650417520039035500154018299054422822558212013840883731424816148101768084394915095030999130932154972144440751277150552002699150310648481236757016948639766826625164284533945677625705526582359378639452119957850188950113386729637315196424395408760088918817390651515891521283244485805617247016676307863596642441388322679054048161048225290953086058299201727233888937873791145873352265212470592911199899991932490949983400860771023985325235603312648415843574776477115927982596956756186946680154547617612454800254458015656839192829443219860290222724910931207233421351306432360540997141535994553247236391576374641740444024834099099008287636913763972786031910674689693612554914386413764423564715377356609491124787732623422415357421903072187624890118219075755056901023641230131432810099229503247329708911991933355005515757905774086466446262711343810408372642209955493149193701550350715471386410333088159377627407314278362478022474071886507218119194724931505506681650534297351821407629483129254448445495999560060958199244288862057661894474032427847257932362491400088382306928838700583127047300225909131074455520136331467190741583485143487076724381799962351436317570476564479957396092091308166439637294496622767562147370284009095169612046881716495819703004001775935902988778356133369898384985942130734765237643635883725455125737127653766771540057900776130807986016730575279648904645728562087821841963914506625744003140627203077194414894477036211224907058102752329168738565398313227100993643169137973288434729391426966978132259517112214347737309324482098794465947781589182860260002891027298663927341877197144508809589537793390643754632914748228858185257758036348369019312110760084666489586156168590549802139121730474623911204229826065942732953731725750036348139095717232880967566321730892577679799428178656989527101938604982906554514541442232087398677962229544255842459768818929383841071371213482561214651962015765007282535187908903777791215227319343722421896642389627243206056535514517836139113467306907791852381597427355693265758101598881450622918991413417288756670368006327877411664817005174081213932506786191416345454127151059464110049529058558230501305623578186061064025135724700067685904954046262865410998131281253120683108446352679780493088127555778208322675760572407128909015144327505123402631006881751409614512930483755468429889030075755438914563802923827644475945158869831462938228837158884764224671250132671696131311651078722846507755764810731839208871483639490142376216201942679372930847569659104004100818625031019096548335152353459063059185682336817729709847697802878802716555031687901045906059179713916811386942550783731861493501352744380338724709668638604087371840913568351872589033908060758375826957420542077390126895589846269282231362411033685690239193918401209100335502450303280442822333084139793159275449767797393316795680986520351681527343227752779850235455605480566966319811108783286383772332311823402583337839936055200316531296150840386626891969753344418746816228817810199310482098983865547679655666344467991331350786149358152525851904683853817647414046758479343607682718801818642469487877673109384280838778500627141392523845653004530467282325275044938803129120206035781304243086590463523250011532265965340657411880272344490472458086637989319343044096358407067118343226850979270520720323133875655977525636659013603188884041155838349437617558579060886838802980727168591793614407748080523161275739432074257398438792480526984700604322292774944077529338206640036520432884586539971117104445736242541089651573277428838921037129003148345007405084237316424303297340378564925757122015461710881109468329910250583576234068469148819740772311694485953031713409292399236114755560711841425147412038560581580437055271726502645167621215864818436233203737267498275708907815605238991935197574147858742443109418713770928318407511741048619673740987822281364687608012709230973501660053424832269192540061974642429269152519962197571240851054695710752258842833062081759590690118914430902930904805108149320558947115857853446784284860970252627953763325693985929424863571248533947216400217380761706797474212631522336025053811637813928007588152099758993623919331524158617414480319548437623702981293340593625472718920497580887276365918768645427300702307450983174130525414822041166507604526935159036846912969942709025952649740670248796369856868511450459279441037219070138431461535942102920808008012551242833872216334280383062211232344027430777503945156378023422211004894025002472875748093080599438890992638966367356785952077706499934501507336918790696783349416685018137850895171032587136592781649903269222571519599590935446874864470379830860806257764486419041953890446470222867564871701795141865776736826660830398713971389874676400100428049972095653629148136235468593436136005792929514613066442969826193535193881568331390985353501242699959104074181314839360071302256538121490266334541967332612233350009622485132713503770687342405035363328886462378653145257362325316412127693427901108060251689677144230845992562879830301317238857464105538174469367958062250370815218046489081984668284077068599228335331444404820279366975049622936245417167682224970508159291149982979022576533445509819293662069877888361391633236212324560886947206545428501527861418204739816091483439683923520247217864901238254965521030295876079800863859542142265734228314049902945946530827892315841006684305230511127700003688299400773780605881517418952158473992055888787589818944468768778166299451129554872101186386205708674081110686530121643290222920556065025935299312890149299968084102872483465082118547171895545893962230098513518950666971232399048464955451441586323993151368572672953537209813480494198568352598646102897259840707313458149589423074540529665316231996502091495501380635139805788472036039952523791034271574482597687448564452830502773357862095138852630731277469391642864057354609684710680681948455979819066675441125168800558682833278283919442193451830829728789092411551959980173899601026325193364947765804095423468607199780955081721217952100847427100743841545937440055655579389646672424704972655457542392980410073260730252408323738348084062556702195239136356752031130161840636005257814312750426532007254332803895411765118051698833182288652888770988705446833036671344469915692562473114196125025857188132536942244402904895930378516274468098379600792920950329621709225254106607953819668595429822918092392234773053918826688315117054613505622631419392857829600962111733304741229600299802161006733622826124093374411071957755220828538612130462352824188737792372688998819752629762151156577195346387893565824931100621982419942487916261526854835582604929340478610863595855760197367826534589482010778583413499047851414427634459617981438405266875489909933452185102488951711710072894021890064901160333704110506113908047079118099780014851187294223192859820318746641787829807518740434971028798367284042907623922573941340572533839680835165522553987286083653579227730848351556445167496162279734326824274357676472370348041329078996581907441150483344167876815422407120828356766185498354374614170283150546843377422313737407113587988222815103817364497152217975695590827059871627694202751094073018227736810277917514390139421555654104700295790026597350093093305191222375841596681335640221510910470881386165738696324731081592222418067062541333194236982971621946282884016931363896849549111779091986543259713885539484505072922374863041366375734114115390904815768464516132472054108253778608879851946020916796475265784935961362163045941431484250382827599686785202731960929888892601528693323480045662108068144164680723070470918325335994794926322531579959995715672230199669134859677834161129851161510933445902055171948031491416124115639527751513334629555982428590812264781756684332868834578499929324648891549880641733924164816961742395721843041151298308994642387207994963545000065521130811490322401272284579695483470273413445321541797628243767456299758020506250671640610854374289219810553906926706387372214648479731839411348274231066443168709780079565254410610972979385384848935571692897499502114720675504066646603256170801537110980524653568127973114902894818326047524285082776762780699485163735957563004958044032245017586766712135155594233841372721033096482194654328007260832758085219158578563730042107733728104609746642427391248095039822815597711933768743218585688584368029148436985651137066805779078848887740048993403806390510745481216979046643174043863045517752863334063224144351913583461859195898224101355352950551237992367358200547244370383194557182317572738035859961782280004864256962158780022082357001518725022595693570164103485881502114498309552139900869385761624461316342707602726661770096670875273275134500823378577608527927196269759320029893614670901098012551745492012299604012037238934376245477721890147975748518262350173675855553924662351174147583549234353391325890467830666494269328145932185948505324745665768053387156837624731577281527294161587605643647887395176573301340812651601583542343426110125614155089797572050995474753207528383574048839119348049855025205797474071536383332910757815454933680400736202722298335376485764248012141472364002963458540453943513018988665936667310289068907981024817696367365172544919279573297680850303782326857635057559307541455609289523398261995930053159053614880041710882960187677825829312431030661449244866941241226885216420501566896125478552012157438774174457517896710189964764172696600728594629851987367829832212489102111657853379841456454774227627281830089079252297023784193025330501856903860503357721964757343185824452885497636953190084176565424441845527983430619400581559310059141035975846544388837838791622760614845507272174233313036782450145215720928759785055179088796356393945928216956030743621430531295852518152099406837768533949679726637904398754843473487781360421743907449731747491951865770705325346369646034196792567658841892383873114004754298236442517145296261119876840097160238103802854376819301564882839848608953467312986462495336749748117952124172561057933556952344240166942460618751714569975305467961435369538519396522250954683725210650998353269685083427044716657488185462959425395452471764256769191323385667538222187156328364390124069646721843857094022508716073226002221467069671401729461157322418066681834102907064654234840662844680714350031537533700548904065522681920460782322343548632200036933064411908920641564720796305950346776867199767878220807174213401890217729007043542325888562562503279801759287650282622133772714401930779680991792195899122328907762044742645986220090751251915153327271674862508524308844745082804986281149166163806947060453889326933081833459782733711756631242899981402528216831979579427133813083149610860385235752924425876419658890344681133705603527764152233703543043484058570800124791714971249331594049937851657417748402245093641822802474379771894949800579738208370737344422335758760713992008855708380364137915749565074359265387978092887528209289658246628619071777899377501415953017690818223624806170477256509027342178995169476666342182989548286530184393370760206954785935896995811244590031325411696522006190588031543749343338785941326766167351793890122027660825391819605671145348550779256319958409073138570777208567609040166131567776282111063695727188253307382702698891844161363935166949850595976648148046731781314611185594342007121324413934443950807810995748354415136176955776954275635143480119335528599067262292395427378621957819867942105365107469927771085716747015810251864012119326244214795063118288979355944587646170962227178747209842115062040745812715595112882710110196457776032999981038353671297313280525581055527267714153712810695323292858689861922111888934553889440921755852753318069946818626106487850834459875462891742096242975757515006129844471378133130644240816760820934189932803208012185317022698345991538097719799288239775100495307381226170439172595033640646731807798771380329398013775720920896673684355615788736438320665907624567744634755366587617863143468142904180654278969048695938629828967342465162921200992185807032841614033431191782878170302052930823020637644666444940340027748944999155263780987537105392722633845014037358598080390809636499295317651545219690761102137940778255883867922703384025430967402057812207731208953983761118855301209233356295480426876658355748609092765072227809786611861536525864149876108057921048245819885234833849520865637588935157435602331685653152371530911423808196307955837221389494075726556024790222875285616759773235576020836089939738866904607565835508620741400356405400916376515617028299720254829384366955221142731346934665597961092500923144380302110350006560811910651493127306952922698980659338033225236428201857265412429505977254005622217209428864502103218135004193197829681321733901099516828291350911558625384395118529527120968608131424602291613308682315792591863033553267866494021502370691827836520959784659096710192456704396169911001720269581220164754637745312709619092238235633669346219828706525995566762345761899991032333643697085814502670087734328044995987737208010666647217778103776332915736984407423656338860666599982945189352058825056935541232123759432979365360915331221919080178668653489244436758839747675848991637969507761609764040083634323963757368041092563003622734489003784091088810846117169547287287019633031698534237635781300847936306353907133695815431786595119236961990209890360576628395161865264568929008441507581539194991671974169714025451061687772383890283135727820085124756415563588363443637813343819711929857798016147249716935043631071020046270343005860787652262167837675190213227354942689829786401532025737047636534617967434122836919768906861731457402896813727672607666238760760652052603828467561735992380385604476247854844097437712263352436024229490646695931676599470730301381755674950998847534742753366270289511778378730493916773335622444302193728089494613602725072359202518731825289303706190418606302791368086473958376522714643491157528683397808631217152237380525704565704743755916052426176224194923384590067013954064694328309221835929698439388934081864220219720041251390707212042366497043818723503298856717533391810914574199200030953966027414740806101397300133425608979048904362573303642871508619469278495928155024066353064087875638945324556605289310364572710204682317709524904931637554109695681467270422999194088008112064755983809487775791708431500089678791729271222982181292386538664939562019460128102243181047261013482313076333964612761924098122688485506790059032316914465627909124209343570317181805541000994421697028293360875960563632081735849713933340672302039987595150372393811975045078405686036394668558971801968954135419893684475450337991409568944683529094411434076288860701858177846807200950889871243042166743387447849798523093897206172660743625813159059210129768175487193218345261859658401016880029968515613884258071917258485793678811103940000727955865997483858537969426614339783581434282659922285820906714784086641768366585028012101795785407224396779007292032785148234809311550163779565995453234173008921408017794795747010921677593528692741010043087889752975398456319913786229183034105156647538758357656949135058971980688800346872231158573326491146309407754454719490920964526709800173162069313853261889437968765616803196423527210008221376885705480665384383179585611516032621746205444164928661374392528164450388609398597667219926252863659117602998332588714819740107576927798719415399991545836115356930135612353694667689802157701225457591556680667003411581219818850714287781090334313021991508935002478752378183062915277079443070565569563597460851142299219114760491458250632345447004197146809041611021931252771151485366719988074531521587246756710546001705806662499318588468567829811445827192360359512395773265268117372932927070824941139654088476856219932556561337426539620560875793100170022311555887612175407012132239550573161735118361572566903552849196897800603032988706483732065358545388838421766773440012927498245473016463198696900210950599965456251464684240410909277473444741782309941094397510485091429921028850855912139719723428072022470993517382248808826919128046466832673849361979893929860844320536476918942121541920102893730044806461375466835554634879194548916746207363886921034410903698506455936208426680211733593950428190558760336535306315342813607343081234044524230703481538415614943431208274090285056347252705917882119714967329821788646687863681706058460472375952269871319304111419747258248317232298873191319512287940112358308593717150399821856161729426354271006047082412576649102490872697491592574719002325691687599254553518536297134458911556839591546756999243420704585903274685801783872105494314885560901343578948740524748483702720163731677106168528931062970064644523328296387162749771916743874211189952911466141703680653140490130928381227002566931090747681174552544820284434545370809911578086981042176519284819591014470852559971047573590257329942041950229996517606346237273765505094931932649080068909018109621373073787876694166746484203294726962749956169125469113203874569022629997093389083901523934017919949918634480427212848503292394060640133156738829387716795934490295965792640404242273111258882026770650144119390302139550922843015876211059016135149059576925660395672342078336249344275906445349601869205328571237560836342639441560894564844531217203550663813646701809743000541748201830621642413115789560944851524612970787567921438619437062834787109591647027814882250176996675785614143899454143721794589639593772157854445402775535023835643657756303728789365387107275277996027178748946595113756406351366593355861639568813157652925537230366200449911435638850930213318256575085095719596612042831945310334858692212554955548900342653599995646846075599293878637638646294600245903500175818943301572034415180698406254510001672684905206159305907819572555299206917843720364938794750122223209443947652907914827768693913574000384507607539274196473580309377182511234225618702590111460852067127363099049273684134144219570552151628479663099726476007905709610316341204100911205143021703396430736376622699518382268233981289115068520324053046008479761607458654891571360022163478327601111363670019125989393684519334394865590023239392138269636838483260999094013332910280322458495541100051891507784973293108295374733670677601927744910597209342016711537633575762490428080308468094292763460117431345735114035999772671813193689401113374348577066220076321494021794076641909292387153717068877959635513549604982202695657111887678448851118092633890400652670788543707937780520553636737848660121812213632532212750438081027275542738432288842998161425849196928053158373243027216908463833484431124742257883852001170694503783585343527263615807508712039467514948602594388419293593846511106929335542882814515019208307162618353703561327151709892021826893216825142410333292689344611171327393781171548739126254113007735760274989604988353821898337550161044739020968099435155123091037452802003816158060969515204394921978077858857917403126629530244397237266190735031475153596527359757033545998149239989923635485089450308551967377716514838199354471908306064082428826165787878761559841763954248805864764325077074851152546868227451099941017445135266121804801824391972505948780352006767544997714298023973315376112426408567082485354423784453916932594082392004381866217437718744727771859558359553847033089367694163880205199444140758473343810329334369525437072198238457843399324558674226544854235727899298492063157860789727142858688405815923436143954018069110133483176753083019464829432507417590983626756027934410863771532617994145049510167465314295569034847412799905683381461013874250185088266510758163826941254818376293463726484575711491597102953105390510503067337197446687995680592332654096477418836181127801063610612870755047542877895255602915511547290898203361399972417446641037334114123502577388265604965012779757171111110397708576619798118259099490814844606708779544838158016045513191338342364911620633703398881490966969165601061570920146972693371667181826371954856906128897361049585917201776064605607220456454491411374839442290517986563638430731980695505054879888456268130878595211058762595791431067742576185766662569905997102576655423924643391864141469137057275976932337627934984328582749398655014322589692889337367772624871089588033796676693114227834492715375964311532893590896723203329439795807367756524943554534924171912970304828657106950704733186131964362544423721861093892208359188193446117708813522940667279555862218529504129018783674233149877990454921278342967859569366421725850324635138778139553640722979688133545898967607763320506324739109813302888546146527584879484304884498429016353734241520920133097702572699683622329319267128436399737542051384304065009020947796236487539360876649138800600411528641663366757807304638286221821597856415560780234877060422442668085508505390504362858572468010988857440984242060326918076008110470708183579075662530573571574502717415674421241576985177261848660199811880927338905260686200638257305238331428337389058336164632555825940762836797082228185331585438366203450074695894485465886943452285186013186764206009345478860607246451495464705608563047283503937926131642588776223877388287372031127536575894203491657012875639546038565865327949571730124811877303017068571303956533435427424385170590740071194499042267736601602726694803485540280028320599016946423206843648189936176041552617132874898804778641169399398946780748009341566036796697300695791190910260631284164460621625476813924912557333949783767611294149465700130761002786179289453233445407759338134638128042754903254672715100989111514892352456661053131256919050731418112887949187634745761402080163926502099014938220524856068446290572800580575288780286312638232713520673661449698786728193188515564008403415925155231117059852472000969740649539027563370779386959085110878194717243200697567954355631156797204332695640672539595099469070895792480809128945743137637266485918184154392226867332983038506207036552908772741386191347450091411539348844250910769013711842508295817266286319721129456764748772807859907714508470131730044720754491261804407198259807887532251303057564977564782777391305786544343737284600372720459682206900375301464546592454218602947953187173241841226155333265255826545786595334459103937257851724245922088134909053814294906426277743305213868349810771453174958033240811158356394291779758396341624785667704687782971530519900153734477313318393399657093270634808157817548422353053348120165437845590117864624482676905726013950808940967768066981825431685640972287247890540365086137052915085139290606072417036744135651426581017522267755535434807539446039778463562115425241015065855064855380088287819174526734372103968858205570703774566867478232294617917837123753004205822812861115497324282335785101998826861967399403703486831961320016033941496535881031938727504717181125862139152099811829519521387918753200896162404741146927150533705121158006235284165510257025758047448017483796008284108688991996790557800598397123253246987407455260423917150160382952567702960458208088967883006465520874211355917396724456066225377362793658359521236923695080873957674105851496037848631574587757755504127409765167390689807706331015332214875188924349270955531908675853453676025441863383941004325964975059539374176792380318821149993427923358309513869526493948864024131678218833012244906045860352146082578887369455146679666471360462929692342489623713859312138395661913774639377082121910603775167837661891439245873420276255417552429571218552687073326523617856747087487060846644281830510155763389221983438377592675585938207680344525034975840807427321574772084032182224063691831578487353529906491514175528028030736418856602822271900466007717465870768446937487891571354242735362868391102098156486950337180997750978669841020406792450343723927778419956494028598717992304952263979304273517100569656433949946286465421370090397329572156007746276159048039778921050682011821312265285169325690590949856567234412304242462293396081772843128092769402958047431883837571565667618128114444011346012659961690475808211192226029853082749572756621383960292007045226145687048818090517137804807494223855934521239321808882985422093531573745664024316272547965154626704741642397754621370914018750232837844930250013235106538908986763368122485105497994774800055006680287716360268559064267420585244075898962096819684826175752697004440509679154094598484462544712104349681060265278390120873972334091471554908333475993821627460120713612423549932076418214120182544747236478623763341467052881883231653461848207301309110643670601823914034415769246018004267295262247966121411225169205925965962457885728160318133813591779234371480471609360395851937487177097183910537031310681122863235558098037467536225357447141437635610545776592959065446345679986440212872593545696853480470055962388306489814565032147279939527130397249833840146596722987729099775005808139604379563096488787991341507423536429095623366635964651918416002652631654293453559809889769954250979440052462258259761644469282949026434056416002060458486227176783731928399210736147862895862390241371992750579649977491480088718777729845449464194471303484593528499703985158720286189825834007635153122871305594956867176460042224700456427013241561184619710769603410465362650610367604569539430758521470608313390284275069626555974041682222650507153217700359024534490349486578702685647179080840125409016500401146609442549664260053770347968864922051818980043246305273712077112189221405454685721005646271756600202118353930603440028222177788705683443210375544445056804351186224670461522182093504538739127272766490522236717417940991414677893995693164663587599766858065692585997281001468301570575445351400734520940347928031469987281594845341964747944764913446258204035990627594761595417972133109195005605174455192537781578972241966932581502342619409524668121017540700520485412910465253952149261589233492005988415230751404523538834299228227952381474381728391046437984744060158642992667921423201676779166891065356105429890244078086274569948513832538110919243201049074135907830938199028273087363322589933402871528169123942313350720168865219358735913358668295646353999062541682985861989934124031392876654855507844326444894310899908563639744987298436576173695430290371721233295132861024935219898240833321875706269505832890972780709050640710690134206310324356294561643333576162684389625045953749270662861591520658759591497854359767896934778438190558197316306273053188854724256523652297136569281547356619456887836584435261921788952334132179279996006947394085540586756271015842694474455728847634605149372568997096602325694023274661136971080420788138514951192449895896603869680199329820265550030739123702785270370111677505202857318654387512295611461677916863886538145826556645537757321234751510266780806686608935033743305749971079942198369008963325791890597983080222991635432881211388175299785609279618993588250732379046348630962370894831489260102658139706075900879576151742005785350891513771961926655979067361163562682897844325440433102431941963259365612051823815195631424965237929845082004059055569735023482372648440160233755326215867361627123585363389544055884937961132546875499822353310939103571455793280417294253868253873375718462218443253154593623728428509630738560415466100806506381259175346364753127300782163011922447540666908642528031764871963775424565912273931669448386633441574297067487913686100065885796961506379342221468730798877087265249099192237852545577911172448837544963210812675702519876808914720067329408354085908456221053021018825839955481723625732194642017135406239996852085314008001009758235006676109489500491045514171217212226010797624563060625879842168799376567670556498521720383947329055650166175699805750688478422350412308634207276426897140964446485889655023272814053919720760021421275024967691636775819203121648062359937866773899787268895318839160013826382934307764309741792262922992138970328282820477790093530583617796140065834798926684655896023636743791079964261553789903102340256509939109241086977518217049516942031560244960646733591003163088404259665750949618570950369200018739269525304669989794811005180481886815636634234394163165750850960076517355368350261083049179385939405496063582979115110526553402536955487975424590096594162473030588180647929805640830784584316263250000672520624614637755548606005002658305550182245499664371333178141632442158477370536168472439786737589187557552378264178102705403784719867064775884651365949096715118338949337871971444284166588233971806317475581721450638586019726986807275454911088455323292685277499792488666971392162110094972213036266519421994126429441075805980887803405193302026529562697725963829202980951611511057811269772710865377338972221491801592206108850845166774688691270976224034169989075588377057871496192279509798913985936175186684814367679352456615593245170575569537440410511625519412879502539950535205468088026839521784915671455999629730590497680053550839031085223333250270915877188292195519774903837109339954675593536117500377632291185659144637328698414915869461918798741558260349110473415250733404496244629836125915982008017372010027239875546399426832555481043644304135430917967741072018846695875611258689109134785077713046847967276041023522482391175017470921556805519823206669160524890795517056549144567883662243323528169422275579968127913757831914804274199833296040095989880938958228308055865543013083129629777996990853460935826367648297449887084447843784332109259793614230993428702461425977988490514015414102293755225766218913051471561258213064442464575153388938669162123058970825079488078209530738648017053776399538507140829648169727897248614813732941447603420473209334804258634606024886899307298697713746276216535144075602475663729639490192036453464344113127869334232862359881571492593699049192382344909134930589318756824957238183610732586268523076106899593015210548501069491345331304804738719546608898812608858719328264466343748328616503011745339315513047733444744357772559510070627204677211968282741891313889581413199751715146009420294693175984269850361622337456850611752079935430322579636854508641021235006426050238869849692207683805346199376653223941222530622611502348065639948994411082329158001220442876423635450760740824837702700137585886551748011500994955941164153184143247572079035373563320948729549777604045384214180248124786820332296033324158423802042539396912459967378997738618733156749834793659211157132963304328332203692534414721645907612292774490246559318811658403757433631375148193642455016129441363172915721457809946443785774463931123722546466207202430328127359861103472833877887136223962990245705549808196525935474934682701410152563503036896157029682697564396319056922233555742155864865104529572385190302648568802502165002955489361754213456422246792160861570708138399076700753815892899868737319518841285201782815748414468070185202325846088371846782853913308980474058094497783042053160030397801750614549407554172962321288755773328596867309155555456036266402419996161917155387205985984267246353462624241938855104406435203998039327944029277219220764599390957730527222884010181615649034942455412079576647187583578876181662118581901945339422240599992243593563259287106995777797251281899851041518403218599554693282142606894029204674451558894420109498723522474928916690334883253481775553273351571650724047952568074024628369829712601402536940328454703608858122733411212567425298111158523883523918477775313912844002244308828232029607130910455079415526596684196205148348052438117118139963586092169020236043768439643899126768569720378586321315370589761564655844150894916205426361069969466997085168396898545420982819086036334981238367219172401693737985995817686681101887809330130993446913456165781527247559817806394913404939035917605452839225234977153142838024136207799225543345269390986811465768521290705330790179146278319277349774177332314830178370339472173409225430724966982765455174654253912805383333487311992951272293766507158663812577105448186339133295394849000265476696839607846635763548227477996723200103965043335726424973981512357278745773567027185197555540447413033843249001685908491805902457695782310295355661558006234415925931734553467807679618617062767365836662148675429032047745565859514419912379805096029566893038381151470726704431931017579761346045693486156146614357662021325746216804644662810173147458694745026047129814573265758360414784675381443355515006104112164904525328616708781985782387617738296961445001887216986135174442242380314686078735267730865977244613359388595952107914472522692693499240548036608606605895238182398179285354137693373148151932527746774526778169898710673114530587586016466437167604980527602098032678523074334919808415447190249019324860033444191210373309478839172608812885105671114828378904590483364596858702097742860291386561299144583786977932404126762839567040689519666961625141708256487505857072568939498474755619812745109711596292088585876002563738030101969863790438496401498732494649077727579359704987893793449570927036883780129744637064752988452876735437612122142268308992172897939246250252694736466448199683263569175770595937966690043950446064290044019715517388461244992574985372301316823398652963634805890913835459030867424226639745758977065840412338473973466160611380444613609095296326234818485040903334004639268860959512683748107412614381087657743963006506647148317754043798186567297585323661421791924610534681550578300505798206265390726259417540885266894130076888769010044687706004858258544660978763308429466942194631530056275913042511062996175581189304904286911610642133393111692848591196102709676582112585438042033106143862176376421565476831569880441250498855835572654029120660398149112106281305113810166768597364315959184735522969343431822250448789442120570981595696042170894047147227261130256060650910588245078977403597100764515581299334006086743672192765732295804275410035977822494500526486313019876029194219512064667054080224044814048117020466874815800163690760753977112765829267957719735461875035334478741953007479862339316422006529600556443724746148865261516836833453085433393282021477890133430185527738435317724404956086430133517931595040306536879077950732390321794316816570431494838365240963238317019561648147942507831700648865684670476227314872793153081096728329593815929040368825895568719584916793881579253950669675986626311462978071219652160579823479026937134550617860577002532689910515941792783462970587273840805194433198542461510038104182980433480840255513211033345959930526074462847779079620708523375939467833649544417432985453514182256005208643689656959493284085321208920783958306284760139278605826866302100703395339740973142713910114825125374148749880114344083549074564766048950401705203706318849751234756498340083389613386513626305302306645224835301669557145253412781163251349633322248149456562677007076025577968166190825310774170757889955892251404897398705086897431597202965092334634936896773322791840968376941710014121840875699143079301551300895351925642906208294771375454308852175964535650749946281559802570849573836830621313199384760653654772418737036976028789154574878644488494611069147280963447096955585838506948292177261549145636475071457016859449567016805827329512541342953731759415539629075306187075116887814497587909715137553407028740461861199109071740216330320051228928598306061352147179534795395781654651348754423539883106898673210111793878928273519672110161970293846139454039004045643431698093026705816213698988413756720588911787372738013117628519448353089283042940603801269812827938609029217368010936157253229929904293777108227428184764115638900968358995478637283545619089223703998982418156838319490716593690634342266668233014674124058326118281167118423471493974835902098208151587179998180274649587538208201690883284677256294202352169454068625819722235300722778072405999262153606734920409801992126790636253030367681927304424117827631678649538403389814704008484425542077704974969930657867338995319095594768186628190023307879104535433126321167566821788948915400277957687829172453416722143731772789050705458185897702918830473028506649140314900413195053982179425941320790967460772844280896486655767134516593987902186047253162271480645369237077375353376738799376724686837731254497320314863084237448245539565093797684939978566014748422864629047078880791264781305119045328710472490991970170025665806087733312057424522956687607956204414134289421090368993903816080612808667266497179294120216108570245671072007194163837687427371530940128778182505247708945263812861710937580080169226637951587462653058070436028399654094530364979856744423878353982007048401272843083510559951736877812456279135340470765853209176882264399287076930058491633347549240312750541048288030009362505725781526219208794534584416251449082258919024987028444552885673002760173195818427583470768790089384845146697425250856302413602765802288208919932002911976626249806250219570236562154222044606367056389788407455556678601584471213792124514526798430685654391134045299159053390984432227905764427982251983219192312733774760284556797067279822534746576774134126346507641165227418699268941823459123724503540519462576771864055817957856596886673036173249434137757829140315397712164452633299851112982369712135877488693194486987006974610579618219446773173189251763555662710550105680450339126298707882775909392771413866163121977616497290650878977253327734319338101892861321051866572239057089208756641900571865589830570915303923273978724855727574625357543203264531999996260883284210390822296225397090079606506129417904853838324916100277305718137279471228723783032447779280843859418823288204219470045306978606148268534082235902646814690237864135245863999762142522742075451406000441755508691438372832934776389175944285664981688749881904336830539635494131401874514712117903564965033436153075144409470019808600799370046623923349595678467308825956979849727010794993587174856818510785198304295383254474976319690606154915400606977192935850011188821784989602636213804289030952335913781080816965621851238588577984635902660106207320965767346000602517725981243774957101316917302759615423949481871976699754895137154681260279666462256738289053108956906653883956367199867090800090802786241177982950535263143845608916759405829258858838287602919390940790460573937226620515656575469296908746536210394643455420221193685139230691055655828730429945018150306420326942983074738314813243580788333323337212425160355975592566617588489674885454481248228400342447274716013358882755302210999508280374975833643962870075847294590691674370281978284222748342240228187067474038191498616060843198684073309118406743725316832928938081342272035402539458493895334570644990504474193229490371342872608765730665338216156410192341528703046259152339376060034212192491376078774079736103559549908501029851238643775862028678820999566203233933944949841989467709902279125973594732217923260017523012807561014164009990276480848307006021512539075507017277312520916232393851267610908721052736777731347416071226535262769382827678393732131352976883348558689576369236627257054809756394018033839699685698569038681143284666995485114291006613199529702676200782185148416234419080482421517421272257951064877342396704291040884604470469476099692328602307365412739879129812228617446329645541613397981811404653829308860741316366151928968125693073417635555178631952500927224401645875348850797800512760072047855517526760514871704638759539781708798686782132164448792509392093811817636104846108765462270483113127572420643258462945810065319000585611074059671487712962967575920943480901175046515870368268659059189429864675153553671943509212836668661699405529640959790153104833285044704156075634527865520635610128066807479508506092625800756369146056904550418372558427432303303257008501704685913127482486229041836421527393273665015591912421446005250955932332572539546243618759679137407159875123191050383809808044620173066274874676597699483617952431320283037472400620951681853535705492085201072667325382873172086501163077013007885850912904753786301720906145139231505361645097218941306033567174628124494230913264283089205044025603886621654775006263860797985100609302797313945093415362417363343887861447772162357391378355518500515738346723857924294306955291619690198056043304956117538363319043769293059772117396333419842013798010164686450262997424405123556704785710181801762469058676355834686126559391383787039035750691747334517644588943277147467377316846182241212756200651242508098027244552488413433544371293649786370886107495608406954399291739449604129440345581677741776102523870959250105128466172120750581014758812698877649683734805018384096651649813066338138380993081098932696808399791117935442347115416708629854726527484330133446727942692617335526867455693166492269016635607467588513414576112440908975112419000795920012452409404986783683423134169426441892352395005131517592521222238973707001519131218010422925039399710509142805744751340385175771196463705593697619859818807785349227911764549566452297370287118499219123036721631889669893749284273335224855682410836338061699537705242909234552852157511357679635937050533256683516505327295723557024262481786713142444775852837188249156298710627530363255523272279835068012523175786052410923516306956778691461862760169931089042125599415839849505368843234268963824297642736377509354188607473144932410356150844264583890090228380471418099568690345529182554941347101467656543578757409947088081496288849701309325545290145107045005383568791073487377664085230344227880922838431481795283338186386895117975977599414121986827328854692777812755583525876453667982685527903028825305574760623448997752248622449918365073011619336656870371424047217192878463627141451025627698995698973615348489640578938045095306002765366206259553127655554562916761299123887638950181191635099091565369863023092488294498743619199309119112607435968128143689932061739368334155152059926747616806416975965057567343998236966775617609426700937204139089097098338819684205158724301176369934423846939391025841397048754440597379955339896246008591259443228973665366728459553577361150684639742047388471538783434200475674753762845497439926851381776249406611496265121498612218690045085804629577696558588934461763745191662161984314258279316956922541487348710598620782989609311475165844884730626592286224227095887644728255759606312252066547698292326563539597727963948016765242932356719140711558156302322842520424524448915436420486877731842716312738664998310491262313035157420942857060270012952593955471969458721124810630778045276393324585741870865338392476597138322223865027412364860903300327785240736770521542261385801219563086538833072276958169711334134384064954100438408699484821172261997034415875798750855934932922253632697482271248906368331204267560811131718104709617436484863210494822776407363842757442686958835402776973183810745051987628691529694258650600541548880668650438344051423775456847877732500475513206193939703732498658150728044692630204494877044772314030529765079512931298678870857957275586550758943738752400314119792546979106734397634147125515792667027234271732589348816386540475680752888453717088006018319787963081766974800049444660988195333545730146007099407247627088218987384591478298631086333628232727102861292706735830504553169504867281573365475121039114723391510081789264354054250273478343560447503463323199412648264174533337154617327817426379131213225127118564767857142364088705085012283109611709987585314353175827246777309149474405790059347983362278596407661587738430058528075592299672647700800289558121631871528583150562088721026761459230826813879832941682120295203633606223436427815575037557931238348256744446687995955875630397881923490512204970971015832646333121624945700292519926829419679910465347513034049191757270330326613548125126173207476818620927281285525352663601300668990863468110669813585985179677084310985085824185017864443437790332730589383429852131615395839773903208341310374232189769672830502758118114808701365084292040905885219366607021423920617203513898902561724096636272259934250369081477299819029715765531847967751346506134935953817645928812205995951100281563902259592069967260584450543973957846426214233151153659089377222272896795551013943712955364515863645990480869560539148294032889184460024203569839364458597099377136069944842992492670797053950899880937084589106029811927860012764359063338219905159485292508316273342246129317928265648062156444364805813579352497320179261316398232007843619797933066249339186617439540535808391059310646169860874233371561502817522772113857682848758080416053888129360739479180179140480646193975819562091178726654239354395141927171962680784675488960249737468582387701990350207473081124863287214034256856040885044837514461899534353965401910542740856766014704067773222729086818123807783987044137601484382285033362271027675632178125875345678176491842853011748645919800652496859400173633853979795628034865846970140335041639357785023192485800410250718365121010221687816802905186741435902099671866139276797616906690076712593129985284485807247765750930462470769088320976143997578722753685712813827402971609124746992594351082563228209476584112908634577577974954956489098023748220211384371326935502048111239205403424694132967734489285106170194485970510113202683127607784881382550227597441788203910844259884631953586457115453922926076844066036524797261601509930451898604362057745959892970565007364460189283347190520805307645747488207199906041119008319904859942511855760955787162862246462460176213349648714908864727091173823294343472862859443421346310816500960788782019987624858865670412341245149042584002656747370140228587177784361954485013995778428018433603682310014152900513722457990815854722197227398582891698881241838619569681326968991275370569733978558415908110087872915872191003328496151473735604248212121860338430407997781953381725348083335208294946067936896610647935374377255432261999795296501342073003909135050348442204972843286769077279040855934528321113460012739892289147336634611711619097191516294909098541298292226031144953972109545781530277829392997457498177431514518843499633277150581541713966244688854466924769408529965209080734295938315828372144496862326419569058796492802684626118918279015621061126979550753003558045286073611188677202162634789355890759312536186343324669929664814179586586159110052120790702197059180466786148002280424612429530330644463031941790236428894098096771405579715639639869042076385031791897682274503613706383432603482876763426210439500790512631254622932542071763097488969383364046013515333695031336673955867618356500071456278234210487224523116865415168306565399544147382088480194839347976796794819500102971682267400859543826436620758309733906839585778939874009933759466150335506116381917409037151996977580895048802068578222760739497270514110127421275369282404233037685362255895253495686170525450303938000327868609806962328781142624684687907587237120069322137903055083534192716529258820639314858424451534190843924884285317218522275344271625145208982807389866124772421574602139911200324417171856785909229933379978167468552902208003946258278868430497823370814063610867279837935167360036769580171984269027296887563937330066576861881862238498819899949799703495230226438670611175637306188659447472880100092447810915122015733263460893054886718363569470208879029600092834243909584706164910159473465819931723044569412793566674735036223426830235086428968977335990442230810730276488515458484626001276672982007710077539744848680295209966178969727195110572773004415867084160788446596597599458459798548732689711434979457365730608434379502235588991433840368988148365831499740305769351919579756096052420839419623714755738822657658931835323106238116004278555745328331407367502627617146069661777820922551839378766713629553043070365277974227415346022615783981754518949147078123320300222340227403264687556686968840146338939507437828288879039088774643898949980161387819818628731465957221023559570272129466284879522314509761229723202031368655974350839855794952882248971247959739537674646284483291074039618841422472748478452456941142477909690366477955492885792947455053183224496755543322204564312072817292506670136294511351154848537861288600232077260499064210966748473293491394346620379825345952781594154038214047655387127830871201194209756543190442451697394993956142100127305079192043829359206614622444820446282655105378624723268994804431976503564459081386393131258249121454719525110751427343901617113190781907328362836249520233041709453754594459740749925269982783342500148154642379221482076456196459979318015682268874963954517517357514602994504859260548699862610843024581277150528904409561437729650087108099581185825063360370085148139644979346283321620103544274320618692710855597175190381336355424208324078700608719285648418053668678947429866244977667219745051573142643440379603117811000278859455436920316313049372378455501761133381454404100306138148412910966078303556504556294883089921847885323569271898508781712902434460627835641640064831237280772264333543818414181537115365585723194068327234634423577422121700528580052266308097041690113253818732929440603891519367050145442664128607255965749526682581278257803649531346118319176262042943544859242935337690953246123040420662814537738537424577445160902826953286992861068378442258233358359151598616722654664109238788396703047846164071930378458083464428590590323647004958045313176947616463812251364937886168658841335809178793536206253873489111499860278669040773427508929777679307993472361618576308632496272372434488666618891071979293559448199430460860121513263801369348163069470572884542974304002155763119899078731321180297005379993509437304399988901100346314253861908604099011227191241302766105279778441327653869427871447251613955556494379993590222280288695097341424629041182714617833079891086533248264215818225912011536519156465660975481949758880827915930152455828647457206899177463556668962276266048068121095320239536538399308540484965404320735900724559410778952391053577739027342353189371298319905520097666994386873618917455411217478189254337366589925565374271691735873107994553889112485490813402744117755529868502159931750102130101828809421599064559341573045386151804865822796003902295532544717051630157855897302727413628249272484912441091870346451899991576551938454784540006498564919404175277734390620529549026762492608941223762989086193884030538953652314733708882786797688803308223189551443008645394866295486026405056396548883790150842902964678073617055006224628230895913928431670183924878610083509128547411829876064327990500464227370517698171445299393694449713474722453755336372611314298328592909168344498129168481197528575669797481556225137299029388201158503846898217066062742945162885625708975405526637071945656360744764573640257893834057506432402435981576900180832825421568902730330738652942053136631779779431295987156872935515115999290107884007792883154112403051166770569907518635442405726098509623114835030728409097146656934951828396201933986049672826756293432417682440515737440414408799885634312462339457540096398453419972355188356435535769221721877651626820372902800126921338806518697830064066289115433972234500244387276439412007440681112129366638959674473660545027301877694918922422199310881148576662684391967783000788423591244593282630464203264724652627631194470906052517173027373764245445842427159820785467697817284309319561806633034944358236295438191521062990246732185073265582086365278735357627303833816268270416457263024352798022544390809258327870022058381119847108213795329149598116910690369329735593231184165737186393057399626158525901328673757680268693413831453724502225360235594284758299007781678228402165214096605227898468891854802172501610240102458210094697437749666817829883513545746099828530097803120547745473716713533649923870245013067409332324802081446593995146980463211766288247554384591649628239245896370695205832292423020998120756152424272227573331624646709307864461640039476540241028411561097996250010787200603204662981998388386550444651215942322210325100178596906756984513063027660057357929755148012499066978496146898461241288368554673775421844684001833044582707614259000286704044984973896122987627568624441114604593918699232420727263130044262652500210990302920415378994025642276291837113122690058490696757949405035939308976812391481533061057149785121490862362134754698069189628721758561856859602422285354826704021329428717448136695885798418728672334092069192216581917602491433786657557081248690138872745938844992760193252664208013573618376790432146145227370871542110695234427477122070584803809142307264888016149589618461356204150993725161433376523785934874009920576670995797850619248374251406139650937815556823926598106453432320376531226078604764539741760171024873186606710727293827352573136035154341676473269580941836478001119759339668917993211853237196225636567988466003104918309070463731769071710696434357971070942209937228008849961533729469421590023528865443408035334094488077563247529297252961260257158158777973413798484323616383264699743855424536579211767438522622165796182056182344405526058982933883150486850309229405384434566326236663373914518068557081215413995755381862430529994417406331802473888181828416920108907579631428572160111000236266207883712096892455166780021591618431879542673712339183128917546329196029746513923158330527173228796661564993711438960869224460218859464669988192519069019899561613108796526672485948951751764127635391587551899209660775286154204676874402260528332003264546487873782704646390745922988450221616547413753829375184279228315867466689540764419491867777649257387860134668205469252171994272306586674336220212251957988049673968121413057374886979707399938574067710023823287321451186403128885997469939460442699786167263363216312771665263101122291599001177422998787715234390892235049671552570730231426240611943207014620321494165008480707435140558989969168534176059470015915845136389462512290747490753030929212901302472339649954229547473005798509121653668127612119988026527082753836507256641463305193733405976407950213016306461149955289193624305838365092027734237457128093433302294667713570581783579805409299910287275802721027336056848794421599088476817513450344706239284495912969364217467817459370196749135590059112365063241679922155900279463977734504291333550638535491647486874845329466635572144947147936824178190094743631123927176501231913930976366313891274070118500388576134002280020756919937420253225837397202469643686654547371114868847076849417073004609469306147500643122809371763711551214722966639347356258460991644626831773628983281121338395066712188233822147569485763246909336644234258486789417616729781884113795137712221878080007343709973835424444557758398296615163603130062376989238101806388983731145993756174955379901409880057640147334781562389990228568072607276533791114640871535513758746971712070280266666497242557310617823838521224524141058456640648348749446986594747013045955358982441234031059331937949454469888464676987722404646842948807456591560958511569686762215280929895231751549234825343912702053047909771097169103317680612352008483482345505505991231164348836351366669122967228833079422480407213658368969214623284284775790122449668249589568350471865806345415591318021317114114920573767466893732258174879756943912750946071216970646470533824484541309700989007145700687382871029333195959075785848490466488101970650658565780856494154541331376815280528766684408576806027681226588046949404412588044402688586544346664985321043150171052222725274671142556130918951242484000904336579993639076862187973120261398152555680557415119733917940350752989191779347141686121801271923947017145238358344074449713998545348848203380534452928351992800971400402609281458503437380065623471328251567473865675642512558885391350207284358617059504084105068468075958066635051213838930193786338746355335361490575926182596284265334309635308559191272252151236345712002206404928822745035527596674696790248679725062628714456090410595401717868249910311653982177225952909559685399406668736378709792783842335425287184487897648803199269403485120846566620556697808269606531689072828699425606178405039944020219353670439614550000678395560709117345469049176257247644770165118767185999883694861707226127399347900690956164563048285745569225348694425693710350619181809272734412607465348437650744029340700014823497914552383085484877796245745746903213030861735395550218960191859017761561962292690188627997352113094863954257262968224439202814851271671285106589052729355890535161198396686965582052845061392154999061582222616127868812168683749361908285651328487125841041936003546173850858444071351142290446773718189863029189253908165643182817787528940155303530587170144225627611402130222804930069937574143348818106380168130590089934733453228097591214665457785748193689891367509628428208450661832437094803736197119060026921903056685387069111948789761010152217108511960278695399188021924746433749139638046477284137347177272753178908772304688000776585326964928718432020760799714112519080420900582872789466343493240890097103695694059857908071600965555735369273743628167605241653180184103589728827261835957411969227342603565259055727467955082181064590974163592273176109967493821108927777367245004693612724869717414187385199250232285185342187687164918928818296744681080630397089362872867443832159998846239129781390540879922306916011062950721485108097739639073229730397759817337664139191401782450679944960051161381349450735711630081602842380846322428213911057717224666307403950240538440938831579446394558360934672351269412141696154367038503875881917932136084563241672466364382568522855563495451187385669050535380859448062722538792458837658602794225776234080259901142610128520000960759376084609945065382313066877376828989960732392910768898822640995528622198348694806566919675720706280913999136838288311808047145542504659685075366783834967821540545281672798150427141291531582157127351477253903094423786212048314420776348781964249584181364033124305056036320714375547391879569121931192400921776187752924807480434820064886713860944638710822203846053752231183915424758068320330622227971659656878354399884520135578383218079587100369440723348277039827794061125765858236787605431112071735898705707429568199412344709629405950950531120068929662356786005893831704509111176060468653828303989613201643367793813097739822164380426691271670588690648887244027196193680768170130741473121329702578415628182665972504138763519903731326582403048306073823454468552333526993792358777674876655342581247317844539433194636269966011456357360255337291636073965725007369450836434709384841867000941765894722971469958741654692257078758051307711186253145362073875829130824318489626191204941887122553448178575735526426747118948232793230339997115240266988677517346543018589056307273154021199751342340251658194828036805098899340558268852123337710434899091256551894665145826459084647366887376285829098555779740151950545933658791911046795799845537572296456546210878454448800089806785207113067914933249926201141628165144648227133998617280015081697771239518900492656324095022293853770424833508088274189939250045599535074666554381309734122023424446622533318199862708983640745676488896588903171034059978149095138254013334499754207037693203508853124821689940891706683710739754742974849519291355638460564047081718240426607143738133257626694262838427896544615760606829588853864594364467968185182499773001749386624111420237869162548557629466123339913500321176337039670437499908806019070900001430728559968585344027803276368739532084366913443500214879044836075455690962676235240426701756983828908435484578757238665108027824503566147208900471627603462245896578205965443752374020277421550153876019764090939570827060572044971348225159718025328841624205871651685832244904667285194429651760885029777034303571817105295934200043854136883597089116164626842606628672179120700226843064245584668282859836836372671223655637021077506238673526249054160705072146920348426481909776548156479072537796237646624073925080184612885017895849806056208735986616290666213427581144750036097834304760770620268621520233603688959789758144463027167752912977428983131054271874454332642318320720575059680274853144016746558069249625602679889696423689591427315816530440536921568177450394439410391613190104808226814675712020911952813801090928008699905268757381904835863526450076003957886350708842957295625831282286667250460425502411182086587219242956984331945398983890854320859030089163527285744648375516906134864595676441018377658642708233841811126030142422422373859076537320415127622032702496835089263715949230623023133712953406262302712853163564378710034774581302141474483479447444840637687995174465412109913051680863069600777084333754804452142651531522371196055184331821856737542985537900164945525783024970940194562366244119391157305318201036689731519060615096247507149403308554818773793682389040660192197520364671451178972912370960220692786223077981524521953050541321317482860792309711032760696822203039417150310292914845411456548384809503427698395666147422959251319533182746840744947841115130918537323409382646311416160853351327842007572649842891799712763551166634856523981070033990265892965059464629162999604981367472172676923727600762352552362523736380192080191808809343965476857883269337065347468515945910265375923245698475529627875736236084519356898640484521192070376216979197423415553136690437133233814335597223079234145393799750788937644820009130676359880292914846590560772354806077302754667403755099826318282782453452172351721188505928482810851586115909398703094974947687056458952622832529524974919550991029061057170954555059852719851258821312591273935697920169894588441742989266930469026296692049928357776618504738420829197638111159106575461016426409685221156790853674991348270553796835432299181606832333151480411879270625554411879526309924734162668686315633992911140998694536377778866532127153654309230101844895085762340579551411315532427975737431914147589257641942670224158999730468643500303837716983632281193779651593804364620219684938656212914297197052929777988107201301545397784004861173453097968100001386599621999419600968217780479790820118236302634176002822930970211455199837601545122282812379341738948517992368966559896748841161819960518129402583428308323413115297371787793361718749709258426488947267736777013938937561347106222784540234911355202763277428997213428149187789650084695309801334022929570111572382137613554241313950205039916002833009409663544141982295241297921914789162686193200681527638335931939347530597426302965667169744253454111548156067487076016323792518170074762416241157371363585489979330725634515836624840286469226537175510073133525687238193595088794717918418069610693939340234160451085278739620258939753698155452892935680820859893818784366168606430592703135516814726478965996589002954193623405801844646252120179582742293652812995543163032512585356090285050524641991957852449055830774292263987400592796979701428590346282138655790463525527395789743644997402262696294939423388881622910116239526107777839495970990920155927624589803942844541571150721593828303503943357950380373157998432632213852680633166989723193992861258076030063149763612975625355594217645742480110911975288128396362653825643253590311200932085271045964871345144406977786483511298580758139718942905260568704244845198084925504890497389494915873033565774340125764148415318233889694241440330605061574897816506258050112296411675194769450694809625894766621619381411428487001966152605206267862511265850567660323334089223102474503617927750192987769258243498788174695518783687446149162940468398024064447487988704334975038590085325255283529869374981686850502082615719261438540829707421866756897661456086530758059366832918072195013024653773728040009987888091386699510070610504859587305120437731447323918078999219041299205076387025749712845022873049626268203343898807915335401912731821061124571393715851433053158402447093776048844280938416733098473800986208789498709663565580885611203313943597062146990830679770025248317797435257006085634721429279064027069512316916145515097003300271253360770745857814242563173722538328134624103957339475794802495767696930859457368921556296294721314501188336539331312501596319559784386419254588034746883291861026078328308277285164154892027249555761880286497163061708248127173250764904312367638412796231000796382425598298801383702730839162923572268343787024388808584837822872779578349829519608537039756375251392939595793728278192792926505526785234165136755577218069939680859575353368375646551734123879693169004883087038761329359506945655416208295052167765003830770780554749889568002346522605375287785088743757619711757684555214435387582512175568244068359540128549079965426271826754168812959169596278171023910235478743685869860240059773438762748770173186455689234404478269158891008289154554956229033553654863761095714568482322869024744974961442999565862889744808274096465949846680857972926181045606465091174654360255799528549350027789462901817677914817964813612201025729697278501670314177362986015793317697891346307333536955224313067414446609212581755333731488838636110953199100211746007383708770375007150302604034010437055852981998596268905011641080561263170312423239039998612656067300180338131636826430674925578040526270541810684539094895878682696328514104854605250821953523625780926412945160396653202751832481445420662667554439550550670993060178275721295783680267952298086984911284918309278525129562083480217936879694303738322722544384590349614048655868072060905512344153483622276623758926669393977974291182210805310571371168881064237779657980647487831677566348365610947464736713596414797133006068452204773817292164102875878973342670771650060708401053162985025247900987776052004454087938263308112121361373317456863756347061107308186134419947367605434865545335496404361217645127658074929791026002269888157128738084197065114418570643891548867780722650865826240436089756538963457334123811752808468028177931456365161349611628324684733200541713344152164947625847762278956304473244929640636424292746872071923460207341514886443070014626411652467594615890877562559864018385217826756542173743423298446152746384272065393323080338852675274978873140966644380269489978687634379960848559971966366418090100607906004415716572677619540812060154796169097620883756667275741872670826105279713293089318557674201565404002921109238906717645464977692067974463123036530523872806474909754229180673192035849138485973072176027192884319477153143194276116294375792859033470216693875471207596646506438894514567450840573262024128135720963109239094488220474821137726469301494654269812322613362163935984067826151466990547629223700731617390074388616461742093605259651689680171331079271638604135165829548683092980871937297592862705492924309707284675202820375636901745596491561338801112182090761090594983614011977153449249612636999150219253037569353550789838398854095074100672519348618071415219949982446178147275779894618036868989634172251209048801996874947852831265046536107674400630540762910493698471056693146016522179474522948066770883711179590615759798309890530959811848152252390989980815740591213019720105882166462979033456908989178106662142596780768487753725235423543225309627256935415207508702852610307711891299143326519602542477004274486897560710758953082903971840084003218901245808380682396397174913197788510570890199717896820202909498541522369904684833046624779731552174375070176470824320057864439016741043858214338443273223914314328674169234578607677050492663700904522006599828752231329644935668721478777312158005795513621462689933816108299535295821161988030041659123188342474036372496951174686340991982341798525053915868520542738147208564480522234359451605545151383355742181908804389989866226708049104368271749222443621135424708899019046014888076064571031790978816904370331104048927600182922210190042703611507975850503589893996818562525100161058954792951809956827083279231909003492131342474509281479211474854596535366258545245486736665911294680862121633717156523310336911915415731135691789650316481972559896002642139625341105045844813985822252675476154512101169395863295414395742967426185937908805212256005874490856943052253938801878646975191107777000304348143254788714387943706725429227122024608810143493173129676442808162479355419129896227033192397061211897158305396452811904245891329901658959033046488045377360161740196992079215606697464244438524475152558331721084515903313242433171487148034678786430968148068111028196456110633253716162406635777862481854888638336043492689586557546867206648613270905104596901130731297836037421529834392437846961285332249698701445369467350009992926747299271222268130959287667860218468428049742329048392969450002778034146573220266697059941612917426609425163240346410609777609191608314450201417370655845512036833807058669775314538491714772660604350391555487340256178613531440219658791272834146825188049056964952226567703289279109045651466101860201095752887823526331270729719964772041025911060050061205430701930957888185738674773611024559141690803125970937104259742184889801476495507221013773560633495873199897155889950066959334309680224858994154225418612130267034699880182879382933231273906451979100455696826730029820302388540456106777994520833263612448876618603758963360006797350053470134830224060669053392321688210746261794716384526771117868948305363368618409477230912725084356732276212672395829804502515764053739793532164463639304839285373200700976798128800520161488737372799776421874202285606860830350953891389437635724094318027592119506451837284269972775924762969267246241070811405795227559103029978736565449863947133353737915085890701459824858117664933679159183386597991629229067906612174706087104738295584058357595646585195754275316695046470520273064131443060183100745733793008865450907115752198219113613873453094178840872962328256669947318467545945424935177225345972610138115851521256629961579486092843632454897525837047764851660811104346248322163696272725131393822411330455551301382191253730902886348822705655868372632743303174872343718431417657895466317938632607472869435313727078825783564105638913485243820487417754390512905256273413234416464128510756335179240619420232296890289373953539447852455043877749008669152597615595758968521534050488452929997198319728053992404731550952405492012435193968602216296638773768033549235748481023359366204235229779853227447681327705549546150078832043264305040242566981208628123246748301143136912731571714171093559971345348844593891607294538043986819697749879643597452723202910691710078036472423883615705709207761756404818447757942076259697703246297599785720655293774327980427179612200860389146664769982725358516597659954108448490147506233169978069473128171425852615720539629061155046162925331041834589458516787379866124741047068690052875063501621532609490740554338641530402730651475870419640288760868325084070804897901794394417634764095008305178407969980346287299279395787540871699652128773148256958482618292990439691909496733292351073701248716185107116097188740504214108007920666410036400761991376520546519418783738469427979891780019640982992975667664889909422248865596494509317795497907891603560452507760370713496819704249336973792939921270265795466298466091326679758281557285080465594851461338591402107958719744422093188284003059112754008406052146907543212632773052878971485555659648106558046280018086633943691075830398496264319194635519264069410068350290354660517622498693303082909846434599850488487903462297423508253867939798267993084184681200629909923511049214874416623037558220106466762987114691290617987603966306948126137628981664844687713750636064732083358223468864627189414878007344753036601407129743223430152224127047275310052382910905833879074789893430027804547874212823015294783123028140154291014612961953221858626748738658012222957304219946918204589661643437691615605214663878291703365001721604586340234892216325296206614023806955881433299816060569494178335340880823502704100975393346959000953339073876855593098519796062882294709688751151169867100906846420233591826055751446779799550317685115497095834618617151484007470594540443173023259037930336393228391393307055721490222350813092216874682257985414744827749635366060509971618068368042702953622687169414617363905860500316464420606515067082412508491129871124074350626792508972643055300822931693186673534851444624835678003244271109109891858049072282065780348602807337359744587851673172108068532032028785450890526797873298739335696785643800098417639999974484338663620073904172733853855003516330864095529232602257431935341344372599014622434462376709881269598679353326528610700906666459518383147017614512781473628642363287745654182290888670052329619350926358027215552794516027618620507911922482370917534808915996371406936209241907340392664040032700319409691289645362606858103897057696370453817423217615426254446478410764974775317095197470872441705953266592882489694337592094276631508913108665964468090123860997262476316532523175898028471325192084808964891277018748196666864670702255800757491505601789972422056251249585291819580287120597069064662478453474013257928077938088827657144032073959804594025765590337566395569648037486122104555820160276852439809975584327178535092053530160025818531108939088744733169466409679686625523291784047322112153491212967961209227929198524203188284480199354811053931748741429227991054758784690619068494578221107685593779500429684481313550560118000094451748620166329246510838063610561039607131790152947479878914093167887930900020337626383163450847366918120096584122275559542071041150825923324507255017358609659877373846726595024028559893175721647400822022778956166289079939541342009711072731495148564850232010674387309394238363781338884683371864776600867788213231055028502108876938540321887233980661766352510313529442803847657259487140718000683470789887041238320616555911288574158378549445816246080856090790656708042348155286969029674363838314027227300889636295967413527849552129311361716604910696431887873016159358255281934858509504887537109563883659001233093220695836571160513010527773315306127951971683095304711724720231666316858082291431405246515719105250754346668329776516851516800222953922080161628776562290545641674123635345682425079125629690879433498802414042791941229763300130887484508215277170406203902130199060015166796552704486974454519756027990009221987688932741834424746524816468082766485579905565225807716286873941774705225228691047724354148201857946860802372135311395004773664535692353618859284750751401475650947299133277400713291039934388253086957718294031872505080667318491972416875815542011514868865796849252234874984401794460585506473511714453937639091902352101045406907173084525772005751335057140556054150057907209098902000186377948608369627218598037919135503125549644286326650626193268719945662379052015057071747794565953137025212031056910282678978105858898340634160007993227514638318092728211861314838225430065136450566508702361442210567533475216651459912218836289875267372069588586388107551674498282564484271632875898734951277078586493720541834275022651901006083077280468621969016074785342096808957676588454800433965505555977388768298794844953948349212724232227594382753315542494117244062823394050096123112605862686217384812571385135154584655235921169854095366140698633945255134029958632313737721263496857651305299203933515239078588730884603301827687812756430377892324811457612377642883115723129903429123375243508541603278583665806058677311178739699760894493375486747630036231282005430310495477513099447163892325616762530390125811698728500721748759884882505752056940076419903212946408345549372231582491846864549691085459267418096776040794844275546397203613477782560954430010123705061861776809679356089294741887478927633314031178878874034265302965227246511933971656641940698448865940359011638388221392613597635260405592309097741181564067783904895062020984453093567389873882289339055016326874630894108835211236071724693488603575202369981146552863152186772494549674832933495990622433019390699600853522390678671458804665525334751759554603127238812625969014899957803072644359886956485365863264203931946348765812316447806967179438507230196574164026988605977632370242421918270496671459225770830061289352384014594959140968047840076292740152100912601634858411070376049783822185324905365777622490850159986033683582085704786347087064987094005614668562957942293724373196276863188947089930153883991673621916594408669953431260250838641244093424782659972394607902758697392326301418123227670061778654010906470070316026714235723022385718220326326508178573492432039536073433787306061914051832610850439811011622948106570596696318303361815772203110744903607206512743901077059172000956508457852417548581273562791951066858504469144638767562810338945352395194789499259777045640314997660453481129276122106470016151117448889337111210015427206374482032568744447304208189055450750099594032595669979644922719607417853538694787799585031006435749109613616179529856608780548604017491797736907005282318958619744151146973678642256353937136381212448843726827759329542902927633578699122364527113466219346042138405710569514587098064658476123617049647512162877285482463352676912008726116497131053935970226892982520140943051911883765182758418740077072565899202764316438785610769890556914927595249610445728305280791955684981039047991185012799310084258187054285998031425452343872340757311362906774677655364446936892184415252241896360289184326896305796876270701892504677109261261069213071302716965309499082915359713988096619848893679981449134990013606727228084752494379164846329415042304728661757934739804665677363482677542534424565179568826726134737858402366771675220255934591959754080061033267942462452239108422863963553192916409637354317712932580707648911284747528500237071969846925135383036843365513229840039783291767576247841611239411721085164795437855500870945330889496637414383007164588797706162476199900996251660715553685285364123140076680092407563713341184963149625184957143607001665704577949783262915574170451824335365832400236872094704500811559026774227626004073820487436844951714511564641052246032643232187607317935692261242527047918068121047588569902751274214278418984623737479795952873858898492912213185814323098719362583433048484950618130460662994126447842359738592468750867513361806245106241479579483591195662588541155192485847745179552428806376538116818146146221874907329937043438674308682143050914750365531095151658737545674421578268524788070047114978190196578837824040456939007859160963564317888194467828099235687654914061867531906929703677127891069579221670347604288116990678540374152366389599673263528876507445100724629420072304477791319236334647007523950818889038368277340737468874232375741435378421378711431267088774652085096678111374813971450816631152759010441908651902098816908645650665276055408789797273648047962709272569594707832567624812655165172427928988206314744769936116516127860836633148411286070073053131748520979573299960825178110366155398715263511311266203574076668148405780875569627959418575109921585654024162307080203928211923666537366170659959885381840635985937344035808574842028347621804862765519660262208032865415174651579191902833054343544636602820744486512865418659645722362824452677168960204781521388525118729624680704237672687713611883457245500409894902031532546977312393954983880108058655611678037738259640325590769669252096958654608975037100980585559393879254053226195249399017111126232859154315647684212348926248758752630934375131254444935007487598348070945439733778913405005152188811912071270708959634948967965923880447770278392763031426940169200868303704260124476872414302206006930618383220926610719671435947224541852960501982773188064559139878976892758744228517675231040313040780041207039411871462958166064441754580790299298872906546804637106072468922478802730112177813375671980443809001577019186015587924844405457584204518022404961943198480417197882127529332117987771400510232135359912081798768036979400311274793931500291372462123992891782660663087582527647193564942019175194857865675688108396256879868577610023247765645301589946937307892830443278060422646948514889713214138502383024047274769322835139227603401803300646866295496584376263675496022455905832266950066534890077211482365599913794533590734346987430816810371782735698616250787604963251544118344412977571016764139412869329030958548510235194204355134538791292611464255249755404964152182973010011183637714555224429649476949398700972697467898290933743335873655678523479720295690359105686120677955670856413660842451681687194870569655645129009599695981210686007642574905098859379531972936574931635541768398055117834808558423595297143690261365454915237807534688332035849164331943624917135187174094850453277385489894915408920359942197544813761455830587335069947071326557977943414604493453474935285617698897764929919869390905198869059187948082034340623949149531255749424780677381373274508178405621845507554953512342154030293093141258467062239103599808383380197274664947514524782727495397815616795322986388501772911478867556614298950545153324761309020766541361417769971950715190010835232262109909792318903391807087588913742034261165315414083514151483753283532773047287944859687759003337266712683447442529395565535983142340479141013277050473568653411298515431388273597700706263731727681122497229579165348435143148674017229753540376638778504612648100625564393742224794663867791945537999579901603258340931267291479939444073617122255076199223312922299104054388529953714468402324356913765914795360102075431179033030735599927090880250688037005862858270320863124526864826918210391608526798620635464122399277484420109063286486551845411364442036101057395081057576252220470134630190280945254403620329031158822857286319601937782826673544859763293264926136999619039779501225789209451534833458029561430241040449347941508553117048014288769995954944327536812052438497534257393374420023475249969919137710553646764338583079084119677060508929726023699560133772507465139101616466270955700202166877763120169583348093614588607911980904978614434604491120112812688017805157643696952330968008324340410047172654234452323428178105934247947449151472564466257382006424163541866887539566413720008342327757206994650037682720600530760386086546926924125456032080673729041889601185218468384200517998734993974067336545914178039605156586829404029307448043858059375611733348280197519278265337004072568517345779761408876096701849511489799178174943191238112471470948067646764895582031906930619636804667907592160763061666638727387243096386975099974796828718691862012994671308997678070206655697938827195499849698154886455227233897179760439761596542858916653356366588944090698404975544145309283359140146613841828634668004822841961179251566692311379396254605647196817553710312402904454810591562928251223140035466581849284252200268450216534785889203763654113215351378797580920768157257628407278147758610401166507061457535865670446512901471363435217764024319083031645912401366357789667334591873163221718200752351340075579877167803215167632255484969418967799684784596394493999830658350117413093462891272017953291593877628188006384497143294266811517804857381007281203908994104599296046249248363511140247278541004329350622690779499619175249044225759605997458195686899253611452495576035403719392350303951904370406558366384659813265675428848494785482232251131207451657521188589170778339170288810146107312777036531594156681584638517826316506538754406169469395479293902073185417239587570802672427361366190746128092762851466648168315335609062363161964841791902296011577786970818058755948439070261896262138070575773627066586994250398010785457690027690113916481666801407174939794247311560435068880786387478624797033718368015803396378556806132412404695294259931538448081953902749252098213345234518208737209286865663424077326170336730932307395629895108264114911102539783181952933142037971954998576347900396816124827475051638760642483460054160914310330477851071390148773161285391056752690574070729585824399461428477053320688022685176726049839847477492364727787578962434470563108714475722796242921476086492454384883602100436330425498677527150553797231712694337731424336348359627510891598197812509014208198621132121561307933444954795168728256029576853230473320619407643278426518849194378902171056463073416346537690155334695213135324599796782895662131495973861008389789531645010106915220038922674580181616918050769437922529971537578394713093367842969797203340589669967109000622898245522587200451184406838530098910836871880774819246406029077401701966082991791163060991615577253030373996069682627476248144014185489414728712463322376556080693949769083253331424135159021666643124596187624604451224999622943470310118225243296164875128904767914934977926322759252860710345058962540221124208205589846230218836483273275368334891734813407696184911227737874193864848641969783823099438230130520325993617753534455466333106890830420327931927917725598917501298668959759258664505948903494246353009309497582702495490355552400536844700803818120606975130778738521868046907022112028954689510359918819121110665725350783621529619171691379848730065670548534804370409056538483664263470072388600450563113524360243089001992883882653996038035369031556307619181872573303166499501512917676706248420735786574574838645047655279378155192100443785214091399931009752591976098977088487445807959369437274353608107488066545349987133599278306943993012259164804987398564162028247659744695374276852041891940834599579984177971739698992102926580539481215386861361017274660669423128859167430361568505315640808110017999983047278736221986599743758976815928675855523106228301355004564491406664951079594614426403304167892586402654845233900830641669994542930486291496875742187212782006947535209093493874023649390556946310689176221345407026506150376138226403688143101990335680997229310481803383423149429967378846080065201689993482387435987544163056841948545925434765199982008350275607249566390092986382689517100798061214615063771599598820193887302938227503277531199634673578131784478560754738060656227191895563336605040207286860769574383100056077071469491185168349076140391467568312956161068039923255413245987478867886960392804549447804474825953699824385756440839070597753637843981070826865461333505047727940613346660436306853701534701258154284396064070042578888395646729682612234846924536679281425358305656593547214135587212902210672907967808368971705774676901858260623974706196949195093897741415147167960262706624103122863880534000722346655107000023185891438448768992928208983111324950765949909396049508540201412005637908315142284963607971190635036498738260091923836460939461283980342591431819474624729352891275842568999560854017317769267521956077083168367153159588810426420836932750475597637168305618136250424694612854533115369930458827506266764633962963727211896373493653072471637941730507709549868109203469936229232611248299551739250005454196582403126641706497780599099353484015209422342195782408093302782860987870188155191877679511012412328372892549468154611061274913436998012703481492248921199400778122439487279607264399198212028076518978187916567264463209956480280130164234617700810039229387048026038063653945665457529071004394957966614917023306053195917369837819627062902090227557423748504326848860458991129273833029763136126918963007973584299239822305779789215614085973634703892473183048494883963764811563537982075129469413485711034015303287040231186361721901327490433738788129424327429517459344865732007525255779078323268362877691237971741202728135008076225506818707972032326264295079327264737259285653477457866598990456555462414401134744122019908139601198751360251655618218857716606318347258687116119284331701270297280396717518586632020755813082600154849727077071194790891462779602912868269460811540740002337435559404417320190780289854870961592649354429085925489404294461412808073841944628044626915318124359562534533042622452664414400817285171289280916194313113349481675704436323078260348908778971460865039467232055360917253066900171434494018837516722081518791273028486539793532219579637657998294810151427399594892415157926259822478129470698538628200384242957857952466087617391297539879899258741001969610906703803765301055978907874113713873075024447070531177150369786551202732675109277107712259306627524566534575794680839101018548303249781185799641059961537383561962050506236889719609836746417326045347216358317370386773301912887787083310418111960283360019711398180806542490139674910789265362466577939650295762060954198356307286685992069977891281042815998465959174964415022231361847756993422766891280583687689337818479793257229428411000413142379946996447965837899035066230317297976353959336678469940103277630471158268829788582879804337936178716066304119119792860742518875709695044766696974706102994320417442012010089545548420577443764348811891354091127334589921470356205550896205954714879035142446978935506683943145890033870583073075671212022505125439509241980818331932361279851481783344075167744037331804532416688539633105536057968047278358273047446218032319344340609697056311866834792562684613709068610487524626404316254326132256056745596867932042978048072711774592568836047492473938765082001783439851415917387050968290949404990828619182992201342800050590395825174675800649553207405333641806856016863174117849087119842436298952399508037958695133652663596147673712699114832903143073752299064337494282397747667744038536884340473676686581325321082072352201977775766920205984238004058399592502939992973217713323133322065917151382333155495370350857613650173203429207410117144416091722964953349671017352007167339995677522917882255880182963090359582680274428993871382805442883211904617798102661864975411726580484454503377765194354001093883036266979249573587741629042900856111753210207706791534517893148551006214201163526487172965147622570054757033248509403054342236758602255815697692367294854211376406010703037205892505516699730683953719045969112542901924798319065579367063360857975052827898473848981390647413516152555541028479068064561679303431524115489221494081639414698855125833931806570254773667135852790085594178572306681226180992994139002239353463978415678883625551306556749051695588973786952804983148021033319971867833823799871740893139596289261747762033036464893597893006915963472548160864702417929594976304808965342183946348047909612995514552759988430149373987535512454792086283235141818547514059374776189962688567447745858559448703388743264596708146597992941303621405969200712720892865027099974855908954264805518566410862632485453785087976607721474954030957022573649843302705345269633410505548636175523821691745954874363128202392338437500263200961184508567459044122442305874863433961406583497146582073190352767572054544173843895167574170882168124422856521042065157130173589356295740986581454979878361855720239678572114121834401319978122055881859453496933351135230517932712969046173387730035257211726548894887952935599162448831356432237398143723889030267837515815064844486944611713620201260249439118522802325937887601141337415214106277656830331138720427941709654201294103144968372915112115623613880224037561506440017959800325474960126032136005539411036392053524898236171977275119027100553111071879487173946721976635514315763819694973593027258284064788253166644248565093048881978047123082340132226915350912943439555028932307526871833920101982392738285631541042517523039476288285999357925044144908388651543093216945407801639031465931247207577577449766091650952510123697913114839700313579268131197249517084256457790822966901431827931236080475812605102238312781907605450806306302518510997689810094800074176759998120719116066140986187217172715121928568458146891139525659071616649021383789649596692301005606165491169818947928811995118052151289143638464851066057045325471620556905786805069418058424224300868147201420689434440984155220621608456460471289599223497132594492616776471926058511507501704399568351802539656365020623490494896018033282013649101384605691482214375419457687653683934534903676505480170626151947599439912251839125341286811658095589638957477483350290659529519858736943570210597888241320725199771911017320680192036583444209673861417960286778295078825053957430078609374556425407007014545534382693474077156980534788457899627041969715638894772300068701678372348319431527597789722170200386052096674393060060112249401745860054416716154332084872689540575276311628833801196548783006376711053827817342076821731277174924020051053328976886085766927637380066125594582642300277686068495181321419117602548158211975473089730266498938667986366828357273989032351202502590966037428017983335271616771036466576950252965301896325079224524709529084528694298235599523437030602080170276609698501884857469492390482802240473563633500468968863400059841592006665576130597137643179580248736228534575557104629437344618997635862372805749218548915170912042841245800412421122961308641162521714488931592758803723742065427019988670786469810251962191476658362436086317375518421696777730160966009059999776888894235147889731051244759116661008202381329432529815172198114291797251147340527907165721153339470835232902927940060028855456604687122523962421525383493237272775467539945522342704744633704577746251320223205925645179991297118096350257659672133909474277122260689165532407603774417383603906963706149230441568479395419120722588807102901064623009576606193780449254997171034043935403107419592211096235695161711019494891304592622418254040365685155019076245336499492934179387290149647657886449243441862713050599280693787925561162432860124137300285605092956097586759483043060906748175913856740914561486444531787493266204066159364374890425140488490221059096647043465379655206998685862262724067892681659132454795542352704270706098450475624235770624647684166061922415803852907113265430022115385083262472119715315456318916418730480412945281758906150146109838612130041775641040620627878010254010601509316800801383144807971198105836101757427874522499347887588732893172779078774462911617787547001626196631228848625068062073242451364898326225953493634491981572792503142965460129316107712214805351705082320729952836359975220098489654940055905817312660248161206453382001323648396516291737112834006662541233867328382720780764321924552120598109831990373989906203556342938377511585118621547990257983286954315761338472628216584975399198756489910579543238266353257866541678505757005793024313569684157617444463188525266875487231492256161685219012924928241790668782891598711802543281802337342434743848076361807287766106858442638870497077712494398312095308784552085711215995860033291794565511206261220788072012096179330282983553260823311259295749140750438225000736751823852181267304427436100548011802742111531397092224722619650084613301268081487296056668748102276916778165424774458901644730987575452254895956666292559847665331292791650915482181190510840752351363039881935119287655703918058370551586776678457512548608998219217922198172341402234033301070780857390815219939080240998177309798191997143103762467476037742190251615209032780350665535188848914261115979761105720709385343862849500141406547688267161900929039437184773496450272316180148281658999596815050177268534692909343800402869345662946379951824820663979604862851331189281447370783398895480098139253388596402912673325030774231962274552905530536175168865081749828835174006523110244947954670412335398964589052354476526307622699808906575536337151800739321610220599478941914025891483546610221539230360285238294325312726340750487218142290408785298616786471412729320345188329076483562232224244644072764857265054733742961377578222028937130830777007445463744867098684267078824049368569701029341992593477642585719426233298620216338694461879673804182277164770377356122558354013470450011973600172995896821335537534970547813821969994629574135391924988572488698271240439229117952740951827908007181991514733436927925804141307074310950871852439357394152591667344476461910484714355476759569283757882719958081827114429194181984590849225719044063983311982215942861212428404721989357147632878101655923803516550157881402390952557352877430646017969657565329673370969730662079919567931911130940834477876831812227414475219744674065557227249827384817784204208069095176854013784073410445888510842952916964317083052660099744136421723172552562626579547556089715771829884901217736898388287755679487588511353407223972014114348138201347672223908992565854258759459137218355484635028708479488769659919851823366539562302071495441229640926815548353997166828653839019867442665374529151082142014106931290778409947503918723360296667267324528820433245779621597755847188073189139509259112900667266989683095224810975517695727303743742101238447688426924868682420175481228769396160216144373651097511885212920575981584398940145868165116828275118121220243780439460782091005322254598444754039449128807164862191649108267683280234756525500524791027284164652354205004739800899648607188517287028742690346769898653219220857307273097551046543032133198931781325601478710584370106583406577035969494304643462893544346348816301782569611202936408800671186089450043179233642833090625569656095017909273375151428136238083046575191797174169933940605049116155036779623271285905652317314635039391716306045893046190341071895469635550760326902448120855382731162473801880198195542007159029081033570203517253972976402368118472413573987416618772436666360439640606631587366101601225010416438305428043728047961829756202739751663363611506857419488289384943618674295795779065255765905722698009308372588350760176324702286089905210886728736458896871649410823098103279184227454320835105434693551264997257919281786241839671491431519495566633395533746175763213836294362522443103523088666457144916443692083224952566135571902231734263240864267972659279811727732117084681404715736587284061975233941969197279376167825487820510597081669404714417181939038974515413683300940743660313468816675508804214822125155664670049531869774861544530686380582614482122996427380377087587854338614664140979578742759908308264474229458912261741605097886477361706456855150799616489704989434827200239055777324668237247195645480013225282843135409632855996937995310332412994750132533194176807733364459787645626109813170037584939318168652708064180445705530278151169190041699110855057270059457841936806604801772561948754297731869011068576283521883523102598629803532218075405497242173381797108372739799935863834235623787727046218247501852225589614638648070709006312664301902342670235773775288362426331651621284658027284926738698867104501831138204973078684899265182871343089116040153705109455344525985396373864177084468171093142414714798038893995335550636380895727481973499605414394992346664916408773417502778174497081148047320115933411941194492732719303328374423470775785401310469844559277560159097888719964368104379968661933105074119655196454714372428222566998250086809340120141942828715458765268797781102321733131538341189271464367802758963431099331901614352802015455213971280695560674323757921977003177771574424114061353892838368061465576230693689695040693512126983015092350904219196194912588981808336240778891190333465150471855286863278135777007269775519541757415869889388699072777107863355078258481454642442097229465868843516195809001325085718522902878299123195472385340947445434908506014786902135980744001619324997613492877133049882346142253504528866247528959722277140045729153424818162555044032296260393788819903440394225237331184003939354980556256378877409797181048489372816232643222220006191022761005941467111284446329319444796273670405407058366573929763046332506216662056930335984223831694388186315591362862179725562179256200881617303919822061167464026142662841091456654917367312997349134931773041115701916798299909262293081178932025820632910512088795831575205211412802325919747428516512837506675110026327579616290496683633438484066981760694811293684256090799289054514539009289912609275474436228399899013404708715867617273372608627090697218291204010762592273090903232452435025064371516439226689875608232705971034810000797385123589305709199808848100089939231639692896644443832394538133613370360702029926700975629605360135673814033969880555386453393003090491878507074043136595635091688657890744055410097794527050088971305752301761482680192447236819705479968967712846931315180751714267278415744208988740222017323875744596314314405548592882919513084440201156261102376717306210882525324204797433713177346220320633835951117955460200506312086463180088797163679433472028052919114435682677453613226854254865097522327892483871741201454059118920346121021799010844762380814358097639453265860156404744617025398165868593235952222419328745814364909510000605341688915921606161280965472066381662452195569675460762960465644946369756292313221105861911769706835421842739031239359062726848945419107053866163753892555157134254397204527252938333283540746533573744796914462694479946137604938626973634287454923416246874312219200162843067219010644071735374946073223948283393718062289073310821134096803849045670438553420072505294898212973834072471687454068211310351694036222099314708069523793926491447185173080588368470232573407619344930837115894835332681557729446139050622854820268744181204498401202525102509908364674134779583567863632795935721229883144283735262066698577552875063129684679443959095351252408718848082117623252508700780395019607037667893153606583979096811057705426805460268598174465258286554483063529972281929191331305848447746202931375093804168629044850324782979200809665466482790514495977521716081444370273642725464068389737070634460582075867070585042076802542787465149116759035011072522200785323747606945681862121774904327341996381998210629220630629247160053400052876222690603783046841814212322431614883976113883655936359725365865347457011322735926997913254686647817716869807105807234596730409978111691794124911549892768446329751999969698241436999626289040719266996136545381960259044371811926601263518253393119333265652360751772963598689109488939025677842901459585188790959438521764647380936866524314682250919833870731795123915865083635068237443505718583168672767978662262443314624147591116814456501341139572479242943565070392299672474345813271524731332173050571507426946671002923350387075111211322576351077472601729047403392020773804272967668123923467876112873392804715853698451347009756934717069416700119477815816074092938643668834666278239394028099636505509520194907642917382563708559907074578776822502987826834395987718821170392232161888669462115127953260591179483518249327439285639394455769878204724241766667438478971318876501291070896314874824032521265099111394480068434254245973721882635744078880173964513208438139189629200076511424946841649635059049044265226109373287369000736646567616231784123819241234799261855030882237584140438329597516835885273372922791991985170223069305972615235395670225847261897157806004582082975997085818754112480322432765153052185347033653928063825232578749110096898260787080142621456448283282431324190583769244847872830158183678597185809727759665146461071692343148526917491990087521596031307099705166389741710175883491376879350548470649581611156443162581984421089439926323432252359685320859225244909738544160296220417028085325371017880425126580293440739015972683976823777255687601931968485767675718095361960418166700067015976136839308760934911993433850454505937869405123755997429338528026441376087655005804473390985251906711816064984620339156528681921691011534289745070552503282218484710900868897530200622311323867093336370845845999301571753346258910555249013284705899776525380407748271906150742007722514970250370982411313818493765804820143174163583396673939316402530826844899309932417462856137967192529882326355300485967839417715350269701044001124559326362636160161524592184308349448418986060879082825223590875198306326237958050161280773687558315340229399623153546172330978406466606621200125447025106373264091896185412347826992717863689495188869198078215939226042651191160895169083128544786040121446947565421559358600246507242483061366479787821126270088635775190649251550445315406550123060001783516713120835754471200482490922533388045105917442127358999952826578847827058273162394913004015688330590594232188038901287622250475964412778737099756837330716797101850174936505278802027761382425269987162519540221985701003585702971398045003362183782886534830313959628800260353939908625831492195415779317245485724183694935188831049957201458778676595838227807642416574197256668361400355236305129054340670053446401905240572570430968389545309907820167142766971306115667266759503336428625429211113355697143354985029149567212750288118060183383078791063089158119035636995587989350529894777529269475711668675755591685833384162314916231852025669750516226069502310517628646658692337555592740599595758804869915406742524424468260262006669027368325999744216925909192290510182857256628239506584509240551199406889823218802535230197379999839525354596454851330733785596275271011710903818102612641043857597232763221054411392901137169030851341297699703171536858745084368424635607528128009912084538932049882890152330993384671045047050166933049356716962390629334770780777399930981837192122714726905018300613569446571236901688104721964191042841775199552500941373117281343588890823074262875914592764528610321844976391598400072847597927700786499303407823690052432049171848088112827674006453321428681445434069983507467642506908381763072618508461415188860475724405580196915824400898614449413843363273791401463998740708960773646647035253571297826267878333741108781297378615062978169535060540352496221045615553400189560972680988752912640497790382620325874688339509357661901132493596628009059475831595901706363952233091859883995264910240419552777241501363200773442930451479183743851649506742260049042594612252558984364824624927068699893467611901974596374441762942729294324399392240306986681306973785177997610153190941122884955707352402129896879758478448091263937340987532222947982413585893938379262587188728806857859183944868513163172904473387894254685282697701621847412450993256705958542036067513467116564725852278182887005412839958769048168643611512735829874003721609296667868481351617170901700684491826228488589488414186736108666035077781067793534112052933725794650294278272892356544769209303672257421361868624989001035029838094718817737489018524382612982872468090271729498454620770509510424602694291053267974098459120942275974446548478962090063090249548426904635432942122563729659370872693252557181623572304741479427805796364636113412472359099546917665823547926247122694689609155076531364074171638768082003026910962635562950589951049268546452800787340640428223843891978723386953483509974401747428950282074817848666157686219959029638620380219571221190782858957638002795759694476229023580739875006568517719344914068968099458172692128970654596719684146742272535641878391660272944026239715287654571185429812454859207128579711106355068917426743428476444819421508576696441850580239057022027039783067458256083649221743152274742769184447397190205137106116898705467157918462776303636019719371769919523775021913734126063674018081840030481096987170368536189691074143624201932414957594326841512503368062966057975135440892457020736614267149609133685980570846316238626983224174009617873982834099720110011910352554899833698518847973640650621479609210047955108903347733021400023283583016368692832774421572354023898682966049511499778821245255595652996364389238726771343818645818579531224958549372767643479771612462617475291615357576073981333529204633940815958758421962116209378414762328495283103030546321239526632079739316664555499621547886955030452578902646426801351586290079058909674961208394326045892137301546889323430172807918792540618194101871215725780748918281301741138836685139982510766390227530737388174699810476382423536391851659825207224246425474044984198371934459926215906764251845912757072166029563471968603757727852037375466961382563887429938582102371806248134053051823522753437557022696100516865529066593615739718749609838766379723332897770088683820066551223208680264265366549417881932843700042810973869323648747998509333697770894043757407499322454679903136354215451377099723682486552077657167258888203373115624245023810100371042337575626820629078043752555287140414154648691092886989300733079302258115816235510393963518370192124741082354412055728327695338899118153165905725005015285107804796010316450437230472319445409546429004467886002921410626385005576425679787441100387025260124761262014463186080314890238023569301425358544375162012224094648167286034599726467468266078364229919844456120232966628649991205480628448815625963442935086139323811786028276968024777218146056163457468226847433321824215839987874454002259310582780461730648127675664821974009495042481014188458633765126194905913962963552061722573175920686980822968076945560588888160318118737526652547689685488994352666244539883281393987490154421802095815401220796289936307319429093177445511548855578009609856990612078405608143964045348293963037880096207636790539772745393299460370730327855374031095807013391015737387573717723396793277750353746328232418540336490649195583748008848613952654817244921154307583073728745066677824225149454401813229902045268502797204993435143687896425572821491473523325211765457497615656733264998838796993614510569166865880037310776075045922140973846158122956174076830790413904866321024924910214027079428824791758057645504838269563558203665974408314917250216404916973616455271425017854090087564547834223005550104364150927916751283838748752403614451160257656098936192019960205867960811170428755967052548402386721995099704126064013250083100766470348491976915047875304025651649020940529927472510206179427435751366311382905153565904254299430804602308183555796863821333487257488867812239612133510573619657058077574493518850500937817206872129172572731565927246575277812073713375964870525016424345567761385293398591649855760982696014878070764912978743011543808166477433672408729548625716954965597711321459601244251358866870846442838320569372934033610520893389333535942549431011696529221479957233091624674498913998422863261430086865939492092725299375150746909538490601660302218094186474190907447217606659612155116871601865125178761737834677403910796094841611878376029582809098790281539999133611968144637575506300792775494301039593093395794339000742355490648912048264806777930975224858338747549361066964139050556770404909088811990666307588161729613492631296817433668686759728089427525092019230470587085595337665269320782490186216166665208771090123430082362252641818373861836488329734905141340029525074988119901682680522385413406195504264588663732633447076834639956640266839557093789497392941022309560661080132540162658752378150194320394629594203468235470026285211202347525004507475225922658840347090383892483677602443182387689042898106500018555353931925800103646153493844096794576680661583049098636695522602522293209528049529529076928802407481992133922833879939320990978292935576237188353972553280009985559466633661026766516401857831161838751161708958389011092663444696784219199291642712275577518820591144114950334259785440411635497001489301894669543828317975983444585550231727065186632570920984321245254573767958196921415662110954043412929675164451817118407513170011014494144499513396851252006477667917874840633397571137093987447256921846965034377926350562196918338205114486603440092035817238766706908673064430718786911633609751703792050417058608830539163620925629621406941594325229556752298845876518104793271739843217618911494794666579087665338964878790498684400665686403968477534167129601398766230983742696866967214769798008178307593309721000269528693315856228049179941946298453096712333845220267222171359493883906068156546776866702962335534256163594855323034765591513876996323248401344573897860644840195130505760360587337719994512128070275700120040565519518828499376627386393387846616751422493503797330768279916855081308484832998051313208429310950568835905150265583945170292496673763013290162296395458453010964275095770657725137165747565845280116567969400534163532275795426451965126389198229319537212144959545385204375162174298826041724745037467798207462576638034596098598128400532246308994750189337437979218890977084098402282438421433518737517928878363592451070179832827828464941565998478405016092412239304733758485958624144847154272625799868754644317873497674588938089146630439856986816422709569494043304613699530680728590093468874741597204983564108536122922843938301712925618896215555657159154193333299522993305057921251619464643307061266809568918812771369865532297758184529264946597313213701075335968869265923122638532076500291214290793103700712601356957503013410898516294281580471201465784412790790682016477811585047626661138213370838226425029027442084696833073600317629156260417726042538290384889693292178677248091202179266946015396658001818574062398973980216160152466712548148535164668450692234497259803124932441760611404141872404226886916926385391664667204838551285382177698348026382217048351853756276265131281428724844695874854906670292555996367563997694678912509781946196862509792103487565042257120801196615885626211262097694507561853897474104261821506732251459310489195188908587301720170781937435624346684195792772205336865791371293656591625255993722836064896684467711855428767411705229296655028338074366108070784781526387667725880181810592580545124677356456475477644488214142169778130991253072214938138351573700685491445939677840839666421647373954890551881078931223394027996895956744812526025927446514493971093797344168930747101775510917138218415717195898602119495743279883930220743315056585589716064352025022568173088365615371728685496299564861597538282103281269051878781103653846781649580681562443390859630943377496096061040775764702331560266547405628527940429285810215567643252700270216645244601318865840097583358495602349468486153073702032768134021417559201683301581476904870990151550775378430767822687335388646470223780846710604170185445284612497009783520689064487881537930379288505005591428255459426089390926609000685577219973242713401799819127732931899238107085453982997678390240438825395893421024093126620201400036959804221417456577586572518645903839482462699841917292931165613947198725818234430220683013563898995209168861623781279813041245408925217931935079624828704303685706678463962744351177012541080339325342783671152899108278811361435322430766804801771066274445824506766184641348601886986483230982003819570369066017016607883083828250505493214542930586736588443507130036807845429176601576094725793448446879465901645694881318755615324314197737474725502258979671960451433534342283851196627968275276345272707489389323747974888089623109044035801387075323656931865139585147016311761496772117141708891706950982141951321817041005531367724331888990285197671949400826934956712399867966644216498235552203083859337678648968907561218392054174903286130937195755119803725695321366104147042043023449544495001966444118624215466865771588173805131682341971905043149943393871289362927364532504331803606703681464348607135101814579377337398449269971241796884130800447625549665222631553946751316573177239131790264574362831195231575247378600288110548441089603196074140126783869042057281418776580845764448912114863951790824465277619404803945628831453926777733271037123150111066673287340027801079696483845749598036504920985563460455617619299964888917671572375626587944146901715443513755633105452596845032881792408354191329352867018435981811235318176107810324162471968235821850041951443574597583289466577365948208815354029613083298036787419331021109248395465771045159233441262804740833747471618516893952193071425363946482705113705812365469128829782382626734144451216755697625566156353016468729163479588686671787473737582971001598724769860575677831903845930968752054227335035034661388574085213458120334105916014597163114973981719555452648320320330746379144283472078202970558947671234820697276849786263035331527888248379746279949833287686248016937188180389973376067128865741834271562327907386225719409873809552158876672169816337162919926151620993708689158504249510995571963137425448681169786548826693928470423679707174524051140323725103079164085276703360506340114362035815972293365984322313440560393108427748264284404496798494117315251426495587438559469634728776613245172158043993891564115876179082569430951881998582167893696817450294107850593680125715609155810460941440957187754361528002838956986107002925292703662901181723614558346862833609813080330797825308172633142333147155500674435199116507908565375253814775794852392293872725601901568552465569012579479881297431146034239603935892037362550044377488458951290432618489510773359060328865712057751526803895960633463591536495690860423532636132551127561170467185246558610818311892841102342416972508098957484875276022144603142121167125737800793578631614071138202309426183486243252353864819434029321807465128850795611041789847237406894870700193420764120416436279046421705141312192511325180483866036183367619201930976700957096465930916573789225043481799924870421441187434021232088339208008069150459143603054629168600645546668208672167822676246707693158969826035875388851615805969793278602200292568329933475027866815762068259728405354702368637594310669025599376647584264676245671068162228426045074263570796039223399156311368084843332529066655073986296012129550655466287432060783576157121622232206413315214412202255572158691153770748615730543052728382044790213355031524119640488226591316816540556789584806657804110888781949220934689558694632478444371665707589102103633438117752286091839756778414442315548649264404728417337840239849598891739169815787233430822245282466792945035463932934831336192050191237311218910341412354831593415519850135682704688662202022426668395320932521369750786390590516875871232376540758304894447930541024970685042404587287713369753910412171701172835512608886191143312890963432378020686021365917942756057312724641886129633896860874311323547317280329097963021698409856534390137709952826211784479288094583391875490014986199266467194726259634011211282597540225679427300570403481867041349838884186115196340401162251934380271214992512868569399204600638987794164395911749108148999403042127536683626812958106953612577969668130235291760950272394203741329310506468289502553048081859666088150671307320693365490394366845305096497150841808090203637471774712460015515539215822424509058253172150532303982651720597520933246340474015740305198026512594839957649865029087137336456854427558667318513391198079670287826665524404520677800117602022640701338412927053672544140892781054330756567652384335947403943355190491107165692253606550177250105362738795162946358223644562424224400709847193997983134096874520114401733359748332939685421702641956378804015012842950884137658694593873602858849986721853863859621738581851386563707289623814886724351720628003373477493196889366548967173960640072382020913416762398300705057865755230584949961621569739741044371447391821925039197462949011056343875108374120656697097853582042750755338562780486439760486313287718175813336835597286095385877900529474317155241681918657841380431045779604540200405750370578934164303569477662524075544339680491449572369960971467322062245981601864936839170031024004487128027553465224035319567659718087931417159061712464140726823470989106913219924498367559450372337852500191363381342380320495741435390241964493770399174893501636388869135896683817968495317510168547258663984657809051906199025928836713348417305171739050767038179400360272229403329215419435786589372782750497956953538399526027451095835400518794444566211150771389650481543494920871695626179787314068125011684786666292768762103282732765993594425609376459689629684984859512638701352630267478925175137816230006139483445398811827801442964987397130685575096983920251175974015140927794651879503772097030925804113027165186142201121022088308890364259913025756480537264178469777019628148080495316231281262147626554414704657911452173175153951162359774221950027891525368512782246533914116680046091763687079515588413548821327824445572896964577525635910176375834336131259069756257644360642247601884813749604777345651787170001232790817670419953355374423349826414785711480361306128852822803192920629317808933609844983431373095316113031488728957895008003083669140316954538240721163637914115571249840717931659076455395632491635565426404381056054993766960154054783317240834172733968367596525283526561688826030959829110803443286083755567305486760528141985236406696122584256329225620728959445094729027267998570143261117885470365665168781113473630124253278321966405318710294708118567625287465997005108539996357319966414298127637824853415755985501851306168666854915187290621055465445887701606961108588816331799357686662384832132216092106842111368815318231000747399187828087528833940422045868961432024253489624578803567795839888223277249794056340083451983630321771341312855165528276737525193968239669100427342179062574337150027085854668754846739859889405990900724717366615267240808100638493778299767250394058129895609970941889508050593589221300171957747411034673508291095918732690408131183040960706951814332756789173559625489574766848824380007041162354797251421418346436007184540838127657902007711115889758183172892939078343303464900898143425795861123753721021446281562077136529022308068385814115735410011467774786371517970328205723180179763888710719243614679428508083303423513203020805962723218678000828229809465379018434727183731989659423971241507899179205482860750827284320079620153793339687227219387704295001367361804959196326968217026100276839086554178607726507810755234851637149450134176402549668154973295341655991824769082540901737680859278523899182819599617911758162354496703884153779637604796016821623793270059927154095812057149147806120698452700247146186860764287480123777051526577651234402211393658308762019135312878783136140216541838867520773866917421524727579877585055885029136648456207395652854043167896409120274943219333042144311381148316894957046895030233822272000962109408573292667863661738994753428625533962678036758026270297912882307369067738203982039738963145220661850694849623546050628456543109535668113263778676568178226264288233096430044419900657724627006378293133241009037134013193464409578859110140909701626610629688012720601482262291611066054134302799450252661343895841094437129517459886073868579336777311391774828176466781585327656465940182814648986369296918942103669478295960597337678903154088971545260720051047272379729689928661897612895757875898813551171667662518617639129622675243332621168743947410469732117829313334370287224319581569102846650978504585416920128525689529671738550790249897114546480963175886710269522889676815432698149414000110506350806269361923587396614079514961523693920437190575973068483400005164313284060268212730852695729968486348904100462549712589114798245533482299595971474891752159023300172871064199549721462948210580616650843333950899953474680937436687091518299322375070740219230954450413058664004821355813620245658299735639331221697953339576248170313651643203505726104500969161485329825085446582647191715376712113362835620623564200936410209351664763339180208738353639954920184896352777083747621972669722430791531449168460181580948543087811736566926844565952068788195467515260017522547990859966589981442158632902935484082733944313839330940421197107123231325199372007498959943025628825305117633383962616933369951867782748470662221051781748266194054802243236536235866814615112411577069971816898705342363762878102451532246363641490875455696329006962749712458268428915870337545575394598825158986527937863482348951436351111297052748364472492769332783291924824534833976381978506701430512722309154111716179379225771243069125996301748555822908143052882204246175747189023924433416354717577627340264773960515487962464978216793634405529859271730018945925898797453874860724925420263972046295495672899025156576696456780824866816999208021629423744789260466380580219655929402961419709957524213779957722009444273610186575872851279353332308885010722698276174971987266159661074545880759316872110385520710221928283525480790935953705445220642228125158942532662340535241530821502861693013391424637038716354199469729296021659084141234821831348087261891019303164851734126909693723957144749514628741913124474330886151631880466427354741462954820310902056484494471734569903811877394220408560128549416979983454462310177551434863202243252047952649873561325387431940309752925248147645786240886181758051258060600628640632814121819287764146183257476169821317019127692646102173976816396995044301018281207864604853566502188337036305693469064328772103313792829635184863323057459866363556960405400489461952256377177874520524036571108089333819355129383530319845721668347043617813218869035131511062191109712575326176615355279915041681893679026129011135278543936527865134216945692432315839916110121450988084700301137907602862208857796306449857907811027243137444465018511151344121763953784269619394571104083902396644195904489730460720277172599018559709414478572918544429272866084202534801112445509158520802309974998303639912730589526617510590008257530819965386288976896780755865557548262646695059491244769977532311256461012740725265238453538167016496131915394544763285212592859758920234517513206047960995956013408854690798793463778969611414145002996423682967204396390284528044444909080783396609845903552491725522733427246505748357750753962197328717898139609037584643493774790237416559843238938733486652381635391179426334490137530829657916130521206875959632709126495324413335860872240809872941850647279638035396622631827918629389300145248801933814998296614484534296361761932371143827954046527836513259011989085949323273092736454611085542664136824397813000716467599015058905687269428561100259307098395726310324168600283153074010079950848326172561004843150020309638467008470847184899547087045088258897972989886825526085483643793246681528022683617653365626092237080811988556980711687645873810857304177668818901561664846643145831774748356588348606205187934854954853478595356453348968384721399470705222195462076707135407204366797828925869573526748512811844527747518944874284141242974256746931153651472981240285489596982045636479062252281406490369117415341098127479170585322327886511361204101089584194272626795100281912050202662390687327704690016984602662258495371430850902147179789485812221701023188578589436078163353297149564485536130294924511178479906271030579551098947459719946363167958834978270498624628404499648531490113659365613039887253278231899423972743713386758508072379463346171753265545204399062822808229428114442164594908788810102247415449022211893078133799896759658588228689867858785022302456287237817224547137812934490278167262638944746045644626926090542485096966059075091792486798989916930773425950041808693966156416126929616982674178700814348980465378789853497230942621354290962416229716535529448310814147567568298970825408219328827405043425510560889829249203589638904777074166025576665922673856204407085930760204429381410490004455528440230485174008960311187924114011595189551105666787427203258368782959498043369749052773084124914856140727248496800574568706573388362560096523197016834225839344017213247562760268806026145287736477260579590741333866540135474872588576451883048225495195865393698881685162893218867375865212678727743192279026460897320785800660894525890947807036439949873322920161460902708151201665939830757072082817333383267551226573319344013966413117115158237479957991713906471926803981390312785502367514647564176646995877415744494513967975365814563620916921455594305190557901582981418795946297125650049755536898448366424953284702276958512341886866273817981845043963199679747310256375143771571833759552101565201155949523167723909196688403431240721849549458698809329729708646433315092904084928445295305081868884510338617813452237879758994062369249489571760798985169662785549165826064280280323877157180529462205836941258234304929590819058302254733034365977699371812494483145577146621996878368692893469879961495460419685418647033307613444286035422190432573361190776601796072279873856898278838362407607744753223976432979963995280553705461828542933776973050492733280496477306239152158573770455252572680108330540317288534446003318494776832129690984184391747132725545249453252090145751716500423614537494540612678634887849654269698043171965750079478847770350196666628843556966900804752746580464513131320071650626471521220898959952048087475905414147966595676260871314030731369814440217789538511367493764525380557787608890362230705074247922243542722645624821123140436548663772444630370324045314377135580915849054893735472485518421249235767082730887370570613842947466096913408938217280548847456447681369644396113750405972228719322989850203682450218787815225999683047482103364436945966660322482113828981843474417168214652735247385999906204372380499879961475891498099879259293158826356251340620192782187619682872418543189701650876339399182784686072091522404143499820138547315962863134344339803193139778114187663693286108414822964079264736697485246694281161365214158776267261117889653574010753809578029233186828277106451134060842217977982454602351018468700659901650793153070903387653392039528606612790389531541470493526661283123955968850232629325604521694782459908502660049785840764301021263458858754831878857204119293372643647053328769700290934718288392751715395603405198824821940473533624781845025077257533459630329975394487536236458403085080800176386580084420616454286914015432969147154189259920358446698008717961074162130418018837327950259449742395113855964968302355863690747027501760040926118245566280531387844177184956082674941386575718834883742440204207835937358929953587910964685164893220536261609706669408827720480206455058691538179058559408361130454605322759381346812889706824291009401117682813065866347983814071069150030303997520976516753477140624465159705444099055886632177070067851877696344177137463633030758583000510542316699003518293363458594848666410512440337418568621846487460950919513718424397044730993575140945476759179461433220052535848823283441957954435078817533756394794688583120530416807719536673358985876900358872715374754314753232497280575816119426587799864864192593157602318427207073243563991759146337664266209660546149681044514551287449156825441923333844193974163682821053802778353728240409524650749234274348444542784158399867003647960777817668539388654903266342747337065146446038494730372278349880096413586949148657594444139567425919088956101809964798693641124775237123558864173828978297454385178896139549601695069000544329271506621958869581345370364946525099180587727590094145559880555643413746245249580682653095002256051752702459070010493917988521472828928746429479028466220163963289370988754416232682619025203001950385548023629881026577826256890127822939728578539597015003792367459422949731217601783658027867184228759818257962220238154025922053758727657892548393738516760245768892820422535031108411240795704094336048144843927257022629499462569467447388549235918606965151790977448129702246264699196954214254044972139909167374582885713157889029523042193244069303264028750119268508958249960787251881095579859783299368961336143678168640942785036195496025989371636088806640632890143272355256777504070348982097217682884355089287005393696775268892230901138227216541353980891519049359910014983600571594476291008038339357280476743978043596154616192910948816633255549793181263574120730366375236781205882429903731256506611581148234957331207487797113980044062154988133943031608250331377688666466630781380549388091566564681653957795133257009864642729294005697437386942698332461838742640513153136485668235474390632694747922668943693872552370261787899022726819760180405851550178576416773568885364124445388705763556993649315289614129851877135191055716835062456578910823338936915701349390809669771956765245085272750745548153443942915142486370203801084902053735380701725686805143981575989003408485897994054266733248354711772278167454287574727430461919674447815850893880083010578911581662613506088831395289241584324793344191534875228506360721402013523489696101839051053158004473085312445302294132547105743323455624856042196277718335417435906920624119887026460076525636481985869736459144600260204849797741988232710961958057152498231851293621444737369410221197091701249895850067600678024348479633784342532310379389307403877366190487944104055598853373189247125152364400057027196422225815174829906036649243069556103086901426944888663580564126828993208043463943364898332516568320237360013133718733566882064070393864008799889768525704505701445070963760396701243097446827165516846064862235651142191988694341136969723047411176902384400276509426197141641441748652249365256493315740420609890117924815622022723346201141540228603762053741435661146321234321855115617407674509614000230737988598320254357850027853044004841033715278478874528450568842046262462120677920386190012292996826586422231193268203877421580606521159061582906024166836602744114277496439642732698324445426846687332254972142919756430099217513153516189796392897844422884583301794076361645719951899501713248713663857838105253418222612636529320147749073639269051913331860658356050239422064169153510977622792288510481399391643461573993578685316988816141553958085299126107118346233340825004403698306526602834384272819666021234949202591640807746978381376061198653990294692392397934266840671638630994736877558451484559677111521831932233130931765162207804934390019698104249217410259045522981079218313460031357429169002314165238386258059249619296097553028435577505828690042777498391019259580970196372410520347479909958824140643691632666050808511257996675599194536833185404642131882849272436849635956148353157962518938072073138219095094922303536869815730344832436587299472494502353827328636496959401228116061854556341646797287696730918012587261369541386937609090612220853754916037057263494077117269309432564469444446017615981143213703078071823934600240971503436516401288394422239359465330635325968298167394796317778464724819735125466002923364871475677431148291117877545486746751110354748841847785375704733856877421240285160200881237294982278793722147703055023838551741452992442678627668962393505226851342936370110505307093731590259204908034666992547074896255919811036212433819990559349958572316218147190806829554239642256299024340756174869935240065864041365346736854710919994155999019229427496072288055512704427432428400894880624463672217776483509394966686455177240795560037976142082979354691872016800395686848010213328841145803169967667730573672373312004341732696250553598840210361450369249033267841107170558683765729010272009083442079875730204283198271863917386205881674754075199895774012756805930120875232615952743189724240165061336156502052447625850230407414502342884934069924815688922119081963045120715639451985000067636849352589481897090446214065358552732199882494268704688387548302058647757783064905889449622401587034383613077948986101798565334585623592764964030690014156421486813639807946940242795509188484056093641902035122239575959616355374633252325595023561347956149905404761874206096532593020732555090837483852302482890111783985296576487247823750245373816371216852861944372716445485840650077561575094209761087248796227525622753624523693703092522220342829134292437030002822360123277686224894093114407301341102776220216014079518351893753647923695401049795110495292715675398949768560363576178267902979382471140748369293232031481106021210666135155134574969628295933831723360249867320495112760048847392085026761553719065204815540541137258398843192605792535251791572731778078951990089938866603308250323332350731842549935179035232913501154125780521358295947922422130991120742246162197842912287489767801966120124175987591379812846074261925128564623960645400023420244373007727085263696474708533577985812199733127896766437255696316416965040723150316964239563526430997897473573042609432297490055866490921405547029005132754001567450994545290777631728406370169719596768334454919016335002485249175433597692427232071537410711361323169844028435181681021354325716157727058440072072087650376621193980331939938075981889519299126120601233610022877469980226340779301216919450411983436007038537698916728852050637760129743329750844392621482259420772274186563216281524364152317515557855088325481027850989305613059310246076720152751123184157545686798458484803838037206115097324947948851332895946618560839692904115119663660972889526432132874582396920471321972107665532352277018315114604666229820191774442303116839012495631186347628433419438418204993308496714824832485711629706962891925456666737977440958642173971746277986011654313249501291051572173441571250821929892786373195620939668896036562066678183129065593527361322949184399187030619945689634518846399785794062047318429085536209524582012496472745435803709196729162377703368288806620333185684450563738854375336917015906784697400497738054977210777102783500550134671077707778549948648629215807498784260934122357093072362832542906980282731064912448092817660553231362066693680662808945050540086603993647910124306927211787870253634785823059732584261596758928126756948806075353836517325651083171710186202373028926198847998302833403682579018491333508671267128228259928301562643296666673563643359488597052110532025000563250133284897937417472975846211982968275540975754225920893919470763944432666290925897681281507580584960989837637942513910079278258766308492081754261546550524072062697312468547153638846321186347717936863364333507794906977506344250135233900752807395764460858254041543741398972586240325653090449968415311443555304476612409152929790302097301095338437006296394346281135786732781848422261433677944385247868021406578341756690908767283428465751176368117947729080102290844682689280365177504513696084656434851444296221814179376418793650511288243254757950050197585801425332430081696451775373303510741509318549103032366714833211381340665705621747818751277475456509875421953938114811070578334162116922671440679065981556192202088642651931305166082446634255716558018083319376047210744466444270044608090877333521245616568063974099551731054446392064126869848572304085295168224321905207972035535460371403818992380572578001810724820143660268146362662237497808739489000842991958955074367833101380707065975567916421569215913162587296571443923177576261819866807894066054173776519225842727631493585219432083914995768313043431976292261420144869266184810251155599685375914168260123588067647515549648895998276933185431272839766964771212630782101236245125118157014622088374274935838314634029642062107976427629348996641378381111402099900049242560518113528632302097086971595710742307126635542868107619339499706971293767638677473341803240662093674815134522150170988633861093566537780634788407185608688734246423481512210414366640885404693172891315607545976806356306873074071943400177031113192120993762230175671665391770650990292079560184896718293230727166264937495037589149166957300111536730222125568835733764675830546671927994774842572263809419780804544067422968738967802055190677150904045392897676014144786734906180709917718136590587901502189464412758528799374033392236092079959551883659396705053945077546844072903458018120700542762883139200290329520738884100302963848219206953492141631508592496107761493574495704268039772460892477918288600349081428365414519875765814872319704737753687834108498057623103244451312092035247670509604370008578103552504189901299739269972441812155303294719799389141876358200512205677510177413862091544243753334379257537061401374683860450377459160731863633833871627118983312303167833157893191065596271022046689331784658405444808497662779450012194375061583867522296032057451551504198419153962722622872261403912651360998459814480166309569227920797510795814646425343281690108372492786369065081834533213171842544339722478539410191925878714072802898231962643109033318956873975050486178661745067997066275716973929570356179787175435339691922125143344802086395212698557714041867030927736953121521909233639930873439818048329686710206203832545358472396964758820447434456148028933637745265526822699727410572686755291229628870862984780344558820297131950273316754699447876640136964323824765144347750052498045461433047659597041658692699835192710930859871073755922838285989776042610585544667052631277700654686021860705858040891984353465252487814900382678949988184883448574671925660963018174504449094960182528227559400082901424755192644019133315214278529041554208677803514340310170659933621142662982187523981719927804622622161010889273759066403164925750386952530264126588068742147471654193517743882731859015841070591634113102121860870284709101306002085423487714124422744171547853402444488558627107559313882492343950197423786512742731101381923271552706031011474719496530990778828938255801160159343350295423299715352416991912769377042400392206539862637603978247786565724694353418247951007753441219303993478937744129028524954412806595072786063884275593780042870999068361404003112133578718450570451258142460302054595149089449803554263741451812064983121141597739841054140800438874389683425428994141165690575180523026980384483022718079491210680689214396810543469744402968642920329946179376256636884597246633162488855188265193864682451874423186825940918167306879687275846450211915599016179527008801028264301308098306337805773527670074401140133931969745379304971612795402609676419765874412105797797403917903883075632311666724858890181414726452462365735214071571188792120733905507463152639174707394522930699221990350951921646299191384405954278654665841910207237949953113018765363127772879516460344388829204221341491907991692945970137425706369787695436672576897554241347490742914551408577924400144822653070629105268402973925849963250045227108178097775422643921021675095524744262628016997499876415585905788031190578328362482176419271050870996221473735696173984751592722921879322843163576425943731066287423728070537741635080283491926883972502541788814288224469828567632566205149353693916052315908349877859599092935668797272645553687699941923563233216389014987717179464362654445392466550818327081589325442871828971257639530681279752031434699535825799345412388365676964466797781848719258011307900666637746014488190731688137350203165219462045412512269522178796809753618857987542266579765876152467656763017316866555868414729524594357686397952398866487824480644546770442439467246006304890336568990568811205203632056496544663165433662419229645333339061000597625247623300651631861535075029545535092319330922023906006545473963569714423180496624586059438028370937511953918089659230361666921594689036462791621669116067247995570052746195333356486245073864016235815439345177939075176657532850057970480742659146473489861117506149084360138817259525345872147682447012857342942177560107571632060742132606044658795548113535009716109852471272424377444894900536353631893629574423824462113545730635314629236691260227549081152029614972371208083771406170361892542293562764605835940844657550605335142173461573365812906088098843182352971367181839747567765123937947903774167447571664613017667780627408919482168575661561104063222889276767605003572483619741789907958185011481308116499928513833012892293013469687076828030198202559005978658817799222334022126261866237742848892440776522809552421174417386181777455853055868716193484313254024527075611468483337218536157579332501438713096206399468667460934621754116378557252598690069347298526271889480322533067732897148122332334715107565710386925661262802265545987750192412854373039019207079651704886672536077408225995406786313549204605594732289559442756969082054423141922889517695516502228388451365658300438857074382911988337238970817178222222319677839685949695135471503198712626468160279222042477701719062760577477303654754768906045111413312298248570934319145428052866669540699916306406474337517024335515718701672865631842148668682863957592859990884514596380217403437591692157779037324123661418767512794109385270679101811648631155480298256980865607863680792021603352290911151106636371698259767049322494529160626538284123595737895959680501585291504710692984331659186659346723629863197173644106502202695201743121340164068270589082312569127804640996953300172656747321485249321351522323562060937938183640561767785002006189547837053945462780579974082582418405094497226286532167737088042835875265739371269926304762256131382159791894075438811010902691955043406787688000205800245346123033166127031621845935310119173220873153213941961566470334834705911452461898105206968708639622754064839339302633745301391463090155864367928621957440453160752562027418355342582398888288691004625127425125397405154641620434359902029007701544522741851094428330486934733358153312683788401875441112413083582879056823248228190866080318749022065126385250031374968906897358336660670253064529930344984616747490967050068470076080239645154663956496044155074078291587483460391780254748827132784465065456238284987687095865904560374011948442912133698084264557134856908997305736038649495373896173452367398994495647660648063718928713391810419329715455914276812491193834878925434518104539641288280752294298961740653717960460919478681102394279305699035727706546005291323015203560288469991090925380646897871735591105804112346383546106226358540329505375722851929507837519763914581963630414052450339225015843556183564605666761206250686402435178241549053515446983355698935932677566726327638536951539189798015814543071293307452215350929821355118530959828890947164554511315784928774948369380409495763948018152190428692142123242932860403498943514117535887253575058651343183459677500764825445766318028399133924038347070950656792790675391863707585887182130601643310009685676559138692979963567236266234339135469889067636336545056868868493667188192866374985744987536191428791966492868290154582771574184870026513557408976458484277204725696647503189382941453606863801742761300342714283539672577890862556276126738305829365650184962299851743012830787292925004901654676553835577465649575216900481068525042213247137698707395936128546298273879899367694967767153988084064089073824748273186773231531275729709611597611395142578152118346948213534070340502932037398022611491099469941341798565356639302789260886556294737602837896642102949448330838684967411250910779015296894074354680594368869538812155411603863865409340135667848923968909880903938774844944847552459549492387104353483972767985950130426452090335956084572674106304236485946860060402487655324037393509743655161801884919187909586771996016037656109705720838617054329308090040965529158490336603266799668774939740931076313491194334706834010864888849626315659866979540403116166034946527155165749023992811562732996559214397883831748740884094667448315571026674117912885293356042362330338893332968853949546604757854339156921906774645179507998882601108661975381060793484286002135330717489868008181357861870665374447289077249532861701690167672453701486396333809951218073189823749321541521269478872737306664463494554200246180170482023736022386769774193407682457842010067557665585235305497400592420193696921693098194011138906004549629897978183858614977229901325907824648311302733577458742247124409970422787384891296201852616694576443497168590100637695510317620896923954846697788547842644426234215950399313050452297342494761877593741247115449751687774457658077624627879669536732749374277990781000853725445326422060634611610107329268243798252599847341857869524578361974964969826271828855264873916105055459317595925226406321605267633255736645868373137365955816909169908427479352926189986195217753932076789726105307374061313220191647107791817121494434463354841309433414150011945019228334622160037699295078269796656871178083422916124304143039399992042375372372695615011859036751925930965782605719954304399066879999718972613611727493213297489333584261375245725083784527261870140905875666037224145968188854557299160785535641925028463396748644906307990448214915812778461026807259526046723382828591542228788459220382253130545859972387521176757823398136654388024993555796041411751116312259858523499821672441396377976508640351961332275089790770825363530951581895015761112380664367350063939394215955728258426949627764488269330800387356737737516878351352047995417751190447261257074515955357915337285276608010101409988062134718375852317767800834354401889122738693950610234313483138850005688593232526476391286551459392172600541360752913699858457064999835632280613507347642272613744839234206224095547872648788796330875526494457914169780626118760666328969033832841464602397415634261165477442644253362520466821739706503927171439266353833054495632193315873278197320725205639535326184362591452249301413194479142202238406295045651690599038248389155236886113723620450960511405299659463689452856273395629361070850410302904259446588102981083250686125431099510737723347253798786867257278155033720353190203613219936221513685920329784186681288441205906138457206021031713528730450436397038320828198615702020496940362334432406266796227325418857654541292557002431972204223544130484002898887612224383609869454481420311180995911005063926611669443348959192243538956935682348006848575881374097212148126787513125610583579241991361585681893966146183205058764868523876754825044411304035292018071975645977151522671044122221909179897332664115685965573912911408141132095694315754725473846712186463173064500986412494848832420109816312113763100701291065158325371832375447649174957258452427203270910766584379981604840993465805817653418723236774480847602306404057856654265485139738856309821719022778710118092948738242581898090080759968764231214234731358363276577498048050245695342905680668383013356482988514122163441796977810883646274049626932776686617083720054214387696730748741211719889289839546194484871067598719825976674766474135659348130620061660970491443376370011623566221506155589495544547591917945723382224512946809085633890354698496140218303418837808514291635686085784839191989143972470991380665583739937872557752915628730117289841524839564588150062159292135606418316974373867317756233507167037298394871635402780584882935721163130677225401551143701242453644978740605173539912796888835126548080139429749475566729360424207589132974452561670581434258125248607727157305300361552718119099216399224562684668294201366954712536243063854110522260875870546237733191085771415436279811951531789036682097480213873888083205347942454148791309376006918566629733367765569696286758047445030071489297773928097673113451783540667947442329615339933949520197362324162372974965951855478385439883355649486878877888423968241170889755506524757097537859883328137585140805170215979946577867323162732710838054968443358973261304801080909241942426796002222229165105465463983883850558992052955429484076321746450731850715540623112956903657262531125243481402138359752007161974200095703927633734845282745117833531397823802742190783854138502263747192055905818625062893630118867823220013430624730888231830464104133565151066323227673020889950374733754089669025851437628334387886439577507527901182565340131384683505870310272216546163237704966061959979621341593073148585528115925591465018822416028373421578626728358455891211315673015220350812286452896521778713772824585308084788729730596194883761824435499243420299069145261410810173516365500372153854802903215002175051123077999217078307498809316251889878643012704688957134213026349668052117826606873886486593398435487656810998027046915155292880080473003100502025007487456509392230502232885548283492098121040584431744162096234479772163352219625027197230518414053050966938513607867832167017354553980463540342577963657994041214528509209516865940343173694782957231999124372422198770740759285710458780182107557777993465836621858688286066245453732234487107200771924650952372986306997938991506419645880902722823916896961280317169641713112555857763309775041874377143955258022971732427775284491612760233672001938768458630082649412807329651641706630579497162433159722279938419805286523223940453050024019775708457444092623484582228681342961527036309375241569467305156447600621367210142429335765164658211028571652182373089157132903662131622458565363610228686295755151553699982930313182235111618429739931061421864296111412214674799498962978099767979094886890460078581240426121665833614979233087880994646247555873224223233669954210909221107812315468039600903107691291290257121649866696416529946369036176451827274293900880101495167788436319729118553208104501575067637707816534371245125006540281363438839147717254778634651521729994541357620589033293175634481324350672413136023857045875807706999354210986308824992250147935580687471433639255940286242583212171922770255622363951082378451783844630436926099443329345581910119848468820690155028203276784822307071862299314174856938931154447937875757648402943479355462438337150733146552193959499569784872116803636268376595649468713142137044849532490689163786797113648495569570442589560886433792619969522209265036221639087535860943345998207286001333875935135167102390143579046070286692277144545173335959311356739133538436068280123490580668950317302716496678196862361869819948673530818968694484810598273489648039793840756863360476672166565937101094395673327529526247321670103989564590767721158952786461892220719443861953389094181926646375110153065880548895878713536872583533558474464254144540910122379238952379016296648788173437945924109033030369949559555888958820977471754268341177275693538849006475758570991434125587986950391104832129083847023296562893130102707992781048769865046236753750143347862671684862145494035484596172654300179333170210944626480149652100622933339458624513092127766440786375310351117803788136884317584944276819251748970523390212016462886958503905010842846823706667635098252910776225434324066918950738230051630572204359491226516437001121001293991385217957147210075033982227934798786848141211432058176554126039497895572525670006549962436558869157818995739316429729923859414125233828809727778880685775798406429862552696039878307942423295175510405234972834407876587485820385748896097662277263137580621839658164667596516921027131391330070775281187638679274834871738908643615555465431833699773332341426858849588852664046932754292674697638870132139017623815349017744901661887555166267643972372668045254229711752270857424377223756373334268917473973148082706022520030392315651144206994046462324458380693793671983597182490684537586242757423506388201572946193828115638737182447891513896331876183710646780367437392449663957617727792548389528196314082994470807213292057398989174042182971084520508896620496015102792143070226424597926452110509416725735484336709223993713354486559456830811539325787451403925577752271905321466640798185966512773856504853368626625623862030252483307270678801870924991993355634294756955084164538424836112993828764779841259818683005381856466918953738270055673814506347293455917578938369642212404270882126977549995879544595834334236484092722912099618731991058733913735541701325694773306392539675625182722274732044242793704269984975131027769855960324165305363037563469191991439427203877743063628080406193968666816968242286508716823355362542451490228245437752231939277415214546998478161038627927706795634656679665175735292086809520139471256185438581240838031657471042549103959649164123181103144064391124541442737133447271444465318311651353540462804387064241247704169721090920393542191993767374056767088793461128838409025314170276564770889821450204500104616170058074215257758813714566981032930147971950703497596670725526003382080527158006323012141172050558742223164326681340381315056083417853905264264096295232481327010837461855723590743420189235279424002036348956293474973680172908811676280123581155270622163058783572452495874193136451862629706568532177387653394642310553377316201607533078317092615564129879418539899474949223124542826320854697626944041108113223116829297603992500433454699461644293723282534213358156895394194228960915903707704223681838336759340960349996807442734464763514802552928511411919250915775847045297266567290804187967957972950076399188681123440245980515646246243580006823473161684080067742013022150030216644732421922375833496363700746712779102157840389051539461642083205665754282008763511233447935866499204543700992304184847787996555694496371698602741844985722120759703502232710434349495068333105601260768349845631822614588124590469663283913936512266528228616802289758406372903345734118970742363702610366996575734582301423821706467078990149771966668642374389552124792805683109706030104039117214806702613295625370009510741151478257443048703787646776111779587221911699044719034824621126801105848251264599541378224098946951631440665615509764711692657004570520341911665240958667172017517928838208690855455637931219900374998587899819416912801110031257940060153855247002910784808670584381017799241411481311324832620729970150840671308317795541218017177375153872781813196378894144829654797225144170459322376055917403686038934233433213601081212623559763777006284806783499075367797604394724565158841772490660537539396839041354395020280102521346757789056454609959196444759656143614459868534722223352357699958766154092624593393190138349576630492837369487453718533406905125257674948654286794281026707756668074702859200139137898466772550433823805264315956250067452150137581605031224521049714760267225853302202649941979481952317591356999665228106981254969899060887801832490920035351438033188096291744334774271523938429079131281027012896950074049706139001930869000330784641688704918080749230518452169204911594467309854167029188740048681515933524185492992785386194206302712896240835526105897143445562784834225674546757786593683390961195723249227125612547037426289825446569978478107616114697904666876312136737068235917801503765050240893884725710870289674210391036988070659856095320313776320813701846824606594225093419202023170951916853400743396099135529421978428028522665090287299481324110288810816078272456125443417372809902451984732638304526988629883595662490127194886676648552343660163099267318613793400877446100617601919450710338787500522944303522934299372439915012421078006664293819230039282749190957935532109272141432446740860587667923007674930923994737603945691110749970346586832271834664270581907051259480940344181079053077525364385267141355711213759381233304846293803047675631026857756663739984223807172004567525614462265721808676675760047395852548915195790957428729201722481185729455151962400216809614780952976740691304395266765288540282765138189026440322863993274548477286807812017168048628095757306581935344924690429345057233684681961992478111662636991911585602244279989526139847022122797701852791335389794617156522948447329898125255029802968720946348505586899072115979491143041007965987221592759125388719003421529203378472138724841278261472093421467727524070329188388717946385907369822070906154652471740848963326753343715980110042280694426955318567975337414031162583959022338706422840640184873945170538155028851046624390563746223369000772607624384398168146185800959701830961100954256801015770655487666866760584703160204034933558718969496278122311104694734149156765682001718678104956396171470833456025948113651344781098452764911771488555731697988405467332773189111079031800761432388886624350817790814057664882263724253300797963180103383234431847056058986982580688413993737632007937089646530748435618682849690554790508144461433457200594658895787273059450881586943448151669502116135944763041756536189057121121601321684478557069726321639075491592413787333198114763055754934114907365147188269311482124099601992499139112288545742905267472958726791785812418283008938279494002703248925094193049803575403934334169141429299683613380799549080158767210723500356836195574837632102869876602003575999851281944668616466069978253839033244185771932389766938943907941823870228195123455566433979161797384240036687459770453781306029673885026553345297878649595885204415799552634515672955142048050677608477113989946348691814547577470498678530684010307959723434451030527057379883129732479599052202831805100029351331098062132000085304827626387682609222325887157522403356717654078743040007688869993768752379578877077134602074961766061446512274760717289159243501783389589145749731449229755093386180544493690752857110909536273654789289019001841561690805243420572461357977588579596039688496006998841632389621343415165293152182946319386444238405511527587935329062054341520665681025369027015791396560710173152276554888126791620411588782102101836092439294494662200867781998546090876176615096914937217114849742529425176915315824233847798115394724589489539785931869833043477043585369213547369017349368591705114200683914896802747363399401766614859144686275114270126110766050262434857139758298360508968945743235618622293885440542404125919126899884257387542872790994318653317460033684024698411401796009943854845725817478095177155473333095021600882060597080493750572166456884340277778492244619107663298700491847673655899620789637542578169513296230748633851201062013378216603185604434240464972399509657405491783652417056036690311176370874265599598588766819809453167315637333228506206894969264907126670849841625949557575767610659194197255044454412877843740559027787489282299321294793304656605489353241159480750823567805469366835274382942609902189900540097033675465610403355784090825659450371080886280435384127707002834622905735461450068851129879885523853002305602989361087133361010681218609432813679054750867676456838298290596212157966363596349107905187441960781257256938418104934485652980726392709175414951873178268989656988097705411056566851658809081227061608779029546997808609636895460660768111962211211038250284132269237208873952768738123652213419706232699775617612209702147875340772708149918563497511467864293336577770136623657175824324925070896696134668849475553135134269763713155735615598134745556536113857581049627436048415856765005208472583607653730502354187463939709123981719136866597106693518497645459241367823948475604296690123574264091760724845553501145444527623766703849761249855193882195879585753649984248202858810441373955220885021529520987680279886699665705328506301651950139087986277273118072721039277666803218080276914017916603134367336839476832201471333386364363667739255011680621468192838293230150252423788488769678900030210876351190790432860781351335193379285283976527890480302357098236922958450643077391686412248398871785029592653189257318246664390242564289613434866109838463494981345040058662499001670033686573719877077114597311896662838155551306376743621808538555877701589755698247182243040841694312886122241875917686985153190556827141702223675322796436052083278334537182205818830326082185742435317127412273843888425982239446675846300659940028237367814753902584863815066618399928244854768258006567906864628849788344054868201767431630853102503994897760001299594726199300696817075535441772037475422771516733074385469868191873942680377155273319478989517846932479048818081312557963572826251335922505445859319876379659930854085435239017139037838588253005914143395016264453867551730592636714063493361523055822182312120546870230466903376629151637856207392179409525056517436576357242284218080361292325310495607710686314385515060316994542111597111183873060455227587940157157397090289649702282398751694614258653044884976681714646954710232945083091884789408931389459834202825634056194026492960044746094873426081412666729542018755276228261046966073046100429749904990370423936669016886081776235656564011808367831119222733981811762461112276412294930364903014547292664127651468757513819733479037528987463216933471467783451862199282349705635475128521216492105053140287424555519236616645088090835566818675552401081392964570075454057159831299775861660570340006157951513057131485020444648478350270484426330455664413804055890074513310188058039253745000440419016827776486205269862227112683434641496067140347128635831317874045280066031888512872182812561559893120308126935906518413036379737249741893949831167884219071787315498424231529999336178354796926656700957059145970479131322224916889207031555193611183175990065261091451211050032818999261095178106340305780255781570443014788464391429133794223771304379122254041164061139249012169328275895287904301948621578631791506797850274095873911771827580251578245871946890377707430013723730402461080298171961066573436573770106732705353316881381879399778469861756928622883780695526674657955836503603399840710661501442562581749709480848412594544858182960583006088791732678247263526844031893642783163658683575246330870438419711364043062239125386266525453441660956607467116073554401261330336711339163827702228235800668741953245623218377472114805498297430546184868934778764740208502003425771571085395903712585988188622547464852145340240167161017757978908655985279514020109340782043676784577575111190660013396700781662061549883281159584957428274413723025237813243333890492596994614052826144168441414083969150451994683119686537932182156180084235515531921178730654401335043213628024633110069311526353562928082272451448406248962675040431292027394419459907268325593631499248433592241459139030013327045423078732075970705036823253158746140611807533436441456107184167596421613604249279724082744926707324745359008187016540815734826599922860261051980777473843599498367368228793124572213513914311441318309988380100035061437059771333187997257973349492170290916000711541454666786166336141476679640656532115764729240194759947626424399468974770975386795248763615001599040730015872753073283339278767427980949831688342833633789223773724107515316643009607808828404479811959547483114851495671487670426335585392952720182983315617643362394605960045083971806184979201983975824745310253100845411586956906631485132724852888621725465243531949595167324552350204144393145709989522277494681466866896444904396964691654391933597370610458207205045837876077374682301932251118071091630440711858579428318533697221425185238887266592895438057373361030952490871501400253486201425025979310819761188619026249468540585820334939282940046464953809890824774090722688055056896983989366224058751853175815980464089863122276773161023954777466759845997762257835335389275332794566208964376249511154827901378607644666455987058884367031484444965294699974730162307136755861755065298946235424346486643855084717802437470612221614058704807479403784200551897104267671829900214462495885091799147906856706901491652261616094883461590209479297450316338027906438937883946499311197073250600816561522924002683567858553930121383545554074691545379899012491547326288164131406632195485921187261884375095149188816628840674240898940444035712734316415222757473127017367307041314444150675750254956830568079539331836470947143975770328496164474483492042942744443719964680526384581975759822904475458206950881469749747668597717289101921741086815656594422250406354260371644264770926340589823856979022059023108796041531937798474428927015767955342140700380234174719273388528209697892964725850429628523220059510845455798544453362142438985070586535280733837705531150443170826082212259954518031442182290918312219298651225455024037722377179986455565451434407722842369202108345576705596582391822963413792715425848443286135160008864481246460747895648817395711772494145663031924900393867708731421645250020809386923068263412898720924816344696723741818945237521209630095465555041781532558828091318340981691178511368396653413710443727615892207756427646096972809376354037652773845309751814861648599235179994942922200250085516355503230030695485620088902264473091340437902595632342449110026682467954650976597031150930839614165908279123938596467490520668918985632167828763590820072792160253891052133105579453666253349164332142229185830224148791154606502635593241036792509542419207873052000449947211799648055538991953818194995226643851458013490130517742798209783436825193040189860816897606421045337434160743189117342965329249514136326559840349611853487911634759740195248566148515698905527169825779734682074936310771633170944814185384360950220238111524861520778591640878923142377593879662271183566015609547352662331149185094010264665005779577623538087789864631543117624812356084110107268999538670695162796003343453671805613211730335820056683080947429337624153713195622079253957600801330198177668440449030721282092787650276505579166985786286790483511754748316757980409286845769597829561963020856478186310326488690093844981491121181257021291899892229369369351142122556297004610319303964745793995421668916819832395132269610420544614798468187799245097215969753890915140031871231734636729453322258396723862620419456215528696892020934793056622257698898327768282169952493723765396906864508333316282781797797250926269357288626725917297925541196504783226783478442426156263546387587797335716207242019823205086663679626054703859837884179586002836760018179894815877602026495916137639278776824021343782128563266571017097704582195839150166030557009058044177620162669113874597433624998461331444430121214722992891980832673731486394153549074055494097472972638288404935040757848889876621146542944298706770693967543466426910796013453572249849430436815231686019776301807495846231511487275501373907673073506907811304188850194548470635385400985312346150758767678705524423308173491589664107683547189788111965524126286623360257437769225166807539462302624619902078085262169238747813534611946572345353369743872705084172268608038416429032517739634037482034024291780434656262289490155542667953332844234938449614852242308066635227232929303962569176067473115115441645817979058328994195211111944624512115102757289542028459880911440913027356869648185491427170426893774071896168052791869712030614903434498532781434711868808586075092991492025880675402959960631198705010718966147675569153519520664221588170880734513905139511094478061376104930602138831335697174600593533018922908178309442515712726996486942705830042153590059874823136789389165268837084117101194617222139484360897810615150335642492263029634913327668322522836009797630832162184980328052532502686239332990930800278953830617287758436652188839412393206875769205851072260346206238196807433015292993178472940478531177025243754095434718619361507296263172690897353178458001831982354445948731537744313239521375400250040850113827411241574162674731569828756927729927025806126199916462514301292324068875044953386168800855261033940218119710013202326399324542048881501983173225223671768039084836253052861843750704580807457916636410204727376496312585593780975610090522515292723704701757051970483522864228424902150679714150527759842430023242875806966001894745925028786440367868557343740395418735429409890826383015811138040942495751978881643255504409187715670958899338996240583989843937482778959866597019834679242474292434001131283858689883755060737720600333438201169756170425498950821506134465283612880055579698094856560003856571299055624102413249582085912135032129961434033151239635809985011210061031135406466483491924970282605249628680538509450967120920419720185390053562393722847558319980762100659789852991137754239589338896630942184365115109911029244248368270815102135412241692330472239171802848041265444098531389758277331664770967391810148662248333711186890293332403581412028631252807440777675862173870600267396133496747076498981726941988372372092504812151146578260462211551906041445389263453901039945832488923337094395746702775391851113917480422937067023039001708311309957063629630179724443756365553600568136331652405521023582130191035526332124945993370887768633581954788081173045787483462752613542990199827222457630540712376472665010980913682337391779191469382744916694713797490387740839164260449599906474060788617679804935889108288585763406399280571359551052079412236411750671916795857567153115797772119562514696109338338548559681630191214273391133601273911066110280194628416614518312117073657000980444162176884384735022770349175883762646870516509744813232277864907019292075034249618723308705572520427199023216001327267546381123719816721589176368629375891664231455730756216875883403677583003185253718489113021131447136128776167597593820842536864304007462050884555233774440855528430569166374108374422078485414445914425056722792948430132828299821899949143841115923652733000531115019017791311332793612835043426884094672125818251209610349332148316035751316296446959897766851127061102211645220530375957715256233808774566640728999010905640460064907315765353917770986845499435519014490425613879541214193385901800736009064651403391073560362114715463021955907527765553545534540690667316211105331007884925893693237188997185864801758157005654644800951843303864886007126786017404887598527386775014398279524515844880655649954381146925353332279702796564755646264590813951555688154642794884725422709254450007706900527382890794564457251622656147420130297356507818523971670828429173906849185667327251795289587203561146071177583344694821082956857964791327065959985316073392287978114109583552589855912870286499759528495965527813518318083618398066491221525161533726692290582606695220847953591880601265098708554206559872384036315218908872870150790875060718897428285635244802125104696030785136146836614052373415720832414716943436587485819278748762564973646666442639534895905847694561259148368204543779697733441826950061328586975550205493005008294934526318841022581170931391323405488954430328228880018051889917193235052513916019417957403806118414876089199824059759899211053061516485650823526963573836188379032217271147790221333911119042350492011331231639144196478999353927499815565531982110506067302224271622244027653480089733896968502418208121988507528649592922331829630464191342725618935336934511954909400279354859137056476247652248550723294000069791914939639750117693113725530190738463810964840339552142271778159679180192619847459783599545943921700046050544414552660916211986653301056594915223029975145801181802879341656802041540230078588329536113277611366760104612430352234238626545281177931715923268384740787264117916328985114760811807773359653628236212104140247356063237734184072832202196713651803715414097363436468921044169807527098396504101305881277008131134071371098928835872371452660948192261489887070198131913320266324422849899032810219337526578582735601870779148222260264960110490647334890660259034398172181936548012674435406257369987823756037240902442224426923331359403583085154931960695305635685878200158517140977901956038792669148269879354347721601396091919708191064450907540209984499096391807415986679844430885631574909919962548767476541909711290000866306193426771230504436985134841287114650768547455812854629847615293624347049097786200986487856557404839933657855771893931300784402052203536917808874800072141928397574579127532509748600712280354936526854250917710108192225070809251762830463259324967574488422100336375290096678178303141617978457002369044073167221220890174849680165589698617262873487597682670147154735996829338435586640701572553444483407953614069528811525564410190408988017202972038702029945487135186819516335045153546993800643000737032280466318100246297680067458217186178891670906072987050994675477861765904004609677594105701649423792714798234791714618647350626626664291269930710483599484451012044820893722244512405898779001912733204125075771965483141554382400304239554658134592129277080897948989636834672422997817284815566904470278214434668588198523133903755749102741752953959067092690449078398800500708226527464672314085419392065540832210922161646908508870524067611409250893368327618618025988360535215154166121571069869638691558456021459426881081404017154784634894876784309893256448255271063646160056070465549592258957394412730205974198221200104021623626463745111233896290092385295342549106806995514157394521458347855316359361528654358979140004534804955996402256590265648596515536972394438604945362195347953700298195446285386737006819436192425504961255621912986336122244623686866474893479716852399234132185031031175596088157441878412853549978459556235021457527049615530531310504529959126261827613710434830016077031876773029605719696562277349560046485799045716161221228593712849838915990323055623162664479502857710995583676643318088920237107655696864572264439504820962134726481797604513604806392966063057175532644112352206073638506416018150429712441723675416171416252536737775982566369078325257352503091481243134729961766377199771202306369116116390703176959186835762633361818073243693849164483941376525367273393033500093788267461603628278734913004886278633056043903506610958594704248267773156623748192329066472996367621728264683964036377765651880172563302679715649787063604354280342516254867767061281178646515200557410663127117997763850838991641941648101408921645496901265396267136049761082329384788820510466330358810550754258384079847428653883163501403261421471521491360947122185254968455955324581830983107124430064368982650803737182143417226320753906669689002304356784205686575025049437981312761399636988658106948886295304156926000391795923753897001339532537444099953617192875763472592606084636125142726346957677656380092280073083867295681008738619192622011118307146156926311280992064497416915845872494096783402801699422024124270329341302948060576798614525554393780882988583685075691810099570917064625228530516454218432230551770352844164918374503418571037346185522171894357647387956783933177492008687227511083408846112527698504204662284563294129296404862207458673009110321304214568374769188740026655540149578874170418404579046625872724485281816019229775154025883904883019684903359786613707231817956416693196333491778729637958267913292827481374088691412726109523720778399293995862937642540632446920405082480850159096298618817337451067096959040591653960071138355424256011833551071111245495472761581360744676037601935036220915274849354215717198834841261782856714229752501781461045075757165576538225114827059888495409272027253769763882825484342751364917126049245130831074093526713470894528661193604450477795410011900543963698777054887827346595639288035481217552058788840924432725684117153258999919752686631258568147488229590750140720050035602579728018812778624904213849862815757668031229723287665601876944840447600310552469591830281555720375705123121062451355519374645156313030159620655879045427700377235226867548745314178833930825430625484556228743019311610814140257712464768633906216639924054572219395727801277464555593978235258104925500863069461553415328242717199124796036761611796119980892550626843978524732010150403099887170247244025003131274971220573902744644182518892595120522658848203272331400119816360812198680162852951362178325314153631129311924446946026618316137170273172430267411952192351761061979745922153333704578325109435593841180264741237580332780699828710910622676929265682156037878542975233573290668547876517543676465080684315131360163486844852476760144508251604632868709543409974564749323120737009241867541740162685723981116332881979300741624010381618914983609948968308218671535954089170437236418551941716286751938527720134390598312397744853107593829903934824764388351792297153353184520504650264076710986590658621017105664086070796594989982815208882037427129705413230691900662715298760814982822050125062860229421308612284318286037099660017842479034197671822014091996685905164323774488988639739921811766466135847785860572717875449443224003084575862239803900471870424135093411636173909049266679446799430770043586298042710288697922228353109650443797697479051253476640116205552611870283042701911712394569116884203611981859979106843672355750901595415134337326450294355754050903310843289475057134760222377378492212896447010044764670119327321356417269875228659489198971230977258596162986362376407321602763586123317106088732407318962951086603458326119165601157198673451316151357677422749348407038090024700207076828447665467356231526847678273321182699010646821266096572625986673578618130269670281992669230991935587679283749329420178179718176552985059743397718461593092205704193050720125076943789104443436741277046662082380691261782901069541373043623732122600940951676546266973043665080936413355496605154076697333568378908562895997272260011528180437834358935378797912650039873543177878441111729861574385620928334598899665718592708090426993784188420111144262268862012234304498366417506924655403572360469171053859101948977182497191104083940220304911887095013222573972171907448838580818482666296349969194296443816322378402936336294089579577863604427449227362454171862111642700145664364467220058680236669006247465895688782548657613002294098599866943282696199815327376074643329709393875865387592573786378387891073324409680528242448022594139584596456897715203609637799969824944374837319615430864060097053019208665540942641243328633753524397031562236438122509521550346746137866955609449868605843678884964961385920796392970277999305484694657021107104997499002834366741532868935108266876214381682992393556353055189339667112272772865177521977417315157319362933430573188625503894953255420847275409701166835421663876187181312713098826867068328632495930656583513987767190790079420161634629069706880317687339941617306670741007293871604533407020372550478621137775247632283316046520790173189081589767134995260009487752330353072750839821023707277186909927340534126230228197280957222001496716377896073113777761828654904543634782572197610838633967461155792372427524446679106765220548568999322376286889252757591187360687550353579318561360224994150627574995303643668472547030138993390527040624212569308285910670422065879546676914297204681482556549975643112681031599869888106761848804131287327750034925768028087351597530073214534485542884926214514805063159303788789265862650753202329040993304513738805406916197184677285190954543111019319629175235265956159070498345468088277854515050382733792848595777156952550251399477407267117854029307740238124366173836820793311440784391806631131347544141086956614619065497519185984635187447503134511506255155777331775856886409095447294907766160521100289581722381866615139057366519076941213236949409873223068057059977131503285807199210263727505148121267074236861640423517124588422679787729160809980663668329709560831205510703368349910456798082813888661830552099040085037459644214332254724400943800514406666721012350991151582607309390642634777633617481388727185556252649168260696846439193366031847502703363102226079342408372964090181892846572780706902365946324207523937841312034246753877012296288205216936474170568989447344504107357918671475532814799226762412974133663654347366523942712034792904099986462536743868768953159732650873509558493885786440644894718572953308443301697660421454754933850904086303388156659283867139966243413468694314103557842610117500067845101668444751932504270064658668889919366550632715824772610802916580919505823229032527322104176835122769261307562509211511036584770058591375037161290506723958684219675854031402173857708520088488620042255672433830731606154595843810936594493406532414110761367915763753662129963818739854854268401304350720887377845480521672519400965869494071030751136600634273232226527481079877734285169114972777734665160103396125665776495534297775802534700175062561211983768416141143504849626158853200825544708377361656179989302435991116973212133550375706800695226273371558581822364115602320557531906263335932561792184362869807790316110651568747338539288639452910266908400120426797582865661297920955227115247200347779977626826857080365706437390407376303379696752051711325570454893835129022639581776158506792125741553618025012156707991113681564363171665770681966820271491349866544951382470555533080546031298267429734909751305374403146607716152153171087508223164295430507738712827617776880466840837905417737702635773240161828752326956511611929788293778872215164068031387745262720418029511372435197975011979805591302845368819148957295308612455492735375521756001331437219611405943154018673582134932973404996032042277557300109258553002907292557478893267047213191613622821532473910431090809510445700471731934328925190434706112148049501196270208319520162522789254768476993137732379931094416486975627188215838183553135256266102388746852626618922341773399312681995424793609729095270114147617808058773928681051947530544995171332838022006846629203782779701278691617356222568922253859321821639321351262901741613452349623511769428168679927955311210417829386492049656276599621538446758679003081738490871157117683362142393453496727269650027249309268059735348710923663961594429497129304229050295827869895382750105603242073403136536298460100112963931341896050123354983825099532461556852407294519864829439713198897673988047310827117276102101545285587977295378854267856714257314277007027431334711028858284905357797646835209820630857371000480353616130718649988234779335261047573595962262006561700406848306142390132016512103076936551178638197821128558317002574639840297564280892726037805400695299370702533439985794529702003922579592384030496123899203497639586083765881646660114600922374187617774290893592335799847502287554564815401104059444140393590404353625382072833512087464087963321467727953946126059043067006057671846867748732615004151567355609260329657509645811887445539610183508425906133892885640941485675974954808342584359866906909238924410024280424086364323023530502876015171855371877109126367287919748404035419721053706354527436173042216635674707812141227573236828024160414688746160625927797700908434975386736259500387255996708904614313963692295689327315661513840425901907402328954523281905769852569697239166269149852689585191055418961184195813900011101319927544087413837281644053814169603608085537588529806871151010301359999497327694061039431369865845817895604411501553155720026835465210015577556368364403489702754582512125946472201504879669117762283689266982176415619216895437194734896521012284425782333455288288113973296719550253388068889066519004173414587359503413008667518744499890717947765219819984791681198378237698060232625483950414557436935048139930530050350766417240613741822956038478089684597441269072410191395936155387274693315520728918308936601697362234490574110961791968101878153788448543369472218355331856070906962765019141791945756051653783727523392980970605662576454277215563314446220894782656951585082470607923425343267102391634689593976234307248541252984025482084039053311514290758375249734313464019812876786287607169961029840484757809111887264219124554140966788000051659657474827308736292544700269654285569858007899830930797009837680911493033549513216769770892716676040412079097387777859397853338082505461726162232883125709546139693016245277734910504472819393242615580386362725432419579586565738767713547330192047860843902457566439608892132462842048670752940866679755253418297761363094053352051593681455462650851020086469957380638365928264557845022943159882191387768090466674672624156318343780279483015112462235194865457184436877292754069313296101462702357796253848196781723493337831539956717326549778552277490189237095509068322142854620889789631769727009718095958574579400110031108235771173164974919009243123036698939370629345971252419796496440189924406790587212307837154821063202797784951321887519126734007144822896845065582252700972011217778054149157972890628061072698711484672791585588513322177029111609999603718524359778152156655510556435686750109649808022945375446535248201319884945259119273972635432872857765058070387861736091392850015003712769517593927118967149273073405487037350643800662460196560779403617377259286602336122329775342891573428161338998132706068252546178776108601723396800697078752313907830976863256476525511859664424956382880267887957078956630692515500951996582655109292946293829085403434985220639191070200795674467673080795040333279833050312569615819852587238681373229912578488323943175285367570320520172018877442791087375761298997802018029466925579110652841856965951272394458850191428958440881779527214250189170361424825699130878044456998138586610183543842786645230477649571236854645143791592180419956142571065108655763189931147825754338229053125605752859494261727118906868862158664859669785030501096254444728426478537960098584677525504544386820016093504040303058766599834716062755410015241378608537882897678742820194005941904381385056775014685554659762915421635504992677687899556658730744908847102992854323444311272419522352955760799206308377666313900773436100858211708644865496550883232415980451722696665933444851031871716453570050959992574208522653291491099572859233716272042601965340810755531623534762401028036754105145759219143560782126348551224340740403708480626504266617329601674297239032299409896161826654925314693926355580372792291757405984433681961282197960741253737491375936029839969572361051326902429096563921595465316243914105869983798593170700758231695939439670442711200571161626507081360484798281645531992500509523906611680984903784322145090928420736069472071577521469418560986928607292063837241006067768252682628350087201175046909211260347786559877120768264224065243655914895218116959649851489128070878614992701571411028428238219555374637141664240903208240912291447707304945891969321872884683165713909781999994727938875202076807799644416067451749304216946371962873385234822512826675299922925204318724265457126523475969561629494845946199596084573253888852571869205491527589264648258739456893451591069943973419932343297131306488944147164024102475282913446437280753558424983020795193870711214754293927853884906324730120234702970287616700717172038128042946339623831548588559470848663647486170953185171678309679502951090357684397615272029276158928916780955127318090111598980296468845576807914354489258017679158848175437075030650937700273825172797402095906498530920590038392770574853286040201551909346243239829140275205513827505943739817250356229671543982296198799529476850966408130420876528455013356147801820937617292472126403249930681034224953593497269535122918467790236685316375659317154779250927216264586282810428643569259882825916862300470205616806079228204424338878870663949740184920116358874649013405298969578391247671603614839345623158373917374590796636041272030746813714567584615731707951527705860691064837555433937665919245232825926729787969580934653017934765783569344971734798295592325840295901616783039479033097986930361599040749295962963245842735918424702634928774972324254851835104404221112795789202343409031985335172012314348883178904786256823746528747706466027469470616039784806516933754073618433731965663494542775741006881162618380912175147179631169163879970947878129025653838396531909311221129472874675314522784863618794961161638286809296673705892180266677452828477966388991930314297717032374990334593631770801990899982741184806629385393234053515503361477285566308808064444917972814857862485431498070685261623115890500985580122095826689839364161287889102025000359714233027762847134637126041335362675948729919539226027787079177060186200234791314342049060367726823201794150518538942163619304649976627769793189699531038483709775964922259349653522419406917347048657096097385786954553375865348609655348532550658297526960024713030599071285495736672676311670924228662273620488322579734700641597693886019073781749303126759232935157848952395021812723000069516471969760772170326333775404868010843931757669643211116340598419642854286552158666021382203129469780374931412232787818590711333105223439834809809622720897766868349601061274824681247346216597910738877799096947526282654788817247513867896256303940500832795797318847459089042695957636426092904692227890910500904145880415881314960382617861908609252864764724102751758466864760010236925494557501087671609401773244566218565024904835329777890683217702738358315819806829681569141686129286176823776611028554860752160591558072788830107026958695864110542406330463503008313289549874970442041548320314382195480868431167909077634617257301508012348193447350233848311720116521732306343824715264176337473839430601075578903664400467840583031136367086452840004333097944733865138662567126108243837389432253329492884330473936960984513622741761263784852975076354527724879403188562409589002475888190270504887492348344622285420640551136205278094428418060038503515767308721801115725354662115790165070536873793278968221804310562137687541507032462476585031698880880993230118106686116528267781410310412335641362565505714693954632384627196552660101226077285766595767154224823757430153881982203201750807510811399902152693702968456069346518074171399857620562782822294373679639907976255817336750088017293905732651547330356817905649891725972213810875137801493513480220894559001313085850574902130444267848180262066006592430026890825480878303699209821885610883105056930160055640853173350676684679539430053326924629433330441880100084108776921253794847978605586547699677847142500372731064230924176939608620238014198267260915269850672817605971801947263519894817371204844898008225539146146273953445794204044044338909203820454970706454420658183145115516640328181757366919855241038728412236703412224780926431601945674121936100708635996209562629663342175730529294749678927265241110651376644567020238705901077906250576117003793211125151092823658188840128028491049902975184650547546918158146698888757776878154391095635214536199148566864064146519843793993434466319615215854462862110378027130138379439061833798393515728609486842441048001182476471204589283925500229339348741350122181717631930471387953416173663963515380548646258724479880651994829189321312145775686059420312995582507575064569228829780642035811084982630726173038161356166923524658138092482374499658473343960284339099310014378941021827864241189887829443714026352403836540813162545404233610996095494193118652087836530355906792172491068152766455895351446724847011298676248579210947361471858817000551469862826539597113621377482741579032069960830637263490203285562816919356123846803792366413942286101463867031896176896443501021957625851606512711238784543827386646587522039450549825777607364347128166172538008044391314953562582106017711461367779227850818858050058554131559237150612350010945097062558120434234182369919542461753363638505597652662347785643410212351850199417758439669533587255916512835233326119926608297890494302643882023085372434468049659209407465944305399591714059307664948635719043325498060377115187951665346096500455442993353381376089752751908759139386628775349084694355256540674859140125215562370296934995268626118989144094516344413490515582412971145042290372868596348402638519545421017669388385110621374314461976893852746695671135508760577496228737595098122328365552364501964523103395953699407673308133349469249483617309054635638329292997854220201840772209130666173670279110446628604985605216631621366883708187041953933711109590700514228994867383078413781607367003215921443170331464560571311594207491416548330867870618548459316699669124884507821177855655985216899010899327354589810722002581404905653876468545632634972836821486495702575768451866835878945784140897824728584421383111813479958255147239949959809013554387091080635032570970350959194270886730974725450031953140486049213934866610430551262252915872977954226389110904605665568019222496543365256446592735028488474616341127483571021673514998023318571640525080977175490542915753696922122451421955953899507982252794172654079448537837257394475665805390825258155738250510659199439540697147204216646639048107368015792527838809280366187870269762039171324759822612158295694876296722297836614612429722521728798034742500607615241835607234491657677487378127462790270796742296657093793158948292635153370633698275414481110419889913544622573631264114421052597786301703549097715049888688338417180241812423864872962857621787058888056752740708594495133296174903621560499121233274077475380740515606954147290752675401419579133880189338561101936285955512087328924020931464389652205932941908370944294241099323319372968988859824038438013113800594885900491022718830675268049635343246340130213182995776977317614574484274768609089689923902257805738641582193250228213763661201706309839042109132428271469537651545470210794693571681883852794449026530442539588890525531560756772056934178000719163266584123103283439083615713017703275575049196856506209713798720210500831673916895571618777258443803009808880023350899193897352824793861247435491720775614973760794417410394312946545793684139144270474965023564596653560553380002946926459320497527583484888741210869785991044409667407962785449187911879639431093434444427927421885673209561410721730857413998147011329627398735181602229071156679762201559842549960625423367642505053764885248045168467337085069357304187409077744687210395050854039551247931884168713062436819468280772262009185830669529512905447279187573201846848298299579004507656400768065814267791515373312668981930890754032556131274686245872918955052248613540803517559200686519413375462407493974811168286923825588571674589081680406484298233691545019610907240576433893945454246093492753276848667285775001282420055206420847728674945596381635159262041940365489973748042887467335942499633633550167560634282645782782142386987465842713859909446896093985053601246272371775980811332297666299030524378873279019360816504763302390558447237988597712202786697377555078158482262646945364672876193880386663087875703670650842203102600958641250545898875177914549612835984963925854880927869836785901624372375643764511830188474548139594378081482397069876408552222681547626253754405451072901051714150563665478212844337794713161615091874434648969588768882830931525649294022804238972144499060297046483855772664571611420744764747449798249318448864981386192951772082347259885108148388836324561696508135318217151059996165217846897808414618552534481378493704860279858646726713101646851358583516858130912071284156087492941316475567848953613334594366119927113013499480764165289337321513259944849885269191658893046520381239651500388889560233370647232987491348800925904538363943918736476479964474983743844904491305043108899264859667815940827629917521611311048591804942957339461130026302584348780928637045761886043462665799774919988028931633399217312670868217399243327516677275952261956909356579678371685875794539678974416883516947182189637248405012632099162059627211509764143712174471381476793915881649105812472291245954979192906343253601360366292084597674104717016831339340968291477259910920854485550216689035154872932060607140563806261102367629021656394251453110664764875831021398683478883893407292787032829839793383274983879861331641043135279528446057471352111729864887799776191011578599568356276775478663255918433872712105624825195366150382204309982545124682950333371590424546696379384412801998399031645755032478971128672812394226751264340315315927122150189258775670853865913301844964094559399684760621063932358002293927180949810943193389771501380075735095895598698916425414237868902624647845570224914011237732283737847265184217216348496217258737775879446069729360470002797934640283325370061762959433126871922870277092058449723093343424084728568670921705567049502500707000838272805583677666657409183121151213237836746093568697265929204877031967061757110747335795184054876725300015465221460879763860714139215491126756374575656013175546163188084112196320011902568970135045012131626045480676414381943033760431831108339464386784319371824897759360772172443662784952226529097541483252838339988465329690986050316130299703764650323733841509783122199912033096339816484554768431386754754564869991023436583577042714339144358360974897358434951964056806810679217949477769495867044687325028297056922342325097550740354874390851594923568421167487162573321528996729773951422012960830742555103907745670499833323247434912069338663037911916319680209791749087920812918673579047414118981049251968254095774538903376734848928517411994092834016565964599493172860741771347734028713811813177752399679352048995992334352211872512474552137242347367496212729785767814854883093069230837811088893742667747561979384149399097555453012505442593927964650619950801683147393761840441825704452207307560649327497396893598649617552725855904643430799166787711517953721437298930583311526253241987527593778530108567907052301051344924853726740653159889283936647942348152454131764163203650048172861913196146263289790439671691539441111978934218603119048282927416402222714262100295473121483026241919716795336085288141177592826864358262428932593185440907657835335381664544139980846457887949089467053348189871840546815810742462860864129450939182846401980825234595034979463452691239904271886336561542021146490739621746631261574366920870129085318180667767454307346532084621916825128509114319510627659926379724530517748246335266757832527278059506152747684371512410213913266855845337905561624185865715584964004518815728502218003596414764027276188150649973667355296036207465680171623145693879515112356245858243434976886291342867926843810047585922929651754931169603347605014469005496606622215814351695613368297190368601609344476283450986352892552879824103598313249026305596418567943439979183162419279415672247187499135385252020014219721384452551028779034891940877254558655540412878046734464648986675929346054783378028390608821942432889797267050214235423821380770313760750173699106422193302783825528405164052609025369567979660390147894781744146139229314344701573621692463351186653654979109319837375075986241772300626815558701822137618768377232947046927766276843162818402309964707669000546041186180673094479001455475267248630934581244527709625349645040056279160770043121627544088451731541301825014547114816414574808298910008473629980244894377141680100587061653782700353400244110994039285616362232416987639464034143683433598543586665084352826157850278709833370886636441962856154032236537553698305867601047677414852625697836423633907213206859683173062834283933362996439653826535916343997402995880624173668987423396509910546448421133667233464324420834884759696476284802337585936659470885005610842759609957880426783215907702512751184981545280039476581356236110497520190130125718745635356818561756039084679980541769941017424829383861356228602077992834766673242364253567935795427934007825924792358471079865130245040008146415252981012711626468975630177846019459511633495473663011761621745224691502242025910657855247077988791479653572328092697933027028334007317251030982922948435574788011938979147613067991584604299523877968500828887339732537794162039805315441162039027061863015055456629763998912914406783041056996292283831088908028119355659000702465389572270681529106010873691185987918994235710565054427373760311343757980546069589931139500464879723945903595440879772833569255514582149608530400238821114492879010866173085061421091980865785096376147246846096591900648538432978995487369775127777348142374579912147727837619015154240638446212536697003480123796188296178646439549346358743557370665567879348432615381957711297477308243280280383671986576025461441702862248493864012153142775521143344007998941661492560371189760866381485273521353460796098903818246441492873461348940319851913876794254603412313735648027379357169797370722837811482705069187879145329508284705296132476095589622895159674113149716296643098033304880727856697198715296526640428618364575764039539954359318473004580140087364442361577630860138423257496349018777519108186777810994996999734514811709185824678804882914417778987683660503260610364029650930388392666293771754516375555066640814192299075340429910470169259492991249386804066640307986709783963311177616506276796112135312941449914639348611316583896639786675927329806063807617572665919475580758353625707104456187094891108549409495129082102712869973906799644131159001176952385261294618618942926692067465094955503747401953853979666443328580323547079303677587123366988989146376712265561150959682925126390537715617446042260421933379928153739909001634876829847064852216634038975530324789551415172574607078483759358799716915697298348693744902686220424488077880574999718368976190353042966660425363965108352328349021710132942430083349570641554189705297519150945117996599828183600889201008505481509540727470548950842766560470716952519658887704012130460844271164397682495073278469699145096106971356017129424283978589862248137908455438977112376465136335446610761487403315728367787815507061727591383009324946295968631396444809962930700186453921824206151136149070862489350732406152471161815347103077754593269734355492905030634853538050011818037827725249713096996631273032168371630038326718329710881398886124545112709541148151336591718939047425307262047590387097416129694527515264827596729688182996217167442962751376740338144556045292326692596405870659066253075444106109678345187708090848275889832856372638380488848262999330535498248157858464111590021615362407536946729202832159403762239858580874470057680678934542870341202484362953469335185937127855742677310776753886452359637668791644351625602362857318294722393247658163081412224997887088022218241359673240154032376556992989286162246290524644464232099092624097949990328204855281235041238005397796778839329663378776987395252642943964322597205382182688956590253068453003791576825550350858757929675049099991130948196051499678588929674612875907768991059382327220330022488426446565633843978921081630982945559839645600656488204041964353972360039439703353656512328095307424008976634443660717715831160385557838537939306300765430450336011095116526220897698038435991163988682755059683827043511522123785334675187220837630350765706554362794828395053802748685169542494293737011839917425547308322664814740828196388453647412249855707628713841710304671785494321860796272613154890049001727725574361023085318728772116205367826949890259297181018233237113101315337559716712161552349710272282108288201696984653661535029981188208890292067780721554416616205443596387297398375126170790400218457519671129491943466859980290959763364363719430033114912257089147583997246607136149927605955255471192754535879229337119586206066112229277290023351138663119112601050526210357529663903029179952193589817391971002894288670780061575350303269686961972463655304793674479346059851080526975031319189048672128841914633472045931629758677075342776155165271527440070468549295527407261865840844766295182100480274776957969048591782566017670707142646814918883189270915851433674293067942690817829548299429715150046800567728585566978996974330129149307914287127887894299655134008401059316283164100936310654827388279428597155743855884223977274339251684230657323182090324454785622576557237579613812403297386643151037586420847241152634099627208338024710673537904873007900211908133902828597559528041445920448253317450121015138931464754957174726405917910428957782616376251973967902257630227954591283617869187273166848843966567021911989108538562317685029327975256914588221394544133933777073518321505774531498430328310524227475256767977275560310578325533622372320368471371993723541086785292568405367076704309567352813684401830181911006513116189113948004361790504886035656049498815760341749928279330944270352244634308565037063892620587415986065110215558532853257816297766194528987897666772897965224672931501997787579242111885738833921868250738709579733311231501024463143831153317550213012477572239895948533057686880112993702309038916789108782998995150912890207821318348823436617144705865095053442617117845490226182998983563932033536352558565705811280526881055060055238642167741953004048778269124371625895349858441328638827467006702119916115316754899041889981794722266912488759801545056920745388628346262714117588797536690484738964441489389675355894700257787504519232832320726082831715192325967550773726267193169780318352320196809102638026531618928295649934039097900354186351217471018741216561879325032989077500770977186991105744694108490589728822462747504549133566107297648695215724921072294302123686122519416266407838500852593023643135224069411658204096014469743669103365556822270098429531673005346598003995348923572804235550419535522776624771577702199036630834372159633143050193684984535384748673456789061010054905505061664738407211792875456893506429502561110082333640985999288627938725219774353112446415434849735976411048020856914383790851667843114011038668865975954999266497356407051376198313623021746605134003073623458467046613191561895160242847942604698251588905144992446201544398182963756415416187404268532041256003390271617971693525797617654243450068430618332821074451812598848384980961155899863486964227191269213960074812034138947513870326992206058663588426462706578358643350110938279839151882890953462359419379926371222203136888489753366048296615134000492736073474015431532213796627044377600354690527230742740922224115949021650288144306758589343003327559162083526798315311072590014274364473925202314342234517818813226849423715635486765781214419777106746314771267788577633099869272657928949684525021119179009972210634194420275557200823512550219191110641705085844236545769610973152232502143485592037789003122196302042795146272890346005134329062073459231736059536529744343931092662291922001573199170651295979995892254687379946572780159632638889508618183684026277592134377994476893258545511386030724769292652120859155918583774069794006363874574242047868448639169715899475369432478339412909891233086459078784198186414321939730546391965830333325200140098806100428676681536799557381225648777575334755779743953648295323240036909496177510493861148201169782652425474732955249873325192297143926450819511325638045177289320098071489061903776237527977397167176250770691682034055709217183576361938196010734111454220412245711657386501658805241399357274886878774600807587950885916946999648011787017836627895371521562733601095433978856494026641741516439566104500310697109338661835672641035475690585829418518200865338781175237484883206941093157905424721219849112677750531152955565585343357009348457159511382501874515330028317964688646480398046628402512790388057813212739242425194843665101788257553668396746809111047127929871693778079944624866172877411672145381832569211296176339403439974541169231880394061621589564457559661141308503546785263940686607215285650741472266996566613390803279761842965819058598857338054522600230436628950584075084550040824877002614961566685091739345560622648896756254139812709915263985612258050194594293074299107121570685738740184886386247619986901199089833945513498812217761219848303953984834000905095790382019315782735441660142113542381021421839469960236704251019316868625088026785608629142328137737201403450396217104568747199203860514269971881926033159878373833854954815015314174589038035223340775547140380177418052281117795197403658386766007369981458808624837956627972186800248342715712313249285374075394240922122252448827207364940275388320257031334270672118506553379456813280339629707355902300503053180258734730174568177859046007902347299303276583887831650759466348590241564098014108206685761815526450602353036679966528733403956522474696396319611608105291942285944400169005221335328949962928362348010665820229463501423598464583540278971151997930935859028117898537220028462258206185627624852774568339881962786146127835895675862832118553764189238417889137964789445865064869182706610488796081555855221893201887375921442852424764068112600096660206510374417172618507588988025475082606136003052695934280822160977463515439432116989940267686681408537583501043996887397490665500272603199813604737711700841180007569516387203448101836683857965004912817095287960342316624679783859491759866715726456490338372207012128797349277477162839157505636956066459011337694134356769593517641505670218951933786876532061601798630860362023067612890006212381668098030181687292468794867308130292012016192440776431421317247827223543139176472338362910710995490840805232950501819129550425736127054762694324977603146626789349211433525928804081761290269935538112231743038642326074099557190394866945473018859832654427786457759618182889393774297509862934980129317074629580279017720623937484285732166174926833793476117031009879739628067402924331024898635372362432128043275996764799175092974225262890293504143106730932698342477516348399840177488850069761112734199857928464212715292299747667027139620426314576076851288521410486053942150794638689989013186431388756781731831922219588678403950232852449640313602371855458966622442089360549591476891627669626386840186615202276697291310245374083739066001968810097396001743439637778649708503312698981107299289730293133080671921079213378890107422941621388037836600379500696701262441437877900155253778780311441348838759615201543101005214377018208629518515653092499456320701294665156436286432182043656635756690225796789986350579034661972463793611889765150846625860915015514242064249101520312771035679839090158879352136354654957969151073868116051166507393199265973191754198306424111094188898307500346985947918627981282750774818865452361570985842905255289514320702773257393634254572640933477020704227403478551554185756602095878873464029854012894393808825340527302644569392357186827692959088040871741343766388596838673821680579266436157826825843952958897462877270921863146247244543285716430699823078549272354937487747989549116613944316894057883836373386250185745438341373413534438695997831280291308660270972737315840439773923776824242858228311621778372951093513376740828815453252807135313697689272579361177625711961115206771711053462825831535739744290390875471581773271491261370547324208101351666553607766146420825858982964933089637882728790473136600337069187359205682660564054129010408444832546816868793880287059725522329765139894258779103207150476822613732634115733959854095869794818079810560042580512687004375285750711316687028116434158898603545401897722733584959676214150013919371176441624411016114796121012403954837402838415335292859859575316297654915846030211625133364779398485648667690597316668833229821003770006361867266980311554080855147151275432323027764898125986510081295662656766813871352251372803464472874945759195423848952227986276793687349388325019092726860939989570535943402446557678856581128779466720789862690932814390038642479234724440239032415713458754833114037273152202738322992705099754957605808433898182185196206152530072797143861575857759866539400219441750839454296992865841984575933317119228616773697166429744570590582836430289839605723969362915954662671136147172592264121878477652293494317080834786425360772991842442777136102088999824631247563795871855615890156024811129887021410266413989987689736018110902986638599369338779242527987907693758333718233067930648952478714072270304911306320272364607447301889640403349878255041370683047189946287615376101540628620968608059712423364773755017630286129445302710039442467721294902556171320042371262309216122718723594735368437525785288954589947627507347374909723908883696851729555372595673077524443305152550460268511917857798737229278380111652422471074552013869525996648019730738024582816320617203770787616797883862673042526817138928627630220552535636520028646042584020132438037664317186748454697154045899143676741272541208902393612488887412955045797447647698475261508787013243170886807043944277998968838804576121235291990559209458358457967062308155029826357039495441189364619309233202767516375585400077503256058893362270835061768995391176943610725650356361388898071053485155340487888882308451635528339071698924489046454122617512046767727853410452832339059196278957915538865941472470455766126910918527236542953112069994145862448799010613291416779028129263899141855190744356061777305735993746549968654943123529994763484908334851692541274107993935438458270219456982530013101813974193209947118161224305761966412278151569032373593845016087643880283126856054500759517243393965683116515923882338215935002490674411655993946818189176450592605985188038949452779314938663777912924847229661374092167822288524640922191761553779795484270071036728605677712281067171308470018646252279334034891841887900175918327260724652417088253985871970533457641330239192432512992745357281509189877080798384015050517144152841727988321308055278826157778187200959158652174955342808386837715909598769174975579500510877167844087412640502649034080838488678909488769296451603396943223833648481459627930278506560984970379045550196407851046900964307852982034524054509482104166636915320882606893693438420573158560697557678270646583180239599296669812355110247124511681734398861711552173474526497489863271137701742952068605751331920033653103612379291941438569097479992945821311111479588021889114138149349813494268679235626643490128834408880699431304471012658829411966297724070390536214281197708964261048997185770795233839474319218234879021833106158575696422365963304965820094785521421290180078275754547385827296291979006607334856556505703854786023570699515769902295872735757685075198231901288802080403786048905126237165432717839283913500486982005306596053892141330527655291495333661967949585898929555526501152335650340007956529424226198781958201126973874755544338580193109281615650744768085392454909290049511843142615867753335731232575180125806383581225520921682891925180956035264841434864208754651744026632723454673718963967054751146451213387886928962875166595365679940920626169007733128170407278376662304143640026165492661548483210442424307312654557365967297349799655292802481039304372301779742092019321494716414164797097211472353569122286704776215901435184179236026512890944963858761701324725718487341889269255981105013107592526608315028771010248565647958426395974963871789387228187845751045045536290038468392448015698260084100243531636926172776629741529580249606738974845409888930898719817474859449634910955566546784547656744479558059357647893369444598135043667484721069206821186284050237017837480341376895184966208814728914260392274004670380832737045265614109562795156553233522423860311442636886646546470267149734792804926899403927490573853128051574101216594223282905348143501355989212943266360897448099587497768663226170292292129497040276830918170100443322724624784880313361142685521254516826560558046355944196401684966519151946505580133028404601129678583443814438851424950418160317282857056890529322792829625566945067634564771122325131809025893191867930882786238401337940612095988777430894219243051307389676792640600454410201535299227907683704574396712568553440408202117154548293693815729513148334463584334291195113757720325457722663797740751807823165151616009224767178451909139396490523524138020218904564617870980159637883258881111131186349760563691177018382256223306672079722400031745905970350728001668519702816134328196984124675357863468826669569334041662700760709089637726467708369978283264072676040176964006282583891229498322763714818546174531435346079636632604746898333325942970963648937683051393649569626911597975785275077197635517851243854047013931948790929047455129391578013537741447123443947216452647975376790890435211892508381541407505660035930015556588541770663201873656707237183687001551377798724098650365080255477813236610678085062598722383592862852538914265625310444885287142832969460684880823848908438780310393502582771857430181421419268711210489695736527406704706661529808356850197849469460837790541253459452126805857660462442978892028749456625209362296545331672351943206539561774580441446099168599582491026050864424076908884537923101170925902334509556289231322879938175491204463502677238459208607891420717039804456137837160591344626377067956672038203003321470723592232531463746083741365689191980005123625107773038176873748861945902303034231413986422485798968473842741852204081112275996297902347592928459566963739792767212206435342641718863892484529196181197888013626462876922940192352645015350627938032209633250398639838070928014669419793795257393372098705871545125658052310831296847357249818737810438736861010070514763786935463355551454090677940264452165376046267299508489367937342938526135102568641153706583153029037263006615050673697456544571047050679250016163708695225200706300683484710619824131612213062683983209415147057922578964882082005292573726572031712744443362372167124310412314703941708454688993705966321505898740891511734650937236437237602281119261042136216321166291483549502930360144639925814430560946039345325728547027119077625088738076272437877799713926172426565785894565365218397998907649015648656484165685735231630435176000036071460027502441015036907773531711002701762654137248979210242669636567388611065403704494562484744962927856583629819963379639604217276851489232275488370753081900215084717584930203357012423356884810775852830715666799505430406977785310681716950653977108083467645782686016002416213691881155325752508400553037594260064985684135250039674530143555060936811120628897996474414298660738366271558066556643571696252895499224521905918403695337216029670750159031688629806001210976593983601500875697172833541796516330764323987248757306527513643525565003471377614450874335490839322290156460488455892681938726000991345172777161977963256250985513194685763681110506300518164323674621708921192846445361683344110408582210451323896017582732143083054121072958313757028950126561890276806029819526018670945118898438230118485901700558659094777258052416023802430872739793248315353058330528485271986764989588098326391798116995240446951580776420343910354796052035520349372236677842065569043281834140539822409351872676082750413100864190519069608010276491242768026852403518211291991112462974320814805654274183697313591545710538382610149793383990016290949692022468359053180210343593982549607445272211715911223631084775397560877654976329833048941854156066963514111932602271401352274306419781888935004010403054248642508255570510060424119847623574656992297100634771693325733006015826388605001298212573306076435090724550494715661249052884715958858275683757645472476987833255318716736551130483533783568391709556002192977727716407340198227435728277747636929604245357926688559638007581631342608928830100119445890779122637392830203809035496634832453653174480532938057851758125013301849420368744051106094974554932988645461557585057509310115580452914292863400036756950277563314718588824366075946985828044380007467775158880644518050852686235317274967240537518317858153181261849240777668970280877201338766838548891599811716846023353049427183876974623421118986618009832828228653320239027319779750971648871446924604947050443138167217145243437016754438871259388392549699874014042061112961004617560055654587946660608370313959282232759945249183874093355546296128260483593640327855999542318346700844210322823789071914762534477070510835446832258446603937566004024555559479640801273324819353328291366898531568459994349743114365513812566054589615874289739853839766468237577972298840772938591439312655672118308197458248456572861680993993116979012729608469874650683867806801613691265852729816367750101287680174669003789806048722513960616134193819263620003623308376517787105324420385736155900196023228801241860390846343753044579937840977169705167724641692369381416929935038458944171550028538677490192624765378748527784476179791638916110872873261867180679747636193496685203285498843540526270385620966930870275065237216532522485695125831145260124590805166417561268453015680264351682098777393400444727315104363626945637748881015281253839252172015725448301455452959891336679412761354909529558865144924931612917729605795216532609780710121880556734540447706831587018529830287302536466369915048363161263857730132251001577129115039602385172660624687364174178632581198547257115454447258903444275277896983952834337517247153932195838954422728686112771008062790306580022035619160170392488885573754162229834334553733021700589808764920705649351648136344374784443315590976420864443523702325616895505025580090557896616565014514278318281594699638785983096259003945901874861730019761798925035539338665659549918405990880622702518799116708300075712883351190728152608284714531223003979423969545322183212365847431436543278125284795123145221882669340249855353578884130199280449916396433356857378722635851883084670579189599456606944575714319147216951355633767349176430355708184484637612816390948914035563278667002881870297236461933751244645911573710251631243082040063746893497063117293203822185285351836350288914879506617928406931528271980608235063740870555958347070292102901825719415555640033074797290236923683574451692602579646020689575551504099975170231046837454114451996172995111430376230256662910086014265760583183614117780291408953842305970629655485217172829224150720616710049111815839006930925818007750601571082221706855510534909743289043615516129578780466590958321433491704403357020884097985728997801153477092345358552143935109693922222318699313757167288164658753895594738503552358218615983570290536328250393219538128568518715514560753120755044453242021345576746410307757075103433692328572299104090868224834399134231711900240060141357294652337252723671808951132889739757243055974570853507178193382722462506773917440422456383954632772694163864979753112062273695952473811504320351141911947786580877947182421019399205059923693788451079690222896103398317666129635568510465190634769091491957046929614567944531991807867072296624001401604949795050126744913926509611727726491697713841438309053847890629352882101871080671194515488623150021292166000056304838693811737847529932932821716514969086640892873315708571520743890928674097280417017790662322079624981153060826548768112905117255342260810423081833457692600149409353318241685703616616459905292039930922527275693317368377417824958984959099084042864021990523372840223677309700211215302230118816695956503031331834435122087915386921386557784219590189722344887135116373375949380240997109439250810441614906941678192654383195948252418910189388770654971616993808545839796922072603840075456943466560350308469174273500768483455679829985879862094591414047187619067645197996103512139644645856901930768232381852098550832021077890084197578828172834834521740412110576530503181282874623355126513317012609905552883565512185334503322113925112362536964017932770588282748274143955957206438866580398928044404177606479638427612709019177331874089716602759992777354541370552756346751065839972049325848648533073265777571362287701995402797439346587792501809760356843661399980191533357336227893845332882890620291814938967628287565396552243002253959058856322286186437258203519521675731232257477793511921640515447220903844833869579713156402555192870281068193350276037397767474583231010213106215874375590627942736601897867596619212576883788678530948761805284128799237949430436025437594315602663539417147074986231432313401831647587263895129186955114688651593693427580813862372148332649436270555345614231897712844775146184175429685961825589629914021199332697314137367230010524681110751273129967925898197106011847546700384574500124389184761291065736076004839377342676253358083990089161491600773484494264145986524234758135387272208136163811779572747147958693398962793136002281502755913370601294534900200168301193527453296250879776560849898338100142115281901384974864997617687640777240984208082751458070501385027510173696916299395140169871774754086860595173971367508012784332532762930430413153726102241497400393516072268462135511863439359000013815846975099607053084148662766625200369139725741426755892938454244728704317221096512671919795897820971359823137719584783693112920892112276101547490494501547116703253737222115385575873406315754403847779186800774210441785545564926738877221337978436098252326592992244141731664811527690006543718486778041706407966374658876455820184827476858352680098379496974669477757861856841529908544290643209303973359728156229210479135737825393562566461790918197589505972316118794223304801465327903650357348701559275009094247799752939774218503405364802123851217787058904637051792096319492556147719556830963500095839273416743344521987613309396180751960622881201561370817799927412113895093165091938195063101196213087105560368579306346230417819306864966726165576459245934998224623878070375513940887789009510989387841072225384796434032619891740022205321519040730963469255889460977724896120915032429018002899581170633079895048062030383799685936736856358446712833288148036817342011998119998638225134499972849158661586673365822282029314684346848758575511811848645207524125704202246479582861428390489171172568464320508847776681691987485767708371508469468776683224936879633594388259711946441952509568554667130667236477576512647803064216846285386645730661314355305562782585194847118700567545855645232184666631200260838965128818560281932735839875596072911411791223024665833770581262781032924501500864290217442767547067017727116695170454454458765560026545027067420710217155545698812391396278740565215123860128537138744825371512719084166676125134694732257989682205982211926794160750120528779671045852840854511991170715620734344433765537621354089647873709392132463378856423621154774245163629678454914736719843883870181187090825827648989626864293296394819889919238840222006075487579795797991254895757268509035936194907123289810323355920613417952872560432459225856955899997233111616406132964334938450898918136434100472949483137639001512538937771730645640562516593630415752217509134425296067854315579992290826185494080503361283896665508535704189753131632477978020070450432309955820053641442191736310221222841255163059725208603103566009951200719190116895458555111022517801723885249520308568066487447762998217570941723184114067915413585599700038730162871755367340377291466164490811211635231825123948968407091565564222021992674763299201306657296065453422071564591064397845318016613907747489698348902482260172089849110648495842637857852956811262166038639606119439300579582963726326552222520174372351617348226934687940283667130848354297680180327589342392868842415359062848176626026912907099620600133465877655804649321410355187589074230058861316726349232589623187155263502183638475859190533191161668028318852546615175156447780703838468576336780083150394717436560738459985747993398543143693410159453116777043522608351449366909939481473273459367877162591652078385058287267562959095180361913647252407463964359667009054212433376345707175093298606934825551811070065673470980881567744155353525474849612145065634279945315916125045452584616553045724270445061448777904454559153539608787498429006092148671202674432186232799551743698145877290224120460742044001925377507914790239210206382723346907032343895039277487992290421939205586915629208224889521786593956132005251458716144133823937296168045691384590176630013268945997840067695126201653480262169953018677848792188065756228461985073522866194597528945877901614006008242522203145143973065494273309742295453395302991791081196208257394877422975084079454791076710191031829556360688699794031525931302712280756981421282888105938528346004066439337480924649348796816339596830516116388761188056438564642268261250063832416788923182897051526164589627112629326652315948496847244971049217280304590906492620374445715016011992093792429396483402619619262377969126510751500767668933230592797523680818488817855988194123935158706098139121493932605764225653201137367835522106309453980872755392123055788527827603228913603689183553610984644189039797005335431414168153915239220142446503774396777721371943174152902556486253956918340915938740584353478826576245494358751193785275693102851525019547281540937825503359459164568436451723694426671575780966097748307966217948658368442762883776504604778401556343796373624256202567733689841181264882342788875461882622905141466019539714299790892145122026755730095242543931214491395553137889885117456877610892104639278870108888349306813378295169863114566371959965258558821593281120758110529761305515136426669845707338721019832200744397463789882599641051157486230584063990966851186711153668386781768427389946189013901922577847747460288941204932634971479641175735123284160760275405786104696568488200012301526841492882200128656157583579869248369789342609095859550882448139877680982181455450873712700492377545952211172365060169031921367583295415636849102622051008526805305162594709727015513987073034006044926990595468465007818363398029595864771465866122522310754854265931417959207832065715977612636365801379656598417153396448409680640716110081717666075847340695912788605637242497405012736284017660735995935075936986135329165445993748041324666787085419649596285550123510068104712962033468843260412380265710796905410921189881701477236428804770342884328933642247728528069018091266288177572730333999822172228345628771494866913144996225690269518533307420509449144792301652101407474368850059127603208833279126092068267046443037548521885374458491143345924423537229252600373243869439193697376626187361460968599034924168121075137928948731816919940600473342262484220207280434765852559681730788635378461133337479409942126910990675075595385628103887286151091029975956848346515449685716007876131180719645604357126487753921466288209733568972159533199129469522490631729768873372160979623816464088983722548930122703758154923266708431713822340025211079490857145146078588110722105542080855157646322452344053528358077768796397568957358015467761337755725052073311333014441073006960466910933869581856274515873176411457807953566085544329321005027639764271032445361767439596789906807493134545925186143860386358765925324939311597692529761153909497703631114389837366610364551517438006217926125243131226237148536240182054242854552420883993951623519690841777345952559064109111084741813514702686576673552267834253713726776152500975054337677539528375490733769228226785956366223656100225091027167513809176232264957575240040110026823108562671102496108703916804558893959722157676815432168491723703812060440563318628507534383875729013290708081007140783488645189454547088738961349372559453579729617482977503717829517918526578197082727375032983607688941293220107905136624069803297564385526807511733328528577297179821671098378978078323702013404675756896813308084797622756749592948748894774600485636261873728671380561973290235418964866367626937812265134714271245028521935624832942857380440001196177332652345298031161933376596887641407170793713744672982950558326260386803142689990554992514106381524820422840253107998494628049547204401051336218491524774957406789612211247724355665118457430937263820909421868786643098349348882205925559569562572148814385668938119426622373553968242598009835627123381639043878027886887087576067870421600020547564264393415863106551795113215682937664700423696786116099419904977548043068964280677679537279105755745294042601744057571605018850080496396503249965602276714679469620512361097074096133960741204151351622314397391295669075186521967314882847428449430110595442624347239566761073721681256422137695065319738084437770510967743054315667348171387612757287226186210839930228530752994066542711625639137369477567559187545380334127312723592487509398045729454978072135110216589705133176275309841297935927325320249048958513573448155030688733300903020693170942416196954317424567925883357899456114753067451336388763338569617082473112055363355686146363674762741001440530693888001084676785324669959504146883368993250570524737231450667291573988914802257594992035475320405419397809758953485929058159959659801988026735317595917401508128850033230064414553112217059735797862949127512642742336208710568747600592346323178179712707339456398284459014810738651392004689443308081577724904404103953783205352241197029460216525643209451438892785050200981861661290242548801816483871482023442800280990049791376696477754163280817588164607383473691798745483303845083677273291204094517102323943955567040229892316469813983068025728350315979210129152674103839509086910021291574681371344438152621578452577191942575363395735030111576410202652368321898233526686825015828136717684627923933296871443738387065528370007359701187595722406847595741993572262634088963182324227788392467555703283108776374563268316144572320903174399465927182499551691317135251604085137133767948655183803053164485650364037381721946402686088103106705533826518708536181654589872129351551061789723391867433876386544964361711082487965772638232744363120057258806186080005114378396405492885136927249352725759290751928977762308830663118409285367722592267991910254417163137948051910862111964230514900284400931114090003982104664230576778104949526299496044007424211456631374553935876541579378251659738451709554070728353058277497694344391292692833884007238563383969361779364273114933078161287095109889986335967067987771711953382678312626508996466707216116933506076233794027289855978103515376223799168664942258829513311220122072422359317301506375346949527059002200241991061676743405611649519154467085763164873301780179765860007237605047154441559098446096198049811826814019279367184366438832479798507990035137094272171703744713816405099130651571482103638613527467512004465743514103456938388525532782434579711447329332484219638838777080708788005681825708889554183014212230001355663833977750734837827963173663482555985572453123989700968421082449215078661722932898579020181033737251924125221123812914173725580893698361129631160100710893191597111733632613709636611221426544124392744240571088450719644558401237023896882594434562931135481057531653044633027808302797310887829246350427475089614004334043780848093612092345750774238816841314979975132562663117116619016322717658546428402352495255702269637729772726221533771229101690924373003626889164363362398678770521221136890948474435604068789487517954537466797721767765903040133216220911008205733213825724988538887063856077771270973413956262403592067008988301983391558506675607054260204123848271744974137965955185505613277631686872843982919192432960725648517451221620712407424818799986650965750476504211319323114226477338705928436268607033889245513913171804580911217726368386736660855176898725482090539868990728549437272289070530784553644764257629836165444484459998266844042317982432490695059159682651266644195476506315169186957799752453799095184264536693499886454506121744933094374807664069944899392956342895475337205201369224598581575769591689445618095225432297421479374182096845269754667195981123476084921770720439250843541877912982416638024283469314221236358991358487574777441090296074386811403963773284540317553905102054589018474353544383903432089984052722616397124332068674665723108069827535559286937818500595013835893746037202257840065533535752295378947802453415436082433007399678097422657735998849878058262726777498766521053197133167713814417072891657969554663268438238322717447715695101798638664047922279230112048965894576330167596930254557572378088560437589488641757214597943532198885811892286596505551561763463369347221028664365348535791176590322088236798697584039592349554188957229265099242558249849920232021572558591744197594863476823913403743835096551908429343065776217669944783088437893199201694257269723009591612289242894855298313972849104992077359927168983888555412889097797113915836491139405226442915684756093852288663659170532816510543786998452054532610925300027506523078291101130708328481549426812588217986760429236552692073036138109608334894424830094090151466164123071238862279043452433737685694105379153599439793972252797341317383336851682157244331530844841260371089346130235688035871629702479740242301198703488114003922598855401156322260664072124755371013584788164729270851975149112334296174152499389070620695764905047702894802159775406494933496006557033807486656330147960481391479358804716989237990989149491026619153874519504144362416082855416245305098736474145989287343660356496754808901535939711374182446091577680592315130959035408348491892878817102744486645088354657548512420141032319353359142758306274766625133878488927247228545782441225915740629392148664258002516429314883891431823285918831048529186478942202360048802279378861308849077086208843031424839470406181612494488505881885807695480395122763783389061359861077763667395125426550692741372457685141526751717175774968280106545984908396978115317879518863402641747617525412389344393464551533964633738994485100330672102314372756041954126487331512657178399850299297064968034175170199226308708072317377292434789316125143358602941838381866894479820513470319512802810420150576174983050201045927948714451173909435841662779188433312041437209789473467384702301925914852543237829129022879942672016426814164436039541277998880774672870216322508365470449495592002304978859899530492583254681888282907382297172365236009441322785388214454100524625127958239768597747093073577153133040546857730039397874120462750530371234224439080534512502610518965574750845579381594248948235961891124934386147873278008322349889500768139501380241406702752968077296406271460040061714431897487812481529271335173955111017188133158621601655499806473490140730731423776971092974459442423414913883324909050532930945509295191020411350037379981431711628029601297068693505118143630029897650558586571426403957821143718615408258310069993998890695275500497222637077039782052047560926106164462499061101614975612983651064346534757071714823551275947111887851559805386347326511164087939443333855513149952531734097486969217435162801463663838324677859986577359262700446327459147493201780868038683777958724676251503543574730562057549924999794062004828519148547791879095986730151886870295551568970247109585557536427574001904427805012100632455727164084746664714437271882418762090608999890295425493662131321928545170264911475650679708531714653407836108444812696557727718536643370982007003955483045267318547739235675242521961292625753324097642684907211942344506805714564172757161473809280728210115371181281799826368341446188033479546161494345394274126869836607105686930701976747302153460052567880206231383823682038207654145395737787511498152341130535801850910917861311888154040305014479197512700417642704928709888801022966102647553256559393067709677811416816918817056102266749014987619940204351598402661936035130193340322304508754117072423886976828427001528171763751388683570597084979329858878894361060813693458328917516282441846713269875724449448381597676575807401086325493338153062764061483453942776812571635670127405595654374941534053781785604678052058446334394350046686798676809964336847032294846498366332362714123335295338965566526415835912780652998411729434936247064471752518086305423797324936575250201419651683144248784414918920955053123704069597164222735388874957155309152923709124507116582558647663741215615762112867498101137106545611716845220630444831285313903681834297283286664015803910503662849833803450430708160950985840982892120354220399524690858198850870587160729626512601507609564654231021141424986341857082704230412141848499551178500673024645217372257101406900653645083104871768825132998149129460512880945307356978522033103670656746634271285368427027800292747262669121893895714846957955486319253872789587495567767697911565926344992053042456657191086014392779803340195802923872655376505466751561535497838902199634271287679788489430259160444493297044972915721019403570067773126544730395602226627106689665341799806624491166373309403311124458982933899498862092276704755827175969942256539563483841206601684446349502960317965180558639153036106795572765257950328960652670507597619611592482328924983725369312588030460032442355986599034421509633877492847140827828521352313166874809939057271602345783484387472487443277667568602990368351928031733911508652013520072767182425252785350927531542894002012758066779595566459224186882414065139073319539196469159602311197928443681292070354831207085277066325484996366862863002345790299468692034669198453897760142878606016580198081864011343496364965917774497825912484865898952350694314095818910418323272559116303856935825856541302212106062356399833512104353439662169664764301504802196879330416224984745729526363772424129861900973513570380121580390003577223012117830797603476348503553141660526192269638765668392420173423092950405038439831961125160690276056495871758546882662408387704780374692584310306158148097303338667789351316262462554544022148588717779877752834494190226501655488674124866436757396196757671806949528899138837689510056163449478606214384033754661092596929741418292254805810157393257112416211137949165143697046666169369872137120913713756941114834501223493647523074554127125335167197649301950049366485482710983206575115064658732270554169944288377101717410602005274398299722752965400377016783826786788785358165637945114014050896461276575617675476553572867006943188457041617426410941780682801503010243101021545151641621127807493600652966312163525234433274850889728032514505177118773165787719382326840406437584736225815283488051693788400011257739289952575667158029443148211780162259407279591199263839551331229486386735406085402029031243303917660158009142489875919605833519675316777010867627405667582853992280237620175428701587493178667081238413135756175582226007541721921361021027916579926118765917070443134682316479990819566906542206713447459192995788099250656878342663298028267108700004903728347105589785601417726030335233562260809406679968603562005377513110902552187677150737671378404332257708669983534432582115320207914707212056588325221599424614492578685686235057139546693806791399015036797937325269321662864647920723618251090458442848576215026128757461241243958618694842859661921820956155419385378280230856143008766049030337722640468275973391949760495806008548145351653985181810893192737717586679242940958234842583371011644080331169814820063703170380541915115783216654267429336683115130415245707503545528387050074079574110352250455863472715301539220707776078954877265899679783467291374718942745195340363161989851649693080657710857292948654571780445070900898378036493395930958502476413857308925347201746593613421957052439560907067512507710591338062994573635073554017172480061566117283272586032171946163045805408800303651633277727292316494148662326621026129742177429412844823268042071672104706960309699594250671730386821244671815443483671290623760906871670156431769818794056015324063606523795001078094070898768022092129463634778300982445984357382238766846245855011266933276826706693424032805140618799053400719178076085574382845913224632094811279716493361433483521933566077809916405828111813775237958801791020140209322234848669051373459543748591983956312909510473448609197821425331653290797682156833846215022581430928422995782929710936071654593020524872188040465958902255039713673089590738750580385809528625178131662844896519400257929039379771013947158211173843902385002459652761529501701802654123473613750503618238164081474287142247988313951803943968469029736957258018116717821148499771069043136905820368687279865524153955317433363138312752823772843486030060707652588860377280899127588713320861855617668609721486208747437615543868179639701136056041517598776527550661842300437880956307873569114815569123336082029938718067371824610509396234306989104685881892249462499197910596126717389913906797181920445502288205171645230861429617351797998613687585124930441816940378807450026270440841564894886801424037979210326032051516972907608895412771088359784061807052855620893119361788356109091425951278411654909461390384195495183792030223136470963562349050345699626875637776492705738920029806688003353370385386853795284061238194085378564767632802637104224912923216175778982405829083601484239587758699235937339630313447014336521557526904552048129392467219581297458921434675184589264164454021398672148489345774850626532273799783065988938424799997383063319226763037039419799843742152068661688483465972813019601953975204586386087864127448351938552611946280906273882065832075473522531288031701966010073917053996786455224909105962553655195258877226905593172538814698774387936123026467897733901638087168707631659598079724467244222572078386961338970945333024779639827332288618470120996804702221333303816060424818614045821745864034254802761207991242017010188094364786358750888409961642766347895988885802361906325029845393446152731471203384199857736967716835275170859360127414044429083887684766074096549825126513842769484221582900519419079742904179324313185826838780155089803999125950161385908607101443183664887399223248640889362659494796803958669659609499641782252457533828553056242386943498869889727172998777971452558435117282532733366964504662310215521559707098611103722194358282171848316011367971499461872022776055931940227369833779802188711566975802225718919778836786978480232645632203824422594460114434709938205396047001079135153661871115959302597432402676180836804096382025516918576349387328470028718407478669336132909069108306156354786477372244745606343836557314102212076099158634975048212730678030466411137457884980138647146132092346158712280955872793860287466828535982638427417513068881186313997314941795056620865958788495933576659076103580659170022009095087412085263328447891106022525657038494309888090321728398509519963764067146336300059892328970965541917540716432544815870876575292508689142120490177405944706823740989262880676857238967013558298017358149679984039875962630415508518945351029555969726657346862059040028326465600415750432890626698628012272223622751879328215504293435640925489071979746752843466024001979024687112422750935200105510865237392256561723428998265252155335608297509026448044323538976111047291364590329954362446474083274917536336474168532080354838807373504261539291078709041803203253731989205805051234646153196228581046612482021662573275476179947327998050075682071040669250016376263211862307514065382114819164824358655631421404605132641217762755936377671454451308685662818674953327467101907062251743854496328933329171472897360328638971234914864164963548615158085073911054663953239636072396325017977660494833535768120974727152748335178297474055597845043845445543477999652750885883383143288575796922220856872314510645681835867703170533061986896904447341553059889366063981817605024972695289771527079706481842710297954165041928312341452452752728873058686133678918706203743009451480534657280428657499543714648932489782331706517609827693075213624505409354723278873556984304643177474191753295692237699967746380444943789807500462460380836599607812724742722157249604492713372859551843119481041737422021772186735514465885601646944447326036165995535969555279882838247124293453078191029962679897673048522149984020905784545862190969508533253774034903507895497190453573351084701191958077355700716951473961302738169837636504819592012629106539865831083933460619270586392844457514159592957091317978074973536611561165805936996100054096452107668355195708998598687843424707496475457880123233176529614939868698770023125222224525044947671407593290341793757024695014811576863523693256727795593402784557416977097318574371112711219289698566586061704026274975997939916375752901119794329311297393988214025733147645848494815584984711740862035254346854855501367859539689604092553784926760259081347648540675001546773420319631210836233608381654586379860516515818404744208619807988834397423138128709821432221202429777051275359456604357801506068093463810185179509752606225988547164689751779327030382634812980876357889344658515919912179198985223468209724999847469657945076215987429400545210259086322584548148444819830634046069618228563894963594814830638488465091759874885754187513623711550652814767828405807716612371945226210266024338025336824928020348428907293518791183236554560758631839125665652683190507101597175608366591713161052850047065123213585566938014925495271262451732148213840991106084240037013981385357642024284433702275586129659435902909223345137903462731703167858989741505867574910638734622282154794366103827917321665513747291755960440004977869001236929381680696598911184084203796638151234540646848930496317893566559134551011285382029833782807945612570313652226160817360706545160409995131634971190507521381497904980179494555049988034317798178455037641182998427268288121101789864792311037645392522832795464816686724648728443750812947730784105270382929926141321624400455838442301994316156217582897575958130120647555730385679456899817296612067445329084323100160454801121147955157640628266154404334316942190283780092874029879736245906757843096008211176043321640713124659408308894619091047205670825156095622861391834709932178539444549931353601726503706058339815980583588697860743651305521240525629785835226597853130910667284210814635786189371288965079094748388613525124890080470086482972247670127346632414660587886833800128996647556059457264292695925744291740467909970496357418767206988872565483109803098936721257485249280727542984675648638867937085036124604033294617020182518519572641234027400525475326666547955255174077722351065780586440681116455077262529491729687611703865088462534737084686889234274522560706668724018427245486674485226839021245495597299613893981241434791168668253678133929712761237214496036962322635528790931187143651240812240285201861069494116450253246216509647231700647521836793925420291852216243170564161021127149704865760363291298604114157757369589184494376088993962863040963590296192772214172874044231061138750805484092230504231528425719656215127394876450701321781343156030393565270020825839553287582711787773893726588548396413387010362719962033168274199667338412617932142355282644030423471010205246802335479144003982878269154366631979156607986954890002889249519565438260818684565470412631977828444507794753861662630843385848285942158984598889587996302388949355486293516997263925492988699439921522761948104441861972110346010590744730874070798925041011576532963820707148205485474281536063035572604974359538887123025106706132071545568089740332535770158016990443810931322668763825718166605457653688876796581224670372146259780989517724719214419205426397627328449294128876350465780727691366076462474517256178334989750216304246151822349506249119633190603907840418726963677704763126002774080012980394739220910681077465343607810532339687300594368448604629556060583817197475861975694288800834500573753004056306821853788770430628542757715497719518664480515619146579329768506492898724347969807912831668597608446205627033921098003706273674016889620952958060284226920381983279145553674340617944977980945198543422720294551166351679394453740089012233682479541055224769590736709991522267707429770134012356196477745973446845349372291043016341847148306070909275151412501853006308938425005756733729638110734494013875397532341164905309952751696044758873085326637035664065343202341579609691279364987555684245554124773422613440249258144452855258469529459337286852169653374660771595025144942772394045951976511205710564645697088368791987123312609272252569584866914021279112281276996520156789389026154041771429723529916360911012296157916926934132308820682014652170017511537708659051198219697832950531104272943730854342988262978193488382347969810908164632911311140064145045562669617537207376776666963937736785553773845523308584883077607998913571919806464320541717989728636774493570482285731243638869665519166437725945897377035798327848997938669963904226484785592357324090940770643915269474450498559157258007224512268960457111483148938866726907278442904346011886573497058387266525623630537649110294966302899627954206445194451261269839621262224054357369077191723435530462614386349967083302983881313255056737265498916098732711717794128987232684836730920127227883899795464909050555673135165626205295871507744922900530956558878064087618568410962275940916827800473889623568727260313165610342756710361640720866107248222547833977705750012449415677866826248145914622049350021787680819992506395621153920161941320476293855907923831069375882993154004818311269087590233440535561477570747507655523663347845921053758128558529342531888801250414450082707903585326924141009830205796198614549404311790278943719849179153983870484607633647079892565778795387406622092597780358491159894989514616255412575898193531062993049135868848020884148356654784061104675050861798542371276400966369770268698575137869668529351742530748435255048187982901491644795286808476010433122694288383087796765990155514332541919384972941928190021561619299286125365580296888143176840181439318438028681458977687468433603402189057470408279622116249148865695359445611546224041093722137417333123433542644699027611441614062761892607196561272522460696395243265408071436415248686774435298416160959194168839176013494789035493143941241751971347656212573750086873162625925878676081195017075378710168383749179805715319872424786430072526744159274770410190693986362929993571974660404129261217623825435543861676824364770466528748078202990080266975950245553893491244604666549995787497918235494334889246997231857902558246452832002802821790923304158710327188923842540095211965383875678785031684235608594131724041229460067858120541724577081781407036062229610325592844900390318791031445567749634185117458775354127599262978314294414463838811659730117003040676832733163073216496957796786618813507952252404577564799104575270175570275507434974436014685816492140987529679634583290916618887646541411715883159063983660928019999613738305029205915383685894267853906036226463966736982026138977396636848116606103157022130660143696862736499242855412989237812116380105725607183286401287437414143266910256596558124763360189908121040275729596801380689003401623582763620279856663390220651461062687572518174395456100066757056599710376810174067276344917953475499852765495302810405967851307275477487721360748158319363423082493909486033865281696699960057528011088727205779954750906845877097254494236806738262922975502661990570145386862982497897050747565237322110306083189951010927486968400323053449530136825810185070623040314516355724738907821583656906459290060933162014579140230607612629466797425622539480833557198374863418266361544391231082310324953524939870224675566893458903158013571476868882642834788082589024730498606431156442510401207070540627542268931312130854575061142380112004307200578487413986767490892680626830466923083824674645670535220476919082158774171032505571507756567163043558352442409133721512865910016728112942532022370930422558503308555697948961380603837270459236991911137862656712529230415816883038924108535050018415535950650620592510894887656425923776532558005048292184968183670266281177397246819451967673075824901052769869060014591707189696239361031492052958942791233322468956796277859083334064608165007347424655333612065834651958226256979347374384005149815908693254187200665405497356443911076132743776461670599088772769069327960302798931123555976567679072287633776640714891513354459564525085403772228837056094774276864964430058707176491496482532612461256980366631197586834710966716914036401912541756188131544807635555981530788749757123859007708949640694141367145527423744537666538467471027503245886280589556663121055236597278701272028688863123197508623957085700960307642864792508781932738513611986896134093392299490243981773035552937062129145951365759258300847617910148939585712259160098124092380163980960842499265708205607873852740414060973092717034207883266530487196591884374732482521221159777985372133760913094159034284928406723302341422545324582145934245052359077712850208248554077760846549380524152531442605733150637145883800131246332616729421323772450917785202845980627281189624446411310038480484749525610714694977835524627737660228347535591243724285281830657330252229360905583656684093705593887468736662265892360267705055170795757012348369728739769366431996943017108319457546165993284504662301463450578613079874962739381066373533565338700906503617265076796285923229364154543943863559277595932212345332563891072720788736805026985500206922829660765837418768432700170135064814273003421860146866977757398166538519587740474731088192879009298883859277140500547674161748119954459026198903702409641447282398341806787268782290463400987827793685625722131223791470914211949601790271062056271199645968955013524360537798971521120850808096050885732864580988063041841764937099911488478724761348888316617216929072413510988833108394022959607399017351943437343093276752502672261647225375311920838623962646541790111122151448241771246253871321457781524279915370844293102959662443030428210257672615814954740386025406967410975043405859312503808103463200990124739650079224969919658823699814019461455748532410102611050766471290023566256743896520851082608914225275811883369162182100596734458657880316670280522586673917769371719888535521112835163775189243042037093297752967946509905995568183878624838588075648525343376953839111229321859621119843952705201242340404906385103768962957270459358916302853722027056364086303126231284494192279472180798648687600291095850943961772257777211768112092367546826671328468638914749957484412492244594859275914921856280671317867422799777241383612753130890060372696782561021994566842838649000461377341936704535319567534924594841776341086887242546853041745634608976059562839432059109195921821485547460717894670636253829848972608888866293521153486695001499826295757640041785550360914034019866354958560044078601448092654936528528037199785979372723073094281552532278035715775096325356686208577232756906200013208077324335556900425913744519763600491431833520569142071545463973375178959477718859583633130832568790588619426473013328164421560087432479828163549279157572281636900398145941815676486909442203621476916215499786486613728303518461788033895887600200113717466351095400769698317865775545743739117950095535800604779669000232699781977518551053017986121377371257538152528106633179761334695944196630672695455646511378467084785852023506418631598431270754521185987188031708022846705765800612092134800627152877725456508155440540363705701350895952397915637147105966560028193200555940837065385929116581071635154815217510000274989103848385191611941113504234819168300913518575174044775180852377210508697070772390257831626068622299513000061726427897053555284263407817080958614695197064635596455257212640823734790720737606000808862869663115132035017925813318166115419971108253688699488181179185507369235351834419714201617258475366765347553158762607889362972830861285031070146974031478775918969502419699820626131381605900731763491833322886587016388357268143596055818349265246160310785125371539365037769210073334267711127378656638961325058762795593278669797248192009047205573461088733620855537297680047672649522716981357008791329052047531008686381663761186775506440673200368093662655271109333313200060976324043553275342517850163299443807003254569520968222623594756261180323904128093493420485401863437326470970083680075720293534586845574616015878419335561772322257879872388276694092059904866041536346886922412205545261003863682358780959799278342454268349736225892461705558727470161900611064694502694901696040226003460890956457808039707888833653116584376789243169071552138174666195344984891868553383234074870035604473087754625366177781458652343123967442121012626864661544783215246644567832695742734853309112114213942903946444401313608015842455355100099968711436220478744364349804217063375113472588666222256532625515515866432775640411863876969610477622817829261984973605915410620453612679618666841650371879664487677079091900032668911049861162241584398647325481557436327823194227006798798964144826294622689941956088911907579133806518509316167963404046299081889224962427403633913084777716288781629147156229512202222351680307417533770521895037437952332656240074467478531192390535800687018409176572984520827178807070367198553506206730173935666047698879494474589363888046874219920091661511203726561114175672689773377604353861245106862823294423832583145797183855214956338821749239692392437439161573406083895291483116604180317340881164384281085021815945286597340246314232430248309386319513700893416950398645872951385505727383011486166247185748224526745079843861552534090431096561488652188516950356946099662819652497919330401745965516171913574426408637363555745504937392707173175108435985483455614951380872258671755050073665835687897772945922544299667581927143455189999877600409515474596859128162543066361317772177777871122320049246572827106251199505841186931081767783989771734077901830141984804343411487500283982614969866953086984605658019340839924600464187361078352083463328723359691616022645701983600234128948108686508765185893719403235618445825551847452883373621104502437685559072781679366859143482673089276626806858822199603172213064400460011999569247336945676879636885666512882715637760294290527019661419288772880114916795585218125090417396866437192769709295969257923490946061719888005115170776793995301120047299264871299243411268217374979400927478908452640655058728904145763456887143945966349404339289968249917266847661465037396438138845705170647307216194385712169793689077880334940345240003116077431342997686580003629032866916577886134846650059823083152637316469941926841416802693628883121992000639153941437519179238472797489898840256086742726992012551900635252762387261961314674960495651807329347332449668382795580232249280263125642280361945850611006638217281186520919298880863767477851932031635130123741865715050851427410056165675591165303656713778333510974203590897710131169265609599036189469640280401510117495392160708590410171031623733677908887408128378899051061524735627202184530598464271669446334710788085364624904626214934866082563632206229942444226883789777544786013102109444675840774766479922217948550191069617961337689724592689558605326312724840336953668786079159404968024238606678733928268782436218096116831696532839045615677305899096563798302516673661388611979230734313055268102331560646362282402861673055058053750514539751282870981714220435105559587999607443732608513309273190414285794235877601284943825720662945452059179427698021567778042658240483175037239746534277840111507656703687005620342144372631141685425620180737136198526323753433517709424446565519937507051810014510897759503972920321128499077753899061360135104498665736387245994923687756844690208010004068361794418080539531870912395340592094756209144587933224821330038220849318189897986335297266962074995880837238796564541538383644897771548596920553551645524746557312176096116995772848930467480758015987226164468179805728289425194907552729517944558643242823512959788065465704684851766743090872221837894759695760857308085794377304494879702936767024176541550862718817916742545312693715998635921316507630105874469038499332953640174402126641970050938923466211026796779191657745285692874288209858036155757572252987004583352219543533594674447316477413446697863258260820794034947649436423223936761114173983724091031876531947896513198048665675780224773426242316488471879641191402743904790171604317119504077980764350563963220721444088064768187090278670793956910708472639796960520885681953993295866278607825462976097849053108288668081176941009865475744836097614145812273359654118233809198266880631872144573774264592357678351846002706493867185096828887367881418333186052938077362256280647093939552092467032514371138126950139944649789228708717092360753651089029008749407200493501880488633730335509302801252667830624471520713472701120223751545832887080391858301843014579232236047508025425655986524573394923974451325284493291593289116456783683399361576560227883406200089597041038222579906898872593269149020671532068439778400652061418415285584019821042184643573972396801421907666651531812582755180165536127674627221229396804657116485451299124623227508771977117057161062525784270258135416375676029425060109026376650061366234651671323094118556580745908194297606812739292260693763365450795148301764939523420243900944410344800977835930441976834503624498738431081101129854746695865568648289473847141433383085811139670794626650751282111424396726704612195275171226443835141473059545965289036743428644340546473832446894252876748684528153583924918016645550847112358201056313053707636246606276896249760073428503512645528268724103940140986223323282923084470619320220622642861415878203250837871281776880496167013283087046046812796476432149536933431619284151082991350518212839219912297021497800277233380600356424965945517216772293633429979734005730738867138335222205553449995697755400117311694795535915434848011529522893414923267810881065606379479563415560298586487324717399925549014549464135171257431067840855452686048232569590901389943446984109652598657775579268888029888481059206236212814443497293570157432736817237588190121105984288891772951114351199941109752158629412287765171088430539817309124168663971312140047540632823914323022594594769744490647338434107172196437543263494689438984066343642047875744565337422936557216969353150535623439025655854432614675834229469331621892442952329637574652337318089403147550613514718462802720789843301916230675815403091027811110811172394126334001454198793816811245322065618297956856470132734999071254769247777034575652471619964383377701252242172376492182801701477128345533981410418020047431621763034877345644174719031346408707996615807418585849968181807748196627574783439508954377915873754680790358924378363980184741916808157560236895315885977187847636054511497706009430416471563749281113483028711319471090982012943731435288655435086500505063446507975980831746151754265474790609295752709354522131563881596590923572781802510017904098562409480953669769773861398082739303463155296730525146050665691967752438027375099535098716656128928008132535835743856880232628436784790659832640694102899969832515568579618801336971978396057197073386171392911895794643806408107383831581465905942047087806295912567383314707432039634032906754029978041529633916844398563657571433100934425066967577198110265780481307282609482793841369713772862212442555130285850549026268375410529370182233099262741040278728506487877671457607903678279540778478738490407292893990245451627068286445683338200494951063985105347172245968569637228551847165502339823022313458646577861464212806694880051396234115211730406300368866285805725259182458127735104994471335031220297444914882417356388347066085374714690804795733938165106195892229988695948651430530384081224430615605493092763459166750460549336276037268095648790543636000627845791226328534123851030136996222801963307785135987941820784825171269856367737610510471697177108350617983703647301227285999823579353801849613413310285162803336357420552096175698782689217286741439166589462464187106178083396458777543389703580593195538426260267084026983504662622324905290579989787849124328638603385455168648526069090819854488323370129052807710398573745221762534988999000689863613985761043754895411522203353243835517988811693268534918633990800151884672240420053163259451091481973926024183700886351039051494774572926478037353351781145882199769504543319819156014982738009389813929013411839867736397728595130710835688102681829391696232808547955490132428929030102553957945741639722605741038149542207702284519932631454675796701403341737706787334752407391695482657823872317925527100317311294589922986555518288236774895172783414063402654463370958492565722015440103980088507737113348097795577455149968766771397028810968611477472934684996121072121973741992265250684288713174756744412634019438325628913323954075253540411167097654726621893030439967060208967248690744180677251449433980637300616931981747879562768950610886493746139058337163653585631804579156347732038010116471696259064226162151427649291434137151468721192336924249289639095671363636607414098498866909087136523746205718534654015582091643636495245919314204995423673696881874006170417716715417516334556130094677833026791809040993143489441097434579386518108646297612443332157273655795036551252767371022548664408875403974326783429235177117894327112509614261517613624063310633428607548116171445744201161289290628312817256339738309805635863019498051308413308305242135967816072932464361291673909261160109186798460601962372273061374669309729422672682643591668859826181934467286866007774870060354765661362066021802592318204504927048633194282978841479853537151989314014841251369653144673136354740299775690975708360913837054379912365514438539945185224454031647261472490474443630287036804098760398387669375095524022644652775245399612545671646504665139171306571137001290720597174913882126525551198091997269385263540920507858320548397925500126692988151910085458172063492279607565892552647530575425551366390010622635709324666022455539526536765705351381934395183292107438693686184248477004446012356280642937645670687995841614118511525959436500265604630254993627152102164922610904384406758526078263862350765549496637148777032868172033732097230508000718309204078200444066752786492430733634200100092583371979109622149183544486541601653518270363137007125831454881390652762499859639246941745825573782917209545752685863027606117002529098623859006607249685453375335546277288137634665391008596618490450843664139006757613217490794837435183123645918000561416111957201910642854875887826619368765447785614054313426892127573526103515727464529035664613510181888576039061948695695056963401473378505198262061236289793232673306207428516385294395904979874329739703969342329672212188283613747603097174606570105463931661468685519386316377968707653289309571200853217102232006116200042978197775696677327582011981548726406447368839117197189212810488000007080198430016370638371311967916405636255703166089080679685472887987456878819584271703090420470994658529552718916361890015299671940113479708977763746068953985344122170771587736460143252416684776248680491575233140483092662373518815957244160901257057915257609931689212024194723840816669544608358164663209123860934553219024466286343155874557341790270869561763648686145724615912875105664763495195093228715659589845955795234793893040752846418592496122963944930288460327105238273543327941527013043910946989648556732307137581245474411090062074698520025104781361730110970560731668520804764606306709234712016066610802715499060499205027446168740910238790126106120349015095824683981289690619748278531454945361261200662025277801251201071074970220536221260461657981794285633880414034613141723156146288980134611043961229622937060932266924206217561265556755092417264968436138716285896004471526463137967918321337312692748007577787845963062488535371384324063914742580115380433330650143660374239392208409987753569137488876245063061332073422830503398762292469351748556403998243545120385991453848851033763095597559691109518284621272835734515460187068755558240607253132326388442919661443682101762588400821444664740506371205305388360427615196444714344953026724751495520943696561369134330951818359253493892222830040753485996815939643749723323117374634025248175366520140898275837749771938434752004805886351509252788546376939417176425844352276080684737706639452372614783490334846766666647589553643662733433244483058236467859941748993584542143698309424043052549954440294559927548639270083589233235533970663018892607232384832101341306635887585878847411686029802299246442556753156906457692070968953562007590270233448820549750536671612688636709748373770366554446200395272898396012621052826096050693097952098695408603252024255386011169242913672697300961983794163462582370537203497030814163893733356890862427469910518970769826818620467449040300448630461744358443162549717255841779903397373179100928598222732438222921198127789673607408938198336295795533011581003038661492951750778554974674204508771007671762898918163097518695135626365307661343596820084199784076949193800645278348878723601162086299058842945758146503985426554982396760144076853925513538075752011995706675731650422618653879806810096165859820058922599867781013244532802371934446715524542659968505597456947302117437485103629047159165106917941510384663890918953183514268214751125133158404370761793264337220524126389984167932582746395574108501324724599058417491664550038112731294507140888351529544507444170733130185043414916623675312127399351939265533771255138145484863300118362930362614797768050825782085509420028178836628624257678609578262661336709970003868359935903116690984613942915350650989413939999493258402469926110814802413338075777138571838521893328870536244950116200676333339091252324066150207506142142589906783894741425775136881258929365683435699481647824315009408733117605999353067185582899514563382524289321758674348689719326783767114280636410009527013405021474835250713807627759595141559610780157466999829252217643275790427449139329602824167780385364105145327157839573005585523996838206634556996801389330502222014326128564972440509121104561277159500975573146178682148316555875996353181238544763178699442494185191720161877724334908830270536573117761579482878557874639350346652981998713072340338335350991318773592289381862879799594775269196908504115408664488156901154983578274387357509810594232210937124917690191333565743995645550640375114514051691914323292989800896521126586507765337546147988569490099154089759576338964049713475723350621573958042264062656708681933294328737747510682580177310635478627761556840652827867039848584851186267099392747691044142600016535078249822465638366226585077076288052209306105534984090227460268382966736313661667769040180644616421777359470998589715876859866905995912241156675281178691085993292208950108967737511403311758942241420808617759759086657952694385251081420574798369019144534479024419132653050790427971361809957006804382619559488387842598807644066742952759976772155591717272440946820752605851384661168319237855211673126425656631852035200229041206726925334836842862675018861564033609711523817749598898171519251320981965858821466107773926202376120840007010770304143041084927622744773817860601422057844028447063942205509737221736145252211079714622284232647898895464471230975367655562978827172819172795368250594332930018126382816928988320583452196610383524590830796085320635700189813060512304017620511538109300643559842577874429095185026083924172315465855639299436309825288723300336753835825340385402494837636489851590465135502329748259719250863858092500605431899678980757568033896738952940452456227300478498742962036638376558016717087935252374650648462971556348067145062850383111761876233551767103250559675708853454334288308803644061105854009380448936524096235124616352353358571450046407871968642461446656279735394069417865977401919567676532233400136780217343497561213067634894307502024998882553456684371149472091251851547944559116989248552617611371875390621535290950664088585504964362040248185806386856879445955732420545425399272118622903060908768602685350871317053579338119654276805470836640833136636506342962282907988818402768370018099625508328723955743758163948012037210012649285915829636081015755177023206027380543938068285122312162396823767205408886139071487081625158105035501855142581148541437504400473328808765827014104345978711905318070432258705135636893081692557965675350177501203090862292194070571659682475149620894670472173028445764748819701323307355183917181559396355203227186347683242035049991705573867523945213823491523762135229339624409945475940469390985515889964755625582598090538412325710611836066933659379962213403079208928006982572913951347161104410802633326192841716075977195268648025086005409072510305787742992350414594536117376092980489553781951038868476136086045703361147683279525005788662594300312255274685417499493843006228266314419006162591840876156903951635506463114396078653241544196077066785356904044814851363517784892111562212485443504473028012418810630070417202375889833312745414956009617698422646818378955610131944592448280652142520567442130650561939730591002785849150786707915219334425909140817102142970257110842901060356069701984845498113641598207225440855470908692164708604644247702971200671496861847621240613829842821295718999286123587853864322635257558724775032986442384142228501435134214808129565294835045033178181097487149252589626434981967599626378521575864585632251536925227247649672808270181326293936926400518782267408295085459592663769262630375994503143104103322194293536346700453104606885895452203685325527742493455968327608623697782005480014624233401398689973357689341794631009756793563554792963501802006417838598270570507649084678455970083782516024683339454767276819590180789424753593245385601452034794819706385263846406100207949440452244227274560009531210685385628015231349230504649414907758877918895628422454959695220005619832191366272837355481538038703099218757856945308282516770506169505999007025139413691787967220618260166829785896642119356312971956412744045731489003194267691107971451260494858655532052576314482937887344634437697468523136503897563494360669988546760321606265516186185428423414625520262260900320086910540046463309087904923669046554528060329393709930172688879174875069862654567205562144915931519292078556076873996957870135395658825301188986343798784057804112514653410713730137801498258263110570756692393356134477897181358458436031647607031928498258767023473854524942773151290228327717756190735463837347242943428768515544657650302697250005786900460189200568095428447984572751665386117358732222427894419515404063218733598793800989160948901657996770112895168834995468267291237036615799777739557446750696308871037187759001749290290293375428762292703099275038103609233079428533631480252192674775145683569936088405488497789304493555791662805639240074418286584633880288879996173427983515852862799656809106821234747723645324019690514057700680410177206708425224602122160841088763236359696498522779688635905822622500877227399042704271609064500582270221963290474615496331579572656555121086007873445736752813111658793939442288011109855116943032578104060399591799826808443799236303853103136594155093554705162733702361714651832758745449423946126928719740395049633760569614938923811840779261018999905941263992304765791236093448496695636002777980439820126665785915321904950129434438298581577160828376759780455953633060077191641966176572186603693161941102880680618991034826854238229532403823003040933740498701534305073107465688038429782232713490048331907285476534744594911250341911731097372425791801963519468771118811028249367844412957275821171201682147980830601868712907580465632299260869420384283427509740443037646896011774450518350511323284426305766864352769986306652083194489503490545145357510104186382103375279641746848530557709363228997479935742680767728647021576066106577544216728461395401441789873099117013564911940924273534010983498255559715354122037672146413426085670285449439757748161578543895835213187374280044111109216049256511099484440194972085650538050037906922310597167104994915822064254583213692140098499459031545057429297910089017046975538726956507770517671969899282640766504462251264450387688590882379953245361805613841216765543597449798532922159049106530579997846687989204145807116964836844053565567082129080471614484797882334086671654017804543655245912414109694645992938395757997940117886541644058789477676844878988306366979512760107985824035520443651992302576775326193019617927603861089815680579388731245817595609711111390011925591969095755098021032889498523992922840009745964299238193967490797594834285757557686658109840150599182158196178560784996611758186059667679883814000550460607694309267409636858023814035340887975117461683785929527997329426195503625541427483268262608922566906911189090066940446635577939502334914404224070717634187230011741345608222314113149720119129505226384520577924258550647461795806257943422807882641690479377401045424128622603897759232040914132123826767527851723565547173510682452313138303664181195166786136820513430787014621120204887998138508914656631333370424679350923570668806019435070867225467451855586082243845397604014179998048541444143495762537009032346155713615097121439131672094640506547465898237074694435516520239544490872367217782031848965064409048256541392604373920961834174208604200571563331968045732636662218367041578167061992612975188050156187042925556946174938423532765924500498455203399901716030936976355755333765997571161118004647290545688456723223193450394642215765051657893745820954309301817016093184531808850067596619155269277512329539624028068547497578596504092162369489576993029032548528382406343932469551855455721766172662846704517377205602184902674138384397859362843221666527994550325738711424036871338895007060141487013677616294907426434853575267810736436488579341787063339339122624185232048365731935681628134373047377101290642329496059967152662749972926757789372883735526296329187494414709080520623402753620834944609943202270882270517967970470606396544251828914962924665741417590252695776093960718787005166197970708995851848333510359349775352656124714648340796352702174057138139158714877393573234249448180046652076391242570577129750929675230080608869820608249658038499454959625324435576604715785864456160367979067190556038891710456736271335928758495988702608541245422797940679330701384875596810259093901510721579277402678607028721268625410280170364790750696655850357516986672744412838806064241243482484339305281977955157140724068420322787442063188150200054870992701116658407202503565829992418479330714820573427929354604386848523984304087453312055636266356522261186941979277706194246356744196422241881217804195761600349306015557077880848496233485111217722267179865126589747014908438853729219982253611207846213217383753562863843538638906475906330513272046787426342933547563139613493802340769220633640236543515043340659575137312654255410410490806060504377429340476356846585666086610997426460406415311407824904762158138417781349244752913829584028809629880113583170273217283846637418923399382048894150114525780249711264009487753098153827738414551472995903670248306693602750470119647238053425552828865448998578383009023130191207087064216258359636337947637020093212664807219570623439868427983296579997284080539601536265210346661137691654255160040264766001298339752597331604913999693253611370383195578219096319000442677534086343529379761522268054095157269502430782694618252479702833929928767857380006358679231860452548440927892899259246230888166105287040423303070909383802870197575694796793915640282775803254143943624880378824121824532651132484178147176522839310853010584219019909861641487646996119276446148828031968385036238918802695587785228742490945744240590885160127784441358949437057704387585212387744709396816470533524768945052136212709820203883103099946816482671925859552958818201183339752181184051462266544534180271848365257555198143378720208546725169092317468107003225932234992294624199713469412859725882048645480143617231390750362267663460284552200287077866379035457296010475723863101778830645042769824063942082936057756702099031498453376292967633337838619557054029752161065311549524778770011751543797345691554196748851971323284740896658264638293781171490304294785900131330337323547713679816022294248333266031719831051720856241428291315903474157900150966477804466457542055774626110464626356613645631244182097615356139814638076790253142497250425806542257634203046914466891574542083722554204146389060627070455852424708679200323054248708371937746859958502964250094987919158289493219448991590213956856465967761507037804587480588892747900240832218435310920369177335783417057231743818207157942699135213652515221008774988278998347794835811894250508775174232658224685845099505855742889410909215489024186935928159077585320069562834949835570191695377291598937461367572194292698489518329022547335601769314966500100407332375758931587400676090179356591321614496499411441686185242672951118052161410108459171948574590831951633221613044297952774347240931608310958093177918684646624179787323354118948933220193854688240785387110330545301331669155334905199738258437806244100616654026592568493026802089929005647075258987371927614343464339461599695278058825440655417795770849079208220734062639088676484404948851843218752180762424352426075299077377053436275949554541565295654628711594015342496594783559982985444454105305462447343898204514051503088270074031011151882760752784477727960988692293995666050518043701940497342933489181078646475217062880995379797686497526312687509957895933087235232592036410225824445876453667497084124180003166029354500697028607740253520784102103935764588193769300111845913653266217011725004908578951987537602262504245017868765636263503563356282588953936535041271710044955423962909569434444801023993911131923542896917943090578143836338379229291779681226916715971281166009675211062428126226908738540915096086035172428514737000746382441650972691447989604906925446293086754882312673754770247818544464787974317326273508019138978465030045342716982268862510133360033933538575495217738276006804513857682280680950032552395226058716787822416224890083620877713102676402830277196352129091007352063747259669544493811848917572608186529400706385271020867075198893633952222948191373686175137851948151338555059034302616112641921793011541621019764905328401385171811169142034457093030105891495626671168932279632260955487394966131083876301478851648144977324119600359930615088911403563928727405926182019015704201629688626783790133699812098187279813481973763621328612982646073076061502482908438763756466274013106451270717194409417686075713759451384310937496650749923951106414725079832963225875640804762485786680563981964346212999812170277467441560271742949508546311853499652903792383719784682229418986901144199825656887840502767338829969939523973591762634140632131790178617178170812675314336088784674206817413312858005186693405142221035504775264085509255351606155902259114524854524108377210608437704190245721260515828960791701657051593184347719162786363158732842228348379601032493385021176806354611014694249679368055587940021320407638341422534490469193137163970346176481330610589520110105908489860618043075864143408918024169862522825892810573774795743904869231070335593282375632697187953812650975826022371327199686157339651868627189002280450221711213293477898203894397374128683976393033599135472385311892400173995611499487345918064679326747966305434852180156041031204619013207112314070728868208840652653156878607414595811540590793757297803840815756090825639525507950963497410325263632201518102500596305805640384529922528719996929108553984035971062903590758206584303209767308196795463460298875573475265346032478848235421755119172374410627991509626072311646860760912106349645258419642724525981239930666088637667659375613047122018715817142226791581635895242501602321870313052686076008441104510119739652450104368534082140306207459766938710394808461939268167913912005654791296694431620940012266815116468688086307834644956332728266620884103396879934734324186097400513938120814581906299396253669444917523581549365507526930301717916397156120594447986218323790051223303552225600581361697544479638976250319508859525739332875597671641342015240433922093452040629217019141227791911714843344491006648383385657658322939326861987609551873835927427287677648479421536368283082723590136359504357040433096368804235949700438283837219934184335325833204786851105319381897631500022952236849184120277102856166244665475721353090342755958547367905532690722035434466333303000630542359229762388541070666355217915818256955676793116001886179302458133193442565385579070339613397640260036811224329119934993993704395175971353845420770350791557630075815917837265321583794287536778224266034088097383330146851079935550371398889509269595299629342504383492850787670871859908663996568038280267434373979491530302759377672951392082432265613225102589905403706058746541211221408474069421738191069966137828030766604709579616792365659155716262397024726742982697711511095673177547043299385551998056607693734961536869839698959080611796979354202692799017729451554876556581571800422165607544095676319789578626505215752895023831322533164035460740682854576933850952793724030065345708784886837690664374873852172168609806673624927081015384800106057643301110021660271748988687389608032224672978493515493647619628991246049549760492977364793911357948810231386946170312898334410801126455508765846176235406751450727635184727644834003646944059475163097588564086096319093996412355227133778459945082994014825057489467854152219274973015052055386943056797789354044642378488137453956712128841855822528611312736538672657796054287259209722693491911392004024447687871958321816540740936061502519045736798186494654635021876737844036636506745590036323715309884589493471772261644724244588731009998052350925042042732410665889265911205292535839299778305051781597567599400474420096999941206780725023729040836413364958380596029523956114714605560901727603113409368554640250814096911323309594234355685358845269276886930639193976344029149461732299258114071486790424414437906775100088158679585739580018739670315419831733015207428891768045559482841628136807790482098119878744853666501769022024208342782934527511824968119979731421704358370656999280366752567697752216781476397610193525785714142972681398580000585296431512136703503816405033205393275426116701648460442733458520516139398586969504687160721512698341909128582036982163732291596493335579265454301134163025015256095072593004564748757157964112546438023980362295772156695274352166543648980513548947418962757892345866161843265973739690162725310993895605784388087090071966874500765324948512746667335617299511358083475772186760836479133978995801486147150810822943436042894244847691864832728990022082000376861127701485602632232283098604818728493294143246521066127444101601395175971960937061696905343881738836650056306382940039400552669864807284039980898529817885734765179353624040223716899154508251532236693837727183290076955125090411652894908377738507495827715077391567289681381085918087457476707838009600596055763833361460812340991190376596936304877553833152652921146252332874230796328556082456587492709997998190472117446946567919316244290417617759698384174995204065043300729088564132320235955851706796875687484286087380631966494989741497457937962335118519319014596692578187104743975120977577918532399362308674424365869799914639711145431284121600406022407906844353949154794152175808145275064976781993380464220876652847633847529601318500524040177096802356783976146900419743205367837883371430404252921028803483468242817133673434615951576595445085207568531600945513236208975002388623566149332057432399023889383376125868530146887133722103545413060372829164231991623314867551650585858394105484070321518311308828952427676788703363215353084425430030623222621290439234658503460145239079250998373937560858546113133819962241501572556399084581584735613077292762469603828432633280900471012698179367171727475888631404185924436856222954453730025358890186360833241191990204726573725266574940204224015732041293958376651566900506124902458785949372678799036525322278431400067586809807094771419317550750343422430713892796858968852039495001384315306289826428818090417208051740337788690504166097178581350067920406588879624236436845537617039146958146522246320824448413782344807720032212405995807950530156926023896181690163567629525046212740858499001054839081332921327559416497579283878825371790148145905999954184851245300094638503788335470288704729003248224088072422939231579409380588100847441585459850697383709437945003272475863392600785421552829437959549698443143775643623389377287138107447323176245495973481752544466624382876146289433738020794912473437581900939101383031169498553098549773325332316754532421899351884784925544440327220518849256586519869383553699449804776827252088863462809177631081118620069826846126372026812164229005093018820834603421221863093113967390224056487917824911846228187056241494994439401336055469282849361919538399415221478545983609804295370959993916682517765846292041765171423390771565429632170847133649562601010418185335615130103447103721896357544165207890536824296604922602550151036616490197638692715420962142916600728844955976813803851570494310048687015175838877388100081629341106945091669266944650393546482669376408540605811260211227425821737505014093822327407745221125628451056961085796509916393805882770057769537286037097458916990210314761166371905340056075774992849864850348632382362503104135850726101772317211790478556678260273157993567564246986123000484981811687437692075408586755767350538600550304272076633209829217471317659144724783092164225925095308506864810926909438716151211430473347811798461863996854792150830412046573233778071196150996012615617026098538013948244941497003413534682521106195038375858195298372468231720284166463957020122859996031384062209262581525977573310693516456029105840998698659892211057933888501453146415048257779605346688434267407474410924266105138467295203939320280193238192894413127476908948559514285688268341645922745319930337366696804160730008035532473317793831661403927276679187273912586055541305105794411820278904039443260682703578202841224730252036614376100128713893969398360485342377760824215559472237084484192832511311770033404891285182020693153539707442568862923492470229235984440594131738808986020107809753464348468609129105474866829089992976808528964559508514831944683842854327478628637092474854121025653275567490421673721322384141594521038346154967784256377565784519793061176199743188988086671677852467361594317848103379364563147930908511898469619372717159818377306390845612276358795190675570117376776628853238775746500243703054950854893295582529757763721351884368110909086962557588095594327681475810569650707942131103966926153201731876556107529633306428924255841705782230382171061051135671783488954447375758630044946590950764509030972861884581774832475375641398411301367203517353491752216621161427940660418965471492461534251207208051955000510291047569528983391749560452281525743037956925695773597452364820014056799500075838530434895505439068608568858869503690602372665051634701360992792979580155514564364457755192851286052390348009378434288011328160330389232322487236835640110502122567461623629726233111538713525463846570441167569981125586719585052939599225684484761071436717141764618930651912693880142766521347801391842741403229888589468753231999440856902770384125853338272717030416931286111334768479013944033078041592730004587848907464639602062005454132765804730123045811191699853443860813149559366807230548537647518343493158938629353345330728385799288707660373012007837585945521081455977276475257573698157659039374623583177975969473947409508370370843272213253999507311008898143348848006121113365004812598087056372767380045295620787595522058154317483895881354842811523678414756776887128865919199755853430618585220532490477050015529940252389976874838857739298591080604422410253673686108854631836968029774761635540514204492325731740180622573791846628396839148527524758546649058665934070061660644901661216181877630334833666631704654045325969384078038687830858864825797862874818314391473035032258136177129704434390797456661853714000020462065396994743688612552917135776684102267336063752891022073986117141333763181273125113534162647344880718374146057750023624732598450174385823908218764339534084712636763028355004023588483862841708600360245248087691594037161826025223018107374408236563226148623173278395908975563083846235770753862520725066384613598934338555093276411494485007400340149967795314622269719743603584711387375606978014029571333345201955534438068120636771255189223475427747727728892001998779061163243368005653688668563754039261165590181084886437917696819424161986453985794175203718023870193838236815397838536829462045041765293579578291840674064644664329455505387333836361047871457383126823790453495542192142466084108794870156954064562806509108153263972527830582238443067120158671785570226497351942798754670359484841095512681040433399008672641102596659981300974480086815494825558281344705138193250030242699609730398509780401165691254551889361202407479109259375700366535127922487356876767051630154799467125226563079578875360445229069473076881749272208105562170619659538891547224752835547280428604043852941209778726184174176445207236093928179057370866081261133904793641149787387607511801201190773387981046352560663421168697230065053178477999812153146362473513350002756037134170396209313232807573136885371811391720169120354600389027306064625626788281874682311259566448431040576244013161097673782544667101420119853574200155722774804311824834113624849655555411761019838787846960819185699971926938164187550212355120685239993426021287620821490223070740619518916207221986844122367380371316618996834572709381815133347393199198899814648217473741189456791030785423145029472595760181893720617632156631970680563560889796788158969693016639231708637745016385194547019004147322534707326278414919350680011124662789068138026578572119754576755124331593987205625897656605522260950339768982711549791705877862585297718299384829414172953902354718466703689470478392325229323034364719109881918067263573159979389515135391377935730615009801356899529197047268483049064318198073578347988904682229472322734692200342523739965934772184445520253164417105579687534913833318718212556734651607769475744535833698472067710670497698019897699163499593889653812512554568303160809596505689333296271361985777003886716147094516370030301113462053916932124654994921264513752075033707798242026377850730582909030569188211375970270101132803945004976753710934807980505495280902784214586515334909353009069523920632361845170439608662059439412121795589466601642121350959126359809589150025150289827222907650180168452050254237172129054829723826948871931803764405019179286322634114536658094282006153437076907670473302649233824490009745891228508959578365644964716561247889720158782664482269485936708192726459429761276484414367869723818188393815432866484430700215976830565505676950909651116281546254609461222398807831532035948934205579815709650209966564798307052347319126860385084830967715777352843735861339113291986301453529839831167684689948234184358048057885845000301486695648881339407665592039508871500744048907067884863477577357790331789928823519537128945600228880936171139788683208925757215523044325200005635427706075082865326485821340574834500219856817503194555582472694650028408568425581639022667468167916328646060494628072594994753181747562080360748784510327356659500115808416978890042128254576641823668740680374683865487742131582097049400130975275703141573963112475825294357995826723777337853015736120175799112276842698567576836560868480156216591056896207731652759943384717539903378075059883734881432213471966063143079082279566120922471569350230334169498339071073943886675696727291529301039152860984263933693911557578615834959681332327948693834543073602192271588715980850349148658123100487952203071643699566436721852769221401802516049497949353501742111023665152938646461955857507175611866241873884181809485521023030664322530154769884575416588509457467985625381811053304619455792880013011962165953439126407179102095205076961599109121630241817219398685684691835044208228761666155607260296367691915691954069717585399598872539116693690194353137279933719142026819212033019137902970633669783794708056909731341184857931109458123682079314046981049236276850871281634732068238142725000514815166880393227154041204995906048503209927016480985035334075000570379074926097888080484326572067584532417849085692260488297560364294636881926663126586543567759344447937684721344637326294062689509120642508718114216156249492409568998764529337319550143848622107511442266133141038001327246144364939208071220422324286413373930012406682708918669609876013554769864507274489099982564358048883033267255428903761889031088045275517635566643572501871952869617321668835235886988879073366327445058473771210874858793645445572109214790457653010678863013424205075852635191873654330938303803167817876641346313428045059501474403562929267807775346950629670019692059108499661316250393237916746618221899106960216361995341195823523293598322567862400742747997258905075407031360995494256706606478081667095392738487265362494273260853319821130691620544743715895247410543923840513268596421221551864558916145211877502475268966064316436186480984448564156121067766336664123996143636922784753161830745570442835928497908538272740929388377476423664540703015409738508268919630242398265885386393479858484384860317390954800212791385665892756796678413225744339408425035486128606796968190394508958894944130266120252642988997684249062058962155083920338937967168869378307841080293233776144152962832454046870618836631388903021428940128702501913210254606537701222939102069692123242160044704479815490982580204756697514595352104688732312273698763335505275671799945863331781076844667825294096018610272672799221715128079302037422524230458216476717248305214129262703476680362292054692813828459657175558313201939857406805651374589286732354363606803800065838204895568736852799173940304202078192039261009509859570938950202628828171136865219001347650434623534858607101772933542429375814441148220662370032087109232867373040200421474255518081707406486159616519110012024475305741544811563477716635867794844413732202538053408853006404637997582740440008235525093211133301095982758200122359855606848760857586261860041603890743041044587580270335823269596202704283600750656253087949320651229717944435751797410938553279998266655742065618329088249873002859670527852639106062305533654806117246556690135125868789665377817404146503878334371957695215171589155850380443943278930458979591217160646990254949384682198054709899977395199731134914157107656205726767973438247160297340001235417962483494425404384693135291027230341080398560716906644171396696744875452989306621179731036561719410255685992239742621047056936513246757532120068441905661191623664066353466887715344842488785797286105055601272945739089801485379765778973465118860928338756652909917279572282201800229542607792781318878416036837159260344901619763067388670186146303626603134898445998704859037995199749254390575389975595200885536809291710233860733570706204576717270948266075482750882420376316789277502400770956320806040083552040714727565631123077283721142817675199892336501863919532233827541717822407910219500627461089291126250846950922961263891375664540316871118519613581387999144602064482365301174104108025496605546076649925434614786368913622325427189586781071603877550700538612794820246078145254486222463376305007812965546221448101437497512436572923453387187772547395087896122864364812350535087361655243606180443701467205283461159494474503350391550077380980307832177966729881091151234033563119991967187030464359932655176131359829439783974531769301283976085962617702541973570537666953454799832925123092493470858365667598545443157543167656819395268435940975625869547678405943844226486411530382825830144789371679204679914417437149386553321558079374894949646939707142413743077812883082371551762571278361354216813798314389974236437256214330440133144612549250900316490423760399672269496334453278966753490803888308976178970518903709956077083278144459847357025495819472854974988986709503805853442448740876214611596847932596717742870941880089140566465128205275459116372197657745756053245909168777886235525096257379357323342824203135923147461295906846161943469378321021124207985099756657599369208324120835453608105080046984363183464643291708478201458811671736872410585914713449150798730885779625446790795656023009796333146919444471160911174469791130960439739934541669633257796605727482918028337554563150994034419741667733862036349255476801102361196892055162859046011298781133050847231635690555323528804937204686059121106296600475146223730653396661286069479989908513099959087908912439692467719788096037800630695969036415046083550238555128696200143930733329981670261333135826289729998554109914284716309882611344327089083164775547940846259201758219505993475356944608389886321715352224831493195025634782422640994505455909228938405887547764676456067171545608278567471173774918969458555117546473873153434480449334400398595660031655431466662913331028086507447441544498394972645140350855797598418490010053155592472369103555228527660891315962125597330325469953521705332350617293567737097014780236758381031272388035475531597953385007238086257786925109606774596609599348136372907076663116832742614089549040314154801665822390204228737151408261954392654076639093364348798115169309196269359800605264104356713663516851159057026829361461929938017474264820853418065132539141204347597762004974750419905202238561583566541303123070029165295878146090984071253652744948445051306671894320282781789137470660951411922591028493516044470787261240667154079214593047388850030055448395390366889713677203103514080611589310353558060251124290270647981496724403283267706792472655842611511111371710194265860516599585547686024581911357771295898347719355396668576622676266169229313640489071511193937523611955785543390854859157309016588693556180807520155773006974650536708135035424862827322299303513613047972753750158553440856863099167400464446200569581629052985221092954157702313096497581311808781602101740327788159922539461594024283802725504066340505954586334816188316415546247491777188136878329164613394870038951145085953377712902590748254770773634593097526363169496033443793765535548365976453430149291405106074213877740222944385066551364511026909387810284836763109132808831417323632752667082835757006013879575384748875821521565426789850799898268841248488083332505699349660505879051339326661025577791490523558024384258352938157033208752910464283108092653789971531229164570684079510702651559994194641845280529429492067462361878146728495581047179828305885358792911054625951193598712332290631408080649497617976451288914172824995237081383149430058439645391904278969300454501998063424139340188744616666666370668956317867131959582339639832424576370450375140500328482329979678560573069054715713810666911780924165813838664465238863456833873002609846155076147872463989738024249947904882420375443881828054453787080176200563601253986676991802341505659624196425340751607120713314779538933838631728190932127801039831866185643714115343721161782190263881288973569309119638949459520937209041458527177041436129244504747091295422853482912804025211203646921949007208938061597503708053284972708399284706940936632728067425658286896132719808348700861468491258712217943469758366828826753553669592364630611357870866436001190643157928746331632219911985714368196279378777147190732438547161779396880272616449409653444861206842074552215735486327829260380018964455322671745793520493754021702061404335231358168310255439817851409103507826665062652176473691127670916436427469110863437366000704018188579495487810494115655305546062382097579756519771362288954373685832696714144857992946153074170199667543109501125641970004421122133288753159063266603444867618615947683707948357910037379592710917919905653634433949391280980615849492578700500311417951910565069107570916358627083267731342137587101463734618524059224134429303796274773848822185481063123390542779419818537300545531763289714047239087085886238105284863402082585067245753150495275957713390927998943962735044094200970869858966157189624975582702997754493060880268544822518674602238320276656119517766717101255981143443778264308223008571683215697031696643373219454226093976388725831195488932853120440015783921757687021036259465709993000594257693022230799206063212449076446414154765221252393136755430641124201957954748188190322269960024730132848560509292792598482990516166814060703615491171333731944445885539326353972833225014587437803820861211535957054944216746094852316212533322182506201750115884257438588747939756654909775302494201501856303751652991178676281818572267077322807838806124182501892236634433432752847370006169819930870930565918467886345557394623146819541425783476123842542516280960339731398754399492898435938991832133841249043165068052469840777773770001528746102453710260834415034155401853322134748280395023705290319770708059943231554974944455304133887624940585846948714366503359433517155830453673973947324691655630665190855442913358799255875848221107930758037275064425985270828368546468850402565036802718628872463679624242493624769799203527442875544258449487824123033398587122461320770327492891681927015978731035406866446825899857594476020543586086068650486305915762825711327645063409741048636319850874557144939423051921453114439249819266261258129120491877858877084241066744510750055519028472201171616796645846711564437322519895793185600555832021590520675255275129416368401501285566771462763982133965340093856270043121871837909224713394074594785779105663452364281209371111738907367876539751349468686101789711024391721170616561586200559460673224896412477235100526474799433593562202529824856190613688112425072627569824093906546697769136288360717882927852581513654500101469109803215911482343347635054072100330331080196396909978556498799906948592167415271799875363015432314893514994952661352717668720697851163716261243192547991567685172383391384431523154845102543802599784986762424196392673907311774497489705634208965560752326446871950220518696260935210432924449246588616407647509007494843770682287207543515419124930469797104847025795694377303218759767185237357441742733411848871963240714170700158522818752034823649908651134559836327454657926298152233296040543331336795190423573260413441268222732292613717297086658587228885193845495091433878275717425418576637672039564733275791848186044019416881613902627294411258201674719719305481431446370451160427260698020479937759695810465273681376190881025067645273992907836646610476049655502347629156371942239864596005977727576308321235270478525215694891893791927739865697274437651512879206440781086116519352854361102241366252340549950741178212371912559778255459280289760122030914656514191155621031175659342295818500344378861264038753491495137535646832766404412377094136596421698692515656043439904665886557130762992603261037374181705372549330346028908310501017898358342251384840507050004404469945308021459538054719147983193045685283290695549921256235291248322846793067295688263531738546322137823869279543498674673545700904081479417422980358174853747143307809397289605334809294227023168094818681666792510780711566387746586281955948303587591878057270689126916735544289785910219336656848100157231680035736192559883925634610960978462947884681742197470793719919204784634925612512264214103920169798322402468900374266541947100721501572181474552885292979476856213768961764037359610332205474650753881812564641229569836495243893415350006917467338185761584214815428080714100225837727716904271994147601110965732546074867185170201657432378821939621736883429631138287203308549139718009656552307516731986635047629238914846968961982291714053094694991662919102342335738910817967190566013264457783355170411486015843778478716536350693558457428992668915323029319396335384982738702237006861643121048818752741734735240752556978363028234859026096018766257380700168940710755632088740565806390240445322308448089625230946261738062452208206072885866200373690512458468090682662993114423844098283869345288217727440473324447949304371900386908181298546309966867222022331698123992702434256752188098138526210891357407529328265742344149588952191766230622287398060276555421003042428164272846239911934029780152846864456511307613716057499154686888700531277494084221099136352804852067870302461499633563376452746245385788445443969802008814128530009079985296407687116148807882122834401572848973843639468647796296332316905872617851288414120630991618119728509429514520466820501134241371187408120160623664250146800066881502107558874717258438694216884261163874094256644120584047372728024297722319992074914551779275085999163901091407346221123941105629195288964816251871335722600255910760700675876908235778775234962235937305316258248655484771493752615672586639053022560900829249068311472621701237664040467406669173458243856157405150198333149763181668057074433099563631719618545473125708387307261872959728113570644139963614888046270892179774992294993832055412016985597265169357972214266219315831389722104145424302173478882107370172987352025705490299143908213928177020219023958892511789553774788329642206971098639791204744911787402274609094011643426969524294424936700629136914051184965041394686357076253199323973676450297277588764858002943972382263962929366689971136880229618140975771227006152038059373515508769461552474382316145298619140557870328152553601163363613667795083957752772386058592377855139095566569128880193949212428003564365830948532377804312835825337184999356444130726314255913170119057239450657211392857422957272634508589299397471097060800428386298856299490413383004261887085359100090824113242176119837785814192203592444535949106333064289536488138824440551617598296848057125507487248636385446384958508105259333586178520214586250621604179487933685993998135735699201034456340476425354945820036990737090318118176056623705246697821227452424248387540203529058478725916134798988998355384388090985187458384371962973495729256482885636055159975298534685357173810048901197638335201226911553776791217577953598966950689449892620200992387833970375908338073929619942782896446324330452500195560220566013975617504498240853404015391934905578027217955971646415234842209307520994730647036534656517469631274297607132185367055495671892178096322854169798545609473827228187264124339682402066654779350450781947729944141134273000240192859231737612353183574923428568424118533612725719486510812470014971115627944566411084211496265508615246914655255652621218434168590336519805323101043936722955920013926224342598987098488775091387525790159607843326190471374090727199413808685684386851292694162656354446411855524543913586192584828226876398612523859548059605366992598041807310219607333470062318838692091313973742725106209951121147462148644152605899528566109392548909953289966648366766178687823552542437289656449506347408432979235143559504669256886072833994894239522077897698188583913128387584213003251966006233831727662375038134024439585593126483356274204347154645626514365044561924517032691424380135923555534452511612377355216395761992795841895726335097578560729390099100588035313665285743881902738773542006693013298037717891742618201954129656458545477672434771009084351356703100880048704880713427993696889230676592852989341718545438234499000698717250239030028819176378508978164343179035579237112259200921517535160003002708845988371454157208885864565984196723415663904350747167708343614009805133985582518437079067254733166060361190460727298035096719055653506842318592898075032724113674279430232167139265055685187361218110096426315312073938095547664319870029215889297636901926834061766804110968756744430415007974441575373635938463066561977578698969228375367237548897075429202612703946773418917148172143409868395826030023756073404623525363378709580243686891428494237384567371465767217909242796819615540029925047475712987494663934947223542713512288550926236981933447000922083616075262239386313011746751516426945875922027441240465580876297676222340638394357684784486797004706517664437183749685135778478156657939392690646067533242987760368726771951611838047975317101284287894761206909276081466165646134485636974026164397940543430343276239791887265821774218787528818551264160800073532323702662799546961582896865350786758162839557667642495510326700766231787833252776554868573887424906993511999286625249338402651213867552716845884404837918284672644152981569212546213199884516426672076057754621806576282928863222645888334016304461094823140474516952523751757807895430491361571116445721875659420215662171175681465710269109686922982476874143401582560327453033066491468342137892069986426019611627560708041723896271342376069397809388858722215344216013147103469540424731619994512108583258291904692998199346018222236286912919202087504300408497444838871304366983165342261202406131117165655862178088445143295850753094411905838243128385022424247714494331274230456532248726230151358310344421065652062513113187816844229188696366276099002022353942801504052150455952599865798013843565058590770287755868070967800122521295712280992296763046506472280017494649395617399480866592055311036942385771644906797943726470932398375552234787988345277317743634200636469484370475218435232958491084370458979041819496063758904717925920284620567706764445647336367386520819226631234606688020827904415672756921999744601953368061961739795703479561800307798467610745742822227890831043662153213258785543849248992028945260506506048028012467915821787237364064208043995650510510291148273575642564979423811201994304171138684822548329848792457338411405803219420334233796224281248101123610867961607627082735960818125334930736843099216906210809525134921504099521476084009664107795357339643525714238441685538743079414671938890191005956804662133080378160248455821654567971458335052630321868069746388572204441207080721858394344029159789969326092035335482002771456078371175648483738469735375759172061946801882514425942795990599187557589926025397092889385591897283752802988240101784496692908319162296495168995944174088037229051691929331477649711604576596942832986859291891637253485222480911427404436982370320347002159814185655661165263078591408405865634977963789623710840645208395235956187101823701794961518853474490339031961582325988210654730338717258526484349844441929296431433591657156889191853871509096828783311495372870008258967990758395294612949111942143853050553307279734404818248258120621052669074306072300693732524869873402720380013337207407163919555173949430921900210307414085049365179978057906168038565787069864326305348682058794451945035059691312108040031943358926696843326216809657269787844382710474398957642817041366468788896434644967603852868682265610763673053309987737250077270561758708383781814477984741712210010867521447145999033666778971108099367654002016955160519645754270072304538662173065632455165190689878797734702770597514636193248198413972502828639091353158076438018738260169599491724936489700486519797759589050815337091961304197301939666288264334516730619891231263930398890130314094010623165545169455735451606081106907164996857893227815413722838866343832067891727811803038588736846965824550715905393174059788114466001378045129957622451474913539217564009870158179437454451945954771467464601335622183799002880776369892811849356415672016087105095919089718467568364050544125492450376904456074369025436633213995860127330187175645623825026696182646640635990853113707958000094999929867391688310731097092169617997121727424141884932189500095047274182982491753716650065811429209158062774887371481201861189453101387302125617254649751969097062981186099590002759836971036196186368446579668306331791620832131806085929023446184949397546161410783840002925771278305825216177444486710098966662153036115755305828546651637444131527421419384798885566023985266819315418858735036397936131703983274394270472138701282145908481717243973858729712483921583809491560303686244967497390694235423370598302115913146549309760258883908497699978834645584269197040450036286350282300129024500715225607473705111143875361452391546385169482619115611745426697455306715914505220462927171637867980021441319182410822583570572310798150871399486313606455754024610925317491363869922663649830009787059916819187817425353659459314888763806034875763941454931540511621928665315504291868706401002974038382933437292165889229669334056675814556373996133359848845649256616095048253748663147183628315294102394323820999717523055015948882581987302297690902143748042515464195942267577058074750937600391173703574943578712248097030908527877772047003217310547171995605367195490271224777719710646246940684187193552222813046521739420339806859463555162067136605757330559781213589492922351440490938993541816536480323270867630944069835919424796609637573749751984143072927149496327186328298993713150760290568086890953125347176633127296407767490341333375044283070935892489765889398360282355880537529791190307740366863992393535900974186062479622570542733437241671621983662936337932157150092556118748581689217822315556700350350147998247955718064166080364168254282304350935370451440309255397449047250277252520462373383662867733108247275925797248444039793023086453484576459235595431512664261461959807198963858430375484207340660838285904850372888213721983780822749883354538405339050643814848535044952560690761500291049711816252580564488403921686349419382213545112174843928394594707063373650819406374069719101776906845990104562863484061720046258233822395836539318043775451114469978019386934703863051764458019788327572542544948367316729253653048263878871124137160003530463471807888199901740135981801296040303628145052916893435311414686649316089099286947954230875714262205155948154391733247128877475652347192406339201557335266313206052477684540859419499773144833092565836608462887312272774228957511650545140137176806877934378799546579166695379605948878177162302136391036756795336921781674542372918352908837327919972787689002465740088689420715099501553860725922894637753549325631257966997272019374336861795842262020723063782627022714501219814582213872628102027046947564936534922200549680823604907927712417182769827254887815002102074035954181500577398934530574729197487458578488003846415556028082663077077646116642443175575602572676631711325413668360917761443509331767089603122478508818469602158184036614979916244646095740036112112313288313645569589562927772392656279834939364846237392171910309296112446958747733313935997548868134441443443555500276513795476633338381377001026908230086719770724862533912774803329678034164627587830651696899654173607861915938353671367756189788971076637987632104294897113796286745924005482371807821620141060263645867034239879441478547180480902696774673164140939593380080681453680864660233810648159259598424615744190984739994456336229575007649078588584145373743868395244259715942626530045610040130275840280063091986854580979113099368196546259702213702491638329039136224502978366560929308488566325912112237424549233800788379507885288935223157630741377844136929176885256772132393708950656006384936918277970996632079606038056364271697439332941033874798152999197101544867587688819082510834163269038754225886256765156409423557496463404926212159237942327124004904283236254459817077389699822763966227275847068301967354545608221245498673788008732936103094047549341823254194932188858417322652869343655090013430679191879575682688529252111997241529671346834642462263112269736470297858008129603158346373853130536532748322384057657842156677517929672840123894121336188004862718158408665466290287170014723832700050673410348515115915020894042875735234578906954600182309739449952493350665888051314953249450488747670442048409651816906942200801151023168780352538013601422540408769428369465795643900620096852798219701599713511680030600378900630044347287512750056270574331453446129928542417032458955059676027823160786444301328678157815361032907692139434676892388682364653882536358621570981871862643226260440634066942775239385344716994759299265576318551034412111128532948990253321019340481406889011641457534988688253696608906787370409511938516190397782326697140293658795085281654650400432132412891352553440922510468551947898904516397865786988258191592805433572851649234785522205982055584591052218563509386463221642568234696160694998624081127110481237500345889561765436680503657886552650159127934312803779291818159135396000084583997129974370961411120937877304053456371417127809376628710123461501494273525247920872912263867786895759400369594776447046730619128504691429771376353437312548615296657045737925771328098003988628770953783285445964667390528853359275962252161825038482767758221332526276680691677533945155038768704310856550024096954747572795318999791620232982470204615821737933647143869871153065275915579024974318958129712018080843260629657932088088630652040429826036567928199002544201332867742937688051457441506006924400483344465396163180431914648118869923292464014291603848525548050824049316923814251673880642596593417555010489972555541027906592036510355689638623016004271705967561637737295128530538827894118018995354036059484344869228871059575544070599333358469525579200663836162338531739756309701223963556233418490835163045661021463994595339729897296587124521875408647677718124545607889754558862927440489239673940189062103274973743512896586793553497754332172341873129512186590993511521731100213712134849042777481285649175153882002825785257652271355909103427522660032411883872064679561569400708248536296667930985568530279044741891452373668595530057873568188234625900738256179012681845628309109925636279420225713947979829684407103270402874589652415660805613613379373301614124474431909379465639911549093042343512576025264052710623150799257925123646784103944383710621586265138169076403192453391951758449375566946325060928212401073165358810758540652631262248300377010452063533693710862557488355946876246495881633708473312715398609588686228901306665900678501609139851872312447388242050367319873416378650687027508694859967384141159487113846699082784735667575264303810206263868214156430389195465865413176667481040399688609482548495036140980004795073781787439765971396667761811555994579716718612034842962912570337965750626160194414578666825999213916039581152925333960302331512257526396848590714800283360248877144732370353815174275630303855957826602188856453424213313306511015598435257077381953958820564168243993250455610648438827291773752364983001591680406413559985725941025790107884870252319636788820854311578873014463376808385397192044644367486193699573898852680529657458112276091989141721265080582970660826318238332068180435265720201622087686660676339970491602355187261361248413710338004530151065128346211457320084425238252930858476587435358116445158996102556551567167840767759094071318685746483238327799901361797679671690021833151970811422072383777877172625943737452452753554973372033149814764113547712379597295611016687669848092950652265994830307368076655154158099322928420745561606817093544522260895961717124152308305087255277476692885513827991865161980668768753292962289777622658261205520341762133911756216147797444271584151398691415177883253181839927300552963295054272629948257055213967772857733423082377068573235779541549792994744487414409114978735841688909209967367174395177111091923974293696460295268413999738911277477332136217640457102210318315392038850532382410544064502109914344988282281572630028222843306941338976936935408727005430253549260198358599088157184032212406170108609802318587242618015348662043486016845745646769003269606793003984580645474970803575602156898846871096027341120959193598362287833892230828634106470778592059676770762052770982219903459515897935806261626973148061633069555372262219928869312512234418824395702108235904955649595254940452642698149254256855814806908071014247818540886152306538645689319413140330299021389804427187280087423632869098323159562049675901561513253795575764403185325965807548418315200361292653050004165381776732313139741514540478241773960610022732354939498545097703176585461067926438241801632501910635608421916785936976906888958402614981875070605955306530518673558751013457893430867904420570842529945183848952820449308454938429024928255689493690422140158152370828143247553275844196176308436369245770230144011015321441236195449525279939239183219099629081997550306511646432528165594420134177890728283350586856995786508444238458396964923605183228773930075782047334989318782069456982136272040556676790089846634716032533337069466773591002180546295912142297250605734236022758727060589751683743262581429313246730355972456694077687376381856913800648910271280823846894558354114926341562012779314488457823304878756473572941710073780922844935696791639149105512090242744326506245951420652806927202508895249330371774866804186833290263073477451225072129032960948446725359273077036799152225425231270396512938587421099457511615904771885243822385653225406667468349630516666558621688272568845273923609647799700659109507558575336487582367261217594720276224381276765345531746287008860941603499161634062042493274633938766689888245214510474947413959023111830477324408471051775692896931135311042093952327414578468568611142104462697964023179132652723200037503111715233787450702676805376622953991330940641950484599749687898104602547955169246925819209688159944167674868917675436741674233113419131504278417280773648625616188816642194946820420927658504970503987989488013953259719394344192427940155897415525943698578751845543886013786162005101505208609675406200696535083498725576219577522152740965604298884515494949994910359224867469464112398570826284400269032569321268902959755330907019434187636951257742798172007401113031561751227245436255492555263005179660288065211583088437044861065773864235037919586502635928447165346068444632041846153349632428913828956919016562866460511210139399848023049584907954173874504008056542962475561463703207783166626998026067793343316400755930247355589568573331613067840232377322565327635652867087191430460649216239266475120284756323095467764044676281860667454073453877513813106973348266891820610513365546796374049610937183082208638963973457233151669149945883498707770100901596647445694954229206111839711537902468656201631725502412711851663788530794526048695287474262021798052255062022826232922221209854655964752859137709146879931751334414999741136829415698199682853987898884329901336428182609814069633209698229795697671454626949498803027515889425617843427004288755792851644060107721124244574657399439954219272111334435649434139214266733861367234647230239913502260115749440398564476758386480351147806771293814612873694214884497788764661345200972653531175912168887701724904139698921836277174864362741271576964388066717620948822772417378027761645229148546006448535122246125275053220038855164483187644139286318974722654393858559345633309138849362634875154886619989936745973648317973801042872892558909153777862612497335742272384244160462690485468212373680706451674811398208745829156074877876207642496338099292780568963880684864674736416682740969791325554681553706531645029264362379234548208616610460260399822811741914350807792869382624862756192931886832642039242112309495803796417850829045526786622576167863473176571560704974648398707509702476195494425209545392240219114788196651820361913179363241641904604625685771140921288423613577586232008165589530037747874923522445375213442333115793204898537185937227086382231292659938348119391608268497858673940607201284577910908087648163820291273007752602372281409820948764163099799628700566504445183256748439034001464214816350640737166490246312358973200680216763662476052459770227208591950844967815504837564831636279437934267043044664831929821108759717190535842221741470428051631267485419054737593953004533422500714780969977978289752908048822355167139239460980930375812321178340278226600948466674052225791393926135859596728521815964489272255219583052922970191192133773444689449257614645533074962170042933462151694541344437300201823348764198920281052791396222519340939233000291939987965951098412676364235303529475713966787746288334707226922669760701356267031645530030475588151836495149874899411624232772148414844767070507522688118466191125603619150796712511153081255607824112343035334070109351097600294054881677944282682805320856102985278105838939941378204222085040293047451856623165504214071670579152036524356061428491014464269159791137631833643925899296774325307329463300564842111013447482623543502899946681130536055030970636562213651213327902159607513496901220645900711524552605651989719743992712889113568982784846829475296193041849362274751000836657519987780928392913895215352524959495232578110983592992127485895487590628485838752865975340544193561137487061405399231727097944322101896864937933849581392870304928828778046370028685849400725108705302899119790665237971189009364950929584281487703551955359076958248861551286099176937939080235254430497995113088732603891616305768495284133290287664779500884925511275030021408058825325447048989628058205656244605284700419356727463760617685202357274004683698299912146933858026215091828771151308500048710079334823192772118325043765527427160797699587537574377189595746980880227413333937452369920685204860344200259889488702808976534630861386831859488713450164013136497850774419365853499917817593409582182444925826777052895759992663019032130473532870308065497430990739151529223863110296462710935100888978148924546427132657215802145522668898842511572809389051062098241232991349998624438091387020670413160944449509119638616287288836928260899420824001436157768555131958861512413653944414471354315783123043506949533481658988252816059912962341637366160068936499745398977784906717212751036370412628749380390575509728662965159434148466312493462417634931373053080813177382859062570100356030408295510168012908786057947200985968242466859219833252649730445875868395098372433473749038825977482280073600597472610046562997521433028338180509372834867817429258285748271478286569583873988701684581793834256606132758218288639658886396313337445627741752293438925420872715584245486895443596032117214375795978210975542011188148610099609211483140848548487679469787642910739088807728863943063999036494830038458605520148968540862590266769229436453386438814585892765055721287882504979729372020327615152397670033548729966743609337820997743852788057394809201878703024849210450920788767421694493010623241224402685847082882731029883225982925887643343976867578922555258090190367029712539968982008356741879016188600519951499371314011511576195671434392874408252525486697276959224711445278249462678895568802621490712138044953097704579659033159585515724939798600319682654587802775785683879352008663449382271686992507093216197681208376938379142326848854845368089435661300385485776805588411770562656697525464775848281219573961587799328858343839172147781040057917765046958359406264500467642459123336482800299296239551464799564817392734698940714301499383275446696220604614827314108238270786394065141166498034818950289050179193452205425865572088038529309852733203077831917059114550607338525198973815803407126193722808085596244633264203710687628142925595951879246616679265428412236108290850717466642527102502042786756459226333634142188150929562076266530745741716769990545108710637090642962864801911296915672623636885471074346518294853001361253781566125084583155314132805833677376274632271867503247313490649351739201436302646427780113972486025527776496671740846684583518654551846528849597100614271120064494124384371300825640014020831593195472539746876715357825845713094367693241947609639612460665947945899048110980623727921436489034020445026232680821471211070739366261034445455422001871049573839507963978542363028062430990122058618425969512425854432363414073635770273697631439686499538477139809055770399244086992560358722796246767680877619530457470985558102792251544721561390781142285928805327701788707765057968276377934875335802938896666131498738623677553360860979344826596692952547743875743361842062300909330645139088427146334973498113299374345230611524163582507463578870351331669131434980187158547483518534416698727046823175723361363114398942790720965074719169295077512282412292387190545524206067052927900732077976538048840714409836208816854951065682090869039499068423004945248376983063446006042930591183975783022977632569085574818665835714938068046615871491548094075673395545237184941886214374184381664409148587543952617448996107386258049283616358108918951024158181882493328934815107787345847155664270460850751977625273445869246063767330245895454900756324778151403747278025332274282554065178141783017911970207842040885170293387844961737535166086270516822605191785328091601199492898550836716024007936939785829844619178674376892340779446792855963716673652691857844408247536602107147686597600391108791224315099342326737841847602329684080014575673737249602738628211910994383992300805790029644016641953565062731881452697940634271728803615126589977417054368985533609600719781383803785605945547451198872627296059519060667344405879101437010265946632550302475903928472545234830090630585882666009387799458895335406318718405433567722919160481528384954897480660985986721448552541913281766655394835779149987177981599773029369188843190774951236405601107610409473306901787945527052829906761148890358572445298772888897639291678771790490471716727540899875397861710753210497451557803520778174552059590376617102132330125566945077098870881318648063917304200066471156492342949751294592944479502407991681292519051042272536251643769156868106761465413588789436334281252002306722053143044007987917212096148659864227840573047494128908695747327573604981816504968158210597599669502269110070858251743860400074837774955336446838337851292424167884276998372278170664636144543282145875645620107665181637925604460621979063996316991243985918406463392751464297495891518289383152046359007388491683520720989807948181828367262715681033965007234411652633203738617516820427315633497198133974759165280782423889732079320452804561942872616133387586876145080678338528038913196718425919770809655402113795989248641116037599740148143746143638119203335679748199807720864673527524723313080656763239418503252866015586211326946340942031399521483698945385227885662650678026567910471204010255266163171397504722931818970068773814712975185101324626746617053052047568348427015162803301912901527635759592169074505281749133744987495094346223339106899537454369833152783306168449057003036228566400157331858745902854950342758155111494554740354173740184746804400697290958312812649678423755500888199053306280484651451943277130454172610682642893553190068553165036213767926346567948457853827063384347103839160806965090503452138849546401073657040987530135685793034702785969958741114527974248053129172096752732274180528734614347594653384057458994815958402273238848171397287743779549900450784445329534796820751430052361220849118819421736509679458401080166162640245109217447168261731609445581269347760165870629740472519667752038676666296488081777004416665284492141360572385264346849021652219238956116669004264051887071976655628263822952850417103485064995153532318039002415324520993056665743262981106087782486798737006050945688766550638605582936576949882370067285323457652895379318553179179035183498330403201521351496956469117123163452744559909266919734308161460983622323196862652221936755408921110906908368931799117040988481111753822213283567071318028864087795959194992048937573096104919407522291217768760738560634161148391652879031527135954110859959924495942018318633796560627118100710696887637116252707204566597062519522065148044048894863949184493430601874413135564029125488648209127935658170673225772042535228021490647983977161062754120129200479349413171102428670249672682757111666405583038509313093938254312277257606515360771264934475352068764361326659811168877459146259063373395337338316053613543385311411011619256702102082697773117800896601833334562367329894329426146802529012641320868686495339458885495758989816998701376025816554859813035287197427366089737941361556986005943360295524880487455882565971326465457595806191969458349817598472915352270819583192756506610225826837503356000676519704111734558581284302745406411789801826507885209283281411001747730082074873923815972388975754899756894916912753366077252180898287589097166977450679524256757552972797409148542253596591949980481364806484217622397294312283927750071576562402763874075778128677779168342944769401134414392811117756817472835033357307100662479222684608062642595147245493196798748992259371410934247709453984968999303459232003759174456441885443476191414065385492493193432635303353739118833185419406613246160245904054287760027814839150243985597006336299830381534334547238843296044980450194946885136922708749518171685233568373208463168888762631649437760741738892562401750112683510483269643811291559912692237411417646645886657189390210434590046478705091492343852664227206096120454729494696420922776761511552492923228617684965815053084851255852873103709604480174708542211705515072283013835364091917202442755449844958401868316473620199210926569092935459445052521011529591734304418739836911430907349064407232953305208005439514977581131482045920992766102061094839815125759442922142872444726877166360803425300592803612305851410344501274800108739573401783855488413594895404489823037377767500327473068272564061545310891596742063315948110204321765782622854766978070342865878111238788979319250157434515134315282834223658047080437565981976134933482620904971686346336124107309348563056915312950627394180165031630816170573694049814875485136101332628502866970629101104633317073349251539315418277369893236975359759749945747528795605302900328583306573142253121558165829386474219017414422790942876786446815557962790565290540534976445359655843763895614533175734411199644181222910831614877979468020694762747973851478644104795444441764963793528910424513851140278952014739288500406992615105672729268156428528168859655543621095974300319142855026561395205714403573205303578087152244852328974670830306336541583476301589416548276098089535277835631035153385401527424406133072241996177660639108455568443048561342024407309599368558914442983993789603082959678460363987990293675641064745837289356976896524061576116388011830397687466255250550628755232292457781156133510169567729004043380646736318600208649722502901391767755016374886829013777822597581430570605757420900363355240719937411919237333327918651307467908331038581256151619614999570515785572963208665225519031425451698923254187367513794604237753739676215040342265780308715010876479106871138262259032920880502224640111540332286169020030501787455445804517876698086263456884077306655343243397168124197968946813541908984278373133947895848704092566492289934024084420231917136116846971018566449447069341213865423202935583214517095459063588976988174146016262743003998571089415984503322284918439451819436602017575493873202810935094217467612743585267053558006285155353752941466880124385578342575710384600560657656340290159496643994718432368765644547614166468120554322771955032764962627826822643730975895379848003436316595712772020762771887983078730471071978268507840605010855824976925462534207239101987724505261985831409195995798856846869537947490647487510757224710858285246768549045541010765845506211235471242892647523883090061240365119997436809805360730222506013586914621642151356747776597201373682544875763482338606633265732751292068504296341545727090412579351569148505972408628601503330783742256055071526093107579418505895455704079225934035823763974254183403701519833069318902754049534569019270439453290362525670798978892861629420269690289286516043354365340536062009630575686988488926994477957365880105655520615508749560304238279519797673632406792095890752819325621951883927870111690832080275239519637429914830260539632388851383664179744861335163965621829335900786706843741875980234779243473878176610198807611439358862737644162887069552785754391809373753538589240335003483100409900851955908571001751843758198441506900363121222409061625208832912118996123915660734567563531626700699776686917890550517039758158776737392183453514138302958921358055419113356378059813945724195972749190236697809943380926791906251248953754851406623406303841746699757103399664564429899809029885728426001796791997468992788987099790997224730529604033248368851995689949795107159744462049129018227092976246241652283787440117825553350357753945517126276287521399332592060765258924553626198977394339630828729771691543283980417232240528647190719881061698993971164191548301925448301944325895566939816660480711969251801429465974441487090159115458735200335002252868713760594791694468441258671608564081419299837232131895894701604642546612178859461148994870207338643160989781392636143320453271519136620375289073360222755250854714203938268976945606538189668650939687380915260276928568443994359471164677888444721795951582985098713061847358464776908251126656538519603740097019142446414033468518248870809227931415318783985835043694625816651746254809265952523959417458911093036911825964426436334193369194872648806682750037865673887402825710533014927935063546569223980463387952580596639543884138969531977454333044888550139898509177319619348390727565230350626037183733285111925371516488996006130041522468706091467535165743226026892751855652232285300109662295377152350867561729573391841952227856113355289656018885077733653739244876888714141903196840810516677700420848074271875024870604265122639872809365686548097051034747767722206743527071502206466703026805651659257034548285962703345352214449640995365297111425647754223649809070658476665774236383967738390470599549827659609778501758930557588360718421293750824844940746490991143899773205252657489822388132422679739541772517077870651387961155113603479824341963417980337056130283948583374099837950759597359676087600251562829534202827980610044392155308304422885238858457381039727004133596539226634193245646339030047291088135843399299311091962758417078267679476762604575245673548755761220588971830838724638014061953323505075755066124817230272509272755672974136264754689798929354678570324781590468205305685689736415970414061251224031383593514774117692507005253138676595739567789382997279312625113698400938866345150521967885827376247969087645713130250088409999521777731621527920834122488601543257413310139900803891910859271293959288729856294585376764541512667907130055872084583673173073684190421539222764621968432274527753042423836291739821903941469749869686511407999154705076355748393149527926203224537451417661552834108151684229117869082926927707272377358821047096772783807617660280655542226872706566980461610283003203166247811764335360367338138734818323739174068880748394321816140647572194959100559870906758569202290953642796145273230756626873237037571362726037742954057590887657592144664614777148366726427386844589246934007195825513503411137046683954944072881638679535166273593832049059024798605888130242212944008511169933373543024095065297958925340678451494079150841569935724285100090272251076649542845667271667687717022797252643219166324337954866040005182868023448162707985348256678803318532928157106476085058610037199105905732449723212331707628627182731144878428293209683141331994810629691241515463208543106823439355527551400880980717033675881882937474055697762714483514482516020505934672506483206353789883114347418645581109492035588641478624499951788370477525156214565378342560417486950140866391784943363584068014750525181835484498020115707917033713895767616132528607524653719220471563418462375459060120916999387157381272679842882942523327533514774194077560088290428700241380628470694730597744278969754859073265727249552511733205655986970208090447658137360401758578146659463345718164086056092504535434685010526640275705350740839675467493433542794605303309404430672159149410794492562773830237867416467084658427096218639369107498943987955347328958812363265301650336956925662606353300298985049735770944850432576044998765829806300532716112953106194159876103324491507609964165011363541958095044780253545574308488643210307869238024948688490044060165589838858315079094907332435903453235376407080731560951182488875985210926182631507872267408785530450362520915898051655082799625636954652400416972254791116348776872009892241497009836406623117006208189553060668058173914856697681124587115140871746234066843711131938806525246362138146736299979189115769320271249159142259018222518184551769095523922752333131112389531643116933689720521819758375956318131979965805960462221700723649825552077304341172398103094585000334778702690685433112143410162230420186250837987682196181642197977299098674292687269709369814506390150920842867447387052665874323172288728798201305336441334513068950081985571067457836538502262093975413948836664528505945508289506602752202526888318759613612065840241943365755139075387249707604304246620743901043054372301335316794017455222395525270023905450364096527349685992444275197728076416841614620436239656784459276902121329466878610981250347712094893486147695684556485491625973627653996232533102541709027989580026799810226132131484745043811622248612355243533882932656072330192989445651590787462959751955448689416519795208236824860118666339588754237943615958053117062120420744463653095970477728115827475532809376645685040212360050170508764261959281468148406292524718604875535966075441391439774424337633994871820645973121366304696648746990125986844602350496946188865657644102960525034941008917440126205716429990945681112268761399004690300452670599233723288531001392452392292236533137313621615767479552274341566987222015497916828960558999547081811972187795130270582120919478261494698287716211770919077208813453946540045333752897029760351807117897098843586942569891542360478563329656256090230634095373882975087673869815415619409317549552971400720025727039023915855197241526211485692198846467732417818932939964613991386703018166074092766624286822509561697509034329884063666080985408296265710630957661671558013028559884444574403052548582146040445757475292907451848255512847959955648615177578470440618799596547222650791678143612808148609301777694948000726387368035548083172169523438887832022481790276312923977678265676474928717095579169974726935538271784922606464147376441754547739091584564633201113518548545190093551831194656970435884264111421610364218555213881520930382572312339211516656203229339769552180315798824787048824343008402785130891177465536181682942670246285518524654447592236724720213376383683966356404718444119503132174263658335084288325983835582263987574707131780388549475114674875210177324266794747217642243538560630434191886392005276031949208157350716844784385398553257350986155515902011123022815396199647762422497763161221518305691788341443685418504495299802204405963499330560670293493686304283375747237139494689573223257551069636247413619942272111699882367117365400389621180168789238688354107783345612929260842719882031294085784930853553474738235729527347987408479951841036514411237198164975915060202903445587639451840566472907495779825763557932466656819611321594389992569725134561971225365422730702623524310625575969355994717441249290539769399521352746011201454784449602428929309588739453509879408537720037333436608089060288802829435387693343139515500603680543998900158182944430965859762666290683173817875116645660413657599501911289286893796479631903818232313811229562900272613625438942279566223306082821149580722967589183790262572114893067319343472733014372955959121369048460572388333986288902981006128426303870387963781274325041111149480022967130356646884423449166163854303426534062909480215697105379346542492046761762530484111120577196137871192367547442375286246631806290383168052114135722432844275621632206674023786055522800328879605453702085781305205189368496670309990752742245582683175645747652605451556594104090388924001506988975445815337082698394934861513504142998445959410833842428231204388679989577506524585864796660243213616229512828990854894909095306097746203172317662002831472381502543646519627041859811707169459735979164350809032876183166117178097761428415288519262861137932203143422003888868925136197975601086089503627114787004349676602520182622323180461925269494291176116914036938496173501181904887461748085762433347742083144685425870429046257062109225454221157684439359655878447325680395450359523552517982510574365018324876420650025670423806004237518898468040797890042054213322280428663395125901687440490739168595154811187685977279194549022525235486589504708744644565611664219037487932369502668707766555703179533382927125083780607749471935976060094692987821426413126788980442937788332296381136648352562265573545709526764154430343948091890200161772414242961196624927717910602838436310818446433240784375482053019465616754964788197328126620011545131876734202890050921222966762341391328916093773172197170049293643524004516416668950336359067813776941727751821029448300206855406007054937920047516491635568454952801708998955380082417290344494308160825780543410389441542188434794475066663597651460774836466090615027820344375309054599116998165589213967344605350049077085442075116086918200989312876811667712268078664897084942855564525958220486116334062619757792608926495132281655390810683805401122062619103031574452885745226206385912827948038646686601889608394684729588088978463988501980486455623184133536674562930188222145501814922432335966436682584194663496646035974064767234606104076121237718304251061595393002793902427100914630590963842048928902697356772626827315647528885206846402634195171284158405726224939630098139895189674691069984354279769403056132426548496854246732737065689448469177973890345025016526797639191377359184760275459917188511973869194090915220396070484943880392433515809940934357162747356264090708377736551697803591074939539527047386155709938702304262288118683877229285078465811873214129803927446848255655756583015836649102163721950212032040987279498982762042508609117284816260587468234507864108900995476793242383669265367243205668689313633729146532835772461848680320738030489091867130398444087328579764121231789511557323240155424478232119199862959890101061862821734176446465833685863497377024464895110197138010310406552966575258208089366767286444034082674542413086805435915795317408973824439589645853870156036324311792860996814940257274154384152347725006787340611925147021456701206420489185965222657188185108931754352316173426030116566443325450456642957037372713247913823897978469850490062185950265778452261107776857361792585050994066993765053252988338883269692144602320031100315843038828253485762755298147312032477491490776002524436141282667829689779765441271101107103390712771869942062291279306141906518614972438822704373036333611516621792704808675929732601040483939264071866899719028980386859626326944983639376436709518739956949952820400286969252154073411465379976766842696072889634520239279326084775375928761345940219941229556352298165137773975543611709192636045904820844484737170995195807771347951324930450953376764996041349376308301376380084411964051099379250695041228491030701504462164684260610846170683259720145525817942536044803515304552698030642951243239854131224284201614569081447552576505988506817398238070742068651177042556646087628970628066442866535447878872693176292862484371236079056660392110076110294666452257763864981911796750618375780573072423961972474168398487245705130458871859040120965310226722514181923898898890252858765214040039237097498120123996385936600637230433795398213713681900610077073865987262610303419215940519789166065224549153590386332002748527658502931309152489393182432699886891796381096889751149367433082776924291480956794654911385519057137923928427163581097796176794720187808770229066978708715165046050041172394061556760175418412471667393543298312671102634595459073696475933548690120392887014886755703736719217250219498326898129499926958862196374697031345094370127446643940773301374799679721491093599281351783657164744385958459261492855686426796081506083982598175991584557217400195547310130048317701621254026840099906601808288391912645343253931478725967714523588175316746291102922585171995444808003901457160895887056137043711913746043188533215920993578186969131972327308807778780810975090104031336601146833928006558375237520046981737073355482097679707482036678553424665741278809247968125259020144343870846435026637973042656828143485414305922622752061386316218465629212932473867665965614681812939343960275727520948520401676465967033917637467426523033201165107849614244526429158727445279224131761100853289153901079580334809933093431196793419524292333854673313754837414113846712231151239704703056975917537761452298720480803746235479185348392837204394988908486274318052606289084601752899122405699034253776823680127102309290628281186259960374612598660236368842288291695183144965970778619737638805872319865794464544083975566576643301947347058469993773423835131144994327983651810265259124161457172579654407171747608499755450946926028099723086505566411048848958815312581431673599628673836274109795354209857255109858596697320289483537340924149473767209136633997158723936813366932914934184268849147760917999233793033739747013388180994104271789581532781452856096466087791163879424816887960959559974359934448983695764140108708328775296977073007991644245188073247074903288375624261414701658724247379278114315626405510168339982060408512746595087517902265878863791082401279287880273376139775899190477349210824882190816634786134812347993486909416495315796291056123992900093645080850608572609140437072193840232031312234557531771610656648191980100662440072697288396802217802230326878728514763602734465887575328744329275913097099119140100422408145471109605981016297421197243615583344914119234303262952326334502775805964780187623910180232559158419489432572401074505931713929839075226379654133073654210565342545995474782617529440274067377528989466709895011576236022058025649789335216925576170273847876341653337909192583805053904361330897425823365064355201383166637973337425586073085771711613632015971805534602486061184938719901127993392219124791374456236275110826530251637183851465164284567361446046921004864810693446007674758423982808020161840280530080046958519018759988810242933856164136207157685337666343132786338942986176167007367783837807553060193864133566135201561284331473893805715494179456960386948228712641846052331993016063770119334182488238899585770749672458029794024277060373084819555688254444061452415363991447293916410421043826219581565131117666988687259294228929607742291399745401488627742075889461531859963161703977529203831500105255730685240732005475892748804687650079493573377231441383842498640619651276736587238101759095383683517889131694494773095998387981385753392588605105173149709109695315858342106944905159342888226843633284247922268863638147070987922625805789002852275752364616923099372088061131659662859022604354644863831444343281440102097865760043832108802864928507960783796882445206731502549554461705715017102415469582023060096168476000839114871436120675562509420631265538249113327558224969743544353741899896675937893408194319655916314147390646299066854565012649377440751928508384402089720889322532350861916590093194590800659749255463198219245225902192637328847105376826371949893031006344278583606793425900476970162072049580001073445274377586972413067464819295140757488177914198170338322168089516173501060240312575242724681759592382448364072391652224779862980279701526680300313234956650442145214834956612937985985135455607967179210538991979300521749831150347821902161627834172805289701628404435001418228980500529019692627088240207412518489422428774966276309716882169071959631330869817851666101573198267698398970034298483548993220111228425504521482038189497777309051864217078716028361178037781990037377681578084155183375628901935711203682505770174750915185267728714009672681789440289185770375329121209677212982433470428560239716976294361436540903666270936094253330396250448633269724122847090207296557467603119717039581505777014029649869005291359160732207334023418783397006151033321688015023628492430214259946355593488516335113212853945191567634023288659106942289587428574233523860747451516228307810998149265367270576344231708411272430625849719171601691854608702232594193509029975542030456942574097335071925586638842787772757746304895043748412335410229526688134935185529434992566716754183562399533677699073063526424092787326303466824845556450134601026111972254427972782694754775797170617366521082009080513906980568204700317971664929522129546055621486137290063043052464671688211688622453872827045712741660207713277744084963659881139040651678136839306528939445560667039058642675581649809799083538344071950228958395756587941494726163121316205240941827973296394178359217497678453756626535797115121185227680277965857926084103531937676792697019641947882165518220488349530482930598851397706194087185302120248620995437693098776806412004919979945931488998364558939997080417898643269117107820531497021579067938277501177796346043758398973095080602625966280962372459870611038169683562998703332664248558579477897436530032154963619135884777445291331161879225406109930041185913715035974097980797261185312725779371027964931896995286182042333858019466492639276243570911831539584699570658136937113218633788325513528876351003119910370553150299467570789449561879754795294888901799945496878197289226024685160229499021500565844933092242419503712097734543529298370206693073846510431056413327581863113218701124708978158967572606060856361702933607753339653901267482679713141309922628053454433654929442020226257315766529194954070361000112646686319423248659272430233334262037196695263652448330216898514397839754412270893135127246948397792833526184135178217415754078057666532124320003162698700888020273899827131256465509575535905441979842683351681771621360989871977684008817008657779403205437501265924653072250742960956964394292377604132371206539084465615090986847174169375246933595844913467022872065466378068729320449423343030774590623967818447553290913349372263993752758004596232669342279791444584429624001514508186546226165639085934917824417034497489276075413235809226568408192816380965140713630039270134832630175891726356821419034966474452326410268477386875185894429425490296027769791434503503384770764186765866847096293945343964616312822510077608562613281818798108706369558736058755965988071192064574639939606675064375773901305277406445786484211604839960629511604505153825154606678883170899347810695481844716606889792350896430664756598141751702441355008422132354855210316776600196107284337818991732483931636186235853705487732438611504618636998085695554639316466279190512085507302719057912944129585659503839669683485063659207605653468850347516569057040621994049692890512835886663813968633432512484087055248574339662220361351806119422305131972487743296854599249121438555622689794234157196199817092907804658043243347291364164175159434524917046254016023358695142521492012099272857008616886681222304566145201376098541303322251312586386348884168505169644355110837490976786409870930189499529655946520512226690217950463567085056985192740265361579138438534543114071587111284523775899960503247923621128481046851604189371756435728380186241165703582072797012618911698074032441615277329453293719357978577926393411502600588066173296048696735651996756482523645058010984991180218576011531711835247511123246749872493708058298028938597155699641728478546971564140049125918045986654425596381820129976489183399557428667080149155925483639222459497563824225516530062425555382773675347634257887033556879680964650195805701250814394340475743038866487656864923003736685373438860935130452855688478260717855586293510026785398211032740941027935044268746884942480714317257523703127642255072033912847410650071650923075868623202427937529090805176465002704046751734459819983314234754099987544187640847292321419144709269967008033894866734097021694883395474320278230717981295684461051082325438976248039228646122397323015709106660133569585679553060981179426537941709122497645597031499194525658664887966811734796742329953028201796110737669096609375354106671024299682164712960046836150880430320129276109511738865274522316339232965961541775797431217191871501230802568610255787754450701260472853782356946045282187173753745186354987984464866395449697836480510913103652017663970880822286708657445749371483765272266780456797862954574498616065236732221575158667009380912381846899185828154282745238600322409902406581160431728210204419710506312827599970931104294106772368858131533617373976170169445656492135322100116672074085611618622283225561802823099089262049665601302005142962338225008295990198095393929259945770544030956783598072216355677177410545642827365089338345804607780754862897029486588230326704603314172351902423129282557888162497892053590304480680305666353425009476903835197370138182716298865046489697750198787203933146853663151940134792739863215863921283072598637697259242325910189290779974009318961821031728913872198607609978381008004724558054014013450673713797376819748335390239052002720731416151379757139924532975759899789640157274025148800990824394049204059415703395983350618923871977343900850845461089202432630567160977535282386921881633885607433471050351563952247753412645110368696070820090326152808992149491387692593807702009948716678695750591054892305771458766104686863776748090298610599694473849995400156812915442578394066257303934223521477298800787083590487059599871914295341157231009853751118492755937444349555284521234205446300275263767909550818059326645116052863682168999721991615256080305319464005115022536639433882213981169478298711929218297762849086910626752060595004837407801922674420150715999140998919670538685738139903443638743182246734862612594531280990865493805325596194580205692313198012131154605272941755286472758016806784335273945034988847337032583607703128091987542373715333631172315545763986386669979306877198327863285129092938652930955971503838462809143328534473574677806594881038015902159703180625347831956903767765931687017118183273916678118507982144459485906776430212740679882944085924997320064758273735812933451066893207414081726982140454430147983317819076203317473100322375293929950943661140270912370053452784554311840341384257432117060970507669214865680433236237737225776442382752073677153135669854731478429586313822700561371114406324697162532084725398919628697221840569386057556751040315339792529397291453523033835264839683013663826564793925859615381899831331053836957307879455479252373124964198610057799586477620181628198814974366250592167348364314588821541833024685459722637812219615702834405033161161454673742515539295439161366363315983718851177189877105425978522764982531447565172217867690541459791359602403420957704589229738069414081092330359409002491100814879702341228302076761595385293292517642856663358629922407484098976199642192243859473680872964865286064866689064736822778131522999793524525381386805630381476598353812584127520756034671830246115590133535232744717909445018514805066187403145716612053057551783439671096837952369553915363866940550400901969446263395430714527303040746436829385511678579272212791017489063606704411662297061133785159639521838491459524805799913479326327690707446295734990902355204528315802944094618240585201576037035509911253772002481333941907003189967419511964991130492421187929681871678762240296323067820044836828791815081399345184416759256660505096625748245679638510118577192836398737836256650663829913514948846360270650972512415252132736710266675258087283335934133615857207469455574428175956122704522931753199901611690152630951223227238098658936895487314778031965621097521912589608962973839006619223090658554773073298489745183184237200665623746286050352005778507965769047495147611296885297738508522693887985835452429952373567668762883531974917899054953327716851510435367218192768670269180717208022872494762522581167133666316495188755708765947828020559069825569620939838749471596054759771864076557166565804467022479917158254055860978084093109838407581867895261115389202717117351843017018932108186005085741016051281908824670456742893776210934077800609438100034744330863696609911054536005282389481538485985316482609589297719276738111501812198698397760319373710235696520127595876716300238429044078781867394509912083267936914518280156090981573426576561590675021373146896622955010623357672747377739228467100422683302695163197478891922071987464196796666464899446355667734215454945065778066742253584697947112340920801004760498584457773597009163589014385557917070831379720766417654572927274929768676519563070037360041758531634747755054218955081272003813745414033554285891348951538340299568334769335411923614731161130273451680828353719057623914768399359297342433012518716865611093207825752141147398310200488393037180490099011232197960023324912337898837828368259939676041089249195991254824804364450796031597064592412924235156487426529269211069331331309835768856413832754588345469107306167536843805218255359311998704695675473739180911137584166566707141643030423460568026357384538690389406266161589235007921922930768392816467061728556595743176841669076257560054442270669646938159005932013467419975379762169764087534644404178573320035716525650472768519851806276730251962889043488964964720613412239534733174992050363280976626053322808320785979145198049637998709984310839295290012844787878613601138087310723827787558893952822320131396619626501779365372144761833072474902469256892108216992370235271259167029834980695354872417220963836400027751694102050594450334134505037024332372509393688143104921871304629127998850490784924601906508661586718825983133736688789544429952995960778644418624503386640241018796230362471784676418717770476641426339138699046496702963782191764531495919052132132715637666409254101852689483236670931174469676766674989318368447191828236823372596376181902398953672396032252022478117234321116755301906068813774475437312812488241087537941409174394462129989133517342053779802263872092682441300154524952208564007701072535438375745932718317035810689100245331996112520530282028989897322897946374407002716652978903401607384305029401368143607704550595457928421209296763308182359408183089482095474293678901013357576923000816987924064692469944514548420671877444045756818718189441745200970202537014222281303563122983401080155649718489573659077179628829742440937738159353180624231015128974282780214496273977877820626266712473221549418846817892915860121643459239793956887308323938930116446741703361235937260025861178540873758882902698763375075632214927795095984731057529604023713889420686433570896156699702492278561824500143926176621174577440860200586874342963570529132502026147161718599274351895406080412797537408894764771759253463439900888005728439412360974756975940680670139426455208936854873766413109561430805338219328706794571849193297000715074586917560132734889898926660766151440243985101056508627522208762364844731186409198316798788287079988382164284488772442740890066655950106853444001324678364429732857519216881274016227740349123548289284677246556951484476673939735464105626698872726675407966036700825946192705867869313184237242465160426515571079518657041706012369426410164924254839216696662223805859077551884031337843926003235359087748336037500823331636796174342745668742880843062375387591480265863099174695329669632975253379474670793109805880154971073146593016843877929465076341816293103113000114046334288477718908250300317705881755747860431652650619829481228818988210336860650628687599310214948658851630126706165671903303897335763016134828754261729289278179570902254730819836034500414766860989800787300986160436875269434825195470392198189550402248770606409105703313198137240496537661004065463040432523023209160595673133061906236115166008368629441954326493027507583006077834781879559258770567037646320689120004588810143432208313007320206891776305045456275784923616447347088219287285132208618187674410792501713722120501318196311020159705223755610072558941602073303737571245979334524949219619225813116808167944979851098288227614616426566497972521971408969526723825116429579884721152074306535574141373731216675763312506106642786920680206719768806075137958452892037610971452363895620384244344805489476739760941084141126427861433766295948380699572193953636124722224195286163465046979617999927517555006693593870946962253187022408395093295443176713209159051995570641170996842955738696773928183644076702707113554641336395486725221779500945943467847714714737696156090484233389528871957236475553284347368766373325146089740140969162548664336955836183230627819593177172435492605421278262551532130537339854036599255680491371192543151480531322198619700864681454989798778209755536151842893297048887665209166822901494348948004960820544077208904264975428183422961250653491981995374281862029386939569872002155360647522575312609127500967628049932161116292572139988866226382395876290183013496664571847936357550668494711931597860186868543972249609865383167191259691459944728029118969315593329711399423838385982070153834792804629847491040396766904416772121486058306900181742614867927321864370698126109833182894438854653219148257609625451599497043676958021168612663277890490480555718532179034792171552497807171030877870654201598858191516576963974535927055303772382945304017446637898026832317303139694990781086906778132287692226987006454996302170552511688293932440583096731402999771394544480847652550334159120366995576524132673677402822992543688328177137160111245152358603361482625240925102578902016779241941216223206559010201526212203792912853491767836926621155939298227232473612425395240827679045939843194830395678815604469173697196624382062314981758057201098271509229034061710708945083503817740401868939594033499741082078918287583311602379043458802671751543479029265766794028983605841701669738624878283904750737649036821709810172636085624908449664699008206490183830778588759933786576724879679806382987771320638075683992106593483490059879319728811675994689367631364917277280215629960101993750650074398806710656341118631340226998303296424136003202910317194744370866668122223473601760514510971091058441950838121520421957992898814293054214098721145880090479752162933688011671241172404477592479302093751860419889606813609886657504985744574941361721173294768299098602233634454546948526914444264967287480217797294447807833575436209863667518389873706475789600696021699519158730091046506351877799468782088329062455101542916350410732446585052156515169710659954995698565801751158815737044664327487586732364859099433468259590722773054372224031933028620975921279462849636532265765009795885602078438113620530939643508797724936288453092695048065645433970186530301793440788992334144402036012055203663349507144258246329607982990407347829511407686269257949180165034509490078455540004519463531252919953130689909159702540152064369122601686552172704559904948070411682946592343673622273586171876735476054417308517441246888469640147416707977772526051614719905766988975384262673143335873967220105436609425571581540336210815556635139895505714294119621359763916553225645871054186604293908714006072525865407763724447007590779080420621762766441197073826705101447838643877610153589199804324061522255433299087013665490290218849747718397082370940996735687864772086883244618728322742724419133598434943004596841052569449767415009488031484753189094729247146474901569408111032456017393603141542143737591604210276033187889060065884504587174785501435746619486279343890814663045473588821073061856998549274717312896464575822916291918150830286401755352968764197846631434981427222654128511539670187284537747136204079213219813247958210480397887973593473263768912000715331622109934881043640272876360361591311629787591916215375283367888677655927039312882749885988571462326933529297711512564435349711960086949022575825590752720442312935809505413365416183188620867527434888845968723528493790255762215629105153039705691775693889178599033747973798868395224842708690499895405187418009137414041371580774757256712969087215466759798144545213808536288423860755019700515728239989788264432553916931471372709848981380378903103999089483371573931601332972490713364923414105119290887976240736953329302949805001242748480119058952819599915128951834442469871566092739608855123568766956148390646770348042291799575628162280225499452584198676208051131924107910928227757906229452322042689928394780842009623626696806150925356642626145734681217907367812648678543304780995681651136518467440981532396934964332556090138311121861656036123152906128555378217249210707126296488817006331326335071053842715912332135598955240555444530911107167333569044341278117893319390781436524830153408002042563334932311433988567401185401998500278665825682271942649133048288243703910605992807010441578061167538133642979961129470629931192526474781215183628443827695714899102095580346625386423920124561349890583470035151926707571495917136788259196180331083014460955636352178238360286512475596746071158506679396100098732549157124862928465911566651030426780666831056701985382331876130447325180636692014592627823829819297966267707981075767241093768509190859929917821333842760534514374240517123928425523676728056131630161496197782246566731801458794105059814961086077226601991803217185352640742234684702787526132988208255699816868223728518230527567335518816072052166137713285233547567610183547365144338574989731921708230010666191965158441011190764607158222118520064333798573816001199646223309959893459382150496867078151944800098778892119290808197722492304619601362404347256179984566948839844403245458787497115898626386049401345971859183936687670891603807851983612704196782091655797494580053674400153109480891525303289753319557485781337115658501218680310850722578340527944083470662449722547863963081520654864546734904060202905152874241549843764411752388565505331550531337083232405411101010201794601512690084026798191051781141661871608805424706585889676209930515029716449184098168295237905157351255508936577021094087227292976949701436800096265303103325691863163710981288280795706348837768507617201276737649024296826364136191538398946171961275065970853654787380353342899325819320959069778353428134745483504026551324526967996007759315097224224743516948423678747710342867293457080177978593556758481949245010850526412347450959269195737519856501701622275998186446714521289079603941075755583768648882674835885163143498449667499633480311619728939640438472757163666192707590242918550895864542867203317733078867086752978273535625892341252515467275188661241280413819544939672562316152025392916709491680456328855408701866821308773425311588287034928557966870159434131148932182301871564453796328405406181544192660865447150837834372373029191574551926744310246862916840089149347521350376778208233495389694762413353535861736173613734192093882734005421987810415547295110261791627941956887959414947699129218382467567922941469552758188984549894857928763212481536918862616113325260106004209389291355592854160757524025047002101565141583407572351993603335035724883799607374362975450645815954401071135382502292518290689219365480626459077342053886294802002363473538048866385773677892664471832814411581897124308146390018158198823697577115213868267780812886063054433783070435575195542474905982405430889514495980531930893824596746937420266583348069749051118719854229544321225536848368385142981710787319601823131960317025769923805056718539081158044063783545811971987180809788716511894741185814024702094372155271286422569819901213860969074786970290689089570910784966021405593332127391973053063095828194941381416697021238216894867565692631516042794899633961933513022212667554751771352787777967643520121486043585882852211114218192195991657270203239637473400664365897417992729349124143654734113325680940739390721085665299437707356368479933111821142973321265510074165853411079803433022426410114399866374371198478008313896313893774454942771804238576768377110827539007028676624698108504050382017415547165071122029866097843709112098951454392249127404653533782352202328365793109391989625240065770655134155897432146713110270541854062843589555293031825084834590959853123213818961041656077785173937500068919416372856794742046427979766851678851302487521479713729794202821795227467606499069529655033079050516518842963010194703176947155677464425055233268170483679849264236128289147557715206741976813108268753858312722140243122721965525554757942393148689830657507926003400345892030107054681983482707684847258444376134246257746077345551374921391450586682364039263540278516187931254406309650371051671053706829525028880227735372632603284479285835352975625536644586465864174666161489375440103662323210340063058119120907637228354766669144447566413323542396007167071498698198146761085699170393649775994996076713399206033099469479970032118246681914764629163042317755988197134359534518033266873614392142388321949090007643172011656386309408434858557233699641195160469128512933194717167409281424969240525274992368411987958235354632056946977803863650456580711576765162789320495556707798781619963357862752478417940556058243390514506443723080439654018994766522466506299962629759434988442159246753319568191174183421493405079231673892239756037687363387792087646283220944922166791942183683868458837784921092451025850056549668685231429174944290622490632836114126844135469996650448809221388352117153432585156217580601382839295610141209670225749252993409136008848783084944907096678476211253149293456062351314562790711427240910785063974083089834450871910252988970791745792318661535673457620049354715129605691754454480299387930483239747114008735600261821932116820652459803171394613736143253792142540832331405209928537029432730081262704999146480873419436671109554358244796049459820528749657577501817396882679680158843531874497381912284843593662204179275260019520961097792753992303832778077075776116892521477578744965382841718779029111855704307290084355657040126971469879078431805291305700972557984717512737181208549622727144048875754387061864985656333143473626143276363096067059562537794114793740992426422880444850335097978241920428777850280409356078496949788210003281453865694475951574968200931815416502136308943913198277640609257041856184059774040908560050673744243721002497564233173118160964673635372732498706095941112532162086276934197715348314679831713542228339839494307703427501563316770228574747990342970953421170509638256396017395886708106572578003834565732145660194883503323869301826806352350345413527792622970362321751575005236705740055678560709114376951722964269967730330692957835658859202476835434598158012956480940471626598058887697686463724717568450280840783183576994686658707056304164671031137957072947550415233397701505949443857297752461430929857696292819562738762081593369013758633365836665212117924653268145704553226429926803969509709856920669410235894349684579385847145715797387928149279986934126166426948418263499125696518737856519198676801541563526440287861612377159025735910229421171700879101573980613362671919982151066144287721789511337754440912490323185993754031895561103883831001423685875600949730213691234734183979817910973232500183877621048795809538484011669958702503740755379126743910456235793088067028549914945987678370111376217594757503737503456182534442493301639263475213393966080627567215152152175444519272045572722859122040954717225775922860702840788365294465595193219726662669711906714800319001080234976200939768542354103576832294073737871284543812593433908237474885619041036197984873169323109178201775271899172830667931693431828077202278252529012890129272667793802943507698169949744136331383753682365059979748390695612422802890917480453097228341346527392937361057703413328598454749076306989374977635371745520562994994898987828360358980790123059641566990326773929950966224255613007247299125496813924800712148824473632814892014559235824572057418946425361438430371345383014986669364173952805562416836371957481729981589013599246312505150253315147287702934404124820923678370878722438407371115865150998872360603297733727210870262658466614675874308962981170365424071754492382641144316241432683232845767230408967443351270186454264803482456399408974256601184580079064106944869295381372088742436582913567734071676375714794752961019910720942817867374254077792528967975997447437502129622789637656028805400119573990070775608502579016356584400259220955301442894750360898649247391814736514436696508557133142284709467762164674904914147282041648441792265551561591026243861486034241733955214651230147230138423497213275399459982910914687935965412661656220649454959202636817528285511828269509093686720831542522078437668479823053484631708365691500965086641298826702975383857704732616613737020254849549750419560390134306939047236434151639438575874094722616750126810076800201865294621651613098477929840164462131770200124299722250621719516183197978830233518469259824537202843791526836878224378257433262937227192968853287812702495399125069865293286725171749763708631229778428651929367532413666016099542791489519754722900823368094366312300379332468046105924998885903242300763152766552619752977133275758120029800362579479380163963644949756858949785672655221492344394086842388529587182497771091876161570408064391666175389078345913456796542184265731183159708855539579703850524232183626349462371867579833129364905511569095984662933013153487673152371531359406593296527936058253678041311433229001488145871979073018488633798733588893162039546610123337101958063008661773604751075590897012546598264706639577617676208172502765739473194361444125260147818630370124111173186227021953199518387069535907659836284237863821679584201353087028554762662501034901100835247905874978269707877994790254951419967021054109528519005465492996840041010859601960989579674602607741115880021964525307750466603080547615387201399513483767986348296560754399226083281748030051187414867607230076788558915467337925887064123380211996365364955669991896148338847902691921612877447681693966035058085932966927564439370506256878581149743724425303441250914748240866882157173795425537608951586199725149266468978834496710763631738606176418051893319507374759720207604149349159751356583837069709068364029694711020638355392931078408711272819014923566123705252213883867042576462461605215778122803701487229216622826474254008854588782365704379020800220798697802927487294121595189897790589832897277799595226938082383284627056431851665356159217081004641517583880687458875725576222614183985481749622131448710813724779294284664468786818323290174531561646368481562542216879104202745457035095134463417948674798390427708728982456503052584645054274891640266049010687132557397767743103348501514123064085687584487688674425975869117181881368642457958256136633182229963529935705151986972143798767295700690460213848646188346989406224743101842785850878793298319342297106860618605563099230177069936240881362152964896786859002912500348684513381305892987374957572664079250279247134133379560151814325544497529642496948781229513378251343816164997109568232722009662292027735699247469209885061292444759243329312250146590628022776503286984956562910313330531746480090438353092254368942613801406736633861006643014923584979327271860466421492157378201151450565298279191840859712272604413704608119871303555732464758573224343570058142897262608494211458492854848609172105677641186356405065206157586833999897147388494877693869010224242665556819827413022684154108022976434814161820429223290968776517628458224686245125087059918553301825131804715755114707784267629381720129655337437034941965931539309895720698921927068158281881716444790815659225473433610215422782092809575459760480489984331184009369280208192956952080359605885734259586679565645809832204253222627523612252941328868213160242098201741655818059351905465876578964794934424840571056587409237778510433365630800754140158591035804386937919654249485639003649872635970923476772936533098872637466162246591155774038413580366448208001204129380051374018978884968031661003735077376483627064184522392590315739515441639476193813564930001791805652809246624876691014874098318491033898590827350175685364137994559963136827741347648492251867990891328707297555534872478470083470135177799245576768414624126879334804966233151371276180146122168549766050986156760967933375844780479754156631144132280706165503029036868967807112726236746731659652210305764669735919108780741024124676702496524765554261446642746321252276480971625652318771057971459426460789456015680457672662584944023244406225437772230675308787337017453314509950711676424845635964150563850344766922019315145441851775198932193183350312701474470570587607864339839889881399411751126463913811050127265170866113027586453510450175488217516557135386377157855847931392464937428417681432171791627298430854674100061317865779117497969731592945452977308392832457148843784789618048030595821132466171209642758916942871145167046070767324814515837134673408185405643363236732292830150380353202943036766503307516207705546441119622500640843164959330881180245284126479764423742797264706257389942861946783132420396050445713152188510957604675690912283464290720392008147842624908024461943049417481142396477517592020992364851652887153786104805742990676656721747614200377901737969250404689247696406228222798699627027088818555385350020573841456317582561538562163457293589282245160998145871611183043158511818621465500572640954121997346057936669038111364074515587351280951298000164094083410039127342631632767006817253346731009468237774800235527573209239420662656727580469731078475753309717480874519362592268359878546785998417049862324868395725790396637744572232188244872095583148587037547465083625297833446067277023441452620633163351772060908482109918856683762141370143764951485310722010253440765216144253464654147308895353372912034843246370474227193588216640403779232175034481520895315650410021197666366700650380671002722466316996061178854054447337150867923866725379093041334224483557624082980949642850721809253431469227156332295595034593089345530020008504937846034849333118883057552071424146716146760788190804954948034417600718860498438413695703440096841175805655353075902850298297656417114440899492054134178091348599625066674559218466829203457518359216415990025285339324347392136304856215931477895886642461171233379804934916846753781691562459178701135112146245119177935160231127292514918736412680882208402668036984006047782984989006023626870181489474394340757882487977387227747214867683984584364571681834654651102211228132094916713987064174692803411332518254817008708416458961729818232918895117177310145386593856196424602478888665864346685221515398159016326080480598496100391276693134984124488451932686137013029003120248478404175355570529171188210915411751976483041007878137356883002671729067176749044888356874876726872497891482743405644591005209317861714959277386156371368244923817025952325768942588104681734345843484203367658205454292343807159563353317962549496466192543220736827890150001868223611991334261441639261202221392329378098687496496225640297336432058867989710045689622848558720256778827329097953830159834110361952175209853459178538817022316725831547933269878310280181483163588521031036354684875591927685348460791311567699708593438792728872937703426047290672378099010769848210689324758941817901767248245958562935161909901240603501875471549266937351406932767477280789066226893566859017038543635897614251034081939363018862387357603709200069331809852805248958752785175309739622952291879997437353873392367189365641527611788228962846188645013055020972213316067625327436197020721148025360597719546700191815126019114942520045798553647623133388156232030698998143247397303963259359170885655721977987669789144459292324245073880965405402122695498910372229110318787772064863940445577627187952727251421322100392246366391427921749542200207656370076598243850725823377732654684404719687175467299820373100144546084287847340404764616467257639005921841452853658575285092011419350212624963587874874904337254579016963651608276975639620236676779464317084023820575991972378053814362172882974105276939697274973741596852623996871596761232707285382776509892948895056936178948743254552721726156210161806688580842828745626836868362552851671137006612246619339828372234246397066392917596421602965479471299821709711140953049692938767078130441245312160333531375598451741548905270456779510942452584071020671486320659329913683021802473838074228107299443403945305141387143322265113079279981665355444796334143758747897086891957821456921881541368064586845950783660358653125470283580484218757766756103650893643262569253823340289956159307572011301527909525838371679255376232967168531810550331319418980648027659278726748444502937378573377851923177299983392914027425255835127599002309641253173827270690995748911758121711327961346885852270858608197576416048762579971450438810047678621926237007188324173178236751562843040457619167431557432436187859414505943807788163521067614508180472089734730977956752427445995805559848658645330535192924660861024423961975837957249989564141486000561410535693383349044191185969948250881462276371710249530544939491774053769742483420891932897890148084741147162184979281080350069338193384246048418467960531771648653628059986971119284504778211317003482147987412838167445223839596221320339869711869962131235475057197428565817429728190874314810327665751621565668117382822452164471056333948530041727194864568788938784765989583254823963500932438041766964651875304112419420742611881754949451156704815908792095135993175345971562659181589507640831607450575940793627350459014125479509607625411691838579466004578210243379643223410636936657633710047228857024633530394192923801339044644372569004197828586626656201711543634609080426314919703916843366097019779167615138563229144709089313085958320050478338754061419765180696147773700722836696993667461316712367498872099639257378911415024734055706821242747382089026760683150773217399893006718173347577767133748350387317578253315399876072077668492697375235346417013697878858622565308771785970232321479891677860104463516985597286059134572514872662950456248492215236963849082175906073422778019428794970519451990832895961229921088368483673248433880798047072878528113974940423404898460105927617011386922759952400934098984859318334205639680861454342556838043107492608355222870895909937955485567032026724556098065471529120347330489387599207234131359081767730574548554659473909901813480602774066738006545003890100705256156040029512713406229077145279388979112758174362376769732567168580044686796310578919254379354497669201657053390705513621596106502262336924044575545100010547800268278260523999547097218827826628552723321567980998092945402303640026197015439185747794544301166504953951070712419978905145517515588566462193826975557180274875737858547624637254349625841559117143554247662967360083922163396212609330422424815988609834307336446347307792878664508517247167457885074957714565128400573066155006256056961263250907692978198992974774733503215431690096769392452617963278309324042525486173069056677243817559062718859477378375688124325837831347610985254913305787650791948222964301505003084000848736200607280183714517908289980632241870375405489600642328164531489587914740372552708816949591268189602748674581215825936442050239427867182572155303286978889500451896395134341210529487669584762872336291948133221707488298887648856963365939195826126090738060755223374760420463844100718945644105862517119306627090618737002513291200226892438559374050747978686855027025435688303821057423054361324603201567800152140157666412521092914203919864305393868403560158950944931509100184320862803091416825298525864016543796874058173569931798743419367140968308838327046760116972613106377204183473592082840933765910133773582570890526763302161078167011815167149318183372462726518158499302830963709095578769121119074251007420471812390365495009609086924279718105772122987324880454345149438694337058722643189630048901560122201221774596253615101439805704368950175492767559873972583003477035479305003903283286540568711573199855189674070284216468694138251041112397718689215004867001271087582870382500614669948112659850032680725120067657152664368905354906082209175300597996654615591072765360630089022961473958612642584964502933793122775748863280414217403798160427372149589206258534410823836076440826658233906266409238569262323242408737798196055437969357560167561560536001957083522028049165066352305336771249508105353348659913582163581712562594455031123470983727108043367437090098857274664772667664036888060650456862814754729553363095310366675132879979083431150986100249056660828997052096612908696248522636506176043368158052303394332774349883384953483716026249476732745616250168800360670108390782265813264473447581557711778263683145694274700051422462317219561548428637857033278681224866303477116798693660871384622328019482705026677298337834888361099369080239334502404208104634419551357206594401105051393020103838249175828198044978503117118471493680519600915721380587131476642968887456407468887598996270551909005147975823706116703150704096856126325763461461398571230358637723498464251022538641653934617037084069352899058621351704968505978216217259016957451625173257146740674423953315944532546588081927490107589869237297356583791514399016159813207541747911021553090546524782166043511526302752041162295246559151427333326110982012628660785679568603329280064280068869842377278707035984101771405955366724117268637149871910953645121557205586241977147985686623632105829025355103073335813354577754179081656308518248404881871274095249996101552730843856547609820096947966460259572411133989257169934325688101505901649338263775324689272713203280687255586858047477419767232561767542618157619045122116840870051817296195006590752178383717467937510043487439671251546403764593566167059877133362784797099874767586516646961117668915992085799735132308022328453757426256954880125667356275422028999833027918962857031706196983178628709837961862708671283981443168874854899388429528361155588291770302548666997631739671843742249704961677456673522979838030257745684821524540855812418578275400824369037544486049545166622490686733133415033119717628554032135733112989248304213672314432992836154236428252451952228550852915867456934109368421646677386056106852240825062636307842289601883638881021248903430217681690691855131389663992500800817696078552626482211195201214061875511715881377138214850466396086309749442236678733225055170912973577661402007543273551299214117161746283500143043630761041524086746006378768009267713419817675780566629955989568673029887398615856086976400627264401649298517959169319222363772153836491449628384984928733866920106081424089903594191783503808588059269726445624560067185440556782855913188119920190521138715639336741278982307096960088251149307521191311744449908009903982838968386712576368380006497771361580750891093838200268209135585900621025540789884843021527298161179833216296312931347975826481506202686887540298821819441860557433918878576841211792205931191565691312710617861066289034093762814174770477404794327526505080185552484783255284752463272902594291197397470606761335279268442774163153765327151148705224530973032612909857907111476205014313223836567095724772546813248302894738761586746854416276780942695514459296831958263992109790260220503439616603614703747538457973785818119079465102888418530565899235326991943124541692000357000802914303966039129912174203127956979155771431405847093381177312127265851727504828324330571776305088187584031525811676560740705352131989058481936497857520841760761219232022965717849559892716511297072481847062589487292796400408646772790227030355274916489482841275083323675868572050681645958159982796930939852667188254051656839168431098852112939783148919383252715455749489597451870867633790663614859669953551398777700189746996218283130047518872231780018442083974144587919045431137513379449495160818753862153902512098360779716407962162686387617888859106418235442603661036708062408398682004367297590181204457844011811922589138144911007365198953544711160656522249466176881230996114916164172043358217891348821196723970165286122215112597696426020661246723935240532507073166873119782978234049607889973133194100679920686190570279964292575384178437838659718925338880320537402850242894043596349389649109039013665104336560230230681634690659665279168887131004667363859543224717900326404854581146808558464367090687101223318035990414742858489194216593351772299225543377939098205750981349821995966332668520364115451437780359865145195929147959690120149012599980122733501365413280689758923774577892586372414792366709985301586058292518718257518371686726289206497038497964979009432474782091317701963466311151361802170293727412164724145432925016055241920031789249783228673660163731684071777164267610710694098866002955982389447939964906166547112062272065069760874647919337912982163051895179148238592903225618692825057039109607511537964236683187118201695122861606297592779032275099882284560574267213381916083108039259862086796832877610013381379902772839327241181551723572615145746009071651741811902606503982335526276063857820585387517870247295956929099815112923144926016090721704919275723295097518572451296775851431622425945978581780299718287072540868130210394782346971353339109999718643859060309793932113895624575406425550746560054076270985430308672043108491110378062152648656340948673440459496062334594386425292594665092857563482008901029741612923859506215166479352805105767466691268250891160862215661996676576072284969536055953821590422769858352758204278584278802291139838830022500999284782046942137138618763683668387360945878755498675030550424483857565147979433401852418526844755925265086554646103469661498112493888630906003245244943846683519325394102503316480672297175222938125208828959448287324418758318763978003907737670413669556772135165706845514359136744004465330426419880717923423623274635996046855495148982321499418767030638732140214151207984808987185276871527563403682774603468911531344736032341073248746864530412784711316628915568578892245005338353227993654338063004294324623866609679981476952811262802189768417206261642402795245398222423517369126514021590349704370139845264006322882730634670610282455333301658636723175277761307749387589624221306241522654587152850644195197990451853887719481100574146921732892724921004648993821777601609863904039622112237759394965856273975410793136834143888558189616155080769894557961573935172868026789219080320080261363768012735597506165711656193284231840602954746383995976811988407426675175565397763681262626462991346122568988358504992316176073123601370082507914713687033321433033877339288305870237851735771957824945707099180256342363730860888328501907590733510529821948096480978095870643787024614312082943641301453774979637862629412990455101313492428238126316973897398728429537204988843699164016197655277213127400428897554906249725185119982192364815247746693440502136958573269763895151324101872459632467757542511613556038016457759987332801000234187646657375838176173298737427368030214886691874848042236670793736313272506844470718606187424888612977479405875500435497156158896290120463545432646717309125399186867191504411863059772699728148093377953627617226642376762809649987397209660743938223034242902000290013880144007952486234941745983659213142758172695795889048018694833168085935158827894277790029415267939777326932153680855959972465192515540940137733074586662129192336951985272768909990527476416875849495386471818491801855430377182387754058202575145310555698264043089937369479301387391794603916426949752116514360045780892950676708155859182704404674207651445272524827431281358823521081140704122689532828698012782644208953284183401689131657254957907060134835512845137135041661670329364899636550778056425524289448759156223483328635231472036346158050904533529448740213356885960233888637756884993187135519795512124204809998735326795894510999661210147453108047981355541969550198954425973421509104989063023921585862599516745292625282169198047277109514639474224822793384386028058821046477500255859738277035467433567152114431733598635589238059589430139528115977858802398361313261806329785021595867568897441017922196278278155865906931737338334106254213377981367879737860694569725167035957434304440427114602792176278076625157932886131329548509598702613265805742196338116318656824642439106654749150897600078007232251969998073133709225173722220757861119270293877586144993952090872769386892105900585627562578690147361613870153705256276741623887288363119678761895430551436374348676953025512487934939669891157062140982258142501980018763419765128768818385145395952125730434093112132840975829745727166142039502184119457025614636818593886430630687964447326265725071876970305943638209710361408353210462751587647076353380766336322412477863548635152703264473574335089612531726907837850617769438216631183699977378661589468889465072140124767245287319701201116565510813097250488376038120139508093144880696404411969384384140714433908286112697993565100765744469401474515099784808105984669613138261525700631462913271559914101127328512140606813041447959389476791254899999430123732168502188058586435922955016994195438128942878549290408047625299499080832866346575205184453013008937922122587722825421293125856855823056022041263116542003296948272357550198443569438329556340987747945538480523149414036663087515271900278187283850250426899182244548808158045100568015167925036588863549635814847366150539793398470806513607265645553795703746040768643469917903635276515228768456448809925234162095832717743905682818897683164186954130567937115918782800202177966266263813521998766088195554879204338358280805809720486958653064628075115552115648655159470940729034487471149246819007475156252797343613894037005000120138470456946149067177745745724041457907336554390219859630520529827001584591321679650585034800151426099001666542737420812535657638648133974330430955876085970700359989860197154168910106270608578656192607434502342163819196143283179277307681674780314115431613773690212339901269265064677345059071011565068707266465507414470502705578575337786972377997935887303956753822247383314733248899857088740586667640878690985475237939084426020929123906369555539456687321461782333314007914460825006293156225889719274908690449697185937893119588527140122484444040633699785810176128409754178582644300035375171024173779051008471631016994139846708434076637455657228448195494215761819170495037521926428482713849096130839035961739909771291072642216924328395480451366410956405462963271844214539772526147178519991062836377794487070967971040598075885088106045388483416214796943552794906382049308221592747185967702230095399219154164064382480414439502585282233843501546925617956949172377122897690338422834975753290130384975859182963378946110957291832279508717418605794026522571343536141589872555241460308971783197371537564359320283243768912580849168455627745296583173796615077106801772607678157642837150109674763673454014184160588833753156181046045322173123489206619822691988924853359820351312563867444445917078358302785796769261868839920341027227317071041073530488006696743081334247339300642509469269089715542013810513694985816294791228545015265427038534561638155035954302639262804934706215623091197245389675084512323335323240182630019916934847251924818668062488092139810955909957977313759318120803975466034474123150119252757298291114011994406148884726712440417098479074294028232036644327552409192548135458047605889381467732883132092450249941740378396565687294344112073626326984218322768329886752328136007105155850618602402134933422427218113759269212615510069305085120997730592631307007353677615905913780437793999406635141514078238300988113556795788133830021688130008944123312926509343080615845541123304253499564953445709624606338325825171424004335247480011385760238097404114873765778888067789647815646937248612485320640714156253910934377741631393743142173856692699813421094893789576195028357259414069461949949145434033279250468229427650686142262931859376150485160203576146177962125687347076189414111126749592498596583121893498721390721253596599590514342872736199128447962000569936441711068420815627522834832725264723394980653351425762300583137428093996102096318026509081740925911289756781719121613610913193408421404733352267522010445582884815617256971990208187438591472924186300960864461573587899237204992171015748766270853341355071277606067317446585393239119630431594768990050232565919331443056297438449611928036657511080731095189472045286441458334987385631568515489965222955767930203251729990027921761299708513830335835385925920941403245400939502884387602832370617837192813509506260729825899031681954998728279100644855654448744544479996141850666861026463215055180591157264752916913502467796953647717669686501838288795081446635887216569449790446684023079385454897843622674157814809483839647614178887287270623509068069994302167787021178721977265564478682083065170459264454033847171213597872522794227522961015424073344632123588753559779208339290766978881548581526122987288891210889142485394478879605702449281843176230960910802518999543707490316186656582081339463134193944943843863066072660477693777722130324483281610016409496079241479258121797887594756181781950429001337471456523712290919617301899082036628947135490837221033321316454307877370948632303814880952162658023200732796650648013207372604787364953457585924800375734515773497389300808707649230864825653513662871638422046158393319192943887451239436243694225592194334213842131528595334620788948962310276167526217151759132542341329648717189897965353050637079900495748994846440983882344973174433181202454530649169628471667034023957873117126375910830087862353225257843839571539294543998323063200034251302560466126040021405720194494030631053744526569877917190899676238773374954972462155442515090200091459316448924300250994404078778743969575669132872088800379664980528485169816033860179281102807171339836773071933247943947366440478289996028073757711860124325894351676675080173817692134800503718200662585802165881650725537687750517078322975382448473797907399190052436333896247769014473829082357834862327779075966510989707858271339366768636791407522867108684690513041566807279850437106813906356786519192807918127288940970438742727450147521450904064011509432949146756273463145710857993929374851177694739781611152708185035849937739923858089951799206620272183375364724169633280739584791121921483319920661714098827186913227585283657249639506991245066125382138693397013982385581748598008967771327828540842033740811350062627691656526947582063979141826105828911497403958275655243643252726220140471682214640651660719092415904993246138615850548960162785670116424220794414835035991743397298299577548437162101625055205974931981532090135269405914227984384611325147204496204435579280789520485498413753644035787342103736075266244863837262973143459899255254541127001785880375767744714186574710860468850087587781058387454391168956045404381459537187517807806541107773256884315044241667847502796745513913146274882330350794960536351018663702407027180962827768902782330668786313214082895323428728938940928865019957542744256503159058965482111345958120872483362860121082055511556117193972162666104252408961232745472948237523892973899151359080419041728240443149720218206134189680478675855250532385466607761413290467255677085053017263953801600879157822164734537217351048610265362125486490978596531424978247603566473346898655849312901522614867903441370025218460844081934248260734078050217322650678861558043652027490005683582375022563481919056294427434681058245443813048158845121811407363802824555918026025726432033979806314519762218557617375962335525795807381558446154011102645489039522891554898322588768485444187458761353598291096503609669446620830711631852279442123436059426012975738091695506267710089966073734239070104647380813931646689590973053115085769692341905154022761677787390839352940824515894718580918401761283474682346968179655567714400237974632554840304319184805595040187345496093001931179945945266373203814554839941677003607020783225409945936848357139306895067457820304181699148139179113958808265549260926109053840754284766194632053344154986380759161635759084150920558194694866287010628305480860562525231331534310438261688907104799761458292245343006769099465050424425977133646458705138142072323689233612888748449048103222971564776896753770490463887876230988885900539560379099179098514845731916232480884506790176687605112278040555576493618310537333678619759190133940995828043909661887339105714623971943101432578319507233170584863877267086304156269007511620517828217068440021026208949531596286782581982164980500077276794478861771234716693257036935166975923148684612298047932214094736132821350276908241946975190080612099194767395005620099332393918886811468668423354683671582386311948787392241973582799805103822892027762651482705705861921697805564464963790915910953691628411553673954745156210284158476529793691528742548136291484169999658605180594526554783722493809235381311671288174274431052412523765794578655570505582439551641861347363407256632858917142463279625958939206855035050421117830077186606364660178682846553298043198802614685427103128313475024850592825811928788771682273985619446565670255475647772079420137273531728930959166876705415330673748016413724105203567008801122678272666702467500094481495261048027357339780823116073302937417890328688336546687965789057916899304339030825626141889249348341144695568241149105690340533586620715469130915956239798994246284320393166286468592393799302036881510205072425542401294409693974453657035793584594240871356576696384870098614419695396457283624564144126686683975962875133209288322643013201424805124099262306424072922457752390562601959076499887214574364999120950114058293027846757363718442762847062993383370437022043990342369524548636457386132259836549703804840771179969359446129433193663164317777560628193376665761029205708118610175991171391671327246493127792426860404975731522721270721405548316401396407426529494163411669949918214430405082066152987926964342472768521153568162300120104293927970964070234263748118926480265306363490368193785386213938842170537859421403137073234819897512793002833164394870358925973033667516428763968823517638528177455855978584578809539938546545133675616436422389190482636894104542715166033836466138313200473064306321136270873826928863344826174465417389240538480379998410354682546653225989444276128826170195312680472674062239055155277637470065684602380120714187223039414783632635309775799755107232711144615907097037768926929000146292233356905145680126748999276273004852602882522537319290306725385196258045845772864434906269487612677538771810986284207652441366191230957478490952495422467996510186079934186800125257527437770201379682499694910650082088437863930489848570875651017410536355101216000315485091468979507203605018421871420436291042150515699793682648894781581567263383587266629635290869840305819360101283521248064790102339516070230209599719613032666444975968914488839707235169984921704627615494882500784244763321336269478894764874627640978804062317300749909876980046888111730641963696777016625555711372868731031600791027821243742447978874379912268470200336717756419517600734531766177228642246199954474093708642976416385000249677577555733577135850280129893218457320666720522799346364606836962146806778819145260235937858396978344274047445397323638456591401858495699069206438783382862229056201562579088884059753014755946441333993189764455822798393943294875339004686753520754384317150941362841012632107805803917073488523303034646293079838057858547635904921031168856111771655125963473491939446281320757927215874125511060530367949770558419419847224585220614024863880035447068511647900206288840374257565812342651233000344499809572948907553639324466033285319948913198133037514485217662545681012167399978753700779311355831020434471672102921702317306137972080670079961875007989700961702112983266053376467564602509802471661093697214945498415761940939733595988373130756934499598122501128724343546794137812755106238363446145205954350838199015723110798597692390276490919568625431650326223190331948921384170385596461456762992636379192596698207288848696056500667691634708021530178023348982843784414024322620667905312254835826483319121687436573779019642607683297423770147551264301890669290282597159869420313635574261924956619952341099060538002456780388682633411489848379991514601179858916010447568300040217442470677423957566791118077003578227514557670456982372855212642391649814487547339046793498654621954172683692891878401321990629270599915821876876387282008336566022280130716564927508930520350302740181135840392708443521032439629639959566755137462150879602691650830291360648224219137643378932584493827837257232753045371352566829566115645055853279760684394123839636099362630977728829170318584338213663595839442123791391441469707989504547459527758760817876619230858878661482970144449424106835029175890674532706873156089507778898887295199974346358574437291633316284968321944790708489431682094444351394771271796510309236659857606928088467025826182719121971323845001319252520833340945972350326722679522337666429448356597008662373137248168773497054323411627197996581480953912069959096748768163125347787493307379148498403253256870115412891134328240565929913241076613517093640729713182428126250673070653851502643798355916787162669124992975292651984259610633807623866958298576491458185285084224166912332485182243790583080228133460467265792362317497359689887922778012714275672507400355324404496338309436538792476031456951329967626130303497480277232755898617650008488077046764084023179778865840422475145865734133543891400771471364850878690092089108639517438264722474774030692853693032387339357722455884559737167653832079707501040092456608434959565046804582185952538133042437571731200113166798722265218322904449811870350033386345496587258765732563812145898376422177194888937465898084229411918884843556604084759473296282329887549151187356577775380702429922584315890412383162234812827377859603198538915663212001568499710896780019622823851608716978039448048075930188581614417104986378017933059939017449801405037954656827609110793228651617042680003808320767847355880196053942615935404806334507234051142345143563026558144467932738126526644659515376002513251957221673356809215839707567419113820808427035006901242367693785400046933876724548196790287128537810781103874665896723697110102492567118146503452818885626884808861699170871136902050074258518020176892018558036649659677229528548309563935636412972433458989590235670872850856236426528058533162252613228349585824109318854940054277732207396405263906630160940132372072039440115270993616686481564907021563237279524010358056154893316267787435330478381108908953379310786884913431729359460899757963041134083280784841185694724292228587363985528103043521392517244104765809776026237526019601934603897457652294333175617592269027693554404385601392437185793832928224850168521260719811084785939027004926503618789718435443507175556300445508538794943171464911617971131876701682020895740007353119009368921624240580595294822140854284036088907577226914932091721967322224898930844077723090588481102073248358974642773621667518211799008610052206251605077286612386926968115136087147638431281263030307291151517050526529972595855538922763452680587540971394250182469529240512921646534100384817813410507457869202310326612512790252659435175159921388375489611846516886358828418551470380079484960227212922324102227541175022621795530984172966079591401525198036191338368263042103240154890541570478167849680037412274065221264771669164887356562569009163477262425030065986794625202520037600133460704769990574905264363219016863256700908598544220391967339644163138352852780501203607940452175622927851036044393758836209261052187487451317659641087511205209058039338033806598388677163684915045437339068933652852978190673290902541865943485713453136347583816667858073626488074260679588176281082951531560950305376031398097857972970860895908468002283048674413935238929623723292038505255548537166169229756024749242497601592499733739428115869052705114620255803448691525769338029289137285519449216974148621461237292898916208942408483925294156120744774568196266664032955508477288438656942397804986020923887325804358718927187479472992990665006192230308968693736303337145891156434679380579839279943073533165496447137751610566467066034162326151618093698904063213118383194333022204299666877088742090078538774134184093567246404963656762282363695944247512164624120178636702943086947445810828777299239207517382482131483579274526054306343237148355838158143851153621352434714121430512687864435566880712664425734121850690875911173476669364781096288054816961808848211634228612708766552482690712592382841093248752616454782381329145716524754706138132643807467952397315374253603137931004251368782071106809245903978182299569712379643997151392481321239152569897248335512090403424584432471917169871304809880764490038099321374318719086927507601263352101362078695821314958044273586232164821106501494982063503752698162180549705836636655407781077235415290949781516770330872671021777948476029256104449581396537573638550505447109735127373811014453812192389737768008771151251461525737207946446839446265808877757990947090478838652507293403479802356835231148935387514964155389350342018308335665991202362185448101275949215343608902202855133834427516243926286886419781577312014665370064234254391046245073197062556771289381266621671357171689858202071938256717673127651705077846669639397841933136880248565411919798919005173480687025466920670416704250751658873336528786223427724159369079707375331775721175543475759035491724394779371566011491983096994435922333960650606706425739798022926440792529828163550356698396703309234127152867641585178924992685374193811034292660942060153119387986244113787721286681165483129016539409923287769278833637617221178554054750107176853316600540143755422747532509482797765352414905941446551562223561871772556165588019061876534256203856624343036064696772348750922402457636575963196331178364831458843538912919758116338957325676585630239375334289657076089401263931944290651868417323239141940370392672477258854031506559761446378935619268440505843132252041892316490644638514574055452043625923376074883106252986550820480983757384335280620775664372197357985790950131392246506298850943627761412090784410925075429429538702455595536896814007462790383448012864198708214912945451923486560652801567483642247615459187767977127529801505242531015425616678591051856321808367421920214661460615122024396544417452126705970122558345706589030641302697467229433721385987381466372441759441696218583180807049076185396590406990763071744152800760537573160395043797751831840259967339220759192581510730612579875275116173961531966123267236724435316190528771608763337193682033508675233374704919582562129630446496673273536327577517934353981825543952937170346439930177119688354309436604282012633389697702368495696071520558989841776509331315440928323207498072601770785655798788900252631948062737952848217061223055134427297471403149298586843503025581751723623020775979745622371123244391779568376580993983008650115382893286331932913919542504688785196434078889144499219879058281745217142942675403390132517279635210256849352384065909900521380206660242980906251575354798988957796711788472220078458701900592115396437273138194449386076009667605790715781947098619798209104793681310817168243217941242915762756881888533508414912057171415501385307219040252250424288926226473051414921016312692437482399432614159044639005140651498693453123716360970023659932728159994117834851888519357264296658432883972528397243777398169471390977921745763394329823485123440052551771537038449528503062544907812365519992145526958098169710471751494720393586979172631184848457394134611335884001878729890258008382608367635450699711488678361928784903332973608555687146265825189044906956811532575052174395665828614061276834726361401890377918936508166097836137646605895937249646598209218005283128350221297664238843406603233170923627378349407371198681319011095051355466209929002010881442826650958326078203925610303794396291288291464596425361422836349330858163218996395630329862105547088100237269810326069732735066032812619764589384706944243155746438242081486148979322940002550141155337966373917714311779435469846485401322320593654520389270658118993833075390140318354616064362449351050021208190771179399920853592883305729854820862005427354241351566669749434736041725000586815188728918945618183459692139320592005651299189070060473573534493248185153993501777538869335755459459502874693834537392023362427242817344891538940907990077603771676101002752310582781254761070411545089471302638876127290754917457293525557561951880371341684798496734430159964791778836943462535580860893758871787205253875958991433615095332156536316432623100425754261290478354936164131737487218156616099159991134037720643086684760074793202468998309742100861705745931935690823723814903692084191614087953082391053319086242598631285417225135932151583039746551312241394076135323061945054513337594275342325748132149511872787282880730828357763771704171140869983300570293251594073428923395412138179127676414123408754436849276980746504247105548683144775029147590768541290838640520566540661180580464511935337138646244906673492752179207465184997219518321921447508318599811804391077941570752715364906265388608426917891457325746619868022423507485774721037139399119364707507476265367164535241581597814620774031312614317998546531180473028448860653691589195577809036955419629218878234710386668986099989564310144287520865628188402561820212354215388183726354526594502838283253219085510141857933806822424342474038792856773938289042048170436639064904927077372241065891321403847353321123071429280982848851101284300896921595703288578039370430504533315027310118704550375667029059269758288132179413916674689266625343203654528708244008321151640797200253430794178152490914405609021133404053237911450482353493403441255178216614335590555202394988795787253430602333118623854854254171308302117081309148939919837194435074146954456077066620255933669214375304367604109729001859330623137647343562214153601457384113243143544776582040250041233717212578291467492368361696881616348720614742851747517617866918799334686533540703533164303134262575317356089321089211016594702743291969757509823510639290296253695357418253914608460761617393038756460412638219632268641090984432744741851428509766000088109700068556079197603231873589493670617914537472737826115404249481808760067143661398774328887347901968985410192228996102018394893016765324232278478691110466258810961372156382389332356403341647916986253895682420286142854684530469531624374580708442333531458446035596643810176380091159196387252733535068042163473946100558168817437733844701545576495754705328095699991295880645593045646178080449957791843038018234242781416617295163526843625672150441353537565059811453744472059353777493617938204091574530889196309037292114442975624635952540757895299255096787285246188135024972191008815240671219474861481024711810229565245294019406084709481678305747355913630726799230026082345008562311974173203239644574284302516991420977858412451827456407234314694740740335511640859134121593435909047110805575170424904133595602697957674296838710311457073272336919123920565357036510131305567770645334455790539711306250866796671474051396878597769783290602921592148031115188033731727316952774120021901536663473148852507688463641039582878076159356121403952128040038418603383444645840077892943819530438699150696159012877862606887999865745385300922389133561910185225633321507505961799061118041439540140633092481554174161634657036179090627608875707551849075550165200764213218973160881635180721279539302529261696792582899570928344303504773050374891322576988262406146493365872070590702908411335764226437717765322813437241652405344893387824192614745065117065877538948558465318130786833633002874132393410862852176410587105093877056124685765819066542694929780682848147392503019079656896868347376121618790692856091265264887685611982259423595630402050712377848387051312022292684755987865052634860905579166393506692598857482540867929161220101398258123999287314419214969021067405688683548962412899660380161611086948276627903393336672240430477184209867439702984121279408027052845163746658501823411526451092964114299683023215632763784990645453454391015531508962639427520729260841791889038586504278381289037165294508836425358563188435429744847406875526251621000693984774625799280000456740381491123368788436583562176386241672207882875319864321359985341021699406034604070465698343386878400715251234675565553654165266394830900446353775520357997831393462937992553450853296285106816528792760789130085694647300755343614262756018573322211366440883686508568183198809206173427604535862059274014049103311779698709808243120943570850522202981836750886397413542941408496085203723286080385734721218932507221865213035135041327903257822664927878769334149909266806243084879926939458207792453940687245907753627396769616708013395650777962767729883962502767697575798888513378489036473327170250210231456840389097127165036998674721895718054088746955609553479509849019546998147358303527078052004624910532569336697880358399822081549233824016465237221019249747492358894219528705721083932434251534206125767112539323595968045812392850502194502464809186763915279328470729212204377676909520267590659612214675939492315953709321001224542393467753279899347936545867516332438398576176527981679387380338691719410664623253053597157024618712077052968892384571839086343459751059463511888605595698562824765437089995600497819699665774341291169976444277504769838735746552024114587972232453997689589570989298007741717028538981989145449291035759369605089635924478869437403452231112174573901671210765367294625702578680603262178431413539756915756411321606418429130510755707636999768463986798310266544579615805634907582556444279866606504863495191260896393238364548913115671449654056490750213304914087734602082658165226232410397745212928604442087908691699620537804795648263354602526970389224528075198205798274330406139574023931199695327858110673932419233753050742721849554114305257509132748285115633554099506599437106089112741818388969613513661307163353321453268841321106222168519376355225741876253857093141790131147211783266150011405849816178457530510670702539252063701242318514461465599809049501300014401305503623826586611893518615543068701092458890548996364870382223972892757408957039872614872081991782040791432702347275486991972778807776291778975915887409350767462292683444631273376105758104664522950492739696010649433204797426873303489462016628467859299333021368083436179335971176259998927253826463844880669417627761878226248861065432098687177317945198315560089692610387017257595580556323551377419088592194779127017870984600360341059024156544786922616163515882123150151750578492949737287864611087005233822020339240614097881620697429268056368063045643341091729322179613104762656247555343510706767548084736358444007724083080053235963684376794908394429834066230420975321605748359508659634521376338603428038859842661721723699710349396264917785019149748519649641419229391854221856144324132846326004590671212273644830804206393353265901572426534697208179358917814640055664956249339456774161717473953385788831172273394821549166404318319325984616247703125745908612440965090125087860311771973528973949523489440627857000157303071045018752190139245785547095868339812441533781017150542356355572269039241880501755787431458179065270141168532644862562590911894286514647868085415563020013961512409393073765272470011542335119013779311386476671192405876434265750122161384281867299012041227698272798889827560856918620670928264764039834510703435045161967251743593414481962464167867356844155544553989580482454728128188352012748787799804582820442943696756918970187843274246139193124019184602677040560349504437051375024896068142638696252827179775799885212517033860219731774059095455317749184273278905924555935792100292468056968876678781223344338366551541804928740807833062531653003106982306647698990237718385894314791495866654609046759912534702017285950001314570131642967482835833007118361096712510587790788299790979193876295861953103351939195859638212058626065210158168346755419763660702291268698253114954016252453883980285675941376023606778562554321794841378246884598872959062532586186472980702795978272331565481897053284369677364341741283138276601766508149056258803190427120774048554254416575655977023738100284557068688113558806870706043374774781021504312816214576301953895104672125280718073046381659677366363149625178071862258170416192921801782258983867728002269289833453149827365368805897811666165875244232283637582525596290554333579288308580516839767521264426048593580703728803877775679115304399421194867885764728261226870667381817610493249958763355640947823501036381132948023350603074256210899245551755954140778987870076702710702302557019115154351805855541220581863645515260595227229339556154511011707470902516650215990236633522620371809374770903968452195276425126430808356241487485113671624214646949958896560468994045398787836098704235106334081537615698490099181314671182064049285685037712579057446501259582218629462280549032403510192957519853992546923282256715440624033889985070343001836384502526214764043912133415450639496363677187809341275092882897618346220408631728479982483943780970751969724396744781454760828795962229252001789462379572426661848733181442491489150691800529623240160015772284324911309943230922280357440869816703494889849259716140437631628336075264296844187653691737416612549534939255787036834168804291619218794992293608402825613936450606032206756484343364768788938001331992462764440547354634609176037981821558449656304083456061813181085273032765121683510084566188904483714720440939123402793909573457811144551356402124803224895134445677129598124249153157384291782196455221006965873396428327007992698401520957739625565316740446699341488425802435417447820025025439270409823005189287717184759032222259819777013841428156046139868205462092519120459468937173370524825922005915051588800318173742884049285434953180341824369913278694456700456541624415272134001941894522088986227145459822584738356063573412545900305375627981608954010943589748849472927870885058650210875354266123456170753794027713314237205465488517070496936683592497470967849003639918983093505120421296066231863607563187551278923194659348920287650174985727562309771693722399451507807167769939075498486666631184772609922148948342055280606167294876736788112666914630963087412956595427391504508049467303697282462616749168131023374806032167875403099909066911180021193973550665385677447294692524748034003933414015032408501227414146706403105473608342696307625669652254972333007220804772228321999934156339727564139097861239522237414090781486870778790634263758183313838649001313333528936827345743567203759103917769933882558487231966121710292791533125487991293249442418484066285364215654713181182664650351017991543326708044241026544269649368178460405349098293425500273276030462070186763913240397283787243774072945947316094217516015458945982028786483775152225708413276953381704253013918157161795802793283439275941969295870826465523331804146023052842619400409667750992323613674373212692017419514654423502225586482518629372562011199389059467831153355972241201646872426543939886935661752515564177569565107553606610864804966907790833233286498937091532841678643467737220617078451590264008482866339210174897342710246749942332981903633359758241431490593219107667766196637854516137839621637243458113432524462009247165493492754914646338506336086560505639631952696394233161831690116932614908717111438583284402133873999123422138644717525386283544257416477492140781418923333330236053862564799239209457795434532737549963391852992398932367429464112576199327184951007784105232055334658251850757400447741561279323809945264786795567913929052141006733973851969836709960666160545754160362329425593981025093014475107294955761353910591673661160059578106521921658179687814883578764299556744587111442517242084100558462288930128279372988494657787929085269839170865401332249132933880490006178355916079749086301073901943586390128211174222450530183998237924190373855157728872539832518670897084467109562666703935395517217881168009081707405244474691536379704363308282648921085262130992269725440541569915876123135579948526310435738063066883563086688353734458178240600685588848621011106028540539443022506030196048668259382154755250291837197444314973523281576759442212353846540387369296527590685779188906622103808713175742533537433785094791805573278302407873657914408586558932039558243561885758429512136159557065619353160064079424185141653205303597630567718604604686717480281295534922139084086431748029148689320075814509475095844892439152820091361006247633061671396562515050850250494377260078794838415254749499381933156375367614458405929399775217791747135575402168705075683345290135804578295695540396268446824745350778694904780656101056965543336166541420413134761262421112048137022622163164444866445445210012250623771839168703271743206864949733911441867867375966369060967239137141957582458044054808312274591627447545860884873613052837104314493298905266164496846481407909575606254410849729238233343903779923617199816018684521216971241686392924567987618115098984127134784574169866235092143991625669957172518066573120931906714008403092275930657249077241327803355182624011235399036332141487376849200242254622581327053571688020886046608692376653860035627972567731863854047431705700908486781232356740755872275881808185273132496058379706000233379216774916328113817913183784438599992443196620751743797333113622985855235141254001044988896874354905910186187265348369011343910817322016339676976593048309509429390521254840126123273164448918849009770534695556646625420552000852264122659596457024472746236816837743258417856557121383436585350288269122275117219772698172815327408145393488074562956841253695414644728753010177958265475828370848350522652512070027078911700580699525828141376933851901953552556247304357791941050668146656248160729368154628785357527973471793967951959059910960034407920502031906749097762440204176546337190036799179888505852102133585903231178989953615772899794919725839601887991709219334403830032329337387523974985429494530791183674999482013947757554821252622775305906841164698873235813555141552592483030397855878560220565917328010005013250490792115347415611190778948767262953652425436988819692693067914581300563878581174431248340336470190237026484197364099260165437144274336882755580925789769951616992379450622010354763209049789429701907395271305040183060674857411841334829195173185862913636523389071557342201652584766540814785874038904700503328244858124217605500887334994365190065019548873639636237199891544066206430578441356944673214328351851430872125934570240687948502066079172584905168678170852141124480328921334142433693249603450961181245640281575365751672872182361018632376249815292467558913943070533869627794611247096471333109054203613429676523779294136518885613130067421379943788660291664558419978464280948209204477761265627523115709827258793929384615756303771500269615600675653969688185266953658523510183914740191106418701966157618259683020725180795574399686863444849408239985872124028242469547079463348294941798421500425414985721713995062447537716316170842215376813706732536843020699324769545460956133341898102846488908856876967950974566155064267565116606928304943081853152038472511904628641465880537069935515914173200916451157517713303827139341485414543863706047877482517519642122758174399136695957162025795214387133731822282997885589787207814563933877063873195641805040141389087894782339556102504110004265178724107665866536821578662169733966441701637503317136485733301392943140735354491083619366586506291889099746264947826431381734618558581581986979198376039116637155087249126826578665958988308889530275337950300557701875548438871311538538942858990097947072826726944805759685306683252202255003340351562583183671843743224074204282581149785632064853910619537507104811777346352866915522648674353565414801590957788340961878128908762801393264128676191002005685324630895793807290972020765633250048723949819243335007617566400483628660972672202225066716530833358127163558286208192100052874364775503805968296170203469534826396475225555769866232580002302301808390193631395331726072432169608569857705029777417590755786700864724342942939977582862845382826969544435578811046943845083231708037109236314195882741799932130409749769049388381602619033017605221572249778648149116569637166893496455480871907191766472874761552283061561635979934947528137312330444671819144827561660341031465505878381259332228137522829198277822431163519231413612361731112906243186538936904433873944160418535741878291892967763639083375773540517743101725254076592631056135665753722209357699390839966959668329243375750570129257647164999859355828305457839681179316205030463906514519554312008108311278521569889170828075666539859822322095110884368298566329654664016575776192797395878897965507140188782790890042522195267233533448008828324826468685168314368176555982283280654741925541051764561016929143781095373804782598767591996686896701691106712473007209052964674015106696790625148495860831260731999973653136382484628720095852122873558755481068408141654037446666230191990118299858246031799423130450888197157272979867931190631034766167002923958392116938045639242018772967070743652021308498913724691108886691603246155549654096668188481557150341359177862333383635025899650482298981437426734176612938914290431076745988444247284198901943874678808462370028042278994686138077147771664499797637234939122285362934552848926544156418572739915818040160530687016921838977035207085258153875301055745613009278568310770896322127076212955217829409643236233382735800351520918181378643807256780226383883565822637273858697766635041710722053886760215909066700282123321041567345150892843289274800380405058828293783490473751725860415038365846437839201449178841535688507053510911454723704872861778475640023921974412342547671668933171690795117148718492536789879686053994675088679243355410751178922967993873934848511661249494719254690782014289124506111284557078687593455033507752501853494378959428278773890461766954180592379516715465589836848593545655919341511502185944710617907069205522926695650035605410045658277862557771480522963391661521902857538321882105971755963501344588594444435548902852106621907451433374198344550415175941838233502440207622166838447287349627224611088310737211305115298678276569777816396136773543979205943807244224485876264403624710257700225544942574388108598256600051402487116573723335655112153201230587657236632286315021557328067962654161320034475896499542009231542848827310799892625701608755565753840684427230941831735940171561524444393988596739881483629857736680301932212349391331487929289153691576939153292305852745713499183523581740175902761984660638342824534627900436833104708705811525759501076676407248193485797460828480770902561631721755908050654513445153464527423099944202806404944646433819875023129689601516841256238435121450295255087861334746544682965908319861328915005677315252806787582409745653379251471403260459397665877470060014995932116455694296366016778006683256842296223033102712953466719970288544132452608167308335389906848888480241410980056704676730440224819655352716260888307283755394301298426912271004354028577996616676363725456017622384418223938248912499328487402805798020389390942949164630048632433380568865067525175934968511961494009220431251573392273494790165672304299183650452482819111879295517261021940784604255101662927005022101071811500343177503631553033214295769437707904298821541593388885922951933670299048832014388351722668745153225016131541725696730460825451690374863792511086702550151275347612088176245566333256373472855007694898523062825309517248154865753759227103206425142095152392966535456350084820655095022697184104992459350763580478866771135408788356064697957290218592629769763955453205090561144489575443506231056962069814252571263814456348604442188480939238256804879174790145152651979606212391349746151655211887773973121107644590833112847578004105394539559598223681553140254902093105701201244046014039532302085288237898934929011484089830819772643004035796157266824366449105026164297423005062329980998694416414111498119958682380441333664524564981662129194058161085073705492985696603582642036403075238769330940237448235301240313807703714009078834167056428532791629944731828600791994518844639721209848855089071596068688973536404487345674756991440191417893411835034723933237202951378080744737087579123399382942400443898886049013512018497708120791953675605932028492288465034627792021312138332916070200306258325889891396092329644421343855166020782471376872159540164425227315755286284690033755795898922430566271669335517231202953387737700177875941234089985602514098490525484295743270968819406525061578668896704916757952949022434553393977733025684265520742399861645092859612645949629611212167650536491547373455965313467068921953206277352698029221753586281091655611374985981084899691330082982652587837323984778473261796915337103338193267689031334334153377265231256728864903786668756706591664226147256906556307107185972662312258090216116753204189965947607201367944749683002427056200196317162117459324087586182256625845765732667578683315052028598087054062225519815825676129387771392600490916135116588541000677844965060868728246111224881694803669097496179692136718741774736008090229787586916609831982002881929215645877514332208175016260139574041711137057917384268746704340306125654502312364083613979320403618706792852451432589781593266075999059562087586128771673205656158580991376374419925620021486727847196048250521563479776388810718438530660629087719386161515626315608140654348514831699000171251126183599210206909979520721771842337398250664546419482195924291796347805503628307123552300259660687978985035677866927289628524981970293529188030703154714350559723092101785827669516036578423125218790978480938289808928822516102396776503459771381418060818204491615212533586769168609149707156752212813452256115723730876880739645716368114349869688810338032522643761179492505577922478191177454399997272830499097419674313681591974880016639552994432317616417764689956084952795936274445981770117846635194899641876492693889299050068867529715947002823332766447676664044856389637003139019880451560725037494786014109724807386299546616402408303019033255460886516278877531000823467965518499006047866804952158616425592475448179589164675693229372283248161300927747522380838815300214318649168701444307414310872276520122233362459262437406229800989658217581361811894402103342502116837023650154242960112203720906680181971455826975203892379616697365138780409760959865306871444123095899691262197973110432531416740995494527067431988716789148691172688378576749519911572837974659605337242413571859352553228864669110472875011650091324272223358531125453807876039027988416850245961567967207523386554179188406925509479610060504328897541314289490686015981034104643221736284991550894929126985176439164077476518607042892863326315426859206864809917724302498994450007651787899885162747464448554980548587930479483875139758292703415246869185217003328592269640658776246192797316080655306657427138084345618118655766010662016911731672839497306467380550945360049873770557343683915120349783840164929993704539192201490133782950419549079380834339332693853053728197755718664658904697976754889884809964582250345737073311134821218447267178162459354767019465661653323708854064796719739786293841394000005316343889084779683429459929996548312573969479332626756004838539686438813209106509949281965184061688830290314873233512456565719201379488554581369377231872873740478127801352734453867051912420938333037799432248572891008227924452919504484719220892535949664743343345674659499394789402723326916849471417942854982791671119516855050405078460279427797102840671776018232779681510284693081975644912865843302945808644911941704040907180286128437767979771664359897030061847397033531193684496707877428500821283375567876412791122422853609035822181001666846613072372600920983671949267268937977373052390863423739391652865087083402201527220058446907278293629108027262920039632812230262995311557765247523514278459531680113563878292699423022119289005850920392424620034862985931400251375938815576095650900950763028036679220674901413951989850829601011245135422617082920142989703759599317379598892275417887481029156818467897921051833315696993254509841231927027677059182830716707134901120351220433429173797637680456264631606083418019883701882711953420978470406171711169403955776733291680872448471590447309717339765338625875949794671709204352168754513038580319362218954309654944174892818161571690039289059154937456506289551929594582646527556566365368756873616733177135395053452866127582566855388429657391562360206547810029399954609501798126775330356759168613615753421394507606239350742516361561698944082158228767352756852942916500076303458329046762238703375148890904093448156988836886445388113920141152649190446480260287552125441840541180650835994036069736960348201276956597027287059782504292411419727795317238350933515432522671841352871841833209614885189893431337850389090375976300002082947982601676298184407289384934430256403656993265584764541139186670315008898775199012449820756007665416515910149709304891866330182479355947934422235105614954136934816159054231403993244810944757597935619050386400032614173416312519237547997792017556719725819320478863626108159634708839667417668306378363539689433943546359227125859135199766995152014878769597205201817772655456241204618428124401394696103174540470325347730096874844581003916038222698894248056322607646901759725252428977330672642324582344308530057637358719309846826177406106056434112038400500747370988816791078173487596249557992292445696636927864801532905745482322811862334856560852597872274853289173147444616793021530892961154364779932766624399217296586413686814919017012149041782221230143618136871822907609355167590887362043895164413091107445602546109869697239130974371230359184513375363505787992747315329194450062850993975505116656071845037851243111943142387270307674262604246237572620708217707874801923177125640941961511021901642241350050704349481059425417281642383283309142437391944984736986956696657574356154302559081021315319096242861002540821551898451169279818934241101364667197913221879694797979788926826587687480640571971377601539405243305983753315297190640110476924732737873501420380002483937126447363061535620084392751740248634773863851159350867651168870444396009368398420065147367158888209056866674022113288371220841564521664021881668888474071497033717540473557689737933363475399495615829348533919231223963190678831944328858741764516441506909845944492349946018106382447863454010330017431255429572728363268381915296904523712340722271382731890169572298812350029585609075119461408277753944971732105700494242164951518464773325180656103226890979138504059839135754217651251463047087240193749986141552988245061662684576630795916723606045726770837240622617866200707914376078429859488128050571810551571084480095958650911225241666138397698561565181447702676578538756130170160972190951882922516381794153798622188745933658019919969729767278742642736629275263913480504490678605043605826997759672948650270659862666698969329676497453694625986828683508177173480558817114889993408329070454072576468104775963634480677219756287616451185871255676453189984545259663246587082449604094263349570908027174184940473614045048297123645516394106018027148308987948792011318585442561413397419714574072632930431226444418884120102236242843840643405932590092860627538093366175146665102692695153564545458683065984930372406614063930481543869791535081802692140495895536349446646682486776262764718416772027225183092799808329555822095452634815844329724889025757277868181220495006481560110632235657003255156579965351594708177515700907068580159892014652920750032265633260359670162499683375080545240102837359827713960392892227309835847840435340747298422541685517892434849244037225178902731739480373709346887337590250016487510372417712949518421579819058444132731315096032775126288591618993656378821744822711500558184815255910913432465908983537887406113206048191953231904938426564214230060083255288382319691969669462484519955455467751365206042526171113950217136280673375634860932809115558135329863685790967400113875716546360061350973224614136349798245553029008154160716754956659950936000711254205863864195202755957476944323987020213308474047326623027686400859998037684778282545589795132777927736595058208023579126276714135335507039149141418906824507177361363715058458674250245165485296163859553425791628554309794834040481816334423479404521412805736099722696181612683133362794993335074369525532524802090834489473470869898710790280897662963569617408979160437713013727155198753343139105879893116460861720226319126168678259194383092595103987468659409352056779381459976655444115672404983337855665090846165467792247971968824877900596480689091417658127221499775308265455579020669452283095959883790651511853444112934035269229476211987817124332064047923439824809725037409975899472989277827527571091309258477789780558177675681405246083081519942211574515120412206198952119461462637143636292140388303259890183700906853680091028698828054177857363755302928124167590967884126253959146983186883314291164247403058995581460519058404231176188126461408330689752994430861064966876958743846840097910461979411177186685509573136438770624003182268308563097242088030036047331974247901021462794671819723526636707038334589798196803204184991490418792408978637274786788729653645484431611678075087890461456719133414369545646736388798843605663137339482695556101923271773044884429321874548268982676355675007693250377067412196049863567478851704506445815095472968249588296407343539876527788202688502167057623897452224845289592954595953696856190022446321251897206856043167098317602140379869239250306837181813997691431693575468303766469566244151733066114348667494867852258199184065474890228523236552167923636314502426064493093538986554329114027345097493543998357947020201191482161120577090047121711573520871489240889235941603723117307567876051387588274186204588689199216591963546393614460856621330623151598918685754823529873018896256662056841714738338639815377341190637525723806842333695532575797996412146126138205223074118723302187881265367616209454034740195433587129186802094704997578664672738274427617685827738569894971050673102888487094282762052813495018851477135882324795223996004898352206647946715743834272289028750766355784183586459550142473079439556315091671576189648147315947312189310269323186560241322434671561537863505708673734080419406904933379745104239165375204924504898927381094709636278335357580042504049084538732960196373663894540500052938295495290435069162758757982403468809652789464389260027986738019907888333641083005626267243937998656479990038484720971647137335344939934741416499948613020900738723647571101047389567986105174888583855242618049143355359724713700466983125429182691245010840281584272662779546100319740831913321952686643482680482727846337143389985340026130609371856247407657739145749688055581783863217530316394682524510175095374834655262123229460326568668058861663643422585271677606628137057666850667905387822985016537345211602211583377976594968909712824473112932676320427211960537594750293430361881412019164480338491853829398515949067919526322184055480550133141986239215025608467324855166400960083734005118853011742845413163777103344253550592634998060166347934667712260884921234555567727021221633780382428507785149215897648980670445960588515822563037394452242652203173461872234003483528310763670836764543591333805160366015799663662849109083730946608426522021165036815439586500968763529206563802886400098332887497870162710513229686829315243970218878121105008091051553504415955695932050087848742778393031972349351078129839700509474878741828556752694555507789021817366275641444293836839701256880577668072844112546409690390177725227903233219828232354193897122224019836357592512512670663517386175744792440794598986758991454843424990519096337485409414824628494168762139901600713722123970028685178757903246878400016729693818496543143721991513434765771070423169367786027591423206266460072522917067770536532119494334311156924662252115910269810118873957965494196212589522537501699754488336339398817716145725325600535499017409873573682855143968041023764269916973804191201114418952761672840406922600922826821557685547881552488953973698400849094739084256543777231827279016934830621170146846735537613693670717692496516205142922053452023282362140699576288515998128400164767600631481834485897567342406671747412189036348005601356870550593883136331319025912431981376452498955523892437596774043728487403496452243275184381401406289806094711110437297143965324238419652552734256781053995784527639940870043760908463383506906156562412669708600236365354445344555337469273639675377291951704759580986329282564119466440744839330232166527666701149288195286089853915467327020026733827544977799085391801493890097069763669885731352272915935503102844368284885029856013682447192040458097369246985620944232926768825196570756742458255916896838143164788959174174058680744221831332933149310936840491543299269273461882828127003388013512133961689853398162625885549555674746738795186907278214111743161117982985886127349682512726922888654397266920459218821702705274422834699261078130844097156937069625339221778252817998092736134782719153763427603062315608856074499692097887044349476783813995103527557386492319403115027765592889135353558784731158003850653769041823104138560133142335410032238330465927304063572540388063335318507170889114530645883849403728484227409027788706527108778077437818921149339690354173429985429694889892755156856092965994298285016891709723265224249312628986777921447380053501430134305883005939365216118662432578844148823167586361184214108346760172161660562754243022889378922987560281510424839393480538593724928630660747955077641545098101641757275790951231652769250239048234259245129958219961517015071697322074716104827252337373437797145254111551702880808589630640567707081835957245181638458359371893391906785278458015004728195125217504425713677324249004544813429609759464191371881445639135036204011198719543897805643733013760280179744396045709337890800515327103718294619481475638306300463818946803992931110080836641291254393637885267848183220890545007666678350745285393450746511657796584907918126596547760598607671308344521930361945018244084020998426022769878215301551949574654608666884420106349177948196126566052342082986686837615559831534509060862927704739791855182501401817817136230640433385368406139351097829178716647752946840330046057490554818089910386939149320670900302324872092356539062298989985082979394783553845893592603520569393162138019304454495088744428686898205407447028642597365352346606486183812042733713121829005150518052220883933295459987821775630933573879267841147613325101219144888541521582080671027130940977737762672207107650076552877804937934819549727586515164635658176374207404025414537622051884783655217449087766713797554466162827221104189643258784956419668488841035590077031244230991920128433238202537686214285494338174572390224246843332603962318439377547342022883443763488380296145594821081316509651079211250663100724073491533358502561063028996621772445333664117280916984848766326118270652824853693812047282485232230638293786887261022386072373763273707382978613824036866917087068098265881948744056179289018983565196203655949735531942258861233720263999282751257134644511451421817509594891918123792484338886983796231572693460551288561351693198714716413111449851211773655428474728710276950871064772821696322533253420500541332429422143613245287440651500832807867219082859911682680783883237090438761178639025756525562525460538249538844095000108206414955729233658282163265459591768305369442991430936351031901926334842504118891641125540809047938662896252128874411437803524982756732825921601182986773192336340747349928985969527848603298935267899759933976371190007361259580536129354592664391060660640969153140142761206490880585135937800851289462567484687152393200160673536914087874951867487609287917925792924070792131559888293404326160075965942989869551923093383847241492035155535752626760081316880846925143732193543511256297516078077295807483526749585911045277345753904439119559612828077480059006026064124841051373179690300685118407657557595403202406194692442471668263742957354108854473710651097129531788482424684672139397023075819619376156901553898978347035927668554384132327344476066983972513272383398359066595757156221629044053079503354636436697788956304680913049698057016695982399903537292094608686630666989528963768871917502091495003345086189802643818961814095992493232213509790608388708171105416338630547054980046853728817671298611780926581227488764085620953312129912188379902247564545626663034872952766509404579703704750105185019057347095519352069937532247547268088010685277161871912353027734472325543756421700173648863029056289560862007403522689947257088012297844358861014953586094195127587610750094911030169096988437688781289436341157012522918482903651136093156043666056457198014212627491870155912386175243722339857670714789344068957578993233352587388719345246645633841863746525391937242820467633505534089289083793002260743431839139050938463082053424966153368627018786141661604927233350680136983779593884138634573628294338637599175515943629432635200029913426657154740468725816838566657493414106636977798464983703726381248266513257095160725386760887678118729018688364255471915738090018552618907588119369937466437771111791475462494062503573904591986542334631757938756051266540835205340781095971264025877609166402139130994451147995535794356101929814330654570719647406967090287856198654958499825657130344530321169210839832438758093814751772421304707121673403061648183534251906879322564877752947996485936033716388114462699825427928416380959306731178886731387166572704089977510176091489664285054294820549576539808013040765711560491367695080342350074381850790403336866065033545989458111634651136259887330731388824969681407979071661468797880389086534707369911755894172314409696382648098038170184246929224582884538536172853435974608166106681217345070621727230500251569700590391377501662785966440744933663470756982496034143871941501369136443171001044820877289408714082674537775162774919714074610616079897187587383808491905283890777079652269003638088619179432412614971355585421276575968270325382668251712492993409621894088539701736568173060411762646753324897821230828692987933533000405851490915480033602298946138684423085341421382779067141524152603849449211790762830430363378960042115087843765603247340739182280725896938263796565737380461337079846648604960968756588681666868402722392986114898139148803447090054375079736461100178324932059207457925395348047351804055604151412371769790340435421253686033211414027238059303195091112313544819441465193162437716290889314576373833858423264371693082841370299234870288615137889598986227038398089124650879841125609043963822453497357335988895041057402020745775075098216856531608197280994803377497892847718282186169951506065047794300458601251191269190447498043064628544030702965887320660294051932053781174483422685466150852882548470791402285636780493662117320464905676014225670073105955085237618437102901062163942765183247989002696528135776688221947510250816401140757738130922322975122811612398768234438584885089840751285474044601544564460080022494074395556945172905830261967318055939161494921502593438498200675669671006565711975531890047343019547825564971243225340959130342703542021898094162797176280510421571478652860789525268255361291292923622725746980418227874766806506490938841185862024065182232042076149768556145296389231576179618650708521386079745443114999364238867489510078240352113476966359086818840903269225261639751771520679141931229133041287617723802538181588103285910468434770619838329765756896032693879460107864092052794364144024324321547150927115994370549548535949336813104114128484029450469807442373210029978142683732344155511742801321517748559593536578343670243194489541292118445625879143124609693486936750519161302226459185437148732088964264153197689965995405288248218524030457782222374131696591299122250702927822860123393333638345536492215448099939974277022791111752017584482038514205034654704525539888481638888896122144297780732126138710004255172453575055785216372998956612674195224852836553277936864553763801634454229803679076381031456692411206570136550710730335743370538811393459207837193574972848742393216988558887301070319984851871232115992356668660857538112519038232291204864329097058370104496021853020832797410836306623377233897511269563526107114295495394994534713177690862732565856469468521949686358069137620120144440940019251354375947084065829074382734210842739993992841901791459820407358741817771407027951034444749184807250198531332710619058530965040751945120219596731409541789186216978733407403573233093960818242346918968901657481127814619198732118782254404848549564864336211124693570551596425974206062932695101042199677344591612329659696548598409283348157920643085424297545740475895349947220782412863652426325746891792183736355075392435317529413718252382647270026146395964817602585661652345632459260655323480159650868910273494326783930424835905849580290598707062504414571197389273684620100344790155220876081059519187268779469513262780534873444525798898689709076183368351950207651302026541621270302745084044946315517961635271093028333623919640301693165395971232098277679677899029993771896334020432622444844329492252994343828430109647761658780337240181939357210625156177465658477489125078378263055520800061026776376606690290738419329348236325813975078056351884530083120209261864227715214735712878400601289430292846992084258724315084905034436165712746114537395225922597057783375495927111654067684828938699900931476443972719636915936023785599055973653299138542556326871035396647414905595139186257710157469202778517559591930537271910530205317150837353670733315848538754725255825033298637141965880759324249539127643355005983696541999754663339112497786263420916013708064582330240682093978540666104852036694737911941533058979774300994075150546754927199703854612926464346374414737283454915765120522397564549688341403423699641907708926493131896280901073306666741594091868624941979808582228764514950670651608632243018298279863614399140670700080340781524800321551553644639903446698804817755764787895088568649614092836144690867747686835052632746395641657872941779948310938866536359496241957980981854679133796706978567766562118699857404127189338406514941657038509897156205947389966473037282832970035821270710331245650269398818127341769098672255030347229249923574383239472435902986938729153316389811346057251843916832465515678680434434081233498364907833135399656488750307408033754819153376442831755780454404515256606491794783279247343953065234102200205113127106463730047700802425761023406957813658598244256900465886661289153792596177619742853948137118822259346981384191629024599122691547940937804430584095489549396215707209029002289385948443154670874753564027900644719670415469030186830208590084166383268656276168333990245803192469331585506437032211333686467501013731006459604719487945822831355183122942380131346874813968312022660601350401827793879300359051750379198797097973007652560347903116698635909080681202110441320209464372483247365852963318939821120442102622997300053806561364875253436955853004768641572817743672445591576415040633595135719308830767477913764982777016707399471471761316617455844676542259951889399282612916050150437929483531556305018815767201933865972189970713660635787375822669248520581158963204694916217217018737410959624009286950551447966869153908607330653370904722735278685636920133853491673071658854219063229963355790706765431517750829081259873592043109834906339210828556742742401312286503993824536099233792486712857111599166866164232858476733927247715100823202198506279869277883360992227818767605517040382565419111285810218917256268039649231086482562622531636781992913679757310873141834062879989163636412112524853366020005886728408973290430081271225979954053162831682902008647824917746549506548077929185883068882420479192614875081667238584729783185019446796144462337915252747324309602253207326223110524594874762393482169455369816309828862868052033144317027453588436864246180002611511157708576530390989152002103081216786303807082320581053294825889265535153723172905070928327213032181327200033243741020904671646387983734606346464627682813861523571446602048170602918665054177588361200000483333956803808558372340613591971678878332341210775171389302281924539384768330585071072384693323577427041807652482380233964869336315206362396314878827646373939509628199418236684750790698543660487056707610487644285986684644459925114423231925391157306234134814330655507287988786115528707459363688095820331195742584013167107999825733557954817218283250100928406810875321822902155755943811083100050536356503264930590536121159893585433999601991229567914048222681850999585008637274553158369350847636634402295628250512514834241405444656312252620061636138337750770051952808458946838241296446278586501358474776720648316695782385438974116605622191540567610055431158362644865581184680360566800787959039423253479879689670855558489556837042859409520182355583925294990741110498609009015142280967056719015439555331929102081960033343364113683013634760985026997376581994806047695840861082667845834196790825301033737778089287787191297262993959384720431420616041385586148207497079757771050261479238490301539621302856348312830993363406396199639495431347309886955721700974372330366212133322058408550070092216466720982497644281400386885199793839824873515262067058782146338239304584421931789992532321817088877221876346319995655276993087949541967156077294514399013739136939877389631046198620463791665736914638143669685053160357224384771188476070630682525195375036373455255635091788667328019218859916814552082849887952743887030273081598208738406764209543433465968688819590953606647378965374224094556383594215910306903740558459219223091591877906364190035109427908039244998596128799519165448912948813304874349186014700513912028887957260219786265264086382908897374314215289498627049514250150697790596430223268981017381946776739173482506897825714850802697809387342837223730386888339548094558416109785111248941134163647275776424972132160219409923359762167464128985863948202091011172492088179883356103383098929004947785905990165746703472565199193052966043333931958107866217746148537429189954677025492838836077356169563667854451287744232831102262506046106970363165584167557473361867430073957354346876705649999762215398449980765839022957729420251216661499633827923309448889160292555487557854468508938049646703724842634685768610969428674974645048039815020445749342723032265720993398436477188899488212672174811435397202860577295421768579154755922836695718138761748612397493730072063594233956594181464541466642427292289838857722302016882195167019231399507203665996249346863901664919356353596954240387523042579617636754199576294976897729449140345391471502309525408551837475431449162131273944203799768859242407398877299561267422796410737072948751535899672926755535695567463234479951726839988831023746515392224779902801865522518891373909547736670773742274755023172504135704062358684509389962998505207600625689859269052233988698785398715871243366095698089917281205297704379181123072808962699839932723685158394334934104025094544414577762651764353843562420035125484756584731950825085091316102189071190845874865588003065805166759713261728994596573892179366511193211090215443009114322908612747503089644304415716055487917243467535348677278762091528472131292432780336017922967906815953117458415198965890075937435558108601519705336965810002056766620163860902379883306144149882313924541735340317740201259934158544272919343264535819658399686775018383793416136342581936741873784533739399072522914209250630078444078136648486551229393328357621270845064858053500136976520471974872085438261449217584042968653110688954466215720762559117242448206277367682023484664328119272362113997182519638685340613369972761998962786204667956362805714635510162392166500617261336650409123242573497566135122807188601604914813238200183256018426844189617708732482862411933356366895373690578805122482686917970404749727368128359458646370492096485988380432937897810443866923212714061387459491687812572701230789289149013297393427605687328152741296696607224410740178849992222547733297598184273040357142945654929371444679585946860981070309157000335373358762156803266886180893620419691446591908756352349143027021899611319472484421297388883509360638544047555624768073461569730471770019947992046771149494232332971251374952206552411352707667457816192765489775352740332555722887055047970893962101648223193836144739878987610920072776492317035658624123427150583459379416180141680065702594260069405665444454536742111616920633736492960711984442041250423260929982164740546795360827186820537781795812459919393702112208013036529202540979138914164163826298399107817922742700907826610778672399078211238207840807426325507817112263961685136786162379645884233810739306251346220300466750337301053563746640527910487875523638278069051952340963577294887783991580932286733945133517345133428589062276971156679462205031954282463242365003165735691753398836276223744557746394601678082631999809351287092588130247185101618304705613630348541569009767890891675691777953332713444347406549909709793811223189871078532997035609844425277338438144811898181692625806889790166370948566021535240342604310401447344062094709201146620185193745793235654015772095940147949953402739942516712967573379513918876139632457096898329816225756773914002454885349167591012259754843953753067722058340134400276153689247545223461572845848466711655798065548028629792329835105285812796087596613591621725586952471997449507651763794600521279408646762220328843337000100481480633622899192924290588310648744732667643382436569040079231490808262010849692913047788214794129770765652752618172005194973059916117756329933821470062445735613294685357161187392417961275452128773013494701206573307800410688841416194184966624946539405900844493628000553163973407249484112684300224088468451704272605064208736940083099086671884629887901963590320577738843000461013669112749897935159627167049285682542828894446142615571661270256397085478584200642798377988660998797273608413136503973426226806949962668695703575097224616480221220021406251351731121563871226202234481142984546437121180566546844384795333365153003767601739255409940463487832965050082543358822401765126775343387381510855796184748289774812659787298403142917831061152370926856332922143965295884203453937190819010085536463554632054595819551984185816809384921413788096343641063701958430165198240790239072938307314345485783107608282970903232006250041572588338031081370558665193935758965900601396889000301790718680585932687793079571140169313191159901165494123844103571923682372924725301313728160840935499749501999263633870592269901568755117258891599281954025851101774646174994233207041682876664570142195072639966979060059153117926946927218031892468540344958192181487592079154569128800845154826232296461953580107444809228675312443567923263571720455838099710981833535342665546944192421362804518248065044144659680055907938248156525392631805790462001832680507515012423234578724348986809561671957935068030905171009448569778026688891868706431607677205978361936130514020000196269245434079267858598299677812483615404654803830918925552135966795256062191316238437543553616741683115571961327563432713647219423497882388076894452325834115234993337214841153961436312793913482823618398018960857227060509919358792018473797913631077943565649505483603503712493781255617411798547579612454122131830677367380895286648155876725826913788911741967203348759519937166007020502613871156566626190143704320809802694579027586759082151596594187680286080469984264909611335870761287136079381140411173122965221854861725487025207404981881728340685103202822263846345079197790941590672874023606520082872274987732197788545179114267223387488833495142961454180584934082641080251382638391738185384840090184330716491751189439664329745468444576090653408320815635501105976972272665037854973127134236680165863803438589799777333340179887462676763645087593322340760900294330225096834804021939538484252989981863766550956619196880565596566629257131899013519797082593438690037319584271602552951321197615724985455429957488946830398987358996008178598427462240953417921416364692755852233610734660074142995446992802041840598021424502975964101893600266027691578556561150807811999320463746132297181281408004346323655370292504756142434487050693887735654148910333411959617172645382242309363534569862870285715814545235216321581837351061133212080321586682312161066392956008920818504544726227466693946683532752789096661582736175078951097054645077608553174414698349644206945788887021086613776885010862727310453102341809941906677181635820884834568726916897229858502380758175929165326228845608313094974939954169612359741314880918580085571225510531336294783513156099040694035072558707622683582077734767864564858798828097555597283605235008197631605564738607260364817856840251300530013719711819885609112178377785034627571084962357633034131173872194016068458791736210015084771548781838356476557712289479667105203125574154095806895192415845827619525242193495167367317071483917596294933025516571917666968612410246042754040330620823208438141624561750223608811470985282351408652778200366018078169471098260177940171786224207237349089790828564144687850138400702973720619872492828760055631529556605422410926075626538007907569284280693821704008821309719971737742101605273543291459663633269589671116121802733538717697200003054439509086111369877205603756810711150262863541952741309142935808664415558567482747067749187161895921163084420136968730910436369231160881657346533553287881154588606056298001755085687922843193733101796914991317458495912669536348168215220365916002196120089159206093502714369706744667939773449629679713055828907019449362247336286283101209200931692128401097979836768714083534490100137066316986829330516441910403555863362604119282678668621331212057934959263181828203918310196735533047463453200079124277065632672579223526922144256010155342747608221536664124871907582165046984008318289090753306902436125852752437060386105836317618226812997007971087761894464548118084319147772008884758867597492998841262306247969242946538465139861065388030825997745403842868233517660649645578625907550324691963371344339902354309649445228001326311534236265136873058857860776705679856856231630636482291989502668037894873478336360641978722157312537432604705100019445122857914996246677931118747857221110262594887452376906715162665986580770130123624156220592386157650561381300967929699282964088602031263289657744173177497682302923734276465804401847098104237206492308398420195027945566538265170742654906421887677223027673976026542519259281043509290362280066012926943129769987492414850016571540863961339064180809639187930590130387574302114442407184365669408798180195232067303266555074817310999341723222516311663956480465939812513354875339762329679824435056881019164166632089032177969958486886092172249027594119084036523366980923702894155715608886985222093050893896553741630202549509403244306502347601884806911669627329995393333637186793551430932490582007285860663134414613636610008765674196786976055919546497758086326343048280806620365914723901527016418585718035292329254409482630812348299249580640036716268499801911801859825633970250116552259405401110578391334402650805409113134174489355883627542190258963064112882816746211760618681931167392780121030511899936934006520553244339931217164700515004936255962296853033392431585788433463041796058323260098107439069330250582908475365911892947126269703005871393794325884416155182639509541740229673280315190287933255983569582940828370764532961270117295800484842365281449191455404379918073675436582080181060949476494004193973120145382019951870390823218214584798081735705970738385387274165562580031978267880137949148566109529847141791525179600328825627507646315404276859580498344043521410021808476347253973353126311016151509806717667793441116891162930378686815372414947700698353523203658688698726780738298565935633830785916016573361160478633222654782529848455037721298654526165668351257993855674189145154914198450020794581232919200910903910432584213856357037532875778626081961636021973986478412945903406018101796732127491456185278978075103843685019163349463980262546731082314274022475189073622157653530284016221810107115299066203493818860501527537717333457303981608643637729142654009851401696186539033347421276037365976710970965826191618169010813999136674840425582936874103320779004156352870836272118388016802897108715524682770214645553951952162934582595851874790792526401315910792303325937201987574677631030830849660785032616153457931850624365381288818826335122439354113391592252371623159549239259233502405218272026928084036965118675404497340497487371194786641958128439428681292370929736717136210444539496005203213958233145260369753598597344464978713987080831171797982733757261055387761041977031147722241909061338429394907495060746979164975983240507544038757982502159787345247977404868492054083378307367639074948981889631968303793191971753478674122051566260896219151860269903831037052026732573993824895890745212001523022621170163211472781614691831511167312084435289580178325830273308220813421245283361232162145178405723286873878863410923314661241335787841296974006386968569655476696848869609564976555902227810610354411608970363366041247088947480466205815469621326282911907460862293876155475506254905403308216072864897460114987938266800397850524442003446106732767856541617973399650383684534904155918203636979438961950186061559050845808363156877941449429357399739203192378684308135034052470947483282409934362923314968889918152879887075627611470452164790228797091209381679100853957609436033536383793436757792078242062498553960355778264662081952193735037796252247225203232620524698540775800666914170217560345256448025105543654096197675809672403091120895031887156994059506303197238741117761739319320464105675977700587638710826224943570239777084826584069391752568863233705723166770697536766928950362492179462416621279215151579170274971711369426876903181007671463921760964871152001607205245488236312215587818899239056797773372825512211598552756634746264113546321485246391428339492406200154149841533650139815242045184111159583460172720075753877849227187301087773133276840751383941076658307317907479177596820385112111543073494813303583525913370696298155715513017199058017678569991204951153522343730506330279859394492660989282963336420872193707969976648503533718196257905410239460939511468123779142453599624510982639497143197653379146530645803737510458957308957039087810952665059694139707376640551843515755346246898610023358394143909693179468690467373053685993429576557231780623401688879777860931452822992792523033632294776307123940797743210042419180336921821987200026879362283027561494705093811506185690239775979866302067488837515703651173651584019304400348601682485379610354255998888863752466842741427977105604498360215651297332149249881067043123216143225750151725022892163735943266139992462119939890451707108410699398603080165959522390567561000294198547581230798951620910214212277429073090113233574415834583632498680145588779814403523302828726959351768115916224184372548925166191582000770168253898977583580865474545649830859617819986101652290579713179528439714002696950925366394994234667722865934117511944891570063873798256587727526167877234922283898972225313104919013275996024680820496499394333875355499134926186078198421678881312141932347220233203616323961138204641403732053940654322902344151266462102713011096145938041402379815653899946740540211168704789485742279375885711051806221793466997382745940894765872407763814505544797440660870290507163799615729868439887436699528752225702751220799338830562481433606904298896511194562507735464868002680929552044830363918100783116400467423411611324916077096903488008239872541581277918449203221215727706219686179082570400286624708785355045768956115283177351096462362096501990449974358025183649435955896707767671917194698839167681870433685651239543935283430204793518944629218283989323001490389665095473160837955577631331066428139482283522582425737677529947691602904106012938447285837303491047784088422991519602331334671654248885293665413758902119123741982624046148561563139796514179552183596212608588503793284209379056472108248318579849649371373794756335549003776249885953374268354207473563217316814471016998859471190419618753480332161607027709481733479368058850685047835069236412144856118822950556291603504907973232949246586155874869768225052997725486002759006650533769916377187140696442017454544078009633654492989601015081769330563724478478551994019711054927454961056379930869467998457437592640671960265837098587342540510388211447320968129765724343567047880378716879516970276978993664430749119356292544550990399204010048532079902224738097216983632779876729268613763712911053103031908035401413396196540986036092645937979843852167279958362316144017790586706168554560455963261311425703232707826839738836570862409742494012456335531996936189906673439312347953150371092011938470482046881940451904115871582169628357382838127213876421545511629024466304829040784451399330118375209118581674136881111481849504632962024073272521465336811772900908030938854883617284667680436029840723859812091454257401326688903420607809568141821058280535939560221252178893506784799699834850002638061436966911951841960454701213500145580438846728382352901151244102924648095964687999065149248653161273657626886376861270974571430321923597599102246936552024254048092231015330058245187542546581232104385573774456526290612491752952944114652112154347497393547305427952675396532820869570580884015422045804619210958377253158971062882671902539683049289797803341994487918314757311297171490863565161113921684177392329859388312313438316585594346783783680127250461503439083927960022630081101908778700202425092837278100805396128988505597322079022480634340260934799070021147706763867919669207681306791308866202877008860091285655962259150310263292725467394202035225392498865322030035386643472375590151061081131478422336941766541074966093492973457748237409198092313328439698825683449190445297877159097432085390323931160156943312390254061595774137618866994345843496914613079515810429539590793914116308821408777931246446153969737577853945837442918711035875937397143477943478489443995655357707985571024052131146912105675827500727690345651036168589912956101596505507598386778188190637241609156017718125714615358395307889595583284108567998192562759794838285803987420116020706256402151804753542649352323341046236172142257816482477301538440976585238628051217452649628761555080639924460058001034792449699330766656961870308499513605329072297687305826701970315611116615829799607851864976848309777044201030919776248525368042841850059046837969186326478691993321522596445026080859392018458148710320554877885912120435408031529295838484574510199314491420652417964062047852719691936010651479009496203330936268757958254450163136838631625787499405034848726826841128917482007459004014887795985611193275596504773303894988894184633834444657968863476181234841040241232348070051326863534028629333525412447747002256513645777878122797876289859947400761212910692919367683374810532879750196393227608017655555971427800653046187837651520145231765805665776817746554756495697182484092848002381128524705961891210949802427008115147086496959223892763712149754600526246900026524389280328952269887727954424080511725791992399908882857600369148909531798490464975225113091398987747392139415699441187498188372807434064912380055812592751469766573498908792126676932867405182426651266116275589001802806748333152788171282347222988875796056622830459358444034880192527549849541659449835888365742843666920490918771186259064925038366781144337906069227544476621652134875227404061440877704019469685471800789966723790572328173705890829395204583254201927743019987355121836528835229399660290366964998612214324546467868556722748495870390658299172890070136424343860287410687235118892377415862697062368062659200756426103079318046634247977500824201237536609087393543152537359037403471623268230284522092536593928889490659926050219774765602380838886189743712803862952348462339517374117732097329392423664312035415276050521045955533302303556604502092116544825557357601715843949415046467120893798302653124862114122427460530255749110719252957319516398513061362612762791259484271428056204123774702534437963334161230452336488211087675619273295335206093159052015409598185566261895722050923734911217983713129556152224593996508850816606509545814761195408404414255054715783738882141305019685330551120235772330904687140147637294388748886865673274260471698718810359518621161991690928427581347461216831046840191076028364564210322720169704062250110560327492415869256884494633136766658323889556290733871995600121343695948125788069049839903887545213679116211004287128757046702966638197666841823524579117537666949715901266951915081618568362120674621711134790140734950264106101933472046041418217522221347028140583148942214091607860588360089231739732335749444105585433021027545166702875094421658901833551721360514656215576226565021506835929248785553471423494194548509801214490330851336409031763231224418690878404167133531673466077001101737563773691488232282231409518291039310023554137890286085958750667752337041298816945504707369675474810942889343773373770210657825632005270534163975051365180708660991792618686190293681413297029966276135318899158014640188661437275629604195124603484585475749522832120641562361435486627241463590384236246287483235972829822091748881240054962971872348568844881086116306317528025990559105497246158461069337681474563257023249751839271366130099409780698106263496598205968107699931030201501707417221413371176904458589592942523634110774311800930920688155532496294783075715733411856457045138308786284628962914276688464935934541369105401615666072459782034331043237717212050764980010564781126196469428740990729896347763551883896145537622993398026474566662484838879863321214658038315273124410694436702138126630670161798325022367476838763152488792951390567946620433800966841656905639707076528550997568615928274166651975567414562053059613594670459259995778659205700166887701045494206004913303813687946530918852655159489131735370954960091939851901984019887947219260403880807189201187858851726920645751634585342054915933118188329465057692615216276941649647482247037305986514512167822411772171126516077931475042277922639127826290518285515341799796705865478681872219337838621681400215088811310842187502699516746730429959732028745122754262027797718210649252431606542259084159792609432995450114384222444006325144709642356940350003635062387636873630715740949840678629630232336372837222588983565002665764104800769935771504145875259980752386561906571076375009416316844716418527502137300429565411040461970793909652988856322515186419480494622046070697605299343518365541550633171430687005418650994812355495051292092752301115630044536062737439155228602541681208493637323426226796174290624373681910911401785153617363792921893030744230957622526257620371596887888239281079810575636053594548440722814312080059701074164296833757783046308318537630305993775716249731861667202023620749953531389665751437548221137551334109237223527640900928135162286448287984597367364129081410578625031274300417139810606394738921349103435091787620418859516493234047943040414179553199348136613915528953081755230877411665249451588657759795187442183806631131739699387482404474029894492057356344364356038695078486899828066507941488535889007139026552379069087985361157714749917474293949213247603969824949369735954483153992164093657756935340086612417009244168717048787150079048520262139458751320864809247567438796159093211620114980952442581246715875202064460800986292592766922590544823105592752604247255554485993312212040685760595443576755004530201476870546433397808576556158106450314738609604251436833325855974154824792526453622772856626776613800734422210025545968077100244435977599501596431906525672900223453945683730912028609211720681194483563900163487820817230776512397286957273205041350258712564978320703493349492274239906830090891970309443013091103590748326456491462217603960937839390075258517217633346966927376575769988728764035400315948025238711064824594414801173916711194821777253789583226557660730680583273491771944817789118851718069112935425316814861722230906918688973153423966630364592830880692045938498585519663357451763591066988793893544827321580580978538131653019387336513966153566743168611767213810713436081524493153043266082900087832271436147689247701679994126198640527405841278111242062816680257766438190320484399205188775941093276913984586843495634753011577313706105965477066113108625964869044782260105566394098124049828988021544697333384923920508475585323019251920683008090658904849665195996291280065347970688392642156771735006740608007828104544262993575110747923820155779930983071729326906082879841554304610615347483780396578844422325652965946808229230670995258654885566370462124048161334417543112829766737478814866618341229642767217993292302003682321699192402055022734364918046349700117607113814638907997667173212655713419084060079416644330080008597261864183714851812780579233065157331608841884368873955774584976232728856268244994062945997719093869426741747121504656696999040107277657160408485920352572882447378466362169170612737588370265275648995874837724250840332878079676758110341782573076908430900542561931360737061984405027606577504758987021108463950646254374300522451057976187295611007923471467755842865145682986680112449754211923483940264618006473393697622475423530663998984373062470879438363640272728225111753240933601885797031752892028912544929166367019035964460858093559801408889812793411624140249505313762199498460871502344923218129488480869649091891959739312578609711876426632108055761484248414479780913214267183118655791607969762564969067994757901094294825324093017004534845553918464194216730646718359795982066110829209973214992813140119187330584357722005180621526658421304332161962211490208639407796669040716420459674852905195433875710686271081123965491171204990516541199503457621261266085879651710721798799236954758401440221126092921844228046351388746975561010949774583377944405194159617101532483424632756555293868660473573315000347338900064812148433901224515814544323974067762461594094659176033280835007068160577065327393506641661448983259695706406794920793971309017757116302982661468281009985960763339315895960392893221900049358653479001106869840628184691002103600541570840057290210616658316663449912096875445031857654450355895666524788082304395257047141429626143142260854091240591183617301455780113868500919884828572807800524792414954119199161739510466886428848549551461576982061044257999178828968506393182517652746588840995344672929520082384295479822842670068959777126414385956248255044598091867845333781614970386592021193947066234429907197068046099480828028455025305179898523518870384032373973486281359248365795749689909240798471482550372503424139672730177548755867677074900243666286483055712761196383090341717883821485841344040211854910223436519463189603077084210763348828432344186414169171119176196764970599619810726598762818391349259124459169513751191640147180235799518531096052498538941723657026109659545310936823652159966434148404239357365599304670545147627780379207489042205895455584435413720108785095311191784055174432446640709170752932692393632491732595569453043969840099184889835271179317175691475594610744663483510886551696992081621566341280304360913132930285542844932046453110138742498071117342886471589177779277530290243099705463115399138585858980112096880312284753464304723758203274560971512019955658627604071138159101960886965877387618844277162755897748235354623845532607460091392398200312760809170405731557047445224180928315881478313966808397861176397820443571905728500063649816666149479834067716606308291973411374463455831403058834839926806463148103292505546165066714848595209127996986680633908137918222144613056433856975153305902729931495210716076546852489609732775294242107834139881512792191392325327832948221965902130337049618168226232053673518448651053906953710414267126423652018414270270521922005377653736777622001031464986796249744032942855542933631554062095878884416704263130370808712763862818691434436780993441741231326951603616693286335007789931239543264868733427262736818128335029795196668161359899200856035956183210782657616967531979589109493062104615894962456048268369931977874633027838959516253926324275336839726641636948778252984492607730041406649844609654669361859619075031516784589221254391566189317859852342594602658026231246803426826336591332759546248210438335937270639831493891644754962415315387187749658136052158832844140894532071051648863330778545196423636235628695017134221394399267721663954590963434138894126610766254847334847109998290232733177036610923748494906098392054154781160637359834928317583154747790603923535964132673489035436826381115427353140243920913070886158875457793703117636602385497217938899224279661452999656132456394131550164960027695266825246065566225250562824318718634700940988048023130404712904916289088773471380824426514230112171257615217064255853291410070642848938873828368017315158692844726263659920003138047628808613371848891146944684638586586993219676719787301528037191928215555276103284619555384023247878249203064595952448440306420342725003466197001408192563498404087318642747537702699313044135668124459774848396919992445222624730944501190951714887872765438823666353435216624239181374752388487968200028288620117151094408578595857406430747103128396373580732261224668526828336870586381118402862412447605616092702321357377852029038527234076374706437877956197037932030194510854983450704599787602973467621958383242883653598879819088195981261072472938393349193803575913267331335936748705024334242361932051216404229225193659358192061535877115809041455490130333379578960515209403765755373685067774542201403190363444597074845327985303592751753034327615768962542993569522217409099628774836500443934417998914664864110538421170502121465565179646592317088460534886222730080908968864415912689183856334825260351516346411895769354283071498796662708681999213727813654994783686927609790991551417043586497046845251484938039710839343446702205586714398673550180669068703573810996594909965185844234464010651479658851711786232524464449770071360193381356508259954831881659283259764652881517409844033171432815577190413030087352209900651476027772384850235760767405089144970266310004346051476169228312435469639478215708191678689860653640190594739159190533568833064286568686852351634560523736498396307851412475710212841800749445805451870344379539971568628208031581865004501130601340192324171781708888436924314313067569153432715875847068540840490195337715116763447460169427062639580499656889014580539603406999479014617691300912774147986827106434148284144153706590970413438754923128144586212310556391111608438054680162549532267789862401063907074334786284747172306801340007900747818995858939540584951639789279328984374762241373846389574424823064981170699126709658498255241952564322708393033184816669196571576659602438984292161647712885216335304065814434183541117956373060848782799180346707197372358650850638954503716536289255625308693681066377485454140683545948450792213225037856570676682355949342087714048739464030005501077229410200507907790379608017035693650266470702981507846621387410146512250072055526879863178458434813176412039354909175576479000994626929165741364707660892759163501210668578415701033177960192183827799269769240995983827686658252283163893701811594821991832454406544390713047349773080397805070971446196308602775121268449210730581519854893671316888252666281849284098284363045485241920803568664001336554748318439235181784289197750968244288966055652359873754897981750550241168043259502778889303687853115539244083068132666963203945875614257427635445893950506506785161019907893162056015342785531077796182282435743021241446072087766646707813862779585421691404718242444297555202884782183696582509445862213179959632388553789293018682725362330431577481556361362120934741635334428853174683503799687815630408857135084200476772029873724231400033055556358006630163224768652584697696391153736881087335293701529370544420490004985759947986198131838516636890638033072992035308930715631477460922436151676904807338907748343053221651251703769494529062736237278561219858248248380573868515479740341584308965347197671780892797564107480907165481946515313555348931613873617856885609285920754807491347036043691346679073260336614607367608900309747965880006124976261139730321953479270138900277979488603412416067872056830789089044973831326063379136865985299271079705183208533177470709067969824509215418956927135189867871578916301805452631311046496155173435720205725902830720201449641753800406834906734908213001158951202207323151286776862896853020817741721125180827681402660091589315009246998098286235292162677482101554131557105006165920546565162044877969635629811079067784498255913127836041363110494771666409139765974447393918712685833954617342436696250746208347649728175937192670735197971743944482913355772880580876940402174187057988133234274801914565389834877027309193907509140190164173185635458901301080391070640165442839252985377336143523558864984791459953305025997335978444273639594462535560751772685690211675272693409510845250771249491048528025361644160019492251848530508547009716307590227623332654129295341736787154763134295431986691410691758546893272709444415521627251045174247868884005298256753516398229553799874971986152470886254272498044422270543643201431197479237746779892073496516125827618042830809167823442184232154399426116639689012985467584966750528604249260224147269466346313450496315847158105516852549497806765950123049834109377238985612765210526283141176863563067273574765644007124550472150345042052632001483741219962217045556509689474254777377469292525555459891375559431061796811842294891414397889908691290881775150865817982601276824630274361628672007539093203781859274747976040349772813834320774896010717135580875760956287672352556857004017884143131547711722075103636096464575447156330104702397938191369237276400339940090385060584832407259870695313885198790392355594971518593960765552932216383650514564607126053220338598263464404517981536051740087808700476459927100585012796245678480727724144996863332407185085044042452521601451140536671730435937074806386976718781313863343667455097444061141949717144415763688569864211580551031763672671483237341543725365330682688816053027958505129398470095029803446672705122728038469259927168056690419803252599411315567410278451193932798847418612772544076970766090685583631180740428582893715464489998618844964299410370756016940459752795684084244592997459121124069795542819912464330657099333932708876582673921063259484563157185858827771587687503776726714911192323364952598914861275969414327360714874780382473475741595559084374589015537621964144136819514449683006208651933958177753138425411189396672697929007321638650301632409969786976580132930234720106678936407076322193253634293675356027032538468826811336248993918845052876819138159155684593631578782543632006975230416508575528877070188126817715808238853438108443152747642876560883856611427203585816182979506747685634971847607146186198566512059346125524473654162586583749733331275036815179922817604789326101649840612235223617003493448144538013883204268420923945418225110009096970762882768177789417172379285511758636117525462248116742811484914499660697084998939671751031283117679716110519882528623098986431585812749688488382019181702833854074355745432395483147319020537470721677651951127834971859780179715770580920733946409527309899663851614172101672050748617427188806736814832168812051604122833406127477721467861107896614117951554093417035487876654777941106014431027174592169959599602859411056865031788278936548762555824293156985109618636002247766619493522128762647247483816197840530136035394642334767050765391227518022808803717955910680437024554157692128872301176019200397767570067858017718091572551003038706216550508107496517257859806629720424953692479392739275194883860895260487732325677709498475080409196252830946693914752440464714173881730447427541452812955634220713306091498848255182495429571497729167340679914357842780355126097075397005924291456161381407108149053451276241147195306594639563347852881881072669974291224518585207462597593645087593768587795363188927000471106571823091664894543614905232417796762580677270183461297406960975290911558298548176215855738361885628466136046458764277540978766301850342000111192151996637284884839180027421167097507772569356930503820316737383354114697899541914159906672244508825220046597695241165233671085600878894500704806931395233686152626799886980684000161310368598397769654808345649184818784738263879122515276080207667254681116882157202215956852803680163344408797338462217888661884876635772804815833002292859561152327593120690414974423306874619777284298273426934539500924621134579517720237609184120510438510038671935841611793195114643117251973407848278610463224424035588948168655927346230610412400270430465697992302837045735012250557377238028684122007005273929799039248959137690549048649205060041870541198332017976590396510948270399540829376038406627663772652612728609293349382448754269196980398669849737727242354271905714503996888306088902602821260286013941818549950579997246375308678446661024541110478259760360833766439196123542679321939147650470988246172371387038761988401569740144185338798731576289619671205528600305484214432969264138977502522534547206117379574770116540249875788467456549074131920907995135315614833855843953483719942936073900679886765233736309341915730565952381167467246669642747955495979811594480478777540217047645497567150919265579045407042978649323626265335836322087412236138448404863398317500009606308606938940025988182667494458711538082360305602523066878276434598540512542721804285458298310778217463231843733834191297266325989167625954840275804873447776563955445818511290075176975922318964855474210881293991878851969854990905077328202213993072193817432679283963092853746032030772228429446764510724690317049450323212881605537315176664874115791809851469297431941455193723171821544261961410146660254291573579475290033045106948262630891729104029944680003745507822388770565538144889378682875753754735830515390313359246024325483101041918173319792366369875780460115975319244037333866338911527516598538418429523834469663976111973308840427963690481408126302764482183461121643982014404792978372369567183942916207076239403075966832298207215917492588878310582739187545281998753857555323052643966839025804533851863604258635005220597563072641872721203270961444911323459761695889116404713251146762520600002538811100031234947164506651086391654381600071560615421320881919671971077001760600651184190169330564210611409045807540945275039855686350576312237231252640738095100585031917276737528530218153975945711923218026155875801642511844317800352268314943511893718835418364614629457674511763202463003877958456332542862949237983931296952284032898596403631959538432159752929311087258797830462494133993577049025903745556022435918451922513493010925491524075099002476441476830481956386610809006152157354846200476910271118116579447612721194192441455004779283932926962431877258076938659191158810387623185926883063202922507841266429759743637359463159549683780000520538760318643746271758246769076896654020555422001465481779128210575494050740998597104716661521234617331687834203086785668321297712354336676899299547454900555065761395436761127662048295218130993890251590642193691433548353464628775842572069709522070450919914268569505994575571071509471204545795911725712478851178710555230578380544642822472433547344222133572089866877225084470644658819337219102724367388243262832580265035062815526598393796524462491010712085490345621516617222972894678807715068477488133836623307479081671356516549952127040524589979115314229036798551295651260730200776353394216123813507933785366156382797870474651745450913775282602623311161469324169893382743281630283351453829327878880825313214692026099985396441614624482624174572577676278500361586016439831661008884172266030969366111007347281016152778949550809650958181614746014544585481476040610798584410006737313239185067218564458657673394578959149238365680393425694577384162159760874760614162367143819133772719753029485828587698462145726762292490720013176047801405275828781243531750020279202319624417597810874294176274685998597168164129822226961471391498310010158722440832567540459918991895947498571472141980144087046075439835377835283509806709445269150261538020541596326556290715496871090851814436455128224151235629695632688388981162895065259400555834039352509847004310540054038387490823161172688028454377857591447098146632875454097088147784463631352845062386575311755307356426141114589676953873764147894401380454487597006161732828747450969757705958623272271514848299117199615417381840372068851405514805243689163419468231152049060909932268166951215268477223713675190971931076810342013350854530863841659268698998633554440311779652115478990778357719914802547610549860908810168936709001125951366291154677088124670564584010101918328447250654735339959746775128092426839993972812729156184970221019537064976260297528153784938799604539869532492390053021887439149980284729774628176395578380267310637515295218558945055420051182936967062106090359770528747128898640356606188011284442675310863282792290306998576730104309661001510615668111159374652882591484049693447792319424840263777536862676228283406837478313511959520641995575575124954631274851217426093572880553831217978549090364673436206815795943326947106388737440373324686224523390245739220156041956704243943955480586136741253791159086630641320235360661699914325071252729828299086644858791760470504650715185043358757759541117053269725093080803351008551235709769763069596100688979118185300019934929884378425874338083280783953834604285946871346874969145772549175485085706876918103493915820217210976171652596451750287879689013620586457479149199424614821393333520176608008781722074527685189204799400981152813313329787714587867693084215070109374004250826836984649683588840479531691836436433695791914027388585366554501159246664697660045566036422016812404226912786649387749526858078766680791787762307004098727976504381967995615470638706273522922122202935426389686460190209647885582866535564785462444992423500896638549887820426691995889152039695896900929164570932734481989077959769949663359806455454466401164130812118984732377868693472419263027719243582558802466559767202381966577731882704238823488183291471263321090223520636181881743402085836624429401373750077343886149299468102741552259814807381466660642842521084810976467864947964776087878563396091182834250622746633432986118737372708667104776680281565307259542017798489605625764675492053549232765613435568803273818861103293254120840892386659473877161495129618014793806387022021292940461542173146609069429436922906750407562500317063892699231476059071519967050070548994870700224231879300833789816044230121758232980221204760979360021291068816920653362550604034035283476202200368348227331160067151958601212634974939240282123568219799061000425873492233587007307957965853552383094721485770153462336611653559851095693444288262635854430515955518537477341343311936308898686413993769021425133519969138504376609138008311510208029902465648135060942830427169829447436712010085991274672399409198624312319229209840790661456484927815791725952452171780840549213517808479905637920681712014959429253178588467918286591048096651432791257513147121734565800603759489696948217503089495521624170845090354609722365980223176577735053495841346665131448979933228927194745677267114219001777584793872249801856883703646180746360043031820503280327498219592759454646692241436027846081815903418568585021559200811453002888982249186062342762945217213880393588806825923854919091553698907682450128158608703001198319634441088091548705153813924896033648326689046302653936087686417176145804871616327752142437950626229136513333711618578107663365439010426715502246108682080642981590452216634606399916773438407922219756940093138546658167231135699854439406659194293337219224545638643951123871112769609506338693163039965886592117631394834394249499192868960011648853412849793959274218054831622012339306628703246830341862598466115248185008852591242856089394375741451966711630697857578262149763391617790007117746620086713391736789136683596856777329917857373170798023434498352470048440830680672964803773372833317723214070132962853218975883217376348950038924131845138412430985739009605731495610369985087615618996783719857897930071303642728508535752615380883679755398606705302407578185110276944025515330069953588182907783752229813620797102236831714799728008860345608982086122249753066651363538952484933165608242458234539545594484999809593666675398225307450984436697927765844219664798786547816332330563998820417002974097223768011120577841349813468070453603580632728920277312330664631430934128238880391880949748878626982614170167589125030615262888705337032494051065867174579267974635919704670630890927332359448236349593385031502999735188795738247016894721047606784157687486773122843073959557224968165864703799521615832467914103544022808342786647126627171427854070964701976301616049649750174144338886963687265136580642216201672620911710625751303986195574991730370883419415462512600223638868000375048717541152702380865578977999435066957650224236381880174444018923284317226549262363585621543674854560130384028448739369282984292168834370464848273484528965133418009121244078401668772582365836962578303093163968694004635010972675939326138968310673682209078746580256429934673446680229600180326623847360151336771268755804495946231056449367885708507467298428788540745641789615612099476503474572785249679397226888235770178477289866041926742803952931615071456313213448755788797516878415201353170907949811043365179792899303629512975753194132622478647341360898938756833112840144205476076396071962857532781444462081436345070285398580960936672576932435112345477690359170691639772335213850387097119829479934032565112236551636489370231909738243653886447401301858919270847710820196530147172638292470727706879351046434028894556147804499287771835824012035181464127147443777213106650394491462080629562179087120095127957580880189294411996874630666180018468548399264095453578373234433423592111911043540742919511277446167046586835314438017375077838087964969713643136089176206395238765574655530317862051253465364301095552610106800211544573682485522762547017914447407527687900976299179616733819641463888214450055913159724883640687775222462634065495161696413194143916295255600663014248599604764228960833063115070918738133516653557883874051204925344134968220319723032577489413146451026088845864460129126333209385716152018591636241318190058839699224268698262847104094401149197063820668912190542163646888229864793780629264439198397859596064519244922747828506370363841646240137211007088459305760064025981201062884163321166444346839693427373524394784863275245665177332063152909326337928234772365336103265365047713623062444782033262056401211014819500265641918827146356092608428838462839352063978315992926810490847017775745633280601662851981201987624374547606304901453555400119792302898340870108781015998858517295973949508351437971529495319555282234817395567630921390759160383773159201353686521339601446346677024648648652300825523504757458239589663681308873578882510566656515110621692349524609033569298694550565466404585600459295820888657717388181438164285112555985449655237846328301876184092805750504396967716756285092173682447454148622395547387809636708535368541722957579186574327191026407502632362161228464551178549997686146933829647654884254131849778891084466780085609679081266458344773960938370059537127511140486132862548845268381323288623024134939740730198900217101209783865838792092649620047630148011891210151812045553375326639030600257212460703446162256141320246576291406668799477055776072082634723161671423717189644611978294503920522224856170557126230948730311798827955862691340694629648584949054097889751622009427694618817396171047646043329759019808048194816830555585639739066214480308681456045033622512141759071781363362123502338117863565092006390560437863079229901739162659152378819453096227186644533968848115200975737272410214542808018319050503482440019618526049591283687596656206955116511734187324253577943267190569847594568585334840676207403600970340592696792891154412483863967358862842299247047551204667027902467848105740079146457653882480766201789325957838568865014231557576557073090679578793773969794399635560630275737414820312455316027804424488821980822043329723164226142049783213306321072373404505014965082957480391216556380486683901724407319531600790846021894813486118572089363225557135290188083605693778279542657336749308011424081465511906087663558820226327940870136933381865611764293937896494900001230987171549874679123389051384250256994989853715318723619707380469535589406804937125742037011626240175702799479993884948173271004170684599847898283968484698854690881771893307991760015572953206023167662724177237854971208582571087016039252984729035178692345762959679805642831308747678543276868665385361605667401254317674189374675695539716198716702489999318782749967201853997097321119340535197104035885123525849224632073736408950023574415558508635356414544017451847985743434359623491909221416093078912091937534462566293039584378501583177877857899508206329157761046281804696842985531959373375979793087606715300571760469836967017438575057548191064847537945428178546856329621898603874146514997111988287292010968815765275792369900747287879998138916655040802172050878780163957355971396780890493007423659091556261820104633380176987279278933680440172365386328344312389018635968957318012867657893154694233818585574641955395148423450653742523381803546964138082749079700675331550914930495308799764290293962366997231817512058924434450529739611752474224986217055921505717979604511608270281655121697971785686558857040660050561182435070277770655147144520783903017401586363434812079058418382889068971917494771688867657462710913493093421777008842099267407904267427222513213923415072087570953196016231697790964850623847057956585570108553557120753842124564960743255213489561728092103806025803891174778807810453666806871342890670239475203794118488484863154883101954598352133886739298823396325002943141137653918700722373577537702369106999392371707844435606963745528154444013262434723233557345401801354182664383625577577241171746908163659486081346501049855461571949031626443232567710836518906086078173557860970354088455601453715542183530246172638929939418879591535130508953638647864119097527371936212023142909655828548272041276088006479040446716871416777765749687810981725977593716694784266854464234524507538819545387983438619825076308303457612444194858926541396138551657578242155983898640619978334009766758564404282838761689427790713726357858187074561065899731720687506598078754533077970767508461043032341109189933374684190210341610640750706935364492349314232124954445846127097107389109348659524829553920165538454274707686421533669364185052772604095814084188956893096848097063494013211473396488392019892123263196744281806167213240493169693270822182500593881817362163284843067610546186752840151201460509078236839309844399811630594981960779898496121763998618766039135723222476026025002152522509687311058441052030843778351377000278460770431077568690139424802758402777495804185054287320586321428823878315230801949794915108565247747103284257311753565584854917653900999277641371087490371812358858336921359298432044318378465109938116853199633674709828705919818627219008949466647270369695979291756559653371843308255446645052978640869031347323175153649507260267862622751907248935200215539727338041109755256238185296041791661078166732476827196944040977737420452023526109305087063239696678064818995982444290438183115106410594522405979014115457359070466236261561429578269515665807133585577528659582899718502875182316423541184891709038239656635279390558371885435360709377341335774392090417751346097111579387552933574388097134917727127809052642383954058311903452779977614783817312139539698040954133789322050384984162292758162216318861287417971710484181298795164564045038913767040700611657235326705353361971197693880468508942224263151224841205394128203254164372609860356092727231515806714386646425851940578812851461110857246194827618349679707254715602268511575902972124279678970618923320562171749183325598079584425651611237243866694396096794436744848788968760781115613371334734347567469586672891729116920213908785628024218020658972253425491157090391189345689051053288807584928571791466841659004780203553472961235524268983338663736783351688846647687335729496259764904654980882479681344572239950892802442292942553302446174164832998218151368225893096264111248698544694974267080649226636194194729769964901960005949195246925163579926323771293103800638223855821107085427256737332581825177080133572732410736164207420787038628941725384586467341246019580348740177478013477296645498740419220197704238986509198802177931490650976431302383311599447742094170735128231183403807584235566811554156130168628119587303423469026247351746012358141759552327538025723551187141711656479977969315015527691897471134313364475729889526814669372733103450785463570236801370416888148307964138874251471887568188793352934396145119525042271160621335964765461788038167704130696025578475963704382792565964152724410447577481596591666074597401959427696624675880755537553791228109282408853015342745969066916925601460606409220786750691004277617344146386793161370494615421864002190260666836128971073397922796313670986382042279187835704796986121660400520410978162382442250456780572391046872788039148114843946182144358066398607294871039535422198270361103753977392367685881292777489771986827376655331072698019718983181157629162173607164496536932246714673967627988499714335003742473858632796526850187614370185812593066823797378232153550538468271540674857818750500433048564472183313563193654760785823844744391561525813435244607625401954194933420808517320227114459417822896985404638068800012865582279473538856023913867201220987776651552062616222401795358112200541647963411336749766796915489273527426571172720149777917294134177746319051451984198182452222549132371319467950978610343610537250985038520740758590082437101997573864404298744075454181154917081255370871413625775667632270323269328217403825310542487718418456809521862284785152346635495695162046304565097055089512210752185969829285535861577811743082154987538293927879809674986500256192998824164709694180356069102452487946305257533927066509924532548838408870624089209196214935441017774862528476849427577384516207132547931722086439840270842550704388804248467498159412127961237045399947476732186100590164123430415363682797945618037330630654983008985421917039236400271172455899939989224738403345412560648864567993716972992181098549099718743242341883963488954077522275003843422015046415966566328859402722160146620242539149320846515342821510757386398850488001006843904233163306764788213281790947266753065438544723155368415037800701407836181311727856152036735322511847093906903057346955313765001447683754287828496256429672858039902322828806050680994254738318623643717118149732117721739035149903669353096521605809239827790008588820539149126050818122451899216683948709817442204227352335394739212921165185888956525600441099152760544309616209279794214851577778719330237595139314574905970245109012838402045362773650983179860850509490046911052110888030175136855338840719654600984456430827472223195595326984942036258832615409790984745155697435236285305179004868090124537742759551237254652580436709144824818366929056201566228314289370147520051705435775368609366315072076536983686861918863614714047493414941444434198674102763386472737875331752930371282219505775708641712091839447409576903201518918716212185351904445908044557958900551372750612300834558433490453301864356440632903166222589859394138733258751310002594936154045724875726516060982866745958108579732920900177955120840504276925339358428307198351752367185628778630740546127058931702836720068491574699249404996788572648386483398555954638103795227947427891544767903265834230226817347443611426955843086990469677207372639627135979372122689997394885980253719154304908355973770466073417325412189806970020281788520531367032921761433741899523885428157253817086704811522156052169375969891164136138736099035515146108912522275403847571421363835601676794212635727256748369949393648531033814614103965356836692081889721884496971722276437535487257634832559728727416793654375372405930379439399988174266905809858143680693120365177541319336272144846147948358442570701788021944622702005301105596000997230638931941259070348316701825400969233136501509637456622076337406812062315758651711386966982202074246009681507443319479636554169605897357908620864269199880424474662286125909388575291955882216094924088825196315678757082565349756362022541575993671763699279146602426926816052804366829093741123279330429641855349667689446543183684418038239026122375802513334866454956979747953369340314495846860137883754221664681147887201797669808873763670119067575653024977760847453013712125464450571835573300003280281362125717723950357957836897668796317852183247911738628315623892596696868328516406320427625787732489067743854525416755272261813117311568782549570192863241136812109642745476530117307184746895451229358474765333982694105095020693524399978765862144026500167853970382504208352512683019224934588656093533646385807957470477781478429098327121754127877099342040408958075088321952671415349976402793208632162645104526077762889307593452442585623036682610501528401085016719930354221374685405658275882735540028303934102492001034141597892776668601412451705159099590868387137529224345024942805288723885529570967146653994841496619554657613729329635587143693235628931181057381046752198681991426713709839085698423747295297580321886829606123511673249454044486133661582139770704054212376281350426089575714757474796681595723663697181221659790957951151845334707295083958293865542952347432958348381593332648606313970535470351844157970440598231099406264134388449357684011614452312394878547790913073383785682508479927602645608630716047460652448040851606199947586621874697876447653853768939823871854026202870811914708426691218087646719274318341777849768293776322478739949447756256450985669505745848500755008267995004569925667201951189505266065066322064784329100755932262284382326067160138753732059485384950437208524054972959397621351940895761838464254846548155565313430548518804105203360579537371972450607778760428433286066302219735701066360913201017767577021754683000809436385132426359162491737894592057718905650900433494811418060486085241850950601486550594841765437498173375503269316086340273056034359113293123439485774194328683122255574825340795025477563550190325308095417987517160326959184963100510573771881753437205596828850892617163043648287913703708489242324967295819516219481031862195079664782002524121294609301676802367357267648402920318967039027507540317825881818699072488215190515993691211522016004772315485612850423212319376812998255246101938639020558927653066121134843703388866432288726663335621730192095301757323580836559196517150584406582992114738284613822649755591235939843326419160793521790190430945873138273784146120815138810968559496294533691488437162144052724282263516396571893596520003180068276231046855169014442722425042936293793528587825889403896244792927869868304856658681521047171047558483267419410930852958134486247712922974734007830264014248627318636482592568016581076434804837247260370920139061515176757308029038016964819877467133894953716929651077550367533155961364716224036555910083616434085250840932048071967013667847027468576261984077442397634842375616201753304741851030828271521825530117262161539325371144799742635549069070689124902609107362373073923987723819318256245843340942451454335869805687258978364659495411713663118447374377705424518893485764692448248262782183456334317065554642056102030135593429265927684236235675345575975698092376029813652982862714134191994908070716234860262070559609671302564538843443356047807346806605613883570102220004054797682995217489366057515819991390578200769793431077022735222434947518898475328758238938547424312018692617153755484537016710722983932524613949889181720703060029988677882580445196778899584999010221802575419719903287953100443325426859333883554502301675292918234342121144239769081624250746684588327557892114575574260238774317389229575921183866263686981877205079367777079428443906188894740056536284101563742028662476022380109349310448392312669420697712969802020779405576429918027782123294486110351511811524274645236784332426499805571573247214570633137783045590665233114765530388993508496858520270153342791369961704438266353588795827245612146022411056217921289455855514371201323683624646839482828953620469369539497901825395184458393819289640695221437367080488615090915297590072278964216593354822362154370054794051112272889743726382730098687209574686201210301634751652555170356290275407378853838857894708536520082696314634120724655913211646230600580804886330537651705532220623000541021377474065058968636968741282639411411233652269073286971576605822918247163922700363411116405111005085840363828391362646064776021325120253755764880862598829418135421911281592253681782151073646581350811013831240255294349978587870867343396718237976209453551820259224155462944758420507599115127561918005557966041037031993351710544696334650053103732770279194358910530149601382006136994278774313276050243532511269000260738544530269956277835071486877258322347380643581271131819031550080560399853245408064621449893891499282347871400870855231555222471749019301530573775821963211484332460393951549197258297096804668890072804189218564714112406114886606043603661643382415088529915851210451188207941695998277106884137845146203253138570714054214490776926721485077434079282233526364425163751702492764553741914668054229283727068329598514684694678894466181532555290365022928663114710919207619509395824941019982293110023717043744783234669040956893310097218503593565822328539916471806453342743976251230108046525161914848560324941921449327840753243017968894535115003534330959254558772300408641697784038619840201926100723120443239191790854697433004736495126826836107281877765569760211525387363693601208536666145186018331623603249554613129229574427888547610660951301836905808628806328231808757481730233530419242739925555261251883626466171455138538577309549725378282818122911656090065267887880614588810643349958189871007845227986504330238329430961060253207883097377611316311433608216446168445237109129985225335414577386948983880815689728135694876020253838950585425838708800353016651515894885983360669433416422458338417506722880846529344354660956756764019570744428914830639382728701478670548675705465356119439527544466371228363780477584705699208949257891418630966790094258883633144531397617367243215979150100707424109729046379740713683518157295721102240010462150123556297845011888543518890501556268059982657208497961482016889698329411881750811208206777773782546163855431447387941611328707054593802066605796546316799303758322867409797390908952076933897192803202883389496390074917988084125293160225098363171151506410284631585909434583767055560911459868735815580368726750165019570488639472568583021826198849634778227618417686024054158644798268983146404362728611876553786430162980520229967340827941710013069662191767491945371690661343071273094354132371210431411131451954836105550492921647478819371424235781525394496572446682548713732137951156184846878729159779346945133853172068442777605884482581846495101314934211583369747888233650907284075399448497953259258623309989678046724412443593385745471612079103012001167212018689257970606018201869713532787203203844577579834806864488823604204560442603925018971062200689132042699440682791782870250301996345096416908797357925203131127470356960309812560502222675871887117295645624323743817960425240495856865574399530772028168521002794522059144523618458704615739961021140371712281848959293686260093836433203726612334876846007616489200591944672583284756798142145564271082743610451780829628028556322416258934765328216628456940841255929292062925173627682050216320981688167017627112093402065860079512183251418112241341001667991471776126135157476653573843743696087159931470167980897305776912629469720912493383544051603131645261389988257215160068180499325185505852914154246241882661639989065750810508352720310139822057537142404436037809002507427401319406436017530968941569048558756472922568282158087024278020895417542078977784567223438827319775857133726090088226391570884075741096142769013302699515886350426066958844815550658969148391238796069019268297556429691247202301184436247662312866204397926546850739706078803568428980744818089997938753623274146236629231461265746224262910574257848600638022281202060554302113628552157688629440670664078312763915145810840879799147365540770002547362389533128454352162728323092236484033701441676285053940236076116000285862387136173025457269891881676508825155950284355396963738986162390518464980774612539491529013422980805562484687796515088837631738808749229098955345557015082700737464242688930119867100418624380185039026548124067898947043213767015754012729521707202225343416883141024199923954279279362241584193041912648003685016973748591580000373144473494176037099473345128108653011738028717681847136011701137946845318816033079080915353792244114404983883494846958425132371949132003759689306928364827176262415450948521805910779578219818637646899864784679982818319999990055121029100214245804820341255732332689701191942644808401346935628423248279385083504110636017297133654222089749886905139729129413087165488824315707619455590375892470204444663384835663572766500441921053525915057447744978279265832512559091451242332988694973640140221166612624324507357728575692658334472515738805504456274089285752636494335320792793125010781558608919483840949848830981218244413514456765373328889469206472227207605364893795986492133225059866088042776262827702227023539709459636636047885779150877499206767575305666474714688435752330684257258365247310431923561604024743492106969852624757543397996482183475341069086991779949410337035590377740510749441307559468969761518121401046880919434073228651376683471433093657498841982818895690608365117856655289864978305253702812230024761143873062528095754357751640059938682420734288362776292043846127912072165622501597605472794264145073628530950964816043037417349451114292065202315537985631337696364003219771643798713340481773882357019380574328835550781235421075369863453801689542940690008946801158497017013575697205051819389576151435254084710822659729966306077112476912978028613125198644972610375181013784585489348354709901098485196069678000731695769148290205857426337643739126939308389144002593145576290416181182657803734611359091857928453577424014336632660930168036367778055670453688623930907245274155070382797325452232326653667884698273188340480992786621502494505935235815316853708700279352228293576106826553584592319936523963528604558439004529163140377307336617892481807593547645050065601137739628161056210613164877439323658091243553586289699645761936951786619048347667939271570432502050228945658085604097401148277701888768511917803938002584015724054619920336104714287682162990722684666729938909821492945828588952198295983648357346662747070495745878208571513211447002216113237518339462603496929387390310457189803123526862518128944911175074328115582118767876847290465253438102038338267554654186273838897562924242221323293267666502437678908103901648011850531946747997312536650391156182514995203816466925693251870535314976945704083705796600902737772121077585244558578197590671126207951239078508499490137512613872074365477222443570898410612489640281104241416784964391599856231049138117852744840728214769919592137146495787501085547179397287877859817172843177807645889541711708036312926967304821076700352412195414149947745866903828919152523991669026974356810869343179617873193799093248095385623927517574581577235376978484347328578517086067642565405773346793168792582452247347417215824760778737378469606919926131419298771689373018458050672798484780917817512545578539936573896577845254446751512011960833490217524904799214941974695885014484010202792023350785820681551243893813065013879833621834927265828090787253964944724103009770147727383925287979427225896612828131337908596810025633980835477676724387474329724184315531900471869708851245769125771696673157178514225387751659755899070267627793783589277416799455222247879665227458214361628675705551095287867942231066456646375658344753364578866980654970755272092028103906906549427524513733943632855333411154794050535841697823047417712001968532408474632084921083769628100414588110067010105330902372279145260297015905273955927161893948132763597696662869630825695024895760083611427575329096798184357378798962722111234909409860536001834320189709560576948341634842511474220270206919766935560678400272408545359691692731676921279962204265324592373192436702979887799314059914392131895519421200602888957959264085172848308588036695550728694630928916496715233326985718412550129437455324683287298356812194913053969026710510775283840685625920516891331528447321564718067914305663288775177666227146911109025152655222759054934502928445120474347672720504692674215491315735586529637821779047514517975571275939336489179621635585786403426972541048534790306099094228165900540852271063743425159427308565994584578275287602621442906113750668595605685952341232788832097860484812259610185305114627763070131726171661427127063936581094391052673035891372498161309392034888426576112752583655670466991389136633213024647325873039231272873473355937487914201486521189552776384839087996523695342824876386813582071193641603914530342103292380640160290324216192976240397631716440107736328306953130419715201964630571131754536550117804196124434357266441895118355310754805770009054190004225239327639773653040104660067546248573025173296558429882971521450176160023663802241687132776237260260345961881463952145546812319935207630841233595173384796956907534298513444921061849821532049372401083645572305244283349423172601014082557801912302001087209145187125432133892937289815028624456158420069267321433776593682691694147937445140424786026784530843817753370106407163383998590308962521186515893579998884284684039520420076344666754799922135837399250758544720347184175100349798325815152892434887313672251050123580481054146525141126465643750911101617996988058542107284931920279823404351726265966612765367681668470748965732353895860312956368762394020123332797425847780888448509051033478032601051212076997332050426142543662237193123761628227262232093454603661276076959500688291206433308473233068535797348540067317548289793750795547841931753030989301939783064917551728646017716035251742745261894558369634066109557604620383143687467799419259068787573583566283288086412000182302329544103462045899088606907915819824003860394857084676438896819224190437746815606615561503086494730019148194308697260697304779524501991339003177337878469391616875258430063871592154004544115948787719279859249010052610849742147921974111318320813985949765338160251979638636948218068761542322223416458946442548171318372340336130950424601801494368816025471919594391888706055932668746355066731336007859950754984274836651098668942118749322759909585107136465368658630595279425308530102310103521307015342973640442427123294548762902383901353968630798962800890722953697929309170066509695628902195170470695770142690518371369727276731381685103892908084955491336415411703281111945446595186774956892421848785611560692841322676631790156580743186996896814462401511635315634453493144117622215073206370665740073356116415758623294201339777214562106407538287828063868247902238284271443371950540050477353659175249717741562660287759914885565743491915588328402743730436561920397827835622269131662917920578285946276763566728753576433100781134411627535336843591805761745234111835723026136179358952529745765869203722927407056986404877201040056286334572549586914558279330568819479539899653361857307863746288501616267067133964190626829796147237467052550382401493703272147959386269522285803697902423747099132884645363202333107124490516810859993135294051108911076984020185210026028373286670471620088161527053482878498837868511785078307727298835642948434346508142035681502404865665571585201991645476867631110150769596285864574942880845092098195977903283802897975435641265890535790837428485367303020168821784866478666637616666182954908389322981591150915714195006838879692172768787147390633592239020835101121591677149057359630401726812023855144936160667044200356370091528223112790405602503779251581050797139203135368473604298117392296590695530506300731093712823212907415242534444321796293622060618173191730923620585145741638413090084546249600704738215125615696745337604082580449098755078258646160743356218271785244064057015902651286641823550174611011612326745314931673082149295385894036552187739816679830227742528765053062453508706041467888172257410311225797366973045487643560537084926766795705558011375879874041048590886511674252241893161132799392770892880033976065105626095962926394947698562020373011797328012064903517727366914108463283914514089024814111950247971910608131216939367493560132778278280113490182809131911312961318078494772677351109191111264428520906207999280372519697392322332943253929955416703908679544028889994183258537530614368241478410871045122931643724522413779720776771209743217483525011834585907350612515639017574919599806134458866747184897349655433476122880689070518567314614236194657689263472864343667488369809226553658353863848467296672222032261485575994588098499213014676513205206244460007933881271570455910272082406920337847004867431988232602713435721909268419087522886146532346901212695899815820343716822375484232165045307139490195811882259593573899930422516167272636463069602352248735222873860851861630885975743961213540259752629216328931431717714962406332206298719144875886532836823967789591365880684283338693601230095973406573898556273810955949856394315206842760427477447990037128136866633330998427451860339611774353449482914401650678288691769805387095576117586300534309555670399869322468698432430017475041068091832569684906898914976009681346680628148307859412155723041122426195900511316698487162629825526294609298869294420678564557807851837652121419744442477857131053909014382320791757378040340769959213796378148131295543281041172935698793573947467206454676653797742291400968975288757338455593906487746602459944219557197200161317427972960245833105324482510617267631685830010165566627706606915242400695750101057371496192735777236047206288502751117407632626929270038798439630436013923365104901519398345517250587838977807256590590596008741777567090715973777079098816218063542086619626758656594107958668267135386950229222477015353854039604923533809822574066714809200944488606701061752549872639005524304510036609036014631028731492272888397737136138407364840522091863000170923917427982451905560777109261493514907950662821735678870438110215102959114383242519408059145672652678728197349699002116615877191854915435310667278623571187563401399872626483741650431474277341800223532470005810456693808922278622680015563152879682649770323136761729176977052648853304888237723930666991159035339941505035903577209124693061419673482642735258565123820314343237841995103957176468632146191872530700240202206803340052347276218684751352300884481407510551300292056607798350647509691482147336928590745092136649399753740160044820227906428502532256181013382699473400216696923489784128249526404442994804741033205939054413230426517595812777349397341408387699760234883481788621969308006763595162145115618391831273664540048042536089868648693779395590739270890028759345268137212493922106186776945655949302328173856197454401859495681632020993836676661169904167365022945393019794685859836541199175924771306323061359179014428216992253546252795864221102215415764461720341811065799057830195826223280598039911695895615505898942430281003627548096328382198134928614032379190813089586751179267216597899298182086558745143411148483632588104023590014737282026390755327905363432323381174181495124516776236868009441694078189624454863019787048238861960750394476763999542697312544348447143972739512933260808976601016662223562502301539172353304523079329636163392950355330297842753939629213759975111935287879303735515808975860543472512485743687552220348537699552992530250378427792369771901149433081059254778735473296782830969898689674440885047719577462475554160080495047824713226862245567561501506922069665183011527372696465040132182571664877568127893882477988885259846388698499556432454937418930443748379444582994214250718637987324526240649393681947125608392726310730092254278798450721563135644345429036557969221766749932679256202632991837885281244736880479151246517662263397925780695902951588592764758396298796576509746282203244470696981667163066639840029924380401601995487305006862041910041079606975046516140547434757451714689865758779084815297966259373181153726332021379938099572832288738125205049049579147430001721425501359593140635412068259655313574547051898227775886773672960839654085250336427017178634711011525037826821057426042412825338126001365700504119418722723928606952903955469047377305262129799258519120557485512330957864642556821551212486696554516688253748130176993227130785644559950188474261120531735773161308253167931175323058315056785807792864953303682093093935714505629181964265642326525421997839254437946196855630380507048359686577555012252600397772098582611424321309620559439877857144064869110381400422562395490452442104770334333450410370333880840244904282801563377756462226100931763626987580758696809971099912549508098090397737156585715740919967308471290279684445030319743234277502873249776251505988870263837670625701953198082722710585715687090900437638449089713551428164692013786371564683337859941641641821094279346273405504688076528288463106611771733431211522050869269649804549917506372623414879809001247063853081485224334389466063826312128831762771304004974475980258162121724423886835543325726817247278214389504610244319502987304719565085024153573772432711511110812778738165757852570735704722929568150858628912528558254087445705240861398053535768948932599308281657876768220797781333067426858012752403001035689420263820433236146091822045062653289342568862110036742078628122582897067647284667796736050542764152183905784777529064670099820369989333124424975395632986491417898576606842878655202499259420488670256198857639809761853586934607952401376793764664436703257968236683861214164743642904484066821412571841306937748750818035148575016505707792788375587727449291127033250100010537920604503637073157232101244331998695711450336843170379307612805607055543707782610727762033297804885322849531519003096843153689978236494254022052805526071308935081737286616806733508157885156238642733076376900497590244324630231188355624325107172717240130558087434045932567996499341499250811130545055916901372295794610805847590608421296400802556378947601930490573841550833003341383733767925928196061113387856987569499046395626460143872492528924855524654909147308324981758379926674733035767023989293759065925955006729124373346813037627643319703077646315196604612130305992086265430873909617528935390144356332122187177492124216970763645875619981157930173601070543104339055008213526284005549780882174933077057849497272569142223535705355349339042686653322253495417585114926153629518685517993423670995375890695104439080833665611582087793771795514058292909574398592710819885009874274195140123660215302599175160475689435720284676513824415626569564461788946819312760940244195463213607221673529495880183358016025492828566942043260568124228208849518392138673686573668641844217433765935472297961063581743210557302809769659666468738455449424194031414433066868223136902883594294753104835763691730053018863439228186726386328969596991207529041473004397881247653459719912685855804268625079137798108785384397103478133348804008020538824863647459454832397395474256529313360420194229076843343352615871251168444305100306518724223377898524066694531937264886252644925841111951737397058104163584708255438531874683923177261772670601275255130344770333954381299208382268756193249522174698841096810635331408535648382369297635487170170123150351002711703883095853006132845190314535780745973249130694322669495511067378918048117020317983979708146762323918793933734772229743228546382078962009536830950354244083223746615862134124003173385149521155437043387392309764158372560898627823051046169567521203764070144034886766129102919686390665823055473548816829979729115179653615008018362094775521615322204151668997109863494055275475200517645718636334204233703252655044853850053376775104730591477866222013626735608039002661797881342324247203929882084105423144596865431927361396145382087815525975073309084809055588305349473975007815763986789767394308017554001770623907376384905921339741860894704198788310810070122469645770585080307155179832355703083093522092145854974568761793625937135581535039508883797820766556625273708958839188440413565190093319290195966383068510527330262874893457885130858550626354382664623921286967281774934750606969609129670415720145569801380451239130645469245932298211494632759179589180778181005754884434803034493887532449151000757595186651526634844854234816267227957418765818626029838707457954617192147131255900753199043070772592013459844870310507678501051656188194605359865346081632942560654820672820993700293899457036328608709043698747073987949312240221355979046364633276596742255352462447327004979664192021606068111291196294390974385791879119780092344671496972462271918949202962555492027888343132437467093278427316493238721165582290732862234186753424078660948009298656679960195119422298754998673805594407113564996950900938104141646193871579986313921738512467769865227674333131055239390003404291867908008765908836851235656295436694398004031440236143116462675942093361610778496578365569395400154207820011909083165685392242383184555764876679490116171439127156124404871162720364270178051151996552816010978543083674992860708470466094590126229376974726717451413005074781752824273891085864592456930816600833331115687490698068359696704338548074593169249344391087558698575159123654640383029771975122107088205061889757119964188533378567767906488161816636950762601878352820831075912586201062825706945096731291640048956187672802823410951763917392837057522881980674118662922670567284861515241841809094867917305981348508030086287171530167633904073315074693031303768439391122132173731949130815655746174172464013263293407357039242763810285828750456164186338144287116410905306283751749620801602198874012373717621978783320734002729867163133736395796494869673284478099356877404240268157949547755825536581830752218816210477636066941208921828139023531321595968793743118033406331183565411053887908554495358932796644347653976703935216930510398861007673442662595336393371168840549101706949729220898096248397906083247892106385601462275974071655314075403128924791877156548142903869338085214445288268385962794699380162494059055924567815380909799241617373368558996253597453505633887767596668888769145325537611921014049889280510964516303129390285462828530156218098459676311383084308215535774897878285554344943354128169507330510467911751404674188054247297183303474224075936946056622814412517008014789949671823427030386556524850495125713938076213104912941692033866857420163013143481214885668918136384835184621005334718205830765687565615280377997625457416356112932453897769455358343320309225452521529424591601508782339909479060690705668906457383823443628273587789141840696113221044913990790395227005226509848157281648177704814060819500572242442092160995670060220347330684153561909883697471581022744801351204288998237119056224970146613522411759579380018739338134308718004454320292839056640564109503371728938374443926029833201560839482978375968861639063926224835797702244665288680547272960998191595962752100720766555882690384941110092946285668341790337578230266120482480314272019281832379633878327562995698160008829894308872432285892742593741854637733227410744448847015388082645179044921728215361014410958359941463751176893027868016008225104641698772861529129908148841479074289302954846600683543398690265372268259202660562043790192722567919586314482677853841364992937391002891054761831021098199095295096461758949759545211315751104660520803571884024150577832814743963649855659706347022486650163385229799219731671864833559756114707006745171311897807001534095905914558841340785233964872755038033577690631351955320812127156967984701386412139867715758653830135707976580451454017383051351111953146888399061463580599461759336180539577560070417584167716082437494902984383350337223069778269996141724496441013036007958976612068391041135255068088008774412521575934713064483201213321142939681673257826117027783954710133396115873973205221419956890759067315166747796831387368908211450928642506863638644093817648188745540446561092475143486245185049124891497650135894642617251786431666013830160511124467357763333544178667529811335874066635445756336142134737375434493775210179186506165590589493181960958930495379642463250047924397347738963423310836834951092828667405543345246268551888676212364736809333815463910478034686140382542321642889699258077572457831048522914716560716801809722317812511910301849635055944004787798719364224449058691832213065485767909179536489620644190092589290161926101384967857896431391207733360385697514047910018669337990867544860012805505570388126781822394114857658246162829248070329959843011903334778102263254658986069159331044425132520976467666431963715125324511907248703617252154718141204493703951291513317598207867324925265512729154781367275950980940261781885968534313267618639079868925189850404913094598060785632026465258579557847229143435951758644544442763070708905788694279535522715227241591026640598926904869029216651301796709755138391330898371277284693376834495431979778333388383799924658476498402337929095995613505359963239329076107715753895427594790351744361825681947818290898276903185377839533899683744776176362262592736766679466751522864103592505378478746234680135625141028298049782516413912849031637996485243339470885841487119196453450393129348429162289002145650548622171834947897518101308087636549991826395810359678942481157993991400545819289899315383128117500563282914082357522686242927720506629501853161027690557021898738594589151994223801448215004174534624040745833632546429542619479198188907597817244097840163813931274179658264820498757751283843062485790480734578253479362570449055139504441308663164947552771520779284090808126738747784909770507878408414986896458309171200505936002059652979101227446817309875742792678948054207425833516962709124753953839440454820995454854179824870072287493884230664551000011083258949717089119895289933962041554200487877392188374257821963050686749158162952427879793044333118081764908735818206758796410797140452975714537778931022956325778891400264181715336813671938409869609674196635892750239101549643380756652390276322452235671558019985485894194348980846025207669927882743309500157154746312198008072635980851408432947764956009652107156084531735003222232724273537352806626168996009285600428546967244386838268542009816737447342097343117312564266059724928876965194645703556611233796740958179759289683011156875439267568307573617841404489722820898129885118599984973908055311781675849688422496186514233670214161713923160841001953831455053826141683969047034831690087308263092870547111217079364536386585833024460377794707816739808084497471563819175111746508601894301724387119025758967095667485933653970348476066995978056866086705766399212984516895071538278867416724520218924902667138072958841569160924061820531696787726584492051419470566151012717188130395246803296964193368667055567174145259589281215739797194184597508837466332070575683483491704514152603166833017107942023541636664313027994920989503894306572044485673030091823714936552141559673393597759725452610968889331799716978349181194259284820330412932260641957562763776192271531067800451634009076553563327639900565232559058289034306271077287165046345786836395403492117706989748676303291582176927794562869467780353963450241349275432080211447915726382916456884147331418061471462685923597199645167995726199035638198557123516362754356086309257467171345097399748754514149750323517598926621225138861673792988624510676448798221454938113198771906562571092683920001089029997174595480759642912841956237862582757732558461194739511718328489879017550898398986179472905661636299435718223690653929319117076546258274457855539855008293524589771017541633694437829183369304453709090378671104917966043907571233717874555931127756351104453418565055132547920667146201018095983365140854965437589533354303805983929423009042406628887650759961561867353260062642460779983240530060309709043545340483294161597820598760479888999193999492370663643380194478618639731898122522558801219372651490982966829078529761135888224942964823546117895351401572818937119351086180722579839244388892026478928662472577787821360806093195735636221652762578443427135188967331678353526060813521384914898420206598496618030497497042367880182126277812313172456320253476865065414301337172120600895159336756605649878797713307671822106358641481833872833431041076659531088072793200822684713951361144495124532350140400377818533753199962250456275878786206885043412509649602608200332515813951100616479004174462791794163352202090304569933032344137389652802990775261613519221287915373741913111451203050542277811633710993922516339302697002194935594851935287369154289316584515812593474948710320288757190616157413556669406228167927613456115016364730051421955978122787612510501602214051106286365403842483543532135487227502318176823021352399951300585633889658874369139319009830110169960560335087528425700590745785587000110237784560959213142460381330036377406140341386137234463647900194292710335859545923309065407235113729864903890191217476159496368875325805028984675962422845982981701588186180078683740752171261423931337849138612628408710747845827003235046912267466180000268383606474306780774333318790276415793213326096372921282850413583932739719066690316548360997774165332289228707815708299757758588065968294859959739630858157626518097101096743582381297714625355027817321153457411070318277330879147525297838873009313987838052595793316487093284610244593522605256128309633986718622339857293464178116466116992818883974129178453793642969002601514529901777075458352595589832652684081470182864503479295764532128453628772458687736882319139013910516577846783501994437439926026671855833230102973863786860368248797893422764541810066864153234659369928981250738587492026580530062587216895239052815673023264787736263691822154752534060299239382580634588064359993620795325279396270142306352058926926160998359471659471057861073262252328567766782238145631230081192311444788275882508269177316766099447933511509258635796355777556870359092956333586739125671036733517708460569310182603107914606983459643744098646787484018052721119781816775378274070181931596111059297093247516903858934152126919853890269179439638746534482057953012594977275226569458912382392733643633159620099708583434578891375725474096034374382091995219159546534236935976006470019776720039338928620670829311105654065255336515559607684809985733293865046466188263636540418419384308971517947391878786455132775382557957444710919813525545850682893618598980750921898755796900155149272669903627881825973726912102182776332324731684659039574691567340184377754587546850740041008282991947203954251623131977891156959194488120833457929542490320296670312849869247050143380090848203617242123344580151642645048583816483837298367052697131180916734908000691194221903601197849318745803991374765358456456140749961232771497541655991159626258941069099144794627681715904655393401929995948669898114768489151047999153455094188280635666450874198363433534093686808580411924752224381097967971619064224970428627838581594041121819050512899878402023820643289929000833038334075572374128549962763864492941146440756657897259585463591214735769856053439901752490393726004458299512903900488352680382537342018659284720703914422011793731015715558717945038413956345025152942931580526752035494033697048668719306534873700843859355592870262490779402887858319459182092212976092737451147548548524515697312894973307359342677484362130034113745745253871991324506283226550288411948674146976156691918036062184597214628581146884707737599265232719673620908580902365358107542627229067413398057586205111757218621447387316406322148221674641134531749227833136967307804345147239877535919255904429612329890335395301302935965613737931030219111943755072340015168394734864612023792091002095069888868393479861587180747146584821241836281319436938040743813913402669273695402615167067734886888928218365029388489794208815178440123062641542646792074575210985683322765997278003437562116545999748896425521107887920419857402751999375941518651123438397955401490712265324201819485610347840664355960339601280831425356669372984383362842867082817783211766755756143123565102969211142889188989264555453707085402334989558215234381949871146575304356494656560520488152687026242956472385844802060913470444712877847390864486974605705988464125991425970548207918734598298706853485445618321985829177648002774016132664464776160799839529567135039474143615941514072606224139950296896745556862457765764333644964574723866171906175682224433931930365612395141266236696792924086948149715082344777232962771662989110308312254520150637572194638141513396008757794242057496752838040026380586827254678879583939903539925932916667646031193572512058662606934545338577253919490695696889442889362706682184626933350256288041919050916855327870784059737506822703709305566207329902862445209934171010208172588754345937540941109833021415073825325431913226574524752702770395043860036925983701784473875680734411501485476385408044200520538784603895174729985795232426083808821862787909413178544624728761719544394009858698730077676105189518812627091736709467849072396833506276271937682268419178797424207335256787373407128962039589576145157381497388052974820805427340715185419137004798734892891675116711903297701207753777378496355330075110464960875085583784458438383262927834366502004754637410166449793959600970908497027669849114166016309851841229403967688430842585206875703036033734240777822608895031522179741113821117918471821780089870752075092184409191387633742667690948485211975934516207449301616388087380959214244757960226939983222172469320957970996746179750609228458964553019006633752557082922289202553506597900005298178301772826817881290212845925076848183264231070234266495014366296680758003025970904401260607774748810022565230728079744592194341623258455441124171601616120466837603899151396412527987123251325693604131801247797768671984023091882357058294991444590248172327837782839710508924569143081268402517834659554999340914096863894127408732397559686342426942585387764761303205582447994150561701700637090678843451263038200344051430741960706614148045337882343550406241371515880731154394013284497935554123183518722716637154297334075956107904411310683630100784222608388208530899467897778900039567040689782511898048540116217838089813565664923686172415652490364089857031399579114611124494994460503430206935718319617846264847574328098276766443541753518019600911769578256235792364950992675091579199222311536094412595505381914710006997890262286857467401462259901714809578432707248733790533534192738546614910499819117838926193985538148763771778435554264632875326321262225583007523032903665794935710050667701052718339683586027338004606142556222639632171385443977746864178729543424788616018440777015707771384173130725375789196312228642546011107315784049210675332197332705986071144388768742505238939324703640704467855974031809843937090891219857715741705347128034310576789785161197653066854141396367585286691703193401689901125920756482886741519319211845170713936161422464903643062875475087698926331558913275857500106695877066849300944861677271358149021932109822720243769657147791154436331581597547628930266244893879072537828219105443746385839358853500242755632085575471073989264234661547102121822888254741660125893651726125923704010481350967138979938480165723354593645833141971934289606328193892956590304203765439827502721020049900132465994798812169936186881785123930106656841751258473470349517354673701837354190554488350610702987555251516847262670514855569315614650020183876506724031255828259086291995823042568617103201497734164845190523191931923267807892541530676491384355510192759534825728835294893803645863313747396406007820074394923723402262781825401473497465168238948012349123640929929879032964377405716806446840499461655740686874123255917860697175819090192080281314424480394117954245791176298372694980656869054703072355721352367620881227772690586407092639906344753408786957431858067172892156050055653387930277144172882251277101249029075917083216206838136132631099415222440773257976646301324890460752152096939267730836789382453525691509739344844261106754817568514189398844572951677431272816639059176461605198345844764850265865622223991288887744321002850902955485421263156019851322527075237002906745465598389367223428578536724714263997640933588563563130385918297420960671674305833736256659579098922199297127893810998086375441598209463707441643044034729260028322992741062771682047426925624474924852093608922765740359635918094629021226906201507722864931288773958577614371336504263859784067271972377428210363993336506779845180553567908542645019368011560473312245466926244630007842783063677895904375783752695724437118985878345399776132237502994345503115165990105535074531053728052085414045782419964269017963072569046234759452542774721222218627439673802015169925903372138754658166283654866725795202662104496694166674570126253653709401350374378772725481379981549530917163554828224130120628228844967067830254587023936030319422328555801745985013886277509466304026159395541423510648525894240668333206828872062508675918039311235171098849268979822192674525375624034403639062887153443799257801750502336896430860857640708456681309583285494222672451890838813954056053215438280577250834489973378725047566790495154247890010287308926357936716210385698835380249324477747303439840060943144305389613086068818568618131617081543293297536184337887160412750696797943384624854622536046762074444878715562410621398827671487688708191084415723441914305301447405769074075813952452699038837681485934200208167420890944236456957747847749825700355878518778032823529542239031746442056476439768691323213171529254604643223545286262014127332497927720570240581181222478313273839145604093790591338121553626513475233807078134303941279024049399927653926085639215534383755525736459621792333803027651715650915572800692391223284468247253861063502514936764990067400516617319191649141227912504521039127475663703946544153042494214063437622554290268452063059079073202938977801607445310397651110908205468637643515406678622324453176258458621665969985801285859801810768923998828942713623230385735449250472772252871471881389529106361478462538963066118524129834517733292233311392993613581408316077786140517764073262943387339354439521035317294055896069001278617945283632714230587817403107075681625965921828748790885712997719599229759162264956822191995032278333068729356801887417796952833468883296563817604325073659906314397255834282285799110555390179490167600294404268667637506654912795025311290280523341466992412820865618974353017441314983588513409481631180057721070431596102201961628124459958871051968299500185812306978012786897294758592971378757156966635275043452369072098312052417247004118828327380651046221277119019919630951654498388811381003526091393458383790948501916687965630749697263731530418294700790752305502720651123769059550536207033342375012099195584788942945554367909671410827876683005466796209467689963871295573184944398143981343538979743559377305874334637561260343807528427523103674391591499616397825631217174689334266043197456330540110737841091748760921579196016052050903677375165522229551360680536410294916337111116902391614149830302188325993407752180635739829080033409105270755974465630793123376324104747891441598218211483237974534068750739701607591570170701752275727784108277307687693803210870049521164074669381057416974779978193551390056238381735386748503828342881337304466356472519661210488147811031932272537844331953594752536631280345492118742954741188968936078076960423146140271038634600328688507337538117317590261706665270968713609619264165810598968413043840268304910344131836150711230318296930501896347094126485923668150537108895909114347616088197839951995975818238673002335284174199294523543573504209547893658517016978735760218168474140485061910918037300514113976990382531559493193174423234732718365802657757624040358097325736705793105627939732428772977010844388989189364374853328739789853935350057020652896028565444253921551233685660289444005420276537362704105228358738906536026155377182548370601924646203406027295207025678276800849912859877858758712849571996940704300595254208979905614583405478998823132359737132259792856225015730592550932094827492841795953258800977221000685290619241599187683570090677769375820533735264478534910449079812278284534409858855695059034312576826905702458769427188010131418690833126189688600597877077282174127120592874458589488297929394325797902238312568000245019113518461911445843053688401865059459832014748231230296721681447338483820800968123947255649722882884311339138056549306335982020046826525603076261580615298849408093834012561566946917487792464077819321218377295276800655248415640560800568930414605305230810012745221466287345097939176778779972552686844408536338336600646436775300499512786102966041540352340522742710300021751075062922130536858633728433803831635507373835983832958048454606267239449083157720585269753834694120715444502398014713082496565260106235263814927493579439918819414224291604004649165341219186004904254639324632878046645988557480717908422679925989525402543664315030008998429382871065745195961384478550525810575811653771835290457685803044795712259085185294580182595989939818907849368557603101819056568831896527813591686173882643659334870095032263869571175526248296878101191817173863416328378467491594523224948043646571278058679801530525125557988852851978679032111582550985087139888974820273656855607012427711893583821984861209318384577945370830550560351604391272212375704963483715327559904698974659193556696500329181181419020128918058959136883699988767770820426871747318509836751158344242336563342158931468394290136119721499844924472953961318448086416629545072063037279122499418694771088394790120281228598787086589539897201044695360606801100428036475877509270752642013958700681612016030251569193873283728161051881208543655839836310982025258814370692239814801317536903563333739575224448995368198372189640445192596197875570884824022510986434388624691243488742987754097215293826907762430612820756140030193253259300221389586251031417681127803890865267841635700872911536342847348175421774457774237885674974074023318670377465929956183462754076688581562786230394412977724740261212382595129661220048536572932127709166508906029324459408440241838868660968180291379603574711803135289961521312087529411662353143782336584184845698874211282813345681198141749368810736903460012838521957524616374110311311835255212406004206802340930169937055713077970624242799360086588984735756795424826996756659042221097831800803233284280677805134068623257233379834133309511677805786138966683049347915965708329223970011688876901422726583496239205806475448641476089258118821228257968946308208519203118379374927218454521001842847642065631497667104323158469844532495549821972916892981673608881080190856475129718866356766104407265158686931889648471816912952122479436115046489660148148245911892064048966770253152924922043253747079343400241918819048478372905687018945563122007398407545410646001239116654239375297568416515345550242270745514951668521042779012306873995445162688274298668329225835287598394242206802299732933653005623224530970959996604219031222475156942034920681065673208436008552967989433240730536957607636131974891871919474636996017925847474557675241894648190156966155409873892840049637148511164874979961370587739260175830156286445703947537452348240257153771570832603659966041121868419927832133483051507838555957545838966028567886363127064420471289362140859074496252917528813177013377556987557444687607622267718323354788081241027543452744497068804745004180677061529531725353344330201723009998000732001828925115443193996266386281555882316615866084843395674197838878239225885120958199071543001993479614092240389843885402261640741954525836125686091979622863481975320313980959809623757709554544570903857136571043341577610217516121985058580009686021190723164487254471088426032626828038029210829249973462104818263828091317632647405739773974329122200782383846903899111840039006556460409464156943983857298799933301466932398633525748688543631066666966306260438128655123140708323769281297655523838465919534651672103244140905924962236124248398432395778180101702422332938518322046347235164836618050697138559337991476368967783291499212416984999752101599715101508962048704962468015817543062974239334034951580911267412215678452205135196982362455334877386799898132438998437391079144861434639156559537949055014662989885032811582610954706522058155052497471225940000264179782336828362719072874866194061092807955317250154271201524721749373741530635380767398271936667969030337407743986027253081947813613038056734757068964253371877838472353826239596283591959074169088939095701976580807582045810220110377115580902300775588962622744343660727348454636392308299634633731718956434693998995285381334335802058116191398164568103568737215618726825291284642556209069571890102405467442720794043475536799217149795772368723018874835585475660247371852044418193453221927605722639976222703364303314668909640848796945825447230228544385569512288218106011000234496254448683158982017717001441386039989942724787555229024007504766861348575108814816362130828558146966661455156304146851097725346974985566241495013779427715806674712672161006746432588462806439376283277258365502832078134562715442726860813102969311421372376709227463158532316109231445495111828896044950545491013334271538672715598932541609914455207279479065329649320930149864479636786162588393645241139697323381798304765209491887278996105635141666177800433800435839418829126467550016574030620571033476084388103094504913918581893045168910413297888936875411793420136814213938424098683516224679095722624970386899255322548810230346693479234209300804187682063455780112177453477861907774118807509195118784939408927834853630889096714485198808408415742264346777421618988157413390771181909776775220457007801825364572302290257105014287842803928080511640015287541448006887530761513050107011508572073115094792397322216813507003870371972196435701442190373183304350661988851506640921889433720076557331245266335449499737067732068514489915945200738089139960148139893960368482681141060840859048924679073973670556842967565300156557370396305665789618547887882857467683556387074753775172475652115361947879806629866704681731905822031959400434432311060985829461464991787087542085586819752522064361523126405605748552387964534987082602511135498067223057847342263573447630837929152576794065129426510192451329880234671141663156953048325898422878066269326754206607338985848942769594409880319252901846867632050752653004317930371295693672878099307264582240796040125475412917518988014265776087097878145510675399286072971497504860490062443466346443789442636333989087749703487793259897083163191490236508791247025586791094797157833502076834572122398176972051902810752671167805045421199035091268058424642539750530946284228546610164232827873112830360097286460736738012852257839262733673779805037648883466928898777512612408169516749344021004376871641927178510584628181758827099065936938126852491287837816716478451002002748844003652744148055763263599160969582127963720914181169847619014186973545672901571304385387277521524149980551538638411656913102529661444048540617116428973803839124302654813973728757941619928825058876489253356745455130849972945809662653295531260782283794024994381567047069729628927376877528421855288535613855759062618214672330331344477980060839788964883844677684512652446622153818989560597868675362588438805110313894220785423110856627647929087310572720032704982976229716973495317630307017893165065483559687730385863947073601882659633040158172137644319529910631448924787665070656718284725239213297774138894356334878582108168961716045260690791763863941542416431054631887779966951147165859880330061981974558150280085613889764598207890584539584236644213345486605990764478286015754174514646944941303392193767901753941453782843724979693177445604788565857526634322788931877892771069833946928452270440158583256725538408925545267086944792932572043512660225896477293072269913412122122911557815397258985154238615195407574655341222001411710033054381298520223487084625043166444947721389363978337989625314561821935193740563806385620678700691283117910168873822240248665600944246517736262129146324426810385158429987676787279387617472117867149047892131406124932997465071706634641223200289328965136973465561005888162865481158232106638791434521108436635886404180789926891707280445371201645488701758649173771774325844420548624459955208919828103405525083349719234928716176693495271457427346832427880392098163412007824373901942881240471466863212187761827654439534051511658106050697498499240746110011296961116483571454657949563964341217572383272046796877384067880018789305015293297902576737593000637375440379347655861660727710564006529827833826677131442583399953104519374807789442820834402710674487044144444273752519637737598852977831622975302512554253809629258181461749915756391733076442453749021727037869919885359480858698718922093759415963800867753168977883938567929886682318783159410244335286133232454682039373286727507160746905962343303219304775889170925491533818245204255735054175571952157522483657313817086666649599944007127143058171799801183021097534029181564322659293114526473309314627215466009369087957749954534642055095628144013483712359227102403472176014215093945188112393425676787911338300366697383218391897029026801020535644603550576520423984984210926751348997935799479763156991158645478331880265893712621057438885814015589315628929659532059588228210833092886854202407036839631269177639611182764353371455857708171280014924386430017820857743411818816575313071764727096680150581070988642257422803107853939104169071780952808211322490908153855492099086421811092260768534093381201974248975813808576770014379376433317262111014826770907246824750427641856164947986845973757377794553835122248977539448146627414266853829272799041720188291266339149520675842761663696593147021473416318828965050257311505423508801356175615384436592483436748668171303951340857789751243752799348272648159549960454376895983595136643807467469604079646181808244891760105107098795775039374685504293731136032538516756210365757258306237738437358846690077849396188943261224634164181775590992266675409951404065256771563540485737765123457948241187595802814620226668454926851000587193191535265971607589601085772149903603538582782326314180642322031651094151443653460858286759138579333960371954324373258101629510892389426101530018873338532435185314437165652390602513118940472970347279964956162670496613586048795672974701021705829878042088484244914648294643790726374447170101315411111124298606580183682650677635069051014532395513614005626268448660650777995738122822990028860629007287868144809939951275804235768903717096620304759155716061031370442331851760324370457799032142551716252365979419487069560952284748399403918487214588477642839107995187159323178997766840620112647232266921807963956921641479828477868072157164467876191287968479258851852225038163456619149340186074940895156708615150777311024613966889971111829788821263489276809583324379664583420948650569776821168534072968328457675693830864534755921531445858389497323746988280783747015205442280504578917744219837908192228008940390867870213681395923913512977098924908054204744978984878375666269286074746457572830825618768942142052547161124953650715338748841310959057186118459371676659164556537053594835950928093320230915370291552610897635525104849847539633206087103206447366276860981142001828378334910424629895367926768198114968295870174441800642049970265371888038157152156600871861138497451944282073076794360604699852495531719661839790798819429663350520608198723985405433893246105666695146375765000376450112742749239999459553864457241796614158428521753808559817628699917254005922209982122319376616541803769937878586043516650604239092500023212161167089399314972981417060107406875921423898095498512804210992532575005903658170972460789556626341914607514618036853428739250703837872919339462631244651936749166301595510347922390247034868272385463314331241247108886100499731724867560525186059233082438551444114386210518891587199136264582831043328883231559343146088149882717376379843860924398884334064739936070876560275426409444244395191780730819357421856351124600083014351530017716746970441635127531820220226566845358761883018699452527192350398060223287860246569340574219686447094275425975630771147725483089317292866686006671911994274599036567079838623301987165208718928268557218110944130258257289633393047918124205849463135042713895368260527839369889230547474915442637802339036160740166160931226840266880426191365765604234276694427952786424203831188446771172171917634880709348478326303665736949506724716053353683682676017632585797070207976058255366984275285444752234772005564630583759609419449300395694771072513139380702975577660154280516787874611264986865815963418532670525951269789597295227461672995070649917955556673275490791373122784069660985428555349112428981025968447466112688092946837478049454293259103697662586004818371153502309420155741813258227793843410955654098268795386784807739798054877443072841357376967356397369219593328346774874202085903010654180959021834988054278252755740653482444874342240051408869765614352982411348868976683154987891268069664219611803762371403075981079336941082315647251845763605373052238897038996118235533271937633736181454002413462205471085814772719284151000601428635682600715196078981380740249790270196947428014026250682157747074272993554282231437277222932324621114194129486964210292851893772602187922183515142596805105146703795706577384454049296009824750171847004180032691688864043950584394407625580529442143362929774936680403765545391952389283995018288087399932241466429487685638246423614812673954888509348832894209468206186989437599248536923604858050598028972630021250149462803345291339185159319390361536689000160183480661074588080712757610421252461670713768643999395574670996265259772547466710717100668528559419848589769442214528780442081121967610286635653289425909871581479661365390173353942790155097976630754641651759784281418798194370217436148379048292168993024274859174929239654815819215735577928204396526009791729316397218372426511229292685231753069832660678451631319179703531767882905543009801765183213932467892613565250424745425669966043745234701287810309422970746246041305558924441720624918201629391018113882287734382281344629515157182699876007705215372182783345768040230012302575252463848089128980040471996148371641522699188026856493358175582646008799406333817211398470167139114553034127637210993231380387113777286881115523308758220537274311689425403252255842698482998730933925685015112822763288624815599306687606169630739817426264479975726559969227962078410395120554425809182620236731333670373938418335564955286510193332022012665244436595405249381221794572401881105660059423492596554330461461617253405791873084253678926360979274367276120999687295291028785181386047206757035370700417938357391096264859755460692653781606214953844021856178323859771533456333527494264184856901584227687037816971657340980917545265242219351864109969062241688529799378429152028345558636421644718225464939263837416560091309779547481714859246642907586733919442330595037920725997193860133647485279629443503920927937538807256442796753265279448884405339336061787773725089720186863621986717624497532800875717525501904910730894730944375468135388299296859202202151398835174190930287477050216179969790869544741031243549209463398437614031515412713108387206715977291534106725177044037714363464688856706929173724896456628222800038335011348332191086911140859315805969460947902578075238550957091924182451990275424883633814926848750465740865867284135522955165329196579680894761633539128978530211632443317790613710845629930971010035218983414326743103779752906733790995722035565953843430572743696830386787211236083055713944487375005004642590967267954156344070686796498513709903595724060586146562449269346248029516097960940112194623403313042495246027840435942848833960603747698029565132620567438575126818330142179380360576956387928366092357016204179607339630568192582726647711738184900763413530279789324511308932845806433034935561939049803054604055282118233041030613190846886877472927274063247583426471323168461925625082032848025431925950063568528644068273707008740109196579490462643555817132092964736444297080122595950294517422289306592305285916657204752025131727404997230630780670468647081238196708017378171631058491145933019565329988654870472324943386951684465265876200203780638664381132313333153234023965218326699117184490403918768217846302711874405162052652653969885713762944558099062396101216886730356255632791788173427682407200038192477266886635963486812275944166671134205033429927157361953533757818434840966840408516430298762303874523305354049655518715160623251323334940413079741923809969448007687385817624855002538089407426352541502098360016376446215259108990997415145238369524617648147173583220369828384203550557374629491196400677031358233615247733295809146780355455369242629118693808387351650423836628855113881169630611879280833336489711246867037974724712329024244254138946980429378434189328811810904765482736869237017396640338561796638445696863861763511157633666150647733729641724228262866862268456076620659284082394943848912591606129316284279653066158126585180920600890701956486090065751991845043053238015209217518855341968714396902179112051545662470128765010416795974136929775187159397308642994632062924665639376630878393378264998085367036008885182696800056000380617998976534399444208376105671941349165989825687914142496219044801893905463769837818707987894592792547454666966190913966394855462847395252874759895165461390288519806396869174518745647642560774879228983015609665447085486253614947477464156149154985883675304089686760618478145691891477132260765382978953428556454488475915367444238597558395805211789290632255194951853973985722045531429099757198674380113387580263152877071475248628096069794402676474442476040584835852203906805485089727952269864754406427738612220389687223011540158026127472978347588687364246228267361288056225064633552414815223111086100288887424888358766750018221187852512049040690342748540495568730361447686323014845053211194729800290468761731571101199367184820275123742632493271010177042029853918334395170705770742252273453235314087513506107283127483201374897841426945484795078557880962797943738469282872661667750750602837714698475115533173322175933450419812348837324053530653738479878300567370559381314347459491764789304784134308504773014831857304475397544591898669190493749339168789244359598590840063545009186545228469102923995467688256334002245390602482257096839830759270011334082013435964425273102881129501205014836020903957177575358168386223475003870149273878209586116988919668216721665949812402853454614315585052151470123919535736322147861570812576995556910410808140487394068649121812618676699040148869497451821189510763034771526631736628637859076320358085767863786717347895611472771521929867725561240188653217375380935122338199660580289554827744157579788444593106525730971754680315819933257593323009907435748320056611494676454262591207885504956419703022511307204049497184762275420788306343474186670247792481202796635067443245334421691461910486345745137565458728442565499571565669859759907355373840184449183538530781473917198181826653746853823903925382041160907171098754704416593456125766458406509214785541205137063683288097674029325472514180856938334597063326480874794940133314397182976078997604737704958504081489739930223160754578156243578267907035685151173804683261806191936239162433104218132525298883357547540147895820257773006242651695335845233710876526167985015662561118795458671611533915296092380026903896844805701041248626815698663976799583321256893885719852611753464476201707432934762764935834988618474886707413436277182842426408826398622801869978947975884797750749155228400030314516601242548473486147142816930225558198434666301557171989275420749010686562418551299377977971342652670149891244317973750946923393113999184041006550196467036005294049642553474826812865735107718243123022064332885615486004438927651793539057653042813790311739273486322898556665185427537838235013107289010582749887126835331668329117128050302994704260691564157792800275579407886135349244910177503010659797290986945264764446739278301360658637431273173767879457620076410344551715158018681470695561462744400507551690099096306413073244326846130598818026082220573658581530014374162008246823248408872531612754401356970061969329981115632269235670908697531701444801469326868507760460774455122524459507909717974166204755390137753326743194954942622420059437105770100359286311614715324392216395301441180798771914492025426927786519079623960751985612676469524415858326207410950187048496471171739319844769900919089669197166911937312305526595950828007025510310149467253503018368901732630300188070386153578372737571717376139887812166452796644305664325944298088030273982729389480830013455279529013987781029754099495693504906892553117115247738467577452160803331910689111773885073459350898547000653773970625120987940839833214201370831075837707823351875528218991374045374949696415236076988202740141884812069469465522220952098451051921761780942206832730323662637364692094512016712824546873984274787824579743952246651219968211692535738482787792523793040328918845790136225353408591347710348990946316908704096264273530744129217312941355868690843251526358058787757169649859490745694894783094834116210506031916554584203334122125229872468550521572760928135631169943109154059581491967734122612958196583481689847418142259772783299287538999192995838047952595086086730584782819855540658052707796500491408680761824938279661663289692273928327308677069202888732230076714894574112494037741573383863120598757196054634454564453426608289968276420307599153853688551665922378429240220033993001054994699132561998058574850546237765444801422864032702901700948666078009266490679334384162919090609177054751748320461756010347222001731690892146141353356046324394941483096432061095874033982880732800951390733571381873688402437296929298960314710311643404991381724175593353690487859553315962641483908854847509541086809514814044436502050651079717875244318534083334351510526234557541060306236879215849785940500473152747724048539962603214885796403230197526128867206686355364831586778331529252365143190181041449485651212002875523539085066827146974405253031289137538610843802852262082699573918241761550710945651449308137009026954353206554129687015832352895561856222106314425841623629695251560801897371785251500063801423758470928156710658495413686728470612042763870895872751905495938218957281527836316325482371310246577783452932849790757438201651102288283827573035746883741157302633322505970689019754411494828923128129040883428254673543748737740705941985064895297781623901847098942053914458864429816585200062524255550500303027517248113555695701567341149167430333215572500951221204865709870662961844116962534886918105404955932494495870915252083122079742663353559537145783521170022763057870673694762951266852209059308071512355987249433068605392286237576385860793998679704714853301307584820868268686126819412332278199170819827614697943112560483738006693099579286967477547543062580079329286579477828285002394934170172853259026996791125952718713322756437680979550555803938348461648025169199192284485353973158447594604736623461975045193900364748423362348828750681218962478157764585041373630727249214205910512401508256428254716974040407503488551661579558630657105436638489850586670239479841980612282510558575060665058640655948408273905488678090097275386382255257428250713556796744110845406574051489211781581641545294677540558326990186743938679990350133717516565989249559204670609210956708661180336342874044712504245148157876732358768553233048830216703823260115975694989985243008138175646234352828916793432760828944312251157032192270891344716634909399884510798098784779599904626874819254488143139959280312605759094190928460444481342792674256407348782933661996015066680373718557228466628774463037865261080002387909759401739543425762022705095935200722772251270146467051013733818274529518533614238412224836507282090389210322018920012828785285422637407774409395607575353820761624772877990159328726731308040313626880815451722312955833252659723660378106307892381554829944349650838166506577150125612515532179116525872691227769854650577711385718366122127712144563227723236744397927520873634195319259641779332212494588794425888475904802350688884205469435608355265777602767386425949102657210835153765258614204211565983414690487049195719648038167033507613473941557110021861146505721694693760237948487041771231580188913502530178512421672507705299918087652605798010099230825178960940377689812025191571298016656863035014352944790034888772325963470854798679943256779112217414595872012091040211138466079507359391150033479986075744169471683548597601131989551977825889931532725537611726429433855001407360504230415073697036317355033803842114074701567203816811229694479663180032286527362175079075153834282555405366024280966570915995502131635932959571087336201852320373332856098720165962753346956454813328530469505290576943052096305784776768739925752633351264653816630333109604062901682157310411319227841096758011973742104149434334139125442276148371905805776336247555476340289893782256430157465095570644396664543918810615618480184478209761388062818769620825092245985312438672516119995411238436853041810591138376732385357431438091012080657585516619386102780249192049878394766616104861739850674303216083396298860838143526461862631316009314326283939987797551445108145551234413643166843822107120829620783993023475388702110888511612314913655826395947119635709344177474671100900257971027290122600219276703863993334933834850032367929493811023082955822016869444940798986066484561557673818352745721820314459278474858287302695383947790270618803264872748342716644329795499877951072936256705406874368242440126510161203045667468035998640165429024110108539337295701034823992540047136597552085633079305472693559698440194422582662609200242409266455055753585841951636717119873525988672964814502117891164363561686418366066656191433194591684694903440164539895349952408912995790375722502708052462986650635498872797914271287484011479394355381109732700435310853976285064162285569411507301048786892403556221872307385758316546187387495927926029969383018205576420770546250443531320864975067412705653905372580032028906042661641558400894453032147377743204067469789555696603748462447063631109415544686373881627303853722306844717455569579066906588669931711248446327362878291358827785522911037772631627765164843247411666076689133608621727676209088087036895904527622946298767239800974162916781461905124029032750557869682983555714610944481363806216427703084299680222095753357596240256014477886352772633249660710596009633007584248351861640162455429115113975550146622741541443690468962177648857235971884711264264905202190496093182286860772491026722909557233702078096304466296216211748071075451421937569789445428754847469804440910754689787528806898435054127550543960462372376256714476047950256820443532966789720388158303688840299099460135255283113078092998698693690870192900498294395117093088752548862762730800698749427580335926144928071453411537454583454761315438090101524056870659620587832179945161424590100558020288816523278742997879129493037885654692846057839056647318359037916137839668598613388302671068928520615257970417199795368279873808896657903189175393913152682351786900805692421904516192517899920242585361680666135084524244792215717349723095785946478774837495352767018344870620042509033515000441557827343974588904600245756510046587325509272431124752850195284177478338613860579292499486262418622278106122351253465521175634084948734082794528807823038713681401044797637725916896555879191714428562421548510671421056761843199938449048738990628392155881955468988340832867505122411604088209668632601158835801820139668020883565039604330297973313914160560982202158495785060660920243136457266111085870904035787552265842718495405657835880186404715681187064840501762579943106334520250470933028218895353890209489362416867942945296262545010449269071239227405267668150011261205168290006272905014060135943643451683974302560282905452848350993620696704895801649224185682129779353886315069918563420520592307036026997332452343392344935309167846977499928556022249775775110543735319161602687413099544388974313153374177620111917805299373898374184481731841181038482007702027664190318855553560681724770647681966487613699399254813322047802523955358434359261968553660361151744760572666691709333677875869325839320311694531751476639915796938301144327752167371337028797942733580776535955953518320071127734154458379252708002015245767872718023700708658934434876272210974045328031002333006505398686832643959075945188091712176486681676484130689827948322435419756485105619485324391261709103195440410446868795648455814834961462759295192518614115855152036023046796768062130122618902784230509345801976572766227311354013844722885250181643987338649583621947028361455084203035203724241005768353416852851707159673507831557474761936631353947214405372179140015886279501519402177317240500671500102575721020953297319319899087670920027389740275652988761094808443564470929754566692850002909235929881566524391325982303507517171646970942069933436055841401555444798797856893154685904223786483409882975630042410379992422017773925104731499363342370290086714106550784157492843860871932328170282934745128543916634959676699523933102825333155543677682193910510948373060801818351247313217651290859582097890129943473229040767237019988298604923023375567329560740243828233636886894768558270556672293498206212808994043020912461318129360475130548885666545951691726234948110462291896143276105312661360334310949490237491144508822367850828663220359549657467696694340811831710342578769533219969317564682512506207460473466001301833792642143636041931396595653635498460070087516479827291946393078970154653048645131179357581952859913150532276932519713925853482339418984065916862693723977854289008190137701621370981378068052288337600102333010039272441863480311961419663468607149923345244083925527882883983021035336564837134267832748593950747490309464576996683325606771558241966192191761186663939918072689771223586013822683972046112247669369670877130860069218044024107717351448429919796825652732589578895848509280435281758489271968103520129670017754805475074933138728359832808761144544983676432855956775392214878115297358878255216265517250892616004679891560113617084080107729819624036259631161181292280445871802428627976666934117828846934286394884692802313421821300697154426760884490393010272388672165235994520518535195698106702041213945963527833751482297123115746247448649999102116133427094687013745947668348958647038969020192405509934155515789414582150537249676245298965988371697802341190003260422410548276003326685334016984778529716992635047563157884849990658595524917060199932618415542193873202279538253919726650098498511876935879906782265673596678274127888599964273467191703255712580079512262920414451913154736360748404432825271408255009015989271403697854469516259348148027380830903803226308581179417035224228054698187153851328325725623407144764275518844683352526910192672234838551532228573260553170983487830991006362183890123478233903055537253093169344716035968681959000488869558065681410481464553826164761110006547189349743881448772554204271996787573487127922213943766683483275622310201012827981648619199789643661564612593442235558805244453914410159444501824071118520606781534281059303073281119454928770830028898648981534074377828706401046554912763698549435290497784160352380237020689774414414096949304782631937599162522414461770392102052670776331008353156904744700051805765589183448152793500128668905751734715755598513008515191972476010150627960122048190664994184561996858703171127194957119705481716213372042064282408908982245622032506004296567150397077864911492518931373569408434058011708046986313926809331360332498749393526568516222826625598150530733078160668426120599045850174948196177903349134199024588179412236918854689179115877974810711073236678900550662861291719919750499621183866725289376764917490804850099300272489060692216309905168638545956601986448906617113837196770958126524467159478203632767915353316003225423586976397526517252466502004515099283719204336465544152484414059873273686367452631356657682016168435783374722185841641042237344794122462854557749356112629753567077276916804975972952971493829708591740489046272798903948074539068847073803202451022994183057140977174554061583696258052709164329665580105652940115577070151735993890465340730960265174228255518753216388077795975377770395851263187015263523660949025995340360145535006972700634381227901091103060427525200441281629248197831242125394083951970738319944432917952134104389260944216550535662287579957170675892736581401998113810983133420443980956141584208886941038357360566347133879209398505697523920663901155142981586692415586546715854214453165313331918915676766045491170324494742472124049523524271556559593974727048755395521811597606502324601888028686260847634155432500821755433737039775289944522023722630445665530338277698493838520555901065991034122187800914249881915037724854709644898435750572119081917509839531554011937718478979142517985715331789306483311271903993183178382323756879947643781373924195601192559580958349313392745709482155534321402164135643076787657376470575654305401158411386736842121164881373062037170317337180586600980719813846861646223755729798014945711837585504750970595945884406467416771869924897174604925691278700244079856923313637863175217105696267232505294373934241669864062472495293554436583398396286674245436423326238481262022309409296787578376218901368520720890175813570576662633625217607065748835928492260388984854374388598347818379574237750495096628765431508116392342332988197620272761903639956288774027555577068977628171304004387209412846599397336602597907934820573755906377225447742671161258724297699782495936073430541962869900425805098954957378906126431650560158118020020746961479543817122037151374496749350737936077057631489639384370998488099770406268297682174614127158799741892533452763849032929970236178760211023747592371448618118102702790691478693679052147907166793163523916148333426324630991235625342129169049705041044552046615427642307603002838877640081766080428156518311803413659581809115039530943832205781058335768234148121831897237268398527927961055856056777970055678169452302798413502261774374702671791684421708489759252715215959539799138029198902068992566141817422189593861663377666010578196528872883985128383964032007456253029543041777631767233187622509024306431542895720130542699557027110687711116554891377273423720103244622995245608094852627466645489185018173937430535419160064115439139102999040212315434094515287263642528110039548940717165454690621037903866848093620544032241505156073119725364845816878050474392265267434275818624239349192735542952723394157181875027923076126981851619192929888728379742614638139779822907061422751916729868807334824186503929902721781861828851325033706807604598037651125121069727914692509750900096627663424846434486567153852510599834761839878598668281315265215805050309208725858200255122327905813868481565489503971199238411211602411129985532786700354519388664358047901981486465580721604179656853986259516943332174747930059699130083429487345003834027264000923277512356313139370099594159259502671190727072914023550854119378897717866325189953432644685188971854980348188489354150160011649759683780484972874628852606764291296068176033372503654176962690965101282934839377422175226194350835127960467773987939320695676874002172166790722051329915250942414224005567391669879360909021402641929065670365522340108284791063543049426659357430962299805630628503643834569249701764499669518045249506382781173268036326227804114152548133252618641727680625924723693251121383975513382449563808594982105335499391253710756022648423043080735769934833413941765338579917146477961644595360796824290883148640015449590869625937407411283726641961881201296335525283802604016385533568625408383680735370051621572655120783269205571708781532016050504049644671105881171835773048384052160620259470461220773044634204983361379727104931878308732274271164838602777776843490414225658653400011410153682886371037591904296979236058174297242775499613604824120891423771332400512696640262922124348857025506666836604500548704409272438124926656523106442690305231856041460783431757938444527220951476931235068467942253024159297101484256504607558359783468192172646200552924994160244265521256863235174600315139659156454761122868199165290843593832088756757497492740747259644872765055589733572452984956632507620516786338968982394315291827336703897320466428961024201745194803337655161527417742826990788516130358193044701978665908825178161736895289265973282608839587080068012681453472505117448912306081887412971894131446568146272727703106076740135183618566808695319497247454560155715778970019047080189670270749591713374404739698658736107490945357263961329894753265290088838071781834654226556170390799946935448492576141696919957778251822200967853600124514750214572886541590979036917879218949605756970667123909245261446585574783516198398109137000033385973714428363649648769292236877546799620346064880684341615884359016132230244615736564116476855658827137455773182630840330892862592764928253917785668551824145095674704200928298745370790832178004640783834088056012810675856983881051546859154524208349018593700849261508526865867879398593117959354869122485124074408998403098096383259162856713960930614464248962910559134841147498990864184607333885035364155784773933309458590747498500614198008953639595409309965677587635087286014912840486642354160055136096659222696673938246825847244541413608311635102007379846946455942448968812961975787692436742782239564446799662048862457291699729893989254938484176270281438010698971632042548139074772118949858209394768640078556957214600817599397485116990935086685109651321363160839753043549052887037662742996385701789596766170218900793735771333858184928018128097030068917716663222556512390532989358616628625181893702182103858680074167753733899472376763293812532045606981511512420705582849893250088258987353337382117883135351193167132688048082513704613733267338380611819740787339024466118513934490650255935824320794569282967477461069173866940208898281197326541538197458131014793495799627316055921546864806156267738562761446026860546684184588504861091457428059945526124645322819957087852349162705731389132483897741034044958692776360038409664769092155452797758227718183402742506304587136614717836953850811403637387233851117299761795370083764320169814333366881921280368210308134091601433252558125336708457204604773062804438077260459658312515009088508411745964846951614853211121318978247478296321626454621303133110360137325824963994838740719896124060794962850809323519803574393455728095172435601808423662385800543103310422195161243708982671945288204851477977230204547561514993553689930288062322541189069725834476410973639191688276737086052279383361303217085534371438171177368984119158778101532880724334570276450540906711663069737343931027630739544267439028807554688157116908836285914646319974750543096484502050408300534400474839888773461246122687874901628862861081839347622008804458538802536595566627851897945712120389475407919926238139647099517624558447903356593783904732909803429254449462304683325238020405094799887777255252562478081285394453384983572679599005776414547227750162979617528804036929040771840333497440729201643128002693506409000275948184859676129363622210798238284817684999737830542765156145458918110482563305883401233873320245713711320894240339102094828941516124225313610761481006623037142314688913945170305874978630520674045674932572190512009150375699188606081528176503702243513238427326597619918672803292109847906095471687315947643630409006098342131313336937565915215451409020410215006901886247525267594849003794539048128797081126232970671979872031694698938861178167846010113424197159739875989272462556713926689737543299678824368693628057690062037291429408135061472057191585293512769831785856335993353681168679931010170437881057967175129629924400738131469078413245687046952233366612764369018281305126305007395821380429223148976195716056059440264773665881239892397555444411466277952447045632598299009269885727511045544039349737133904323491279975087971443491082295923003100505599002605346869675922448682562814296582907471851194017916603675874703211816212054113134104443662541284091160016537446041853285011399206207970658787314194985901704273950782507893323549695680917222446898281827453723661796451576176218858060948912094061064350341433545483305592810337164719147384666552980045623385457033093041871563023600910704408423809353616414406450624976469563733386684520433733742734763808281891701305686341531110295309213060925830669178378104608533777532163551140498457962178139590739456978860639754538652970178791977901509816284669239423405973421899910512527656566591952474199625776197019233064292619239003926124054295457607366592099721309678814726398423540600070042396013496288035838495909393390008915131068669692421558718664156345007413018708921035323665218321879530656478585211933098925808089376680066575849286666363670898782595063405012481841362648561474189613657660499712755516125166873376168663188219568099940992200650456966148718267088869260484614924819703174554249476107869459919446055088537678063630668547351707098638381685249782043129623129472133222372264829379727778886983065935939559300429994610659982895061724369857432078705601206228298218638211560812024860658346771407370429133445686964817828856811422829484524628018456396618450588052479918832492242251241371447455903265875107766888550710591215178511870212933374556041272849155467143541552802095279335992439791432281455233551315002239441985865518231023480823913425833533136462386068202574440506272110510960990834884602461871224330170058605237037168824061019352992628481866851817018044526675822228721672047692996901105526811662831969784061519306994818805887584104665207264701820605785186753801175591658053264941529859722162705832050192198983123246695423304708928617023296697490801341065686496483005220646724377904398699631634072522977763209622267119667346170906668525455549002726226174988278424269471668605272524364546359198075241488824956920023587908619804985686692467588621281850685083531712749604045125234171302437339715451861522147755094764122462042491183213275570562598213317622823642793142685541874943724334505908293855627698007102255551811349743477827617004492594467801368141762341856043727466296751565766744374252767236731543438331464555854367452255192919651668969770746846852309997543727458178693666061037765864062643185558216679766338230211971337320202422622352941047230173176895803667554568150820304076915556409613143212447954688735162576396818612952768246527395187170177537315755149754110180123491312962985451264418420028592510470412765587209186372842946473806466414991914787379414427071831831551673227476921731529290441496453085542037557634747822071786373595548034085320373410137895252826874199600311295181115697553508649505878972308709265737303046175727331798923607712630738209037726773374288318264954186491301197539424162096312918516426566200808738659768386366980833263148694975032131809763738723038704177730267863581339469547100175222448854122957451482273244691927983023741671940766618626186098416521488975997870612486190981105316421627163705236483739228345217393963152197938131225437254534319539762532562489000086075034667104402542520227605416102379016834060052849651456363579084376110025530116586451282412939059261964830377721742533654531287518485946477500268025632265686731103958719016313416027665789653480887859357489849869980706791193178069688819888413580675590001864394026684750115212514898209088377384005287951060544034296771389707822415420379875174578212145015456554635093931493262518241567450712328869399679636430725147218206997468893157127340373779981124101096445848628642600542643546732710040098402849053920275006559932812164926790488522508930501815539856353097781165708608482293250475954579319312947343352411529658790630735213636418864653559032744410201597190658650609496337890129914182746767736723070289596807172554019712878614226789551150916880584763772851565650665506063672595566688646368187334515213688467209658717241883933096796825298291314389236416335643990998581021071852579179051643872995634553765071014466584408605032498583009919732845575693351895491291803695948722337470014989102335217949994664365765855554671520157446703679172283620482152474210031092817237764531254753357131932000382908629852029594115342713186223238630237622834123321463568344562698615166195564804313382106339222801495900996617024331852994994628767076588577270788871307631855925308619749672416724113363614569810962866014541261531935644292913514950011089185637313201483301601521536892077688416916573211742833662844010813016088361429790658218531509164802517739246349446012169824445787417462867011643223629413276831605281425192887780148175959264187507458189186186547275895590023049271782164423131044624674998677285267761695252676611841008553468964821069317417913707296424387807391853663748065883127406407602235299252719383908750581879538472116415911540737573048741634965106850441524605900644506560069351395679544028507893613801550022104396281322277805072061142787126066336836941839581409111492473276225040130102235202551557822433579459098388525819841188823201996360183415389723209375385211434621246700947566931293264034665454027442801982344053263057253928410797142856358321878378346082232704217219237964204906445551945172382536680012193876099784148141070205145255883503415906095584609724259051284988835746643375319118778713470850356890314726703619185912696913658899836271794978926931435129626779347446253758239985790916640267448343986367773630901253409197338425570644160784294893740433090271944042462000852666759087486305553365887827988976102222290962183221686949818983178376350087399945706891061563592878903106297286900922949892990174211427697217861253900956611575639867050519051505135051376893281015495700591575588238817836630354574657936989552185150704732430270673308862507784446462447013045662239555375604407501901913133792467221552977187080835038706237405667823201064509784449991639016742897990941214805743568502530937451058373985684945025038628389696764258751090690647181624745596819065215122404083150220188420700100799066913007973789402716848458806231994904646050416395059478298331357411912907539927523679055799948310241007345283338322506974426457264572298211795068086270204293255060398534888982012121068268393336713105061626087509676954210410540476077841336375691360030617574608611413833630230139234589961741363761227407287096853728677333164573128293761368880984404821107793037278282910759163630748308147115095541884601102123741653239441090041717761733194288865231648565734684818376980546474112150347966635184929576399241355383082699464139577642004478289979703825369185191676272081526328392912243170366443804935934276050762559845063221293131184030724603225153862535011972579610509233642376495386486511410579583256950197820333303560528281526247968752338892058669536065817902041748841439328142992033254795501080186470598453856995237604706570962850084084958761785269876356330764132535672170351427868602211526644397836405632479421681007966719173853319295292544370057170309719244639275896609907538092574151314801634656811475668615337898991960923410216109473916597075380086199968980322500279905724283064037950887787070324727454337700571147840199156810220506740950442682083211363935430979203750865001679920548160745225016798218726501702890206479196393162414266092617681387873958726562448396087510804198369537248176916802056799600959249446483279353755153428950994597304195597603698590376451900057861876581863894235563753686035947589964728120896451301436583126216908041893738939456134399668301929639479083307701018425150524461685608727658873661818064010035435585037060332747821751252339597085321993836523643936054191995575764315366049934721960859629930366580529013266082076589351955862129856259817256863271246612468342724109646782154988780504879606899129603426368858754282122390559413559475652712995957062634544852879645746880149878960018875221442663807037269264138273017870041581474116714384476055019543218116954174785041509105089363191435821105282936344384890465899464629892385889520508164402758530577711388852825714692229445506222889996523696852830515999064314677735076724494445389734875981402666407552673583676011124562131635808346227531481777335293380581965067073918796256702437957499316580808873184015602671537101000725072863522321481059034232116196331592150228115967311530882485748802706652021151727025821783393098028542344268697939812877665023046747666056909923398038225118668046455286929602367802603548057429589940582918564141125321131098804490956799241638495410567689578962444755057050047762987711362036601655834921660449462842118428167976688131878787233186002752306554489546220227918566738648109366284846843813772536996837922418529641289350120338318967923731515541936954453135500627745473917152012569300015392129359750641979120632651346402577219356097522614975433018348148473898437695758010760975918414628800970027875935756890312934257234559596502060387878789163546709030395160570429327856019624250412834597096187914305407506263289545194778076950609918508969123197308172560504353551263091588278574632195666500352800125563801307890790089462603751798750210812234543763321373889345843089459512322035897935040580268220104723036416658795083082510958775803928482379429070291838881262947727061036682085552367682162397152841151156637825021161144915176818195177584857145058556559035624251243324312725528982801307282308704288824531613830259176663401341455166890350035218504170129556537957514941531690927052537142694307704790594001205911299180987386192847659580485331347781733529319443241486516093998902780251704930978166781866770879455220389529248277189560230279288106263094040444626843042613816536840699911034906118756653149476773254613694644378726615150244718624420775915161889490945995023671802721327599547879365819625474452029527141713073727982519826372970861989085652131701097888031160325213159144279865453184536691175852232979562613284708528510298052520119425552792353396910390092756818358630197246662982876027740022171484034156683650396267495752952478430337412787533423956651715379483613741719443850397326140585586342149094306476540366358612844547368512176975165058392815796443873028400872791681664291859743938817273799276993429875995966326660935958807230727112430990310112633575408842624142966151331822450871843785242707176954299687751536696619104351220774160636477197828409116379661090861705667854568043815916583630967321697172003710542453757661170523771271851831491051797423308957404132325073940742921333821837527537934526879928475504903987979222452465078570404113359495288389762089544787480390201456331703566599281006497362572017389351182770003407066872183526804392664108508633901766764335895007886433978153731971457594591801609234958965537030335450863528844592608614355179246881105034647500151824612607657041674865992365213507202297953286835976132104932006116012977295577250263026452624158476065412849365698037062036631310857130008039179065084031108980595239454441670454340692716217929962836328899530806991754857907782341216314345484997970987060780791396491120318757881326087222089482877387228440930259849231737408470345211230876104683059588573016172338659994198507505535548817743343571327436192408151902185882354218106694330402571947980341473344297751414225617329392580088193408020683683059727468777383046578213421462777978720899582414481593342402595748567345813691502041644821210951814207010004590686429017412829612848218992541239872139295185325100209698763692815670943592384692112573745959521162121224885554015777845247635113800540037307555063365716739854587362588982323527947981915141703029383662478068389465849701533580944605935457826458727139963589592845986330443487856571785237966537390330875384471298693365566932782456435284843145154611885624994933425806703345141902342365942874357104596225940283521683835472139928891963486954905545755756743885074391654470737218341982141384823450972303201642000231088103144881496113955365471467358458482465812913099620503437147577664755866565484307500026868956773787612515496612986632942820262676293862161600049660029249390293561001838426098541690407257571982759966786306905026290682618653740285406886635105632588701529706482375463276458586553851247200417693204772768322020690833658464328541755277650124555535113370506308495835987722347721921794153444464735745858202655701478821696336777071024379366396150194691221037298315565834034761746683812128619475591226853303853229256525067446365828276556520861094210021764198088977030355559286649132470989321064285591388621505067967971422204110130994569051802156731352907956069898870667536101311903315131460745524741597769446450443424118245054119029603631985859192561524473513147974299398004383032410398628453762685193598493647269264710781495425218499650577460211861639725046870369106144617140422205809611960839411450174196348937730812964683407480794942019933488079110388459224275366747554708751692718862788363709055744929289267065304211591864435283623897758269261248857571770936976246148845932704058666699368982258748778375162470408135820484959063105313677825514914250784377414035413412785080971455071123650102386574163580943864437131960015310423535626598820484414181285997059498064883277287820218375025911288969032970061188912450056747812468835075115555518752903715888089114482986353366777078923460602917563053622370123512513490137364056418958163611594752142999966931607320607456776040343000770858226788316864343030327587380648948403941800453911679488248690969071710044582504350424688613219047687371700800027618796218241684954928716583378453088363154993349121012721223330805395528607368038207580924676345252417711840559593046415306769265497595065050818609476701168957968349056419876059224618179111831236351146785322203904674358931304097875265916811779464667367236698284128278973243581606057877095807011104288910522320764479443231650898356776340523672394527136986615205568324597399349965351980914107560069090031577328423421204117999775440352031705773530696979407666489252773982222816583054045046612107278880808693121235962651888188583736052945760130098005682705807553089883405000078438233166001612614787596227275904333972122516947448830350336772356234859232705274575297776026477595948251631520525357171323858514380313758183940977844038638452365899330855483546088058455435636368506782026032474757853691580732764245970280025246365614399532935623264682358866220262710955474406376390252068240441038344583256506207679686038533242533125727118151261292232070100671558403373186317274782806740894584363077911883250736758990863344575606818253477923558159614870615860326392309409830855854133711455934954910848083821826557821836037582313052508342819598356901964683596159397631511019523458443098869219460568216236629361596414579891412159629239521284385019479032268977325734609411008084107941018582482408743294932415402413329639996055742224838512957626891217778709868281603094363654374573735940449520073164055476715904317527882126754391079209787257578986139303599068480565450907837456503658925993297366304678364154071397669830139884430967250972097326870603557741058702821578124393571732617563259029589612364932334377367041017411712323898992086879594226009974734396128703242112045720306040492057018714511803789186395957641529269652073374264464531513417116864857238651945317569440198334050062412780623314335505234508003171094241879343437081029721362953589185750735457585460518491368407203569969427361993706616142739533145112777380024432858181597983087348895901180334552901678980487923253530421789265310219009263227528645313932439330999750578261764816416840615802065866182301873883695901561159335342120438717953569618545427824154618764130602905427749502523219069753908764522567732389640735145576772411578121400453000906804867217322669801734080214932983969335983741093700619291634614339865294987299090170633610212628642394181024334926846833271560852343575446963655081812247065242844688899618693423498332073990642878824421749197103423310330973267598267604561578559491883704452142716867222886693088176995549937076842972866698308535403260299319749141848972471482431428716247362794811100298239775888766830790854905349308564416547537943329003639689404259029326912550428288910930345024355649820693482111171346243526033312668618942585870847338790348669402795957855473248319305849524414012741509706426587603712053466830356937367423433388988970728478943138482884444265242983238528237968328457422791733661040743748373628872233441907447036426379403753718004254513031696800034344268748403363782565512554100021373566771837153515972245427281017019318563144548061169958069544624483550868771069040129534095069864870137947164728745864832644130023215512128206986324400691126170138564035142861915248991464280757507915238834811862779122560429343938414741908806909886116949725822292931904010855759018891769540114918428680886072939244198331425727715617859253855074621201007927601367217035609935069774763249074789787649983909892289507850475514365053312997807315142284954939027686193258895940644627660604962132211382803961491838064274204797477713882992255251927494097368049959332274193090497107442265447782418561749771785181829908953171269074409231035150552427146749714414772341566282524787822048749674712069469721185012508919148284451524227761391335468400878349871338861148771970976982350361319978015829561745568125644208901785897433595252408028235525889738566258723809725909903652589079291323335911055514082535175106922746172764085480671041585756529954496618047802165123063086990365919701025032940355501118414059771147486692183607783725164993989748671985865302077923001390299679947208790462848699215739584729650655227271635128629402404348865194232188706497734925801549813321505073356803568660898183783878903075055752651745921938636144596262348849748994756804664648823266592733874279365754080583860642589318189260623540288406234812626540545663312957811424290635590249242406755805951878038890001909124759857503512809248649998620263940878924085135852478781040549687377105322855232132780404218754194670604009358563695969561878002271074951819381404058133737981793397296739180066736420471144673973559513394472396182645532599864223773870989947346087914065999523082829001344156731928986349423728208300065704935813552472175860603032583708766032942703425386890501283685636611323165505722536661153430733892608791158672539507144593987875000618623404017109210305728590427657799298873575162896787281801020763905950007054718172588052578909907905110198700198658041930720895696600727242974524785065425020616295223013000368134511935569884694328106946957387969090285904480638070899981834144839096831237546096053174974971970153913435061530596739979214955072731659243603344169961968867694099627411728197181062460427389502130264917684488252537395490684586588687757756813317087365894442199606223041455839422322734986088964536479006122029213688653391592018924537289530430997548235415566107024627547115939843140457033939648162559490325658201613098880585821338328066097967094426981074166941014081765561225885991406258976502421880881137790050746109313399647069111715368576047312055564357058456300737288458603105404906380695260640116157676805085816953162997125562254492527198422707195160113679168198493912418427560116812769361466140031316931110072980581601678960947483360419564744032862486378963772995800738924986521848653562265091737990221229750006819295896734958313769895589129181853983292746205074798501228559591545207129254929880943605298022755740643209705948097741129826143729904120082224662841766666033603608523037090017002139156832431789201530548587967121807987826886862737621379894367469360415563230208565849249438001115734890623461058016604761562451853113558319720010557000955265665972713133676646186989869840898265947028224932022964438995825070826950058558723404294952663983364545901917203167063267939130621727274190384868688919982651987636033436694540759868130545924988593036659475444566601805312538107808201045084903921806493687417827458766123174386409142593050939920028797155060132952660727250260933937755065796325059161364828903181860915391761854774555752256828352164749254342088939822783392394880781019830211237077581162036581093438147172471917484605647830790771663894980748716854524480587017715630981561874864497586593004632739183503726575592923866421626519224655379473784183453142645212951736668365312590186757059172785107649512591348068003002209339517717353256914196349598350472340874734276239718431834129496970663116439066219470812578267819083214118256618531670407590710802133355393845868238188098330145872598019201499918587243566967576709005441725917351631412715435202090639606877172913093280102687377738115919756016573359816353021783341055203510091326148673819876798859078087158774544540777390899513244194932042233685609764498209026945754793586502550330783773420334253017538431002931129266910669228447282094784660585539775231108961304150219174401271345402376038740605172358885606110819386114468826841812481464261838381293139824256397680370677820042568149329494623419094250633603024472058134585862533855366145717879341980702547193143437655728833766324728948921973722173643792003572003451461220670021635862396542647441709796375359003757210442312070212778069174408576599034939479550463025127177494115418315452059725156205880795497037336207375122012614849657639631075673748887599656749425528233205110111411755440190287896204577712338484592689001842428640746291805109872432973429367556023220989804677105656538347969787151559737963418940764534425086673310729460822842469017927647985733660463449971204718763163733553561732741133764360118461444904021793185632873705389796788463157361124301733016447010846057240737818509527399119112052162363529286719591269437923927415040981629889442714237195585335686883304389949929126971963979959633208756791306218639224210560521879838908015368512781141421109667489868656886914207471014984344810029821527221713216212974751027239147168794625577912783172642285385612849332635013039798543414537988227334062957654588257053339348428049902663986220348906442090634009056534830900148056280564080328752118804744119738958985675820872553593976744254451071821685122403356895310759098197442921196020213103240162658591775861213526173906082945491985580185133586176480813697351698828539174533727011924253589985419694560686617077005593818317691598972151202985822966524824947873480741336505928809231670509598894808889490170195799752458526855794615464914985429029519601399118399354429708758805250339989570761723113209763303798626117114055339304153794488783277314789371999673470716780014505163809164274309778492761082348247686264415328353577983497514765562786345964971690001365719857800537658014902046623209490705811605345944226243850643737394877336514560967071482548489913225544846937868240974502110582800509896236048014524797403267463250498882125591064917783716660230216303185362165332702788383259381312550119519672536103230266590633876267917179253166320703971709220091692476781163776449286076783048865480580407235673806076253211195775310093246844453522163961766786457845857291066317218625206865465340431472346242494339795475390256861584616984707831136250029367608885518822291108115508696570109067251030135222751009074837316083306147487956068748985567526433708290181861470961230081366306728387654989187523328301659816196646380530694192705081658474086601747718538733313425454475167205621314374291553528575437198735722226726420550974659936711125549664684194837133512044164756179295488905755333487022485917360315703745702843243409118529388939640174530043073076089722443284773229544549935531343382254835131916941714312128486037879316430056684512994052161445313505369689415167401040088943668424692079015019169580229932237027864441121692246614783763432301721849592608669743576104339452582261947008955388213127067066716017088158092397626823242265945268243505897476740571566452585303031491510634570827725163400499183152375362046168794263155189597612624495797054180109268093270305001314752069792138349654104401078156623230230581174466886993696193628168904407840386979769182820303522981508404868102383913316359984426416192720989468670700473263415645704909483618586263419555957766402389750934724893617062661378222358068224397232452037540330143475432964014263218315518175607414477174520283182520895564709276800763397529290998029763392905559213748475327785948540422110148136524740676404847889096021811987276709091863284721597732501079329667663916742154010691761749182373157070598913277249986511065182386120184605876078198670744506795430314546983899785609314823070790899267557871955151184114561319864778539143500092656747823505880758531126788562183724438817749597684112382645104021869410010209936403661921140855553530024754647154463437326947611151329429427406443268587642578802007697262695595223603090474720283475240227369923589951618402935090873915578560220320343060760865348702537625610868079063278947866086148145574949799193248247968205394033370644824164386829004965493378848881775886090120525111243145840630081910162826140357985055961008388492940190521907078359754422882794140895488312913957375500359676203346105509418099355510746609001551839872010540977353407696446175417950586140831921142550563517834965366963222141263969350039817835154125450724446735604963432856191233257903312050886418308623301419684388666615669338767260855699591776389003868280786494193276083358951814170742363168808155830222755247416938433802969525900012959849696600058786561686224242441250104936972409885029645446107334509808189893047856276239915286626725437644017360361379587155657932336113544852508166956849303510090117314607929448274739605422297983258776673723212611039479125204584036786458026806188473328885206293714039731467096085842423678258697342410738870593819101015941290095509969553610258605757654931284872687845933843331917496866195080735363496376073885618406210884086109494350515108073849175386361478618020340425043482250197690245377835878231156425696476749131669294066733503238400762338460894164863633356619826669432106970840704933051249618356606708166167661318505193627889286221036352737281530504822545133426013051708628952706588271413465109659029666928840007386600838590145201211417483273893964271606852240741720549021467460914208071681475265364322427099790884243025340923524569767494345912588195558532587885261679314288520616523144139866094122477291974534211190565282745866259257117586483081277909433062447942184894169858426257680933928898980723805287672316052716584796811270872303427247142483352025161628695247959000549796196801781761368281869277146641131213043707690297758600993171862486613107527167580019438058692499016406220827166227825960438995354838276396853858717372416227301787690057672389735128298041692336947174299686581051121131375080163670963429389533294925844164812527823052714521111076630423365366857110246348730748908151226445859241438194259509540360626898523628506719167403167254176255585636670138877486469924836056420282326110191186227280896572000945013773358758244558163708810703048359393382682643176438016832431562805034647103287665733968619427147782411772546370572610710929693928368571994195469478933863054620328579763255482429472688462492419226754751436975636405317674314796837603554759270671675378830229156911686308893546553193133727865118035683223868442947140302057231224453238727463288269687702007447460374223004040348827670640930188658414631324715844718966577527959183929046872892911659718612928729715933231740071640087131147282307347706352783646821409400378153729867136134538581499234197586195999930591686702825206074181419123770716703332890417012549594786840821760972004423764552697234746022118547705365471195233437186029469092250395496590120992134068469272651138030248657959210602231093063877448471390798405730865096313527787356217415110231481583894538439347524907013490792902827823270906949386610265352572053227587207619237272703694942570204219555079697816449937709646741722347731890861726842850931508182901815774233497341205554615185182892519110864484353174049026940382609765490086152201195808405717916728112490184171681885818493125377355485600186318084605375208053407428668331696868763114453956006536388276088872175239957892524277121082766090631698052501172290629816518660496034201678626214657228285239049375644632100480970711132539415537497005648069259619737855732109113888057217814669188666846180421677027427249516303320035106181854105834725888783258410670134815358128766257997952697934163416720579164379056540135157597776515368467005632892552292732705093879281416694013059834180244384987809700621391282206862833030031799834974550004092979291564826119601586656086225481968333652105371014680787022310574689784749673320874025360008747707619520775334914137541512112216927232881959087612979906358580763861709766318487793686204038696278882332122045945744651181382649514342867676043050541152666338855816010442129055370917924748213857602500606108677265555092785597099298295925559225678243105539646135330774588254421527967556210122947651907698901963924355703284298301413882087527405508883827450474561391366544085993832886436789978769283987106610556186985081114941163189470464481114795171880908342732569099306793628975977137805336197715096958030550542634842166909856253747974113079155206897771785610687345841288691408977235269487551767275528367386073347775012861528634081560263712810544240530855073492969045508804217651558166772088404157519125843072854165024623668023912741186971069392593442594826712883270962126776124304728732976304409803502885946570226957077031075069681266222171125140454800623219767237097709178948895361412449459737708514134254448253815216155218921768699964648822422328632773692365044187538446154244055462155355501704383976493228974652085294266968823529255092569880708586010733241152132573150761831469954575358707985585721380820860328664629068480872941209658094772427740509274759787212878201577057494272812011549645876882924316335247857329523018129185272347472387971711174044038691288440362916564743453457824643175907201586718208057788785991261659584493087678442086636073935533947822343577337420377246186414521635114808075118146661788787609535687138349713480463393012038202786785861136808252340976617826079046222090362485883870401359542694410551317327295088408112235270712154194449067165122972813274922574007230518966915335317098841858986858763274270246404875685858794599457220865852958098813936609814157296957807803470736964964707897740669569243859670147097462880295671895414566847081387934433955901573171563931546444285846175354674220167314177524483107072958277415555232915865660835541509469260804782610306385722505435450098096792968106074212925930258804365641703087598127589301510405483657756253687444902631772752225584981067816039994746316510226669901584919463560541761501512494138581491639492870029429874076829593235197971775842403887883293879825722686865169849085552048923146129922074504009269042397275653518154831937446990382102888840886733558676808978214537457677916016857576304554937903876634678923395296925997974944873702948000118352481126965680668133886813062322933644401828913628036801199394797280740204817524507467453852010145393253199097762700969738766772780821347678206947368435184072871738849161129999745323370352464387184878286373115688373784309953050505128153635753696307377079362971728355424056629530198694419111770465957924057969993267194434122939119081123346018651988933993194212982517412703028714515628576063411288047244657789910636802078124018782405656061395740809108203844069295765399475734184555849931627874684553728424207944797803745443810247034361351406274595305675490942159744259197580280450411503188581264971860790336141407648787755248348438343386041524270945130070808333722318578177464091304173235872375188863683717364576937359342426261849881594824900662521623969521985092568464716848477505188043203431680135536433321079692014877405156562525485148646663889705866503014119377714189864725042836542504328840843452072422710648292846515091005994154066294738324245248646175092050829184048676721834259690234652390423763839383004649710743144317381017452374996791242960139172123990174327780344887876433025732646892929336564582877983353987438908443061147690105879585954709264962258643439377311405937440606072604319958172486131502475017078911436843907473165597740094429794063354287701341832003736150879128639229081665641169116818567013661342085519710441170298967916566458697458489356387553740957644727187610728370209515412951209510924700377737248009543233223758646847899279945394020945958121581152807743244628001699024286265646106178818255303337550938212203365180244652342855632830014829440833025733257693057806376774930701347259236696555614463338144994628497566676307536105515698571015265169576451490593800940598847499880278690550676596091627518935053670522421446915566764819332118059916654568218340868313023919337857616834090079436172295488750559160568068651241929439624725612937987616725036646059273793530860579965559996530776574614095039930920163144680610048346742835936124959359624586943578939723438033341558802119151594671910971872937844117186426953829946231498304782929241305582557280838894233034073415733351631880928101775958167903155662959565502496413514818455600417060511277931128112769911506319477388847507524924474208074992800443515965899551411871874860825170200410712078479227241259975112120820561892756885815070831174559476477605061247811686778273055390655219957953902519367908517225936767948003243929012995044978378955077570067917678840154732276113360686066357471386903675414305686626432016819602955687871570371851436684547291891605470065423584061912571280018143838949229134475018941035985517198654773827109059943448661055376551193750734056671709663342651676498857302985380752311898913343531986307956597928288882996250220956171477239513266817452250366713403688894325070182677235035464925827753785156653431395067848696211472034306843841954049705591805256671470535662590619288720638410421684647577263587921595762450364798042151726487474104423503293078069407111483890754816859013095707693335898598651408384673300299298021985562414948835964030904718219291741872106752971093327720631429385844061606015956521947806552277714022163382210675589203715953084575358683164937922414419343783247317128816034766954226302624702560025203557126975221980460462656741634310259367676011842678499126218966108705951219985739193470479021141295157042593007032453588260409757369903195303338341722917887134266019131229521818189056007182969950978421546978138747846767479457012007916844905970439080568570253581131646944740716572714285392857393674714527404191866355025272766503473201441224102610612541981085514920460754203063811932428282839602715733811920765292673283283539647528887648741325579613779149458939674003757471670185153744288214998788437545532703241966840458559583658367849613089630892897373730602280364785781802149131522773849904646525807092372379917880926883438333214530548791993456553769211851709796627327454586700663129949770662372198632672444222970673396412827959225866386791392070041943273585958333856584973200179229828295595374883576148997557688425690900836122197923539866412912923019466505574382710071785362856967427342342012038858080487593781396113912908957430460275273982305487304801588052294505675843152871614267809936438447450229733869382303093951439596983406623441736754070852713161956817980352653681577812021777182841578161577094633025187468181488055582407856749746354729184807340072676134265048268801759460903846322552874040300818714874085129853904309371751531699453746555492959345481463995297367537693785964280875800808162557486333267689078383596904790482405052290734860708208617197514990399524392807523260301242883754783218224179867776933703348454862106608547543882721234886860766538741496542564594254931470740242552724649723949777167078059149094257449270865419540387600517505956257616192973127665665625976796123151071419300862059067930528400032098713810321731694236712973650234120640838196315412509478232992849263511276896336328827916289669495028886930285930008009550658646489055457823735014073080839273900699959020842909277471457868344212472546704955141709973927003658845463032742192522644286727253941278466654600047595378467365907611122788011684825256312210678777187765525698876053783639434462259324016838794398631345547530541565725588086118719962771383177667877302161561883361876361619890203012633841463300149266339318821470336861626336865836960172633463688127170279720944200564708815150655070328735155698785114941284200740523701876061717852730291199487117560322767312314338927908141548111637495282055452961822757706030435879316661893091365783617506429384787850807526756903542012913960998698312899254859037992481943452194456029883767295707536041791229202938431212034318783942207124815422330251875745360706151916897974692691675145755301290060805810879513676067104504126543093145299297147735123662690102948306028876849429614619673229084884485278175876434463278624674210490941669072062377319975906193803460962788255141446337094928360993560076563257657496280482520567648730699455440798908472727692256982284077040199295824359527303939799056613230529893860535673444129780246014795320513883250281957190058236253737479799700789867898650588149609941505604205985842443224210255912572040459736782889938076725452429586983712459922771826635244529120270730116440294843810272863734956857425654613452055730467408151550605722376620506589788728094853932511081610560408906134768038631931418493428728971352271520719896437142130034636338494416571420499854350397808921265553403254818487144502346729119218186932990864265591061368530608762877974230021430480238852694194382535568912798878366464802603902912925139671533918171922638669449451988916001274510415174837848866200454341355116193717402504269478205206514890821886049413501075221919523389830658393025318412268463693975785889289890833192603745435994428702828359223807697158416391220043967961166569781841509924520912137593482407013633309633801616967588113210360878566305965322434812127352546215546231150614935936723911124167974071307078412708351905954068856580835696177738818787749696212182110371390475005931069014010020805225615613373656856313913044080480721352389339781757868612105592562856054276752684224971701956721100561669804569046437616720433408699202691237755439864692287607765666372151363994715440920287214358900890172338471484602493871990294647757776371584660203436307521041285285077291256529430584045571905852493383583441086263920016592605694616509121224367858745743897165081078566450753372821431868191448938611817468242437639189084025665870606847121035657907650499907514622133903520784816506067627137753354223003632633900888644675542390982435152313356142678106226044596665310734781793423088093124164977999669050102884427873822975721540788641062847120723623589667964763810434313686295399926517373681861945566254013158327584103393820721382397882533089155966106097500000072396826100317842043174099097195797809519584211632858456580999588573619460125970605332269359203501441485125690108709151683016742917241098170759795468587552685204888608445706283765702661870852353466196469506548425504299055182638004376903251870051533485147778495069430731023785304418081671627073984472859230860533197802522980210053641690828107191447899073548030293925051591224849426614104732345470743624571725419547040155707629555848205126971830610575816415840030972234278290247038974404202977490059881683246000240549555238571555131556415376260771559500086048579127489464696804348799273043611886368451764242806139425877044733798813927663908978668194608817584806144644344877141620832023704287110914843666590899122619638095744257281463800345048485690960254408896075151892916541539597537692940370524051316673414403362614073128565557271011579780198070966960648330609780799192698623118893800902319558528652501112911296841264998217592904032513463616937003042487918739290338196325840909233438575639509752707785014477228548402649899211296794551318795272612048249280971729517821338798419775872887225658030015369449199386268553260300642788112908668709390847323820899914059535045401232429516299911403582249441230630844447277492589396660835117237981764254875563280534685419346659157844661302537521259120115384449769389486696783342954621355977105908818359610680960627062681218312426185189556414221234354855168621711860548776125711748804680000611085928466682443182789169129570038826578434191876168508851850590720316830390935908163400250108247664696198274827016746791569711839434578518063255462215392318243885451706436396162073194261174816595724830812937986035820140806708517710121077369179560823276259404051221375476095782716338641506377649208480028239140976600035107470632796612532873727501397566215709946508471150415819788743262218196573310676624174294545534535308696620140003658225538987187763109167001816005764482664173989760453082546069023248882089611320719277760293839470884203815565071669681156687732529409074896698290363097541671077120323465611196397089988155574790252425969579420920849853404142462158902881691244953609167884925629465607317245458570996537984814890857759227818206562917352506368180729964732668033736562087825710761683701504076258856792024667083174433736230209886340344704280221906921240404012880597036834059812889342978002489786503846093758408434223516560257182203871338757408728313825779384772770298073338211569675842652547361263966434435711850980899113229726633537228359975971853434530346317453019020455728245011192830092328683850765175191973249654470627870809027517120601790107919068179725649290104458627504735697111536832710312524575818841809703925793195556105453792613794461695059139325324031616350007655831981686033915204833638332429729772338729853450364110633259461698251375440187237827354422884442694172752370223441130916351492907484352276148454163034623618387994051490605141722627886956903947384501631589668886067240462712410180752866963881682015722164316219987144174949410197064811376045828169000619301692880279815231220647347869649555064716552421465390507101245139567232723449073481741070573097494704004955451830592167586203183489844102071694992536694357787106117067483959954853363658360956372799946263575551754430197518697533524442329696933170158786497326334014198300699433670168063479442356786681893022120726622724970439135516256145496146753456381153751674907239395974126400155590473112364616961779379758925467026159380108337301776275977032300228148122755001923241214973223126397550835589243408965231827711966001450279157581720674887522152624526126094972899646557097378233979884257485600693765529047215607699015991173559457042254182255088500479416261109989099527549099017636955828503732836537048195400763697500504290255513426752027590881352364021200165066590524985508761694832885247683662068788272604876802653415458743307299520597102706497744562408983747345737552461948781250265590523743696419668786191895314899724392683040840731356614026568756791001436938770016819298872734676919146851665856996640299123226972582006530760203467265195785939618106804848589025110382786274650180178793215185972267073316700843167602394669892723409668158169558882141507015073925923136862667790909073991181831667821085553909731379874572786116779764996106804294163700378303279262185334856413115518387700925320604369724317438917800288067282084171978945159174905749649622631815009287635533948983457320489205260368711634123877772144824426339342024491019132725127946699355795020099500988460508301141392954084681630560604451504266879941804604613261266231833067944723321082942379759688689963231662920156561944781411007916037356601035387361150713942078193357769855741911230613264306503389717616828099698110668679882919034790298709074268639431850280952953126789910128184615237211511051879632649017275396344571076486864216381745596950783653231113914418160929977122086654894602148671730488836675785903968917292245122330239984836102804611878914124834569212525660130220278645536754698886093147280923704997731710941223127284354990826995150122777777287007548544665963646625414357925835991824636081010299676708524089032225167021803591979788041990115935857788288766959716221581394296845355257106271423318136233688495118779314009963424352297009326304292006597891863806249306483931325894407086706209596253341683097305686321862098748785459279985828541389663081943083007863076979047217754312908356552408883384560193223081594184228195479975688128621061123636939325235418461528271826274170137259499333285964823736526319633347247036480456362593213697521810901770143590998416131242918912177636629128101632267451254072807226569628181227511553963618522845263250412580293329480703067146598008653737362580972970222628114639175042166866757833567341089985198062148248408560016200176281410501887052926773402322590061664647989082667465208638710206102295979391510574018345816067959085120806308149525198302734242214092670055572641423739924866641112137571799291337196759867216115535359579794586803024038314092515139620055414977118285894012255036667991433966746752987861831042373097016732511754392100085292840670744831913062022266628234003978406366439515584251423286411295744740587806277834883682128601298772784430952997213361054438513574965334019011334394390046848763029860357447801618160512049742249110224332253961668891033260088174201510912266858529244814788236514879407862274630882858855105516078301454651556566512687335605873482882691017522613304108316008527731643612762010635210018916617389007617931287504452040566498401256149615890088550080811426462286000890293964229692004134491287557616970505626563925798622465553389856383516462779126716044161877205934690255164424984876924048155944646003705846236787830735013709048259912034756586252706406524413872344464034460432862600760120563222735370806004404617690118198546268412020704049891399095982082446882087907750617772441880755432664627166105923144487098941830412241996108882504649351820311497461388593802302102667040967439685116246073277059426007905967851608481362833600741599773930569040232330658905496631231839882710338109158699763605775554291190808311506842824403531540236792066433443241256871613973870561788478840168605901714785592697483345434830087253879041594424925793227806577220640791439112744532438355227297238637159447640024886409769157043672987324230020735059434274003259351021142305426257904453866103946049480052093397884395649672210050513876591444559966950286693698928521455284677298758125391123000535897577532298613627694855120714149598103415309036172919395778819795593827891318542500537460065971587928731416811047584440508849838526815715761217615227356400232352868056552346560192278932324994771350830375734334227833821311534296509929305031020106416970943228576688938528033376975239053540033865310714127666391314882195026415617684871244856679946086476572166259195784281362734955003751578594309443385985256456328820196131018954776406141440572087904587696666563327467673647320639008198338510342294196489660761659258148143608846163884686955751765306062225022893403752768726562260288926524337750202417442265362399986348553867326041767077236365502756407541900052833266817203037410966851223447997671850979462667575751038399340383647285877249331836372279842934081773348756196083444434223651130312012738850787299720166747385760975010971224281652450092462727188038195288033658898717960656760401892092476731304435328769082470001709666880022157339038785062252950289453331874991675661126849876923316469243903689713552292957565979095945398896793809263935511132389367659576989311244294982270039849522154420816307501031909777930689044140202371390755044219738076053835959293532955336434082651648572678047344676320056065746918918996646708871843275152223675055660402501601207739405820205794043188586712985418096747256279527715845671663324587971202750132673942542705523748655629974250182497222478951124464493117851588576860519249107559531821915765659561836663101155529171669356694650836951344131049389414739129225499033351610073326935225575647299088833439723295287824980290901915042981516093984171511751761060350081184990263471170672057274622616334019608710465130611450266953460684088416249136677265248650521659103818395150728420505268620837841149847945277472892580698356939271400550660586534137002775725971439600364014587481708101148339882155452493471204391755029033990668756648983123512038535049698275851012855233194133388283933520520402587606572875915965938294373582595119368703961054030286638928292985550789117035373047061600975334837337730110292234621031299562492756695073478079402461107897738388553630702282920162329722925367157429690702131940120699940538771895519123283813069713409494989237302429021727680667954617796958150618705696930037260312776459258281698834885683317714948021862222236720193849440958303659285208356925009983790884614384982432509876324951730888944839283724902802977581923920749126485467296093163279939367345853848894535127877377420246892157171296366919902702811349244023593869152756439609313679681288684097112517087138730037542489453210292123515125223018679295753879133506675933553126112647534262183911100469918373796524800691085274179550360426224120227444744061476308483473630378543551496933309047315234362686472798762705413156981721767292456110026871146448533351736811945056139116761963974158070602588055620616318376333259283116749563149002454788845968025085782892918466788603221656657460107674888261385266228256547919073422697427069803798320279934332338444887138009283471003324593531401450794540911210097055541544525020474929408885006083280609629984561598813807564960921456536512090095432570711631961650009476437845165926564447562821825782910128404513630073885480578802245537910924730381680076740766757583304146964761094985564725519438694686956202746180197189731194904846682760058432917632432184646458605708950951339683539571156627913593397975593766295410329259028728682723295914300575174325505293956896546268166506028517521753822498537011439881379182226031086130953866510152032688743465169768650958479313166472023909403467569985911895744893537070278493315164461951166910055073587816918819914373503887176437155451336322508122702615058031553457250758421827305257369382611807280801831759078980147134660196101948502258044053048105077771891629153503572477684120995783299904520760173532850296970181704229083461489215289171546727019986808608611018020609467462881798919493540377561074631978679399511966153492857090443930841926941866748020895818231056581084134495623861347401109813513930149490682712941045703718646360056560091468321898475869459751581325903009680847164065585021012437238744284562571661986524616022827743083510389566243666848245787041434698027998740739046900105680644512674189389566168723977080587314868280600549594343350136682529726877421061606089612216404327564094933340624092121069411959279427382199834797603041476774743354052706686799636823839349617990232988246474548582483697430539914570181303080196024985292584511498154560925579320272447183371436265973397281003310027284934344696853304379981321165818896275738371479437273783397414579193164017109854547921136409091080658176536974213512041712402283095403142602043029097344524340024457920332448494158142713413787245594380931336950254675854507907315973497357673872852026181734280143951345463506858359702200987730636281978758378912557832246883018970571707840787744220184841337394028272168771982195043555876723773755430104563963118442565181540811363723161443643003944114044504374684485654154451697139609406888536114581885863022841374978822440386072235679405013993517872936435777620658418513197920269832191632934100548096875145938440761952405875875422874977388145353649743895917681331028112123169448054503432644792232427389003026313418162998900734104445770797627515919352395965161439152477210468429380642040244400428908498321699356581471206773728575202247601878880228169534172357786743905534689510571109399755806223519880988283269108305120671782055494801541403307922394231082897244013144241409537531774300504475345248656684496152614527250574136642240707014500381866263641776885720986702413977342492648368978418066771237428289469098217460151115326053236231905109969717007162174375337598233069935199418655833514739640832119879432702737861673736150747242190043179596750418558698874354156447626719183409267192594458111120039976619251754313083762129780790198662784559553692433048529823900026898967445313103901324905150052500005548157713641892085124559622219531840537143417462298606861591948061997656826459197368876814178706248870108468655393647612107941175076541215378629641867338272336165530778992951168212489685173269838278686171694084030643413540203784219398411595630669148742209015708114888433532530485859785831762233705757848730602386563950189859414972382895635599602099690737685253058388999686760718502800286696531031726499201358563919928244868191555113597523390946431571725445078629749127698402284353806639464088956053170729508808354363773543563122731801408840153944165109333879942603387492822428441973313891250742367804998616867239355972916085645482374597847460437101779689020756846783836540014804456478114522191882744885412581073424042361307884615652856857198794095655866358196321778565548938184600353143460060466140856409123690277623128913533654381672916924540680286497271510786836967295403191715922775930762231795035090745659151216840804011375885879823654681060180797429575281264002052997906011369444201502335125738392770165497827969390535776956916912299101759541342140612131608274610699350038540081624031408403661717765447731993070384284845870575724071515986599289166222432303818656126304420310585050840391283609208953887933156903563489526815982419620902858933672933838348021440386708048150700331258272293478101116878706061788248574582691194344720383044938753405216253506851792938441948730383476340894135695070385591441802044715451618491937118293274914133645810958092297997967812360668783229088302890190485648378782038955997339604260435590796679781903400556073020823246269859460744748072964667462725664421491716823444076201499689921187838613179224165970000115898269980326382709109490719889244648052646690309852716348391679374149072085161615010055582042640280322678443642031133244926357621645130338852930832902642162344204132858794450524222187614133028259777761332779532143687059943565912713500385886284285125641295329925516232760766903251341126266927857121826535311506574991998669597217438527974204234913732779976076557873519037359140105345622855366005755480784017611875527704510993577718451993599636711770733698562838525578381234077642702715858114903431346178397844364778444326270096271116772146798876132736401157373339792850956043308650291811524732673489082484912116439574610810517455154365976181079182633892168365012246507643297711508547631506342977815181364771901405090596208827256983980245584079215132050583964369949276959631441186220677682296522790856813095979039858823268795801187219691283880946611512881212202744359087121646862021506590244032571495961546389146696358671029447142787638353772911744736638705154637489406340195940958239939222635167384976119188577028004659911531028081615123803732385819675749029587739480719987862334047936555982264150385289459758562652554555021138994526845433486946496946753978517089464867656354260431508874411873361442985724612708736981704191736720521505814747448711018577608230898737211618945208309462508243251327272223784521788941779635677410780486912723335167063422104312809236104947422177933238991818391023979120368972439803789151585720040569502054549226562583064937932590805626918353622918827580567326071740004773295781978110144589552782810942559111971166807778834488220430243388712456721419347638910579339199787372961133079812480769633519203677772745264892817777409985817006063079240820203161808984140510330076107482651413990053941833834842310849437821327667672498984432261887487224874713015931699736810452900692450145507613097287448704417165328441294094162212067834529843456990141422837787372733406097336435707470903414302804348134891596227958753949687496414891088820100748124426090203788335598063472187809773997527214159817495982971940825295232129658483979910455835478389653857877727822029510606684060831285138903263792908325720734728486666201592697588445539635204720982975846405471589845248606256629352472531761817030403820510532467471422856781797533924489111472283710432988862936019306396076375258172941336095110498891489409461060993886220924816974494492562272297873912353498152890606202713254377056724912728912790169631285526940562231260553794892036944640528641599958655403246083532800840205080933180683423409523181089564657071927110539343467713314160937705689033596239118810982875252197306728355756184639419080663132096038177797971098578268246851662309017892673725316759562248268564017510559591171529661298274810002708704692763919875658132367521547538491353527720709230487038436867446363579096524416273550914808319171321918718913956275024959786861424054956276828507572128667468563203508694890515630212497651492692852367754327674851487095376586897987328437576977343085097266805022360468006463962387576722027877600279451970256546046994077962317430362625419617141972401130427331393094771021889203962717452004058134519539121288024083406628168762626394964627600471834299189566141985883657557012344899005613962641816431311136455590311781361494616618587315254920968203526352661231899595065747699764826443582339940616363600115176648447167619601193547058435625657524282091851894740415342379858915264054054734246315418017726665414772216406288829345800718970502639584004807136403453676468646777634853469276858121393825795047201865892325501416346531724428053934745373868187431236692024454521610532937137099775253479336565476402259559269682232896582981781667267105491976945610117835528882701224626118178650055185662920963607438393179398715155481548664632789773423488797775983103527485126557562788149907302006229109742737888522187022812527175970473805622052335069905184039924088185974112739749703517043750035660176050915962079051507488961578113333664146075522386591239049761406610500469761067676364243329122697319673169265917184942302341843921734177159701855770662660771669212540888494511742678304000650499536687595374884371326527420904272491107761006199692106386990905485756173041140904840986069298511349803246592570956403874051148843671790970964509278267481200633538614455338295796841157643932901680577030743355193350296630783949215632407700266225892620574178541540914076363470398605318568235472314995983181723803798375532618493546786178625025937125580333552083643913471215713291185863942387841330709750846474146930104806399459459648249554343438330552798540615000030371554189185802870484179499187443153640139677294976436742851400967033424774962233765929287343855069663129081488130685316548908987082005438260261602817267170359143505218577711517894915748504041352072841732733162223478631913352792877158487698594757650717191469389099233614001523295830347938636479588872312754574559767568381425011846484564371078338727724301515754094887245765713331440569149854979519449797189089946524264785092404709547729793820731970556693815274353423137752430565072305648776029308676010889945860094872729946970614098625671559952368134736464596112350015889848252137294379821198397637484787060432660192639069672361476510918681285417898834599987486154230180955715298048350151489534431803384521818660290099412302047821501937464746134107197318705746655159162774590880503785561126249442919328633646006079296589537003088015832923483221696543974768519893341171395861291994574992967000591584798538403307039211743508076149439419819512905852367453828799519290355755842878903113770654202794853194728945239956652937014627352975215553913133313697530810897051334480740537195010740190318977194548875675304607867232774336294724348211811252344225881218248877534954827411736629139814958861566337755658946734685965144748010902444395544213767772646137230827972861412518735776163346160248483292328178256535907622730052168066180926816166569490125932352549450927010819162671510930556916179622137302316263067486410168498725940568591030393378369204729377610501867562279558350935800275479483365827974676817712999526219034074039006526595182158503861628091654818674389444273265629688516350642763363620959896909818613314825319401416513769826478334954776053389690600176844148431973618127117746263391158861368776132987617101072588865518110970701917424506977347202633959420392031722961434772074548435096481748847637171116845368581412796789705175612569663068201420040713698814631232204872062859465072301769899250550871568449166767796139787737446340768377838323538528250113722891391751840149275215658772365203997652300022860229989111458355332751022926747932366724921824295017847282653785296728073990291798459373727215556823654738586675894005165489854964035737246693295783453933438728284392589655972295102278551315647839741387202051786986015728224574679643295089309959012093029069226065898852919143765020287713754972412594984199786714410244507395923857133178674964339765245986761637097667373759031525671372684542294932159155236803483739787532614055179195754587557440441280529198501782366697817890010277702367967466750342765111619692102983203345395057232389905688412820487389323753846794484496501352259572013801728801382716690826652641716305557111557060761674905125551739891885517685270300262812326763237189791894011135390432012586065633442064088806947143162824888890309497046547592594030369484638099729871839391768038059665105560323394376617247516491397342083841732438361405911703166304125678572182077730176366535950125938380652189219912399950150791718028776276575707249479187668714776831985230927609539074778531735788995352262283801593271876569691491570965195422607204391303461009259087677717870433948192650288323259877384024349853127889578910426842361092762506100341543431081508951021828175361501032856765560659732104704451290121022869131312963907092480179047139553750566332949961397070221933414147683828461673351159138685451177912391255249118275942340867210617222392667403816877281948458552941812295292133773620660659736517001366148075364038839619054454151136327950433883708385249103388458293918989677234658275573635408661343987361304643561220390912025745053267277455401508557970306726986558446252266140516558265057607740540341346757517348302924353982406469841247667360958612156688116691196733096297948291401945456638350652745870664658315925612749619967453826774633761193147490833806076074465697072482123516162688064718220784329958239810459011419254122834594201473254938797011843768878704803235317767110789197778020964844941775623040315512857405036039077687408169308411082176283577349754980653487990565510965572330173686635816283588118501858993820286939778676011414033965514335614738704724089281101649504104160714248304849709632110347106229002567843970066804647508009926128211812050533741363567599296968099966050374898741841658392287462631489758536974998170728215881503691808599426845715274604522914078533244161258510820847171616211667750839557045595061683145129590851457589635914311730384618868638486639761060026530176410140560112480273405308352290784353247724761583680287931047039464619716099912816499227050042592272597991939357133374766965566872284611479828672128034422409893712136268517418051183558961875763707197425793763237753243855325625127679084435788863252739830126328740557445473568024132450206921223578853120653927600132736857806394813642282953982106358302517214815660572961935960411359632140175176506262711000507979396705763700529518419966948058018281065198942697226000382213618193522946066369841910874777577027515207213402863057634532175649239562491856564019283508439231225718805638312987985337033599677257038276957692972951131049612733813696540699210745060542187211455988944922364321463194638759417269162256048732714156110877848567805271150984332574202284156297249204761386180593301203601997899400633104035795707579900614640959732268521054048404534105991182015862251967725213150498662816510962452346464165095636275260703225876610275008409154719791427097829680148738478059266074468125710692647137215354757941484357766144797130559712082774268457326988221787069944984198111548163454176998677051730743903002739103767020748239108450198372338562677933911277250912481292136255766541065421121265674134188335144476647877163555139976630403253150464480080728376889798491475451938667265676461283606643041267318690494850256461875577603141465401871119088739581498078638946652810500731645902318700612677914636733654790068773675919238872794446194871375568432300796258858967536464151347972769137832922298728784155435635625211711997663561667666756707402270637400181667156944673998383662230791308806525643060981704033941357633835631545513062757616264049397425255359499112245311402719388182705574433926814515405583231436717166226516240634145147554969651529394605221608547363196040832124126364693668962525899437872030953951752286418353157436932356797885845497279259155529466644960423680370788834213012650834819680862401271418824456002569042065315329247189942687269027199004323644084396481693592838390212489062274041346306263797023557789817518795725545882052296331002668231993913158517348076517964878363855252542846960944504401447700386070816692336530909179205514552654502116329005554115780353144322441987459379090103881021409128114788729520080955311140723293890104703146174171091251835855924196222610543289912208152988087602084820410539742045666597732385523787919513568378758844385255398355905125319163693491411017612231792061722613482755475030470481261524360675808724955654048204130402819792166545177663131147031082570529273561091601869716603518521064970116598778170284797593058913846147469513766951040343105196772604177674354872227390600437552679312777018472368754593165213472646659842200176463976861888631861087053804911262398327743866870056556652262644618265143911856080974831525866969376948264335312625808500808288952082860436918498647639117311706541084953809314135796784621087902085133329836959497788333324428343814234054097105676949790337864977476594731697411633068817192942896576954885444681088540198740244822590948967967293649599693683981771572953833794161842981215628832714186238964877199605709878308980878997861017618631081445055140661133126472238835202600757935267429808565680005080151106704277596051379440249589764223380665069772379298118270073534159308545538290332099424675353404623631776221083528080135808911222465827036799706331627076258084967706939347735298174716591879357468378735376502113070983264437190920362005520053404781214709696538825270896651903027527323639825000127904176141000054706665422044790131644538192757900365490748958655023855877789766574903795683106037469362984754655302564486654329783388513619917041453584950036000824436137950891922748289175571005701323186180725330078601629972148526030037495346045139442664706726401515195439751616544359374929842127497976890683101216017709218124187285975349934008823656763538324795067549090414978874623594228474090948885645656295415480888658058270559447953074427297925830464969743177922285177838527005426022904118634003697427941658421996316805181236478577204121337946713587106831851254659260884984572466003355321017424195523772048235290519698035665645451560450759321418021308218649571278903230133840657075230013245942950583517033577353608423215737008147858605886699748779332462752271754168760150848143801700575156448375479226948916016035844405517791896173216469532066794390732552009918662576483438925096876326787766791150493145312082962363978169154565234641459296308362612489185744130555600791874301566427754223285856717501153634504529757796866182287592004089714776234486199388581034482349638890059194542298272376961548084155445695438195968372027921455103247464912138912762293946927335337005357934492142647876541894510033034941815551800464812718919287706717100123510357273829951834411687467378571193236287626786000879036047914754502493810260944860223002663436315797879876843202332308772939338355890811997992008411749337313957433899463976386170872058877921011805772073584383543661219308950503787777091060620181910386737634999673791181990448132734231234947619534910161810286874247895463258233475464248555184027145327415837582745264878874078794292571792271585908513382960259844918158183397387503179800095098490131207692477333814139042527392475154799988941993234107199612095818584879948495046771987615952640192028541198707019613378244796382541153918882080232121890123142586250579730773530421225682700755597327801485891815329333488054818969087976071114116153699765483064343850408778104145784094586800540976388786871707472490512258471721893679623287043963205116310318720261846863729566624844844142138880360840481911077735974532192645807105854439859949461068335400625960630041250360307068114042855961149008006422881138672492146651800868566601934961221234809166266554752681397271930289099297697329871309361639809598455568528289473223231494017410641582204798299321303008516097658539396769314098798925831527914514995546901257771821724957291279771668528093421841785212630530254415819375588653367922104746599350073684953220535894575361539146700964051180264164675504850698963087631976094928304875578814569278620894972303537317261856129977183989874307485618866856359586050228756191699180869099001766000560524223684167277745464759532278317079554265561399373480336920767512179502366158277439672405777287030279897892470762369565676820030449365344980486842600517916810750666309302138079175469142329337932664507105284477136582463878225721827289117166471543153598755722525057640043000465870211772724725839012251514377119396971791973057247444304055087764350534501025170283442782652924133613635598149419599520941060198884486040593524586132730937028449465260054782650641728837797941069895380977013939144441802910835499401832504256242928790400031846678650012371114587414577799330271452613239583476418503715184071546062325203511001154982257641443444502772755028579820878584628950173871022145558081982941534438287665072723129541958207782297006358653493927882355426335303410704072887593084072199408446170070749783661655888994810394105707123198315386081154467866629236150027967561751823713852442061484027372307422157559726731593812621765187967516982598839734563094250546411636295189314083897310565178439916633739100098339965192483496890795847673115020398410851523794421235918605046654700412465959209056287511212022966786619465592855860564206083045173441883498106938473552373492589947140684892510414885771365623891166135504750760637458509654617080994523238495493150308957480473887966482165971148353711859861254948285982313392952062008620286211458021306316397501519969549654751185913016124308579716834496810942991646043629616280133128330335240682594373047372602698385637752083804518162732225321456202499083736479601639182835314981125904528266113760810082413055393200866171777867475669326823722663686524422160501305073319174384562273190417488463169571982748567078498602208483244766495177762225227929505798419239653778748197253227998817205737613460114534712779413807407904459925173138398732160427415902625172539074105804583099321631755695435949328335914818539052439370185140106019351988950643953235995475149674253952813560307349097919916940536476466408120030386934094239905130866392523733343025690765548321936822121566353813039481050271886136611626331337027891003167975524746710396739746281928017908708767989532207180043734914916058404319883295754855382404897802530819083159225817502492786995737459098975513430942981432862528000490550392940604119520558062790026207017042602671187685322747655145888564974408543262407901176226070490646301807807815314072459653582493487212137411318746069583616583974755094740108545636421650600629694314079445318303373397505240100785733525771860751543376669019697077367881449495156640979457106110997125185418013555343655354449140524630816380976120661083140821451287676125258185824654858179819850159339361829291339124881337651213374945553679033976978205088656910647285788774673461419283674801961179916264574346896211890783711908887328093073901288873621313261321020298875524735990596082418494417592064375552866188181709886315524551767137490210595809479984572031010063957239828752553672033871279549893965900975591986988429709165604671270933229802058189252667109330957490431567156964493672709291216378839298443533790204244977866735618711795855138123736423450259544264837193341109214991362183310012511918610183824934588226577213589479599885317572565521184191715424492811487200686171430777391773344496025989539093701486979583245510653914231052933427672581952559335625957481823455005068057583697344061082443309935042086878378142454940421323697869243878226828297868160941701723411102445534965612621199958197463743928973730690426544762705164253818007712755930875892663181900732019685943614499610760635618491492573510085162298614845861337755233997086669444533154568671002425322075098452357739899370350771648703676713726106535121174429505233693027488258425939461367294493328589773673980993681254695335806651857454062879232874676830452522817614859436287882561483798333809390743370416972155734500091594228565168768451396306066475733904891409768063927716518110968589731182984832323582617491560822266460982410446243500420816595461815079545562745443690355329067858243735312378714538771884722711551947884467137787503889562923016271888239389442975932000374668793586128090101385264234663866997971906672693480800767820508094120586908019461209071561058914925645735065162163003553242058143542161870832296847418385903531877616174059225555697944188384702288814989539757212104631583855311591641584912087740811229982860296597215531045622889153534836128045398326598887011154862320008753443729827838076697920842199746359818569710297906205061972344034175526733490364988476014359974265180612897989740661440327812820130652124162295179375641711218636056330062859396011267093835536072556888196676613270452746517938808951521069878859674605590143395260172197398916468306559603331765346427396734906751331012632640517797876900538251917227863505928438118858997705323648784762978799547910757454016545691272929103325653523427574573237018309334084873238668687815177490030887108397202848042975784563546376452051644764984385372000980975263238322545430119506923584240172618273501420430274302097358784552778093834341735360112035754969639664638426267044084901009515991245751569012788356965029292503180023718334613778554175733552197019082366070184166154985316995720260341213534229122738007177827101421135993102985287161380013447971086752419279229157043932260139329684644065452846020100505150938287792298612877343500371148596617128787631033993065714850737628915533420999866603210626413167375518965757521101341661865357509825309677908270557828482887764780918974086838541062751379192740558393529203771835050103714161201362446850488584813140826373976010672675635097296644071582481507644345366971900797623137117564196511918515261082882411200937376794890811227616816633164030467078134039547990041631120984059324183183525145537583214231544696600374855669482545189891961025975503833670303503995184309507698066501597724419633441338357456977425821277645652481445274270971093052292898842123149834252887737838917196988152247030411074721949306270317004530559694910107172093730705908116839415151454591697632535916150023249850917459842576101960945537040445212325454769212574978504603885094564490872424348177280653767265350583974363175184164131195098093390699115943513349263827195389186288317335596977320953297784016307429351423640197266439402638157258685138024847496998405442243164120903689116842417602495624777808778581341886118803423978905315708710882621826374064079421900119690691763401550302746418245926251042911023253966451486084870696890697927240855266064565799445082190710889392021508287732058030971731917347362174243710104326347476060205146065787223293079507641659225361013064748879192940715518393594415780792627787449363066694994915994712039768909995946514062195428156566761240884823408871460076526261442876064559365626000276797731711081575171700290235248051374639369763768824320222476419896260612329087505763315370502557327986100260176250687954484998692581884469125828232602766773131861425199966233792119133344747552052810321569990736315594126475733711317888580516668481803233591444715597263590701865426442711388004358207093073692548374420266360860342969789630245606308873971765093165045733514678168757156573275969854799487584003192694265194833339854183725930513881706681192004426317523111764107817499739402659941757798506695202878785339544631156648434531233176861968808760811145040046558968424146718114365825174889251807964194557352661706820418867018209703847526398992653084677891906567295021881215451225340880615255390992347865394584250340543043194164073946778038935174217744352321012700622173802087284422897143121649817126199739130344659957000992618203135256722526642364195835388533605034014666265349989394647733276230878094607410713470477153666430490021665630959395839291705457562822343421962461837224220561363598862586710626261211381894458253656386142840037184417439231845193386376640452568587770420544092340825104468719387791576332576628993528822965592575312574198454599675407444185654977648023116143585508049146382035391152724795101789584395028661915462417627194846611840068360587943961428981378531447155071328532983793290001042906656309236824392262754422163221749045591592389591411261558049487651787108720729849309462520797780397537252851995217226563625087876023433236144717182744826992586425764109673806071315985596875176527668383258737535055619010795329640961299004974568532081787124289509032853259438020246615747411842396536326997663067927519256503956514536119418581991331354004479147112070080747867643051058443923281032966702558669786190509002334170980427597232647759980237742269424751116819457680767277892597026828773370504767205421971019952048965458013542251393497540707567280173954893710639716143691920617404394269987182955057384672973758212712349787043274397186510207288973429043752584941159015174483491234638601651787140644824721204658052558306843913647466861830932632011722042302095869914521955857770027804095185914131412105872975705248117970831823799124418930554684403285154019208399214574950479770291889807024252142616810941083079837135612738688254424764074705597311752092981779782976148082081095279179736662232019983284155627426987730310058767797467343020566688478720815230031862468782103166816257845186244316497063903796212978990997356445876347815521699491515379320992606740640100841574011455370298454977395009721168472227813011092537957170354999444207602415166418066424826330985919106402272475515010028999644562528920716760540223760644819196790501327856566335408199340386259583762027664472035672176004889097672708280584713503377706683013210041923905713875704435042509313167185350923946541508510440365665408477003481825959699579245878843712404434047391075821726252859483049224664116053958050500757338316458759178706954900037239044303308961286562761626015763900884168867058963716525215480442403796543433889721581476530344891901583909742845719721295953703536149106170339208470710743024981674362074640710454435455600332982729668564072627163583542944537379944258112653375034602828729786635311269742620437894283290141107991750197555514861786449850872808974927892560775395344401654593103288310824530857045978706093422974071850275778270832535279436574618871659790142800267712053190916866107198318727261754838743552977005438052415167044845544134395622796578281501608681913407806558660542731865877363533411216887996467646832374006013496122299558194751743642396732590128635786123975074787691137682703890355622758914662313019909862638656821288846743663448358831124014400957152415760877743900794931795760513920484787443636805678039063049634927784168820895828299918352893751329623219692833134678594264701629807182235695944823406164051966916385290120092884579327252600236388896817485345833285917831707777763297692917772991587523628962727901095654851757976500871343617316666553464472364758707039967987265722436290649694704137839448599801315499225812024344389317603778827491844694772972265503215602686549298697024526718752402302935461079045563068039382675922665306195346481287176818166743812918665505065469178849562497493908527067594860542464376311818965728815854463283464621787653972492521448662318105222671671642489255742999257145037894697089226919331640797525254959985940747230447182158317081750703793773398589177779075786975374465120859052945309533115119382471312687686738163034938417551907177214008780823038430402062731042277093647667657216725532874564821802119344173848470481419323430781987313816471984336617686740936622100225024374121538436608516448132114229491423160294185681447572680824637003023145368743222584993808291375154902103622187168225160675526450054365331981994998020694645451632093992376873724352114274428084294353068192388949712333343855545307876050986395031835937968827645665452754280940643281532891538848518157120843108574078860926429156170771537644168444512634176742768758715097136812084909681373471574377355534340489153907701064979334325215055885628294847110257955060485056580313078474136899604224136304903853102514202024209111366091319226850325278463980743479379786755532419237344925236815483053305239509911538907174427844063543470963973048020837735245931609946672289719655584718614988734437456736300911116208017636114457876249166421082867911074151773523334985692749927547333938434444856314360738108840351909189015141604201913342348001830714032571352683711661445840511579669878612082256746551292169164070201771226591831274300009200583128534190753256963378782411176710741821784812518001774848320547648780437564063985562595927027159008953381777370879759377544560675080143903399427372401726081904148792252081882141424099002084270770624468815575630510610929215570762289690755339423686437818774626255525055670246536680446918394246089971841209268793808593775696571488660999116638639145827929450782446346506397221391457189601051700027219311154165442911613561518542209303726931927075500819709276164070108311482525551055599731877970039916616004405479407549766585833965879388020701016723092410936284859237045307378915850189724935092091424672955565737481447716856497291525900074526877562135970037515718883227420913546129418707572285734503433060102682855635777615586126743676260636677639411053475255537142480725153169616012604124035477440985256265032633910231598588093619365061904135108351674151453638145689122725191893518701349378217733581548182784842640922477132554902601678381091445092949202030390277480135091860586748605952299065704846249225841044208329883425802721761490979183970100470135877346935555992303780725557641097965638004218964409396470248298378119038392626339551153255570945876570769969315513117603255440886946523729310677452403516024162466455062684643821537309318247851089841979135168426968578553852651668971455704498584826621490238620379856986015340402435960779701014808813978730718150999485778192337151820775642252134253112358961819691696975155544685406362292217036971925003899553273662167478387152649238071399892658051732786409438635284557854151919795392195126143519940239789284219373248077943698811030014559972634514588885966313985087567548020650609187417254140928319205295654577083659431170951163480244173751203744803841932282602375316115033715980313019462519656832627035598211927552102806033213597068779297137239579878572863540921821503656683580959858739861399776856960785703922845773164556892233435331208601109074718148613321715753748007089003439069970970453320051688135872942812540152285840996303087378786543508464814521639137190163491565855241409508864754231328292437352941651269823127291564971832734095046646309161727855787195760669795933172548186571347579534752536023363388034565393054021359314971004013896183877165738208685316630661905698491469876796236320378488167369738922412824094260871648998787691397537515752234752514065687229495960986848314498320119672450987082149329634794162430713039797423919940547126088961623372183992409888091576723965218274125528294850235704175995863445137160098027026799691586409126504082402545771471943946514093327420811107527231935070107962514532377399492573128782710880955961839262734710634327780926976896972452832899632113509134912614367843471190796138365844622183064361230566918772709656580601721126507756758480239700056005951610011662655842223798227518768794153838455520697072141204388666742509462165800296176078604973350827642834377453269852130496194605763930573097439533516521882456695295488565391554046379610163031641746191586512899099392948204268693979500900890265112173090279100778953443135308535979506207260661537382052629430847399414514578307786943144845506372480110129278795562821950123652076762485850055377369463298679052081452620887938707615602371745168397630646663103185691842722104909189131081659185240689390276105519672553146773322163240999116376088769032335942409163678695200238630333965751498892369393566239689833271348063248671563613865250156478218350205736865303253985465294228915715132000088479918206820997231183639427394080536178561959679562337402821692019533061338724290680624173474933880117877879934501423518945907390557017406174178429499182361187265654445841445018986952027726287387433121183481302423188029376812224221289000340749979669350393258379659260707799584566068667181578195703101629821425656013778588882934804291372221872794115607654592899668499625841690556601953805816984013819740560933945658550638511937131907745717580588248334237232803545264192969523619753523763306040586849057539828313390917344074624282686451313321160736035262345698777965351167751831701093651564503186694391385983164792467200459655858110450124214555571899251816905707191141979950129539726970904850669220183173118647950917661137022351664350259120002938539916259275915487713553173352967576768411726346853457822611165693793294843818852622186658995140971090112709231932860333393955647359446811830087050041162810684168587000019932575859011197776694875414063030755064640745643496876517226461989743224065572591078617865641876791829895603152259905642705280584624176057608910881309000855168371192059175327486538788418038602395784780589707115716145202969678072637171202030103814484707433015403947781086969883333973509174272594023653434539575229874199398601228591777060332881942926193150909732559181986419868480323097234763919261816674827570315985367474241226426969493809094785600170104532049353264234456724590335628726869688476761024950247438929317519594407212797932753263298080783941038792435485476576534813994470429298257238076446434133427044220264505109374031527351795841964067822715964005277195132362486375210841290342361150637875430769976643277186334935640036599717043557100238916745822377570843092984360757782767449125516259073101557153992063539842000508823722303703395382392799326982666723407275967446088045662022353201603725485628378027646445558229693942879652786059674754574591794276096671139528032252803766567475927946320704110209404350164385185448207668096730914968243159185189260119318548077843342350883045323727651046585263844925345626125655986311084454194370322690821809827324151612809764078022524334725707185381747237671236365126403502387193080353357133320491355434304932889461704372063979914771506364686759983710071519797258651502241660071723972854255287511499397669707748326299304630729084856314346536475954794372482095227221068848247516657129064128272867280446994094695981671055640712450388365338793029865869573139556717731362188767704237499208545375692197401421106289368110432077293380119303851299159975250424816936630719361368851345005057289550928509528640598427791316910692564821221691514761433939135645538788146499716233636752826089762007771035455773134675425605897909300620828691445069777724836419307875459554311835579094808527424423156281985288390352377290594000333282365168105043450841807245974252482468880177856766417100111446109074711060335168899808376536992964892819351755118789987393540658915766404003593076872675904365940415213524178538196752379003788405324802815180596279742019576182017323358335824322755330867218046260011832660019431695052948806490619377408004176762096323490412592525556352461736218458851270971640673939522645151666782190533619263489343071678972292663906171387167680597538351567123158312746631407780130318783331438428546727862590225238253114230598382179291244558223944959520535583053668142997093521109228858019545038245168140360152785876425896841455269560653960230560190853585073953783874507807239199245861619998344961908136526733827250831999212975282111200971144075502509934709673284195542016862449645881902554991561736635828588196621391036019511181067804369656637554435778028239723568858609479571838217092368220245680015716348124379304930531469989877788732209423912467113548464511883899360397673385652681863794320056196363384561787668979588792762639053845878073778206471293821929991421867667769100090449526457292532040379981715683874031308116455336387964119960541077605862318399359907796431017631654537311957141432263662803059714407085754685741079973212739076417578777772820193223969299622916926014764713228195181375142405918334752444880047805182402479716048409251817051739334867443937501135081401244922734846886140370822077657259203717590395137559072898144862800169235235224793090131116178289908134921088241041997236466929040436949663014438647767253335504959448527518065523573677295676555831554380059774972853210869695640238164509644281555201637099930154279253179563198271994364614072685332098334381454829832496963081598337008257875609042823550818738827167069967190516493608903726319727966378371969420377693504973425553511058161118880957396528105764597138231080623623657906421431923818019360006924413061493328563320875391748390545729037539753106565161729790509556369999035360423247485529328760102938266200537351892503391659163678380161072827286910034558786456692310978527029345268459402574151872054154100114759194741960888961690791561402379381596236120232837291915540048912629333087342072277452825580955194809628089151357268764647578905836560628488512631758955100180711423974973655142469469079230069899917312008464411491144979413604307766096696128266991705328404462963158805265346222121824818439435328230446261255861182683275937601574464231533237430104115960075891403201048027711677768872107303635195434031425098241234111896342332565868360023352447760020668236405737516013004791711900284169220831142859857052079028120595859857910773493302997352928401226580543583954368100923427756709322788049338684239108587637803834364192666296918502774651752221889412193833976020491757311942563400457083045342352667536204644466201976716502593870290726108273742148116391911087986280458127903789502176040480331052026093876075359849398480890601506701220411660028002649056312037617043231396512361687400862662798432651523266805743890650849581910426524010925711718501332734146270451202885229009795405359778744338708280965368004375910108757803898144555920362291186960846343620304497902507069040024380448032986434818827143708427017127525743903502335393503279117591509133756419796433438968121474870892441522675515162775046074177459039154363643366975793996380564552601291450935845509558212952988003148012213948769938080805982232315183386492170985472300004379040612147662065977066375883382478521241904747221228125600009787372675967592787836679350820883041709383938652435584090273753719389055806136820894458048332420895212834341554349832256010590122240431310324150652650984177204535804592868224537359184785940234476688354832995466797282599080796662745283691631860381575051361994630520899611171509005147511817667915120138484990606282712186781995641923249902055168221661157218857994425368014352641121941896334635736346417036323092627981137632487995682864291367276220496665945596739236742754381209720140869494064689523984568446401739651366646586649702958835270417501723437042129918614877382354982371429421829308764814547631896523102022330818650863096240833540581696157896107731236710418790384123319109066872921239739430843300824770532857655472804944058922274401155119796411241538070248302682084993746130927538988333825763916476279670029874960059935295475373588444531565320675763704039877755832315393805937624854637858225807909870282050415718255794339944319513109138408968026115146906409097298164337842472968680371104972793938083467679025285432864188374451996435836952015476659676880667167790693149032980898407778987979920899687483290016697442556624076066332116371246902345416020989974800429730092428738698279343528020525511356755506367302074678626578493457659410448127328929778543346378748988818256420999036066595064909393206541642929178042407935218823822994166373446542489897230370789085087582398807263945754509967395243454636813780200399978352686182981262172515236218298119109897704553679173961528999793315703376938034720818658054558293917403079433953986393802129532854554672730154112907806667078285365639873513241038987882281513291597531744318528684668109079731468146864106659784134820299348399198400231056053021627088912683406597993446721467546884966475538619969490293050415085540107096381508184520995437949560532081952784574626662805203927401790972136170322520723236222722855804260948243425869362830863626466071932026507880516214459959975662309570953898040211474128226315461219716201966914087626824535598644546067092390216074856816407938965678955999212131914249216010741860334365262160130417668872260083678325581261176856588432758850370179568944953497943336545063120207105458587993071369251278122451670712324219221366574899200751229011152983172909642781834954030435362369740341290308225081742135178239646599704382756658232743158759577773501241711411839294410571950763020650255321170995802916559279238188173538631840724371953312880999154714816757419305389912000631771418824429700956988691068970594892743021852409457951279142535442296440691503511691089765215088637462727260801922538712762484379475125082978129345611770954938087513215375320526159721062162544089196312342645669068075380960322642107282540971278129549573343969323158905691110601456435493900138574009873342562012075110236496022452752570773476223139488314128126831159287060605792378743991944242801531609948152599950718029281259847183453863305896819802119354293338686487217437691710435685647927912512061545908109984090870675093320758179228522121408966375227370389288168527353057282961739211025788707043317403775228699330763428075590597721515738184984754861387026367138586448842524628663235561655100968050580256596042095906805220587616292424872862331871467108210131332515300390167814398330529978027935172846128972399340220049643569665304257543478386007467679517318339355650662352380734435573511611074225956101245287139559745870879967557504580402871680355713552049560259962065081854255586813192706365629496564043772185755613275272604255224679748910612908002570701686006886353078554597757711515977550107716778944933823257097030706751355625532921527650533268909512518321419817495406012432266304793803524773467829208893852392466688059562533789387097858668485147989000313427174733198304005301471618644073033329375901874215549088609036001573596615073023318596472469447564206057981398741179684254216649140835521011100441782919905893975923169234565437544829693172412174108972210611884961970006356915193251715703054073802357750854514466801340661490651318628297707128576080236295295429417566266285940783909577534608890504477818081432077327166027128129129265654323365509551817536427034781813558159612948301040686673530999522732461332694092791427010109505740753193550252826581850646589227545958560370284342631338529226757014253925848551991783866969601526226899504982109982084635431927838676835651265987372967569534440675350666812427070329788161615575828672096840622454677782034080388928159037916812901428700782321171887801731919772268895714206506243782631430724990781035471606950013410650005311108249211039846386707284935692614367553482304933732240730058047229635188588347878475663105737690380124509522851150717409064546388598220951870581369641117906278155884885282343694387412810481318261209963226394369587147695674787023728438207484804642827655828743662403292881987314243107566294815290619339341589686165341374585034194408543376329159913251919449845386121017258601547934217081005473792710403453818022169582970495193024360537068750066043781724371628220573391681699104209263312702804258788881574503816130106820473854090838375650844790851458899562383794747609496689994678127614723929022727866931746594207017734165491233239791740486569923593692975690286954428186620908566171543182509952314713359195155585173868965600410480958255323468278740756816458433786133136185286387467061566867833879575258073673047678416935384193254389820443871861307125364025906843111192644690349068857502836229054729014072791910128436500304507819996065239883095551614187025403186021799170959664464400550390440488111458335063338129905543349948236016696019118462315079885181472665220109399140646714296594718360102077510780674099815373082055727748922496838076119056257812252199038738931548637336941317683227914324625807548658681705946849880378115210653181273256103584291805758077243014342827359094583835245865378165878396252433827170230412942749901003999210276709348676734112726704425974672199703963608680077372049931161823688043214720776944845168073350563520284952847653675948105882329228763809930539982142178367060467653968000103220223768048409087044422340089196331985402364945987221823806972280740390689338314595242440761847927744030872025988369270649317519773707044728455049707526835528904958839731507394464391649455831089074199076990487027633747686795772173820975371443001698709297267420255324435344678437455615573101888695704196985031324234609610286188383331206956114948215330477656142778333854144791035699735103092449125027980425028976846098608464061377335863245580381557903090770891296130994271419749554681153592688528240666210484542618378057835019805456470841001619203750492953020281915573541608429260111542190469935672862327730242829735403750119632765200788707287070706240655814165998644439438417333684592460595957638862100387745998487078411198598470000882503916101321142469637971623651771864256331308450224157639765661201257422261143923821418436669636954605726006053815860323724476366273877264146711531622901497878308042893591448152505438865389534710555268133193235834756433717616142480967021903596567036430520551561141945029357156866151524241327929472324685850019791572646636524718702060997809501906084715480604551674383689158597899857828379906785388842255501754169909457378707211680527191620750639206939670229378871738361203563171578877839350466218515133325703396262632152766390409043259945421671700727360162472015168796183738348753881179261237300011114960618895987221905132039309889342469010380113263492971528143097070672690289381144260615999559622193165329656610600668437584039809964982917292441633474313968652618686769284366487865774240624660035813817384827780575139066810718140001845722854216650989868342748926220111366837871735878699430936842194309173093564625869287438218129818588985922365972856360440015084223656961111339117839644910984721473455306660523318461571295584681230942126564570823706225007946848930556999242299615650681899804325945420531831196088399935906237431979419026364259573839749346384652266207590069145935336509626711747245504328745274133141266026875482547094881539506426019314755218562239378668875511066336305932666484010992061739429649273671753714347628917705020020168188715597673861417149675939665239788713909711717073096950769317344117265418249112479125927293010751932488193182623649311050313261384971527978355722564694914703886166118420122876419072274008815284883532223521299365147326242348493200196537644359941205061197764326309821664411072152113872069943416217226621481973747713364081579942424290556914257791272762138967026481927707640755855742437160911522000650203185872961259916969271750092946049023496794136043214591513475744353401501882651313303516606406670897417657771765904449406021248269825274959693399066652469093931584310063329264573108729054691721861052127350167630699924470245624472239646017981452687427890185830379309650316717438445579378828277214123729847287336629980528636220491656934402670607035874806074570563758812934691677343795633967749017061195972241064977972610147841193888862509348626572114741776663146278963829310492981925027860691067324870443816278425391560044729528260714861580800218272771960639112088579238319463759041198388324669974784697038979101518017667000541271670496170593286243819280210354814335966048707727523748122448527611149786273863159261565909084312871018083898731279975488484956145432421551450298790792427653070542838070484569876355948882539914947550658152709694115270901863669062075299862598178796921982211690127945090217436250265393165157786026137486734797452714612848182720782306046958049278249314328728944611879335066576454924117926821400682662542622683750968390633241074872927403442324504197256593685401838893569028908169751462765881482711129571827709767237954136928336156081620591126561515275068714727426664141411082968811874661401425887503246478666649145519259843556129454890214114564033584840041239192145857032338270044826282949763099097270299852430310559414301337932206047705720399690779997740068255979645478540028829398527070541423408727267874337513439470619925746851001443136230425212888998487827144149987124977309423041864008915220653991714260823418045477758229692323614185157712280157188865444126858756067998920678859411772318453516239074298885479467240433875168768242983485450384614621792349591582086108205797650190883235627222349093473117861691535912662860451198718156226802741531955955415562178146890288453988500112692840261564394451767328938235233571226040401199070957472412226301401091665843101686460320771043646710084891164704847243956768379268317524146982026758026182846049273572508983799791282021938359536962515774481240565956049728945393595888019298445146014016933671283054612039652072516517317121373925645158370469154193423411860435330937412231362264513384305174352271814513575711707244982397944065817120080253213503194021458011108550404112417464276847612386186526364146905146895265589812442101089623053014698638588432968243307489419884579603325577911556482272197510683706940859770868818032064954184527026593375309144799861725293151850351341419734284299161559757018229706728095632458398409303225843508655887835420046857973236977820454201062034667734377514618874659649176224961734910202317596762761717910536517955724262784552059355535573212192764585272329947304851843545878920938268133577378994289093284099427859668172414816583405351827532754888623320617475031233156443828811774524055475930078294051572840097199804694896456014393333247569428846871364539477046685581078502764097101894469196995971778997735568962461482504928672675717431011449737928903292302789358249375092881243368221450302282109904459243266743559324798308707795125024789658983423413010551292087733703605272073587175249749691689982956258973540981459760533677685500864266168113971457985755327699973397503320660968414750435726546631973012646494218790925406787410588562757285875872520562426211451515066257165952869749743212738954096743307843333809169236105593115076875039514387645671718998002557741603542258640095941631462240222793090733904397726000827136038482819629643012375197675876531962679672184848764702837506066372209742837683086577790001241000764943352984006762169442318998246116960563170617675986853131181049912951643108281527841548353114259244054085976234486804977110085785930218595709165191901844747207431783081386941945518258932577011597745901277695813339109694999679080662670535398844524971128717430868078186953997242296422583039887983405201753300096004897772404948362637928708498191479032441539313612179778911807309611032081024203997740786852454900219292150722274685919937367288110004514108247218518815682578643225496603486316523684599731137815690688153413752612422950635305020934941985634183480932503820492354300639705454907949181734131730273297016631398967083906739735505797548442384944843767911414475875990740221998110218973962722511445535233454254457391297020318548047131220221225673278688124492544795365098021243898520551726997460284726024555623510490290653551438170246960216130271878477572477851496276432377207039082969773066969732703833736216248253995505481742592284479731278264975723279315796560421409015307673055374719194716037843819627962883450747764801598952999696978639845022125988980219495281262331574412010915747052197341140181966222690375454740984512207614005607544736290946131487466039658843460352793469929157210679511336827398223772317701910131850373518448151018850680087547890960811191756961469465638741545708186502552827636511307820742126451828557266963764998866408059063409652656101315108122188113006195816720051456441554166698771700952208723479181999239108745957458187726033114456197480324969851250785309924049827865898155725951295304732867372200883568300671268048156990563797911257693967861500296055840041786211583339756119246464592712921844312322424122590259148115550779803393442507471086993048811043811073191181688177596506778645848722059402487997012602894660725656007635806967595897198800792703944031533307750962227872468439194659483397619508426836654357508279921543120372061949188484292840465077787389309684339566130067764046676668251563386941151767229091656791350333949412428952007815279481091946714029883846777676311688145832640009937902864785026287104029305863196401777979068816744192470879799562991507331326426883719250981401439386022211637950963336900344674438017913276650057525387276771173303192283737941784428587735507684713686758863393655250056772623446133824321104204473708884773413343269434537451511864113951006586708263885617536868599832986567218171240687082660684736245982578139542646943280687773375540123592492001664149443237015920445377564311438785676969647100020996494364956856806160768112065803325099185265891582801599342103736554481344156604015552688801296357088073508787100445890793792751277631093602927501292880458833797225005777873566545135991070664015944507539635863811290861155015152274884655301680191830117868653919430236974507820016666238866384122736832841048294874514945820351423912494348503861371516947714953246932963530033925399857792446592986586547901163208163367772881277052347568630641210142365578300857533926150575289399192983258919212029914792022437175602497609770153893778205796013375049084460786830276954687431190168652762093493140339824781025546523950441578486268822381786250008440359311470001460773146465600890822082008980591244927586069152678179370051367806054008801903804132125996024675708839785351214903295370685515633406091483640175906183728575788486030647189766281124648251804550009610386431005687512780570478999678790744815839990355433308741368249593076232440368183243947073359149616911537819643251319998436703142774749700752972060726294610638097249244474549334447885788772119925508016858200351808278901232195404027364669951537595524082496711765045233690331258678699638121910473816495212106920110623503085576212696328361518541010864741565031257541667040585798895448210780025582398779338307010946683950694486541894005825852789344160907730279595406423395103777251066413002099726779654857062836065509745316985413349271497270018883160493676296503958509805219810181123029231700670049252559118081067384361026027362696965817394980492184124827734245369432694727469968940148074937889155073879019319958743722074963860879061818045357675871771085102546207240810589640235239495559453649698733689949384165514972221503006519891137573855365868875274413929767354504041640224355427126636159374176459231012708274285483588594683929241710979202161563443213263487477346192976269320824592127361282893762225992976738066392535233110255100667465574923274203933103150683886847204334389840158579970754301500409345483511631824354821643534305189680923344826269324225875098119470928705903430923841297717691292728641951920871876548770578193435451345352998497220337410329987933040500040508533580955884277237829306266785898463385583857039755413491112350140728546659493959563084019636369467290364608133986373511527181780391967751859606194379176830093170952790298399638802244230022706078954791254187026396601033135164528856136166323369144509399951866013094919883995488697459431667478326431518530674786494729490169768145154061001985312446141726778724847054662608257415391786559376595901283808465246274613734235208332850771615062407828564231971426353656603735572463482729438248348945158738542220608215797905621670925228786011848161988236834291630478357662067675436528109295141521591674212755724503037219013378954434838036312372574478223918081838668900576255764043458022222937572818378989272536380385599702542062101506929920824228553682539093582412132055994606084462846289718978663847480213646040787783548801087183508753189054898063222636583064801915438070243674605236155525940369018049664980544228141226702659428789533205353024724915515421799233968730887505406788628432763581002903319506808043261196900467735551950586702785234594657286843932073163344870038986681517324197245394818293662592716960083132438532813442638502994392915370329222218614041644876167310587832002969934131034886260577976646696596731069196982443679951804710409663280611493479085666127032897164486580547540352494698946215518633495800399867865926820822804136548448610811647565968499121756698270573111357616355115585680369838518988185961074926052019582678591180682670791855354871993249027706967433563295029586886052265998396111667968984384304018880580786923554789179041348706226315477859242022583075137136229789682181769460416956701445324865491479030693483185097067526946490637652377251375651743204616819649014706085550981242108163075306830270332938733555289867034988853447654130806153551090888609464641577569021293035629561781647479926353631990197293851308848071411423556392042835702358711316158914047295576106172449259958023899169162136840548832488353311813286551160909023832816508204874118712656027462574308240257570715791133636343959515201553932999636028345375180771724451706639308686801667221008367538385547682189093082182475063213361457529500837274303455881987343518611356784644039951167889412148527849313651928370631031895971317071612788849223930121177683390620816167726212551765875101868215573762818213730239455996977364450102397274770490306124362397725645722038000126890073207726617695377878855183289574386564306011421210783345729740803317125324024323483370556341060194822199976889634586330539485360983773750531059881354238945881443000892710771394372009578946740404758080988058048135839138965917377673497770521214332824248277346255321068503849679511375990532392329043042524883933995478512682960983966862090404170590839783630848821481967816184340392214546791566051013058630775544821691204024746729755551758776496487221528517207683716124265765941265571976052672753322747428452031754337712138523150237067775060100955039110005014704540414499083875280307242536245679850245063376009065960460318854074829118164405388805730360106326788984736799411232827666674646880632785617969863710225892368004681175779176126223040009332530509640338518236894763988468876968553147549736495949685626662705588368228539996533039245443261297842046002395331023843617974273978204946131941349836876039915071671396270375298857263138262844354915159569279610917288709958125555582064176317586199878840190586662046891240695568925097629409494776822796352406569045662272104204035789140040961838246278462646110609087688732585912584230200950958156062075319269825509076639294004047782718664124827065990858227194544653078720861203779839281986173041990505149072250746196145137987439393304052407512283759896911499355471337626884231318106492974382632854630044377510596300711995735034824872608971989879893959638626391995037017233144508349378287962159686302857688928422194616257311588735038767090261883442524827276889838242208537542216228995059281709800590819840371676081371945462470858615916540685702363662030122923528312117403687823366392172429680288253554436265813282132793484755725859885585980192415128696915893514820973138394945318103935527550201805182288088087866948887634912658463106340675882016884693891370406278110654161746292107331146329819563232334674443318234250459100838207058543811139447532723599307905384302397845294125025715492093960769277709684021165352246990101065651506576242418123991606054464042993808163621755154205502689700364654550612696197704477949139199518775972064094425400206921448443813839641809489547613523840984248487595359504020039867055447061108403127332161739274846636645640354382757512911483971239724264172738756959691316985731815666312431466293028128731086524543505312609530198850440613923323195156714177771370521139422428303323726623273700320489628045697184144439103625436653848487007921362058062044725775376144663849940924263788043028067766637795516354929092754216625267400138604777115252756519810788772562875806763801604269200406239662653690497161979346056080485531596925420664209762074320369969231557930623026316183356034232666053489318367434332406939377014238475378473926495937580900900221250546088014558361388005960679242246291212864041447088371780166817118860812240620153243830320452392983782040580560901042445606557274517705933366269462940126398662661188130691335177075799512546192976488815768483171169783953063220032134236311349475123616117845645355862500915838277501600339470752763357401337349503284520386151769183049285088821971263194169962504015588618367291864147795802698055353902485831246557752779819129390738494741950887644936168486031590767413937180657107447541501708397137301646503716066694800474502052222865516681562502844748248765907833404238569518170902093495935410544449785921129499424038354045324904151275056169566397799768697418642196994967040821230641138788669432823861112943976715539738781482171669670717516456398949575731176048204274074557513841534172421211241668405425102879127908029406726959881420022177479227759441853858419201704036165529747726448561814861604071923008442317835782879841011493585340543379316941660389843519817817754207975453725818718573299351321490845731326632954878832598738710807963821832109867526766972869651742672438198997327427425459526173348262496096292837489939420284812032556959933387198409223928435518005320091771148384758615584297172338827102970000494092536570631835731556597799074080154244188647244028151329982489352219364890380285394434200124523100920389415299806596373200150190671763790821131103387793182129463347537467919189255508941414472855795383313326459684199691790117095360340372179308993613055450228885335209838380550848970425027974018337870671231731236295742731452085825273602205985201953074796905158359406198378828733129994261331561846573259311677622311624072740271484360569142726638161603340597985409352481404734434727912448616085928505502487847688917452634967127300766668173169862851633965472403322069168747848175113992429411850605355777095758749194990258874748570831707942721490856249934399590723741102154097307814764158843089989267670760221446597238863045360680499830288580352493418283383732893167028427036722705915617166194352097897111980127161101383817431848908729120682250035006599611739274704734668282983769398845997596817561935882400501335812234282534677072411640279344321096297521076592412109027389184926365110703947557258929297352652108116450788874240106871710469097505795781526035236023982712769465183426755186321272880953061828612120946779980262059553819959676169083127070939145318127977382214799037961579327582111208978236485800522223983586079978276780668951728153436279564876880723678438390776852921914348499132075848871739727409824445204791911214645604081096919281229590829828016964592305971872230321658107523992698542495488653674712823885574156044098578341590286656669914870647210186921725711690381440944097580689004250993597590221044365254752147231201221218588916124551037542033959145150514353883847291316804999131943214284550047333530454115285719957407037594338713453105399140294699255728648389414343099642130341658780486796560963489401329039383579348271306262364456804550948980280614012172092170507200103409156064361762470834764159833421541870493798675463322359351368247337474227453069367063072153271024124358725608264819098064542249268253380145349963028061786136645633164193434449229989421799540384782713280705747974975874423942654514313366988407357271896910659327472816086167383461596054192040962202738132493510389555241988461126475975821488609583600927118371387801749525354882948883404222869506015312891501234761205696371743709280956237582955450238610932970359468575404543169083614813329846593145486979307830201475109243583067267251967324383392810110548077615629812797297825354914626778200143711585754016863144121407206003112457393194201211758728812504760958336292926609040457673697459483246890832104846959868499132641060652241119440158319081606737168466077128895288376365398902473422565304808116105121750616062581479755734775588209253723061754029765753114371057889681669356333916422794718938800283096116552401537131192852313115777375759011498336712151154185919597857337445593876983468192439892898718833318178299135477369283651008961043351288567005346294815245034471597237554636864764271495604215662531171460220632680698781513592792245359695896973167068625603967939209198786802708978582606649595273919458131663353093292607276013768049004300539745937652415696089479594611848645009131655704157603557107895624891522708770992892392468622426349054885926045047856828604712766607355521912656413786272816034745441901299490775992495267506369473316816855585744044050649069219331791435284962546924167764143084338206904023727632805432513470692282128888022271122489598649252123589765274372492749049071823892087633777180525479833359741307948956908257756150291433430392115927695921866043590317663844352558583369438062322640882131280962483130900428783513416544144370738454809435857967772146589689414929569374309326006185312492448411901689153285181371664576873959477970899590644283928642713410283842066164249805651842595006388512129734349387910385331065680899740237379330631010984984061721379915177016128001903369449948359436217372917584740261263191471307887262108980300087809679537322728639302457380702224021091846967601273948604232920772035924188029182381553972337666718161568687141256894913716541846866313436049726478824335101043484614338200420130444673917800359680140206120665963870683529286164846671917853940476487610803234603745685135334170691141637115542294738136008116410661661239922607126328267394071511395290145680898319071804050684665497190397589665338737779628141352937822144427064533914566953248417387651090492076370674472724474073746490384498216188290010975977821497457143659794844331019253259922449098829125218250195065934325352678166534455898093067778852144558096146999570391507669063430763735197558920026897749131273309485139119155935327438537571269746028791559488804894293428623534530034771242861765183118489880817011586372514298340391944145619522151381727572029717817549816317745730018229299101834964227819057826460083661683706485907636535870897643655456065373531009419102833885116655626352905639619848828066961928177101378049342131092035778133727398168700490519177130594789869622232403195905776026365801086598234872369808848195153784058857276353721933837364800250715536406605786641158064642860957127187284009296336504167427602479234061087574066833398050465567340822891165379337100250821116696712235449325793806263906729853244824703330648600134855502181940089706883873695503971045037154273651062903778781811634711613660322070296794833614956087766920579124546358344864610632938498940856942113990807902320857431810385601106168095470319037999552774185759894820942822333893247751249311674764711704067520718836605260451074425186767542646886927171935261534482443598959896268507877573044066453357140327397897105331970227607136047492436695237986079606300831181431836017030980396392334785814009261286639778821932782687582436884940246700743894089638346074073509748175635069370998090073418500102848644148320410803470313068458633294790721585163890393549517519553028065438432374512621340013158721323119468990300316806021487043496113766286665196580897610286785981318634460199594612976648849895176681797456477223903893227227217346321927704902522933658289397351535686209822743547992421734997713135633966867376129521003733909804301553283278321217971950810175086998708220446766094615091486012674148874822858962093183240851464098756799867043020561784319943731660232182962837708868209357355601242857378976635986210125718407657787439808328813030996189394985526043117847610468589335789503526332534418163711634437407668123357729245201998736423247405685170936593452747896915161633757833510666494997122578237183276419702051503565582939902210390648270493043824455436982981440175779855646158171448011705961735305273458666078023351474964351233769509841462391582766399750640022138413398949437246840242909802383269158811546354301040373473289159942578422108077150951046610377099611737308781326606391734439508315233916108899778588864799612476996933733871389845865757697808229854007665727154009033741490224603932058460713848552396906187106449441532025208246688167815092965133047016779715781514097417065079082148861442001405651556449408446541634962726183644877657563737765125115640344149158787666526250379331892926641400076450611407827484663871851278399499899970844028652911253363169490887383604455953727210496444476072476501304820633566946542679156279062024044646546967124132312941178834178931924631501564959109757533593858241631384727698709220452300290061164420272117243810182348555078204124145946481769607984992300571704260179837090970341716952797747128197607774409770131078977606831147276791800321334267366465287535017408443659647424782971446781399015083777545549784090128990269829454081699606425652143121389064385803595010078987326630409875934074783737745618630711730619822295788086766353558167536294161136762994989847511913707807620290758282691677200360774063129129728922128913237752473843238493981826400654111942318091960902083720072773104664144671649022255607401773522826701464946839872695673635736818760090474752803724285928565289631628631241645443213845766834549207661270130605891373056601493401394617205343003550003977627824174699217646462355181886189201034845158552392527177484183421555937230641226332923723083389609782484251726495511205337952797458839822951435944737347607643903813869279993584855118058808819703412694487052556069385129613371010989741599284070475359923404652137459672675114336505105179742168073742191750713779733345527530069351617307507573757322495096138772898136300886248988037919961104206181564326213785424683488123039977943822880203239842306618991308201380254775335564783335181499207767813080906176559673794859099427206348829000595555540148226086794859681284599174141492645993971771079052732837595349137622796683540520081585310762726388189459220152853224458408098462130880509461757084179396167022699407841557837810306891887975891868587800583588415010544923040752274553125338501155115534774086629120422908378488688892360387640822283474491519373788150623554713477190304984242189228364752570413670788612325942502367955784012348122991798475722287119169564667754583098250858160595014252821473522105556267678652298688714161080861425254035108718500411864100207864264903497962271767444845174898066257622631965603952675055376694776946585551095736588863826334093549373355141376718480480513901602881318570238611457122264003413181918253326810207263768946177464123935459779102949869833328619926331854422640220946990803704774022151777525295026502617563414444620516756252279019479229732232643005428853006468073132447718113300236507864875138562314280556496211040753645113075866388645765058020331076910015003684800984892085891038507645251259109224308951466473719331849907298906681841429378435587857810113285327072007319293447061569374023876365220473169683245908827914867817237460474783199490690566269806934920594020420765928891985443806142292682270732882169708698344447185569550982535239858557018392971727413234997701513491030883193130255215630378905392397861870617408781492361640372535404678834952129679037774176662157368053356568035464870647424993905925874926417430424027786843942439518125817238606090992164034105682277444245950949819623478277935362878287625996628497162061413265333271541032380773951827871452535035927880857217372497439461728116164179168582422848480517712679916226471465943219836138477776121148448835759613734392846279533377305926420743368790484088788985891632754821589071524548408977820102026703849890495031318035835703783720586869669426231968114998505396613440524768999759115423343018240669811693983346839530661598083227305995591550440191354684445429056807206634754866854486343744081425059427191825589358250281903542194553645935254504923404821269354238248382040811211949813430110985929010019967403540920588454508022684876096194152123976771271772376683879857561664135674685411804451596527436666275099747846679427487213294754440063069871852524708109371762592587390039552382145409739555479118198811024925810525551104174241479612540050144131471647050468030996204867870202047115332232371911542048816478807636181249988459540926971287521299270682992464961768491346563061077210225653848607033513243040552310514282692075414078596661940198023133781371633686676009502124725956330137639655472982279643341826990229177877234856350255476948237496688660432413164917174214215920890881941057377260798453215225909966801226611591410538011434051470788377780586415814463798133952376517251533134958053643375605896429933861528402602637542984181982833770400925452178170554287721807349135380583227606059929897089176867438713630916074002096889124946093479280161432537920724946683084719988515186155074370537637967472376829681155142974689435247451152320998537637943986560225636652242885057409175451154921067741557716109907872829251648360130041276204483779835450638613918849992117055989513206966820955857100618674527438506349468746225937901567608880323102932522738898611663576458018462419320471073566951969367375652747604074896259712664618044180181086513374096554039447391858667790967949094610638189141256506648862446510800353331530683659359127335405258880451611148535932472438305720686657416459805237653313889978809613330858176256848498867677036051775820602187008640034011682902094915531489494422219803671719496535556431622374329004065809044611150727093761532552398660647815237315213231187443327694467573925102428671635106249959756523573924707056191732220615826495509536816327334878372173641035678513061644647689341027255047752220308644027172046993714261447007074454639264873161236462628248435751460262668279707863064901900234785682515992725107246189918762736793682417776362597819750880630949316821206872404070314480007558749560397954144131714325658395836467837645342308598249515421702079998633541356093731767875620385198150722289259444777730071228695632188076555884280634881903366132602831895038785193732202183176736322215741550858623498988822209974505935362650559807786776792031767377396633984224667783961470458931475100622028481747433166388932934249156369273835337016218292572406924627397282657139368718540430126424888057235342909630683016736043003826661970570183917270109428729084237183705583949746393009827768524504422861336561293201289769582747563845455090369070213459000457029093780958813301695309209005609632179743807410817276632769182046430770604145074257596307000871732865621147596927886110667753003408607632343741071827648583437074605431156942364311944877083618188550862873776957351666291943975275874161382313127820676916461869945074208661260812400234900868918849346443443055003745757301632882118350293618853455275860200699838091681120744371586617313665228514983037087175143203153040114635365036361281306894224907790977342872324706839003268047379410051591887521762447999435784979280564232599180943445790754719838076172026286756948968260528285619527316518007923962990119852392418100161588838045105964528792830264054358998194452250810898612401088357606442226661054863376987900311384842032500033103697424966769296727709583332797160052630258822753073850732465528402298422742636737778090497075036426450473102574864506517279258463260186068198468768460327441441800209309979593758390936292366480486491149736071558434205303824354636933406471327856879892375263550992260587845608334604263069298328816129958264648789150455920252344452620549125880354468297818563523913768954714363367353458888302445099757052277000806494560528545744698210525716339543997284422643516135427651861557151031668370592558930742633754246507314656988657850767506843348438191761606132167810560142900728070891530523106068167593702018206624086278067535720993410835131163355138981583960767953004019626780808307024136053887269205023383844091790387794788791993347207961577480666709673101256475462912393232493578752330942355250146216412204558791845821040275880906845764225983953720571320591439942449291152185212249265007037663084003569660929898450581273293415504560097765151704222795999967906633299275521498250095904756547766616693951871544076542173838999723071129342314518022785458885159937276809352413824177425185901702351943508205190882838093126066971469190058414712128139865064451188112117124716818367266813174033023496303273644617245406561590412807386004932616293049806267530694629959946993889824259556165385661686872133327305361664504819404541721030026364461626486467666110217097247132937095842687486930013400143973300590888488718165386101202084477067709183827826506613469837243106256708233552505162952336138951725217504296584443019109453554476809529420393755083444959719973680318999789124880501905477142995595698815655257956255700423729903416248215698326011962350095507162982817224298387532362369329385795782956184469206705328124534378967224294379954680178683973843048889535182783128394018068550126836369127819416236065524190125879825020529504853528661519206334506927933028125878326207359196519207321140644906570262204970119855000312791180305424794768397428184660754109310027866305018272000771499639953376767239956963155573580885877084247326469662004035517307870463793332562639754520708265742522036943963030177037661187999028193706983369681097671603819081863236507890923616381742351379321166720356486676318554443315960990400027015120541400115089470515275739459997241143199299735271549401874278681302790916111010753897207666808020754310272049545702120367699298827067817492842119980431418946290274827788710536659504433098371303309674308644399240922548893623474669661285374451859817113093401992066076629563791777595113373289345146131681266533926623866268611328068697798898770192018004086551669083693034780130741538918745476347196438746263281242820502218663417022467163770175136178272880645346308142932622089667972862212842122192612741061827621557664588102818836313616787851532729592864595956691481525453053651296094513996610397961820084760556409131754716998226871594780197712156509377875198714089178494846880082430791425707201003501187782006028442659356367570376598455270996314584660398148251678992461437021449701335492377178061761841974357366721965765544257338241234526381331388158474805708267357050034371298024012785622636316457654077869465886980569209589590544827063873151815804798394098490392661684297666065117597272967587003692590327560090748540496638412373921006227511389793952274890245763178665684539061622656180082372374045083853764326953471964083144498679562603458113630284642965966704761318430283617538952944523390990750404256439356758360498899204271298426118130154355425521171798779156553017255783709978824478512711368236110718511546430463379962490208076989937390466754265060487147102384892512624867511563350094431612550498858538496566863036292748565552008939680709341712487453696399575730948357635084275509247646439160076597670000145297107424302761881116106367649400110461965771149169161335416219235290322221602228081820238024454025298314898565629506450943503808372908142900089263733136773610231628716505988249935389585387763568824643916012040430826629733475438156253380348054192528032052657179204124392714013039585331704233412099893209337086897679166060223835420789333379961798713044228608146040111321321229671162204088777457352687896592042534873941958415340750912087027477986660415924980756132584517229637949001316014779872252169781093262443619050246486946774848507570827589630755307913301626260561483082671537904463968038492137303001816726467408721677395739200324541401775954552626869624502435199209288847405559371452583626604503827026589572826610408825505632579122358028209478909848433037029453446984220224502264082918278499209007275577961871427453996114115791044039684130772290794712938919897932568203878752328843606397041944239963817885306819113396236972306642952840139583745002580043325364601481492546790702230732170885866338265187103111133685459453357321346758809489124765776428731706160906158877349745342113111893711351375176872023867401589778978410964922159990253472604544267160939767980048791605431854358836094833965198423542632030441876449275089260799035404320987691186650647936374114864856951358924743378394853321139464905488380913884473865723476563624976475350285214517542382686319300314635827127229925203302863796315482363855265476517499524297883618807273116139446383483759756717929544269580716603177978436428462312086008718212477082361753200080979634041294099054578540751835450859749129409864266687168266149385572128544301966820665146931294784075889544118602513332310229696700204584664396946610232018863490248186263365693416423856429899497275101953821358122222235364809248354109565772642854103751133036680529015229802909630594877217208533505826690184030894960816121882042771472343477430590989078428976353666845487895022115657963649248540044835855582036780604594247349213395481775549968672346890657423707380237255597048594078344793112637019343156275011240746730731512602268855104436692753857939740264568767769127525282666325899359949020651159305445874357955905514673784944949453064151390907214456586302176837950049621240560151705235765137641006919586487523489123062016122216337626251815423519295259300253076045699674860427481873491928487021509823958902698686399800979978111312551430037240130866093237626132653519561066761406813915651773142033543833559055980795023411362114519342309392251734330481519931547646236242044529519262907497847358981637840649804165523850925779076486238213025190410040347782172628473000307950470936327097583656796104134928874494477070516082517628186724673697298933559428067308016001061947868481527478037170555922570971408175723312451177957399989708255421106309530713199160446255921783114957046781687537530481477877800776698267653348392837473901386026069818538384202598692907149639493635739525132203089516349258601452759088000521405663084200994911372297046059119927346795727527540281864106933679204149735058184714585524082476285690036135101747579121300312339485646307461301526932302195781710763116634756649738327099276651542716163822284242498817980431253782789085614283174934388314350533621996861890984650807384208672412314434812468669749767046608331564840957266600033912839750341899065987254282661568464193690954456260978229124860716564127432862386534776707602621841669528246459208843688328456834515794283887592857384559540190954592509688426057541816412728729555366217360885893713238897839875139449105665199680611670575792617275421568157388632566760720132490107569804863303190905052378070524375617870330869994401779029288803335753114232180821914803524079964258124114835410943977406370374837364459177241590091144481313533290637250401812621197963224043456346406332731787420113208762970180598953680922713910769275638570588035913052576651063287248207183546619520118513411007366458062234017591198457952467793460948766036513505254967486864040239525492990428625189815735736016254579169682813251058433729513432260871063696474711663165262644906550735409304003404725985462186050047995174284348788395416475101861323318770867786729151226697976173659974470010165526655709037488052150906446853563918845052911345134630854856202637386530547646838937118959472550531180033856318834506533449074003183130335922025434840803293899994148844783952436155909157355901096888569484650802635772212513249920618051535114991835871146981817745161691848252592108669184119148090201171650193609776129394128312010301840365662556414140922077298323670016914276027576242852114178715383533778845586220154211139921487338556681863784662099515577575932664447344189153265140395748342106345338956371708411555704099901958473744035070629375071478500887071356210040325617311878968573819026253227753334257973923610462742639857492293555399023950618183921775614362790824401196630380722797401731413919676997438227043057456249454642400271223847004178505198156826005482574798149674657267975857282200228759593817905528221087665424046606909303692106074449266295808648790022580799996857389656365426125373991606859381258334701829282699093840220541463335195165698886187865026967041673248353807144326870494954110055054527664673981496319675748278076879804792139748994239277648263304265101703405370862715187698403495653704201226691912708199614687508984986645824110270197154648144190284887877542464705686290274433874023790293181883339450156268727406337918428900345958829013186520852983373129186668483609809232094353886862462915358849308835101665139486824143017039418277870274157907916619569093408000201702223607039487789561255744671725287386379723033358901278857699214352946656571402495290686491242619557998786545920241282216178683012637739123627548162419261364812304901048158775431245658567895456896561011779135490738080207172681526107171395405167354426461570915234173950306826658759019760456681377035052763646816370606536740535301546230610489173653108908651873759188975145494071028463720856734781476521751364777988767349274426520389631321527489797716905422395529919717206867046801573623677557510682120887393841649801378579174069930447509801638937446978773410601056610131433228805797894634624865953784403181457882555934915433893988163082004607868166624704060310839861035388025984531941580114734325172480115837648868746608569100509991492624014301530009972545086287083137889289389900511433251533966678826563906271960541041515918891381113762693923009107331152073102877560925528904914117496196070053056112968511963585235472545358474085202222199148998939407015516334338344317272919684068332503981049322471014187554277256940539966251383641947078862115535321034080845122388756054809161157431608915159854912779317836901536669551623637951430960512837010716856287743869786659882238482281165817386574016596425421915873203094072008341247516968324039565999516682705026999080690279621178325958151198781675016671525034596019802885126858981929800200828652495180193605432366147999545231607138285226973989953791882866910550915451655013846326834601607618824102567272696747904366132528446817748171326217501214063037873096400535166970237461394879087169105941862942346965672686615606338387957844163652230812581806304720481149660455284479479858780227950736486361262436635854304335290284681510556745265685200051643066103982693106393187468799369058097681265638952679769069885596759681802947617698992249912048294933316679494282961454272796765233624490646186263492514320596008061122389385833978839613373536824234041886820295465472087213152892639426231026805158980364244412287230074494222207781599109101042668430759138887827537318074751989916498328386410160329620456385593264243313985630769674251018616681685361284444344245603109633692216440603974148226113977832023562856651657020850604538939610493258596287202952296219983568763680619367687425243622757453327131922754070744143506493894406754453890430754362099546659857090976786804459409929350654911652251747339716019630871285352668112318191439818131393468578312747209073682076078055913161615955066998868048662674018443764468115595591794856693572951693271172104354141969900704257316193173810041021943096210754274038407673683752353069695062351256952595998982210896964942902802386572296513316847646251682857798762676262946898844570912669247503474153318653615352747987144708059271880240250231227441784566396615663205092787573686698158007653057300427914921269857402690151462522834244332074573698823791367443340210106927857857782685121002129323924138953528984965227489390413587418265470492095088802017617644082503977988799683683187247542529082203707407484783123156743177475893793866788781290392211381189084371762088949591870254526311967474781538255569079775875194950276218119956268735234382984273915738773916211538554545175812039934703244000507129535419185085029788632544970648109068522071697148596319351911728995235565319037645826267373152639678927048121766815332248278269770892118442237644566860482161770367539897417525110436533455437287492066461011187650036537410213544208084179338565155376357716125717969621376861447778688343413159744884840190952969523416139530216674865972817213776626660713854719688609090438526082004101307859690900415394926646209688677142113439822406439121914265796684850490035373813159800496340456332193445044099655407064487896317138790500901739646697034998012945068969590241245016730151278577003093120516676115977576832054264991880692085345223657887651242077578681535770535857101910419822825185753568715770764847290347986068171305136594668183346006345830217074410175015170417407870486164383288740491049412620505028615295272107133148813674903916039608360140261611801351042853558435198932592708530948388661448853352751891393071626420759199837914680961978403162077253548707913764558212981160521043472877030454897814788291033996803158396802787063857126699041173188868692632274698059550269146206131576425437358582626624687452384444744830235593274170020633119924348930994663956595269384992768757587277911343527963819196674274377724967047268380757311602487803176891404078631070470778678625443045364608636558711625997973342510872772241622733639904688338265968269823960727633536772862983926449643241444698868458822986677998559461360856643745706866549548964681618378723259960025123608869374471825872645809219048561462265998616824212009531586375314353788119369866834996101921376919369027431608929464798573612341362242587868453892554861578661310347196847735318010746084874571956717362540014206069323909255629906086380937952263459276950218420717643009809182167789993761729176925109716881831339762873326162571429641757083420740111553328188756936733863659657750194074614604179552350213619987164924871028050995015976526988214798062519839402908951549395962745932388110336231173857290245781131028332644141238407633946222961470890791546376755481586647127732289291677755606054172765240632025263240761930437733311117204465104873768383412456729549213160898081675721067449717075751007319393228546812760404330359998165245509965527483527042724218329811126142146506724275680402220354344180965905325150377506016207179348639477480630955571354088852949868096440325675812365755170275995126035262426625911317467214802671139830104510123420265566027275235606828797896830712460023174059770726224924950042037725315645615967653058931887686253581197058624827133030838470709054412866413876339614376966999712942985541093960821067109802761062059493577441933686254141448046792539028719733887573582371444700000996539698267374035192239446827152950843457721969495893285039564090777365607135879931153377687437316138111795391584602027270680678265211073674289750386925410641954447807501943814162330198556628668287173263931641106993876510563648500912641767260504733814732509238498740514749391133073891346368503636715360685909627981017034320770757257568061849182583310271874728753082661556083832622401604686321615195451507074256065618836641533668873447571165069240871206622415076263110843969453392576344410882245823579356048992907122308915274266656502763293079546336990163019525954257043283337831669750753424589760612974443554963676463043045965741536953197913640581981490017813469758402120240340032544096360880641020846499937664400760264394379090937138939300096260360667596792464802123868182174178342220945983377101612472321724862228044387600982153010537556974705712085793472913835290856757510620528154499555352108046777104336262584885629874374498588402015643362504351283563332509666571486628107372470841751263742083331714851478331935435676816008264870561925229702495933302198768087580654846858951066687669755693638740530436988802266354856825093545194798683688051603640842140116947327511298900992648386881142080835716853323217966075896256604110814071115959570863129259089567539386666053891940399023412387862362061153787395591271843935905755327209404659454133373011461984588980226491869713304486761860125288767102171437128811392999582440858515825488974755769313827393439558871752429090034389553507829071184255986093483773037716636211724679014485850821160608345549690519739359490447513575614177997469344691606140994441524498937411790187456759629964112228175445720115322019403220246174889152569185572954662735976190281494774287796146781447372064445666225214197035547249425142320095590881243477388161293668506963779220217364350073499082412558670985029992955120720969683224070269941865192282981206851624115113788871140970813681359876337996612338136979342880453195637865767740673370876128630155043020063666872982545789674922753050973098157600464802642807542990674201464271231358837205780035563323656592002795752696193516054614370280844309935872826280729177755967952277211130033839563766985895696053513345097643166257328361652752569442813010488986779598956326527767104866302729751268882654409676851727686436409989314447499659041216894359659894129321503970353301613938385767648805582512806620658797130668091968919936755747951776071410146835162276494147988198825118644270693832342811703856262261110211033508762615450230933138801969753077251220190341950805672156646597113747242492240843493847806893190132540054609809554784886199783183883123459979705375197176604235616420014994227799618841984726014482033295483845535701854596250263054053131075368336263199652814800238999891322971586141780921324287731322263097055435446963342421704768001831966005973457458127221764181068571020400985974140842580664361413681633988178730081997090876634080378442663212656493571092743357157240300741616583129315379543430776864567294107070194456943654448352363259656972055463984936226674882406256532830779186768067539100427533199970817146190313702885833644532223251220861345637830912804362036784210739454537965838260937189147856591768640408884342077249300165354931365683473682940710746517015058306065757371508709746298101869414870095542599438213497846298883293999498575996154507661852449898431014004920945578792104795725858846701581852739211965398453905475291284588619314518682281140250389857025376315963062835991929484091477416822299900221752497728455060162110963110109784011693172727159656491641225526564401518144273264215508366147124518445158176219072539104826225600069805894078950946195082396308581679285280175856896577766932243423307210168736238136608060123564218648652290538971349615092746205729729123059320550070461986309869955420307655615412148130107712520440681691998441218358065373671056812514951626438404466738184595622264423794157320136956758023584346324938514455444611282755498787537199205541412306947447332125780344682141199743313245176296154302381668538685467863609029090409807620823109460150682903145406655862926301602716161974075036478840874663499245279529976868898192860875872788381607075160113774104537237563227276521085960334294091289032677481806413491903529489686374201183114218912738019277562649477674433520134958178430170150006922184508458424573840958795457605963301635353273685965601420416361049386542725059878353803988849637430756189096552774726425412120653170367939638037055907060353495974288906938445412553467989619211781762006375083264509313742623912282343087912685957891249120570994442451083426402854417661349979945921522504900161535191679452649841389036506225615513989230167320867768858829842376342804652390980377441739224350490686816282416267407756433634661764862520603567418898239664520062399328445852803467830348192699123239087813969803400218208821353338474610619145448006182266462691560867899260050534802826721811313887284310364210632286551230080690896154969367278623365290480781014672207109218938964342265116378622607874937899155642970142121824484808005409259950876375073378770974799415458587732784417026053072301963594704204911997747231716614194921587859186703482303897775441475542336397138565106843362700805409803315784194373328713776866686090449315035323916641308688896505563774990987939833141578931132610124983498194693731563308057750256539407508584675157203304235670151668527743652871499661476156285480007958568715125078474166121883359977958246452582943026411027689950691428247917934451111286868785167602980006698951518851058493894921200678897850763353992654837939521914684520018433452179259747929105070337465640568737159092931048499330777476590596885491328778881140946277301193674769707346465679246388261345805963689673627476402881118541231411617162001677358870200589886344577686658391395065193245992025527185551756208979670161711916874101507522740403080354139614126304229207446291580753456127711948181118615065860501656310290185584684316868261035629964674905835979267937862518664339564684370768274712934259786638676337066681393242350915020689831141170424863577415742167096524222118998063036295111502679492047440638344035893018610155278337678262477220827769415841134016763417939580928098438992798033502884364807884990120810555421676513008681006341124889880550538110523706132249876804640344395429495306679661862339470928740330943327034105106272053991185790392358456649396815183419652568012504512536050100713204020864134351302744645960526975273558148291497281618081991409582796625760502370608493834354563593877870520650526774877702565324242254262995325329963974955540117881798068995982814503645192738592142615541417971690936050241120287869781025163303099976164351095615645520902184539325615065249894727017052888355799765333811263500796478166433160740493262056242398727968816139643400742449787817615270990416264851211303418105202577759299401150365609658749490930030091989282950980036327243563513787594822698714056504288710104028488680395025238844709794852621604497974929302272464287829562906717469096659551920684479519246307214364336354943308851407016057321446425586373552566745727595557773503720249355553153809306291309106707674831354134457566687810081460025697155914293236535207399974960028692119328465878210729858603019252494597944168305461880490824688443351839596372998135690968132519340515948623361501908814767224902541211562403461348776143393572816142469490705588173548442278616730723391412019731825035435153586401503855350698765090073643885782035738348055266106025159540733580247329662391025698130385369277956778663144709067018657005667786347129224491656383578074085842583624707835963008679778241253773721631390676471299274924384220278537921348255145566355186410581135923086120747290107252586882832792033129840743818568591890887054084803788904294518247529684020127635583411775552652489603399654480851630718383968303595653171383708229773332087949381475907667683385728976547898436880122631058567348275839814456282346620991548174480743921250466202302293273020492554721707938859285383190395968669384139800233766594223132880324960869236367701723060194459044825046336902217892832425943933913986630682704789632331465643334414999871625903268635099892752322329657544746506386590517798464037097332937767486116326156279883545927252761967349895111922109477494346082624851826064620006619828559793951074096378667430314748282048149001194415301557631818606842860826950582419344847503344851714883441704882605627859986044831944946054347173762210872176022540534754586157272657094061709333892158911292809559087581367152440886139720220112351227593621103621388106564152138405108420567791837847693605703357850608744759354541572550132620842775204632331978611711541019966380610793881050188558672414372229316936966413830114098361346498325257272417568651297238182203988203189339820636402616657986862293829065410812261605474979488219608528600182625558581274238626367796822984693418195093697226512841768076588829512003450376136806551788443565860079030147021903279485289586964665390262081937273453791844980670688598418990492006286020288858480152654602320555437013008139894468051444780164018660284517427263418585658486408417688098464252610885227962977985869743877597288046486054225100519381291462288292608190158282034745860166692657166788492644676960931058256581859125929469764418337670220331886340072021176767568399023326713572364155223477546490363436997048427681855233671595500529144885342784823690239235471858186274608043652259290424078888880281632675396321803884183085996673418563352699845616548757762762073685411455711642704701995409639464075837326390763148313798166943312131854784932101832751228913362050196472088744996402719771714541176640235453866908192219982416488946345516088188759384557985210842845969633635393069273629627435832629148118123414962873996617423258453892937277473437220840393968828481584883857589392443550502396946766478319135446695414833605073738337049902134089901860639047474289591198189748057096760115747956785046915542184786540710622051502097911765032360998370731456349427211712103047726878287283517761139444188509625879368608920044630791212031343838837899904875347219132958852326579033714603494072583354968576301667422029080549335087372131155936397730634438414220703435402722092214304359695027097750555524741040197329230013785016766369494774366394959103379262969752447205776929479303548402732702373908363476544181961032191821646042139081058713764601349251543599879634352209179400904448643114612094747238446541699782685455300587480345866085647397694409879433027378807734651236872623155347883000860641141926201737910526148520491183662097466769644871541003328878634506397990918707101880505758272286053185430301147933873599877520510062378368386790462603028180159435155582564637547051731417637160227134232171215908330106415936766167125204895566397147667833834868957221578649834247577912384309379472395495244269916852848520250758087007435954518246456957018897907183584064115181112411436666105256716800065306565257250744353291880301497387212383273821718366204347580715816621127479293655514801309851045400558239479300710355938451506873030034960214613503269688662702543982295206905647312922295825002814158459047272854205410967643025337988773364574834291588283253895784193943607550191421270446576472410173941738553863828268491328739406691239639811436456633653284690200268984037336409063489120001436497093952054076785312405441518130578697578461186052620512726673545652382293464653763002850257421268163011701293073721332569283549454587783853165521796053392879796336546307554199915505723730374467274022233109193033242879882933127668512482292061463563009427952124361305557801709387787297961068032516994135538998504642214712035302192961733612756526224100369231710758960184457766836646852886639050393532229736521471560033125574805909064043123998357331997544490725036878682966824034746887773822477385879823360707477146329800154985185131684595226863532179826481618616783793581409834176005771823224199678802864091530934211632262399244447774754003561715762023324012479504169757368363542457211772651540097037646468059648319196536437471636276850661212324307555047814237861916887813625370007898853506500679753228722772471506120197422986142970870087015826071033650469712016876997194443066125260949226717324733500860902900719634658739242357341024782526875016217191773210365810176301443113831355561541413471228374626694744115099501216325247690253512917389999443358690117934012069415679413229928929626077253796301510786002702480416378832574802136715685367567788386879125515716443862205594100782222230255284070543255734021867533908057698268062708764680082100789778079762907363103305963910986001023984370979298151184430086756459175265013760785573723436256893440277731645445174007965470757494971819420591480539278029020947667904778632287029541195721915262455909637088388254028808813060904963584902290014837804066373578251869145118670537033671484821452968573449242654025275506781889845727597148201230134869891733089498750085285055583414932727562502314689415525943006622336252416326949617299070357086843400265860433273302859443758906045147231558149198265944618478710768105276444934929889022787359819524867996197220381903951811802412547597777980621894404500680627877223013344723584523170743403810131528244044443536861316531074712416131240772704163521115232118413456727743780353094582367875900098823214161711268887393820019592478729279377720271084621755445455382033065114301997340391505037466411288676570957441809623194669675242896577955598147721991328634482270534195317382356136114629336227733045797356537621586934085593387696745289958137905950399854628823608079427266256891377382747258267381843082140837201235568168700356042179870566509451043833971833099115528636708040521991921346618423372133860770302299891866302859734989344871057684254223140162376851120163291650884515695909462784298742111959923551698082334533737299574720974744376478531535944242981064561348753523662365932560934770076735302735292850198175928497997589089834992913133888277261079806291006583263070063792549320877681386151775351109399118992094083676331281509805138332083194062566749426006966026743404740131793482645208752768723625881174401205939562254174422123243684253995867533818760909527073456570002945285012771325256825457348451649836360195915221197399997002661356881828426555768799858235712388663946848193231869344758926814889550363768344638893396137283101666156457153381662925851099149822167308950450134424799076704357291564196134061357935152301694711048475124518620138944759433640717506391602247489868633872178211122155507066526502803654982086200571602803122760076893157109142629281608536208227449674274012803954873077739773664993375666609954240788520032805164734156917777366150750481476975474841006612981185836862301505117578082603679109861869665733317909054534016926332794086558427037005508543660794361285761616826443760380090193608279959683812167372212254656476337764521895192009134795518440759773358014113856919061728259914855506807559823345190349522025186211515963975499149428370945552633415310595338935991163049227788170404542520655750106554135742022963873213389644783354907953967259068304930729956377343067996702053411197386772762184506902225825568752460954046645141675016079859568105521539301386439998050755546437764309463526245712058822008483776058659959826014217574746265010866122833750130397183783530528648487401792427788409986961913125821600670889636592278877502174553804255536562323680210845674994477957224911451063319261826515230287636339833323300704212362100232441062510372877607007890588561205058812808673417264150186189429162419699577205839411924398994127991196156803348951785968592422963374257493302491054923477453113773952555799236771800169672457833126187007745308610301782639593803945185328357886430777764877963778396210513092081088444976444703027253458656228656142317063124270649727704997838060127576185701840163451552656242378560611969181129558727469082361852428619042400097831534627224095445677319559866374468502238839434317762674550474440880583651612480159926626705125362831442490771023881893008587295814484649426732578803769594225800182770032970002247000934732533868934875045067243568409792131780599372412489548629128990843681822314683359588779823864467000091459096955925569336486940529791511424962831370914216620835833794677005130093941454259509022499727239897944791969065332935777162498443695051293629871984835631771899219933226952145068358966840500326913276358089672993643669037026347866126189760357241344533764989098292041455482963220732128400431806362775486759540298869223616268219466064717355501317524092320611002695773909173327866323149641422561129473905047152032721008493003944205526652114893577184343196289575134075577501990320503987812089675872679140383836513330559451067834157173195882788168743607448558916865616452688356011468745058747966251961086097087685720108964637411336769954343985923456605983070404929923827020995728730589254374559496478988104397061951803197959130734792857977237826491457644911885208493695114799454139656431813369612039064279797536520544281804665623442859167773060173165952228275568967611916747244240130642559231561303167821601130494193287530051218676479475511604594125185842241368050600226917476519143891796695945240110028867260954694853267900576983208642690259247066095798973739884438514288752297114025949314595108428421624310548459691203792514488257732164392489856045313132398472921882154168523762870363762237965642426586869997744848691722488670105949153858784841065517411161608914428043158747649583724339991477431085855493533958049088454039041384940673250586753966610419401118700364145900318234176382185305322282506985310489923668255808646025894201075335420927356890092010898642096563188132882659708807546552577467834608313528746398977715264878745467372271946074931610976951062732918989683729139329675685160133908907966346227822623407160482726338159053983563566901379920074341612420312574077505655200569818274201941924151039518499278731625018751435958799607133534996650415449224348406204312584966152521152140207900083816708127791113365407798346297044138712094808449202834018996532564600002196864746379956212540173902798455819548449868494534807417717651421776920458895526016807897974467875073310993550141140293896190628816946948337516702022178428583526564199470908757638431418571149394799335274125688677373898767404376790957491860031031160336924948024907080163945496493161169063150973817795963990582055510036451610598097399257976338293588243100625296170358651082238257441938564292704175580455306793961371089065992298188436817993285551658987242370413491868807757475200698088890946477177270464801235923813536671999744952131719144207788798333179228357286868584110641226957720580946783057982414724930553728149654447238973716483756180798408192563159915984887470384698201772931955721852114820640415306461221119674629022642668422505124875746648943216092929896541497936409847569717608822690200373508086490982901094139572240522505545046204379811212042881500940558996081789327243658465360801735182353967295993105353230438755865319571919495760506110073512471007864157402851438548778576107261690588951608866765895672462535594703078205188100260243107369097962658732029469242637155970984699255412352899164876998319151681174860111157280865255402159109038409034840827787473608417625843476147648683726822226939928550481157336684291337498007059970964196445773814411051033283143549238437558875237278603791468624711721974864405377294047371701411473377613688772551823146486308213618271847783749122505121959601168143451059855056536384024271438808208114555939836001018756912308396685488439267383654004259740608871678072729547974017635818156090843894516558533605038454161139207081337685297394121365695401553201340914299826183707612882038603154798797413137580845228404464882346818493168796198426289324200331380328891002117056504363216651064173830598075544841670532041779116375316803575919158003640844629115584107710954923509558563517930287086510265810469399088097273444356793758546839324354152062937076883304175137385324487782924462553567977593250510057712796020533577877247095150120804864194758019861753141051438035258934588383493774266373794767824761021693396684289217917438692574152363139991013210454176450938735136681203103523313524725274712838612791037938662039564657030531716597134284491809444272611809267561591526448912888609791517098395166623774619164027768870159131881038630397100065609308725548997780535464220557081984161766109511427452974716677455558261048371362807762917302217733147383092906841615620242378895904856776735207058696105390151377665409170332743875648105332638653185298941075340875864811012887219375288853523092831390643293828188832130936257164568570927838642497262938012902800669273204301762199591102378724268004604110623575616044289379258829909743073315234875427993711434317926881568442178188612110537933703474694534463939333216627663024420328392754152997370648916862681497241238864449641477190930323114851042705869778266722342143127678155911947607117224235342690808150403768688143924417320189080749063754245645240393350655760910965096983492338248739913474780298376913044720938258191878281527061438164833619110380652788408452485364627410675686718506440028216130071487087903847516279582581331430107068128465582800839094487373853895206118831886084400780910924640263052454619737015432524607850930169900142457039034877721091892313359272293234103496453897171022712673436697455927523699121747281403749226285347146181265353010324488047294280531022218869478070623803962832155083530492430501179775663528159307775842677477945364624709243765053233944509776938819527077470322075424744293670253738414634089960672577613482561726409397220435197336934128288804790854206832984058718089214137541087039582699195374695559443682864357612072241070910129469296493244225098312191167388041827945386375443585347057422339520015522452297706498467524485886150748919900539187139508938809549648658530329267843519802749993984925181580243913915181108402977974650671773650145561074898742743912839779053065816481873184017617237526296426563610770621110250324625133902380140124660702660702442370561552034643132928596166379577867413602819412147056022434983930769787994387308313406950211142998058305658619528767702481978090069544048345075028019241087651073774861941181184406322798423521320775929349612437564635906882273710828434124682917750474824408012637358744121626326881295530433947566942178588163373826715348122929266877259768883479408817954132507047974572882072090042767434897113539182759517024146805341883546213314687422531694368996660688194682762395948363086849162366615096199105899424626178331863642307311452390434894383073091655238458331395602389069760110123517189728038670805667870674358727929588881479482145969476239418682238307205230088055271640059026784116983504419516404119095603031384854724687468617045346350715023371173136292148949048962770739252777382396726632799417012802731697275494876232428736130000043250635761129876075479677414087072467329282466747789215545019594362661997203556553146050018530718748413624052001898089812305722174757692906462199171624300165789858065978629725174648468042039826625878629299756240270646026021421530234190672722570379243658295850847608358781414892091035046220322357000553235276974157763185686802487629521209968832554348452368015077732012181784538735814041517189896349959221591345035214915825839823417223075126373094136556595384397945946295090569996976099673505915774634529755140404676187967129888588869579462432969330065253885625554458610447093649909516585645320915054217572802240915345444460996125842884893568630808186281204556707916998473513890725449475038261290342072492819094130553030509133400014864502317334844401107987834049022611088015443460271584140284556466749224960596863155341252569477588433465224928786303237269063591767782501435885101857359250366637519930614559765148327051604056616381952094531462771443102194055471865535680622157725572761503911892074850155742380263799446286413561339350681474240617107678164361296686724376123248774790763482007182067782201224433664292687927281323180246579702847742150619348877740276124455823783462015514072128828531407086921466980141599982723662921051905376043626072855434427122489663207272946136526066166000515260307766074595053758976307735253752887108318868142574649992854123131330314486469721672268834645212757085676047375700850162600863934537483073287075234071449531791438047289424939313362602254885836178922797656068884373785792930699570842024493498407251023698975924398719388297569928939451674819142389823282843774657924589895356669063486384738604221130644388124560069126095081353122458336763982890212052261734892929950009671790453664690902873939056038605504832572967941562468607123872957641196595654472845321095838555299312620536337699970510078650037822602488591256148450375521281241057263487804191494405027456722807130853982041391440242353661574356626285779558682923321561870924200658254715102424552496234113353829892993474203702025020269558982539543784128815847129175737702279426142046820297698923528819926679909490617268158516125487594748317715088552418822098919419225916044021968416591075398968293015087950687813236706321601917039947661557519419050105735766378335216528714744498430814255058505343686242868976621734283733537376116948094306916619765550266656750842585106286385989378659220737049936507645531982498052921218363699957897943990855557074607325253563026650132414450124013164169715202678355978847411203681017931666945840888767941979277166364688485500605224011991910490977810834625600582838554731740894159050356711337293303797570768881235707342894365581007269301517394511693250866550523579089749146301563560645372539708875282171099521770620288086546177131448098176349984031324430106053812591195622933849501024418049512427939340834302285891194799314914608403209573983652715570296168672659670754302873325663924382309840879452702984604197453781695645928810491664224982659192144865076950418959601457687888172792147793656742969101434200847969712825531528261155804401301325530487924766611693226026866354249171775779187420994448620386736017954156661769306903871079289990646507674681545676873387743445597860525573847224064963149944006622429478399407784102824044055679468032510638936931895261380307710182781970246240689259761131967901890616661194162644832422404598686716005141041533922640732777724638673547607219818343791010352234004194226485319986244015707289312046543587026722608205380285394204629398943357749916495035042304217385161543820142196879930386427690722910842901863874964194368221043979847018250611163577110528638028738595242928445612132724256759751121006395286926547629484839360325465261330015111929520369657109426246889871235785208721438387292484950388416336796080053455289094919704933386372309688046455018515079090717360304155918808430560915983478450869606256583305004509189726208140380810979460106261613123774915925857686956724218040085783218083301593141679155147268099804753720945761581464768518046539523679033678409306781092476571075768095247591815716155826185186118450905112136776207433329044203873921027578439542229567567639267666912376290180243712879274837955109482882567849005481470635321337041145261250529286657356213385540834176633882959953549063010776967117528492382411910445921351640772236970727455831780858448811834103997321953418579798457462351162297111202869416397822461118169907966985373021140403071602313984350501548142637728217315035317816053338055421136395823028929205397021293282721157891589270435434108854457119510047280865658084119384600351174446076591269908067574071445894670821417496332544999104607546532541338878848575791835219576476344689588752899557916793952378586253930967765229476922800545519189961527099106838732778894059762868622497737903507650069087023557115174798675918936382564673624065026995156731295855188880276336999615511877704527423473047873532793860977855684206309684369404252886681619414246889852485606905762958040496977862740982846509254126408077563946921004118376026081608454167081407568508271928599457973682322648161554804513554481185298131816965148655631789179085051310009514655651576288225888775937352034773588834111061697603282241921025879578449810605467514327527679837860185349644631664990902194832920659673501938600222005099434782327442805816168582250605717506345671743405110555320283589348616023534377970913337078215080000131623316440611328543225203075205545277817584977890018642130429697590319996748810733268173948886247878935732767330809416957367212881769411516108409333029704818409160759772210571714395895670807468538254137023816633015645251295495936558143932831415143863406957888238472907172755663938687561842752733859171925712866844025355753277456016524489288952647856401831006912373852572314514325018305261792202741700924880214646486285405898792061811040821901979171937710295066783661831730670423839076284004685634771496300064666919354209249718470806983571919470785461833075385649696457865443218744560073044998929106070292583798350689974443708877787267850136306436104266508043300402380175752245699364666877554456186871647639069532983326442057451783353967157616034608778070505424865140491378816430540802902582574299686921395351011679866026402677828755832295905547955773242932040241584888984743342445939803160797153866133861098214527573592823041264984638458751506922153113752766445523303464077580778703652782548273765427371349536595743558455900972504246488068629703229808676040555976126884886692689402149620838931529021015683022038839498673281564097547366961616944355436890723974906552653486387630696290931968711524794694504685599884804145708488808377830760367589882590089381906895819858913072031036402800657977461273742466775312264532880696275182775927093004979087605621605577004873738523126966314475848455123658325296093679158385919901914937432688130057479964077590370047210686406608390223914603931098826413087537128725966142891482101631300584875666720061247381673536979880890524385025030950429386138403620989590862275471785522575780493683279296597684656273126380050639383952632771112070862058339776827421341699917699559324741435059982102178181824127681444313606248166470930031836586354510675534545740463432366477769449466738822305987775126573380600428532237489676310479738624255005143819187155677439453559940843627494249877801261383449567522532132957353642267757971696167338020355795685923167268920440782873818023530287058269421269365931305613739596118639861251822038385639422885025350640599971039451546136522088912434901673023738146862333959408599404220138827134495214768805102183835204184346475748937658907399268300362399312304586310194529528365470309269720796136521980405836249012876427972919979377355173373293815133556671827014444552219609471921351017229000018063469936887798935542578517367894296352017507344009382285060393736834016284159177706300508563918785202626491870700103823344013648968226814296741638624828173406551382045862591986210938621842546149547137901705743877717272839165745413665932224137504781968680662049985872883478445914463287634798913495060590365231981696204753093622244860373173160914022506351243141531232036170936004918005881177544192626139315508941963698834615242745699088419990268274828279279266647115562275830200264937201352826052180630539679577042789712260639681764987507023019453987263694414904186014317390205482867942163277023154520880684216389139033230985193008989037216218214317162365773584760460354735006616756466092707274324392147585855808884112781233023844771058992815172796754775588816888766386406447040786064742081385009057339308910400823677962145914313293787826781702507283570416348181909053948683051302724134785821680460892403213753431211788779916761378824815421180956331248092280720318173766089623795685728959913929621620745636159500834640637356123501399893730191146795237845934638821046294624935599650380315430311392513500150163143263311800315923125661978872906595689087002357768427063969742443360477649319212474765481222132456573785239514439655164085836995791708079951343216221297807995471625936315008774514605027227913721379765263626585468233060753954953628176644447151928679278919443428755762666855508706362757981609817542504100404853381336969846792927324392841272816211600770851864169036558642337549377325615170079386870473785384639937636491817244657003913551025840397590493401831957943018935895017349621289461750791655816677521471089372284532616720228907031408344965352419870918533323058518598511456648328674504216489058104591062264605347020331769772745178749093876740953008764378915812301803374080105116822971116999585737453565824235498218392201041957651448369463250132230835611561339091138509448819451246809638902929862722302655443435209631922573848711599199455529978415582606700269476962631369306376866929082878859448652893524968013341071306697359442000369494586733638860467775305580537464303188624351602361259501691434482315900726067549967561929024789504536845701201012097042149707342595189797067653212106167229510228867484045119042119662451529187941056971130327930636947549721309210093245000127007086919848115804500009845182126213132787389510432205294255195777543756523448337688315622719027763238714005233221417625144194215714990046004051600572734201108589905464634394402869439210208851811538845209142204871831842507187641397611773036101467447069352422728176245912002369682293335882645133681602461748332944994072492566392355929036608073061704975268563145207661383179064903909225899126530373447059015363552348957972136608832940478229879994731108408650803448741426162540476644793855188790239225985528566183629246976459556781827935220490291675894810042649572562935878459732536140744713871777167945067370749374699718821135685470294870685135268114838226022294042218909413753900373143048220482408648807438428662749969399011489461397370437741005056188605630427618648110636322282486611945136066823614419436737879395649076659435118701576713715570088496037866456971821755208758172530502549668627319778868275256445088205544059398059858632814186646223466469556926405827141744014740683354345018757814007720331063513807526642647203902529161219640479670210115806557522123537796193927421375832127621936594673114098542608169571337210054408317310862408881313780087200341339111960523315470225268230289814892036575414195615301236730224351621329686975253212699110773614913493398242580019788315742769998461301796298262266718903839220509645689666358678978760824059497688248376364348364217214742161740184519973709878575740067418199470965756714945465346246011132408601100309034782007420908572658716001543464502689676890507577289637300165040760418676891007081095139702371166684701781559901728217588939277089976886577847294259716152507037653136972753477984267584928994342528804749842255015901774377503151242453712842485228192020286877410845795272306946419632911957671927682148390252829339298703930312980769351250454006616747592878949437414123806380064761443271242792161902958441847459203984892502024856391894298118201638204641648187307066768216485149437253764957169297366566959772238422487172630567309000142796343476651033132380992402365691403081970626544029089875773259231606885248650850979147238483097524826711848891814742361313022175255988559119216309125488651922828528583103536539436072899376637427542017968772830337015089387671339945153546598178472647119707450261452828773542777429604270615056513371679542499105341668965112878830649293927551652660530925048765110460753472279251360899780888595779160092441792428075740333721461518856959273190584990472409195088323381999462340395912338540245269906270270982045510151860094944560492243247162083827995882059005262125155685285044025693809344274256418265238061312859583711897312241289108113918065601812530899586981350774353088053711177938047469494859606437276027517330805057630867497465676118469311922526922649876972728856778713442364390354892723957727953463922461544756809631996875367234360995127791167513500648537934958283146488547361695049420124980583208400880441531617769900791548452000532692408291513360050918825776265525733608971826053588256017607209371105852051701360683702392031598217819214522395738366408912071128153810528424483533322633493749531409091582365025077369092689797200957177727529097774131926504725507857324533338349967000737942126043794835602131855645561115350670665515610156618460164163849044772232909727827496872896879765644544217207862778065268070780239332992795794039217536175127014788524172221461036473299345280226487747978175422851280995996761149267864596647803589055369986857651017156109978626512655789831950381005274998702186772868081452572757169987216256547780051002141242935166894898623732829477912029433826054437910696823570822811165427692306161825985934365926817247420595822771564396892152262296334242341040221605922828324945891322760720949553337228914661766781833550707623775803532528533234260154183668477287156910147727101633201398558206440106714973970209231562515409269849547838429842837713772589657653889311660802499941349387516770019171584043237762237910115397346880077904649040024863435443121375308421912504261551624293140377388963735940672166079973309960818368276613564907663594975470922122219849219537136161010178101786301681784020838892834561221547711187552808350966264588898093366690188024336918152407536564289145121248364516389692879713221209243971771030986287024556153290083705435286920856793701377833993756816427728490734095557473685572597582489465903338061913799023577002717399268246978864192917011312565388566395011501160394577662020213254051119287088980312350365672644582652705560574270265999266531513605794330621840132847920238962385591322308319140979593416484849421511025375253672986728077799718353615643723402808755486106815041050149215625234742233035744988375453735212911766197002031021908039265137308967471548154004027516307093354210846890596898524932465453229781641498366624064547377767771952107953031780161702351129857934572918479685581073507589623506577790281392531032374988787585340383427944671609126531357862881896184767791253069884637438820545269770113845573709923671321464170065899704250364724240072851692859863712357876015253618908383616891416645451933586721223734171657229093382144560727928416277004135272960416008524608364112156989764741258621804703975344514345440108641724355857725759860318598679037773875414074142256605679077451634854301648386295182639727865978303497120274222178076125446508407070755228857905079935363571975095468860527253234605890062766471716788930084692031356658434383911564277955897856490707885010852660284085394385581162172221535876898299155962758421915914855001073595946555064898239177377351565785820340908094257204929510743857979675411004188547470633176650189509155581763505458964366430603365492126295236952080293255219900226549527357123415960781101601046930918840983977573537524553579588777442154895853585186837479559501188417305541655869455072325544255906100523743236592571394359246647906990874032653056213237654215619747905582565789053787671261854838918804238326793902972870249564330707244615254838734520469205772729141590990304023366831586290768319822541722373645048195939487404033745280632193535574146251053774710942856410975504140760296645774389665588625410972194847508521813827357008169201424337369161302111518841360423108636391899478600490779799474383325830859937051892850603726666144276215475458023502530059605254421845968640650786048598135631417768698103971222118132634958882492642929108205080781042610595987606843554340707610248745078118836552468535324696008486012924792075306020471813647774618524189824435212470814973169911183836328960368798404064099862014195228468920862581157932135475578386819794000509460164691932378637500255707890546089690768453359608067140379485420370207342999325236626978620811470894074292945742735035936313043143838005073188391133569491842480944545793350797169479992049063202028355076536112500081683680550975021962195811680844202700584864282565334709336606804317414802073550849527714100402510741841437869632377818224223079442991659845411976542135086193576269464810784176321679585738919586690694529626126104764747207333592735437715219226757205118752155265422556649386623297055563430861220106378406771851444902853032605353674599476842340437154405374765720323062441458561562946916844051102012146357689258269769614633355145835540230295531129650577617151332129931421807511845053149444559152919488070834617573746728353205577113917151013504463174730252095991890920363462994518837501530874869788680357895580729059773688978406104885778724034893614188763816641729640844050893164592994468396798883901528133451069280565365139066935968614677388144281679155332492347190380275275606453688922208053165696136016949297680530286403764195569540106271030501177198581890551338403653528274281858199417330623792006204523124379781651242430163918393672145684957238322262419293988313079392866127848602094300862428557714185514005815610017514698656439866697058516545074061730120872732333447267049986622095622406214698017234681945323495935431585742544262695461844065365118572294734909685013496595139072402482013783664607412859248106543508327009920046302000040429145212568868608974660796701018449843033592668478474334048398999031429641802354363132076406979304303249295724581706453397988147069122674372166215630581165702776922972717579301040325777824962767752079722567927854117581808616430790884964646279747685068565897634831794074559032923687123752122376830902058033683946681578630465360848547671804832368610812573748867427569155942842993107660859595999114955598984841508205573518288822764917288720428513560377123249273176125986173318145385027155107740842718622406452956085641845882338915755290489888955457176154620213051587279307208874825595110825502770499609475371178863479058967810089243041039438681257698308211336831435926543640714558380850577127572975184379583914374448668023737031558728335296556028627681855334838498556881617813597442311015787285317937072877316142018681430231778542890646021703910744976682514695665122701657517989876555100078173708594489317876120318008044622001129323967158124084061710669731798368140176882087772613355771119332921039937554230712372088262348105308689080559191660122793783155166025186483694231872165039658910273957270238323689087951119219721686353907086082527872589791941487615808128044926058416404357909314922213019312855287006151443034994647221110740447929606333954633623983341848898117455541591610416452508907965462839590472746606058874468508215393513646524683374149201079557247330413434161670309247689097059630366709650847583301411197948858994362384575351723918151623356283314916857250744827340517181944763029457647795430036350055497547126568744131108877625631445161088297584830871160484802512575761885837663934731788020025782849041555792636442459224746389823632575199389728106104123298997247326387683331222545671141181001686158913905030814180726781456428440784656764935774834785201756811007642010097752097751839562412328756489140258779864349407985734640908674750720600469297284659651919740904708213100860892729877318230805631127000111256938548203358808623219620188476286892858338181964487563347381529478383930688049356848476754346716124107229951687831377294434376084747387446480716368663731068423753736635180888873924180938608673615450898283321478757250994971190319346929434818965334216969593308336355525833532729579154059370279002484582371657302761615275209956455302499947575373707738574657078405159872511720476420597351085394504228208872339121612989380819109879340734263521850131635461620414613314497763758525851085398133035680192583867825047853771524628803305699758431307565533768090026345899333512468767621073429745291343482836986623272881129546223826847649900556148609705734121048851368483223583925252014190912105643377842045350363697953126136091483391649337572768730612347273738159254365553942899464650235418433611912153926360407537721767398675516891760691187116587514258103380028490700109171133184865062831761829769483639685416865869574215138138494182608102923208215234838514534813397044127855650425346973272149595339393649916920403502485343609186074310625660155376249788604502117920479210556796769780125625142344479990561063573404437833405041728513402122774155455312721586105837562795893786540773085096973404566011774439235917471140813014058424593727511189471966581234427659501576248460218617000707606804968342286570374637634852668124015039618787323509616417333433868947297705456504279240755174552088015263449514828707981646003497792377247698204866472801453728095383610662136841608512432566653074255429747450600366852088081780502910696147475300501240919393913858887937202785924885880240361865039508611432823341261307266214717309891625614784006779338577023208283438512699533796458400587684339204559463250361093772753392962065149856565719149556847911151952377552457715618927481108794965342102114393318503894094210027198187168919843036579026877526689883058990005814688527387254323303086196121997586874616605924240663660035564028427971458495261460354473581538205663395505769585947555317325199577960880614478382249818298296204703902435306290729013640573795713504954799557405634085390040960712707321310751596505042623210094203033612143214012649827485865662855248981172950601140739177392567631736822178660685847254893620658763422934680633135233705583577390440376817206948964089981191452280625332155649413391864598625314130818503555250148213116643855207981381673521047595130816823716874737978887630758677206015156241629291103142607384527703115135173295922814552925895795875486815675839258510152165642590999687586530938536590021627096224104781049494723328984400234168909913244483811630166140819599438578750901511626204833567735327625351776546144566734638378227930117576123308004849711237490942030968067682599963703128179931226142646476139567934633855836622035132852909792432418901700731232930824122245743720407279066447850125654237362297866524650872344422742646327446260111070266598671572590607646969372325637428937907360705339241501991906242257199131334878881068916951671038593035363263328253794215949706468806732229185028194164662232903265377938883288290313031897632412137923189191971785926479534269768555842940279730976372837893712936138327623418904485523000862849175864249090446309677940519230673308197129304116152096107738575817124593150772220246183963094892818803851754694092660072516457066036786406874247860905590595626084679754127015009373709628479113827062872642555854245951485272556946024118157279125897695320695973484259802849166527643917704221027427739128446817652949748867830748566636113265740227493057074199537544752040195842308662635975119662114343369998254179884836726409358148801868323726339408926168566942302857755202911993661689652602137811752863648104930907168063110526295686447648217537317054340075566600038899000570573855717264736804423102694344714983195747568820847576267553595965546533978152512873491235424713413380843688860427920210555955870494507188301037183975613767641498538772078275199291545551130031694073256816921009409572638874501538761061786027502786191019578022923635048674365431832747270254410051674201787849279818866622956975825865726441872335123879427570919757075783952435114287563240117005812500108157681395078702736254547372825937480238268045361764058721989385338844373014363773340046064956929183761039162411867092164893387636360393743761967589723543581107933740824825937032950061767605209924181074044144888072629541014119595713733702684998308209183831788142501960873654786198700010044654194856868425408386760421469225171949068102120522217329227046547940953319613885977487024975842247763782033421071881472029461041032984312328154122484832149532050475856937569832129907746877354343613470371598348172493815419676350542133193768512123246018917945614555850089070336096741650718846257508272880099563326673943938198442700801078242256508982931032288560049779501890371958610531603920589048416998123603073104045501022928472179685330451868881280726669481987385481996645540099519779381561004145609314829128052335270302425313247571777156124264030188164717031601799916073622634459939690952323274501940928452959294350605321434046268926569689037233606551785150611406278433684579124853566626972774333256632344960291313281477809813663609902354979987108443706335990057381595883075884972351981930595149862312259673129718291853020286274097184173314500513646399484604068447978887068356264498261563975116783450728592727206779835878638012782049480976118186281742350962638962768848538099613143797472581509531797380938061521197025093841081241094163553867676900718237367961159776686407842794285583084754300124032493937356337359285760274721855198097950540942523138416646120827789603614634270712170247134414784233544837074392747106067910830563130208580535521668168029741599949370010813957349835518257310897313588272072760515919829130987378750838277190232540116150564368428668708334847561695220641930794875389389298812545034150104713711493844930972185608008667114086902297828279318004849602069526750820179616252051337240946289022879203595134810439820212135885829027962211872459094528395273924528029454109862725486747063339287927268884388498815896665984503750684503210343682503553844958076883724839892174591819533275795701545480746492293248764344605684617498122525951474778900369307026142974261074064915985405158910374874827815509824519478377487473656305103423894574595701362851632540970486205647070687481069774652606861820072166351259566278168127483930909082014249058659381628642834075518153104083690436967390153516282107205603322128174468368542666548187587622810666666721270152760287927638701698627163370461821104435729297091823555101651363548920448800618514124739238173119037052693977662137999568160353302994625230882734042823442105748254033833457454504809197808477924006573531698223580277200622832459562685667372647259709872542781947427407325995685273623343712104086432968074068095593303265624714188777339719033024864585410858085017400931428883206772198127919846131227901205003380996070883755360036459765045184089082289567851248200189921890364741158010116434848442203320653874027638145904095985396015862363357098705182162795335587847444015092774480422549312041927215867160838474027965913547603457940219112961979226695111024040280389843835854080239936591180874654097989277791826820888054291536776108906761103831510776920073265405999094982315098372384587530992668759970844016531083602235939934252024715487275483770642796296839220487063891357123938917989837890699460436599398593990259375055338394833025932567122738614916445292128715897496129316328958900434808614263088120570054926760506279338019281823621598105258159005040812478100337261959163855476021687886665254646110491384506707207553318836695548669978292849463367386118458585326408147120976717691630655039393641006107674773719460340314039839648307295426444263967930609276987720035215465942996551652051371472946078512533141288913444429628031021879709838433977348412302413458042266255104549250123125889172928615868748119477262028040780808147453964671387428828431137082101742478113097739664127932733252992590477433943606907835594790963965296406821001848282518991828380065387448491814649131917650972583910940479412535691547912456584648091240153617729387444959159731129433701852844469454057248983452954207188461909192642196658624985165521021299844585715596365468155358874400135815738996570320762490404579915551709626487713379742884838949256441352048958424731864218052883189134894600079080404755711521997951317055659783222511737543158524973636362798126841170244761667804702358977692896831088333754458659061182742428264166763845252542923734163318215151344771614533789256030782131616689816090784027176865448161968932164610659261262778209822728575238704325387590224559239449044806009364454419996693124897099707683021144758454720257465347461736771174452011337761879494951153372290086651624613717401879317827306866305479246214276377294596574721477521314674061501711451082969144494533143669360295238543672177188641593878643983683389560114375089015120888218469596495406067957259411850335023404604577336643241268755694246124479403455371989896234981091411601336288367546372235473546861432272832951494787359114883731244078955119582816932417122879389505223002883875769419137965871875226496657022339227214032342564828308483080337320662558618591639905337890260953838495442877336855302302817672865525870951064458089248332040380083290310094288596083592526671375938377584154688274204649303863045996407767960447850442406431091102972787347103899842612617766834408038443227499630461285978894449352170913327076686807836218576613114436244239119530054476281300175524935076554661817333608597339404963932195288966521159646907007821928716702501728213248448256104848798548561386698296165719567967519647362691900856994138262152147265406164950115185156019436394965275953146287112692896949365273429106203444230286790828203314397215364787197137258980532510106712086319277622883447147040781809354540408159381370137746505370072487350539761226048430287415466699144146130600891139087726804854990132305523986191213015890882132352599571667278616395669762641743787667034197544093871766279013851980336339326522687520920933531901778661534723340994744335053062067163693479656840476098813831682919203302840653187270123722335750201669443503106082642811172672947823263844892123534972394556936559038603290942285997232019573788799858458192701171827339509333135391794009784132034215107272990882251973552108383443819871373788922268917194133668421130550985051341726313979590861575956445011147672859332727783221214401002453186266175774529399129259062775422262194618447559505779336550754560221882716141589109389532221105380925283239488551672063098700355706747225057083629564869840710948857853441408127425461197344315940350836798429807149428540787529539667853790922498401880021090275817905971264741643840398641156079521739069275354760127327965298210318484106031812449248631393306874081149874639225101633363803798987388287714961766276449218108415784095703154912868873135670369404000746469349022203762488398600615597251057863767097793603869686987420572917417333829126235204681631330722977675300065643955262825717844516409892428257268478661565952560277701448607339562466830645728828198969517748342244893401492574027168593872116835917877009095788894415675685187780610894069820670023150052772172147587034026622544718789505890479479850973143614102251950717631646361050563784124687455214061032747050349203961901147048904020275844112279138928693713682741647669929048175004816615683814722961073912066213057045917313457958695274863111312694534773558451634755944251901122860946203026591583907494179548313170296784178973071952505207801643079906281384361218743822795978087415308852538257212191946406694066981607418340316752189751614042348367033454199051295647251051667286888938954989101115787602470768246887117308937800835295143674361434392182789703758711145669039492476782227383727706439859372821343117546323852862988775934795442604226076785262446882589221051161300499667708720650232807915992284977824099790722126713416654090871317152970251002977594585880570112439867686090419893092671858822576866639280668129430219035089135738175097575435513975660504719062401547061356326399441212645513449493298529508426507230501855287247841333878721274227668950132781318146852514831735600664464613289569769558869825008390089889704443237129733351995247547595554921279549735894368413875038135497203919280575154085957943934280781343432721616640889263896775016180211960159770208199766640947085408921930888158540171267981424559644634616297892624877082927769736099675985143993924304580007117416302332932687657229301003703748432459234976083126564054802686196037349935364728723985379813496898320034342445809145694516463374885412643366629750398016603209019397210370433913026801397729071578857503549439206470266892947748401491840424678946337049483544835028926849446848469861133299018445819943028756496606278615877559433645357307545857223743937970965673973767593418738915531413914105628794063909685026952223462285678385956828331873510206200948801045176853661864731222063858138761908893610644105442658359565270262397353943214936397815672102816481746944764326782466009748335851682874943174577871486257109434392960695228242147521575552530177440995087255270890774664483531706460580600498869658866492872675785363072669394941151619235681010192643555497280874533378555759036191402515772269324201888615743188829234216818082446756250095705615553342199332214154767518024754039321494078116656554006952103553950393047766645447134440324596708367088805302615820357416963772261312752735413541181687980610717333147985592568455451779822541599250814113257928076842756490157134197071877284784097969206484330781915315814239771781174731136170004637842131357341651802825942266262462619880201889966893327177295790656540785327316511808716920196188578892891807765010111817027456683097077089121161367870677635422590376729978787486117643726844591095128002068836878138750597331271538862168306727252060501221448737839529609437955231454811966962433072431606661413787798754794812558964300365570678656302341591753346673907856529866606552480435384839560208203258487800802643387317666634623965189932423975776135204924267269234900903752857113230694803045639357429095376669406207299579722506252284546706903948514035584362538303489682287967038916122127921458137218280335761126436040407183956718191263829005713750922213369738539838810593493855710181995804634241056006558426222297771284583685326506580499433676387413185914247478350386118463697931912763610607485506371357347214059003579472735877874591139281482996105508939447868136996894540676913216594262654612830866643911405302991031531547912971127960280842909045076857014056401414821904885636766272998331096976809939535886856797972716503924988562964782025373988670690301864486472517614094647854994506501637861832433964558907509712099891656006780592227574394596911022117234628126373584035453206357170862242265137172384924188361848329542414238872205446251376573572221088466605544022145683049070678904419820273770927221440355932058836921039746433390014720185382562608055722664632624124910275283737186288002054037202932819429596204924214689859656588916784017539002437768649218348300310153016331349472935496396325204062621454277180112916748019729263945922612499537405395193174950697856962409356712361093268955675243268509141309426292203536233225503246788327987974730786220891496485788560417341005517337154877133964813940526733301276512720911760623843080249407402496814541547455569520920690474661818392443721431429991624584770587016068876867267530029514356916576809552126809600094356825035523951721611251697549704006910185136092390760437705758753851450640621028078997018076317308201279234018656265169147084339890488724241500665496825942084084245975793615930290693192855240186142632991026353810030872260608347674270681126716335999544182736361540611994526927030584308305997833878766325646562298071866998762022277781982351079092866610734224458622061499262912089569392968367712612556143810029684797672090357581903917327576656988755590972486322406942765987462932888922389576715733365484553908061483681885700821792888401493440573616015413608311922711484517016021775671302236018667588528751680313977457627316414308236259142378252609692108025153853419174907179719480351359727971461980527701340252046534284690163445435523756604063796291970256272788852444334734942754380478373976612353472564837856975001311101505083476054443583792620089082902464838798735835621426451700391944746597988277093287872911210791621790894357126440150748025489224286700281679993478316523346666277361217841812492802474847292161649231079010290487465767682052042504254942841935757809376899380655561022968442295317568493619405178927434809863627239600417335734054112370456049555993849005313580482792142132228302752452545746783614081181818354339206720061952580314798293727039533715448558469327332712500285164544598178704055810927932211383795954131947075976130742323062046218773650343072074201261249616051455245312539478030032494990918971427580464940778319970574562699129514087003029077749315061732396957041420031979759442337205695863903861481806378339369573095501968031289823524413757538260629019671035632074042061389323206585114474401341395508918671385247864600055618588932010746211132367933712617185582765218000396696725176172054221060223831975738881459021956877448812775459068138197520773731964665477130416601216982516867281154661317301703805852524333901886995818594483055525281189008650192046614030952151256107051751838878383354819722273944143902369308768770551604122557953401240095101551038144742758666138950398411118383932321893552841197970441040935741619417631194096659890557725483603479157702731821231745254734564194765261714403503432930224536010749633086126396119492992715259964851972514902266075031613735019670649952683020715978149134856641227247888637317083313564165415328907572710640365451066606423446163181600934871442868243332767404384061215880550912386099003640963766858921968827934736361698406321229366439962597899608280390158948449604460288947839415414624914156508633479507590649504017383703718095520116852219711643237047703513792273149114996170647336821159611229334683073790734190420339072716115302477534690430979138742979304104480084446666374087949651177663839640370747482989802007162874517032926847125335913783463913176159770072847573970073173280673662363021813515004794583874618478403503565699711738366753432060139398632367024094280855826062740169893994347634376714959758426980376333970026254902215349612849121058311385303646129230342497377372546209179647207274888706963327314761111081248988526748946210567384534858730969782195483408490917938772181048308833941106010012809697176030750568260736179067789904764735398034064625678299617980214040879296598193046448492288736348975289986969712828503689654018795253910456765135682963755078035097242647011351472575767249163213530899256932551104688918578591176704289829395161448776284894701675378189818740690232887855312408010432284706267182785809163899423227450703951532094986138094618977476829792087391854601993476615256843748320888701779375833514595576742051669092399295149967863212650755432212443693696635934981463511561329641843707820909979040727309470483171711944376143248708598463330236856383871415811068845171419214990561472781766037345248412184937300430194721021017058410595460504889428501769106137312838798021372019895432073622718692693129890102601225073469349291925751188621787034546293054183127989573378781178272608841880920522322127229446571288268262407308302413247274503193345105753471108935344685395310732280759539797897756962215728206682657934576757027877492355150487816673565086036785457008004910957391407090284772366671639880122670018944535108841765763297338609764492223590658326600117388626694003076234784389454425571618674204058077452415375897317682982961922157513889402809081666030374513986419271211628946811423998533060290776136524680142504805220860902251112524554675188007420857388542277919251584923742808085369726782389163054257337453928710996252246720901088788706629778872366704633590260892668705202913131926259142627531140110918702412203536562139133559278877917785276088497195863573138845627436017748598670266058948431244607474470335432533860030668444743425914571891883615755691969643966395751740675995410517435340046408449307771897551948126798607784944639026840710673300551253060880141703689709734143861715493238495380779148574261704685363652255481151896261637847454698530278804486361055251526539003504515885063078088424188886496912458603626137464121024401455724589660440248349309275588404906225818341388923185720190740909122811299869375603744287303788774148823619455177952599930166719700599569986755239104500485517878695599968616430365977290252285737804125340418238954220496090008019737482521698270180943209290292092008571213279893854807250679105767305016509761384260666860068893893359801074952432826101805236965291066444554766500357093125227735415391175524045132966937245111240550146341245752992457776846497118606699676256862278391128545584758161376975940536330721923412607813320944049186535203179586313919390207568616609494502080392242158641350833953350671063663308854696926819929917671492858461609662090325647464296028775688941490247690384820476168905667434946171835486957463947178868973497267458895089977055041331341505341923588134513186150664032374995455637925123495143203271524847759560560104514661738772938257472236675041754338928874791710827286881069746803372100914770990670123180857859062548311703706856951923951954676593370144204372903623882863744195505088648414135952712782682559949342203363703766269309026255984220868717391811411904909065888275273022645246291249642907613895489110502345053839094649159410169091559077327317444544515478183469515385563074202292820957550935195754507814552488204679294797046211548320531889330786781059550887197914216429935412383252345398627532199841054650028422923272498349533811227399961297480713036116258855295189071097957772912206097534903199904812897749925775185376958095130585864702441825043565737685025255770709896056601575373538689862463564576519576327742913541884662951372502666135009060483190579135059041987725526630725358223622789114177508482460625640487643447770027954737296539316462025611435079658640876853458514039408820006405085940078958016218625434803578521669473627436424856792176352807839676231064126939630308635988228167729791741667161353884849093025505895893213416927321048872283847350760232063380532152852262430566050678039808655765756024709926951267607981634071146904035120798066703456859486842325304531618320383110035974718643120629942514320980059044046700088631429684051561533665334194001283432587750853973430871519899724073521037326955444059293290672419283344517707221611268649333012490916859284976815547303069204681539663985081333143206573339838603491648166343763061606020164261283865239309535412579897495301491009830583528179294252620210052768985346066151653978083582204525209162200157297930447900988759218114208817109186621789455559828235430471641524349598761148355260713794488759014595393290762395186327481576928948429504999183943616036238269844351089960947473919357206724770035763922944273789105468950651588693160661299401283223670349308364969262224242404009670289735404421588843588103298706787026310043279977093726742198588804425067938054823463470435732047527769639803050935018749020015432857040630333352451797390402420457651050124298415857247149195286454649649537115726368752026462045132196968664949765587810366996966120659524047445589152277914573786174187381428445060066595276622265768767183754234966727436927806622673914562902496481589925128038973462531978628021167417725864526468941246867645063277061957305337765778928495580164724847378935055739700283761389898146041060644338446641035533555136749446178365201321189393659184203270215658034313291311175893361345164879109347836435362417141361890675662668168815427299253847013219831821718633797534344648620760723545591358908483457585260771395862056418514791943916821046251781188080713627003838702965319251869584805920156329874088873857775222098672293646433107957802805864060878011831299658416075317484966047104404220952418587291392780533180036552847961870902819894868796359408739098043700954910001529805151094806507277647154646748283287510504041146074304279741843523901739354480961587223791169752769573310245103346683266316346734936087904984631737568622423137447874720869781311980404104058859086989890956133923217726480912686570420673129746755354614958054798779547678175734120470636743088908422643764206999119589092258411532414091734221406144951663832526498000369318766019095738006662097874209834633679557698204641283543134588094866302825714143007804930650369956295749558647142687752252151198876357274874619349167479137484566132804254858264718543043535689343329037872771820032216018907262011857123060529288985591319321135724632261490139334570147760002820304777626550217058319657611004148060923572210930439543416926042908211166673785332295313848424610216079235166169986471700530700607684664544285289431178136579453047331734212879333003217740037170397013536556882694107057495441672160172013530190260286567714574467433150177319801857190456705005260163418743541315370105072845423603427383600290574384465965946798842537821036879658569902094163765538090130022721340040158176351105513077588754479891193786194169507767292637308346546873930647378572198991738075313584997390153624657964812016813822243985121042018000498869727586646423426871858876571641516787652154654012194037270604712355786908325347295043439508047875131232563616690370123247906583340541743813905918177219891644110051509294597554589938687169532048918052708951327588786874432107125314463204753535351252513014232666934493003519852167243156513032518161454184810336373306949771707200439793366373849284772180665260312155028862581634038112965570613844655381976093082397684079027463289465102429274028558036986729743846780451487351359256063919447433917221827222518583188327421227267446377101498345566531180685292442860815614060760031790375035068482096926920460552414492702203303411167052038145786929623180087462301641759646694060439408670428318419750149749017827263474566594610204250275054618250305338544498371852174370995491971504203032193845656840830087003941442017323766368660365164586146394737795867242021354255317948647683028666045393845513747931379713173515612512153210826476227515876993461553005542147052104992240714263582207996166817732149036328708720187189490881665409943609763739206234390600322754990307093176825147263335056015922312553480727338815977319822493698946050664658789355681151912879829283637658329310302536579938732677452001640255389241041797698249668787371863093364641584810095932461707628239470473928431540139947939912748169198222683653498438249125624462693369269271771605185617309296164308853932903381538259195022696242150920542460810022005438871532355668151343997704517166374245297376045253621742425062179607812355059256104495232092488828520805752766163628315661593235139852231624460899659181203689975632960115554198722571921563509672100719897867710447970578705441124551964118974960794717133934565642943103816411162531193345405269487123167450420849467771542652711264405532005443730431230669746391862194342212388873573928598495838666196979424439801975412777925324195898803957560517697654927325119273103511434472411488391771646241428020522086841834706600907678579227095508808056017141291303474356467456820611757340304947284038392808560295953200023637696578661524565883714596378737986124965267586393739671691895020271005856168101082361114687598435337427568743125025969891535787245232807647141068966154785772986387210244083369360228933592268003550671491318411056825462017846596194748731114696998211833951920757072468694380917343014495000694681033942775113050423466115692272978329761947093678115031631692503280548709410548140936393355967939966426034210304967183232470935401413378505519218015460691349234923300159405467322743982204396970550303954127612666013694499292769226111127605791648026608646448255578900025632866069138481525242370421365005037676791385449361639841561191302745957329117155741585210722562362461197593901306406525316138059441520386531312493742959483939330872197979837566085348252911721409668891166459845589885741659283077368869489176255536497098664540125015698958270277040341527053945576600330062697688993933810426836450708474906327527369849974774614190895913166169220052904399273146872810141292810474904242717237501397456646972457253657561220041603920113671244978206140334601051811786902437529175135698760422060768271067290119540342244748705083545060412123531120263420360165022862508179481371991433805549771404508742182318639833898877265292963967948875931197423738243626025976063967778962280982474964240705626719644654503838069401361903486774823893657482157662695601514690620844072485506788308179254776935399706231867810636595438999287350607696601959060836354421177420689031869422618465218810842252364068530388801039907106062869082800488411764673592739054727879086106304845421448267511637705304916614877851489743015741451604962653894480608911783675338177063694916467616838584509365786613150107582411108494718782918995195298108705391117252691859731816793041406365021978981569368727092078370702618062087770827602925645152548386226785268994290249775707192250398693958834788493778756080354279552864746263912368634788627455269954564848589900730263491464014646735313975783370977847594728590294860974949537204609912312305840473978178406972940404015512097580794751773496209800221968859935549382167600003214191864763304273643076004365198877788153274686971558789101381206737038202704473415000144029703615523663937655048432954073664902371917970244624061792454248118827459943027059640064317777995711390541620496184639697766614592909862137825206142258584391718739085983884259847196520128440558162370170246531080222489951344349550463153451389890509152549855207816786176053828880697650715521854944257065577290706023814007814511007143841155997041916259581346482061464093086140430288209301134536213508862187003387172363092582212199947968691889405097984718328720712854533678336062909202475608827022915689821244872232413231604806111711543780845756067276637865861942214154300471985883564331291558454083154902553395379675086245023085117688649645426257291306889782457516474406671348074611777481919298935603105446826402125584396453634437788594041846359577815145724890730599110941120639635914034579520626986025047695169076204412599100094181771729900720933704159902087810837852769502992955992228068368493360455892260308021260154618516217488589250312015729788140443964748996310592003341428011892685177696628692171881077000329908683621548903868605493625667106085485008018279901303661060459630865887629624046130718410680767560362250258817039953093708166907796602958462116305835689273745110195082465778114220495415339070142667481850422191575651227379566665756375610865888539321959753268974003850012492223210476934276095975762182791272087071843097707536527399558949972034554188715499712323847602917774044616652198615834934204271955815483536742296968231850320004423069069468615625473163314892743538652038475450661737724311084183927344794904350876997072572930504225014189394058442520993611649801024261641654626522974679746727625037328069613377669444029215763856968944173843726306130417044666036374368317003548764238995914974603110947700098527595773220811039785906315110447470214633907741461700985638352837833691858161685106511405322070178395467399357988577150527134788336946763522567461580681644611580369071505547842176335210143766234018071747569462940580679305621520890991632994241403496719288892361977746583664229380626291110807906848935696671620447143926598620912917860695584746715618173528340840103459398766833957766821227098569490634330022405689402987345425925976466539945919868744226807210719584044032423792788451823725552928397356442669754585487723528900417682510251274473924221955134660483545780401687154137283660851097300515760342170653225230194307083264616778644362305706147409811919192939838509039203840959877374846134735467003648495661520382714377152061630637498781218504577433417027953723944772547849180441954045359403163106157891319162941943050650593521923173328259657284043292987023010618919371591429853759997762750800693851862417393121087228361824370365499703273608815435185613992725856338625731521372330106421915754490531790929317287499873025530392328189039993816232124037261850984274858958148753050114464477732062595841860721327323880582322702222202167624753633253221804922686019023230594527071795781401089832773853496815134318784767217613652447706634795697667305761358481905931868105292829248900172527105972112389624973462382383762860677378452151097400911818237245454149969406271515162330532779742507397681564425609644542163533577192294397193239735472546003918296685605054963165001358766713011581395821989266939148558977493235892288509858328460348911632141045169955775166126381309947962125138296315939202728230647672998665657442116905033744745157797998940638077269752577399962731485638054365544109478952736502101894619544001905894023276587362951923420996002023882807146758187479224424355202423343565237102101905014867592228425759821803876804839511960704363356217593640060977953616863882997487685930625330186705239065350022228054824132505561814942024694188130482766141265209185865104781386713992506578583252065447232981833594722762981759040585454686594930547960704040127334956022429466444876471497105081587263397729983877571573739628641004531343480563037636835919456601048223216189771779075987738597634685452561324534461921973722199045595557163351116109189891725109019257902730662893314188734425648874163756987826105903810239954692143802716563747468342565389723205629694472698079027845753500916176927002910092855202927024680782651864983570576293849161805629381237900861570123944833995869425621033444139875144789912850790175129751417150596698659154863413136404776684659267131287833366168475837621595744993484682971610331433572434314586509398610586979748984761084448502012801159338116568518100655647405017670852180974693364467075562612022897731125099419025486995537191826440691144089539841563749378619074562687225395433004431061467234324751677987158466438194170647915356554587652820182838633931957627455745336724416104861353740530990048496052543725722667828643121746590736110009192918628926622479151498292959956272893670828886640289879560751351612310360873501721428803706959278336259185514711809936377493432795728526838711583602899631239839272613772693674242259110278490485282006488523992457155458466881322324065957207132485183716081478435295128998398257852173230415059482151211948834242115397317414707836054290465016745989626399627739125318600253235277396048286189596607601149275883275060446571372408397001578073139685507015351803918179412820513526281827999235326714992725966303423247827039565525674866754762193565091639932132076891061268237967240995669368832334667259140849154234149602367981887563726495064756385641287526903454710238634107780440825712494054801895594772237280722697147160031113313037819706938315469557484727489306202737053770196332144732885381465978595323621697263249314600844349377669656653901326762549070884911006701495652983219700429546892724688460645255812455930144561420560024602293664940015557525497387031023246944359226371470726556115385447411991004239468451340078291565937951875761467803061943688286295472618124719212095807463430148465840347292957098997760691864734196239472641302802663127279447217631885130865993050600916564993129125988906539996119008827937728115412788914815349546376051894736001922810434875178061475468686257366930747255696168214683765437846004815062576396648940255163671739760021487295872330033574980556434945570632039929790451489887667526861082045818151662872138594177911395256238206863954715984527174219824673763484253906573106513134750048230725767973666469248278983992010161592707658394075055832097272511496581365463439471759930089731485411696743618780274342434028575265380341958202958368056729364418452673063522963284174125319636745962570141145542509205934294834281668580764887795963547985194025071508647269528688799513111927537448296293656205710097132951586178846014531356463006258397222563785983072832740237504145924442641397883979407189729111889595650570021839287166360553098510971962303943651375138072223178077649981774207393630265639771402199560810121787502620923665664590578175772053630260083423602684763487010443458700510854786607408769596093023917683178972221704393296437855462255921250574412208689831075898886619033282131057324235296973186556345410266293736779391892428315590230881785951877137270763625048110106819487760014886228580356745272125340014280079579927169517461746248041702753533962339341759871639530704651677724853837599779540013544458680145412931010944462740008754732574222502251281209185691913365622750258141786463353471334542200339658148638513456567183319986495349832191268741939939713963460398495685859058244981207081848696691573599240360451502724667580704176246764148480215105782908995938178049916974366320416662395640209120881555448515214435816599839240262473853921798871148118708021776974866406034698816960019828505764691456873048067008604055723202295843131769160822226945182957825179670215235584950977868975604757760430984522640119117223192138367698511918399672226593320250057393313977022627956854809278700599263791266068829914332010075810175046697620149597781459917539282458558548731634901052836822064867164383321772456455989873980176688061386285668594507896914823803154957290633948240750178274338822077415186939928107277001737149446944022207816205375904647012651055542059350412171600596859441442489496257549948218123634997858732522960927338550785053105317896077249990201513081139566983279103805629191495171784016364431696770707451906220792037795211136391659725421159815785075493406740997411093436122835647180203713291009890393227470684049906250914871204036492388375799165641513283720116622366027935639550312169196455848174096112890436380444666690974908969512273847227329209152040658620518581788870698233414761989104450342556186107034984872882589513906849852436483648468578278265802279437339440496228783502879484756486170112508803443025465014195578069580229143397078564528646440479640440688310261291484399368067977573911138192296318705671926614572791324980892464544053693648456322746086293021903685902286032855904729157890043462741182627923117842528945747136827671104341597655790370703970147151272631585402858063721801573657833432185614494733799283358078857371413404460943723298938601629199307038761093033087185390421732831927118277824051243498469911555552426432602905522659179439548619039188517375005531971791481767557469189934881456565710587380517247888572398098924228018516117949963806680337099940396292687016953083874530237992322602266139352302090842615482134596048529835393307755975554057009606414332621409207136332929711965815585791507814426204872249130053305596425943029502204219767598668180788982054535018705649198405557463671030601814540501004618143794523992685832841395258205950999851991375972864909156878227019566342579974252589957624928130368668291460965599738159159021041642030263553576593442951327316311267629828926760881564410992935855002741110194810291915028683967313643823534310154250986086380471153277170496910465815984848863209051284247318403155261878615222301383695462608699402485125322321591572009422424200013184187779934068904789880882323449279449565461991869780625396549876835248687602967237509066304943739650204037558982584389012866523294519429540372305328775771608188014416490244178405783432148678335035666273622379714800464961543735342560398939258427230335804318289956331200098252242961317609305824834726024394288214458935812692781782344503002270677610230935911674615046140629076520519763999037319287721052556360554510089765241545377706674578936043679218904993633374617352605570077969086205766456006251930664216360099924247638725100704708192137821716284453642079880076409480203727847157013330538968983177939723181347031304546407818099464133927395472221217053909810538903290408494427352017140053485293304619168346369999836593774966494085236564138423793747109901593431428500104736551326696048219273392724560764356758986934681860565952478790639412181281102206945774877386583651429367357859627024749340885311721727117973551289855473318580361770261293559290477251295121755221593471786518681095898293925793088525330226831161864870138817023012783195480539660327834719471307520525824680840654107598960068749633492736219464560843157754558214480895464656365748713429550605592040793614024940288957685399921622276507096630629384924647776939944248744202667493240001773458778253603127394801244571001465360234884123261396603703692797740917733391170515692593796345021835955070660740198941839087553779555034306157090375665376395883877011547421705354009444729410459935259541160376603792296078312131377244929570950043314868163943996609114356454198339016630219184715204700743338022620996293850762667886830420534631040148248106463869800036481795783223375784610789004345767808361380763898304313804266171529647972937907968927724121396775999168881309662182366823143501040222255388767239199412570079131480983593155561062185976925882713880307302818356098852706212367261584675106266768055120053360521355483134219523997344173094546650780398059206156853754473011800039915195736369144068626433905623780604267408647725152005108303819279981803552982932355181855573517608218660632277875259802448401642800437867849986118341131494010190783305324280692923096253678473364294254136764061346594488367107563057377346236794505164625208729324879259610427248507011371604897400632057172395799925766344184249070824967418255170218049111675316789733532686228837417301956152453687096785645876784536808768032698740062982882476870431792770074457572201587661898048031038912933020387927299713251211949464261230134179106131106578769099746596396742685717962496588999185502418775480748527659950464825056725924591969981327003576273329426340816829916691743062756838035153776964409704945835430704893550283613015912738608232532163885469645965558531543926222594299903825252764321594187663941668245098050325758053731125310909704178742357330916571510210856962921080093103120057426105288908773006569197934065075322503589231816660197585156797455289850709924575839143240340600969913573588620579948582995377988813057487498433517764514003093185753857004511849063624100512330354507633582505611779118778722261659658946524887850037828771666696092166208068270303986935864802539840535256466359227791650302373335571160928343171234194291957028967551734539481100437611806832401649919741065839806127534455289324454777906695381983174579099540856862969190228172207142371609343905514357204434675272385912759382116979547469521934742497866668382012672691696310427082893943953906198892415886965950738281919821592405040329009184711167888122570782427349428274832214369584259432287011826535403765461546641149164188933457332003567861804091520601266020796378465074800809534648607048727930608680740899578813720130395118784265189710638259859858926383146565159573334555993375586354268255280734035075091949932901365096523486752486287913590834084417781551850111597144170273209434330236147886420498960051022681009520814535607875264604459277218130069721663341919110419835597550758334192980474608392235165298829412614763848267276090185844387106096688642313298183257857815705516624500123899562482153858975462575245642799704772881348363967388849741820935761724746249666746722120803418631598080709799494460859369121505051755971140473374833708109141790750500435602060392818100928939308166759079417878435667924666826414355299016575584004975326788608112889105331644581220360817806479988227238349784259267066564827864762443565071786282484411696133856192605235284325915362478313712493409669043720543243053445622189323754561160666497068554336284447116316120345742512158324149807755029814900684284753533101886263525838986747501025028941174242602508260217373076398157830073867563903428210872597623354537977685602462200636762160055796675983664064126845441390398995400893996576854732737967435747140203441634450294998754623177124367797334021417359634386255844026715776816224111812227354797822153302143445500389810160373827847660467365078666318845240145241965046334148806889988632613240582120984353870960598335023560986242640663564271069592168696893673270720211136423021991502015116556798743677576607644517532723350839770947951896068332275958804904403663223695321885221142710253227412028070536016739849910501385761727957956908885639782801729158647629047407077713376355282689386169344412916007897444483706287033075794725695926205088749821177474973282364796946899815672859279137872226209572526996938674646063997258219097437946295389182683844058588951467227641020878266875729875633280709814162381608708344941939246108389591828687922697298887974170509463592169904234255533281544652527232741639281621322285148296851360932745332217149946131955823299852014447381235497235474288275844592787744618563934199087830327056104446969971503243372952139341846651583662785385872251529919020090375259174061983987929295422615163225809308023088251161816287352494503031248390748056469776850770760677970392561860625987672727470438476991792210798919183287487251214096056915790557820312192439275139734664545284041846496460150711217506649406994594337833480764766016039605140332541279211277847526182136415781039742006339096364119475538580264246921331624312196199310064249485164556320740063042062677490607306537245778004000338521588940613581088634067120403674419709362654183195164864985551821332787748073635974355890623909883705563326825162501906953214146253290081895434911024267228036244863479673988576141537787836640920309681905251817120642130535162502338327020240878510156854724288732207264219606790664265636754978442695551908945059118295853544421602014954122857462127271175480052766306959287632997884460517190702381615044022830864800485466647554031175232283867770515886779049385857650718577632544408883702956722955760981593770405529663448127583372304267755706954302591578013787808487248899939870011202502586770883368980400489557125861853039704967225719642495092327689136355199373558224566377281938777657571936283478193161685935576405619243938594654241130298461395609743875101402022011780622253743928853893658092939209761323800170025356967677297678554511032584203973059951914377899112952905349549802743367168773504544362372148493759742980321230185800048046368911978638265440383221921469161255550494021131535486041612383102846476626610629885886416568535823349221966596017511807550562480888816671680863332524232755114990799866332920706271895934077230671455406739122005669589339307556552875752280405174442206532574717748927255164372994596621690115182833754189749021117999420121531550292167924305111232405783452855700118513199646662842852697838089422064257452577457180520850584750041648462967773767151761981789051369960122461917254360919645194308724919048886333349744559272649992204004958614535930522175717965846130442238010782560381612384565641671110707214826362525328597170298505083008611644533258813234611602960919160797211090199585524585471966963777971633944205672004076954054886459604415469152391979294391371931180571639089398797074876942705853028261669218345369017678118909923585474514988166358992734007622028128303274837449740978314480285524217817785066098581826976290642412209041739322246789413182363603382385062636875511179477996429646257621473398005448230453955435143485769869502189593674779551182645203771188326286074256677387869070624287329286929342616827156447540110743061489625960564663329708432708764221763378771170441026897082559488390640783072159782139015886031525061069665131201657421060561676551972724094185394843394081144815673696910270505401340771059838529373187982255269459677829961153850356684950127615473407601218510345509035621683198019777764296635920649850616093858793425222319125619238232783382090205314887237726881603380421871879068537300307522581955258419792409701755636721554648655165295203127302887517275669385191192311706373660916198375637558553445813659113466599798797203706864803529755415245130051936527779291366934036970299990096946752715540918808449372400046010917008648717532460296962944442761232022884034890173119340183518181506205007622728395189432262525452194455795866277594054421965091954286584285870817639824690634660286838343352294125987784236537792578547484743968231560950420465304138853012469323406950021606375337335986421402563502645867961573446180923289077197050860433036272001475797106364711248025946933581541799943293891647035499408072852280740729173965864297210380811720272226209851605438669628512047345725447457872155154493448021424752071637283317800956534833554881119586310180215702801623533815872316802585808749828289239425409669909301403267230582899899046975582796758725167346889213734045925806683933790549678709793134016285216043763479980249731656694798200790110520260376851598482449139924313165682343387757049267449612286531744269380721500763553408102935913070264793458884306642810430719007934926149797544404810184279705212543819923323960090360445879531233807550030540270467642833884950934384711169118787418157745019551862676912563804912181109821742441509428440736522259925690006488153063020252893850856135758060311831988752518309934089667319273308761469215546884656770380615505289913003917535519198527879387367208769965405205879838847770843816212311495782286584023116655324443439530251585253608277541622748754668246501330267885165634145713574663334803938127958948912791436970970882799202945625417865596325489708480786214088612211164611841535307876799224127403952189324337149840035215976187184650570200583671549432471658338513758846214808630662770188745585340645613076840684182709946387573755715434957857852614075258664088040112583496861248762626837864093965471342000006322986443604183065520554099435388971616292522404192093353057931219201500805638194220771913767649917014145415597066681658461321985153090327996771180810244242915192174345666899360755929226102358938523084434117880572565632361279791862431439438118463679942676280882429181165034502600353733393470797496378065771388703577324896947796971218340619768947340414854670202418559388715500954401405624115856842317980690535380661090045496388544240839790445381946897610547965487974533509841065161183924005429032736005710937654385804707969879848164186436867016471200790635850415880674960330321291215995885376979138058494356736187518661858060071983737906074809845652853745190442656490540506273463654721689152000359557343156606844100408219473626763998711486289329354690122254367665364570887471221387775676303568800501100824838801223621025111345495961155586784103341339179954882877606961034650283020846176609386937760951193430279011370241756822542982771750460696322200988298822964665308498372379660816707574509174052817877698165770156179129766077502612670329988610308668401871717093480638706779263038912501140525378181607330943744311295197207738291734477252010545113113620724066602685693295209594912062002142100679384952644328908082557233968376438159540410199366605562146177081453163318777878059481965139858044196856114475960891226411186009404084667326370952299060168874309111986255244713412708092969286905471706255061601557604435197036263485540438346290821146909426624116992093624608198643702832089008258640054528033260537594199283821098125056115420635847088823574021218889462447586202198763339973909402416665287224530676152390877960997752063148397376215399782890690303228141100030438018307954488846044091191778855976738935143622822643341546432199334070259176133741984895290335253117299754293268361651383567194341352748278177376757074303029864095829971553081721915960442621907697786974856386599884558518347433337857625604187795456504953756785140985506999264403890377416250943750325154136987978379001115290454369247810061113747256389502545060107003946500183429709539730437780454279783009972933615270836306187614378306487746878578013682688885495810023319692684087512287544831613168301570068405474501253557232931067389775838358999356138968124323804671402716176876210613965369168970259699357172597245866804378745111110150908571537686520517563873621053621905486749266560638286744479807189634265829291958316085656839494604965999211514704781597928137024441169813017770402147856247475551721633342174082353651422718863600031745491372225710462671522739976813344769422004845888202805270350691903853384604589266683604131959394347977436872737806701381171399354352421217364880552330990230870946761853872388566771518121650118369831959483733979593766691396811799499048577993727917063475031210835386692411905960326898000693748370141931878467265464886615905711254035684847031741927576293291666548954731816621688652781339047936717828474378119496502921351005496004724247816329433582156814669947592269795398881742371872568816248742741739487803969869761082263242890770391218875453251723379851363699093928503563210844762165918907806421378949413813888598907951136024385348888821579733879314595185743749103333639562495178844809896829192618758170042313354516866876371349858678512964544270641671965875962576850739113176690333414159553318173609352015387541601840036034966070102513638168713462920300595590504400641581351298246867297092068292202582683707164015013621190685913544133878907080068911753907390991331312590319170530243120256172271014957750854272581642201321577966865741662301692246640344342254575308606091575598883012640028888835843638893357202464881557934580455970640396822070572870563403628122948233123342823474568539859598286424671063120781881945879668080508648062128771328092991732938456522768494040560477826925715316269448212644961734044717494794932032461475860335974656571791913816974673748488354827659273137685048809764029253906136662558141351969635671774714091799085127096089742224993318462714764394439666580111698974149667315161265108015250757390160833070587943492030827378309267912121410011639616140350509842263558657412663342138712542240676961648265667640721541301088785548053581427488162786836955000052532319180980003804933242989274325437135958419860646437325643385712210197334972351925483193173568749061327525264268726195353692000751207746852850392042029005051750811833913042443831678428843521138993913521297626187069029202551052522283337457631847506525125585617598299438651926233718939195524036395415683827291597650405213155270258094317492910350432801279781460291341396836577554073436624680162713022192706092117580335070047808273152177477725886052010655779548041253793490537555747085281407442699948387921294417425514229409463120841490706271841744987263784636445491080986225791880444367829328372967727036896095345444429895509019979909447562048856541601237824905891713135143582528467258036954303085359788680175111599588291903005497983457997930693006235890808636695287606112586897113243714055101978869477714151959295225323250936902607043089418131710818468112622748311009292332897596169537841700560046163523630738235542807636544517027530908871868600942168163959666831890320573343017169441252702525960728970756996310239588857406340893511604513904030308252950464908660646033155955563412988470224300473777185998819342728528723791353143300632343951957979500901275089105299845747550689468275290023191835389236753971981497820659513490230295953470053104892342611399382424995790084059856523448796132746121122389208786941771495814661073107818951056414351452265574804018455288269989711698143960909633406247756485698995897926854979633088797966909684475213919116953742494794446912667406955838760863899159742702260603265814450561116611811203454732224786862736427092729829926929020840375700987936013094082564884886750779514623681883909305520074785533971894053641432746920655153629481124562242028502710526718599209363324425434163685616314690670356271694386073755940576849740885129293615579583315496858365891558493353525382407047763054249215619533889871432423432245444998743335650107910332660004623233851321634922535846422928301197762065193888184596388513370391485060813337694896156312006472915777358522782088136350882852255419548770064325606663024475010027246410989815291448369229622736872436634996887031762995244869018675907636118936056530807808452232364982796761305531751676650961411427232589361806951839206947500424407533388145847623033797496612370958188073537625359105792713128252261238070439092483881239551278694798043839466183124190116619908177966202867587777735604777999133077746394820534222146846542847080684002324588661105549748691085388861199053323638988724700792756314193783350801777226308400927607367763988785226078130575950767501488513552131400343476622134170709025431073377142345294193540915577989708637893278651675626110062258623208295969115534006466792671794925883436173138997510084496025177624404072016948910686021558946947037098723873269588249235988115875334192754299776027410993585967683212753274026689136326737722298438833612485695917837333944138512750021926407001820820205656517789048361634233203168802820812612064023967121231000120515330591943416074919579610242951758027239712182354061795608804696235743605712882102888791641646772276683100986984348575802924008354673734914035008106426667573910535637583125816846047623632476944238502547546828422305512010571804413202394844961618819875949555087014403084002981639430761917078031551633704406161477426615137705988957763108651798407668785769753311737446409056656510273682734729073356297631749677258346321408925773131932367265513933129996946239778433810004454642756323158791617381375769140007732039139115032240674501203232798659445624967716241502618952277919685096349137479959245218339942856270543011968298329705709276433743158720565297367060188173119425211812537292700796393248756692151671941141814447656497907075530576219901204946525084142703852510221092900275124468799354081719199004468057596872744553709613137463972222834545603605670316380122543546268483443364553130808257731637799009046102186864718471572087001654939045967538996994192984733764880484812588148841495957274601324419760615155660996503996780687055629938802057070271123851654765368706374532066193058454117268870566785848999761805837093568695121849787579994432033283438629211093201584109571814846233804810790169893092470088758157787486235790692535300914128852433308887936054313149457284270653723218633614118862870426817834641840839609309261565821711424179079857992296558745171500692506156072469084620830632163399312156659796153417482106195368703415965734713656502284974091527794371690591227118117697732314880655750743386388045047595156878254225163507159474957980822988653355497103375537562410069656553166562626801055140517754592768882645821205704406566035668796470838221155706872592022498962713962162581133805165878477497198398833814073723563582123111798768721403848044253775500599770469291250784358177970931365534057041762881197774856914970288585291543892846285471606609592375755239932356544644371529432875843059375124369813930781772746873963770753514066705305246475577297098493695221054728123852908414977028350054995669249612853042715101672309249852631815733820295237405471034365466337315443703477915686024660782736550967847038181666934988662419025340161386682402382150392951443859452566817957222424524106440884068293729515586126949901144314839142562001233991304334342499186194592154643625120351195625816750980489986838619674040560289264223615753315165527090026697912297498779517556258277288885751914452562581036533717012625579739759151853028728808980089787876984631930148580991808955719620750248145522329372654843228601285595609165303939665968319469360559743481848089352434881887484699701553974775000951859509716185049220452591416251855435665999790018207369001438473327861202013987477453246693798288934651985447349929972957061046331302745503795776462189383982467181558780838557984369543864320255691111018579225210460402267563310424952280927690125998189114318848413281011671446308591936031446725538843877631834549739005818067174405664918600775618052810797690708455479807447833715066490296957244928943150642793286005022803306089771696445469493756996275028594202276326942214202344644112283596900638496780965323856128051820505689058633407712150926336932641056471755653161584214529026161517521993314139334672831763750130061769453806886924833936646641439327181388585446031785800824352967880260378981120087000862710092194271017915702344339689630794615233588138382732966002794094139512202488826249427191732635561265758053003501132765630955319607646788589840314282150055461667206749935079711682473736487780557583839356306499791441162390545115894053685726178517840935325195980404438592676459274320073512967574895780203447008548801155739681759636858619609873802715243627780519644591498622105031548771401994477246710587676493831739074953071858871435097698619837392117952942725566614798255716102541511437836464802031597303347790886995984561637905143472840966375040238738152010773684519254933046402059893223442250517915737699630668836423784738142538024588887112606584644838121384460194280204446248385159027694367151506372898054397845905767414349542648285188191609959042248591179398299808599436716463475506186285544503599715887784070122643024084770073586709317340076227406762459451266865037128156650498892880087139266635875165156431815230123237886467015428914064182688817384537536340051114089705106482672706849980352798976182745027374206966066206042920342737254841423332832982256140022821029014620139151413030116599131805954172943637341801282127106821163805470375634086880446129530105574174578569738535602095665972635597791003239473990485202950304524129580791374977094798369664793272568828275625952740253249572299844631703772314212753959935366098689216544956845256821536724205966771045987371383644492127444418212274983282051642810182387552165689644282817546611002419536437208677717016121832406328261405859741864604106635828734808222569157366063121875258593399804706184750830520098370352212774190851610673181298504973403708973000666763375287846369310424347669604718388999449577941197784166995666451297012330215864014483118047357709909854360790843122886134156484441130519539314777423102560518225780200178493473404626032262467389369489500979633132256858860412354869793938932759199092716897621034056760552585382120414386133633556492212995076304868345634099561320967856503232938784224536416865564448235608215699878269430580017610977502753707618060115823234409185198786299655214227117071293103415826802512090501387808493507922750290977377070784049648598789741600439604718991905315048348928292575486262238250502071788549081081367891146619655249597368436936455133927609240950266909870622276348579597850013008491600721511355379224921752256992560310958854335156770871008915006725949001542382729849838915800327490370699246496002769955565220690169547946065606153741784282642972913200855791995146195108253093521589129976507019482520005450351968069082337803553077818487770542645251251994797869003377999187588775769455536195664284268969314382892560643791300943708508811295024358936390532395391397814687986011547531646988170459484644363149778866905242476691204677538102730144594313388156555247744186091659759451335248081815169551103223072591809202137776125452159957061522261478085526655969219719123049904354822550789342942095084288983035195654755353416196259872328850854000447909127013663836702725677443400826238402575662407180968833256646994031532514522353086246636855943114577732686570665490625251118760160528041060770294152028393296976582608068096524550379822524191702093933102081924297878839000617178869748140718171002284134644271708069396267942176936746400001543669321851844738518350331797463883179620407669143787132931490873256790461699504185735794011612897645900582730230434844070512029963720413651740905374788493470137567196944440331396907099994139920182132921494706048363621300836213640134691735295457451545915807828627151750126304262496032416366096957298095485279846014423277677943239921427318012721386471642425033091152683293326064915970430745947384832599893381534304837864215236740026646060694634876743484042607787234332758664533318657098299852935026411545518436275372654430381449930883447721086687238711604105020091972873942074050725265941067169104234636029518783154641589558229843377798031612489983785566159369760545880367581978706089865860924684916642526955081690217258167812054880329363379558412361691483757529500674672526210860869132970524534587762547930971977387429673172648771551758739557709454198817457997230616337645306961066489270926240010900374799383631443483731486946360007717973419434933555211261593356405525382444625442623789043601233709197021606420841661846658412071613153851921658627478219436700495883070579496412778975979632390161174421684662238628695407937800541600498752077989243966330760121217812100641307027574124151705178204748101396026927337668392749246316770797461768754612884746512704261055906853803140417011772985319178097920456367835117198690807427949707089306742144824673246353985991190138024607713462137967811309051088059550658202586431054155779931011800593979625885243984855168892601866353648768293551762814157820809166493934154914324627460278205224165385103772294231831132840734775407701165162736985159916917941155252995438734360132321181717295562079729336677879852442018971129219325014097573008654603840610642887162612319608816121359464090248022657946487972988924168734000809225234206197986037377930483888399518984604621900970153515668377268259468622202547989616444890477942015147006823876476566751166216050465652475817623087847642352307338391393651460542070480761738395866819349306678424454843125949528549197006872740717092401842902051512096051701524806287732555396659464935344749005204954466696688738171409648238952163436325982872998456765193531051496319310872277335912142089961480847626513810941176936473203048304122556942627299885548026483753463827021630876988092566026982844267673747775164180333650463525900130716743041636914607546897643571552035758853525910659329494990629700285652648963979093975624894371989757929080341065999777535416584355830795615934739250756335339429517390107383565153545550935113447250956616901516843187244320130888651846703962648961741825176314299704238294292008437448111411703043059900370845208005669131472523391101983085389177296012872995022455643801193054458127990753516855761906470794497996760996013398706415085177955940436921424691443810829571382090491315861881905888211249788452581149482074282759886723842159378723436608661888928680269505923462396860416477397240821387318949028373533688130406196836605993200141536878755944299465526141692517231339195375516521128363354048997415066274291501408814098007606354942692936627168242571277060965360870132945771438566558860592337999302892007457666244595071798249744756967824428338029444095758533626894873637927920657225180835386672455326234031148835001844835230714840357697903637789423731098707557920874181494165123723559828372622313939789404607242673799262706700890727693039622515660064138597433560820066966319994975816418401253830582161002689463157024791695829039985256464055221364314565012688813821710049601384336992962020378224611182344077654310742244750133262096849127195005346227403863595180538849221727465523716320292987455811121967557479944000942612989853478416189450053442905574696160785559417470718913206822496733626522442178837601562002304810792419298947803723943197617358969872678691951785960288785038510456471701010984598383426580778808578209638746396889952097813376051753587590838454199981710441923493084683370430462292939740392388424167013069907543833297238961688705389266898933248910613202990494405195492954464487584641042354164792827808077173685207893997239892811460146635762681596307718516525064065949607376656509604257370827805588176026642185226263383223811824061873148812956827566089981903369886502003279121262099745561339946260878059773236642207917940075587139938845719179865185519243614999128299682597316156311701492316359243533026572764524564533722945729198406645179296560405102297312284867041022090006846618805549661459911541354861341770195333210075927253100592192857221038197381974273880587675550322017198989435777150249294739541853469251267988560239970805504833992402305596159503967325964712262686188319679563964159611714873473410770297105993787740039532708638935848964402862593632242760352323558306513194969375107096154223919160662969955613004530739174839422277053875149423037314072537697121914222072324538363335780941239742844922385723983419889791920862430898682954920316987506697577448562020710461193867552791883478367250292561109718510683319521902708774393117914852850266399103978657613450898084857457177760238184736033544234500291097123123550111925848091960341815100043707287565560658600074586091682699570433255624497046231491904619447441986339021861779034726493240899649164377112991164849300899346982201833571287515345645915001166261806660996297161270632707031015323951765931232082904612143269705469319454492302053906403758115545112189055247680766917036187427679786174095425432561512012115861666069995939515259553792139111356461917471288472144890472511529099560767190840688120272570843248842844234555669985452306690838064576165446187053773168066449555720634537168780149958843237676516290938942328337524970837422753169008804852744990203209845967888573104016221764414714131131856322579701711123038861895418347471238125645736998998345505359359757854072013267499842609094180042669085754771096746247554305326588680610443928239161410139015590881656117102593760397249580515677272091753443772397052469638088195874737308872708020929031603633679370908859754069308715289153357561496815511161339960976962563768706905449876051084755033234965751541557757110120445328578811252970023161846403078103715081612328923256263235975009740765514861780938998615459708911061842133348469220171807947962215847220431632753586132817327291383607558325571522305531421882387773350533746839165136656437596724063274558363170771433602491257197118455530127798850771930088329456439246136471542233377664215775157561567981289593983155958592102079085814450184604904289303134631230586628783639022263145106383446834547486078391167196849559840993724141795853532730422087385469524620795201828351082420264413352715678545531076070987412956877215450764689770656031140402067598063232587810389529792564046968556682317592668597930501485040674189921513144441491899705522055292015127549115325406779642407646507802418395440471211337494085992871789332468509986222332263575734575510422246679576475596433147490263943450337437625752620350526884005859887312611063295900242476528139321851836778351184870357147000184358634694518743481307522246250910446130152221595734177993627350702056531038246047662450897775106049155723535551815726731250388595031498569653118020070460599538747745852114502713405966693823051694152291073401209665260499311245455914679548795084289183891895101191108786886139901440531169185202473231705366730865259037366507449325385659222299356810978969614330285154530764124806845557282941878276743061169809506858199785349391476412050350033211537916303006357692623401820123375736042412671277069412928260451450783647390788103789765983231163075703957339181643605000677963997300771285301153742589040502263412341698777595408488139838962570130991933329541937965864566325109216033871397300265177783983687308873691845501641686164138578556186510824317707900930626038537140935582766390064485921058157903808522400008096150823098887975268396227787582363993570475610782957458921194391163664337514034479695903870767461171234753179052291791584669194423542184144461707321996718059316710955779956785702931834735060207251268330904223071089439998908629450921840692721360907382159145262841624399693082377216319926675938290544702367882995725622710282159282963619771051209386915070798138157205303262047560744623217489857446347855041905949640856868775175776204892745212711061007207582834039696646963161040417584199187615155783049221590687690806781504075704344806866201448728388087114783860542625568800748273335539851021326643607261021141783576288073942199935002683214859178011408830011066703017681372940235349498796023758365872006228496832286848442912412963032625141760416951059261148840770976334721047482368444366381789838051604623695232290400789992116650195489928765529469869655622881196166788745101705067644700092053357655834972225750790634425475258618465473904224775905134364931285119073949476083235846709831190943949426786621876712220152419031850998437439097936623006516563400490701213398282982584330171305653837657681683047928494262049329766678498142976326613358036336894779629667684848018685150714557099414404130224157640302686697845635069979626334409997133813658937357604220632667590438389557257354503828078254716393052579885279673997126279418455615012172737983928704932901558371461946216711237328317523137150312489772731763540730474679532723215889607337403240481884986153922661403067467493230048782728829074124860531901838839562612420569348210479605279633411976303503186800090035530337276808204365354031006263471435536415779551313932503371248211717267209599856938939216245328439656273298657159024298544168682609088415194820785604230853348297029081327812917200102972612410113626566150104899012259325201890297626280998108350242432119481601033185607021420636186957938580041069557200368719070391237502220549735693914064918139602640129316230812060766625337344612465424462480143634575726155488512800565984879779835442704032464944090537207062788988178950139493541886519093038895825506643901194264499348442155185853447801283311020980548993717907834546003124351746590438400021581666122122811734435257577964783227683221247836987307911017618918107575403729864879140561305366305391543036037104963057378629525389564310398621149835385470649467402053354786465975836854462913681387076281703847079380070742490368353681356273044469061985399511833418423302220429375813298540460197493338103968358366582574655411811915901633831197380289974658951725711724911279775456769949719560323859386117896298060087698540018603884406353965146200036753708412505570163286013417496945786519745968196775549385031724845139605017051397496578489408950017019256941107513892742605130697896139821694861303918329863658959876570424413347597769118010649845827429741325660775379060821093648573199510956364578508067858767505347646072594399626971844479019588146014447100584558185296387555984291678956817085443186404129798973028402431836779040911433995258553800657599454386358158703254718097460722635767991048322662998892163855153165276398871913635342529436795373554185060144390422921497165371889097646597405593071423635238423230328978350343584083686735846539528129332604792911908766473893612697366496111840576632846358126351433509253679251649906193180210832740585857013327686523672664710222733921357655811623822877965430010097210021818141101943220220236521385827986492576238013352005444631019733108054519763924580966154115923262084692894571494395533310655771321239668723710017155618829331082317569864673767331386924763144048675156318264321519810757669917297582035559953847946435718866016787220937313619659743790161530499127743928097682077489332639619184037879148496129282906832782975899082786002711328693723202263007066907439981566775837206496404715010130606905460331730189336295432518741435836564039916008528065540895253973694245879018284331987575872803581276872039044107101563536381599738077662656666903366780901067045770689606954463407216229126546533182303691273484201616857140784354686428366432601829395476848283072217500328486183400932410594115157259107638841984776937882747464540926997144538685618249198825880013729616734439923562007793334690578540099103897880794643762169565688596528095856848899246776378877802853966685763722385884858411201524455273878701997163872513367837082552443181059657306864442690921829392765015190733760468982157959826974305442782052621948434554587645515389649776986444650055895327797811699214930415108361114167872938195399825604815084540565751259039792286723470220381368406384968702212545777765374051851114394721860827165400009512111727336106674666874574950123012253264826061963515178618084593219772557800146727520982394211003657639123325237135825795000319332938571259964162734364335146952945750783375347062840960824401107890873077055457209921698487849802542774322774929549685035160010415671069181254128669175066902473452311672179574521630100721272270973996030533884100122003299324249117778173736263595965147113388586328875218917247495224728323806208554705869825720354408189729304181609106947362055679594056944165868359549896665883048854272501500779725271481429340159728545682013098085582363194149011593753300587977283080218460708574259289381796576674851050963514899267681650003849450895797504995267958496665219804416798908953770694278573184222295357321898261272905016266912615026329152049867780019287490053118859591676173800256853800738099787911932509189037396430650782812965924327482565720321467488479150343497862946763357939797875103064556289764410193324961961941184509260281263764668032848392403940252505560240219764376395620086085220608910422877103274452728141773362318451536641423441975056436290092057298867033553319938716363512965317020218471575167596092325584981332076590784504177724159931035566842284211632932882795988092495638220448462805780566607018575208974176466573021262752109077682478004015249364522913014067018186906036699528410697255395205427655997238565574493707784540503318672055349754282936453835723959415974625018175555572517473843698765917201931367422573227943980491717954277258987027955452122536664486069830383203061431469727750004198020834821505233981430804845222772616528501652001279905658017254379333760767758026612065016016341084129255295326597184327016484580871637609664906004994796506681796942730977287884565202718541414648133194750555754224222351226155220205206859589280256793457681714564215469268325972886855557837768804962199515880465658531768667190044883827985887411503784346311396406240689500620735830907411603832316196675429373667500648287912040424675850648729686813649360747221706973916870088788254450053309111786216439005905810827692780003855033303773206800810502749557053954249035392870209606376361761931326021603173012013886850673471367958957548687052455944602956916227835918736237718400394203429767603154141510337055093155453745329308887243782497466016542124858093079156029418459292206455831709211725781770995490168600086593390912497300204592793110296974080653539815098647654171782255735941422272811147053015132576975262811105578933169741493682370137201758239458993724309855816131487482383949052846943043971471380938836436803556003027090908144700827946564493975568436839012835932743712205491246534921094851992395167371159013654853576897324970641447219951510373980061582842045405111735123483424948191208449485936130377201072356640830557140178851369812336958273063725058866795537938333920910115353186567979555337798450926506287707246609837212624334600343347720037430157438434245195818437237239697942463858834912024492025323068749224999455863599667656530871934340357549445627228327067679192817786343345915352313427414504251936444549333139687689424705978469840278598613765820428705192568490769182257657347927704552126939478148069520194809522998687811874624208555612004088357090091505121266373177631921640464944097355695758773490792337183086968957494347613892375449828623881144912435557323668326632069410360803629178521247268443509077340747875672516893189659101443431440440048111118425184329390639708104089537579314435847330931453738931038200899440654690820214398546086592604725293879241637416579098610383750455667618687007005225672023250975465281859803007767366697692375660152949875516175301288003400455524354578916483556514764703895239454735040270855744186210317290402242285567911429351591971457838431998972570957127986826081804912242079107255475518600411564944748918138989416753562031447944709777511930078699436302609075810864562611990957178366892367137000059216468553529364663635046991830370209805713505761381152495084290019615633900897348062688073599908976664952635909827692204617104840480658056591964503118648820631948453656333822839708128044843553267728469186437347581589906955385233425006605001558962804307721716313916978635843156125024353902778676633063227453451186763885306319892613543841158376568691845693479775311483543749181336824401440551037922902183953870786594957292041792384381250795096595979380614544369269660820264257301385520191237698801262760148272418478544442892250275775888805603789678874934861890240673817646412301911894962743174995221766744001154724113894803617844336004508921380243740056531456921645768531394451333438420380712704922015329522720908592102485958412495937089298866200870012951711250990802245206582358986187317887382257353946388548752997006688658678404747078920006344226106652068393202105660376423323254734211390852743269241510228821523569557883157116508796715825906080168821296021310454343664589451184916333797830787234597853871628865762007644718070881835054133126684041192029044352174338179645074319720280354567679655547228821284567855231136853844175982774415720640109543984413416344390711241254399575997821703646866473522040102153195790414815688660948945105650812444718057551319998039132894524988118725572651659190944652090273069438377288614073400227269975428709409400040656462253596285761832880402069143714321757702673734936983983703290408446643839038392279361116368024891086142179347253216210351531328818049151453234382402915709791853664519652930240681356307407099857702425922847134619293907871172978039691474561402772655078731780812580818777021053545358313252843495056808436588158239605238384410886461164560309205889239220272821533245153002670057296953166851230894113633702260970416689572948870124971608292246654953618225054723335429890629221941762075934846372917766208709671221274960722466416807227432400873003256860888732180417976503780096474478815799389154571340653477652719065286305897602356965438531900757977680152936198993007433606956026954348270301076023764968732841824484450819993584218846523619756549660043874396174537578938135433652589761408757896732086386361206237599563220218343366075487688199014119822674115143321425641741073384493782820004468197130797822541024546985724827844561860387655843715986904710752421362385576784458140496713071722348806701404155583836983031766935598179203351105322112438264571369170560646485977819539825985219070994892864440918786438494307041418256892616047608703409595262701166594236500884448950825015557955112520958757981599798346538518151058834288937876748093966916217976225504462040466869185929219309520365788516211289340184504120099892801511261901994921781091584617007439769736460402026779779200809053309501165022148643636349169893240200910925628825115421871198030171913151130187888070717850606096752785099100749224575703393693134641584944814728691737148101192614845889844810326594842615187701776279094668836029518095563704583255009426118137710635239205636349698841879606809278619610818249800713101752088986617845396345272674951904913948882278352092468300906793114345500998748906068318225228984187710636495681993374920523015610005804813258474506132095304077455946183197057083571844366703964554069653184853336084330793955454447816870891654340746822045642532264890532559151879297369614910451460577162328652095962382615198463147629304090234942173500104069502976386795618969025735754613059218890257595434640197970883330455306533465046342139401157881536094906457612352208128438584817820046277478771502573251661227371682755351836105137703621069418301374235111013080685453598965170261489750765862535512938283070764066591855533980457965835404824740289025014038651241553703565126079329751766816841504300592703165374616084334823333989367362703848840979106392271695243876957027313218087321784581167230528262523875492293393542771191293527823439477657549432584695039580219330967885654949448479849775128789849835199268903856222705893410483472015108136102792619265655725833872036512843095848493037329262148437057438277008629351253435365890703272670078414895052428149498421537317239669135398698967295846222086928292209472170687737579848197126880704697564927887374046073842866728199292231398835957740003858608160406097993300131566727082758628459501075349654305048382694986311832298085763172463834418395089443058406682425718559790496031492713792195651893177435445318828837311599587612307864286234052247165963516072682946783302636475907738178044164479392110298104206334169772384931148017482655337562256891015093131309541424688436797040288679529244536847662792711309028004721888790948377996700964051022070014898216612995660409179429775636867591695712705919711376338142691587368194271472022101404398491116843066222158249540086484819420676331432197134656791236204522099507784362899596267553758510829817195357735404991668895642432247390610279010753642091922026015000333343275402943941100098282273767114843447606573018872684142842806886657801274908414881613147068219022065289070888336824627133974420667087279780744549106523356809151850295378650381249580639142516101499023089857008963737971794984224371808837226023885038654202903818904439645001554521701611645229935862928456070605730902110699744686116985825748041006258849072535079379064818609143958293407863611757250892521287808765360904682220621695836287125118769380678409047563123802479607527213524596489449435924059322183230192801356852118383775007948370151721869451181063424612166341061019895074324138571164603658478798924788176958648961478637214877324077786834715719075718749820665147273133301208221482761470645754738209814545055240583707556227974765572069058874163416525013661302668140792424580788007933884521247066569584278786734592344697235618774932908188005796148799290550247684528384795318212089767063588383802326762278580174898471298962328185019869356066173953188304271125731881788250475004256906598399794541184743501092923587800507556499757586140939787763128986265877997520677468617253386356670481343504029159363065776151180508342175957517594186943012647674303348827773157412265832028329665678243361627649512582415047887316970397580348646218140947903208285573605042918529776482835856145381519390369706618188158733363588503541527066196483566967942554846539309465009067162381679831556671627636284839600870897466309536879776836076986539348815557851907970457987269712629411506061461450188139353687869014622962057604327928067082168000521166422925961627532853168638287542638248135384801391036381963474810388754484307988774591800581820993133207838888503375640569729911220971079253871747215956977411816972901306380246527493885499529248025525097026251864684258765434825574020779282564835025680171946022492236465417874352173572965735153186602182038681298004054082763603321586144515449876780827287114820588709348741798001202163265465895861913975238891350398866638312020884695090675943232530773775554176123085468678937170705265753161164289800505939501880160543253491836938377980044249615101964615046779268625830108251616019033884153259029471725235008401985117730305808612868473491295953970788527479477556074364516689512579650307758741185690395860153725106564793421140762676863083975008894131274656761813743598799145046677403085769292505756173401642977336289601844479273330601788907723259059258675305117611948732991254212786751710675020113017337784099908088689955706157736189003307447814856899038857161125337516294679883295359468975068261286836628032800568308290325925666503826318680521438314926095038875077406146852545124420876040402458616622032407007599254279040109499699917135446681472310854104245460120329889342042079860182688009591935036839907695201222501815967582594988501712116827911732295502806585600575357724542314003349346639661870566131835488586062315442038366189884586804777578428334200244702438418619035419223375279177517555043109520616097725595688115779651832637554745377095142825080852460660441340762665494502629659923299959079966220379899389715084678106871791374421375735942811609391581920029836137526759780343884417028926168846045844805580537925745354002728376605355883999800781452935485414960921277192181917368312840474383198251583389689579125669884028946681427183044616477226351109988522975868242572967763570819512515214096500667615722983320728123958256569091393960193351898791191281966171111378056873365096634601424997778154668182517442470504958717800134460428408224616785929895058626575506495074891493473826381065478740941999001295227666311489781228668962971581270833796288363605401607340010464448589651677176893319680144775224320818128042127968451399126715683585411225940668262735434243156682999856311289742010897447619801841508430946931403982687230604582602462432605808803237558293950692311927295761720908510585227236110210662643086900843719411847569627585008844562683416491941817879978605971664516229231981663742627653174813324718959431881663990901619254100728507550794714006524935553230449134915082817042316286286255599674768192421057980201506853468250743614128311641811819861891049015697965552237059168174794502684714379446937626305770449425573198919491895786911201122225267425973175189381270290813647344710642002680935173075812374719407718504124600508635390492240949671517111130747101960498694316271364298851274386092325083351745592841322111123069910053901037494120135916319231099137931257459100496108822457386259526252614623025581950482473410077860155900151189150204710454947262092992602870042878495886733798916554100923011642547446860383690747304460499689638729765918293931374085995773174693916965867140446246282837971496035005491929296213387233739617002474377236024409292091263664495256385498428823082853512755057349474971881141689624748825191262815534192518169544562822252429895866296661575449567759575899862214513104909545312908345291664562488820630426235263209034186899050675013748112077479560283799888065308506672102973677090845292283830384306183887344098279874371059549938526625943068685341539234719156080513341114141849578161704471316726171225104522075066357135594875979884481586657407532714291514359340270742079550384988200286448415115335937700271521893663766954012645975613502208833580452495871735608963159870511379116675922563923017893495664011884761665195751863171981995392170356408806166468627761531928014820751411651101227360338141753436759992177578098322510844761184475535213825382362558457828099942074031043633411847919269177881242313374313329029106112138923663090292200972914076635465464401709362035974780595946841074411787067612534707922682707957109206278398328762298566831058578455874674362268417135929550204578551549297922108988330831920602165298533028307308814764104457815156501742118650415604899118243015465654048011876854075654669403413886186811190105029021525653982178255079495472487209074650616957890246510973776720418150167968185684374449764383023295992504152429589838225672587694555216776651252693620847082657718920427575048718050016588112208351405777323848626621841170269311027446308286444061170447386921343415028054129591043224525022085234657408564689216043821423613811690000667261456707617378213610411196433580596463990233486719482653425874427090336593280000893432616106799830131747722787808253928539868013798213147781413308963951547317885336743786844434380695448773994577800403592863892153752292050420982976808250167916851391731724270504437518976832000965602765315227589843468176566372964618823821512602599063580224537384669959783781277653962657859930516750695917506885110945678188939323635740094945091624876383485130542292456836328421910331807012248232229674938953897635214671231685085736646503368606098312805722049742576543210308169681091342743796760571133807709519498403114049965381240323550632247822341962058896308641629920591469634862396715300292381139621788774953068909074654219501910759663027653845859573602146146852637185058977749451428475674400999007809709020325277883153646702113107621086821514080711667433857227312208608472802897773036381339752178878927060617770219504143608262829488529592999169989826808546066111790045412991669327307657621000350357424152951555063961183696887773680118596884230812517995901822529151496874482704867630501781519214047405270611422244287377310286466590756975712158501636802212363889277711692574031581678191324776704349288520240177685389563641293255417882329407966001579089835864766064548481178911606110671755304825361528386754789536552515207494869662434963311169372841657676752843922400001989145369062155448108924178350882551251914314898880519289477742821312506493598044642729226769371888641071760130477453991161320594045506040676573375068624923028488347265540444749283192813355920897316827310182753919987914628873854086699397871934695051802302239755503289794918163742733697974890238414616341602254666162557614323245783369596276271625092351308899147677471541453529554757598733854195167763516069149886253949033783183329807564703153742064597273265464536063241257019769340779986873617334224462804892437148280647305249523383507843655226970359808827994523353447620320764091559828122541742764575810171434002033999249832762724351355067225895449745135583938973141549908755076853765549362904733801455092901191659809949052649951675582157044747200903385321962412858914882008299806113158890887080628465386580453311363557074492318072926929290210963861479649481817224925268579025599587543513985394840954709907836055291702730307299829310177076329655155997418044312201078081337995450113210493653380404885051636322306418787002266374612428631753072693471816369554400946581953002784081799846828268432682738043208429820689648457085357940855267008452150167122298302767033363781037369716131075575343637640942377333120132230004139130345901744258673508699960757223098191554814848716402253903663018709561882493605019000567005111770838590478092760079116590869535874322048340675310406810279808229114966697416086642830227732008000786538556877764037619922265531718759295068516330520315722476310185783177532234007116196292415703734817476624901614748942421747023014253477877425345472749974353539939476535146958505220627525103958634599240296102036151597733507933503649863423888917967136026901192353029484896496224959046114654981268688441098552841678254360347951678899747993322554165494162208548442325742446610783171719169937026662167740647108978942287261714415770907494383289576629278277241932776080675781607238304564987487738067591744996720840826057464764956280495953328357824288954951075601315531969966535756699980242436172681718123750132214470432882491276283820602641366195712129131637910758277182865480055149263919257077563960984697674521224225014023691455447240409374959651669511684529039674418019511013181353725252374775350380250074089207097657346405572492049268277726484678879948344418529276419766877181304937381292105209363277832476774564844884524840093209196228730229247936001075833720850183592515166165384586490269846969126037060923682266581524344349273134775066524558374790426043858317824165736372531534953628366905341697704951935739213223971192977560552444915800730828284558744853679656021428024461881909946324179929765725970514521047217856709189589710580148299451031605865991724295373560672355786470415246547799815483790228560937920736414938977867833770171112928286305906505475003215162601378172983617638544287000013811086497941080212055657463890680269839130896049072015693519176618936201064785893699145581020164018326300470535959938392798544570545578546630972923433859764966440729964417765182635047503920698730673383475896336827610134444365810749406385086633692378705134496510721053878680907223265504729680707077072348050231893908492283697418130794581987739037572910029426941293510846278196315276418784486066786785028146934208040029238480351901086822166916369570942395045107835313241430318359764059554617842663864843212736132955285722035206671015478165009253224460386265376588431556385578260267752220679258599561309928550702981839988401660777844986125932810588802523930508535190416312094202720244709346398631125955702745633313858833526352850798515416726830381010615592825110002527361914819004568975325186865479864107037978167851216783530278618849904457937029183083651266634848594758880115274334011848099116783575071909621494706065272231966834582784353445893758627660164873458987330416894125153924613453436104255781622017509973020696115619220913669882420203597509394617690449303719285517505017194022240391921154813765677190013290837139778830675048902592431247845475746254082401402401721579456805253618868923607797289592143376554583725270250493408042386994543663687358283535387363375033337713919555671829602503281159879531104181001185395654896934807515181320813919642110331119166214933682912567199414401424265578028960326162989398630549844925750591853948368745163313184560579835779774498005811461785356804745531363111990154475450491939312948924116125174570751203838434959496351755427222486689619946034293255993022512238877831578843888976349297391579244288044553007169620499219547657126796822012911675359969189654286213265105694619297604723283255619255484135651018842161675646432899219888623341636367518194783354304497424591067748441099021707752483958216292413681917354305223885498859830249069325531225873509867711159893462835293747027202206912037373724921773601970797897965358806790517511238781111881302420328063389749910875850618973393072680530196665419788543629489289101941617458474861219483748391945328081568410918434713267095956982078468510073075387872212997910760103368042485765073967834432505412248634430136538178211755872162493444558215375197203704740642448037129671045547979583073447705003644282981637742710576327509708312572717857713757657543582034213582791612647054892485415159253568591006746477589290125671160487963130018825026784489577894504691339987682245187351381274138756310701317713277317247873160907605680484464838284801097631554660254374903102761374054284719103573194776364665415675851673523875592071929392698592566279659649082345381510997715255035649873470938884712219255310774944156991950481730258574638992439230291987971409688255627389302775200671928598989897856106753475259821393485609918129578104120349865341628726170232655756077720998714988715656411095464398028678040353860643108311356983480487348384652211775951985251191276441368148582172923017124123744688369571873836834967333423322316828764983914228960580993685607176889259440810342645718078231170099094188307707357453309476975313133519105751359356325568567347420000959023057158873531955100979455875560701248656815113988996400955821234058694833370916065819135025285116505163944227720133898999659883079592896098687960739878487538073607869302381545985793605833513794369325726301980322716753129890973187958358272821084777344888310396478254273418106359703934859965047102542218787653852292887598259771513321683438417060707910309526625385241047302411741590600047258939267163392585490207769347982176109608445184239757910033353108183991203261174866287059207708770635192522910754941129845869264286331243420140820434244725471729079944979309056562688788651756375278117499415990722266055124824506386713932104892578561590302483053297453514381831179453418517870157925772895905258397015316155787044376361879929887158819017578211055406111235662152125113714307329269204750274861330351309070822061200523629790632769185598474072056090287495662971403615431000997173343553354816702858872121259290631583887646572455316730503215299812119365026736917252832116339171322675949245077023465421278666640653585513770392200515995290691299615121582015923360525000077208820940694933096357249180888386980448516888176947608111755149877606362971270523828267745653994220508947171431766871102311210286740132910817470548270969759698089467353365587659405083777086474833839448421832008095061665760944100465907845235450820835274368924453243143434808991286185895671563965276034815124777084638942548264919554896839724676028921528356132806555706859339765836124364670636214820330160788726375257994515049011806160183377263942254569257605364834777042214188519049997433525046512694726285856959296753114236442414218255603944554064372357510500515744146862799107354441306395460030777708567577390661603925671958620209366328337596188656346148641878904684610650442174870063058881800363057778815070331079375805217829647501285968588151711310562528693441033476182171123175907589584663850041165605392491274496251547312929842685180866842317399329179631030521399689643686730461395057561078684708489543216370106207538382598213797744105674825202003652820115718256796230624920921273623261775072909578556356131619209552034269201281789201136022492486889080638579427342824639453543151751999986848436169966627629424366070481973035378388502661580395661085069013050084871456985138818219627838272205012536897650819153903333018158862880452363032083391979219283987574538352079102527465873838579144527607206428953182494876990072834917394068347529345380540299535898736531330334823086671798291789840887512947749718068931974825536123007126019249499820395545706806296244306050256839412593667907420729693846924809145360440522917140935101047712490170332001139632464929542968277183380599685020874212405035245048826339093131653633438965077979673906911560495346468272752458316312259228534361625315767385711580850174973218671877155905715751303850146827490276830363971852347599334957798337038990930627212063381491917175209345639629577846149634472007741951931856073552908520866541474722389510117159131864254692278943273664245968339927690038058038338673691698900339442105392972722608636024077501616407852544375242521501647114842911980247752617784517834438666608942200998379865247893547769581132327878501690801130764696772700512175900136038486854223273208824113529470616120855363991047011843492732587184296507919124738393874259382832697761159499534269637696389467195409847251889640779292408070343811530159902598759728201514655016202556471743804717809821647606466067264658260600962926755222677432417744888811572484921140697226963443716712826333701927932850823639851467815497167844472054142618625744513258406363294723427315040979308855513782905874522194389311328682328234128150555718611080777366204630854106619317533049472904939259003010284714492415871647102313795237486768791191569832727796162476598342455913442064431285955631361747677396975760757237973805645654179808023243419275426423243779504873220721932467259021223740686254741832513107070426725941139491902250087612119208103828903110704727937292110275275722988033758452951856269322956503678230386845899161125164245720646700123222431740913379248438073090273004149436588009159133212274859688891638633587177774315633891076915766870361915986025166018546393282928404354192311346615522372366220176246171474362970723400982662158444598654522713270393304602277369403409631502569405987221698342430729564362768191479303789068956437908168225670874465891402439109134657898440823132805488766223353635789049786575981513700816388876151649529868280255691699689478623325296233325302570990393073170909242594675542560871482687015799285270027014737624992384935856654436947663774327614693861787187949952701426417805680522585434058425980182405251560362061720317380216185287999517213117107100166412364901877007711570270685299410479430655209101062678794405440391845443751427033915617503686439274535816580284130728242120525109552049161148114675778781867477801779377497869795867506465117798790050765767326040514178089341286026718885199215634772971037875796800722149426779586158951016358056318110788820437874719089439063102529575847126334741271873468629774593698140124169017382211825262583937817867271825241364264305654285148484188406420137317378207296270060234208967931441213410802094950421072995718956645787558018463920070671599226609339145307606824177771334593961174821330536615787588978233166138919243990204306079529156641251456264642580954633527941041158949719307195838373141341186469718990404443841225029522747500464256102825225302630563381722669215691279927984193181650371322133901922848981281055419597177583816393406136816661335862596815986028752482704318357790045802101332196922297939052991204130230898264252899203567395358895741545032788567651568928815955699277165830463633754031970075945154460490229070329635110838538867858781265169575311763992944616050505038948486500348017934520369484416853433614001921560998910042844893057912291794808014354251545749183298900603330795909591881528607581651992998524194923631719623890393522216498326117442967826303067468179575975952247764671042864142133080652633677804419154807026804757817306893667640646726213093390851943305146704133423844762688202655701905755882959437547250860223635799250063921721009135844024986761427064150143090165022776477356850416733998466903020256153511778809187818754389646030926417486383230898971275163911985335720917259026494129262689733083983772963580783966563174601125240408081659292706634867789374497899649923266203152069064247497593873680158054850566747417577139677334607595237938071887214347680700864165954346142900024973565650851326923651451322053817973847624807832787437279751815623878498391009175829840151439150215408580966015388524090604598704557411337585097287360024770068856450252463989840417080244567507499476957177771240720063093532423662060068929031827976491970723811700628562817784483666885766632019313587204652159907861978612870961941821246247484326323068905593539040472067529869592499066429171633167504485164393165365087524541196351577131217662549034566050531198499565283022842556012650817747743695747508224459104312217238745766132615237970202153555543094202659147835686936394577230744523012865837100749995383751087068693427639364852029184611013772998896525930654199989406542765789892646628697481783471969682866872357554458201421659923159172203564409810832625520147778452371387399826698792437831706170739602243010918670479498988131278374552033870594174493780686678021301876024844399631375558757335703251785673350637407175349766746896890885922753093808919332438785627034878986872822996221081247998101511726943967934218506193521258731183218480078594068615933090926608202888340918774190196829200119825888118620824362745608963614801840464386116341409350243392808839679218276747458244209894882618898601152669241627171387416672225360882217694276881392684106991878557987119849150036923121054237750634433987093081512671391380945919952092948674442149258058453865066653939531866250798637154450998000494196613203174672768948206446708116099612853575100956258114443246366381373824807545427045872239238663928916959545535915675784881874247775631316520171386848879064342281534568932554660495941935166130478004412914637584107532567216274929128785656300224961550693336283330673293942387431362747162242994328390083260669011017817963592679986630165443005699584674202607618901131172230287327127860074483993656704425879057803203996364188651304540988442848367618764305209832508910829279214737564949486492224855041381072630942985463784821370559860198290408794888958700258245187426990285619442629637125007333267041625324464682889585571927136768565506628316337595684810825455782575721044870534120298552130354652440039214679161075275790716508942087698962833752194275080804136210346894090474436582177585083501553223869521655118751317760850913172335169943894997009850149723759500489588550699608255547360415791728719470045831879420012342254881675437548169370372506293206956441802261790275070587337169672292411218467256906071478833882107877760268766104783963986492485051054842803746109376058887574857202792432784092947963689157912957825027707831834109263879560704341955185819157347144045497050576864715061805944629604918254815952595808648577129558218521943502862455072098761167835769239891338527720787660273662395332424839856080542880070779574550097026889675175914674582455000968858873897256087492781335718260969284188204618960806128026748217873844780464478482899467971446766560307439389359226332071242097131859974715132526191788000354151425514226242553043213455160993692715565076619058348895529034088639931834856404037552615888645030587715792163801324251749984216721846634546321615657734500374842129928961082120238351174449307650951627184398991080005867252229787027868789326560341499631008018279135077697752708420287556238332663503770587337849018215851323265547044872494579000673989298229250622742906821592970940254236159631550978992835318529609924153749934588178775694571220289916370447813108285653767334282882463331684261939764200104249187322305030990137529822726658298819402930418257196226357702107898287984297091029454668779765218399751542644187201846161675655472214432865409776061169910101493139163462524290474037527545450816431941699190107569442013186582053296364837386865597054902182812911692861393875469700578871954038622695428238995572428806533979747234190998070777154983627400087097198454376173711777950081909531429710080462260596504582816304003075983129919694193267147889489962930640976825992554834434666855013065985740656530986492347667791676940459717073432698709427705365995257335396367051249979903766453653751310208094476369945923444158758422999376116158567725936867157255390419958569647511101557358147954142437663029183256033758632236588394915610546711026743740052821528808445004147873593862663858268552766331254451474286200079903776532921601352240045051224188923412519297175555602877378170616074836304541224538784271174627892036778952133910850814355301154489339097019641048945866813118197134754985278335626067732049741015595527198669129564385612802463679551275284317179713374113801120375442539444136034508208676544273518436301310055120013658562316505430817609494486360854515029290257055977272707252396371960860814655418924763547169470935851982767715396475703422062031274499701096496720797452158806357076032696739322506225355988407430511571916125807686964181250728274204900763631488921595679935252189125736025794603526256227805931270140097013773868689707469494358516609817055466435280458016426543827980431923806319078042162451164988108839212905720115835024418475189263917481306383713791611239648589319147635481329694724802201688649504248456238797813057269392909328502690957485643564857545816822226313841140844656279681873763932347467614686211360228726128596019048751732567948519547103808048976279439391887734688736446747346756941734560133294116119545897992457287984624460458092800964585077417354290911312836053565587407170432837677438950540458352718422189315306155934375467207154569592373469862797955472697216854255900575547273459217834089345092552662672595875129124054385105518674567113212245867997416713170614963552622312964935400799927080775773597509518965967247547356382633471326732245289347290994012838286515632710764252443048476315226858967729709437217978014589451775872998604600558598672046746063922382582304689643047410054986931364533697621013675088628110933852171334812558308340668457844227662980091583235513116528104431517952429439252875679774807266184469759299577428565007508410909467638498749595613009553652510851502523733930633560314729977946559853443846795007782278495929713353065696274111944084299799255633369343928368333275835649643229710401132186562287510687119219458752050044435576831237103585830467325591817034812502577545293093885396845919032878612042341052398546978694061017951484469684610658675769516447045026821112825498695541675141358107608569293287563783108406000389032926728500829602563436587617561554989558400389151345943426691073674109867785227236716049459765949175169550135034308892168056018459290088925284245594625702768637000589472534042501528590881365525101614145004849542023731041206700861701240654954844846742610387471006107349519108165424667574632497374992993986744288341215857293826129369162836140035594549429581463582728137828738120079135024984679268085745982009991497925122146990255890047247705255649074895903207386791716730684802424725393640840734817378973140225372381024195582277603118125970927100119080952401914802000498261230875116943923173085677195028799065692551107269003528820019149675532696754966109747141218364883135035943722380210137863670765312502463160301560701487501544610659636627483866898680332790119575501998449560660354721737852444357169374485871226229780623885301730468006983177739665621592733672755061272934241491030574320918793102227774600698393117036377674094553574261707862465190240873187681205552615972590731353390421937958832867945263125133500196807590694543759259481730920090534487981883708702041802739188176413213700469201844091973082447486134859470194923202156854849610673362477722750202802063939975175978147825040284720590897942522473707301606987000681424447601447578252098998729173101826118620078341307218810917421719445502712404083825452430383522285103428256648564174540058900041226807990339496060382564700540955584897783437534317175921964989059479174327726485584452164971769774033267682649979468241806570125979319275275227521287000580976317929902742471940537279782516440866754297777627162287337158374921595141254853288470689428596518521897498747385626725530051172108789453339424139668410737280628602831896973986604000293720240778628520315571179772881837387587516852424011806737476678513307557876535669274757075791160994300703736452422764987345207977994418153653391229308958170199775586832033883919400243704266649884983246226886711425181841438384157697297611689086262489782773492899824948532032074270909774843426978021335442540577307060719342596711357682807059573633143448821828427083061018213899193434512735119875453580373710196485472088592294651753229684429534199207371442221474038070440894903247243911908885801734471524169334634000339608367504278310633083805794815215003452260374020740222083338443155396551527824736208061697547528813399451312269281220901653212192527275400239018760786728582116804606886540585797362511676150782844095344026662123454167207747154728513518996884759534261220573944249919208620685393964883367431187363166630077096007489884440709148290209840919457456600562811446775722865370453156246694025284829780672317951419011635102554971057801147700827450557323661273877676620735493843618507974492570111511746743093808709266540842430362899682498313570796832125033107895802570282321204386773549241006269339685315105483274543868567923533903219372719844866217408825736632426773807325285605525469947395836971474656593094560535215743532500313284944129355736185686771955242232551769527602212998850718989489014771185780473802884477738469936609826680674094702645170558297880726347247282873377261755157784538552209128072587076423983616776498385243761051778329190291851612804655344119048447967952774939280171074535459120074456613245602778808618638464552720418830927709672064548947374312001096544593409836895984262596938274807023404880075762746981564361008534661526195768816895136578159783540257932037061933198823195854870471942341849429638135439381838658657857232111477196636583259853540020819320341955379444671598214127612770872077929199369838068330973104639943969594180776414321893802558892345362547573954467537872983273654871128621328547824548259681170547081897215936612488791474162764739259157788824976151521851182341147442343251298230774449614668116309258149493527083893998600252152066751695311057221424762578545367514182876856074224031038637176478087671099121826086208485585054670338116476053612891871440345205503325183194827226027063120358269295913462044980086517318891093946506752093235312064405317482423962399144484579501096532026943847453689546704214576615189543504519867308958326511346060449220990926046280246008902105331700193938407241133361814903609228504413993094971207166064605654471373607079054281712026905044872795226776186048052538075536656139269772325489986073043641201921319107723115655335000164247068606024483738480439398599471355464292045375562204953655294328369160246469156606891437294762053419772545220884631483743150060352454078827257495570663464701898714291746874646850151460838126701656907207867894727663631813687264710026292831333278771434704245110368030395087816353530559913876761617907525940030364078329118434187893573354866188127598487583541315275910297742763728595014524760810752270150252470835293808853230211088720970100275579405714243801481515017481430364855817524616611621087514501235912889773192045509749613264596987638502687303033142173483538221985735123683518702188096860476320165261009948268393530769035389591988616735801709827095521302745508772068953750404394660384458765280280250037212090126858591273858060866373151258483465331262390084466661497691812597423473590257137141503137835842843218854136509150651576297483536096551925440779872592371366088474255827116684141022307784121626932408074984629155557354075107738709691536499235710770416271237133267036312617760908029302249155969025536971856096999551392360872771268165998708912277689912192380151688718488705197554807647595582329539181565946496232559322808545531392719576918271765395344641736942497983009664352170418044530040578255686539285098542956642654036420004055693614569402893363866530785871337833370550350091174418887674696580855204509125478546325905644441748492056780021813723737675359776386897808434206239261196079159750887132927476107313522690491347868084287532656715935190020046264275235579882532436228412121442235602995755480218357940603442758976401381528968824048354251811365757233990887947749828276309935842490830337046077558007815704123665717266457256520991859366231140215274413408562672263587210410721257834166459531850020653399975063830383380578279416291845669363254564106002333891078230228950026810158478548637954897496545902535226914658570708417078044331479094572528669314687918287321884972714069083159849356507514413833782459269658705472772841899032543352053991120539209303692994949395943931759961852040526836670996833627116050991896206232813947806492593847731696299605241552525509656324918084228197369830543897310439851070142369489462530154701164366995421099576075737963776188259746980181458998666989057126514422640249600368562184975016441762021220408205629134319363144771859848970979921142951565131973289526270435098028056763105197799127914517032287726688704445741339945450026119926834297075969948594670821649811847563090092798263158038178725463401473295688445441660342425664101004605915150975218209117345143694885444337955036676211063526235948317712375456536330762725688728130791579259286069014194014227904032215622462849251433576368013303362604381957079753395263506278199735904256831761399399234881876313062317263902407126019241302894582874480147241643594212450587607317384740743153493164786918747047227803578512769682555196424962047839006728105280416795936758431824025698227345640266247177036843665020303963311789735462596681423625973427192257344501735323573925112309767752779842847363215812838146391768657051328260501690033266343228981372478365784203452773391958894353209181139357346123525094787818569797212994053057527623616719961628566650983212260738145639325632213101911842267730184218816866621923825822454883866064450021661376537902171554726305551016101550348243455486866029392509736907445679407530431423035087689638070742364217318240416872056915403377362315320556677712300364721887358541096051282811349343132134750617864583236902887317177287373035436592447464969789379831629885850068078614238530155405660989437297420578193722389527144872357262601047680811068006405682640790025078708500132044915323953099579109614761201263085110671151018976100316004703633747026868243683007368941994404064667792079031566131427016791668182310573087759800754561062973219583918921924007382167374871025438425074271162595416162697563310465308126109728843481321738238372421619116644710958183331865787862603222821119606248507818878206645126324388894635608795708400007823910730353509426329487343036442090042386893537383787061888493293676021964075367794634126830114270853946721565420974379210793298015517823482585656778065853231698731143851723584114245003114477117935283147996978414416795593194415788677242743270602284142639126051219996318967979075187885658428106529223910027526247476275919102908472095583297302704206285620827808698311293691358713919528182329347942453332687769981177604939980709071021373488767956505316721038470047048046102075962162847186958694332677014805482317698812699485343728866134728336014275140874498888488665145123529793576050493271571917977859475352271229057376044460425533923400311337310866720767673307311762749003061588525244322073032601080298539719672391747715119084211920750417192077917181835659772025538560159133293137177604707881071125867917353586851992617784483810991251977281235551984832804782826689257737775417645428481682247313329585870498990547603583392600609029811905242950966977037953077345417389391299994923582341780156170416303085445387070303185127859010182949041561017774489697102387604907018233254704610429475616800745352379237635848441014382144698458572628262696311198252265247536237218857298101917311056129839039498872327112591064414639583826949093974692801080561325545452612115158593151242650969293681042021126226722429924288419533452076855715275293601513300238166983457883896275322457763334000626268582327270916110098718198087397172563537323309186111492875684836820493623104309288098902582483524718891932307429042387781266103104522995742854469904844668472494935710093784393938219867213943255117881709856910910589772562151161524296241809598037631888931987499432571161517562053629491448058085400930054487324930598276179792041914786121975941700372095069976400260263928563619893603998303302323335921872497642842851025947360987626942267343776199763047423601006874981645434096013480623479634131735405410673949218098534139817971831884086154896980155082365817041307216488040096302151810659241233974159237254795107167474902176332094776998027841427615397554455284653756153080770799530889076465105908791769286382710850881970162879628576011800206339879912967237419636779100409135182824584270585328994427713274900397947434633726643160306533965223970206694681034140339584636822278804771912397143930774749512126568719173848747485091937982324825231716652032958750355976975165244813245409093873520775749631765048747035280455246101401384808909549470323829916113912579879565187660054352616378304329464098599570626746551803175714781433606620614914620570520827260042351671130278761226055411076980022530463407376714593153873375479859843241615989881294925749220772241005383662081175703084071008938397502510515268885941624966402865287163547816364936848549832600541233501303137015002022415054348059852131476630833520288580301027056154486493813209292504252620000240688657618411649320077524466886803745689549250077345880995706363343473078208939455094986655800055553338271307656242953635866123727150253769578082943133279117505854493709422741858375023293795743182567744261091030012446874556644603061511884668837374781246465149773262282773800063976560636524524530361909224518902405968134630495886013439032488589357075861644101184636628054643396002997460731935857737234999329688583521054093237844608543639665915963773944652011524017041920507246361154488995219370580699317739128465364748304630753295067676112942739186265568118099443805940079246879651076901508136472813028393848873503731083281920330809545443178068937034847019704686245359125075989094736629491011842598611702501430735995010089424327455769895773625584717240874055791584139746343756361074434820937452099436493281378353350478259194659872798998824583048407644133059305314533140157456129563017487234371972936286762566149698550631335027076848349402515958425944426575311927071794699390764239462045255735400146876368109396319849728716506825717910494891042773777762168952916901743115591123393950871602661804330455108708627944317466216898163091738960445893433833565946985158804418747560822007611020512262589423821478606551277446507764449033894041748753684320861559659384992300760388514753616564995786903366465807150001891589154695226226213899559796572632477936489396719925524076143326416100568263471532098966092120619694346148883013321023705751255376686005088242708539268621219042544203919650168089786411806575037824796399050245533346612553972082267671230587755134699815470314999196662408515391905017068223613594233144517272418458298949120429604858819474376057456156042108986373695862609084459850037428075194352093545637666938155880218239964436090192556816916071840979442955812459970749894936804170432497839279897864816360174159536853592589605332391394126636625551000990530345636476460645432187238059471874640675508663077310355255109655905400930731030115517611298866366842539633145312084286593815973314816253235033388530409551036216163430855315283263267905846903849140827257862968568250955995276138101816260314563559354227998514384465502350122335255764001456284923687462043323123164563132696421751013191610464019814201279141101929981586301581752403730457919171765237257364260144095155207402892425162011866458391899406171999982925560908986887117980189640415308785826954337247604178359783584605573263254005057360440438774576149849102535586733253927437173982342440131489809536119321166451763966053579514237589078379794836224950231435898625648588336053784127448289086631535325219703098398886188212177758578529113034357833099130741719926023557422103686764641753654195315069299683324295806503611538947058729681945260408301543272911230484964513634568174315845597065057851844052107050357299594329775243061821140397719511298089502086058951908244497675147835915537162558141038384292886187612718586387077535522194682475741076204945384062657345744703740000114197054526886343773378814058823199877624633052150479346146316913573616989574453098547771960260359441068050189429722824639961582605487918121569264335940476448679447111964323589991219980252521068173977055052582443837545791342219004924054386816901071442000422858369771476052611249311853694299359038916230079034802714269586504836003067072603110000802295310579394084729513755435293551483198678712672930849032032688102809135740431063606596292260405483836952715907387290385977843997069614342781882903948033156482079295760830398280908023521688673521104991490215129715934144727663432844504128358244590964607941860609123824212329923320964054107868180805336185381451078500622481889963340969461840346760599654356863941278122264992016267904784706694757066682558626246026991988350618420947003004060114477911500342448749103050004364768048225278802434049307612329095658858754834876492126047018957778668982017275561616375215312207765655186963614864637306158140782360812892301892921172932170695050062229450942306276276615168125361828768341684796628229625154327449718105073185586474013821527537896209544517886132683980051838121485281610755657908764203484689032102887419559504464014069800574191513268335921005349711201100935821398628128382642217089778076945995727767998192801862481088345303113480178407536812538342967409861198908957868327121053318774833553156613501277788779077399679419319674901444057092162634372125806074032263719919367192193425558892002731406335856169980134153444689805994440036581663148554488293224002097009820894243425101461028483862647228255001233956991602953479466316836766929064531010487587962480586031389243724673320742630339162517499417115588379214564173052169615532099247944653384464153546771241319145887607577036568121132332290889215568608710171239903304220741841294656896438699101982568204194454790724126002358233333636021013210437785645597909557023163622352941970922473884825025429525855561815634531243212955475156135540933737893429060135062361164106884111446804713375543600036315118113796086498256650141333626795344423047213986472128938303500081541654436002921962239144742715891075140863960396540386085170303558069330758408097087367347436262662931618937350300889874887425079639130165015247548888355399542982073969769814458375165663009797872687521375860918548387061527988400264661153323623558032391112325732223441857581285593422720247209542208347833901608309913457651507742301775368937259572592902473878617212003309680747463068298690333201895976907801082832388231069089307426060677453584431292822959869082676563474690760355028155912322945748381551450483781639750384454013155045999638415374782923487447139511769881045101686603008403437368493426499800539533212168042487914358602616336366008984442373652976795634450314323785280823810274930160342822107082219668870167324164037322865705831269764930634805928178753097956903026666095076042399910999108374674600584740995845154185119507155740153609517664954354298944642976768817063853806172506169769047286954305461849265141695938771119332753935174331312769938393701966041690921256152202696691000606770508413560320856580348784417992560493912327563425299785830523823718604893624713876577921940885128355395792160641935547979313499529191436609146117161117365416742183985073073955960522221895546616296577427794698012969245598856918850619559864409256843102251567377402066460286110588347744173119248597857994120506443866545048653233423435894874436526898190423124852445277568835853355106634034756924798444877712581204702438175414842374247759940187023199606188668003107136091565330558295229293756782294494595241299518740892633164378342125018838519606336617984962325615009441224162394011270445746496123229681614804958925737913609624089348614222042882054286295829963535011561105156327704580206192468952173214736968582055744899776382563848929915206631930779344513353936653322520640185310375857076101116057136108984255292411285646451460385248391600467585757194735911653277265532759729290136336935766953307323027426315746738166302464151446087278696127475554693511431440984652302253337249342276192768255386306889951845323100313441288155311262080831301839244529820282896774385211778719077706652002661834198557172801108828891278935075748490249289785392612437653940425648822156871220844393535924827532603960389537244107069764090454521205936046835002526133605115246128250740286145857404730253365747988172746082982399436737786012695742809411269694391477457521938493906916822257913241002534059514114129396638545420865908339610687411413123784394384056177239656712110292155687233091638606260977370840377802334735027360013530828896201949255957128524164489081874123770032748158052552150575002789804182057871340707987193403950672789530807593438003734250804206587838323662532289070550739077037326751208446429839818903408942033723823591907222438926695650275431401927484584855182430450136123751081705243764273674032205181210591820765593309235939514275033017486507630468895250425078761102876388113117037188648011445845315311677796547269944330068484665078925337500835871864416018064640355734722335695483114716407474230929620979123525892709614175203176944975201626937474195350711195173412462201401384063784470758066107827067305668761771938779079481805463520243565339633263772443573421646086867695975374549453493358494022400949212575719524581510515914734305023275887053879453096652571509508402013144588298108588021291116301057705530820343268033136991040083801861725297119010968969095269006079798095730546477208512709058305014046863266290337468589103802884840311031107201864358968653950272368309617310444375751418055583122889188913309467925414741900838002961858461241179057891284211491167359208140749880689342366021277330006153073975174143747725684091461856106687212696296323428724526317119108357036667200799929297301300241520173745409846742572831579960645519290769178810272378526077636217506880542025144398799494233173901872341151011392455726588998304610710447930437299414782202897447937956924200531491283186413443989133307953168734034095559009185594842224170312943667922147491127932623742996821256063000735872153545094618920897464756286288252614000355127367899174094830813709124830515176974365745231901003961396474935351805037511111102353998238870061280301506637283952505527361152798527052704531830103858200341370726912156574631982229444946157097093792309394609846177347699430724537734681990656540420536032641347406506157479796681140337630484657080654561225044514248049206058600269866249585276834697017770115965594600131833200079266026151330485935793434829077360970560323587835672710001161333621382775867686514026205556914757638534020796075209278741240348807500316077984583653602999263049217683908438722530432360317486031456587513317548138423672146720446408783319557258311438349819185826269531128256332871827366898586611507011179490269022200910310016312167254265109408647278566556004860214043402081309491734927641424373672832606960392137934257554038260202638612879717248113141575734199274291829936344462188185301750932106108061050059641869263843061605374477221571430791932279900353813082341069206408030273287124335336302431659495377473077887109147621328602975879106816661634965006364624475603347148962397121814173916391952864508908224766836966417988174895860420352961043184956125089261380600760254338537301531117205642156501197502737370091016047041323238556690635437499340131389355685361087328879330068591476455289253565934127346251959504120959065735800512462619530809234993734800089886745708163112087290363671939102980819580059990129417009168285944932242617749644260629600533167421456931285603541985662784889152764789188698267806161624383331403563442167973623092362484134121752949977087931061714821572611248380439439694003153393321863797050224405532747575938475571447824391661447751335373546850296384439685335519323573772756868485112526386640202690827249726200476251902977032621876297606262966760533228090121966797979925948078137299812115272078256892800547478146227111299151328507806893165305729027856730060030780591619981316845525278173709942436100773185809766280337860330440412611799043216835540783171144423597844556423559308862264271106344853616904819999773762385029778850043989353104488995770583988891815893932219065927269449372090661434185120165560736495889541412667673503818893471017049831066132538086758020621890001401365652170528523942551401040316731123578798523518192809858400677517081182606816068520234685963429371079062504936575744930208984588189393392362065431882137060106433038066447739496713609797070299452424735439809901808303754395085298284808313685990894217422911449879296116510211202322863810959960148994226172982472445297132785090082427063230016870985436559819357583141473747130765586098158658263902438125518025671930672141162687670446952221485860973713721271916758951159556123313597414345796164361230333601078994001467790710716820296097271006320517535426000375581777211967409604927283061866933775928426468272008074182558689104938219620673041185248512662970953610336598018602426812152558044103282737724537752098498641451243669809932738511056676899385531925815153333713488216529588287865866846660761866400196207365179939531605179606391374450553799643443082257450453735773017922570150127127494815767184084280514290252785133554726417385581668630839609331464715951359221092366292144167881671317362312603797836536536746404853484632018356920894863716371264847983005320732778739039192815876373377466401914239986205865241952415219367844094006186975449180084529319252048239485637823257120976685436313082270298294363867723633781081176340195581808799800649640042872003370630144561203862288366022788948642088836822996980581037747741203791696025016247873046806672021507298335842051691153656984433563295182944485317039602081747031975876241892369803533716950830811008929608194455729615944059983957379542482877756559060321804151320224356629315453485320349794161739094779684452609757374343968757505024577378117081815161366436855682294528890476074015765206481613345843717958857076316752532203020196974495709113441871991183976004625008169476380407096906238573814065998528499698446541131611877680157005744870293019227407256879912253712410093845623566276193257153198232527781672447442367570747064227765689914151561322681351363781948696297672778703950457980934619484399914865097972451820948213792071572177298694916946337901393231690059374339620094149115560589543176777775328711791592452837222040921655381013850820004231278200070115077751539255057217735614526147907341043029733444144206789155047095377350126103384875658319580425253696160186177592231226648196318133948339443962635701483575081495634886286903918877652188630728737773909449524930303551186109712513192462045973700769109095496313972616579329214543456027091668775491707240178999821714380773534881458594741080802888435615666175378816141130318086326680780248188517267235675287254756967910654144179446323962102269922671454484253719203442605637243571446638706149864027586903788550889650870335278024468875231840614522551555564446744833996599816190713421950807381745171383053246659776601863914335211692687152787352834403443795238144316487015221662634337139431276283258717475996760123514855693288614855863290875345538731299601263040026624505932107050060736722178506624179413219891847102333153025401645751922679728504332360174088390057751273567493130113775451434603396405395327262884881910388737241721296068215727107464687981679785222804057467776098489062688308997372943794947305682049661598513846057078784664373344388014095698032931107249153035291646639948386251676609581237930145897156552753773164282961844013156948304151386228496587868281755111404861177034804267141528790847949392153314587787606929042598204469605422957800039317147181137323821759645536672378256570769432199256179233300052844118560631081482956164216523318220931506416717776046116153375529115677697576946882635400224413912477869748478686859142279503517258073076574836851299901796166021521902298730242102732337185469815793248331495725621819956682374950652875761597009691426700438925741741598719154857949053696874962038188097886604889854150587857263464828109793778392604787974169988963117044050444048146947576493066750712702629545236155037639865332049806361510670218789116731125988325538298117398661741902706364798956911079446414544014657804977898334697804548182607649017295911989431955735682979183350906948878724663373974218592824502915824570756912929804556666351048570777141532240784330566120097313066908535804056533653652260007597812307230905101622056575279957968710630468995110679861230842159092443743040837920472313310326648777177554745839990034867520695736765709830634744973940185887363584321774251729928781855828629560050237048499899239868236993450310323514070230397115206551661539709446086208192148268669359930381977577870352342782403084012762248029000650494199975307289386277815314766507973076056748713281338639425119189091520405629204105797039610239514578090297750336527740235339335720434111154605365066093098697733399945915258426576352494629264246990697566934245762339612484360152812323457478225005417888216066706588043345671609578378789436836453472503213878592712230621888266190780654960729394953126102641146616594168090145427653157859191328618572614507950695521297864368155995999262561414111782666955796188288117573471207473773274167324036570186331821661926426836252824866421837831274453679201751011457922669483828164737310799505151853525904496455174028349702936899821437330915496496027556165646740892979174167275816265884324164850811850541754091771532908985193026228722215246579647868780665237350498208665096423761159895081515893933094176963162333200203182381822524871267732112842719970022802213567208749061526592540583270583291156869533052299274568449989799425762096559417717920022647675441297356473655566449340985432018848768503161251784491794595063475815189136836742116611286215838370792837732008667828174167672347352531708839292644916916508054604730938640932877942537896367577235299053738392785594492808002848081555581529643795114522528671403944204994381564921236133857066054547033489141362973840868325186424535933504370037613731393035032080906911262924597601447235656802417941201850095634895926200340592604636013619752718875341020152994660517449490816778286163720615405192274429698731465741280011991407371404739676348642234039514934024019695455411299071700339934002081889001107739259876322582770342256175293490628051071630167561196821652584222094026349313084597490763841459368419043359979599847966312586726804640344501636273718309940801482939033582938177050699908998075566935762318022913347191402696014769120260969976203696231397363004783810556208598522895008230863543788794517580528576173679429482750638515924163769683748467733681628416822767835205522683026262916089919856677044300295875642218735046785603532259074996798678265228253198710771720188808248892711871937773358237756442605373936388173936433175027637441996090939235571204756543107413124390205892328846928480414882542365600393880218668223323755002216398387014388006731209089778367978053859736910710263454922838817419899863668372614459286365461290288134799107541701011052185836617151459923655569501040257158026525301750282046774890112441686994293084532973226627074728049801625364614304102101350937424248701601384709469133307964763560777867101249093125876638705563688214955170551527236400021101310782909245322472804643129079117498363639616874783100405706502243896668695447771988686488656657939590020910819468576733044325621782533515050679867543377212908279785057565754643469931962278444517018932606310555706033527960553154583082468216853244952871113773179198933938753170844273245939055128135563704284686269756333879466213636478360667453286233126426646994963969334690553630889537090746222443864870184834126959330907887240350662377322386305510856110863798068798277453521805565919126291563018070491195178991661225543057034952398670255492874165081858297593109346570577099333488120238384294286858109547140099798615786879163374687545152579181627521061984729096122098937191829444489619826044687848137967581109250375041462724838475806097983389816656534930333133079160814403082018883319106457970516632222235964194502435709584932492782133071272814049246034135290677324828516784645247166585734179779994023537194559830147099661799299110499956506755046311612058495685886257851318428677700794961928914985798917741071593992309278227280187429377568754423238330615024514816795199697255323399361045699855467312011087810778060315894818278239947577167658653845786471891147597361483346011516572848874695383737363928343297305180527289155868881504451870551733743114822976446000764632162161233881540813618421072125733277462124695371968731499104592810880178752756725628482009326592376347606717382760485895944574090913520081319737469816173154972261787896040118329771515493425513597521368704807393067630031161670619309163413760276469461617826547016795702962778090617270173468682334884291905478420783232253117331921918530363120259647140357536435642694235554686189556469867160765200055638098991233238689466221039553288737231277207278560212263519338373876059845253106164145539138221623285178724047038417850708430901828034528198719927967550305096830870635408522258669645640111086810583680440381412024841719278265103357620505026391843851239587119018288412578971613478663599134306872325738516424352931992041793587108841857846836130869631530983815752733987128784693365713175333447335483450415164395972606974340080443250308938476671099659997622844095919780064255289717917399851542333159047662426215966242135417703006194707981967563339618260306005478183103505225966629387911251982611655385932021914216884186012502053347541618295381674733063434630384886153996823312436088390225186751953240018191615361646080365447775027267267301075614842432748014816450905292129580534884154238443839486763310788088903790366084243028605921134189457682819214596562250563299322325301182942760994669400087235555035480821343241356967856020911409426290669636556486039774082372550794566269178664869344245341497717318603013255749213647432547766628541406846278242852383413610150812341138242754533720645929374317224290252088118627095267254724824234047982900773150856668014566797339043834827585518313098556556358183406511952503776462578047050037411846906233401702245974831802749314787355113594868963790417374188497889029473372351767057136919067636179608121210850856687642282744275648484472627966813889024184747999531552703373823936965729717888906431989338292525214935299173469146035295847081635172382155939779750273633891032254044872446947758444135418455963043760565464584199364332601485106031605381391249106742225309293873204164272835797952199533026315206081450979577237601074919704690289201630033982428577979438894444228841355660863655565773673515595873551516174631325720439091427516000330417259017162724350096597607709039951906124385837517525464220947339146202172356477252014297944600064503738642695132824150587775485627620704525776724184205262359884439923632508946402506118069492392291867190554579049583365423172802003983443268877784483869702204262517238730186431632158827821376591471312810990503663849883303735894722839159478803429538190014409853713327816410382162168819001502543894063109740963493941420042086782509942537544557611835794251785483295201269627783002805659556869975267813889162239562518254722871004916318613619446616858598915627250331258626386058977082073018008069701687955444677678292509318474435374373785721029275409551864485321723005427712575853896451332457176178261212450104943342603541558628399661626118151773538641250668350891344038722503780212888380204228644153249021419396485671066723019727565345573997995349265760598653405187321207453780182190688811672766272491467917509124135843717369108163285223880823756374788635043803083688268605099761717917964885203147098786469144529117712829778383285137088721265692503094623781308348303254812394118664682763867822568037276177175730472917209084769911507403102740511446418969586541207468512549230221323822860666991026207495347143890574709093739359879152299435895757650891750819627312624800898679091801343702876227411581630353955715084034572340929731178118002584198124770691914420708451661733298613335541284045434357279328390592312736347827451535801962145151088899530642157170998631648637102038378832399305813844966289637538781482641299337924089235049783510090143155995065279340790346536653059134211280922537452287330630353465476933458365695618171315939090288046826746424880515696992842795558723631622452507773843065291613173903460510223843426697683336981191908786968830551595232975974489536138494216728575485898988493291328406857270004193695843782446591231995362976056549572293489477824128618656951001472966489309393150952521681365038331055029289416321537349676756766943534940789906420064362238522734332785995836696468881421229871598631867068084025782627816677965448490854216131566507687855840511793588241142194580168058003057015798850571940056327043316595545906739064073981662831851864250806877688043531663637388514060765398845776103852893259737756893233884761230448922967657936081112669280155593127293122178601034409326951935465957001635603973444703306404317106620289632613352270419384054115241557754012041934274794679438146162316372524716110694583144409634430969790896807726081074906252108540475051528815857257126027286466330922427273181861012677417744610603275129312413617680850449216560373388063942056416652359249902063781540484098898103473883875198253009003935579895445629616463492034679371492468996655931092875035265340800439372839984697480379243130070827343935436814836806162132117975879232095822310760104289189948782444208381318041540220197808092740133609313999390826559313653428589803754317349482699791020157415755083475870430912060573829161682907841875323996296404419710904261820213883017993134463580998801127827379006834978990186767203800027684832668021837226168765070036415834891049123143062301058336330852857421459523255708044816891385591918250578042568567863345079346580742359197799123124384607257839049219328114047237945974415896344266401784667799773154800965600567103643630063621603560639241544735594103101757937169408694119123232263201164634953847380128920908869679835094341977607040044161589355703274562551227216507685639115375824547703034967055713677880345767590277443445426844233031281011002527314667990850628550983858361230431679222097535946375340165207395632298272037724154923917520939353725928775370097352481326327955181075447823625036223867253441688132070696594562665460069928588195888775340269383569011140854045318011398927530537423247460638855249385034845024359932333383571355903567912148863320014543992957500751914766172955388047572851500390640815192512908832795339703445327158637818408225181892919474706962651570796512177201871543525224071004070624957515056352029922636087322566568193484695925157991533140438373996499544571698314102322965936363508134438104989350895635522098131091235612972905035555574019920767390191121532516042517454601409332270000740471438485256826497561529457521301587476393855047356325051935240617141893290401175110472258655361676937133430525972451867131778364290733907127294538324769985134658277940171032298251679986424611856607958917491206608631228497080807455063011439493325488863876513504398970320429345525207777544450289637457110710371796933569164123949399152280831989661592622875324078690689656892757880890328841095963376027595707329512936160569826989962003904695189493104405115297806230921650201648421835378312125766304621267314717996668833800644599707559008817098349829439452865241415499675490489835337348504247807910273348950945495278638558248509670016182901693240807294079387282901350774387207787968691265072189729112527640805488968575995843419613248396497814783744654127084843614433124045237702445048281175038236798898191109976911545601739316515199794859106969466635338963467719050917317162556053199802173625951643925385306104956809129201996473806387197202985720259251038882030370182205773065011408794129655179013552646000397472086367349717763774252985320300395738694737230883342134969125881218358403309695015834541685897329847497130279897958373265209727621768745333782947354029327253076166596845475566557093493780818857277520077308017481447512145143198576238860632510420584253638491223378120142504953528164927752650475395939981661703648430280389583759097761860857115946837524274770422325611225476930707164186659396871030590719195855352008508654740479444152144364363241236042876365373317106941871681689867837442562705027318873392209950721797261589427872907299086952278126842116056900374599879599881881951024172229154716346237936704656554651778436036499793815339508396132207528787429115625029268121928221148619891549764780384605442543172910591294998032774588890240948680836962410278008862761873459889568511158020604204026448035163445091689191838690762928334570484629730752909036544404686326048516137007378064549021146972741560142722963667597834324197416023020986385581276043198396756917270566805748132102289297170669875989959686625068895628086550612959571350793515032041163019211822668343706145085480717535929596540126812702207248385292066477147598571283391151610633136330425483478156657924246113953473268992263720804760819090550369019247883466171145745962340693936215043041600560705597872529220191035320174577686732179972887928185943898355130809964459895574495494819110276897998092102808286333771062057632821426312088831628219760240500229786412307263873609777070202416922659679433087125877483809019807377353983463063555082039801329656733448259194496971609499012942954502102016659144092080806525872297088643776702248869488586534042454190151420086295447624342146898835933859688547511945019582613582240950281953140229183449417229179901036224788651418618948141046096082218170205817541300851617995699066593446340020063628039663237263338416246733359555693479933414461798876677798962695501234367336736591154616382014074880002252474581172867299948285415558268837830787386446359534333105371777002732968721391500607618297371103429609700956076491126816297241779355017872854880447359483928104791565619862500655587427382052711876372433845832920079510620176761510304793296968906270768711328540738853928654511785247393480587644198350843914242465195728029577134855554168671947357684546960578278132243786689112749120710334496512498531112582050095055113899356853701150674348058260973328738409269199432653541859093808470636758147973937885827665055749396876628216935634737252605521762448782654384682513066156361416815303282667123173419336621407361572242745247378472647338431575478125702797896973473747578155440615217912363735297924618483238583012644849987354779648625667517128777514703807133218094260600693420959593128793376532151390026867667960724963797353595448920680119334831974462039056296792435664011224115484515745606353131086130543200415002228773797425047835059322706808644027315028955992570467928970618430025253021446452695578780086109552236676132392516148138261173537624970807466410398297677432145859984151207780735879603947974500765246335059479016145878058528884754667115023306056428685036273602325356132409613236984352517104564256009582804859701028727776592011213305637838229225380731026346977596765970865561421584981099442799562363025764400511238047490877099941767142949657749820790775524575037094904633964411227143033275009499210772029432159014083316749206020410229535485328796845009965583271484953971162701935365892055136659382855404456968221448874439852416564503160594051341747838438998749636085611888049093209605163057632148497775948827267941541357720691248915602018310599386234125404405034731074823881177659453870724903296325377355555578071951718219441303566849391376300728644616586577356907278135452431362467970885372705318592784404876710860590279456570763780956234361538589098639139005539667165365129061255317112582156324773853459088293154108064847723418419050916422809312663533513623572753536178908899975470615610935480215189501525874558085263184223264172749365478755663695218420363191115064806904182748674645308872117021564572045844150087158251811453160034586113364409055881037482151947068749954136484898849805088878729120354121329094449239774589418552811125782972346730877100409780916121662704973860559703347027706642596863948644366831171077958515952136395577894944563253530215731302057698856715925050470726568414663765943071765845315903722175436263705680155573967629195638440351542365037421006259344381520219562186337364857138530857054551366920061436103641087042358820256812116594898013208556820616609788898113155069323005614003263678536406401579952297519741946599442348341816138979221481050989157212664079993058611833093199734754777855803947704599664719342177692087315520427834878438744416286648974167965746190324921684307605701096457988341225296932609905200223235380294227909040764400851013758354607282935241719330609845341537825006999810768067716220980039926786222301088892950875622445347959885590535767212900119952683222820832331339847944814288410406392524033436733672938940810172592657972607840087216645859213772161106892256990459944942379432941482442796121954864871562422242648304253211911147312990650530184901519440159832316903764088913057398631853053975501096948645594754670847556657438805370592083932478393550850225887714617140674049269726208305216533057841800663744300323493479584257382661809723129155185163864260274248673051384905637177595424062967536117500331479555622129379237626684311103421888636424229350662730443333237882384603277259278421122935538349202833727697486184792862380806691394030310946189732123762958476281346218190118957063168261911791520694959292270414803595773928527495228940858840105602263756760929073345802022023451529211894973242072859735816543669726026640570492453489213356381484208965957284790471797399587544534550941314485919095638208267046143984596533714265915846438443586957849870147809740389323141673968129356471268157080883600782777407951100528480920199070942052220170170151842600309786301922697727061868822824432615024469762899677483460207184563163621559413893185542637485446725247589650157882224417179897600102340188367403214890158792196772301113748224290576334594653323574839511969592865882309681253786275110988861898647139025452856155410350214377469057726736381016187383812816452707151691726580636945313529341645622303714662512640502535212002925700567537151016846383758973194559378614631138293004205143081502814676774705082863122815983988798350512889130834486450280954707076864384552289790193418058811291589068422149094222059415621623231080944691892669732752018672639598878452413888468884001776825541493449167257080836715658167466374974721892716381438469767009856630632364645381192772291711655522815446797187746565665508442690440788642510695950718391315431349751311504008946312995077124389648634846882818589762768914619699766606414185281095322951488968317589830899046068664838347235616445086924383275325704740030227893289570881188159304303130620456326668327462969647729506788663189141432040690026431093360290898780619124529905277749222682643731617207032170327179880040562141082043041975690967795720916427956106053007325748968604065027435636085585119444519918052258941591363481178306292150299436434964540368728309054935335137312478567639590507092009565281087130524578961086554553677017786267491139904043150278240937524053375535892224561974143697392544258515605941090328141445357589126733647135460682563810834356147987473224220506916911433137665266194753125396119366315416838746038063085722001979502602741560328762935138892195658223740414645936718751259233083987984232516075266086695434547000919685657234473511148196586174105479169408897369323118435145756537492405889397150043541418831313670521893332172126858422858735254866867071589349544707812424839237955771587425280544814218312007248145007627528914762856795834224383637468362071608396936985009636974609549675147772801548726670085721234493368471182394694591385762611651301477613563681188312165430054012841642894096516905543828347824495072486942586738426091536567868860619271643191788894187086451809091007838030892004730859610814837978772379208902799133569215459133973168286395835194060587290172688311703283396553914339424411195024050540514964864091933081828146082726930947260612683615685158812261673441888438145283313922152706217206344890529444392556363373440780987434318830225567463186020373400144158759705975498970383301281701329244719059768893167154318348821333061621937063018547050489539842446702759499165665453500760140183688372864307285644950244696651619863020153829305203480766883170334980410960720750501408027210308361640108191927462068513262075434332483757484817832603607654913519398688227196722966229306685380332336312487333172574099487149997144934152399928025498521667968099931553074162988382220723463282863380814172233100558936755862166832358548284261698500917843653523955687898618393198992594418451480398255707046618109727619025144863098565218311461829768449696120677726737027235741485286366124285293752878268937676511733383768818058194081105392635301570147247217658067181297016710306230588358844538506573002641161464856149840892503771235660130558038817628003144046635796470416837041350580552092390322022893880709933573770042583528682565773890893674174148596584998372977300540748679113772543383569917239901446088293095060149202667982167917959219598298438255676687456074613052539644835862389116936958040369588683615488369712972509364789598676165774611587243657663294869029512067349430401769439586668221229990932538427795467027991246705459726001926828746995636260993062592461330626512382249791161028276415382594365030171473398891362504940959130819192998525348939631921343413362615478976617963382265927375972971893703226752101480627910400251090106789228822556332337375053156638808564749061836711313066879731639790373945746197091842749875549143235092041097200929381804272948713958516129530863587280757128464006136598998027042109604827046710983679593353334435107079476933308356611868271417969666558441640873765602428964530790259246571627296403612449923652681890429903405671854267108483145587573550819018320018487954759251714777476557831051748556821354324149744391512986070892403845333763452219163555413684601015107571630752155027684491393895557585575923071180805358891659517868523365175685366311110910499260717121459359614690350457429833382619355290673611017782977306365874202925567471483214637068174844994019658670153174216730538688391208643535620414797979804728154180485009557433745546677205624193614222869846580536275898825428485681092843725044126519046657909670884387539701773603955496309393221230743186479598719803686677569380934941636150245898898200699771889030034700688389715828545529135900059126750169306226613374264021829154469019592227151519926719225039513841913815042671481917348532780587975484922076967457300860403308239788893206281233623819432160503261939757204436220656575189595877328052417069731531381754809791367732663388531261205629534400575311880634770687695578561919567980213097005578587890320868196706793203045330009518428644285853993758202300857969847662043480896734210174566923244313216369705069390143037452655990864648008942929570988504804230513164633572192774291789620973321597375977788378505275677516954689086231753178551167710367442142873355267235752996855499986886518727236231426906714112208309599442492554744965510450580369506371437761481533070817858644827480087131289273105468741602512583294286955454438016956432560435872027456485262686058208024867867488878228443747634747889192441277828219379980105042211701848814758987525220694342288076817645372839009398357260330434087304369245556360933467960124325865508564843312712401906776804621037903983580722546860320763979629654122716565332879008894616541065837844085401293263722354290155195918234554280509982092696961019017815990901208166343920621013657704116833374115594198722914415607432847098812278550975569957237876786039036717584225195408784038666131013911342629264081117498560465025218844799362122595170253901154205467680283225593457555170260553660677396477501351768269405393676730623321306565910573802415626230920538545560161563158668323372339882743742088803828923964243795511632981083081318964450265723592364894059465416038665761668927022328531401794558223215576746985485133418296483979658658574336422666771004992974108079021069161989626278404584307850557875739875053594937848488683889025511614993538988530744374818695798867790026108573853384096008289134058788401696149286744228638145162386731757187599761330228821925273377032031644128877850897280004918240403908316508288311623311911006684292961690425087423322451895067858777300007308828558501591614062137280347654083851742043718957853093918659732296104348967393574461208210368851128971600392896495015797127879921817249214722384237868469261210375031898109854257603059073013028906387962712193071104141881576022267438710610240557715357099360654688087292731848380879593082733139443186972667157215207913853293199288769251599055658668718712933884629664962555019411065822691381242364556300536465785521272713124547866165137871191525316533635971274586397909292154113868256203148649773571791121427250885537938807489788809069866431411166389367158931073517587078131053297447863770748119076156114228306379143658157699525082793808150576728966702092987725512796975078405469151882888227597420577096852693042369350976002693969156330263397483290654362940648826196543722094257341784733286311868486442967218866250194205407261382456164155123517301744635473855901977650941809676470610105958926777624333707323197984491203246918548372008535402528687373582557182563794251976495079957231623804645355480291635769159149798084942293790505606836190681605146712930373989961308840071297390419349480100228237181606840296605848457841446422996868809368613189364056966625225489431681299296303135891877765696873584646010337265966544686101776614417462855768073771827787224177129782137635500295115715085433555609991080759600627091077923266240219442372621145005726985333835263558799436034756164840453321419908676915755152768531328741298175306195619293752540222741306259028905026824637303662501937817720289385377750658502645015785117166780743873966042610941706500166787706330075264345020680664105846807454092518821359928498652029358835918289650931583213670182895380839077921612827015157653569537645995483508927210771062312167788746235283236414073790438507350135183097198858773548369725786902532218880850769651013901741937163181925701088713773428720689047798477164439646163925558400970255060186112996929114755396015413081141468771022701055699668529797707650532621718293840510205350876590948532316652400539802969094011424030385576219979614918607193671980668132681521076462275210704633706456912370739215165713898939011243099381667771298486466606340752844801557750341978386165425031059503633565061466078128190219644096636070355533783077757928706196854060171526168459426872481946754568120222158063384926896078780569477958114797087410024265182274870417890396452134565416139552339294917069279799016372250870215105244608519559969457633000879869969188126669788436390285371321781295571444296644634055604539507722802248433246489849320013586324419673305782009510726258930962238698032721790717934534978881235659679834519721585976838442504407559153891477923301662043028330193858504849181934178864841712386276955184090131357351454716215244436183167744761867687575773373067727353460940927662006039852389872456448963239530788703384833682749899106267529240641712395621207832665514197404180989318596396796310177384818173051056711082880398632150748340285085577630679724036689191185037484104783394562867251629942555030166372695924661321190632076063486690456214709531066621311420108009021837214317529417455584482708888563963538684299424416366158723391849287793724905266595649916428780630778233104012845707517795629003903566834159541440273670724259798142618813757306722306384051483700066499678365109290474798304140388101995156606056552674919753041939795845548407137951566230218856124516759314366353611508937137602558405251709011962027045048958461319153672769620892617541486008915594039691826840428695004211270354452141946515971947415654268598598160490842227530811443816649273732067385524978278393802211520115768657603991973897269393872934709422315980134587874983820970165183268270865474245794587994546350455663782724949990659092390381869021704988663344219368909591818126834735206342409201188432237424344654880285622148394744103169589901867516986535044613283521513625119356155880525796444113775307783979582557415317310180935761204383118831649588996199525681476740386679146858306661044916903418555813820886872425155507146199834044268822190586385574341128860833876745767511617809891425430345011091387510634780535244625426115510342377787196332771664559625064180962676366153941859995767943269302743944147024729375033862468882719186979426992238825017913626870973701093227805911131154551701273110548392438261465479026553509310578913800878166257473825796972921836246598685112834302060141879474002454289942518872092759130418720339536445497645008365237941829946520528125701783113738223965539470251870838116525157188173773891943975530302624266434149197477498194974700811036460097007875722408162223757228869102307091137904639672619532901423298156731662857378857154350218879049480398376448220892969461715940965233320915777364245251705032704547526689222277494085507254016309601917937712439392097327461375743800009596153417078757189432117698309353081124387833277631149921095168352786340472036843965382829455479755638908998878578605146418645617642933216165928907603950963079690231016867158995005918078496071126837568692037818922270116217559911879135035791534831131250290513827185647655769783728471718446735613927772394620850437801249195782908246418586490604303644793250427861629040253255636983898794512814549611466453219936541324592490071286288029599156084557279873553155898179742826460404833459259260054582963878423044921796331888411506663619056069767305846339054000900414242530466188404952787940475956784270460757498195284334828328351768266406083099069865754846266229063476805346962301726305690481284950536641189588573962205208908368537404761559489041639857480988836155495215624189713712573842231269831141485982674948357656447190104251188944323599267315045625105557081331031941743365471092578186815492322588953772142491778257284567319543704654480539087965028203162800241584341638108256265069251652414085159373641884506317780136446632627498233198579240012534064833774754930860203186477103756087204731642328664681728169845530853030472867671306592703724985832863509352393190632421736936656965103961984126436955146183172902901787755006874723937982270317889157086514374775210103084439882599019549822681450859533690632013908025217939576111241879565060944867059932954920455053038380727990091965035578021783471616371680988318966100658106650678628911129257091728306697586521896851525323785540562627876256894335388177045283765546182826987821907252332886593344089510408275085367077861523255330589393171857893667211744935532997319928110466607168939453073186393870756330315813712416542225412623876813109381295707733670420426106335562024959234428380058004792640590146667842638836989739286429576990654662221011344701822605040965556215284013531935239370740622898730274992015453432125460305261173586027048475536432036954349735269998154597287921654811817391143180968362599396136104268693172893159294954849158864934062731442794732609694867278968696119065669947764812754794615865636111773848946282814868761215263256048641310431304970823405440488222477012192757468178631630393339478774638835634988593376708424354661750155413706284413364945822366651324931024298610143616697164169077313303015566073037409854370944482241590967798747546609752454346862210916855624512985714119734680502540354180291941865750698936091903116049069689820453726244279193012025143046834363941637042404472583638360845226294547383621550798745450274615818068485131932635207757416232770849209050289510828211759727685741192844318816050528675087260805681678892590125160873983377375254154559833349438562050175145508791370434266525464331447807981360119019200724192008608133003037287397475611867663854818556402209526344948387572158477799734587041944915333244614773216997296379866781235289458861623382942898798522918298517935204691805415016864994315695170219867818263859859397858673906102543815105329414267564817430469449111783041382111675042805049610659457694626707591191299583098601851918235522112380157023145103713042904793707329581440189994738800537434519933602560588515057815064849786980703505101794708402494794403631068754645317758635499999625465625107892051574374000279519326849541605773708433595477475006522398437857142197524877212076960775497452450447449437873701305352380182785006265293738932666071479502453901311664308868582758805596728882422473184970278404029180865770508384289036650287968101402142973467367716309096663341025867772078257044602972338513075811151184387141053238634828854179238612571275037798265954176829083505810660301156659256341738457659923628138513239600491587340408135743576421214253871560272407448220589663923114660652044567853974240378384531115265920729504847558163007543218382035745899757628870664407754121808995399923850259463220949783472351638046836309524582786416810301974320008928119722422204706216786229290313727106878787362767558369396153191089000570214058159361936666747770088845557417902680626462257841091898990544709844637729466822686886957054525252394492154366552294728813100427552391615144850696311019797463355826214450536483004000320770821537984060886077566344137288686912351001371168080239378097140168404412679305542194769877922118389633622278143558580926527889912260171796873101594673724651679454684403058637423828936699189766293870540549199890654363294317871628816327650220846422631753232231741041498724328331375330020081255038253396991073387384265718381462151469049139878787708161515549151802401855577911476693641548304539232627079912562820168047698921716466087665604656975991706885705497750440553552021986672284500339691227644644093495067866581298225674291548803077940049850479026404143036414038736669151344252654706794457338416344066403061939268761397430315169071264585156458673019699903156297686852289846484109122828041494797975790363706704457680279760488619413081237095874962464882381335501997223250944853090318395245064970402324762495150488386810828379917019113734463393254200570556503781147062016507550609595243200447798347530052445522805618989838825189469402629654740147510419905893519135815619497460996907135609897666192425699685477789313015127573539431578169313410104967814094014510847266847975888293858732300889625719006629239761061510654179319533965248082227145010192110050839171597037511109065941495864905998953406406922134270449043237867173462824265641691355799463326161655614045703602062715247013939513023978819046609618273384609570103911900871909656769079501788649323247548316017791481319822103472710389631806284587894222966788456759471549643092076458831257584514788161578384714118743972700548760319490391238173237393330524355712127238282688761172300263721333015196305395029563827174171437696729092748842795395271354756296801589424732177400296525313518220967645693056954451465760389529593735393896991511453777398419808234164085169933417278558027272545941978299440859489275797763362082780483693800926314807449390673062783269220067844610810822383896877011092481313929259364981853095296488718191365871227349588750389520047957599524882379164072031450751659059613189622779352012466033963220486693429309007341944706357412340891441372308777236332793876351591809410291273048548355967476501119384970101733555833276567331130714823136355134970179146539776143622084837728648325093340601488937828415063444857746156995448315418734618667290093164995041273252719985979851884234789205041958453988515271444720074728651080482343809888018251869832837935886532511105190318986707572256143632822929291607311919429608584928560053330092169463289081041787852685490041952020607432317368234992356159640384639671547751501080238540390902682251065572963802765769129158931227926396518409896454741292137243060744274474702378531571142478216766520880407998549078157722597485305878976159932730239377016509417210785133791293743796597707420155193792103147623001384096987648023451393737730364516386296469042068201116766224323254967061913268869565333703863660760279653664964886515053640479883774508393175036017881122207515411232546425297488720481821101857970588489158944853176570869115186609774795104366639126373055158282798001435280411796811398824362914790253752030774482750042304517004276913867599111354832324243337646144084066112461256406071092218634281454963276903754007964016144312318859541291053421410975191467713048351748066598258618030073201967318474392753425673322327628450072520348329504670486412869040327117444383831604615537101454960107726105149990877422022245181272593917714480652334498930788649720600529070514478171131856659048683966485102067080444947137897425483905831233461984736223704869732877971225094233383220381773357888642075203933301059221012538977397036104959203087193029274262041688207444527389235883679451896831420331026059540114631309312003445032782758932808078978343554081972638037611856647568943813988607428865725441196017344957782673712066329250589051741341815646511925858806818396071891597668059721479817100267814594658663112719381084125917535858766289022314797812186118120552777843016292959917677482769087997846040128162607638180152642600492189036995879988031671090688457825663325355288131121271885578537909001199696339086454343350122333279612194675164505411985305498137710433269443965174320075927916216299665631040177697401227943497650807561149841379879125672841671961257349678427876036983735488200940543650641902135174288123046853179550429780464788049813651989496538509610340699385225970665666941481360234490479573600016665350117912651048522727540468272667409044537033190793795569962357710769381741095941152835301485143124760343778844693360129266517282471810869244231234507797837316690644611926542604612106799863684018837353115528483648328787718132903470652680482602914188285604330763254534199490324398741194393070658889680818807754981768027438132867954462778696930978532304077472071992914427365729638155252874487136729537510141189183129314448634995839823460697501635852892389113303568964829642897716871911259029724066047520339130729173273010426901244466647524956157330067047136803396432904987103060970235779914417761041993893680956371263177951349795684437650819435539684494296214939099113289526774475840513692860865005425377700486345598544464835982756159872922388618429765301551463084066902720331787142588911268281185706820354285604429630115838272890422679918004445770285192474868931339259807165997873649891280903331676829666849408744223255471102993262595911196225105385127621961345300371190453819259247514767628479860609930705306673706623358944541017995486213188795980079887000485347193640211296081093987835182150414013685978802543604328951463768784911517229387069625144072275884871352182215855506891401216124674776644166364166351505560363060055987826926311469085682978970864485056404377499286424586544640495672288987179424714220388408185823295686942616549074268060932513714605231776292115997402230722815060346488437908631749076408332465220787539371278579581590846682584315280082578482454488298935672313198985351974503399320165186409790846055726977230733763771355956766606075539395057078072597649334194915473371131062193594751029774939219691714358762470367500788927910206606383595530997797794956036375987614689177112424034089815255135279498448077472612745544328209488427444974395934865282729201004119522804165811028208375116196346907061938125082890146590019191137669141822296298350556456478198876439994722731847131993432897587037230850320798474766015993883244809644617198487697783046604654562035279253478186016945231530397261403003206367031803068239699102313571066553919440480267114277751805722009178311734056791851463103376408954802609714090706845548771858591584816167185870359851076847113776470881431286642562282966445912205667888983692291830064035329524912853932591598948027710891752784731882734832747192931220614572800039662969639890011052888214118446068633514627217066785233948496827057788821530710826628590400400025256153467917662571639765676322889904180172747005919696492525159547386394881472400679487307275064552482868218010873159984486289989026001256094595628566135895501075880543453565378358845794992346591951864315687757099025633852465400021277236702980706065842683886127852547706390158611923373360348686139894590473888462541357943010560253377274281269764044032022148514039881516562712171593919945783332955531832906780059653815318365354592328411444292620869907926125387158405814690674281636196066823394865497609195436133343645910134641776672195082718639224671297125685773849950019877337886622426028458042401334234880383177210603360024598768970721279844533945793589619871672265328518134029087136696644242343336842513858769733408968272044792373098502679055362482864152783682071301353700421081248615572844119474405670629804576132575026264567692655878102025711187159782550789430505094043988118973963928324637232623647321753036285941418685995567866312736259389665200347947561182322257036875728610568279665444857081829235065384758551852961086828112549029106351333399386712489219244347764143130799581652853170738969647495557881325461198142475018831736825673436093968195613358930898572259704935239364326934163780824184117716087922781113801993836359329234451254047629093851896354430014498029375315728037007886549597029418219493235068483644975600294510003929195956617523067673965868097934821759803937951568117917075629005001918191131501587853070345010374275385995114202220787841712602058210305980501146638645583900408828782690241219440790644434051344302661915011412411819330307461679497286647142320943330815107022333119378493188268760100676706575469857094465934636355276337513530981403472762513817502526526678703125007425771102883710839250995111789981488185576163520090548788372283632895687519235565992801981561343268649908471759518295546693605007312112988152760433891619256388181750395709665723021470878381047652247604969216894832535405934685732833631520450204342424608001497304724351576301736086190129855195013812087253683646127366985881329384988126106200162912506538318771700227329075240578108570819465854404647434241210559447628240434480290859656843410917460872532602627923558038538754391960597684179356478162264790300516957260536448472886655244269546096563904577640463910656078906136979741680277821297886808044323204398076619972162836430409081534290453441695802526276683548806781165965421151313702833595230835954736894575860340910525924459502054283112582243515971369425481325111417283941391619594640371267025546500582210056031836923700940158207451681829833341195429420342374834532403847263786242253566197294679206810847947416188022565064013982213258348943318016942479603434803373160585887699043034407568341826449683225062285585873037168421704791422049786340396735778315077537473758117603455573023321109536198941392451513501817298014531294815456838801180776588096169857026413702926051757810036512317541921232468873986706971867175147247697445112127499215052674053898528652911117571356903097327812202321793308169055790471267829700453377714032877945561496590463996329813731242061588714637632446875409324553613596759506688617655762415054883512458749033439613554203626647477510764140595767888083233599960537893319944621510660997837366415848438587212547333101533159264717156642977808512483828392017171356772637101694672686787206814559000365803364786101533835395451277992459615475668879784647703492293350225645742232232657818643495356864598945804592299384593146604741763204331610178635681543518914678970315455724652606017658599382643188673714713883037244664397232768189120116695885753259720338649582523657846484219155230590545792893986640746439798313193278785205633332623382368076141845270119271421369259813186338049640840734772343899306058417898068447246720383647980454530384357533945807420049940538682145088470906491504124865844874758726193893910618948940021460934287553614314952222510921784651704482941065512725891808560249377194750946729271138948112877545485399314919310053678334380842585952132503317416579040606221868210890033628506936234587870380854297035637003101374807737638018951751588042315179096843232240028989926285540753446395491934521543598202342666319213840454232237193006146877142449105543027777465900086165737624626915751755331046399500456811816029489622704274043493301260536484154989158892634951534314705419933463667677966785050719701979924369608999884380622563087869709162650418523902885072674015718783011724134799639814943434238839009787647028645407848064437056687817070030338354914387267371942125598384715222566794281692550412235063628457673094539447528072938027031983835422395002260202073204100028792071561794282371370836728887684986313376638379163940305729185551780427502935733024934278983439854359566515554768110741392509402565270741836950356852117115994551302785970635790134614680826379181900674593230759706892611183306158397999478228252328522939916638420661048569532119224814329368632454553784704893953672693441460361686476946040590319277225174085875233413098854616554682167181273596893005301047447368666037340683613977481233855134907983807000765386066201378476065197499571595017554084891768541880972579261523450629681567444182108679017914119401377551620352100008632757460824304616156401200355365624319043850257560459898841683508961876165288632666022231436270318508489981671757383810169759644110605172343839380439531187682890048395117794628212043879555791222303697003678731523020124176389755779585175350924597344821557934090267247392285462037987134426302573873757861513391993717542953859667800565160166846051927941644621039096444360086816589174255536580087352533198235771286218071402928055515734429570769048808205919083388752031789581324144931596609649810106531273113024017009198279767849479839553120279979548005633416109819157372223213333100479698084059847980812897414677227256233886975483203420133943747784180808244535900426156777793331966828821792878227461364445293249304960556380374219009905531882973800905029764915989914341570506524508423748392043201245361268678668780785999216426497669284897452647375911774150531278285667954406129532902371903115336981019303075598968789696838071777701841389670247820133889537289143654157335158583753866691909674499191415392803538228128717313982183763399747902233679522381975200975885441615525425155718934203509170479355298623858242587908887641938265419973049705783678793447452752272715526990056684282943959300110894982163872301264308609092569504139871786394324316644996476998322324405528837557330068799995895703564898763035970520520387732217126032481962074876408044669755137647127605002712979089463662887527247693747066329337221530526634622140362131750543580691642555288749470705897281562205140470774659357843391301965289538433409840560882492945990403618418642257375048610225718062592632353435872398240540789630859274757639546999774445992917173832426415301232070650006694922057753580000453867783807977802531509241084947045622758785183211852845308451544751935682064096461041192966821377245559264600586265797281598006133011065741280543238864521716855060042350789388173508927528957503050491975641308322412339491169445028035000423490183551299165827794174809563613764619863066536362548826162661050774965122074022492153626632945906686276765099105784904425047322585686411344943497754063790817538457966471063935234679441872622915525126817146872743058671728005120358044650489558522342354301815366283039868261614568590998829477948788622694080191776467763995719694970458193683219232006392936456383243891439623580108013010082355911417039927169743965450401930110937286268381101608250719493741266819241543207811970220900776727484900533639783051767757650677918308356267819475718399058123681111218457451953109963637561308455601552628217797985646171316413908304555515372966628956463038946846472023707156849400498267397546716815895445382464884280262526871594004874975083062406421924170166695873356251128672297243998366502543381275599631542091867995838650606073414556903018328029607844101528265625803655683091983575605333546196660660032608062383401928027132481476468028185055975439050102938245319716874837249120916416612043661674924643819128526901002485571832434253361239785645504026325396800935090229166667919023486967091015401477268486147636195558629348135126552822570684890121186633976872920819831982935136036854799898979240390889838034912883800928987579373865593469124794356472626196135322074721021123370142140315140763056591136496600011634266795460510012063944479255859089359693016693382347746198234905279977230946081924987297130024751159400742392848715026089251743961294086903010871126146006458568751494713737082815756227294175420795775329154382616289425573865788783269443902216182422464878341628128193337828350858582125697082504574762438047022686701371503624290623776977782997152694625193623359548304769352393617549308324021362111475609941415689003313269371928368192435652843170285943837822928822586383224415288515415960272865778905914294691145765911258463928949720204845356369225974207783282454817779951730016902379406334010708105474055776655719402399436705067770962890593596586680872554674828440159118787652518862937030689304518827962408673536871943501532336108977121839825291982016415523004344608185994546607664318908299231613815662842138303709516820043146734068562262070703419493381772850109126045090719507094295255915049438570369933620017673117487162259720275963112842739879321068067932370301567218151362623842925492495417756655307274665577941788121168604896979052722035220211523327655938788749526966146302660893138918139775085027164543949038910013951330613745915665777755599774999751523261345704971931628629943389489087687687717253456924257374078232000630004002214356520712891851505690727870812595351087947086649779151725180049956347360689589024779105110197216475185473506738206140522298262359713702457748413969862178572932358151914049008668406367803998556099950706568758445271820082475922395872131385624664958203364407330874137391872842676959878236246324736478798086898105716719244170327161100640603068764544270345250633520229855606703608555979086290865439138409306790107979281648345834674422024423056941814834889930948281931461101945831744058874468246240352044641814643808029787889297208675037336120655295233640414137762016280570519918985004667405420235663985540058461706540393848735813413454376568622858488604272533563317033479982731549701821008823981009861560740534948293959304547922250784026315154423601617882567413352728634106717321129482533848138809987458636567903035068090852544013820686872354373234730626739393859580867312499892373205661109134448548645172692561081352631444586910607431498620082793604500808305002209799575620362250073581343968585771975260652279341925456081911285439775854015622332223508630191910243441966286002886290231195075651224899139144940195982040995533754174169092554389927342765237033655452538907133737820559226203796003107005175456723055184727054517315815785841457525666217721787932387265351485287655167156798577349232452029835000989631974128561182518457672973699508009422148574526239837560755416061574531390036755257062395926079118396193142222976174230187780079455714603153355803201482484362937830114160201810395590567796378941683777151558820759623570799054295183508884276289653157723080489309108487180431193062601773079999834868969216139347574869719243007526151042391857262673475884870684259465147665578000065210307520717080750028543190093596940500791519819377811207216867685112774270967668155060979970852741488440340292231559823748437219023373445757327103445349185502167282077153600600168650111138734955097168575408903847960739307925534174874988629128588964348276428469209229636202125931299249647608623626911265314360304754006549215527344375567729652183913146959911507143010407202412195092244235220806276132368485583347578381616270847265185569786579841349200859038163071875337660374237232745907995848562950580024458765453313190392058148022119646340566599400640429652713052092546671997985803525303677286069552038526094162244862023775302187021985937860265687104325169983742354374129872710024586276133269406163908886889807418543103834157971486366355625106104557593289844475418865932464240692660033231273045854935868311162605774032779221801532782509311705091802893633669467038042443960603326268927904903378484194693238079779757907377809831990762502265894424624992151751749326705393374626151331511858022896918384094939619208271260978494575777639098449583609976878290311577952307781512531781239881153686661076680498416058191820196652379236444410351012235467826359326160651517817892691395351348833294177811736647497842661449480086641853116813338664219736719174032553029670946308443835206370732443201241050753486967718565774632887429787440520085332242264908647677729335134911461939835153662821820187414928623561341194483578977762807036150539558954615299339922939157171133157910860042506583445818978788897222155373424945839150569539201516872505816312956815059087195188006778208936547675105701894875751339035764439187559350530189481543724119269833166779245449986497437704809240390190310669857540280581237639606282992403251681142446859305246463560162961200353760683402824581061745318264546299715136538361112884294868124152297166276573646252966441304643370497359609349395585898762006994543643995539403087206099688083941915168538442834507201720881285419135556899825523753683491935811833728098665977236293106339391273060031989954766643959432106801945907379447478903020176317372556904565784217726858009027306394484918760433690115738022939918447563891894113427140007607989976334549244713222285975929328373300406774819709079655755488753108722305067343934218369222533852086937470369257583895445800440025222986959960034864982904519683320587846531669114822908137344044532820142277482876093876345108615423291021594923267315942764616776527577112543496275582458399313870694342247436760867930530209963417666766008444742046317518136641247521302282772854183447612064526440023862956726828298693059320641912733312922355505362804017873283390087991608990779638106550605470876393730870423849440372861468292320101687341146811440089924239239615991606900180762839375239833089657113681599936056461961250748878892466457490285076691188950895192776468405380652810283156472868704081546093265753558507539240245419748235246083846950550926588923985367012685570327338930236994622514773197047998092070413286240259374317898534057546343671131734619536552300542818441919713723771303581099979466793090223864700325778145068279939651776886887268520507332551219640525865076941060795680022808102762985508055287417483128802988542704621364418868933040216594105337574951966521862570789174881153658518561608303047367342060278590330518390487125922325862119453741485105347052829364694899853941314433871519298314677019339935281643431840250893415422796353491083140003781180120276706195111606149530662625279439863434111594831528973167061507540809304022500237179041828894304378153738345846137453248240970924681705722306771500674988536099169724133145890676226854720542646181040943794214410254421757435627538321103583234137382384066745384383952079406995132245257544558020240581075753503946322430120664817906082372424986091252207011740811182469077686682298067447049183898074660183171315820772145762783016961801651525644806857052971848642796811940438725756692497087061903262226771443820001636820766442673215179943239857973838147489903415751674973034105096097069947775373171458159970355737189981709663723038744716539686760000997538516386359978506950446917463775182452292852336658995893394259999635602215907728436195533356435006592213925339240995389579525296583073366091942644945470291890628247737298958041086038656440407831366245225998952227412526814575978636316502379947555735619003984869898908386211474404322450204341960762304494453326733472982366239582342245837414150805307555279366347980944857140195902154509332486394172620085452321334887735516261076163216035817875774880281645858886914950705585736598409217353502855276736443592133136467520713418513990811156064708457995386066152621505181506887254351492738893854123048082444305392638115992497153785389695607642431687441595849161865816774290968428853890047514971082912057607384468803287404126285601255521874669290338047044663683271815923421552965562548263440124676832411661348919614867044753301251847358153188116426203150786461126493463560572319682663482751505195499423102782587615813478070935042921613766955285086928922286848172006561169673115704758722893422457650701502963356325139677641629368620767002175167740062407576820316897288330039084458204400510745038829557299634724379375001197140546667335451529177767664331596184696870662194367663035552751468795816579703323474504829757232135436952277258443293358076285111818619924242202686595216591581251545755281104441603620208458703681917443520294085168848172308736935555255176609666763438743972193495393863153285080799040774563571593102624941755975597210570064284326166562211516790715853837364245005973406924853344979433465531967360705911609198070160606765413900237694012440714484566194334137000521592658117790795783616090625773904989922003942673504447678405641289906809244130723883105763728605490358279775082123786202312257976066282867559706677451304898111853431978110647695388381065383702560992243482279357277190821902852405364341507634356680930091066947582312264545632877484988999942672870891205033660863118033241526446002498130724456009870195960379171228909783568563479538984286282363668997317440458732017453307973566014898529774704739586818304476356002001880065859454371354681176430607614167492594078401025025146457913091810398219667644077411662084358050001656827158520666329658507175672490017244630665558014620489056164509611318271038034452820731260864777865977490965334686661250902517124216155537461521050898516083693304230146790617492398304288685264267610990489888563383531944444316715098764023670855336958347096204950151369886991350065275089956066141311831955183689911957597684273671107809550541718123836901173015549203014405474792900027337805378773501635535105205033810324595286019118872091092376924532958522427314783939767974516833586068879679072376554934425796654507164626949866527989537165149546085048193490049003588675500383164834216576023706522518145095263240303743081355604883728229468492630763499531529998362199002615063419286059377006944853692202928036921915586844604990604740498440670284296862239751397319630690026160712886005446903334339556338167633820679454120692458880475353867668344031260719152208907491134944381998585110151114513398420465812729949853090915611562361193980411222041909388754601258562555837355731344365700645517162459945705693863840333161096743840590933205689275578269464959395572329055505462927716848661050053179999322065296113337999962328777814895465775141079810725884933032487378120543326408481133853112592747507618186205469859494236638273996482871783808803733265835656796851822467916724161486975617377001958411958388131993997486997984771428706623883285065946846619576418515908670129243826889184148088192700125278836003368666666403758788629898374237261516709526842657307543028489894728858054694162769216443129174253284144067890307628807714206383836154100460438119716910959064573859304440949098457150178960386700769271575912127886413160774115636969954500081212239498540714044153520851425336062578183675492619830131451816802104686997825761158802325538273146722434160247719676626928179527208402804662217989581336977296193553289174866200162901539463169940784561138179113922131111353343491244690600297922717158164113164497279200883242360109056025219319943446881018027973488299129164420234617570712987142578273013192647676658458458728322006003254347425989673139419378580030096006681151328426012874027754643622348144711874528209913352139620180750623737133007162611979145251236612243051076282924932735534938917216134577067487324647621108486478259883217636495311925999690578981906816422346886499578254681801282191936311093462363832804022677400585135197941337458617066565291729843004087172610701769133284435664483915195790070448324264612600575833905830067903611503362664848485115419814430699201537294834489923003523504455812087161330046075622572390499225672934840386775006125961583293891082844808174873250425523235422797521702822171575586729792704938472311811027936897050905403385886787373542918844949769503737519438808734436095546519881635018117627990759665379168038242216194609791564886485078706122238659970286728211396710799268365544713069177879467255756424148527297028944683292220716644401927255505512935442223572154430465313037836466064630227212034171439458045577150751188014069660287304270897366334230340306900683559981587244696663108395786832659763352656566464794760305168889659604793986432308266446639998769919216026048919990308763684918769249300678606603016607598455664691628043278118114491987039157125893859781732545624614295086143518322781405002957293007826857105473699171346752069222528806648729679783311453717619811172332872216179860473063740923226664206739644312925460601066630608360143296867282463379900545692715973005855825030499852004906576642952066726150689101546168695036156507235242206974348516167910396030677718600925197300044418545208943427691122535074993305791875047749922412085614840971607610372831862033000351772223919662844364884693648044527142225647824386466210536660211693658818010870227648576307160451669411836854719551821953454941474810670288552305291220975749379127286356165063464861869669360549036348919479962587621915766529874007369930773333229299527000699175245785725578023782309954601303086692948040892478236432067886268989101179113572139578947194776889820770017081940757846653293932712000673024918197429570690403996915188023149283752659860887801142501138324674740579885732529762760390086088402046599734768409015997958581146954803148911065818143479370635133744487599158706137680679076960159513741109192290337146603593784205014485093753329244021500124805926264707685763798369160151880091905817117238247657930301398209893353938587202583222318085960385060548113214020584274730741663932582960449933961851892756715586552772426225436029951144934764495035982288565505605578054524873817549705825180621694478022938996716988740148662557741253735020093721932514360846249407141922125484817100649895473768806762821692838520935989883798894937399302312960150866297566103899281408042824249448953367120147405456912781309318219150659708056139569643022586715558371738172409904900954711647270614857583224389141349361778707268947039085136014151405542838400347650316730637964098801577619746127569280846411967039739930533722829394673802377782272915283536464353757998429514317920834108155757454457180927107812047819358172879000439551138909327613197182991848881568657935560170754152730018889182970869338977361083063331058780645335866726139173010140371741947758506339441448041779644878428554549405432871134366619192083978327596660846491897066007681489435962213934279732026140211566936289993703593279938976181712603061738238031433664491124260766114855865630207896455748259967481985741595681350828244686158893293091957452984885273695734092291541764888500803056726319699063418523225526736493813350454968679200337257955643503788688154123312731506348281405177955061468380421376510779192347351780988640152379900082187688445877699821147675955829341095541980765739028162369123024961440255990799530827921517858716385690993982674740769274875161301013556357923924591845191913026811277410112478740671324690109469927649733043078736758470122506667087432192701378717511479688059116626135197891342162205516339496015813453639053792429303385402993251077343604891390560061215946600596090753778244775080181679215184107638604618446042502276394882272605929926003252761285409354251058337569184142334460244386346529044033352858794017992625116604135543566282520841938175408904637399645763432535575966243606209327078511426421749661753336611528292463037025885747034177881553561869747646283120903369812035845939838660758740438519899009638666089300177663471782952780369703932478056291246164052978609006151182412592345986126161435349646201075009284195663681744068735656510973146892805040258212548856889294644332508567874066505844421787910208693095675092162152674580102644788613939371564952499746312611697611384810676750809948962340190993002288821726792858497050624784377976901834036694626680293315513105907633326765201068156299026730016713660940022504895939616224175118707605470485917830930599609664841237865614554642830224042110566073847405985539451668773285069486094426147287380903748056948778791289002368996025611926084285351316116250135334495903704027746893479846287821327427795527225621323147267188526953983664396120360158984458244425972000361252336417814147393453953496945173634399658499118964069475054399941549887759751581253595876107988345464352764125152902827985847853020250458070173954546260521171173561947586539953403137590315976581188785355035033389654219285358919263510298997017276489053763908712906083640093272729322545604379116275186066657423782555975118628132300085048434381614465462152847164905415556829417348913326513523247632602421638605879852735120811328144150359170297984842735245562254111083899805264987062782583103439027073000061421331817948595480127606846778166374347439971296432710021506226189153085992313652088025574969484731649295297611279993387571119736427023771100123184763450386692250263450644767884323417995988544154101115996561753620434840945726954610364274905154094556169963287175061206629089047932222644664477850276551481164997381873728007945192263184522637287887420090365529962612657488079847577029489292661664298420090068969538554475806452937848824418802591970993426060822783857218389900494679759309478308462352871862423999397962611200619024145564663135960070098605898458277721268221045420718917328212282095128534258424129857149926504979271901899636874371756890234611172793854619288143652849131802403791310533342024064306738193854419029286808290774507908107931537153860062681202201355871159169610064055576904851868822253315404325700857261391408907708014539621923985106128649491470598991978356055322036707635253165499093461454327375768733978455943113987354527029391958399034288562677977897831208785998369106455373111861596916700830226728089969225505970475953495787953324176080642782363320814034088723100445367318503214069930243410895464037103444227347365188602432170900090380934130197982830624039373077578888041437212392941016125600670502366929116380801066888006425301582537252715667025754620671045009930130604309495289690770517962323568211002669397053539719418937493184643752625425584629775961390912161867517629183220739493122655029598462400394186839374027629623145397949344469574198888512908600402001741138842545961481706321076951607478191394306861722740159815406448336370172421283003983353047614370693076226173084659177159452335438113200788513169336237647957949366545708910939693384926013293520168784099696997090178089982069029252969026486296853159096015592033307821819179959212859726643902288151533183379746322033081485641804579748202883686835187346132283877543732488015099991145334687403524465688329693444175736033010345708010515070329545449781439016942850805977886800927486807874413581285821420190808045667304554040745096420769298574538304430835811178090081170735271472272602379391545425318605102475109370563140691333665634378770816969297637969719613122036934583830524080181787783817062242656436170598032357890010326757184882170111526166086161774054157383499508269938354744280609210655040375562265591217229895565577627118488573210445535037649817832975040992681741286114810294339340367006647850022366661776100964529519857929276984234681364905015956504666450858619325968414453877352967818847015757066062881120834572439501858697660001051335830008210315154813932027603002136525436314001988630530030108172921298156842740682462618481315455004566323160024228130303674130768315585519133587229382902649785181817026425224414387803073637109381020288503997566582020289544648081877468692626729196353562715404245398321357283902358794322648406334145833287456295756384477054199674633451525830897011718557221006941300640592344804527649695684277385485560837161616771459907252797272484903126746253059960207953754851241530506425716227565802736875636584569224929268186502275830814108316607721708423888751413177867337255000006844373875123875670589510562791906542388555752947364706066527120509404708782719931931125939529719913709265446113004559992549367498419812244469269385952687023706212598968845701733851438251357008231645243591791621641678297392172830903747301548233671095881105324094555761779340426587126020140380666851869885599429031126930261745280148001974808131156057778424484395398789384346485598925347933659393434762557725843432080002532060444207530121336019062894678514296291792223669840786049945737952208739093114433278709219402999811056077567461457740489373301808682655444494196554770269908885425388042287696410031233059354693468077457201400448294888387543657395715411488743441518823013701535694325430684360809628865940251221100310610488673761633127546175761500339039644797142611343513973595830965594788084197176539460496344730828961079443982342532624235501993375863443648494573686713288704560699243745060885557906521272742325213781607868545761507909432548284283963803974166954113150357357972957952229621486430155221901467080255556242994956763030935079737726412233807108455406664519378666637650099888825294130618561853083437152305214982877698433698620555801781976548560722104700271003055164898112650986036002927897488949210655128058412545481141698938188287920453910494346817034470257670587941263824571095944551818763099124596634073251251968740260674519158192185546141643446591711499234561064642450737514424806474974197097743355324924121300168252999957955257810899554805776958472000765175255586698156875466899985962380125542472205096448528924403351813132493961206036109760296372060847260785249927826633987669492732294286388790962173091973378246375203989015811348329132950750680248991738164021886902405885596029793914526776277703996240958703975548305016990544906215924371062883973517719298945460517825518584210891785470142890166572123225119242842296181138574823373703508483561186119937949584245814422915692466023661635239016708336827381515037026815976055283283864577580680544126236797468356235814001734900002162894127591712151706344584646977322974551616864353148406289787263379426357460108456618896526852708705951039501660552700757757901178684216049250466082963154933748466513857822180906610494198362058043294164248602390143502055835708063091046004760482381039167953981293521287510975643101106651127813963641598971899999721201809877232902126655442427809434046622534832174105904453285766759379118013109160306325687505648195390475751700080266362551203625403389064522104702956532866510906004666941399541031236224793073847578646022452392733354687193210635187283076989277485645581185755024057539982641252323080618859508655579045007185783260010640071620824566926222618077097667374570759876861246447177782532591994770580155414566275783392631650089331838411969606083611739912284888825134912612229614044382620703559006189032575462927964996260102567045413619639082335833394726890053014471740706309017920843928396737209143735681254773024715266301158401374271116570953941085270508642450618602933116607873201982808403854496774505292213888724667184523690116491714925064726729249660178488843929296131270886401154680599694404909214161251768097964615847732540936949469952900819886893786466234343526845665017725204913938764134983843894369768646293143130950909970678794466493315896452530798720555210824312916165437682529004299566669213515579314703262823076282748424109136360395723962361278552903793991938196953493347002563222326226538557212077498996969993164611797715458780577904852576443171607722816283773326945588706852890990100155806930383125344454152677478002240191848732342281334160554769499437658491293362324205535359546717931201265263604092778478187203544715154821344275953110647163958741374968397120417445804040703534690553442468786635839033210163099632196970668099142615934574790271977764265439988741082694159391786841718530001429890545519151320292941760759476054497810547378306492914359951942236849043043454432293030419016283729778184376018899637593412903987112976402393567482504311051609494542378304330986234539033898137625202604540442979472495931950989628605400463657838107154132891050489106234678373628184442482450274592317072193685130747807812417413872848407577047524631228198779626301050542729257050011197780845034964929349651349509074001168980178647004717696882882507572583341982664661889743106643538351612209997524978943564302835243854621928088506270976763727441277307339282027697922707691397738818582710974147811043820284832641100657567668400473074554810470545703044717878097194223620003474105441633085721758445720435166430661573024314225324177613980436286527563215948493456459675969286129345834818750086345812115638641508784265082720411096007316633782627865553488210130085569443283662285977359885055115434378342063493994218120254642189505259145628991193938248590424248028665538277402734632520171154127880161287321138723045730526772743188177526036825525147760441774664649763225213352917296588598887389303194941898711282158021382432085674397593543807118120430754174752564698089973092603372639288759425001626426840272144681748586093853114314854193618056285956957276831895806929955490653993427607920190974914740948122061886896326568494271405774602840983079833604509434285685536074589045799294981389448004979621804183786069714250033852969785836171485002302721902809031621020697898419381427245103836942031487837149062939848163329408337345285304116243640321487244046753745833044923911160432383315770859777309252198507344767333162276840551108047605164706375795874721815664689663136946563483023898224228724435412332932469809517139168473782329541951739571232104416977697095643804754463913999747216673269090835327943604511719081511107635944514618109939189276089285656135530733379407988915774083756958451145987158023585930708578960276494821935233836318818228491819122631783927942305142123460927881577373358630622761311093898900500578275633977909966380393726110735023415801600416008585589781463080994042592974850052541986564632613863353386024004213367086697672576163287676333551599656869294740619011240137505519907756255194304739944619837251426733018939286806458596379469442639551688171122331823310464387291965038673048991326212067610333261629319355612812247711413396141363720098138404718114643625735318308405045322941747370369388345834089529296833213120297119735961422765468597951606960757661789024832338824505069427939621352148433521991173221486645146693876145911070679995693812258817608586917803855260041531744249612921759066375437094208680938359577260279884455328310179929590680413584885323865815466731822971845273054599475051105326968352192374431380624362985547585427103477725449608796561052098748797088301777202639853003745063545940600087547204584780383915343201754851192361335090350548125942012560180203948718762677564936326106902775209454011972888455940341821475632415553981026681208872347363994903282729485912631640375222985116527466739254638827462020881501106353924352671957914386649744156491174558532481780071206030656822019457596451255426026685732234982409875932556446011560223099272646798142602587939135139650014713149215542731500511724064535513407189872362810122564559349201283559433451081196179468028799836432635699580304175274850752222549448020547462980386319652755963278041712221210606779642159471977526668759456871442215634210116387744895329639283434543646302118349845763871349394147931605282027805392063787401677437437541854771540309775339449635512736807514374093194263078060502368519818298082549779630713936666850253923817434679601968991216160970168901191547134128892100281363068381854517760223643995257418582378757491662318170175454972339692432560677259876464525696462862298244707835471315750363254430296291165731101622468337212650843228939963725106697271881771953688962768992152215303265315396855126147567028145472731882030405341901132237819266790525196645026907688905689127464309037214127022335341368146331179794666181732757813976128250480134108417304071166285089031462656453659441239041214982641672177048248813810527027019604913256682874033784212002575926607311449693628655062575219282374374392942472812260427594668572089193883300483469777830128113012610142297615688160563716672409797124375661515723680471691375137211337505002055428128755081371967184138212866457617313650267271182288485101488058614698091032208398264366308878213186234114430556301063792107365131912303353171707811169340476128842765802926987775140234353825548282292889594242120842004312544115377773654065650528918426461658878365910505181374765840042609900085999204833847206229234392757468014567826446747079709840233968879876211870060439047331789625862482151971303276331303891611851850157759984710668720791633656898207203207161974150556046334791023314027598760059542719781833237004261290318689780842466233578457657342072858878233866305889686076372710045436037718969817738606624689294486799036449006951410344255928954345476196024832967022719376716207065277039390323544164900262447970955638440806246900057185956800185988993430876435393265013180673129824790693956213128553088775701202724452548405468239530917017926848142387403188400852939911240135802498180644852536027504661471010596139552305114783676235939845404223882096661534670305715242304613939039430662590235197497894852413509941089610769104207507259997321891376519867742411084395549429522235442461767571599748219641397710947738710788936796597551963819772484188592621075925158279192112898091366681444442128343459964185730591772434873053535879121549585654912129548529451674634916150758904151714302694831781771880611477458989954592112058660292934998903133575575220422354290456065850517361905380104736631481905662087557237081033737212426406388822240488978924173422776997644937142780540829351243459514493670170740264135885185741425076823901490795008659677813871669297823276769875536709811579164822379770765151627895664371306656024032446152868200294527361904638146947455071427407023039207559226171962669367015162036770496115009695958274872526936827616179950446345706399073651944037226756427428252975980398057102587520660368510352466744911080982213391473065623966535034299608190671469254189869140046480878876765893021606650127256650248736585265206055834294220481209513388146194045338464008918927833817630237103815324263212487288064275550897204995627351368515661454433958829683371424586024463047998533285594176322019203316735329168245250548404371939899052203499346843417643224480222396822250369824824299727814088820235697049903874163642356007154102348318783772543039128409025097997405378994037724681189416040646128727703808759657810931714263966436415977681669022738678524620307252249389677431153575264115623133941544586607850829756926977200468946678984813770674418895444485092879203212692418327619749475935538188764068988192955644207313779316760323945040982038622695853312371602973635770819909257949673571688428669238948994463132209119722678648905314373264009214114026042813987485525681960149728209842651521781472652007912049224331175223670814541294494615769039467265264959291811128917706724617387314503166222226028892688168691160312720043500013296313636914932598734944141401383376484494840861372197659440221786953652029488594955897641037442526251842194483388923482208916920907749405790557395131214704045040223521992326885124768046698518567220061941447056649462921109700659224566743469089734172885123894432956049817952653402997384524090388836679457642854062141162903667146664195916819214709146060631560067298350587780507820531984253940712496652391565755276956880469210759331639899275527010866302402144302563034479652115079701326921657156029438855211664488998255597905207455615626391765154606848981818986053393731506128437633749177385225882348513749386040038923588707384358883309122461465457288951217769816715571201231074925767264571807887139404218141909189363966675059215277896895369278474432734642295745234875721098464798087461376926949558713086789771118628886648626196282325577363548856151451202541235358115876348298881278601717809695850056991052980791799429221373974253140642449561918171469630814616941565316609937797442810545025168318205355357634486105892731068720914703177686879538438130881804716220234973262602266614825379884307329812533461228460874631421168444298635405566737848099076480150113114871495408997584591159966679227366880263712529561792082061364168891157189119433979261359247511445425060004416064838003394467343311525332739357223632439200082298990064225812205412829673736519376063403140427345584241869979165357952392267064472786107853555300479286535551938856896038466465526867420862604940310770850368324329640334383701030501679435298813707220097980289144528957545218818801869449962796934133213263855871248393536829159425509902293062707348681614259218268034225250708993525937344545594994637318336011685929613444280405084639500799655951842006168219067196026061635463629408015657573494204375679782462920139632416804309556843451723733914082935967833118183974580868849377844594036954984926159632161151607223154184781102326795047594131562709126208099182369336708430658888846726698386801275435176468733501877700124053985276492243934933458900059183779490967182153866676395187313113147312326118279687999248656078037506914682226023197644737297325391271748346399747279481436718678726759968401869484867747397061182908844067854919083364733985872469506036618979397413424932187448269421240794981399749617261920648954555644236263123340648315263248577667789494547884496268067719980664975668120138262480127402244992873772472270573047997283507673106466497888842770229198494451907403054127199289793440656033417884883046661772475014964598470223717086988932545537859987287347499038351034432445723406911497483539564767175247093178752733828014854163469101638728136313819688308239586145967273078694937754911048652702171796823899525430706481805421027517377245840060871432344783793228077412251947962545903937680858832884234427993267194138470503290284006799284834430720306067255101516101220595636679814286299322338251976652415775242486466523080024947457950519652431765311166941563835789663054503102735188855460518881620347900909259970531749873118330256646394380937373091592589858201923883359575965480695133644161508735640644098305916989552699693573495750650213751704884823351858009531483837424031089761114809586287890217971840754053539184714148652300525477276634473033631263429555725832789439054962384782262626036934654849322376966412039482577326207491917016097293959002337688251516471853478158116420029340474363472348584706534911828245801318488231888411772335210626518039654884725604027002530057987720701647045187166230450541649089001764418275008200531039301176759398899564814292896774611076835527358591392524943212397430676283534920746491951283207016567831500471207941923334770269488363648229768602746365708697192707375698809885253380260399721805236646030536838076475583927164439219920968146608433472831072086550309630362293527204115931786266772685862535879666786110013896718069403962372172480831297095204108333861382129033382756668674379482088707813270963122643615518247402605208218595558422834001640254885928620524936626011498221272317245117997967837155301396805882922569312038293601151663603022624178756281412568650645832822230485638055296511038133727472047124274803266246520446085550996335129234171228805648458297749182560045796568483734458048007827890135330831992752392917235027994344707311802248759986923905304452279548146134855506385481530662351708146814449913094998751733570791878731679512825366512424235976051258574254101325135479934329467176029571513968678135107629029878897204701054341797748720189032703116748607943226750631772193420004767592171654712512654814282199499838830691050669729090311951903127869736899296523949097652372161187903284774450650319026016271695662897083938106694096718764209226160865972785549922398203803517402221766314353092526395784254743092286693805490430548482547371272402681667852262373089641420133853706488788834700448629247562339216050420817688072345771809914261179167409072767225410334736160191497804381540924051740586098424044961496980218298263894794126270617474030460438116926195034957847661860582881455432062567842609051576220002444963161119020648132986369158387297186377174374986294227733122705174112717809843028659208473871287591582350846926342933546975364066431283930943389595773432568715946164206704277614468640861086400998567884117965201426508301653866129217110559147604609882907510571380088963217475568693222141774772241187691643798465048392306550289839191798880109774676038492995311277283383474959851379898163806534766352680131326548645004621336022251687711459366935198239376754341309985381089038008944176724198678874281676273386074766899711941264138867159847091288168425893625735474351956889000502071758536881470330968703791781475129801583276528338070525201160655980243065445751152836321388768739712858726761176129659699198882523112186092176597293090645287289249220323991955926717741238741072092129168064469513412852288839228016942267710179616487708316666651621970744016667134843599132205311526982159733235154521217006012489719000457539979725850927631888703690726798043320073077991051802098880774078758696038998946262107040537637931751193020646467715520592640052254745031840755995149233586947077419061286115927073109287380437273104642046251407203565227219416086958547346269931917546677919370831711441946301492752515146174199259537435485184609020528651657960082150413767305631819961677856899385017289465770617304893526814847709230424786442458309038492753505986003217652499025369879953077154652294777851160364460027244431913223344471454706626568918760021672562910087235825577917871685036708228559239386189269884320425504248390885835709271603139622768735505104926501908270568625060920532274921074786715069590489473280747642849144569819592589251785420072706019991221806966991406525267209481083601684343117077872824918457159717164442020552739516619140354820239815802643012694203171923890344455595635697413389151520730621101987761858452228546190088420374756829047280152510346616996384615159763208073704786370931507771449157099329603689939132076860466699553712314342825396914609435648764561998945503036801446022425757487582474451274738510815991994210338743180358982276994520226994518079841742836937303871298036248186508168988943088986450305092139005198051609808849760562808105311953009428084052417875712126699726099776379422216196713941087306893916867609825651042415226841620826388963042013448826008361866094661736813738489665254411117679126915050916339832170235721760313925161357768297328115861917487307361938861510496602994471233472701151762068648707859699454867144457878860550522271242318778383381555986044024901066274278804719860428247205627240387481825188209680570743363829596670323471520248907057891504426999218439029694327841279597259557821109038621876175149094200769392714069803752917205388371995568699734447415632787896055005878962899394816819453645790991768658908815822377751326682537455713948517580766387552105273825606255312521543074560180963679199549798087245409746183949475865966650924284578999009203277062583313268432135369201142893116079727547962700217852564285833279889731350554430429369571258233563440384093581058732350422592859793115643406413786918306795995379035178990621573182904240699586913456647953571593303774277352572906645144399790280724777732148947064763968043392223900906233474580430361111195354241959134608763049351181710454038592489470340447256358363856429927489951325073291689789731040675961444699668065063946205813999532948199185046598068702186417101945109919287117244216681291615403159198702643490047794570786667614478827140688822463073936666207399078132045450667566519353643821668430524716793110133338073730094939990783959886562640043525975961584366429334349802228568027580707700373387169111293296105896338363341230320701383296718570428642887593309713763569331933774444649330996240670874267982141990120522490168318260051760796677071111180633763127095396764662463632389365638507327458322358915003584296491189294166051845198925527990118583335172429211528356883725135815364720956308214167547244360555794913501808887889768045309588601521260916169716646591965825365896471570192379368574993135373010686648405264076852828286265209075152032354010042780712351244338515605681030076222847578176869683363362558931012048681832405206598086446929870410717444896261460548909500248100677459583909761956824188738566253609582781747718999000670543629885866534053459872788238964482475727322413365364055933207196312276050073472520762195725053238111734229935462968636620042571900799274625910709051075177919494612312723780559933858046416551112079710058436088564930467098634037113789162690306468468581604311177172463104396014492746581172131418686604496740981066904965086240492250970728386503395938944631080808437575161330316230213926251820579361302882656219801801587782364488117225836560840862747196932594536276593030047149145811533777282446735291025626140174132083401291202422954766659768658329141163445955152827282055428407575600850739935055367726081452022511293955572791922615112018992141276485732666247874406850208982146735813831063308043900260974472845619536850605514644409327577637970007288382831132821357168743811068528694010274077401928331068173428514861475604714016372478231308227034827841909916187391215831419987592226029958364009815904838465242715062362199362782514977043196724229002367729689720050022492895853736300812831885010670945163948012015569080575265900680854727995130516714815202301622083205956366092587988615300638654827178923486973730854889707125945749673596491302891585577518126700088082545865661594020643265321175402124594010770875819172256110651564802810226719280001311542283797896416265511817670495425734030382628909651049757402991797468686914793203235592171851385864367419856654808322925218334996717299051850528788629770082263726586381641945419385106267033799470069105847589413405755711641274887171927656863032024483481370852906160476685335986514800317775480778503050744191668839355504317617162086990645921729584145569051548707906577803148494555919077987872713219342135745751398761547198905324124536875545829035018758256371038855365353757818249702804776888715378211179461192691396879999449830233522851916247549606157178881509024127351825356341957512877972892043834005944773186662260355039896774595494360794208804964399626812765272980319974801793810012688454695917990145442071860777999674460572162334110561805538766777730038019186466632364137108794094110463155378051130882332589895013748374531976644316122626931243871719139700254721824970275847385560341671837000013184955391724242686207407641622084902773923011472885693039313548475381071508976443464193309718533088737121723137904475991236978140398642618736843610014880043211794099903113265661034491710969259993544378064888098597379335787447662706649147737268971075622337650544501069059283101353322858645661424228077305049122949940019697882175642207085851231877465608673497066332844714002055409713227042401107050083799150240592370815059403382484145649950367636690445673391620315093316004174015648378239291115112687925324124690473250544695801627099145478238976203890471873984141814355917879048904543348510583635288289279930793896779774141860753671838086492251451981493337017914527065387847954869456587072020317172051894901336783797058117965358999999030456046223066000940836604151310468369832858534889677325355793598728270442357511478567731940492616553582662989174620773639313501847817558536051899395427990074106114184678277729400416726846086839681968214921382366261780468911547895274943815129042591216947569878312689652263333740884541330765154550424239902443319941272654212393784087759540286689360615780033138953253540082698294292066958844701724610528421036510424717936043470126248832307322185351785261885773120953731607484784863711483697071653463897143680640138749896435494692045658876150976461322260659137679373220422746683809299011036760266069847535452899544347118463751359184449071125555653997698407758028583527644266338052749021052911502742602581334833185342062289823672507892738077288855142625028877285880317698871068176000983755398730009556134142492838088701653963385475242220322713434967465107853250585573683583582643244638933927028339147699799338235459461482691830976279841611112202163534536690111949965214514367402324277387609802270589882966800805974327597095998788312382044239045160471062047801920110720749125974868190789085979511114869849957347893362034561508398213345311739698994714257418745216699651489913535442982575102136669613253984070359273738102653209823335352923907635215028668327941726089568010779411188159045285656254367486490286657824333793048619848930205886562557887187324765918555751448464387010031051348815860736343583208945160005694471530036055285042817823971353644020950548667697965123075851764149565608332249776343038927081063957621156908139794683259065498891634951564117637770404526672637323763848876258591552449500208854033068589625346940801471484785790918911626194134490998352168244363473653292987638543035025026063712241879605213063612673652866779735949199568746622858570468861149050305410255555908684683418631250077556551239531483356020225060790213825932480948173062503857572320803497937524038436311332726935618520872055997596214143758936289037337654971167894982785675847674486852613337175607302304261034379259025789554024163354743827182611510838492780459565023502086056037638660253536454766275432288929852021163133745283381680286580037475005965505566306611102707438892779585349588335668559716125349513357713687727255712886401263492877611615574197385314067005255662539266222930571714605343736440204022853652339862799404420199216454445981890305171186079089914117074682068135170493161795406040733543896485683919511443625216829958111455785878614151291531459649149981960924594616702543652033141719134182759673887650377547943634099508356986123618393349326846439172814611140616795326773569466610149322922508189730865958722404528157286870621965767709308954044314440519949006681986949539904930140685339537551131010529172441797182024032083439811434008101795837172287993186109926808294072906209000032546777626696362605056360832359579449895009813130019268560540895086168752837587387060157103267263737020386119440931592006565893104296061144790838785165604716533700004034885724257619719116312619571941292681209079700399028222732662946816975163589265749428861202272565181149315821254324953060711278394086133501093648469710860339734071002508672010205482138450891471208958067627584411335051985997918622044336561323166284165760960451841369718543019565895279884566284755489692378649271181200650351399052185130232766743895691181023272194868752707833942555203667647949357658916763696143386877970265007778822371349285616158153557340939813454225309043364062118210424319842794750430415097996335916572088747772911549032307683518318938391622164150470026860202018455318114164003439057810077681758955400625950843165391405653043453304684879485365605070321573752109869746723547452046649923936632633309660174228230592084190806582827342729329498058590041946993682418946262376799605579286138877233164781904300113158395126136287865041946640813845194721504983065613663169890690017475292144101328373166436480313337443777294149559093593866752903035303906823072166366182664066939516303717621812120928980160988076741837809571100306832758940072649167883540160139796592705822439804532966059223587499023116942819147204068023111863298977707559635558271899542713909386424299014919652688220535380439515667816065745824601743037876514674207198063292741704211437315880425198679306740169008201261149216872475245821649569478004039012811328541428861192607137368313080184164905032130142048154946451241096936561165314500173701836957855887598292926084876025484424642530583280452609559071031866337906523505734592722206481640404610592162179999367151730108514481520408320842535114715560971717266437865237956450732297141386221377626717392462998805359748318695344976940053524260771703479781667489875720915848234373085862101657476388778494106463350522955408581882169947383794642598311754315615274512102915295377876920444985050821398591896509872952848414103068461690413964503711745307078298380000908123397383125607546743682893832940514843626400715932512276774381491652027453736986723021111345662690110902846401263364126164242237254529638364613476803537136666596762789332850463298872623661247509477440258268036282346723879498658703895372320193308675977229338994346116100901821088006438176829767390976636469988487851727910021670341708452126735404104854495994644223535486466897790242048996413912368071143637952336030036974237089769985219010888070620520092955867205909174884579454068109441038405038321256420005414424663457698794645166192931961632174875384845928474917394631121351580935996090297375897540857789183884402814988214633382339378502808535233653201336002502495144773811861649914910156139578645679766099897491944622164762903200355902314374960844904815463654357301600067294764265989260661066235333503366143233753648802158320305550212032907441362275483598111129372361389793858354410378102056908756792402202425015624295507593339052664116923486530579717738061383245763355775540045942402750504516757480797259840332400162953220213412374438761813934899783884741754140349086294014884921920667349667068875164591666260067147136034958918632700935990195861110617968286314356950290949480325365686691964106460451695995075339043329529055042732730484304318629200328516249553582306354152386212850405561107537897146282637617876235513004710747398440833576349330418041408729730847987525104818228113181908807511152203968015914118273946757726623856981908080414494234206376782182578723977665116021807960462857654221077362638817526894844911848753142726923917773090888197475076218990362120023264388079330834250971621068815897447792771537388117018532132063671775825364986914272243773701672223076779207989893006692701013728849439208614711181431897481981303542189339228033611564970473730971921622279468990147756915366682466396274152872004253486685813600844039066986884498106146217477867593394969458629206536930664516053712281923865858322542064177184947322108913268657668788905092733974246957701841489408177706829217401871584065884017842389993295742104323867182229407787057864054699912247341605101989559342026687994574229815129608666779219909250388558224110778347380346380208513749619387550517140352444969425049125068581533437689509302544776601464478025190694594146120742060796866682024771707095959155606897653871766855485208748963032425005593676677185058397624612920144665609408104848667974624958280398359477294642806153414206260276297925988595555290257963675570329870540786912519418790938375600240957997822408654606166674920633274942647716730956511067999217646125936635585591854290455786571204713249465754807330769757190546448512275010564471421820199904141784673768957593355873040250605194143202986917372179470216464862037576816077859058479455729348291140671023129773990902572283070798470309751199712655916715150500430245462418621857227070450374090709616080605910694370692236212321609120517686045103546312355968598101631170896642866709663998289830798594251845150805669482220160468956552910816707276922728792418413704502138494946675428558877641779509857470496064152723003399537803743019305763878518780199817963729641388322729957753399534161777149800739515657706953439808668652801673495020002471427054113714267696796616028397680563771409066858821671834982408126851672554978817313116250855781695947558301812337225662489827463064277319297768146977703877432394364915928508901189454928015898680101067795441720756155725345180823555310207971807615794994383698018092301900825879195091020813646318681200915326023055200993742490141038392299066847737207745562991364809795947568435229742330275598956084365953172069030913074456794809912890349384792393318479122343541592756407052420701088128063035581145103382306250645599269694349369092784545399976832073801056976291394769816209134515070275098684712432908156693446931929331870724605297775025635153556062515299635839954810353688728173552780188554002291903384374042663536016449369388118874971061604734425885029536839744983786815633146221235971836913708833692331136781295616410299890048833658119465836831270508729749025383605721308709924042676080588876740697626422157609759184644020417646306357951250747769443367620836451479028122903302354506938037611515109593679415439163874630322865852722180163042810492262726131602363984287052194875427683291438088450395095939307515448110061274981226271083663167535926404430092341716495167257101412854907992536068164324493334303744808282230042830821670627207271870794202004311483040717716592634373222859412731373229091294000836272710585200596135939966932500681438149205741154539621346746081427556256199969028987608133691099039207926299390211812926685663059519917891032480251369141119118515976444337943887002355557613497248327892370747351082443979989273917970154731707245491210482442629446319152008387081883730343353536274674381731691341356376391725948457520018088982618743980807905117053309225772482700003530855266121311577646809878418449281940754223398624090148358879220008506046261480778851874794370469824801903434479418268037479264794942505003728449007843832935220617844844777338389709705748621636402543307833754947204176471248522073568109462041792235329598245692019817042248375878904405494469016071498211760697328196837343176891776873528340753697007954486012268079387534753426607228495102187359429611045159054155344310430579942109844075495933839197826386020744526580846250372031436927969390462985895026262890781314205589179468161596394083552935666599424426976270932274176657212385655000677401233394186210505843332398799714422116915728790597499971530353412440195501003962862797680027617410801848548869672298742754694378700622452189228672171253445390366687049281910945703787985951685147996120373347265466537149195757616832440991401548012611000070091213306709370369274898840793881277134072597808537128924585306193115770243999308273054780185923729902659880828819996656111848340100694286421042505525272534418661013141602164864177328729518634473336566237541675690904502398226440523889381152093094914586969755704580427797404293457432722141941286383575771530420142321646723440643416944526478655073486958731657054151517689578246363370531738517686924114385365198802570331073018313971924428787810356761954973748225588663514401982367280472074952643042233866564809894050112660685508809344430434447931848138722725781590509110706194451010768105972265818429679787137871250497734742042006871696587443188167422634733977573942808748330435150517802461698389543313048452023495288594748778122147152362775277731685615413797687603920707908975792970188672893814765921487601708031363274929835089962426754019686454965811454736657781375995538652028219140683326957450819031383277878400247971924389682213379260912588134098577114212870034576679703571884119482256290410329027709093221466436939543781907500004623841708376747519667217914085455023854815455954508051584209118609338512662628137820212021586893934136403611775239343938329932497831015483683777264523779916055705616329916446551929021061207832920816002835150177133784565830485470309054623380413330868799909974190247204943556118106381338172313856702846063776260097250835468905809102416560354052409322377509014742425358350697904256576843347204902026286917870705101082547808063089076355805229552339188574466441065516541356924360515742204118126236538120552174848413219007244836064163510803950597456249641599053064394414397407556951543057487970264523411625424583859757912382190651526015754447931585429079457643843775748981884242223995139747385659414942081797481263002848287651839329963585533822828893349524503701592244776523630814808091569610687423467692508610518802607796242771096078273100201137943285177964083004645713180048499862558298452963241822773046397199630207166502621705519096991561015831266110872843982628456753532870905857089017809131678732451405641639796840510742683926315812392644198732563823737166456149465515517440716719994626072632066409659641583129555883394038218624702872932480348808793729824898253946252256807159571451494042450083200499977653810145408638786454401393805217444733527294312990163663289296558661650045921180878928055475382147671526976497627910972329159411125501904692348582667325733129837756200084000283060892332528047316729822033560934527944131458116929468699233187916089074265690883746125713358548764754411175772287227407224930583628038773999957975420962820576852774823908629736561726712771668034061089316529051222332949082600789950679434827587437074688273289252071659626414371722286044317895827555426570000149864762162398377974497394471824070312746742122663124711965095157529313659045115296837145421638125219006213336609010737923830410432476446915952955586995320229791668582728763760448532965050571725261956296686648859288924335045512587872757235237608642746432836920505713323693106953381449078048651923488505028362190694004566357773026758211023551833852515279489628407938677432269720696240665026429876601816601149878618100714503301116448902561309653810421792134458946600526906152356085304150608089810462437268103380133365399806836261410871239508781486341288842937854190203066022128723392617082891927909592766416394912042756978352461694435456793321595699492244184435240022147876575423542707848377247717040621644335444355244035498948513870468929831323670101146434305523713485667260074353318603186833773915046948325808867871294380839867108501075660575638143982850575809252596848821192221238785613031362810678604301103933936233268854514418092978027009370128059588883854929163026480687367142796382483750736836241903320917246730095062336343314064713260711980462432920790341208646169825668914978738992802480397836181725784948863463614390574115670221511295812881802519105437271941033349208215518598007547401103693924517475137399162104687483831755688499762893732651682043572476507839414948685371167341609244177937237679292322926973468182484598767867700962957668906909420872365084519407673430919866656138707106713449204588435033081417596085078815200654368912933566737991436654494948191759373006835440456803985293863526491931759451201489968443665523254907050976260650897704391358435334702112764839230430363317795336883778664993814122118646743347285355676964129440346158561089046715769250504788394522369896388353865077193839261437517861695716896594095283027836645286461515696930665637512019251041545695809453295155557313254706297491821016957817739839134932529823816731117207887337795765664115000951401739590748060955471110019192097983237136929971399409615649790986993629746035694725138874962891455163906785837113231098827941132445542279774004617124576185192606350241548397982799216101066339818619941822703644971335334147885519165035205237967423737166781890468200167029082027398840810266999349772965453267433679587055206245243214017649706649589474327189208091607795982277168847223456538250605743792610070148528518663784357013015217302089249485643454076748347384751377056500387062843589219316886752338257402147279945485094705780319842465798675820996226968899795093935350746739309246058017616476738190237567396621636530854811452273139820803014063954763214333569752659001074224269213286851038680834653916593832233814383318222047665351143645720628619086591605162715635181619858772984382007123138492284658447406399830759342199969941960538705302333881123871432934374254811001740086526010311505128962932906401724173903409167095451845387348475267868169956773290527239540667205153950776929909906651485534107406396409512524080707180715662777307539341685034869847458707095542102653158270570248736376430446307137056989523585100933318350038797113069118930502057793230549313259851262032804686968593582335453205361463050977389564472004882130918224761860543302875989336670080093832434229003032730813280604673178034754617018046028356724559404184078272479026192377928860265535982464560000952582615716461952430773443096712047934101475675407142662385131187743712135853061673611797057023125727623985213779839113224664509096288117270095872625986460377720228090912544066670638116505452579428744706729393212666989157672058433806576862339118691708455985933695751237809826494769372886355566522005879233656277617944788281779655083899360460830424131769148380839005630826128803512494740612019000297798362869974969155951864346268532085617524978469739939110840402900946563955331814076841751620987955855748763968401015133509839179475173385507907825970686228922776940060908011171659686427054497396700444394236563290719781251269991743035236505731274915393793522147854634213065615356560637079421987198737950477662501883307227354544308508138053173450888149449209938100689600397007164281568634292753216783091117430071370215189376196739834337787339831899386580289974718646734894842883171344362440564419267160924249625618926330767171548450178398249402164331045228269859788634252463450778540375199231103830276897944758921081862790644571836411565909666287051272451046223499360050960486392093666675441406581186533166602329833419289705512677323455485513510178658071861925248380472268373109436501012284706267495533704423847762386859844961495956711894559926799415246093322172511466295954631120771810051671819582335421789255065762782587260525590903386930921186559639787024607561318398290529790710675711696949653408996683646453674711260402754104309348502996897206930093503969812721364915640431969330309500132669700109165510512121260725262071827863409091084375872849129768005354817690593950791318179320188979942247528396130668549083986153811743492745981097836227738563451605056404050587642120326114958517313315303362089533743628957316354830784701669731811112017595939000539981520564478747206470243304216228610301323986747580320257881545305810689588864160708525515358959805415234054682123767033418323088179685251790908349008822811966213450857696446818603263512115947798412537056856084785111369525427939379967012194890360990731842419176029728516478686755380936730511371051906296695607395587259674830504872013894730081426172374612091923772479326953342074328245826201429182358504917266845749682151094925684394237583967726744470172485568931869181160978532087624172236860048496148013151604333333141037094967414355949319248297642811933549035070806033232599155411705153849624190820753185206458590324452284284034779273363742759925106105682798878961834892836148737870131491271305765748279785056346042425090868096358460916832073890268720798218216528459486927560564742247737152243863283080916201029334324606770221827015416806769194756022298791785662770231532471400008371220758303997608106428592819941600804217669057229564704119412555909219110890712641666812461299335950649940345402852887761981937190720411646901412348642808118033763876137111392683759706041764842691846627762280230983450755093074080506186557933170511790816589075086311141688493440482274674635836852250385286152555052187761148868953144401795738139273576121497674022888387008693395855547551350018882762357776252088588472114354795230122570829319429387801417491991002514644069128660754436788355416874630826038965292555855930527692911819695855713687975914063699399946121455042276884894858481413057342997520962341645815981843998562676764933665805782841154299699975487719470700937431046692054280978941471367255760733834699455782134960815283188947909064574831050897350303355460540205211475559334930201267909636096179032885419448580541194329650768672298515703238638901518628987218911791279770775756512514469880668040721670091384074902594676419379676456761312177845453430993128306995592179492199381468199043610553139905609872345980230007171787055729260023224026652103044563853168617695333532665366703573182446146279652511329888629820851039694757820958167982128175749926016633510632311205713337328587609165219941142194022105090179515380361424476846614359921857212317440730856635210341139312753386200373388849232679416111973822548947491189204412441647036887843213022372637638844354650663739925504197936909379186896258794890378080332751360643743856921788090590345262542189928215313013907578287158075723150718212156488742804599166453747031503814235674479075546064773538037390304035121486409668479034626085383035051635426492253128136029870821169897066942932029873966137892468801831101150759298214543861916222468997545574882456059482483656445631873344795381743146726255893975533797610555082674857897637788496276834644468421247694525280455642853751943242711739077848242840438256538134315414843697498257510683278271249133560187844115958597384276489108891066045470026766529333249598350841014154464802467062700303374645953965493363772861038797663187420070660113726413500291883293815827835132504679940818622496353556222087928386167457006826724263414752756117968049737715925705059394659177210134160237103446511347766827924609921835897314733188153980486318731902696789128670042090936842891863352570652393136395508446474176722824412187450963929662738529565049166693388660158568925078861826164416155925814220727228140972086642080134164203936754153343414204953922035126554505220050699043125408006631479526349515490513740159423100296766467849004264906265644552879766482916326356898183528820639865991749202672219339063484148697433841253243313411101323575162443046064747729332119052562313100781139464343029318563082859588453154508724690348401788867430211177651772525055350371949043497881101808044660260967876074272641768889390299108873619455625116663560336551663126737157838301118229706050305955356181351107046117060441546945493355516367546726461299681429239195564297308611645035443201677991730559228939276834896640823086839912138948773489246997943219157455631209000869298237056152362649329357706181352248437945337275253416636251070639286849687652531127760306492106010562160067896705423518890867147541122403248641541180744296589194005768991230161717480757321736726369032294549068772885483772128652305704945970660114661072088673076460435380337443295827693905450137019840426818575994488534843752693064312141491929938277096431805086060589402545229555858169869932027485426995900605446690881328089388854057707892240730569877744251181207903051047285030094314807300883079239927178953676023979480612656085288712836253427848131957671075056926952346542263912633444122364977527516052609157968560936585322636039659315742561197386572900323519895280418900709797199006637516420902570158302811585384703697293028142720111045934626931825692596469044160208792458207834949048073348047881276626070128061242205394357374502733415607744817248488188666147453664858946501431157065383093296559352184782819939982075790867807607564413382318194820497155639473990477818400743940930038459197167858962997678461131464660694452473292088155114091459425460914209758527486834483323640146982039977342439881656667957763708509758525338895417629930671349596292027868861303064639687726389785715313325424389530458203137524543575074405509036718402208868956209891101512152235825249778470818179728057945248675802564124307527563012357834686056731420849103690386917127933372961579246518113537875677413457444945974367055330606742535266172390071120288866661982239045064737355342161703409914004640617485676056151395439051403988869843140484905394921709110495918230259543928655946883187554725755227210715004594862233379996448932023679879164294700591388742130568421163814148699894032604667651770128694528969706743506978203039072742192150234138238615486542796588635516286306669484338545525411558477918669677566030604599574907789065125719195798695638515121052843193518623214901066016230146443442923098622160632431909317139008436588124172431303298491336576271020770296452080247116085922906993507715433245343837859199226938999688610447865520135252631457446911570034883991666556391696436018044909283481712610175747418204845303742731657808679217879562926583747492575527485205598530773463606109817707693892845289476251318807092219297125492755113730872803301233944117073882303351118635539792124606690247573785908707693571257207897500859572679448693042095059993641181499496797161413968762953095818013599285451412019598191814394815037813553186491476752641006979384063191019577952861966816991810813745117188971890518566773815630914297589701430601002562412183403333497858005056889345398120369727370639663469796894778027780926093621344017288920721630052517733178776803616900578363621369574066854910003090678091099738193905112822754588014950038134792345110679610191295105962639344942380333070156704633714672140166265152631383068938017128506664018320076026467173869955493278227466758735553531358357669327631019614473224398584948839052815198880501374891890136856372913486905153915820327653430503746425595932950223292244120783741590733442566419729189430106649143390959631708444930464173193624361599909080136527184220806873084143593292727040798772379711639488114727842307499524791649609172173643755266554771853273338791867206266714839871180360673203048645335267438678739113724102129388885413586131556035967785380209175970356713062747337567517413561852036637425220395673420185849809284506919262560789339086830628430656888570901213205962174822302991231903613195930160267846612503088293445190185213382403077361627849424538716589491073300807658014019489796699270769290334010644013890146558475679786891058936546276410266670246971829490040197997124904548009931964581363334413922642964619249097840909370186098616607257712900133833838279036390000785276961880693010680847706191425154989643293769839723386746443161096959290064763794508269646233473523461383677639358790180750936583399821428013635141461573654497820044954213633740495248307586695286193449449067033148681906694938639704671749879584358406128268424439993501496169803063458522407267058697306168505407182252538111223906906020584216795546249499168909433781304151702182235745044141615420587106778977831216384168175319636213948530273553242390666522809776339480977181290811161389627249950314533442742301059810507394972253913785003023005834658514310161398284609871218200291894374857210935433089894922399752764494453736861233991909969272980307396439734254274714848800414070919628718469338219236049022470549319351516870923672674033055731802678751822666182659866507965981814771619894538975004387913380386294359268894748777411428602505875362272132434995026426637451749231915556421443504741981048459477879970704073854386350403532762490685177801856557061431121770494700428957437667846169328599928279945115036520814176101403018597774713235755879338870496690248320150832726400224618683106871391460474210247074899511772842276572131630355788825357598976161447391068979242897740825935153230954023099834991647057278485350239676084236943348786937693250256493677434711622280020633017446187963736522169723788512233633849969549256397138386972894376796430777721220836929473884464305662861587519005448035224572491069919061230598536220319282863193507620737574441517724584585553994789577635652833874334009080016915990962709169649454150896705886898224451405057872513981926020493415837605783844727059838497539478003775540873560461145664774708100409038940605679001976827300219520829873981072134416608798742186764618516690264154907498262892894314527383749755748947634007573116302098890049790960714532578328161628602744342284255051582314695980740410225935884436228699426520644750342108673908952893308625300209289552186343662306055737846865038208165337229448298967589718082520395641817054070723585015903440325784016269227125667215241732469457314636778230470754381020658689158709298801281705837192494971455401264544744806926533774949867180873474638360704692076408359977960683813001538899792643809845457761803935701936301982876921409483404062517132802683454299442858547420879863140121544816838702665519473107952475021436293068136669530572265990857872958405823754295565963480795625526751720801151259746387843345939278948510592345103564422118207480054721222704371237617488041325504766282919423287415966766736164839629213746768777700414180905342744038099936977821251876548842074606235713373996833453099671432238838639815359139948460969614037070085991928028790052337283383032311826817817611195045301511551520582208442110227282698334003208645965371294396189012378189134656967241545812353543337279399259336709267498492943546115420764378026398512960726329103091164954883708934117097418091673340848322217285366938269907402322987629045312629074895431161905328124828377928161837288870070797359006222808432394415763574593688022769168637550638310346611871991045626494691216926108765852400552653260057523435889095058641601367858210877001649401285540477721635623982385498431750219605993488062025416862008243440029597399966637380489634089354608562304223972442331856460523035219560146885356135953855157856687449483185767122970809339175640773815502628461690658050246881005285931464181379912444853488185287096222903794218884254139888221393783621109742882743272729282488703594510049426898861227622449677924293057495774982090026858091482181423680805109075997933243584440618684825984654394376075847552611584155769898600931575293347631852818419324541795876544543088622347245676379637936305106161064793387910967783041196329343959382795121012275964578857313181809216144592510033220489054828218623325798311118995252500856740788172226105665030021636807381304512676902267971644265781720099246055569707979166109701434381586241785516289173846195988630532915163279238051655605893613400161576926065597665662679467468317378567343656567284309107522493233052726228090602079529868736544040641680526053642430575956686572021080770972637143379809525119321908658232326790515721300496460548024127979019607900480433187108218504244483432498040450642448456982871569816991889740308893701653080716652710737847132126482096352518370951014232936173693955394820251038878567788565167005592866897830888397145372652508507516143958932087759892078707029416366082763760218566264582163483660159550052355445920563939700010114367754932952390591539620912664881459068487390722738143883162278344933174058773444092262585515868588952597005908001708462470601679446168572270887868522504635608559358352352156732747192918256049794210248114177805719037963300144417042963382002016612456940559524506721300870831749578350976849202839447644303820454785338981483317374428767632229376649774618045518951721703841829922749454320311527002786714884298051789237834032494975346673820907546466553939695903437616429766770425687310092275815530600847631990311296642513078380316217187102505090447121527986381071201277421678452252719574062163075656613058514403165530314774015749380564060968542363563472979139068737946715302315011125215004145128116092409695299480624125548729413203039924072082971353245595133977085535439171969561153661313227806015651348322141860063624604969047196958990157757331993370436887020350759532117290448885011337817134220722513290102027608905531249755200216534632946364500830982621875787225550586216770055818530919343422352376164726663167300404646562289761322745312007216212672789393967853354089329436503130940994697372934590376474902137058024736356836061230000632582248105572964265127098906435213631294856533388061021268887857323734665543038566129943537719595680579912647074342559170046199964442202358759876052114540714968554495019002518465064858060668812041220407568549893323872336023934752472914069431228384198506618741170399930163903399877047690291141917682099753199077031029741420802609732234051461255532290389763220601543931626640804128135210487167640859210358901118570830882962497586255401013701702512404039754871491379497545804635996816176942910050907880695476190728334388665739521065811128729536742206199979222844581446775803528804442877737048202407575138197309923785500397764999842825253674570644779840590692340266433161474430283361890369939970983995301954396193400197572942371953756246658265819719019727171417588501080180279931701740469321905566224828830051515618215075649069777473675146893536534430844371067377329480918195916786923855536406223476010061425130379186736051913853294434842338737438510505914891063990954696983797510586375957681017840274065306578180266502030704404632382283914969698282685337391706853359238050843472093623131789035376037818949958781737458864239468821982039509595458655460071405088135320268498156947619219546380408907665241737584789162732757869896281578645093115843487285117597106344034838795019496428446836927874540613192275492534396356461344042597596657049060662318622488763085961797758961671402389684865204878969562521817820919605870851685340708100934332108083395948921303455689494959807743812070955075637643636649318076686618512882259440977611810894817177195028452007821202820470671053630698581793837837849893849351855903922896223259961854603598444681897621723113181899920342061320894580156471292797205678393419319198055375977943318709447618907591955768606159715807900490611550491089475863964046462485193057550762351347486101319117814186004528237911175813088746167870928030631510649201513277489585162568328976076458338083501608309936613452290032568355203730588687563203814568365099603505345199685912765794085290373932378560194553746513692363525278613452692526277854324037225910855022439202699210582552380264961442508015517871434534563560720680899393883298781183906781731013671477934322290070257844517244407903937814900297416517269646502418462362171467892690898040488263701511427263656016851468446971002869740101338833702580069491692142739143776926482138117131815636625506773859418871142297904196528914837176193857618481789704509539679242386974190401652854152863909988061633647075186609629285683710715896338082869026947141948237228564597481095682335649256277969216502403991342563384013462035077576787978595607595715875113677003287705160545926781776357274056256206731920293705997136396840635799216695345701669087869083579712927044141504533831500896584363405556745968458330174574404048860638292857213939744785284265545901852547956075509205357650701233246069491595037189848532754404335964082025612285387081632613534402600588049789198531411441878375537377167023454593994243389363680377513744385378342215509871165553583098805124434766327593193020151517147518383129236012582640708585530445311840819721517946220827093931356856451376694641849269836687861123611494016227522213857186939951996069847196596578725109785375389341589032400588703213357736208916159157859263505209751893643688464157946633228439572442793108736220235058166757174412201977248620030762041529189138494814156867447436812568346029908698606033333992922195301113613168691814887673655112689878892837687119668665530163484784288700325511361164533470224303241109463158561204097968423239219272774051178876709461401866230953496547571834485358814974241351954062153499994043454521982259327230151425664850005663956442145876017793760450429718106155227998992024452744391008443166266025457261528000768355328580609259930660677489135289662816729742540873474386377701368571909450020005672034240504499251399229454524407372395523795862362661674532891284082314945217499170858259421872671300836631933714580131034566079942300469503838997893503475352223766662949083753619875524710402129081192660283693588169070918011987402041702366704263991676632109440867961470448039622685084836893165423108544971062243072874118719243071828759702435524224563250836338749626734216627032808751494908692348544468335392423950972874938538030851620208430946322023238609907337438826377335585140583877494878652922899315353746745017194024184731643405902759069387954396745386794402134783392591017974033880658691651380159961161173382689487286979513413587570634260783495692263755804880038997862787108462635307605963869671491763107411290028711945108966520193631586555463913610953582331066130314273195827417023049947611463769919707133919033450242797336497555359298013407075739725001181173955354854896394187826041971985196130186141045134954459308403000515950482851269897731028927400719021640222047197498795398016907253623681478595167399773935925263910590836371513411169949206683858764179455952347718033462589600187678065494967578231589207039090498490794153177117613458368768826288871058530410824416588698439992501824781068258458146886089007659454967533491954864206817396532816746082246660697362002557407850350810417936539861003053240062564010702558795693540504554796032024213253729873858643704422451877597725899951897603532753520197266086983497721188478694954728428735682918574936300143614702956123657554995303841821843224477800806253328939853769499293050867142286035001822919897229997699358089408021397983076525824264912975209361213783478322506394202790987712279476194374719056310548491379894045926520621742704924936257234993398182561302564709422915556126461740227954933831797867368647597049362393657095750828966546917457884261125012737531210498617531805732504948540889431699282635592599997161279420047794074888571402800268362233771442436316696446317969840155119575551523571231196015254293456671178085270392943243548426503637383362667171633290851865409562867928915161557774006070363065092487083491956424726569947516652548088823274086029814729047156012996390002670315655645446979936739331005673091996027086482358482586652452258880302051937752519963959975856183617487884594655714551947648384846808764994828185980182153806827531682606913664778582799355081841833186196560705876074700605519377405726679576188986093535961184828511792678114669707155672764865729815848147324009027437481363765691516488211562419147206288993624984041266329618716370358477253798612388185113761803577425018076465576106674734508244245048049865149928641521702863020965234161079633732865822452960252647506540213416000623360123690330409734943110856163619129266513720065055073529986047971630739248999117100529483844865647665298526265997116535158507431987496667958458062394890331181733957990505916325900303015835346246878296718293532900957651424516771023191984085537972215160148825833778902741655703533149083726618187402499956543481347929377905777735738656977517343810820738236188047632570534770297244942736737988555636266213369653551114107938993192538471893232560303613029103115107543827863582038209800788938471154660722077090040776586720974886706850108359811101366109334286897699458222643441161551376602001742380195681438684746868883957742741606331619420577942849338458154070260985911509880860488974254971266463625824372526955058798981202400168378648157803954742001917870972052417327961377831122766104717022147106153288000554900732576388345320811406826119049668496498435231237110313788103407292033223662315618338672129638536227560711610347158957012518888611744733025136036176949644213883658298939126800434793465028977587418151638479186616871393874958385012100651371574509082245970098104584044842857504545633849250615292380992009709788894667900555333350338282377831623479084611517810259319698173196116377968571908801584615756671690883131072425870527702206961347626307049994408856885850248682531060922710169130399792188994888791521191004692663571604383660723494512428463297859630349895946727910463341827983626696815054570484131399558981355066145602356856434305404117099297508227654270578095508354156687324060792689751480340175274032788155636673000641551756812007627442066705284007577795733912016711502487249621166055292126349689304596456633975762171212427817538555985679665591487933609192351877958907986634485206685168784431788453054098108218587298014120812415053681024792618199896332339877471037011896285347472085607652249976694152152918436785245719438593022620902935128405217630298437634154564515855847636300844514772106683300610619635357545698022905865593504044963532402894555351014852999683127749563544334650026384254651577350016967303036005894005984119162681071704420715542012404124389999240729152940434718499815464593805429373688014996048510407065196217610742848104777738343664914699010764940601639660883069317981857409200826390160777442457292151531495076637330496375657562921052032846949612705438771229349653816840996346877640656990544608402969134572764035194066012489628981651581972110242285731116849815894826628304401621897895994836853464217673001426847663270631968818841591139896800228947979520109202890811086337518203546593047866423345446623784744161557582933539826489900335704960452600796911410828311234455778461770830384837588189764528071514931589229435152895651314452518765490720613009747995331113663033900414756810947431256107652016849277072107657442919640477778211411371854706679727987542342915337758129036345018018327320076081949344699736780776134554479942435359934889175908649468470058179556941821039974650643503100167482255669090107822869025299709813520575929340844556874110235166044392349135714306143030184413281938400643078348070632698570804352803915845790477534785085996955214552285851976047013054848916264437272998761667567977912222308979021981164808839962810094434546921760105843887647973807850127671621376753084831637443070041320884204317259735471197299003165680399316053093628098022031749366733374604946663285376181486819052347914169061990138704234296111049160700505072514889754150973534044363482506402185046230224921924519963093796481008720606984193207797254336563596253590701315139154277645436858830195985901934006171408293210122061778542740947044629918596180532743559789299670705249764172696125285140706664868150241385691945860853967783813989885987319241615022356124007546604084772773174814052231303697642256793990195517984470002987626844647188762501933281635099598366567270881997525162155722965586962488228406886126084786101958625407486168622066012815299624821589255961165034641237000544107694038576171057563942174454580473957761518967499326537792285065972928969718338388994363054023037358614527518303125530198800542195504611462454535022092117835988535685970227309394411887118185256770898533247928304031811452887799817787476990469591592370048430640596989955012799692958182831532430967722840048061131854014481631888023351827357609914874777113745158698459744060337709535597874544995781656225047376526576011010100633983715544851492869711140494935097727262595023163756801425618498940229630886003327622568877721841605695163444541332888075760655413861689103940523880919046993320560525469863925786692111814937486103086766567208364554136809555612885230340117259268952220256548866887296552589213109355157082425283776396229004022184961101187767955581065126242071716637923896145438431457690321248344646980303174059147318404414394524465234991601076865189049180204445880412482606133584592554736076373895098046050771056645789223347480262234877574642716291371956190474822203548595024959298074071368023422007207198705333128628225223306933619369390373783093151649002761292993830404643916334689360260868254816947548571556918463232766473760277817614503385477782811440025470004705009304151883593528561321103510227108683678225290013812166420144775773639906706243636450040919107774854667401617307463899266897371807589988788370221875220380965731467286253058064304335481649862040968065572106597879820481063911173344381817070355122078951448506167298080001662981888105770743522671616861383978886970719264819394323739929111072540194397263256790525437437156463831079722538081359007735226132068966849101214558656836306323270685252878166276649565438664423651580128475019325209264849107673365744580776450839524479082900139122264886750678462204781646904170621294805494261177124976334741728563288967088552961324846880921983651179604379641745872118579360685217695447512385780124508853875476520211675017955791334148794248990029277281897293911162873929652068781345224900157307268815195129438408595111616921392037938855181499794678268889134407126660435696888340914992575436222473902830001223376414506894100669768101211850831913114722919661654959896773141795204579280404384227272108510070816461648915287779199078129547544224343134093340697839005587520001651092465420532485159250314831119379898183208120793462641717746872223270294392462730564345425715054217900669647157519534625595614851113570394018657115917111674539200572415706272089759593648614864066118016882022592071599000662982339463045221234834856683596198444541184634024394649135101693215815628326136846488220234327704188904944427872434306891508760463751988645669758552251088590892099876944955221708463618788539094107318300609845344605283530723340977662053103259477334295683322715222920247900899338398590240169973326744423691036133587123353627640105157878438179314989833368178689447632989585217219505571189869218856357731427637054603969110576204746249279997210411082966517040947592580040596396842773889892256104241730291124970001789379853274313531900179538195103418321867650157668807322658618957441374249189906666740054388513845115595661822884524668503640934905113338610736131591722276272405508304496397970083004479360569109574555784592859556220368688702510070158922056821219334205471906653036746606334165943765564284291097193464823708550862273397197445344118426061825171558281717571917097868264700636550450285139907511883031387403509438023218378246730794745473111454887026834666889393120288910277949066321182677743483988671952739933535149792738124627980401655383515635845278928205549677678639455778900095249955425416591963806216156917574627582796944771836270245540418498767956970114106096313259815993246138820462725932475707424498388395848189588476839870170875413380589375750099122534067983192705791151247968414247946323397141678747096844932784850352299709821939918069680736829294410013591566118648546095975343935907708323499361272702344458916356031301691150532576602040171138939249010021987362188181412705885824682646970903007128434125289167270096586445414797702903935165006924693375474997873686115802084793060734096635185759964042723330312661115820041122807510496503532547291076171357263895619568024251300954899369310055902686473688930684686314598472594595339667359883711665895261759530753091018063985406655924517509420785255886746275649412767841758841818457397682057144740148365475286263048154255474666420146343302863606336375752542956447437914729699868008447625075459121237492805566500881325839865966520273390508574109482035804588657325738858159122239480848881443474969129376588190590479881117672904126237978319122384899042923313843729277208674225939191355069587598612538112732519685161729373645600770432259891813936064884327744302827403955531973305751118503117551027570183230223092814059783778610476921589680817831765084673026179837507417664495820331284185589826619306083169953027269889294559715433057936904063621688936902626548961969860469286894771501851522719985652897224077913666354285750326212591079651449126340938299208008101347697291586109987964917217312731914472667680208080815633860167203416580458056063540577099009471409551645654705754236372739806993012376816733886685215052176171985628143372055991542835055860235668255033499469236080474212986020987775437590859892748740452211156017994764616041642860807084287392756739038840841881828933839935310367017902881588825430515153849540102515485453145319942543526203047860198883460416632559625663720132444549752932766899301673606232316585518789715103788536721762197923095852120190680759276495002496450526321193435774116835685563644569291186342698025561178453230764412745280531016090747117280863681872839040739913997775424614309806770045557556839026666459239465103388270780495695067438811472885695935901379378729122216915681186607503324023718052816698218955308301290256677314241103383227901127159744619224026952323876984020893486801187581383285140570287625494760260616449616803908416080410966158569730443980847979380464503361128528525401013849568000227968570390686056391539986427339724193240294355105550459623533389976448808001203476207328700451977145510515053522116364132896350613224157642915484771283841504288929705141494070645976198498699063935229198270216264589792224774545375377160590203893599146652810958573213151818562492712351649463383092588619506442606305154676045471844201294229079539901007152932547410087491535614125510261735797724838233780964924908485904980429989481796743433792041143566935774874825968507045057968526704654921941870244915566902666345707112748119172162959381197194806168308741404042848860736039514477436149444538828031450468297684153840969292706797173146676425986730164135026560136292128842981115018380221073784280333885151065727432473730450922332763747826896840221623393811631279824463466910965276690914782656910912948846407952733525806432059834116459052275604183182653107896696565793395959093024272096263186135953239832660937396928159556230827599321962113883025174929252626818619825169761567986286421797383076424046286537586501980455118962568697899026016511360120076813721302300290802801334875755828249364761959869924795268322722059688635922265547973155757323392257728410521811101661800076628641451058899902929037931941949733435619263369340764586083661726724530201419934539463644727249975132554712632326652534104950432502690008968371220795070840920051721516092257434082228777662716707044928070813490095081102196334729679705506512907923353673034229985525643097268059703150857034243512836370150540589005200659586114780755067483580666575237094173336136394476655025195830569726800247239800285963676906531665624748440307052452186277290933497628014069086417669066359467605219512215244268154012350211039224828265965317034036958994262739315240613819489615563233447605014339663104189652335054991565091499963481857102084691259618113778419121672506280181238168665205621048799678967777859641011785536836608064483772988199308593260315421633943656465901245519634729276450412642086454867203412411399290621956150000767748048294647140867144780608753221347607761578813934988157346348574963233668524314701887159521426309053942350925233164086925709259361351997605786938374617756189095144382977641263636049680424116133772000225462110118121652083841391030670538043700305751164733694159396345972633324810816877329762526839670054376821244130611757236701075085207043159640399245739674863008817173053258556921956728607268063667361342157200882473565009856196851027251320853610938930877436443384036083458647698497674456672651863359165933626159106916134481321370310072610921610627030775625108365346348286543244843409613624696756267837839684725061791882870474333698825576401826741887997192327272334704348958934908273939939738222830915194153576210598489230595002521950579191982397146885112460552450302088295683371203428538131927095012978650771340046552325818994939320685300791492174695382375165969512823748880509305462250645697908373704710810764113970672443499669182777269965282359682709614583652282324183148143833774519553773101584695632024741496396743189960993688102870013236955272610391026462705988224255377064756542038214213964368393773378086621244003597414180970599342476151974743517162326636980088100503049702755126276673196713421963345060739182406270227537817515890783340456255534517771708061426448587936670870273879100591235408707272054560900407101271622673695429612656721950285470995600725295301926567304101669692139666305352589079899237587195024873689875327079933887027773180842697764523846393825982629281898228859864767138329485027648023102648461791564526930674043473978935745623210430240874892895534130935227725904634018639428505885497772591942047877938992515079241206453834079982345260470152159433881426873573653597684156807853162564561822942806519609012128061759852483924067747178566051078789835222100333817624145679024053236452205319840606115857428546664307055200601209718101085800074952319411445342768247612199390500036705104949426482697452522288241256318110677660429387372347395074419636956112273218979091150988756449182907047870236378487675297405843241412511373451182417413415651790818799454228440918187569905685328308832358016010719202120898098333746247339171702307152641223330113258278870230189684714544122210231389450750498791895126238265331047980180446016521249939104887166207960868946373881281993425316126776561197924117266840157839665898460187330968079604644381176858546952191615656825087299074230208856410520547395353532225129403099470301585701722310035222896879569272866629785638410588140039147801586588403080443553584949256620922899841549704169886693220456568201293453880956303023037613625204983212811939506384387411327994587339954063198498827931950644271532340870651125138522042215532356854515807326671861277698843362172236826895666598138027969000705358128304088496005944931657687165646923732424779040272952448388097537829524341141289026498561166010724811622547642390984112035245981418989701167245182062132307898270107015530816880155147723501126151695801786194415121518681836178519671770627242492555896219310327468854732087627390729773838652668121277774890192189771714260710356375330528024988619168431146380987765773018743462957474368583596681550909465204490629791655523665704482533385572475201089705639083631676586576738628538841359980682341998369053468863102947791938136350929045796154351493489156449512037885903234249438136243941815550531635454933154722307287829124201004126587067924760532406182066419906142664635591697126839544323555534280962950206062735623902952942713664038644208813322913128373657347764820930396478694984854944354964660443945569010364909365221983511248778617292918455673023456754755080835238026361077649778569595094757131525665450790510033618371490561522611025842012868384838873523236755741326105821200227511073681878417633098237677496058265471490888822291444685341093936822451301177884826521747223468002324734519033357795085871746661158272921771938967151728478380823275199471824724727666871969020897256005149683829512189214196362409820948401809856172868117668836943439010816273620889843948406996459437148232156175985310434236080960518825672238489620076892536857455142205833973483025924641637525410178522538538494426681636606879675057624018427127484471339848562796851236014373298724282124117883748399167232224459925496521476309086073334215258103986895231651147092435814216409585448436119509306579669450287479056972834754693164963942875489243179226838240576421007891531917760932230497343642387289725867701393306250116901578553128936727492794514714451654048167771057479272959628707417422830730379505000921093185753612617732131424528527889136427304352744313049129014829090768119042961544473745554129431733055818143004125113371013296020034839289011758585317005502863415087045067784452656844212118920565577958055809831704897385853737735062512758626954672633293876572950301857009253212698259611431257100501753084768032377254688552027137523595237426733330846693420764379134714658363223271346444656613444429269630812859773035879025108445897704025944673922733043421544123394343750594574805028290142748963220057304339962902878211584176071897369216354836674311421498553394249845311233925735428551096434559734677543459054953136730076726525562047588497147605318450506334968942970084884087285411789678495092276431765574606344520997036287752550051579345951726634301467293015311068585533594825619063397645441624975520378167409434971958189285478477356632540006831450846544362130266125340073532969935592805297896277485546252099485903874451031573317682477061700162075108435675746111241854483249001696453382145312435342919014637839865957605882471523354622395358108252802512671534199176349016850930627518291594843235008390638596399158092480080752499023586733792124223251835361676982597395837231770726355118718070463052409140243152784879619721333319650716722492940408587599487089136222813034715632130522453249199337246108818751858991498565532682169807060210953036699726561212331678763023574346879552133818240490506923055756195598032496611927865743384675589766406187239920668517093018384612241936935990170801319841695612926910612009447087837101639559707544102970127250686868528537076619767745067060009381639396074210918866329824558597789313582816043065190254073882569208249759507196137888227752989153415362850509674716097218077594773820886768109586966673893707252579596045941725200696209191998115884358881873094365320098793055768121295680668579434152462981207516247613757949927928731741154103880296139198220512696716080242432870312455692432325978117876788709278526259034658050303722210537623840955996511332049735237116147314451682337062561480514828963318853359130102381354457783234284289430826349485344694583661071473463943905938708614086258846055129593285289732033119336818046807769140166812901961173994732376455580262578621567570480051498527208458397255679406273571406536045472098367545821940961327550068693636867162789842484901506057500551637102384603633689834007121278421556353272957120469974165178269777758324373284057969962628361149285395942559468247709225848152750917048098375615036451043673103194720140007846199940741647979588055360518888419754798968595110255423751893210509728657385448424068030665086966618488232777599280044184776239726109124263760265362940760030561688646527398481473377968319505837536607707065965186916090110258182391316642713184796260227881622911810547674204171201572354007086817785861941342933737825814521081191350026691915755913499522668922284634453190077324621411441304964236502844053231769547013070537009426858791748245012264155179214213544666015091714343589465866219597183386634309512923442524050413307551411606140107740469673074546041601965310826040909388580894701862175204243620719319891126110098646867575243885928912775816494762290500996302792140735376727916377037218067286717374839864627999213809703199611053713498877774081450990063185959971972815951687474696608214018172851844011578493490643339271407860234146905039893944536650197769579201030587751308379662974450283304528417714664042192466236782630282758306775553241621988367367515745908036981575954428187519821510920853206165596886658679792204678356615159497193119884934364271406394498288883050828651881951222804824539761349781517025415549765089832387034904922465378181543004207169994417662425920169578387920334662333688026690263718915889172126374578836164518380122525488924263054000332294767300731149169872501857054585944390480397693947031944678426583193157279062881257598452418287355155069762979572738239963558087702179723889178896983215326223716897129129638402236329044537368214184970911710277288673515081828774069153029495031416671003966913997222227380842111999172829598403095676123739269800639112887973390379090027748369415107304942316496061880635243302943006853668635071169919498715823199870483324988087289641624159213800144254771488538523685670086874723045423729119439265787924660103293827802633840245397203583358565046726880918922469645686903276553570129920518498172577319995264916653461243400307901673976206442809766785011955765091934620679956433442906234704197876628505521399163992790530358796001605251636526525307208497997291486214096706153406525666282058737681645837951014790688140730310077032354100989902341157574045886449664286289256641205580333839513321545953465295013265254252793285837578809785437671535184226350611641504526431124868742406199099130572469660410039429890444274249784410084736522174731489657410375855988123449045552633519763979233363447179217887682277628360970947252353355613685266028179451491831760089929677675012044733158047984286834164840903386374406074457191451756884161081023953616609187820018489620693143953423356587462544137461781207864602561726731604838979119795306506372600435753903248057486814395930463249991521315120391150502281362883650032404492297908670978660124748169568785984168023723547759164180757615282681272360772322945696333636107114174437699998431688722739722656783368273296052787582969293717950671311649222180280050380250974099389706079506960543662794985282163698776333693447045833799948668751376736473155492830954679426103450832057292184145740613367790658479952476498801376056891294208711913878889541124369136710520573567993980134239772868746302584282230574523482122739844772851477847498375802134210725970694791536944958239558372342933543463549014491600338763394821952659711169197356791987122576188583553244036702231817218161497532618132101456715955102092764798989592689666912952374431686357211150420138169915841919585594870195168077701926400686862639085851036854883616486506395935914406789533710734318932149053705724876897567923968219709660154703288494077063971513254053017553973769614871292826217512604627334028000148913615773795120836786735207625478275056802014793473879132808594898083778563378693773996671847550855853955238465182376826214914482366608004060458195303459011298412714616040631764317458860798182195176998524824942024948328698031941614142803077783808563756094004458033316491044936544608233060302602741820470433852911643258992763105835848455132885034722109690626756668257393261393745474765174130310563254554549050849958403274864505684090474956130677548005335252448026763421478548073049660379802283585254916697117064369805190374939745552491449660056734611122704233115497300173917008826520396514909010461883327125154756354029678048125669329105127487452543872469620624894592175875051752872515361190766123452411633452555935432431595277671633745490019464524190219134276735013810905063323141358570757731229363600043059313815368321464963076714821595407348532622519276547843960618366548207011259057347757891278379548292182519150845359835151864727148317176732612439876214381764904349915397951683909898180886360250113243494877767135446584049824201428208310240247692875950303264573852060538248145038239942089663036815775518888301242702609639427202988126892828732888662503700789415331491879685171961620185464277577468663998293326552553878161766484079819283394839885732810259537078606304864223475920478382901612226718551795339198271507030534135792977067420468655925834103847001927717758825703226054656940083605443758463112049649356369330950160970862160052319643507490680213738825019231788244375500935632096390025494674110579241742177054291527909417270483690109163333760566987625918347606194038682321850882163714711121510693162907515926569142648489683266386631240731704811299104144538294864893521146671565155011233227468076242211045209445170142540687626124656396895628256443652124444269207114516452819706015510892468445182424194434063565857356376340744244709947432068524146359249895569250324733962138171783428627743286242287321843423283102856394189020430960060010592596808337822169091468529536227257062731561832180230740870981994088771707210794616979010723212616957592186151687314941043833299692907235249350407964598961029369707534146919899517859011649774971628621637344707812503789464144402375037661101928172126932793945618150776800487728505813764086101965021727224678476602122752043865740102602657097785898300594014422162794015473803221517306242216977570737316548443565228200867765499876289529661743834354600441332695488484775121362781714904099172820781362548417712731302295237467646881730007478294709804406456485621579757736952562873722955903111514109529965408198497201766394648026214511163614351952755624837846111053848421328493341502987027055797712098321434659351374111786920858304974133542362734055396863836808142625208413400254144170927282037027009607258264255761675064889624299097051995905593862484375666888712751173768881160255230162215435775231327469967502357819281618449053876770881496085587140793969669446741660802413618828504117791457142142916834214159020381144572193910706557057559774495883898262332802396028264458556136798581243019757092495487253778690075144836414287617718023781562010034338148065543010947504657786286865370365307001513141899487604636687626613496140398289853937118600241956399835365449283578441984850648597144746206585568265781402165319534460793665966211010481131894448031731131513372996747265259719684776712256746190213595163939140165551178523699071236074475890621076538781258943090344961048914113683179151069993756409411255546231699116277961226622330172730332118758931704296116244991693521346064455232476268158160408728134029348578203115022560119659985255041067616036915105352269178482063503353720952331774729772294627262292886039954002573997575649462168826945513992852962189149186385526004151786317588237004201475487192355156468890983032185424504733534857361830798730899838391143604766508448830163553235710346820019043281505327903712388294700130000935867575608391234752148485766306328710524581615079520840486519861347579635283176253922077695199511325149660968800199590591967705672122822360458165222604665299547116875646870492016753017883669857781108297855665827145539278156178435328174437619776007895295206238334100099859609778358479942314912563815298403527211112656521000335029843200458239891627812868630481293298925668659660085566797469157602381814247266230911487449396861096454487339011087154254470111548535604984416568943916588932121340230959809784006116455614337376583235655377718087407497650616859384186108558330861011992337615448466400396261708547066004143384368101216731398773095326043135318818088223745989312078036024411747088049475957308982916187100921921368495805069195208320240878604597303284369759110974512203226514128261471193975186871525745629515291707793340593581058193165468124674807389359483011572407077359391038157773681145633496938785166694069014248023073472447456899647751266132093263478706126656193608890635633810372405606044411684476520672198432119423523384449126090714286610659472463545793639894815113371936680395463452048611693169768794368939471634353294050447284379339244445112877649964995502473249480931328228854805884203681039431765311267800880304495185436360097785237413726400066516696876698151685769624235497259148339037856354738008140660835567323828302532063456787351356007352316807448764200427392569203324296551729036495031193909769005610140104556655392255313736661369195490656004408866927670689509632112822989667703273863754098646254076966092512446728074391392940348590291917860969467072690662542324333662075715489341692857478416233407668362186188907545912921531777471578885941086463514053542512275053736663910863747580259749285161481169731595572790040806317780803593879366064100081404616642570528797932014186779638180421082385057123956849139961188711420573808889242726803370418914006707187293044002629378182043059139203827507032623084384502519565132452789814230453520293992486169122284687372303750512130223980797019508342059189685336178686981029824612884475341590628155276773316834088329092147729398805487644029893124118655833676491348286790677753017614808148193909014021651758533038769012710758285068977305670064608296734251473847301946196269133132375493390645584288095082441298372065933657222961545343191422603400635926900674073429320725132505030834029829283114369859673044730067701512296577136133682966310988674227339536075298176024284767007579108168799354022919676329958162199353441529150873026324223092419836264412408484348757997031352448343579711032766839119879604862063455874406221367104270555949185870564741125575598314365034538864341185262175150360596820091474514342193506244610989472289511851948215446584240222065243959692681155209764141337522162078925674191313929243417223331422551758109751040367700467478370563734123889131660302917574840271261987818948350461060603165148788657060765598619398553751931456844472951331552835208425520307486843229226141391729121954831646966403895391713910498325256677591016059642433642137906799206520255784319854262032586333059520560679235495283648470063182888934005240053294419632052911278481387302879142888467820712336407398168534233201847785958958791155526431444818446644782978100627381119651716371550725859295988351405724163366793394102271139279631224081804673798765550771124274103389311035724863185166910057898417513719005915669052311432167133186268272553794961948903748858502942513945432455553036348900405411220422696932692028395988626432464525674879410117887566100725465502171937536013469767840246443034502168498396341269945476081715494287115312601949520308148287133307525402572511527287658254738047461514948118048284221722498326607724215645758070407464125192829266964701780986597439615081883259445963051674467502801824362709915222644850558102338723419865092601905970021435489846894506257849131764309413422651919940505433820616119944541314912202819722775296147344484432097283980423711751465736468015770141901862601364139026926202726822289699598790801990544525632118008829158800851347326779822168186284857965445912687133571323674360352680681499492440356002495504657144418847360481810351466756774628718674868746811271109398165438897476155649996084067364188775067393913492167276369396244990195715711990360518848843127738138361872676053976060090226561895458658280086488343469220409556828244534654827368774130513272945550778361828421349435899781322096842365056200131883593012363789359047741560168835989969771423450772188390213781988016110918361119646016887188817934820683327092815287858670818284468255941642141882590814698725755460930424785686658757316667972529671206236375327098304472877413702493361311391590904468056841015199594668186197678918858357311984399878589573869475661563240981427658362696109213850052965077699926472775006311801462979811403040215128881928946692682444887159200915373861803962479148730879707287566646796570321027780686420301163341844877580171889434303857289140186413589572977754100953836997832907005870379465058116623066167363910836038115515405535454345154812028300508005126271199501663899526453466532994840316342860652898954777006761788215333275920633775747246556803695907295392253778683946735933260366155281203458603545275016697392694892537485337967182139879020842616996307808539821891299833211109203875439840189745841400220405395420488720582168613200434701099666147905827887878599964841021549444437559696525676299297014035324087827971882336296199690817508517166693341424860912002332995848054743735163770686302110499685751433196202503723654308389868001795037717969804946717961421948860085331795874933174178201931991141417644627103686246667164471709849990724972001168459617171048141690969064718125714043435591183418527844580437443739650238731059221258881378425644967623217034960741508376396980560889994015295287058364159096095296182840746881178262279843787040599747312005473970553200363372972810615562568673880449597335525267602866742295987151094340588003363029339471937532071221524049865703391954825383018941928064160515322504348015539760549479813779480148577793307569723327846269029074648205218716049530762545989346150225525106875440346691370786727377925410454069030146464029992985374946723995899914457047902656914437763273241134462722226642033257291105217894774359176121711021768688669123806732813760345376386436308554654028516168945672956123435286029578830774548564770035881787664259085284924589270311670011974254631732771491684097831386070193950615448862299587164804915308002079950962589111264874091875996363378711265149264096251558215301466570881475754309943375242801871838872446866535374706528566757241908704956002986446997997257148143628214982316650746781513674877090556309196938185922638399116415322988454427468251403313766420622710004684825935344897516407516898502848723428071355974209108373142809597888678042733951655347193561507503992725479085921523658074306343873114618885976960472156941214488317656836569861353003411885714171333613965923820847341632817437130593086002267957790600712113055754233601103602568666934790552111881371267367071922773860763816433963308339937060221816662900403804184151712395597962167661187265346656487488518947387935623642696937615210696108694801704700091393752869631171033141739023725166598428384565900338319428980244743701991978502909424394695591383762922430395002722604605548679894869595292881132523675784172094280010723154123036883806137993137608589950298528986513486046111695349653670605123427487351733237905905134800072107198950530151644289926007200036670465100079818010088271389489253523384308950939968369940294056636587255696905749412359352283262208062148486172283833038705545834546906728743660720342895696973240132681145688310604599920116953858400449805247201714423002977989163183793313174472410600505759114342423297904683860080839081473754067891742793995383879354273622633258223364787350973004536168894468286122868881286711675161235061870392879487167260385833427759536358060486799525828810244110511607353818813077502851620921530265515360002807386210231244464099643190572726580235898134532320344533273990345456363072326058239722137265806820774506224463436693916008708183927460640751868366409505336744754359415160289310573712530258472165503871024896880150285406147337361919121595090063528141281042007275322994880144379509388392255537963840221211418373564099978878904277230772202952348347775437142510284575941175331955070764701501251214686296673127782730987129864804472126855961146690370448670974274335315809608681813649517975659669523169113941700818827423774561947360077334026022334852003446155897925151483681996309980405739235373256803049309444774916238236410398355965979107560029259932445287792132186440555723130031651417693299254209133450295444322375581212768075497985071035204920938033566705397041120775020855301089940611102776499438005995395497369339291608868572089162458384527821751405577875749310059553057449885111879875332476577877233075013170994047051040100000441914271969153862496081648148819271405284244542624840960283123755728903450675154553093370826092055205661417942042504269030382874643409849039231920652837176575371608036584622807329441698500036643461123426488576646924027402005246789685036833104275107411855879675664425665268070180080156141939702158706784333357291796494727515422747837235382736461909013128612229474092160322545244870691034859500731853623154501323520994006254433967027870981719539166335583686088304943247499751982717221972630084745234426026856320833120572595256195733549527932570013969240069263844900102425048253651775347706436290254838014941527693456290206334966720617379053824026094023264262539970697392284454875431939143752862244862533371263981934429077219018270637252941721327521471281525575846056662241164165228854006424659104394607191924821015587485782537841808749174529335763844960054513330371972738118768637188912714434493136922775451530992153109581205066710117186427738663922669263704705364194491254663800063186126390339147582325069012730459004069396396387852943842146663655216816281527496952383361924455745347040000326147693049694781975943529600518593438512777135175868683269642911392548272667460805301580030007316030455813481217131901790798999043732671821625305916934044543613227809293920812996434212441950279479946623862608533077619906536269316787169547897818493736029756716655357932879111398749195653319145885012769009701695936716816926941158491736676177429645564729198362981000047433434513805046000847432264573437347116034125857572635993131608348096210506062232586274728217074536879359571085338568878629863142331551733092378231461499526025500224356672469162645585384561821413060833116998707596379411210991335731285551814776909842533267278749048913337028325362688730139679781009696489170599462768114983843932218640462886569541214406359658790801097102095723471509527446525977326068216304601377344024778276010146558884002973321660128618001228756759383874671421978916057404114107134541798991825501342766326598165528637817767605852250993704228154213392769571563613889711018835751178594175431553002982605374875265500733016959154385936287659755392796107648451989184584304664377875254849608097279142813606249681467694882106902208163091795356128055338711436091586838528995827908486026474304788635269659358448434835110838034349142944759658224142237403276390776821336747675245126977650328187967153069398397804309591326821063676685020149959828992959695000081208670813410327919584833134011138818266932891387185730418369467672003861652815027991075421124239499026658894296976798730380117792510244302409388922333434206799583249986320299493932267143954927967191489281035481643700351087473095301426452896913895177174146426146261947662400464952509837982233677010676534103488260410689525929483054555277481135685486538125521518720345090110998358968861823768174004780883349642334635329400868085839092402523590684218650049735093368981933520922703383764698314435445947807062034105363646562755566018942680633452539679038513165115160767767457511683345446963188536591378681975760452203035669614592242902805691597384245545276212083516149742688628045481487699245329001634975238749006749008470078926260033001045109067827081784596629461778563426563883827362299508349325345085836076457853999428035604917046231972526189720284619656872222994231550453361231480768003356708568391869776383910560272763764031784539864384278910688646825787810972297498735319390415173832729316907177464247977099642306784292022109869224754234312724087330896595727505705300962787613877267373960441358962092591658603049023786816419489808943999919334929176657118128337814891640634891222721082551123459673627308882139918175132152590168012502573391269363204760970613942956748550137557141607799940162302329698018503369132307376063303374312601427163948923755893944698707162824646632601675294615690874607884149945280290705365218249796167375801406518848222529740458108222854857514822659795127347642662043119218532912585181905975163524862704398600387161284443934288475088859026386740058169209311774487774158256245137663701693784019550746554222140498611290993940395072089988524143655526793518905186628688734724505591323248012650865361806771410131624269985066119329785576927145517942916055804248749044397948229227071211627761727513386319698865817084129226363652893253708026718140046604837276201392094801513939016348214629290614246526334075213047495790303791502067366769783682671190104343765433318057937856676508992618630126634969614768735100898464329897732296844200791681408309073462472471663917982905628907349874215721697400949172042182401039050120283177513110779902415933221590136298387753249043723499181814810108062249815973101058859988587581823722669393884333289369476997115061145263659301413723058926970891242826178816323754007504873435277781754006008843602688023451243285001649927382423576105712834618048497169197348971312528907754945788850827573625552617427601706091031521458426812476448663513582112963409230683018568743678061751246029109867152070240930790588577977771048289311477532347978081549956489786239292116824726607469619234567394851600731731258573677443341378558918171127083954379870850597801778979468449176419591148194120515884744075212933849312592486862147031297061215469050748646704331142748039583198930913969223685380107792078990729640845429972322990558575592858093797972129891625334490058980995099285228855785104850286147856869898172213193728746664306082976754132759519495085336270420540949320342648925725890625739411987501879493690401709961831609435972950029175306660090209993681408923239331408962493247809876424786213560854568268463047223285834178158678581919561672383611278017988282773159048601016438861499057826224595617365133407161055754340339204625396570127108989995446525657838138894204264404632717976307953581933324108200115300610479257848632902971198897530628086665439432441675134189719542067170605760908859121182233105662459248424751928506968385687099855217397275432018769900648423365673822228166304109555645793689751472149670997551143703781288508686838258738926434585872723819808777211338545211655280158743812714252049882484852316733951531039227876655510869643545966825931942415499178102895514263290975422969249296034910426785329888800525071967373751457719523688409336417847194477926546242073701678657814970882692178189762724443601237962504354213526008969130118733572187064198337656180487082238371360128734758805398919763772720797549292265065771758095791432851494650328704190591972202883008257109835620934175917941242711905415259992876164047659565571544695726176474719130818545098468885295021035328981264551722752106450945225848720430410844392002045909537978456607764379242906073736407600343623757758963233045831803023919220917661339140048846260943825353482705154851881809381099324496930913442224714942812551697065258766995304704301782541995940861879940683712573774900612832317736301918896833340254806073140926795790723279511420158727944907616849621745689290958560955688886475202253669252552315014903004175881801929699983973929734857017144014005702403347640180167032526599857869159348333907175732462732790469399464557160701354732712722495404027836738503649019583536757360802070781107981408328673184806425946131814890155378524374634108970686834483045493233752190697615894287327572227247735690663668391236486184266147390459462870248423152024558033291386326996297655530320908765460531162978308205322852019055868635299329099925632884882571571899872118076484084521978327730079561001431496680128909069021797412458326214496045050179539002612103213844621750606912715606752422933121439203981783156342406405495619050247464541141802685661649596444742688495496620093105054486576150759886733652896163794944518212833797349931154065083444958408717064726177965562712421959360934321850998314000339221220166229249842366230567395590337536121242884135319169260242694198610280460820006010342793205486821395476386510028816326365720699633833976797096949044671687944527300015286824857462673664252842257333671982999345678297124948244960606469895700764795499313943215741035357133704866266922944570182709019508026913770535191586825252684332900093362149452480885261841302837790501640307018225843520315574979819293405258806693178777919810769518285056561770920325940860578323789010394692783630096227658434885580988548425177362149384542409188069833086833528767826339498931859525060980736808519986544391361493969254606269918996524040225998627198801067827982015040312898439930131792330126461074318662903218254564957639231715858994328655061932730333783075139729999638714654932811198136066253322093519381549431439877246565967145540974950427423296744684711012578363828314259453016092283652166703366546267086343399209401301322243000635946127098148191855526366018851978704671037877361868527582837257216079983224170548176149035319992725001624851373804088131209284671468461797294553922711489752143772712293325197303345938352825585505421899862973990323548690932364292773794987599689080944313746448948294006750992932035669310031006025591775955083936227339152944648139053190345621334983138869377366868052879757423555257534501002079811525468299780733123402977117048797064001664136211119404483836841385564664207537135783413110525828864793721967377344115084452102674309648789693958544721941839809157442042367146480651172649243122285325258821041332412425871142650636444146776717265104333187789537104849495613429109472462425066946602962963475210211601684708945320931904123129495409193586661236855398290059811259155200673195195117834266136854910157408401356226697171240954591673604198470071199807530055778185796730427156136021189386308385403819722985215503020351480303332294489251060635844816700283511636869087879639646127832196619106203067053259707784134707642570757217169420380146622592472540362606693197900799986999416264834061497137291322144318840915239228474412580483290935846484586726525948403068582124910351323964297315529015348909876092735486479588354991678842206928187368751470201065102796924493933442605231492882153337638820735477474881499607601817952526122304206257489940843745504902284841849675648946585990496840110996427678701014808875657255966585655682736462905727012542423500970127245778902901991541390725098085521042335758621116346357809811238927582779208921736297278594356302156946959857924274172566149801275860062959199903408249743370674929070341433312115574900652159314327893387040985928337836723889621372321989700771239930239377114244040312921839404560551148387728377078734064172868530103607450215697690681981069416246779233111135856032859101548872700672578698051745749625160772625409428880874906656668296274890397493597338942506833610210725500013393891964060492361779938752037262954147772316084417671728311713616776872790537585320236644497447242491615585592479048559197252787655356514734897190050317425906345144110667785839465474257387389224912940824968200529153220018705196488731233079536675809253551617573084865121232166027784438290334453560780050332233261557224138896437948470614100839479954061675072141282335468338220118106455870240299954528147573156130161688835188289386109796583665227672741414290252429476289811615605171669098435524526432248677650456320526639011668139885386594661589319499258633482534224089508984863577802100713773221781701342314371651104553845188596122874739132773766098391894741785881761143007254160854345969356806007560300600847340333832633322184921231862946867871797516642433580250706028175404983593765916347956181890539776620468011258436276726206206798476561618468458885278066642138608346856530721580828350046351715104068957581130815625839132375797686035275757288398984160348678490879715401724282215234086348842758597456346336306213514120518856038429650933416487916009271301228793822227705982595738423627352082797671342466276958173646722592036361490036978145979574170966615244304241262238608631004191677422381966142121567683944824180857869294400759469964480542286053135142493264011929744392078156198020042885423699601244239177220276823997719000944457563015984920372786123211367176548562578213504667945873656781800940076226125801702143146738771810078134006766997381702091971707677223966474641300281896642407481222710572946340898445095216414385741241786474068254406348860675249038094301371540884118346044797161409451410729856327197955754138935258669808573542930680142022738065946338892205131537390341118434779519259231163983742558091690609058580665342767888309643977411846804653058023908712575289697372239819422589226071639140641868858252141230150912956532305839633407419894991491709607114270151674355659397209329733261370884323224853375262915182659000025785883323763947450830037740512200638560858000370070430279703985791434992419129112319515071913864220445039145128487278993244380786562110070495350150465282927402245846387890866796367125041733707102352789440296100757892436830209270546557482243802453467014664227794699346885977317725348126924854273839376798676828638278311811631420890717542289033340292989388536264840134030770683493076434514377833448023317505819991435932772524299215837015897678267569603606478509291845809551489370587307820522290620759242632665494449686445457276670850552001044963801199735805656948762356260433175407377748568516776560754470804284798910137082557092828486143415021565709869224962137890407500736807810703970771767955529651527531883525137488532601869324752031900248739178461493405611893872256199152871074998337341996574784847003255053551175440253852929688487149102248398710074153747666305773948935637347222111011150538392770043729081839796956891282608917889988522786015543240887759627834358905045544305998715313096674451311129679102957719724006434300710359890113953272333349075594125361532344814181081615541053371255466318863448080226447907202113714265475858296737652591761437039300725449347692956214697586630516706243123766763566569336978939430023152184446298239524377709809119483252303670761802631871350617116221411578488154164781946245855710289845187465655703242406980738615551713046103093273097547016711420267193079106959832886817738080538254444326313755852943399192564774380672113271475144201052937467409988373626060828397044830579014626989514687320756856150070166054880704563912451801225590985920427684002804541385966820132157092259919909013599712119429170844384669027775337363596725468232772647586155801770709984552168333424431888314171556744278189020476710779834340278292361526380891256017339907949830006547477543289121639214721965356264014142005855352206483064244815761873773098252701669274144130165057403309502818182566130430567098367519287099156227988458582172574510960375958719131683858557814443594548401198948419839586166631106267696163693248180847246201550704924399048098059903890299421047646347020693868708199493660490457618823855401227974353184113255566182276697605575271531313145330547468563457196606108417934218093086175797805780573050453761566626165350449227686842415912465899901259169466787877963447200595074769865425369283376651646601668286644640034725213336944662812168936715302364919939037997636583794094486072406613208596831527160524217311141007164799139174616581790485502027068738899691677531319184652834258730989312762367363045637405183136182625963089544270134200874179226710107749493894981027918480265166845534156588765349181766973001940421615165540804182414807015706376100147944201175664922610882783457192663117911274195453566394038986338753733364999600623101216961439514532630602952646498882120109370610890277429628067022802088461687642372298010696152055109102151849051165324100178972591247284888434949010009881824899629465838714738546610243562182847727610230464023217955591549580302765498738554899261369733404051869860782162874633243239735807465743134697094865785587019048023203679300532120801539641568563273253071597543712116899550463163969611692449375021844870187970493399007666707549861308708695886713170374312265432107423616868442194466023662355004798740707493017731726255149926692616138995751876258193133454171553336251737892374402041163966468187183301163047155182986997100413783690503818656640552377985758545254762649158315046268461641488953737666305736097455850458602452086897270327436598461636228742636582766484003611960614246702212698758019794227461035392368508240290281139922177328933813832259846060816187469968794353988837475753892224498212747361952426036670049910647280994007962086897036086326975917754564505102164894429220178311184149055661157273599958293640565222098167813640837051972824977311841280509022757010562818548813688970432872594416046480812377604160441038418204689399323928244663902264282333183615092917999179752510283094124853091038830068856106009777990540583136221991163048981902904237525425789517460240956815783631622508126406662328851777215763428804718294212387053952794297232065824704199813012104056937847883746566744853733431383943426955788110900653977047605888443780600295407475458041020894574742003179469537223405659362132257254508767142630193291216502969760440065923727525948295283349067662276268757905317093732433173106809676261679605421532249374227022662441248872692269484215930804800161703856641280496071900519856716626937082354877558417340039078949455087298552002480009832448160010765753577750210089351909937577432731627541690277517811418285438220321732706833822664273327613859176662572831969817576445556358462852913714981728928337394310522281620590857801008653449882074512071037848859082021727419265568367536844990483934985310355595193564829830322063200105965045953813172732373415243986913755233158242635232236843708997400395571507679566828518790738800320158952160640638970531093261388500671939544722325869498310634748181138589073920276182187466832777860282634357338527393033526306126330706664622334785379793368096296935307047422666020097254707063087757343522439100860920219802389875811533663025322521057690433995053429575066966680990443274659675305060151281872205864779793947530719683974304865660384932153326781915104712775022256560591915561296629270387428580797617266419404250262744952748487461250789793798863717379380548278339438477360574840453627855102870687897809794195570525581785455845823770046789665842950441917212207374454087197718674856577321359057107694494845809510673790290885486885515382453055214292052758477006649861833961776528677229623128471971369461567763983440082046265764973819424275051532171936020369598836304731992888194498757752525909799265573053060863276500407843889552963918927932763286492953637721960458291156610962335331379042651692454773025626105888965323604990409937451842918472333322349208708565718661371601327674615104643420656820231621409539136640416346115171241582956225724246117991430604611699698702208071772178224261835854828869254458411864122284260396359072917766022149622753259092043158900349605092686947757833138876223818187046804657841941996124363178816410191443560138254643605633407830639406697945365406857097623118523963145704972598797343470385173758135534805318677214891849539408819896075855219796675869750522832972211025308331186426943836812080322112193631389010580047677204896470769592364995527192839874685264590068248970931520647632356035571634449125294574548598606753596881819267241756787275246896983485377997842431747952748336078883306100870326345376331453454993848978569228887146017284405862748310196619094344390638096586007113439265727812252403313039745013632923551820374187091681155839998463268821914440924858904493321824883885699980415204135228890135458035757016188628696098850632995867619413630499696947239401026241800529584801591777698782278473893416909308217161984229262278338181454005618646759444689813320481940709204771006604707303996483131686248992858509739540659724021865069336936201070721750040777097859411156267038385864822120010733569835194477613502043148090719346863048013955577905431703082755214567154171453942807205759626038104432014355573023265600609155752334745560618610503453723459298048477378938521291188962603558363775991352686842463709265299364078197601541726922999225450801358755047766961348018661937312727825213390354644347794450003035831269106626544346571035705261838646971451202934006554888893393854755840984751264420458787131746804510707573495905115800724628537024371135820810189671550048366740325909941792611521891630773626339954134068594337713154729314610173454995450528929256051388737208817043807701021035749382468781945483449317842127933535985565610536016927772882544975268180932498586206718498474935043289006593101564562291775271528121383593706366536254891625603295697664831085888864382856024934817185832131479788613337101501396007783296656696634429622263637189776425948200013988464155628452542609236915493169921295542473649733806114646290887722610239214873207390384532681608319738876475990852613144170093251163486984885024593088860124077510073775008530285617595065443777809916428204126844256446316112240227476548168015372368534494859741656855970477976008897958947522405544701887307443732791462790038533332859582079210255359371313504758896481293200524365020391705748084380768726860591192209408053335292475133795977291743303329149934628094872244084340503521818574297424210720288951792313197432790594653848381796687464554412605393213559187197363373369099417097186990703874466132093897554889160317383933370642941920227678941471061268570700672916925580932980017884394101300879356338130345075624595471896775586509064405224471820927460772519767523683927145732820854759408194518123815556126091512142172660939024652767662233449881331305787037356758340202218589639771492442871748213075702432094077063477530681116883496386616328372088772432612115234217181980994032437671685808914109826733334592646425863905481593096609353341037173820522239329289446068967625575686593471582254297870780887371618060262250250172802607919800439910280693282577787593220550821397353607607330819863094685210002423478100685171084944031514441306503988010604607366216432839455592872734014276405777019708358083157343746205599652233195538766691055450947062337258644501587334923459347497747206193740498402781764866158250437508891642701797390511121861297513899721142399267627702504887691456593569288671603300563085603746604939300030294129040070140107027314752256151846766553914450286285833342657199193618402774605288908191009694301841249489482983195884830175478926145501050639377653999379838928361632241590363853036335988528018113836672275625058319434697284794178058988149658681190450659485255318078559127494180152181722604953295460723423915450148322044112564958444526145678720044554827005883112808896114673590859783946317079259036614935094391812134755061194935162484178137283428602812018791969138330379245652835447209270832945599114681085981870189275876433254488834448941527360820122527908042009219336914776857091461087540859138365954982998812182818200176914935344935459211229050661152113489980873972971377788164478840351628154901527412630124190145180716272161279267776827310524092706555772647355885915404183670018499546273452139818372615835777231820536844448570687211559293012877843027634795232876846701423086882711277491473961046497135922379561309649920904750976348946579390096296376361376152982254162162760838164700294790981562770696146611525301457083231593283991676899372841928460824409075063574154778814429981523927365596398804264957882459345539520953052936449315399517940938672820980688245849538953093317407507166562357927609432009740610131749520799793744724263925233458601303520678748046970812652289226706420374983775480252439523850776296608903955602017105579318199302527188838829529649598000548938425653230298066426677857844643910129880320321492163339010915884483060147829128679538237889769807644250719491305941660684937807258633057427844579222076232558113075910487514892734208615344720956539364314377707029712566644472130750248115920520072112294569778482796154148688257153745588067086341714682179307240293568231561923015605335218990790199147247094413554706581560217103752056313159455696795622121334433423819166109332218954301230979593337701554071070174143501288374683989952772346814452243324979653762029628264478595810215224420135901782160832969647524794769845241924820745231967853482032643688112827768245345540722650519499809172968586967277662627990585151158743426747393363384218726791618336615091715192894652569706659728498094359143569064277317500796831786179143223831356973561107953242967657133966823894180281328727707238643157685936150982295580687413226195069998527598689974313695386546638705579659990892727288865755522658666541179574704795445280965855681319278173770433205330243668972352057900658566906857133328402978102153067433852021850688800424984417470182992924036176508035940044674762329373500675917403039649266121447285508669192568824295174824741473413212996918586702812326940792407936440718291009090670964037899079968134226604034674669082935711171097952698553707734827133470013836448911579111276875615146469263062228623513123328718033649708504153880426854518498149226379974117170610059710955978336553538719068271985115267366960298785141666573559026424439814194471610183625150699943880212141497596339019571043078491985322647033590772391575207337938664390089527095590654016684877656023609809451441247314388760758094854672469550140641770390609624677282049499689887803153321105784276189926577345256249004069702510700438214554331967364072823845126822639573572215933274408131767079152365724228603882140838356666918878834535404978434688233217514652307227541209215821605557396320857706645873531773591188358003783007756965840169483201057358689360334038259876131681004219093956144222734996209542506740673903467347366204491157658248806382774809405811830129308732729559537803515731712468997205267338016767893402023612990971896030663763741315799039528738800386627457890859430408995959706673219061642325731750525380765198884716267936194351167272374896675557225484773251993627738506062395968983975842567972713268041320163869652417308666823941418784231215078272771093664946325217849635063496911024772222805742157525905328043915135677472188825518458242790439076754505405153217021375861425186383549517091668594410160264225893039964092664575107160642799012872026530659089668954038058767260351662687537790311521175878228230698857098126337338850177335395950805726993025621927470005807464344942548146521634657447995735693602847237977435392776360236811361839420537627401050739732401622661918996463196207333140845403653743621367619058297484020812324625159612043876335379540185491535052317285269479387725857820406541510384219928616964611229865883202096330904294875745508890673646093357355419242266178795581295334281200550065154096823693954967622176478522991544388399228020767209387057878180932122711756671010485917276145865991393652110786124843104635590311010652645229092090643544530237491258595291466990215482961436172904060838726136278357883522075976156441433231569689727755295409178137409197596555424929180203282367615009147128536542059082217247704292541537651513391458364168180056269350137894168138844947392473646961101507125258609909517182765740996599714221665602611753609433407445249741406439209901803110945569821501949946162993305824444852719698730403270237996395222946867994791345550502121329987271720244508978546683634882165613795862147746398769976519898679303944164832047897728302164532409606839391057929090248693435447734429189260402605961486366397187202615170887340745007289915046588121059970970743565184846913317416106609044927380122542365481865409913779932502571995031480332204231181833572963931668244748035773053157397159831854333827502743935109946818480887644996331982957675972625290176921150286870440567434485383512257851843194571861159473025457979507456056611404961311843460010437682517651980640428641540623545992018904692858729138644061999499905280302387727004636674083228404451171731367196032128264614134066565320393771213233136040917611567121204716841315751719215263684150076696811807851412329483969574265319510794007083041051591772789409816260506124794680873829647999622337031127121124398949907612516727671793111540403060625344388991943510054422753895388179121531661201509799953001532025664108630581264994774780914440730486140489128932831063896585333328337645677031766105240992994169819568891639792438728642272585758222603521929213057752891926628824841508330109009631606433760463031409503082356208108037324666808808628812811438926225371511845223702667016656470646823128500752546588047247363963006587106651531829854945516294042343682174321172612985369941480039597132915275354723570243102403864119524982639363967335079838525827565177005224616898122658540548675414715383999722024982737860798150168023229983668385838768651520501164794237041609199575533456924496656448660477806225530665583218400279976889967751372230199820056764435787057892980850701107899164927950850239632452673054184377392015605409950282970376047136779545117873284303724529549838059126180510412600184741373790640767627635771431799549188765978105372997295282322232915620996309419038127284876114744793553211127640470208252029453970290983739240206390794146183530602106400571467606395098451352974769501672130978186505087439937205909294257719714195133076952410949127782782127872399364761207842939432785373911815224099316905064046367343921928413817474167398825041546675785065032727415474723290625427871586486885097288826169088120724077753149177622494814346891092063398620728031764806341432941544845509460102610396993658513535963654309109019607448064742561263595450300457066831698997916746752892393357410715873282648620683125102254370004503199716707279363860318888096535335092164965124197078231908109257076956120523793351446464879712920049621654748791837928345907071072610761333849511519332591198478409267476428026758773827086523299834307163239936272749280064676227857185749929551589498985425690400350146600669815318294749199560932923566193297447590545677801895596381258709236045935943108288496953196367681406169775671204410556158571731803228670470785537607124540992077923468001689579672835864895353837571952022636965250621317436539987912075207284389530013787338073823921789730392459170449127424106468278343498429977548422382838016283974988279310816747482732112645174943883241531040615000784058886713284098894877780428587966985635965590292697901980744091292181654643018875684247161146646875517993263538079965060314620790849229544573515939793310910533494210535369179707723824421794224523709810917174354533205274983947824487377234687665018628617952251625766545702774180497440046134773096290187222516730985296829291561600982048729421074344201473025274759255953401895043180501863220362297153017206788487680380339230116408585068104113572771810409213454127963000268813450442186095052701009061033185361708341041366590906206048145517413463218424163000201721183015342801085687467091662014492550967628200749017940929713711579601378488856716094776471968968737070875397472886863309739820798407816833350157247475157070434724783016941344155891581143157507308205064578383909790875184364877604471592184462055603544615197323923215567234069054197097422303689155053032729458409881930217788042107999176554035624026630078838088341153540732311779163307015177048322683692372000450917963473023731752762144651437331141621363219935641444579129480007809514777747582243966725109342548383184536366240080490493026284976800648973785841019593506428470987344338521797537288718005133781326322817905914985622672324176046480778952555046840503187621364965444892669462690852034556659585621266896689672714975898573429776371772487070856550654158668420836487089048309727957771729216582248575925907618456423346941244640315130878290587848231751711029412935439786169941490537510155328785412712669532282468012490663596980208512452425094834506441019376833107908843059414658522261665885465421501004003301695775633932137410070312051566172603110850396711763460893565176050151372653496878147256057068998330933717593501591192241598669283286652529490240143733016527400954026571088443588618714975480909989202198611474063190658722688368438391200058014842803255195217705480356602921790721174128193483490183871684602964901305344711825453683137556849898905710629897578403832610707444858486900945332282674515349281276250000731815313105097767989324733243748829091335549382108304892060755615391210207642829767789922946390979317240077553956031304358667196009771385780591345780693842759685971503710851591800692170282705888683172806732763702978056823154217942123103701464464986504638632309985336210090243950390988799939789376774408379656461488525251945481639728492017074791586328382466247188635751221644015852339464715774107911755802578086356013546053773207109398965435150060325454943731843393703453915852386640643653537542242610648137441724599974536240816210830188779055911063650679406376599136391148121631630322622499907493647150430665141405382026268684499164976853667104548980999623895699597062062807225874308504194836244170421869394737715537616788179083931922913582950899808500712383000330679168027894867472988945908226451615887926873840748103216860715873240500134152169032793443465135186009624503234552809996843558177305406174647166637561769049197692637223715045133504014087280337877645454145959415000192937924848004280393372669471482389910438107195247104714768522070800259568325428178614085118072199383101035969499632456598019748652844669441868106741590544521241419569506822466102810360794505484344030600647240116761609878252231290939485823295247201439996804903190270522886744127665475643286607384420617280359886896207605807087689951470834158919669609385712771272210683584396570928520957187363997784657120340420049650417192496790178694235698984295860547487027847848627452723978900559025556214997199227304832282743790516726445775752913950383159379936935555525593875895281495319869961459153318745391506278455352661119592672451988877683987750570431752450754819336428586334837833803519581061521882521233535904975126930580226063678929513935766172226529464299118585615822476400537119561680065396517035848943963003168226781592661122909822843952075600049690580850595912645139146052166423036239862617610253038283181743283529731656207427093892625651354068542878665680554341343129279167559942273144280252597039835570526450351335306135009133401568441706940248207339807355911764448698111397464035822934023835440793686360900216280112106977685539615833339511292159947402435328547952289758859380597304686096211316450916700759863486358468870190023865199375325074556108706764643122896890032466931559368354459167540430067157297693517641633850274764871863588460700135898492780097801756612329015164206258264450333363940659277769762620925572749139914008548944641317425936559244753491794157604090719750087866914587953937234201119842221485155845223847086886952290736399697380725037599345707108512857300393942055707850131237468396531326641287160669319070523076340329409446096491525642844803889009915455167388842371801050136432369483152234448983821518644978090337440306353892242586784349901195326244973035905076181593339486423517544706792881321548319262016630109427076653447121857501808742893764980791110706285795078993978300128224316660701514528099269476936282777838916782598678396461216956885251517984404746699403495336149376685423301183513549625232413471446617447249799495723581410597900733179921765229407610848123764478384005861248794590601630800384608298517553924426960902937751323769897812983999049579011393680600798538501664059265833667679264255201877086671003577658401068489301334487469182275615934639927808802000307476899474815215329554637317274625941957332396355682025251400203087993458924386590645275135950023194041228552256069908667424982944497038855745819798968628996059319024251918640455243933669492113352447363949687000192833976112847049012260049200374170299974801905292467173789936564267038030867155380644916197423504721076853635063396874870794276089665341746064808948777682795977339281627169539290045948484904484797849404113048971781724610794445300030501079073451835047164580152186538546539066239197465316713390793457328739389386222882099075082609535546710325510988066883077621873511289938117619663576861281271477270723193303851459134367876924425660628354795945028140433207631017260808439799901745647423865175641446694986885241893194149498551481960672428444355568490848091896965515398960892658301737589259988698082615160454115936540185899825612945157948079231977175446644495494948784767058407020301646197462223006298457034523046369257278077455694152542668061681460224940121993919790382831062729071259538026027218654603230845170118213460865691208290866674142691150319887606434804843622736654007079867667990048663934899209213242472498567877862546891748890522781828033720566143012599260361106049255457830226018752506343862720011157298178203748449144775170208454228525975287733685926851482300064902941518371816108769832968672750097953319993390683809926848527787778436812557736772563378539166293016986249580449267037872671584361396906565088319764133787883370508191515882153916559377260185851486259807781922003647751854033748661926826775811104217401261889616348183828364000516448499267644809993360980141874976953466815395110841947936211764763555642640340667984935054752652474026777733722949870265377456222393849528148540851913711079317719923608601712218704955393644145291385086695069428907970752968378865932426205500044504863100680155135773008259117521368958197003335047748630730080675329805943641739285368520180659036005038404448087587086188779770918375719600366398055325823279705490670980330732994544537639340044192871661969667105691800855359969236753884298933644409174742464296109236813079090397195122189536859975251261399328263880166950211667497847811425921000222141129848862955818218014548490896171244958318917792291656222422871150431616361861750871041842509515338518844420101991407859642252270732064754394083342456790832689052519490052766107693813596849066041168684271010188356526339202401415972406958857673756506247415068035357665760190037291198542289679708663867630842808663674399248091432872921583881256594554140535292779926617692567159698968058998198747469537188093051635951399703654834364070552450250377775170445319946565376858961231521145561528528607244380884549108508612825153876084062612188324510306036193698581205095109123569229837038179819401605237873911143177079204565444472405266032642580501800005141447625295361447322317901592898842898063942615022538782686743270027031611365790927057252775337995175732668674811990387928494462434194442894473795128867186898930991959554994803634733218385308318227737410924588094766462568704632273961044959589912188371101723377174631304160242968155884284456567133984874582834239436727697249712032142256404172090541828776855248884574597440462553598602829478034713011203246382521917914867709777904258227754112029532711019450798579417998955992810784695003738437521690574432031437143880796584955258678639269183259465325742194420456788277655417031587030639219330910363897382668277285796862142889290720054360535050509837625811164522502261425605309133832793335477571926306572629678692510157601998795138214590884154555908135561055303254897182017335412555689560918828746787966066075490818182401872655627699309788930092394990249093577919323331291363853635246962918098603442001286265170591637031863335709439473014493735288409274695332033585253108573449355299547155528052286820112923129850004218098235652283597433099883009744413712391416269542900492530207114992225182141126915452540075538577826535861474756981355831621137527184089051506096025938133530153342610058820444200406406663210285246764068360509915181282849468954236334260659776693319817216017248806076174684092256480626463829007706269754107906816866193737827871655901075798834116991531876066594780007322941014773922853414848242600933382082308042712302398587015351800505148551659798298061838096861696289774915616857149610899666656813034867009356459560104835159908491806201081747186324143772244900363430625514698820377698536286411360009509468016606647498369846233612852626801029174565100184153839368090205391289629759547084718685777563494046899393906771364758284587624714250482273731470985408117332461562112870782376571180281445772273895492779475067072371154707676685719886552751235869115266023190090577852419039549393921873388671731391467730110307703371586819053742174085924766185698240588338337304841537636718472231030684463691402351722276867143979164540097269254952875861702989321178618274021241329740472316346497957134073898471581326240145601542797351831998914458114680856827777348077458578131488376796537479205821915740826345724496206681951885668077552387921965674812878219798555674114998532392297882794079629768843695626212411542926430218965998184807828243745403836358111034033541716913472467837882153410277635036550818203362890373411980581431415416143410796304104821188090920475269571600004494276242004939864858118554601931408212243542771541071924233398081634011742038985026188851318472075590169015848968868073412925188823650055034709990735932900588495079494640603895220854066917099587433585960851755099961940066741637383915410359361528528256592929361978432471396975429349954597771373202203341599674531339720144075170760304198670965127764393108568797844199815748360218135888758654858614081204831848136605503758759437586011130206772806597265290157527745430438096505061221274565179954079861987939680827949400336607379408970809992051197834298928028553749762224155931918336289901389760845351561854128631116578324216534553989314701542440931759541874200367163171924783005840006664072526836873728308783195257375886995949640776342012186927887776860617454413990321539562004728625296152761492211864927697181050972105743969992825294404589409254257360026843474757288340658403172044149833248690025910873878435650901682452742455297550941109153197985745667796526304717781443939365429844285428895335512636471035701217496490008949913520432419460189033764191689302718222476851824336717191831244219254570731602748076732181458181464574758157142526977256118639070408777656188823507600554128063875444441117442267855410507134465774977856539549787050539288629482603273802831397456796925782497965418560642634692209465807524014492417859730972145061849710301228056251829428289053895370667109451837317904136569449314418044213770797931165180030474156655367984447276560756065622288967727505188596502773433104384755638505755880764447908971530128212204117641248678459079822526100241278391688352558904064324507771056018890374871678429110447414076103066497964163965521624299527997678151757702196027478324572280360581846334718513250965989808389210647844450014674306888357371683871497258500726893644804543367906057240397815765167737785108934849360426789658491400453476708249795053174877302709181633503987158907878650844805534180072908973947815488586355046502348429654510818142063415710500022565752580732284050228606378178191380612740430075428482240778062142479069127813722041162202733989893007770882940646033370289887359119406731143888750993767207360693663323822109972439749398974397857331727864628774067603900254996061359416934544433284160569337416729249885951790397620079164542011518580861985558575660085588970982606124300626498663847239851401840291516359410825669063652081869768226331695355809730138025643024985788926578365694784935919090355481882130554373187016259097090678501646252466382906538002206734872478911705327103179118732683335225292953040281588776391957078775639895290476742054511269987554728344765530554141301413861465199161602469089510289881726190410632263011256128685859573487872800094655878134587611926142020042710754584625765697580717333243611353564659688232428836076222024441157702511274247007214936482337044414633870620396186815624189598655115664653938035198192980928105560369565523008601567095552282604092627506557082741206567291164621819537444632375328097938758164525940765585111209162003073169969563370719006719463073491571019738245437810100640558729154838310409543995622696063553535126391707613028484782584171193734314372073424695917481794030034332584272452299698118298011623122719492248905728454461364866644006584112375272850668848786033811214514360184589628813308785832217133752290015648880880670959898196837273682293110146108383150427088536771685778608722170140961936546168786898403146955893776845805369022050542062938666823676741202010163550476799774902873206371125839844760031141562058935350321396449754061157245576257881213434369426838926116605452076348061904634622741262681553980731116720415510766894208055341587416256679689351383094762812788369290505665774268993773136931492071843444275881001720230520270538072057305880770120377634805693979230249707520034981329618668171565342237924491465876629810761692258756562965438370797849303886274561124507006715199998007342164353421114422198919426755484961239622504267557196403815757888216182217032211514478999112903686322165798737417114028462004909886580747043192823701585411578428448713077696657965054756354593630404687778064306610100809584603382353744817337310741685693459690843041788739060044052195494123733656336066966135666095125900767591128255597048999224383200066193814480973940519138935293271451577642954758000974800188074868328466709403891969764272904267347383701899791590520760947746287150263184415673978740459501026769068551247515640799643955079231791121886498467932386759411595685297052306113985524756518201200834634933345297761124977058610309792984978370459871680241753640993402730336780832231604778640062784893303008461937093699364087687268647178516358790184018620302045179246908318194313934613732164643056654530215729957629646533593970510304815191444091074188026475784126171035974551220445987337877014030688972421145154332244689548511475302197229875429706190456524415336836832034520780771122173528393116672333447223246461693186167897435550377038236391208437051834605663863082419879181544015463961953018626484536729844933547937560115033273097212627309565373853759119131830270834541115315406368912559056125986666396451016918498402264504200057312971197778865531839752025013657041327363480513410602961563456042956342872302696418287136372515745587412099817977177471237690623673391570518429873319509220826869222125465897375567699137209303834000379316698923918406503580564325560698109789447964054230707500834722975324739890191506452189746521362932650106127264257174020186320915523890615595284405056295004305270263922653280978568981422090167532242967181157663451220600524277282443238953992294637348209853495179069481332720031308650665975183630131662400239463113309248658981151622129353149481923900596123370697708005409296348927378795564529312450505027223404130780305649805163152386431261252935752254159841163646723538994530506830732842165678564307104213651477529623688559984111704857305922319205476504709678972196890654376937210218864064978121546845154005625162839216553768360223055818805233952270620064793355465367273724058998707941490649063346178512815400996876047524296243628014018991670124563068109240641975416574908332724698583937474740228323964999134808466538621843382427169934459220573350116229788525300759972823165425632034271108408390984876932330482202153850588408210996496238382744032951726519158551179734245861790363287281209860151199925500129574550640174896570585094843730884377753258507430359567189723024829376373017750610858570291443609269336398038372908005978062958019540257432403552047867911140254345876353456680505220766291496514109054629342976641040093537883703215482286441892274304449364315978211716026699026713470327161913495708533638753518459671240726859636993423757189896970119239902967492130425914419869748195888049953103174205137010294504207096074388558700583885137066116266498665032683055013095488705795342302519080239320917164795557901778462718254661672549438642065492049820304208096376319749930166058042154663076460140038698798329108204003247646021769008176057470230837834821568889937214540189985345372374598738162120776030405390680255645956456569876206643473351652645144722596813169023018912944257139904368093344656655034892155703509169273823395244434887336618942012908958549508099547828965925809396024539140117838505880895894932701306544755993397936698759635217214280275156925535162724526422665833942955440460657190209198551896167238480600133427974178950994681380908457367876929933618241582751476802826977356964993409909904384491038172917963072133890066933261518223196777759071027665034701076141814293486730603884361086623389449938298908637759860084354378855245669709623428710159149434115747954418100392730894674949170683663754691773616914924491374238552029947433468060816734991169695747596576514344934716288536699749461883965288605332233506857458521085498827096395075452806640165250039909231371970114891775401751711623566015853430842009899262325741630319570137917929115974236289508043763672243365691301500730466920850765160119001404141051111301571466822493836135017444129965776625659464217401476167844836459087682354784822783865725116502343321429256954930159915368294216762856523048979351836044614864299529549184542298651215931197043854094005041223934213000454790638863890543883801783467191009098833727845122160892999521853060538983523965563446009986306327078959764359239941744286014566999768341705757937291085538281663492450933913910007069014737929631559030480955457771226337197583007776074816339468073609557796325891299044557713647752842843839467303399357280621939951874792277500328574618639604168075092811310187796686191269628187302640956805093373499137912304971817205874292326295763025281479687137636623890928855908390618434123083170879722772357208464309651217549968743366597285111831914170924686060720302474946365838066959496578672900593629930863416280426275993747213953557343972525056752658576498226182944711263267205343364354504904893517044181332514477048355417691438805560428940748943900051052588877134080374921217544276979636061558310845429529290930119345359937405109292984532512294815126961680891197479967515943746915623663920036034752665441571904766352828869271075863399854617334719655841271159982033665272559257589559741191414904497740151806363308647557762323600064497459345627238289948643671257484254323897322132364467748236626315259821031952206388667255821960081230154678167812160868150305199464213429342896003885352288284662999464632006667093907159667292741516059692895825141098602916790960394643834424588945370743832659468748154352639909838194723271944635064885960258750171564749702995620165158359683272461924224058821297753425546688235736185518554731248271871476352226142202229968511354561555511518671806117703109682024299799184210452019493163933731880968224472784008489057435195852485775932087018109502405186163956163515673502498976246394950098758693509415676033576103245824186171655768817929246299518336563629017398084949919536517318286956237030008728357088959647819183763830209932611628550395098560040865331451697910893090642477847247941299464063671376443959831009238994164613040603207635211409929714666936361205890259167259913338427152654553370572673851072851878060315110524043234609712510378553766572971738291373966295239021051162430140342310601218329908320985626941539784124671156580736379114303751192782102575367200428938061524847315044666740190160196004343220538705071257182507320235009862151475994099468953950643309130235125098324152348862531491179914584938287012257665639370099843946403885548004184309741922199457628853968541862043437308600575730709771362637166679420895916928187777380276321694425550736119719553990418367245715117737070009975096139519641016099606294822145234211152864217624956822859616658755601319759531683732463390838097630110813350367773284288568030329440721637915635510784359596146512646308906252641563785875059707550994229993536240166677757048571757867777154078107356534641393313447166717963425121717068948571420965268139298975051361315317857574963947577147456044201418542735575348016669816960203939589036556457317516500836285280001441407849763702306554941134159513111590680267446370292426605136105270707183248652296347967250057506317518064218212837069822495890638845592461847931797565938982324778738931463303485790742677675303638222828142811541289271212718573749966194027607064214566335262798751971303210163473881634524233436173783965342028958869037002220708422982270995856248081849765441605327502475765039310567427027523459248293947052945051963273937323639109757782575909042538798684145268670544275896449920568335482160730947610911430754131645613874481384747095126870786697133641193429155595345291674378358473567559855613750060321599112681219230815103066369101861242570068696324087145106471163922673312438263670321982720116664046450769167697617061633758294686585706469256068451615205052686028499450059595419213600015450422634972535676568100009010493977931749875640886525310964753711516719458216539758444463524534671692262367620839974617654253229755972804970843869426015621248476332537088502022065270160226967862565398843121942609287052687287515524254841489472424651471417327783480681473444012470640628135619081718743231268890403913845871370324977018211910386598727594122290839202298768917314246020902537395272151349023816471509994203661536093690733812718549475790304183897728452535798867363944728331284516348344161412338484563194973698684146136527374163398418935071308147035008847806677517229459963133430045150898693856133720015023289742080163262252376930836282472153946211647071476602079698348966718993259492207863611115121129266224926400563358608672039272531116975190939933337666272745214528710952471342959849531743716341614843670269034712008732381123525787465670205393576558685524007155038415626346314325791884000380394570520303024624472260697725835656978375596310554685156618869432710225414206619252559508330945746653638446498014445440497873509335756501662061717949099629431985327193711292562001672554407553293448695927317264903575726460505019251209472295687350465737797195945233973998715690992926059032103901818926823329456632139227163241995912593371230246182503979188749189573956620698902121921988256974787537075479101903240709502416440457564488599754739038070700649179409936513469942353065169364299608912318688986613742168893558502382509736796873285860927301777612933848866434457342816627486857373592925424251292214056022019741429394989528001816667450473405577481083408099360557720389255486890992054010775710321195254636948846500348056428478609468553539347826977437091267569478316288166360903562227740628603212560485037809801226909207039618026714884590525717283360563237454608461227724829872748008678114146721163552589301147320768449766761464965987594147968746044648294071534096786595057882762366233355804779033434077045771382835047571722643992162630295432975864183256962914335357281069251049759865418686078028596196740713601148079864320189808364624315007583191008641582313100182295354579317377767613732702830030985628374989021002749845271534726521295343316743541420161091674972783277900456313148493148563948928321599583203574125085196714717329465740565869681434145267473918119873041852521997327423504970226097374669387448030643499862953049506395790447627555160938807828974108118498241559288335938029665238566922788375893111192534197350160485221356052784767516809857705593873132744317589193933526514084443526648158118056546054950607480046559222364175093101131904058710056869993479602438220706493754471427542605398625957459532188909990053537459166114571448577033203492594777124855462616904034734959127996425630439908087952581290207352355373000589893724035459520599908176363849145162802427705758788378986052414522255055911812980653381530651883750274880932546827200894564763053530201582714531772691778533565950367977856127797834354552977208894095925808740425276936265154821424752326760821674552101295899093462437946784668680103780889744905109461289201869152975686978098068014725673098403230746366885026869148160128430793020725440714293608982504086884456532709967362571114319540177489774524505921347799144012790914723337776541060622773588914074522478492225210471666600978348592419294361179567446101897304605912955004838619440707093668295940087881729851615801737228636504377536751781920216389664922550605445078561581726180789891143361118854891455606248448268070594876981386282115100460373448427071184596463857027707521015953883382461163194604185856109989739182859920197935176529450465072679080874072058396484409386495768134098502646703609511124675221279949465584322779698791495599108169801232978686724058982653427319933307629057669033791625471913081896877732659504117521752123847744366023380460074155229504260031170392274474489438464371131189700273607169162459144455160655920982011002760756719641576745111431975129364416988423293721093072575773278598285258915174018610704582315876609270160604464712181857839152680090345500343488709275906480632564500371771371787681537169595027369671680274226961971544269000380194400130529664301385314935991913465094086219315533086702920086618024274860192673655360323298543557290442489382301706772860909197941185200520455783701743705494460271688148848532342804433938676301114650220542087601201922506147627853801937441718566618855174055217207074338120253367013378413679341249415907526862805408960271836959479615079274959984317723974056725214513051518066185970643603973441086558048025202382989653434929909373206604197719248392472576592314927260385913946118816200724946636417305179710207744389672151841477903223543436558645460952509313138564121092346528243929644631188640721559030995664472435288420739781024201105905539893541988363921580866147200521519917639105452471349636818633746483690485394132352892074970713585674738271621840149710808714132851076649534202339355743309156578745182092102908868507890063519636827501194182490824338015216037656818558430226375150390070841172930422151110569523160121873911834524314887294700580113743193037082449598268925776768897500898840477641532610263762774079507378954935387043008412792918376358892839632839915978661876334951877088900810497802587282338586519848253403504879109381345427323624389338451207615131015755048372080033499859214396554403383739939762957438309807818421753834047417568891558865859473967370819167904760722394389530763608056104092185285770161508949703901159330501782537621938621643141141330220972234481170385037295854899717078151642626370847222603494389102326558493919527817111498240761449343355338263438129649271464404544772311618209791196031721822756448304323237563872246275042703631919182385914788656019544705239277534880363401613352279368864445779353093065289224275906293604220587336308374709996855010452456001821206407510671741491698021686729065221770609248063823826505703319506124141904405877545584316675085938121935383911111341438755296515267447195959877366514865368615617354543561488259073957278660369131292757038961043004035137554555890332155799232696187770601002187913023834304994140936668487304064208276060201979416758124037234468708156120030343667265717449628112027816659010485230841065875190238717084445111315424206849102538876445365676126295115552823352174386517416019535257297197944457021124952898612346395875037369154689289704525196667266040948932153572048294605624851842256373333262713644301831823128799965097817899326937658844029884877868161213773084437971804507463129311012376035970583068249312468028801251543943334943088127493670287776532302586635607757657777770969381812600856219790373713002168455503371394009254761978929589569309193124886806314486096376080157331838211088862445309218621546538753636013433638561731511696281729443658671796881026340665927212699210680638963855661589826961878499135633095248656411203783066090679998896604083669409011408426282942456583298918725517382544947190651657414628348076895229232465032517116427147990262911603126323162503058231669502418736980449774778498020071669392042814085390118451381572349601125587581778762312396739221468758546724766381870859417644969171631950133604864400924388137560843046750549252456392676323231579937293934453797065954490235848280369350043730382914957364817510780612699342751912191399309766866516301607050854752429090917259038889942871925947126466192027937299004904880140386322691204366544316987581699247982627578926502269198720057026765736558373355014129592876728857869176620352398897433734216295985560282587993285407734537305467031925462954767946865060829220685989092721892192541043212012916365870529114677554427800084955507234603614521434096758220620956839330810974156360776079915783321872995620146818785605777815212223840738908791710872390869524097162979387554925206659732109532836170033740653445005314856795226477558055143262544023656379251232204715050477222833319058610630054529242991129978163534118149676248449882561324987240293024441441699538521413268597979274488062595713934975163189975282708498376454206096787335108595342538416619362565642400504072370546267699890874719872654483277610367327616038725407319710782841036675070449029464265298102304647211908004628523726538178167911176878140468454592660506254116951381003015873366175182364146223267615480721880753648961013281254728125513640906746527463699197299780782432639287716529429378816880021028720940570009463691767386828551463856641777580186542675814323079381158363599305759116936700387692973769502501324548653993395694982896147907055627116859255004718327099173626777521173031623185436434541238167343805344855188624272834778123428994310655265801420871205340871163027329303867955450057168208574107997439098012183514310445318920095473560484246336970429297560128372384744852161579115020075036004547848078378572746741016082338191063150241031402406426648923320649956712922844589903463708969526726406463029471126924710347585789812457998492819917642230687005719306696335769737970729981192957849059093551140972277341643285511347458967780345017339103084909325184587942247273739691111397457690483106956118357135957318267566387379140967985703447694756355057707926199304374828414761606339428672467039804712194649393757026101969152082876554091740290286748651471628222739164519437712898189303518322554879250742141462849349857011196166633777849862291564398746739341221789324474972892151628306479569031142463282374613817226325055337454460458231074743530078804822790238742106942674955218783992239596279151622381283754613598902293436655397128285772958067182564763780082682097048913196412244706066620633082736359393069588321033802586781967792685307412330796474115862596162075084430932698308872784399172388186214561360035217909062238091825170079972278938810744868103820529535036811631674845700991990996039703605492397775040617245028725175354262328882955891889440476158895203758487700679244098677262523121036202896439271354000756955719762786836020022114421330565820494993927429328838763348245618146388246571216795430072775985754103946043457893784856166409642785738734519215979133887522455384626358041147418605962949497196397360363739662204257157361122393480465635437829553529182293186117522028521478463032358251082312628879604824523498644707485873650194686036301558587947949359493233059810894985440928143492317583710502558834628689063056734655838983927180297881582762759160144350650715480473978170697061448900573844661813721279733027354776558777433611339334354021400948384549893085916163575961932792891495352730795737848533974216291522022960118661189734983689304190818488580943421781222695102449601971095763170138038976985000889708852049703233736392455909182114454995596684994721215165147034549269571645889527257699273573742210923370864561492681469201658175044504058703345551210245615455739371702395778991430309056180082504791745363449084683874514362859565465873027672429542813601815616914795470430308704281286486557136154595872610748817563259093744875209045049952669370513510534586157080884223708865041296133415792635205692762187623952791935700027077905182677772960485303938585498687031856671500777593934260964074223176294808621624775632352611771816925238613647690414567036242451089708052723057919013328676874286855682317459457222415863634421243175221647717054838982053503331764511128621804924677223437423318805599459657136089196736217435013574737026683818747496482517305075471932660154146383249438802996395763751697639216560290207396855355338067124781466388413184552534518317301254752949094346911004845469547137510939823738769449336073043411423420400496535400892232880124904745888418585145737961788451136079104337475873358250862114410620964779993093809237796045108590047523964436396383593335467558934534427735817282067485685966593134135841266672304758001400903107851226895258244728668451172492060603328447122363319367723534016974124735985548531369416949532524555345255959296401927629879881616123857098997871896015392809642391684144813607586536091253590083809586195052815828964893683177930620612316558922720416323108297931489536940368716722965940026578150437194974869374430185084547872671429358636209499452629978175063937602624464654500142448517152734847598170326606612416960857673168744506090716876807701367316393510353559707536935095102175251017443009465618584584304625448324452040024989377753983790175583190499404254440359985786947098080684394926311700259808023254340510421768055655439485766934497813881314597357482031190239296453351166300861010409469722699172073323225715591691810896851736797483084397677374242766612357093995859331515767582327549685939209401956885050127082065246700479708532637434233621069981953071470159583285731991099260746988719419737726933224299980378747866310314921471481182185166969651727166447050336207012844881761139940939711711403954418173880169145752551331272685055682964483752591693577482575737587590177195705367342001171391048829910874556422666961988448904876491148127999420926550673533400664509527608755916800364605420079340319196013282521678915055471993196769600970463360191741788531613733149717261354077293114353424223285767520923634301010909393186881077357867225818820435349067434816656738804885914656661532966491626392402047581615972371109249493951290359667401071339754704125149969268100230709038060745967751191564994168807563684363211143012115519582631776910940038435235447776838617356312662818745559070671737433799718779388888240427472869360827547121076903736480163941900516346851028663233987635251304968359949849460540063423137420704457118378767742936490952503921634039219957073029433216842127253332374432758492017151172336425327317060950438867781137062134530238059970669804860194277867847264675322560750863791357319215013502654269981507499807788680291437977301267415614027936651624302541522496415484914861206719297012778806550121742284068928094829778152043949694509698704796835919718560859734972629913841463807690421627343886332177054573941039304192654141217756991285809218402515302228278187940317634678982152441555683550443444791195538812264344773587939067018097497600148999859042780214336540265550107595077840451067599788151381427761130060258275335503069151587830101675908337637721200053144309800771014904421246836465727332644938929153507552809589642818191992565353394730497464970441768545625383741233864204379797501638862401338932990088645192856830331108094167745246977557519395442525936584987234019016371136115939288521375361887173520724337017065276830423315870928869800020421123766834886300618551068564705688639602133613707473376734413556564143746376104051091758435484872756766271528642399056076006348167717320742561015723885594016413031150444514479586754537128190202092272991109721955578009985293846348019619398949574233015922849923576716895641782158612560052664690050944067150220878903301561983131035697930230079833544291465214825114163853532432155354069047420758123740964101116450519976119778070712829641925599696314792575842601360526638091491626537006864066535862393426674236163522088485713704157486748589909217304366426573704062065783473595304242512065268278300452892064749475659753926109058992331640142659468198984710032987022898224495508682864513492499836579594879975519463360612829429996750608421025529012308701784992318384849147923528809701798203807420227639130251179909301040688627037124952939493227209274903369835579512003872283451446318128455337640616697673499847508163838054466700923221967665127402925372989315883820569461329825434439852852747406946451946293164715978021129294265671310065198808153068945278083068040714164531964234295549896332498498720610858046154936499450879306733185736315437431027448206545732957807764098255091937607283201542091382199848551944255674385465538642148845382298358024102032573806021189251795784223420614435575018610311928446651383001292833569643817109139058356183716945869732581356079223405919215415715102423040714964958288358078169572188661916281941053034404011673320995271531229444453082373664720640286852658560274527506044358191956465125466223667347267089579259053498238695160635570257435793013056823412708972211010666482152703611316260108655916025203016885853405978321833708512604688080250569607467131824041844112300389630974976862681185549696579762075711871913427400024972564927180722931575321543775416336924926445521716208866764585151308797806963084405938833858846770216382524084029330135346755978293471323108921551869830406210139976021764100825188970058749007148239310650421122940577064342640710776116827671028294893776479793807181478859940905297938560900075902545152923654017334198548003358913027607720835724554137088271802596184000789775918263513727709922924015083584483070659917998384997453961237368090991260142162861447841967527110010874643826434584222759243601129903275783221691278359240407072599923403343586494832935938940851288631015099198580562765784508697924319729306233217395802541741402808589600836183390499958380720955534191102518322306553078541861572629852902495597447284697569326026198801289003377472652179059989782260981283432802614443037572676234137864817611059295808477830510400906510124873493224002662557399951769184476267145894381047005420252887932574987170000923708598918875980431484659701519209135944672121359774283326164786500183254334663719228711856603635530622313614925475119904418634220423642537484093477125819812376191528800327516761269930818315496116134412473611552702018921177136552528091326291463888803506062748609964496291709730263713080293022422018841529176239602743670645097726354625114585219985730081978514727412309710087549593460021315239583703474442552710498550285310020056289009461265512837483032617164378974498367781425830745491864019751576762590115762237126187123116477249987733979213251214338403876652959366350249973237522939529004305924783645901021142071445677289772002000069675851519702929818911252805541033965160243878605910640960561161178930714809116133167838599226042417122187470676812754571377547160199339944543164583848345010740304149832738541473688109590246813865914329061071891232268572873432728828280790321053133999933881518720079374233892823986578589861412272224876619132847150219325322033385708331522599070756675170634086137271625788154763937482459189627849760682969209582733807513142482144028106364926754305437830799826019054232815812554505548381382156223817210289250482222339844522531806976168164266228993850374090512038235958412788947754334475168078796886782278988059723924016047788069411168441576927625636773994094078927613280289522452521569927684484575169380342091624312755377495336988823461764541232796412419817480859552627470394598815371073580481704872825619622045626041851488775997012253905545089263095281301124847600663690501322753646462091223888583130894779606800820378925481495476740197348425667059650436457578656578388887913252193923732135699854483031533169365570521716575021570887915080257592872857352954167841047777662444728418011381160502521121486687591319913551265140393419075930598912243278923906368051165651890881085092231687173094536941388562314013930533248380276408633986591227151925946718174260467503958387305184704209893677446892219717547588219625246001302498454909138108528537241136652590388447498803314967425184412197493084254134451083984941827610922107800594666786347073589360095848214039969252249420177896729080699477970644822857036649140078004389474224376728753691069321146157482816034549672165352950202396567906701638538720681002697815792247905618329896499972211385316312529475485074980263944977997412479323038237534362575354726114096911986334520502493468778368740924050415594618599626157879370863122476931928432656547915323651354904047982650184518934000807821175199104610522521772291296341717757807006108181736550242343568197295188054788001277337172885550496572384795590111001909510394771735868852516169825604852212955474611975310730501830884246956242613552076607534363529356768042610094648801191474383046143960579722720767401235339621380980308607132769779413312869980403515631468725571022595582924982183557154230400600473350643330516726061658209532405121288666430053677349820137866424745022515510706317129465143528972453212487910412155744475333338563965700912817684900874028891156149915597685373011417126778538360264578179838570475840103878972104640068292700726614151126316210091989452086120486341344746034942191238503227762434172555777317118764606733097638547061371005289303852556872823999352759234398867934618147805093771673758224790134776838024733449998296126143492239723733326926451325816066891388105569164116169031521926772438568262873598226018398626797485774553598243373891719721455303593699136363529307837108259184039131152116935920876846368841432143340966355234979492222088564942222287687563658931923975003889896627889313464049941499404884974126271096327523424173997367029838794931958054050524591647749867898967542537805514646173203038273202997428206976766463364925523503597937287385311641569416585474761849385243365213444546809070682503693727320766100440956799789224042716586673244422374463593791508998936862864498975533949766786780873461623825045852067699657509615600063823195030044689108170462147812457297098214043166010023487070923410540542659320281120524336451080557931210930009303766911216498148808782711012668435975528154387300691908905886735179832986102474021056037380854272172586126746139990380179768016289486783216635917771680104367775183413365185183652325089777643900191049848690289543752064088432976869010751606548492918018252616097677063472399648053347524323284735931952019424476075956643453156465021254730744811988578687656592409018454605851870461653363651727490058522054160191530755522854253228823921526594756597115816146297581322078185894555697208708011479040434390697857746222777188794110295070423931381733153854831752523826849731159182057384534295904006848991744292611954534156382432395563978553079034726345954293989648462089317854877919198838128541159236963946647708926828212675223411206521914585338399591438352199035653777300477316346441685334267454934703066472849232618807236381024870061166250184248857151273928797998553216640744164545165940032755110614299396081451349452354060494561373287290041916104873173341893868368201477581492705653983509669304120160276505888118168345037873390735988681992310154829629833869805891131717139770142149064942275953071823228393985316297066230669910389014825907544553006375718783250549053593267601844140497473685167683982727157603495360510230561614694003082885878355723698375747954731766917370384646092538949150094004348598907899085529307603568576122772015260057617769351787535889844825345051517452715268022613773590732722051365038395120798190046495045191966608478278057742797808363491171786823786724828345336764932411038838806380969399167823935919526801616200896189635422438632361647070377580530926568164531732230420985182354513216393686812335025485795932143406160277111240981056199120344671945934373030472566293768458856270967023067739336333193090364125392087237759593752539350495951574260474219359699435052522819150814489363311813767549955751495703736604091557773336456086259894248081884807604163478672516412924023048089549677905504977089682372583921430883343247445500284787869317304098830248175678927003024848378651385240054557904932223454393233219894491175309691004772758382347832664430294259973467465081009054541982735204098084584397626387925141560645523890261221390134132896227779602920900306595594576294023249088999896204252530540711274625145144692879024953584933191471546594101525618111835801150803739631792954735667600474019714368854198459825817673615911428952384627760997204042633476337373699362753454941753996979879901433681911580175293083904161335193616951406290218327851673505172191948309528956564125852039882253680905104663536317316598158978405557571757125209030276987925264842142105311052922696453557577926546588433886344068750585433516470755283724394910682062627899554403632638920536775145383737434673033128972387887147129609436344170617613351180951195075859198725359218309067426710138121067598832919360398147166964817692777122413654742905556508662746995547347396920153794531968864211408371906931432049610256018431835336881518216620517016314623317066843972510463307613571184937292855840457450235598148593964067405065615619618366205523856367497033695825334096362426352013658833938898820727113078820289937786638752138780208187810921578689092537059990256803487686838573329562470028330116472107927825743044570010680082232953809888958127585057528094979622531776792942399026156208928351204916233455852395859264849885245850335498566894931921137206762714872569550086923301275794512023092360834258493305383021657886941925942066001336443340472169012560949520867331088722954170590866885163479100845042711151771885173442901346796093911959132921249857038907158409348242696688188638409920955836763584685307964075322098506928515600813926080424195112953929423675322045507584602990305806047696948133299875560525949424279131417936801227131616172335797068052258974555444351154529439617632867336580178743303941589964135214615666387879590169661844020030757245609083320594440153201156034581535449159963408431358664339935779658594572999801051662154486779018588595370138007741499547161428083793500281316966373269131271248696656375197545983824870113172847921286737399142126279438152628518265443968956996237082253266790458478032721758291676214350189069733564142109647069439442426279798460097753825547659670297368823222553162648468706316867631765296681885946205195895927150859269356546703795472274386137851374099918109356229179345750567404832582019909815598045479460252928446926073432290930736552227643160920379630258860582779278594146143638133513302416308344906757176545200463500578289208904711885930583735116853615487439890813880996665275406705547432890859706834677389741830852484041019494296134910322183838540809478553329167894519573016171878450013371655724993607759655144868992763710592421678363549259425972710090501819342576881033614205878491038351785267531800511697194176427183520226503805491299244155606988292216473063424495124747514680224559611688385863673057367353389451594475977601917777744807424663089300849676485349132039638366432728784753040907291652242620518580114675903658102244271375509024438779238609952839612965744227047751720870316859771354573832666325648448950200411479504289128931572885129603801908742789774031055279515057985060457243826075628408994624610184166464012392733271724642195127686301179975967822041446091269840737149272022824822429965712781790359087660365641436845472259717005853788424502610347745903879840719346497585345342930483577170433038051396901700042484046662879965460431252621491728937822543700081071567436169809933258459396556717687949661763276485585635357250299167193901082782864423023506407840135940252691147524463681487907370268185578862324667938006902474427429708131292904694889979883045728659013614645752382133766831795167474065247483414599286449821200255195486216711119975886999130961742527807049732500738277415107792424136053137879482688178423781559428950658134935790797837371598169266274463498170442155624434642718460149687035943636256106940201785527961803446479517271405973976474463102016236014041200747459743901102233261742293628574799155564774377827415970049856317182874192279597035147198659028543264885896972137951051575376942538992881354697628935830114072322729269636145547433539905133806516005625525978051194979995203569312334621703630023276994090136444110283701375879706665797397169692038418077346445156777929889325852379687817802448377970390710060831022993538463563287631153599241097083807103530487118674694066287510722498432997359442573815053291127070075964138864211469674110586104909641312011622341221977809413412497772145842350523201696201525554367227716811972039116039114986298637947808467278533062194089783477820732439746906352322275485395640323659034676429619790528616103462530271472798746964940435826423671848396561568297211808324563341311741661920150629081795069747409548934030679414578015894921378038926808459603940605440864447213741496680330494479743147848016463627074806138523817556817768053850861543098186883520508410603145719790298415383609808630572132896347010281906688697084513936785852358817356419447482913115614027081035475913406604297472105031452157216294380659830135605736251589861988734655951665521206422799091961678105708188647820921817288843364629835675060171915244063946724746309987008181993631733766247784238790958612220910749243134126521570071348598274628466809728258999589135808672831061427732444660183380258935676858034945600943414268465457914584124545015874765494036060516114727628592674344613340076965532261421617617807033659923927002826179746561536392407879882259679301139735352965212471369677427137704545559029259060930788220575270220069241491305262806953309049030421593944227672505049297990925316264235101043919134265698848057941570490880647726269702979458084215884803621985762861433458837655565199659925272729464548452631262870262582870932860788568477114220410771183728464720950997683189563559210443711830727775841829582392927331742467781263700100460271809184931953831007911407090638703488192981229877295029975018882247187275641678934328814218019180152268310978995527015738305156863362334527391609893965994018280751938760202007057393958459585152699008577540666842199184817222085766572467402179870850906581522495854968875157099130424856577009364674158968715889710694508505070790403899245453785044977982388689870549515675539262052251733440836813065965417213598490955322637027348306909196612938714627848261279403957942942020168873663429239959576172976661850944062216564412423368917684824276121562819732159113044256258877540887461094801747022258502155028218387582434427743358188016174389464484747003885089619333084268163013719453166422497403377322758802256809243432656140251535413416703354028393635695382091068786514188300647733760379143704817785094472112438059909512943132494826213894925425202956197967838814347098298830620784922718238316208677661823780663398404624073954120527624979483066617598511820609472234114336018248645902345780301154810447028571061005285516021560213440655301250402261482186058684857395419556994484920337414311682891211256118216789397465673942807484429955398568376588637985787069374360061548825536702560880621265527770510604818751004804208597627762660394195796796820833394043102571217309151217049546629855980012058325712254940620817223718027148328659486987991175152685009418790873262908426176519609536934328191369595023704997714545533632353023975429603934738078769726254124722230593630271601100999279268246403078471378292111288331177019253597026890728888573740407862360170286459991139485109372305088818053385272807365049987938005180586580541926780488239262338697771538409637014754745471665756721124924676280915885286910380164853234475640900674974778473182177527130192678922692160957599660016051531508460906827911940884022877007038266223547954244174071210250906715180881970231653154529708392539054403863701056330334697059035893964287674635634989329035160171930706612460692709673582519593130900535066771612395780088099381222066769061880778403394687149721466386466076402601533287745529752919716465445863222456909660903735101169153095240808523661067605086712604278383020322174710311596995639235482647714161729459397300009868940285294990213581849798231529262775356961809863013084284467172615030644741307283210642959119090883773957155832218878217376249064815114870718147072793851662626973480521857645088818639016777959983653705181488248960732078330868089646270147777155403635400417765902496560264004449554179245411891438994550764120932148126085765227894739590195594146814384840933461483376756177156558613479176963294285314363909454478182111552881508961762510089126801285305769818240574125374193601987752670719094054553140588675797156939033680977995945322729398914269278116603719740014233885470485529870509047022483748175694118394319705191389702866036344063648376503450963627497539970241655037828496609838986817693687203367423334168107309446902272667070523321182045181938706268601010010726649711824759474695746052799020516695196245716093175953840575221034996084153684715364571205342896885989265251270704037640888971552844258713807790500820973536938471636993816088576626224473025277232390918661385793710096742429659126900797625220875948846622411235134282673572548763441107876098611071726199289399960652980032376937341252667864793834639972243928893101764868359717041735877375451131971420246792959939412041915499744857002757148773090031884239220797063179829415975499885657311353320875562928507419681357133377358582297280765830831218918890449609292366348536979654569859069298591669892127759440258823144878247433228024984518807508132395605455728930546710605238409704500609713116743413986913433965252669628170540996996807676079298627629466454525370809687593585982099954607123043567647852501045674753788809844142891751676589141922505064232740450791358103010535987036492844646787696604525692780319224845908691235608184719231203088236799260385327780332599933503150051784522651649224224645117250072063389415528569386634863334891706711054878935794463452010471645492413424606272751141477440227852532357718655845431300729612961383027950551586208123417464361008998386081498866245922134726409863079479751693836691184913740576504716370411511584342161921188712893471360808115507000764990344259928368610800278805750622791195677901183139883925177023918924900078005683961069098841120735841500942811599186994014457480459463722932729470524871623982263927290857732319864653393853575076237021168699609873599990598157327739160802707204055317655444787288271465604341544604863630813259416189740422730292077853248233613146102842689230794342633869202032373903122871032981574981035144078846617154780305290300978549254394700159266392826749160594585645068107416976404112934507786434116328069944209166064846427434129214151897912919346848142371428544523602957147432137149773059655053493812530077469102340203785276609899906033542982427796586187300266783694528533301316833726885717588412452229580177953907992494310428661159349479989877519666749641762936499551089438000997348239631024459711046223919875085456496306983115583519052163853949195717516795769218911019262478679338331961312396737472847809795446074821265831331197081998891194132200367225683780963364591217852464051598977139950268871856717184477995223140876683892257658189751546535640544261635114890769769926615669394851807928964894988179501913225889873354682263122730369349707332690293919498941604977232671791158381256261450693015373651404341830123372796466894098063379062762680895910595589641209243384900046900687049222751640397918438710269851118087056801084845844085040172625606168918119176465154747315453085463501559529041049576583638229369013240922079611491495607321389974530613049433793504001830065418605298200583229490145471467985304672189391457190449708323700766270456186534415604232086779560483599878638473035876813839143052125514255427568405335846084840245459402668936540261034255446226537842897408293687529217934817085718562142341605370716360773656230580719195329638191625651069949018582215130878534661153086082601103680196216801355478491876786781145101003262270180358249178948581848151287949438091429760912958892582805164987777073025030802595006480609372235884777153149132831977060034818099751419788254239017006170880429177005817379441851400716970463581448304040433981108432634834307594759320777198013663076089664340934867704335509393587774665125835153391651611189974625056304476319787638601578435455701879199671868340677348210960020958266267509137888955630817025233645952292102224405384014106321687978779494601480848302583436800444086379471675153189270625369921798243001974924755757468010548380771845426537668227847972045887314742518596462256300727403787024296159318657673257741943016757047217285437821231613844255428920225626361469620654366809861793090974107498436831325388119263971123412765269318878349434461979453548869702351414347637521824646699062418978003263797449098498968064335322320180828124478507946909278510622810119276222200102000365247760810065248232052984831428813840790994150429680187502225920883984991466539758391802933442767143578059580594825355274309649536343549504973880350588822869523889816612481455049001566338002609501004215010819591508714250475940915056339869546249107856678355491979447293323264433140017556214438315194603605442881805093240869850496437219045421103133481259208987385762142319514676847581679417544753320540581174187064000000320855889857127208318113750152397406042489988304059314709627324361675394872160925488202958656462608156856353194360771858998915786081102595896934707591245710680650477436547368140659306373709644586792322876650078806286572800005484873595981459829033889716362184863520396603449093703687398118726743249473338603740806167051844844416727268852148216280584720619100614442022917280680493754354291259029705564345457817487541705584085936813805221737911625496582848247998397817291879284289222763381155729704087292034605050933781852158152557955946747591004905010343579194654054650617801723654095365024774410283906249034023993051502206851578771572836407932197196386577156896369821441877000114163570454140676069528654436239484603514718613951568818849236912822778673904876494934915717712365079464929171381088622298907162970222008373993476362911564713035300518029072038231186572856241826043891503519085897932222275528180736407442139633321554830881116563363968007619332482362238584112060119017217395722413309049909251295498418927458539726151065330963298634122933674696470053248198210203028610081221760267264529196599788875467545433859203059699790003305238375500136293107231566751896806768028196173022344623668974782574800691422102211407769760287059381810303275328064695935005489069195564475207993318438200410251054642594755023254759380658795805444402493323099197052022593281928533012882971018012483631988530583260373955316133489594429615967376276341000169195579788059097259205296717359374581345965238647492220808696389020768420143450539791701821387232909793086603813615666808103100930858590791358296840329477255636404105874731415385956318774836186190857491854605161225340270268416920301634191283419657678772401984114020118531041793191190857496733549997436202476976805231313402184368319989433044978204397133419550565321657270904922116007405383213065318944484204839593782318462861807249799400925184819479892872436521775155527893182943737796954893000803088959427004495261521725095078619163844621849799879899579479864607385744557504471365450120074718421680341378811823072164261192215775115542435488590834718527607458294761587340408798734778380048464124556506296462497791213245423355886980484391288769808391076813913050105619084497831104683446634079504972571393544296067084412630570578048851801804711849175291817387802147577777187736943852970641723279815459686319478415175278775319402801331402030572274931651742939261326003258182058401212254729673151611911892391663891430615055453358134894506418891929776400384264556503188094877367586328304138310928790963036365849871247129419424362204136413086171881254904984235321897472622682853729986332665144996213024748242234595834583348392825754898317517165582371011008542559354589165896706063491599717894005720306759927134943968541655106287413259434645228436927047873688109583632747088067631223336110999330188124792176160230783096772069448690008695609345583023723200395563555658969054857995303858849071718619068836504140845936687702836428031737128511666782562888851211258667543491310376051218803812710711137298628708454022829439093522132208194786981354109953260908591165624118037930962646812543200481906823013031876967750910629540464720622491890910489850201448324013644241846265503528047958529799000040455324370613248136401147776842309233246234456637381963270764290463619304012157517302971147600901035729947603414540246064997657324016400271059564112488586566435006295542113612401587612940012719979381114313863445772951138219871880342475073417213992838008182171514794686994255688743298252056455313904784842954435343917331233751582004559842818897172113118463708501829900007505357633251578322814402543686263528487004021535216295302358214064755685149514472372941893937445147021364513196748853946006155601393508860577372889041186561722875599606606742117373848730208260114289486653592919600958521005107653301697343270576235082433401728141267471084799221663581363923653784882252412114870682605390149801123730837236120662170631932790265976800287687703474591172529704525270375017473056476921521292037547926854763715398685752899332860581503679660229812666925943850997008271247036523367611722354906680131739643071441395343528048770175160834367985604596741148062547057693647684402747455281882917839649694434356358875951787640094535812017778018775034224450349748746098130458608723981497089533183621963267543774793773044631512980873386014061204368440323707762847909358402656776539510198561632835753687375008981323625175520837276086948133677891808306849424447948864462262557855453632942109132102811048510583139564450330911863128088672587218183595842318475390183711648569425701650431760394163793128329981535061606645925262379776331926333941235498598358788277093655080740598672067193444147929992455552418402881845105508740253718041143472206478604874170914286535767096620612092284605793434228262867031745532751952267963314161648069400549115436812526184998136659700041360331460913003659371367684227157184215865005296249702799107160121370874923376100829336202773189097220921686531357595196587235672776878003688750920864797435488295727856444984814779092338614212223338268559355197406400373095378487761306132611025718775279953532064605470218593680890913213106448586042509379960791984627079911747008924091254388207402503172567457645391564038996605658595742611918853734700049535855374867104718996995640818215041542673910701109314557630873395801859069742080411805286887832392188245567261159253944649731321857773118569065291577957770475630063665079989614310951660187969870399896512234717788035904258959498508929034406914500083036967381974190839707162699648232704950899903463606408089780464942651194750965193903796657366472763722867194406840249654162286284230823093070949656883777706788604450058459378875646087184423723223442694205133531318527341570439899616241566565996421943418752629201374986273327895334780745053173242224712861606723215572157627538318961694537187339373111600379372812822825406073799902771436489019379435008959378191432041985705183493107065647684132208547982023943998180358858339706640154545356293135770150413871059947909295743707615311257319835076259038066481371500228994041694349290976408453790810005000859097745870700095709931736305178423739297866852879553996770036583317865366028960876997946091606631231500645451419301838775668914208883063784643463541919952464169692046444858729632885407812650368546578671234658245932045447706425691054409357456490673656360693545427182645613259520170629240848916146295392368905833159074310066390949388006948439414239638128448520816070032837942464593133874161056528230159661515948271550594717661934312063074903319514073473435143955285182620819753792833507956675676517882637694229289356631223899362347471454717656121691278859452804516003570745150583768705508624605891393979388293873377334897682582558109832290640541459834569877238331782671469026686368907286769922674601853861415597091675294318033518699238219981653720110308150124516970309080455639418523143708647941266335794787171259224841514268111336817227698006325687299682830682427846301344965777115383803990731739038395845463970331318434547223305368349775150784705029406403789335855400100956385040647923048922203469687175265529115904823305397152926765402262687170837611747693826376535890058629518794005719899913375007013352965060249123550877246489322394001659930525989331872575148080487660050075299277856302310724528023880404577645729787715374628395296065456029540826349526873857824271796980793454067796222850929479205494195298556161318472061441710706347492854352519927702241414866667737519880783717026783252941014366760602160762897195227699033754043281824948187552571687547172818416340975558261989887383568714683032362304794550199668800862791911558616112534517818186095224518546945781214491586379296082806587500987920061466159804344932054514287843391883498070578118363616961975183565297250495469797775416925231917920684906309486643222168815666814042679472418852927132891479952271663686590224090831008880977099322994663786815438906019057527981921524936161792275512934590253470076242342566596991656803605373534492457188134974405813851018431228262171340839508236155114302585754843679317199159343140043606103511459527513200689071623601432901199288855060486691250374236947366949065005694175570434797403783463659215196290651768358519328457945669776288742346836484863623716761844977582539542561910907079939721098270741938021255591304049286880407278365421901939710905171361497555850466160668043830649011061218232718893355521494901190105841390390291618887113404387428537306402005195773135512404880456939452088042417778017360526131233287049688134949523471448330249006294334850615184156384818521581162607785601670552584399544186690841125854049820847103879112532628701827479780017886646586364927138660258226780590926702965718177706578346596563485364698271753216125473227562768462033276232810010351444791466276059031283585122282499897231220210776142286856271636299025928085583585174599284815126996400595472629008039477340916695799946219640577506328876311549440328352163210771128436156693865672686267322344479719771530395234289618197043846897236440315463587090715778676887411465761154177369124880642771637730210566308106255552315116262927951512586212810933684166831749621140396878699452186838907492617453296593629518842879111531703557985472732234522916004606429713840289429649337128767022516981512021466729338688606582826102404986552406257950571654720472274850961629703467605187873666209566047766553103862165645003978144127829326310087677445102672105976756773146127985649646570598267889924007201373952088656255170298310149710412083479647583342717983719805150590103765171238328920842529015949353117856523484226147918591248329447273561436821919845019373833622810535988086098287518482869344009982146520600274359161456399759878641275094329007525522180369485758334381622223901719357362271045633706273403870746997996421634598516840095034368440384976110610041399342365752812624675319687006139679077405691388715587340378875471013015905327030177228499589837403419170374827267948676069918322943556732458549511227016973390586641018226156761639592733236927041384775933704195013967936614823400516745246758989899702381140476291946965033246322531159269390010460940404531562551684646233280814042624515169056548366266767929389710692370872172347377934368703193954919980527087337746309510556880273265017265814690171183139786299203674703922477242083263978986375110925765023647956024366209446053917312785251333467510238507820165528025281222051344208525764295432455679838540473336619584744720365088470891019279063745553190691751636177634792212205421366319110693445588326290215362907853428538804290237061870989505587056121137458732802511915784173256345503402762245027407974527236933106670642938937513175517822263040882622315796828198940078465561512341076056263445691885507766281508395874232742784180902257961120404701742262040923961992075650637636167734487084491998802596796398182629514648650397453340742029916556293505161804124424058541562223830968306931286594946805240372017378636571875275624413588649000148883917239631566118243017704982223079370109105035323353326061912772859122422771730069838271062639635924028484804471727801685985506063728770668292429209336001415670119691508157831166919625563153221595027017263112826107902704683010164236220855896699739574183559219292747271187660025872415507871180758405301539145685064168430286132640634436083824182782993359515122719487646514373631864382994540121050281066847571686994092653030108865806075026866389991020136025604511877818501788363832585120476662297915587928295563019800645985599489466741935805777499498934614261447828756076027133199258052723039249331861317546905835286855582772743261314826073243509731388468982056051656229125675716383453491564769166703734426010012330561191435789624078907312624301559515518880169920981154444298832318849190055009932761382786263245299580671281249163950783735982473282225445871784497753887613628367823273723278693055586846321932012759410128801968068888568942939724084189702658072976670566235391290173219854030178658520541773147075990550503896485480890322619155689493632875774123289409386637931527847298017533602250056989137034768994403576782708684178063359193513442717747573276584557474814961780636329974292767375037889077319216726239667411122059260334769040211284979238056148103518590689787824971709415101742054278191935968691186450750975490307203124438575752092818771814435105655073702631782337994691048720029107286709964315300958692745148326586788317437245611008276357029305421576657770725359604573000845314326691255016323187444382763888139451355288982740012794128152625283931274595371773556386105261477394965061881396561913396096978483953596951573450932002452754052207750289780789369736465431625534833995650456311577075874252932568641451555003702775561372054449328594069050545492555863125456543219230878629718118508880671686698093818463161048077410798452997095985151419170591297447288942881040470429341776485531979535163341200598296613144206036650647442739024069419903627788283124368902971342800781759454210544876491663752094458616885015755874586143450604796183761141544199774918021855957042086638322492250715571391986735187630214999982939034882860120209287874762981699279583220661898400421414638732991844849589499782062559598170261712687656346519794289944667470708070184874009380347619070623816083511820737764500223688905344222604565174491532366561847861213053298186532692122848621896464070980169649791688804264553371121202304376436284238438586655715373685787521129892642950288813839798046894210071613226731770036171223205445265976703198178728543214243288317643073608744484878563333134625209360548669456237113477424703617955861559284593091933762706548614265962872335445280042162306323197752659586836819416941956097890336058705855036540951179471209138317197770180453860909517909527273089757742431554698786030025943188419441489632660867968218945031785236144821029682754163713369558454987391163138632545089160337081801048546801713286407285506009868238422344193149557426580469256261266486696362210017665964742090177621068003124582847413183514487450533973422110776595330154820224522572397177869464675128201405404636467829360867074290475459885349391416245718843970396728296169179898901168104396310324457637614270868820773676107143370382987889477570407645246027813376300875969924220997490792673543182092356949634760225836630634730971421761894610431860560869831267370758898717437923564953858663794208843845169032680549847578892471349474031326393810017298069091619256978339751065098189227860029969503946305752697110100148533955947835017549228111887686903803898533749596107109540768307729914685247858577695735037707193962771001379291770592361173199893188649233450057355764313466891642123750470815497085080268880545052932384422956546416270531467413775502724108781446029253106286629829321319980840039590716089509252587632223418999177229983448707532516723796055616578046136352647396675170115429321995513194341100229774346043057825297446874212718117527033703664700181888906816026834965213351426816328709540743549775446043781724343361862319973199505113402087021438113870605432611250762814503891717669437470453470559398964759547586018722514077461405829637307942442315440074870394372744755238120884106123754569042997561425487320804336930658112258309601507967856858791131513892294077633959656570243993166903510836771925331389955741397197110822088108399796257893893332470819474196002787992249898431475946803144115994097321695811254891554415870844758511521058914804732249615535476186509045222610916293602567019075015258430452817619188385575066112968604936979038320673454845005410789106822479196300641524674027272605600584090631255197943257383718708533758138052885162261265902168953090962807698058011924502918242391841749392062791163350200906856420598760293328548607373502938705054258409077437279077800150716733535409866107970482800911273298641878884834800146813548117479197107824395799167472535616307987511078121022371025419171586511595125487778464730565767035014047333679382203038863256288168448521609736976740618019608300233102145196947727978919998810984813722669494040603736970124370936777597566104725017148226894323145513373813319982813215453154920690602349173549873792704655005224732446153366654297213994851068246371870832066561152056005575395493924190506724855011492739926595346349695815262213069312884436795501900244215547936502320985742482817005456013427249322849032553206050856774416066696234636901037344002830481306527996924663824971296893401350174220899245349072854317204803555427419036065726208307229003051916329767770126343904998405031452406827138788034191689914635782049881767325693629175531648424377845905535273612591798784539289535802113551006559434951205838080088731991063716107097375703540945131535970342980023052771982692191768898368764162432505460749888355387228895390072064792727889930296181904519777831594618454145410709053023315630507959654210283938030921692504821627868551506193771386209499257029909847272974209909382885500665512458631332696111595005427310808617348812918428368880324775867625999505000336997471629079283233879477558797814714390769394474605556721555427591159100473891925696206887432820259288045056917616253090001893000536895536833497890356007100346818825995711811068389094679382713948724086299504341240716177097782536063882426256551519374282874849084025024218754503262245604825733164726477070037795476903933878052757382135052409614811547046059983314808341636389751567583688629355245485471280090535751574398239692392200520786058559507787336222495430518582726573154116653632986568787028397678465323186565727990492999399663855301834194185851149028527722667275340471251901377822137602999375181893940718060864864425564299897026058297547714113646965783530237822749618961944226401675430115559855554187154893348682905554436528247512429696466492200093556559757379328334660665460941754569901198397554306987373925587573214272036185712435875255938646055982787009394241211955451665696203795177473046531004667040097684043876452591247661578937927870772475304372384567089318340948517598988247138150800944789348456687875164781550885064983965244656455842627276377823533702152794010919338908192939956326327754706599945785829710378002011277493291859024872414131982273927025191892489837208765895527605217493990916639883904153803010478783509858227933002887620715417020354707567163474896917255053708213591099069461841360851749325779894129074317727132470162312926624356966582373233496537159278499000937194195238107873387806168571673270672908907146272466859653341003182478481465611489577893602102144474666539039738403955356688357427350859538688787170806410361890439490137722528588161569870393318540627337263790356411769127363654758493211670270291671622295824151442088415577053014297749822677055825135575663305598783963632663283463891248222448536429355499137529459545979854949051000079778763433440212975434910456625349127842602260668469297429378291325684073980346865416847476997434873464563185283952610524398941248746972769454395434595257093040429421451189338627876724639358831051400535121598114387672319559565587472306036326308487792383208386421454212154988044150856364671732609112931524476854133681229804030054076095786749092501449069559336422986698851639434789365082282568752105353769083423189085128426034206678132309663275599343167029752197005345631311698008773135704838117006164914671804318570616402254954972506462567282813966735190274123956199069318068493393564016175882891898472035380789937038239686178050644245050460940645508826240983639352194675590777389848172626538169336417446425263451535369858167621146352764465300190279811044469023331383310139284091010746003728915085809178450166831510677711314110569239502798998215608694427938236560062706292906272363898534816309304106602475359838933975911260173129011588634721446589435495420213490594927536938022843803168014550311267139572811571321713127520256873003345530756791706962826558472361054281917983832228994677991991361105518427393162178652599753713273728491859259078702558885223298758035959323670073383526896253394098250783723646614199599110972099042361965086527360127975382767045099065159990033847030351884913411855059630626981143421128794074682057832026552751460197818253161925077959464780165432140967116036704680443372399557829244214266215815608345792094776843211116404370510487129081528762336212651373235278383816123843503653125105568653737674894650700340388656511578428300927987199104304470415537339142838319862107131453012431344532429086477832484085464724462488993176677586629120598884625037836506225449365098446488812676372626726978784227607402153029152451835077952958021901878928822043053111985290933162055716783576150725611757564902211977225185565136749436348147100457153282625790800705285020102127266830573408537730005263940584775387574439221769918179494436912413934162888870732581533759215776358612181776177581852749058268325066209895228505704666855560151302017299771792230704044535496826534372091023553510611825235109864736103640219352948062187060789146572215871976471853621986851728391292655982011989746796548663149635569961419619526021086556183255558544230970277207106557806353236691739799012951027261900559804491409283324186608491976412947060678277599944796368852176787265121683173618050823353755984464424739061446290556177229472248862181750396659215922717407976487625662224388198700762072100465377067512725080279298195207342581012193854616633507395487831541206259455662476057029354042411834659264849560417099039692377859282675519338371223320238903485328989562650534893399917525112186223875010616309319318642570796188076225040545787475461677050616663665094744199631471441706051852622013995033033238346329263961081129375704791293407212396949263601860525466628849175011127048680608646020671310079595305979062535808935323406117871287008472734686155845869952134751711937289636277634633787298633373965290768492635558498458712073308464110242703357360936770105245955494306266583864622169772404797071913680249166407365052585334542394123036197483057271833643610345014643711335616091085836760801515868973475192717199875771962232479184871790689864164250646340179252423249311661787287862106726787113611353212180253515206269245402814526839791789028850342813918374201910749293203716573380878095847394237760698817446925759272976034728485649281361390963641085006152237958195687193956714281467213725799621836481960417000070319438974499762324928974774221407334748783789303595221646594325716000315353083832695240897126111873746517364529138657421552591262142662052429300189598131143395485786040905602771815965488357811291095105826855959781682123280327209089209097691405536330088206516298659041525593608227368924424416320130592884505562999174127609399875613482544734372693288564440869688084144899116853843404482685525294225414190280631695251517831166103671756268849448795043551254382742550558844493759036054440157998732735109464087530326921985283126062691511241290445107117755578164925005027022440853485691865145544560603521727677441711393934029183786692953927410349502713566801577229774026465067108206856543290667578582366532023708508960186976618048926003988137035960575490260643834289039011851273041839436351149354953558298007262292369710714003958544890645753633639757510590674292856063126686770623130816382140428930911357265238712803149600883920418690782371355911208342563323892092546760849344986880705148071589306727651499919789898893355333847567566291534433439669196071116735783492921891837097928846813483176769479175360010179376557697178111795241311521833502945364754745408125255262707335552244029200679731103033837854475942761140074807214540691757945006399287361203192806841164419477457874343938318901562303222177617336799612766422643894550011073890737415152040854483520934734393961871175219125535693734858631829269059469829647399442342278578927828249599691532414991088231789695255653875725105699192443774095006202901119327413673659754835752934465515744389212396283047304220258539513753165422882668868809913793354828932158894174372273161296882667475293517416249532535402561882729564536377804765062977991722369316483398799980450123434113973179412868783114031600566345891998203531427299843345302527919053835972822759421181768324775204938267639824405550344226431880200306337635397311558817870305919493863305305619706192397487225319363851618477622727070146711608452224546861951712490608080516961202787138507481780912260628410712564534983937001663886173790745939344494502169166039192518961864562225757891375559416683777410673820178213554451479906027146788724465283147859802645051025363942807940490602020289501228351221945578059788786996482062317524224976995056619794360856674204787629793741525707998383728353139557647685551337376975394414258372698757424528139520964428091924318215963321060418373548177236026256046497887278252947419235514420336719509184691690678743346775597054504077276845362522788286093282038500342584410215791427403295160248967504536523543860250628125319847271514952244635093683963745443949535241429145268387866275541847242060345425382359498470268933479126735238328884515905642315206351563571866831908902251895707052084789996332005248402856041538583607655868066678662013072776045578414870421781239646548284678368725935727346814186261530449628267196354126662785576996035479024210372145944660880303362939415797814400741730695526356004017020459378834321698771797014661901908786278411131194711583573353712257777512641230179143198277025748021511211123458447952736607193412902906681981364876608290674273225024368181878400894368617375555817225073668928899070864673082960513860132103066678340608422446850351599504579888802403644878685237959578751829710435790456819468012032689148974174440914789947828295854737440749130840003368589286730451572737846571871822865591351351136602752607595734626086672488942908282760300130893221400402660204554429530554193459025339418873162106254716115048419228358409188988352131404977065257140859644174939273725343658629984272600217225939434402584107452525518024837682153123324649726649873803941189695387705552331564564461503433968283192203679431295072185597586902893819635905063906289612632793251937508329109889293096163386253698256317355950230046638307075964005143131450342593041042717653794455209120542267755578590424500505982539895470313226478149356521093563191060372455393703263906201973077535221309281893942952895509855460799286035437103094431017384528433331367027542215777613657512835498781844348981514576646829335922151559364608573646944019321920996059710724857874356158247037586514352779885606382948363621674183780127854277453924436754750327849918591345986389999753093730053759331139795207775780542800236507090671525304393572566597141765714905091851534207693143548953292161324032841649534257636913005854801743181397422506332142185915258767540205912899082042423017890504884645945286048802635609248131314949563848021779785125900479987469831680349574401711271583528555904775229923332061168916103658854789152472041076745774492723369230329269538422553695748030257167532353515031152266999995980793242527392211574971041730388647534420911879558452920870333581437686891780009390967683090621514723916830853927461074686935820208148624840746629665084358800861909214058241443995439265106589408433359228180635443842269773849660030748711788635386900397218651237295861560743194777625716580037496600987107237180628483637986164148674411107755213227653653262801996978264460423845751578003944257610444342228940027280402789539226386817125440286228860708204336981495991861967520479771480107317960415466828288231489835035712599972774097710011820100202793027535573175800404485358095608225944396138694083631535305723656413805160246634437680378943718305950871411598336135654322942223670659039420613188747191538520018869475379105306197933366846902597946646597552847070145493685773963494108159682467363712907411586759925948133208693355368368474398644064137866519265741858364265295093571196004043360891536095949277297299266803476098277410383949440231366668463220763623173855483966738809924250517077854910232639800280709875912205609399222267107057585569132622674953140489835861270250878358094460422069109676902623511710238190600554817664506180761507433714252757012643944126122130302182656043968639381702862049976703076111299992869534401054215797056343300732549259533585226244212113098930674354651603316915308172674048166207396752973235218560162623101855112889415307585112136018055678902894037587288669697638444852735269768034935279093076555898556287725855811331780450718081228130954922167553817867631060244675008568895899407676486242818479600846546058982005815855939361813965249923941012968838173369762270884802916794105096817931500642345727660447837937006117467862978530714929710996668749087799719888625013635216237720262974494091146978347563078830142430195684146852698608722889369931799763721261247412559369377219327161545716657285390004555247963657733357872333795277012322667164554877729979787539489256734401221061340928557970886114027846377113133085344826479070695775372526950387538733325288504757686689356516610395078442907769893270410262007990526773390279212166311840103407462883177799556324669422193496259179044271891078898648448591166816932028762375522217185384642358827913013175313842754739723942825919096488552547234706461591453906364780678226525933036194987327515324311325439205746395623477312885864931023900545920784750634706926450072688931812146048103596279956231497809382910419002033583383592619578105918399921933703444933699266007669688386586189999812162389385681322542270333510763238495194714331621175314219855091227240844967130813397523357435192805489245894899534215280028549069587958684443364738843719284245071649035048482086237433774972881016370475159283549540236446232598709832921691285643280500277545873218758697972710131997964871800188150819678582153452230354412846661443187329717012598884662623244660218601542999494412177298749756519288281765246525953016913196160309070327242429591419900184870145975188176171334313894252681190282602469114506868794245459873217243991464809472272401290653542952831117483378464734501543387236307927143377741519086044016085368237478164709453264437255060349639188629497826618625941453904289313106130851300346953529168385446999455373451461340809542545782562873609531603249044362346522765731872815627681256436833242155072732555129292727776277086365797939029330215565656067499337770539314856063528935601517429629994419461449760829573555654551112435081768801079453085027524680112648850035754015473001708425276255500524014506638977706042817778436342342195592590031537241066343568743956706159069486553063374764647336723250674176375670981655179083361690570303509586423316026894131829183163866319465690539194780252170951938933498807373611490113296814862700291158340451640549269537414330933278724363239157864609551192712888716018424353027132849291969810296518603296258188924680749093590255142585475630661609119868636201394365101686986978819538318411964356360842172875885469132183979699919872419475213632735599329230583160077299407460268034746314137641221138864067347959380713022749348492476919502710196491274377450075506407105434643394391094055099209734554903549791350070298757286720935124641859790902773955242090745882800354417981091722694104809804214630731161232878503150657683496759978697821064735489856330840174114013585020490280176265661736029623644450180453545555173287480579206092265322974016634349339940800247578968810669326286427042944770077090117858864643122345118037710445935426177054316592852106971674272236702672661908581024861518327463686804136468330336162282428240903092173134795464193434087503650634109813125608256119103738634742785735533114241290915778949416218704639575127184818671053093210423813516854808489686744732146574752579926463273573835216215336699459885849216124008936577562915161551448715985755844172476410400602916913505083956398781335436618534660753993715538304061888352500911538881537249629393948385458325089836201624058526546891102420397051149892071199885966911985673141200897712577171342258502050554018425010264562354658087778613799542968945696845604181025218967084912453208517438574977312472989069987282087118877951237348065433237049288084672391798026413480148207597045284004960729586079522493363668221819763299335243247252729009320525108835393839335891357604345482210775888955809323147111967076546681418293119543115789570806821572619656517398844524047162024182713259692972723726620015668969858415119201264991430463883212897051716410400125045365329349345197544840649195747800056797802324030386983099565455960450299741012407511164894118087091116244444713623722208255140197063495372417377216407997433634650493581798228743657368852051572629847332378310563335815440770127967772272376786160276521239052757587202258148557028831715355416746156600546315195022959106213938055929394934058019181041993073185747075283782385253650708570363721022519829689044478414569618127217070668165885672549218224106452003344153903023816240448328371051031590364602447925802657984140440816406026059220661956718350502940062077719139580667412668896391320450888304897778973680860750815345554172186199451203295542689593677442976910921011412298824329268798652978297247225380446843954158182260730967086742229780931019915594174149281701000697408731646801550169374271159201124790538891683777734038265866144820637853767245575560693252714335770946654537095731222984460779376696584127487723993124501332555539395613472232496815130034893170874195649120102930596434657308259523632545025156843393440844941348400471436283982506609391339856053847873376902665449964462213351918218229049605164470603610819482865849413028757408857838794766441972408144562817608048343549308771522004569154946035317710209628780093920469989189315180948192372451680394680193048723830563406927455988096790771215569495808500121009560860228536990404341508827984017861825292971061998700796128126009820759356766516050668227064781814816780707231778348846920789387461180518859639141759279488636397122642452334946235382114310973298376516698371898071466191966984874273887281639708344171082825049773823370345626313693352913159113502250584278185574782423569537432572145776493436108281288721297995436447785940228886549498624595390451615331358599536317296755303438782237542384615421161465927812831770960576827677303445339653043158742379994936462470339900546923537550485497368142100766724135824725555058337427504744329785739910396614543486771447133547002045154748666936030694144597278466170473998768976212582579913799726992935824408703916759907589454060555175748661674171227806183973294403095085764338113595690836181977791142357557337688438652871908985491435769179947704193041381957073425364999900977949961387571927945945351293750953854762776068629929141167216486903146335957430825529395428883826268781074463568570374190370750109214938917581818521590210990162471652785552079627135748926734294699473005277463083372817589271654426662369110298328042533570653325410801337191904044571591278134843504012535570308217852082658081523365073346623426638634024937310700321651834523612335677664414427129387165146979817509569471699120415550306582109184529117939394250475742836093102846089740884682098409754361565458141241748514999185608612619569097967775169085144968338707942315474305151213913593300066436627085768792392645359388568552988018052689445610941909995680149727125968682121581126484384734654883322411713501278114671885123046903270514387691127701313120663238260784997689561674684960428110730116310287592088762380254512682853963944937175886973019433754071421977413669197857042676874465038932430814388907488125344917987624338977421424013225093099833283406762057888059476539867765239817499823003574618485824131480609127457106545250765943660216147406643251180812254030589643531434762739406736379018639577215444094692254590881065090378636148210247002227354094448229827218882361530174120321992959538344967323273294286378091650893205767865151100047103956462994193977839788677505295084134914750901609401083148642994999282431199028387573870624422306522624540496490194101772611000494940514903064531089568700751047335952560207696307505966302042988115457435204682564460941412279366763239827113122022980110938206969850320643850779143569367437378431935837384185353406687563870954303847199052681261802640867438656616540176283997980047559908902779944034507438831674263522096723724224532696482246343192394361646861538876185958748251196876325663276915479598467690808764876173262599508196884327122524259238451470983358799518641963908151739562879044541777669107710582705583077167870533714576834665158308369305597647667260249199819504390474012327231741815257809106373941108756723598390104309244967361070437386761645894729089285118135284684043174954878216113069747124251271415968126162846220737574931437261283312660934738795846522099918183562250112604097685944419067777089369335563058699250402114681270578876625412841946088419194420146675918387830605467017500799481128266850080892524865524187111712989110020184953066571526313487476978061163130089953058170906363506855699035676321691454318895645049361751965279803946512726109510934041038830839828647830997995840337101074631083928289902845994335543059774076182155850422965914728558114314925789827060534262468756953833422736027273493693278799858252641115206085328116414682784199779567916996332580331087214733089219079690390540198968471918076067622641250109887625604037074569075957068307829487587462364194244536789375550751348727089751974641789569319415480442172593229553307419961388337127293623393005723002487060583611975695877971627800739891911651733098906006920180700374520426033750508307430608662831539193384456113355556819801918820454167502843668626885748539379121538069766155483156776570731127911899792067323544776025129850913160536826692331099912060845375629463904968758404359327653577470314833310774634712870459324152629678988046075000463148223872794059557421229015623573347131363127225408673887189876022228859856118763097931452228304463245836790057618953522000826477957282780643403545202895817034362743956846515788914455957998579404552246355516780191137147645414524426641381760380232720533154786511374515542616512421006759301504144615070699269926039755713666242543406646420032834163454718673861894833134145482529159492789617637499820999219336987498057067189272300504307225972123452206054718188126089792021865862615675071490690495031881615247400184441979874323604063963890207065401891046890409602999752180160948245689316802178642039103675286303215425039295828823247034516021247284869316905624158718770688081735041940000176953431110407637471126565276927278753530859545960189664537849466500579229376572381297722670168686155861191108451027162118706335340195005875689503931544242826810422696580464859903323678694464466043749215104542952092079532708400919049511724850992718208797128489288666569233073924341847542557745714624045926935574146706657072925650251931489723303034091720933508703564993003824593234430498759391033690823066219097601250819055411600549743742592722273361286664058961063714892743809238054528887179575946717783633689583002935258899263028933501178420610592916096385526911995578185821585539878628573090338962047884151739293728108091729763905016017030846730326138743612963536920539697694352940741442746780580182601198275965920422221987850205128752179965375930513636291016623809217930748096773884117927614236284325656614391411270425544600791324339267505578809929569527356917937726245318799517087408949214573622038887384007141891857146560769897383278778640685755374724528966350861465618430515131908968543768040283585834478235513423921587237751782189107350417729812155130144754571908876936163999594940417938539088117333673167576941336443464423859224482157968158528247905726438864438057709283017616557290681809887139744172308613840425171169651669560724789988043752632468956927670621564303339770150986254661180296707887160805289649413535366678801590123473457277677005406734115253296481747598224108837896148346814423658018119801643760815387124524558935485992731460411545157839903916422588889668240022312790537233614403157430672775778360857219331646459553025028463702293534002257293974618998558111546592278621933235160871329865620768525837593845616679019785245934896388270407123922622729900418948164922060356610423880270199636290894804953981804191340747988131509180805376958853421171578502665024837469283724654738961056734325392779903705629450933881853431018769309525954816076358547066791482163654526027357154882904451955526704511002913937608249217833123906415769287401247533262288766320913119276708088903500049408719467648884143026851810838664364418320620763876772932061801049490977260262736951512047771116403397097072904351272417002697894693637805844378184549300226432403670275215084783645477106073318528203009462950935613991317611942984467949629545847494588159747440171475832569767516403436913858382655786395590115833690915892685528292912063698642091376194418622880772828828480780270535860776737860489876729486590049630011298110499123256984143392912303007804014341011922456467047082131861450199326510450345069814141628026443114659749035184707174392176905796514172022488716343414056495560597159210257376887245775014772506618344072819356438791121579335553149873455462169249811318837226133976608751703803805968349378611031214822158333862059716375370105168582514441727812838181544825241801743917903441926448531130712941665701401113288633136607463213824812665536897924017557026994978140133491985711629126754719291649279681680309299561396287583742960124869842762571498071718321723200327324227456384889884713419624054865545343766370680462243701354799051752802913165000827848013665867712056785774148300883933270699078027316050909250891547081153672759709656597550796575073567707446750818224654424757034863456485240440486577155744073490154395050132460968029523160672212076076001665986742663448333482438782539897052279770933003830098599425892922362091808093742299063093448006065577858935922103213971309337790407961898895542468460549649609426414409618051783154609125195901623919622438220161291610215797011065881606911793613827687356064268041264245723538179902124016126042755403592514381437232758336171966321461057332055130268064149345017797684746440238708890627205261583893252874521060948937794379673860432488827947567555389834556516338378517352534730404194944196437358330509827883812879258423714178107399595555748594054690706378979842153720392523083212556617153863620649085848506166536888493446430555584573982663077403073620032831516831509761717946889442640742184309509442987600540016514284944598503170112735515647809898756933397441972590055696697138611447668227441831129212171510276997554738870516140189442683921195303575783725099436950801836526376887613158022701059858720257045726080746291179268097125254371345402544655008447209124979036065329609852366180391618911833571577719497960468911819154974523980722277108731594972332233753797862023757185235947070307052530362595319737579249945011442499523080947745770010623057301913943879720745708031004380348063406525882598303439855434386987544688703882454301330764396636187482343439365694193688917639362901121999952436611770676855040955519383380918734951708637924408672869280452481391717471324738727523057284020097975371562465884766824939567634739845021721393395412164925693873732474905927992363596970753365475417313474277372758492818695877348833802387786921884629440542213605349461102095177226444269599685967361915556344652793624816987562129543366582073661956646320754507308388242730707943996839849270906236790997905739034927485769026037616339706301652032726367763160507447459235644735962382548821125588604166944991712727775759521454211980073040179721833670161887381369936627030962045854112530512157768244341705157976815545276095065371176356496070003974717255804297139688809714000193117117925652984418473076487220746067466508564149141963117349696340109336263971532702730921607449686003244233906567755219362234258334259904030637125859279437074696434313192119286180399887204780243223718197505859397298659096073595993227365212278739017924645473871226959056251337603160779860799756781008707971855165205301387583553489045686073542265011122602888207149542269701538006342394027415862609495157466377392733847006246992548232150569816480374659389105811438189591645159692117304961604737465212617846683403073247379035137518416387129348038827950754953205197590130768769224891446733287091918810926086249595361282288442752934520375823141889801503853600575694030375629745321645530241477199279442833827000191436277691079326985933100157307823312744162010901283461032644693225013183592505655315240756781757145012775170174495117432948258415751642756421061044235797884946361447311826699623611631830971089023239240325979345348384816271782842028550429511089576301363321993717148586684483906062356841719764845351896424710060382743500673142553144092606250455315627648792193161970686889371092271765004456572285962562700168783869595716705815441065442077763207916551828431005895045305979343097886663939401594726382899717862238327557858438914418956081111252898332016184974670321514045601511986478636471408710647434310606201636790705159294459406177021710890018236761860977402945128381170844384429145861094129498208868101625362225939645102616881141756325659813160269712827356110605458494779474156105824217262665904893171801822409852980925409394138555299989789800592547524692835821827909257155887946749094797913957915317949434059993022099499326651857958641817813792462869161499206663867393999075113639787648479553402890727529057573525538277015553234936023230293346465540852409490875746498192261292386059876937423703209759909183868730354983492043509016648898749941674870828620776260670848003001517263062604136962770337008692741804506328411882380088829146422269417681539454438418564333698161782737272286127362507677379116584354093849211733741779344531814176240999465171715134501055983506708967300977330885110017889642439612341563573460330722339493524334617400554430566200351062077188437830231674068244878946413888483781062503861533735035318174084636618243554700387217981122542612296088474116953339895301089282146006453202335674920902169601341617142701602611950216161560774318159334712443119641891348309468198495421726293971083102870766944470358330043140488592367536225136840330390522105404284933457405696519629717017456035814191459199485749627451345915102244367183695969297766803722721801226393933613812454682259136965199865785576721993897535029308398375477937410288823553424800616773891606748602605825538706033513292331892265497318547097506934387447754386289410175508832675482497404325969046228690857261721115322368279948939457207215834177283010651007469932216277318603923531818386254953864457562307992520940923853795882975412217074434669422885087413101783263743175795020931579239475381646570952246509352783463293510433972746198445113200388176093265161963156974191308553548143706961240557683001484140882080391268892476448440007098502568657238655826776635057503515719593282280921311259068792366545322583494036460636711210240838504333589271102689541810697223222900528442708214998526493063060244542771684367569136284052674820830703811342454386819791660471184353405760681233181717245334223668896542219976219904612761339258887663077154730507448351990010728245317279913280948973994364282281798508152506330193291689369940689421682192899212108942965147682226638867791414859300592836957990370576276903560403808652380805406952544762935915958567208467916942810406424601239637698340754699589730015153573877673255395253133713058614637110064499077317178509321509552978068473494492534245904204242697643984324453405045572579075486197831207547703269973638010132764872069661281795925805746131335690680938785667592982366744390537276707082545182725425210936343816327935551234351878437737069376420745476522219199158713530849960827428470866311746848253844225410697621451347559198221482086114640416777616720795768724526715522713054149115238238689415205144723332516637328982566589904826094376270489579550275408162932636192186327083322971356470367239683342780502069177127221534483593668027754148100820571044278556035332146968459910894594218558688275038943453747440054327103731428223715715490559779679900676927553978303878116176477197677901912042311820745635789058480487570342381786620302030127930559121111792608953166407506285591223118223967072993225984829164993302565280984786814338805455665537445700633134812020181926380814091707254344966554753256997231620034559088739064781898139440815174221866922924733676962644187445822898581323080915397271852896071988525724257965871158856060839197233162380972678961906656883015046145800200766324166661659747934419893102938021914597306294570517134428759378282540188866590389131607842894554629332885660092450470525145984895088678725171550096907458754296246024528160299680811957123348915939257655303228562374333562495993604796731923534434910324748868130111361102829315524601635433519366371416620959657107376661278572886477188074227386572706328722992572846203878174343384271865963090083731137192424289430242250661309502603451094325425752800572134110879476024446004934679681452594918349171920944836450283155170010382029333523600486445085910431943709710980133409055870164088856731827225728260907942739121388974253139057477038194456149129723372048683820307575432582513321661791694186032793941323547236734010377782272761367881027338968441636469399934900634631941703067101187449684902318817231183845192043878351487147077181354572263427349371371372703665057856982811050204797838409202781152109810329441699574488018161407261499762885417289881344220230530951633364409667149386422676718974244829300037673310688346464251319231368203726256131976425756227357094539210564575502433997929211071059384051216239256753872134798750884306314024891797614831659927465622864444010649315042036269076338997627058923278856774317891228722046072890794429785803724689531876789299838385068885346821240911154215406308859973561289681118167976690858065463741056704635863316369489672652020834398239457519969862697276819332117601344915414918606209972944180458195533309375628557331363421940779910581320284753699255743861742068902871865279216005046935361029610070718011129301477975299030681048113351976793792743613603854235205248992556186207296746705393045599940681420971386896662548180695583840039649094456868863761929809861393795433187088148802418933561299141746272511942368179693137536082574670323250203464135697898336524106012396218168854480084795899866537927978761428990784015068445441342791380006226168000601364210118653307479677090344420259183519162632147029549824002905638858978646081391610672977870442569372316669530221147365004484606276522644017236311342379090704928103961505785437476648737780352421066272986004022754977335800451997048359721788149537850065079240117826069951010218364905437590364629217202048585842641890481899309404428217902724292714837732345797089197860194542496009577821778572258382264041802044177109504927994323425150441371010298693157913603716337950229217770927985825780405762175306032576245071930048919738471863007403252167839160853039012363450563552592872228980828798309204557581199724603664560933945475124049145437594812784964169996895388267337613505069665462716776237744031176510810053940950761286029111778340131258333439151864932347751441309667296966983854106218887918528506670087037651519869921418040425502083745508809869720173161252208936798254742091375387957651445910382784359878399613008482982209772228316771053791710642509564485264377478851151872959112750019893694387327555397230301186525213218383224082456557532715305045548674720881688512773320251230492743479379724396872453638549034878219261280920545708460345977633970434453958183298062615718496180779987051134694227235261927768190532625450092691307173043578830052968044132287956534336815168891228986942141466974458263258498011175134017367825222802532060695246185147024324841678477308278928884708418130187433130453360849165133168060018778758537074684752271957845372529566585136418975617416523330279936410899801468171107943816834075027715917474743985000304039034833176117781263460688530008485233330119440586544729841021028222499959308328743685070474850388453446983290846233416647119894851938931402987351808848895429887464826554774878009635915539965478622543320394738917239862188772867220763998733100306214687876710461428334763424150081033532522028061413830191121332159854727750218165672265819310459373360417299066080572069979085575286935007857188404328897908753731116701906382864205696951149708898610174578251003499960878579614750131089306753425051631358213840428282668719414221009559235496887752652687353491657136447798841830703087336478233801814455215939706895359060855038326118770225289980891999576501754139039781503810008065665072016438518470188525402379587767065740752426387901944525128743457468257637982536947543577183971176905372981688799286464198924303425966515964036894007035220186552433393228719679109259161512749194475663921564510075395160808688714793045439827686637895383203290884420002835239080862264309125401748080400314047274988725584967582692465217547391402329624612747877243793860476975749809363204274499045876322978827128888134989517592454657372656224729622655176209261495743325523595424242610245546475171747477816785211027883092804591090964080815762277828214791203529081473900411148811388119261427683865944802862046134616286550701132373647697580228031370036295307464733162079463439921184781097217691478542480208814355357925982304187802110216522290857880263903523378016912369932437563728866801895057600449281686122845096565195076421262381822672186629497228790391130655784312304424723229118641936746698294893970165018800640862808114951106214526168139124004569728165453544566073032302202456601542035895079250613331056727261493044114307717939452169054727793646935110246432877712434659532688622179790258232974415352532515149813105065924780425143289768816138901017226735183618801540774941420737729784476533119602923229160965131457866975270153056742703676109901511590149202070488391925435135002941260471636678806489549058976632902570766984654489488824115618919122538032658936117945813248550574453087220328417984481776622494868652576674698549626835873657128658391769806605474256323707518169416598386175276421083900518942772326376859573649320207067214746609851739066560175372709190142017979631389557048652216602314980962007721048532469849346728284285891494408229075139749688182748792110804854755687494729509440608878064568581783972332304556136107972080016675329310809203954783348497233069269122290790967638352977511021808950427202888991679991399738083801733122400792682928052698971672458289135119155922989343793804596299868464241791633755495238996078467602094044055894811190223639725893021745343889703788179655682216444684165798093908468869573499196927636275300238385594993218641248094932012185030897957682826450899511421211480897657882371577956180959400872211389589918761283849837603412173529485413641160515255084926540565817331883383254569611211935624519907035103956049509104147057892394521257947642934040065752536077821987744880651958527743067355083189702408772682470535241384226266087366595723338531637629997645327069907532859456242908879546560529626331263926574838895395203881168762280131397812751192789971462778985601985665753332539280421190493004468551721927911901469192363870275874575808447103244140189998033121575081498741429708971081312570213443624675703674043453100403499704699315189947402548844089321091635275952697385476252423137242930988434453609520896314924894073537454259201708759892063170913957543246208951123759265263874770790085743136746733409866519972312741117035422851463780444553518758213129427422979764436137202534550548736500419725874402638884735164038108946310779992422528400990407401703872692339088731215497260783021866275975385388120745894549255468420032300555897550574162144018023273437139523626200761908963535830749128487566555887175737365413262599137783322953711309886962442046861349193499998515569722961202861127256308134184995401337777575043374249487679140714516965174413249611868130263065394614040462604450953019687716510770900765096432277840967082911395390560831682979324243110504847615816645026249608573554767221094812695421644464028691075873608438336542063316835363985819034278864788392128078484544150907866867198618703530699116571737979998012760875921317449157762156694775364055319365223984738050536541605892069313412395707042869155990297646333455625938023385369059259398892733768012439156304451979140116310050763891174058092575763572048776231199215162365850165591499581481999120912660180963426319379198823125839451237984214644726320148862444476505919414416328509100385643601501558625533458290837011468474364471721747283268065036558590414893018326350840075502711082595866128176575015591211364304126339161048027366384876548314302997427254817314879728277163130199331399923060550106086759303801044894282048793902969056176080835286194448252401646255139551644114512845077748622609788922840102317321559508176429815355634381620158597844103724079437512682213987906487703403375938270088580519101701044094667180812977152936839107556632862374575209249271327281759660075297550389984975936069527245400509766197539400745555341061863944319987780599789962343287238278875752094222570027107543078887130504923954774005339714263529311703305846983423738951071285835073695113799734971205864903619515045426762764193853883379479077527564484803446229823238519442713446109634535143120694494710724492087510266777308714717279826514829518964794128186755982131471755692258920235616274004095486707873126732871403385615453088678419781544149630627773665652040066578715135587504480018515148939125671765272132536647149249040086549254036982854883759547415783055142399564856886131492955715449081214189912109786312133675931866818884438605869904704589363694829081307034379299505736783842464133421126423660908922474267970173010930553097779462806067347566910788020064173077776935551340780319849867058732895867063772641835014559216134309120640264393541468397868739642726686417328826560683114594599277406735566713507250070366229661105249223117980668490079807827193197686731830888957443295088081144187945861353958247929090272414135921632676501698624467617405090256909433066804566849270742290001130600583974162707649441952842026941928999738019288767685996763314111483788567990556578730490685659017294961246730925139199096251055405242319527814745257226064387339357203457186891678063991770627176795490820315925148968610271152128825664012239837721568763640483737331016687777753466150671211366465804845913711416133456211939064197705696471667953383715831403029341698234712756041113511168917545348703699588056205779643890829135154159731920655087774131730899202462951630274230358017255780717879239787998919838337536556412585052463759666187461218109073553990146002027720494554243097921203116383269630984309004567840407108561407760226175725665942010330455175515856098761572978220588803911811051464709159791829094566919284923652727514469678196393572577598767346122971032715183520469010758320857082582365664130186782235325841869677331206161660932908896268532506760167119921342071732678609098115427681383746486933008003905732137538799249277856906555516705924353654892368675870232773879314033745888497059800130728015143234763597596441992331434029623782595148650880370569430349079679275345457965599531447010660788983500254564259119418348865810835162300627338967792530948290833528861745146454773632179826930485586941517687654813754602750221098577239021887116190603413322376848812307572551964609921877989219412930782552981779211379934808813061051748447396872291181960678119824762774767676187476892015765680251390902090661695403023966635070841080066625913117372985630920439791652129007924611488271452455974560455504391347023868082506317661682078739422933092077991566547321140302459043609677279100450232584172093725876282700070593561059639098273653269800251811421693257932378449219225538559638285813014672721759025349778889107590490035329021606435585261872785104708849121497626385493423884858601328433596392504012297114011011144018905203014475350922843638914016526335090653189724400837733953984343440610394846025655820618051378246460179365701862441455929932035690727987183485939590105687111608294021927515478826301191079769164644071402567067873613185830309662028100265560662581435929247596121981574099205149618512857098829686949840292392997781966210820265255427683064756113149702701590396318508514900917012288073108290128234149113847008989884626761073860058694602590264229507465152231033315474864947588494975194109016694944691975038081282754214058933106199610352298846681710665159993579149093543666683710166366655705254150477166560966761215023495585921084910027307818168039077765623653113645815107801676826311326478527800892103055762373497098846234889312718140461666192676783797782950180665330878445407054167741054647662644201806615211118366255384063001613710521457939542567997340269145727246273441175251830524421317400933534340501855850285981333772569402082622434783595804704293646058282263212280298683641290384526325790827296927025804603770856536477335854951466915228335513078159035728722731417845829877333526648954726456904468735857574189152752996034971699638042019005420220071251898681822911078714222019660013345516548576133151235636747969041759170546144943736284873630431084442009866886450031750752689191282927940053788874371600345938470758054477408212498381249487110343797427947681013978498167973530854266570330956486241416099265085125479536396918557716853072259155777808538341974708838481878463626408194698781350526205666843441392936133816354876728558824915367288017519699234290439138116549959517598784123248283003465611664714672210436232079301559890767381790063956530130126231324139395054038177803491600769589910243871859878073121186044167852457744934210530323583885150108406232689673495451781561045186882362584622374766709198221168555734200403775032537486142802594206059988041391114299964990422736188463447165505513880692523383418179879304512024721524124120670330514126114756589769512529836708940701392755363327775363398764927193576742452168820291582232465555791170140679903087612189973919556256650604403948094874735200533984775377879833103073035094509614570678935052790581981509889982885209182631711613953856485357346403992639458273011712794531805607395726824444229706982112249978366007976108733754443037387363708593757027366894694943668254057313401671251213145719635627031480937876924389990603812077030043926956857106169150287089756604825877339771393022496553123542175627554435141053845982656089948177311642822415870171103182112680158240236345916757450394542074646832628905132343795949982875479256069745195078013104701704878513532810278095798814489192190501779760813011934365868965533457974562991854520377332746071278163435221496324783834212128044093968781733081857957887388566185234008832337571374438555867081677201583521645207587660998898557293490982739129026557283967548466894354423841527348232005431766177721437057499987395615240191005973639369270931466271853043175044604244616086411577712481119849017770070135520362742877472107021573116486779356211298016856296363415910586077163262130104052881398314026535484018548997929670780055760963926309896439981612738955352234225261434334544525757203400551757662047963233348010075048585471747717737410754954259053387235582238923304219577977291683492532165542052848238613307999857282509902078767008886934817255179297793145901979006399769197621035214722244647596145086593463292336838741039082065459717418951878937075895614114655693997628246943252273159422949788740415116988969863157456304305426549163435989723591460822942605074489650671588934117543599600656786244003989760766550578991445771926564665936877158254252617764544648245633303004151749467887613417914565947910674152336795608392832605326077719687417542873519698858953704494554487708960003977065338167445138424541685201249957481396735677591621120155686316635319977923138859478218470603579084096783441733208484858687266028374306366514712119495147712777579093857322103716728050129478841983175900533767425022569882999399290575269078210740656395866480263892477591225783861282373334915771353655125413594089590592990580416090256908821403721917187842586550350111897987052026812966450897152319284697238106772344768319823350555281248755879248841052138102441546803062093678845897059636998039090913995670996932457325441745953561108548174787958799437861606758932184088271024863619189984114185046773033711217652993770719521472540293749680282435076720462216399930209743942508159550873949423823583694563250954488541648720560969872799337300886554304986525660782433242627768136538586833058441789127488773073330801434829163183211122695666584462929155693016601422667393672580247742630307302765875224248009302734377174756719932551954230275688955014793289652657522264854005578947581527963726948096691750008506354584070439271595483427187314329997419881929244163859221322171953391106125927791470591967398571982027519246777696312113406717038652485689810818862500321140099049001595701704529405714752213958852785260068844161970915643730849857988903585608399694016225575533769224849550897061325237091757426260995701120460668708988497606569188416186519649589790540533365606296015174817316465569741765343621035416508603566402522396917805851538520378584054754090334663697385232950229506657059322650780932896773604349397488645608182980425502949021645833650137688600502326696983363714751098407190716086449623522090599127638651436875998926522546569175694098647319331640015656733618547080553098544122149552246291283031372416425212520792477462081721193941085402585570262478742587148711176657398529999925436782661551479183205009839386014862833517683553040627958239963927940016887050797599544644631755867677779123546763514313974543812823815016207341091164590383012438484390745066025314440685231215692530802527208988195808036891945861104666994077822667728841639550156991364467698357567766824374561027189911503604351622055908923177209131567045821359613659293534013217007575723205129592199860286722750263042534867941937316066115219492099802281269706448353627850262344485536287648588795316644893400636792488022665714051713938093920911630628167648101975984939743877300366216448725179250646653186826317234535367904142993784348638449284565952089688986508096437300813421331390665872229338828089025561247578680865637161827629609517050435836196784369893240990606829180021788299996162842406542448844807061928716741138668798085550377792966835112106139514434428415482276176020535803684388109202762422516111360664376902148230358502574067703781447483846903431551618924319497384246630460715091074816631303640548993806281720832004816249995530162571276148890685774239075745524221217403892246357730320580600643999835034725598607832502625180287892667149107637125208163196127637184281182499186373141104691131899294936931197884833183947702947260751942060752026182849020101117061765655734237548298986809790367777637131060227632967398732701043248911129602545672678908463589694803841344007441043823952102657970187641140808555967382619943811968924676072241138345829190096996441142936760862193789190670130566551974359401649274277862295137407251955066768658162320096461704699339986807437983315570793388468239858442875694079628567527232812544639278534943458247201695612240507107880561431806283927552302543630292645637566959358528503677562979449947078677714797075852644562758057114437833175555875638034086820003437755611063987993114200933970864638739188430091309483414096927574485713992788118431005980005507423929758979838475115255263347142392377347783117654428505749079124818054117358534975310909514585279956730893483952572326714523879009509363472339724302173111029505857681979284643815935779956300989222361467106970222694123680668790068168791750304621628991271498250032802961816674947225712658203164837539153605256204239182998269457068816041786357578455404796791550430264395600796950748239073101634239226066707772871416880823365904796556183493204997192000907793952724544880003925852702583955739207737413298858264046906649460914314399103977040844127002808085646058768982048756472704193014357709082497541606983731975595349920524583128387791465502859689717720639845506821628772469893757402996116494968086041549330104344359806024865693339025199940040682347053539549058439005585406455388112947171218839502811520336305155322962351615897112642980666216345686601636239282621408849806668608089523790223971287085544667547216613587851106585511413721085261332267139611592131504631439281784001038171211172695961308630046154221281376420230596557598512944564213123885821515872906755301480146764632256774247111896704042885956171221094125888324758751942258262127725336460877140697667259242937000347909279553776320484496522669410629251431431780311493005336937335069035462017894810035392542426752848662271499470759677354479840663701662591786112742124162462495897377014089241678005312726728403914085061561316447187532906598465172953485351826987393026721285317552685141574924601690742198903413267747408818544221684687264154741063789302425705888786008954247080156518118062233390907531001561322925910636240799817004865041463683560059126942814563985248391530868438578243105978873023560330676902338172911863575391693679410912125870114520429458994267859644070052004055212828812192618652093976821040638231259781958010344410733181720289392954688640142626798180939793988392358803755467138866277594521333459937072286582044359110892421405129714258895030272571875198775806703882425228433906603370061525633061376318100496250953966322449584276200533309608532905444445153114391005930895521207804035366173548026022872409200807778008530468884467192175526719425362998173271154349517438857863059464882075724956387570525937723894620959115939841006064539131625598193541904826364427809566795468038278632978558080070872394969949886769795470922953241477699365420119363515449960480636475397831448921102286320140908852186139489281480321798811071082563182432635650883360166803265419843297586526573849889525093192605687260879794505315433494783699401381858366547815850196726884212629194779153447514291399980768721851685253319821078496556820104910753787288746031013260824150490698283084673884215235210174871951310305633808596507698921967730932311289136281032830109522393695867471737592451832551573512585609535086192034994175176394044198652197502416106819567272403511858192601973554788730785649745240305906706647501380457690784076932914586272018429856619731459511861525498946841409380413315816118819019936131741504813448913389240149561166689112816526211395933570522673585289153362978054039832240482019315860625651997275789745683644576525988422269108478019539758485670918594026473405961205428414871394399012431252103407972174253284061725256771871293921689103200698748363368123838201679788500952189307360689524529056833533538649562834219965676718087872778489098965431316218153609694132453203916727425371842767439474440729213311249741880694473971341005091251659384493567274418158548433029853757886015955658378993963627921381270988980859239548543396815562459022454591122063309706032818534052101728446997280520441734415064728778215904933136472116135099751589025315471554795425212010071220315691114582651554453048565481564850917887661222875783597489331238887924186016784103023139439235710905166870746272224742752431890616074618542473822315234461372393130793413891113832566079760941058668643405458029705923350090656295773892535679809212184572108816218851904105896257252406591825710584795366451301117992116887532420795719840064054080285589169350035143711332455522666890566892126322318203743004982837615189761575623897171596937459804854529744464464396715101868623688082395701108599158177743689672260337255306046534785884129863389633907224757199038412421470503479282827038405740772879808233531807636753527390642973494807380981287535273941982256016832304526998560980526823415993118395103583528694847565687067152852943863071610023223784249629931042039156593281414162779757648438390207689438619107891157123724586599081810771986179750675580575998255627474468154933019443571184157282373569331501895570198886969413490934211043735465755130919620810791097006589331917452574924035983941045357389572546553360492502558594780215585781082504079546193127372316569718682604959210668271472431235801321984562380134969137521678826517694056092483078892287354214000167201548138600974600068839895295826225648315753970633218958580491610316665310447361203582426436055196265088620402364137954805827159858462422707513998207087285000127359244643600618149835080814669410132606879566608727177693320730482075247062581262321950605260189872909989409156346034079704880812343402907984202661487101253757752790581024940865687116457098125894262436872865341546452019953064218908792553421530077709885564064026267001313985933436920113582546487880914131801320873464867928874462132971301460075588905197010297140946063376238997972436004743844091621750765948594632085556219877337730843040681381159625285168842028937241165244630532979941866340262619951863664806999677299545742720869258440551233824877833065634653213365956257391093758063589823591215304974721672418602642490732444109046586720322488114074088195469549143083070084985896673778821185914942209178451731546071087465944300130828907056516372407441463717364630431144035155156388417288250264088788300854953457265233932639829066064436014032395040860625449564754364568298888269728560956542755421754033814533840769752819035501810237763888181803187851989460613219659450922017463674356541045848724038327136707934752833856785279746697238509651797533079494925917840682812400406644420765700352175646896934877631654442393304953265590479735984881095272175971293207829698635075799257639807250787376934874318484551946708065736553266825162287276963600799164456737810951839579314185726686692043297363175034162255508549742414163323657775952338002138189545547632231680460231815329373343137516525757428429256991147732262320548824362208355382599466530983799219617544831865146318155693744251642177848046466996414249280615710424201626175900813147135063215967157974658895633505960879600902332779652883374449249665111002112883410622803945441453607639537567535488234386493288382170843454812103398251014402981311385577270497053952836193771039695921619211464819780496291651666868341993216484009305327121614151001933767329460957409115266598157234375527604716425365388435072483162137310339450741677618689592271615438523336224143229900109442051735967691103385215083606617717922563838901030219479018037924608981349541755557932294221655942781414125154949679827965647051692647497470839820487730295426477672265874407018279281121533890726403735219047466795679501307575965174225195215138129195970588123607982596168937863440306511370954748182269270086566704552129489910949892907582315462870143531835725666545829439021326054529112586840682392233233059690223333188473835602547683711216150493939716678001966188050146939642908073178905582407104877839753232623542580516391277404059134096732604919535694258656456071163268740750353350077127794279774353553098475979835898235383090356854959340321726906988849025498958195051119484551680608338820638654576414896521304249590419569794895999830868295000628706225476028415294755684463659104225462939106563504502804245171659981637533912032549003050815582622048864636105818166725765855869075326473226574233950791932719100214548230972623101479031279546614426313433371004461048198248014914737780889584064927193802757953757112629890256601499744630869953748681767317588101230674345812989120601465291043319113323304635098928459011403244017541823167007887774854160103630873953474319472263776305746618534576467624760440077123220591104148568686726582276823506301118238696250191956588554905514723113995831222581734918357918127606145955511241716546383010232463716995869942472233684819982472471510989067920152176079564721461941525987500752471101876526527507607557340231140191550967459303949572961866857805274160018707367834539151984303701311082633193262291089905643153981697203753273740818499686646050438952546827175354476416348833301025721395175186578436662224762359339926327302613928725765775821269022453204398049803843270200288422311165052601816096392943202911056038165577943185343786928153917423814469463823470292345964663002418281637747264455352112018485447136261572166999295826100175407322272683590295056928656280176849757373767240430403863920721692181081297183944369000165608025974924151487208376737597302839730677124076096151188130302582421620246598043982397980439846279572983898834910776060488677970569010946487509278131734125564449951585739906555715598122016039914821162024271383188800682306904628875446640508372955577737705853536715866893474490031338385783450315268693730380654629699238082360481534295007656801687500656956553907361889172343452180939303535433034082342025223788217630734048640017151696707423882879490804097197313297522853538537549040721655948358073641232091060816386770755913343845868317149898487202325345520687977547539253015157589948822845202335327534619919893461291004825112473709452277588479068682704658795810916437748359152822056242492588245677646979653083536341337335447699729815110357387082097956693852216075764955591611427307899247861345526614508190589824315749401999190768359891507594795743439532617372978757573175764244272890550107425492534098659024173095764370314858314975169679381373821647168567375234602194204933411733107145628872017759114175646416520497260787573731733851353849939458441058577882460222913808986012410597088405449384899915598609299903984832796643129674268358051000560506801337197152623766391829791018279561883222702739259682806362278552540405062861424916889396828236264808390254779722202426413285934290518637773159915456596402932848989852219027945277331271132457933557371951384486476808781916385340139357868305921247518444414497495029790684384033931704333853242772869853476969599589839383261789082956026192164117470712330778172388433423624002885685132946406513273973700120017635475648317054415708123023703797586673365094489803343026484005371168065645983102629973597657480007250967512764958514680492674928109224829688117898411166606917567712921940090995651783258413221656061984337535444682491338012568431546645243202977351279990670384781632673407972934560875207083542344467030127764046581262995892085196794614639062295415862113653284958022583169289465032263965618072635769149878698166610554202193992188334203910015149765930039926051919842118496287388653118255068584612889466251237873017993919154185663043520176365354560551143450256024041657801835214656805471735289161460679293815858470349279947182652512670379265807067909853069721423643455738771171907123832157122525579739307332807001806957323375384627664984100612991486836903777134029307798637837884400566616884298670406248206435579339838123694398958655779115915575698539654938971345313102942816017414405243690626791378631467051202239537798738504720073821135160440368993413349361334036817664733479015193201210028948397266106424643230403433726500467139754874802814012625093148112662192397049198438865410879044643239079916195040287194779290723836223707383576810803391739134819485262772700673021136853578522402387742038825628879669030126746832404965130461019128560074794273873324504491282225176129745799845601368453285562918981245051700949480507549446402467839271736299851463146165703796599987110432304811624684253244688782948886266034833675810654841183010367002168405296170582867908417993670878244468186696850651280317439149687861209772908435928572341147652080538547068499442221243615828866246141601466739215154562367023510192674900281068511955816558826771067705325132497514599191146757067667290408569664718157714223370445834738032952091100437205554060794816261533340083215803183781414119081768854000819973403635099186889621803387854264635025395601954747925361924984995209550490003622052971371976585742236118158046448458287902320072251065652144445194295024186376201282212778818845860692675063818242003953568172472339308156187279272850860272024451217549807091436096643856356502959054761314446347215269560988386434645540907189031512827359554825596976746760374805715405483142044575783760359255704829958892740354191803983133306495070922683711122688644255930447556346791385837285199501032632421777598860253966513441786490279105691769749774326481018050372576507287019122644447329401052241750097291156970574303735815517533295589886281787270512058576512902131251992139708921205092645017119389906057899036854649947767449230077012019383574723382960112005955065352913494025585160731538133706802295906690984363302967410234223000693016911554525994204382992236340187527967961180691806730025276034225779006485241206930810568711402365464148417414776494385300506040017159700902383521407501592952491012791422602492742814020105583072647344496655168540628245060003425038618037688568699021210280107163554398766014481736017472144790197658464975368550718221769173197299442392139635114042713959714548615554325570877562562811862681537491930711648186695632142464427599836334237327406462027759941630825935422927262017287476644018927384602911442442654006104690101447319377279174673352488795389428072335560518364424488308770076946459270109693267214994090239977794324299895123654853514866688909453941940206397729455396877019964283385029267837885213886500608477712457936222172875850774205205939018006512434089283521801915177345677497074186050765663254930919631374482302751956710844746403228936339997581157424535465822393655206616831861801125642098499532172300102018038920263448945991902803619205987689103858030494971735233366700196581900782899828227296494605575219818271902945136859833289543018618442054435893618955418144968757838665005016239269847501860582798259494045053741036094791521028235174565052885915797229601522432390773012316733907223540136437790478670020593473232527090708380409450392920355757038922712281694532119428051339836633147078353423122816207242254373042197478868044104991105433580006764609882096759229185148762656877025743479029159396181522794977684317659647686037916353487753719711676620957682433314857825098400891575875705983111282997933872446764458186250479358719569386517005658297061374978547641041221190547026490822373667103879956401548890663791120728706035337897147130836180872970396090796540521422056544086814850236587946575545954942023502622592868399360549748883007935857560018377554189574435052283391651154072517202870847836896550850011037130599135009675822577824347574511550196027066884408143272258129019181208559356900470765910951722853126071040856509159705069302607965174617763866560579119230517479733067080779124818249676242289758529857692700870210166355505700210710548495393281929753539096083828109853245320088899598811117080465208916325276489189614723633879110433032343945118824693471616021337834311272433075457828552594409231710947325418237052849483578642098217566543157507025840141638765551795433157307471172452148635738583742194669537960014543683558958296212389701603620397608729313406830081510219307349588905675157565185410244758427449926170531399677018794117113606445594798141336877448936233162591156764920249539275660715611670711660511985254871736862796477288887861594870992337237019041444596113637818411938476944053196236765173715879506931499993074564508221436586574935630120766537300703957103392872826542643961210698762501709737612494838657241686265608103899803280484037591929590066506990572696653870347560912373922073878090802023353975281329055621027382855238884046153567852813429890421675986896810904100517074066043545828268512255722940396727070204828121347275393770830709502973380370799908663189259780871302810718216061524861135987304708991101405178747280554069612803471371331299299355456229146021594293908496244281827185721821866146652785602127864496189987739062158900768971147616363919584597916479295143171590405758437102739789907700374742669176313741044100669869934116856436951533608991825783746179040800084017951994373379079811301292356680924589406711216161388334882675384859375939863062183403493612531047996323059179443527616121020514955100790465150719722576818470959803347222931546359803576568541648977565041986007790921397136832993450995124235671114705394990158565193796240776049141316586311279243090288445519018192000709211034387324306078990191414546416381156652171861264880488939823161704806067465106539742904869816030062865257571962138309616688799876987222985205918812709724132721775348941639274549621206202596946600717467110464209090577573257010338124947429665288335486858751744843946705358388462547799799218918196086448778858829177111684525291489810156714268002096262890246911148538088313387429737880957220842040288656447112506118521972581505581954402750352200357881711594139915350466323468365039331709832094209227252624307806786436730420539843634555199435565844846507359891263280274220839960518763022239389640487415815272343665953920644023345009125546721346650586989983989938653708023332710327870682222104882448146122215635329074263398713550380785353490530130349957828433639657827939442912469439070962429706839826099389584817487269950216429027937472326914886087480316069556437507669550611949708718320057393459689409815791878455393543737434847495150733360873183144467578787965309811280175073145903383998530894135327157962878091403860255499210553497567582312926360734014023825708050056001441855467345430768833429549426711799297352126618797344136857927368348562348376831839378521331715660516138951593375226921248619877916070723994263675979869455426395930060827156491303933937082653876873229638022508743302454738639269066737705717816805752008211036936894682453437779581691311527517350074767057292783418354957862063042644365676398366322422060975238885677997120301814344346899152974777482925903590695194816199165293807406161471756813511919101923729861607444279011311213388028796043058174506788000313378374715154824490946082142267305871114825715838782693602754666752837517195560351280923653711888811654709711776102164172475465367322155174225991965242856513796031858601984526794153795636954590761764083574365896020023119312759534853011075845528812281170031331428846762510227592381487570039623021486729600632653677716547939704870432625305476067296990052496387619664008016743627890903800227862490055813875345982409171364075691061638521309208252312049342271035097345083908629501384803335514858715977080442712063572559095356181750284084430844293635479768199971316166603570938552195319952538516255762052462212746922203999804023586108987121259946045732168856678549277006740768486115022554294484805666073654660676888139490746554664603977492420256771209054608053561872099503147916633624504825945433256551465099155401990382096428126364713760913009255672843043579004194607005243951959784199983570326843721025769233037157562289566303003627487328651919817003277800680550158476524475992798235524426315425089902416276642146615296673445447272092026890340896740830151150825769474089086136178447051059749158468168649217057337185386121984391801110782277447999628015594410267015738409944997092685038924440011071877067042560452787880142861560955754998104977949149111373923468800780636048147550539580998716185798511819415219851935699161614708132020753810705919138159047298515160536401982513572082978637748220851964016047076101757014531533471603102148076997094123955749944628423071460862986270616942007238160382115301033685135462882814947944400288369148297461044862704082943316069201528592314554599913390654160793280358591850646764883902391781158886734115798210316223398491285142560743128089989087387264319341450089375120844687950137737201444234076275118173839349420109575152136814582228647668827499832021974786370885494313200899346897051584741403306370698860081359831550737971052934121282360725535585813034399181669192873903611713362835453060226602530275972811333779616527017680593140466875621078164970598044156192844741159315362491308132937286866423421760921785173679074673487388814631124738629525299339129256930415844060455564268993356091260447782930329136290021120107381223735909328434093432141898357750455490577732727361419518426372144012583872148605046426214173693002165284443213582858096286348688776666669666842017310314513692034518593287431334266974483599921529847394725818629043466188479517940708335959139116079361697023452523613394103820305335989974613694774598109622462279048614653154951277955466118868070805041598028663420593040937041167354277716084903470423600517347036818788948712693396887689027191921168073681689228253213906230682442109670849642622805589352257806833761633292407306789270955387650149991926447915982898971099966822279544258996092489615035066173990093406745002834274788752332733577804393636539483281473930778147977103956105546864835141550038754279451645491612999068638076045741318516454587099974462453177470942990311259213919558161054495409510214344443872212576726039014025460700966815778875264592499922025877696146540376905681309024223359542453614065164423935088278477686750112618588384538264997039696655941511927315101733219138170452161591922072317811430588805321516083426720504700201436090782060461401914736719762326585815535507506503348175680761481460344120290099658133940931839456153851153179060972617971475645266624709777841950157249118178233348310409638739296872963596652712181036626001049190002283128659483142175676927359458687775347298761902593290434049337583002918389859717455558453676939152179299566850795314952935828608518111124868574026071279606646681785594281185449949290053753704328630305426252820795800380211833552991251519756450110191565243362482495723132656208643502632618979110634232221554674191612283948540002779890672951314952338302221554368655082718068838120225227014520361822744835626899798082915567660067140221262081967883137016504168220422580015723439056678172556362124332091495418223469284664866763054520140604377484073117146401503905615374120812636478585872296371218723589461328921142163290313993578125151663231910729679722146338235303272159701033112611814631391296516178981353117480821988831495260634231796058366768144236258870607240612252208130672710412466356338136838868870461080302971229463824201379829157717309220243744297948096788000455017902401726829459153730009257680804657040777139174532659130142457421606091012881091576694691017331076943228975397489474899634398738159029777648361590846364082868862061611529272395772110899383830744865972502922135308162390723797946747091715172826019942279601155883758975180970138309710137138511846054504224931446617773796395206644277977566754862294932852949556912562627836238238196398741667980208992886413880771451054203361864181525824480293443323971835988671715362549081192184246148329666085541504915669556509488381757924086417890544565672582720130972262495275960565751570146621798950415614344324686480205279179185675897292058708943046632051490203442389471916338997567756146444997452749237943927465821676011089852356212789054850232485164454170217998205891659596217259754447394034009398578518148094719125988982655154610356179467460848101786210179997814457289393916689906773201626665940789713143893085647661766578484536572119669632663249582695933860140496965874549322435786469542853035011611010575290467122795807359722308139469339576323502646664652023081484455676361010841699284331406742456811315312617907155287631290597718055985316449287202393626406364820887940279900744836556822542445845502890971557089912078851177501799902479125238605724713264994755359816130322973973065054688805256862119559790645870815582916033380666177116276911068228471388892210868666171126511834623103614046576177353991775478764037486702014251581564688237145047945738013822721847261741124034169715411098762783953568403932681273938814788314455169240193950962380402023783825471037024872563486972797068934996990421988917904224304612474995035014502937065968681234227685379044795927088030349404359281485009056985621766032956855436768604383735975899954985873464797691818551122624128916417873481796169937525817921495227635250683391831606474655251199071194215959868558965687587724317658024738388567475870596686333597466369942822364860555839866490021435186443039239204696436107206634627279030301783921537236285056101712346102228640287688764611888692188055373548113078000034673149909678675504499929928701562067684304597451530933443523524387373889444146466828276357918468751231035866296855508549180486570134787617544685973610933586169352836777167705799549546543457480352964767495024538436125565594116361041723989964159239128857431535991326635975304179798350340682509454377660047331920085022718068557130374205121272853309567864314248421512475248765361560019831361399473161294707040256923831472119008991322717915927641066606572851249180568391423805968233838706461020236869095579056359315551975945799684392358749342492769336944045892980567347335032673417284216123547549273363813132110293055372597700285481509846439350545780329996182787136931113284687897564877892052717207196323486934980916199503789734428467959690902151154063711853069285060707081455136463645151034439361792928966658337494611920981174853419864136772739815369909654859278270900466142102488625857744457787906029662833601574923339459603901117610730243370703697101367074251980357962233299332185670019539488847740435756041698201067844718385771998069212168558820585968414985864050979999427531514177062193062221780876087398742355027053345640288098348804638952340364733731993058289621026645935707698859469442363579435244142089284133923357211362313531011429179077370420167593498990064989794712376344037797468899123098830877807030096279337405320338055018764436248514833627699314993320160089008175413407717814678703500318754205577856304526155694900662611867823546226693270963081526766751735482705244977780649349599340380255712546810957881193083664803819637818388707891583986538758397806053532127755074212526567887992860943868260494403159126229201036140826643549263128991986027582253520116914682925367162635212667928258583557370972817454255799787299904616213106268675561420598461428913253715831244908878707300699364221745770089560786835251076481648673669188621907235076592859741341506032608824007891030315131156032412333929025240486451130423789999500825829392223639654225434095547490873521279340751930745553221391771478285478677597271441498430260054018544381630937939370142475880116203797506251283006585727035191462324670196636646907246949509380026048584957717836954359804623792835112987624296949285969161023098911581675409560741667329773843896497699569446085362643280192170089423939427296541855171619036552984375618238123691051798318449850737492498451969147469574419433512776626404058653055202856172131810977513306174025493618298086780215049990571422259789031362785183877713986812515755206190635240447456486397580141789787382245589405316893665519639666173766094217688111241580197061049808883265868250174757904956277118853397193766236341109701007521358933404301709907072484802445646531803374607011724048091306547215413561963480500237395489870951878524033838954689198354497563545747058717471033758638399047008815329891477581032637242458301259713926466609499535635881721566362492312983874889633806655704277295323688310493099780300310883068278202290880697474320252821467326355109261828513375693810468048150217027103388550241400345174324559973641310285096945558085338972133282411391893118678765224102801111081031464183592644045512378186996673626879415278038009795754728236137303978502921808754221207892723956300181792825597503706680577543595568127575447485649040970145353127909295855007581315589292672164513890909870623806438879343749224290226149554570324085701327522547314902003715391940757228651051716541780466967707502240419972773786273703137637222171286177837370840378325215885928254311049996624199537887391687302726392112387598967845496416560356946359401314123059314313736287213195853056423470672821690925759979737511479235688654446051841236333644850820316684605060643376949001159073521282745244526665794090445018584606217795691617345251766152032667098600553999358273296464998927212480687592049336818381638329239543850430615316356802109244293044740710047023775541674579138697285534640979707346379102943801026652473708794805939566211461302837414613829178122555103997775436190637010150799483202923367717925255562400518023078825947779773587134926317016821886306470994984226983740165430881977217152199712309934457685524552578193571633028673974346959603692893005419686490796114206139383451711459639245652889667969058606580941688678314063219648000156961430384705472954740176189897098675561028040318541245491359453841139083500786683569768574830521891823410882283066002444368005055741725172962311266941527124589944290376064264390212759735121347457933545435433303067810935880253165511469277272402766632481613334990581778294280735109989709121517475864498375979580509346358265028998443984452150411085703117985442996815581730154946538914436151118099184643455276239473874694280849695813892169929308107540200254135808887831555163633076421353705035477035048079998433425467242333874627416973309225349896658116100752410913418437876575823228822692864093284825235239061991540442365755698285525760518540389591051688202706395157803776105784046834061897317344825601001060646171289503340650626539662871685695507573542964675650120114004834424635391257177561696966774196444931303879167102854045527357136508191253350615647647972710061718644517916804958717138796554482893574625066393025706530667373745870858844905452844931775725706321445814416141124225538709024078399191788803343541623814513337714843860763183887003462289802376782585855613943775567866967529250431291917209547163244485827226157982015877223153952630451906183318459674696638563730076605874807808015088357514864298290498279763518107495165301233386714401366076658425982678763102454719003824177265584408106666479167719354995130862066542627478673650404763329862521063186651395053986531416929952819674767552163065579050479145892351103102968690818719517946097354621530418465029783431575471748336325189461467835006959381542196804312893379431373990798640755385135183703356132285082411787308612691091801772547996452541190021103626524170782671812957989376069383122399273261310368337444623302055063078931196821775062237569902666785026815585130104574663149648600667712395981859379031600212370865809854795536712613699055664118443049798142294955465147995842199358477117927826596686327812385470909901193010147098856550088559274867677963594940274517355494494615592743276056367024221979246142722040419208902463935429687784385336626977179443605528233567412551554778975705189891106948464028788736584817583048598550647370020078567781481396925854274461363542397540606206999858685163188802308898825524575902069835236929844038496928141929389243731239257772234044725162539464414803010301306232361217298657518490613365208836988319943488530503045723899599139404618214099923785988274213949726261932656761685623900854729825895185182587892346567442103554768172510304685540845209959619549362720682594428356556253310483894830889507768207145670807397868119353871619377053516467936864922430835981756858214842102182326992570666241928008710384990854374096906071870268724458726618195182777065406652798757732705041870365414035801587291740346080208338913107588164164983562738604270678533225893405284261677893696897037701892243932733210219811818689379869934605150404724456573215079958771058764636369513052585099087643322028447175283531231571722808572389670289281753543621792312229206927495921358541249417605609592839511445342794904792478431056311897951031551988497531156202121964008846224331942291010893536698923803572447260873455834136530595416294056510110634400895176648598693404486919464726643130481158555478862919428219625153563784112779084731188736673349648754199673478587299136345450443530216857306772613680709221945234214522939588390646082589514449593710336303540804550857893045495085391870016832036026396865160460934277837435893305266169671374933974858575731895057019501353647050674322540259547108176485851151657679784393459899262672972471243106400880849532712831850949742241153172568386358509005632674916322494490486809100132083742538582906567280863080345310297492452095496959973502407098785895962248224606000902591124737697679871762106831339677268181601271435146505380267525820909113299368383505123753875735589155210491784639498118208957902168035600208908230052785683790174015688749701309018815280538414244629854336040694896195747092773557641182735759413193203222020544755725739735621532568390843131026583144182051369613642591937774027032508533833856673470710335887754199712838811629826766696737948904882924322362871386783787961601944748188666714036154568350349432301938530003836507278918691531565767577281259209729564880340875466378115444929333399690821803416048232425355600321694734301572836748224247490538071154836292663626396321928493316665233448059618086274963544951497122198887207007517757268527973605212197467267836508445139610319818214691069427576766315356098758862319841695452543053583216517513619329248761493430074692191561863439811570271938823723859426275428658995999319547155794414666281713738223527216626176071118875608242010828470488095469643565136619518440920193596501577516595085583202166653360872136940611567803438305403744268762274835812105685448006319107640206186237083531987695799934341522226555463015430607432260645634068960416267128484178564912165232399960511659374471491629830177890855140481705672909071881645325245257815063672936424532301907317068511618555093599182553004032615166545286004024324400544678510748707873670847382037275950383529687899761058163598255264038820014719482659201516868436670155347986115625808826305062779607132534482070362084840383481877042826417551276140262544509151018609617291148408128866233867840437915255396692271212820130853422876794417185628406365623361015540790367277301622698387693142561128399361457699670922698858304012987414921388723215530924241999887961019549518227993587379594550325772258543290519173946308369893250086110171521803760088605312336350037905710760949672891194964080521442143993377329275096085263366308759665713267854560287195570963609253610413932331331401637128798665926742099423580051324775762286389598128876538743061542046169091375674738567770065894286114340448694404175955525483840163414634081517248835157194084153989755299545266906723125898685912547113993322602266367341834201855305851865606987253609549838672513557209295660980123524074678694461727742855950294365396532865837545063323195940715587558716459161230304881469938561249177731052002073430361538219420303395379394815342123109225299240381029834929923826018792650060377674440848605091452629903854041475879531135866336814441933264389997905962075946383087774728546826687269420164441826353462022150871721070041486308233959337984491274969232924046185209229161570820311291595204370788279917260398726862909168295582742086934954380245955684587776292558265208299601634623360567156904865006170709201501808392844300919239982178047418074217114815769552413321332372754032849056423650574637670603700871690096851152443436343372141988402434846573176686043282497043895162182740778475891536071341545189701546412114229901252055242349554266891249527112887106576602258098094054891915459905567714141267494122634917891749652929867256423571673152128596189541552644260431570092792801961105113388546326780253282489657719709074624463372852923643160696528741354307058481707374947379847247348250470637792970159109277062989182925622919366010939591273649688103966803022556376777177369017139497561003926451548860962852745829946119648077698759399665340595377380723439471769915113514966669826582151387813888456525736803236514732877332655610372218422773214969046092633502665758897030436316692020011452279778208906064876106585253096459022441675333484169336756938425385560749334127243702167027325883775464706417033341327059569644679987041875223098729428348809625473069510559285362753383501836891600343160482133436433109378878793192406211282344875417636117890050902940342158280868964238820251287413286697263313424023441664568365911068372650059916044311821128894358478221931990292550266334720987859029339607464019667853497751761429879333734219989409601102979285987955972971188461974886344363681809991711324045835035081206046125164224314296289739648649914730837850179003456485711212260451469995080132139219944377995389391269011519717913842995114031871361797378773551816909897113771751436269074020310027832915679248082410510722711246805047573385034697194369008576433288970048146484940028274320764176934506296417988070799146967258951854314625887676722113271352323678044695471112374506321321647967181654497080205733393586022612717292312794566201143173158425386041344678506225442461039464082638478027150775448698625826812936199194163406559221425293032175862028727669526836087459560046908309655335509574022058977435196820214460010284802728281067721918116918271697850266392365772764552611801545024552840256436218438619107056264169507124416858143931171870542725756880951490789742394687805287170575925314827054063775271045928404930832466401761436263873783336566195629357941763560939934725605030627046763288173668919531744088595188130927286364594090086398165219417650347191800594478240159661426638527279064810371464926031232031945823232407613468610366989786277980739810581708770051851127339109140935102351722826936405021334515430079617660689364691606138641716107446308061210400474099854467693551691633477537005690663022546224671567006297003053608284574968528887600443210554657131595991676639502026270328565662948089038240968920291677783598953549529671309319222214069682458096147830284390066834265367600485672506726717472161597918051187672740977783946454915685240415164387448909777174331745448413470669823974262989843938914981241088673497487364251102698454548803254599858568826473162813673211069084958772920333070721185563495123382948349956177825512304139848462380921810460166196907839904265705861215182119337322849752668438160123487620311029109294601102615438382536842904786591727005372051670459171882444729181507941836259512195691788959917438328941836883308249526178590181696874629615855336534672138880215594562388654955810042284668328542599532588667509058932651677535627129021923526336272240608776477708012865275204938185308612425505906981786501846777625306316739798811128201435000598780873856447648338618763615520970047392361563820178676483841347420290732990397560309018745461528067337615297816619254131489411334121535219769945203715665155098913256981288634206119281950585421243475442720429237017156877377190365264192022747248054604060782589177248592145237534718468458672180983659180112446519233297935438947797086395258267179138460963037512083865718672277319961293306904527227522517730658938617668339717277087909846137831775603670095380797884351710709329212562821854002291269823929965479463954897391474516744124632407615895200429991401414572065907934049499200627847891122927419404972847069104202616179503017321497351019170200913165679627972029597493933109188841625359587068686111995489649952458672122560402351776997993974823039026392490217648881385289095286589410998541840717599963507609790852159550350783005467657119221720555633253624349864877761165726618974953560502605837039861069074181466024496036112040198470776716454498701881907261811073858350771035300281199543082023331578554820398277910558916165800091659979854538482853439355950217572622672985941941889679014652760179510318403843150416764031379932174615613627079751739017840209523777815217099262022695702981924745113985774937991443722633164487842051762459345547915572870101605186206665425960619246712236183511996912511380126305974531882207696664046885214285664715385262942201879289466683627287363304630636240123757055544231365082526740338958049887486079805589361407358390098171535941811164135624207650177415950638410083254826434932642503073917827662022824832371332754046050155741420019247852402105484824681585499535997903496090436664281018471500855812594157026682865027624907062831675755492857050227928474349373754120809205942610921404038695142805151375881504589038895298553545168251826264387028431916685328612131683125478467223610721888819521767040415612391890614771570387889458834601424988033550493910084123001832566447683013127793431533800814520454428865097092056653051363572483296062877992356253333484089758230562596606946159163461161186219677631048765453357145778181020412259957206897564339720025310429903930523139509083145532056647463691154681074601693923310817987618686213516815138179384447749231306625477312806804581457256641411220383223526386841430061823205272745220765183725072294140918291081465508089346134562268619879561707350039224363175943363635054346462587332310462856897847614170981506747483064773895961874105707787929649122406284502799536680623894535286730179485282010971243703266435128034811006753307314115800772257136359120388091754006035188311753763454453969617563790591714305419146868128686369054053869488801584797914463418041755702555292666084585197724150858111355464311592895880862506229279686425792524924220395676923911916186586087671014389828529598146349833489620830844771193087803486745809396472251578516519661496140918441378553476132581923730146203692639428632693271305925019577493791997495756843490694028054001151649219931397896135706865059062415073450386476933511764369139497137097455213891993727820578449562329686565166315999121896018982776987973150746214102126139222768069787490142945806169049924749411714840073696677797937633142804214600478439113059821047127876063410567887903867159135051658576452169904824878051269202226638686565901004671828428879998217908730750931789921405667632872407765654453822642113805255637194520743222162736148518242115935192109057305091966681217990907682130368165790516297185587022813512820404192715841806537545868140674551899942065546049937111106510789987554977607663748745032526179886961103405936087370147993191951175393083939997142914204916367297615114763491283579421329671871829761304297888714625000714364184662620696468832569601610082823071290844771055996289972111084122438841535536033132320161794478123359760719068902598587444456140398460113626529102762325969844512216545270219866803865091412724951768621773415705632549402347759031226649689009789656511003777475134705101578092940753567112389180982568592534831164999337603108974028148509020710485795014705380150839942701999980921111188694435234403010241690378534169056138273303519183910752451958326169694921544207357391507309832881113767211009911688520945113105207380871574213355119068740929317986614882084194797412302814539806280079961390104135443104843350452801162332040810524701385340862509442422197141369481097163599321719814758392319450959165101646488553429099499728821756351118246488455927037104360021832789083389861715924099674560116306546102742821225349345345008939336979037868640755917044184914884827214305708740796582343018507728574954592071955485022783100084944173598253751571290668781500633594749333066403221957519671528167809578835668588970579313129682341120535791958885843209284898418602362006192784487780855283841353173936202067851437691893836534622833869067024089358244170667127641581449083873884408543449933479264369887979041143604300807242052000223971615288441250932975490760646653216824884519332609087731785354922691085382468737171466758580191912217162066517166021325123234930599531130850764741558818873959507944792420434570599702130863844179634568482489836521401857925254410313410577089651458794090639482278817346270086432571901439031149746435133014961138928038073413531303589641914273489754386230305646971299747964794865232070461065960259390816393938243699178698370579839100061872217930247420712484252611195772909581923607298583681492286224188067652238721479712493772348385276993854442778146558566891166176276327886343885007950649680350923117700491555951878360065905641005213748225358027456589804837296559466595707539235411290507638687348461058075941324398646873114374856189943250389689299682405176904924021119729552579446860404086898490659170164221461525290935930523156163172535457173559396960120416265923687516912909741619416107306120233243567745593097809025612021451468447692812741307121377973946629229971927828672021170076339139800108919268169420359831094823230229258205553127236688116134821243973460120829028086609009280184499377537030474678167392808169180828764544156960739544960177291271068349616130594728802289330244624119386026796347114405232510626736394672828163671137057584578893489892300549650183405234765340334760106350666246976757223680400306562510663406938681249705847542411292009639368963126773213092257393998138792708489501137099606343894498910883480829490910949940611051433963332758369526825195381599848410696873010475095443586402917807369623546014885301668306637269985722895722760156895408120866056631098019444866199384218076883922097196307547152178985350928241000093057678701414329814285249851425833799446027647770715774124153815638810277311062555594822079766535114154861393881442034727979277097469986049141680371340341383262315228191312610640079792422856633198210706255360423115574346400240877968342272886281094130310558840099231774083266935532391388386478953931410041543943319665034126094387499843411085988219570395167642779559954808968455625636062324304350634702510829488816226283637957414272513230808500023093459826715277960251931236707814743268419190019817120313633795451675614549765618393212969739789560954843446877151870697512275894162252307920760614749462787715884351768594634871078915585562161261140015452594446601475725933534209573211199588793000521039837177839237764070344020979763295258687059104713996574639119123061216540036183295863460763437559795738188265227837649497530596973608012827485851286262821646238967005808847877910926850666384276962608843429298706180058034522784615197194102602646590900125537848104250117761553706385260950501336975015537512193397330765702767237540510533347089226608661283310679533017548170031204046785926495946110373061939062340174587811449261867083290024028733846655090578484820829012936211109963100036984899879154350124600379209592195593335008218079648381394454201696920152175206727306368427238751316127742432736659319277507829508985966667185173113758775153691889569678271933211346311231538806070323382769065465778638318796097401555633370515005029560239343508625173727320257310326627852725731111960514178689808987470163903768633611749725093132584263360445369985668350343258982230764170962155717009929313241297759570625445163869064894827673838158407460363863386018894247535992115592591990526387841025648277448674329047023483575748474630202588579754395647036872912710224643632706298100182655709892299697665876144214854950914685016891450351291635470424321555557911169678150368407808523330138835670120161176016065368090580989005071994461899215923517379513741777316502274303536861868582499344651665403829777742013358855981796823343100111508785663376894713346642829745899583511955337839148161774017007884265127088662364672549234440482344826430316587412083598471405313699014469941783613143735116804335337488647857466319144489876555797025412832520604268685207967429197189606831548966296767657332618677466401418547159386003718958089164818134141075404591245382571424799134489244041932452065145762850321622083262214803892845699533764730567570311198449901004275228378575999634124418790973190842422692164185443529174530876097973782915392158911669809389737893326578198774130919029430818443132997277366667402986175660940744710924310085158367180588475321666950692137604965445578983866616696277364606072251588745933058156261814260794621496815408801499135838311767686703875655407819250755042959286949845011149610019741285380395683852662958780299759094492552384250089778017924379870284166434167989305478987669761116065819785180678609731100207031775882515653489728792222048858953510101965241031767266902181108429307055840334016518996153814025872484010015612313786895845214069253488645712315824516355013514403809055570641522918476584327617227940501175292496885147134917258297277877400343511230586220618409213297473989708864845632140494475382699636539303486486398060234709270526570144745201655054862529080092844615451184774836944849047249703056820410860573687942697206055769098368705250208498100665478201860425461676168295942550541540769207662488890099881171805987338275721405505136232676268580261411211617854401744036874450314564536197503807987950504736054277455396261226823774571189048738803270455261100740841621022025770811292191262353030420890101222000792437894126539269343727133514594959784880415222761004749224063724817280925249475429994625275704871882730518743268887585436809230102859109752957784806257443049923061103856775134303517267133841121827145861223741536212478161013030282380776968999546510864441090251843313437449744885405810638228771330269417644538927659647833963280329081775312002250441816430721948345034883551742665169915213620854946332388771942539372688131703092780486650513350515750217169045090851154122108329589760793339001829863232442150256982781090514290096226582331626115731366861608283970578752353147694984735896425419063816650280170988033241146752525307605435046447643773497491212591462696726326191961992734586034521466673561495755265196056680673486301361261206485777892230054120100162838123372485788624164561334059971175456509395488098157199194267689259542092017599300992770443169406571877194269422861563415094314504712256825460230237257910157312851852342495103058765528616355247985112640323642549442774063281553478574232529175667727776919117868147973996451671998504312221992288510519434010080887771883564501465304291561144113763463918328735085663665422814906948650025898831456658603216273345118162511998375756003664346671645888522620385012375820707157637902279335359839489072073303488329302692271584031907933725961708385137281743132674981493353076932309996969673937927881530974063113338014904233300578466134377338243674404174180985026904078633349361058015765229135775338290865697134671502437865158299321046998624712613340590647242858964394967124090290465914245131799107649614285880948397831809727877291314209105894795357386915223599825898231653060618518387181291522712665665082367983304821374765939103564344454573177845873721301799488616850215228652409729657299931084254833567460377472591060676825628309669106073880007450775434741118993353775406194794977039629674303601257061837049967176023511559393243973206860937748748592794278529202436643659963213830570755633142243638813365131971958742085020066852518391917676656194381580202542482115121153897443813981134345993984065451041476664510889072603595076491431318933512600167166114782828244453784839663950002128097087688311924606936670673548748664177612673219852091421000894961167707335633061179434398469008762404773817597896162934083077503961186095912018069726965940509549174091207414726517140519516259344225232615585944364186731270203929801820700837197358973675446134691534402660239299253637321235520377082728494233860473731381656611220797146455365376504778528482823001023046187192285892165149365731871473191356856709039167083005809501928781872472990072336777093345940490748079544802702416226062231073724297512575234186973940943078805148529732651211095614810659194213002968450869916783335873737779212757835615001008913867265705530121673818892499043482509451584673256009885482415834904951298776925570998238448541918058256907683652017880160363705080388939146537663781809848373864969531899232214353204725131964899188855164385823716195901225101858923443899049837607535621151394910162546008915034053909448475109727226572851690458972335905749900374812198989052925952759980621529500937870271610040411381902560870308777433699542906242863471426257469747641087905290072056544321779518850366652482491705208491389984839417927697661925381489009148602133123232147652617694786145481999625572979657596565283672856228891396832935157136574071977464083410037566010996897679526124467156388620367951120448035096506837822646798740377480059373609866829873576646066340688577683198752037426770410382050746697071001919503079533885580232692195131133903080875277177769489964485329519273079037335582724313234005442878650621020483994393786093595341694392859594522706777967866302884728901506239752652667947120927115716957539810825317168403228548993337628275097039827034524679134520966100963697706648744636557686440126256735574346775278738475288431239834607269924013880790838371959872509918398674395284383625656295887568327284821125638782783541145596309956321939431721867832399270637309143874494833680875608662689122482005364839428276292267932967951726103225001046037665979202011740390202821626397657747969156212473504452444897519147194975067912594238826725833236217543742220307345173311596532897825279099260653723287829746471621370852689968711553570190089465244080386687190768115786576085766185774304172450290462581351245334729521457413303735187197508448593220037554610460805861945403721517542695282022663110046232921969187122682685220507025816816235241446788020694975670571309735166072338927048117115939997498010184717019708323375177047788181947294856672311650456575440381610261306425900764939222648752086372751557580138666167033272545808407402381344305338382395928910484854539852199033537950008259550863113846327405272072779214471060901669621444461969670905311386821388541581954958045480820381422025415796392601365397060456888460093555622982922942059239180431464258917641525299090791608039400520466651633301845559806594577788081547028441960133684858865272578825461691735405991616510257189151832025416913460147231703896002809193160293778808332835858234309914162141653588380865116991915205218360489083709544005072022384767677858110788964734336264725164396477606010039560027158387106704121139386935754530665917346665231976360343241529051422015191489045262759861734595978156932654962214525121226725983051911525404589194697035675008955511490649114785152524508215833898941624379777596113591716055000414656287460116884551428822335603544274859871447812274121587236893641670936254122275528663207435557418567594533467504828161903864097852723947839994358985498304732614189912702024569194673181474895470553540896500622283536318586298855823300657572436381610519346886793618639678441040191342087845225316694829469841431028134716274307321853986326841484846405993361225263112667222307660903765728421651674900455789594087666210619384768968877250138894908341288606331526563972838443573687578279042355702818033328218971873830755337093208952192869031885756100235873519475424167921866229929665480007826161542871686551525326006898195247668902633352655577417276065057080961043377581659612000065425712148267221373200823599201932218723327474850964491322451970807386529700792692652353102853904277591456169442185204099914197358341676216615893570409369170211194975275809675994266736644116889439997745728154669116081344346190028154186864384074162670783181051322679272180656995771666372579126730215835069705989456602709741538072198516131036085633679624131267641806768777078413460717745202291429389394962838226204937227925988968773892028730283418528425407656139592262915374277985012472587987950707803140796006399403749042077005353130604104570188276635546887757948197670097578499091798046010560319726104653799673802162152839297067297482675553371417872910973415624725413936138270204307082227975783569249132963385193714704801995916237361842739130319912067521848940968797448513426906769616978524914244197008689520481014576693696577599791294459705118265136256524637761004475186529853444080964198400672241062523816152935134206791718794057258898818800462155181484591633140296254546124747046704674664750896939167913724161106046020984242543824796084898725855963226456069898365098638052597564273383479722516036322706775076122650411375205022164346384439814116463839288378838682504293196499447026074913230590473147552923042691951131948883599973360211139778985230904868167949427266672756489246274980369235973492292240157391713676333481263259263617173793353170426912784997264856717760557077337220738564602625196941933129950654248556697268005662402698134701892783602258939350878396069275066466464417494273626091952956490581948180356015057889156014827994435660866926485255692259673629519594768461783334317022407560503155490727220384196147194864416561279530687718193667027366338427172811462529109474941436878911025456023997034035245585125308817255026094070136992664873902423900642433294862872026656296621269570126233494122462508216492632014667993863068043806915199148483549022386797368546293257525867356737172683594342662103437465930713568071133095271516644037985875419257264742646080888806244872506535586888783181189895161496341705936727326802293791393257158659419580842678386285812200555773031478422163926220395625500858514530034180711951274602127729389605313902273454659377266703250657814965645513787627512945276064589895372015241892232694906735653343198548274348320842405914318995117479741786121341914247729943823853534220592955518811263024600053010609888584468420322478765905251905011952742991901587741866410998934994183365974946424928858397404302986847812391657992558520150053093220753325697184542042678599682189337535774430515196902550034962383935176273135634450791777483565788633763129475559998490989761924144505068644605710980119952367592015774211900917592304089366041778736253248968482277677708835873437192367029030614665958713204834959058787637594604545109809212350531671536980248873220373740394945181240245855612115965143586101614420500202990518220972190749851727777873426555425262178323278177354829650058495122023711297281363291053651196682086524416776538873956892632866472564257677455943575886059835148987977519258028486322515922154230479804132560035917626264259539754845487894112265537181038881192468409045630539364630220297488798971994036754184074981280312010974905150198928949798554268033812271569566460588841305654480099135058517683209568540854862827235394353594130611218115749993685098196370441533329955657257237419152408371705430837858919773465522028725974282316405776367561718022933555165229305915076036565232689295075470847894460990801078712612402366564193763675388506317505230056673369329174976418965767438095091700109225628665742897975762868692229365899561836100512609774070190848703939094397279027560882713033500894974226914438627026276660570364972577059675971563294248579098442794987294662619741689967492226385006774689177761564146180773402023377924997209841895015555952790460874418387970704389685124926187751204809793839485904759222216148420792267125407821389011784447003798463833879279488171276299676530510153248689617645826123619523823003848082998805861221030976993693633377029132881586823172660285779643182779096562957146995475018744203796643746657641953706468074082352944575169399848099773347876645622856235265980429929850774866624737282687101865216398764236286743801502088207649336028935939135352047403798823647325802724425297687010372256591146657620540077412894612358699023007335530410476942781866218689380275236401897855063730823538253025743597749717504805185376932331018915599433864223380638895433271697952348804770068944387493503484567656159457424451159693046563740551050097729483969528151087651332911149291540502459344866588512582127866359422538899349769915845949427759268427305778370735814169184638680465888270583469358019664469359713726266164939735873849807275676186643197023679913812032921859607411226217158343886718868492000537042881999443748594796711752396063869677647205642540564811376452648802711856142297981921714384668799940263340973512678786203647152555522722192590926770220421902747204102846208776197717596342440741964131559833372992614123782431058095998852836735007183215397946072179901454398014216049691410318616173949992144594568289363175740760308957902611685876698690928731937277023187451421262571247773619838690452441832431299384126553496938046783464380998811567563837200820022648583395791958955279007661983560277171077668987962021604685408020034985529847084121929897467581532104385935565323216595623870770888266132197956635076590293214475871775491954010220052151155426752581928241498377583884542100886330647446574942527295388301948915452963508913140147993771930718065604613454885183531060787755556892112700531068769586589802399020380137198210564888623272295006713265533498040195260188345545432751998398972879297954588434874222852869048112081152527677928972373490078776425695023868546749833897807008452220914251480348003296996343790674495695824225898074075100398871036717381408946031070025042798641842813557202481089811596362769063329739414121177960273409482733625303004130062881085079509565026995576791664656083809080335381908890495054635884746545746094427334359837883971257702165218029033427695343899391546335777294709616040088189186224058842466176412382294437034485106822518381006830824624516554183067059941665000063493673073862032390513053213037334145408434268079583896170450504350559737065876947976070027855023441981887214308955265002273707161626099559609068629210974311800119550871654834379360082560827563794322889144165958967872838742031156143642263469673445978642242864485024922706356608851633115086755920809294984729667078271573828574804869959942453918423658748716974924271590035533156591473105811137403983074977580246160484898143846467237470431259579945726948084983663077802481266930314771765874931293881568028916816515409035053273950019596140865889458401718622045995757581641521416968850539843804702501426040081006090063440012334771238437113642803086304231427584515219713343958406677073270963789921764220826028693903922544000907071961264550544358317897789460711249746390450510038235855170995705292094217409104242963386671726271270424691484419526757621076856110080950277689456792174374960886028195697155035305287415701831940747094494032722130884636660554757326878376254542811576340809034799490208635685996407384942836536885497118754980587105490075424495883090017641678853052717466944185183019745806261963455009652696772053471451625603856145789169384381665269455545195527476155180208333374126643223263449163505612707397347732283520009669850454797492809920566889836944504486716155980751076021223726521285336916751707759777819024977565952578752043565075073253762062225954766898836363012721888868290145141267720005410462099887605111559749669506623697262199166588774517219443862808953165558955639848119364691255096698084134716810488407917499454387728830171302186734869077857557046215749030645494606501992984884403538494965028843101505115587617898418191419893543995937657805828597501994150431633126941538655767833414236103954907931468712944427802726878066473376873942103887817972808976434421389423371279535996141551116351201758183089190634735633008878850027532802002243065515317320095325872813027686167062286186425608329071741705985907963931206261056864005378991719064715064274911961436337187860544310816035494284357548792858352921127579618154544296143255990480506891204470948229147989779455129613154542559044488202430976256104320110625879498599687228435804434738113047073124646939281369010659485128198595451822337899285968101849558838317248498625042270237614175312414417009281617300256145385192648595927602290000312014170190068215093070116553418786321405410090490265397056164733729947768756894986933532902947842951055118192551256607756281181343723391115965759471481430919271412936914382940489942682267547546863774809173590579088745329159989261759818782491933025317964879673124254139840217632274198677283707147744144246339639354909751392605651780899269290044959452940440297808215424018659966600566419764513529271250493972513432778839357273740137524307056892134530428030934691385572834012449157061521113488615784495002813807675779117157148189911052528709630132293106504628093180683284285443697197711988964972842915586603892037591150530175587022692073787969400741427750283258318153976061449349658838024785747977745341560921110563772880065596749340499973577174524538591684237105473758667843275955539201201886555866212642077714088723393018343064474253297157686930518403334130872390594619434419269365716967563803340552736759865042933209184500831755542755490427029773092492498000608233610204130808400524552752840338567694928302263555235112170904785691539909222506813568702611851475515693192495130466410741881528121088762147050835206924979388059307432666580279344228711715964974518823686614859458620293859174120657749140577982070306601182204620760902727489784488108554404594473979705881872233990819170472994813280628652088269838822645701228068202290516900696804344834818779936588812044733580932646417351068446803498957608976224776965754835334329672071564007394657881705173581113532293095972151260552304989198520194898552724305114979775017350841723035585955716111436538466495462052528066991345278504769670779629329760202256940136143623224789917801560807183817448636820635273352399057034191649288737737360593139836970342533554464894380596058887878495327193622252294618563366258957556214080882080613916839446700369668345085487823754726495000826282050485628575963248901671466448020933722767079851819222097370762019470345623245677136444914205948903825231767468838683984308224138217729737300882873368581394737991034929015777945944934397315872450535777973918299140142562336045558540900264679339222672472668378974247003800487288668231854668712515356547017130310741109971318530588235786581968880406853224754105158548648289639156762072206304897826465698655643724480059011889700596883648699657645625291020182795345696234926480618637492408082333381657237977637002749849849160787909490514336699745462663576453529885975418546881142019413710163160813819108567162911308534103775177228487577528252024238798496468141505050989373493994208776948906568729933351659018094663689034683690073838767534962748751717235896593992980615022540429289131984002823169873819186934873939348001018871338011912671107066162214586921133305849037049158055373501436159248493043686830442676881131304761912264630539267597898260248627114593167022121975567043408523923419411615448166208919258127601820797413884336239242854164013132253555048457130968211657929240183149224430265123113969441835708075729704198648206004131751703757143393332419118428002616105350920227063089830572201311541743062257878781863832353171528991879797334832697807392317844694228784134844918570585860888491274846082428068537877539184301823454759851103656152423408204304321319275700843523901810119140846275815771442504938579773435663936625471672993614973470034044939276852811945533649826989125139496515464523557232317686153870589355421682433174227621476861552912175755414278905256728401896066647145224287418065326421386184882467081511465731787410055257868560808903325661935018024233928502687329836981274738389744002268117476186276071768588074412583441963902491820462901721731091105227356101257508199516380271873709347041656294024327308922092973221812837919432063414145366065866263542504526671342666230252047462802439733397299913604807961276804072607668991330416727074573933416967035055579642244668334243536653306744833771012647405999678193920893075838626480221395190626537894548385587937091975095639231450681912081637197911729382069947208630490161216450186318048995591683574210380204373780753423114668260028373020970299075104107958258980222138867514173757079686552313677422048775940541332229774207606695575675643556260022544363298701309915299920647817037610417344847463225582664371004538832155187417269782156628985717642108477428875929432715456833451144001828112548425856587485096041855187872972864904792517743635644563462605840570271587786131768850504585571099311781598661676582911231124453988406668985185631356802437263299254271013401533148460980139657946811036454456776779060734060842212601099059590536700419079920407926390918253321889948638359507427925636760903261105990335494499647211945878585669827622720964312378455131515884328959905088715745440640207952580612166299696695202383678598924944218937264278891584756984112520323930925254488823749543338831309956280134627817045284470161997067082746874602632539098469753526192039198518985627102988644081349320303157801043899917799194436246170468435799143102033353465582207897651628550213197082539258734225829811582591115346047185316124934792928838218479907023515367377742998611664317019244614539275325398754090717237925679891949528818580986823776999488436391766447223687672573977385067750229151269846490270462001044825693767755722646514181624919862071509854948603905633612191343405888363022594254915691495282965140125254801529577731512972251401685978224071854678820799419795528518314570740207690462964900028754451458306092509567135012573637834677301267243068176074252791656306508843500582859672097466796160414313957519370106760854813819298084550169100736990140071440570342617701751770274137885257462051304600329578845820427805887931276005120562577774326560190981738362411103963457579550197836800000672426653067730890156788701215277284213424913737739831476787779810529822243826224120415908652817755533411233612435613094053065740184314436358911965519792502884920858421539855470858958387767037179924159672413625409389145887752319619096231931824301562307010640000024781539000026120781738727880885348195926990554497720656998292464495865466260222528540793898658657431891985562978418133112192694254125394102830041404973657531305798785172792639158800177222098236550851316792054538947986267267279521484811253058624355000653360162239617726161353166735305225472023366162099843545451970696646424787840862360087212129237778276411571940501182603685958718526441311268348719084428924018041655575101836044279761555101515463691448975018902285786254956230243352553202465876077933328003991276333645895381356708969338578422004886837154251085385423013286444012493657087031117130680705255205770402940652612742347074083923165506159498954060449115984110325713309307222431671524226271373717482629044215413567488133107364598628249877188514268558453446303169282854819915215071210306186170402507373051945103854118364948571314191397594284584646353072819209760412392343816271588747521655775161048022907079441956863644471695171122900436084604739021257102826923808615603415555781746878458535517631886528642273676105738367525140994446894655115093338811272044272057839286756970705573640403860275693484448540690111977631043770439835993626948566806843178403519344847204477602981085367805470503675422461685000674889971212933863249018162106449819689852543582679456961380578060724481310905323531265230378099501405357224558265227953573878015973215673811497716342487723745671978337526279084542502210021944143803466731854317692568714489936188904386295800934054634012483938956628741190835634097841213715626098535296282966800764911683674670760729502036049712500158133039370796306337190961829154842018460404589004646844739765399398775372073857289169505855015414655107672924657410659956687776686706343440504371178883004216228608837539072646870935366728653975425892134014555533002278763688265779471651973448917673500170580376979462340238352666177261201363958020008000417373810504822416047283716496648171404051657310648524310943592451063063435573884142973021340852135920165139935882819712208721404230011091468528854566603578747586316999425127603829836777790980735226491666673542794563380063510148664717379153481222286189782127405321361199566693662067805306787933869303402604990989188422657369267593002161092333935360609997665167898411301903762766123294332649829691823462729363426273238962635797979940222433798548490634785819305754451624547386286960415464763525701861470305317810640099693882047751968460813688911936040175394601668575372352868429678535527504702096757181887980303915508973186578574487607361260905567547507335732433163100277443641938847867133298631467890006034935705156488216558227965104852858526007432499377889832684064865780016927622764827999601618734783635772266175865892572649478579388051093018589941401236660020465515727023508618609080062517502925305547862158549475265253266686675138634847447013767278552142767963338302085147704121716977783594003687968643021435972124225012793534473497968610884729916924006445067400123066183612609058041702800389719630354933964341271208711942743335209090908728561317822338148704112303801275698203499043162046052578762744547217091038114204731930683862157475592755161903632511395868080344386333081353983648883618473237814551153277070944580776799978656888993821930329699333663648505425865324423805371440308348150281892507629910955330184156726188717804035885185501888753797159854889052518481908430760062323152592276797749536158176240737820298190309894950716645979494931027579060781892298777027819894073722378738724178210476685739735344367275253059296594279314768024085851607324419261593005808022282413037749002886185253344682401148326757733373553181016543766516028375689621898294140780754508354002170642153038759940794884647580093966426445069223953094065374808891495532429513604449485866271098208622360252044769183960617259579005180758795861438504624496091730888085068931524422454849116506378096387106214335889677424202943736705407662415016676361421914489669109329771125658181765435201825597382776922667383198936154964576014469940435027393837476463351616694356072505533938127685365788651668444469107643717039674491361942909019776116087088193918817938123026420439066673124453642581432363219265125933960911495850314472978763106085633402147722252390292580550833051461193242416018968470556074983997554286293007752755957846168649654859881699251140864422963929934781255430209510832855043982593053258631101525483314689059857639558405420537115613738719196485264942865855998504472535358656256453088144038359036758503280077456990059881923567121677435861968895573086229257151892978482630194442278057148991912197151968546513286557356986027168447006314534048498549473655076857504234792632344938863029777517652606532040432544939263233337933031307809756765487296395584462511370422995438194767782797487091025759936781776557262752326641647208429630114059518932397365525897230131908181027160476424653778716667468803108500608502634955414973095689668080837650936325541859974322455679022369693180674715526796779055222463782239350204193610712402004030154590473943293414779126178286967120923160848980141894001642478773263853242238648512438465860085051074521381215093089255162694506973589270809609792017595439586966778430391415795205299283181115536774226386723970756371882027033828214317129181362071546447801868629811173751817524337538942591909004966017664433395921725742501998346648368017768316526692835103505132353914492180835145713260214081021467280706360573500235036514404316587547579654497661046189823224341931057586898416357529279593609186698018677817706080231865618278739114402626319743283543138709001740469028529067746495773023760004295162611245510250645282214849895274757824828365755340606095394285186683470955871173270129316517860296510493246198365865197094751702875341763368277554654591334519050249967716368221883164960474573588444402491041368450931100685242712824733610436956945395497379072000250698174458143583356769888367860601129678869286142053787600566216843846208038593458934520127915790860431916125785473880426245089832892152244122103262058912851029747585269835205494525757092692596366353918001887537861641729720170940003417016161798778331312320604132693950486544909181491772607878520247476386897785323670310380700765770211482678144825567151242477835993565538675389455968461785216868737214679284004227973721454797271272044127007039225873009715464322008050719937806229472445312377519080762877984521456676486199346536312307806658828437153357209296696443940869081766861714787157223126148115059678550000122208706113494848370356523338294518944825994899941541966352093266768913002358702765377650560125975820443241256285236994011295252446004613474647729770552073405598449427608724015540065708054616381677448604771968497488090665668386075440038945290093155108764453072323258702280576168317571776748149330113964280798963842018112847182204111375820987521949226634956957031885714679977215280033682498661306003519475882231867698732779981469193455313319583099806728305748717798920170636201258371055955165377106169803736189823179071815345366488671659357343560896237594777972508166495305722747133394747976979603982644819396563408020266800091530061248524077258952930543632184472108463949275931526820634151877106435669805703769658819374738191245541488887780664969761712596415316537535453289008794490378412053801616267892060893364557967429677337584105854832592743421140098706775029625534054590539087495236388568663495699229563100634048115670903903070531453039116643727291064611813319030690889185338638439268098379250775919989431836951918454900507719926028752812164787411603348046148303962379116290624618655646494806486785473034351834747791345351294269647385878494413867275083651489325576614515606021981310554993767501415285308390163013149275783222244525324751448694338162776493480474498153412234560576168752526704332595868385746379002020933896900202076702487024862164363916700581338332067827788387490084629073346242996125513060042622119471830903512840614352106721111650278994864062828378542387742333986378902428950847161493152541906598679728070725204949415684634422094180507066460627869552037284571267492161789792622335941160630678564709700639306914080753060355836299774456770455160362091097036647164065522718486777653797462650814437608390890870966210675480241710878591882896602147134181648389171308662844640703690787895406563954351772124184535400690607753802467080228877369078650666636710233124849721353404366707097199962840054687329327993081885792606851348590229021171938320830445024137784582359348944266994027551078982103047931248353020631847830740920762220573034364353916827521329825591333159605989544171765962028522632298942652697463906423833765850452028832923157961921130139223429506768638574884969488262160980434421127525661938934969923470740967481495138359396025831944821956584895817162280481165993060135140680315916091386824408420752439915981257413076992161684280046703551570923867306897435236419682996024240189165531012411970594963307301320305425966938396178508100759168024243347418257302732336878994186320577844666178557472237070593263115635907620298500922163730352909493028409342514290157604792710533072330999785050165137920303922050971129555318409230584721288042178109310500344486230671953724826923397229248798145010411920026125365036943659630967087998076402870417901850481625797206574625103655700506707618524435627943289576068630323196035855044802861198384078999088410444376988322486503550276016529119830200465542874466334734474350632953897144023671344259038611481805431213977532580060559566487556221536348703576103298496573094874423749954358911647024708204478926665913752293726559844777365824245396885593841572022176188688039756117153178550937684963944305672573363558504008898134578220999842511067076153448427493440797860852627783306932309775775529106727505146547589368794425635101574359471321598787489013261666346620763197353802596350198220221866324124923877978859652875822515951949560489836564054248434407707010408433217499641009285361013685877847351135314266367067990858225071526252105467362499418713038041231479574644715197300482801783500982202473566137204293567524143674621910307772744061945459134944740477723646141684998149074254410373878372771061643998111750021494340817293160454408002987539143738868586755709997434938391550942106923655577716477412837045582460777394152383553955810791082204833168103362365944722747182309019221244518234539078435186728470291844660205885932724555596236313686077612494883267409096752291325721243218514225863887083349814974809314758393419044500037339387211138095859883577417851103926902357101744170039606968852940658117190827321279985529605276089570294115284819092759543633603482299479155110170969024118583408732116945080585190939768658458621351838825803234839662209099536726971254400949670711698029965334981825851495818449767709330021875348283339938732477679050164862709486337427794455378321890491561478777952695398443615633731489889256270059258555079671729065831322412273001027867152382040203789381254864228621441785546037420342596201543514293722643289298209762475715315014499733097529425086431946281774141483107521301464951787998293676451018556897898425238000295340060889903170789699734811565676508958808720636793493925597569666161468508842632947968740416123985324124497810520846336975781105349155073684134362878232445328247815374890538585015926278720855592261421207667155374030384266088824092310690226702379569580742400734352843845111109010874768746098325747507148304969122182518056378532980347714475544148448072904639424450011716418891583563376017722523418964698052983964364365908998977297125889980293655928383248870874972610792559749287751447989097061290294787746498945222408715170186979154909597846156299021881429976551563402116940833944796831759890465231341100578216102154343556163683036676146016985749399182989604648553099329824307337296435924076182537220450345153569498647322501984323811259826377266245926272566029384790882353158741037419807268388713173245886151716455909565483880595247236124366781024674873608412630954503572360656892416625205537625034189516068717142345385248774908089220057406505820216464063606496958218225212052105817706774650642877898468023534469951862966351606147537424669840690900667523442681238982497146648376854623212731396165264187356258819450287619867472879125892785235244438315633501003253692254365179459995138996794491721173169899805820566196455945790595595056868559483601106008890237325792136441903048130872024768914064366955540352164940268489447262375405218729228976991727105995272295738603141562947591060055821945835789809352483457593141585945871161752599359815288247737128332561403421955229186379965652935198049463543812459903795212313836498098783878696309559141515142042969786615687134016636912574227636847537141385815658857206330182289402661066899159741777354237554784019533058822653762507374162230171591497977326800859650211914114059140526999200630470237352148017452011700756663567341870111104749480930999720309967957882224073846323403868995638951594419802211096660244036231124540384639521949640454679999017990856512685752697526317522213170181252633556837235892078289027115060470915421509376971907138552544560551283738518448613471730081710551413082209529567301778975186226252122822829735093313382589859273719221428175564300974783535540304925003941385579360547555052896738960391772127132945646253374494094048538052890544011260005641078925140183724660158300350998471311438906371661313769094896403675447872107066085334407232701185986831163974041316145864053603089026161695540620428122610543551749717006354121714757110008799207747047366045462454764743450472944849608739851781560807021593598807324431841983216265812160602431714152441435777537656821058035901955818703678015397362307674863749234877851295447257588157239956954169982356282261410211714442096807393296275693211656635381064800601888700983590337115855904317756563841608989608124788805505886010724245527538905144237431171422512317191599498898470272576623261079300908038604294006495458248381431735857259302973979144811156183834963458220600004407977275402294487805328807036219137344722294815294435247884376812831836168079730372513135982145896543914311972837964942087827115979614130474596149352611176240225371730941905524805739719330535779335240051967597245306710273679112538147050920581970679862017321603919430337288734285186536480470148865597521308290540800363202693266915003054973445305962821458357199773959019048094803357095437658693885318452281908916002971718366615731076844434102318697334010637372201753601018934627514455243249653298630000967169274265455432004943694747597510380971154098810669022561481824201696562774419304496534819154676260334895731281464048009228311370096844166308484680237922337493851966893617340949576959443103352251022888481283250499932985363832930858537372583514956238861623749472844112558189164430158258770827168259360052083732237034293997818271501338849021387295070828086096960206712400969042971522368168233384351419107662534049082952590153899870260706995927192638849755656427803815464692593583070684086516346331212054853873475750366433654974053752577116480893731463803954957228748955712050304152038395891360027618273257901386074110095574748064182026043695664505383397577248800595476210825155545429588777556120876413455156836752949448921922218338550934368383642637376462793986058893693274805488825278423557202429342444269946776398353852176015282770648867953389193165816019683438892506814130945819953550292462156413989062454199340140854442194600304195005949428155710053929140725052005141423094288386141647515972648808875608911612415387704343091537620784958129704462954122572804585572680087320013560093532599558750744422767512380899092306249234287956490031290698856537973228431627254224707692542590509935482088319850433411203049611767777757458338796082965728304663952042105023184837204743854064925013026469616724585157350042571516362941134347731064085368469735790103013569789337992319054226946520611816683795425439248158650839056142814562687634928859805309353798516403339915252504884989169638002219702137845905374363811923803624513120616774189685541379771151036683698850629480868479446547486275460177727988914424107457108947354572601559782863996680876169949124378807443115362494668553864085394299930037097915549144307318584249362990270502599134811465174989483326872286522945504236720770900705360672829137195817080075928281019097669091177938171735716018531294490587397640614760106489642620949470974333076198451526334172624821393294195285670398594777606360334805165395687727691607139393967241315183302594894850384576978436929812423871187147938322677942138632529321767899550654800331785832745369962151718041451378851348296842108265098559572011958434357795010245586518391624385235086667155358939504094020340785531555449340156980792508492936674528531577317748765367898912105051351610529106611756544704344391505685205003722696577706921268973904744928096965151989077801663399702454702734340799803435462433960405603288482979624018758470824288383988988069682988835992590879293587985393337971542442215291460304120665142327758373778965318770398770286353102319341414997169765305637526637161185181342674179367562669260382117530179872674741357714819210367149709049789599980563933442990113212002311673831901992464435724490706662596024983397286233473550184591942077808709785045472574446977963225211379488926733282370126043064877973924969379890412506874939733627706392217215922958514719081239722299724391563557831086734947007800669020709041051134523885476101797907778496346955335540400628137997536487677848656550282156662902493499087129797577589373846735051035155150586678604916986561740408401791885739398511477880189578274059472945751412198520782670211210108515261163699082098909458877000548370981882521679725522453218445956109368622497254185809431888777511517740272424198101869187973593997929352867583711908299073908185865157240170119251405393114633986993250163492933868771862935449522492798503355510263280014122743389313058865066119370728451302424357933483266437934552223615823253096202154370295719733391308558797030211792173677491110524618698528080731327973852361784339550213777304643347725918516202973656168181119341172904110684788167402544941305070545611513435922798191565242036768000714049761959489499406041387498271262530800067498717675652769505684905580190296361087603812365755668514081285514100032972823775764280037912659453264623327360358037838767665751425188855814337335270097283796062154676413543371879775798712015576108920249914979887183639179003660289741643396740570911555884672649476852528836638168926203295563312410493367431749043514469400316559964171977789570169733798920818101460646545816863577273938326547211718345959537470702405082491135412397640130459929046739581004711722681682519547412784582240874935292234278613112051892108600923922537268305479908409400188596399201604550437877492359440998873134797298666690451986349021261859671711371809590882008525355753220074698679682677171446320171653180682346181152928670048074581253275311205275702050802462995123916856081469444467898549277922948684450143845376911160973329939666905928281294071102756405532146703306043420217043153760560251593817863085697397398866366328288172481475841511602769659872755663845657916883630468033808610597542778606251847061138902259778768189229718056485350516336693717514934092367310796271796108765490817252908499123391801600121305486406293166788724331642370219100731599702529450736549613939882031820539253122058045962967192648849792517314255280554910597423020492021051644107447781158748584915206455019868400834527142052174870243422454686266404811771972842281933911636177560015149884925910303858535705970758225683948900310966698950709731654836529384413175883292579074245961703785079067144082473704075135631599834264715812635302938583147557097819776349924549087732797009027033813919719260670991131349652763534622918948780834659542984008009374112309779172062533909419265918039151934741286320619518199828214036444666395345741867637441331263347148184123858301686596178071420356884168613975565320021465036888248886650216872182792452630749066025963694603016208215661975801755451429394682569048331182597314901591480738238776691912761972458886734126842985808697542219517615743706034435913268310825023998785173853435907270340253390750361534976245832330708889761713160731479251699076000204984856321821143947590297112073854974996048315041886846729245091233586727409366785586659690904266521211563426701730261781094362616207255946798605791880844982849599255998017835453958470063583712521679009956634995714121790102790946538892367081161970784195486368619644868012814299709524095444412781720298465369602713661525389269021396207648947297166634730107376497516664072833533378562453412478931781775988693778968561881262262257456927779460999962160659325722530757264862720150051073331741905132275474702573722095021998970448265727388148752586884039937144151528230716152191077379946458659966435775203774757433836036298066334494867482264524310021701630644309705555008736535778124696586465898714541329759111906110836048904312187234011085340412227395017570895487017914142318206926783793883644276996670617846873775541388064960019294162020748202364181416595114890899444990348445603648792481752432820674307431355469400991789604123102537781971979173719966024230633819069816452590024841006153141660549240387849392160672986359037627694064213910975241299442928545492289860999726910061252899047029029490433324903590235989971823986167840435486308847029488559631790441829320106200191608152529449660715016082081007465544567440463091234531390744023002583186769734069133425497878707029351149417057726598122796880493064981702834260409117284692157577140450372992772847637808616193362033911400153940750594155556741933846353832013394396285547166660376827988808761448501995739440180160056412502452634854634551718912547216306660998367134760230812163384032567016710046141258640833043466560903608662634606936380821974314664532414246737385875112968976368368440818149733264829217235340511320443690398594050565460622895921810576334680685102307573084741132842571947304023592681926027665424585031181204024714073137447490326894362275552586022236230327819116012126636675769268576939341883836360247449903440241913511273845585320830407848239805764143384115071625952753820831821627071388424575150148247365634945087676692444843170835955012808166699885574842402166966804793955117546711236042836270839540484197902657110751664308107733491702692027050812021748904330852577306681808646918590275424734989281413304430751355440343384978917406259434010901082406050025416859279008077134418071180294250074339785708906232010162121062729362864667569495630694873791125346259350044102694123131200902819432498211962860937109136674310487364412333728739424789135309177602784852627761684676881167484374900344779980736271167257171942758164948568262916909099301606154126923719805521636593494144430778549483762757708024694834094510428804071295909326251301610747076554979420205735977704600238418587298556371423647835097462829666848458438351793730771340245575554954056776947284821624994033272326505452842758122916890202709866901484071993744292153080191005847592796916875855020529978988393147027366476497219966045820021690409250390108559674691749039266571668346341588050748635943965041387288348383490173910617265760600949144913366609656061223208759149500624131275055378308185954052899280008272636597264902205967319731059927307314037434096282139117557285556011311875968837077786442958085434962476640542036393626233304065156884023945095812358221340527759813524527117661279657464089364914424198122513122235695451670760077851615287443165324315816180948293510409355589812601252942145840574454301725455015960329185172264398399787199873313400705849792407346216492949082785408517652733158491149079221238341567619800401216609183785964694917706402410508628374622626186384944290796653709269276466155500599143932145478305249016756351303527901864059919951813434717530580732833514592609967215659762244245702912244428677368156199099946778852228379488189388540629191332957706841625699717732797115527604333613124391568452178309683740427252827313437283026367256192275412991235207275564294342062868707904313706010265849797364088456452148300657611309903629549519564756622311044105578400513542891943428792592436534921831171420338225283816800737520994408405013773496240072089421333180962202438005568699656132134585032415891385429644394603381335522581070577637597365837358231730516044428732210300472395315389890713338553464142366014276373579741357728655089221440186474071048639693729076039429167895378148919205432413876804949301888178207555598798408080868575643285695682049151732049954721434591330402693062712207894057084717351721753116489326793194697685064625063112354368877701244682631752869656486306115989006281446232847764282921256941042461177502092993826091262367247401422215574508571243574476063936853336210895923267648501686747423391737473822579964200969396485925995973819731814113756888572756964971662693221380753717841845914096719531423378501416607405144161363457869044584932610471202931825653035449256294412475964150059629041233017786924019282727765528981033533341839962102194555352905711582152216427713046998909776999995094007246563358602098589753745016356716024497536858635702335539043699727588411760252588995812066777576190148922450810518949454054515556553560641032328907679830244021729533247459348903572641351959310643344561252152941142997336416058075304126704649340900039021896440170483759604776524584722625718167167622396962459868934859173651958380714289474438716978666963573001518640194992595181534600626308764589067199768346046421876251357822275981195681770486247968398440853909084620578664218848334883848026609618544689741152539034710459451688153677044709306612834716293259745305461022477048843330289787989329447821139362883097225122534886779717765660790758659140270314943549627172096018248298890222910097583705753103120804446150533193068371660020741706011203659026643878478116037745021547097784251938170602469782736363635414114359490489799337639537035457074195164360427931937166669367488711077901230718901581836955969243627266022534742375981502972999681889406409292702779953426723088583175277170606572587320211237293955451846808401288606355421653394758188194514180728977161233406762388346851358965846635614950673260829156405977503961964343906965288084473751224115444433207545281702029452576452268062223357728074797820143428071285281663569337719555297552664538258032677503809195702689869967539135403245429956775729493119799425414513786032125887669627691463993318642566056289007222838269451002991836570977130471785329620617900235169501947790119397856823172045381419306523750384059828014075361108451329792154168213284423592718809161863540933601289012970389753213167635361609491203854713097661714191279422652121275567459842659196064207947953539420736075804697688636121012204498154458260879921256982529710339572662938757615728153814151810640253469318021268136056495869246129905798792309975508459702125931703296159783685976997560835705158946185030202735545039553200561845645516396687687915433944262449401186039264456503441038477757965420992101668033639640224290929912857839155262504442235115707963413958276287259416011516002788417854040636325278671026221314913105855757843640971581954051324467414373826136401893869399288589495420247410548074853051530355234884184034863704052543433832021671691796061863599998036709975957421689212306040312198231104636381197594695668612568027828560532187589320171057004409323359191882197214726837443217733202883281926020529671901133044257435451310458535016049471125927860145631298180982772568813006914972408436190115008812444458773399454787631441919539157533401984530751641261777452951426118034984146915736204424499395366862459877028574325845993865244179893014972365934314668343955957090305757245678811205797439356245296885943394410063301888411675563029032776436525266523855817301206303699433028769195851693053615569549008443693559462539984423944430978420527816751236602582199142799111040896063695896964540048488871909514313646580667568219986735035727102007028510430897126835553409767597226911653653145910190747949193420020222178056881470195022402542881037583490117461135409264082574335070596456018892247592483347214577342463797832908496550398139223728836465246059441742160072040326995087599662865364596082212324308155936891151917738009823090248550827159093685169133277118389629431111806154479269981980954983228181573050725981113636018916773356548503114577024160867085396174695442014932801149515116879193567911208193770562861723720787780819787281330081338814914970328587135426424366886046631259934468875721195435435928260830115975008035684551489324494872408984758302431729730516346024670803614297990554707791751550837959553759566679356278702108152977076164585477288073698871433725839239429419852130046054694030051215827949619820243801497333317824914836635171783445136877200504360183026220652631151918636880109582915178127993302374757723865393028584899918696512860057682455335175076930199541367275637719253581866772264413337801767474497731017645695445143395870176025175841832702526135468209938998557353968558485356342341765935408926451045646580552422770383812173359203122941179784070177549857433837564254746667833981865006475736318438891366286333794375912512317612676011499610153220005506369091101941641215345680449937018487266430886556711655629433664647554319314587219715970443934340734454480664536930387005263400336312692643771597124940148788562310199472493210628272466920885587909858829076796129981763768667116674949710789834074460596211138678927689912250437345649424444201036891911401774028434082368077793069815056253601376250480994480456232765595544999824998137129988837162762206780397167405952538245934256282408321051260280162372219909210220946396275907018742284823743456812658205371251794501326172313687596841238586074169204219581732813596811563389556873295385620637342192666519856572443217227814292602827568151069280718003815716266335309094869860665374643589897796204023180329567983192142672060429445414170885899036201271383584174660436331027704560656202173554055137880954786076638521534301288760417202641161683134801581513283033822551174208475734353764196047382888853296295677477708075265318906580347065992879150926413056134599162096457667668943925411758553537502660916382634147032376903494781269265029847887904951754880516858123261683563300327562353997656074139247458058961741425401097859556903639853357888994657865583227784861664165588843054761757783901258218569218798652044955097519139078375460211540768706001464424964271411088981207981513225509482890518996302813663952765217464002360417526279251933488743426176860775357264045572029363903376052367490691112243004002562882374407718523437109760787030284154995199123705736583398422749552871509097020278008739152671145523888398729239529673270325966233471992895154014944551613252180744143738066866473257742443924568019686688970049228209011125937774742129474181245270602833121519155337973694050682083713337345167324696245787573022105612467310373582460487237469616107974601031393938360881678820200960125943293881006369637239517679738357634563418948173030044193908790022005274310575149926353996838172023083254354121623946689407206945965223901944204324391021168281991621768612808019628803956155358715527137292451206783092624906121115618300030115643087775551337842506307345976077511964546012573238347886371550289588398189635661529088292424231898596729455605927125991462477048485633559274964544454021627684432642369689679692815200608525567507854221969135300145344488119444017147230335571624337706835616616183443590440258356696850569232931371832868866793049212006107577550854897746617313534174524670024313375854471748630799649055027657454754176127317092593714355088889859352974174856211651940976795391965443901627571315788199128115234530126587765052131134087524316517636772684664537344715082527135976551028436435750721107887487843876964851629348944096023102703363743237761584974997802966126616015838124150887253484061921340816773078405253255063032807404694989546970193805569892956482954343209787012058318640543571883522650788411819903168444418101472718427395219130794705730103061624941953743638895812385396990209561038989872044481853722388078459387794904999469160196983998785005504013347895238267124280514610026592543479053323245699148218914801303663869855619880664739917325447569731018864340628661821525007318788345473342713931954555971621689997210618495353566340984328323857414676285330949296260177482366661898550040571783447808984232736039787152761807711683202723861429560100765115100477845626966346522982850932296637725806165019010759849870313683403017271330682304046252287217211038561238630225502211610216708485728256703528134411615847657298597347193163448001552617766023097643645951098665867056792134414239028374969147108508002912572107213068348833429842812748645955220478865218410865996102606406143285222065913847418970507273250710753812980255034062206651519033960011774021860539967718813882084753965798721782020196105760175589454281813337917672815201770365683959320142365322316194405588699312027697626897900112991881024317945047545430994917663287860078702377258545512046326388175548278709141739496606881324551700957061395286727259616443740216551821517646209253160225452041523225807564016936918182859785395301539882501878888345441199686176222646608132337641731761515401044945982301084171893424622409131961130625687613112306041371730267569068585231276975375272067259340667891091687359303264291214573505742063740029519962029498441396342150722202507288342646561571699854431843805059800925320997912899408123167295640357431628598549977596368818381961923807905968079561921493759233093741819404494252173404902140609494388326232806086719078306831871344101320360219929368951805893640106356035757433836588467965337927609246578332615984388797582135676310932395225642232739385872705311406060501416273857105450658550622654762472775409503006014281216088626990434176014579463424218597137984747826195312487333606001949848468042325283001173259525712172984601656827205403037564158696528198196352033755700267902677648662549340806215061422391353590266271966743829389588349942848305836543109970194046945132546752869999968363057815143494270601426695965140819385417197032491230357477046637754573156574732303331978713116097914497422993441068177977987097063896899047742842996395717985314205807865253753454397405266109108773556039704400801122914030382113139173855813527346902232751963525599240541734802705810970289781855387283348382573369275670803798934400334572303552701760320325073930162427204133748419416874794924522204916389427851177824670811340248420626305633219310284549535341117771055432278502031795442173537247945549736704481203790434542565825037482317238596698401090693134701086414270664177345802893880368810056220265542002384442357972997749092464751488807910994157909352218700922834653145010033917532818062717528365940384813561206259539215448751640007341965323013673514662829501819375455477569759787881494223033230284104218875996061880200371639684463354462113991878663988519413849908349136266315646891084343796079043409306725670460281943698016065712347073887044565365904518831092469929374857890754092892614899895263635325640476885479874577035825350636831976067049653984122777078767108012788676276175154065952553187557275717687822731101518899589243766889383192647161858891659761026937453223048187825435506148031853176683253937692590652349828019532812120575107241786940354391208368669320266349857826526193555198058869142662404634883184506897252587102821709384099735629086182753284972637145368146745161682693560876465696007878841435938831837512603775436222131235882325649874062286326916253475420369818105834851933845151288911445710177103434668873701498327498884757985762654662839032085688989517452962357461525947401425608145865058084362043527627033220109236721200279052756686761769118485283825371358777160872250462910262400842070498878358263160213988639771696679055352337816142144518447230023132647169322869668104759133701621039054022859214180229119081881725776915841013257980862725806990756098413922025435708598753699115025294559184973249338140485892019379408558515838068215788858022152154599830900423850421789290618666659991984042901751887621868969126804228319640446343074528244301864426382438241095072055529415370889802237946584732498543047495641608546748816239844990898824075326627552710259627818028018350491044777268169413968284973413020321245770659996550616211345925792152722716722052409183530244302191422057472843301691906483592854050039924348821771338642236808309166677909167270290962655223433668580042633352003959362616582912357145346827109745658051429192318875905240812417270484344389254355401400527322369393408295063137723961812672988289371434605734117330817550652020774632177663232643692242850483317267803614273921366882612216136605407166685531679212573301778960878326265401504709567304579294895286513853272896304072494857418267880816341767109669939046570154840981539410622726282679280493269385300421316974442690043371718779133132241156450244652034209577596322145215022306914945671606090618540030464072978712986112643547121189615483889633082383636326124608442392937562324168064856315342865807248875149360711485102451321642883598692749726083560906851737617957195735657776650913666106695934100276669667314343012476690819964448609693671228247526464390385887322650071890022348632168517885597056061650374977964917603259682419962486339293620488904540557118662330288939710517305852289677899234845500535016684080998280029799891534250125301497738126378816920543146277817439931349307168194519198793747533518107795568224567387893957002858242105942099445017011343788310303887631816840083938898835360637630275423674061509154424168337575137205515857775406354223815252249756545202176439157220272746069306621829982063514636878977722245691806384225805719077779511139936751366920401321593295182356898898201281540190005912918081804159094450145260117356852219502465096025681293957027743197627215352999370404892468345610978444054713955573740828379719483593729416327803649381379885399570647705863276412173837414110009655109897464640309440399694973477180032139830577606796758821238179408640582916239508275176034085348029897051047684122992434778169684974037521056825429512285949925560970990710955755295894860377859434107079863383541042556814648826161773986785150386405463493235846256750706930933284829770659627730956223783902048533454088990901945766504468877731461447241578570175901044915956447065569451775464973527993009510903456521333675379382472349693291072361891110182796934194912508804409201324348931196000971021360887859246699286163494890367037311563408090066718568459508954598352014202883971939624227134678340501169015998168225509218130148859093294332623910795948406564197012586829174372228283556358681335301466647237014718607455183672145233639253396167398520440713567133787193804790021726236798235184759127137676893370642451663599795032099737588018430629737097774222886743361601591318221140943153631032589826696087086328962467452722901093779614221393391638548252970402294752574556469736232351213055352891574483753403733000601450166974839195169447439116411118583606501410814034681080960556469967144946086190013474051617885839091052803965838619919158757464778610737469585884392889741578353381673194586283428856248791095484604082090058444181015261128305301883713915210236618364888205257300427307858919010106737213496293774496332085287388042625218887528074715657945641671253250588864979955549780578493709181342773107568016798805693491781115588409010666796008532940663328982716516772958276532023679033979411723551365095974717287351997330759225974656860635855994120373715263383425560861031492754083071277841673809251726992734959159844424366116999425170585717490371795254216675560840537089962844443169081452193872686137076831143455547493414785979547127854502303473811859466308777417726547359597488959861971012632732053891849948585274434116763485533197142966127848867434977157335168957004876005119080207602192658101478852422943843820037503338122119445513732944002254610446596748804782455550459372912262849251001732589323531732527615312866842826720057083485002654072324582401750349356906416404368161645944301811617506617142845572398554594129235277468078875610716146496918682622341504979852395997246223223885116680632249716513324719634776467187384150839461171818840526964294012280032886840201955651186636984260533209208850394389915933243897230941112889800690327274977417480697756538683610598201554003348540019403928831847593570804583993881578750322828042378285615580136819715624512219313387816786208730063992962082886750797469798111801647858366142001163151661717023096172698285532459671438963474561999499016694966173881705069899556964269646954190756545031927784710864871249253151443743236972798992823901902814515589978186074983973554963088668368924971354701912795209177943412732645664305736177430797093395992275877563696076587050102196076234696008472046520192328710651175684628448019073425666013852301631187727835485828184042444804986505184599568547502428094638906490296964378042686446983506257828834465009849275900213782399268637198052100515408610252030096835083242288738605591048839348287038467909329773831651508750988008122883942340245556932167382761503970272062292450994850480038170986871224942251570491381274943109149726364490513475382057894429749544098329528694199591312686372946636050225894947151769666224470819030304368683786177830985010608289155303763739425394182308168594430011805721465734175834074359965667662767185965263079283696875908468069773356242387765497877723388614429996367123810309576916324393233136749806953782141855460896496993336144129563336387250970084160705093655352547948889204670542079262033063453989605548018638224492233894562859955581562149937535303088737966662618089530308444794926875756328963381320517533997868531950858278699659221458713150590132296656805900749645682385140493983164054460545769098073107225910607351837940714501860163381731066588670207324121146394812264158955679092987369294611470353257555221760212707693350258336887844891318595687039207182999335198327883895292214742122270016734817583084301139081396563902835484330144965966754442712090555794435655167946963970159896560802283047921313921465222052941262465701321957976187304079747044897827755331026740166347692922298410354103734216844096893435219050101572141312941105878600170312240616538575281573108082673679536881170115855137496357606305331654437235888201912478015119340046934812918137320718604173394183510945308177394637529934885480588480121116924486204181125991900513535466946829516104094530929665366064401002261225589646570112121173967289364458370102425386880371816088858956249759097008162310524617683619078039482839085583340969849989793455395618781787371333668788309803479278476830582718287349763650779025840148965587098680093742667519746693258085833581728256520915750144082238643974978343640807716336897915601359401175077496449581005084155861401586046722497391057104621093667345017414162454537569214562094467698810328658295537614188797473343100436662791515755588248330814223359047462738264565401243542997010992452628696184535529950446781330848544788600106856841346890054815834921996994926698500154711482358032420601736553934403238565953369197555328455119959919982673187205420217514211318443382336009376849023356744610638926461882262578087122166599115084635418699080421055773551927841298761450843163729022269165995990832325106977427584720719496729477725898799776205795826941802935268015078223522706683489132769974570186579052237347577566683536159565801333202538375293008306839290814107415414131337641336666073321211478899371608703588901447470046952581044655319300658376183635412177601779785129991810033373206728580142691640233194501845098100909380853172247844500043294405313938791336190828201717087192445221537193799058193723803440980110945154847786679243113828154941905605739522436311115986953583345428243260379481635615826327660514253422368167861371764858127695368193194380176135187583480671851233557202678365937529523298962322861276649005291745704686308766258329473885645615528606683353366296538345848745509954945971235486470221823679492358366897406503747308538126070990624144668177860964797145582373412268005089511188735021638314848195070977686097998665112098814447540376263819035607585143882909115455312114957937788757563631182971896836227135662332952441967377497447258535892387196677796129380764992609693184925704356366049603100909698510488148141479763817167555214000930165993835398695824989958031952251764854467417550318216651846069487649518755757682646229958665733651753842225491838271002531444239265093413469649560265096201108440730006162494481948958520236157614844838614684671887981478280745527012781371882307582422238380936975993199958530473038089245879678234884519798459781314253634675981152792717071459178286097511400110663283529444799900226738806168651356278562338102832899814204784563213059079707867213199544507526564437664512039468728126693375611224869777278597403059825397520351252956497527377991131692488674815861247430550543951292030155239023938711772453643781417768433719290739809218927651089822381155030077560139738042583333438601530784072617773054166001577109137810260643908405719024308715021258015890013726177608468844640458809031937711459667221285400693211641425477398570790058059814233251134868072449820425219004737151685413897768746694346793637020936793453874297788297988623907738467772756942842159075772061800294565393278959746125124236705217122901176815090391032355391518452536137498741501933283160904354140485028657532415445051467191676085328003679191188294047466237455157079499691392325205717591329064247748916284905630919719581049586730305537174747778496517776572560007414014036694273721677436498496163195863923559042750431621513080622396507903039955797844175673708621213318954454329885987889182696935321063644248053001607793971341671600145461679793053661023745576451842801877815985337611778342722287232562863092905029483600336488650995493444693784915412206431928956561625270492923099578929107724144498136267784008693254633967623534645739393308310432345860568479944445079931787936464733065869549227215997860548277215584360666177050153496669890315928714450689269896751153138286216703851645294448059924976178529685267367733696274726384504865003450173373934313986439015950547157145857816239940740043552335242338479179908188600647288731194772262104456533014429213062222519722914951802912109365749156767763576871491177654613613623210090534219128517862451198572379960577810977496840945809219793114147423183427662165114060608246305277349486749219053114034752814410546787360641495385808333812923427264728463482302522264285943285789697253200854607832489142534901459351625645827940690297915736680573812182180937229634921334298034412428393631284578518187271014755122621259189737413186657024531873930343676758311723189619130322053040319903427933549349359282661796995355920366975882519419680668919817849906315349121190927482070988510341923332899189816760561169749133803969469564527414521242981914904695420839362239889734050438164284306648420344351725727582772797034087972830509825088338870607533398963025906291834403858271209924122355458093355775234410815454733853641963968903065216046464230329426393898846890457445070932217450912096950420591244662277342826668692221378971568923629392402775234940165573572273280382595932525950229781815090713822611138100475967591691530111858502283203384910229875001834244677269063026577853738321287274107237342772077559141279338148173532143673369352174068853532033345347059862271211158001484605334458546411223768279839018466064024302034104842649115690803049641912253281153474834863755381324323811135524148425391230558784026254883366422810956499595512675198452614953915998890431324918762164400778896467551274556409292279670617381910652991205537911935108330158026759841693732413115080487590757205533177877164427009330208339218730713695444283995429282734639801674349760307015719698246654367669066596781960315677564245156586409985606830112938994436367450132944625198499859629745041051913819469291506157982765653125625968999801837543338271332584904352713902350722325542776549662455623805001228036187930518566112670631024536467123377484460566827806475505815538924189900983706748156153281427261455825193622650191183921691383846143222566465629525467546943185029830714746348458667490604112914369439806024902368136493544560327125994909096515185216045231370956144314853866812726750507992716747562812495547113419388630754762303773648708318571212064807212695949611549461346016764983768744384201774514939943508476915511066069632212429413586423214263966736894754097389888041942920909752548697771948423981024002072826624794510341461183764294465319319291613635647332075278396165562813787285583256340149346642862905607146768697609660035562027065253214399374813210211306724013615474364902716677028297336990241544754863156494357381185628890880840925379907963421273878471168201841028318373378563028279092484138527454832312269745126389264522187972247250101052864892910375805231553237316100596363062445024259837210922201208367067779851378769680492440451304136276344023462981075592885824004536412220000835128957993603599305794254928351971228128351020336434218537424274820065179378894821688695004014221408914855624913702559433132298492408767210804645392637453775292120529696292767421645224363862400859553694250743604909233951723369438025687741678914409362579980646353984112434510766564783029148324487234216649925156229548294605930988195779617159997623016793952428105207626576035633839966489314775859933126092578452517657218616408735977232456938098909292553445900649042650070558696366682615260228963485827459534424793964613602933712645853520090967468981550132131025038611006298980640452093177828340909695546801585464680978282432194396412091938179496469416095361576271561965777121018700195189776169163420024473206565259165168751659666871104274656840647473269033184522335110236880311179983739815195772459208940142506864686563461008737994420589651883067814003098210129026074508938740269881958674388884207702712296242767868032097270459239966055290580427557667333271974156255905462900148870510453430024639140327476275340619295735720738865047647288666528670831870045874500204802911555358513254789902964592736747597894986108328278620483367474138569532231557197017311958197740955210597910204703570640761504265696848056402176121502281212809887845851310483294228281046055124145887555707738799636510148522602102189023457954243619900310517278294017817899503050664645921430143845935800640656667987783190733777659395647735727937711620611400846638643729124629266322467315008978345931266623643689227159707551231091771725767033237681513288118197989053205279934546840019121723267113334255229358194638524179778541291633633417234523314130694408499129479250059365013605852699696470253884560644142729334545512728322439308487187657083061192489385519719197543759615733073191763357247812817470905913853438182121092158270548644446365650064446455858624249959734033315677735436093122836435682353723452802845303616823993608142047584473185093109740304293493495520758412443972525269334538441417443646819885933595767538389361928310575914677148577200270803184133144025767340278467438772385654265605668505157708360327957792472101829939700934983200895466815457415565341284054083904284454524654772326172339065218328736222776604405429476885749443130694770907004952576364551749940047965281299282736073974468208683941203008529777183524670507387634387669343200352894294023330063941461252428989547559248335493725482168874746763442119455918721612674243165588817514261647104805562857666934602185765284959563646371100348771774253998752715417032298789181072771452265230138930811369054308493955538538803780592071657413016817058741514586842230470582559408995355662609591723287653865346361714342114784389964779409924705678170084340057677081638804376110209556021280065159092718788995277421379505516785118303625107495203123914934335642404686682893984542411770047285575485899471520324042293131488005725715874401828419587783719105367846902333095091059779511952810999741185621158443434909895004089813111407228281012975526882740172067135825230308663338253847747146929307674219172978783576263574564250002590498606924971066042154581260090715816652031083220145274452397335995226648880975724171371535340923148034528791109934340072786386777466799974358481989287824155006874057143527539465291159743008962751887695798887787972387773549781602707031516712937283089065026740195263119227566720598551035897967034636304719591583594527435385866744021249969928720103789228848267484108350155927030370499637158772228946377601994254648475236110101568684944638193445663945477935747623558808802436286814070984492914525273033728880760303947423631774719116301431440399926986159320493627755949807431914229488487063852983102913209528466909317084200971743628134535685995854904993214848047712202304649546844136483829212533946488549683829943976657358421282003988445847671756413458959664152970916353590131195314119561596539052026927261440406218747498947586989363445664746860256480012417826164863189334754565349640480460896692020882601263017039123785222099160807578439309525574778439125267861648627987504511735201636872491988543281180799758726783788427965372826396873085293562659725150693147619419991687417937729184427114239366276157002294412288974102464132620202496175761570128679891190191105434235115038376197562040088496493641275279572661744638625703498681412373460403678119351158008687187290929268154142192085322217679570636132132548095516418046242030972997012557802424505307080521959900989791064534499649436293186962098399010326075898930547398988830402416436636589024227299362075778870090578289072134177064524276808242047768974772434524764049564737590432462347710271701307841417732348991257311647414855225891220857586340741108047225184788968821913013358313755685841291326544551835522466517690286858441520794526027203113525826789791564927981741409393376274543245910168245210474268726678096461122217046108553956103647868835692300439647002539924441921473498420214571144824170429102822898878126648179310565927109715351088168217279469115867872044935204412713412276305610534423095724462479742690300277307223013691283187366541726716312998101743332512882961962083338091064800374708959083945435541964165342010115274977946214076225003297420246414977587880321746840598620014912671717360072184899349541891117946393052372242894000352682806668854064239496857263074743905561894375182202314601726272313715466673646229788023378620356772670532134200834878877236391655938565172723640882634444450766384070820132716611130035459834535218136609797533493573876856471129383678123463684409317083538440757714926919368333479370491018312262864319658465885109382844984733337688260652293143364237626635144234420999063671875896983878369279843229813395691648317642560171251329693865609846557811459303217749301164361138051834258923029927724063718449842933642411750781540399022707432333980090473979262501928396979271251809889003953084072278210305835523666329901331106030222521531305122168940314688326314310778613497771922563258351977466240339855292201289073187649379491427986720967012749032504484630752025041971775018166555624589077311722765798975480497639057998834649162246389101595801861040850915943731415788546056054929558389620818129670595982678805371882495633892973077627087289089522028945828345216645095831959766395478138544015738415393864486657266586479156201166007584840032737263058123682234094077261222459203152573461224386056542236588041829677391533664394774815743112832136751970209342226014143516359965135867191837330001782486806688531696803856097962334673627249231394927095095469350706323594683846821112381880555779429640621880704701889253214615632947669677747627062155856286579769292842970335754340143907948971541543204438066576799277425352259394475499338523626146161442422002611349014498438083281275447564885974568766303961025706271823235841999250093998121531946697225910580412709955903964998249849671276670461938330674974079987561744290032535573793581839897221746286870611659395651460231975889948075770238972801622174145515842346759632425599821838162447422951355646015028545321216993296427559570049722804968455848991126306541526065110565359057469119635091602864624807315955289633499289599297970062221849560462326703453971187040377234358841090353540410385753832756530540485351045528139712934576222366077161301347243880809018272001102836780752774188964949979750730113358284977348350987344992427960201221327251446645302053587332050886462556137927850017301611299563114630369048211667854460646046448911030911203091891869416094227960778720465991750574480691145474737206421350725464666130668674481724757169761642171712871389023604413528644119692329178551521944406380915214345763751635191048585525796500800118500962837467621165953099870472603144994224540477141804679534949401834014865011345268232287113340650530231249082333358200588078158273732849392144344747142224412067235920210234489560882712012874044041561208712556961782301717356902680655925592958910069013903574189460645683892338026425458405686777148198351038906100816186111517923528462908005432967160775721318106746714070735356577842029367165064919041330709717052345356868792219172740124307715342634519084222101458792597030619689414338605058396954900188715270602257952499095387921910169119269815919934417909920260320528749188386458349725820924434438048969565243198234735988783424989553034477304799906927143574350124449504109797109673115059108676021339359320497971688836322258564769946501107720437703573831221758646119091271474973555712563411342032909801779679185412221255989518944751278894553218737811724406300625792668456740908760323482939070410971729943262923340225166142746711752893358771096571184787680733693766406973271813523561168788631639527274164150900135646202057871886276812123815578786884192328406020823173851161175026198279076562209612101822146688994788700560648589194087071280163274763448842823534588595503670266984393892564484869848629053435752310054290745958564295498120628088209457533073296526386146727371860426515224303672723616281916238794011612689057632929383656900199723642025625276317127215728451416906575660778275467469831379105984003665694610926962160347225477530247673522773512125410583911943608431441311244614710446653900991674666676989984864971296394089312761316228764100975253402326009821829207036485456601546031386446209898411270579788868513677551923596249125447536121849850979541813294990929928306273616923109910262670765590047036087884413924192851152305289138124608513279700334676355799281762867816241340812241749215571915099875745602410639630060036436472502850070150486637129557358919412949618321479721623031100375615542810523861981908178038695975304841942606375281627823351065986329876652904916976978061630396509263923610042381698835222619341867908078155870251544040962078239431539761978870437140088768268875551176398325587922485146376673304651377341141828021682613708944983958356225284837447815641482397588974283918810787126212305597942110841449544594014679277761196466926439980821144556659342475266747194017879015358035147815109087810041238704586573634214696982673684994074727153215527381101129938488360312681793284679650051034651790548691053777367920838081475967428152197877528988230567898208040530890871554054888514824188815814274671791342129902598681154868116377590859420527402662709406470410470312369603492281858026379513811838383333092359630569216754266604192650533781375947938538321049310702931255405634850600796012486308644658264639554455469500052907424546098554468211270224920431115271159728037993350381969000271437155221294866291230814978669431092674527147554476677701440056974744349623648692142199465374809482257494346948130946627137995763531654974004202127403606250372019655633039129086099656525381347069770818170257989502647943520905346533619816466768808291159963188428315792734963600842953333507379901578627071034303238170615648417808393032246060014703609407434403697220484220439486898272930175765368445643072101597543023613056722185379087799489655098216543935254023844159361840950320924747758895405443517412036690552725732588829005898457070075740827769049489948118876703412888212212990148765692534601255774928518822451563006168384001698735488690217824710631152814943503250280894005018214284807598791973307716087500575408677237814284245577071189228893837037123729640034052488354492964740877574862947703490866812726710250334900791014173526580808452406158274252565445710686375141091813686202158961026968940194891263562826950714533884633506486646150153945643560861475585441783098041993055411239286065258803596733601468729013664040326705558873929736803031334385233200897313645544477927959097732835309513147545389377580982314510290574274173477786310187970216117068798840052442142932310654109775553104590408034416064488917671830232152190234231959923157775515113116064531691241621466612352425393144952238328161614517228320369900343342103129070631573074310354396062134594885391710114558190960471674774295932488473978105877114524707023522407612020126571048062883773668830792069602024283937821806765564764792079341730152243578744249776051966848541049336875471672821175785512778694679306733970725372412696247245530351206205312516027631055469740440200238077421109738953739414876141174977978009249724442604883431315182839086598639843876241635493918798152466863421066543161177569477169075680302783759337356713542024460987974992983175691121165105189394599819023661244527823175747638655730191106203588351291206825130865803648888112370717759335074313782230351225859108892260262543719928008408187004314541112816845885393590670174936976358221921101439936841008554760196226407819897254613650926743858894486464432919947024369263038509264083228520401997331799031861267375492239767608475142709334748189910516460518079438288866149006177637902112249588521162159912652365026741017139337541993659132064645026128922979489688091889147662114860117252691172328034086965790227678098775933359932391340853206888045195929296544214042351699700797273082624974874781109170914205948253511315784914013062858380108470685416219622841052968297141252638158422658905362599224300023463453731801228574024695305711961873907680496091113705580966035266337374159626042591050717477499050631992372817707548975799060500949833041558033537417740122159113064633548195558955808141274065379628754496234714119149720404315274291136241955222187446234741053552575856677089953821003527492165876897819015542489213421124751621147040063934103999699724907382093166446172938802369838106002564757032498103312721366882797088955379968992915803632428170110678185814589574744392665542290907969341915227472614828056915619364903912046597493116265503355649756914638268854214005663589538918035600567165462121745181392217517064866951513436299996284204688798923331852592864003027212863873160634101870096080262444170014665038023900389355239230299966837118223391698807972628284292113904774682735157563763911793010281861549325570006039389734360782749501797696747012205670913652213234080197866002442077317710595260590823301932898727438648599546314187556195002358251800400245619023288883446011209724725299553351999837842623641200694227820422836050178628823178992474545808531505112072700261899537028835145960267161329039349692598779021369215306205024420912694646370926400173500051657592274474341126210539546694457834297508071447227120882221088167817876003753978357590796396006402782930598975239986331181215022883146028158370205379510509898120331708744566050896034271506878814506129268073580110613692247385515615528765104363106209644982363424815057980426009769354012576040913991900996728267862357643103687663778569460783735194684968866098382145360813884124975178164255030482074057455072273461090301961602637746909655961346049855702399050978501794024401094709674217202877696434879646052854777169204208930356578530422957581421950095866275361324312821425650930364553324450416378716253924496940094628701265802562304631768559336245092265402978006219896239287454123365907606672813362524204870987425760911313286640728042653915132276791748858430526866005925857082219974026917327435261844232836090179477735476610429352212998105318967658841965260420742697627631639887453153567473430120353596324589346822606798494735311055808231873253806294147867090394711195574197950141900425552825795767656081612276067861303893955888297797615325003443255595968835816238745332617105752673754633323819511683810008434471091998301012131439945694804765343944327045107874708442338198468638420658206747592213067895134582270521542622120934515756893297938525703796353156089257175365411619030883779018735858106736697324900267983013608249480670366273793494097247190051372099359413803530250609435504041264678358619408419140577980835256475637835423250422262295738346795079207572291351617373514877669451226233626552481903715273690398135742946268100337717103358997241815293082102004081852373213910169305444653001827312510889206831094377804157648920648268286950434245224255189328007372715221565397992957071957744162851701897263442551311347328808639816141885375236785056596537497103624834052973743061563511407194207188986323712087516446906599099796645977913581731587869660645119487138317730634404595736704864474968566971386196245514658674596693493145182971046483014313831446513030383242667086588363568349828612670615520210112956376521951288147610186512108304624409407236476779751714273692655533847616863681439612289202572620571679091256270325827488116256792360437269907955827504569694504509783553010703321648809310799038574432347327150876642241848177178340060987493111811096433730149655241816575069973470120314644008106818157851273240235755394248223431584540717824598249002833644420451938914134358304826345769486160704690222036570671618475568099720115148489590536750130083970485942298995876495867542407038644897451603943447499751943727785282066731090007980821413603452397688374955773887120086466991573475997126952618420649980835824805122055170550411479726736828329129446045904908247495151246314993223371506446116609872186083382458649683832870674091251859383766792557507186403072401224011300868205370058227314283193780250099515787171297103350330065958437592612344854737027397771813426110983586018610462066402321140371667362044330647683218602026646025900009479685454270764235233638603287771242748386559329279076506468049161094956141999918009815239547318959588592295475188089434140506090465564334815714759710841469493165252041981245932419822455409980055239795976857295261586223903386217403365778938613770893780597425867107790371630940437275946870003189569827169401156402911950600259256036909972354382704554712251917556032275490025115020425664888268854966510111797836846819250530614544892257811919582209952877438652735311571428747349295674181251027389378321350901982964689599558483515195654566178908412526291137014543388558367673830278977619036756053741272853125496146476591413364809207577498813134704446184747178116218004711456622273144374608836016160253934962816299052975756057140437411696831952479008995363201384968751808667685281613514129382980726455778781276985835351124802033596694855793162789895260470382153653470280993024684346100523992910256193637723167961881736523884585341396582142268450650449019896792844004175812143268185212890356320976041982743868748515361902332301539282751645066100938388215090958954767106349782186519908310329646598858813141099092373892166030335211199376361904382667623150037247733035412565274061135985775197800680661366784268171805714320362783458978753821878013451103293895349420827683347985147699619866596340294957659033452351566820424200707789028959306867635820147524044750300703033260772138003212590911109522927748833861805375566667032311963235360850520005433714301012664793937519698958100011407542544223620010840598082344894671465094922938555506075307181564106279676925901723704149817166761629890299578402092333244449522436839098344082383661532740386000949786067605824766177608338462857000142713090365360366203586301833884042300317982552861040958102316698383590233846001761701470720841523459659919042290520191098681452429305580616788703949095902235761032376448449624972363375309892898268519267371990317484272716224518002789338375305444108275886792508879143076312000446142585388490769717044459766757155332905568495622257818843961180455122668993637907064672705396856167976178063413646995431178850829065346507262769601320952488348926202886667065448328208516624989618456853701298877159703709613421561097638013101264443243975325387800415746850810075230338082933255158761269010712032995612975206607670903376895787028973537774474992067903629319429757044222870282089351053643946702181284941215078329693598733615720165355494044120674321186488990554886959686723833656233849102619907358978249983253914360305170301483126614619755625137780784417509988482201597004354698360543852243215982190579119264113733352050798376057219367517119794214661742472454711038829096723842107053444967796855677056491914253566720931140882844836707164266989867017261814564955628513981797393662010192666449776630126794259741931843422998828881234468248712140189675941311125434673400780263363290029119739848033554163117976758602385602321740843516330086935196442343477846610862195628388597631265522030228772446024674929004206710521197476064585740685200022788086105028799663609420561532603995983869429900400888171215537681342536206390723627987489700368158018808586163521628173907117524856374516147190848656295411616818526860168150828805749908361853672690512404331636914784635250721967313530361982428307185247082196460860528889715258418295554240797519611406622565002328178776585058726196632318583679913081571800481605475400216557376383517125763945090814676425692416912604427517522628906003300372786307702407255974735723777111071922806693506011272741637246814783227095291016637568169296246532575984963586476530489271636324399375464598507741133451661560790343182695702051621254791382066850741015990318109493815989214282474531011474767562434056542575061449757661465065826658085589425153160172703857252330306078985782670479064263069835811515516404236296135284782814525568913142531734975861301468846928789561455405630074684212668100379268460301903730061892647805529419491771589325706153123544123709615403588298726526389537872382584942618951324443276833739261976997097579534370086736128657181475877026691609800065045567651342644622848126940603789673300945200267297210634825185097685755434959474139527327120147799456175756143770858369366239771829830984287850661624633979266312626994739527394589385139161371376580926180495848826014538842019557722036264007216809399842972647710820033148569754415645942010533453685487638502726803869879071185673245419542618659785053831479532741958506043617742371553353259103262021494864923137891661202907193666966385083545117374154277906637552115190303908320624514147200532479865297584495516005712421335711939474507034827789916911223825295136279065188469915285616638785439461762096278682486337500186128734366717284181331380641665619007854198981743398652225030040439494696501444538986810859353053709768773410104140763474199887992939262510241048153236954698983760798440112581331326241999558087439984282780701781939392226566213397057802911033464835359275511007511755054698072599976948685611769758697540788739174516617729967591664351206632527715330655340042824089301949739290551126017768194948301653798316908083459002009176451053033668960844250226307685177099294931199545835710755447050757253788388447979303302042883785590055179020514475744238393162696677291439370732952247954859932101443164195839387881401263354788982009991644843716204938846219502227505619957226018297175427290772215500085295364568567571269812344034666311405737782212680498943235225091414429049472391733441881451650654688527147976608736149274440557436457132832301851122594532170560858149900231249439073606151655810540312864615882477829911788390422053721437000219117917517068140664296136697315280086559915184568345997752993603077105786539965875997336423553192794817424240424634572015706781372330516104303723954945973326849790728753963400060530683006670158899323787960552480259337459366112058469651139425255877584973434049664931246765175517865095168222079401443740734362362142426270257040732167383944742715644559031796820869408282325502606410859983578499815361111007447406529253430013787443434635683019614254266540976242539406772109369463503952720185843879672017681946576882598891069276465586194327661329622999012464745841945185384114760185518367498414200709461720439386229695874266285699723463996589678979894866798788456348589244883061701184351374001859090930109461342863999216770012881288761583648414378519508851339832057558146871570903502096224484851163965617138690934065556554630637874913115409896273260529486733115646703451903065226907831859911127637823378972257989287442304936580072597820616555766595830783554540089616997608063765233310866711126283280034722434990459829900813637410131028012024375931958875006415947804138645501350241095237099179233980930938340809740384575277422665449311210682082300882148900787722508607972720544797483986437320639806260337529158058594666569464620893919140924516011596425747380936846533658720113019195855704801122706007015119950912903806022148295665470585976232747604716180377439367842694595897176995253088331019910991558982249307049653226601908245099967184322959582856236116347990747470583134204297773585848102804476120001782353800145392413538695214322104900843001860356800705972142708911949028618097005704872608845627687678687318995792782872107933244886333204207445064392050189282277931326854211908853686327799011575926875270797919739997783291048463440512204800359096064093901799726981827986177968364899350321469411343644949109765437744451347118941129830548481195049270737234697171212814668085896389397929338233363625143188599204103372147520223001710260976171123217542759024249992641061912189361687276574203116401994744479253188765864634526350069856525437917265129721653883745097191734068127788226720653953413703261677386654853853373568756040668591479242783670102234188019979653954657699253663823001750387417049741755934165672235260433745086960949167866563131777213237890979825772608943722966472361027429151854859467018984887532054783671443919535532437565944978376885112538232573197959557235357351991391664710124435057088117658253095549741609980466704463974659144558108808264295498803405631021443921446159543482830299986579764457773388873558960030609854548443855482557874388115054301064240741775547599757196764334040767568367636568864854202596442544383422885951179312389576566742591179919998673437038227305252382429082886767914960586091792587911130392619049362192382609474114776611843067382009614270354013323376803250323629362870022681338960319858945560419111076649062009163086020319255845843487352311248232806342567280576607791487820170422497790743482251334220539093939188868660982565276437471347956458076777131376980037151777521992120280314294842242090911073730273753004526503943855182164366507051817824571359844177629275009496756467028133069976748608548942314409479908507454556423662445825506149058432145621172878239365808164640779343091732704583133845371162246895406343086599771085514217200598147830518256922089003574733009009832925872981235954663643711973879795703540990705351574271238759365689189800371032398691501819659295782396908480103326533418344066956705209713183440108877091733296136735284093924307361787433684710455840165355157841352337605093480132943779897372065550835193610226569409054686463715024115464160482407807981900601386362068462334739267764179410178150157677493622055304311451945871427283903825912739159497968250393348246647346077441074326111603964357833598110258509023209387574297654135826971370734834086707582921414974745819788968895962051417134331738521373023018126437612113140852132072766238726391155239880297079143752123096091515030271206376097502499439025291902519780759620384749600365863620922959028018300596912537576792177229463748060092851203413607359931794775926630487557105144104477975139625318486530554149785604169785943252580599164992419353200525717334194416072495717425957538977180120846642683675252171463283439511052356894519578571542827611411959137412714540890255924941345846181441166557400673958155878221295946608149938543185685170339417414442766417848753768276218045950659730396115626828474957289221746934893777591627888860903066593052856224118772088351333767907673576115608337106309332340033004286363571248571134366567441419171449256843156315611248110933083900659543500894436154150713648855908170885557599508867951312422905218964102022540987593943292215245523072717679921203918521923599391328877849433051601999617749238075718621402926532605436549562261503668522790038199946537436731199260359461721484452938549717436152506944415563921434904173836042911173466627956454162558612449492358513207087791795210998808455408692646971000352606446121456581028724743228027700604701845781689918115066128873004018425331451178375931912330436615863012308429960593631243866289366080476402250192048675534876785414388022839161370897463026059190598524175886556454898036246270707684224143542468760045555078415813784163456204705908109828323432398001904555555858735085141773260314720498904873983785205987276745663913079010379556847235519161469732949944814522916052480978320392573255147057287979294762526477803309835248504186660837711633150748091495332714511459687737193556695892067680008279258608586305747223720040830975118681994348739144647703306550116123433091671810309660507691190474988559824831697193474382833687734835102503755026365570944486558705898106243809285710400599578862936510182221885873261478728468741313381512751444624442622520804297190282315257864537743623251848335230229178836565595919374179237770125502882930783153150605377956765749177972898853442538169835246535814404382136924376621560974516300123157999767457377253737890540817683500773549293997254241583078273229317125049767370854937396297397976370991337208661226088984578964191187844410249708864878359782437978801730579439949816442502107974425109747137209550758813005937321325018415131135724504032373407741751332536196526551471909837040015808440244538487283961866231736017475036206919868601240556440816185189271199106868245999968493202854839912753989753766403476537273320377967875393544768103436436925325860887059299344290686907568461279811529749639227002909140566546054707556451665597785390049960061345772529035912522466586290943116044037824577382577843014064704166004134885480643522601117313436954060878493208841177857422778149117574351597378084161250719061808296212165877809622445988890754116279714168115529480592715828206233255237816769874941054198308109672078173134943530140451532037332013130482706580022331450770511429587494662304799989009085403579294567492079800331008653504638494636638610808220893914403839347351898507641083905354691329770584438794988829290883693993830453771332040445636975474563362655423571819815866433614036625441976056025600795418750298529863472146864984516653164458957765735064096739660846944401976367856480187904913438755275005455261031294973418790958120951512495354377166656733725780809784657113038777605109727578026863278201375098641543987484357374489408877933140059661127881018289269977740255191629894603439523767499515363641297687120241645525171785587138815717474210493214981725429338060562427922079113645399319619961423458385075124398862667482605647866458008663580270444802398567233054402292451155154131201079944069675308270261181400414108195118548173403061417980447730430086129583804742251233536003975754869351544474222476427460393419606528399483617118857073599882037048467380697025130639937112069689795154521898597285749219144137858086042443085945629479991254249399820524961627315778599930377378141131005919061541606323317643552977757733699172211257294838381380604307913668430858542178330351806779079266965134031661268330008835727564937345583898837015025198372307455790971329039127657369533684398470636360250399814093471891400504195043722790704352169350635753745949677589285363955829018232279100303123698589467675924752564506257081415959413500086063765609588808654041613023295867110621949988669798743230436148659037620509455513362418641274057804659003871652524790234196003597979293294652249642361401390652699016177758720393854800894387756457084747818886538348819770756248472587744688793758381750518053246385541383361607826624864084563701147910822435494966716734423210633606668954024438465079091558751106784547769525631334317107952571479693643073991251257093083430490611808032039070455490373812231455618603365598013593438989218449322293403720983291744769136374082701481184031216537946454931275359449347299899769784305104179902205242107561473626807160958476423763417431704570295005297156427551186791039427268706332329463775096668847887758044701913144289091357583338817610422286669942177137443278035869092671512390123802710121986438258136114949156448470418368114431598986885367793702927219750163519761286356124537224633516406115231471508805734326752767564143537523539543775530863101177563789424338147095096367361034369255462885026162751299112902614274990604089009757873059391006140149418349806065046829819152525342331449921375674092086516846291349151314181979953732393592095507071376061863926329644972006899386373984709429563754106884431198791379793434095604857398028358818813686993937169072186252459328575740774860688321806268482673051102404744996230455187863493906869429067342913441009559824834284749053824985266064137949121511295864491959974810069339477959344909741040754510669235777227766722702785336136909704263780019262769993150421808228837017746696840171331146256907280756267282712370828286144886552746528036263007359592806103120525408878152450653407319570276407558082452163901062950183878798310272566447867946503575669403565881036108269958774964192563833478078110639474056226540008236696232930551300304377005792165195806618440693756922127832013807236174683145960049215762640932169231059935518702315105860008733132170569611470372321913265024880706534913621430295302766413550482843070198539335519005134717909287895802295964817870464995287322751297517479206354937533284287247643895034066441982354376205297557130912686016571544129670117314587708760153325604111361705041093694133712374609233345705216220467481005092149389703034111153698326859052201895492063942336057117938477879244782327653101971155075132778463242506890709561698950758278708995350798901769577513287725545262013957605615110727043502501244702241061214582713598301806631626486627866043924514772492171626629522109466173119908925439349527916277611716685896902026040694644819939332090185599384061653907516361509874954365671854246107769710755681825953822144788056877556466150637420765302987433744235682136591177398213826317653836138433094007099695872605259105481117018495998709268031467721110577063019467387348983787213336486420848038146870194501928521911638612847428498214578441048507801837827428871588402329025661299142560056219707621133900019868321049938149761877823842568931196382379516814623055109646753805766222555147967547741603047546738481757692311350591014012698096917757153172264783084924713942522282321932787555979469340530895302764049553820341191801028015206806204812548130708724656125399219112821763446712189376047269412420987451888372980785900751795196582781246890603186880098462222078662589700541407951484180543362685859821242698669546108011170543191646715972982086027134634001552478374593152114293141814073741269212349117545331396817461188961577479642416065144536072899244132978869515582920393853393286142957598576809155730175861968096940074597813300507938895280262758461587351634954604450331984433150506992972219734405168842821257722109260022615891832310290996571628128484356385634824478024174824830024478889818018159709637369442783883683045888726865678449973026667909901827405253734869996230151143899663434024114197171940991654355699315919718743545236158056956197562234897349290514842546183746997151023367068274087836345327843100872910391327529513466535135998281810242023803653807632768016334683177116488010123018487762693759164631700807140634397433786379779768187543596341925183553428300097150982528267782309326145390766659945436087409652197626012405763712368873120073648348267491757620612818129151556473343436566276166213405804851269084840541600437831459656847576253488870461299353919733971084479730575850278933185399141584714248546652085976961841011177519571551674728747643575542211102923101591841371781030309230652917477540591532356313872420896750357250943949913954578296682128361044468667758118312509034282465932374125228635929854783887053387746619923737542172422266421125128031563969960787753101962337627927827385040715473190114496321566176142598117399874072798696408745981308913566604381506710416626010521386158806030956729827243838750914920526002851455949585370681681058784316171961562612126033177128662920560845366319704901888210215528421008521837034061154538523519666616004473852515979749145308255134169521740966336309089218043899008361522090133423045085850178928605353693738211391564216530508997776914230805520939138869611076904962023165011726738654759937111455692004768950272403054278501448669530394168164767519212563906350668556822251569768328924076364567384843187225363306251883629131282765293468012741399871522708095147436075670809938131752167345496244523064103772040012604922190433760970105236034485132224515029486469593031635252503683140904539369017143390842709664248812988140048754560119487849697034146596956867424680308654962613323454557960322557210481822388048003095336123485976820714701747745250596016961997629205363789076352271449304280641317604836172180043928112755259947449091208577872662441442928038641986017125217089874014434979233706059566568481187429568778337951653335279148121602487401097857601549128596035001431631959562774778252865817679039277592970099566495291506490863273997851886177677322027032784257916879664187090811707010353726289784755852101486347585755422287386215882129560295959241298818762311906456487635129017083094016888600030112349666727387331158448746655213817348262008275913113088569153422423678789073183421348937480262543627209422037951685497020255092565060598650386949709774060528898865570060104549910771561170508378793655311665964708817571254680566276228938391252367089930306085761520630380474886658461620770174705196068496160385519753640186654995547816477613388622395582319262313160127709166002112838171882490549219143611080208536890383256911729387612305044803922931458467632276829422930309607794854324210717252394642099665059133014465049298998802367457014022518787425663930007268384716195453803384783416328947408421624257524647722970483851079335849650367982079776236779023909822159342787802784102934618830255363372945123608396891202454949140604019048735367941837518587541165676544441303704542075547484034499850361105984249813772035264455262139601159241770561060886668337183106266681049098441947892741225526633526741669305325808169369892603358915826233585922640494510680749980704754386507231223016536235606616226406415107729968642699577343649204434097221236728364693978678588891387524183988943361716618428572748974761626144564965553047313438191821278361702665319502926762424153944989964227475538070737100850408216976699643186195028692262565087886606882780302633707957546683508008160527597928971766926359597706453530286082666206659072403647960645689263316424571979520316088896755380329800201305120651230234898935159577868332924205564478915162354878619357210275090130206093740431206285589181151346405270497766525743272949205817019252683381767306416282824151449532457861366404547227592367435680430042366784960871978958213740070676966212806326113925802881627246539946471337045222563117171204697303125231959458137152858013618750088722919480864916427837886089943881712207870727564864258054910491202653605207649040417190458554271208235290494355052870478916517569793139980938215206134961819331801510829873799555453533878710409469201560390461118541972756853227760333400256981207480539631965056016712858485184757074415043757807604481620069457555087909656119594279476072312455527473092838909264139899510495438987513649513769808890540777653515997704691939442453804128523396646340514283586997851917060195321677449630721491465314356812822064543790996903829229482945485239820421145771654523867180028299258812015930284796955593246954882390859815746836664046296206655071504010950062184460203329466390782413865646436839121264822122573827020890446036564729626801048164696631192309807773474385518843825370163525570510425184845559795834401115516074866307262703127347084185320867172283227628216330311617386536550568982706021566066904889577584265250636798567096342992224502022552905004672214716031299224177345834261289962111851473925942705296725451268733584967481923857536827360413768999198173596940839906422882203697100686695813337881250006781462487374177040895270198073128629493306431389023835256927469396633302994971433123931127284620009809037975310464370994196109887261015091519520318272226244320537493651450459062989613454650847390428818336268061211981850150310196138548991278122022534334783983178841915372541093524221777935917584354693197719289031664582719375032954147655888660623109001846985406413580341655775419031957713390820069104352026571902216338687821417406824712151509893966496904347722357178521533783132002166701681692501054065353598367166034945645042096007871810520349527213873091114978808091861298525878028769266068149724708211738770605596712420995914713278608865021972702863359394105132854759685667100294881262183233317964930620775942996527530859888554894175830403665121937506798348499162089120479424402410939753202024892201390054491211937431388755347616264715871753791337766382305506033998369828423922739294536310525677707158636387324567035013000538051826820289867890254029375824039072884944718038753069445000082568165560945911948022224608276589961881957263066487518495961189684264610219626327800179772483313672146898431549786543870044312703841058863005883903620336030818073227168790525685250828085007222692730075326574273588256447208034930969714895158955171416110555887670912768167643133381346781047590982987849267676210476454574227033591608184169871648133938700568115838352875395389598471575677267425770547979619133774670057662926150911380829012674051081607590477060932572643923532225590698773176638097956443895407992046909636964043716083311188304824426569623455730016801265579680467233208950415459219225614654162501955535286192796538714873686987773077481315840228206306396188619861852998903375537579503304507545768955383943467159828269004888376654578431028856272146724220179462790966326416742150213032558353148373151714920340634673912596367633888319066659294566229789500852418335739982198535241100980633494494236491369772496157281388958906008501396496085406986235459347224579117426812573356978951454806322847836751488760711872690199255501643337668662836209742577605306566726499777685069830719721268090194011453095504723784857512951214352229062231062052562829444924999924800941221040568383039139217017415538965645289923729163343762858544861682299783042391693203701659100901222732154332518008976138425152747277929072477831132653224074363642496675747581414017097588968321302428966529537194241312890863665564207921728420758225721073409096218045203327091175025110976389085341510397423722807184048129376228547866957471867044853610787179587578286409752209393018802632751992682229392311716880183538404837455731816708731810334245636317580104259331577388508616297028348012400020411635114008125778158084144625216067547304434484904592334322607591940978479164879005395243109751203066304197717756234178347278468287942726735506941181211049927167090160749963733823926702995382665544972702698142278077057518985910295627896379399573607832798388034052693091576699658987465582360430572339418886894339494196395434347297454556415511049557183045881605653844586829036381116555026074295350263004249946505471772681373760442296626160442756831620363035898294919001593532925679189487369068302387839165565272655547944275374957106057134053003580080070727493115819830360966476529153473114167213283300315040893748023431993142906091288635466905333227906091683552195606854292139126410866250110693095427073474194844807670277570850013511466381792688005024752086535223306122117583610435131436767349581844896565066168708393071235838106481029508238964975480788862597605302941446081360776319596866048578005237886287252441117454143671926197499081589372216601739532001702344472667887993777593685024941713185531051237181161994922106109899760356017301152201195673483726280731308745109891029976599562956119561954884813565383206158336662225200616857308052261985333308211905964333296052344460804182662813517863153224786557979950642844257183287215836587067358233241530851762853107701271488320526240490687860705182038897930242007454996514568246739681668627193584897810603541694552044589751671923799340326651420311057214599439920710731690463322200739865786965105999225380259444999920344089712466613775992906069428721975610486310451419521698728548180844527445120105351172771094546649197285316967019761145224909736034394349129182490179430611174232906622624525026757719468702616308982193829374727899522311651133664151841674629557833793386196664788026053232364330078396643729206550824950324387629768649744810279745617436984908211758746335863896972364935032755918259846463811050488951182872562774981918727482936620270602775273973366541087777572272112713843785860840269289213912935279231960435323121850244968486496344335324360361674655437577796471582864749048062573643599492005953836783248017343151586411700897978810172428683515016037063266555246542498694798672887698250119455640803926142363611524763944815417215081485345170126935147660572897498023000896302113283373129296298501462955163213343169609063634724042043187967832762040511231925106890598649195027013268275127415120967128982271962777104861229520497439214394658632281114842781714970164764735233172409922171876006691769845143003527353432781504260015374063083446132861513037946610309894232061813809465250131723417890357723028092403929577702823075481601438362131324242151009386970890596556937877904877792488649455492716651650573947638610613440727019937663144775331905540576752647970764914485661973438116881899451321108724377803653716192834704642079642303863470732226921339211774032847165114243081563913152770151676208237437549630237160417485175471856328152999536250021925900151525336941553280628513939397228711816971871024242060894562311191304882632050448038710104037020452512381102343107678535573208289746850666712032981544152261468192492143991681417969084902322623659789098195224239410524442086973381854416664580141157860102853607316270453883285944042229492966098842530726669342840937777007072232415694906051923270125028259998590971903100574465259617044916369059785278746126738419109938403421106850997034598614441456018025057706681560300162069889519000376278109408751807422977163703852408124367903406132481164688081434179664011434748908046982406623457975611896204303351151793808320937137176277102058869294945491659481185468403333129997378816719535606361384321172616139329468838453659431256813882710181493355051779783614083077553153149293546599935016954433936755741512594226948084805463300817217875234873981046289748258187647941471654146351911462405903851229112960748577083229199149292993419409960227218842099219472282689704516874384621210495904989270771922917589590713183955949733472816645139670474475199553669696227085358045824240439406055242505341659067419577745024399670996865789222821587274746619935695625310334347229208852316625121895013471466115137635795317719621720570741315801394841218452049056258453282037703531826058284969391395122641594824789309976229817408956159746314668647857215800962942528641711086636126581762926689493308389148744380858069397867893400765811665654126552474291202457883745293518407949193926668658550267411732634238242901195007348000614908432185432142989392620229521561176645278150873596584684271715729645739469071082332030230469086332922276587879836937352983631932066534409989163541553482095701973537803403274829752000478443793993084874776171344624410759664836229239629077582671104543108762076882819445185796642138762209874549146050474209504952139064350031927336097123261897599214322363904477071418992305240801029227967376812234180772588600544735035591812023355485779820647242353965222616556524929642270375136531158564527156177269490127906650254547670123626327749204629452838409076156962466942738865078330607669754624344566689871655110735945505569940125163625893781043173728063586549145816988170380449041837402517746831782622261463246346016373494028979790018122161172275566921761191963199126348237518721554641630123879811768463404081063248361707334110433761057053367339378565577729632856872674223879013678376699915359008871228257234322996417406787841280354692183653279418995213674872032713078946229328038950312774460769687441171608095577267801367762728653905276705738992411477038327415132407295388032727562249163585938745783657339760868325446779845093280255633621081381800643208241324301328989466341994957351612526318299543040545123542171326811831361158215672610150901689144350702612167255651203584708336757279832439785844758588525644185466575082705864149955159303133065027168781752036272734280299564916733530914272941359595311808686735107164467110313333925598991936676724294303141648798298436760646557137679160948196602049992442818105497285114227794509010689724753768448340029609762649753709918708283196238657280325434496691724850838495531958849597811359647956534517604542601031773060286973658879253658200080380877517253255210514951176105783527692068978408622720809887302408478923073028173771223644806056891844798488008009239296145281942884476911070754700101769884539360318461216174490342743547950148235452349562847728364838946061295341219350355981732545350707924582413124533182802126055632640145482767701865589395048793344800016001227610958189353235674645814185311489771575563362766867474386546834670549233053514404303219558784417794986618134337282696785367230029605850738209151991029603544217652258296460082034818891744548815113539877494865338749662371019321617710050124514588901153821992650142432913580052622379424254443978502385869529527292619953923068425508377460937955590767699017576385388784313145244487695291359441087015376250118828516964123333161688048047304172010706798613720020173483651644334302232353877222306670649882927111867375025108882208459071366803385451109676183884658907824626382605788070116939969281986825043847281909785184010289735486007868103687965857982797584698177836078712785135978520491680847802971792171256949507341288676009715242710806331388236369031153756586230287963448466415706761585275839597592700945659022260261690952990768058459793059720897548286689586366449217301061682309610610562522649573216941053867329126728473135797815193356136245079139183934081748552988112284643572293265462858985185416353057215299810893014908545787402833359535602822375476801475073191510213253205158650342219179173979148166121931741967714982583863931112440341915426659178675611752188982045094394693603449995695688635933064132952891284501578675268678250314207732191174077369448851388311182580967312973465827927318881454776669541308297037039172155233845427458022547284266861855427238612615182479600291003140493230206389387865447019492084037304239709907159632988532253149735598809707934416423244366426004691550862275366066700575424062427343598340845450907777286702287808769220470238240496026119887504119521468942661745247054427684854145461655190184438997150839256582753267411628097381717378738954392643756741332093535775440759984001700892606159055742835649560175610577371810284059264819919044050196393646963504149832866441599384492805848342180514911784253137975247710286066196412169124360621775797479592035266109379006061232905753769746097446729917351682032507751303367504963225060111317113091055344530337646216216823187263944867111946390062205922638075021890362897022878472394674972726843818976710097496435282401990908710364168979556224212076292830977639947868187066907621226487660403444781042793150884976353567133257028193728624442027620680398117642947485011347424141265157202717634833693213531941180967832625682274761966931174250848170652907962039356602180911698426475231847244414891414957662873593695065777278409064220938479729770203315235984689544198683314118218741433748927651532517258745221495621602384763642772019373191074694629245500298461200928649814893121472992541488386273346108332580097029066547750345003346814498255388545941174006552413137809640546171995152772073314914001240604483406523999075643200006623388373152070583861061270314786888189395673690246585900174481112311585811847064343247283619037867992188948828895020366959125719375164740880353718328216989407431651911134279161753789477474613508671477576559896019642875889232590387066384083561964469886354332711867788372159460018246733230502478428026454328891921784508870362037606931733874327879664934660657117903123366109868545351273828916842901603917431226869817539229236100253149047072527524062905530284012735712934073048615218317358724954752746878844336292285084048357749751110652827423527348601075219552867971963480181268607530135927613455949923255901302089418545507682302774246907662933181183849223809713461091602129154016319538552293264476626658674942868930260788759234596581143787904534460154167334144816966898243640195510862741530761039398045496196971740349001748826205097974758304224956753661994234838980435296296454515785259234286368782564974028243229690838716112922143515391057916285294287160811143392399870118148099618935984183534884842801087509800147080557681630422804530755875238575517497942315809361676089767897045041552492732360950430496536479719504284943781065357893220326856297943354741616918452830051588109289853782263438931612979942559349981217706017970470498053967384584503872500643822771748469949768893157410718044534776004292963777045501058439816449807671775531341447337352578205282117034090875773764347687759539590722113077263200551986723425293959833945670211433170887804461064707030822177125055922464739938613394291126863465187052720214528729996325486205416440388998552206831178567955331201511796761133573080380278877669408210592759114113635501375519325065115350185964214787763332835082053533136132626682864571648676338326169032431669441289201988391277434543280477679837184585958975595151437357600527689329522275463538861396395173505270218696162942496929654919733013691817318729877064903531547105125950665152340491297451898638593594042571926352524699432661664622475703737449736603634437924731977688229612961519301118340588664864763469975976988922469509457892035092469944371581458218105100727235530402435064521819761581020117582933792148622320815951677208928671938831525012043999020961876075568261219714672470190478515439681106933969761957467965323419056426516615737526419421961517800058268711886787353202984670006269554013910594222378509276361866469185132756980001254759987996604589784371014807944249397718918028820629842279198680749774593206541419030562201375202606119349679009889453651418266323896965229325862531580052357940932644644671627829449320991171032813913452965520617804153969965509292882881762906959331514038578967111664115722931182730546454019646650690494846006485266611492680359779497056530312251285493868643463781302895702432607918485365500594555011418921922964513730457361776096345747633868184615128016066040174392016484815424925257718339241277262327913460441094760680270234408806258805217081419800342750446347634450022849887096412062831997496575931779467506806274620688841681061506113731431857685585636271713378562864612787578186763677258400283601713477404502518100248916828970610930244546787334010894744501654157228057887859742975488177437962351974749814510387012635376756500158353427559667337323598031730505415247742740355464183532663988232636031589206652239091485269770165354919267414232787770122491855716175110026556722156180327833147049762190523990352472135825351143682376080297033259621205274991071441493097931848086051893715266022057024460852220919938550152894015121688834838850019638333755715238989814696319222064731312053675526210843650705717710616040872432322015215452732710803707393316263506553228223873016607507378522376897704909676982074861079239678616344891601536490307873979365510702189374427456977802173881329767693148575770407257170482955148989015527522345299289545345439005457602017631223448277383870593739769393262392252808973668878682383952967213321236886457260236614197298484238545631334436359556392385646423724290804434710215341148456095853088958115355333384694979943840713392165657246997490968911229878495280680699468634013001582392701113220492206431001011615124930980068182575051932843053959312792983273467297569117940424998740767553776397178276471701947815018445509050758850381734965883571672933710245201055822324783482527933011022047392599582918017607822784555651136227640884860285050094978579188755079834297161921502999762622696956075621671119967149655739846548973570039464969096684827385082016738567072779352696429557190785420953566335582534695048880368179100982483386790244476946129378850240502022998890707251055340450194496687285930271084306548590979144290576868182341747177485332572121584939169699921884471197541843116382281585023608940116918493624659138903122897205275245973010486985710586471081173398622457508128696880753433608683427084137187581267195995497846521688939294557146722557968666779661270426343456837536276934063703838644704290038477506625323258783474121536051710054960813577419751231515478991580339228839283153539225495715845494564194168576213022716981440907940426531387209450733553731908992886187859374882684089384993729107386311883949754154050197468405129365701468320229329933946982022281253534481715833273848074944634432049248717217808965733540508640760650054104680235130827154807674155599075409864910129644039942279306826861101491099426024555565390581168352199566259508518519123551880385670606510811316694186143253380395035478835513986087687178113276398986828414046113290716037978920448077780370970342862557326133228167288828407294798425159091392983579918917469915144421964754893897556192958842803085087440834933184315269467638789005894747074986174216668866909442328096897481187486891131509205081477449466975294444224659712886100435471184216835422537490335228866498185170664603518751821052390752622843565581417487248581904147400445561325341214316886433438728832643922016260126120447596291731819484291489558734914196042533455533494910340744616348983993606803074063713111747893536149837396023426173876098969627170566637264834188942157657676251646731169461097614052686280002519958511148604458139793596286451644971654688091018202757483848349856392315708439833485115977918123732729038206672274532070637544244562359935494529306087049830301057943697120365123604332649601525611901095317862341695354728121988144785619884465257604984329084011544325133434128963407895894862600479452365706507700555884308392479702128138643279561201550074302870992120591079828416737990051796593708043755052545657242153937148029509847173135021953083897239939298517679627914238330019935092432921655435112607228139780778337579515734080907934210511728260609941690247981937974874679108605718144753622997250124310191757289945355606816442131087289811311299834530449373515627591069300203350138704918292280017454487225676980395870394113316123936825275640975634174894561884821338952445107544303309411393928978838719594125110828743275959031707985740666181366715772915409542047411576129138926239412962215682874107223838170739542632528894569844547506289465769817691624733521600694516562383638743883548818336542833952166851576097631256673881935360229717784835812304338744653729233059983161010475441810945005893618827297717745485542187857125779570745665218890347628711739656606835800897900442703204102090581657013066052612265308830555269414553557083840227190274025780059889453736969790445202105295532384970576808225692894069116725990355567108855475179993434856125668114556195485735654059210399066779381861759329581312870588355324314889181516646454186410573544299836292446469970950514354122928667851366701452840350401108450409092419979614216216996557319027070359960167111983204197987826548883288565919482804092082373570224341843562178730673500759886147606356278752836876035505659844361858421971075456195672119963599265839444445234727146380379444500946204291811542210761031775139290483535530496020369889881901538194905519037948041991862422883097223867411877860993064756099844057455635155025271383656288636545634534891703606243343716379601822672536745589635221653810964829978836834044228236736530857358334368643045177748595377320408258333601854670732709721161231801216745312278081690911104655524516858216930123184458583363345329075368556979249105322480627697062660595610292766014472254125604525086267514501409116131391654539590253505120389523794639632969171436699574178522986236033780206106661567747412294267678829420970312943844440551269157888311807204163546685897640994549951018346538942464779118166799623260101111356328258215546134486745875250597086100035902147804944795219310724559009912994612289239221470935989532226189541142790076528389979753876900471311579731020874512302423116215873357130759032412177692252005528488143253106413926090231347083984892425657121272789955747784958701267575286089406712402910921542648066076244240070298901136937884051221107044728337602588691058138188486984652413417222133344191018758226601402932375481441364287282937529466121988524459710825017784603061280750384189353293851509873883649277863690263206015459838823606268912828454859553597109439857638601111937850883764756189132446912877501747578163135341848156511562267288285867625747133080962629009186829980243780451150894225168268049529636798116831606314519253082159465774328519199101322240990794111689064659858363304088108633494139886700781950470168188206872919362279036073926835127476303024297888062106464738733293324673154828650956767192274766610966451671082238387643279275777503014771133296733390576371356048993057966587091593591092574890100118322792684487169930152796386755107629464492798344873416467858050263974603870833718533423109931623100403496594443947918351668230930577316041365637184162032368772021773122338337712898668072923718135379607542625073385268452397561608882216527387903170316081177326147255527950906805381170844232127646693934226906976555598415635807116147527500724780483790291131030173395017358944293272539252748204179431181767632092000470353360098315203902080689700483493921612265378073450947770197053025579034299019084531257692402760421965211979560697905242611725865856022261788167488029957720889105475039025758615880385821028881872329394618708755614155549241248106077592428005270335570532457014493203582977588697167643794003468245831837791900710624809600312700416869677903595082446058099374479165854027909183510601244656364454399012262505063409200643025414067465500097507210080717930052187279406521900187630520313105108532859893633401785745546848393553454982074408133318547349345544531720188790911069077457312934886917092094913013670510527034448939048920021081412483095729518409408252649216584028933539699953340978410808870765763193721870121662146500840993434798498600932602498835921127393765203652593650964662532277828060620022356814625253158648259700477888652110259860647748275501047998055281655705654114762679792362659793667178341887423579543623657827621923954408518533458381805281026310170229662145412840771936100151226694196991522132183191908234040192882707002197824890084368647983626846503794210091070715817344067705186806974856724181558428241611570054376027956157794541131515287385697716406829260583767815610841311328309365390709080879073393024454544473828836042182631078624695072087653614357572680723747996615778446522316996074922173052216677910804166136563063670128155443778896171295301559896962328335138998795821996396855601663474285308135450492421771505794358654799037077230472393980592880689325143370489386662468365273686591213399720030841403609489416818706409457447814367985175333068584943564248659440075944244404238229764971199882974335407274933013281980235329794383776059772155753567890466369052568512324791478163400062568947395553742201698147663669126871085730477940135689422081437005314063089944930435104887501376870351174981271528052770928567547715276119328281722432738765800900853835840002358453900125025899262460120824563480015282453924357754308583511608298130467926058692806698867339637782056215878180909987031770486397446724352276285637044115728912920172762984474372241790081814747978937403561607234321992424248562062684288201148271067010469620338601145450994242588629986560820930211150336424826338107768034624771629883063415566502271154761776624467798154308989061120541561609362903823723003204060016666757405332594303908050787007842421495721064868374507017691965288836142310196633672561442376870979751465442086047302291836908181869331710528971341946542316155908747142322435503132595735307391973965809547688604989064266993463995878555564455034877814611587015040132539532420912069270859831788631948653228005748946217647672595362115492422380442497848216556503926962681420041116070060582220033551148641804448094437927020863186898065210579577226005849211479574404576633638656398284020063740511271701009511710915922771341883309712857400914130777127488142711557997980481225920465220214502594050902153961259961033984765954357070001527456262206148242675071227230371892857189388016696549058287287401215239778530392447898875586493549991301064514394586169121758100903159219636492182640113003516263920236105384713552105627947434831481570179126458850308387553130921074278685059374758032396929736797157825523360204804368651388644436753304886390244819576981672272602153534690184677954560054746491337136998451713884449948773805291279328369882168674431109720483059937478220671307774908642731415545349198661829741981088173490656181902102826992546256210550508096923808678652640103973651032694769357502531491494309071767884935333968014966537785708613477650940751436046759863554454409587554562605870646363950907666586120821373465018584904430040217883505393335021999858298600648689271948012589921294926984214130178354908290981354375416303488132257567722141462045117884048180561016953310645252743697114032720882403993514452590339151698022424834921052856522405870648133757903950187410203620855025692128805723112380993050862994190445004795702475138982649566874638181016001488367630900847813227890404078010518012043347962011859662387490240849787729811675025536048744215060347756457361974619770011818356141111984407657120389199253024722213204924375357115014976555242693804956342118098145470223917407738672499231700718454029295211493932403898748355961902001721831596723618037508640802581621047058392791652996013968737735034527724893696040581610074526813238462876720956417172453177810514441291496802351451586295564225154115529269717925468697203893488051647148524990243300127582053547007995759555265719283000204685563355865226414881334175913294393387014245812044719779177497081686323027910545723004337103436049770418871467012169389087163130596756306344699227765707804293992551648289402451844173960693586460633854329961099733265258942249175495449125591942434469340988351160200729283883589908474705863230347132820425725559023395551878337119421679173398989596063198068432135970289701138645648465173373657405844252380632937977820621047342878148833843517489850989290019493824658969827642843708090138009352196590792797925769788051845610427424133316012106697667509758704765297452003225620511824145000892766759009373737118494015002763739438018279199825381983258556955489003937572910998887066743078766680980760556071282608104427971591093414317189568395396984404181699130622744632867940503109690139735439681134287182707087173223400422973611931943362480253022548104892891571245230925886886576258013905562485090000317599205076510475695402171268224089593638694049075540507822847674505936554766396312376242142668991829859679931368439026186827411905240939046267357759429788373535972589021061593909927568710308357928982465598549583762838422751571709142422151383675526547428191697490538465969177292567197368909944499013703218965006352676901377136370875868341301124476696452086920126212576614451314182568912339241875365272599427093337461795237459089756732737608927622633936035631738758390704142348312601670077689485351566001823237197808213250854681108789389324993755435222634515743526687813555909050654145869171174358900461006724568844609564014635016737754018690483077352003720378997956484589313456403509860358378146780969520727170426885553275449323811535876698357357488844616003670966114957763218169106036698305331226968178596279668099286138400907507863056810838294005473043958494957332641849068514056356137035027617653908337386949253908363797445524567656221086677766661657950827731102268527827220467741072424838891521531046769979784388820880916308514410785419901065269765427291127464654029884036715917861881770480856266797742143733889586688740849121049163767327288765550660394147819642416635449401801996442820626724275537317316355480466413242552367051901468993416797501558394135725729718237660634532595539758683522491573228541367553151664803870990883872934074914862294185615358483353180115875570753281041689708434036231275281370265133301001598077881482416428748196415596285291719659120568174177723250027304576201465619149177499563642471561988644765201792414512100859999440463798878017775559595900231945389487239251468524702073658553393077803304559754127136836420885375015879675389074184270445685240962634716426587522578818145676170871415434870872010891868685179488758536190075530819342226990653306875877554913308146145363763076021289253556077472382000957450339721475929231757562126862942228457092189015866944129506359926564890848476764086212812234895907926689998516419202895558505983014003993814796244328018993892622464238439186755887480010678842271472081591547523383977706149885050539961248449575347295485210338199863592836616884874750280610515257957326334023042922697931265331729140726651791390784274013654616382892774472041039013288263599866884304794734312724271638592817565565064732599748781922513440557459333746469572732556873124601045490602003971859362466925741824311022176562760658267800256155841241093061480077771037444242209317217988705135971137389533901454583569339163969265712363995870996036776512572119117577752185009868381094894541418233263312890062890650550645582587158806261745664631793362530159202834548640037604590165181493855378161450153118133967255772520032388580987988236371279167504290224268214577612441008081506026933181595098257150467383586507840154031905422338697707590407623972881611695035980062411901227196680974780585128589119745151489782020684849504118754709925333090258522034302235612595390762443466470049928366222535830724456729334945030384859923509068449656550333484030013375435184119148687000276610961371100229225782741093107078805735863074117901424048826781901615246837040613624175701238193307950649602540469032013724092291972299485115944711879864516298158284816466071917695197902438953083940224339463572190056184729614514295660274214003189974931893503941482325536445896421391272189067405322704632573640927035640118783205791534167058632238652721563006007846927525881542021315701021480669553552213314326425427200961701883641109522696813651259303073252177693410331194284921905779874224237524047702124114826525546240697586872310189441891233242951257387793455075869538825277189927810706450163740218641059363344415231846632126977822016989721241893126914011164677492325636147251640421550598289390513585071208283748430185218727305038033184587331133218692709738476707780263411113981220568787917058392910573124295500207081143178137951668426274424156765971398038414937430219622135703807311946257402494656294637319778390884943133635256895703442586123637081844302545653755446591383225000605984445022725596610471360224399508411410158503371373410235220405432693801296989706142589399440920805261495515900374894611539317293095847304527679859616408448792264146224568589848548971992807613034716874177139567073023873077553463023896847442376205578610685470156929917434908218625834775279412949707885236619296940229504243839103714502760931603738222928914110479677357972682168155936066274204083081977427476835939467728565286040217071128542176362281864341978211138886161437472340489635376110851220595171087602397619059648959977652693173738348029558156141144867921858215056825507932576296465089796353104649670588396543657929286675913761165969245143892637040230982589937492220050060294674341568731070230580549482659252053566004976469660247438247877815794201017476018536623746762604025595450658109407265150607211786243098333656439902247691243982249004614639444418764893863115365693736773426656422770946681130538434814542374501611129745756405040089582684657804046032288683099298527654538701182336484392001381410323109694811472858496816328546746769561089857302654416612690679215270947966184687505453858871442441331116037982740798812645227956538047420414733145420641762862299650352275200086487432240055768824884565070849131425221389246029741403792548876383045257177841368769050876625431676643837052394560251494858345297285990905071364344670315891954716350642969968994906835082020578703788140067027479198008784410461519074652336762521651364182866286173793326495582213066933967912643532065654227606990147728305488567959275228535811642333353829217617699199042612582846014196653649948100754967278161549398919975084968234414513386267321335776265466952703765502604217028805372234938360884014294016070087658529401936104149812814103432801953990631515483130728659337307454165677715231104866937667360064773998309527146180028431361337816140637154025435703560534174594445752974956807619802882303796793590142847299585297557151414491919838428506595758377649451736709562223943240340949560690906995708976103979435461798338300028777098795338341031222823728411830007635485714810174667147536747892775713476754918196169452606495108925955689262755349414100206996413743094971123901104729429210882742028455797572430115142764871992468835259896798839040437599620245203459993713130583966632526011170494037355781962438144458465353495116572344010459734349649390575481420094776247244318656524682604963740581865608216610416819954098421504194017516947933435223156279491841951228035700044595508063824280780534826517748218615090802928496865231307718863271215336813581708739942820454863654966436223534654198277099070072312099472937204930655760205226153565139839849803485183829508336352026064753895719337095472896205356621042813906547464637988905582629263337288151501418381642916160678137343791473311019981505034877048604576549993843566817075947766396915940030840061677599989457612262428833586491703023247866041880292263886241511218870865192871948440227578130533576717286040531494551636813339654103166619441917358497496745391806603444559272442268594015517286906009852484124299808444075270791907575548989970546806110665584062117206790075479349008813383868053758955888565857992405566154691479205668513469576994009570474259446603842497309561730112898960574372021874298868571322553566386191729653524575834943959050487653877327125523927467446787929624706515765810554834473308325306737614307294814951214741596383694269111193573653574424277058598078439960273192679961694908360827887363615539588631098946507634956357647079246210642327955599197520918633425773321011606095224478502983778272953062753825976268746806885546345314364669239268733664582283426270420782377230209548735156222887410796100015963086481302083031133714331068764955439730623473207400504579478266784557934909774333590502048188189170796500365295442648862064417550882255507878896133149886826043141567699987286381781900382123317548925339224338815309421874290432455949885679799465262265550290699092913828023895029143087464730088928024958584243722134655902061727244209240637476491663203994787310355445098694205280439285284964641976247767906799858375831574564537708777375060114475848957076399202301799551085281406685559383855324448395557686749508566088952238578944576511384678068769493430652180671259582489217791682711191351160632140420693297292979313003511727548518410594873601278457389060126945974539909460528729496578215597353682209475013541304190837081540919279845901707377932051536844490164476130179447653486989178106043007472150555674692400324836157649611909133817993764169344633419521167992918660290097013945806400161958426279907576102591620604587351770204544353786918793742643818551364270397862377375384313734006166020489454451501174422522543369561826022698533459966400626125142162977950654447699541566271470682129789701480561011441181093180374998770515626483795853272398108598723708409110187287957462076613224789169563334457897769730658646004958680989824139156434072737645679412555860136187609504317920088965139643301196500336342840996932671568263693949818863185047704133156357498086516801487656113062010934848226953895111012248952035123696350871105546419015419130616102025127452304654537771237777216830101784173511136033292626441767748910170423236226783213531386284181335568434602444495858783239581173217185535738300069824988253469820978797278209611097264548155481571709928754778332122080267962492492479430395313987912422390337882786304158838969970737764080817254728407378163354666433398570570823545113607504692346331804570168156675529411235370720022375886255938440528851151203539232899873459405353517964397784940941148682707474810530049448801294796300641468635317392033821981788016495671923078883490631212910558939854349859940225441768783237908227079906628018649444435292716294458582034576242445051613348786431974741695864308339422634833388982467593328008141123232089077905281374253968711247632765889624220745284606780754971777870907965104848079006625601729768786209869166183913164615054967492262854643067310722972512210324268012697762723896228270895569719970854394767448405710543644029611822566635203421272954344773513697737159317547993902944761938656194213736903538828975662098065228576732197322685111301813504014019835046935756019725328121147545935116364463822405207350211976758607414106055440888018539080438166368732875397695472228686278777813697188647609182761341850100427940406533781294807744348681738056624690805977503784220232579123272108266320103866402617268895211130656962172631071243727565176109686210497909339528326114288931474072567498903638125920703490072351629274245781958048838515469696473413261225307600821739861071677983603847002232704541766964830828000923685483334902157263833053669017820060133769545175628072970621664803814804354136224472191926827564114392027362607127473923113717536016153485962393406331198372190291167885472588806183704583320036789868565926039628767579621321043442420346737617981653700349755744641258214141280606896232796753641266680839261069637312027450493388950980113865392159885637175519258356012180336813323060648323240884540250578996304758527477277825847508934941580526976537466396102740175571668678597650657577828078908929616327202476441914160182959894057813683808125359164173247095070082157663680841313004609296012636879622617701459141838606670502163250126293466744386340777834996918048744652907206125848199108005773942148305188808680585015972242676682008666126503244491849407215484592541159768956231142497370965586515763474183125985190665576130250746167408762210006649783074756894062121661244574881275579862802661598274557440483081576667674642287050548248818469220009349480561882428810090427502877858491019293662211796672554024179652827727036699006238891739627537275878949971910677873531623058623815443995609772927209626359329348101769188457466564032113426299783491819807164357220585859830666637951396901421602923265255943694735739747683983644532116119861405799735985720788332938801143776096694603164275628417999376400938636221823065337539817194051223717992987823314643452425458010377181384037733720842988646855124656936862528798056553119991989576347393697048225105006369416105115692374200821639153287548955984877879378771861243283733950154666704104318093363992924845267309136185732971651125975555247564410333538592720635073910537199924740729770884456160793555094255644689947383945744477406602362351463144168887368331961210882760203051765196208264438842404444816003832234697880297262056887090460311907538456609209050883072509359221726266166517295513448524522639506370678858685905834936856045003603609185927591478520566037529833020528199730241352951148677250019639554258608660442902487153704842144260129729626623484761327384171271557518583921048189294785087841166726414647123477945598014438592245722024407291112778351404131398793618555942164399199680887537814378915636890140228992751974540355688571414631401839984544785002695945740915100886018909139374229538754063150448068221427114718375458338436980443264886595325467294405594330661605471375267326692817258548223943880202119361606780973561284501255025859657307282034426487750028779253757264301007610347865792389476994292637980544363088500726414042593347039636991250880746012936055138600052559608598715012103863669380191720312158124947786242969520818232461348309861377223684571373864884660291020080089661574401101890281425079175063875064727059560637001728766807816142027004700014860945892696482118811715325275982546301797608329557904000135827977561835891426295441622881482733781547233421595028631031877350483231232919082863718493357663456317362640835398647654382713669086171647744796723278839044098817523012055020998081622539371783564824548953937800632356720419869049215669826406944766917446494588156749663432083916150584746263403602177197874414516036595651392378560612594673161680470925199786687681949470700652128856051554462634341043874132423662306035302273909015293671118090906536537860419409025968490743598923917270977873908101617154624807449663955413197093810661424135722786319986201362086878287392063270696684223309188638780137957621692581875333695601097889402239435436850036317611220029603013405352690124061821007816602832110603998200598269486350691566739052049337391352226139004833127151386046513083367556701658353751031051748796146718206494384250374645939902242141826342302840143481650693801073272658073579211368236710127127515686093962558336324263263786140405080810772075506843760841868125174674533232232956478705237190548820611866959860565187757602190121998743614851438259477778100391516444005679099398121998312229861872618006479899259799868295138435186592244881011041141773711155768448481940538712449151874437371730401874434143287072988543256123383437364530187541976750738712838023874148701843926654030499350650226041595160719624333160342388982591986599847640710855468762004711537362833102536549181412731148149950963517669650479057014571926053883410936869871501287201972578473772956076725779663326519844586653143960463994269946907034056905884412133937914553596448789155853554991883284227543539108933591256808707973566970337203586760326356676183147741401235530531792475739854027758139125504807749696394489622946639438421319013553280993918183078461799282984320207054998191066126908869275543615667491478745639668556844241746508931502668701498174251524002308237583701232219762717333079638884151620223995171363467057033612627572116805492413003342602245470158082026746062625382731931463253386577572158474135312782751089162780849871198825001178555216991973253331925628742028876830781314933009807533041846998419627286990732767954754497111132468000797651877123057346524952778454524055664820453659375456647607110430047721441579490930895119242865522774653115808272710746719117532882780157285504227064610092600292741024282148610058404798082332429609501629957932818324470662803905605116868785047561376364405091812922463304323551379935196948209645069660724028854738842749721889532397320911776226112260728732257707280098957841431796053066892965127178629631590026097675917952035630518132279176417174380611173746307311601316125503702859745575490117147139102644568371155222593861750168360559747133477881149725478422844677725948649996346962101852434324784414168162367759796508488101903340241031115038145842578979260831107111229499650346933124643640189593260245517290914520312854286090207914101120795547504394829797000445480590073353174781815324933116560743154816831154729646443324862264162967510597204302920557488040744208617411793878073881810637991010860728980717510875804391679533985499055034493209194007412783267998349590462296587747161750711912880914043383043940753488447268192591469580750348105351067649431326162218163957119621212261524188562028060368279584576415656725763288069150845430828180607379403588399676433415126739776101273187711488309405386575191933489390610210143711432541317471268012882725872792358663968057934250036044971204261180949731799265325236311513672988219272596984850182270646001543431302831331655317056139869947208125715904936091950886032893625351283013201087856299642321559860739177017620086314327603276417153599368330386235560206399730616848267724788277535792080021025073316804941369229765771339453504706741207372136992344445070266228826023039490817507496065057832977854729226942783824669048876354272043340755527870141666961647414922179767868888447545295931646154298248295970064049707524146768075782683084024434177422997896516399327171803312977489730742537279556305923400923061596775308014598174165417443813098985060131948229394721619529033704303778467296915026855239488213522471900338018479179779268204746669150722428771821083527531503380037933208111113443803256175823638687810787079615909347434516419417707071102780335693416723084285626785709833614915910923193211653223326209106673085963181620354081448694609907419385824971355651338371021081357852411593583793122601551957332220191384528184478118807919945450279876744334618503760207099215482284818422796211499127614746065027812681791814365374048323250351683691303637376352480527528558907830390137385427423295150131203492299624805158387374224825811701884469547563802347024485954343727695759881833552418597414803785166594048762483482057688444770857513373957989013022065989226960397211497411464904204859614392141112400993934868877163575374734170510181180140690838789569150294004913531515087593793605814822617451184285075570622117379309693152597459988088278572718058433892542456698552259999970605246794516283455125781311582198201576336197950196107042530233165495042220837846302465475119701081926332687869324306222292926833225810805137336723450580627549833850112820846416618616263085524977573374145883910423918374251843415667591754758782464250210496971735866815977718891988841237744830196935144867707988480753754807311772057141220752012733494147737968660624340134195956611453904390143376462818948711898451016018502479241061482425439657783716957341584559234677372161325546974846043510608451969064809895254451566170667600045018219126192292941589851225442232464004775338220659414639195375423737798478643137851152026521896093272896115930574692991916614329433929032046925515009031129963999350760819402834126385230283576146791115501754199978157125180904255170899400048630305483129818795917039652259678678903497169113820208487456253787040172088778052351431617673714954642025261854290392729718192620998949138407895665290984489341712454090511735929042674484556839596901444285130824345299262230070506027701526220755995503344884532527064525303258252001109654584942601047959852845548490731382820628124423892267276337488764285345397785720525856814573914233466656959042650030941935627302434856733933448184657981860769545952755897566727238950095602915345942734831822148807822966351623491208152552074384241130867082778239986285286961715615667817666963670525851823971648013255692998974272710772390124681867520349259814812630023046846001263965213936544172509532471709536457200573613346283209230919483721724243449066344175651338541257254689500195473136369698011726468399138257035506619197903526550303486071931878059346855562734688058119852980043939478212125222133202588339042106037734634264402648141761210556041571061691599505884027577206005813384351538278187747172335103869066545614250204077553149309038252909435253837983529548945953179834480888652951778605863375626486717717826970694249300611206386684308992217549001095810338515828365212966871086786310367470292689005785424426732692104202166205105791641857221059282452682285717759003603345137028693822781346037786510280507794077984422704075159959892753467462197570148215848089023977015516991650474527524413098833927999494716069608332886224076634114387614938085156350560758893489879950965161200434775897654765639039550107906521228001937194616282140009830610800092082559327010104902069051149230731378982948358223581982733148764253786888255651803013878022683744622997591317681817342068529986779909865399351320104905623128075982772502755244589549027949803878704094861047185954858150658344725502420565885532247386085795883121221286122285417484038235896565322006117089199262791742784544402741942717739115507706763922307420413013525321096131515244166365354365850899183429286960949205458689369609355412980533192282306096806111340415087962883160960688155989936022303907864797754361839600830775056901286038701212038547784102523661115174281726273097648030463953240519334329998248405364028834437400685125035236886910781667050957506711770310347699393889733103883352037655085770175754308829844585874377869245670603703017659634597811288606999270267529906635220920989358045758446251652028222353203101761609164426875059239224713797940526660620746707017995806273096498047979714604328248288162332033703522442811162347952819638261580171224773989661608965035503342835659544359303568743579862290645531402098806352328012265797998391085024018563561716464954173681979218523790661686987436050157955420880604915504890929775613560759656267296981914271921513353597614543833669978307823014842206731106665034371598777458968372145928895678853720081094808429963439512117268018845234962359476096041476113752296412182053255182804833642344507004643881299443959105576454298598280762294621009732481673012681146896109428250278674643312597778798509644140620211134880997022774436886878072444755436521384624895434251161052859099503423470753161229854935723714018086986021041865118421903109056465987777531604451471651024237243181148964773786702575927446776467432576097862424296040788192028964647293680132911992851039262107108193284856219037905612674525556330452784287179587585933357733972901260798785381456089882444425846494710842550952232421077813457576284452182882639617970326408333394108732217436003768131550146102428936405451188154265358140598720707529408648408400798552819012816459123710239102485391220406570188470140952595742780955496832368035080273132537564280714190566295658378572749073217053502291728363077838794664060201336328919108866801911904488204969023882675287818223008687744188561525870736715451660619312984764732679387594003312034286877175367884544422866618518162133955677197436848078606933003430646187963149651546642927641522406495519744089596749372086086111966042192882075028240814169852119597721449152827212631363771654874363263440018228669789155239443095998219151422914551800965888115105174629667142182322578130338949979539447460546791613526609527215896946061268081046122201286812762334460160889945956547258309658508289012292471401822039086628052625023834331087058130745167238298629664735369146718517180179146245526247715025009328788244533035793705416281796319798851281304825827570785459109553055184168797938653103663825795812328447373868722062090738790957920742371180404697408682393372197673926531233942118625415489307414005558492136301075360957352720125822508851696522647411235825090660278855542787058446736923465425848415519751281709431249018402452918914427116802735478634720656716999979474136168259706643198821664074304028597885953347304122833429236699661046366662698809605575155977851674315777518592006926234097530211400324860732436071903506514738438912845263023735408790423761845554254822865757121193518781986811292044292803680657929234500852500228434617124636078511821261701672700265233897870298130194953433346216573412803783232870089849197999481537957002416295556596349337198085068475747081484105049209552543971473709059339862095905915740149494752896651854661911415123353504936950527962770539565840888707936491475025304354329349014087960801803456343648093639681613288353045095744262777026051399938186868226829215853195571183412550245383046358570154119624217203985414722183311506547576475965499691430685593807079112056245400205350143105014065485349316290530785732196453925976768740980390368753422521812352780029600602211360834366185055159576668694155955496080653137629026387736014340299941303614580258679712823402200883208954056576478157824215294238757935703538684520427373830049186216552161595839844133125438868809696334257005681798069187284924813851522103248030332765441401455108432359698869864373630794908857416844115592085382560261859074007754868215693256394534760626198690360317172978798560142346270240136097537260503278348869555139610388986746589874053707118208925466797174971964225512956670272971329024087456806890381011988187398822682845880259877349049099487275656537608074448803496878030272782298842040622715074723039849308580530471386247304660924362176626730677487885734317770046329492163927464366989786732087096834705304691328075678725803206508193514920687582484718608835652879439702287306800880032959334383926141952355512133378673685158443077463143783749368810451694125114378220665334622389499650041953175819067468170374071836533745586762726970820970776424215089782993979160846658437920764660596204618802078611961316111999853763460033095131231483885194712855359641436529549898603434205854574467852149023831570765383974735676166216201616040121032461806567114653964994274069143940080364867654058076914397124355538833970722929520961919069184045754541728268324983284033787875441900766077602193506351720567431911840148503640574894921288292620443666026847121916397707907038052452222272696362579759280986738169386151637100558910140476454450503033765708826206525034760378976587190059008750211538929246194123862046896688508291379848760636265215228456043405418241303223091988751271585620511571515582275634781456920809862324816598761312853641228209955159302007177960004851256710829104332119967849002095024987449991587018460223903467680086844180444257238944397189894342156587394375985083515880363339604809000786323610911475629305033141838970967958889098918730949122429945429503475738763383415182689198186614917230621036455716993410991991042482111473221045853447390642248119502813738401266958223741891244486954830109560098832737884599222289530077148298531798762656435573945290131009487908870149950483853115588264524553670968329414064805802129606656906864284919912692336719683369083984582141134174027539405110895469363228955510917673169098899082349745473053883553857700777532347601495388483166045126002407221354573211026772280271717400124353976008807986401519569668627958447916702630761307013524256478621664137695964834519790291782309437555639897710884669683373794489702115130319857285286156335819563748303712546443236924517209571785591757155145437560044521982261530172329583542274139547861018212249304092199120781495131865918237339440116373660116443693559905660413323573148715410518092762623678951303812801267977729607329850119751503449125326665546390512319867033257032897698927899876865431094357911274088113901144871502435812970944674773257995067278096498874110337246251835789020276561517075777653254237476183922116650559900656169400713964438180996091680595792853834964130633141269846674632603263848666850935255119875743115539241861887661138147389519609988756691405934919454345615867041567027882998547081766207979392904356385486148310381444913634558837958356392332381960063912035215699450814085203550650958870996374967124902997381496756303855951417051427912148200704710070363853936709335004050113634830263308097188732909517079986641149217124167712691500734379732907780075827862383705690845078192428155471320958374725337045639055375285843029443425316464971866608925086480403275742043352391837716770580739298561154548339106191877743689720827788035302221971422397874019176983629914446610148630370715629502090435624954925894602919392532251839431721232967074609092903593570706690185081972973647005980164491321744416876836480905689177695776086368861956352801276382660585713086305738786961987744047140319951672977194721405768683042749827285080074533555694185137095711927521513330584113330982275210708819385186617093908484428992548901714599701897141912228506634599299197867351142032051995888754722845142310177340723206361077610880874682206696670467493166001580060141801673532479103651330424662612415451080410464824403488110324806011033894922042196972223405565469105437360475912522153533136453391294334078946302289070608556547010050625116612822210246726319679086264808918825856906905593644047270292235441145033240866481144213692374760545921864022382833488418068225522698394302149914884985438984440078896307574077084263293605554543677619486293740967410494426018711655254280319612974322349377280546587194362082580326407761238071672983000606771503920547885943431050568235797490378567784894464045701500625729509494303795194217333564442058143197019557409115648895327143411020534690477941034388284926688876218653804949074834551408753718093622907371188984597217471743849464797586370536629258520611300843150496189625232086196861388639245130243798455076964075012522693421545891877429802818307189050105035020173482627585803859568053481449083764874421211814561566178890300852056584053792397507588897143663727929433246983130809548843379095234734689444946685693888305233808040387607812889692918142253465887747564667652897601536532138846754051463156563467128591021660476409691799088130036164982572418005870739446571425792353955487864652514926378358019180169186371569911491493627373368582136452989598853566578560072424571267333476690999623536247477180786528680635274121623706701345221879923160162104295522776214421161436633571150005443093400394920916124842299847877570398210022257616814504101660331503988982693011787850274943900452447895862464274766372136313335163962749165637204039901120772917992659489323175192769631271902480298259833710141452465547843668977822241022637226103416013170722885190081555490706906160142355621298040480122183301493024398292293135720813718607503452687285608690254050180534603935320963871348311936420223279724204089705804258479355877423301535193437285624010206220046227614075696543505850514422483207622136060085854861493074249872438232572671119967215587786633493401923807274628635097115004628270399790393179492458718287333545910882696692423929523630577183719373260571579822621100900002738871192952352673167057885041225869906460299279522070626979535793524495459398416725369445873691963768469753624924299574009572940320109934549386406742321590928907354898045589464551949755072988573435697997236601824424053035003385033604558112822945407066001803396465218376400472080806770987953668151263162251748627316138139035521414331456099388168264279465673563448506954176608726202144378428339185391053245973485029849984581803974554101279012107513269709075567784379969680971392818996144643486362050018109125416198490886512783776016744331065683302058383914393313887352004614786917916792010865857957641413518382635919484845980671539741864329714896715518786636407558840368623107354977233507866982405610541074480594731752142166309772989537177477962344859379615663915272321236723877040488187985314593747273228225404531784044761409553573408378516209374456417373346423998890420359338675737907144602482287161824453712356707866657437348142888341715163256451338162456349983504614295497328145480782991241495095388295458424523782635383664807747706611883875998799961274427268133647078957487662575437240545407555069783136799437267022735875071878904501370881171071930423390886806797184438107467757957846000317649731023225910895502998215635630966807163507996071557332612667540465458513382907542222539083128224874076580093463442879350937054391071297449543620824297334510124623847960399117327271123925477481083208997067020769924829308836004400535638856478897377804766678437034026296128782359327466833728496859263484336252907606612243618792390310461869687491441144724237815195035293466745703839296094453704022862130661781133440412027253689497725982928134410636037457292058093693078239423589972321956681429836959579791392919412871983404750619141830375173314114322607118748203546040550366281129218629305279031442716956923245162114889376724701020639237512522870799623786832193646080424547892330690847837333441036619725167169441489382862138326725725889609192959048739150834463636852414621978391076293703411312331848910246304884211422584692555149970548665411621298464025722078799685429050894545583328779930462301285907136594429035795298670888978111407307127160731137005847578962495761535891702794906827639710975654046489943631987295230214470403793596250357832483498984503835985653175975310717173248582141290650754808223775229061451333799655645017623425909103901405928509421778246913625004935478598996242994213524571308397153033873725520674441182150733710632700135464824203289547118948224579706520590415217836202136713936724934462101846268258950621633096289665101728013108908182808013612985418025618850544948946512463208680587499402841617972111960474462923474471350563541226340163693763675598051331154778742295845619571968074647654309851656759468784851281060106130198875563798449285510575828605635813594001964907828672094469525792945504999946239654933034250727374949914997564145868746248198875757661994752740358138890084366834810093496708500715841633385274572686315258357001597788656961082623453826345656628114650034942239531448164026349669050597029729792072420389240912037370800933929777097296800258636374700262877421509678210115314298125684784974519599550185185600075987375826012876173978846752365467942264103967489651119843195181714074313664655542192998789790883370654443431473247718558769361559188276443234292050321830511733947634583538267619056369568230158814406534613810054987788031988507021380734007041024225173380365785551860808626849518458406955346804890370760409810805657073747980282805036979511964377800886695369908081415509821302498846888950341164508934109024669588160167890470458751270577277525328675919205074052876914271997094321667218266296438660294757784973041272908548718797895984457942101214739206690965247156603846700915696025581329942439294990809749951169090887516827072248336734130075634547781684976905617828090637018892558102111494029923085903093193326789251685641435813400186133872813376509664193954539094316961654970544658049504977309469241564522455291032016772681848543583222238568060259242260190346069723380213697305352080420121850255217112135988486466153748060260854599713244780300447537503513018196088011354600004182300625765257207506926288376559871832546780265319689024086182804969547412664443443241706606398792041110009779236678813534457879013024888147921323831034031683968190043825831589914910498085395480589652279126640247915846004176351845504779026334515173951609992113311460619230398075971712030563539057040606505565434096827001381521903096562716391817460731703565570798256440522886596826585753967690207619495313626592380000373222196668470709281614746685426738206207123347771670560881828673857482825562824212252338794128650850004978955135655242821985155920595891627928694558690784939815460428519010146903525521090735124623517212773909599667009632430547238813067651920332205592826116626863818093365945433721475790864350080725793154636909838775236905165840708395918565008836437591448895045235493855645806046379636845099020235183076203058390678313313212642813274747002056493439629762244910462328676908033667737979277463655870108652744852310245472547864569652906275547372865323356839071727855689155690365601792753909043087229835471471161519798654637606572245494069484459434668639605600148271986180820066338840480151510303663755275231939453735786745823864384496850349405833406383536713682220962734377058153466569447021994594994247482284128194897613928487998165022714215796801527126377286180753623023458043804154884440865371357650050661426748775281552327516017336936962002777794666307132180054102135004806086653574042244033413255664312954717506006185740785228999544614140622394457958150287183998097438255737356658914330583140432777877555588617631200158587977373021500637307205985012433570438782782121189058035240403846696433668624235344111478827422926967288986861992248477214491300085686481015920532162152758564391703246553699865551959233264321613353145084347502804715838019529608170562944127854359189021951108203436042167896661615587046266906383950786664967003914251972128160623864007358715391665022352130545414283289619001814273822130163389178630604957368222503458572760404611087162593128722278002589587573984154696364321407444936616803434319630005975817145416859804370652747510019723846564868130655166925400862300172623346920156416198189811238356042410071493305497176447300236576520400215930530437755100808827576556292202085149055745296321007207253845179528083234368318941657279076252762305255080390088969567878245009147529294602804293794895933144086074770432976981561738262729020026585165593111877675321864580699275092823953598943059076102297599393421460416846658547037478474692288842334482846775422243860459612922067133358338410661100237422920750847093396833770379256544810628920566278776582947276570660727363276135393145702401779341847132131683674807359247252050149412036658177922857738916660951232263906805815781776036546791773006278586252294437485638122723902686343142117819661754436290547846192057280335062974499169489120024353873476446331681449445256180922804126886943974042596286377786395684118940304899574636346796679654569455293951027624522732356500416608712659941288715366590726128844714439998367339022353063655925394495280691052616175662525991755748422734244343730761377674861312961196426561430750834565209428691927079040805826290263943634472174880418201062824946671389228916464839731927664230926366260993852999065834129618637865138963166849072041005313804735198978048723643090784580759741678909902025067038504379419830472507457461107592572393526304416639910659097075281105380765026390938972607544933208415046364023009651635186608602978994332837594123384526519684002922345840064666110705868146924280711386147840330465099810534680434665370836972261627169172272329058876479514050755644672775595742650458559885484461040863650100292150268192204830667166765032486210500809936828054616448012476989437694023243114556265530165735950183699450283866282501344444297857355526772963810852064458376297657796750006384906155165258732886996413526770960834331627433984328567334672043772675768746513930741857203432495902348529590282711594784891407467844150927986914643382540136604621294640009950042721216083585420998240371325316187634663528732995213696467777848474089644594558775526901551004241026907745867384835925892419826303008054088050137096485879829218329784474081052903617038904582066573072335603499701621420578968297887621592548583153513328314715776784231780510452331260810561067204267646443311242449150626520912305792097561952030778523516065512224941291084558851657648003042374355570394325718453535254850252031004498693212126819023995481325800887251973800137386741580491746820832336315374782910850927964931683136675843704204682068399046649535036597234026231404805680983064246323229351998061362030852314247687259186777315769862482181054937803279243099915577901535841348251700101524188622524566209267272062110939619974308457959782366564156303371635547287282230374068639262891085995972105597595253867992810025456425803301887776583462850017196296352965644784366753487478074793934060539647502256483225316943202289506151230605405468564217152568955297063640120862467899113083296980438682067826518754910453635976341673320017995602334790588658101492763580350884796471753648751630194588939343943312339575766612543278401080155347472006406387600205328010844325994616144455797452081553365510635697783111901824432316854184545647685629698338862175743152749980116466336268570029539815856339589239776486291554662966691174054370917442948095563250962786684229194402338850868466201885673901505352414202630602590276912038334240358141946465077084305989924467260073256406104805787105474723880241644581272833322942367252980931595741368437702601322132770896654459252954548337848668630559395668235863926166578539366000906163152368211544516787726079913400347619111719844582312165162163851538976925682829080638511632045679413470177028787733267140614955620412044921328602215783975779348381729764792304703799749154880270734457272054420450168606635638670223578311310389540334497135570383111809736796119806296121241378449860690657233037508300865241899979864519345920030535984240061718246777007150413721104353432911877840619114801929586600156518847559170821123456428642505907097557527571507914900283782144760161439888881366523371455444094085168138646608335517444414305370639748375642667082153018623101361378145156136987989159494392371548174480089374353436932004311707364597274445355842362627504348373169442009371957359633727336613454699209182938035991563491144035570960723509918492355658396148575906034161905425877985182613309452482085884278081353826431411669639033958954386685421100567051465081039196352089359744402589777565062202469759739764533885866685082238082274256625025203271791444050803407365965588936222348083863212585362188542232002206283606143598405134816944678083750644258042666555783113751035162423773299385926654847807444197013462214637510767549550646219905188177672462961467786518891281111534419404769890985307674730039447198161747459054930839876278170613783406435521409578017862175358754936404225212397823790279793223072506294761072105084974238746041120441756341129861507752237754838505067765631797654409383749252261999379169982979718156506517486513109716677167580384632012033827307524199138755462160913546530094607097013454022811661823652514051485865438084872462774105027825923112072135739333462330486518908630804771671245557384801679920742071627273672674979246394812747605162897161846167357887977965911575175218624674047142368833123407214324160750871769590206538347115055693006804378097485715583524349138358322790826107331040002537855142159608095294583913228856076774131176175569200728165394614589796413018364736122756176012360715549692642738103274886583874645330434448459906011896246839188590882385505710879310533271037316415313544823122800110657102832058420897591565167735318162436498041861056379706721078137190420444440777785465424149874323132184990444373980649200811337733236867781550523366092198451039948637959825666232591032736280797414781680621130480341032384884364448093955245534286777165594811881833224225428492091724399346047081550428135819398364747311730987217274803115381054532751949335005889839043624473737176729886526909641837844836725729498243160466491304473576050879484205380139526365833766761173597589546063868846277494464921664760495225294073794856862255961498653050290695971188447326924528223008056412246204533594625081112769366050019927354600956265636087596792701418222785761877699456110599174384962479287575549309192068286710393171277311531684969895600492053284923447370779857252434091066126560250542339685046446235075086777473172026331158695804365548856955301259139582569761047591752764944288077807825255052795224441062987467296324557487818250738447604349011012427262426635130599296543898021720143265557803019850943031954168442073967954292152312634500336991984829126978954252079174040795703886365588277190012855126993961766667410443465472946984377571869801855358979596591292526514099428029483027056165199145793700890324558426709216078934984531248194909607310086839780591284862256438325169112567030929049582493095166812898026049025481810081501315379843489530536418090724840298953125678035148655514085756723951833305767255765527778060038972845881997886801376150531496256532794983947981698539464079654114592465826998749621133320613792628033660972356159090738274011337524959086070647252780918272557080295694369992285166816664790351363393191098066768260095771929387511998924482390862174167724298720733723774906674802577346528288138424445917154643183863558243562682951996323985754451919027464823870780499535001732951021392809848396747733940940102522248708409266477606768254009791742383428499722248562905374673183621551107360738173751657444153827862611560087222968694188620647322048801654331041139029599476642620048607326273159379183793975051353304467863443043102317161486563178051597129087216603642276789837462849991619902997607323394692972507198115324233967146451130510685300843311390724203934185813141781421913766309061973698921840682448575895525086962679390813534175748855466640302751990293419918949536118019248731753106950818614963815263894028014024864428633363886988995141483015352100619754256854675523878075121954949859714316611109540360601882875824546646434320027713935075651276877696778758925085925153420262571407489059518324901340424040351227577493617464969065299113007698607861368603752007748221626926197349192591452921154442788821489409044837833699605897434447160192831819984606204161435056031720356605526636055896645674303681699666426680777175753921355148842710601843048792924438476515271459350779704430338270124217192531491540859842501765627335683770542349968590153230846943442520257214974483280860962679688933150189958911331313003963465134159865895946614140157815203782916038358701252095271655715669429152515857459860304779003704673394622818189996211514826718676244349710459605445866291832132805039738074419234936252782182885366801819597112920601149189843073964426298476244111699323412700581108448512400452827315628840469062079384293433478890829906606057571708823801199905946492319684401445362112939621485178451058298872567607098113453944449448263686181405869532611397623367747799598719242317343211897229559732933203591913503496655978405563136126411474654316224061531692178300458970281681952396845360965290853755268441625598984026414249891191166810799612788533204478617714026596368632261444224340680815394842171854741929008962153044697064274472082700715698441856118331301043254299032666657762843178640644742112645760297965531502322214096963478070084773542871112481876932486990362417138414672741139455120301126886554658526369749605174645710389116424728162595995401280580448881960475598550841919223218985829724488131150791282275760037658061672321771102371138043060507791842023388852611035647543544133942832147699697462596130341791129586476027067435177183900360864967373154420797101764038765988337213763686771188463063707635296163981627962942678036288852438489595334239020173023218234709994239920738121472964174295659130047721639772248432428753447937100418313641708279097024193979447757030681236939085823440680544096949094705058068740940636007151585511501871403046002931104264888167431959196055999798792810791944433366760034822317670712298012124679858034717456746752589649269609732882928861769627549168776414809618881996529127276626224912731709829035158690924931257465169053165619920083233323701323819009312241616059131532422280785101289357254860269829296263121617957718641048624523074387772448849122996117649266200035670923558542797951944017340154991236695030478921655456172714755703448195307818798488454442003855913867543818708389937320950550366665146199339527298748872269122141260323024791619079843515054522234350059446927308392793092960099768924806903412925511761772512279567222554838933012987784614888354373461664214801114466038778664785000166964477963019816808259862810314017566163445186549396161649962572048064294593870779769447083469318170604613658678380731454533271266680020350428339667960691614564168613224144191249292911083539618238451397079686504498631886232490714155831968104728738164781205955967677313369476122555997909822046173257702259652442195632141219687524261970292464492622152368501871726944402055930964362945208836250785990854138173672978344830323716518584369561651187053382615294353069291633947052404626139112065067330799526867436861805310174309397113436343857327272123550597170693004430368711870087726055997769504363842869307717960050596844508775386703203151217845689231860363546181151790012732070327772029175366047517668144069795227982450708778605607762554058910605151711794332645464263636328620634785391698133479619172480940287035726803903490514506878065247394394346570120634408894994223063099025061187741616108572948861462288419336308856744864948435078012731154021805010535272795740329563093266549013698016217376455560735875256602868353696821270415073834657648837953803990123477325574765305833544298949944108450315540985288901231099375679126095550508015292524632951445848446998226560991613320183003829599385212741445468606195439626482470051893441820957980164541702441512316386112107059767952114316878457683855371109501160711819825625097328217583648251883738913854509018076025395797020807218184976129490816729567478506273882663553157442874627017484076570922233776146681445453314265590103864733003231761177280860186409760219289330932494330705366371852064909480181114403496737706950543364094764859178263493994926460072253429468830154867540781944409020303307879998891698626438397021322095731349099764899821288351487286355952876926405515691642080743872475004001839928343120922363387384281389045584683905725009887885296247059997398247754799022708091482818820155007598472553682344072963964631712238275964681978159448184178631811789727015002598630144203398615640864394389146985852498355246339728955266006329152134717178388939984441861994093599334417195872049617307781961171633362974348188162240060181601871895900574554825531929780526024730932420512275638156042553013577983717368023794666491361829838644954483096815257408279238833537745827654090194955442309154133139508054938728786169234067353946059388004116648849514583905707938622491197117497270989745971237893090577214571288043754598126065177534292612715729136887679143241850825051737594728108551074177187404003596147725052248933778352350302003046483845654406714055878343054472952481912963349080264896536759005308145295398968932093930841768809235974617647862211147813161846049314973943552325023093935241025205252618327512420735002036943921118662015827532480451157627573058941406077739630810858410855307659377931763726024534091399596176957100489847319410494526138756126902027136581090712168966504494838939782366961969167205740351283444823006532935515266600146854805488324383652875144654935101164253620605790888224547660248703362366794445526445435702626429699985729630014665525459695361424151630346925391839644316387642066273441434132247883199651852051635410917644927223379794932313690920067597348322288779671967527541664215800513195760448979921786846922826599585894672116376988617937182298550968812113758278686941218038349200245296405073539403886705457079097610768819082986008791316491570568755259750918319558689266915939791522964526767832469173054380747404474360268639741811260719291207314508998624623940000931705035013845671883919089558260424723938182491717818173945094349851903708444683997149077090439664673921589283258764947952896486383996437939719808389709734136937359560733540684086984864352903309442536736186209775430447522375066465095434616967445743608811211143695199028432301569439062320814469087105284722707894863536778203131383676491483704531915462841812119681168069453733811499280726015555528025920552683029113722364761254811549914411252933090602877930683330831342183250508725430844511167196492573928413613452553081304776386026368007205272553182081674585731244487219747848547238319504410909601025342023344928929010677542855001651188949454619891953708940449363049945161268327176909247342278459146172683142345906988304088767860518672152227967901875417125510065282362821330338980573949414602177365784293385865312411688927374049080214391897186209675926539468899633097956857421834324676677588887220144491105119894782695116045754587743791763777395151135105126319121174996510793799260268395728085132012828490575388639659259609202247884949051850822256078823179622808136124591242439309784756713532546087532224494262129098109014234861139312074004232341950533388247303901262780330485425829680097779588309471318920556340918916289679428932864627805289280704916338865855144036572255568580649728013029410389456853064171860572380514945829290465715579669660869524570776187318856499073487148186168527277130456150794107775894657491570960012380758671273049603797166423604319822000907477087641440325690632051475949629821443967223881834066335322688479609353575779403483595822658560576865497849521222886621812873414043549682499630211948188230988081886482133856745236651590985710208059260729889475585443071006089949842666742715071726539896040492526418070638660877686055427848120033540962065421830520381926152471719323315291818379669924880198988842105153711117628674465659011979523199600594371063328016226408467005724505136858245426680634697331596481319584363168181345291864064221867862946314010997468025577573947073369746103459745015928597456549254512409748818153746180247326909611225689743511041033708705370941100943319588880614218184428617694042876847963336839719445109603251293245090783039817550384444615297376629195961071297642588059405156381761938877346460115741821925886662435757536954374005634330359513235987352911831897083095014887417988338302995811339187783085482481167549340831798591631748093147781570105534158416178887693081566284158548763104141809935322074787475280853113102960315621478237085433492525633303046275523577872097055250165379074527615624261848469646206407961250717272670960416608389330619043645279440117051197536490218340135276551701466448243493353992358643455584680107808115496968847102295173076043404133876527911815895060475871589833794641771277961348284670089773637599404972642177829220002115420403100646890596780686131917446782836201824143352703289449637999418370117523887849629374498578683169275658436425815288667080314802050390531060717764296163180849800613626882383240460911902451592604980406294826405920706557149377119239320076872335719576648510862927366174416564857754017351705918883381942511533150366336728299364406994702019289806935018476322659967251920832475590972263062860945943306115282605232089527058819739682948697052130654968205288146431853018093906832937612187632582574019915821591920905023199428317344030790043930012081988178322316845801596383035500768952035067274316438685748896859001056566339228938351876401634706742392234953111904553536275209471573961832760234143704936925771606789185327152771230444578948207114836200085872118217621371717357506609806002561837887032864424573774132644535525709821059758461791739233724442122558560129496098710880093359391985195463069527754489305561799167999239721077745865325455949770505716496861214163502097620173067653698928326086347485067757542575242598980716839993973219314083920420385234932331981416482305740757015126675590380612340820481075319435585100050621982979931654778019144719700898021532921851544314007847924500673140305601720897532441204865038705545832853676849276614588257474688351640566260094211870039772379167228385694945949349861655110263950834654728428414206365902118013388624666848186775915605744245128841125690189031349015562137579408189927025932369168579065694240526823831287640434990559790565339654936603384474600758911380002187353145685757721161930982734624724571453354600144195234384678646126900106360602574678009582155019345860568502204225619837301610115164998983143366167332315927491056024966929577366590733529155922287267991182499930080552083449587618232546390451999284504127543494180822748078639686800516000061263519326784158356311896029688038356731707922001347135103407489199621554648091603148873677306689845297522492833116254867397984624955961479032214667253612022364883905374058898676883402247012357943653860291320474239351913063494263445746561756423268422589187659314117388041354621508293398472663932532968731100231297731067249603958083290366510209598406701376012296975557792749513757322010688152092232202714415647664292061088258590493465249630595151297467299846494837612105287146776843197772366419368792556474862175704250361771319815348204485167734262909249981032218472751467812743167144616237623604091345225093308111717457048702249324689447262805393079423084918452893310589355996349363747444910705948721490198821267547131447348319717789526348104170065900305381386289077338836489212716447546848217114291727330470117133074598512548101162745250974534693893377358360260945410945167830030523449842828252667086955436855756886885639235146953761160162919330920026976371059713298285000878440192505456587142522123580148064739910728195323654058268032245221601888327425335628958198951998747594505975345556643741376919743658333516001409135535635744627851010161937472170574749837632418524503108779220878595571238476271774634309649498935780092124188733650912970192913124159964473004896745565865800203971121441961009695082584221899555314767031415711105314116040008226779135185851210919880882199271867436078333205227107282481734192426188896355409807994659316230693594925611398045788771633375818135479149869095168613912998286548443076096977438734624496247080989357230931654664521788109387418385688296834693169975192884270417059273756843418721093626962837957603786766038750842755134498364647982215456306126410036467885793775269397228651993016167301240431899451960654427940310741919324167839640013478590620811183091014833418882049143125095250469310277084504861992331426651177871038609254636647066452795896896863101974486059359526891378375109608922880052783175369218575424518563523376608817920666718892627238428310168198738608928029509721559837520889179429404351641592289191845984866159152911919737705536298030098717021154062037737820018440436153408374451663191414743145083653644176776133555587932303219612035820700393006224445525714027326481742987344746855554764237423602425934799745418095937207017647927200972063963214144300538404292200462160441982133943957857950307711498867917122301980704964243842687817939656886747599162497287124299280656219377652731201811273748279082431406235465363782005421946799074133109605019152671308639040099849863288788629399865002216921537623135087478195263879970372846952885651735297584986129392061877759720038505028884728452545834756199458944234900249753905310109062316407923004737496791607648779029875140633636106296303566211779235813572452453178954402993111032433851097692469782017856685674291265230494932838364010729090077676948458172805158374178271768323855140983361359719549014388421870568350228238592257733124202566121901391447337797385403972096436205088812199997499885698767058746849204159742637689142155526501190725629403658647150195535221234749470930067582338794087440967145821481359338821474814168876909345280214917075963220652999835927382279175256066555024323985362882754434055732473272465276592186327810536001151100717959957850167353637136242763577226879020522018515408928948631082197106694244425790374373808087321353099446760807651218072606466125938435630609826325936135975392762878606961331200186333995449615365026563296079529328466857746501045089793087667938894245332225902051447832691886030153100588834960176524002926346681287899062188617097952637405997704061808133226452354094564338884365517219760427793243502686102623971123111042955344502665725608650443410706674326823482662519611721559647395972926686176717089605693915781602560837702547660401674401034030055112244045599406087864284579912023423043150909807028669697768908351862055094571703924114412369263173495879914937431505685403959536337385032718143905962249783864237718610669637006385396958174514134718197539837890004278105441238743440490898794871267784307516311572092348351684327720292386570665349859197869835161856210613173698840420747448428370781199876670497469262582926503927039764474338437768427057720722377979950498759124457212239388355449829877260173642751054829438017237756435789220175955293296230841094997058529393568916604545815684404948800822120205670801465892019909332002716260204468402173157639462207990958494278062831061463880229536564120220349773105505570238428777506309117435483775511615583894354446799883258492626516275987114064790723711251363458807577865176601494151715337177800476912488137399841776058222445750833470334029237903309282033967614978341092612979467615663604096008935050136761003727700456523125552897580111492217012167339881897540513471754872616165169260919773297424494937565464508385975353749657202359879203254965146498567205570692882448660461624715696572616034361178451765591368072189120753469522639903992089164396728347347052268524588682208759442152804114738670572651383726773102760607749224322011159508904926388245831544850012881950273481160371646207522119920326570272456008566555342167256449136658622061586790090993508639880094308760463191254203885513232253626155431297823752634341170008763991929455539144702500965090661826594455388240358376039567302653337699796367533949407145893107357181396131944300733627311729339712390166869684037693702843770382415294291054320067965378509076394225042132590240404245926154918774906811043571244295477729369885723616426260612584897195129880469720134866549487743869744156667908391619401023654181526563071809340152119341236370295113546104779036820502773336138204978250568984939009254910935032427400388158736580356188672318907474354697182015599556339991744073039313995516677125312659846753413077343206467241714147340266622157858371446329520668115146215076713234146539055826265772179010539629786114518435519084533544289608377759719794565430228993754976580601444260528820932060877793477990654999614098889293234215521764239411932465367714820849995258450940451061081271222643952504630196607462768742305078607970791655374694026440156040521216864533133922941249188767097408487737525969422670605191241453117991631418283178385588577970403497687770836230426480107510242671886868107394766229125007821011644526648295512011675687533899139164010462180799968893554044355386800034701782409800967142433007081504479690424326073386886782629818946285542723863689488118754851303959488032035767518927234830483215848838086160194650991399472020044588812812070136479293119751032929978774153184878462276008273952602974145571671557710277898616977666242450043710561113048902867557367581810367324920951219426289440933356730173234733042197240545004510354815699115394259722379191311510480227317444164723225647420595145753481517398450244216709431742649140328556461337948519638905660151586805040351221380761321321225361020009230077616027292633476140561231518840822876794541186507017691781871621097302475787683740578389718270152549162177197013890482405499758040172231341788896755864474449318892327285632801750308743967799754780223160515975335778298108934762291662819002192437452765636348953109707816918442991004839172281016012812439003102786931239340786822268789215851939376700059867042467498540749367209849684374625342134557545127915236274767200189710629527250430009270764457772801300592081715346302417039477079020945242027754316250960925218455830720572368233041348513657863212690480956435844747565305777390290924185330904419650054177040252459258360531739498604975151993193807646812536909170523236683725003026330558167860230235833047503346629504942252670473822276228063781234067475512782344392639410674716721449150130402778309514153500696002777067593765998741304697579755520838964805879923722357168113451226786734590055890784672610311593227195416360653801043152811135660478489312112856838454850311910696950307007989676386721309408219319866831271373758921283080958562267121251130849684380763973844847551674812480101132933975099552053552311203388134385923669937736552448385581541140898895028629619959564803612472373101250509497697940195874807637562377670415267870943823647261918270278009380269632453053240202371232729662213600282072419612076373541911406320997346791001837353183748963842286917590917307072063844701511875496772549913755018660201101951263403927308740911128055751154832446695919670127899784113370203257721802079176263274870166527148517056294438017474607925437946445237017726821520507473240797490187739611660926996981665630395239896702558134929910371947566012554019647967944494300593314236959420127287229211702126834201694302114053648524525463720536528699053275431041072388089530832167620496347182129771996994751379107125683474476776690861254187113746200787126387989617428937588346714679702796327244199934722824146769431875355283189665705026641199389170069332766917364999589906507182473578610653818031647610393450214045911459584544142938310425039541027882015184338111210659764460438842862848913579509496758688625367901139319598040417149018889540192970117703086263225645770899426660119739204128127451584624076601555460822979891988428949127545741846969401524112924549113877408503260235002003150415712477506805694941603552025809912459931807655143906032776402897360121384607986533010595058167677542262280922028120932327282102297006930635685935708936398168624928207998787642372995033825446253419657901709318930959685773534894678399263608934129639069873649199559705996213994704035451157814896023792114402586163519666037873653105797042287814697502077415740544092061468717297009949498946074763311166629371651185571194138226411029657486345506120703704112439214859102922630103399456939485672327895567075227077387246242867053487997466676621912403551009987898282345140867759085734118902803153075394098289194816117547741281154580602606978606191153176662263999793818500943158361265475782656670725161471754050838515098290860599297214614781610839083881271706566481176676686500445414207767433038546461639324126855878127186193189499024504410371120473449501011020235925619680530850757009086092727943585464266695310281457144375291539637708330138642292222099607961986400595113205000146195247819309667324343512020480049179357012893101344005993004346088404689854697505628217231813697790288664647246092458443837400357875521960733221973355074133177311690428305523846033693343300823652365616650927853420520244308436831471595517778663974615355109687156299866250622549940249895227397174780571651261365418791207856019537163373126697254201973733238052271907720921761124350951661825438944892504361379887036319293112552075774237283612313519836439761872337612901010171566104174343202721271568219612108295020445453704883684373009531945862992161740076533859545382133493095972883046382833643467102696644942639294645405237661985826383062061097161242474012855710224249818712931729370607894829764676058682380844317414995901723924045349232233355506894013844984310120930078352914585833792133419661979742719963836687909121036346542547028934306106906786216145620188173628313674016807638471529913189083260882539724147192796971378945147481509852009996429564230034458135847181201183565357699961869421191741410034623107734261430235499931777174126753630849377317978600223469411856043524953230937449183450057833686800267558078634077524869454084714677304976732984747822355075537398701347307580645876679891838982920276346118339879988195273904272928835282676618559216958764401936271110775058107159643065006145604381725115006031976206457092517962867548080928566650219953208619532749243328187801145787528135354704969080270200464632573952951006355396224609159630938901054438058677229457776786640517196624076440197284440956243295847455053766026752016261939819531458403961466933738136041344130746953677792662880988028388578263432941768149661837136834037521635292097935939069621206682271247208631792741324435113665131536499025443821937212109228246591725386831606466815448891798190348253460186055805837164068521899802096636535906035433367120169369619420254670718886446922476858172922208346787144664677801867763296711407586067002164153144333831775301776129093878668960887210360901373595083854787865335956951278398254517958676879865576286302192342636339083150909216436567592120264007607424954009236773042583646118997284262400759245862539675653401638485655341919219176606899156983728247811429504805778285959227038839113993561169248302039886688442327664001687604382857098433895551026518172914322423916615576772647133918098556713018501197496894488079246015289446459849462310437127167271774522489284210043877050920998195098831498296819488968887421726085778860007980112948408687573387664236454529613262392838954665076152937863754685048433742851832203154501607204086950037166562428730724341290432431705833121761105206569952792049463314828446508982410455731558559778638135282266845046516005681096461961252692031874965360058701689282427101431716872732174713255645219631109190573031926100893981546174027497537042788593940786075256016124662044826538737917206561815933350658031222396954030968173254442979371560569664984295589811994793858911989232082623359427653376051475544757319992048808333841894988420098737022580006990023569669925825433787162654065850401121107953527727060961010389716657209359992332878458922716522810530835355681873358490389378250821993625172110277278313031232292979010841763038244747263669731617322057697039362592371616311861887152423858526254293383520188221373494365458664166410261200427520634041261744738052980591584510843105479062005850626603198357371866643557326392418267902674834616442974564021519984584977444286650792313634437416700656706113085028746901610472962432201565240468190854469506816067048772286397357460466425998910701279423491500182501274532686632016433092913094712064565383581329987968721962699100006582641382066461201976043972638402664356775212339872031739780670573341918572232468844800869380562636237850001326694269465652769986186887363849539202947425262214264848934581064757379606025678078556571298347569449612747244160567933893624493657356510311989800324755861858432726551412082124837636168560171180187555555742254799320195315817939850703486388761218616444671409245372275969784300518047687370322569435714042229037807120306278921276917636779720272108779403620904505140625087818953603005524497632671019922847817087540840613655008983352078740364028939947928304355408911843750819687688578392884826082487475959901864706196292438512180860924028684916471797686045185946521462212088813690438987299194755267999879342347316501448835551997725084014522533975591366219649315827823384276731054058215582179992181043797518682961033289495705463726105425004478119421546771892182661179874171975864919203849320647186820204005352162117520535556782225583933421187817169208076404524883631127546413177877511533294540019698944197058487179725590556282056850772244879076504276439969377290671389559930956666495133287920357962288691762842478598277435536328503193342277296082551093357371184414627356462956812163295888384561987167107491422590019928739182626202779292828105144816814693097214583049995128946306770207212331948273107199022908725538418238164137985395315891792794036151292880280499958130083105228384813583384569213906418444765432347223349314517528495967557717848525902909803110805955017701066871364368685776125565926330652137896296545343265221874463793077521928366414037020165962869731163356776685094176740980342215029645048204820342859489873171727277504406090301701753525235253744253448506141238940530111300214052549984567357745764223450240208845815015863652751505781154495507027204160451219231706182327614359478704016270483483601994468176427078920583820976942815930577221175067082945982916065582153411847411179427936221584245038415421817758113423896211721376795323003142313080301192116729034948839214073386085073851755905727021707751867495028024978619587280910904034278978302723322569526009328313494969567972566327070793764534663268854404792632916238026651746839820901508188941609335633223853395211406204977366756477613960773655523978587620802445082526594484090688058185068917937170100919099363321572593821621757874841527680181894102353684270136961620457527142128571652449892561868983716982908682611469400214769055160377454641505180816615568390364734833864999453232863574847388691279333404649610430753338490591886139085681419842062141169279793612039852503102885288186243904235592823650034743895811552276717371208419365378439082962492321903727502628340448019329856526382680549272519774569423850822605401643409013720748427864274633120299225084165930712488079237485316221734669979666324471590315285454045563273787150133228174658683118518580361978228875638002509662176856050240586302158966781098413589098285481030742797823832406537287837223897553048923874241904505093629352710237282780125145740282082515690686192343035157425035895933698889612746946955931421796495444558957892106515333272670227651821514707296148741463357136588152341178873534334587165973906173893748838980385824561772151564413690668439548539713171474267876260630219016931956150114018104380632506713775676957826004449922628435720664655917838603026884140818156050241676692329605299731173552734025185422470646588292980171273306916769321396254674515690528970608104158764573396063229043241462433448231495530752502013316326032488910919938543746875377765125303326981902939139357720191638952670503019419513564683817916471111198091075438825487204779628335527612558727926643615578115907947106897945587123576303060641504391128735222525829285201775769092900209636946868011814226903383902177195830993479290064845968577582157052856404986918455097215346601927033665210548395972316174150768314265814372070270919542392039172529403345987225259814035452731096597059587777069649719869447971948408573570821142135880341825400079883531505299898624250228806366313907201844884849752626066970336176013779831934047393757058524200259086221190154125028237686226094471481358595043474122151799712163899086151239311804631359705664289019144681312441448228292396515641246053070854900929598665705412748419848745258660946624929647997868826390969602045228246762206588151360615535328087690748771697911921014603926346175406582120441768165129481578853168304216387658595392297506537632095317601405515244689467113152035222771123897932689681242308584285976122099511599053805752073130590620481549091789653324126771174068338902706307590250018577283598071937888221122570523032510739930117367444284833341428115259947909688993549070037951190710515367150945348042708967206281528843800506117717572572043666595425502184959013604040452983041608484319824364189470197370078920669493974628343693666898001394056647186826802766173997570121790723874483952208941429045136513736532471255814765507905150265516148056986826412603010796014279953081551237728394097034670440460783377882386541834529076168808330743343620253161576372330253271965075035489783435422617286942142645021413458276994490533804132655229618651152517380055260679415999824893786564289264545431665432536395780495208542695542358171724645115664325072395402444548918991147989738400569392691055974425889795394818233266776746005886702812181102101203338190579718706117435445752282952628066843223077154356075007003405962614758512365056820977181981577165033046999672948174793425667815034729133067281559742104995285639132521037090174754527887907742761228507718995722874430742694973577045343220423348611791400860241353362284106314591682574192221032952965460873701945967347042891349542027974387629748169877089653395892121004236470715820318004236091211502807355236637580137483753410712929468659119761895369760397429057503403111532054229225732038129931581600378982184267445442214056079533000044515544379831875081984034793589159726509961352384438353620463086146005866433189927124801293339584075413040363779307130686721660003031367954287313349828804372742166828913795745316465000033281200389927175010619738976723549886854760382667273127060763070106745054763970759152756680109401049550732475264856611452757825932518876833858253190959557022176286465907495580161762155161500659406838584648128118013603996199494804585458059665934703092954760411286234437577337440857987036743159649459058969295308994652416411094118613859389111813982487553675428578462472327605214391381799310268679433791788091896730564322075509337137222142427911316575799287283712560161379170150727532259209839314786622200184634782439278899225153784578110418626928135965442167093334948335898860300181310219076044179373387918381771969157563914316731630552159188423399831718270564302120621693742250417895432205661114654355580142387035675775200089491957714230284777084382687853523050339738275069519808707934241222078452412095237738361049912395489335467550282483286893851295830644836044954688619763063679146574845229924525552373620588479114460109709079115493949927849526688670119907820765242992303272767979707182267590537022162517296965119677429417545660103308956538729366504544298158457251836413771571573471542531491252644763793049907954704533783500663092693151037134557878240866198885276452985079785883304663678387549103885410144105072994754344816159391399363371366351415560013064723003791262319157346657712489054337949590606719598130634436534136597560682122685601612618656134475403512271620780878431426828616664295750402711065652488013690096903376753387438357067771000578927858738928771460139938591675193908021899248812045788069267088826290340271797221973484415432190337028969238325600058772764258531344893693997773960157544020113883136531682118526986845577227377831791208343557177754964949035509631707742641953315372089482876317350054100169139353024867105101424112790137547514456511037217044208901220692281235322249963609935896022991335536909551214779529863606255340901468405343574798314734352478524862305244422000136027886548263289332893229996624772714951124868426882513354239911904224037647951584991102750788977785964123132213257845456807169019699927184655273397664046203922678232872783660460854838048007113908741275916118749009515618854848867054577019841519840977074925965048771198335291870344739023412150724542722759480862061486772040742708019256476267811753865849613432287742440093521777356678497777204706165388391458649619757615289218760600088174337344698711924317566184010388004484092011051713118811170418038840129569849833669451807281081487485342059013622711465206883721833028373338950920521771005067020822912295062571534628178964653204899781783252281907260799689012406167873146839906065108050523912116626808120271708196460212127192400943499101651961835726181320849572955202733134609045958324619800562512486286362600965999457779084576420863656545922888667887616179437939799271922536054891467287802562131842382005789253716266056292171273050475819287747996061432082631914213631029161812803722272194053501435809823632203426857404730523929579577678659171301704927243471768802678632263531327225009616902542116538625533992304942366808312484343039762524805188801034943040380813096701605672753404593337210450005098152445700089410507349245715224612953675145763257807235077969679673523443333599833484401539583791703600764890682620929291918636240068775796444216428478192642781615889527668042009523518149225389165649796047566695259195727932003129769567301858036368316966755701728346421427866242408709719578087805159349342989295781138397622874963367129569179816789564340982895037434120224193633696901378845300688642016005097813776386021054390830622208966835782185059764919109859563063342048913072645756075702898236662256701678696402178755437490090532267809117120018470160261042629033669508589171048729260536904966087771748188020248769541857473245514838636239277148542444617215900354758355397364119458288122166491678242715328962496812832013909287739050365131318616092069487477765772284249921576123978788369695295036175148448415406225057911634911318700560028471924593539331901350562722890605340479442214978759883417655126815875062804695132795165958268486865066776704082678327771027693284618888526394518784452539839794519111244488512234750194873064401253267032743635883551458616709166306995306465073406341930372670810791376357087809941183223749093062952592788077733061073736556051226245052021669256906928938242407660288998615994807368757683123277518041166608232525880816616636488572132886027065891363659118169823705072931238268809560775451316451653037552347735480909073856272226766044496369821989817004247796676590070910575653278775059624242250690318879331529317334347743768541461160135200544519450538292992239073674585557377803376811275552033767914972990364468705239231301736481112849489390826909664927265706118711380831293463544716350749488230681855827974325885367940568010203425877109114446467473664268101263134920116817571065168738466285455828014298080987242149434369263321508189141922519025868062117146902868098980953383532814497586934860688579628358200470499018950134147609147964138238567627940617845346192102152115935909184935398937303038533142382476229313073093103207511065767763177333346130102838092993997267916548418424727546976598262584239522380521418622684466591207790298173017421373096236251493051314299204030553430578900798076940863209957887977743396014849059342610263203150939545870218874102584092418319313608047515840185240892801939110118423472174670111325275779697671801761141087887046912938051733312269148534231817261244881970757039916493121429075081921740897070659918721045545371731197209239045855050536664322124193282083112238641783018667525035594619617594933762240946529591130941033637843350042164741770241347750407655752160589763687685595330080377684004063702885518258081831440322066568582833345573883686386905214985650316848576825071505093970177074383402283267520207618112990807101567079374417260492326279731014772439975414351927295812618331411516774518875884360413609234208308635833869791413058632987443542905032076362096904787923841905484146260437897051610265155284738433968717321225560091706109345671076415722933818772102134330045258959427198256722224815955001359694315785654315696289922693978185768306408208176905450894060402491904058168672892422470495051266143459691065475112987706176065909176442459904297273210245749038247249121931300562528119294803582502681864503954577969664192833723967600272274712525062351363336618880893932048437024274477456195139533830678913744314306096687637037666301417191169083267282301106963225507494100648882370688235146726347510580714624939163295625178786618583272574227532313983475490950536187081466014775409096434266771586231808755184143341874147188721339712185152829632010085334151712795529422039413500117991764583293012316037949874978645873530943478542229938621233740202587154315777862311466960108698359967225405614360665427009996265399665197835330915870069846246586808390709402272033175799590770806720982667744932056518113886892600393202121497715840597929224872932882383738503466416494545828241091640241713320061592666953818599761782585000060827842214340619489424181412276710588136643062698322745426132868805944707059490128060654803718276134913577125060312211868003364017462240399522817115690330628683430590173546747171511541111098416242049827792897999439079946573963526218678653840522062013154415123044353178950942673839838018320930648617948721250959456811580902101846273152085771879555778206393623195642067784863102317935071582826405652544080214421166799959200013709395366870712186625782627247688039208569702226632147427003644536952409869376963165377358728881130307929771216718982420666894690287679189027925150832820507299647276291858540712807135688602397231269257353204526483509287053296171132907350056915801212507483179937390299678896491369187949231005502049553672178287921378034556540666727120699487884845119642663068083333247515377913582259797702359973752837252366334891428952021705734253749196230777934391821273564388894890474346019428450540350924981698274366947885858071549497158803056496082338170676714639708886540254293541251452202049049741728939310834018479701175762915486438316218914667258986279035339084817608610633277892943754881058546217439831652165260231934788112595295390540174647069739243156625173715691717761424155033329734537772193851363341416447823703276382299442463940143413306963093149898045077233641051368901522881728831280158149726325161016492677459626851163929231611374050868716672024751438530155777563823076052826137063105363128443433716198333758061512387574921026557387632753806272201665090206396483793525755209168826352041462688667493598812230816219418943934661767211884608294631959081317108355324902925943226508667072458125395073805716493833414159472788899532856537368155476630608794177348521720754257355420721384148540962759201122431828520018863360028952818393704790125779105340196287081330847185442575408943200591783546916218294728113082113738404374363234567045583610603268108660378300573483036780976148032220504063533188151563124639603203594942422595796702985939911801660221308106566383808240051324236703362370066302041251967138205777652669811489274432341934974030403179683014326845661222256632279744158125789817151786065647641048389412291752711564711870786942455724940217172721400316953658524924797911278436725843264826175636668613598287018907965802145580514639908336457376519639851859428397662621069153665634952918207132507234203668394123847481238448079096361003865833189138822305189840147062958140517595878318297452200798747558204252393616540656331239486321524583107934216616292177149513865364094407227508774979542460515370570688869952763952426504072480702790066328550945112385118075211359399902557786216299732638517364176716412213305552500032125560466859066613832799627586480701425541465541512473866964740127064409161406060743260796088974373704924063752815579792042852173066398831902609324945168522779897692283162679849213839337256473923884111184286843816204722804295859411850434630786747984574274786589859445551332976865534280593005414977770015552017752179825324506686375512712864218122947705202713053859101562288763720486459305606287291535039449879858788225694446736146244506635524236648376627301135497180866918423770824539065327844867975159984881408560207995467893424176998499187303706563438638571177007569761324661209384475768958417088602126293610019762580725137274955722170782184063571608080826440163029499775850734802120811797550467378367241282321749640149163594576641893930620626585830741413986252341005257454980972900839235967789030111501072868937122240565857399926893310755605069602538002583899079690523025329337020518261194203008724030655506659856339873946793156309719357626078982571195740574501857338971045025207972535617735102971975758618027228203338187375735750096095136990491670010319188403137879252117797809372447368682837946109769922780854459281154792706412504087079353181016678264662641983801907862932223507925023584813499894763452570905653345613312587116424785891614529607480644679538819625646018066434056987143880542647352888066181350982017610576267039183272286043766614794170915676095692845649201376994058142715544691439286571151523770416808438341558416265736072884356648661888462972216590186666789651093669196677646437139395188137354312856635942488428455941548849060206199657912135948016838272212290809501116057734009562002398884894824088517041085387821591306311663444113236494925761904444159986597760415589791950123623650362898105758119634384302921012242354937530418501973283919566693375303549726712253669047776630152645947808047070676797279010214277450394205179189496615816814012152487951133992290422767367552415477290464753530903410553737469189312621997484285212015643117649110929401585094986451233936604358636361690636425191641957574669371033273599416279579086559623983084438504799848429634224726748475457026247375339321092302212154879968461181557170132092807287038232412078019574568530197934780525959822846323258883941034892026990947456371419235440169925972338852478063704980579619189426893535099759130591509083308931883268390371410546779755203286590883437137120401460830232484110355070441375749435796898487381905324937482070299406280745825328166086633034543677604032241260577248751875792243300220440038787714960797027331747545494605016237232760085949251419502211258322600585136372850031129541017003709699665561887634636188701763122208062389800166622446290273301246430061744736847993731697234580743733548626907087694193007780487102265818828734379365648311417717726563771334858791494868636559295499028309048698875251708300311665032528517340122116556043693955585792571363735514017512104689474784647147170985566327515631958039236100122768515511249041314359196895499750003287423729776710239733980284496689685847009050441292069814426734557369010988796176426239897011688137381900552721918858536410878442491125869820278076487428168458955835932920266551989313435975257330979493688588629803312489723985237131224555249694699952772508304112916827988142605660028729768267173800965330479724936976933833824955831070089327709457107459094449357811337407048723849159891020701891710224259032394220240419845192626864169867248431759921961202577332823965469996625833429014772372517129224571339168670076600957597782289533754563093361126546983172002463679521357003434066819544320333283285297000901054984673588556775486666776818814235329212358270180345504311224505527636293132432633189340169609793540405134627267022270974040363681077355736277941193432395672773355215248207771796219309454539706162231881580081330954558972771590873251287050061882032404328369333010501799985989082278914583330972066154442223712112541520403880144729493467252070082130803484733714251914169753771236339014177850944005272021655794971712596773108400552882939791463970634123225372494615505949740875208630635009862746365815412485234152656482267776523074252518301562373265040380377643545308054129631899498538931835449571544637315405853338199677068722883197271306648936874783952670974961118195579169454532851246930339359274558778542465933774329497738444620314620415822157090968693359164441301482194882422650872219286267260968759386894233661382823709871515779953518896297402564316147478317926245142317289850059960198343126268968335673701297262051593963098044272196388986930082814185904596090333952148505709889973898511052118770230124697092417112955831443285521295389997505785695980303588653797007373818133518453936099098970332500248906380771510047922811955259768678880973992489513312689717878003159977035774636556751361060156841989553448924939919502880455104636299421777533834436145588298033620698619466461476308278766928176253737829431038586338841288496713819182823686861354120123795473591757712929971315163270834439436227677183000390103845106242862602864835184080150769991609923385915026876251171695363551539390223229349045389760035017291256004561024108565467201976381408145885232033229968839855193806925471527752344630270617832044518065477046938661898036233507788424571441600193176774974228072801213971557538894606933152626306943000954446979097394682803326437020783657440570729034391634918218808895248325963044771940637208505767594666570513420650056474704040120141106351308048075975845437684516426911309443489254825572451652458449247906019966373556173970281706583540186239000167863651237593615249101091191579224538363667278313019646315893780033230087202812211202231901757863092046792051503067253141815069777160012356610306912349141233350757557798136634104762636486529889528577222670982476961453348476123911789810303850017998216810458567659002024063635576903299311757358023928283882049280893413370007346542345668984294361097156467849337395429674940252963542244497007713902939785943981561733297416888915849891921058748602796730977997280619021722813486486608350287531701507035969019222071527149853548108292204561298073951031882190238438106662749984234971001568889340255626085537915453620739454850579980652043341238492252403756591393995892147320425225542870281283651529778218888228592268453138382293924155681895699656999631857703461386039114678727795781614477286572009412500368433344457014812021581753861383449839488488116257225057771072799736918040264559498797805168341995164348448124659471925409155936110969047935319045152349797812655702278646072898627877240032563640240643884732911198911689746431275492635061077616695271567655303277487784679068980260859538474473449530947358074505113419088168335570793630429812869017184377795797447536595941815249485628696304096305275416752673783115595829840410784164720155733406796410524231686366565652592001804562809013808275387726601023676570703596915908797738229024475430658047759379487347035852413101327503907960715523988272759037032238370643220767752629993629522751721255122659680708424210448202022973197439670553470296182025047011109442138861442126688697159782299468744007639146042703205616093139971015539006937964318622567167828230171752369153640579987854079651034427906013205304291487610860950783535136682720811910394260743605141936179356105873883590682409600239885992404738951743840089884742783435258121018527734653931585228655247417527048976600433355069145408206259206547086956437124619079959253623021696308793597341129767426796033001209089708916482065908063316636258725518257293036139080746128520624331740865838990533491962449023807962365768873025255133787531006518976270472210673385013780920870361617761165023912953541910461731234037005383908656447601184465683825669329115505136522205702460573206899885870259224449392337157657516168648754155715418084278768015960821235053149159085249873670970270640875150623786954739891371883070015947777098325142068508079813675168058480486761984837100215845733070031785020987655943213285794027771549058762705967507824819364679937427803398259464979554677407346971239346681604802727665831493735191139340138497095780591868088238564922143920295185399194166559696136718113956708236260661875750991147176564902244301917934453187672362366079061330306693430162403333078173073710343572841186805299969177730850186311486553352661784590293661257613577948316941631118815183624492999197694918376752361018812779326581631674954806630525218880717988165747258521350404741971327538546433390304705712264294816689158846229755028838574024270887086675525690948621241990899281263279062746438049964050748891923268659075701967279976569075927904494030565730141729891054986111205422211115618405243170177410320924889375426551944340205204287260947910396312082811573134706839683395548018825973786119500273028728437383398821871781944057431239594998154824708245344247454430372373246883337652126897514130554498810580077700174854561984742114370318278357449336599508623455584227116501665637123337723771467647989262055112101257813060073557732021666814006432780210340197796700228011339003580154560436329647051009805426344451616895822181069840848990512533402717623070019026441640193581063325972538140607639325801766100331663546311767819086035965872975140894984972146143490247249105795490316542402096148608173647241543236506655750419553486976662306300433757226528312706860637592812310245581027984873231624847092049861395627952405351988790166035762843190110743171206162859039690175195607711105632592458988009030802407453185676939330392757677856769016158427164147743907135929050218911538449845966423770910644664150392891454342056285952579407829454970311105910663399172455712369060309327039246793153817492389714042813991278747319065407548401099454446356923196186873760204513830514164503525869404279697071198788743205014208510472980894692870194226155671182970495784736571316528347675916889991531434378092177111327504751755699447915879032083250432218653120107932249806357652206883226349334206551059293143967287719394383641683647840447896696306347574013224622849868891807099710029584531779128411535039749539766224018607902864282111813647607295982036901709906276508747420600112398765378798405293356931036982855287260086391864788494080063489083393798994742924358069065808843346289050980342826637878007334449075291185953487225954844955433893228139619157881868380349747634344015784533313578349211737071996624019304895982310126983955692381516549329200339794130416871053520866835735261145384678121707637041698286506605810074271029360190270346491667708519853842952413764901152403053701881681693879865630541231116156376123734661633511480668387429928198040242888974671037551013441573795121780745548253196988038124570304201664621638935903610433780369534739038390405801066371038924925264009400751225702325168556856928431712526248895672475994778946946513717814820625150203093113968540237114940823694289980551086774517107237083786897375682694197601244093437337525521918200562704370763589113676448643257297666920432065723005206336562193235614443351502003107516715187533247122176550072544390472289536495895199805175971211008126757346173642783855796553615697252230928473607994960562916249007622815059072142016782646274691482484601697767371780754879516348499799692855735297714516907259692794999721205061876551404666760258721057242213652862611164700909912107851818351179222727860864037930379025988381578786941412665736731238215698172989447976606086620372027035641464442845699114013456368364416874560170329124782977154243886169108239303024050703808903926780947399483945306911798087511139392316114537915298988472262266940348530598606331569705851566215051670815542322833879549795977595118741682683380355157692758237295412023427875630585837811477281983597680041569634309146874552744709848138476304846005332816755298867190051897481987985277247887547063973617703955160062864193737425764010759044623723122763704392266423735674901829468632411957853522240270214917673467401452208127628157837830497848646333769873334913079936241053536737385841323705398148100855566903072876064964994371279494899407748365033137994666329117793521565181239207035260248982694497899165523042251590802521552807863082480100640933727894345709365550388960313199802951380191631879688892968497578927160518289395897610391201340145266960410045590114505719765637183219431801631128675860621493156047702277477248120448684814961724754661930724375711656105198567549921540108687357729809888475601290523558545834162551525826689249313375206794771887762896773974264932509788552131453620545644450617432409611303260489592659417968775090024094186336261425031905656864098463428189996368082563893837514022898772520262199059344098545318143911927572808879979710156826966270239178742535529297158012117955174319084638416646456690475145750488764847136790181771903246895406075456540192947909515045396991481210070772449508165110625587257333167510660498221155111533557011381205829149108217230051283402459902235109391683623699027617070613229195157925971003582300340659644379319232384982199779285328463880104524919308034755387775813013628166180735843406825025369102875882075458774219215257727554143657640413728107079098290165009790974356504061524170272632247233484810031872644149056560553074589181154526543762575926277135248558487359776967803259468586128690952605946472010134458000520416526361598902052035700033261962319625529522488181028199604216341414247899237925017843904007148331716481309838717753717653583473035880482247089963650232698011637807000715057306700793049363945430736594674805363261542112167484541279748472672046715944857846885072948680055638869026874724411240477531355955746873851681337032785358157858965891327779625165721843012934084385240578857022642335188962646415833006124458831557319264882295234772541889527233473966228381996870647600577013757843078007425252416448561687507718935914488502982428472156174557767888772522453021004185977914436972981797760780211491334116400119173911876866856748229659535947332267665440378036426015221812924417024621160301803598109857425369159337427726761784149577470032650579001219336105723475191328789998493555609410586724914386399095330607027782775060270458697176513014355840715696938742210459858504143919118991316295420492406531838111946608894011895375177196783775913786265490225643318574771107787008821144018588496892281727324618805427981133492685364572220468971541405012406449870599136120489935613248324724054269126546811467361772914830898464345814003147364720056472508014190808035664761469195097243773203507042192076169740427423218824930642431639356497546352606561514294306975014261442153305552793635249910463095762476935458535848411436284544866718731478970229004145070282560884298060094777687964547103679495127736110317701657073321244043705449210173491881829486762879348260581945337194466823590882882770857076836594285919069449616600979388280268849851172076626944053470080291836142381671230446388631894021888416299713113072033829717144869162132953370226057321106818184637392207370662720372913192602189342311137147078150233719602541894470519531211148429898551858841316769523785923120727061659496005448013736899696593512261880456110475594381939183104897975804287466267018974579456367242541274036930404817848694431739742950471362841791767145061539902960176078478381737788525534138809081706674336504684880595355932713579621400397894156022756977083877037613795164704628983392655603713991695075920728347177701130874197803631725133990188228516269951903423427464296370148829211067507236272557706251856203601522367125800644908504492646710510348469365708779202139470174889276724766124468647319730656575788885036419844570707659401995603980233144971969850044630360829684372292579900408068738845253679869520215860050834654397735147138222214910037351693043859297510924114223147273635844243925458411382674203406659242950407680634613667077977383851392706261295823339099605948284612609208545743592696335203833285568779489012580823054350981191622249620966807854519439577777843765650329332226558280402931154632291544186741624095173121977911164585198714195442477105103432069213187319542486662322750796265259529032970479659352476222407126762536831162867154501071785611050655403576110005847322884531197782185089684110362640720605618977362254968644218116814738723365830572997703815188756248917396515123976908988367355838626032871767768652441519689921080627945795403464759461413482423894435043090198617659924027885164244216060883283361671542218157669577301816104407176565121729392399990998353910747928799920635009052389952353170978614067289950308561891162271109053406223208725457059660250528137395634567505896677806394488898456538644207884633241165555803176387341510027003083559234009880529156901673114647243128990884169579255581372560102334117952897058984916032827375206326227384445127146890845053761923551913420533440317035404749777364394949685118564119372858121766406412991021797353221826194920444234934357956147135660854423086192304414169080436698131361251454839998287415630480190403883646569738575405621107118854207593198795227512187465822661234416279205920079196739999354463763731089553848228347655841936639836900736195820106637999824832515098985140495405683778144493954486385982243492837562740822938901871236394325325007861700645715011225194070435369060958583815770652191085386090995673354709340505544522110323488641747776747351055986149175580368702776066511919838101621463287074566143059103963035863980537071975340302441597187138004424897556434380332497639364836939755000912829781179328994264112821645070292753189814318530367453548495654074921130172331622953586078077647868644911040263041266241198116958977789728211178920037320985162251616668758992813172687284912699934219841969700072543969743312642887073204571200801423193185343809763469356317610963173154271965691506283516416887570260261161483998031967721961154926717289418268744873734022355000748680055032157143244891593316013354320839351775343042727611652224417936036470763260450608436735400161661460266522026270389141805508984220710204013916339253266618011800516032254269655334006295602578696825596446384057977077340599249965449791121486409135581373387827421719100713840616101113433382203107283670987585204015653186363528528421287399246724984550602691009081795494752135117849484757982863820781817896643329028423112035149320753656059986529113470935599021695539595771678738478955168453092485358387760483191119891269023551350365015637722467787263623794815779114367539750823334546185463637570409658554996429817178856235334136611975007079373109062917334035763354370896919413810247929886646421903190277533811571312279110313345925438284897124818348898046771444044535987999612642482448688497750279202014230493088004140365985616463389805257177585763817829619869458668873010420966589493532736547147645883764842267159125040253456533148299971576223504094103175439737064157159644674326146418835862640121501548510141705063972892760286593682206598316400505991898208476209438197351238720820934639811473027638668444361138849375567415294544646115915244449031743857127957839080960397498631321328317960313483103394715515652892941329279416663729686282315807476755959761160892331357506181278629476518907460574181650645454156029244000985704505428102710288420243958740308828213811341030626625918176544574507728973040609087999962583880484822312975090116714571120219167066443205305038499452399575265752298929798502754356002835582814004890893307236777079203130025913404628883390405165228617261595294444831194048590699885804976218227904126176904312524047270101147049884273094413834323813475356476195102489747379786156419566517875128990703881211085030379335139168006575331555095225684203606239255846224478255606775170202559165876854942309418786992918163114569997949371485298283978829692904960446059851262028582929158564929449179644468926556094235720656618451825446649759735673466866320246019366250368219645006852957374310527059567885032268638644583523386756892890577627845962686812803063139471075987354185195493264696159501381988730438602645304005710541969266638926302570225526471668579232721546162605596318743294118325023511218175146497685570187858026079583106948994759844945513098326352585271503742506062859271357979398856996577939468645305140779564739425077202608681194796579932756049502646784032377391385585315630953481357012524613432370566928224345064615861882615160015337345638553639359685653967295774041380082568358359356252077132153572050515615546039686214393514478703520218023091960276228444969907702748074085240995865787403056347743718071754449163608738067621592006718127183168649065446092789644700362444977031900218498112777050959466543841187520582801057217315855239860954808688079115656399830008747239845105436089260485870584358829861601333029881717047216773464436782937866852014903328819136471638895316161067522578705492903712026734800266615490494670268034120049207572804176879731436174254265075917205646468684877586265810177054337444945859393672626999993003377439215066042296170772668092443791399857307794424661386424977483797443116080955076412464181303947672542879551394438438093787310828733855398376568998731365490256869662658106781247069274241658175305001509406219682466177547195680904357297497793088515895596878879681872281328904433141874135636171468852603057412854694372898118216452507784275834166342723303353165336838607889712092455326232940475104423761588308681872207952727302239734404662062319394672806823023879278836213890884917929274761821243092516636083450547538606082252773955325380961824158289773962928613491300828917467596511730523589878512386411137882049495616127970371327679932289125958017319643660285600900779228441514751140166816888902762916817738463654173361653186786616277715313427402259200542301276335795127288192808395487572590386275772011568678638574806113990802158016708425747469229329141576933537397608518272974665501576865513521313978072462866645410552162423583753280232849253957055310221145443807844617741702505020091285327904323745211566708147050636397244021756262673289981640937389525326031202083378388200052058708875917671799430404089780977435082513266440403543293149757545488551399426173476924032136275658228340994950817544591802967461075803186021903652050977864047128417526766919348285036943027188929614713799033675713933847801842146869779805701959967503576538556038262198006505296044852815115029904985619168808460253701625148942884501142629056283389561146512077166754915441335971549305120502553408270824802257489853993610129987820139777644102728939439202520642739307461264291861482327075207769980882709412012636358933667901691434381219074713199150365628279893202083226892744097052617769760094663736131736013327566097614371377207330130629645756745058317702319512912988569413294609332773434534516063528968728125641233432383208665006400845920070165963765946556622179912744871576724546639042501928623374707993771494296085208723983712314950953575009602053009595979513397103610648675169927527119932060656219699165019160233662164398597288033614065781419591635045500418135479625480437772771003036975601042674618956651496280864397155143587560901259264644644965233811649272111492536022573971503996534039825422527154218001612473561131636941193446824851129481581740169668327187404490850986822923033292345406419131005422943485443915086537624359592635424525420546987575515633162912161131388312271944407265583239467727842419833941649412156478841730160955235229617549199905940842069858039556376806716804385778747582950944164328351706505789758283125616673857558901829512821599664080858938801999313554798785096089198195421096706543179541627495797655631811186922421318248112716702344973907556460937519428674566693801410935490543771686412599798348900280968647667121679661496348454738327883402479550241715699729232220848621516125079365916194290913706310381986801743115954715553435660862371087944341261750195740256164693359459697676640848414017638983740267090927759773150985170574567819220624038534486272680401589056747678744122952176483503828280784562052775632848710224825243779577110143481108204602777462052608598653191642682850729845581141300410322619662057429885378160894839665301522319656167484947489778623916076141771114968692561206324959515071150555108873490529530041925532678478556468862956429099082711155540610818403220690454722454527879353664413537100183303852006343074316590439951746549314964737430151250767291353366863929208287393129047481071574158349455992988902027655742823509309884348821260049788332726750356963285066457370822150189514936691689652335702332660844824434930391280287055691984470616749995807779257176591033626202017317226851461028856077221586116766031433820816913045572687233958219804642828295924333944791232283880203307606083396395829393664115223289496271225716541356253421897791013020331546707994685633738137096743233583977493578103192707917981759253056693716005789400443421659413804840966071442930730528368880524810803635162262767592052804674738116618674708415485911299732438246887116142437455966371569181943794208058756692574312047368261941647527051938649082567627944686985910772399696885479759312541160505063632140835665092811291790392515253132576843791860255169681653590879196006514170411116287642924444787988585575281684441058157494637918817399843735325913877518498766609793802047554302624138004211645602955240588843106174890702300213927236461821407834769438046735323538854247169965455961670503045948550934989251694446255583008416707643658000750925728000930703082500463094242846109598642487644925137017003258069390038040086863634365490458849358154251676642244422568373444445701285049608616183193331001350871588534726025453875815716547978539981039995277312133064036918812110083869345551045404751750413982970977250373849147833064363193729964354882457591408171955319410905037655003593727945126451009430727035320855897783851553657127572625873629743489245740626730770911953417647657368066694286563618337227403870240412080915816734443001632105377417819795915295533088676194915180077788799821064322742159065182155379766015584655538564382771851700807197653323465335393095200935621079103629984256587211316192391013117552274212229562319696008123749347651304415580700168771490015236435363199541912192934783686544013480669656471772573939101192965715156165139109110779229457892452351834428260978987814463225397441028841491646373238826343957501796845115316869060010581825081911733646776633887709518914517852077249694989396482865389543781384020216592030646324444445570086956977511524624462415838706541471044407018441547057371999659823518570676515779122813964977966834307200446050986464257474289756222417568853694436028428986024118720773893350660160474213526953037001471600029736586255604718809213645717488974396070301363585646321572700286349603090670740390227675000964186425865540633548905280884285202616781772817019439566984211403128178365036286039006231132367090862128340271035224317857106953930602564650817199086860268347208288639057135570052788719400072621118875961053811955712017817532964210719603722246435716699837297887755108238066591870286790084015582637503164180575789497692984228481071293171525754440493521771296362274475986859314066457432627837843036727707772879018604727503881357512510138764412950596019230773560433354063175854703519577140814628992006852625625440730672953607027079316652591867582527744465174017395294732409677155410106356719588445250220443181093232406765355755342497889011360730061570999255835591953744517160307114041973262033334288477309615608615486154366248573532742701567857626459549552458863089897798060063398425597911943784520760984183234445922707605778829734080920778828987592563132709309008992064418798293664287210946667075782240416372306922677079869002528971227417950611956683125040832281017320633135885400772775620927249173638364568629716446449953686000373131587410129697902967272784226873532956601143996746359550804697628669630085154947332076647229896459419254902329024714337509844000573833166863833585659448314568324235275774447095517400657949945849775331055036044593584842621862356566431970754161101476769387931608025792304142792434268329055171197813583155571443518765769995321042971711686453119422320187045371621250509353342023106714589708512735507781880799587650757683970671900073880573461554478036715860961678221302875687838237963715368695425624670693551035915153923803109311177884886425522117574209789369697496464825127091933002871552184745603970902635128868712736855222307224455737908549149768237510444843324297013711513143427841030895868647048607042169752473834222798917995811776651589666893377272148387893168064329733484978615360817369535084486299141962824073118341390355815631507703448502662233651004537999749822482784082283432652985773806437842582595354201276976099717907562480152922806776459228123028050545251181568121021841620158943448406961897323361310748807951369353262313499775282345015703610515399447159472815236029209609802893897562247244643172391353331885386087684194489641367073027884042302139104443267634152474465245163755344478231185684872991143493969574963552716740959938521183786597715602566106619463788864665372594828919484273088163795430063274147179952037002689238781557531584908909348907388022070653477997362712706844825028041638106743552333775451687248793271860774527475028391123156468737947864044992004949805452333467383485359089254327020716382778222920877326992189639466369382679675989279107502369957489396552579850850997084901498516818416422624623204115131114771230034771871963770905634456926453254754752605341441083840242689121827431924824963333181042734703892936034438307070477673676310427551218925403690937386638009710046833791825107455154257037056584047202056722418760102162315692420758081593816488455614403703908033396107066963591537055750654952701793924367970509814324043567769121152333407991443421353739208355696476898706670862864063441019458941872241884899463195514455795845025450654198764222280882803081908379602207696013576209884122141580693179684135320927619485034029740061270621217016161174360860352313161980129104864757179156760368036255409069610993903828337396664890273646485097722385700255723723945645053767536068880597236655590257871091131668210940168470082488382364197890508552530224194459039121979249685531272059048028455681613004117610122811588521494519323382506037189100188199603001795579753151864857490565603992965847335922534855793395124483257913033443463620545229945419265511939090007537772625309244209431821466556925442154745641403084940460038098320368647232739888483228766200602627093195591713742546292968696568470128959372642737616308450471088761771363195824329770797323312003324216981088273587118261378914308984845233951593167767410724407170784191875662092473253848835705977937569685530370446430946411721414871719246143805231489028246262525797962722337558505213398148896745588962871032536088612955118757108606427873984962134693395895562451888450236486298324917426118391092043878759725106361433964779267031000235910844336815293314842682748053514021842809536475873970912543347780205343715774948003112410060649878346970496214658544908578270511998327781630253140238352351577843938317161317258933138277895972374372027992344244513465439587041689799629107927932163963762621641538899683345504646496158661368815889352993929739285553411821905770688318559799650615396488063070841867894387485073118630622928215835524254310264187495561608820392482399495657709715898750011078587632399979188730175852822876204238672350427038386832127158901043571585832419297211336244073034217956544971553352202237519420341170975671235043057853124358073989275781816580022624648786656543649011691792002381048870051729986944113977863842537068278696224701056728164655319988867527355040808900027971702060495043170015329527523363452907121865926089990017196430786522838873462412231759397602430234733721591816179212170529124035274108117018184219710048152193370843864408829983172544060685169450952006003483816472665969873473211947471059473121346300056409547780980217764514087321223803027466002529172208966661956316772426975629265266962841331964465382794173765595187933018389116289757466828629634453656594227405296482334025616743864448412200196918808745250118575642333126279883063048226700783209361462597932567919107016936337660613849007465008039505300536951168461758177205067114875048796528408598764535692998893559382422396123589792695741621803347012002134764293235295523731336960463769798499407892396756434216275663127215328861126098457931484884983328835180042899520300339725136666297180344061943676629406106108608133713351365451226754324173388387921258392069968425529289222793009814843294091426876290527084247815936965810477416616892053371155004692604526815561211408724119319256050721846611124588305699591096052033567881752183291765331486447345205186833938323341252624357543036417172781115040316710068200630306363993312951357450567797746289132462701066553757449639372069291325724485751255055996226018797678781838279422378137112796532657058659415014585969617133362237740645639666787150712530826557457494535712204280590109991890522029164865950170100705472435139513887882143477913393259806611090272290133132912270867948459410169998634326895831605845618348607463325082132137391829674567158869100122682311094949311530052153455524863308229188639673828134244366751072389855800021748043868089376795633502924110826713842146742209060809823695728345656870036013589069662279765432636565829541481133662637810975767677107424436910468305183821717133157237300496984864812259751580290578795127359112319395482102636226865225452861456740344496493181984681609511512407221645560442045196207931693215399773316074953738839027967639955747741259645936977739204682780879616809180238592154744418456622886794272961223697170832673649239022425870699612164167751040300837578201927381449965439353097409045649193176330458310696815546747136020244910205512726924197835558073480541941576751990097298145132905158487076382544478100293204313004666519025738552891234505699830889351319928423611676984792983464108587417774120500872471054863108094886872727399071753300035153595304898688165279481638834214770240736339482410474043927333076523238338289109996391381568746209817721595428008689838718626232093070753975554037099343272032704579424146988521756420268072493255141187407837402694792521352174643417144367557270694712641762460307662265342194245618272715870280739685325167570863647123592463585313620495247246356351987842704698377300836915979111476456085579137187063779343069072208017488568981252841438661666262222743509054297593977327051351708756705621401182416835110880613511966558275543791257847607516095912722791708880601307251177668491014793590678707728945846904527064392146703640888065689452317089600879536561800677974273240945717756800088949630922856816825467566159396802576370761386055435020726905642744708116748852873185074526890235927525805227746675910189206904625523200128472525966412638287391565996445122446730729544696379722825075925161160853115249258514244646713247332984707757472166361669384100499080748634648657873203055313648018528224977413525375024197930475043519293843616002552352752713974812729329272881872110100840119057614553700975736739478242666494353309467556278132525422934540887241472064303430079920098385109093444572149729999805421711263162413525270590748636720164251929578694429828084280350318143691006800259110024810841355937282220997989405751159339698457590520790082816650484065684207133102014076000201569926625229739567706431231651027188728066452050033946646528189383093470212879164465956577252152617784905487424169739853140980985552639591605941168968561085174785505937370278154514835665841940558796787668373753753472121687033231226172905291257315547237637641961955982795306433888407525715777638826355956669459590274050745445198251841962033841410378871074893050131178676249946453113008045368999789128834657018548915882201006773161169129072610036886759344283736908148727787586917058721334052236785461922539028558978390537323070566527581629782253567590232442013658748611439751802588564106275435399230287046869869145827594358483226070236303745718178978720573681260308941086472458906671069321033184316315769883872294116399479616072762840941041331743694726716734536078820339766959758696513788139111414971440178312527715965779212428504601778749595604941521251881731809694450000245981044059490624787978484874680027602243532782226207473970914249313411154421627430667052191089411943287198777296909616314276307686525179955271170718954415640363997991721493658698783653834298734111355958092787641011709793258738476176764615257435728842295356563303516079264075859853138587928361115478516829343358501520979103076960551560108376012234126739219402330834433026316639935266674025956721443401492764170090370334565863233104894670966671763995121071841869315054285399532622451282511199734479819176832494506627286449832240250930377540025667014842104821679738406152005230484015455904272609030532108191442731590446987529619524439889428184942880181773089842756364272170626865230045320389203156814486145293216518839510461422473761363142995356814155842658914661645573989986982535581181708864243084967751395931502012775575484038772726776489180639766159741274330270424006414354825581475409971387486263456289185474028684593699261630729122400441029311394181668218880765365710089089417616929399393191880412299705119763152923117582788578697249281446446655709489430007717979100387904938375308505365660744524971091399024448303116973910265156589514101228782270412229540749540192232705214393697395266781692565573561644904268286117228444400854283299955456938266851201125975481820137843784471081525852983423119270807847133756887000149948513564377001913013834328554706282413802853315741403380087908146353058711657021765268041373553746176829608179516848053493391342769513180978564870250011563811115115767292372103582683972534518626750856493214014427267582743646462207886224807199604687880669487905090853051958044277803470696923613641524560922279700345513723782583111257301855876179824242210884484511683692210794601632918169891806805154232825479962875709616413230032001077803336060573299290827508891181847819909682973636232237044815410608335773504492571062642931143255957763831539530503587867496523260973839477967833003129589282819930794593428350509794650417297249999367199223664754217395879465036621305918337879567032025882558314397611501608711506724750984630044611983662596452426830107192732302953314749288452870775733701300481150008257115817894838387842559184845146860186229829128108525495323047716285807414947749647140692193333440487205139939805599763411529337396853192604644314513202362539936257357548143982167360314493063307555162639639356190115173487227693797817308688177824298383333017310554270599531012692185915850550361376357654936739361923203600719384748430725184944907595151496094186817056536838381785481155059767576051970477781487116349271735884539861940314732689745498096091158897802763579362376433913242032567411557042912803460358668051696454476779302130285578374779900736586262998456715466813573770419872509269208490132874780566799303816875363946167621707706976383991625244156034233671040087620349655347290788654476925007084860219649285799995290430210324336962663821453595978837553286931870196862950423819124397724447114434769246684617335474001276817285016701398717923059593156639587390751734603533794486813780918617647018599489720796322974777018559759496284871517482443491737729930710118048739398836917706581560688427895998971354256702222851136061341317275472022831490179646288627943070010098842174641338035809265513830295423627530919251117745779202598889832762992746900096598618868149274726372624782381546399147687133853700957970991445895936701147805295857851416215658529081915125271953342174460727366424577054103260513378502042819753090272007153347597312118422787286812693809282508159814720630265486563750905206763622929441386611349763344677842943105248648441895079114424235411440385895922162539229454860342311154721137453350749513553569638062769189935343041362398580475619743674834128662603133964670022297796907940711644545793849637519806759260392734146205820648078789608484859450525199852190022317538400561199394585795331619747398755354005111929930291101339680119860953020201476039731005424710216910438920830580310769340534454852566768110406228308802012080376892319879269837220726395879370397587843763353380372737680135820612481060911901155958626433423730172897709991210954098955620469805072049531083811819481944991361254859609026283267643315577648959057378908939369463772813144145426581984795974277163919064294422133417770549103125017987444567097785363165804251616204058454187983590040962215272333566670288029492438464351308949418557685938657392235168951709176054866508226951396546037521968420514881787288895308410377220791756225852348496348640056567612958345213150418467881512998058789220991535700536228202385173581824286815399496685766225115951170163838077037046248339731232274124276112834644734621124687923441078977236001084974618236300759684204240454564863454936983037511850563686692954125485923614741763011870831856141715227137425721521000218564220614625146954917051738814020441820004222239868753244970464312479696298215704476718902560276244688902894163533904159916721708689492834452544537441960544229018454964460087622849248409682018135421650005306198770190512700047063682904607264305324129966247187162685219390396397166495487583701913017889556069419481531452812056384300261043917866040197139607368716304390355881972681770233263535905900316777241492407914613566326204770495492618034973489332588760824914608028405872267019345306757361868145641700463065561191824846926426199791072982603550846756721108953008970555638805012949655700614996340348879190845245477142055244484982709356337352153089015294728256739160669817160340798671536055987441179453515599406730856907496416658910526481024361452388531616979656578236099328497644187994773359744123156942556444212262921959055298344656364420289514094102065149576086389375414950819348982488579259402287426314996848895276638798938409297287731109354929888734761909592916270955914171691300698091289746759923911740581991994833024827591417313834186624514048547916857850139337243901588844086683028034802804070040638447628866070759938445570219975911831924035732043501172727092080981336133685929229422911632374267585212280275248419553783061057925133579301559717166844487150316479963497844538447455987231706340710286912075103188368130781359487102852405664638433861994353502305792686584472554509655877651669309311550119177031340027181516775352594930028655193350690728656565741362418941337331156040995060955553566682508238924253937543267520062100028955162962128887834472024618065507500641278537532983753046818253265388628602411373237683813180035402455795366441685261877885446517984367007868015221270657961963148876320859938012979145387913775967305157342678455751537201442342312300978788921719982945594825268861626283403292250895171108638710101053632712587942261141818962583536226770524236220870634572126811679695426952338197301128940910419492119728925628648972055736093295037854171812252013910010413465342158710519964593745356748411910884680282874675023999994510621388174469407345175485924080410101099081085483602331316775297630787878325575755222129398450118169139518526644504980006021015665723961585699391287799059902794145619759379272117201673254011199377157761980554886352149136262187945527098515252204260284886659386857177624494605492812406977997377372975629396112184416137210631881795715165756217615197625936950592425495570570214168381280348349573612502715617081051360932104461823502373018562629471193164267386346117009894039198986019636645916123956296353647361130712688176776906549417721785888341424345775006157116864670457415984346390246818566719605565716700665481056831776188235833057594017865650072754893668975733418824810173494756050375628373452172764628955077758406125115593759377140859367855350877504466532546922474838902912068108812717296707266165661190862985888755794158743998937954163485438705806939809147876244138433726909639560406686823227976044265601078315786072294679869000348098397812299283639710349738209984171517790614510450131965696986379092600700455283875241022918149205317623862306433072558901708694048846027164047828448620759218168965853303588529579866804114355028195761661528380029469109164519555781951956339705989344802474738792966991284531662478492825439524749058948275009690452923145860293981707757530953413927861824666484083017156893746992820044705212204197404110406103318341401020650667655434151818212507397814791553328168792473745833193432964361899695027230455634299459426440431372651009386376717335389525330040378959591585333625968206548675620266056167417584896880954909547303847269405537338949448052635252170945920652206177125789248912071729145828636359739260201151859176525616033594269846129172358753614578136832863916224088178408712590245281799642462062759408246253249218150329012837346459698988556546045827914653656610455646362844443306913830368166512255862401886583012082575673647369447867594361619145529377706508614933669551163381140697699582596969503996935946183832837627608830622364309116942014638222459243684306974179983853716389156257627978275168926188207386105415684131036074460746708181745064466421999371932586441925436788927583456787076316100899381347872953185332801152787517295755616742580450945272686922661981265850576087749316477305526808699727749335809453290603666498548400528581854478623775835225769603837029992012079450188684584811319312568649853290631835510916357284500607328722107809478950164746358221417876353443743857198350425866257080489386252379546904177049136232224596575127186639979256938234669691441042210605281384471486440178251575797652995166850900850523660652086933285743988636008611869083968823620211378276090812773241097088785735580325797098295510397428637183601151571532714750746419648709073437487792132952707095984291652453301253829028294648053414223768929686809461869507243212135450398794958416419012456183671452025266709826236277996649759766609555512497665749075536899358623253303662117778751230906133279616569619620657181164843305923065381581156809956819941330773083867090958428662962192990612733572091452892030557889224727137637688592763876210836034200156671410688098947261698737370888010512376745033922739011027900859859303579235122402297431912239827528395687192995570962936533250037169294529297803382248658829608541126927378801757583184672357306713022249595291066730221634720835409467660809668025554148555376326464481303764529495156377567611199195005831226484268547857283520666591181431782873453970275577775756568728443967051463598437456463257272684884427786206655295950906113760540644877564827068127973124049059478251083427654084573034790417516070838567277787651930348588903796012846470630861762298295841449571111287345565396058989753245998953509100868624773617886953766709157340027173994575738841403603359709017639147333544441718091769994895476212644375088224080068353975388238023600481169627220813594703757924935017261430577896612009241428040715813500518334940747472630757069259239567258515549388088994281780717303598905553832771034798680318062779899323325858942086938810738285030549911488152670480426624276946677806773192084957632380098152826898524602536031346631204837321066153460013770445735955620077774217204064763295744445578868766795756185792269209962833784208934409639600989485007255571259588135858763443618640094793654362431775878264735898511755316462845159878327449934658484319149672027850978013846245357804711144046524215408954125236050979628615563465646151966416477174907816591246707493508015792514458940844644568286689520562395979085687142680502389845417890506027302741506245823557236399704821471588618290020645225610489448630919755141774961149332154619741857766996125624783129939762087891923658168280295673024907673889493114765073527030005321593762435349076894578403393339211075855319397996659302528184661297237063601663829667731110896333715143380475784333091718195954215531478490373294539409970825229897370599050541774087326343621317895176174353008562810917788678097868364031649930780759901698534247257681770286881664503413677543795190961935823761201338536185603012243898269868871242030798382823400555469407379364971791630541186365416239542036948731107984296366942416393716826486798086083510191358713467078235592183622967534202548299108811111248700135011528442544535764533723069988233775388747122691929260534672642481456642179551226344970046193113900672042851998648473589284862197256810326669965677605542762301953704279002407618783978438081332079907853909680858742507886716600779693839395647667625167089750525401639549562167110532656953264796860000350045244642493295642968815765286205688068147492535003815538588279900958757684318711879025047300177746276286334721460681403899756593884414454186531569630542239757939440490419413354445989825891739523936207721424199415153026371250025131073176277985402613194791637368227779668469939255663223620465153220869744940238556145055733994748705694595894042244599608197209733146423217581141466940213955984767081347579257788907555175977311325391265360229294696247989528680967209218371532716294648235677976540899753484930481442432138603791702336325529210198661231105965187758728694330809815173040978680491018796814707043467462511128640993732248260123377633153454745522335139348672146319302101606075699125421839094323071822654401405187881905151737000253536565415676892486347405645125352249295033199967224102984895363643116408759277989520942109930983947750761495704353994672455832018161964786595482445716462762965489938416929284228348843729633867825859927030950330439616859367450345043516901335133230024360563184841591885024806002453258512221284013644411504489148848323674323025289811563939841404082492701062074222149597869056314150185613064332853915783646083171565409757261873862923020142187992294528786745029422935318242799549544813932485003485801337659823506129751031537540692758083375493303046393223250676123282078259627009400125326830723219817312759495037910563100660342226787098613232555076994713480880953044763581394481175734765640421843528783368918528405270586206280777277368669470217837069645363519810116696609739170593349761710123192357923993711337758562705986897786081502002488335283043538746300858410175514251326516660627811729418390847019312465882191329811417305515079896684692930875661312191987326512013506330777755461000481609769274198753492732977353512151455068972612224813127306562485481277577516823876434719117399798287139906983342199332756565245688567298072425519376008599526778343113312352295870657906968441634287826933074831851121098216860288689259110536595975037895031213792428682025192724525684533717551207702051359974244015178913912971106747244788948598712294260875821932012481295522601236026229744529661417512694248110552034205075922189935369196110572710195525121609647704173443385238648355038645764188492421207627243683005503965818306124659138719907873909667076184933972176419686966645751939420911031655296333086047290937902371157774593897107547150641074603394321770426530150331248263570672782468236612199329763678257431690756412645287289646201387695164508266601151109992012897974562757338361577930930196081877835012237827806613998380419526461512264517358948187561607948751677841881190163468726662364151178234127344808941456104055249959614538389221573146562818682172563735295678321270376932570744357400434789703796132811770305162410152434840457083226846607763478080246194534596232133900579754926071091796375376502657717245322521348050724464511603645576545331070838535563606163107882753655105601330932104295070856875645961115925995752645988066548508848432518442855864373966595948266519384489647277658864618139957135349590286051726695495331393505896188490893639347390558192364950493650160592583514821163572863226511851623830280818914758602910166347616413015472844456115932665794674364314046271026468378630205911936442137864138572182110077460215589785410806835076738053582669694553252639048344052448328408399691966771540605748630131021196212144095198614451227737503664025293131866979347839190492605569394260462969807184518669629429654550083342628857513899819814664394021946010482328681975140783558610712058071523858159442508331286832060269701336313759984448777328257041021717248601332226696153507013124461705727493392925920466905783722112473636193733136623522041495058569799210128023459140877394847243162515702544900829079692090433373232683556198116254083940198917511355914350634974298798814760747207788752616373137585896661535064399235094319236252668328407417293222850398763960636119103113917465783258150614594725807707103573721493691743893395587085132883405985898534252205925734052520303838002624871192674529221463837356590654575080295648517910018258442007661122752619777033727961915858819401461279650985597407092633927349278432558173955873982190179851152658226893634264027305044262113877865573864027611323077308715513501779536322904142288188690509346723603903640580035094599454672915452623095317768362835745148058733916997550288611900080289911523255362712705576227068553176248812218315348713915206308017167098983799419307687506396925953839892299719799718582619721906620816880403161542015720548000748978326996862200831896607641610623648042818021807051382819681337100161453011587927874364139637680432868914111226826226843755506297390621509117313291654356062685840148136906893325533249099087582008021750005743904465015502489705917893501723956640661155790155476877031682608377104197100797255276386620226750226141531377102559647841488554065123389385779369684694773569381657451829711897943979108267689331532565543485436426095564809714024010271737560584954808015152575382358607433073950600410488408223426177327936590241032021555745767471451019625660555784365480691129047132556642781971846254104235033636781710673625152166301448813492018144165079589954690482276098575922268703563419284762174867733241757987338587057329136268852458892741112480025931584748651408526620624825816232989889055530865620761717104527851163771692683817798284871600991863941601197095703983993465444704803752598820728716843146589601363889449146961002879243884811631651148905371690873238477444910117488318683928202544890620314946375270283573470602186137747054022754037287789980689647265373709746107772883053717064403961392849353841748485794840611409072590634150721847132799812734082156107861612000202722021793719782470973092703585894795492293151687880779909562443301227280700085924572036929594442352231154948333956365401980586386130609987124396997792008519085167862740654739398749556703553110629419992678288838097190708245028788490851769173736154989420844293088292356442622808131810778207793253209093456363460241380210267526626640764789294022019783925891099139247664082020638402830385196753157855056330000841431763600879383054016765931130094963578707690222676865355632460217367545656885523024826675468408627903961392440078204857164534488608299872254134401820944340081029371049533173920037163944256002838130923926930894030432987269720769490100942631544965870577438152707844919930053804394423287099092823110376199862738269406821450959760228913317625274298762788377154662920906230040531790927567439467913355522049543654744194852030597521893904130449832515774166760002900419043084797298143486008383291024588541664659758060577782642526455234300287242219327026226265248694748330848258730484019539677871256381833815600936995416383484010315142271411319376773789396805597403088005378307950479027417418926480010306227254555966484698792879716915559629081002979345040863333147670193912657423708840261254998561712100295469290927196826304444949371904846791782065073845299222475734870420749707841587225816249846607611579004429580855368112641810667901046529702255496367507110857634605396475078212023143278575284169031671027428972556343392991352978035590746950749952650722143411672376968981968726976000442242557327399564595297971227543389470610228678009223918363286743774193775768851872527534578208102059128167009356931152306056710645844136241131770236864831697480094824593766468787115444914644004361048543595175312989993194039503537896180029293386033511917296709917570830214643919024641876909777666041172881405800377432196567860450082599377952946819581656564587206447921620664415526489265775975773483001326524556517240014918300716883753329048771670836670184106001649769479245897204444279084579928481731295798922685242142649878434074421958357413215033082343726344422622195618795036149713545513230266125581926546969695316541606324464028215299081639783010881843052919145313659493799885072480940266170991246559521257582670401568660816393513766245571066880225418431597716917642145475270630281749489167515864080997906773857706876822207852072302331188268328304663231391877439013197516917476955489774481606720843043925163422124344683785549412377152297254358252954588682299629870187165672781643302555667757407722608986309788847412526029034397943214064940789968489912768463319143372293631964402940446724108141926334414505566068520543732036334214597385428788815723604643062779806465684737853718805246520219352940582951637635914076503118834023602516536740293554164682392497487672524893155498344978082461188113357598071469073124600019385685762645125099378988166358263548149494759210643209044188629268694233258599262677774787279444869754921288304255325673105007514784678461706618393174482951267191471977431243939062797124540997807336185937742061631511944682559250444827047560704609615677120530303168712008626038219341330920852019961783697141366160817338945728366500720218629961851752699686029329096189488520600391435146719856797415260835177787487305020170052628768668677389164159394618249979103266320925249621281332046103154362748407114287700379347899698142062957195000305519856184031210582238110144480808664814161736258969217185763442598520678781708964578611843346550843624803320983664066349889364053392551436808058719583769807290416443468128526667919497556549696715123055240984562257446203152189767505703745783788526536306572563741015126500733017415915668109295178873347248346009787066589134464007857199100268983686823453581581214795661013053766664606131340837249097598095492625035323068795268992782876672500115925037119707778742677420852752968575400715658706299622902657252264815193782600723990072523589539184550695020270718605474394274646058342370110043641676565969366155612484402331689201195784814409031346865052593005384423332085278362589569515633632560450510206769859339971623817230309898898773598154240859394140776642262185974501599372478338530964756528685154661673253015514932881563012397732556702062614343091161774821446600259304531225133775315327980680649813468109746792205558648196797159774007337107236387137002225735120071513381906916907107015391975097098409651554316135469100830117355743589608093409822666399661443567625730748494287170049586995869508282047274309014288574533665651771530501413312458090419921493569178446060998775950454514617280283948168900459294942321278794700552899983394652290184158734032198815677432135935903855549988909340122743194135374702700413262421550679848838944183012153607519423566556774091780295133510854196744722265144709077361857115051279528571150213259092276381453704606911072169719554666852686898675106449286668029544826851936783010527853168909273723870991006768158662368431958246770528575780850601957223745419919048281476227838649562700753974065666768369083707219604406179830660895610794658624974128627696365462313647109449308983569128659346036969410111245491148937182634164857184697747518512335701532479372315212569450237821540087206344731517562951607438653055054803514074874421624847078371569620209226096649401941338045112962416823056261462870178386122275565167760652646311540297566425542064019912104338618569438119113870401307194706428077831544311386203009062085554383715888559918205591335429693851234433020949047330735503687193902866221564301248598032208361559845554509770936610529161989885817257268079341116645133225131718938634279367633614420523767430105347903563011363141902111734599476636168067743445201161947516244378857449161647182601850098922041802665718518450160346308601803773009626307894832765197185119556128040929305957211914195136003555978489823522958303113671909592181275229094959349709337447786604612770764911037995905954375033363545821750905799494426307916265706297306476588106571132689325742231335108534535047696886670353115124864342801348620499334370293740118752942691577036692162976324429067970770685869858671513678981927264411644244285408028401373253606806920248805325359666154872834353586889306187694371714627893884434544092601152348693742450423564516826726323944452048611164930110922116416106194071979241318371994769762765165245737901975492480438444529111612416622741172720072607333129895430541771444267940642782450724968469534772186067283468750095533054087995175904620555847218936762632316734001395277211737155183598935148265007350301442860817052134029619265587848793492704970866229644120380678725335141473589718019109300181973006377909651227143292488381016626774114775246589008589030473155779736770343246994600775939270817510368790845808982562886422579268257817454195504422858250634052710963764380646628521085305197759340936456845885980729255947499116853235092408515583754323994948900641051597411498750638410849474537175480232377161442392158857167394379125632756380022149206128916411834537628072446315255705769631709307305908976901208240716719030769979339756404275113279998731533981066436801690548847595890085433918191120975727677348078623921454716557517582123136611633820422777475554316652782270269020552490747228923792878609996520918698564229111005295875307594437332795290904852658921784367028612649900016825037933179914234710313405336721059041682876328859445774819932291401619752672811697473597222421182459813622650921725431250292719974516524000902824462029337651735120392456552076237454274158785667093796732998086134067842725500215029579991915970009802030427453112887546136079713007105302410251048254247547261434369730810785197032271921606489216141049725913637900984903449378231704725157102304386068629386128086193759175760653072810620117509902047416688825268162762914629808192991356694529395193290358129163620363384559130476575470939063843054173493668573395355039506667765236211831756827245079366917851704354988717786944733029869901095242719114392977849465012349712337430280273012177050297426913339616643061190813572664603187082894827442979141660891757072105086354896996395323291207505112768361368424293764279635149817922401461813399300305434235546763564669770627839667099689168689117769349058040443020670175402501992834047728625524955257833906209220786664666278797512328847252807023258405749683947795695091592973672920180295564526991953280544910138215054824007190058199152674098242010567806359582058223778281823939288646627980499645300065860626097722714668403008012387472963694309691567371648429441138332927058478834052388650898029772028482447112494275904207736329903674202154509933178552835554843311740873626416941339506157367210126454978654607052596781261468585820757033924024837083714086868727354024494244887396867451094698524490256132692901661129799042949225953315457498141244819503211470493890072877929217680129272032790213910717201347168905585048516224492218414136939742977962199500047501443151995606454790716674594643450716986851335524563261937945890435487738428808692402512688025519316344358013199856797613845757637047853379981355766548965135493769840115345950903462800600833667252279873095073187323727242943788488744871312242853230906408434780142746134440856069913131176736855882799477788066009195494799176372445062698390847261241327323887154102373381490334808121913814918562284691142352895537400339039474360332972799074672278610731331672912925701401374276324293332396382508704252759597588495667276469048940486828698978773836789090331764323200016093441937681182046285695609679586339928648609103213204124391364116250837651421147422531183561514208558626475433277728082973688682583465214370945666512988096001476898632654082477141886592145872153807843183609676171339668631095032334653554293563937037204906426582256166122944501593775194818491045849547760488778572463672423684126821718239501170976956393318255642681823455796163007090009114108457135486477877934397029559317115240454344098425306328573427870444856302911218781675366522598478684099026730980028477905377548185908959724376660711687826896595266359470600992056358381009679349667159837118113368269549993254282277540788689699177824645189974594610803816932735501128317230721236394129996803326406135580989063221496598436366482151265904886015256921063228648787303137667098886922152495670994167994354088754079107615826081014356441580173915188605512727975073757060572683933270928645077500892712142533629393563588200454726420005822631200808718822091765080800778128450471665509199953947360306752262721210785416588541793200649246710118204988344733103917953073012785754676108268578650133242020082729780803047293581866394576614180565958357927007600696766134951863592144023869627764763543483123567345095026589674519053174931465683802783648247053865456172737297339982065235321523233930189948252392945587146300329487162528004183731505467624768189863450985189095350815268877081577374137992585960145750390175033047428196341278639802233200770467589991644482812877149923258099811103518769367011985957402855721919971367491059356965347838535053134850690903004678067915998065448536898312533859741824802314767400204089467765564564903383477839205067144527177743811505865361281410102214461314044171196858227546183304453981977130146353052108120061419674289267836656088147638960009286291864768113752270191529790108618072773258754223226347570954180199045700450226867596232452293680675255995625049176666865961499247641760863899354159735735178760899995258502335113135612474978177673955511627742674431803799501011127360344849523905138501962881750105072895130923716433117302832019591052018822264828262703882766400501232592679510371196929271238513532721076395831718744289000622353564225861704660692920868407445584779650013806749639666985395917232277499732178930173132857941075731159328234000102560750462588874485337488149913598247481599889846072790121425335381897376493134425967367023867704626309445987272628180162519865311032125895748529222899068046765674976660407021833795700067126613334549136016975395961873632300572901000873115633907452640504087803686413231722864062168214742817462363724307470125893448644428177729978097764688709244824915643344190971432334018680566180668894053376600121211610924685160538292690057744285497870070140668240073780660734133806406851263403842049196791599415145853264681226404783362368070901093267096122124607492867431638272953666630751086827739078890869280844452397930624672860248654847011908372193302804553393672907470859561645521461547022805329902940589498600904198617434121495819754561779673501172234046834538150343401866290242474693301628458669665501092609581403543687549012215258716330257776777874268566424615911591803855221879846671486845334273307140026790616003445268355271985032349344814767360018498690453909904919673447901141472979648050421258044166116421193771776396569101030236682926980790406817588241311790593501557515603045935796530132177607950656036237447507851957725781846512869752693876867519835316400460890311838181522777817647732091678921216587998853235891011742173371087757214355726258188379988972481229824108005917246465004497776573364440804645954426558980787743642048972947070617456279910980675761339880982585746678811617579437152219865262089872361404708981195390199417153941451081807726529234466130053341385847826305754348897606617133172851392975162094370640113585068932483764858039893029474924709921796715378348730763710754010925288070864639621788013285144078442011370110616091548765920582815900984553293535046182978397181304016067264035141733121621766999748980823551135580700226098483681147324786839255003541466771098997325691595959286609696628507662812669124231830839876194986076277445122937500660696517718750468908304420404521692588485579774391322289748518379344281129034400425085645433648176501676908418228702362258588572190812914646004667522025270132865749267024218759351361134221236716706581597573037265138313119886571596684689114625344292879527103459297070317371734673834949524429178309173089112275316554833573265380268145099342802956339838916710836683115973257026538226793939230386206053247305889104322843843386842515303197298094382842363037562420632344881488680251488156069473449748547412933899671709427322083592698813558126238643763663222839949867009770515034478843903877929473711502163160017116174755887278806291759453203150241656213200625529171586114694877777807433237812287548184628051652925439833881835828271391389758959755027888228249983406124047526283538699385279453716268455590452351963347961742258080583861130376249763837510954309522016531933393301762142089643557197977006771684971387961063938241705883560614185820440383636146277835973658098795412591566124800514371470570578405562407013730956417303593841377626761298489376217973197448617638348907846518755189188504608349402181423324206322761834016562907475841486752376480638989255947256584578542812969274328245566984037136686494652433761591029037840043532058849200950805783045111400807344316470410879009790740880752002991779901582223391827148663409991459196357453342033649494087921726493012515282833068846725287460987158676946630185200007624830365221645480462583187858110906894550613588009286604833527216122950128276571220756557441218606789440013521950605736831609705078939433979137174517653080344914689650639564423777301574628103570891128160403990167232849693796075349817754715246848978109854138229406097202858850300279711569677318943754181950846230128327495243786178862838176212530160947143876050269477964434688368874314803883482360196739547052729563823337266430827092481877285337333183796499977714503953040572520084639715570357125928156726344245008807080720432643339859503868244707425908236303962926714323074558087156933093064073866656240599109021172673037289833467515373761666511062596010053700289628891827558940909801688371933326523907124466617189051285367766816611709570361676266755354040025932202351286859840779053694594604173126840323628866288052729321894950670841570860004718595652198105362592652002577718533924903242217577865109154560175151234784116480328291434097132044212212601282555423379966716732504656413204323995437747000707979976680860498373935272002306289992955307321888488404292087353176622127614846937935052321571660293978264438272215423772506356828343559370560649198463345654738794541688421984674285447849734113891559661637669639838332741997206306215428807994497285694857604678350846101110290755501004953162410943058707465757188278969035846933346669700268260462149613092037802193758436491680269538121435669679670958895795809203887867743314821380995551094927178480944875721909075562064874245683630083170792941745449138771547290081672550976559313313762963164489152573119699142610018008797561214375962458707600761331856796164946729159992958427921069024012639398605207428826251344340716317070829080980531302257240065940956435730703410679446888382443749740635852222761490879096581958076931467582372691066037398044448791311593361835550931503581901351364050453745605709974622090949657616279583359376618347455921504923826054079678561306804671241617112937402267166579378587588491506057837105774221771936125376093923023863821336303619896061427010410613493704830011501248440628447856645180904063211648766428712878021532759922093781892970285091004760603683276992291527170254081882108197930947408912399979067439462543711557682022542641643383305284595876876829140727599609078253840144801149996311792333008348687160027511316937077904916215547285544093906006187448092091896092715502313571994843479518228965953642005757769771882693428553873934587350686318440793614923828492915033648674049102361847939387727421989777949743171149696214463701345311559346883587833231886433493984651516402915437863168190524760425039378936386857725409279963153246192406117466822177564100069179072680380572821811118932578353891844473301111325182090203889220702042508640550617353760743124017851405897250049999306950334933467509068459709155963358970095957702691363163251996953991756733707538261662012190068757744577849128425175242900648790672185588706288298872703586189906584322499747067132539220587152815820703630975624650105345179140599887987764121127066409166657263043481853122241392517155077934137515065691247404883309395904017114299540105419922143557661250083840160499531157830056120231751316154196668457323861895890595803665702975652052519062071276111642599931020880404774396101080700692915704055305943017491142842435818530599367697080234860549294918505003268030899574407259774441847569181448808232434085999880750559110713974206965670088499700293759597154978547176342627371961308332581994250920428757556290061103086845491147123055872679508214447996497216326657457325358895379499155077491993563366385199136284079942683007249912096592103108243862593119131055240899328423567831076148540996833869688279632404284711486580998203234927597733882422374489791102871384532394875410701357203458519914131516241213325338039863389125251811339910713656306024317863575338927741813173016566556444963192707509912015734217156513308112659299223211300157328234284356442115833208473746611409313012356393126724373086426817917065429865979074748972719180252959375867014562352286270434873041733207276040353150584121568650207865474837284197317307961106720232277003350166441894763206075986158085309698829051567245762695167443495282009030059737525212419891066113160454501119503744596035576967110633869889354296843094667811887058738991813985269635514488938866776628383491809805269638373389992978764023275180353407025352208963606284217838658954139406609604989951542724504625684799257433914903782094651790419247005712783987720637966840702518985585461118846030360778028636423652471926809927351406398908920962567610885585379989358806915744048079827058679766053526791491078740298671779549040563853330793926920625140701067689612967247429623491494437914352585953668828589751557073765615998668486800653788462623637040046474871736095859519103949179626013225540815147100463782838574899837231783308350593959413937118707845300844261850865287294270565726320434787766370133316399223103480148026570764973452049179841985651276915223545390633597141054568758507458087543532181556812714637289079240009750115392549421448513153094032535303471407887460819132883172885502937297759100831060553258031827243230488409778142252749651915927688958031300241081995001198024264326508678053354599578793946981110281020086091326574360304702061180637085144511096249613946301898400531454141091053489336953567558589906080656161891413902070431659092812849275499467572533702651819407034213614683823694150287978314199026054641167830619843527356816839286077672826937048175816005456381961116240560990583424710312424177086240844868555858925721801648326439919727448299949630900603758188944728661354978104381103450233199133676027400074409102172943530032525352140598649652762108508196033262009983148188748043574155480211862418388516306899064083377980458025178889005708620381358260237959590904521810294006870545043179739932417455490678681849182945880202977942906166720835741222561649991808111122180090835267009822932083764540171642181985165307088614015821376026970970617424978572862528800488988030868586986552740758469713708155451323044237388710208402893448331697225587897926343992962462172634893685635251964551869899154096505287016589927727412569414233080221561676230804255677330391600464851088634909480934766439250084809415223716784891546002809688667804318573569736803026756438507411791203636479575808279589970305673958605269692207223198962080330156259604800403733241780835008995333021726121812517483302816371710049750809432967062761383300003817061372983848741646118409763420717158340624608954131616852174241364256861973156509079538856362815922115541139503339483581371170927969158480793880324950693039353904379089107981745914228833978047308131220439962540877037227103676856316490167269814415619535282978500874319260934773993827367937445745786899411550816099498699502336459378144124378984296441243406243045423850158672636786345176083652616242957508215888516184986887652240931275395005509892169836009606657054642176712251620144469137200236388134028463511436630515745443286794834270201953442928376159872758618294900106094121315363728987139624551879735716736888093779814668504081453419728549259577395069353502272300518646644017705250955920241602458599672743210194374535523729216174094144382184343266989756722943490729674983811069682553991899506502821845304048784026591242906567930512927929787123188668584407993203194438121109708553655461444684173404569507762675623103591603039128111037412216091385583098370522560471794474504001939539891773901847106700627854806086308919368804362926910241525222653419633388058457089700056313251295947313999752363905478363280324132259647046128245882195051696125286917178864090076390356521182742200728643250927520192033062584972119077605020037300563499777150180465384289247048113130892650828294629617354890525405163203896802233011425402673543945570154957693468379440062737866131652243188261794500695400827611687461845242821700195172069775551670889589662719981359914447441214363082196316017621653215217613553544877993572547073475261915260116713030792362061714538585439252974284771657174038213732366099870463837085771572279696712000445030786394760005672962706139189238851427047458345772647335982966430780390539948230960653142411389195834038113147875591282530728881987568883211667254976273762255565064316525162178135979414431594769993493499844577913157855125146932246605406689806783736119783140663436734658357067542719993400067349574126939052919515617895038284710864847966976887890680256902476597491141793982814475126893208588625342628332574994636017499395011398688870782294220067423438332735144713774695861875509798978551826390466840523882058421418768779913649124195644086365443725064481411540675643170801020486083973186982354298540000517553945405965289541938052790512193971449988791316238937096276953497383042398147139344963457656507155207742942208534877453460552580088722320905092548387992836785393096938756675240708756746903921990035490064700565516888208240789957709166801745581749462705807569129917242337038291449476856556805904004084890415070766046635955907255758049794058311379073673150229711002107052287500445601313759173426030327468533291597348978191956864513089384221030941765921561286407519294984542337989679878280713159246261854701881007184631252048413019798200654716165934444882319164846941457749402020296286479809805637052162845843042940379454659427728537068499278812239544058231508165207524645726399883693890477876705220023487292311187755218223365618341960026903314071618093085504011909756327220034274236394854485873838553654978887659489238050115491288382864878038818959952082098914293131514352984575243793329045863047612911196216383383818366360093468860398392640520984006976167130969450797612738906100430123167286169204606673865060909031771987005088183494944829997508004094252030566992634718266862901911271881458596214708622639946462510484670814236412025372179123502579045392165718626726116463381409914784165109343459777391718448194163754200180098053871147904283843454301886823472372593257193772200846717747604734254307376064400711172981582727508678134692721828526535457909143896050015903866255452746938961839797100228155049224425643364697386678377600341974822431495079793792567178355540855618956951756145922555359773223455560174175079581768868504543730148461269173823459469937903094630213566292558593444296450066997382704488496073406470617559268790315619617863885232733408326117125517427059936566861576580047540624822389358943799900460124834674754853734950573669204556471998123209589658682606437404348367796805707857338215263718667338754930690131204710624023571926000079910246883118236879106011680341475747659980507912032832820043507197407307433282079707169874483720660508725765081609374913661574238149229407447950371649417154675193333999285897049353559355739021467184178946565084224703564719966531984280013160118692038333911306554498840020507150928231874185894340358099511391246506097099814365805263062314929451189040740831530904029540699648439989172747942315049927892196610037152912823816961211325173123505899211587866816595617267173899819798415310912700836543114698808143043539725816111154205665606478954372329175265155004778403297854508805675061648716489570628217217729272540985411943851464664658135112004783359262681292211599405001146910544144607699817247147003788205146008246054628058253461703090022453036522200789737382941704097416736735347305726830849556952398397565238992178313060972017886332352327167689703902157654914585882648109292179655256143436303749630751618558068912007057177994775614515816838538789100385918951267083908335449694747581348618544397526922690842274318981945188854040871177994174118000132705042780529321698327561213423023141818633265026419670478081567636128267840085842062255764156355442101063217936044522496460945875294012218892993107377194741717090275581601913669534766661008616584542271307732573866621839798257718718095564119864773215989804928531308735866471814742559027681697419164199234798158686754415467423796736515432483488834269292396260625959845222636214059153881147001098360282688553064427885832061367397062519870928182624894887157579130189012692960639372036570007979647829824713450674737555344403369920925966636843745186030421567557203894641240809658597751087627614588426469195221435831203333098628711486127315445310342506673317285378209360236004214761368688122669520028978134373282667020828794382744673234793311916540000342973167200002358364716615294197090610931736361957502143492590171426761245731508315536033330270030793818852257875346034093739573771425013138212903984594076537259307969310474243530342099197605076898400840503348739688175870375715300824161019777824233806466504147645094835792457020277001200456443152293110861782239499524151619056175322954318021197680800458495623380438351930527215096547310927434111130393104163511001834106822799528212582532307504923949327822430527497632068133478175410461424523438313327412185162624156765670059678289288934820777434529586727043574833406462275569879072936060981158255725885521274590965814715059959581075774879981577225764598495088550030906509458370554794688525468596273978938335780555961399093461048712322381513094463777797486108647265737316497917995433873966458258418252976537363574132184930770165508330638998832949329494471676115560892891884798475282082552171699407991011257785295890748676541302050499066335472134032417351021448528460487102494860858417706743220637430485266759523307387099305570183472879711349784942671059042454230274536687665373720501076011895390599708839471899136807613120607436220029527064862511037750203677908883103535636111016364602540091492838350624910365800874362559254096896846680417031679065942496907536690175939427567171943018467428818549682400649122835560725160061021639673416935515838818882154676123823651823689455886305765517740798950467902577277824629994396378179032815638131458397779276415293078544084887759654812868196118094805051334440915300909500719264294552513733489569882814174374761753991995080152276733743130319856481552379492515037630495864839436584455089857357662338903474353188295186536004926664950307758164233710563410188600816430265455250245474564753459061386759228299339484070537363151076741879081482814356510091717810677235627174120136701951329616424250553006945229559099123571790058458236749835477961363592399880185208093290653435113778663025348057572200452864899850894527271334313282333155684324420993315727421245676914835798996009627618964185740879557992417838043421417689192345698796687066696672687256320761111957323036377021761675656297482759687214143557311676604982976888349929919315589925203736317064054915591712991572034763534103833932202559281136105653327235316886522401581219414242463142610122579271504628126621198885918131604832522848142622733562882550642499438034187282619953195111437317862745080996591416444884251071524274709045231914418806323815844159590349267028006537301011054384734387683988843809218538721997999907655311370224739618242132802820937066764400113284340912757240937420706817243635099247065542083983767357879802663307841437650284721106735883928300020339530224914991088925872036960653794313867243827365460299909382422703207979904893893005514651647164985598892039825426817153328086617510752104711911100495296281994075512687149821756249826053771350748758976174686989620177687257032605371523140914874976633485878795897470326907732610043328442203391893465036709516201539347649636219283351522060717688033385740230520790715349976867379606911828296880214893255498213389138121521733075395079244327442980914669314148574275598486421883523414148350689055510930532930469714118264090285059459119492355566386614540947580650019795996483954690137463617053351743138100608098004938170732017461631031248228798862746478638986267555387387002141656234512684186023817518253478297358746551102193546665578614547570853081699049761981394494986246889180834894895289415170254182445234718583728452094892613377409656860345125222860684024824766291462851804761214683068561266259165892469248778398282990460940118550717846538105271280328006552241905316081860281186018868715713467543104724223149759498999017636899388664332652572624166761485734806269880904130991168252975100674823447675847640993203112148946443037252843986488807469117867014868572134648956920152615371807916695049304907713114661722187695037952391390577471283557236138789523693735344909205171081357117179659629340870104351365639574659885163150405971657094898597370172858182397715170341497744926456935941483847714320981909651088260985563665030031575608687122237295941695723288496471814626435502370885254586313357019245225985224114093749972914389439918087320638295949049221351486471734184478339173278792387266916976631860446537105037932795189708235910718474245755391655547012648397631122280125434934105460712954067457214928033218946260129914543142327217575917289485125329967366392660982689651170790505212506128990520998297167989529887487576900530312983082242167426840405704083167719833877570147767431005409063207871844460045316456229527100644021452203077607790030010010310647532623786097068488471347790956752974747493817303443049636874187123077514638197036869467776330614647600785529475746082964776545618451557273294782235771930409872424339544702910753025627961838529561697192300414500704419055314335859087058684793296740778148200511002553409306902560714082914964208667459093093609761982805155263736759193327762024528231479584630136537755279692629573789439958282794013778983987151661720404298988826345032271571559395252766215151584838377676539823580348017163898306984165684219862543673777906766141893973313374047231057623661621210476748876883218488405899347460027901695875933530975362173593242252261989341012977492704457254062045922326185418674639501381542001913125638241162392848021385736632051140575777602854330558430889401554965059859597098229510893736019881577989191960884705387434399505855928581911531679111183392696263140782210274767399851940851399191298528587160857178155697004429379171392725828926027222160874086583947930477576218909187222746944708848903323476431588007879279354316146082395428006918708314588729162342147212119443072555165123360742111530282687070603178313083566015733851375710035256938029802424893071839280970065235332432364525207321291843369813047748439270014148498576068980272668536581360120211398228821216852779573993380601052169044216300573026233104457382707366331692186396641146433484503702113907315211404401046191753814140227409614916882739673432891969783251587073416710409449433123106123219205001012579445311266313796798884769025805692908883260254735967182144624887226182128766308606057333035079724607428332512671867227218128466704960046435644417360542030669102875168412019415571715822559323050231180798547036988970689160177950339552713608996817777153722222083466831205415033027335845096184983691384521511435684968458773832749980631469711355705321096686451753214079546768332281124698506359630085093110877454836450638871596864363713831403291234573689278281235806514994832792147227764585378400138178748905696837182817630038039568271075028860578450798618497792708260794506211782431735553540259601694346905773391592454749607644025799571516208016746351068103128831895344088873058881869996599235310525176810566484005293110959082639698526510212924301055318026324205149749072907306912658317841554346093624354037509698380567685173822110492756331134141596833407571120092361043395805988168845405336460696634572164912908268258884614287824362190732980785777904345646341243713003185600416157886853875308697625653138306333596709910315970621224918401427389597714511371105961730475657018795744134716064696901229746970034803243145676872438789365647009689088141390901195200005297584757583406458524823450892381208192053504117817933919567757804409984235279992706210832931750271843977711547333582391989008284969606000251982628614228652491400024825338373366421756020214339698051597551672189230097569824949452986815689914319371599808386051194350654964347119821311928459906573824380418695042670707618152451726864947167048581356012094649088703881928712572406614126609842397816143119421720871183597829528096484891888001914731750582884961953628105918883766139992891428873015610202487546784634589571145222210400364202431407187598402375592871726168790840825687094280208720235334424235958209957995798145371324808441294439997826154398277191413067098438554997810662699911011397627210744391699250106293088887609039711805484236454882282458266243685677083370470275652272407644658597909976017362268556253363311386424278236179909771450045133779979313665442649444917101117441518740950364245188345389692341493168778231477449173899573748348830964857382886898657566097411208805888578044061060551110476990939660187653997546016981885027966992615145953905198629850063246968492450008579215057156992592854975084125705319738582415416916906012583401240241922451177253526524913579317621991928919771602544484287365530071787996211241926169331302105485117764865214189391762609723557761397502828792347288700862139544432692488864548197139103684281722839579781313458472128489136949745122384795738245123557429344027577178271688569933738677053166975057297874127339328502111116908214972797427620722628217147201732248258958718110420183295263823518952990173107789593695991954209806462135955277500212792354360945242193794752330783963279745804788614098954393269478528787056085231259454823009001283289019110890980720429789633271724063313112568674766492068728314624548636878062798608590460622311291742386922266069413495221076027757574344045452949314409002070182102403104643328022223791327238831554268910340782761432043641641705659075083577365527427299779433937821737490750090387899494861588974289902398371086064687339450911675589999065389306697867239992904089014978634059619734030632624518343969843190549957674265683852823147932222427830893525653237324047395733554505665969078609346423358621570958433111054634556179256233851651900184970263628713466034203435688686224922095908226133893773724620002092070713168387595978773343578098820542631045956445469493042887768378188598476090195651773893368532338620040045443881339347401593032775845461412449125260369064987898662867081704271775315006942823490978928160776568757988560005930411024129179135579865035699048269054559410671211408586123673662663013625051519835709700700570711382289584238870380948778325286670494520865565288602524293311655377182186670947551299526094172780796654839597891344013646143029409047029064223175571270570722198086459009297632421829062169764134017416652448900222055511510813773697001239242102818979223669736870706886915822358912908658360211308908181478944953087881464058076235515414935725250239776974468478878677414523525374255607929967351005775955280603266616294743628070752816343712545629023800343680812869438031182051557061672953435876747454735279514517713318787440889283198334263844280452736495213903448233435304465238502032533634532700549483139951658829040482554721493280917217171231618458950421800900678797381349526489596758841307973968725007139666304918175999366576123894284784264951028742156486514302997989786893438328488523544774089120891394350019845046814557666304792035002575903243859027119328578747936513501859264118018568987901210269257634136654477484353493475530994238131542851793663359981080133048187624320323857245642278670369994088643579402640516409820874967251677728609146421801389916706209291904912053402678697888162744872252717999342902799095918223686210045448305025130825067711991000446431144015211569950087009122416846742373689957197202085614269599713351970550223984158960926809496808643864547331191973841867056140571940536819634832462618491758646812018759307977881401751113350862284954893359751638855499864374902745272088216438271536377667325112451595471150695175306137176544645717803592752511940468778811096796393674602658461629523017836272264253526347079061058700823459154141922507495394814253533868656237975120535695518594239533679252650688978037875979969284866283368796320262554745363046022003960539394006150977796271167838829049274807664408126438116285247066464529413297752816376335100720379895609674234917828905388009949580188240799249384498659413379536020456199263779491425495258071892078392251756734688129662953737879981865472598175700786114231995383892996403117714723926622289027800001838394118865802088557266322580850949292547664823859343205209278701689673955769004244856027159109531405435391313759497097353936963387962521780923697284927714454064474874250316978038966922335299174827621980135857226117211906566334439543812547635990428033574647021101927217832038052929127772428312192650007534414027984708416008067067001993492111069500556470043497099147787335147034148722773695173932013323475650519672867952069037374745467562767627140354931046446502236428986986721367164307182391779283184368358438352067943069968545530406472534898803387585990353539182628584522120536340493012412762473316337058158060652498433569595252701818653001648076323876807457584241108169331737795959264598912669176000345759706719470309097576793696884888776511198491750126646123909732478297517429968392118675192395490135071176300501194770922162132130526692431281363043102927957743440002910531172534398449079330421405071146617953828870112079980922325274104648204282185351064767576999621327481554440618781334689124990196546355355241532154912927449366665092381640675096814901697039853755126899147757387121859077745020722721641367970854617727458382814053264668952163106685935147412917644917668368462506228485984007259756007583038739680021178237385580807576857996947633048361862116369799923691142494691648494371012994470045344016901708724050924680202349910463677862192188346956238946549392528094780752515547536857663766880431376756313348853051206467068919268829807709234150749513405145137968155352330877307583713557336281282451129200239275338887866993921493883948859726497576489134673768516370924248553113412866814103479005191129525387844132965819370733193834310111912339088855347135375275044274110397335544781941358371064140372099612152437227345046660101402817577594054912571766014197351168040658594050870889816071596696692553776322457192290080441318853267621756219037822908678725597580534724235416432703796816841981822371537497393796507958722696321102144620113769723660510877279046364726911426382952615881710591439828604453218544880757152401155599782798927150508063127819898395257740324374512213783399174879440420577685479306042216332092923473277045694740388822172686027552155199607019999735000280667575930979380011228329340634641377582565709264689931659731685809231276724891378603847601530639923218113646422723172350344948995626548111414458269564377646269063905444739487634689298758836595628905447495904835663592498920323513770814739585846409663659136167408555640111341155042868624245194748240889085807830627965929292101167633478096301489002338069997312826744166325168560262777597887145813095664683111330265981016793477044514216654846935172359506501720082708363744422302304149434850234910407877889853699190477478194585154879601732135866875352625153903569929868948841432132672283311731189534054900102612411366060319193457990543200592548822582659106269239787089228291882706845441652386857472336561600941151983541585167685384214843933491622327736035988514604476492672396967692813674534070514843846629499884082611985457057186985893168925072519303136276789643559325713475084822307357065673424385402762773130706855979729066705320565457193814434685070460428359980029395321962235554067696549204308577060411249419801715672531482491496079982996599007264153612646911047058342988035222642598147694713165709979070139394852078194384232903736010780962006941753688936262383575561909407036000903361819753147978131782186463341762143186419431640179729945250710758903425480842983899368369798346261169307066669548890768122666214648406569443390441314368974633264282841561788218821826281413229726014748545996971744881071998361474729733179341902275791834399986568470757441816994739424043769518965296962074619578023105882468141248893589561251996333190291042653922094742172610361785437151927414688172524381552124513917699765254317126819236711926633696752395197190423665208107404918309111535680544663835812340644283153188924149405255659165851748680325591979771754954574996676794170145461228766144628990744287717939065906530278854034939538477561441959796395011285453687688492730640201311671811873853686498939672604324735667782070288683489650507002461214355148585067121616965534681228812107928060139043864176963560552076485544131660745138024441535291624588165912449582858423360619423698778718412382612598594310874290165644091745007738874580566747864776793774243154815768400282667649993823577068712757071087649676371625358491645797922014074459593003903564652453369496155610890475647633913281946370669080614950003301421872598883331504530826241557639726713682939005828714178849181007289687692398963855658765936955308832707286771034367916458514307904573437707633254546060205305515416893389045235522083477416347837917424880020240061099880367197834555859660894385341945219901809032319427104315904075659844454180461563067419632617426409755791120373418239249803215133056242619780466674176944389528263132203700738245486363177426286004358766781269344723776421779884045723412073664211858770359972319927146685662879779558574944467260089208199246450242489202626186223815386261023559195007297026386509404358186502880491713003008667371203729240696718074455210595709270597404992051926083933696810357008484979644919742837984965562722623373099518283153797489728326006457789417159376383536841685013062124741863539049972889837838529810400987685163168315152130979749692312576766215575281847401470184417342343388292951243051797964346094955667756910592280634330895139535466591183449764634764778670024659139494510786508889941484086844493959901616823371989372729314106829954734432837753715271727549880403226855635656345408809961621154419670260828497250621583852216550198472179500691176823200213434204969868847370369560169450537493100768428715880118535148641501468843061126177863460078862019325046471745520387556155775408336692183614027101471501053607889088819368916077970398591679490559391522525838544278859400529865059517194120020168277432363476476809893840944506248593027777834899685652310348743106163480874449821667801022162994094963925732428270226842554857255493145514469839342438292900677896648379438810999956029569929536720573014372717206519918256000994569241557513558808636804873490490114516264446339807024347932668088476727637430295156825958269240389156584813045355805219761097929619538484873965701911350260679198482573199615927636337310303558244738147671561807073437161115413392142518431753079758953438190452886381886719524631559784233120029054786457308593809655159529986168337409574309858264223222776199549317209284440928296567210845328197979419383326183357065565588990169246639546020103715948429746260461295762895723651468078881607309776590160707380103145380753793647574368382900039592731917991656386654302081291669542770318323271563688948777839871021795585326827926229438657885593215910028790087459639797066360621287971253545527306787939625929719338924536474823349933065515995637158745906842370586667755689694447106946255633571887580741495867056577670186279798587009590313998395669210845370708188998123282627705197475907498053539124502808651086895562085243074026952170462592356584883973736378925754350680374792042125925366905901304105928170795740699514467666444806175318350585029598544325996540129623012220283957992683970905903545431350275374450866790972970667892914179131351406997814352667393514107909401050358510129574287154000105166639338418502553383407805845168657353958405619385442891002987669553498456684419519801800224701788086207961254255009458967145720598292688126808615883090791721497399267630555506338395616691904168026656169859252499653586966202511890075532552292025162568991187047223746834433326842290442140292563926136756245063657888868862044313430087086007527693929412793790915666527899406477675170538534518435364083610728856025679888597603080934265464932604752475977647028863484035614670053453856189263742582491869671759525611231493994144099036016724537061796991290831983243725667112908157089001724129624879842047058481842604250695768053752053611153435825560404426315142970225257220518917638152314255749283457193717356143723750062177465170032443286472056559697730418100429520295289245853169724345062860995283829373278449681522802172877659236759767204105141067477859243570328795602598152369563535804782023803755155767241043380780074154571061087872743525399668276705941184288647087999140983246025121357827873477363731562321006154086905719986878611327200870931455510200958783457269836857748610955642601545701498004843233495110662212785674089895115672319700083575014366081408397533109962757069056956420579223235839883122599985368438339568236781138171294326492955832016557944801956648682546235292768171372480894836680543473562240838456233325088543310654084704640037253492341273821272860817235002890068224786747716283917203286647110598011703965583984886725778598540703129319130191556894239256298234875537842352072300196738112857553536433245185457633566005811155440501886965325848980961894347938716192732450171988183411028474755072641931150171758099406920613225685831866157779137087603589398993114558676490763543359765095308101147016037079310084358225208255084610365393189532641444963027273634200968796256867114645761303334452168882838455195824937446010937865245305951603153936620270244619452290416526599773456284319936270031803399659248734094073534364848620325239333265348601724792928045304079119923262939077235836985949270913922022025848990337968001162563863824478944625260011660707106475958342663235298400642394059699385296029257097811481514740303764460825171844227183076302070299738214854114816363565188955223263959480243177151864394148839690699053437639518135897720443107957635294550371682399690861088604584547685534647534915272867471942881823928984454960481563651789459754430755303584075044209870303871266497809185084638148461382154930948415990641072497676083018242825242204775391364161690993502665929955169347231256094339175168810890612584103476201469336217834872626275518671854709006138444512014808376483534124374308378374400732371551879588129416290562395921744160248052692639616256195443481473961367507445301015847139625828274096958834053842174242110753766378457671891246246695816468069198397586280063706068429017634463158478836573498591545898625109458684983197703706622203214998122761205804337644418904327467940727494134349347509087174453274678837831178326928369590501418986911113541753391136453407380594841103127566008806874433393891642994681017726105611616473727325539138707578074983865161333661548453146545226019640271392622456834562646409270927135136065857122115946545706974928078814174405335700073992986250885421494150246395773321899940652909548502814346893453337864520905698824904826888286406687226660447561250888261824752468243634633515191808017969368029919636784288835905392791844096727312951437655194558412038043747634371238057174272895306924169865145466446861925478784079162730335875015963902772704243419089782916001166666818280192704163357303230149631353001813045992721501555979951247891632199014783107760738607370478892934079797658613517422245636541707643003991983307533098269895724829642313822440345932505143256724425345427318709732480229485488312279447638931829307990707695190068550493426471102901185482094329761133325943467475481033176855374302895752495412524083552357303810544864775143406028043830925618261599305097056673538445960696280050124819355472211644034060005152101481454422819246405474790743679118547465621541875105518678026577907422419959336573644577997028786945248197572986504091211828944397062092119200270215475117651172966073228301149799819286549625664014682597858695534281687651613023748430643402893012756252772447881132469208862635316445802364146633431198171872873546437809095039184773791416015642718165489466220984402362243929558960443490085311458794058453640080291705734343068875327011557812939370985059975586301731798692883333759939325805870643312357121510099899234699591526806908345843112382673300899683341343506133956365814625544897251008949077083977089652765035562575848130378993068140524066560025620750956780104899499418452446655866793803678513607495852779464760142557368969481949169151428833287095332955815217923873687300614387520780473646647271763643948639803186293166871657407138166150074988894526884647579888097939597927862119042302598294081994311453570964302945465963848618580859908543149522673855547815008141937543933536066413454256476578126490019901293208782822119687597731129892394896154519281271244907187316012437762153829737367562006433203529475500976259641619034194948383481156811875419307343090215306215116864088124242056971907311577614076800358939474669428749899117078483229360230839669767201639277818220120498236815567107380567523040283778392838599690425824880337153156863158657682692705500370811665385887447744214346077608957658742813189941035061487817552710749616204008813400291558473585749649641484610568417889340056669796403813882654217493662456552145249889984194474825869349599811931964936388977266442117090982097821073267583357243889125647816490831276602683927309955294119096981651476483723380810862065175142413569831227234215989091326117080729948038778283763833302383661320707863551216447001627557264094639574767985443006751728217796005752289554271809685601986143545434943823951013877478187423876274613404506115746894703308309075278012387487526053403534467246518249838249134688961510083921601160526188682108303401045991683322138582265681049789617792484069577614327808809027332253045740828970720077198792391737674998142184006578935728706811267094859367902504978438230589525249874107110968440729615450835921074124473379277823560518626539306483073120091324825900373418060033791596440458173686651995591329701783757864718890679653673686857957137686228017286476714609385935017965871821962951282090782015036448164757183298671664275564526603709677388052007555820128920988959852616996147173127204979443262799873918649793850425941873060721124613202982073644703922132562042640060615379536385935579450957764789198785565304806512220374756669560939898924036124210267556071951664173747433925428374117913681589113703588655602843054399442556783694024830856369686047856057572654128318126052314346254982109452567033882165616781736012388011436608353412774679644931783634106259800966929293118911345417179643271256636109401411636982231944690479032608910579566642389231915173806232977464610569388404840300833004791800953756352876520222116260194664073301097830417273204249307903587855883958955814019978175804184339365639359253623230113652627945013700066085650007914230724233277837755106583566251162227774898681962420466554892637464637753181676209694252911135700612690256010936194654684227291715814837481820581245456923454446333957557370700310608729644962919367409191813115851828479631759968639022895240064450327279405140573897629710281502739300029360611651142596100787600830746340039561336922750111383136773650778495629016603068815944557411506558551905717658583047945448088854166708979794048702922843212968377753943683353469724318840940864339960850148628165625708737756350036267460442896235422631973876518942978451802061264999391482313337410792884933176086578073059331910853076959937151311639799456089866315102963334642159018525597455624839795372437582391277613721722750539347954238695105075121730904545945067445702283866591304949126505682168222957954160978142102823219386825557433254185891576537930190414706093357581229475893639856133997533080667824861785714202848576165275969060545406747956241131434963743961435736096167416513883929038268463084587900278343459075043557390522752320375547518474274542403978433010148448530816315341822302088094832068713442728170888481870509907493928665958926092402805421419318488996266692082302726380895935131024769753235627445764784498553067814249800723538868899132230335421469621279624991561570404865501184876881019836503319034640774990457606504374542117090424679574510652790261084546853279650483956977760954451544869738637138642222142039422495903361914038466902009781415848789727870170307072970284232958833577478533845598146993672337498338254750208602020234641559914929972887370130794955979801899613154827856549477044385345406061527071483004355572564573391699701356247703014434128207401551269061703359963748812612797632321735397948036326502667338021229788620720235685286768082556627908147317955230297710884431148605778438732446676020740711690087073983746029206641646536123234083506948093169241215602403836692422788696472358272563503479156781784354571043580636542322048716620783424645935086468576756726610896221179539755817023330333527906182000825998062844343089605510520194607473438005236966811351985088227069037967077240780129256992614737061362213843284150899366158585543379931223795808565452118080856257688580402097590796861247735267836105134781612705608703135474755111407238946589194229725246584031643292358423999775423994155615054940214005547331869058669718361262730033940728338322377169004754298849321336581926655301762813063927768871621065756149709208557782858362397070111591988320120349107206945929398526953194421978639300142579943494303126116309920061680674376666337802392868958885349964491026300386032006581377240802326951810386157876519792455774015606289020140074306309194403849622520494906118564884696193021167598726920557768365994929308203101445755320014405282146911695766534516209076312963978017024874836509348899199167328434109381658522086657893051990527382181079185808926514616664824388787065873151431924371058837644039663788718063625034002535638418979254013371781785667756176511619172201029331345635131133341685532288175443215788166679776226225402172723141916263342485243561449869267586142077272247014056322852480148517592677343453188268177052415115236775564820130735583395533275596593286281244368219933426416385185017943352615803659924498766711849963873283306886566710700737545413729421447234150197625768886574027658283851082480898563761534166682174789085305271572398673031868900725056409864372730446624589364367376010100535950129807248121183194587523720097930016177715795375084028374596987484860429555678877837945460479403269894759565694771675736743127764142083208223572947591908614824059391571403692889514615906428674753577887082702496463913791274380326543555457437334549250485049784162035448152602365275979482241937585846514038211730266158388939040911642322927508752296201231120667092513489810540026978457188363447919398515079680534980517439588570198500439840348283571259984395287086288086981661164836406265737938130422124997228881635709897100561407718567856808858500191627805445493512019607030531490473843524674325682281028634621713709305212637001033804034007248135260076043515707991013212340461023177320594878768648126856306917005877008296475426510184215478329209471938727660544813098368919525301129146443501754550766174036647814564266378511860433960890386437825342376378083899139519530115755897953084568637577235603612184793499304434099560122832313868306121625540609815252496823390846808312747047593825521953343704668763021069862487866052678636443787018230047545457888376970185341139846722802278035793864686529416072188814285491351529456738354298121554289977464822021742982001012812037810239874112422300105147185353333245389671006384423973879782800822506275383377103851439347357671066780522412972698674608933529395962458461522487630323580756438603244358063457110517257424532522418470134066606789803323077840330884498750741759193086989766672668694702404229614405442408066496796544181768994774097945860746994980406368414896830947867682593277040237697812574158206654327539089653705222318310252945365819594812369604108952853207008979923566294141287267419149601643016408821376810957758768877234426731178773511354235678529098827894037270702721029750162750149039499306892319129403803469551408974967031844475921723540874347466931580616131539899410905761385540137476233902244340967683917344804716071991302863864679524381334383924444849673453228636820051047791020699308255077730641117322398437542661641848939263314008750546367221867324957289670309443759618393738509244259947059162795931313996287019173095325856302787695222503348181884359853410243157437764501317253993450062104445641882012838106841526154482385828268288032993231867897078752794332889677222093545994250763499299260235490363698910803573481342349868546283822036147616817293867877947516081795254896812318016161772171195774347538677403695197720693122318857261327522882235389609802804186511752691216223921724050542882396738513748374834767853267990105367880976546690119888062199827338504723006363276363554501341391354532439698549902474201308122062490207239371261681074993674754316444641880257536515127942354815368236611799870942328195448643432719199008269296383545197338859460605106626881199275662259665137455449710487101536922764483038774464595158863767307303952666332497268572910618404263021207770032339883191080342650249081247357738948632059623383588709450494602049344370403156962372559934378255645469915084847110266709350412819345354633960527473397653896139341131472056529394803147764433522918527123175858700710090770221443931297999322350483792438590759440850750875105332232087823242542471169919683103842689895496590942888699335751529108671388046771534754008128964254000495535859393257050471903449584257538725947947938300990491300335426673522059837236335918505045848204787128135709567002333209637824322660906147464478923135765362011500010783663571440517176607956536332633732217641168935114445714105060277944668338108185039517048269208959838621552903570585111172946826752633160502269453682350943352381808380671657493522408628272894484990288237728901342916224719938824254453464151157824996188727739246641343834282128127093989222357300252599367152281758168302904775102536909606576145051588350383095206662379475749548867112575543706419447642866060906433926408220139763054450072908981571503692426884538743528454194863513058376002378477705681747097863362025672623667717326672468466875936926455220857541664563309105243207271809965993227717937049616692919265924533957166345949792462734452009540881043274035341591703542980381174872743158612841774905592488822945110383522310867835760983757574152561878443432366511322251467714193600705095310577705936625129271823459365645064782251343979644030623023224004907830270239601740891765685926688614933611733247521749467821759973704355881524889993222569455642070379956575838411126744411548402285869338940478554349972690532622450787129030082105837228225314764212061994626971692828794983881395305177245017628369920026430091599154284187924724950178612040177740914359238874949290935717161319073773409747116589560549039266948452394361020194930889941475549270092147486516588857041959897216905818418402077730047775300353096759849846472912231784149376897683721765920367063087860365384562142866428592510663333964217173097974636322536706396053493558150468027761428862220683139260973314126606020739845647686951092833832152510043236296972439444792914905433679782641045033982568707504014960269032467283214533036639347506345129119343280845483375601282377617976797684667718617736612580308837363055051409127147350926349545519621519739203914128498418542193177025755801853258448277563545293999476543269698790216849453590358263866416435759473967842921677734807863823767153215356760870976345882851970923071357016267592536089277579033782957462229847183003687539938144820870817232188596394050676502143650226063387727321603539798964075377951748613699702884374240439895135672391962960540393732284314639886406958083548546015478247644866792748495423818691375784601731907276186505567834533225840791152409740111893988024205487931405434326958646201335530007074395578307183504783445581835296741314323191907029044673531321848359228174398539494550398507072687191275419530512643420258786618434796243601752431467480957791126694026387918176369443515513362797128013969186270525970215992183732064301036813464196584852233981743902540620532610407444247886539122677929085182722076980846970605558117507890187928986573721799063553737897338908777736382381896911789646843712311882175345693792247055409535025055241248169012047625197253689744443321244891250954698579514988081375611480264438900598049104434277598804875595499494412597459237061873568471912242131111858534010143942988781770708399933945372998717251804037621322247158997802108082087684518106293874701589414187283373409193563159960601567975834608534057255922571308498245891880544022618420975020850896707921485783606999254291263210214414205481116457315164276897160665263197885683035167666892202897216532644124740255419959213901862848086874448131504371963837679177140350207087464507134557248965349194354592314779027633196267798658680662050577253964824880491232816348825966072335654749362570267671455588759941174664956583252078605961357432200968066320664514801788897854613208814137620304221502574940104751114484110373801581458088868851440960509653724903022444026029101116421009533483953536927223065270485522943442720849777164013193970451092047802008628417188085927241035996360372487643123077307094298949990362976430380383633859336666050466572969444066226525714044833916907794539152598392389352805242605229284991671997680724887101952307835807181567502114089775208602238418738442717676543105301528683749627837504562727143594541721525778208645933892428091339827629577578706977572046803351438360135162538680384315848423753640795196395306833230863128794892042054283334381310371902724396057938392775229825177329839515089082173339690925476628479341893996234842486830880382039425056543958532455645779354441797107842339197382551592376890253635945890893704908173011827706012215390773002591604553385277100296480354349596359836642786334045743815771003007115117176369998195297367587252877673420175989183526989607752360756671623649883694491877174719675833088805995835592945958778845510061289982843121148972168948869533153155107828158424699256598770027008700541178624726054677387064064905493953842057581376982093726487884639829568949705359518184526332373197065790315705988085209801679254247426766847514032087731193315969338605703457256588909742160098911853788909969184314302125532981811692386549792286340788216245340680899964876822966696785629898168704572186733046344709095352903466547938530343146807495914382012837017260051678170880887089384563056845850862352724599402556417933987343647696206823866877022264308742211612191326393656169658741021627483494253501179137071304132041288611216756884391555596082731096218763562350905676098942433456732682804983457218725764032397260178161876275431758900545872804166636629478002119870265790272311903395412187032618226101179056971127587216504520856668028444582260199019752234065573823055417821500307956827245340935556154042774711665974913166811967549021279576366273642336766008009067405770699790997953558526304421080051882822231356090776508920488750555500956826552089234613205096212063833159460839655155087338051480861034024256859416246706610653450293928778143597573030980068073347599759057085628221762041782116337889663853742038023890965028856660796569383832192982174646670503619103906156472433175401350098831371357821286211684645160374272847735477697849149484367068212285237909250495164044067989068199424498558713099061640410877214062804651381983606072328533172611728005318711208755271731080514369531576694695550164319086305600151692972105382152639996815019083287053405601720760142288553344286876971616247366440354781671708546970234389441248264357693268852341069056310276064192568262127592082875832103851706841816705013543175561527477008566887377162909412143759117048744276656218169916757334028606459310023796945016329447940408510813380632332154333360253819774810153201869954191339706345597005249325271249798135525159513625968272083833008094326632411419440559687702375219431449273547393032916612693435161607269904283691651032216580937875161806671535417630412102993112716661370740391922013404542339705647503478769454681706617734388764678381048392241205317845244616182387536568720669511160475792995539102226302474574663622205249709018766784579589804077015215234312435110459951433114736384166953169621808250543362818756467528598883695411147918204649240698452208057072885990500211268269685095815247070992680733996451786241897868099615074434459326318893833283310695376887510558781303266396451058615443689143116780048535379740271628939054727198153453284411038812731514303564794702870681240432384829550477445016608210818034605318907883607472480886572822413473399912964184799543817311646428479024793883843347185394589412671192705945411327289006376391473619442801257161014340589768603529463066757859122906926881898251417968856473912563345066702850075558336368751452542085848918178499550772222317397716230466494352109838553800882296577481300685225792939235582821611964822213492637674200855537165863561848870172610207658929067751109546525860066006962714724798589294263474219550732822405678132357175000863894128450630355118829869107858809500694327135557558219314791092965563629889287489696396259640195155158850971125854400411118909773961396709751091535459040580653763031338080631821285734548904972630847277642084551537512858038659869479004962772916100847809558083621600640351408255184413604716039975061401927882767158041025718107772310309684207512638895818012980679360246010590275294989580600144560473827209121547342916595360628775362717940778097959447844061317591875022561372761853156739821753777598112763721586528907545703692946423447116274143911512612398669877230351257810083358921716856752769575335051755988330665199576439905379058762598774210723730785791412558437831600417649553529408239440678064417187270101727749671002502802809797233399042591306759195900837894433115511407475094109545222426678380493043633383075961408502649871965589768182615637347858479330879714842696066232081942244041840849905882067811441678535143642696805116964784935530683576039155408764228360691820275936683577843364970074975113592455345202431072400250710810629009394929835458724684045370214665048740463714178546991294426138716967602018018193603536119735946728813619003273217732024539294349812152733772386881240687579991605213967823877196326099264592961819737107591530738364097197936738763155303653006857950146157831016302800714569272735323251923302491151694865181945455076367943449039216325639259702543874372118490416106725425549771105616015443467034464901813189577335414415274152524053463698477735727176098028116140020929058074366393728626068531095152896424751263991242645385944681634521021915384372270800888058537904158938052027909130567139013490437409345756048425436689068974412427085547344747462075280984484860405069446536501350831577877146893674518328319662573953547758149449621736191212608035687498117146598394066484385622318907356253203368996403974658696522221812006548979776669678921649177984823685577109872991862314797771427726727852144879749009334331709717602491707695695320767425820447237441666245446502234945344245109214118083546699714301039789171780909010862429971122624578788261840764197967842992117752811409095072246170131345676500925046460016451614247786442046631390648476111056833281646293324938271019217118620903811981285950274761681368129008515028153048439520245718729039161903318630748705521292829061017907623565049502299903407277861820860992316258246888484050142453908101531497721548199535308082960950884750045623172996665106984990164512645941790881809681142642054019231824864544794830433319378565696273164811487310274700632503891750468038288116365467421503798918282241342805347506614920544580822250493435833321474202348178883761755005480487796281957376568880475988664427742484352969290428476044686589947483848260446123749673266816279616669992158344230194858735086331163136346407004815847862211388271225706901367473084101934720776867854561635989751012031571952373484994911077468253828987871376174692708438155163852319100991130578584038301075381121609194090629117455614225197024435645754635256920596470830956150602937780617435973514516554725627407297867522383348594792417578650819158502794872410643515555548978376688055053567336747269082567752321057766927014043506305914630244640472641726572778225241132008083510448146124815142372815476678039004688991092050344517742567627317488091478033837194100192954400642505226083429162101282143932918408870808352692858598941446218496035105883972719370354304244399948778728940570116643654988137580906286920092994997599063908353600497075002830765644335703423503113324609801814104191634150773261814539256046104251018290927338717196782275937291372791221848979119573186752912016207406660646837734207118139259928068457704100108800969949070248422323705188854660684502675600505237336505696808163734564533552969972875113676650822766185240110456679110463038566495306958901757390538220332690994157583347645372763161565643317223895110888330188834994890561542438994815397703662357180678537944041044683210803638329056341020540796140248635548006608523160369531818132444361570923485892346151638151787768446277038002648788532273842402748302822582167152528930697230243780572385474454975954156930416126772272931874479092016053262616456208033587060651143817804141348111251459526853018353165158282017617240964945353770609651168419483294447916074629568660087289376085861151466556626027220928066014449576162282709094442091304956894646935511426650713803945985120959472498891892213318409124346661830352556510948180654521718427792003168076098658977315294469184454209609837283194670386989193019988702204152430544037206102082802542511791296892016249544897626565646538131563688382746275560511400879821318627323056088066777011461354681232061417694957112912821478905619110605569777090113068266330654466290997872532488324470260698026966090453409940437321286665498295889082232226389174401555766348260399916481038817144131608827960161858825521142512790975261196763785482617691985941461849658683597006946825154989913459322232660223804463557455821216131117378099145279088847680950601821854382936599504121385770894282998358151188845039220665518836864006048175248378693490679004853295663699913175144671568944488551765432026103882953203355665382210387071713324868014587646833477989543509878991479627210666981735492046417114747703114167810809740985881111922620984194644613070473169695960333030993416227666693295627028574466695418135572932128421323279831439436544127168696516518304769699208936917187357631722723672736344091646488727402133738178002818884437376759769061274166833905161241455320116676810033313761820193077220257548454803570527160524606121585030260386421529050992909174303108056693512760986932998782537590271301876470076512921989769215909774208795307783676270407051656710297575244886155618376303581259250903867492030620887899502648064034797488139895985564055263257784888215524243606299875004361873525406411298621373285257199866960613768065558471615305883411354061830727688361448369813423507491497712114972005584375871496774041679544286648283298565721624478034340570400120934648410021466453154336572966898789913094474486618175406619064944958653824431072877448339429138772295554319821211926929491597578932520303021742449092227432247486167802728766376432184653664975587877033829297523989214932260595504959909403999656656796648436614208200133069076459128596221189275395710169960115863016602094271501315818273539663293020066219050669014708816344913607046139117877046622446479464278759459037950515127201676730234196566661162631940864583970449423945950260833499392902395273408734465111661346896396250603780514376690376973376864496065302297966712942330049232275966597875265240205477790276518780542286234097866469783781283743513071679564962578286864664930394858558393266619663531544427200031897963103423925943956564726659976501792708219490557888062058296309105971293057329673846234766234230783827170095681533050946299446154996887655360549798295761446641318305707294293870205876920867384288713164379539092123462246447128060960511851141043938446415037877588419960394938634180538168585368916521315384975681901492314358494549458551902468627540231998727984546830754127400014797152516232963890590029700859395688229337722801366287628602443551759892780322935920364701462110075999743014940286030921385709034832199503232813146269897605704408089108980517415362025588683751917987394438253715517878441705866944273583677281240005896779802933234721494815121301758375428616967902886334368545802067796028796201636692851803553407932987861422010398203684842886814476394906870753270626120036614320751640114680758890133954746192030811814166055197417188345146402728351474377553927405738452243606333576764675076133686373092600843974861280545914060506059649957427749332781384990950736113211081590318086147181471826507795080543541082620509451856003120052418494619716911056883624473869617883748312841544827753783944446427618446678618330194536128521489296886003278278402906430651782447907214728706101099374690875250297146923194005150424795613930093684239049364122447506859162863468210594785585235275311642781262566366131971727675902229088704904306105054587711159593822026376046190769586629583246613461449984060258441304657163176696183854184466014093802986838504444748121359724206555421914201215758973172198724687670771665586185598993942473894139694791176777603034177372468397656374210693709927932832557633070843713329762907814004406985949189224081227235298688058046576413478751243631283932576102171256982265076276565434114968839168214837065558409243160616395309748539480985654061126372280004516521385374236487502460047587575857821937487901739415652403471970505137402593534297564848785840225518742863107801747551780986579669255001143296534662961816127574860816583848451029695946085883931966608063602227862851909281923023841319309345873151672431823140689297262415447219783302545600612816972582649099796211625950785683686866158378061827043848261196530490628945604455793704348970209182629141293801612079894570029311691229683858381307940434382467830957802664053889606235743035018485981571127141313426271723450749344991945809562508967199388980679441594894386806743485899874133934024252376753405064219545657364376206980721020279459269385267789198804522480375654659611996027319982349872573304340517212928049609971812020360991210650450257190642307217811736436660232810355951465275148817087243116873910769404845092180551258208855009776276670499092454234127943498671540450090442612572124593663598424494989642790682505682784932737381532278535348959703517604001896966798489076922507181610639729270788822397619791194834974298501375217174294436153420111555224221247699209351698015871162406468659375161377845706887395623756592902947883336086648832878489478907447071831517738639321421520945993345263757847798872625647585229733331044647489707807163599699463095937023063972613645353226197006051161355124885452119681250733452655810768063487218804123072719490797965812976816360905918904102522109837676736874235634118245499398831880423761662269942251271389301503658170570872758580532920100380837805687332389883270481657497762475829159592234258205804103932034421946566380343086777340438355695107181781667701330687399483704688023608292671237759005570815276536325066660107130783103250563214437786616688871343502441498889853646848107738461475031116301111329956048553527118897266539085143469132674703135088577538206096217463933566253309807826317563327262748889834964864464652372488462466432022946002027003405128387330974966439376857366975233378846666642623090012083752868384064599284889415305447389102708847181947228655781458862984427433213178039211823639967036955710918303089467960200173996614769144899006837928063673165589298127523470940285792990054477441795480239195661147086557795792920355560715971383097058163779253565161840947098719437588794842755848875797786910450526871844279898160643398537906187939033270153971459110790695613340852527712063480748340566150609001932592273403316377654859176515383873535287847973933802249669607232220029606303497329577950063201788636991038849108777162944640149601899906217123959938060807145211103950325469105006550572543639728432987361005958000355917700908974330240117726589056688470577762096813118892916454075198988738823891146191951986634954631180684100630078003520845620093990185927598165213691203642653067763967895090850695190473780772005572683138382014729937010062438998508692383833118935232204865150012744493625165433121910504669905709427559056444326673298487590188354008296234746611773312630941377877964494662255330828210319563475204498357535106225547151314444301794197995415321155918964171569163212260698003505585395169485706028916517929789659584779399649739716356813097122657039161136283897013167993953034230512366433319330435374519441804458548085359059549556128077625975325720770063450105539246452861320615062382228457080766381587785808380674304881803586495473594162013268186463833833734324998289496475100506365893518942809641584898781998700355753956591603314079536085629517834176883709388477731410791123602141430198231833318866447900141952878108325658987617149689251231827543565767848352743706077086884623544231765335759778915863582143812206915242366946418471619199540601625768763654493894366932962349669735049146791012917704782522379391724317821462250957693554996014122448395830997287263768402850902441504120379139142526000034159409721444531289712445299040975008230073083352487757698074154923453024418866128005615612166784452607626164271057085476550987282569527855902405069288754806721253931352022540906397248856942978305505122738550905414943087283327786496449200369915066208227881080486678161538763300736946983449681385954694458792523274326480451321456926213989399269201855307629032214617036990228996882689440756444403029146566959531793763194232347319988814494932555577745643340675868572856305017521010975915947643439975336126332602768064719454507573921591993491875973107796545093557488769406149357578570100892032708354625482413093720536985446601237867228514772732844163017973513882685801754832338908978003417608578200184335887521956804029191974432852318131669195560748279478688445475651267979235196621716127609306476881447809518127552115700925603314497664776013830238639130566552541898142340536537873517680622551444238563036552977861427621948716403363927898735199515165024870268452053098675346520995402246017458469571571574078087254414742582749711364902491889147016344765972010217804252620853250193770612350076906311729099943692173425035281091621116191205569793263150339228661789165300097037711050120688564982814653926772264484170280585938265625266505411068652436732090150362871359806096487916532134074642573047236055032764537861519888461188518689745195469320901125547920403098125544445266386578225396755476388453446580910708138876274472190315058853984092742369576578707497222227631519087524287442622630302482901524232980226587069947262890318214098807331446655269329688385311883684060835487044257512109521920101933244585464577480439372219423373976020163577282449518802451643249465905977068959176322068569120630969872258267491825698861889786489245251652286177876725329679273522690666847375140194017362892007790052425324016394633844138728938250611686891942406290553190380593246489671414972393966370373420547162001923364508531459461971602987451862007939808472035839968420224385324440294001982782193104199434012438212315907286827526168975976351423197817242438490576702309602875212421323189166068769723072718005603619380416927496396912840792686746639824631163856707635861694577037554571809744754434774771178686684393165663025397447144019109576661319893117818391513473482642740613994825029299416930368666107709835310952285540254061160224752937124594111648108513917329173135527857303424709728276998964731110837615242355921473520183967742253859951857735227590961131533268585883958812939894956138792513367291851574773000046839052905641314996872529148882637565863887079744744638376114839901532125417320650194118550295800164013183716482763758387701540837283346381404439018037267188179759985730234901291803356012377656196705281821324158138658120616665131150774459065062954987247916306979684012033735559712246172450476267562141286315701882489799823529212787870708276265839669837766321875269871364194168761682603531316598134963588640909577097811930687462096593016641083122820008312789337481565311015639507124547147093513392351714186291103301725046492831186555072771983301749884861143980936773731014156087849067534793667259979231785610550788146145656339061432424085112529802283828301103929127182255434075097430133115316402535852105121800776413832606847233427826967413436280722825563447576953782141564515058387782492556926424759724594302510223838927444660037774684217287983867813446746389775444506265383976278332932422016930481216961801127220448709894307231696573272432166765182387190968177733024691629672037667839863964685590322519399747966034488335110183802323964956608993227447647533554525116737886591461042246176013577487450910948948650009045428732541473358967195096775169001440985201148491098305466291619978766932180439660286787574791210756724897564998429697558320198219784915824005387005749918935588457364083778994244268288652380101816708214737433562188459801484674981839818235559153044091522209468859774975562919874145256177806749830399489298877968247400888753431580946530119779095943273095345914916503137735994516611504897513808869323126114410551954559863433001684298489527415920355723700129940407601469517545256592006245831551689083795861374613108376841392613918801154945407954322670005652341000608192927306391801040589894309995341932293270310694653659103786377765567166741070096698654166002206632315830902849937781694060294327038247072933845935707081774249621934776457172690873848875982252801481497385921142691968449704087938343380682055883245195290425657478441517949374691838227952202906058014223939588246912827650360542565908585101355858632816971984583035705318843186854565053921654013198048719538296795488749883392478792108986264402719967253048995580947143901302676870973380326116459879037633523037387914095576555688161289272936606111382911308421356238223212029016616765391694375610775653598115100269934246038406169090566531549110361347929476327183812596873707790642630357889929812470689041665794919798880510699708182116033824267027134891740352375296092223076620427883682192737197705539069026585168932021526821264019957951607527226957681133617237356715045132944943997885204973090730669471204652607009363427652832989346142840696703860611983943495806844124681010304475290525993340873467725155255543129134756440812227791715405848456915249066476721847700004703817602099675723433182464879660875435060022086766211536989194402833841078962040635063350140548576850030205534518939885952208453982827524188107476695007531552284239784252936839750461922587208655114095716639332264189632596823297887769214279060071712213420660644543257987883861926390863754877206596146310425188377543661877072924670362012805048845550879523177058135689317284292384869984853997544753540438863072594876059004744870894127951118577275233059545665336597606859895261257194133370135775208625552952011224300445471869713786138815160303063752328002741443288436564824720840708112468424417484706985862389858776033432375364135679591268571155730940845656029777279142539923350184772488349590001746671522124637807061443627581043421200524371182878250554570153540390474685041812357691892370525907881100312505194537245164695536646893499871838869165593261369964231077607544968865534409855416748897593411834841147366894623472478518826289754255904942890987304659158990053316806773407697056666098425185477091492753512609082681427519919550648358597272338149405561881475992713893313169614517555891048350783430674458244535370636591276610475038804121192855828688178988787393496439655610855192697674993504433180738493233636032188313868090417918289190795044004225731006738775308670613185074026531320532008721986645517632189583204036329067832740843086276671072361552146578430702431253139651864638322128327332093592681594076005282685929255998324955219839985448891579201882619421786289059517931402836992418848830365698993102403555865981672431750126054103246691553294970892114447124022718590487509826349024519719909844129666062108314847373684068352594582660127576437132969193658012737029523693642605832095457042674817189774125161284222650857664676094838743491964066874499564297089129430017619408086937925917507886522596958329235167043766922884834161216357659264016983857148067230670838855718475726920535586450303597118607744202773332752382580697487943486599057789710550357409108219239043203338926548796345669466024605036209741700766749509836512787713711097900343680775030715725413263072017429974206169716935158125092869618528761011617473623439248402773986721632386736697626028352651796177022485479131776724139328370867301590370378364167729682706331080038017487289091241693439897378698771607138742823419430800030566125270204983780892140463190871101403605614180416291576930420719748714663482468067301994937224358257050023745078861456608421762091013230888884969036458230109491535197390269527566395943711553787432005457984843573089395735104206526373245102396901708234632743724194235494482233407738054403558707819115914382787141069848058135621859593775797949436476178383281256252514144980122177801960062025935373058246088108664429658529450593981948973707674858730765460540487041191417423626939940857479998310909314930484901068664570925147662324219259433044900247061467084115763033734123246775404217228109094116320316547957171584217232408808184664861091734702737889008631834866495904403573752119806400550471683232631760782216116849342224766861783634088762607775242783365387298154377089926077304254136359537551118111805391439738621416009308642568038262233340373810129533257512626089938403444725518727650598346205232408688905115720885413250590702621565973508179975666110089863827267438447053392473305430258168097910717785996267222402589933980868842674898488777822083431550620976112338826764984108768964011504391449110606686024380416071524337572929055243427629829914694366266985394295485228383637857966532203351721475245177363934413014178273603870690633775850046127323946545003052809226804884046817825167619980002425335812165814133610308294783352534544105458798770399378094636548889071884029567677806305744732201511764393382019832133144805122960653555884720254252327037543099186639161382810401970014027607812153998702747609536852118996956917957003428168580640016226502194253986297568843111146310246696543700297705805511354005976198040107059106860214548511958307954951624644922759510609788694386214816148096017385993224882542427779389789473823784236385560409380805959484399858092026487189495507940412317437619322217519698676554977203194518070345335576435399291455793446430380677615175450818723960651636098447454536958637228042683953573186762489299126284320695474878225506498850478258230860679037532331859959292029523843282231728419435615755337056278367906783387971535055801307071547164842254609568077298893393496219782488395827116074225059349908535861326009063255126213023786521774856002310546297447522900654221579771832321753302143199358945280734362301489872583378230898071376449790805319082389041452426391373613955029712619137017478645653468202997254332853416622872952818073768175059763631981983711394510248438370402962084984943821445526394471749253769663986537076797637336588140344844659036441712545165897958220042591463672121704877102861433903932551092410858071519360356036676498200127654265348030601086723451933693929123415090965622448137323308257090514212443643080073231718073392534835855571962184087085631961253831991608735919877169493065993309904715289535669369785445617039228355268900984590907991660052142039104946243960626760163051744688502925397561836349894121265150859797468453335458367028759300919080599214575693645019166278275820503727833539770884983594103718034219062003635131261374367783215541675264761077494768068821646330879398826932199309317626463726997571256517263955078832493023524260201356763620154403430282067467119486770263167995133389061540739341800986630904093193115082905008705659366499091767133966142599573645663715673363320779921771547643373183202819222893907292347463703031733665002315382385613370490409623286752853474331192395666784211088562401252957746419659441162927349370088488024277930252328135867142769127360685216149522162655612388657137104286108191464915644945798195138781957175056811832107918428362385952111988368485587325503301350357310959520068251989858366162899008014025280029929010163930625235246251924358277834536164476885473899518327010961314230365590178647838185251713200056034868021309986170499423473042558738159827315409136812223826291942488271034300520741201413359007597613892415535052203842760926780729546918085574987014861963014748751074232561641252240535941157687262342975691993203583554941932393873604262590120229447931694890118581585635747955560752630795015637390475325361017469505846606850161328941041829806417734967515279321320320305371452807162146471339220626265401574377668502985315497905208722766250654404576371291361269091039561355714210200053340671518708980062329933815719296612327027221259922952963562461915804227854652250969030060572257428379463767043692810210754504874501957618013100214821006223985665821659907703160355304475970638252104575186110606523537323536318806850318388043423407781822441375144285752562297159963197608707534077443559595086480242246940322962172103055662139139787789167765586840085617278595850383303512331845672807842022887208066995945650835987224161564080200729712406256734250763585721002997035545297850406048318747155263336485555863204443625149602585999660592854451980623071741331798194326859353688929294424911281705406624565678046043985513137103732907519114882888459264860496714772698860323588281099374203965580300821602083334689388855461148438844006914888404419282177659457571883677375842771231925642924269369145826033771277924670122352466541702555195244837380352450284226042726157773467876634035173173508901465181651846030908228366398698635788805256708648075295998889243325122916103669339372133140178232532886713855689928510577282216433001514815069833476139648600001016474078483243470236645391985593022660030838809865434587191776096302080628232444538029053674133431703090307175512698124490183366330232080689132593459623370317766282643452345613401656798885769041023338054313109341288432477437168759273723168191388817141981844861357250516630318872998268804224306322347432420524579403040450320703952076102388952054698574827121763369794597164198565989520113958291643940628881921313019300003201762308609457459632442155205482879398323507182777259566503889846047191022953885728155564059600154337267417479526120496313058044728855432601501374743137250560838441467558075802155204710312732293764330517520219883308388587419930505405761156938963194607208359317076189768615083028031012191856612727164391455260579797875374064027826030277012676799909469722159699229553130363094241508357760107811652859890927976018234627812688406186036181599862753133012543029504440137509289927771221011077427354566626006953547953306669168744715288186882810851210113547223184876737835504159862128141827797981985836232709559762336404693242639475504096753326296167827990291614640108590302773543737803601875386453183632063613899594584876804165834628721396708013629357199837659501464288180420215008916923156096452263481502161993357064255155679235727656999973589986349160618406428419587737861449660029613725976793040754400793619667501116214088308599114730918255447192242313794743481842287207398301740194414636917270356865116175004154399624285189739414116184755096759238384312201548098545556975376340560652301249624276606682750732450541029989048453866177921584190267371059180664132061456669791857350864916192341972107527441106677755251265780621577606115184735806614991193298198055367993809531481698048809355292477641647152747908682023482943389051371344082155650661915591218944159931597500932413304968019654768692998967084796535062748391377972926076856854832446397750853479899922155248834453546079355470920921317604909642563985673107042864645833283316530230165557642944597441220457862155398142796976961404463287400100135069138762296317942768693606152146379156659391622595032446779292208100305875727616207017652893049307421966692450598122503806620764568052747244229229491183697660594468477117356110876389657742514253389067261314785831826185590033448191530213327012398870261830475525625973014375798637552778913547339411701134577093553987660856552505697992304531828255916063264232756055187918348767623474465321543236172313582182179193366492916795775518518796736373656727027838527141773071494306822204564174722268758230948588406622179731463615240425008150613428754951414760208007873312152980230619229903405181370063478946209064041912453573226514951361906172541679076267292189444947066635413569782062768113038147597872033897942943135417322322583190091178879314388828188928639886966260502333529463267080495704162693134308500094442436049010055774212433671181979600631369476514523189929576184934562449622876033872877364283328992986214549419853911481694696494540225372041698870353395636681181374746835590750067992433609039949460775900786429292440872467283059982363343579593647138821527627969259320091362747923407123909698738137787855820003413587822190264501046264434652617863590054240164980146588957099825066598912535588949719521264448431610846781273330718392641676908324517309465283728130296758777127352619445382966732987112489913789232391997009755941332404544576943192440957764107934967829623078196692080842442642076269592402501618017410202899820615511860803095649342370383098564481616586241074991081207249955358951428254093592740966894471064644281436997084539557792836841229562144278916205266534951584048798886203605565546815678220170235557333859212985743030232436685514282758065848931772528932990321868191523239182065144835030976338279691517588276509104493969027629873596519073385314145399330902253680014818454218554903997163981366537519843138640955914503872055724154190817757352590055365345508291435307082982216687359205204571651317172127784334341799603262250791874968834781650260676933082892629154684681796296576911170078670076391277575806651077686991066118409754526623997053218944471057667392926265461458855960638496760845743442796807451345134678489560185705250064573778587829740014105103658671415516724863283793641397677888131545408555361329963266871536914536453952156814865476659016578786296364540695677329306772153318525067276531143199756481110980556866122230468525877716871070649784490748409712138726133115822309716608955421660653430131351516925188941087185490557481951696426183965660803083977612643050276491708230670795127472525802934399253301063466259769918585245604527667900699308633570975259849031258385013396071020865430251357462519406985207725863402782379474218564490060463452459637668900817803653357512582597198347502908341844778120340488285183928645832108884837206535386390925984657385127959521680550394732309908531793690884671152929367116211718480129985165305561789734861603972792931933542544691415444949756268712787211094260737409187308231702447293542128175428189575851193245431051572553068324550524543507661284243188906746782919895910919576581919775781362341722805755824514152092835720310171157379808850272716164433454601631478653862787126055070345044600664412107483116146274796508270062106281279180633294033431094144361124388957154734474302072691774438581795820297056711406892120112499746557855324848690287965056045758878701798850289841755130990288991755991593313847174384029879802632994363836527518715437422627488809802178408838534670024873495025637038985503731386684738900133792151218875098477388268182655566602299335483630190041328082404813397263791147669525538453982055618323616022701372025638382240956522312156820623955341076326821678769073375464616547416393602562248912468738871311582939758722026753000596890933984097386139717318667147688913707511887715441251710386255296933988161661810650249075592424570286348522524660798400194271345264148491306887932100837254620078753650062199577887552679547151942716272913407303275229856852779970460355616505841220211260252237364034946895570943043636160980235217091768119118965383958266690034820752921252883634218417092208894322324615039181749971455045278248193059179845901444386140251277695466155117105766149155845181811258441835529333914370917422359409782384237413869356899189600940056488310696941634997889893361735530066930158738700727725699253915626082386167522230057070029891531828992892849173775405271381799187012362381285187927192064148170710064619726906034386448137062962566463642283828661593888089339331805800723416937931055120964476331271113231053823837144426757496598138532466187732272640450305711220335690772682494391009225696334789831838461211100411082662191492546680659009945310792193299752921248163619060326076000597186724136881654449527824746503523764001626921075172447579301696216858419052813655131934144005839879724493369997903347419237550664436473035420089087268742523390903713781363466763411075703638523627803354977178345422901051314383580767519069447120520080129393929958307012294931168297969850291350261428581882472575060574353463630256029784442007028367606681059152786973395798748886902296913418116743230927020096710830049674237390900601174328654038943729762293977611168216673237352625071725945761364176586159638095007780585589897736304601078515981482575011633353492947461471829290385187127477854236548886743675959573059848527749890082736668381182566665610518663266431495461599603544932497685416021958509592091957456842079932573384983510074301827357289759364940056281101184054341092446597528591314891816566243588807713862674967028326367150505009509554720716555061094306325540744264255069662532585093931249793387512403106223717929199071228903906924504124805219121668014638853618532439440738323580532840011865164842204943897997572027885149193249491507977024045694514127835360237288171621332532556261164282417333413260252059432921149088252708025271142456715869507515348278124720043603080685447368095566556823494240822811019351463355133661877449160453516162956220394486720171284991003603449187351063008548730210552249007343930040124101302611311527157087610870399919504867886278009174428548898376020377285363898776754197413080858297709958761809548484679330831393130465165243237959555725739715522372588726361815193375891061796496492825359929477710355547723157138392974188746224081052980983240794489308466373052030933117907769693068829844354080636032940957334790676720928873600747634906653275379929134117872880180446184851200617039878419111402990177391059848177172622260792647442572749829002145458556374377528942397213640249083853066764984167005347283177309775355664791073598127725304741967496959999081959454106584837933226419915518334530572594034222662600583742391990249278514515367397632398102788492132510343029032714220324006506225858751112049890872544330920624841177688007103818596503745738131719530628274783305086504642004881329755272836276810341386962314029468715550501061448038486538740980538234943680844189564470389306212729477921006755855233899362926084826989304945991157755130769427725180349470657049034706030278953132992558327148203578197207825859559372989143140039555056918550563929530934472494407787686828619374460627992308007638580690915358509542712657308417062256915661978799907553813095970824792661840091826049815811801205781686970297366047405258303778840214154731337308559316505126600921640190904824495521962679361851403814595927197185608778133579530654157924575685247992237589967260708400586915604772997434499935555067533941698906627452128307254105070599080563407404320983945271155060664200254966459971406087660607703445869825565143164935436310626856711395918532347203312293464436392658725090913668201373680083131969105938132637253744186284819061131903607355416651169892164561815135050363857439996218665877597040893667289830121093821043161849419302837984711772549583631384091841534675266900572035313444834001307815744991115101223538834958108714253939241281504953789502107222760146680588144212329563753407103549309366412156804824088835906685913389467009586452116975155863839776365453245421139673317526140213471649643333553212489966629679458173221131284598768673816214541200854009069780060099827831900575054222456687439495056049106263657259277079598233212618641145824090387307463031839154132116755251983637875890385057399971210319035672975663494865455276042998672565346080407796386300779470638862893801864128821442143160340988555095763333078690431291507414005787070802496256981467725130582304935151991323224385688981629925763964438564247868678281554026887157688128680023702818482328841563202332682050815534365295574586039993571935153200975971147332266842156597348091045766736007835039210727180146079910757591449841997358858250771804980490845120549140766842127923998956698572873808097452329724548244752414832449318029412835455201216566758581097656207886949994102443755673202779980518797733840639104036889272973885085206719234790800042718062463051887707205290504741330219131735229405611867646312281439123103024359794421360240610958507363976634947045357484610147044208609987495173268570136325265131341242609079216873078875744118385881226338697569745507632394585091170913112897455026125467062321894324502673298462157977777811549154812555409385628122506879669307577520837386234796093644295312764153158627659618222097471687422776836195334602579417231215649224521684134596924288857137045453061173147422279285438840999768580701901333654443541383546477753054259186720496058621630137698195835909917618200022984012703591760781287559258742283684395447252379761237054419693169003468192743343711076122704016971919506265980172186412371397216632602234638511714738638406428688668924432488235855989688935072337143238305463082551963281922439375455096429562029387708137647402194198824604103821058636311174794567771528037396786348249222914238055522772634782426307759227037083888410064015344505675453480204106093725959536948333292269390401272783594013355426673017276016586652008035536913097592334782221312798275647394337757973556243933085988165934195510726735601470810384708347559409871111957065206416303777512776793711319702081361896157402414439086260418978325272651995290261259870729349228343076720243374862149576452064362523297751444277680591012999001169726088074205931918621318077758754252978927124493404021464325797388609612022900876762491551925093976907600010580171684930993777367692709232467305894237314767933422260588488971461010691731487823063025803117609223651034831874727225598385081785411240942350090083132726354432594317277889534031469526674277826207581940509263732717949645766242688226505756482350570044016418394498651490134962281767901362956917066121356827150937953458604995261561421811110283009399934399747979023547183149101032025630691523833471693984109182858099838167623652654919033975873368881627172087954163345502421744438990068670822453464537028438438868887738584622622090319015267760494014275078718948837049144151951430621610145535785827710220584075757314232167425748246422688741435486642900096334806535978899816331259598208945957236103171024531212972020643451445566319115649617345895331084362767783397856225349897408308536044078574659810736263196240880262440969632077385279057911214030522191949105043868985797237521689049006838349230090625852554677805790771316049389312998900233877805683548980263663705924407358133195505936629841922246577841292358082173114377076048477400982538264886172349718092606601429681777282560633208458421364847592047081084696566849914112820240047550018918826950729345453577432355528627586853138806037651614922785592056189833697423122808509196594552633436855348999083076052505136993388967620244034467259446832112000663154981892930086761192639068707288266399034842282946093478542364320639142916245825928834856477923023291271829326237253890784582434470888313214517809149523861859349972425102383351491513660332207878472918841684952155256486637620942776446822589712262974013851783545009483528210365966320865154687227158286400504844495367745458334286573122168774750472295903172533551759662549701636221510500194149395570651355184513623296012717164012756470436150393754359952160629983040352993066116606890612725245151471135805210027894438463644810193438044341336821561418993038778014421106900457698438551103823927461268181022844373265824717805668371407770375405176725092504866410487909976077849236613100593988751417053024131053139739845585745366428563141487294864079479743287538934606629279248592356061989561058117963491962888049236737816730404644973733618541145745701851910772176973489557848860715626434854293327904502510444291278824304179638548864689805237870943135965683744015912259886583561256934534232309629382956606726960287027121319143710917236663163523590366230209371750075351706372169306809744472266694726208150403910309856897422652232037332282556554421011906236628290910952015474289741184109262179815470559412976043876141068106056927783430565064514733425941511813462682091460872702011497288780590602232191020665452077612886842005255285351500393598588230912739348299540637848812588911256996959592141382489269034667431994162037970861486686555593832275802150347639024433901462389657041210022862569891577679169297207839138515958159241833500889991899446519885487312027815802818273496270591628235606120412547507757901421231180206727393366421300550019242452167585944244532800831959494354274289165344139968549417743932096055252736479306704983943676491568632206092038907911810977326466382154544416121666100670804127653058819468300887643383069812602160210415735196602028180253475054849879618961677136934716461788486695625747736864726150420556160446312631268706070547105818903624892441809600264777261188599359944293356674567247203060290846939370057446636212963634160557640453377099819852053958396012421758864980787052735701094126118287777777805160573536613658873458497944522782393317197750620910214282688277434411882904901781428703144724633757214630237546311141627451730763785384951002978556540272954055637161380655236885498492502176176174287306467784855295945853713490087406703938568106263396117957280656204698886195798910224990368262523299400115696173875774738982714204576692340211994932110157693070453186535157261044109353191393790793897673971588276847878841042406516318843529881347972214638726496178355711354302479410832301174701529382586585952001355657157185320381816679929745444708759336439057032878372093704573985391628241748748331322240955290124774693658223418372808960112559946792940132084965104071094238431756644463267382870782299217387864312287051891534830941639475037754963546300848287980725611912108681627940808175205345933099371614911763395159251159550509652994583274120873871502863583609730009761378733962330436865422511274764710952221930058322527335592236339406494060233989913281648138604598403747820457596626621938568353079340559756765801080540291978180882933741414220739889960351967490286286663846762010867992602284921873996766128576368711617743023313788469745355875704595353343908992233308760809083752645853868330658124737483676844041517985057985004809927899152028644933363688295431686926943127085593205835600507922545721453445801808087662844327061354359332237499515534255922758729264698370893711926857809421913781954985730715867563424511910201481427399722973549162846605440555205167295059020814758103789698536194736391704942402906785050549830934655301748358796340026015849198406072308403156883092752929760745481648190637540969567352632241365055366295199343096078245741603395260966382417453626291984852789925050153774122713971958357682450447406509847774807888679152851199295592324071180024116117861923416389449467917958778981347576419463461531680503319705602761222205871086641632325616869680981966225999327269172177888376041308377030040280419408920689151889330557104691643852256569971381706200094463968819346022888484266044357387095036041444998860085261058082944406036626144578782778507764905554866796932764683847607922691361624778994206302659876395394896123106200439161056266300770760770208897689920411774704662335874552886321232361297494267761568207919590868158483085562603342070945300229704603090849039074998107308647220009208484889806574650030100091481778986955440269931715993531780703363164508859996979622505605719484553020067260152348247244026612128116178538114689294451605633304806932245785703181686854260570346442134506772645684521073348218932869017117757970544431428386596608765552412098223318999497325095646066135914719315315240429513857251297524924093919169635660341499647200218142133493607694309956154689594161995779980971835804939041806854849007106724098661607502831185070544700132385377989489295346669084161092044110653134499353159811727413309014365417520964361790654208178345373831391351134405254557985236565917394180371527546972526123184026226561355607444023658304258280762936696213893969845712755482660949368850149459697700472221046286912152669071946694896494331924066228074711585211936428014557663902894316655460925053917744198057844135007486569559515913032403411984452709627236973534301982686672075403969214921112591926900410634324163794295873103550829114084048794272485549988642106569708885399000689926417813334960079441082588670899103426731684069260377177579546190806753864750442366062993806114786941959991314441885367346185310013935253985634732190395409364888585991481926033195480793150165911440956379408951318237105134831448669735245633399447245659621282883005866104714217567170458029278646404741647287509339252030723490073857096160690691571753098562836592301812406894720876028955663508788761552883097608728796851338376833151162616249319571173532179562712565467484166934329184591188761775685574777858429578459001120122284472487995159631379553839360638209573354707340759307386263362216136648077589350205135163998266407375386653610885926955471486194092536175580834840631025419529209253344310032402029729694942667174445822956931109972108202655835871710680827571854066922177245074936934835579210537002439682267817134453342227993756765887662940415865951498515348857484937831636365516455362014551604195083338384273510721153580701795234207443590945999115790751427395861300131301798237218700246226854428850743215225214467433059322938652474168252911952092623896831895016899033762432733711734513004202978016747469539426662928575229773144571147930294510819080334121810827216875291890487739967539103234936399301745647503990337848631286591436040540328610220966400760957930540817479909719797135169332633510311535445497070764508069876286133890578158720915712439091563408973714196001929622261567861300239436770027478289422445076393418006952170884497004394171423051932956308548261283789672605085147835005428149419582652018199782367028061892826800159215454886837601415708455827691584227391473722750901574265718484163558045728594078513541365166556474868920572001592989370459543413831704920970951492881037216401770870819674737492654387931114006666366507825442237644916130546102400600540231688946325310603708713550839734987056246165007225448333658113077356651927095818123905610212060193599206699294502839227494076892984504881958514706257793873817760763391828966868394195262886590237732213431327990647299181443703589583914583715180972222119344317777566327822439528624075444974252828255627573453390306426035775311976807338439126019840471048085345127808057280486890103448832222731733513472007835866124972818938639663503734181538633029039731766857155939544267409235831970431723745005068613214387060283280189554371690433805158147943937486968451695693938246209578870556230446917683270808761202490019807835388900908279919636890417784729510165003223500614223335526960991449051644645940755925040252751317668378157612527337377273597008209304664431987687749755778412216669949614114088966416205946385592580224674225934671411914113371246536823632381214630552677747964052882389892714450424976811435353166147275807284870254842262812969110937464354762735351096458787437390766509079753601178585337313377191883094164128094203728773580125133098497845766541716644833474150270202881024149936437304764266628133923099828607435044804842482782830767748732174857873046970048480048074205036011071159437331336590729447152938959946717736220472794037386213608100808451720647581867255533896908793371194815711160228606473707730274909451762880550505107184437046830099053877979732963942021820507840304066290420801789588493571560347247549495666038899339445023536766954319914346313426206652792476699463910612028170362583266673837071851583961694644338403746572533964656984657045593172620962287390341915012182564221926084308812934891983397785999030381415264432105390558124051894963425527537259409874463321026941533014129242284692610640112449474301371527978230993965720452892131764472594552869694025027130567991371233749193427768188281496233717601347687257633327211753705731374930050582729290073748530344276499733162798095685198457249687530669779281392303474045390291927285930943343549267032566793474500115998544001938423067052402494945173660474797270045609342684414795902541054034577758372702598874495059748172262198833628913047417173896589176529217695620969306712578824275340119166085279328393638856988818531947440290905748824948242500681121649770906997616113580806347095034482001648640041562331090101600651394065263909900885591235241621420850190349584041862482908806407429520686738693919923463837845593339166265834026320802476426671527629240720484077860610112348175464916825078040624028458892468488996393969536555580175799808758204839922113953432785168716382373408807915412230155002445090761463260436129589355861625585441250297693258302601686000407885799815394391950423869736249103859375071363847586373985070207882482650341272403205946053225824533948563314496032690298465700176274238923420424055611585870995734501857590410235545692889792178808808967563133819243685016849154319985016153193219611608722980066058275800767263769402620950446103287279648761499209364808327300137345893056345195201780335369146115547069630436377004348190806797126570382170614453534266344234531608801268823904004330692720772671784876968162747923069664614984725589651256436458655659815386497809857135084493556355209918965007159203234563487289539967031286947686251149121915069120968236014106946767703325791330738709335214385439875697776912798766928409929601395094136356314959492629634308491846737273103066264284031056733812561487538912937363284613789860267798910959982536577683435899946470380633773886566464821207586044610700578254503094971879843113879821409073402543685563242843406135464755494511244500012952816279654647734427748912639096355803752266429193795291453155572371518466337868914804137171494387658289662973990226605645835299749419069885923106144159375596675626567676365996779110489358441229076013475335535565458321043786332236789404366732818028497621225947238866051109504936277842418104577785551100311277075418047013011475206843181816532816132598405431015115123573817011317766334580793044964696798854950872474447431514884285779864934047742034673622462392177456006991807705555441389572350347117336288226774881798224055184748300579809066668602008613979450154137220958385340001131996403251733841224240276576072034732056439495739282017016101511777797063901474385805027522696007994124544911101986085745954273156212858545351984524626371036147421752095154987914067637781348433305763722877110714543338694551700106412755228603643381740760981319611000141552136698692254720629005543849392371486413353097595144928839110704350009028219172234555418518203274706679369646143428456868441045738753830817149957288057794217546233332596727252317309951133530825270193375740763155433940342003506172002077204659277375809926201530451070318905981939161451932225748426616698520094820177575376969650205560907295266501674357626412940637115777387249132536718773369502993317030196669062088626171348953863455477804343592606477692407834485488496137773003869828553250482933443774262222909933398912239475615861440522052359434027353585440447480626968407161554436677073184748652437793085811855646902371491084854374996464964555037966679151840294802983253044856230972357872394365773252813530177606420789589258185758173882768272400012637715107146719066730628927695321423790400865299443375641808407841134690613854605700179260900464693924429227606635918068337964815403191329265771363718029915938651053024649471581277548158411176722298367813376864783528496224807793600161597508710990758016525002268063028207711848146534404206732580797484635219850923494894975001495460484507818302959363984535569239458730524489292789880944455923879730876365217556767464944731177234562144837338383366040734795360995918593785230197256846663617138072358007280595237917065434637925015828023031644508719720624127861002615621289002105699708885115512567922823639996409709488289884892961213243558184895824689174837052761192367432170361492959701027781549694229980335757915182308452254392312481448947108075345886464868425504482786865685332694682085363180811461735685570825265593522085555204611993793578721222329300126564112814955596875888896095451295122578064068833319317960379352792021546380569354071143223682707299106615972246538163212785701756666264987497176157767624883497126315231545640625600602840488323466053676211098717801609640350166160310659768897829078428797033755784953145515044600566382089102188797565998227489223409734679122894584308805362561040843452960106815872693234211841301823989267656872730252641301273227214611323245839562421227248087595960340134865675241734160333797862016349772286297527148731578378346991185517360078672455080287032950031650866404181329570561765003874381472167987186914449248669097563970593421550831019611748262203385976166795392227126600852253697607118769347459512437690818959793105881205766934954225528540664074026635222645277549152362381027135283312066404783657391368805150709646347988040178869105336592505602658258241940964434634003441826174146330850988410811522801983445689153744782096971032734468524195900154097230638000117571193046661532153971553303709423273624892071326031887255984270183960814934611788198518850157981172926108925197289281300788676785577125549581646249431818758690990962636177922115736997250943415694820637543762979990381556086247989735907382475525192983327806555491777440149812220079938026519030359379094507908506822863826670592314167217606473192829122517780773049610835035222614478783174968283042678058271578786813454266151686255270505866120350763933814276923374326434769922732746255855585734726854647007434922786632296033612137032472920889100899919101172565592370063732240485476147153574152893583610956873941927531400427979724926879705403488736928440424458734648144522134957373563909150299011641410879402155216003672878110365692419433525215170896435322655517664871742411520795798261668768103455540300770704986244244364436908499185983001427080283231695597972597816650210951604498183627984365552588877785471223221825410911024039551870174323986525680550419024066644926699332481420024264684109033386362424569321782402346139468030695746893810009524734887752624201057223850622077918292383150163522785349159051749112511289398582649849678240771192003626623631206996985626275046331353595152744827188224924822848502498079923430312636172262323663972794099816514304400538177164801622013623112864754539685285678738241677008355753802741114991415335919046446581854607994633719842355233101550306865931349655011645150735065528033847618376707122566138946423965635687357623751175432679183511953358009854241659189378808630395924330359137084600901482837325594929679658199311083492600665864726061607412623077240096144938075699865054941750894804444320835951873547829704833455767419349988017952273672659045541261041720436039907946350272143894184110600064241051924665863970726944604247582630353308785910667146293603697398236230880650968397051734741944704116618314521179486494698935381562497359949667168526855105101281728217882339237914764192357300382130481900922434885744895959442503845879787397218648028634449192478851041200642684847269704087890198794053616785865782565075137142580023028801030473285838750353074667185889181956353798640965794227570752747674403928885496471521150994936956256442706646169419369769621983257586916246688722117483492269794866122437130375838789540309417061741623465513861829767304023831567686052977610325597725920700848589952955345363443924844832907166340022713360027755638971934989503462293096841757357868974465846590222446613238906992369830187589740526511135683526543959852812351657780089931111153189624079006732914896684548482434135630140075041789564664010816580374154639762881664692741560691932606365758830004300029384670014659982551087180886982322875189159595482768092345414081711677900034910580310857668865762705654390365477748373598221585459845013315702389609358090351732264636263185543165873723835553288130599375738683978948637225037608778949695561578734227159717572069517689838067468176118409247038911221336965774424297616486223522853214260557626564939607182195717080641279043245400107511038550417191816451310848674677479026704224809242252110411939002296457131090821966233930254176488727572535089952608756984468309365025695885837099896390217938628222866033866522331023244285030167852858217306465306498357381922253539672172052230583432787508516902344275296600856612543012187796462965877309520767287273494291401787352697497653834047212350138061689720523196533605458011261915065200578728820054959075384331794881876182759534756251642232030712143477103240548524739573716671567880476677487868901365703242130071710071428374127941280822665388026450282215380449148253564932080643759327042619168578097442199140842365397871126920689865955994413439847598701558236959814193198420893620217102975444952057285580046589958801744207072806526044867390401076336545779478690003508584934876827159525039486892296172383350833101223265013506582278842536252037891083673094188569480435935166832526873336419383568694087731515571625446837939410669761567001131946380232456879639834213533852762118162740604180396555873295660862531939484379342546282924923566759742433262662263142647495694507682911999057167204776002381747443347378316545610620586892263607844878659421710549658075623664283424785300406751174981230399415113201866978832057554142843444719878767906740335445587230441475756829873886189854682119493086093550449705339419324376510307128200259996608233255865795806259230356325242964116406192847058726198794427047796927694849109240825696213198579277397122135528159062453255945491224238699190921103190277219311994947148591299443922684487297364656215546587455213935612786645423280510339999514474099610769256397245021865551697428848382755661041754320518812902246907717480502922685427185031495017024707489642406565064830391841732714912567685641941444830294586462027346849951075360509886568897324631633917058315368010083790182665089973710707552137441824349960285234900849408779650381323162184746028535917497086275593699898890111207472879254875119164178182223270847503027977770582047736633195218115887812962346433598704589559355207853579027561009488885489152555703037776488884538591092473175156917355644431725251125065600534351638481584743192301708177647761316268357572631496221139081677392192046993918410485327638232692403405993242523488255919806535097952237603551968171440559775413551514481328502764395001741214092964590882685033416721469947272749986641022267611806812424491518716275112451400321133642461614476152393882758510358259552761553969255566906198718776324935989341045823138274757972266619078118359853763595072036379360641406973666458932702003953414509756438165854054204289673772320113455261265760799495681452925613030677055166615546361872692927542845597158045393621188446187046221607481086009573701263728278021903433423609774118280908271275621971991743464877988222724025594298910656509535147055790053000294245757511395773768877980216519950633146901933557236768935045299063422672073194452560588833824705388098499261284608700975274374936277196324526166827707212844998026885863571231373246494042810141748481852538229161576645851510015795712645032646049933089941307144189185412885060649235463268424624895561925228105434796318503709130167944337217660930574264132713233160279795271999174848817180790667862035218363566640783330504740884503197309524144034735105256912697773477314822460945536044653923548504704706311587291940326093282994489025936854364034390327574945066822260557933295982701209306020089454373685794624531925244737543939437538821454881661947630464975249178591482064044946170804732043267097990122962614048133306065129801483942889559962857355089239282602037602309830652908335813832980298803441533252355118126964961879405070340324820567855989737064781636397137916164776695463567417022198879029297901478461900608411320455437591160148767708773741446065890051782866520221487583669655630774653479086335442330241335466049413229976559292027110387234238129211312768171906682099621835199910323727604957123565383103297802905635221434664073991789299282557809439458519442438122558324159079145324131432304406750635757087665169060758841929321584585596802387702683244231775525973375459241718378011941849277994210871221303749722698179183191176082152115717189870705202784622003809342144881423245149946215824992276363112672248777436123569534627189745926561799251875637819884754598638606587597881828603324606694067215966260216650343393919285675765008740385876138712597578527405985104728269002280459978648633230715360091675515177984981412361341764299312440171329737324467705080774112489599313199422361824633032053702452536764259906685705039557272004620217119844867876932726270725634426738235540027806255198354096877417608725332363432293893727039570892146684887544724289021105412512354277533565134125108715113045523869537074268077801374041963339172714162650427322315074542142058280252805566058486148010435963125118569596409831514117870074051999610776149323225938776949438061580265443508232832711558239203441800274889901835584907355994224307910419868255671798957213615656939344592445876425133003060640970180562812602689347838671176675989942916086363054983724025439335272206768253910732361166063776530333907569457640693400372186240577833648939878402343063730652176629377371521698250465628809066868190881932828209151320998952453654431120687492647714585430766812551404918470110276118072283336525245206260987869456492410453475381925019799421806446838801781795130733985788357036470976876972994688644134154832621008726874483801016724471063328386114686446736206876798106722094160224465996034938952002932695664512146130016790055436135798702064934469526397539383035573839881075490606633266833888656384902241930117633255871868578150382139404738560587415041135187439348700606904542225654013644621907889075395591856891022108337753216879348349410516169348188998931355166759320179095737365013932375879415419000530041348897330879857659435972581321350965223198735390418351862747494495656627983887080259330878820049761049498027253640649174595045820474263570357427081774350948417129205705663673186963410009939612181014210838794804465740678815179236986283556585774610470216827090948270296581256741534220706245414215359986982763366918686836919163638261878030646405351114950421637834251510781059147135362887553769294092614005649593802253493392986756725413794598577575177084896349257224554079095727273988387193684652677564838967165095019261652218318044742944225975883741282449642658907480591800848277113290476773612970216638231736661565028482585049577975438423774924632273688407916427556291857615293460851595455099672171272691111904844892969991028157537934911121826364852077452444783331068450916936790146608946189253152541987709327897859570434606015101050405765388623221867972287735062633679405540635140160539108869529392136961452591293288964315505259216408081694843888162920212146491143050780690934686589718451994163440696839379154378312084210932280692944629159838239011072417011635066652734972282605942234008094430713645170804082595222714055465168141695103543260735458653797601490470181129569079297852690888971428138020271737043854859929985184521574852111266438228394059489911007398754059657185865304779975536461474071298339682913793428265850178065461360893712189329883365098154926693649250980400409168924227626655615777679439056328300364841023828594228540521696829110894787173882667565695987495067955543869335790453800718368357762139590531623219550578426196963738721512691804877295044675732424630291391947032101581890359046621285561655836014786118063970899348537538685300266791329891115475328153833683225263054825528234313229248518655086272952063014465010273108391099032585657176375741915103035820633287865750385975880483979509215330149396393635167890622512121917526523098144062976412112815030227373310605480342960199331608853068597410398423463485832168076041300337848191959288815082263910496665004927394746629697534685360481543581927518247034711489845125202703146984909081519375968080656225262649759288647678958640150607778994573865927017596451517583545387106463397061839329158001799392581669692008996850921949222004781841338829444293693726608758214719653451815423003919347653563362445220871183086840191872093020383818292102273772600658578830877512040107390699542977914471427223400582632949644107230533609467110888297760721617693794077236059846708637293933161471272463802073279757228670534924070938048559118548072236768811888028171703360959568831809137030516815655747184845631306985172993798222854367534753771898113642448802897529985824929297478530393153499263629161463412548717322332593586700457919333144359741703704292058181570116302178970700984041722964764829069626708111099097641504227033552876976540224216725025629003316107401870680970626537183986704555990713438165324528584857853662730475854260140558310889368717541255734927186999644590296101482882524875562801421185779381547603518761613031795642953598180510882645911743261229017558910534155759414825698237403005868519979715212752322092690928069501217193020620570263266411517126023166628374440482053414464360138364689709292947690878400632635730855204341339009257162531104342692710738345282660184738917306499688738846153105724358892375621766376821068892814153393589806677218099802862996594679376961966666274153814322422852284885797369261191725679384094340215543892755372406381470755753460356763057467389904160177713248759324451789318738359336132121739563780512569764380732377971881697132942224676536539416461067472810240343039337234124019530977498509455531570482699475157746492033761295772175339756048183939688420598368503025053987589579376760919788086867095842515270528417174180572153665371451802332417194453873121996334002735812348600321226567635645134207624866803405020859317110095376749464546882390157115979317351899859812416643153350545508990402294270681453535144823887450087526794925561093704503451477822545848546286675281672672042984697250705944117627450798401493206404155742183422241096232074957821259281362349882787629551226643661283514358635337074915469273342840140855189699630909564590737529920824951626794831084521424882454908318393827943594220470565126702794063767541699937977317809663700874205080483545721984869557768306567556779453908714208159408373966389877204680384230023430768052838756025949961251706048525736527126731315970972278183440032209788392360358633552398515679067724063835320292074385718039881343199194438624148988836696007429520319386683292212740255950672415083227034893013399449817732404245943053576724678081207852397172839544396188764727524919270177022061123788433327227166630152956733870170450101584531054446801959716093009708893555980507766105366419695573596866039146941965320344918307997094312112971974650005442988254393969208838862353743368807638164577848469464322587166083631957651067321616717805306815520181334168350576953664020122447310651857041171183459976947216110963570684225975329754094188594188464742936293551013111109384150650368523913792389301092965478607676060755749854418114199102487593631266183291951080566813815993623736934225372887274171545302887117283889043329174343389678935490371942713710717488037230172330652865122002560100141304371544814281918366079881121291700843399262779696607621176014593432484029785090735138412512855350207969866194769573047709015212754932920249138057453475776393114122079518050379384783731147662374596878967788086443420155456155809655724460344534192735875452781389529466785883586656150489011071758251515707934914721797314532585518716661867726693544284388319512265945787490624688046282099706851854383120058711795960268885681998227547895416915094162190482168034264687148171051159091948395087087706887743240825966072947438991164970758214385731511643666928452692528572104916324133997372774847193168547272522646930150782514161198088635752538951234882593776550184465103827111082983945574904682257591714552789719904440684794289809444316921898769194724853075539651846408820251699046402081367415366839215211190047265266793038597933423427033264352706513771438218615271900980648841355479366708548880024361996101988560291179837200914614127075589335335664976252059185581644396658541656501138713593664320888518784352215266431598638332361399313165485795288562772506708595103080480769320484071987721770166744426365804890522198930611286558764178140625956531620578449140944631175238593327955414233317703145016020245036462796929016651349514840007309832763032960530083305321607280004482849478759399304987709198978919413680085170760416021138804826859221168346556732564122659256189903980864675818240455366428126996568067498231280791985790596463475710541942303430682370450911143873756275346819048927328695716936690233971842920518271505127086796558459070782117539656392358469273138564391677374579533396079920753923144683231305626798318659809797095007493888967062874713941264436731347414203967066568173676652463036932149353311891254816036182184120042923696099207667430989100157761487401979417907376494713106430519470633890450744936613014952061178076663068282674098266590855888508251433945287417507247647970765565027788851120538149575819754776169353079644911765959739353800280925432568522755284409670743649235866344326141086424798663989298286675078789489184548730771161575451430940840275905142208018225837385781396842584427261186849067264700479487984645687822739132792593773001544123275937694437623366250231078969988918973305506105851659210151900840163442799782548163309607120135990252552391038275313260357719346383559816657316861871448331340241223290892349196677813181504477172442508163161098791045193872842620287881811899570954465170313277366550070248457957240012371328276619836026557204651118823309645275011547915804526564244363309008828458807133115269406036364757814300870421300444318595823739905115519661199112955655238393857978732747691091181232305461937635175604720997368028189368588608150373900320599898116862445193786879318582083629249981669439506638779992423366589400766446484140111669491857416789895644101993975348303025897504071919082138943182318545828464597924746895426634660425566891442838949538648072918367175683681394968104771912433814544463669787654994452290383545871266999542737605303332037875915195417846051227640564982703217205157414164305652355429561065247876817278067733978617168959021088480438532615352365688552011834518968361749956204971380811645120564680198323378044030641454684318635422877225673451887204780690629577497622265443923771866625271591518092990805483826192824963290063876586303659109093920738611974138510328503300411017951982053391491849434237726632262326026269032881930771349213066744731289070116075201572129517489010683243325632327953348780898155727530455663780346097016213465823501136337850407220798852191854389378686886429641222505076382748083339287964712286442299104093233774080319816605514776868689871632601936541589666968060699749538658745700871770443939097196208334386453787279825146981256585220435698415123417745211999670083698728243116217784836516171814873529718032917099038791609469308059730986724458067497605827223032055987713272117499072868991932475244721337931856345650888714020822678071499939929715184554425969514299167853395317954797976809757221115255943370012049823962425082022473199400497132764652090790832501935061358952365681484826507749568954158476501149073941885201722600228438773677037693919791915665254231926142021492197457337786420703259363256952991164027685102189508463158613082577215081460083777178538520685136201953102519215577822541270405477078173707869613350946563767682314120234833460766437139695187028746508849538448614864069995920860147604539384575792851575134521976024002607039703342899481991788807657834312508560640686015149998865903304611058363495763031360951212302295076111777618878253756296157576282596147071094385646793719116108723260835269668686756652868292245033648957331600206789858030740034034054689570123666481762277411469646953831719092698849359992354820260787367906963726327511643440212854113615632504683962058707822595082287374777425360792136338572225495521114180899705091127390546864267425273667091784432840117982476703441938770238474970455685596801694262808929410676068778450154102797736650746497819845353317461053416881984426407381428672437394945938905285265414326494725002813904686581155430201245041905564386906129084602408157549364168011990140044513330423139488859732590522809649663949245254580178675263145073057999240673530962364993174613135823544076823068754718466969111609593339276083039315660295699772945557850973217907922823824616289856272876395609779285521051228353563898971387628631754996278288414966723824435391674276718435652041676595846072424707318284579751101567127743433759989235011879232637374478752073689546137663005163812681571724626371886671811316772926398507503805011412711199311725558911408622405899978783634043658775124397793639926703365183195345995752061687311566219199692621951328446342472798522073760339919947754447406755224484546283196904481280736476672638310737364030531752582721854894057030998632683533178092728596104889460538517186016753074546100887166444246569197688284038625925907649953016196178914822771806256903161082778049632789648872078026010412792057130547519490439551411248905147486922538425354934600298304965467257493498665637527165652759233378632864489787579264230581171295202913337220115086180805128027563417813637557905159110887215551659375447580519032075408442362804078900681531637329851651993431313723008110336435184570675514065172945672003408543709081271147372647635127205982086151551018826792250314437030406115479054876680265238571315583948853264045712535155481071132855180327114056224809988745988377706153352587263642060711614421083473215718776414031214766844680635885716787053077335714080643896772427712016938218992717995398942834370466441613215050316590524250898726335798944892120479998931649957186542210397520864455088817883255477384003728122566362858488243627877907194915946643590756278209809371258574942358662489533449312631018686128491995480622957369677242334912637851814774844103608042879229944104868751654867162113626104944915009305945062469872390636704411810465826587405412147493981402147769565265655860850889785940839978170848240697430228237256965680649802784784951625369639873155915614072734841528928192379705693267014085470034292162784596501653936412449098871642069215205033621832781321874525206467265601488481243844799686719640360884795118291196889456829016279457262173745359674253305765368572019732371044705145967392662670293777753385985869636275050687890554228624661045479536615690245707568998062957474589240419765691538464249444018002418495243402716893776115739686323933688765406282863240827233811943861972186087070445119779914199068394415190379697641380473018144986492670803805944949527521887732601741500714585485109195179812809077375333109966821068599471684702243746228086153639575720971327090730878864806775178670237576653084862520987728458935984427146353153434236620114461135189423240669384460049345096538431931773020690212252911419733477680091147604766437132793881664161827559740758804852760701859369678756512788625923377395280019828001632556657504167695804315443269267700093736043106889778288035328202505158227135440424789212912115684544931930934108997846374192125442145238620919093643556683381682255698091825888297323237737346622574888451675484259846002373833632093827237898957743035093593199905760311820676919793874950670303463513547150185316858568379975509081428013490183025782866426051912091195820227818509993171479815394803738346553528523852843227621716595675011712409732264373701522062597002982407445797539699725598187135663422561389923399746252355266074013254444363655528424304491945309058131176581826839419465866744867039656497354073885933108684430171203150788246628090753235073549577578039621102435126230897977669020769472889155362414253931556330468837406523273625143116984898451105955641485966560853525363965785169540153660191965619606974535902893177449165934608573793631814364463323664372897919718212125897998316803504374956753112184838796005895054946574239873417753524607315799912768765341296123243803560644826889910757182816734128564327941852326884826128273180510570659394214542309869491130751133473653712283976059775330230416942604948452898347579364211589298982366897914615037487765178020666305280225881119481583137509983060370440467893002988193104015223899954969142849127680747749504778669619920637414200926962525804444923041557669423036270662139802873883654112168477651398820804031172832405418829608412297118709066297804708246688817189434485936345571260349722418292082564196111759623844980943153113372458117604482436224255154359206265282221887983164281597041227231153341046262053714565215498661882396804760530899410835672505606782585691130464855494414829251993573645308276937116117000588251766273895160295319935906692099273416464980059837570264171453007217059422108759579231561421450248651331726093891521848425775671376286795193612574761056490938095016715459330428206612529183843483867374310288986112053868328881226804913921951175602293388454756592589867649915281000936928483429918856040133755193517376838767683580366368792036413186291712086065378735963915853599920396558133294696060669705716586759695993421409369131072509212455660326166694023563217904019363393077768641476012233199400290697461384872176960714507707094671424801611899753068529640153356764413212147909996191086292020910578061795097353307926584578990239073376511667659396150211176039995937069770998454934191538919959319125748337460504358212664614801667161274892690598557099691179633583779211113086562199206792146158454083444056960638001130380045717048533594357393992464742473086690762005019889660427712001324489034492522577059257371224590300325420722429293445326637113012137794309611077808811927814112224327998347211607023082878413478772905779580949402304189565484578998787558241222501149868814836992048486955406885858880449037746530104989199768852046359484941349669037826904655206056396205634413638286671520797702899419226129843261299098295090797893710078725149019823435813957143794719821269339137849701992765418352270648217686078903806229023539536580309904413407789619757809222437321975631131958320620004865475759676606423281170529531578649981407192039726966979542210540761946412990290952244726563000696473271542849496360077646701149698137213380178404988767840797387032792232292328784236662334184614835302987750813504494900543195820396692051657891682476586273212053112964756110539630735878710535481307134204997146612497154465018510073906855407942685390887499316580719261831359163584672953477021671710978692295149807139756589065590783651924107628001177146769599172623140803295136893427166535981320159072320037079527162878129032266933187512157679819572549436153977136413696209000679569169987627601299499169325071520562948604813396875850091986282973993539317893824662362778003018636783662899125477202069828699189177000433246983079991521673654565005239303513030952848050229322031327470219479348584455951418654496786110242487192279843608036051466644254708312474232180936088381408261484773524078918902995687662422691362445155119829835632158456862410114816470456261250094978282282504114646683625678661593566582696655846486786456604406453777889362623610999385494412981340621173722204479520309896678342622297188529114704275113797895789303796189105392574832206439442119086407356847203794979403343799337422583636531881553717542021003035219699265869635522094693318282666309193638014555065026039466516402551210673652657598541593195559629550144338097601614642898859926240929842657356451363233507326589333209307830499152881828373248536762277981568452244296749004883415784430052537662251655030202750538837583970370570175477723533112125970128965988025508170872432664991739617377164705131814358380183522716819909914854358673752094138250910202685843907810465027826804870724509027326949559098000602439599689461496330201903607646936217454407805767031571941711804678698846149075679610995033050261854635379661287524716458954903129304203804870427052188495228737291343164812463680434381305867697179068599173626578600885600422354266248772251475040803193750583052711326083110428582736996508833304640014182652919896530357854085793615993409122605791825916958064281873886946051042505950216476122981728378357410646139574086926398023016694152395915914020568301921465293313319408119318635057338025494416436194743238810953722130480458919552567280139979168764012374742603960594729580613171558947080903827997199242421676234982580256573155472740247100919206635691664170713978981175680599459465793297641675198549602725398673090600228227894638430121764301697672532499167740509325799758880981989470366744412800177605677518920121885509654842287589740894590304311189949165445888221408680355496894726252745561565613860023646102014607569830338421259961866790108038672517642418778632157226588522403399496955402284904674657503742835362501630864514552829894086446790133736057973452262587409933530031484187707982238618714292344890229573015674434497170273744948415097429773051544861120501233125136037497736747156884864547817724806793206079206904311330805374787329064561754982168047440072621612548006322841526887457298591733162125961881340255432403752724412774504164916638537086068919109048714461454773844739817965726706188927288951104388573464864088544608594605523659909094773764505231208246285190723567065457166320992879221325638248412070070789581336980390773295483164053364277944748762594233037965471275270622709096176025900657317267872373568547588045836787587797700775488749017297638495597675109563680269093831813563824253927094792120888838566182851954257198352521059472480994641650351142726578429289601587327192314569674185872738143166138902631361891424813875286350820925008190272261910836951477062722991164053195066196797177066267628840394671646005815011219212229837344462865077716285807317642421657512743056109512604087534619418705780308486119826648933790356353074500863659415362192501126941567223132477872389339008745903102661208880761516258565911279765413672779717478804096684640004232898444293580154432726584443089528259915454156180672202496779663463384751293665095156861032544963773755731235117966436634773642331348763638751606393965840151847286879072420432076517898241349469911332760813044117951401194791056353391985218109605313239720179087293764400803605057155304305223692081541184038111546555190084298967525914744389578865663379514783734519818009311782029190951410354063919339820042997275907947453686337585061946178839401671822147847236096178474763565594344228637593859152478363710359525179890578882759188330480956198114411427394738321843061149791136002261483847486263233351716466785961833354511055289353801014975611219157396231848291498961782838820363105720241254461658861696654436753503436991878343425726827137900976366487234488665147355156031392276526165006992399175444831321791199734712317542511274191519919877469471356117486214428217452685315602372159123845641819443989869046064098201118878471419805980503001246372469132457903712252740171076945058385876158198180992112297012507889950598163910758228046683353178911632208021271918289903337709908240226073611279793706691819056716373319997069290557410371714787788787918335212864221264727738440525114228924235888928035163201537982215825987015180659402148854785469320321662343384419774542185799580846840282203574867763758086866226807289320177657248317288912153709049079694924322837922660755286433505818123772359501799177056053641325638887881040961410768568992507095700168125983369802662398150904522900942073474981627310483590262533081707407652471848266314063143515371785419981384685373569554804568842183931016688419432896197508942159844968435796787746408323238522588213765220320117096289536463776075048364018554874505778279067843717071191838999655818027362346139206477499772959084294538187114498354794002760313315483462086247615640608257650244574981897992477570640231820832905057407472932850005241925056952196801446710957127058168942785053367813809952584975376574218158542129794131092895045712229572469895316821645454775934932036509437122110651608500045720406583315878192954766843574002636716371323520685993574836326835630858618828844412267097507298363967772965555520941251554268062849150328141789666889385219460454535681267943076309589525837193378704228027443376740087457930287485335140252936820180379969523766120781793934538022652242904672513195121531057433280701000971170312541698433934366814486857324371490242905930992687059099291205853621993955487463260308046175806466633926583936371354513339899543600710053173358533209727882901178687264320407564990071140815717443211165505611681250085629169604051353235463189662678796465310945624848822156392349800781035659020515770036153934930159955851122966942496071124602690191602011593924838130012152211784421042774628814573008782138576826248160870338352900193192861083414703619707776540920154268895164335884821346865794487120055637332566218330535222297325721615480014399753316393299486626723887354092363324030622986698258348543931773434597161246586283889307415928413263713052805977746685417878605587637089766417877130314945773387445667328384735641599300447788836358123115997857907174815297515803861707750122324474462135802586339284482412216380715527681262793756576876007398430001242686360051390333874336613431009031909619299837272852847476321519678861056609522665248642864830380645623734683800145161553009543207924383554494444256762722283761012627757500866076433961065296286839052038949343546400326564202956919851741621260551828950491576514940604359702770617922497448020556410129695323014512908042288807799743283957454457568589498123191299085768848670969339317745735130441220439366762801297637563322687249412126915263387850414689485716482699455197382071128180433349297931413077021116575506514896846081521512362101477340411442402154976477350143040267909491294090957150763376087909953350928405681464905534828044240863836246010993564393521013141428073564406874336806228912153890882456691516603161737364802868513218106884531626612806005759618145970184056845429781331015106622752142698720385963928392830086203474248435138008813930112894816226583026731747506601863452402351437654406432036784564481423227824401548864740477785629113849809201784628187562081383419049182092986422732636692810609262073674003197060467431524519784241915340843435545924948375647769951883959485839685412300112651338153119200962675979348057076729290885436813948710385899307299409756815964236391398622611395784980752340472015656610446571410212979751000680904018672102139266958012165294588954494360993353824111365300763781443272047950462345859732655205625186451373463359338772122674017598282819297552804178407598698723147172650275724943286332687768111480293196902954904647279310404193814242525717118037039581160003454318628863501099060105311262447152889396255362691152082087373134756284791835261575875384086190622384882007096200349989063910304109194803697811291506027754582006094125411625821860955464631995047891975509262259703289375412680313795888425631332479214646873139951179715708863548063262508845128778384636960414763175561342967756355042659994465666595537636973566224075045834129536207153796868805438896444037487984068709930692477044548394302447285557610825215619538653905993756133726870711371749788369726221441808121975119134155558186285820406828100627647688869403048017218228296194678475022968481557727474689245754478366830858331139832796546311909858148518803346199826606539548745684104451541151408450744044611491435135140368231284596417155346480697104402457469586747364169831172855057146699064592669247224684855604154440102159451040209762207306845525487754047629747144403241424362030601242597052430163244158219949563336825007652059537053164198167193917075325484488494349554674447213052958194943376485278921538017893936937533919849575739813200349664091202410643409599018885417851867162835814064911505509174738888582420218782845042434858361684762829258620522312178611578267794683568364788401727755443079639487806520588828344078740820833516119058447823255184352398503071160482319853823704195494387627476307866957201911221382614991119948740588825113346965129152796491884117489675765716367520192152558542549217818811156586988030894711216819545219643424290655660802722266610412694111951747221557938622025770908757517028947581018994941109898216439328822312416060034356572892823941338243428773478523476339631256467462832053462738067430965797367133767210640504023326902165020896715890199671892798375016872383311180224436132221745198477989709696034640988894464778924348173607030485673344451548695232982279489058321604560606942026244691084325827224602653940037195772664769388524474656075907849783256283093852618647750167575045321626731112979353351616647849420085788690201392623256259609583575807247952503688569618251978041820429519803659731203108962811960750292740030220637755110988745411808928171861013980471678417049799665164378130556910150753325068089080177408093604000442973992842079980857024287337391341021292302176807243388751589989687719657420666029623311733139618344541369610613337842898216103386463063696035936622478389690273139444013472535756216196899307461039863561801989782743057927086994619745658972378042570492965334981195004557907071524911497620216855313804102130158904836962789497987738106175103686187980674445631418169432922362057758502823184732243109322343417083657269472902348186053325653866560275454340521114758444449330327682824486095894409829926800745201081491194131972102906101807173505290231952767074545444117011085700630762951872342477976746019784598081612199969721802286524235627459714645392800995929584430109598337088433080354150356811311138364799849376870677297270633746265743060561888334865673997730342258794282105432897953750381001819391932866924282236509752501869694442115449656599861295562268821459844304994962659231080846364308192374768939220096033079626288372992725520431767411478526139068875307826023267598829237722502945094097741367314161837319472354813960052782841357458220373353545009617849654866963221582453718844625756715457107048204903246136828980127162671806801177203840320307198064135768835430780141894096300307213576742864489581870471628537100503603732934135475438558902030334925833801764648979648277573390787312495107671127076922140383688182383016545309633783070441319803404607192497321515540741837572696189297169423771927203392886613789545576696224319438552890329674351631011017808810604856830864040243798440948332491574597350213230223618088807866802444721678929864558145342384142874510283111948209190883435666517545357749717473261613606153105229049506127104298736613250981912466211624476180355192535237653865837723673508962236384752015238138565912340411787522990911739874089819042656410481494818959305041081484253488879124352561132207685897498381650396641880457570694548947039423248113294286956700734675472254945356470276198221345801741095874210245219266702148492469793016674332174815267339623417020225921958793786937806460754883242931619329358374800817022705423828023880802530257470121805169100414674276762074173462970306381140858184918810357494482206089910406350384811651922437987896947960643924473100453133516214681341092088498999324021331673409887631885416288843086976719859496182933462115349323635999035845824407380958191995548232344121567803674695879115267666147215022686067988909203122035647316274240559760823849874963752827672198744140931237568542105854151943892697084121242297629765264318819064213850075432016860155979663163221810785562108800991241679225918670633638838587284644646425288851126931153130455103524438363605537843881254071301774743750134491155945227495754203023723692264987978697314260061544429643859888884416781260231696144318270929093811122046037438364412990628855627952275923131018690539563871878330286920051576809347541242961741103626047464502701346426381668048898984785290482883746270930413220215126630761587712629723425719938383905096396656503247773865500136942689107056837761798889919182622748419779657557945021662929220405683987749256505471051399013599756913687336796593932651843896730141256431094719027630378527131408735545249750036827613098912809798789178623164535730082535459626438155018853071195548069859005895995216411233002821097458308575795561732824300696881495306811282065534496273489204925740528495680003836298764598913180372300503709549259489688387246336687846955761495011940359243851000695827223394182316968088695350218311990516876282856330321905469784681038522192718457541649737160019508710509695209325840150220370660376137983936307178004666580477501793168806022445659250127215340374930834066543052399821287379456480003211995445839870049426479284316927452124191014116533071792628115952705965433995508871336477421154938603819087997662661823929279224675749349987712946336891859651108482033236716313204075941724006491928841380820394435145184158389579010957022907899980114823218157780587258376680541864119292334292242738940548247949033651344541694536964417414377703916950754686594031224336182764823195116068713561074884694687540670094645805311253262485194203180680283680005214238008443253456122485884391911087125407498605761562591000243061741772475782877331963151830760016574504775803500145644301442718794571363587001497797346142504145507907252530545484164310671464102254520489275678592056624997657317387908709251715449598203679874455764547694388395010247858426550313918188785964872573809546401821599240468938477292934644236193741258597252821331645428062161986587604865379745201627262393187672984698632686610716045446665060586134098830964679374230399854181251232767240554519528879877737425192142659286103302730530708222423862996726950751508927695494963154747846317266165456160872122158693879559051174999304038101657245131212672102366859408305938284627383935521732785754775452103073675283901077021754266796665499618201071195526613846981417736828281320386299628081846100914023446646322761218969300476762837943672124185105881634741295955786414499056235864783310786837653588043079539661181444246891887134216625047538554234005646695493803422717902353006750802688784330693917233510211766248542236390046083239165193995602459837622684553644222412267748217730232906491419274105657770850817888252381654549531777035980311603511403114499889441533834810121699900099398780462067503591955551013080209004074084421423204931766836567537803625350829362399709732926788444332436874889747343728394991150435971427846993324966770156746374653471628055767255799864405319214915684636182103888429345267508083589020732540624187162374163693038079484339134799423366759870580714424066623916751752403983597488956251368276200451469182663061997053791790931431425636381521721728475142226726800302127045764093104281115189085038522977932759584107432862167928205055684405614979280951315411234092406432843633373130454928013567059170294222861696267505309834433555810760541991168971791317129555300704647854879305728679822024617163418875041505933206635012490271329512209656537543782127973040619565704431978527621836205837385455483083373056927834468997018205323513925334825888321855083233537671308122173605367988372475532649011382470068525238592474169355076558204261238312867454350280154607496102544889202814611460980806828505501356018889346295734536621207853943623643077567145411856713973218302147495164817323250226718636403349722339709287188436597444134875913564384965548581802707859397641845026727457311998723917900440607831009912686072078037374725984238737874378263261916052980423472322937590844855000138870940874872722007263873954981613331874598417423042915601552944550339666065391880196304108906516668558948925774354227903190544766208271137754145048808853936359169398556715210558775800239325957982072273962872471755170660454528456218704239749677796476938251534707235282351916945898252195931999301862872356206939489906320115512204620434836314198797884247457870695451793559673018085072897894277242837600591245616420768535238722450285920025866974405588479275640642721434269831392446272507678478531180728648654730937811404949584905782672741734803495412823691766355485864745414611096289222577610428837602827192721409574251472374662524093045824137451783715724779792161781347715458342352114352907914031803177852524276751856929553334280915330478096369927131178720284241934917040810646466554350941155993389952085100240965135077813211292166493486221106105385019493940265155478240991770088476790835761345659856189302687413638765320571684696450708870193067287765121159622411777654164376405446008007027117629556447547420580631748568321587688622708797023079313069588541146965547600657603814504951689792385687185143807852247863260080710943841868605938589904215301576304763714542001431817301598869352005677796433974359897835494307755402785971754239693204650066961623288497040184995139390649222000497145629789929139302924273257821653504553364114699603935451498636908779276789145665177913104309720400022537384737711102877979832860976347945477359150707748036930098353863213134458106882128356295777285351261738783088075939842306907507196092628690052573489451566156543176817688938053743167646989321351919147431974050471374065151224732182674941377024281977194141447406680178403477171027969175422745738045437517630604292004532048983375310146647815824153069236261521618447027042820000815019446984134009537559988232313419900704309032737787629300592241955806426634856433437630973794928877533659373523026235441235028031780294152356468160388378907890948833838669625471389943743893508098489467828193031235429817728420956886634473716260905649901347330910164534194319968125978702157365231617135304925111640444938443964822835890283460112094046661114398603839601460825839738198164050522238270125917851948017771976880705773921958299263220954614143633989187948821537045194681948565731788977011050659095707586729808219597871478468600545877751307205088205302089124036862596016275520184618841449682615334232067937244112861020214317714543840755202800894467909557215490805617970222910762470484376361409647849264236687064428136235659569541980179553061271313464484717386366592631559881489460894385798818352903800588008197957110537286752389292179572002306968187500497121716658065219889615388518040953434502690175081119720843584638187840843675595336568189458100850196478726264201466819911512838850163095170335188397502204862906707610443886260575363668869881895435878990769805129254259608650324532642421879600407808608706527397029443346633852740645534195733015431103609157876669231853519456804545331144346540267231976219804726222497512162531543127503857389384290570280926514825571073247596309588335539059259214818787557109167096408129917720647374645896552600196010723791795809193165273514687211252051062195467074232380769862158006660255749520688054673548694583625755534489761951444467766772918688289777443349284730571419261683494339437331754618249479501410727793256239885684156359392940969164804676723303321994087812183565856379662877099967574752265067504544767648346523166896886496218794520585172072146178240018334855653237857071675951091155045488664036742841736951025547727196845621142393230820045715886270596539320485139091892237605586853968031407472851456510386235295672174847064170935278462143442771593501144162239786138885151843666843163643149605608447280447030629801859906926268977860423790098817373867100564879655883815050032492122152029968740136591405102125732982245788642323073178365661489115201727216435919782509578464460052592017664472771190611460732722047965505675442718539335305450965756414751716848762997479948294546584297136521754962823375715000157039709154077140983800417005800175779169677034929706162130958610612551260422750012453962199963227125899655229719399335252460551496358146827736058885991230728510634832271892208401578818745962821289669515132906046796015902177512093912737030429502738378360201995991283860041059128931683129690502429861972284464978244611837896034530773768955815273023329966373631218866702722037669440350690701103516523414476289518017691917223030156162766535854485107053691437073151170147972416230153560805025943065636268907362127484462210590974638449036595447633501873800818014697613491579298909259450840753993628248108668993513483771357465845085104725396844019865000061637679374700253736607115464696742844727663125460667647602800840952910215731354707218704643061946833022961644685608540164647238396983792925817946475807817504679267954764240152321593631984012521331342268893298492108528694123707959391886500016156114742629689110098187639250166477271033159749232925566779324383675934083939612803167768330656134532657176040003999667250360379676406903458694695721208189448239259290604723399710870779112976840091505363454859283961655140842107961888483871148163417528084683665950474765863914156945282802468908883626924094781991087566257382333645095012782167712465900533290790933126550356855545906439679116380335301435594796591025720132847357764607634104655597054089787373051589092044221570320605676435161727860383895523839592872569341849616810447566017386233328292071549832066729504294027782271561585468823880234734179901108596263506116168825673761134923103825980871239995451952201379717238322727804914195250004072390180910342617579745538121957032298949848958221590874731581980481617632219342707147834834789136203647565473125119139949480448913166369476731552822230461123472339704548980151505589364938087088400460751439462880952143520798945148162294179298869273131553814116320186966801361559538250399366532763912791887909845818123814436116807579215541484878255988222072020477241785214535197411976230574854805902492056414693012753149390935782709437232661260744533366786349236738904834113234316474233687486700996204056962982735036283676954632248369825515282585759356412027151272292430049956388579181447539099486560392079896445813046753964194769988928451088478587271012253324124527692758747487366916167394096110052659121371307595512748907253998305017657870660991735784688553608401697223380190793651363458081995731085121334313732691046149059386386830574363445277231426160529318162431430026535751566792171128274343763404823596259897761115077287543659305327332375913937473166539162452670636856587942590908620139734879532127444181437333771392529232869727927862643034052339487446795265521063691204547249887810353937601574738391661823383235403033160639354753216356660707656045455937380684979003229341431419737045644040180681452315089511899694293912446406544147620886395646616920637373232695943276391488195478962077496440948995274385991975985741632358886066963917595387257589128972373331110756034507072042665517267096825097391142202339035131231754963116221363560118659647804567443994391773597989000266601801813724990916169647233314715361667620768877507358888847095896710183994420872752989954009547352683555627732622124083714592120263735838383146944078697423112906444196579988589629034729022279536811067609128111155412856851103774425328280540643291898689035173160065143486831334381764418247346351393983967198950059494708618417686578472748035815039714160090628545636140144779927583738572102453682210795252857490216944488950811767114866218514874515593842189874346036636251423254028296486436508777726125968873205403538416673189802162214706231882797812168073786261758378411037982644754901422198187082265577072583607227991375652375904877934205141777007235234366037726115594869965616579663575856834460219646840114153556762761894053364393181991816832563389687940946578107058902617966708041826105384840243975181280628674570561458617975227113270078264014545357816684893276531063596016421645784241305796776831007706816199010529179364240977802324651215791921810069170316660562174481559278240752699144183652411824197425513651022423355854511226993944967287073782149274951329940105885225993943411814760093350750817478368248030163334549218014275237642115016045884593625200713093308352501364967626441082660181073761594068267722724717386407984510044559191383406864115371289575924676046675268242304538735962419775080949803237262601294704501241485148534153602734355210152354167942886938238794143486148986438298254638152126490254510462275902951025731276886615768373761310311403957263614106711699148104270217009890192880701684083210297480441024605586140808726536969434900440647912019119940829417264694453395540034875331800440877105376335244340305937151074030729496876143100986852831979026017697869117577299159339666238283208118809640813560107286399884850492353211675107829285653282418471237737945902117092964876152260465389833419850300412565771806880818323837076882637859151522607453675207187213472552048221683541677394660212251585817196091589795282072513463759425057578880776515676152772175711546874315091327294739476092432201292062310058696720855971511148269061618339358924316701873625987189889520185929962037146902561987863803330007888623209190416198619054548314151446979428924229408145868596473019126165836559623265183364720467245620438212634643024748723634830636879057899402996720629192357760647514841141521594082601600714431695513784611663043039731493543620606994477768777951588773384364804047899080398567057708701279312353877293166821017319306243180096243321433035371015248838216933858245748254489990664078285712809174406592834430011277790885246736522374417510924339689231433204017664528161015866512922836655868302860314569291703341225122961872656877714000968294060547368586188631711140548717348502567117555334751176615764451882856271211721870470439245790792525133887441741926134747347801299479814457133832952886900711989331112541424896826193918127654491571859281908894591519143537211286252176760378373192917302768514673024361308333479855351788377975488759167432289633690592544176825829140346954141882929484981318595288268139936512248701224557748568885215098455504998137427923748137042758633376599429658016636741971263044354685208699157561449961118292343413500305979599575875629874354110959777253341993303763981594889212780507049096157180296550043900924903481436192428195225407542164491575928314078332964340523087208482699274370326030307902175468224986274010119359120647822852869842333116893177023713476026149742593499501543265224009933729206658288305614885112912251530843382915972737163756328134983099993656875544019495891856121385055690395269489260854609252400509308035125945299344928222662615519108413655620014877807575152826045039819936447360841374172483464686472683651227595143246612407871527718496001855221001327472899367349494054457848477859937355251061008053643065468904668318290706486539346639152959805135788035287480964045582997650490548738939339221975544936492609520909980323347593895113697270717607169272781548687137164787902648354035778581587746626365878959618449249175264786828859130497924179622666195099870414333199818084770595591586103060564013236125653369373171346472651793707564075348344943329651715742752750583114024145948157019224526778234519862156866904444321145123847912551316482694805580753759886245899763009119081846181407589403260741517941502700598903402053993510582390384844202353751781942836676297344547751811185862098534222079977509409813312519212207410855002272125350075423947272823438782492616783725522546148426215582956014759625395501540143957158004425162050068143326691445603557621953760832723308583627365334229844423596931531162914015924198624074920407553966698265213356598342004834910747503309329291605835998116478720593092407288876464275473599055834935984017134758484637907628146096856135180587751196789805852193958667911704554857857443749822265351488090183754717818881300907693331224639586951480866925479732622474704065980476873458553116624355317985313195050860741651388430078678246705818194150549432171561518612020272783243668880515668224439265710729317092367788598799849841502591209253703928216488734616110276953696757424399877465325838900370382593746003299568694487335041205877953333898901357303205066830347032587089251202625783738685761748552818085994952324708561278079454877497811407345768395394576676739985220425961893493308843985520847008932610983707494064079957662053648410445482034468978402318554635426510262589411264492835597774446436036104241777443297101858564015474836008411517687260251665780235443806975616549176917964860490252754692550186155900772048552344615880610193143345907660476814377372290073657835067471197731455656017766082123723642188029783094789480089426530368708598860453990396587583365416963774278256168480931574523000409941432449291347556618193113640732903678141616007748489342575291098812427027507786111357426539189673164785715126658672285545782172429398619781220389569457851419900173267424575240638304211093112756659376567559864886321417742931673116107491961245466375192437210240946996053422188846044715089069789624578421242841605548466603622486620404644061128049298829365682498391456381775003873397917400535764640577727725936217349680085632971723250501071533408321384574602587958422101573057771683520274179053815869546551007567018243287682871168034058376938819455552104092702184051060087229992550806027458237094167418359513556352071499382075687348707054472236828728282535141726017597505878318109835947538173803991876994081721007027742054056971757782218564016678240546668775714794274326741210186489351283674588330717118005398406173220100390730317356795421624618067516188434870517054379760137518610702067536090866988476135153337746938637424046037941757481916463144696932501694635835818833459280227160883194924064437965809026605843520642966028543973353600915964117167253485098400559296061334431388434419407844468116247243994817746317212527098838272023711746471351032682218794954826927909395772611640661819852720787692954952498486542313433042964823508768770878005727160830611781669352474064816244833990390116098947487319380622368085828305073416247597047389586154697688410660307275743306242752019139599942256983559042567320015327194843652262977780890027158355790526454094103194214475395203041556280687325698663511243398089556155528532578658040488142160178591092542485861113326978814281725970716161127421383479426922818232693499641314075154347098738149086639118248657535918956205599506930150204108282379966334018553422953670396125344489341960144292308489103431336569924211061098471064246871206456932368937322494510890569817460992370785615925962631996727110606209283593203294019917394643994647480459522583166985680943167506172026056734657661188696377325873491812161326091469700920507065743994906036345445036840217739352776090266263057136656167091753537185737674512506288847422518258692095901257423995509061039871142626472146548152777060288434130709177343715182990397974778234836421548312181205316113509635030524951748763574507792384829838987468660238933442067672372792726118722641324827826513939947543613090141183534970988980258599469021647449049303564699107120130095214055626844009290987413750957725671521171401670990190686310043336273557539173594459225879173461799365394314668846956887496119225020759960573360049125841111938382183373916334385922033617372717986904930222814940099799388012982467971041449312221763469062113572311689387018200936198666326713449451456665078330142655752780751802553270533221453528832482219625663795343668109634045621496794963160259246963837966934650242996831811863563418967196867852781469477914709217535635705554471041468719368700204449099993877606729229737460277043360724476978920317412909144545151917556646482199433257851024704611244110292842600185854774942396675203968513461710384963863216783399552842955582976693167101845883501957967402089873776767893414215395656472374414902404331506568872979068936003007772888991137222915392001257195669722602750865669017304014330774861492937761731619285498849900472229389635031805001547049963686908670854894347477105257234446124852714513566093039876761688918548203025194462382241301807825837827507991244008185433569162666494770931041560419659120537545677402915037029770234660447583693410756241088231800009462404298761628701135663128487779234797615434678469000398829663181557415207184281361227495906502745150501977115711187328676415095105348892229262652578994620336916968236126887889680060828553504009405016124349791623533661414215744793169718732754394836213608326899141138142021492346955486775514375402797687598510513028403816335234215777673135418030424241760785086725191594919470161740691512505296888767869380896733190671664487110551250052105885938104863360871535165729648661249727725016993053455260520320678013096138034829655203026530994997939724366679260670689317608368925847611838162897927991617347082571798565631391406002951968975895520284804652562611877714083516677880246172321111357622869948909833464621083284810856606241162154024394296664590757154995921870249248094105281681933969766585846473753983596275960893791024614977480467664414882896969893258292081380774547117146502290589861195109599993363020746225995295543657054174164202515925375170409493503324391770702499757293055103850324994637444400281984032526660586083839393244707625725370401442308240379476362008006197664221325067715312780516240980345044320948197271319734503503232124583995373451147315555480993783015835368027202366757377890003835132569145162937260939854000972309456306057313639029421521167375635286191983759369478888435091572966143407111601920301662464782335911123151152619617407018111603232641342269324137035994153813135107788820499526171284296875181949390801446581769200425064355923357066667957617239500360224334553521956396430664769010450983390867377509335396080803460361301605107318082605542076800646106535855981954379111349158063515201708065048498486941753970741994690411186091687840631429690692573726815243221033752041823559879093405109235300059556571391093672696982470607044598201616368398459060037298566073630769405037741896574513493218951810173168669623254631139519469723734193842488447888723229507065601565802924666885763275224197460833210000586883553495237798276437966232598465204251055115073496026678081350126483131047181088496901572386385767790103008669196949507331924675297546965722734572568735371310588753299894040794462877048334124762103143562033433454035039471199536899674870845129772410131410115052923548866669135124738624748699989278971566468207061339506365444153023233282137469316176728014411215002697127874245053453769133755485822665658379602081673120247989659488228310596369576544182077671250708338561117986908031571627802062114576692558698488672936312899487890429105507048235190624706469057529952055267501651816753923825602902545330810908523197541828452250142803193514551646059036319226498030558782011464256973867639553458375458871454048662377981679805485524936009100181505806268945716469659157520973755415831719185034577698915885352608845664976668062554960024960417701140745110231695225934569546676093985555958687916528329903410155292648680414434077370536722831333366714210057387798867307064437166926292495448354576434414182083480512848534225859357647064372329025925027688610001662078873707557214491357351559785430406684079388414924304797515873104254583036399667963077590552874315057246783560140141778974245506017337654226539676170414993676191586270554598323772361524885029388343380354676739304763168318494203233813174920135620369399460508218633757072925594689908992017970737285860235705407081461707920244979003717338538929347630332998688687698652343468718914551815266643260993416733823483584087661014462071710689994317472270930929698463661606630847710122383032207731988763290310142093335511640195482561407222093200271501394819050304794375664327189438735290688122033126583831739511354686756121223900843507218728791649643473826186204784593390573997960213938775132251256344992017844708451663096365699721678243470059994236503532104900472899388754559652687975051512290417896522743416388615869845443897578714367900270659819585773574651533059355602793755489770505616991128435051405085713998183925021792929122895288637903291496958318161971183369823774867518776492555309072135148836046875307682925906948332911139175185631921865046563817518199869417617871849175722325780849341695669185658006866193995621150664031991338241894143979192924425799779892283555535810760285193915991419580756845391716309103771362331141056973165463146685374286465664380178746907231982783374135388163026852362414197632644696615650496328349259650756872508836487357015325570731680835643727500605733972952083584314112137642328269258299703457573661662039290752279508504280360416543362225914698051627429959510801387254415440608096309954365739046718820740408260404014314386219754572462088514945890604944437249455665734762103231450751011032117102344855499779350006837584643967468565714223027259089001095121355831332171589386644760198807701425919549888688187510798908786843505903776535856196672327750888086302479356786366425080423694942882021849288657824015332007910802998327230508121754701688521427842707630018969673459165338024231171156135630928730919968522208944166030234592647212190381517023628041683284864910262119166562643305933413129234535673553542886918055793234216246918064734035523226274523976413018988241603001400237647095249442034953595464792472561318558256431533675310421602347985065844045860747413830026895302043514438713355741950576752224970099141195484206768546361866738489357992288341832372458727559320559263800676619967662763102541042100510174602759663023367207481769915446760782394151735836154622723564856992311517865499626472390646102119401926322252820103588330954527581616811633739838315118596585148673942865600248532689497028901089143366373961190624553069221421815856105647814545370644854522738418195323111213951956926408922079934507247146873978270782725201248214194044808431817537904462299262673104265539132384222804788242365516904754153510932344836327950485090058300650169444056884385724331029503604699368977577577853143686213439154337748533473747002681620293752115469111860617168605322945489288469634579226065334460787359286639493468127254271296572841273692493875353558871233615021042307385322131807623372729518106906297181551272349305258057018866126026126734826710974512929597243933122822370656390678905386213019110202172037863786073753004724821264939713555335788967595259402067953842702723752846864017063792649904228747822027571620138969874310935204757624847405831160566592791921805374220295026644466696432546758238189098156092981140660158632459877455993662919402989224492296279863675810396052303772576362651906002809984000815237711814009049580971439160584060285486191273698689322659419226519315939521122674822087437080774716159300774293602491162150355470508137093349436660043095013100964239577689653776099937903908061631556729456955636511829991386659299691572058039930125844035698890520307245144697465101784026424512858439248675535861552466395350261638284064076166967902228289759359387563995305063657772346649905323170317562680075576841208144467557886927104885166308939335573328650643931655026270830853122860634510495314367520983281271067256410075807037488292385368256105593366216687962694609517067576638711422329202736788675441746093085390268378011874424082997988186441506713400111911192705361197683566699806289442032029181728928245637854276817550780471539018959470076916087804369720458979273835557568202255820292692381092787701248800128068309205056827739669119842005724524796607440836385473944828717142142475250516791822343998613409209397694499184162637601478988629878499443387362849872240731108176748669731642889391686110132225568577191329248819930280523513377962013998926820005120773012992061208963325831607428206717035360588024086198032405733305963164204784571946594899274946436277098235790750208824840462674444055893379033309235270103578741604210644822417048638244430729108506758454802369896665149094817099521464366278081733973931921641819867450714831969741442907212357134323304325535600811032519431352092789020625610942818818874653901355304354598521597190334775857698982468757713149302464094152878950572962055968991449712311883944672530407835826000786318150692765755204594535621986738798013500327533438974924942133845143337881009459163966613346672687786861975937095393349033294553769329975802154582909532080941923487195114146511271698087710427805500073465159180323475679363045132491835202502371894160329629042529247540918148440412965509711791617358460602260015368248271215790227803870570231736763341644797215783642868708642648129319626001704873129148660121381216951992201124525260297019313810765500262876860178949923187217470777230996682913050337230355289218120191789462758296603786196720340827740486836562557832716858243610916447616681659709931098582060217272957988679859722064023263470791330943682732573997970707368121756028507173781171869349033725361604739814131613572404193867008436357694995344948740252985486375408798405805305035653529933681602522726577003242048570941559976404044770584183835774454526251363995526871155270117334183107016851245737267222238079090595396219735210806625370850594246360456219581238321450895319789449012020179492727134224920514615282706624161839011891984765650853099147570710883984677550070876300967208119358000623961682552045161191672140126389620096499505422708932148304158112442218296959553213778300229125762323794618674020224146229101190585266673627653154915048660791993329979872080810908671300670361831023324903941182964897787056225393411586909020102531649628469303987421842043855873926976816414518182136376915745373543733765097919910109926612248096597578954030055188088101460784048040698400116855500909793565056807064977668738117551231892323655093684777155300806075012611977758009099770268594212392699689771186768221709384580598273032651625040923732023989715208018354821715909151553843655152097047401844385269103462599910699643823869462643219212286695575865763468817957898779646417809066963530242703548355877431269420078019957039115706762807374021448125220083589689472499560718934935062098757878753830365019471763902177400193663780236324113027903169254791197126520402375940596453465701530255491988327569220480468581474262409208997345964159135660947993490649380532020281883185345322465446699472965196942721372091584936932789672005825456812399909871014057275560570457994657131487285085830139460996624977760204909305109384990972115008697876608708999330230173409500270384859159528760535827196922667926262813110447329195304143579554604940654409026957994028324836218048111559303678974744240681860154594388283825240354949882783389218851121741243617547507620818118663324767297829216198064393309962254062332215833987493675775317034657818217502564725819242515971741985173829779422946995866999237371339749380557415914065521182638836636120214160290774328552249005524019235467197630967619673352904485860855423979620214375231235615644642816976216600858429792096612885173758843061305631332406333854127675014681603106265671811936997901884158817506672058196514870962328125138189113971699013215981100424415698197303948191364502402691767127569852829215502915437685454878825561309564265412931791444563342777168457005957181128266577931036635581769886358416243539332899995885535994818595611951522731462692426542605424950454944704969506564052155240806190551213227060999564544237216202154523943448332963498078661331240835286884609588322013691292665202096055506549764123534779047704078182062447345575335019859475756544580142348698684996994392128731347781042993980595637051604230698134045288710924494414185433409021134246330039646561611416778930636109704789121470614967197475692087515184619689312173083092069812578394478906003983728312875222768839073531125832378854103556433380588203778998108061804519554761060199912798399215561624427032887589394978056380366348923662800933203806336606322638874448892629497772735890634720987294039580770560389030532036303293805263474057270459367674325176001249132659443170845260416618785907300528055166848562667061208284425510131916016357535077835567776342925275299943570455186579638490966426580859021127651710495014778985046156920018427837326203795186785225996797950519794292640108933155838995485953192887513803175020053849385031679640065992326937433844483790280522663246979512881446259951307660657634356783963364721380580276232987884719369719310907458185743051024994284511478402047589553474265062769123981769086897901167376674322432594001438666471569690225206972533135390659189267948796199241135373823139619351037432117583370019662749963565366934746618768759959174239444649152142501134504693505421852915939605228586977426843351032593390391463843539892323981265677036739193727995850111389391456580621429291435976975221732792941643274839099537161451552119760749134274272952407790444371969947367418400188618533530465099147167677072055462380771776701643495991989715085620390417541900048766693715148994479492979698802184251791986997561329163401755346929057819174210974855543274339015839078309312433174392605369445758599683172415999537269797883313515518095691179054001011798637607489475092138341325136654362031199297040348752310757067849989561568850214164575552491463446682988195713414122333872315811366314260486676538937003801762252681055494631966743375570023897099464621998530044281934168165320026353050653732394169423944889607253934379204028821331034945842536729463254473743662288887826967659089059356066895753872281551561062410911238495010223026162181113214772030775208754838954759547254274164501454486451197714876704662812882634396185531029419827402929730489787724991103443337935207695107101146470480388233181832313234544207129844489574908231988681191437917696288202840992432611244035589512840439374537531035257267254419349891312473932783653862955077348373096897363787653492157657336499685035457617550619058347328690005496690330612524782693847649520983205202108506296670842887709558117114138172809064082526895213680828774858731678449853040906358223408167744397905698115200566711115260065073092414517727555528321131861860460575118585697687243131842990665366383473998834253477251494747518773849539255371360910282038785399556411555477804493395314823254914713439254316947298556834632650590293461567381072453148714817598571905044286595742181706635317240219359684388569725443675338943017674736203541632456765866366081867250799881688573880989257469983349066232709430641232917778587540805339783509109715266490976179081560982046893927037654008380979543090922411280167201047931446568125149508925418176556528512846540915298905223046623123308258751629373325523794758900742963424302577364204465810891802595189229543979413534859828804757093350204981721693833313142134212220392669591514421712970720494960647114760079978281031679422695003860914045257120651781039678462829649197795681739163206851633156985721014004289049707093241055855477124235382454745868923921303964863421181608794715906343650039320913573892868938182315956091891408935813046323312255275726754390238067883945398850966479567022173369012658030593495847624630155094698751926030996383911414365836634330849956020184570022066342036741737493298314546510072585561922069664924572216758678257047489252001374738030323637979475049275111181209394934308081471245371299809600991112606912998482912528887041996839807736440494293607029375583782650023917568999755818183706988717404606493468771864256982649746579218174754336819083611162790809756389384761213718782665227278030753365026198704904160989517482441649417235349657413383298632722686813523720820052738026206703352865798250271192381438686693898242427389193213478416610787730823000636309923455263595309589279343672372014573860219523239942790289494334022324672636000410419649535866461841557846213955634220077760960953863598211367958045907581089904923348744186205718790166601823205420148579043634908459147960504529335639651864234565269430391940530850024295198511005943943006597679003259346016834836263553875293004340301347738292496958685571369511444256215806875101593541327711344291716493918796004107936845632939173499534034638852211886276371788433017498222966096704867049939856951122474528861017346381002043087013517959557461180640459009770202053725069077026745249706476642103936706578829830595000221424939663372642348429334968022573398905097372208735171745302537387023901205139476210890343744040320156320125869980429842711969909216187532143573185817123052418880256699272872675036087985249604297080398100186949896848157736553387872719608309032608639714386604849903003851163724419295266316447719818439386043318763796737986320541448243053086586270010203910708151082529825561634586223538635982456086829525074696966979466702826553025962973536240049964314436910681533601118858275818418092588197594408220629801470400703538000450687355902553565661201062469321910283455193580281886834876494221124792092075169915602613785846627406822689968320586213379229029615641161819023507944650578693757080275937408110949244186724292400137959096842733203340006911895492583847787943888245036801922759426989381505175469213096507731463921160051168430351951338375567888141829504761346336488766669397344905423589167848603132952213938595452846364089635635327630581701720703012314070841054174095210832888584510237255111010220518936032191881202899456115677609255465754073801165136895110361687407647045383989597251156602769752713006074065312364362398123574270151363427094938621055855082908758289536271387416330558533467281622282926779533443291081962224018845435650795031560298961081735274418919561196639598382608426389552870752088535558570589271973645292950561132151292344355929560104281840873466830744244588167151486188517064651039687021094093889338327914891574876350261641652467065728334421515590781429898366058348001403199423992466638123122713375289925964948203110711545210743066591613575088141871849214389014689586192790337717769866514277321814404608452168389589350687039054846626222558127606513179449492866244436027696762438305560209026596221466244477808203803288569408065401267216937909516417452814789804168279371182347918360774020058661425107363469775480708384950841997093622288000964945655148599804315267755555054388151110705385291720572716043957234272238860997682698126478483433126196135101332898593455115889447352232005585707744185234309975453304480944049415999111084379622513740263022705918692177516013930888916049759829255061727651044546710033654319195398756603554524824516653008055358437099864497484435300314557238303798007359625124030188797433306130689968696109624602909870257689098294364829152038716800221093592987050984865133369338993103375014423924556850842404163632401601990710546428368031458656921025884676140404279530617225133372661905733959514775636773020705935799984408709090313765790145472231018528393994321744553969869481782837885486866852095115606347522378890975136000312994268098493725587375854025559677751901445364174225795383652149836210729971430697771314428770838312863531367004995974481992618852469389571907063521468946566878869706311675045553739073651310247234754427447587000958144602192187843162156658693752214729647784740964167338765528159846492225408175776019455217371446058878862117931710174908464228267326394373740827612592565233786803347865368020788133871368912695066462980199837129095365025831999615116907924916766828819368777049428372965445097879560563890756634112557993704088567843216971293564329572450449571223567248699084448407503116140171192148610083052719467963460376509243769199825753170550696538363430581729751850087802854495942710269039022569498020652261364016216749218558023902888225583985029053421086432511869729651880468162210727809806104348599156871434664940076706100404409705850658642910364026733731852402807415076058647514014322876191531324897969082846150446979122645899521963327339411052876238668253763126325619465170613949627677910818323403148258394171129828040184865396758168676808105270411369810354441819487497848149619834665817159243678459060440748016453550896783758880718942665479528257843407249534032280238933841604339706265711973170467132410708008393950879790554298665701712288159839272601111675836212134678449558831860439989122380937297652730610115496959666763230152303472558357333629377235188218804108781299438090091117357150143420249091317154143989811213774293885232203352032991523438236546686378955215927567595444546910222745752765021889581291570212422028877413146400137660084742393701708387827338186857324062416291084434958812539060708741747800701929008328354439766533742316833186732747247700463329977652866715409197597052456606879474184497712425826187872328481705259409195492022726662989031474708619726021195320213890369399288659239196191081956627679280625660850648633630152711331056833900237259277349851238290269161544295439217578209031360135666593942182850040234470165893948009101204811554724081827527373819730020562840919393498061493322060368795807386801293303103944551192893155360893356428770453399783665870462015593320615945819921543730919549964420040393231947057981444577260674978398506951303178720717042333651100504115356766820919374279338429282615984187048284371195614128001002147301421707570947666662232640534132988444592292669104863400956629693109139725494097477446331422130256330839525909332383565860692417127847527033555641717879029167077740477056001462822235854330281608963383586152843026465941272288426349984356807113086928458148128163812690142239035649592597414556705028698189667177342427905906761900969911828455260143660551603963632838387167520719059846256958370213661078205066625665932147737494958738696468304728081496271344558769776204623551250192134030930298834519109729761800228746971158497988137977686934757318447441162962559222369438324871255784213838213765516826931080848283793171391515095090552284833471258758310163080336073271711213534887199678219480138778235681981856505996908586220373942303279698499052551658145485699238879852511742850834653300500681073675753316747833943880225026131399186181526784359562861794502521279642722785264157810408028443485541361877085667580435455372352491310422514961389423159204469055315722974113325584322718964980473569206328153922000040060760573164698059188666532440365795529290622034324531014664970845325933728834822618637221082698785625820754318139042853297974231169520767021032151493477652085484139435586480726218743465654570291767456076878011927950234427821077451568291632686376040248470266392967034290384706063419046669624904300310840355532772041143306509998225245891776501192920417577993442549854470037100321486172969188412854136818107093071885243156804084300260224883185978824587896679701311277262325386575877156129932462924997538077688966880372789414694454779113135448005500040012790862145177760381839003252910785759271800319155867970170203032545871187979684596779088227024817653725977217240015596118623262295059259953800285011885310793419603879219049211027321360345346547621632932018956776404543746698554546146854207572245000616418222500225743126453708969905491769080255809073896915959458684987738805274981329634654558448708728107478411915079239159824137570185437992312072590618749466115014102285165810888536131762674539296856796314843121322167987718830792638951947905070622475239378067131181347323631332662931595841643974413721989438270379691660656482359152773069529604344161759419262210801154697186674071463779464650187538554251585946111623923936111391649423595356559203390292768093424651458900069346076606846943213916313968000559091758961448846880441959717397277340669719929602236452085569990067903485402624225618387725082121390389002488295955296386811212239108777337836313006910091554575640614663950347745327831774132308337524069804281723549084748020925423769572968005183958009789909304186112149048415696462796207480687310097735001894809501410825195410555253483974880661824291267473631609857218263300040060692430884904165370424020323672972454366079925616703608161938191149746850883846872381023962775670577375593898467268648984803775840883130652559477893989357109648371692735787670613767983443579990535257314998701087920529862399987054711339289384772317641689753736299738922375959539535398930952532773699086429511187923964141763410303776978732734738404317822585404108897310754304251591750579166763231011212454103806681495306416444115381117959995986011415990550028668912993333315179277787584012691118691060503165503795665158035293527706615233063604463079922011145038446768976330819362700894541039331112104775552774951847203081783165831347212574249429629238782277349103183168991346183983781838392009625530685201468062971257293629031872111405803303783811993492836908195696688956148662889643131829140246627361819201664344378147314131524781046080130343475055143575150992924754982191286911674654049996480856716241099038679869574231825785693108809106499066950633763639596830469348087622146331075260436056491302020906739156687998783739428485654029641754629452626426069949509885930551562403969490867355178183104799871383590725443697286006610931675489027699743176337024823796596446338963298187551309415085241161797258358536132867534011949435273253975962535383101050059854370552234717336336875713068022310297348919419860233512765626246948411229445599803085172078739559947365388538754050551393902680817835379647102426664008947421181006542258579562650670350114242690491475739087953572693043276803326560284004512447367539079523942380098536107747027604334869365661314900329635060348501621782508458047446146728733518573581931502571268899818375866176902965353329675013944992461952947287025228246704626877647147258927287750560598094593883368384949839826655379502883139327938593832924849746423735187598187425243541540889008816833717840565955335177282124892110317727435401917686427885896985606499248752952362054049739820629236656820466562459596530607506669155431086169227324662867668007170432485428769547009486417320611454936230103667759105459847870622878628059116607653281949092999461291497179083077499065456170850249833146934308223324891323035636967343060655073244132463243342094288430414403051370885762625001766858340872803935323802956319904695833810356435314788918755133434617919598953211919777735198090000365993122670203750896824709049851600512358086032456725514270077664908704261104553839366421481425113420009362945723156973093875354146505246977225692961100899407151069534142325507132958168070284000311297414245668993836753774572283937071790276039741449920960817724393116033522990690488540853460949679146669124130751670811037905141084595914948717019679713696036730946614713869796940943418311803179326054921169686880143274033344706831007038657575859896406858223190004728460097105646174065418927066871875028665379771540669830203949213849477589459765083453569494168585129837614254077944091901099800265556781959056045141888234988957374612658694599828431681229566946832696369227559510302753179499286554677873370854755252291532517093979728533382731754853384977456418984588358450616974760650755558119238789852544389724021857772665937184479482368156451836170921325801277422837361939808689128915187461951705327476421920487635636809485640604445285851316706750304600400952924648392735403823519282788000554905789329996460798790679937263265241924782782184196757537128462911281407326400243863845465581477772436276607295709410908007632212657712390877010982659173266377988957942438216874473670188192095216586165333084267429570844422169487826479951692600746765558163651870928115921139845858079975414844396663008436375894993092934449582011058684762706804617437439409688677448823888441872206354237096433348043702754820832307776812151489164474697529017491150056786073519831673414061481594890516331156507712302072145833147055217756275730797117045540530846736884963260665202156664521233239110042600341232921169286592508188956604989221688147600478438496830387654163346802079931306024252718842281506238400542644777554412165140066244891107823775185491158587551448584323112637492481876883680138294797393031025821212195691788210245718087665376898858696150416627075694555907204772388426711921752608649153133657031439372270521525217093917412311153289662984893312023647415004907506020060314293481332429533959556490851054153088439995804843441027565191910026276737395630329596786727163729412463627507739523086973381670731246101533725001027759080657103764668505112174873471847919263929872728926507816622006218328297013246724540416729301911472082814491334494728113928141053896659153770147460545323137074905995715635595326953698191304642226486681549379283351159543764469992347456789375580722963760170208081254303625608192545312510008772643448906235814356628816779036530424692239505515955121610936616145170350514644515834936765697212761388987238093200084979688662819913420343251741673908086435247634379778854849624706167423348488357095798621045044556096463129135296567325892125073917174346340714956921968349262623482782748173990621229513334679083949720008998394032525633955395020175606356882950625728822673731042120490909256233996010480703974233474927894636749963101922451252397975678201243256162005431219302875102734113901551084790812766872523870922551390024765738554421522823230101447771451610517863388120568145100280236695339070093296703858338596893282529459372848853357809342496215598181019282737257503212637372868035322810069935649374527701269425384758312476123185357835605802775806524372492269504011687057218936799435369237313817172252934072571089145839044963509527742604407297696609227448488370272737854747802964638328216535346173100239300531446078581817243925020768063537131912648631364680067987385631192162773240775435157921640572833039639017580718386187404878018226194827450176369635116533140234381726531602343946958471035932043592340083927301854638343920313621426671426158297990207056726680551871670181830242247402050177581263846581806571570036964590139911487300213749371557762130061949912703652986577401496917922813673007461659141662426464943877800119962521436135466044047697408940451803470121079360611746833858685301914069365304264893496094441467001810390480726382539749941962389327793443110631822239701395853510149864029107230112812051494883944882008659920881519035023562405588892327413673162573558861065193519862543317703673492152514796604490073123496125877430714066824785434428703782826256055814736844887715983078710852095940586057345636758894384351503823196554033896562607708336345183103123749418241335134351067231598954746429100437396699225831324258566222432170745787567143747730217232858675872216956781357454059690718763187062584099665669594260238524459153731412543566018836636351850787833996448202887775313102129666257329404917370949738585282115258846454374843284018820267570216937980807933078195018515179366614177421031547313044594350770697326781863492536418042510423503804322840502142935082447838174272719840954857598032305808898534940166222084313262410086538422009806996819186048603310694715946448348820307097992440085778325641645522001994892213732346666562649000016742884881691063095886046748923275250988411808754595891982584069975194741370363929599702329290554045832981105485178894543832085131309091612620738787687715412344139744081116781455442681723877283002593898517229447850438104459365645357107563947636619819230630255230562136161543480561146134302622306896626573476907667955171683125502976159959880750588122347476373477697306986500208709302151251379331307996649000610624799393986289297767657921972943954632798242706073507601338639648410103004186990435180538834018006144901992423647293003330274704892408799964540208483227050901690800160939482776208955370793746011759121197468956509832800305693503191580541513044019253666766020857697386894639329250314622303185755071827864493529999752697549859156939245281999110213615898805292988308979935561293890452120330916381476501228037772279546528073901399411642540426188325005128923911971942548446800182721937432367076687905954611171565059631172601373247060872750096118760996252686658827064489552697029249535535209514249466190218207735867255927921492956070632374495431649865714778291097983588502274464324124129973802462567377043086634458761591103494686095934915305216339554978061563276595794104330608471138323068029895952841889593373136550942134470258842065075737643135103756751685332485804000627150138984747941566118695247957878033644093778963437284360752966875624336837243333398069199203307191136958109623442963278540688113783103164821041852823881702033180196087980356215279633864038896633698776865781306013682864332365487686930399775215977301578888931793374472202949760370162996494117164644540977222157975255001529283478744492481927239377617124096633974884638410530564572435003104762070316208571663710377985174785027412979736568030142756498848311659130768999635330890710980650335453517339687701448254136586416270832201228470973933512939285372215822291701333893154978321048869301580498908316793591191178383234357320439151524757852269060046812821434313300641471535032996572719743827599069628406710468985579735367863442639657055710483788514005081318723458617723128240771061869593380001735329742335069046252754179507383582010828057345120921777527505304049431303962451798997220126302376129178299033431893766080059529340983611356403152063081331315824807905214107986042103256914232327089799709779176307662559272569786193552343003026047013340959020161517975257249972815533758004777072080140950029231194371169992443745436039399825477708689934213296277906664630809065305130618110987683605260626851061436263533354165844131053165200493671325921644796587395067077051286006712219411782154932313236810317797032176204295037423510055783679239698781825180147956388064183209405752358850781061793641724516112769227167577227914693571214364889872122919121845518224743287307728393121975755095250126838440281773119339779203509585857143701422992936436075278098689520666255889827075315130613548293338163219940124488746833145751835491467492484698577110557261294932546305799244434592257537280519727749968214636295015720110788840004469790076838126313751817185273717567824355937532200360868110022231598552601271248459315865859702656134315860883559076246117811446255944452746521568231019136839871890274160414928617684575654000774180350778584446609619640965911974521371773770360533873231403100496333066625650658313043128539887954362701636999433915622094808836889958548837418967692442688884958474759114001793314723791598876480328101881734267239913906455626994819262728249104309399091488990297509749267486206816687797989036450479903854408587736388682415940924681188338524495350953607134588247647216982757519418967184978247554502859275061060307372267255664822667649784375564667300627629906305299660696810744840515728433994849813881496525677831548971808836504854246144489214294405212729269480810135461177553267684115311520508077014720841479688301308870744016911075810415278358704114831522180846951512242025499186527757712983372092899192085031280728217390405670264729439699425802467540920288939073044265254939732007300507452240374725261919003588821860563900334506653379123060495447860085709927421911572011258359261999113045554814993678718068003588286900101962244983625534843328365896203685274807368744822567572801530168042934873124056193916349433311042418709367671330526430748716398408679897996339798341485866631642599078452590346136666581397079665652896318384413049711228238681272189845630822063059858457685208366554018417908432334610718030283160966324345504613641512704069737997557084290161127044439791454224531065246947641604489265962181473757229662620129068166101582912809875148085004594539677323172390123671651121186702087907048152861291782034353652004073093713999709392558459784772254892516755826299484392512066280953969638711901534051263397950343164316928177691606286840089739661303192251149228130741662734718574191268185969288289578863593363435171071547349130296884121456175049322791448974390244545141108792651653569293509287529727038176089935739003052900808960196583031461038998939640961398204690885997927657167151941729049294168894408864732643671343776438195055181824781516623818047026486196445673474359397023446223834103460296432514573735611426570117789339939105807743651683088960029297966729099745981286103685713633501182621766646442107251115264755219622607423650150567090954158138835989235901404192157718770277498973708003301851156106199777174263715856749958899988629327282777795291489939690741238672820872112187147099172869152581793107985828231419076569669444484532667800241188350621799558872346789632751805667456196754587917988328410393465985886414151817884147924133478977695490144874559293914561833449219793772533113546166579098718427592390606684755177648367325641168099190472211541715543084453239524005985776292966504843522589879785823077223502802122849077287859174319797412601236953553675699485197220950048410670471725023451108534824410959327565087760046563803518114916271240774079839372987245425087991972794775613228633481711667918746387261482580839194874300090264784258844921568300060700652017392011239996673574304385854352250788548679915319692805370314820825016462963705213469425448112043884706145711488198525211239215554160807698720080258756405643245508699735775849562718652288905746339101359319112377952470979192557420800417277165085440106594060722980512735173487152686101781689693101991313467959276521296648578152143121843972161916552067577760759712582870514011435182293073555533646365195007854655140781002547254089999165268906751989066558687815781689684470826788167845553776020475839357817871277793332791498392629025458255875725561334409886604657878407820779458731500050721815178443029019752269218615034561781440404183279180754766611688476398628993906818285481001229700340621316175477163218632697509416575230276842530434994620963844435584927796889789115959575647998520578136999997982768049644617346362095055053607629519112012702025211584864296779587339784211741047107652731890497214457153314574496432943239528894238942762789878496084458009676936618712307573906813599189951460032076615063975412120354710398488429681254483175904982293848847062149564845950227527500932302292126394229225062037446855673512675222741524102527967626028634696453277495095685887209050958398463513601482455811519073438358654414714771151057532125816654117720257063445576671974504655292948402883264231741674871118445733231804773781144327434363177210873340144317403384373364191313062685586669054195766290359308226716190299508505247173663942083060468528251126884121875800622341661654499383222467443942176840162186572527547360592850833834268891739279496727695615063192175494554072798793538125472766351158805430344648201557311991295264846153313358016906604048311983346469096961661183983743442239479520670244919485171534410024012075774765978650735819308523754190974951792209819842651469601832115425704350652321079813862377269927941170588996582426639029503428558485906222079438396434986522122804890425328243179706625520670392061315764276488280534991319652345621581836001096298844401425077437658467518269148557334442332530079618131639525593488444416618397249438872798169772182010537403848910448271023135255072171541692720836157216912961716913019827183356713587693769802061675910681279324919792743189841711931159186165970027141406231151255127629369675694257188660778626015327705613469399906824106803916860492947521891371864920437900794309890569080711569535591930439962006786237500235807774496626679067118587223468098246020775172956014971420025985227341736661833650273426559714380088099531049408615238017974718813973622711783699935237377489472599871890122664490383382459151937060374510223225397843473245583658247902666861166158973850325659617334642945518352010117722914493212289944309326404730523012000588491983727829310632899308696334149288771616758231731517325638835024830209640866070712826953199682227669495854031071492629620209164985341496059012695370476046367809142014660667893464482293697903963052880858476039546212703063008577420251296093686860027896295722092986730855734350628867174987403653555197405083234807471996834182853209809521072016559950776243669379883772158115488634317272522395385318984589160311707690435238354133046122478671763664370450712128011345297909517200331969249160815062769111195384709019349515084282249733283839983882988296721126295556552656196888148190569930240428528726652770107732670945908783215000575049448120347493207601717714629664357339311845995709026108101988920958278170798678176350966058354036200632439966198275595131289003497794031789044308561297448219917582751994861017669844499538955159015074014289857428444146976998919736901876568745042415612375544962705596301986524748105470878247894366600215912418662282419615999920299147197905940169070499458638941945171457062859853947516281177016948280851486708634657202335331975042499317049992205614082317080736973238080958667361889592496147629315969863458674449138502775591310351327890309904290095637143523810386107358820362192215321609865224544367183580024306132213390580336676074012170037381555446659168416648580074771238442834760300885390564179039394957656255297610110244928585178189465122150867117331943811965445291525296921492883836044356758896148958026799883766892255573502849313216717372191105792769599209951127097755342043424775056394663642650089822289051119905808310683151094153694472197562769089884689573150022231703840800397584889650304363916695718152517684290034961585703570786643837395861477785769924558833147986733187433409359218759238710893350823293530692811649457074935134306919305479545483854116377603739967861816194347770506633856186118780788491075610553042310957872381105621068203354572614700388972809154005227110657716606794625503587774965223004916997492338636346836761395612236392189826776749950049583936288048854462999306092497437677110829390811686344832980682691610970099771340366114291996402783444429717416720859149792828363911313465848334796916777234096628921694709731655190852083118260420047221561796311822056922895574903373748403255754307101118372670075363436847187060519891290424823085665566514542620127060613374190178698355349195115550286382027108101387395202538198899230852639576617649730886563681189267708988409616488103957015069010947067584576616387483669437003261877927298953050411630722931764567217200720618711134148356046442869153831666883926988497219993751238777655835431910585396249042507516851042032956455715060166546209931607080889792491480295170111103825541119828349255932730967588115683181893032945483229604662201788152115722460254369622778604779212994709171081261119043831086031152456671939841958978774040148380548509364714286656967105104723254119674786277875892232153013928077600192249639925341614793918128200436403942306359995403221352942580430822229701695906556855674298612412014786215671849174063403326983322504240410579411515922042152660335250090611171265803481806559612975695553194250881458752867253357367695025301939907551826932631689465875547682731288541773210247358603780094663453737155901276609101866585170676064980637476905176670764653264256857941008334106390050287926807103008391698897487763594294843904769670055078001989959418781962877555551288030048594503157025919607610836259704850806725799031002856344594057659066773721508546257445024069795327012487622834489301371328863353893653674585001726494410249697996250043299736617450506907880872787441747168372081520878174031636065031884024020564690500409177538584176745880043974675015949985118593422159965330007116378505884405226257831779549751778906964545408579893574117560744088020277829279079487793784420151263151234598611968273281006003074847255573372470681604702626834645797258415570228718294033689677799097042061303401992412583517148913191700641248170603842428451863694307292069614821200788602249173604465688598481436233871071012134363812283922575345448194056197720629067530764273184524877129893075316948476672444642248946400737742704659060046279288687886156071532786234952480317660651708824266711795928612975466321501061943200873710777734644115748818534120667540903637661849091785227324039044787489630259441538323269591427045559650898836145486203193139746120966242884669866143759240658879041759503256254977307626339424284004442050917891800468422869336917742519206815100223450425965725930632378692142580948436825265859188068585708775755006181262829484488142899963335887291946879036590552253478167326626655080117718441811381996526860229867893024597953500248908281412232212381958486404300267003466460252158132134881722516529111742232253165216793616667907675228407515957103730398919252042090929525254514488278929745727916039992723713877736713092352987859418688690163917780912557930713923950085125213037144168007986731236592794923557130355987978301740892697847812562634802279501837884465454038836751160313472585280448740117527883892746566510855698860630211352609614669637337236605499207874079415177730555983643118342853275592528435145946357728567091196232849904179683927177443448765304671927513106427699850565007567100645616711016803431596520112238402289050027483059635193348864225261670154369803726563306352134657781385936184929726568274422541324900617659659118984348237284803068782424493797309603161471499882190058561850327631260463616563902680796548144667376888579120779324427558486651234124288136388412369790696151330556500144993695445219909321697904564964025408087759842530671163542070517593764612665804190541052398666787186411156892027674042063571756474939945528072262561605214023034463508200078253077475261248081096653531063191824462625825340871223762617524177723817533173142719329681942799961807539816914715546644218068764205467332476747550300226061864147933818598822103458811297295323073523955195394035124723094127653499671830613857242987194645445427709645135434208902643074872943356054071159486032744356592588613336255952037060969858549927117243378388423424140098910366752273507193773345292313576329688512372050017941151467730794651751606571186873535020256527225922621515913588238304129801353622922701210712998156327031373911733989987716465572709623809766834438687130158159153796281740854812128726230126563409995679165584934440048004375919255379916886800016404988955646967864073924447070925616009780337216731623222045059229316620770462210068475268734239081548315311384066759197513569445597985998515155301681452036606582443688836568070310717438444363439389668313579383760192791166569125748571930122546822603984204267187535853439320499393322597265539131361942953832649908681404099227567962742442032541313740917749236778843819259414866831156350334669535214978020927316009486753554843042563603099030381065509537255107072945079400656654543974640676327792437753896927499007094084810343384413892393648793880977049281881005358403496273103030264545148993238193074117998746977995236153942779398916300247363141628413428731406137261551203544070690299994276338362205102407368578741248269547975307277234224144966293668061387743454613389505567477911521836002875525988179761519930854038020741809170527962736808917540617661529468573081711246807279341592817436171731030978484470169179909739657008680083452483474639143745080641034252527393448676177733793908066904184742923120377909445532396577307716401077711531747091131086015334035158616123302026112446601204618262245775931836215592978695177578149228228379423913450784902739708429899787057410467401073818735177924761327858683897556950696923927845297999773619410111521882748234601318912661948357124354586216993026500313046090830524768234557013868668180423434218087200952077509559501972119042116315850796739909058469466738263937141863740191655457505953188130523617444317587798716011998261621204415845738656420070892798133197079065285766647090657164941337535579639852516117894348456886891354249504182681141341792567947756744844062500024890055109473174040274691076281352325850242079573654427740389218809229852282060593245421676814278051506579178091708105160019706886559111476228719408966819596640012162966679956477333331977463325412375728343808119241299608830026844700313174549783732696907341366724379462384733916154737912453477191920738559008263685531731972705380586305141867938902550305990132418081863128928327475354922342216519891189108925650784040004004129219445513857828698485316345525924964875247401743287431620291705597879500055984309046045709213742527937392140192504875076265759252989663167841312737529674069448338286329406376493698108349110251615761974814853888185905820336465630416638361999623557399652960808225085474306433386763920251462786404133634557664843582509296643941106889813562518865036087804723243623148235942778956292994887453651868471219300522978048454910541379546383239245330917147057958806806720032419865215039433393353224876463431959558075777824974193235142106250134681104446148673195045981936754111364170350355015461168557636231538852316357261918150093950375755337412081569449779334560947869776839815775708377721838685541622592833915536622016302361706787844800638300038979009352057785062561962641348541985061809669973979419969061288127978160208205431622452728303911543718231792243284208019880467332196609726715741296198706871682863133854936898713077469661895646898181190760077506731150945057724113129776524327185928832982900223254685508873811417697909448992938096257006105557347802533343163758565859438563689790865095209658093523274519913912028985489823554059475502173610086026759222875183852385266986783787709817558559279372159631420418646371493539309432111082473798597871816921085333634082296509305900602285507513149236910969194633837164074661569929586781453786085416253533456095853904822766818099009496087809919075973759019374747039751446511653506800140659233434148849996572791307421073032087311073955917718306055141824935781046420229324219542647135187434644555983022851477977392555902817195175593300456879979855320463581707874417455259273127039080578632781755606718732145791462653110432530204419012264202590355862543483124779675814265681685264610263140457222377996877875963748878723038728427603478946664720318568166174036814696138871582195594242331080042296149699952160557886101088705475527494302083933816454713329716172086706204527498698891714669080320612545763496007578737092738776668427112388247549957735285337611550274520795588306783171905462604077302111625042785311659640261375899382396394476443151059311978987925697351826984821802745695709322438163976814614475782137166965077581329123347698756963566341364905068897902381517257845310363173644471678439003773342294915589339510029540746927032002300595713885773920811091806326755637279086330627240894564793383812810456675884063672817310903056070073393219981141891785319288482543692275965066152545978817108872528194004701667558401999057020722288855363976799657724485099018947097246120327484852871403611248730803009098327344072886995693266678125695678534128201724783864183156899073142684495774251947128653312746628052462357632130976136623981454272855162455266826966981814891277836390236327081362376657905975856350263468875115994827218661164628183773795484478261476175880284093262069868380089630690811371904818847360705146831988702002384355523431659142642762064727166943206055759471083370547530896433289773176709451947664691016057573878418890592008624513518306214993055475743240264400126134466378638462594369766927307227138092762317402754324874336612699470981381301854712030583045917757426058574967851573947784019055593704835490001591695115719845419177361375174376768008965928709210052738489449740022685970346299314619622868818282957970360938155365771314600558924062974547110725546990452333039592838713602914417141726062583862511022484572273424635454471219303820756908532467097404089408623642750508190986957679596486075224626365365674361190875408644193054478665158925275316955144392190364021793054239302799499336849691145976681768963283901999318821549530638978131434827046086071259227831577031327545909538934884418165785900780049501472444042393716640073610390930684086124548991132091400399904122958596686983002646672057353877826260261358086518056020196204342166423380060012755748902574864043432002740911341147608788566029182748014205255977886695928260763161811445024756192610910846209389012890037578084188900720648535122076226870337239917596477448313398044976614782354425942109064696410444392474186910557162030598014470778303139028893706735601462477242060972701575256455088654847765360517482591739071587998432526646350945319449320208357140068887193666856612281081089175834004757961846335917733003981844793387310306540142800921661885393678189383542498394871106192583966932888953047208944708139463388839641205074655784781232183604293795775313478802001648578092716565325060217426417568570101460673219575946643457667185028789574960312294739297435456568371764527080029183853181785565450880839998294569335793554003847136415748006732955039145570028535519170247443708855610385550301757719923309329514286606149246281397450264876387554125616968909488759495988499465060713947027365685509153193085678935076150602403616831027742948419653176958233822603258979769975848164624202292878573418440526654073474472121997104039204573205616581936578335797059148581336380498659779815092407371324937905635186174375529147545566808032242034166757328820447009242882067174259953140186090425755081889521093849537639878732815731064451884691292441636170540512622229023737158821211972116357792830293959037084788098489185010433254104223447153499680534474858663127481923434821633463538246626083310376432387955697487039494345694213352513052899809352942978141563131002086226960414543556213601441065621163954226461619857576560460924196558501698750655131308221373562274829184896673654869970234674157150001736205818837627065730914965591772172019283248989533153659201261542949631489306065731991558360184476861663689446196828383673441175284669426572210171662249606098944087245217265930907854669319751324196499163668662044851468891218728516189741523883987211229525892962323967216963574762836507960211217293898396602641277762292413316815485266416308220234030528883758525497436916646580467237179736950174193846668794735766737946825394315811756084202442603705695820981361683469100973159252453412318251649765196562427404502408323063235960274940290615546546141196047432503230491571503477184003939905836453916149716816694612978313236169697835569860789134274651930243069185324245795600546764953402113685640265500629771202374074752459753297194960755925073632647593077465057396863414827685256109202142002572505199204228107934583134454847774023647373724624402419246768296453860282005552982855533055571441876130512228249060493755503585791952308830968759227011371669931561678243289073255183812370763879106849320208976277095932030356197820409196481305740309825453061347598600041658172028512636391721789362430344129162517023381577593853813307553046737411615593970916535952367889922622460120492756974278768530709724718091707742438819396374463681886428576627869500810749840307110809128921865838899423962854771693061279854910868973203739470206531878105083258480198594073199734900378259739108776141648612908326281345142337200248566454443618008163512133473101262720841615873476791586729670016797217418703929455434792960555022342070646385501106526316413656932042143297689296064063896381173893130868575472333298427586166376364084041612331552889237787108167625346833637960687151010733327732631518569368290102042699765781284780146116186287110955489517609131204415319746950488107583887447798291610774477964924218778140349875674618507983763179990504272896980469162044900966639373416108660838801685162050102599008107252591621949111861925176173644304997772455932674513615923023874602920961352558538396897717980764269654305385278579759731403149542080008971658554399702912399468935718397265554679953420684286003652645844721780982319753325335355010648385969932753902005012580423174194897778058364802236994000413323439257142280215631081353726098702692821269591092854876995686814210360115954788600248072671566589900640553308760972866171225197471749096772475507483567632755642826082302801195717015903672532947742385208211752768406253583555326851354974710339940114370779702501668184753410267160226218159073109656503776486161542794274323185009235158064437304798625735702924365366338079761447402766679275581596183300773566636679969651904862320511149927471482735781646842891408445373856776286862952167337905102230678233249650957898879360223265830709263266590467324771714868917579253100470266733621119402913886342499666031827987274234288515424458387926105928088230814659737038836962163837133395051461319811228626007600516209437755831770751833578084820420581452489367890125349019990779644109241898372859358057926858672753327684361541290836665379560018885002607635404143280301615368303970766667595363928044819391642308905146567705057614652898467622027802622010153257036029689644360938357776813695775634245305249715845718207080463574071265110840201302977509820173863982942174707912134079817219611919681712921145872965451433556352178078197077457228789967821310306757378195367615678367136583804773096724387987526755128991445628042204008822219599473683197940068323638909448540901862486484871612174908897184869640620321516492235609139222218597152784896405827688838849432712390349010810376622381888723150838336157240984606214936097100060754333542870525144381907152766052492801434802152292710694302999272958318723551305118227995227656176928257620479194146787606271016026927694996609731280362573982172881726217215184024163345626184675687411740391066497091834569917669758928340578860079890955386063365501250514159306517360956596256124658211501992169929680383954081274685857366689220140047985358773781039831206263880410017162534446376221604430761563942672880097716744360680894966681152784969703011940708748068373194387887483914072642064494898697501976040512647439312070648657089637708747500622192086904130631322787492507813829035500435036636076194371137622577305906751259569523395238118581863601880944592397463361219005425063997895978047394865467933797893281087620262018650028329249112152157119476242542921602526263655826446266067965229049212276677017830488192012749798903820216436067369442738672649513684733553443362429330708377779875749559911596745386776673685666768840723053986696481326954482930787795749751606643837914590741145207974828428674655719270784964839257398915515599682980658580224706627943429187226327243515478205298295657384872441539012709788888119981482411785456040542518209275655603828265955739409078274655986084526569837739938870766832078758364751794295044179020952770624291470684208129464793640904724336545116763039170000983983479551102413286704613287870503369658878959035748240890328029922359672548611739856320583313385807626506448854268823557634704360370399593125470959460702125579202385851362258571329310621854240532806980905830316851473625587672331817875341982577253660774417494279532787579853593417996639609309327835274569885306810593369867347258997246799520652308859300810307828716782670947323834502476727781928342053623239590162392994666654956452923473359242938309378959685495104922338479805502320178869024488364320136417820034929008311287918652362159461284734071053555599717515750127424253512939365037344930524502199916343316279369009372184299153720710860221678009342526386025288229895871436392792985380722081333427043434919125713433362722344256790422223302818224648018768647097995957599220423179364689103631815294007665175742498763606432078388967736202636294534801370020584584194104861618365160222200585672938380689396408142691218816973159969190822149601341580540575693421925024988160845724251108003484852211159949851798268292013146868412914139680162018340271479925768270229188528708617985431837079364660433730444624670832616315357586898309390057530345842043936734284578257328944016005332832471144588699257583393498984108016231033658725160355202222816970571161577509389726840172191728282984771597011404176927259247335771926871000592102584548757047071283876864253719894271781969373569257584181202085618539361365617111734611404451176729105921552967135644380042471135231677196490549203412901664135291638252449178538260860252738163901453467478610456636747833703053327133388584116442560155158788497525485936216431768866057047852743336998588323471982233362561466577356904279923652226352686278570573289717497059425705965387027879428978497681214794783864517936404725972943188327464767086842850557591212595553495476702380645119949401590442035111947900524034308084522630901730229624011474613399599150710136253747309711687039664008960322586573657092679172718092567530397735682204200746876733569829688490730676710092840948888571729359691824725216852113213559049993422760193585480998064874906725031321695413958007554364668421183794032964192210119999687541919442269003014801582707368714951368742641146119294257252049231699269992695865456597392216124319676615504286393248511287763032883601833472444500156890192252441509951807644925770367760937948967473037203931788535102255896178720410193864137672012279412694834887395950713278776025532107150932212099584273603926434909159571168420519437213018883473327548831479512208465873196366723155783529567964589749223282921731293969962976756523082743972299807018247966293722139923069579114388109436458820772258579646631739293851616410992277471390886597678347576539026286547416050099670373655008148460542194332756692370529376508008886856605445898970734563767456670833409182014761319974148043139860269384316205835605352643844273410467904092780313022995975186264789026793191137535468529200932941668779802740570389697956746649096359247636373536634168818376049817276723873389456411303928525627265829178849126639236491190431010922065307394600343693778992304297996846635697505506654940220688119576519158743189194293398523726095970684613279270524042505488845439820096088858497425191791073454284673030941321197743203007120996681889123983182526192498763408963347327051963918393564982652667933595248737445415194129809296141138711229235559179147554781179217989420007336697656832120535916982820972016082061215009843552100260855037256867760699945751855595271716594104899039848330175153768872424516647530781909305606496397995924601461404207384247527114754931960967801980155715856709928204663615025529365016063245815702639301565974783686280421377711481978651458166515642064677331859866769278960025034164410419155994546656060613596073798197675834089306968068054623095317041300361293302929398267859697418676834829404556328987221002721328029697299989082154812239122160411832991606290975987343078305062984427439702131031873321402441474293991278409003079209069124776118368809986637905832972761440233502446454197930965775422545164111489305979854561282723858922753675474442097076553020720694304527016747061403560945678850886794030099833884318913776693722969827563515616140170601415419019318914204575301461227797165566976086436052488157313420861196153975037221411066833954418829585379610995716754843524493865793007616592281587508441937286344796234388323974715551259030469366516118292183105183023778346576391983485991829342476417253315324190636543531135111088497355475120852460393890949800976106694204181521553558597223497462342452683874701988767057968289095642603016837951721672159683802117884591061786167301891173984643665821245685052736639892181429943535046628877551351376354832248647750106903935311471224116486137435108696474466967669669441932951667852678791704370828683669889277296573469000298018953601004986722316131312856119965429313146567192865738419192005410062016610351449331178822124198228232603170834622939037356064925541867733521480401902058620702119811866480627283003361268082598769142527920864514306024436208904276716685863996200647375034505888889633980046181515343306441957753021897941149169962196553650983417749366538128507762870449284374808648205508923234379762081623050188839167956401747528549937893919621019598423342219911372664135950192624492750214993900562373439492016179956285974961381203389024583026466129412062468914617885317778955120069636771814464952898928169557067859972624463126345725560306022065268060450166707755281713796068113623054785884940143736911493316681945389554923798943945644393753186422052705483635493842658143280244815418907296893739080887976440205316535707035659613360908592819113178564970174091069026341489017546133777055659034263062329690018551420608766670969949825067796795953678131955084626912307604957618726744892500959314118478105162851491232533241490818401198416195205152333159125839848327146114581841218082265649453894095199412253063463736579422413094027257509803424976806145567930312136664881177364157466267660889485212284963649851451262188216910460258476631339539995643438422487483293595306915811020512221823414424376419731808531881508633872441273300783245148844451946511281774940928289716866897214181573183521304535110496105834483243429963810131087276869058837179029145829309367323780970909718639777555441852560213760376336953376290380844024331641706177070606228213026286791279132779851815740685193201327347076345760835381882972870552904968843852149375916041068496680137820138592386945166683958491933490901506004146829417146277870568669681611161227984010390790642959000915041602090307806876657093506606070308593775885220839076145944406595509608127463587741871631568637675719766945094639825921791829207656732199398429643860050842788687518945069837436271743988429652782572127104861111896984879827007410642675012642002148465057112225145729374409016774045615431559774245224147453436009618807288289799233721901342879510628670828184075034989331132909827633606669119414411079782956113620255159482912976270740274948292899496226655071965319183101942545731513765396699564546508480249875050842491928430798748145422122889332721379652311795412265203326362702164807287332389070883201751563451060594530499365599066473789754509279747443057544994216275139327697845664824730084729533425772660649722319319901428568028381069770189806849237088015902560840335059434287094550123422534551039205241580319107795560819204761685576184300262185916860681516602181090107926479675056892295688235661832232946052368819029574967599116557665603683506047859025947314612530457223068455202172707659847591257214858643974139915869526484359916007913197934106011227846097497305089854625680361571925313969549952524520710234369697632384087363604277048398570821664468601946839051394794975171355567589263846298912331724150265190337474025373196998657112000190022150367683934927038907726107444408953386531174315962316536729276056530156505317305846903635400944528593478514461403577026641548653675111829188785238988913990311676609162099376187958846245476379810690659597903178067085604804950920578367360126204488273326473042030989513342275365151438201020589403475899045777394393226811388592811455441749376894354074372531208414669453923815769439976486193862056123656245127974651207815440630667928637573483214457149485517515492557395137084202282339596357135391706115155089971748266638435402981436152681657542816016387293038331867265967569366212652086211224724566164972736484934640192802873962528993003809888142672795154459869722972406992897444401654293503534689678480431096167685813253925700644936053741342670045559598469149276868545594378658374854837355128578583030467484696024990503503349942096674238752469806306999653009832676906689395903582425251135304642254280593045324015606972089391111747134493653456957906661154337315054421496247712828378369141438107543335016494592655025691723591801730829436239862655409712101523687612119707653673702437112185897405312415138416024807418095210876829929668309540515344142364783123084224179158855826739767344318513051427463512705301976619052465491853930696392594100636219021100168930721543503886697710149323462042147941328737366506302341306075042919162919011660537781153839402448886025186699023740842200364044942503249474800137343772918364491524989597837659278480810361599453648662673935778840645853231111718674376131022762995768529164345439003579759854890135255440653410669083322436842471050986470707558920395113191573090184010254765547186082977874330817683513596072311079883089269176735316966816648802941118512058741371138685252117523982349427675177770405173621023615605017050339423936265469014440301419460185415098163429950364572195744549539541738651963278369241001499269548070290075802873064203797502829179232287742781740242211225809667120767736180512292322343833450278969548266714283019525695225124614881807479699755395604343822180256053393772601429318965414037668310379822731248887288878395322559309494689156392904097019466046279506624063560035141308252754666998912427553586872623260367313787217770601474574169394401946113614991039657525440249228912835472511221044608294531720460142340270436505221305837385495125635223985583421379022900150881372687748405718030287372805749074254382021357633610272477553265803539417776310239714207682615535063773818444427080217356781467948082826851054502123432564552596333939477096980216532558262712809068054593531536212865197634006335791581370071675004730107705776438248371623793510702769989755983849348967174411959585279646955568145899893746000732474227170296371043797816685617678493880462616321273028497748884016646708788199060958834825831371862314332619105450187068219739110526195158461044617840894069088102859963602985952620537925710529556848984906722123110514518866462260867478298830924948442940677607346022571084470355210865514910642947598367403027247448704141050273646657340067059807813900753420535802416835265038701746216018754842377332305756827548931593015419052611482988425558679817784651322642604134849179675787635848953405254734297670978886702760754342735441920699032405111046005189379889679703032805379712697955329532596429890606688629489269088952926406738453236577708817050114036412292226505078935895801742830784477566732168488812296455105918704514488303991623251037463268834924656952558215349711034189479114617478043306948537731748865416331257393155657638147655386314762465741479022644060555823687329669767234387138971909881485860946771408118826012428174253651356026885145384909459214445889754605785370877263149598959821485319164773500934128238062475263817675910696767707921232326188672906151797453754070607163507697001250434692104926724255609252105745334924434714864958259465370665865651315834298180804437334960233079366939079412169719576680278432443427188813346881413568629887696422207035025386962424585388359748821787734825510433944561419093173012298712044990114111037441227064002330416026330756063162346978884446884002236098747819410571391922802085450464290649331839326718932680568782449139110345486880756978967195042497569567004229050190399363986433290275987885328621391935406699121124730688657475802620574007912048184053838145984804140211228140614175604273839828744015452192987782697927765502512662417820633214690649786194015911917777089161074431022498649640467675897647207532808904980539101613425460175909213913307412567924233045871704080503146752187814738956346510551589791497040803908610858600705521426218175297308163914516948667056093525289869075512489746269871445168946999340227736606200285855834411448197404687437262437970426707047052210619834417215296524684753541969803231855521382273528082774445493287455973391677287646755004950361563599960338441636752315300876338125671820031756657688609515653991663020848279062237160620687552170764210087875448776011786044303044208958137920879054889830653808279375819631338482331213916312883301558680117368684426895071676868176959876393879460392573260110388068010607154601370095397250327276580918250811187441330758914064997946166440128274651175294874757764293103653403415555649474642229359958613488006390604249808629425770201936543878742228427799262090520878931743083885374040658361375333487638959602559305946559923994572307040674893736376786342315916234097832032588170527988269176671216809510143448693816297194539442398453648583685030946964229624565737500883377127323514037584275562366784263592256340602029319651017599314548392290447517902595933777675864717058326603640860311627561144830918757723079844624371844392480389000604141397199192108912183498435863255429701638301653439490116757738549288926687630721669431508972198608065481535944491953166290882493169774113753760918968388869661467410694740468142377125833525007634762044539932014649371979278967526153255863442894881146728761116759019107568620308451341666077050867060965436915188169093580130696835042217703849138272697524946679435202986658807633438026122899332496450361409286844912764242206170903033768336384223703920400650567729346626808370042619245210798791480143066663352002018266335459557617023643245714287194592235392271664775959031013056354254586140759555803463204132837372756894701508913786697815073819683688759548305756048819028429575234885657626231110132827857732321459215891815066068850632443237424715105334625971796687879412160727590096119397033956976149945330733624638262154858993468176871180656424729043036953814044696113651056700039661773310530018755212442001953544138977858698144930784146179186713529079914821679019198985587248254019230883180989946668658046022792482452435698324747375742919656718205792827228990629332790651532794993748405077076397473344268058998918943490043877329258673060069575272726130430486369685299304097084288769616692135819086860979410648606043532076042519328480159878519324034681524968858396240663252944240479904922849305807724512755175243541376429231171306508179250407688741182144675554672789868182376818105792802492206518845552239234126565315697643667472846528428642547635707667461528849060157658179403791518728460861899450637606414234263112100599665086302769326874567744066665366964951943535659432221490941368935101044203880506750443784902770180405786307708952651695523642700751939590440176226349501662784293245499651386302626841073068119795795255680534939607153826714655682293011266987699896298509474863120228927169834372454342407735923063024636493465209558815996391998098116369156383796775046893615038898249240466628399721204148210286242493012623918422597262362880763308823164979350310354296570871299308489061657881337927812356808348148656632991306728800143857578553129651173096759772703048671411087574239326501145842630590273836602564755291001235200561482359893958104753982245104832687554435174853097495995812520144603441105809411386308089434806398255645785512200661014489109492426952850480258017001233504382574529648825855571958608495883855590507934224837784748712268473876273610366716040599944062477006134729134029546264427284761367314810183165232858637800298683381804060273159098345984549581628583431549882666949506866132383791466199192058242022908566716425959785918856431237478733655876034569892527926703557783452829868710367504005933083427867940649440010889560658140471111661270436134322638051418967313917578334790145771063988258599898283329871921505655656266551112176545386337271882118799992174993562720517648116289986166815320152760830445004857956408599211282811086155558723430685321023135144533000787469832769520301833271932792355757722708287846233267121987036478476692191906435771239724595967111731747112135365748935384202979042796157054141147780509830471485149313506792289783916634113378697317805520338388285266170100489438019257712827216706193805716037873350329912478755980133010473173841364171562357518329786847517634117470115817181942525109724647498384850310204600146841950006753250692058888114013924463125942926448408961994337098553658541610583524905254808694717181956328958158631549383838467088841643821368915976878700589594982422149540140974472327317666046723397038952523810142194029743692712785595643903948797997659684294719990304120995928789893448683992250564847116071854150824414462617766921056538940229747460823774166617033719601433117775796006378471065023052375334217120439154978283407399438249607153369336106236780381919717401130772779699526892051571053823724686749798129573632445887294586349043861072357950249876960319276266542938359675901670199630518551770025030200527999920931363967693680471966536108670031474553242938400438403198557483512400262620711153396745907185724281546978771203460165856992619972444783398259868949637420573088928391174530231257367737142253848504885112637246454408326591267621236605762718289508596314860284578571577076793886509814128540159919343796294173678215337936658109056362337342854854002085632641440133774936775939173053109273355371017526454814873636182317248818299768877190460301377594508123630337844207561496139919973996992865793386987858375416620699340120096203369241788853977142229606740251805589172229581963372065096276612718846672671288083828359482308280276179036653022114174736663446920411635201863468537176335857399618386004885750974783582831624920216947190755930794123561888431093001450695070375255383757734288806498533718308439045337341405639631093133058906414844300514515715199790626718984625599973318059079408480574611429657771658918873625837816052121760961520681493999797629338384279340817831802506289843024870518885172709178059996970942232754631632172355528569046618153633949922425500732200628442616558694926735683347664677223801137939285497763817605438572374515661281061807870998924055754918548362829844679732375961981376900565098331715837848464367694403193947874694331866184268489199282671062607764359717621818667489605333463443956095705432190071887177130490131516205166359519935307716455972052751565807543952024718635154633346305841665321398151625647091653253300124447821748185623421549331520748571664397013844165503552679735196305083619476483667757244029689079771548303389025705523206081586792843198685971115965721949522398405269877635489259976454245587583130154368802662428780266959827126136099887978992115280340840016720637234504922447346966034206920906736504503128563696719335506693200370486427710844642915513719213339513936479806042066950196998907687767090496881167458502775124652674142074034220757802103462113940736744038902659380693137051905726906988135202908961499346550925520874071148515040739430990736935160778056067623824013886484518397527497836267730672736581917038119031191473088454578266503215828833707453467195455249273351744796024896227083753643925399738427641451893725007692297671210991497928619209347944359059567935651362655288312405257009120095258370663149023778246833204861777967071387924864281011765775051419893536204396973418068782590074460930916478534522627466973674947260640417149575303229223751368713990386951752513797654152247102233711658389126073112796925793192739534924180505276908647900800431201681559386477985579640971117830958099013657642130588790643455546382049055714973137346862334287880955157774633920384422548009921689539080295111138046783986881692573253242783648724477403536458447255649643618661987503124000086863343666615249987883715744961893535743815786694352701219813609954760937607322515766158133233206683219990013547898585471894056944091153918459216457426528078725598992750230440860093185693018997995836511349325154826753551239082239408204698458250922281921882602557489302967260868243128005588251933811437247186573747781718394728034629113390773753242251455622069165411614017429764289155986685049221081421887095642612356553497235246438885725460987418129782020863111184447782553250595211537812984636631870962575028882687307208890384834918682533156560801241006210454355369152412271721506417113590151495442029997731268706122032721918054010136274000018508122987974960491125867823723633843027928669685386430729365197596651632175924883564961472098565859046548867123391025742648442184462488214827105134077128993929700851470604125364597778831567281679747379346862445375358269548866066900219711964928217489489488576095077505119298404733887474236299655871503777649971537421454545800688572634745667811266996671699177453614499161543317758019111112885557287372475186826957346831012754120216198185203582079028547160442945314518139056934740491673610321479356996168297007866193708780137290961545526857892379661202892289604645964628697592242620438817936648771583679210695301803618568358569780556377485414660591767051357650119687559208723769867192471062139840665181878299697173403114530248186920475161803374168321107856741295992765667052634936579962809295844569250732678229516050603421146076056203335641758010036650508037177602750445879357959846145006334022196693887303836429532012786976172248261268265354363813921529995139713047367093719575990447898671228605157947628327997158410066467136423066501288842946114284291045861889878143591089886701830052501986036541037736866533221410921295806946438159239487134183088449237973066492430981325920142942305475052026877416953246583203776899843535478092389690594371642426331436859647517493308404584194560528736235644648230583554887128703495224286888654736935184005691128676508150915403969789703251195095450610096456927007421963471678570686890012743224963651660171354936831275661323333386355527844897871896673953195231869949218314612306255451304643443950939303530231980699448623702083806216405662533996091317923205573556442639060556636992898398081262250881113474242627354492288393239739074203283580516845442016875412694452150020137546233749645097967469752368695089225000455472238759456720312398980503918944224816105335819185068746075820006532710940857813184776407627930644170911229905079931762367612189897835872955216653788589308793414866238148392927685217607123130338829262668044064092836984047265729067506133743072043418376089730911518875288900275524810344353996846592903277022897943004062412964548795010820087237333462851305567983355172029255536465520310087288944159491870553413493145028046770390515370194867277942740386691158048307090753696971769315268617359939227285272316825306953046446201880730709349899744616082794545218219525581701281466529997402007156703783969245643875193214731958987903197881874178421567267944685517720724552109827765896590525336692279962555018595927767685702724882740095836141569375380905854183026972436066205521534198090619167235574194383123559682999834198437975469781083975782118312743260283898523509135070001109961437270642246613481057460746865430962118835174261562253772001366256500649359166147405329028840925716849577575730597600352219186984969524324856740388801863369612813243013052102064128451900188689298751006293271950159716522307634579469892927149748648231645980075968939702224116953774762127328019383546911886041997703089122065600847275728122103201611777942855395687365829437501542388265245987276977321188978698513274601278746443473581020608071965653215675959283111668347530590715251130601367708074067863242714479733570952679956056230316850977374325372779041750335654972644296706212295645306208691060746782643228199758145978438595502256965192620307154550447733455372213156169997238334360719044554800728718221837455768915122331393064329962826243968147728941939908444969498163995667184246849806749556628846127682546478602859470827838901521829757835434881399997957513948363389193556080452161716950196075256069290426918240601340644056540995161576242987511949944163806485813970317768950711976864181896949974507310700028565458021293469657214921117049198578852045446071883976335784687510512137514182862123566027285060352242222677309486799019983221821715742785068515810712135098670403766880956997009630799702594002528473345368590322256138902118862727505242449271745187841941403958841805841600685962442312381256387325530516735213343778334793757246019298942779133395096417126991754449866963446699818305443902506556144301283346977987556616904762122678137157177349796961957704584674221295976696751196303799925482666064351969013382856651077947710268010137680066684889150965631469682753790340944589881197977111380551874095823461112964917222633884564687828266155564979035165143353707608011224184656777469458290171425883618388871638585199180994276534632016689536772478834325804868204295175490164598685685796569155391922812778784598992972909002467102827626107876568367002150851914637047603933234548628543125229248402822089566624952284294667231843984664485242241943331603943716321295707576720014008595647303505344519214771648515649716758229965425536383869151585972624464871276497566830503692132256259825679209340338267822055364740642177570593125263635858031634373571139724381918031276536707321610473891404991013976976708512366320346830565757940456936734459110595922035840354996861261676831859597727699273414246959889035427482744913356141314074468361444380852344529335886650226315416812863607206999944509138215967377586102097915808235397989840929074718460389015154680803725112853047569413918380554466333188514383253838468851934531309512249477385765500584476305709033707574421721873575251875705650386992913216563055000814063429395692638655391844923607683438651610647502147298255411634853716607936214623297547595124848081978522911664100835094163713553979290068253279000183028339562980777399979835572276916118167483552270507371901006879328366034834691426121159074639455739669929875266848384993331411188968553745900666954921229907051014727320014942310899711426029651058969469968462906816369504364182547218067006839424760892315521261751392851080019524146691029337818449288551314950585601342886119548329735765559785957570968851910716586195160805250474005130921720760454472890356685638558048483162969641070855031392914685704293209396783654292578663910459433303016801321582718907022271204926080170508926205865410342037087424639626476324844738094387381290275009777025577850791843380865655501980844914878800781950869736443090551884043526302442090785515556569920105450595341319358103591896534049338439686890927116939618785256793272990971364705248134419595462316826809581644753089453907088413951528147795148910203644846340960364769348273784870505274684278303918019526504489092197063397930722792250353068522271462583713765585268690148897482379380648525222659429248021394955801666152337395705275302677405388217890621930709392921599793044257984948638356828609503156543014989704658004153783716935475820958198431926978818003042471903770301372489841301463118190941780369432197889728334184848775513718544860738715504502304832703766696034880884288803779548792880939996144475410356164407819242284467344556739717978918492768385632993767757684300648201872641489236999259299740739433865649111166925239039624701306282985250954724435672436653249663110622163374874176228041690475502396376447278652960422130149384735510318815590910295295682916902274539278449721441868019990859538964414810410747206830445043243948821535565301337954130725360699429037009671456947460081898177357900326186005661358321674688636234060559881543240051365877804794721800678900351110964191922166345229193309118313409789245411837931933628208322344512159405104042385632477637398017635201163755342207196451584855808219441989519755460214929528691773567537741987885879820532014841922515363180809590547325051225600474844054400581190048877888710332134904698343630586294689303929645269946534490819454866942405281307679906424679523597112913867393485068290251845329097637909675494403451376888008320728944535741664889593903299413053866495680958138734734874409997083662831870023619106805511291745966196933544407834348857209464721648036452670848579593739199476736802224065816137397516509097275393018328622770017281556143668686314396683881686714650119752856262302252372861724319689225530935733996475918780608360557363961602530641981466070855510073783579017578436597176035653676424839124881693929544641786599594993130062654273492976956243603334751735896317742620295554165104964340864389828771957509311675020818648115428603645823405158016805275768125368764529714732305819807886536067249566225116686317178240499121353293596869198525717886719458946228302067169496259133227904655008911965393046806771238359378271451356762573654099037031952237707404531740915607141105265293825976713142534637692489777775461152750005932837332358124567257779098608862097356863726097957936668273951208283845451543773755072354776213048335135691639273833631100629807401898176876433489101147131505259048735932524827869836742376644115275273596725265724690586838355739935015035026601552130360833682431518818712041900584431515588481255438464043756032985009477506127011798925546185629509951693907586352770709870489257995254030773095822659147928028994329270092930600686899527805490134344545855627819515733544953517899477334686788114881438069520506248972312844315775738324197477783079444099695085578676363116178725910190269458438327032537648127698061480326594798925702253952772482442720527567790451522074631023835195944380026020821898885145639006534559925707835789042309472918234246801440375421297262612280376370742677246179125792961131017043094132132881813149932861529068008115416973487639606723244052459638750061766931063399987289574871381058267272228568567028559692808109345133011091262115740855648578451399825406327907792931512429264185052423317368738856521198139157614431843801869694147825473448814088086813308832647079032046979210249252326634339164881773656313727976013743523649987000482679191608895452277566519614403003219278646247102579982469820853250082937025102141787988587475375659575441803270847004931115001015208687180745908008145935803457637374626953308176762817114280320549746243861286857913920413472767218673168652024650419224572684122483938950055600926084596986616447907722247375524221001279203781377792666383809807548957519969457538522726320891232107848108329560559300999887826290933883507418776121472809269835738956589987015146244218542314345968284374584209608437631185252276212215574192942920625277338708565388697189045497649906577431174122018076312949057850936830705445749202790097113495689477436737139620828891521676669738507078372372467655017491899513102065456759268694490052787970316442862534564365999673187609600433792151952241867291343122073707902260437982426443118462128371003119260015059399779415852314219097516852214409633840376369543175335880771798999701758389387229226299265079219813208949489244834065600565580669605667373908260069942327187669241751571764708192103520321588680367329492207529213766150789461822376338512014690412025280163464489663152371940116903756993683590327463640871222001882701807639963965694151095389832400189562701757331723451822353236136679971959393562432185639432429448020422956903251209205556011597930474254281298778371627470267806661506141719299857035631632344818711009443681402665464501688950942506449992997521721717057668918561656735143365372617886643719150091462375621837814582111768600816741481961132523670723226969342297391011685764650656157268314131553732590414690805151960870581592783099487049669471694306442724867632196014670749668634732488100275573793783330085283271898469699219277676882826731056901301047074239074074276604565606224663193159558492079937759170193289132547064693107677402176826958745971895353357011896844069322294514847846678992003490372489161698394107003165410817277941149782324758583535767845309575030228562651011163378085858493742843101480178744834999724981359205607412413139357352661852660921868492348020780386947320343244332460836066134325363338606726444151170824196912317050956606431507936369412038951601062817895710267483247314355589556131752737979703953235670684603847279699511103830438521820003399367485667412478573126650558602240672560291597519107902834869463713093306917958490407396316195559397116214417570052914867377556589813812040941363911632226391354670505754131796510928804643285955698531473359831511862015733627412191256324922892788160721016938218875816622108097592237791829663267986276221825832562456048378717213107993100162834806933897180631243475536301573056354734675555861359251247329452657583535022793886881460551869712492057496716800257857837569829635656922405609681499298075330565218581615379778205441495107797219280727395162298771236224656346066512182481144302763510012127176410438845007119538193958934118004916331682904267580669963415970986471300458261423625859000038654961978215202607125866991538025051039818611233992710583457092916765980031854652596294907509030021809795001620468902425691239017286464894684425977133064111505801820951358406123891721356879048052241664384011298134623759631071612184305702848783491097013497014354296522621117153361703852344081170678679698083640225676595265443052790287179548098745497852254923561970005862767366914174035978896428481117207466645391565303275358808114201238535983730430257170904554915404515170729575461195810098260751260948135965881489165206800343088118274130631262040086820800349864452460072082300415035898355639869431696983920468222293721669526692020862929787542070912384010976443730422684972902982623044675448360888387564841037867393435572956613066867697640232942086740882933846684547566261659045140488052628685567010470467518751514580108098249604017482877953343098262688360315249056952006120748433484724470764930170333776925203645130665265232858726806741488665322103581035065307668830846950244942471580789121612293332451174417410102918661706588289718496261933273780186103497014876116707323594491312750932387142765028215419038369156138000456908173388999387399495047139541671909889959857347965166197275202401646519547431898525269424847247558193243155487258129319231501367783712914651755981389979245455247408907901999766352424423826622155722959502900757003934420042971643526248466939667149177008521751199638466948479722624278422763334393454695711046978685964751536572621499184107120876373021864694852831684335002977022148243521792362370193604434839463583466105320488999632812659502464909711944916257301701956864287277798966905338177114184664459434125435641725407574866000992605969618532044937718079319411158155729612163644943445313075742577837780539686592533628274837663166381638728779687022024290047848474267749713974561823334999398125920636894903325063086260943038834306270856049955997312264706055499351938630724422148718076799800925225475317982279803785184414858842482184254314953128650458743283086008863471083414246825306604012034971271844430418324886069143611630145496849816377395183492856090047889342440466155137210274650053641701284764500743805373288379360633398064247063479993845206934890360995293796586975348009408670951028205041047241067183138060809230552296435103837480480815012897989247031246858066871173153862668509637463879965950511782826378290690973713421688919287745232097363408405773004103320543410135477762347453250353853012192862056063926326259346825402123177115142255159236150860599595698683017114831332738461982331383932835636287385044021324813316568068205590370152775156892846336261701352822048067809765656967029194377156699843257881224182996843143051862961893752230082712734575810117641995213663952603364629828451113475272431424992697697335094003936295727295615960250190795067007535763640560564498469730931644424508683611899958508659039974099790033307066804006549529014626137892446543490470279319413015925381065787772005562653720146454855619738601207702724522146529074276990861206125393559230188788716298554985095656141863342485397551728270224665155959591208555615800703735896595478920423594155647037949681876805158141482862928646266683998323889687189807921985370218657540559075065951976678557683342091532615226712732173572843248845920830862823703465156447847858888365010609796699432231937841530976118964454568797339199352739030371827346637609026673560544607765880751609373555118985226390468397619319990028276468217583412562133198747745925405914434653268177756388989494427450337221771567010374228425264028029491203110827978541443739648803955781883599797573903194864894826304021113807635103802401869697938257828217065766152446455331729651318035743105698990834542984119079869501951507139983853895526528470484902515139974876517995780109422690652367359244872095937030814698356532644401097584181331492905140370100017530242895845557120832877527539053016395048664735813027527899482293119044277468048321894725343756727726625459882578276009295843090892569357125350708537273399605144887933357789978299726748880547326359515720728085019223665843889392626028265126456304580756682036923664006986017531708399911049785290107918077469979712789496315648500789995116072737517045521289828639288158233049267184338512561889851185042814626113261605116052315507803633464040220541567067417579305207225414810583379099351198456276862272082421949262638066337089990573499010354426200085714399635031073629941208384270494619824860286188410301694620200249355351523337836989885578120617497172196833213227614252969462896560621720141554347403319780555406799569141076287679429300066056265550677612641900115826196454983353825124941328355971795510572791995716360833768403439765074475022139664667281141427680644451625388076593496605624339210683631198725475256596062127489640355050364644789004548360747817473832983132446566999630364075535710538145888306357480449166781907217044497665608765917046881212784707507857185123505884859801061815012571227304106756573870397343055566085466895535710726603511348687246445624599416871650317790517918049952765356139981431067306061638321437302448103925464866013265896880083086956771544549899564387433473856630122128243505358142875158431586369702533391735128032192183437366931889368404342288677224051334787912151693896280646400779188904172051095371417663160477943911517284371902636802726783770712490736748437686312417872699687668621360705353878094501356958150704755169950633298042376906672082545456689234571744371456447093037018419985379048740566962268172434658824573751432907411780349046347925172703087257733311797467064673485058498097158866197683657461565636948091614624043105671478504149581059915790273275168954459986609032529133272736605247538652237725141325236882405971659086797153085935899059184675239872217739757929187840795707364262748748158899206091816604930638400476391217834743614911985717473011166290708676150838117048094010952235246246329948695084082879066877428047992293981489729034241895364115383862444997417112261506922965948859635292967034098042014619503978528026361408171012923221307524655101646200736422713709906055732783448800012481615461240674703230794369220393985307461577996967217026659588344864357041228178465462873030387278531890590602866746587808541676205311394827209986835495793598655236409618916677791917227073705487929249184309918290573922003366032362971953043148173976057929503009007900928063106776382586880258502771645904584353722508957873026774640850258750982178230266427787496467760417706699739480500243154296657664596416696490432080284819137296078145850407434083345168612204702729059934001325175632126117298460127244429998613992705584380353825679120074240085483361960988410456560098044861837121811695231810548993324366952536334140641615872392866400775726287490193883549909383298122243619232409237399629568930177586938248334655329005273748725062021544123106314571768113953139892085586644670608823804602708496224769731004728801979553311955281624279542216149135407179608804274333707786525475501893200870560660161387423033523463282592168696009522573083902306497420468885439048154743457253693178074172692056160980660599642954378311041210982458072570163384557792611321122962474808188891226172390100108775533133610882324757110896198320923810587078044680084536905721163392028796691270610494226282384616144503072729399442158773946387771161478560570422907950523857355807315515367004722869020129193896081250097578648907962028849577415150484752570731085312861572377911257283705265877673539092029208445137654593603137515511170117154541418704372816048444242483474768308301262817664550403188423867132692176455113091332926694888707196470117573883643214771091952089490755161536574372059089151835709113834102701721369359955364054867877426935427683046571515228518055846196175129118944637111667843108413283742537967410089490560091579013043967562053303511698589426730568541937791472514517145575212495963187415159085319783038984199684922919776824681947830948147089592624496586711723966372447137322784671344137727216406455291180864390630876148691761711341756887976054314189075326708339664917072653592651898668185875494660391965991954911961869152752336897297935676470206380088709456325114342042923564366071657161223736513415662370409254300535134887025384873106767140620349631958407312408681433293764097126106912820908269244252759564535174534774382363784864736091380984289107095193068240378340207405270386597692082899238806183963236177718186850841748326631194279942336658870177270697383963472632835503345994262906044217459380481659574097519040906854951609798135716719135652680478047077170176669683976194437803572719781861245796795101479899165597186592306340744173296356337299629716015341653379224713790493410875390335773689545501753339238302364872718532115556687798477037971370618054875795869528410953598791898531783412187496844411343241736004839356551327705049137961882140822278765533862596543555554179984510938673122511586782275539096017366928107643555503454181520896631465601133548813182789793030585470559695562315187690158607327632198982625891984860090377028720676035413114449647971366582111701268095856275256190573519131128691784229975373042719269907827801023988406940295819974896609967696866214141391153192394472472095194607575815564921414160429099529717213245684082246516453604775962592095113963595768289252048375183452092367736982549015206910953527836381347181286192340393470894032255157368680308726997515937980172645827556781875352635335903795282590375474035583369053307565523191260719306605249260237623068380248163691117647301030330356407207458113227009740807694345449355562449400240301314879100886902386243686801075097664331990780969809171665459984713095671485913394305745969396678296911164443776646710627798715480498054784255263282284754731369243085402610584347550324484835363771895061497229510281468918552890878458440050416734062394007685563221559572522606851301956791232006485733405973626107965581889740129445159400272758919062287032004454247338968407716488629541667826741586913124977596504139811125342241468072725287341418175352155853510791581060557280300447422383830797475074525748730259342346429443396255132979268165682815749083187292548468259953501265163900723854168657215544018316619102780975578706955139686007355854633356087616971902895303881226741956264052989312565891092038115542506076105345161352925678184394016203012733747569104028335502179484153801283841267627806949526220995610681058614000774704496612590896532925300161792706936342340655821979146373339144726914439389630239259909160149277657202237625075259225391298168903082349104753594217820055804182166910618807905472129325757306043353680483298106522565985283891905987971919665354228387869939865411228921095686804190955771012230532621956488636388620683234091668194029644810811547541759066380439055270004820056220166883855507090401810472606480402470979662280132539418065961693194022842420854829601576775859901463693630910751050503550105993328507498363970922761010706353880977488933705383958566879333400173952853123368541000316421294082654846692339993509460535320924934719634629298261467670433368432345482311651160700214777182224068893040963895486710709905481721238863855687636134436170394419114133669771113608800746848026614374719051575835908103717196860121388662888603345495519390991578604332648655727193251704960743167077947247902654876160486133228637321824754641931883103749922629315995410138568506158742733056970874365987898099609220632686939190816289027823172609800905706792768165489338057306137933118133014469089773262486116184261681925148289878529983165707089094046158597764675974449641190470991238823284033741139264685600937628306838568144231077251085269621051277150815257321290258989090141254066896622266587763391409001411653805622559929303016819179918960919176474312841428352257421762176380604339364079977150669190546577370172397241677283292361964757308973870956653005027182874008871672791468461805206717699719101794169748605809014528334869352744424769618947737744943259516998049199718933414694166739603131046741670094803897750938744405028061070566511067065479698472894932957381957172140730539419133870596772215067498814985325061319915469714367298892346141922076529032337320947723158479630730097369196016534693938633333114947025106005821999903496356461252437086720432453588235385343871614718087088853536615471351834275233887600822417641655815866644133006943365179779806862027746415348844159109187997949393729537984757101684045216803545524249469963495101039797719627336751424675938377595631761723870516619574086169114808948998992341460547591997559040633222406375898732930119559284756590805639246207245111000420736279908855886408509071490504945019320437364923798860709537275679885465020840910656446281932312624242272534439139320879583322798444991958962654774498996296565492917268347078793335083062883630513255967354981061091375870548299831611698065781442487610220628303959194689822231521039057101071553673334690484905078114922227854943112233554333609568980190722674809890313273592884954647442262800426394293166416982634009288534380505301006221160547827780659847624139833569492794689103356880662797952119514780061266732419620762371663285632375263569779799097668821283206837026415480040181369378397902930485214006751899459295435417302223601107833673482323171159103080585349500386158684590562820595931460533814512097896769837763728542180129334332713786466237466566220964873441792033879446232554329825676516337948575966983654134088821156349523755612935099140380931723232530992153834030198133036131037725132712038011852134106228421355636831434104609990494283897692378076900768753518642029060401261904995268554543242446610009333275553784393170461702388100130886788735728050048077347691124905331465212964811843229437802032649903091060174557252180579711243361510786453132018405394800320548712109983748634451438012148686880167684051702259362557725223450806351433229354354020732841416171076565035668672814804487798181612635194916759070567509066100032130059756306882350684727971730928430099986414653613332269778871604929794597373312615536449164610733685219905396623329785016578530262404639039578458809596341409006447212231978629964482819035463996659329840019254755924245632270304009869255319759548861532972788106600957234962060270496274938891587160535866338159808354533816568780574989891406328063811152716679799627544758034438969801384262316041324807287486303133548201786629239016151893719820432255989627451648759649329558418667424035306403843426976456682249451868978919796409144240144006490630135122151120014941676002527454855112715462215861594945233697596032462372778644383283718377067121968818824279884989378148730626190402408408565506508345277268227526161576006401978506416057754133795807735315635996829219265454722948905352673335442846759401844447928531178275067280624109068510407636879812645628963442027108946488517508245716407479869449822384132572834158976933805987604236066660346594764337932008832907421669393490587368014661852369156809132091136034032018842034039398443982629419914895798759314483291883043051671034941367271692344501115141377295642029801360817927701227766064149789139347460550068990854775503475982360330449816300241740431727097892720348712848541538821682003305043882167922149717902902203277795122095740811374059466788261675804805731118242977153159597496735721956986470971058402380474462040212375291963129193358545651252047380855690445078152382296327088669200161810149580372568240052112669929840150416804742496943791946658012652262201507364314655449738328410176996597153326355846756231788343341716989877945322302972884300385751204436767822171723101791590153159117888776364963090932868531388552125542291962740841172341367574798731075800752875896156682883622121060315722004041347091645487701832812945028976738812863391929960249216936323005091717047232514205685902790298505874309613859845736808753519310214801682764777824888867969843716057200913346557139089475439876544607378990848398773025074168197245370736629590187193663278502593430700391339736969413169657254233324007688281549697597095166840784553739223831400868323575261696863988074545632286620322403547657538644750390414603505914484519561198660031611737094475860689582037602854509160062132246052679929865487371830320114100015470714923900210010303832505520013613997358090785838511662645776347016420149981868168269534316956064446744031123558506370625402425845142677373907062068186462825885750676778233864669704858916149820821564252165403356474529379979541687024545401266486186394422056157974003316457850163066340101776353013002581222653328298551224935911822427311989569144826890228601113568296274795085966260809528691060501527765817219050723195861663301756167871615606966188981277493712490115113982702942112176588882516636241926026720846683616591208416325384360225880460710653798786295663580647831919231845142579805197401332780142863635344257947106764063590151505246493513630777862462684444576127530051693669797838878507865187848489846013853139590449182699872582263301285044441691779173568498176693362153171206678038014809098100154805782090421427100282941903591906151618809206750597748386563384613269895434152274583212168348802062268768023921238065541854004796054994770057392201310264154408127458111613119049570055187683404558228854750458187705501722208295639124059755057458462853197250094630114902258923247875711350521544996377092974270951800471480598311097542359031424044560617282015599846259139299405298067560925851444211038756117841983112604491740951199335916530335489020520978314531775542261957955499592729831503671890494827162892500467835302540635901854168500310892880659866740662841495127901549301749342180189897228205477664073297801665118148182453615176705015880590534583483376788625905562458049289450824842665925937670232127107906246150325094577922141858698053798457798626246891071845570061506786362835452854370553578335222928130103199321808059475291075377251364087424458996648495764020114298274494718300551488316974899617136511241571865935910958155313034717360735641711308792023499571004105186265261761928443410075107753026696141399676387393956195744908026568832528965746756976386685672012143701710099445627556139658042080095412758803083653055573972020283945756267524788312611263897016377016857837939731160939778468700123564664217516601798025200767311496297323640250996778630126389709523483066033703845635339435235731522534111678275888337872885134651494535665227199362006723757445068055981658317257707227984043233153401618939787524589756093960235742729392216534294042871648584271008435772249811947225244205331614876343293371767457435215108712471312876508716393475558148923310032949035450860467606411231036218946424922864485270244841576641513397282221052116396429242019211473267966490024025046253240292535409815460917132153113867481302469722691376354896798162072159155545312094835963846948197425921684168703594060931171242248103174589474000168976636645882155196831125672883914086733191604288470286102016525691561071908623566765339067128214834005996519333343542139480950064818458512347904998144212483577412745172914823657947288841823149077655548104452816869382085791936749715561079099758530580059176381822144259127995967943913480505211952662257908172382095211352800394772845499395701573507841920259407896569114711624380557995349108738666678260520932061329768219501742178719075348558568744915723653166911817550737453274213555736520284059943072812267953948597716683438960666451541362274242684221148448819148514418661869325127514810513448054039456822344361716460863692365289176876552037143698569086568756770264485641157940600007510942213703348715561823614691118511966710841135404614509776112121411971553362523389987762197779502017406585989448442628309454647805330887026778747159551527450195824633694176750913001225252838785198880891048190144644591422742621462849621952294804856797977777191396042292188130671657694803249679255694214459181173484042276562254462357045990682409449946085867550191143015033800561679651621153073100590709507434638674766113311710258931107538784600321120079957405186042734661840325766890696708495409303659901761708616060459492395461797306503859949961748834335407522238928634980080577607670427401303042739480302656058726077069903599668887465927529300737338854681473315113459422565493676542086685221595526554111916023784118109675428563135507432046923744282037737702591072024366864710651273428864618100187484589010087826930423363687049761599411837501992471016670021311043410795355264712742401395282034660747638630404537868594629893519948595108647955635602277634367612726037924327763008525113500751875671402695765376114198974553587131678847360987311802885736241605292690200621741183819343854935359814265898634233970030587659337157061806576043795868604625774443984906295258502188825977350519450858727020913263424655543645046269758656183819638245606692523724373386476557218213839494346679681342132672069435645647872096481555773294546997411751349256625716135435696999071873663568435119201162288401295088414692808377516154314527151367417239689172143667790826957667825865684414713450621980566781591673464573670538034722293607233882485054065527418097730350993524046691025729392628167725502125475255521134040029511080255685342259993985115822984188453302828760595604164931883196380183156284774974246785540970007166721251726085199849683406355444584130421802292602380391302915289575019630387825601744907996773845293582512633586482271479294348047413812177989728767845977312663012650847980237957662179279105617963084469762082456765979053122890475401469779480978887565572815196028660450422375155245247636625272996926694544659273951800709045803367115652683631185914955898757632441432681847904159625899260132456824762664688185600867106965165848983059694420681888859115088981146654363300520840387732766819025246923967614855512687466740863934019190860969553878201804256679578005387030421867269846725951511883005884874393222939741312458382760727620568023075860638729629655282576415493357124484461078128367584289606577774195861582167799607115061376436233350932565286416902749574143800934223321043895141119726304723098326146791681927229657190388209414970675175503196658187491126719926982207090285819830280218932573725266817278325025295562064161569003122476059679566478998065209246223443425271211093866408348265543568906100584835121933804368747072617753245379406619204997581612790500448851829545774659140026251676580194463413944539898111734780830143066760581442035366523573580505862323631786744910921883157313465474980556697114698130509521485980594431445144119768632127758374958907618310659120947770672702794602298525961684800426743498302664329086916445759800399912362977476957917990741266043630816546577643712174624379596123754567736628927347752652259652835047819029517038461651758967360028707248076875276093758755917263717973503916014357032524002646974791191927970423706055546192743336245076879801559935750696587692522825583294969455378940130809905348376711910215637257182764304858368976867551311467663407728263386152715938933008441744713637359941234954901704087497619733288082646291289646751237312158506777411653224777702754595779212345467215915772039969968552078619037339881212697739256832561645594686250161306241519779868428080729124343126908030906549642355813213022191756306222445752342949519753788686505766244126726942075748763429245704262125035248670236199482152142749415581760437840071782725248294217203231907862947226736600988364488206779373963614152667487353452160554801251208658190328919397262526860972099355923227148752420334510491945458594403412600466082539725296107690894946880282554496850563156770481115592157614769535271782113098116976200206251943784862283347116987819480437718499927260233197831899898953412823752647638726354253910032665744844028689159138145097106518902360845574297087095190704116784967648528689897079628341205836573614750220631781279467582316804203707226919254109521033642763099476720451236752480467275560403692950679311131234166488822681339241467924155572075160499187230850068506023977374376004758159714959603053539410972406364858705610701338175588849708095956649386668633741485552453392955823177935739415475652139409865546813312930325758360653208212813981059586343949262104723762436156633154538641781884120464438809951269540115253776089713883441684963986095333035059300761801026817983858997711288572691734608978230698024815513867801712656374122811425087598228275726441174112007697307543881709758003994966632731479287084372227068578871995329834388410780204724129766079904659509085567095018604283537844129535449725143750603230167165938671006571904590126867998787049238101049732659540521206129443946029378345298913669934942303856745134762000633428542088452175525224514905135145125554923474631191088814539186556656116265665669384244995441265345127181010076342297029069272150448564916885616542679429010336345999546120443391102694498309387500040398750643496952489862499008333401495931808872503506934733428964086686252893972396068313251523687540390325173486577655459597293582384272176592810110206462425780360112852740460569812953710155101343208882482639741108719669151133421411912052669321391763966936238575006171840793046799989135524244020348540339041545603345667286224811738743419482255641894515767922002596963728354235029120379633361097285169530194864854312210178585559893501291717377169236741881556646593982343158139984121833226211859657902889523856430739094366405695192613531153183546035563106695879768525079341826770587551265444627779420174466911817543290717766046795525900176680715391606618974221185391739772776930709768135541001248922254977376465079061475725463266204194542022143552119503537723152424491193090129883764486405707932499701041789129267024403485279379528873387756932031387491692907967313542327243085544381125085632996403705429697913881528989328486291773378053347805617179836567785581073916200312344527505012087209002613880023182084123843844384664938405706040734114375691303247583518989323422327877299242177865390153735037871909521068640223112887757803411383091341693995770712812002551628813058350518670154747513570200662893621071142136901761001709763549615551590963883788751135718970450055921233355158073534868939542090492168109929052606542232742403864617752508592739978769672560116963801326975834581492812014571646235771268328765827810370176840119850274537596067343519514460763459442375039607814358290724703949596502610034140673325893781230093709217650377146889202031648445538818097203181613714572615879211044228560112417505434735450821762289867419227476374677790676811653749777598259820253236213897666911479741013378781455197157930660983207483710800912220103805209370414198307738250861315439073136848505141482941928561623679384889881106887241921123248843300693455970429787415807884908885388520062062788087237271991130018172204028104831179958523545877101453187471171761487272131630330332645612763307431158630283678388026512035280545191037665531009539481947752089895352523846734688979325690473266072759391006903431253892890437508351419935392790283530610537441615179538327280107089959917206608367391623081627320232058847019935162152036816612462331389502556752467991979625322534919285298367375763769342486013418009487923473618997289847088840921930224221929459487310212509077138096562692308132323435137339748614817131043677673672891583630395472216342107486671641894544815350740592396966084622829614427082993285013273243256595376846350721000162664065278136585281769098676628424494657875879614194753092200047585988899507736319796273835569269802182449393485512242267584053321412391200660413355569926756244333281784971319339163852774421669634707310651239692732212455510627994744547609851121011890862908255278899123872380169403492553360741234651105227758684433952594188505608985142242529676605643469692859996087913093096959858688468323652313224498679531963575233350774659147797212830454942336540121019389571816532777204251607548704083731234886635186797805415057030841446705429595385738079784552347209698640672743277529319139762028401706786711598279595102075454116434660780891076718835969131983444995832439037455510840524312211585741575773961829259431548751019233234613455509859451299182612865372607861975124965916363383180290799012656808027202257582703025023885056615934250118823995964974481378696474958165685164242588210032187328354350546324055240010912557199802686865313391678354177407993557906000381828613413677733684661538748265310059205503299327857064213037586372265261211375926609752545363720869581971123438385761162559572137398561731394080087561826772806782064659151033852341357977483076443983100490728349700829771136621487240939874339721454542064703808207825518249976278280723671172503062699489987861902406441345420823443880568483940878365627904551535905369628648558548484023494338026672917982131279224320114445257381717069073816408018885958374064683255738094497435256700596680667850147171915252953038425233615893953025464651968219375579970498233864840396915901051915557383528696562328086478890180330023688962008857205992066330322455498036655088393934104248188812626881993207443418619194012384811821817836515434649769457711405505588692724946513494594108423818753312167621858242351189493187343036213770284518392713157569321687553367525365968052894399042974684197238951187927549222519825768295974549797628107252840811704701821601331056708775089890584053208812270906826542197960099287375774017659646745161846146965268733664309400056977190204928872587928119758193834766525633140071700975714000371506523159692842176826480346633688639497448144195977975693490065384899629822344589452018874329975145735544544169051221332449869208186308870065833404930709963618420547523058619756548420252815438651012833445508648506272259266213135869802591626759476514587496618753078345472425079417145172560073130225243806004110639498679397235827802514783640625836872785586017111157445340985790998056808587534703790791898212361963104754042683391547540476097477307132310280893603185859097351782112425616896881501353404794229320213613727989667580379099757714452837817057674558630479978511568685816771161517198886645828093179462338356452290274858761604520953592740786142109625828624652429193231938651689426990265744839109871556028443437282942874116048567027146192827897543352098785166809829983948521777328651081934302828311490487657318555992488121404344456465050255528388443026355008369728169789892711033276378001607906148708046411591665381302510513489350871016510776262553742852331482089071178681636178081726722490760305443529387470310072695910674231818406083802213498166820220318971448588228456487103811978464873028404893757149337597912104361592461108802665187221026165409966524131162109735579785112590606470713990517641335757903796499817620928013757408243159342120858912963967199814046337978421576887500711209385312824085987186881564085802496231588457762718235006795705666217969844983903301349299119293176445502218645836206442893989662650003763632282807316085033093551076586262398881403222434239541105179269392253996537585270537345196717301057728426980811028456112067128466294731733842131810788204140601530645281807871885679536777122874745120618185146966563505526816019761662944263878255893631244225523464860276632518962500086886820182795882935099463367294235920709704161634031923826038021969220745856444538001654359239888459534235086429476961118138643651612451519865262474647787926491034852219555684656313239823345640366513215879749737597605485494872979945106593052594045641517925505257952351260726405688512239556455924085342263394165161690273461097299432015141831728039244929349828118901044542923712847120257223142799697798094643483767040837571642726942164767917938793253508209238704237394876276296082639820639551057318577596992173311181093082745029310153235830869533774244154284847436926903981343993486307481608784073831722580035204314715240782106042734177239582241790358798873963163108670572649441841053292743939966393010163817211290933414229376370782000569636035633922082859537418662587931967493289342676886798647459063617383813676471602313352418998329142682470393593891261713045240407581883785444337510411236939117515681010696819468878138373031862579853875364077089214372012778298282562020313734802781431549606749714390964331479462835788328350742161334509112564210129699084021946158151151035035611506782641153795135295369408881081336311487778456543054531617039628396802346227780920557055691699283414301246101987938937516333397182707746480581392063817650336286894560451853463099561504003676287680297883439421026564353171277691857456471527373548119134791350264811490311374297262173211971733880647735107688795834756121760431233284715350888543885198457199415385306124734882541488132951803572034701003048156878493532028137920317463408756790150006555502535302197807087519423738579375176857429577202508935146878661809847341853449917492036119271176497589806188675007696274366556157931480799330404103768046181939838217714643531723488895059937823645218137493273924642471416089036124938303947185410233408769870475231532092961510736293059265071938049366229840547677294971132070317239071062853762700831648510316816605698190680728464983174675316578186499019132441315982503809481372766389587795409222948010030954283657999945644737839944748620676848031857909410683351494961324185038406620942950460370927312644517802728803496803801901587593731989666836408756589211111463607658814122047694076066607034301866898905902519285107279645727447742743886690937482756531966439361829089475007184318178073942119233064363508384803243910603900825915567936118814284334792328295275411760002349423796084760443070705273995341327354139854437455808508285702824200182631493473100846321984856205120604766255822778682370157117900958329570586957987956664228788134154770348344541845877012060714622515530226490372819346600388580747880840357845632011284756349957783500357345675559270900123768445811747113487359913665008729391449268735120591807759922381088689119136414184645658402429998211726118233430900470936360146950829282111888373165216887691748403767817690083782788387256261321206202939340751370873032626271734810418398201581853444786214309510645023059356894092958323689596113178740878188691344092782794662625043994497567533984317991776988162989471170868396525238064366536279831136543631014035054749721886036193295134503233866282344903286754989614217720784482725439932158021584937154456168835085868512211991013323500776655538857657389276926988320265347123848431648314692828107920911928809999480122524370420985389564542895563829255297218826109613780077667235190903664830650241775076418798771079106306491775773055684665823848587896262936774051296367366072708120261517266392530920710997732801168141227549549990837803309274221162178850803087382808171590567834248344484892971174695536426964632017187305685319694718155418649276519496646849570559639261467844519902483827430715645111446394962615508964202403453221865189849627412004426679205931000970530434925921203868370553493551819061040147735483744869197352890367934442925111740341163208110048908570187544433532826503892849071572404894463839315618678253957480611546895197088758702383365921740306486014068694101885346439185381048220826277880143988168727758289302814905189027337243132642064907375238727938630799520024258519227314229886052068015923250033007904293417080476732784902902355458215727945169873481758415448818251217051906515637956786834442386802965019429889338202776878348672343839426688714723808061524650661509313823711540488105467647473703602954734677158542487329941002985748996104072747811238069079828846850779133802870242003937748830007911027051684091426349341950419466022470000059034116588650214025243916096153865190126562446801698833260749339501727232611788164956552649688620693637512299125696868933680951216787897038058035996780571040054749540572226535042915670801815741030091622016568663711338714877220898273770062340490600748874075799221639992493695498464108185218694263684967127648324566999469812381321194906294005791082268316864805776633952870712584995469303956189487258387588610713598142406792563699089066361511751122454585838592221683151705992203892415318897822828288773571959792357207963157288697791222678788669887213648704844691276807372646710723999789023070412407481435953743437120686727071488915304590443392920464531815752822267137829523464052377084066533649486525448477178698811979903812446661101672591736798339799209762543076886991828824679111944541294622050386561592071599223060277801738652170713253243330243502348123764412759042627775747300548121394534489648281870905609534130215497659023217293571527166294791335601977863644006392556781962703071484389508790025225500859758863475393182583705217420806960435325547174755502458545212363706429440057660234158601912775355406634112498925187369042282747013747329641482605589703588065191489500366584408280863646132063560204053457523322154960002803911231473215698710927642760171663761217294368226059694484337108531809021557182431567471403652406455650897637693147867841585801460386184466997967318872817966259690050414731101242904308014759787133968471442302339684471136377883197635025958503157765107957272883879469189023995307994531808668394950795353256181259300476469944755186219730832204011361789717246059902482216296070778229240808086521561638343174177868510453086004201533067325003847527786509394071983637683759285618196523273780446128279492788710767206964193297102345152539724597883720023897684511406908307926689396651970334760713539568107075166270225246330845872571983302113344103937718347487115236924286002129722788509365810836820747746475543639555203559214093521788833099448418435609391158551645558134621834551043274342287265453761306635439062127559350807505969132296431707613074511093879285898935122050447815800268294013455665985577856175490537841253202424865072429856170778850197685777313850417103702303598325323165769235957809664482124540203428076291646949753420609560686149759507732277412176681143719785580384426130349221656744946620539629569116674801347799052710730725253156011528036887231844570198831950311798892853973617326317223847040725231121863519033450921837631827701196618024659860744196931718745438010590055332607518263925747694812488266054954236735235656524484629396427566944830406635517809695302468231929995687865971878698193607678924683955679481479338426757289898377031038251357799873048388053297797403335137543218276981130057279690032880340532179061368360360274927394304475295293031234712940067697525813472324349016440476888531935098423780437514472195015208236997250294524336722095574819823115977392020068172190369248126455862015220016463832087232645170251675084240293694428004975781293137441033331342706126781475717674467582379361908465124895164165333671727524635218857313397774593724286198892552626875258635623905033883601729064312516840930407214789409846135397173561374282670736604209766544923471251018701731443035558441834724071129626802378620334969165014950663556404600782770090887146251423250354924263140857874352517118786005947306795443502105614977151098315227634936102673273880843912049172520718250326133973004685112653146897022601080133260837819266177503222752802851992810897969067690584464983698801691685196614595335815220592852988591925660020304310053792115650257798019517497422024588485644496221537972216649876847620142175349025436710038998386131922678587768314297608248804695363287416110062826684278275810158289202378522622379027234060842880662587181157983409170419594485183081958633182567787521961552687603825906872791726573045964206565267429861049574038137588127857462718608489302981306138339594543944039905335359020240332577483496024371195965903145877774907323567409453410743471009652955325982631689968953475507844303198711676107553043112436009227622552038829084613319569369818030394021396153813780144004490983451109582488473240033391894417859351441961829467865717572436634956856211975806736931908266935696378011850441940549821892722484993111555781918769425290219535014799095005848771646222251503782628877704693165531433846025985856895214022295780118779213935803919705447751890353998267260245390926246989468842557156581455648295039849852397214660207745510432665721273548001137278094406969371272279619006360779578565983142956935955514638626559392720384668656179424540582645981025462836242784153367679121646752660871392770236884020179205586766356189942889370404983662076450805818128474532025891535278977841261483979145069100901864392780389997996589475696194188405484843992314920472688169203138786427352319112146131668681637478029594586695431158458510228721918093962650095469774121723931729621323660450951888130847380812508311861054354194217827570275899271040522586637218361831471967339693991174333622537048989912587525968714294157759838469325930103378117667599634793679149154796622322066412220096853970892358647401163950490875095873232777614783040566043616432454262175984166332217986159892077391721348078870507678010796542249720270732814924788836988659730935867320316876230081472615382441821565278949879429735779582998829228001253883034217472990619835149620035860434440807986314302004341092888830872850266270163348739702802883002713666837736794440251962539852390404678736021068040804699729081235007585280182479464589709043762097108158729425657836129911536451046140300099016965206174069720473491613335073786186811850169734022060324049468436647988549113318677048814370781986947306579793873395455448664561011056446153615566632850402786737670897699229032849118624112133956162096947481782558254178374134362206864242222221836917867509907114747276173010626548151110688102544917305840952886950068040951271131293814160769215403399382234010996602348218991374477221125748247406742684753243188936094902770866350889760246128115326392261313804273350241675536285570464450101959351618821829202000476185136538600117306819600055713977622851405534659907035159498820063661592675810152519359125021561204256062065680641699915088164569657959412812712038669094578344226850088911957759111474960544504940961739064365331652480822808733676192758322147241187612000507189899246314191798530050549783672336365295285334651408027771955925161181476251328385261414974276775578602492562812356028298771927537194451357870765355075592837089874025380669411063796599631830124355528382618944194973060203159346767175305317118625461404984294598893675975167375921672260091247720045583998136957645867336642396634078458635182755343824514132362215553793340691257577667754885426864298527809683687839482195442281052961147822323091524817255726281231087714877407938553868265493004724350281723854928093926393161730372820461134145265793868374057299228074787113412530325350646785994783958166518618932801505644958160213496254754032626679559637770186176437230619602742190597175849748619129694217665887506879328870426703509734437783964262713018423178068307861042614460795419688315367903723945348241706349051042553482932459477805065993423958904716439522820087827348403250413664632463068690967856637158095427942029501218209310508281949266227310555212529831329837052320737728644631016954469305490231350924315160860148269105834157685170487480593549051790654014323434755559250627388264075605532979976961837670854823258393261854413931664214629229320018128252083659205814080861728167295886964718803716045322682359898648904649659146068772407324631166654963614148324727404198144377320516802303157254483858685248770458417713975351594705089157657439218815736423391308095003430355429218820266054321881980980090321468833190153622760465475707767035012117939865680336127944053842969593150359078540451924499343910205267735781638062921951566446901397827783742463974750130035241998656446673121541180397189149536169015225280474273792025252309027490976111905890277742522287269714029104904850076266088393833912874965662570613874900279954280063315461199983641944959267800837496385768933186046571837930438248723111834935926372883458341777076179047401034602348553509758323614813861097505085895638897174960577784662672517856378145983660834632779173953935491794866404160760219196144972543270709837675740246501618780418071147799585814244008960148643798611892492009572395464857688796543874325353206021199306471193812817210299484307477271047497750172391019440441564395880096949857575467618071023900935315771001355299372481769273787478555172884447363113190469814723530973572552917989498986860734922814095334848168423020744186687426500935237454033472276416684067892577532178036510747661163423999664942001004806004953274139488693947507512456007972885329962875449383411879842163063546919410951358060002711631696668280338275002407119975515084997131744906569125526243459497781526332958581252618033251110911256037607639905082483544699448012504952615545884683851616153549245460568506753307192430206659531958428932281353477598317894540892209722608470310669283900646685628809805563574117628612092851767674721531558559479068219011875295166815134309701847675453996057876750732642786160508647576203653381392877496457588664261591617607212785512488903997615768972314146993923319095637003894467531769672461588283229106190806363735415054220151038871474147126760236615661445584992367633176887085187100016727676925352517707343332699100007415030179805238849888519880499409290463489387302816347707921711850134499326234911478114687491577076081386676659569723633380164168150373383595330734051839637812644758853172213788418629447144105679160205643884684437454086278653248431761905135668361962594848573905639106797461124876580608754320725639820033134761501074549500814234571534744139247009867831924400103525372961506141240171104947590157211130656038262365524701631025424642613203874702659369866899926071574190242999835974733459861317126151766251383065512809549754522419085112491051803768686306846432509039961950911925395338235636711951601015517691856890912917527584200821979045390902997117257654920536856365883984567116596014216078450823804776068040683357942105557964199666803164127982057422881522405650413834712797267891632735717636822065443926654307810974620016782239611932049737460286780526040900946651642095638847507844619019194049893991556111821639294065729497859204963786650551442625262343587677117521312997323846497857974903323122094662924452819960393307688616382362021000487464156494058370733331400499455850208775637487236463358152251292667818832661229842994252603605629353091934790719190787572866107621844574059626328944552931145302532235413374783409541703695011527589565688052545286652657440101584863938378676367244532715137440237477226649265352853057575782203603249690201212408374926981629329795229267324922647614832141680933640246805407088509624093600979172861938636292377086397174843005537791902959021493989120346361149037481992092879352077519522601110299158152264882577224101658140400754914596711062884828443800861262178030336968448078058469047097338182807826266487919409908572010490637833002081394602630360553236315536356647170044048349587052499547197331869257549429067087010777509103184277244000224443495806021467902582273996889749712264088516609422549614203131738229065421808999508129279869080644368701348053404465653991354623365826275826125224110642614716147334029160420242252407679467724360591303863623316904788458689328855011479495589933047873854531440875130894651774806281826376202353608863230471618075845245405976048141014536998908716287588529796826262296835504010896772095754536355256697430490557713486650865021040980007328760541437171945750811146725577355023094762239613687927913760498181264827348789726836192795357705130051838292625910801951727725495779238170709760619218213017133383525928927573787925412899809838317134049377654729720185101367972322209788436056603161465283855209316287871536212631753971502813246007079409958677473342527939404607389460046410303654346676170911073950483251338729511902267141041572279039159135276402585393491597349653764307555228317716883905061535189449177578039646726424090693442740472541858402562771265416005565458938856093442178811820258149837457665693016578367657571719538051823248669562729034935664934081572052438237103800271370986007894730820774095942731525729819836385563767651842818275076726641050804386906546523050528137294260629523464512532049281568141545402396864012276687305737313042305418278642435544429163747816103248899613783883815651395853014025883780781960440547140711040461878522143837026848803864373681688046103362092115795650684896671927525526814151740810051582337502000440173670124174364221157848641430883438681293687280602191164256077174200542565651517603832606954962673295098236324624202587984212041326784777892146958654594504730641548831626094111490605284183901433162782116104841150130465753907586415391284773289659347820945288644013734556519645290058667857318489518063312990895540355038994010820569585086407409951808045123838805792680974880987912803616641675535821749208457968219089142685817148182881918490474323356124320659592091678632767449421401502700510910458609917883788766802676165802511467314402129069135134604140887034053788813305562552445811848619223420404031077742641513864027465660724620546384324604653179968524326424344389820981834079402987729542444311980751563941382057398422312727580535370269285761177878229124424171956217060765841951858889424168623167502259726753532046665889354596417970995339500742695395791551843711557505580376201343908866855547555854363631460307359150730253019382654617777535293000229167773921664330232320368422127274570390586611122149784899853014888413587367743235821116351248393216864273743857847723678782994128082529036372192953804538679102128252868760866686661137734038651255446867071803707987773464329121915783686157643923884310003368794688154372182662473071021529355976170431057656243022162980070881593660246370107345793640796259363874956053531890811324623600541606498802298011977134832820938314401154814474755860427090368394228788651026961543134563473344865118315763215011475642187024368328468933499527693738920213918476412699461180049531104054999142096594805258949974230070867803081060816977059117664602280018815847751367835541651601441393680504237697700855467532497248044313528577737448869393228275830555074048363095666158195753753377455753199746981245500982866459518824824418006974592602306225000879757252035181666243052601658404059535698310224564278878063351111817122148672004300708786566081322809998043176417482776641446437480027270656665420897593237007444558479579192779715976856225354886418080337346512769858645728544794753784030626837830851039576788769523485223427959514351238653307125175590295202477848423021844315724350054980308146093452719559367181209860093823310511073002287887794285219865014037156335938493072624011911236902628108612686295180346998908497024852782909060409333473299882225388496293310549974231481765423576915188734128292862145714397568451935621552176489269828480679045191738661924566797091794516795086620145747655353104155438946536584624108956964691381769660899781844119965148762536382119553579282647884739106457700638633122652010809382207988699954111422491042042174090390833181490575139573767284090578726159069700857197590586507540766128766118149380502705958464029521755195507730109422492956894140213297565963505321333445527287955265726782316407260112452695706662597181663816292194713636841229265907088331442903563896399943698144954623112706720046851510105618922140938956709154814942943128284722880046976975911398753033150298918195232100490643500343122199519339424314130811822492050709741418196041305401562854572627300314327181225889588977284209332730985485062329153599846082426198926043784609001215167452963125628362480624007306523751646422158076468771459931570124022144203186603275995955677415486498096729864412143108962520759698529617186568440413675900466893605861700500446069430696883261162804478985049088582121175313180065607941591276783473430082868871709993688602921743894543530371086741808313814128407915183162338186133888874958693749765972270969254807102325470538871019348790650841095248297719577881080122489440063038287911595585962757161799422969986916669703391541059150928816258478385102207723408131175648596337547252430365963646531903550834761981219463788837796418805575457825516345350916947033275606249370937988570291902652266527966976619800869072039654419601756106145625530624315955669158952387901564057748876851341393978382791612300398905439936985704181138603450354734351769839811232147957018898737646912932496473801081153973529517826586139635818198970698349584665987366722571757249562760916131162725454223022506000685384621547559536853723573423558378557698509821970534659420982277520875017362438990548887404584170950013139355423243656707770049305526931754502253479168375867088254361402088191892528352500628840660482590312368332558052449147963452838088242500491735118614408350869971042342128859096894747847652235592826843151927361739264515953646132300201777145891216173004949606322538325519263835917122618460654892524258486645804096687552679779079544809213068411711743572519819922053601902231781812184760298824581099667954242168125844352889177353932474336049240781522413717281958814785263621040118613369796346240140502143452849936917265830709836850881624381970480415091550590013744520976498304949152336277952955255696579255311317881592463273577744069506043860168265871616153640462530947505775862877989617907400590014402524057027935035573276901698875067884485949449267173960042339798330702131500918891644856064808877801170891177379058668350892358359958499698327881863428947377017682493679746704071076118936974407463683895628231323504141460935559935542727978985032546163103612315337181894321691545961622175130552310612942876516474656721189541253668498950204038749731540037854225544021904681412866464927104031103038609727709419478290943336325433378901232301216512247702769554310875095465144470621036688454180888822723958005577163690735077031499370915251259055247793863248730734068873200006416377666994615433806898542315994474571049232139947634118617254966500726244326519641764559509881261812423537263753653174405392220115798950052431830775516189712056095216930145747435062072476437154290754163615591227510093114988605866437146532009681855558962968879012831949600660623420354037881967562469929851673459881078191881024132360304024804234400559737316300699323740123677135725199234134193896051440994937123109782716040162401624531856382523066921163268233267117731006093143943829402965259161410059646139235193183210131661125612232829659305450739522364868846358937468577690627785969911073078933362641899840487118382096377060979122570278021241040821406798620039306484435370032549818636204945461167534878240535111803831871687502969563813105076785380925706774421608346275514303913730343789489235666126935158783520658630159286525739854522105037351437788736284627765992360689941492352115134848118527057303318926671978281582422635625906334624959982898192464538874254700235495457334253079033907987816370081386078950579952497118850700837551731846655453278637010681858274622268386359612831895804917374917784674123593608655365140368760798312137655270735283685067182226364409967147645627273795010351188767558904249673591998624224421948167629339876767265623006341280275569979862603411089131474624097743487600024787780622992275648697739952883248334723305827373634776221566468657646990772681303971173452018821930300468684777954269342088237915144941803260589292270485491229568106119268176471653458818475271748293016025180580506289151036935709889955544608239469764803151993166045455511555694074148476377695271018688382813332077412775789159878832306815489772856896084819411187803512155575547174193094886340113544403045993411720290058623249574849539943004205412616764494587454892977251599853013393582028533322195276758856244986610686170960461520504320243836506097980599394895627452006735075859918062618988662795620173701121660782508790496415867107346052073468469377956985285609156761306732019166788561952899422966378136912523232152431256107975769652717610743468731084783493546273587145670264414384214986293676829313020103054492885434249332029457111928344623073459249642313004007761187733288787796228641095202786250305223515865908554085493195582537411677107595890124283740510190819209736742070370601994838045347426884681023525614452427954189758492431090301211018840865213702196485628733164819873514161490153651486276287923096639148551896754694341455213008472530722734590334805902922124610359395929397657345341542173596233560233239334397571243204983835686777277684022081066426391168895312459797510453012152324752929798720109226568974607470048302803503787699086490180077435132909019228436468210763748711298041126722822766447242955750734304635348365665917345451512095131974981843229937186109678934673772288562251329500690771609321187728174132111102980509530737412048008644491487444557279496436871346024842903459759213088534349035300351190916869829973556155071923964574007540029948882599880122206044638521882105957169537848250294543015157723360563686830450543937118731853575504783483981524345108724524484767161093454777784539966234759967452442835713051113609389814689831432523445674072732087293511355926169053531678843332673345984417572669083624695697962751465797756248795184646318510863471943305541021890549496549735978878385437728272088117672081249458285205326708691219539871439104590177113070614118295502732270503475023865346280800091895081582753119944689266322198468430686195293685331318609089617306258384371324279087863032030902527420851206941330254467317296813449385247592905093972912342224472469593696275178403492035849409173026094914664962502936865583323672666233837484631721543679765145284988337338261604794402936181296514505822359764781795132758737201288068738185122364740516487273645165356138120686370757106287383751185268453763398447779972454824254503600683318928214893234985696379415041908147984883244390349845279580627737062562412498702994713884101910201126254037351778290321795224826062621663412313499388664068260434408856293883647218273784827882770863310713849597988482778636683611574797763660057308103673764552048447909742842853285763243256442761376281765648616620917157936129708980761042080854108014055759023719764162375214916416091139061644241673426792711237611148763460073178899711747406751831143063950219683445721360622984348732444161996400763981118521621708659390286991969746088694047074102838971235647102235914429852598346228218936696284736964708352638011727554192416970734875667448007363972027049998328592825081996416184048875056562540326938430448534838346562185457910275434537722237174947299889651178824965882452300189871788953198734463566415811137337046412405985109470162829432717585202872621339970853365783023925460377778308357910264323410931818905623996076773593219068142991975700095415069102982769867060901877775486866268605153305204508670052632713489410199156092920765332570932529565396674542409014964456221994138369396939255633745055922370252515982435357323747901710622397105798413824324458579068813140808753273216169835649646061008579525529350503304201946557854074606242210084490524375712057358278038266500883110109092582339926699946935004206822925091435553486211710966771007481474216475610291928813196063356858966934183477015517699142223529342001240868496475113945645173856985120442680008648975545485700887902542206105968296723367724164746397010129840195368639164440411995503857136945771041305652563951182165590164540659989239514027413688995622375560396211138919688063688496503382353871057518121016382910951369395667900399947011666428018878614771507209913510886696001908460889256854929745796597705338483557349491631432748698839460719398043372676189236981553029712838288509465867870194414033160166997623613370461407676855906423477570466929619827493788930218691270681540816698439292816220381357260183733801514804949077688763145128560823887064112291066483862532986490662933338352213255809889730071013326080741696789531961029538943465701752019649466911880699275353319857115652262997793865956213419540575283504862781147854103296417266103469985670898548170341459313236846143790067020099276716171478192988726704260917217904361319086253733148191495289422181358002713776645434390533711487594246355701609434717574345496885742811178034003140923014522176839272432016990874107733130900279718537721213589753365505163844071294566536579617805335694182712544952262809347871922021579132896299796430117213734906330334511464539572164186206446999429827603324443059429216868644745767590908452332700666961909519975227810157532088888478465176434898687492584801472159490195282350309831424491833042050371207859266738912350955596258527179155687004812966583723406020688237585426370205713628824275765371163023083311628260842648533126003478374120806711426611964018802023142388225282713927392701620640649408920276630980821506269008742855280371371572544871545321718117675268396507423456816175324648224194059375615568604783692326716213407316847885420806820597735953085725689904513604996594620355494600535951761019825029645103109733733175757981622680525020709384275961833042980067877343250063563325198718523966950534608064362030666502786434077545250020835676682696963915771958021230159853658541310926251608768020565275331982273274129792928853494018802139239818514068744539918845204581946929808995091732451056748449228876782859209360443263725918912822704254181721921403719125513060356258268535447862610545323612159528223311774947467243492270369143505343535308674332926864103852085212596844830119868008049285495357635452091966770825174545241586365957102291234627980144514944555249255745166147401209610459458155834311491047298165879822638028546736233845951570658708181370148862743353178066182052951480838785078666317162767457509246410049621669561743946624088803939726106811089319956215313106633206908224089309506736266651444699007787416041850898674638158434222701845011225414075115329648525541806119795587592237816758400221700316145990808744388536813538581934110818954833514262872591229651154061682270554584238135488112095593013202855140517982674277551740284297055538326505171582245868164286622088644833342564351891789928252894189919736709961742622279873818251778864521585472180441270343154360588032162120522059480876898732273464189089196314525211031075592505458804440864073097868217110274256891898129065301095403015497177033748275061121349657775181389252740737968380739879520332773292401429777216116626061089464554004001903799406196505491514415313984973918827357827417063022740099004436541373304838080965888226678888789740046686341207517680265145062038075116615976641164126746005321800173993809911852269271620307072640951284924393920420791021757451491769301587489031010173279873167396330115338269252642674421533826731363309519757808602998229822595088279428364007938549061803649085863244601763739207417702480211369820388140765954519955337190873366489372874844121994831948187613696784244002325801946789349033203525838086802159880078545097278377969299669755844881843092128922027803163718666587737166641789317292730985733101782651053216540375550667137567701583373007746908083852284486327955122432559706516310603744323113599371367439626215260457100950826375896421919438402808634662336914879380847376393778629993216521807480340001444107788779152892231832909175974151008466239248007786287511889093211618191380917124418750116547566219063881363763291869506681178494182226303401048776457057425378429076949777546578072274284039625494101380394577678949768612318658084908890496527352897790231329828998021634664798343841169461792232892816190900667047394768291770798150120976137139315483243781762944688840555031906723252117289902038450432064832544703823816944939857513960359210172992548517517482354464498155399981137788374529238372848069019630608120096323855567087361668937231902248054658322562470670743831382029870568771162498540034480929671568168046657887364357965458101726406065233653095230862663322125718580524679009184936881112885286638658745200418645020422592914848244192002793160235281493187783857867083152347843392801369572279161616712340061172129602205946684460449781401089177715206722815477014529350964274952860669664651566596182991849686878759420513629096038230691231525143620744469436377995944165781875959684471842919899430608721003299462555365413534450969899928488998499733646767329832177507686369322532919364987551169256968345708126844536858646531085899120528799000353964734302275013932219431743673870343238942132224328656704847844348025407463678660136921889623529044001323760032064187220412985728273425324885776413759972437612183098649423590383428312330844632559912025703294766728896705812844463966646293731007354427892708821050815478299324855908495066417259858989969054672997346124257732274108205187682754580109613188273310784117425704397301408396364395146809690297713310009819004439950097115591285575020465019308544005162247356854221222052629307741085662378280206862958211628817000394873090286500832990774985358740920681317094099340214759920538564585445562970045313365930721634045519932153761980076867118971203961415214593111662234613970577670747592414756004739537744031138336630469818765929165800488937460068145093911153485751884914111750402630042934043103757884948021410867294294014519157959114261940974673722943353326958516806317415938161773609576787206410358048579511767998861807638437617932209438022140863543914098110371724691840970490997143060977856960354518742095645625925920148008002083758882582010816036615745164185534415576839330613406559133857665595650341185848239808922692065596673427290641505530671709347605478504697778028225378040031902428585240277695661723481733207858101136729417793234282414162809636296708705046570273176580720276811793932877587770983658002844918009678999299883797380672294962833993365784679361772541747742405269462276891144515212900861840356255377909045319152340632177954784019706088857679875678654702516329997459998696617594262415162257736411043479787534426318463250946836190533747155799687830674115440338398512831805574889291274505303839828429123137383969042241717694347542692621178611789704376079914534433648969437605441813117713382714429148915710963134489013387325127654016101568022423738865679379380414779535017214210325503432151545609826847980359995557942618459218916828291572049043765648677449404680413455543708848430804014081924514623005445474069231082680126907252021575327565553403143644046241084708526446492224021273631110320189678597675581865075275273447473281131829196248320101944920377305482038563778982761735192137162952740937168386253630615933843492098622120781827652234885095270410793648462643422053448151202781716221696020083099553999613463012612916554607185442208442288031877125935733700670269018402088961124514638110507035159727512592499257985119365484019344850764692468539087151562860351400538637552917090513633860128812383549851613620299751564183441255264254592348699567822415650124853228419426264600419657044330858640366872461279179582479231912010246899757061490211278032546210145772629850703086781009182589598542792428015892653682191942394292909021075353244153810813833771476244079701760726442894967131083258010059932567947028232980710077679938409924287182146612308804762088536630942559676058681779317590636314754317781065197095021269657864623075923779760564862793798285157954011838880978876042474131570419227864449509904766944434887485444043529988446358729193998985117498347538013286466902098984711056257577947965014109880414684007624543123940037293981751389156316682214956522145898475376907341222606282154083675947415672125612403434886954603226997043002351239197728236051982015460331035601302121848707942514391893757345078701550119027927391008473918965791369800403889141016924508591671331952138782696652954677394455796497247410411193635829561106203469143020027567706479986684121535831547091942114120563663335708058646273123606523621640838081976935309269630220114683617951452242172611426751336346952211775200412965931025370615274137213964514964381265293977854912232762836196371268190283436783885011969559120802919292192811561553903948898266535985819845321734295406382180551219038035658040137721204122469474240365175149560677035043117176904840792057139449151758558800275224210151358968181623306689799272604674893662403107691716563807836996234791390129064314872825954966365783284632415118555716733886233080234615866491640086650922570890160684565255208850414399759005876882013514730083856575655843575937835999889094962967083256315421634213440063710049938888725311989712402644562173041046512296380878079266817633667037009687724275274462117818964788370718460482589195577221750439855007182273251220997200925413360977237539225060829423123377836585557309436199532244453642716821167116450013041071143153808808970854133402682356111065555704020902666743423038086132054282683877126896899214726634282622325721987714501933082325850875353993542334445580100725823678712106196168038289644756635706539710714685665427688267581423409426697664930333498795963904306913539951690990400790235019290630031520995986397319590513533228056100596897731753186114250162919604880051104199022009388761190833796591836790032130657826503621085572307343098404901514703017724206468907755772629174663863572181130766801176371063769604755121207291806250384509737289325872439218510701602107902799122909577862116056932188328956918158091549800515088843042270211716353592666703442397037519275598849533768960240155707821048538158171203823646745240984952708241040096968322458625787744814802685242239043933917499641045878246096015477012084359233477081739558684214717876842111143973173708353009499874787591900262703005007062238126380943095859732144004540609584177021825186459469249780678625900699192117761947451281951014288602299298571727305842697533527235642977630047627510211292385722002817616705909790015949574223067518384292382295507149812634784779511325145108390358040075467677374318678808571830264290867302246452968317136038787853720440060369238809204592950736802737641705756978918174252892550573460210583272432658325953668144702701140091288831799546907898663814416499754137575401423577748856276088398692253796672253566309618854593140965996312687017460815098943276313533557158932706498944028899601342530813902134510335687766327225302644216591906366191840932978989760426834584102388173677698909444764624934482313718537776334760604336572096971094282132760316868124154559452312723431249798952424557468446143792996937873882811284000937607267684214747430767986371826913974899638009423602890153396931891792312687633951239642654612612544804721100707480213891718667002337103757483562543363289362815019853863332190361685030280059196295720263514798303567063727364467257661874211097175216415680507396992161540418584346591613567644967501964958224307534258449411555281193937591677089510851244816390231545122134548033125316536767119801470219019923739663583547768571000088694813065142120374988973559400708882921555578225174743123462906365125422936612022589420718806266477704239718929065819376619372015751164559068043668744898621609888510095503617966941145471156910503585128705648486812042365931087430088141037157588663836629938706826163425922788050576555389727903512612912796836891699741153600568867885167320133427191279577365747335162214158405192913077348628985159529581175750527153096843220300391698025975213279503147610401652678727255018472651819283513828118096752882803115622530293317963606938671341265934566607279182294749174710656906866602538732916372478442084305372295566518214097398920370082887736837072448527513462196221345048065446521037539053996512904296355399045916733135031958504503899679794303597182574953147652423944239845845327250720402741959634062041028853437029967253434945375555339899017593024768501906336198448133224127462851242476340481138543676972739012206637082796953636007505145405774151166919774264153813376628117295992836371219364816281662603610121558718507146202328986232916935346216663079563827334299038538775356647276876861227230742169270535082432913710013889841445460429760013301036585488154620581916450257683900446946224957647079333302134658756328420081359287588928355894089117752741037553069043413381577827307394777651004867122028659021849375880499473802691489252444389894676885410515282880576243256606420723682460107772867582722949442683590294628924634644397514251248046103010511107411266429265531283870715476718396284800736292592966226295298530894167223572341707986005578172299916639217453757774111966197385996985318114670483904671894572918635386016090242146805824754905341816583552374892445923682997202446362750973127361306078711270443105630998492237635697330264899332601570996801951047456581858934765343117326779107103005960101470414869904373319834511431658600632998422004097393387377714889151284131690915647316178915690837219095246624804034849797249084280408253170868929031147868879278353662655603381566514089047948449075814341337201769663865187614727469225013478112829066721314166946537895587770172225980558422775229584236653311902651299416858296705519426507192924788540924335324970980732997669777774690944683628668590064667672757343021139927505671869275181053905772690166955373249905497117712450958083232026876264811808904186308731277288792144877702051182950250231975423536195455185101730198787950465126270929862707174357279806879567212736346332972928299753858962281069998691816778735137223598049436300628738466733395766712203815955725194494976643316014012185919684588742971551200564602895581061566519928478010711348180086560118269197239059637318549928754289120984519912381051537876648588020982445172426097553269550326244580267137337706438272793583467012816527777522193621697895881085331322010663626706430017783588204247662618652699202655218417434442837381857387077515269879726325109415569271288665780546767481373952435233992788809292928078527161184944975133098588344753196253557388986636498592187750948770735861205745202501605802542891376769459999271193784999235204206215604940990162887149562362795465407155059523648982253891608504055995047231024215694436635331214106611787449031298858776335857232918236701999742944431110457022226573259284649118262657054934476263262742749915278761908377494565615631903183304644290318909495684233715248027460770603439520767089883196033002895121417111272318336412735981474011532595245448684439309374862762187368851526164983209761406708438274371711773015189321342597665208656473795498762588413240714098765648441593824519796657481921936801632092554286681260615519702055053630611542138084907217786613125441521207829005283568255100163586564093069269946454159633153744060181452346946482675591408105751765337155774444978870405430749144694815446089720662390859722785886834102745572461189700209689463436253703640197211125240424111889841915587784044751974204515419283842270035102273370913495369864557998996064614344811775599690447663943795155981844949133835246532085972493876938831154091593488441061613467564795590266171298445250781413961357616744344536474683359019932689081349154320585255558220964841083051628762691243058951273848193299129227705557584812609952959381761699642931536845398878538549352690211780215602647570693470216796874332348352854353553442222788201802992907949736782479973856374409998445164790377388637658385826338179528221016967595432608606852084780357405775486319276695591747281479653664874476369272276952467951578902058138958745312784469292724924293587684205309454742132863782767647758948130288131149371594357935146940122049298238981224464916985129945431748003421812983184969219209274578754486139205006632791440130600364843606000409474774401352576507760510283779389587501479469658221469643474675996632381163508621684491905498443018608911992978350575989127256404597970209175278905182454529759463990565080478675480238085643280842206451166905077088749566553880467924793525433985466465295009607436737461951148125104898080287851993121312064906624885396206575626459598086885962162630653403444784092255930467072035713493261836661847390600829808191907553779115694370026531936034730372391676498530836091330586879191354828177405276385373993659746549311315072020927859890119752216007624089167695365711537218315270691746866143676049912968380593027012035710745758233517566084048988539300861686466492426693997728854806697523380111295801056155141714343913549438209046908037707410994313507778915604438798153140395568852509616687279660295648908695298896780550799203515326565822776047493067095296225780560791796925092787544594712134306981778251864279674899386166926176673213838442618973639455589991566030921704893171763117830517107481650207699843893370212724149144967380529495029595012100870912533900139796358519111462712800711097630617102577067145631682273070114703113078227923214056464836698148746411442407128081325353170547164045653623830867836970090087120450365828538308705406592378746323614455701415742268418547680064091300839469885947762120429379557756368721734226409812627411022154210709706073964901771381150472084478997167775127502817652133641368077647732011085187598117416799502418915494932682457073433933328326761942880105299731579635179420629634269299056749291319705284954631392013189932126428124771237149295700025919129903110914963982136777494709024308619584403584478198828461776216852961591793032223924975754904330266806956669596991997454879452385864695508129319586625452272465965729470315195119033401698277397762974191026772167699573392679555319980209775384419875796360724015698986206020372349407131525078529180988376611713164713143286143115993049656149604637925414514321888534611042330698352766879485963821216957877398005147432574497733300351363185797227424772384761561061827317273172617072167298764148529699385993877820111577310490201106221496891150976171944338939174862702231312561411227777559244698674579411310162921107240542830476073108721139616842989151552538602214488044959496986272388250021822202450791607084491535043806706270454107033223511625455171756018869005555374911574112634295595312344178587390605520944444185814962303126913025789814518793197161125163700573470192934450440753464423290644025580509454320974263334821552101826505732325446609247573876716408680358412946020089051902608670095385536924908425810065012516800437513183098282976635365080615159257757290612273417617216980028332992996810910497991855064303409595305649731891968595213283689493643073233752789418531730283415576834185392319363971000127001168567346830872007792193806745434323001755138924884490340712304645324392740590713096757158932542938237362750653373515049428088814560261333700304632444433280774661969470953189008039847723975223387022652721734157410614942548776313495415949871938683534635993836548199495391551976951950130525148154113534275688384074417507155539852323461640275428503885351028374876859760343409505704596611404816896857087641535568998517685049021131090231640786494415415042582844914739085628408388983179405443599866346827554070536655237350511721136383737806498583196662676834296637111833475768842484168884150691149372407878262945840387300846390905371974044915778613604812531383089316767740302769635972842163461104024562331172191547201086451068202183489106204097315082113526005212579861157365364318501297339657343385927666765493712827311268544904779664157631408964975379227628959771158396417682521101273976712918723618395225046931633855296894535730572485364353918540026737598176327252647434124435531017536789229716357703044763450012614284308216574629930245913285285922714989791854504517971765490830571818760687933561524529970758540805771621614244631433527756132824816487840383358902250439495286401288842064962661664305686432036305627202533207471911805212138978909752645015243474013556195723069472757734143941716721694401791844289053707656160063568399211501704025743247919617711977675171303037625569259352800156692269543440050416592874130449211301825413693980158933791760942074132091004171270341746429181204879771999343668388054429440216712383808377421445156319098993106076837797645945203934204491571804850712547388593035784384493887139557038337969416848343486387761798653697336438536039260715955937441199912610717123303566072522328779825531526427458078827404652127691901156308158179786916252367118249887684635643014228143398552554242694899358761342486217619218606304000907902485175557473493660193638682082477850123289468411756789289605078972183651496138225285418572508150649665129386976922362884795189958695351483532232778284025124569871966980942348582232233169023561213335763019361629938095592495512568958972620110167925227510502480309700718515321474040421873790887818930157025912913831500095508525070509203675719071800645583349598174778770756337846365406543277277863732569667018878381603478631117418985126665175280623833108108987769162907064158284400683509928363237644755109255353252321951171250415216338147312029868315184171256152501888132547453074984209710511229642562918956679396053254197338584447879884994437803465871496839584651473468212451637565629464325361367347570421664470404240733965778645474347239951594584890004609872773089804234487209318843368009518322948732269428170025338277527489594852261788789966069492556606082107271453718861452854955446094366592424623303802613738107951305194757178625780544208999170191270322591984355785955227851508840893323680767505976912228470265372532690447525403870990289598704632911124397616002355012407159043321056802844428557335985732608823544526904625460490174637795088615583508396796384398083186935741604211738059213320257911437521835374480889755431998061096133815114383945390572262013100194587245524250528456541034902613260190993887061527314402796781442305847592885564361119629248631248467977011967652242350327569005068992185397696209764485213328838543163912485052515030219778886026795228695180954559327718333514178178419724773181699608744142096949235759259400833853783719717918324167376294787453446977065304429876303561453960655051718431215787035429769227291151746179946431201562027389403161558627777490849770101507232898142044649132716768701152509171699730862560626196648585621556803322604905064174802858621879680070043024726943151787100494934052835634160504920059402336276584501239364912298672198852229548201970646551566832236625848842443705674759252927846465723468467830342839211417476098841497032678206234760147630817505435082677470081462758535597603844474367142581468392453722147301768822498847923773320949034825913567809059834182280251363250005173765212782633640880648758313421906331765600224963169819981164498014447350135356052892819628185939712955886409501720394771160549055911126708525172758690163990188636903152096759023021404513829694834710367586231868192977799034070429673965182598154497007512886420851562023957119615317695470762411041700363221825559851879485134166713401500312498322412853606307795594065561892063747569191787617194662575405129239257578510574985433491843775453291218275278788569221439628499514756182237815730831488953073408083050884101544324692730151505130159148895890311139945056762300015306649445730294307371700581169045923966118671811880889253741614033765201927135223715031835514446215659736793525627645625101942464183260554095798452121018317593935394499762686780503940238742029538940992802851581808625891819392942593104786660681039796198556437759619975801162224023561076047744070296455205394544861616656966933349067949058248420512056496334650122972761301876581180072674134855871639350623358628594636497628886645596077742761166282718089060064768610537750251133645308639146472810177537603625723196482935406048899431939291489593891001947103730432963841652870883303353088419925438365519860727592526994722706194544259432611268185129837691731345060613980782380373055368766094764996019018570418209519301756243628851471215190317054697461705568813020025593515483235050537105857589670757213709043619696766380759661717178285555146789661436721084909077748637972031524953702490948685130412225558810735034953990155228275954706919779515800125844754181861036879457999181338997664194317146033393703449131174547436474689149241563132780202625079471295803680144456189713572888561871847111681519666321482098486274305510115043724833971225772967643931230717370514336625224816528756018145572753430715708274767882652640124534738188459465834957882254527018789257889410350975738424539994649692243274162344103629146875437136769194548445000340547791516273730200358990629118156517083911994563256253588653145781200054760783636289645958861141787148143168178929365763165310088974415532032373332466611011670939235325609972641723744966036254483090087313897367215890579801754447181512363653506825352369682583060816692699064705112447319049408906457791996704586438269602084523221174060579912303074023373391078474633309786294645279405511606995919305564598291550093967667100620491260951268546867429676795885546579020868445780849633784469918070688535905339955320514483042690098353376497200841967704365185012606407797299965368754493355758213933104046837152978978142693386331080310058958984045027737233540997553558306163435541557951736169065644185038593150318544747579769326375413752063233152038874228547918550991434424931712853140685206849313843933621573923961015658624109281565329128212326349012990509357054186618030943411246700373099742239161177597895502355146881510040960106928667873891769294259440720020754856807397841589109011179167950857033571178960581677191179810372156349206796943886614818458302959182375049464811597562808042136239371098940050608444618345897693021994428821688934590469520014807422543839379004599193371636372823502460985313808955481645199640506462896490444570641380615332973609773041634467001589002924155166740379261955641085818181441503739404719214714089448667617510701655323509225219696025265728983454692965083821290856479123385948099159125177433471150125962409963454335839088354076361838777762699237463462014748459058584638436953962880123649620480974104592734527331166641508934429639688494355167857283793368576409973282784652985322270437482992762620139004655013697883231519670666030240478866162360672469370541658404152958932505601832899768381430885782572205327420226509836803117914000225436856567277603293682015574688255544627124449469778073024658307723548994231589376507214072765212950546427078915921716494659718497872023620912416557172502534081588831688794556790012694481977378805684816504835110321467689294544795235924838230743323036902902621654099922776696848131925582073902715474866598575096240470879416915205599283955094028952431424976953978365227421639764819673209416340326277296137750608254617986578907838080665754205919421694569466235121696124341031673377065046450562604719472357468889240746210565288156182691157037556643161110759561535644832314051697391832784541333838770609237504798303384122635346715241309673037652705841159525616462101270835653271672388170213131626793107464544071090992739442188679569898616176802464197775249135510705061712831461848585214149460885425912209793782210574726935735268683092911435390157217245331074135598218113112328857060265656882723393585240281077854682411155013335351499620942498508277636108857907921237318226842252614778313702110175126390838954031254491749375011621081193186658825244908595461904546064555233555794053619000987830387864357309651990306756038304166201891246511666049149909113982710474826988475232624177898792103899730254076236587486044312950742767308396445382796396994903867436277262259164354600842139586637940074642808736607332169318160484022356423196080183768260660957344907796516029092121007903185766882150432505922245099392051908744976196493985714941287058300385066479869185375185133302708848196665828634792591727913667041722300365398260472370583667040919508752448073816507517937622468845681415737099826204054944137186693982828259520048423136756116834882255583873774657487541581731581653250533398352783963986259563754196512911650577266292419452979537822913818044123500043633085362282804175986564799638445199314663333569273377563675377736522530392393974902136504248787111757787265293877476268113695146280818192527417642983698430715433179317552784209880887155173443517537182884381700522928640824293127825932804172375305954944774574123523466705896447927299639470113655210500935421316514145413907023621515708779817383720737653603504105982820414669173276498061885699176224944095078066670120900320955871498064278870220702812800334146539084401385745404900865801159902215805805864224369865650534648117143072231839341913494024080284797643264836106542359129407549694214857975672666600989337717907078872414832245296317783535902924259930189091236336417720391115460561077157479836258869688454898340889410944529017341298830340732666103892827539350829535937324879825960328553109901670951167681956998932695046198683998704007951946238384510833088651091714329137341335335600374130671996785148730973444361419622979593570048337204253797674164622383816894265053649766355435563608440112812178334498768622303358299844952106373914931892812971903738243290441217525377739426036917127516961144870289462136463272939476623599645940283572500844971182571040957429959541389618102843390735296782509240021410937343302491836742204709080634189433390885071353350829860636821678991223458118091730049479460572987664305122332123952562782226741778190757471856345787231053579350106315617128635526454443292093074224263898637401625665174059309946144317547022669058153968683070930613045944026917607594336193144871269324598413835090940695738665016919682927664900663078363262399326031285748956196679440376217786952441792558231536217142238984601636601820288401646168507731506147489666268445311352632911178610120592778561293394422444093774902114658902442878895250887568407909359783527389594039799466647742592563595242576000512734338544291271023517795417923095022925135751959983590805786230783049398592448069915218275189935080861101513872700444776223757280364041920692540622500225051799624004898021059156169278728309318153872310838456894926481860746540139580614948363879663188973534341288792590588645818586975124457578531703814032935740181748018908327344107494320938195126772483632761480852109319021203272456470104294091654584874310383298067310076920831257130500576714900736168365883261975245400040984618831774558068875395993372237923773162426179889190318421329231989554953327698247886820631872868489867513449303447895881536938264220181366939161360463024508229943218564359110904816905618503306369336141842007290772102371045138677208194432440591794308394386780865575041976253391867380654086427652928127854385050478515818414788661872757775812979581846595869597821709106347882574907965293713815595240200180022006346436140740512433536869632065702913670671272806255394973371113382132425989525389974648865604268477887167517989440394408646469917738469581489971936958817178811204179728905259782661354275916570621237712875654368907554340408385118645708798840053594596011754578446157349602909960181597740685372219366577057722940663574796397393958602630614663464942162925084841085030517319415244111612621905466876036287581700841548469744187737934726266404733307564087670355325098839882649949614350583144494301007249334984428210678168853315799205057205776715253418272849886640224020079218587995485931750830074019148721537282320473038245616581856474618815569588919077289646033894310856810067254373419017811270795146815363047067422701874570180560396302576395805196685785588591533920419831991124722156287942505047563214856674492264698077018014903171607545287882619602156092160182709851778982982385803399981238315464495805563983370528786583689588056894396956132359334859978741304760154251689021291661774779298861079927743551315738131896354123181890476651794968355430159630345124006433812477203761594294410283896888690693777574955863727567486057255864521399236398337407978444133635340980596852005295788868806705569513854194586711750563347808284597227638106991142726644832627889628770754085161059361167818154309027884575513514926896177616438270349189109326312256270374583347469830502849502241271802306448281764245052815259468848185805605581753252336009979838173010711496036760937124229766426490550569761899653966563137388711921892221252055263142542486051303770234414730576710397401828111861488120352891344294434336496282173787706627829868815007470648800380945388296263429385462371610043595097097122976455682383060931659349541975546830877065478087889610047541043402052313452787061158631669756339153304224140737924984506752032366901685647935111147605110006994795739513398610490048044443527876732520762601963431712246825608616030395888163090896600479618083324640935990818908523724023341612258588481645981387744214002715698659041990677581133488044814654923277831004893391845114942839040558710421524985883566523372571339372983476172406602170314220400227428800284586661060491767756522547755825752061679626722790178561819793550327070379599400518967070350817950377484599518694959348674384491607602311672825673918318203258317650449933834508542126316113868687457570252341470737463930267793246849994049821609483302768027113246185566598182259687945896783817882284483966711665261274445327875585377617083171601206105253127725287487097501107129566540362238767553920229932364742879270871742332113233649979926739549718304031698650643935238562525047530826220528537293201721907910301336138231735521620470754694567132820878798735189624678656158391153324925271292567378653262518281077879810655020622434345922198015963593794958338357154202230001066406438707320916999247978249688648126938503152134578650999328550629155660941658451935788864197568490947663132253663798330428619418210823211755693997029928948431100294053826148608271022612160697782089858955468741351728079961321815561091784280358837114665437693979377045157046778621524333765396616425973489722466337192482299973054174117005122710246713634107305137272867010328158923887170287878292772211005874178669713073958718264624590627366338236401302945994666108865545075194798658059848833400126730687414749163147561539509323722255060721957206288904676429916156836799749971514498671769691512097933935933748005893414406525183549490170948323411057203790174721808794304629814334725658888553495562901894399686407652074845241905290141564219609294402272831736852133141123720224115206897468539821993769815183486019247019467645873754934955465972772301403277478093475022616915563902949014486586816469797790329164524763834528410329585021645996197655130452922853886109172885773888307914888116120852478330398702624337075766661892800518585741482798725261580316093744464044077042665278802368045706001206966735384285592825704056831405084198686904445631537113611940808196241462173003263976263587581793589361970721353938049770515432384946843815240518662053058801444925062510330278822105334038217342749623131420944506305919621885407721067031431923449254343787184410424372853467225662734231265329833727322164509621117623102647595274088430013869389660394791145503242643900065322599798537870907433975766176194912087299253997886202932358675388901197543799423040533478633196026879069527822990452668409316418663406625223035772169231158583222566267683088344943244954726134397153378831390436224100906547308828894461893450196459374323552964773933983987223092552614721339658253800652283259447917234451341468656727237634053527948254616596526616377084684828157986503278039259131447584149356379481269244141546868569971889347622232606507944172877960780883661168421154582523345974764950230051827559979565953393644848249108591501912556512211631786443053499440637873088346985002716709256732703003652101429668892550761803103692866064695009873289336190079573857003498005928794875814392492770564456914033164739788080517692690169953097916695348317623658034110212674140417242977397016927188403943527209140929725988323242733321915501400011578302585070423111775998350230041028842861493258231215540920920116860945565517043865761736403678159922630900222765812655440754599380582681140269699242215935428141806442596857534963591168187883209788634045692648496891291712021519773771920916011020621322648430382435676421478379605989443857920882999877034112618102658929406527069678743949262222650450035768430287953536526836427754926538420011484382931637863695431378377090113284397132034755773449709926502972898715783145562849672290131406636843546958656656509155851697621160019533189572221986877351007865526919291301901760072266185933439828813128018966266688379737146596389561196874019841218709472910018263620182704617967984597567446432171338215311521538680997318258632914614091007877844720171252577118883795671077225621757738676075123584338214339201103474771718589502942913242126000856268016333977183733792755920858966151785769063651676092253774840410528832143413426811467234174307084519525339682430086231103691141796969967511368789129978256629590466811882047109969439241384355694185841568668629257463139955645584376415027454684719747530768457881036107620322719922183076518677399638582788440727356521167063300009221094066261401751659609619009497755194769945617778463683687126386445545610657923105158983492233038508781176521868401899296102004719651535170105999741239978512124163417364335115111820402408298362462708537746413975740859559722093078221213519377443770766741945755205536675273110162480981810069572948894868058499784797605395439562232279376137265761055376021541992556956653529925856854735823590880780481080195966820982862857766926053461331663706651291415236432019522284572475602617417699365846864048396214273592725158613104255772307512286143130241449290042484089585324152835459417195780350058904166960318872904905754159716945455630494201415429243154597894947056201440375994019486477569234575836894441243282311971405864026430111380788363433676224545722300544274002822314509159911949797848078996524203193975649473925149015402152621589578572256152434984349283868095405078957949496625822835838002946411203672638235923312321699833498135861689146457152949983683042021380372381057791342012691923089833946639423168390739890321845918156148641640743569361365767702993069370869527874026640055545792841860386461243039205159605597207714954472370992328013173739964488257165820965433163075505541007028204637750582739525804221788386961434144346865399095905828892801158735939222261042886181797544961724035686423526513777074542226806213176342752966500694053311558844617467436965444328948389216930311448590855218724201170152028364164930071731946225174872046736672919714435292265875808631448853778620528196015223967242773575229539341866701316221251372537769905038645149062820538999776502751654319636679826472731160910598430285216064697644401820626561961972593957998040998986847042305721618865092371595142737128771079164869319920352047866263383820354902247499830901979822651373041380940248527874688864955384569888318881304758360768992408869158923619769296111871192366171749429529964863393598228473401262359840676309950671291585432292052277959950906986670747264324483399676754581867387486412082061820025436835103895948496539993837293906824617055099117726492258452940114692534545633555824258067998781762523530025227884205949081096344939631683097371600165950239895676001916904691585596445814575369104721138180072798232563789219796920679924339878495209108209220596757906533003996055922551761207056535489446521914262374836135358217778781197668257816674919547086574653090890238777292966208240772736523520725825893284662407055141968409803093164969121906193220213067754802124656796972275145130326144134123318787433633311939603551287255161584576634761377463157866758281262405314872341191304260166332021293846989868222763509339681752499949221096272539199790950462700313966813699624297780297967550183009665229430973435917866423883694387978547931691533631699526778241830061852764490117809611235590969022203637199344526894439555147649567005770782811252134985584343109321169846441020850979928953024339329229602228258480296679472835528264812518033876365018259351735485517070496878125700700852747671833675651684648155530474321683458342190230743515636893509844276275204418947224230248652709368626779989762300321014316300245311207412693808821069307404780791556145801505226925140272587176937133410529330981519617814037185834512797349551283809836982777977469511060363523306914364430148837514536487299376675247484261602748814837873642826040651130590264366927416937074007637484475799598653816020897118926472968132681829477563651026028636114067615966479628134392906827438772262684539066530474122109466964246073456279616302786007793274067915866812598643233214802532305154587136283151716777292488183680214844794308200970661302748686872245152815422065659929501796739350849450306657813169146482720921028412103049701911481509422711243384501865015853380620912684331619964205343416839947858479966176545983540864617233353994584977120255985401547092532280040971575312050173380757011473667610683964781311832720005915389658541192133754554996293599718033486436049924668833540209292145913894889700243204621060771816127357696964834023797272822416690714901266854928163837189535512200726799950410701659000928295380210546328913661244820192487990897409068342553902395705737128264857037234373102085841186264822670259165757100837430836819407931245300336735980749825328474742434131984001338764494398631600798605286572775467043042017678545337183729265415006241626051688150443547544551921861431536400860497131003693964650831990914437025761059746783650624596049384485181399057946896041710204487866712741815263305821444922678016328436759550996258497156376125211070966109610908817365509102768051532458283258671482723707841105797988027207683903864205425424359617656091544883962287513018323645629945996644360727388806540927648708962730724550206702125098150611134831853232455238124299723109669959549921121176397388343302097662050079133516678223277210913147897081510510799900150640365137625350204517980541854173248006967597039377328433143495536759611935340120027285187169108875643833985088018392034402817202450646373516894912581417460512333171567547616389533231736398601754038596333266094755532466650355816269773785297799356620929942190332790372435377022226632206702254298566405700836288988109035896028239093631084253436742933937458762918287990354442268241014044473026017934428845282574263011895160763367109424402947244247754360845186050536813612561347227457473101778354769152334101649468284581393972262251799789858596934808791164367345514830762773193248897256730329950096320876548386447575341865287574443783076706712606578414733343233346919694163141190639511499381610549978765469044668702580226417103444321766447546880833262144436785628253698692701982357087888207332774050541750779587444189201931027095626651073849501186270312435927503186134856850024197218947454721683452685619817832319433399648153087205112768165389945114128532322360245645762961150746432949828010108637391538690049144145785679599518294725018590349806971650638664461312934621730231205880429384555643810897996688798501186517701183343952598583950234099179183159196253264539599850586280721666829641833358600104863547060453685115488183486930895748057920096098850937473934402197531792427989783948427855468093129047524140183491857041676416813037556784872604892078269568609717370280768428383954557485761234193284890705770251385566184214229432235793109980503928661561428890467510520499861403613056216919687031295027145325906149198856750351108535794986415231542744115000549858756196395705670702662442762999622645950606458650886982601492012581249285239496062522095765837035401341743368700270453356421100306462567119927142116646973478998760293612278962725400286911781296715968262365170293069957418988103406754379595464847043272833187876180882961225666338457976673532554686314185760632341988085712217409464962316510744763070963056436710392934207042280970316192551315913486512784407615261887454689296579349025793714968246788599384491563948447909742432595042658689398900076263059049011235718315514100573301360693129972929295019633686935691623224810651979062049257949144361506770512169660027638456998095105294765336324787830271361207612138327918227638882057756028240751938217873045978325726180267066035873615509841411999847639026163034620842253356109992302997025872690438518274490375645471296371853155263024667584411417933975084981271923373393917765203466461270358623671401325381726005348742511556713321568769417204636977686529889738676549516943550445821036558006049300898875643229092448182049216715172962657134141952909377573697834974922069395285511099549713496460595706313477134695144902625601992960670185576108555241834818261692729441929130150027022017305280273228182644141001432271299134176914807852356993795876993088802238033172104014089449926188651435208369347949987799533864402388284603333035182057635683181140185273502588491112631042053253618863972214656179697817155063104334081093988664097202686065958930733948570009455772131688316491044290887970062061448783363230930899364624395656983201613511469649253164166785779004263598430078399957877820374673034470102724154117638703438442761518330505705234916116002378570285136284165839217796427641438592195005990016393689420829198142409029249049900714388862980499040417526359420667927524305765543734014403495057980009604065375235534822750298914391776889578324533891444451962698532112166366135872177605330377537865317823251946915091132310715825733181810654638111288594813795179050166493790166778669761460359693066236583488901716225208846789742936996960427165144094345964383459713067932382967822147819297829089575558042204481627457300984638827152465815843140695038580635942398494465918344854030973910713155678006443516366125007737557457609820340584900144280826460831635646846651626425225094226929563078673517175488852262544445578757536833215282644961604440089349222584211028719124830347485752694828298413443969488743503029317971814368773572951383564297201395403565040386406683287495778601496715708342087122121142436900722586161224957179446328628438658628176504955687772011108393005473961281760423921012790011520104166176441978696690768352883153559822273764200094344567026709241247787875418914598174815087499616025574885404385486774492256009027084029137055841402430854529848462163038657216038383786931895763288958455856958570579875408522247850527994476834413746481341736068252324924323433112887687547514491595411202427659264364282324955122604976407856576986110968712185693261573787786305722518508670517855238558463699202974454567299820227198626233995498781045364372365459322396768970291380624561364173328037818170880340298334293022303560955912890981564968110396344668643964556841366956141373093565700898209774692759887694819381828600999584600572279454985996134444687334689783858971443689828206213650380145753130400857600456018104437396474081761897315432207204802766456243073999920622266133624757169609621185335309139996749428694894068317552583647307453161412367675629231904523761821228132130965783527705740263299072268367566585489845377873228622164722315264529870925283888785923253661807087541752639138387349170042186237697665880817222240506713033874324032557975193974194048942452312819667974525520535057226144413107488413896423171753767644957385276643566228337604516240528304701944681299183129140506614632755614542367547760773787660946455428020048129234418291059085521018651869378843418613969103241846443716789019510542403253926163523414557321025218745342620333937358420112931485054598838855093557837974714310892601047209073669624222737796494523785593514256637139099465378225218153722395747526457536678402553850854971420279774302436245053204717314558226167894474960249181480405807398081236446577634175250157652161672692094840049795904825922611384072262759699216332471246473131207918894301500157922416341231393504789750201144581988890382814857738642169957333108637315293325404442407522912833478624934920051694294659472169594376368349786088280147386986900466538134173857730579159595207430603339175713153874675581984470665035217383594597542377749210191300710550801963175801080661074739786525823593171554928280143238261950362594505948246744814144343062920240778967716685422769811359820269927478692833157080812987612637978821199623927958294162258496312964686569127617943975237807506295931979308726826174781045499823449084822477799826910938069901802116133542849881093466204432886680517005184081902167561227906754107539591751928188102850761399574522487378301668361961557260129709763886294691511293409216710119506225390450896003907001064772263472841292113656114865551646465325617423193329633880776690785479550210771431481412412113350457507257380423935812733517429951757935468072080589451201936330275852462080060075785080932713551764492872237337636010461858839099481166321408119601547187165213116348484996498747104509926227038394717438655696999670113669666917288006232605218143220288205967955075325054470913923803609457155672073610059763001288062917277246770270911545438832994813014372668967720980844380754213573345831088298430815253437535876079165071699415719056494683713319838956048592047576237577336557243250521608966824488162958635745871809663596656365525031982120751091954474940572855902713599911524233572173281075821830387511238770174508394664199633972819174493984345874574814155186474474770260009761063212556566749349381819370537354591649084387937340949661222888274428885649626125432852771860163967753046542800676961018681458954598124053351015392434853872579739492357601374326396123933406698870808537696455735829279288642057478159488387758592520740567261932675166227575752975972141618482833660954691161307704438071529932560932657625419525350222917270572448901955538686000879221720385192016424299864998072610263961817232527704863994183614767910694695807161020159076058393223411776131750334844675111033296834804299510495555258215447114583640609567675904123210430691071449705527678958935987175639242591589230533730050183777259003399819547089542400429204004505953017382562864581030939679439922595939518538659926298847418439383230104180342515382322718996490465566026015123956836049262457046321341734536060436328863248144030641068829266262129714728397502509920446168748149738935743235364510626612775655654091274166632241898268403137269085127939637861772067022082827741374418080775061675019995820891058223076317810538926811457627384105274460611162697624010422241270407741748482377112238420555586849135081392932038155643709226028672543894385551557936753470196354997926280413918696615130304407944955627088257043715653328663012659493090939729967636080640199141250115020960244035510684548275635688922278823853720352371043260827990415504850443519830237787862374501591390999731887502983284189289519892620970986968127835866109178449578489577315111560018097222667429090672663943982060835552404471420404915890775461352068253528938020009758489353289972751064166732216647617249123260832444521302368356702737433671486797149646336545271790708020236716582411221639559792695837397852461515990010034705248581721520705999460262119982780545930003829247706170114279949671892501867647408221209449804860687576352917973327257636132604936343300499914495221504638545508343345405314221665553479279152832356489666634337870393622339769662951251165283983357249010235756930446371945042940452980123388214398404322314213526426348845519467497083015843526731621346105298456942292976445571507196221011001119844862752720354656551617545506817405361550304407197560896886552196797638574297794132443737023580543545428737455801343414423794312266462210678443961384067868114733702902291078622784545085154582679120467828353190740165683160129326602579419988640682584038876862571821660010673789569966963930852285887819386649043318068542296902802456578659904290641816793263243550692132142033533894566433704331801400757655326004463946411324772584831139945030411803921991272216519217803117807852644385422933018823520519682913777930080547668491374972393936141649198781797405688611095626341613839926559252038272566310342280694981788997945414259273149286755096887410964944084179222844229473991836639218868329612415136039836766700283652249920339066249019773729548312953390433167379198250823720831056316923523295686700759796299495835317516905098775224394533187934708329593310520018612110533616077221774159771804393910446888854837998036769471947026880926787967121842811304610708717523518796518079736176168119451711297194444116453821221859656069585994319118436614005433578672631756707238705018261734862489596719538643998011694983891912516004204517935908640921657608283208089283657556986818646776371028862729673328796702048223274417593908783486849788329023361904873452697792895261394412323467486471170663385515515247677454826969055917643018193049171270860180324272473835321233140691921834630121526090152807899792025743029206063986543686741570807862855287179788089162736320121869585386788612269778438455038680389674182815744119705203112093020840168570353637199531509170443099323737459656172722016061924284103683872580024576629806220487916019579366776801882448686044276067626101255316923103676773759990559665336953831525190191654365543630433960499242545172370977919115004386299049963607368258330504922892130455848371768688623788500155188086302744124731107752064826545267042730941950515900913582274236038892107593291672784270664932140860967140025187775271188925455543508599420722105961626316308316676697150300022233259349865050637734596542950909166770481607497227106086532271774255011587455684522579271278263805080827038502516243550157826096943077940670506584332044711867709611819398569554779957264461304707890645617537520309657680290987727640952867541566860908542572153165633092032654217732596727661744184034218320898461925280774073445212447478674110639750301821671624670911961891342648151421525537257130141410175701931171114411246438214767539582623873049834219126203542468364571351007125826149446925809622390482962049661064397596154715906592479726743606833755320153524570625633592645324492907884510988355262750254120377860500895266561389795676241223492302611044434735377364631402299990293560570986625298710613399428285149361749725700682128493755916033865917024446142067233834954334322210514043183767652051504517504715776436229443094596704702603947459207215734754389278537880794375194162534935605771634873389624417417687325275734266892705702846340881396639300248155222608543081640774034976514447690406443481137101471012009626383360622863840533449158490413049719545756369558170989647173404049499731417285095979302047794195004396548859972069953882354443613053782961951362092893769417419022964925469329469884529086655318719683668650783275130681459081732151686251641516358903350831889867330313599904048527912164375227524016389569958919223704870536689716277536990838102681272651923243364511626333205697538400072910773018741591080968053298413606205465526848455105486337641321081944415284825654710984330232275805524183033040578645945297023685943445825687674718280056124565491456153450507872681952897961867147073867681843760279617290498281705239974025566611150088274403574271238720364432670642919662301182802627201922991654186683267055188464175064185103656894757795376520244705352747201388340309859102779803504012344266291120286261915042889588645104608614930708180934327537047515323396731289680700895899321447774398993007948360833492085416054416230712077268322796191632611632066838914809309437800717373364733335277792028301394026075396357149480501141003175849773499555217198253585162497591801808146515591178436736816271938860430784400879938064058848742198437283106081330271378971764629215150859866351036488972381283785379609625465494022343055603181412359137708585517577481781921533760023831714462777249828561958770966509675580240045507549661679168965084406197618842082855701391551928975350943211868648231137577760532349717600109559800546946606647510742398609416223095681753799729005532912041231107963086569352025511133211455042866944766530277054067044268246003137869676107540078005899774973185326445679369011837049462434421614141523935934556964482549470850907237224216430185265145446099238489934044403564492389569214290766896782989344507752841623969810743546866114787823288547847082301835781140910093811901868782781886906155192551017730379239327647771333582876682421776253345488139984685206353041580703702716279351389070614655403366509342389035650455656168306401261240117096601773231709590528000416907755956316123252627181435711253284182134918032633735840419697552546921826862861019028736474097880176753047766346535129207589991579658928706375685652345765031631880487939412637860190477663267334725073361216225558720746591217372918781522127086317755800608631022287611954414025689749175235935096099835593440147364160430180336809831732436011352203628834763460027073345172359321061897162521879173700723416687368655925023817102779805299362190285062198337546930324139403961715423371703936782336252361566067180879574986401433815333863052319148058323126866108597039728737442436235161764729904797042761874528727769329405497376169047223656581714530268333364879471261275854497122676561869405661540916289290897325598642175351934741288177227909111772673148257403153098610061300260849925634424185637254447135787594294404164976803116926199018598288343736884433531381650999831161882399634174297771212383106804199819781880115823178968863467417687688325368765887853363869043500804534465626778979602924167682930138335245168087466195088879343444772923212712973635311675077975807769941214329135445605181663260353851096960789560657658574448085446640981942557715628941483599684742885321102820140687256474966010336153658582971272443164367143899451649284988324408841843311424674302755020817028270738802615394170453656147621675540578743317088705639800106538936167012352582451154083756035752112231221810322673678582834095693581511473882194613572748416848604900298593932052645403261996279022042703702049990279367096345987454277763733923088914043284388866322642764900475881723361888771421573212530827272442587462426259068701749545953538816269242456099071768119365882661324639731277314509204505087316715822182654781273892820289194297693338214580466073954582089503048875885513764030625033916964782309745493288905162605439480497640924102989359357096106269351113296833475871025407504382864684781189093590440339369675867122832292790975376820324490194418708896386985529853593522499843783352418463017647960998064316606794478302089461460781856906291858997883923056981913394436330241108243139978889423086719867946162276925467380415606739404205790762912232336464409807009207106402955431063890546576352089064111744345705758257882192259310021896899790589907395168534011180260476757980252971616411909731232403405228731867551366261146044188115192319889833819633556202495897727543170119096575091802688029661420280459401999991445354622941608719552795378371673184940551655838098951567150742579999704532188721530654116417361863017476383884772331843516736669461042115503695585628090454121606525794048272740747038623073841728920533294474149454679227496963957097303871464786637318176262248627439396113584197063866800595629212590276395132889552964309097751733591807805290295939347132468162802269818382735956652667849280648323871624007069395601164523208976032562531813280362726774529095470429443391055598916176399778654977602735507304837512408191654189538840650001742693072667473257739031582100064668341485646360303390949251735633486437493829557699847390887725713500098335485899822430837520551416545930904834886803690639879707298161190118859172329813028253446007266822172568539639784321997478282362562636479047262581629889932300343693233267277781198365423313879223028364293964876059054349465548013928559649501725179184957699214199273396414407063724185129322484592763343377025735864296579448433037675645542066726903764409100792713306342385326868222325656709018540471536836243802440361463120827502929728330911286334836005095439931756195260934587516500819195307861971016072356445226064447601177438950270559889606510567209145481796597366563867210645320998791278101009203281222958805075991684582825000562399783273128140073450565061587676707643365106875372613634538459092448769346274512538563920806710444661483400938298631196891691076364576511333461277717694715523878416324866792462431092951855158727392599505927986405663022615384919274672800922119056688289398224977866931502426523015760857830052765806310520078529238193545613811471944815219319588270460420627076748288065862829568506403310788162544414700820762929538397068778678437034748039130599718640407361091715616985699386752239832075712392481425043915343519367801584829639522571582701102284160010887227685482867224495475575204453931095803881569062896606362474797916588079625482010978354670678326518155675091566200292239788041902755962593873577103883132482017308426837793105209663748427785744724832276260252167246643365351592726342448519097584457047838538486054490119643991284519809579831739504188393828718987367041214194287885258246907736438101018721696184448684395613639264761265397988656164763823269355210575463075834809100552473986818087555362245448623753777217796797953853320712246894777385413264848642722923852574960828920300494646152526152296059332849835823616730718719960504512637998593724925295951211091530703440888546717431092586986553554050443234116980520964523695363882908837304733450963767477485885475928816969694186566780468093075004996593119786386956110110274907889263913590690175633908721643613117982520372470062593336937742753325302970841008364733403035112803540438638427180587759851536259032926698365164104120955978803884494680912940199974979461749557485160831209347236712918853734366952721655548096158380046238755461620249853129250412510382689362773853607666142595635166587702247739918812722529565748378015766697272640474536305714310555784958717956734859251353248165544808755276367335177194022963230938799672143341286958246095834660663892858634638823116907638332050660970555424831292580166305858651850836129796093892328945090315388124478072525373827486062562039800837221138373850146478614514170809344610395808757966849263091822740038860993396663120613205080467777766535648990818407321716546054920974838554255668029990324274126475525479057639650061373003175368460155745437717287362659543825083662213606798082928019535152230806105113497056423033940677182766935982227999025568261539693898778129568765811898100857073888575368654811016412040053995763738573200991972934334960210058965748567072162348746958473240936013684882042599452355461718536277511574049742888450602146156327754692491071113242636936131552321118324063962650860872326992104910076790072241187324103436702987072478682600469160355559585040119348924697026033273879828567824572526705115227240324181289504595566232112137229567606365685341205907045983895000238165482621148997084600616121043897141583898290948765975597058095388940466662317648056656992181105715538147494159495524915960742445430099784770335987835255992879242994984408290020571303825629857321321834367333602864894852930497129129463785170859917018505896385176975459633307666270053840334457694563453083898311320369555910672857025551566036062829345522357732874393815504521181049741003388711821076440345864162010549415640587581714045733237765503357122098255693360518928061369581363350465983896042068881586613467238074011344058266813803183676055663583327868974084506073968673625848361145389801751384221994073235249875198737706066861954377889738228174097433830740580735907950904219023198703409785558044114002120054770583973090056046347746404630938880790928087839037240155543138214066681829341850648957055923910267223620341454674791705927853550835816629023434808407471655520146040321286502035520630887855457054361052269675244596474448752522465746594950428837856684426097682340842154805843873299588327023454100574856043707198604590849898861038122810417002572043636346595038464009790851106118300380795042460661815035783442772355477780750292686071007740593697346174621892510132577610126095225771046836234172421643820251430470300989512795329427266551312744774555266312417049336990632131546304425005225386160279631641441802151253530949467048317599609279812696711337963043356333061176887279969652560844582496138337366839698580206021389637933533845575601035000989153411672889299999741533538703583627600688874681561318119633660309530560536826749478736030735032667304587792718141258617632994364049285521437505404653803477443411019177086798781977254261752658717394880508986210154962603878505587958907678264255128801364026452107999575206474912664807847435983512550195121296344721356722073159035142580130789035848162099716410015760528249267901906535595659874777826135966302702144804502134626731430517608579220907336133871202869481014600488000872762537787709342838201869809185977267547148065836638819532038905541449459103506542540090897281819931603738676953714808434928010944096058201355285726541378712750949220341049326387654410334622280498487157811656617656063512862665337071239920405051368601400998899163227636146623130970136511063657089497009166296571855834427394924996787866852426318092719755552961946333354903452324762977265873993355707882901944880456712396534684560539459171887009108232760499247442874946603974710775458703160593789663115953652161866498546995521981715674186474258423344296774119824909372318773532915816328620377774559044958451838874469599388880765977275580410847598065160423933097852564664537471864246198871355462627217037431787203408623671482899735534330165200624551573824162777339420296261809742779188995743372704004600767572764717378633723191984089943087847247245671946922291358738715666851999980919653599407587195401176588543947317669689872161386413798655461038376352203639690549789633258682894723907515209154399534230860629212047116527326718194059646384613295255971819740833002272633972995705742044139179923974556797910625483444928021914810050568997872223025532268806599321247199554601379046537129378199793905530963687674730545673368044085680084370319563018637806836405917281529527923515761013037120546747165991684312109996475157613934121361232176679678662929855218745237913375773200860172716894328486627971288940136984517096599955743549366434683739871232530229447209183979787743501218711954885548964936301976825929710879542620602727055284070350297826056430864551401814300719378655231763700537148538441834437603874715360169723788359802161751344418066484110317610030433237785150600439253438196488099784287901602200903467445095613626406825996461331241173426476480968038717894620278053455978844141117907624374154257701634308942519191403302674723553046250460475807638566017260466660564130718054694954905866903604877549107672610057626840110175710545945810632048676352570412351436435054923155742268852938105348483814238748533688087558758844977925276470966085513825898070093734257159364851291630386624326117120581893733828337755572767225419851443865869346071865030540703264241612990708557062423512787113803308465744229297922139761542675141243509188543428697368918247914603271304023556289217136371221954388476809728521495331330823565785655111546760838645589210789445368520741052101767459517345078274149981893771568116067265044038131634566042651383624626466943272149331553592541489481302739323746978817193897107956699000186333648898844003712912677259556103152428324525223151246668719255938282657217874725383081032186984758892384449530032899710527427081024527982138789479190103465613741452837559513175903613431851622517959851144650494276496220327044586818701440204126475561692287005635265579460479485378404197104217627569683796297767944633334509824131229055814764602015197971913217028933047513820995358278601977655055940240390735052494409217073764325013508357251146987926608479967851858069745095459527457648782607895171800243479268398725447740049213642626886270627356463168733378285349589272602130139349693850245897461608690444101221808642603928260452269314780790556769741255443143812170866290435999001419975066379479975197452867975750200900699560878071962141184815118988062094599585250631244058708975018400516437260315355637807457352714968175563807007974277080490325329779312031099507465879355703943561093076558573707449918545698374850639146585676235357620064028440806836452660126315590044701161601269633294211980269228405747334258180606145220671357959646420625468001009994917473393789801276534995645812716007613725292936731661342632871227589514547415783194956649212014140956142795324565037008620387232544050699992600430723502651812173166876897105568968738816483811795956649815152567434934640522791394887944298356694872521835857380544256805774538049128571316073084253947545456201973178647174342942076678929329382597970287214675406874940523468418161759745743632794664393795102960381900396302198669654506396644958804811546312832752241391859655165450414785424863450487256105582026701939087515503236012801648441159524299191469729096882942004170349070931610048598074192756068373219898157882247557600707674382691269283299587446503978916054220560712019198123267332523342120104286497786561863609706609577874654339297740934763963723121630472476227859463176184121821678856900121030483169660972382049401346146047314948019144600278541458740149826782764377768089194803955258113108662191802312418279001832790062690465958759149844964621028210625465143434139212201176481413729337824817189285544424603066430087053941488369650562154691969694627894578791858964608824774467104388113707843728877593148420026788048719032902806920103183580116530099940679889960431503803066203327328749941246153951645302330002457222598438109355601571280597820453246610458991120380532658254530578905843424467328217552882394675787531286976669681607249348399936102193593607238301441183414435124834777656720048648834348637895114370014042787942995640487487849601762485084200248098261812544934675182267547612288071805077732037911790840384807061803468992699470824538281241190857157349095200476838286740746413593151685312349893041221775546249828092566134430310478503254176919957425183427330781489877311653369197949676931489596257495214856071470463221304711519266969493924020368096394383816517554669498607861354608350089708736354585502689382058393156180137244521160938914272986982047851519017127470548863949029221419632494267633852004027077514570209556235624776099668915582500442713579740478535051888826323246202423729767211152927395035570207077482354886985405088349552940251170412746702538625510356566984229786779547252951236553346194948421858912308131936114465859720962292068148697500271437502682216627658152128376698194654820334848223134094869669261353043047028652423192983235031025558140636427393120076846275661168411460664605356333856012793099387741671276441595616780096884363700300505957690420931655682753719220870256808678207422413370906560117099888732512004771298314447082976223983093669992959540215930931572621318445817896105732435510884975093706355028641640734315008854823587412375548354311664346625505148460957868387712905037805669261707362880513573310926464707038709073325350427817456127702848370582947650833983297141647382483130384177598838232985030196492741823159286389188883495899770783885085616730129009008458722586076010080812369081872074885410815781224402753807825156608528501079623192268127237746150441512808615230600772880350006796657937439399934238262946160804913980005346353531444518606898069527789687402287347286088169756874918275863904590435446711483347717553648019442682740874756486987219727636504145781447834963342175707598762401131416100576413674704858878062053968121021992038438285559867611416170676085509989664528357326056145344329865179590758272857084993751068350867355879127858669874216281642938918493422508610659509644942450063966876520454504271863140847672718805957585098375666315892095638971309320801541027137954195035488729935627424559894656155493365755125114456934601886244373201878610396715130607454826235988938863443256036309243729089077092058611108899758331975303422196617857736014646452559517844156070257369653193560253543444453656355372357371235971363468850799224561974511145591689268748353904448199359910278794995823510605581452508342251706095743079032993331951924249572540483407518892130578071815928508015595666150940192389109628997273020701265218573599975601262084308529480103538647860873491087340182047303674013182130539546669549273996438869596730179707472928761043574381600661703096561127078316138369730478651903666280745807151317892889965823873083917995516446700972042394050112670478387073979076546793201750899808370818323582534430006010069634906695777827240946786544573872387835052209925225765466473962633318315135011655844411598766268776298740521631309377334889449318800364759117030615355422081854119535702008384254928776009329036857889544535747125254989529453203580433142730829984265021114409032348969806981549179066492458683326569028144988635730856150808822945922241378047882378956076895852390741949215872176656484896567174188550557661947483946641355531902348981967037020275268351501684006012272273585958074173574164753139366814910073634109240343474881292964769792055497620820042828813721858050702497923333011354795469859692982211522199152544149405188987847793223923872951861328818993373483731979105771569778735555327075756036714347322850386670817862828666994474918127845585915734516736788961870713687532626961432510564581981606002921311110937976901155847658463087410481414746469405060130364049365777615180916236128884886393291553203987339315974168381177622787889864025820422994600251069068587960291137705755570152458289901403722054822777771669969628038393699100227753175253122914827818300151559246689910199300361235487859717028368810052651411208426521939914694262261274689960023484379467283626229419322472508636172567281498741593811592971862529217508093428761424773791885960470464672300004198324591483434503575357211044465863226067390846842383764918175386618443850220743164789060232096294135085172844066541611276420870786734673054506667421800294361152126740998652715097504197881332966676911965971833400840825371611158817081117181090150112208810199612681916333729420185655234507250633154814949410105105750824071909344504052833291456542905931480971159595277948992167619920080066088526429386783860868654121161542745490736223106186273697354105496332736877501759381241524973292165317067983523997090550471375307653443338394942895211768164163266913742743690905613078277338116380829344262875674605559232031999611342704940667036738391590073985587481843986857757585604692078589931724361942157577591398317704579732991418407118663455281805177460019767805680893521060702395370020262621726599523994775947232602225466408328987486736480445140779620265817663602705884530010849046663762214218656157364806894796135562686135246028261740151467366544416302971867798771371677700248491552227479266935141632683205008679613332211712064279735588315825190412907904137410449253462522826851147078218028384873250097181993755326009941563926917900430502995340040686541264177164419012593760156691568585485190944664174756101643820243989579603697415640723217031839962242733760274041587656427994814078362796075736672922638165784453774263589225859063711481310563796371059550834735877527142878915025764065684700837767145821267339594422169573346169513009894106011011493300551707257074248977251805293652216863126456698654375234936145274258927768957998951790744858555900222359743213851927263812766772846666091417123711585500916021799067158467681427580526943302200849616452117326405506246059677069518099409244941925168551133941392805269636769782411519074503613971313234665574835035432872184786015180780763894699815356193256051990028566115454415049956488968164582035068878331796013609996489657341526131506382328046279163704796866657774453967557153207452867638423412468518703907787751785763518942641188081651245683502085721826627937316322634111907721312631727117039453081381703732311909199814192966783219797251529097956827906612453733249638871724361898206948690981726825782941431560150181336680111062454265547517257754273883708970523868656884771973129309623313534653813948564954932267079891103859330118020663231544191746868785744536353325862806037037877712668832800011110119795242710639188969569018631573410797532141074044100306831190849623852349846340024353221970942235397902876262302089568086709984401055223688882419575075993475121279295741130365580631260477919258921371748984601783079597357830288103674837371932047735470747435606206443840150118387395854413718544718115875595766107074838364905862399037439063628313887216049723163756665831373274332449932264940001610817869709213652852447720372905992468844767897043664190361499768824637399243702636948013350956130855695625615813725225982296706472994314296452447392152309577216190891221437750649201291738651370509933035988010530889689547128912443751822291689515266504223563984950975917611180357800459430142070381512414721091834538652907115299854382487879597383721993623430811113091453155296193054426458744372821535419001637936872747856432753573947909842728830386285312859455004436125519391582448109060061983338800833340038585249493243794948249213176598045543133911517577982848444676030220539811727535389983838566786347078326404306136027117926036856989032725390794397832498308755547290275005673061797527191286670709095529397459210451245971444762412086269282929290297579068017545671229819012276285559125947913143158361767460693106761058890315572745380418183673291456568541356096046977852291008616028001793359454435428261372936196424679452934819388825028991662622820229901037769726710862121301110987830245369986425005625927963988161273266736517888344951242672918510299578441630008002875779562745019607530689040118360539545237107404194017186282456281075184127193090660470041044708449007020298284238506299380623704876447032719722157397698449888694428906536614559321249267304628532887611404453666411753827487573208587880122808436210158377034195792801882966097241989305975132801231059543806164268503700759339546151454872939381994112297368448435824492380463541124392133389859769462567180007463313888938480971264389493890172940573976426978670725002229604471102175303269244572719481013717322665580210206878481956133776667322863499751696001600733642654476152808360913497213972567132705498007521699599756640981853085619349741866989108443147421108706759753706148337149452625431543473871934436008906664662233901822109923159669246559367901743361906038770847307437740922349254057652885685326597185735123759356520668133662721410919134775404958445969447503476294011512425001860010049967206980220274508700424395658147958135768122687366899217725999205699944913423435473109935981048573440927067700274156070910312301299850148658409186940123641994168817891461396480954701001360834027513621312043109220085817314504613917945209010333831334046580692135902079791809462955942408749319620589159632678950467985017678373513490240722122847427176483959655822361968849866958408883931088403890368484538044520040475617255666009425176361541518635425602408696114460931603610506866111316619850672835316750454494215044539047850452222614596612455040066168789701275129874956917897557397567593285629896118360728788527415695545284699519481790284157860829808792732229740294348517120891933260078824746159388027606603291786395362042455514080085906395687255660717168474108401674696629312062808604840622993884764306559921570114021898193095651573592509999823506673184688552582707978147001202038283869921095266324178891350582742103682108202864701996899139867933670098031413576539515287846295693359629527086226514219121542453200759427646236017140751332527522473718330841480912336193433696166664796934306869407189106072927008240420733534463290932974028805271572699666672135822120519258557783249011610611599884786704327875921018665827672634135725182795056973126731991493376383997729182598097884031125932701173826220820669406607094236107815768146414560390651932489427752559036887768575000018948016413515426809794989047197745386509545778731077308915563015921696494260462589256776823308433974008991519074403927589187490037338550157045366278138889507664482531861833454244376701801928816767569165915013096100229485096182904856999186327846947558441418700152029036676662667518175412225536733791762411867626099526519667455129711427571370876848166835529526711353558415793459209405324112123601209629099972238710720717097636210879839727087624007225930182189076214634716002473800623025731823515440876244531419492677365941517361224149401101382186648222329784694474055963120440928373750855737132155209244422884559208305650124226714941671712569741790819215833860400331953849347370560208160500712156743040630282988439690946158914481557903091984092574102001493758798217350608757093882410708058474299568479808428923663718135807736236950308113372031262910623829879721450553536171842739727344508730361094051439592365341995765756513445238060934800399541332415695892527388202783668304740825966077153973509544209601643477938287412623359820141195262106293334919399613806947347803615591389194656933775104516113511652820714029377859774603918252755462928444742764745281194659826657950697143335281694989134619380349461538375586679915521588432876983096414879421207166977058784801363146865520150695403983950552724814040519024445699649912550122818855529557263077106769506191824738320962653415980563225408148001937142255892678574066629195153408898987266296995422187714697902086557973521921084537187212001160496639846426634011130905860147031216040715327815487024738092610479505829099564015429781034428894046087567219190521740267028342236367603082649753959640685250446331911072029590296040069401321862254672830624054517017871805469269608491573533026005176063496426951704777484062086203025745211246186746074736945895399140298203983333734980404118597815855222497913843244534026933053773218155578084352688492152022161318454857184190527577393082212294008277607105773346395218456242792444583794165437240012694099494070814585327374686044779139384917475037269765111465679691022969428644526800979315448898861987482868420034191496820588014109878326814936190988509269567627246615789191641201781591785287407571321679459133213885250142182012824749804100208367611844303956144562945985041987183710313065911253603493991293225233163485533806654244936926916276374944821283969175376522129454283211207710219977529420489142822282701748908780026815556066410902947114389740265653446221977402392611264020645449660105491153016936137011945556119126882899184279732621506892179596982845677412669949567417257973112115426882021709978320513534842986036890409603773096807994944144573793173296136377795100521301761207824067707800648075929451622310421325518480913858963357356007511616240333436893717173899757718618857097694377805912389845260317878566419099555277871909774547788132239939433532631595884923884698395930523556730323302062915590707290430541630103898804708920800840885544384990524795549698838231758531938385746801773127231790758079686628020766140211900336584388885888003660176115125874216891621805744849731674342435568218016305432483843042368313552153076322651077799659759884130336839337499125945112234257807208910443324177226824757821164335086147950384314299289937936675635786701006559154559126689759314886247232856510583183896689856622988702973189711676593493166831630217781131589039385459787809939437365911121382077006993801008948893690757044596095762865226712285706583587847238747949255071117613966829914502329066928282544379274055265625079998889743967713296612499643498363284062322006326767935235385823749303736685757103452327745137801270192114656141263460040748946396610393970465612352633656104529684869793807603239182227611239978749575599161759548719005769036292817897919345125221685806799535213639265406720414494758784380345409009947145863885824576846420443428005099974056856521356064447152434042388038033822268166700687517655737519841581351754620454018543475741648076372032249627468743706906445293410236576230019280550172039191023350752799553354312757120173743335878241722137191846253984716146933066288731767573684070214536912198980487162205479107676801637728508030704302145853483281790547406826969321396014177130501543228498280084968585133869034215284868655844078031516549597224042442017426738650657227939104658990542008502769970851395642754858760682877486799958076705729724825523122905408641665168599918196778922271964693132517203404775469439302963292170453405691348729845435934504893677928960532618540376783246972629049785336266355801880131839801975599483224019520991571387089907129168546463689893863488323689283442683912814504476668315234817956174004493950578886734671598719332265458867570446397921765960965372609742330539130050750230576896123749531523252647992101116532978305942977914041911708941669478488677754774661415778343431621084833100156742091828247777001901032830781887637416025924758601898044340236202545544000999451185499968957059120276951900427113814794327732914720464921950468367989979651498106677513563751541708887743398685468126101744577504422364143760812304622704487073001355646025596740750244524889065228696357382940832207684525298340774541665738039842927114438900490913436548216056357765271957665486511512385643034920001290526565993678534367361470302383782515238932071684603601086902114469309162859029228608253734757728207700419785618340877455024845059897226005676068340777447858170194575950504616311920762250679070384613881358570634666636528681648333115666623311275685833299440222138790474450887953414619293546587976535736448650749658746375081164744131813348701963714600619774240327732719805344604673503383578555156023514869213726908578276141562056940178857401955695794114887893152744610342158842775040785302912584853468961192505490357508364904524588221683979903022332465435077974020642755110776637456718874895845151955762584931530129753981016457965593425422385442573802090945944093409942630477986809340651013088720113425148409620937813587507103101535443291001955528934718026659238770759165522923830395985888257894616576721996175982651938830670119918105950332055387281797065199772106289522633120679169622893854324995179474909915650079993093982557629610165062118434648482514545516493473766064804226267119401930233072759959685825373479525024957499791375203616535133785860164069256291467699162507292227215540867754713078176711794329187804710840597471163918910924503836807717035649952797456341171592018455149725487041159794282866924868113521630794195209582853551453009238028125038227187541299471499176989088372659579020953849046920542013412544396094085989968624202555354156560366880582489414994239311741028471848830936065953665976837731644399797016853962623545047663501776454021164819177020617070465619081238848021693844965890174662264915387530107408248126082575408163866445238850241660164980722861114468989246409632208447755685517051533035886939643317884206921864627479415471484309920714986089813219038383588873393242624769685578638631979866932998939076072103259526872696319848631084884365644144052689625620587302433474023748210299502492191599509061069809567825731410362628129588100607762901508505977302005186502610822706571593996874180174609572767028580387865298539245308923105445547831177575694170662403050487111387671230987366242959045498926240038724589399111406308189858734916838406993854316085813151351699835187138974296426176673352768968649232107929183731454105981091803679126502191654334416305925787305569333447436518497248639491675097646799723658548337843090095278918214930582428162325808031522366394733614081329675394445036497958661269659992273631821199118658948424533176038488505536902543678688078595251551146294423157393657970025571182373392152905765853450013887865270492965968921230378335710585553831179995083076823134556661934950893836963190667364487971478743887624588822466042651305514274363814437590389660328377082216445137711668645655273444509734271424628311734969682818939039905832742742057692635088885263085830449228972738196433679980052353805990723792429903207858023665100141486743128363784917225812893857373890694978003082692418094769861234044882536260068599273045943073419083774679267217399341212545530411624023903018598527833514775084177559460125878776852973151241482484350874399627314128989443487998723841983463098087251582167930651128019697127726793374283441762710830106948886483935148712376928826662746269690934081464281446094535196702312492580584196912226247308876503521231747611712202689741247733305291253888068872522275452473355354662575385939851519887731364020993424696525503581748724975279565803405017144604731998522806544144513128218390382055570353642515556481794095216747874314461885974327289908940784316373378245788162511760042212649622455161046463380267181192902226114945863866548676940779793982238398451558818376983549359914030423313066890886749800236459490095889668745731517298301901839196426603840610086199655999133476827441181522408465377126759697958509842717765847584089329647957783486732090533978875715777686364418860684935671580738769447533044157488242268169452195223456200014585535808804588791958798477591267082329558216961383492153278498312447646119973893144284977119884336641399384641237487453431934132599099479514126563014878323282353189964812937906518904230216328679572472973564783596680608465401341152476218718089375193138354930360519334004338308550553093931010883203484545508232301071226426694119532777010104177053935193706673333598244706898597935731222096713861046729955202714603696712011378108368276180674389303292540084383565702623217320802419052947205670377194607067967965565620998540120011537217831365951655505484810211301830214185554513183116072749461779635844464947812594936617456283211171047939878801584230142172403528027262744634485909829286357897614456142488118370713172708460137073912367632155445725980837121118669110051214730847797487298416867162684890734621923768820860014866205717659391727108854279012018113816242422802113227677450199798343461790009941070852497709413550961941990471006072022639463000839284577946735339546887491232669204391607821062419392399157598455428700764331303760032452499967682332441044752856349278286325814653397582428185170568883299757936719692555778338294969341725502874861502257669423054328790791453754921202369973793903263861479937202846842678465772273911437718822579291810660478105883599838853683469709337880016882635498318681323919065141739445899519302382976567050908175892018477791668596960470948636646988486882185623587740859151932250795304311682252514079678257840629519775701837673174403402317346023163022153063610828109140365661376160196931356519578986472619474969205214936189292749509178127593717165682657083428327056585688491547999822364030258074712821767010097937350916436594098735467300538378421695587436497246680302206639695033449464607100296241725198280677548216378472891019544452912883819061721481084037219255274027709488582364962257396743700430013605807216829165948412967943900223019628070681923860742988482276877203268228018024486816524005919683522955919834299559526292132948056932210147465563322917556235802090898039920857989751804430979036338373270316961880004098938985625515983737080612299796659968276471114685494188514424200373945262093501433892952381182618903351683521091267611181071738155381521575908905166395505297304917438390548104848167718911228365840135102144521174598128106896816238854404763607700136878619955470934656115635975074325602105383967971058964579129608703882316156602292342997629140091529450682932773870618825343862687564665564428176296309210167706768148251936588150933497635864038328474306376725889367644374292639023201114025392839213079078212900257747730856853430408859078933738898292582508680639922823567857468835550761505791599395967246828549371377931809711984752036403856253108766003315014061424788021797991195605719429069858453459265685059868172794005463965852600112535667250772881342587127231162925150026494200069632092589467026779977602046611259879225172209080050752195266646135806167204578260685151849665851713412217290182177931042690092916488946020631175173907094527002275846689162025125149379472661472736841483400655352592098077536187954711578984514042376178667370817964653935976932694057124979661717717834960233569556384023881681484874243576942914582728929363883646971951575886741898260805136021515456574128886463317992171927186376199473014650052074873582074875320400781933655071593622298754708936461630758602241156965224123756959685098177823377746096893698866667108860919793368340322265185701843697217120879486625852292490006207053679898149625026400575088205049109450044044676662048108146686162622891674965065597644318980041084215241324851338855538363080398796684670233830184142506010012264539198867432453309160848832777995678372018856989942038549811446008130464590227803008773486076112094580330481728174187240994901793483740728060186231167029539296544652445337986561641120166855754490496616364046284354625249656290318153818768498912650359043240332068351676679466320491167782193104010004045485027041084160926267945217206774184818485524883673391594189219043120828298717275090629986544295221957424715340941062622946897740052190868054404686260366719957693523457866293125548814008457500547798672107275366300791127008808635221860972843405658345096273177834874274775065451672545227301421466657152476277003216725190701496881180293531784429517463625576688281825440631452012038718223538496787197668758723392566729688633757221561595932942046452718704517273621909651069711730143449846839094921789618963596922941591852066085105282924917887517990114471269257040532125994730066236703257221281899608660291393441043595910423203549528799497941950669606937114354889931472517623325463000822775489836855433580331460103746675240458624754255381424714533275821123595736936360078094360224601419836260388083638048886235444985478456266044551271785283224853636284544972422470683767471659721353822599911119692558431409054975600364663178342311714928241617445169461525975122501994341327743520801830274481326606535441283344327747587324865091261898047504081535118707331756180896838217944535876583215442650599213968822452418357447119885510991431774078507473223165420197752530001208232573374409117084317017679087020708938030161578785503308370179425926869905050551121614853430373266390246135015466896089643794763973115508806738227303526095881837401312405652591613534437652642313358940944479620671538932114438946160263349798223408300757860113833211506305283301664936984199339489987035990090840359996675066806047288609574807549739615537705112170579495753706554084165200289847135026697176942505979989708923972421429654918560085279773053265582350555758207401312859508959128324219812385660962662262641754689990081485302368023341421411948293004236497549158175027131184139171769977262523250540810668508511518866281383948866729146395414986641679756226197568225950732512723687421673619779756875031690391671913426383448694289144075247747351181988772562578800483389921487930288391178125966235196944411129030678107205840081954506141745730379167997856162071538109778164823210779580693960358048746886493528823167019100917941610456291948155827093100741632580071689762803892111926224829207519412232842812044042377153927662669480951123080635157726656144281501070033241867864598065768961648028614242085899826443378260449558004127265908469484761460215992004339885133739227665727255575334788526118811169945974919718671275869342384556261187661398290132517533509597655356076916115786426468388669713275605892367178339402681590811495875530796319136303236040428444427628830189561201165531684561785413744024217345623502641687497102747201006357249529077089621907613244288963896252166574777864655859962957497060132883453748436011031887383075496208016515458151862746755408340646225143872436088415456757921370248924829426318381540453109719464296462295076517530730470039036688528114634123583305341547908843676637724894886230054618798862001312483622161426295799641241222295919926383299847882143078678647342022094120159891043990641149457472411696076316947617209598447504879339865420394155468670919146324656162941254663717082097636816557751810791248816224818338056008381814618035334796197429848649351636574712286169682789396464622311701509597313977982146751260018709089049063669079776011360311179165457611922185072788306065196227468781927886041221556337530049700540341675521763418750736136428288713404687168288930568934129868439489421165432346587825195791540070742371550359515683828217782181098808206752085209386446255110851335572855259290545050822651161673987611605159105033770665855853792101706637411184286990539991972032795543537360326279406049632356193039769672327170398661325485343101436814562270604019720282738741641099531324592776039586770918283317767007053801236048497061535064039457468631613586334720970348207067449543706296019954627219822517405731527893552508255164776856426017492080256665032532043738920369325642397152578689338861146145018647058043633695097394376462040160543827532647273996213626945634257894588849937705075874977738036889256153451283261449500582027100148901729616524521681060272010294915829424426368051285170527539719013057274877802845002668635003218569032664073857499228528486904533078077576996267772054006643034420069282611420280347188231361368035633138343477578078062243139496423568547030281987489634881884727633903435212067631355265519359927202511986675670956317300319727585989927356342210656956520020761503102575693999509194889138086129354817331020664534697346989661342918292469614621102475081516344967530618769683308661777431670234598606691230445373935427272687900975762919332783878226018785940150092718400628555091674853610138490123549788525696860904564054413209724988837263011169511565405761011353687105141809757054452087278538186661760830963988295932548835620531873734148794447873925359652625341419009115828469988452148062459889454192111478712660392338404022345954209156355081570618622266967831764781950151520347198359710316173377779925620114310802435731085670591961909048240695949787380511095536634165610762084974715706080385767877818946182032615751672290327226372113030506701682663098147515758052843992515027652385669279450354877421171455127111833547205000915423329971520073113866256474540615032367226591666146211377237670394294149358800877289322211897266524026903948964384946102619559542871812365976270839530958158814947382692044064439194495984511740716471946769468329323476073693392577910518665848529307030783197605802764176613140835177453004828158350117964350839597896977138689695599216492473817750936406792393419970014290959438709033941270477283615323092596976504389081694894558891470816113197358493072979246508825423190360471862522490211798977144035604069078541595722680900143271983947230149126420335870314465373266717452342439953540461353180526381948228098947799437308456158242349722335838135680450264829079649528937880761867136336731079178445060615937808818893999033721686497901908819802102161001448611493379664195746582546554669730733868073205521812530541580995523577556064858523837515522456067335801865496806192919279796669228062768169020482618902593907574284408424872807584405536285330153182375935259292233881358126539468166773619147464187303195355653145976158710381617593169786184402767291849169887394084308107762288875963142863804216045326852541997276832308411563424369439867329427421765272374883678516240660799921013205667306946693733018793444028386609468248021597371761749712970663522629709455018382942838051098552844282526552331639641489661074675233088984793879299788509468813585441849261272325000701374712157788785824785249020161046192241019425155980636133889508980442694270315350721245932737587844321546991388279437941774396753962765752685465422904784096513537885058237879415339838991753366876849251195121256624653289514107860302395314459988386964060543318539731151139588645646284394989088363910005515236451171678844439737531570875027701749385176988683294860530085304581597567851775711282425987166832998732445249947875738326972010465160079544304168386213714720798959069164160997093384707862094157940385152943081011009745198043474909823278682387720829680521044490072341548539918468800441202814610476672253025463058203675992553698562983149256171147354568440886023301563255130335824883831707198568527735824399638821589128418057749745561690950393396133164847572024615986640728193873506046564301537654429673886583033437285700035327114756407166929023517532054214174900659213174819970862177331898642963670907602888054332422045753334162042633497665441080887362167043686827316260776333225846671888564260779123011999231334658904509482975494462435569812293665164988368043173445953871683926478258442430358486667221960522020346864902580196588546596026733380962288964481534564293403433385303333929530416211017216519105525555518413429836030661252041952330500516843600263363490229718766929697931182149362427227304018754419216620923569232865125795371141077752928006881499072115611031756093063297680852445393005884674824382366087629502163925974779549411003699507485019869260631999618721508904196777419254956151263816188418826842242150739668060859242123586664432807297784113078974250238780892014078741980480760526175207973874336470654811893685768581017986178612596560496212704110662276493278112338319657350898322877659986379095179129680553912093159575821905870478193266789344356542296414594373399449028155749699516958407196985684422227910679536863245690369342294436386898226974985361333483828779448640870761182027039318771671026288804473234894838915824913440962205128902026864561101729577878478229930419749424895962386199127592388973579259556719190901281312511652157975843205387856009041578154823884252923502496928165329234446512494851641318369185519216742644059237115250048888638299117838821840711466026131501456557605540045454077203752754169607047332644481591278543326143618125034356205141929905877141316495002685434418048394452387416393439464495657112769607624741140778505057798659622009392488878883981426145732920716618663957237205693735441689893065724607804995975295450627486630841565031199578391848285379732899066292392006153882074027262614104153937041227158916834403405154190589005360948302992238458940278512984617511689313764207797953425293100715793193089089764788744858022895569911220189572094437990115728500240383641999992762208610973382694667037727419498350491700086503309789443862590419452782498899572535892802565877246460681695500559143230885930044500951429777867789355051321812032434737211760330285378860895965205781157777646925483777008916191395337334997632221502998859670144028170400414235422403121904107422704960821096579513891292213975818194849237503807937359028339826681889032906414059229175921795945135546231657218087370829713391427100407038841055152893508127058612296221657746414505945979936549894962774849420747479641041212171563460936535529343854966707463998578162326508052673423063876711091224259997651446055015386273397447719723386824346831859416966221622129001439674357862758036478243090848180849965694214073233145521638880345217167021815537154439633320803780208057437073788598136127444051638011156791007970709926140117969981570970548089909443598150507480680321300214216345560362042771130685349580647039441895862327990042931934114534627753086121362023106780450154826714314750273415343682699827280386824003164211540950889415408509492005455845050469657954931402070513277387493176940299082183998015133708344213810602960885971624350030578377095542156396854392290421234775310685485811944272700164511253908092933188858736004306321776119785215993215768424498520377279464992806348033520427456350247933810738423318004232475528999616784466161501606505038994028704748346751873950874951127020858951721362475922645980474617118755914923713417498813951671558627362284530968591773419510034897726423354599662749086134157995184526931809970481251198520151661309944935536816530129449999100184297702463505765667402217413011833895460487068728773084627625467509674564948650767369377565766899108720183517495190327990318071038682554289637275014518936928340634081933012965077426665173574188410096160046525918684384010686472506087237785682664128147420102283562073336529667131871971701221113296776065469235215202463230220949167862351129413523757292551621689692196037221802906693937089865206062538807565941108437019949662513651086745391448429280399694055639188307345578894825443296040800210905525135366579630747002148240356754788564252041727741050655530521270021127428548595001455559960742129671486893678910503937038601254082632111549670507697829839235683943978613764131439330081491418043028392476957806201093858736714053115852566806330504653233379555329715942945663684974845620647708360268439756758076346808713200866833444418362607853904755584725593417803478021834593074191254764489893892444777491323373358801335979060030997560681732973933983399679230335662504949749348682533884006034722514907012660653688226955020417517002207055959852390543052750927608661549374970902211101514754445369440235430910545430541778961579768584314475175038882000015947707322080553196948350973622605739344166600160605562619791035344591677687963510073832779171922296951055349466773475227547885396238099222121932307203184535362436389972916232909798891166363069243255537858036394522759953435260506144242158531605566260072886483804436734372695318650391336841450305970894759849197198570560439552061328432207421996384350444186591430489037778619714647827470968088626478050136571909868003944405224938067693290674961071037935866306374060516896211686444635426159434120019854943643306459311425706771000485140421063252707606368444811895840590313018922257911738873569439231831746102197465813242896718228169759359953013216899460708990389625032169927503734088351032240565314107967174472732578387971931666656971623036031512350197946473801469587888562246175522206763745590379210990693367142064716225270039801536697735200074325909850923538938261276440162663599693023415653731372797198001249320210390614126140294049944176309619591569821802463032477383668728091001912266579250270527802331464305612975050986067220756325773212043620868056387270505430006353579276361563000781085282848429921511694201265305311079452811895026702341016525537274323904222183467055974640228862529745359197194894104119657835273607260910765613310312436624427496258187507491411876931519932710738525435052505504100264710741846444243544690953552445117476127711067047680661145993762263700026090323462156089573977155449874738520068645613501398442685769240276877993382118901495647818725447365533700991175902693548815558439406654422331359257077521005500506324557957848542795272200368317239036709841876575259101396026722233965657962917833073069726010486056865659992323784990366376660090281308034804736644654915518548166544618670161214524177326233267232738586061807751877229069399352778213249391742734491843075040060014771936317863913765598004823501255535419542841178647402287047229150274714526298598485745470548098554147410103297506085726753950704744650318753592462426905107242724729559733747201825683218714194606429406772910699474735398131507819932711410388759007741999161207173704637142891697764527537273968700330097878586266868135881671943804388546907725751843676982951918623475757463161539309048053623108793584749410948039909702677395877165381633888128291706774333049831137464115985051764777742168073902411908202952695630000428259610696762719797690167824024734759560241364879405894443577653690571156581322831667242417368321765171017766465579107823047676930674426353821564759919888143240150724036755615276377317268795755246675899883455143275168381839108954483653051429774247344933275259119616109722191561648970472510170535478819818031162479257880479997078554278356709044025385753871293352391205898061699379921585313232555831796237891263897572514007059928962894039171336484221506384353565826318162504451233053994620253336231030897111573190103286137064739416052056126635807890217984322399895186922426501909725555962464730728747661921593659222726543759360118303168074341548246192736589395194083402583030691445972616742359408830349168661450951306014517674986914301394584927692930971655663996076522456016222937919020249196480917252498157304799151113950098092520663973282814338133974193281253319277742670401772815190026211767366589288536613382712955325224234173155015415525149941888516777619683731402029279700705597632398037190039008032647881125925990345135062278213202750679727677416177776597174072467622675447967606619536059266613446916767169452540991641355287726774263631976485529500571079166698292636757615600963715107092773068248604027621754959925109219274188024497642890739196982894436238273878640664058578830762189007097512833273074823753574127159815613045731258000018404230102480177894258658892726675727112794464875602983505836495780618886984055074118433350494882199198883988718944448468661512805417579212284526283395923417873040398998696211819321707001521915467051653296687942871689790128120797818409870876600449757582640521057772427845759499588504294024567663712161638912982214687505605094553528510402780993500091113456837372763416323619244677089253117616931082960745877317018004926570072916275420307306769288862221380516516953819617526605748550418647026019167845850039047824329393981704245899695157018294492286213751665196638535966826100164746354487474233236430733554267953098447685526466498902008952974122296748177256820437162464514769162507507881097976819650891160201717786542452655713563145956927606752557593212829033843266163591533202892450851739162371031496537302982996731122383867847331081842505549129164186163317466055554536770748530723806302704149388833493084790604033950179918394499710121827646404367172460822848898867003009617979316897663561866324854179668007186230858108299091788904521754852954548242388527178741990319201773168809410834636379103389030231526537180048523359522204163568159039574211051011073256255735893976299241972043212573994446457607047939140393371730939411309366179519485884398332493879040669165682481249798731890586125539977298245300791653342002103415143645405536202027788580690186546459021906917705541834101396544618411371668975375385767637725125148181454737968314632663481962697812797748287847007145415216397202643521725826196163920730140102644732710060296310466009678067856402130479032891750003469980341781975950710587294142125311148035936174483233151685131240330569929098020816728653064198895352123344650237546578419053325525780706288255840976043139567894920668239939721496362696049268887103962604885302033363181894196493835777442567509191573974705529657504675510444544616763514855723222560198928412622667575321075037000975984143540062598922498814474294150413751361664802295615334957987874443409241098269279129663030926809582690744775175841681112928864001023673081445164954758339442065881374374599517457131606878766813087214967302698055094741459158717957350688664829283680128329366164693477178963639254841257631620458540139001403483840682332304801269612489958264299330113325373989169528285597809520799989489840876785481003801812380799022829666465939408651019697684767342158938370472905844861139243436881591931600515417920514722988309813557942734342180140355552675907598542385326994614201408873368372779756186081755635299137324967669074533639184307652317658718020937416600772292895013825272640932704781317178145868617053091974667721702816801520872622783988158286912868058690183051029062055017931360073639355528562510348327654414989842613809658570801225174130504371435846565893874178263348703307659966191955755950255889883349761718960852980054796472076021960049255305052610371848170182771648600609055993637564821336398865285312216577291143656103742571052031212337104427113524818299326070786539992637231227647521529767982525985574603609011134221121485741401143712006148710246446637858331857980483270753815831007114527096340474055279123244764357865122444939993703642824456996817830021171686231363389792085464767084629396206270306005118232560546244828651713979550422874117658383696365324050018319030311740988356735574931118514661366030914443572698405017497938365629245760751253861613115151989469854698609713918112727143750014979789625616386960551884888989197661296709593324009332926669210141010698116083340376997151629642010214721916614566651816412885471692848237883192742329641950612322167592065858562443092353561886843696361232726581360650064803145518271440996944259129669534248806561837978938949042108678783628484487594228619452718974055081404851331754548781313507480736106009417631419241382768938990288467441043373693197712293738319659227519195456502546129479396586910382783175273918116060099098443060822860136273366011162428645519635959130262313818750879701373972466609439744836746920114853795792877731874394944108554388509375076575669934001335250173934867625788592343608561762155191662362502433534327835398248401095855911277103839261156357024226506961791583153389504285782794290001090916260376186329150483481179692390669384857766811042134507163537964864925188632810133292761645288000174291394099465701133437401796378169208852305623114837247938798176061194480173106640226417855354825953087112732520896238463500386628217079208928295549026581558144659208452710462713505813700658936675013404089028641054042919845766804658222056858290753981870898891731657834595099829063660649193583311185953733151518913641594089323618583909653648349253580977124863076085591367031131733085904686814339565763631075423637182453928802887857037834321816796931814912981289823619994926702854263947076497522783455772152553821932402034564228176336933951452707945796625390113957356021678025703462211335190462976436584038845921279188335659984012169499385307780155826095943333337359216814669930855711375112037179586900495529479052677071760343592513690464593900249950704958628052662311249134918353203724579844663409276318175470634889863335116863690148115417923598336725367687894903574937829821744233072848850015747605574444624123956480578248113169074319277688620134746008888178740516105267941389445065537343247261433883645434373515536796997341444329685729765298344319473281270518550785672251090921847369924147177458502042905332804704373057637365592250233553698441584015745983463213326723353303663471065204233722023813931934885512328996752139288620314106789055386391875784226296033611805037806429996470499007674299138861819993364152270784546109044508399886870304030618873982136727684371834502568457747368279674766332989961354080335308758488131203072969406297854094794408194994937854043039445947661067623887274430297315013269728486402101136863636271708941410892439114242402265661254854414222290776249399759089520557872704412051115200203751162991341039196289314120682946656676492252875895672831082170224643128830407986551938797295714617650698934899238847101984649460174670708216145748347091288696622524619289033149241772386602743868960542878301477220795831873723344012311067804758206731658896038326156480636936067889790982043265640593519796396483183687995000980468285871858422565773726576319577526263846372900053691621155504020948825539157242263632094036887351167497104604088742472556479975942125865807096711150303379048013439491985751449535866479020667712877022083124140121121626203752442043695513007671697540344240035747289532133212083096564234324672894937396187808087145524107932654835917594039694093092074979552612194467431098960775712947858111712083690390298807251412846433948001539006612887068458253975723991006255050739319764919019747346838492174441979239189000911313870229440007642111751758738013002496693748872821908596857602192167856053476356046018820759976184018794763700337508700030609791274005412830820953736079365294336698328876754155983306917476392227975882155600766705796843139047120641997530066994204856988686600433272020507435887139679222197275430506036853160591001966073627184822586989878916431999557085025585099241530531028648160194741380232349821701069479513723430860637425012197774641329828386207777608068116076517767828091669623197229580048279422222515876504860572678400643726548248405378643702313962179770887376248648514586263622423044136158194823798369866196387569438267172935220904340902695599505624598801706319181624547217748606288086781083011530140987695101410405565574534372377613162352544493016318585903514371105090367339209240433678595309954913108847870550693358971470091142924629063901213101460869352727490441275551457904002953927720891573943400872052639834056797391076717615423982416482621909987340458707804776764048503575024949684052001679045564580555383572629540613441188170673939435075814129062334094399585928615211331095505031892086471808052637510971569064565349489344418319094337812984779303070200753822882020041291943288412151027541994749288219374008336455996559843692137207624590441379448149198294731654069431639682627128401461561892870971839297707437122567812739516349848420209179292495774007816269434185966401097584988342202566640768808208744614401829150293267476190631461220421379056144720243476212456874966480416814234846027581462872649000689768705964991988938492165359122450891359033896668049980413719705346688274558825382954580225503184178151446992598118519849610556021056629810579030738704802426134641523001503436815616953911374248735637096553746374258837978357667960307898457555024883790556829739822408710003482210516842858688241049693370595488246576696108912224705007684082257935130313870587742159828252653845084026151569837811819324465761001917474214811326685917927687162517860561304798170123561675583562303706957292524458235633238490936087994357350788959132102446536616082889141093227856274656265687201492893798359842720544724850969497358531350212247518136730559725418179341290611284623172424668771207297998606517531590207066196285482789225621249783255495127854259232713164739294565294242136851462343049346992582052490035509305028206432553525487249256987122976784571582416116077088641513760808204286162096703477012728107207219392835197744589760130435677007943826724763188036366090295743004736956164825172749886410859636134349982745287528264647615657321808371078227114783501850777539571235488789097789339941002634672511529668857229049274697687716953405375366141021560375150462766318075038296961455378744708606108643074446078475377235826506775023636469237184020877647719734294722296177770249400729795588116185414644579823190644368729642148893998915049286771839247946815985998195026159498332591302475225563802160423945135302143950125258995072841693592193714469965376397875270743992978713796974941591523270073084365681341807933098115582111324175444808580847989660576821339549421312451610767222597555534289440438355512536499158339833030091396665849147345624819537596050122422351733070569192960022713195124397444854769017031918858607868674455915434491052604213127149080512276431978187994828087346051503359192827121993626336342654934193475906002922122485991488118566102674609778241043496163372454021789559251350863325278301124526865134726997912991529640304922168135800747968186803765284708997468373767345297031211577198192368814899213009826842837722206972443135178690169749859913664330660309852628868654127378990895941304121540810677211634446525238180958219129537904554737861182955983730998262220062901483804795387356040105083067923003527732837992014037418265719829695772523531859088822170481761001916013561544073777025811990148875544387725861998154410793714905611800501217447903914070281585740002585245539910768209005177844072570303311802704943598975814807844824680856885452432272148759948968350827347344498893646207122129260978146686012131381932130852894532910037691968870822972291024377185715651976162888221823698992373617027656932087149303692875265476658864951069845190822586187903247139898297470090366900107011062610194717774181046591814561285218627473510172543439716281503188190349100974286857745355884400520629870885280863032683568581070602817886472464767226704062679708747255575775572274154271657837699028523502719909057111446252173993607239805943320566526944350889533417059139708364790488239494182861528045212654841731357989115529247303642902033885602447967949640495821094578050802251849388362926886106747306368496246985579193284175380088635499131750854844934532125859455417766308825706716897110988056934622960040165431658050897701390808193964961756124111054029487454172674032160874254131041027607951276963903861993072680839478232127656358472046573978023559962071184723386230438929062657589133967792557415673910734824275522092068531445293404821428836071122834784089753832230381170778168487441566394420738510345475942303839199642035376591635201833613874556648588679211197127251635240758783007793379191716404872532555362975749417727151506688661832810645176450743610493110746401108613979133207649324082442379062648106511232764972238485800093565492561881906711360804751465901304737770974052797916534467855858937798132651181664094048429202309278656814142757901435091530858645612446495797951242365390190342235412027619655216615338698472710425012916722070239406330268754678842932120474894120467882788705716844764483634614035732867031971504864371646288003489841533124826042361982559847633275480594730446883891608703203363865022185091167153534669745126671221948859591229413748128208566730820575061839448300857742256982932305747744696291394573314272482704188066378368899062187962713968975376459679620080190762895744222948116733388586935240407328481286740578390477557097305054481166095523861621922326201778033860544831488048286976601043218851356513176286353748157043365419723080104136651254402719470319119154620412084013533763401854468686770193841484698523447850950023857795702755139416377551384859237567314914838571776517387469328002209965793380221451078541959284786573937406961937744999290398796684238341338126482820531503642313233031342835262654992019916693992803551980888998390001784209227913566313284823035443838265388058002427941473781380896682038340162129249963865965935675918615736466813281169367442205986155908285351636716306794287418692988968707978665031001371007254940281656308286107496690815328399805429732928206693023834906233297066239135886583446327298820479482801541862605585643691922671880465574848939656164451531294708766974218468470146339676025871238092380312303464346176003320631403581235493677306931831028924730794521931392009474132996655331004716860724691545727473863901561002641259697363558798702906188011884992551047858244559738701944832048422661158888551660214977730422841666233971416135002758501115123812862322235862741247116579564427114015331972547871992541360588848576199096703447297075340958006345249953071321344003554953908766623358303941174430913868060838835002852404170063871164204434662231912971280799483730254499583221367421097463924007401774063442182854574631350282865423137703339180970838902849076149655920678809413500263527478977035685912183697014633338193087875218652887388152959708887391339097517656026782350649222033155341340722117688898932453524720022193666060968506984084382170512345008698972402213644840812601960686983116876243583297619385797422986576272822993034276363007297785509590165772865443963973987120513328822079326749237084937845686684687086274393806872813176119187662822500705504024956227727028601975150467864393115166566089770811988432102540004525853954965739422979466492785315609170286245890571469169991639143464088880342726916708646678598344041698360529866506273433313765980027037649229073344081063333908290493674385071322013021379549074293974780140855250069858719512027996448327239827023124113885641298157794615209920380619253344145087990763123232338336592402922493509042030018270491006941523203653392315080126701346951116867781101052967005701976197845052255739405313400628829695114466635112686173677274626696113025114822500532021076181320449506550418893200244784155074133541876072267639560248015747320441859633738853075954460030598962076889014680632011799457799466225644161727760060493310844470499396633749379523972223791661690535035039643400646944201142850671275180623042798237198136562339737896647057093956655899797275266762151429573600133634999986991932253778008379281262806854145725714136460653568714649729571365281743950911700998777517586780847603596381036281196374675185487490009731725784321328361091916320422846634290532241272345686998113654867824249986519663925995241474308206492219468925624794152639927338791497955334837277394373921973783813241751269400276028631576818390462766372299395150641323217808174643675121031276230792506576522582785823621667147074205492421241946914913948556643156086885713487813942834418732327412935895575418122435238240433580274176650020607399636886887653115986978291256004202989712476748171109652724966234670655918419678005475456445547545943017065471300676620811100014305245034409941786308911476900793562451692824311381738523073501631157725165585922533245329339608427098509949600671867659861276676263273981955993768970242545270534518635293789603873261934675737720301751788959485055780631984852847067613367127408689708019476539021066564254384172959664668414621985123703393740480842521973218686167593246680336602993987741973827127712479746336745499715024405945602417245867651141798721387695310067830415382781630569219833049599264933854081169920301850284175212425608057677252301836143205399053033310258593546928498547763802764231600693564352826070793739492393655286685776229380028536760706391791764619477616405742367369764377837444251319156322618790847686530166791192943257387996244916715355262454366258167951061758318780840580130985558587145262951355318740432930995485827101624594423829119465173210935472571437274243591683909188746257252800542582083611842163680443620028173628018805323556667686159013371502958415898927961469721994502702073808553703791788641885957012887703620344357194574944124065742693276932498764154279407761874536255376718848977493113386143951982759918973135934392525327900156618686038521991205856850315844378152865774692014578080609795210204328580214127137211668347960873521166848834449610422451065161988577388068218844196015796744380107903013180665666406261354466974869513574445884742581281491670137519614438777823146873926763809543347787449023033497651686260822014810325265095219649569351181135156968804320623270314644350933031243807303762757160847291570710472476488065960027185379389060996392192309213166992394544870819807927270214559459994126754965683123834674989638579609168657250653586235232778006051555109436975082934260566538529420742270374566240243077548037599118002239745424080532211852577151462985296554973063984621162200360956753549146635666498301925842575089838430893826185749507651785801618997475320590086132466381741463113498581478919400119332970993975563791576675436897382730930987469981347927732583069805338419910808924632662768637284401314512602017795566773690730749616149537173455587232561786509550408811236454828786113829061847093975348656507214839937617976058203529343649779567345766304261865212583545345221530696293332559651179614071476014164320263923143527936978803973205412218178134190139683261173261200865469917701742896454874377288151187330714423073981869012337242381585245859269857853172592520434781378001326989774198868748362885923021062478740540597863806802270321232836713647711860298643460140679759070804512335950807467322296405126747667728798348785337180203772998170160586548271157548345983460140247752532960800405794403708855816332013307207313877978078952447823221255022111926674655434726452774348910042636428433086862295891481122124683971930489655486668605936619042017221671019622181946298822359417169677272013399880426297308744222930554423831977880438705094994810458071016027578810429123223418590616956142264336767126731892410393360335463462671973271199654347881696539465398749152702756573090886476321514644209344379017315642740029482181239716710846912348844733861743197123817620555465055568892284655487733094102943811732601099940866983805479006616639887000048920545101519264398122786982631652023317990337298310308548238644239939867421472929790108197375641319977150842445702299391162895279434956875924705789555061047127418868113701773577947368938531516464333095623394304235259367766181440180411163772405813058812942406627389498233706610777195657296743233853335661733032032161872140037836753776402550121807455840945856935530005444884543469060125383934916415410527654344407406626472080516818527697462657451281240033006738805552064849699102006081591990021757057054530456725519855949340038109887018633770999868201592413604365025542329871887429944251542873518667436875953741410427581217250834101158912689670198822655234574368692543791011830140884141819459498074214466381087609563261115588831883603617802671869038975932127127988082047667457842631402150154208057766283350569007487951287238573352499468162572475511134331421394868446710253296035530449308727820063135220460839320023677332458537376159386689669166862213960705325136794655131548578979684021106400314423756130597278006948876945760018593414936020766360770482226111414223588890902806985623019116496259627111635033241445856163234191729970320154292649087592235623941258070283893825529912800388235875493564647537204340425592336792247258868216426999973766470513644583807779172337096979894781086850817723953258362981284161476256624474470510924260594563882555227293660515317593246896647060083581122775640288462085678991558930898451275329649246244211594229549808463915098424033699510090771735977130736332861435972634756554366869266672810149669677774155460565773321640638006561054598112709858702476056646470442898213431512493997591235909561523808887907848312303922064923242107560243425880153573975483310274970390367954306001755766668669969461837312194328085272779862867824676000162366775772867049895864476662672453556103617652532807649690967202831763041487153925137994948216203450953340754655719537346824409846698925189796810770594754152827619236272315341187377679831434727774929372910975168223659074841905769695684582440424485177924185956692801173130964904864213304928339146360842446072976576069334428578883783506292118436128579526612031413335121480948446463972279040860603019656547530350087429074843831237940284791840614631428698346011367926350723184528040883552816712432395834365790088332430696122087345774195179843458819810782197176667921252621862112301748945447928165130930230679304124462218294513970346834722971638678787549593325189366739064020777703352448681997282449748043594210659538150446209233173300604099841115785862231525423075244572804660524378338872307739281729014119151910782635551805361378377784617631601168722156427984704872720607951094563855681406797847262422636821072212926925371176560675967670253491573496690688353771119204196139208288133236174579132121887614250029297568325152875288029671830073781731631511427507815841545685539575374936629778785789854512898662354535487930627997909317282128216877393769696164370710610699367367152170198699829249887193684582291150138732350143918737226371220259249572986946109048303613314453341975865841564474347045259297162860097372888050588918111444581697637742840439618986754152971062970730631604000667275368248847694978624551768171359358005041207289525325299709117767007673220185190347502207609042613946978318107930047098227881969173405841808287003801754404114585922832090887027737034333214116567049703923177625160360477558454214943137904891336864520504052542160246373686511804464441849217028157132588646240104792087336489751277832625053826394234772627616125189228424345014446366830821799533336761153490904783935450833443286806786553072317178293443997748440240249951948065420983395786045275231646991685279362252131282762707580899746223387738795740953032308932402387337257868891988530403915821691326374343569323173197546631039616404236593987716613213575992095740298857005745618620271803130749286937596655903740167924849977419159380678970130976905424665611036134115242646126989050231518609888222552465118006658972516009477863503418509996244473737046111382502750137522753609003271623577426330813866624962344756650539032627188236253638492182078700289899743178804881357805424463697168430624818423236165585488652869703749461526289244132293946543259298337518007263619800473022639043132292157800168133813348215048642707638019851131382138458471593870499678788359100292480415458544398934663891801898401448608755417522236485723266769902792298343572327012226836129041730052249686392490747319744712132626429533883277257017703030880678512997956158402763049006459737048539707349360534616709453580033569607189543468768590408694345622898223705662832788782717284331052769253290814654063572887368554648287139442192325117158162023962528687973485572494809634679821870197529440144083563604414111990524438704154329348728208218326305014041599835948718861574742184503528392961414098567665793708321508308706954440008052081400274626902725050690004220406581571415224861842213177304299229225161546676337515792832145420007140182077542485805822206025512447293768432803548768766588284044180099266590517465432757241788200591583751125156132453297873515401600424347175304802768134607978618772301894101666143601022531427053901822173352927053867737510215312659147339348155051103000625784667228432435215204307122655279740866801792635584583123097638741499794594557020683615807113703456459080670763099019191740207434925856009826374868381421567887961282207306205020003589059739367940198800433129700272127901358967264424873871488386579106382956069916009482317680203828527558170777808609695391691889040150350697530286660691703601158340463116718388529423237324412073133586412481725473940737081019498538402207610032388253914206686605862857716604292318231655292331145862343283621677154142382247316629469623227293125796470195357297389654436265865920872791483337061596857418983945355729447957499595915416603852645315971213637928621409590108519021657643956308702968729713513657317938117674732007850559523802573411004609426192303443920953775016109100512326139027480385468825885473190622810315585121344241598205816614927261603503114373379600594163991902969949008803686584971160622894366703661743125341729606648374429015948504407071174470509109730584458289654842001910079388371045648662174175387035006603383073563337217085925779025021441283969751493055115036688913359709166615251845015776225041779753498218099350146414131023352441528265568459912424417790379159851518880021297138362726713765378266589455814785888572262566669507083547345329174597418081739023396210699515849237889787862708741734740257737075134092830661710168376926757526150493920368094400688128010109143639772969292483670833494269378207054621053591796924310827221016901912821549374453266284708368582535013923803197894895864161539098006960003652085962250754638683290018589693993062335398698620248540242579140124639399816842316337299570633374800340814669619238094403879816320397056958076332819318258807052277079997284236109242065645331358459302809203121006689690690339003304716692337962837298062309935416282924361620663136465856282356901068223336752610377704229330999132820361884581542849397482076393156157646671298907973279757311253941289389852106124810165463416325535211699212641361343063148862149396033887526589638696300713259901891458019282710521800985582566001620351912011886631240377315101636586661664986619973223574292414220849132470850287186922220314704932418890238233544717050859176884313104096664454041711564743500946121094043724571163173718565759518182186418694898540056421313959868592617054857479996851322857706755353679005913166292316450450239927183626734967546727545305202456923184530985516624001049885470953954519438022151967292402289482231595828622834604716423023205311555797230937447162320190227097312266118470936531905993438726458756167570330296151102262052749732870159151932711407376042995811991792088851017915735572519602011989593136243783850297831367102528479445247755808974212467829121686513927276661053615175266595113216371707013205098678752473518333961845316075167885790875189522255216690384679212695993019485930083720136194791160754659461485715294241710662326753300044565085070776768189360390345598530143794609375009375744152999754042609529507917081275643814150509996807336190703020514281323162529814187830708741951832119994764544045773411563347911795457009617524771962468213645841960222168059939934067999480523064611762835911332396318794093372036720872299205547835253399521299531277561310476946758636508665996444662913295606278112120456525988903296589282193633288978315159776433988657633147798237889816536280568477255383106400506060628230866781670358578294192021912637387621332302324401537041516233224017603699559732926888160172661601712255854598050973725871559265141087565165866140477614892693823625511810663154448384251223084165933968779589317574251963488077812510614204147363555844421771337985320689563027721757720261954687301485429326014987707378306380096051693150891388450456274854877277521831655540069280342160530801717820268468368599959038908446098006483273818687255780856413680717485011714559714709120320566686579822388432495708497743947477342263891444521700145765998066361441090672862027389169188946927915165108772447906887902279926306453963354614901651810476124193411627059723272530092046412524465891138084078421831955055478983896701869462402593023409703778427390486578282003170626552321324295426671446913363212756936144799194438974167700007992105419776727389006081650385520571927531840205554969677718822334065575092527907928759253556850387926472814004975310112601977539917666124290332983615890367096278737343540657807009155461678052387437823401947595612835901058476156089603494607112183338247737956340551269931929621902901301824123174616429901295647225831362425676859985900158138348782495608270791352711420432128083346309168905622940200773882112062367790553790354840151636060877028512119489326617164220373602910400246960067416264751048987949173126074970555975503648242271770586798975373748877155928055393107436220091594919384379663864217582875350898810242723619002709567427269714495419947044188000936783975038643285212241172496745499103900088716360751933780305349133034785013678867679832424856837587258713364439870399751335932375614026885858472319885358949825690431017918744475111312045566368249168881514966458354741652494671189832241952055809092042406413207174806994585400063464136752985831807678316587886377830952981445616909759180802067378428690558628137506504168224130071580019940860505086103300064937171960231799723984883831970377995483013071508936265949002588837143649780046420173589787850124851613505724057405648454578928471164693403586019287921700056440135324498729345259641393932318460682850891732333080256972636849721884940045244016878778548670428720429021508054850151964795067926098450921397610575075365643991043598790982359637643727770974541084534231362349846714267175058286755488046873542976196996632724389347864230161370659544546660724814688162086443409787282455916367490237522678407869784404189832945115620815685341197762812184269840595793065927225397997023720481139156470229012533188347793564213559877539825608035176008284403157818612040574031412413402028417646536145916412234854759725206512906995141249229634169791106049828222175127506817562920504954489154207353133114166137704659279526913317721032801789481672217603404907559025007009375534408512649179318249776788699598922482281681974646456113641224470894198413013133279802013508561354060024895271134928733666716682225586548201641891101062846249746136497345009927899993325574434954217798689115154916811055385443571247520283039026033890228722486897799548274347572296953964288536136295868866737168335355503977078640555659759177534241259853598608546548662274077483384915260397492875211570327051067636788020433650395439047780680751764677918331231027199591071404077710440635217893646017635845509030638588851699930636553359753839468860721166459562498702411572397785237890389918078942334832676485729190134015046136137773961377951213864128933980682637690594952409525325641336012147415824628887360449523872717713372084832930404944518780130119292444207714391232839992124675510572763111207306328290435886868981549110393304774521722949348914333945815533401649291549081508431645491211096055345551963248372524476094914476083412545433513529171665924821055683528204515182049530935863881893457617014772857408250155071903068240526630724216474396019345317648943743694526726796268477479036248619416748017745265147103192944018428939245933486373221148489592197506683901789823536376675129608684807518393899244919967606107868910079457356315865936521930337052595613035420899570688916195414627236659895463282725014806393632087357748004993124847466086765475356109665285890736448220162009545933059276788960669842449626949352316895792691847603911900194182696809583705857887936847127645941767488485714391746401879106860753140498116506209974884503485738489944686186120918736829963572290096725797696925448994410094905410992939871251203096236118586896132916422195476486470244778388176862879479238647932072804299103894591848283511436347968569676363516363117403334956613124921232958176559671515555225663066854980360169828879327128235322415955615791096831980504683443675676647830513411716915870924615608486364170772192442693068021586496788641496749338508330863542790577034319197492121793827564052004720809949049792638306088002533834396929275323479055126948149826360516422215141870537866160080818531181189581349969546647969324513004627896823423014528403409998207838951392041882344338885417741353971768479501289627659119608622191908892252151926532565008844058050597017071475190068465768486769465738054337271060253427077807382059622885750749874127471626351867905250875323744263225852565899111313989025049224465448885390160238995777808165560159183724736914130072850423236559508110440360820084666909556441185154918711764041932348598095305026524968932737696194937257281834395424981216901346700643436416098655627479558994939208671077259067078003894549316870382565002109297571031394777743886984612774334560735224506870465936013728268755310840324078840344846838854224898409403077381688339437185973836800372663961754060925129929972596914605763274055994476893197534075682947406696530661738079972166582787166550683040795859215332008840476346869245918291604440233812747550045865811743416354029630411820896323200618380981941335863253558519106071595633476537400249011882196053380772186200409810703751979663030919068127389627275103926596450103803489116153391191725890074108907601247584853926574657328417306024213910587871263283124149073867956959290611776997764729957531042997534145027300287431183343543087310635155520689308426004570255296280200741820022420548740163634209510145695899356104364021691024386326681809891584379731237509839532804228700654081648751631013697381984208759793632947242311114669358129362659689116227913256505163686528565087819339040521913001136707667467351841732892751045474224708899801638092259314960213978079485966178120137621609072271045791072868034044409952447613570736986702937012817283935492949080010239128731547872899981561303997575590909878960393220188283202431314802416809668287100568951187394035068589471588184510074655118062484761709218505137283945839506298139566276398922480463892647518085186048342235058402864567915456281910741418945682974481503594322743127189474907213449322243483559595355189180490310891679320194782955677679290966849048261427307780005207659365931774945259204492618731749282017567993620584892426851307043809440986135833452422092537984589879618515513823894778888020166314136570362361884590645397896690084860222762398970611433976597575600989837623270796645036562835291729175638002991972933707277189384097858896859186359260449616598340108688221404546011977208647866703015504877575992629875631914974136992233943715814818242884512555259327205500020896964986452666205686600903087680966354754217070215033676023708414289189007328851800075122422286857240035738924157161704525514667627385811078947499554636690668421141430680006081845832397018503630831002598384283271147998540980612772657999478582743086191739108994864089009869905912662702903026063067830421955371347175067272951249895123143995626293159631044718322934328574232292736669507175568935777775386742595485395118381844031254024107351758498660732081993697065215459662664155892065693008794670905752166401147157016104389706962145132197376910479885935416063485808801233310018997373045630133080096047413711080360335053143598510608556473738470568284237189069410967388154213694557164303872499049067193748793895471503356901054859595694480763133722865472635966080080253793696076887802745667915364371540727167769789697389878655700601296712734951726768778565232396158745578766431542591195343865721840149869357100714074038642895682037807307539997741197833041141933108701677854865453038027795228618375425663056521888365388432738220296136650501682038791432639787926321290896642144029034074626053736575061092008022470956342873944511529077967863054574415432706080549940237399509849354831052255520789187372044312384224958290779050512302013432232008352954833565974513019335484888178822687448972333482195653948109876025084654323846799280302022637180350017798282369468192178017587277261682321823809345821107516416069549481074836644075847536928858220251352307954921079413180034563010000122734646881758473017730292891448201027394199790429923360566980525044329204720842250323821295312581571278979811034668970888221192145941113742504439353283992977013760197487888004522221430304293578272307050490358801849529105873465559531646489176964375420338586839146692903626217925454755244665615870838520924167012757857528465738697884296419045299161736607476933246933633602655509519803372572625627470617836936377102504017965429914350832535747362323668982004423284411024819325154991712922896039682205170524223941638953951557413010246677942228690715800306986520487763618167125156321024329002637278446218112228781998818027130991348742243888353768873967477531955712937367024782542091973491417838407322356252928859683486029015876771307144780034435927631445664155609512806427672293206766943630496352692524252558390341574264674912723820163556276990099428348724107446953333104253167483473962853236923717828469153403413286060770241965721538934480268867776289881852933589455846820158347422657490278638472367314755130665254208534712673540738774013856700120450251503011833488698638774515697327636320959023690779201290009102692953770443822516415476526328575167710732830629563809457441963845127937854865304886060611488887107784177844091846884280377829389530037228611822300567566256497766056490106204614477075790522008087074493838954215628614037837212615192115448348137604199358108605251557944445047149836994236981328049079611493625340032835244740325066694654718275327065252758060530777320273037061810176884533827677674688926257184838652451314956790519150897908106174054638671802405487319133137350288497219377629458124026309970212623221945959780109837098496095197085572668124046913790963141758245176142908898726061611038686407153241528747615711518686914756641573254969674735760457501044463217937238600831899364759353554012574155879719034228039220674573381356640080135180904787204671741975057624495360044297531161755218846838909526938651737831320757883765263429515025372761752714267048147790526830052804113255011643914045815118622429225281292174356856191174266924871330517395197732032323059137819851338410330765784793694514519707399164645041937982554489496444809919155889587939084039522861000643229862289771946779173807324758919144910358694815271956960607868678559156260738751944722237801671021717659708983880615302213837745706229130738540887646489431995689035214447482901485056486042202296780321936826208699280945113769981492109395906926369009791223350516041366293282716495461792071145507532518446666474216266662194205403545647903216585702105238797323156459885002252398623118595049269128671566382846779416828846022066379450725278019890790123999344869044425092474246699485686632119686995718973140020837094036118657735400969342905700029328330812810635012586537562611716147800875650555398272528036375465550222726190435864072049921121123659551744110264933880353173830586712408600497727153072566127257593110592978775004387161935660790361615282380589165377088657072194567770252152428499821526149522268223799610912109326441620882725065064073167287005160587103755037965117255305904019618046628391239729303577919120959926510151776580088353149752042113270455393072081600101289841532121277575490014459489111371504603915962464671437100743440918087189504036637550241376013172408526061177970437903857279183537602095565167398964405474959100229712492997087411403756908317437283771176660877403527516770132672498170880686070395775490100642937468572859708116712364844297261897017811381435901775191294199958667385765085107695401976553437318943811918472040211219678661312326420240298348809040130467268467607605296155716196888676863301514363435752387502821529138833753239235679682469871229770394635057392108403436584469837819803396663650402137940969912835417767410693955959687404328252142265390743798898481731966238275236251871642385057197361464679943887178066942913134570878592598634063319105386037023191263888135234748034557046509247333869791072972637090164471368763734824242330838288920625351680434898450968325882285760192260072240119461327140224929351853413299135037021178693099982592924599541638453356916278164332390648678479282465538199781181895984686835162956752073675406284941982767227752108398203942062100706726971577002029927794965207130997363802720842934399648912323430944161998864999888509803277599163237851027303949144992675350659594005153016010045404626263130278253626613760064398839322578082328723178289853945637289913772001234647170745709043622441188655295094970870850703646302181285868844597154285509477912079641969381328342100931365250037649085225047291171871130251727619991416542715020099931891615754573710075627382099805054035970006138149432274139481466623196195812639716240988509942856176011758989126431693718047143646303061308409268147495398378092410404078399461513685057582693856165074213986601886902312593053108047816921304776740433745742559919636245456284330352182842416073685680005321414132622799444138819289470406146365401239332249072982307076773306376895941415527659653220579089987698742747524052251781347692255690912799051323102433801815510043510030780167805570539607572694273525118830385581092512287451369199266836821902617592208274949209686436442754011308781268859889461007559160986430651558196797803820573390461182865037073303308253577314334656984527609823757801037451007576872980539549202425788407086822253696978162247564858254457888206447430291809991633757513523816582351248078286007256103651925534185356483136931140824799204833033102888205091678069037202903530868950369360264853971242038627600965568783294542702233649503343872959404443502837421418672108926153532696901597236129509321541890807455519968492765604197710014603135057497308685447525142897705811864835529317562035493802079661180597607317543697364847553133771983112495470344826699310241000517422680778643836859178041474567038699828534431952582498847645145583902326774829534127766814195785145047022504848401911523439648938286063741583294016064817854628030947096662002261443965704645463466102627870396738476686439801403349681498447669587547022096374714342924621664269550977649343757199188795361801646739763432326962019058539834930839486607877251540235527917473360454835091214773361084194648739936648517757774806486562448320186189283820004177066391632525924288667873177948433145923116127388435411572312530707556624759097455914996776075706602115899933094068296275703655701598168025848884317269001640967743400806043955125245863692796424848537274612252737697468127719113843220050981488147367811133527020763477323838960595926736978517836699738853434385851576395630588103748732957086291372526880243273106053179922492332806086958148019909075882072229661420357658847165890015787398332286979965856371664632219576009505823879512938938094764767114858138365573222215070524700552805863623901304245928406001138451512280925097187778137429167050496881440383197865534556047653763473663889028346525728591987602793556981889583419041471464723658101201118747440135403412370671795802136910289673744482598171509287844881983212464301438789837587820810013772873566798262045664102307627301787095529743728969509617818133148604923204205939067540011549267149537465276441073145900715666285119710285013452883951087093240398154315672061636167676172142069926392986709164390043725242074252959094129639253325789616153077210000200773269727455839851877577986231016619630207867979244927795296349718642364683012616952251898092091956815015800337010927036558603298406219412991697857560118808197949801945256057100869225223720052381373969411194599752471077314637235417908103768122054102313147376051439237589101014001488743537427221769979190146822459520270935343720794245122836253879976987456758741359533140594114621870983342782667997652769185830948792750968399369248617831991749215515421707361219759100941544808977048627244761939919668368045539045719894927266103123471046090314854907355004682821098622604509511508827366145424092225266344388660189332832821042718427793371052988825385708185096643429615596893818456164394638973878233454504883644247377090825978180780587127325811513420483466496807340727578953296492255964437062736716855420052035001365179414574402390584393578962055752089112970658491147951409797173661006247827066596677237342668497602202747480924804168472960722269655376484718559955028239483048793778544016648358182350469116767160549384336741107711457392660615320416275621946955613196489753615508637834485106826082130199932979957511150688740199532523521198424363741926488363186103316550703698388385090350071761293851572281056227815009104658461717374740265651653833901057047499224387946044752608625394592739159856908362694229773451879608410267259556936933934068163033799132729239562170841123497896044702090072684918813048012882300823696858591855627886849963115853270711019928828054038973639180274260337529573576181391671137197758375005174698021836102629368540379898043916327772334167694940114292370228510811926594269700439040519801645474249657674599889705014954632164715370903078663800383506850357010163216847685565661267785537948710159772073138408377716833364277773346956247083335223968424552985681945670592453181352970563651182864329208660198300561132628664692376152247735780622985175790388951439293439819298646366477264351977100169788327274881616595118459793368411510290084829738203471066704614333618107651387418709868173789687248628826667290515707335621980512746301266668589521881628019554733782373854312859718299335274455088589414444025716478112831301854498814569476115950415775640882480387713535221520658709048914604377149157828540063449108927642016340473592941752097721115892917997340437917315337408662715054424418814889082277973820847900797970499888548776964458174903384761967151810372198196147328559846896126098573309710114043318447926681786599557372415430314904838656923524147567382605400832209180982780690768872171040707916573874128831813379490284628584257581316525153759395651159737653118218049810754577181617860522667483624844315549897063886834625335886643239001849919439561839819811802783838611906323525537150601429244132486849050967575577282583132194208969514822539365080337330825599413350317273296770074868773486804882554463070114904208351518294155325084992786389550128435427333100578651404581929076230087418896414519588720985444009503680726382234259825161814009584243686199951936965851882961400956495530519580647383691128493475736408073072647139359250549264137076167995913446071120397964703839550406641256278120110053743442729178215776666121471178034055278462782025414096995703338934446383995951474763984110427439347702348412762590974879253454583450335573458149632449783508649313885667707276958883286140419010424295006507578491677969381311055770631632343688651130308995421813280800470300610335415262813257886446665468519042079886078019403136361983250493987912850780242728977402888743437853486810112313987727650261581010326043103539322942388903891740884216250976115746400960582315259191943135242415078344675639468485267089888539173937310169030663401756558165789528760877230297865135843809737050750667255058176053796557357128889732111948273567165160530282244353038689928482670810374668392835594745504171143521380791620753636010488109508256954298960197560039536668320742528324680938969845246844746327780833214294294446302764125469778270927310124543740892257630824163879213926630432425993159672502885649138495256277227989745597240874246906989283959860917740562013876924421299981016333328960470761232091143551460656468370243129194716023322021874689506633814708032016795456093116203865900048763564374684179614203298574857960834850421592820325753632493752874704757002562022119854249142523907047975600275233533715608776724858313686894861361789588834296419389256473646510030108090610853089204991154440093274286547207094130099372173442620954809821913266977102472444820700867570011422310591931684648287648346144858980473145809422172919358711940572690242472968921955199402039138332768583590835936196515849594437548751733793834915617117852235945103938651837641502509784005442811310539669131926463625725916937847600781779607590727449096028121565859336791765553091408556631044822687446338063050761365824390751759181449191711405425381781402138782491414749976398488641453774198055553360204155651280057860985152090380654200714277986223017624894181490304877579767502346290295099322478720353458094736336822465925409033468493857393788347812014883801623474672136156632352224929302840894551208750397390137402241588332534802160519557206675004493365437032165983512686445232112527392705446647252224327752713353876026050207830104870734874937851258022871823145248167410509442567796785040774593116484731943726526883366944938164726140450090124035218102729204891276685114479628410605455255948451110605832817398714604596016150487748109983621545731188135659906363713595228857977181521956206714439888193624401809751627670593766873839345633368722229681076318477720884679428366751330619558597800021680735492536665241386046143470364812615987207008439116056045241870820763262306825214130037956801020308727345863305117471180701232263518724216243406873718567897523532731137080762349075990436887365099803144125817947727733379388463946860650371581802703660872197983472326002590937402690681390591970649548002531625744594674045897046864527545178414676582297249697434988707177460143166455274169676961377820806900471913338726958706345148532823399400051417901861688815973854866313226670777762462154840256221105124193499674035981121699899173431973259859127951405559025940308889037462849210338247704542734576710508548032135444411680480373779012025996978461455277295906628994545445457143282001969279963334970321879014576130062195146801460816585817261773078890809576479805902229911645415339941271258278847824295365672632896980475153010372350248196789624440508678521921730438534555960582160042447707094321144194544811659834399677745062799597375125668470707169052923933819606789116809616961239721022063720888763587642817330427881247024255480553089591610102911538092252643704234540529812687259331432049995634885757334995681645654505014223416367383799685969332612095082092831076631157262375741724594079983333641904761209334384617628600089047275450833954475245974863095168068569081520717347760138495569377026233920854871379933606997153849544113649031075953673580629543566978542526076397718926564312271813128408100551949311605268795160446465160645439552057017260836944263960316709983166460550345050120328445068684113133119707823336373134908843430643004482995790924059286684499655794467085383625957585667065553048700873068912896272189686473069246385798169514925309693148586139244346012303939693571994203984017833080823373522635617077674232640010188858542409128469338775954436404505454006212766887165334822692293466744281303202152868412824407816620701255208926365742860770218258300518410962645053688626681568153193931659354387217682470013863509429194165494117110760337949457662478040045594676632989531287966580626501303203003719972025061783082527473381898815682684108066950162809799689741494878264896139818961885138911570361416917957475913041914364021748421929362467275248170869478117246904288465462095202151162897845468359190003098221590893106980273146336663697132326669491272805304203180332369854115841225189025981429446418767055219619076122866174854694712005230340230798287461570907782262767148993735719529768292124343701670250273237306474079938175598965769293487720775418327166323678202086106481710220000738842783013183941716702206187893390040622348585107886297422906755516071592387680309069284591345065298450413389202909691784236754073759393297982285469416035605544570448533865989791612604830470238567662139978452228739121244930104432954007169314685776627206385226075837703039425130130484401967179441521826946557199418286636649449560451107528820139920164054018549624550220174808707330947805660701178288456110812190953085217886768248976383302379208556091421213904133024329776758137823768101426234139200671841149506520134139502252534878120640883433042646575273477231990989291911543841236626443689480055050626110923259838756351908393788716715242395022389304676866136473910167613165298619637408267755523738045803534278621959847785776558847266313842959735241950597773697127998976314418983192829918294896874463515310503409437813452773688683029575973733599852256316317943838742391927847877428252199784635827145857976651761330262599307773790667478830629361713267051808019412552794573989117717749016124269299350553644842561396997324159953759393142616304388322260829730565520183669927982048332974093715555096687543225947624662614737014534352846863094348822885482139898306582595906854417341675352126215419444514108052512559793660781080225645478866470150393436745943426498699373409009938525506943145623881734033280153479185414520914804788608739539217971245256966698075433450677226903081780746449455178888059809811857135201493021625000713854509818292202832905239811532134505008178038597896233589396064756834150093725826701779169854167068375758990327979085155428526829611784339748908367599453668429604844367709605761915162278221780245384846732675813788161056609143464764256850271578498405123566889132615264845383848037534080154420032131713498465342810043317886336002366289254739590497711577780892606910308212020949231896752790133324046358119478460136635581389999103711517170079498632788948931450364586102307308928173633121179776948629582716601720651580442805490305277560543953670457049195967966012060728168156989694390420685345868022724610373274045312191587066099515194615799612476324375768312842355053897721848174841879795617304997507740901349478536791088131697856872919496845433087987758657343711446705108155696354240994099547896161724272847923122577898548209363577168311840816025141953708010684617001867079637994040884697653513137308847661931135179007181272072078781119026939402589134600051083941106812286924235613861628419042784492016807777442908621085012245038922310287546037478303279089900040628216287981864937495052592961267760931909104020990454050417228832028371168237254531796589286678160400393916400373368111466791251017682008003311722698808400686171993513770758642800175179182437827773483045884274257874957029730733363911707658654822520278490705845908988111160703166501306491825845534350648034683806909458596735482270147650394655490229483234446887989889121921462742598150484486007252107148191616480632984044469421155233328883982818354248315432182612468358395647292958801921598173752913476853434749894467723254215317672382648796778229666663452922377175202656741935542357909693097141920124354924686992078198637217294574923239903930840844934447238742589270058280584012201538939607939368953748492846155244833899036540239421449155219502847337846909972826305662702591395346042674012969890909074227535306531207971038937638982837139871344761959445983998257223037667212227793872186405299047398929198466434852981783653675670979810213875071215239433018885424949884905249085684958662767888674708806327965521501605506286856422553120197775361442743135399242728206638141894182360715932182224671339133388346929022017322641336477004034755145828642180871118682072155026212946708475777190301645917479426926817998035506623152075109576057429551674572879931742468579915069455849273648601046882017489371029701546965908173717090297103098576282012163442099213292793615683188783357221931488488895771476672047071849040604602822161816411464364864530300504464456714736441078981201228697612178788418793323069395549220305362711828439567014749410728102875487462964973595520559849711589608058606935434337724391521808962953916011268654133740217548223092007873572328335218279443854813434136899490194459425030266159791187689732989579544872181256992043431951763411713170628034779045889412714251421886080662158623591641551916035423625366961162723614737900530581649970679088144458074535062959438382682775022607065865282866589066274843105173703154802097017292564431971974285312112997692598392715348847704122353528207825623779196653932712625394657149266465368141867045850345298680992081392133032400045277837829359965127565532703036108602409292419383487547879625127523909199566193498010742781882258879872799963466923216040204070285202747242724644479162171020692343864482178875119550041605811319584872170539794081698301092627932801220568052827523508536703153202677700341921851927336598909669084097947423420407425912447836719026225047011954769572241150709538638078847181043622360801922676396826134388777674959429620985565631430097070299563495980620434574415813170446645591866929071996548423893563122923503401100188075100126172315746291083703000510688210919356468581452292069046737568374678972473538847139855794228158967387820101438393383708472007823170655811248031420272657556300574339107265069104088223303144528225823558958037254767379742787005935294962660787014067244698876968932205903410644424831345904881294042204550845579511447246149620539407120897551317659653042737525913541881957625535642910912558613302028204115663815095601701201609850182115299526821879022525458487169036003680946087967316743449702255534423609135136791478190490149205294467716042202279180784203032609088846509406310088984122001908385024975609223124785162359550355652933742425197455129058980839924939051115656870134613121805578161776716202465418550283955974197267233894937806085121332759762503996441172358912510110626366139719783781496390690012708283505293432573700732509684039511298800011427606956895928728984354254207502839950304033439528544094936632197373196857847073862818808931585044948020868847634876902936854630085915672866438121328442430236471578915577101720858653432384835365315778402553055054646840033648772770625340727100885036468150341581925867658156303687562747485113970803104328562333192548006446944231745192099140639305925504742963502170001518248408266507807172705521015982140457573413360024070842479794564499831922980645107575024404350928998171319640490501673899729050077862985973381340341485614723798157115203592292528076573375487896134132902910838990248546043658558705851223751010465774391759607339845917190987351210890970046176782700407291374254830108379254001104728170870845726065299094877866432505888016292998070558777754276530301283445320278676887287951512138470639852247378604008075590026199216628838181860168630520575910091043309461193094160923896867618467843423332670344489259009888733106268399196156826315268543718036607754177095869496577004873850847565142904517469513161498458025817337521414702660991436467628438331392195655678608136579246291333213898334503358508416951919483298476561276712770622151024732905688237601302933475917809895945857728361449773019115750979681663960414311577709444260930006938178462527567520100204004618973646629354420323723020694147731716110593251359313606238551651696662079297301981333120412803015511293197648731869795293019660944024888648153514642479508936783143350211590752116087781552255714910412709417689058521275470695672175661291663816717571185847981822129480450581754886453385233218413003755571830453448904718538920069052897940805520807741836755529108338845521151337284531138416769893071798469451533767264388725801577091874605363889252129275327706715600003151400522167588299063856342888835272936184130150390590695193434235798270198354612670700433697795567266036516699514181039908108050474034815015936896027496406756534939680769935125050307677049975837725117840697486849702386022272425348823987691811245130308598753707611885491062062356896091724374870843219808223454892279928309611897254535937071375130369949453867724237774396624165718064523069337386749238674496003903481642345012042376143739158333733420692957538672817190471928467117839791192734819298684074612545485796258669862048065532773351551887967667962703572247109927979112987294050552922697626018121431152582164683728741963912047884382424665369140784721872655568999935956038002818120149558809884186936805466729376181230899582585355252079863190111440803553901317059246324408022048139947653463065837113611072210089021537967904090560952434529913384169605942578309570676932717739044164765228852528100719941237683128243053110964909915245039320420884724507177350865701016286549991342434405662693989103122460559107225942629465768437065724554939388673160476252330781281317704091385834787211478221275290867817969401118436490893463149730078058210417526847983009004809421152997209656986463678596299889389783746201077706996017117623125180411039637067011488998870067845873931038034938769768188026940541945351880595494943992006760959312211989303089950812624163439610445296867873509102665418341122402183237239148964256082588388379795311995904402865616388984084263241016440159488187857816985930709206026216108312038780157746521470791992996190508978451040947961211421248841130130619537850851011869738794875573252364038579361705195067115376022206363903519321384858196536103077673920196990306511309692743326094852865580212775364171120233920077313626583165870856391627088623119047933787962219347137372722803637679699464475228330818997797956492517003520887867153988172081689479420534019818391108004034349964714998411349850143680620709240906374781546060371884915933959486623128941121097424274724514677679447704537647372506267077127746027487210374183082771150851167439149777704265481138677961984213545811657654099412811372532794897055918018055491562671292936756602252049694267447975118426083123773325037004907243572512995161516851371349694020067894045814353144037428208249813247312989558992421578782446149911078885730302735928386363433441419868168250660444251890017916783463511774259047428027930873359871263411300402438489676654929003457521479044815355206285768888405620522456078667339009221576247606686891258897183242596952024672609607869250117509206812928223349320218487637964404109888817432476504493877016897271330403047782446224203255693833883390214321314268825318661388266030526008548705320063937650329085408468348937555923693610607102804364762912928984126998271420160151551236796777115955155284956011641911587193240905110865271364228763004495782137842253954021582085164797671887112462934034909085493509634452579198087661999670264203138759673694728351662922356100139340381675681149938752909217135255678844662513683369511246148649647827821996155195246035328488859565965476195285999414662154436724005065981962358265231173818721051817005963050998722016451114305101685361882638702691705048874412543891256965390758548693525147839012745717923543322224323033385780650690344297408439588647992044046929651962170821801936455656141140666476534107279116504194810088063946645418895420420198543648497738734132471624884072422302860370685497642454115903547545416706985572110906647825451976318718128428076124214693893737515204508497249052036019593249315735711068167485530008768876195888167663922162684966504542444543020756969474750596724784418230905469176145005205375262036324298021586552770131717850987918993073690794308914214036884739167603416162459831218007891532205245815869886001181245024777538468606541820436461314202344778779015940702885621650600054638057991179032937353201909819357051595696806917556342293757053808964447774882689373970060014907532315900251645593102762415900373174296185976637913982319153869438574450721828028685236648627933527901412395545042003158891970044980347113321995352304553021793525299372547999251110611367508511867735242449261664735567131955579040251881722096567465737501952608875768992702306519216989474129600681188479356782335929979011986066429117413281655495662638925245807209414864896968049602683168784640538975605023549399851882625570526615957446517413979261931757289953665707772474607768319373104374481752423888946087891421401284955506240019824870153280978737082493017058992805582735016778839562983466042542161238059056151849231939445918675078529811433122121064011051624460171066451644139321864963209599016386776285617123588767820185554732706139409955685721139133756059099182779160616807659276821063899690110043131571853087170992441131846691935853333132362119647989492521242989942897530672400869908934996630419566959951829469623549673038588382510800786790743182392786443665304389885543623779669534062426841614464271114842766228068660662542987570020903814327158633702476967823983858072841781428316275294221964248088894889475927366932471002938405145878340332792019929456600902052851016037381327366519645846649780432996208434644226134890803901436327101023378837507330150246766055921228929516734481261988614127945029724450552102228967836563959832625173066686186418517645791202390771127260685115704158325599051283677458618724158435540120997925269931706099958376710925081492710424450277599975149620232256940518033161723012177976073789132364525980422068676438204361280321633090905967705501008219856967121642888090856293684672678866638115611434093257278406880179958751338336289292884616329277567731511205777234988695030771686683828207386587454694142721066647954665242477680052926500504222325230933503403490365446516992588093025124744989224473367130413727419939117940063201392658830980474376352644239603878152889830944036610431212528133949696662130817707214495823149174359233965274750764096637266486633938222656243091996915878848990050349643059840575619633692484830374987071361032745419091808866858737356786011599173751544737248551443889085792220081183333547905841449554244935309901494681558982563859139129389088851934601915155583002767582219638392110630669285115499803487384088018349753508924236764427965889723794813961269059644592270144568089772496018657185264191975005108394279379152045848476493851110160281379955053383702858878088480389359858962189824580676466024197472619046913782299707729944727984622992441799180980414421116015892063269021686697383801461339132447717188729573135018906464340050422085367799997520525214825742469452502538569136534489968929713431976103542033355841259258574659616248763441577860065351365173944737932248234314426493636549837289583803615718139748031989184410025954138180323560220443058621663580124785883142598193377021233238545918898637016639593998644904433649151674675314709514966974402960318587689646911044488526135462473436123906678258214051762895670747040966955626533380912224802776805595151809349303678190737444567395599989686535563278986638336242486993267847698897313770053520653610722854738011086509728181848473623437482834519296325633802017957441232229329617634584547793950566300630356025409287134271697900356261026016423847935384865558866451014732601875425955431668943490352817242846297364948212556131476579284143307618909646350508566646596082782585287042440120723172787758627743622510891721461326371892364674314950875709505789327008683945408395804366663841960107555026904892975982086761035950138594358664448339217794266399039627191323625790966494378308972473284146729188046948022655775526569493903521916687451294863335558363107241254463572483692892306904320642315094695390105837737622554195342216263354090301406896090099530460629714430974743461302795584620112298568089291553619609364068874279732940667013296529776063921900593953794124844114739994956385979374892392833949222261763417535363541943527252626423833718587900559219937422672802964640850345333470737125435012748411076558130089861306109705551918252639323292556664507572562322701424273460446350624507915185199619852589724955119673741008670078077508151499158462138579643765565250500345867199974596512207295739722974762708765840636830285456829452505405560406425448717869636331283338784980208365825261257781948861777092311307133878790530071091524414094875565623550353780598655822648465492394192772367801973354929488204774474135110059256079693723193729235107510236078795108046871648306586231944606806319608817762625961739067364993481849809952171385270292890775657199184752834477106072246171392385576984879205104387046913356571527141960626427009539330002702158539231546332137951847935069390484154160745283688052246331911432652786280457083968233371558176945023213333115158807915994061873497234167052241944815004217727023645234788759753850056931556658052190873368710134100782893059147674315827815387418510149404320258647027263491156717902285974876850126734271487110773240157589665395010703559122536907905930961037344976354280294589166429720764717800973301425451254682030471525539226084954886748785864678523254397867785927730650764352579767716900185637557327295883667240651014110999039304687852609690152722288927684928991283182891928114724929105992494589757323518513146550088074387708712262085573350398976560632337098619098774357573859525509005154074951713210845677023156642543055382975885036507531998380659898462980701485562403325033551281075230312810932205342669470691909495901923412650876879272499256501405679773281145769046461190053139625805814627291901974345766243869488543558297857522223229147108051433405818808438497817608299488856132978710876511003786415215050277610056982129205775802390793144032552335436710050748549748385392292863660864577216218818200033012689345010407245428295196658121577323554185923991610363601816627179387634419806408463684327741369802976775941316691286950835479224280665684083267024031183696885848950397926547164479618160573236805322812882492280586825610363989758169586624314299268102453755599961478217851467026424709508913910168776122134877681139426919641218269156753016641012279042850781235410435509784641423376010573425338358421782191664528457097741018281859483734908823505153945334928283019236225037586112075744866881359794641461538967789238047391991330501975704814450450133951058918443852485068707715294206977667133053628243486191397768127283694236388579837741295209390121651106330313269031528527883535379098691390257950206411580981039289590688740174716641538249426250733911862082171151994375029633044089965771143282567302107363646202575683512895603644481545635431423237009653293101233648556913746636421749557269090994000084935338552249743586749799686894298281322287798939303869348707656774551546046088381972214698799835654552967719880748245689420284778329997438172788529479434818686396061760246264924039302116583371816320006440357239527756706398165222323471942558212920471748455484259404957861767236239105362023326284743008544235998178682034980889201612615677643495202003315566027584411230800584228963573129062029420447138361551568746969431554878578470224579306722396478170005178877100940717722427151152321484615061851298870646760434290565420733257087490718478435660565395499088588499398420226416075363513921377267489689013052922522661569088126322207842920986111923107659033061197751883845410539253349064370437115156621072239502862062791723438782271040900309127063010088560636606563223444868986276950584009898664264393146136857540637243803930244501501272026483478294944391979363342679886192380613674362486052486460053301485033202184285662188019431535602402577740981082655801861904303805322469797366478686205924289323075090608311558785033104545203058341272754159942550381429362382253386910815563826382233517082831884035319070354560566361351395812845038851916851648027254334310631797773114739493029912490047318108602164363828770852108703511982639856024936942553416572931885705229034395614859465587689493253974564498783112078424620475603456198083075992826355543823584003278481941782084578569358656224463803993824070766932117829267421711170412932809833239034135646605397663775484470811231224845293329799915158280386417503300563287200147713025116746426248114275711291765032431920113341523404830306555589875854053731879631820514819906736197581034674974464415657982173022868602319259684117142497529014642708175960330077662702497337069315134485652313103916175939162043106396090722237165001026170968163224420657934626053457067799389333020894447914702039278556268711208815113689872653715584007804737397811366101618110846103614780495561293752940729910988401374793589730242401357173977098160224280029448723203740153051157063043400653710261021840596656619937965677707760341195539280504596143263515360283738049597423311198701529156933265113800229935311797463994512307633798484758012273927314024791023228634244797114021907908627222141681693426783336261777402233734483324711999778080629209757508070435744869285255943256395582094062738359360887795504487927894093752957475272613459314766501935154831904389749068845093824713100453490121810708844488198275941286315257440532917584406734644200824324325152409707546642748446963591358554693385677862870146966204994414336086854910894533086756446636834104956946157191846088003170934459137551785710567662703151581356086688809224358320490075738345735253021350873868029074865264711511117176743388333750680007533972293114397167922162770323327932837612775148465282440263347261175284429865162173834229241651747618978116079905573018466304848145339362273775980640402251563805337346547489735434859092711053523003737245274161563060618234306882910469656465561680602305400291065831119506346113007496580399699212064744390833315560423045769891604445085242644478248503334402673520315451005629921789201536227371607510861275776888996019642313201596010984672795740726801267262015242797411079456674144058731132799533602371457648109107995322772003175538233983691659239934366896342050379503934013471981325191239051294529989338898922149232372841525126266060751041994702018771034485490981337250134071702386058654980582779289995023140765521383002456105313761826558141278320573228637122529515722983980008811554232357792182539272418242641415664663645104831477201354608835632302576526465408905902152056733455370965412245245300593024278910758247927299950015431369780076316980377793863147983664476629814322467883938681877915764478414270544210848316853110309776193468147005479213210695151785475775237503208813975111921326986986127098551734173429650778568239280854346090315356013859216776239779792326113454106420550583890370866958246967710628987692527708254901738743075045554621286333790746086969651906000585916868404571544503738036030377686636671466297063382881247408290111894474843547539813216741490763824609064083470457707138242126114877695067297622832823725235509061587737449289803664379627526245420876244115963084595183625936337469836282766613028956338108072738691487837878409969400222589541785501834894658442874743061338005986499393592515659320501152721811613018332744843198581748352094151232227154329099571918346669315582779968649359780485720863255357673192669271582272931974399112427935732933352675752170300331566482112570019738584898529401582194435549311604782266035128628172398987050299621698092006185736056352710573513899928640787632973407285448097993159060208733688029721286813355313642017665720316624370311190480804010362212991673579577715075645962551325330292596663810217080319272840496096643698933711813324998195155097028732801048459859372905037306732448157709525505704654239743410091616651653170920234275578419007681842378084833066889783067629848261882261723317171792074208430494864765903850609692398172388704841274359863385282291765102045273109444890162096031729061390365766565117724050742826439381465537935689171989883470957252018275955485038031445411747683143723530892781904146903876029891547917007169297873893785625586543090740504681243776682470832691213474631852525052060841224981222474779532043500705898191028736211288478681533199796584687267739790376135065876505484774846596995671983040404363827969827009777754313725511100470430384365101980310596226738184722631750220232078266056326577099283341290131739992399233128135316286939438085194357672246647325932732549859313104088150111501755213128446645901072991416699995214128326304125519809108734791311536885046882675773130941594661345980207707463597333261794244803556732614712054192612561657272393784401635445740948513396766500728483045772759201578567933117539649429904158084779175152705207556413869950370214427051506642973044184340505117719142875666025558648717670624124497666871359268051777344310500094048633915627742432646457016134515589256045601567548545153291831778897849649885017384048209503646692015292350260253353733796487583977895256744707844340874056865296983915151645179059320549517956144684818645267138031864384078301654126548656685979466662176814273225905215409098641823764628432630453994834489178842763266192074242564262299626754350110283895291642467928106026066660799824308967540946554885496766975851218239809772001138810252865462186880841387367231657758788230366674526405341694411020442505107372114009775469693046078684030134587956213136689301781410823275136089337692188821691766339208079643407931575839647768951412257965803102326689420946441475751627316616293395880428406184879955979558399266474713222388147602906852547228769477128603855292736453151092366441451692323887656689613361256595595922793074270479476742898826043739781870951120706051719900583467432263148080708100048953008937593157382877704303974071200901472432588668387037782624151515554190621090914231838113478578653992847329654509998281046565658256509430066096629633511272786030189747269111452965228831580156390328124019795165469664007036710083274947661707082161808759431489793891825795140681139562784540329484215696302432944811606754091238629146359919257121133119435293446370193718603033406468595834494476898561357866343157744378367640539479869330012520905500785723269179777458378517250420489217897716962587128979460995174333279293277259364162071504103858200420465198944607216054059521428683161902239458753118081716060013680168008293181080220496210478132763608256083915401036823504771226205155961803393246006734899552440795971737449581679877751319123049008739298472020530036437908319645123054821634281262030483132705771731834048359070801682589660709535270961788317235367172595098852012108070750599425073019821187697542336838327395088544658247162025308923847782192021225383560216889098210876471969641795599001536751869112736033691552838256081863118759949904688566303181928507182940713202435289482616843408964305856383085135962587064510402438491573686214742165862176784204492521796035914012476240993570530597774458297245099995937576618665980306868963536316221482319992204330642076789894147704130972904614747657964183190081752441217725908020637759875547203381075791389044034497106677143206875034095683813233124634959932633501973691053811973035276358464465601290511126883980334184764451950323541599203492971154494043265467074544173373294783438860038695692999503415486938662852313460625045502494239646801950964576149219601088972352252739125671373042341758739397953793187355609204043260948122287490525870477555963315463502288844542513533217258740461894342279832875914796761946237617278005177199328467366810012668949160853455085765214198120004088270671325607221092219056912945967006959174879190287569303759565340880120126583092788984061072457179073216043005446006730635659714914565917932578921705281498444475960895319765419442335804143638309735111134038592956722331749927236608398725592928163605096051874341353965782923166391909356372766372320731700216125407282648249456168026682739878973326040262101046916318969654163752203324996558924054254263422007829915073581563571058267414232104857529071383247347132702166118449660835333585893990268672371826765787882588863041231921362028873799059690234982432776383439158280602904944664601080297016479925258212241528599017118436881546313185218873430692978533759844844708552737159241539157212108894751683160665389022009818898072563514130389898069102023951306431094145928818303975155802704535095262039064560015390570714178200912917239800306046240422307627361933741392488816435802467395164353594582140275628480075203282043650607627143511419177440676786524784050456272243233678418244715919713804986198452687452660139088165408281068966421206861127559048966923748288661794379571177805812842292562845007925228487930994438283817754076108551280667818728447237434310664465826269632810566841885785914163588682916861098864655715286160025115603291810428715886787006343766741500194785394098471310623584307200453753393862199856433919245523779218277484883313924234079170797918121463950543745139989784093246295802221254219673332043914444263203246626304900720274812378748531372824952785101112930662639032093336058877504673560933295916624227650779130715115416356839011354703779110266769705582981317043430547637796829726348767074122111252831046954266005504716412413908390475402641300703937447907371196901578617209160676999571796764762312629131295856944503409577511540550015292731410582525694384633374075996265077691319965823619891645251052112379759493012938071634991328882901635265523248324531062023112638927695561413252787999433185102979725166389516906142693434198697655745253571223795705971867670281012014579738577513944046160986859179708744695521683030793205752365820008468885984423612456318677306216779847331188347708704149971090505820453670257966969849520360934980244318180998670750985542624831274728516939184915481747447477132661334485639124818439192304327696064823372253396344950427417941409781712865281068648545820230889814032435904788068186496736752539617745326975578195567876057048214067509219849181033910865821627122686784253834246951662895772833511323911345932988070565158374580468139276417345468907376766248986486210691785776597975956231058882892538890430565048230097229192602241846948320991228063947000242626320886729203068752834476224325002115684108741677176226212840595473146539546536926234614653054286623527136254569662815406234950147126533201895426209676893282116790661982755282170561728718643711712537716917248666715957510176285479691008447267812234454080393554220709779270921632423673493928216611149356132101476490503391021181422065274643315646220421066049997085579337869247134183650427564154328739026380357887889405041669310035275283914194405889602238844861857769744229271793209319208579583020326791375548606518913548628086621678079226018658771602652541857883203259612407411511648363312793592826915203390802717849750576264395475995909438938637882745925476253248549346205207169759508632789596977201494845066688844754096984191390858953701717023062292404931712146105543789550872648362902585732589008852419558835866909596345439464581464833174742109668274426369994716116436451198097179607498851273063720249596763335877935523499759713191819045422454475815680061769847859528342318848413861531939582146456606084170987355645793260802888506525062022350702866563534378197296772791956208584103446713175183392929041292346360816517132208921512213490298509459065505158090128638394448402800600720389791806753851886315342770004415710078429282940682653182293343460250621072610334078786120726358667413469641456946069638327738348077887122149920903625002630038502218160899627908596315794708391025910696866880014945692631958141416244221458184053670216033619255534962885906270719334676676391154320465856587400395082030675494852740588698889298613364380160538148413230260746371613785049456975413939226046105839224697255218977002974011075161510126639621237249709294268012545043108678796017299398980064896810474948591516821578811116035995452097750981782872865061143872978526757736346165039775341291213235125122328992761099045296959048299231587072621509730869041465640793654734437948994459112561923297417231523355400509933037998535497033349136162021862369808844130438899414407226555139114730289548455268901778274478851124145203444239025554331927810269199146454741768717444293117158866565694448950304408464298044050841009295998443036636912689176000779501420561648575563731764702584784396156083329073794332992330510333480787346942756553873282709796906116596689809432296778314123341288312171022263419359726554276262542057050067302453270062947303493007442627008645937431268667879747443873785432495056591224978501553848576526612762511395194661563492800331885307182111408766192751758717589178651725391086399683322296088456627382463155744549404342757616561290566012959021248794100364045370366481642769666372678901847471985499157736363577826130282348610033026200485305352468381195935916587199660914215297131930804801657529764910220157878746879258173035411373163481898230703047346880335932771579955086572571917123043005724733764842051528018813866106869643083686746021716430977886314208482364737740226952806831618687803620199722309028799406648707282279607272378987404541467873564689170286831552670950438862450383894532826346355611309307339836256648599058926553352781706546062047035778399107125097018581550979629208122723829697602805108642108567657832053186900712651308437494642573164257663614886135785348888069391078157592540514559978258917412759731679985751912134220613811227129187163685470648145780481587331637197491481216180285825918063107133244627707326358426534058403840909955711665918674697982817782668820514233241241760985702098640157255028492042709964437105719167104605336720546493416560190293214921902157380453659517134088497590581509399595027568539762137173907186168119541859159491660704742971841458205613980898320143263751840765590798254131727843031707224959356263013473982236361295457405079164658814568115463596470526920944666619898704393081824615337143490299411116428897347965310472214991052562858617293017477108615172149993017637477709777933117503004905796995303978540273199726826606491104022101910672142045379797344291442287688212492518816176176101415706745580727271772801680241094809921194057724254346926908877993678722699285424409173366544784403311088831244400540688121709260640986840552593158511547111182479198565518721894263428870090080877814219244480533982835514522078956123867192276452353686491875954886446630941404263257264482197231402760521167503624462269874351754921886664053157415174073697074629159473853393135949341315603174943621057201450693398423899826860302413206381550638134507868670290974249415991176639634935220711562943440614872354554687194762718824267895515783601887437424976277785222638342461181455279020848306560887503212232330699981071552822192930349734163153813826565242301444358914313819251500861284129595146443184340333714342119484849215695973297493458589672603622857449889730210992780203756947054781698843017571631293765444285967143241404460628236137670101579311712786328659114474312319097967121644639539268879427610876694319281160489257516621678401685637128930094170809426945235636575416251974626034698333699780409445460409569444359091191528134627038473944990559656388070697044698629558047894921525376751400534667839624954575262175599769394550388567718087545408657174763982600515866912308067978584356542426810512309273736739016968896462515159980665158219926214146357300827903234295562564649200483846682650323140514739041354423114554304214215857472051710390478895499263894428530010503593721756596152779903250597217276830450129552641561513051104265847033479363870368355307724448878425566774012563630962732913482509289726145088033954731781594538782272040462695713414680161243696196020428669688508451663106511332617577035842648012431724425494033453275950711117229781774771070700976658035305698831411922655173410020226156172295055320231171498389282308759188267516298727841817239636025662661052151757306581573640159028788616658797529747155843778798863659093009444558929761010360334903865585392768532604000261387041650385201900693413485565292945956677460348074086222114518304250212021368740658496789565290703898183545259036706009581583539676043076057665652296620410422066907733776070019650470951924343011263625305195659737806802390116661637816212077328061399994284344728283311897170344114781014795510935670115372731476120935489443460542893545767493993386881552850958758157240999367737522331727415466952298778374095581995255063792248719501788460173510909397545438174400928701724598669800630807949169837186240638473497805089104715630767358020777470349149527262283880840970808938229590975850718535199890151463970213446449875784023623857227920586810582885119033630395167584140417915026773251443325661597849741495762990857964008746554575155039447194419243988930961605845381634285380420807485991669879866396341815349720708600850933312257369869767786821557462282600356574998720922704366915569584011380630742979134685023289553030254297211827430526630837697312684260456617431681665254423009941095254567674483147357302115580250064164874812223911548940108800368439914017237494000993073364451963972783572622348579428222260973879360992078735511295207739039213020208560479235382160971313277933408557080191957145204295120837999411806859684328303332360713126704023881054592275055001755558465522364167911067880880574749343164805769529797354859430706910197466488932338582081792411415985793541026011097387684325287105462697841824462266630592303437171124363373674878881004099342473382646521358216440444873503846325185079760946560172242349387345566489380830067398672019396707581673467408310277039806381732973051290379477195899056822213433963340814436882105343776847256637128728992078975542089471104830514139756087616862213933985525196829746962575732268089189319758292492259261833904512728311706509551246012705418996324049222664324942980199208367193022850536096042717325747597625564387032564613083391622125105580168507363306468136968132605951157138752324474889118817492546770909832958757881427940456360829092453947579477593120496910036652350041334267467559966077529130023245626428093532220739477438846306080538571318019252315461621174845176082669428542189628631093714147114062438567096198889009248037169770007185005255504015779696019621409767293312794644400869773444688694519348409670803298954478976286579301500275387027504833752657188339144568428488339248256878471192464407024569497161107307316944902130590000786124391698857442399765951008816242269506583392282543989205367704771518901869427979570336662478009713561450979876897247424882514109394822874029777160414730206659691525888654013354781597903672949646030875169975591561964472828345091314679736491468523851546768169814739891168269815292693547550089995104359968574006435828876659802889917286451123512547050860754402852295165443672607778424392037762530252218228807559054665013227657969977797587327260270093141234988515126972976617092126946046466921949440308296602705349954401636011016783683203925045082114427347882734856747581252617060989989573366485227802274724271306243373253402028110114743228492987232752191512153669625189984578194528034732821887658776277372725596846349473727178911053481410998124452385882259556169756106572430730990123427838560174669738109202185303273662606585004209001769446566142397943150542803929536230524118470756953776303181945062977322340015510743048011283060667245655212242270923146702853852770284921638061119734855017760546146522194926749452628682526233659190128512195997848324495516439385994309742498141706421801225095885696304855837856747842670440577451396594510245372346062258721132472490607965140493039277105221565351582083405162678854116219577050345037529845072336908935399704704648066374300708120479570891697927045678523590708225820045698568120823855992441259198536578837015916930528602982632341251371092644892653834092061988206585583583976873121199266536319396349008704753387180650214122873299897379823716763319598105276082222310020637301166570659577473887734842452670939332167003372048208639315624981245223876415082653376044272867559070646922293830081502541338687328976244663926608842494374280004138435665693513231647162763129130874251727747413368083659517278760996017388207816632982797710995023900740133792700047473641147866843264317430507845527590360692475383111504141464019993574104233295458466311479638235039576231996257630689672393274401517616384022764200073381252923887117667073684688021713004703717789996244417231476965433626183205504579697122023123034406730019455498669677139216644366705491022877870330461081787368731479006927420253999563484256088313039101796065873496213666391633120812913743020648534230292329026105571297688165382644186269527848221282540021649745553646988154269452581948310088847863302748469492875304469707176958434839778349641713635274189963706391786924340951394959014393782456013181666057166674678531751829028272791996459508385278030704319413573233314430257909702733184593792100674299057863007408276506870518431053481171330042481747408661544985384897075388837028290312349229524445610297157202570235323019061635861534100246386033823677207799158874884864749471339033946710516356090648489335528583440983111160030934791474970041659406317588616153219603471631686957378285495798353366785759838128632593829037375949760755688736174988207126104766501439670121113974997885698617655429326320015945291118022222037923861336360214720784938372231993217118775286291182266924218630990933823291317058691647825870292310573563266519936233413276637877250963219431772015755443640282212435951734195826501587303662651419913939650115765707758638848508545186807892642340966448610559286264354065649354080717727971105805751665297580355280203330466643009408875306975963856624948584394065480573067030852702391143426460976651302844202128512343147627855087541974911892105336874992563560691357316547555539706340805159079798355077791104901149023707611560731146780431081455841815860481714968121283623875196522273884010039318107307625850104986486388426392904885705007192228031512754217471872948608731767066833207408406287775508902552010917482098315711255782492958875789330637308654547712681738811094459465915959320623633391871783985171615664786920402930888879235727647915448257489937306620590845503492593241813205374232248603954466868998104030667498647675349089398119961970876212350858772437958105271421756493049559860615937674340133398265913373784775235964973910353774977305405914100069593170945884973626198136313146941715977233253796515476561594358229605618633054107997737903170294735447934552911101030636080934784715100762657710150782506140375893859296024479009588826265257165534964563894742838610938621163498912903914474140776112469663428188439189997956558064606550824321508488972087433265841557905288175411565462767279536161924430817511712045481643596569357173242651803934720261868773662957378286931629554026053061215601866414899927948553075939114545108324855058013696861710057225345805193809931671686608760874239299849469949792786796624129145251870625185100028023483875826899492801418160415424445880009049681170459413811598380411452712580044879927002214988044893428345179912432713310376927962550940306482713019049656023167865608876346249095300598566915222029659481885342994408842354566305080390841449049059672420529895084283824915072198481788322776129634591432510686068700845404952245536912405949375218209666927664582183653686390761488048775768323059714388333417144209643687076684685075055944295875007305893024113326160140338335995427532998952675241605231642793736414712405591535350664005332264037743738316785948685942110227394988587539679840033459707205891871572849648407598605874971898754314955715798390325896874513813326517478120135951711003198326635047387491181248854454871343904834188080610753735144665602607116112061146450893180973291301897912558785472968114073182244785961765134635318578600498832466462864904690789499267183567462589232780351427871749959624077464426462244262177334416336259334780947898289307880208201278496222678367375811871581756016306995392577274221961185076167751679356942651406871503089990432205604490253798869815109587388239324512992210423068746906396578409583487539797226212506172419501975309909480437872313478635657563931074473896745303849900925058646735152255516270332071207062711412613701170361835159973596111377797554132708147718932651400312315890871686406501036595342076011267174833961085503259471529766205831903102237145450064879090242581525484309221342362765254591687682524448448886874608039795545174830861541007073990847483319826302069640510270350021535599200876738090011842682157912046628073584407446653174486126573798213083894548994719761537243564315177694142946261746988588969911189058191054356109136330063662901004291308653880160483447133070953224695381133667432929442995278523451932203660025939172168214364261747753619570085535917915214039924551950936313558805745246265090436220611745855373348376976059708911791819635353595046223878320287503697398918432972467051992510742516865617825141370648097136219873122429977037483793145634462601276591446093681335747727148354296992240686831991986608689620767259867214052109342544778606775451705194986282970697603170472843467477699459435302474021054684561671528147193396301493718417849239870313213099070610110698372296773703723096504006384846623164391814408460249821388885598658812212035126853792395523160963428924116013846532613071388873397359341380972960898504369339026956309858856359799667705259901547243065827341055429235194570139805024818006505420435368505190133123276643201614696597723967159406867587196332088574201120705919236433638082459651711726318327273008683650888427427027417212407761190562485627094708153274956419248774791362514260959585068332160756824359461907820198712636830847955564281549268924793121600708086393179157714174802731599260860910401743587750693838056911840316941656435346076397644239621713889593659973096350449640809472736675890349065210120719295347150046669415542195349670951773472485140248079457454424036735307389621767861248917360115015947945686602083832164290196945494315798265923548593002699373366620368023715197507617283936866126781948100680161604430788400730598356229557540857374271963564757459686071247899856012627227033341101332695875954739747415988025123575368784538167960673765973497234360007539009878375445377169802030698209413015365913247703097978696148110019391980050629712702542557943406086806349991121682539601245490001418282417992971931166930032758086953358516940141749200614066867955642730979143272712922009305448470730743868370280504347549870699640498241860884917282164443645858233092579251572011047274423076195294055566346260561684538042612074879022750811646346710921117711765965020365178360621497663232112698253653552600875224221628633368960359851229121512972562768301380100619590786749798930821776310171206707022750332399310540506758491083317039490853091184367025249800826117808459054705239205505051254817794370258042795168179773676278688407418332549446461751113501655980086175829577083184598870827151282132683367526000783921994455868261201167074891157391117846676228943158987381973357879462459229598170167527400275652630057452753232082948195660889450599886531437012811357795992133838535156750573702126222704825761822444291432685793662706412910170755582276519106214302261748772133282937970506190264736299674495932882230669605301285301604724033433039931796514061546698212388138914464345861084299853575135967664443062993659817341709545509255923692743136200477739784557984603384098970666070267221294786238163661872183897084671292726000968419424700145678435091465882014795284791794736217065431856920133685821728517540229497092024619615796820700762154472783142916793082786308872475477678742623870842446461401637577897351414494799833546876058698788573615734751771367105302497756702155126721560911855026202877716472688907164887080434035967537284476461295768315632912129306428391969741960180820204449255994732453466561797028734644563004128023469762435753272292509660073593659421800393056178966798098953022535533111056382809305508507686657104045978106252131046767331707148486818572339711432010606766205459879244260954543798792550326661646972354509873195431809198738847945706217633662231102294948564143987876233373731235719433303984569038175874341961727047793746897943291028191476240198887812104187467196004941685490437564947139530989860832257792518814713713522280612434896578535917188318942841291604482396925600245970003659093872719509591177534238165093862034186109106595667223738099168351985331528827723669846587148628766352582280664988757937244577286619580481278035857939560780482299397465839398678951387782905944486466796681630816879160689087238565823020084043096225483602276167603616857442792049388182944174014049487870921933718391238622503967288013307768035156746453936916411205354164191769592347288585030997540671423774368889837082229261176161313271964079382641216878329240881303387118940876604638529859396249218915128081263771223962494612103822710468072290595034344802199472373506633362261982106046390134497662333174825270496779014037276750133860748847784996266973763682838463251728900378120766257056623870989503248318603113091853161875515962947266642884752577385397746523501366737261452520249485762200364228561106661516337963535267717792991312510849656323525962968526229191347364883940383979327339912379692368785224688104140411529175918579332926899536945260727382345979275518923689558028206436609141524894321646352138034836724799141808254008149491106255822508579841918625749048131342919258449089913800764473909207459850790398455796891682428542503583887412178047606837463040316106030802809933100743234468786461631548619712173259185258509108474287764625536012289346902631565722513779605132577893254069395666050837217871052157689166584615095569854593700222224682545834978825946061670783502012527191555206671464758851719970278296065058731180775491831294339565219351915171421229690952218020102204968581405833079102395537024341974409550814487439110611489514138465767507631897863292850403379727500465096192952111434706913445618005245479806211248784063986506776092553774936698251374922780722649584196788107337590670219841097476388737795649650852405263624158749410832674848284038785202516377392568165604377616225796564771554016433296494276027882313503322004600984885649203264623329114804055538013361022618849001865596440785990349988318730937625109347716949938075640646021518817989698133047608938064481209110538432060947200299599114717300786281697747622048749827284152755267757494945625738184626652688271993109152930144855660862875550670764002843083979270090750422170469581461626238205093001888356286058592359311271646774328411550198280887558177992929691853696163317081924476965076625381970322925036168857117032282297632752819264984959009732471094506393268051724807824719575295493265538441698179248160333127749732367329505777632023432151960874533216367942591320153910608763185268157115033134324526986764492334687170974841688433901934343403574335013859766928599949342514124382825112486339336148982534124786139011732187242094349200587097290502326031087530391621498617788508190121329577682943725869376049425002671217910882264002149368068879519261386090385264738017848542644029257169859144719915452000376978027055893199932040504738759934823565506920858174556555739778598167436080064891365643978832712402456592761516132436469954577713134279110792284001179071396084371897376548405520692380121088869790911941197988957110028965323608156605584096114535633892927398166236569929448437487055058620791775410246210236666420392873393693354422010044878343107584346652558921056263233265239254711578843826798900915386490734501435220496763126574633623071842742459905654200721679425575603920754415209054256897319209759925942363953943445973924811801984519613178765978415422488910775843670245436742429739775005809192504082006573904207494357469203621146895422695188087915138434910031552949077421829668960923571840547504818592917494405058778817049185101909926103254752555778115589098566117948886146894065825687429203831603128639087905047405741322475890820156284250710446644124009790735167498654634190903183529490305785754751056799464917541650433188726408570701760892769558004577958848053119162488555711810952992187880627339729407440231382195670465943308955024411862012743655788288744576183000326804621085208296189650586067647935794003966308679490102823487194644839714656930507284438773245918161683150434374190453248742514664103490677593939516265864011158805896817330277467000137768801043289795937438660288224347224993838955758206222271284918234289817133314126155181958015552171939299075974475360447564389526470188353305387110360778972575309852323982215653980944486714885360043101579284833337173138962041967581733295210766855258675367948692401468378673398727975371826188955338635462932334427383690603735966010853101334386825799394904278498749535303725748352279166748371716479085270152449762294672905267137481243805470470350115130440437090957276446981678227292124515317739964486403506371991556200310254047489783169375150345587778266532284458347525121240887255336360015562450485243908302925552509488083723841042981126470307000498537120216926632009851067610164834243083379768093752244485656956878248961425037523274505176090929886618691629349731203977371542353191405409038933760144245726467553505994883577777623416126923346873739505867034738865010795623959214532652140343790820939024742759850427333005354618968137100162428983250542797023795513943248991701075403381031302477149170828363036779924161795499221632668748654217882234414140929721870202853196358550213473559598319541236445678498983470665381680279349500332493980343250030528525514326729711559344274334146879380893156165250071752231573887134675958347283714597294213369711085501400271933065339519543994844235016228286097682225104273778150494140281951909974998930112648453633333729657988603963542415027228340303963867333033176358204529455380431095489500130954501693816587215778840778758960593846429791356209650854603772302213644888872877872217742959675111282224410022022987164908667325561520876072096673926160903874350876941998280328973417371290842107442688868567584543456583032866324085004867294889732279371576081750288104448983645558636959107788316869964670767599642590590559087757190283508183653731611914217005925615035291255035796855867191517406831987860086441278603523296552114365277356849384763183368096929263414563244815572691830933420285657711843862087238005624775310862015149845862779217448680409078925042042501851332983795968404231152326612017298745636756153711413476539824935373783462702551038576629402228626683875019220758086008707203229438598667152557742113824731127057528181469067088824819924150364383243707781509364566895696433469151806580990455456977805872728512679298090925408069363163414357058722887235666138353673977520228814993810029059408633796789722199444304975572427751070981590218893193049908189614113813275945644685411094986495703171242683454198393948450289439202150801140225786297538790556780411945927980149751542659367017278244458110560977179206055725659046815769322602466687976217020441794362912157236706348308199149157840043204488824387027725264065141447232245836353964420829090601838306393479872215038767242167756849518464912002430139797558344395118875617919954519947955389049890022463645946058151662619169748478691319657408579626298095018947138540853263841600716595970302162263183580908252472911376799358792898322036624253541309944512902144175049473822510235449777316444931315168085527575418388668898103337631026804415140283180722015126558408911522226112806935789062858511677904326329414874258257305715767015078072758655666239083719579756219722245232761701088225960042178051566160169530839441787907857294240206496987550845564494816887347805508692903559790932626942336848999720485772294553147055372598676217706810615741984979344889525673085069698831627904827065016671757907266482171034381982275883742055627218381030475855239727205010631552787125540487985021465774542266076054816836407343488909953095808379671718838716918296789282267903935659528207928298748289309327147367795787999537617608113608079655080126037609422876053818216784187873491613510775470772136715559885303698793835596401319079161919953220596430941614336862707064514616877776470634323726796985415351728418386815729258789552179564999056657153303800794266408016039383854711622344352390576609067306293659131382229701014099600532367394777433296996477507933316982751468048202019421761454522830865516084930483597724143072732508914172888732722558321667336494774877766735963597732218242212118972342809450990498626945352266543265173923951971691471695803756970520060076038034921793636554869780611093054211094930842759315296718959556512233976852959676522202512046871988807074849676288466895460823917786525114021685417682254262801781142897462176548668275336422121626633215125492690192663822697495892583819108742624521973530889298817370544978539833205922239483457564854743142184679036152912861765690297227164245646521933728219465309996459967902485318810038106108849322791684447712990382696173634722484994273470363476847165182510778571571492958026245090461529870814120737134501276485616748257926445999465215677461973529523398794798506499858730625148921442507842792148881591620387770993288543893138473661962984768204447655636966658294608217575722298578628167356994142066705285259797847558620342617462677873870347335545524958195123923339819713149440416893642249323352823137906759444535378182786853707024596572404833452938368643699785140688108707920218167933758189178026381755131730477720456434033376006291455586816080616854797976999494195987398535438544239895627205485767820025840899256380748496956978226126126701688866856197337371748507380731912817999527359486097984869814640883751188784125893152092846576562895924229540533066836268925563130805899094521816584057303938764397612007163587156926667714207240346719281235658632991415302719191391939592278827372393507968929604980491625044467703759718688048540207757383683069433222147221207421074522201433322054342626856441920085336219532540865515414652954827593022536669869452539428424365669828296200459785958029528511457428543193556541109874131178295300530924479985020357786461383996125725587755546108227142632045992894889736211955874652561489225022232103473302648235417978128377683707705143582733641371195008988288916128611026214753101563732573414268768653291548291758956453144154854390879914735115408130078997315167712514147275786450088723423409234431232661105468471589308324178760559425694258566085446983921568881276607833064062390552127051448663357926478861040484007857240555881060516829121491059207114485490696488562538008612364823603211189006649260091586313406774358668295792128108182357062493250096035562635976323317372757223405142799911838525062738562645935304105685437535838346398472394222349750555675604945144297641532169740329878474751742728287205617463230552537632987892849432711268373437750208171232241647359263909773985059065068292200439714744301785204021630599414978090045070877212011672122672737400964354498188418851332264050837097750026050092922388987397669303676866143886051021947587022950488122504411612265199295196645691232602879036729824038970138712331223190047637621584894146548332944091268610040537834888256703690496142079832847031010015683937170045036261297061634472222135741966329678730694476010939107617349155654225923361907847629137118335993493501400530181796289430761836573986459955596619354892157949946135589307757302120991241529080018329289584499290938612969281912986993598773819151107783674122427571784783109953482284683812973466995195233887689656961533802601451798532280841860814536483292824311603807409093939217913557218988881376082442326624808841281494133937459888428980768236993317579558340322001712912984613577427868832752137379784617955477459603879913025355897058012838247736154456284847843113156007170694617338571362998541349655854450758199767936529730876538253629019769921535687841545920317156896897263294414869900391716163890286650010528169548211399385827168937561879142931106684431544245469611879346668272909405906610223369830892655096251538978257352312925525928812302805066532617889331202569460349541092432366941414829266757579577044220385358959766820750239432132284793441112209278507743719501075139099480809462968242756729445573837361606898734330712983991343284400806390972846116888071843057394582648515781361438568836724299759120006922199949860537686192473814933337850258557408214790110888089083112895959909135940006073829223210904382148698852997410074673679811439802070231484964940913084090421225807858625434619435390002353667086886127639220491199062043916175197725338871195039167110160800691481942686379006806624066402728570593984000968724134072785889372770728560564233430604756704558775056817341638298090686838601779237418147987817851389645752504191904170839219928283341413708293157063494094919438038181791646820945976467736395001441075973020031185503265359976794246150673369193060275724943772563825190981972183499596145809355763423598465561257277844874458562107707420529197020670259542915455303206037448050214587837389822765238470989978149604661532332744413122615347132704904172691407979912189664164329524211303691534222375319072686454371799407809587877325798376288271136348704791913456404670018371089906526432437133887796620556802557057007048097417170428976893532497032699441443786182147416615081243183167204870767792349844201549860207415657934855887622017714497682994288835547944815423325876232313496380224937470800748026866268644793926906719678556877102678247919729036767074291503780539779074382159089095329849453583970785688676597806013173391952698418145241308191484066079855907848006812703465507069090250491315696415007622282291941209074558323735362064610382929001945830937451034494743088057998348217542526664287586910186032455176146191303213586535590797836444727353840386770384792842197394556113450568786861551509731179736908450020984647427710684969478853728629266877830959536711866630303048002375642231378957958001204275297892653394016461320495383671532011620268924148891879711437274056296819631231634578992694177109681887486409951269235734132042110566470429103503147725918930093864521079535690539842766833335882808121175197704479394651241801126922498925214963618341708143447251935186644035956751441158547711044802375610056911619089620047047741692012441431225789003106719888134244273666991101396041061243058414096154040516561557056032301931180802804080923116694391180651353235965817627847679216343940046977701751138669950102485620336319937506576631114063493787653115309588530209361273230280874474999244226999679665763030015597165623756547862525978517584609675534153320928022789978520508699997057708279678303097528937562908470065452176606083546320198468094154578676513440896809254530984115438578257579904292834350147723021014854952172784689110460377097763142925380254192880934452070760516456968212668689800218936703736971500864988026874011194605604371767611984977012524738380256325599962915952889663733604960387636481020409501295678664889711489432364217478287038923657441768507847793247931497335938043431938449953052058823638651853156463347029540534724294530237767608703614421861845915329589286264220397794769390381139929494086330614787631775809794978863321384538911412424570862188942607271312848601324430834381346803578528922793354609504431589357883956918184520751895091154318446151552773477240171273014224350153432677832308480264245049516297943907324332367294303908592722212247017018423981896872610702580387841662535991837744407797320382029869935520036558995878062018239414227189551902038006761348537165277747973074166544795771216596732904860414769594805241745528707550700268381622139614517028472089515133033053622762848311032594461357655993458457426443140134411626051742084110655644391736791574709963580474757688960708712929947078905219894193822992283883713766355289817834722014514421593369960943655984578835921711183955803334187106108069046369279819655835256536262078309242001412661494192087830602183875314124409449153627142903201121714494258196369123915554080170516315861381725506474976442129285698148573188460256741079621617589257354040589852730754573148967231822183075823374788319959002015783625602403220280454237617933052828358366517212875325613336845268237019701594949718454342248597797847178070931929360308961391225067817106511983562834215968530214302520963670376307249188653688524443412349490653207380364140964041452933543170084693633826929433489793675671578954831772157891837845963371210407548767286194890166318219981695046712253286231364855380264930031792325606486199720987270156856657622598803079796034118130773817046457110261316321888913391976437485053114747190430842618158258707607427561649241922122094119555670090833523614170842035237499435788602985714462418414648579261878987058845322914895379134136327103243051724209642165625404697116985903869333942473283496788058671698763858948926397808632938236912288838454694530224392020566729382626540552842146381015700995195207400723734157094719490216546560352001623491693521021001283695882747545757456973379400423090062680597351961699157037234441163832592216588421305183263304810442552443749304376614483808820841524164069978674896841011438392994662460027380493624606299652653235986716351252660090644562540854454613587995990781845077952391245471876298429406815667958081699793847296822638240053775393656455333684669852304085725208177815808831908088181169405860929210972348358625250505772590324091268754552225551046362471106552789681097058683649088701243961108708609419259776980604392959161177046643913396703820477901778005174064323774656580049856832653944875440265094349021505608958607841029389725177576596720814898075146221645442589726626334424105654666235240393221195409320840548351854487228572240520737553319242258203898240892021363725460238638441996236876439469452967773162532481907323942264377250393960861365513672389563736844453214495596008027748984693889265272845763552248942712224266612138893568978667703694088298034225015732636540383727323448590933621171334587707500196445329273343481107970927797688124182313320847368281849697934782701167962046231515900546846326084260750619989352414378871835716051695246494307185422855701389920543073126642730296564816878341580584280882624210503706023959261526082319519663341241014157892852296022842939589650661794936155744769640062772620279458348212898069552565682859544155780319637343274555072109393070092517016355025874996147767782541032259445413027050156781608019062269234509894656852512922708545980529633121933140265261048231556025281135485673961300680693480085497145612718864186166798578224320190637390735509339969904203842743337768372926924421827320753383675882546607656783214142158655680230257747327399217202732663301418984054358008138914255838158233138670791655869305814868083206804499542133467120549211676357910382543227885566697881952600533784029587905235002548572536127458014701362225725011182244909681946536659924231969595607011883830289369778588418692843769680421548322341489631183108779969865395854648067320077968209636997926847512137305494052056761994053994735492036014175391179693114014166077361220667395401144877352217103271456004887750630550231135371630775255841873587357650104411439959317549346148223027102781557678464464596841703727019331167412865933851072360790139560125812816099685977764454483063029384850237725514479297088134370466472262030989473031124828594212905023595654334448146207813702298750982881939867971674332888352900556391496297855146973838421980641886410949750124935423789869821944718423483544465138894579387835457190018648964149395310251210086253319363464532136969703573283628978378997477246980718219983692361970780660744253433781447771905271956671650400827522400056297117447402880544096951386631803700033446493188797186544833027389373453550799086520183302149951925029470198118499362043028038171201264365843304959547789560665894345129388084799346249133341566020601041196125837039907405375725561900548768971486439624300996401847146304733496412945559691270633735036061114896737398896855094377711203158706774392696275074148015968184628467290021977826872616797804452625125285342559504950421270489917585102469827438086533605169305349308613524117633496922336516180412986217608962739614504859328995018947127744870660400861455453807090571293259505078482789646156357719734015518352194770059428859167006579472446423256964595034611407022028760338675157806917780491949112039931056350728743385623636501912345087969363562609188488484667799522021636055100108687137786297152684943615580552496171191782412731291816736954875889499848306072893316342229965493057279623856769844843073399916427420373667676904437471424557696352766311241453308274320015369843023568797426867234480530723839266373300232654953274032384459993115843624286989854227416738072893509714296857112694663061095396172405079022497294122971580130605067909946918168384719775660350757167541136691118348580840136999146555993829383776192447879856358518446785884932319518477594400522300784993821231688954001942685508856369212054734273764862371486894291799281164695429266781912868199157852963183150557166208003054687886585738301642461535006277944197930338192840567016723997571143004617787143852116125690695800031882768454362284479490185465859725578627547949566487545919051800524301310583759685378652572821563046517691464308913892629778646198440313581005000814759584600694089445182691271159888866376466010753749590095275079095573423132012269128863337944367174995293163714515733121427936192499624041987241856330963442093730790589945344706013433171295004702150167204984190972148629079539094172406708887868167307319355512511598623017600191595864840512660992115023941314461502753665595377706269792747688655824507601910894066801257680783649079528266288811130869627167510979661184202693493037894235274836143900652084950682385137863277772327169954230039669595834329548939017886032919252826829035086485850050031531436859339369797359437622120274850620365047734649330702986181507425716631037975275756679134085325215899667274711962645956128475905247417276417780923080846877318247359047861889166793937529544522088524857419431861227928723463638761241958841845756526144009421284865606873029110433300950400802557549497024697393818146675621143148765134766514379281520428746934369608800173782960138079225095810878475049947611605932391155813304147082252287591479418021878003495848678217133945764721094208810755179909634851525590127999502470016742794039934058293232349425150583436174238764593131950920199283591782354678758362240844206513117898425494090292055626021383175854253925647587494386038873681275770304444849414996963167559809101047848069451181864204294285899399781533885566502547419364064962787147850988400971461019055683527187865955263476819407504193688423568267931885601704386760539868625360314805289124030901221985809209335659733200558198205899731186987265114152579966279939979138286865760581607352962801831756687626678954058671499541963369320690719740372362329001537407784034368133183767167191809481159030703031635884315504725233264664055692351714600639455465080511161368983321366060148624033079362640157352824327107975652580859968727210134904118139543757932707965544766706523530172580499777910958799356523015092758357604839335574811484663155046281622978254739556717907391557437146947165175841318098431939354433143213919739480767467807670311841464658109746773207264935142730573425467903534162481485956804647160639978130449199977478690607421977440030989386723951211036421476177327042465111914716866702538230084793864467186011472769752740757137377271641338108473105447453245282744959923618521811314990290798790633835969168090809008366139716384074913865206795536733604465335332271977403135258095509361714185772676671890036173545411745667168865031888043474850074247989623766298849452055531601271740392948535548375898566636522164611748654870741610338907657686593000267931252353657070947766118661989672925170255843788896988201652293991102552809644751801982042675161803929295930375195090215663196436458828530496943775903860866981782544021090762643802617659008576921716473762337875082885973926477297852916828473716625448055348303677465223441854056728335568457369915852152775001501052764458835844560746871387796781637305620536459034010601179777711635419798093252882265967433401159043099260898195594192738863388374670354861020595410338187896051883376375204694586189033030503760717412379387297377608075155741929775172349382343769556447097326902563505973803012980552742294607440742213582647876073181678892329343370640921030527791756837224584207864966569442507209003985556810281091961190017687116250046976301208736336378705852977141370030691919423778477500350797709222868304384276274731939236894949911814072086688871625277125322996965746057105487975883149220171529499824662959400139397645312030255141446141494351379722951335459308080330048221873347984662464202821702468254609092499455876501865010826901422042594092421737165504872483599531324191009696643774263069471124654343503216566969364096317112109024464977626495414762783972389404489033705724268651564731452232405535739487871269104473451513489112660070453829439052989610575909543113415517555998224948060738747402264041826472270900069545488444043669811155936765050760384330986095285863598184991827978653035139264996205734378303747439749754188321067254990445292649998115154730295568194379257966564721650524044304098155444873335406508687072719226077558651448699916359094669570240922270786946140005959213451846880877216883973391596657817295772942769865208700014054529434753921184067870895696022307330182186333344750593162077135149717586149257710563393867885856463393817482305866119901514024205250481606519602252265946398489523038095922293968456771033218823539597726487309081802867279420767606794411553967632532056143460579618756944476315641687683501420622791389953002957486254044648457688639889924942519778180896156871931616189890805296153034667665026739682376878358487271519766915834902400278581658576553311332453852133249146544183239729098493794068701050762541892438741779043823500936504070042438709249985158795570966774080984293752831879077702568069730845230958263234734664749621859617891742398023415318265367796188657689800217037565237827017847233611341127304417482381691711748320530904329788177612530520419886728276825452498972604758413646275313325053743143692142115232779623302158792473509416505294777861514962063020613791972426099200426343703954471823987701567985175788592742931479735914518704113687793672458453886331403125093764520378272007461706174691995098378747851653742605148781795923473965083928210545662277971999480817674416735468008879713139371721758105970430526481257536683460784385975833179532159963288631325917847671397927038181345042643171019982654009814639314682186244566844319104017606873028265468268382856656403893288558919084095180267492261735811876303386050164919512202275094862579582919388981349310746802596484109484455736169461039196457908412433725326435129016642505961984937233952292520292061922295592458571923157372552674734146471498159128976489142414058427945274842058999273837651743789518095913532915362516696416462399526516829104250865868579831645083498918902284203237868248620830382587800468514109872339479276064620274240731411711527933426381470424782438812101885269735980401723171625116042379308378233624590953458091207587962044794456022948498956069101594437424378554320287918543629979689934120047446952906861730569087951054565678848482980215031992512941690271293005266818948903416294820278799972587981827969044425265151316863635780206190905763651320717526165335280057016998422209434780108567528599389888380636380555043173963480776326004928626616875846269812546675771005889941561201718877419174915621566863311182126808359332309583963232281577891621272635329198498185801128852374423929693133449879640707983836837398354302624145860390115645997307253147019673580514912738215802580515481732416031538771933441047219167094516710075731393090441114565371569197081030765836256595966881969653915488095432816365064997970398396583594354310988106389177211545542142911825416860339187604260507713943993866221416902594210068463982439791969024668973649294427539770637996909007235119394557355235634431083534314446148213063915730397313303301025848274240422768426337557667717882027041251598929698837262958196830121837902735688450191770214449950017273760569655712811692474978050016763015406847531678730356427800181476028329596659859390947907083847860869107406642037776167783166147767204079374786294308838806646116143939475224816347361887381993519347422558590763384736149068451064286409744359533220042453726171992027621209945747754085095297804405627415627964198716748188382360778692513286662582543866975798943542076655977806200028859225848166623320323754562354200396265803147639074627663203496411271367585666031152761489123925546509863567071754881080494775823762605940194729297207857167190373161231325638448233989084998378370607900381913987193539647163277470163033265943911519000536551597603693680451117210211461817169064835596213439569830272320133992713402939024048068845791887316742857946435322148608810603017637654406047471256599941444689722324076409963390913570000872407506175624786781813052675099595844627670053466381749660312516046786168054876593981650439219349307680424586377430640034608276976406022859544538802718756778020605301419532587857971799950824212805345121986117800691147587001066350861501653827144323832984503120281189713749222462008959576153875746716953180431535594140017681631806475878809978655095896425171138172061498521855847333253861186230596231792636397571064568783880729573391612566529606752175514700395786203338076643547695569789374019838558579110428654317943802029943721261385932796706300077061767963533720483521281115553310286922878220697881614689558797232587413794758978060935358953474188823082732050899876081621386503095920180158090136913815590230750778711990891582998955840556401676273058575765054497863137282816955208410263923697414038083081775274521519911012362513941185041349746302269239313329613596090664287433146570973982293635276323623693259215949415102385396518677009318008662246449741551292347870532726597873495372112359419048985659845687595771755356352369577817542671395350047173202263201376470552531662766437389168584269234373980013662395761146956528089521783141971096726822075896617646925297463945479177338699050776384771023358213151269746160318571992558901748060162691936497329176450396125056344521140610641588365856287060887298204144759083940672995698194688452923123430508467128149059633011464201017520991724451160915319203774909264480564521612871317391050327710180034730539965568872264938905729348467127210292503598610854539101584166144396391658303980206188028313271905862272099794947380331083780304809957788841136221511120328799195270247613673717838588429816310595073779729596868710356584792866706840231136662324894988232898950045339124607051920480010657878493700986912441599197271410082862568934527151412441619414616195614970140748639606526582738731462010125085773702586010330345641583069794039761849492097881565582382689681547345796719558143979487261252593447905019555599428461542414789140842533972729539156076276318071833489322681322093414686402254782642621192682868493731233477114158457271574104365444265343652307460375882095068198416051863367700060199622634299553518945964625722708518603716725151982993003909752008512612332778365787033673691909782859887623750595426017276764681204120322880887144297083701327791366869952404449168287755214083681811444543626734073850557009055727042859000426345442773994444195310709093229365003436215593530623481311403204957213903727416418489674885022450166393786114538220126339097803224555534009582296789728462159958123702272200622465161659638521549708920681653045357293192898511547476023102761274755219426712620485196675575319498866212533297344830680979424551321027395721300322292868192259555877697771249865275338023048947356982039140808430919294597101528448925024042256491184647814394145384700922658468732799720383423685116152035909711125963814426670575282370195060820148756845815311656984217836953956920027255247899479468676097032152122090107267557360811829458157034047112178540705107615817947890831512293121593283942158282855594252452740590281906210685895294212326266433072449668483154826448008740266361080494178932824660838725868947651158171041843229042650525696629258970950925810886249760814121181364354079065247240811697025342543921179459305265114162322183755168190123120359852694904822140183889652627401445494878652948362616540414255968632478272665862622718314831548266927702735480696760952204060152608403481595860639381481410048707829792219299797719929732955730933318935243332786247296397336160874130684409928918517676369960971299662308051219609763893660392575729313925671081422449201881586828332819961986694783618083825867766428419153933870466841833646633840280505168382613618591463057116248988145081236009342185704703215007298063759422652556416154612181789598660054239440727100971047675979543395520366001387771814370979074880200483124937011877427372556103939926756561024308100523119615666302338903907666622177008163703581482269299614988239875515818262212690126528448470644193069864180496271892982373564703621810132963243123356661928771314147537201970775827380620068832051752277743988136794212224403688119896132071378698288874353110693093352229397324558410139610250047612759519234486301742373335922414020665656656168192209908516958470602240303286106734176113147663656673463713306313269647992670050604694183628449099426947600090065488810893132113956563267796148485912680735599880512524919303009783736893858266127798901424395985130421428681717561903926522663253892744605161993377852507247793100059203467775323947460247191001135477621901689021168113235136438229393133643642082629559084446402974212103734844626562060505201164984074766146010379118148597182796309960160111581054829637424128045648597566530879058658514450881592689655323164387395293310573438025521793969843798499824769808573886822316210976037598878913898754489332995232360299478364555844421560282039443131752745214139921317387853770365012292622371628766550923636613439295473318712541221161708504781597963310676434765277846174129557126509973306451472396763725177434027577915458421939154084796171912327593541552313673971468870701818169686425623192145159259309793063377918053313344579809981905803855274113093143232974111986976777557354876676171607556628947967505493760691240414612269977170014804816068205423021447640726240488755227815650309745203728059641976588800544900664411058310896081484834905272367647983444300825224208722642679674847260924692002079591210376428434319081049752436395531077969863546907294621372192211060003090511964438160173698894342870638268139721784390756346912616353313794636825308306924322422617183627200456309496840386593381671129409826913877804651341517574717392786328785558329332819219780142800727542588108336843477134410896699034826950440739779166287824175210115769461292973684365932758266974065052254011190810779859114115926151598247875670540839168346592551216601808036011155675885631833428935974185575352024705534262374456203863633420100564362475801390216880540589171055234726291313963075897421322562032806866043633055636005841491563144995851445158048056190472499382730989602273521456400491078235667985134989818217029994864770359666395759095540201946311736200899878501407192492576767112407687238882202849435977029050207055866629519980631065354815063362506283079971265491875352543470305076439246910929648451985606247355700103721136043955628874144438625108805839115479293512536615341712723419847657834331058302574419977921356445339590909164857877089037298288693986298417717252709795903383017116477486576467472959710476840462591908949913659950756231346763135918971718026432698620530970171659102185008449215040678624724143041630752752625729355869599508720447526563213875210730733036131765324415554131926410856733111442621102951223762892041119664903669466328253287010733714779925713805397917093219892970264383693126183962833438173663889178262778823072196702659412930908838349471074526107551777194288878301898964067921208416189745304881426457598725494858113958147179890532917019039693676580056908990073322035245471465538231161902262750328228960637321962542927379376676786392788860227616441629896479589527781946096093263451763836589931770553265625722330231938655199534554568872721602020267050106345033566848913367061463951451092189482112522830655979767666573898086783749983988496582388427002966353830073340056573408313090778948514384393896071922712502607454065522620214552718157784040202186016487775292946926928231917900566045168328838143623038888582667431655267316268292887899012212211611704583866585809361309780954915995888141642909644353322327257167832329692598696528614702689645877417749930655282039791774964003720280754202263772702912275782217434605047237114400745233076818282568592267408684731775338052938026860603011696206742407798148073344098848342772238855676882909409248402835021631428317330044224166031682292419150775838022511270302803194432303865864304729983270366093225558196730654612871426480358205922517469814567939219061286443643791458386564915455248035426865253234225734872236130308564333370992481003483568601303469011263667212065612816686695006936283218113347272887399551627243887514329450631031402484983569361493356161185857591326159539664680723154296163682781884576686428708425741212155164793342800984003314007852708134820121952046466348846437306199251347312193586721703337886159265805435482421023002706925306553793309711092849577710177912770979611065224763506508329650957262639306754770710745867205115158805854303212512344222165100541810903314924833045942669941379760646213550943495229167256588500686827925385436782733429989982362497760450411193914595105033288504686572165915770487228705238961951562680641429383200379179349698969404756766842435239628575187974013066081354438182717002974940808648904371100880372666000745648852290655718198158918199357017287104413655629991181839114932600984374406815024945488297653465905371120797280620733048786648813531431435244223597029674790613495452275219093518987012033793535225673330657334986440950541898054960276180795834096920224485735866496540382253031657873052205678798204232290471296340204651971724030798098313193831592337453425181977245685512331363460255341176503253635679871725833889925990682320865337008154254570830535733353621447526949502442358387446526767621289746157646814275643117200543415890218663613085954686976040150588864161484837716277916864626565525325070846446853354860769590819186983127898828104283895260891586736190463353088452672620658617308622329861745428358595978450188035522596369370058246575855257821594487201603152351967440975098731638198293017597346333786988595954046537996098875462063099551416880708006777996137262594320285758462330239079529519459000472554022456035277084125452771369563183522817787085763443188984668294507189114350556924929127685449218130122350332709420581713140151145616638580404002347144816701280849470860898265818331129213302090755216123234019276204361524312416653419659319347362621092828363010437631435917429609791943127178714693642594078545950060014375000931689181037912178647839906006355868515774958239545696893052252856654556450102076382479616931906406000635001482176278117549838811583903745354273198166199738571019992925710351568400076499325957636027423231102703875543738837491188016757406041112547132364795091972046738228912926156955704023233205988021630798907991927800306578112527349959525250749253591192289502316862563511437157957614267085487865711390604969932812621573699133246586739050495982777981537692179294859108045100889120390987269664440054358959154263905218340816981551052587782801732871154770076957909697264211646595235517029834433355534370374877178048556966735352891724506536253265880660929316180195108918084651574690556771603608823177661920899771852710956009994437330525687266300702441834430143635982647488608779600129520006997852133541302981221376924361170245918214922377963027684689927807822829647325849481086217005766426151566617899960073642009184803770347370114363335762619266869951960054344101647758113138419581221389514963146907450601395515380906161536802587391448445015864985833802423010829365235261010010576377735252651729198742050942399148676862749660151121311862833539358738941686594904715844059910859720355431267563680864837916247301885346650758050927790672135294709548524092632367705361195459440059534668621868897093508485963404740402485853407857035688583897544276024410630073920293720490313410728060433590143781872732617979779390862255619614242478407640605176151089906094140817873677477634466871731861902669646421945668647897341511257740717634387251676996691819678906143915385255668863985745356947486112293102558595137989657019693546319239782086817566699444538700304013584039645390151601394741054501566939125365905681775600792684938188874161356720699428116641138152726473275659450093109879995819635307884056835249365880756217107078952156989680262583327348331462811749951631080498569464067177260319654603762206784027305889459344773406707235018628114507942704702503956515190292577736681124887595712552031080321964220028162901509241804569457240237380514613444342013469272058747613475441048125985838026099976931345611582452942386318813613525230025922668455739994865049199041713929003312505434814995397412379590886218408245525262615386005753122981738201651799220016643613825491772622722995982481455889378962210864073182081116840019126176834031520273874437640064044561398415304667361060397459138276365584647045122547053129498031247640268118721757133641513299234251010060094184913460464763289506539681405928706902874880026744313323326607542695361441878309971499090912610539596203207233607502335042285485835700268618648039071247910340705830195494272871697440586802040743723384839017915145154457666181954888203661919112340760607396659752259662999692611473598932517348597064334374820597429511331206894830105612252355557157093049717937303305354675494268990847928793666582241886282011362931332625413326894827115835399471393052431492830742231436891166448723570905179632368022840793248401047949330025300503423973603047005667334814653616111668754251244596196594870624724938342061127977338918703082719826114841895288091950881536758728837807257566279925671223576992070071739475864086754773197928296913987362064383098911019750313305448400367698474319262689565929535242547377373572451243359317146730164679506227004891749744733886663905313377001500432542897283055896453185876156273494778618700162684191308365175133955618363175919845412987217840695218022278170593670174888736922862435320181130924033241627136012746472953400873165415303124534534826811976686066415268953267592857640670751474349692425502062946037274035893024181348652346706846005980445401960931818412313211899642737230475856929840708022142063922338772270557066073156468109837548907381012605155382510339158814434233181187100954074522172682093960951469109814213219276385145911896267278613243748033711170054020278393384256755398740689017305274581345810652881444562135920100289233127704827905353398421770456196899129436423447701309692807048467546560048568968482534829544683058005485664203149010970931331065869520885188224731109489356177643591690863547348666895311182942340757809857993997346556621592893168144979125601654806373373354595797758817742975304601901428381804965125680995540589869552183323056478323839495148688966621911496960925339432905336537356763071175149741574941255881976364118437440156961844065730941133103342642437434964290391612019301078279718509489433081395557377173209960495441605707698228227984588966226736336638759037331590237078287877243462744367019781152620641706661189353421272261250664734014637101146178208001205318577996105342166014309651860631002189418176074125799254021125891417973981066040180818186813240546744587476345006779725933352368821397961165416279641256366965909265155052322423494949865958808293123659225441229164747164631738745344984557772389119661425771333566926854314398528343330551606766535982097864901053792797871474039571143031002292015936790334116176888231026100784412382206233692817041658200940805960939047477839236685420220547990983441225836309613346771647499110415628102659055925239231842086584102409976092639702995254495208230902629528549297726715297018865763364017611243761027886247384211730826426745370306976720758979222140266758837820601561808610333058515421396227554816390886872397044473116866724804939994661967523535460976346978909626704989890496306642732881483154354700192873130629410287064181385530150488544778738813821395506763623013174468162105477317850327722384356853041389884683782931852008326329473848796752766339057143412030664405453844414382854837097187275209950259346370147689719224202214141957470115285441708320199396495342601036041212670703713017571733563145171243895213455999034695845859056190110377079648072131479361597244568894659805199069811904009989701234352136431696698925452645402668288132164578109559443998997405432610998761116325331656400475942508547972714581019533492551228943856358502573419116436579413765475715678764606433243211224001233263606193090550660283271691995507793495351894041021902304661414197065619610743351557273500586514390225255038863923495959556111777311262449395467300657041326735599008239939101873696854593501961218131773722398489502607010742081634761591382779660715999042759483202812094578610270905239784461016416094714746971881800101238506375507036855600971547377263859503904304421412272479399810873255401560157526836616554435455665961680555720401848621505002348843046453057289058371279755654779026166013323842719469180337629089082718238145329700726892330355803802623915182611577363558100455266028150719737203658051094860100207910598293034040330163417323463152902778363706742870952881283221338711204998577354227898217563695752170622747223230641085390210933923292579229945469132476857168763115724547755668849578907141932965251458785126593327765884374083767804996821750238714887516301694695390499595298064038010509473424135565423843784057658006503488548483851833727465704707339652189607074288628917275989488495073644758545932156141246407027213823881213832799085924702568509258615660414366658580998192736016393882466380492102806853025885394078226392238687596307746916752251695949409198792930554580662037973762001785040906097208950430436109479759319073495341981030065140455539575445177315066079909586100664364859562547223408799676979004511785321918238624381182227799765483801712923612988908352533389017042082026128128399387400639439473646429481267837142598633126015531300512032580396222998227560501464783728659303219701209722319652087321037986421992815860559630044786359903002837999984376995981420987933914739560330431299307227418261137525077264791867496935705357773144748833425555472265019821679434577148186236643274660378060962846686761489436398319665536325022045048298344618046901357066807537118854364455466372275645528489084179430869003560609839537182504843956350700314927529289982636010318947606004695651770407339156199949718587220516794158925606779574437036739123481702137977094721184796620664960813802449773164944960489483514223315009779151867711772612272268610575444193148461241686099537193594044363308030457638964293633375056891232733984292977861483859591682512490835837601528037198840976271800721398472297179648019654042913370023573377149956447522392148863509043494138694056886464173914509180184476147090173432973681515198784317667726474910891298201640304020436393545413958289036478547227731567642630554989999207290019383695416176549820202990351276835366638875522908226781953138137097200949885878943067565729121389656894963679000488537182493639887938634666624724277396944761685222509211772630248899774882950106906030539472735385600476475059772449262135842515232115223309404865542980275795497780842807305923289541262074346162468621015334913050437550330235140892272177562317489194472422301591885241865317043406625179108621648177861656214303519024314174583840553048583010689778237722686243061601805413570274787120117716961978550165595587517657213402963355747823704155451047185614702751595428483738332653618599784315104106837976643207436432310157202754687912946649644530744007713232166487668754965435421037526384981073599784684495049312621357173090571265728940047009103672162874342394931537773251735862048629971844800886255943072225441967585218351823097342017014712642820229876862611669388796965794071302615728202683660131250076781290488746647593171314939163249212604894917450487438305626315721948780491876549956304379870756280206275074888429305292947595808518021811269298552626507415789836626381228489560087883879642713411494770176232661293346798931259727702512892410599469176918432230712121553926974386412133692342130959868427639133621328059529539235042336245838451021152347690400229847162310313237979563996896140521695707900981150358074821606370250753815624719541929424580915174855610174165226760993667245789282488822712217365312990895592556092558647778430576923060102461128741719036157843335873856440777385652581149118396959442274902149804295496763506115892194982495510565810099533659955875949481064850640219650084949146096360975580429774986920236189622169502603571662334731684131266683111594747654655474707473210139752117004458293690329090814849935807985624987769182797275435875313980764407448697303816908042778253586410799281965519790801078358905419574194674830984382780531579288307444862446450789301904674057232091162977647361094013296295128208167961476153580112708792431739078104173024412000830520422194550636139739969425389029516851179365821981072244583569736749488398991837194960246179351906378885971192246717916070086798912269772380143617940567545430929593283015723461171806263525861274954852474947410200174892810525291590199242587601739733657546175391116166490640337615343111557368684556095094881239867570989338311171369165638136978133391813408409965181168501556328271766905763559381955767979993869139641869462144680671399100072974897248310870707257385532140726793854703466134427449785631667080896707502049401301915728502288221529955585675862094303672664367527860937040154867548028866115913804972878636127015954912630869175822189882312706986036308329286557925285172959337495129524196242609408382231156056471975553768808803122891179979643774016430907588087361632872609490632881064223584955471708876702986540107054890631614443222593316928166963336668918019268950846302196305760416766730696815060205886116760654325142242829572905809227498056093239412030509654968154504089472701907792628006757328809143292763753070266407202123263150601963466437833501143739826004220727368159329718038288077127432886196937136234105277112354512353822767804037368759204501068481253898429851441165629852761317171239746226362957304601350367636168123156149812311172938353333422823582549400029600855005893862610562111874253245429809359861690472104216827468389280937075592898950938745083965499971702475049002793755135785863095187734483191043027721666740986630200715860507594037563525485397962358751452157817717514564879894248263719899426699526092950526839147407028185963584162983160925211054319865670715648426102071913955158504576847673667198089698438974382103222169980078359622195496073098289137200975322788718577901372903820968390046781381143339834497750576013927001466453888647119776014945838905514566454781167900365980782082017175394946687097627715430205053982230945520762913782760375401391122167096067717305204420590468966134067756044258464203141449080850529758518333958680644559696083390981628683803779446202520424143841081347674879952762446257119481072907479161584568494054247928272245374854546855849966481124914770933490426390422692539283780890506622543165904621007480055430793537369640228427867467155159917759931296516702633113551274007148730614869454604041710044106839949775183005531459201470167641740445870007192938585448774096525017453986089493679577102508669890429900015916318782583565270491228639396178612744128493999182881352770768537388981595920644941036398864604572465509335683549331347539098377489725715675935486665612503109975563549040005569101842011896636269499666760361765697153277572991137826441675031656076943371816147314790442844735837873652322217335696808707515204071461318632183298055285058064798321981569891896777073892307897208818677910619436923029785480718160521734728891340268686656764288460751872156999155718762525532523623731841675237613465745044052483649372636951057904785738543494387736753535580226745588490624983966582436915958936288774390931881903540774391707102607365786515549748863866070642365163692636956472454027188459952828253451114236912609485210102022905300528727470852506970424237189101672366193165532772051018380209695384278409614970753145472374726978717800052395914182580407699730782036105411551591976251741568512991672420624765669340418978437796668358013310863683814455481795612375494524391898440974911183446775579200638191496045235782795119439439290748333797501850089731961321088852720156849796399389630327807800144534184259262598326137014809518412651323183601531329680390228160212181424447729653594578422404728844807376613557306776790538446666412962409724678119629022770827379562362800407901053007638969075279618694755712705871730707969160221425530522582780426894517816213650839444933011079989117128477481467367417514919405588467931910475894288322118402384121288603607037265324980035979062779059942779109043536841412256937772576071863531000556168454868654301453855223076684225400994697470621197199872408143600584330719676023069385840408514806795795313229446946263809894030186613491940654310801218309043672065523266846966826469054967013208813830564725411992222281754578274641010423153353238255148705080494041673725733096332674552937766815709878325400335470443522569151809782063004233604286444572047787988541100373669583953445230440593358949110860830430459182708088154316395449949336463404014421436214389025882332132296566622698495037041914835746910002149835137687563114068677807137317543215470344434241329826170505520806569263593938613684877856038754427917650977251145796045636567780053163296934082032419341073006887117987951851255513645951607211981589873782408053085229768488939506056366844750837154857613199909034722422567668607132393029259791760093804676929569402345360124362408444171428693875758956580107017003665526353487367716126556377147307923247780381007078272021621766160897492867026733507614361676713579458215797752652037802417081898510525652036705362696305265676808375834909300984465006149873812656905287740858124816384694109162168698748304437630352517289706932600765662527845989468893061074167867393346237162657347429202043635239372505496419531299421487007922955156660285127082155234245198263390584363433458791852204066487270925473927837251373224455566679238282869784573328223161321957102131163531532796631640009595510141373220983223017814411681085890504217705930554557066762081607263266765060355011463008117931041310716290579388640335866570208984638702447255518261233522112391285111464421732106556604277085205120142045631635175453460409599850887727690849407447538591163117385167691804796680897837740057314238603733816241363573989912355476892683199104358530718894775140830696294812470351507394813719652286373073964885633418491588708189975512934559091951224651351452969322688679702847881928104085756128870791283145109260096393359396722717552495600706002662691373559161306346402282048770173434378598970645847878273944314891924780854789432077537926380255039780246016970849609500339135861776860212387302964939808296812089769917505132840419285056155064118974887774713107097295105076250217202860721393069338199053532202884834863007578073195905545036247336913953987252210957966235436603438364858395630565006609746994712821548004841038710199867284505795784984925930550279746834426170388615888422766196204500257900890178943303221980070463338305409682813724268889105547651973825903628789170557690409821404787578806777013232609277604557122105785657720710367894642913168028162937943484984451778957026773105115287831369244755304640940536171237417234727779281371175607424002527197593731682314762246777244011539870078069558172438132625891281767267813696158702748928706718281404745879841202864939724973514129731981703262421310398554442796707872062910659431351034819852006386644180290167610989525653751699468738128944260304153439367112908568478018038482483241839106292699031724469462108218225486362510078307758923920580582193132737459730364604896044121356509959078172637053086967688698368850540147591600916228198705752947127681252566834446742749872696264021126614952888593756290365130633730394893423489999897212953504634262202753110404244682040120436447117760569369766914084066466519990492731030619755826024967464985131405855073270863953464318962231305054050210366566674641919370273825091711301534940895454210430868138848759320209478716381971329820790379824094800774065720310417276970438588524318001866122446421819696667234673032499471098453829767039591128096759590400360473674043755829140451077122515106826653110941732576669894400706104246643860803042547599822711255573115184065832271926035407816893192789638688515503158816310847415910595732697062850844642306903378913782053967774945236120244507023923757117349010862903007376782506375500314872729861476135479081501949024871636182544159504586008378275908456693473094806656815758190203064454805921964541184976522495012344343054924456897411243949440848642300937632769246278851169918715575869346444348384096024353441033656374195841205591720511983628396375786918823556235400893168897759420230468859727341789391946297587608702815008632029294296014576519805736433721067086264527664722933234398705663624370232206008169919376410446334500109914959630988937945561685342337342867532298616092424908038172426743558286201832410753377739009521998318343481802528969355394116231762340507995705326800879361028691737725281645013900138140714782747209528887940432933515624109727137595468569872264014048033522638510567661929019192290654168724646672071663386748412173699053161547119549243389804987477651029089189511206562643235737102409785976877869379270501216117915621871992638909385007784230735941839027361443287416843039167177379776341114968291599959400168515391736352002723504233606186411424939086780015285464752611016467082571052819004579368559358411725097252007895501890214467364659513451016992979686969241498002404745087726759120145307313234889757908537144503279549431934726125409759687344501798956843278836870369946538408631193982874123513542925657133547645808125465923113718064441012028960584214321363363910335563400743925275822043555909859462147072785367383593072872814443007853532970882652583018872718767792329079205991125962867155165306991930251457689053166022621214441201023545663757030716138805698763998907332108145323033816460069550332405707227383831166939383726799418141902733510186555405316908918092108225246197134846831466816708018542049721404722210733092328578429546081182831219010531845834764312150082587465690672679471179123801007831979113458926903218833091970540325301216961216517006527878980013591575160527583910071506256054401663750560382508908144701102439178822316562427705551112312575621703898902576858487236153620593684056248229956457123961199137205247510765131065571750250898372498915614845061712786490887787990118239892674930318002113128846243885810435212807883503413649247043088873679906447729139774472955837858966835360113141847823131055962229496819930383577621115738337909915742202202196676977915431023278157163632468545805796415767085850613872555215698346594836598104897389315817674049870051113288856814011648230496466952393730632679964078925253972488649875701762891044693322835108506663777363920753362210190135225182271225670871596803967547253194856871500361949221257225920218304606935582209889803159012013044286705807873358826517216900937466017132201162183733544186519198154599099472367958296428980929248374276152799456496620997786545166006186864492045617765183740508417049438834588851030731510675218653366184681645613638703695312590430344609608218115966949143750014238472081589994034500863666495841163374451136783291391563692039077077866235574233843375756199436437975587561788822973816288170695316726683211919747650951931700479649356676892344120589103493954811195791606313778464771832945592483769791197442663499007432663714603086936090805201316308348754802421053700108189289811235016527715845178643191607569866958339958909934622685446618441922092156836614994388173018944567173751230622121693330254922468060813916737989108195984532376050192613000811914933807189855164282998255561752510804212547581154025752812127620750921169033326703928099901100776106626281584837999403712637271375693511292117819616305005686759019284679318713769257488492620822026629504137957060624244093952888125925854379141116860289654650153132403102584633441707014641380648615496615013913868224128782841150581886628669246762526711182852930738461252445345970915669605610959717554750295230295608253553164323103742798756197275266068391933583142855402063562595370707896137531674956402888080786647528663819731622422420943205671375813750071672838400506068383533832740782904948941337349821255905665456331996507725422194133826045811016090767674096337438424820635090106086567048620661344206729140004880473062013023884091875553716241415814953976890498311370236816289463515581285743131894994897785434827889110339488541018865315375051530375334116020337126253479874108254653436297327604376938602612806158228076660123356330822115149750247738535244891386523871773994156454958980150569386947066533359828589767781749898346416678495752661827742850145282247916755129954507580114812507336582895079089430658667955117390591892768675081311541022900396812835541424848794673811546417615288385869317606816923552183633970715409733195840824195886452458819765781334367600858675621487200685086179037767569307898507985025443609458311355467271915269143291209038881379111536538404085363923052415942341817033468997620064149969258710856151253184414562333795636203956505518612667995558113933537647903654715366496984235120556131769978988323389212528937154738372500097903569265361282631440588748265188849569467385235112546789310849842938395484076240242457395499156348291667141935511220741184513390946341540015077261163203299908487784816323818999383685544634607500796272553120941751497630847257642565096993139272322529879427808364528833636265811387670480946428116979460308116475130163631458898943373729710850829877893727146770621890501919569284522344656906058203405320479229223787851271081041132041427832010145499266484354716698019235204668948848476001549775824368544948736346807594902342512869409413637612359682173472373164930975168485951764854690616227171740282942811969506689439005868706315845719282241888894245471447524488509369877461544664040593102453027986276946390820555259748842355750743287543911084745261648089781043132106787242025449483686464969856588821191584451208379739458945580157530581044917666001026790075989005195722651751970522850553277780320970422190476474308958005309145502347911930616315407863788810552863235133411302441485610022355208136059652104883350503254783777735940030842856896765669929505316499435552673555079331745139276793984912771171305303024075672469478828306060056614168811555157846467401121464143773123777822274134875208608327750290106437790958465920648044251105732364238824752064965151970736740269182297474701647862849603004646472936650797640418090156943641932549814808072601071796845040487220380471776660044314090717345817951909798083140035750046677261768456232835802985455082924852257266367175602910384528854910494045914679317695050013695295833419104029008569981803588925116408024246186731790236947847628088378259036007014384272327012048063737146603051577072494167082225681142963248647109014275809845979193989906388734940597443055122862175532886271867091408559450600017127093868555767081982947453613427593798854445937693818571264989869134540197721238199485764480813431371219320908132978927447529071362009653615589452057351884023005843421585189316820707679358494428397285854693437572282072843317009893329973509107184457041830991834824187969001486797267732033917681073666483293969776361180137687726463752206954237917571024582970651337007147341325803422116683738608885250549514927020595046892021982256605496789048198234291389185418955284334501772065158469460501771836415516586194539663600885338815444975551995364114596362792727430612493402352373530016471384671512092893479273916532213437344746461479811128517536269176030617964797916813812576690963416545541076642735649071277605521795868966201095183972034474228697712921868114996512092847473719984774333252471736925955406966042079262721416605793254929762755187549170761179465534400235670518594092707128636138605052353036132146872738505548983344411425479624568049486009680181530293936268518914114639869263196402935024775660129899692480298214680182688416974218634404167186037948722927286733799810985387619739093294772915371514253798028143017503125833909185645393023827882500559699597060911878351589516994565528773032981990136539943389156730763200400008847130427603019597319100238516511819263612906641231084472611507057795335808767485778629304500388216101070194285544642282477498316706090951874303712246285604466268132263273148713559304003085075615396427624228751729041207937623547778440012882055437615156496318140858700775774499511536537447024132587514553079065101695894822339719908282235384605572834330899642326631288186545017504205678270149627623082899389127510191861103517907677755266178287672872744807861257457580434725520543963502597221917507629751529754656898504096996645784223619858853527019747895360259949162524893584797014263136612863451575614167332303257592346800752520880955865220960251886362843432042938519680756828773718770639196764643437136583309328107761527625536503224279619892013906147937163453079573202936457546933985915601451456359999104686734007408908626114931503732816912448359708025610068801892327437635104985666137270531094291502530038209971406944725904256807194546763512248096549516386589774021922511989261069075462746840701340959122188566869298336659566886656071495620375732022516514967942025936527410558420100640925084324059258276645526205536968384639325070271318698993911977487097901306989209035548267334219198969709437846186217294256214092471915893098962954797672678450794542169438973955445782794932879320418996567083936050456393194943006144523932702662623280943417614240574942364206514328878604844376481577107489914477815313994591278669674557268225359655940909854644077491770795593244392216225292964886935598064558633626064241776711913459877194670531134598782237405909843991696671638543414471027719850127687780968958544896990208715598912484582832790932735957217547246175166601569356744952298981408387413546197676488032781628948369725578605919503179527517827685667865682570209869666337000327995885607566395896798922964755105119520364497347624854056342765321374251489238307832988518916326528960064549242656488651380351414636122000716111424454340208858068037105868372701737553098800567200928359010797897684417023788937152772765715509594933372801371148697116344615278784229327955311311425762443549385343024232132046332796548866560978522214161623191038622816787889696629891773006746448613467024056588331052906936898343383428080208334367236969322849291298229277529588450614886384509342372074882074448788598951351384417370752943105548856780482430035184509424417275683262888167495313873748535085002888303525481293985458393843787674203935053161164780118544842528627837731830872770195231667195601458746695037415667647463720540751482074165453507381458795290757155304330070421352593845039966913604407145471344103542587336647199257987959386634175969880133500796753598938107024779154386420201755874348017532145227148896792663260630085499584819613419535372694685952339524966142310976936900628057252154191242023377857503252004738644770273549291663294250831224216405682110405280052069998329777443447511853832234291614150540755976829954575588821253231555037192137399866549025444843693588875620571310423338043262896388138242989310464578475340267575122239641625478133948653733754164534244046061778168193147730183421834486352150576243931497509355214000882472827157608580359915247767309414924645935341883889581849587942028178983907752498312984069938065620461656908684039536760909000502115373738928300638789266303162297831484779931624125226252271847639486247528388196429868175647690448008554670811876598570850597520674378913672020221349534219744480261453554649883609100213178745324987017369184037336352242286802456851685668055809356647974714041980162958515654162467317824377463926976526445803030110798270750209595358322954280573726966987679816186750827942732532953230783101155804478125258435929168365163217125017225150268661300473429101963551264777454682258285141217025088433975184788571000814843468786914661293449026004508386604568482791439317173740682043884284564152288339477809009586698062082988296021835011856664598397337201063739967539041037842463862820370697432465053994324858562448414013316197657346554961558128754976665449746872365598946597546764722739833713104597422407464734858167349410967004873215051419388348090784453331422966287139672207989749748697566005009055799900273991131233950203015635473404019442639453567285713911936193166712818115378102839365974532303646392987874578836348352831666240466441673808746857697680506013625933271616854093819233397561775746851253488247187245161536971929521838766272192915164544529125288220887086927781607195030557646971912502354463518434186885077852682366598656521465952932304446895409235075806935519653922969506492836209018700073639747899259708155717345081933429419458567080767504176597958618036899877854074289647647225379555275908257541512663745572083888985004749150249132802506584351373971367837295143583381763250885174360820779606385149939407481582618092444112558074061047931442130935436024865627969426129599502741188158785185166622147211725962365377883586472725891456269689881428173388266999556247235304145891073225150106239874935802946633492616208736128028691861877643561080855996575342568699265444873239265878279504456852024686386535378033032771995217350826748817076564311798705316804216503417267194418931821176086835656487032124657119550326393130509521632879740071586891638044656430658050267014459783199022265551774184576974823560084926466818452201062754759055738546098913133789436679498440596768381573475492153300263172877599233916863222031738686953866612526566343603160241041649258346803521914624348718287621482762597790402743015447470186617816908860475895485767799155373252634304958903233004809159183655418341824695098477399603498173613975300595063242810853037100749790316519896032654197001020773439133504334714803687009942865844693080253967368183590036701460510310105712581516713848259996187552737161536797586267595298190245878105844855297134178321012400592991810749059785715768544583052868118002098524957733073432973944310494809987335934776086327460836126330309445256543550651515175239220240674822750461104627490637589083483974929922911753070838815298788553502820485549442466666719966780262631806726751708463834676026179340600119989993570135946894322566024174340708533285492372294714109758045278306040214175922502185666529049319787844695032375021340403999383195529811594919794732355263493615573878536000093670088493198757806512654161479605230817033237340865101017619349188356184994742433152407151056365148639486918835923488388582133708173266893739807529507227342254718906604502844880732129673614209482379346823292456688732893855688513724062423630766618268353471136281080304164525897699987118916639304291050866793962053045013885179551691645006072845417992865313971164624786644461534595026154366802984611077990868932566858637953093960831649271205242571880420633450373514434652969374629298300740472448478589840443585831094338105200842450332822325962819440224505702016228141670302409185116112636313988162447109919573041291365488971977352198301072941715413026893095897308263122818036853373783404107617854933070803868845225549846819935457753097045096987165270598629983528707134153973960830983895368486414780777989762241379255791131588874724770168330225852041979565050644466039551358393961088384600063336331871629120512851081566984370751052154842871243346526140478113329023941665802908785552160501208132588430232621971181044245659104038057834529248069870891026455898716661779275444215843907819023769522874514300520152499553740820936030295242042702553159076756358551039000098657882492272651299447186443887639607095109874376412827152523330912413755898417719157479921244269126015729270316424588587680050819621698228769078403218882056164614601033710920969505844990037477828854934307196728100882544444630787621677335554308832604814142025959846260345131073057749777108825166914293288130904774707852784366678833434940670369631538395940442274899512773983867940008093741751028008686739289571749113112138586005471155139262262432632761776694165331233227662885602679833478664323770482940933997808102796269720259595427161857236146533440937605334990652040747495668758916613186752502491121012492380035981378249904991928963705032465470469513992493840637283894548440505419761513822236990513094044427273867001815500700986524728855754142119263790887227881275619804402473808209052077052798748244207157182082190814360267671615349957684837231074649825883480216725140697271367517396864895931208331145365783024113884728068595747148849389603601888679064757263753457881709183282583454893955481486877500461026104215457910328479618219282448323558316038019296447116479341158766538105899989365775158335389950536675881738071364452956461262141454953837625595376844783441501642301716227194841358965762027945802584449628333250161156139932777393747334052454240878270891095906883019341426870057133255995354722593550583083965374310432206713221641998148653554659413101693957265286069193291350977168216894742888960977100061472415038634679097199692544646792349949649898095501933802346023799041901627511087721629880813655710873343394161322893040281281332605291854943650676109314552236875867894059103895515488946858794343206594096078824735963073602537794925620467343499700525861070849299570681080691250548490337285161214558067184494134074093814236230232933657176484128204532924522098144771046377546411382054748163476150679251734938085986390680010047896643851309806229696525645394297895972805581463868417305698013471978296713208330700502352768485901925458753054119753054302767831464266542391933963830695048723186126705930500489752541889464897002491619713995841731578714971382042517351125991485201130390253030947288129260106558363275490843216749968973473276907170137756466736768434197729204263044190854310952710527823180011373993603873674659123706823096332228187960964571790715880280424141641975374139237525013021652075985484775088270033683698170424934531677161387842036848633536772705819215410389532279489369132830765927870282417264045402858468099161062326273964960794947578487869974300406972339108864645582412569565133226552474279296226518426746531085356307045570791459323634038147498701610659184781928240009828242461642175993679813397628076939134346536322511346531197719897441177648734497342423628783170868591056506590903205450767145053381203764606928162124912288714603706541916363295880891783514519574863619695951076603764350665024604598708158115293669623024690876432118484933434177505487997829959964124333950638753486926469063415778280085542737458972173891566011580010128153968387084869020396814005937414915912582995592896581087164792298339866174617060623543144845013580719181030927850967846864818515113236030871073645659259039600257985695373876785845564910843927647965444938883477359736875307424528309733669385613320251732970135363052533617378764612174901790750317065839062726978619514686164365057098204233115433895058893936345081716057535102085011756005584973872383282485393771595304877768729127187881213099480676822334967353206703759791971279818313736981707337972952628366475362801216561088067168322599102638384423445305966388076118242438908126446483557450268394838263383730025061745956623282774488457987149402243577370159620423020751374186125358472048995829601409803166998289852519465550366923024199333169822417545689478271816199803729624024012453464966041688101513305417679856679287925940784882850846985743780909071528635526332013154132556442765426188720000055833417000472180399318008871272550491921433500912607927373815315248292289174763748784637734287523434744704561099075542712739848994275356272375179055073707853309998097529962617170531392711429069003844588318671231309193363093265464449003324519002196014171983868735402576065352160769515892275873901515345537846977504851896755687734963357790686105735727920559331502127785437757796974134254932508119295150118724424791833378360807260201102323789627978539779892899147008783105123745634187349671359969485768073286261431848916396691479649099341641377006266362334975472934280236448099487952116884681359061741465086487581753785850464685667449609715183202570025654299074865531284778422100784906457017967670375783333235593791709530484305497780959989546850453187534866326082139072593900017070705191604116015365744475168981257194489328623315619521003313819271279068176025028886286553591666832971942184918794838436896435063978798203464034863865335483337304910192262841903831166281983710746583162201389974124491279474261903344711900712016218066100051676504923574767402313504590419170895509051381859720143785799771966128914525384780150060374579190841062958084626867801976335034282666715462327489666937475847601948402579940587203008467290770017991033245866151198423145065541619665885449532816415488911065492621535457754518637916742797004497964601904457346610792658445649462942457527958321361595011405910646854112801109285399091021421184455821140283243908492049778874587707962204293593310238726859065330145381141415391985734676157274497583048372749362259771065294331484911462217740087538192332938013520854407056901302052171440413033044608022713110425247317736491895969633255636708022552516776516174867489019094303056172033307264982706642678063798594690199255785070613648799734958749169592984350929098175620879772612917824108520838855014288110186362683751778332336200736732031096023450023105579871750791416973479363532102504738519557137333572900560944960319683068931479425702777915104215110348333715271438405177870356364778696465802230444894725311671575141390980618307772572699660809725482549588200929894147786146990329239202472820852169406560864187398214165101654344558036004930753261298203972236953002345441468968273133111800102451725406677412159455497720108546472389902821026819892771835646512071278087271084618510376921520707054191249850130200657717364067385600392354756055199730593001920028003116804034859703032688652996932530378263807348726169242042974882660216779153024783380239886668407260046532265553602459941095517371006146009604504052708790580052994758780614195774992938226554531605250323071277621089537478428579556768244623607553979374033667978571655430926887884718935295452516381658498092692073754514094894465528314711292386461586183101406168933547729811797620576311000281232114254326872522934153868919319948616635029932529915465492934225967375832316361631508387236017330987888816359137525669911198827325065114339263970016913727452583933373926346775961436621292765827325898368860577467392557736019808788442454490338091747639991948978933049823617393625955141235190292598423655360757229144947940127485834948914197473657803964293904923428208539966799854380416245158258561539432793124758782158885411022367900581458329985549507808865864751921361251402631770034387205386190317090874203689063231664218762925537614784763341527144536321235944549559331512774112842393503760444069822759142777902070543478853165157486964513316924853418256656341472303441279586312179137876187632563842147633374189968398395630117141647733221493721799115818867570097305665502479261679542227670891399524701091515897899805371547108975390996227421182076639027643928998139707658022554318564024743696599822015174876415859445460289054392160791709916390816092797421900873100463354733204647391364377003053876443738382228641332527253915390518037932893005141470550894899883178344566472503114546292578697555810200335251572263533744442059235873315129992704731181183819497976654608523760474122542076890126093213985716901953865769283483662014284144906909032548041236322362184828830248064237962957051955544816644253461690756152817355869077512457533413051013453762889768165691776881393985138576717025513323878267978539105862841070635289943605390406707736718527648455248208354670748924496131826959162894928787766223167986810922011628300988994461210161554984818459473213910309574616864504082578946872832147424418482403143314969817865031237382900951520852595314609735613774217449736028848112947559390732765372507025656357749353282788844955929251768568604608041987144690378642818768044975156703503367077095562719946461178298129622881173457442044126195786111994192273835861692278164218710391238048822407465777772577067152351322489387860052565099434339948066975468303645253883859308797302824692094749153121720395811805030543211409028310699147187046634098096704688184383138250311950884612532258603955043623820968114927672425693901757426542912125290023965958777172751077491283068718738634746480771160007870417767449015655951002568115080720138617405094209303811423891918238537209338577759151820417834739000158013359082903534069644270292676556739383988756756133896505415415867690853425857211673289302446524014212882732047066133703247422616081111823477788408521146153605468927512850232729539204547848643012062931208001751844335803682283493668713489127437791633940426744042047745314152898547314999402679212277766852565592772278641060053980925953478984355023542190245290347239904781918337627032113077207484350765570949283470726386721332361542408722011851782297122648371679145111795126519931239886544704114684924904299293447533102114380464131398741464177983384822504269111851575175461027680242691311363625476094007518540749038838153310860313054500601780808019122762863204564852609063699357551133098641900839792908541724501396632735942058559527584620729687073806385030158383576220315455062550983829353189733213306065947062195618130935779494625292725973296507839183239747786729255212713900183821019887830545140540479649333663033079395253044633262114819362900874504261358741155606729940710428517923378577551479066001394795490394743458275465083778744187534006367936953007449512047128859496144602219558778630743800167674324453579419333740718762532156345784376864343963761559083798542875768299764633018724310014087127281532011314426582364320985721863875594761830751571674804375231797276423330705668872952700650953963415953529194481855103338599980123057587213141084223695861210040830480392623620951185100632786080356400156039600020234438784742323820542681226014347449444532125673940256822927557532540989369186638492971446842383511526149137316760891362308956315280499297685397779835003611742238356106405923590361902803996656865527862898277938473250474887728105165070317480396709005819856696240588075806542588169497292003881910593616938797518658443722349336919138241202386052339265628341464559333255061606451797519129661385686794295935984906288792188220714810833330868361590754523628350850566221464100328521962238883677094910584945253700049589004751423214045692376817662030391805192374159350038512238188165533650908451692628485248115214839958333918307925534501841241441412268790138882488887503352246186965738458181245973910301493445201222980911648669134365630564108061511619388074189306876112759707449210438563275753121336161378006913349404209743821905339613399310481194791517752242972981135997045122252824584588727904094902763451956803336917979892808012651523752080404239793619974456786245975238672237992959671450916053326174641120804180468211712986894613853983495275026914937629033387550138185605399435035979066080245496339911451779914343769209249066971267118256902420245642765717345109394912286943545873329946763850249768363309246094795938261001868704027042133196646820920324703776277391643327697064284501116400159017239889745076472652949036566244642466133660584419903547675062835143741129585352114630259937831037748585883668235683629522773886126251208975763240279925118567918881833341799146058469259327436148283892447141261849843067207161256861739090730241866056005235084674740721691550278738831277836383562307090464281926655625771778944856904789430391435088383219782548748717956040820942743437104221493890554048495598202057994261215063620635397419830431043403051186450855281519929837192479257113053617447703101550020792461011667170907681153339387889469196857556900858258966105431018626883372258617976535841382411694865789501557028268747159489498173833804655177122995959291511075125631162078121724339406724529397254894172254649801424587115045459133438589905767929811737160005478132997604486616522252288630551955052465369935993239280182757079858053466339259691708874365150614555555477265994356942437028066217869613365142939188042686543817306982209720289214392964413726947657406615468396051209548821103081803019672228630954139653926974029118244146277623054784438890803084645487642312247341997197053155374552129276294519191863726557230514824978826052558286478047867835627638942278312124036560574953418557379283649430577146517329446081103425977732614852495807136995030519570396409831936222340380756216636965393516244220024038026373293881359234792759852844250711761054252157960988904764591634675301804569815219962736633502326552714887632507483099830787651559909087237925393199558585702797005113397859064101413651175742324438005195991208532480208702555986416749209332350530751028620801345626563326941560495794636702255125338354128008767188266506659705000163941860011089892266741999650515202316251815509466068036379160214828394599775505588779770874646046214738579008184825612511615188191301834470758859326326309337476660216163098618394975178045953734051804767246197321070210254411865577280881831769578889232393025676847703795782898662278924112613260622924880250564241911854872614238787964251506008907017914697808521437244343275754142925580652646610106997347986583003944663653209348895745311758329718399458844902721632018181879035131898073761744801392893247276432962460381731129034712795418756146078733071005063842517984298861445724991577200799225708189826287019177179725072371723010253297980426106488182966826568665016502637327612383861456352690348182175423020211891201525973684831110500329565482673245223853826363981852687824138327523263173702459403567807361862090950669581814370884093417675063049498396073419851997539806623747847897115706463611184563387062019642822308798538830618632277010870572742104581908876255844881509328012497472602836940120358260497367052956568093558631290322409832279063116999202475419209086197117947854287810283359303711263350985546397813638164447462294287055348866096522588273494482619414512946894046451537058108887316864412217672678749328831039199147190074859448719820290048144985428599147087748409282175018003698190908668716226849692909393327372364218114470796837302776568528109083686023466678610621465054952775484936513425797147712694629800123526175908437268522365053650224616175965309511358330533097417329841787927962491619469666703301154389923657260801521492867962766254458314195036270902311708514622777454623589334913950291092068419516581433862178761877080353352214589489855783804474332096450769662148563237561810781496915636994342272248596469411805165104254337584623877396175834846722881183004720964427083940051228554931152387970015025263867274927376552590760157399329036459610465839203498199761824032325627849320561591523569498285091081560270035135984541652642402829185711013845520196175584251813366111554966589773573509943281507399114442340385383016979216165878034491642543559911694458745533567442773869371602586752498304774001497997394845803440192943269135509768084943937894994364317495488613190194246762704027696786322823608610570655393650494900028750152677008941830500578870798870206348158224759848655221879552880294883117227931874093626029479594322240247789652811325864085436929795397754496844223184266634540836251657176631111923501582208703703347467386956936340181134232558444293079023674630542874763696650107885857208116081081367994940796775226577871846085249102199658325104110447043100386825471797739198684163630920384446004847787944953095049871189533922280399330965625152625183630575156280624789785443866044867949791719872838677029325518147506751921504989583141625151036218111281206623522467247491035435741681827902748379541733516195061466132308301117691170803464123779224038396934576092685408237401030687953343823194020107168058016707773753924839235292035172480952056201619270428527110900496726128586791313908413505650940073286132747396695354418964257976528487332575673265691382380242737086509352027019786298342093756106546967494319600681655911123481310057826378447735892421672197148345519865152630977478391778595027539815992867747622180716387073367916114161044887392003609657310924942833592265771478033391723070722134007960506878009522012521911605451075147227455974397761047548058451490689923132612938668529128331203843913377199608810831959834558092156989284500532969882255313006840774629822868803853362051156756170504351149062199466588089791588321581683611721336287659748766051237303658412067529779226713175803280364751751585687728195620669113863033981905331052782548835417024523618389334039765372959165400951237993509239362964816402562438784746799356980886371354405794658513773445847066860818794893051178310553531884135682410689992088366221575848295897149329603480911912576811906433076101338108563423184819777557651251573952344006232671630518914678578670314559843426409410778345801275493490375677784712151747136672200954683067274783044067801112027893856477756198692017750475642864848191129811169035029342683856507514579578379872689338595228867218825575303200464069258723680361817323738529753261806937391829736320792238404838614253328125178517013662753321238178137285462156748978667299614986484385324012464415521162314941679836890718508110558346724139558270306671686780513183261892745077931137557134558413464331144528311238007133515085404458973538414708008467776643437898800411851622890545438328046565491110287858074666648247438274507239727503181412500862075470734143111627367211778207358842137600573649170654073712076970934037635313530871758426657164047864587687138612006686480394697820965482733096546643818813943966105723278226775091595149142183542494480672804390879219562856765390723325839194024068442127199810014052293509399825514663967488989965908025628197079817955435506018672317734201333766506888315518205629108668180875375396390122541414547326920243398730702334318070426402521082789168110742935699303972875945709533694070659040448817087107120859454743768447667516457306789578642408896418235682534824748458621808073279931752222019930082966979234109338761769926909308565177716252039634097545507911897505241062977256773101704785336655224211173870454119911975558337196678046722183420593318748203141595393872346249444225670013031091763627660665673430064093619451602339109868534303403081930535494690660758639209023741700298458260764445493722887406508048009478209712076488384355647065193796247215798433707477236939469124780183714993997866622387962642404908917736658909793181644705728953574677783655111147347164841303161221238095959832050540554228366731677246864215408293932608020651460660396661291558251237317690832307363586334253860546953936393091728902028342189358211603103976838464293759754217529888835079318329481975415970124022600209114600788871877542502808142343357467466515711045000183458024104842376768078893076814696066105201890956877610173243157621434785320294369998332284012253187690958156865082574417675407587414731135087698300878167525101399509952776812969948037651365721288616067964190433812497048086329860965135788991568776792845747833039057155252331214682511940978448595332527095481513705847864088511972208142466022371712353620732160202339507183060802410520501994517666125010338504005935953999455242347323474650133907939519429132345296920277723915543463819415854322568673803991264104538456458511944065822415762595131495171603159392586387888269767598796072973314175398575493400385281550795443058134699399107599240228785453903764673776530946789695126124121683630812660716214407539145178396444390531191148858305950449423507700033364749776837054097313139121651624938555447683977479707009998217962597405915186810501758614739383406664971242903091025502305080929967523804704852633958676698859540266714144350878032473425431205906132088503876029691876318514081611552855003116525447910663309064720458548824871178435761101149288924014762334786458500925460332498667220106764669404521217043062405613983210723208269314448302321345544461765484972680483151321492217385052596302108171303818627616728285984406714573399492694201771448240677203704157751047109406507192777695681500137766324536728349095202366374531084300928493438786166879634251410782776703408592769484933595607600724377527151454246081844774992340825967966222012312779654338114806069033567569330639145284473048019227045521424934437984527059178282235281900217847134051881146741751286671954102786107043538282078261715101662825881272371885618064981033469727065918266054878337802706275152908010955890217268914413112994457154687825213174023354644715814624216690799140427047061662700814591759158595775481002549205095098242732739231780553306199910319092639295121481744553111772074218937006056886993030619196114836879695217460572655847872523592087977048784410007652917538973328767545374748211797752309909753495477594225019012695745663112021828903131426518444834625714136290605018324240364561481910167188161776729819003088622455012766744387468388950306213552120276518188776929960102440929443860094481184572263483720516441428501190034774751532306241979040670406065947928885329904061502769387087669815942179401413191865418570414754818283229881282726875383461827459402611928887126330726905417200841539388735264115964106241477475096829249238609501262258937038285982036588733994269770767727542770903531469587962991149415128082982932361416752595328317969394464748267411456255951727048702742322883639141196178115466239827297386989143079274783230975810169294788883643025705993920009496044087910885002956266544262049396997291413583625460130193834348794386782581322382861508012674360125340091200884434170514285042990004230826790846763230926949871116213859234634123203398566305093081854194670238101056217765910301474538233054541983421488256011194522510964024476040557604512681855497122071236791271564658008353133091190218002580833535285643195717998859481449105173399923179492472880278131962413249082546043951139778936603314922060243382672053336314766121969210285822387608518543690212633417061864475047309502123044282865680616344330646622642230115053238666690491953995660961388459292338515587099985051657634856829240755541084470958645542366099929327692702559582149265064960484637886025754205141791241882889128890232734487524243585621344628652919514163429618828483350242447523325924678269137131047745596886019941715301849923973392080651533079405385566379597183035715303920213316387532482544061469160670618689039289249172263965951478711889009199299904037711496350872357560506333625216251555077679896330707996095258943147704281592945134858566233445043416613800111749233111254325447975194299311489811118966942681305081756124739998115009488200366937375599510072838472457036507694408381084698417245235521264220692458874113978534156501389349396045797447560382263315956754476440752053880907885715671490854504795686941617414432952587571534289404550876058160144295738342206733860660885699120839750544646401369367304232133683713731814951160733219426572853318523767511057495603881904903344354082512059127448035514241870331642519807720866706735025851892477229885720822057802017835613804463438261250485471979144716309386654326450586066004281479690288292457021118949270383401135181617164619149244714238828249851449549710550314158865181564530700185154465383438622244577839904257704273317273998622110591026781756064183069117577098263098883883874238610440090544323345060210245537531208483620064712450269541254620459186191487388982740000364637314641832863986040003333209179586449850438740177353326531053652795248053777512389897457317287989261497754684730255262419050167354863488793424434262348020061396055608056943175517639771260191319420157638612559718251475445126415847686542816474615161534368220733301810141180252172120511247952938931816480264064902418946579604383774298062798304849852826811639999803467903287306725228987660843868158646140610539374957540746946325748231141012601772263015147508655615055913377468568619719879130096046313842930054420830503695361490108626541285654642267195554589963857624761062458264444461723409850288405528715483322469294970862871202351568215655381241821438412939880628137785381432788311902532283364134280444946197116724395027756090059667260510523779547913020179156260903499404761400978208608857277699048899378586914600543010335373735221962471265549906995822416221544266205820351059786865289289243278348279509117068702147058047949512458629895286633245488482257763431210918066098074340528481045641260846389688466332570676395631180378076021432063860114778485114923869062151283775360747318053168904609777566069159817041837451503834426373271012792407081674150126625671510874876672788339273559021926106558040216224843792806094551612954530925087704325402905697327824778435040467616518449720216399112355819508085747835829188727079134135595597905694101290943617298341645495754442968495858413653365544297124288292283017293624202048109832987863203067667990849043010381149728827030297116926416471949346261929316289923510044310359745495965790150026754055850226749460181093098549071801639619933986098468334593454601288134247873168293615710622100854733183007285784673497826798448902946538155331915920503671891191056811019161015441548092835099009181141998504445885944579422236244333608213989345043856109055852573854481885268196843432620504290355390884674127548587649209669976130152627629595211969038991450767487182035918779596026767680206570139713219040801394219076686103299199942489300414099387704635301189350087458035287440830241482550066043523047610787120951798035215342381226868430217945678909068310355603349621983790409710399011692231258475208841050616429677234057287776910236754436911249412477480914894060294642212940768544834795248089000943759254641272681805756507032541218345248377289571724928632962162353726006964187651739097242494875893760419451127687360475699679858423829211075109118394802651791873495198429912841613592680593902123917583274993784207315547688959774207314493597313982900367757193299245704136409167789314926328902697917762953292882264167727405934246469106491902203875893511762563210085787861290912936803067527532344723959318861138915804819536855893410723680002998957724873603962368774664091840056583856935240322258400379564334492764651090345075205860666480320706617339827117907867372801297641280171062708962188363087672397169289803950630470835752186178756567063822700339187792200452506834251952349620526893768026902391500873294401193977077629813796975125816644203516195142636602493382466290248518550608589380643705135116259474809753304902455925042444753994864155460807819673884396624658381096951169642655691360162289700137145801079324322710756592968896346297431214194576645295057960880712128057619383238403356754797540795902789193243015838855533926450988898358829331424772045601073134969087095230001471598231217551946434258024024743958825488567977121036881012693738231312108142161684933172186963778156669447574021549877663479440830316115179465919894073395915636086561218148558192648435728525239168210463204210884521612241330941039740982312711740534624479935114099368122721456386625413230373455671254688493626362172372937442594972529336743583763221551110970231469391507150191724360842816449238276981531204875248482800325000177024111000627515153703743387252621796938252042171277647111355000773401540399097354995179371023501448672531586466484358129929331193066403897631655144863180887643108034178620935751563262277118320218995485668656179398953149153597110120771698468655863524894439628147571276519623076916612056419719958860696514154580081997082228571017922865774398225151285314575179990683976355473896885284620889360391110942616941035966359465505657318857307853528292955376957707079043898145363258661541634060113288991255031991178645689790654410046185610364337677568231627138194064033628893042490083033470732245182082247227611925555650665956057525086466124851789140186358174393768761512728461870103734213244797200174848225396947697061397906167301797667659554327988986423604149079559080557505474481114338483219876464341383661892258889992235821028473412021742924297219398795351575040408704238787798566355344477748879733777733947105658530699241453405624969321877266166684634284913927803940378943257725412114919741600796412111813631350133450947466590334826627745154604805676997087839478176033980371643603341335838446454834759205836110332313875940266993438466888190560024174789140243881599445403274271623647570461279496596320399530521793137865284202674403798026376579942746161132746749578687079774185562764556240073658236350107114701804447127263139618616382743908324471858675709043807600737137325677545683705666280359390416958907130360129323789202141107343720738452879435646500916032558490984081448580877144738496707264992635008224276385823447709171714825639996139505562801401054622341167580750671026397346390821152569026228822108519906401036684595144012788290657472454222475045203238233160058971659647576853612008983694047095586086409148390220601764338464317261254842374657969130630328714658339704569921569686827523164182264672032043514880694379725218425922556158114246976249552225126097965549529769894378769506584310479249571780288604788400674837457881743534026862560472883964144434697718146463108239158018366782750249145729094224853156610432124860425151501528672608261222613263958791618431598943580074992907847106921815473478140384540708205773463580332258651304408461934004066647239777080894282343132737931117475533679624021043571478844561399659880722228903394523112933107258408788389426330020793828363589878170612313764074223167160900216221287340113280070199909082178330701750697122412269843720538390684398059113982105915042166428131327134678768425942418326570188047458009959616199645097691642786752230828542463709214440633695643441218335810542102647545724430521345662777515010077165317851350521885350704117387961358536329059596377542776249706412077527700339578306341010228713356998790013016634812151175409097004390864752408094249800941886588257412977936801705032339346843183962656265479235060511287877591992210392474387044665716114758985224269513333420594055176519089875830438302787602562061704562410781487740990003039527729141462556717648474887219309733467683120146930960648842100554000244516147723601869445051640251582601824549043666145809073281476944082825042546340276753341767637107461086911805944738408243638829023646855296090254101725533376730545605453148597898512000555183707296693329015795759496554024267428061643456417622057759772872608395057176965704249342625974549115735455187687828088280484314863937747955436109870229275577977133161735365106855213511904652137413117050768966896988888686489276812795417333408817838453047070749000696540782755167045355898081556115591222708132282127334851207729171460215377684024637114274878156553753637937625814795731381801807429795328773320052797463205477533482000980053479941008677970889829742217568951948087792183366360250763702505107123028666161140020632560410671371753749786784809257165876466922987606863089745642190360658075304739843115034600797823603883568975091670819298260867803249159770744246122961397628310441024638007135956736906459068215049604617567727115465062393664215676707685817154970147183075015523706649719561680071104676833590786195228912174920740822717650478220285344387814840252455256623659225180804288310035613818282827387092393850061376578771464259056850787197547860584044698255765136222357825701495967054862523438384984974030099866718361452782842700385484517411129254648154073018358488791946940169919951772612523699211707882041267439262912603668687557836280828787185814269874723241859917312038118792664868536081907387415124994033731594077660901664701587559258124920462563211856555536012970158237268204994860211257978730350235583684635238571190721641410636581815628473009215723107919010225005124483538232576046361763205186950852072908044058227043955458858791372773514202890846560554046355669675516622499863191868540687198959568001864321352983042870548048397392242631814908621011332853292364108625050195700415041954007992322775438206830900262729139482833258239866355661744216002660606267370256346442972791001730679916780015664232401739018012467105319388835315330238035609708181752825028177896424647037275591327021428609000293614680632137837667635432101996368751223688804612111551080692978541253726096105268886635945798513365430375009667603167367738100524478024541820242402533958060920045964856569194892650198686619288115376564120309007983580411955515532235110749413113543577660009371562119944148082574083431741321010767466372189181708895973264755305489882121233949381717591055832174529172388978568416059647376276755224234280251203029511052076170791661160527108634599976673970710194577893988468810273837439938599378098211830330808738619854030249845226522267497669260180989112499352212447504242071808306188268606640370688589927919906133480063789281804419148803347317681723323189894812452296405773547493805639608722559405946101467323451955471280409042129031614886254030678694687848372271916539362348270365207591933715123989831824120951004810603883917502320129404594758325078967263871112529561112033152504013986901993472282266014905119573266175336681651121832168409115398906010196933794056400639048039634450740922330804888533807782889749413393420836845093971116466629962381007505473152405528614881831291812025992747933297621010589374651540076095887980475522838678239581786164763782152999018010516363676066581576146389159563804724062300186296169709358475875928613334754455891028448512869053985888870076673732538216998311508133330173414095727404804495042616587781109576533640703733864508026785913716762728398622071066180038853789058627210792083629396789837749702178869221168573942907677733366590275102699418937627488504120159728600449792777743442424000157364790982742633425274171810733610879130795782079333193552839059403922077447713876116584013204008803433821016494884015981302851094618190656886039646826627317507515380792754227837443571560450385531687364337280724752888202645985079312724089454756000817427619557749158468870314598509895082731260568413755497987588396089199461652898243616079680212332661195523160882685945248053038746010050196130353393172891599664407499895787395038586334115639030038962831915578975060714374819770464218267426141346446525433274841517450273573586740205394850885810682488428109768431753209832485843262094187890858303170069238653676462670784365203734045681552990878589933499127726792911552235497079195935048405870736740196306353529169680836066446542657230016144878527058824106655789044089110251328296318928379929491267612824813988519892805284190647170341056564693850435292078490967118584702260788913002498072541860863124907808121327375768189472632140938524828810119734173268744545763151372831085018119066395812983180185310052885161718491808296211123747945222038226016380043627569908915849857681078275549633947111225322315055039817305750465486618822987656543964051702034837397684658744217655110235174369120141939199831675244730922011312587458898548151428223770416171198352458260750926083418110948683672179535618860397254977639183504157642075443484350967581670891917041489791599412121735971987477899306606812785906763186555581426229642371599868569660794790891092571227238352567638108022600563110359473754862906849922371984949356839237203276514240568831579831387159541764784158494863860227277243423182809070257348002150372603945042233730750715439522315101803762458651068197357507978286550142398993135679911770224497575746484996451373592521240320439910505693749004635242031589525065731039226996440028384711454911563762884460858059252167631764524312384976654820067427668989084884481620271021622422889369701823022339309177013969753384229689614045711913610089399219782030527372477815423982533504239846947628224494864138195768924888964753609792093223518247802581155441203395098965897316459565758716967697422262197761279547666387092989803518056030966256040139178445119883184722906152406118505262331797805104812718518482640175504446751086932408637750182615565948631673453557325840728187402846589880412658545972175635065694052258304694621896204979073428675194192828930841690730534262777638667699026478975781312277448362705138914803804555250951595532813293679031241446534628739423202027237709822640701504718839366519768958462218425192233228856950822512188430543418564835963478189436892787991919606658122238268678657670384391078030299783766804238448722420685422448597237223005279581881340281184262185888805518132534465088867434266784645821980064059731345700972013747652131230159857519559138306138808476594789550953929691677930230814807160910281232878047499969039315049033438200116088785699520906937932788483494217746595880605243842098366864019046700241281919127896969557452873524480906334823589568265253811996682815942354923108569957918759447656984644374062659519686557600656833838163203449803155375385115164659848892341276354126530852549872820712229168690263207391190961437911957809888421542512699945606275112294974125198306910739038310406628582442886325099896751672304946131899986767678482106777483035944378442477013828301066875988889981752046050257100833602682088874130991908970130992536765000811830779364468251509842626760665519003934652910608442761261761288713083785267564125921230871547606934457358265210013870495264979198053560217819423062656889774056646118510707716716286842946317100082799574045524937168601253394640135552887800618290248641926345962875337630446522550120691840465525201431224645292076982279817386552450784155870900116638737036369456291308568166110203437096511883820820389472921454115001399111408103789386621538962637441367040618447156302564679261645213612749348503237320640552677047655307452980129331636439180077578283794407272837362478659669281342298058321329635472053317655065848367452370512548310526485490978203637227854770725612391216194587137271123142758430947366226531447267243684424411913141531150114630185147173736453185852272650350463425175233372229889328321512616338283141463967849461382046894027372770260917411331878983638481643032313417910662276478590056235923458036721393181593943501052409335051827243730970710381584766562928546391742467549302403450849762834841860495960294885309011213218892766373172008556281568338842396580245761470765739557622085824033873469119698249298924064919485674967382236975310691297576989390129389372855364322365468364351397789526183621261520624597477596606142278510641408861901902427718605274827309981757732742157397545467947227910237422524208115919188930177763320058842530371772831697261881170776390036835260595357652834455890123397623179476836944911720964976520284230253236593825150523640897774564051492322529306195044145194607908185838370712285370617410969508521877407903639068149222372048579421917392003034082695594616465656546220621702490574425365792955774389027254735695249054975952666547572300945126947290767997549286129595944359106685128523383461586262996111032717140501512864919599707155878593483098124539812743453379218922694276166174786884208879540245073139354458435244857750725500532599156888339644958462508511954663977330264017938291296228291134041523322121252884905196851827329864235957968526285070563167658018545144752760589615805566218116418333212716400870368794575947737839199763142019856030409265308833144574583702106309249996132219387160528636424458820041519232600710574636187401430073755358840694095103842643680812123831171539662120765855760950449853619561228759970380311034029472686661155435792605142238487199948703402731384166078025908618324989770926241722299135179670675319114401257481468299238428284551124695670740876769757482682653031797459810932571980198997303694869002342900152296060927412874627978584063692704193234432902202837869466898971560586974492137560886453496129115180271570703176734618521274830494992467707385270582835688704596353767422056449631765955440897823269756897380124679694024401635122563615990830342540929060633012053082618030900529301932475044847843799792086801096774606624137440756614608202796823651736193399721867633291407909095404049824943615026750740302562957313752089542085234568095140011911188520375283226883568386934388072895771860327256975118365716500877724767499500734324436648189182363939067098799109265872177989289596335258264241868727830223865439014608489849947735574241526549892681448443804840673952964763484456054922140405937963424413649295285598845905454695765802230530555112201899652298471145369475998501666757354552290860059814287971860750011172737087235987274365276429719044207218411944582932571788527172686733288960113090799515554471677476300013877599062457456139663692459005365918439039676547735933642358598615896568950467358416882442547743687729033429391198363372609284939795865762536469863062626398838165052080220150221349675367114631362340654519891596576561554157778165523659090535818137145811041072275045681923826075500710623414881670880408801005763663030786185573002575772167044334402443592702649932618732795382062257022141330486542794373579922305340544142521713399504389757038592890264255390117817265202960160402892081488140335331857380405943461099282192329362530921079131124318031908706227103165328197255357253445911225837585729953831388379488596262689726446725735131950633577673243930448051512463779382225499638969724498275520447934406901719975279626743406475491139891094478231492941570867749339297634178707145113883146141490853529900652152079737116731116271679765090997600201016205682193267792424504117126092815200931469296228953058356186065260242520947817143557697480678579623042905748945949926190829894124702577365494030715506194475359800847328219918458809667598361392365124294164889020117694192997352841133481671316100494084678014400281147205353288443841473630644276528697966226048460022879397194949754668438732336967891712968550633839802454623590109756538164138421485810193278213106420587612551009325039232654945231855331150904746177795720509616936779031027666429392795579380442565955189965570606342391319917893822842033909800842143322902536137561716971691530925725641060057952236325130670363449213648946128279782127609193871610527333863088212598153526979365758054891949642065919281745125026928043709843236871870820477132131867525979433745098798165354347962884805835357034142829878112591821618153580020713927289096168011745737452859426092871636404328132650414556867048931327799320605724317882045293361217890794958248534400496095749007316210771683575542341654250344665233398684629693306928104868710742033463138488911362954619230564507335037976377565872901527350214502964364180387552785371271901138088241378291649631591073532462182368524461215509671132570412672799198136582645811005954222444107189355905590348146979998818409410904086053202807378838300401640708341306376765044391916496697988160504349811733942757216992339667260043948483404454379825832112108557273062147392541919085549451576759308003995500629339463057731844044462531152462032643049000982733330237397597665824334541559671495149014992661680103353721299877188082991255545782453833883896427098590263029277640064096250466984324855623438152325507152129662901787372343912142652192969845729300656390752959559562029646437861291167808120005762928001418017413483324236416680150713553087012976498110920395539997042597725907112334068529200406231431043675403906438645989931299948994275169790341680153398143304284871509293473934909887459061635567470179342472450262887033370345266602763307501134139034070451937475663154861731909663990095032011455691736338784153536021203591435006668318593238006927438236719361319691399138581611298183144124391158701717347372502528967765164397521726973692850395133804848093955479100383797668134029067101920437605710963237594422752452439904060186754684649624085822706350866296400549017151121087847650984865903755310817803873875925698650788459578474935330177127931802070703495772640297145638508694632185548837019680066133229482513635569244225026093071287890232190502102282950208850885637328289266349867275444326996715345871510849366862396030587813530150879503518457510237712199786480224660385029696772471213959504958632518823167752626141971126547177020125064219559670417669817568597656708982205547944515363709940556382078674051265263862463651510174882395538375395709548949158307708257527161672183120035970594262313956029968229867073560056658994227620947948256877306988948854494911653738426767044376199128575814816517455099189165478074306361021586481897440705562494123490300041200243383789950908479756605051342403049246272685396510148242722670482130460963825619966375074965159889605225735936893329559999172098165438938904919648306882472853349526937635961190123689986702547102774679738039754238093640822091844310912148120881509485413600518811742395083674812218530934561152304493767495902473848750715884703364312065519879108111415865142285030492324442127986144139846956237942974368183379692306006041171988605763499895179386803635644278258754397113317615204882840137519298291607124154422113252827490956511814913907990306334953844593283140227788498977410718343337136238649483942924631866882374006256690333902700828355211819671276927056129528405365712927915630387905647699796579659303413962305712194877645800875171871730908707738807789147483586276253349455530363542305741291329239721746393068087305735733007057676012092595078407402352967484115148980763778426463852930022669595283774235724613963545383677424652440946371734320330346678703400376733995111879346013212034303529700378312620314514448571339746909015738306704705038819298587157130203279351048368614141046568810525212024357352082122646501870783136409007139829813572651730820067536631335653305972222270671585289391468842818333895183539547235865310421020086669388038838730970720056267192430648195461170066029715132436858937803526891487364576515006265213580162164121141240043886767086097242564011783423571739648562269991524224982190685105484952348898735151056237448099574568031928686950247287935357937633102643031626619322870380988018886712878421044701564604163029965318280950383665965198718618059322664608594192118739504816537026695856962848162233917788183765353967185652850087576940047944470945154436710438582051306210452887746613364363735015767977729315137071539770275753018088913217350114916536830342550586361502881595312200916727342813564147003235254328633251641103164195582927413419029272505430435224660195856152643567448233360792986838966767619174906337302623502717662467253776277701940786067554053404748176866782018420896448116703927499446301607972564841793515640575522471963314298193126892064708044185179390231200570032075338215657375990790174633130006646112551126769435834366991865229535783740978956069949610404863092294461391739903010089480614547725710863083729963335019174991170495873589823299358106341238075617770260285622192836804219144773164196051091544336631641284087578527293330824254280882086206207361530639943324086120888708348867266582408239255987543360300246804382318523637322379433350656010003146370654429882873151393061994405147901691115308064931231672869830538419056251018332271908208827503310126523484128252193784389256187408025423342325836263868117926447163065662102448580691799298310566484662723357826108845613056252334440577953006943734187009190870630903399918500167671826480470792914664036728957119193528916326236475628555885515566297250166259957448831434820273566802850093296183977894978349608713139788278927504491483686624371385147984848990554113498453403950661301421367273909587096301941397230299989489026971561758836183924987893874599396925795444698898285733795095230537378243175088755630089676020945370804184793287640926149499127458372340346010637972541931065296361773439464333133220055293019275173292436421779514341875761669897060859953829248675102283893785113094218287279251740431685188736432011917466834523283340386482395689902804404837479336717702746829907726490716132393171761506993909428648477647374238754222843113332776552206470200637282408731921668862133827462917339753115965771609202024908626161197816210256839750723021961059315759771122215269676434940863123424382365053746168763726919883109068940460343389353441395482449641314582843359288648268056538778044976378281351234987889218743184965394739335943171713061365060389178376108806541981548393908634198748988074574564259113275106949031394466825338124712785690900905569961121357746952544512232721000633815293170611303521914344753316287675362647432110154372427635558946597333446006431142961751285215848944955747354619030524409741468303434499662633758277059857730738046221407648606352783256502641972573685341752137484607453409082066929787337371437024920071772464036686498476846546998543751875690242208639253156448672491995509234082891284263918272376432608320599826854359292232987375863547919347609696003328746790023795995380981803941671139356052951661683438451288301558068189406132136586165911809797430560367752058188017946604195994030485433833300451387842782644762737352315551912701127307472081043254752132347564894701126586250705294691029611712715801875290203100344758990232093470839032359951113983224550143381225793755924109205354782524385220939144443738486782322467981560780731310355341629539111436423599586598151175211204502517353309403127411217497084154931730655575574426175044919808638660465925046685218024010910297289069262213007335153594992694569705331909464479583234322937918556422160605854525109460923882152497772055296980476600258824967890666742646692185219900550701568282675726593195703017587515365476377234844694117946906226248589845850936395050447468012277435001321745913729042227896345111061709976577777704221576719754259421632245770651198124907141375002085356084302239978546577748928014519810900626318034492894333545145647869904622219604154326835947116456728304525760912594449918379759090785443093422318118484798877615508971192362587578620829645627361674658141441185814733294363433948102654557232044255839045626657872858284651866642551128358179206248628045672612811361754302646439193444852155673727024205883858451398433968059114225728192417693322546626189137507466009337328543959329373778407451187775729280380480170873302321849769244459226340699591892659357344277194061594184098848179170105816794399838122116213674436518598967657676441342670976325108416097241796107403730657285549561101482865242341488625154407641280944498216818858917884825481998869485283825241274838265552575869135530748074835404571068018911866012168758296839855528004920555637036219499940494392085099874995988122538746747808535562259905182017191400857753143796108441791014221398029456731208795886861004965979690166881611717752052932273064509870005446479582494826465500994601095403580284625979147661668466467475123101381503071721958336986685143684469686284938612162565049471124417846697947681617462878289466860377389367530587854539830973603456361478173369757739561405040389635381216041788261171166906151980726698295254526835010359366909594195084650224283139727699873290828814103932087115637082202294981899431685951674823198046162673056183878202436574614170477038563146379770251206017053989877730422818286935983706795011714230027561254733748211155473680434534820046252612203636992920153751012902708544480999592672826438707234634939442616114790683363204925457599820103391194697757869702405646289616453395934059854476679736358506344477371525662310242647288457228801921591435454750442941554283622684105226647208032046056615507170827064673078845184741903948576462432039964615275711142062468184047277986782530580157430779536911673065826734625731805660459462772941872828654728902462686149736627846571598239294266747845717692618072508693455481999465812691131610037477842347541806132603841128083464663361897190970206861980146725187624508118634957746026494792786459596679799959295442984711158246989369453446895424818687039934706535575847736935960327815135206234430866876199346374889462445694207346743906634124903118945444129527190440201155889529779316550822834434305838106805985678752914840137671728815397198107191290087530068340106997600217887057194098484349645370652979410458158544165839574513330701975890038238529512946261553532120805824265416426235962873930026795250579120380470702851361965322398753622751337768126126368230734418267864301675326108915760116327841629507520180592830924182101030081561725951796761343321032490990093504003770641144150567330671475228695939993687129551664762979604334926153390466101093863928339750172181611323361915878524302227440430323835945740513455513754666806470140705945277943118281154139136049863715226024052000572849286270171796705573595581197000931715667527358040553452476298003068466043240624244589147229316985779267718953073458971919133557040318635997978088916576802012055013692837176746500254705782169012322969444647378504246665970505726125142699893591894769544008597677055357011047628303666448442478318311151014059692044792847077349599897166929300003385549761977104776715787087648568128605220531340430875591835497487358437103371232209509540785880382950406484955815230814395443962286439345671526174068619782604908803755590134551372686695848318947202933819472785045125641442138296900040275237971195747634637051831569876409008841260387521076642100756310970689244731366035257912437424380039860119212635645951066622172290614251138878737894830027223315765935561049074071188203598472137570339235338963920573575558369632036171741540697890173061038424020973097368328509926561511779415890356683707480034015144974676783209330910249946867714362184380122587240618633577615278246485233655955122978647245954008846959114154681737158982146932944211496966102658741471144158510274904314677115991287476884740619251393008172146854085024583592623534549765261660082022730670676150386406338962424906624903952801763350670548005056903701868309724916663395577203731721038783538984543993850154638405465262844754947982720351644920910211671572054564656075991601686997925302452205285196703705763425363881297401315090778369978954787994759366052236234333245275602944230296106827877746134137192590101204744560537880827784831440157038359621414323174236759579616142218996872261780618424341982632182284515265873920147328066814499206234098640752514594298690210978103923612330917005706585557767201101823847589791927475423071812943046872889719836648466061917189187823225920598132444223486872292259611664999873973774683054903708318210692315279727610718721851778413532169506591080853028702622420622685714781280286484606627629082949763674944099293977746497104037171503161859040781207905362615390625500341759664650976943910270506899054511730150169046717969301256222455685638406600565025538813367878182913065216576259248698989853038947325370492424256335294432873809719982540669123245786316860972836021154899588596508070654156475859241996425560782125319542050043742003305977666938826774536708794203885765430844390019832912621893434198485368488691427092140795092315509938562819652683467731193623942460870226816801950198828996094422334498226010704748737219447214187664130566711207276223000985465421856781975703800609241199296974789306413823501256920109175919798853318126657746081255141701269600172982293990298771527071266456534694767052703062104774665277093870275747899176427100070757641822808040765419955851744674347006818267208571707426357707223805215628851547476528516787315665511322248691784024907307305670296457833633910137528415343483344532409034171668230660720710930602329771248611260409344335674558636396437017680169230973515074073960308934599846160370412511115286192507676237967885791319390876039192288520992200037588169270060221334225410848476951688233461059131500402743362684368466737117375390292629855396490096833417822924860507843264439686548920868219848034738123756245134327713556904397537387288901461618016148960959593753407335615333712387043163905058295274977479932858066632771940705046016745027341671835193142028377718353509938735370123480693268213023576292887253514430322409558656511707411947001314682674851073707351495434947722883235839584004817879243692864038795162789520425865537687217731529034901779640608688608924729653314149835493220321093939718720192212595998729800041826379737117998767413212956236146003967690878252401591669185210811528414286261536726316574914897549098989217411065939827636462739137727651827469282403011300287577838858307452709548275603890468574334908826535548992621773340681112105437392279720731290630992746313095502959784659114934156629087075553006050725842947011541703054741208512834635877499206582268429203844238201339467536905589085559582477908195846585305963979690679979432587358831782501249397906408394628876911772225953795646452905397651822864311335280143765947059655568902730678115307256063073606859247648081438567561435603313976718010073676857829108658268015828368264618775310069701390672159972332050107769413974688674583517812631143632569561786590031435044771715595677592002101460310814476415678570231932110439696556124845133695482920315968207226268789045624931470120938560628926215433380681278801984195593391052203063665243322938563625050782790171310314853154034114656914194413610811429515151944667123034194700329405313661986982925830853649178981201731008155532781020254657920980604629676845847548361866567597253828114749460821434434797411212655732966837201389695560899427457712798166028710781742297938933850532154847265569613514753598198848659431183545100719641824307122038338725692096540385384375898967384444326253502994608921660739692415022678586242516811643827136923131082084164752691858030932078522637258314534379437685702788690699861659538648702675505885473079264154079032239116527381278597960974670262334772337069115410711407613800482178399305588553987402246625616398390298112250463145336768026769968469158593737224604438813851287368255861554276287944802890111429492834038738295200514963684089468373707007643859777857755463191248091211465317048439137942327065343503205065638666302538479023698088116594035140242158325366777631638868764660110140492506621231869319084891225486190996707726619834559160726077731330462127770173477530275540354779511614907786165754134412984036230353479077814766901904999409191068723996635326337895367028481219870770545307530515175986535297508073233580739963658955806434157355444763446672131261379534275293751623102747855263994989367046013480499355939861541548935635987654909586065477433268428612952187576863881098645412293531542971933989987594355254592987289227773745525494286481708159814568232232798499733656220063245572012148029581529122652038584397867033999003306879351095850161552119579195620903575797105007937753703148635625068256490833587523850197997237788714533197887933961251781613833306613106090215029468507858891139509673052288739226007349340357088558604220072906359321925699059112664551436173658975858365741996547134591422303369034570009311574218386374992794153421846340745509214331847758836070233791226741370896059726088650566885946422154117564610512535631775934245275408227490553460793393823169854711233635459213552775850543206851939376268322161605744726171781310544516475909982656796021873955636951007648135872819836512631536435087678888372280906252772254532084065979301002124367954218377016209034634805662445259211369738979710098693125414071597359979814448582227449927241002205206940546664123323948601173187224364346674490267340676687980120406611268269971757615554984896357584314798765650313878843713680016067918244912550200791772461787321602667019359745885395696928611657049073846954094212884529884807410658264330177618841517434839449627910036705908118588460909408397386476278369621585693380841857309132098937637033778088850438565797339821699043775739826933349394049461801372619050937567667070879088321842028824890554086140944602976508997142902137066817670588196040362691955724802465456039555953299212715937299532126626419769151354116923478100587611671293421968109473224640899973300089545259633176709047918267215806726521044435675904651256956444290218310752746582566080786064721174961058050981563321140796060434909019097656756253362566949304329599688920422219339266412342705265512789721019934406834865914100341641667256137395905133412887164857277068470888177824631075957776268635875600135497982790810448811299443035380901666347406381190433839541051395029685760844665740861431220958675597887745983972723719304341508560856843105499062069950957879707465852880855147466186048909186085335885382610131972300424153013259989077071432733940651776895844972356750709768483943086679266481188048477431542312476837038480402325984831166502914418796678368750924251203804835061424883411312299921818516241403040684943424177392809129771397634960001737197970101488295721355586966761711470703619064599153327805489485853878486783683836071987910871503104256464690101069296230060807756991070547391323811071673842465970945630492398517761756532539601960510850269817901679029173521921110175127000987181696314774797211431971233511751852573424490998059514243866757381853686416717634145955393990904760267546953968562826834664464977061571150839185179884630756730700624826193274410623487820818723588441718071587637418359463271912601429762621070414652061573496448532858913386164537053181694845791295711313647210293968636661037772260311693836401108179208870091901792684221875270567969873452380997407414190860476563988090397237829064731984522551336785761148257254308755639545250224550790157996006798159389014013445329366017143563816328967551938611884948872402646420665765837580249265280533140482908854156784102747432449984298998504652812801230019474309640024161519888446423310810788178365088264749216095344005623421018394782514407357035235335593620549101051022190902553107790030155611768362155637156217140476529742999128112843059986604445005698188693404491003515756144341388341888929993473361699399783109425290371583166897930998340796219892486437373554427283438066329623252108790366536333555667843929789819178739397356087687946083632354482561533534869143472013376780501052037475302864776796288485129002979124523783807387304155077772001033582548654642022844498485018914394061089797717587556851314233952640309996369464844435584332945245230317213765183121682436409241196521087159008564933466537207932317263491570572961487771788180705341324013620665243262747407509760990728063232198439712286095719920124677530479545570209281649717607149683407561105691626575386357760100611295439328207058504224478813397852566281520451296038079054950406275103898245979361341416878473469115925650791570966181787843037940675461747003433475691820764579537215110284962142269466014138781113978973151065189601160799530516403520663512042814307587455662375613553412029286647711498812135501472891039613979296920012927191430124808444504795390930734923605362167681643112205847023488554667070987080208911448341680689317223415174074627240854228473080554426923021612249461374165409317598233168788165581896252561230299139652167199961614377903330393504109057323968457585596524460516838066339025604222192377462581242706004432021799804752284976923629893841601590195587894341277152069426649203390470308897826252325753518895353082983067921333892825293926033735578684046552616409444902676407068112482004082937335567216530938009310794099638504464920489943740732460013644914905512735273024075198401631894245105150003728132222753995659704691212745862186540975769359503726595126019477315756306673154421185306437843116799690519830220555401769390639256972621353150896110143363096178732546972933655864063460946784964182204522184463545597293699726341808485415663543122597006110444092325466732951129438567228625646433780952306275263527328695838116057315574360926104532849161261152910934328526680185020657846752205199102777824237435676467799245113828295404463418512361516471031630325266571330703823644529077524228074340125440542221448477678125576431254603318108605673607354804888546042362992666739330814354439647051728641138071350590654978446324423215775836756949706174900552969110315471225891223818696809316787287894625084220752119554542951940806913780268793162159052044438967822333707530070670811697632613007103282590302181440124622118311796417925420645622774665809637965975339325761096778937049908407330630911694840401822845734439399933116175041333116366196032161079555715090336048720410481810207649942266053235148060096342837882917440097393991618583300214766365308481547181717901291871534216121944518621632609438685085074852279429308424296342149788264965804627024175528517256474950679188099758712332529322745718815869407100325228342137036317223406082210257774455216594607554775183947148158597986981563753923143211662391377542991215813444893035664617817385861615279552805541712787881478781950085920532616366266424074298180075533635605918239991918561783873926743522818589775994416239970487635848304265478204679679099822472216180754089096507308252550809434255791457216506126672491623497325098771589213115120192066015396579895034155770896187197763072701580473825806913495025922394454341986575041540292904010691897743943268869198541258344140518646808577576118613596411302099471826779702738625849067420605401528890228189627884954247496757205446635407092811037548895718310088271018950435453307612924572611748897399421358321416100477263180498106527644413237228473672538646025153505880842698342112372013278284312532725334759331089370258180990873440300704750380611446726218506895133390295697316416020501897926051546479756296194257111075582546060260388477862183525186008600120795240168705447066896100890248915235616967633205733893481686078832374488004768308092136595870004260727848324944299295981623093630605378738357506799255575417342774907471509970780962383216432724116294871141243018770355146330904343829626752871730543687254051274310947006233875233542217824855761093484786183589801340736611100377159942690606043575732846880821895550468912087791159197337942087785535760251032672385932691490014625300618983101575965840780187596490541188012500376002349893045594666383854787805223865055275382662189356055587165633820906281477077935741705341621018232005927552076158592204688280881490086026456576707315137799038884500310191686183543403206712257103051230641323187558542495146044765585921708467031338631038659806606986834177710617491687612056968512155435795833544377278815168760624169571338526450925362240101217737393827482458824132612102606258910979312785836513662575232665840677376304660097584048881583327562513449752226306977975488894880711167738195094618583001489662521900584073760899206114682482752750868629305523066004280188911048677660579260616377396076307151227346929678553755987585594042877686605991360697722493438123051625797281427625817155634323540668008425720439536326906133970994959168506136136152284183556486727354177368541345669629400616885679308795529880833803340656396010349589983814925640544289021210664234906169968201160806852791994082898094088770861478323240106875774289149720866829965500886315069654383408588955290658833765456574265720253339069826382703770938517686151515361494335458408203196444566884115816002805819204932305023807502330093051169684323534343193249786614496587945285125843749288144259838263272825266241376905686465221877521022329473831232140946110562558412987139986035086666388780836973399568054883806912332368792716772054228828608913584101957052953940347009556325974401046143739303589695045940744567331166358124637868359695997157423278914518652888785314715344952044657279881302475498904704293269694594658893881913113306223806622850083117594835785173555851584282219981644367038718135126918420140738294708269035546497305825577211766696194337693325506269903398011560515699798767982024853857055627852879449035678613382826598137025332772829129808114211757739871940996094090421123419084264829862970874923768648397030333010969264738234950619815171201150243378451951899395482753509281418022915368208278281064870732374740339328883468932595665549928403276388629966870812997148751217053934888596064891718891748345204104663384009808536695960183671689274564266961859691200287162069487311607338173965129688673325100815436671494180570585407122293154809682455179795877091892444830878438038353018898292193776343447150592371375964140976712710406527131069878905158049571825845715075978969382463846812211807060451053258667914366267924549348548395976885045294483555216830784961235606796782856177840442877535759314729201834634987624223401233016752434217596788460538090413572289545974270676677784855672365630274606043720325453535327274683533436097999965924405801920102877530961814495118878298794719105453205565824633636020173006291131441613935680029778413448625497500231562532949553576503522795941171217276467070090769551545220132773548984892673439591760607206553356745948322908311441662473715760454110678538775013892451586548988917173715120653592748171255257922084829914811163165181678673386327135476580737408469738604330621159058027271321837291598649157643663325683188662432413248915803697809847333225869953145978739473930791563415149320179707325421332793430263581736050883079385340171333860913825651530630135856471430948551149936152555876975264170893002468546297343543626389337506856661275415387098005925678938779111925362508159460730251727191628972207130907433435945931303155952615760743833147331533814331182682989335067093225928175747405005042489611662216373579078481012392742279053098264970658149654831060491681299280400315042302593487476731761791657534295879622679642933003538373790055619531351861418649607391276273007163493528128522668000894408520784781827389965023605002859199034444376830331494783766585767027361148466143158850767327234309430988246695555214838591239095685716253644380456414642277757419870395917247687026648992349931936815582345425753197915100028090345152772781512128138490499920997931170956997476427235239070422185702349728565071979720085322248994093008948228360799541103203260477915823686041904470803443628017268232777806538988215691250556489159909891115100066573111101352559076062397649404395359603793012951365893504050959779751232801037376356518483219546248311470091841431469250798142392698616334106980981379170609355678227663104824746426219705427230618835747563435253183244831164147511543807202830357516309448496360391060592256776601809682631569935185041643270568238158388175009201290004183922951641394052601321771795956682956420233432912733998143786563528611667385971150468631118296426109992604932343455046931499248738191669270833540166466757306568531270817989009296328879550421114703354497254695409505557859141712184304822692612441769406103608466582068055863469139184992741246835715784300062450382396957756458149345521430413463649932341333186090178050397952700414711412773845536836285646967713951324713838545582683885050627297040873839622853655061673864251672386898463223412777030606906288399664365210537125235096211135341793062081316853236688903436293137222554196604117496480130510437555558827449552693386886082995564275406933198352489862058908602902489314468323186858061999681680739885722642747005214567598827999948722905599033453502055272515191830209149121297180221346633154446931681919238076012512147396885409360843494194877432451671627851545770394914589444983328429797170280118866842486150860700299019104792101254464107001266728501432918812745419744168610055183234333456489314118954484498639102685823436048291633267067227972125699903406169332496810652335122813955886406500454772621914840538965187159438979700953622517267104822977330701484394458303477546462192013554790280131180964491090796436555297257863615045683698031346156162214810657491590552051468620391055944316639929941403364489765514327864707621007828193173139637451101234627029298835425550017705966536718281686888435968097769647112588579776336610616688901127387528996401353902654237564410004325953671088413760836806100734945814346987871223557167028106379195087573974267178781016758314774770782268179032231678617595186543667271323762019311238041266327763044737849805391452823088651459069963552689924169895788607938950877710752268181258447998944093031940391904135433253044310878236493236028875025614528241663956093666331033124506726723361415620641687086077280328480793032727104936102651184007767648778621772399508298460844883540112127171108612805814038632528755809269871507983835614030517754572996813596483768549990140309687629493473819934861670470220302894300211646732999421917425182745639411751727386143876791568274140526980616049019840147263062416324247347515864707381005299459985528085367984359648330281798243883838327341112016233718776246829600767925968059392726486851049394642231559301788456887557581883136889980502358438932879965569454952931999064857233136068905823045660446278571566618865321730743137892855435537361636154362081301314276833290573607206149173045272662581442415759499748833292705534189397879653110703930020444167988029591732294399574247523399594547216443889747224654428714470134164796838478338825461676338667273761534154130222614814161451602872606525748895022452951937759375035368901306753079815227160684241405897661340578036939713915430221222006609054754066100443417188874296595396107814915692409981967706385805244498187879274065084267157005411401933307628587073567680752749440699241983789749034077418304804683851397166153492588308378598542970397876240307882994238455859756429755059996728503719843662078441679512898053322225326565057873120918110041870012029374552329024039589620609123124505092970280017776210997250406097554268732967176457767609734694665043544786716784730733223234704932051106789459237575167202309887327297085455702440293555780147589883212949989013307459706368310831686782129781918044580134032878570777823744530140054052860901246681514417457997246651569468976225549415899604951356615333756747680883885803895216448716328028042823913025052896126514486003054356533954694248513935931550349797501752411960418788764908858404849195814195065337560657275157761979236091494460308968983542253777504392783983344731025728998912049386349655720694558286056212863931039293065598109034550443998289912388468826178126786806145884174230178807797864605211040761082171991617235845293939336890840317046795221934130797260174212156551107429902207181830436466095362472319208875245949354623393030982904010055935425159725633852171290689755785145786281351937468677847484424676856589136133144802224921038434888949021195035848233139314161252879339591312119344655448592203138679676533489317562378941541552348793892698885976230303558033878433428041444280721312577541281976041144865395788314094709167659768178844710087236858390009946645323538570909903626426346606922200098009795963268863808187038344832230582689320929078572548351094022282659287014712435230957668739165644254141698909333031259229878163559154624026775367374450349703963919799757704646067844090416725687331153025834014061538187985208574519409066355254468899016855493336836216831348256259696645781440554415843673572239540421248472814069660603106199413932083225441242626276147047395843573044614448519366166643054416744596113864699824616556089045468050218864301598613788570144531940160010240790854020162659035385679739161549337973488333681481546896226476150804357649431788545883843804211340205679112795450569264303964153064479299696136741948092461805183377025346761053936340864666112123326297186411154519446236137760674792415835608984056145131164917425998083748937843171245552884368194449649957842473825182846262120242873440312921182222882960064431386432459813387675303221465746320503527570810007123174681245199367110077473753070557630395247539067218962260064606662300598575328268449224699039193562099969706152299378386911171083060996884938693827837306356828713636183394484681048218666766416523627307052108972093771880390371223793463424303408837471826397758116129382782697020311703942692242373240320791255597667050945515731927525408509306242381696604605499205500793184750793482911344994762989293162432929905757505777542103388745162341649141531838857671413822437597948787074106429253414848789646884321043154160843455310537879621451487197376440938606700158852987480346738096643913918524527999958225831502712301216973928921783756746680088857226258180548536611719144943377208977928997133076769936537787436842330325794821311699445191922643892114224985956042603257324609027451878290002518375676773396693881810611913475064651824429611337578336401526968128650460447252395386226571287220542550530946789369170434748557372152862511810204610421737926830355258273337611675921590556008922650638274562010206903432298631708228435555368351671785244569285470937654876561749854906775757251040655006697011935544066517574254244024491703461782061529304145723500146068233348661978093231447456757013256242487786501601796567583494877130314900619744469293657187517032777007207460163198125323610965536958537357262147351546861717152995375820093869026597822094067098313410794349410500662558771052929021489681001834119067500375384921255113988865322338671385173879171603221008610674641380694264947312219601699994373122587468424519421290886987896103707686508800702274383752953446981773994806939361981573241588233910619304970134103518353838303918010019893305248277891950061496371518380215533501358367711809734913405849327522568117371584608706019751767107646703789631265458865409851711558007780347147607309516841311793943229679579653083771307118390443491766559713752698600465697910424907653894601217282254895670289770831788657175372544019571455083525701167714460723030949626235705694226698602976248365470869571890496654043670731204728683327076433258196489920439716712205559803624559148006074640877376068772483354940015659815466413943624444709025351352720517941061610908364697802477235286884889088961754496355280690848306248972657142445269747314190408682785513437138495037454814819569021065278914849774261189248712321551838645092625122586253542191944039324965412513648592686816764597737451170104925452991568294126125035627441913670660668352056807243760884938922784505616827257543328540019919852752612377381460487939672677042938490653735155462874966873246878241410056380481080865114599327975049812558694355818394729937347550540348598057366713149501633070413213633659566447678939643890714025492863991006768744143472889529694611021676776034224115250872532810855916749563622616935932759667397893182157758806503886710293800806411234549704050419333645416685887207556622786463000910056461854200378680654882659569065630512697605792545248945416364486752724531480586008384591522470350819554287372859849718386772961659798042749417436196979460341935276848003966757976658438840656113607007543935431821679293536867766049739521269110576339880780393667104158492464792897334547535586969283544432827615422131253469911615043773828013944633273923880438811765097382694410114544560460008949103987683529308780114203841060527951181820877329566242794051033896318251460319647532477465886816977859593457545305181447362834194305621309402088449273217197372498299667022140712275407720649077094899315623952454525306141507417834575949253859746687053631001288932032165223235088067743707193343494203750135835288507572208795784092604833552498692595443142599442395677792733611269008967966054803985913776124531077505074168135278644092536545270778812002483595600179200905112100073323346845472165683677134319703992219468812550001501013127315831402730961996215758169148807821362501932209419288408426966426038847174921786004813494154503968082783659320368054185057325493296891384057978384818660051362616610624495839858360697717868235848221734943741953880494411181074747742815229424028336555963280890103561858225758584955437758744352028078036179220275982578815028369293581251495920678616376713305503715573685398770447303212387275913204067597254946780018372225106733314503096401586804488339579225148907655601537223083964472644289520007134176519825116751122991865778754640722157824552520462865614631890635571705711999544446228934477188828353723787570836237441372145082133423611530289520623378135042264514575430468092933853956077274993615403021814892801506815936762328276037278977240171906996001033927985469768106451374953405943318556024758376859499239669143778700854918143483787668350575938352159606226386803418229112879455742411864603429414276584870613007574546989270119736738001653677908134515562168758649625492383183708943392803117571784828524634234227698549550262445080342015310890149321806949907010580031836563723747805710933254184085022174029565685649922903926762009093921160012998853403304423752747369166374822924297367194810263054240508327866539616399707397500014737799274591419066171591947623788399694524105312144144939809276331851358642953888427803856738946086668535374292325158530603682395296716035327416823130564509032218342978927062547600724483530395507301376450041666886593435504659154236189470313419646464703819923723545614783360438859251930821895402232071724371063348203352223425844500375142985927168183820650022494562269126264733122881387021958471015629242251873291629703284660015863992907225131690300259796811121660669547780403362855615496937998336023947278846677931727851990872534493934051350108418942107138868633726172536101412473155234640348224332243839905593271184643854495353005263084680928787059708006381070157814047426528504312222328971858537920938865480987900328001416590401273109287185333295744996632271836532649962218186876535531116494937431230032643668233453314924110704762341007522862010818059586283402960206310739288732248271661985209680578627477401335158585417591836674727837626956239420201082891424326162555659809088604849123605222224944088230147286557968696458100908709230952550822589358500696841226912744007829674651698395621527685316452246370113544193312117197207386317341211040288020289945573057095432932356961619233131084125838284175860885850855123605671057143917404553920547750465151010373899466986783344071165290016720183321321085542195333357205494450559850800455462656570209065599757739728094857332966264703760869648308880285363940560602042967106770121466513956166871963046423532053581539703879217585034839571507970449394763838122559472461043219979195201771173784536109342764456864691704444245326208214027354645792465795385449158547740937256055248892040599376118205056559678848427487299975755114191232195647182000670224027351865581326576865547490585384133987559427456740960287552574833687474974986121105425888533591720507878127400248195677872942725351525148074839788893397653089536705923022387749598057554456841783707865353111140946763626621509187652062972024032285796975550113517542145119605352324514968141120999599380352806608422937788794866858976720468758379228554429247510678811594462955153476073352830396208533931922699881569195534456740957825671604404017631196661755282244883403159829806162546747528706916892479104372694736345561002188216031042299646259873569081253919695793108031637209523688883280644359490686171771632264127438908836290688640301804029703354974323882961498133380508010692122419706211973391359379378303655962128814087263238908377805593309363892932178580427595349356368210163162197005394199097631247207378897855892020943876405867532495393181271186195163750412724186213500487700247541457876178455436370572646453717769837346366331504782621409124413777138213211838575207264666228716147237321365151343269928862298115087962294099749776996748538934268973474037460617262199231686061023739116422848810567687485836157965550427791329663089981896537604770319324340008119440489858018517518912861667484898642777705605183082915347710547832766495962489213481896839665476851184999319846596345679030649896510866056635542449777925738011422977015262794392615004441738603943543905101016731168251222875411477358048503475533472495535374070168996831063940610024091073784349596966206536735130037239982393762718053477192517852642194318514883350882928956578068893960831839611203222722131400624787564562773262072953008706486660692681471418751835661720139470932463803926283623093761387480539757736445989335892874962754073100522742814594563460213506738939104544444594877325908628296060338408191224086471701595022358701212741405257766989193714917765595972282820707738681988735874163423401833516745670710963527721007317340491562728374890599870579600897092245543018824630217049542404867834826723404299399015483595374052881696073307074701383449565064931257076295160142425511410441721324721445571108061688280938681242583404704890203068787728821522616461497729599462798718868357329489336990384448026167668367641980548997445814956287186232714495163103826237991070721117472869013732911716247302597589833473078108339638361548492826525456251264997784140131056706261791738329154850139022674754916141857308782534644892915678285722791572400246522413278860354158306031548305101002090908666759543156236663009981840755096192382838174901100742648538636888577996394005024356614228113592358417702992341379075900247405893503109006782777754380833629619601156434769673376184723650286999131358621219587469640936844610524652066652856211874199662649434694912481310699014896308990017051876469597050818658269760495113801536988968919188706894775152598200545878970410431680428595423347581783233411263579945037543307533293844167846667842667972755201726757303258231090392552972797055650116717547660200172489140104538609271669878829466920972359371240925395591749859232969087212214192018004514717340993282283716987233553649822550431274964209219801934312473384371706541297738766247813067449391707070903517545131699049214834747312289752218283185349586339014835873493894137125139524018514436921785583904987579598332415009688371991553140834957732335271210445014210356718235900952353378722100487861677781456944921660302854927868085579500074608242785670940055645084437534561014079634744485178991115084794839152177719583457401493830971515265729134287278141798762326058064404739998969040294546138365736805974819165677076720663086109130003422342055502057626136154879629131080052753798363086737670767375741619139849918130088196048368317647804471237902961969214745911741199728046667132740761245473941434037738828254906160362949626471248480271837627083076579325350571732746053526347941542566977830647608156978293201452969257802589086917532622645366592145125231910430654141986744906508592611178732402877348955586366765747555036595695197812044837926012200182680679470278647045487877963806327896894188746904025691853526166587910185313986963798226698594007254531879463290187107319246782259104130329057723031303184608993554948357570180620545988579998186378252598491406729978203944709724075781175814545669846506416758483339928593168581978695064521088430674265973647264722018263707335131854108289283421226980203227750343998522518398048489183747905991644533421802505129340621896886389827746447983206296016495837524692268107914760038486102850052690987060133429910882103290421296563730428508792488625522167160411101135113972693555408600338314742104696786037189830911052547368786625035110211022704791474509569519680646956102645759443037770080595609422841110939036835560949482738745166800831955689145631647754856754292654502125681455378386030254791481950888228264980312014689490393674955684648998718006930414265682742099671903383626204162896449989166866988602125567874060151672778919317901326555321953048908344185007934538615893648216655298312409700061980533703008263350255582392844493022506632770067832615921782110247729678259868681749089026514150025539290508857438421393146696166073265018732930566625117667447226963688070764043310361450415165705661769345605895585873099159937367328953545578005331684036899636759266722513261780532472847777988006695833941067876815566263155362325770856690532068622885015815643195767114072132258661280174056757335963947006752935788305314096852053755587129216684976373071837837031763863814005999250427051693491090088743149407926344333537713494738696396708776964393716881765208053560109421394950359163143143480341255997129240660538020208549021091226044451385603467754267987328912494702201293247035750283043570332726254386664743674403755302133581470049579978468131895943893791742122884325313412853490731213177887553965152200273435795213115935065948692638708226197023940226367268705881239878614032357372513315790987585122584573391697791208315139196010375731275079786423186054776566637872901845277613001008256338730694457972249486807639737482977741042068361985030496348503650146538994168486968367795983096789510707088607449954916234655519268402729565355937515108719333702672821257065305789055201042157590845929454989723980994085946673143990746446495701581841590244796776659606207690555590222680752901506188984037869758484005321449211880239324396649870159748461775226185769833887925304805669685728717721469897642441130554682543870344887444911927421597432820654027540827556812378176603318459077032349715845692292481976404782147432193484154091988421217133428208513536617449700015138106154346066123485098891738462166598306827322503046144033808886215890141723079165136280871739475295389673422532063542154354474737996751979613473623187957825839181923413923621974421775843698337569290365582721970548687892786651928038922451267770153928054094161996405502499574715005823750322688587771231954993130789632043713432247546851473572830077586092798430229734356438358840977320361658214369726952836599044084727491269606306282510451450201878654761986351028208617321975096246999451453193097452552271360671984005075978021724907612894818909219195024410029627321239655274669209587601299425192167509303645885043581692789872641311509712153329107419826483575450178034547880326113187610961802654996536795147714164778562507405084034809345271807988868446473060298382416163754587970584705838080619760957807745183419500068412228076406972034327428497571386175157825719277368670982518306350348981616259879397688143342676390562259298735217621397962456848921293396234691996030602432307169559667013249956567657730469112035400744686293593396945407314568346603874236712538867038830682351689729296957968595426322403339701367006991300043911401394745971043180483487386144577365424240252202684185701604179803144598984758862247405645105235833063091255621769736917750948454550133283559183100038167773786634578064826820337565882836436890823032462859494825690309380930236981161182342679862418843338065554870158760049425434752872521927218873380637003109335669691331063429349299789988419815668986502561908052755704038620760028721028619843038800610756454214302114111183091416209470949654316343929752070553921084040377308347571844526724843870724121414808414283778169088495958949188087455452314865116455934880083614445155718652239313590307493852899503243937870906621058078806813799970543324480322319267002294986788611612632988670877277167146873600650627880616519243069537150273627001794395897095927821512450247023391867542613878342116664513575296000039694272949184201249896393713371446198652527524076154989323093235177474010339473544044686577048524446119247926198899409570619780488725401203115486276754709811482091039297234019907371169089199058774222985094453989978998628124434767909217782611903075730297436827980731787222423769275449893168800257542046901574677449048619002704539854284094155859224190897432519484417312516983458624920699425313234506029106822234572224681411502391904713621729974224559988061174469275347752572053945264087365156006426963258264995048306935009896125062219260850026189395148770640681805837716163862641951202048352707946328979399209417063430473096276233776350037471850551772449011330428396671388050656802537287756456183813585829408915931199160672027480165016322765088818199045177020756701760117323093684858131470359790927559122912242713632060176800226534941468653093991306998200778188624043883202408832287482789291784335804397024414122493720023402524481201065647720189798373901018130756222878277796932150045301550350865674450972286266149076641364413551467990418181952682713693801709027839870434224309934173129344591581287149343628499404117508213352941748038712736558038666332234797624715190276309322595365211982694476804187425600863931458639373235263137398185676002968356169115358259235279207632240765629452796744906491184614341525469612464456458133031220492952702860052649325119170400497993349845270961994170153251424084943538612192619020313465068074242422859795249172057331300710164535124264556134654364391370828919687432889706443034915387644051432933729926018267059644434718722051279590883258727834864844717159813234218250813274485895309178718890054487216934165324677127489925831232702570207552908962365316539151734478740255386006531631817791822360484453293182323228730619345858825009166737444105324019752886855140601802841129253781476265327962591147705878083862692177693271897178053105253145150933025725775297540501950323594858591340427499109502287726551647084936700879743094364489853686521873988985910419789520683272240122261385471039709376970349257963271413997481878935809663084793738115950270729558468106552023921594707314553968833309904750357535200203225143730292188868315066289203422638236406886014448917604263257682629605170953770255380156796202516739510674855372184368712452851397494959933596373308113973918865166938554310339971633373978574169312815815178734787979145174161631720175195161572082794333299948601925259148718982532572919260246242426129975960152848528897786502922608460443013325701235296340215274539252266660718075533738298732760029527991289491303187211402368050869787395685088275422395434731819275844206480305644731936961367006104380489827318354937223660229228274085331916262975930018193024196956660697861578661215565851863085758659141605198341486710190693488433673807422706786421895139326314106928954535011893449841338511035146736902740585339889255596335500098722808663043273510613104006284221929810990432142666240420396740183317100905050749592223883777211367763492085155987753520860351253590133905634995372086532642502326473257790039325530294717944432881669958262510710468070873196439678838698590642807227209655531479038368501526328329965400585292244173836556993182741469501991191713058663875057397373837359388556631919245584465527151627703443089219371475400387623033486109440395941648219171510833951236300233176257698301467021433552873236332953762862780099233250751832508472613651276905372957271047770322436004687367544700297148171553017097361240614294102998229034129087195201134229086593478129897122116104447803082919612612173172451818900698399609645402452865320651165128421182817524474966823035150695436495178081827770623116215913407466130004504659664131491232866000668555248734174729155376721397038200473877322403351182475728176018146906708283928175120320331282482722007699257174331186373722586836938721323869550008257171218858086527080668833381504012127221204244794584961869901387208439825165671933524446919482828523699125234053870781692256896441019075528412991178265017054059517554739059859341215459929693586495332651996355302426487847843063884507048468285372502180881703646928575152868125862890862075161527877635728169567386089796473187051481128744675494986022885812658631183190469495231904042654667508268039597203624663622958628301170338858166566040071686369342574864353702455902126728101249080006952053187651862522767646930083139635687418276760108251005941372156160790974353912040550642348715638603571538142578193531691761097355689769760627129447016216937318949828594321135390912252708542462117056625584176371715955826802018362586058015316444975520741584542867114103066310535400626960998605325357701077341868372225915855907663918853674055781531988467182768350363991714900756601176783669020807205266380528193639441300360570145590305362660936460835910161778857150029419492881000641326516340903555635642307877287861291316843120138555904168146199873847647319086104002186299277794745911768219754058587079754251403811983412106911566801147751879805333514200889904491246677337503100415809211168914240003773039928609139587974413093422938506187516388668509809929009035687521859410790926600192372629913722372179101296131089042397397940133521707503879712244740559676214375764874710329118387965510770028664798248467749436597937709314061425677089372386809513414885284529141247964137431987505729815518786376439991663250350073636778086385517491665941720740582479874178980624117382933490379650227619483333248452367644397801539373245657001870240411706906515212538199076628691276759288173021851809431672057190603594119633437666588092406035896711044713227595566171917142128252219836755584671369166398946060047441503377375263764431478593883094449916548745161493303823412596367518135098922404402983593362006249481706198200768149840261506956048581180865942574878229088707779870343406962868752860158410097685676365802860818978441763222340128024952458702556776174123130006661025681001427068285553377354986545083381661703026559857481408002911994161200062428023102182198158011843730067243975408834243819353380280953230686836698811365693330510993061229308398799186711968442308168067998637687565282031635712292918973427235477583038637401439647899119918174833908669160322651679641781587787911162567793924753563621890725140337606384862368969206115257721108106529421009670871029259653982260030705918404446147821237426741817936282817032163313169125318479822627400037952900402330113724494058963579942504191980094692633554987665984358961920232974074544292138420720058887178836221111043784479112627433287201844781844987900866143977160315352051413320571838706234391154617131997728876737892744849135976473963200274632138865749322133988207777348619443704217665912431750823509224252043812336271250984087981867628845460732835698909699475705363540317683169187235854426969926252553470342319277740387944031243986394340511106238258171260057161052025359440180775078571495345271508126999496853068122276492677876015360708486495322083725489277385674679476475110548369312040248870944769411448398325483301284773122478134177109656835222071830256958307196613027325050621293634800838204934874443314715194754876093937902057968717093814273848717472964349094192741887399690048292737827742044822536481830383643074576265832015427758796350590592579089087467579891995436676693739061001150541959785004906886236194193970282287048173043151410314473982094000014258976583791990582375626358237687490299197830470374012477851987008176665621997448146054414579373675934412392320470517353985588917396806949689944426045960003785588125685985139871215113021247210097378925264090590381631825385626341419284538374848654237717243732203483127647826218686505448394620198406133398318952504138735832517691934272685644049823913162816927108000730442663501442522960885047223381426666382347910724524266101831720075186364317579419878312100086833840066047797169594806828311108164566912909687271323433759442515356585745790509814106248885407020311811074486905707226243739077747187527066325539802489062574461898982537672724121181693533262578407463923482077999915727173004907533620214529334126574260760498963940017226990517740175558895471411591536900929437419338998413418592395607298551610078173489651401977779021264598861817115786790834953931669469627301489889251341414750809067715918498333091994610904021808678068658673945790405764204594120600400392241998000868936250335438210365608209414683477023481203770716250244141476188644069316606858918849716511334093870530060224108578656366093006000867446262514766301446017310907415034162196238085725998869772662801660121776241326010426476899838769463588086992163862734705386946996820563725194161891810991992629197079782083388616786609999593951187718063717980446868919190842936695197130783813391119145573679064733720515693350481902509225276356696376780575409701529926738634861120889404382815731799924851808670271917610211113895577956291463626090654059250634404180536648253960691683096692597558829916674056532000499538135686598949288782819233478083094898823832813523994412389602109630068424364841813588496557375739211659857847527370809080184221943499751444230814179314819786973061621670990465694297738892369279138169538597080207274116994220495792859943571510314310994560733907841866563415283614173068632452516220104768215515880298591143083295284027065934902979881114204639623389227966214502952220297716480894168054657649799171492928282403262945337257904772065691575799926592373041015871346091785575981110135091741344577897640730217757345512538631057569568726859847211147741552387213344083875895723284801314270545887740682587914305407885544162948264497850311906756709998354947527642025637418010599281415346456288341848920319087408105184681615098147086353332803257735691476085067507043083778924224225495151248750503057164214093879916634143330201860789254753206086040837979171954284174983457736089241389194183339442158938754355880070040668211058142175401401328086642264034047166416063919130287503746697492991242665620647393316687546242234763934803340828584730104817165834557832805861805534327652446011200089144658850769420693081640931655607984015887005149762790951747671096522432097968186277417681090141450921773327882138895264578408260830786840306999943011297479495822553079541183691731232265763948078648815605478021418432426741961749889689171538313894477269079935497386037274166015021581103935805905056733035567405434431692619040863617948993075569882829480680347368859928551317681458776958771529352389054250077981567704246936294449664814756610014722842980719786725604748027601761961127501783232606867371549394253538439093557871688259224419035513015764082031471096633777454169111260974286828761753550230886756018954439106086135751696207248669941088443041648450423399125005026515131271361645178154425906157669352748579181395349477392139853439172408888275129062342683941340744777950078705852596775582534702666279505246366320721362473824057384261763819672394994695899341118880805508239526972143916488449238962336602918466367672939037683908875661200514983422639433484765384893055851606606361510039010538670472400332164694170026914117315291075939356245070932904473195535281134151027861106131718316157495768097337096119714681879605176891304572858469384754291925638112735164076058445376950250920146592743982282742474072328830292513562216924633820815106607945876612412647243817080047508537432999811571955697603489259465673383719689887542492219329288229435563617502230157376856077226269136567117424095174022879688049573066129788851173446774024468190378192852441180682169464584692897683497666300254620649625525096096253724730012909240726767876126062225347469836398541449458152744606554715375626246338012386458915160930593673398729974951520733012974275596996041775630140770659846385514804978657724508954292331554390959736492581357795456646539579741539845405466679054947320421527534901766397673481124073791063897287732725675182635182221208581658490124611745605694731586813025572106917967524653641320270302478426935368764599157620725933296318081939668758854523694622268978648734955580809500694049465268538601603028029910086950320580254046755012111639458114581610487778170700985950360665611347604284331031994516694349238894611235565869575204264915094008266827924037155543098414343806670945034753365703260714747978100053430681968971118875660566448165141517068760177376324284741065221290630021464848893094382096289184879309920177056162679909478165617764555444458653622795155783557713989109416434365932766142751812248450043919468159577936950274952079769840472321602629712357033518747720610861952257037407825598843891931891295772813714542646644861092380246727402218919927197107675172322062766811849627314705852229791829863388067430865163823657610212967633338492362359113530221973918346049712632097132541065336959402165997768613321631441571605399255535085076845829979840193178350350581340521298869903100424098376335683083413017600892263254654379699472709339695062300642395194020077123086041677980818212389827233211498597986450543500122995095726738084657888076159453805027387551694987320247885420109955356505555547233975058299971270630745803208480419102147986762180620094237926088335772498344027895220620997939850631958333230166798554211935718266068372351328179799415731011984206668703790773302727816499209873884408028764493435513446050942485336753833982173357117788640486536680585375799186531806403249603144606281696556413750359852137961812990379354513247444386955942972805899419258001057162886981022888421872775189490672519151391402023018839660383501666176048695472621700370299765758065826188265960236260106179681263778701574311797868291299630993195842388297604595841163469863487581033319831944467200190557448675143852205363304538968831570180605216656708205938965007583625291753858867810135696266416768191495424692593155255796273924876167949632284375938857173819516364206998358720767948795618822488433543811220497004268263472572424823436585642978835122915838928835400773553235824047311724192179329269594647915894399725357316759301127281532246358536253239864540813099576983612510521191223770546315427369380974314815842740199634415461303918232074852839516807170452970480099620702466245735535234655404242607420578462485246714804619732869012816939502261740234214729499146793789185396384052902788698198191928264863383574957297900065404048352840089843769334059072800851560725606412899668686353814792402160766988894935743074661666098799996216424198200504840200702179381173369957676640274299736058692066153726698671237502629060768016392445160491549045587211717507606286053643524451933121071454235379790928229733943310721066579111665572780638329166239172351410668475222674521851567827870213992026839317756298260530781479798004312039396345154800571292159379029917310661611266586948099886206044354883190869189084508288116665984535999308337539624876567112923821088657247700396079378510059352982824100305847834378712152467969854124376926411650498793709107043453688234386872967269588333414664991138179091047329652682372475597930873510524074610773797920217857990779706160678421998655856715789435817568708445430856788348930233683502286495036851920002403565306417987561782012902494666388509936677965374468066079564781519402023197068468817884417505064914423351036411993019829801264843468304783468229553296914706678851938284680162889757227944949363240404647581546867028896820017329127574216022031571038809609153193646751009859150346456157844189082873658412416320764815266596434498889442427678754468243650751637954827777940621188096400397067958081990325242338535300968934984226978861559573161269027453571736057677916648423554342534075306022749149683257233758796295927759939792761093585857411869461327839851174174252834440460603582830655711133571174006715725966508808614546606483525183804422453903162108708360576997247378250239068252995120887004466893654732405305911189544161933024820953480251553124898211973274263722404725506922337691193798164550925560349955776739297158171422119681393182627371363341541228689847301294543178202955208499636847060460574551835147116626032967651680292438445008213201207266626452556165917853783424248313031806436870777764209305275357212032371959714473850518031432892812361994330781351554912561233623509197556627326111233693487827861117434648288871473785115572879674360405126877328652698129873179655221705066172841816537975280385336201792234642313858675497199354674292324642170009810174542667177645185565016742862643484068106126456156107994464481262590268593756542052639750483285252227944086349125612035997107804677601582694402262277263046504671302316762806969125876694706734871873995113234085328248625290601351812227999982970938173083450483432337597521943493886803605125123972932336023504856250936391179254562888827454831644306547388226848733901974325779577988407761206115208971670746289976632226725717207975091111229882213812967254769953682250875536104982207041919122142127697646142034274694541269640851441309381906235125660653959715587855396854297867559732518806593974360762045413976138666937244679413898625953808927414540472031464229446098798149532225042413227192179245700335951677298411939843961083241231651325663847207113584583192240329098881506071176486651088781373362839448911191119857800871360551168053622558850847530698804487994654223988723462064674815083415880607041932134943537977344391331906139737636434500629007710318473002012609007300227394796335934087483134807064429222748289651500559433974793849641671004484534999397411642906274965774753924194649643223259825388135767385810534225555613896767642578914773876577279415639782241637509263628507212835079849569495796779880122920689166933008830823262778646450091747878529368164977751563677646988927375271818024026072349844320070425550030990067800348947267678780871644573731369360427489713832487044824574183131992350702691602436515022407850987802613559581388741332346349623820599209873492637543392638747445584998252609883854742247066071232852318919344651590044502944966730109769440238255151493002122539830193000138154438930731016656629013944121105941555936638493329679377565446713231287099053991477310979413249458622005247241679518637244747042102504412371483240833564300335403073732354632008234444049705385561758862108893302394355016233334376432605782308345275051992518946064917553531019674172611841656153280095120967459198519860654468985693378846207343339073200389661492081657792636752201134933633435832654769158830099129898740213116219892601445231942069079453152362487540451127799820823145413447405598590188929148284781017491370320985029703041407367231672109832448014719282661442524688634073420801698552218154147122690229013424367641854221379986590744384978007619680205869476811070136979861024990351349525027497874184576726559551208116458519146820410294166129963787539238725159036562391070269654492382268078134985131470829251722147749243676236623520623319705997145977502579844712917598221830449366791405501424185821669117432631950034475748764399808762177554753593723336844113752009544872927034147120708654983055198735118325610772880021717070648708509683054417754084553812546773516734940447478363872096349729707895220889868067802923037492821486073265066264519373168052767116335624549523412724630959996199174595302753451147403432039790682000542132204151477784201720572329939279422131754130878644357005861690681172400934776923871144733695296292075540341812762481840816965284211613962797193936655203091990296773464983890156526619634451058599942021476374745681227114708959981815406461973354361981691839898257623992032615306570619144954322450648272519445992014626027486243934809440872001219800294784481744053489601812604133783493211689800663212946637986149436856973230465682708045805760771389096993118098763947757247077541827942247298827300031789571104801002158373104786423182051431707161962139772657441871290733869986888563680908021021220041661500357396290563896975166701628395979656190442787167253419457874378306301173310175207035415040529461331338623467159800706748097100657275433625384597649543834005107847583645202527255864513008733664000300595993051377762908373245140138668206218173857351446068454393625430074738078938838120372849724249786863125628790542792231384494519902323091834056140686616051542852013994753859708651626897926890286329069521555925543175094413240983413258924607073385964498043987438443833024196265960769124147207853048704030206231608921502285007353445926933263577508504371418920754015966591134621819793101872816698288495994574636747416853193515438996122020989183370191214770668496877980605142311517088076954986858035470445640543870137071884744978872104823210265074147927463499945985511602626542221498293770105400161351239340709028987887430399102790081182237169721022395094557096563318488684198506387288335469096689693482782779946536290750879434508638470949046015492865444014026568903937156501720802200266333013625031225124230672651434025735655669385210857847912802529216664693917175654673436461473136586691857789892185915365411616883676630437868442217532616155616753653709922772830783889451291464904315066239348022123923565592298284464232735585430371425797629464639350192938138148303463990235630301725146200757613387477940177632868391213010445395947679292088672925873329272965734027192226576467012247480010647299497594608252304953614080735742171770672619377400540244691567669810605680075399858236008970930855017913048753033004338668963445930715099908606757575709419916283836033754913413836554242814517283876951382503254510820290891256654678801128677347033453531023092276789392532352343593440962790408710176763208888002289798478964507640681910419324411975413952968013170456576415019051572266755962299483456954776315111862385086050232192357431212755453927804084119174046929514134944472439377170182966107649121202966656660826637456862429712125417732853765193474069050618448072740998262449612908966515252211355693613192791434043383410006148529353195373461468979403620090353440370988820008027772085532040879850199830405544581421157744439021929586325478144250677404863151294195987240325379554675915414559568673073136603988237293676495199614014231757868420424217225109453356445649121117614302254112730065773128508758848321124998884935148529859752448793983426552406431044430808620268812871319869320709862038159079587622888292919448689130877530802920920851111794405926568504461052574441120244113293650529714052170088307439326258019731367533112295825762506713771288661228733202705949186399719309142723919189260629167299588196847629513360548565864952515499450700679522086434786002986050448439410497588941334386302349051472939448257812601485295010477663218413341145248443634603849862684219336187059269570056026556755125922320526962871555467731970538817368658448177041453253537795406815562653410417718574493019367024733509721836843259934619437047009140906566527521061922009814025163321898653562203609677942209276835766535708524829626360532949271260555660699195711558541457040170217609433698686405458006319246345747221948202352505527262411037547809501566594803231632427220613622823732286849720804533091144970055004565797066006560011258806321816952800572245267693104582827339947775092592024930164933523348083066695533906780787087115496228697332082844884541159952035757084482250447582553156269468365481744655892722157851265670869237175367958034182400568222687999149482522889625081268366844185936972258850549436420682992088320619575596344257961828018787116489581128687154130436657631823000353208937934709051521440672524397599490539587492102382465261739750182751931030101503867103684064815119106899028251727573384609766084426817568452273384494410288796665865019057722703482346118261354435567951937987664144117405402786899181213991316462615015347552105743107802890834339935864835195198972621490092495444882867703251141090869077289575621657910367990861726054896616839125014488488238967683892155040093053691851937921146220061280484598275597724537130492546921917526894489754208143768116930335353421307295071386906368659307979079212883815881214195822861068468062197751745074811456994835368837068789846208610069401866932130063023385698766083768485971824814003288313587376380421770605285609344702195493382085416244388659389933667820887405207996822407408102682558411401373783094382406831121581800025886236906350220113269383105174447591548750939407888219653994230904531459926315063186654352936634282946849236517314054653629955747492883512251879935621440073686513663074071391330320036046876286135031729971199946766913472879273864610286834288952052390537835935813196921647000944453847524750694862377269105593149303454261844667268694577008448227868582984240716443584151636572599257217323926146452561629572431469663740337975944003062201291174194236239020876635647201745532916675720128436969162641157116133436061501182342018300512855962603291443458210619047618600378939578164561174522345908297691925710561445842807767634264754956282950932357019680270131136115423795084125321702705999508670968063765259417992585627656500203103280474570618048051174256959980408025773331577601854337709415245144265038941121221404614062614591968482754860745243155590405350401567159548955090991318076324304963348974611489351677416021239926403938837860586116831082835587469644492016897891687355189772517143196168588101701269828399526066205548221244334583395215545161309171683283275645280201233652362652522768377441447805922373312082960608520446199174053201314644613450550227439045123979654004370087477593497204204095972600717781395231392829488837650203718739068593027874069800319382356220761883981979470481407218508142759989046971299165338951992784747884550991701414810951542784052761973427269728855569470597718305632343828080651890975360085927996207854273172288372038015644962136975007506657616768434472114729360488276576100317407629032985447744499461008174492309113278800124551020781426034714748702166955181111278199542520086801022942173703634176015732579556131225129614166578924129071210081527568615579442411708737854112275209684093236495801950995270003150301085459651158261276201843172579986040982614323995393736179175038448173764326199931003914532599429453328470420151646576565619254443030279625382193781486366292719023756251543175227206197394839307211310316305792825016547700758642220644673115791703286907783370257842160056959870264908286767592863016593310726734077296820505300908566108172682161139203982774084636121826806939255827359849048037523612503763429347585131286715604279561693285352297085070454259081828592044881418050282888800888660331237280065627885421105248005362052558960365652212907701589253664038976090417375654539805049267278962192518061822924988719047126823836276331196402877399976418092685997402631600236209713750995861870407770023907776844520527970215365176422329774714499671130004578290665373728672561323677889137447240836110681186834414153759820483117553998658905496432337501307389354984810738122000542547273012281766179562366198374235334036364733904190037133362409748413628481673054024539763739752627895017630720667991042189929885658192715953898056832730700202929325278436751542799596264151648252989670860678128847416095541291563113268754183346163568153372384573971915133760859350620733876674792663153440386655242383064455513784959085887166175815921365268135761050613424064510515192757428361195570802190959930025704526456282765706819051579740624576489283226055214000120964902554125939009720816707505631523444346087521825076873922402970220713873794360993798965099658659211088283861595439830853263615217935318266130189733856540098062033442132567850672038747682449234223211451542999179139999343771256351456811036858228393626640477263513381268288132816447813137219315837265279998424743393616686097235347980546377220614022896257061792614365480368408345906787279711364089123169458307975555628067139104570177703423437525148044501282764811729991684498561244770502889229949500467005409049063734358920361027371506879575182203349910233422475010835303543549385773290465672295080837408450570293927874674749869252253420714701494483730834823978704988865288189967462561785795442478801556347343754769046825935288078875595256281359089063681228623613782505171025329854313235145000459027206176571679088852270619354416676848474048988049666718591399615051991972703301897338464169076933129723067209497761147462396230732446560177798209272677571512290496076492773899866780792628976142985590263089661589127907621806465982704700521452867512791684690096540517381319039420322837392392094154863244874785518437428635520652123042728375234555885475950592960775604773734098653148346264986673408969560899224571255291673128051525109207526237779836442604678227038625132094624281414460175000287617784729129091766972977852802552930626004271850862120536389743637242584703238280395042259717441090717121035001776219910641793718470400457957241390805287929790398011690330817488684570071230084685329815926720075457276346778671346788303904501279656659575714152501342201451883564735981402344935113300102518167713752820773192040735775027735123230179509377362137813960004480698999667545248212959558494171031470395750810843138832747605758041409221501184891783410289128884392255308432494610802670480916126062121647557653253216550784425531263000727655312263050466418698634320033482721525764371712125750761566350678747885023421955802402364949896082970449995292736133002094573381114107547565958364571013339480245803430448999556829609688292934480051120162733171513156687113131068453323885943828173230071478872862045440034939823916385296559150299499320835607556243703522163323121212535684596410118907503865910658529523318100048582564446891755013389452477011285044637505534328648197526318042671799623352369406035817464613943235078181019062475842680511008849159151792261594687685094118812135522555838627932876776438350620389398015179614184995035298377177722359211522338964777331716851508885763878877845622747198161041848415398223017320090577495171871531077788746687441569717517258633376862127011455223140568948047920041683722419689091154541256973569599918843094150089837602164032474419595029218969653355375467781041749360855531307132535129100302674513590243188048280860496356319824297026201622615272126182170582914501131588551325677979262718694120286811622305638638772770029214310805064477904293940521599644537009635985829555772753547846772435331769625151960301699762363309429667889002285555470638948911059671438182706978116842341730353868348329265480226378787507844106646910979967166328595979376274533708516697615048414071265772786977170030001019886668577348477983076974325993711094411806561207437493865271039737271014561888266102760517453647195474568912510502489273913198133258243469686670615017566949683362013506917485191525156652947380725282103454318975774153058939040213396733962846410628903967936243783960862993255878295396265412418820886033031769509156727427059486776454738772888457055376018792807654216542269771583959766574734953180503347307497782832342406811719654044750306479159925044261239868780634419748609526120259094819830258335287163509085548997849281894894311731719905601181757721197632326131560613651500033795494497707922316426670074316719088719279826278655868039263438744486162014961866482069294086039131776996915901477447092603683310355885385745001632461632666712490797019176929466987875097071493281268263806272970002635438798460235500939637573303140712273662931684753650937891396646782537224890548369877399585558428476694138580212292653520681624993068710444295635454632045764422890814209552692758126186695628147294522994009027114262273359557776917834630547213155461788646652887166811862945613263854717113668603190010472139315667695245467777926318999442330526335567071507572260474350420849018057957815755913032308890971261793512675629970523426646357657566770352361525640333369137005034053022836201451008525834819954628183519065802986997721277308917705861777279356482129768479285235636918344026870618356544118956967337935017819436941352394183352050799172476888740239227649845775615487812662803385560126504012746175739031353668763260227064098400266888515265375600547411649456502353065674176048582632365378573236183424671213713250095089092530492049626109563815702286450924732249844976209481862790169881183005141171868335668792639841212762476661855052779904805361210812851009520765405715971848364440497907937580583795014292785917184615028373482474183942844875242932188617868956640945480326517297819249681859257815257880236214367794418296849562543285820349565292378710673430157792479801237465127783292261663142587895098237356705800385890394166525686443246460033849793094088114922861512767934656560749713874863279328462406140663019422352615560658724448826164514537395856156591735058927111428625896993788790896548091639601982996429857930604811242018166771270235041182019846042338098503958686509037792757524493598677047960550015662114814420734437948615123774913437829901439717042722808168282533203763733906505793293173723657120392766884607052035222667829428725964121455029056345226255426888719355657127001930434248897324917533481032611420348990102240182891224405639940036411390577384587418446088830926200736663933983075619808170269778406046916584750619321750223157790599926432156557335936783497119483083294634104171264023860507884332654835038155161639970271654505044364275974211821866599501506703923241352497390411309184899120316911261834000421979389580105717917955089369051897322862254236665959840796234889052572014982133949880061255833045318668627842289154630332189005422830948755829194476319336490494023576105889933276482831805360038539413697947558316501630565780790750496372950897103971415360651690405706761498929192845286064027020888166076698972416548855993727993161798503022314927218599851048161012570656697014797992970851301500070454276049982517050792477852180468808741934644613935273318733512980080472430464859971315897617335482703966428973249332395826440070412824122952480342406892228350987251244237268195650123879731106688922680284620763494605059268689758775104657392866364660779018096151508378389474912019102448554268253956635247275850643021585459619161516684087938883115419293574135421177793585632023208564577346365039452838292281187562844721593557345768046987714853212141798461771450490213706863965996213548106267735953190230947268813515824214532631049245731200460740510894242173162782282391401689513557901568798595591794460880728612021608703945980012429229826867097284299858471988202311373330174070002349499044322780534833142540844575355332577440731279295846631753725540126973858004097029074997534950089031018912575884195754891607862639973688128568441397876406442839627507265100605907830321066463520040301634513869018220996142572562075165874760075074462262408692546967731913099999820918534070612440439891665248434803023587684212891407338092103578733741944235733325621470681631767388402410294602020155171878757614816655561449814473658837894795238359515749985618217211877371105599522103036886947187928074337247982888497585502370594543386883319507902398245980102939507545795264319454171366168135120118628323069336670489345418404959081317980014400265031634561555180621891886527684837751414711648430382536381896602145025052450863060648865570113073625287186361953768858875552783117912593670118846197860035182643731515390567836371704215698038909933701414180474998038209874745059237751706363611905358895271756516520516582843183117972925331125545407556000187413115036340110013425621246551865923086573395476233459957096222860252762572106817796843659854554613418761863544535562968610757121389790371879266573457517055782380090733350581456482692344312055806164024942358245347238054550511211706505688667923830614796985182976204717462009475580760438226293404038003186491832897270828500357151354011358617922426693174069637115323064211485947791730974773887356041852781438990809487182007603320619691863663741516139775780967867798397351146274612159516176956996666147440924915289944116946607447403418926461919015850817177703575677186857511050943962096900968831811728130961174211623870757117326010506040052652822752463327216904712694571280182480014321429459381646528327219074092683926084661158279114509768630594043960451861175753907853401005601912303154070349829821981826411983257205144059884708958738955294148800129286431332779556817509375936812951919294469242519450178860555948724807244106939615918755124720804576352459031229868472830814240021148303899969416065472072415763079262964061343344601540266409187430388779639250070144175212808509745736980097299783422934582731685244737900072191375018655928064324208897825174201557773345710302789191067984307639027017189250725488149342001191206686207553280253483653689921523868836155866731991073038953355450150552267906599298846354335971433184557382431227133236183681303314077932460208254298024729908735152771148407281892615810720545485737382760029710625935943098860112339298426033347496396126750942983881451810900312253941696757484655616243761943145537717914777470669552163648667426307608483430514083483996470505453691854948321212247959041853166324080014261329168447379568952129138623391857522288284496392746623000678683876082587279463698098277384826177066001407453367290181349028860735019161738314728317407998397838805425007977338378551956844731205160381881423562357079606137954516627746840419050276787479935934384464250053669542444050276708424659595460610742826350918306876538175475784240561231975490401574510143841846593645093132862296615153867791518827659230516221200942708686850917221793759468629719854779024738718615429180249524807682239843349831294778660935384724912796124755572603467705080756085532011273741937401685471332953235112087711827049077599535476961491729481629754290731868631994072294143873716352116264199984959443379979592013923639878422024183391421230585568564462828906076576536403115113597934247936291019220360330438280746187289594201359065852873268926073010951763816336860954445005530999228894023059300798104428091152675978329897021319121768597366062057339854630470020780324282086675125171780436447020376178993576628273742719205904202564819201999336793072665610737145382417916478206939740899275705502260152778495771489233206690485811030845544158113938744606576005227064040712759974272969743462318017127168476797574033078295538904568085496492027891488146449021221519683438963603219725388445861248082766546029308214493008295993737361790564110034742498421115219524702135892874538303608813391029795417018541804784385826895683046150036979429917270420235922630224875135345675954996947553190002827122578793346513104381090640462801737123698753448759211174868897786158881579475703728909763740161470661084873566888999874711447080637929234895904982363155542439119157248487643914870452192010454076410648506942024408031447420200998494544200622170107501998447871833781621286026147443731198922430269323648379192308832980994708945117317174288031989158040702160795662357460531870200241545218801955008095279050098355030660717552715098294360193464404624260343087538195501351676988442251091822280302875013638104076390995715817802041280573766445921482295632911411031295345265619810434927367789984778083072732661152697454583963947120875947309040701794747827943201900346739164166320606685210573544437830532863018220954709815911165152581938969877840246112333285365873761425105229706740359400850453542641129269611412711998922218297734910020874803554711606492197807936101653164389570071931493000306099966555663283668927493275347998915594984432827482051689406456710277516210464929450382436012290032560416793247259543284208109671796713785962517420186866259023185449503058220948632803062380517051716876322534574965466980608383629775286342178916112058881368645774448740316466990315240703724022137672230364559289413373001478774623179072151193532381417744316542541140167564591815978683710445751808369174602049804464273851167696404736436108044546292909927992887988028901100518635664582575382043747445038864081085870335750560731104479964930991434500861897523175188027701416915907343233571117877670025892443465526343132694073273608500766334430443791164969625980461281672318866201149213851309813994836726882985119573807016048027400671483467161411462127344158935308390849180251221275790142853384851722412667535786729010896752242311761627184186476109615916876497322518951648016116244948313647508577371105026087644319940818994733384334179642089093135303676688028181209437749471500223597311936129227882974662044324278103024141687254767461400124991610527782067654003492150497507927996481790275125070461061112950982811294248912765111256218513092743204984555881406160597953332156798659212259601785896231499944398160765363817179400727632424363705410840502650744432174306723322956615424951052705160236972500209108986583031678467047788726279801375649278198267117012932326049787046052301516504449437683779076267053742297783731356922838549022454581155645851613933764743244577190368827627723386228044434574631962387253015132161831560729508915608202304735334521410054517064922392090797146804654939424562616207817660708571653611114613816896997799623958524770533439598821935223796781479099762884235051545680089789122116279160602664204581240442167226169920119531018732558590597765991151628733294329061440119412478768746507364772911319880883085138055932103300238099679562124924740990051199751884363091263997318863639856933483555300947401950842112800205283797675998024654826085449059962165014395911458654011174000101078773480434294276724723629105586438495394626698202925698648755302505519994876655850964366482941950912597495859125039537849682572628430994406731051867156198818249108775947745634977978315605342407999459584753880750396389257794201637981535934417722293803207484179407291839073701300187614197352656449232072674126391986881629728376582445332579824005364462367327579637757529722883745890658145151502770863791144440263651762662357208234240387290447257802769587156376943999837378116355270677056962292434486151356365699129862746197757882352641876991604892573095120956946168900780930188983513383760198882062109273868451573818248262568906184564042149396669267409696260409143074701366502324165498231266525400648115453053064360898559318042432717787145748605302919380409878497472536681915869201073963736937874166112206474554738514999167785207553374257030812713894107594688084350842273524318738199357627766777284855695706411742667908447447500270719161710506550297008108308819683725101126959063852879624108603047824480210041184345279957301470288422919418908656599108918650842959732057609298854349751968412131992940077645245609943034234860402961028962440848847568963348146164141274312113445015224392575573213510926129360080534856389818862373624519076133255458835606375449313124088869168628142062768773679636146213260365751746205473965041227639262547941238296738959934541622004538893334978434028316275617500840634572233347397850993013340235183941683376727346914715159074855601529585233677837060097793812899309941583551743173749892650788221585140965863568044588925546416298848958580974023650971516074050423207300803528121410014417973098013724348651226514348249300708065048532596033687658102464104818256382142228366950693220355877937808083771562493007417303129490650648402814374824265249371381173794385800826541712544532422055924864017261795121481643560677591575014097776314440731012343318696780271517804401412833609873397127003797311275413552755023486120790658182085821004408904180474818827130449354006880378059422801352892423596455449143542644810437102531030196016873391788883923731634018911143605191273935217954508145577910747990372131712868427870942597395329320749713954075224476954357817915796661709126948250227553401973840161560409620220899132048979806932784203974387500547464381923453733484254341150151700815704755286307178743077136492926492032965966706962267608400045252297265743635707868925468112783694834054061608677806531199674183509792189204443519160348858661768628471680137428234746245982908189827507642637329908091351951651502121312438667900911100762727757522290896423624232450553452613519305701045399032335731957231973616020681248974762449911957084048474298712729993980112474613655096078927633107626771018484749773694286979860237770029043985876361501882957760568521406125752530259731380495766077939720963683454196362983958959268817234968792146264878572311017576887065814048854877960823443008911058565269425216438380481307922845122640140323403686088124963329855968171103850321055968561227496903248570682777165811453703495072386613821780312598886823018270217940380562706655966991059800078954537591433908962446461056665754774677092172575053873067362836818443398371253023673514794307791311666290380263104654167483929278252069390121332321251802686170363646285423755632201509380097986460063300845082427026543036437712601715980810172333490274823673062481007078127691538230021042074593072635630566516133838533616281635233561776648062891477717955676185300036860171022527007382691987093303168146868051850767454039488109927620385371853532742643538736190363927727329239647089985998455093261884454191619519630248947525820072661106087992028599199014591997986987568965065144604473271342288471948992567163514835704843423486520921740296689608103529622930658325875955600066170277903516051295569730956715851202983846967411550565174003723486351400759817007067747179945060317438884032212329357282380858822821270454463175060031632661015275852896049027681162835625428454185118583358276626149504638714067686400197597266458610901771813365826296189020589708715550146093574854708477466860894244247854968763141447888358482100632488059595687690458736748592446261314396460397982663496848646827219022687929956199117006981277968324953818145629142671855732497191986882904071888852008721903598029175699433201980415190093970146638145936161417829578337006873038921949714320187615427279158134051849273944832479315169412941692820156840403581892459625816629173628060004887373475853481436285016130543717506577502263397822690779451365864545074358682166986425777808338872118873231246456825963919216116948775993401652657485718285170621813403208756256181017718290092953988013934258259536913146685713412339197844297242037509443835812449850277506609749864584457747744470803292124816015582068900940355608110265504915325306534785281440364062291899772368186502914690780694153114155690403502760013096018385806034509980722841016662824761806016541348299317252513875946974226252628206352225623930469632698379403848488673082859884638433780198043610223824158792651202788461709416462179325859757105079353337227300947901831052304026835688948408192788906660754669718055673941243420631876033437007308378333756817782129613877802052857429675647894314700971459543771453423013086747425251382004110964016900087893617155159776577137451081252510155933154196355942279893989079342811086929872269137987899233146478034547789968174496808718728111614763742567331425097880977241620336909758629442170362356273496083391098527521430403743199651112044306523712609514910670432178753355009630680092688201391689891670450857873245675278281942823012765816101192894084414003326501903445993913830498565952906025155301402913441412383601729313154432244536863399134238783668602820908762700972760084620132799189181324213658228672181623564046965779071646754414275301858146532778576507023490643523090327655282833412506569358400198072020184616588033577551439120189885222358567490738106407098016827513253502872539422747435742266877569300089867101603269793218817584504615335633119893409706418680504209017353172157213034195821477270382080018317083436718191133143832183942958377145743681428477337224963884941522347474154159629954952879676106727191677150977529613175128074899603165562327855097855165675548402518295946230773450578031927447795367209496624139990875298729479312056378954910859236915736197922133926839485934252048746455063007255046890376848142566574149031021392371733368150156474704338656592433066218407014049282171491198031005051482774764259155717143119875217200586939467044390818833275937650422102542517758751685288505004885279874053139531205567967856138648216242392505643157578608864546129549575957947827820861798714791379466471511481958682354372337417424946269652405896183709333716297268984781912364984492012477105758002889324080353290057745271816543489354911745366055827577194281811188296702176722861658351146248829382724100003370511194382323186363036093854768531826219699779001303069375806899514418437927353217239766281535055171085564612685171720615225321217165209075281404288402464728517178030436774363518378662766289612258789055809482812685440778009083614010432324371021592087530285337131912190167600702278665385999483415415750896339939876250469286604009069262171228721282768584764820139640959643795969433909811342922580468184859613482734266367208783262531942439072653729145906612629673736209578340181542946385174771561169027953595190247682688840512980538372947428270583089199947153887066778791087182325613913293355070790103831395586441840591201755876956664501026894496741404646343308111108976575705928035542041388400740773522946551365305438700440505041886135363731774139470922016325845502723070420416445784000871833589379448194150977000328137459941130014903489111728974109060191353843292255450270837596507003255879996368629723648101436997867717065047585851350496248612093026949610747574392608014634308114929411047778862720977802881148180642315588642681362280092183902380147377865852055399188347235772730878221643659419806255895934171749960104499576103227740971653169870609203739891913964316587346008791959021482487744888911532994928132405331781970460555229856006098652968404211240245040188138514010944582649783679693176985199506620909940097046215904028532804952361118330868053541961904691573783224094803786458912189853656218838085189419472124040857263078874385461049196184467453254450820611651346372477718197662260249713895660219244603477525993870440246707010317112081811632372731601588061401202957852350149735744321990069204585577339385136303881545807619642403777363928325797052074778237317936748593040024060524315505964145889056658471319342999898447887829755065937236839830074654961201117449588540999839738565833229978282659625863908568424971013675502445331325781301850473106506342494497411747606248872411904681263767402515456261232083872527309691505560553070703442675939796092644851323174780273198353312673712468144406841468636868677308461475929382183928031275805451743148900835937121011926958270528462561987700724575822001501358228996535427088005875197963592203786255337150816016546672249806169353885296381135455314903916320717862335679152765082273614038791852838355166102825524068995355800199570353183865077829978686121894958157309249744904208668764748579993162216175821211743360077324067832890983350575006542769912471651917154850257622854125156005453530564443218789093175619891229109228694319297055327352799816248010809946093940378138679689420857213086567661693857620931790154987266270802103795119746101951618881257873042276646363986010886040188744615914254932090951170906319910153306514999865775454924444975607373526781874008713710910295944426408901254240562652323633225672553349224374872110463589116451618752708666188110482355934406160229737738320208087176737912350089222877409890458604103501087551344796235590554347569548405062351953962184398988631729366810836745407852857812706298475831829288455026879231438772216704805899209685173679669317439274107343051945531283454510888126031990013352089668025925512929841471693214910222627876451464100124743539963219385425407439237971076854366287203359105828133520507099553381741676348717117214481665692348926194470527532744349766338027113332900134038441592743423565789785108495355420237276625699527661208006771234321489434809824166083040511275536671184785930001064030735398402019006477550143868814117955752694311791139607189943031312765024485529986521771060447695932776722734089980775206223330151265347174038226230800820740541119010757712617154418694885639298997898985732903786726625167145112615459821177007695657694101321760357414781501713921083034939555927550168344959840300921099130304977931298091750304663203323232728117087703552016056559702990812327081278413975425943422366721386498234066540467435892749709561863815987828602677398713107881510966290146419608930482729719043301794649395816455685836642661021769365579341491570997207905782610883658365925350666235607350116578280980765912902101435076768939118358437959230780854801538697502992085055538176301730347273094748576344473266341287355742380873005356253279442037578872280886137055492522610883268486313909467842276118362146190804301769323922961134467300081236839597275524787357946712586533292099194079855956390640132741095552393424981017501102643011434946029413113438070759997588142758980575308751449717703888588524218851046617473755628271147403686414390779323777792506942747098710033231552427638057983357993406168070483214562243944225181425768140974112714781305463038844144714938149077117199007194611172140778594788038453456294527422094219903764934614065325876161315136606699278611212112004432837096671601128661983638791639526854048071045812725365651339407252617213890849027718917135428504079565211853809699534235193969656721636611270414588471057236931427037656029843639656793148963798127237218779454985819887414824980673477159315179375557868383287814635080684229458656552871117914839282812186164019716594478811387041143649358516265494120600414831772626856740047558300268533366533230116300543340333118264466715009631492691550081133841564538253427808410900893623917371828889172245409434827849240850566710427204324648523564360451847524054819538629454682713653464690719545978914861060630019510733460585945633176160618999088550501741599445287033690400429323351473768504897193416164487821589055815148763426176337664688122833851407249593749636921409535412153438928882590102285531507275937152486441223584032649365581276685405733254725415782314468425847401219320531840482311063667073959992997005300950572359661296419150492769637294853565074924546153130451147180682774317656640149776575005513349491274619319286524779333179147229952419917549438830172959110023107406480748536727191431878648986691552738316734051648817930377963861795648871790655855982259305835416801967253296580905950684442905289805162548730936339728612020872696852621892285891044639870867239822422452553963625536235923759795849693971155209128899764343562509605508122396116992371008627825735069907218226456926761134384890523817024727568019215196618115836209537272488472434461800442966125122772684671682704273534008650114024383642691278259882715149265146816339760844976518276263327652171861056900041499600328245477073710179053671700121022989236508005787639166601119168524926360670570793815476166059963533701718933417815984403819710307305948162400204912248659692747075342688976368545536766926787861898803573196251646278345197226676607061852345744460715706617032268387958988300251716282625582014109438303936094476573384351766079021928243409881482161530239595027449540833657055114187736812651617413391150244885773030821497115900092167859608073470475200955621345233711649838188569093268532870608037960596165723037306437209991597525120650672606785695284131780377705887569023840734726766985650791747381681508987113198772746636596935080553308301255746622319800001524839561047803074677351276610358489883050669538350425871696656207373487621392346192369513163674326251659329851845872376231734612645031303777963723843208215247427812779669779078945613227436747740956027911507206442956138824475262852008999991046399698400765753003383084826545647479921514875713226607294872472020245913691178352494392126351759298978560873786699553936250886981826487751919361604003808150526277978529943448729674894827610704012052544327607673690948222306277746555542038531958676103497068444580278696692793471661963445163768117082643645839731462875079480033282820104100951326675902099288112085487196690019769910467732883394220524112892646044622783722469554775732032975344798976106478707602701620344614502945310316351823351435086777588367305439402223813100322834517866405004719700015647711827298347238720342803504977410748372129163855055348506079376420281817859460573567160506805140789969174145846138368406542394361649839503127866365027388539121060559750816193462980300149069472935037174973252100100280659137465092431039671481413785227073750197239935664527320072232260008659385199647017849468650591398047019180737643520314724389354892028545690646113140228621401782509797749590935826284680297047331598249887660467620189492913389031170974884470039153873984733371975459151318018674909325182751728986422372587347159005903995056043812934712269258693707769775310761276724804549059036435092071094698256249176275084168746884798112313019424854223260755092188033068553875779433764909629953497571806229761288194170745078623458050227726245896270600917948531796183152083712017457776085785923192547579590581550255607894639869571999394026661979433523760809374060278907073553966799456345564349900036429014219274337421695847809854695865585743221378628338814552101679691833073785255069479790648082757360028866227958957711788106832598920466045506908584229115239072177214289993454527649126469700938381701138934080758537179617588741235821762052991153602989020741255966129763532250987976515786147695166656029946436491391235955462583289196293528792610507658996925422553521627403670025247082629346258399895936503350678285930280856472494361131219933398991151887114556969308445701255880863238735356947184268468688691104830881576908409335732894428361486918631147748521515065142459053939479203453286029882269679118454917113441848291595364554058656530335424671096633553010043022775865074254311965355025215526109633950939977886551390193025918361302514551645099224902016790683016781750684590729362595746859304036195000176126617492449701860789385781141229225659008616204767780103968899227968338225996587381586070183066915100939525770901319397519513773302893504704202932700252379262817760910164451984692239771855093034509487706744441387582130225545138216399865044530912007079386693171645404139002208139367242143667826760686928959088605064119484352773500009190942405515355309631070443790884307801816564997832286440829444104068437265881966509348354960635779427890448138444413883930972623286228833196008164912494573917479358109398332483251699169826310967594970073094611506181654488714695595730736092735033123577416463471096363981842128589930913341409178333498784892393186638336876610167703924509205561458581052375329542183622245114318396433219277943301060830641251165444449036514201925185462911210321999416861660750911169360677647110044261720726800104048606956311499560028683819537009272439413985444183111224710041124518716105397054359488522469819689646548464688878922293043098470482090776606168568408447956611463628718283731229259589049279327561387571734303539978649668863528629222754669187655561566840967491662517727081967000199918728100874437528590941978340492715924727623390587492161354629534272086666453345662561417116043107236252500159595214172760833874091737905163074428306299271398689691102268934404374480683182131333943303069450623969070461137355132875531101109684894082388114761734799817188458660746475406283582470849256170851503336753544431658726688383379724853677445837336895189794417709645069772356726758400839808671531347128587502856632209353963704014353846084819784059920594560063457506918399058905196643557739769282207495814388273474900894540285559154224635878056698153432435221154419008122069917507058888046859629911110874662897052492294419119657593116279118733357815376955379406165832047741740044049907896458749283416867868908268795799357395916929611915825607242063875218866810281249479494563504536831659188140305009046008363965653779452667067753254545883399486075195666728819509563739187317007025875182390763701903265005196966543821795735370480534619786907299967091891696592616421456110475896153124628143972877916928909694964893645218176573203973678767830805005683963616101216115455280682903661517102129791169121895851958566200291364972332341649379486385183123036549723089579094967099971236680967718050168767914210598387593278632050352559198442249242313943865383339521971083172999621933693231078619456887568846266162671015158756639411070114136654934369185282719049206218416247273379694568308853746557954802750210404336776767729698412005484934996962342479174774317190443318839305191163031959262736156440755151175851202768146143587746313517544735041645622606432624597214886016964455217465386605599687833702683827477581661575600826830633958215319986614832594915100512862262712494587532221642975499965829203979661546218514184126289668053042919633860982979782033542033858371887489125203653084147693271478796964826623524969906326921991081603381957802163492747012238310832133416710940313033405383917846409388907585065574943287386279443837403550226954417641414003075514248038573749506327086031148891949779641176210178230375287299034832498178955862213615137868744019954984544897137181518670616248765136092773130077079705238452025829689330080839083798125683783017834765862893218212463330976548584226520336637533523209917070160879112271238873641172291985404696863362652656531103290582290443839110237452055293561395009231860116805390738509120450345598440018985015559002643257698253007759618486717354676865075997920830360887500309383729001207083153524847217863665227758102884474997241956701030345719121740050974653091620316020221669577784452339641029222542898045362708405093579818097034672069739178528687607465110895833213509662271276046657352524736520691144990112624734380380082806296803333425687909264560933160443000257871233989721588057645657752686363978684225445245880611925785039480768232260689150052256648073009509378347742575698920428137731470935359612905819250974139337955650135630592499031208452583816813820458510687809710538255076021740139737848609418086301645230194964062856736555097958390191855790325002648070184208403844365205904603714545605853236060620970594348470851132979739905717813205820339208275446511851408366388433136565004867610003477012702828384574362686263826360316608492588167577108883493170363824433863701608478155738230592743089547111760935110609700855666592659923355477001262732185095981516933395739008546254846952038738276348597150559644951333652402911440268933110872473286118133613804190243794131820528534041135097196386631064593300960819150291127294353141124764874951039773957665406732900963787595588922678486666502917215924278626999937195129984528841448854521803900225562963437020792895939786820141474710749554549976512778402041514119578000823027811192276687544011951065543831338044708430088998228556802728311933839814023853807112316658740455783956376471079822730143987761872766525469381076906840229048389770700773442971131753059051401636050187422079117536092972779212636243735229370175020895271776729321280516010462980551971094887226826076592699720185390751420359710572892417275113373823288833010263220887679422260128036234433427192946997465740670155636340295751698867016128842427762368791055347908488598645510675998658762850393817600580052718183458742306010732832886383256361876724295090159335317051159377747706875342085798305932869320906569527786280437610782619165722162952699217062721491157203710388921490785540326327838554735815648874036147485677411280528865988306173308025240840852417593937470965627219552031545744322285891276143631178279469540180759453762724398417110295455972116363247671118337036523890381286445945885490559117277645192175579290380438253999259893012702556983433604498060931215323479793505620512606487603920362547603656788562960401129514232753998077802811169293480787626381642247540068382050543656103901846534252449687824309081180071722889000375645750798168865259884253338851114649974371478285422872012419354578008716180570526860336004199492720512212226465401008566050884753857009452011304803220907901719528821210412797582870504420748008507339513774770302926647399295027479584152646892880609260911037328246860083634531882112306237676081091538811967173919052705496557235402435201309627754067037908841966321129277178652303486591329086554291130344024087494898092999763598879914466218199229834938463694685770551814421755676917398705653652761497376987381210732250894039992851714064621510698592774483484862584591409486478511239167811263674462495995559565826184107790526561742517383552563021278662126233670771543851411178188769341037603565687594727346964240498990391342474172877909494768817827740429441803054254081231648030742159715764984296978441365042677425038519663399846638200964466530406810476030248205987997047059442538519931050689979536743464015808603368024908662995863873217861742461888401295294385615364535799970042285024822135071213857548711662579272792622262799076522085708166897263743349563099010354925284069409518278598707454429421137092178904693857005852418931346739043491382012113716702002375369739786139143024007736097727688044938001386617213606544796129461377031434978815146370495548854289623549098367132027320176907447577136520962888817008505159644032412449036364826544709798970495644082974662256300875673260236354578443919982325537167135275905769616878555625272808523380774870080020891843410474432152776239876889717213524714908630710190256043389935925770850583234332969568248538709744675923598398978595433668505949767143002969627421687758109822810123204325936763995557200566409334944005215654859753992543285736468571432553228798335280487822180959408841472698629806322811601362853643521368111278077340321425575279834035499339089046255655375119079866245281163654743311165192979303764239889849333921396285661408339581305611500720565312722829901360008495613885138998113754941610738869020722419498974807053809426590561140969016970988502666104037162564550212982768817535690792939726255772245290015129681147793597828304187769087027251825572227697405995637773124783403538447134991447840076799986602155215652537551556734708489642869629820989283454314364997241361063398273947431915565141186750205167701518514969330549646519259926524992400679689942218492542473334683289102801528656048694429001058545687448248413001181697579718085019011306075523357911511628832417053081159478729634958201546764121468055594449103253020969988677234153939441428444659647957702387104626424665133499898175408724797230651538588551747971894001654208308411864128756314757860002443168851381240458547776648551113338899079139360471868897823246793746466068065531018286990268439272120054638170475798466471093748106159596075038247939430654394790771873365700986130404498691584883082361225201348393143788418012182517731681896233260266690086113442939910558717954112912278456481456100946128025538973929534677767807550705594981617168971742067554908012803043749447484988629488935073507947055514795380016067633591803778971166002323720270252284911098265476017089863000155115033624907926882871669147167455986052363046111969126331044366480686738973745155286877865599747778499827165602239332131193816239640136858781164648666861368470383901238159603286216209570105246370344464288255246331697988067113559965777282413979531138276152027778369426859181106111599199605985172796238753964421948776410653094906771185975486680464335575691738648478033574146607661728559702974807854591751780790373041617273794749680407916161488792268418123846258366494092128160680093324807442344796239513641492453304086520726605824004623993962545984958686758038471121386792671876244953501467669104159471840145586267518770205644073152598169237673047180039684142764369977522062537808545612811095836980766910971550214955212328147106375289826920924403605570292495575768693405935647371222514961046584874963402875105203134870437711078352102313192813355802628759411519513037111070345506144262129890296445846294206511136428788539376053353400607758660715727301416001565925891121450746670023842011886269617766182484864422430210986941396735562042583081939254071514629350586296896817209496233363088852990054032217445603372190987024786730296905835298040296066361051147092574399492624572909800237733752864635257603035854455668246154840554737494086706780356690599426626710686536788908803991366637806456119898286471930292519519621173332727915346592903521044439036080961119015843788396362192616478045666889315651541887974301333499276556004933738299013182864171413404303864664405562645440316046084357085321078439819000960406493937769491742849875164094776560170203388839892584552004954269599967944386005504189259819779015362774646972007560387010271737803970201031953477645237553214615822511777961929741403055010140633756480955491274530908442248927226926953925622421695809316322125068226708760180726371530467248479052543296333985322753641896688872512973855227840608917999657324237618759444541452874433833585163200283648699172003716054788676156986149137794426662278110274555369939750905182962646400011698716762382249724570945397513992928233770788891029851983743998411151976950939756413509602212901977075109432468579797671912759741211902234737490681115285556774234518714068213085763866001764826669137612848139479549805531662916362472107514714356348921671943421042151931364527417755691557800711589943386707815804880475978196360979738195043668916881097342459481002511798360045733842686355354384106960793363101746319826630170875700395837987094970542646002950116311278736043082799524396482544105537930066087581872701730687057556662466841931909084019760381495732545910518401118126387495380508398803386557670494780537038427963012214082024365111672344094229569451049231728799816587632934301951448444476121122270432210187347259919874171819903419085706586204173076348619206896183621129234048206201132228859763703042781425118651910414796727226572175204285284033172291348619376348084364227624989494528163597433941770106697111539274186984205325158603009954382720847261480022213722197796215073062330229555915054372474965622627225795941957387111837258135273880975926956145556365302186435550535084560532422020299221370009372432163313091453940742123574703719599147999021827462866051872231867512372040954995385029267519524261889693459220175008750238096905491731187272436774490696794531873163219691167099029501421455194106892978921356130164566598301267546001779487773759017610446641250716928498103738580462809024574948718818187593599984311533233045285675740349871055606532982216232283487828330056366195098061758931288924654625446426571484395528905279364406492814300800481135870696621949533714429240144883350545148985772996724147643160688560362993313308297106165160475045755650069277191801328447747339272130838535959230404304531924963530290773886178234542145142838384504679701659168739661867886562529807751826777320998404007093904611633530949631004925811689711028168724724555032468743920849061414656353455471395338049541056715263054221953252202802542360725606803838580796530992099235915660763553480761472522417849516308554179448105114867630700573010289684423317698058893670722886462115349025317224482531933356561007245654079637766757268440361144842418969675194444229938381351997886589613482167719758655127797822718636790275254412660131649933614359330473831872828709437199221611397206062512850280133995381237232227683513692777327422324270321152724510742712441162743629259100845633235638840737177660723334487794569443527905327795258828364136054102158207279660579094193695333008259580308110762452581136668747325629840460459536209668370533142612751646277092918235383558653341339430872654758762382292665125563819861458999607230845815425749170854553446997615733031845929035726963563782868012018400096165714864785000617731099295371762727968167994775679883698053795182706471506759712383093793994350022038735032726953596429322082211721802272483511428884092108661075379388205496071046925726174053725265988073666617073153922134672524951892407267772351722923636707771268987749194901852830634700485620510413369579917243315636505045349532837417527016010637547658298555907969941889923930097430069696352188334082257616676578564662473918952926738772022872816200656643763166391560720338297801580380271552750893251793463143515337521132855211237910107374471572294500180629066129482488289130753594472852691758049937381279160459253499792748629249533856783309750668018086960515254821724896333082319421664210387972262819047000549167864516858655258453538095018854956134743386413706746326494034775396461006698251845367578334888707191733152632858630876149263228949979377074983445478663003371353870114295194681670016921885077541576897261817225017485034397937655456504201708539751719308004397433293872898741991783128367301887249742296264552309064874924838443476442394001415974299799951889879557520803777271957671589265459022018323596110626172569091272540636735922136957385066576280978012685717655142437713732289224226859361322651207288181379478511186245962377207203151003792836541152942082387267523733599362463864901582487412984535636968531698851434763848714368755904099204940019210687917080070280077757584250060320638392610167960960954778652260470086394012728522938993324516506584806947907406442153043336741473519204968369970214874104189578585187535552893947159234590158111772243974483017152013645419260097906483760058038723605484414292463126425644340841921111630594273474771717968864160718043900474762718243988074173684993379325990859889503128580549228217724244919282438033219142610485807058168093609355645548820163418172448784799823072774953185364410780159217293936977056806278267800012827473049653986464056749956609538440888476084144696729059256703680704464740916068808787716036939464304517604190660980366927356495042513908053839459230300519215051306619563563165472248925148579886524921679648694073003273465826972681793008438648562596123655072283213290297712565834484483681661746243693354165491527468113571357074304773881022835003550988004716576122248141288191949017982181341250987174111630189932595251324123189541470994843979094483491843459315583115054746162961153234102577509714167028256654187400810138444101595692525352315362402501185694552846229147744389097197761179749594609976517504216345528180547837268957618221121439551967815810447102262932372699337313393545416895571621721815592733872671449165255476703564641791245524243376521271786673259983950009814872528741079075078744833713300521542606717065220711215617723424073343469825160327748452982940493222165059259569889742476672253109952272645198238172267416136703096594845391049384108365383688366851957362474340951742598442437283607594578269204776121054962388488638373526615035187936611861364330758520297304523725513144952303912409342359394152226908408207536917610759721742648338513850585015013484269523833244683670996570455804680552300882964430285276916818421694267377787078726363481087649658029520964389309693162051048142166407191874992130542155631027107544628678194339112976530186833657130060108558201598973489760413355025249329225336947055028406225546383386338460813550740939153766918951557283337222663042851531913012080719652548322398084579780971062268158166231899293277691520950733580993500191407815477371571371351883653406972906221153389601406446809812537688543465765257926658134751561653845137355418148928261778758784219244076292084984167448734347700721269308906412318282785435514143175839253604593013716728923053504430481181822963856599580123189104655683501991379032507743462911859788057570242143889021873081471647786708636862035571942446281090829423536595582753593013161619557580261874724350502583098858461132071195544383891226156150407113506913376006046641568258064522174174624831717018102857394386359396405375384464667378510275694384391348498018823752800200557310431889602976269431475984690585357650454750436040865001854306207887705629352136490759996223006877203241148534352060291629979858357491976960074046039805148262117340960764827891744738751955077944081738649162397955060237389111056741850962652133916996362532341627359448742106073117511641414739207232631001137680383824403973905650845156587745026001894124978706268393887365437530430190920286266623466736963382419754280345934628630953675826123482736316397739872955059152475683430829718264435235465808682911496431751117121313213075618796285643566654140370749841065678115111972216102203349798659707557763502210805055985616279581717203151682513116349874260532424249155892979980514524178791981210197045665917616719755292499513925549435906794388117217068747149978527546518641281463002676774439991350307918486341016624775174277554784505568099277873777032141966934719165360396962857896566592333130857339743386890230775030171783465207275391374540029379228592315221301901396140914049743177276098809456457759012577078995604483432189315978500518132171818131659857306516179209428577268799015742661287198221666137001315024424077575694391878195277551035319508660994168644759232670341552184913113369934636462613690296023874226556105567692450225644569229116467714861265405782503648514070376647055671504577416948050500127322059776186116564338553154916444202460336423751634740547337590189045191438936867912754144313576516103916116818307276002639073635756712643483430409428898558828827708399915048467432982493632020812164472616104058057849970027663951547006014490456500175611430221180903085542033909516542417730841875377987227481689625297741907035705356591737359220338844238707491244179282163716888733418940509282795733952101557035840835914114808853763115763537788664667946464855280465846190634081710804846619454296908444077300967422158545669250510923081460386934659981809049429099140339051844938704413405193701119378079090244687405186550786133918614804007048217081537965791618600900618187880542410559641710416318563595700939359841794865894747699269100706590455661829625366999295543228940238974388722188409996312430464729875226580704761911706984987297198928444102736959987931204371104372231102731046654490844019572411211457933931816693544948927053206236188424415876259633376924936988425111099701772914577381258517312072692151221365483446821358154168732881991294961355208680570648791849961550039308288410174343180071465345544712297261025407561803694118794625153234449745139727476328715182087008919722277671104761982287495681166781525525281689358807267483796096623893636003439849072764487791924844684134338530925912089913992122952396415004703137736366769153055539463729227498307020739065994027753550718153485999983259361976275734294553790187920822083594432756040097115354880273138999077745449957384894359123317091204513913716181540749564366537898111174787625278108182606575145946721764822202092389874077215676889800682577504633690206997115849665800388255627880339519888818930630824436857619360348364581605374643559325021641477624903449163036498931618647084379120556849664179215716399082702974338597591866532620684031812599956290043276210329477678210948601573752569438833249879105989435249211843870670769848611471084560432770022886000226805270763154381528884632881200974728733954135292036186124718006666443196780496160475488843479238283853007333265507000111931462570102966981101363879573685425316808315934521303779136121657265863923011588494340547452696293222002857947711904769363006570757444959154651101445825693433513738805957776177396396549308394508338462360729665229209172882040734063315445421000384221301232322127180556034480227021343033830007583195947290201635911101506412667985521487995950631654963258002690661774431544187839910251978565667241789540337552536204843899903579969364141476096197118846613451280598031632243219333774411312879146802527288471147724346442085094598204836728709329694502246932187222693168806209866640247884556196071288601209417088353037967218198736853471320461107513989838836922905673161626195862527379525209973392989203870270885628848231089535811468327462794960875955170586607933814583482969176383909724680943817361486274515032896090911653288486954955590683832696286709136036371767431907314439840537456038917858826646899004325817218205333736690599943903077834226044619456694153351659400895057702910331996421965864236525457783184298626792627554835875889434417655364732958623748493516922475101646538326716367425754748318697973118540050792971764303099653508993910613046348628114225556656335052024736193177948805851609154023055922648965153081461262678467510360492257523418755462944283234348739748235822245934401307498577449412624410517311446037864008565702982075396350301665819344779797903926627948832823608285507489438809206273079548199097534115256010497351286498088547441251353864070267465201393322263128093758313733521730834610010805064530855757785435591212150594129089602823553765706423224053589915296772205737840378513443986130846424835049149865010224953408023305735128381021218534475598216301148898107162134374073464181165935627748569256508878930306676807585218769065283342465576150471973893861449602075257701198821333088411405914822346203968250596623951686918883040165904431404522447316245581316290324237721345677767832317512188416327674511534085778642976714330169761134462060122503347007406980666997745282826525812298676164633162448754635570054869811542511596173586204648212353905267140523965008797604382735769540869825299230982667820267141730936200066460194941419032930960214759861216065876272211390784996119165762070493002583157925760087956714076123360058055348184327315336942157627695309767275945092106602758937026461816834914532091101721963117761816593348481740158622147056106823822758226915120085447267276364139099773580222099979829038234174536469926477556366316392450029180833694726762708721855234585112211791822807816814925710822993347572090535758585473447381794897953246854691561653997239392345454290662129051329258702787533641839992547607472537546284296640905739015756071841276491800321428848908124231214781887708106819544156552042951495818756120916900709679821160110878492655952664707334950055311449634781258687983334976688920331203270467620369292464992468159562785187665651834856932325721155772143238830743657364706707560321266084677308573636097947493818099990512220440800094460574554209536909763831343502874625223617799336303052796024405171986622501004908579895942895004346560186799584005179506008497866709368268389191643957073967620807997677828207201127317120931695878440471208270732558596628044544317186910170625072800198230555873773065782131836665579491345158217849419278920661144402106091173134487587455806809662213481674676813312352891776427391922093174707531080516741152143698699963370777773093696464545218176653447075099062097543472369616645861155912545350477866791077184606001551592592469931684043492565566744096056051993953836231023428216682058524623853958574515775259473392381273753208095638511243044637368787996905514497239689768886486539890289722811147397871071174798418473807880373674146849640829052356572674247707440429511986645080089157191606244943525837521715670438329241186602708562489234722738743305150055862106084017722379935720133661596501608408428613068563324622142896314328818628874729859748794761882382215817311534343004271220268677593119399091378458139871408537696556099564256465281936899670098533523415385220691045702626921160892256223022199710338152979989393792298632285147611030907220153894039357913124546506276110603074955728369457610220345545113821330275607917991432795003394263623647736641492283438802587728578316069000666496980345456654701571480285534976675507417597735483109722583634863214816134614493037120912773091354910692501001610753324479117797003860809221011978564851672129234472177790842193237520646900589753873076034047556106422388170690183057876239617887468144489008437644736086414949267051794021099486019636090535285809814579838512164724151297750776975028217278074844633638127676427790985010622993229032388930821668060199684894328094551703682266397212523400175016855594771613095486765512753035698503640760039787913983511504596568620094447162491278559353825218269640259143718721770449710180443546192628544287824824546290234841150371796456253643064000935466274534563426667122652310981326362685419315943796090755430236497690945711422800963081737344944428208323175904585134779662849478366177343079267910639567799605370996542867011659157423720981205042740388602787366724126012904535632749310972826662773561028233529731061045549312011286977826505296138287112725731320147518400235249791289897952500996921317688164522145877746565534368449006122005236164277603261294023014270213584263171292813716553434181146541332912151830806934193249361037141330036472159786183949185173490556574455751818649472648782468771480427002243319270053568886244078076086539142297143424403619109541807979755005782617348609206486407472705277960052434120764543210968975611207685059193671809377089547530099883742653422300360386321457130525128968493481041749680855398248737077029834853261086389184728449095816080762648806240907961120709950136405128139070798070958865084287606302382623039120058105768655675776008519574915802078745516790757143162087595216716669931941884949456695052961773224017265072722558362703941182273762276355461656857099322114049793074553217999956022540012410378777313976583685257475856076096925206010769844389666809999569453866890001467045015715884619915698521161869033604047776501879316010886629861099410614834093312071676206349258985228963086470434846108977726394128321621599957522566759883009286035314632737639047676330579042395984981954074498959655809897439735255483379338914594379538725923804613904515879223551123011513421017568651354323542712503388353897483847664204898492124768691921646103278496016869512846773320636073007146262359948093958031848174807350129450883473759669610025496381654721667230878047797929571723234686766175653237800889321669798908398270037723978711660438740181902397417325674800952081737881354998887497131600001540748702506274079942755211360611376429385855584144105887268497978648542710459950148608779248759884609746019270206007103851890912640001000328249631083863520188495818648348051626415506796654156751264523645524705765082784259086905866821356580738930685760577490531424401278092760895848293134498126440615306671777606718784636198794921740129180406042601420356957284654468489774525952503879901688111930545286026958242734213042733189540956630949883512435738574943555104168932948207037740967489876671705972673441276659773596696131996835916407073292130319920660826184754821276882348506191142494845573542075799276640416347597920479273272984679301187026101074937662004009136341705219800160726159609109192330633476094250073271888947492580100563272844107027593085026445103088351622031928296619080756993105104127477475190008230101440214668740346824258207813644641360899550876541993960835634769668778549640712041170407591999192682940501277580732343558319595540562261287834012964511014537827430315019082831501684681683225712039014735450802378772590377912333151266295371438146415220578747285055679207051920482120349447962160319942729375046912261512644275321352680024130883779080184490680926820205919569247301497603813003582065760187531706203226995678505310722771125842478653332742984950057976472388188782658229420532302839516280922783536556638992996366688437657149956499422783395135051131110378010302188040390106150743751109720581661132685388960982959154091037172845371131931439676006150908306818907029470477764895800307525344895920051102855890637092815747045105094474102075410465080807083469813661427950060989030255249242350546590337608077281967822852506501926106272598968188345544107744390889675308676975854448364830853385605609831127531273312257308208328815508221491306768838888513461417415781681077685854335374502040859610648678799684179177498460662500086776895843492317342910637552966300209667113526172566376005742244621450972556429593872306110342362370212536916367254718185138920000344130131751260879748958063859124176577048745548506261193567498788139169435552066075230327207742202068023849835234225922192445305935559532299206949065220400800999335762074695784489520084977638338361897215805715756420559106927290015846069779755458496750348809966754899888834315959720933493130238518330906978012151034573411029112078306150996046175751927636273347270329623247307681202349523177678910726676838051037205184449982776875315340641863672479709648416232002351650628746532556898900976150595050239940472121424245506234042161099319854350592246250721255305721198367692597778498523708272623501199893587810404046148529917927092864712940718744453448196350853345676243031941206999025647418381129003730423055229822954270044815235090132017304397492902845703497981252718285284636732086517676556458648604113497389839040909307924026523623694827823910305153667872966478880053894387458720347472143848764859295144615361353436494900605508457684394328242046128454603121050828141814894426218159462809509745876090756088719184843380878814713396108015625291525873519392693617118700768849420173832150266761373987925655521154405742442736687723807535238306455201663222621280587960662168238918229064088791477218535790484609690214342344612077886752414410242169348441769200052533044923793373877001961163793220040292543459191554717184051386021882085752799875207718761386047141457054249784244219249527686214102791132265567977549224881030491088690210733563743575101457702329296183318656333204234180180036379355710927038624907873906190148417824834908005829207387768214589135433866502105289693512876865830843559185113794462827335317917294428316875535381520957852318172824241833755277485295640556041377075014794702191348576574110462237320655138686479771530611251527695258283971140982980541271084406437016656382656160458887030664142956969592654789195700584452889628507729782905066441672181644332362445847850721420325571049230136358077456366912505267335184891878420608509430960464266797838220667356594597910075985629933083287964571127656576877085141045356432259583480854340053866503718590782322247350272853669226542483953980826774387557782183753191486991719916712615830203145750872707889596870436875244800529736469798844140481750750740924925335180409846516692073282369248231446020271543325594234823618556570094069044258759902418533092333371594739031179603564659643485959744552219902824111611269869028788259418040395583971024953130244713683255608491131471782311903810602547947519907760696639647625437261334289579558313633926709331181798628363689160508608646194006134520044201920750215883003700794025709201325013797597488318857023459896191013078705986292390206746303776639354741413439101934856094502208131438448023788685586492980358296583532122398884226184500858792558978994139955287408559453329948964238974741919010874539782952170290788714656836433070671164101459545636675358482502214013525268749736806091095063153027820791625158354606808655093237116712563216225053862092121614263932492518508965427696653507070917523104902588996884153114204283938644966578783095669799385919503759879185749011493492631712396716823511765093124960714491613698370050970018737509075023302854981485410283560212896173658400988947917807839523508473231036198244130628135757535823484044266412238618495179870178700669216337844774643012735512664758111075796714914936591381406285656015701191627284107900054213565360563726473380750561311699347173140194555518833554130323443437233451960959758484507518136061379515828886830134701397728790783103956626728922889690176981656383548997213831376412918460710976132976221539810435716009781115256475856079189635418764485357154313404009731056437180122761155096796179325300195088323677449312972208302783889092142038594326976316949232732996026305986084644983609262292661257002836259821365177685664877521266121970668792187352571903111087809814008229860897030358904372802267458623278652373408167318371604952421719373585327136514992187562035579238324143125663658890956643631124989790798631741593892939856071115772175948182504792762953683726945101673109546277084219420075649188170997916425927594337787236278175035496071418213346180340364883665822564036685909650880152766144402927441702881966719770177352948769701711425226142615289280140468280690767350933636614622020263733087921601709532925878979512289955362123326632364367611991695474894619040957168076040154078976433229229370532173623796892450737130605100408716110878428083580639329590895263200051725354926359418754959531899236057916654044011274381163442388899046282522408376099323014519660650662077912129734869981291383508612670850161293741185003329739607027850222779557039438759621966630662185431305448885225678245791063102486820428822035707939911406508512586144141505627629288400376021845606675848549486325659699264292732434555955866979419593794473802366368693358529604408054355783461952182304547792337219693906948821449651099951117353830559454655525834268096930004516084535157349858421483731993505629966170249926409072760618361363826047910285178373286891373137353577838098752360279223097427857012307429889876427147206886482600722419065694560201497175467296812071349346498881072098453661822296533892952680704420265049061981512134411518434841918831177690572202780122141463485315571758716522870116784562163087324233631854633312552152429251028350536685852591961578893506094851666612429367565879025431344442719673806349269546797203693874423893359098149173271704569592969615194844543595961817206959221788130504164902571075006566624377469959227337109286088861458858795122397000865612296388477663904106149174303881312667206534701690279251723570321161974933727514143445416035222704822550829323417468272462420185027932022200121707158081810153914682146627473405128386021336888675016893841195467042512686436062573489874053690669512542425619615871423613807110530141480041996479545231654893863454542237034138786057629097846736460686420830956178829047361948681369042773649559055198875137677522494667712198240512054433552949914038611134130452795163104312703979997871627393961135344265642400975354489229977716530423538886144530359404479522089640066472768034250036882308766411901135330409120467540660021749375619098770703366309663537035014958623368910879335231411286233516007500936252845433526265819129179277951460220978382026111674905811482806186828558902974845828076379207525059222044742795746957515346213458494835217628038492793945640191816683176989326388400723499136597177172769674927191181343195101300558793831864644890652685632585510544720340128355534437229023588118555127903312638511280017576515500239887252136506493685227342183921478343156236570134658449602034609244415425768045693717622211266168700057405219151034332633457702479920812789933977341345925515481211278574861626422846561441480900142973747523842994814644961520288609929244898813669752103976124416885180851289690296065890740133601743200008973611053041131806649629683295195084499852089210648821545403152043896646757500760459230337699646410589921459385937182315667184125368938771790952325411792171665297897400649868950892334188606391055015185615475405658450158334969079313747355511006102957893026346394680621483123285332849607926862417077062992344605103085074809692881071288765124979924324219832076758267100970416953690888449915737083574300899972932939870578712148375791519330092871325105430278966033901871564589675840512442680957589908820526797045370744590139986272242921354657787524797296661614875597148716458792223830125282911341039413954456844954958809586625254723352199280770124488146101466702417987842144877120763180064893475712730450678277606522997860176051705074169362935191696530454149306511615014115266805840499529327902463635933586193412564166478189671130609626817492124446463299557018957866395144508358988251812825582441275911268236549225234560368551675061288317530763212689432592926860599553513310849435333120426347072479384031514069659284079940729222229021550237588559127435738980402604313132222034289148187328757125502383940665095227671771474676332163480918403834657487193616657730724121852365353685668085248180429787431711297392339635627291851820963331915522435399075291530702752249082967048812611633231903791740782898070419587770527521767478386038685688199911581782099352633003153580828007682357390147008232563460855245506782400976452354548078927877550981676287583260005344104103749138345651740451364247181028305970191964456326679184175802076855247415319898243164463144415511814132644307651785469894653615682124292082109485953707132187503775283373695588552544423089980149152952081209016069715820846421160847653735845437011524947919870208843210282106787220633518438473246299749396281857768259457601581023589492217706837447317943653175402530660168999089816023063970660904478920273372121242793893078822861875364274409638955907215551754153716738024292963613338683423427295691075257866477784344885962471261896547094810476571554159308660703973277151936824014165834668334621915752275008687756391213087604128143878581885825629989217484763557006600702655121769124700878271375312978920218997387804244382288539781721699179475619855064723434983271341011818599386214914287995807416056946971293743427203924617089546117908884356206507334559686996080839656434563026641616894673181283098802990190786294035035143280809301807581613287176874595374079443025489757350968554257387320117638582158022437833846697819406559308303158299965403511210126527804231133832644359194118844202441757219827016975038992695216917655004598025629316188601122220531817798011965007437352112814487774683530731892921032289784987818370806744409636984763105938795085367320260858381637414774836557616846542982660158552862636724274348783873806741520919213596082842304615546941678158582741123081197963213477380426822258307882464174980441037599604241936547665962461182643671978822893689052901801714656664494644071929930945154034477085683839096462079857138196292518705942911000580556274640865140810036651996535620086825418142274282666998122963725553167939111375946690499641548878266139568993579499899264247494489769799919358378642410174840383976650859515657464041360433864659578995067559028313381588157349244282286784329713331264941268479330023561585773817834223133466284709670968171595100148818762624870199681544855139186558649202433410510670310165163333678769786150372702747379060576876753954649155522468520702563088891019178551065414695654667289797636682612575889906565028447552936418013085588834675830430463920426113872768163268313418003589194206134699223037216256091977124022932979743749852291999522748475478860855824506130675774629391106549923451745208884756782615567667708085421207946657018884703473533551884071876539209152235193321278494135270584479980501699623036287121792382551037883071532360115727388136181731020201885326920064258040589699822589871600241501598959213680993203631802065518115930278587873390417483056303775782014987015310258506099866531456997926217381045652169862170119671440910517758980632545271827458168350710513799529108510665666014792345264534212353829483720164868461908171978038832671964094216064119863206790931181070690094995425125934912031826313003642265950550237559243307024884744553870292404933388039623017384849106486217725765151943806393024750932250531208054739080849945613517115490933430190937637645481162149359162739410767739400939827739977829914176593106367278553785337821858802489225244569320073401703899837926316285186283665993402525894901744954613737439788165055654316556439668520059999750115062595720777035685416298376201964964847740314325108963775056588258115215598563208516496304663169711672274646971270891186485105361477248305721383951260804874221392058877614367056689829128026377136202853122449347414194049636091996511423757664667684209253626242010840158082118872089876142565949533603881449660710216689528993887027854115976569226762801167939626310811590754819428677439197861744978069613311773151926688237710645349865610533418374821524544003077931820261772227261322479016114675380849621995234426888882529663604173641949573707458691717914243342236528338600430932978580261142749771581478379849823746334967039842900054366269633466160591145909468876643506175534051987584085459530078890176151197172753308754437983639334151673961642082145671096877436443007439100087922954453184955957306444445182110391684942870200835601598242550102159143571216650964924197804296744523721464117177739746814624487500964898764211440177810833385212642869725630086024896942423839725748873226319926987978061741327098545956405409914967371652798876721646081046325128883011670217583814959003230811099965150184229373921545619708307984248057342070749722245036556014071764629991575642788616303454469800309971711578727950370102028909169435716833639864890488375400396971078921372951426429359664005738307137812851680188860815816351737914722785284336264058222830924272196637326329338528134945364476384341165192391360908657975023590980646946391192435047171364280613441577440729093821987312540350146046069776909573567036647864474820178015714559370299906928223549842376095490496205754999546027981956531893616963109011133093275428529118383951339225698040238252216351369519613734376949199186924947630450833398692729879493836419245725393926677565059070452232915394528796726360448388790698541812722185966601494549709279236485333776267134808753640755674517026035388985456111403173344676010670135399525317119199762212893552476669131893111944502413008220726628276914342808207158737059472703664156326537962234889247239840160683615488929908187700194260922767511246192952533272728119861166028808279065969040515010217542104197929730308450108218772887796738357661885952478615170829451555541861120543110273846421113208070534440647422660602871835033598313035147701806123258209584258297757674700867754155155516817860314452202904466304692177978534388712468229047858630321499907601540841978966843744169764959627406079376130667056716932966136329988127419797438362924238419280655674022947986389930401405677572839742860252454478636973348168749867283705970070155512109905733161160962319741281253189831750617466628389284782034901840507864853328553099605043092911396048484749613774070826138355123398623489575904694534140604303766176072108001853191335274849678500183129933251929050993946867535506098799828889545202907888204506180810603884939906442473960516635451648450487182986820449048982079013855089562030755476399130708559330053061960945617346278512262012876220170603684769276322609494872037976196852911833218785509311619900431588797815526163498540365107464821166845576499513840383203538956609319557389321792527134253141487685061479236659097718289061315452620309515778797680117179376744573052614861100011163397081979983196806910219315151730354411986875363391108491354183476466766722650076302874569079224709830388683231405936265180994670253050770245741121882763094395127731655795319914531827357559559102224842357011536115288591341370829733671960586163322831252253633561651628571517457170668193982349453676352947128590883222453629965887188791216689470206436519533563090501123054809721358233830926529065507641427040903210748931242609771387722639948170521984772100028681791711864509409063963498024732024329668500598661007839504347714509871080096313793499335373389039967891445928446880679755631049439850004347535180725310290676528588212743300476102648177431332058570079097599178119592948633311958975529826907399556088605682794791096812364933415348843296833943422966743441309350314027171015882860478152572805931284725001496052940289116892684742384663785816221408145278335612249475080157538053379513135313563337385986339909685097457566627231373038055595299691194342962239622408178257127178125503815403810523030931569762109369491844287343779914264465929085766247601444607267498584837225735322587177180202563424963661292408130769948354720892139200534134003068745867972146980930996372217776588723173084428955930469088913129257469666244114669864145126128938561612408841178320546898807564540030879067329532745988530496468892588377896416630761810883245460192770725026993836882521590808841505974184462189081979643393545228497399458146095158016297931980607586265677038460684553150975564172846660087266099303028365494393275133106456936309323049063052766692058261132783597021796290977200606910635390612970449719508280603514341646500530507631527270191679917124384330292302766126381944312846594906300672960936829563319147169852257202218173436941290086269082673736397631605513696674717803095307184531008678991820920927537966832912065297422643636559513713921731072181426306791792499885292563219491999672568398225348380172913302067976412845737015593420989528847007088836936391772250465798050705810440034993238636045695494082973844018657166507314128004225958205868346961676841317499865095912041764171216657944834962097432716552142966921964970600059494706973576000192128939319516095506831296603148341245550410088885623192360614200289506802972949481938674837017671973236908772164742498959275312266325638959090189829341913394219294841415611135596161905689868495817324705847901075306011452225720104628294108983501572483664973648331806834797638687507694275061797300275093404032306627957623632124061895471220024918732468864108210499416889233106413364449545673411862792742558575247572370408879434340912420831615686140080348149490461996848681500169463417440012509430613892771097681679728796763839481207701956051175526605963587267122972612878372490567068742459648351814403379414174566767895217249976896710944700931276133506827898564484370391775379117958457178623905355130081151525740914927034356519219081903893773303723600975267524062100022209720971707858685844095104382050602918080151699265531200630685699671085465461779254697904363331790868384723149266975041579797550160365851570236557322444565891157708344578357254331147870217011426737736101969208192948513328456274237559431965446895557929376771779737423760462453256320003165120225425609873205966841185446441929958662297142912842392090463123678677240795991797347660577642173115350000238634920945772550923870597761409941589005033161827180807619328090609093613659545069128125268340949197677578317345729115794307694370068010928049197367080930064275418659522028884124661362539607681149051735461256204674155323377078767832698434156069329228202448005784587642084162575861139642027904719344477176938519673195615972771386793078108321872726955920772523489008772524789745560369513006360008332335685518529851032528765422845511897857294972502679845629886901094911835018884361858218671762717399738112793142158821657098618759170419838047072425422389164036226934387084625855605678808369356756589647816412819523605421023316326290259506469225743421186527954989246415715593614290698400823359181665916852604335199343017765879298525712410057250484392285812659455291807187671576903582836553086707201147620933459539728534068366815646847033167938803512639559213198658834342525113665343078470716424685699727398991237096189423644717932881512515255757169265679352638528968368388564962601179774553923405237024511988281986236640285478231875772520547666556158161382981232994623092389975953623333069453881965873314619542884046413929421800858371211873722957968729783030563318570653776549303632888649522604645139967913575373614181883026983092464417448159684024498019267704824671676710250252800539523010374801418988177171829332484097191894535842955446574328023552412597560040123478803867994066314496334985671677348601240347871233490130056528237438406794560348749035931065688188965605243330967249915990248976324442099250993133005225937802050051330803862686353729814541584225682481697035541741533669398750851472159570353834361072931342205338862036760831970015600599243784126567616855963876528037224417443601603619329836141098395361251337045369153365915483588958368526079593838797328342773941269945768607928361286156688297292971667395481102310289096049379615180736764600472877714885934469920245682186377733909169786406069265612220535135410753152714488703793318274083313204732558000540376375455218767074544753696387298019756563546242205673892695987103021093923193124628960416109261809678480015168129553207691287194667262029285335976470982329389761360970312951318164020087291317630221848357998381867654731079660982549705844847083866152722998551147770514185711761250782843975432419852438960534026253802810593569089765406911952720965702087899061443888808851112962116891962415007874319053640304259644457213125437377328730754026039744266783168814858043725320135762629163374208559685509572713818654764653623956419095013424365744758946565044459888010210091605526367264029713155040784503934989215453726101308961543690029988870139490643166750528813518236593239639078996723296378659711710860826486954539600496267994199784016782063798702010020527531819435471399525376765652687221220063964955012859641353089955269255034601094509255479302823596090024606567834434212237212430854927889130957577302918377714195978785701537486668871152568495399306696151212317519453952220166417113546237808999160651699400197879765083806518491689264288326301415777674044709728948432393618611329622744412529276446945326253078481385738070997332518917929565028357665361346836843526256213479515612005315113110078385406945893164004547418520775779582830364139884037116670425559962268055211111808248650073630691973786872675849722589035958417820821821628003964178843405789492742624192476620616886007107406608982907433964522870558366655469105575272567066265235807857045334013011758758907115721720139626283324421819736250478530605908080695614132178767708594357843212137419676441355735879823649488152906877499338111683733746310725424716888647893901664792136998835815214131374674293862858957337045591348366932977620863698018425242944790305651304342442952720327274578424072715862609632864441381203582120607642383183002568734013329003412050713403649286979961436534751760349548530148748012716606546139079420403215229847482139733938052357495443762581846030847021882495552194342009209844542038479870014255753835937051666308017909640460428712752146770109903409690952482534001221772616579803549578129913811739374466665683979085907134363164678860168211600973367081194349197547299840947194404207389558916333903889187750622969278521409124018879069184884669868547615959556438408111606298114924276750101899150205159358219281367659240313265396262178882011077483648455778029984380632933774452198624985781732636221955245169973665726768330355588063257678304915708975827312692143561552246392850725955856732030002215886002394830562158190193938451952846230321192278716458775625484629456428067536253575616654803832231805186251321960496139357297818293505903031933141627476337900434150424221892406677482226612867650639086628232387849730438309435270026820795008728335436407075434773349252961362582321493108024943871502327870521508304591910938867077694009157338971266623404658683834528963748944254627474472332455281507038850476661107852742270475339917511265506134801536859114279660128947877577458507677014702489447754451256106835233940118004848734020639427510732840966453936746390575184112436447007595077171004217533062951848376933348862589121360292626432893654940933061737190048694610845136136495229353495436459550334623120428905556055414251023159829846806964731525625765603036706390873005229253523694558289174919326146762141122941066795573355200508164990175765045925334580849794135967940733085710660759208049322989728886834029644090427470272096651707740070967617141439472585176871328035980193741816623300490276631032627964891440550693602555792443401210069127246409540282504621448330500844492959351068231567971813890258080448814364005204100939014174454182206066866261368533333707325412058411393582340440172584989875719955485458997669013997491645350668441130089702268829546025043337661452174418267596800958019017614120293101706893670210316088716862529219569240145410303657761066577127747853695812635887142441773931451421488135345756750676900482149219369143192569615366788334922444846421395327401915064734968031882472075296317704709122356604928559939423975330187826407207967009334233171085512912339308925437109037522697799676057711726898782591148524098339480172354487239096488995529738439041993948835538668914641566830797748145062935287454736753828389696092242764742353339601181440867847718012616532629255070577969644322975839388494209382279964424815394508968739245708767713363486511540223098232760703573479853140723440695561251464177996875364535981870848799618224270337751047011843805101446178374912674027863457598811359769278462054253347546657883172939021798527549657780406373094816798461837249145257292272967852889257481462078519788414722538375537329905735849264310702596506940415793055069626573968001106060688453826733997272164772242611831951590289837251716177631267074031949776693130141121537946288073180948440948125205232629933574114721447054693073028253055377100922689095224099952768001244670415903221576695522200860438078304091043390568847401549873607955288363692504437456874281441538496973525531823933276798003987406378369042868120107672050446327661787008140078729599779424077707883688767888123129947998466495714923862036769710797775671017720882818291355029339679073802163588698488250962390602901322804190065804952565740433465388599137529031240880191540020295433508439130242360340661658848603405629511061091205306325410140267988201477383021177974360156500508832081920711750928541092450385837628803336421830962562243053678472468905155265939499183406898768417953622052463007478035666074873690694915083492427291222237803915740714397541395193727870838340676549553920972737811440363163398361702213612329188432927370198925568421173774945880612634285447816066809889864145739102950488080405994108101981421572513169927277067648124529930070822959253993066810806762165708357040644624276900601749546990967729167602864429342873255270241880883335985100370296480152288495494244907452199813979786507610132800450301087223267159253755295127661584028529299063287399512346934834941657622774334735168965300071687723693809648271384050200069171926389717562071658117450618370363310754618431881854214229190869836792488405632657461874712357155297550199100695261296079105801873243149386172690577872531385930903607298079837775349641758109417538720224163963962715241149614157932479670608103014008046146107629688510137908769813630659639769305531272157383933503656111189418084414825486525011771361433222937043081450833908931171257729381739443224601259573589903246217840141460193490431534356503948514927618969291996602559163260061495208369120226484827594886203055845687054848760208635065583737197847338050695471681523826895575365650045850097821024410083389402823744610576442614653431746577855575637725817430322134091584835307168698307981072420290419176791995217054430273575953159233260065585036162772340098888696851791265004037482279446921868005136974321335220810781840309086940638397210705605378661219825873091477552618908020156761700291130483580630214286552589016249590960251036425754115570566533081572239549473432736873913424648769184709911673887299260739732416419848665459696490365918628823902627470076431431839184306486713369442729640676123151721453328131502225991074022776823183834556103533364691473668557524667410250497011482476426159767508365871071099700103739175597065871863213666833314872358265130005733264445372048404971901682591389947593174983769533844280501478733783392860414352810398574391725357632262996355166078331536470125810931337771548485663966434730823060910326907159828008687664535531950701348287584589393788563356672114063703314743555390108154452021279566202044902916955521150342479565111261836421526960104488930432722636044290986647546821647708873442571775100576321110596009720351393077575056097450714339238675158173020987246242117633291345438056965138552280699938016988086329256603668677181587903436675104718957566699251661124165324467017377939794861953178020632092700564560764555964666700655749358868216764312304262023701953763472026337935678607450472828554004230711478501297789142368156888028274136551547238050332801177680991471722285313577490424004330043556391498347546892939902544314752491256332245928211248832623445086521946590616674621663506791831063275772873201437425969038967390371724823522820106688104098628369791072098300531215353641088411489169195350885570194798740028211289605006363448618987020732858188672996473765539273709270892813539623832092464654200291919236346057104110091267238023030211039027233424774926860269956233624641164090415104095628398250643591732747673169533461910453052766463133112647529546119882179771159727654334824001485134967983115743700839263174949752483191665303816724604534878918287935527640592898178489798211470520780793011224284067368455718904250398699607145493158496430259508750872088567456480674378266454074554464159758103708863420911576527185645184490080561085285473973730878408297669306592924477254169736372125664345925588049815925590960074906512222739591905006303215546677556949702778584715855578517627135512979040407548247940555797780434091342335763787220364254529825263858898601594056683142573431152299863762086586077603236013594441970390598590253325683276953066700238307897851965475925406220609836195013168556586327408527251647357929705412453503902018735051728356355157709183414750862079772617156400192536745624852931480948020036314923871196209947876150493843678795291224908983809819236455461452796569349523004801613288399826247667282983158617998739523977540226034927451235929005558244050792272357624926184380302398648863706282812051358750163791413738812704398497701135399264662390423345626752912011790375543599771831330256249623045481728464402152589444109306649279963408771154623657439815804242281497913044692687767534742981613493466573949088753012292964060142386364040145153430857017293330335766524444549968432398945946678192620405451623891640543026577241404039020881515979489354144565588571443815611938109261558909199250914841994518225340020289371094855545051477548407140425236587941937300984416294597971165573677792440726448020938017217915268872623853010419841112668801315997082099675141166102366253305835663632399682641525548456715511024370637636681862168615017626477711324171109670723260992209440028755706003222830298776188444416921094978720044811297582959131623998460543181964421405884262284703447364183675109726255830576244734257180546474008341665305512228426992320247629900644132965888535950989385242575383361793785070884771858152710371514782142356928650637047915079258339580060399063387404388800965378714816741068266444371935984754533329800923404793693477298069159781683519935881505739371049833024680561193570758177793408542668852326888233509091545543062245077895709353361373460587858306581016873239743621174441034220396116030379413636144647399043437009194526145591963460677814553877594930657800105544521044214447258002760767865147794774522591514456996719727047596028430074835407793627367930510354585270801204329124836168561345625139332799321301439520470287006674224682236180005917082336696905689280621722624824130876558429077205374374423920237809235416138438553744664477223083552135104230040017682862593066814874336790139536835275445641931629448698722225480759935831651136977156167205659639442451919229213982045028569419418548014825772810882682567000249287373951383758720936690043205630463872637418846578377265792049707219282057751452466981164578529625486005974454300051574505416816680177367022982639206002027592723364218187636300659886027524843133095449927287334884523522105534049551053302943555008722504973867694782777302944503298075688629068618426126773522832237030959425778495695581821126681043014248365432375401404285312153695180904702606355878878746929816073682527530125503014980984230237762935089347494776638430181805937087996873656796216215174298919797757864633239312216894982532363889796487954564087859580777595944698489829459423317780652563611791063848157215159750006279987535724482297497653160216704362801491186194223028852144588612483405514524150719307982768444878207624871463072896380793154580995161510925371248023333964544771238195878653448419965458875553852809002555721119559891861066282366477444585135074722390488627051401316955275734842908090887930826196470978152892822324100410428002344890204613856857328699134216643240804848509041562015887797891106672945924296602356045046036097533600693707230772470531923194916099372170366416757529444681573537627320665640192086771238986500933544251790452085680285516939505254682845943848636447502227913296566683478266489848747242080065626782252211123586384963997894200499925950236030963911041732001166880323792428035993485742965541033747983767192040700512023314779754508802822621452626660541401850946138086244463289160062075020974714088515458069487102577839888504506218123855715790929485326685309809016310616862914810002640820530549827569611111500683066279703566950254056133363003180301065414566425874577830206024071724014133843428581545200090950874168075510692633396532159444121814608771119508036924975245891111077063645984339176206003173902383711394475751768073544361320687574303030437374965565817823757373198062995895578603680992323677513482854530682996940039236766054666604680972616417378922583865205822500324625875977017292849098893761568223292805142073645646570342360832913728639154897064161486463577864195856058528735351430259482038271010476006786435401163093715220716391944568975268065353989410868682851390064061553605416161145860280220581868241462167521088842176543178123718086360327318017331633873306777714481766148826642913474800721222916614663533279669551493095916223582219693628659063814526597339340064107719131649083964959043045727783482687951552960859718268618582533255860555825062158466876626305453239746037022727688460098711914433507002261098654326710614061714820155972248211163186256906086344717711924473426583382673490477601176696003954128242278765472073180944835652470320228594194350132953541941390837563204051872297934930690158821112781628696999738172859219440238551800404546165531188988289890428741547874028382230319530465227976537295334763064137131292254794936364511915826141513352521671280366260817271635468259353910055563226420267250696964625981751038125401817644677012799716050401215638292101194768522938477447217296124288782695503680275220905833524497658673796918179066792901802985705107151660785369971200946366312917539059080279335969127113551288396429864772815841258256685323495065173333485867645032245123217732231746994143497782305344213915761317808148733629893531842908126907251654808571282167019758512311304089355598015277366701980312388473537045913659697292127682011030106168723019904549026924248106172763926089085245717078413680398246777879218279160419811776334161660243075058268919967378145662057832670608649520515773080350653559258029274224276391532039423416326956209601909936232600261963290022844598588932594171413117876825658648520769266599844278026849401728791408768066713656795972009226578915463702986235431300352435473686122708999037079980394420323567556260381865819576614769669617055073857240471919465238924100744875734693398728666290444926612558636520873106750027429623868457376788987057358689468864431510669967363942467739763193639868263383131874968890318646511656166259818766534747377979480043043290312352930573066062233914576334307846566879845770426178550700938946224947205139113039282713059812571842927182337023772056077118141843328780703681662512120082859553276121730857164956946465116349857125272445322348367074802327492872045350621766486893945842151171847664233421957222301636716132984761672404414349426167561119503495225516434327783488871397953066286241085703359972298721024105894587238933968539622820110211281909812618107215148622755784154733948446603016267151430631389744474866635727841883376776018942416249424654225610598379221324371555841476071184950716078889233843211690527825497232611898600215410959466439802334565150452825037156288373768090056804112569442408093809014414234934417748636208178436469413039445266474235614172251462656674167761035979590735750389378236361247843675770903594242777996436227021804168771509059982173458232753702620129353899873730357562063269094748505658349376166811293421265013667356452215642722550628236719591986385283437790004751867051656189739247463150625451725878319138648888770011326772816808492489677331302384087139087262992149970823770212236608602014982091943782818924676256387065435677791702201440984593152346311139219880351172929991716665364613510222389576991529823496140052811251573016236775822529183530768126177422371744219828649128122233205576236933683664706281206982433974307521223644531371403947527616551850052387461877635534260075519353366783025588830199609437133072070514480468939073525770832208135466671574814168481442478290990310780873760914748504936894225057849350833450525265406450165642803467702899552476704732345842126928392171890957111670363923304766516182700044967725739097201068855223817074083911559236594128482199730382030650151143661830948132871310137371956357907988170296098466419141295046777205418117648207846247656822419818556576336103430130356651091029491762038931258721304702679038555915829959965585033955090510359229977725313891569991473883922510760678475300293307576360647258507807619529872480813083014139568239527754594206509166636534141987578458223773309063341802310334827545950949018336614810840883359068701458468515748864077789212948755613628524690683515266717986977282689665331483315041482697925347367727340919389647707535256907645645556454318056621738328157575429835059212906354369364479038052157798958214254224556545876461965983360395742601092550368202506777074178539588230662321886722974016762830429800597590599927974249133803461423620718240172701955330242785135636366065782938745097579886102018591406902837970218193739225295995267518183281142865138236757794442481638994522819714490749392863895565709369602375817462924333084726060987171352005905230926744135532732293026822050604103885028562754490666084713445854562454497162069504504264186278603615150408176825496071129173222943999962868731160502415895109599720624489614967589416668137755411520420093891230663964650169522106840704822524367487088068694335201273747405312653422106218238859096954279001601190812161677826287771015341787695170151535103080380412106965094172436738353298883792802489924638155485886615433203967664029974402876123465100942186017469211084305536664154076881448494901463866741629722078721332734608693317464921660987491965847511403236114117880014234740326004299713044130311876703653811704439639756170399895718652710744815814071873813817673578111461610066368968718345839860170150288831875953162337163640839181938348336621665144631360001780921291034706874106880807217171032921569734676625675007566548200337205812107072935826195985902813342241465292066139653890889203670991981958706107826928542517354377534576213067146096911661666231772331340114753487160337322230002211344521128556334956139897089533573779936577477284335701003314610330922711984637523429237353393272180144344592291774824050152920561025707085874605511245562173816027979047415730488638206449728069493624125994622264079558436193366858825854485543776717878512165909603356490161880814403487811005508573755780158405496367451776658100546926594455194547089477372962587398878103146123566306164940598886513348356168216849583535439466908931030460351243166433817364400325809270105664530504148508643259454926643111132258831351040705237531403148423909814167556083174099487484473298244599470263813884096018462755546232092625657827387918312482843453556310756833185743965853087089090405900024529342685236074735671420732939251986940586631808712112495088213701923208780401934739385497091204578124130702126486512641463586036664552150715876091196532363265407541431436186079240841302219399984776190704460097831506951211390348090514430447704357393269980497634904492185112814110571408410603101283578048019382935622719331157931339353910415640722330844438534696739494392469406008089159047484943539278342614132669146247613555898828781265015807933179365518689278513101506650031216030975808179835111927969459341338443767795365947915786222302931789271174988424658302902144239876980411602989773479800501537989592913128504395885276578546943187043900945422479849023643338447194865732363327021500531494135891925685312727637721633566051643006549119765761976222846389275773230440974801041849558229187014570803469769592686987998593714530434758117176617332413751695447531001692147022396582639377144208642954073952170364548655742404285064389689103462661435294650481032910102756823270898616943134596866892207370398236930741184513530804391831025796469598121591434158045043684657533238917374081117358334973007815465418809782107314288808107099672970696905728862159755723829116760523921042446105439537994026147516912654040329517345356015179033468909140984614540720920929675013392945482416829057259236740603447837647061827278896321374785895831414273903243265448797050883828873483748297016687424187000546783124067185576698722297222184687462148746762147342912241122167032043836006428196085810713988995411465422095265958159300309582942945701675286636403949852531222253713373372322394324270468763962838043759578796780386628159446256659612202416673767068676968854277454953570339667094481107944058281312802477623403118632874212111518281000698403677884781793243842727475795370743895746282591354253864725862268693277939190419758559027863786453704475644907815838857485093213159552554760313521364757699261453027831813634502594736016304412749381611581517930946305019403421828881782890401844048140991258589816233169414873081118957725088690124364904654890834443934170045258999455789095848481971275719472757275202751871240624342818787785642938938980869122492458168184797046258750720923525304817612814994392723886340219341922146028315302563361930143319863663213579385589469127429963769646157228893971183788894908109154580583037583920125651595130254147818791988033805384553842908292125178224558213312100322720288697575064620928619951013579667210202176336033730117637573918851817915823605442354327054315648769674183597586611358299356205673744377074349927480190242561237419610510808336743181494253613912377463527317690113786832615737548084292043188714223965082332207070167986181098244892455162952657050575988324741469734624064189080502110950010161530777773314772193527005104218624547317046713355191037689421087342607659381964577979365916056141777219212399644832715890068678719723636901180721973069433134797075791591611812667606469741100474433346342401260941105037060298252256410939683612279097270260311451848051743812247207792434465241550749418950211618334317043955366204877589505106726598187763958045279140637147104968530345803458417391424188222001230212754518786047091165904998469206119834341947371032103408144432636122448076860740166951782741695286230730418424194150986857890736023782663309296738481107079158718121936792640136367289374392793312425400783882732536856747511244936352418307611919904105871042980267358740486854185238062489257319257155547584257493611184496911154219259740884210798774760961669145388712217393757253166530015031517597333171053267854161881192229636883131023219802892595738686226403310435810422930782248868650285239743795973594223338286319065575217392151376215234588265625752951568310106238563709595697084939431374899080054428512595032987595102790795649161365019526986516481095747551924176733966657717989995384580219820788450004355611502943654295009281139053507332103268954313828653567028133853476856655083782941420817366346000699329331140240391644096807859643699783735339193633390323051830502664585213777142675204307177833307727277257168934345896805707622135268670602308917094854770209985056145219640456113657543568256913615192445446792844356357416175950881890686378536925719394714817345698955975849532480725629989373282107458506630884743479931518678237722336416858192466985476151156362558098228722010370622289569394333320864566872622602833782079686247069534543144574202034699668988862293944644389558268176233139239940818439715572088254307048818822117953745556558793450054104126532149910209629313543724552924840721290760941849002492403975987659408274304021821853546664843445725105157380633297338895627646304292214648470206803497647607143043617773891615344870896102421255120101499664365870674369058028330222858087103747569725215357412245295949996581852598690216729226494262092414089635180313790788718681496518192108036117756572269945387700319388545824465146096988497052445086371909631388229076156175211103401630023989931149353732182388555966049608097517355147543829988495509340603037910969349456989435653717755545020886154328767494374061313866444188056709498453064693006971671957553716709299834981117009129257646536157315395839654208536725450028179479449159349814243435247408923533015418268274498478974320916532063483181911683072344420994964190903680882939548793712628553809131959399984914566848842832684205366076763015989533210937773673444604895015743931150536978726138031426434360661228543671855013728891322436610713747619166051140442420293466476544649317928512298613639280021959292768405499862404952035150869722860028081937077344885183060429649761899642800171773071938340022223990109363513123574850775703710932747490126729764969510474704177854431098764411702499175441102220711396797678722131971289602324598361086291580417646612850881242673742037382313955544807808345225911069333583207619960040611878980443470723027560902775802225073338293955460868186454519790796026963175894325252811320257297732905975924251563955208881469781580535012209810979183822840310886021928254980892955518279993386324709159367763686786954414194530832859911316495121719737115000625500581125013710379617852888944135816922408037524366098546309564689124171363401471368959660304136814552648432145820306386895988240848418708737088658759969035102812502432384925904071108663053824865467530789307886486703612314021653549123400352825798404240661385743315227885770147802266869865594614725234505181559946032556449739393479247700547556023735988996970232590472929311612854328393391722587957651156171436934368591771666277518608603017906310246324657148048464399153325306433180824283014233844033242971333568290302288372799938783331777569826960192278205331916597071490949100335489725499147925664436723076881037004833929296077265250308353175325734893326259796767539556328719916229759712986914856709297056428950457952238146489217357494654416791099881383702039551129410035804860092840283095999481486868070400202143354824340089483609422360344461559448702633049704469131493634731516912766167494167941212042750522581291925558594419405610340760139711487544462637854868188248575666591744045692202511160536217890178893496745898009284043971970647047991357638624838258848023379433867944902833188942303501918851166160990576374343619510348646390556004941750713221274368521922955283328010724990408577133730027497902914656728582430438904023686538101919108375009507950152830365161541986136480521246700855951040529001707756908620182969047112077058938526867875719242870944858651247456322527723995281243379214365367450273194580266480803879805582846703913263849057729827582041340881811630725267624079369577547445568593822187046559032805459721860302004028669728873577335999240660138191554898159383668231442025353665510925361886531301023918599926296699524917961523169255692936085832354545893491557411993130424168539382297902597370805743700072247560324751326321010713726073066184263552433374220462461860685997307917635516426500992685814751932593766906157614051828159327220289118618168825989836705731202001797852216180931559607111719741020310598263867293146674625138793169182775656970044845518550871642393295185353896176075909601743460425258282157845714220284338270805987033924343759090512597981581614008423938261519085392484561428699322007703141570131843515350905922023737946936165484082020122075245658027078791581061926137414492838313826754360417737476051425070625503352214497600631630665316490841766471842773482095381426092235055706831333571984874027162875004479770357729422547644832862589400149912617715133586810969789907714378592564533873454821374995760103531161399896840970103339115149595460446309038025387115549186601330969945606384483785735255091304627150956847096092999809925563772175960431883020531127307725664852754705065974781149422498802722114011563047624999888306299704439746515095797644021826621436580952828768924168293056938178224166162330279794243353634117401853929459248291859834067745674683290835311106244120339549676850258349050249345754009331624072770182361074336030943656224534172537460138848567360526976922740673811496118123557047943139882272480327983689108240976317000075407755445833514622806161335769840344792433122569889785551569229170572683597600319424688752522450493379669279890062778114715605784229230595695220842442698954275155201206270051836926965767343309842510106587151297975960595472240428201586375235520606524373648911822801061171106663484190029551983983034282614645867942448499384945242428181179683834769498204309127127077270056116762207430512298454827833294533199950078628321180157957269154413678708590162298318599578408666633129068683463482991750990605612129502625894712614401093392811404512876679352575768445206893304835716384669429708267566898073236326666579995399717558602837120305488738026615924155080921287629989112720347263439119582325454125182161313607683625526131441884386992018124059451205669815864273482596021349250451672892060749179684330838904912663280599977613077193294600168769041576627272480018488148527313005491444805597671777912383097212948332123938577793285795403953083583969852043056408594421306830137928643176451520218669557140790672278233330399494716391839804239314840014770141444849637879368937847607363350026301749935783154391077326674179396269193552056912030396597528165886462485366689258627301065168333766032978873971240563081971590194937206030287990106552179534013728815292158485838547550549264509606457932911893099089061292065885733316555863661942028795903709783133024915505785717125364224484683905107807954446138946194344883713981741009843302251297775918984364227714442845190844800700187697265773569770307547831402616617264662289781861046605306003209264127388193503866788614440410357109105633614618648953718950894581848765834645212654722209265733531547255205367713117845639302743157344990402328348224520609900720862331956366680341746041797787163045134818869065347386819756388669913741514082954138875524043541985618232533502969553898259582430074138054766313613826599319227700545093538592944158086049579576985092690881536808749588020160501626610585298502545908553290771440753431929710769284568425570674851329876353582847117727880532913266301291742254114232652036649980348310199404447373291149898782451621327632475248250511363131842860340769475574943616407435058375576689228259699333729785056914142348056178270072680714568367729630878222513118299748044938454694752184084912120263240606288360126350560847670578011614150515561085776511824985187190707261704401946075440628722202520945511901381105510247556746369397837215940911484188357216040848369059132949147449663719312375273467443863177007599733060393390385263456093894438324445719079524520028638258731863539419167037845076564806795185513831368825743288882726176421514500132777520897595570115725670947140654738387010990942838418913529791779180129953238615606970877687565042229806777602065364534766052053694125534246408920529691089744502487209460953746988896224338555822323081522432469374128018375114991614429820581880240339540688713127963527125848728193439313112272256454999473697886296984213635947734610612977013882391382885079825227459552810983806748137160997706226109739748275353059809393076575116874031029451860221578699693738099658422598772463837763569096285898710925286902046740249692275725578711473495570050413650450328987102799255473863863717156516294193058010658642852229357335420999145391022553712284178831805106244410375012665003175168251213365450770922291146585765440257198850506399100046571256250420825825626231838067229040242115335346150446379565101519519871909578541419903723151732904258385787873288875341755205635368813880135274706354931002652130873311969889172031430219871287609663234660627042307742722116597308182779787469175240636216713571612800876854429770650646052910777765736980662371034744648234230190032991054905358296917783007851256649603148848933303743724612933972561005271668922134404758410292164527923379817574912950793051824360092916185263929713102028444984161701589918018376505025339057280558600412125577713841305571586802965320730925726357883955259962381311215586425001396799134271589422080344890703447268063176639822403992351856361924494198151637561485561232593684883638245671128452814516553786916378316390903928322928639572597882546358551672911775878861526903101700484713699934345258037264542932518092711612146483240352533399757902052662809959727236546462720948904368176780503429018303027004956495242014558780193617362332180184699343287596530759151899219752597043084371721176554952197204613759571950051938479995500820883473866793277923252591674606836168740447244910286957613848468448864223097753179685668395860636250412070504751914366302064970166688634969394562578716116253138149031460677419743779477574221158161964919108408063580188654264118906063308167075357560029010263932624509125524166432880576654279614662884728919496650400199108347566384636080322811310765778437640071650820184608147424702204784934912726565275847819798013866388988048148282265264789009486105638149368790395920452514319442913198147219499829187092087892495679312215521118309818727798998066219802971657241615139391930648862465413216577562706263003016284849250490913370555938995537522374826734279971271079242427091101359805555858636276208739094588328353176735531411599143085877492356724599059918681747193396302484299712704932877056108720346718093212769959006771092564300171896589398792534340973998312267815073260534722100703943522837281185739578301774510414023591518568101243466201728489563309618960214697556501669588099622432079104884709187656462586988114915252141915943021582630857580658280467805098701156163898125887991774442123122541778893628488144585815832013483809571486359170718116342279244470826338857374233856530493414723202402318912939280783497472028446381262287015980869973224869270362906973053842239895672905493110743105475242667574879602599550970994106946067157455791391720498924510003456053314438641703583764948210002051498465574504908405388922740881313640714100955859571871592384909343409074172603838544963921250716845942652615667428257468791469572244974005980685202565950053841227892567449413527568871768411751480729148682378018514085940235819784189174733336113628838466932939036640912800751781075089652939690181369688706173004331729802869524827912409605042629501839812715223622831914601845913660323668145069456679588998054503823128264357439126842861506946171666394249741905364117776890483056185157581828480741404993950568139622491253314850181957357312735967616256010160293919050942125276665807268549596563060271295373295860858317845661554449477715233437631929164070789726114775651860259754350701695116452628839343718241880607403930888806094254629090424466446945794394072407550180013788794713267027917438645318751704164888654999901629458980968886547214764639687060364946809218135399353116879486483604821706988084399055791070634935201381896832107959944097765292823972782926123382451572011106239413890808076550154580109914815318807850704036520713337557957004619893321990085583279283083644984562568988026087474353246206004939260036554608682285775944352623819602618133249310339977926794883978016432299925524110596889730973190739546900401689924296302206842638658272752704039633740283774277200881748133505286904934821377766497123848865155069985858584747026982670168287456272574826024928973805462661168814423050332126870840314088506089427650485599891598074102730832148655199819475896266854748812197890535810148942191566824107916347559407948693307297986612037905565583546271922597595620505853068839683298874401544204784527332914847690131943680741368284073016149024495334683177907972195581619475165388502890189414091869890417147440663732431018801238135357029768687843400493933064775043166616240011446967300390527094417782370719004927503414625221078659632941664717063992112898377760249686411471341675648490617210544533842173007281274490781871621304847707580194269113484057193148095682486262101138188096182986457969546528862023344348243426298201369866363083481334278108827653456447103219913736849426437520736542467397898903994519947896074228044961537078183330780240579905855287095325406535197072261611686115823198749540778283872136994578884972556780811396185578901574275169675983483858048916471934330737812564016837225298433959762430816121533199710177076715045880404085523022841773173666813580459330037183147528857401308147213999432633481222631004078336382583237574795446951150342635637473252189683814570112111883920458444480076221399312730630252008321041154240681642756461957583258856805862021101529354829581527761172379097629259172687632703996061310622367594584632877663372170190668170261694905314735602607234203533930955851622234012607203393237566478499798247027755810987332461692600410119024884706329808685152942958036510652714056928964030504922476748211951795285584325821456552065956572347647570578557287825925143065182178577196950738841920037913414927969694036084880158490886949297148859318283195905117318776616960508287015738371292311106584464017402775261969062893741751609647906702180110303675302200430774310989950721825452498192408682838146307343601774154033551146304404704082139968961892336620437269906124961050587023343390032944200876582998569361365449174467788883580191019825323219490512167711840370452781088062043627212359245238774557425094189094753852363082881870571700386661556916412135390095195606125593080792198601932476197179052477910621187920199019779303256642062997989289743199714661085761486956999547570929547320123044879736461423803620494612123812796742159319166900938931583737695493630539205053171901196639471965522850088978883823370862652308270971958021207189845644194632795103448516903800330453769655232061845603833963777554308134021061466851225246566917113989502844110615341616211340867777406570601055477303384088835949451476923669137432473161254128466113101564728457075962433933398936972321859288153754131653931103008961347151820533530238991024692242773146042920387994357503062682185283796687533359208573677692507949753879795413311753438768273090145149804577463605559775650874000006860067493020286954295572725426145850410496392310239696606079414148722863104526236719000694148629660621122778266449844766513669395023622529850978425826193636866125057058892820904821956241294599802343188794424645678745250532907184726546168777639107410427197547747707335669724256602784359845234319245101948461726148411940505433849649609152629817931089069845918257809618378318603188216235732785528985633382066769735630451965567973584608170361825139052744114413252897622209419282154762865286930188450527037379175994623262657316219708037148712452880762443462182383139697151130285126979083710514209117367867311943292915785241179165891880071070555681447626993174296712867839316301108044202151969654474051895617463118497656914240693040390997521514103878478847900643142230346470866180570894373809464486764518797609100895768124337600327962591579612658884013902943856784713168313370968061893767651471647367177827960161916794876897761051648690842312895976868249018083390844786354767172584229790599538722657929625527745617512367033123186298395744008452381611251731021228588836905534222663018085807903041875299395084715750559521273472234411878339101444849152809933317889963762620221583853227023039660314955011886174650961342907982656631053893004662503463508484388844881124815258531964929178522382519090282336069080963325981953332979969512865502795892747277873263426607806109053154785740794249718676567049539143155799835008570129673525689674509764399178380386023913686766147853186835099470727572771643230789030186356609033619831313456338190012702773032827624568196901157333517120496039653450337822010508830754518458229151044026462879190947392636217124210659083736785686647627156202936403584182284373027453540236622861104934254641457918797580042801669948881328888350315379135167068792258446026274089133067053781543939884901782474334404458796843055207251012907775070130220968882884349527194593062495573647059069935326764994117498876442693531052269537954848886535659428502648430405984911205304601364214968228845515243342025990108043702943854077564869391802642706932004872445246196812994603828427401201657383919716997086647808759106581123660371894739505924742856066901486394794929101669759105529434132848165464225175437090936837238276716283247028396243011291688449661623075574605055569384972138907460611628039343640433204652266723078592016752552380666261983962986559022182600896374444060333179489043879875344683514550366267397075039334785664984684213698470605628724281600961620297151681032917974621606175207972365287187048298390664544622998979727799452599611320662748939956410163149164093753092986216323096454587591655446985498882665486534822023729474574126502602834429201019380028137332346248108399277122152413871065994981264444820693216938001517720229609517173918366593542284409983079297561119111510653647375487311108104399741107012924934647145933372070563862057649127969632879949594309545793633580198484289156521906972905480757642052196176445470037851995854701837778972764248499929347585526423667634611326462798690176631376414680777507335640512269211768424699438663812998945337522127154371880082759260482460065755727500691579641671115457826617997491637723865123991296315106405594457462028548079868933588354658771117836073764939463604178015661040605628165646258520799502628161875453563913026997930550970024146626483620122301455532970107776704176438698305181705186337023278051113767136610977605859592941591060875082880815828804329426149157838008084231922731261442920367786894278189379091898882155237320693427052146645076906020559678311987179165993645931111587377821064614624207199100669883673238171153008428640153465657483999124182988614540421475550530562129396044634484717437254455458931119912531884442302912180613244652265530443309679884498642876324242492117119464521215396499620420572825313306983688723389212010888579348014144842463210514238140888834293194870912844697029495361029269827974279562119360847265699702830159108724459124880578530643268459956922216627247583126383322391622588574472653775177106127175809337069398888685966194731116280028301343840637332672090711302054919247871860949112286027558138434250808883402851991087228838523518136387796445296857711197768092876203347047833864340721560442233458363334956205258531947093112085412260139298170970958384252738602470685035952407899676715849164389959199717172555133404704708262686362500298758919671439096321548622339000407738538121540384658899715853818102393737465296848163266193732470690262717649501035082504700769529416648381521580149258546587315737963632072167684633973469792134726140263373205885109393458016603418296170886332785410138889633665565840634345007178029829376264682392693329843458809126574622141389825399328788397073843947944706914647660672547692599968281925798896783762942494713596127242262157220723137371075511938695403338585894599999246034111898452371671328257085856185690096276275541215652536644285062376330743154682184237656615819741273585760957288352087473724615409006062103480667712345481228039402292593536131253728317326759440321956909822163458046622605493251621959629088750526801958543632816938968939994639066904723100655532640725598675123253439364131789274495381274040478514692277938932865068301573958629948113350284629844327833767102857292676314006032124804229120617601004052222478789121862303988238382312023734508911229985874731294295120320296891742321201572179976792258903553567149696940303936590243703380491859652028580282990798704740707016694262682092575030738567521979366223672003201798675712872725750582471298352283863718457151536586822516709826256779225967343344949632279448951828606420528370781265253533756113882928161563767518465918074392678430442102538419257185175077377116099887141179415781229022876937871878188251875185477000103910297070109968929635531720190132564926635895210520560934187664578833785536550365492016456640400408459243013001390174778330464840727549878060809152281188535390273221208900342372226957489611933649916655787784175857748362229117585890339379202391662736798121004659147007593716919082700390005863880719293097575411129550738152714300687901209132477805894193081364050790645609544792697871829007671874083011940740462592169124394996800435644885050402219789288003807772185319857088253565289865870170397195270417787253542753993283854419489434273965532545637917195036372079787754142285389920792221902177585995271371798541071694130992337283797556972192172136775955272827916814109791829348179135120187388251296622612716652081243985232887407371037304380046614701680670976456585221892929117029602506709137582404244752176444851260516014062211368640723680765428639014202866205435371052265032427234918643394742376300599177350628487984372422921834496721029709157924185386459931346365526933061110759802498227165304194299615179056534010980436705632656134007154382690895667094567536273188149377705446826535396772275668327322661966989319676959681243181416963743007409316756021702317934609725283682954562326769837806385160103298911624106476088781508541977647348627079093321282325858407536179070618802434844205595062109854156484869183447555647749172812119989015190683718016024246160506691976483907615276194323520002182236432689960278852594675332802438051831523456116723641623176065215342637774350443807495758636604712980747639676791795994240550497505489407755643360633012567608127098871082924644203598898166637016228120070546707196191067816008774125659891488633143163644268940057780696469563786714029726657016570585384347361962680666089803209089546671598112617636758522892575504392699593702415096806972074753880254710209060535993908546260448031832371698757546728851389863715925493752764331826769511122765975827376454423454556518486701982241557175972865836467109202866070637571917170569763625206041651267898024153722711426468343611629068171802703353208169110962183823869830921956750177199664546475683975674095307045495482106464117012600414816595185706373044933559181075585557714975316258991020892778329851085285406253357330754370116176082960719552324013693082771093941148756633891982956592447931676144866977348178223653861919174806476538859527036105209658132050934331654363419190677264878737837402904158772182600706387360771830884592884232765237191439824951479253926111913266907221881685554469503882111617067170139113527909376621856909855289513628799768049836124322638583765649071008623993295885442496991769181683557022783491898624666281318017314194879067321203502455407832808359629595070675076029287976416148199210158654424982051561579260132557454070720782322951720619934047933621964189334184240369759661688831489506013627798863125261093623047881511319265716847261656295768475844615724946136433598192555243424371459294960672165535505560458741209740001919935371268087589527838483846668467955163144407380782016354626955326105434196094976507565899922578116702945207170975542110849125828775512175792112421574091020325022192850739700753421685963702069386561547344594619534183672910200676607180166804647239666183691551174542725654828493998802543883743695098599545430134687404579259738819860848097028646189843777434232848618915915213101203518049603560539814225795226209775128959433172931682109214485501081088348723409807771960764525722296438246418796300105126197434440216120396891449719373327267494603009571572493797432316281140879773505568138855695186813150075345630835504458823589733569612448777158489645278451887575361830645237138876600044640010957748079268854586451762014232085790346226104036114250833200827389834844149396139849938973724091221821124827790846814926530369812853165753922592034429292144688129497243683866594166178252127451043460686949899485286106792110666831620643408116887907736049680506959416618034681086968508935357045386498341191124634180656400321595619510224991838441744697990583658030580527481556138350251401962521025283702855002866930549867118882895948976565467309454172320317210053893212270847336082796728936584516171578418274149738492551707465664766951334625566573488126779318173682860520406701458041423595410326463417168228525081682866538866428640447198479132941787638530275103245362737177804506788561893578183442789385107049752163829010121906224786487511469161193847040196669172563442448185427187309999644900963223502087170607341138647097772640630753786263168265049069974727534375596809460016173336564291602769016043214861363311730761899049359655943170266176955583889381875166987980123749440080466585922651007320439449245219303815540412113346981854561003234226581499789113355387322380047459183799812953587877711836209476301896434710176065054617353303164321659541330614138650185083252959152844392032456913656969341850812079620936219413294160465093372374326504911038294279426047313557223485274610663574630857323710111222195736636854655923361376018715124445766020475526395150761224102194688257982792428050061834372210406851872505871799121720106354023781596038877345897445116891621485579546710596787203577009565641032708820445194372742393802892446725010332186883841545299439118242348585233389177060998525494340331812907002091071074769791437855550652839979832782854119450443736044250226513088907029962133906109854800961727283268082747151276219743686064686277606977925033967217322493999815353973396345832539795222382526509359416363293744073217825087690084646732676414183096688127699065025393391173972751738647846079459651473404719808028456473740224763371013384992239187179681847225551434244991692300231124089104383625675339198419430206548259688013005863263803429897201713921687411168601117049962176571704779656402478021927246689053422636612038347041804338878389616867375511793632647723969611856240407039059106170124162862467685842787556313713048201008769041467568554102903126287407465736498592767293614271189639724478287733590280606539126968895987699242182700677608115213647259933967912957665236181351998258404665500867325454392251959248130701717398668951094935807034063887380529348515875385118262236500087905387058141077918380475096378963763312713957996240521580298303580684812836067970535284045823220647454586597772717474981823689096036985612044435420636593920835042865348036976758883341250564386091459050712835799146689088682597045712653735453783472060888842366163642786385624927627966101201484783994576270190495129472238009022301290971520322549060515278068777488431921038250283249883931762219574844162730236096712246283925027819303185050446630989221501706604284475012246352513469982322535410801580095757626722203874749788691568395178124616796546652941107365398753672696044626526341200805641251652136122143783954073796390109005393550016743803118700111810287419397540544276069071407109435527350393222218418025064614329827715577852487171167038440438894101150800389824200280151155833051080219814525977148208880141677888263488217892564123264347365313685382705064494197694009892651715489054635778261516008501727843527547816599114157810335552102642751292770149895123805375214470921425363017124103093394795758631134991487100389014505139414372438389166649570412773488318700829545650044011574839543770713064510799856179311329168958628771739813380393103194850377434752787183155942283694021770280028333451655384579291999472315020799371643922953696350481841380776403038884638105354121497330051942824804985416992600923455546590095984979839231988339891345124587245237384504912869592628272701126004555720691160395381259788437117784619477229603744526639816088862222936464089109427532588598509929612277201305074260510748569494567887000842111842564816657086346322330856042495172778246113515456465648596103334370860110293338626034853397524044423796246709697452798951104672377142826558199060214045025702801785555709410600302525261074475885448716727285148141339915161809321496889657156001153221946916082670524039325667793164315462838722559816544549600629993465092061265025103075632743601307449967057143370945010394218519450593650451137059548254924098065866242839717245729743343697836281005762194955791163854890019995833303564833632991658498249866860806882719557515415625088598139471276322355856269340766844344943453177838023469807008532685219656844743649106589653857531981600028736144201158962049095977681883491187554698269318409125617252017795536530887820013456837922449388246785213201668836968743795964875820854118128999289234085444640034197532549994747895313410051865891615191489405182630226062541987539236726467625038601587880014086695167161547695339987124894498650191826583534382073839938909664808019688532235581853080534374311640316049623204822430259540482897000324100218626183397730879367617038710432619104593079053181599162918017204708143195289903988828192583514462751023490617640942090116334806336383913117060814937367024833432481434233765501267109722199884072028732348938794941715616714962239440661168612706614788424443535455318095873351934208949762753505471135284117071270134834733633751691233111605431518799510457993302928240019381504316099997358507684493312141062600088410385236305235783097394996511988107826198495582510964628489336159724647407559883489756827584538440110176375188064329467948864334436232015127074519818138265629887931583064088872919841231053178039116177009526068980401460165392745061522355132701681196576621980545153755036251009029200095455974489971562619584679894964988589964243851284970048924735558004759689211230375161916511663762411145860303480595186048680955619470972690158427743888512323277419951203382580766852559239822425536630982529518788040063720099560843499021174383328621009510359774485759826271790300097402804461377903542686017722999233923330212770171427555515885036504697966724423746619111337996939208969797387926516933415061136309045666752998686089570757516072918508334061224883688425995216137026815906396591609661832844743817366663525598681126963357887493841437492699011088804208789718827309241914995625158359337432639643228056492822352803008685463908987719768317594569513367497310045418964336922729447885278753114657415928141073062708872146215341542811667111079761071894800828874823053377012474621403801478936806497454269526547291314839574854986615596523537819466279342987348694186021930021070748986522881129948323943279075951653909616593023031776652153035878543668726393120433027704410538176494944193017973921267580373130661429895566550491777406816410251042807841797104679771538052969144062237438517355494870747228736923049979926061718386973870410566031854903420441993611462032084023557435151142115241258976509445904701817979457126736542157171244407400006137337841247398844041755812277665941641674524252442977423097657059551007877995188532160522290102768492005897404591874716836030619575815842907361865617071003844575249381500827928167899355705768681462005707236369043266648123883433344461019879360328745431163113391533809504273010758832883729116000635319358734651723649841361531618621341440778295357150454640025488140874780405326552403532438160662577235452213552851865894535725816840174435083623679380926855612425600668460035857570591633307611230762986533152727751392943940246240741926959573743906707175968407245259171838650021569560913493021565207205915601642277488988280424751469401294824090709481578291733441398646826569306939058292012271207295826357213362707817447437047492931224123200947487604075197264438721922072652714724118387230445854246668873339852205832664568535663090062841271073336468404483232564713114939531225290698637228770688856009749321479989666231724901797005434307368643124270401689614231881153045697683154958514230487724892112709052264340628742691974644780114850311316872358677555656714130888849992050334401732393024050162861559483269775811395912944133847318924848498358932806157838186469418448662366644217805500753980435474249449161951412631533407516635030199859385464039588255203673091787306845546261804109712102717477773574162711300303048638328564845800000379682533221435632530577013716492011217286875412805176732197994780383263149254027666344064788280129132395668010460166032025637962903483501002762961078402995376912127837983363775773522100855000089785668599169618718736643702530961729809955105985557993215577608385232632558175175594322458011649241229872953018617425799553263533050829422361149791494502900648396518324261357425420189247888155385336790449996510812832754285059685762063339765370586872821301795797226455465589385486727421912547106068622483418191896867142418766030153580703751487992828314784260624269251887751657304246860299503053812308532435871138054507231669546298890984205045545448830270653132314250058191004839015998307338198514520021640626808688142682815664184390975958792753748006784461252821134684762958809067425244852777311490440577833771903957031536086207936787441863267921270468462729155602745659554097949456799410492799374902736716261152402521265308379452172087470253931452576712238943471673738133123508467948122621658510865025103188565122244177503476644011198671030640386485173774207140014173573567916196533875254633259111276263556088292976255395839186653928594248167715684182938498446955806702217147113588842041758397426583931099034039074278911457250785438135290919194056630840057756492262714001537901063278668248903249592286936456023650599994864112425272867621966895794181884238351097759694198929466315637929482130213402485343764228402647441603566477815253027973207804646203050865832052566867985019976925480391390972768957043176849857271604690689987888349636550582238939874022078596406916973018005379986886379660125239970338777061216043986565478676607520743262962831452511222533527526126307773924070626449362275858861339555605560156205402011328342297311850377070407390739700777157179867172070896433635728862774579873026014170525353263216497439810490166271029203436603543151531415353800171748888002715731091068965978860328232899750094839955531088982895555669650673518688263541754387717139154305135457672275119519024160623032917318105457922181201985114745164358520164780733254101629207899880299301483012627158428156987922669486043346863094976722740987307361417184511322317129020801760071014127285210340886081462428356183930034490162377762664968979609293927254780238122933124907021642316378072110402779059401020258251814216078627356548576572221111761021008188382743956717779386821536442980094366509820887600341434168877200303401989161970136970729217247110280373997572052571464676615815805118805059801524034371045040733451525791171666012220463783389536521880691336239340732787516064698254677424338795344592084792671583765202486463091764924855153743264333212728917975096253350893734953394041364092313211559569304092629578522454646142623370900195530860907381757162517493174030451135589625925744386023253575276684007766422729771870045698287409777866959967309263963953457162400082157561755306801378504954807729824969223604045460777536863895262290775385487380818662350161641411412647140488948414283919611464355965763863924818947417904814831350351533475851692816713988356931999537149408052178383227985706438898380191839483772700050280425544607522281308833558309632158283786095172524716857479854821794284637075136412874749424047163266976183725720465028421099893897574323998802081113892447020362127866650095866082646022642093669366803170460760416367658693496712257000789458013258613901030841193058493189689930673350492699863683032576328404267733816365513973560358300890368638373005512225106127328723409213395983843258385905708463672143033075757563640294695830562822473098373951317125351275686518431290442400969150154946069409200502759291245523881434655577183482211275365233757952483576472781739967031745571069491575118772848198032937519904840859977457640844737242659681825652693288677604601800746792155947644939127351571629991574303790901678505909421630568987782728921119282336107528577802460292066082666627380613701243133295379657852714865485432684768828942154715122417437932777157948403722262019386016179095284932483775193484966444378504422789352766870650639452033609801135641078025842394450630331709211428443991579592495058404184969152253200724736238754268934707222049462625113051740789818032172373317264292430942493282400922633542381232412617034848237619140340547728753949856576889758789004794568736476261332968062687577937754503296642608109351971994260547684463579132643713928763785061247054428660576149729977624231474117950334767338215043194178980439967235894501535586673969138016093443843409355233905050583420619635064789318024378771263814721845036545104533399357902183992280829121328838120197658866788427812424139769393204691168501467374495283179150973220907740797763699071758510482401425803762556504082749404024863843521398692037243456794607961540949164679136973120234529201724296442132942433803773845491927992240451362647973514749158470316571727220098088780926101253239847473514320006375784396505799007755333479773596595851541935055387226048726547239921597499222700249408647238171360450245838141008692360033544962779427599493287981852164077886952360465823646637479025797056229984203539457751550359857424218064780127622335358669842768642420186066947526370579747289109808138446595887947858412120961456962793760493496839539649004302874543214362422776278401845341076675585947245459959159294357864140616957089201137909861897089795176089084509366652238872159532216143114951540864519103801580942204755786093590645784929373874614017914736486974321798835923399330730072299456243022645354801237036404504310566433491804987532856889132553550949134887256140398519786819409225326442176682008787149519678666871483447866112448425135009716766710429157027303189009481487046561325637887282126732521162814411298624215937727178980194639213852443819109493316121186278063204873225452528050026244771533845142800120236612135747787966744022250527341268382679951594479199922748585139057740215600043293958188657128649101808946432650078674865370493245733335957247621911358679221885391358632345201513761975908615609028439735233541370789555786341234943454389965005237322967211961759913892682919367313503556427115776405819283882185992437287745203984532558598438634342434577688057806702130937495335110301700633475619961777559954106456031246209481238949930382137508926931204795908791625771655601891219001060086957144499752122494444871139786214072126575108914618065855095230777312953474134068207124791788273482371809171775472085065485574201934536616736195640797969060134382791353567747756628590297886193390831123842858954096435117432393683822343875313893327076668431957691050225852649796902544956307900860282266555505550642310099143014548482543880970699473239229107584108640125724872739406472392657423555440860329244648882221949417047124632746656777804326504962039400620339127143723765509489015767034636035951563989364536641507704920133060516663886038394869852541275730986758591579088969931410509530683175545712811053411002015669955053150700241914051303038778977795500806937402244564035758051135280143231160469997153595106295016405308312541444290809139405752613558224000502130389428228126283606565998387256982550779192481541768870898628675731158996319251663478284539086243846283784212628061120282752363594879201548099238239349088266983215913541611174046183860303476188677503926578740918410097789801525904454912884392616290426134006049658442796899662342624749419853104764658396565215293316723176327779841204438095955497654655037922198638562195127598720038179602530503239502120468270690684873939339502626005032335469188270197497950897150364046543413479078800230718869391734712005074290485363323183807925059538650699813333412703414128089902593889563524715300872086657247034711366795340197979362253592550390440243630570101402097273055893658048689256986138952962024625454029511177553866045818331857999597974112435128660636057094311390720232339668056025825862137448117532212914084773892425699709702201139026680625320423563164128435935242834024573713470073823337699318021947191213377387487007311534591955944120491529059015093174191755706360893407731859683327420971396049360204333132901783024643814059881642546913346977424180889139510137067662912585850260881842102952491286156097371221235827664373093482264384240760162460239234608145662565359897747444035290447080683301673787137221415950254225858013138599657707647379916235494284124691938894511297358375780029281000032186559015956769855260890250652329376520277338235047584809098185672513931304468657194999619850893223054101534357437766109321413769508493299705609290971797186627923172697001535969692597558481094490317633108431870303691714817072550429225710532450538016362065231489370738797877091295772759366008430009697162510303623608983779996859808727076301083142394932097317992039423605771370983506408424294724994805757514541242004008996734494034895711932821085454251969183588284138125119417435864211883917721729619543708264766425972521207165648670066181019156653863201248947456125964938135200264985131078117145966373399435596604154986143998795848924971432907986521742968003170371419112538805872495280214601592449615969712633437020967769325343477772291050301712047585187741396862562312515436546341401195443545527562807291593257422967405023800452126246610387309922891572011395389540164063584314507451945102430283840064241226924724799129539019738137706382787300698272658965613483545704404679549362281630999557570533510950994475606636283397194389160295053942027916818526163698051930552880491943386664397008293866261808373222337168702350862944451940275236855482283752709108983163406817427615202869129400971413357413604523499754326094345845092037525967571748504256387466390443902608284130079503837992271751430566562030677360003312261605941986782722439579523032030039566246468662218376496587051930622411549339420602540797580566291057710364981622855339887132889532903561503108481005121517224788230675475831054476275125951118062484176764631265078975588145479942267093935380905897614689822459217651822004268561830315361936441485132015727460094403243495768840608042936529989668013829436842299574360671688067155102774604028105456411768686958828751092520718221667251634948580662866031048899561069494975064420047013191980070127071282140076499163526823265496820348536111752333608578901739148782167378061039419137025945227987486828961547908439333669893147323208523462400917497481021356779263673254160757991923637259500775073720049901722807908204200245807868697182101458824547033617873875674969128487807109129181238245462957046036636791496263586562897815136711572142824098073580024049909068137695229227875581719323984511650501053105293152630670540253246191747806660439146065929362127049042213610228921339438463383520896105803481991345493215875772784839987422996479241076283116329886164497620266945946932745946402167384958714840293121403726210549033577806014381373517408466745454530533850832091355851832840492219188134640299431807584339045980406560197253088372080170457481434013604920544681541049505722449107888742763059760867584427257791341657972059068332485880059348538705778822491216560629396847548159977656978427841500741610935939110466865178846555371487103645114529207885039201055153183970058282074184494360351242246376747406985797972355181536683573671168939302314429700233621671893340245820317998515928852856194291337067729946363456484218126503107712657103177290940966416607225687148213248174341270330754772858593952194973901189660751131317333405087294470706033696744952833216597971107571786599036182527642089596507602618151302545299615287167569469403211861775752698713456739201438552449771518491641988445356119584473868986847533510149484708280500976785805817663825080944506110335651191098845125817825392217679450929293978022770249169945743053668209769577468626686577474735978485995059307667668207214177991148322109593641853892627459873456820184254337432399850435302463626153274666762631568918375299604120270099130714419725160127881661177382223003512667368375683241419778428330100122811448755654285245548762888180114172272228287379617913517710098645734148362787210202282530557416365133859146229472912850434748534528178201597556201695796291316492753591732513380438461672909311033750489674908762980557387434080113328762337016358903682198346486788102705593570742077822379616487080418091662020725239719084928036586382103108065612180864656043810096715837698956887821424507634403336319213987157152137241906848983567817724041652758382424503880199870208675288387900878575822142018190470400250341562535126456449976032808073107919704027150367505534109193191720635160469113288808392873400912927622785992029910514360999999417803095426389822482351576352168850838570810252881929796670304272796567410985477570380552958717737915513890384399438302517285363511046828815456897489519260364508464540046265141846115198426185176570362010820364198103167767910351296786710900518137912004790426947973292299587316496488187470789267155010171749232426080830889395592216066345421745521640161795158009180635203719268386749689506392525910546221040389970812022254819226533672171808413135981655857193417475555680923537820534883984477734918943664480233545677181017797617384563801178180686806317693434097716624997479428959247587426769389663804778176566721434013668876852285993823442926181533680934735701998090754551835139959921739795534557596611261180411522420232753962455813959564519796086261249649781443271346505537821367638200559745675803202636614322900660934534007194720303691522249361763491629639801130648226423858743614402774760717727695608005194103040219095809698206597670087316514433247492402830636070562862538750780526519598280780405202504900017451898605443423061757670952467751550616931658521801126424920688218359397985166124099239634813494245214649378922848459453133500366863559457063181454257136941687233334003707045561998838787853034099492962795618780228132787788805515366462371857101329786445046785160048008210277112133175010273274673722185855781918434720877365511393219705463121887977052637153306650543270738612702013399058976011209190863448550473837630578306196143109048194292659325968278102389968337078209031405312947721707206234263123782330018778226778644741870028650064566859868140068438923256230736645738345745617318764977353403623017701043537704867601361967618416356134420792971148205366671347889609051071822066898718245479507854392880771822140630055165761466703004927222092800428223603388008484121319449431173298990110401520795829972991316583578405643643099988584685556899452234281938962125922619118474660461929137855392543090243887782994015980666355266178833606277385984818506238875293550663769639149562045510757875425256883203270690706094210444734006652308197255881737428274729450119640904130109780637877348865382091470577908891940590684177723401334945229146564757752853115446667614414675905540610479996784670120143871676535157708454737386583148723486741872490629393130609397802638717982873883206683526387753189305738221250458512898161442398821242331050389108012525614344078334654284834450337724819802743308524208367884020840140840045810254922397780897069163602137515884039242603367945375864998427351857224631439643618046311177266360443398227630578722522355772599012409983148269154682600889417726071008322878593633594476883860828418279166873426344653572574114811970523309768854108752096654773813636270869366809401295415209236271123683694953748224952736669144001455531245992785218128625141007379211519236529891913964736550023447631852641128518586120503387551628743127193210491901640415854355731415135471699858586200408695014753876070123721611446910866279731226632078629664122580949849425276913677683523570602186402067454067441722951653581758214934799936792362673975269346657025146014306273974664423933267716116127890701017299925263063576566258817785770630556818460376511086429827632716473625009674062466162528917291663997008609698457791520428791578163314184639510072445697729017833409444957410259255400016548816238361113151504317550284660814499352215308076013184042185190680999456277164245116543595786537585946737752949249270858130639242452007061900262776009791449861257896860117843263473023649515761817452310151778398412785093503154936765000152703347919146815906726582759028372358550052329234458126288877134978606417904671560783063268486195781628862111283916487804993738673191323873824959988444927232635233416525445535460084956028143526742716558993072859893191478075117017845792534476219843953323077014108176523310918436039136481918565920166771423602471109033224027527985710144079274122200813699907971355466740485002509711246191775751759283320762311164903199818600135712235738604272556190734826935042107498393907365448814886703397643199802037099056768068182559968936181382227882589278476680710711828270917097287676685660940491956768652466319185053722366673893068655286338796318932997453165867788631164935126937767849746656935909478996438739575452533382176326489010258142500752836070332688067686524119179589475052897268916560585373320441399940434584070424167640802620649025022737309689255216573659108605843936803814687328921309328198680246696796309322628355444607832544376495672989685137793240516609927967394372315081231875260956755011289354349930652626314197231183174713972746021454400856173071883912676252614415766209946778618859504559650626821215914163353782556804286323452448771930347609439522382197336241608465791944943207593756985883354897375675841720399989182686303414438696966982250537761051807120846918024768073522681459577770613453965505465708779988154227268277239346151440925675176199001239714060435582390394747282143948543585544880152198946346679007380563971597569606337605891454402747935388251914418857253094973090784560065916760688256317880860544942851190160439810176882808655395268990693374785975860861880165701132367707882310975661859913350295474479298887669746344185590087506443199623731992939039612091224133027696507642417843659759865825100693752149842064067983128231295837773080418361967433231984643724959888338322699137005815405028705897762968315902310215342840763289618189017438951432493973115273336185929873464848531846686540703248278066243538544618969506544502094176760578277095435292135787025012526240058900995183564465289749058515544855392274866344673182986678302500946014339010255297235380451150217338851535003884506952688313088779216222843713878860883389821872473421160926673526441530393012374062032328807198302993364035527531363924112321340436379717468608528895581718020171390312197638999656426135472552712858040130848895642975366631032926297113093051514702031353185389786916609867967804086786766098650158582931155443690533937560993330848521027852754785734895194711373747483454191707038883498526064527721515368403784916799343238297349184257790458035922623532452523940671998565302738526967570171577455594777597902016438832821225187717982695524529181402071471833156818658600856635799128405074287530123827316992044725933314795190419152922093524201797772899886269165392179046641034416957047185340653504522448037848662177175183597066379404574111121000250050652421877458635418097713993816173773104130955496797533285484909070601663602783281261484845903057421168142849888525198320686836334825413288176805211322617299078376898082232566461781739906457867012202539804183966873583157140730044168961300347011132429831834879495123315230959020772971195550444570638785721546521696482067783625900183321269383574303438841482033129828665086253898461996671441469453696457907424473914170264279168257105831022057907034457316779543358064672981287033811615345985546009722767645533904138799111485412756313527458280178750729636188877773257379223171963235974850577385372017142242631608708687825644363252026433879288438560971849549960561639496391122500900421749965173585705697215038293057921744517921758313643849821828308027382436122208893788996766369906435131660785746912133069153256844095952507088851253881748606469809182600748434161858258060068245254388442509034414899658185427511033344437450119156640908373024501712042778079223420003127695917713718691965950864125352663904412388853576876572669633426354235570008519597857684426159213086394450540727973556405815774753516079501387957732133325162541522126458899128042856202423818135724471781509050770908289646714893375809636105653566704075208654764681412151261234794455383802352923295883792560223860643474436156248231920435534628644854170758660355013216614516559569147134675061732696808493803047609841278720800239378182219519623276039398541878225682502146505063331924561694613248789612283813600921238851266922020288965605275346989707973538764409156724592606836537408770225937026718808765154193526781420371395282839006244744898395577288567960986252649252222290234358943559625194821423144607467693572436151776199668449789753095276878207556812522949983194827901997662857287112605159463995510502562484915063723107578495097979099425528742564898336233792664780815274587150945352967635716308150868981713454368625619053623316665244544630404224333921885647675326165700385615547744496352960026595678741347832291415893700846358042788812907601549603416120213241127048504573283508725473048201705145032905556055568366547188916062501478390917527983062430216213131870956638146416878552131831544266430774761115558370524624719633795820332743752497804114396838789612845379231415891768193364595643530590633577493192871861670011872257758312638954253197318810839345158375616135572722514121840855035128989765656436233856286780439071226721464071709605259743219185887156377992361070191515954466993314376268941445098832388614446307267647201041744832932685739809703705066538421164760205266941791448568711856914404974118901907900924433787589385543187950685428870508845778084820539744434221193241969826534406580505482323747947039676854454504125193742591231106933871230719520306349819895357623662855503796569299687305298710270006248247413177448651124909080067430687766258848071542686946486449312333944572238779019896812494658435357309486212860917997344803713483846247626830047964224816245391180659916274754339189160030953210039219516663368612287463938063438039013270745621128434849810777479289443196440004898870055812054585237501228428611606361600083383943494699933522552168105366581772720203323605762339487596490553951626727183347295631527390077174108108101378278441698545091764044711622749551806842437894829991962644842755910681475492004414881645442953127612846636651846953341662181302058348131467852196737350152578769588289455180308557197679607071044758485308396467372009032403811062529114607484726897551986440133559964944355254796806463198531154079550385731538362434611485086418103583564656255001608860835685863621228670343153623345580441040827507415962576715028825958775505789664705835062319188544843163839780289703764169383091884090874660843711871366561131542308246698492933320235737794045156734049758043728289504438742542074597909112555191853347958246726206162798737294315152331269517451643454254130626057250018563438592911059141299827882846759005528874822134993782675326030061677188045013608716522536935136213365927089175831275112940832494526057259730770662797115899857405866600513921407216072178095498569231236253272434039522350936584701130901152161155839798466439199148459326295714820702892050623788956397396623544194941959302759468226727075961328579606994453244933757759028833545191686242154466732465626544045333611980402438336777962761075876108377800184834889811863544547196589968355880820672682410437400548421380042882668131103615092869568027824587857363265668993660221179168962069060377288630925991610791409834558551117516564522922011473317972251625413843373184404652044839040397932457389898834876891827520200833437483550861031301517108914627485514378966594859943397175202676269194541658280634956555384651579549452448534709887032571805169164621348845509330487195501682090279438610803934665082054761399001148067703837353811192720822405249967088055665332965487456998500528979622342419777230424544988198015182241558366499246065381936451025002200588649747558021208204901090981469067139866799434555908812081162099014587653376323066534708081077155825251176458819189049380457371097092018720689021345432671677090540843482497931271751494161300322989479159281104164436619405510651339842787844215845720547531470264076956873843023016459695117451526024447117688580171100489983270255067536471257906545359382117097742962902861114989751128524003777026204561401514577350236922875302420086228533994630400681871301634137613783322777249048592239456613138021717736971711240091517345389934698444522858132236349943383940047374309731639883659149468207412317276458212360935417004632924271933454635277163553459152776917320360226091685027034459046155611657409622647176586131325801829709743828917814725550884953890825480962911420987736767486911132167290615308727012222047612001410031703580796863694373263305166234005493512285160544085986943845911041097169051879376220312802914626812957608800136339049844100946432436337801920365892767364638880960800692340254094770978193912484526562179834283913025302503278922698486179276371951556404944999187957674320233376527500195584771141130335080858597988949695015848932293654477250624881462065304951385927502381598715085602685403070786305909964118462272762344249321327049489273786738212349913420686461222214535915322330423427410560975613104517103933856110270316456717461114302180989275225358156115705503418001252149106148619249074919278014796490005514261081854886610606985444624101837697027289923143765366578815585511111237745503512059640875057278060419013026336065299225613048438401780503448682065059737780255527298384547978750112753476881509823308586838834948842487184391492873826163646211402121526220534655578764526571082609225369229089331655267089882402515783457426033035750770932656010475609110201763425898850338669210623718304946874334376869578004932946081291273423732911736848499051459064494232767158021945270958803773117724880529958967280783355883466478371795364007417862559707955547175552019332105247740973471113905216577576390564040484847110947434615250898509816727712861042547233997585643221228270969014238908710608029344332060049053847426556465872189947019599646430846924001961011138501609096746406274082605884632827405234719498685151142768438653931853203588637160697275376251225542271499812207441590738565472248055120622859682222357130419631174621234557705281898986316342936722297230664788069565997568965752378804859802443517730829296707454580873982598700765643077192594654318864962467306585491717486015511350944360255186623509039070673114742902061359015218399410082292883163346698126069388823185656930669623489363588401705019274716666497334820442526981713324049321062464945384017428702499922122991753959408784950225681473556713945843777549279374014888795484296297674161744565009672756277268933375563136470768001447704031491969817107676325289576501307609901196367020827891822726463192905808341357007962812553630835314723227998952591172283768171514781029858710244932806776850557460578201226142122978632296454091236335896867935346366744843842862395157657429979688467665131420330939684464277399840092247851312316259787400562339946749596059338395049385409488762423112053887872860469665417245411943939164198825995445978616688097598719909986765672785355758450256854955131088309973565422136522454417201210738165726318619349117455850447211202041436358030453266006505802111864337416181327675798692316295346997709807790228318531895788802201666892253153456273506790625863644189865477005352473859883078402120211472316526401058087551718852496691794810802522608743527358228518139598614322943789592102690173485711437564414898489241603507189794645002343023020803602092687886395598687596010208195648187650452641769207239463412493968664211271102581774718292796483564585064957326321261112939654952600071170493925987862096286130049964807837716814368431341381230303697855916383509472380495391719208432846183403285947286067324675524163598324622976458147627649557140108900146661419290276091124765903574759716266636888817390147314341924300656715320051517468132412331413920629728198094345175782285008783857108120807816088182960978036819076289380347987556070527722238570227202452536115601428104549684349576124320711080558002699545567580797888440123676224574178366187432348438407393966381725198368529030611213477601000674170677837352347280047661285417679059705387966960245486709621675578154139427099842470929469914776651193857659647036545692714133268965690669305728906655202128504936592740984882237785827553861463337689031283759171620718609608642986991139911360971075968019073497854601827652240373553187269329867965381758277705199402426277501149065855915135551431725173729314692447737465112206684218410917544869798948054618879635792261691860768766679175173015979535953851422516121834622777895841574708461884466360220718989016981745671314489032629558796316335972658001964642374124991314655527602044800893394314294672281020993336404175767724180782218477566459123068886883174045520154082234515774727759106151935937652875254785596133317019237891628262551342428028847580787792791518359963241514687694031999723650470136100470898231507098741163410653246727595161684993224213725058126563026018248819233455850306610795834950785171753386434540834079594672054283830044306454338909652751083842206879740123731547671412212277762180511705734421381135203539531147980807897402543597715321076748523889549570145226217718722004547264633787247441263271725413502510946984838010988892350277869066305470357790910465803894403536155813641168689065880700828115458090172051151845857242654320087841307800327568086858056378558350274534133336575462547652817546779503277186096761788074114182114590219319779965254957605894375261098519867875630273042135986498309389207823461325013660337864923105263274612644398939066918328016077059544243318437084721713118976895107518243679227269806229314131952637799760655505841946419285170242694424265947881251470924752173880504053481116792764944613975343617437719739650476391039309528554278957681359105937522718359869249472820124722763908680413593167571877713462600272743543884461672538963652430026490355824269667565017872857086152497406075026193157652976436388636633819440724853057459263851708081637872632162299489182088839945520608636876752290596871910115975153965296970991199874605438184569398052169049875620096617246415557463368553545616180570334274024830928294096539191970225503116952813233966699559821483307327156212106718949864293655344031066438445065443181961024730475040740282577722936558449957278618298937988595700616641453633947312445604852218029691058541630303399759851545610582684937992094915316304034141117651569195042325086015732114814160968152699108993510155999827493164087978208650869179899183632878303620553805053301397106774918628048071992815082576574935396714493415665501731953488006510344909957452341764524305546873578784360502973080641347022214610009193817437808489526153793686070151747826047790499784881238481479263489469947074120702876325930178973088142533539044837853475639652892449681372370116265614706041370874677773372711483529002545163691295272706973244744995730887793753877970559886153732301393429872912928661880559101028869999866700908916137610605883517241441856525408734211782581897686376175785004818585425639044066157265397514771241219672457993065699386757379536493068545764778276308882377400406021480328641691740122479055148343793680058218265958408940169548407973473727266052781303217810732719271845149111137313323138135427643175257048429741333846136990524072352127128391784447682692305300746558946055575508382244042398464051368541544470581668303422420752560513076179483417300045737532164607580724665788576628804038714537641447947240062228722878956144310606489734811272703693777998314542080605602160789206430828439846936198014925773160192660362400708828391941400570817333569656990527323004409136412221451378498233228717746187427506962664438979945853369033521892675235060478625625864057842200685634108436034342726696285207220201739343745728297444017277045644916639463922647112319436414429454695254474666835989301740696256299693218383604606259376723479116203176565379935420357053804866468815396560242953143248013106367094630757214282742344071924276285734337999471548695420959933559805567946817851282172809538721966045267832481211944880998427198720178555909407018154984191342110330931533082504829629444154956320927342181146501052032086224814996044359205056944604488227443064937875680114248289587077045126479137591399498681763849215862489484423414462534678761982496258145925388443979162563703656228924920705190724189029955780116148946387523964587306187303760476762561359185838290414652371512698554915642188541866866002746675549597922367536484006876722508018825592010004797431873859891112752040449796603483709143847313091225766606547363411975725551515730828548906957990905039566269849778077722432162554454451339134965252526061691890864593608993415845842944627518605588495332063381697625082087660388379520475250942038717765731143690331469762968267281594926171857698622834919674730429569978447509513640252345802848755892634441182765688562910031874639768872597101195550386807896375038352001821806366159535173490164074945275688605697193945251981636520670720140598728332839136962301845120044557421342807474625872977944427203258805607579778199735569107863129218710037407158583834923602970975635515414475229305310898963573651069880171974521458211134044781979648594825367663844127106867087867403218578026166922686708849538806202220887949865031278253174521071477822994558001023278676762660556660020295634543126680834641933617353354942764548313225401126685834538347542159390176658444701687685539393375800162178796698355090622038451606246293300281834577536943669840970939807376697177063498791644656110635554014085245946606008413482620892416112525550906864682642996009346857214365495616912588218503291097400872358451881368941041987758176291633864175967491466049642840158322407855520463206159623237709328744359026151701722293942440590331656360951740493014979556816466145848175687932222080884473816799286971187078550352420534620717235706314081539406971856311401304807966935522186189343942942898608836012767499142567928888698209202167530447659149126623238529849516290691746040041724605720931121102979794561731378142323005052795532551514767470426985731736634238918769686296845198549994982710651325723669611488179317378648166931505818993314418498923811696443591946998269409061630703330892929134706844349428872095755896750541389146411762408366006504461161372345527167192754580007003549981395737428219509125006641722363045086102118636525545718542369585866193017147616592801017152087264291420139905387774436323434710025995204903347198889304670725032763151528734380215825312702619134257270696264432408217518013261084703174263263726133061972744086306302099004465014269430038125084848199606341585773960805790641904895802551969065205095058504638062837627806902942898019009324062143007102032370581585662244543700215835797891913834327848380029306401900162712466116095848001600302621575727606402926690920885438243645472573379734137218856018523185930047051267722504979409947483487105151295638561443380599354007970457498325233866716721154909955105049798197537030415817872497368475049398163577897223782769326910298480133028850531971931294361196283498446037295338000771958628551516442976503103502208030844284237324149770695763215225273754482936000057612069152404341139465009186215219337414570189700472232956666901575752330824388916030430244244714075744850285185125247766941043158068178607609495548049189219702339046388960288369956966051450705586109399484796963423277117415902989442192260923926027658462642395494098842305820475484419459044859115445527282139407081617305893732818294790626991331948995165700622201690346025650176499350214342413519415556041983326433624530884947089674601055048292853455514232198031415082489126458284517874609031529500850940810976461344209871083046769140718389693697524426286397597011145995406300874720262159328042588388679290264987309774573475419607033613785555280344052298640554799222366423528140716309054938844751200900186496886123286279450784111363134081628851741715339428050410066747510585365212280180544636952602952212203303363033272896819642588830429442080184621093749276859671429940941457644938749025704732252917986680183387538762869223214655607610194899251115694075458002191417856867707937268651934512546368950670952256114964799119813120181347699112655930225519650769794065079764206633827614096577476528911778674928086218863200823153816875663657865096293086185058443626121396566848191495622265876689123508034865797186999079119868461335510738360536639995911054666884851308225079457298416055364602164698525078021828437883302945461381660176275939972042024272314488621510590330840579934337862793576088791433854958728993266573797466789051247804289589311087376868797977797666164212457202081911000902655530499080859675914118476441268458879086054211539300801874766214976977205070653025956029941926469830021236081099951143558688501588860097643389715544428992532728958733102087829133005563473624185091832604665655036585347341400892173933264200570637965006002672187004555436183793182592294641555444000977103254639792531556514252620597742443030297004565603789541813648343365318436775740173497889829970623112211062036884477958308973519424677691638815429241761462834514341283069747619312937805307635583240796541394075793548114884905481058867892526397497308739889452218169117960416861705356873840459354491719350529791162153546689105240982483009577388066876252322393725347116001292773313611107701250948584340864169264217113658931939047661087617712658382157547077527998826751238349778269427973173784051922757444631024081842707376758894176032240893398962839812425625009828430299048507040105887889477428660257928627443803159407242334968689048549429113082954658422169929239020551077600361930248448375678911806621070433365837097447897442201122390279126612625677049337392957058490192087041471940062249448660539959447794404334276616145508605496132999074671067180351963074634771951072128875005678748453660650552920282877805082770793647273833488795864733504466485082549257531914426942833065923941996543860204903860167801927067185090157485169220337514418102180386346933411778400153881599654355623287213427884732123303306801005880500916894971925526484051389199612854618130304711454337958593862271569389119135947157684779973096128787697205181643946879626157966432984098737014757428482503965280487758055973210947878177653597456093664979712650986245736631356485784797876851068922228967347511977755777515804482231119811986674392111497054057530812657254995181253608258790084128629276581553200862916475468754616642232439723172176625279728582118804265436750971865989691577399797323226171536272835807408977090096982464629473154042509161527856606063260448289361118491712730379905041875964961928079928567891261371990362405929564664283975965043529706103601919218565941190555502044252103820424653471387462160638531054572197394420988275075464362687520922583343770721966333909421861912507457043564645874144751385720244867901998023000049703084631878816992911993884416380516352400407762385219300491083026689976764252784322697552614682725052970293882946657136103846321309762609308316347672630628216286505874903235795041215487589754064444825093131189060166711971359082607206565729638879233483039337956624843022848718987685459440874508056228477715917120596881948602696434483262542474334959703150759219064751111620887076396831316783188362065201388958251877867140424368681007676167508649266082389917576887931667464734887714624856637869290728419119591748997717255461435874987872761181132175367443126220777247226059067417942584087926213258945240394535517307677880430475485381702648368921135381303168773856797099319213546465371896917999993140339786744473746151035583276912137916433022912398706281361191125753182581411908018806554883565691880084817615053061752735102234147713439927106799657353393839838867771598995958241221889850728709246606477644232807886076211928545891892339407288238736216125169251933169116436226340904772731914248965329438482537577703339472675344476361749169598298490345038779419396488291715385809919156012150033809173549767336518004595076273159259085102234797527201738494236092115232051986472621124861038734426173483638937440495987365263602347834701949690863672313957668455868669046086930467345415441777300084305930421866155396772456399553934548605050476680836921751654939022968230856091419804584761830334597108768881025521273772099554281677801682775734237794859366827139885500651939101261927446259814432125829019418008035748855048469006051019934454163370896085465781197770330071137638565512276908260989493281456186238969014148020140330879923526353320665017627033579191677007529607970092113222090927673414947370348936112904653465825947985778466975367230391551586104572828159392682253999806112860092958140068899237757364897106076378407232930389255471032741968525974816608655762486026920871951208270496896799665073890600052350837814923091313292308462830275971909159705478550111453153171717660404418352761188654028110158577094355722166045418817815496394470675421203618753960638939176395752733121587315795872669529281128676174730880898033113061747526519418025050279623338498786222350563855663709250486202260192205065685339946594847738240984412444353202855131376313600001313197520850240980157617288349604090534781117471120570954934961346788516316042213804711731556018376903066992122767375043577840511679342435638084000167397872349866264538913363934925807277872583503376535468575402024873727181106932418301785833391816360371783346577144717542092658613083015149894456136110784499897015527125405730439569891154978098702746423492000261692229393192013198583890925088117959334045621404827532116580834893333691887957576273478400997863028757661153847114220289383746653308315069083908241611495007979450495196572881113622691149511124773701395456598394685348870958399613106437338321479352727569551892351172936950803894679595715155921582877931236401638883294545080275373136060781728262161873371841211175517831864318739645889165215523893445996898154837001158526078240272547416519347911108468562248658298265937626019133275546876561272941264037002600199826511274110441749043701293515639955150368209557778673410521146068155891437935194042489724974301958715396745392263667898612522827911420394819591727197069478965903060112317399208632357000322100675135331793733801991816450337021223110750920449676151392821335928022848004963155087757259670400059124142228917155020105465397490936342078877939488437072989170117297148186856751985839379058061393578623636123877060050216964469903045428120304047104761033918681688432873597246509485878775673411609031517883058123134092186806764827443312627770452338593552167882306184949312188269977038748593697789767378731848567926281915434220671681451773077850691038921107933858809139926526717808246588291835386232617802169714375798232068183438835023100551102948415092226994816580865115066482397730480142974606235034912560831788690140505801133995978203699433698169026914605270967994486443781071192545867446024877921058544778487486539609584176476906134470089525834909575678990371317156665213131989868090707787498517180275019947601112534154522056258194190532227897582774460172560019134100315355056546515913688877020087512630947286237004107772764932178245625158989516128142716630199651554343342328604531721251912139645388950031652225971606302580225549067597157214348138374152171099919529932241944302453594621101386999569952646158137714762469339408899416120389496197397322645706813914544070895703424678728806416734862737102190215103283226057758145734947194228719726507524028763512914295041472142758282198309667369963755128131109530663745975864608399845119995368615057640716007839106986400873141386368825614530447497023896311366611388452840593069705876758938635470612377435590822054416106360606597361328731138989308467869728830111219834552883240000952429659755352287693000723173853025620008064448841890543873099472486188890216679462297306851252627651483653300719398173349738870334961342241642880645744257406925227135056586267758683318991938873028350466820708506312427083497190701265391130590903901849216847369788351198890144666412955782763551868645521610950532910352114443760277809869617965615583047967860246436815334630111072374799413945603721561071237506755972946369806973854519880406097010312670609160627992813571286002406427175737166987964969545151586524995182486613882678192957079454875319417994367877917769764418230989790361072326688467082850156285165204052982823845283073610089288721287664497577907517418357509036663294550885493634373244780002117315016025628867216365269863107631754580270848738981948968584948561187971449133105913232702845939818644012129268060960493289828558138192166078648771970324260834630102957887105573251530885059372370284700075599223538993649699244259187410854552755932395902120062830756070763918473683503376649092927374626210310408831710402037187228548214187253890737126613847063939219189944899244185267900067963017282843819066012020462918199720846224411991939605659518787213077122150891939108645061743673416785770630906752541013384031681736941011099282876876644699456144818690883153186362842965073491571344360748677773788381612627781620275001181972890957921860050584360424889928899254692527336294437042487935930476391182682659351193112163511495125499186850629027939717262685824203208355782149607818369139791187541538340527961266894169000561279067993210846451438725078638790916487762086421938018295823293038552778779343459377344821019328650082011477855890051550371711404243649551663973432113700269020906437173986581281836493934379885684330565945107921841712026099338539164587504069737007260734747629790919727073988592508928800151658892888180871382461947788734371243200427267684497486454750717576689481660525373939824868741745100011695009207255867344476777091892952056996493652569412691854278622669190712301083266731431189948361184420767284983155782334783196545258360885470972733492303355822675379925293818615844349934066584597603651802521051711253008336937934402372485872076388767002672767308809873883088722424618813332162158351183333268773479963252297803779205082002500079937965943926846741967942303260424264264409108268442242501080962149751925223189239998453364233867594432151207150774535189417769137294818800384704608950360467405623782489897839481779031565376801210202076546170912321606137725352195520599525023326695696008498157062462263002717275943047766019362621681511187168080754799944772470777539994206623161444837372716407516812767251056402357242546207868398504614250062067969921948195212224974486453787371855990776190546814153468251021862951285184391140332407825888954767748008408150548020409862198199978003230391398159246718945530574187669278837143102140682041396209510733826850691699005288114152082235359734731595399979087281689770970151737131613329556015395816699836082902896520315271273369269451070427407624159476166920118565012314055528122390998998641564500594541075746557362791313891432577847040909727666974271550864171152116466729722189218574594319526630649495908862364029416880295281603982761077734664468845090451810731545655611120048882910654715399162189526928538890940745164505239151794443024661000970765209195272981929004814360190202127158102159330938229922834733341709670968486666862867087362483990294277786103037201372120827792062058332992308445532304106743940838958847015226624377805966927733255107227078224594469718789811636841857005016016345317790658280849682143027490240216048419176352509499394542038386404695234550988845440007865739413924954868801866345150843284256527639723052220153551872875639056204854275028679218102731740653029609014863694295206812296469051358112858144120917586091582053063283130059711734700178403198085133329631394293709793925600586742202832094691308023074838684857199254023503972156799885535490358235587024919691643272308153772081579049233606793227555362977836315294333167780712904139632154889647876903950473880249359426866970687651675630592328226337967927076996353374398549365203154007766829339498282434324185988802693601128987140795890793276804055982329988604225045527979616570205097961037332551486431789849746468998156790887892936562229238230690617888567355318074931008657637341692747863741933382598126881786678470884905966595960998130336813384766028869439354597620531214112733780237668977796959529174291908784995422752686977276979961133852410450786048481440062386969608869587124930480696517847280079553935115267472029376073055977742023966567004425378920744888914165330747605840866429522466034959382394918904652166873329766595728948107303503731919674919876517500652116185160189303046208386195307775551592595660390693791646892386169739921600171085242280787277374248971485916439862422764750587389178124636508535658505328420433455488834869267025324127944542401123722394814000747019444941299454021268208207734994383285871272432595869737765840796164380220784600733513106035892894161057625558421393325925798255266472228204260951585183019674604370783791584015097292264031203568337102158865373375258858410880223580301889343062457107845096725256430298529632328674930717193598680035108568555887914279080172162589283407560445482689879357287137807212482303709733293085064673046638325658556091529834425535815590323693995937372751779666544809317440071144325180534153019136140966333134612704621558518279191416442907036555778200361558018690848545307565614531276808868264400949077962577106708954959767974118340312755817409034189123312367320599511667632489916959148932849179948626838246864471851160265672184768848428070279699003529156875678750428233726612314985885733732236569211180288715865295367733950510272789936602174090068608065453160503824093455584963169809635829255724576954511279446558836775037199633724848097131526814758303481832716677344278290051336921858862712921088269934408428992492805480673170457239020112338698790961142780399353904171950798772458655254457769221172658885256384871268000184961211244510585896853649326668484694953533389955149952444112008390689798969041835113518632774081811773491584755177200753361724339916391520012612170865300295650813552796327866801214697677442348613992820636406623225526198297309078580939072304789418587580782381311648514650191833245282962786997789122803127319092510300998548467569775591165980601972322667208595432740532810363780888858460998413109802387578289885111758351296831399523576406696112456096887934312820302438898412568414980302195811950643038944526200058272439883858045725199907434623410623501265800191771750297830847327756443220067077265705111059308152414256573042813384236542430932168302764186740450619608500013814839762412173958539139785545759786109546545227528854800194180383581595932913031592558487054634432110897756220538781007947300600087701085614768274280256312794261990592261213851341603345236255206363519136701761348353416877306854320090442863235260013599745845364764499374093313118942510502141446484612318972647785940214338927780650583390210968732078412842745381604629732397620141481829867324041969702006321211879173286471396468525355780847407132886724053204948519108759041820788136422020064098606500013458859629096937503024769485637657026618880282970202525373968566891222591567390870408150567414023623750780349505543891199698906715898787448678883139625942110658803209951038870164224781585029135563409343676610211317468657666579756773318439751687668220635561210207334622090085780964669316920109044321879641357716979248973302168344210637345805417912160577593010449746327750003950418367253073998403661540134745886523711740481456862315317984170765855033647392767441150722840567618173529930917479672204241635288459903479895402889312291469412239785301708366773528515837439240006313688079310691730461474463980538098944023201553464516772239794112663193246824344148689262238738883250311435610997957667019418890054903298182395268919962658491753235587830966900428310251819536700184533331525099028024938115314471614555953402386269467308896954896251516529954706675709188292203706655986421207504095290069719766621969162612225573204159184492142666390841196738432178158199307708379456400170867003200042919668751782911103694104939640791537070184105885675006459550039625012532865722147790213681106334324972221378096372025844347126903461317366440105616621395635892464742981441320767621756719956044986371706682982194830711320314629173249778158016415014194972080009732208243634237783025768601730787398225426783751804070335873477935621574799068002287587037548306357667607090452741543453684483673528382296715258068802894862823027298489623632281181626445583203020493227133090300169601055926717215072972286594831242454278627511134383160676631125904154186728453336526743787486664011745546940168867815920331591494315503237426067594062621450689150436712750366880278866362498125489458538560998221373217351559869073798706274343124411704726102786700745341406242351396583945771159733078930041437689284482371457995630021335296373118279500150269255631012526523512380812609480751306089683885199503149717494825236253400657235214151678544135861728024651558642550714138717853447926178085757324357778599264174135155089594938090637126768529620274059348043834717126177369882486588104308663748145312179512424546054672084499461781149059639367600428410840807683584682330303680878726541192464857785656023246129664097976002471484021244677987711953895837678893796309302408738120745530812213982183590576237645226329797222990421934419972019738519482146913855399493738235093120476549036777288046359366569365244047561118504047237628461406518779658063938005445704015145075877234808095817050190194517334246931693295136165062639061621970388976803609892262764083119910389728703985236969911007076152088795618667063407256465237564919977283514465488933819252264528373236365071487513590063119619468650941325489034851677065190953884310877303003946581381501826016504659590204225509648568786161587609025186529373950820161156476442323435274612429220343679316287608338492648952185923962544180490403686907674401883642895249952176701051149320737912062675651714847390615959323761650939313199972607078084233999497477860592974104182822739041229693800323117196286395985225373667874453235763223932234476437412924484918460502957890647683464164908540156083287378802848950881445403327893950577031256167699498815565768843659622401514617441145733626298051898104858006176906058638355687051435275436145860507780842648869172685574033802338626488235171904481284934180873407308099610184591318921208207045606649155739205791619182212271934063514965974606072938718439730871694585949054547759484527960219502136418890860716794745062722493483113351056255419434373821978595149086661256043788856538656449425792135203173218416450084468795130448514505804308265482788745562560778921850748487696617725030523822557838846447745408687545283033109359700886734866518379014951131474369420175003488959269949192096950372206593174948694997570513489559270367389909991156894874728345631874335937579004523012752552215430472031255358969417114827868935491474887944125030333373024009690507337911173447785582421253091569655856125462706686470638047408553330983394322135136843397011418817590436017355725471282965085203118587544213918204668736865557476505653455801658934985033084553336272949692718278010724208765695837952450138952919719544738553604893372172878441865631675305180161453222922933220072432996426548334520202965600362058248815442835447267478115469897096681489003674346691024172396352310271033250576439590243130872677202417612004857727074012718761113064843259217943475530044226976015315703283355242143089934119862356299021762166776422401996075965557073002106808960035835483825391151217992466218748383803904376131167494920386899181496177647566194767123815819539517035125286237795230487573804695231867627504732511907006498086020759182720188735833125321263293948614018916080088111337807828248142159556654607514245760231387428368608246717996246110452078709923670750056482256219631915883905451213048321402588261982727153573488161975719606884783107657703377200617480735212071896161355245515385150438405609459566663078999118959904802177355262651862033367106231454543204107360079899960362007382623005080712197671220262564618112475973926314292915991436394481630229862506888839791341770151890003667927671432695739805562713401694281201347557976627512163702622410713258337514502556751875834357244983953831295494677651878097989676764181325239320418104513762991757394294635564043225691384516283656508582695238814448227450894449211188245802074102339227131376280828645476255912034737678029478921344962313442629338619277854133552058015204521358657102080062793901418425158933389382690334100443478956320771420172984271861779809108024123225576341907738935964231592490934148098349385764046859001179397490877134265266540368431899951865997249691137403700851545767706380279616489161293105393701129117109272423019876361645470872610808978283421261366967222189662656087603061554003736006465851307526753275563101507699079890401954232548418304450454877257291675286494462076394704450720919088654948331980691972146445356994903935605469677861985478461146617010747845748216955432970356855909102350659386647054838970678705258775135012204485030672296122099498810904421891999437873802098594317504926758501629588094758666588039899031206242130763235454641903994045068927271761314663382664173264017030294410283133352021422525679801919472483887448947312476696745854934014507670854774140001652558220450673174812949180493552106784408452727922776321333170657666506824594465427399794002874364695157697649385580939370529011247100067646343248241955060882238760209397758836606153111142350910658914228622319290662608416407095464542494751623335009279350184422162926496421316285717494213724779721519853578234168475011328898469894108482096792370243503193757008795792207723683941189471982551201600064390383008597636513971998418540626891135292234580565444178588579095957784389462153859110503998970232727847764325857201555293386132462992319224885743136605959249237459444945174469923065533773372116579830458032720363915117660140326971293347147943931375638566205797357218272016834294408543950220570686083375199735654511041528511110875389062143638670400936530277552132640422606331045159738712632380493178845734717731008150603138437493922600434887962914413388633898031162238310563453434648370757694210572626811953702588201534487850472721583403746070240837416831241341790494448241883401715556833097620410647963677971431647726654159469641515662322591658537992113910904136011982026041558072481967917968755119178229829016829091377558940407876940174107899540208701217512503955862910039226794989836309959686473956562388785559926353018815017196738086894259631083237815148038033946597515529242844317799268586952629890344791969538382455618572393484210025647032913667630175032106595972613220891774286888417713388851894512248832690275825423859240784558321179745436434166241705220185195057131584974602841027008162051454375122343246844620009695812979517076413393097937234874313412346351168532418438364965266270516603365047083357589815425389402988048561420006310764940387125626326879466830844124824435315428281482291899748343900521757387384774268641138879616325173519482228319501208419993735564556789343782501047221954013577722689553661111604777345697016282393936578800123919685414553743652193557688752167372711164986209935050024860689242425212964696577183315480773074665030701629785750268973046644861749627142161395982781656364730283701522017937623017553921325490733764698595159971900390673728719120025709783970390304045219323867767125913993603604622890840325858406111400935088866499341556302327252140643793003795178328749610751719020820352413671085832743914708621837580334956921244037223938356136243824722064042937750241813711997974136425219715000336943742697448349752008479684049320995914504553237014073372032861594561114915622261075673614211447050842405103493606459374395653600071387593144343900569221947165345518363596908368327668078844494429703627639788143959947311515541082187273163538168717205656971348640079115041457906434397491269264602950761348931250729774668730180622631013261778925898500927248174647904291892609957092422760277810007642812113753887088370717011893292413826449772172286011293549493932491896387943187272580871536898788866783943590852018878637384218710857653072163937008331733589044845268142077516055870142750738904481940689274263164665926692783789941758327126177058326501106339147821056857305238398958874643282703501675902626267328674890930999578188743687749961565073522257447881949295944177431499378054486322873827150548635934393397842593163995851510325663726681258676525077006705917137740286026713652362697518170305851219595440602407898714796561935892794756659876966703998261480720904393852713601983931895691878961352900468747222186687892047464305135132423284300426702362359237882490965912724744406233549310103534598112326638618094753117897595076399956832655034563689483067938310563524141969700134070656928828323358865057234198039422914060611172371921858916376748228744637509501792346108973981049166388210940894540658333499809153538151121832007906707944920498586408019493189182181027532914702558449259084282999821547130593462448697498098399690756979502560228602640572913910802993957953252324787513633887271531434460932885780905427589513481812850103864766652448388169737940675645963814660078537036522127242357837570100970127069394742908540785094400943207534686042196451190177860891179895388307934601086516421302365650513605850283302005729060142328149408904873463841429596892069855840506223597654084905812529974251759536942795461283356193692484702071578007048764286711610858045859015937163201805561676489643496388254390798470183529702968881135751709406118146152371275912279655695785531528075308991757797995218470639554989755280037672557970848111513906526608328884912432847363865024184732514834755891962785020665737755718390500326138271188099016117642318180134692346987221278959532511651893105577259335842966383244999555650021722919605524945832928470452311376824984939052623525987723701348896846214224534264173478910660094253740343769848544572988701221606322337577819439206741943948051774001200245942378719155856333716994503746178992542194046786587833197093983229280278262213160148705344837614649000430909729402531049157698884046454807297493522434087835977337643123379880729769258771058201877768210624460160826171586879593696110122919384208723053939313098489882054677981211934737170256278055705314999390378978494872820702203714373671115966808937878428079332699760834073629576826064503198102356406238163451496110418091828679087594007168128372393362798009467974205463025323952678175848445483458912809258090769480007327424387706342301570350923537907058203718466141679267057363711027117662217858739253995824318815542640667235749873646002249845369090581638413774975140986613226668594373406411522352190862302085213394657786464716130332307292280353420319922951965963950920300460561617563983215624410235470614627457286230378626035399799609573713156830725594186313267261348001742226773168089456341057220092208712005735948705991331185580645657239442574439788713853646116297134011045537958117632105056428662510407547726918918438343172970870046530124201724336023639600496513123141556030710790170770765329158905884392709217663765119266893073271559148283469187036969882478619059619466693211682327561669656923858855103706731948983958827573147086353154315107390011915831777363501811701454733992858577249315594411387144271341026623350255833903570907585419026246883908619100818273042138416660662033814625166679735206069706391644231113293583985629442536889147730427980024299562440379795062666034526849425568066830897583522054187221461049611020835098042154409095054466513759024925074736476166922394594419503818203314564263834723942162268987255135622285772889117145778011035009773766892079565905482414788505155126155056982853720663708661398891158352275017747524849192301710112154938843039850453470633764381900883050462500443162493187476076968106610745122165510294359827255297760369846448639428512576597563586242505728407132021832124882149587994360839934355795082472323660657953054558924798035949814889408793653604529038657572163232259778837139468682434396117343582010993303134297409905095617254854919563404995938890147217488823358040095386902972900699404670987559519953722021353606918621139206337944768740496920102686619256459701706280952217245837134536982451515430357330159644327495289687210616743462765262870346569661703833575760382065523727712379734704823960570442733177799496523186191794800743576872344538727343932443649624709000298384237883969266590328162448734935224730011273836237465116320692717671029307593195377208394315209779253115286864572126918128215500679751197021561401369150079247633865429255572017689724849509762265524505208531580713052915499218722005674819893441363583358049912001547319400037846721814550909538368585148185713174584456299112405864792404156059065067827582713646672598302824772616122717976697689949182617643874045666743347499270706292152732929145545691596098145417835375689959921192555124903253357882148216792971630120970656011104093795100649455335764176156554478105859327376297576697941304293962155000717066965114982609502734573583138373017338481710942342698819307996310483557263362694237510764594777337376895038276875286196272337318969931440362784193618228457391439639224002132033473805988337271395630078114505572597566170853903974690463104777373525240915742717816122175934009418926351705314977351353312377473571864356558026846612425483579714517502708995881630171599719611736736766468483456165355409972923065548863347721589504237042413001842759486770627439098409357971458681917127655844274512072916815762476764951982409574099365017885689949413018805499150802067486463269907186000978907140134982598063534151815979643867090357917093690544501826516464864907412317814065478459524083434135143194601085501409348767035884373720053418112161716436037328179380063901130192977217315341155785448076432862307331536455211550867916587674022148795411209060803029186043862832704102351263797844363345620816683049798886189804313146579581671046301120949534593271234069903458229295343458665487137122932277848862234639223940753177273120649181005790232010046771754642457172016005651630725201136963679423889358250682457809467337839195047284621977495981106397625202763921659762663109981358397236809089417018293892608804456257662807653399503641449048168077248094905277888336314715756751081134835181511672180880336830318125084083136387413479734456567048436985017843224956223193068072748332799289821435188594226861748315043564032523751007540211113919535638724018307851112449889589373162348005236323866241367700929468033663535655758767673675559343807270609793873361618870724914391403709729383391469296958673891461686725658948524816202347738246872276228561364476945581857252672305191640722128729020268416897658091528115705710796318485363499937597608566846778193727424971110130371647524032106963080965801666801411964676853373751234223951524719651682785708971647176399054514503080579554025330554791948055910135187178397939559485513640563836882510806986839290387947188377849422024456544504732892643636060546877199761653632257436189543169606421734049853091239376649228869623731741811356544941202136452114924742134069965835598534936963269892003272982840879887749071482838431873678083523892146924245833714988644320333050641654099720616328089182492801254984301933266058221323246541541701796149420873604171174976212127609599296837083516953127907050364160727541380667435283968270823262243924969992937451874902982341468098275355445672525392526389655529918899982326982012176759926028981629782639465253234820764778024352255645048073804186649415291723574869957786641679706225599391635754683494160427119845401478808612420113407626646328292083369879170301844423795052816492622080795397080941398331542687421864034788268480826453352973727971052299036351604407501340103252627424375126045603101121513870287519828243819115823707028154276420351299047328484046003786308138447493749577812553827792283695869158977597779841345560570536439665498440747585032935374622154391508024690940771322292614594352723346923030873179019291166144085206958905450084647280216548256793735580782586866712434528657721609635191761366277316550369808968038823801013297721562111565574325603932790759659193164904094022459301301531229792344879517040888588124546589436506217359775595858238798002169301088504881956645777927016759816495334122489003946887587915402502079473435695303886720302047223622931928873707395678420866879937986848757146482664660565047800673943991658620173203530498235193612184936406939089783155034748010478044081822378224537641159036012930911631716983879472646223951563269757019764387478458422678493161066646988055409887817760110562968898957015008595537596926359942184722853844856847803301394179435689598179619171583927573335415462267687089742217318587328734190831719430348486347567936838490202794951319054692221591635947285512271037717042030351708101138354633273873082025702502489490504873829159803035784280514882107593713055423703389557449991668779839429914338513770224644181879769792498545932915149273523383857191843607696918617357282509406276429753361990767334437756230953541780035804680514067415336817205628905342669627539059939761044214259230501209658539340286773713099148274210277874591907135106529399766282533853801433363142206604459608019997863259370859836362713214452886797026891128400381772524845020522209300581948987791938745294205665196955114475875369159868103395282145359962465304573822345595913812671301218852769172183891346039243209524231055316530136132669182630975285751958491641594563068370046852689866410310719182408767737343824892593308841383202028453291961031139884147876706771980564945720961315649371668351351593852863375461518842137146243286282535992856436627190441474010424728944953342768482960267021806389611339066079899467027633633011223308476234115586438341493356687601478349996143801614976266280607267645467504329978863916907237974538074078345735042063107952375366455441302364628971579337731186203788301111432728969952929429400730173797941327368283355820865504222753189568187626359582851235426861833062128401841011410495067532000176315502207120322619301319941385037208161048669676646405133483512438954888581124024715453864726253125869515249491056767740318639366564876329805638917368093291623553122517031324431788727259745966492862282240165160795772403753481570019458282748067017385817355522895421761588377092209188081656829320678839127652765539990284150779880389754588774330872657106103207218544114014452624693216236258275414374449219331387378173319373721743675254815702548320453812371246601689814129872424432616101100380127649145042765614529127928772765208810573766784535879959956758937541048549090099721098573302959345663996214030564133143892767242754033474514156339673397133026698665710989375015736584799225220226196458125680633923513672646725372722320763740085438193663500366173107201274334484615884546408415170689951856031059603231135648834256989145131365330238331325144970841676333893885913561460441280639318913255469457940917363785479058111064423063319124600810189823732956103374687377292998255168146422553534408527935300280258368929109725116764450545855442956086021081802092601355293956523861386806082934150200260303860939930191931849396390179563774289043030109635578651330177441693520180618123095381408778352721167255980800009826601546458687848260125453831441868528377244345042984548221740065478277043953741092872034420761269764034526370568871284312499093333463376604059707249423058349964938011759802453564528936066925515403678513785084580220454279005867223729554774885739162017783415676594010205742730760122315176443682847788436198340286634578942108087576279330512781223218110865521233221344657352629845608917825074002944636423112542655184675927524703610036426414254750901084028195584698610306463747284385091082406249211727529165177450259383864827651406259664821889173545731492655539337270014971368755989976072756273932803208241566222011876949536908864959248146206289097293262826743783257823845433478894407915852002197272344127092364530387474339509934690958783738712026571546662385800931092547994416291704329290328980384563900474151214455423075143551669038924437161856514300720694586794203537319175321400570958876874384820150626527250659563720641455002726617028324197921220253216109927168265873869682667010473912535487967735672734314494895920622356125670399548264331807724688195188258076887252034562617038673298557350572597249737209343850556670530738383828973867339161585596962919108429282073273623684226235428354317149761496989846770435248430551567786029850743591482928120445271890801891100126217215735192112462545787803347571383170826378682166619788950830924973801683014761683432138422671304351137282127120351035899280517398598318350301906993505667967853896202249631509349260722581910079283159869156611770744821852162703845920903828606878358342342669548362428324328485011020097412405423149970548316188884155192806126464948427381002602639351895360917222659218911439787048676045498131089624872251976803702881214386819205393849063559409894619521480805578579290921436767160244305690367548804904508094492597854237447390104964702901208619182880445120192478852075345974065739401972207276900015236359938472379464765905376174186900467009722854471583998969198392030730538449920527183056091545390161590655658188378312000506762718504553992645506672245935635086581615201193583509337035445508935784184694438283937508554634810232320392024070759540929473634901792548074723671626065480694824252384754613651494170434308048722761163286359584966910658815028279525938079115737032511991129222553675205471311758408308739374149152386819637630385204685840193893868910517464088543052921846482249349480216374098855019373457191785264540504402458533986358323361054609398596023768561332802938986215271726839577261759844122030603133710712875737472449000010393779059843863765723685087076759661752084182007528384489323709986061581441820067746108627969123938345476321920085062985393589554368817831506313501186470707735140671332557628812783719884989967735368260864494567529083621173226033092154528308486852097563664539827544575815789263849654771509085511117034075514120171174241610432823317252324222765137253526132468842772886992355018030693716270145410726920543148715064863420904974902565895051220841355310096567644460770121626246667123290626184666004851811234638334870442246333554676941899892956102497879042174825104279240049029905441053246454754257276801890175452655369037030544599144622825715371840764266518921652910159695306050026348290503039397930577255042213556509024819204231230729143901452735950197259502209090122674614950285082759443046806538657499070591050910898638408218614702048091537025195075398356477129442111690456354162792618218653409612253719031299020938029987390224884479132582443331872937746164686677008393484729945779696638438052494163382729123628827061689743023619256049176448753118200394711019028025951801272281189091645115088982262533017958545989771119733678869525260163583434717254614026736883047576275579843482391243128596735910964781313137158246195401328284944684262894958506749225418893891424083847404495511530755368336622772590743492465065390007840051794898244771892089550579673598869684026490240588344712722093063722293025057228090127106138852792061127535269673104335613467501355057378717814280197532516253756203773163913382151009189093340153952190789330524264810175621118343810241366683782957157974748015752962750664288589554133703343452086617137001248629398157798094377962270289978084023546186903717499801570262166755003665325687474747792742304375860255456705499178305056489094611035495901285595252281202418316053969928380948744100192321763593572013402416395443366974077679606116429225068330157074171413206006152454370924497644557073562049187862107762016649190813463635580856987343949468527157636486172160537827133951312362356110708407832542700522111069610135256511532085334973591935390941709882889190998146701252394818038239819201609518918037226314764832923212412780912674160911704241051303282112879641944786937262575699809060733779798397808488329657538151796714266641006685391807104346426260357211073410120380861865524652121679051182120688329550582560749611764185843091221808805553294231901983147962673517448926035144870850092002799416371554641260894135686212943845642212911410987888756503999551884447616666618664306270443473251652419342092160740225335653126487722207373435358589626966026832478217889612882405629949833920332508957070674633615318633256680183278582234018511403935949877765839668419344256431014880127364394185756967414954582218492282878243349845137021976248837623205319330075692453157156644110723535758386485247199921371692393367924940892554000627261634847552012444521393021029263404875618048486567022714711031885641983636405747779368234747853055860394664529677686191126281585237982955643651239136005753686522373711466510043328996285260576141558029509185384069285537202912747488899167201994967327985744325231704797233272387638736274729734786302946953255765701650833613597288040834499395972464486143955458898876333311499501637530126462611813799984775189825372917459425098249059174349325570987155520630632474861427006862994535990972950740681400108387541647742536168550843274831245942564943903038915245879187452224558064837308536476552673580664795546087758090875803945987223590877073033109578862389909495817531677378017524801379955984569633446921896763576409787754643997765104252818868685576363714050965129915037683759641438228426030172404424781117104257678312416821621131560102488819446468607651040051863131091564066670927088208343175082367061022626850412883078793911036718335758359900390211201957929713379745313619387088913754877747835661640066044048240143449277753613437112563547175634041783655759915551736398071053516634125705466060570645366513649119476960396940126401518717810790741649676532013490579731003108842765833076890033480221918197577895480692647206788088120583403118446836212936302084858907756247407006845031735578012102334871891197047164056987505070438393166093718790816544676092157742846767407564638584672139565127848717336408041485653133322488373251034271022710638197502581695561931208159899643109376587402538373143872191229306279509427674573916398351714520762747638883171729583754691426084274474778581271972549458099538957719732786151410712450170029933096681725681462607669735671508575710634111709461583615132792460064185553639608104982224001875263357462451624964546074563015627626217273747447156207995381622881641980509491113127023174239483939201936700769881478788191144174286959879037702290891414108060191867449321458330909765616761726064804960081302522557814065500279211382517572394593877039656208507571161644319111955119836948778254411380764134982729973635964781276358798525816278037042310900085072933390496776122592138825849666323218806690285404224222536644125395880208092967312905132254983039718793212882466850787802072092021829285052932359889754820892916044082651041381258231204609812885338584069107461709364741345886985103946793447185818510837925653282900877706109462161617719326386403172023842508634854587956995702895031775582763522834585128539139556864507242426476315088587297049010637725949651524079456109874220403977895639248332066978068753712083044982488038147187766329410458288313010352281472498142841146284879915026457226514015496904617108284122133332587840111943801362290014448654028184662197276234793251555461143182293099336343124785143578076998964586392773946748936771647296708708938999628963285917709466817592338040636265632323719841513029867746682156202472201911248794599607803058653797147056385907093044087269746888523525340877504010162368632806007802830579205189032969303601700431618640501600553754904063285859692102801858625912382080623077301105356087002744549247831354066489402164485602189864305326130040084553509591821624441197775177714889936219496763692648499302344405893331081970807453572342312496571022277543498974686974350833410892487565585576614425563756500182167979459614449157170042281325135380941711599272790120864454907095975555827493321970199962851660461912112045148090952535847653811519241898000071665361036684860269900890782791339928978657680614829541830182496339509409110100509086559698486019703936304910920340877102021924572141614896916459059694502827596371329607743613190707165109108065757763024239067608058577560523176430583256092098662969353536135755859888423212364986344263965116543303204344719392980187132324992537282536618883106200533925540434238336726380625228553426527517517048538027818360777106957231434344453374188809601037813825856233392373502504417089308989979608912188774605311818672876891277318440942820208670511039810103428466048240166015438180337507866588059444359863788817212375236201752059250379473398765906080163564511552471225015788704910791920125162360723728363096392634495907343005187491142684586078370142586883873026619001887182051095796653772716571208386064434198484201024353351663600500949772768995852211175778780584550061570464977104334721185428450259485081709440407403348526352297499487812896254664194602022373356636881950360894086976548398067498878176493177331037033518263564474524036492738953039869787084936725732086992346886215863298026404854350348354559162216014503985982094234271458792352916820736134928893950286940648740107119906852538690265261683352918426172649243507590812542321335467589211933425013384141439878443481560708447912341715478233645791800622711620814046492417933471896621766519926000696985188816908768074051625023425978045852775070376526958691741158599854493172765469200011305573508019388096457295895937396073884807477395899550428464536194194682457927278515040997973583578098959610985064765762298947917228466424305765079692989516816119562754833463169229712745840492678389114333185376113237572970933645435577695746717134074469220318336481930681708341569456913988788449405726242090738913324895544405964586649325204983922716653840793075846780903464498020024810908036283553411566788641076080166791211188149578856614864315777295610127675631685948108742887062513457296917701210932574294457864523203291124970682292277625657142321086097800341681487668752843367449508267757881332598208532337247219268074968508487046247037319336133567661204253914011773896792922382537407106012164049815400468940854767779158746969478829767019477506504990349988865952621093435059872846335766395455977458505769534577998824006954637545214089513213176671857942969479453691296702841008696198528033652349714468690200117752797631521331969685046533640289348901029082263271678406648602046546167152901814357611156191613445265285539529598309873915346960648706824926388901520281332664727238137428557509070781109073601399934442277009477903875981763210058292683745822863258725759624476973536250180359788635041576783988951261139939800670565350456232130569614391733531456155051160718096677059533006257849744471582962874530173051541736559325436435033700591886392735024793998070300898611490267333213397261826247663655951042154542125091176660678226119356637820025904952139522776067463766142079032128039935109073028141352533139448295520233046230193959614020012245889116859697424407012334084845400972173375207556499036613595250819020388937682916082305114957774261196924309172170814368272294579204263493198150270933887236629332448398455051709034849029590825350504629099697440881271880505051033933292506040680897451841716185281983655986582133071323836029388693083875515359285939459451931582107460666877713526031270634735009285094102853345129974560704150972441720898038776052264613260236295375061131518753081447274762502921299969897532381525144962930431885221698771603757530049102443487631739704795998592843741486674087227286952088743432164116046517547763681709422521414221560764301540926899560048563560471783604410204876759254238590867871365589713279047505202127461716421172928982465059510158044805497794014168035164668913084079413212403487735362966049379137677523323603016951863774807745359637393904145523639514139284823971498577620268084018588612001324128152892845654170280696423730622955524617256820289711835514140172270247497328554593373714604573259949584971717523591259066704302337185141361081361321109600768483943737089207512292684827366342252888227771496519533999264080795457388973267670196077386689798927438530429045031291552168569801400004104954386832381154663548772330103326989682976223237862949399281734258808494817267262831488722106102260078936044044049750445529441175957727661016278975249291776189641004095800771411826439069151021301150009839156157745442487332354682076743345605809181443996340913189288687252519321850759564085211549438895915712653521028648336892501269638396790824265395478264908118246713482137474966276290364720783614040396875675763448740250669207132913234296559459548751692913730398161870296768945360247757316002508425263071679604575572905001027682847869478944719833723252458450011407675251180213474254556456912183998461791546820759034078199972852502463167972992944658118814145082520650698720395252452498414989021603253757444258485053316975567506023959353579588698123002212423460045630468563389460667534572255653099934164274864233948478740026243509976730020161330154597929066110354031026403754149857708339273927555461298706649478753363280133510826974554058669979693477157129658575008070258259852709149343160659516706911335764032902742190560252898110631193726474241536364235460527664067171277943093715894008237619089513325980597849026500677806849757428796385331650508343004937281004301446562152895626219018461078532883676553714004748053142335827140957673463331989132132510638091123922272779865777028659600642195712937860800409237297202204166266802447663762679482467630487124432053317671787212160048264618612209198969707848834571218277538780722756429828476489591026379166530045205889112163998024969746671532245722279337501981062982861656228365955120127557810961979187779873074945861885712530679524957633024727802965282734129666741303748098259507647346135486695417228158724895321010161191628186242103396546689666872611430214371799689502070913224268274487961449137256902804917471653606078330989294699931469900917700720282678802124883640713938636339121679496366710831137246742435470672741291422487748926900427410778765555902676729056422215547579357701077607667305529489106243329217651372935123099397871774200987148499162989635691159115113671374072781901655188638412463238614548562939050181061315634398134566124589828868052001366202072801180497808576984125667140596893407853533725121028616915603734571491134422616554644520822571287809837936512172445434748945557735893754773449594362392336111484543852453333548594366214029581403899706321433162300633901323631224587121415221919031093479462400940425014527741695358941755084811748290271777847940041693944950564796220494809950256719850014666521634957342952986832268105433370449763594574601442696089837503080307105306755856404629259923911785955749017291083175284465324394477676183836723232617320294665151369715984454467475057557022009696825786978811368917319199507204213495240275874066558420986634868858662225060230874401597567923177087362298045659919665926547753097638042068334071298782737444114860213513531347344491712516080873849234725495989025693079359082692208833529135069028974779215555044606744029024353192949691496502566481415074080076219809456735619796059828388449795161079964490238880987902874135556878536650373520789420829582054433684586504194238496816807142258380967671238210497970751448675741059983416524221078812665101071549527326365151399551517014492603955795442008065694674457828495206520864284813090185707006637215711076378163875125784290352398417035465540450842898288550772699719844587376385533241776117640397416076449372142823205674199967398084163727405312092507043205238659376000566149813455130218092030426801466086856601977226384537659992170753363321075750875577336190324935035525273597740567153603130026588652984172442126096473932223972957988027886431664216191586306440316697898922548569829878925223139406818886615546366315790349821549959477397764283043416253656019276025262021158995108676965313657208791479430349792130875777637781465297364480277973113877684688721889180433674476198729850929562436697891868052815605464112153187487085892701750424577368063586982883766439343782575450673897609692581883508106515785226359955239179295011454954452836878891365188912494135564422041445008842455444822929552779024861900403280180107462090773997263937364657555863837771142615757795393835113340227891641897294793071561485178181958207007178204157496690656353704635791875747637805741393143767670053110084568439267058217153052537262298085476008475933121379792497560182273213563103397771570963653752878670486525909018688433658334323310905718349696042596601828844500775994844526372928577159092390088611322419165003181693588733132595117001258854187576052932824742690233356287618402043060965543701602495503989132941749045059094117462075523113058211838050293837204339072918112614558273265542886577550655982959020684928847134964286410029944785868959063898248000237452372268141618129115351286974683190891250306900737474633138883063793503808380402915427282440847982822340925271084959667554292342740195021887642331498236912930169619504792393862903199730663782944401007408245511712159395721246924628857243397013089705708525768174637231379989621768701476969662810726172570739261416288492716359742254579755776910834439101376972541796132343421726104601530816268906890346577337715165991122450447246628969031455832134486748795091339680429713488186355135925350916966521504083365352855756776565949155199206188154468631127789009234751717927205136329690419721532792628645383801460094953582310374252838421145603662706607342155080757943431913290289329372534244484742948962682059932136885432872757613379429407006914203696096368243316219438236155290263237945149919316246591486467642186486033685214033134986928151396225265511981073076153930601075143916569991404007545507162629584407439674579045594430411045149010026806784213223934071454891439129842191399685929003561257437460656820161274408701749606992082899277131610422645772906660857254038550747835255079624643974006434414876504977951932819260796889013549311264276814705531190757975329395682261966714554958395866765464357162528230076022603979759428145695505178515294965162321128750071240761677043741599410742400438314695166255509143648931755872499332048261085012002889171158836824393194922659277735913962323401118279104641654029316895668748483623816523467528647696644301808093877830223673026970259178632328426899305383174877722228626535504015415236282590393644790146422348538010827938298982216845997431745593008339047417362123293373062459757695864134319624844874342286600736050142175572007951841419558545738791021506444317592083465800721644666460740750337452470589645304665081992602462086873545026472674773780489728689920226861010474859651598065077667238114154330296786954574043714043489812260480755128838230531322966740551507820805130039950265048719132178004989719031713245385033787160310426311139349766811407094777112506725236562561988930627209331570302128495324767038016947506585777654219766436708364860444210164426930235937881077636875633342999503400499950393292230920020823807972772948835821480685071212710839266652870071301184543708773815311684082321071093050662466812316389909871556521891839862339599817162290238500315335240977182060290288498288436206339359971939579191719445171119370042017332028285887078965614901081820462077422431075428948910812268618710512293224497151256723322191222548814341602189483967714130253694951341998070660101287292382506165854738456949345308956546551462446064391353214178950284500221780162322511268095713113792882449517896424396846884176464233904687200624716235283126690300885505337276424258614453746602909105112404115968352439484224397163504179366029533605281151358459384227647301140245867556296496977253680785166691485291976902871667552035459256812219607814995950382450550283881075969741446633894863929833842828628978530421618820043521771825123528538371764495083287689319013681881938894036961161154406658256610883569846967660952701634215876412267028204840596639743927177859755304603783949741829662347577455395887806270505579652071774705295155158251365033328262215649696867079768457073015510190826347117826113456554509095437038755108931017959559857843761864144925188853165963796843671502860524606099576677910934339105623163328498600052421934959172701200535945565415442470975581614423531080015062571820207007568097773926620381751041252401598597556756978737321059201309949586644954333405334718106007686394306170002285782036765306857521922974971404555613323750104501335393581340907496799729140335087132323678382394250862323502051853193712015302824325894478969330848991655000078465988713892244134823638165109052854429484460960502329258417371791874151152861909948503425241369318671275263479977486980625508842935244990042679126731001897935299561499039502290103026769400446036684977612919779704642641280935507251023840128165716458014300921555047162890690845286376547367620967205401005420477628718923495790067729014146595372981581356844112862383746391358015604494692935220268656627974826302972419724281600502275946784693496463112840766391454211111528249033581667147130015459975512392556236812571724129303387228030045538509294106609255477653761743608895938757555080641422270550038151951074368098829047987209798073037276712000633901519660374652842757805542836506439912522634161850701977718286027932755743512469057138630820008919703513405343870972114218659373560038775897103049327221226152692656170219407891813298426952480708604236307440996560117241422380596951803894011442861132987863992939520991908436543485599585483566029733765765479091105761718294963292863144796672188868908255061535414041403440386494770013329319647307669655259369752328888499633144266709561934613987750034410351448861028603038636357483034406166726394754766859656807885521616057621648094019245466530838708581002237736347459936000282099071429842423615855354029050956760597302910173429940786930006096038946651020252691741726583463962725357043482469918919296745252838165372849136324916204093570332168225334414301296806111957771270719621682538812169653427951901483105343742291146263788207286492883427404053539694713779933647541530957503975321518445246471044240012489389837836799831271673352362317976628756307288672573755401775287495207520179576351467927262998204827823322218252050426494479724354345819957775885104498581033751762613195636748703274162811401280735454750588851479988265623117145261064245714670581361107658357882983407065708103483674599997019710197914192364714540085378615395622773564876508721748473444170453881081734129249676535608903796421099356452336689957940592766310333548211503955919688820699446683164800202175905815593986828659226794516662979820712072872352089356708747243218835112298958686937390086646351455809957646584223609371623564936808380681104037740166114508275694013164695034990041186312815991318225312189690463237603631966287360465652794395570609125292045723736983088037776822284959592720110184452771176146439094396417171805227231864899217346602040641936722473876246025034720246308290813284270365167520395016031395521187573015814619680077090318946356531693810170173171888640309928639799606358129392181063455335196375444290327070600184611520421546674703992036645332468355187484096447739718468387645107645716584307103902957620338110105710075291433838856003196876250606246892327480285919787830940600307491230619923384718873013054689510069339005150411359806040799779786116526076754797323697009822347779454557564659256524237733046034086409628285762008476702777108427684264933202694038349709023278995344025715108836763621743105828446129805377662975008271191856844854808620423825460148139885886141480554801602130985721604347802750388415282870679112591093529197892193467564940458139987565845210792340446164457989820646676079415963019142252179063607177137272503648594303255957692841576730299941285962889739996047859976435858969778290829943459246187174007915393134796882736158171418400954359979936268377423309822510921745915335455295508036420785415816512361318004289677546171630020423723546432660365097186145148737783321365898161655570128954253416317098620302325966526921571308071130836796520172262493337896278111900694891450128310431327139404890702275763763273567962920525415946372499210007644852507420965716479151692705329347131700863078869472923436455795495016256207548913377639980348279873752982645068177462166643678087094419100295538111239778414234453082101568623981616191590057540955421419720301338540281049984985452519119045277650635467672060095151732479763308051337302919035428194042726508128814563768801289000433100607840058016805414997445527387734822691875030649985147339078304478550403778342887998457456443678843045355712659375151878853236662172571743626331036685886316939429750626545250863392429026373284769603037576426785449865736071368066958548995504095199257826013868060341328863872339688883796942845430956463096420734670830810675742745527709721164149390703085534873739024968116203419265932373177728704020225599071267827045480329968695795563314141601122432416047997082829343586019446862035662461360302363715100215235726838200765987758166101918596884099088761822605965703096328623479599239399900799621281266574262671888988709315630419453017499999500391428891678828174139100118790929541516000717406425967487492222849969231973291902012714345952272404643987124323244483327014127585444394836781490651655504050891170434350419068751423123801912218525217758149054509223757593755551381878863207423348875810675776523490702716215722470426135325820749995129500528872333988580301045515073743554561237518836576442764708745398420861079242261270010856242424257277147886095135804170924297701794206373115717279232042190097053649759556002331612047088710339605584885752951683652230280442810705559650010197428723589222000893201412735173907540933582353826202394236301182147398406826166174139063656746930396064245681446542027708624368915229104562108374134274361886688634606033534811973693764377695335966772789912212883759168375449312313849222589249803278857184055797287532837514727288445292790394389510021470557765512757646766966591539913722772841859522079879012773226294456958848821275218705066489054887211319375969981862732016982691764472960531781628644531190183392629070920698535295325247407240126428647301097437577068364197342073556733662715663691227073694781218695643402030337698785306150397408278247130907763726560718139110511314660307475747503390185386735294447042692864169153041536061860774197902413716102805998911168956059158960923439524687871404507682934330581180477143130151281706616903440306514609647909631448882401452226697026043741164007207418271775127639970534366804238737587226901622024487325780743612789384075639184707437744946534080547998828657902979271880240318096662727179179019851868912945612232655120103730068317233834482071336459639687226161015033144104919242282427144107118852457435754098316691981511430369676043678847580688873690139329825100494463832687595257165407321238447363759642579839173351340310870554246243052437077679390749803068678375971397150827195522496757769244897284930540193000908456281886951244195465097301770764035258490501075436024215758436362719950661623385445762199256984098741099159612106227099273486178053405396252022486717953143465689408022665288811600047076836100473982078134352041667485040201012920490898025975352268212514401220603002480888964790322393670185387625124151215040750250049259630760111439112216165931029724116756797050476840783331311484768335934363298923869714148593396006896883203184264305454238654544494488175012692866765520326401726821875302951048683799353278105298029519861164694520951099430735722780069273403982354148921063986589128784296736508767736740130420645793118924902106958302868049753996476489169038586721647273143663762491851899211626056799074822943469481076939067372215980771428010280435902781806556680860225322246267106176358078557024543456164518668286539020162348775179245670581801138194626432601406153811656658115098753158158665807853887911769980225210796815868173049536989380049635739481577155296267168459734528666102525275886792952490646053734471173197977504618990555155601550206796958401429769064547287984823156686598750223293784858523239660608046137449770125055589759331137316289944117657098664943752792292910654937396989136348977910654457414276798272634556357312843495964981938538560318358375185983889554724847455515314930168283140465885948411870305969087498717171528221521271786878470987244410626460867769702747985867014367132044300773864746052067213653603748654532730066937302358473302544365738420958904181485638576335343312311330987343196206535972370358366267807637644753092405693818555123652725954546124993002977753154252361916775364213583350825442434987003191621300969494503435998652311247985831515883734216905912373237621098532739088699908085670467037972635342553259400894677448396185590144661122811064384688029016428094816742720388111164701954796983298591700697461624438583943170691722988572290468588798763118608442574542836919693104845222636356519119183530316420719296711352348711269041686380303839330657432514824457534273887626007466612610652479571144878404188908079253388539003070223504948911813437722914257705017079372872504173009693873520062043695468431775076006423225297689653138804971259146691238492053097398327092562958329582042609376520816266483080670577195070664644274990056795923255626515475007620248691797024070923816868920531945283480426857605472229851913917394757902563853442735114933494122677290847846412965856999362555318298293655434008136818653312347414658180603677938301686673109545631415485485186544989580172349603026982348262732909839568976199969263951589148893525913247762851937119650170236322082556420909261497053640988409826298406848326705841256756657702530416084499170585327682406590635962079580027373526841316704805180161239844332922493048303515297529054571879891579129254544200340219578903092071492092555679032810383656350999383880983835026119794265200084877720801494663589159130033558999631456073112170074666569439121895312763189967426740139334223358281476894678898558148375371942396993741403333436309905988477277112683927128000481239044661351500889233010150694521635547481332788124649224269850145110420269364463404262978496269603909893718833118347347090290040702615753069218708051048455391628787439247616218306296801033793904767824252242506150932894751728514366695810396137852823294022068060697047258810952614691120302343595338764824403475368750643848306672228665896169778593053905963074227874434047834143611681570475428763481626205772382026978464782751814191641373864800220408954231647801201142771580269424837526812870951649174174621628711522063061201218302170493908994347747272499362553079728450093113966560185378049776876220460660899630541665572259620669549094588479487681976856461119961983611222144278302262502167031658111036364388068147333847191694311868898110229874707655408398228274707340406578483255571894882036739748290501351967829340596386878297253388332611706769858799675651745119746097959502289821297528276915784573867818089312313865101559084717828691300195117611100843754069378555930157428013594643435219542595932331513552133285017258666879735421421175639413356181512183111229054327488516333126952027255572910096403301564864205748154181755765115649894446160253573796842641037838170534153878287614381157708308239333499072857865678541407376467769562535161739282366991412851266011491075291127119933387110931731191053223429154153305737071110675546383597353926495441235821780646136218269519583100905942959555830466031866436976852427316515586584287797286841343254020556736056938671083303651263428002619972878699347448101100110513621343371895385828250959571793421520762961535831419823245864789334351273274723939719455286872208781308763306530930228469686057009362586352667851504355162893093235625498147831677602392978515518659703521036429441745293124021141687026650997395384441072946421944927707381708531483245613627242784242064625590815279460747470264710245082845133782091228118346462002837096939647050391608652475566148595045891141437346456152611126772757856189198661408999518231509337506691390724769421141716272006171222178409028117274744655865675636705953784314566379114719241172513330872133789409370674782948932365223403210049029094453089229217656655857284675475592255913274251724414151721160781668832521533430580361244351089545785702426502364850978750280482475043563684278175411945536787242347939481680457406126491805279879252959047646261963714176436188995716974681902970909078086495157234000012058025693461114997051862883821331589990321303103683751553230221437946265086282936485083142428487431957531421830386583705700960131561489738238366723030555952512325261420846965514809723626902910479185208877295387422315380531806124424145152140377424897641210419635755861200753986199903623096360179559516040046505644880102779721797727751426520166826921138508720325324868521542862559223831927380935150289969291684548590972561891559845308779572173366249536247716309391908078525888421343577696935714891755013616972958244864661377258459264176486932894112155439782621190246377506150757991071656927836472905225716828704473694530426085389660830537494410081775282403018166728168178801858207123736031634805741891446279510697825453099814947077019510097160722141891189304324608603723509315927420036710747629985785125527811097746185010958898383797831173463781846976213885833250813773501778289694189745177189397960200005388401005667296090151292393255510994468370260853380435877185000847752296430025075359450876944636415669897459341731190706507310200706839564679760715554394630609276363862418234323433273956622616846297911201978618493079054785987066389084073114495166002382667036075723874252251335893715050405850137252821610437406740258545320823721119756319595774968198183442469955399639794955235401651309462546592974810612179665252642122496058794848589508503264611443357227839853853871578023371044250695584290719692035257601633648225764293411572554988590166427221851211860145086631828033531960127456547271633268295294649358751558013971244216104820719829206128253112433716768759620788887041023500050346689654676526057529481298993777604922935086801101606400469676037653255648718047561941221451964999223162416201495976904374523308230936072321580843027851962460171235558456803393380865323877055258070935100006508845612177672019984191111839991627065797390294027176429596081773986395560338619092276504293138932872114412243278504696972903732439991057932271823021190316431640157989151206750310839088116916474752010980072686838722543275888778984546072816821701359969245564051777986612466535358252340251273220577938222499767548287760649225831358955673026846233546403016424352508071773821804943098478969451215863072469093928026538260885070324050338513728924643674390788765688828304314174728573144779100603758671992437576888111013636009713171750941449259748712281830892903750947436954038465941130505707899691050965518752719804160459127002877701849115942320447263731526090872871946614493331846037137022818432737961585352861773712593001542868257714624158297447757904567546290567762289697960156923976281089384846454861566101829919619992349984066448990585894558706951203229543369495027972666058208397053694674704275237068220641146725428209108282356603191225472202025236058353491705916487072236606868903810601605301434963673013915646685683606447617403985228034532150521189814910639277015642419430693051528346733791373715461323965948701092895527867672215052100592403738436734202615814199295026013876008249431331392508812775426697166466521162941680948809570820371758400294398998985129076207538601621277821153947354382312766052896051740421969899615029115842926971949902285490788133831764442006993256278053108931995890964191516672173861676030768888445988030446421062877642459325920800920816459202331138584690886490374760575949282592546917000612201269639132108695982188371374327681577047844803774095004812467923041496606706601272571995658661522031633313226010036105047582022223906702897342732721096787971696234347815781301694710733427008255650402418039857044807565340002585227567046930388332067994830033930318833901164914611176068804132827483512637585327574000188997038767695599463934762284296574593548035954411446533934928287843619947922661941998063489597146202261002145521773628234013247748287616671300944008568210864897279788833165200424583720591870652528326636722641986053536812232281480848163330892537497220811917067873880632689031072920036640850322825833831783848370707750435599777932000334739244342271412942248928432532511048499117719454648663707363173697594290148946530350308149614656330778273456610854842391307061767333410472706080968227161502523025973521408901227661172032789860964818608334433443673531704140427889783402791679153280691873421552378923553110901082616201278304499742638715453553091469944264279624923176138575004863819800874112718171396974722885807473299175786647033794404391788664286721052171030214500595504742644235137003672874997067954269737809037996887111977571384755047007876869580257523422881176737826663237087373402486183922510470602257229741538208197087959953669812426739664045894205729194147701288271274264074662644590752178557049822164829987779836804473205909380783072137563312092417157095314607476314852281007325813497327337716795681598384821755510670864046513578925765362973597340261196293915772242965293375004146369146698240630003326038122789773612642952798757769779167787116845055606496412083561476457039260049303236150689565014628228007296057335305204667876866009810431797820835465189581757823292804641836208916729821448530166702668676702053510682537208776825013536604351084098780630969697476373223934712459650776588697822891127925409118938735329932268524637546164286533651961689758577586694860076374033909747946758001446463689224746286455235351052516821868671077666181262043181889244285598012854563116077322920044678111984054783462803875998936666066247684093301738578903952402628403811398057473091761234072939010272471146349220385368646634429440928076055487574408059987691509441982951931770263290206038090227136833743679829433417707023302590410699001275203997755500108904639034055326227717732210709891718491271163901440567985439551547603711591481179583457251749944732279367935015809744551082033270098836974782305211621749976355487999623556365589155865841114932682145237214498267774833147650871544239126578187699200341911343167056748826285765490064062208165127172157946571943097809216574091616524687196302145686580147820243719657911545522962345923027988526865173264257664401230366573306109958679885504894984106534023335518859912672186626969233730045954459674363436875659668067190423100264985068381641577997620343270264515010721760978290558838055926420207929557005542897868945221206028397379720214884676217474454273925365363439598058458459539402192007012587729172343995113489503350168077208737755951327176054369666347056994009062997265745482765133310445821618752372329755512502117375917975270309377078122850535690167731845245178619291435287450889009951792124987297591509270916613431773446940133780219318605826961665892383606516574808438306856166434130045298259232680767202017409505387228245056684408875065610443655898672270899790296441812966276428831576642459800015849219956314197931364872169158907503270281511407215477446722216649247488283289928632263085691276108056725652513357964739720454995854049051903500866990556553187158679520568780164056330551884628542919969948880782391948067212248678123254075995847407777791493150226251357849144618972307209186014902380757918597489961479162503595941626423954113790381733557456860533317117847195703033881019697712664739491073057261226938572490141913095802084061115703530860647407136853996355958828019737697874652952902612759096689694169630390143941396119386782460871664468690980855490693485884292720248798992876661521537183959125157684249416023919908915793195069491703878434345421873096648106452539161653860232955987742557045154294816393292128721573490485806883134133861940053505371001682046602731256579078618065637297787663491711495114546709183626184448006219046698610140287864564619125934570308713809361216071137161642736236190726492624539913004473984934482631832256748021103544947978536640579938196786117400418310708646898894224133595167030307765719902301615517368377334953431513124244986568548470951099683934905092080337714364740991422956145819454711092768739029348992287213210943499205683939525456594737717418769809989540129085763683675471387791097048858969021293277720511905999071397366372386777311938794231686310472136037687570555958423293420720340324126832331182330969587424709474902271602907624367954727080222166242400061621740140982273125472878602162931101038457535507920244705051665552066805451023633843753171472232930452612259420261901733075122054423328895463515761361807193424182262575583972904663021492385418199624839460885632770675147487269447419601663550013262609021948005742241184161029317608351375194124874903318289587238636364177330527143253320379177780964006564428911172462985995636316367955435955695232665160317625310440704640577677311979527328896471029720495007869748698236908242312380140852621994743043509862721845734145239688901318805712995933297949690440002023988543207415191217839010516850786688363098130049186134094095508653981302802066159283864550887916595625029775923863781312973763236587204294081640869174423361525216806305004974277261586434680492770316684001149795313112027440598318712431985267038808543604464833031093693469142140320004112942448999237318079136348699663576859886731425568386372755492405334672487569510212198965949518950367143217163414072595281140362510468004229682333718290894886865906474533021762717594208776894445599292128235341667878908982894111169004519940922036045860795549430318779196878343478921555652582764282240039780911455220908465986170650426446322641611715587717901481337655931659641511611678913076807629148956346685597011516778316142083212427321071140166958159945045411783938337791177787954182786735240930354362341807719674229978076968213147618048675296677342864750893934300689999754505798783320049825604991361984477726351532737137672564653655228592990017213944890496312249305262132641653135314807083708660516017040553641963856290998638814915340751311835789235907251379847305383533055069159096908681619311068419024053055948523474224291390212944803287450204225990353872663784938174243958506621184315476173600995272693388349711168639647238221575955249617665419199777110270928450508125506513054965442423074765740737235369783463019839610326468293535548193721898736712165918328140586425691298307684234972336418175724839795237064053958501476426241004259014988665712520443639644820241495865200329170093562609991558464190995733022699669905733193200538001907229626473171193581723678088638977785611753779201731251261825074987689367859392677775363559168649715522492403920447900843553703851312030546696472709515040088990039174944479686418684004787405015734473868724358853326915650610175535465831057959821705725737513059882615543177667978396349608997326327982988026377134196989404697475895483114324308081376754391697544427666593838336177655448544340189723730645493919135360088011518866615153430745939406330801440516227715976406685313775682042805823336622058414699966280395312681250615624695937049681644723358991603493433876833104712910472629993894015847785214989219386958092873821523379335690704198380314241095219104780198792647060645924723848712240849242142459040461682769490895836255431073927990893965584818663881034124391125159295611918595604671304151180941575103036861068328506283391056187247923010585169160696406566900638103025813343789329060522690202634222957717216686677283418875758679892757608177182799602128016145590870389144064074625836485309324462925687394735165033653323552259229678370564788823673106534867173751585042970091815261123740402865557508330621435067053218695199661358175669372590854255661573904381773062298382071072914809744370350000590085586190929021652791092543153595420572421916879338846951355166205040442914930163458224803126453820596521989692883762690726036784578361872421266477723696554022781581889089663571935880331124010279001938210433917444940651116773382040277356243717907626532568415506168304088056268562356014679524995634503708362965639971524189889310072957444120436314421110362193163887945203851500481033163835402651785886627946242166480057959760288014960320579692402565571054581017997305380396127620856842406987229583649390464648983294818499486366020981233715794994095475037284292208799635475152068811002615999568211538262036525743028339371709721918417171194777599635723035744870007853522827559718021305471825520610712905469645603723655315476669767141807722981627003771590695368791768974154594104431199131539775892401702926186146762620227819206199493301344505858894730181339828239492154194293695807467466802130508584827274321505925311930062298207563941428675905459310129962042124205845510857286265432201306074476128755163528298660907759887198447830426608689303540687165075816348439647819338266357602157837222336027370092154175964565942832403598572916616100097740159660444458106524421807942144118249773947619482780988519429168326720009903678120892001469621942157788505919050942616652725598199326458042216139768416399049520696429686935939420574339987119738116998609410977598862006965124664619031661437804591501071987628214892801343826990162982289179476815665735666236812859838791165280263527160402665540866053713855590501059510963292282182566211018220613583187224305023689308533191065645141990068959997065100440788909305576343562871852363397676753688537926578714053149380122014090049371320361211362892792071841309019733136677883013017032455178873864266352752031399882519344647402875834974680106054325272836038920605303763111080029323216176348350542550346045362761822812753759630455759126891104587256159981072282481992084181947136814854109348457250435922978636169463172335500808522731661563445088815236226123276499578895504374437507087309765374162946866393919864701159398953386443788041081251289988013782070117980113005497936963804067013018516547027934190764071753485521794847004416683060636439475869907082400612742508720467937970238630113597760299320688959843041653071341121646808471053159150671750715774226311961383232017211604944486835857204385156084517962711784492749123960052776225365065081740639708863096155439711452516447058404024298756557373963536386398877999554582697405546722403342775690429488612203280363026950777496475208978888490933484382537340042053599213334858627228238233910891998544042741803630316810911339195139638058819696761069775595259464581537203384913577232103915591186767667220669677013136804603790967044555129247789932685089448211911708870706571407261950286334519035725286468715951287941918686023330319593209839830629683697263634430048250362035919759291691603546579750108598502833048570123983706855618344871312178898159645191717349407101000996533984271009615913822295799272218950064287645551686616787642278413962305996061070207656296553992872097965159674620201377024394216749304148129780715562051045571995762430453162179854976695156454286102190513420461520931204936199711724305086538412909075768067284381557347366239975053608972403194851849091388407276242863088082237282865541955779915140738685859096344950714109982310001746309621439974584173551146781073109387665377322935110798934943883511791036977850064425322366944601556571318179646707344910261788903360298370279397655087767023957369881751584705885941536897522640631418137866951403537499436324119942948138619150650960232069235961186405731811353174005903056714544598510294089069373136029106186241448069095888482185831524801583604806016230678026006482888331455228474833355235827448705559508227508401791872647780613871290594589028745975753206259114817320371453980606624605330544297723565374401485955354221293424631290512852225046227093602716518274998172551209731968946822696196669195286416375249400497573650050585579044498520489012811439868924522607930468859735435600098161817934665760289224712725484818830733541818923326552674831986747974054737603336126059235731352238662413670888535027210886934216797472843830688670441654423690703220781372001464772227911995842348088569116337662333036572258234280168911380438546350841369561347462823888284936462572237128045449449966556318353157916114775848113584853052155792441758947697644012799151255559211998044529076449781826952395158973315159987358691411204585507360087065407598522335525994144593914304327024402871871095490702962370871383245862192780020505322057540894441792185284953464374993557282924099100894503904330216256245871410089011260442478916767930163917918159707269644622498172186534392107158451290117556697613811406997893823940278780433002686702088320322391295660212500190938801027786466228352734420890334158115756918152416504077750687425768724878469059924801919489611534669854305882977253751448272294737140652182974795143495859331836408149870312576327224399467750124325011737481921414951427792293012229285378434669763315110817424831787364114479310254860689704060074370686475700468783117956842468651555894550649361451466520704070389507060454049004304336644751890647383853178669052941660059558350003221813355377177293497529651383227674869612860911719082962811190802620675418884444648012941761876023515883084189310493099278117850096827458384768763735719351816645462487325785131192383148833573162316806882260868648687021898515334000751897718067514918127755373853397152623957698554625507630899525121774802308549301496454304591610997620900531790010350186098187429355339398807001276830859402954937790779219680479035405873005816767111931466826215880383709380403321698401385694593562733313852868460484484159947904596567066532646662262485796861605689115810566021773424597407763003537429690248218813726040230404479886462692465642037845925220130499065063618523174713619565684672034583515737366041236949463504846956951964581679234445956252731209804604099801094297779857566406689640129828831471122486717546238313585536825769848772692758124308831546582058426772444448213890683798954776976697676712189815124776049992415895908599633197661917381356750191909207044812747197404656586704582692400266454553369583084750133748614952041701544810477821025744137356264645614418418864031981706965639411989115225087657665895925948234677206717162176439290016361790789841677796899166426154621591654094870585556094696380330724701631555938343599505544419244015158083835787600651598526624356495966114283244029673548175422633299718407269631247173986576544896755987597397871398243299545526273702989113015465076560176140110073825959076343170217420829053507378365156560022819711546664320562336216033863834752009043892560788082455790035210549129487555444397463108557553134754742004406654806795870259522490127764482143910168095877083979192138662881866522831866367755220694629799769262215390658890307016791812715315088487301484307918352622902907876436701535468630513685192737620992515495216462262559439283249053709940763699017801592060991094785997854533131837704332406813009494322371850763480857628316962792315466018213068946849912531278198967899790009102111568404662851013387059686323261033815608429735435412825053293783850534789448716344006344844160478645975464085577301177339650026264333318870950302023103504390119510302224609520597865022668642585227031623399116229922971461956877870633006860741641248990492174673372192859555490275716001744744292813628474584997878905675291030511645744206014801921213633012692243244244812280377698509613133515306702634305251825817640491919382193985371985599811330350730149860281629416567936202127866730173269118494758092712680427552998243792111178166393149973214843935590769178973530246210565149888264057186509893074641748102977869889175101572361312105655158925138937962220054184949413007559529885500134433247919063395004672064904453062857145461673931576612969979806557268838030601507574774709981493505752158316420222908894152770457473399970353497057978361897651419156290125951418198386057108112255200637300711213671796700321280106936830121054521850488417873204311210664649182300213201172493740982601679930712920095950944076892259134590075319919698911937019166248699917615377004872905549578045211530394733956807511180172142019749830406891101954558822014189905442269573860114432868407917545527154055904298354195865214222596065750453456598061949091490134460085454790594470873565415414795544077971202665919041022896241633120518176311691071184153154749224264730422092060413671530864764294308814466892258951987264964865160666794372839232651143966118716913880722849930386525903456587981043389014752200553239672637375079196207085477211300001222596513439296643344305131280300810208588237551682036755105898587051271476975173797661707825210344507566957939357536380325464477095774560186201027038800518107895473064717175653725421792163743336405313608560614701454538901600310299923693922308518035348551600479864727834438927107678644901404714991759462161063622225099335672405757172581271111583644153457175159255063203526894126133512759763143166853508356620569585865775570956681236591546927615490200907006342938473861865787830226064042079313051983258645028066039183027166455141712798951219699375768970636750463829983992006150798335591956543368721411284689443825587604177420433178536474486764835955151367585694122432546251212160979915144569359973084304762518554439488387541449442935887284343161140294080490107322273672263557544304062289689888701047964599795019807193815163722394555503731373806533897374846042918903445030185062803073760868434914133890417897622343576060517143344107171039774050376288884664654094025814031768195195205621899060740671909655142899023844171705708244171311096771748089677326659516282943173249076929336818986793939683106772936179611769627150908684018021153898341915761108703333701937877854892299771997944985045636037186842348228212039700963292689935304975035568719502226505504142717105992893202551970826686755418714424762750695157440099955398667736913557274432916513536753219866099821599024388731189530178171197338548324019510589214492792761834540107091620263473686008211828889252506434912858994095036216324857830284331376226228461437122104695894421151399311502675938862152677014746960908661419512089278888281003628831060774223225053621465691819046480827072480554607378872945728920176225444858718073225729954849075788078585737263052865681547140847762389518921400208856987939460092849763863853308205213804331641247755132051989995535593738627925678320810505430696327727988344371294463758797696035162266786278604195766475554173034262032637940939667269058937761481630925316537832720771483912820319577847658290054541583071360757763053845848198599767504377844794027309370276986626716986940299858963768793630934807801404034557367735761202563018674424132194287866431542967062853442902265443412755861881991896424995817294869367107965367882786794677851132606925575266697062560217155473710092134009271929141274819742111821326917313464019801306294010909778871608842809371545999044923446363578926039235847865571667746460047572188682741026036341502574396559657932971103105970944757825431540736424529069290442634847115320224941151479066423848837316070568810016600455719387115357985184275462272091509672184752288844370283721563553180532331755519272429391306403479241665344187446386095577580472738735496342427583159112414642395640251705897878088730791366618674186258653977823187179096509675100905568634461375356677161226666025645427928391095762139193757124224927934045698815134762222115276490038795684292344288211884762658179257288283955167511399853938224906868560936420164981215879471142435168779875769003355904205364403189373373387050027261826488539208544877073069843324738713048241675452010236157427044809100771315006601026382004841450893561718584897387850603558706432951717160105803254705653813573133601406217704851012593341500175937386902855294221607653428745268445550310971003788621160601711882307652262221108369741126952809078749954460954818123081734891739720164411745305760810702485903030512280787163090102833092197675698700454541741647224938040535523684365105700185685276796635859803195045242611157964548247687151220889305548436576419090565230298050943103334637197309582188990927151150457228326094095765160573670655695257719031101709549801307006841398383315881833715491603630051485914324329676029312188381882299351861933974856558361621532544047926309868526821821442055081521505644481062022426325497843689371040627411868983017730061113589048014852007656683028254045906809168817193496381105653061555490191106701340335035918855792328478398393972359704755730864103338108744663459065144214911434904406453719926335709408932840075554466865507076375524323597142876725456527072839059369226869282892400339429655515052716582256132112594928342842118797172866506733263610013041521940365617581221512738115243479217100033048877461079780027242282172764371768776424284729681590041505816233115379829631562760677876470409169928675517610963917571327090639443965288687722340210609083670976727822140386034807158253549767321639231218472902222599994292374121000990663890446153742551217209105661789165723518428254071885627007279220565518625588676290518521162018542087402514792474091719007066259264211737310401914521561522113713249894805728190770981371850624510062693372144971883163103493328410031820020350075678940191218826371284166862682367867426476412029167743817889609324904011314377156153005232094434703570841136109570448637478501821961695264025404140839584954225364386773777392342305714269016684401617239312651571922727017233590370645948557523378598551863296202166316688329276787026956973720820317887318130477544384164972253607608249137706693849025475939695091368931061395837528160098943747786423008951062944801482243088633571379568963075158655022602342160029183534441576537325167973437655776078993260007844353485380502528522561514885078229612486640994646028886236958060290391051307185922916174840578256778302898428955110652641932840923645527133364553547171079293025668651112374720636588039242978874743751064930050985008619696957911762107856293170474433605847254124000831977649112781093527473732504278335952968382834313034374380683400277008215606620221387144782227694535043870366280621387878016729741755459766450156899339478644544337060907044002180944786910746846317725728554878639594703012037561685197916404731285612122480708101121445713009655771017034977017717535950202554040862823498738438526712652126578765742232353988924117373302992018969103165266163272108154401913030642340515376913202684213207646639895976129158742923703159591981548809245552769762984457801289019667603842525308994863900340168448188063388747892440938856149606596045334297082206116626430177228136604722397544716020196883957869399055408141121935885385120171112345842693602526880639805190375464650924724868617841311199316153476918372766668501532213152892871463060641884207931086568161141483727485022415858083501249685923813460498548251617232511937867895684956633886990082558416305773500485891263981498247372635806964580120640212354525561844056876169324685507490932901352532219165050217441054327367338193286480548122342034245686266576696489388242311940140187927252917605395951138402035984633084310248272594190816900176080648137069749006574158356112543269190869607022566211451254411200408966426020603461928268864429712305695430196504908830716525099099944610612560623438853824840757495236052256330295521655277977438990463365194115511256745042807540845528092236553277220639105770883857574698467866248198164302512608513156715562453720593774703365452686186433710387798292186753091406749520075633719501682649749466717738604533896382546510660616284041045130255140150909707325147146347437773751598016515436231615139796149036830613741654091733915973477898061372354157978806478032976832920583835272125746983429394220560899217522369328235607952840702366286999493899938255748861131788373760898173716247146431461680967664784963357169707450971368228106600859407767519691895320272350686073894062318713279034795877745112806823861385374389799189969049759866127252030076199350172489111620139761753504360811820683056094045980877685034280758064584477143016388003929743118001704369511353566521510925548722363423943064056003423533818824895184612945993892536022573548067150738040999410172345664092646340031170931319396190141523981610381495652718172844844607135489394361059709715218514035012535935819500847851025916205713722954854030892299212212065323337646258638713074851352825982363094948276732153757557554454464605489171840175056545932233814604676553695914473693519123809166075521482364759608620355346188896025410478589498876438642346164151194090431989689331148023595041750909132173492259830258425911872646447490268668881285267619339086970962842220871877606426805367501005566402053171206833069360491271102005201109929779664124356952024164069095021369260181821624127543927948653805062870710481795382001972141464072714044469763920727601756529394081124612846244688433059242635668014189610776652527670579908759786111130675446541257770521675393216029911955870325020582523242900623162068361496495469762817594469111350090823836757978733789830925915033099204230706380962418203983187217600431798139800156367965995726034247086899557428131363833686342685452927794684371912293585667336936612520595492419555469426315791212854466944098977990728100614476647596973234446280937230625520470641332807474623301382421025792850270338884505477522681610715912226585092086660450639491001173805135294098256744191909919227277871467942647515983215884637190256080546681212114248082287514245564305216974681055463066465137020182543731261729224918314048882552866778745734943150122789886611174042005052520700091950381535642617502887421437765823723187131365465726528612746283020831034367114590289979394837390683421580425768249564267733950807512920250563764677233316076775364667196779957999945592026597608986261341289746006929941185081135976652370765903241756806282149523794360308884304768806255732889819166309360503423017904586442189757110143920351322433366217796494771333187620753101641861357878418514350122950245374652386635961112485556750641722912525311972036691483907264481527749876534801532539537207091004499191877278651741249683986280127656703891749579827256227552843856922672668702068967352839648074572637660441130482718577844202778351803286180640288391067012303529528107909305462348304167708130875716897848315906674873323950958766124200376467348365479671512330533813590578447873315311618588158241600469494564099272191753160464136881338093510854680339461539557562329864796594286796353113559870811834440535816619811481942658342163683709636413774391264885344833663665835059758691043038031168466282636950005097046626700751757577968814041942408820263461115347676569725517544985155822664073757687574789761276560577119565822332093980691027819819636127001206918975758224806622053875485547176417536991854813656406977734429700506515297071239475125239738536013067510121631978944373456693681096536218548388423467936713083178718929009246449513445377888314205604816026328299289348078048998842120087277376673538608515102893133786437787074266588773527595938700754269766972364349489442184500403887475899411164071962060907252772707091926832312025630654776247824480605922235066799672082192869366719413636962546773606977325053418872983777985383063127308293018454418798254249959571550750904038948144915067644309122654899513918819971070217533732051712658624861906241775565565793852431779478971162055004891738277925144900355850203249130058709059347089668453321107600688008476935524271463092237245426255069485787143027243854201085487431336332212194991499522607467798245461537639375041819834734470414947256933726192633567948968998573374840074213252027262144684756927244758073837894803472681633576684089582420123904691186699423104077543199979366789509430013101611669255761432262011997577619968585271169523485955835078374743405664160770489794188268985048521307737085705219711183556242206903520584717611008541048884416595300791762930507844106677948128253124257856617789486173424253218819245610090532566006214640456806744487278661571898457958807273345394328601906421318633706858409924013981467081709188074346413862854202362026496884804718902055548572406383944219836518743052575744043170256450753462193085796951694931015760567083588165889410211247389304198891874025089446034095576890728356368278485805891213540559355723362358698062371972197634597238500232523475503540298749864869787714007021337185121971873700945579000268228575904824057321826792705787794670429248091006726305778397977153888860541826284349545254409480279782478270732791440034731704395641430613481179781671453937679785647701219562105379414417130564847311732333804118861108478096369096124200306850617307954668361783957707534066904660287585748812503546358637719672033551221426303564637479645925961635542799101386424328782807470596274013523637453930475694190846735012875878234725068998643419829437815208729738168795116770952965171490709829976186989156506337928950283029121861568017336525694543815394105677474215729473495847696206469355429589176525722987929645011170473659335494321556586537397233124239498298291660091512058762422165069427570077479941451175685203238082175737830654333094220275896060584033943656788293381535912716356798428015790731640426491836220252459503207318991145677847130351654963181269905848638042727494848137048316864460820388191911906035106592621679421338405111657669119687091866465628444646419305959118986357830478480129824100728474579448594013337059095488778259771399385395058858152967667762674381954549496084141708554215146981343633832790816354514583523973656053249471527467885474499620932568451577537199574253509946905562079643127823567321952548735226288697189441711750944702253497571380749043546074550519635471087823872950569431613067078987468183171015663188710669992020096818724777079442666747124420111383603832484338668719627342815173935472624226790222738582977374824853888002088919513952868857564235805646854758267061948407023184885583158171587658645634175043336068872263483652150463974869085710966390611970768949833936915828752180178964925442333144440464131929800329972793308991023834351958277796131202769504673309182898126153825354986595823287197294031957239738568795703606689974160290463716833399245729548812696945449027890783473353958565970541348070636901283784329373707266157369668349405948791181000936637464914023220423613096360037230150111709901944083047006993439293506120740218840456880626930603218154258750591589114046069393543175706111109909722625250660879461065282096091527101222019675889513310167278661427643800457865062702458086905585403552429173192458716451550654488264884756210937566712056402736767986445362880884326428639703582121398956630639313058069205863773379116093446825299127131999270816925265959897553229894609779673752486814847626629186588010146064514331177552033209445838704524636988936993323906136990215107496143371909165016033778763565803872226813340786794839042260991104593132220123259713056248154558735589283938213784641410816275317654545603660468177707754157005617658352852013829705166055811603154203277567168937878530118210872964430792925973291475643810952560095450217406781681293104876989466812256592215824076032674051152274837849546544651814828188321984818431511006937877949767920486636262777997328011170559689376480376515158254813988297498987524295310249212576908487947694000766772629268070510399696994399270038617452617164549479883504519803891538282269960617720753148290563304052886265146717733570943582124158706076851487000849418219976197142643397080481953282542343293824747640521333331518714204469384061961633431097305569422142964774605954276597637952717607664255970231543048227330001032545464850598452931062584036421363807056851453766911049775373766397716557519494298488235528813032523188981475979541675084544610803924292784050491581215451264130997183442102698518449261926937166249721809520160332190335761462974762799559393012901949780191937340746542028133949382655955935235475601172657613299898283341821687323914907292072245356335665577315419194263477897426671456185643412170493943966705708068376965936588405653423089262496881995220797693867809659508040407547836952172279082901990462766402413749807810278839586181440038079377226580538490490162831335823766158253169789005403776916260590422706828780162483527912076696731128132703326146287287662208849059226137790096033086505681414433208795320732171201462375498741290340244101500114763935091231134905817679491515782243382138865450758824080577123946462243264457365720164322023573286273903774913024414574980504173731193013480501636363373172034349207556182236114721797487607638271848136424436108909221574222932945650415541157456962268591595114547413093684858783393513051985430809198561851946066451911441753095514441892593381257242649021338622904808682169517615304761829224195116342928953925690273263039003628656075819054963160215194747090843749104812861967931647408684821782343096746824042848058495987184565695640431506393390831127750630348267100546629464833420805690897464912841005890872564177322052205488540203386308383618883026050234894959824085615495092309588492187235577175988835783592586450899722665073509865073080342837759809678661591399724591778064648443098352002857937207074735451907851484898392167693149114250501733433957883093786765693606600820157530570609864465763236323679739256582083007514167555559470640307315066062416616623801379223116279924656653932667433677850198815405014797157577412449411366229704145991301629438602551596282129130929696851476429586183044728731644633628548336840463532433121092976044368465685497707158560186510563653341296208712106663482417378844769566920935431963594761701148738251642438926720741862082261947073332148913295005775091032492594703158095973770310044854148271218030078346832191077538158969287410216172828645340391049480115277762359053794351824773925408828920093329188446600528869260396073583742305976546671193746896523229164563460100552101358658919180461505228408232892287138563637835581585752701083925881904085233712938445001747647073291752826051457107495644949162628861336025424136220404870281017082151244850228742075511902101863096546238846090187131027529857289839875723039766661748509653529493219143007965365302109278585361217290359461429005858661170520544644513938150526598233471896805876357694078237887691902311707257175359912647141770339822602900280625108281646298564617428441598722363554336785789988015534777971989182093507885847816266936689842006652615728667598500990411353285505463140839116628902833196050138844859752996167555040613035016336704943867652301748505197568021376409134984859369424875516043492847966510918037354696507831941519891448123167109121866429526953213677792394910640909975519968031757164805015024276344282871370859333283881070985038863680428576392486131827266707796452618497622391534166964405897055167533407199288786496944954227607591414071788403671627997114466251963556104511303969316185296166787525133941699999430567183545311642007417109090016361532640264633070291879867149868181378882316848873448932853083782817472943317926326014311497568302655023476099772711475580435354869722979031050121700544147556409667748604911739859251021493443509504606254615995839704986007745897099647378437309446982912578829162447403774297931479815367351471419612175600886625950034486919263452612959724481974267430376100279073826023229507317659749497364981393906811358677042469913372150412569998633434981004272965101537011109801390849519667314428673218265089791865530154676163072283859258846320779156985803159077368618830796419799806619490240402702633039238119836687674195186172294724287091159669499212799056153785124534590288417079955345290802538796045189939013196997147452472224587409285154271025001376628818748790474833958811200819112041252235030316838492100131190956532734012569275561436234364282830606416401715895951279725030371624669771568167988727763597678112733619322638907285643570827162179516613992926754583550464247477023433948381656632107317099451051343259959775672525509919075201197841408966731370070285087905230091383123780680979434354233592501001506660366258925118146986578529955265190163661232652845517440662536208506568202511948533076019820505703239294537120448219618932438448010730213695716749144378946508917614088943447927330261196673606411539442177507042818840462090547081804217113667979800357966971553552475075077660182973013001853295521394555668495101909440700036561774397643610193258376600464491289734683245248576631994766984217786160811217587023375741710328993442716426977174922462181444544008824763020568726754851540651695811730048452425970256224482539481079987775194205172675315647060103651367057430976156932554241477068432855651976179415976259812926012448143768208280666491056626966487873059972847163304472048474875764560299730234883141557768742092399241544631517202501615803942053718161169140776512164779549424526730037347928636615063293819553287072445292748244787014432392239016828633520327362749794877825149019726577918593301961966140009839946548730502418635151824054664954834571939407804672953885084741955854612363614955281948408628545947131272473952802017706503099282204162941715335939059264650928477914966299004436303860124494459074801105512580183974890916428558423196409304383920420227645302501065786092214454288720362591999137866338171254384547429634361184068289674763962509187903565125647219843578936198808079670750034238901149386653769994103658985923120326173889737659233901952822962326297938966017729448664958492011646804653731588609485723752355444533381561955311311141782127906586417456544668107132041518677426858837668179922881218134985371309518645061034096078817380247221054486221447601421728306415844661699244720377482282057684769113492944993244723737547945610953043240521668302259280384530982800130952996266107188222103446556580409802919154670515460339338472013125757697320552764761993245989937632380374598351850449303119350284798922281147774928813822256546731010404358480032315731458159997175607095277590066644956059589940954447717963370503983854432883783865211521827126060311468231258141783749119831305460347172855891961950581084408281675152111973940664368105250183643950686864119144237821632962643642914912315857304389482524320625485115970659534990232847863796239149878295332130810655329675378997283222223803938387391651590743280482303999236362020352725109019463451821301228106090197770072273903598490978853750358849840678895971909891501247166696990668688425681383285725699729500199339213442200331539145074029983972642674680764117655797757144294426457725554996910502370735093509200299576846469935545530936450828117848994165610236209401670026973417590089856888531172248886425536194050436509020100967126055015431965280059151979746817814754293868254767091248848429456809642265565769857074561775018830007449557973723639058681012023434364942578082312597698113457297451424198123929818259014837739123325409582434176446854341596034262734108273847910782226309173947254331895926057474937518724886024353159445154015595625024829435959753850028162278240207538105507715960892888212581505745297952242520143328421760836093700033431154157346694661635727826512023006006828341815294605886858014230838173663449458647044098635259317926184908650317763353665359533519190441547863708309850439081679475506355841530549615209610800749427970871147754905065186266942567380485189400216720641060610182223000503036589872877780656498598687908932030933686089360984005216944957815748693227168128082130905731241657616261593959825446812436865075658841166680271978989820276909172617143369211519788735654277900966747509438046095498795218165432785824579577823167876062925066262539340609401833360780906235432034532514648792512073018974112637630555769612320707187695745928442749865851552469302277462873870552356034668504110564463132743471521017017220410331416542500264508560988070870705471224044383780863911108399155740156605553228142132529977656405289155394619223705772800361582810051511859425680743396552762168146291031116398028557297900433917306476406677402748874681467497479194642399342206255252161195184123704561428024857423231912209968109729548451851497976915576639239513409456664586281402182803088896897461368838001839445035214454390998624977601086372181660489086882826880044893811379322307668636290809567157037179182002144687243873296070724856111089290071061392668191835885723337730390324682838933940487815985458129626014354211337495959074656472494776610122877390342241360429535122854526226370268996197409473038202781803798065359336373149335370555073957028667200482439564779628412826241809349535562372768306613712409724506754234207215659447793142018519162012509340513173405813957999929523131577608494594774518554252648352832505400398225688461788618101658654189375197748476664784756625557949124724976820845836842504211609168560314505277134914360158198688420915356140951083092829052281408151314785012485585382539732486690912350426490399157201957922364857123250356118510065727363795723920867056572217873015022301194546175022442294201292136469596107225443034107618598474966241872285712570040130526962392987562633043998827161273157048721649358680496665003301550168254968879700958895840195168591883280183355240246590209394735146795300859217220875233965354867968527521296157572709548443502512895330342653586420930045780349515728605040368561850540894155793044348942361656206890465973840822198555001976160020191877477636126201608453742325182938642339146966737408686918653681087778681864731290970076824816550127275763286117120059024846918737669224401234301751816964818826710966217605389997300733829180069993870533562951523449229367518055694858557951721354571687331051053862682692039287752638307007533429669269818561087481947809893537766950787924967687042449500958034722670350074544582371831286790094037923966681783631342543139252490494610070100308914611657249880238713890560878229658889644714781545865279599063135542467709381028062339135401910060746605498888339186483457496906230672404772170456306764415025774930819615428735176254829131733562682408186452050161256552757348443155170278189959691273561566308903256255535596835114984814413824845914185470190348024162516239633821758898081468821175669712428326208838510453347917066303333716392875264982375301151688545092063397795791629285263773510372384311406348641235854381009818574734461731047543293911828643936090609973277763118886671803575670242695379516404569263754265321582099231375533590751055241753449132151458523496869529065545308533060693812244963225787763545280771629251724600431421323893264616183744101134850048271244636241832334074203905276404799160977469504410682260353672138480985821969034425205492632709032384217624352925172357878530466641269844305390044347122666269688001676719545848108840356227640091350029006299939159997935340201555682328638916091760185478610439115767322834171693719898059239724094496249416671460930742972867059522371615531534517051704517609123964898431529766919143265018606290617690348515203211267945639454546884398844155856763075512869825538132760846617536718394689231100789921526456728130422583716367427518824730786065600587231250027454025063482199855803920149218349743957631821858261955615728544044769038223313707653117905017017797283738989022366531689304912636390772579693557524417568325414761193760308560220623037415894430573992144517550429932962475939508758903185819373655162768945256428995998110624854866180894039340199765886591921262985302341795232931258983826307624292723913807018078678845328744307056256988724837046135376672007113953993866811353477963036973212538398910077897977227830536461761938566341692816214641420950240568376991124840274464427012608716054192586203269705468579706506877611762411442295628039286224729987477676121541695355339657818900832450046310996148874130156482638835932003963918241343858272891193516495940602609828639579992022450524157832450612597100942037066891373844541614859646258125967470748520171744932620320129441666538240132963201527189481537721404925246499341812792017358923616906531649841827261510235429420387375042365910846272163553749027267772930168746257185054881097531852998697210587900140889631011040881625595018392870319256114639215569539364233932884901776994620157522444900788287540930287636087914893358953949158471100050145621848942227584035637734030944653743647070076597824174328875933473931995378272163322864641792700228278920567546846017029801164604104227805280244971069602850024342001693542312979455337574986959253780720919257207312264696547336019134326615905941450391336846978973009662465957155253884959443188631419250627253761780980983411494384458833597169816695598156527973558685901254141866198460919099072392775149524485324828568453788861018695393626010168097298792455049991345791955346171034199341750552347139208414621719050455650501975057107484003369878752861640777380479955048127782740385983589273745330409098279293682198869942224975432987581676745316577097249764871536391756264879621176164298479830832890834385816147715866851009355703053268444989420187127046826777230664283244331477202168906460729606588780031889649302277410765302032510330972372346573310445026195377274244525805344229334416638599560308854553921238237024819523368062765468828272432509071730687093707222182635340572569267302222666384542853711529782569055273140201978238723845393183290248881702465694574663705294855997581162578889895324775014595164476226891723158607058099179714611279627594386231350959947657403087135048560514435731557988874010291478973045652189403956695209093720958931510721352012275935092141508844054800881924547703442723280576208539915693021738095722269108806892353847274988480860791625876610419273032840650580670579571852197544985351256311544387639607099795816532418884908951760356184444245108874450650855927807628326458045413557870999106851635573896775596583840974797682200936785055514036771617651637047991623827010038543455293315371939467662597668848019977892645124480303914008996273488997041371065885929964372731576088297150880593062645141597188361553399425598754565231208300638157119451021786105485282023743258038780399244921591548459985877736074685794772945448226556783764500912400138358946574203001478193433331561054097758788209792989738018023300353688076461380412139692444425057171562679150190636429790766914406433407780173682709383114096811696680338780722764906411071156588113666949660001589484845232033742986330475048193861385671755560385351780704570913658670510816303458766191043577332538393475946698310121800233242809280488242165328913768289940901452466223123329788339616802116712425207365318701754109723635197399323301731514065869668895986815366962289114593814643030379227498458805868366402077485092671895653686138277661240370452839129518723789500280525366337781893505508813309719023010880277030759766145612527133361192235135955802763765016233456574112321561615250922773941444953816203525924176985605233553317871826107872316715194645114245079327307524314813181382050505951192690801410542045951299528781069733745322029304912309753678165981051292980577865108932384846224483344063547169253708837904514443210759258633258936419425291777706771845873303321210580308113330852792641941934402413206028859658420972468900191354917188003685930562492876755273974161627619961889370486232463932704867009663563073258708192808704890679976238143960922345479123190985990158530481046715759252482002953432426748180555000723638614052254131288060292137441286540942598333995238158199645252521730687326822208370635797492120010232708503820134801752247715735187943265267203366895282240361162511368974245507151141565098961884269393354610618075627102034766082070720698131184471791663533981471599597152160579008356686912121743776854086194510658257082606223305745969214897534699579783456655567486920915618611049682354624747569237014108843022266536073825137254475232340089722135841981167827049927164328303254221954271690571022766458883813087134483785890687032482195610065357973243190271774271128826428560050163361023868922687482352146822444436997015808998907739454390109323995371056843466149170629275311680712626811724884163802374173506743348226655093431367359977478665382205095355452778304318933824612034592431258709760054646019426655949516915293878310521324691603059223224563866749407881116975790570490412158679141407036648996971854956363962967979719602775984395605273394290406029285632886443414087757792585061129498560412131933673839672849864367132057975901294546532229227679185136389244056720390276933358330231365473770611636814782921479315106048503951851941759974974401535621102527167620253772170404636128511295508108604205903909266107919126148513294929443925636818418895070868256730398696711690410971675266635124445863312788742439137577750419466793430881591486208032905946325586490699155727398925025220532585825673356453256708032405272831895049415282546287941541319920371587008474773966582436153815097667327467597812863168515653199573126930471081073858084923979700293278691014586010922790800626295819964002670172879854309079778621709758495409840561882357791941992832665656853236631490745095897831275462175300437323080612566342211848594130450675750874701950794564963892106150197060008065931349431934089572169487439020157284869653158958670545403061528569373697916306907843265999215299206382053591874692689445472388954808470134147490831243159657035762836785620472577710094497410491381665072883803511758432983486937732468631143919732626938278727191952505581460646036728888550532920972316255999712908363631448352557118364967152066314175771054383067206036498468657038329898451997630064787612525062221664288095149161338497783964509037529125730570471429228982832470737010569829543645624205216961252811106697941185353369704761682051313405640887157998933673348126062862786409253528553017036889855504853120660301078874103240748491002932354074635823815975612963270546911216258170875466820681532327831567533961786215468096900155908625365734713367513886560897343988317312788778350969942538443632235830244815557805356486961692179522836081188760814098559239453930603332603398375386216377477834881285866122738040037147627265663154690686426860407246154302220018537899634279938112235986691573497190631349486709880592557012484882680696717979125610198785622383684278359388320350057605709470186130359863302396655897041345127671116976827095071708628308927928442653757417807009553094481994195099098411671738412585575887098455904539178550682587132169635661308652922671693891712137150666961454608981213817855123016071116679205688749104996799202866642926869324074062210872254659584555618699089823959786114022033276474497212950521896941321024526917678547841100905695092423208278049615302283898553800739533352060758317139639609664623931113007764535239378715676736039120863201807350533261125680680018465570945730504861140416334170408519039663978731939806810213323293619036176021133588675276367399180011623510588816893987783397155794718387701578584884456680712308457873658655836446755289653602803246387270738996022404023807824756150559768476075876397230638784959500307079767532426054480976415415388423354399400724496459989280975586292273107998129934654533547226305630534441846753727563929236033386242247838718475973688798161340427881540483098159282194307534615620648438001684913823233251702676686227776953745671920543764504896059251153516780657322691912877415224907590095673005095077373737888760079823549198100671603878432766094805153438333343244945104249301030965826835105958024973971861553219147887728743921612249009993078850199839093772064086068197256347628820082729446673372174023461390934993266916507607993427404999124975090604009452487243434387838752270955510523132826094429884651306556140753537057508193841119690604590613443001565176790473087337035561473968804719370402600903178105349055761112754451951115131516627225312380931377959358858025656108124614830307005225228000435290926674291638668293080553786121562878570397488586340521399288456227704376099483631182430127295797906296250641464059126430372035255358951910923715249763045757293381480574599762748268754706203536897783283079389628660857502426670541974086481077370784710295125852176178965214482211594423479646915071382521738119339060450363949114432380326806082555278352937887563425933843765668734347439734419449102961732147530886266369559140058245522323845967179179356760363173687188897392908474562199038162983742948201758968205430826499008809380082877108184642004813478145227081516855827850757628860826609336172266395724654447570928907630268223522637312888701195877267687683775717630715966868019992331080189495570956723229680056508859227697881198624166654380073198023827716787314632282703670656646390902212561886931261908737190318298204863174905030849979638557933003083151660279339310865705049880211478251696611871439912158649162236778849882977718287851374191315134159189814562162971025198295695925817620023716498167917322570866421347725913933925224159279968431406548775342800109819963912122052870936317155745018142207713016647195302758976379424899636657059217590182096545053680533565427207655098783497180676139735159023306199150649511442550891642977631779896871630415751826534353834325916662342555776176931414225732581692429120397761161348320861566727056316694429581402387004569577959104611327663072193467761804404913227127945101925974770955202306153923047620004751418149124066396415127785488786271475874699863125015048552560028642866127725447125549570455706511730336817438511883548622012341161433057051255680247416810358989788846513106052817930025619242822536884420694354662570737014260155243920087040998137049699667642684367254521837975214808802421471295765501283982850009489940295438998040822188580979586480456749313442419701836378607118209813590827769484027277793244812190783874939587980350557624234476103970497330320449222031992692915252693738466412188947924005637070717607060159727559994485336715727668437608992576129099117575587107722218124610795135034406963474757445946314542202054856301780878607533394222358224032539237073513979671218999414074556750518969185488020682908376247545711087705305622750205275474933843204465338912234153925712713201273399025859318352960995456656248267673582869037637662552909228726001580371585250903455162170077539856239957631852310906159241147032024782865205762414375913501483215288057916022552411250289486464777469082828372896406795494754057542187653268061027319296790714670859860894564934415909599117505853708356741438158967048036107864360394164661555006133214551574044962087143225456736147673465388392023343241307378306277647884215055201739681005883215245119997433806280826573084928257996971161390660193384969727578173603762789211264119904481017816118627401917887430708734771246607141438140274226406008093373569378551772211118150258508847876556408243781137638519864948355385723744467152239921529408803673864710028049516747479907185038319146233448741193339162504068004428172300887119562266553761106160142188490979218867168961208401059530704239774402231548898849836058919131782052836933527961547373341367748243933374054164077279702826201803560430121520983121435707457870530339657656739681154775387288397641464907819042456506160042098122603998102517396478332942905551460633078761523850172477601318584495528066933090908078017851854858419057667660446695775379621497719620871798777084986592934293511266141288352258853934378389043380283245799264255088818695108558391113266506254706709573409818721696264793465473974702093504959110267059663374945439373194097635543711241202176137022687695985775631305393327233020315608987529523926017741977446217441476168492811255122024051182560350904407738887227169647583800800306260989919303030242483995966683118521071818342967163542998139540362346555554372582843452254933957269333646436550515597765196857787664171106480811373891336556600311226876232977961313124841254994948170064932550674657347574773300520853913652212151074773562148155850531759385617909148960221229461478169999460380966878849122450436732883839692818409484354959679323763839520033599044482140718034700161367301376700542242444501752616281561466773033843621231666615355418057347796544937699982046573863575161164110434294003629935400213994450498597967096122626825298806646914013538978805623478135246907064757849736243954222567813255651195562082007380757538783730707102566158191669789759926355981758373463484135797117782126643170517765473091252257199095781991908857244100863661967623414470804698788131974940844597213236598197495275223929682074903096546018559563011173501891062199250727694866442855475575961212730122775435524424646924857490320074138900036055481893563893603301499158607781401291288956430241720388471925259595897421982497615249045254373365124542729739940143874242647972873032697622549343561639396734148245861155116891001764466918868827685319592435224530115210896725081864673492996275500206641025087493504268460898177983192846651864137399216910662648954010882696748537522777087965006135411911764313802886117783598251486921490796120606742804116531452350481287010196072776195562630160850205339965515029132005756407884694381639530954212272272476391582717137391838625646551969281384605918872355825630441133669358325481867589507058539390526613086038809972077244106927522767728345941722160961641787910347087917280720016970050258766132620364911207718300818302377768854319703461088003732378074491710725872019463012442901407831230240543867164266515322250797250820257212892693751671869631925054893972781290202483647981920229376719313413933523984221954574822083875732321140440389283718794822846699279471111535940455739639843126463293144952113949638943073413075889979607991564445004697637315290090958365817234595486868650810217150050079436335439278909165483747585793790612411736918731174018258328823496557217507764968712742085313710290109003748105687615728200272527175606529482490265431201477868101977385827547313345003647345907859378171653823488238768208302736057947628288689332895642814282814843319665304466742133332195641292051521687797861434549605263740585427108513979426337784237719365858485076762747048056688756433651191950635160716029895018008689205783072112388550186142368059245646897222346566978419041954512779737305367182597219886209030436314033463851423111144588159855907845557753809006857589402637743993142038545402902197159439403104313229502321929132986335765415208765501551727844213992064151564599696101142204100501039668875025212727565751076144682707209984395385363477217973979680416022351424542320886095268103733473894070097842276071922530352080795150857912520179791989516550996638009591658020497367735541274988104954706881533666203839988585933583603611195232103387425423351351390818833501712325967673507654324423385747518802385163205513509802717055114938445630944261390144691430352376568491444657855732290203162558380564762442071509629163035045105303889149381895900742009670992113606853135446417725095202014117798406577110063286496251925744184730095357578347489171528106705332228581467107446853724218895932074272576036870508639787137518533687525256923310671284844828708377815705146731224697300847864764447247758447052787714531332970629606818109971547173106036742657243867493391588660713753268135421138744047791115630111023985842453095809022144045032239077337545798443321250222540434080419335591292951467874543071224714239294664255149760100942295238646081511474765357376306689348444455257216058941620918100731107945596391081543389025005797133966638092159698365785296941822626768021236390468120308982017416008489053684405632492356379738997965413251531376817972997492552352622785840251398513740846437066809097678852030066307489601070491254464031506454997058551783912913382663672984294048437181702304009662001802161958239831890989800684528112057907779928766135911909395213219046370876180575760764858906641963477274550046848976608825993709046173114313928379047367608716490885837838511825989310846220069793949327429633675651334867828548837179971764068708859770460084403842699188905702160679119387762047700989646805723739821254739994446772820921072342523298371665439372704409629504806260974409826775889782581985063906700131963768265693935780715559880338707741307329265768738494213544341053163486885314022043140678166991297975094234506750619068329176499575111053620913739033773293934554275628731823050886256841628993801009139429292861295652674432952130785130965247277060464989808957102978031918979375331668243874609091258540812272335302828980297860266990426378956456812544103810722167130707795200020727551586778925322411999100198954446672288413978471002449556178241129976975826279046498909018627569211419697726402137884194456856024897803943827279526075469137601611704384689029906967400435090097683921797954252853494303963072128841468805110507471734214961676692491163164539877250878210030256601828556551090327210704581366619884984383759045365071930218653584679532837388545223452388166832066002084939921785192212123160011917912172530220398588342470521493053212422888406011217126443939225903769185919649028771905098049480600895351756818858783297940512963427441619443597314804346612016451162088480372412450638690680931905907768852503082571036649523744737734060766314005856190618824117969880007214705861470677842836273967718581279706077060201367628493087110176135486535269717525432254659531329940634963217179221640358637584067922268236363825633371094409645425575174350815027241776979042052837299623558919373817777542344125446693291792904434042890800449766644530470501352435070070396571763345453764529532737896059203772563927930953677230262320713748748705839356623764498560535984278800248286720025189311566296476508027100788355785630189062035602743530674720203245446411615016288256995244154181276189615923429442724227538048812088496010828472844207966859496679397737019280708303334489216991775197037104989780475875569488997920857466211855742054347484194182855224307506574660750822378257323901262365431354513129087446681255238251112788149665993344440700857069401407478350778343725629323820138096022786904631257724019767944196219699913338272900689585530227271195354242924201746582014600366659345266259769898578093750315157513276791412196894588475497840468834826740839788557115808078064741568261186839013476881799365288224201910559598445398938813737014813897245775977052684872071363127502121797089391896650058116447920320968945743946584843191687761842359914642522523934266765252880208598785050378550253008529720467324818851208658824192227066301469555455550480213602796328085120233565450845713885661548347108105899025546569561560405251063501087905769632876501240041479592743921256151605942296368590355895167182146197450400236820654724488957836594208721075727167759050732645608708800403254626266989502002550267968945223305656844388719822944064535699745096460490002527388922835863931097496426242099244838056617042909111434271123934461882487575426598886555022807950974082775017785193680284731208849059181197923338252252480610112837900829469650184002351388262775999970172287611279087405772674143937870509193290805953661106483476210765043173676202996918690241833236679842767491913115890130065001838223102609387030041645869169992062937260978333276622945495166200481957658365835446510948085925477493013242982353545722053792669895356742394120508137309869850680848396843969276730242711998947283217506990789273427799727330411490564464890503173746377139046913783863134641958017908198589418977464200385935392648990963446651490066124484989736173877640182097402433626510006227054375832073707557248985231330805757991300807432323815807273525592097741616293014880096742943020742373070234163235640798625776903705073551299342516495204816776435858820698469238138467009458634567558767197891512695787015433397647965962542213697752599411858970008884915113391760855412747806124423734511912395042821892100693465647785258777367229459118685070916362491725556553022803839121486193660999632821595222771124234085727280358926341305730770465980288368297318560170102956842897408310570748349717377945572455893199837885235351527152032202345487097941860580115713516343342726113491139437189091294558356395219309616510211394284386614642541721195506963857395956200112102662478828057486631759679540716091070850198997003065556752618411113283150470032800350052011265164287199790813298550835293657142521243751280270456030331998833770379654569894545874518446192955802881156857778230399943742199593564092728720640206875632814476200552784068685384917093686450904396767005495930621634272058056290634830186312442043176316092387904780227120906973963488080690895198113140913263745178660307662780283905615095630297040452782225647602625206199417664472955695604399398352203059515007681758154951842996850053977536187297731614217932885779971543795327435207484879436646929966308569231717578981202199655013432167107226802193077604255728050254976758065408925176596182477115234664190036758148277947787565680322547828153681705436343960362206589966101509649798820166510355036298095900137082771756868452696541660391995266837021016448675997981522246225569290786065860068965833403283842488238064236543893409161511459666397827719311161865534619568933056527095039778302871610526774078264784148405635813349076020861315420745995235993102526384704479087447116649602138516887118908556277800713462892797718163094987802500942043181415783052829348462167790284755856482399978048885277741498835600222533970666026908856365533143618682669175369422500964427086180538191574639633680335653204654908722253016247849514104648968258586337966355557769764955267895833570976570074542201442622998408039766420447013915150588816544296035910475409861546919793603670656080190972213533076884377656494131140172037340343681502785079658401002751538473434683710949505033704390353203546816079934060589331469464881105764655335127957019228800428932805518142323125648026782275716554445171274082040879257868758026229830108131455486811590748421553494973509461862251099889506638605499659403600874274389386655897459734403062294826655851714507202975740158429373665596991515031929956899354847196217092564167498292829472393121689847902825449691811687266265463021204104841524656254545155337514314114146983415204935482989355527597374741967682128402163083107586449147231553112450948338275318943176654696046354266686711897306831171002719269243048659324058653161259078620257143355623826490450858977498434107576209501980529476719110847771951728790862464566530494289942733869070675884176782493156002479923872457081168068596905195174866022404641635298822786916637631445702767829163988345583297787821068899387328949837614186061400956899577176489846683529358791532546522925779291506180458321055709233503362800050450890436749221795932782055716219900365646066911516270628129811846522801104112766678410412637976603558164413202813005630908755907895623343065065616530649046720488470992038548131887052219383980612629075223796225332813739213705597899982839560048401163794816055083496900113594086336613441918722563369905277926128823238226714560791653211635089645027773320924986093944658534685657220395601476047064120812640430414335872063724028981707232126175194633758644697102873151918855006129153656676796538913586885676917324440198080019290936372232925981316154043879167913835290263546347695199609795242837587375340663232749606352051049738079602797312520479464771973296036704040214325567226708178364707956181731532124677495896269237165374348950825561386913074062262073795346594163835266858617627620461472728651761971989011128217275341595499307661487053557075444758644401907937809433969528705526058586746654347633934264782338984661677937720534207342669471217851211491977891764100992348362933166638331245243043662359197731383709229049464457344877326096555193191777755305121168011796500528571529048905040175211547609958401179048288185970079777726195235914305768966321515063624739403031264876658177250589657824540114471900252947920790012020232988228943025213975246767260577939297296475422175767974012218176759858886606352892285362984564254791734610110922409457506894852412859472860913360771140735749756510788160325711294903272256249248559561928348355127291392127514659041243506634960436024068116133730214987554839581815129403317694742534174664104896254114541590589476975924081802095662726794672296660516546591938339385334877888677615622347835895788940023079001277099549387091615917075814899989482265701936204576788487646428148868525935453265530819040948773794719714382359191744991800374956593409092526385555688946801420157059298690627963232145130916495427973883582902057708302018160535229171001957270070448928554678640839850323518109396227324787155373245895718119243431844039531184199227502290170498891477701027049487724085230165190849222476441625267090113748708509908311598437805332058662406576365479757669407686879178234809524901009907201908034246592593589701406830394633611801024257713607975417811233006496247104725443394084355305507852989287078563612108475262476844812459549749729752107191880675721847364863997612728120265403426639134382364352333967397965396217103142048151589304817676192057848784123799327498816661264241907438368126651874019155012910288045784386450748723868715144156829616714920608142579300926364347500884102996458238569754562287046323939846331675664220585456066542041813236564627592208522795938003034301148423477580461765911228655766057680365028364716053405731632741894563008046078665167573800594387481813846409402879690997074682032764591304193025700739682251010884505921299976866327153437870285029200401404917363987475619087084267874591808911398824765623314165424342960556494124279281208308713963050453836656120192209112511554653144191396406314617154395057552073485888687277027439796626473161748163302379569960506966673308490834992682088023069140741034825857565116141849935697069285967662914643892275255621312175902768785212140168702968540801247348359415440027107679747843894645496396298488402212798959884936066496372769040974176863912960801035659661084776342101193871732813607448745456979572597537591129138308762929867330999525583148302212050037970228538584628083892139052612927467349253524022219806870456791305220745797471282003360901932692181234090975233385135279796546769892183485085127781523013623755774553572695946397852028606531123853966156015601415660778848877830869640507525013808140743074339522084092347083643153809928098894943341280206643333538913157609345513041082169829913581264120829816860049704394876721337499947954744697244531624515368085527537168124065104905106571123569664482312785308566572515982362478183004840281917884005683928462347329092888513839246256573981093640230400184380400568458786737232196630004854354198179608910275280832309592247222386266113834923469207974330401065650955368442603105976225554813458310984779987484276777476582366599765695499060564965376139429767764899706038900465126414829658993952688899996041070790474957445235163046904441638684993400878138487891107695517301581354584042455507911142109348798618255060949647156841640184722664835794528155491521022160756334199940848958438280660776432627705249052172428605657404266884231887634036897759180991762397923745198120928729712731299358088480705153272331294008579484080514057727768055324805119286482365283609923521104104496635296320627339119887319623512068943247671613469665230699093526725719950237714517808358533444413422025175396408627860459421610971530104423253962911901632569083059206375200787870653992890118010180844689415820735359411221376930376059919211998760050682887897897144035059730352182444003632576454286642802537651555535948925734708082759078722605154889625580139600246595818315169134876900372676376296684988136384093383500900075349213207496731977233240445341492525149286528218437276208699062294093376452160206688342497203212843183656680171039265680200907139271770991258103107723386748983176970828835126710878797906015779475014641498059088212667794712167424783909572318517080411176672856374075236919529253259412215585452354572083615962264847388220440811610287624254502349475171910624114494502612167674487681807438864983612712556551996114594682958303774773151642358904465641820489147495204116845136923658909071340177865309224043200006647254986648022549537568775660384187641665161568356344346364482851927993323902527816067433547361614044132475710086004834809742080009436204812217868027684238118843238581222969428979427267880738796966053363470851422720348521803740748087972612776870866115524408331310269897276994540913787163127375203997323830274169930198976049160513159762730326192497583117638916903630629041623124698873233453084697333326441145303776421494446645431325623223570445779628066722291847822553222164667486159121036090321251458811785779126118803595682465627691015919397751181294670586762290330898912895926787813754763634249794663049453466078139110431447975355093624018582449076580784044977612894055032503982579303087370219607279747273519048745640975679787337214668275090774937638960981606736621336503202866262591744482040914972671001286424148656120095366063606191523309269124449418865505080337262383312772124832612745101658267216030784431239514074645343453715388387237817331671552790893147466959751145815914391695101541504465689239317908074124074919851746503751209136652792827685223598593221996042693267546911582127764106483580852737597987527932637206024197495112236017680850063516166301551862434581016433958170610342156113751586989155027235734651221157891989982566338719545825888477223786726636740813460951930493828467369078744943822171146391326747833731581236902110999495796339628160905191201978812804185202919843348223176630374125944924742859859140733946832150382333595565700612094871028824015798061621553157986098704220469060446839871350062946052508415696923856349991509951374563402655961377194749437465994890826129800528605158505295981060839249208564890299331788798115964003328382154549466890288111398252928788120949054114855240965992660297348341578089950257596400663539226201797090840785907532352063974438255747450148626381681972138037616464918627609377930380070693179294256589632658027309159354198821408377261901076316376748301397868594262017293341353684354965665056169967289547301217103288752974078879906979856143543183602761050364840614408825844704142398911352438890770072691876364755548333109677907152337967895911155626823211706579662822016754635880683058404934647359123113125286568108460560758455952221879716663343385273125978685209404868917286574172499325985272857047665259375124646673876642809290343398144320698164480930655430642323425590560026103068944549365054604354441862679072427109415470613025489531799774585414696568749816672572077438075826019792042109090160038853021414129734944768157383779614006480737180407678577271327099183604063202603824604622328922790164630930511305915288042765828667188860686587694104604512298857775722511694757655579739570846401447219700341986724707219310793143369578478450131573445749146257732983528549585380730358228412834769708914523281905827869731547014216128686352079016753814044166924678682460071899420579059972986353208383896331310937407386718837588755374465801878473110776931315865909143800597047692225783477082489328077084712379752617434115336951432576377448481217707451309361484729899863456972704582355491666081983276255351303814972863657679693883773023192471418401119084030050750832207025711767502846704920268130907489945494529467601980221799983004283051804990380367295490425884302360309126943168004972318489555669908024121972504043078001642318242275804669117043320750263149723815780596202718941568631098863353797945134398065388474447747187204741872815126064156403171884893738102943144905458262854433479106887657670640663850699452934477224429985064332232420006419592692545860517334981865541926112223667475645313488150267650695965407257565270332798272953535198752021649677133616301251325410511949538905604852276127439524940687297791067066683318922487590623243438381522765723036056085493048881892636939226520366811183078524783190237968937909259830707216534927345142519791826696359050116327839654016226318813979977339251769249653230180216403789453246926963655430824113899496867179416289648956590320966828116019944060724431350769070796308109166797772061228205662287868936335087393794221888935239761150608057218164521010175967256648298684547722487966111784698343686568086496934669833780383441647050469694115933710563004742021910696202293725444761406189982013432677481572021568704141516153701044341712946120038656198510530242347714873777097071923382943957903576725932176939718424178126411456691988849200697179914693767155435408978052744156367588115518364049864037273261600813108635633862064872098640072591345884974778723644686833386760398160697598613312748464946844593450881762706741941475747992553880492366012054410727679482649608919833661052684758364535663077774320972563061340497693588434191285144129682078056903868677706800728802779942738154082359254913558378891696778930852617384168902563217545381321898374815017602194227852347386615532434277436010092141711596383419402264518375954761377160378348717614714354578623877978671606492206146461813402615506573097929410071345183959450960067413910560955031306302830817196590057726246348252693239045188296144306690450503166511316283564989951871905374086149883124699289911551257580441769698055599099340329889070050470563883055578026280190324765702662972467607864074148846801006531626074226028649791220812501977192511714216845302693975014985758920170986228306454702362739643140961673127795716438865060811273226374076897482197182735317366605574911485811086329570864103844993868743700991728719736096989591026025712731783074353044638715768347144532323635781005802701930702914107999595622795614870010711044319111132915021447159031128081133071878598471667963861067780625537464884220976071419254678923033306176904983926365886560790311824942096949321374629445399560252558710639153246105252307753911922491368845452768268090529541310988970973410670351110296520552226189991351891765845346662674571913347995078010505936849705714602957870013877387939524233968832478498628748726375740365827328747544445131986171873966987647662965327911892083787191258432508541462500588279442041369455023527892268633487132748771979086080848368483721241039603667544331946701388595652975098872149438182698327972644376687640384272645511225082503523341131582460359588910677049027326501291792718398704672831312696611313300586196009938342389149926126015436571620624160528839381969334247896258461593806452294590390480116056651451153214319124624436813976921627540460708249174702267022682743667625343133723733798443600841926285961260411774595279482705091428073219646043350984965751845848881277895984729075373958189645730066614187966734503105045255661228799732671987190842537521596746049374521191975223762669388290047892424578395410409352003457107044136840356199042724010497246797091310384572916102942613281633946966187213252423306968466847206353397220079010262342928564680406157507140982224690958805997190782388924176963548396727750066392168495621421415399065947929223178223505809864195108795162332798471876760434085409467203975078680598260313288233394043691603008171984859752543282017861808983179305847775390362022227284990540770815243602997243068045554213309546542772202257378522686211144595654791062029869819475560972255807882076312748144858337047581216748498020617213141748679221571122294241937288188246273797547188988985947155600084129100018504817753960878104240883789124970657686852878688493777437818927550959922509459366649188511221330694772487659542877876681784956862143527150469687181597587913703513307093240613340239990973904439998136030161583685196454332450127577905980492783237858701400153304509009686154183377314433654976947170423493066727464774708581709572291155065904419266929542430740618288279823243740020988166237624335797097834510238768161319064754330390029529568874617216243455423472907428043222935626342122114770902235685087353436990250094929652470757201706734231722876908338893538369861991303867775619689389334444277782940958350167724465067454448224830137286145192217746722698307477783478245978794424519027907365778106803203417356244237659233092917310690057298310624728753360275682134180695360578018973317717771483981340406544318339417867812598582309963330342993532451805726316576399628793943950945081610262338768491382268112819079429991546382539493791988635844013840663121880734139797607880099638065581443927490300722373319753673803573982904159380822181018456923885195729486887674962676740250193897968065286639946126839262140575376247026669894042627702206780957833614276647239789659864809400851717818227329264060998706410823574464293013087447978993171149697725308272154978933443431984277744909775663005320492067576266692715550761465228242505014926698895768364746514782589604132028320423167175999233386941507067518696571068420627236400047829104922797417094700121237245213839354359339804755212410554637746152338162640393348374360182880653311793195914225953962047381420487161936658073606544638418237940598905940473802937559531101573794602479740321403779274955945666581826589030496284394729871818850960359713944910221373919236898378454980687134513391696972681514782799841822608977265965452655962469654788376299143764834741377417713084845970571880326548306088255744533207627865067286769352699162163661136946038164468330916113820122354497207195358497229617690735886961399290268611985297091830603106015563795780843130404600856119303235649239925664693491382313528181165506202673604297066065171174833006637125642092293087642214721642033227877363271308642446627285855150215604638512198141923786355477644182674792763233572715567247759656491855351011140741309679938192874447355960106574165372959057180930473922533933616221328147783346689298307514696616091843737775022314514850037731922242612381230206055829699900149717429266197864132396038212359937419871814294521889807825916231159051460589435404837881329712631008207931888946695338770863613938762595144197743259654923331020205567565006495767788799730079455754940095266095235043798818264108993184247505764109451203609758467073661748650343188186659055275334392477298731102814632824198695949229968105530395129564934293327554998232162239067812232687049946048503468768202004040272271559485337753360478392339714296950208503813897907913003252737055023832908649288247079767916716121452524890808970542021460794984092697349128350858923686303187052572043074957425514052950063798709966535628797083976352157730655628484973905539491381303425601132187178260812545190306662146611701372366224218127206832449074314108652733958660868138653088297959775906238386490200982772239803090836004145936534897251954969032579212583867606328248204666440629965901320103201106026893916757367078741082941536033808186494036409291814605498369141472691349364040823860517997864908510396934719596096586297833583048700584861885779251772188699941819016892315612174879387617960199963629868112128402146527509890765381569141196964392418563812804284096643519861610630199235535556773112296853920180206770306450747742343210206490420082586418431627851469275042487783130361549317126664557328224326825972571138539944177194483290764537160200106164141243563270868862198069812637177216250244361422132589688495673724265996655393120231903690935772265609332748787774393717575616663548570850075699843513097382459007931903923507204678126790984967770351336854667825521527455756980996327239139962656937145566385489715061365214834598535185904769535427930200564085515839260205223123854169405739435438293418134929588503544076381386299112987528382216049127398409427824256588359241342343817570966715058836092560125881288608022796759025775202717251761896114973071400804705914191018974894891383997542116020073436232747907151839303183264194165023713060979585979821792489102522392529434008797246095712132114359952116258425130220726008346774988929038245733015382323851265786955664412912857905261867745186190167024488247871362303769481337652997535878293448384153117666603968442982979819767513020309236071361298037320917584032482039522606654558802082059286488943386143034852908033767492407572605137865906043486219027545627821560146300498303042201752154976549773219120105094488607808670714966051868105083772077695398225114189101834945028548432699822483659492060226427997774644355418458818533084233881566931424684280108453021480197316309968664792803993569124076344131435125932164979160172169005683594069213287118208529864744630137278072611190985946315142349867830166876207320455631093431478718760139531036901911830933528883081789355920960184212417659767133513413194890603820027846484982960716526026736119170294850794594663651846673290271447015307516187587831362178061220770001309897317303288306363425187446660479232111815540580170627674827063988663811778416858360726556296423318936679191500387843822174194723690179997148579903959784187550064097379065840609253870386394172100007519187310938080474781530969103543494881179979721310411274524663304859763854547170299383018857996078656452968169782748100816943616405794778166144504259073348746880244072297087280454461779345315191299444625722949455287919983225087365793774494368240669672732213238587102702247103396070249448384508231948946689935453799179633934584501312002501983239623694040666037731062698690906301074774744367400498877650001012729040477435546521540973348412097978236986914518467442745866668854944134864823811675035715382923498138313294377071620933573413708330733870459984847186873186639784027983702055535318105130559472047545268929089192387302365186187334177564181647483800248370881764326621418131360810344196285810432928004404483680902928381864238643908815397682990991861554977877917424687442123111820878051832383155043710166375390180997498538103694864412740891892812939862402780380886244637308015463018546931021499207309001196056428726566320491524679111039385956458377991158694166859841231936324413486896759556420126948690969406758652179518760442889057895241006897027784773819164944587252008899236316190150981822711326288915471448719426327510477925077655004505089651938138057247158711827319142560052829175170299426401121439841786299869035172502532023062239956116992456167606898759578617549903697495880301053714376672534484251894836021094832516297591250916771139318531168886197987438679426816885704765312056237487621565801965799847831293285277100764406851295493806530543299958512173128157634690164619600371955611748306986793669777011364146359121213388078656798563629830913728717099080296566612342218722387882991350223032984452900024047977587878776689858326559184248238903858223115482141842246703361273537873621056058151329038657881175941781506578917713952696506180257946897112575619691892590590803876047358303575262545928001367565154666059053079370897953360634348285755595598254076678406292237877932893894681876107417811362810343358102303135051935225480044200526024529524290719731974279742365099342237003346303745356564505809444520016804687883009894485475402641802207486752052320564557614925510366759805175014502701499423374997923085751070019138624417153366077756515488807701960169325760997324401004184648331031174478667902759097592639058069948159967726393020884033166981580396848214115120733853168309203689054480149354740058123558517699172311474256490122164307842489731022662187066394670222024605918684443752279805547540277436236722691573473256332011505446409929224751087446720888959175905824764480849170903969298236173944260700406955184687404015711917808990893201023443836286890430337784862168720627613106130385329931757667982761856536688994601348791393293526162796012824598827737447826159182729729046870659499552287235091180913222264683120173891752220280157688657156152486339256415498699435943092231084006528248563884081482678821187493271811270146238553588580422631621523883942855998211238307708269163562045334569901564904996711725526026369261378517691605025328629421813279091938163602735038454260683787425719093037278008005138798010798453632055433294620740425109085499845506600430066555508096444991170601042285421338397338999540759491153557645489863297058346362503019815765978010677776608396174920381914292396084997817655002744157902463414210793859726239952381595295189550594629540193772813000984967672313092748231622297309548010928113794216876656680322352430793129846540253063454023563946051981552902542978310549402024362854653119923979320709969678994021141447013863500930627782986400268890155547140449530566668107429486801295731980640269867250360993974074826350862104827544943965502834093087877185082166232312810645001953862529830655776363278196815062785222012123154338361527945063442691294702975980546362808537090260628913479453068548096912076462764185637854376206375535718119178469094334610141244790750926054014379254284716284638971532987670677833312576417367292764187284410743667451788133046125409863086575427473581768401679504599893488023744959413831627456518473687265997194357533740888742740041083783168144302170208028970590614688349411588552082970707031626326529306657109532631317885504937694232981237022466849081051616884763351730609430674830600702307543362991589770952710279785693659068592463936977852977389923352519791014007555263441255897153204417198819110787290861633684670774454526845085055793665077653620285235039502186306440405577146753188166889660798781822177699563643325623355945219724186240761213185982531760385020562353593664601242344085072608945411308934932900332803085163796834490336388376834094793174167057216326969485360008451190200657412454796534818817516924428675915597419579304985133489437601793630205304691646636625100683324002964648366248786185759438955888420338487860502435824562388342694845961792702171614470037228529767893531784228877091639498214008962731058969732029518754827834755046902685185894840998443140063691053934230294694466839735418542088974045037136077910612174107980319351943373110850303335586654922657030872614661221872047045167571966566391297964034865350971048473651772267086760653027318150739316925640741195375677440494269250463928678868349365949448083087230329990315506100122516640308192741014625744943460242022057443253955772397084861828716059869567468573484049127326539750002864092084552615843437804289547599816347110627832050385300670520558726300559452340303834575809957594272531944704592287058808650617087861764625244537177697010071510965190565818910875047426030241758799517201847499762687553528773469526992104370790352837614571675754122369167285876836367830708082357257430386490980366801984839838598290124798978418490090165020366286943141043711525054450108760403810358592292310905691555080748279199154115067258727688083014949248066810821911603574723733108628840683767972934644771730501955226309162178242456197650577953048563106698811098280332957675736772831040161406219643109993766233297083052835172998542898640700847522683271516477473747693606864045567981349324538349070877351834287576561072925477483768348177607791810141933085383907968553918007622088566668013736444486729387785515901154364071825882692080430388276981720250994101465788230869624897851537743161809692134165515988249833273095742579203178023910780038551976784364296318698251740889545758765516722620888665109011236972709957885361357043384505240338074910159240517489218606828103211258501264717010606362689267230640692800405524898225888969567478764568392193645010552615442552393814585753415624942986405669745928094000703473630793515314729061676558775208156534291505996491979960483619891796004625297648811278518106203469677096866784505622240171858261835052173920671175834564099897126789095201979010290428579815210092319036257980898013288741993584012743197582747720070128430391769836421039400910628098802366569416238454447316561493553119186556182783894190185346500305624354165357098494684293122124884083004879735634974368858612776932471152691940012432243051137344765020827688999996951316878722843534122997835374912052353267166031060849049327581892374969031541999120524974457826464158491427791218937430956423276898550522946680368903348425920256555659967975388795104032864911332550640725977164095953770769476261569710620911520073923700576847406919789332863732691319683175252667106044459819224932944767228712572915426685700438036253248250337040655255181853247125679115182793606101763196644276084305932732580416437316718504783061111031135297664409831236057059881772705295284267948252492499548819674677172076589888553653989336340798429928154300790495782562468745066673310551126663711449419980858936980408331804782600703183725622809032357496254097908422284070050135085821095519431476010237502391494188166459448977808182914017506293202337480364559652140501273882842954701449129816909297083670504721825925291837768026231227768409225334475021796028397090981699320710014735265684540646958772738741172949063744866585603634430952230273829956680588107668732848384385783589646868499014478235325572344409311360089607942752357729921411541739412358661423668410252404174063710339283424051043241702586970974079938059527674952139214529384595579809081354181366167989764631827450305348200709769373290296976996991777035398740324500258325752764904646609341091701227462066415559162116085256581938819403170998710099255308839523390640809604150379575487282631727011658053346577810527046433682582096749127208044685824491147758769742250609411114736374362253796824971980297640431503761294655862103806985256568140902953076212981858891116921691106959458169213335607345349871388310552192706729927966852809491657416923512751073084116885416096714115296471216198277247810043552381303967937988811584825356861105204565823283935936410959307875354948700820059160202583892329017084603448627460612468778714065361930907250828633750726740927289982427081320751748301471235913580274521448879507761766384325663211136882946442659676208878717705640307292655491800332988419104982938573267874802788526225717543405764318681723691922033705350287589037738236272469056373267472641027491017913329738612287005581296161414044679653626906645312854012288996594976455557535607883285132986009697590545598264687210880088520397759931965105888667994339911036570184447565986350530006243970159071685108402723674643136118269526460573785232003397723422819501788432088552951880301085470521599339465790442035241891843504061790206859162741797938385045558912562968425579821718921936147203768119405629362337624759150789789256797999944414045310801044674540262573116459578358474634092186410949473133528863072465002707675917646818076918498375451570403904681790556567464694352246987074267501126574332808805280574950045157155676088856651648371230488332384076418341541023668752116529350604494671368416508168735041324655981435962515539726346785927349107243040245714148379830082398651558113525185885197083563918297190195470012423347026660705596035743228163041022173335033484614991566050520640552412470706995898575267098476178625487712416442254189345563951261051688934103454136149507750647574130418802578174420087683421856573967907978250694603810485856646002244708007745045212334974877757267295258924426573112131578352137777216316002125932869136349427149724552194902243805858005354681850619671652821709083094553139095189769590176869684992241072672463572612774585335871788484374139224290712039615609530162586082447541600871556428994911289984451975195062459098583224685886633959692976157231494671400276647641595567582686116182230280444224157620823584039835689628366397640893949162256883381198679072727187618420193929185888515122455141348251578502654085070310198588851662389387383149347350036702929566160154611358863729692337092032202202490299552802194091876034373280646526304460133809450302650321966187014410300568855439702681321429026033267138465421607262349288890483520429656747756314560266454898485051018126674673845633497365216080555298264933266893660566566809076023217311481028207932210506246573971394453710122487772060359856370847874925571085097468153082731206153658063016691881270749999244824047120006132350477258622147455439213028774505656122258943655389292459510556609274059285709375759040339362928585735383368938889170509493457337621692729221356165024574968008866805381216365656418647187828022295760299960151857254571372086021787129920881888073513883481585849015442461704238346652677272627447129416370303667510940376293655098634614332299257135783241459217823862680885102086684373968700036205603384562651474925002324824853649350007017570548496712997084374584480904707971609840373342005658447461194639985328886908490486321861254257271479581899304796897622964998957481771701357153003659760440900948349272479424407521958255988283496642207945408421901983020651958686579558842111331977516806725794417199082313916146292815657780103536938481287950626225076625755539914924701339988586072515655926171796486478168843071095735222624819932142649461321522182090253482316117330655275444979531898383168598768817059729709484669178242775126755061070613907680723962903310351801665456297830293569203777753814586026559221571827354936753599077401297884197297426436629439934849123550036217965107466515097482325292278888198449978643868603314488955336215762346938295032697702781512300597008992182966387286448330188248324290331204127595519986569542543075299843810578235301723109489998471785963747229945653825759681536427455679944260828027789617314576758626215477277172862049603954546899083623036933260927725661561378656443093200340877716345646029658532763184289672196103670461043332171431845523760084120731179362314945407408610383679718585009254647508648625899996714748073484245617414822982595000082039610284161271510769507132711873317467148498711596890416189298445191679868287201313378647921863837051512662804514090456401234303260399455012560265482230713661684050536976956927660234207621629577529460173029002077034508757719964642947475234411874380412543366720523644209824928351207920359680419009535180846126520873420494350039385635873618824172674812470902908453264331240078637515294258709593294143316827352955899880059891254591631020740732805832271209253865095185548216574411895618585924373316001075796080413885207676713430109008863926967167346479206993752902062771994382186526753924864852006575221988258665523161700403877195740609789240778037537622542235347147151968468838763745301224727591245428131996853761890794047670422817532141104778852610312602091691558104076802729802528582752864500426575059925669685689613085815933351223185636085301448802573235810361829426355242547840637384276319831203364938344282013084919577905423452125309035479988636078134672251139198434888970591597310606656030812539139906079592903775357325833211353869620359438350358244950889929736341008046311484907589535491301164501709341320530065505919079486424285891178584014799597781976258033444000746468550067753491119185816232602476849382197303443588590906892823207099596752592387651840423357886410337984072715750108785285454335048120738538640288187585532566768891383848051084324759955683603645791053856353406068125337905686543000331746390541061117029394022165026432765585176609724139535140696435600767529083787138375211015222301014485168218413430966994449593132222663358846031270172579949022138970450190002326050435064801334575152621738917705877698557537938052749022784454880414318281158591637832958091450208877150684899985941339383557605279885762211829968566767234302782126705520572835002024792039156122408347914003670966528917021292742235402517233712433813767442081875129431008165447434636809450784717218991925443009469107509306921845223393507204967681765176397611596147776602023401093648745824842686716152017538815597171912724105333266873478766963928428338613597545556302892545175178132008877271269286034931078563141595629754190592280579567967926105114344213807794931158718057795285188257618547809939321558924139206721394933156647867628947994544037600391497650531787687317666301978359649862445657772633975665092335522325437163972850566808973378975463521226027018578928147639689504012599397991597818291462374063944762935355720711950063351831531274029615323897819299153222762162752047342712477157790934675799012434423577806239565626577343802423134880973737366475964115739213095495230889257594255210825695615785535132467532281072274664037530158212693029971812035091515274121874085082596999092823130616558494146975941709844529610238655989159097379307453665334647870434002763113196251578244890307709767643219245181182997573172017155297137514341728262496716829278763364177948637755563779150357524715212168581899416976139065686340730547183972116576908057186853090877401992690573329610848902312289237479855467321500480314687563914184152391167244516906297296592450232937138128411683062063003405467538525728387605336411483292887745195047613561483009688841973055278940504022638091784500639194802641819905365554089507495688451254665863514611137467152244740858494601701601157430212204165401921648138011998008730148947548344723708912845928225231659356051516746877076320152053321260606716661461050686590396880750862670589208818332032985054184063555554425736136053838507666384427101187470039694154646565847164479134682122750029550765472218892866711636497161623243370563824472475570826090969585962062527130959759111246932209827812175914028397464931342675807881599414904495304989661115838658596590270392114593610397280433710699921907739570301396486474267147600747934007924614532353136182494292970349038559650549009021585621489431904569012849925913012189305095824272605117952742578618720814543347140066301230292917396971238230213859220224046770312286514748736602470645754601178353368626546968918169273556207416719336855107210503740567989954648561584957717915985939385925664837155470521318184325122238205345689811002516064882207248423269173066540488654468811134994592471479659326402132117087349334324784784854662622252583489008430370991384607610105711061982905731377291912529785453056826211615247588468012458766200989997263666856062843645556241435979680697018353065458281830279169695967724011093962559840648789750817999848249279045192716767674842199782731051073247831361603323769730923460001515803473609641288056344134990199113272735125330660777642266065220238732603240008146989141069914266400675105972540757283336733506158767304597301567999503922621817805992019430740157243724779124441738446272442766058217666625699680003983377658246878100754427278081891842380367768601144659807411631184670772007837703294063313099639545744271006960393208488422626309061867179244577078420566598693007233320359076565579483330104980305445450924399117174889487672084776549431682362141752696259215759162544227954054550178808421408333827523991079811905690222437151365641479466805966673593411391914629219482926854630790863780263471317379912471797450365513045220597610290429188109381562066307202695892489875668324396147410302005180333974878051492176304203664779450499314369526620185070078625102712467931143376680088673321682550051002096659752896342271338520124762201565304435403979502041305894473987834360117083679816998297637715355371398742041257678372469058199415374879946231326667420486153822430326673240141052399187742877399342648343489550119244419752162977750626377153335147897990215891189906727985985707576493349481191156803538208457004438927805458191562397420717574012096356876645351561687038670725221522635300794044300530593169507902654666057720463895041512265129439390459786372516559359173635394439145226587767927102801068793633950968074755738685272705614569962506790792078539865866383273431891736267583905541994588027984718978903897057020287714686000479642308261102125447856469551605167814431256849788395858454395575568718944820778310403668543033016913507304514797721008691170611995770691704385785275333247070193653617470650734350336252314693324328732233662564246474108692876294775215554059151603483430484383815542677507187509530375541092267499351712058233472316350562654290952636262887618678292205486547934858403077558388911924458742297562739968078944413288065062071764834182882334710014856197683307674794558133822413286771514657196866191402485489309029463188784992890637344617310995143280402667856606375829013492728209073930400951839074253582269734490678242900295836347098227343411875743173542062946746094615042865939971145058209701671554432237627259057977040515848324226622017258831957752202979432384967933636776437005232383816413253976792116736677198732888403994285881870333764788096337921904141680355761058626160649544389219105276647588519846612010153268516104776358930864528207030753012203160397312119797482385743453114699604501457421190371729715444476287633770847685167705885857890758713857933610555413101999620420325099670556692648667004918114963625524832036889668384733385366591184205900820928286978184114281437509090941983783277886901613597154399553254035725257653804476966223431489685057518908454018566542725005853863934576706248945268434633130380043421700873467001825688826073413368194474718954889187298375246378978640470409179625898024916731354422543302621850124337137497498504603926063359318254339781822003157883032574188561862707815204649267912557927972290118925057890005687232973245896505298967792965238583734078435601084369138794474922831128969911775196514931022251153368652590878367694871302476329115592613795290074258023860017399089886629776192297282305237856515963349843350996150103793669054070213820532955716048298029566903918574358197070794229548370498010082519768664045157760699813731254520368489340144696638810490506511036583987030000185864609712122487499088814164919189118567517096560078008860632755174497231535003220826523786447535641999541867061511619208776008199424017377680491927971428881363840275626425145561870141486502624993052937703538222054438887988168750915311055746030785147435317361962754380060273077880527324993692876821115891249198146626571082873367718205355213567835377343128507910084883261468002810563537085728544983916739003745650716772557899555106984427397135716059516140360054297397221340562749393556645289773983235277826352460439779386833832055839154693268121852285029473718797171209250658549809118712678705427841045859150746865303012123337830396912919912572612571980708182989555017222089258740647270498818207787903946411060408144875983141330828278038298644903174915583423377466376765047404318568180175952677092459249901828178269652536170061906692192891003572186592347064603344736644386000051060251072933651981584776067239220633200015272732645062758440758378617087534262313906981390995391760176922672504043739335829588760234969060319148901217948961161167139377978584586800424758244008189350969470523308680571171173210775957571407616023776832729811851311709079674524190388151958059886823814918454995257045355196115710195630055858621104510219279441127084494010392120849783015688588628235015833286347360640363907133523223945278360557707562520327410195732841402607260670798568424140061620450740706286626104952197541610858912119369566849391550678579667358512389915948518054731353648041188281563091551020352221049196426361307047446253428482066781167458943512398497199285559391150653332675867163381165409734265690271577607622395244630409255817114043659493288051051785182465097256019219964491635255031171926059003630922430607530124918124792777986858406765832848584968504809223230237248946981915447206138363555200458278227119733099324282189531186138107435321541322660927758319964876874383381861040353263940505157780854313874810532077799625514591217483376758561454245788384669519723944949423945717027652482050494985711092132477633721725317628793770969373122025911216185852486513936519665520594780719691386064090920098702316468544390335702269755278541415716308976302947213698638427042778285040631628821697115753877864721015053402322206035379169081724485649801196849664474922463801868870358722162617288489334332804580577198873403285266866067471362950977521917000139874213333731263397243551507798262832575250600354681411700661808724450732433978316954428151563154473722096928458487063150437755179223389059804460076141661451361052122496845740022684456648180989939182986208590657694211178102984360865100922626726158028737693750971795848825981642355476639546999978242803961264832909928218781083174769177386616137984895140285230035803695240203048001492005407015004547009909248577365977953246354680201462132075485779022422150220439964332923389690934053857575167637061296049066914453228259384640266432116113819459830653933238737804729796823624059609506220712899639585926758054113097275762063189041300454729286607676564985706418586539790545334951373549687011571183616892997894690988952574077821874694170359108711453055167340057740624396207383382703002786335642213897627561128048668470120475766836233038562845736216033121207017357974474491031453271519237591083575134800460228673365217247833659764325317346207661776237155433853541107137939642391546794464877465059406538391641245668519012765659558513541461795712334135758548136634230714958075591925477785764845980478616941692274871380137326025415334570880304362008907378822696160731135214081086417293532940108854952150953239382972077977317857762452739245462694036777731222447093085350619618478749256318037101503879346474390126782410896471902269736892941682099653609772605597468366020898149594349280520648340436299474671205742152016393470962992514055392790291756913260125911866296415835789504105598418016168682790131062801928850301413575828246096996589047862888864918711701258605495423781334979535408297966642384964020286421676554686822877642547385852518466329438152762593858252761490025570362860603982444045482461868258728205619647781217198417146587522416341130128187450801327337448809278417987990158295935497821585077989204343492314805999466454132385375969414141548743738841437035236579554033001840465809919549448432456716749537056390182709825200320938764371309319730233349961180108900559684580300593028516958463985751613494531011983509042427429293077507486412689423214874722374105833799371358287544499327514637285184818909103650846633014219670988883436373037447458183997242484445393845392675166052971718605274879335408986208794878084033192820302559613025231586396005892010545855740582016657221936919077621152346712367220596661061554083152954695156632985625131293395128892345689056221364885865772383872508332125581631485742581827032427940896674954009658484408743893000491598967422016101339426637588681778268052705289408529911913634433295422250067922657434432117160154049250011963747932170097765662187113861316835182585672849367707544825179497556416878558701378882143449769099387662598556096590109748950352337624135128182421510762458995368646325243007328251232621848896584764723320834502421653300569592395919851224673835608821831240376358458350253420878993642545332118132985015298168044382833140695139061804217008990846531067923158340009892743344974361639584954180585024934658839418439522487389336433756679711133690686002968235351308606239367882885217656658086837538161969240067526606772391829750232175611312747285773210824224779630200086463113074290888623734579856645724886311663343860235034847495193780625278184440198559253426993543225291989946786803525615786886680916472521912383606173658744823860946758342981868389656032475967097887329687854280215221762561244394095421249312813498171571890091308876731143804585265638859757185761895115942771279366203203659236835081030847570686319327354507184846468086346558649653222953893102922961520216671285563226073513571714708761340049157151661636262589846061723135870918792345498704480111273096993749282898964637369087021856943606925062475302974745017407833760416164538337545985174448582638633565726689242175420816236780284473619100717943433729682682052339903491805672775404649543866588684879888621374745666157995981690696614494054471491628362010804905255107076394733336504393238235220706137278790858330160178428209568027303193446791425083019657778948114923696399287521012894149140101552358841071736648835896826855874409515019547723183421521511607457305774136709350418734258344262526361732683773878209168378848982155350893072894793077924468359068273314783494539125838850558637638522190923391302425524369080888914925184851395797998591514546835059263931376650031411957021022462557404553312127029139855109932385959776035802255501111125324617173129572727078311117040033426390654061514475715631726061371696709852407541770492473389188919496191528259656485807049750618588040389339223497079194005419963456983540942179720882358187982893174222258365379428995668844020952151120959887610772590594272243565651694661702688921030313136423121701911353709324597846167246274065135768908148814038970959675822174217379463648678869019634039173625844226938214244663170682970778260687753975198077111539312716821318346892577843437839666262680996198895814396217046825303098991632792702915450364614160704218809587625522733994113785610125560726469394875683454428713473128106766569541722204458818012830048141929225482266716145541957360733477910312251645812741129458640582099686740424274901567298019099030501149434902354609497659875801065851221790553978475545204789184913283050678379900691559347987266988694445970566205566881040827010827287985905935726486098911769408577378372082091619222129591375528692292769978273123956057448888975133553691051053580428171356447195102734251168162955469091870919959677840192224862566335660627183584753962871357210400778242297475035508145019368105273988765792600453758860388954338329307396536985822051818394042836206476151518421848319061274527493647815131475992136376913280771656889889948104502810122510791363623705129904985802547238381880125654947194398517643757792855621802096288757510897282986490104168406019410491261636912853975613717710557440917877132724032744486961027621242533519223152094867078624984052144275736370269793272258300418762905059320824152989657353046415745538586114384943742936413886548992418285852734580846378277664917686099435356706692603942488704176024031756217156762565320209282751185123869196621819609160418360524435047791119985241378840049417734061381969683469931104443000416892461637012299591396740112114890572427133560881234716534012723838074045622131247264345540075700098488797883331372852835688078430285273091552998166321465892375449784777922494591778043692531362007356420952674875910936608086072838908524570539860611517975879850311623033809018424952473261742760467560495445239665972901158923011084479221449621271075806477083121667772056241816878934852745295530009948899447544662347424715041379492680579143958995406462057732552039461047991242951515599100811451955355671949655354306854770197078877686869506867716184918030144297895274449766371906060136752273070844396068451960144780421978244813371301715486021242244285717442126149461598713231098627143248091080643095411956264551801604045776503210634551303386044264282079559791027657938996948619288989115120864734439661265759719091674939937989170413462080804318140813594963286310033127191572776839368240194376627285806718728081360772035635862608690637188304692896176855316762742762004570156499070832509935284838460076034042660992009011418312590183285082858987141240402093269123016006554537969043786072460480300959543735065259174745244224074259220474799376775316297536825555957990482809659896225198423932275307410125302214776902193390504983565821164586942083723396039949474518684635207969535644409489523990505174868212879227296825932575071853150609560696634966285709319652055657505187210052131730190235245613051103882940814524270066313541675392935964339482602824095745147572587134878620029666002653232082987014865219728965450245615522006765582047459684229045359315144379296374036710467600032192538856661435501787861890067929294476727182748526153868422337593282921711897944282778977122862421585459241739531566500282123846842269931550721863189198510591006915585998699496790956451433438316812053206876809534423526391607566720573431099786778392221522653195186501234057589138830843279905738102939510622228129603157988685681988165100737167187112093360288289596764162021769482854915831314079165094299909438920151836521237997557271347192427340996654569514704652526000185598636403645681704118699696662805630017065276011354793849982167753815232805946068212588814532925543759487290947045792919045902699349788580260375458443320272872196220194582436354392277662644285424080123010750337419052229047693039761446995920901818431886814925269129332138726465115226285110417595780104736670408810158418031154066148491519258538277891753067641935864345885177398730781616016295476363177832638281017145460750625305894622894158353225943156414888309910750847096248842851329762994797205489328537790633816502720800619433496546461281942036821146374283719095720747580767352418791444858277857053727117569033544750177777544018909736600827514058185991521897790570042014768167270459271385241973584140050393033127395189183146470610931521028644452506700501203257850522735069466293060701780642757452150933469741569297913192266047450551192343707612516029402474319982816415216385005084413074237470024065543479321419009574820766885967765606592388722805655105500821951642101561667703707381319284287083650018355565672036083100541053317607563157400185232323332096598364321822155578859192057614698224656805272510012536901810638500431593842055449873297623767444610587541311657768764871895920870225152545359887443133863770057719557865376767735573934049170977735278145067365052354373437541337607561482094713943867611712112953940495388851517410670390980912423551612801921887106891336903974802921502063925898569110230491425499398635764172480469310019929181474630095940778311682943013780279884363099286634519232838399948118635105423121862943777999060882003242322797819560626291855843638502775700364252848090587171412039162513514385302474276307287358570668716144234026879043211214089506124488240930815814149521828438010436660841960787576876823075856954655531075565576987253962358427247049997002637986265597061471451199988055507612859374244661084759986342860364562704285549432885997636677223434809706648733277124227831377584215662946795568051377350832227390399589749654764709661834743582776410961480310989629078919007934679746522489797343493940224886747158653321829860383156465445322582457415854875365264349596391756687706750545011353348891180877595756934810056793596715767107013198412698651858980965025305062299504217021638439146757821646163157070184161674619933189669627078948609875356929809619109299041935921031335820290520058179549435719935086811885126848427506180779903343536811812505383346571321044548258242113103003350632056455572930611376203171569189446981636373580759120499916310092828072865309514945397792999915444913890797915135483346172484472277153324162628073765247024735782695601355427410618319992420291488281982671953073794698628708075667092793908093128396028467179017013530308156471192250263618881280359616765629061093065521919647297401931030456885097240961929537163986263682977970880203238172907244445488099420755121752640388605622805569354006961307627573590981827014163189786556678958396961788530983433838213456910446727877434764586519987381771149357830387179019065750258477750676144056477580326280940158001274095329593760445927015792399810725851410764365773013535063235953805025158743625627011800893695869098711230626770037960791963057823956868056307674356813946478320237863761821492197012865087746972592823517566273460975629060447442619586837978302497319424423542122134188810651143548617153727406091468305250333409645467277778600645883312312776009765767738607729010718597261959576799174010177731442776941449094273442954071866198119935575974548533002748772934026822683367453488108093878934746218691714802903801565365857696500298288841043956271106490521562533898196662030679264510271057641508177996547859511624929758594871960575390715806048609343463124108324618314043907543718352480956252578290040218269516944158830591655948185498024325822083325184554745851460531751274443203347729979401088552082039410775373797348670270951626110004522370089359691816403319419381749101354970179197859539235511224373606944394073408844373876999941019948513158837766454322690502404761829037632241080011795839524872579297168003808185503473413885077003392085931374242596443535696267888011869926405389874982091125876792142678751130040157834668882816973248332874148519294974395726138928906218688430971151571087410253503151212879065831779204716207771011873577631459789524373724282500420333352095971084896245334023932547911897602306014799392694052525288556878888904266340461933541697183787657110980682777668198806562163327065222845006780622468435029458844985083683388214986853461286207015722599179182681134684756826592387046071273090562136850553946903632213757040660487054858110778713522921115400150923700671040587234001139416107661971390865173450524770191903826535268903847833982998687274494877104147496539034754200556723928195870649718903774717466151095207735802915333568171237463689249360246885786870901820272270499923632792857461046488551688716867165118809204983801577433586824751146376287989730011264135557629639277183811213474992481720502107835629667990744501570195536273411157984139778756194037530680655133478093461346898240209277416768113797092367811510772690497798459534548801003227489177861566590727547559614199120240837140441272633972488112016351697197591981441547424522731795054503205778878546509667996787090596734796443463976810923176639227217767486651190857277112818775482956726947019106732205407517556262892311553209498842291991436921743389583753800930605222830025630500266599467195212037215056380046376311222829472075368621860376681354692912431722539898730255691202946616433948603470775570254773617851427318053815780710820256646205149013183312287610360089128672645639847693166477226275880266651518266318677043331894401276535377968478171010605591979581453472393775983428196845966738569613449658544110596621034977487976533633447534414659670762496872131604765215285459364644979855915968614799854926730969409746925599999718456970737727492865850461213599190685713428382288790550482616435203323273036249547379232211519735639861999760209442096756296680310800492624613416740179089391410576311993409654645843786380159001348637253605996749463723404768602362044270163165455086151679801924650043445403839124400464411733607339090398359058025222875676529557376581004427300082510449707092291391412290912371597932016848345981268053831879444483791645572841408457994998625806195466840675161593121697665612755178135363168254659360913597012732329640441757807854266006707565815548877062920532192424514492186383534077461287410857499870039879916963152152229624715135402099525845002413542260844151357020031489944862275168769478348908396468857759416416134411930274716774406741875434615841327938208017762867383274686996440377642169528454864720678807198803183439426104723284747663438163463146119302877960610304801078033758022877259653271077155392833289190785822049702878225392818314251943328910876003451641927000210628631713626329888489103616075098470083526742722723782690571025649104683420845624728926018865287590700279759416969410144344665921975770913682954721917546768755963966221522061923871166696746889116841925153825795293339670463986548505780993134563915532271481070125088938219978678131754606630494996480767945840651873716177244736648777623643237788035846609039989753781959480102783443265406797259239167898571628132139091258427126685189772558071042837973564537276449271439215983643287921847376022359260628793140150663229990336919884405245570890430533436284665656212429625671519202772774388773464742316964828772542979054963070036577563683692907122698436117256867619717335212115079976074854805458128383990140325610973013660603859406529204121099563002096869201161305196024134149206046185290432725797998994611388899247011594870281558502219648849835684626249106196538314867954750361867467795024890263744264164593711993086349677224955475990571235279801831161349152789521856118295218059861791064413512355540359907965971971588107010270696295139858127890353237953316770390071818997923700663027012373368219022552122489578101720738017521582760780270000718169059999797799000530600293948234510311537167540030780430056612379994348508043654214752664058889912387628877143846308901509771051478368237787796661012873781416100684961668299946207825099496722633925651961724276706651574148145452866888388560568394285781288483898340518901729074411973944708067118186803175719660935155468556852584341262702290730419738389183518318978154275478317443902345705043127121916076202287362181882621941734991566760185297323559727859951531190683757625127324770232629449266907039738884805347230423034784444174972085606855461969328531002439066083718530737022657248619661408230427305506902175108721293060571639293657211343100321791221620339155803215618724736544351298655339527287585749646752327512627824140963667617465027141356509867513980105961712766376071036493432142831399893625945830321926559517654411954488883279794584315889604412278752309965107541171551650916545402288664257728152738962635696037701919093314280186218506513526805232531342986636649156637661849877636606877836878599631890226104410429079497558461225843908081000687849432435817126452000934005796130715242102277481973731800247941383990307257362721231052920225699680777378434114516443117343079630455047585845252969546583671370904774132891484417187225186569939875589095218312159438536101962399038847553004938185067477638640816064838005851814927373704993325598171770935500530344624805612529052832356891110674762135684079741693103233789112917906549804672732459248085897380154025936283581090176016726547138238616310441158709624897908227420659592016405487181246074639141592549992226017642241412192355795918205567755141178350401347836938944156797769521478386835333076156692385319248536752989983581850704375622907342568677003907551571550252964110118640266587852254682462399755426260094656325985485461777590439858508110475261022416605616544907812628157453442369038175550988975431922600778012378906276556381280481638430495838004929813274547343946176281845643985365214408433714619363082827705110168035049178184127179448458133627311140675318479180982931205154862231438827772571019117409157295439918109408959610342938101834390061784500352475250897602759444864574732491739910373696958986003508461572684054854056176437784468578522582359919706711989989689269057952275452555741838726512217704775651010202954830492398117992365204664758877077394265125398308024130950290125021964359924398611404490562652146290944028685515683959849416736083340038742712262355221990350883360471586742399819639627447045161237168176224619315712637427960718969790440406952424545691220788065320705649415242250806134662494116226395735227104070693341522828585413999756743250237761359204465968086950779280785269688978533711748148893028032178087739237347772567772859834272385510298834722041019866137244520326792118773721917124854825635081247629038930642133114985455989252756074194836415657078978205887839332022090931571021123654067020723548714279180387029997782069444923395169460930661386505173297688981812267620456663824249900921881837696486551362055095765708672087205581916125876456703745720250366114930810115603327972146798758633437636291668339193282518090772591652065537532462170399242794025775544305228484600887064879207520674310537902181226286512759488796195549309523374572335287720671045104342396401199009868650760859429846965244010270862540777758957467906986177372990827011713130519350087933423557156189087858721860438547239972968998627379828831745933698596137431170318859232854251001124835554196914026698426841119491711485905185749366930310003976828129620269553954770317200996914603347523144948399468788174967451172237438706127931046311865924455474809745314770816509919259380256556693443605171820467259998995981321526481333023629374811395874105357624825753565854498258308286781332247923190721129590251282361302137226369234137810313244607758684705883828472060575726062864863873490576467990935500051336423758542960481210771583802663719732911488305786201681375728311215671295796544318981904755723556433764395608249585824421612132751079965364890635275018864424042250234585369790921767215762720400150552079012581676737833372015802527036663666777926159671317988657366615531143990010904691786476651572648312769994978203903926622520437040996661330031587951740754257780948549990754779324356155812204599137311528322910948048023039987701246813558436677382830007539865431743066332406896348910309388464227462380578367450333838143128745949127631686995038454711246035270227547273316736615135506045680576855742832894761339094080859352908962465520830035977247503565803289736564445053952385838278557208650861650255109049043302468783497877459214357069659616347138606502681864494413880482396526044401146418860522666832382476468201712302786653537265310732019661473252093341901649601133378485798975721637665957182213571184613390078114652178104794929948265871860304177800480911691628434921809214670831478369898806465161316745320509593197100202720262565880518494714510284181067231058399126837976900687983716093732524415993205332035571288741209517410976089576869610534526112155354499722118465768868087623526574950228884042205297864616116310196054975402892258404404560102789193443717931585042750857451367530109999382278566127491060833767299170857947670549369773498309147916563209741917605880956460640589879561666264950632484224846868005431542277843146592657601041818902417740927560017469751101839058370399048401804005958731075011375432371132157436218771417407887276604050591319595013732963168616449101304930095542553519030518279794603750678828510738363943095938799345056725189365079605059322699942003264326405482329223289852927012848030562191246063693725774407285994871843199817797273051781788438164421493117270037297417186221868323572874589642434384177183325127557028729042438062183795187812663667932628333525633234750094107753564993437484221715080319610518714691934547681402546284685825800195791270602178326579752514947443728195953053993196591738741434854235573406160125179233279801050276580720552197544250254406836473000358510517056935458434671839167644798769389274865637693917355549848045074131255929124868449568471601274337107549807071010543230167271639012107737977944761166426795037996109004870266286442233486731924117047137903919570297200017207083412313031403987332175208770885341268523399163965934883733311758226225307221713980795196246356943616135863732511115410396961894320965522126484930584814854316205644858802633625111895347704874919600563338178895648105710718502955429133873246974198745450819074329041109226396501824671503586094412127390737552311079655959746075285463016486581132048612553837193884801553939424829108187651143415921350097265050316776345529440079497165284393023340314033886793784628446727775482209003709372132609026074142362218474059733724309541532472061344628395997725681910124996811029423039816882607364133791209296876615527100184251513611654613578213486951428939946921315456114475894142585792323695448211801572689855620280882103421021163953146152763435318134226285348246197820036168213909318657615188850254583503096454570292425820830274418723305829756682972363268043871365497791593492691644613552264058022637775892048594607471977017869261840077668089479812923067381656034966818164083456490108118723101128376023681214189796572884812919522203363525715753866890897140673350074304414732247375689076427276087540614524327854558861665442265883468226357877501424908880783066072803041851693523254169515425081761843690331075619605507687612807483461449605523800244856859489365749572862425389937333147600460841849685285464822747963662109341852511564907813448652130636789792791461945056375610259227561290738440285629909052599740249808743617713497361549144306637090592117345358076414381019761290801423673918342353999752570233644430807979326676385171183411506408887058025187853220113716390874619772612128246847647236660574457076762988692183734286652615064350218535108197720064111044744288297637112541018286714797931462937663498327128413524641818192356451313432083513165860965170141383923936303441231170033947566877570287019402328994653748701030682945250422602034745180255331871317022994192134851484628362252435096468177964881489631670893402685907030886495619889317332243475828704763873334039612857459544641413179793186952231335461070189075832539114039817267808169100571353044260988254542768965315428634513732835316807802240029136245721020406890624937245784848343196571667988407861417274191017886834814613461921596224719505580901887146591996709356110187012548918801273241426405628803938833588880871372697395930923632908480967916342665536887083031420549116936469170689084686059112091464652695082011277879753838178690317204713692737202821007415380913608230641059974596432002110262525780244189914435821021864334990215388801788878125939937186773738447618928494743442294718352410775053343307620520418922947075651797490740482271221425845873444268828466143007490513297699379387285300080212060651480263492030697730726355123047746951522149902070405648829319249989235639220450862757700912707198034532789297496385632898463169540330038921561935586355470713604221469864576540720700232133682021139855855343656428063286939057220913897096130455122780982952790813891480798556182911665298539730164091112245703038884417134575983983101446066278386839843428482897439718722153581730804588623680753798640627965675093994964950283557098798303691436317946171568990235606122849608813938565829121928015049199833466815621364114866642594875805775022106459779663800957965797164330124564746705017981718101102539526132849137021520439709721377286527082554853845706691998130163141249524951371021479158874582399275335528729347110529582258729809295484071576511204335275936413446125344018633150271033051133478534398617202361642986702136745960486470824282204508733087273979107868138780893654680517779756839316545850717049391528216124909118005786659041304247796426097971659584840251951810157588674419622937835182852889681893004870092840942539411402613490995791131715943748997663817771853809922016372566682924909002877380365958134973980044695929943581121450101763950689809270683499355129381625428373820503275959980159592655258084926284997608084776059999833077819640232643121441178243788664660634012676317713516024940830996270309430087305607859097296289629802690677592195125570832368767869228982381573049798869226497272603593999943758145328026675696721503513066990945589391277767047076583881275134803977507740453147682740714519575363438070302237298384302045941061711930096106115866785197831983167204946787159366875373875027660284909536335509870844852508228899000312187503271578463655397815868059527191708620801044193346028422427928107515357155677817537037628935258715623516809771286504347367767029360846688730596523411828154596433865216068684393015510952234175701291394438099157171669763860082777524122700636985151641616613272211702199963207443160932445419615027329487112626277708460970942954962514086199664484542814348164246420688637044550551804410714238619087585030283552559387468826249002105218485401529405286867343262160093569699674589512153416100801918017699672550588555568969672060069636521648441765679483039221702540762363753075920936507538750128144334841727854612148543814020965740178627040266391903945156485690039020545906044771838203686889827950134700363912932977809973849170570057749224482794430030939895448432328632850092338479201331659434891359489989588246276086314101914013264062708183411938555939166300596512191191167413832731336863786617707075040535344435854650979145876551544258976377132345044584774897142698243852509815463711107644437890779255485375359988111629521809804433058134289387462750418336096663508507233703859845340121888757890321404426024575424019480987395865779329694212827748832913722949857308284914259708290139302287417898048650868382692668320710395382713499445390523444039262728889687253522705068326892717507091463454411152975861569613563959967484833746909168545685851983573627587477386527244716230575495784204654659959951544851003397757348655297619443885905598279521312788669205495305435723140138782158383291287265434997917907654159248553209656439044035609456769048639960751754194023269955544040432872044695257708719864757316679929096773221164635033257138037942244210858637904300692798852924545159964341236401865951472675348958400373496585611021599642724642407932952300586220855195450596114096225565034123963258633508682699863666067133567834535747537131386559102816431034165125421281281349289167627276196190637635711149685982014343519499881435329982003940719891424595189105396244757875328660897314138951403726268327462825029531173636169611338393042405141060374830553566131860963550245355090388676183060185971054248727678358736060384867818533245320336130028515703702266596977109645740346195384739716349635392465738529812677266611971249696457364914350531830166828495306356670570345890658529065985487394806501250274034239355162128918148046879505405689549290069798825560071344510715656588501076219912978617396428196678779297504679655019636737936697778876543902945023422372515352454817729395734312281015503486549046855333398363073737505472325646709289822724015061380546801444846624538005804076139913243131212050755559937932987251950635668013141052194253059642022559808086682100787736973968456716561627220919450252072149159673984706328405045502908746400370953373539853080178992990853783029891569502677187951515670859138924871435305416683052343696655995232210925030108324232477732111976732614991464436343525636844357484318391423027290703851830760422814018948188591918607464599724239762974789592570975791947563970199779685039470719614446007235035536574178993465311921070106615471137396439170235325684447592431824113797652022710288884055175713078325530812529803563679342963837472516966182445875953805602331406529733381097414178289151248687737542824051926141733451713916902126719638470160586692183206200801780178733445591368023926855246750877820293500387470938376805296000094519952993426788247808471292107898825017965177697675465340274254168691412265760302307262036793595024861445367516262587836610517296067481956768463886180561813317055761195207644039829563913276605425855423653242076965264501899989490884606242097472828488738659887830570848177138256678116241685235396273677348810947245054011785634015657218475210325052898465250700127795445346267529668214230476145135837489068912361696702560124697816010992055047314092427963072376631156259476383215523668526971290245315263287647851265073353923487278118677475549351034749501071609361317300395402776780706256745915640694267333950604393622344627870470859360789464922854200464476090230782476870666888391911937659360962143041161305721298120905480246571417951213462461382268700920528561371171471915595212103552062845116526566272642413263296718434228332050859589574573392333236086438155014256145648079570755642054955628978651013495843501236355437688056606651712512810704689821685096084514816625537955473779828497693403245683342754842204463391012571901668202918573081489678385357634668535757393320199249950223235443381193571513065690912129124621470915172396095566622996592962602008836480198577411651450356785011391212957466016751866566173078174883998429076344527954611314606713703347979890573953892551895271551621771401890868276198018086431313901217562003525416584676664963037792455673102024833195731969883519044087636726594059116772807728254955208221607018157924829148059611977851708002981189254523108693007107862016138958471350270953975183047491957244369446646726604051853527180308082985283054533906654561819733266780319543180926941973461751337230152185440691042021531088381657730734665828266836550253939631071905629032980642333486776952414505130012068531939576177651209036964624467317563751182961036270339876210473383141721221605627944927986311230058372937997602780026202804783262565366311187099453910322405291726077510055713621661475981726340316888975998395293460199677461277756625958285356043139381377649362277451997354558559786008065804402910925453492875482665896498924076635239630462258700807168297749288724769798904726740729181086800887476408529944877502253126879453076963137987620245944092242364605299361705931104640161815786690273935113685512664736728497795711963209624772746422476348880694011504652933975568886779719688260599602002479712626605745640243438756049845547024919952024352955039223728156201105654631949962538440814891315714620722330369422739135391716869720376776997476724172097021894847329116243219901353230482367644945830946601789964239593636079771723629581217867564115699225897602016882674965828591649278753826798581446364927799405351445074288043445062113259579453519544301880259335080652083960426987757288254342357551763720069091324354080607224315261979646785384017683131825067752110377426515497230613153783869612517958032729329212566901241344061319764449022154618478866837112816923171211792477775188224858398184693428493265050933067548625549663230719911877914816197534910483638750883737374695165183643783654402512995753756764531012840251336442330239160706797187234652965318944913693819424839403043658108306299480225791542857351865095121062648764325046528443893487980212942884846583219589679607890402469712769063655430937970190975426666019334530047926633935462455807736037181967215731297112624403389739124250051504648784108986831522538138203681904778903313390857783773683843323510808960484472600559585294094785819727336407198856216284700719854473723857727484684599575590952979234689530183312105776541658201675473292158120757301122696239938285664205543235707343410024206733772874836390448366271631741800514340524321882695986109409245722048640359671518870560477397095547603073104029549829346478081525569273771863044867159606446758674608424915402654321796136636112843005592587246568545451709646620303778889732601409733906807854100712977128764818398285149074689136252614232885433990534269685722432521991182507718520292035004079245620066587973685472115311360055516144236282084736524457940650707983396318250781655414952974716983551790868412164634097376820990603922935485725439043077467491275975126282851722556834289008869832847585728145752145453485870140400974901332266432378067090612192858108385791291606559074740158942027965231874228111724065066848056994752740224150619943358138436322840695805349524164425748392245999832501821578902031784913851201901857357212712429163620688864421576749176228759800409395673097351836019989290121318108751203856504580795831827693553113433190714306960831228298928776727025923393823360775725930193706594906132787555774481224133719371110403423964240521053139677871511768473561167482183482228502289491580193911080266642750182583977660164072355729435464061836528580765852651615857862227128876836598553238845139093310603815815208347379040007255759432729305696338625903412905121198723246647599801690147167920011439821330821691463763490382091724443640296408678109314870066438547162634518643814134483787010758755088689418972213913157255414901723892702782358212937459641018104153141920887543929951208814155722284581384030640773149174296379233764005717801695819590471663344161671324455448697229135712681927230545923636341003743716503770501274717290623404303299373848217798135778437803624777948727073718583148135074296914610989767775176842458142698190260603378088299160828884345675443086628811382007846518910140949154813339527887938766179347634824508262315982713801460077016222980041668168295004110577774244054871607553238040538741777528008902543196955364090260006987784753038567338922734416774156403615217592386580966843182059305649125954843156489128666911227840319571894953810294058731624994633252199457407307127945948032760211438445323026088392215826228085050361135449909618415344222732106782411687339917468050354685998899192184628414121332829802075609493522218282387278527568388471053533260470219155318965962290632177638783039487221210782564346464309717938791049546886247524503093464389624066516214073480309829540255962602815381171360144342863057222066465869587850649945189721853979387403204311738770024498468403465196868735974424007312109900888942734635111395805430604300130040461152547945820570377396783752663652420641847987486844227318442639342695071634617180225280941687620458659215352730961632688625405551033164401924714881995335252378570461956971427308746981350655755990666849190253903810057053512327141843643330082003261584942912845450085191431845246019543943087451907762176029533697982652883839938021745488734704931281545666488364156005779665103965128238789399902492640224908994179061643118392595857159168743619905180528243703221172079357151095820607894277826782627536876514469258196621496911435302620008533576853753830850305439727574903179681964890941732419796479489414476524008152688197856909741900154110278391303727749055138533641861051463646219802026029312662289810372896569304297244643248097914216716625193591553509317270602470913452533101360551402529699403264800109258224996631803892781177793870207880379899631395408455592274749405148159960634814676492213022506461521220475350397878609781004956944867173774997198296535447489131128703423678753862166708137877031219416396746167258786745669305395011361235640144658199729393153218709681114176670178567365431707673843460361718110261760874969102765163624733153886011965514509823457774910980869253377980298872129681872694088173108736645328096648902608298664357913434400049443099806503906453516395061040122546522988416687192909174814918524749670023684192334629516156570658013299454129733581305012938733406219819684133050551104672956503743643629744655976508596415833626174231540625472601923447233067481033664976888923256931231859285400147751695878683673030754607658029779609786310297509312955882440627804007703977609400097507596401495362528105548386809612214129271475634063852335561330465061420468892790382878604449950835521698384912158179396179886805104197016608063311926705792990436160871283195110114383370941520600112706340117417264349523909710039047560208029028225090879243090166483671583963589722686605496239135085769553580729393245960105025279516472276426325937037489683403951714554616696303577193793664167339753895781542625588895830532466666809993003742527874821525908783237493133498276885333730709053707032825362967426040198977594530369285277479709717742473821532614403009953832041896728310704516977317904973362526704074156695094702999351439529153184403969053437339875522445401355772918111248937054140239011660963555048790286190366938826577097677306266602483159216979730172332760296056131479082262334154703511947117641871864938993951677026127760666935277286027661741432407743818417576605670446962959972766883225589330202651999047194706563487764263334579428297330858670223866284918682594377665385155005446650307267549343154060080683874774403921977876046946601466364460654919957189645668807307634867234218009368195006867741860361718995545130033799283340983167763399336355566428524434093750015629401901676025441970622959282100715528287868481301127639854994733579718683655730342751708234596879937753429955331298767260887675345797387225824852383884139343122452825899004419774272772132572558024326821396247555537458433635205334212168855968751685944007118198642175811990731834405001183751322879238663039951329622685120384696056158230274260943266934231194257373150030636640760057001721021945333696184715205419739354257860516973171951702567191368731863041385377468946576541616708738985253012528647621419705212242653717453074730846601855209912963826255681516057521550433232203720024352896361107812773446743189503508337699719909714687535939307767381632068529944039458966775729514629538668712045549306600876994162070412659117677521901074900165870531378035522839420969410897363082572980099955352315736364856859573054637375641413117455298236477320592074150839828134017642564754910394356749737940664609051948917281670852603783298111617367115047089526187745023306341880760519831360715527401572823934001238062891603534786367146922838254661129319491093675022914673761843233114526072131352093475783496833650041208565206510575106349037335567415045097273213273091626060165032132880648255709514840960081631800962349636820634849278791493096984910022966174574684973591837520436939051743720906945617274756135490316047638202674194483585331531575776320045429573255945790195215818046567757848426872055609469860826822821632786760054103404497903888974072886802838333483790518231065218328770348311129971942990819673505400212669461777364826806177555237232118060907335548010473102262695840598396807290756531848698312081487084820849721812045518197000187527090704934542981163039626615841072104687834765140834782285929504844163745433766728172194248947034769771106781215292839847864309405703428006606589012367925351679963080977424450842415383008990723576905547665021209829808428256176007581321382308348630561014964136245304151543142338105077433358066142662823366973679723082752559529784237745076465216866481254665696273157089314389604359429420353786324928836188021510629320659967202019076539888536199641633759675677916898318285287162254925016572350972018555159478412417183802128553363112827816602661775880407612757695421512310845994987251265665047114844672955293348899186777239656762624082076362325183237429034134626368134100824009997468184002898590061425260599315466026098976468890396615961977106765150518403219725746899844793056287117425208310136861581967376485582314037715181142636128067318465739115129348073926931583192928558492684282984308299758599621632790878473782606466494066056227731978396712409256134082064500582331060457375922816171382153326991183421148705428238939478375823890246109757834154389006376754462426400723853701900609975009689793106443329633309044116802256325578741762445238868832863313737574909215082404190177950255415956256305544836302852625921847492694174024718123898205591305892331325303197066747213740981065459270809095591840292580022725549182697776336320740350800706589624531359773847954801339194756273671818001454447017528445667735875274201346279506308976105670569831349352805585803519749926179468880545094192866020062011747705563013985425913420551738387257533075051842212842807400535237606648783623015265924268941864471334786379288676893738274286492573014922452945730108629351434854810211358714644200615804332631473938088826149499747729782638428811253362534326889173710386021070738798321922030504478348253043283590742979423999370443061201089710681514243313899742096661150354125936180662265567105483406328538133786017860086575621978843572478195554575026735501264374317369802504205673478794133198084899262176736542738305340297121578368479733719687521090550844013607902952622720828264930162006244329459015233012576263550542918083488381604044626909658588727714159165905281128729909869108398205508620344432750859714571164728252895720297568397638812279645468791930726386872326525448562783763970963794730592155496361750564904594769634114499012448069911689667994247550805715751287759342962305644057047334741788152993027558627574965722904879344800767069486117279274431104040658934731523023763858388855834603208569652967640909303725077436009840062699117480891980354157300772313682660396321906383674236068092976452865916628569049741931914918685620665977971324137254007431276880349408120502844394087792143943731070060170435653331929050218154433712095284700465872467933968722457057841781811019681765436784690978246296063414062260275967351475537084825858658341196463015108765287950943244201702578314980535852795383831074655997336254800182182953887721029668110607926985117890505180580899603173680593268789186629843765732940685104952619243391336120340716576265702133650336256728519674854588207123768577633985834882580532570597785633336352465153567487421156679548884898280988095848179594194414711862415757032776889142304900218984389045380848574909241835730533239019839294931876020300266140340624868946332497938473144536586285414563637840389364861020772386051398872031234412643069023046633058060910250705430263084589038441078441431730083569874638856238725800470975392334521879140345795826587384819262833358190045515786945908114752760005736778405176992809325276595767631607581812680391137058177746654682180033175493801975723630353809631054581160367996133601512742556869792296665599866137263290839135604990396903756277183612175069643401378503667034284599578846456660801512720214978157373202758947704418290670043842658343047760243018799831651159845967356714871678314103494825204523054982158949840466124348108176978670803802851942590424766475016494774183754971552986314025029007145421458279695271255039923924364996391597625703144517042918312374351204809364917630335866723476640741424997885130706939142723027287825459983762461700463540138297054644749101703750159977202802947712362053961191987176060616329834662325016902202616275238214529864508562255501063765065499390095368993640796507219955284925997654335537292242617674724426785226146243178409444006369437950178089186704461040750153113936484524224820942973698286253842664654631330584428897004089769744023409882781644178519084266683851588826427918526922086893845419796916066185643997699506983940696552208799019801723688472154320240880437293749683144377540588922037026968546727761073136930869033107788819069902485847056544996414185224338144570732932945380881068963383417042975056120231958815300215312753397833653691949446026044835702666257244010502743999654094618165628267090434026865677635792886819145077924080376285973601343445767640959032602583790019548868630441587170719751291132902159161364451834565904845109596521884265799455239804708182335019433147075709409931726123191168258973740122599194660879863917007101560993182457372036230596115888089026636053631758497704849607418214386249974921425448518471306734217278777638514207805127629050953914089663298381966777410573596966885318862692895146006183221905195976351273954325445333644465696943559041135259521375522221242710511033948156002551070383058557387639854706279698254753262840215935374145478411393653103533188818012710787561070995297661365544214221724767673490368672643284392948769440705943833656558583141335506580332138981035423746383890816546170225026127388249159709362835577797667839174995094012380165025586167104050767338754079778793826295151919025705161779803965833312338734780461734184802201011238487766853681242895447024176651151155655771378640012952825185252823021766056438706397216005758636611077455210537665593979805583508850326093394299857351888537427054700596621096329646729653426044338488261886143155800800845432591906334052163136741594317508980975060594926797094640379513161608211645681016646563726218662988763253383005007931480357376207885502905229558624046159429379399283654322938245078269883186051823408453684041218138890178276825544005023523596844706531003196189336063176254177550339736147187647980046255790154799748062665516745108694431341602236351906074484427041828712683603093770873196793971328084512064762706897192579745739089519453310094253124593630171077247406452530480100856211886257262195088437588801749947382686513612463550306112426006602426082780542751197352968631354591820152670063357379898342141290714880166001178866194625956536867643153712859780742512434161511959687654955810737910643160492685229309332262969275050136706160416209854561287024859568563826844626303367598198432064887658281076986056259072703195775078524010238607024568107474447994110633526957952945508369539330936486225789006672296100314255481386486009778023506292543232099891460355540470265659166779505537814920605653052972126832519898697591469394315819208327837651166134004316273447575202800213098106993167019631941851695909645561465794098894446724431712349621915435757589266261895854186155418533898569495449552534953314015523834140524335625936506927090307314967646868631674946649885462826577489112890547498127339286601155206687240663112439914307111771099518997286747341725739729005078954691736869634612828188163806826167605723247476853303205728702999541432021076592526563224899769515804198900936662955794844165594800485770259886780997617439173082436057795031218113434724872354867047812014338123657433678961824857606816452964360713721891452236178040777602270589660436501253104436097715361680284145291664082722833844737064557965635367798899981365690209977773018688571369337122280410500130508659361407456319270631660638434559366689379047248738817876336197113170629965210059929746094894237512112938382490578716694407680441575608261161313705487857690927757240116293226379944980245031501852398506033133622706129669244137417663131686210752561632571815073676066408010270067884223190953897436303173042306058211374139066492409634984752749894328989041565514387134544910952066874322522000244571894379195965119296531596057235452272991620111473795459553809628138963295319019933274310607074647430281826906845278649653123377916526224381255861086050877934731129969503069909464176411570195915127583185848328192727232151666292884869886918061999460587756906280636139383352256637416385053651344679034703759320319196948400447924174169746350295912688444973577767679968967618095057867408280217783248233321773843497818669707068741580263716969763256599284811223171267041823317852733016808414715877041573973759474346652216858462560820377363360439112422059531596037208427796665564114004367145490119095106513883103042849280683604063251891030263553767189725731831453355438403518809619970479728288615947347115358641732729539733079401735004625511776492416549018456854843557750253783254895675792356798519397473676690799966958777153411442721933761478350065013383799830964007068509863433147722195884438028925111377407760745520881242931026154026631908688562613886676332003185787563080364977791220498217408829089570389308886537059745202147525557473435923074517390447770588398154978739619386455719990119281167017747231368032440855774153976080244341784878367208390724686869459690372524467061939153832036637025185889571578516933628694279676851084986878658482047650221639994076776410201597949863601374513576500878289634794059177401921692297943459621902838050656095755056728068845814149482886927325814440008507699900146896287225062797737814116950470452450471551915338431536819328005109761353235559203595714169761096299030295750071993256258419184267176947444028571526015608744363128365538693002700118182204272211398530073220563227905362138039667857943341042121490016885606883277521340999341946930300109013911400745277636067828411439451750147681714836638577713310704102225460625184419108696717689622120333877789740922354165023206977085844500259523779381366694905327474697993062913089582555196811617363306160654405127254162155153195790549029175764191211911607205333453872057105453140719946833917573484876130030331502683026529049144097147639556096357413873554903323649219310243243001703624753214491532982377883761162754743715175782345040037378827896902945621942294065276132548891384247768766080280075299364904126763511412574422887407229378037071293626896014520221733405371669478417163095944700850983257174685249012714854498475178204268821036558761210020213600288599820019878328887234036908450423243534250605245039757798624265264340896450782553411121798394074093259022134262445803105275429073335780032864675096267201137343427703487677980855487009635129053467510035417996896497673655601421000982419360685424204568714125941657373352241894313356270568400105231679498037281936430904611063616499244649511651146485450650901200021601107059972138636017173729423647613891106632241133101738295745079107402740472542918392572756622811244128050220501950454185990333327947957503147039194304850069221719274695658137533639571863283668759545700149151063141150885498977478923137293145238201038876716108913994324296530814344745954329166700147937451791348171993409174971892651333304114776331235513559375753081539964062674700545622215512313983926292607434140208031564363369542257602123294296212093977500049026618929969325580816958811997969813265725335194970155224994203478935877272444570084095865232163969592762151225268988674595310400890745151813744429961005878108752003464368568253368485947957484771571853795106031954708569547087137120028878505376567872988167962915978036047341377269219548090965163202526009441430503881571259826490817776973567837270866808672829409433556629179037018359434017009766726187218669443225074325604546278860871533437685242775072705251067976428811368962568506620790866950817961888479785328608393171137343661770041158738010408585025398327689162129089258736509007976269752446297041327265139982663637658262245870031529315920685907414379073286372894111064464275846484139374350088553761101074607792805656737702147874697391890469552058987708148467192369171594899466686709427504606649800622887634466298411884092434995855027155516742287662115813359510444349756439111569712707374946771635226591841291200476255879203980143116188974116251029613305252565245833058264056233994582297896373049293905542170282002122543087999813420021077574841277125464494816153745811473670534413774911046293066346039396458171708898124880645152103486295708079755935231878968385960424941846361380348254783059703392854694084472698711844540081400341942037651532480606428910994287221417454041053580029341859810860843524429016857018575659749964016601064585498324255229761171675031742075405120764693725550446806382153431510002280291248028798717673298326201366970410514941288048065310535444999888277753764210343740654164613336800032407852308184792894847559931601650877395226362792022542154511462439676538788618205154879015407956222546506040208486581571128106712516494844606024759742432758481179425158286571973018280569336157651759461075621463047780460126860156807128912751424186193846177025935616387740473418828727334089682303515554789766142388620796469972498192454148720876043925981707468779384313773672602924002449538420572387929736819423579424212902095422675825180712023916906047549100543956922520252672290067453205572646289741699071035208141320204016268638112219013882868352769468209529100169757652152878840338806229004635614917897707589341924344346806413875087161812739544622920435890863932716339876346455859154709591582250440305480289622298402556286777177678074803346894688981007123444169128588060051841005314205159097703288264954029762816937301920716543774007430944010095409750689404684780142080891478021366313351500924960548097200260946585791323897002081771479272138264911721383776836610252405631619156200852322948562638254605990921596081088441518795899785876788808909878382923370227586081378171273541797452962120329360448227046358947326805222127928040300150762148260732459081138933148127842153033770646863479094473701173256958868492955296254529152225692134205546626553759437363603589182065272608309544291844040189526155543340746313660333473636230675753432438416715076398405645309960550368195318137995434302530735520249060706795003025502432583018063240901271915296924211125913360976725716147210944839134249316827646782165531664618992854008704103228852918852505761073466396497992828960242608144498661064226794011073710946237532413577473781543993702284678582227411812982119306747032308013037733620846826684964319440984329179652907442818981427377099808874450519517021875870877212090360717885645908371160408666596499159405303143294564455340308715077951587580144180817897659348029321537015389169742110835182036133383664138905187786670927883119829770878821093691605483011869651587982227650298105350553256177006875594261482184734899760231453854042992121291748610630646250200027975675495294706550813469765965591536524299362934157738842212521880441119000304177459388134956136672963657733303912537191605302765919503847834632291733262735733564627456412007218362187787033003366253523528535326247952183774257807434968888655732438419660234419769368204151898876344365380837515216416774619807171909541886394824269380875491228386210485207052759305326849917829001039723173280257016013672885524254856274756898929926759154038173006185177966724371079297307952601423329559851486611530547653564001368944782121729822372166500610811466850167044846147171146855167479759613208651177467473013802842942621838223393361763037422878637682967210790557182540163270364635456516289940818975572305181616437798783286310896647450989189811725618068480540461226986896762414173237808908025920314394398138538202375430253266384843037459166473452379392000551983675174813208584564596147724203890135837709305274032579567540298647555673990142290987176771668000666399262757958485090338858677010051563795116836913522723782818949351141741451222584401013037645843685129784835101028133215295267360693736919443367713008834028942468881184636429531485788520478541242978543562368532055857076792996305460530086215625578597522479176839621811547477845012541164966776939701135334225725866642948646537650034397710421089005000565929186640575292006450480794892616619587349050761901555769086371438190538558489457955573893163077136609946127357817649086693961816026300201884149029557315807829066350081849349349562331894277865985623355842432310624620609932897614032240328513427619408209302417787530202135422906174333557548516898318816978525803407825366352992625810080775675939997599862028305310818177606512577451536473589798703362857459079331737081447070093524317908577781151366633168032178744248343450044578652847401779896997446474230253304973974083837363599510281153079256368020404112221605682381171050781354184950961080944083564158255487605352026086258101321434240482625254218599817483229937537531652487616617688193688720877599289295002136982542165483213407448544205557198922965012146080071985651010110022205453291890441240439566648907564925798256281749667618516191136632049928072090613465132478152311424343480110379569619189600565288902825221883198243155100332999209711769004938731618666289798677276444724970002908377532355763322869059837076890572845103128374045089867612872106789815055236348541386623794112402484730308657824296444098139206275832487605624440605285067507277582737663270539325914977265061571755490904398792554794500293011985692874481979181586264781369324142278918063960350009930070620513771802604844611490703832998639902306850373847414848055375381733972678836010079500348954573434632492856092216761159152436315083414912331112460150115067024208552729970091495324110505015759622574873635800563383391042835608004593371277248182103571105176324993572852224715189132941916575275866459873724661687979342204032418836638743351303058021052319173635089991684866451535679096490349213081438584339585870744672677583533161996979787880689302188025751156693552324485145403770729739195993471862311441560330096877828110075725105459231326143033736264830092684194867037907152662448782581203838075739474066802234373975044939736478141560932369124720055328085418609804243054994431932342096768655044530463695113571833413881557627697882851178097006298396746910084902979538749052464719136054289829917414349719687824790757792747545931413047053270133782858749470271117035749318416442131058720063364027909822278524066956733678959370437684359540319835338356256655264719500955984812988813993467139442047418460098378308992648126318235833810709872493113581732142887039286992925861155730599404217182653523748333930238616212938824295168143993633093174859705706046925348552921159901261348569757377219270107233686328437699912300624282441496972460837200685078111850620043618101526348027496329207677182518056896817740488011719967078057157463761594456825241981984232790254242488693165283178963739402314938968225397313461329293229405226136551990037176491157416316932939307479922143931697904674864813136612792847512369573383592252272335712234597579227638596175454919996761358054052610259012322350119144223102909072913168900246737922215053502773899519211163703419897544294316131489277132304313205387319492303093562284048999097326916966195402848818360044528998677632961345675428446765680988686038648427263034103288039930541799397761592266905311068302114699760370514256742681126382242865252497179609355351413596262794684869252909634851779237315852279178785862013463368708601768103286599730689328889585501654798982164178699641489816660139227322193950098336769242843125151699385969607068358530911322958158469178723113378080047446342978248299433839869919972678691662856075434468313896818092006287044051832803495710074839277842967943083238732252741417948309345094611354361339773488770725873885080627088585714359028406047669970882967180915552232299960104840503581682112434472557483613572987326017650736163010939499302107236988850266058464799267318709877984073774633947155009517375655619851319738216969429192305278035248588199002168488749349529998743973210778256674780220035678849223288535477971097973723725337089577304567742428806544046830607468544454449136474136719414797836261869938244232293811279074141050603488096803894718393064732997324812528637196665331443704328394403410160989360214307572414632794783204563881874660420933700154322668021182944638925275514935276395369193446635228536720689180709321680206064593849673615105417621813395135266720940008437440045429279105397384175786221057435094346233327209372528411869866750896483367857471463398098883405667052167697956783396856291616511629113829259382360764966855775981248247887662472448206283122120587045814660301706134565574831693435910615731105956142861646643148816416442487836391444053323419181206509614904188586418047729635873132840659987243049908518180022455519820585762453067082387315216237583208054393844306738234684694716089825895097561828149801014378321196954251596720166450413225763996313418020037058154155023869857606851437190205118004637442642255142678641784843694991006789046299810183899644757172356386490336879771480784667991760896819500954456464015901820438568245437868800933092795989039759057951797019764656186305178792375090280810244792406617309772034182240047663004465366124845215975094852948798175497076214568803478054659126175757120805869005314120079890314912645477158937957126538332903470319170076274940933784001159231823982039162498495300611958196891938328033953546508700047896222378400914796590560483969231332362759633980199250555039721944453713031392458486694672559320910587394775698594284750076963064686131435782003019785206943868911838631572870094516694186930215143924774131876977795134861889074889208353110403136458497083230579203218019561634551020622970326725346159937043880257470476968973538188246711177785850755907408380497681678509973093039128463896625988268270276560748284404260503568483516584663172680541108331928279345680976964070050045172038406559109385360675281633837562537195397944675344120086969784739839268374995215221737809712322420227520166380820482076739446434971725418145706341887833303456939337961859682298674634252950580394670222126932111963849535835057612720028631846247485445150878297981519451898423072384999563763364236452198696256374021496947066579141670206939938460077058209677762628262872756720740635404600812276199017999115626321643781557404250644713610205334092967725057260185842079131068385187432264580078795357716831209225876729506228298776152600535340725406211642291741700149801507352290715954179885109054529497140075429325701994781492932164203155244227216831924507323048981617352401567277485879685243234536986655213967815049443892164547954039785190416362487224868807121231266939695352646576298579697498299020456514150454283807514511143922092003878782709144087222815294888544634577942090465859238271717627870711254653154486991433328017350342537380130605164875376324455954810231692555196924710483626302933812090676254557729180143107919945206172534704622335598495111398152709017808442228897031820050954286887260334475415383447585851537533898262324850302530576394672384952152021208320469576276032064442467537545685311706700264344395491682944740797204644005006806418016093005849188518052011162460462993732228074423767072011030901660044153661850159064456312584746919427051009405116947950881409582389180816431035394862766104443710914480086795310971486949010498556609952900603163409861048729196922762239185922687866115216867932408302192841154529172293563938310647454463324241188309984001608155316699613374839595237961901279128316788119451274623881600190336763911123276387738235944196761791624940520280527209914722468241650302781338882604697024633464362216675486406798418287625600505313406075383770751313144371528389118338182271312476680470123250351724119247605098350293596427517069581863009743792929054589566677878870503846072490773932185473018666958731686851490970554131999340886531916456115193500008833899725270038309075386059302283187153638166845945240975620318205504104487120719010098461703386741582188910001874180122481529342491917386388245660138349584445169173184946393895166975446937474365087449724837545011889650206058052186490306403251731107784313470723053812874973218757249024027268061151940307197180468722669063477099054416017089868943435401483226782535362322311987512389794777631035717972017300516958020193605583595217246792658087937902631465049356203778701875232542105041367382762491896456565375957121561506564657477562697521225512737039167974400546968618727047130691291908204908272449565584040887126258314196602372066343252010120312324813577249529387372389673560791630999570063892022180602238606075071528663554542766490229911867534555707565981726887169696437635586965652314653163810911212930573774573945214595329761349101204402395189278451836670385948288888249472170165997915723209380646488228306786713316688712470670471786228884507558472907819761941966199271497903352350283607263393188845539239744238463766748698869415981539061725822720688363607538774043387638552829774476180031784672018807048457079853724716461184455226163557822389513160223250679140578362070031354868853707618606665824186227591559852904983308433978509023730554076074361820490573012630018563766177053644931490733926851795680264594922601625800687619901383962524483390307022241915168869982056980925772559649905490382835586015115840737075620537807439542934481406093763690116240587817518034113529021664240440464820002308177168348080842508005500522476830701469248566509344681884078751921975879369026753623229824397660014779804155770410175221540925481380746740950928138345685095732067985611184986047850277117451487703857757365317245186544795385729948020022169560638696212039991280370586817086752223050216222337165722234081477607566741499369796868660341982120943642008984699212419958648171729832435684949335213513573910108181358870923447635743281494636717800620489683940698847228166105321577298777689986576111938429253292238492986918160201874924211063769045928411201347916526678753784692631867412346294941200456968362092151525351027877320853466948123204516290976219582122307426722291295767636554075491798386597317064145758553764252618728927980096485933510980890043049613220257959695878764785144727413799193201776886895415212518890841214969579997968620352220435328328227531384302098510791063847815334214748033500993555280807452128527606552289937041688945686117818321447828078768022163511176506228015020198756041111438163229272859468112580940529629922692450047067105491693619210447826189846369213067028398488909720726221150941897319541075977201863503976007256573851507286266140818125313626830994907066793514847060927074238698038430659605088404653463978241764379893570259802934168769993909146072954235390818930398347468409308647456381012226961106346528642011294823321719243014156996788395359731565412291358942331281119994352381867302268003222839730758362151081341937237153811780466569883250579604487553720421271888657652874796070216500162239720868312489941757975731482278312261501373983997374145682731451183550438752936538442872671660307045560546735669272754348445566124363729576567356278478892652407139123117255753667124899148679787768094553504366622700873507783079889610688391664962435511235992933297133675307757657039769105932981843438901464608687430770031481258486308678433732759832586578494320122730423561519436264187811929739314226458301681183794720156713641555259226891374435702227729130700373885591089713503933788267835029077257968938306968153867506689791475452426896009899297668538476078040700352432240104135567070068056654195214538317164116851117076196408881794953861475947025036688776994650656876608077618858117070017477382804435807002832205265779367439521727690221953754824478422521435033057845723229323767003482593741740716443636854894385957759693979039758438139869051250308040758410946476112017887858490770420308044078164205163423164545977213417026962365375859258604392371919775140973122599944957264102705977575893651187066841457656076606873941135764684586217857429972970889824429345191856325736493222708485515286169616024388045515040598753686057721273739213365391585286719644233814039030993501700675268871252001896910979573317929442401997597512285445082143961265407279019888662657739723904840755504349544560427058563933318467873496432926663438684469016135266620319580715942817687609245735854641826022176445562442862851118794047907857997605715456556193475024899076202134893814482461651667037801669537795356064044993961474160509935150626975739168982063093690250829117729895192529656809227097022230338890767733022050126247339822360170054432056134750772411387738617678515520182331135766106888705454015762464625709685086681311047516465275126572389812338380813489534417723291250820481078011816129623406876670651886071523138966204640516771982358163482222558126555703359682308827253983879175918563217303848936286346878739382070470179087120429009864637566474085416832702953799323214177753776868461089937930965764388240170964528657007944046599604917881122958504662050402545128810600266181068422991607478232741859798070600100885372783643458617246883304260933355018248396000804724525544385957500107141240656391546005364077463148324191204210958797818239107315805763238117852426773373392919992059670752664748885358753945032158448722797123954705879770773226447087175973635343497834465543350362094251646160094054899022403462521255040211311050066583440080350855581255987353247639382499057645290695141583809762447812719861812648422010534552082288547960066985766958756715182888811694534664025306865561259113868054079007371222110933329431067970465189759750971757241973021488013254986782550609115120485321381164766241120498339404922297352637304100812981858220404120855985665573957856966119860344664961543296234040157294458174270961502915064127565693240406041357314052438279179037035573272917180364582177242253371202406829016769418575957840318133784303123887187139916390131309021415811395601922350696373189772064395349157136115898386838133971545637672850586396612255530610094803902882593045589336788349669073603917972083371707591717887571772002725629133286075655129244374924591406415543922612193249457160933751546926389814150571552478430156038863541357709434459846717078177590578575987944807226533042043531468307360169288467287792326367228663949560095677302200827664248991248505029956780143029774730502182267654004629080483847353681970897795868206336608153337209471545931706814019796688637130957978058920182880058876394238913811440953158581199337000657173520913773609678172227470971007383178129131425177152151825910073067717180235307976568726864773603241787868711309826325166237386063062356561868931100445220878390325052581975119060822689638143459121058265542080040514615281181000867691272965947396573548356373854256100588778341972893457660378729941516683033107311056193412067935389946862782613189144157244452607492229453587577775168502123914040650762486962570945321204589582032239856322963664512293074101510831243655499504847468236847028199254655404138851890261519296845400909913462168850233639999243043870835786494769172547545205574835127258522629093786333016239400653030355958176848115938735575075905104489938889258990459534328329183601016007993202673485068861818694874850211775942593482760192977131699385356125228900867680014317067158161531940731689909123954293474278115421927183841403198486254057229385881104632114530459719603072364949480115639505546897693181576792474121112484522551016741927935585774335259250394262645997042021861550151698718368086406992600979968693322205688999812474554282116434109325029816543021508625922557362057917977589823322493626156632473619156192442267672684779749083118273303678001068218846157315766225552351188283370579469919222610162164782348437536289368600611599769229824560313955219910788917199992510207795173153809765807948239439483760092239193019351323350121937479412751931239825239997987738614864102980253471280031496228758977654610140565077577103825608749587227638936330357999468450545549545589634484096465096599701101195007672868789677962832582842365188308768759565729509002854806855023165626687466247400405817555229337635043846840709875444971532237429442599599747482242156103462306470712617910795994092707544400187979091301511526765163416426717923905683796027509813186668171342729916350084228844579495953735462918155867336042417487234932990563075344661820415637123098369323476701650870578865219468248816596934401451775693799961407869329508208001356596008251509837428990056640612340209048916245537261090453057801826545652270657575308348444356840515373039329496593721721640191182876339856655592011343405993472186500953587971480686381835162217513230210196633567706569843698709151885675353138839894602929488484011820162563828921077522322068839920548212478433869309935127955952546877011274361281417351297486268094216472867061509222455237926653851712526821962592725040933477659688325578325525949768097103318375038430702207510882655706932090905948109020848636887365804730619025292702167030356637293692015018834933861878894337228962143743837548725694663297686519115033767322779300846525189179719860723570699998531809298388615018028530152572479348877783040749790838953729234181335848447558079529544086302757695886537556776715330904515883194929062389224300483972839272388069112035534056447357530758248252160980108724317987332560777216453494098141306725233770059288124316458964114835694310608472715873947007478158427291480902752285311061383160531238511699217791038420440569507927033867020685728435976962330739459981724406275344040822828889500484728498312637151777996390543007611216608563745880732436102483569013306564999071809609054059385731157078210433366023081848486574042674857126625632299156900999917042368350269787899661264594651719018674038898542971760723236492550539248748009806562334532155033870889108790949938322771036302944263249395254021128225054623068861837117824686571309963200353744530816922264793099144885864189214145438237594108920672860586312393465794273213155051399885542669696712999774645266984757179826573780537694973934263914673396865990297859694899186089958907096483167145797734032239578348121745663162491053216934543360702780736880298799722814824880288811589952976197593331984585165020069846599183031171354888869092658457783969322587945345980870142791681683695293344102629542747508165482548677831703819776937987407826565240451962955157034944134456727406319315955995851197489372916734992469677722051366297960052888201256663220119636863700361619349688139552066144170180390449685030816167599500703679234439203136442980574760507962012626173893025562765977969457940338737895273966114686979638753135897518727633349126854930780497230532062788475473954619458811806926642801730969282505789092452153972497230314813098030836919075399359486348348803154856018474217758723306912928264831043417528852592476580019528490558791719126578767219195360120299677563364272823252741489818168492801727032770655876057511520003799160908148878634244058233544244302614183381322932369039202131420965707968141407540764171577758099404992879651907345000790886881002225535732678034612526493567895767608344136137117070319116101354481124399016737857550979478285085257770427966440577983606940783771941686183910214555743725343426657274635937758643073357822366950188791079601306147169129945805422724722841497794467126258090174390474338355647221534100267750418643454007653203146013498681567632802031866199708191480629160936702160139005187225151507665094317990072277500944049436078072371907508090182376602371465512530242981340149208573035003715430455532565807305263865791631705039317091752211507504123048926253475023321632921702100168077305741599131378940674372202629042967922853783352916929938792286802293610706978380245147804029612878525480637348149548281427186588251215787579902446416843962338934646969611446877168374531144854795129941626472931169302458906679693195549380643804425382213110384561526773774468521437337725167600770281969142244552074922948000782468348293431421834291057637826526207248823412344950832161158109703303304319693397618622616883035796822018112915452285027955794511349090101469949704143271402308145638746360448969771946507808767467718013038830213702505036006377237648129094438538200535536692463035217572914702288424327741858236304184242894722059953512736109296034195963118479501858321115208181400007834494341749063766789850969364949347625993963204106113493151856585473401408118829656515230272356703472082493762340871613106741011269578392809661518907087187349227559358030800905091476740370526423290575951267215803102298119179448859311184122221592165359319051079637219561001466847787084051061110393920195293262826089215767976822819833279629370872649200860195244312939429126162917137734982035237252932204353921235644765192421844875554243653852160234062114049794280416023288694476884900715588245892350734351120743704756573091412353439689539803921742671118414176797700678490979611136125056683349678315658966167431172093198814459549201976148242355644217374723919778691066017508996815593761196903694509319150413870764752893703917275138943228821262911301943176588497383686862154854598896225405552276054298398691345285979072552734188658102471632915644383847592675017529486380064630454696548700666483282758240456909180241052740619014438134808517101677406928254740402593304644440434435440714475155446725212477273962353977989153569024068894592540532723764754980822942316267734018040809773610764113972950030766161271267177772060167815393928620978962762885206829637969619612182197963006374890961104521846479741934065711279892837949918882926242654629041556453919160708224568253754342632732585600687280785120299889923066334625906963868858412287403547044931122734860380357340826577738930686087734681403694688701856356312184154056376775140595724054868129358751974158689999624719372472667482810106393577276399092714050176117449551884738409416792826599707148526587266496711862623301611748329802122970979789366215361350435191687035813752458737428402925038059270031577476181860631783975911786446759728650564601526651857383167894124029063333429549018916567162372662273940815703017636148065223574669750050048158251478954757506747066524169281719823086135064982582550566110452008880887141672308432688788059957675123259806751873190878355284527969716314495844692658013150120881163256780903496412679298822010784740451574971650643530298544145628911777471948555903009505347710928893494049770425882657785300900743852271340849759194211716838990819594589929110088151846312931797477453425007323579126880901147423297121106117126375412490362564752914661770755697402212585930160198097045395256707489608133253664977112028886118021011833085615225931372079619730363225491175493730522067502578383208399971498738462728456062825289246520010087371792940086140499420960009178192482773660115575884991826147151009723037346771305679236982506023678736802728611135935318243316354096923049146153129911175949736985944164569119536832631181293787163511914429391968131677837114058589201997736431562332062289444843208953283637950987673636599219027032225402473075538567471981827615759285813252874021896433763731791758627198809830178108050652692470025695272140338278779373000769359138789143716762926309348074811948696036160234017023172209750787145945443620885914813749864377581233084803202875253716511593545979742564783821388728638805418163975609509420703229100262903643328503778120631284499485026790855849263670807023565212916219575610578526516798706286620882320952007784169502157972492335940432535519576027767938972668392584000856396779991382194528306388236918156797948927711328645518984664964933080238579064193020994443438920034850534993338920946119036773594899070069218691434392833380198758770998013882978685727686391974250256668373585023947859692742076337575098360485837857735337542276050202221869954196755633771042452390301543130870236100571478278653586369395619155122254568253614038193818991583305205438490243170893965378639767070865607702694345864234852223232618400394419247633400987611389670679261835786145047658921602715176115134016235676023942155721640980694687115297098845096492381727241850541150935271035411490406688238721495627301286375977334674948423013168991460737968086017975353495129388482223338383240731977549876008197454312216285830239531892630415157269689552145197420743426236185010497296760532155972379213051618404303381159419824543045443774060769370805299795982390364647348213018312819680661756339623325297731678539692765853103663285321339715293734043927400301254171023166567234581038922728968152856113344583663228484460796536471909810258261625392779846110689913794730298075464775239850912369116531014482382048232502237782474239390453348840173110649205661140377419480197062599461769637395529195209320223086604575648656239852504542253288697744227408523059229825211977738958938709973619927021962156806381911991368530993022229094069815077808103841893167708891326857003800803376101302190808741982804221273410598026675303432057318802752489629263480761384376508912298092338663426209018935528588878467271301155063703786499553004544428627881582014518874238676565133658961009673563208207652879838140744782942593118480469516305547172294325265892650814614606946124290426135732761508207339040357824130411494529349791425345771583717360033122936086796660172074859553665502776295894268511900768973963938977985096092776667464182856164989398921148198335119590780901356942955512932584621955496237546024919611325895568590865172581435340492492293835703735710636049382743540864458963864940996217896588409827401589228989235140277650337747918596810847605291380406774053126256851932144768072906836766042621098074095493831592235942060493707227803938892215931302300213699057715296073845290941533512335426261494072717641255644818815747256107263953033574547657877605386510501530459953490645415749530624924416972125525871788410903800626108156380668551774095138300839278737320505390909824913050664376629434428607016181005983182075436687933768622015768347716992707997313710353677372168534542384880056766676975988243239768120802766844239104395135844553601731002433971461058483135325242235494664178293131230629529559934760795685573506071806618381810296698875709191106244023247573013570306466911419224135484329798969720173676646944638699530342362781132368916431574527317722852770299195187420897179684156080056978413321391098026031280681860469023897523830565579821253345159455607899876358580209360214109782493069011114206766329465085514153593061978900507547434301022213238931725492007632560319648306424095651061304884802195252351067221095655939901240300626702950697212669279923062275655087878943560447425591068486064082617802011776877338179061084453898058877175914037247983297508067891105779172131835551642259139479092120142714671495958446421499661432678037062462175495103130001081375114693853859257812875877882985790582361152536648022616952572936525809764080003366460358214728201754902519849117251115853492098120806738420023999262228893126070581589171574720061709229505353460953722804979298108004687688486033681203620783926377205408011294637919562144186757853339275700781489022759860852318496274478091957494455041385745880123548138416562457065432791357631847613395182652201496896698297317087362205776980888004523346578560043458755154302178533964123992971231775671876813996017974588943471998803880476155843628153762600463999469020873364347877781834180272540464667849458769966045865949993703045992157348836857520440092135937820468687895229677591263886388810919168936162164282772146110226098835373419895061436844304601215475076385940808392561943741479447916223911331733702179744849068916186833719063957277307226849021160581666359638332729249389711842240225773622574840355179773479735080738411188989100389584809171500845528951659221785848743897932869043477010684537431579664470494808373025174520254647825060438145667734493099336217638670666511404825548279198190699508291342263321570866800302455985477010923363919498150024466229567842493983491590083436863198366825719008648268369471019243551732250275032758630244571684677069894376297299048080498548062685617247395541710782542266794974259537705704362079506666756651544823223155454336318954303172520106666126817000549422396456645147350915286274461348982182473455876726822256162389412453830989242372599576892519996802707796734385050419219865025596671853783670527713649653136938456013928242316039048771033290846518317117947632909290356170768818415836990855011090117487661166517139454078448361050837699528058516165007363989345682181734841933415131504945965296483240273944034205392784034801991435698568946192517044616193456995225738206890323052274495195585257623973302121540490161962012309672029822318171485250238681614568669158670990123674232116371394570167018292561115913753604112165357514151593929403892718575757743818441348160348414781158493534135789272819639682332816164308724828129175493761228057013038520024210322667397041465691425853810494756698599486259295987575983587691710381489337397215305342578713946990001269731493572863045525980491514502463377010296377677937176375279719062192564495695012390759045137902748907282504989660390521902954748110872295594564126854330738247901467412848378353433019180046508218655816632160103058570926057250311831029432984831633693727373925076185584745563287794068307996928808040707104923490838458750162716247765624511558409393759712897945779071244023452171214758198721597397445682841811670096481111701127150979012559269771150704026889870547255563836171468762711222647155717144731144388870436999057485382063548219816643847636123681196792329922275466733172377515660718018498628094599194924102964441993105515971856906567164921546854216116158551408311193809388177988788938229150858917586745905563936999486499014377858318987814673325907154428218866980234652424318002925903565236293157067013098707406422066413368350782913581296281465761900164670233143562445309197560258035210344068247392732925235926660291951493215110207706644929921105880003027075277607312669205318666433944182945156360566767973113183792557133955220177675478965815622323256468737771983096698586152351223294633862669392993145351352580207724771544630298130183498296922787721058929760536375771187769128705918191545348836439847065845740027233192278133166771959276843225437187146328426497483009719390693199476862267168786447987337900131289391641006184840988954741238308135843204453525645348728461394216464321741200470821970930400052762936963841996788246486612846950101010761599600208200170370697222411624434335434214395992256033159041321412635709545451334578644257281920325836130725594128898757374534774140790604188963868179798840614165358368567001150957219935311747792957424061199785959635135581743592867546449528929235278656668478217219529365900145336749378804224917470356360311050252278644547276181965073975034946408999499996343450383418914558243536036055965885610127874509862044864667679641109610565133985643602914950294029167668165808657444229126497143192947330748913183070802677920957333654778544733402172685909188460881496115009571916691397767419728754874604176942095029868174071275895202866023552611021528946393677221977530411764696839605901689220582987077382774111328088307800288037294292622753193515968094989148549448142739153618778486627848848123832408804285807471482132301100548575851431975722643974779604019187998269813717204273765084251463705659635081873860290045318768470550833202412057737280885177946507910904921032091264851994448990758307012695523967351039768793183524235356934854039169146037882008558689897870190946718001803600912903583441962070122556707611177421534449105099021648615651493035287572036741669208999386471054200624726563925726484408295486301021940552286353347882247438527812814008366079037960713132043673467702971846067523226089268658872197925122876874684708086893829459626660414611340695374524300437777546267723183633076695293668933365788709333525475236311289021912620450931150731908626392433639251508552236132229659102838885844317790542802878925177636231768784604376241057311898840468642324385335294809331422709986164118405369642973131819639372791973254859062171351997945064561773070121754985367283132290192754988595147380375747278522730172036881693763524540866011187209877171250392381532007771524686552374012531297333860427913476269610836867553330750056828769953713375217700774976587484233581457250935586762347255981453842661242581711745757212667416819570205035571692433145565855978843673199442185349145583672461109650773211830950572883654273680312614584155851990579922468349225875129451679845554284894943055587557150558780075350297392879128907851550481187634823561217498554741953749384671777803356550255126803519321132417633156348042804739674481356752780507592093098735442444432555604104985069005033667046487754173421599257381031677508630531728300088177663888886293492829507689613254964087130657900321308462324753390654279078115288336812062484768786852660489677348300147091573010449430597640032832661182263302426902852584027081364203909348414815575334903109789284518003286409737748719371332348216340398200500178052681579548003631707541732206447512174390968965251923171431837058266717669682272640041187076773485728345793550444659670512622667541137859144625050193767931799546367849266775537692320016905885012887091411768384572637229789147333875032028723805933689373353786814618296092596635568225991883265630218941307583747798593734701061579248522274250473686065971347917414307411313297849903256942876516879085467037997206212535691336999104157551256067767976531750651697568596318895377407515286767874392856580656201997046652105306687272265326525190190181581727756164742735609628648506028769048485835666640046994997437443769424925525107602606810216038361666097824746784169322747935991964027149618513305923748463616221012873111811150499685126468886309302972386441257023334884922640136640074364374621915407484000059010959050541947576366528151941407166998542241531262860100189759244536258320356844735143766791329793133651532369315844609973749688891552470751164828855683696328146280260683136399110340438478329542009271973293844544910319927382582189937674896359583941418603411812847124683676579130703553656698280382379155770804365509368475484696837269868517524709596729349218134478539684694357437383329157808114121000966178019968798431165136236653674038356172441995672069849577259865071196996411516833106999141274165401598320637336970756130713246377531168480646741310607502417942212034527206216423209718999949781761856939605299570492929513662946497552908990682460776583806511614918921103275071856284381216228033535851180773067658980460549699449570007615977029560265488153412389459643491628534578247375044191829689452989440326755543139708410686661169705334274654254318157364716682048893404554506156227125864699641434978993150608458900186222898081734175628547870234016124219696111449525127950643921560888427873661753353547388569331549074408819426139454530935773115800044314161395046514382016117414177860145752046729623177896847563240526486913840842230403631436154678818601705772432704107139027442797613731742248538416119748027772301845842372499847132649250218609891736306447835843621187818591797042913877514822915293720926598553107301925610905526017459030607845849117648716529052575343647435112395773307473927218541488701726067721235127041442347832552037989829736403035864026737855337227400531565288409206967151485039216541507338041938947937890941119462309633399734166319937121205903455064503683956583894880676820436979639185617796208253339799963842805532760737473046330711517167518305290957952058822921843196898421295647648196462924125519772005488023894030720799396617768929009354188805891685086959403196207166629927773417209533281699360876241607914551010273940544213392559979282924030136432504309835669466762452671317508731595169116251670664274890814955762746415230111492790193366202288904776620580587497708609106296022350095235758630947093744819707586403876602969445391399826800934815270148285267165877356498414405624866891418882295468970594590536477145874880947232122887705662329620980129693179833907862992949775783401029251273980639089834404139956848229427584332100410269710047271720431663490383179174929651315099996328806276690873456137183872989004966441811820235634644394190932316215539889291682973646662834212274538777633825896557949845037591317363901871836254638439122641538917960456502543094104428257409947622954219935294589912755846079690739926206571083612372993973284979391679376561912448735559742384822328596502076626746083670672916316522366613770053150386442585229541024874472932181030342682065050037803269412126894455277043662126927867777261826051680166955371813698486260025966815146436268962957295900960289176522318809193844299315593214152472279650434457242170410894724333789831907836866190400936115890731650315719175955076179049760633709079283788956326620570945359217045611597638837086490846508209061226248890948899522420768852597068830331374484557898943078503828334580609619658145734548355015264450312359417466255288932696439250161076955685661427197133442931679730422845391550867011474200100511832331488482191514897478284980567362892660834017520644015168542519139182957878188242210892415184593824702122751419850264382660385816061628236202725880060522788213398612619601026429692451371365503009891316745709509879301422483949591417237618733492102146364576971178814833961997894668948523189286137402632103765311876317522240753243505801120838064174413535189398144423720072709200099390520808976078426140204240515872289926618082991356764509753851503578679440914816225189190417376089959604353995051401286017943738995635043922407907784601617748803774795056409049429609447477460990779195938278998496116147192917307433505763545159824321598153305335607638160664223136349932479417190313846337293634092125821224887307048133730634947545988778711903506479841499866184815310744776809184380073884924732323439261805482392274470014704978852135665663638179433152693923283692096553166959698594208943631176044161617425425812231190550501029764779925841740659458444234540070113297523023639237438115844429299438770368980784383174414998224635411103050235753678397802846518363175292207290919103573021411652534978124054248287364067521682308089612529167422495152362150012701803153251916598156140545454518249293262623988258513888150776069152012897267515501349301879560752665965613134518730240419621718979513543457124476877886981010601941793400137581054024682113706657694557330441287023532545664582378244937904472852991355682159785083818839053013591730654141223519444869937886963848220798387757795353550596285567804329423469811901567307459338610829899134141099673950540176239749107813795892358847583722764708628135781547764142272297973173483909801474926805220130748058843511240942294650414831140209699424388792370783757497812453331301810651923782610529806853840292570897595241886818164661555213954182164621032705260624346211033235774837862278656844140026387087297032847955895585044578900787968135162630153573020264493793509755564291412232603443120025210929849976953181897397613855007150548034148967889165295744738301067420118571510790137647296977701647178292177595715669719696131285550780687492906844259208635995779024055198154366318944153324804795260284345353448841168043639482105743397791894908155897863447514700812647670688801494235315137214445648877293027611484042006790276908828155726785750512505559316469408093318244713715917645558695667719983050014368030949022148806473356692745334844126163248027154088604683491463602010176365272797741075666619369365572245760980247225235116257066875914197312691908172388117920863786706485852616078735581811137541932618863626917314812336187824088406155290137892094716552457312175469727064228911622757675265119780599287689688617365389418510281291847423067800438438480155720049047645494511558002930124190093565796918583292030113356927385013477683477854557417367969339167686262596903438491011261786180740372152649862692706877550018236420036975747295986672207768967477497821849134327870208049606009019033978860488540504623639884316977784787997958566940749243412556489995005696859246065270414006328170237354605158030297802453352922806842490302179663416994056627381877991037220699275865250675695652138135039935320715286004118870341399979931014441751838915154072509186359131285997268190596910286196863410005550218768311566294371730989605216721745466311698702456851066899737962079303042139014601583442421904385994622468949691424776272527975341831305507230470893731423250441220982449524164796959983144705924470928084228607531136074363315301248403167194109548372683377224502144010733622475580105288426456898248133886637081724318866324979708593479139161812962020706718261987710845360412059299808449735228810903778883774522585620709220614466443730487498347927960734281180568170007214396472979676487762099806667522633328165946342707634823260976520721796409584872507621788912900270010721890385694070082157510925065850863116678080876446848868311917545066633398719340553002828250112054585008374147440206452189606835252441784967320514252247866397230681395993746566993748592441732328662484462796759263130349593336047432585110987455023860759806079048579444275798191423438148682237222992031501537996238226906970162100780120891773337484359474943269620693104167810851878121332634873286962578358289476007559125046595146498983973185656130354421562150970493915702335357191030264938584950266173663974659705654449042721853668678095990721688334146746410021653711673372471638072179748856401799791011977488254816060003014447948224369263395616511423166428522778829771083811077709860577720055182431352054427012043418273771008088829469818349844981343207523419517620587829829645573992439453822460904173394942728350942408996899681222709318438110857207789835050686692530549077700658105325638497297755037068803627863438480784023901171627123970547544959921705691844852353350925726367506660362334277369804513710346569440334108257833674242895635789115340574515857114859712429345850427994912095709447656183182823744168748790540832647416187775004077654598526419364479306520833734568808023659028933082173099017473376292325643057819435565482772860155898191680907140697340603248544079221520738480565352963298913757178291521625446944405549274775235577553785158645873893442267937037310006416797892398359025270381415271139068043151745875152341686210296334859717255090601067255346665954422744973686247808212092526024618918183803914776660275189803535955335525261796654829798550435854776136154431384398839216981420045737658440914556431717560039267076433021428703247993383524116481348780064313450047641688378043483144215492475967495229375495239068568234254032613997943246708390986378151532804653366473660283175586421740373958661166649528787106143967029840473331738837517807662781772797022450426274351645218763812417595205884651537212697837925389331854706300799576458205268458807925394884947044958650015524637813703973538074048251609787217663116779220349298018460940952402700361391707350104407725368014057311532635483656989322057683257466519104248273661569147816303404037333871661022457805251970208247559880362068313498901549557969190956115879052900267545762084911310711463254467790912047849498280206912626108800056534986308848233134699573857909685573747458031354630589967586072034991187716890767928820348166821832969911930579065267142832997494007966568558179217704770722070492011576892443270194552146617303871441733839564073410929634886923710017832019721617266297328335416461922323808470861188671545948096836214794430760826782263607937952364751625737184635290874224959923944318511619519678857273630825979057742467736579524787376689300929944400898091563801983597860274095593817804760963646844040777406086614563306443055642257448416895036055162391307732744845455785050950268370129330237340242244295405899003934355623803304927367212644097931054629734610624808752104383372108208541090893007057239759656259832927949903430014546598256071064524549674938960259642772178695971658640519267883475494889187544471184393823269247020887469151752306570336607857679235512575798848710652286283411546469432043755817902324478360033431054790266069212420986188970151407249465694101820870531719474119942654375980145966048594473109841312293509156386380846513683322952137975244995296544007090819674491041721244329907239727685264783636188458692189442053298943120327255271005854567562962476998048580594761129599396207801187594753412227006554024020885537392873099106094153019202170309811674129022622687425624053880025501989418877641775302612769928912726752655505172158021864781626409614936341988780743233977275253544395086706574636514796744880916454322402929886650020824076925219235993264673834307743021359259757527350013775085580010150055077136385079090374067934775385555772020235006420114630663843993656742662220384022574781502132807050777426749425253099343332567730165152566484851298459161280397599055206955402175722311894611360197768959874935066412493432622239291929981206054834522277772228856300603481776774082867442592822782607631106704096278694663043462403387425241933732849799791725491400148511675652803935085386751757010376866307754128660141838459999692259529285024223900865029598834038489938737653798173918977538853892288915833261255896300220215163763121050246030855448031514172905872738498380263822200461978820759891967662868648829973166611181576584358040168490163542102440864566484427438272982619733942809793730775018872963222784616522090358354318723600460179321157585083883529210711628415440409214948139988544196566398198421097096916188462099991515405570648784909629598987877143222171001118509628265340282662299338132363761657273089786807395328312829426249650327851697390399056977509369849480086409945293620069347960102270395469733521134336278905815356367571801909547830451992914873692805076790128879218221141103538649204906247315894406647063964668914700150409873077081852104545777383436048280325069541367669095112143560995039476403764997906014021321007107606747414280184540888939687245589902739155904955320438854937123124000523352287132238115267778515487815610975324572307542529572682924916812331052548253029816850585517920924637583070819318816412726248249083984500311540940317861076713230259908557711654699360449345445882789123234210383886829604434174627186866163630382644401258213231299567896063197533827515854312621621274018517097440327345457468217044866332234992369836326510232070352566672098003682847414116881123837442167076450233774950568102146599532937606659521127818001960468727484529832825497413971554686720540617064191363631451502953039663476590036156293457742743786467230239976408708598045593368241389314459543399338560947143423814458629360471810431392382458680425033496086496884571555698308002998080698254368266149649351081213902408465144640229351974095769528547796626383275808131710730570463076414151682595216474890241782062654255685214272016312171295259665098819207636059128826490471745726543733211245507242734765202948403361435166062431035384962755068491099303333134439537786320130678673414561821682258454796717689412262089167913651655152551052174875538688721983598171949109369292304195087039971041546697094506880698798375689836592910451781653169880643834206877038201785820487655673572812500161799472294324348464934879514176209079964947939423013138105534083487087872022148953497932089668230871157097759630322615313149768254455777009376887925450628969380326906112230135163856595672331599943160596058247014532258522011337481137276158646913440442616661732142224758990259891136179541234715982859380162165337702188522893680732652572347797964744761104794715261946253491537319108622309161618663391633289102619346246609090091369586432365520396203198587727189086663535526091871743040149888103005060500634865306979424805671150800362376953341638951326809723099996584178044434181237263663328075054573250170537342561100667734685297999838472139228147367246726553689159044139668409981074678546792218213775535873616831574538583217713027923524379245482364892934603100238023670394363650811033015220882780720277706474043724912030961022487384806715791952582417998839430265485195164088955376549577224044690421370710344134112699059241653544605037666385252079526173401725336025237555338316504087354019435305413698831201368875486099471347757670054991424390158361036695911841955165013823380293836050798638732038392633004480844901649070587387910238791876029180729906835571210953857041542436889060871920030755934726028417330659990478188741144864179198869928241872956432288056612513064832706446839830147642974582736453600094313614516169307517223569777247061542881219965795375624709671619039357128746090339066458137787903117169005119852205792757883613224322380885467971266754222261837789420956498906183663792100006296113283257438275521514869749170491316608050082522485539545649221238276595103674149735063378156885775366702100882648076682920934594322184570215298277053814225002238930342384715340421144736252510387176816289165988021206603618078866235047160680950663169749515779498749993407777254959328275875310311122934459658838811444985803318661154529630279023748606468972466405996722451164455815798261114751087170767386459109420611274667603708026574146676749248372007646874337387954310244925416044247690027818887669664483627076015724403550023226689127227408159014264037922015336001661642861238864814206046292767010902073706059306961264707490123748385541658185926234344088115547211817528379831469056341747662375402721452561566559503458904780655412777633678385206031243379952575409274642065844910935823219014436136473268918553008552488044833728773802222745453451520778997337530044596934068987369130128850931815254756785170485632199997388064954581246131406710799260169812773564026825763416054390993986790420356314924783285396710579662457193966475325671082258737731694016178572275438892480642796862926148649839927535163808702623424037770251706123672049840054369377448413065219757413152529505636957097854247794036778372930723931799775582937858190335430310803140838890073574818254429038240121344224567081793777623880472811442892240592199248565562693126756945695575819046571382209192533943537972167861319499922953792427511217138963210853637498345793033356333880382139707990439357269894391458977478533105454132663823026885201058266571522737221950927445171679990055952439262124725839579816846109298900021243592611043876172303906186092201241023485726832578796561589427441342113552198401055361224700064508615558355375941600040366980164397883873417528124066120501236774098833486031774589731181967331478631640105625249224167754693425201675783326619394811145965801371308374284672684787881102262206185894317111525699612487763771691531879364051107681009423885352763661482113537294186465384737270355455824365724876250775185741815880512072405852930559495501537399606264708912539796646766854373414334372303357639303384961766153889598691463883303547943330002581127792841247538798116574445042574330355679624603130113394677826688713454706539586526225582535760384637056451810449528747785540195948421508565140548933921264220305074936245341352959941594144597375526237363752296782702010610081349381131756289522201961192441530748116344985933258376189479156966007307973774763608698817592767807529186542312957793098557971425205648061585935205517036823993663662300105487433034452672056639519424164960790007383707908410230823483695278240039413672156537682917411810368555314471678459020835101179992099497455672503227591980085566507314985083515073899261147154417512587599032464312718101599589805062803129175325537892304470608037088421196594442314314454537860546706770783230258565135236988026964496034676756677932361590993263580671552044541097314709519562005302819424074453026220476923674526142694380466484257818648817570440409883834608901132366106742986982075394206285819653143434423095158341079771076392845082723224680720820078227186865954139439263344284679403213017994042332989387349381725042945813284184390408663311238483667115768231549188674223457535411146829917046473257695368792116400154540874302753712527202596427088766736629019489919166972790528667563981657741152496709425403961131769140040902249201593630577784496459652895983156877711839726236016353633506584494837214816012207904035966067552655334671584429159590375746741435897249567881005043637257201330905488386028398229551275602299715584128501157126722959103854358417525849281983723141053105777833948088828585288282177378601292776549424556579659070597159842118950959556080180688289412988651686503262228417712571932461674772938793539469114143643271131247791270754251871473024991820328071699377541599585490765555376458995134515621172160256662904735355846485528981629488470309217836105170644433537279894525778257939232075610294891785071388787708769368966239718883408664573139260590420673554154829338985079177498275715319763552626389934123833411638625137912212649567412530363438782726683822887592380889955206289440539519085659580623867121075319890631121974317685285663615294353863514596070197275152735828577576319686910435885493581434713978461085516054141598202543689176875760597016479906251864066396523395081355704157214147259357577747193350706098275963392441173847014130763350510116439255593988603964885728709913291902655119621290693005433258402649717663637728704731557801830814535622928585196972169711867515796705537495414590232653190022014630793751992490036464517022531708963274926202106861470707156068383947887039868603174625856576597598660063038164062587481714024573108466524020762848570508936034718019942432531736922989687771563397474842602690382198288949580597927024085127319726397232877615603255965897440693383281623227522557132303656865727111094651799248627700650122983508420215831043877423199050777198460514701045267688023731477516062937361722810779535275500344581026522446889143496930994632297727539116519659806510500810293511510140982948935714967793232070881629824422530363541853306430771023204788597527221442112698250299900617988981620763343132098479536614588845211270053389601448554063872704356863651023253599330613058126208217137170757635883440134032650268885545308332381200069814646250614144216015428704507529293245203461049105832325889349782153293384999283867029382581396739587304445404123203815237914784557610473092219849330677888275324601085730583291833411215594245530961157537015009955893073025085865246057987152679026394750440858583406328478766913217701700708201709774585544241199288864753780853395825346381713503251662506587274628817782957980626913864634032492700604161682755477312787845944600632747814620776281843787766150652754785927559218692251988617774429802678388713319412644850463998025182683984270692190719482877011199520176094971132460058027118046547034915437176444299174518522954467998888968070983288995507639555689023667376816390227533721066145651700066491899465804239333980466267345490129011846327467189347880129509732128755790974797844395359392073107398882107702225922927424074086000900153949089391112652550439282941463302407160317238460489399786837400812423724757544041620663982512528781013749218360444021015058850507333453756633271212533051048162023225363373572136792336842568140052976727919800342990183998150950798990027509282265660931800618644401787556843882862149260557868781687652279036821680437364376804547899819194382385219429899964418321287177371464160850569975224474623937643701678792119783151680025648625140315158352902354487343717479282906064244555482058823528323751604373426352046948058897980862584698799849766112957039501770180348750598892691392101734361027670048773272256457908026360283509885910128652609632682872547826561284601310939538175749028822928515462907878741986244026922594621486457083724741238474348681458346905187934858826985028027355897539863737565971615772490334051881526717396661528696429172047079873942226268600447978442566012240576394428579459617670393874653954675319701560879578632937146980882149587582028034832436561177401786355261534549571744450024794755483027579350842871941099615593793730672459688961126468689241770103029220349409818417166929291079367178825726367411869254220380544503919090006859793956128600590788114667844561669984095574578688440964543754326423070938931180796137816866862844736912693889416889343444385212314332773669720604006350899820520987813108494068338064244568456527795836328724272802817405069293842955769636695049346007243024889480712078279721941262608994086453145339714483998805874681420944839409971790790594351450378500722237950906178519230384728512104836061397670633611657572017225089044978345630250817239017501651021926502284318036297964568871838669958563271174526467491390110806160760549796342151082507407963932225206187956372785639031718473328810082881093232158851919215335208294999350666920947136861248937259131719931918118608346214464791509626321664619141501487188201666878964411361349124366120843621392054373973572561939786087860141425770716660639871725230130121290332573429313718266801898638120588508972369937678033874015597830225941943014482836456688495113144373908495336186044369303548211105131817644825423368036708223694751566358895325764277371519697895046924323964935637073113257645560310647901827549163962063584905454496409194347951747470454039937391766213252761819057119030714510822045184786481256108926241151693192675170914714267120119944263022851055138828165804758778294465159040583800282076708836516338851988097697131785384925242049016160775677920624794211466326328057940996223002139043528396564736999156091294390921453631616002637937513021451073056207030103349235764638489718081693213972037738204185640867111565391708078000133738960470330639704803330964199762073277851654329110737616742557889308521339977542429619869600617661694568564010634858165970372333507967514390769902956080518463449544399919762803348537484794527656878146667618896521877489464532142665563377293204077792743837438561306082988917832785579174043605341280557548416800263291239546612148957581395067439902093315117487851244672686148352986373841959571464569657846340372795217285926858807844561576305467241017124765408862175157024897921673541133241552104239462698727428138170859868484795792982485087205847958389021431201099360600795324296277023682936576264402418962767405124077097037889689516557344179835648480969600591465260202735788859241432240488769121512681184619171801138209170250703565164430177432251046150747527011040517394536852520940267492963942003083180413679460254838098911612590627470254762687815485097611813909049019679125276895736008377568001291436608237412979118024078833373881846669037545317555417421093834895507465570904417996949427291313278151241135973553201552258901222423285200771262251533062383167884377621872239038571815855892813699013491860217252054407809904089692906222584960504022218544420565886609493331547928949665376525325730127229863926604692433222932134583082135103709376849807156943113339874411456617035427126596685554976400693797769398605144481913520923370443799127056487532443233194156826674039926365059138634754320658835001481026380812875090887771010869513526460054646209931457309870013238175248491570033429693199392907220977685218909200426753097124980207553523399540247751079527435443831842397227271204035253753196769234382432616932267615760821300016418361628728363642860436969705263153520933155341596504808613547117687115929447885556031265855608339810704577701750720400850862210927763706237476303090844154758089815100808806581776161568815160511529805211742948182695026725145374246284493402840006932226336620856219259423424275332281918245990579087502078476475366790155967117201772649449512406446929754135751810903071132414900031151002240412909584406900967093942257922481001561480830844963847639427618224832844293501273771560877171776980957043540500068587047887668347450209979161555356054456150481388669019591376302194814613536091330080059521003139160870901677415098052681143406094282937236979222773165603465710444263988507905010853530026964622123736671038675921313644638553062427336802271318575896814641974850175830005607655117158665254149735625907676882275559630505304724545143139486741309652585524971786879006149699356212417954129416393457989256951070256664976888823855239739281091013400810544479903852398666660526024911455349259719385038918472119363479864825285028022626167031916044408840481655445553394371367147651912856112754103307058791129919983536332546825891756872909263844173695039593608883790472015586388787081728129860412578456736696401908306791631867936830145633885954391450504177302342722493273945986618023952404344488880570376243015543958567755438533801848587652487748100966752009978683025811845406993564921770321052538181594473448687332862526715467627090924991190996269744129689337242387324305145858283458644020677837648149872356790157756246384132160709777870623848371463190458611304128258757348572419924867843903006544679180872679969283400351073513558292178480850585552459481316930050085945813891339225097990465128836631270760971743155840415485194199990526004756807502178012722754309533740652850009407578149946850471730765121993020618025757322136140551854864797936536463681301516844731331321801889261710622553298530081765270638213631980959988249049786829871914924784391148685718655422688342480598030058927309278795959632352596149377978107734791406735777017956286983264100203032638651638652889515506474612400663982279161147459290662076236666021813711103554871644090305586304752986092458872788999140349783238488505176344277203698684674425090717102459495216522348241628392802900419580890702562627067340574666002867054724457138798114787007219540789568786415084085240001373333003153726697128316088751559986451327678704775795035777697721639686066525108911747973432969899799408454411486711372303802088424204292559034772098465168748926892763855927240335041649697445104651831514615351920820873184368348764345171007722744167511804602784291971009328224378638240579787292032953657385300692605831429658618281656963020994617752300819447124344365074553163546495001060812466843005578348164652276965300881651628716803143858938549794398898544223321423952796994086407360122497010886243827062489792007076841859759138154698657721256005429103110387216016617317837536710212886216283084540515181430726408907201249878475842576657570252397696642443748321837294604597506267259310521399710931485876379479896921215610192678055671477728778876511699342282465614876444843330911318109572859714099696269734579914713124565406209820340468339295437369937502705018253332304902261277460204972680573122811121173072605003589687945915342925472976788584004576506011164059450870417047062608765923814540657644559884767256713592540456403077072263634894330616068027587694085167750216923143398409793706657550883599525654187817425327334226511716932981216779520416034828531077118842036031541185752551922119156479832318075072141731611908613306411170849596753056289950412588331671321353003166071770307900000204038464360347395136921804096209091039085868736751326917933577307261856322049756406014029707363847670385004218072529666258526360871394205851376088610088551111517315787368781082962348908488328969242997224349563828168990807283955962443183015013516891448597131595631267190509829207443194347160210840079515383255824405602191997565158036121263665887733456557098900646255184123032664922491088486127207812206269876502139062459676558344973090738628665288326835876265215706555906025556633901662034793951428189398816088041994356606957864025595541999959896481754786428273421159069322274903570634415528856712122886867870317788628275871915201096570047931880164186949321639531249192125255968518880351559205482406678735350165025117988526214802028458654951182656492390967334743366921423442174738721414441625856152062537857219384238943051685026972616071046407888831949331813390074000870160881842911910664053146418426668876655802367189178110372616271007538659185192312996254048732857076468061673331419284517803259536707958206914676373033430232470629053850133347247912930693255650332706895324866669792510350802969763624878244393356523024300323969146473785130672348082360399570522630966458964225574219771671072654565631419546893919215159394439111145258775371015497757901226595035584551092762427499528057306670087183112146772914908957248589033564777674288102360404813371731426169063950860619019287981678973460894886441692388891275853190640184675181535752350723198462422306955758509024506144389669580936723117033236927565732423102977022414540622049535287013337708897704191974871349940089107930777909898259869333156977756505362376880296772146375773504573459502067303192448204442417636834453322720443776236436105736987446703504230625134915710192511399800729396204770085208157443558294178750550809190912664462132931821206154829675464083762398560577459266204180683484087131141070157733988430291645410981102533005507579399835243140458440709947602615487057238628453473239012667148385746831867037474253729587696101816262909593878428931274325631727126629763239085640149812802216656969561822963629316953715036821736528913358688573568410354093819084124482178062276319170154398331002626768559494293303133255244662085683062272828537836288061004105445088830149841958830053100911864740718441060797634762098710174039190835326110406727253494898882443233881319137010919279045588247153963425117503547720101635125627453561634329676145251078630012677251758976398084609077264640104459406830246194109042209346335589017095075993586698448765158400545871515744319196612312313320552457164707682026464080779418812755734676128918121056123863922295596097496600376305846293384539061455342215959707420474577130646533346839351832710370904585188705449072324408649781715805743396817788709000662087686405609508472500656199412069621777857396808747690481790389548864325974198562075616125610670179327820452255707119775185056521986038285806164366972695972132869265540591381690467608912897970650373112319818816504428537491566832445544686618272067562973656111889551069440092724936112804692202332083396917656145676514986314082246122030907515742400056848825829744346201173538068544486115807693100107831141486741537334975981690435048798067683246812536871369788819596288473838054301929678874086921446214370974951440339751047802949356370440385947925677362120159075351081392116024618833459996483588288157486528483363098846932242546588351921398935722349532145741159580575349495404145961626913775345053396164057559355342419168158438180607686372294190433964612618201020278318152851511382309003904487884233941238175996112557558783222510673296742064051887456694664502099254863742711756953185179119731701777373479287395426797860529829055461690832677586084135569538962971569203031325522208118800464570362213023486810822842494352578986037557927325328593695009164031443881016943244966935837948401862215223851241164424157194156362740241496336798407366513586843130714566817448432636550281330793890040658361605077438631215765513894239948752712005011884285146337312940304142769127854123203152480562549066052298324244764487486397208798432295287229742403350540397513521892048783383134193129099023613413036877359963156012307210975392803421030123036494470020949701292337344726095246894833093418409481855025310335388473784730861683853966616854187003681185960563021559171650994355871147845312920414546746912916528631554104500873634225494445526972212345297131499907687684360518961187482367778500311674482537842368673720487496134589772957153503219800459783497161101111364293494296598111344184569167751116107109943034717646710730812404966405954028023268971041985024996007512424269049591988701361883780198224978804375376771861878957612679328595175639116651041990894693230904159585940694639968431070693329608332853404847548024599987091198554639192196842142676857459111505555923509177115924985339466842061838766962504204097939975816315040875938904238720599748856785466876820665247992835311430893687772030788495840647180807381222763403377883674765402225063364763953125976455755872569446679185030271577867612022586403649408167687317152946812722397044776296746804260133313571643997953839456245499144271205734973818445592740713519248537217758786934048488355520615901359887421107866023880400627096733808891499476241791561573618509229402551272198593021891310733141860690609472208830897997398034783444682593426906075585847141535319060373900699353939045791647386129543109087483294293092403313300337090904043274937571450014992495647053715294844557254285766067212746600091959168265663147973891522597343455191825338933395211726025716362417223876435900965659207380205239152569079248251165367357866109644977901300069737807331977418376133977795566791205460645192957255483332909685546068826210588653491772388803890186166222251132248953866853999044267158155657164438121231666391242994031607650221732282238645124497466895350731152281083887589465086581156438773564747957454572844182188668936903947470636298976007150160825638623397216040318736398173345268592326224080327372050430148637509928502019700881870650370059794901741989558623457896628774103178196906402022572278203346073005108576994965687282870443239793508160647286160412277730423312789212992114761497041018819978162597594935449787922184765767246083647184699213473358626277233111386172798789935221786533695031532725463932295449304073054112552935763305997159517561463523269072689029283083457748960722197510430355430502520238511069333828914291560485869124693138662039941836284144029644896537128176239531919287701297864833793889395100238156398467869525995266359554996505302312741147975711298925168363539409297143485555079335876421358741261310137640430925905667327641474224541985161316547384177326953964587132932869686215034284135875617755770914036095206889334927526766964605950385452879998956953405117343830957406932797705682601809544835543989420703882430830876321088796581988542529657771069616095464466982054962070177265366142958259579862737704304037249278871024172809662830983491037718592011071966885017713074791008864322143047078234692326336708425523938097844052113193874651666511539692151497849930187932908436297340186574654606778215349147807110794861354805120290581700828699045633471333189118034873976875770869272878271192837502731458651608659142600257160644053824601440373675251230923209815847531062701068436477180117906282754408344976240833562589825738502426463360486121238747934924352420387553884137367804051107957870521604474689242281209294209320864924250184652087862753498516796740990290729177453595527902477777257881404389317234843710673983657736819098096770176088711208481336972172483699213886537006875513022111846507724576377112468560121829388410945947607402724002489494082256278006343853988915601622202917055073735843999104907178404103810470375180979122500911454662928839329671597315390652010174704606882206541457982119165799963615426469853666289096120676638421069400706234650772829057635201693769246161434405030216520353343832037652597600247740570969777031243309620307584679598343156837778022661784447056483512949648256483863161450613265709216734571576097959068591243203803404188830405062411696918636844256567276344967504121366939543341117408654859234287186584803372655468843959969930091372208445917993396220488716425690675108578647010273495995921849491518642897091104541981323727592041168545672247679893234475846784207782738224485230782733988510132235473936844197791723700085711363047880668116822617198846899029288829246340520893981303254033522948447295875547430973740846066341743633825409129557553687254881529262197329042160051736423381963453464670392123595243737055148324982424087315506588690788739271246255505028451203972182213279224959595169896101345926460852024162537924018462449493045483761920505542812495025031779981632387342883683057601830882047447765223290772597910072874166088938979276106924067746732870295421619413430558143174924011237228538691673260800788607795582266793003688176719549132828048939350553222929617512278072428855781029294969909531914532854217486536195256675519861354800363684195121309117921398569543158761070533525116711895433554422185871962522041804952476602869914748562149881407413088210005371081790119096677954431252485666692968181292096232207545594162115462830527045104836153149415910719653380950215163438130800625209542696439180424773534948647548894814245753405406061783452506946106857051266170688593610072170059214516914733572051068997416428017440582263418872238914482658774985518620095332447896126573708100625164790005257818419738007488808013385780673755075842568989205120049512042049717505745321239400041974310401919482856520765452440925528730510540114575996107067116686918475165243655106503100070443000813312122616462273545784043830264616531950763241641276561778146317977709540596891543675424761574939297294314112496823920236281951313337140500980940204073925763659981003802335388316351943611968363179169640417064462408898481942624072717058730958083866901968953717111098551829883855130700521102384440642982523061381650718159550115617104781227769563369271159870810258541816102068889283610030460818089048928143305556531439583521314405583463256841439756777877177699638477848966878110170251756754698114864145964816958969459368290841623480442991239801328102081447934009383807594449235806782276643163815027869711713849703924258918276339046400711736683394188649330829439064248377598152330709268277239359120786358424757162428030607985167782899524665474332467348837470792615719324517117423082956228232431390937263667362318064757673548460423448837906268641210176303613021024511656327257175157356209768137293020916771757668287492026131787560422971309299434241044883552449592009572008316806352404657400877656097413246845312042558367955150868857935849181536134105873341561071477073995890557676723344691610621460445654346797269407375548606245783678445742154164391191216587862911281821758322765077383110467676027545202638001170760219531396841589107696660527254615634687562181737867707732186766791976107426797970872277486130947383814764655891507717240712554456299295415162586435831472711170290248625039221781017286926147076922440043834307930364168811056776146234929558708354204058784744610113385767791920886763150680523916889166138061344471396280515518928482367951559276429768886180967555212061035687856060310152698507489291066001126334847343598060966240682766088653342685623973302393032813908411155017648014996845009227068521898434896480684980673533361267745486408930483336584527119501235074495759506421899933415314036646889108011257833984303175718432386931844109953816332179314804289155850667774983176968952329220760667101144818560293259706656411774178091773494477356013762272928965551856438954850877614399811152880243304945617704491927831396925557299866193521769094800959585763952621259278197232322507292968253655878476549374848714412053227449954657483128940321631861029713418752034218353903460159349308812285010062402846972261055878090895948500676359671973587896876000724466964866122852479605416764301129672367482751473769095507457658228826322485936031802864387465374612452726525157670834897929782706253450731611045284782110585337251419721922120591587810594290779195452261482570229740389069732735088877945387684197217756473962188919399970063134097782026557551465333446548100951519970102449959757318161620624629837664174602597241299137406255086889849971211374975809638458547065093225405497402416296460706878495905564134315089823246167029263425146047134274271235704994419269020123092379421170036619833570970647866539312343497548553857211337542362727526477518052745688774751377435805294873862769821473843092924784964176213423259668309086510690769513603209931915507679612600188575572308435777947476804159457604906072717924607199547760018738490816670141178017382171524147477117727185972465455670682983555953044237751614817075801699845365501935194983979144189602497141069866402351901648179041888499874404332388369675647709536486828474033362549017016787075158144327573090636763058727734839970141593203377588796862133152495401136317707015455162708230401941943084184954797122732306861598205025761012965750546673105162479338006274708975495498044389374532331008681806432045582556781875248660961435810429535646994199959230247511190533576575799501963488768690021274008504185223955866819535120657944229653106790136148253209715087478644451575911094630595683416932786508164653408261988634274541479222409906729741492270833009119400368862924615191080416421834584353026356644166526732334745646257264165004356334024752074015088787540556883447304633416612634106648808973449968143299227399411771683034745906930512040290215937089207043064047070535983485942683626178152934817534357110730131918294916275695443066771774557022564863620499457650242219678532923781280899305235150243385075655924425047336280426374788847983061459646978860840934112619197722942874717094473235581880433032526831061314965059865808897827434916731634960646217977262218248103855518642522653412177170070609731879145003015761540367734019359587018350827381219936259042779231147932076928562793783977001196069757482216348897893401566305508058478679969900843270982185315203401519424714636791877491140215896277172563954823397584583380675457284686391551101724984272415164366233504475231745076346153283993479089776925674319781701413677296070431076588736362510331482866822607740174525420860095528261188542562544311415350101132685019685975458479251362416650874969822046488019978499340859064607260069587427105781300801933931611730631242351085841050301325680383306815310388240246530885612444071453418549068595396009353956115794297461543095842248762159893914475066439222866958768388402146551489456044964651492380722848083567628224502840522082108189075493344800634837212927143565976544702593802638681038385584078002037415650192497068472924414782509416175900907910234421728487157695349060968071518113509932164742444636797084396330154018034685741574224293266360897596022703598842838669676669615044118470886239474851324708119752722134563369817503904737679857389627536017713283696920209023611132499561405402351360396476750144284270601396373309958063914423084750452826107414893530074873923060995775398383863506619502563178910955022405646249199079136896332439660873685308892225915092325724168028552848033303369181171495080434845431519013893100216463551113384659929402022775104071575253140281573059680443877838703681782873614813628515896934907150416338279706829929524276795543796385676729580611184215057449701192202831961246575103258497072023389865342637594810428997263720294007518450627067737619435686059399293983768249527074829475642179750508093316687941217728611216749688287084604549494848075488484835186266762956332603900177704975069509181304981482927204480509026540813615839056067960666320853645055947277083363722926670641430161281678501286098704214972503597439247685069651219940330396268720812365350615124820169081107331966876336797248057586857220581496549286654941689893789405214563245311797374064112286171419688420302638249247885901017400671625245113929869354910982243789312387028945896938013995301052548214761304842753572227398846181759645971237069459196848719618979780921427884996738578566561937009304174901473037868065476878622185605442440223750004018382575428508196428889124875708363607399822816710571950900480068939790674185957528254162336635969951752946581330239721262499512281912756759219319741865194707887641092813788770952630983101341298370388316609344062354378787431522288177522822133662102495332718623981762010873449617426708515182319667623179184177104796253610663995531411470916499378072277187622297559234042686566352761055125982811211591559432446755638946562133419255599758488484026703835808686043531767731970985652700096775779790292693031688069211279877294731764176411059065060790783427966922733181087822521036308545097496540351049286588064737705296233105910995170513516932334562060218206695785416858017181647207208988441949909035751456823549440704988846707760176994634769550564376946545551767419549403468972986238063670455233122682303772395376370636920863420924665746561622346053731184898163852868689779334117026669375715631897706817310904073391183471392418920982454515538867631496476780896267551432036908542728728347667354457324713977538165259868377580402390303355754409115470910267172582229389736647468346377618478676001406685695461385872526489640245805039185338076646554079366493279526767807400412806123160020123457466318607609211572060593560290243932185868528588433624664625247103625095957791563953486690958143122656787156399341404710052587416102753303611435065943140879155516687351885807791161009613843817151395942560105028143549308225541497452802690414608053846496412612967960710948737216720685497102881562751146595854921005499129329446869194390837159255937262953663265151984634910794446574501318748300365342671103164525935035735629550991847562017220489527995620091116618978777781746275360137446125161935001608210135428396796072252700269752783992218928392922877984507390225980111067185549986353206851112154231653602994002088425903552197766172348291649433244986540610696331248334898545862812466852908211092932458339935093355905220966127135360418937575059744971642750018186529220252142699797769803526774301520072418109237337604283948172893490280448266864524311638543727154728048169300047173531003144767243984013902431782605523003104388837742819272545134399932706491666406944501037547461259777351332320234725080258558119772378993179053277254349201896476859713589276276047143986917059414914555753848670513978724428142477191276955212215871813651800103486760329861571551872359581226406637225434109720323586086261788594325344943807825432082190688622569215235977949967898643453508435873930750086727271897616615060016715458866489549316573543035066473820531597736039138284543949515958437508633668909992890152960052598689624094461355711092374331230045134546931261417483558824749164670870079698838419024523340447002864479983379411290698079225248281460295156985229281164813045817985623781794866764488462125978287661121075463956745805423888142047638088833414196586856695184168283500626195162805073639794217444967020800048767290288863575699937738584507937791614122516646830934944559348678047657924916185432182570134596382611907828701217306837593293994957612462842429706401008191156381308574440465799070343245838963222502383486449484873054991060980314170023109329649113132745996966302266455554587041422428543004708551099709890577668998395303220509884329602222055204912096919717812023353569361498977811952446417420175919665146176159706309188752518612310038544584175687425643199647856569063672087186882454356369273748129226515011254449717232426743004112737349120713893891687406422541952803872078865971867334608487217565591018546632347303695702098597373721011626418912044386596529868178682152879806683759055456220137272018002373842838890877862786722569107685860622450196839217621880236743827566821895889369267266467022066516449030450702139203285677994586022040462885804451514238831813061037412725819415362871575439333181907379705693578697900635122609807627656815284355611461739887305814433279156346167755959933838443312987389577545625123182037314709404428533634993454701235868552351438986263024242834600779655468483086878679229371682245680374707758084151505555653049632650326670955461916263972216185965756316264018573571624269876936965067331863018586866235885460541378965726592693164624637330989997561172995180641900768714677246884737289102550691161428148942246206647697091702309195441709742632498428545043478263449634701876486334690571260960047305718172904979674143729465777491974672863878315197135665868324119168578095537481709418130702391221106983025081645276658673469465866053001399176793375533719232814126810205919921768915436014981813862331762183000008931161976516961403253545592570159768372433471745114481598804278322028794067468646344506698391808238212319052411554640190794272281741914301343761263136074352073705354870532738167719185292194591718943725655260462413399677565847357299448323993449518329278730695525992864363173039929299457017639524855341758202990865902187770149631399272651910530395673276772295472358306027867699164105051007556049140536480101481910610719287943661822329339104106925485290901484470959605519303262532917346728569453539242368381835826335434735981472107560832815308454391043934360330491771589366939371625984707307899031932994449239922055330544590595644015025867991292474465336190422838798424291287712246505277129457833964818046991887485516088165889809183925586065219991689583735843111677393401332676740014979388144557453115576020834404475059009791325487602692718879885215968821713570893720282603662582294261301118658000490593504660319956989178177828307336033093938401597110189860495428753982005976005943077942227584860842502303604697752143299567362630297886279834698713499379446986893554156848283820156116952188094252828524137479845108552621150324326464898941157776167921642343417435623318991376185261563400533934645528788058304958408096248043891726490255155989103345301473507069918538666870459274720327208633730370493411851059951289718058997847059182095519350921698198486318672342856136129619266863414385768700252754824273365021815547450422829303916743060134978438353323917798963231916864651892424514356536619736429569263408103187735730826416851830267725311277786686586136951611118779328386399663597956594227815634828073097593506978824401745231334002757421182092692463929278171750066618205284035160254983238347730983283185136963840051357209506138515042253204202495157856306293793998478801336245670426544242026620293906365649246489401315407649641687079989061679253143575979428967466674310093670910353867060304780298553070038488099407842576564609604840762556178946939972121253574097130191351009551736543096324441877317084972324248178427795461024299217208469478489766529221962109662243620850941302672102221516622746989073219695093482563047226329628739718900312030221298311907445689865290130700496664877575112718465830138981301503959300370557004944082217648901926526196770047869011369010309756936378294197150872648589499986163932326169631477921636549044669906304483214637859319322365550510187564780248339910492656166697284083752907354773875634598363156541985902423742012140089518877837391338163014048658652983148150226260664965950263918187098974857179991864838915840581538313017948389351701447034866894005206782197263816328527277408552730244065544932389357207847649136914785843808649555091764072902257205401986954454108923461706159545285137405976369812841805296776877530338079225738281705765577400388449506353830484750829629189623916506169597109691513449987923316730094415598345439735363561498168385001249075158508844205695302410733625553233853397660194770452328507171369478923570101518219449504196083916770814660309736637734696792958599711844841341856172425857247928760826047319069475738603901879549939266933565063660806068311262107587579537249248813333552509047344216498656252636570968851744654468333576217976344948552373008874184458378352832336806867548661076388120772467701149732673511493326827917804596249347777366547363088859337988067849602892161158637436443507509557575515739785745408399632324258024321271203978533785839659256293812049978455542739368021232297113932876485978620636760330644216571482599607149249902740187578504049237060355195160140835702128735131414854601965595320446078072510160311616337001464613834821059038418409807269873881212091922275087632484145221871665423682485093298107811260520019036453361049260170454515159114994538556191427660589171051250302859893654359778029289615861019422629979199327625115774381562848646067231498965393525113597534000763329730849790011431021917104326505155262948790046577198243381181320442480968895875907873277447794562467627344927057026047250567009377185732854303006839538006393017601356997271291567685482690074155767582920735510252436898782025926424454983306904359749039972896948888379615152337950509644281272388912425681209814482891273015013600336873453449991350330696057578052443813301810476964179863196314114586871690507831099603976636911396617434270516074167688906487825574258859596659219216940646900979501273266672570237267071078622791038628324214744315296862067211028121714041544700514829361497062615220262850273933829278781165907626588610212688198720889105852666193462379523107319085652961764346443185006699390257167422192818263525797648395202503681500850811619045530561676884097723581926745506274662691300654564189001791064176730685863826106423071135690891232582292939199110803997448588297049013772817520876360799262039075162012837115248787715098438159194731368812048644796153575407234442298871373532070916557302715731583206822710593252723656593938786963270875271477632596514757326794491972227609956312213868795855400426898804609272097441335118684561443095798093669393973790922008374052821527779203052258908221293891223577789510717902106937320930313518726022198865075352918335030116568355206878608770422484389715719280052041674148690807625648679463056922999427130939371868544261773026371336163669248872040308337352783750363165097363621407149365174013260343473967686475493476419786727512464443815431496791565110906163265809599472386048046213079591142359758661886970186446768022085135892558871044113831191174226561220469407420959105075198017379430792759094764136680772880965975399291644068563357719233741824030104204788692978260702953421144034895206678710243067342047377443980130933801171317217672284545681957953772172725832636096910140790078952167290097781798044328133655283439745039195521811533615758788059632057710688791433154104912228709886172107513583579243318909451988609405695932476690374713329207864848818366146458473030992400459915214246188229383334537615615432418915705442207603233452616734901433469633561774655449638844146314692737498260735677475374696162704042135216993037246179894009564218489580372650082393075639371789103327034474524848251476050809431525430985556172623299824447211446686495006138428568809420226814210864664858153324990373241861399859467367909081488903151745030805811499695490689909117712825860363925623818597590719026775504023143930991931808074335650554277669631338657505408188012230394940483085075033858073465397699820302840158705319877163639747441330153929823637498690318831228602630693035961593847666036798822959159455108656616653277163604333244275804286965361889463164037874433147566564496354006465602791127588669688350362598810880751286171179173948564091733043548039877281861105843787845412037071430045915614904150130173182100295051176131063117709938567760674768472389811944850257314841174941928755004111835902460018066963196678172134258654852451592736312031847890952004134455671434054644589184491445415814650562589130337434764957031568619900899673585074322723724956656019742315077958754558653610504417372749743954052557683420448771576949758227077024293654556274106820088395289035008019705723738484916404856369727824106506249165337263081979177804374477297136365189805445200959051042689779782531305462158097632249321192760590173952280667681597420522764354930640461894147188856547808598998534228433622837236120666613762067071150118227236518306921099961421094059113174457249418217668750521244462037899517167805374551347405990498119287244262144840180299684700586661288204694271487405694528047816968243016017194789650821047504715487070902761158168756048620664692194304735249166451742365469783777698502635790595998743748973762181456805924876987826617662292581022976051626565815185816363478679313239742107529993140328138045975914410077002465698253224876219548360993195351377595047160738135289527288633662920949397290156375115194106368592646317390717870559273457674079566879265434812566168926818610965060545334216670525508135151800606596666427259062439377532380030997531529551667361295254857014938931039170965491533785742115746392645816274128985991889488583217504998683930264515899537223828051795515588371719942893307918566301697382295657548509630341121979851899483946259784552905453701294930619770695597621715092171890570931208909327217848906648702502277338861348157342564332253699188842295466664348264958503670190949114032079430473217682569494315162951256754861129410040771500987555513655351653663416466006333615950761068086503578519284885206253454993774523020699381498690481709642185935256401238924459997364305993043332556350969586454448285554550682912248164534706944844454717691213639617733568019637468192096790941638867189054050180384992393287797493180569991327095988039159859541117393216918880833494439142926764835754690378284144923721563141394300745882245975086541061441568131166944437019259326890758571906705936519907023277370813157319064492962090764765841515736299293924247478183016094559998017824699475307778155863226863595392866539252453108811474777080630655239409315823545895748362190644298475681741017019712365312566429645291418588631216138881792379019796011649681534142418315616118141568640146328530837470717472745769550458745793186098165544811729739249230137137693322168487913994127508199490796640351693722506559928940543590931423186240715261118576709834845412622434812436114966312390626246628341522847039059312311071031861503208544372384562547000758191896423095075915545558563501546807875561617523716229312673504229424600093659598679476155331746240418101626083189849480588134744516386610903182079951668591770077999891312296504662399880930836049158207814720539768885418996172225106109091141915610344358835358785847658246431682265427610685337437476125931056420959965324475885751070413726600275109446556284916882285300252268200995198175950001375090252300015523961957819899480441371907090387696011822113847005960790675040672113781909629074139098534630711833796123189744898920539712723721875390657287768107411108977173495226417109223416364563013551203731937359567007734034623054101297663242445052771680740894435138218830383094674015162310024602854495291356045981768636576407154627820289878295828069727023696107959978057755787052854927453174211725823420134549321333957432994100852417891367895942704101094787992566646884694159188306320765947128337803450941595254345916886554384819963096545068073050327348835252770904303435270058688056959894335436599971706200956107612229977609873106685615571819412735070634771496543449455115838228093045813380270463296370884180275354484786016019451727256536659855469557395729721848352849863500128486327652733013450960702380317630013438308329239392480566059274575311863962465391722097569889499451449845071115605478196953562437357035035019401530120935545546042415372550980970251920331099633132668704347547876413678866404722430839052504748160053245920767842170439077518862498806615823148202325108132644611161207234080225830802350777075042562968224157973665326014437282849752902326897992465816039108018641811014772585314622916201424071216044969788036304808362947116426877455958483633378595349851361869783964501278641224475242458075340162520947877553066878233591214157248205217307733834941582230100158251392716603608404811511222297137296608250275146267996336130668685555499869723755892019493330194265286519638171129468094264065971960707191129205136606552289908320910287595782656529503795082027240340942780587377571103994248333764324334279156339268183208481818698803327308858491022430589632885885240190302488216105370536441879584027832876507618350354798991947976505224562056137268579530500857868571116752158297410451267961824204416894980446939043550487138942104371079942593242278975668990618233173069901073226438291416216676568596387502714384233883577976541757480848969238194246929143564239598704660900616727195519646216729547480690085936204958949994213921194567028821129603748241898926663475871580789354491898829876190314277624363200476551351270478181637749779494850208787641528678355229553856721482697900612282659219105991399036867765148176738610357360910819618001184005334329094451233008516711741554330173547519638177500139652482069006155907565315049537558570375720995948346343745793274843110495653922759616029204754523918419985573746316319104367914426365706321429363618348176702424230989529332631037547169949487113735613272177941806958572764816003695582580133762719688713589192496066145427122656512545363520159862599040916876768493905334440013466308009007440532813166083220311938323113102696210034558022987718023580156541557609760388896845372186035787085988323212061618140810713563313725992184471717490018320213520936664454082202656499516602879741357159872363644752341940432258686125687805849079985976342294969803324137843246705221167552508143864382503828173477688947686958262666558648112090732741559491506551472115269604795707993980210625224989855601075881340557150444488025321681884263296325550293288860286249998012030189471637126145670542426898821625834734940388081926553825959941446059983330027280823149258793063827804302590759209612054621287827589457369950822939331577920172564720614494166613977750835956545676418012559355135972626316751132328497652250598991371051678959110013736512039440763204570557238554455996838767948445310969896413347008364295039905231468315882905829780803581350185145630370356639934327923286212122716854577262211231752339760567938018293064525309421885592359999268586592006644280859777802648439605582851967776238359562269785255961700183221598223891838625518384631508266130956452207003703491168986598449692105757187424083111430184541768996797834634739781592160631574350339546262582328362602298868945748554467621127328433509392550564590350658669264604129211570230602778244131525985042891445505619507097258530447150394752133401711008584561982948708460677394540368937828559688557655183783183198978373356838512850140661671015500098688798976406016830518099318875016792613932969039351120565027865050875288252620769344617345069201508026258833690445330016908889669972358390059122482647454833335385760924289452522958659139648596332409370450105828685655361415044605246969497697017167217300779208028320459497849194935694032476218491951118149399122229292819763197648150784711667697541735152581988393340299052156204560246840548953888137839186904666725927997534087650342489678195308204299706878785032639015510798654721165901232346174329880758646604004590110038776366501782259721211770835749040720507483606546193865493081863335839998567840095491681061568287311795326316356447622594452741792962028520964738977065767708356888109172901807815535429231482085853225216518096410212529386469856646540017656694337998136434531935940729412779357365750680549638923703460619218165509315889008975627713087434297829164394447141954399827151279293277477627496766713740146515647467967746283768988120037200614691853246373951096804350719707432739719901185969234274086912596998519722878246587191448388784895562376269537061550390266628967354408023290172194852653863914058110389786507003733446525624206727290157477808732786105253770609396571996039831752852807283776908271026579068466872960498690650500905044262275550882854135255042065549191850227067808355649662246918033329329000946730341795013747088039152377158641052945858663323320137651313041684211082946205157457517940484297088454584860393489782869519635391455823741220424852774521637691201616906423811568274203404579382687114398073488882256551234963009046197580815694500281301142786134028953958464968695164723193759195608004409645149562649145870905945749462574732922792700711785044223908744479215637105189716819412432512872492715307619074074775666801040260358628897934579075282272338883196932726987200020650743920343121483323962489928098895780355302058534087391753354010936408142834207731492910904587987357890536297090580954658993895722802267777630720801447593398837059535669745453497817068151627694054705897795897610893948566329240102109618270710495207524967107687801558712039062859140305406989114358488628826429065434290144237271427819829300727854972380883989515692003448270996895968725009873213339369937211377912927298472879816657949235332104221227172822589896166921448505945573191043242879363643913950010934832740393121624748333229762109021547468975099655048225458379768430368495264366532417014170051705160237398414242438234376027397359982530744374258943792050557727734194762186529143619184538970792795790975218220504623222395511656695740818912288522030283625309445219742591932540777949162963971093821252421801077703551715390715312320758141654980969779904129065101506866000710807209962941333709859240402989910267469141834004223179301068519078093544633405904722630241822569282124079108954363683786206660918875318661771010236752740304966969358796815828824858395638881323449376655937519636384019022887098516831844661838924213951120766989391211586021514021459567708556380648149959591592587838312428769743478041235012643933806704935857061652784918513950861263726391916441107316675282827840825573147525409452862516731825698761517424247685397977562752549062847997089397950549065062110957530889065566849545400850842312803969497476337425760901582909356714219874620798606951469892018735356070120512094889384386994594264939614878193047861927627663233547935036468507400300128150501566330457170780518368672265149946266961534668565802130550529521019591840386108113145962166991843219511661166229524667374672753388510851573405161787200166199410655249542947660761286238108736707851420255762912696865783421191182018064297546109683377128797539653016263066679426694204785447413060852246033288590153709462338646350133880709513421545201242088790362932451990603708599904942344786460157893264337151265765217366420105354306246494016295306189435873295779986089637539804761615098181275709909810593446788588910438380694322979736984703957021400467259267638467775313253234151109106097362502684048229398333871418357445871554063824822919424580756115182514529881663688559700703602373078959806861540565888206326678337764734408860043203085289486487104371346174218728377664567698409148787386176024868596550405497134022151676131330214897825815309449049902451562866853632745096691472073015000837071484196761076423146656335164158603718168741842797546334183255488249239376760407006853878003022508641591766195574663612068162962167713441404248887684343414653147305562850398185701064454835587798606678025598758088254536361282605749128865955076771989177106467795419315742731609340878870335660252618242038705900236650970972683284064906518871934028236664864842859377107841571736828341575230294403402672076540392584071444752058650761113347688662530720229810504481519542093297723448784411290132009866354435505016345430694150153739770134535091198933467559062029286556117220748430452275011910818557431132796082905890767916709898800951206264260101681201810083884031801449486800293474278941855726199491518290488949400305306731112674633229366953582404473849321536275867685368039644965842615580168221080077520982475006637645847557056004070648337615024564577581168868694557770458874490389585197794663263172025183032252299539645323431386184148114481115839623185494888734466840607951803379285720915149348187797078836199262504303829274964639724303863807438742619059538241945583102412501314754070184697649467692866897861849174508616217208741885158561342095636283156326551767378200389723840786466282768190310516362346424991394028069312396587297470146120955293681884148999709929225158548785639962890215869430965792481127647930198699480824033506028327183536612071663020928036506463378026194648916207124957568797688619719063472130778917114894528531670910534866048529954385187161050624022894914604083670174143818196626347107880959124944668556546333971008004300388687370913228488294996739741329501349807422259360887760105441988890836815320493799445622068908718458484626176172742926120463464585892644416185914418565053553065504920669217445683723479701431751671035764940628910460592322446068126408537596841657150119260919655772055662156137557922385613083737377512777440770788353945585105323381080683985329263058507000657020803233500850759550574399323178831142104558208246802346516336637862968233213784237204155728453214785087968243070095946678543373518251479097026744869788691926965371185167881731637807067717302969438410570408993793219508270479497835562507791303845142140851316122507318118018895030356035578794369402858338924259831810416709015362761726163716279208690695666365679863173181245094313809908561604807590994278101798185125905559583941629347895397292164958259131031325693395270971435789544710204185760601596564687740346623723051752771624802413873683930246722272880239386972701448158490099966221508997207778260326709344263832636305522268537832729188328686551660311202678712248284832915144746786399840742637136791408354711839135419879507451109966624209558895948816569164385832909861460645156172011810821196843926304943615319273495310741180247936243597105542968450777560937606724326922927020517976913427405694207304800717792247190411863495035704339772336829571493933280877794683054345523870875057272309463964512808663315207484524095292294606189825831889927605168939576295567109098528781599746473375245899343145846522897242041717274383121951317055340129638462152579710137799457080106819914424757915058906633358027594952640779011278674622503299177626680996046089345229455870365537531990249523957659851871349105449491130845754066148351518855334779371647824215641285320624402478088622036808805811750486523555280666532254056658993326081951297874703576387043571377133320220365895014378175820979119132883590415903117918917513775386075889890420220087039841614807881962386104979830706691551388534759797270300588473786041186765130732691905988139454114019696235748898511033996123773223596095675079380776711109788596635436841163353247464447885964973115352329707854255964284159268733280881640906675015813677791754615476170537247838697132136457191779153388348026410427697537704642931978474891854974652449770955873574819088273435451519597069518601353738844774044425066488256065212845764655808403470708719775106363899013635605745256840707375261684348946173154257180898448427548258093429396287448414838474542939534256329708365142180413248567511928665602478110906426097144740836038484695416023935939347659690581733703248290284489794681623859806946435197514651904631649516334302957579488745382752598794911047416254879902182139765930219845023390063543753142065372753295648589597089177745188545490705317593830848364207082122259480554583257098982089393620127011178994354171836404309179487701798651134420475537062247212957631337268734302912540472463069604733821864204499418938906555450320929053684078834457205720812961813604995940321190717854160585721998523167632667675887972287193811425281523611329059267128693554224269324624614314976264692127547043362145894670184533295569300521606645108818893429766011064657225511768081332071971233196530582552449182523122793241564836790435086715181795020159567923378035376422755127901920399191396254905780792579962577672184555148758985356290387618508697332355158138279644637584405112425533064948521794337244573923631922968864100489260465964144241912868065800112729049526303356265143423586445737666535474337129410240201203096424845990440355077496826783385979942881932612383869990553288419565958928037599675887889460126854020082654151884286328934706722440482721930647617703790889259507222697216770737510252490586165234373219672513508952203568397279432147458393125122642120638503758590405687369396076467217018119670717712666694424619622470650987927790631129491472203999261082232052869511125010803866729315484912785130021555139700016826621042748917120914068898820720283717136118639254009278021426275905866165995599106018657093002796575873380738445695301639475820766166642705273329516319236674616965881870427703668432132228352033060244602881344980948999608568939616708755596043771116362011297791066214076138780734184439921102049156192162901587913290564062940486412746864629494212853282236619607172906895775734994101854024656843994487605973557022836825946165866689455806236884363747748393391876963965310661219038475758419266811001879602117867704686641426759096699817472932497388955895640271972454901217314641019034528653077699114966949250148984862371249201291502121065574762109469957756628268527992717592356238229659423911835790979423785473466425837247106289061091000773270097918253528543516145061917994953424261140189123729153950798779730849934196962178632256961159137874431125729198512084149171673238719845809360513580331336357005536462779722130426434900075863690934335255827127537972757543543876407226139629245000056292523379943150149192540842426886738735857026791089795685987374382854714234165972379515176131630961129744204968734639978381263505756382897271911401396506591569146305113554619564678713667398234202081676657168993270514066772638255635062606809321338806107317098467690378840078139065918066812276875681919568423110957446984948086995005303036422735099946358316752933095840379902789311535900560917444956421015988031161728798547980237746477430151279912437102833789790200869771326837836984207465909048391703407244680512120425429659736136468539705493932228177252502466971596384781592833334930226115588572551662389320528646639239977529403275484948347012651126708320145212385165981646010315927648220164205384727078013277916770354219315212569164164273230658516236912544431097132680201552487009775260465333012509546665481992791730440164382633916062165583784885527042255131666966526596672642901569637130203795368019331701573863928099710009848182624232775894385092516819013609496140330574120507769761685061951855141117056825697980541471905706123783198978713516120108639310338716439584182949554290300178423367846867440637808001974814984540064380550433217544375887708409280926254238040238272887191579295732913201789069261487268390563668745743931001378636083457960836803580160535533737153941136725591881552173557498471687707663157052270274032061372227233372862787150847533221962854649702219181525963780741990099533779768892177826220952373007167662650646998713762907067724812434568829122370127375122811102040611701798244569388810039901761512416800803397496541299774323485276546733305815983784359547703095810532701850214168802065211929534857740381976442654877639972723746874423428530648704164546722401210150302732362495371092798643199635490590030535768553845552217906167640455135723229891841003583675267775438385966491035684603617157985367451899609516901081861711999113130133659628734691450290526767128439165753687345571545580523761079620188928207244198983995476174875048642022357241084445664740630170674565681702960133455563682118611083467567212665459543599745482134585477780860626468721498624542833492407573292460200506685254347674155701805477864750429383092416867007967967273298804931116663114160800954368876236182072110568472157661248150575217774154161610537530813538124662068858925103312013261545368151186158538496716781111067800364425742675576784067454806336509419501974600306353385348148816982915380909732497022673045338777227120709353416922251647043244995379702518494444462222924967983213444425344948942915186793692036883979305545733063785398751752784376857281251847653336270872820051914384978908658897151017109386833028907074696360204471554876128085800025478343677738424351186282910278170185442310549100339664033464124405899816251876077987632798463063719288899965843298726855641748680612959648282378822103389463729455122759156107625615197791278614115160561208434817029755722765080374104448135227959787440486878169883656837536286144483539633652156978113325364922919856196527537519923692914647685264124223378023239665895820331858274187342521357382597336885864910679071741900708451695328375490631005200826495272403401755508646238915182356933605587136671358294679145006951350159713298380972034863071410961669573011662405311397473045160203793042431095673225252721034253831279820078262908259919610780353491014875154407044472174253932704065304223515675192690258325681628918436224423735011220561698942670066667421046283554313457078735608630893984392757312741753079532627280388789231785216536700745399904120704056867993940856196487908707620212363550399938026865664422769110080241222163165221130596973223835483763939174458400537744884269046068009619486175768969256922650988704750925381186720500673615085830514097352013111162324522776235450494671225994069894933056176044562771453671636214469801641827628768525732936988680468068475634298611482263999501400501092416802471292612987864410736450933085424688634316246292236670333283580524873712266160926823745379102025766936822406453142041344421361645471490968790736079209283813061613948746901246718352329982620523162782934423620273216717328679019052549078029995413602109978160700782350405477851785997663847522719949669382909466277676308434589629018147705427824671430135092818076967364089697458365195324955599564286564260899521683426725127195769855572314506669158468591404316122365559507775628036467615297150765752158695255100884884603927958924576713171417176220973867504561136804835627406950952877917250217541089249853086154435107320741770350460135669575681551526595710339800857449941142760060538879142094579430626432608158212169165024410897403699708006673952113283803209478169409098650947205070074784383406989031977980101377343262331439773823306002464451271363931572775446151213035348533140664725988294041641614358358167459975291396300065201119740348150209359623545041627968552322823923529544290828160580852452743623263613128241009505140965840925703103109464987826849210074965413510460708607558217584765086069683770028171055137371558001703338354906434634015440831581297401615797461649394504891573348953275232871206589555014959457246638968732878160112759547674040067019797366235236689301949570932392106833170034630815819294705821919994792753905423431748332132697292096842804918748407213456658238113677711194260868282910135961300182986950391441186808685799279937428895300709329608548643769351179659933187001978828007743107195413106351036900174480121610749295302469517331063920739857127301035947239416622786570409547332621614002404698550242951498760541489353475486908365548862344989835634330450977069743282013863996330798875543434519088617003971999927995326380277798138430103980141302247467288141592269748033670129863723174154558289588518582071624626085053163766848326799989509785607497181513419155152551007667353819467301748739822956413946389200643857155101913564627215864652920023653710521088833486426066629498811874404565852831540273013483816118319595065301517848109924520004049465871549991674357287144006695837317886648497642344651207065175853747589784669298070678669145125850649417830641523156923064558041532364829164387166518574046229041568514281619819511995332230733847985520724492731865950472551815143159652143888802644987458542641141148328252176768519487903098546778934782543116067622619696420191682934061298302895925412113013269917393588734908449705122284123081033064707745349962207270955273238617344754483222530071634967286567479338049678146683444156976800080353889403657230926623361539815390455403563573157761421078600722124706696143567139354533275736161077459658306690818382373581766924384868291807637536029223977838815011075642479942996663374064169660935426946268891223327441610579544140353980342568267960737308338956194606150150654500689292805843178514338153894184055874273414653595204979459246435643253479553183448757251917572358613806068663612028057925168283678184321846546686001984000347935103182456179693515705271043260159443349381137473972832627819105204795806651420656892032096250388638466559717009802872065946982853577115020907091161567475916725081613075607771531878272534079210451803423236817563458827626444474869374727360265754963921992331533879851140760980394137792188560803303590213373774435102398052612537464220399252940230426015464285754641543895370576911015004806425877772780413440280998707905793060879425006422292789508637663615009025148910150428174788704284833959440142698641890036920438223485403751116186225991847739524988723790067253206023885607381581863209398615546631839350167923649254750437142506199013479025136501200678221807383391828911702142296498198655384137921782040994252830343930609278891234258944741213787668324057596801429159582475702926813248524815818522097366027720967690316806511913617901998118305936193293839896781984657465909509529976055837843130637314623805197632761838533951858973455836576308336738550670329621009812827451385019677827891825476371771761016927654232067599961069797326795531053104444432682139782767561672168581237494468391969710489032159150492023413109237604351613829294513180708066778118540001694438082211569589707070679275650822788870483571847754779534324083114347620421168822442538457866468396714908869534737817288890081304218568863034070847485858295664058041489293173174673130326894390893271570104936339719019874678517222507018657579768758498159523213616705143803929525856974428539629335481605799048198230310775564000633451667516203849916357623797044718600321257498959807749066471428057800002191293141005032683443860849426455776648601028830034560504001835003133417555175138743894406496949015164863709657417827356862199991495294909316475515879800770664584521150850157634628794033173533979232998697949881967012217201648918865564115913996564629112360262165699330197393230134858749437439827853328203481151027108415072883030459744300586425784316349066446095773141826846410831163611837039461596633929421864745314595720986938069285354633476659961463775357089681778075840161009494212319244060344123580471803994935902468535766956980777396155564522857473667229400834555963654141771417487090732127421979698098727681403027683777340977559246276913959243680833541503462973622869871416836988244666021304463795184660338960795189564396510399700077173516063651682298968505302996953802307826232489384372093619204542410315556726541402358046298024851159360564508767863580100446415595318661355646785947718272773943241696709092574606988004965931757724960208916987321395975831441226222542570831816956214831321305369727652253472299862690556065549132257788757963221259190612419024840801538003913989815548688353702494514733896260689242125440222020717785720571473507714043557061165305512664854323939414849304208895828941596737858729071943102403507663383413526988105972109359887551676657824131113099008838317446286720878191823321950042233397046656655031628992482081807435397149708615913930926504677041182779726805779334446163951522494771271267604442245931819961744415228714974402697214732382993325160679842781045147283152142312623011228251536557530470961454618490270213870618108963439633888257358285688672814925731344404971653315732081782099549123447851264458457797410895175239102113503296894074970019562852077411692184059721345820161561547747915719078478341230833768470408558737615044127912851252310987566879558508441584711817123138628377497562374257567393339964468191914411386330016384198547792107438155757642175488396321645619198586574063007080470462416899206734902113714164689412344510807915055461339359636177480122550112281319304724430018943799953557947107051024521538602045163464930769583317553440096249688914346610298314929699661336344261093594202038697404452616548097910935212699008435529346065323969912566840072639455426931743277889113668090086004879990027089956368165532420719395633823271918010816560211762200528262571825380808425950328578458193387689725383608265454478047293786090809049030431414355459005831313542422577067327921842968431828743707477891517514591645884441247563657510788195125229981861737286045515669597133077510189687945318612504956002224923339774351912032263873817031280650204366902111722713734864828322928169463498140514658194428330291379491365177778033878451110380236928251532993252037590948690223949235175906234291056820529246078014861862510691130210906127337164322668731225539458878777296379291461339505459063449534082802787116472772120122665473070789797693280026710508902775465869937014749557052726125917576716162409977438865593766656184599094688820192922102924029809274855103911207670468132516656109131553655610157042239429573289438939985249729721715764623504745466906379458281548548977727789137807131860639929083016622660356307715557732041832633536175963884130819600413618994330091932417605796421583988585397105538342890686036704425618830978425643403222559990854322602530268848442906955767877139161328649150898410084157392665585678435705565281779058423563339861199317480481236717339651342149093471161089266336055405963921610231334444667485178682792027550430879181150229263895333884896752657045362788875787894146050537116677474959484739138861600240145069180146877416714927919994013847333108617668542244876095570340982164025084895020720271910608048616802226112475333203277210453427761037364720897812461584936899048173655802700121216624957896083620352554903208303320675733640907049360773901980187164481527884068564553948663465471987784376904910697496102898388489088746354820749114121378170757218920825521707050433504921369335108512052853896987871740924918243264031021036995357269836272611048637592445237617159275456819005765997922851090685956425546590127440758522641291751086686868641703665708622997373461803830930608346426135337901251273884741337532873838911660337288055936752901491662696992753796034303946580807645964528795943050733795768430025285719629406889591304418455171939544226056334662310370240703736502590110148099053366416769795912988498742878907150195721091493816353877971476108470520061884353684034876919816360796349411207954062068590480525841790469235934741719129847205447095992758045357163214663505768335293484335731708545604703340273072812070568370564961358877977604077417453264822444870809353296948593433502637823275686483291723217904754197747983119169687556261497764226052971981556163814360503577789646274059736855587673989632116558145151466210265114832665608183015810495955885430054426323225936788200729370543413486795984255217839775115384330061025682843108042751908152188178740310387675912851818487058346096947843457672957881490624579086287664301314336555770245165522008082607230777795343082210964205636099657792599089558567313309051067204522080419583935559014797353329025600594042286081282233942344751618901680643010691035121455354285066593063683669976914426822661711922178945293204850332286854147303327844134384753380444432859112460205916717575606643606023831961223765998736935658169690425504381657262985413650636260997240151070264895542312720287136786359062460978441511084205437706437095730627222866271355284810545998080150777565757540683966066123760020608591118152406474188182076531047351569712523146941967303263619060665600672945201334166090952625963605705057330116952920562650152275326054941421251710250807183259937309102332892093100112689808050753285147981101850154534642850303520167148056504647370534955674887573899537719038278155346528790454545859775122994388894490671302949077308260309014306364036261810788077667415790968245804156956649671236546044711642574789543347099353467444918494951801241410552814077763282909338269429356709010984797202234916717206835095661692051121050334153079171538773504355241443783024786102090170712566913684415749503209292533188875375578977121414817191118680926375166750963510621564834105137349625552965099799643973969772644428304751658453523680417878152386787237487371412625863127497654372751781274170423947280354232452356872153070620490850808702012278106270869181560247483343364451979604676605059219338894202490230767062628175241566335477301707677328833953828151220804192837905954507431736461070776580301673737194850858127986805239048835377902967153678547468066279547458098537875141071661048901127711255327535734725490678511956104147402293212965382815362250455456046372324045707315404783378603312193148414889739107998670531448020307097709383325570683283833317476157705349839190216900120113745586807349258224837186745552406034135940804798289179154567283283842368684857227363319208422029132113272475191879740036580122063399029434939633154594165519620018129532038966081219690347005560587007513814297923803759981556395986656683623538247004145188483196327403006157490447378299514196574081331860166366010746503421285251424783073232663137014326870615106007081170845659951801989425676640210181706795812353661880797668169784792737136035998777706483194447154223652271298189918925154867538368465174603404851223979769772581181736953378269019672575768093004916141279226026247493816929845073108134705888798669819721535285573675125975520041624985055307552405966015960582953100973979896670492729871881104485459108686867718836509861989836508070149272343151554794086967835769897865339238282860255880375651774732797264593476341815039669188436997988244044822708515192287743265874390243808456566567134803341605350723183773171475274318061737796218190967769735466705894136958413498134085849920972653732265281984529011997235170398731054902032042270280843179589178714006528077165090457244008190617994714782706628851131126475732680333825860749179490434103042907581164707901652452186455976001766648181798453323264252020707800909639548396771370056165428940349207248704118894980937755333185216879104020057235141153459765391622945197128518801912402717139367797717001945389055157554478835682515415645226607285673222488617258606228772338928662566291061509087909427188696128255874400161043162178920020508418010317704693234650057112363834965088530014783519356395144132070112532339929421533189622607603997911767846104029019929986008038935033623260760822357528333252136804409296807195504737467564101428226377242863960859086069404644451893420004288685116481561507770950875642524713238723837059075395145020675644718722853321469214130182544231321136333113912643498238528279086439231126795953830706680915809551320283281241553397462923965046232555195022396458150017079536885428263854763142430172995983670784180830210122083614127786628323967478454175402229288488872440798019222603784236308326395039528934449108586544241032412214085906761616042447974852833519002264947196029589871000324230988250631943042012680325271773862062595593027697806254992479071293445404191074208740750352277593069742754418454154645341266442511021441545253716899259917131785799688851416772629967694972936482380130361359176037295454146573271358983952814149594695358183715254407929249154385500187620828737825741652204244358700603869364767513758212103065113227102883589282250307718027766626979414947193732454055055259553880947423252278161298280669760294756224878419482979521630397618272185099055104446674003750149172790180920567277211768940456788243606055108155076721215345486653606163913962891790902652239999129144518068775433897535286368325525393854799633251432328128881944018736716923103361915427556552711273839220479715806931763510465591359868479386740700190043735558469528465788909881478324553639876242874901770642330043433175296899691678990734152854900933806964979617777610386075396728701657567369645683491069751082761887552759768402415202098667149843254349018029142930635269065964821393380860695948263162054955566118508233291508701988620249114800146841447801996411086248642993310610671455258519839759981417465678550294528300930531295666238900139121959549131563402716349224527520644456006826829713295672474281218322497302315254024635462183357283727256222517953427115595148341313184512117710387777835301678224073788337328823568284271429040701985407307458266193049529999681262983180728049705509736979190114552683004153379746672838080918378300491655542587467184311681974630078521525709108664338961670920244747774828972828031200525964827773378051487259579358360817650115152268502172017482833165812514876587971920442568300971876878590412405077527087843022044219626666878935901238982374412937103941738771686569549420227443639264224821125668265360085483169514725346617781097195411396252475094120102071806688453208483734166168079995285449794442016374040967070133624638681196180469906899405357469878683251299982397935617226756421882547434071672759051251131815569510368334737038413453080840247554526182299225805698458344311374525666062397013918921786142786914598530752042300038600204665333381588310235346828410488934719990304265548719914473939645573553648639069703669723656286398676490136507996044217789759743970096283978792371902903580157847244216050028356772945403446254983959877195942820967310541736442366499374482864718341399469699613395365465363705395283698033133470150064405446765345204476363664483356226215181437823755373829988673396122709364144244928371230325389014279892598735977981490878215663347958943640413802211298274182035641466932677542976340255562153809899851748140151174063496731544219285600181565446092824615560939027048653225479337874701436896740392054100098187733248840724641337095389305187098522926891876412976353662516181533879319995481518448450208534617230445975934698837135331971707793342004551273262394847977712909664443798243026524827961416692408926811783637542628019650633748390263038481568114572923306103882829139029201362349947183491522859534394303552832769912329751661780469713074035458860466990362492460180172974090369995638401160728493282927107287388479674640897905339449656882587717085490567734662542714704729389247314415030560377961180622316824099252670378756805138922420829773785773219417440910305881308272088389673207919536483766192102250213258496402309743598527845628812699046173755001648414312263762749565871713919946367923439579446052159397152764201775553953421535418660655340409321752411114391211352170656563618186815085792542530361152693727442490095833910871452151554876226006838813601525256550966800883390563512963890117586544279898778268684587313415155818867092215735237524911954774822815252221584759361053979294772124154363611217259889019342299410095627870801507515608904177561226302110475662766756694052327154984330401044445333163677356606089946448628569547198904410986287376475249310691652021872153481634233794090733874936846251670923956868056707823304384704034230535671730290043563724922656668214498840449008997146518193265425317160537032597739821725436408496960802275910364941162727722272118350149003578313938940542650335449871396931952210363385817490184877850345983110417212802713420761885793798408399745406541668980892217528044610508084297389286878306855981731744626079921102298401668760178164558081089937590459853781302647346024552186022230639442665297319432314134857716954690834667948371805605315844892642615975549925284352777480256614250593733732501582486865584503716996662420088095161480431410781468334235269149146168262233484825287528692114121524335739323570114131226834491662080915916332428890542930644264446483831163881401939278478395064390502201083232960557484386874044623283455486220458801432702835148860841854212545730391705898218219895625545246337497006339260180348037667132667985996176409631284173262285768175052482361151011475874396031102633863149183237390280300871890466914257221134961306192241130014642734908343375415435545691717069701811045276942324622097994559904737823601481030890299732458118003685411308219959190306503541912424338663121486529088080145468356658792177557831312314706971923986366187637732218793790855997229302009954942350504539281988023597200321462849764983301409039235045115454250810108301627267472576320102132207655623748955613759910150990883731532326660105684116123631374647015505953220893840785573579646277450587587106781662535801976119673249471329634645182215458522435433798537711663108558176677155466754757321331480375968398391505932235968010830032697084058731022887436916159855521060667067728335529579475429131204964077892540221014132757097622411027098333718958173324034848136258804745981943088898143501153565879372083078860482376134180097518155783919965864460768752876106928538509223747994373272063957143230860081050045130610953122361001634450913722119803013003736098824457456004418834933970236897015503898237977653741681666728767029517712102412079840635847557679582466259791378374873202218255415917307022640536908265053568675030106136803669593982558293023512095248467988266128566057952463732855886508590436124298504249000508012173937170428144745119390522030237638280717302060725964566236593636589189438253668308964646694486870156776279986373874308402669692312510651142552203771407007099069516773662865578986028303165047764817617892736833685280160545420942224715680520331422800610692678628679475899753496319042531870474350655621943037704498718513031549930329404379174291858763990379436037691649772440669293545730979923015323552506506584586034423336325904831128461340353599859090956934337159850281488458530266995465487465267244168570749782569531089560464428514093264191694691618890301112805954649781064986073448371401327580358697104799848303174219830519505397502195337639853775537738126195502987682762054898187208891864495659539764625998527723972934737304663756794526120914197551747886131479266474446113036330839873294854058999339146924635096287529428657449474752436145194119555995071863743173568910352180631022505366379228520178856730636609528468296871878209511470763169157787559938460213575547271192709660444514599883034012444232029635239644586311085892633842877752047186956843427163696437176827085883320741973524064275017116073948318954570999993772031679013977480798850586287036692710032670390025661372192667326863230838454856821448254324759389553650288876209997588533164065463213673072009173110696878143079359372634601117609542103692570465978739981643691658251427563001470304640617049409664158413099795375193264789487806246945614426727143423533526002565100058733571512558352838905111548271532667185389279167511657169815274960973310424711585656153707890280188234076278244965434135864784068622693331318140405395801583969377927578300418703604757026322660826419503176743567323920645359890078600737391985992387350693339205276718663148017665791080827803517437062650278525777417729307940374314849143491278017004625423515104717287147158834222058608529030604639960164136225590766560119659377161813697777731744352662414872176449527508112235386010893147546722045993563923468253023639629951069084843165509976837850969505936653906274919695611653682360508579773150766701081831419367111612360811137263664728896204026790242596307876604364696597625404984495398788222546748051157455251179900655621601548881520532550809603279890141033844655865370601001408724194574201063000503479724846378648501312518787896269714188816107361669263446160713863054364330791795480007143121539491597149346127421124249907377880677089461690010593671311050897334000096950291906300251364522319488659027597451763414874296524280758754839513850885350912353454254919461524269559508714373028243750867153008298297572297181817318965314804414341201741419490382884076666962141252251796007245975485166735343086282334023029264904551141197486432301821137545662948331195698495743447950278903414372889062676007490478134976452898850233751170819008897274415101398536785354622628129245524434673915298276040398979050828019422378020983656550964575614361091738716550078051044600420805507254448713136352878540602598193361274686551573635265864096651274646444925935209548684059904547018851601931696460576050397410899665005746764137560494931026145357527441034469200894946407312256563923862700643280224090866661064831881164289829470616860392376581781547017409837526947826836750007081717851449681780129598714204552852020766995062387690828566701993112179380908518571851707977803047351235565205153198668505061679890107957887547460303558169991238609644329604678938000465030206405415956637416547312165675562085942979352377934563418759686981009288513219233142323058078208461448141270149683197172569058477708284111883999290836495442928612715902946364049351133984460496924820751360866905238075149845718960094467133971869718292572006966103690787049984199476648554281938856163470760631971822285078629458295006254745354435231146489007614347170346862643976624650929949904739417946579849807215886888903320660398117683448525982896040449542056133237577823075113834840013371779594603734135083938192364692363192500694708805148985224311054379124703487580305994783549509633834750285147151739394124393664814263239704036821434506293032561145883257190411957887945800504572580745063475619612191636122006298585811188974530451574809812306667205849942363863340672614552045697380142312556973177878161915592179287888602422619573108449729737155587221795522525331758935585879791022775055247265360304808403227777894851049532534581246951626347491681639448796300428239112305874188488630631202684219982116946892902701086315654224833007750965063202476171663768700380709675180136034226449539981802926423602979852314757401101579101472151290208060474422983534448613551744641707340844613191756301776687115839960403844824478185411979133658397290515648684697661690419799946884749296529132780846213793775628265956847114743323381156993553562682570726271013380517373139356305263402300174692308321674235866416116420849463289035577450720931649284657706750374572543415869449465072225131926482219704810287463013741144381354183348620494735518432381778661859891156259548283226578624661725578200213148414356484945338824900145920596103502173253343154774390411601295401396996410602947254915430375960395903852791588634490375512700438093162362380846519241496558301387169224835557801430365352443968905383894650096977289105219298159672056412542033110052080089888322579271740274475375861143044801930565096951326653252192204090290228954200920281512815141053209802011991538413079600470297629629424228551947398777838693110569848256828259331315364870242288542401430468714706470116667217569942373735348807268055754487000249168533371981217803592755751640103699888594423582650347223486454960394615065105966673044773557645273017233767539176083472847703390775310064500857766453344682526557283386464803876938696367257853695968484850361708776412748244627070596860901797512274422936217790961924905977402466884064503719096382996908349607739189367579562542922405233376159899651498651863262796982106053380517505265384545825506403065293696630286662701074010771049366363053239672103599285529236644968886138751873219084598136594199821916854372864836693435315686444655753888107515254480671447500308543121824555697964621054344727692433378277103798000049177679099753436845779694834727073971526103068097355777829857334536576344177623074689312784999570350636913250879557831612203446835084555508812686048080511946094612317834037699480211265037781435213767311383806874637092998974475246805097794075207305867652338256432940261869616950829547541095102347338629949556131483366303034064449508935257190919560162105019796779533505410595290986691523168480315329848106547150489055251457951830517373937829226442176803230105598479186555790746667274250881478558685030220186887237215552683941834089535937057450552684180013993148598317367392469091047191894643186228387989349848640428918487840247008120708326384563140977080898376828090090412491255045102036210563286793008112800801790507287700334886640443572653427328986511331214985953519926378157136745919018754893092933354567582937969284856390326540231941860180137167927062995075786471135184504313343520489928591072164712082999149931123417465170461573373467844824162400887943312876125106902724038734084471188614921477568585032789535071342799833788919477445971977305087631390100042735419142285191193514676055982685795530932176934559927437046614905127974159368883900622325776480982096773427066343070072611054484570506071144887585484525899584723711854751904855044449301129972767860442324116395998951500725730249046340419536058707643007971535965728934988464169638968959522127081429642780893749396673934394365571527094755704585852779532558680174777639911627156302407955309744295110577475395254087055836543286867517665630240234505428458842715160235436849978469748483831662041953850875543669779887123910714525012440427947383269625527237414889628164967392466676988917531631171961783569575329559390121438177724859926102583332137006422630319504960166145415638989909150621863951005088141976954192757664465246107410900027532899548827992177561541830691254875296000843162698576330413883054501017422011198924532965808505551897697294587879976561888704826535947516253827434769647156629695872185105198527867890889535436860556230611044514406070033427544780658716069054383190231007268441337056126100942953396184098853092997801780012078688442326495588957745694649450840272682379584377937463929411776581003716799537496917531191669749254224369856222185726308744754768976699178930291532121808590935047031264687677832665331428425580747870390681133168846564540540137918526864381734099992535605812744593932633779242777259237755256811017646750313068491797557547321186730112152257922305645884433268387555845060662828702907284776484453777863715479062591558135469455310665251336849248224299759976621833482430136647163759902441420748150307035348963928476865080354746126846258182102352258034367349551985181670599580074269224344443614781816008740813449071725870507202153457502796941570749840959216533706799262945668579702125179769359286441481924846844470673799072314729555299731521476337190500058769321815975079485709462355835217732339716214234247695107795058037863601490508483592655363239318669431447348066872558025483521055656148116985497757586906261714054087252568610961433306136669543145790619301956180445751165267909031321920242725934902332308822957816603474128945245530328572004324530407770441094918355784937469772616532837523026721206581796048302082630450149687823727271502698384396647948800552826926850168314492685353421918911071863725401546656402154619701971420883626503120955641554317021514783124311865480413599003681186193508321154402985007606276870003803680660865987223065104493590950725500144204578068028721525803186694458892404184539581643717770217817290083820533819944283780416050317652423706786787911649272827841531750373859043173719037830962517887163494613830825777020459639698590275895536949064121117966954759398360296167148706496605543540783116218660163447438847284354880651649439129739199732971609772391385976405468744788086678846768492079870171584057316029062351923592216895096307785796550381440143167040353986232738353732581928359161809441062561929821081439105839103580131024537680640138395753931337670783044449126135359333171429949491028973258693418959836528603924757106681298956265630678336683758764309985378789541612251857879577416844001794256406187604666614183723210398659277541494932960991943954495896105228482737756814796788746613624873110830277598252831544646890207426202016037269598744624204440594935217996479911882427705381561544867064431475845834838140333953390404003633684939024764067691550427212337754643223046602278786746459363719691956693401949837263168473046556834051982158827954396546336724976911876609803690163144177174293377335471882050101746328701440143238821856655270507038526277411752486545953520055947373321391256425963607340482692913143486455133692645112703531380544132146351900434172298396677526668798432141339159442753305308635546161379266245668193309061619177018912580468279847617971402654823158428639896247797926412580087763623796072735024862615325939023246815020539110810643623842823405923438125581997702085792667601615657884638647800575398062234993273729227478863478785229972048849577965712929287302713862112807579498347393047199367550309288307244156206697944146615391839475156407363025727385846058531013067430861244092101586333223351248178120187398691317905496371383002734061458756627338883072100086776680828517787796746809210904122741140319716321325609713243399949168495512895746286885986687988381007663874895245542996276033485366127724825152174056803135483186553679401871243940729668824482853393536140672405965027057421968014948489776809687601103741789201854851839054477609283699677887461885988578042905378675969193221497677708776932858993752411478922191787307975153632371405820654864796045411434497922935978433730578558408911688795525691374732736344119346052897846085129429529679557031205339200519140885760297899051236539902240741956092767812678135891508815203500148124424814048317316057383339109443852995991974768809140509278987069977272385515170236712469203639576710151398304225369326694295611196445187433158209579160909404783510413336505337630743763587177710924917620454665428152120192559539742624587409530985159879928774815431050990991193824871026508219550952503543225107366998938464443814078778549504206663064671361134962522644175887522961402989140926536296043090156399698881706776885055326297126738909592400765788603439931515364827833818092466896999203208910833256413167262280918882555586613393811590546523302037533672886982696097062448048103811538340291704075764820653454157399328859826071702016641350344267264042994990334668692985931613894654614694013756602650572725540852824513947310648979530304193783811953789578921172984728180148652814221093612519498210029298480249720213590150165929966103517973273137952148959381067847582047601121226993449176521469396198239226852966373712011978383815361585932399103461354866829954425672762881670069155951970022241418735152795135889688655274428069888051887890717151769910410386353858689778238204571813505170354529850655756042692949664001104865211171113115550152166651345572828887038251636116975051313488100559941547877604240557950601600892992823809528660472093440859882019680620277247339841007927944271292598318687443313144834486553467318857438331460409677398210057095510888504197600594574260060687351542637620692717638583475735826162996971925131069737647544960175101372520975508435146848360246389686496454890032388567105537566137294708859518611747499503149480854785043362405454294456145671399494532783577141628874174822742532346210959386863651830050960381235523688532605318246880875125915986813495621552399167592918723247448261589893883830241123058667603283373671464865609640370923635041296762529783974503417829925150577715077585997385440726916256399194434180089487297463541434576642475319631471855915002784814132593021136606548062181206959472250623612174592354873519791712200354117542205212019127340349483535650703581482080456086333880703374986235981222738331006116042814686215995211625087574734549150674318677747639070489474571598302593691678428525915186174872572814343520648008768876348637671837313206290846093698830317222872542359336114179379097596765122951394449359885336044772737186284166229367744499154682832321796937779869480168098544742432383234612460303172329282365195657400692326562875931854842788069405819426768940932623229901254584214251247690337165676996098101301337450153805437464287980023753277642079983001042785506024153749650836784643438609100860479517641197177442598886589582470455495872967521850801289358483593065800328741961067255185802227994076862744572322541721138213717163247111140672300399558730141408967588760602069064233444761667270365364342059071326695176736591098568343121070653592510592621117220332978674849936759597388344087241310206599485101580136377172483704950545884671810580980524318056159389625749741507105583764726074563613663633911382866571645370355387657755176835041308409561202431084345304328233505550286314795697315653248311956568736448818117823040233196318271354684117029921926809468333974300673358141357637718363885891412748411333462444412477585524934887911141133309090989519563704937518210659748561736226515463272464063697374195688797424168360364920891940608571621628337895013881382598598146479800490106233242459386889033293454397124375817280836081655832489062363397301379056589606752764977966540396715793582403293187417991206651351781288340353361617252480936706681185397151504769676725045034787652397558114655064525730976850620404014256036452497343148158366785906143618204870577456956776110480168943790421692689044729804082029089484209237243758112356030160386371631054883548340456467685815021660527447710168218553607732000869373057144931128100075820991345015409504496798820307374448045274644119771760413282188678098678359698174494050186835682711126345720700253798523835536853323160062030699814252790508566065489378213694703565900580323569494125823152691194777833653253435232394011894919388662627151298691896520211266806487525647635197642580919833590383936852490904236502906029079042979351509363803915596219991567992443470890062388921258366402502481259678723556754266448424793820241434719968635087699401040045353581851274178676993864043577013471614502767150468631405089113688592355767087061250593481274478921093531380429415845748471650539638072925994840414745126660497732809736872093630041168140762232335881830850245878787463672208135065319199142750847593407055047861959950761206819427517988128801377865216882876088794198096714345940311448198561536228576887549477761800883895284699802014847402224846197766027725893133712912972371818826099742519707649253333671977574708123670290355127112864171249397174339712089735864193475955726627709212584893855090581033926018403930850645592025501893188207388363536368487315493232462254202801494359101265255298917077665212554181086176578911010907003146223926602994820554783958099559066475885624225895501175011280423995424213724437268810388994660492431307706256132323312790488986970455142999008175800128510093691690686343969207255631526002698072519776977653502719661648442224286199057654151677231319049106501051720803134189643320994717679260819234082830120759239765666581675145280315037391006146393768688591389023013923856290189487955870323562356603415429153019295644056487142106057393741431776808106189767297427178483710317804438789204320021187226558509428179758293673638684359006936917270002970371195131237006096669851162943592122305727206112711494498542250126399333756727098577600860740797925357160697032569969812672214325576365713756294023930740345941932857125884754164815821057833587734339781107374452676368015856293652685903518049992944842475424374774306341222139654461016597658830433745430932367504291329014890237963894135499909855954859525037390952571063225777047229532214888579031062977977985721056022959146456179068410820353352924828973829605989085510711148045373608510017389493720516821453977282981151863314464331477389758001930713470659636160276172115560489991575188184841137254642968499864921813301653768934279428121128519762096093028313865972435964151072645741503028395113749286693027460915711048408471572206137436221725706206223159425453883805469633706710175474863093513030120608554708750322735254568993301992682213858028907112343737830788978919329892868288836842457199165287003736643514263895309039338991734560460011371120068362632967117276561136081527069278442509407918654824878065022366814704641784139102545171770784825294678651219493376702886187209604815591602502113397335509347723559529716727641296928146924137206732760069079271021474951289185453001614714426722317950050708357993992057208121092819127670316942652431564486744824425492898222095684955404961290120536696338300334902974023185251007373012060204795475557711966159804041330680982758698799346989237437004569337562476994686267424753123547476003814256467785484394753471349312490791642287844949827974019506768902090635009031991729011475424352640696771087596962353440788285260632908022800918977300249754869535168457966263705137547802489675617119478988560111314134893610428054056076932167201481128379745846976043339615113788077857338903149468950977366711024732502036546839646192182625690285451528173087196854185512469386863351972642679183852025858652301294765411129198914873606431190624449911042143433069921700645946629509102461301698424668948733940424187867483840547523163912839258286572529988204440800966848427239591500382837823466126464049956752406672745086200996398272437122395664670040890189453514493898717322626803893469023128688604476750852831309338342608019834924316596212006333328659775536370103689542082685024806204702771956722913426391521893298027527439739715624180589587104623747789344947439635195416647315210445476209964431489254943086018596773595112899421638505458124721803466817804719161810168540224339784581855751267297601330677747027196794297915814854899000219166223140845215322011227959933525765798768172063450195449219038908367873947653365379822190235955324431431773099331203073414991830034546883611216238601953809040754452977898368781163217932122497743372403742303009711510811432639012097982729784180822612179041640846240309245880322150007689966352439531986383023946546623172454606126712753211965259419739534165772591961166015144634860554851114583446940557648229561053845706165812231262223463288852644088105064130217962033116100791871401107714379116530721608542338179565831457179419603764327075696601227142045469192042797470095849148310878803335740993936419699472645877729423596639403168543266213796147177588380729868126378795425514097202737122666094935198920572300105682532054101170012057842383747088544705103029394449453408491840982149147271731646447471886020776544790843246724801910834892706917302688094815980195318398846411953129816591008927814067381116718708160898592668652790711289347604450894493705024366998028686527067591770319967852078846560452356843486551214825131546950306274085913910030371672416120328901064708565606631991109710024282667745630752885620778731902959776177495684771765906930401002647287507496579349094093838235499266173680245627063345912228041277487286871206862840454431278194856511987484898767411662479033404469672678889612638174611921518823069771046049218043389641872892750991283610700185732878782551278425951224843661709869510637141317613349993890372208170095052128949941598257941573822861189716312815410664452231614335128418286722917175877268629700655915984776705157397233638340028088681061768438823149394954349277800623128056606305674068146644222285145696222111181612940964463355665661176692799821744229194729533445898503386223426330207776479610783205495639692551394081998717183689535814956276693631246310311569037353866919452609042942231484184095603521849430825789912202220554051450378953736747992040675079744085606012951050664184723043102768118760435475278529182107760187354859337077246413594333425815977230049199749634655845071151414571115611257462556535500357481738058657238276581769363925234423598171792420915234400157422654929016390956252151344372393592783131483179180501550567495061558605763759351011142078352091261048632978872930327443366400676929903716808339665275895840907869992056976329965725622413660485445584351435945546925653447475352710138106434168004570925063658446584768982799491980255564625058328812812270835231361324675249795636814473254867605778060679261546927834461157701768548469686414000047476724388414577663538320922103456129593596968843637315119752461005645642468229371433808556286183243056010724230494528656772292250152345233020259736188527594092035774597026194668950513555527559908724044966148762650526289201609895473380027218205775584584819677780294405253729435632915117958528125896193113486343147668356495138369404717576901850272182719887438278487217167420993032572987364669749414278615786267797080455802689076410760097636425519166261340645604424553198404045073216762688758670701456819331521775776438905528546028199358273012644509752897753663188787725793838056841762041651993468712654006444165978330816632507555068023236564064542832723917463151306366434229557044534039050971798240296875784538823670766087221280379993817172763501376555937530795967171048238040477307811792252576328892127859530902645859321012956611349740311847900629888772264585082114267894797115529035031327824916023389497393193406300291518794332115877770879591500758963508665773166176811402097067875145188211335521840443670068129534524289390379090120153900479657919399303975739766831145758794916861600464215584619599919050927576505347951397323824310344763463926573563705651862132510924536395657991927284502482977634764923843065076638761237220522151976457188753953025796734295206937172431681311063042730393165520345606774676526891775140201358319952821158224465298608779708029823425715516582868978797630948091483578736585679762514917007289491738686969252224980717677056029118424019539736459571960020851425094968401492533560040259195603267659493450312674195429569736979727875193877826934438268580510757201580624295617196336010878672224981492362940072612657087017026008488299240931166501281723688632133383407241796438171459019615581823831603083175551005368435059317115808935599727638369813398231390650760854838440045634117367467020643337732151010716669355020042302001434885304206850765046961143744069319385061241947413810984953780153398496840814182387856117765873632165283972252598998356454608101161332058168853833219665650892438255864432553152401062200097809605377435552331619187317439565665725497778922563201784711875861477983872267511687918431543749108570968559311271492756526506644770279937279339984070749902706560036797179641090148269509524355374130312499301202901060507902758824308939093064502243417636478918761331614298053198841520759388582342602016001569279494687094748686893024102524240346099241113615843032911710317434135268218026119498315926779424567188201173100763535306167654626902847692247716374413765799950261010046448110875517401185453717311766009845004051462846440005330890622823250990458787462999092327534621964197394868946230789587087062485707811784879976117418761501570768825406611752565423712888703533494518612036780843555245192345104187719054912686978470600405615633098532229316613403785146203239370254621991747725645123119938358590889335941774534375457824697713797797743552462186131821102999593834911513080303389728116552274042864747816740286995301823841727520856665553760897793137276975598612374605358334986675026524332352993373220011208192840246401365065661544415751830251221845463138877932713411814123132970424165756664223682582269228803778926067140611232309978858005205522995709269168276187652787562569220664081479740003337444113543058108498722670969264216515977064590437085801155902036358713845500664408357025421007446977446982549088985680296438520804562548857703286509424780586163189378540696915563707041338457183045456405665589264366761022180098164317812915773235678231414661357032871335447037868725147873262772270588321834119287147528128396195406611889716912432731196766520505077572175520536474579204368965017401906648087819539024897708077832854264822731009800108038798178457180895182897728634496632800230994394509037626383936845770071657140651591512367971657656160590294609598706902067052970298987492726114959032723741803377960864734622211307876199071679933212699470581057522569156541755409430364623381372805697760286890232258817524324282689761842089525323461559745275350706893197347633021740862220074362725482771097863683314985087143059651745898419535561072536501488089471589720112918268452767199495508353443164366943743646376292479023451083430547796040844318377602620904960837356245615784134504557476814231443353508506183896194259246415615425784459122260686703105164705601063096837554793692041732042112832348061967882865810970427356605577979104112679349632733721518655495607646791711969162993073758601294068520562207654900632784255361245549166441334564445203860769727044610571578212971851768835752473576214547802857613577629825033764864390550574995550204736600807503352967875989308192450357839871653579458324429111517765959489367263171116635539991822814735249470243161282629220251710064015050808347964477370203344692943091066505867081065467342839170713810045758975518861797097913569929004321349470811327584128835017613282303304970447472631575576711267283394278643994505134971060543701673293329421860320483440642594596198577644969872859485618301024706690907291920184636555686440873798229252680436914446595162745468479751506484217450415326034667361744441306216910950394337473514034431903996387041216236091651494470919351046674934301907003651868515880263141694618053589373398420731286980411493801462559647540483415710908955636496799267469216964179309245520388918160021433944354250361846011710641894471377176101467644119072788004155154925385856130010846390495330636251943937787576721843497612722728290600227319880239648837594878182907537534746092053650196869220646592947208281138150164957830100464522610249328481911790514846513443527812708675448386384596248451974531530466827396038415207303257381422677745963199774080199393492275711276135523525084726846691404280897317555137474318406796173360848993317623645374023546926186456676590277561395360949041452079973301146245519917054079622310455133361559768176069236596719018861784347949573699154621151841580078295236803898130439608268615153659049751124169585898224959131811278024658649882496348033019982621824746330957836233424822838151983731406355413346651212800448058110590798205095360205863223673528782502378115446904902389021677489587997447990839855665080325836031259402722108832757738978356414775501169289879385825993365439524986551231692586184032868015580438439157423622970933166187192038471474286197441937855499925331478336410111791345683201058886490651889307755370324376835562388690408992713696768219375444136231643377213281446760233613061519577499764181763695448741097825244869591169231483005722331531245282770687173460019152342790342072099316997260282534501697053491349118233811757311457816863178437599591037870080631206328786363371087523786664938730933921515818882652882275563206969588907705791123639288169595464367096652270120093623355760942869418140869372540559922733534055486860575247424307623935988608778528531318791293232014131082014649805036495363629062337085888405103896384769047535710349932266424071602656688607345550349353916676662622960880613190250176483112666871569513780572594280481649697750052215613875206916438334386468569543800533353309124464210389192888159830100493262011142721923671726915396868459090425195424338683107321920966191094998048204484355153156012928705307963624076585345791852675943711606110671645388176966216690605946065863879886008444236709144817207290632713344703413638211594852907196753852601462200312544658591226549891867432146707376897944571384479146662888565977067830292040886105036292492621815998275540541095440971074194847194305135861441210110477775720011368133802807293544235922929985066586784892752965975757159786522107406292153320477070874894503442264654675393216212703169561995517322877903256577436376186115872838345834838737537899302588852450589796245680285194395217463876852257354531410474013934739460724593301205067913782099683931736980026808400545756929672134217123352469916872259316528081700865737088412310252072898427388414627179881038820960043670161175831025394854300131783888542792271606089809298277334019341933720919828716484869983114075843719380943830747663367267506842639582369634372405707540696474820230844253039563750973808806197710646134891025314997203166605456764450845654544810817508184381406902664729370538338188321276744301639564523974247710597845108517895907607083680166402664644164241986983043227173328322454830272887772961538962758526521168316500335340464360413895760335171157546990706843728576570570944386883115028355400340654097524051687671672829515301150979190290485204375707004435546512273249090695166618514222940346630994495470807742147503190168519824799729620556563373538306219546910362195380222289974344686650280434094103386247903908032934779762601924753645712611278923244871367692459030833831295953673226693881815492881843193894700286291866406661894582833839329231254234491979792506378450402414015893939734083459971199734339405968116082095549088140187184083910411599413315426247409418578258391896672668602528069409881501466138866500989057647387571689155793207805560149259803011458843665929575342717320353066711799211078860638120416120405003425758374716873041333768549875298856986612191018861631478474377537163384913005393275938049203767389255167195825506269576714395252038893694319592795778428445952651942263024509330036762591052591209868542237835628988103847202495583969891777481429863581655122350704007134438618824904254588594252183698341473777285475752836207585755290552038413075630417242639947010929109512296414903982483369255348151931233117549098526048694217603389118989359254047273452716917324486483253019482721059537974079077551015266135949326845566576682194389043005964196333663705568283585877922023030377123893440989764130847035696532429341966693146892309158945697689688997726584744602004594648216668564190493811937661868658337289231940863968155615955977813827328263327144618452420765496673987121904543200613433182111873428348307691336175282983178942347432138966047639610295555005935023678431424961687742931903252535733556257516971008099995409509591885694014543277993863423662388132595756748557288173400147472199202969122213530339224611498812793096712377461868781256793248123123751358774032784950131554199250353200648434376258812352022083761877626743698702797934999486480778988080529343282830616213960149508485551711368836874401682428500157497001907140943746585900715588587619911128592944818402740192512085525853938299972855944315283007098222290574188884365529194186462827580465913870155047251287521871721457142631056726875955209843514697733601590427370855401511742385370351593630960301225638482993441164160334485078660082859908166772558974474321639222489117874627425703925684257301868546587959905116234203137712119420254265232476315668714282284058535804482635111049378267894485108357579501331121930319834349050608601105268502875621588445098103612941327403739263164479544124150430470381331823494758969841172562416122275994598624736418793326917386378092115147936269146440451543225816727221794280785201428058478737915382944915897613027977559544471928767834745988953435989076104816079759834829703540987627174097862941588053589559631105828618524046669062743276615687725769028928410878669705064900521225103356333833488621891582701964260715562964275971160853928386743803965682840723809474186671830583290188948885332653007395487221443100302921918241515945730881876299160717202766848767676958967892951228897368768260981929628675979104935912628774992432156273215821819659186647070450660973667783771263239464145268695095402518675796932638290262342098983060880041681497774202494527802518760583780451205124886469862177501414476495459422139380593351740226871485134416030911823245463072463512592314889506063362141780935973028614616438875426834498145656146765352793714614304570043096243958464865109402101332710988729741924285898197532872637297611544739999167462790908133777565523389514579583905563412606375629819101084979068260608722702319710951473081513636604598297955579656557015835207190632081639157756490368922665590558286277501089517373302308316966958605840417049604202535187149765431095900559468765592080111863311032245795192438877426762123237897110508426770172656199805115003337178549301441263010424711467968217837908321330966173677228305836892062678167409647396921480945307029931268787839758529039227794063878529580385598166049827022074321400333838619879163196871704520137499028613315049017376195238129517435440097339858419091636718241414212469292643930284870963348347797059534408793541886994065454348905680555992803310147396165590265363373524332127725081592820008304141510226538774760620231822555920576937271710935945821184150013576541076299675011215944839906555222915600051072695799186429562942318777503604520000217036202840109717455710446850649840618027956016054709714915862967601133897133816286106734705092166303455407473753385834389270901694546434410948258474186742263283295784966473930135613053190594084332540367758502327575874218567698569126092925578570815650899570405644470489679489838539213987642902759485939866686517515853504714602667579489526073256664526216430183100886567135411075348985574649495083567722379375477154537013624721978379878712313845804805021361061041438422718351255112763414878600528217217818387952974018618985079845664212616097447497571999403413988224645865310074139009946302220031503251995266597879188833857427904050405486315037761780679445112327213979059149917395474631331197277655227822291792256891172481270959446615869591497171372082387126309692400507819252628046054857404485256507529529496387091860470805848962542669550662591776383744770381173061078875718834800226279743147496643026962437696134678575676475867740094964392596177720523059110018846215073445898749257516945003972899863020264982536751271869528642362810625870037727313516438752720268843792706565431943205244918241485044408103270542688223832018904669093963173572338036536302630089622472768831016101310290113947378550052121323198040485896918538441789656483390601212851240188784240395214780000628720192384995073094398199283593826823965065517724404147928472203117282298553853478295546571566481702739113369177677382207383198861817135367329979154045990515511503453720039106622318825918758479326004924884469200788814439846384888720746284839460298448058402519088245955075431708180698319563201504567499325753523413905852394211229778167965084161911263084767837408414730567499478661196075655812470500710304536430296896917765566518223706651022350383994013782961013380578835135303842898608112464816547690477869526764661547453473359677531221315671763915436511405264164725311776463572958103995496618479391755820255974054819299726787637859242844177130577687660925662477107284827278739765108956995877441773373940596473392469917629580158530904024792319103605754395421590283066638740961187075584651077531954113179539062996836057295118889228158353660648626057639629608546355166130642679804062028818517373740493729522374082260158707272142345568619848166923313208304833361314800000560886450511858075253334988894762622898343698423080543334979302041254066373450527637489808614735733364644252164016058118899792474858257236658999215905819478384130160617474601442295482630263148384514452131872852514607188651762956364992213594744148102636254556150948739181778849886229017499281166666412512543243449859000096812097207621932833646382322883289387708583928648323522653292462008408803936591221367021029352457720787459304043193021825986338419553344220772912140609261884840502801691825342122355321910461808137250772069218668551538983758111493524061730447000476590023219310707466564482682559170960314819382717801000917099248243008712693980221117169579401686799476673075854022503258317319036284334689920482030776509790158226160990132992932485643664344188202309263304231300907368206987779563059547264980535039306735806942562718728432024987541829577453564348207745453915460307557678293010890219050702836827188821826730810746494619781817285721349253499259270816595820269510158787323612094428784517458009391403587937215710803314249573289140351624483635657251867928133640357966600237294122289597854667323085481704397156381657451758285636820439884483729503986993098592370355912940980290727562780816723166677838506059452548364684849793459076686567850710415358199355127286446771967425308281491296277012336913887580480229774198413609591766827406421406776776604331576979496584403424554308821698824713444419179872886175096713042244302432445724574098640872721916106792949987174142654559211171608388834077164163227882477641422023100441450624256456955678197727608349916752238874538007812654455973807603704987731397669672043728798983987160651538586242580225194765191848370691141035836425672168496780254629701795573300819721910956131212081135572158630867110350886358241054989420266384660969042084559923203107742250259853314184547633200700078467617835360354333246160109316897738338785942609612522159215426954298905673455696486035499749304484330952135609842851296919044856535426966709826303003865206535290588999550379063991129246064994674988468639398701271273970635426535344545869962325243662614728154188472516837106245103366468054751703174281563200509810753228518559301528950104345353287269123133588107099423198344610578871645144720790413692860392688509171913151979153615310025169980759999497856625046716498764451003418448544093169277412600884721230282528122962015804182984381123019917340513353795149888864128244516058682664546217904607807763227589268097124583724481843966903106694234819080982307429630142096584274028888070668041204375337055155981094340074893918959081866769981347564040118551306178523560952250479466594171381223377524520004940516395692480588532664786000712800152026279190180520402957163580009530290674728914020493342652587444951078867619735045264056693536284571089932518912506563957450478734119197362600997270304799168659575240293226936122873277921465882409228472380059953347789702867639655339628905051729989983680215185477057225472864703734307017763783782696528267861881599718213515411311696540094208577886915155103567456633532059550227220168007028991006716246598951026366818200265302066992792616303459994071774739637812149837369137776639329600360712746383221060016425781678964673691576408022584646526015454401054468946621142822255442273907084352549101780073500294648225362907392956974602931572963161569274437028264799829293684996854015150661542165806529323437386839801820370995750216827235729774653783830139965753188898230023276911916372117225541090375763467322566033770872698296241598260955002925207517340151257390028676637056528615747229924379363299315345938941810469159195849911187682728107914483727931133709324201969377900215271673482540768321730817170761962943676961007350746028899420765099846045793448576477190829174374062793392229190492997702780397568677073908539126494665958295285363901142357084134371045190181699413401529376948680525747755993328314722414632644392764649060707757632064762010076746122904342349423974190693885390587647552876379644183417694690160116678764226234618406355787057011452356053694417267388300849813422927733139683755974786541620987422157458842456947269486989432842388125633745429557024713486190412832472237197312126718457136283769964280923747152101165583087669940714207949707598296132016969211595587072812278033912061085601252934780086979627052052198099984121537013162842852245857488598084678688444949395318366468866858791066070018623518618386608193547102524956532116798173356582939394487678381034693760138768064895669165744382993320950920839041212049429411851621361555790896629947543462398346526266688732858322912680468805405005165885250983288634848003211731522794613042876298317181852107931592250162785005391566363770316890955704728044078564750692428701918196986146693420292566646486098239722037283591883146107189584601157552545561351943466489045016730824062010821376503397239843050527313471084064065688237022956256480959095604929885981809489902713385409386166305937034042207072345568219816659708649823697635300981392471075560937599817618318080906367977554869293366237917906247505872545142028563757062264835772906246170736201706681862951793668685059205103909504277052381163951407966594558389706859434464868740949910812706395482089524112605809901363225486554626016135165514661850906140995238805644832598906787575761315475581660631024039795488081251823839450236421222260601421896914333398402122457439750337434350834889215131108792078906953726179431887585005956072735790744650346126587728938079581161979897447241632188284540507021250032569660391257593137743842255944811748959040857859644573221895504843909701041943889607452779238426295809407656367921704310220532460656938277794711525618756930303048697716338257278898461990222211664890207472776055694991385829903140918625600083800504487502195592091520320898318844610338140564680690242949831695643718332272377733354151302809855901542962264192464404124143363538526503290849370756039024600859317245640529650421918644211163239079425594764813332309283467034049600819686587685736091142659646357491894542041364234583875497801770415980286907023282406485509347098232389889665952684297829928770533774261283646340802985252618719405257047531660685152866864441872382797993702304762575663400181360221704068286486033251038776632595007197629315534768684431073789489626486069887577243884013428933022080952860757452013402413669744070923033734425011874120246376460486612329602273444811521826122423154935882279160932793829370933547495870732097797368824896244983151807442991163524554842606764234362954119622326302570303927146506986706577656677289955298928801571233188751591987573587602131259386016206594022645931404376248619405946578257920668660553135997170494450494807512794711799481193218916169154811392792122912837189973220904862044814233655697614445715050377781846920432679043920242441456398351020986589736760357474569606409660348742603034104773141894598933300823619154202977533227360436121727915548465480876570613613486003819541714544284815645360976463431143289839798428066599387354703993612377678736658429017504543143572732376540208985385323125832428241802672388585001983272926993992094252287680669012853162879385013307142310756732179705682172786520203417987305465893638273220947930061448649827427401122160000852884647849735561161962155948104597780745423346462670347747958000922981045174723947400957788775924937808623284002703671125027707352740298352792935938655809478658526225874347899601262232558321860163234751750068151229725661154162474532742284291986291462833883895047947630736406544927484500497400948441676674839776472683549226892160864530798683567938413944170348410239096952446352965984003590019070332024694591855065742306532976505081366917855717341114917311142223227155515423573711311959447837606181897177358764575787210121436127645518943477761102426180335351309632046724001757435483043037898774401260542114645982830297002843190992723073911405391274228411889219766315984734140188090670860061807186469213180541148561252821182313824599473483118678107195707312360333796971948266938078648077330668243567614533732120439262001702155328047857766456303117435533044070079188782037527628902887479432824697825348630265822261222977516335280748042551910487790651758836266496243219147472628311649259791786020951467689022364319341667374799875033864886698013195043226068095159673647302213273424082009876710629913512244345792783311305952065280329238579956527618028714708447723004563529479028222986185961428667932253976618946125365728312033893328140870587973930494845709043634504360541462691415537258317874672275260721565528745209660517344928062547679788821022767596762209784317511563646889428499414453854559048283649167945109225208895481738460395408163952910356238027500478044673490971406313874041556640540411425208086248468551388675319924522810010061775781329337378581877061241489976336018827334442954144345127428333901691758817796669217084767052489139552047784975020864216731335353327317837413128908950028758398990688788161984604306519733906729975591526785657621619002811503449255652679269680911290689062214693876092974322404950748467838616660590996258104615955033140157898569960053484641992050450674944084440057647002864503985465179491711074348651449623058649387914949208342687779352016308129385845200768594567053824597512953914688168325093752545583065700269846935840643432688966288330325204546675469619642457953946227584925490751458938701869937638890918884347171533261401655961397766148341145291048387465736531446338694264044472080574969082613720655018099267784435797425982740809341473700289116369037118931934192585454693994726279573461059493923797903288099167074774548697425143795451797076933499703776995869919521225801404874762264066014889489918686358225958869733654763631394881033365782868133683197222984711083152840355250053261473913465685110579263392008738320468472349526025068213281063620320132061449803844078640339653217430935931439288256015611411781818541821902910991686164624242387631133312783657295646784081757446051286654452153078852986844772158644689577101939018703384850995863455985553289867430635679770229173217300646793869220346152488661062970538688879303598885953899905910978675762320825020667398846621935051132920333921358838699517947388285499643728806827818457277409511825177839077607928939571589981158020527087279313005141886917680102936967520732540230639789777144818552206430981992995162586050701736251706932728897041241702854136878397679877377106709575953297439755751837219436096023571554009663862771211942501279701306437058158791410890407262089521955190059092747007033057226420945640036876328133678047856962098597392169439964714014443265976919220439834377607968407362085137708413512590106277838763147428765163841719494376332302872844558483851800453464322732182808110040082618592098299028212894909234312086073793058284492815888821123236235005255423672038693444069095000688359049224270896684087260939128085280536927882272267863901846831761040382622927424366431268341232259874439866026825934567546087822358900849869585844419846267736747815539239491554813281458582057821588894038186693522039503063803516373699669387783977188326637182085613804005438636152267996999154495349497259450279345962501390854695083000386592397165512403000731918779388816596440188827300331105741698765184783005535469385613210375345888998989616602300374529807003712396944269473371756703359143040812775658752351983668506265625959615207905617594756004701746825081079337808301724114939690674393930232512766669875564013039442362528394456748871118613911940110845151903102320312556589657898299850164857989738701956464766825070735679325325212195145270160310332009491614755022812115208339634760162588553286142946574929079446438771231974296935855374260508005897311958971539207114447315148075265701260483589014390227082790331276441737142360729999542015555843247676742297708967515515122815342490915448113841318947356761864171942831080416268220508099933171427339851148252172052254235984681902303316676278183697588962555671541294154274838998606409196550035258630817206096489892490824978005210685076737059826773367949565068559736141629482841558390941646058765909692871097435361675891837683548386664133661512005566100599136103668723066564802328476439253486841738322616403854248339680851361545327237625064321033298835090124330274555330814047317826138005258443310441398645424658381613372140015123049031497470619281605744470518067765643090803337427880791708209721726379317140421034838951915702555681293131222663093422126931545526311311660462023248724555010863542259464791690043133854541847594878674080028858139637885416993079335989241987635287950907654454000962845136759248952674091297880400413574882721328934773486551569472352936800475457464138739634634182107612528852428026856957375234876821205214040026762770846075396569466403109152958572620168353518663922152105949549244114611173416464498570556093562762951928081022225760785986825353453657344471936681442522006121090514573795866134756751802585482404154871551271736094253732725678061708414367156155319736202805105406843140321197910794963285933835241622846373416601271977266640297277805154148127524137403003095263211001597433549684488204304114084307718791774583582924490465440328472251992660658514979963243364865167037552402322132628975653107965300298614367220347532216677210001993160239019047783507530938349542314212913094844298062437991361704171014771310949814044600231160363799698637740073398257371422511264949878271294126237171235644934207562856412545641222591759534734093663361834921739611489817973847437142171643604518459848914063932840893782853830519326973696581888052686784338517351854900698012144512975390344613975003652211723531977724255173926810157773517777405426890924435142960008620611898756148872511011975807174517034246435784649783489715251693175070963861894470576718350274576283791611192980839398045668839987476739116483703769197134747025753890263275126243475003113063662294956209427150100331502801547796360253738707400812623856686159233742218654563269195541229816236680629392885485661472894903581117401685735592597276263360158169740114341398282131336589280914103719645098854712538072935498394803662020609996423096455420899490326683806675913334170610012996279812582305332734323941609644364361919264157974443199163721079414952205725012847030741421961080267186749226656577459374021541036305910351656849222326591840868446988191004539258094171164189362477205269556998166526001090999754133456692843946882025009643074586130994864246241018421418343230261078932586452507123599486850377730787243523178085405115437846983457874071738377244614089276580042147980095903839318510159502115378622130217024261258307244763920731089179348161291071854236422779715987013012909288512899635202970690350876481406061690742360646737192537776290338052579589459682016892388508296138160953130117828573982753181503997453246234274344503904567344038156889986690419623604761139259961835273933744183828189705560191455342827033413710140934101456278430712860590580366735645904545182129269728286883569146276255192356486755020430780954584295214685828673358511225051442845880832836059606098647871130196965954672830343654221795660603482558022681456287859590397826467925442247355195682292702574917039518499090029851572991925998761745108911719841137487319407609802094341694348089779303499328803308248893200031048541919746798805340307738818693740900891170470106179997647003437808005070997139287853847846429503967699688502635347252807147193894063496780602897606654327497588494915226355950583824016680429196786443912995887345425712109290568367452937417227840105006997884431934957912709782652133745866410266899207909627493860171939412009248632268368671105870312171908167579879325859715310889288123333224319536873175028421943085988862443029571837496754040962887406970658170556075446595192908501288793908442000707680384284244951529051388076880205172821582968687459326278785277634396452449619674290400912167335098977835753394874531931274328382589255207238764556276903785031087421903914452196642364860660229243747821806296537379564322591852317687652547172219559419680210100389688305875864380936212557065164186695736421743292991642185634957963081629866329310205376888333462717932784718121351219594904484268246596056860345362435894046869775021449961221969526015087085380665969267818837213396560862976169233616918263953975846424510163277176546052476419685566363317499776228281353726478852801497081644283280584398758238778534615264084376456044959552942908389748732583931232000310427795348569577859974631748254059315007887376361928355263183502167915199160382679961860729051145406862423012944318464070595158225241925294292394940575232372878899358217716963840338642042947556303865597035292950341637192175867870239044573238446782114426037907215440544582279992948353177446578343087749002236478456340205405801900657767973787862424340669404675440131788179571312517565946322749548145486846171913048648870999919806021254939393244434566942692506499496155199399539250305788315949139576317420982362665840326210356225008045535566314061871113476026386621263879540485504376122795978258878661099309523244665238737848001817255038866573252469671063264142498081111271919241624461057246388720783040388469911053710827682827167462733931472235816785974578235287504918320273061211136770630621187685921362258276249680423025555569719990161673008047337569556710978476704477174733429504409283366906750555824313576405688192851781688157322470813089180230636511451030484616204607876800417757966372728494866324450722837397632812745519135228751375143459715435828647614077143875872050610364724023967826217357042892945842148468150044326987714718733623963344197468659883768959342963151383603581571392156782652628602754776972637538971163006243148569115551833009268081681989659913662366848272524326929440641972100078537477417305634624446536585961472137286962267921939976066866303195638718792140154937108826111625106918090388194853636217708384491787421938366220468623164481343334388679610628428557043200922049631819428405949661420614408737756900132671513483458728956928958252053076741641988138563322934989919400139571571059854324784305518001028618864085647798274000357573743850999687490299246444015666395641298661793420761898793700677493738316274774586042623479105527094804927625294955822608928362889683039275506990279464259906144976071391917670600840076278872729632858636256229504707150869061012138703841950197643393131722290168673709059412677662555891675974581430791295191543199081138014175238202316166603212561456908496667719264195928578084165175021558856523082401933003493251829889938076933861116917148066125852654769493854492528199926573849933784821199637906521325293972198492933391134047671228419055239146716221899090547362144459761827089563734568775398157340580368415300661503530280403160526380499251978320250179762450922965067373706671513627899204732058226497262437337210058443778078016934924040697786374514818675662314371269908982497325143065468354606358472224451479138896276782131332795755614802359074968163045890396684418437973441861060407128863201436725887887987595366175834739676297354134303813080047603164627219473197052554529703001546617292415145605426577022099761087772505111742295412581603261531848032666528966523932571033650172358591760544511268590585477077362622379572508060221525002664929785680717529820937391988364984347967821257121128340559906033474321478199679578972300507144706982776681673822340449605581261584187936287427844783198720289647826805746935760641500587166005411693506044543021337423389524019972423697747819210896905314882804776063570644316724812076933994299165556561599518189215753015743692956194210391888239948933934529440413325057412042531132407039796472997126722592719177081599002586049869650072589366188885944913068475821909105560683563275911073337810481901226096616328109006354808467723711190472013498826451183992589007237904675152667331407144863027897440266513400495573223950519320526325262020908688267540011388236623894357493439895924995346636441964396201619915022295516440600681780085637560655843920754152908250033138233746840361766677171084833613190966868555108579466341220990615797159422467398516387187424299662861421537156563187292824508385390388188081118031632541490910070836050731495145284765100445174761697033035976327372816705967744473794710982700817061046170400036398789544993741952723207429854352531723735691127127039209362780050345263489967080142549298354254655983261474529759760992703916808961648515199377502107731575890968087530909483789862660274208324604080252766208165481540051398172947183079835827411058543699354033503998941083681833273497303563572703933620633278329381153599762591188928032713822382992458137394365800670143173290388897569143617514291574803407880732222129905555818306159270086839401981738054511930622133738757636169365278224069768960766904428385796475473189786287225161967310072640560480520360697931278151978194100846335224033342201909589519768515237954276941969710790899695824662440088038898960208739404096909908231007446781726086313472951375691814540416103100868768536805235562891140674775465225528647957265262125019800869945399350068644533135763152089083585972325968186409943788332070374766449203423178887077921198369940338498460190527905160000480223590894292213896953777479418457686876746631873021227432681712138740647424797833807024354489896943258857582451019148360848798762811232392837402993906367087843200723139395597792785058418964980124497655015254008581252790660176342779158127426316655537649154579515885020292947514266325387066152851575755302132429990551784924279514630602904596712667846383037609632129738337980327139177099982970986547850748318413317306374874497642895770201688973385375615158853409461008613938611058420800595460452216184499503258045646850700204652128014744757910192976419672348126174953411373413463864737171970527152045596364489183438291747709001626968356746817117220174623791433306100740863069706387234316997770220641601767518005324785263502867408939977319747275793515613556015052386683557955893945177103153152911791899986022609778513502342478227518493676303027301071478489016974999256427616289889978085803006729217218742976758096396888639620967945709532780724060225777598486121351254698263377507293298199580971729657695213149568609246589681703383254184671632621510923589870596678050610706927190774841200798729269807351037726389297220499882879897868258546106378340637921544102887821737900621448478899572056600681255479352444822922706963470015054620182291774337660146755563878999031992082244863354663430510285744952601541024842506324059814630157318628417501633307209404695707204953430241737466448937079462844514798527274185485011245098403146425512156810631660853756105364760228592745722429911273956422170629491843044876725934468284683842700937025086664429173622896696383122228997273453584135507633294487784309594926071613464468302314859347785861536543665674181679334229173665014823467754110141943816863838761161853055814738661055667227187353649128002342570345236021824681610348457207409614804002512814332998422309290356805214906718189014744149928969181363736323307179424947885352314104579381520111158162912824101879217379169840649235487036433881834284326486187948406628200336974914851315073406687533295369208394536360734047365849919448813190787228426522306886313211708387155967680394303181060386756522189499098914306895676835757659338565435409653097380258424725884885598862690190104786620711901204213495314526214549782902717640665363436563381083400167795066955884201397356334758574850277271101756085669184736108750530497357206105638884938912136563071591697354976507756475991296674353491989794661361644983118595152879284987396191419044114416519285265992164895309921743077329859457461961455867281732504906085512574588583391981861900784826916757903692862207066100641398755361910297696529486387680179910180140595727964628380325770315683852865150320784018903507270903641220321579489340420626188173379528075116435280123051025911145089871206716306399600288382662874057240716609832208915419650613010025512689108335971223019437661354863986945727531593255100017236683518884529780763116445368757455502954536250928099720510201836012243463118280161992103182244647409585088735340880366302984432984615785605143740495920191217298558065657791134090596085414783216709548260035184865178376310987686785707468814033713533265363818523428762722426512363909097978619141722833779309590678271066152029206204586680342942263923004865545446577349007046577302340124626913437192150409108065136342169443697519713074192612424407081670004019977100666325508294353935748275460250481946570361546252597849583865677090395882465020670077533932141986726067272988959761162721767917728448433554980882589465423810755723347587712699858459849569701806863853987795011847532249289170545026652566141933031207878512603219005764987135206882068514357850273668386208413411640288018610361842344545023014499172356827313527765353696556242910844865565494991086108833026523806446756150630476306972719351540579290402677379570499739886090600198966343265039422133308667157231017889411247612042616824514303738589152622463260532672710274412249822649203910249335944063707442088709563870467571173292358308302888403785707869387675545794964575102145880032139757669101958610413338246870558012777362723774193859207818944214404778592580915591366706484262492549976231263167527436352714942469161774521279103723077930957048298705800155672945945992372114854641934292275904161058244916059480677704317017449847375573654609337196497675114228373345136780053538602559774033585289730503846160680740571395320657977036937382378715495990661924120742536267475008356365576080701646944237618136111184297740966580427929706681916622267304407564370133676426048759494349929096622322868417093410136839912591021250369765678086979569542147367237942916964150875749286335948342843134091980319214711104823630977076799821320573508710623401924128590088877149845890712477385966547985815016493834063786604924721254161550372464666907304622163648381108882484537316022810210659609692435673283916041117021960147752346482643502964810405115711032424747279043515001236416991894743845076627524235551474627503129608118483021217668972340699669352962765296031030317099216098975565070927051967592185983043045764843734653661942649702765274187207677216226516565659257161442839250288851255982041866091420371006719159359385233982160279282418662237258555739155610005851945434373636555567883701125166951956239025358674939529694004969615095816607094353460326071618584968969664382227218334587572715193258284693342773495055151663802817045069703775340039665690365907340327839238451989896683680652357037469713137046235538339469789066457217815513848282506420099081811450407031854371890205589611220224029436978365096271500842987868276460541365527408510768185514794897598021114046076564594861324024935519479725064586176762288643303392704153611717243961835328586633619960352372130062107320482936982881644712902577360692805182975550393905071218236682052670971335522463495823879372282185097398952526652175216664389029170848081956874670038238269703280762085142545267258802256886037564891145706901875596729595256998980339858197751952420957540305660475872430860328699686511037436242773237386569478009371674762325004146493903397006846488129630152268716908830668753992076554247686162704735603045557040389838509564179309550649420679806666803278729941426502107513275674675527886938629218888392216231961077100139866912032806456830332318444474654280715973450970057361813639757996535860135255790164115923231682294913537044662362639398183760707304156428839965086992535600145776426896175687296917164890828743192924749303097449908756604353257993379597017681396803919939589563401144330359746441279969907987428967423585235379589538016428510427389667439209286041596127619540419995923736488647667047622617782404769872184516120376805994521922474311888770936582122462720156545584425814550986528057407182399064343442681702554668483316646100207741876529123755182251386810653045011981970810238112017957060696761089159606256675280336217822966404656045647207249313796425823226417413524762555434585158663532259271220792943604808278836920818620678732930010938058753360624813336697122466627384238491287140821338763195382115391236538513843403821464205341301190587274153289910525667053011430852027973279415578077734954464245987061864945710284198652461205482163564919462758960682281784700378814036282034979182971181034848993076579250191461904368098848554144185483773427373336552319694462208395464393828232307324519379503254900803498417590059737874623921149112804906335625982564160546349854776565213200308720412355354205292897697200515456867207841660293768763647947647210701806019613157742616597267249213209923430983525296790566167917911925498243435971223157782336828355416093629886643561060548240450389529702510030370477343070684501376529129690167779651459278700899231381810793589024086485205594671810603877625325763010497662082158900435285733235744678435229130742402296222968203489375647081095283517970798384339210182964743023734616335274579821354599933917514515233946791907762728605613636527659718366643066414063265590334075273598323130421843247749574966515925324966380499570811487902495624373181596228762274798636142382679066973667714566783004749765008537532392721469455803031709697592246093942467901694183288588539772862383496910411706562173141297898839617022798716225480467438482791262093470447323318281555141822314963292120598806312644615519981732051713820374156702381904057176960612546618238681575569427480589029915506194310564360108661539391073607303153311519109616820299775454485880853157095334246727714349000419171850844138380164026444082207089400160899178501391942227283784536094942656163953286794922111141090152278258029934208964481515286861179624388309992451617959259977716516643021394385966434537091239238267359037211724182334008907540724826908857037029733333884818672165927540180382462880968367153466920357822693703490385874799473209652974231700067216012454546169857375890082115951861591478229793119236030834651065699681764131874945036446204459838390178066424047865524978771666643024189456397527075008150979568408372240266317503727990163760999224854048785926978796824991071289578503879222780192123473844360914425992688369844534503503869642050411660227609169186627970857978871520449189655555395692562613485809520635937664107702296286234862473879995149613549280981631416541064736260514042503171382541133086100989686918262876549937273544979297500841896684369011377902806145555304507374748048698910809194586976512120028717965747893199203340743925324596225178748771887943399357716062621611512336718542753500408662910495784293465268733414536373038696252297097634601117961206767273342855276149342079231128227304304567001895552093430993793098323476471928386534432118235526819125428238452978158264907391277475898932082475198226374767531811147856439077490989334010819575622646451928802837726801424123061195451029240201143242545419581599295124637289668658240338176451031769283171114612095820865241674194177879571693032998604762506041601679971847662804922154518367925120261468830773035096860081045953303608505238416941646923530082723230693375123244719093128835319559389292816928733252410261071231484678620865162308943330901716480982419777678803637405505093780529740778492645230329599896890053450400594845004379294154054054444164588239699603192269399109635489628402773483897125237834307038067283010409073893534328518226313723058370204634625942814027611504293494464460747157234033320168985716498855355530501763453989190497965268782791215747855824909637767257011058133090110334993359498890946554531869340775141729722074859433305709868692871959269617855732446490749642620772721869561978857121354020939963970122482523985093744048881299744418298065551774545803365579549218041433993109952914195876070227951963231377469316616313580008184503707534512797394313730740671030801032775036956618394445011306668636943985701321644576313643317515245020584157838447278133800432556304406012597886797163803879129373508213830083949267540436642619823509777464614049769615222389961463606513231397766161320715824348860779343626050806238094236086845791662006410234902740393078930247496901140931337224310146153507528937876586508252919797000702963462236994633577753156506910476568267689903314716347361656349854657063316813058044353117092713092660987106034140154427456927629600934927725891129124956561890979183744851665718073796408370182703138796058263770572392894281374988696082757373164041555358993517745339558580679529030802401391710594306112581675300386398189583793522446483536826809491771599553896338727567522287933143016283894048205635978874468299826632881572193262344501050556289372948229112591122759546015339576155951606884610260240568847269607189986214224859329714966447546389259706697671839274947966247937457439108351638263859526493191883132057096093434662489206747730338500530089315688889737769138398602617888381330034370906133480829610417671263337490176081348952218272171318829431006696754850614204209551494144871087555826334596941261037044945358324847674822258225055259855241824863608153405114238021761753351254691070977571989807846971799346559938423366841895208864160995167140474807587209784333294586135320950385024491526810015068816830368905151407036335466149796126199283984474610947918534459868988607153473361333023115618004687932397622042967595296046464430198120467778848193242874063346693484292630516052575845880053162154328309594864719634529484912920388734662924478417774230557090714011358298788207602700232691144580867939413067121869853914600451037288031435575212732068847910648447822092623978096105809522729011205629973084421791920888197981837989123872263173670098299994019866557862501841265478211193900468057693103366717554970463709202660420821489243962059175376730581381968816482534667492869303122251226982670477417318636763669979126305003044154226856423513154897912792537556662106570767173979498061463918671337378113622207785060373934016252369186648204057648596104406328375996211929876956035885057232978508345079009458222386473299165230120749975009076459191154768990909413997847421449533183764913930159498646704796803794885001639252169988973457030196543519685103273074775201958265057356187716619080717531572640963530271747749733051080410602807299839248449880641185426609125989319457902294456528985971813426942184239072390951527632491878653352799997985161143022052688413107496510111439185861840291643056885364857389066159577829175140549995641046825083983297372019109584235557793206207318043105732980833973804078075930247761475633609903380755188272304770368218640413688008884127353495613853334123386197209855470575405877630743987497186356082268814983427454602202777636749899681307559630472056676557089009505711874807852621393737920373284393217168783704938296374666554560589778317896816572279318867185204420628325592296793405114387957540322152131319553530712980363409513686879326840227719018066172878457043154778724728074154578857361237169781751819613880387102644412402315896273140589740466188871748339380525277092664049885763922660709372584825148416309310929547989727452921004627369495062662465007985201279149712653397439539258529675980075807851986563014271680887659385185662014326048855375392946230627696343267679950304229009503421878363419188468846431051599840275112939674827711354392896837127186942483483665637389924511888265607204538533398815133090261437660842190572301250848790508323361741663534521620965766759647812223893188534642758362749193399862085333325237060651031297346737747884177358594827337305630328190507832077860684103301323813385087375084175717164467355649756567633502304701910816974629672611657049294529239167097769480225214748911638209068181178298809448547284724620036126410203308490588362503068845889324823461249643051088857801440884128982993706657394599910242943712080296329223574110566281868266348314589505824734765347237013090812733015274287119160162556619966509388216479648368994097879808327952752754228514424154719192739033522542395283878437019316431237068336391002911657502272541510688523524221180102887038584821390827970087710824449467673229657480615567030148272038163676861921802946461600263041692426213524703734989016776063596505378098160171301375678087509014928397297258996763392708211759288429869623988234406356065299620753136520955026271122969203606145575755834636364468891773637397961017877174704887298863704321103091605290838481969816914118466545997174843521745873695539387113826674684704988568539765333747685335635865920165064187563157403005794752933486739927947465924515572761474781304392056099800341956955156378435522688418180578615539431270029107915081987063296912622736385220546422309587486317301349472543135401636747969190132270684223362927699978614970174641330076343867033308793144354851297519871016391142988699865789352298077363856353673937903810320723212254821050670764965268254841100235892955320435906378093986503073316433621252239092420432351201101315273307640561752740714055144418469062248004075204214514895528788555154776239100037812542550607262562750517885944106492398766901022238500961104327611620323341093225190441533944804606640078117474757685353540695382645673313828067797100823989165674199402796099605061438093187329687409961071818459091054649202150830335914081993016886424243141041095226211473821703162614747790640921452688755686111475291125543534573380517872804053683141281781463724344499146120680840182256467372716471334848058701719634427638678861134812330795153347284682682978935670386432964302311152462928755683855885703113077672434948341307071588542771436229435780232442197954566973310662869621797547820980769086746215175737618275767231958755291762135969462104828190438018774128566709957858563446658237027165651027361961001161451926452451364993335005543491440590862012374041311930347885465305511971295420077265564163144143380096222765855072239789900343331549477293263951948859402146623054565962074463109723292266664001721264652225702219862517148779499784756216191338953517184578064618932086971044829587143035134979082000756883541370899720050403426758186081772953553307988601025370990870386522994387523893938938406835329062264554453601312725619714561412418823129978102964319098023757498800118441283679962864476731349742890786712837520850128327926666581730288734161372927794822287499493369295640105146910441955650951526961713748452678413801060559633546814389587337482192905498886700145825740614228204977400378074747107636750389076857809430602998440095194064857283935681340108361959136493618131028730151811591949886922017787054383083972231487864967544920391260300657583299180885558305026752716687575665166833538435277776231946451915526745418705894094303971907332122409544689544210398021025234043360907492139307155500098284020750491108435020703161363954733572889545250101081995487170901635727864578406464637620871626688215111350364009600676599640140116910783725565512256376924625173062150736450850210747498031762222370192634857987801227756737336220886206032134080322820746913264555334727958273055973291779048597147575584497522170084795205425529968935627445321098024811657800561421237074440798922232448909694524918976344586109688605886415179680569990399464896453614112782824117230054218025753029464183642296210841612245133136111065450645885708593601190053052154477249797103794164042106888206527147751365199825506738457637697593394779790593088153290035603571078978845008459732385963690365112770316561208104768206037459789609918201168988080679977839310241092639760911340881660016306995607292985745619585594064488358519728635871861462247678793152828325319902403179333272214806767850960372482535524556085318948134145770110298772853805769290279574310500789619890908669378674600314434057517797042519672261107922875117456967976519140024795164502495636636661095580423515607266507752146535522528341001105140254345830853495339145731519235172434904146608803124239022248374512267291762004111026483120831121571778103707390030246120274088337237622338409349318924832823758790210073825297183643089424006151746925604852402974596980090960714244019831082260785464186715179952110503141829720893878621551941303688057891128608225065845543574645419448920143145043573293614965002146980506040346740368793584407882930688332773509825457442489686525419367204031994354921581999414940741029995490235775030006868371452765318821454520949949029562127981650578320766650391695995453721630270674004203020940659567138114917632978907978177889070687533089158216016296714912092565788324775218641470799101365903165681361536299261159868949409208789585595313803580416190670783054053452603928462465125314459161734419707277237287247578625589486717263502911555928982832547693159515745777079223911451723650842975852878241611808462491614748729230555629981680882438672155595558096665973574871539986694636216818216971977491164127970117345665690721339711426846168259996839819300074629907645061610765603603215511796914581958573547868158643965314661046941641195292051660215568817065193280020491529185091269239635993709986519612339923997190262383686612279444585001107401048133056370149949064211013572605710344740568167534814780368907623289664564415429786234048167442845434235407337216879577829371029327066373328529397171270823149059686626573720588373177555462936599326557999390036054349565705712518970996749461156713393256462996225952727442382253721109213942946803048265243604939962803332830624798862986081938979757142772352227336743000127043541200242697151716403799730302354694495130978647410175782105056087009020184604498995810470278092816984580626814379513352045581519339681896729730451363869395509970784723449323447908124675681266162984471402459527493173786340131368142796063385169622010744777399370160228611070883712458606947566357438867921884363455060929569655945996125342225653474111428297454086863043187224054138266463065316978300957433047395616357519403117442287485537420220346312525749530257922590481596824741957185373324750871274607285659195834439285434777131772075666786592099611694061961041147678340616832553127593713406715021687555196773377904351729899547126678442804156646810675283444556172290720968357689492012736373236864251281196218214324618997058312185394622479219055586966677305089995168926358982651389414928469567646825206849376838355202225922555881467134613143714601841614470388473176626134742390440813596642042665187544957315237182855962011916703949721883528720315232081770113355503917207806271222487635198106995604440019329597739257381032116931823800202182954734337051789739543315821717060030621184416763374085336965102088368607885849821643981297636157425788566805897360518103007166756183352258185945165062418575055129034265767266097592692775810735653431905419640027565345258065669639528811375263801008611395159833716983030900079137261831475585856037066666737394108878004440129164817410075477588027265709231533516589677708754383229050927118336235492448199251159407587436913938142897144620893918190978843564667159213198888849901803971892293529156546764225691821149340984083813046249730579376897559051339608146803254436764634600102572764619524606330212521665703144914097744380885607638188266779498321821872220203469706289179859786758747384416820884193747861615917079812457469570145243047690313288215207692907349734505426984001531257069944938818957268635122316538501829735153003145225639689870198965633679185518289998869896977656339650467994666837507360954579305876508625188444446147104240921610423597866131128009797645954627311285156369876068459101911209049839698409048398869790510211183894497258725483627087676704274168038156838832621290758485336710975223860805869052257222750554509396414226780446783376461407595653350178217222350578484188928292580331189765102320042214609048465220884271129346988461211710091707259433380664392157871051827233443781863784568035056052087937585453791755286763597631124031439141721589008068532366861615936408812986961509709238685436577011986663867905863792027821863034031754674126430535088634041905804765069841092171352158250126778197849292051808242162520935890351503886899668715018476206158065604143565872719672074695951343623443879333709431576740936051470287098191000906626404664353412506374863092060816732137805007459066947271915740511361087213614965228701284453376023343949475883461064585660578920387103721427493070638319281320800628496852058024106014085425602873982994120676861116303663015108701680088725329085210904147004052210854682892424544858491261177165959660549558899406096835214517337246532608029278846976232207369850765327742014761354397444490490771256682987967778238654442410307851381946177033729968271125350634208267211380459623723648520066010775947001629904058505367884721697869104962764169116260579956692486255109733951386565634446063091650344915758692862880901687206686831760683354635129340523055154915230345104598629865290595013440574630285732160441343967182691702272779849868999881957650200433616570121443583422329718636217430216141801472492704778407116267566423634144072320201992750789198774870315257663379541867253285407080941287224086747004858241655745344038919879745331066071836719635548600360040852517873618262207779262621589798626494047337084622266877908878719389965703660895600985429609086167766848366991485730636710217622160515194365560279490347690374517505158566070828411783404824186808087868016351816176761802130774617894419615568232118571731343551655916050476437755465625559588042794368702534227935897221476593414534198569268630317168770149539148669337815458567472966419356211517807160402298240477741560624670706968470124282733219762630815998745237597089798461564864900312977955622330570212037602164155929776861265463516623590467785032760033868533119460408928849203891544206412263221987938573263994997964285866793772232050582821571122214289403291567622611209446770505034124088212504723963970173496318146831232104533474626915075455830687954791410888819276072247477934289027533929406487741579126776156319736083343059017918530513603180764397550439653281008860347915086717756861638224038587067097243101928601590001090661283219723126946932531459761727225259115523162366336943428747361618007200019728398710566678879727360028951521719308827363499091998314772589775939797083971622898496576314621421439591525188607309357918113437159632495223596301302667735414567213439038222140370337789209100739713064865197218362504209387923597356192395699358315588533373444334795230052784752452696222766739835077044152627971411793076402754873774573721348813252798015550001537018574713806088112843903314324581024047943093100761450600789477959108496891483654154446352779232881758409867910018332692087119586463276889549431607214773184604070319874937126832808828315754106688122488574407543070416970188576136776653830038006696636043611681027100990137298451013589615266598496435951131313158999743249436491343418994649328891573954140586469198080165835727472429120651263393489793970258938600707697092007813951219969038122311864624594110629798273146416221941603287922456097716269415586919834319599252435677081396432191183999164227610614296643293250880907636064544615549845112474194668582479379246676824101415625882780919114750725762609721718455667483105472591511557281387167053708674530132042503715365553210295754332184537756551412143799374896384746312854532508021264022380672511530472402981749272032314806797420387378911094288411737884986432009071730068078275270044893754297628455677597207462868646710283708890103402030797495596130808353560838872650908738805404642771175806066296165817638551584873143629532066099736688887778922889397750972552128786892738089540416634335390785885176525508260260933470386801490943031124103978806039195933835450046060579169552729667821349326969270969317777884799766684228303072297131962436400353824849282177554870705652182455441842519957341517558001282651368225143977247819202617217626540290093515497049507861296817830902309252636403362631858994517924341824051653423267780010443406957656575162859990621636729726214962599134246741929533170475671407535382288933170813569713830040738827656735650750574586490168637571205476161372856543757815266527431676587489773281616620029150302817603549042263735163806640960890031385941864738489804604695092041351449164118095680881394303911150668738431548350340817000638635385991928438431837076168145409080429922110535331777622017069754259027297886095037199271989262680601443383955302004419259185281275658578827890893165280152304087890088294428334110018116126015999004067560178913976370647954379120231599090220789824310077304293141125678179067402380173173485983126003491572056351899224380326697026950346214603229859108538345160551715126046282359400075991435705076485682425770021670130116097865113696754663617624967155552028945378847461202089842672240612922232680676923252469181588624031025530624881547423535949864413564555945602571658016268136721419005800234576901140229770953168181695403310588853431928111277623965406399217087613038111591108089897100727331157448000669430603415328886072793576262325478819800951789782382515895659240879614634023600360335182939889881631297065519422805455227354234529459670837187072509306456219250097467656460559319361118157265765309702842140641497093319263391134641450056303810874810745640014656202283653646431447072911931077991919968206091703910142916855939349097625571049571060227766021093293571608069342466659808230082701261801295374357247315915472493206019117451699795523606435919080256710437023029146701552613044462251462803593478141525887855938191030585765075858547281575055332132993768729617805845671417451963069528863087098992868955025264200514798977118887089055479549411654201837296537483519554788446525178057049315310949248635155372669242213292918748562170987787360916189513787760846781967235922547751623657454218648745147939188384444425427687210143220330822107882504015729414461276022900749898397879348655565601053044670692046300272146814191505709164854738629317702229639520623158017779044468695233546033177893016282944870983963313297456989409803005282737637681806784753319247011316822380991037748111116548083377629616178363095249058608145997531048284222877926965111509760184586602678351339109508271493690610647318350014947931601619139673578706421759897467242673140264524533655648468494562922414871338734474434864439218100049311418622241883894331656391420620564547766917525735823256749541697017641640394444240900055371395900086892083921373673721619947188055746877521486445958114863707185811144211230087450958232009434051538173219420473050038389832872773557000307381758750900542935765800397570999479806957244518550105872648778151054566294666148866796416862087468090897358342299255253479690024814786359643015911081616334768848776262775135840597000886847149520840247839980654635942388595755806418514761877735269787677448369804659987089987545419070526736059021608833616633430195135631122251179025766299029578681105868728066757281192627304017054784400712635334888409716357373816692678192231323349492909030529282712104190782740119480507207651940415753107429538714655657841073114218206780309033005675185431210138220697852019612343763468378211665813720500190618310110484631187411843716955922453066955199391227931547592950558406999982755187325046955758628562683322937532506077909423678251461762950762058889227828751467883722847439822932310835522559474838047173642246456019776354341745209790400749029711048666261232021265100767699429330047680266554761068606260986077904005063377885227323106802576146270691079347401950551628955256239575813031539393865802308388269006320833941744265716872319590162423119019202208705923827867083702058636188862094792842982744567834744549791391911466586509881666246225693463028000330072520635038046315048941570830289126182187216754232077015850515055914582689857372196119476544286969725026187969557842186991679204120772471065679378857190311300282694334404668325726562655452942138426597258744447222205692603644022628147120036058814992662231788975391172800104281157978609915693091738573967628753304585487308178673067948570779462619293925403875074225627744342496628685160459564865390247474233424362262313474487166841952981798523946355423950209442261275999195642308563436235033573759243139085221489592749179586761397854078907443651914386426510794891103975610631202031508065409141124192155762101273531541674214114578845655670375783708960493149207150946811930890362844473402867433437380515763338514082845095052921976083263019909031345008503052902329678311545822150820879732596318676757435828828789143333763478311280917822346588524605752435469600647236025672596430288527106753487496986193135665756368977549802341291289889318881012138576240300272464575696114355930834897689249528133135074647619764414349101753192960924909802420222896383890317977087489315087817817911332676571043697871161545990106799633171681211221643736140555024197261634438174260148565583585643695798213765026755953417898086533785017609680614632416985150900264890831218001545608579408114683423158980599477451931727670061172821742141732521433958386982045798117732652110417779714983288359665927038057735126410553146025474937260076643059102790272146805368653928681085852523590611160540600122252372039309221842111221755560358911343061790989596203352540907035020859981593262226889092699751329678762338613515523092421762137298276123032542993011251224754303148911741887600936438240659765364290310707416762317377904271755015319747866898091757702344717948744707678052649924262947660121050889864314952826490594911355109093306734670937619820548499129361191742563070607265080417677540318460292022953897279569562334297628082209333403507395344247038629968772060103761821948031663505783111495561040885737390396564319029489685487764021099295083947762066538468164898588167758137820316895003900229609668899035137404315830282432950231571133524152824355264004964757659992799682749516284565971904769066577149401236819185822804088129481024289780614780847385703709405418839459787912837866196999081424480786510749940212297732369776530536203548984876259626016456714078159161305460848459382948320183495045526508853117459176335658461520400935724955401929130789407557277696647552521511439606274697600834997596823306711133101579181441265992099840268120939423953322280836186382826748737049057496127951336318973633693667466996327229443511619458240509125873983470410002529363316582817410721848476975989465490823219119757095645877317801441380773954965548818640829924182436464559583866114180799042309177465519481703679934154993359596283231085869350484578718860242968430825313316421498097441392275770736555550281022985890288315750275273973477180149656712522903758769586791724092302281085763506630777271243324055864256003010887007656928365652630947048483672104699554813935861007780552348937617477067937599696082294333463194308431869271287567402393537126896933577556464218629297427859544113221165717805280812414245208301456725681966496645368257258661737214323617983130831162708290254297779508102969458806108197412285787722821635665809236837656769199842967467777895742217091106707046518745163001216283404216490637242085004013846082098081842666485299953083558333318005045356391601122600757439067461473063454291546560731659835577724424540450968103091048889129310517026100490841245040963137921040645677352605320420409271645848692382088103347895234247074043434901257326991875985181513024425256208676772525088336314883209420077053625002940416835525437880016254428190395063703193705984932576705802174098204543539018988278295934767470405171060794329456049364756379608889621446338448770129810900395461422407123342615548902003756970818245949987413301405616988737925969056235427003969660968406929688643441289336466594134578543277394873944503406974399671100486652009986247862322795563006233063829676905697703341299854510068435137030111064287141610288023943916373865707284679748293777931207687882646301222601905439166083516880347937151475267784527137303299294550094001928317839860607485507838542239384362238672134045994325913190851475344416405955221317749347477535734677841460004435550235271218010208987780503424426456757523013515438155017084458061904350366891326549095762058164354447916633560440611292582523321539650419604460989580650590889505018868785052631829081554353054314424968290880975818748138963166420082830513041756123419185564255992467778109061440219477937778420720450385531661692439147279911657073173584368223487993582542610128240540713326106794056669934830709439211851330592298084153756710358352208076256431439711176645466137717341170207625281343885442366794426842821864415047751219697342883572294990147536604831960500783334546266718301839522979231239587832560652456458834578238450099983568267249049089245117175636251643391170108069132044973251268330673739214663321503770340829096849658084939618920023007332182507652903012156597384565811246511929972184999468394655504105674611820432743518253365411903029907704831030076854117335614654017612813016349944069302390116722326811834073211632553750172239270366268366074585530196862293572357236131217331036234737758031308388403637044676658333247582280472671011190653343457862795810893647901094103099071705004326000915324737889601572832483463166576274976556540698341121781786825808792484125517762098254755747423636079539498591507472576499979945390286371669087270972511316583940072773700773463768572373981049915890586886486840601382816829749161060430128942720860394303928028629081756372051027266593444494969358125243073802525895735151289223873733960869103380198554924608769561625846222631378924136025341228710708549929476640626369479917731070881710646789852939562201350600233056317009211367329893281548010763799208456156798290819254382424908909955699684009180328352194698956533024231254941602995085621656123552359784369576090236364569221490682589194240886435767233205877914124629694566121706927044672584376165216073919111956458266938458691951651924643473484486004529036267558464682905653059824848178143775804800404456082896215978588692740523632359975572860021481145037561627258818282841940995767115025582793711968677975560334142277562964324688503846969783241353977999640383016756659059192837453018875158939059141788985896637834594446672922716077688918089445293633994466647438559738603508393987865930785461212195528171744901835538776364650607118452147346001865070180107846244975956608586598556952412442390830387164857021426553995201045568242692949446688915400282621392315460140641419837922155474506387046501617099378747792359187907400793176613935456757789148734118357271372984916265509054344295065852310926848650319859001753770987151111416703626697672500227940880425820324391220470810349347987427264755182015426251553229503685122938850076608690482220774703879022866106615387368929369856764374509837735702343013993045741248979074182436905890259399777074073233820630148632558035508594559657845218501487659204703053499807100856781122696127032022546932515882404301805695309761785460335724325331727817593209558263233301342569533373381809688058564695588237043244461430242861939562979382774342659955281631089624439786239739736284822861412592678233596223309619150543743326548066958709336385749144071828160776047665472132547668974543227691096390994340876811615970303819198509448493157001057508563448028301540414592190863689727419171850242880182700866334902846756359633140019379997276572129959630836904087804478083350521482287587050337969287625483466210719514795478471077270766384278621677845878893909987069282695414584389426284781974737556395856079574184887004916537196897907119550321023208196561267848547028374509305635104561669367012657029475049104865760365880331509259476828256397977788665650830323155006995577358283973604110881979004396955899338062869483231008053099967442487438593310316356229579618393294268889364088361217973486445264487675270325194474095051217328639121677249602090129602433985495975517063772946905785225631078547412658291875766877226000130946062434868827662382210654902330881616824264416890090350606947858785434980689149291792529762213588249761894240776771904926357036479052785651825162710136813629939148725707910594842066167925893435360605435103564479121204817022017755436337157359243669041286326331549315816705272104761602855729358122767120084531304495862838574022587241357975779835277020884771262806131675843902031753302247972409990746217786970984058885175581490168236271506892885134487808258246367843134206857832010339709443027912687852905372083119092807619147154287420623246789113702573199540275385964882612265098665928303964994977612117225576879271980826877010595436758887080370355359184901622812151797739440292745455239350361888295897243855934987560152801492080265735390695194165961915736082844520742902664963654461377002242485296128247161009409113889743565724316532306811029347906219750228503956645008024333759074832573629125202200292688647490926834137400526368915989236669825619442410823319816319407712729346215079514040703836177912143672712113801387447280645539215651795202790087090847383627647227396342346961439025191691699260917917862572255184646332088374766925790963745756888883407054851504264961921418150265103620838821141379779170310368913199421936016485809410449662161828424476554161051649861264774096043091301541324269625473470732309520645784465384579228582005130481909265988021721439259978456116138636410190151510921189940054485706260443993115582071506434167032311817343296261748193558166056147384940830152575203077088419980628268299730993244564043673904643772548875276368049764635386766237919033431870757566841021135866088227003104782637489449475218825590504716555619127961799720511008346932647750355060397291792583343880906133029905359796837172120844683552151945573679780797953800010396761756452765809036403261455256204921495999896087161735716432455404685998804939697205952724896942395147341081521330763705157990457052462830595343768858732180435676279410750495597217915125337281651558775356652695613606703729244819389607707350444152835466473351077273241214569130932668202775777737629163921855782120502892137697078512549739634424565004330394031262941101728473717346819178137843659148878974271722820714754913239103471121471355547049395072900404154909160989884101761451847880728278978838053496687814204842745801435145821637529885671065416434254661046689105919195302426731286257677906633371951061914080837782022690681376692010802549280280503536475947506821029178668458513387639510763928084445570709097241972138064290016589112470455813178965741835337518681538033948999553492649293449479597129840685019824525518720017479265368971156944896738750476769923889197014869143751478575433318352276139352737705028019098899482824006992028604498910485102578662748681973127122820458447067085442776058415221644523139144147648957557357507459400953855124873923398154193056447585285056417189595869313470343171738320006418219829887107451081054620287914378107555284510342436889028837169088125951604406886522852121438984698849747430394020252602313602665800881432940509677993158467690152923511101205948849428346464645660576713562628911998127024245980838609815313963268281862519083885246337466613218830713093849017817828516594025275109060103178403658423050076857617069640101295562579142775058257866281311463719444038284781838099937831607608614120964595211149134069914999825433977233042856582617263688654865840611217437964146752908024095727164337253390174498086292958645595529398350698360516931442673330377632986831323864052715640208245792271405465663191180637463084175890533799859928975339138427275757384505266183601476662946663133595743119090438276503742354236393838247593053392818773333508751545277870866666354929228736182301675563796716356346646749327041084218797716398138239818892204090469726818338921692648828566552967460809530078370859162535913725694907474082890961392983383551152927124885347464333368472354905386324398599820751155396601546709780427225258014908589690856693960641945310600329585912716960391037183015540451544195518217956467168199316000168901810698207713441068458383787868775230618445337255594905924636372050075857637342041935487315042104527700340562056445046831001437961046715252209094157705707821403413877856732063199697102664108319786282664689339732765466132027889052757535277322673031226180072414547840062922133357380725373613275796070508545750099872204258577884907239611121247136155183718706000990684357861371180371856053545218870597597671478884725464348820902904077126197479678686082820203530769764587640655595833237126711714607673165912999529560296498165286150032398647614775580537693171389962725961674303941667654690218189702269884130812975377349388252091933678287163004435771793304140192053277703154542273300686462731019887327855166021768547136889371403699123773678875317419573140129711873915789678884943748127668688753702709326943468019914487579484864455734404335329280279793728653416599678630979267615889045942946307723441879756528095392363573821589554921709257083140647444986982141204424253837944435503539538162349759320003672854320333964255430453400357992613382366745561294112878337603038814189737159078494228536719588660841621077566283288637497192748485133563809462317544357878553980253061410821035512320487897176586334392530760041512340119101261236420153575553847806162105442501412297196987304754308494357783883476580569618105441718809117754763336280688410188160112337113522794483306018130180547310887730279634688042240680262775640279125122584435878270672008727957087583830031054420048007896732584711631199522861829308647463220219333158825984044818878873780337399428170535441258418701929896317629183309624933436334155743596919914896691336173930942404803311402489881402240571017001566401580974301921955176273654868395261807399982421598049678663143410461316136152281222600384367492664790919205627366628930616845294069139156823936732325516237118205601545804397686049572483872230160826637714053318654438705651342934786223223227894778515429374319982005321443271724076622465904211354801026148289677036274729488410926544640926529640778383282927439676429902121770561733665568531113356429536937367055134908699660811491427855447216667515322036248002073283810277289307210768031592218427948010653783808650450717280778207382673549720561057422402373221970828133942533819312567124590698010119654458497524839600505228210588960466903055189643866045293357814592059461625399688338273718254382257805069228443838898893114390043643673686326061870716195588786092084532026779931865778951656682812563171110074449622460349673732889575331285465343323450340793751055634477070790672549183540382462468999672894737858736426289325796682464860044907929942751608450330172309624986219270172362152374111535951152817722273995243044390890609363957152559343986366070103730921253190972713103591517044350273145610035174003310220724961835181822897956170196569841158302896387118200202098054265299269983394638926530912768892032078918961329033925361331949613076593073482896139105310320733176290149924504219477933017244728033064192253915454005372427261551499199699831025798558609622658831730683137897081699615315102872850917146943589386775132042744312195409887496547246755049713232675732880405993554344306872907563315727016023781682418164482660928486038666993752361408091496174455512523471752010110648588682933964836438129569570937793041077548629703023650903829239526851015624222699764208549475606646846176305398125663607930832739952303452238033221601909129535057916572478929780324770547902286611898181950403215045619949208915404860886379888349641161436257652132083488180989551118256377628251324503782596938749492142689123864871989925865019997057982031033241673492833343445018482716986520063427401853116881405965720281836802999172149651405182195482423463355314083189294697958120620309679166492519090243307536597480511955312463630137103717843731039793403893680081512358120365308404342274391178375152802124555626077706478370177226128705772243994635540476491534697557805114304589030738999585296278988240469139811385112178785976820832647233143280269688006432959529913614690540878225711581029368574067899575059078045787035643277339897840376999497755927872115116629362499475059705901265026728537677151548546065050738861365902739760847592631602708254553608071296591526891382016072943998660802639176036199974594446720112132139529232415414847792976683933546257079936187492616866509838434279067503619884587721902513179572203989807779164265450891833946425569394922456175826553645533406920317927903253110299504177116256733096888875597016814695814751703173486585726504988309173377061555956487287703256982472990394737637395743956217388407415606439030578648728750058090280780835896047623600946075818344759272129689340421000124915995643646207180515853457172800443204435071671224572003244200324688832189754414840358066417008249627292680781633504606882217248189823178041235970889431549326886326800002093402819337483811080205697583570935743067681027051949707881791058818872806530368164693750212320581026042959140338914827430322931126863008937167721341300178662176469712204145488916741089191052131380313769042497833651990915284936533018568504141147554979456225711338355393410771744929399724155965910126853789241910731658378923594267173433315876796185750524803513875009788856331428974036537773310542554174066867011813311886950370145416011061653291209529639311672624207142309229158332976327796004662594140792314128835454993320487854304213098296884573090761242470112824149857234568379751648280599712829205544433243444777033508006143047544214799754588189315837683336233314227374125095734085565621227131079140397580159460376715277356005744651482448203844415038930460675711909454857056040854504568829394640783539224655276702752947595950433620885275785350650462603154442509921607277352763450612141886821628382944079259676866140060127743713475425057363491935011159769654936071521740065575904183107176170889409532789873667894813794999598093315256019242882174039492359964987192446219020620984459696186964378153350772433604447616697886317871961105011315365751982657062035313614948315121911829940505772186165727407592564708059461650724024110240220081643899428561028584559476943477058165161776158904838200496790614529067057219869691444597966652747621121138169838050065720002379722763320405773613132322081854021479506802156433090486953975930282443027696117291109912911793262939254039753388581309355108377455118556398281897374984258442971696288520319744410568516891778550362107407203160356022792599188558746161693317007486217082184968497071196002761425696769908840015058120361832236855603235096102238590995092139140755042847084494508232407296703338234986392478042160449450269471280219899917989543371231267525266395027483322744832781752375667335560885452823830969872904759963830068748911500782414312280775756018607656972553684012762116694016846241814501670341933795556418278144485821797527297541571433296718248357979255405645157352283881872417471068869689131579830910457546314523069626833820994746881178652192919475639740278167539637530286202660037153420080951962663593401944181804559652601245911929475196088801620660247060193412918747353251468556995658212497234337968041773344482075100782044563325881327391216554708565221190700557994126417588116717105247032747786592344156881904007255645368652701920849821117509748330945522049171038607113015868987051278420556838846427818223371860370136649796503253337734901175191529696622916567436842754526910948433998270305703784933706466442776097142475313988027100014252796307834969949416117203835122155114852598001016442638100495555570456006484863027519619912600321871755629940001238523282509026995085802332052657613941432154145050949093114702845016732033835260878229077161019707473543557578192933095101086210333003778685750658093228993327763754246022150736007531082854194735730008602472700362500413429355152300169018243757837105859826775812773742100868630521878862016216487245885456599047156075506518359720862101267826993408954032648600257090988885004584136874544952695239046594009524676509616386315008205388805355587581340162208472876813956836542475525637165896493372246187867026658939400812859369403923695498624608430133039051248857637735685687943539245386296581012904800632161459604145556625199060561460075800017809081015213619614869399228884834190656024506549922034774715809404274425993285056961058047882625251500936099807450527153405976342962368611309760669104797802873523997336077147304728590959508558194983350673595973670936902914124275306196642454198305752631918517574200681448595770639721503799100331343148725488942728862071046949997005775578718856787573982751727303504827295453691058909189043115621798058619922051543056379765710983456429067350585063833658280634294156312188961701852765039206040088040235688083131495919770185538411702573204155795495724166593702567233019624759124691465060699571389280895080110661850203540175297410214833713811014378058115429394177209791463732099759234663086735584103865782352811368096114432500417721018460773988721199153805670126943884719421736469314815440080767506140304700339683052306709659351218643730998758250502404599147522363570057031066984549256490560080001483241339185137136422422155540466962543335220644056253514010601720366657184085526633150547250253701208196047495539857123096385641985484248151340562512514502257214277151885586777459720520276443662399040823642689777346959657420072191548269354002928776903365712150211924915501296156855707408987452638836260559490253873813745615013921187290178193741983037607862976400275773048234858407272444809159235247858056045018112500256885538664117596224492880030872888280095521880530908014627485309582377686480841548214220152511142347601416309423971476621329919960335030429433959304298456710466279438497848399462961561357521291152650133356503516830390800221130599200408482293540352270748385437670891071635978095891851637517466146554810871511232309315115651845081673955849951942411788957942543009001493604322862782944173438981199580194787857000038118389967655877384819251322665197197461285597580950606373387694882598818499204743802311697128635193216495027657542947557178719098624381320227648042465036382952757945069240905091119200843895928049917861626842800885656395992781984597084646441175493545624797408970438363092501214395649864348469295990754228770171090517043674557566200401400487254521588507746464496922285960946706928796493412938746656415094834083842849856320159947952004453052454780605004583965304659551977476928687058415616834396245843010283407775370229507095851682007536170210351242951882746052727984420517215242492221241210950105704640352018010467984922157742550775117166119712687953796588786135996640987547973244628511838744550316710524039217381141389645323525921829281220102767435156172013797290478829425361500933729354643502098533560861479702684151424292003498026615921682501706177858589644929185312991333639033845112428876436194134738676396170598342323942198943255888110783842066051407210712212305454223427308769214644860979957637002531569940857179577420954731422119107651899482609604766435725665247268596852424281008662186655907147439533960723889896125598774231393025891391214466409965927185877802151821012800307184964195665776539767947899823036108589568924075086486154537827553799950845303510355630561389927268962539967100641928518744267865586731021023188640218409200011916388135782109417155592357952026181088084141467188965554325178609946639587675691092037671449328858853636484971408665739611295069302849448187802167603098151615110484573801302375451425377463270007802258768203405942055583720936905078447263179151866542859257474529215015492517223552694576099521761117613774900640014493912358795511496853966645457186038611185933967323266291422867929561901929162356755413429465788949729487609600085834713670303594074762357225391585752020373012107693248308806231240647462485839157816772180918283303383734196257713468876545209434401395692667092784972544225603697303922043933583980403889597024349827065122443028216039997009895148501091705044750424702743622883642598539963901511379459300219560436376344053508244700813527364004844662363580994016260556015094268730760297747667775175136700995708540952019436462290205105680481862837512266810571206348861504247151595134436991404106229168145257674677860120491760167366859963483600141793505539535545469861599701598835017039502426010863012982608055611841937133160696151490314957349831449776017409099590071805944163527002532509740588869852786995114372930223976243303963195180990327716779205877804530854575999754410229612046451344095503667973860372162265106579925171091713289185514419924903428937190036998471421668103983435919541729730011699813554830700938743003341345878083321070915335805361702862851229072570968843623635878216269067358630780118656456892309855632730497808312504176855040929635937216210379770596489217786876080162179390833628480506990889197206438369143718464711178154751386250666910138482886956887993974877730617408889622661225621085173960837188509599431537532945250402146964988279902023696930361646228660852477254147215427845761414439518341557312997913254563385468107526948844223452277839332203019989564349081915117431617391960963164851879698546553896557175322334715014575526131976364906059112467709714767349278211958535492527363771373574624927854370956222520086261348292112048090093744623243887005788000623737773209111526940649413338538667508946202201983175234499206896790662675172401178107832646862805946085121968546661854100860430627576579217083322949997518784008328687126006130719190750083100344427076285020776597673351664326758262959121108007855950803740871550136043546322824657099878106234644747681940759434888823054712048056391070254886431780721570223858976924817504841064684234440493648201621343310464541148149589421607357997532249800676700194249581288678557005468092290615629641816006434871222203413950785288809973104235092648604610821439773585056022352522260452629349655013482043654162064903299850082450792394416956718866724086431266943166262280030793627377304802648159757787293057846416552229235348511342652919848392437117322083809583737561789265264515831706617856168987047915543634954094250267563949248660864017899475035529133041466739571523967015091020386180769914431020912589930413870655068371924750072505596836006776165591075215704462457051613265237098837276067285303998434666322520686920146907290158517957235886001696673239366629250302688957751619461389480407396751265687975218585004531461412582932749544437855663127745200932255554905076350131019628702465439857527466193595200887064857925398786179364557303927449862707919448291644871801954031264169399702097481345502190787959607909441701720098620106066898146148624383425888395018717642216328052338863256183302371119266369348463206977417092320926647740588130297349628724066381453689841657806272973012638673742126718851351758203086033945837404532959416840148768194892800458111005834668471062871182801229551633562980382660017055655291806092132978697127775791563441275793653741804807823700438194020377780709457255001549856346629315681879413534162720143340858926749742076936477798676205943966776177808953569792924807135691952327043025742256639225758437471692823722978751876289947029840051851454876399629800011929834298070363510309542734963139264961494568471984163806795365859834733886038964557392350415720265199491088266853997155883006623512486534354491900945016301624461437375155667345043023528469127716478211855306079269235555504754251315763036414044477367183803750786327891465502129801217243586372671014386543662329342277678549682363497600246786998369132255531373275583419149266424643614786257321276675941115769519126835412617044444561021023277663396330831262537962999498260319981224948134493011449599233158870330550755015140688340357879705612801574636598867001027634204631937485487116132739964478958308019413182028255031919272409405579369920022680973397614513709427274075081623194966940644239284485155928967649724291867617770438575247008643302430630752511441771651479064322452869537371293776595857664881927630559240135219064647611751725284606758987663538199339706057613079862877276638869281675688888114230266276643551763949636633260802857142191515452587154508706243232677990533633155502364867795680244629354267145982848732414194307696354669570388955729398261533514294231438221226766736801263985906268981711861909718989369116070442942934584473992933747514147076692926536569373133770908975782629796411603622642549112054232625262936293348327575476180793499755626576732641644725877292075084464719313200903071764452572786729086343661924479248920071396681221198868513480358825987017295652596362556133012645874316449087862479338294492605040021403622927565195371792761566396120148172166960796941483775303907594410028436517416574653500710734293318891897764477011754821493536563112373738998820560870004795374441758119822961135622851020293827484966252933816588584141031488955961379581654109042847740958017986428431540380199743006556570293443069256185351773051409538694469560815964112431238931448983051770558267447457180619371349528901499376991130600200308448865652597184568028231871767332649915412485504897007296940622941804331283524969103802531447006073970096212675558742036041301737092527192879039669666762453416585821654310312728794484356756787762982293943706337824403120938516088199349919258451025671161061517071620192437397188734662849144874229797432003186385576922331888124027169731437066000383855030813181472812306596328978142298113004507383792871275321707144410594583963235611152790440577379005648520304991895872261579096058736224927130109034497319810945840285242539475099973344742826447663046558521140103725629899497138427762471669997828997386171772052517855556129767395849308674911955196595467678293398425278746586683994792687379924136259869233428929155288960190875035884268665007551993260901714297385246022296315496175399875256100445092124301859869808646637973271989839889903736470605826735062294401702583947129045060608736879688915122299762250654006071795061951699105762869252306959398150043367119535165562169973330796679557635048378766783110182768504850797997686810774598419671971326407311208625433655074867252336011887570276037231488185242968129103283950181425004542177682413340430108199523133441420093398101107383993499685696290020719399273908467594799678651032692175234149694465193015737595856259117535229137116152349613513390184946113714113741167762200372096213747759239289635240624485569063109375352932720659224804762475992328156821160751779836404606039813355602593948515532429462630257280470331003204069540437572196919166454283844450961048670868562571246605033783583934707200630326886307326452007751281957399402541207137847420342642628833447859597086968900100335536164195102613318102650585450738743447704284850679905767679766100637234948241121121873289909313203169192837697732643958219429028120253051650395565380356754123623586897023559778544472381150285840813970618618210995533479532376525945750945698782131973725140891747823916751507732364562346089930786480720622208997111039697323430440624419113386983134353170396251040847647105568024650480051212766061022214113492716197872669615018697860031410678226067205547950756539717656858975944906254488384730698547746693636575375657694093543852738498479944517510634337053845243892611956429231771934496964814414296303583132028237654713115383464689066249065281383695129996974084332572360804095601899467564267010673162170499243247408516875492743794649251693754797339235549800300888379530245794823789869836272399881330780379926605604691321112094494980514996382511883522575654430024706644945033586154688146108713215552464137054699966559363010921359725423748548167159676136430248911603455960980401210826799443005912012491773386713558763328939210830116609320671224914611825850687534387793423526295485460350954107167691654132816742433400699249550602562890863078669768016369089685889133408301391404073891653808255220319336074772189938138358128168041512248455378277009226098121569081633629674867905439753118562735810594209602028955392570574943570979157852092198337955789488409569206186047973601276279216711513606591099441391204421381944012484219708060779074975282164208133110589686403820584217195887154800832012502671651467760911443256157785233886321459162976132552396865456960766860961441539365967257199112373003894147763012524551711861741421872651830097373537866815507671974979200153370667653013074192271228547899568108493522836882755046461011091440600596107181437029074642585784918041270350586057882543559304814323996469056316668239135175141598117510325643557613577639299816586939332410840300799606019187553132846093738236031299561921737497847656774128462982012687498673610762155723298503582912431169570358241216668194935054363542819562988487012400273400534182955636949024028085776768527170783756139855366735223895717779328024417308377878813104119656680845320394928784300643213428179738762057074492861637367881909807774655425465181886670572794989633554593224826659293766400909201817715515402370922737352306529784410758870559083550254222587969843105411579415592286365438237168461664598606009947106695876218931951252309588079063971213448151337632035222830541431828878260729853748782806501074867029165609290763916104597575122574876818979301462318972021267623693895021166741949958447211820283569165894876815516532252221770928811429222942500507324021242374020340175141266873282794433407317291839443378446118573743494368046107269349600552124392000766689936775008738644228858700275147093540381394185082075045036741968691965868923609573382041406564259415306831554811071266462264245666209899022293019596496712412063148781918508504376850972829661795926605139796340433276614470466315501817262066681064248660208750699555538990672626855658386370831938225065709670853655826694215737693053886915158168683822999159517089102649208288460861675158814705119428667576430372630425267138064991922176891057289226440613322211053005145596854418087662440227322270641009103933099564897833011554762618115842131886120384482078584884501079434955739035869214797050399236933520038252841334558688540155185546376721737605167930888747683777527902258219475651290519669431084736560451998485672416869729288315046223479635600669570265926656401546477307488039679275645143949613405183571570082871809494735007489355736750369087994074610849851550281358828272066720695958288700976530067395117362763248391411153559326792646404756070510054157173251050140495979703666533462766919355025685616532356131396717077343433786672340627403280948651537342468051183021696792338418414837111492240857223258080746836395429449317658165935173626618365993468756409985655703416139077305298368872339351281202539858508088084665737466689323941280339670287690261886963137513394287903874869465755760194599216096369256983058735104747013346065162672718810709070508871940769057652494377096234269417850835379933504774973368238474412209517243620309988612142159670708780861866285546886380439568994670297237842475197002258533492035136619160116993071976442166357952684697302575342201895784911221075823622596372961314963368679267178837096843040607710809160849229934334925961185817491944292240116159529252035546305979314766410331514546452937729190429080233421750234204389973664115902286186426277178240554804250282870775096719667001323492771229956542584109656913095939051285190601236957615879488064208560986598829867604733058932473978848005882937612018171867562830350974115244537588771829140692787308499809654855786134196001728994686348973816705931304616172076045793714289272814001774373317063507916710701072504024210115847342034335085520080120924175793589976375113608116195687179179909804364833567204417556420102434038172601755254456279997859334635130464430967080168172811764237617951567164453569932912506993301568581627932807623001104531698167081049012659524264647689023496460791558539552040851757414651490334575850718535232497174819155228804359857604413755182658122669868497243077225061299197149168631329682840317840201103449928229491923513845419288935114348884645863338433408365080064933818158769583634934490006299977762651985874563957651518276120724542267833385281530670054692521841765919585160977253634664603996539879102499690252301948405801578737634008942706553671882938849552184728836052966596093790181740668390878907267431094324214882009599607513130078717364279260221072036018159788004658437694763786533477634220996194229489190705125578697789027769188353867147819833278676975733156191834628763364175711848299136318381206024296544983352664783773185239484926957905723270150944024808314260548408598803865389323954138949616976514831750938491193856694076801319377349209942259639840141292633145426826882433871492688962964597995715763051050162694603216346571140494153524109440439731494384139214372605721802397386721558955362296900011865769646648644194597096236227511935361659231065495109494812058367349843874149862733415510220581848277034601850004613499260725794575863883440339281395033345418905355999354914133023487098770166697315843481740932514511589087768501691157479949128643604656412030532109611630857611678111135804265422078776317293461762125203076315425404789814293002584284935166905738627408518013766865770162457782523684509986028335337242614376595087420685615972010120785978489914406847311406112573290524086372534423891084448507179845041206455251463697652749372311998974773022243751803457659205770386591929705981104289719372029702820089156863783778869609034789859547822628336183342973971599105069786609000870309673710906459307252969959448273535343802064753994938148147697657907134081995946890108881552642423206330417048854690022837399631797087424497210159459260166877588553129003493619081049997642213143108019877639380616039145436020363920333275346228740547326202647509035829735994398535367146814919653499298022908869759873451923719024589106755316765899101164440223443521174601400212921089186768228818733445874722823399513188720577836443019728765066373987247490584015420648429002295018564517978693662446157640157957009365737207747274062208317634970606942776763524081845287331550083297632469674529311940275306794810604735411408362550191441334459744913751379870344975480472944334942033657377754152920907901289228096438131697333361099683085298042348224482381386057019066966338397313762803707542930409119252995844272894272535403471805570918201053162573122187438541588231885281986262696189422252139468615226169811160782602944655370165626491535712408012748579340452390430612264363815345533302899329509234061522626763154307503903853469781193011445844016119686780825166651890225363781768320967592292130768153153440493232126409136951755810238156007833434493482472461516322094234370506141423675273176148579384928342813800159828517946035297711603824346953384273374896591791178999469387322847374247808617158172199841895540163572745346584948292050754020232858054510107573698468873867299029300989882340400387258928208162982517292088479206490783483825043428676542443048579165098925769341005627457018988305265532524094575196915733773475827526946011888864899729646847617253642760322278127285125874805416064490325131353415176026442472639569156540645711962285504634843365577250532642687197789052178729375434971517455102589604183070025200162158929867119336180659291516725381136162423647526232950572836661668034467512234808115937453137842763074573747109401651216873126468563886511258608967031263840440211808251825032397482088436062298467661246832768240713258902199610110723424094575872030975152710268227619379373997718802835602453644489544684892034526633395310426956126753096772566513393361067476766580845339797316339310638386255118609769670357939296107738417800118725386135902656260262906539353746762395181139446613716910520293481211986804031880043911434253270531711279245699609450128226830434386218880057469160095546066402745468560067267244831250826402588926804365743023074516002868740428366206442140262770148305618522376417375248245774969514570729336360488080834052540405728499336946687997741563502881578471428147116441318698583870445090648637008293097772090899254678379896183498774365619475250524450445417030986497460157403308832768891977644083349851290643328827296180381023488085413136201314793051968134176142480198754263710811441991888377490086634476681953219504659329950508578248350581113411665129708155532565175453405980337373582780377166550079625995486980182314882657738651961795611849776025236386196717472061590469466040047113429082899651922112121399116745933088785647657565269703699075824724202065643150780143947971537589252268335189049945253636542404243468283443930734899842274440136795485260897050339682483059844972120975035125914037049370445627158263305199772875621169350213712028236109382673642698102842940666695167375969490439047294450943870869502660632319391795224740936170519725171692807142180377770871795874874488396249620168025592011555273634675814995749172529885509283192701221445873246836768394363646012767927471712035207159767042517802799660341326509362662541180923347318724824698939093195606813425706492262207342984442849965766060051418973698686947368419289457257837489463009211950499749761471916722824050383329213195182984047372016209005324455419806634742054757881634344766993940353852406207148650846192638522920917559497823155418258436948538728753686272537826200498640812049123490066646094424299497184158877347364700275666542370073037617864818013699225693439523245833679263991590567309532301599122076364077501848775627431547747472531521029539707354928213465038690995559766995000564073875803873005887147166437409603543382540328168551400948093272993955303080629923631604899489258700623135302827210561316578330922942366221660842786539873815730022601038694049017394692472772012883690908798523999959284113533228791786134071360185752720858597732890953084522462253965927003764113118309090781805368643825267921602296930972755195700338744048358597941613867573374868536302249263218365801290845222891465235604709581518150135742283796140332537905470924491163733412808746512272403475845571913821711894920650046188057327539115632082330019490062728444434147517351170110654974727900535874956023942926251241292551457796852743285641592641197419443431410475814088343519292219819444985758145704316508129995153111629283835888487214911860474559917215833305444768328575005569193551334320310257533545399875440197355537306713087444282286189781150067128054455725459426254352325892110008420111135631757701600427216513178777027718417692365255376269367800290294835788065855563039418703328881742773805525000150230164828546012720326362612562016874542297585426384597543012877416191549956745517159203479377098968781596555629221897736621722920482931277516736963357891459591219487694082305414706971233199287084249682127048259757961930690939839232071084399794176160427181128616529682712566533605101578892197241369899198001080347143950046221888735053943570912969108722408714765099840599821926018765946535027818143468007598745237012542345048977372681523203873850123993688575270139713564060415909228315407844133844032930640311202660702027229869240095855435478616939631463768926536464635887860292081697556960530043823438383367573751196641628381026992159425950981291853363672166310496250086566084379260542961271639517215693413696481508699085336215133928141552748539336245673271843094208514867545373627415082592389717866926983358366648990156025872614860890654936926064258988595097621127478782485316636332947035761104325271756040417002841185349311744608916214669477598172505468552204081145881392731847622226172927924514324910494588299783356374834428014337572675659407337329128070822071613064772083888369026403991740459733679019792981678349957876968721317924443283106979895906330023355508064313431881719293341369789401157708607513899576635009580691549299885409501895630620684152927815587648546056898362672367414776978097515198363137374061906335275436248548371461977634792188346404255885429050720062057397609858590327437958990645006480109172448325411839587186772782534825680535955312406621500229916832733661433806000371688773972774470692549963497395032157695380211008583221741142937235377029958850948072978852866873129195872269783109910280616318400108180858126448747933773469683547235514197576955943135460551817288619813006655468638182378480901271693580108518584266982453438972741673132606712893506326987175891217610350708068015612465283431960716298889594266267820360936754207923970787423017734528576410720218909203872146835716345275022524044357436778641310489018880125929140390814924184371798941114400458883090657894431370053162000451144315681927597491305903641960085761774969825833783100440358273112486333503912100520109737960545026710781096198976332350953765672554605769553212089384305448998129928392486109414015036827453390311540658630079408856439551548957851476299196004915348885268985485550531919452928200553650283250145053298897574104101232913756511393917720797561389703494088248466236367202540450191755986426615131228745765617704535297038449393269637088695099920983367881320029110327267428499441045326777808299720408440911454151010334984310288805867126940757084421754481846846831785561105587958558115793257698147508509790656725428601061626311283594938646602310346746119306159264370640236085437967173267588266756782831229754135170370125174794656445600886241301837826939941178831547562530214232164681559938423505068089922729066208829148379690629811566528004664315128393492692343208065303840108143296838249938429366691160444379790214082001611079003601236086502716086500279565798672402062549538640158033089015615436883674450012666808535563207766750761044667345751580368248788331345143766392365512722281790674327791192883205262051659920871828194561088644684022082243945188087556904781492454916568779593360194272834651691958709034960596140582386760227049758448902063229077690679295545667934102095973897951772908270643735076558553564727537266583451830176654495359696198413327783627104202751316392631049271618647357114457168738178314480745519550033761150649906349836940700375245057960356170132263063728681362983078801260962406248129966105406758187700611265946693362052872030396393522518964853074356358661416170255642039165452570003377790089118993741664098079778255935699176806548166027223885633851920330373477078538580947334090141871465787088817722366917710316685537892040712146307908455562729648045974166951852847455002934274860728519789286264885099632976929390613651488351101796160156463489952904573770373373783823832663145839589278666002212440790721142105781085714908013536387470559138720566622117269710523073549787714929697454571914756604013037993304670698031911813150757247390385685077320486217468430851863968659343060601798420287371699965393996282620136154980349073393156916428318270406102627239515800040216739980276854000780302844475623869643131223891092104303529719241403244613584604233500365410242891430294908146262741662541648540029667697607417004653042367611311942726276705112748350896798970274420290469088184982210452607109830933530449382269445332437606966114169157572495277874410493434940787021592936013787277402165318253819447441597019471551357550868252057596013639718906765326811589271657170421488285506941719119535612052093965534090785090244704127794745090820042054756148822034983953295690871470050913814049379794752832245631922603735412725485843587219802297687259791213217161534609087069055207204342300428860990660923998381873288812589982935541798982359580285641505370878018487125828928555172495454018642548343747842427679394682208374850414219627243780636803759213765015177584029281999023836808026761630463808179809127839221002643787829425171041531588802805374849240088135078695606922139764692654952425343745256223406063991837089012060439012045988804958098905057859628149078837484868151575362057800632233792643066957536332820504615781100267077765200788917128256069229950531283018902130540565347588504413068420252186353117047955495057623530354862432685627030616971418981930783420992988077735524603569521820287851155973164570986031666791619167950868185580050781036581255198592259785832804210437008663515255503326034732812857327493168804580433816061091483948675460371360652410742081122924305313622453812201279571327030662264823196573705565066772483461669477122189502828881599368380639110890170794514798652873664176940642898551070581564748195948613596934307347492020450560090777236693825138394301662834085793284700405469204575832464484238313905515389233236008705402803755392413389361699690658459226792438718791177426094193195651242523838228424383639045841939954395537728147328952853346913925262302697244034445862757519145902845193283540023827751811055037383864024129888461970751588107983161740997236717898868751469631759515609799983527749001071395612741707538811004397794785176138991401514810943100872273600856361890791329459108073631552641662386673461939645606469670249173508095374457655770013026148873973159620793670411624900859250473996348968047355735181224253970027136151220840655829753464121423128987301683138113498111388456056104989709799075098760557728624183752051101356319017133491590901214637641790206183599057930906270825277027921665848859809276913868097855282385866006859118813945915701645605914010093663021307263585954677525820249303962643977531533340799553472929745406722605225405877816692533524503661667679537593149754857542913822348781204764386119963165320649195987423891863414607057145814251360469515351554561463529021327879167037583221215012504878165240542592221659752326970974763200230093814177164679597194903086435965661627003325865869926155748425784373650907926793596310852259792206504199268843525893873839303008258591816385352634645099310085692842668310790182213807530573689858285577819820217208669157683546005536115591785021239095225682120150383074454330389297169333162338162791800306937253720185060180106915603374643168134634380472179148830817901702858790877687051897958031748179787091589862905395648625571093422864033496133483401037712283397561079607587065037969160795884043987470758785981922194503008373897806254965306116147636518720015089931559290488820340540115702819145279795936809482531437290977889790753455376879364115445069133227522192210355110215258299776483485295884222288713903065073156635226523742420316521360991263714238138030569017029537674419874984139394458382248404747290617876633422873809829632499017404635875617620129209446015542390404147492660174976536544817186773293461882590736285447686416769239706518127465442268156796891964509469142579088796937206298854104034699648598245063372089573921343082166796946438795850066577270074582534257999152145428354601777512272613408353503889142819838234978024793037779467619105696757782485259755558511674643683257899424582422876366549373390258135157445140548078510465795623847773992738694521527389098133023272020925843212127058922718906601927729209147841873036170468136291236718207332379809112279561454647207118722704913103431719931173358956832724319351196283101872659727557347081263832436939222071247229250636657810285051525201900769265821883535212923450875500363151667234365087282050445022235424116297250608525474836647232433474446686101127286732445740585803316399107365414531353957642245535006078446178291165666104020873651736744968957965511557639985618939656352520513474835891773206942764979698009255133661633058291959855930921149195589417673208037364631202916340228017765247638143450120956989929392979954216178519842363633051412555016834160530751705842129873441129411953709685685351348979569405977409007206305596539390761764760180421208557088035556356752614497046634746050778950839968480695541549004850007672768312528950412623602825631121637077762345672371570969002086516194153091298422961104822607880784551258666387620544721743865347856230794785446856138784727505243293566973889162371754213682739558344610022988765804011304759899641197264069796709829961240369721807870899514183400534387084628873609806338346618775615585746694683868345757285138575978174798704801560234624971209120801324372534734146018110628007979093305241077062919997724542812622360792301356248403477103094655678254648788655108823218604405926269579384258558239222982036154986227927059549303133910157244246017346132738986704536160040318927399557232875959321895565544747657369876721758369555746758981793511643426254610425108299310310575813765552883022185361487941138453940208390414004449857909890046269143917367722775414991024609858257264419741885555356194698580848921344512722948613562924260356158441142268438710376844123572695509934166361633865776141872080686201190773526986766534970468814109581081970633181267363154444098543835760052961514708247855830820914635147402623480216753174601332108772064319834708598529362255752954032075754783999702210466887321859252420502539558647626540796904063101434629833599267097448085295652936959056423437348445130431339823803016936239789476471763308792285962156836913889887523310988371868170992119373614089873969787899765771811702636906771655216851798983515694844809341277587852683497624352679956931674273169331931829604744827945838040748023402859001926210800359794478317961812374257895376324755991098358957273917898690151896574045542924183749427898699423366332650327903425989088783247850212220256474064002071949466619756042667643064189153346429389404837093889290673411362256648452564890596606308111786515654179798718801308367969008630740378693243183479705663073997154607557517417502243343600386097184981041093964632420227878958964496740051437543752275256717455032233542942196345829962055132519639756377869207626128400094832220629205677724268562147439135063875302624115135074911315485263858396222490973086988462835763803166729387891111197080724295876724678620933911916751715756169623299027420055385068495481856755112860367804484617605810240532138343411416914971996107157381045732512699611192328210854600939508917614653145169777652256190349540513911523077575311637172418009891335618790665779394930233722818150599034386485236092215705244606250400531683086297018333865256885783775549461446976464856543749406132838088547830718113968088505780137729148278057590464133679190591280562229191765341704571004412191983030527116604056500459515107602945448809518782767996114236742091965349826945240779392945410975882759880108607637889675816325258616157289761105352246745330078956165937789317179210406168975666465172016070434425778870169446306143592407321658354213169518774898211068643460649367570059560481298337214853060847671479091930326437400873330212915500183939565743845111464957878533364693978091215851000138747682594049275062467117153690845053937335217780720531805645458902554475503788816961943246077849545849982431342322452592738212328477874017141814217058689909552309164700068723203742201005983620613044193806524845264589350412319801744597431309652823256015607311133575930653728680317570435522825491176091794725775626850625281437246320445243738809967494181599407362041078235637306831660885922794474276819636237919346750554995727368336802366984903728553460707275621013555440352284629833766335801154936436598470009331657527517634655805665397104314512205871964702954019101807688516504706650927695906207035297201931210374717185119472765573287490233244041552964903358116652239826325554271293014727410111657421228883025151853076437387414858649840965794512826194495741892967249134439412157860729510611424566296062783100822808104742211900828810300223650242288527426160998207344027841375905431525895239206998322490167503902453001352496287360743018916142239927869835213696576541524886927043595053371365222567277941939813408461510221785224428962996372225303841117682490633880660815564491457892305736576082058762614977678419849849700757571294878905932034480827933406980522890399900850352831346811790223663924039491388668730678447345683615003154469821111357551736375919831893161478986345109372055052964931626970378034850776825363297747129511700998120045340757161391402849593129913373560033093823388297911886770804015726756480517426844586377246970109818201839053526707237756193607936126613636057374395317523957781052829434292681472240737435496659403848789922678876894727681446858879508496038225344835112882217306217715065174262457492994645680515047152405941142070828402459964064132877888533527693012075994320875274682580341547942662008476373275210366377147003072245287225871800068960783286245699874540565302015202077236765208250739209415685999990826784376117124185348493530780599479632915931609102187033033067575540887990076036837531172150335682144571083424389288720192821574629103516511641199906153060652594881031717007675725238502942962632035626783142840591901695188459590669465250030307208790948418643026349757605842016468835148618760906273233590107184081362590231857467746480577765523005568484064932177980888400203821870870897451312475668980683192605253441267071305301330509807125679374512317403330636140487650965400117975843240078936189328687598733743258381111637244086097249299856656689793700388928542656170673766644213539673253132031522753149710813791820311626823071543272040084764558249075877249748107713809645030945743241213509311095314605536361344863374059586225094282524284439399154858331126135978757567497025276962880641336766081610169917877294976132873006268869999294429329046933482346263221424222540444014889989301403404084678282703695195269421925509501745158897452022144065407206609868765024123496129838176333089237737343110403718250372066807617717627004018275362295448547161930590189530809217691682339889623796573455489405501818951921321131270554081161841082664278327381227203199365366040036586254188163142064983031087071423085904929535253265405477132321661569545739583273093921937601195282711301471257327403524037106425486909079683517618416456352123534028491318013003741450260410939858583067789071290098088102056163202862035157236379645844206468236682930588148195977080370952378285613988759135439059414967841659730292048677695688758003962876657462877546730444609270082836213931266170972651296755627719413273068338168312561953741535767997412965397088462424152360411574243229877418744550999728312379577095555311320394782916053971287765515767416206501583539791153807016490708292962868061761291267337101824814908319890384918616114046459477193714806109794411869776410097515334319116826564898015091407453399157995265232337988750284907363440887922002145721597418565061548163046427253682734255230722114542663293851216960468463691628600958139703764587344238833382083142274226796483781173395998509967496352674099451358579404055133025775105234467957809648919154339897661966642625154716221619533688614741123195969043587269046683341270746836732832832421899957701246796208883842854289836056400314458457680324052606933634668408944847475972265988232118620597224045842684730633894222130036610757830714355240109441896844152402009093683705622262426276971625360757090378775756603185506537952876122472141489299318234720886668444810617375493055879002551845864915347325451401948833491425170193649911736752292422027088035233242600661645431171544659553857185319819384952806285198703488745227127589746797295087926212489125643143619797397621204623149537379393244438421446402657568228926276479003082964842142926603877392438674919559420570224754635265802719609590636349716578899873954440656593343432481570413844506976803182239451024050908321558255489280280392579151599465969409468836722490124953988454503310774079924391440260391233491398759723249044649419795252777476289950983041588219025167687677788275384330137247799489609401068874258963702956814787708528142458259074156286668472081867991287614540606198495535581597350535399860158347221802202429087433829775470971831909124263208769266293055667121518195231466455377175558842553324921171447980880317647979720456873435077677204259913975036211663141752769205142088208203846447726345180089701504100911981629493205058054494568176918824216432864669762936047951675509106604516290288145027696212708654663425169620412549049014823588068229330083366921525376476624506928000645326287688969111045291780337000884478959877283934279484568236381867128919398313388695846359647195657953752869615213338432813092386123767706542597278027716574251730090715570444540537286223740243156899889984258554594392783395319720859232925349156440312333982676246023483129822358380742896878929519854028557447252146650372762018030772532034041232328216251017127692040304663919409646845175962992995740407179588689624226454592712993334637591328072694500620339066509125775907342210709329142829441953473739653693100429293139992295583526794597374028868342138016001759000346389834199762290702724585656610997084388936769843247757466366877471164376653380564537813333144981581352056410145338244637024690439878011872995831159118069616372520185965938410545323586186181370479402549853741692398848995072525900082386832625583942236469222876770003692383955289081196657106182511655988766714761812001451474142149136857885692384806214883050762543840320545060136427838472148132422388110256144389359628904939260597269798275205783210634532289375299704971840073193382922575626096811144897603795010828128618706234760704463325393777156049285727157119027418254396880612488671974333946073535500164551910806052001087946679015094263780332397823882379751460399517991570605000041743318905246318244009947653720573713546264420509590115159489522552599704591019772513645899239936491442508346248683992923204429495511295963055265699062278937192339546222526149133073039742969310942826676869815731997608079585620758128640826352163528851267064340002793726422487242879359023747374260547937589738776100997609056713088250986451844079933776578761086670774457394592759966498819677269223192061057130619421283171501267169702599952619325538647053027691345385521681896669396246270502805872048068384318875874684453237818264161839738424898790792169750769302633820859568072602559143337441909056724945858570325807402042073468523825098838269212786937774106090931930887534173298734750947063282930219614152574608668289409810800124325944151866953283862958455434955841579648315566466236201407575570898126042590597273499820301358156243338522471043257106191258897553296106994747780693429260063211550199935301502007631189746265034974771816648639195834902645339752495705674984882793026525359033950860688735211880573160408288773405612432962270941737528346693245886594509156520581131359812231860691695625118410473834779993671986504516697737540957441224115605842878121740915339867895168183673157772511754911468172969189750748898383402996431017106803617085853694887688625644633836178724764076934354138613852175744656499637520112877431914224455660128044417625869788118091289789041465637891704961817937101084629901214453665117052828431057909367927296765228380774630974116845898550860622921578679579792495721714841869244483584210488184654313834006947525798760905491639864395616811234656059092512403157974683373061840566898930526252608094898897755573499107860720357378783876833596647030191188596643991449746053003292535147491303899955920592368583856501403295066592015773656601830509737940908805734861527542820708847595928413874517807335475979366544784025939123085737715137746137075193672802560442946020599587119492542896566589816251568409581584231615007040845899336991613278714320218247233600729884141108193136183561597036586737508869698612832397324566206996578152499628292710368825547682794687227678591459266313009284404648530468644702362483368882794053960641693417538532385764464842247771434872012054006230260508701049345564011213570609333957098111732448422030991965483261452741030118767443175149949431457006825639315672763960714040943139757040487707237577172183594289702924788743748139448908607037377009372805682359968971600414011751825381499721387466891787610077469293511771382421360397976850534379452778181188305750477691839208136676079920501269331651514940779831138667051640309722136269645924976946033178848680089205804538574925826828249297032527575128309195794416635446776404239796415961062491466262777337148340224478102873848153427432430482562653570758040814873250851331157324678170513276269081385897551436963050211352376339528407585171863064786052697837119840203291507667311169829777557630908668826691039205647881361018889189159208008959159845788543227566567595676983316338438981382047545410310478010809513951860330059231866282395743886917194937223635432735776698283170846544600566567699348280189617655496948022902698109429876199819873248657044144033646625580004045466952019684812316198609728670529505241884662716214107974233985458024273868266655223330962490383335273447971781824611429928796122051911839308352728672151375213557642541312723086973347986282245979430193209021967822645702517977780862358829931088182159157973441576856019940069359589399816148588715162745158530333285445948692630152092447639234797667203196059472371843675919297852434660040423347361793051908464896973719228129551348639643195211024768250846224853024002581798783834862060977628421673580483070878664388386412963694689301217732512865880333703883801600723189721524354865320426730552833317194764750107063292840508144675853668614755093284745600575052816604026003094853777880903664634149576920848938950868826986447907091017440164157397447529381183639602376610123951492130764541751431747774489231874912850796704017191795582747622489454458917389364360849516033163861578668501002336678033221343313469302713534240199243744471024190635396180035072098072029591057245362119639981785340171315460624130456603593908011896246705133726198789644545724908244182419713618753874686654971485843982346728095015888822433785494787714218125234461844012438857623062780794901694570461030205332644395919519515688471856469968950396921633371526264679520994114911735183630548193653882955324269276608433480105019857719316939145325758102020174901054995412757884316362481871585499737142236820913729611562220540457812033011574625627361199531164987351115092128698225452412954357006628548312327493476701677098311800757944753638280910848852696881996948117941558832131773258860497782547690438415993069776986950773421190898429074947727018287090404296495578647409160770841518382895947499743234499525153828436910756146966613765299447147871347187403831571598249362861846028681601562725330370175622726716848992973350887746997418931998066676432250823149515926160197898873778137445402897874346811312322020676042548615363105563012918350629529945067823971595630910971862632453328497742325355422901463277164684339789977520122282807397104687729359950475666147352824839723121598263667840483424803878937716153333303375287272438942776218568619999453877801628830274233759486135429773845497085369743018346906367572627506260875328422393232200750596373555086950824713258720365251180763208301277988921028780776188112318222508809033710213172623421910892646215973778666845934650825948045086854187796370989770832359246102717124220521279278378468775918729609063741186956667977083619961966220185234497370627427277930432047709089043782571461955187798178381239280758977562532383608525411997430391364693705705256864766464690600694393923477256899845551747262512933053248634120502841646380889797965328644174967774615802970609654134317835056616257317019917285119289339127213002224703273331362488317945397366636209313021101248110554274826547860725314363945632077675693998575568271739258250648516134924546168132297328922391143696165632844916537917554250712785327513739271525541034904545783007077656671193580451603040136168614397231743805089447051264825281509894193627405269749218298086548964255597741658159759721988117628104445935038059811356745348709000820524129046932601192702015824903528038344970772687051973711819380420564325230890823421358444472823167927934163115160083662963927031708760537420878862295557615288342844681475251831765381170610729583008756074446414976731317940347796414265772842527489717298151705993070879713293810879747417555857883472574849313669140034752375735215928596158263067270770791333866690434835234311341224301980139600900130897178224250588517243459900049834110750969865105883012568852085718254495368228162522794873531570976521133394101526978221424713394721851278353698638785670503064777356768917848829007227204754497981431761886604090826853336984853344924059748299060144995915279396873744512496327886134406682457057271505865993584161093759428526228086524001089773767848701418886046810932384153228680386398565818112063380722363472468085385358211998831384719489254272916843039912279628154660808753627582249590547467017296069878053226445012388433869532179468367476468883880696707217526033771804173754132083386286182621298731494908040032451976646387491063353906449203396014928391131049284805018381778948826308025835462696023878418522083721235308020808043571096175998582260590071767660202068093453093210528105749460698221654728552130974133183401047184421505882357055368099822619863174110427447629363003421215600571701840072155946551905334181731296727910216382225255332897569321081101404987749792890674341347493993721558284704042030796957838351807098397309913994362261322296213055777624731599438380232264056643922059690940183808691953181756130928880037256500505759145208694463628592539882260198484280805605870247436853450894760568801417100302451796438583396110098788919758349706726925225222909052816074642456647973078985375643567525884592164025999932300276995781681460685314921655651821866843348037881507306414738400518603494128806255434554351546751629200960548286250063028935594096339962335465520876897164390010041438817785522485228853218287291830869817239083669197847902896451166775723702904660529181347049392537098290515212114323471631493721195149775587811616719443172143513749534526229733498560596053433296325193955457814900427763788069739159557633648980704217631298647919000435218931836696415309399623268687076304331448933966817056262917668375675097878315753264320072558331937166062846899424359501551891966470825628344904427521322505809568899300227585803048197941620258601028000231446754296886531788291487678187779038801471534546480054090159073133091672393671196633041025749042053697604677940982422194958266428017174054137336090097475033834960273367432630058502193555879980557108887441735380704201011470531624165527393171192035222252072568864058804382203262624709403304146668735540360989642159628644500557394712528618201329081539016819343970918392882517625079393434901967501899570945274716956422407457864953955712219789370282253850061794382328741449313581195858146359534228686997071550908593561691457480397583126142048814414246755905444158857939518995743298970967813924923594248645550722830727741914398797646344158608233386461513101721893454873658927955014655101503109131040095662777184156189291665175840426945570479783706776795042598358416268078500022386890713419257774199217211749845526262673153865155797058073405167211324839483781213725920178553710631783485455620159195547614376682479367285620447112040226203755263668344181860992404978738295910363880913328125283724243283679607755169453601528040443061093396569616277636854959662759264406331311815841493035891768111478815940411147481394201439277533816843731015749781018482496558813383866780464522078851320330931088829239631645644582630486580522276056323384243247349013679582354974900732195921800978956983550578021524851047243347803414297269090535436527873553811249273922022806624501808551645333875384638925055509365806094540349986496089962478914387340566161213699747854766790901327406424249926681534082488510775270168821214278399343682739672884692888078586228583827191415541860459088204945253708249027545353493649672599707341422417194562586182576942802361037312792563705891073576632594927584168152560663188304741943921521236524159499600222578700268378244883668027547908174293335859585002933935756214523834668119173740883554820863418161202743773357586122995644775162581018781330182034691448278772195274522123336670511098248344037930823842722504597456286191758195035215637486347331710670579704233865501806075540867599690261574830103334672527315368476458964515279069515378816509203053492030328360355330360908172909185653931281772535595544061779340831536295021741045623768824510930981165284520515876714457137084222459759543899571750408547269075749927605899919090955070554263746762210121115725975454301837576167037388498053461063697818073714440987868690832078872626929404755005411464182700164517500986597815345267429787322290304395438499142160940086441870929018324156320093297806591498397888882783414367778435593760565446887580088388443323677929088539413737077940083050718237126003299270765604074021253713048350882607226827125865306038267354142948875493855794794891934957552503567699051970252464318425432670469677780692979234531255531666890246182649310644431221538000549979209860434322188351134954567885682930955211019109706340870585324342743772497892350433148659341549773983942500934664957508508465843017176536596099967832036161776103561640198452143052928375584373471156417180907540441656876405020303377966778406505878263853497073837537250810247841419496990699272616587732015196188321426990101413524260677535329775934141468856093877112353205065132841431152744934793759237414286942565315631257657341064590891910905212863301175601418248849072929935129667729897665922697168958071041093465296455666154963234202432290700342272993768289407938118683946717884310080065516763066950538790241254911017753914207266927949438159536041535588879850113757154422943736067669519515001711757824137939604996016835882739826951526771358609355578583705391381376931904153768418373820522984340785226786137469295952920737267329693320743852124937736357431418729461299078811040822955295405102545295544635557803704631190264447055479487747179432238757958213526501193019057725399812641463291565371030520457137447717989896874453738332346531465094222671597033629347407399217854840631271309311942826177067557712298581801107001213852295847940183296947161202237861912365002770386987165583580282946226524378879308010770325323071480045634166362041313723531810880612272975202432182928198221362491573633132545214017515771181242922013533298654111669926785039537316313111094834121136298014593699883394264570337537122741694697157698755232737900401834971088545059245688848706394843744254580942352795218434217954841420908677519246519150049871439613707860305512542584256848955699793387855273357075126788005890943462701040778437612726162526982609123041529150825612811873654659416560182808185969290122652684937535758562673790373307706686009616377635849245377971178144222565236262733343190858994953417294376591639288007686714666907658909560743798114207955527344454421448482482956062296525755011179938972723937599225570895222407367962353835203595704197133446682496645887461684335485301056710168694853223563190529694225144898193422287398178326639458677642382906059104731053941715271966908915991872736861888682035051842224255786348047306794696715353388095458100780790979215796369425487607109923930247582544387214820223484352779181535563510029373357724599836867231007675263988144137175515797361916571697325211658121989344073536850531528552469911513288672542762819641030035947248828387606476762101062615772335050225279004796287545394159770844530759867573098098690303178523062624532914073184298674480681592251002812627422453041681914849755018697376948180039803748858247069179769960671853190278902224703472853400136945066173417270769338441812485047293816114441449678166861485461715241402619560391510498963814946529866584445534148061086421136664351666573685405697286202775332181602210724658177011477522855109537398865204598592226655901848681832709055324194249122610888091575862563270551641602754272764785839764915052933860602111251112953552458374421410010244309434003456368145309913909037467048410941290080075027661189171652559816957996375666778544825304963122372415913650446534136978998434572815259718716731520330547151559363908665237747358167737497216090844876547546410388985260181971150967322887600606647487236575945159140160653738778799797828878299938410934951447155196398653413299650521665693895108357739788038613924406051933371691779953550814381880894296882271156482975422938189932971840027672507216746666556350579560845871071142925482731408359994766906271926011676731228112089070612368257512421297735736316036208304148118239751402333147474039054345790082146743141553147364855128823714207812577353076244464306797461554686502025064573098008121616525957618951025300281676413195270631259166938487366268291634120464812272862854058760566363023383721150553129519286065884929800448391152994751829082243895266908041345728993612113827143523830463036697267659044503322412800115950122941842835703923822508269419014297570327163879550624032188449733002739788791153939094102937895266717070439878880711655500903721352890645074008309048508222486247615792480294389030767255757409591047939295296760179819237355611704922114732572658340796514169135247052999378792516091471189884825911718553332994219440341584142059421133718922044253037037097005670111924541983442938505920115405156753743538879860372302319485466534400035610566089131620983015157229230713412753959804304374836759388636611143819593087883658861994658473748094061910585126520810980277371625884310206161125855918282592275922168206709760944959051272956313634078964961771555590890402896736148554413522994077806251110934057768177123396738685108117021193158331206731889185835167570562568189435296442187352014351038992861127533300808940706377204576980573217305723593256446813573637045634521633928788415543775437753275046316648950141316783967399147646883990691419393008219394344289551430953783875574545173315183841538152479766611357661775456463429716163746324484222351099503054980409741952196968638255337888441310323650812456465477779071592773334298527022418463656820518877296241054135270107890384998846845448112758003979309599889072995760072654161338558209260778111653018591558751131627236369289490202893450340206322095696728995235796021018239003994934991214416040549078650528513558384340941772171284939484647369666432849379244974103686123291187248903126040104768759686829893327055376865191897552317460034734747410672733831125330981781429338844252057386164162378416296143162708942343725934533182765686779995582655943330657422277613149780410735997387907270637344537636665498319879075436976240245166682167465380297265959989558403543927530212593552396474453804698387025398138265874864706750193904022967225072001465155701598363683491908054375231931963064124026138712730436585227338038734133404509437914789101037969354592493652784775390258665270637684912405629222630725634867934255615956029924795590847857354892423067451082261773661687337154171094794756019850784628192405755177756338597374534847413158091648690217862761168633928974307154921032469699487665299147145130084049291824461800852899819982834149777071622038561796918456885368870056249531501016702462681741908936152060941173757278274569178392567355845025660030591688905573007877315807905902587836860143318140983739227657078212117466144265158265093779391031133647007715041348572240399323708200527345153965982784156752351062721561086248491080916262759925523459281245733865607590938865969443320339761390539567501128841223967539157904687574625929202485565052560641917641075276517942170052940739546806775853904982497271830400182519888804807776966479408594823961955100953834932351924884092437718227201503270852082705381880880384064030635534483840599428761844811385023573661214929290569384496812990630252701626721811241360067290912553910903205965072015049581837304885268385091136003053105498307680144599637909445265256000149196076580150250179338264546472214480235629182265549748928724884926146848825738382914373158946144425841078689422272718795510684226942873163161609469711124500605597957294522340423173198259843250889832197245450648590174800639307675219546843066219155282834391017336921994541074953462981746237773715949959145781528099819850981285253833794844697492947426618198126085626016062813481838052297092092131055340220574862539683385087839199686620513632575650871565397005288400199779756806151663336676598707972975940577821700009256754087036154260417352763587568636227569609127106462875350475729574360984779735186890589092901406389967763732606492621245867357431388747436609846315354517292173702264225064561822003379594747309642191489813039928256891555242021057743136438246667086153552443662789467066302440335838299303992989053741802143971523695338146223338255898949718552685689924273670822793837732518524549672609563998453968053068069610565458062252810811549736552859361015366029406776218803327014996358552130374012375753748544383833613365937313747099202830241566414975066658593902527535622584004329041117562364370524849875021806940214819547597368354925984715344869293722919856436260684239301585664741557026009823321502400849733144902428865279195423426595372270652059152271067365537404445068350479509387050255695255637368850128115511229768442035005622419868463738482910313683383601729510411415645495426892104314807814705549417427305941138115735426701121769861392700287330206992568973360914383586746009627884350471266129527519885639065030597669948770301647705166259364632540700709672275771599294310156996727606884949623183546255487203063269484604325210077949451053907743166436828147101883158528431795951062569051856983556123261600905511495227808391404283681771436849838887487494706218865952763638121927081329993256322068728764940168468344317838891658367300356345587700315421432602516326829992894965037099814980203623912370054589324415005279088975605087617665610285661953490056901202496740490959456986976021004517566554857344844500708840160845470625381897276427184755334984075845444123031091333366309733336034095050626682877804848717290521289618256127129630511499853357927224718587226953237932992574608122054746070055379336994031487236099809575764164304696136613814751653135933660821067919143270753359872568183910817660510861245589877391298439815998255502122172667747327289156295755682744005138614414271612255845024304809653481281605038472322526770469431446567469336866514227639601281728546105988541097993096652086888415860240429960074091771092044508919880434558973252678530858684872853307158653961508239016441313571320870677852710668459487049693231408293267220089857146609342741485755789890264333672045614792811825212749813693238395015137818735308635730557589418226157596060074937902177064251972444622334593202045949633217161376861705403078296024824149766737616988338795148838024325258787696172750479207617296256657484344286446721640196497833479155627313684387921369387542924702508870530659952358090483343196014390449093368944663803975254274453850825015718527433738044427777709554922047012358133706185846550496524283958990516915534786231760183918737445678881347749121607152535316373542238767261414034108329210869578306925678511392440283532174347368618659606737850960109996304935318966810812262965522878676826893595763508916314349280619232565047652188839837333843168275754388683493859576562022581368159613060468636829579224676807797321516499141843865339573930044791363876412895737539306598470661549960413560656823134789260487103160536908501855417158541654682178951996435578367030071921569467835412255137445181914630885943140029960280456239989371273733739763460197946831041325636111130046043789345562932029315732822368838012442878330505831398213274642586784845467061544520872885898532760425242862385700077988736954376745050822864947065368913453673427632774597573783491460541382543345732449034817042412127494151746841466119430636779308356177216315015189300802566701945013002740782164531771026060133399067223329292734349169719880628457431045286611166134003568348859247529516950200066073660454313995819933758658739576066810122541026894238715276354831710793941276963507984344514681056771760700386632846353863534398085590547996451537075309107548487680186927578425241854504700564707775819581524906832291525210487467672591086177799649556898386067663094414682019393934760087571946436013289335263994651712073964941488295210739454902995346038359560959745877265227171918249957825296020684641424745919195103709940176311204879629868762448022261950111828207952015923487848068664787435260403254240061157112079906363693663323010631323682476113210278428306824034799620382667466922230908177229174884253762825445840132537034603875954572369076634848454374623068459221354770864833420100006053859203585376339882788286194123263571062031554304206123068249158697947900840373598564949160074994591789682832830607092404652334931939232879767966325383979567876517240092238601039715048606238285726400737132818573680765278717487633891928573194683645603236650553778275193809439865225622149379241754255793157343426349202014906915712119447510152472918319828798555627941013523446009357612571847110389157929473260345471496596518399944899779978947668476942293279038230952144675775302536249797517118627280419051955195612555544348558400141360680273881311006968396601314791478062189031038656648850337200305735334013495956840577241283312953945671181579909066812123099669163844407480997175073266205674673061235665757141380055996958461497157851931155165328450878802534209671613634171973194482041112762298250838848119161412332019036855424626327786119584363838524723098053863405177597811317033679836336221798353813585039656013859749073491558557911235436628327620634648155406284191044633786793499921157893221053905880273188843350524579874913049453026879946364926274779767910061059314461128664361830408536100557457354647816330969397419746936213237602010558235990446092061283391439104255958116796062978069902959736801461047434281089162403816964173488869672862670062286354810205220754793189186595606587278330490359181484264928364180888773808271467737910485412002418582696871709644464271412471093667281390249372545985054877024713331825363979635065622012163018476290594894837317847295557481176020979805381061241126242181146401380040772871394059434562650062592766923068708486345062626588178742693837782923720737343934455585392440265535049465698219951905494251111240589557153506044370671915933358833795603380061379057736742034935135289318746216286712912310429338771455093255675816175876059851992992301863424284056707384386151482465808851838901357636733429571722020321955650398769274526003550386069326419553448964429156558249635814716659230689290312260767615791447863931548243523365065508947385857616658333822924921148840943542440872181362192748276264367466456266262429893969861403703942704621392886070149244579765434069318965677994552663318609236547059728906304260425451078619065980091923042481614737715891350022427780670892722336753331696661070383752808168475207829320412105646676806531918799856747097986042764945396223832105209849713389624482617564168329260657271767788749497446517927367547994317349676820966723388254452369310213911394724190595504679327066654223469743072984952103667670197548152287407454548748537819383771427213107869735274814759134782141369651497159504362298728727077200787148790050424441299713467305265690781649662111431104519486862338117840231365139678005294314048800759473085141926598114995957244934928521520848500590778804003374700859572940249847024565427764316268728748969652388712793077595958475178699502015318634280051771305582628120176534210322988481298322273636001358216377096036865785657760501618662994873567291671347158948931533464297766394114486559391607239544931863228776165219957688549049402835134392878771763397234137026188192990690209698954847058879157493494253467066399927653927361924687170982953700328430580971736222643350927747159588672373787222478651898737683980087584407551648470744644222020391888600966888088685092849780489717769553621713944137052274699086884063471355300597722278893383046361651695097198632857062637321277241370819416710928939346840859491231141328759525904206197727263079007448894426794764286758819773196144945680217739307235872268074844980771994155740073008192814300625505020565364198386892724041656456339773216468573392593869293308958360715387132465608681958015295591882722207110344906639197874016299084658629204424401973352499778950501077076871255204140183745353422047187878073647056195186459881042413676131875140396757532921011048239404249068108406473609233711737994444956327717251817944830337488068476386756180197406900551501432929887799076682736230884019216202332390248174356465554070483061313387975983079346058258714245156691194774047616199516985772971424171061311205766019475648890288967456500624496272061366268079889749486174751366930494415435309011264270613457467249284516966813135139988283211340317254747508898917005801862087039625687356445561088477232354194313899176159006241641374494322218934113996983444390713139589490626314442584754749766894940617405144933011379412002211174166096935983885497451603701842654363190652097247348666163866923810619375172023583174701174652474107354191085177836057421290932919800324067894658646005680723693938062436585400121343258604006019319778982298647936963433845966350869674494654827158246946911381827882298917222930395319552130804694669746239873608023040547259026267403351753640861639075945592125887383565558298000695943168683334871142280196931670914680035243439315339257810379095886305142315967828020483776134758658087853946249936829323192057208392345158730105769628953481414592945758020596230894145588611131573209184235467032358199711492981354322777960019472400610230250131239204764990584352088139889413180204134660114855464227260524797045208868487551258577193080513958078963210641568162650343858402499854076091404501865800206663039191473516720622669614459661824957469677558166388977917791294613176323064746123543243621853655273701661670853969156517033211100356597774019601350547430087249521201266385511992097317369970510185645901512165474480757139580938003036123247316860939053593373377890817155384987783775056046591312894016471557759106935365991453538043296708824215330512352865988742207065309755826238645260812906317007170649187615037581376660147608107941114721921664793319991010053290234289260050286798369084833728439299306721325451749209769285055656083919207190643646863249978665309907389274992128154262009883733879145284129720533049267277115173481953323216611678827329130659181308418849500349161210860174786345788461112086376056110949711787465934503194978348362456009309557864953591753025498105056938839350042381020336435514116412669869269535493801147583781111383193697074945007175511786721360845868390452243601825266711637024327442106662572939596577096265680288452343977064276585034000269776455328261150946993880760483849086030061060429087783487065839876237948050968122702929816809282743096556618322908461090707059117833254176723774872926042646501759149871873208143717850576016987161882020995951035517204408385673843888753212952309675081516582893499569809269380481732908922207836713049572238287575206245841151532212029184999616962478165687127271507592604992416573437445326611584120539981820770009821469139298845919878493157970902783935630762740284511688345255359141569127683847018733090368220821643313775825325668245046590113263362189010850358418119394754446950336624195385926982274659856951147113783615291913091676849964272926738450609564917006972911600822530159787064126175720500157674023075587641865965243558349377212016883770173470406953871406915691963581519394066758619861600061095549802537977632636235591115773279533176353743245832857995963312159418188619405513040131196672525317568332735236906134518416450345583969376354101818070176922070653936188209416171537207961907652886137541079877449022895047505468230411952150714967088540467232206095116241190940561677399875933016961345808385383111903701570913696164250285304607276033290168712141889478005712619847180790047047356476530975424364563133832614396964788754307394540386771724326277067982784489613006320438222263010156017497140544370308416059704898934582847723946942773717186463893508359020708884699635258628832778596525020048271502366296085306595541806451981463679620718320138146175898338339210457659880865548692256802996530998927377734916799274624425107680732560391732615925320719794061162806838498021560772681730221110138574115346075354799665407934442231229712667733887479522603310452465546270220304217528717308380209501760761113093616003711675886653863257211508322977672547622517916504959088006962572178806386031278199960997651140042016460964726940828788319618588684538531039811116022545783901096377446511911262166147054507602296516128485493454206099434342817526899919296121767526601476449426688920569315844695909551275906998327868825286301369469267847794139462677013576211899732809285827178847156167594809183900808034055505522798733420363540484714356564680080274274934655351280436966275357313379692063561446490896960712815169800876531588947706882696733001633156083595355270206612213738768564261410337936343225214892425437577538060357612449343372458988790115717532197228030162968823100406226821083020854785948417309614545420465375172824683187698922963233000344120604777498456816567972603073720555960323740873901370939263375316473633645694864473538387701260686725279360392169800393858926043384060540298392412512038077420556340882335203310361961433015010087889192515834346366211867773137349840664422255352353586819374104978188739857320782134214384271337083453028580397722431390634012158506955938569196524000765253551736086574878278031939099723496203789976596357766954552343517775430378802162095671548144566719558416943331779846371699014860089425449714784301969555843702279631620229072351387114118355248089086239595496882949269741571683567364581871879525738231179373986948457824832557141663758283612995601954194903624975519039300225311115121881970965415103833639031076159610055243896506977585106121941861864866968802726099749370107123414061719871641636527755603507785287532022798671167940165960466110546492733066924525776481413360647732896997222394932273849362933507290522269126510271383559379080986137335908734146562129957524459848779820506251833948564504602834232285442387583087115305701467854330231763325836972922996519455612298390274065551637369564474544827763767948677048323777037919569351768856298347640794151265162123970383307796002839211123197841618435759602261974578029928773661203742289292127274562984327268277353222228820616389437950305717703470377444935742107318991035823559276425139182973454980465229535697295367681166283279602443776976451531487109559729009243367648434719847135257500866317716386150797900488941775140284379033207997740736983871945358648888774561963661592322921302987431023210207300106760170866657028697714885493967610105008910052868889095304997958718694713116556156493842587078223853806709965342412302136951059956681019440909250460857947481539702599285130487390321701547018539584933504134993808662852982832248643451688073387616124169398398137297420338930076608432665787736523660835117792802127902237685518655034288625083935796383667841756786000808929428534889994173965822417248623156718968243918052181309361354442686556252869700265632010964067382232033104850489947280154416988042363187449731260884770212457066588070733462644764841483495669649691039846190268313367557669907102926423374429582103885965561407925767582811201367365534657585305580224151963194967907077867461437619020661076186037631144401282492454586634388585633872268074166942002944328986127948830515464436091861517516563542682737298032948135438851965695531386103619886609327234597867553352202564475874441308997491053719801697859527479696138831876091002784878165792059292718554101130043836414319352881989899124322851813402200366618224209859996662254752018511943784792531157527234919618794873366841664878634901720290849515888500753689137364470157678716243354881961266154156207191272029486725371594703972154789528419640540242980547609041553051374066978497945456665599144609645802688136362808307825242683455717714379986748856278419855858308555301940439852243339039630036480573002683588187696785039954593267369617124802170830349665326279116197688103197902734833966746389236980176595256058623958542025320351279084696375748350703418096704430767615095267435950605199552813321097851025761208384218768615578805589698326675257828784802194795790506947581935809116747695212686999649986160610140666242595469792251468036326033457656542241547891869911419342806889221398089476937685823855048217611781311456389633930951532413304256633755840350864669012170527185637265315478272194225710270086152946193010093188506499060302884662914594094740225482153473809386769693614147933705459829527773321259643106204887235100745305132845419848933784541415637312478720024156215121597387697624687204550774955634878700406528618720780764960583515935604552506346165182415163224135132371165959049045948663885160252291503213267042120338460525975854713370678804977453594722675395505449901555816197698331584969894515661187492874971191581143838235226298193045778542038729565643073585535912756881305833510195592639950174068441310671593473338514433076157198028689184949260514076522715902492544218428657531436912934196965638170620290543756129028666648657917793367283011581931150169474966529887749484401551339894799476536377362731392761768548804183445346930279597327759709864264306331507182084481001328506016543861957299355044930853699045030806686302528009191945668192209688711753892042976604714546951102879115437742167586257411628919406396819957899126217714323034305922333043831888903631874759645992650872812474719717940945026557616546682539005013496003916543967751517628720250635552259242309065176345518057160853652505920460654292168968095554666604522214876321327791618127224873368138740785334445725838582205738841672583325959762118074579261381561177741576352100458184821427724248415815908797688291529254206445189264225899363344605868895501612476496249784394268315441204972968735802637108391855907200976092999837680959670400000093315992593535706311632012627851716807009513054919339747533776404803735869770316046600263603805593916347348373775850781345448523916791068174576482485853678496995676645233361580052272555991510714204385610449562648235430617686167125205072516771675206850187815625628627275040459646593699896186022578606898650974796735643797590339290298531716584148863899372482949253259640753607059224315252601539417915855705455815886451712815758512098793845636300758507626395537868088189916590075615733256811380805980498778269265721655474951960707521073080570206006056121329808029423992492546226796205155557899757545953528359863296239383645283004332436624824800088442280787105235098381510559472380805982661655561039929689239012336607316268649978491297119412206810606665647376256337681202478404337831967931876502528979213953429520637433866048491280121719091811897400221302992804374703745817762857692145438685838297339026449460633539313421665191021302305036018262970586252574582894002193996032447759182879407074826749460365674644765173769760311642751290749104633433668159349632152659994407170087169170621147144453008677624143880332763402269440185809175693582172910262638485441315881917517879419322751020312100781069375696275499247668405538210887423729615133643113631064842555252373840709374894343514017502689895729992672802393487928378291141261144485261924710371805065819982847152306877839168460609613834683773245998133922748965695280906501211746139282721704606175208931506735238564900753690685237545852107777353964173705758957832451369795886600208555015293465797111170566218080314023025798228716057782138154994697501038548521963147769918444684218953728849268214027595680072446312881782921484083737301150672479796725083376664426225934022887446483456734428826093640039476619412319238954699651431255508603408674865156936616368764579186166942634069818792286281323942621621665090877829660268152875813891654829476273308542397645814487565225027222353295984023976062698765511609355246203219277086305703645312158672616712548255354923513438257704024368084472497098934819756992658078596792955683590176185840704036776103689381103658952617022103788653768084078560820819055670194476516140248245995498853645779192791367607981180521650906488979147829069596095260709834115453958756965857403475805116576982546567974944842605938321293924330316977255000602839504763031234941888048474999357048167459002507946739137547756860742510004596670795767232281853941816487420729004221598274883242014801972682783333409285753749849854868234716834054009164046204806882277843057466945408853233239524235108131353412306803603585916220342431225094121307438972314682866624683759477272590383100435910599179604222452126748803212721180349899753305809643913840798258880442719362235498267256743718455135329622426934496880532244065977367653836533522721108344047709991954299308460892394065741295529180048988290655315190831904694992721318141764056066763016449175961100878317491405250359860161014252247730413335687887150352528136727563307841352597305694382399177006652834155625630670109996645445620511668574808504762417131683902505425785457756920589306284262036138112484112713963782650033692461467055709002090329437174939435326728057332140824429026815002946702558905391005575303404401919865312273269163898030843637392165761050693858652786262385621638991623258934782395707446024093571609510482512333090858764771462331963518626271229344353309219584970934904115593136058611803101042055468113996981320144924635995718675644184791043958123809425523310883614120591125843075440406846573419315636316987407378731905485856356227829757226547460256119298880065075743057569279876923399542666070513683639587714425415111987766983562673087409890752368291595700659124609988773692858688485017915588706883296092721505154732695651551753529599478043051471424830341890069724135844008428337645156339754135034578297876726304938919995783813536761472381451372501450522201864798177593488099879622015979198663721173237189077689411221400948874307852167875665042090862409127390162286040463153997870911657141024528441924904427160172533468251423927728731554604841460724490489841924913669825728575352845225785892416372779211571869751858818732438818264142384846330309213089772000152328206944616131289706054610887959670192815653341051629034816999379950386923452616948412971254543258484063585916148088470632790308737170390118096865407953104707417496631456449052072917328163889200024845784874645490653440296688572431132140152824743824756650801314210225277576144580647454456258805065764560986480436343257897187313211850573376306716494669819119245311131355301051176836080475676036354494856965193949030366568450023733090979409087438255540268600314165274872383786567171497544174289808037631168766111549605204603398865103191762985146975178222709346651547146392881872435178669420225880425408145731690972127090641302416914081464954614788590342728119934710460624550176748673649530174975409443075585997313530851419734707144910855950233190762487464460789722552184516312172109006230709777398780895156694409618740110119620692387852572494806759672819553257771184405374573298205966014613275545056480706460757812674236332833762487474223567128169112189115725352528420173292355305158969984210979075825415730833077185924219535604629723192707625560308215073929976145262875644610652910589094742872429268247936776185151432867059940928323236975124398078052764210218232034320267832801350528999474131977536284823122313840391623285948225033346195984171481121907996050691735978429384380587318452156234711346468664306312386999878547740481932500986683891188395101267412683318850395866674694284456179583891139490164786158788147023570632663014599076370165268119660133504133429228410690414777001353716689965360477267925819395366326436072458696862171776247979020823787122220474266774701472898395598949134841008198496287240772573582153453579599953798476484397960092556865083147383327868796040523295588843642392314890145217385202622202884302507050964484329582415399278617473411316437189906861261313459179366301374239165808223811479843626301093582352551921603392788010400884670514885548123563042732968351838400292529694182694346166433137795245818058398952381677991575928215756734929846571121773420122265852439362847156583562783192082308623799843894010418243837807078666515265766819550732703925699638869877579421586220585214653121833855133168802288011169963499224517268185030573814914228222608144919764129795018005507833696330886094108521565615752339313966085676207448638372855982370940627868718379128153487752851426161433670965318720015385235977541709214153092257616506002151868908428199604414266256016037926206794374296997675625997741344782981930568843645926364355823512717179595428181880925498229592637166990143076888766377826811541552197754630116722468852761794705564205202029814540829325615969812048327675099912658291750701260244589530933696400572333065745427336016143092706983290829651810116753687912323148701911618847355964000725342414609533682907172694173578828637971425995555533104383454698278075602015032795570133514886668514335337076627736288206303589928341324668277553823955166891941711371200909564294098449173522832072598835494193038382637399140932011210757855285061246485979216089367865013686408535964553279604084409386229891879726723238987613005292008099043753006543046042299924894558912517986962135172044127678486673435803522030057254046597324323415837650665242486636937270144062650490923326657241478535877046948286374988293156814626280696708117706149825040365874924522892607081569489122530794013606876933924395004026988177931988662628991007557682794711459487527615015318984608144849255007398263104132852948002328600857670426689052060459512688544158021721546039216959863409552537622154221053223504008050331378524676019043033824261923643882806031774252472978362779113637074642585773130013696940284390102295560554470082438915761201944860030679782429612037499006633476122994457945564424865954254247857321702875365457553273525169018203047241186984308709466365841047213462680738212199522504374677511258389458811604557342559640992155311604485736311352610819230406691174236096427769587325018136059851838565154178609744000694736326265464191562605426195064184357940236084731661299593829597199508274104686600213989843161212190737782256905279078741881982476326954053600798195175668506458930404678477620427787300141617438232120755909340473745221330658133129794396684294592599861998264206538001573620045673936972230551324380147322764982420819345061400719262374921505807151416966116126238945019684497411332908828827326923782828356457958505373854382643598983264705268244382999087378045892630547835542721937603579208986411603243136600449893025419456055172596659578747525790999302311845178895180379699021899187342080298242282092408488830025465025324735928172824095241095526274303711633009218761701435104717305018037679440653689322226283556773686254576135413122720463858410855769631077072207662110032712682202996902069473739883185541243531574039758522836709514023609616412852142377013562460561647583746611080773160009728810378697976632499991610098811535671913520262762814559954994134888286791446942506383393128588594897396912307418582998953743771033660624533167733314631749416716403036937612979893009604056413552760130128783027177190082675477492825526593179773069450326666682801559054567550803138823420213493340130909900683720122522337355962129958856253459153056791008817466178536793382955543556337139826375166349784140605561366845709100092317511602598060648814182358093191422977000405494496156399747582528576938939834578768900243143989425431384745051290357061774631791010737412195276826328890589606383598126335833315870833235987667794159527576173931587329860421969719761484212143243598408151251655900665055756906678054306741491600875766529258098632850199343842433402537005523947875943420767881582476814649575424221870373492405798502718702450479009346046250381964982421543716134104661099657029424179708461768326184443924858313294180333484212430364108806214919003622697601843368888333031980104943359407396502176011058968403683264097114619072746988770468215328836931215760883580944186348551298461411029306571454555555461705714521468438945279708140065197820730444009514747731709009315204310235878451863878092147860909314180149505422967007910699982654717098190424677730154674419247550365687887702430975128252799843318157348062453736014034223978219461015449294237138985395552997774722309569984705876020283756490366422120071947379063671323751260138315523954731388291871091249698422301452946632190662025257274533221673161540082092620662196220175510181036588334736454402905906475390028382969419325329991267299576191755190133356715308074175951164438777810840604416086589664210202355750630300212407794742101444265295791054773072757101806832020352437059180499187896647458859715313042798151295493314695266923034178552801303760578495639300588937903741678233745747585703280008424362074943467997223039953775269718879127476387133806774025607094208294529356017601946957334975706140031368421546942317926779307290544705142547191069584453716884652044220602967187965099877473548705606403804185397854860768246931906652779597775513251867689353684157089469664056592001070126282639706680693540565426176716884870182809275693385378220321644251889286966855058410211234473162979957037539532546206581863511057411475595620620089668487728240427231796329558197826732171193532793353156813885659844786995815506711732615367620810415556117817868538348127407119267715906244121937638738450751454073196527316400788384591114960887835290869306609892998976184171659268807604094402380173088163785269210621754509852144391423296963499049989381322309703708967602919712911359408235156641736198660750612549451868750979477230468777876710985568183960007336461304271370244704925224189479540666653889975880967367765509993573226729996553504942311600008198972081525527039131246524520418845206789204397999577808938409724042570321037587990536357948758445270491064362294668663640301020095697220158494850369564737724607170375785243988623028172758403551873073433356974916030273054587445186390734793799169516022832181174291004631067431841253502326632110867651632408334251769934424677553680727335845256575671160042980088481970578875826119699784199589492977823368700758370902575183365056890333226246797114966146228610226235528962026678582875444115714201542193930087139805958515451774376430054888657495437887132227408214301960862402281808853576068368282006251800843643742491755954194503281578831924363473439319777718391094163204661132344240717694335217060795867339803448538940316162880425340732455930168524518562894099027072234553084902496942216284003078316371623422017865412548885141052655821395671143452871211217828544057427243723631146136656993229410981326470503576908758605766973358146325357801457321829887812225397639019503759850735668789309122060064231076932645087604736161075969915159291052802874875486043350471754692364452814588325554926863051878708765963327357889610888927352063845481553514711224616170119664861119191666688060316862279016838049801953704698945216606968987995817903889636903369367596985570703342004326526812104259492117137617008410244779171522213204545088380340215252168539496215648655001354904698693606563001663124001402343965429015382162727572081588084162140265253725146908270502045705703088937274705185459440015613928148937345186042715281196526912217930226477821051159990154716335536308128588340596975041373779322034553835529691562935356169753385355556018875101490032389100893272303588927965541078922465769793250475521985074624933959854216881252571353926079616591724831600283314989254495969722563356851402797200360797355209227527047345143239910404478149427483682322548561433242834447014362041843432002638118572442783055289971598858094438201303018844316295127952787539359777225444399319473773355791153187179134689692850669923262675077843191917845812046643178444315606135230846422920283402258326194539897060206251482264731901330576680895407261206849463503576277311481705412618986055374756047879140134499942248514948472868726636010542187239154621169626727982866954420998977863846602034703931076254821965037006774819087779272678460140920873577155749656731489494509884237097494443998535698420436550254815403895617457250768478756521808013064431190605794489968694330308769014864435272722130795798584083447868818822827541546134505504453862904686294241815908126772376273549479337561335995253842490282152470646257198859659821543143998298263182688365142211746933230426263048958431736467642212758909298159884397696786239860128378852521720754839948883542426919221299488621802711738453326392059736235024638511487357454192509836694695807715291008682978897629353473982203932068756251489735251773730366634434740970408266609292361842963306890249173286005492063403248571710733878497263795816882942860959459195371368721921566083819793906220082094093403812512203279569910003703010716226384934929016536757799577577058247355488135460777576838212053932071203876090104926293736665845258148855538026033106883176995252603819864121568338442654379845153328091442704572925506778027903299265769196009691228389443749525026393969135998864389118802603725442489735928672319060130216296944606071427021028076458517372395520902383777475136412052752792558122710633346608003398509913411043089427220172189889224016456827376202057189932656458391241381457606849623031947522091699286907238636716991900595702069891455837396684686010780642360640887370756029783432333381883563548706132296382712491261451151509465180189131147117246923882683837611418964721697393843854175413694852229557108577225670958469218325285276068454460522291190848429774708394282531934479041014380259132349997372415974252518238362564406510858568144067785626424252499508080252530541002520088573366340373590004090937926640783644516775666450366547658713807378508535369224473759025588226462804654144463220171184127458377280968742569290554829326928621292822756289371850591177001309115949695490914971310774809475534785114026794412000930526437856037844392966293208698152981529232747873741333453082118917365952935585191038626868368894815001516753613017166563538021258599560315412622574044318825778454284866340617937803495876509858230642648979612888131854167148345640384234529135081934988567804681347607626216796780032270858181224996764269137163623748001997241046838307655863007763284718900044197390911819230548810631982203672211651552518749370597098214022561216815762278067309691568306778047960786303532583077755402725537217163929966761583704833798218313284958140610841932047249226672025692238998457506388130089290989366413407510156391308957215870611581691132318654315672354872870955728116795285097471704529596805682708478782507094839480608209930829997973650800270317419176624670182550034008612719863303656193814545822333660051211304068499360352163867913259379245130217588749703006611752452424912319781263805091468299532538419488169125895429904788838861035390408283740568987801723837513152531479837576370054982997178735744122615086958935137958919583119681843700531176932518883382571991817455681503192054716625458427585765394609148311281714635949998257609837601396523706101469712872296257784560154522163347331339689601270444510957464575791349305120266137145699107322130530140127532039325124541501827991006555519172602460680469764253288566862178530791370017007675458681641286159599382012514964114611455134645118520863520010840651603793809488557943934034955276281296643584747232295536996859321378112147720196198574110501777413080935202787056355719299785746007820251085157412820287771749691937994554936314708220809291356334108729684204364169543569325937173293063334454138342425299452485217672122222397473229433365567838061081514617213961208777457466895294623444136993344843303725601252915453749927353416079516036890283914322576649018972060434272473205992181927680908515668049899926075152203261092328930525166824815485206818003910039750922499399419562315362075785232982788757093392520126044550273002140474782658183469425376438120318095788098747951721491341529471129965798330041458691939401995803737210315188942988893532957405216248460213165742198363192014630990157655131619848859570800208106944580419687485673973471300508214859437477098472052637402010166045777831785069042283204474189778756409937015093466683267800823961937073827127619066863133199061346733086434595025094496368294824389103953368680996520325745258809162613137990987420080760031427739660756487217371345947268642930874441257696141649839262862107392898326748675055076686291509667492649038728913466372727754619012657129179377645680147637640513392205042726208162486944089451027977856726248394574599659350673092475999427384709594890824392928999343760955629223365720367255158852859590190130023207918549201603692113486185660131611744033960476025846240335237735673499926934275621166157850777985879605521927963413829073683839229992784414110906346285796190876682105462222064754761788427026278563785624566995939420040630492715668897471344523792062019787401152640094388062575055588916276562249491636205718318519637771520167579077631029523606744486058528507501480127019284637018164016486773674394790590224117007218544162074789335043947723675494881083789269403919623476826157643133701574948793717713875256544659620915323280055659975068785507905675583720540674232375637466060287374407505282279346783360824352970883464602812757634010942781288468596263738657150986104929322358268955849577665316682867017341526092687175186691149460539013280683025845741407051942305860859662319702024700215387793888732686582300470679628618496173220299813287809783149424590943102853790766093278682127829288340007717890646267973792147368360714974739837793565357871008875100756631256317808945501379388712080057779427306983237001207845305501775011742499887050095182143934015510034380874494764863236493950424133198205572120824474591303291517379814142075699086260465926643727603907402327310125375195907050178172299813121933208380949680754033570022698241824565379746352680119825626264850059461144192484378147134341509152545225837351586238097530112163075919372354640724074102735580677973825714605618381169887397028091598616328301391949253257499444031499698817847221671863250579734743729801543847067883542037240980652847516779944419623443508755053149609920890918993078122555722713568941995572557048400006012832322949450649703335850527419657592845989329450969738594910623104901241867836286268940695801553463061263357578302816681348254093347186501860939747050694172264012578659056264524238803809010917185486585806521366200648869611812192493695853073575878387697088603934968234672263752396977152935696534842129443043128722114078255106218847514788713619214332596979000182294859639157785308281418507045267933393190968957863206447598457155465078711059723339168482334918006768618654841569419567719226492639790167071417015235903059558424277083612971161596652150394928012688476493883337552507849089249239832750300615296648590948735564983360105595912089346384784338307591954172754864377256680448153829408209305473062562506616981767344660034780624262048589567149166314522538732884677716597833874219967087986360893740017723312034797406603723936069028725444217209795992915217024751963497803103214203810684963694605600839621676435783614273198145354573086101568297816183353631012325425237225913061375024338739319199063248682527965106953850173694966233353193086776086509467538580996309986751510907257285847488602692759470361782538568578815922726553916661260011552679800817204217543009489307334597177174651514102739509061475044434285287643036730037372333244652050198258159487675294122835196682236861863624285036225973175169733403786614555916604929809341556198424024613685462320183373725120186080380255162301394661819441506527046618878305867759708138372426135803377128899147809768559352351317530781334380042911160270799728215736712244470064442437429561127882251461826738406461543473449024961207170782693036576957356603417558431415715885255349880101465382332670163454352538001187066412967598269091839580218350854516399789288676802167733396413791618878002491378101540108990823518701125342301699181719920116190945889181662307416739964512756556095354021965553434428342828424839293742279693509556248788634040155571885931328154940555178365362667447934017368939498226676145347598156806522047822742141137972562524979790587883493013960513004345347505395077377350316613279387776852269560338213245794749485484049447653610161881307757036770835493419988019631590058394310645005200650673863376725958959184372955858989469615389306673652653629286866638241094949919467665976705155245667966103081177752339072402341122222784906319364255753729667826826467988323787725072263218216100513170449473802055510581348217048003397731708727155585011057597936510750968655471105540709723530273723787561330294694150946077983340531742295123537908127649261708054562646776744324262561002727287862485047099392648460000023091775342424540876569372225187310064872813260496590096387803945551592922888312149451229913305237857612721963816540174388443063804246744998796345392156097914483040741675281404795158137362738444371222378194769549616223225645111850181707539986129829643966540173133129996248974954490083241526960545812535814818555372897777883480979052213400629720418325098777634920457608666638720709359621570626669646498070439848910005538336278762325182541477995786029691192517880749036492134419576532929079299698835778012562690128590349606382865246271348898807134250370904301182888492485295350376259212746751766449415262454345947190077034882559294265834783771157488552476222590272257630085128768795786860135467911116652149306500878177120651473712857233459539455822912585561614002093630392664035838303379755550000455327994467178324432386023795951610909065422690335176376013529173383272502093115701952739465236740359107634755921544958089179386359933813576272419536597539171058013994927492383288527554681393668178867161131428935585518910158813855508682994792221333995043331946549306195001828549850699483828590356543898680084792146559539922937051311819313419411929429072094917658692330838572693943634207593635826238716878915787898250685601962634468890404193272314930802899934227601058298466867957673897333887289891006786660991498614675048988703242829513139929227594679665708093372225134734231200000910270819279684410431837463208085791353057394989060959656477472776208998852385704597786280036609301485748068805112175427806207205763069872356349290289989935055107187588687586960706023511097365663249328137900040394242721126841255606200692074700482004580096665664821520345586349482843667162500525142494603841195445521076325777226999445885859580511156504767674436182975473721387248177171044650235389588610603328693766179967877591255998199667712855795588712718214005274069700865836694405775663959206351016107864097329851896164704423236180266240280284850488934947805963117705385668471668748300412072928340234511486412231071118880870712702421467338118286272353267931394850810064604874562665444557712772990371173670690143876968177631799695139308037774243273437227327418293331123389444276203930802661646879254790070000051776976683186577430420799050762691829143050708395825293045693646148969690433091897672064525319124889884007679719978657051576566167550490878894533376970806600234240681729092804373393294254327281991859281854554587226191094655329095477982788394677987166492594624083261177807880390110899879611587856506203724185141295078587596233412651237399379895935368345304564125513915889304616727663653013266398980256671226059259813955519387214987752276238987939936099572730430729876596689846671178574946298652523507774800635513624070974726072312555565877147405032940109800918788554440605881034887469181898536631352817647673255175541662440673291649482178109936982896580792003235169431482119205496709407193806713364480832758365478754561477558213574888990727241154390774647031371769386035596272300690683891436247419539457091249642828762656186097034972684468548400551233937495340536217881336350391236239978908772040879769075297701681000456330876009298772870052952560788619818751805609359981808718351315897145184284084130329744094306483880206158792855345592469809983489000086768844698892631243220435687012496445467632109968732422486811085930474783533355891543408564358345524921215787522693608031371866160895737862026044151793990770331323595387515875186215979670369204979044786223555223728283423686147380788451067477831506414564758836802734687478099745866620633003252421016670139334352751692029730258518912131363076710051702457778628786008467334424870367369188021562953087414679213408351984023030475594963138421846891478278631907145171783029040983226881926503799904703280711591416814090460021693980713423492392899058637318188964482246791814035632100587386459907166718719233039780632326262711374431976487937361762431321652160477709396221772889901216357884215309932070406257398756024112487269760993580962503994714540390037563182863477529690933922765387022157941079702427191984189820550925756046415238516933774175604872572715899297350918467614790953743732321407759010565713708724435328457395627658062500134288271064075247125568749224514790564144363973498418962053039503728587817467260790019259601403807689189015360864013455483089520623443100369586861558432021501032727759396172714137943155849761914322728699398189404421637187498538073372663222947918114334182620415607692510598151740819870537958709620990877878533772407124877970783787253540333558987422683083986821222778073134357090820067304667151222549815467214113593464854898176799549601265681349023783911979036146258632416881353425542894947327963702048477599914002236047277557838330135222293417353714069190354693699466285723422026225051910729267214130786621519906765422733680399462862487614859892554216658882950119026843830495229759208061795128609713795707838062421938881533756999365565422205314623283684563504219928045062889299149376482257913779363685934275485062670446051699550437065092357905464011130402866167097611418971983301748168208104294531835550308845337460569930435441812186129846701577083863325297067079343470028697096485798775025467405256334504144306294586158604873674372528155858201086377507786297929895613711798398114435649441366182659806468629393802987502222903082449958879650413982696747798955216865120717547466493346549038428202456200220157296235932770788612379892180577095076799944760943260869330008293223645114672048464555015036899340017501317009611446839620548465840802244338358964023219347925898587686819164170820662899275889166644241982578788843131255772213830191710934528242795635740955386349408628102581224127808197396027098513623015538517708694267869007590114703666695808208348183299620641849562533813509067195734714934182928782133472450760239100263561893755508517578378782904783557393494481128677424264635490242125901095010420483852570863441582545147382306742142083836901392681771446036125251451604889856773591577581830097761611067582395384062385962189782729805241427122976450066942055486048121019182823742651606237754909171032218791576583558800596643235241443989802110890745856134564367373073728775460823223490748930173504867819529510215055975795034034697073973467435315933508979597607248177393930156272357741200837452472880760350427843301078049687712104834971941424824563610975503321932884631756631117687137909843283762059108744204974502288782922112227154602975096426164638469600438499877108607392910575673539835904853153415817520680498495772717314333443473327569000556855038058000829530089465712541012305236002300025104056377734116069809127412989274560653296931253443416071201628460472745068905843500571313350406121782146334314494004016814654469007511175477167218875599758913707475343742002267565491857579344783293607072438496788293775869655390086132945021455387484498164401566531015500035027653546353157362902332239549137080415679418162710889136994290593359166769577191485249548288788154764828719619379899245427691028900665312845139358830432689526230556123842018048802894799538173248063508438153944449607805280903543099920134491178845113575464974914287031069893213203322833116244732921707368609990029234985799285518305685293223808183141504945207572191008439021318674098016257875473178791046048439456293893281782806112847222617134240032088712809180990949324112448761180117476019008182937223208827556363124505545587846552745109974023293181462192987890170128687887169459266031053791082501500635602469243439980473811657499162472750183897547194872989109607840132071891388097142405250173214945054240969520283832384149719399884741618246827424507600101704380229074515148719067253524453664215603731098645660602098898384376254639430395558465211042242543220457884410888345103942774348107137341226988747242589746715462493358831889515133697827192891302549689401123090437849921235300189055808031419038014901196479952649709247962106369028640491419021628300412954474913457746281437882748350209556752869184561823224656213798828886347783333798865944113855598355024723360976159914651900216163190005328490596191120946112345171552845649835653195363754569681946279973704555363905719261652759777828569042037321594200526993167077775700707102423749536269343667295817394253745560129810834296449536049153437794139907237188274927237899342703943787149142864792516542986961543619061517273932398799020893510568251805872213274035056661055026948293860214145086179623259648167156676829514292348538285849012716674320844308557720705666210833796111910084661221099458752599659795096291006888704175993155585793450741529645236277922721350652234598355814708850146111312534857341829591465164914553204616726952391860950837968028449897344887654561973171350276650416571057024433360500913418471755578217540689962224729130121513916592684343319389243522144057470359935893882318853180641867628766371743113569463594617777390140135895389606855660447119528357747660593330455991586173347969394197121117949207499603828213622226441742725584306085456487964273980283687374296625686976648688453884657194968816386546259049893809198031402244120509176207097802331069126247094770735298206464216640929806618872265261393864031440461052771977442000924163976876128382544918620217302517953298724319961528351646008461819066438138552571563059860262990777299503885031167369461316536513396098284687994324300497268450428696773954338235857306595407424159226276024264555836803791852710065028603992407036976306320479019487625067208053817946847723323834308177831238810972909790207503101446200616312889636866519077430482483549732917966434328702105067085248206926436534182300611862465732266385360080185125025828261774264430370216519184337116117732753759909146876043344526247231122421652151604140133046111844743793308555773425410690526367170141398725171376361820774369439837532461048649266307369617464284284719877549332184869698056749305367924090560307697422985786566512723306529518992310364911354502342712668075335189014327237659025761100408387110336044818928865900291869573339411020395058566496215044383182399862867439686453658593927448862367315412283554459350725819877296692366912675495766343325625724707599730808089359450521774766348763855956505229261081803556880385040993046935247007893279902931198256234261490189104367645658836535722481986226052040104565833704695493005716131792901012374021615812988230887502659077505180764836147793128622541723183007802037769798394900206322687238593545313647740338865031272069719302218572609534827772976035938742312224745400181925051612116520788380383433484304827470548583405184594731485076245721131650669400328219913109082602608949767422789867844162313603379898859517097951211630504539037343322319020603067189837854538712465025882361470593607840854541144417881962237257785572316499261909832953126313801434525649054489043156370912069489018338255119804340845661891673571331890706789480933387938991771570216582604675887423580880083349909750042765223684522413789900027868447568171368744200236206859862681497060140010685100535961759805384502629394442956653931548947409876341217193560902172547728009450932675658169346127085692418988973103625035481793637961522730630428483495796944781623054817309296485141378486143432271460732411223605913607687507619462680733896425988153486994748720121007412716284865448949839913617174270654100451484540190723792016679089992943711959757830228575947276252034959547730932486791551053861417012950993089923785113768316254560109129138462159525643550878820724564996270451240883698557908912951189697859799394212333800004381421033064729231581730116266181946646162563180406844467020990625856459722728595120852068383242919204429299644430542320688903429070854842246601424877787171081288989120745587243688697599805157496234594546900404106853291840856820872502265696584377749016897417314615126599977282846081959484554855023319213172352052047918666815922051763112371277819824398051535767578439855026520125171110072034107003994207526978337509555666519309056440703972347366958407633694812486565871351921286612967058187680208541320716732092773861415805014495594886364994387109577945949735340173008730834138014847990512775706993568745935685135909895173820719506528261436253940064876745538326920079907930296183950700699114327864445720059193039442244084881795336103429822461591878746961663743272143101467945050730519613047341832639526332779380352436068384664129414604134192385172131914347863540343431450098940298942666318201124448367722906412208780570858019062473838579230780242532883089597035522785505771983720799648443215242860403753527542555616957930587287324534323786485033967443111706641547823967547813105010289453686790746062350112776810360100240439864727121895837049688420769082445295623523871408995804329409942612834304289093380508469092890099571118585709401393745413230489381892823073141250163084192727354956141411295557828898867122074653610431135696033865513732656609474481280710964578454150351921774061246327332064093329712297387804880239647892515828352166327824997976947749041043715609936858157181211319431511967497685845670398693402672481972274484652887026985435825029726220710112390361394232578191111812447765686168545531130877675214557528932700012796797521158807412364554511416096036453247123167827510045265031595806471565738482636634506986133549048569768730850455469016196221697862336529597700436421428606007655639480003426264953453607139769444306152414301987324270201370913836693498421129374360415939477132752614675374647787525126540600812723618453654485045119657644382604707085570980340579927500803456572094898702961183086985565209144100580903231300220880325509171927219246734643361873371659096898731420791639705981803000077720565213065306492473548356326719379223163084407094847523548151558667581133557386386584892550181563496465567990967283430473630793571435401527531199485582674362712379025737170395437516779398714060778884127999886912881258721326796913937281563423404855864330728442985189436976042030687338337757995229707528942362614733235447260247326454663596206710463956299238930646852561997318408477534863613877969643833903128327453839232202018889633438836290930728868767234030024431867576212058064240599924863202890152666298092448828144586527228106037407140431858678663505093351262348979829189132064284679520724327274856728795940017714920900003572864096384497247866032998146812533604716788736711307245497866136101209148302537367828880229160017379628433975326063624131617142107886163017246095550237639286250073274560427567559928394319391573682551966674323268092798476362909666084510169033407109287652585786714076046594332589421351857292206975549204910105610849926279810338852645866271280702794205654588022295151860374250348685823520000089715344203225210232280561538588324663068320164735410183904287496344553055154634638636481436447965959172866543856091414694884453347328550039498633951825896489485268241779936426477717538078814021663215873669137306319551047598176280265220479309306249749140893731160086490163234331536076726586534898764458857740275799085708340098618406565565457427573783444256211150525893758953732591361501050407084602474149063023115752283149705543697722170894909996806429956636339925345567414621363520912058622338521064655858070780584771779788676795392656632338032633929265186779076607835005252387602780632642689685761023673171681424021080578433061500505364495545766810723607815041391255295110062934742930845816724314431614487816475037985689277387612456310623814904982341541313715321719877236269245755079359174490420371767909761171271170926802063669727769691616701734567693266342074816325238961872359973152228833431798559627370405434436755973859741118867372761804468646480372245215617489467412530893952848177991185241463338842161691589389868114695557735800600929443549050362504137236816504311308937042031804772087693516894218016054333388153963952289394288988452242041821906735242938303868251261237678643593279968302263908938229978808920380005897897026006188922829523830069811801123219227744557134149086235468247292418947289408175327089143178608364567159752270460262338389093105734948394515866147308149369547599790772417862454266137817202632734613936991972844952745067488891983002573331424229581102483607699187587115276866607583889094671461668988025737437797811497502780656739796377655091874089765393222070803770868233101066224504503307395597588786127430075605536598108509418781851480683296532513317212740488017646158363533786185518867720194243680244803969606633008244405146656081380133882581601432349213901726780436760361624974804549153519727992084806015241127477204376173408530803209988393094705980703722103672789641218000598892148008372090908980945176222864072414277911363589406002387403634839319966100382364332835856188386511414399979737155090607454220683521898240945316692996831406350685448305359593640847316003929910945756845402613367974054946769559196222342203401828031976184637186239734934126882720879813980035128558181674428725848307012120124564799145827354434441941078280820441783481767821746413398995476776206049217784868655941585689103711598386267507437742285738993678359877176044965812705150405511624211416994464543429991493220861851035692907005154915637647995916657307239858457028298832227019256664624236797823772004030504523624690194364518528905733893146161181236650261776627129812344048231168360116837056835837692446280984234967392923764080322756705083891977533335066884131759085275086354946841457858107343324823045300822043314371507148573700071383314262193024701753173333904819309868410266486737030847680702598028655732317731453444473247508373655756564099952921213585677669774021477314755690374463449933616779491671044751237716476403380225375317543282008309446693448826789247689894836365319190142797575568988189825583127578423942564671279895309533647347649302933588309128697118451245248142540497452787253312504572277114455727796281986095415120675518907383340666083444011885470413883319716875715168681613856091861593070544783121385041589586342335540349465009306162424715596064836467893992984106107272352380684916837345224183905310178995583140315309142870345101266040418401280844795729460732480623954727852437969694128992968074863896242803852946899533959204913249920439574002441736521036476271718458786213588917979599646459068165153948811960008831509840790738585116733325565294337684133046801924408746452682450070041613952056741763446384878457271729713767866184193648634095154939333200374882407096499098196254825566428533174809663644116343453087200606832514598073810997463999998799661272732469627910893097174798547789349371650138272996154909316436759762017197790304531313558185242486298354695245849298835301536751218294510479616040436331600216759768654654398835582690820934761458902154011724522958509349320322985579321734167328230889367704109864413914662240663999157236739262800735400263999794284660920913812175547749043594817129135326757067536769624323956704561723105062411810678178141492306200974448797541350076654283333817032260988429777707392461513736047515537806391254934200153125308368944480011835770075585348485814436277422143335834563762740544810322378558591114220275029563045206410404115934792828025930492402948659060771576981201748348894514192820730044488674408462735352017370018353293920544690986486590996649333197017420368629494104778338858002463909636074526292338847849189237409281421202217234680306101566627662036364929271988111277407030432742599571420471673005857519064517012561426722880659602144271294553995786812599671697445782288156343499266919798916991091964769991576680589602774155257531430531750606060515100722530608410707023618706453574375460872156679021619417142689288306329138309152410290629614609176981186724858192452942875512027019157631251933819836283104718399634858013582032429295303790870431512536630431117893055225450550398867284241423039473299475867374919387298982371215251690634763571860142525971379484543185729367377044040407356900428268125348480502789534498083700629724198830209420050640656249566116080918586950176377968189946745870689009455117704997360096483061555302759198735864640564886453627887571378298876635330089416805876542499296324352374687480662773567178026594112794118329259242634019155842256250774762087974839117523019699622113679659531212445184007425088688852567809488819163048251800149580006002703678890840754137182393652913359519621933929062076733146119644375978008776717710554837857582008578332274069242846605268467811520881007422899430308685504300719416315570342418208422076537457908842175971901181903498157493496974512315696148420173278969293621788564673923231318048783710692566962390060246070786378813621682785597449729491057518956794587777934234500884385332452324636376653098505158106765159796982186485509898936420715457434579040600687836554397990718052666123878420830361197154210965550628683949124195523626667208995071845722719737519342746665242795485756844277756528346311881780951972057966856947895835627412060302994458899783474514908820734323178320497377318038815273118525265813738551299215912800712529984278708739074227086220590401126332015787511698310912429907063653317128006828344855268456922313911048553749859486870744329439654857945975013192448783295679713635998550423111729823903812817593428320517607460672796102130119121158101920994705768581839777165822993933211811326526843901205569002826285213145236176886640031699715872428035049472591737222688717077506377052766277522502784869377787468666812475254561250243437173168380141258058858534402122127789682003773941492225845292937838314040234699828832614224665219135410808398505271943368329131159317823628822449163488647532458167652398193202334780367261716524108063999451095941079055367933775903999027058589753310992129873916111479451730763852333553412106025199620111864082303505293024410923643600402621809022622314759355745621426824506256832250866831628637587969826966069701354610876410676247960624453326998992155019338972362393977468956787818462804169970800766369393299963871816965256627082662831166527876957964961088556433272558929036129057060079851108685846880033831311296377412175633100936039651497711079675546074550897507175349493099573607118960445791122256416592696313871023897037211956060793421458102363022937377266505397466857061077243859066668057604552116015785032125252457796292481987875899269029890795032369939414845777623764507054130631599560597519276880246217745097424158640841615544908617501178072552829945632366766215071374302751071845731231033275736139710319684119231486644922178605192623881019332889671853523408658409016439731560275410254818788487994771682289809156369259014446382930367939110757123163441700115342783026762787685639943195394394476063521403288789682718992800047013331351390281528542319437602156342737953357762907185588902191470968570716295508085022735248111119705051161332590679094689412717527002991239758362913731465769014831138493434324086075325764916711588892363638789181520560323519021161379217094658548985414797027972326472275190867886776301165062588210941264666868108526538651685437416981975674597116754060906842561930177621792482960484666480754957091481779629207941483651250913009416565744157176965680014553974888224694769501707593974149310187874160180682933232424953553037427756215513322838939203579311325134624071875769482117060682842380688859834607925364604388605184900739983030669687127909619304948238898382017133995364819935329172971091604603398268308684534732984956433523604978698325850116010316683222338425372670443361803173447002072367269399928275403433955554936851303011022281359480326144328463120814455776115878652857211775886349306711973581751274296301110153524007951128205103892332167627419719151119212007040846745642086992768924340367556107135612378775559509812232504474186803371939529141755795660685405081117090305299832826450530912162656404272453761598159729127432980462497344370665537493105927023930932689613107695016185708349051667787752031090037946586857853848795238710289225800247049880374354433278615703823249858515910165996937119375295576193625934498794548446458278954803994782978592212804199189766674967144617590904759929282785654253778158023615108602533295830866275251986506643037510500803237752970496759271107534153017814683654531634572096818231219269934538586317252140163049437501945213897911337022697930867121886597004674658746868511665664306385943054191971606291897078320088995583568010971266059755186443076893174793499305220812403089523836328209378714039175399382922304097942579173541397419530467421835860129079889259661878767006930807186539063735812148341075113274451251651832642858326250335547487059938328590682186279545719926643981262998503420896237601627990811681662331962978753924905657631577949193901137714858875921509544131813775635025508092349312891903485739018750981401240555757622499806757428297884211185536952911364897801815737770167785842499170553525450431467198568719522966569167578237153717085874023744271835973480810095701119107406384912898943140481993719708772539424921809330813627015123325157296433105883141769168743008666657124583884787268320222779176856928233446921524468469431233788854715814570227530203507343179215894592294084715470554074169124748184826872374834205730335868608396840361238999280535322800768925910321067273855223356092060994030787135262025593906096568598173838099644027383329656387129262293779521870752681182592477080600924009846560179154311877231323100875667333757245635676069975298977251476767036381757319485636545225658098734344304471099926536615244587517175034028196589615454201925297741776782379977660725691340148566355413765715982199802661448730445322256396332992390030133467963006389492570369923247287643443961473325234766375775085436952252963151265327844490665892639504737408715587285897262760886915337012162534540268920651107018763347755752345899305823427555057401696663812055293309012517734556687704069260092104196545667718190005334237385223003690109151631683243806041467207362535139208780641532591474963881429063141529572006803402948071522111374659271371625718862198838307078664597097871774829381062071417966564457821378317877931906781830499002259025686695397863080799704844277789953628446441096685019810306334715537559946188100129175563851591018382936857072633195753412100576169159083039816279615049357710065258983618235957451486088794792562139667358466193148740324014900671284914756639607526443440721930365215868349827584985355355334154338916183790771697792365503583591125443869809640088907195247886403824748073438953377480363310744722007312690829817063120188369562147451958698905769156481182562105989597260735305041587216852875773714920632603422633764296317051712015900165210403005038715329883525684039290206073102219392745229278294117771551092458303923523232605682207903328079864383185675292881358493928639147692817358197836154748268891404473624533499208772419500762969216378166018603640335210542561642014245636749459839050071760267062101425795178265945235904611063754270383783572189867090704371300978159950974835915112765599538212853230236615615914459168336113217583901278039921548999193517501869472329585698142232624343121672070778793351974075319875700738406209749349576472230005880029972627310025225964744925271929110529956018235788260682851659920737066436560678086694254031454617271637292259598300974555009601168401877019763538022392002853022276284593417056874626536141072350297528361144238862083042848210723237367246365079818238565730100161452385048798948608734268912667849926591208658746781383032029337153376635531270391766022196310228358226654243703682704956011790048426325984220595076525324751324699920565980863267333773939554343757893897741763252404390615940938222471983246208998302951645914540468500225920744476576838697076035279363636196172124791556276908323907804777956993511807693565344732949128667940756782716506709084129325388260307878242779257668978500738677865521846766764992917885255522899054988960355702308345767874476973683124526199614541748595769637709854806288946140381367805711906554630579912859232315635547090057488243721304123740903603640101195754490056236056808991379923436020074476354008770184852107458728399417354504874569949322055489891276311347523941097568471017005207575749873842398356693653709663105579651507694812275477979015658391899952246500408435111739662040358185976734128750255882921355703824396284486434543636239670096199379449603679622142931819877800698756902361786989791466517033699726959055078020882145858766262006573016799278168406995662300837044469038539943195198113923540287999631671896689750303455059009959531649864085158427309538157505925696375811656296524484621596792080306903139272855539402520035897571263557533345904216718381546313185000750596071116078577992529673717248751234367667804210892771678334792984459583056083723945966031134391407730060431274608336118729967088694429725985822616544739205464442048976690621398798447392423211105525083226733996403405840062105181056820553291767480242994231977446325957882253714587244359884582875466616158350152436856093472457730993553894190978712096552846636908044962851940323148620447573923798784835721701657641778324704444544135426160194258704757100303605000830051429908305312144243947904406049395738613464671980245818943768067379117636056719834552763198831991944152257799653266602145827933771848220538382997071778083482065305180895709378872981533053558203746176943681157527308059883399168481433567836457535600710254860322247181616737285616386432655652862951692783188488881196356544018725488341497697505447962965157285587091771822603820616741177816416617118421800318781532677043936252822938190014754576255066893111991099854407493716970425047760320096010124717375920848059521431951459862274056249689828230747069396596135315567583057541622365024619666385611011164086162390705912163863153000848279892246567533589631461174705660765194595512186670935003257991060407554605159872687029264533197050155350924676243037267039619175033926802063504220460536688011109402816344483457930655237613094821940910222255717294810207719608476903258390595670849192230640239256104525001665170647287679881941435956154094669577317905974873521888247518772858231006082375192807183037246436570330491170535049047536985702318116131321201633347668808362269621551465024656779535179318354566877953316411568626007902260899870363968181261363375709450819002977036883468556429486273663627453757632986380962554996410303002789401322814871117426967377680371021471633409782504855807246955996906433924233122538997873400241686114254731653671708724814733199113661540937315045668691737314079668688822278175421014537959384575967842588989890579611630745184266376843187747948915530465057075483841010756801569665879171019516497798868890499833342397786202992213003748144712143518853858277799107259741527147165275608902930039960167587545690406869110667431959210816919531925707698044410573957903206033248131897090390665636290037036592275283509682224301338578880910746772330444881866751722845853161482593665958049637774812900410665682257008278937474618411409090994192414851081930072795509758449385755268784491365071597414824009004911612242541170912109305319574368567763534810840655472489228977455549673464297327839758793657533981265215601858624087942475278987580808222034922901347299061535537994383101744947673369013376671437348327744852834460108075376999332230321451970796322672979897958737851120544539917268018200105083719791970310936453342331940986642992223323684222595175236726223179717067904704595929851476395905387279097759957099452727381891318219453195471319048197815841402332967446506692116594450002769715283963021283309969748553972477308824207580967976511043737640640289749816949024127746201676089776710841193151632569617551309091796128320799354176415276596577318961062969480445794291278251766116345313519843645161741368706106394644232676518882677485061108327472686082222128837457207766201229046196311421917552435411686689008633232310997573907477817452832004055068795940657351340017711313924546702630375042609108510687701049983905704194963040061195607186172701246976048097816861660826137834725677861932941970330701864875783216000917482818613974637963145739600458793454844688093735767707240244999579041954817097591087960690396658893087169681728000419304867277565952646589491802450619039117963374148059136627053148576448985816654733560752880877405805067661941484537447143121104200409472675754169597451872083347616266167812620170978839806149894959516574524014421684145045975607100362201152228472457655157323218287973946029014437809664701532254647170435770892789185914257244274747134228043658337133571952775718329773355693897880918088322716598059860044625474092969885691107869489788270501285220631439520599304163581316279736488098078398934699254197266331048643484909058793367601805728669944577346615089275910043706501664274395521964028127860673658955471443734764616160527556027488374248507512132682611762228370066276809148936356229929520791622883493452021944610567943429531266441643879784999115320225034357613623859323200135960499959439941284976950310122414090899727802389206823429231857626651181528166232527571752285070925723360807961663203490377385733872832936130082621673051995733850907300382720079003726098351659457198189979772977347684464077719442628323548867070300592441947802817445731919848544059443352183333874684183093519242799572388411755164069434116972174557136900282711090233367330068849547115030975178339483777792716244419524050084231529666804883972303912861217995729360709690966904006238716810193271344139774621185967629567501581242796214220226090702916611623344707216250481043795192479104085683226491968417122657974758075086512866526077354731257825033416649816196344748208614974228230002527978749929547901458993921229163418235963736794375538922221011437913050335307608276155607352000677455436363336846391802922644234963653653847195236784836478616375332371054416898997347975459446460755428377896440677642784481176054674333004762883337067114883198698865498424400719416478774640608749276227142007376371093957645330752506894200527735374438588868409787131226273265696443838015218244087497234005693609900105757629173481053823691249049732811324027892177429771949653492335766114022554318815202256839729795884266540637766264291510739807723547010894712803501416625851927108575896340379054624123843110399374515264514860992178808649850182141447035689304043094063412977685346251015233603645921225623042255001654938374826396120031992865306439907601667745010269639635524299749254620292784529027735105174394630606617024516542621668158027956932145874627555520360973265025413491320321921228680883067723298976100425643488541151610531645544332453321573140097548616961993290234975997009729326979121787982377809800813155556280457691131590762691823375131572286443304863876862042834718422952689036469763608744424678681205673629538434700415778596793804951688361304061423055091671409946850238941033338421414165942310826406812052061826885885540379408000335954508197438536137959824611251558363527518804696924744844809389710961845350173930484764995618332487251089308970353999339671918958175360110546004179581169100916970984245541301335508664734694654362109986112303330855791906821046892681088978892601816460974151755682036407158279495970213336530486487681207522794853576132111339828574337524350885288635501680629761198623590050454745142955633808999670137752917785313771855542587674727534788749743473602893991367447587432912293103951124490455439635250973668174829402849980514402080818491228027645726231142879928279105542881969661177162254192578460144580889732292007805998057499904138900241413639982098269496839604233728197126106318730219429402043930571119252220070778733745460307346421429207159130050967298093570341557393284307816754399819798443145596908266810053584118174208571497496813947353162462859431762551921714712739223912701483969810266002512384387440710645362535302271961629763405918546056899588417852223596246010389690798907438592522445035676865891375097829905277371170663984860430349856285767662692531422899880474798667482932829758159067976167998847808969196044874196783304548665689250996170506833475839434654201521083656252407016737206918098837990828374910058554621904706668848592214345883421579173871834387323116259637295883697403740892116962881454209914690043269522551354262794167361209692782053747888388653511027937192229148031625633360888093169725093399582922966209905423359629150612555012628326065517324161966988518724661380297985501006611572501288763960260317265143381587819720591137395551335445225111892047295313135527495925190904670455684347591735590343590743383164709814463477236641692632341728733612351661776225482218553457153933235391161960344821388761035348795391450821524933850225813736334452513653991258600833849216829127433530230837166979706932420487992516088000887222714528525409482508886757057754489612033154412138546741204635211779421029952809574131210157868355551265297441508707699075263270991932137345205048292613381313536964191956005243896319790421443029299886511963279308808390583090118286389856902956628072130347084221295152252563206963985304238339958285226388960270258364899947342642361505426292853684708357287167358956563331543943387323485189771386616278375776291615604916853058832073171558288643053380096371413055012326970427179701107178468087210836391384291106990021871078311509775067925874951305972517059199255540692818262714463789548690012111061011182775939424069716804833187243012657037317783477248347571118191693654946484215333260095078063714937716102462969638602756047310769439297941085554052691084314797700224410486089238082563219742478352212230009368748963831284004302206819432246023957417971611383013132627962043416487809800489244237478313219071353302136765057292637818095557058121774606042653030479197176071794657709105754849752429321274368341211345805703463240758434313475720069878387174391406321713518096287769421981140999517873733576447211329833380093177759664301442063814174129221520670062532547736598585997245053933750553025027981552684369481639735858621785223694018591543940578800254780110817129640584657869917804802591644965299519158028661248944105348766744609929856187034984288683898454653708988703640703942180730417714965983949258807180821114968619679070069601573706104485779125123990363275702581502609138513271242460068575980626674975637621706450224452310472717883679824603825431983116479692913848714441247826054409645741988931074119583536453851786153789680354889417404610901044574991445484182880371729967648351136212931363206434871589429149315370485564861951255611246424318347425442996755092661580524369518128029893954607800969331724746315767684744995454088971852410298171885964860770514365822946941287807473301017869146807623048224219264753244793091420521384847034376515442036301951984696859026448453408886209268161638614738631155952478639984104894640301262159316892298500036332198584395903676767506742188982491381257116186622259309481165517589684919040111261329344317805324549965801521283072084973864021469214722098256970472325117874762534424893301293946678942485179592035552381064854334713907918842693124364515748668000556956023431571021204917466828180959027024488039105304410698305824668487391810271000740351478757723085508276151244919380669790405609331893676633683492139367529922298554119271008983121672824133469854742295983164883146412042354263798627425772130620089447377205847814585921673089705760597456488475361856886126570748633686914103179839566585182068736784982721893945822274374732663830439742095312925066096533221186359371351114606543161475641082913340878553365277360400667344095847458595403115712530449114666592424342394999127854137846900469792343510303115370201231039601758451052664342721031360856322464452824172481634781914317024536682105496764827556041092747497378750000438378388712370273435719732004972335878759993698681609737947812729503646873459705219141101478144781250057157059035631256806901642385144205348640690121473756962927351434795839950719724695828438706462836186346852862901732573003928026274321004983016412617965198131092200443652273087234087202541491127994229209118518695132928620369996680346304788105660305328998530089193890317132922647077661735487618301806957892359902381959758642043061418227291862498974731620952528459293786981923970359406914114374039829270378373229808676225815104863456559025452370414975311049567301931811854849926739160233460133137963322575455465192500405676548630323627635941937711778190435550104883730011563728592308785437052432947420403417114393063658892298057410061129822064368255659756719512219859375723348794372242769062590479727495392937970480526184540603023400913749905673787808576008879599406555656002380181546934535128966483141773368582837607061015867065874706761303767062561869911312728065324449727853756553865299952530865069137077506526181595772212965464021235926133122547166284475190284260254655196525070203902961083760230319367070365794425759456378439860536109769304646140508787995150965881629519841119486272671165140983231422470776816267170055073475506218799148661204656551027799755944416804526357425367448486782897385688709319655209449476504603537897926345245002251018085904052852400778039804915911688499011316297801819689469824560864995327168862422698635534001516953128701721441017132411028514511701382238498093767322750154656139241234340119351981478342171127296400146594306206991493193116775004228348818643919959765932612247593422571505124279676650109688407430346711381995291967859357030790577023560623451607741520554418823240353886253082818981836379032379494050684511067090661576310557615447066438160483961727997467042341835644325747833788085428863991279337464147620440139175995806399675959239911151724548814790589655855673144217861637966324743436744633494332630776646571505938560270568312248030534649347145961145304819851911468540926593923798793372434318332623948362103016718596185337020872848006926030178018582130169352745337594059919564945672602487769782558042164348684641611303506949289334757209786021458260269484178800867266654317875137292634370901051432910330708930010585610475297595039217771221865483986106090890352873722179040101098195187151512846727665047111258955624972023749195630024822594267054377162967198163506249296926941293891296660156572808055610219489333821243546444122993713767946768549216736059192092217518652576814587313837041835034914004222180284555166248011356788333847006887533338944934446194823314830397401967391465123165354126788736915726782129358930574371062137940941261064296227357916547942987882497637824098750911583678334340624506529707355397851923161540252145434752340787182797948663608239998390715126141752848985802778593198831147286419642519781736022104611876512642377947106414715594207956742589176563957029417608857766610788164830843040201846443429635257644263441884432706990442029958855616635089749686197474806568070352241108171575850136554561703393093463595806682609879133875493141966791752969683684081543671797866026940867728643380859756675998942435498038102179799488317560668529377404374979120413530834929139496264194117800247610699231028200018666065777652216422893979602873673004564698502987750257671835149341090398623926240271065886205194168126960060954673047742187882542051433446012195379960649355511665892196231984284660029250523723020206272880120083688772869986117016482231056659562313441653341649528385783289354339321390527157365020431456174297997273275693998615705489349511766969280930136709652918714679052326159947997792827915275446036974612773190970627103647958143550718438671155148600522627219102511393046148013195101898066474617687891591395968502069024708413357495191963403836658744331660214964545466264075932270939146983124352145513622514184175417975822279999104105331503920044937466286749032831974828549662392912548697057945155283077809050795743095559522799241697263531249388159136169277962123422363952693312913131041000498981465831926439602122319275614361434562376871953180035905145636824422866147672784875806749579034368963861509052952924980273974901428423927783929500246250871227031063708065153341331106611154570834769233105496881013292199424562262402982942426653030699379071119299226354243949078904760436604135389406837680744410861926360278307581375106525305461562355711289654912214791408225445414007941449958747656727277948158222666522886482687740437719073267684817726870565297066185816934171568359375453701599405981921471065209375770350256581068500020718059990625440586196765914897022526754407729635556254666760761871791429369082825865962301519665883137619985610457030758891849007306809673809315689603322377352213863322216025760446431064630087376289663518852134741887580384229078234025389608772398020401418577025617104259634199580672904044152435215787610693042202625094296919234406049563414908185310282138341547700701528613252586267507969045155684044406344435618955445342939651815012214583162915908864485036418035591687069455293468718005312703732707818556469410300672981486278019747305961674732231409959538578877096320482842430672684599376328426975535023470716253868260573431926795612329171283102099501929824070843626864187331288861279437728585621937372386195897173748218278535382027507390619786317650104330892570051723483953905002886708759630608515180448362276379188157565815489307246827740744832774970848151652289651486345815739347304321478745131003795161595456464346064160528371858592826348659269608122297736247950336463897800273271564595171091244328937694978053548038355388186261873286844966852143201529585374684047917242255227419034971522177793508768791682036838663962912378890443048243348525402584054411794227614427557911074392116438059996769167234244049791635150872771624587210418401585728273475114131522851640379662954961226367573507564868021886157993101813058135074326120529605609165843031997661812491185853895646177677247425141777020268197032742173714831156364378700955388177647405762698506766138865191246243349165107912158080224046008924606985736729381528750579154297291618513754945567013491721232368973397609413286315427779041926235064229936910081713575957088806886891212584869634894553179645064161173468741670411704049853962984047559220991444380194153521640769577954070368811632220701818653310049712732491064457631049832846583487746979657753721751704903356499677055113495176936442127180178382367288471604707121967171126874258223409893387640660453520894442078628698947353928856764400671634005089192762941489198361556662638229192776897793685290852918109456182390100521834574513553805699172589335715885001614935429920175341174478736780562194087623503599818254696061016816181324953439009733367866887345618811479343883344316583441287529067819359836234538925814351246411084509624511141903931339537488191539465611683127874213685126275714619774009862864030193711558669940959338112783253660942051379651701051477512421120773931065966938920942336023924706310049633577596288702987094335693999476879589208661062925394093875091753686700026962216247483773695856664713855951187183489103880670306784176130127491606608538869408579252048343182478555024868608318141423823948056207264570493237031997040837817953717597973768291736052688135198348694212049721377609457696251063319590124660263996189261306504031759938400633927210321341429868451262710731135588979699103964653311134533066062839908654938472501850321058539592223739799585559841139055375182829295314669757057979905928536746751921086439721565257584567299551973204300827915583104685361899779165863309951623157292720203122106234306065221430088736974607774241189879726733490728204245567157006853354235663428405167790475622287194462861335756075233243577922533789246871503797240619866919458355894160929095236018750269267880184064239385066418405129459422981159336750889240016462640607315743261330236709886432170852856567079124941663656235841201630647952442487270625821987372102869882602817163842621702569885817171789366980899210186201288004450262615505716382819431750196825848974674760116106744677066988883487194625618701048515295559101835451138481917071582311995744093398190670555128192157100328240573161456586812954665653057127489999626109056691854620911816971128113129268974128061421251671935090935804135732196747130065971951873340345450371597742403713732828154691756709610667283301247398639470101071637580955923154528366539071791056332794572649564595990392201100217488749619769028290830543013338813708257954426612293454898791426165265291626454243818965195820501049163778161705681489785665304153921341078820315316907842919019269277285011857135710910724947690340997304864711498033251181938216682555779494167501695705224342924302129876476685983100269438862651755749611600272581155032450085564344669728681848673210503594791413410909586060626727329537701089656839495428526560687546973349365350318541816842919254191641650276042381202659761348731815687531237223246274481119656071620662241613735975617910569806476633684292891522428090325844151645608094234411689476996201803983115502838511250693107062985518419204234343612677956636391605801419943250440654064427420448365638843111765436763870142365155610106964098059868043701237737437343620728480095256131802598218865187235152588622685219134582190366194641910855471385477952921539284185717210794379777300368331056608975750662486355770644601613136631111571533970539641780905723644655353603695415235658266960405971937268707903107551619014243796571220498563290033917513986292709304866720622992902402354551603617628448905783197586657053637355102816618138127800252946683584683814039578050397718896116009008649944023731003161120804623361858548017262640207862017354769848049962072031664706761948397134884072935282207327484249900995804128221083789392377391703144903956011957430898375637682149136304751633919422108111873518712957985625089628060275050425624950648620166132400026318143877583946220918642149648809117299227990231397841905749097060815613400960991439046561874681710563141580214091801484214633042881928337949620072755478865444492957752054163887999983115494086259199713097331565907291238673908469894228034848650691086721151009377452247032271243104957047444141704481347158359025215710633314097438566755473069224221408641356299600993559599124023512817254460078706672429018922260796019510100369068287753742662427931437312908861299304976278588038074114658713040896816151870206089334630980136647063413168617236574783940588136942578303879885986097925484854862521639841085529570998628746146522791760647657610402107024311013580772508091824296721190250532774916755879380856378242309688121149771104910539639209961599131934038368916800573829619776272739292657967751798082638414064360304337398543221313301843428138878996013804692953818970650280486798838182978830316763838035424600122087546700249502460430920643810262066084766257538938002928413499119836839551605838197742478204920078886930215827346487661023287456267451706195624652158158303590764603324539740711799915069983541107391458195013885695791691068404068299260669657891006565970373140766032161119363258768058014772495838743573466401648284355823662461230624484677091958924082304072292329221339066712466887498256782771209589258399311319039227541848993579280128832626950733531713816222714464419690020648811433936796910640014980354623757578672093782270614739755831964563703388754717028021538201656902152154889406136174497463882394283200746994413884805884814786142807581747271549366865418417049206520956563737371090270152939384898127074014994012107698002493590437699152542274268126129078232824574305044021155456778587898708357410261229670264949115582777626149991574889238406593932485822474034988878131609245663110349492143252383865584223740691505690206373676745161026850507132830121090169713278830590727986688171840911291381637335617324547001055173765902706140910806321945404372792896354904663585684813536019601347609019596922532157273931186530289974107582913035288441547437586212720025325026262396363109844551188494203437364154390661302769639020041693716116700474845925638293752541425630431917682083828271825045389683869957326810555537527084224892078106316611994961026459292882509387245878533925207527653844135290568708219576762095672496503022007863923514407579481463630714466873740099730981247943784543686554482816312445584431440400747541676299534841473963317253939755072090160548033895248457234007676391871423587928227721542645103328653630251225580378397445636517209624201127034562156591732600142796788851005075747628673926739332845692238088326150389908634735979224930674148153523723405388304808864300573531677483494353857156145571364362212974607219309751375593913983990080117407547333511591156503474360757418002469522540410173191016013268161396860676951550065996739455165445421881592524721831927670825662235878006805532189336130117236817841134458729633430952200931942139478866803397061035509065580551343422611773699639098331322650839422070184107732640014965753673320890570848773218550108986414855200524895039862542214373795308535734418035800513538680423620219170842545967398766070640569904738264850226773860934287942462993405443647719467085499850244348812570594931268843635372969895936641157590704288826665180372649061973562308367709785804211627407120615952365798681112524432860640547400295262564863339329757304965917542645032186408521991699044393922202741206588758527074312590785233994967578497805772117214340081624267972070288945885838875657763319922629970540113689498002519118045655719066104430818382982944647500917979130465723982890106415485284782434933915719168151724130258306071483856932798307648292770410046090369799731824284363554870178997989734173400791966270225705294225626349198875268359409913762943134954237511105458083160583359944585368673326980959429548596796033520870060663553713200615191282842016317739177678972229254847110351887596519150516935607340369296974132645502124472870395039313146450700012730051376747111519596192736730446970709236002987323422409278526521129298315521217131838478299136664090768817523224062689363893619915518056932397126212752383371382869394435811025808065807035067635780363378026898091432425544869152552005712948685842768548141978761171367123486721829605564891431712069909080096067876967278440204349224566748509509336552098252553659480679607436175053145969464950818144376191350096680864817227833040583123366080106468532900639792274666638761748848125152989993878848641975518123177138207807848284217700831407062674633279083970995325933576686701635370412338325275193777401579277210459844575032849057315432879399943253972073060384577495632481942944542930811744299357995810945481422206727336633138830620062994329858725963240639521471505865342094620912817615077460567780761909226150140999176228639121804326126087504645747120505979950851056129355974850698507477776503114980432888739052238473477920689560058729582717775625877596909888902514074247652726461406027670007128204263228395007721071760674721615296477171273849356031428927444599951844306575902312852294306086414085101414959038076621460352637602116705069328593368724892278043291798787583864990048220434047537141139768699394568563091552999773797448666929258511747799534571324971037201184226081556190625113464304812213519445654363799292227084591464962327174325485676906118939542462087314584055377746015148332853559667950422650413755107378155118903371022244244607565024579689007596178925740017892624606763837723209060020280075603187441350114707802176585375450018785837541609218646915938446741064838472067983206861002092309237820926305385184984984618534232756065302670869422332580253326672670291793754489327716505580585353546379530679472282572543462739911658168494526876508300356440828466603693740197541665877764601697747461407512010318397287430225736769149929533211365061936115705111616782584935051620494551213709625034312698552527180657718340028617997776527008937451851452352170031466479539685449234464394572546339896815494864933164889255438737522808171303824182030432047444358596507659949033858224227741110358246556648193209019478730005640214767878541101069943423582986480623389612119000262252009900801269762253546241257900790713241517691945640135660180321880369278886996763288655101077706881565053195841893966709882815802786492921797188886106142813432824493784390255269760400635556590368289721160526349142059207801173925206256007743315835882380119440781574322550813557060290934181188577920499813387119858662041700630917154593758237528992841084132460568079453339457809090946113236294067031212884568564990732522782492081785263844767887794632124675376082230421077249009427561696079833605139876540007944364792387329973138817453288810061039439895024129085620631002730750521154751113065547669939943141717622955352312514077105145503252334395186115109093835458737833431319977644200713052138619011666487735290283995052963617786559650084802544773151559632065413074169288005610083802910844311645710276037027417400251502311210917082174949183145942584734828529541575857029042320800923087800562890364961782455431010991653904717526159427790158938560264830730343417669620254614320689832586099338931400468245519062677735351190853882264275089573640129568300704366477468649569980048600335575081679747289441387524058659652272394905768045972764811191813595500790640145899765661705803488236505566077799957087353048872376989549901778196650346701132731145858086906440416788059151458319634913285995956425556551443964601325198222690570391039094273018666262923542636749908574482676326729632305227485889563558658452450264122564493257661332964211528000521768781528277265617324471888563749378704977452827993836195041949787939484985495526244670059222313304773488523025966831003398701819451662151150671352562652194366489127812132790331804139888644020882226595347985545439632696290196676442674737591010995309239583747800297839455505139110271344626038338463111568211768388894925108250401924688503280291668969794789131720647421472328406059777137885730989643673842658191606206937761334739105625214243217707650502390654742608875118977409174632405294956771614375537861726565865165460214632873838569220285003246723729385114232885640680464427348777124673747450756988088901263232081794784084037257298266966126968249767014508489939143421816694200578189357020667532005770820591550934235230779375297348988232539818986391483994584977656440174474376566452904880114536364641704309917536166362968203141523909128861132059744112673034367421963394568502902702982000562727403197413641818890567647655989941297551681913419951569759535363085602721286089823534046806760967986621323146400361099536227670517549457301471911218298936278993153738992654037080613638828725014362050956938878532192049269013193753844787359467065043564433177728170484567809043980201314750933750416724879013089352159602311180271202365628866383876392408091499601490942515543795707157500196589248151545162114508576480015636637372080751373004977125255677643869480069263089112254363680521063108475141108123657208935953189492269229330551578439000455565111174938659310016305525703948225562746224369850229461284901933641220918281369901548630686376738948473647971363406014444795495107641225040686742574034968434135315912607044647324146788536914634283253718843142234528961206727652490838504441802846754897424750918242926314684506822468695079833381753075775552739091707153115493615766000125507384095530269926247600216171634530763173405404998776571978347565466452301756745823610641687539619370975487497361432796284185567327155167604027815477836364344828061332768371615457407056682778854322378813566226246684183002990048447442392202950420040253342158886067947844059735161638980027501373763941483467995906419261966175923472386772542482556740070977111600189987358464474951365384531000760392680282115417066868336075884235419680788565497718686603696441651563964333794754367482464574556535439288448710142866727577822945987347952319538467964236628434270213097685460388689879320496536552035204271240997537327348363943632803081178173168537695638543083953802392128498370518887664278159279898282917696272307320026712240068328416455976744814539402094375888486931204474800650597531530373959561913239236556214750259102786528728535984473070757222832371441291841756804091773992554615239125682989019447641319989132251878338837343481844196418423601548683048794080741291550616790714307842885491019540744600536581715588510579077103561493614170740906132515464004334091402618609949514068045947140017701912583584593974487032634664708501914871758643481508220230576196739924916352093911351217188922595128608603125523186946771357468925601182683843837126375383935924935368436002282048275931310712598994036385196553848332376835656611330812748000789014312306180929223842873601376320290368420942673758426454533526606679333082056834562287767896132818948496403651972385505969734688749892201554115029748910149696388502167308672343968823655911111331921480323395675453918337388838721118235482989375735473507465486386987791680760252788343613818715125602892133600389430060064273165952657013333959227351260601844849525361626338840223474209542799310467522287924646729570190265131852436034318383710968069570204938808159856261656238153336449719062577549773646534670042552362587348632912640248130449514308013062127573654121061095381621034656746085043850239575650144272062983473406619354389875387648649067039589409579414937924650123922178961257856904069853448446811202293594085273969779898599006589685689838578127282600443686569645108065493820133282679032742600430784867924731308115564098077322727673797600362694351899050563384209313751444941961637470687451266438633283119409725398532536312009352369293802303670783408769172160408515566767834435764478967560464017964890293999116257405185273327994894618708060757306499779698599223679236106539608186968811161011671335939923482744240221360321389677357201596609544458411176273544251614614597032037581570903611995301558034917972976547994346470179833825131901453342648430711461638154731345289881684860863164411411410370362988268842649843873117806616623644915330580776784945739883633678041145646758754030839632151346068109403862941995289881583129525417771929773161672143017571557062057760716459523480539339501503268508757752618538533805826964379238646322767546360379248033092872544790708744202319578442750574752421107374303478959612451483996503511172028893602915203197326608734427327828715713540059840986760310525846268411459724967330434558223689710019317026667075871777115180918182329696020268869235440011457568659440106522247187090118559417027410751861944345125502525150543609649579581078256192560773704545319928405698428416303498566780263583346309340999162113845190827294993362331006703503695151384083211758810627943660436202490831609895693560608752499626413243279114075759604931313431573149011747877417096409871042480991894666284699793348211418507752828966170432121144710981378536987578432462485728382646535743663402605390825528780725128751298834486264516961993720507038997509760078030039834391603195743317194054804007972638673081329125844080526709625755316504638045920088374064210930525797870175883858227998456514735154567501480264721610174837798227920117254552835964398625840079821983020544713142509645288498881921173670518488383387661875981750139892048979668824510726673206101262571671804506161838330736732118297650700517409761328556782748578685932408517051831685394207333508014359277670334713090181964852171687220422855576059271468511840595995676910475054353688206919116443319042612000491203925661456864457976339872757179248802005047928893218158061603697875130528309599040287458690526460112907745300413057704638995681758772722876034481335975644035527316926599178190371822124522903097224764990694963876921613089222912876582350049590433292608780668827850392756445717676245560423411768045788296408310912410108491238366267490349004551092160192319746138084841022009326724266521886649595042953614699345264349507634331301690417860309458496056294960490345531476921354781805881676495746584740335866916903352671321484654350952989384747654015387800074353305828912685818048446910866884563392109877240094929788465152775584421729077254094723725300278427874018923638827151521551158663744815707932489069148466217987454725667921785848733674496996693677790923050839504234185719016098676616894326560276633885129890958867922350719803341722990210673391850087276742817429700770199129900834274454885635212586289113643247177682980792580181446644170493059061440729201890465379129295989651162323673004494347157550320366622042432588374227787924485847982119234758614778378413141185840243273923481574492310028339444495412807334980407047016548049537721479919718997758040696106149375714100494404840980694117854936888065122224587392722546393983576938207252967695671435442232015557641516189117700112604394277476864723847157255844532079608838511814249492513432046638696668801459195930411687937518863829444609032311086995909899126432514344325667824834423563729684460055976874994109487135132316810218648993878248068194366928965473784902538900354879815034231732981736666635698899386646516337795518141334726418155052828416601759197866462173533355464357638354500425493708655587274230960026861319461751024396607002442201293859027625859899179195865548442172957983844425436101354657286937287466507795982567001176598710140988240051185345530460857220435401943589204164716580714994313958220490918068464391028695389350132988447331125290817081218106420046210362006266630397660765381175130662837108857370200907552289139984559472971041510601791636014691618403233164675676841842109065693252917788320354545124255939526948993579454051415158018548975299341015160974061039802765132480418475705516689956910950739621513100220453984506052311061627543254831803346573459236948738407445912560344414767428399525450374914282805384838653436188565933979942600372013814937787912196866365818765482761100977137298794650824136640457266841817355659411877798131934367751094088989643009829019523863222720755927908757836375135410530137427441742279624310154765726204809896557024289051373762636575009930975494452696866620744463692693303656682841077854866647974037591027025967486464886625956979004217320944551266015757543694240550168852700911667186245603325747140530068845382808759464660217196414255662696440926733812212273045862500282846994727378391158965785499050188774874119408939492723298911818878822300418036811528357584344957846822444092183081291264551190379657985734789896757607628279580952079088555220364281008819814391276539581075779263930643738263120214381668853423298619129965947520764708811692096746565286837446406137612765456639299846029816342577366947588761739606162698691651711186842445698273713839849327530697485639389954264935617186242741906410350853515144680683957237883625262690634640254397154059962341745438452007295504146453796092670641078516070316808624746594358819183144742306418521938796920743351378088012770248416989476996026455959724550461955850061494729598525723044507372172596258431253120294099567363823332442317469261280372986211475664590322638199262254642309787786112842355980866064644640657494287281834208097880384536242692431137815923610768230640876227183122062090554030747620360050926739460493764312638506018876292243209952008024520558213559921415986794065294574030009636807161009614836969363967858624444295601717796189450535154497445728485994315424336172090004288088893747476063611931526170115698899343871109600594683884095505211411920451091582753340417010929768386560176596257551273460082291977027752477951193116449563444318698679245054113078636221027588010257849812863248354377551984436801613479150808971560180414065830292720712509435169629488692251651236023183519789460107624335377300426670887107685294304747169612031357618447663451355394941651586434463844508306032235885933201631509288037938495125645814186122729612581358067458520660073697916142374707223141133038795947155355209251161466761088462553834661407978469650975729333119305437764774749536737530827262068166889249706404378443638531259980205298429887333159938453558329856449849969577100967416336272613614554698333603793991653499824533481909361865770227518133228206462598775793767087777701085439044026150038196419566123134134218309030982115124683149444219319655563236885941236064291497979676077820473364770206982542197004966204724146534124961086399913685972947461959578584946365067567170779465313253626284765086935040939597106625920483996163435461953565963345452278104399529408801601105192321340829016346518220598941979073948498548258008886598099743091586890873375991031622411323572994017575380666280605678499425835391849530264748623901538616762498198760320132050983298421094071060610798895749184544684011826165502538230759998939059377616838991063870815793763573210982739508658907069192948917857428733578966290328033170920907733011037966415812709362937056797661594259527811603628262048085708503763828423857157559277753553439555364565229908721710099328528258534887008754868124058664766086841523903574760921903951728231144904727109520839012283216321043545739998635891955705103900032402168809937692087346857057612240387726698100956007231517816654198855125078022354539928679177239172706257792494162238454500389922104240867607835968428695995688114950144028060449065516278928471769139730878829643975566822286631051973984616433334638832016030503530454889166717306227356219304097645760362681167480091528038058494681752580998207915533163192312622256624064540989770553303021165424068028425036563679628417126361074819396220785582498805230156701621939957091777553857413645957572683347284791437071056664954166507671215531213486611314296834617700177286171112806435171022503829399808290744355298987829579676979648721458862183919727011256247652048509012595725053111525939959880150142988253338177675445899777427500838365440768508697092465607309265293504529117502258127976813263767864977193295141032882682041822233324173417425752844523327410747658394641330749532969701945464498253957514259716568177324956669242928175651079713166019206758279306207016130962129022730035361890357802641847137879852055286126271600369899605761398826055058653246689848945291261888700112404518184561006836741846665177449578861889991954685692729436318377068249642188473534418867973897159948611719615349385015055973206218634002514105870899631796604378550497414446695922633017781181647999709735250025809859002089831843831713312019820646810798188421461953272014976140654170353690712973841368442119796733804739895075347408724346821355875298777945859356296590360820232850758251769098750862602478204023925000727518024610512392113862039580064520626864584689415676121764771195114103529313607723193329685716841958926817061721059491788181970096331233695783328853991680720527542766317838992339854504488675306500645339426428146097894221038891108158789910507969716309322420966032960325015915047911550570017561365727625435676883719110715876455865617367366492339903655157647979499098166284052068354171467643282612847211683427519197100332164916578797763102149526157472093028025941644536807554985477224054477187643672233075017852998523228484259679707371448489750580597952176543395773546961599972000856560570164000464571134337747872504618543340599491249131269193958065171786022449811263047330545429637904895286940119270934656093541797495135272115810873629033382748472628986635767674755964204762949736029670774523619437885648296376365698831104938095438978977383874287377787070713765215438289823913850623928966127199441522084100525300596352084337916998711322752121783361575987896096981808341143167387649327948208137366573396513074851944041737566750446980144345156452298134241114567114832192489339647511269666371495747425739097226689687316911259541013088555920198855366792491598194250529860553025617063160931078058511502038307154015540471930588177773608674578746092423491371353568000590162845313243197387715491461433040228182368979271804540467623104929404766479234109307831437418995086207180106418868654237532258712002611815750170580428621808726662561095953934938491163771904945621622950458535327139688247222553370336386073793718036923369261197786379738169698053351118263085146241952029523755054959134327838055968755562987000055022972604108598206562029281171336359506747705375210307383631344448145204572356139595793642858162880548256668059346846726294581591070827203649559672867068109933349056546115601108892119395627543069644159358381735831493301442140155520398843757385835521630592508170000242575767054522013199365825865610890909498996657967794677840232588519001140898000821598792745927227168798977459126019903415205334743130588238147156695711832665027491578111559844528483070131350785907036190529862693491655395738976105973398306335324704890608870182987047680398692083876820149193980714282250697345651659724128367590459229002887213600091276787428470246231183185489571774353724938531847129342508607765617876818213133998046117686653254708195630995100121941729083151279363419132296300598467705329200663285658664786113435593225832810750177594366795340471290403465676176044772334678009206482688087597335025859307067985639929777105379213064146756227174863189519481389142130414080214270959854239811414806304449348063156232223562725475384877552207810426974867146085231543533752442570094380849102223874708141674468734652737744015369594868040068936536727433730323797807043811975563500453072283263853611109229024634564744404159737214122027801274627574655720520137991444577046929440354334256630803059023178592747643569901472434055332807441694178637768354049627989373069879390455904190248836454635638224040800808792319367654701599334100090273911367001652520191912785774762711962020973071369539439635393706637958078195888335368022875043278716234548808417181041558847215761990503606808288207905837985049033248931856777970274557682687114265150434544936945100172920274564446865665626240839186670130471517632750905780860215077293878436622906127385337617445646963642220970441169677027251204253172644776237767159514433852755041486071887098290003495065919759461094148482621268486008872230661954627137448528452031702998675561466281713767128277517236434458886444908533597870724639923035465958390967221311103739772440748043946474026549509456841373777166647051651640266192849890481983582364845643044038395244180590812441786365023475542443003122823624781039591681671920504917836774741193457587924774806774019419082216542839683020760184155265060628456444258079298107325845299096142109272525204960450210859734900972305429497087498375755221993545183400921031001515292125814420247170366810032745987453711429947423792838839183602797924388438551615689087229004862831732124902710831922238509071352146631831275536011515186305130962557779748541037085423341743447118671143563927966363261105315991404910546794826712136523715984655041608039131157251330045992506620906067038521739324888170454899595432201097124984940120958757083217930098358872913646345570431733930445532689304549968372284396487192163848257659646480313223997468351022467869075459572494948875579955066579151677061369620106290370756218621596159909400806690963439037068705854289932854927056684250053366713326673129385839946792064430388076376111638032353702598203274746772994484352628945663399358743227433148078139151634244365555643034962041308826855862898721084478854323488852769133017029787846190334468351410031517466633687186021338960226262005754759517404132642278527536857640478779298229185357250730885920346273485077551438597257285603620667149830459288371790943385913930894049900910593595598926708486088528422548899930671690395600993402984939148467961158764470953618051854980089520996253085590862276749961950363065643283126060792450815420277890168869862503344448694581801582974360241766655782238984224968825986016166873125932660934462666545770720098425940370571761084586457797831085047742961108296407860634107785124226788858416222992344352297702633627239168804051587218676212387878065377898091644622801448420949339755918529339683255061604420463128414423076455384576735785509627840320435397878105133130602291708153868342200976240168065953100484892518067455794339445094039965288101221688044145620890162010485047437863303027887664499217069002060134612468230598319367775834687351034275180047215117640273493441414247823654506794594178438024753010567498424429300517842568059076312493159275515366050130662659431178003533121251238939852206283754158349032652363300874953848280942730703487091606154728230323704543855808438379555577055037438035104996142940130723434684828364028390266898917552375885024604573930200237893622337352746983048599549095992082323027978616423790479076138370834212662900934458585658188981292439760735554537817935562569584090269239740492875166694879422296081362456552537219497371118402035012591437856938795077085155957610637576588833093491316557923405249864746361924607106116093265164192650339945420236117823682345619393661450723430073194112832783656526260890784300178541551844434547850058354072336034642773940182062799179353413776004002586376936541386297767645166276174497650843393124758629230805892926957216170282623481385870170536220427508469842182254283489820140958510524191826294617309088217833389357398169419127190645192458320035793223209632163815828668278624636981538835202828808992062685363900815930678831108901689998657962343602027611495715289787225087091834657727235204588283372852054878812830656104214386147298303034406621364447583080058270897171856224872729099820823736080228432008830002658235353503787612662026218496328158738624724670230397034954379483030602620013469669574001465881050860291049558441124886952234337120737351280698051926474844504690104464067249391578915479291718459352453210022217900038158155467808558438520246569172075509718451379599185933107619085443658518782773219078732629800373617175069662321064297449740886800657804333934173358100360452440503437400284132101368921557820788512506062406025396095056398365291676864255348391750503860863893031180350126618532450602986229797195708193884280678056741344156161024638452284286529334737555691119673125200040920802785384786917041952273339725339763462301168240044285659374958225700988598931520302293717917479177281552206701048868078367282311837597216101355693416104743818344376606533674725977666667796173536085448297456186270780638934976888077079840167278250259037076724004585189404277537829691860974479432531094677499931378990811923105700065392420326583220643536195303026689465501256460549113398752779198714522269313434143242657354135511564247390463444617553599725562483255554630778602479988803893130089157074195362076401134072209290673302907350093471919594963135471606957891235943687580303677018836772231309432227491616462647277741998305962031788090964369636476516078221316792512829258569273184332482379114941579845212295496431816157507064042092552680601058199101412226927834214881695122972438768675062543798479813400923183984981067649568352576343689609246982993155040613923436119609585258846983104796097495075282728789394832219495437230744159933946724995961054714025917224822783342530948355997896461852985101637031704994460971737154223332462779255773277902365212529496495115455428802384971088666018859441955674179247041591631494753959734618761575856320091868806696247566561818108590725695274869310616180614041069341359135416368699651286487287501479179767945870944720684631502654960721256267821551241228025569260130871122252543937502706057276952686605694120440616823385385815688636979971700388721313883099086557220297943753124039630024691149857515426700092749886297986512829531203971708362418431958061125813362568227438154341670041696683886013652005875357198573287587875020902990881875733057315198863141650336156122082054195111939548615414838333519772386447111884335673908504959323048211983294246535138737024134455156127752046914941241333321684553929645341196462347870478783171410103254664956035308981288680674109128749891391654433880325323462823093803529049597321430442741255688261475393841831209228318937050364024973276065987073454104295647696976841805047179819803401043863001003187238862353770724534913940945673755236871923986342873787835553828306300387044592977940984627139668362517130086357027576454009484293334700384997085725905411545516634131622748283126751284654289563816669615067999553912325186604607871686982090430084173785998260278520358767387544774720805990336726472927422173901984756684348460371353776090056520097357579460336475011280356896862052555213962007698483077765961015316818858378998258143575810281928301445545203741335365626941605747199470678099529437720106184709652058329722222561575244710848085530268367989623378871459778889805107710376425890279231040779064035549175299587587262860900308766656172556909852063675413241674566868741291994628955608722157854950804023068939212314651055269676921770121918416290081907305563729929553981200007005056116020266212348593269165730851218789534523167799859530315724438657899647773893073655160127550005550409342767802241786388417982885861822553513947500755598200373633071135213931272265078059078471009316711418177388432029989834977830162406752717350752264138032175254103872879414611865202177373766118310479002827419236254609900934042277350581643452439067651055068411800697675521561849533326697023769381881337138923298096294173841826508964984200256592707679575931272641467339473157775983625913815831267384436180905028078092880813900730435892883220610872978174938057708375573118272933838677156068974095717557800955320622347483827142214086850573750462934150431134071033343326142459524569903901098329468255776636908951971975396336698669427463486327373828870845190059653519250664496685440980334029024722691893773888449629825751045258721528795997004089457746773807206418927091190780088592503843773752602369144875453847338117189941788756457601258141088290702662938789275455981312811228457860692106958265366275089816459638070354900461524050767107818044742859594589597496778892698262706899840561359681310339122400032768557598360453259887767711072421129865718061376665005102607201085527410612331423559058000688889599656137531215013985039877369700870860961295222967940441101607968641969864829310561524121536986782958634046911210040084861054076149924081143567880360093598649279175733801969709717131755201385513496826428707597599139170656998632930588133524952361208591035603797687064753581892245577572228828245855156568794154800115612030936872148095781855030373573103841744972875748448528003770359254172473536344746976049249622754113641879121518315070502161586301823904706694595126407263523648906357414269937286064720996917472770000074732565999151127853073848884587882545121045397205191981544648466532140757345508045460615837468607923325371635708708342634910585197124328133754128819757910515522784819595191076673247158122350167178100217614923073232131086158845936735476858718972003074593703891884765393790666890994570316724979715495030736516703642943789560321678187021800051413604128571707485338486885135551936816543801888363036788266510459307821548961043110311941633024525711185668018540392686763199268668066129509936809295623385980369865193940054708062870363078009552253932031817926996412166383942762539604863874803751795365566239758029297212736791255505562652803975565434659873522416504627359174214846386412425508267526734097554188024775257880394877147327726781897309831374723184637136371141793022500756962012187306591812160589380326811613756244177305230406520175669477012104124243170158883314619174710198281373382084208980620947511761809591328359377745001939359067826208039008116604829880809499770090577850794782712505002946881488110500794798730840737768545049755815969423133338641831368844201686451081773536161169685413122728140563515533743376257388956014509847304639247566129904704989720027973464161530218889606991446924003571731739202667841612092617867210076401665698867789177850255810674781999223359590734434434154658208940279831313991584656536047068636129075454115059645897395773970192792199604795102946438665281339851696537740411112346318673814518933057958868496431486194139993338358811712150149438400734867502695212653852350798602768198647364605664205517522570417103897484071440633611773643417066508820213070836011251270147722587113082127748527462218574881046561926937061181241923134760270173538991116564189369886346281611704611575900171109390145388631577265573877926231867790100790340208831304943523650655349365611505403523387117546795235399582227759608552980559536687321853321288413887362442856578957170532968845818216189526409490163990191527000372520828776008939413812587142315233510269064884053639003262904334089644560052732573331987119903990212893027712754621125187978044778619580224892144181900609495305845991967764990596232492588652796249311868549862818726899828425490270445879895333666662976131035134709159179801618464439048986912056190543050527253543898947728077095179090435037869242490140967107030341035243923968762127928914971815194801974925367305501557217898003079314883439510659877001022051530908736127991124199229138471699976313503777673019527634909753533153092023170673603882021135892796794081650157927485896465968851580650240558669643047340688907985905125710797242927950635978679628107939353959371950268456897173121000505202793635120335079877660329757021713594607511874656322714103774813465197179408769138487281091623003761684643788856656387967282121673581985641420485225711020696559988259886103461115399468503279786796954005661205042946151835054681915587109329606374724740529566935408280047770051178641180889100191976506235985886798763308050721216702008747486115601358083696113647642797187692151809975860585991607844598465770526434651472752772939888978206312666896454675469602331260199322009257112941851126708116646513404359191270702317024923731137382934926943293323173373417426716733901497236380490112963350154234341351321819820590464338939446996042468327229883082407964348823763542239901807961218029052894222731043015048227464110211078684898920502966242699930620270617154849198605778829133252149967870065153743749158482960064868662365521374479820143621787811655908499898304017153321153898584777501420128315128109974620832229531302107058246190856367855280564751244609990484366085195542544620356412720936475303359709156438064113430266730710129598989241346210445451947517226178605068487391109890120034592989149771600005629667061677548906154891716024728589381179516060806954597929582106340806722960559374928132941215700816899860311215990538009986961677169509484053782383652330835552706830526626979687885695300293305908790527223592634778909722063630146632689354912639773187589055232472036891898075695507448389121175457132737366143246876508254785588622443181125887055795910095254340308952185203987274913027258591425362163903044349273716248545730639771766096708304074769921503419260101036743726450267750729091409060002509365249774819977123290747086146032416881898310372677489133887635046548650937353931403162989810051243705143533252475991724484516680173870562153445246956900369875012028786126395823322650935678173618114264248996568119849423160858418040928104434826027955832102038619418937493682139838030849618070017299578047644441340944078104963906772062820449615100416594961439825763714950237434667473996924229098299134596408445952289239768263862018202531814769234730908854345352117770093504489648110324587812247335124496131131340186232048471218835713496882997712488010237763140627550155627858584454437301076644070476632623623355320967113527095921900781001267033124135407619996424862514565740422806118929363137272884820639419137998226500137672439951372574990906362882165713675249968265940357784700390506044123157016563521251798196694614604048266112534802515363683186313176840066670523874880115597009890954418421808099890099809865560420545955513338599971642149341300142787559984735034378219797544598781562897852031583743526953854652957538736984425082763163479820618122629858323048868291744214615526412232095346398471195219429091194932074060119316032799013258499697279534129758207427476185366712277453977578222655718525821468531683192262169051710811389919116943177412802610601235308341825232210484301580807856718779569043557979477819154589955672491340930634810951366238481590632757699271516157134586960526026080055205963931488083274846738953831172733605776855721366996746049868890715835649505319245759368606073178628177445222179975110793157514092941539129183110957427064044527478256983110355916696637374797830739519346623859981361466729461415350934504842067219114905617090869987403652317522859593755794057741304141218748459546765422090227530260163364152072966555115681761703332617763107374769889467072549134114311598094809191141585262782238037923972947485875719195680925548522414840028077603289305236171511332772780580438516696642176087633147889184204938849032075580889404493877342991916547446212504187864975204761294350923643945153617734168528656130381352785364190650044856029175131157400062824475489496493668701161771392453821029099866845609842219598491473452118699103051317322998224772286945004017836780107766196309436384380264144365851858517125836519346666081913167870576684849596230317394562375636534570169494535803313989074580922478031738650757166603825238719364198180108162187986781794825260256696958946568890872208954689293257103583696939408659503862782934470358972609472824332450807800011194873803896179725332420932294377763073029703474813492825823885298682642768989347212918253902667560600603289036878653493111804930196188393034442947235384018483009115692027489990387896142718537460791727982899293922480725528042505082911514995485570724404766163468677183835548459023846937266428503074358595324840454335007809027561857621884635179416890675131334822042773176980900300344124111974444503824022313940037957670308235278723629486002887697669073375146211747796777754869107211114568029215550695471146128468026987692916207041478164983672495910257729153123488074550828275703441844984614022567885586465437480390185767433909812592420564717732890379891551623469773275092334793974638004203633447834392246775474378378092856525013652120167808349736105016891866104697541632964326209944078496063726506254945718643949192100944170119133315036595848633772804792042066113527247042407820294816475583394476079011952063398326021033530698976590707650591200102828323536865471299233953401181785137579740472313931113354213283186176768921969196104928016100757656720879914854537603616419239625507661664023510552079927893180135754541659681547742168291195020770084770359986989967695677832462674926078191242044116706868106456036338038618232772946684388904260928013444485363435922830729025785438746284596304641424298316630834647175532815010645317190489041138157569825612501126836159927264744426217511608791876764825329752854172444704774192960286746570277772934172424853578596633592321335253255528047177485547837342292296008144130417663750626289547259975690915047625794906606867335259021490111159766263557305484724970418753306682723507705209107605009776078085914988093496162632158131480617068168050179386576097440311001995732229762561199168804537734125277137322619394016012465397894431721659357937470679083181091955547267146399246335907051314358214706603143319031512020204815150067844573584037677615956081175482527698614253664761142535620082964666032979183468245216330163022737411671986822105057429537837051152593581183137106235118838739072082156224036539494047146661049848762408493477881198119464735968670280249934092253659207141450557398915516249540024468439338972266397972888940105147311982776112382248536734153031830250756038425214762058128790719304422266907493597023059341549763151171316260135656882618123353211618245786029896608305313146679062937127465854429499572744112438439201718683137637563987062882031811837106241444938349512526887832376009476371379072136361921747439908148182354329051517268294732942445083515895879605367778086339580845215475957955868295278493308814440004139434212425853683023410254544690329191488803164902403888820427881116619619850420491428970304882652736920047639857595040099586756639933122012188588150711867774615636019358953227238436368529324804290213318572884615543861610931349777328749245548695030017967069481253915057231021926248954606936357304268837570185056562385807570709964896332987949705852305851772276842203868704433604506267379872322023631002889511320116438442559352591957255953201790407088033059562534551383840152486472046542191593487884159163436219747184730853451588386034962614349986880835894455504397826770846511984685703195063162816015171148957308178585008789394714605780298523496193138087955998291617926653758070745390281429597361609160433337481477481997628960491809136547770912306686346492304609901628702599258745095868800273546335699308115411703043062102354071163579177016696901042885661342030450207708086496568691713248880893938099055915298460165131453335508226873270077856588237788159680942029783036675207024383863777810750232150483931421592055269432092719625487327583285162065021928506322105987909103396977518011607780895500306395908184988729551581756817325174373225262439934382757044427524139929675446458636712068587429656903806457121208813095427822790141996104073145012869866220871659818049379206938541600183727115339313686607210015419360902428079158137646451646126056464966463492120419261317587233383615654284165497596144826872392619857501158732139276961265837508836877996080849810893969249084031154796958281075342587942042699497802025799565944822749308586792331360992252794150980993795620392401008216433223629829015276507031097299637258684698070106313028617407161338560100424367910611195415826867682766901420289404110534981459905953348801577502537556051675125532545189646235420624001803579206013028731418845427495125033409371513282738765950161967210358508829390222575021104394281228410299207658746303264533834483448066935533821412790171542071710067550113355520227133606824541665851202480870827762565479146469484947084595766729210969219296499686273297313244654143175166117362541832121889345838217502218146421555345139829199716872612792318847929725297174152855761284003460858679243774906866629023487757660368469437586402496357607010752170079193173437788072529900703978948909993114287715699732025967541429994326192303697601912019718403802141145937981003666861030343086699943534219565147290515052460051690926069918929705069357790980943703290795063043762006152675731491793723520073932534924767138465023353056577076854674106236205828522211573399695339810578659574518437303385815665036352770189436839051511239885202184101641683905592011796885735256552630020640785880564794184560715996326739030702848987198914720583497401762559521567934079575379739829567046525596883956489794219500682862867060706977341391198214250432052258647738982796867094904224081464791946416156555271305921537250523771843626733284996322915413353148214560350835773026294298605976637744016645126633876487911134937454709928654267982556855410734129370199731494188591635563544728787320201286588832275131545821325839403551200002320001960387765672508838650930563540134918528053036606188096837902777096099885415591542190901378582423719011909425397014906945522230536752580002208660058911991247218872730093774809704170436160578063964916101793485022738604211041997103137257967403228402848953469180794051864427740393668076544142560862625028429005371165843389720382023380192206425917580787086206159029705567787037173639011219186574047704386156855443373849149839930158675894055321766679908159202207844591047696063874428658430190446959526958159723309615506817704816087694413651828024958311321361164720114317456880400254955260332406169669174208843200842453317091315406659710559380750770044688579587936905994261002469504419395720504579373973615668145374459216169595132535153745503389491030163937848027880016260033438299488216146376227552714874452585719554693788222844941515356992446505542374534999511031196741254735111840141233392169425054398970917857398823795265734914611107823176923846828759862806879552898857829585283908778588820278563689021569150526678070357022760053700506654725132556375838922608088084137851386610390696268544913136488558866647081436265367392174661175606253359875960081562588852198374302250319170736171058187319776793923568820839741591479059569684816117604632106989346998863447658209800162991251042839052395278902127982592117727246358067901861826276075720464560480487058716012013675448561134619378489592874605217216312880022898719146283634287723849377858156478870477819007687584667270986972379198092591707140104680257185066083381144113263441801327139600362701888031042577091644903334691796256516413046998754178176682344421377662496178800922512835325738735389989929300832521251850087887117864780241946457194223115103643230401876528392415999154630741931434190922551136530886936362575770236457887741918234573493847014886368139058102726221268365793265514327631727181956989534627139314970104400197551370464702987479678762688561455870554003415590451797680089944933987775156129858313541292545201308842800636106196636030350570003891127974774205046550532993354375106102454759200811090874868768349616845028875802861219591034572938309794729826375239845070229443582718494964875758883783103028128961838967754231734023685454292454843199404030347928311704913065224346319932864959078079233364725673771998718581741564486277788196613821225310586262174626501873462970850250700069030481116984046715235569371218333139363995073814545715650769619457389573901739723324446344298977984042727544357596211329383945227265259593034974775967922420645492955462043184403885863696158079617021217545908648452080728669898916376833578239741981241590429675261693764277659562981025144222559586482359441165828878634835453244011285731849055177472850805281686114801280858686519709636171060668181307943408293953183771988200701510649108556199566347216147859672082163061288627804803200141524604612053305496034560883446921143741214760530682831447274023025840684205954026149383447025400296570650912522698624321680048495671637414645249374618075000376229351370737345662924989382227147000818250666010930870084838352907256108633159626564686344833706868633041812595005610640031463338318738153792933602227564625670153458854205483555642612004157863771111750963697083062625049739793706787384683246667670903427041006941598549637351111261870924797659625730801379190009224985679496768744794730723271702508287808914993143022362677079172189771082037036109101123821087950483028617925135856459425838834517395851766195404945077947443315130631648289237576111067870656421109486784031559206596916488304010853405149692142125909123133919969770369633740150953051164224452254108440358825874405631131024572813099243922039797771047236336027947903682695054954322281698122693402322367634682286238790084300041969798654583158042604948236958560649009818882828933650946800568472883648201866145826067298556450665082453144909783137842060127900893696832628567118003410499279932624995285914126919303784934760898594053089407604701748861338914093414460182690236253118189962616584104341735859727734873669627433031127163905207675342896715807178336886690451172097119899718125397463409309882430505569501150578651190843869787375583243581228197921522828160295262926588974666904207217094291809531084553000720663714658829602400269949571326478806609925740382501469940347197316719846605349786359115669512330173354002522599684686637715056392202434561953927319863154141867204180368002574941091616535620677267458157094439597051513127436065729918752470696449847449885117550984376049117994535555168445075122669680249576806416570839926904087146185814988020765246544215141443802756521771038073597865601377492415322608652137768246213829390136946055924172804185251811803495251327533861521894887324550483917010075181886124164715680794836325502410815261362028336476074399692880575182418531779239440723382329015029755796188084885893634567557380559280525904680474437112285247085773706844306562349245951842499898098428099083894787568576222998828456926332476605312882941616802643428228802058044101000190281908520409159372723464458175545723566938904534103016947519455553753551331081408657848680900194036863962627955064821023215380645777469507658531206847765754498317773171626839486381885996675318728540105738916093308255876751484348590234139710727288303410342718247421622957435534593331932010655986182937058885297050548297795710005732293386644747472796401256863009329165493858921449582580549615735285574197303333659659779943444804243872965415827736637509154247415125457995596296237376336766126243656874388540148612366865282358251308215434799645626605619536832227400434325344903078611114746837975861162838134357100842772934243004827574754926773200563185563212363526302301616840905406868214133375248040730791427773531172962047575146446161858101168894568383956754558015334866946599495321968530632060350501924296662371785031192021554920191655323908816575486706445388700187438153763322292429525339066406575033239643659767288084693307353446509435218168907687224561927755736205897296234526908808935637520131458093188998429678432968732981765044374631767205006900610019906793403741379509223041525646184876124768983338137153157474050425638062740645523972041245374489709388352877647510906203692114949507242776623127300238752924227703539321142347404679999211281047203086407223707914751243316419888505773607090576306525051603523242269465168523883614935342511100514228714237837249927870159186342459778875242047907974677987607538756938656260582135021220035326701270992500849479001283771689713016677350053584505567043827126332558983301466139551564795145541663703912170682720167456048815863732895204419469702715382919171638786281277980430923926864007114452846024665356958427535424742445898670952846244405901171202113576773577771901422046704956654041891945817169806641916212240186277332107884329178368291797704630412391462299245541069761499191913493965872390973717517332098831736244010631597662710678607923443654020626006759668874922865531660300342095207464498365600489752178987135568821752585686207928835377322287062433021255156638811727166025400802509209241873130330914423698828416959822651326763107107442063060438438428212607442765405958762384618855605870051055226122270389082442436362007313118028405695527210770489570083116308463946248611783379702122259341036559970305208380576801192462806491555469259582217132573584245080822270707990072119550127687014242001924168053355108031810547263449297317178068077661479250833847181905178416009199296344665295788646719323021759676561990265033444745952556918494134659269281241672668312305727396547776534203661131068377025348938105577411561548213208867401126646444769031706230697505757203261068410633530025504426117515637727672280199509623647059125738240402448605711471114817144861906573463852261133129144600302642371266885981981594278771437279019456913034937891249333289414891667345250994884498438376129148230512481458262621414572443250979457770312020891418902745889927216772806264052064016759942012209578121172823885444047767502898166158458790675301634867872933013119450911192168252555223373008920699376692953039490329556547496796855585826330017188980886651846182974580052616290423457815778654102616674362721137648691391614608278867821717845602655882438519336961626567857995022807846170473365535193743135280910525844971171590670631450041465152746201445353528375344285613206460296271155731742278895957235894046829586764646172818829579707408136303621935772599661416852114856500592956820828850538934450914801720734377963890856436283807377212085166110250899001502828079389641984278507468521581665883515905246898061582438663124771741906940267027969230555623241033400538134338869487615946051111209851058844608528141356096148407145913218083319336101822935373278076153268407578804781174097780763266631780960956078856617921222065059847687400530681143019538529976643919722994531421683986989806767511871770603629674857497556330308013557263697216309326897955560729239935161074416693679451111652098446837342589408962710752357702991819716857146884059972161222762626158888283739793584409973032711023116280864527386310730043727414556877398815986102144062953729397778239950996951196851475049047712597067422276288671399598240813901015205644218434464998276558554639315904830498636608187619089127001407924693781382219977038571333026178835057856744882493012008921753591576009421666384298612790190335937513808192797478188058117794864203981630925146468674583332354687932703118733470631993389911677764717879347332966950940396380143378955122478206405262990824301368966626930912216103669165535135623660399285960332342512227562458496298440556702705988696076466407912662927226425661904305386247434938747299589735864314911092284800800566977728243625318338087913945438578535443552018286702142546259330241484431613989131259004645420648247986061823504157108723837500453987167492592249876567098015959177243681833377544064636798925678183793795007319841851444925754531339062328740890803116841019206837857694853645294922952196836647374742726940590833876017401474832730694513444288160889026204281163401971673935681523886616990181035665203181103845750147095471883674824962387402079385902824387718897735808783034602077175616353444897430487215218652013569631696091081737941912023474942987399007911724588220206633916382757177910804513550261229842772696431790055832657505343116625389536043048306696198884926285354524118713213420554720037005565957395021148869245786311573846849385276217463368495777241237623039676558493021350364615615274342430844748364664626112841502977307555738974796136045013064613273400318349614673345724745391043325287971596724162801432950662461191143608470957436091300304717074981805859975707631907029062154901694533282827429417337917705711605576600170679106054159134213162344770953158865262253480801501790687808537817065381391227338454282510514188656384920759337645903908649491316199189363630853829325049686971987421433135441472449638453032145257694666325333202473745158598302201094844274927048568225012426978414541795222809722666271519633081517785040594089965023882445697448906640071142264063493407130318502418453307080480797508737153523202029189754767402751536449409397713258606997680513998512604114675653272932249447808599878635946924674921299480615564845213701243502074452249216445908586108859296183004918671065263704117908523262017083749249788434621390136614639203084525387202237934252298001412768152517046776522724746320350985587732005427885821096203250241203198349616421666413844242462589694285579528288188072045503113134514401044063243746707724099218260503868897481670213999889391641502961422367231501224697887849762415115930616875440936403313873679739737359872978600755682271180072059925762033655837277719507685090358014558269333829501688288452060579443912079643226097753965515529079060575566702615272469439816815734348426071776495215275486041095793362289489663394406983343685166659878173420714051357784220494221576018786217136264381142635681572531474760657005502104189932148744296577342013992691419494788966334855945082720526150923692471595431116321808570455882823646325327118041372285795617295992603475769944645853534272857170208810251367386648028987982519166763019135903866455512686247183858637953363345883872627422876383202863133284136722313736480662921445375942593303373290112486936626841059826579022079690881553186857215145000029540742511222119888524198451039004526842219206129777130367660857384830021658979458517211551399953550916674403687436467729918819556296452406376192413453826518328482433713894369049456560421473173394946052369491579432277098353065518956134447418791666851121277300431921772230113239016701636053957622346057323622703052297439104213427898233875124856220178288759663627968404133493997079977573810233833297514849895982877289496070704150318798020829980383968737152494752962902893875311841871647086097869285898771707667618194308214665841292290963996885786403849733427237906478939593852682570177573502345865006584013284176965841299349889519206115911590013837127922098451782486358039136644880251861692963731396376425181437543145525961842341499587467245600111941902114589816899284554356451579118231029533475062326483562047587822167357151062746013093370933006383587946178943510318356945283753343108905022699502410471822402560598313866320800776196863007847166021926325451563205745574190181271812453524988374286170685502517628092769279332598555856616638210360537025898634736896982017020434605577555910621970827853793086224867819324651401428656777920651947178206941969135364020258531525041223641841531035832827436375552288978556877875465358574796692017164886091779784483965104176846125373515026596664290601892213644291770600574829069471204438528375860379254886587397418664566565659953716970370877396853187923245295482804299185210194642544409071398169952230769754430496642649199027068961257790782970342978902927021130914961877468978181051407471246714668843940654649448296737928287515845627866730322614062702351957687700997535489513309243309604341321293824289335426818751721771071534742233985049624499368305653761144790651508918724026105126707579522119241117822195525686259470445886458345530779109481710043935654850990266243987447016181586322357451752833144674551634068052065568873249985141616481255478369906085646279673500475008726334443154039675873220655512279693011355479564451766488105624661887579388338907041824232643655899373953520213273757088301516235992613954818555177602469268717125038554500382649403545363380970543888484085689234122272814394905624882107088179012993985178391063306933375748565134035823414043601743192639088814681110206449624417114747736623303548121577850799541735590363660746230469852324729734270468515397726233062342241063827748998285894421112796842738034951292040652569509074350003818943318221492494768667491676645559835355435714925906195961397687919124187285689999946550164084189567587005958236014843865353279893053765455102180949853844739960221994345323473532872407104237755010669618241258073549352159339589855956061361288908868790797455781531323339609314147651409667928480982528652442900749506083222442579419840203520771547405656201072546059657633397828486031107117749553617473038266540775934624632222897382691930306982296423933803037175893419094671157826734418914719871790569445175481053554602146742238948976226661452466157381355601181739953361176270074786916878118508570744884449131191362574235779145177927894384705273496975630150655786434383923899882575771494752251751098660436540272832364300408017969962943351701777692754981595112254519448265290601228485707840660734888019643708837109097338513501946803172664676331186632906526732954645923669177126183869493383498936985289829850951032877660856575585170151842184673869268020031206694698900680367147875743932627645560423398033348888255023625252193577272996584690246959588501479415157598509465870846378783137139759225354351042672994267018615064150841439887080441387043262225559465493109590624181907786384800081213784160080113329858490740576347078322671431086444076974876852879241100987680699073384146670535674531282429027617829277826277086485603457380000672968299909966786970369399461161049426721044531435004599936368508109465703928762173040512465878126275825818556788599231176260544096089202839744235947982557809584306665696601089789509275140920489924243690338494807661598564910625165964105576734684564480422103063754182801827594362004993356188801792538742460316522403438568760932566514620772611712225745792646202052435130171181385692179710238074509204447900912775257704589529073265487360665280107514629739969984351746849420450625466986106716890075637050599829142318502864836609211347711008415689834482648297045353810744570152584831023921539792460482610792307441075609079478885179297923946588400619767103165457525485194386367329546572105933868062943744120240110008112275259100725248002769550037082921914026103430181092233285600523474776076840710556875231651052457214917939894750375650201656650811700945072164176577735179927578786593047705978453468563354434301041383193691541650051298193328622961528415603115081978830129032947151075591601534693678555108764394310604830961050103470028455008206348965644431067335498368027866439877733674708754183746596759076170356190424271908959220453825327694271994432828219727156787093113399160765704206943472609087542551905372090904070554890016520384711865544003531141074256288645182974357304391024670674774087199092755880365324605700781037646121654222434530043967672877726042902053606995897107343858884892323661012003164355797956106747108559468832650911266597853573961707244094472932705048238644150522458196441464544747956178522735735309133777166168677867476377623902942025254422343091430416453906668261857948661741990954675837556405215912116407023450398393704286696579827691162460536980825032080944131991752596878323549619097882102353651626271908275458718316869113794799942148122614785045972232784221101459681818262473483089729742568654482448229106801790265736790798057572290478398628849432810559816612115938958792238219149375686067154880871902767527685917313667937289915009023630822062891781276154222720343467307231045370267075893711171613058362277763270823960078400958248456926117589103555486920980952785808031850278776847100661877746374069899947584399742383368410723839706885331650873126432684018286746209023624538225735550352181634142023397473627509239965058724952102467060317990921353500046386622780599561148026923433155887092819440866840027715919242360858591151314300010977512756847950194154866312234928195148884836921115307577318070298606084419556632590466549864329218689071219642418953337564526907200521397890176690749231199405819917755822696380944312256112710309749344614072533785460965791354407697956094314632680406931459242118241820723690205724002967906077057777845744034624602627801803707845005547498685017736842001297490422150595938418567794078428224393166310309498936178015335026763691376934467620080464313202908146699700189905365575816395814817969689286754953285012671099051534318379114620469660175952120036748432331879630396429645507898687460141353672291311178748687776144252572484383591034914298950676940240446238012349951218929852497897562923616910672203932156536379030012955821733459764151332141340085895373444233379477510854874238202793682133342615970403966265267777814908549535562771319955953568717980387114940116149466991176180188312740311506207079796466275462558100941683933255489925574028357685619105328763391679846656993562719385267586363917238642093910762544122436735267514512343211225409399705696724091577856527429024521699314159888881956512360961763799558592056430547351878146394173764094798107517878173876320562509148422401386826354987027058423012803754262604920083692976747160839845724430728412743981564865735244590812553347632512365165780652697876752268162633236573005595814007441585391940698750949430053773428794794671992805308350741974938746080481473415613381441156508484186544784701360138509684550665708897963232456608042920322269346685960680819637859096498484614469743127235804766790378424153072852374648872589977841491076010310454146620133683929991055221426798133849461585762566036691760690410374273812922540381727686668299246717753405988816008160383775389112737602881937586374959890123067029905021298391257659103230680780855521334381037257807548945481001845522712313510114950063521078309119502391243921223490712988245771801035580377851657701791980661929407644819132231454790299636870799075347102253267187250186968641373182174909272542043984809394707388687959246897315712365043855589941672337358242622954386087474188761869160279172623877421424029029657415914688201969323494625383674265375195291981557807436676360561267147847462194841905216981685757262941099508180759685146874642427410617320480861513249085806916537165180179255735784911565352125759297866192687766095670416816117284341151497862946294285346973934239715489224082298266524440812280662156787672643529486788226591042177811741396826413706496571124395929735293698511337163430322013249380706161076977765320158688107636535301972038805203965472563219197442967819590928554736487670414589119499740468287534023515966448432496801738762805613626586981083547772991962461889118809833927007891377997919812652004111231608584476674977624363936638906447536238455999787636045089172653258446863758113730691684681981623596559886125753077120967742905755432392961842283240370533802784440045079466301799399507091301312705521622728066977069834452584209020109965012199708046241553743652079830557760864802217739080170314469530806124180997669405500073911620026002050023166137836312094125115206784328384651088582004210981225019990343973098474985957391501418137446630168315718957577928104396788119620987985495986221338962721182301826535723236689205692574157873728136873803145795429967146972074786817260929071045100025035870497187899307195067888092375023868736500328399349114985666536803153551368268184257491132770128705807183550726366068044228251509328880262798875562687081180400046149434379960962064544725884052439347896549428197065726462262998738043900588048432348037692241035143395063303072463523074227995397600647043871933454791169575829004726996642060106796022905413094580137564441258087131312825958996233224701994087152618768535786011066298004281512716904227656601170812036656940796330711671562615255615708722241431832874509116452330045487374003385404462508826168321183104476623292280360382794901245680694488624253436901904098575826031204093817447387675647007605923022359719794598635632322679675875708946949486119429527049445755978861750004909234161150328029075896386361464292963586876863875665405067697692702445612573588269180787715703744839943411388858920002685997554786617563763982074236548576622089223039685604212659351153828357163615148463028126731473367288160210105052927090231227864273910340194001496246243714261681617420674879403414154477795536750018922541697004316370382760824802972019854179522683470851839150267385473827728398431785635599031985913439180293755664021791513014719455491751870324897119570727554568812373204494068308157462609181648770555643295774566070752438324216779493663623472569142077177272535530252394033917807850244824455200008351983736610756814629530749484376486858170961032774364361048657083457188621039779756123384345581971658452200369333474615835630348934037053519480792808490864544094588955588601307021050781586117302022605882345299614464871892132734850821106930814449435367484465815368125750243344769628776935388159393592848051484298622222247265322892815963612313210551383961934851848659201244562826309532604261311313174838143296216343638803788635912966157774120953158365600212968610876485611459355259780081121168847691069029649707674063618149989700452962063085556261905143559880501311002018426826341491554326067912045483022995615339610783155686447934497600089768863741424202678597185253505882208032113634102960253313670499450242643401124108501486326905804320772143852744210401988719402979046193228245221265003577343191507295185820482042201117869563570642723566077402594713849096558203353321516501234790527412162993153371567981589199338325291495369371852886260833257478822934677616780706422373802245516630933473383778390729298082374219652064207160305717887815270007493608514344961992233663400159606191603431853575857481658420347681554427307003714232800435205966214961019098367212664423099643819795874399209875858291996223832778689478965455108655055699991598251826656813539619172141098492358719463072974746672184658480175456754800828542358487339754776897360206203502784739797219335840860967182635588944297522116946524046198862172343823112569167353060120259675427620440808670942434576590289053600096212036155368224618319539050385568586445141043566470106773588647840478804296294849556936069386696209123174400754817183976079544667917139715795619572867731988126499641445874766006436971614379363969875411020579553267506537827676232517083722592462401112971216673588916561596064440163021885056151598863751149206464423934690520586881651603289683502921935794385378596908258677832113453180908068903787410335861020467229694035555541332705646410499668339997105755843934255522591375247136130471627701208581004361611152962008609079948885757455373981325448799504387265676724675054998756370776492013401994712437925545442720257943486327412593310203725353785104411575973194085111589546922191275311278911174869116899600038012505448913311748010581045360493021712871029883045336732912283280547236678140863785298331289762770578746314505804536620473010200966697289882772536954687986844600146068018217662136587120139538846408790268165503732775788711145976775434886681908757415721304443400513402181506907864168155702820598167541836297245603036768396508201343569087259653940743082269170402482350985762546292193883062104032333213825049005323343734811706548827841101013856626874222232843638954588262175010946329394444423634236117999999186299116501613812142940003689682964033543902417824763659505453667867409052083123466343917020851792525919552037928960930919523274050549800830770009024990583705253378479704208597230578898958088247114192502354179563445436790670654832590645853534573798628979460126710738711160985597615489964995141084495885523258260744748582807077399904371330041570441275038894361631940795606893142885496454363777751558773628791509184571302928543937428319549430187132059740150426111455758337207241813543032510195380310233666381172937673162540180786213459143778754360808628219448486488455933597169205290066493333139365343002013693527532691964014648184509698672247839007542868155302592686011359198581624634355165681896153133459894917660584521941922091419036732133425292017666588166255384249146093453084684114732129647633766905702508763391493671874254997666951232047244526239377688682461145373954857406651482597892802262047206559896699652591961411961503458161519702145605404376835671401306839808374343691899824701147130700131507846544172554277858279870421061254658130935352972320211164248679897070449190014281011728247187781811151197907450567292274158133687263983794549653228103660345029390170805610576456895805869100282983992537788649860741972118664342715749530608304550821217030404565293441939190172881987419718983985007959672721136233248512277107554628291227580074435851619976107676681550936096211082749410256677880844433857517468989514285452631986745837114712797878201034577447898075477140230454244103986283365162509307681740960033291836769850404057511514045524319082373808070595307464413059346915123858369651172640651767647281389861007993977863422824099168281883827621534056631305155174882881801972864449766401374234467116556639997399610223496966091673260372921987027709276202007294693846104483510569048695943952933926435063443284328794170044208511592440941236654386344434995993411447992971142416400260368485522674642644399879624534648321401550309804440080411646295983836060604564862966626231550407387624201986628508758207280214776350947179730796537233776450855573386048653308936245070248288315219448064008318432774014123261170891825223360864332697041201292930818248566107639954150554144948140003314828073129916679125047320921714186268257721433164182440054998459986398715644008535223588893240809563623808624587671635360056442379521484897121745538317762168296832830772645576908921717876519093552399329951609030271440912733903714640227458811535350388931700175673844127693635078134086691363954260254059015161430391644941585124860037372198586067162081072607611411529015974555059091456602099631920937805562618998930778408905340814874071489691979686659679307231659274229751874270416963329819113767688215731412239346271921449316469109564276566893850127046168705959185700089969665164498183894791449192210030490775413234426564463135815368981842059291638682038600945682818594926687876059984900614323283115124160734631550973351946990124344238777913909561034266353863724257266916243766169498243988198140475336146231456420967327923042906659719382481876228318156498306940118835355636872564280873290668070583194694026262520199544988322346167828869683941239137804327306445507945577301451482189559736221273111474092070260568282026217368448434698046361340907257627255968322454837858145882527871117879307385177984454567909046233100060907946714945667894794240590664701919493821946348622742694267467655910567717328134080962794422985598302678251704423571680523192858213713774421870218878582275112494397511535340374668818724037933175401572022386407890115197185989422354606359605034690669008267959715353739753558276187715608698338711843962177371060309593429281064464105936687803974970125509185800180508061617793224456372713315569954165611343974542204552151906758176052049794127473213386382249987773839429703304564504021333555622107468052962313575932492166016766612593103567943893012132025993285640368060461124761952970061155288787630301309800203000301396699832964840614108058441988576161862022744958803474450819845079530868486244350535919955961086525204837858273219961334811939611312879671499222067422349967945362690379102291968693095879250584495371565330911296597708755126962031449693793093160940901573790668482099558113246620641897408042644837210719606065955503287666862834740516626402244232211135680906338405913694735161104891774369163985041433203042787193876295540676614140272575085026344107191505788656094983843572904687658135333063777916602470101960139147586022298482614653417087691160511797521329314852689253262909905934329302919350514493268183701667509195432027775790843686709678536957431454575119604386284171518142390895838676859873655079051483878618045467273587670703206406039313401370369480015875278150518910200607419922318897184511757268310085940031748976680869715251962974007111345463425663905626493224904174133033688795377741817740368934930313806138245774372158860765437381471381352498820369491954827380528436551391892826656547614091120635139799971699241245315560547903176138102483684214537827032579544376725251550993355135649414901393753651813446840082716718258317713880948800167678251023348681307712286695257900953112952942946666234897943647838765304863533811893619019199291190871185380387705158716170241929466958257642218738199439548084310776448898465991972457074202953648153536325016510314294649768460610479157051655562307651917852719707604710125596138084734042140330770644707694892241068645003868453304287418602815425688643329150665206179939002534528466141119223233474041233115680008646151140351875522301990116281654256821040406780699605374706623458919400156319463329229466353053878131391267310407601060204248453343794982364021955651435107946674354435617569055268876769308320634306453085095936452286174338174516232192883005735908530403198120918820277217723170720427155453743107118855128430349996399231320689478494837003634277824397633892221919143909668656862447869894578842915397431706825727739635931985261063910013124270869375936196123747982788956250812591181210767019609778991197163326372487174706532799495981566942686126415185632110722716632662054900984385451542924095376767008161170353315198789337018280153603616684854092429514974417994893322793267795520237365848415617374903095757595440413926807346468640972248673023729734040294182457320617286523429333078688960703455375386952066159126456919165003581112068178175588631792771311000227271855923903704809623929048564217869467385618152794749126301811451484940416471106070147051212454374002370020898254579881985934706259313800884824898674615041350035311597987412637935914794652747992046874431777422565892173260580644741216536626288086047066279243407378003425882628581228093964736172627719435543607036256591058050407954997032457626294450785230161571341530930837682511477867118710968194735807357732951630997958660362114038411760977976685504779234472918546500220122355768407289091910295420126206819579187502007007953766921626577147613115290136949046195384146395060450466847038990573383106351897308212899999081734615636393693330126931133086301340795404831267468401146580538562062234508099351242316927293907221161074100460929961123233786117344869332260114268871086503655986841894828419888545164696470495861208272527080080759854769711925666195275958432452167087836388067400701482222529741359644184967404032187579516934513543145958744177651961834986282906112667002633926231594092759593092811996382406446315546918201485145808545396161741511949221613458514584339377053249774828741704343632881709129800478461177253229164045707586644613167590108710668942634532650137302818296769726689463394298430878022630796312906280717667181011430693642940995239681212121337591929639883660935183256238011351628405620282500945940404388407547947257682532921229134916176613818786662185203792091904156653444292745598066658458190271982824955752547179138325023438827632339007533430255903049130012810757291366015762686949097116387005312656901746987551420381114892037579524436216917173904771883008423388188574153401728148724069490304503208638092400071500641672576892913878583744684663882183263679410279234631202676513319574888435090841251333924034018632113407535042778603190992237559100824957043299546151885624928286693181824694569706186542886312386747127501031021504359474886843953353911906775682989718326486228194383364026387155614536900926192543559925079441293905331952264564954887138609399842947216839292695904674739438444275119911579948285086779278315018562899405019199505551475888801351834707488593811018868150156202220554216829853363665638867171708033390324790857577464459378852071198494293592387670691996215674489111566368108046393778438524060272102936562585196250731463221986950133760309068601446105896182987383718074732817603765635157456596102212142604926708754158874773648477058490202025337037449187497316824211280906881288992591537297578340784215568879385449362533324215316645688881358444778219951628057335861447334913374504470515083549134692404481121724817479704650136910621880483807554465176362124358924965492705291179135469465894195743459521200301163022375591878758840096164299328790395951097746574046021789234682746808082494298375739990763490985037957487204193105559040471347699213445625812683568669505751808564299731951847123590879904824310317327912212011544756792320649346035302351829899079090654672795875510918817704272562957715387009891737722627771287183016263104328054148486335651069335353747802620275584842818109323452060353605962422086370181971139185363724228366643318730871966600549486981076518685607197555491973276223282787581266039666471338582031447046578241833624494160438202269369613724129811797655464058560960679954120809865323659869004893252092075794437855571978589872836624663134203193565711148536953754054213216547484361007782113948184467003659370422040932832148955535439916971481853288864259003691570309703164034126312901275340074677404010242767431303721367892511569306660778603169747594133404486777832197416641222632508949869542540145810003828578185810044024906905958288801270306365934761005970049057410712805578776773318451247222636270514871599747319593225112511832061197897204610292985014949278045975013625391648650216398175002717840340535660122301883308972694675310939048487900486985134700555110493867592786778792481257320610376894908902279126385711760368355170982202648344167522521920381780575470113937139799227518417670678805718216743170558285293986349527638313493232283190783484599138991776178024307929173345962400078152366990928557584317680625105979698733221223654864124609911394440693705640242152039382675446528412343650015364433583989036517053611080445475030086981833357840469027738953507533205104638502978470180001974299690283817464905784198424965334229774529760811901941776045093044695305995074668219938064947532358102597700092886200918651299142224107994870940701040390470410352285195555047430929281765037526144009725348541391328444359075137058924255318823295817561960927104423189747160754603498003115239439654714505462003932652393525919616013786834967432880345942157201323936828133481801878249450445902484049036925366498912067616553507266200915417771301440287351836478883279242625921730790453118251674127930111446576385960716160872587610837502971269950675526463853051242675800711849813882340375213032766575526359471017811639091342384643677707426702225336109186368874158622365263232974240512359578771209905631856327792063773502279061719971604277396949270572445776334034553540950089898724654442859514138681323319084150648593457584637848437594362828847779918068109313810466711174999713135919843927358668042753899271786205259978387434926658232961397638771720721256917166401670129517706921219499734608673885472488564316039359612753580180492943425014014029472413685865509515151458837613335058139210034149349474986383058733654536289948974528392898460974739668802194511949478197150764469384979093344211864062367935118305360179739411684414543447145493864145271876211472885811019333298042028725655430191892942150000930158894246967877477375921815441142480881054759850245266372067054602314721351197476776972222491931060039764671429009282980257776777586280766436319122725568301793775906695656069584151719010082175353394669545200050809261424574933186121893908117569977969876525572248425087309904111830835353893667262030071740381023535316755778976471347527149219613847707059955231145742557660079575377050828986371522866083801656809059407983657590957525787579308650529641286570768796864326572101666722265714454582657070011870935049728429475446284463627988764817510960220306134360028783548196128311756234562117914525730130021753133228171570427748230550295744729490170919950588836031750270282701770427754166019448759708922390771177805514274362331006234308803553332631373378426610347772066878359246989425545093735236466803769122810032244798528757230058147379810772787553038318145967270405967648587582413002875190971450900557980352401598171641134773301123253155042889218207621828332900131220817738068304284834336922596385383410230956985370206763195452141767881719386581052762599812859674727966150482103280721479147335866639165012006455277095356840697536552308992367154299707940586014460906538456005413651473874896105265416216577789402813051929613795554185291176395390376287169351175011446275878633739013553963927570549583692779370318587167411115753479830727360190509375480531435601662862334961346486260586499817924115974036345603765582156592435753115056152742606838607062141277844223157187261130574109462383094754726107694214397043429479586633108531017348188455150200764727720677298020999559374003032219306443423177093314711891619871343308858024209023492419144857703265024929408922960427913943558620051403440737802832841541136109664771941552493261574682742344300725660378016734412720201824001526108813698912305132962861632260706533859703619990306788816956331544066055404471373863053942151279586087963782819284822290373271612660414189883698604776300833179041226259377501983449367354386525385917143935617113309064491701504576248911829116355894552952078937370959661753184042323350901217707920526015173365971183135878117482266864657404149290775331792590823188599067656365321593124555702913859315053207972287065182043651135104939820608204411666137363110123331888296759801889526406453180498422457663051491704220524844709672298347868197034931634418871720266933971203365779219495249020289588202891354280868578506412086022727728316746523471607157551884122249377889877644194999834606744226389643631264888180379338898485550190809018670677600311456682538867966956008091064692016372243721282094305596889087015211132251930977979533101322304722453723661343263887472567498632511107032644812726660281146592717282144334155231990018110044058180660565730825053056954298762938904885697057818352181052256502531009063084646187976224197020198463125729902177354432786433359828152203314535629952405204999184301657154266164231297721064611346047878203772489209075152204896514011434075402921629764273226265152722275971025567093843266147814826355647351205720932166220208774463301518722453887736211510038817010234526588301312628921993045522041661217290404647660624516792446924134115465832104583313714253404073312569721190077740362880974207774488826279990695816957933838190795169623173931291343582751085122086295732230604480996912458356604766131239133159522956303610599991646551711288751064006670540409711560266760284913818281991952365581324773027162543988755673698937852071484445158043482762526822560008837414128488617565710324285509263465345962059356485812445640159571004133802600962530371435059442411647316001598592287593803172324508110747388989481777045521013180211155704564762531818687449243392276829361525483242861797157678321003643222098058060837065350362460349411426741656214389998169610316206089862256219510371349007354768969867020931256600152935241518474766839514119805273752369603229205549818634431890664694229515990542344082630740530688776880989011514396259851004667459742605378647858169589819590510055807157279286177530059407533439966143758852745762208700297998393232217473972663322171266925322660812386005331166470832400177534463704289079328730108781930009801279432142633141091532548154817107611708368914503076221236711829102195509690353164500257573820311479148183489610279658450667195922185356682927137075898817221066237664068589166887403746561707172377353204215784986970235995929990419704748028168135915720209824219162103609982424083677152260860080276066543990223818796133884381728940690797164719899191265057049489290937860139261499771971323647305468429340049018046283025588816614529886806988950425720966168487349513369351324653214715142010681371255867428180167637366158178564370458807241283930868686735071935057868555876337636617023578332661553392656310903549275512886128357491157181378290475712963177050119670039975041819775863736322392134674798627397056655191623838083973681909198989998430534704550982296514891154486516429625934075773324078677448121612232414133988319816978105556354852095304462246833697830455092381609087207118750355654826861031568113340876332593341976279609566507700317929246246536393516706988145217305687978963834839194847467331613543621443659097503459046372041548053942505837927937038342057609791114802178505033241155926939975968494516257948367158648342228746587242746446641862042750359215679752944209899972487474282745708939192678046202193833508082127821675315385840711134289129584010850712414245925042133643361634439397482520721844943641937638378732261335403147412862386076922729092731552747940994011994665961131849709862139521025557021778633897893821269675328188361256337204102694730631604011067819112691111562842889079885002664695506874463684726645414762177081820665304231618642082442423150784198228120123304438058002890444195377672554449535763757664623040552307516120625884020353246289705925594050649918887264345466905300647121312290696171475656340503550052334573417228060911507300105044327721742067166448774556265713962221918003249292756334165060590502854095831385151164325147730366125446058059376657831045221966946916278958767783259581795347164728485348819707770053130432249514336654181502777452325447995836108634803518517302964075045860742411245885726315512982954298801570975924166114876015704779062718377163265914499336956275062856228549885902711478750414604223527465051665700308258608419376798766139092160116569341683552952716295347840392209481932770644468308729722755200908973457271514709557995409157750950424876709477693100524185830549734672069137288116284752825964652186386496975907020120989658380686649535384945958582861854151597383576235757700121300741716510220817792449193434476846254759200867134399412300187488238413188276531815927233535422193173592194149178693065142257963345232503282331743907386156445640439320343863527063545939305105072709158117344884039312857189626184336777252757393933738541381494745070900250873832613902355335170769746469668237202521693344319201948949275547912975784963956146006169462086566064777448990365034214293754317888559854459856536887645582231905658240501295911058275837315729883674174381154933834350642433323287666282744008635338701436120418870274013036386933204791393312421436029673867265445985277551257304345809901261352388537978103927926486706128178898912626138759458187521273666798374307180500784601664207987155882421074010493272285142358096621015621936892035711216481016948642054453774402690680581134186210122045990075561049459372580969161073528228231187116751993608625836406766500117259950623057063262242196806507342315586008402060386363750574510289347400825866882783358815727362137651276862004199314861693402264666166718291702346364233713107653621448116181506277254886659730037582282060033248892304351382823284515238493959913671249684770814963508266561585540309221243666004575541977407625929400438406398271704529611444815679177588734686916552439784270869251188603860940734372813365119596068403021549515128622055346160666144630576704257581021734526834391140711260527155506731106920106606057403465046875702600573152405198643210368391953502026858762644087241301415542142902041949263954184883208556079957689001769473381439515400685397709693001212016536355714719465501398805587134358575841241968050319922777334427624018960196851851622910685896610844302721679038746325792790948808492049909901045997090053402567521196904748940932471966797570092517851975516933183298107019839266735745451165858102049642500080540374669747809268029548294212390316673841017865292791575414457935283999972475260115681888186852563890154917220423502082308975666494846108623582285584101083686698174112260245520749278043211265089207146414458860301958779310718549547423736151760647413829696978489026332982796444754733169271032298177467162726351237987901621438499135266625186433107890936105917867834262515498732942493222143043544222742184500144930661330363907037737551170460961469321371451971796592855160393391233928069493074652218275904471981631416899603325524152645714710152059678939135798078921344456766126829075059174211076623146227794255797158979719006758835881712408450149487186654141991933506648179397356142537050385217208951383275914518831289747870956651450837453887942396222854424811581921059000328999553708754544894276501663863677387914462017966566907925968183477785488634005738283893832973536762975880283335335038269798542105757195723748689378387153136643255650515309909563281187231496096143941982818440989244297301649825140735725113305754188180711439844833458049280778650746040008974548549356078955672708079487293345083002259858655354443942908610696528922747068778562546975149015181239725913772000280663686202462309477117053975162683659000214258860687080581743918674052242544872173017994514531691205005482704097058581232069920513789262635306978617660332129422160484750411998884071819115302908912273794392788172276493781572862060039971379404143645108134937763651608624357974794950258314799291535859802463406928977294674497478988537031620324363362123243181512384118178319678154744763045445647776536826479799982863298858168256020407571259705872828740623552744934908003657893656027218297491232601462141576581212052739133046188362388923701200518355934069951269552550584521536897492613348153670138405624353673736878264128769272777586083199561489797568767076925471466629776744891761642421869713048801495354434371976789369990426453910551572324532750273082792111788628205889712343131098597030349002168768941209190701086148941125774302037382421197668083694906846860541098518714071577037243474313006877579812648506444309496719456066241615005666886527564583896678842770540494037519164623264333502100883904469833471745177131759821678289556408364106420289277452296398102347810652650558051210132870355445885633484453585600199902006006848817893429973012869371423051645211470081785589029203893408361924726333593660745735141086548849434993458019834746076960962238019758480050341651731482798110533803648468596002136920785686600995984951994488515072226052506450177747220712022218624105834715244216862944677819121918910239802598502009028253737542950670762973973929812117334474117808799026706995097751736157670942972310284736382579994916748520372373689257091309656188320553244241127779633260704037947648927520735086250021227242312905947738060957036444098393283037652832304621952372070168027847003038799366041689017651456514322118936519864542682940708679975292859906224128108125809917983547778961387408140312595216920505469890733246960221197661202795521309906140122489224087075979146535691776612063179298728057330204492691527181832442155563800745077507760783132161999585015879640079094663341549748973749063015152335426839834881052132114079425548313994159884683954333009814155554474848469245511043194225103959281120362716513672503613217764591261104934522034309447257403308944492004571991119509550392855934680413322245387296915199536544396795525609447109296970955899675133278281858853510711085980936835566116566421121205961608755029819742610370160978427804503109933374818635716466822456349172769480646082110085009596147364686012847571498000946198967706267828890586992622874432494224423835659937646611795558918489013520196134744861645400020647227801860741634500799596976474490207818712838088465950400085330600408854360881856336715067739401802973177128097466432487859981510681516425438241483534007185543531526588233480954847835707042402397521193027276262930730561608941646931523783247976708179080291483960949460566202123779127470761202878891094316045753964600813562339915332586813952654695415103769518259387884301925134093332795571875830237341096613858286636013923577524438649270328227049797554914295980174819891349059482014366399979415834171136777842874271791159640199553200995216022874255968072403346644517152313049938061314878658929414475983927701253039146649950250517479678942809058548259528089715782068018031146003642261173407687133984260467109198463442664051519714913507774708225225010795030984291993646509219361686372443860066514277169159784542726872372999802173745403215901355326689009172415568186896982080689160592242585375410180259614192535231515774961568905375471851183938245997041432385587635593202792244680765604311543272686902481013257674216855250118215691809208690344918092483425183357712362356758563918848506113368406104168574953849585265278878220511438167892840421752359939133610159996306241890501469081080298940423247379786052202597060594043422428769973565513210698014987192156484145542633143198047973837586621611049090938161712336881020268801554607887303016625735797519288138112835309636180841931134043656060420366107742873129110799245786606943043803791199403745126707462474068097378235110152250090752023846134407099389525378169605737780508899981775910040823976556615429482454914739719706980002816966343656883700782559672284743134998222364696450809548895444783587401479704804129069203151057797528153203499328387643165590023794218929898859740119380327239333297311104259640591237734225449849942604982122525304836914713320543173304027075855261933682838020427279826614228185128994300402303042619599837978981025915531384892222556204337331331519208494767565163247857970771553364723758754945679949360090495577943008004500478163503877746259677788965982067683571439197545442195021111418582432714976368495583290842253572675602878602524834769607660776032094941095665426678321956239624326544018177801475135566872452852851035898922000602744093800581856690021001109233153279115304635515525647199671832154949933827198228334232730726376074400945369871492622757432768008716556618832128772859338752095908601805061755027733600224299556491554522866282619968772234618725533045314440480697689877719200644518028068610804207683199178481912171837680424717688110919544177185459220612330633968966793242321897681366547685031829079515677582960720525858710870041918228823500518368110813365442009335061273326270115637797285745006260370722668536811044866550411045644487166788404911896356239065136815390713906697891301889513446539883342432986706473978298669972021545215822967684235679512183474011397011946070964090729796221456731541551454000648358136298056547881696792993946722150933025494117163849147585441717103946524072647526817196501664875784747031914997406258139938620361402137167124055531155757895442813310532243348996411222077721244758265810311842424055420821926297070955037512879337295881277780888622929489991954370850507313471081759197391286571295888697331969095267110489128192642335921214121148538395269968919410585472533744511441147825393414275486976272669484480113748824920825297728189537536429651260139632120256613013345622746197511231989608419655232998682930166295064628690005525380088951981564915262444616618407211703154477552756818445895773082981466027997983813842268329860207235994864734475382968176004083710758984747022460597356514782770668313335232872789864560320874266922192038729927821554544729293356746520215868416445292783083538119088441283591301716009789000225807515753015230353014470886846527253516858234340930035330950045245098023035607889845974104252712389038177440881066367885115581266154279722485750217429287998625672902728730650427974493399201320911494553450793236358795242784378582766944965712575959539189796415421993464743968090575894377865812107899699835991844686925608016820723499659265419138844993337415251642178819661590060474742343128110447628270989089632925512110437651094999240708028323008146784278056567360738064960518387036826977815586964640127129568339550352700504215580687319855772990505534139877397180174322790764566309872570869769929481306241666063733839018052663405501010937125243400800239868700226112198908267848410999959174702232772063182357289722034651617400316651196341595211355394477748398319564738620895075398235063822135670892958114690447633822781113644855610925984755851922434877697688246535303978643931845904102013217183003874270159888614756225916117739096645587538038878212416924645913146465139529610932388429374829833061135584049614248644892908070692080986234364634094272870141641013030080624530745105079444532270508772764065725814703952444516390399832193265597721746739197193965666288456565424549522335630190157294135414546134242738027724132261728134685362679747404944686625571213557054166872123055723076330914195045140758912208134824502529587720255718862115032162079416888487499046619980936937898775629836635349985028099254393647517421310939192075949342485018198901095691695366738686541016487102710119111017933645603998475499645484344870777905778676474842191302428003457211704419679717690044693827479444131947283032915478764837149079641233867422170072958246421917357211947479223122119298244352956464619664832258344962530009099877291710522933019869809981274804261969810149642023334743107181603973849684927331123776979444741703153269591829754866462986748503893934412359354432961617472035872591089236941017740110969866877230704639600021473382115321314384074247043732210156032428027681375293381008562359685526140495056132973470866259567559884379982009442452234957186924636017660532435867150073955171261643252418711048756258333291269390379381655023398571101724014331384166992522943161882509751840428893344182200512958519840396059596413283561010597291958077383717385879299291996994004771371701900518294741292577515237509054803093353273075679429614393615189986297251858572871900737080126343276410164973836756740641991800901962956902725916375542133367070707074549603085487553283685754741478667135169939983620424635075382748760332284882667554817006460481589090340696806544542938323141188013294566533870727313330686217241045518232123282678430385757149474205940242778643263712996276388668350474501057209314037358002029034731394979678083165514283338338299751658361409828415808134106228014446875952575223595620826014649737601746601437408130653559421860682919264956622581604680232970882718575484391242107430014928346436765134677158018793288087363210277303497344944299164123502876058942225216949405971194299422327367434720050291137305438900722423333788425286782644162839054400325035926230374613263472960750450358636207618729504641313549050089980255771306410637277788362709319896319693573514918170788802486075654924850334570212683996472663212298855471232286289173863329593221644262222939960379645446191397052360272080104597779109820061652002270681904847288902500660234078094160571991538901822723189842969598808259062249479211128412865284032868801239017549598901025714667303008190411628512865350460253888599963521874316973024804772570960860338564713482479549126444631161472602199345003920846116446011916837922547846100055479144352135004845590170872427612296105376994936123869018701147229852124776505786682017869339862053504299089921164038507067296488532359569819683266744475330835850231825121322098716723581842841637301909524851714334490861211711954613510882662454547559679205994545004862498958682062930711486877570438819463955690174092093910132512291221392394972082415256649868267675333182990710050531000633675821990006113345237086896671953063573411798146325508043488557471041767280599696034241973779719350884979228498981702868274624771553895376970726187556359078292496772912405760588004389042805039994694536541828630392900911205954119795221840049409644172688877093687632548455135636415444377146458259005455807769667457419718257503901623046567704407629637187639516713423963025012733193778564812023377490159347779677539091707348523653218575250084830746613570305117309646100345012864944962473207782231308288054172020361559510450324433307091019191254808520538357794342339619067422295775013000551688080740028717967976679878161277363669953745308291960993707127931363171228333814453050058574481756605360737552541861236878008976876938358609898906785739954896707028383954942006026649055248375661592047157394384008847468480370156893069636227556606109020508740268573682783030747981668002796889811797874587802937744273926538832720471323142550901952726876221055727501686206199623591341517975139944561388599949494026533094029337334115597942346665273722709146279292964381755692820890934946953967082092168778021058609272371201140723186500772679852018132249049952043792666818013928985866162085655491727040762189731221375464684123573760655548690152574032469151718732299913570007909115439192701680712357368454850682691779829120059654103155216191136781454547089428982561363859438787585935428748352044940524061526798083737513348824558264283021902058432791056624677390841739393892992913704801080480885492599027289176636338931507982466772826358500707997436370334269233316341833990872635233629911070718973560807474007652078435713244257009190640721810502484477781481428535326412765128965523162100587390737510325646013962805527610882769513948750318629484129516197403963551031549484375723896647989739023890515332614169278166198673729359429299138733236780390246731155289342308362453902707956945964401072200537240423705624737555948396452707972747872703843439672431213742616297167131761781109495386484692012913407010502197507632257407879098371872202406884069091939004044063685738098394623239380781673820845613686885911048814860469704969366108803640321261686277877035344139717886180990563731712715775933464994823432741939209082862117043315776809721981727851709321319029022451163156958443720262137458240776378839814165591391762621263497175120264217450195219788144783961833681150384154625607695555053458687647925710653773547000605640804447571506850865825866294047413172107065918477385588280471682650389817831621506645049868401431695801766729653195879756313650382782463078726572731145496399995936805130336056905291574670265626359795224638385692442297508130245757392387200807486895681671452303857598751122512104851646038519204985025888653358489746573423733873731254790880930218283877039047944774286691733583338961151513011889672007805713226341602162146683805599236919145737227649433561367699820638295196029669461529528628920064722796113725009562383268113006837144875682683866968844115752661089546637702720299573980668715747736284191566203596446999553881005978545174783716375958293470474807532659747270859045591307831005796948752938530001713632674951428280178913640886711721743584183251324184319124555445764425108456785126704161307283614550055707919820154685798693426152175822936687898110412612817846015658186272100825987275210378642936706823196292520151700644431482760576686721625521049378821576384161512243404660430781532831303593975283911837896222445075850333264351079674815231009609402037262515773569371905443694474360606482699253221423351000341917694769440505484225624653724251824690105017620669265069732272196418659482650532233873558750473490512316297569796914950221121046938869687436007933870705475415819134435147023994486942555477178924727004483788648699065588528506703888457588774460927454322188463905817349630755342164899695283125304811248659966770433434433367170610350172598503216397214788484675711263970055591834945065551580928066979071421738616383977562530937118604088304127479824721969143237509728630741579882772240207916940857905073659814004856731367993532297799862293699952342038517688752352690856981161108288355091669317526549371107763922030504982750130448991558621735664448653517604064588581635707549245154042508025203086538991969145063647809598713949950960502211900798567404202386734688685644399184851617186292075670172735568725830098503740392418212246488440193624163094125252565840046632726678313670932968159541486220301841019233681051661203970975734523596433645344963870737280214847214028983133156526093902217348349409494051381242368308519600160670911317906537548218674757831686845048923375365640405012087905018077035740125380818006076480334712095523753414126009726067280610150631910319515943576303894485853098124669596745353468412140487127089628404152608403248608170704685602479407805393576742230455808261327959554487683285656114664793496297117052570601423311923939539314306024525952938265485699891333543047853710938296045551195806668641464711933696783633129132692504400604118863424907589789591731301833606819017740985548679278211609569328548371093492016207550130855462839126653976514750454011112528501052269421880237795698575599857136909320812045264913368697959821899536817826292296523647250773248595154697572912628206080614434477640579104506807386255974729880507305201689358064904319576404403362272860066178940365121437138504716925143293839498393366458357358060438978450320422036128027041284789970914190047840044056940606996161987901316684563092939634020430297485603034769862848797513426479680614720679086469901764928100209260738098884098647041307903401228405059436876624973519180009067265104182344314577657927032536344768293297500782155839134457871619802598678693056824220342484920165897065645224044629066091563745730017935052335443543181878920665753781615255794340880578463788165244166916872062670154381192738575000814867609786929117543656256915379775808640098830530756438196283367471732676426392058416865114331587273805653560252027653148115410196190511570168218911278127533220939746132182277389982074948428326927377721307400042863357445192607131794259936479673317224131954692934896285736994440636111786851523773490389751396140881334699735861424347148881370219954190126598107132412843849152109237697384170960638217292638102939321063664637488653716720459876406745984866976801181031797711189678610483870390769583330688332820683116422230319850276271777871228034025154953885905057972618261239462504825116495921759270000287736553882114754889723240511325258941812127690051939871278372183990241095194935412482150283457287340380043918654885305874315504904843537024511832330279498566380690758766184492219327562708675976396579014766653397985991571506734526381661388546089890168455476661851153508134406314794368634081861600100264903295686746250091148034357309864709190900556210988917783169197202809339583441465181838321639057178009717984410508655447470108770642333875208564690205787693715001464913789044313928285610247541094663968016660532863233311523813490817028118974631457894994324636334195228176984716152064590822705434273368875736725657495120017286373359520380266632573937099979827841541041392647774621964298674719437296926789836008634009490504947071136480988180542378498569352876570465950842494188213896874449237756346118825502665057458705767683872447553566313124794206461394957511708056205428712109772961545386124036789800008598008974798179819227702900420751922132743600495812390694077505166403928570790494045021038699518739943585727705812506534662703837873341139448760555946490071492714009704145383404851660640676507006526148280791142286973683983182351377436252755791653035828884927323047007094552122278072455284224984303563455831480620796908409000260081200918699075057342214501837687121531819934124538752331216572974151796633793390310953412475635977708192418563376436920640546627524437216347471176170328160877388059196358141691668568527543644946926545022866114415979938277982930987968087002810907228444617448108235754367634420936617165038974961088842921959008573689009728633643543405515040844433077834847716010650577775119392011931061995311977214112639777067579829086213947211854156380231738365777025499903029544277873307018136875010850103011299522589152790472337616373566653521552006752486483532045809177581795574462427684797884496929214535259196760738460592727437576790419595272778695149671644238461760517538370864831964688915641301534431713693678263398133465866552493488261364395894317508400633659420058399977582726170191320062757207207090138856397744753901953976705389074734337408597143381124786899497574510181725274502701403353902240662611380678096759213183820756448144548753456596100802764363745580760226892704664204794174592793514306742959537666339308475755889376395343095722401905729818720311484230957581088097998606042437469626866255909135888667118208342279641804666029604925285110527964259675543954593997373872592224729688169193446932763332890218625569891116205725851349814255974111242621037491139070637064619946448398359107759776568448543689060266353516203185308442825067550822768613726688350644151427066360570699050261490328239200421573184184847683992010901528348319123082251676782848561292012439901742795388429648330267475889601641371001710987204170719757455375232335660529848537737008070982497398306899570385126485469224905397115882788298184349593763208602315345628717067779848808420009037271906002002023883974423051150800945800356902793028020404778836510426664003850018743794336805338492066857143071117181468109636280211197642679292992886561924959476033067760745148340237281217395214767741395615329949313551324460398860013691652432662208511859760607187653979793677551126029397722455720348642025797768245841375741550011301915874023105624306291922129083115950153788791684888549814300662759661456496925177067097134656570867592663808094855881125453814451502704849733589513900473735999591848327026393227129229599353652279822493281879493648676271418312413409810083981351881299674371731296815243324807619804934363688730493219057156423413352134447820804127998463088406655399068896923318380380648262938675178026417247211004203821595728422590220185841245480215162507545381298496013251112154211567214028510682256896471336332845455309665579402393213645270779455064202427809799986209935550330806685397892277098990989174324452899340033774543412243222243020894427843693995068321067715718387319504803806170118951703180116892491714397223739164066001367058557081869125725290748408079454308013451213531387677738620272552437376729266837864444148756959269687213692354620285254028169306962925378276324647858081478048138306402071695218933608507582979142746027711984900990663636903569743341822057591825785614531993315594844239849612994332862108368318822445208542285127408091339662251694351190612521476499108364886040146099994098016134826488980753647725672478730876671671325307317223536025995095652087385549411042998295514810254924700030971061354080676709554825133009141026584408248416512455508686582986190389547676498264254991405505365821424055878013336692091188175905481016921497034409657479490719523018346756695246665084468993099255350362095413196218626354149980882946089471044687251780217903520062987614218266212007625017231235796535415006936308291321181216660714019741542870131566482685465968579824408518305185852073919445374679886785795359895883465275760964731406836378581054218786484696378025836439370911556414462032004665711473269052719102372783353299446556094488482303015213386511375480334807148708106320847121882273684403119768857746260063285294476602193731618409713755276947090742080557645195052295209526811067182890553553926607174232034253029845381742712088462343857138391687730929896248071015448075025289938283637484762730747286252786317719506939125432910380587891394147887994836963205573104618818865820617666796271304795436567783896171227623690842932380702983216584594713928874198133423150384341120000371959677663847564037256765979511957977610347811845382321533456571821878864628078442451590475834471997763462608182842779181381217925068986354294051673156014091473072383008163998990408029439653282377580071978630570695087944446305206078310029095669310630873309802293301448985009119182977521386758717155509987555371464197115227610591087071861290403018400550457053254212612192388928238143708213360430298174950275317933683697391254559096162036629009449434642798418150820887936024536432992329898813246020108416759026340755158579173158759503293828833627351972720208030809158688429023535677334282190430257626557907037775152202922930134119899322937559910279790351440842212795336677141501569052635080184633869418385880106819476396627548583387152608810778064296450690403197464804153305542450409647404508623199851223213761014100618685994814592217476295708457126655088889972470093490935665482142270874548398376749436676114757915738130434668178740943785500427617233530244904048388169991244578931122992436191103134177167996782939415753496297750299498863365212029225454669126136327579204167821578098154503962369863256989671944400139737622191327544350991444133656428948626551598600841984189889003561466679556486759166019716891761304894198170834740607393208092936356888232531406938408382093834019323845298167093969131320562389199557385666536128141550591519586982147080826319367186989915540075849755085540398251751877409660273182136731259532911793193552464914925878151665151606878881109323233773679824694349631166793655826058696034619947548436122682743736741434273515107937012607105780113250556206153198470811207663535358484640263464719345129242968057186645111569897478944848975005657472298742543077057511718477267055328381466404793142092130643065078556445081252457875636434577011212480729991791418152809285034459393982485434099831292898792317592627532042545873539144057387397582788316903321407659939879296789667387513595023537106331539041045607135881213014986243639059399817480052941976288725492948974649425341447035641684992306655439467740128000752233733430954185483483388007219349220987247027393625473997500124439482670716234382992197642396893814194481473162598651678809486035201952805447890895584601317676442587583620652783236285089407162511503795667662047244455821156671246332710128861853061108286394795998239575968910562932517076165519042626982938710352071497377985373072596421116647120231148815048155814670282004624647213735530822496124428612336936250112371834920466451898764659121313608537509544074830938322099896201405772293522707120674403892868100702429886263684548157677576396721329997641436973022504636891327740136825951387390081218847828241126108893357067735500989756902128386196600493751380297887509896765025188430458675970958615258340890611599242755252363640992965791673353901641137547902957160836367390040270775486549572899066857151143940866792097930400805559170686470039121610081758243417279063691134472815451543439750239400109577814790040684742657167014468274694116485609693259845750755726595722249954964818738532036162926973837815455690390093120963618366336094009267421518296998314626761957290533500692910794088656362153940107088630931988757483614917471656656662361490472701821435642906155744487678291923225390851797734940447014035464022373977708259062598202034921988911782548631249500567808236160267592264570532060508599441287985854989490860097849694337132008442537181724888660121389065228162646264310282147758204619272582940810384691899496583901755687254020492472463329720158130765203569276711043190852135010112158221691049342715970103075920538071255333798298014392703526739276213033979390233143670282756312808901628648338065256262876431030128716800803423770520645824296655260948776293161899913121813968044686780014572795408832839048618409279825011210573596513588208787028729213650542069298765476416706999328883262903554855858557240594806347816123647719795242795597463141598938820013583573238933543221131570168431873225409781345571188656698220449976316111073670337321970599049518707659949342040463992418819434840760404022127266684783405247390881155840535992940040865278950638382753281225261255296204393315431839816919374661319718603006626687876039583838241614127699964041461845282610492193166677035436114692176003514579766700170388529512227532728461938782109721578592891237783218482444965890306172653918165500080920336105837116552371206829671281554034174250139831427209562174956048097079256973398793337015019886594929211490364756536531460059264121953200271784113292361232922045196844404644112019668500758509778858255839893296218774869299083177120209760015003741743636626460646895717060217829328081106647516306475275176901994223535383368309004388790156541571884762881394095168574809990949546037674167473117703799998700246987358421770380726673678892688963207857831996800431656935187969254787798176668680939576399244435175499181284665688402026984771180319196526779486257286785759391691340947280767548652664602043530371627166791070660070548748193003720903780968077726602126713592095725118322344721986904843053730231691119282174778389882603480334418335778960896972571774764255390777771149104567360305293847143789565097576499527384718713686217869605312705117976041064895744420012472981657085572454352889368636467413689413659613873123965894128649104174819022764343455190556145079793312956132589423992963838713989360139927539510421739467738211846716230746455742702224830486143930005201468463244286326965396891033137511210926994902394265925530490778178824501927022679457909577908984350162201629130959531270494760446499518912361778511239882872184578414304653184086779756080885815762512617459218835951623130120122554853511385776093900764076128509091917878079714189624768853417399864300193740147986990510649992941485325355430144940491342933604473769791446835168853587892498333509673605389506505476158879935651229807890429245941039080257914202068591929298754663369620105484861968963283031735325400275561550630322570433785161548918506564305126265934041268042909717193439656578215952937258287674265113364868042606560797264551232800004797980853467178765701209064285353174926408355935199336876835010908483114817167433673695036999304807087585925094799412649555342811037114406262517098413226137761137629766256780829261226962383923601621992620829432237374714839529344821677733588216761433611574524826895828665210466784426131506275653538634142975538444521224608511030710366143767264961302695845482416474058135741512065664958558225012701158407521154745559140855500914107598798398453536169714607292155662434187447033184114470400628555109989757823491459264418574198239220945027674882841217639034547989028168647869412987811768983067432449193613637492111758275353398258921772740386515026960312279000187403934500242139596907321034553868560266386706852138559794548961496194917102485527385429190762697586298514420390139203647106364330281750415268242343282456065426895341190332650138232353046469092203750562393188994503695673381076357638463574292748895398140458363286399480062463149981615846372874755069979581809294578131491662060689602570678852446271103428027330858625779339582325937737923491744456619382561534681639455910317755633394622861121041054050503950791940228166066391708993356708960678903291050402697137690896607386037905685456282894668537575597110736356279069470509797118473278580694350693813405344523213443661213272966229171138272883432494587006933895555463096206150243583489271169111539864900047018675622635440885963899547454631713625797212635518296377458511846232647135972052271199393214179016799837991874452995782086756247014769087525121946540358654565051231599641220233542354233952504187311559945215884960744088980014588809714756221299833671508374493552071345789000202947879435428665423628058512915385734530930509963246505191940268211359571781375852877742138184501178811180987612392863503903434559569317655929806121994565339834389313252247902596024770593298651150081710665215111531464183412426003394000077108147469491300656447906610634527675149141539865550999816502525561455408552339738748379432342371755648146058570736438011603451117141461009951172890924201113266919544474329829828982802935462486249878782377699012940350530490858650797867861882959397794803170740883534808053191619883987965028671683977394669243233424078536287913767809163393987058152099676832389215092208179233345440170002981841028676250330907385800699067770667927162811889789835813197394599166389453442473467608048230418428892362577585037122164354649926571666479374435525435363385651419547364863430504374734323987282622223584063518210703031504704474209660707544758477290616113560148801221730533631878420650542339745388896710647512755261869769200613104722096409081624701701065512473552077519566250757585986760106594952427776510241915573614154091869872688630852915244999923512327737503861231754651635819099219441672630223232793857781523123750839212713193343855641605209685906283662110817354000008338911362280334334537334500261206179277540277263149180133339689861977045037108878543842028629608022621998119304584537677548602928787351460070175740299692605916127824804992855381777420999318293015660968883158548009502237106221262629617529567374956859456207517359292485419950535757173360084888405548302310165128555695932654580175113912721541015684799791198614358930608217849705457989550148298750632158594909253141369984494535323931103079957930329440930980314377819147817721752163659640336740345801210227639433452757729069864208100612965934166032254870521909617934646603800595855593896900550187416518247399097986556748757843507459558595623196060550043748038374504233506768309475457986924218811175915938138843823071100826787909678693163873262959351896067117917755950900050257058196271395601852611078314660482583923820831949156971729781726489248116847785268823454943661845242072489225174911062702311286482041002073580011249049980964791361435403585728771188317787574713355371885864354702899499137489851416553466197215196123321185065395947567311428032703948536748454074527157944010573750049290710234353841933964122852196241127729423800583513461853940869697620198894085561111354215331279424412192551777627678973210128838900761392406508512646747587395279623753467180941858448718033332397812544091381108496916869607845959107946865670442510391599357525181701055868607995417112728850672433483558174706749150240784980593567750997103791228400533455404534102347656568549384720550696905032078522138047121032497624297050851006703106307047438830624343363393500221449390983320310687080579603409584229075232926907986196282008936395690731502389117911301021563480100729378058663741679004432614723959143353732892987367218104921652968905147002874056450314343668837104682328523189290944812788891695313266642336852312638020307115098658021715433152306424026097350884377102099928611302212562485982649077637468322897515281128608884252329883718645340277294711925251948356696695359431292647275039191852076004339398003221440159656958546084349449059649721739443730180706599011655537279129237736506641990369596476246622450056081332734071446522551741826977009300724418812023605350423881673117962732287470979017451712379882060887901348208260673635922941336933507910666867358512049600213866881977168282380295736410088475564267255810730079559962841221038769382979907299876814687018252120855700543546860067919099894923341406071682000878015634916112629151065469664574880540252669814148290875421200646511443779825865001206372664672832975792662588351892660324278014815711069705097066450682604257271884078333079272137077809931474661743625864643914761554398019244640760259969817846091646604748831630448594490680106402938267187114908637661297214289687096217793493521761109576481823634558144574626369613477834306587671706948573601281240262299096896609554761052773882796779712809700871591159776438503110489864990287749713117075110831702666119253116117923407217283169274682976360537431300106455990430640658392754101232385280053784781855293110780975605449475989169475177968611627237614075469156187143908148287741879492042566826052814981612139458696665370080712567809124911125011379182101753721087403180680591839749886750792409633040307355055242137803614392286364379374025167437451848665348199856678376210940482574688752009172964579001137084566953719264001008648356679080251655811716103349540787448318661418895821567991138547481807816448092676313086788091668460438169254915745275927391037811563952295114319859077356936178949077120375108801919652845113784422894815651335480721646833890237890923502496684927778521789016963460973660880363149758659622122525806063033952125330667846781704751209904482970148863926848962882050863185622448893300208967221773750108668775637366119599753457176988201638469819830852822768778058907350350052003719553142596614082335555036404857525156512535694131537189223326458643592839293058652983388006868882929964526627292595625990156565274822456621953039692129765379976549230894706762095266276203100336949947727351049914247223411446654394358593204756448469364231409145056598407978448247795430188741860107122325551572551152995810295960037245565108145346714178010116154081583920655121815777030460219028662918889381787934886814976670332990403929200608349945973090734710201025672513150058285517852195596750598109464241042062807867025939797817062930555535434168694897280637378168099715563094373938297718328456245856654218047495400915740673393845304451021132444097872639031322626024895709379424161484999919673338784400908791885864068562154857006139523319028844092146153740678943419483697462368878183314980857640496946461269427920422551611386532352860625420966438652067283594053880178040441441586438911121337917663702450059361878325781327225324784537081858366475532993751427131642739840912299347230333131990279225199795646772552714748059606240524520370077937635352338064680711084412873015154598988576213092021695425383528323734628955585771983498962958168148389527556428086031834364461953683495236141427421619097440283043830866228552485461189314975279616330100882105889419056461484062586102691062703463825595443505416221609156480952650070944354846660706946185977129330511731071254720402597194525942505442088698492914658543398186998733994447678078030050884277609795561689784789591428084026198128973505847371473595075242375865491619426798009742384116255811721580565022173564257476560049429642716535543533968016288138588367884810198695775441086975256570461569568166782665808163821371587241644675562433093649888426409644740015195278838625398376424194679073412228956189089443739320214731688315302023151227319548108129831330205012488449202683249772730046332253003918321490759349962105073534571423267766133365091021639730057125903635778707089666332059956120307057239067901263761544983437446929607832194131243129002191620100579937940932875492019310895447940157948533506598297199692381866576923721479237261852943451752924097166150635497094119019301804497086359854458106693710959318188708070363370596224297307750068109018951906655879863400151942281836769332853822585746931568788864537397185135309451468138987437595963629288906201614860262959467926045009592244329887727099974211030376527576857812343656901891814370283505150647561359995266855176375337838502413103135615126067597101295356892375278445782113579429260741303273137798965834209097931993449705413264793469948639009454631378768319985437282400220009710279355888047815278318937048659547469256056138522551414801333996210711582810095202529387447264428812711503998997165984877348500562439874956450865351697296748819914013096069515324017996648398720355337748527716857295039316292752017149495693680952885556647055188074086606423682005696653888939593819263392825363176577389195880089196786002407231598210167698180273171142762048243624989827434461019468044549371928513182161228370949986454124666407137393662476408301054353057465386908873435247138205184258688864570343930767002367727222361307097582584216454235407721743427842824222242388581424254973111840397194103090712237564599776397230252417011265620779742222065208069643815627177326548928232239532736927781670985806994004132434668234415083329876674492564832146264700780927613447429552988604947771582759087367740826972921299496623071495622031218292053748697855292967379161660210573645490149710311359560979967773326292895286480219337466975059223074917437245636784546896954637123964345026242517088582684591170858583870025319860632356135294465951296255302373064522119224136410807847340885530108235646238620623962399017155258539940775516256120371878196389486058207214837586039956704854440467840680777519683490571746501678534982079299174157572304613681157306431914753070424867904868117855426531562800169626420477198017910944408704596394114271455691829903066706463054385155029278311007149807889622868052174736153360460054527141310848143420905455216734157358203223712784905689821811125997196433042898274095513155740491459031321688195910115497580284692421617764217793411088548145016653794857395213374886012433784244719947530189224338513108760675010936013810676386603437999963987068523874514233417626177258091653868288430519622585617014303002256650283638258311451229531029247326874295078292813550440745055071505651618708754469984041265329505263944940234829976620104416317742574212156150433205068236578450190327402267582828205356722929363430476914574285089211864669369482433761288900975467737461553124809519283379281562841429641241375452599368656035218940981628194041188094833189626636666268845124785815178258725782722827979300584160358153040701743114871397238987976190006172444876997169907829133855120197125505210409673350807736478637044039063697541197207711162110893795833480067401780464811298767175244343648043471962640770830904959443748042274830425364528289326443913155284059608605817363311082767845684014104596743949872268964465310346290030181917364941174914113752515071834844060532774917813336941669925757197081471629941289333285683781323513308145522858473774237202520936719678033075501575428196683363383464121189158012579585791366213757769934367148402451893392993756274274865184044678940441752117330411559971419591087614996329055028176062376434188127237537810091367499872591018544373111428278798211178734258712983381844967594342990142618662106794880733445138819871695785931296756003621139973769592370198981183997869014881071244830033746683677828964540070370616920407985130022049446100024817145637040084746619691034755467809276376107974641477516402692705939172465317342405668222284586588557867141625960964244720737533873864929981344682658695796128497411294127010293615164570191473563344933489757684902111695821876314599852128233039220927601895633864542548375844889602247307229411625848297746918290865264327509881851870129853555973482751096251278458164473034976106071592757846258372284548322217262137864510872479561511817803222375863908640935669851896838104619413325481537910218735030828778431064452308567331023798205556204398694529400033483044749612996381357250625023946917854702299874890167971333358120950094681085863708288780890838453386483373829204541395706076335290260927117521842519099279756870131032062304077531696894592383297591734270501336021196007119592882858483990891503927123672845283218815737689974258722449895952855588345796089859839818209512359545950852766900610222640002803067153286955913706616907457402035437637203817643429718101524037460896123119532283952832575296145998217720970208938002149181787111207358588479656657809901009476179043249161924938054564604926226068978061688125044516017409970042179991989575519456116781242093531839017539090761233654598273528386862334664781333157031710064827930019577677974776546089612998647990564393770458695068826230259377161945713264379739789206195591812863443890869065225616250005802312697879215704556413594141985765136544415290636724808484602474111661371697515183168455711322992489241637238441936219327547096883160654542435069704935571437698937827253009401295373045051825867931754748312032163408796874026542271719330192081255976718782000731797875516715174258721313896050051975112027644801060098382016017646735328402896194396649659078840975100896900756230503975940033578439971927473240153287077310835215296074948608349953069551747069438423404560434718714841675224384507544483920552248525290302253935195982038976414229985439947919823570770645796599309762236939946491420504902552248525279348695720405976567172715098220039240346316122607845006483101539781947047546382795895362491256400118663288790490883056272598201300516098150547565833864475620962625025437102445929615285974425488167366196826382343060565045849872146615403969700441696556631403002363620918412225416412583874957510999684688144714510227834236068145502772381192956839101062475213613840129917036386443423260978977101776156458257947964104715640056381502889510944719202151855211610085779997849833060762528861034640988388090746766643808277640515922032597342128997388567927247763169717248397508458695415782496951787933606052719903570320689061020160905010286047390078775443814977529126982299991082771467068452015362151724231458883478548032404066582580995283451544629471918030669126095430616337285190349582336556680984701544418942246749894851400018605493537209953108594733477925959918754983488936421166468864237033824497257701639679106611566318024382193791710796042374532033400094263427289391655313441414988543835301188218212523998524219592310073790306028940558544644243568918525870965475335235703204043980216961906522588262983764104812651519397469973369977031403580092689985700102053565884625503231643955810481546444824544311355127708441762052821875049873022911198425254097951440790004750325293659113695202657703312891011884992716268283149016457526837477584674127798916087525259086679141130552020163719198623223506681345283950886510166577027490989771966872159147125571451390068009279653584183878933990278861507096876186153848694393837830635846434617447665130462142802182925103485602939156067948838345307564991077572566590354364760448499130487401211132609568641851833771810218238067856193555556926091922549511249857769350633981250948383699158378959915530959242590718259034673757175816288508096513303054883823794829832340486865766249746756949747942248475004996996856336083677412781009051469532640817044546438387073881127144949017847166907717760557419868820533098567547900373905428944677656944661292849223915794415314636153301178817225103267849741446141125896703681080578615696864091244683429672112194982198584240089849682010827063685852990132741110777477026922265658405578487765441732948885315519931845479629393107508724432411952801843640221128057204398991554174408829249348006781654943639525530313605816437688723107914198344713476330955470012761702942362198003870473444490305418974661417450584884099907220027010951538124564447704571884278672723628290565150901031198048541708602414489520110386177185413364108244534300338230228885129301484120488769725353056042541975582222840081716688442649875410092369781898916582132434455055682705048335398798694923963583891297621219671624062270805144790118794073628682424047904201839261957244209367224942974774703251997117918842993558111751844927743054922591110326024226963353992009053422397222227328049092125671134221844021700985410476759586681393559922668037273011030798490940045333087731917571744295955288186584787585908247584426928185920033819226800357952320496074723051599328506764814728079942302191680773268599421481061747824425400136895954302794435911027827182423390721264523646296176718483624937400184059640843754991490153544475718856801506036048320898953051278705775529993914782382143550669627865923832864637996664108271591665437926175023385822128071372815426570270773818584957329809852210707060954828872616195870114142738522936087583685635913593903307787626790165124495909776501717012425540217095020116853080956100920598524762121845394654459766495854209843395664668899302338248978653544386618538087163772332448338479900321351364548462800986643403087192584767145390840494895149931146543602708312187431434215757513043447618833954397949858559239858041511233097555512014357491677697211074649304756406376230418552518299787301996794696817704589607663900992339882875841413961042150431464849309379857989492607279625098979382831351142889846135866246730953167234239627559767742444615617112169115311036338736311449013335039522909848488255805187865856697157212340887302277706964536117054817028373568533645945839418480160959641418078456827947804384654230561463566501053148655569043126124054294459152852006295328605142499388172667150512374404720160156180178543690739088414684897860855682512609222477793828267572234025108853549180050232194149491174339739121387894626929601893411537934851017055095778662317950315403522012203507165536167836462063839762569457940577230569111128295411874923030405883140148612908043230266133650034532729153603327185108196884378962391176151820157339218349520320645650011574230936748185405326187748274004702296585630896537761182418137005619287232986405364312859736818431948406293773154682025281551680906818725966791797914163632201144193226515335037793681147568936789273352142161472949824519085031858899107550166204869575948569103392709439692713882169599201388092216479105072578658404890301969640577509545181724749920286328082877312350429583574823212801077677908234570532201854915465663321759819023199767175456496940867526498528742655803036844915872086906838801162573606265712364629942341244537326671185154765281661579247709515546970114560510784913680874674018753549752935243414131053866929371768646331476363323687023621169142710629095231593334181031105517769783629829844992376935968158009158181762725894982890404413138058190882387387897782908105555564195546629767604507811207467349047394313323481164198786052175499265230630953113344876390810195386080994014023648334548060652517273779854306844280629372583941266749939012695692739637058682240088213195630332637165692660509524889810841052751055350733252055191386484710161375082525970385205511281230989419422854833077413513139042009431452191542202000334004911034069483983059063756899920012616733934980524960716479609842783401260916978402279734090570368406156356547918199108925471636500697680400137788079312385554060692979657698683376497823757370602533194043689727717413321176824360654045452442794418725103599634822390592595747671575230646029302694426091938147611198960247933717817028208779935813852991743363166535406393709930328237028944975968019379465205675724954418455418214119949265188346441648845235773440312026058788455345010805009750128895109311620828048800113977931433042019983031927619211396139916716047420127854403430810343437205560247460372623989643228173888544695752689176193838919785712810665814103936637863153168809743259648413433650195097129185738914305842917295864336503246025982330854935783650275853741104316741374821536468579881600936454896032256923099105129928631949439203997554467774524998329356457373321935265700390205897961472489012406364974219451094744007494003181008257429302806125768485069383311449578548982861688816147639577536737964617002873495148134417644695380204895096807473833375114382909187553233257254854487910824545007098590580733166800867870259812667262151755053624796367729758689100154651263726946604635534887856975026148325446774902284837883314893630659380706800421420798088916417840841492661185307442348070258093576270453113619011587875503783261926627940040848481933883353238671594215886944949201745723110819546480781283715854005593775282966802513021554243121380984899953482181822567484149913797435231863713248973761704426700917036036813285923612759633126126891002390212432192907608905488139366865284626909852069654747042426525384246294784413425615172133434198829351856156942854520660400811322146458938044518559189852478652124252663434632118330261640263708672693111053776795988521568851429512857175803519486099461732404709360565974486957483814588599950882232979636253805820641576396250422531400110823636551569578189654945924075303443627990510762716081792953122089985759645417670066026229541138904072986784073603768279479720163936183551999890432944452417109185846355165059048165323572302974654473754011345501377419716847365052324179441223359786381815463210434625295037486817494893659177259783659150130063989220692064696623798892149651179263498088419934250331596098800166954521627972480866112070989347687193401750991663093666011071116659575789592848901108112626056265159064798405439585515264418891707907317712788592171744800173300752322621798505222461129407888855821420780330779379756023744759267135601971162775070838046335638303028574370802681198245414484067354271455136833393923680382635284974376454923429183768023196936558951993808010213370685653157748103155309836956595839546400771042061997466293830554674528041756108881956022461559686920064852332684916580299596673517397587238935928014813512867117832140395270393554149187109226214535775116116538453079214637193606391503805482022711133026037984544189250348851938973990321401606564361923133670703464854317297352596956083264443967105755812107724704943295648443112435658996452708928897209552193117674620488869497485217745195176016440810511433872558238822293021137189636911255549458927220911211976270671330498251871177741011869918222405509625805457767456300665719499587033151646715650444984068460767794959195569934880109842201623147175303113247813708216803584078083438911003298976404545888333745068608275929677545817048783626415155929627748323815082573409131990196485723103172807688565134680629046695771772585525465718306687686400568638526752348791488654993439602978645657199057001887279003304527364743046126720427480025466054592198284062437806506726190342426423105279149506557220848202553736333825110143000307388358086112105345409427932368307844403252561269710842804849244176465806670713599737388924393525018241711441547491832558748508486205759032025173439987692466012773654850391279984311764116226523261380065138951704186125451431208383054483567126126601643959822527190487061205050224326230017883325137738613597464251776607118569558213934090171688838518313050690135965569543743258545014805142285280983981964724088098624720940456397003330708764180732358988912414940323500456205464425086198000080589383884884321867308260243031843789572664425458110609965772678475171120067755865194403571325793454341636810275216679554943942929563447565835586697597952368129954948797440169360985522979664163890885642028984786219838815307139974999743325530259441421041003157619902962398682626274446992171965548137152074323909331813841694780001509457083834096364801201084091404086425401857220241030383139554047476636545869815695019495247970375529781604192320851909490721372834517048539877139808764187352332566205999647978375837958913653064692854110855802401020868388203487320712502318755428742703937106912439849980808185111607655668118972578268828432995389478976906464954197562198986625086454415480020623871423922215163085684915931274969968033474892111046311050131390875049213827025968853975748909072470791092090179053698046791400957810865945221322684585124626320619058555164241107235933374501105958205635353429729113391754936979897420727742817910725468792343900853849633334955434069842133746936417205874388368633629853472140687530900881762479232950383587491798763600059397916828249565066435376493114073252420978724220428935956727165971072010490900400636974476770064128401371980746374760671093440791236397276154883709873227282703179793897941101466890793167376383414430150500283635188320534903540940646862974032943748403298856316733107347248189218945043918764733449867834590632099459284785981382323210716108452756877252886288178914562402112140422802481230893745073248674648121525282548777516689315243549950515256045114407130515324711217578032972774635698375381642408304400005129705244493499457701035410404666764198344503384376260553146326517028146761863970842622701737304340525209892868629975205177185908632029199952461955706914261841150347234234187350699201317477041065435551767971376526707971578433734090730522694514552021849388761507108754262580639227951290840707990018038033628233433988305428604372252108943258557275848484581534283680839181144637909909020354063220660695366813917923941621355124319200874063531251517299700712645318324815447524689616955210866954185667730234527076408922580799209701642971666554126070762765972695916617241157615274561011570506386024739919383948113772351778339403562617203608372292286487296663906155491688187708354405658803124775478664398491662148974753041725358134085578575196628448665108530365079334921581093973764591533076012324454435724280707746641760722943870192423030834093120951175546214819580239915592460120710008144884910722324213303775448024135430998334295500209278819369183187889747227748330547330467663222352717605051044840725533640388116809126720942111142480855540899134104103479460080636856204006292269939439097812698840511137900534338172610650446813392791913377226515130638543359389379643589443735276279668477648529461141218464142706084533746900161681056467033427883858064428115387963203531008672237287236370284381816581506460931806257585505191884728135920612437914777474489659810415018743781785145214298580518461016237510040953847694977623013849356406246870224495818501616032481031021869262081773139342166146613168299524902072776669745190234561822001148707560908674941300429197212376478257129111866542419681566606464404154280953549136936434606262092989319969490943614042011880902799427077857769113752014596818363148849370528891362376466438289312699883766275519575242648875390098451968360884639825025226591768360673254530245003979191167234514858713001807317589669323634163785398183279735191055138658450522385561724223966279286533422635619996476601459299129751950619987366905882110889578631464541023367712439939104926656664366347599249240824260325671016176453979838736831875830263880712966100252810072167632353995930632899987491787893151261269264068671652740018013436838755841872533767706732805082201338340582878830412774974403250990982649243672741077679220415320674305149847142059875979510594154639458027712182004384535561324245039249629074612385378520624351227642762530369205066544047345335240333458044153453543820973506210212348693239743273212154164389468036970350130138918518122229302047960021586515052662288813345503587906321374765662980662201524572367483718789670130658255156172385816508866874285811215161253279435007681802021242761995945376850684082806195717316080432323521912797126484012682165459146754092897570233803483240681958414983659093114879181683265649597831865847928145047123527962728395528122672588854982449432451026946891231600175794502799468742762385956417532778713406068667528306389362129090540096234963239947972016690370648647546174919866308376811509336436714927996318148339118377315659191785582964611141938322732251600508971770826465981039614829112697356713598911073219973651661542584117426207591253774659543616878013500540051821536492516948259944298378210183172656953243049345260285087712044916757161633055228091544442393353540199268676900045669477667560369026154051498856409464359287293485143634626927357684784255318999791485897464718171116492676458838646672057740581372756312296414198897564371723313210811348978536703312944129694639703292682767137625100424867157434691223521024038676638421248826930433137662822475707098310068098365661659692055298489707717251768094583449756819516605054836632299518699914340549706129968953160409715492784168119376725883154473320863509299171474003776380177034463218049544730709391825946645356893273282484443331585434123581593348477021592529277634642393327168537005514858876165710625913208433854920343396614634600639296227019032192567796062416138303029141946127743858895527043194364232298840568369954218221000079661360951974775880863301326445127874887312317009420794705126346500383889057414478193240944950973131320131920272223396918105078925234026070026946194148152142112973768768055847364308315949707390739658992437255710796723041657551578876833735864173683582758777829657939537399044029484245337858298656571117172356895904222114089029990388399182294113412303035289114572145711661517699333753607506251602011422885982312748142163180568840485282638079831362033996797695902019112819065664922408155830865790129102362580918351564109199441114253508547917706045127199779424715074967973615994220516196796449882478486467894915096491652096359056774399417055539343320610571541134060430554288451244606953680158892345100284954444712884927104474309663413170912477228565880070287010132470928506317700430463801775131021636635931927092403384331952559325390341331131154442662453038036986028341859169193620531627869466346968307613142491147599371561446073911275667290810199122759034593396829892585315339588972446261120557246505299429784764094366493315364512834618097547204931040854758659606300520777198618346416591282830226928735880268997825909607225135631560508384231556628899235326888011317484110900975389055388242067218415673528583925556311696483456909234776856903924609013872148933299380436294302417386066707189548627108671273714493206542108855152307036913042865896848815931601816350718881058134875283706118505421108120450062308483505789668303391457680064695157939009022331259342868117912353460750243663432539700433072903526127677786680244948856502608563355116529232221082801288506413576915640678093757991197457637187557744049189186042496252163420788455822437306540500532393321478737321341454328654629046579839022406949183183012950669645501584245362812223780548807942311976303020074617522315255265600049888841786773071651452657663127335630892475416073242454349194283321261050762792862373686903806710794358369079324285122804495983174084624835010370843918409642271817987322192849873731148276645846607239172944656440594030341644250892500272305023132026314855591025324851527165221528280052538905999536444078333595100873227042725468318009019076338922865860683811776629897433554770118971269210180778066170294416380784545237775494671963997070255725376540805116438999780430413558267336987203104554740580362420037297585378849730929156764592488979707952931139315209163507049415988584885086449612965031738142555354627293523639505538928371686106352591405349219894276687125378925069889852342097051609056290769006001875661088484575151047888230297553284609792387137460796782022023989081649941001228088905583552854140187503588968160335095096596043358503318533181952975679028240754656537123505077663396630292259933262763385453536084993459520763778436793362375210175876213774490197565235512298460710739321994036492602114279578981873089570235464580191499963272147914536306910581083417545692798790670003051517347177944327682632655737536217634537960617769828472004491211058401707248078946461975553675384261031058712180535115713220781673625099143898465373477127745842726145900290002498701755439189448999772494992372701011572744045798482383966728514388851614807118332302577859435840952232843665329497704867357623259227361641967463810345672051071868448605776257775453053386539717734406745294200984534054737419399824234755619979264982871079176415060387086446278907524383073303032885385031460520697605879655935324096252832552195451010650652752593032631327198397448963129440118507190975429047873066886271343746822319006032351699650561925877136265690207190193207063755520081179976181134261284155225070598486857456704834028214450656678803930084720182224621716252429699349356428591561062110390534603899372995024943857465947320866294284231537977060555780687752146824775220491023741509531626875923528886433933386254254882208557570330955482200405983617879410253540084921647381850340370397248937821176113999181681647949978420934078123517990503599997762663454566696080031657727298056354152859107312425156549941950396764941260322493729843187399391686551256009271023955108837368524397819629159485743193326552609762848279254021674904067918681762563363385913894256902330918183139014333001465673803474974144901575114776737444588394748126822603718040846270644767059717654635251343302781108255370895810696116859237534133685530504168871179249231724663383928115515845038873943725176142096796571732833505609999081858107950891465644858797635474755281056641252083242923838474177392100431814595039470913925567805630244758923643921822991676968997704181191441984018414983201394376667510587656596222667232362191563370783113078116926144571374161747721914677091773590562264567853272609133620046898183707754784222006748669525602408280862402175144711903258575786979185888325987817073576141824310520041387991053518760466229694257283575074583949921010204083139693941864071677706191516848139562884486148727118113988934172140688321625237646070334239586127755278938129149446891798849524546623847698977237902366418972939930622573813170097657618154307539934848407440740980844259888534621087189028008816890128915293833912047769525303055886197299226588317372761264846490705430105230567098188818338700309843293763882786479160372986839182023370801624193736712592696340147808304003012231258395242953842784247057348717818730981416555851309224818130598074052206595561763413842046454370162954425580517766746382286152275176528477776778543629142556026826433460606287750682837788137523239029079708250203848302664856357153541955658586020146275139018570027438136297944202691450876618572456699301486748926185678856141795982792648513163735079073659585074662307357016493932251785521942496678983688109847753670228964148160755849259738719964364308222097082989394893234015199789126365662471830788105754284470266677265833585871770906891243480772044963049342635113925110157147010450779007596308327820302243053012925506894397317508433917001013689324747860397280057479896371166412875599741572511854622162049114902861144285931462767309260710097309155373450657543477355606962455919113144293056298397284613184787650843919883890583150006250592332466282329603917077483132450714748118539485928480283634627919603309398197506649665978822674477421782818803069136343295285953920311781527849681720838270503294791437552226450938610380140287966801362764681806347362842105667254700393329313042040076712367002271380253101852661654969313466118423424044767228637613265349358512163139265364503804422846375698682744116913614602341644903942043728145345895141767339733551271924723628210841786150441228012860583049026830206662793326178034278790575262479079870272262405575883996492065698050542163619613952591328633248674382861072319585940645656744242853155761680589799750467675923400648141182104176880177847337758130720832450084218679043236872445063558078654201163600503782665741712252206672175017646112102589407614979853905318147806369796838023792338681107157070208829600487392322248349491949831983609594791564300841365872844754716963366553110910899203489748710453901516767736887196644167509230338973727484445886763219139066128986293989426320339039806909993372456790356232096798516560426613951822008798777954282845523379165491622677275192360734526450258909100758206704723035103800061298977521320740251125217063770607658461433174456574476719421454955288974782212930223310457857280144322711019373381143125393726456137254670206601613170376197615708565050797500630119779066750735409104409823487132017288616509857711466995826119151479985074525521473695069129382225217531123504919578870811097719306267330753189219262495161787999992037242029055502307187636656229990324270009183564991455274116055379465743712043572254986873402220561213257709988468213455604810870872469050786207218712883417100667458378732519698864979313864324733190812210253929251729823934522674490057880390157656572831240119929251769653085708629035019441124601969726148475130903244582692892854339560107467037606989606333761586160891726587228534385435959476680097139864467481641969418350400766909108682569960618540064793659907266682245000751743406794933622476645240197215075893734233393896632829082361095272453131863029206937961281109438243804788984789805087064716546946051688265726679187808227425275122007558726400739521577525159572374802608907159226041234159168292010874498936903969634816698915048322294104727072114995379081030714820939273697447524311223345686770462968330052915848152719967520984508888536273825745931559505393357250893264624595215040386990240910286715570738050008064522398537235329481821852549309218131426172312895363596229665175948121246249120953519047075451029100303750576348852295542820605837146827224221125833884980630083129724394158632238637008676419768298184226952582850084970536508538766508708662523250877360643966946512556045601263121182204307220274079659130529562368958478703634587571620825492723832543445558165732133194856228701435768279277534691395847857535686806158910709184017979500841540670353071710578839887444357344813686310345519178115098515723906343166867208901836534884063517778662168164112215242346239708074577698395209508951175844529670772257246206435492624247717103701684598450847681442172032135504738410244211135471197380749522935022905410103798986181372782158737577693626967570106009615168024557955357765195822660628353648959650093374023129398638741564821383562190237662074810308783547518016954248369488242211431717462842384369947564669960285192795193657705764397071064984220632434002877686302681182458902786051747744351158312972245634166503363303901754814594662947965274874025869328047373490460502704025376169936584112105837650703732172887034638984388066399264673442536028401090380748124199378513893267299213772783464902180558656836300402581647193660270849062257377749618137673534266637878344919051172578364232493629360342546902955236160500885585522885248156045545880906087909685259434379229183292662937815847801828531524811928550115837410816289373229548104227196320599782073467583789591326978758792866200988131151562919162055932398049219774623676798504262471638805929333813917446020878694670575142269019733224494421273345191614888915892786305810163076022410179288184190123814199057438886776345707824777492073350492837258980387259479658447902347247501450711182345817167257891727974772700713103249464662634003654783576688827163623995926980037663501047126527974503059632226612630899736794373379332337870921797933211907760219590861983785219580790476017199143639411986064586404943940429377802170637719615242464581349478719408876153425084553097685947270251241034498622261815656166077366767451844862313020588094364312262857924833594719833670009494390242736891889304798889524038877763674164101019129285714120079665654208182179637096774706441342524907381547014068050171019917089089377531122037509234715017647634501208173901090844616133982078846940732015477953516139472454480149206660259425679770651285316343414524000109647720699824142569139702000600515999645810916837683463682255649410210516787493560574190660038653022265101684433933617007227384004290006359035916926675010261805068172909302067398664782013180549793185865631559436126982738783587541788370935191493834806159475580615377284636491645273583615124406253619703996821693072924092236396544975406696567002208829853589654206065909881381656672691797707144322700013720657747252726032820185218080749340550982857343961999674858745548021672287436481355181438674951444488882566318553805482300355904085257888027616489157617440149871861722502159855134964061040186535678815309526149773027490744828791016770130680376529854911228514263619513119854046405874001974572430234906356233475751512962176447207095993274109010456359529177941659329745000473005364169187697240870040047974865045178056781614673070586800502522647263193279500773627639153526949395442550363249742544879557528458745812164722407300739403976243720128432067338998838487248494834027995322405055556937131398845358406988786208744969696729783596591318983568572963868383228437137350755277289572370992005910899720662724433123136015481627705773515834706194192347163927106522685669501001331192576632965944738880406165060830792580392404111684853280865071219984566961207863072464031411092464093279178419459509179710966738182189513641929093682108758933105450392301287239250903422278930422359347071777751942312477691208178150997164546153520947909355219214555652012699961670133288350954455081164220114700956070948760939239755892241540113982552621819684948558278548382092924633673856590019150037402198286916273719517369851093117915085579495536909450596209375393631914435572927774522597705239380391327707460539362143773500264374487381644485671921215809606068631386445340891633807466324910683695053922926925616623034226275691889161796181136610990058868264483067192306912610808423786727652457571159675350011994205477675641916253585962429444994575256738443222747873473442955011561322395003918841634203993361787597735773028820883002759664997355050039691714703081246055116546333490928443416259298036274567798194659591967537628499340479172371810873344552637705558437883081325019163483232138850416269158486918271062941345439967090468261081561241165785134773955356072212546420548962175021990128675277806597631158726624605712698921691548683625457710864845945895670620856806039615504285109667448278480912732303763484845722288767990796100889241682713739606658046378624666441398999326987911203428969558868566359423814331981419728022139915185659434771719655249935674904616635984253231317406666208841112778350953700079516047462398926868279183804946644467008331718203384879142457545669275847880640101437791928798759936852439637258667239102431539956963009396300829215719004260862620616200209053040237794442150601144459295756764323495400982157812923317148734970280219421987302439755018998758774364367632515115677529190072386418466969986152155930992096738785875209104538186855405382422119839840417621493948413532722141864746677814792644169220463321865516081037531007955607844746600207390972957878040461494057670916711210528707100215588475852718550062188069768408825558064581667843473673411780700279736667397154852328976873409223779805356454866485026802289855956886460705213714143710078877504659522041811919841959635843771921623410142045264552718692365433128527038553150112094074378124879451994323677083682117024371990596325762301654694734966111128840832803673652493145226156189041952576178587531895751862247048120465380727942855194858992890051915592305694661351354229938383972272770311106935444159592528275976190769656829828638517490951375301771558958920705379678864491214187500306209140501801798352277518057014916808117215559081216286861767817355559103381619391731365201805995024034930513637646307807576339526593641366354020418584086234060964180377428103945130257916072310486216014557715307128263363743850389324967818744866412960214631188342197914922189912048159235099369904867545898899886763855097708285434625209342212544180773228543178754768850754354996052837483385016579735124512515956704927788221252206654648559908466773940003112872137257334745078023341144437103756348360285139918676282554360936885034457160994146540334375853290121864411823583259612076541065519346098643299798153010218272794894208914927218976341103320696651095258312249525685501563928082760495805248961158488108199809959801441676594509720274402314607071353025899812935045456532671881894353963077383677951108968147893189029076294201005799578824259585241623076452654881058399128739965374793391847076305726001753706087397404577319627530343193452439281406592439546494195745985216060933972350896976001588649534450872769989099592945515928839842848450594089987820641517365315214809470107924324486905305277174766031063718776665384989234572996725909222655638182219509091581861841868241447876768935210996148047372996822294812001648117157853702191306340791576053915837065946332538841904680396360809443517265899986327199194298947150804937106398515265244946353771758789009329134399798564857699462349889400109075722809103542575185954705040993951424658855814288834928902646398522587831986693869218838069001707918524015145714869744524113591911975270163820909894849080941921881953825871185928824586575258083876072884435675137185656099829620262268597720354981061037645947624127088240662084111695023291844697826218391426233473546268475595791358402060209014992221286419719745507311526001405644466991756561539291434753656549523985701365229285902258998100848989089371466859977634957938096980188133393938565805087800379795508256540947043454248802251121365327924501669306286166557125788627777566504657784332329518142486225390096692267446521400884780187189216424407380893534282824916061406007155698696578781676884505581007480693596868949762823997216950866838543971613603516488836880737128755518741152934814697474662166974817173214304927747310298788434719968439878235346133176463839739790800970776685847576743545157093602351405738493001689368984351341394074004335924634489014547979049630167999953486709431750999720432617967162873681345859505377292407150259651679402817647619779633742377156334948442455982760079075046182748652804618156892512937032733487434831015216868412800561760076731531098348989346949961303223799593641643457467739615794420852079987704793722690619885427879970867302859020979630499382948230169891533441375394001298782417012353361128695382305057233155279901422615353523590415237079571765931572297056356894648211067063703557612637782811275226252859305883210363793627137996392314410827170862899164959267168868780786563741848936722653143928606460597525896832901649636631827244495421939947003126055817267613360311200681175072365446607336790222935949854330276846652260964399821550159003403536350071991186382337726768186479494076981783920958866769391528615109435524873302451143024213368852143051846338171768796390762934284005970556318856414075448853153520696732633536250528183734437419791927210715334741249636386911808867491576406598957354879819835518420368025021495941320608309186331641651875527976600417804969717239267491749798259662874397839486732834054521562740734952042480302743903948096441912382298814405469583371401738332984746701864789200206038800918439434793691779481529254653079188933699269510874307125145385055681299965836490265558655272160909339515165511637752706443263889148657437549895891295902082501191640167517174076521644991776279924359244312281126312502979702356429925317956209215837753170714494375262079001328286133145944007278473721886287445779891221486605113208757015762350582063100544984904210156299277508893355278593728826273649579519236924787234573939420878823792044927445398465778557130403021937639092006507669393891681227697231708216517699729187096116609188586615597257770816193770845544049571794964028813469791961695394417421867090154865477742316876444845865816715991584448218770637603073955957210172533176828061642149712815012492596557780499992574828482231325564319838755557532538157715985895309911436871629012311179884882840062624765502036183001029425434191995502336903734176258104756459699122982541564880636426350370191253170846897561237466011942798888171200543414483184404035888122978848088393592471991223031663281116115545803005038264615032119946117109174528146529085786350402696472502599310468143250315381847723776522488295240422313825977501474582694131597766701025770301103352927453624051203305897649947063431554264686153013761632426167520064770603318968482177645486601006552335295525797480668626330907173106866441698277880594882859619007499534284756849000852551607144465370103120294600670126087497016782879286188299581096651337454550847359882590918442870073525879131302837290088702100877717251046310030413210986713330040498868645477072607136453514078896361444981108147374768283547544088487663674346528250363152868546675306211472017142525833670072496095303421350579335516531161056632533028268786961142249096242330332240617223313831678743682436131633871428282201854277816228694945962772670610517200059110073430825090631045507969788750921197680317493867106342857969106611803999465596755984079990194657009558071165369345391571196172011282135012418052229592197304089736705487572724544894688145115183289605454862498084298655428826506452791288577036129245539929702109241513022303742261593603439734757833725135930451305128358701322628382656583160201104189036061578867066234498290683300917664338399648223655833538984455273239543177970591191378669931263280722240119893249572325345493700809914901744729946444038966536672277439623560840655539707422542887510621541431697068668910412657064223306972532092736929648258027353556741621384042932034448618084700187778835054947977332641189990327186032010903517383993934232543548565920723688209697938441676802996567026619341267965899755727593082776355955535364745482365262376186597431962790522435743748577708413219147725049279229054691680096987019381270262386668314596111973600625318014442971722729238220469187527024014418893000939240087264696303738193933805783105826644063655507149340975037843847193288550108184923304198901222041615794636676956124657855178188363265576918287950668067991255334992582176839164595017033712105261505536650333111398937792647128689344441925755455804743338597268478263432654436557307449741434026297434495718860782122777066284942769103200832156822626418715785724881744816169938644561640096063891431415191874637074660050887130052068618911777560492992729997390080226803331321005116298729422232582588160186094651750194345561505011511300581383933420266811260594119153977020952205023511386423619572137769728923243573389910130747273549328335084775507883138560158445348115310296031604136041828106771566340855834343359017054523833911021946774579845656846414825578963133004655042422154561318069003429368055504988573845044803893121963820990083791168566804717094268843148464324391105100205820488675471958866690893626403464926928012172882925292215181514138367651577209794997213298355619920707472121034402266917802636350380856767142687162450330698691566916458906384419020168455604817452364870932450276871319155252891551308393153141802199195976649065832712591828781481657773515935048024083917507975891150580681539965538578249562704562782129058129152699242140829456804616307921881060186607439167103375417722969501388662179943632634333897571908427762269586575946552066402496908367959152820714467602208806295268549162358942338766097827972621140575700095004072117814081507679016845925184529955370290191533698085594716731865999603851989314304043592100024377224087840416163912980062144760714284984601317391776814990663511105081100866284944139265107527651842521700288059905149707810893823959408901802060463074514062134939188940952077653194439442196070117652845166674483776688616627648329757342091909903279650330336203534094315297181225893597825049138886714609276826504252647714473416356490790864130929339308657060886646844583534818698797004244370304235606511753557663395289303236091506947842860811735998125602717979031202571103402942560830745227812221639482382576186242686585404039471929002064719029514817213142418707242015692377327144556786344732730631748283700625022495968966607842857863331202115396487119285544215712401343995264704821462200070067785390274259495689728882522374586787031613501507485593835313176233227892249413005501510599258021388224787568576202948071035651833211260538500094718081241266930263137060091614411654200715952914816728111242203969653781502883509934991938306209907979220901898010153234402142560540049564554043045121596179116274240167338085960190141637034682046008035644368539225608128707695760857161939045258419280601674509518157111359622504334382103352075769375375697524996162840926977433252096559176890897180948940562046388377226834814301906279138030863729059369044239408899264749224985693145060740180055084286390253254125042571749833709158190688815399661896561475455099586130338154927765000967132206581105634394248431661214889176157766329056831355651037875358410806150744703047188491644111364997145572986994010636420318122919951512865094376939314085749494357022197104328013233051644998897408237468600450310804619331584304275949782578731551536104763403438103334205897832058504662036468205678924102527855997986653671480732306786033704000429437280339340596792354025267131868919472844056631174922775637610409539259189533271582472518459010751263954594221850003559297758913448542837506507734407180855112431069912882149522238651289691869512254501193179901870989148074793657405910243472283207002124666931311785798542888796488935347506383908676127638643914033875889434394106019670366340468810994968013822559821310595505233949219820766742430500440900823871650150088751313123220932733266283903611700580055560157616532758361151417043816738292399544207456698967584195116665565039248683944392373293777272124097742380640517712409599022032470294376546440108396982592390066310814655153884317895011202257229105040089519088143156721695545727909450601957717555549004891492653736320693293232780437239458864191800112875744664054737872037066740100368629602006037423480215823495873370474572042463882621179083088530540986140596203768448035503223879949258403864011440036668882269451355190787099684226602738062353378372658017259855315127150020111158225757536598902777815757508448345183666331818907399112429983706928699567310408245484808111784874471695432420530569455934458372418146858025294282528620338826439482053062653181266057422755289245045958170905885298251909757838302635420846253074980195395801290913967732525959872978632192587662997578980557458542942283317864183416528125797802137383815289702168440321208329689837102986768472305981752157053171178851882758118866255257219267293423785149342546925437048554546242150579875539539465452034669460967560982859359102382874228020608900187512065283405308871784421123567733090006986515730691532619229048790576366712689079659702022355193875775877761247686773009252194636567317535602889853272146737591149073479249670610411339541325603493364021606987748662093460696489112072687619408133811484130090626704653906435656099869544940442373656415226454467808832244933799739586823543958328181496593234019674175721895975480577237222825012910610025411573623581101369640228436659511701790152875158959601289729961119095011190420349281980716254056470044724793905479040543568787960682893107571862287063474542897536513375074791978854604174552418485482319301302077518889864377467162328189572112544949882714439661615379057909106102978559318541783217286204677793815850326961875505436368913729055622790722185330849497690479391474947468647987009519548805401982418249079137685207769922959450869912412641548707756418966644065511871271467448629936266867047093772189474279604870741348162219151804273120469867258268389104271147973442768064089519315549731180586638658375560659919244918526336027626806521547616746796135202034562550275374775421432995505153593761178893024772862948615155120325410415038329663504503869377084760672690632153322203993713364963444712763331265225362894581192431124205794094457495815034683620029784338882985891525966244256390432036214114616074563155502292414851171858718058954743468995159036842528900617556544096889252209009822612343019903349375944470422759314745643822482032925762351223943560851043128578880213695406124751968343872099680606768153828224579593604269959097204468474417897489141546039182911195125938148072536202537111762174978037972456945858084522599573269625686382914372615436882077283815120145770305301146337372219131806393153397935469367892959837405363839833797701155258141299124731710687268392408037503389407179917582948420331419869114690027477597797956687610114596219936029328068698453503340704776159850772989627957372825295748588268474309160047921251467553959669296666735689407884724778513709764634176332914851456350414889662106662445901565263632326572480227041211563078868885857800942258854824279713631319721843163792274319253295013745426837871663332589900743065419511701605229866944267163435864314058273993379622016818256145262078387683803517870478939137979727529071064801370810938826722773859870551118372074774819483530973447106520262842195933844826017938602157090525423509407518182724477082103683674596751606429002216719242653638668755360049392846370395687111857011442093499490216264938093123010204609996232583325424562869138376313226581372490206836808830465270008374751587707819315441360963901917421672292026968873321975777361097499543215967523630345539993682584036728323934085354555898055590411723657627860794245750478881564600825890679454537417541554789068794401510539360996342865354596339309961641159215118145118044063953974006214717444645302876885019278741869025392973624986660816275922320459606558361475132930813281326684197821100246080112820267798731211997736232705579849112318749902091495638839260687120411503057252260539051929754731770385532048321079715817754036993435790439909145771069716896051487796685770124680047068264382620743308640052428120259361068779915955178509691893321542828280338654063111285847000519539417270578527448858157283997592610166892498555810947660784591670209648719036720839820853466618871205397314149640140150467443984481080294350623880608613411654622974906284361888753125556510765246089841984181640592069678246693186101935909884408966153862954289233704173987327399036964916183508305270677901785804620808885374509416597118698233050470707939231786126266250661753507037526812011945023707905846002619574482503878860609323605339987893816604090824846539392235107497240918812640630517841618802583398748338540912056128324948647836802542366801588522240072975082281847729763042113955910180260385209219584620781451063185621624802123316999219986151309386437289948674968224019744829081360921065548292788190971293459176151287414432985567906640887239223737678182023581744711852429311341171635361278014460122627121910875593905697157205517021503551728313654235294100605178736538845956326308329681937555633725317681568082125189375320473875341732842595733052830763633876441623954463701987046638010211046038502588323603495214791114108868065359798941884988745755303304972759338946799988026928370925946103987670696249117853751606762363659804972961799257154958824217739476185377708199570717951068202342830867693349462623482735160200191997330926716722978625238277688426518292349315532977304966432812810922828712361385982658845391748405913572888935929790808993618734562348058152207428175701780031890282911211357687695934778362680794758968294088702643299864655288425306156288988398352237085006843125461855317983720437997591925088953161257067637237130445852545340879896025810973715699768266211201706247962973138357453904900805946651544563056600933296630766376755683118517319786250990937809570924880989667032944589846500130814519750784734317448128945870212243986704414971406089774642953586297708906106799649208934390967588995447052800818952365259502407451113973962627173287610706676632083779900541400329828938754270704406724028962524040331977873913621364518637853609398971582450722009035020415991259963784872262078219040037984698669508036716386620805952646524198186203003016220262689752008909588075212370707791409103076969107737496283309057950634405073293464248919894169782433360811077867883412127014617948833415494133809742663520350375770951303911300199390996203089780523839353008799788043595646545637825707388291506162968270151386663579589436130245235140295192529627726903750733296563749952581063100611515596956397047020337946689380938389746476491933436015823655626623575777145300840642684461099222442441079242362072795278861389598381099782560394283829224335983998857834096978699204366428741083533488453075827794426399907574971094534714343475636085810176258241980936887027355230991486553878899540172295877775068849675531893242404495220202924358439307184326902004931820715988239274364395480489932106396517375320308810170184128343963361239969015286340375308945615234078075623937020993115581205084942160969912168704425568806486604824275112514984460394825533278771595157920971591813301690475927767568349856413721169031526736110248181045736892461244876607343386486088972051289757229839531216941722853016812561554615296589686353015530838052274553821527085728316511781196492699150006869939779596634116973987280290696644337524212657921549289486091956398589311119389053167539404891518026912352479118131595638927506438689960370870483395762678021291986355724629174044357506442396779289425400546567857230309489079648957533103593896748241637678576052757012729821085453616424973531398452483459550989969767934698234402364542264650212263278187832377348366136027418593940684767246145734391947797426184490048460521129285563568616253171016741536527314839714753143915408308306537622449616077112328047451812639941267466031050948763611147155504873135787742804892119698122128355778474611804318436619284303899454311073697461624823634711524216388642014525026048694983061627533449874509100684194486587786284519783206174604666663745391044850872850486070568865845387659150927467458571739656129070038402329409297493380982839147492667976856702199005686777900151892824027079409697630364883483055632954771672555183596138654507340279115581467436559992973514386894974781228709790766141506264362421562124089535150103316902423124376538092017420852025804033796554934256299566065962583343956092360994356881170453063243008275516613480369665468095621322587652648307262464101939569004507685880226314405271912428700342742894351626981533252927742042183039933409536656863328782709687970684673200378269661001905135284928651409044925715779227470724844610567647701364241665808504322103694717168776760007937567412856864299301255616555106561099338599957015431248776193597778896405218657173738669237158382228269382075798255268598799281815639132182983770580468142089099818328984899600099619709596361424953303542372949923431030005548796915208567115240188937890977060106981335552761849830935583790808433126436775728479101379698501111186237699423658990896253201089863426316710426896612312735173102626272597561231629395067746672192206706734310876769866469072412718850168678169445180990969669981754046182243709362808062091351309379897353091483309487272830880790655496296887829812957444246145001535908644600693180508995581344535212233125443236264091437849776761981367636107839227075071446746693682025646614285725964992915898698979865608747049927186090091562922414232127697099435515253097000928893751872062571016394084923465134072046047642958204651097078979367594003222707912786381862195738778633457889362537543981813424399303548621521283987715724856904094535981867388976027100193481101687596377928729158616629130603582934920578494696608652545925017106054088420194829561200450074508474708660598754644580686471640961420124022178432686078003536516935141036608099791012493502058323650625847268127971430794396121869223897272659526064124952258455150240944120156983081788588322346941426486291627674137649366090470259545220992779446564859774524088999372584598491691241340581853634752255292481409741293772242304765930237426610233978441076851372329978926922014764971496796482373056116044828840440855262266941692498489445052138417911424166891149320349198183636895902018362957951634690150822997826776751913491471108409074895139002295229394799961637289701542111365667023174330333907324609662991193861156462832845497302651576380033132271036915794515738970783408102618973860228226830387405871215610420423992862780596786478835317512617084696076841971585708622157575595650230528211254701112277471720865633798642767634620701004306199893192359890583235648524884149056241654339399851992044595321558413837617121908745037885539462122132919348535660375256513694288054450256420290381595543373713010688773012767197532908492218600260204203642508821307661071177897070845696985523844639993566289305951248017646914843537913539958599232781802306849057616043151929689610552563695845558570507339160598640676887281336528587804753507913902018420197136953021621382873967153367108759553475110957298865519312941317455996169723067084492084079237654066864490630860636979853778852710665746955773037232291204459343158764338161239292996272060427191679861469971369281220705423099210377435870206520747812609992326240565441504566342487712501481765071633774345149056218427571614604966958668621522030471608620737156750771051986309207634603701678528066423986779253922656853685890010127650732637931799855607574280347254322382170455738818322702324337952213938150055717103341957794822146035109886249966527346027696361207386742979743776248967742615547606634958137546477314549282624087367704423087641401593874025812178700066816964455668371151669921191455670601823941077964988790664993134062119489140858423802930715380486985418554566672425124628938148338255219746072744240323469912700697752120858634998361749346440782344116367031400683370355040907090697379507746254814000442321897400591457206563785762756691594250818570788597305721911596581623671240977227373936707676986903326791305832571520384870188208732875054631970568334204924578965204916654362115887098059257282354728113719037400842537880998626576977650764893265367019466673459057185385145172216949644761476490286695198754227293011409422377731296782618824834809297182979696731410649564682234590892468365660941489527362822536613084306907827343392557769333914773324096797060508969168726147465417791533277117316620398662268531279848692068183938529022383272134426719606124866969798117364581900266661037926819145914632578016617748432282433116964519778150028784544228527228431846007366714245306035571868070572177953603585444497496213879652402032689200176316052368100566264074595857172015566929488505287312631943446774067012779081972317297176945137209593708746306785415700131571562869503165645380088035151889343598394809424968365517875752459957730049650819076912609195736284966954537299163502384460225494874693481842504900216014900709990604559538781697541091161799693340122512013592708316418874380870125432528858661313273399149405286058482894175074845210108725963015246648535721790265156838472388687878280824679094191332267140052607028248058835582349523745222739275148289428402928312604676959603337668404635241035410325129737158086721503610715765226401152318815411066879955815809775675934249005428120452611474091726443271734765042318456041939612380763443941176790559218678458232979787359984881250054718993531180719705490724957199008998559077490625744284847627065780058919505257157348407152379132650446378457452373952930549916950070327313322735183705762961414717747572336067901006128542892792800070743879135501866353234953540963546158668182177101556165805535722493769012682064545022684346503294391648613221389463997263969149356887417651403599413936616237989774404892089225138288302240382198353484586258852331144437780162808054959995873466647315366679587763583795332710916947999786789152580777247475872753087572261791930769396468215003297406953117360675103606120750987714087842434760706573823874943525598803692010480263876099631989366201226016150165512135132515717268244075367670956895434321192812224244244992636423974487777321005954833530404906959254087293609109101904132503198798313547949454552140873080227364846762433795834697439889218377516875362999706580450789456291985011456064779843013060074341218650663750646293545168783128859107195596664363566554695774973332069498137792058440757977704967283800591518580488881672483427895943968886546765524091290558181435527371805760310615923382414754108194574818911840123700907491200083296673916213422640768601555915748969977759497177202361410736758085278833808664860701332878308315314797584687451939305397127982861985763390898390892500073921947666406246992034059129017706880218875429872165435946881280931414213783601387286549286508465584177821015591018537758696959188316127953771531190069503436274882983384797929292692464198189713947849154525788290132978700179572834064358109191180507789358820607497099946831346201689937043175762755617733936397203042033209840524642533969230651436099598697482640364990085715605470727882116363017604134036656226576766061229238780204152468676816502160741302893637850007949504903358233111155143099547737956466964111940276237196955730724384394268729848999280656131980279187324089056784890845387977868202604934255463824684343835960916135613887721841571329854746603125611534782491947240848926794164389098076965727844615830816221954671846617361650796876333660068277062762104794685371897347457481079090403764823201431165245414332319748608780574783643874947505925199068965163513540911667008881206182628165315697919259848868881062821730208676600681461017018059585504192626603696806428607681895954869439682800208036463585665926246510148044934866120770952264806937374296789428941781595719148867629001609609841218103144165949885082927862295188689757750872625994565918703945579191890530593982574205321970210929349946346074220571158811810887287124013529835617034055315821923980883494136099851091435128891483248029582708562417922155009173828807555564091193633570838258203141315145929446011543075645836010218047851595940387376835313526305590428769814120811075216852950614801218163759355926751476107544679601510034385346694353472327985560059568510441554967340226503025949210238101900907774811641855174588442905189899731454891224426453591616681212430696973506455914139537778628946207444952647482155898611306007276911081661294334042260761793178859410995573955861031730911860802409837160474534954871685883552470714013744011533775195054304859813984533359698253241095056763736453788255711379137039369936117623032423147691770813343039270072285734566038736217177477364234632658277298635039881474914213249198495019962912273780806236944389880305500090455354789668313168165520261645733816306215557851413428726173368349296425528987713178190613597593488216743249296605537097788155056997035110596871645908156458738825747856598464120051621877498462101872339886040258443239715822234533807205475425598349215199228922067376947739115951041595281762270971190779185846120185554514990452031861569010592690166942332643666323147276279562990477146247269608122331283042675273925496815233368822389611409715456452205739485328127465392060319003697655067702150577935434385569072409249301780970123168198402975527652575032226446541253373893473651478418467203756776367570646545931988554027814508887390731882734728550359015815090751620162862055194588365130911630462478682805393183181636709712855181359557577255132092525160263617216230188805440125118051717064460608557238232304877206277601518349118427095854798269294794498761757653577464748739661579776127770949808235403564497319654618880647655982825487550288122736386109693362270055515585959248026782955652308498688658343631298477820854277154633704042804811621550683429166585028595572914790479294672443333142113481613927284108838772940140373837683352846698534851290075103374401081119841616487646011625642251925182898485015706598181230766518791223204835345299100142416482166731674847488910869803865867424439370796246956370914686848832407895516674194289199255337118854490580407987382446117454663955850077305534969211872727429301072321864190634147981699674225661154903733825419335031232915315560109306534980765204805404491548588927758220745124768175132237432028775550492305746344787108929119184197783183858301313796653123125095415899116103410763598475977570050745136590566342551493260143915853687227444451144481537732544560405229857904214568732755948475162320920867412116561525427763882335545836150244128071937745059356404229301542989672750076112061689369626396893690890962096670136434608197431930954822722251269624537935561872355267702895866269560240679737925901379613848764530134889687404548686234052096729712840499328811193437210776996106001054535801891238346831826237454421344778187775099399653393397446472260931614252474703967215344688120137007338565188756062707589594897279434286038876478055169902371497280296569158031098631812014123520471738213583531131826305550973979082653725954118438126673490825008887167156752589815995326312547040206842189311560840820340343479097439529654329335077194857436339841306913858010103074350150982070515178830000975586843482099503329779620999407557503012045925508550457535380103865924073892756204102151623395725116130335214204236175897941792365791189449596833251913360666075749919368156725293684552408942682945281192586963794087355618981988017546352549435042284607680569528035525197952217485273648165186768257108429834175770190851472895664101739846776827046073805351048201219954308836364790093678963648821455072201853694213414749255967943116335804121441701066348026761217024893418869610202655585183544228133243596720968359913447866447584535800722553186690017874832219977601155553338118279275200286167566253473913087091117184497019914889685928160547483938599639785876532985023514478439900425309138485341084723823475025082411535218607693509376340750961158940558620514455028957705598820227118213582317295238087539697481600922279688081569683373104613694037152314530558037656871632738232713866449104504302415890784856823630333669300865405310898855154879969424688441849036619817075592679701736217206193819675203310247502184726680903977517741331232754212851616387888064616285081130545275009102039993017328095300214259991314894389687765107116836088366907947350743340235539190317808087180697687891491500970707879970403197494537666625313536843920036343957449938009820417617016785686467120432279903261128121028931104134380789212093078619982025338399548870123065928217672121498901419132738563130910231176730236427061185137529663758867300863943960046198126059396812259508097874244963850330564930122232852643007768285919169630063049882941272721948444018351624080226288173681992036921799104000974483044142747361068038713647810979410826349209811405637212706598578497616078768907474938889112983457840722833274249138989643322454065990804322129013942498701672850370850942029529800698632968134978749574751670680518241185140802021928171790999286925397354723871205035620792196640808980309966939342445983993848847001381552880201187693324458758502706972000857428591747219848957330957144993073335707637443583403303293305893323562736349220042300963403441015455429385230132217938636845419851891912817722647967423843228074828944670520789423035994457979465353420126414055024806516236156298648132301565005419577445075795913633040097344706326633931898334401386136756349960861428737332098707068635868646642422593090720655363837796083654941464783139297798375733186600314150752867265493947235647095164012526682949389192100797302374526025195351723188490353917677725400371353975899149548221653506719450608539059748353670615936984752123408511060145249900020435528289886652607569733405000202939998531858950658130076314898363863585874616475889467635547292306015485010096659067801664805806198398005336708486281913012444164249720419673119893824474529751859171450938875650053273013171542041709901348505647836770217178179180937701522043289530691938283921905103347896655085627915249626028625076986958054758862935306748965100628408916754413231609198180717106314148010703284698258231808149814309554578716974850534723605630118349351069699044523867810524798392976413902607706545207728840996377875008749197851761788368970422527491468286473010318302410362393036683388065674169985151771347804316833914009508328809965177611526506894666228105575734398813225217897748438835203338115715330585761393802592548328902972069072533280681012954994112980259063171297261162187609867604773582238610720786698339565861227477786234291628205649798407220771391658495431367157636636596778021243578310714533443780026212829725774253792012387381220039958967995012562078764046424184591227540750811207344370124690765513478449222539852069606940064255669809360591421360159491444367567026446196116054604517007999287816035051351339331110726155537578001146006997082145009213220943851885585036775496416828707446730164595956256111110553627686394883545502118388726952012067855326752201959962667640592748415641573854880495888133447179577711348567944131314388112582913856594490723576912494744470895457531172133573664592196636596557252277014858681424107399963500383769065978330964529688847525788541636685267337930033658461824194897019801695475117646651985700161434772045420541812257635513730544778096359445094546786529197493909449639739347312532006834339448120711490404730969759026486696548266466588257254682749728839609830332031630740153255357236104906712525613106275610489211387986089588392310050233300596098184391526175339494778406902296387065089217452898356457279938903198228800446355762738978968536909723995937198309192106417721585425800253831065966952405797238754480119007906783879247433925249524660708597129940346937455247354694587976083293476253157408103191319743219088614548303606929643903366159801392895667252636738799595255389686855071050542190763449342188676776520889421534051281925057672655052028988175204575560394369791653474607921247596436600519165620266534707218625508105135059900379883026944804245558137690916096575952311719521816841675209994799803488660091885093874451406860991934280028075782699184422951794255992309047382084414387143369375765445754098044933273728873746640558467381252192080975363599742214797200671562475759010736600712449775355646785414478803520940528540054772530404392157375341397073255238485552864388623398768949424836934421801395809605406661421940551830771076597266429489391743333814208653606054563550834507316170950466231313861684270010651424158718515257250256286792152089277311653779801707505448516166683618480385290632053768365408115128869009954295924825637089781292542498643924298292932919438665848071816783369089688598432293394231622922672457216895106748064038962353127107743219375784949759936693185243056352270219424344198892575014695584328999855844721731113694594374720951791684306647651848376467454007249889584764162785715932007874313525527651872031270685255119649637586470895941109397330989930075791153081604436865694525212916643660307349025133048315416956359816049802789288848157218712702557692482994295671893231388662822583397844444169263632309606466750444614141838935592993466045664045294538459225335659340966443984504298848521138590357837338495490881390197679149915750136849435759754631784457104741011830293811650772459644805510855909194648382582144286108572714155737377000678614379925925938935195577205910794881749994481837261441973860598857537921567419099615250111895381679785056857571353645931111955297175935509210092836957434181482244505882344455175306528187034031873011590190406478490236056079918185971130228414859033028629428827636212120902276316055443284310454601818288268794342726751553281986259269744312241872973464125025113507133808581306880621856174487478846302755785619476449652698057940221121934703246829668240169832907191663570193078360967316194215143252412197953163207958493150706776592621155770829914129986209388536887915336390241860445569316948977936512098037967949868840264835923011419975008056040065261453986312389251343651280002786843692335373964495092023634622119543246990910432178352780743617521594647343556021171927788767573759012875562567137862703104894818568816458697811405627991714734700476473526566325290303992371147575824303343718596460295867040197734907268177203209394811903258246088379316461878407563141468342437860171511209231627137958066166180324674198034592669627381186394887720653035924392591664193391823935172721781789571445599387847777351783666592979019588917707075456562622763754250071145587035259441684784560436784855964189692971986287534417361685250140537865049734090434926480030072632344746447116937855973561053478311655398582391657260351445113698893007686156493982148731890015938960066953939066663127210530512207297667999897554084364990071914890093444180312092191386416919290096656753770838224468900521011016284068030764353444118317114973532131213118933770321408766598402860419118833145228977227593078971134402584184860310814126039550729647528714043003027604671086300635624485216686325625504344667395549622887152499663976344657666638103598235669229597195716258216942674053224690191372260592705490608144675255049631703935286409905769092762149945131828817952661295829115987056163043672286769044677845126843710638425400952088163315881956752960333308949309508923133955912468057983632325982393463313627791920460725518077189538479718642369637753950549619376552902655857477442041671211171178439697200432573194613142750959564074146425228252566462137790930096798808574807105352810475088548468803340044581280817907132041523131844467760287703040746853209867226020838900434796163720393435020983878783872705187880168181787212561335005048313078187700974213657835871590537500771842680666901397662845044275421256312760218934775211835041870895478589576858177828179331643950161145344384273115690655145945286336414220034143210991042965066930860545337912897422965543632691535506633199898968314761544304163819681264068452387831805341827006233787968311598483558481718684472182229802700155300075153825698344704697072021909965143809305829400463663907219325669358215336585192051238041240312528027481627700663027506566537587913765599699148589165031325343137469938647967981479926264681359021256158204476755533783302042781781634698058326636772644682747061782770563566569860595124275853246019516222882011166914477109719283173457777422611749229199604891295526848273769572791195664732719661726114038784346957602686502575840870599217409807520720616820775537754960180112922961985617872926514269743560378835529784100984237498801050607816838216928996397807857243283636843339482500455375820904975898808931366977594595204839944021184169977536930453452934687561391506562213794699829768061477698072052782066042864679299668062942608680734930527468173013603699423975326776356134616309945314266685611278748488824847216909070786693429211183213600294710417016708161937886640063945443738517891932022326659559191019933113354871560842192876535585840153066826371157357146839452465266656970318981830309985357629954504425744436959539242660282491706756408886368226263825957396831125327637908481309408163356986854680492606441852178473952773094447139291631654987695634040353331016310412231599213117165614554279350965113490024960455679191771112458726965858440610557309998910929875747551961603140791266458334771782867429637202362539335273845714015823331200350996716808290290996222955247448511803851146172843541496277117916415759998049274019148812088972654141507931513608144189569203221212982613847621463552449561952407570265009710314303634441446728325789429094461151845759962292835254968321259564992452950503485121411010667829748205131907814587558653570691721192070268673885129618738888917963599819116276376324563213235861275007976489741997335594670695194637558441856066817734370799044611447712596570329594421357414093304022041526636224339946360817460386866041672967645822124060385899120104474082539786265146593744671978595996683595709423472119419791743603208076885298392924344282705023968451311149458455303089940166141560658394124314552949674873334834345107307053900704990249213751282163857339913708901002844017781974396477544554806482065855672386895511118725250785303283763378211233630766405534766565581986571250140875841950468274300228980732864818841161398156152983788142352094587120563895120678152931055582037408067028416294467119795120956425029153844760414331598859360714871751881393334007129117530118483823367158554635845258352398371473520017545781487274462188212076486517381116651582127654534303327825642301648763155784527014115377760232253943364077944748371762133290573139033850999467895517494768911132552082326758573629214083087814274887305513128456572106697300925786871892979258497677447877579771649095624683164512025690010498405341293848668834266564674233417375283394416202101924129052738480921745561693005152790813567018583623187511369443834874232443973644171505154620534109132510981661509056786370469491058194513375703944336903119660552255544489172454635419342001106743606635002105433983206745806980550928460503802034953225966677895195600001437374743538211089687806206215223450048479960078799200134109619295457287389791749991171022370566465081513700143720297916570116429112615264940123348916043033646962872176004192973307557833115062517989106723525255999397022115235805815650545104937418236068720408586602382648087181386536395129363790408065908993006585911770207839319212832246718220327526607044013888276951805877133176708260110675328030996562293534264308454022294547611432844378614621426068570014116597098467296598486960353875033002846268810221173049102926168474597852050336412407838977239653917654072763537719880302104265793194714868217781198181699818808108708159922154947817294977544304459882242800776541700250522958630880033728927537485559287247296923588661248382855737001717955284907011087735115339089766807342798532066669715340484119141993442895014426285684951015605566120751540558160975901051413832859784949889775768599786879175049298152194553738532436302085180469121421851580480147583303792924001556925086113496057358428882953989309506897957744142967616046888998222387395545189813174388059560919038381881521843399354460080560455028666178658401593416553885339249887023379974862226249834125947877411739337707276416628443652187018216534978768087410259425974300910302076674063544677811544372085310118958663612172711896245662462463163478813462237080792034993022631479884540491702151485610932207766865827680962042188453509767870193378364721885073812090983061934825268762925952503748020744814948090672223684615841320271727231613473925332207489092088307663937717140884226591700743499421597008257260105420455033278632142752729237445163991777489557808185893656027411801886398876220423901350572712044817096824781645468567928806131759345196162476951313160089380574904906240410476694490619209132740342146317453939348875486854039100444767512580805973686996170686955181824610206766878287846772913188033821561870480253621684938881877493794126526604726629735127690504332471173503123297736998788569989266308556884414324771913075206641560438206690509750611366381718458072035289034094768935979363172695707641643478068985079629825984610454205763599608542928709136584178367411154225843791253040005478668397577233180297195954916063987290043832128871412239525155845546370874653292471135950315478985172811658432251139692289328410423332287502773831307847775280247269815325825009339886293596435170732913901358621505408298250644356431129840131538563958337932171729422731922404198080586421310980104255984846805684593169062000550956117175771407953047369575742247235696248536698427243623469828461048268056395676851503332869501759651092052700242922923906057974337462632865153834143563758569071365375497474857256828918380699712533448487658836584977030184965298635632196084539415939566625515285475404964587226476859611081083336050203764498863528959677000484221006544308222254638150298248161209222107807179026066701034298492255879271949067768916694755566926045599318577037938412105726527687137873231177627472095222827173834365341905467186871211421588605535517163429191046909301088792389513504861488951289048414438388842447877461698200666419512161808562029536466513448634318365876234893838420936931165879456934429559964506162644020533251693242074681071643893345436860109541726072601730088065066840651146987601776318799709051544498557608928660200805268512816212375798013876961135930431431616344715407125363502225784622991947912369187270712485823513291747436922401609064275344341906907083015061118020189555049511553045132834813137728004879430046089843134196382393547494269861809606578268148435700563906596731199625977913244675748963637939585464768249706921507023973475024831402489286562442913918469323769343031068878004446896760181952129188165956975345687926908001526473879214152515970817434472850879414728172271979050062899249392187529369422344573778395309553900238009687806968973090436419485224339321477112230397518720924260295565471599417615713651940076882412550783602459280837266196916325188742942703604758298680229906781014976412278795834482934320674076675755649185649507931587393604402325920198827129572407310849588942947927735098790778443373753299547506972273187309112161343269444838254479407540356021831881083251218136445559377147678774210327172107115461679137881634194690959097939694168331650904905395456095038317948111542790983460892481067222625403990267325129179420791612624169797644059847964298008851360650610426442730788484010915368021669880307907542458980138666837194936048537416335831806579811254620688756744743371714433548922966359815481437707684967557279649176713161340017488551932095420623113332228215390691241277511152068081226737138603112975935414396688204569976155371780329599790833511748897362888785156455877805678648042301812693248207261852387011976040617055634887973776008261840392028071305220162325766847967942129797795000540313690918248095281997043864689299659325855469339015420307208032133459959031996442707694125695148126930073258669505103329589180041479068961450606778444405742234221136976050896384186247405653468431489903940305106665486877690978893229143546290744230973406751502317876290047015130254061454376726708952305477514544673986598542762332578213728157080508878661955348274123761384868869456904435468876577028875208427812385947251065852860093348837841868403501712801460830578485181652064796054603825281420951708380270584028444867665102577353895445500872547502136353099989663848584892148883189415355447831376097229518803863579197614741844614762623347655611656154594604226047366679291440068304970127434725998645433108381630334025312481299414506179215862792447525940882924635251694846618451345793480854455667849200262012919756420177247506688996225917420256484032833040071496189805641464159251539241807874007582096037409063548514121847156576076306357911743890385566661038891911942243737778772294954440648247992770258528778794639364603654566811125589673877863053359175406583826488637462622956397149791607011249471639492617874602576843079400968890430094164078365312784019084563253592200995783819462526233510812198272848046013773916298733185067364296210093946235167268459698094602517036647975699558936619315385387580994566849894906642677707088769337190096110021233790740165727018087934736014628667176420189574915150425673729082216921764085725791706398216882348103631497650647022802338214446247535566245822132000730201832964252382858220687525125639940618219439052701524656751457002837723580932311140738638945684815035898565860345106433501453901017839206093966896596889115844905723296856370591243945379352048058408170378280896471610370246504300130608176667204771578709329168421192072898017200394246329045998044205998734600636256246722963445610917115067525950827777237295407234044883715425336307186143267618313468400375479904331540035148701282311320071765973681257747352590408758796456915296226149432124724111134336938800525548708491249793912580145924301075456783304962029257361528520371503581150275476371297145600580093789268064966548000562769863196575085464507877919011590906690287777647324104679544590795787072619904246063598027281240766688780162346384149390783902004729361859679628848674386186658444828137170077086043894455580267486684908390991524350559435394899274676022144893687035074750443452445546900730580652950387947858554312297332894239968689999015870187300390877731863335260858262855697880081452734700796607929763273517378520493469765694227405741606991756919361114420484525667378723672115167420734080279738012935394496434417809164979511082964283507360398049428907257824717889801521178456035671359970777129657520994578341078155817133961441942220671160473233098693439388744571814148886979419637206166116618791303539114606460512986502225265891780006765568032236616191589362055671052942520067044841397797723319184699269206851448429136016367992912610920975879396666370819649604252611678799986813904166919820905058769151822546719646971617645627268349081404942523357702173515768719672737819190045425448140762328120922504017269479667889224780944490894593237797257832473114217848559641952043907954200806901511429579195488411356212050272339778897096896353420396034018827768064649828254143340758801022013738707672119319930159842919234090625746966641858897740182033474785833213221522989096787296764862294087104819810575815778031763855982556401311558890214245129146147117972425166844991686001513245467036445984981425113863860812220735818518210590098300332556075395818792686156044876335569710653778156731374027427611187061620926878800322466919040013202137557010683255730571215659319760818259758906852408949451080862047736435561002843157985790253704595426629281703706576777405705581604391777847770009485832659865142087621511294058237302002625936706306335468999850919451581340493013879451771928218639938868257289660207183135184033916252938513202544794914709634978525414597214805704838667568385440703056409695862460535626084846266347178143060685399631574739149552166439211988877864140808621702660442270350406628617713243595769803684619809535893909841715131391215411098992237494151933971358090434562351590921568533809827886595093132108400345742430305893503634911916546060331172066451724507230893510381992497608664905609642622665281324310870246328763330018766186006388388739697074316787359992513504330879315672194018800743626520060927942598572166067915985950551013078293196614405279578783758219720151505210018116500212510698948239832376696948721619208271049214854470014333302289402580303063388871056780041012054513579428543550743644938953093163412483599917267220913443586023893387023514298706609563948469669036108463579943733472936612039908249314565591965712116510137414813387696523365846899147219011365734509727732599354816782898447238328855081263641280997018573672335157896710138197856275888092237293234206374670544285967200396844921415854607753241409522126169327967497712717561692226720864003697298114292914595435681379127766781235543512867613355613619603758044811299780487721624703584629883211399885125092674832451366993712115374977818916370814663526879293186227140848237608813296017015714005104152007865713944189188477526503122865290381253141188581107488320370518796480540516297273619698401526747173725003182766281231840489096195228728735174004900573743669617495593295846389822918039780804710429077003417428541917219069628209746834330285930993950518436379611984753269700697191743383083510750217935600113312252247139009427796683552626220306756692588235518289013592376624953732726474031892490045932716734688933607737711457331982250926071820663211764661697491943245585712250069619783881578757824878996704406041608905305460820442318584895845456221963094665021335472137087809905887265876404426876240963607611280532074555474475370433852033495847880017567106317068662014752651468154866912168553579790118052628927955129426025533546105422328620994719376295365232578074530046812868378524690212156365430342234226708583650707346503945150597919326253704132124275943046346068656540569462024611285403022950143264306326570658418630653207408678696404765160085362894594790531488224090419159067904165823016891041865882375680726209869594980180911937176501038753667089917822962380228934025124840817726627125091025315492989894455617974578024635243818804496112110896611425161651232252213092069768928009015068381572882725615510191926235289511484431721261613699039575996958461557927225143329326697798361810666844863455641963489873534070487359005925105991425134416216025750980710878352067854721959248587964418096511528014559410732395361375845138317068250546447209980403882417091170057059157291575786343730335874681914253267244050432311144638993945133911496685838484088465002564568187303438147260359613914201131866828134523718327604748969124040664180664467776259588095620318769093339279061374072495875378681558173908494115764457422554371540551328070417401807284035656597981131175760677885413605556646623670777389290453689167578326819410819084278012290511876728534732782452020259377195730887798770385630822056021760491732912714219430007024899778715233491362793235918112150799369004580220403810193618733606908028199097146550802120962276151836303247699108886777832333804572268430211157137510544554310456127200217878659660469236196271605631143239275055518823233665509680143409185216208183164547917964015395687475441480499057093638770484556367739178992897346735632560209670863529398668538872034729487118015695691790509397983337404343900203338002527244872548966358314734874925138420133728186163728436683609805289790716917929197402357713852732891818889797697732785898360790720060159857304897043197929010427064083923844085247282423606770007132337840678818150322716499243539241963503406648410539646797887098117460904391539353582555673178186162653969695716527040304112977294126179119797298867876044368918554344503653365726325884935516759510261056085139547289339084080216755627742243423055228585447163083934427869861900448404926015920463389788494126722622577494289829970662574525777147611448739726375077605006166235193514791244759981341827781269473222698785338563684975927893849585104133001098190885161014013419181716793972417526993538668583416906489433490706170778964896442694570623666810561742854705228971945555821758593186328735813478336140542767261180160206429402536680393740822943630191016518936962848000404660434406507310332586574617327804528539923331846100270045987461320537227329820246775781741145831043609273242307477961951728820150363934237129783653958443076595214448307665770098191377970312818645564151803739609580361183321046870935137626456125791367627378053996610643188585941495828680762323098537179958096060198815719266892783709431204790797561409907227003571941414263673925080364898359682424190149941250722763488199922692446168115269133028962722648346286617377333498709258291517449340612407472947291335792967668305292466752296822720262932846305017827033308892151172021631300946517135311071753668563264645268457962992576294092131676715842519288739670342009236750828834617212179390071571771043976436705373860654992557514115571269160014943732063403261937300637082534403867925397321735063989281368193400118304749233808749273811748696872812994781730027136374260460484855032914216264597853549373358291577737316294066239315155017610380011977352183080077205690079219073648361665780557601313230772988356277125957893415419127294740956934838083972827679919340465692866224852330132158985239772682341918636537981141599596019218259194462769548920354152087791938939900927852862774106525063043598533921515649736018916766408396765543135240412896295931117736675447508788546439310657881630543272073137059088097284492880316438374087947648455393390314925991960777999015827194592791431103464172709272084753655079298963027062698332801764845305144559586073196316600975755778306803316456873732447999203394563382535105714880426586790774702542345603959144479941093399465773247385450411922743799814599893041699834882031808354374920354025106626171358989241981236556355712690363533192939521769825657794027373372101267005940722375620483032660904739692293321864980057813236648767983114173664427952714173334828154428465534890311110457378806978459626555621393057468757101201263815238893694252261586165873930484366767145801194475374762599864089042737301834163061190484265324341031083083905364895537321381001521792711919887686490186229747259040512596988586727126484750994775618154450490177872107203339831114896237858938488952838191646346895866668967548133980825847951735294487788169425091651141726877962504594762181233522982998970225325392719587666029576956333180550855043933342284750823283494263451383498757817730723807318267902572541569180113852392251049910249884467515944296459395000416829290581263613924990102707398090685628469914402691986873422013047434830695751782549682190398812375432413893183707086804628312657768433293124237501460975015295323711393226000137655735674980335163392850625992286203407789350008499320814176798966855671036173272328713894265720216191986888136960140604842793392702458291796057293482157943117138514917439320426654298083994382564733509279282638219320066288933205482163865809766122085076604683992939168946318507484367144816737313400987431738953134451979107284286398644253466795796895131615445315465111403603055828417475128839675751868498659480811426806307967878110831530050067915969746647414857393475729243290723855660737022918048322072358150399755263674281526997181787256231260987335225787574720362878688869909633471651952905486391343463400728636494322588589156984885606723054407041048488499611701434151896499519290024115226560223845571334888809639583145836002733739322138614327198780560033436403480588201980900815728346076745866600618869959713738549833438906079910860615292069834758173433122960083999653452574791217371126419112636527563562812959121863768521894677656785692494115394792238739532381658675093470462950860113239510311664048822521154044158531176698388808434948158715214096984244701462333697740495903131932734337188631998065131332993677845727519632915670619713576775824526877481394591118375108325254380026822653772713941590171582390716811864946554616914105443839277604510082916754987741811508420898248914453541304438028289304835928135650591201405898802427269332262780165178847108196953262991895206921666606710677958957263086681542225757709920094993710765570089992654243498140795050198307842910007699133850013193068076898968167390844416426786806269406621431644770912768594931977289861337360742483106659202574911701379926194748038090058250343490608064226208401555521916720865198927447731055404053351542994116244885481221955247721556125815028267269548295685006111954843737238472927473628730724687097041990191485606042070384268400735528887184810975902498140093829457308243507147803587855218176828466296713691359822177364788283574539355617365244395235616056627590312152968006671299830153084527285667077957287470904774279857054098619964250899995415555270875471947561666587237604952744396718219836878242214976926601029631645111614052157845424951442056165254352597138767715896071719946152330246782160923900717888602090653231158413447926891638365310033487150447683161632321892279851371330274529961768496801055862434711127964669352266866662042035197825887129542588382805335180556034124674567130166851051256957253592645171816515782994452404670420506702370727701926976967228939256912336876781633274873156399365987970188293420929742621929249131855038998057460604129323097045614076842435926307834953014747587499514297505142364560506515803277810086910654317668326582961240098728488802140114538605658264687530130010774564446066342039423945460857526753493170160086845871136299187816943664511168222939770054285319193092812219234045266381431386199042361179154096070909649638618682914892349226301883097552204925047084824577118869845817002808307442186447643842020761918251270877998077883895943874363468770740916290836223844563999786229503776386189504267808291758940281180442443236555552943933129238629363205218333693054024992102005936355458240447998999628955186633044345365263169247991381934769667255839231238096825936897297322049609570835125392166661524389246031512350985351788607850130098558862618070440524727758768249308481142711584995729505820404920086505423845143232052025113423428016302296322146305155609060083125844365484069143856062704661251751618568038804299400040904141618314503480612893220163692802051155240960297074818211973218593905287194222757761046270376441194716201334361630454950163812434742420599143619684584107279273172382038974852197215211214049490695587821549063334914687053372964540046809307699007372450435790415847350104586601206397586675737065789813095178631317564380375158118468858718933850375231001697063042893507277539984548649888422430768537180133620884639798627261770072973638340337336816965823351593297345148217415013316808856988818482957977678875095489752769168493120125380730862810389138960564033728027623615035474050125731628112990552653224259439166888227807466572294390130281214503725321577280511241078043908815837510217078781287430531930462468883347761750430149000569902155965703131378751557702085968219664909928697915293104167548266080834560658909052127216538498938557415462492227420575528887147702959044181936630479407381568236720157470471851384733584816773564576335619388357203985441368023191940767933428244623362793058292650768359942229720520397977646404796862324933912184179307216739122566338888043686887647805713121664226256553625465464810590575295323412886666141157534777358568713579540984003883680426076711309434922803208377305836342219368937067168088230792578346897670357222117275540158469707183918957116709796333550356066901070349918591319433658508246130142557639111299273587554739451149487143690648843839021177280596233620196771109158736457476652691798185707368981208884098460443232186998463692240618013216068744670115945179523790199413029273954593763709308153681585050523321851921886089804917435300712187544123631122607304974436762345258470780921943940001458169277562165431689585124462960399339269511575323226944141971388552656428732347176071667798453166673498952217293446718726582435979031412261277486617995920330818528734112988029231272898363196720184497540033343412767780833738563796685670308972721501657267886328545596313468015582795462484135082449589123879036250226261634332320661207493537552149585952895970259036434958321994179037932024317320949518567132403434368586849797378372507474245983087802054813519836152557943246099609979092344938776116652150179062040423653185096908838819623192054768820913045633952253774359214638206922904951890726878915900857443778913807507189735970263455617081105626565436388645712167296775745234514528674262266328381659398857937310773212774012500249740182929973348579374758334179464706080904573652158870117012438122508728310899016691072219628556859270688597855669354955850451861327745271775748472252129125706844188244394912500050333914523704360853002219248691141864933327803193319160067706459842269523175145316025056566514156606024190863491573574279812068515091395205625776727541333157698606964875733831977190938276687965184030066128042085127738914207413851200467689959523799868060686096787809264826310038154071051390561241489229402882222950199874588335391354064208045898486063142368447030827001809500472788789879687079089406316395682366843698333082147495627013194604873972679557999558921596196222498164607487338786401180941430751218119095211103902975482206416444646246993262317563210943883087474343066342668125365269152453985101561974368883716398110698288680829779775194266440469025845706318947997564104080605744545207709868501815468605781683340016133977026124543180502739437296549212572995190157201973213314285709763061241941113981277289245003229792840813164144474467184533681049056800948262821116041432315838938015242416010406513165073747016299676995580441217491160424287914029641368070366385671563653830222559291942397630987227875651898207834620220144582351205247353857603007611895665349708236698562094494041200327427278856571467716038462978347646612469115309948784089795538146290802142662787375208536098246257155478100191523915064233922725014166199123337290641343484312160207816467256973252404063565166370399016416755813611149665343887677329321783030901175237608602238604407917788456183529114056763026567985852405387328274404759821167736840526027305757068126739086485865374329177849971449628276483379798821476821690831596367100371068504019117024808097514707818664415434905074780827026281339016718913595810542586868612838410825480548148525995850710559569564253356808450190457855843838121652242587392086342345818733488554933781913449321083407447586900158160203331065203344197103224900136455932934852158143940323541606613069838619708551734751841971453225029151462942407587675826539925019582305987793808819470626308273862559613023493841490855520132972018613895849966758790242409713180617146224583031380488332775559159448418485490231967471656113577772896615276728731638444979912871029924233713768265616975665972829534893729515547078047309139256918994148102975835140378222838696834434465751777780767382897657628336898772652906892092741673115493313635734367708612884181808541068357742085558617975715934819653430183442974636302376750703094623593193178007628815060257886632645403422955770431473836567130259153633650331738165791916657878207674243062026910499657052575216429738999316914820638687730673444021409872937364889887565467203911149800172751906823159590231730878424184738405832491608809990088890681560773820699508624559426098573019596720931354474677232066424250065222408136358160029724003127185403785567582975093527062112107997617281084861475363439129660471529078113328374028093076394536636462107695135429062538294922536923097770272312307400210307268945764180845038348605764894650525980901616423731293818946391228958033690499016846165424989205155749803897365610582911527884408344618324843944777026297905456233838098218896562029827857747514065491573971058882583553531866617490346638953631126169110025070541972617105426783995243637755278155520827233871606278943741845443951741236363857522090513610821220829879745711033327927053256025630153444807912806679489751224167077965461550619133556034413558457949414390328264839602697740223902777986500808071492976261248062580573343789446590014729522936980265789849493190836291297037123774611648273947790890593091960496665843558750142205275097124212342789347808118118374536342131848226600619519607338179473866741192272993548069226509108177342497465292503916134442418088924202842105132295524437221575349064946335722204667878922649453806136048497020424695303174579284994331694988406120858176447646036546475332578270209294073157839824495437528239553759298161537121306962920382700070363062369280601858754862957024967518588543876856479453990181450050663274032846950859247079761861606697898000979358085564159254571368483021305886639082465067883707880134932851445970892049295900277652819933221279607470931521014583228577981516773579633028903210118301234339103813719803328374986257501645935977732619780030332341554175635079553864415202449489172448545655570914816606672524893244217742923680253485998369138556405459251152732181642201867841985971082241487230110016335056659193725119802694668260249007103773448379143751572088243417902884804978245959835450129235292130670284889755487385112840918858436505991442658238237954239463872789365209175310304633117990099431881889930460771070908572002346795411805484739450563575124659520560371157429907542315800515636953435164342403869448291187742962793961626520191398101737175516618788096528355934352758813144165876581848316678484318367275652635991505813860983276714010475666123451758168350433135607104254797871419361853778746046992330370629592593507405019908764431318509666013819238191644996777458565874999131721164674627471534614536183075015308092956419883024604691196344531869034191519953950157868012803145861252669434089844227414865454682017505300350409888671583753626899815154016907303303755933339682299824556787629840872041423205778683954148613671599961038231090471336601458218178988637699979044305374251387496073738098398847444443061797049189572407014275973226421259680347443012957709444059230142978001731673554642547451027372633319719021091948402509389191903239515211369893260288311595676007590461252248588828661756721803407481514757324052548636566273434308557049861563362275221673482058890774672799056188266940258500467121636976489398769990181629076564253909928445987264877622857896583880640260222947763464425578889279355869281060025782515438674059925822058454752584016140647746174739644533108021673155355805988867011778375787919847141613071521787044968580126746558561967788530173056734930797293656486297606273305584550349854727674663386210213848571926520707269140654152443622061218877243858354473594964159943437596908454913247695845284461746597987806800502988641249204219008552532863581351511452170989283994448083465210769621631773107961401615367409260179910104221035479709533041410038033120015136737979606912800931790196761773943776818475474246735858052988351685046288855733622751617409171746214672198606187886044632216133806810349689713551983143816968710633557451725678541276779794208935256383947950651571076968421934731051005115193362330947383132714430416991562561587348380404670633952991810279694150179658320072606401515570020963654835532586088627192008882893846383072565829791737643013428624633080414445040512300013931444147127334148224113409535962076472752563343636641045786502608505200645776522535560720110213266682328825072920857820597426440630590898185661584162789727037376918272473803509731742498153518925022795643475530032009051043968110138157655305631385766257880167732379007443516710696337546543167451275839942902485037786898173886890599879697540156393968863629551110054325979284081448483504742488694599608481767413269521583600361991419301137446693782756232933930108372189400836325173404443321801312178548167493277764491029780243447781379060803596932682939066806752745481375628896712535406452169307706540472639536978529992407023973061126261175160385705491410286103986667841658827801973009164829743923890969108875531585096985491979088102089545692769607830058060391565376993863824306242853734690615575345918557225290998064756312548671193623054535957283366824032484279810502574390511790173852814947442832146948383617307543093727566476052299065057646033932597533530419089138958274532655400708850969476379336144537342702335142089187795589420016173580238688153313404791553345918055786628849460804832357605230630238363324801350496920625164230437508907871037281457709924090465477070258319093460082903246155407036085784893216360725533925016210058087711729684216919048707321953151569715376253388670151050962014015124505700313681976273641034347891876279815372996687001283569074803460516863449589442201544883501877963231280356220323258544008969836534388224696067464481423963021331582524925070645848252281977383740158386647989371460185103511634917136974078642206249506441216793125027851140451595682583313448241625845008554177266308161591996959355983186297903551249875767809890228556077473693739585827920836652457530641212414144006436328900072641370623046963154886778844906423516163123641438188205534176383066655801662987594983120275376827940230829317865752940715643035040672441512745686841178940232587292328101722463221574668666520902506348045360525663907474280895842843838484575393848906618543558308807851555609801040840872284414183482090903937498780234706803533130161435316795454298311518603068316931138219299840909831826117710945508363114291958130007749058242573892113904825253602716680293342189685508821915684364753170567959255400447237351064493804623658017884066654824010504828258504367709638432968472064261071763804412059125428973434103679788391630053128912037074757086750742600994800813019782258476437135488354003323732587191254912712627785368408320433935588295194474846725133224545250170665006583770320679806792087457320291318610734797673807615847959885537290664775978259486166864660593910335796091775180399937009786495695666540127964636598865268179788682457257997050675073553400133382395409652040613493127523562908051038282433008806006480792781087760104470543148895705855749999093531655189043318925345635843906600414318449327527324662305866674385202027053497439988002830832710919346495285714195601237379927446138340941491754925475756383750019792497467752580290925765973899343476836733691646008473565079660623687093036501049855608062846440350907946757810131312781591368892210123152081400322126873994056655438464942920817529987590437334588811693748316492066354010537514855326914881214341610979163349817367958976602126337564515979195655261945031947035987987326427052314847047217525730539160734126193509395717814745270698883675162783075604281248649718352288447049176223266142011952216661421207745900456494117502737330451576102532813050773997446692719422617951379691219187913803044890016994699171794226204494129537028551494860730576106000754468295349123019567696434991067220765299764339392113450992820976808998626337784138158963342805854400031640757992309538943268550583287432943180719825427795283968563263923945404912101825239278627991139875989715233223283383364120531730214217986543346855594424736458831076428005734842088565565753182529493784068011451532141896328900685895611701048851504188204751888709410490744010028997852995063503601598879098373375582968204520768098286060593194199955347446857218604240000337363178380593647094933463359235950007671969573076074862798780913524399331876338567252962527949687779504160008984604719914720631716739729402377480236591801055065134292317522783352227856812574801290389561377927927922768747725947883652419490093300354826609468665371429644698865114433662183854205657939059300644834900017825233280764684940145579593415785213064382616384823000120857387357047893649612912215507702212912323504091407927539019621134693854693771838545794219952728937908538485399927310526411032231278144784065236300195915381039945628697910047582549781697992793348745991020209814918298073955061883375813434844015456071215816433201511470229793157056381155549191941325412521631306165776276599142943484490972850615379528854582726905900449737384075517450356310574435183701354895703150787208274447162639932494403088819243725814952209030092543848282836552648534650573239048996748687183244142066023129895206874205840420823247620309775512806831740290757728116358317373677216055623849052640283991379429305251959602543012554563558320465495100229660182941438275351721175456411284856436474105785632632369252492350916754088924722652998724660230831752115996582766081776298617973823179841295571596600610017935057156463692660253440942199288797121961244900351276996455481011636429277583135205491436279224190275754691751663641794373851020101154509176608866028313472917089773230874273039651954471033533329802218848611771128089349964233198517673629772245234337376437387845058234264849798091976248596720065810779608138999239585559839475173731014331545214110047107779130907974317149685237656523007318339803015174951906443387356885741884291805642208913281424060681256221698549434822808716156983332556921725004147996801539045916626650741027028651616702421035604597313568710723008679713814357171698205856364870005317038013071068552404342096546681046999136482811463936012730140874383378753820006630671601874224005017209072412556278728619367186135051740782587718967451586464841196256090616024229557611565497977753419222158210856013892590975080138126133917658200207330722520586795942504321513174646685983851599051960866257846060300904914884005962691422258798685604206563608106171303875079947485328046089420155860050313888477887884179131571782346266194852124821813332669354255798851929882111439405277929863219532960771264696059728184642693670223150755672450637929881621806887110643551667034260415872137566153079943721126127164079760590442787625178783496419469520723305753860333260429066761506023801870488400924100854272784306918875239014376554313865335991186593713075659500404465063100251446459470967629318020979150459441340551283170399951453668621671849005146243600648029545615311111153620172074584073372993028856045983787985609808415368180826792899037102406031024553227739453468931818307407241232914505517620710745658563806555935648267215368457413346104539684564857062656240423872042720603840500574706809798932021570652172700729155639344781549846218755996913772134659807921758774684373008379073062324394881177833666625680665195216435076494430552807382665383995446111447957297343348640011594558549496098582930965317880146094167763351605562014423602083938458794392198848043939106225378616419750174602829015413243573021139331265123277631697770742092454069096009241752846485789671212793100462465975583047990102535676795440488326922122747974537954231963124310676971001477893029869945882959666740745967484503921680763315309559417773435466680061773325446177905735527409368681357777299010257720421772816638830400757174621525405270940447855210990588476508349250920466104016267412243991366239477962951068382029070588342451672750180032858038663348034147948436281702643935720322857036589432017153599143907723190546911595841290328692037938103271738392764775011669464513536141299915935528888460648201315616635972346949668829497157417138968723714218321461179402368384218437345350291925528490820926302468945789250142151088506183190716936725840104525561079989859303898680356492327723079228140125269095541849589407609119346631574500819884687081864143299373858491072370984692834085188980058847595076594008963739246865369897728092275261220959114739118717171960511461630690141389130306385940081198459796240891054740607352504964309678349707725368571733182860945496173925908029231190294220422455309534931802177839643902547166057830803781315160347533466294196938510919162157605402488456222236010749940483012979918884759054228005603042992469817191009662219393984354187819869643289080916678984735206232494840636561206922516000411742205112370056709856568566626429826960750932916380687763140510932061533040632523595431646753722200877576411598079012051542291490148810457050327392915126874271839522463812331231647292910977452956233240142935275216208401209336619326065803828313255456294635453463946947974693867218064250581849766063393409073690584599118031913489662345080357048182427002245742094918457282296124582118821643994839372364148327096936369138863197150453610382085908578623775018665256462913671553855279790309755217330761665695991704000943472400403770708997113140830228635380496067534292548786424923558733812328762002725096722673449141553574308859009081927531424043062181889489890668611753925516107446746313411348466846318620047719971087818433876589209655600701074228037467439723515704614999311580887235654407133482109748623461860738385697044308987109874108098599405162662997110764470403553654262610361763872816344960719226393874993182898289397548304402062359638468309822695462383485096782676663780002294897363968130978632957764675477931778666264689626937772368737463088822131955399716318310698427355002005726802380835535264813700466111332306469624573093475220920303031620209161542018594314817990457639120900275696121175733603943951581673256240334120334327894679226554194064882092703432397882600588262907014016855853408293280577740710629788514272397706113901363824788697236170919061612891259040661771580361359975745154983815391553292680588896222087704049078573478219748817039538260887868024841246208691187028982062511768001625258053957156163882019621098088114115702960020718040685726311914831366260361298878329872228682785370770940497170185914785122341562093880646586965953718702656707423274001577400691452327260452417303042078257679545559751210526401932003572458874983049748861973363072603353082413111303073381133052328910037087430299471203854185649084940080106854355846603473754101467507515817463976963333021086394900536526917834071240271981414595054264115471431361969465621590137969909757260846120615866894331285783286854423056545343984340673101543044412719085296048252723976448025872923883866718926197112321527878171577483762791953794058902412238138885300020324320140984272048928053417021123201153539620629008611813892353450812442141821294549990969545145014446269024388073756244854887758516330309980708103150647951448755092767535855668907109640450362365251136927053468576306896961383133773511849397938770304881824335384104007459962576739571188843317141040527007709354153059825105230379732244927295352864283811187623834239636688039533582284033958509703622665276162207157599278105855489625279274403691770508139766527669480897850931365174720137680147134626909015478017292693096798602388258276732026009169188925012481858530406978699268546137729028261772649210837539614377184739075415875874682144274982883560509772050392047618442353218285685614609954752024685805542161731178153846566114429677897218659974192645689257756892076306526012727698901669497918515992350754927533535677953830995884298539748554463454612398065589034384436272569422933455883556187898263083247271699962453104719151428294902974495448815271240871979486818383772624068792219070761173308469290205649810624223261002646410862208015451590633883205278214713320082380765036360941965170455769916173235238839519646399369230149005406227252286945751989565499238832443567321594678429062126583103611397305189429412360873480584449960908232329879582471567759711879603056438417885189052572383759236640673181554262046548013666003677303833339345472226229010224073898676301619083336276346621094956289759529442176997989864968682264858045445749163491370427600246188942952864773389663321089234169900107860703339247691576079098402625897606448828233459523313295471036518918559563718839195048569108908525402937309027251660939452865000735126679478426894303434582698466466626593803298680636049494627060728309916488531700255013583456548139396105313986002711475558924601691212688722479836260836465504745836362131295982839500848904231141801402280997034701064824609310986860462736638551777484927364149614895969833218994746464876478531619561767097881564518899884451905229744590365283176487322215500607475562258951388232477756507994195673527662139291656238719399861676833170617972399608644179554486848826177924463042335930453522897867863044475718330386093516475876990887514376592886599944282889741774824516060659074353255542230402295795675411472122704713096781980683787126977404844503855853075623542689816871983716816976249646130528283030711041806685210946517266934593115767078950421187385242359700582735487807511902304989823558094957335631835788348991924415256061569681208967575648261983259957990122631513796219466194390220695313699255488494426081791027137348892133764856222856036906287028119318978472247156503683316005697384519186790997298542555476206660712844429272484075350557657438878357390825714220774284531101137300264100649937284543603533166261641515666986850441003676666283474310740133298185621750730139008104567085266426084786281509037110685841738816032843813359874635643809509456146963860979052726203459427431672871909253305231496774267113567876651621792093597725384942643422743386656525249417374985155766880833656803876896983745658527773803212121006143068578612699155861663349423016120875506038247811677379531353822488554740896475157451376251372254903171271421652837417646029214631218265342075312600724347474207044070058616099084258738455351604688048744664462984324413609265848463785263809001218365766094970579622746219543381966043336225180013960719136763110888796492570519012445759052840588715562151326814167057080897595586793140241880059085518691589947696855548048212516335498592742355323428816440682718795003807892812904294514410703530406372388043244832785899116568954954660549355054477967725399802535464779592571085769685239362944073580249633723634891725236300552073124899463728668634658883600907667390310199499569523441968123068108186735192890549262976525712131530325873426926388465078949611477686281425791302956213125212234582040943811149228807071141216380919808385893445204712218256161466197564051142874387651485024623503393277852144446120895938720917982530465699627086899989647401585312330850015458391861830639100940505234101295924549341883767914531954749240876541041494938509389227824840893705179431427284492523101940401136712295092035230254958178409389173129022752326545223321651928680194321753211130096289896479753244039014225696230445986468250735846868556259830065143315261403327890664972254248558998892633422238227139764988160603521802864565206566614352577068960694032251000922286388405684735929843275149209766119472370535266109190135712538373335786336383577536102228162966919519653275070932620687853672133051778479706348315255817987645839924759979970169753928157711334423255614266655872174457393862018091380902286326690372257197548397216454584152531639999170163131739331759896007845207816157953535313576011160369892509234885710116966526379774221354437552936647520235212106281757498061906846696925366033054847143738646106761537588681888423108507611345307962050620366424601205058434628719291194980919859692428359467946754954124712184669017364458037204619813564783142967284613494092254130022510768739559259841822140877671613177708036868553297314030659170604108440671907180251355427198530597367884969103043808875086407638397157517183151959851662963613872534721401099069766297674093124026161798648531384737600866437051293327031372240119068718335302299584284731726148520999397972518373660773131631152821672684498189512209484907217717302200902642937455282997711459233109001764374015830984341149734888565302266474325416658071954682526781988527739839521615063298493768812947707230776338768324338611563202511758693698702294675041074909614801175221597296596843494732925561737740617412233584049064239494702370546743814498534329524656947482105684108085355584426247348701771576195359278497584811063482424341155489114358937514615803045109159497264927736411102656942820815836475695547922268057386341737240968958128710190151745308590511533628238690559795906094427648512141396951373340571906422428022321969709171254395077599143523192670099608800335095391554765201765435285794651864361672520091610728964868530491941841019545230104629236475922075655006589846954364747417272646571963876524572031246737363087072592265179032886360056415276776714140731530968514437526561458495022014799177429771618746435410212909437579667367039074541041446577513654262447580680861617245006577341496055948632709615754831902181009033820584311392496499448732545849516612963916385539050129288813386033663627540722219011099879002986400499347906044043568219079619142421533879742513010708746709929033835749006778697427971031295308940406264444389398978251599521864312191595009995571630790798422458028536177241636526258069932499232365142063573542717597494765448986851658283778982266652778348017378276991958188766372766474120354310024113327093402661157401120129552818060527724702679439413657212095180166891140795856070327440490594855317248492141194499897191105781884776065921195833211775487885817668029083079908868577419677113121326557654303317611515356711206315874371919162100599400895774941647879112493823905597846597676897486399413839202210535646041784626488521170860697453016898656923599001039882121784031231397892807621930371391063401082746693706746185966233081685428756908254538671660263897182997151575840414971105811530397018234294272234366167494125938730155768794625431090673213905970390208635590692031843128867079566466053957769924388976774186025116104157659800966853841032276263928495383436544516129748874163244163107921061722171545778923293809532348308268485546056455615435176803973861387417140963292334624227395968953591967533711215067692393899015507323945197930341119956430882310028711813597127472391226828824504866437590896030974663759447701442732853133019553233876342086577938522937246994182083567036475256155817621905688498099284138075243214652321345177562157716090095477560124554684058621078543724440543744512071788808050108587082733939058130425967990330198478189071887003841856287224737657713515079319324864527533952263339873356499619537789399367306551744926755314042745074542433546501509538252149861483471848990739167019430496058325937349253539950491549549987414256447448387193050952519764692159294856515125088932300350150887970493332286755919365900631693856550942515357347976823456728276921591188977676703554686866024505954520919058572019905727399268383154327855876041391995762110079440211070340667025712806275065319755743018922577066066996347089706633083208473559585758441231964904961442643192318766432341101762346599636204483806612195661419381795258818264202959447039782278348369105701325919904677580045374980182485465793944656458267382141789472806979098992237458021111695243701880544880941480777732469668346926450064609153541777338845484605995430315350431996827189525145711142112616750073303495613936800351439481799324962657136501181649382585841592499112589680793986693027248575406707259540527157365486690940924768671231293405202019898227666351053290608609840107777936751691149592444595626017483617510856479846870488025271414883436839836831414643878436243272273003893254019643663198565627106519250745240545287999431949836719304484120584668962197441507775622888821333945067512176466016135934764530119096619957362834250372265599320388969985542498969903388015264904260429840274747859243422349471782554276288466681804944215351124343638322410427452475537421228139979056719575278449592648650131175803343945531275295495711713402593064595157568690459461306083260477120129856918013054482946238806295408727841729083274184943383814455626929354781574279586839811047034900330371074463576500770278524277590249513780553415235051691412111158292739813764625294729040593213104154744392817205294201772638774010744684477100333907057895651855368253705363531744240766290225248419146408452551429051693239994279112143007662696271956297766704727261057547281939048965341874998649086388739849492184859096479708426081912596754122132724833648863767114953779507552718982003780136203515298589211539979964327766556519618968013213163197865130924113854690079365969094671696228882706074526190053840805382053572435537070464073082005021450343828453488209949780762930576634409212119314319380878345034607997471928112016046621633282256530357957744658212765633943006314861773912587324628042755342838740550872672266059375756946871914004189758610048396928393034876154090119646193006979239861322804094738362364538976931020733649962874688067505880125950907790707347207525529792511493484620267233818509714616345425825086007274693532668218804988003205600632320256291545547847768464920284682108058045921795161869638306128294125166767723769318863946085677948583737098619293769521475619563897617429823139013461220592827375915082826710852658699361892301283576529896417589397552393104571938412851737237363308136518770136004570922821392116619742511166336724891781019699745222970543043135004104509442262069025937892104207749284596906843028715785338036972947263490493109771501796989554267879195265528198337267508223693928737120026764603106005297439512552987179224086337855187382277636811796506495050759338701479972383113468365461389386929774287922518857704951498886431097581721131442014682835168366824461937066811346407933848001929238107866649827056582841821101381014389251225254592687117026290664167249545618648293947061369820103912113502877045999553913011482725377476386906789723070208277019439254865282162747888070279884586993492116069501225853067816038405230383198797417041450686908298835208270456435766222718518698683163414154222922404284665096422636083712775315044409052140609653018634082934666995261482928177014860176864110347903115919596991121427475492685539523792025013297222122917001984882844159835414995118901644174196883035384646620226454928641567347559853628198506590699187176022223909191581634615740009965691559989318667680828112668066324660563910005278372768672789974204506817728033313424592680967914794414746481917451274779095889713306032290556841409772636051275426412441206877200717382658953311818556756643959800612153081506561079774992694029122086601628218077908582569305443456513727043172483431675218369288135203748062943444540814393737062679805967941570082542849298235923228773244444532653181334470991092012552337728921013983914670666466962379898992904961680651344164137347450766527505728820118474757942674387999691878552755049244888114115453166632248783273363253321307742665830538030883222172354952884915023653267832316807360083785016241293228696677769637370272864935602146161930753417865691712739406796696697305444682189254472678626737785470998445434696348138275282134496740733664798383906828907454886873818116632044693806724384949513214635045984845711705329743020206066862284947231528137181296507534684641540288092720267002072411341427608498392388842334653361900141185081334273150969493077047442279203466673852452390607079078915656958240960523036657928286963208042523494848217031535424863979361585754867285822300833075330496914258239843326154054830261545704254730198768288239047204615521059651787535847553366303366265247967901736692655410581230233085449011546277813106169583271292473396429321025779860356303672666120342487886797595744249301462530337581282392421158437687160135409525313977334789070858770281804597717560314542742749943783941491909726606594601785910445819123753633355543461479012809102105685916868092311651040573483504684986053163996246925507740001688263807428030545633441349338116695970973357903335573078464075435006118552384662537069964455888771447878275948371260286752090771931611517996434687992590225991462026299161373692570586213994061882678889264295808197066494879562068473623225254428184970859595690732957435185829354894908796021266563402484066759324905937988547283038978700682771411513987486203279198860807855177585175413628715743778925421284532641393481668267743432519084683051573403483281931134582257806141934335924738738086899094199783947207356990375396828321688847908651546695486149461953176580730110118051983100629857912817481902350514582482154702132185648523923649171164871507660844486021222082390141838116396218868490830448290621611835284038595293822436484520734180232534752570861171020380299501054990946912919009038374320758940233744974324999322361551329334594855747492404452479894578068444940593519041334624436161945327453487309235253663781695738102162675306257926358131956870401652352901811868655328953285796851669067984469913662778166078757382595550483088233058527058555436904609591538392732573324652702145723592116112464469535889777905448604488754011634550342491723394416859736972633971947659671432418686397642165230198323087195045808776001777553794636538746148794360932328005776590640412185918196766768742632473619103049284027582890966072333741708178331760434989384351419111460598579286481125874445435063961093384320636725378385188766449978601072125814052545833991501725786358986509668134724790629839601139142924091825493277170231679620542835432699168397637335510063996346960041794499743297359532857278183474442907297803030187578829148074152528452748068519861168350235489559487374077566713818390587923093209907327069376441754995905636992408552616276045150321418386300148834739013617669028754451137614861638499502458860718622079869253637910581917276275687253839030725469896855511580121435103092764624976847866863990557951834193756412649939843587135556686523966918566583553405313929195945103490235981477285602937210769045962172395201017098612915820404343714686569646734988929483733922652996897059674497985655245547953562416718519871540560729479678560012586642142060715320024004490362986807567547275546790985534766294311653090644495682970206125471192009143954200836264717952888987239396672203681803275320077141898034805975938312005435083746286399521203686786559186395730813742499025731539106485243437791379567555712436744835171355402634113068406858878566920998061102444288214995168716141259667552162615836848483422876635643343566294731659143767517891419785381944445040886276808963097662807304021079619645394530438133315871300737682210967176233687708751173504648313260493696064331243018918703001565532605342709547499371597165815649579608914025111975134905656480799146593924300060393956562522571133182399671439532349673202611155833385502918347961950669749483702750665586428692967745255285229620393115072469229922893363682409582226680901613697194895851446832415880336712509610029340273426440044055300066698243605952837660662445040380134848844801419707400630338035190290973131742083769231663759628878076949949012948875404608621134365902792555830484379027613950607196403354875734244834775289447275521717906874235057668338598685493731804012378055165118406838554110955190483981700493043050549456495733769016730297143974464608025035826366217954076058169638819263255885363084912656689422675749822826980957469922879423347500213558787150430961495780921619546346599165143467400647962000947795236307177216598838555483739341690129100380209426243089569249216982285394763964950727774685536438322557285801575508057991928673769456529460215868340641015333230876613016879923039485354405797396842662632163595901673217240194283122377099457232306556093844433360739939694989343274114586307816749796214764974432970782105053113969657923020272861929003871768235571601290182631226769613910589891475984179851937229406565661908458813797306038669655323273426608061075852205463342201709738884567337286134084059399290833441825656676778844312964654003959935988095698450330734139607447015559798401955223868649802727318749147458108542854628539014363979360807623983373233583058037288839393085862512229758144140022774227976428057626031692541759180133693817618015675803011123298314301753035670808530385586759795826700064502669964727512461015836334643397767123932373961336573710771256882938813926828971951921420381368649284295708551078330179443233991857395745981611296749793175421775727970656231528232620004188802471606051583607387188121917929630867787667214007160367649189874557774391946561424144257061749634704803651661589574665558953328029925249512962173760860529825073419704025191781387845028017052807641943759311449299949400047764255826467372307078635705565568190055962025520942189170569607903293939291304630616060299202294635715889799587654453123495809577048617809769737341838787712194940026906327089770263415837859584575688650345278237388745016745950948959459492926936768677059486910678772890076480198450458512923294603881779577706802247130316746124771977019426363760499721643111454624828810302481157185400745780154790100917795861026305819210995194049653839257379247476368707667581740597552036298714910262246033090102012378236875901388420371161111560338620959674207717416901489100236410479734766808047355159647671259635881076545492192538374914999824361440343425093384193945013815029144196376045494004086084866562647098164250721892851528338107533369367521963886472639385469577193745501227864725582066282454263993548546427740758756253764340908470871542832432104094481996731754118650183917676833962786386254348991282305561303308002531495863305008094315818028154810217190722313570734959892487053705964617423555026767875710024207317979980329679391605530366101436949816279834453893355848589053857187694841879967169892517369858698190709934238161825789258608521441596403338146906749576683131908603949018776496475700181488357272270043899573164319954557650956647748677855925925471672523272186119545587573031344682435737171701041222644031989230851285580680217607278716802025515441771644411076457288402698155963036122796167460532916300123610253959028113070994064001896550019647857487487729162554883057683829254027222108683916751397681433344990158739000670495314789718442118751445260561109774730745660024650489986525616617907217929760241182642793194627251492245830664749287943401253361169172719245989472683430681146908606632183506721702994884822796070199249149212276836787703579465420426118119716005043698448599345576709773494928244081254022028512077054527658818819215278190439464612676693009226989962716845295048353855334628597271873061459488681390766831470216524700155549732296323224022349724300836447560412260593504205185963027134577515655239249353389250584579482613645973221356351182694618489195961190128413554531695047856042082905602414552835126595055246559681845415185961680955542962605174241047331957855649029796217502110324935847314396658371645611379873788760874267459732050695755128311049822696108578078291689455386974923989418352665139419904608691442945808303930825684950011378257178197233992177388891801750904956856070304671779970001622217160042993574836633115142264454528685429901144907023135821091686626545914638553549955139044422918198126115110761019155715291777797540064675355847245088046598089509092551367901418226977837041996639428331763429433344127855917580091987827147516927850811160533830704819884249356170240234724943543020978115570253292964387347238306126478907318846009337635218447680800522678831801269175956266236527581494115859564727517381697508643559360287689408014589161029654121565653234105315415786143264716071285373224365797997677790882009707951749432491901547217806822932982370861349613017947011244904054927454619485587825268359027447491066447223686586320391411247761165859643128338034768005794126468150598131946665674244924633842492668794475906169456595380559820659737005998289708887251697045430709696332618325582495158290209824606981973466142096010732794364442346638369033953657897513427707425675801884130337714579389594218744170880332230150913385429116306144149253016767845381010086131013598445144518855960889296785153451612640097155214744727461775639579184634848635943928998021441929724825675866504868997543309813121626289796497812432155056139301269158431115899370181626408070104912806951930123472691606730663195627194476851440223469980110043528204350393711721142631202107726970424888352890481332322125535910488377373347211242552619072654181528700713709705977346029460180031322613492492049365801521530542297447774125382691183696571790853747892122011688715614749670266931029166904669330808020936249112376383865571067579424418444106880932498754688932888390716715375412072922372963498242325692400604922007480441290632175073325667909786595120348294018746342096425634078258969378957585687786067880011858731260579851713045431504626096767322551916547357953280237160112205544016121194300315561325047673779656793287424984509303839504729812599445998163917208878529494888521105157844904992030848409775219688298685266226212422679382670515635085042370241705330426186139409918050743999602635303005900329108985884310189912912553353372651291539382797447353184600928893946042269186286546012104880737122683054292370316257390334243441252580559844305097143045823376009889495968435059579014373540978418375827477384963578095537344449610663395819757834842370807483971661656252286620255375009425339491013072347504278131448545256711461858740138155879294268593248673303904344469211379631413447181698641459135238436307987441035298879055370086456638010429114834209638729293110423184055425861254833419665985649224403006677095011712944590500252973620804371319577241648705212057409295288687341132125355131781990166545913814531824209294788714460703887460808376592136494799848754049782473699462974548728941088463477181798235263540874922279879625235857648842834249784888420044345200983967554396038751216636330524866065759348712146632023890934377092310041892304616889225287629354617510186157491817595433429778628869997256014073505337656565090635784719724763394075725221096709568046634360381702650658383437420421228900273546711820095832227463540560086535720973513817704373309776748022975240291093369618097338893827501054421767746924748267925169241792912557353670704881491796002992883635672383934591714486739274814118335968831455579742020717951519095686855295570144462756516422346825409177038463366347035555517617555861537346230338047209220077631351097071899148005417372815315725588690246891791663632813447077614005410491375267491548110207846734211270161676081056543143906404447163750106883527384566793475578596350573267734155933087221700066409608151634725115405933093349048617092921533043544363895381458736097883664087964167212980495980180925174851631697842449910696264111353798145495956134502722568785805821726432541052102595156488664978741503490952749370956582569552429875468845254526310002661199900972420639096972743694310169993580939516525634955547140246467570777658671929228854165692039936161956693223690551894266864334568295263890341239876021330546946309895299598118196136098677192792024890700028034690199869866770733006398265950737794982762403771145077549291417957881978873113685773657760556382712413171426984849985806669592426363662645237164124216414138238866109474307554320989435144259651674392331670836213087384063592592312195940568728305392954613645559596814360126853838246060850574470632262484125167123562810760563263015323954639718570383686908757929861777610561182106064301851556713407115191607623720680713500356829015094398455508543240525002860301946536585685275310244559086121177708834003850853570557061374702499963810459430729047570358011352455556947486523238181801745207070386382357567755534328156398940308802593573029826745984444639109075042318071639639772743324940842543182263306724701313477387705071879122109952291033155608185600264888079431031235790363732424618542630052701783428853071597630254039356627467156582591482896796783516297081003591537845158603596582128770020967440145604662866574827910176136386434076830175066629344013146959073006883907062328103303542091593184405107427743367442434034875574479958222614544963229186935340667565671790293718818253189033556858517009526631477813993255629925511564842397526235625733427399444718493411844264177707300740707099088430957670350009846025301297933100964725761835383765652154630569757729556432246626158951704283062547913261019370734955001181357673027393203621983525284979977534934425216874944240333716717190225500335549681439917920851759773608213516581044755900340288354891550768799856232549135109735909336281989114203412886925929998788411900565918185231643241670826952923210096910151684366540934174294067363181528882807979509075496791537624270017219821629962909519232428376775222977118177565280784305441519815518287705894997319731394120163284788967304294782969807645582370212713009017760204413099887666074302562790434633038084309402041086287294092653296385869073951377675107917970457782910322732551952877249083904945983460191601220821192031058560206472073736921682963891802409993343497863260625467451587905019324319282991387726762256161656813617693122580627934399353638498492562487568048441353413784391069093852870201585534733045554095238990285623590877288890911139788960478373182487068808913515862002328172779035006182939743942107506954452248653708051989923806829971745914819233092782028574409017663857072270589006489681335083970325744080590526169815148774496920182790761417068553825786423584528913556635740777304045027288714886279286534156272173076413898746818815162887822815735855150330928474900500372631179241297797756523453397603179407134844961568807359400803840866654390709337816454556266137223539971665019920698971592253139629375875332625417334059074171462827205912624581037574223474871558937426076521415106659667288126407738610765668396811421714330531143321632094162587483999541329015531132473932950631207646139167193241986904391795587877497603753376732981729382475525679604409851835237633174195645642512500528290607463242288681407440154183986478819170046128300276003333758249789797220479976549712557535103907213593098122241388084323237674166870881951644486738033921372962809183223649760087494823468028413956550592272888610910575621322580806286894128409164669020562844916829399772932306417590157723056706970970292488976096546463379222671633918088733353481442914846748686270463495572251499026774151547098221961932039009870012286346689332867520578319790900106669090846511724246338215838463989367277459929953509772359539799670389608358975218287996737483309140110206252796789498611773863571071209491055769681930590397143591987304754235196960889572402552662867782224883137474874703646246480801118713671747971580879859197687749109747739217117376916327650339088164008157703098288471941854985283999101353226976593577817834464992036293376680963633300703650163528570730116965748058856462066083615742071091469294770125322846850054375062669207183018150421792147197795337186054939179245130587985837578833458799712795809332897638003297225294775278241983424841556503566503924272820374371410971628330153011085925748764899365289606317105074937085810540894100295543569341985618921374553833393141542307528079751042765217515467367142911296544279788946234706722415477131692329164854029745841025429818579591700051245350509617768602798197114148095584154249317684382505057344137221006455576713348315608655525185438466633808838087442651573293881413474955917716172389444443258077908920662725169241910218660059003768658255461520150478107498203242209053139282399992987090089313144680333279830504991099911572994038013441841430273437954254992235902085291571950848844650312061860420503119390787323845574809045186641962426617806443402873020278290782131938214058018311175287373322009707174167279966009199658726408813415921572941493272998999512697112216299318709292024157745610262944495575046106158713144425791709138010585963136885113108901782891927948379692364662375207161054637086279048547044170168607721588757418296760543604589278677695342436585408987216579514779699721882257252258304080202218546276262658248514245068817123037954379517265716688522232325365837315373627238524282940080407504018317524441534657900804925300222897250667693337310543605421900630584974869895466765771330131758179089136021944084616718246275920011052728126413297307093839395872834808223422286240888270179202651373929813674796268498468034393827882173731209990330673296366356175003416716978246109381216553293943967546292010676428259057904636362971362291335141067641082602536992688773267542597162938985669432702733551908401631428919961635207059407550441906149967165196379585284153829255187434191395775083840351238793671931024596858472463527836848198945414388580100045880619585125554753158238517507401698867763837180832815348047769211002533293868706850495499350039417904618490670286935703159780536470771275417800593630025748530095508729159832633754108790586267207669064102579286076186355701798963965090914654138104064936394431443289622129809093522732226133068065174878276366174034214130142676655817705370835441876254743316836081532803773863767155762025190944030656886601774392642607256295177674204714111907375940908433819734386907953582523204774563950854274858984058287989710835694968917703386543702898686685195932171059530786710339015603894628114695126151667175128536809969392646477157362664718162360709343728170150915146407285863143875943287430769429676137256977798228212195304176550848672438992534214086307177843459266590418674540097729852505751087558266485985182420915543880074872173835775877896887921150986089355279329237614911822702259876420558419473485837624842197996208430589823122591139765571795385905932332460690584237600184038589244548048210767387687374464045270750682005180339588655453444604655900283037235791730220755126596331383843887356115663871077106544120694555393674604457278946456133100517883211815008399218106944206950131837319510016093201820836728220730071170455548952196374471774002567434409285498012424372189224747676468020581253303122732341575345732076364781465009618768405016661137034974380765548178925772909441757439010026347269484214004902671157776345081594554363625907232945243865933706116953034626284125513202004261941796263880591910827932087921801164219135848135420980909673334376655056301090926321853539741699889392540323951502223031637592175948838120408841746890175248152856161982630792730255131210435157146097245154084102601541592254609638053730206901710346392284665113553017240297438673555667007191375652833838590467916038911218485465001721214853546841114839396809761894449423505352442104921157355872975765719521284002702159629304589502164307126119903204511492537880879460288618923902461353288610228242936025200264656326787762461357050111429666255804915752855924427438934234047405699929833540284279813796905414203746700846850361904659733593246740870124432235961198177660169197628116292311699605658072327491212247287162191970590867753736926598267155347925716690402597583395790696388275093800056689123964184544567767693866427747352440640522477754450202542875913306625447753763344054085055095909882399886693877897681688395410634814119935948805621054589356967484020480483322671717246918863481253301235321415381947396161483289484874068729921628342863518896457568713832773396784791473212571402771650236064739627199344916587056735661714477705482789215529581960585347453748918523689804825933445280774148233785688956568991909630276764120537345068151980843565798410950010965350665595853747739708592240874077511968127471702512223824444114325350525564534225645904873984684879463852989735835288137199445497294948539786919847914473006678944223184863595807953913712112901084993969162160900436647950146953195343438853117612494976372986812330810976421102043057756302820704935941978002880952706509790968087658672062610069563053754369753635349774350653322433673988920032373043353382276100608161738873549940850166524305625665549173455272775255272436024126548881516456381165735578272511281497760038565994067097614779421717438749529801046910190205799077316150433787488024614445812206348087358205774375821464452797481759888916577014901384435507736252756934055127192946573199446991243651695081821300175180755273600777477584616911064618968139416291046376470595517203675949446096681476097656838724621187359747375625045202553619861636920396354003900381439137238489717996754762866288447121309375204660686496830671781785237857325749704314061463529352982837532808749649374821406752745077016444478738361573383580775365523380335911854243680102278900846796317117879284122790409330518053661680701527329687992679598658302742921878647699156571731039687491842335892878056765344613952705397216506452288897421778094482533387388312841781776923675320399060000065066489540822609937324864982369873516185049596630986877764849844488462739621980260349366269539331847120660908087582872579808181692767334302691065912414770067985541835781151855116833157849244788786895730424456584566182256110515895243074539582064881655423379276107126777721367132108657744157267265790061104803937622252526601302691538575818179402987225648442498952187132127943988289633710086662108072571574304706928513734759636410603651273110634137219023847615217536122144875959457040004286928613008076206558887570015309115085780431584229848444751910446102021537954572311545107825180017380683509688950409727067277129784582764709030667302936347218512883995359700903214763726930045661422223892266442820079147169741854810526309689378892705115516630731309284464187406701812657922176358194055945266441620978142245600016070699671184973327514077868192727050321021805350364853775091732331267277376172585213576716239247016626139647672223568812342465400921969230218484551237017507931942010212346660083503414293356753429749138288594713080485124480691311521302142649629384012699468078683336766901400108707956099292153240754896434416533981304066166722770862531879953637879662882099799676761413738667514609876605763351739009760054170890338542924479597140297461948054957251166490544465943377806064416374167987046477394025604215500398821172386156451229643740454223898093243398747898645608428977461187215145547154475368160370972208634953955651501894217960251788173765450044325750402789140510163858681651314711708569064371216425275358406390416518299089868077022959321659621854602054304653683083557990805127848156472838640359793345182417423160770177566215715083716756699140326468986096475671185297648701615357024642051382405487172689880228238614326041549679990141685986674311149103008393217923760262365744657854237867834281902416236851744706975031119883127864425516632671555426042152102556999673467251292300379955902795474083454816645638628621161970494423738804652898960491292604142033325105629303501021028664972829079759115206768552642163886956058159896304316327306376068170631462314641540310357310485582018224196225447803712076308291736890080127990132812032118551951356176003363911014925776898570995874142220326938788217682244516358899697061893236318778573068880000614938011429148651924774868578736084044964496896695855629058708805167127432786270505161437469761875994828144456455539768813893914365430076639406317011871445272196994531609848043739208467652140187402027161197771963142030612742593744085693493279981796194946095429788984049238032143234714456644536851900044895453945674275982102710623537228633831422634065955045595018756575745144645357269668782356220072419271403343595069446292222775765311067307716200752666458548661807928508458941501569640612761440552587631142678568921498285117050700158192416481771272864094053797906585874502769759605608244273094580888171909964453149904819035439062023048589113039148381444981114945157631985139396845013000815804723689617857376104516199387617214157197782215763425474353770987160210551495995223115018480337209658289409006647743072489296378897542299345412853023406762774280822311079348027376935990636377355871232925938407950312974545213560151866591570920453370011953418826563373034855587636428474381214320610557121316713563866123110954283700970778054318699694365402499042493321715904829421596825950356734053042485622866228164106941682436959219970720833188001921439962946054112811341722428207761686320672761084414154600461321399828267475607314031657640983716865986002131041130181642502124448322374876174951378421363689495445353665361776656187102762071830945396535491705339639484649829563005554904851512117037191127744326317829216749883686095283126334804868190838069345350736126985060959878384859339801928629483553579156577366110101284021157605536050153412749004316716017121070071865691790793484346334648183763943270283649930260606687185062429987486910161464952812547220108259197289264511422795779895752405240862348717307487371160898234084365017452803644049422100149946461931106551473626206696762107474071243780528371659979536757574199644075114592903662250309833782913697023455513296514108711403201040402022929364565766952988492853963187668652419706543910290810591542903547508768688274369711338650885651702801364951667339588767963556458417850478746743906492420444405148826317836187705428304871020690538873703182276869407407086380772924295964678833952620081170339970621982248341233181995093232335556653118215191399441246985363070295949689906623167484833812524858640747549464949110687384141486158728972553532173258040220585937337128207606532866240854832762654446614560516966692788103613973750594603033721189755259798135629304387580951632550916429108055854813326911324209386498487449532694373587730359842412699644816162639232905607634121591157447224834815235084569927351764143492674353633610132579934915339171451920540764501235875178182220558364262100665710912864277527717376744197711719406324495112091963362757780473056709801584394064907367712191230282753454674676149143561184279965981910915573495568748464432363979032290824410607380451805703330185318268871645901379746162348938386964273773065580569863385763140642714202987296967208322394412473703649989389023804175433015695099430568501895532412272849418671568137536269201569515044486035665965482234711249452730998934195049798378867308952211495287064217198201784584685111642378200230064564058848532382795934277302709755702293372732811587718107172034222710793470317436214320430240498522327799978593353554133981473466102782853056933801840960852558724803285060812812502014761742020833409890158563446255885599675052085318242367018429036837426447709717558972594201549248568651300209983398332517772229287998853689278667634530582314828133017970429409455075389117904835159320152278924919117179221356554064406798246270270967920086733246999527677141980412570409315558188796939476271015587208472261112881586806553798763466386875257612159263221670803383895339664948196602124092819995677387729378648352498848880918190234609408559672642701754300078304084953924835091692569024976412319814362108500883630417497350773014620642944851457740815581452154025731419301962396441519181286455635615778111181706762203563667334950312542120693437024855791103593636931268168176778054183085871797812573317465760630311037387458487527619846502412020387791083596246012790609387285491169015341163228090279108895704139791290621771442341246241469477529929805434177222099082934751256462231163897641774203964021980375925796308168633408459776945377283848346938726307304694260700404378869882596919054092961624535321135328227189201376792400364038566609114764831961894929126281519468425284545235582026095758694375289144614349973581195782747235332998612498125286501291098882374819564554024145124745396317659902944141188838776653497828519645821740038829376401944888824335459054245083543909568214068669830611150471174720482326604587736967415774806094613354843709460740832204124769343724360069877979115405925297627403709233794419529940072252856802078856664750028276539951208075933034547478691197609261183552305613610393520422057310067538319456978260608454994913560231365366351699534561364092670885979975496772752461541955836630332186571153216502482162687734752387129256885629454855328137999763793891480988862942317371348339910249453488128218986024261166070928129301627080989076978097028915671275788077969269011789914940686256482862275189335996571003809709892474257408313690158754858005278779030457582370294877383767058726262444432091863268550254223162161170374391974311852320457697550442587877377119935099436905636274532004349719290039813432760546542226423433290233371484818465025430427638115336622639645463200779385393003843961297016795791394357240672348343532062221256514022888766075290226245348388409986855273832093093924072925620601787751744113097880518607636167031694732711104726215855366854496326342997174595019194471621421272883635538131174948128649894910057866436354278754449295887374624214589827687699068495032440694964767711197529846446971180145847128069597466950911286011415791700414342013894569615873766339616304383766527062943042852051794623365725662952352081987257652750573823205599135861769017104985914660768956320761369875566264124267470253205097480724499227669430214225068746942674432296182205125644260470240525892826183652782775281359767958831652396306619347672374882834731172488212920484366254775760115399475470365793660913160346244104305858528651444548309785437630319544878945835093598131848844963789616991012656382462648620885632485491705503807798217484564968590878800822918257376364521406201730136827683535893568145524342070651597160436525951661133489494842931001022741679635516459076806155530168374105790094498783065205800100296489047074330511479191731902120543397077010941487877976211627253301151154769461936616484121143414524203244238642012612257897776501495314622002045027877993103491103106971181504258019604835748574064416997051492427034043516328765356316742409084641975868639504810474822839456536874620207666240006207552616180366994716175000721803708578501509525905810476814428926817514071297866276887783384355580704363049338518002098407798559448438312143011236964118498474709561940627997391062742958583528836413671035977208849166794993631930474208498905532362735226096859452330053124464263946876264725566624669987746238587587589667543621413961911625513491634112124131627850970070169174055117014254404775412331715304566616480293745472724792774174598935954572793540192938308457613184376321097780994494064715301292836819585325370667030530114221565992646571792916624081306471057860796629981008223998239495742681452417522748050366581973261892072530192744769672024447218042387209495218464147323284017513662287966953098011017909047974014895760183682706083257924342794546553352906170708120834245159008173071886249156859250928296131866342558209567072793371759734094038118634629430161960723386908705614178947541837004534226920848107522156058533462993314869483690518740974278362796607610024261513831385603606461732385332451242970417428783172505497554753532000683638066463773222592320152325444252399977549799138090103608334072981995875949361790582649340602721717226056966505612390234988181367042975839193418793306701485089761177396738530387417295495651381066468025175533533085376047032381958401534233984813659929435031052451465149006462687215620305081128276964115065653542086588300283568607083369682852396828081114271044097566810304071853541538686073381539462896266458586661781583961607617678311577231369648986373302134455789125618783509214276896050687050991859791366250939077734836747747255382018686371570776737597245918218659137500591199480419965705595490476709512219447355299995636239154160554395723866753878643483485905643255069153048367800088449299255957023256021539378836337320191941430858131464797666790218097513835385216071861920798658324471747628694218705747369528998897948521107503053414255097158107735257142702762660613928499423618171814025727806937350333370353506779925569489894195430178433723474250869842799318478784734887267680781033295016000096255777085018639491825145123421859663756196788334306051516266357944038869092309634770206286642817716681104196130934512966841732351223321291422926475485746956097033857021764184603698364524063049519208907988695252928074760526479053628132676244847701339702917697364379672228651811003861841630390320452708761483748334506701386671944771098060692311658968247530337894293626308342390464252630506347150031949843253736391565487143646001179685832752812458038983655431106330852612650053892523354808251415468496108140650367090169680943422110857284311610910837383096632570857751065559473946749409505858802196100586336728343552327872131378483560685779893411512521054453719551286534863358543997709399282147836491304576431318621890356100851071186494668874321860902226126236349547133415249458565304519657723379456113814980117301178025635149457318745372413968995390802822562327576979487730138944049424922062533501186354149221882746337450243964905573116280644210456980507173722944601965214735095081215522435787490339569478261889486330266812549263122254254532429771363035379536281241528957786137217120001375748728275905101301057664703584294855743235325173446480834703987410039346867822521435956554739737864412352000250547850346385087160736826925137691424647388824135404945014033525470911214294867108958758771800922907598794957385105024580132762390284474725362198656457411685112282030743472995179647911214075734738450629782367115434952867260975279303239156360770878682313232807518188263767322155484577011946780108864189655420414505036698235070026592640203252252295678144882946478931553631441477586618985420987602448357385821527415216738765551048102361987713639116468780567761150611883403651650352840881951009479543194654462997450685620453140976142471565825153443918734462370226573704037105833691445921965091237390957705923839823940022746660162025423242744312041170958295050171037174081826459285681346528266074042678785356154161390789408210772882175779750563808359891538615737904477417135384618616369084833983573204864214130211711413833760040848911803428280548031571491459656306071604657512359731184713929024615316916363089714495499843604887938501171083953435835964104058980625457925537164435251911704870968287549353843898939731361671521508417819980006634610565765552718801991089551196259836679885683839374125313758835146897188291821895434961307854218992466743426527178331203676063221686183561657505126041971738854405969936193305240367492010666230189422116477496549680917292764179058489443495840377028421862412968654322086683822810111368301632722526692153121108449580712791628887606313614707485609395449702614129627451434126800141264172600544922706341799835060815710097329849808523508046841223431597843122853429111214607161083923940896483183713645337828190894141159580250476408293653839441100540557789244749230318666253799747852748891041629450982730058631393859939222603991380728109346617129468633366106155475082315491958972709719346226303531238913908365431947346656558581032750650922177610404155258288480976560308986240344263232874203795421634169873323585042464449140830872357782181266819783390206326920110692328073606819347544729317484443474482602988584282177395699568523397864849439873828503608552211585464733057082054490676434365634061958334991557013743775589228292767563011675270017208682041062374765217608530220445916948335993707078202825665017149820155003570708317536815525300963896932230149766371199572490470875432917715809318623129358195419357117867518748806096817083153036475688400725662785188712449568963779716639271006880305079131233626684435257194104089157951415401932076176502833337441469388660331589326557529172216907614322130101551603864075894485592551949483387982065021540399900053866150088441407295852139108552031620613046524379957423235597267584011463955831546665387854926169833044245323648784844764199867172716847330225171463116591140872059269857153213894765165106125956887511884015787881891493755298539040409949791595815039154915737357393631503790889991828593510105623156104692040633398910595191578924151219376867299645143398352615117077813434855375114471320249319476861470149384040936633031948095082503559322409300777529196928978703450819527554814531351198587118314081172518479608012299057961478372581042010013280012489907730604602280682182705628524635906319366505954859051516672137884112882743900291181327628208746357289743060464218558635906353411395159422481823041320924369664173502438564734028097458849968805735351847415529175770098602401366936033423063458699090809897162750428818036817219716830405249165076261487119774610874376208272047356558134699668260672194795115910309171404964425839877889543303474047244985725217399829147171625431795828796893491294993098863774595548435924757687695504396978472062025738609516037674666179205368172016568960404337857134493075176309364905782222979549990754653565465869434612640137452555931481932848474929649955247705806040631296626429489717842812109613476663703055380220454628541762945931101005428916254041931436873429170850063840190861847773619236137903593723680282365869832627916624826911246917002489597654202627542260853573745047415204580556996775495752502181841630136452956200115662674857484630107855435541746425109837225355560194538760514188340034560133240266131755353401569516908711282623387695638464931245105380418044242001017074237899002295664724523808726186916102838821135771966325185958706003965045322870786040432665789062003491075602607913344147781914360108249939423251487342682100566115915417286610981157499595626842583671407481521905827932027819400493032691351852133676866773309453485309750049317692605182037450847088498922759012149653305652958382143395719237323326221417568525545164058203380951419700193531738705939483680890380175675219667487537123828544805486589338101346725264219753769164184283115802542235693920130129785485796832610297656642177249212820232269202982029313897119805683539345202691530533232664980233996262753609094860143080777124379856510877825512938778041461300769643502380673748411857212006935897021316299294696760468782035692968071413021398712082157176851866663436823190933249940565708608225587637641379151978413616274177988278841832493475144323586804175377946135105162762747053094288317671315984419205003352045653295765075009654683631853728939302787355298057005927890943616988178148520400386852881224240265588852354416592342342890664133554461123473473432601762798811223033823196215721864094573443984809876147872316272242054283521517493645952339770400107734029938788976608040505768454341355457334562449574023250359204166659447224934300496000482105068093724120186954243271660349285770936843868887421701425765779571951388586992338684507290547207383877229462364987474989878720064469931573009365090823471049922514358319911161871410420889763419660426820243992301310614082286675997455437776987215242621110722987781842846633232835680296218368097439598856362828820320651040421671721185027834983154925303810327709402451301167153394382950355605411324385272499895286980072247830179521813871489079415848172284752395707716243557729381080376193440095197703154296027393077800777740127474580701878891071155462654817567576607726292325280852889148259568416267052680696982878700298396046305347989201057022334005713260501214320301648248897594498129176774340451659226718166077448211615691718613902596046204453198289670449941545831610947379699251572437812218101401402561249288156496270013658830116836992554170149900091617753600523751182922566677331203169245671323471882586888034260533648981581369936691713546553928902392066603844544865213383865521729276019771546373705901230825607997559306029232434750106714810817618382927799517766807863335858528043361306094300375783515999783479512487257914345915441879681199924259467916726668165002470458592748978396128279184885301148184222483027317013585151534233941127064890135200348393630324686914763062716397112600686628744892866604198709351345645592624027030527367342758472377782097043556775258326396060558237836417225220499976889012484665365664303072211029151079636981461635925649101055307582397248285273082998855121521718252390514467475126692516653695606984683409645574592336247871925707859331446342626258789303693440203389857903336182971221447272598070004448777892542693303472628651359025270411045001851386468231337661040799794902335539631899579078618047624930427415076040810295144250760902868158786558197196640415231610020033042832080994799429743671865614783755109017558434721593582099021574762083000280250643182892083900913809782535234973124645789610553252238140625259295726368483169580059268170872346440234285364759144346565632003117054799184334964247712744599355729641950309788071511773825376944910736651436803171019550299290800103491402211448999571238992893074085027833477781124089331325903520577721110591733304075216753262960638903960931532587560323050673631453883859238424219880955379216883365283841988491498443538595094870610487628300402721946037448166588023231017824416723721778330116998793636833650801649869316313735177782768050725487283757424200004107419714037090259663686553778737850604060506844915729096066765293667524576412449425086477483579005799561578816942381950460312486527946593204310782103407037202870454582694420252683723544468435718815006324832508381038893554995279460205311425113293584571038605741722198263025259014927839015410095325662349746720393393159637450698224181452000317491830500222214556374258270168507983855609816123495445566814782295917772745111726842498350409216127943701502476875212562046602321100824901416792230569960038316594110298398629093086737095740331751541985932282276946355788789890806919283657041149661061957170857248628862809823436464912356010988276401551467656218935472389841503235726738733690916779985889815525186126654506440316800680108180773958246081003849650941090721707706146294476673738908933666985212634405093806345613798057335930035918979743128389592885849851241735551671424723305938293556875196859673480805346244419665942910061554632986316342145438013607602593845243301439956714585122488482271796335662523936547377542572620441534019184104045225808413193376583646522101589205999832957362908008607854962999332161594364827778051533252891214258820550702563990270455366935074800856708366591009739645465930615432064183080177287629851671228992657141554763960743970469364349363539058828419525362888674585229084598169615295779754978632020927320222716636001269193504436921218640205110019567163398027111771924096225468083602771507916144724780874898352084844787653192552324967589899791277549780951272307119549449929295454921038158340649217233148837793315370655798483502069171494088353808006197669996833236232982601787862228115702382079162900771018113808250383210840290743250354288970458762493070776999627104783363581841651999582380335854863236214231319277314283074407111147545170369062589719662702387400491073257280966992229666091462981644867560601156526437361128156842558848556075094816617882294680906946800073687486853906558841000401267313320174059864403601531039574472451926188848993779294678649690556800305514183011163441074477943368012976940453640055947789408320170383768718873594686825136190998817726974240230606364707179254147105764610982133923989398160664263322183817207946832926855709392645479925424416234270374596174137066262956931903848127952353667014159517747931761090347038493179225680796937114016336093843728948356917414478992368633498768908742594119837686200116130266253132108294041329764513223105481779955776084434929371754492988185530307833166058653731950777973233767762141916940997606362498655851105002561297680560599100953354684210298077377584907615847355012905093036403709888420854915354600874149810961985210772965748813878647786945217572030508124186004563856697357425641298848132365750181573689246213545493438849823681837361741995645297971091790469204420506544373432841556659660253282745133428472560122337147518432156818183845897994273533580884553246541642998102803086442017748424479656370927460696902601363058565922245307820187005738393136293400494182186079751909923295880659534235882079266215925094904994636050543012267568197488145122267179251306098959626868267759009066632428159742642562651736767994467816922645028199335336370547053972980793816118266445680562948004394477220300740036314923146089236775710020738543555741260772154934172086103463388243746989410779178459974147772344439885855823525558768562090541388687464868936330203064037271648058107212829319561895884633169107813438603661136939193035656710293155273208410045000942446689690660340857229393549647835367419240259224610006062987813549925573962672137903382843753674344235731715046127390413441687618161121917797788427781728814580469464988565914846102199421260963101633940399325058437032090475257060872923726289283701644435038327079829800128224560885651180742532091464319390546372112346731778834153055680059816505409019442851305163697307167193824959622456063055075445088628275954146077935203580897534062758984980904403658174914877554895557530349008050656709432901941837622671150708556273301292720420056544193878842437338026125530885071914474030234961679970290184886972821498138784152579277941665548099013282578849157718929982312265592214545771882187084148052915213127489467310459913251078656315197627431315812311946585000598272053410365528599282760488989776339998095044780940474754336536434020242715542106643553626452019982666174782470703611079188511742988159868745878059255556504618285627451777555557793277708522073013064678152011543324576427304065292193979061373393456394780612801744253507525435959257414511812772076691065904706922597687336218495103746004086437222391140523933837921152869818939223429628965516886491206317660287666941172964223904319238369350267854805631293520780905731089126451998937279927307375053204538480508317528659075249499180979740263184914409820581467980439464329226154972196899318999837870450412922374811705372646254183194558018571441423827385382797479709862419631526225710285191544539686168678067989997301668258006156751276993582276852799877582776136671733862595170942253827825108423270501562367958565894294057152427106278211871450194758645595230375012955584221000182267308979978750666625502452085023543488712925155933627585300410744432876806664900731476678451075972099166467380968018402140375444168324347929730912165331515918050194316150376599900388348391173572482348229482035266924112959978953440230741468152294973717728722742996915603765794628853818804995319180257655843348778345533363467354901671787253307684630304208209656240466242477748660581738427998430207445012635681764378644344072104496342835985736212071358021092162209240251456924415971951077229169629011388595932975010130872496707059661548930169074119017435473278952528856933859544224093226154323244213141555746924368346889288622410681700164888156505392800367124677227100675441922488461026560522247226961565614635711677518476954375158788499136480682877026264111468852514217558725392325798972143889215094876678755935956326908983303606624325425662896665424171431287013243838350282152845009120838315155269927330282172069244028643565164771527823964198866813818697650508874465590413881539713016384546946671063414933873272301174909631246306723095353023098187986880790267594109083369821326929581096311532482172596757690256460254968234960015454760403336285114937348839236930785923778449179335741104585760969859960040118745258222794569242732998324995991480070983303470829187980601056061483590148091720661272678721642595226635187614787869184375574801441985590457661545133158966596295395899355185544400794948046840226282815478568903823977569917245782375386231258428483087201236621002317518989847920521472515208139522172838967703474010989354249911643168125415184515082721193283736764205171565617092050525327802967440932889494861185270988139473422305029655770066639840353526532975228703191292519137708835893361912225760686604816548373177275177381932903813322625903677070117328589208735802521689229493668743360758145784001892474579232205480433251104468984543338966318905618499130530441834059315452973459574590082880700781649591347820012725697854624306869690178701317096454981701990153784364507269123729253270936092845115616620864740620747028553633754625687725182632239163127687283549271233463935181259773035279652319029557455420919599850029102326295359074510918438037338176675762807542945418396030151602104318630183986703210903105313315681193336241996705467207525905275162297410974779798276661114851428519948519475961117317166405620219756914384726061036018678229244379374816252513068677741335383688762837487409053263242994429970539491372320813223307766916879594721837953658078669635907066105008445339666181426331704870427055321242195046185624362299621781978779193302437830291597291919648117373992981289889224053109247556406674080299598323353245119513023259000838360424132706817665791156549588856224191383643652641085078880027388190127224079402233210097785049272374484003924197198318752382556979686368849881683528295353361553019700718772520743442246142055993477431179974586703154618866898352519565855325608626690029728104931754819961225143342643585009341183727616058518322698263380812520684037181534689837980881344034973979706538569685658389557084504403750467818973037332392933358371766110631341947385762158301180866393884801363346145727341011378634686492692405983816235245574222129250342340140381516114280462519326672013742463383994843595825222270594492221554950653517615414889765944503435092773450393297847434942097283596758046047947437616325854747645983550313191516767168226766972666958371569561168318922421913117789345236101233223101994583671735108044131051316435870871106448035141931118539737550609058441408366450814007985646903900604381860280450056284635912663798808652062951796755799800753958860702340875116631556569266613922835472644442394741607670521194832090488112590528482443732018859468123516789433237253754204518684206683925686141586919365392516540445637671635872758611136481505818031284715171489408462911944754500000053027127439882455369656665011970552363191443202814832564295112913402786086349451220055535483004293174623234134279604092012557523038257230682389750596942101083164307848897335094300670843958605908223015400232512651383351250776855803890824147929302748015701310111530990479303735319868438790353815613205658101608981101237039851915825343893679158372829299601097736988246055462640567921253699254012712750129872991204617475810537866570279210374645501570187985860333412391595476066225536718744312696316646794185760139852987811194757457302569919121934073919410310394691378984237301389778720837661059382652123546093950733391764701340375802809462941737501632957058202904562477768258354758442474705428131231308830845301746466336611722145131281756416711327141917050768344613583801312333105485796733534097811824081144188867044101755634011745143452072328942619457736388941687821063067123242462274199588842384849927545037070599657431214851469938172617646500719952608492751054038671348339568636910556140317131347403825757587747785267679640647333788022710416212441090092260286530001252066961907785576976511007746133097999248841080626528171197235033976753952489136863939219736176219688460050689597865429848801624730271021360630745759143806335739363486818249617646405676547466004062630310663970944052471313982598287181294879183051225132836147039264586285076201584212878407541778158720196580465082420811723427350295046361449278675498674103116867061024095924238840125514394795048858406911555662900386012952259167755873759388008943013503100037810960190136850972159770512668633725682611929573908413946027556471598178240420563101506087570826014151339941075785872254098603578238625381717691941621228561771275693300858193846315653182527072335538060493439762035998497223298922605167767248851416921056692442120150601093690314564494832166958454085454496445766693411654543057595806423769717638998062007245395376784798336730403987908790640070311166938416799409166951103101697590245235851428262443510733830431869754367574745938758699916586775883557936041561091889270893788635376944148841911263756578230252556267242342258921696175430539856859163416903812477319763200276449944652146061287383621138752113122250623575973470029940262967724344343434209713545624161834747648039828281879187527332748470279386333384130544263646656339924234864511674685603677991724856529511817814853959413261864770629852773952514618652560028286712654991288334438774069069808253513625308417860842675245346668086757409096675949253487809845507969103681144544263646222369397668510494990684284603229164980893415803378206693598523173960580162707955054601928008975532491099082084339647140403766050031977893551051570861852743258507961137259904034168849396322587864426401757076959207234890550258676738115641667584395235097975264489879149208027544460073538729400628760064418897285944699744861884294493043968694895482636516788414786516815098651202174377842879377295218120307419065309309255633410444097407328289078027383937295089811920554019513166271169448897000515753385664778956415453669054280083500657003417758360034811294483139171839521736098961282638711079091955024849910182425462433310462536873096839200255656496231008961996156854556102872461524597044467699908706610698565472820435898211222935666074050183268623146070475891411097490551470828970814190237809995978960111634995869962725322070129241904113965058082097680867337602802519751800042696459030416317597252654445915877831071318828095811116198290077323671138651249578182152926569849951332361647390882817408347525724201423413818366667536381631150328050271611208525482915879407659506366768864034903594486804729817994041663951556553869885814527722213243289639812250033444868601757845139953905188949563665371051819636785292641822701200535713307109204000616779776014118105810810466005203054090223976480395113214318691666451766290012734623920868312679367941633472501236965473634369585414644086351359769644087411129639948938378720379126337254886154795826582850848189257539624761595643013230684565100539333881640871870504140180075839228550314699083903662958806251696154648353348945085130714929953506012292952075025687676554469950410158059656222100052080133465007226339766689216962465328061908121151654183328497529393364602016513377211600422035008765382562230440840102251356980009673485133641268976587605190392174043621668282270699615690306034527355385991543088765141172452583477825590845888981244484768260431002813730138214810892296198575005621798113414826463961636260267155396689401887469292173505517753336525005465863475572113974354299408796826724564599738217946642870495575362862394022142578338265267805213795046143292236104816728426125077648751500840849647517006558632648035044507854560661107230402168747028829996952936648889020260023029031529583649543991536554760802690678336344246268425778305339068367331804354873754919379447302796729733299959811656455689702092097922852414705256284971759389347596010461401095314663558869393575139206415324546891111536750699995576654867613106199169473458530808097278473608463304129791440070855670421752381254458001603782259048070356983689405418169700263199026779281922637537786582060046938563902730347453387631842960646426105663102429826231403494300598497507337850966300909323889141042248246590433118373699222125919467218174142573911153431632269154285331189799728179478591334757859910208503385481277583808316352007965190269176652487826239316744503581369673002121324956945089090888871329435974271892543120861568278826152045169363045028281486996231762293490179197497814525030700047702322709450515482705057722013682765007587132484968191504567826428999093094809961650610258370656063617286144619611776290231026411215986413557339519244460647655512123860082262839875620792657295664003603943443192664133683039983324592027282189903198991700249584755199185868044998247056056571072886307117574716252762527175186162297848115880715762765512367487571958802892558750490459769805705632629983860676267524172121281774102927636477098792776277811661276599489028949094226895382438029806253900659096670421152209323474991330674139305306157448134720581637865574068837092675533328038993508261177508366380651998090638973552362734867527351815090179540000834416600169439326879240506726697947642749237305434362246889285330539317807349658265903290784629162665254199446836083667163484648986589256625627993969910741281649916973907164708826452951832806778137468519871679474306074777714783570824728763938885846266507264174350471419853341934643861578955661992953855002026792900230489556058092088604925646953181644094482428779271242093080308613485902185481736396976335893494547557954533514673424955313224956808786695331210239259783099081350446626359647411167912422659706119252227905726082655745837468271021250617155417864355222215690895359400725001567373749516740680503720181859106624896292094257919292247943770350760835529960849336425967113700066272465196406671232054926924487022572549906067493433543391149988451870954868421710237611015136190110475257749333750353956133874873983596993350411953029705087993962996846092006086750361743975199421681569685736051912616034180010590053625327725921438404649705730441879002009594932608699775526474913909819788975614036541819109870962026101603642123379225694327474754368090052293094123921536190736409843405377925597795302624896875651753487851091341881352883653214944127306237349749719893316778788799254558946361371103208087029755045237006737131571352920199455502204675198054961260665696783025031498259920720971392338379833370741344982046810848817102958237502403606600222706516653316346276896685189854811651254912904958684099557784244119918968522798430356983360985985073364643346481052594769491785569393984586181132837386517693107401068234841340202655549779663963687817833333964533145865353356358440407273597318245310352513621890019865800113091377478790671740292064806906989811542991399247560061165787118474200163730849835480437958927054120356968169936057859371906049687941905750549416044942617476190529702891425224366285235281309050343613835695287478786028388519115844128829573485421004433530971017807524926833089019605259053929957059795860231303801003216797379808298007222484677548016683416687605056817325821054666491852603196321614809498283687758822650582028189853050520972080440540157435020764350245023944012384023811307707875138247703791264441744929737852251881438167782768262942228762125403179452121201664929652021784736614351413570479965627854405583749190837421689964928860894465555132762242466771896770794180952023580371242156517969176933072538805174076386363134524798633799525275853711216287105565377989505320681782186491312784632390011340947481846698010380780555442385167986014717704421701869353291238913399535293496916601908105470967958088880117655211979500321508802112085073108145760144471519306823417895253939296005962125692043863455697135800690400412078372575000300119562617452597484246118320430777311435981962677409844381454937827450117248538829770232804661732400129505586395402475252859581660779255035501463873974700628441389965261916922315347119151881488739996133946269332155306032771899063249407546363590385635211888336620184928967688180107294900213659115222553840556212527434965542726146096563614533466351308802811434400452225043977096954604725912328243474849520291147158480274157518508170539703906725688300651158182359278533456957065763258408301246357824531333566030125551703858869877145456791927857117477077087543028809847286809420254612411122902699511974510857005575048860800541460958139392725569905416988970828790727674532025133260638101924398253422270441524508372469653939763110647078998535463937959859000800882232656438757336855427654731714733353094834237931465525344333092558723538447474145234975414575323765047776288428501718383339271745745368346576683544947671108391454935154661575666307717802571891114793690388614682756520002642831898759123608721202245207782751701087497181583611036253408357319714834367145233999017125430640655364135988472635832561101609005419279767203152127595807357926528562144326675923015460697197492837793041257076990824134827087693061204320681002234972808262501053815006949936505851523010803857244166502994347640655408053485178289941101265450592763841296067120687164760916805142288218630017276332273229194989263900123894652208502565080373766560659411090007694090668593537362506123373463633381043934967971953846864152614374137061703298598988002492517517008914666640425080670855760045607442108789259030484157169297038360022248019073830000448490743789241939785116565090265028108116816305959717807805787332068132403549678508877124151632923627548836211355986971713803835594121089879889776100564929769865716295120990500659333173062374901624032106633398670793750580144072505445847198322745400238597310547631215446299617029002112943743400969644198269291895005960514141329246148187138809013234664302461224510809208081157139953619125752598680607542550350555687829497142582809964323211016653085307073646693249346512416839304522751403486621254824664428567546608912712599303082639077602140509287454738193728346390050328087185229769799891144241666955012564577531063278429436486304311161319647286516028064720284847403977906821226978080521967244753070575849814058151476085947130373715831765424615681443543982948733850645729876708640595785896204682383109427283347852547478057559559444754139317279372986110061694006061294076138383702080820877474660923129863593921018094932980570098232099288183367661311878252516746890776662735767708225054368373699765242791301520070000444226254726978348857293016227854941381395452404181737891496495680393298180135448169838108508647366235626815150236178009590034590775744454024217641532926361898204394781745316927540032181196084539385481482914041250261934302733329395503062662178716185207031972132839452620031140981869490703901610273162557405779947722356606900140475345442500240582719241198911851755317938219230854937343872695325544493824835405504677276190725859167140812753189982439908989556825671885727476158084003767514277219127288063905581173875715930426649317794225538691685170452854934755477619060443317374630712330898991143841709256036474811585705675012507247281719156735903443559330999513336913208598467734275062587079801461190243599801255608594417656705104223115551653094310322701384779868572311958986098389374713438658484011762799426490218852894676503591516011231556585829155732476308441979712073025319597717732821677536182243795189296359469964997744620455109873115024583787525074458678452099098640212442112292160530364496188041132309206471195754679437699745147974011662711610455170446294065566722710018758405373907990896198871660595052890710315220821116391901212693395571580908488379441429493870614450683323217152738274410787000710795842378698709463148443704614916313372113596647441684573846314415688692122972994412085945681428856887468515340020622262925643562343925184840380261525923717058245646765156141856542619126430968726872113428106445893172762776731085733300667959474605642965557788370705461745176175129716667736542934058511952550275378258241247028354785680458079686297810732676550199710921524404439654274821875524785256117105773750972847686533412941727635823787968889605233333732842221486298627235728123901139362526124708064590467090017225155677323199291290461217938577596421465731844003888519107677243970658845455604563965497382577528469116655521073131849074099099542326225647225463647659008740591074099360439530169702205284306663450209053939616999653964379997872801467653501935356184771395064364940558837219167857220019658554965495772539397928142214469139606183326429051718885424285245616700962981041597673739553900118274666729861061406355721513248970761813332103537458353859695107342909179073938555603997864448840713725116484599999531350411141893216029213151638485768285371963901662885044629279836657776294980236038158350264221190595268197739759222069474157466459011724512788558368261355958662697093953873407076029799809822228187725303600260607768337927437880603767476067507000615193996757827453616294703824765489068668437776999606443869467299424135316783025965739180226289836156137008069884158467512416682550869038062147625836283912355681253040793836951765059348914512580197148698521268961081440819732634099052022266222999466634924515643368801347551044572201306604764790489150690964102875386527638729358580459394029963067215336632029776154278032652959074130147398395102771832809892124000611647489635780031865156138623951058960804448800120603197489283210888690525036053943675016985698628493172125969880255687910058291875152539691042032180746932387518212740103165067198575340824692969589382422470288377514035015976572241265158597106689301555226239517750885892789027957265157757100460170735275946054359977282994806431217068609493411624318289827426330385821839282872417181947545618537658204869938411898528360432626339034636216630871784555824243614466550287138068675436121274747458395804279276120624156016449621612517734778687813942649112804760151631412741355455097992195404745338845585889685779764618464399067120614867053858351794723341931113688270353492810372251970527311950831957928076185143416878643671016220007624768807636587774173354877018419196354273813245764215346116060164608170380209245993357660263467495227616030323659826373375119808181958551880172703536815062244886872902157395847580237313558337844570511588853220535877923151171387104185390695751926070373953309912592855328194790200462139163560833106183233322826107413589362302832451312484967904790708146563812295437003124471372871948556928625352543097969515339559560177796384972787977923359458884418465496790704323422007365072002278601770461365153756330493948562407781819926641278200293752473401694789041857778769792069064956410348137687652264498157325280314295560662614136064012364781828703108584647985948328517296121422935650638494465334960779903132607660804371281441588208182481510390564972613299432520695375658418734807138471705988949440663637216318699418871381225548748173902194313963482855311712309676509790822622994528535842376197280191531144707327691675045668434819896535612917450659925068916892413600539106285537895100479309221184133174156650995456326810717859296927023396163852209386599638265815215134247485214795515922961814888839604501762562518633229486611235707874041422422784094695899669260094021979497991433837082249200889609214327739469463560055238056014860292507314506246988271864461574148392566838116312575484293173781971196315320146448776904893529970980430398156644762813694697860396158987929095087486564109346113093166222680319430893209890337482874958879698353989585708603072428135718138719900148138921772788330716920020105975956380621913185645287322884699112007682806228191965927801895402047013311837919594298127292477346506392704261860194372636541848165413040683015976976486255740443557566866986341282957213004614412038313714617614721041382635481434925775587875182518900001765977915001326875963622581386571870764571726735773350155704081461666561401637978591175208073632882479130155294887335638061317807064831159452328553650866147659206824055241285976452362588705648338088766381481942835870013206737629378630172654585013294635367339033600818993951554483230112581742685893601400605198891998284939972476125252590622229780118993082951123494513490457617697744235306880146889744839060001008026512448319538897616872482219389388072800484055804808141845793818494629767042424399639016542561595485956961982475076177213559064801831534364641697137241451273869378929166370387884266886185071831496297469460361852935946116025999913718204136360965831090985353852445074907954283435620079360953510952843037977119313064943703875026312534293578166688584179607768103266862122696471008758062317693200323503201009162367315471658509007950373722070363540286609959816472061457089614967558540175093163871045627460206147097385082749038127750186340054103880644427526288575397298188643676936381833604597733324028917032717458169076050193161696858175112631009033710386693661212158720360958285311002500759738349729489168474280219598677041155399361554200649151657987408636500101150371765339639995029316478978005011891926673599262881167175597711282333876640769582061488876487578956055678103483076009845063145197923879464245648930299421713466661185260202931104084610253642125531484679742778265276157617727181156695868639324873630801993228021782122161974823497799428806931151224783748263707898048499525615616194658161864265352888641015220475394525771743008089575295345760887288064574616854559499680300492637876622256376009779136403841562089163717325357571388485532516023566315597581666499502337961727248959520812054298096817864640022394188309844978908910109436530928276633646589445595390104771117846872418592245570595108755207444668679177697988277211725247306987962346207463891501563780920841576711819958171481414701750147254040429684829713731221773013170002534187188010641482274982682018288932040641953114924630706368404566036385452784660620514899700592840182579013307696834695081010365456880819693365072961597707679209495144844404772013735237462747183103555817110839104898665124382654044563334093820609424524732582963751961576795293928648315653582426351189516708197467716295125477995655840659162254737999072569461176457229242224212269902257085376841882106147044071231534761418877268362978651237199559164602875673621003254347354275715414518756890799635832432396918107884765120005099149933879298829981155752069010520982347219597726814028009518359396891318277395313386925386609895844448651093051768200090381441337857203355262223621906279426985989197292979024738321953416784708707311835408774747237169137559838729396366502774899709555424929268445891285203411646048407556205064580163228453031629620884161038364435350619985331352116617790445789833774974112796110239483627111241466872983787338671247738946957219343409349989019081566682129162694107665261916534921138057913037908115710651378693176743857420219646020678479041694976419704332457726805435757452591751908023041378610146461024533749695772354042682464246983763107992102525651663240153171897518063347855813905838943705354609534230298914543763782618535743392527312591297542092331539493908187035193261152291848084546562813205122086534732759113280325099722313031549582672010594954723979503892567408628305357575923384247098572100154268009974910656911814569001689408881874456119957135565655954533210530022532708989059424146154435335842359600514407977264050044036220746025302580862139902048002668003585109995493409811838289635235097935757746843246925619775297326199227093446627595049136617554214741311423140504414318564177883657273681219211994457863319756132118080025420504063045958987589074868233222390928139798321087324899393596265369603921814091273364808294529424635501092985676597959462937898443192390378606702826223651584084112475192069443499831226217770382518101656937996277291007119609790813360339574756074856839277835312019832069035867561067337786654385379921498855393083912111418745095326755205509829690626173603899184201362346753135410403717367964395304929335402998635338551110632203523418565448682438091381319902572311583907972703243539176475579871117446866353511956273471739252783382304059857830701162889529906294564083043830276457005185210854311445991559557649249542923449048627950906736577140659668724124237348955940575938214598592313643688104632519228646105506181067532715535174513899323151753987531405400027338897302511787273607395798883745251896566849438101269817479318561745845580572407822171732026040556346480382380835024621163645375082751050392279453718944458058672409783309134352536706445466798583653490256830003597240506851901728744603947274853386502577444084916923378075445298647698716779232460619894894999943475519248689964265706396468595498704306012369170908841100807998496730228630198498722631539810018049702465909242113093207695398291302443495322446719955954746617257891298154739135425694345862524088691636817423694830872646482933511633414556332991201933750444147212304612943423330454247063619431138538421687307784194407984730111047067061863696225013743865995377510889242719984094412884470922986228571175996476313780279642005721556866759083751208652192474007925427109560159041447503140815811534253022700236891145588612232044781267656231253849253681863291216596844692432690743372496666374763816163555431563686212266300326824134000038282002762070677600796797922056813887204617891746117640832306013828324719731259827189940672862101488805267242066771251357688321565451880559253912692382999165198343154521933779798192381642685561846460438554794138751218182115066208311853187619898565209897446070329635893204945162235064263445577142187303245741817007258286289729519539791394937635481636550885122866344740607942651712978989476698046654536259534857377653691782061801619438817882477101954121530812897868292420957358060686161707793515422663889184668851913354538800327180945496346738460714765524221441510441904258403694108792106920283464697936056952019571949429692305495639018347489616491255269824410414356784906914632408861719850624520501090594546506732855335863753347502384505063344430734199610352378701078962224999944872126642748737018744855376888774169046148097950333706388606931250119185655434087785675780425383778988908667981435179294880711968475278385661944471552061811833860468361658841162963345829798093927594359351380274738292731853322176816944137586946434006025287434719208012371356212735736655429105739028716322793549112013286091006934089059192642234280989972643758555906430514606109492132593364161482906206396791676408166873927045540391482228017606092374379953569256568309061302061174436031191182619893520585692152228295455257154639595488682604365795694355001130696687623506381467686262691224220585534878273062399986459238008787410048829536519079277963708617696775882597219550618844052814338073093735526897505134290874740375258622278448192616697092253303212233427598782607909135898851135863091371165345725612380810251903994530660264050610321441326462098491655015847525693444761718162214176980374978806797393464393776035482217038560604156043427005591755415199381249036217620488913643367787077722888621665385220522433416323076947881584913751416482278911512214163822024011668384377808872052927793919212800895054278617177026552379268214655121618167090867682878734319555425352502483514276687636579960791085091552283313022972222340694340334960378669924941676888753128654824672521886847188988253650029671539399496107928136883293028067812158948358319296181809182070542745208533401242876043652554178622143951868773542868543601821790854790557261627560012001752374731809828094525594532583624197222505200345452018986368411969727778629949741871125367035142208502012675205657890484516896155926141098863140680490866893848327426527976690257496523653511253852161491904454253812777499169366047394959790312500443072781144635606559525215225519756062635063412557060621144195450652917185852963650579897170855001746797889557707187557720181878449984336204913635241308888661817715572949046913436916583883537310296056502999819391000509814266143246281843360630719122240046133110197203705345512951965693234366594891844458387359715965794396612984951302748755036674212686395002349822285306658878361553159888233607921106594509407215927627944972474173364451997441714894158029509632152169534216520181272142371728174848383172646114017583305941264602692039637585548532275231850005187708254532419052258278369897020938018112354356655830746785684706889540229932877737901422148852831659552874386984241172930141218312027396255938962939796153469419764890901262262026832249428654721861302383565068422290059966614651794899588975886460555746572604320164522079054903940716774826304107950860160661236838395566082819142173690378116572233551039681653645130100613286706249780232405600437162050033006060819995727091747308101091045639328648248688507557692556992740930968258818850427294781911783524121729554606166783598114579810760997259980666395593489786565924424523716241023428676800511253950652914203053546308965775155805529555099669545447751022335825360550916721493685652555041297727155985736470423509807562113336270218442270705656990433207663373949906442098762082760479130622582025098433995044836618184233132867543233972333780437241864576456504518629130552251039284662951226191324126443154261139319965060861175852788557416821856022273473720910170529430842990890608353923084975495153120493754932459232350597284060465454548285075147389297399983883207413935057746118478944681582332613893509970270012962825666903388332109605742118040861362944033849820793222972038905771305979925918755752428381338892748009929750036344488889821723294394510134050633251111785148027237276902329533645815090969866784647902447803809886138537021158175445073848731386937526991664498618868466622989914941901868165578653788197320356695544356726320006244937085748668823154468886056363643621567423346068404494005059375543019652982472080487856751339067400645354261636543727124468806921958276051216423844444949904402301595092398512367591436688848578320387727097244599919975005469267130404697654560991467755580522781995423386483533236655256803655809993791604388038074945291313662261326228969492651795217580839062050023521058776626735282751029233341946211540731256723654291016941189011204606430688525773603181995654160241581122891175668021601868748874374295660190758388460579097667056162396925753057396320599021507959435336777967575752422745646602320844039088019050708489819109845415537343469055969288318537893240674714926459230876086997876656920483298263361514815689040350970319600114939721367784811357238049072239984808455607468061088360247799579920266828185658428200713528361877867373310364402955858028817785629188978808825497809169557454761451103024711841361149893877543426626406645749644139452329108396672383078779182786883063285365543927921582321961956911077037616704027752544421365925010181994671407654675288795297939831517488642042266944402879745184422186257197428620035310343834810234026813525448422508126091168681637772817406054586245293965019825808812866731174417184086081554497420506180111082585609517236470762627857556597104849433279163601778532453484154350922040993997009570917658857862027223198824924271173227242777870485576063342683922059445674117000722104119041205541434806404545035912478247964510182906477263500087631045601534515263197569501433506062415482110821263175099733208248118153449815738761588007124325237503335048854926759154239667943605125211388496930248673588685211454377747886701502424884919085138046521188881526657770301223111292390091179792800456833893595047403000076386783147809287265476735944559734333576076032781152815846018802000244703125022117507266403959041190252602758366192328539278616819297243878961837688228064191066731222065302027802917500800371610907006156936813060295429868085330582728886254303053772732381445209162946379276961933298608042606391494245486579292532547590195039363582179390746678112187334756772798525255382048032080154489642281885428953155336843041026552863274581911421604694359499016056991994323670224114784950267329178126480336055092579810798089659308112488315588930684171095924291260337491785301960089239189149983955761887992246931175373503465638508018575546651980170365180958149716318011408749954534284991128438879045423090192076652582631231971805132411004730178585849499179559336893202462329221257219082282725216197320959287205685550153554446058175829813955640633485610252457145520601521157413811535833917540060527657251904768923005519289188424451485177358641432190194654544459608107776606359831839624827221777179301016450386973924816321488892990454723277396714210095277664307033189444698710075711234331351301901463755610661714871305324543537327949091747858210352112516932064713284739451429199788244456243130125646537423838096260304681518519541803389884550647808863240082612930602397835419757658006764195232695293337875275705374575982690606174017920291636111980735756401872113780716075687600894414736224049542423301151866669346442178540125260515565849625155369288261113923322905270213012010824332043708728990544362026039590800728806287749258742656219176664830565374442133077559138041982031469164677690709341806977553513781936619591072488250932856592106906260661421176210132718006213498286872188925030380933126798311722615942958720491375102797152208310660874467834919495551251464589417786000667111845623007264878277324388434544186667320336961159320291953977353824683098642061649210655384614832200008499542758076957556564711418865464863705096907413705277161507860823764028324109726194692103203012140123725235617273008010781841381215434089902223479245545656536766702963784775102330234332240501256481908293934684415966664611561057363581431514116905824552030280322056700971125860943852724355638939871041908097095511117667830594084415179620300055960638117423936126849340132910918442680356445266046471108173510387029911689705400856248659395298054633813941716816530687872884724005941584939580781421301874684250009873246449724626968941352782174517306150961583360559349541233265592668029186309783943436528583399081493671579992863066149762632754711648039384055922541528181659110657833439701131250463963672458401619711518839315176699764977926379483210219166964735170919005440434030023957118842210035400542193982151401940908836736468023661600460173023031539460799287907097337693057403253126559473544027532142131982329536782601953576022773346047304413438470694223420509767789623377511439546634915636543606617621923536920850077499957446692001268376649310638773579723128600136409909078316773031972884483132906186281826635056482539032644452287220135625472515206267293681810354871819575638790432626762566703719401361334013923738281995180445305021864266846775205927528269919915789131223790552811205480327122750679279702116824485426537500410882898141000473564168431661626492769967976935110841897930486394624549985865110885984370488038551380283997957571258417003029084437346493078919699394164126261135415362532538443754433152369473659394924275303627016490167665402099072916189444393697388342277234268764407136640530206321067548782207206004040293152503982997205346281842489557741366880815096013762026592828082246374787511120241886215223691815070702910515037629704592969396606799269006898468679427393463846994882337998793760240512981502119386700410233472484102088816559073868479667656020373329602590669296630558882893090108695024142427795956362234368917758546216037586272066339215063814845183265986289031637869055289491934551968521881617579782011012627971701328929373744963444473993065562905885976098216057450883712257155473231719574562963105296017496727255001232306957201298102448907273625122352361788277695583875400551382365598227021381593376908403151833607700856806765143816109304377750696363270967572794504219236105036277981755613837657690471658111171071053641460026325107783675169382234386886201929202381150284753476810885659856439661132130187063730123243843792337881045768030214571733302169592525400349203748894433515506219169653156699407423702712684370872848931312883010475965925813865802636792979470193455241509988099785843211399742700653984789160622390768934393073416423893482955251896475511032614475483614739314248611023366371122746706212448913742124781348305478727830295389820719046982778185681471827038909451864065242846565666269742242103101716710261695157843809448156890785077928452859831042224996063402095864872010161268215269110894006829143607545365196586112615460585831370699090276127321895265937251029276510590693769621573923443492702519602449264953460019359047706223880226558777266000484754105527116726828824642881424338717777866250112120930236766101371067975851078828671174580761075040950774670539926505604099667095039057702918546550956332621281539921021556063948809069926251781911928208026456593861148610469279476529835087599660629443837422739845707002110009808818891273031364351247465198707104106175397959710515779167672383792215304247549415350454383709591741213355350923129281725057001537284168080170364940787009452021289912672232028214249584640429405155247376308373268103322415877234876120950102657029596705509210568432261683533485276915178213880001474460893813399279180339656112743997007713539115872380833291536970433619019324403957119208832881391663507450192207097920528274482212460689466137941462157873292674155443226055229409680777030420733651056238710399754493108861014531137557161285702855955756229130390405903308368996788397810002477434668810384841930535218506411765468993152451224912972599516960714494556568224103689000132585300572734089699728588906503153204370454035036847526937402179128768131321671811629654779103460307578997764396251930180335684715883216829329732018412280347008925823638627337051870617502285286891837423906684765381650072123371171138272099893314229290271559004320909942450512945178660807082723988670561991614170372013887530090809432889790826084417301765352173734505144870589340908237479440297870063133561194838749831435119662751263565336081939502787046310198430176952101461122243973692938215727233575673729664560548755542895657062969657231323410258998909840435675679152517810761334296153899885564978611538263725071298893073112995879114825476047271572496167565236334205482601214188256263222351927553529268834721740143990946738290988924264501600272010576233645259439326869345776521936549903814079221670807571044063729110936095845821765962094766014059169911513390365410082019336038112848647007441112325683488166373239087718772705758495313823554151458054124744508772210630734108700492870812568959658240550807068370241520537990388601425619883307512759747250253859054776332530138180960489408541452214479596981256282358036576186070081474516641834938445718459100839827228419899230636567823783769916976190764437859020699328490286255013834883096410645382049733580352074541299625176684752910878233933477257089467489381546271874962266733139026895150740663128281253647045147541485466295786833935830962173043496457996230871591587003453947347890374957018160739577944052965165719659627304286130632692588285878016960170631013503778652028992594158463436218859573268769976829133491912835258372640312202794901135486044517515774919764703211645281320148642855054849125325534448280536531198606863018707155646623238170186596481528067035037536040200209707437381712191913250486273428650279359114199574694779941367633781345921993010259942671323333370277531043940556195493885801249521176533352250920946149693103520429520496780463338902889398202016123582107020448314484757252838450587877794748465657431975848099875927867518838255094011172822466398836575461851371058228048036354273067030109800156731987511560928902384430521570363292551145512248727501416411440700528136528232535657268347417130154614619064711134102138571212481332957229846314548680375264610048516068154206910545823194938822870622497430628305434317039348599971009490507956125250256696204335430979635081965858041367463781311901765173739034334616318509096253536464363673546884445572600208512884396836798749320826427798954299038751802200418092098937807974385324963667535969927287664010466993527040605847627473708044050266568654065178026911833855076027537728595878391609337758941503153929225586087495861524081690790019328308765863271068874690461746874711242055584910062017359942175292439543266763988953791529277919208221712168929197829414526501489698690685884435094609927709318471485856033325725514782067268035302056387971522015063257420697822049383853628147512580589869716079790605163246893666657467452050903740225728765827783677861996298755855213774535398771264218230720102182726928051708985124734835770663846435433325217913847291829619834058094867240872718513132029012167239242066727376393122396770214002159205750113833768218641302382352901828595801961357063180387229280288349672242690133163445072038880839503112887434233084598283224041038932447138112514957457866869344072776516171016446724769417868362265998317137240973243820702704300939080461111912400976612279503808380034128314872968314336920708290602898726219728691393491174240404306626666223666474345790910712849507305352286352056925682585630387526100478283129732211812221836998079462336829373205261220179227609523605791045484026150906287505678134100749636050087557015587141565048076222687278050449531874563395793847609871385759460005575619440740523523390928509858474602517512929856840705994799530594647596962537325204004438792959693952080024931771920328279716210841174528921957394174553388009240781211425845918030864808731602979351650226080289403325761743024044190402516141726713619483992460909449872668910622740708611961049487888783087629018624041219435264436000060295455356157263539886531613901813273845083383669797409098714507685475068447840236422837030472248546044836714646499597137334414948481015296821609841451851029828996600629411336655761251468606456171279334362057443217608062628634049237339371560164459392450308598566787460488367104720622777774017967271854940811648502294461068658757998757531143076111889350061207996016959195591302702482457851092914183451149201806299564797773608960450321080738956573892619579056684860410727825412416985441087485091844878298022891098222937437201106032757623647927745122370954966724526211631816918301365660531140545763893624624521409441812967088397816721566175506791564572126311647280948359965050929842076702798095225089752297751920793208108539239720808642406400972745542913961982967082620432706589144996739712306286837904504572267193149726102671065389891053317801867795856006538269612377719453877606838754769481757192360462390528945813954344591514583146126724300311919502055261091594871811428855754801636835826372000832701525548618872924558014334921113981462834384149391713038368344445620592094484259362977716615274054645009915800396301577382531747333344017091352732063924212624097305949662335059444276593526051886771085423433556465782952180643183130840992934574471691646827689275063621092103522845482204041971928868921345744098840049146424690899331659864588281384577373986511400314193446096768014472083707184458450115984369237941093441448532572216454364919998325397929466157412181124760727434358718971065117650714429305912853504081494980911375266739678203849457142788153042450929542585108907108153587903595785812074574395214708766202158560240153638513410754109810224185425974175936382034570962135465302858569885501100682766584687175018796596682917678734299210526755430921618908492412932587423295491544405956941116497375682363741964553854603346367392712332259759146716112991869387736333003972979231749584616854365774282927414024460013201410119910600111522918630103456173103530028213376161964881690919138438914150034987587163885111187770426032822956501020465017221646194071155717551924042831616703306548236926155108086690877176967117383016870058623652766493201391362254836136748858300571411399476475423386828406216911457291420971900851459364168978861930310705806587105766679523304544010863870894962579996196428476168552007901469825886847473786042050709130716697114452095494415160965170682237673998554699513681241609076787549546576147991468230629917980867783257828460126673538855695302878590933381370579460412574925965109550855150195281187966892945253703190599024209180131555335769192029752678996458675293011029668193310545576487914074962565851950883455102399046450512297857564372670828158582816281467005228297642840092255319995374145977116644452205997808733053671556064186747666696771166552905939608113755561344106916216651871071158717992018568880316657189264122264185536309037098773516542702096597814714448504117767330439511173062890020932505451583694910047868995519885018706131259951132926300313002909965353592347239532630884104649931037574150979676565495486000109987289968698258191908224719794473876317501878454691082202473891975377744406193639659454268008822978922119979430051361431391401032531365529058354632272980049502000495922444061027317943552537961925393260119180429117220151808300212240712516469592821880407010929925894853197042070250510830002479961800266312458511102555661998051992048753959794218140211591254958097132687010621776175248239898698956676589231737918072877349494484407612080169537990694551410773249022300332083050935079923918975308784433072056066226020308120360979691578120092752492438237982506579618536762664460376644954978655974262582307528959178959007475416735554041194084089404885565510944120933750259197958896796121495811315706852903298555831838849346694351480244669810367625647213443400875628938400730394834713428764304575939658949032517581293663350262320445116567616895401247673363216882080200727841732911059331911975537156266549157517541939543145317418616630513234973161615414751489730602755401259453041533470655037341357705506392679012537792284806168682598652777597033903220267145113155888137868576103628571288901925725572401779879179058927951535228393127558457077280582746589667316452003598962491684515503157653161066857210296655219238155039781977335293830320764280332797322969773363070335293004365101723749419767456182959022515073201217340390904772418222204923839471333751437774318053446954056349485524332894655678245097720207250695048610412944830047420126040871035174691665225479785033483704098293371013292458358938431825771422484604530613576328287421234225457834907235893632149490137690694927505413933064450905202043699531221950394424109398117860520454609386333723076852354682408250896201192358929302712579670423558750496101483061184782637411840604264825256974922256300718145219855869167872144537438020079308334493153922658865052409683801359056218950712837538814764139024559875675504759088865931874444578200360165527425965569316814449094841419321595664908014320734415558458520550803051703181947589677515812781113962381283434488661227603050218050882927758251335094065157780596000185261702815859317490037740995820600026958465151071343586018264098630607706096262283254101110566700492030581091773715996696731081426777133907327512873538905351404553768289154021063293624227729381959541477819588373281388963539075284787167473818003187260574523781143366117185147349466061674830778201055548458221854663475889360008536279071136039445806734440251483152786067947961107614631686572696300555053672008883869275400276700866811172833942878071317627430559908595881029585528626100651455645558508533901473216620626680068005024369065643442645316717532538506765238849322104107172215899444503129398945128550999428609318427881914776991397341451858650717394297046599104442199013282079982409700925668168394817880703998172667604931198012436720022911518210358498480202542760438377472030433158099889004926141224806880481126185915800205806957933718503275188683492573342252004596354392616547259756939238828326754133586573874217550478279417979430693756347451950874034180534416002242758069203801448418840960420695915630838378003313638063717820092449465241981542657427744312223627583262812619369443510704209296857953383423559098962637226723386963670732173229171013760480460119913538220206970742936622869875184171908514972767738953675114081335947715048374444832482245817337758310085453585879167938354006543222320644118371522561930517406882005904782491439976284093816172162025275518376173637172609308107117593981769341772992968109396912207536250330263094521938828228002133674860534419964119197489531994436003881223305217973494306824677973125624149515685593200236815171556888237303137331820344062238449237229534178271112270399835553058118826265498562312180010807736373232743199111183894421179772132538704389080846532991040969587487013927631953848575174314025768321926938968272367614201177176108936536283778675357400438591164457278295781108533661740098120036514916461075318894708869229079600152571906821643169768199391667648851864521252982984958027056416094603967555915494589748815548678186801983306705747675845141050222778618741240494262778199250669498447204658430057751673684740045603218655282054893275434080615025783289493917485938914916839119206892529287126205659345640468082525596366586578487424689966150551676541519751344129761101137139089730101388033524103801218985884678245562663229784204618855594316583012179488708950173313832388117678954373310209671648427985230584276134613508546761711818542435544599249362189873100159567887804618015313990869624029626860102671111195470203998279774416698003712700219577092968468367706012122395384559269772789648357369315983012515160940122798864706205586283765626230667426805407581085272793543464465936138935004712444833963787854802887962132083594095330470258261659263253767265629807010664562719423993475973421209070121669083329772078892472987709279951400973694430972884341584515646755852742338269756671319107442746837313579117361330597144743474711422593640423500332176966377238172544337071564619574602476520424457827199989151935669219569935653682185371785527418571231855710836385723087283354935200191828452969443861267547800953077454986574757128916616151145090326634762236979943585097229983141826835023419782466433211350060135791447496245208846219562778531077460212029777192619154207264389132149606443602138980432057343334612258340535269658046372149851186477297437386663765236920891440381858288922357308339642736290134897390505740702026334511714814755042049092038979372903648373051596006153067222407029883010596127023625943035393316467688482227579607812768870252511452699904320119869970867810038696039482665315270616418283388749318496653913281549628350370307308403114913246968131843081411988992034737547912736363746294088555231480703479955108387698103665681551165597756116519883290521264018970434081271043907545988856920934071660583694671595197667523758317655280918280767894804310510928493954854318199068664165799130288330797827850719318385380426490950511698898022933415484651987854815746501657052432101148479641180851782663502942221300734159200177521094887403494472822988593128914479753238711175600388417693536179409255058329419056376309442284098074155824245752959330106847933179491738446602556712980162897940206563177666977708857697046739570826715015552849626619789351086856829784959704909232847667018104788701647528111838258943229677049893286863347466569421138871470124553644867394903852423614741171404357331171600312583874751133847942196765629093917617934495170272919534439549883678423977795909077010375749497188373693524853147412820281249336328242346444288946769513704817009098489988142492297871863254415151365487532008970640381433055102725427344059476939316219868634881417373456189754796307766596629646675834376839395608063436474265313714644376553435210266911764089402124168879124651949409415382698720753819286797539287301549428599694624955897815054177590193570808291068145247111458030047011250033565186281259588456957347508642433141544355050403575247066503722856283994595323393539205191397778230201423609529649989365555992530695344582232132995446308806813266060304669183857778121303572887140805138645728656543371015619554264040185767231951262359225218341101673238028197212858052431230227651551240195394938871592239963669610708978904589257912719074129374672011788687734809547268063943997184595144517265536348862793331283969877106250684434069618722544667413861424068476214935262246644147085001490062978693003412155849830402773852860211622046308986644293073436377447201650426144130259769053823055551314355477735672665852926486114815023235568618461086704255302177757480573519608264475683511705304948592507837857588177419996897167149606457289372015241233414439679185265119264204711422382850702116623851405678835673640708765468433237727711895378411595936732433269320524159399767657948821656670676355790350837909564558285811614341112701291605853568389988226847525523017062686947712572184058817576878044693193554055588943782880098993723709247662353052830473542293176762378996460021641848816126157396784243606631878980681010722503981336069759865043663876778690516519552329418770639253425085732733900398575925337227663405035278700407558340689554844506355999051409510259488443886994860721276449197332367128775556569673171050138380626477546935372509060010997254330672334309887823564523336025079090001098667830525055267393081105902053708106600898270122236216800022360580045960248551959443083026572592885880200626205929112201483547080528418221384391857561175894885963432558688847488556037458655693259342942429429812219008989072941679252081549305446450198719240684068369116535692876961681527451929956129365722019985016543949029637070973290376032417966890054440365043809722112406532331644510489307277915324878456070932297416991591610131186929667260193100257554286016954559118992532938307442884000507038848848768107092894641790757627042631414794793525357467298397761820361920591455302573823349695139204669918504992779950661333911942460325257872830221976438698192965851877049747825102773689010973354268008962342039081230141164867121628554036047374566595206497369123560906247170160705500782344493416100426436025220113328782463350714405023010443916089830738106921425704360994685697851591626216560736847821161560135167140164939791933160343122180698376210790305902935016120606462831745856445491466326495779818709913115024328554737396301995313236155172674724020252134474863037399626041836469664470467887378406595060174027336174854373516069278995362773050820439983651674648450788551179557582132572185195169997601780288750459591506852117262574240603593327855524224899766705706806752594136485652129719952893485104739256496152359193726366232084159852237080823707357988568886968931399505724009899327532690378993637607070149331647460652360096107044367843260665134602461334354846315549209491650939322749224674406674296697807099375411282123653024870402664374826876261855177540418101135975858790913751571646184138642665033601597320796346365475364962253404736652204138940958018763487018368925551831943989883508050301015807540370916392095818736378907102388161808716757596473064823322390242188083694618095890719547184162313624436209194539959456531208800327822595451810454343600690417580069087431746104919481539327224491910498090499464072093369135158564196541724979518068264235722012042636666012462213012372250008150218259067323454342817338078892084466570182909328654956554803858133884962670937113276113628293082405648188026107261458455858064508868164778964776950861433655796932409657099261267260876794458350760933739575084340880808758035285205405772157866016943623695515114681623582214026958053873973144627607795364636986554378305578760857134506810459242374541166398419021746486625269042573646161371201451161382743429077323484412267313751003036990795909072508194160480920734012645149374802407714732156593747292866434847286322104317070316608054050665552282760710285528236698484482698814895862165427567357157852302337713389342619680871222637822730547865365195646024823064762929714444616630135193441518484661919723879328724193361091122014161765434576221472869495605062542846133137419645256028726710670836464238839656559240005560170433115019425165704489875953808171170588645413017267948833431618135965779831983019787504806043198275470330902252224960797764663230236226542327084687665888897206632971560213976237590907823135149350815338591977092855207617408290490355029886209386439848227094393045599443261432959961018030765202116224839538077167172295493320796800830526104051569278569518540719150243023561596186924815720466348181572331132955038979926299374232884674224378512170834245699992164244586118826194412486260980040580630149592915485050716386357995003993598500400006743057827082127127904469669668364780035678583809892929820049583314860502844157297592347703683260679436726368395006652847542705633758028325845442769602360203365485973289282273473435050898604548847758408092861466331508827178525467755344575311631795354149192300144319139425063185490210799857863065971820915249417749630039161672491128270155413422908100634069689273520131817736492882495895017215715117839082181605471508946136449560274349962309619231439951045408927088641607685204605223687250674252973667276035626238331789996504328227163306191975298015220562305125895701749141052112881291679022945520425692013059074722119361511159681043075036476268268718587599809244365047617810027567283692256319312130486380791066376250977695946579437951187624994211894952840279084112030104602566864463808466742590585086887639449425061882403215550773644849537806329803725219488979108542885592628037130611970177081702020532680010898657366064900224934862013411552484896066370301336591437948523742778381684832981528204692033783278029996827370015960541460590933664265558367779773089657054754476731165097878814839508125074985451182356786093664012500779392651989235827679368443082529219259148072718790732081753451793790209360300956598135063109094677067482718458352075470087103371137645958034649624424543703294237729926985824909801629709076696079066187277986256844680566217356301838225178767072189607399786186295001238147578890678638801463863326164942993579780853539942007142557355578640615189340063004607858976869816870288927179963814576844336129012595915168213194088205411067741814567325989940500741792035169159661787426083727042918196723071014131639079530566670722382161958951980217407302697328078553025111808944722877310484834360376949835514009810880318067132223209756753612357007344054843026366775250953603863227220421008418348418806211520872304699482807756784334702147316698322247572138043539637722563358665258080297202826334046911518673838979963486900961236385235742123185492317316170512128948545584149476651883778365140687849416190890708171278436823297067547462631349050129577962455980110659209801430076181775187273705655457136764303467700988156947750215970898487356632029809290644744939651521230235434250388185901400012830286093683961854519441507145437644035888482323660686295674362418327456760275520978391060640260420843119150039061314245888403705884686855220690457656985846147683235515064971665378302154331433059652151177607205166945236144396520706193438258069188917422101274697259499413512964810077097574530145489368043871917282265463700306343073717262744562624874113712851022589853431012468704798517414415479628835882076404947261181447813363674337273230423835649147510627183946177827215607259061751410995968603757397974305293887688667998201941698871494727787377185934134211459096092929514500134287583248519248496903688623015329085576720274441382679677115198751979372810759848751067739573094256277234294706040081217966975274770562842240668014661909364023214533831038131925297641097599082116858073984282547826304451896168632461713323377244792022717724647426618734856795547206570767587295149691384818772675423075907836740548004962196646522921438360260849682581873713972290634830012135629788109105781898552369119165489328024624006735780608093185813036059083065235285211521897430923607356375617778289408655915674930370803064037466180366094809816975923610983816201745500222892030675095408450602272063636189297315416359350048148571811289811053800125800998629164669521169817631456561005455853973862886415122454829543416381366681868012666718422316641719829404262558903143741556418071583016155230213831941019106244214910906468599007436445339496089257759458281171582892934318367408546379943435173557287484410223496259492794495026788368168512112756763210120828397268616264858107308996954932818360762238105194030753098531036880533664403346925125168048426237547631750447945027362631296703995108701763138570925114329810321640982424036110163929143467828112107508507356890788693601651476649555724248081218708740348362536192105493259104513345631326818684920534206008230402403382706263904311533308003244929405432773882676421386271752506453232189158304420669463151524932017574410411803124213661921050780387122104671370202702403440176413789299074494990557389923795077346121507722524458079622974145947732489644201552553412590854323163358172163174321251143983602321153359191708771793336339230213658581047662291748693607628886812775274497664130371166755407296192089537399369181065092729176641149902644910652535142919942873579016316637047264789578651290068138820767426034735546535736922621111136370581160493508477257927124397273177397203109934079529184108707141458160063295703219342319498405710631505223176589123469332451398671951753287807235610667860356086283239243595609038407190416672891362621753362188104944027647161293983327513164191073380181660199606078216174911505442525713414134035997323883334730669224774673356486509151616055013980597580343274525588766187834436355039050326592299633713684540856100846672852688138138545459112077962990586814050728949885900477882202409138572105022702314475438038602869061065729706324730571893535728316881905012941013764602980575350531664757555244131485191559705280154543673680669964638920510915885252721588378415876584732831781945738987118113633408190702539222480772750294587962949939641107413494005935872167412544065241512194527230693825232270182826237032180465086989499669916384667715933347258063496468067023837591773672896985256855971350046132483746640142158997836712389329866462126831260639233138605406572723202856345401555621052867947666583339865656863381454548979199327723495167194977929868725461386149422368140624166336215758162414360562881427470060754890023290948112658136206387356598132020815182058188289383666930826968136034169580646585128976060216443432962832106634761033596864563856978773361614403677151810519560298244818923597334621988973494700493492734619664268742473889989453797235528453505180403800153929589093501953834575064908002251557953810047888265664236410317192280278428853173350093221874047813924124869232483910421015877310535311075119972420439162724142734069897931853821366740784419155574769239426009082294378336538224864591159721732892892516660244374532381741850682962881706925495574109889998117334087846486559962484075934935354312586919900624402597667302680810726985140080170207200805668842020926174397193580272462103790723033412654920072828265241205884643671333808287303226693870348081680375242230749232087191655363585501678294824323544416951602759446786561066907000628463923354391915590769865605662172908116899991157050650551130457367522750732604604350671259583815723716801019343612470483221895534795337914100798276398021037993105404114922278818985140660380131177098014175074539444638754330467540939524817015957428795852072752022577502878877783644157880193936412621855595316829124853910021725549627123964344483329603366609723709648166398005032409728985402196910003898562128843361762512530777646932711839421066756428571584069096690823998165626466586628693148722940570990209796589380010397843107740646399030847900395885214755661287351613008047940425228770139509925087668391780148165569942501540512407390887866224661045776570528755870171444903635085357317712291664606783627370439998108228505499486156943635567975548222461383818030812858471772346250351022973222320580826520980362202077761943372227031073920087955810636870271086991898375528578186296962781015487879246655459353458514212308666940252357851125500335638698846668332773744719585041293698388929029108907644574550676224789983239353533494081160750962889150242000630300445501043991315763939774232477615143473541061703365305641754501515908281567221685586870396574794376678456127557614016833356548271336429006382503037000993712919300416554597362909880389181373482334703873960610258574543608797510913784240221357135126293980773591944196683382831077189228652491469652207842166497832357537623540106230165968731356566697151311866989017726056527384351574811728708110980859586238140040960279348568663169934374378288772082795661605558602359990474527638560113119779724537973869970448828181866171118990824224400866921565747117426440023932978331428468424937800356842660389856798703980551560439610370168111079614320303551071295411166825087005963543912066003980294874759187454581509992501781338246524162617181643993317004734690004927362658184990876826106784717043364333496601813896065041979506385509735260006918375225824915989943731982894969884134459144044094736008204540625653657880417199767634586167328175843178687798273302113553413145830574764859650736134585049635101801647820125484319547602292964631369902489885540224033311501509945920451687656998826598306361944063977564071043042270664419911133929339683427047347520956522503750143833832374294516226006936743189305903221824551653856094691024291281716019423585343927064124179053818852728127541316461685244568111123527594462558269968619255948529273019803496164317296644123988673330316594442244328823050455204930545491905133333112352620331640115808463070193424107455717614833770729444277643317706670692850817421449350856854992165520716760514321910185134910951649845607951998075181999776113307342971569312300124434992202085291604286139562864830063828196027381847153911648511698291111019554780597686318936381530848632909726751552348608178540084107054872791935020452773102070272987089284346922418584659230952785968040092291549727619027657169790306401720298739579976561492463537942414064848802034273162600618608997554482206227893686080246032034074404640749802129500432388650071985832427466317144125606636203684898040074958906663540897430859760254675795000383062267800964464016879737762295396158799931033279707200241937655588945775885127441459786087800913545499498494076507410957782038730502773926727399950365988702782893210042540790562517364230732921073194008518808425671693108342645875557556004079395324744164489570931391387336205636253965225478037871266769889524633380596162307719031359446468579045859767912236994400735124662230565584916581012805204437749655026176110296691968446230944495808860619850935292162046654004575208156580310591343703843940176401161313720938074888252996645630966069393174533047096377779903560576944048804764050525596219491443454128051283718949915287188067645760325243787426260048552293126244444264835238881395487749363812032173984681519827298657630072128866484413346689909414244809119180553017654304536525819220033266894806114229666590575622233923443576365879261190918309646386011244350120719306322690711018228483617126359316149826365762512890564305324385845156463395378705825925650281710337947026311277653437461838796720161076468860971169883556963713197047751268056814798619849675745295084518996103663076626609258322243788831331004742480963790715322511043713389030078232428965920650918646752533849806813983058269998197266221355153008029583116010734279407424645742888310307871699978323684001028032563200236520730951943044590452265816622276948175934527839631456090012926507315619963185593015565332813399015943327861352078511651682821580225755323445631079953808996777934911655928289914517885555943052801115493066586728970371853798829855901350967973166317014025476739200817926872216088410343660296950461947313698237906975884479758826469769022419789919189439233955637371166958015494585665088525897445175839497018781556523304137451593446346267289815759966329286449551083644610323256681722982344433042114574755063059514370759905559914909163391309938312186758650677921038016408676390632730863599421085187506194366966706458778241285586723332096163797899002651001836763547767910744615039862970481352766316043473896755841566992463091149481489962340585722017169836241142205456136618494498300461967318010922629186908695615483714296356819680372997990719836602999707774540383982463431038677175873583860414789587751572075668129931947144855066887116300339512656655235877419177692465586470674432572769367392406535371409010860649433448570666597232562540617544507388024675164684579349044281345020013708971085575070786193140376977281186676287250101646649928660779002322450627940830895195366290529485175376527298565860096299225796402323667301179112355990202092999928595475657732849416651519335449566714423903100564922852436324157366840077392406596228457331963394242005371157027436073160611289194760548295908372700902476583468127114660706214551510692487717320253143197519957913981361638569075290243414087065618161821352463736326280104805261222047425776951500264804812071162568575116901583558197210418717771452547265013913559015501391154847603142564937122150582614097360922518991324698222344151801270483708978617599913779551732551784435931761380864818339955521564206453060555804631794148341092635661737897486724536645260191102216210532702821113869348563437975022532802676120485990224913652545336997575344809256714051478727767110389035098630481995036736429028403846090669993199289218922176604044273265962725680748601835744517288283761121864004343408428894130139769294087186697739900329702309513793428796929795339073899352101050385071106819783916321602923957130304318449557697328710883379698292016753416176771385730703953821881960260919511070388930929834568895808503255667532913736282019882259487237681561148934648066520458213886678286019149500037031444014009048742423942232013245358082261709298331923800470264931580939140950657438603978076092763681947646599047203669223516947018446126606401630454678260569983653524516852820083120908302175253114000030229111051751873485638188891877751521789288195692234759050264069000413750100707715814867522050980259947967194618759228692530965949969392216755572808688438315390095193437924782834682374244092147708894281454967575210814955204966168044730947957620070445226687629091885425841730255778420136014992661031490865210320567035258228186206439933625658138082754367965502383300287093629212014403957447465629148937003164937527503582380015086027429999350459581307741685545636975758783290041462872638409731792867575339707759246741605112947595683317595450710149329934960739510638309469117091875198733499480525003451384946359539090056669599000443881791720863875731906704979490952203383195431207169741852758432510613533095513197140929962199602351551455659288470214073694028718514038109966332243374504041983007485359251147319659088256928015613588051437824929531146004795216168148367125355661430532469997814626992701989165423035476511807980903829696977456885698861318838745374084237733445600330422269862451693496399232848592889610023418752640292349606831941925382378762674104148185987955766658689082575004760362491124967315395545366616715596684741232724131299242951319531838503995214691628394798496286312463981255343402646863158908793529523608809053624295431489702239269751796613737838099212073690563479826341799423137380246033629412724242498013462002243467643331181298680844433267072505317782548358466496639367680007823436295715469649924491021350195201343132222168275961950609478118139593836454745876156081578201530847964965192643687886733015930285533847742470673020440751272020160035192703150921211842340659938258442777504222370325416119148023786033052677406229987053197072584051346740160420116369191655611254283570554523399860532624020528573772121919026935270894817619823665295851970404419613173637374409284910796926329623750382715046041366231444886974094849569834563958524251400272254231753533904057301839156291755362705366397653146482211194299975715844844254831179858264370108537693701273234627027952902562193055968890817841931189597846891432775115018363899224807363602092378365545828742851016068468153048993088005112657147603855929710351511031562139007660125507277053875259823889619586197153987297138599789334391875286970734325317690537211111577826329014920529964302366385247777428021395890538572354979082035450854008625417800991131014039801447549130520898033943947031878789920417649698460072251878041762059802258160545294646677145716679093086229039325772757554104441316647148409001794805921419243181182931984744478400417916031451334955166932196121364107866397126504628347157420365876430869044757439438253032280776542729931359366096785053304762401871163289016375172124623297793741533952077474847112346295222026385511751348897646114154205041862343724870837027017482938461366848185294458251498521349059928149779245493798009006021592649238871123453085134779809738320574131714791271305951327028370421596212740390984673115021945007541277673351433993564781036640502005812280984414028303592200148699483064269769556086227363196094261699219779045304975496305284512054646832137897191673105067324071670055124822037970350063131802979330330706260551695730932978704886460428255320171448114149728968354165349673357477573504811389757839215601447295523578764977251081621725277947452123574756900289467028575149786235557216449426571846916515702390216209193918926338334976669936430056288712688838220927139792841348764337696107585572499263564867786038686324125443538019579342322513151348055517156288893963635290866612809299049131471264190591543668581899852412872244985290091600674079190549576274706415734015411871356502278866605085303682471933400699479897928169196554818030431078025784238660620138050885652381994675080507257211834560502088206310985394417662605716763785678717154098912687609449276397271344562274988893403408350357813399770741163620606934178153295677522896836162495025478503767872267362284717960165996192764504606126568192375696167370308346209956535513679868632131099190893953082971855987232551181098622105445219472555868894972593479465014497775693349797642788832344014784875382390998654506010149816390446741082693629983330985679511331495674738202683429884258552899979135614885947458147570394428289922364375828989906693162951429407228850496862735052903909090280595725801615734300359505652879567546372217253594881741298923064313285439742342578811448503805071638439714094922912474796053743542481824348451613090879564789198666635643116757545018703398386937365676081482378886101599858206910373081795694240640122664495487180493994592000320701410704597814399372227099030738411446425261373551409561465669609792033742827277156485193940950273142878062791848841724241420493457616463437437020852469152703835251481770392403147229426893356857134441410421223467386013308334702577880263082526525629666006058635270988357339484357801573378640253856723430011178564925869204776054974549149640705646462217210712891388804642370852248733813172028296985374911226355727036339499319700860606828952730389851076525554423142233608244020040059033237695846803735286855454385220269196548030492656792951023597907804535267918340584511024192263572463737951754823804412027407601656877556522489330761640378966649078409888934593454451616183381958861881843600280784586234915384754655722120459651844988009841806695455005926565392945188370203242720719282512721426768166205156558977162238890583434870200238541308885530161679489626181356071350506000540082924096103368765993680883484554385888870319618474390946576664743252807262102037129271754547491077608874424204678456768123173596463728013575335858539698390775536152780526279640575656597295298765512488307071451877602753655130277564456061535568007703479010880322168763787131526398122037234922082570764612958927277792904181054693397502656898930176567117764758092959415527301086650354221874864799748073839114856508158648799509139638520013178253606021433782578662279570027609573678089191699865012038064048733819167435281095042993796429134889365713452330238817288532340383090890648477495220676835655061107148338007048431426109793621253775868075479003076580627422381158226341066411153536615208359117019809206003894052179689941897109965703317288506706092129921052893974185018912340408858453821545433959657651579622522456112298079704020039606388423488721202036469695181331038948931335694509478913202032792107291126760751259061727724657986096087037438500121429455912698932133707771466164487697467904209899670338244989791918213843686401652598467482083195243164209704939045012036250997678485761915289789896320255606963244807988401325473505319094861048859729508295252176523664701022274179626175162572079186868713119270548200286577389007611272342374414192394094440901147164068772385002723445960331688192456798224241530832640538915467990717700478605448231893283024037918375038475382770753758397435693086658778248287078224187925873411511861869923105893535372306701321325058373338126774254913567355276091242518867587112179825327673212750267386393293222753363155718754243597793412336252198499847922318295108335088639423051450662743797044008926623026764253225525874328268709189721695079664284019015506019460541275037835802627784718617286671921413582252703274072012361349901726890854489286944908756684447233353215736497399728936247941333977324189300193846525982028654693605296363079235190305938174385743087949715673519512758636589520842448569468970063475553935691909973546979380373528463640253500585902958560771812227690523845910536416315993387196742039714881459326971468188025558208569530664413778009773883892085872678151499951262155523655458325019711135699209706411816943426468687372861850180393355262202498706861788119833814181707180332291505711635901681282051917496541150188707187784221475035160254143170068450292437135462796041901915391995267908985254840885363183273522536295731538812551074199184326580927876779842505788328710515013094878904241190616612623324592061942607158996871325293976233577555847273415954366697348084948869545374041428507417094546139128286158000324614351431761407041391076824915734930930510030820003498437879518476927869459661725036719236108815751327123590495875716291279877917498397847947737148417175244981139964968518391722576027101595422583902412371667758394058723451180861597254068647311363548891702530934033661209375802829059411043749356695890701798704209054956849925235215173947056623467586976702115698152851152663721159508626215132684889622776321258106222685219743768402415209272719159446762849909514881795386787253945802814226684895003743469049080051253812402625216034875030171649532093314052707689107483196221716612276589726775175485256270060813444985009073038817261204792289115811283317416429346423059351029185171364053206492699421256687569405280750722587958604938087903484870246483846806867197747906848186351542990510542746439336502640261302956803263909259824298197479527861638621343129662108462949964221232960050072746497838994603625559607902021381107282979781586228658209320634732127692346146939681215075537241922497135578275652787013371830889471456739498942940471052867591113593748756368931891542443744978268025882295720139461332103606574840964440344984666467573097716537379216107659853777983691741765143698669570997403631285423955393022593522157277900109140312838613485296722152501925633783006498523456903324743191393216212644307801285655448029399680350459531037683569543226682740619671471799778123421714426399486193950944259090035159605208702708452521289674371861604335160789411832114248543874645894766428723481127547897115590081969798723651223219245533492016961853924411354231816903221399317907936949378308453896386435904995901288386261463426269518866562274277741239313175687316354304560074313805394228117462377803231670641191220849505285482198524481416340454257266954297842089299755589324883300037232222253684510809381080054528195067244108926746281038234258474593948254861562915860752360800613004958837545955849156768126580364919979356793750808487196438447749289398125331334099547691089253407560592467588502188961394765431008653000246754992830150678205118438684400215129800296555284556739569854141112751537018457456336235644986336297803445450421612735645235437568491813245939977451641858123835228949728952523448646062160686932831396247684410243368144675111325433799665492165141960458285597048767498905788789964160981598023457994782591758536594530427464968797983530363902842369565600356586832226356142180454333929656366812871835603120635328495118899060365771491221245519551451747685241182066811538892246746494939704273574340266809983975332537299398087447486617434583231522741988096806284257676429958783051789932963583839438708333815636081330732842731562249903304525280182142635261540999777519137044322485900241340817023102165371736878637745615760642090100848431716856109209358069280840451429044266322531509697568958739370483457908382695582164802085579900530702581882422556756750110570374239068880127064585497321064442687351344266582223189624955120205484184234363857983581797589683936439565964631130555142812019090054405414730917551422196193679259156150503167238973339428220496402469097234240321590435765307019759280145966451091551605205834417377861433550645794272041464609651311199802211640137915010104116995746134603518432138978158523709646359143071975243469807407770374387054068672517443684131856397606918120725957438767930886414055900415782571591221138397013481786865883738690278721904319211398042147107381092069684832347560588406834801910267955501430805797772011202654039699433024945760267541914375736645565443737130620740915484373483958340194161800636588132214136675064041628518562843938899576711790063400199372466825232887056729537250745877745301940735527596008984819493260380785561375294975139340004458599119035370124193765870663683661155327285470708848492258118716824535956432235432367653836821688744151140215842577200520549637090710216840546715852293449218284546026064401342157066201219174891309182107814406795283949433465326556904776562541674692916278136725867766792013827559749735705050149161146576456058401300533589002004950003372670860467326230008039603288361280797386072227303369343562484326371376154026300085210091216402536668726943584717002398199262368331076883451797519269995415433628989608475896203753371478165996344443340072287142350879120191448195147998891727798744382483486138160046961920799317703895531872642750007605488357826663370237923537239185647469665556427264295539925126601988690725660202799874335795794280372987794929875333294322795909808439130564781741669712467580172000439540692421738968179481606769017021978207551691027054378895251744739796463974029049175404147415542577509098205437033298638939766372245882104955618507468128584883252248540762263639695026325970687575752797157261991772056823553394140030671159568214656944789297329630811220021462341481123098556492280594175762009178659504085208782425236556026986867806727639041062458846363372062996773600121775400611383785445952865585391817475211943016192657562995637396294815724601536849148288059805169945313857663174032831732456111263843043218469855569158956223588771769529679461588863038604284528402659172187255361843117528668877755120180876886275366738050609250779071053514428984124508360947502854790185581376373420371292319678530082225871405052586204953360253774931079636683477029756930356928162405287788422081272466555643050881618763362149483724955121053398631797845384654017065916953005571268633893891443525813350843049429872474911945062297962635578088376404198346342581355742040828242216161888373181020551283693459444418625546164289324466144157221739252506118302835652639900168305447289895748502128236202016959254283474077630370615411458614310609143561986769232670916673080916979391729300530914955255394823814832807987861692381683780083034637451800484390326077243322811936075425733329876157999055650929927447379098318076557689541291973527467776955967647492716016847496954224564780208721919014583454955140553815363641988952125306260188739646923782515504846985731968590400990779496709170382926141233768622065804396011111265642284945004499315973274107857871918001184040951428272450977301802839849620793205284043213214908076173095247467331152455311725807044576295756811691889528192355033194815074368805553898051642850227162971948913357526193157778152535578055908220289236076458169923892069415245363729557583721003862702278015874778634559736015174508240718180734716500950388016041566763708674528044310905225761385664081732030813849515921581773886647947556940881773828106314524643696917860112195264265090400091798478719800262862735272783113199439272876436132575063457417430295206948876076782189951940307123323511502196700507224463105961073625626585154950167405541604850016630641620202612038885498734353690887111356891415987137739747372659070829343013995323262588965910533964806264515146390238265500311284441767197632114608814255988971481126526313483437854774576313686590104958472925582843991589573468658325688927333463376970887651167958490473050230964119483662915629420346942115780892374469953740721310097217553155827003204301626696730412697872151465108411297517665413675612421273653049769620885183933528600764675751954406769426881115635260254114761194539864323791287541028510977877895827429149552792496262686908518143709660679654566970570078006715178955187692509757096482602535527504295145531714301952802587133915443196690569830375975373269788863952901366686604051198346973805402795804751544478344104666001436671096829102380567408614196359458251325076282290697000011406100246372914741759801916649668948858109882214573736937957177628217942029836947665253093233654141960873366318540912820498280999649443443908583606563164104957057044322888581461032723449078849512989965940278972769682047002042369930364636040600997898875980917301238407607505788460312854385224276043901329720059649845987197921691951571248776058521561920822753856182940395816284104499198003616795618161015020829655123625121780424036942448707357512069633674057534742964079152029972570143695213064172629012358452728157668557957038625237943877455910491997923427236023128834229329147248308583067152869711355273534135570162530266821036039157337099549208514543724129411363434662281824229147505412375719071725370912200680597635374476583294496864644650134414208912226649092039037672165990847547559093862893775220230997055692056312146875473675504351099296622408035953297833510911962522990624860190103600581010944247586080891617511539400346689436323811342872357561477971765242964049763478197184628477305666992539095371146631436106443949473537933089168044940099130571203980486743792509920987501183154637531568904449578663904294316741827393494140218726077354125184705774044734450386012490340342540899268118612215407343189567882214328747989382535464060087727640516905683090593574894078348762771866173156968417255912092811320077306567462937813762090451547980932676945972813921001132218323013910496310569180827540547279715207419668311013740178303715451586171172706950553048519850040156715799088685480245916109683908603892629064154974576670879611519180240512913679213677157275422625297182705086538014531466038450930685449524429800116688067707277119869779861156494156330978542862269298569567943734685934348315608355864780226111920983960983832570423759327696216056446749652601960685848076758129826835314378689925157986072737644198705125470393541294917445067871150196442885818724272582285452178377806162986914393947183804122181138940675041539384303176901127397955821861871382297159958421403899752664536367976326660384709732767156570671642671695179909692708393081837410002617481458697075616775754858346870936442244595601851245787124576042908911498737799671281647876774843869956458609104579370489473031976154849820856868152677590733552621562483401176986701974603086204045815502549806226238416765340118640676076738617836871132216570653632943387075545951662572571121520398456414139560192853748744605521754481887208458952528517746141511221886039559183619159430744714083012060010347901126246700399665236618496236352738105183822291026429593905382682560145915631918633774597827271402826423993385884187937112809260981657153243416228672948580746852252815876995235421583835474986676610833758937199585522996558605065053123346580083896946974730311897683224525146396635559023483982130004558413401062439057104276370344332676724658342871522782198883709508393050596704888097665396048351002183264728515547596221257443760623685242966792335058443895360440861716847343667577976841608982478457859881044217904640752049185557117853169530926897470105251929235812854039882795650784885363858036770109737488383355835254520641483444346165963724622934179905294710105497720777669685821836423696254676716175945255336129121316557738966720100664519501370046066032522502376705276457929345594382304206948866526787544540319081506488540542923053956629834603215361863558569599911169395289242820152824216532300331037458967193926864751206641717426659330325297800350867459416876416046943149573020902183317067919663640241958073231137310758038939432381740217306157930547793543305535602287336319699413319054058051821041224020133312931111900722186861598646575360876092045099517742268174723135676917298255239226027359943412199534626734724928989888184065671749390022117649023204728261378924398954938635861259678833899795459656082757915279185010204156642072682236534758383908309033351971596354866325969377062017452499113519892295275136905760308227411009578512045685301107268089137387679333928214282366347637512972331422251842602507409758297018062583321548163446837634430010684910541449417646789542782826730604630002433785272965917875604733625712321744302785433585047799036415934445878733796980339555430969845892212058184591749581029489414020328382592038802031064263560916380804532481056730059170960556948193781181213866468723728889971212500963307880338647999413192276221987858903008122363056832700115567958333449163117458067408053021704420090252410609751591330705231912677102359062295229330468070987347823956170383923961189681660428317204581544056543193235207053713427979454115721982527422689561234925545694135247493450007087653382694850742769941090958289179883963284301806364423831006792252580486580155239759752411241600851165744896015296801271674639967207417953620921412357798849343405122405403527587484589588002497429218855777054279078261760549741732882039481818638236046790224255845349262179870612693962845027201647124812813562765832361663512765440314294371728099565773652696359116234867994845203203180162113395767640616490098779054311460329676636555052850965839630639992048231803460445815652274026139782936814213905356147718976036442144904517891380430957842787857101238648409484026734511788874822692028678620177714351495297396595509004600120249318474587523544820021133910056152322717304200143753728273201158528578878477920545256272173924704544275477435310939869008834273166216095097614176598233378547708557044471865929635557902936688145776883644313058384606927856687651654207135240924735647970190925695074726306715787948655209535508296909507722628644511542358873492937035243073738719295520916434854044524390862581053618632152258979850147043323853826591364247471267483100476993452984231225162836103123351462031510978500237271004227283713299576126915443496379723550506474764773816923682823416235861376274859066497940319195553988127495911979527194578983105225605429998991763826920229718769053322474504139984434942884796037616249788533137633292180727343897183758801931754523772270808026318321033990248374234097831721738897256756871502288979313345943396285405848764588600837374359557482075658325437682533710147443612419073586917269594886272479565227883837665555913852777585535056813664807229622147343693083631316709594420111531039467121658302998364695581139058496020259544947689746364553751519880480264726293117138423175776723248324339539663839650085604905900156314946802402380379407135642850438072616243499698500537003894728997173791975814248619821695680058263097103589899922069067429618656874664499958944398371750508547724606840048783466461104184315057614369457988487594056027811685436034015732556413323897760027135848256842523344888293527854041323326579438855406596334172575823712148407905648841632099494682477224670001069537756534427527677802500832921456357996740587725005277037610903931433213208332698232719774536949274813401393081560488051158443369489048849289961090262167099606130645060256548728896515714954064947765814885336332777410347031861735034397757906057942805498308389389814480959466650108010802832072149722838190555092136719800017484191878468752795002505933286024841691275167260624901198266621267145160695828031249121260323032277073672419530572207487589564497954813591511859355195271744924355427086972019654299186031747809094722968154918453488108620668671016539765606652990541695546704960240982173178100062751079647153215589043981463811094974681532034239313901228118518886555043300559188346386111166306077716107306145537202370366510648410348327865521699424517462073137268780947969587633960936926651501161716631147035215770363754354452541333973937383714060267715123150050861720290464574790396117263623125563947199330171499513025278184445983733095198492513726110060266582888650608651681599476656069194960593733401007732138967113035645483525935823922232441849516026224146154739550601460872813846913646674403408015391238122143121274387761566431146164302121310522828113851725649217107226219703984956495288895756059732596987476483418190104231348251867668467242727687565250404795915542875165015375063965329260300673901743877571675989415540444098736872126318046822674121172739335692471720096563123381835738197907085898398192107618646939989255142286189784860465168643234634893091202405113595331127021097259919710632694706827391601507721060810056931183953733504805250613514204922024663537267740475338375625170848636982042695653423014403433160091963765918418291791822711277627457134228797567081023478871237614571336719488503745272671479896292182177897440314100744746302275407973520385138053640589292649981722795927800398397246372555023816218351663900457598288409905692750633302102660039176935016831590163967499774243021130200119013224567635345984971084363019825025575952067224630374150076345284675363158748171986428971948595164301943962702163918042416303239092388750406388984011950190983794474700548814771758788628063672620669672833607162235126180781321922368867338004508276180990781390632076488751581057230378016364688635101453060976566243147704718320029525181748386483794585387333022079033050783644204479690591187973736841432943066598367201060817122360819780018249459706056109296954305950238990692764170166508911059770390416632473197757151121118631427150754745820670800471373452758868143004153687407622377221275853822847026209473433257584530457906810458061869543508784376057469971018043758281533487759775236584875889032742296864676041066061943175584060323956147771460052652950091271613125489320622385447987028140579407068803662228164887715676847158687272049203344514107309026188960381728210207690852927750439720519128352180004042493536321256751363733552142980871556208723948091122226128437702346707158574864190270976559092682934664702548387624919314563483608887693763986751074942938739051358352400346118898993488052245101661601281522971030374417323794481243551356007564726796720222987491900885662511305250665280635147121490855609583683306916944464564222344197933057807356552454733858393374626341821105040130167406444668779746368474342754140100017521424562742529739791536445281149588560209550643209418498602599185862364336655234521007792666915961112245300368643805616885696841902325230172734009076235972651810704202813058356952048737437067371611859708843953831302519199386397625347613385542643167267054490020320538256516837368205725495324579633774602343508745784376850160985815967941750238239667734266858228250386989109218272544610125437817394331595689842692500787909205844950032289448853849720703547811692150954653065169020791667029608070187686333866222479842530062983304180899289724631960736380179224001069586765943174107838223975890509578998427573164185465109288201101238811700680031655995748172690408557061346942653543803789461613606974214682925666927852542295260127318776184987587964378831972589575694700780796351521352554984151560312949786736238563141938710934663837219058973898418164626092006497270717702378217262112663979791335779115026199058354328016353104497246332429572544366400518922574369227892002140182771694702462427953230967780947581081009759797359582867963624263573037700242870946286015241887048828373004299959229788950749862289219782783678587991280750407103898288937461400004101193186982220040176715724806461790737741728636226041956471989907988163522811439974884600776621589279714600621777042776013292199278960955917357333978531706974201131499362774616348313430763279790632558520793080491924117131043732450948404381515358670867668524778106202185589943544880224032001495785398814224420485215563991975349491506706889106216846256272574264289212002097140846008921100260270307708150440040737665212351839873377226789485845918501978731498934033554728308290495346462838483607217175225369949574207594457913912504940131974511907617107137439594370494522320718913569669801429317676095677272364072848756324857866184519469176390318715618216014687419582115710931636166420149298907645729803988931231050473115528124935381667227958291388132250949202922854579879334798035553382400281612342595402780143102190840954026564518718804091803230376194544190330879755680083447325863475786890142301331325523977973823572119155677641671462341817125331703829295933263057053518888702720022569021711191602491715319802230748564376602091341329152052298971874154735773453165026275607015967214398940121166116017926130841355873072983367016560213550609435817795836804620316126744389440892857499508630017819826970771854619147269254639188628791337129969859227825041792170900385752916371834341919388355470348759147070611887250343447500314873354352775049841685302259218230262876354277917398716339788803874393137168722254558353585071811559726878936156684678010962073954807421740919568256214017183592651960088036580251330015152883331811100747705676638195337372080876676819058312079973287550691166316581391437244348198123512430524980315229465448966806375471221959679899619931450793439534497551235096389928615787285901258075726336067672267104270373795990097203426287036115963726401598202141637718855552260654065384413103340192420946235677512494508080668381516061730309763478571681662442542120016011812826080131703094878613066322119983786051755040587753292924333307976277625234141721278514990646860353618358959844281798898374401340674098390406970640983468698578571057852761140637817071283889774020707688919253048064720247241082688937310074984638010894292403097488565767455151425716231922386466965385178853280085964788831451382386694625608083863802503616957339846069740350518443743193676418490350484527904948342008361989662662497052500059649856543122858347927502476664770627438290381530175436718121628482446861763846234603216937528082868485982213129295662297291409766638752841826805125961698473109596558703376864697526382330832729581326563480134766111501060108978093336969093352548634961300277032742911246624336522492128689190150530594824072917701998861115962058160453988150153951404735447505854938677045033297699808426037201771106520345896151341944795399008470850033374991654924408422475214719191212689739635000529795539117897975786531451330165212406419247892244973258767918248567941389779872217926180112590919217799861640342819348959500545560621217018629844716996614005074417802633625086854036665816480664387848158386636140525213047266056743270845447866066900815549765917265477423874838365801916490019798844676085228079788894471782750536397234821421763953771735726689680494857168796483231588374333699654098075905577911104491410620883014124820865281476158399052698302317179741356080176184152538534308920653019364353192655089298742662993555360494060883472331578058726691436409715762943278312411705115841503723280264148317066091271387192893043706221927611095016301933581123327381420780159130523282860661414039943214726775085801218572732682974481380168781640092273245091542866167257287355835516036711323666385237610124400256083492784499137112403743610726898701858093409525292666180605305004057119246377963359637951648471194520469612865681772635718171918135735365501504489304491593910241449202933687141482821123121595474507113090944292332843523341680815869592520947989856862308939617550504607073553043414995733726742594337236589816393271668427325287772482812045597136611435993004142844997696164778919802906094197019207271510186924927403663228880983940363863999220678850624510428067183029528822874106540052820447390574611246034490387968436352174068498107651372482503217767475273946185234129868163995158693301040142992271369424655730062584347970500973008905208550037426293375418667116418754927881596371254342082498441321009248146144361531676943754827271867521688502217853843287090638244683425997863515764052109085385472162207385508325563160776986807638555639294240396878848778319404431859431462942945094611743960331451182807484850013986006330632431127605008251866120849767295039145720155294304549503816625591084492977837056867746438537740034338357165597761404694081230938574587225368219098454239320435624489356733169722405588641823324595757270690852248603827733564624978509974232246779437758394383080150093708789086731589369947347293478755914489222238079239097446144484312420378993252537180559764172360318742457773533414423198846511943715305204065241680867759233735531440464408210798158958995612442344992608641586032824995530721251751975063722239883070984026384458954511197411532136607301010489911555103083595087744009677168534887416514131554064658598202590441528789217021969830695286071682382992272685730703512725254363198266578478674591579655870739727362161415351582765547153858942292764789555803866077570083728645125924298257947438111299502543345754439501783456777115110919531538192581497128381457467168204745564753163194080211419858681890137452014982074256348132067371937715658425648490761714426763022437983263712661036323577281443651356927811180222621813771251947603397470638801039708474288067055932544484370722660887005009069267137439713360503248474030901326871042593085996359193892512260241787446546946058213553263218796369410528508174605314066267156821810452447452643551204482684184209213048732488896440829293788782520174236365447125824411882591745084467278858377676623005844782990092436049087603508684499955833407828399588605627855977916766460755446233834385631536367352274316235504287027069229607985413792285029766661177961097096112434387324922123264421946391284553080692091973494736080622601898286108505483818636525797625586294070650766683850019035955170341082108293088201708760949342592186738671795573480798304627286968518467908379196897165021830687120784717381473495420966137196407940461673670026729411005628159095038033346647677833492346476906757926944809896542625237743349958498855160807897491995045240852282628723993664344465627247720563604153403580032329608570125565643772965262490845244259283110928380336198323654757002451574087756193149822331734210384204608883892748303935737838440187381403809650668598734362529994637854978729626906701060533664195719369117162665664307066014574288236426059624590643240883332450604911856648097899409100755729759473146745114823525360182328839023231762706540052602506238554940343816014709784006820062920130360234245677628049036585600644271513316525382427804476123415676444726309107017319884561845748501152193768008574339723835509436856275459948415059609905653408120753964207567769356896451409482505487123947506024362560748257591827388532235898030226889746688413021529735462247397405826754215780684147676103527170039276993390293603858746386442930589035498016617461338273987093746734353193478841101896014888848918021303643196915439545495467607464626667574586185162210438510814700236009499427189106918477634164526289366587183090788195742459740389711899609183591633726610390092367712931911353728500877398858260670028467885784427067497037774155517652024813744767552299422070103120706988635496535474169068833101289337712005993412892005012739332672971508536552513487426029036429985315659039735123317551640740515627538279111636062316441281966397842702262467645409563006712836611815550491826101295532903836542541970033150588187189646194550640760214188072612669032605150012326039383948442681396032209812104336621257133589951229780253731027492093370746150967922168271053748395738346100017116019104949429993319607345934804216777286312807814732610123091920935505328360844579979069809160146960195652452351057402641780741260095852945883732492084789020065172778820853521465716631447847246868705490620180451169070951887173347341456254892601129302379805907445433106846597621868481131608767334062249644526504568802691340015712639731011700408245720916227206226280475780619329245921220466426605413528602498014282228164898790425876478766378836323151789788025124045302660228176349721483426637483566274980743255345813216773314803318510223774464046286556228464435222746890922210372845211830389350519042228028756688587208680270463873787230262483939948245742878857311394057372374432723199187610618030465923850186878316421390161375677236531050514651079809258944543400134754804305067111367370247046055602355389804549103795249511590152249192920616124497316864363103804191898362525943311184176215528461618409458443986144080893473819171661333156836658189819784739985396051203169959587028089507960569536125595527367422415962575555720352499916414903810171984202835563567891410219488868990536302265665091470763731287184002337109191005157802513286776727127687911145482719436359584610279932132139843007137011157316494173388662160499196469772716760822533180920281946666471795043101791339554156786998585292796478965738660980527453264427619495069304649918130423623799532029093641456923396615566305298910922794134555497021191246245160333474642320848252391371653327549157278162255155016505399849563744981465679373457186435691768113627014984988184306143671645036755365998425450278051632722079943799112121341905906101341912381543608429647213496522022887629535282120620960701102167503845589740673197664691715995718387039308297650086738550044927617887914553039298169579504073116957660434036835962545601189904646597619463002053136664307379172857634386795260254962506030596015947688046359945221438494763321836885759134026008893253363631486264699325745911987846404996866199125171380821153089047483158346342919990171776854286161163701028265901685998638358455355877651570334590341990732695594388443999220580292995610654057368457232200164677339629522123233159594084070468748533698245342980989247626389975066401060801762172195055409633354885910069250189261432883274392819977570725025668766534385790553244413926559319165973983027459430137380567219975239125825618259452975864342175439386373898314099736323519284840503375784030970426442138522656770961123672110930524323959619065348565176313340560420816832658942743039832065826657123520048142306788975577567479530812487985906841753682709973138527885076604108521296017269876982629650785660163628118999352890213695190655301748637299856433235465598651111383230160541324817116249107227269782457245214244348132365515396922318021092791112007563961125800103402070562187363259005575646573278725104267478792922578857143769200937601089328874739880846723143203883528200622997332576009945276930563674520408380087474281148750903039968241325761567945797715284119068398290561778814619800464521847041011843858161463008913353542709917473541484826465704394985296427511485823466580303836051739062983876588288702695538806021325740069376466381991923428665562690710421555929146911156371835490284521128072368039738093042449647112998946172535186170658631736722988085042654934823337972091934271920667822073603214573478905433028415867648569639821258059302931782980789757999811141933105224929606509214181765921413323773157919015262369674733921955422445281591257581056026520517816223449840166419346441506035761892978128100465254964755943141312574340083957209289965014924697381493798009986848853756112622729962814421434377309386928278699904778982445294633706113897059532723865281314418588721755645178654679696031275630136498126982984980787689642912094602573510481827486652238602160501931750282015900162846875955308004918338766561299400496834141764563776647798795592768478010502101664039087467115556822412667381707119493215962464208681973284573635264804995628244131685081174409246807620225630865224073110817916410060273165323334594339789976355206706876478449348470757032850759270644854440610507092536028537988410559209823316311846946767312014876649638468198568745000500376980626004888021698727881417612721756921434865768489580426624903929109605001531304372479168806143873368207389909193321660452253016036888150196903430015081872760706134916344131744700071716514307562076097599293890185836659823124605962862942375960203967156794559518921572895879652031435849156943895124331053402655435854539212533529945735555325495650085650523871247838185854206911708760080186622350611818571756493002136829637103115808423524676215331355711045306725897703593880529416466955642425433750874391224504594289718145790970104117195433201345166792869773047135440985609745040451450702040029006315342764013421966945339034974204606201032951922886163925805930949531430618965393525291054772219616770734946663915992664462318496018015071828853570725219782540051332082993868268511382477644312609152975163180233446714110471121653125832158846271994739843760762309170491801526973866901146732342533562522887273721291086264098096969490397813850929993798150374055257171897405539791076886732589507832748321391596729504902897884674444948421456386115751981082749081636240966279334122856149851760179263467772966573931644694786026710022030395853647961028933647637780986284763842041885332704353842402746300397423160942755001166351652602705481133620513050098330791846432196198571034218458976897162679036242281880134019685868533362797462384138093582329386703899859423399549063196756640222684776980473296136388148654425922128185057871985665190336348388801131457095763522486477778172821458833025385195069639355344732394487988208061341493390875287918388980210895969341858723766920157173369475827078948239111549995311612996327467865828950817742540782500570090627301271642472508758637948981518183399584634055155504106170494925411762126071696143051684360262865698716180826262280327266588509604200078816713639362613803131178608964271749866949410864274643991222400456714970147191183751135529493072820990191492699982739047124357437692135681123157725518406007201288085534132447144060123673952898733002121303479273325545586848356526424761924066873648628273310241087354328854325689997187482535758323809226133626283428073148088032406287620724081863280956546846915865718737809763509293298226348374995772333100526062922552702190424415895115329083681906783725472529283841383174518980761185342487981540982394478062449722692864189637246534586445478344380536597754309305965796544342432536337657338793128804245746893210974591271519711027747472443342139641773710645043268168432345335098736938732378826268739305380412239491725640918434682416092304324173663168105597899638241280098878684746850806002978623991545739154832395497819900168928984508609742686177199415886675335304838417280557098962688449755969842549505099621118559868070806342846224658434360184554746994087193508955241875876514062136464710262541195596572927610765801576230808662377777219025175365048775660526275909848497030378590182536896611785334402091211243903199047590019577243402315512126749946711783195852894420840337908970330504538981954797687950249056357622795097171176664083816231265126695218761719677522735374185242038139713288277459984521974084136694826240103097983794505361400480468692491797810547381809889926153209184116190840868314139494175808015392284248914369397248545467370289975134319181060618200622373573486942819784401226214069696378332677865172139185896173237764365324764218465865710408059084677895874264768496550693215042232248183274859864773419993003898636994189117127234494353157450304568092030930546063638802077373019605761310984832190922044665875676548749870907726633012847721864088916696176483180898288047934451927905909941050365113050390360005772680622874877336824894020154411573561815540177353940727270692104612635380250098712634780698632050826694439682114871479161400213934720838235878188815742180962452395493772570189053772110955278064806021568151066977370368964967108375321223057274845459954278466259161747227790955486447754692140663394947424251879112739428963203415300545021997218406909675111909315698683016263545334171993479763673602744316375509660138441931620017687393581206836921262981107211381067248103921166590904187530657499140904732889761759454847681517000085255715791598212408740151412295245530689177686105398608003589100261047220120228816047407360311733605668369645211456512085687615179358132268604586491916100302515427146139400454881817740695267660794228044271389366685715459448704706664350544692898009328100774796626252225556194670646107300449256544601865781372872261053588749367288578364249773027915202420053946105421409835400055681324384286227756493489794820977858274854339919000623434750782126879878524370349729459840737385776515371629756914911029959252927254864990778178084676331170591650716186783812384881154137639246151891484230592742268000266590460670935060186265232692367280508825767566752208666744292512344826662237768120726534495648297106660781416520835181698165062451592705725873436286889299305101474711983220467349397185641394352367276669205043212976859594735963553328968273783938923155165501881245284377259111746587247148320849780412344499418978427259530103615396809936254862773310823074381624950887333718432467430983543299952986878903824623932274744868464984700822434722346970014791748270019031049662476755296532501095530622057381084022595954751198229542604188961195291863333441009086887117273673044298515635636035877763389771478854248796482624207889098725123104379967861828515366227677860362259980812110521853271912743304153967084658504738556958063764076032768716468761652173607285118330081177538996904295607121971736945364385929628168225287399516059632352444504460755354272231784498979711824110035513944198769134804919223572046824285695351613430255402900236764077746245492847025535226951980550704168831064794829375395610446774083336496790716925092649331607376162401345177080780333341099098237598612096859316907980718067953245431742909494930810909741967563408253336799020073231452485716950437121319032097502493744579582443765208194611121457569027451920502140127385939286003364135707638259017398811424332534851874207066383059833657939619171549052241099288942493606678879695301071346062800742370925780146963635593665432994417799439903010341767553057371545775294679099665160160281909492762825234545223488543217169761295579502379802882898888738310292065164615335262428363690170475726980944504492696056070229090695372491971861502430680423650964329401392809204505546613507064815996310136515983687110977908282745433669527780199826984535350581145521236906805543194507206684696878344220463987871789611451734190619800590006650774482182903789232930409466159172374222047528638357510909409031089684294188844568715823782896197345826554221022155648099319115781394259103231965714985087421946378690997631065374305535898492788200388209881875261601712788495859459644157651254298353249975099495250082819728475140153099174065316102771948671325115175356565362238509962400980489847621796962576626800780840643262475513561961518065342266594290054118301599731606766321446341855277571558661175238385563247420325514779288293630593075843368292195925194285012429936397978070402291550472722628823054076439389521300632087218640208063327581715019877449625944393061570189458445801072800881015554977094203661047632934385298125342397652263068024870369479426472764838559820685050714571830644629313827979791434923499796901854650855314917525219682855094313147314911561922244949126912905113253657547967149504074002930480140048573107478896886435233001868399629994376135629162311444486180488067423518991328827614332641325370651922703314461439177295477517292356834225039301955709917269503651392642127342471688625086246883043580059255753055515793213075121031994528142372291353584790339579036824648152799497260791280390930966897989798749741078123868463715663391359759343316383364892739728017533951029134431329274692261066004800167456356211339554996029268962295320161635119737930196662461380741015659203433357831169227926443533140545452205877822295853829666861750371266855849062139768000540201559438778260209968582574423952945347775333730270292730593257759035435590404283242412629434599269385980812435459472973738807410006486810430896064282786869016296816277949608824209844510068510902245465741641408244322019320745226733105970480422377001214252708689917123314605311996567223724519513328569113915773507000408386543115559611603504531484134703983459360104674391908686744320988409142492688422457145920067206171976090269753202462616943723392586973695886038568835055649288869441807196673558162110873484771457086216237095432305953320420511621111662547052666512782328917286819633207407898277468041828302200884938825488718724045477885833800943473139859908360511061938179175247359564501614793756265056642057853171177215873701271850798037601873448061774705648506744013001872342167676388543558524846552486971602615143091413830617727994034760362781901668607334416144203448180342120768379580616018980726271633709784119873624677808796504891510794338448890511365266775957120629688400608418212391993584881183853680928695446401154091410291342204073632458121789584424611195871731172523706635707636516755440863934740944134057363496853559812038436319882632594315987413989497093689287154490910309696566367650588414695565940736011716562802698798348105763885775354677683450779749022393523254755506805667251835922950472558791778767311709461929896733211772801771449303206492927509186562806722306338742322025813856470192461323475039766936471920347041386636546964135851368638932392487187795874479010036524033125522429448305971222189246966324811456863071650911153153159560423447762687308535167519815218885751640513166720091773162571246857702102107640360142341745896905455293783143093454913305274522652136671945022856668919299895476078150777135387631080168373007662290653288828948175830926011253918829837409484310606700184851970130356765211630990720135352399458324709160881108244318455399529740712546961100077861007591003384051248793255976659299627118024465268431844778573549889723100430036236585388843574149757636074663299218338095354467428420807454167727606158864462756638908374456910404221757358757424123908335933246094409964754425621399896850838513961208982577269160921165487972822908629635763918516783610167259080678679662698208324036199092736831847301611305357452852883354264894559676502896480101774652042052772374686463008885752328469233659048698559343059967769682671882570669008322173614811730536239264568805288441815287184016481949327772038313741101260296635684298172103016543313735731494288158370096810932212361628988165569296191087833161564268233767816514864103006040478541207385008912055705446596797334440922384371974191666988661711307488139024316213954855206103453930496614334347729698229324004989456229182341602511127004634385447241553037064943752105370363568232989166740469061724825473756597126674187969721008819432662128475572675837764400767733116844647872946736891071752344817402606454917771906709256051680152981634639898318179093090399300707191388315866690056519129372888440193742340091763832806004042306544083097759870552983214453907346736245427525091610553985238860519931772639670450784723599326914038497486908103383815157984570554698954286648927968806522098898784123840268223869449513482348403446313167876473254689773329684163993317571616299711245836698207693070319228227379052286241569694624481314192111942252816738558412360698793275884831132570349928671408533879037969974613752740227588985460234300253101703518182170386457424643052523116974398682319595115861262357374978637935371402684179066386909990995082959401359982394685653784332544908689844867720533632797701899978598513192522831327980248203962889288802319129649780863243765367817947943834241823674317261515695546772324452411424465624488853267908550606032483955828420289678749393416666040683784318099779359474256563239668811302823333964039577390481004639946217289366279608883089732042025060524445352056724282396723610117329634815083446971545234410682745898573577071387513494739522092259544218799554191979921040991201982690166457155117781035620034261673285449850829466044152129671235602961321361682165357755761939561410485074710497876388934830826405697615093746964640750655799712550586235791252901886459129667252395157339325447308066532486146840010933645625926762393184447615488819693186388938089047366637464615023351851958510516470232334277686170562020687814313145281131020779912139477868917953478472440585463973736186445125885472674575786739082221466593287984139236161989260132831472786088799478775441432197844257770345648997674961737060570384263696512776639979869831056183015843871899322047453899665694671264394249969370880252946551302519609939970513177511819653518178765450346406043006945466612377679006927809017392948445622022714130357178041726718169724675067806982626639869875680859938065503064956860032290587201640911712718533823264277333488721730914700536664659311596212241527925596079458728737892446811499339170680992632837028570167413029971544252396005672604270127267886549327535158443132590581113309265516881104213344785664743569289140831783346415865516926532550203633778627411445139146503674149640458640344690911336061105084158505550888720086155259985893216203229805262874747211577366255275918392662040032410448382138452656527732945946637467119852362408107358135157348274563053484897004360728155543648414146742027078629425053958211315778246563050108338643044210684038020900868650902775598850126290801093621024428615807744147519948907815776263291443699826872409959292968714565841306436143300043356195746129787733419795201074984397383883523018522938817402359079114952467473705829050124624706086448415174668655124238269189856502839716509232198103154888631945511797024273605475558640302434234626674633932717160079293868632902679368413099007705543597508354303514619143935493483411357120418424229688762528428021687269389999460157404533419248320852287441769326100978351051789541729838978974836347843320544859676075418951268488494516301665336918105368244904105118720422948207913194452883653799111492646960304191636530335572154228519111203033507767935329082530668991043020042767131746923770071260339390652806793745831146669393606769719681286429001363309410867487599433566558708831893252076850443150162796695760846201068502584686260394532450237142643963640274894960483417963533238660575105528535705602339958096817214135870147904399641712000607890290752281098815815903128118287253361002066945255711677704924344571425806760801233355628337227563155067877773289361774664186648488655723539270771551979515981311846829660613245143415775051900100397160176641052650005027733926002910040062059070906973650439891122186544440836436705570130906529943931171446545771712393581084883991988055842210480651234453227313249840190660852064394496334575109092601150157471879129622138309335106428669431552117438674410241096718013051451430283122678916744151976353562451084050685002355753635842662591062547425196534857981740025095274077708456391031810249630470260876590771985743352900393800782268565349623467534283503007931546904285874139843467560285652068944368127997109878211840847812464162799880495819092758553696885748738299684480530346575780209155387164738968257263098240799021496019174120071636096159578414628817842264314122024514613496243322554205833632534777905923944847984574423761745370845031484821688875708499045286875024701652529550733835497315392599092283863043206192167122709283074214956794138848304585782579562114998948300674785430681065055435545913128751399739589860681629855341980131961331657621620419621990601190307144755736536819499808660054123798888523299526103745749703635006027050624786480669296820356378278926738870882229569725606305727541624950757399218820098702109330274466141516154865851875893436557045694277277820503104957197194998109375645846532502816911023370975045777504653449779784805642062434255312282575794858529198860400776179004888735624491298431129888079201993778270701397606491537878887266915853915027156172622122891756736581757693859526592091032880276859049798318075225449388284732412308732823401039104744862921910628485533359484664994490002124701846435323704066380741622472200636603215421696356612578763015412217082187234485165902156844246585382370390001229950156360153435967706026455674421022531801628344714647357492123510390359817174787844604741278498816751790252725525985766609685351570648756783503350443629117056814154109705333822617494967240505826905565877504878926147767063605283721382975472202979166397423647007828895664906915844256271852249445955586359042852469424409825781579630592894657362393257214873776379003245228387288253565708283535300007022881314847595376259022850223767290337632377221307644130103245765863547118010243878885603260267882391756997853470375086892437071545376467978544229037716861266902870890346737170212566245246499651205048279275467670007429119295295322383429619856134367885935893889513053544125895388500693854042469183281334312374850817392653627220453295851832195628170652090637713867344810008087707527809538458098040637694358300647150916791749208688760562790911515462464217285209541018029629822736868077597546441750687427368652799026886833811842763032417313211195379236016536684738071235580363054413636216941143623900178370655879013290857582538196714035479445874882043747090449931653674936212374125628220698902808068005101618389462981654509564999439659206200777090734311063174804198794221403314418248643798738029993410202292369552714281779715497795675099128791235314847287139726043991623436310578515259373327752288779244546469088713956118436481474940061785860695145121670895946521313510973995713118292587717850217769140054062799722636431556390077813819423748042390621682663367398568364314119004688751780335588680385590252087768588503129962911584700829069292499474477735996151351549976345912950157875704307408196357469993908192342244606996310217894581140251940885701674359633424473116201261962102199599844447353594241477965667926297507630960063873771755916531793129202039982770035877363328010194894907686216574224909819594563076136248212901860832257494226188490217420120347400207482958660569366585566761956615394574355120240005391602799214644127630073649549861477324112465394106747424687456532447107124506159058711064293570022364071779970987094627389635194459479849074224859822086368689116131002860976962810246994556762014900427492494097690675663724068640682570010212825048915439130208495116121505456347514368155613948822177514357493462814569048819034209437826616720902639329564788831246264846683775129444984567343127356078582904476944821742898354975635591491255151110098573081235124381407999050396316016656411638605655554142043820185152936924937117380050510947597244083656477299862777058812552537938836787680720557942999260391648508050093428973227198681239732209046676345203299566039464128651838238183129177654173585661898163011334961645486913084111628881164713154220415671007721787290089141474524228460224878819392113488205937809039166326894359673635408512615566593809919545764825782882289503797179920788704902827904274453140422284756116393579677272165034341363677429877938679283731914748459143342162304109442080132027013531414143872035320612307200972499297949460468516862877500566780110526289512923888934324800093698763810867467851010275308328978409788485572195435998183788746768843829137415012167403948302268855016308467507878158886590638063544298126679467056884136026714960551282357281905170382019963680867867896227363499229448207868676127674084063351410949521614234166282447969852888068389602904313787754895552738665169942125248196441765101203845593289798966421715724730058084941674685091136916806417633969493234758381013159845970331039322455344394841925760385811160070492149867313703978208461996606403331253302613964448286410164558997853335216071660099568317762599898653836235967972331160845130694990547445347198223175384141880940935190092090473805031184623982310393162138821260644374944580219228423024913244952504473813843399459443114821015256670224788454897125610516916004465501185061778015758776420644970411157289667966304236902032159086874531144036670997815231463911601545108366361940783330189389230515316359117753976490234570247215213041215242486526407336067383882263636576501425549929534121089922513032204507191531017620711510733641764596662979909558318468434860727896155292596566700571527450752746317812486767546714245180623268104007060927639992385558476532603370463115560800805278725861813958738070402908625929314310757942890112327486416518149144607228576873907150984482514478711254958770677084931973702783275969853349445959952157514290255462127321162197515125968592953741051683101694092145421648593368724629385814276253129266778057323668506412561672012577462376766378207800686231789960544999111299000710568023524025181271137590140159350187457638358159076946653677302873431551906383833225132112875734660718203010866170691225808963652845613575846187193265276157143092341990202045086724331472639316425972952138367058835019765630761404992710767529160822210745682934110982414117695976038259485459733684634231672385120491014208298593902881808395799248674094417872982735504444307263293964029969691932720913776151823410206777517445037466928325973605388102437664555597469977352263052394549461925764105768676389887540660955773472469286723271518714363631159259439046533264897577212724679965907348992337785156380039238677165750811033823418079088391885493230336095501075063172275700184857018541341360373478795405623264973019365768436229715423033288814273189880047442373441612676204961644812692238464241909103829499258557682792303256947757170305407722505939167232362393800193445764811086337398191704308392094150493747006494164818114692457278713820083707681509524671870572118175896634791671735534769185945619932166894775298381320890799905836460625482162919629424135582514294899139923309774039645264938606383876093811124314428567799254365321150786880280235549539393964370207559106650133012658113692032895254718365797363660097497538222221357383878987669743798069615818764554723986990627711016487461592844043885465614141385977551649666404071707896496587227311696373950832986769641363717443275566503367441275702544401628037469092632166976394179755306540779132403356515317155723905270712122353022155532933955302486957345723546434964327649818312502513721546180347906221948257133638329036525719834255526961800737731764092620330895885958052096300329348800100120678519605946878054527932597010720870300020816750083719251810595914984386306087912328845173609630934230497760704080699851699176418947474567167110981130967758346784301732293272586552691401128215386979273387956811538929446484310451162999448663741487693143922131559409218994003067735602413257681830186438721336621124155592991473706859368906819120118370764528709481225598406814999809751000187177142679631361468415559486032994513357686854954866661286547065058085724943914205374801748393242833124287336658674647024942067920483391046982132375308510359934488315785710768436444712614874812308783790057733960642670714116297965195905636402232650575577531994377797782553429142606592425550344763832681822948634852464042147076665743694733259574047199948188868452822541825172220648129751907898405268252171286309452355245548196432208514978265050390032352643501887085489653751815679898714513259168529244145173481807279178737670832167505376646176365262372408134970488850909474289420803562964999938836154306219808110636401843408694959503695071775582632421403960076717339777129061822551163720906216286195615087805272765911002124707507458834414634465799410319830153299429670902610045856472371565338101087050547739990930185996501227975337985425336245716060167497343017662546852981796132661928386773791804027783839971053884647151902870001110226520876053736566595552385377362312619260985826023061116744888043162813229436153227415192866510101293898968660742322978727486050577714881318903636653027894158489741740277856886602919929064352003493258898809842520692318195494010422436415461294499101282980986257110910857806724897429968807149702300103731412893579289233536317892057266930937658351582721172539497882875490585332408141352653094845676163594053183914331285455117944186659221777838854174066053946890471211788367185091536979677281564789229154813060735989556315449667221602667597350973200188352119326866197329686665210664022708941134942820960871341561781989200792403375305784030739996868573673184504789191231057315570223125475485782985155565447624573786403721300909125997302433443573698921243359626236582555557114595104923059526533777584472286700947644007695819990755660910918473882183447496697894380040568927233912708457584364328687287068325248330596441233684308899917028730367754464986689078207358072600303478020484617007449933214595228319876765378288842167761920594799580334745307148607874803922590707312080939075976832751666857056450546584531695632952394446402833117183378425585442227988808428492516121293294446433765272507781747623778639478823837719043122937106409075920170343324605641054363707992732737982897725643603670030532087089099810909072870661348735913969953205721464378911571814001736679321274867964146460403796779829001272035501904364589220677670497582912941006658129191174466719809607760982309585733427622837252108920358419359781840552976197154291261090814763480408000054229383786669845688257039698243212476528078322958504240195231468649020542204226622772482809331162865866949917359444417583233172718353664054206085255083192430070395620563143413650748783552866029119056088838270947675163320123176367916562687877589419380926868181768758564843357481816976105650081064750493420277146544184777204302072463049956377495239553353555163474289582760504864805569850588489489118072251177510412437425624402822516069122709275338736617839293976763555370195222742412388405656363446574098135391871427203013736462663546903052724666034207813185583884301456568481663755055865353308052349117294137672782801053413705076317063872357204746276678158844417920086957942931189416750057400229323247688656737006424869795411874921766562758803262020516807661216276247920042639122972001598931275858209852799091671950391604460569715689988163943437030809363119576211016747037522727260719093180436313313632610740904335125313704720741263963823647249152271860117353388612907533900074710628630961803928560969876311841050598928909025625292809684779686240724754914298048054780514660354831263062745283824765971768903661577500109292606713871502378188154092565516143724841056407603332951809964666085061535711360816020130495153155175216730437271586127126612795184854703653022133386059047307602440665428739067003828359072424211674422320538720788460323090600280198103664526522775748226819074381074975834421560235085502138763128071973804190461889792316369151513888768062713690653558630965411917511793544348544602204093930308539868824587490165189211883023534706336115341856567928036436140415113619154737866024029690402398854069861738070007728175020767441862209624969400561364732157037874494822475987243769051429341115280548155717601860503200100890811928175970131641029215661543131409519480372673286411007977403350325868781436825614631357180562770165818217430831051022666407505478687930260253395894740557039431173525275497405437865051395124934838573063429106077423453212576797448208937122176457452776762660262489719199469657201431698057071250960779376956211964954910242685483461440719887971873770182438992697071912890155902259388586656271321338611865439518262086166909984618012901498577741096906614487421783133477665850795921937483817076911324651643056857215976140798533432586707743389202002663838327074559888638597399482552251855743048584634291666581812896396656931854463794023997968785375167221006824471588415244838455656262350726208043272294634986518704747941528636128777617273298974841592370204653498522373994849539624405756147207255621173902282379610193606696014605152680763862020104334259446606777662373126973941882881944945242278009781165579907896598527499330328149566691243264747425631441465483388294434085222848298513770061139593952838788020400169979942164796438839997864424258605388750952237561570723529083811141257508760049933749824736617492880427617652527288644793270414404841598606785194660414230419652889628417494028508682664194853938393218936146214252956482047631908919575488821960747734096723497638808479751245317600872535551350493882641273683659010088957592569186973510375106624448301041177767729070666031356213295700939859728202546563478187664187019325301313043306156033828295467597806692317503270364097134221976495424710310719938303768985613197100605406376317408852603892931221736992800812096915634717741453104025303235793414263975351918342877141261073648040928640650115239580806755009043919372616708441855614963161631964190536749257515199667654520238044054654591826006302713400080624064847457056232315028297003600941665190070063090950400747927400153727337371477874308570465188369914216590010435256875863456913932612257072946387173109619595482998618185066531533082585948708129471946365181014041290789896521554762446303048531023687974335450027000972973613081627638038058125738001213968355233682771063322600381116774765911803860736714896455380529652812886620294724220918688343446592787355106885120326582413981556951029950981693663702445160880233184957412469528569042301117729662899441734007424137098781959481650469240339947493624395336130448491435685235021107576617682791900528828739033869892974820052552329944155549536318422465074447986394406443135305814625035789344951315946250640988255955060162168465219959456276788011405170773810769174645006322630624610279232663707798309222750663410669313259659317713678303459421834300542343657128617729077838117046134645524286623762426184271818933398351129352113601830281154197673678526199780622759813899189005916832536905362572902938220057948738712134225374418127286271617903718192281692816913219624369401070619886884921011575633381999492461250666215751510950879000869764603006304998805576612475171490140511665892146848811617516586370209562452325274953749627279743642730132887858232399789089797750913403646010586621090435851025503391560696805309121050799829221956291718610424180098888884317298435564338198817736397424661245698628137113053282555819467611557260141504302211023995116825021743913224943000640347135387216546874046571099750458109664135166595394926699351497490567470878266461775321693796072409437690099139177406918738284197731571445813340965789482388244518910686680258042066402790721047763019825153879291547035867279025202797636798596741695999507385623475624047314928974567170363022144970171344229851188518789683139777735926983183377318632372021099215778570279904910171417476071191426136129058442807835769167668676776252907635229639836689458490227652115773628108195587251164220716348335782122666089782109623323019129378476456730159385968626747979913400471839904506836703459015132640490108633403931560939007839463853854688610593716456560023924077894733764074713536237389457245913145242108124671828599976279294823049943353283447274962043014977696575518943989301734343155371599375283762797846234818826957908415566210486677805602829714941367287207904026878091191528717180763719034496203264372229233896431131319862396150314957124585389091255426459863005393608472794266236128370149101560937820029468300809789643098610963268537583093492299877203385883429332546573764695963749497474596052819841647971179409325801307462255748523162483502258571939055373128110606428190890975299698579187054231916297598055816113245840759298633378558318054206682206592273592758828123323932628989836342054814813399866456838806308304759061166315155941342861390847807948479378139578964831725546410473734597331124195472056148924094688242645069202780741757660477429157185247404304868870454402504468663254082798907721712709941178785110083811067600394016154419991685099073823105455131574335690662178453446764886527847694548432172574443811080518005851174725936973860468957523707839167954678628391014435742892851961589633267489117398582680573372856755029062349388574595717782291121877809259328526300294548271321865104348590312716152215425469318687017218256572970032078566832820368567731220638501472145047903034499254353785071226615897347428677355865875693661508520299109976806158431362113484485034010809902687796167446780933785131704874410836232163968631909290352724825100075201411567945275207633332475113050643071262089370161164714085114790779151887529243493485073647266769212825382176083422520319616275984799465758908110024043995142488906423064539472216341376191404564725414119321001270134716982333784763020287295702387477312227970547419260399512430896003397624236899112460476636696145646577186215858492050695177434214779594327846651694216913136909192002391574031914927472774160202673634626116298849009971362234650516568982382078238751687258011054066058310434807700236635760928129326621358966355517355904466986180153233631229949497062915495888818521943158091417888020983460614767492129269352599464598402504829425200190458524585161564842077224052378118434180704153433316758231132324604868132290699269042344668399714871464797087613105131644770987188343150308883115208824487065216044218269340873148937353396114374935277670596792826390172262903153513518515151295828944120687185371114823204993318839802872676754495752801157755479976835354005156305192332191467010570669478917938344196869307183537918299166976508511425572761811663136787731809512657633489459666925952698824231369849008360644626245152666059039840390952087754251632275317539094525959825873445766704850107234002533540151659091102633597610647439874621804693988981326856530174495167136256065446176539837105141909706420371951147093726420654745992308962092275384816102294991468123923831416456903323964010560323561132840135050072123469443978441197791080506323357585819004016236876054921236575961291270583811229300870338060815913121410920536074151746340779058143827513403153078512543829372334907323545832797491888975018768958083828611250659947487579859881872522096272898244362560257156638954926744154314582412107493532896239935924203429492956867614842145849970570828215990389488745797613299729079169222487626318738434952171871836289874917938502304193902179870952178037008193920878997675465221741102582151269735778654084714585217279695524167368310631567055135006147977363136321728756557192698159972693699202980194494688183389612675663084486010505893921455823254151728593223623157551238698357904248861306150803059585037159023988644479008254124760541948144362640343355585327844981889583377849199314753692335787887536217550010114571786434988111914171082111623008942968207190839739356807204556418742587186403324967593946769063773487094767187856744450229284452898208720851873020355235228622012826775108384607590154463160328496401008039892375211800382754835602493977717997798126152960015774749494219656911567371976945208365588883160963257873473926393243956121312516997049838461750501737347844735009795435570574366279209743085529863492612497774672076845732724626750129994250031597727205004624586715260359814824044569227147218370332614173431709959444126862883254874222040677110090603853850190168746519598105384001821995405823329607164352189044933934806622507562046196518186940621189110869519212748052573048828931656159463140781594579674132954854595826828731817122299139327642313270067297393809393163723657993428146014383790085765125701688440080559887773688396646900329067495823288506832898312370926464477858799756857909860531970595539578583141225799934732030561107508638152556993504303358095527879207380433120272230778245077145069151564193303185375660243156049297829543219070402109184469709720481621169039434033446021449221728004073005986827355044606097048795471343951546795396850798369238580215849061267056943506636923031048233188243848948428372118939806956612942369793435672333151629943565325834470930396486650264189600729745579496802884090595757321396677928883612675643972539667141849282177786591562820677397841358028676275521517739309027370737971897866831371717393794480951576238011877993512847606236680277507254139224701057080752095516198164544617257278328136323416358497609782463235635886403303555338308986902030348950900513132871473362431375675747495989730412963174910750494597518434300588841865201957650796207589537736684246645471829058901099183961050438510836551772250302471294316768269977097296753320283794842452606161037156564152842908653349002809091031180390751965434480399808946521878577063620580563828192868642984435162324612026192735327693099910992339810358360853690553065132466157206108642868894101694671127641402839053997233609720320694201664379761691068301724506628425106884228626905528984738018700062791100061153520006315546304365122082742444048042156925723366441606656417011004061141410897593601160027070074831669121761766479115468672867637522869098523683276466835214669595103389766432232838270938522043808407852801587474253597364808455784390747587609037843977049014634771466908460832511010308607365720417341509228380285434262487068569804220611682586275664197824580052199845771047462642177227450991717071444633668247366179984003139036878331649705103227278667740670067053513522809479730141293613482561054704287545255021722855783913149917371464317787803225066486223950013643651824401036669799494966842065219661577653823706367748492775637744167253369226985527290449943027699871155542485745812825206443292900242229092478744807716801528058432320666035977208295229479609715627745840379436081013364935597349424443472392880823562715635317213361392094190988282346609155681404758588608071095685704738273078893761916295281792424373785976232156045289144096336662855528833333748407020435767131834698692813886757187305676408056422286467636318331460034187470335192036080699663613633841930367697631696169852194082717797961594984079367141788680680379449809500207224361467578873653425293466295613044683069216199621181296901645937222712540615732393739096559462385508133444613461553428590844239652638552512676974134874661874938053467582305914221934349913591539709752713465632051723233504442982249249007297283833416024764279335675927155162121338605869417930158735137128017719875239147272260750264249555184294339065545699931759607055869102709306924620063585101148744350283692259422001992604673046610690343647491846389422942685365371906722772777204974206191606922274516852894612026950344461683182258035444750966542257253542402709425497505528923587868682349172373450212913632439336861639362593318110012808203074502022835836425117374715686202536724926770123765690049412851932427867392258925122875080300362419453721975562984574880617997576276801043087396366833934588557255168276348862160533990673193723891027822198529754040961599697713460442193094791437850909571525870381555748004149045723902117925450892479312958962692664992743473484084415342994567948636761667505528745653698621557723348180136180471757810266996032450671873901556198950494047182924670305069094306719387024189695035361629151075934049983207054564617059915405490832272243990341250237940753930120534922223907631311684005438274929951168861371778962963349466228748982352647976374192214752094685584366863121755397425567663097168759619234013719850079245028472754343314362633827748075751834852411354476659931777582732267428180104329749484497259222647399121677404630004280072884651460678677363445798659721081234995917157027654400719933195687937991681260715968345510996023711187239945338790597665453579425210552462104478947772671501649967267495794340679253949572180886287624862108982219275032153119174136310454428520848528270768006656827903516308422587521724628738825541336226323577138410726262604954565868776730678370137909317534552574803421163429579922316614196235533631336636232900501350300679846473726007113285471262783827795349281739607239448567321415915852747482352871044798743041752163264072150268791076115212665935748777215419862061244291418519345325585228377131330401501539752342875533560771070710002315376595226343057718380876292248989272635298190864062397792572478147546573927677273355914530869211213942790956668747096927522986598139094109215580728239553193707889663472253951817882191999172994516026278641412548221582897177555452155609695592932992895263751995709511498104493725448557805702460267830230313459494849047468706091360763942807939826692207399590458219604160284460418927964041130520906410832748054153866434244462703120872867426150631807879327403365602849019997234074008691423810271751900509577859971874524864646671087210047414112300214961258077902951104579623632665611339533486115331457163640553532838564162373252376677531608312179566654033227245489182593153918571530947733056287785798366890629564528622519308705901356981808366282312174937916772486478026168651030013514804831056959935724583836551623643803277695618146393508695380072983892079159814730315318245284322264667869487671331991200804083291701123616745724754861486561963481638564823100698151968196433391473268472221996688204094840171521855493454935932809220886080252982825286436090258021133585005467455219470223374365742449680730749956779242649782008254472538770925726361973214839270375311597467808414667972787232097806993709707274665988323364755738840481105930214368137161889716884946439700164599097026843029601779905870625608359490310324504868044370505390912764393704487600928989051076598315184430763452896437456580303880162904106323007562510415087951645585243008928058951299774063594156384997717048712937861180253690977026741742197348195155190267184078441735555617889656593835814132331910597889457605243672613126359343772877427920249537020892135306141105403654870320157368392735418547388098972565004251573679733863062685105553701134715619282199388646958134872178620731793657342686771670789295826513375768359917184965622797592996486242268308180650127727292342328417166314682754651058952093381820803870708367601568388935243996530531107313486101792487009341387991028813702813791076747744001813067581408061459664725862229231093393382311751844857590696566729083468237368421519710953396541897101142576588567269470352379752256236511717889233657294517879774858969530207472042682992490768648538813438583957501422675681074917439392229277954102715988891264619015200950495409527308925925915609809948346442201303825324947584489386237003645393984883968368424302685044882369638707407699409668711425823949979738416498020082467762359608260938057098989346204090780123455073918802548044083981578803690936249975929744162898378508357116080016007951220048378457960577523649732611520351764437297512156257894792562234345183924247627279209609146111593404887959904043244106547108615198527227701610432191689186964681273987236336826813618760175681689720178304777132861768234037597096337637814303913618482728380909109889936850681477355633053818099799338401959978687427193597268207419627801815260012270082182668822276366287280599938287493253466523282982754070548031444685636002241845619173136414819353042889812681725016040829174019360125131304604466741939098807072422477684369197603850253603506403588067619686561708804735725320417424255061950530464658837995490555615143817408779282514279484405328870748337615650087240333932063494925848995402675581619324238491075306149980001063239948223154951627156923649350942842625785067396893003796139003820769128810305304623675985993214552821616667635854681226686650562021556906773750556392975879024945831991681869214060185449007120267986993468361368175265292686021396393924444137182915811626847239129321209650811126650055097161388586719177022491373712196237660752604973791340167752509205547087578910303924595882621785002596552797587200526717974226122335240506009246060008577619243549692635551637632433525498089706653840348122471830501646816432090283180445567188517423458701143789383685966300272973558963257519069498341242954193392921629680775671588867045782758424996604020941689177514936565116562602504246146746015498872546231040532501053750124947114769177764261099777574172344916041572173673636802058045756080178608509684683708462846723367357584335708907977045766105800208945374590435872277758373629409892111968159464607230996018543614222484375046360172220115808567752771756297991846339910680642592564056160362793853240604614458677464174938448078260443654526444471008072131655324679412768749027107393395900783798282857888290303461697541653866560025033529114905179034232781803473128530078315636880179291070503057090230426935744472809372655458896303035732059923226263150307423864659937257165220244929556602487744513163638488008205594336057872378417271806694732279078779316343276066692190079226618436159577194131331736794166917080059597071649934103174050998842267123167855155929884442655951462665054233525784718463275346196670544562374316903272806192055267880745554383558868776247918282495823701915984649501202915433611755736630059633869555199524241994379358646358974094939049789113308594799207571722947808256437790600992902485485786673354534352622582604764193865089515359971198687739839753177318661724224412764810455259314663050755478847321709422851575255394211381685548114030684465771305287078289115178566966451796673818746892157896522476943814615334582575800944348040185930244113644223873643542972321240920536060403399375270219244001262445523621574643381971716709197834446622849266311596695865154925266484964646260431872218313643122487616303509978169950197284228212906430229117060759597487921341306694436693613386074282295795856957409539632418256814908569774329346569514212492199552106482753403215194720940521898020247824520070067303774608497589330723035235301165358072230242329956785120482522388244692297507545556739718541663622403063793657549477728607632031132390715680845157007960101962499799444344809977706250398834562205621311282021426506341399186365761019001688159284758771396305057505716399913235341247789313506444113048454512721929980158710179013609924451661640177741946421614900020884988289884679735243463609574660494569731942320321538726989133747236683259381392974732436213855690594195265826077403778924680196186671230056516130550586801989274716244991102848427253501667821076139811413973695106677972015447983052554827908761991178486928502261177010012726173991236112009231700747754951836337964005941669412904271546080765630390770343877508995351330988502789536141740812837953957117219890517390402327583062653836793161397772054947033852350348766194507802522583307462413560965555836856297291129015527920985761521552810634027946549875240416143488090328426279007829357161806791433689996110939956586267078341653416296528877661628315723977752840174013230947752842370288785403667736496774189122510756795982750685599222407927825240756531982707020483049335760186984734861870805776224845161936768542346944730738863481841127694183036266233226419219697923691148586008730764592534404896412719863546521780240736823990650143487652738443253910438360952345936700015927687595972282855286623834616878726137417879393301558491953347037769506224643045816317146040978179926592966329367479875924924744180437018365840035255325535787790703169686976021215970598407374969743891428082116444022176569287347416952959359935318290185817598878101676246315677489145480052290957314487856479285646575021709509029748669730935827764158544829786899255974027782327332865889433534636186422582776463485502182398073019449388966094864944903821417891066011488792398966127976755511234149344925376833180955632871605727648611571206506960416463638076779286724184999775549041098724370782524061628727589812136748360199954524647292288922372515690931281909032817735342489116199958855360807689930176193614041630367461398742579093759841598795009232657092231905410323080290630125639866890488707899818139151216221742531741012693807315568463035998112702445160241778777881130236067049521397711030470811465064512117975864376193101032871265827172340732858279209033600587628767353418097016883158790391375138087604733756669083952863037222119641329582075889052816610371108470275392295119593482879593675103658685731134708316295109141750158041446258836069718817471093559710685931281545733213493589534790613484711155366019043734616767881002908274484388600026928562792190543613001751697326356439677418107395975223518610469015911945747988507626217644940176695917668277157467520590699354695849612156819693503133095377128034303442796274145775663107121442324489198257422970879872312484214211309407583152485697995557184242547380497480025593894293664816418127795610248773497057080798906180323980553969524615709378762977272443996693427328307150879050433037377152821462261548628810902314899100006824087821757842075092563485922259316120354236245167683358512414525723120264646362014620562494043167208461920540278600022804813088689155841106586329883695264107345952272689409714898360708822072501064914768246634587899842022593691359156659861623453867128309103840002042430889982938572405752826726750312259651651409458366734750573793619094622893780725925638960433877719325193161919690965583566214976425714103810984117731031096334696821419664183679615688655603587566549025767438132843563054799199034042033343110349294958799966102731733992302759335311870872278353485084331769317193805666341455351186330713737800751440679905363401578097439198523160989177847284241291594811322826718908342413475917221299961143372681485276967702490366042759465717655810924101705378588953568428098230419801773945409278505160230793477855210547202986345862230139873301231126260314740031344378562812074204119407453236607058486105280418412269086852324031352110512208292485837679807300021659100288614279267655798379905101435622803277894658727897801788242770806073437210931111248944096838316044563909026871589639440784113152626657659775265587491439001675701833558207306077225412057954439290562173089163549745946882142701372469491285975933887704485117116266635574371936836716748776738746809101730442956743347781783095708332352812465394778585890777063469313713833252714259604953481016878466233927732366850378099337446008101537367252192002053031427795675289254819958681628955287622874754486039581822860802768321221411973908396806175218061694753608761323858173550803748726706014789091767277296253168473716969908449675686880641769244625987912807261374774515370122885943740515452691161570059660835535117052530664647195580404484085396517127981432591369593381560785093167426339492182725522102032657528335340291069287246913836315792936498677172088866066818133616547650934631234360039506665386684267021649453377100789184479272662020774190851373449325254587845697203826332890056864920325490816060348732740665143374263578527282713668523484970338800235732134049636566084417278395805826086109454174451205352396735133231683030003921986698276136857600448964402496864446752184569522262386665935247648608252198441770591460237661343431543360784737878094738195733977258996464693509218977377095250395199871364271270138889039076325480230863543792663215488766367903133108205266622055389159642442209094257062512537108655151860217332612898839686940981158953043176487973578001133396387772843347954534469744331303770011072046057864733966081334808176345814455109025393135571020377580623783700884748501130330663269657890700964473344427217159859799585423955294263263715343643557719836927532002148468294232177945381027477318201122861077040822492323917622076119467818731116588468178881076104310708238290338967948296493287271249016134480405305085114168888909822469148846091376271656383745765062372866510312428483675361479366764894343701437383359196116960495861488034046104703623011320212255083897308666573663060575989639526560736388299594855484278076452786216720453096968574783527410345153338353949309015547565762476115917122375170529892704076480959792802896558618699373791967302109659146289874605327683761569905010581935291779312541637110351153904750979572909628992786142504614188843738074069734884936632452803536978552875411944324992790234840943185540899470725568546525656067668868505227992708523274303561494133759623387907802286895221034872828957229311837173019626092050542312243237050098597446858078489579204605594896209243327307791766205311766512224874587888738031066427880472580883151185091797757828293728874338582594991239898092122628664376882565273318751384559793344388640604997868255031216313388679201929922297479418602849490032780933702854653750047573703527161142608661093208785456939796600246966047844435804408251891252355775499379794971685461503661249647454484835533301705127088573034040227431017938883202797728598717946707382688032619988294031340710923879668898885119647166522845946791984497093509517230751522342745957448199744785341682462460517233983790496893772744664242017009988733153433850573678977216509012205333123821963167122317261871976444465244695414539142573463499270926024287852313566016298790302966443527165752603609924829627355863080587308121316329787541791290362657954767050859508287200970880373863431540912433604147870382988621526345084149934580146110717874597669228594632026944528438536556147248909446023334308839959459441838829203056399942398584161489342843880600872373142685362784426482894243745481738792236118151476337307015387852255090701570740758601713964700889035550887034623973401736382778878718634602844674588556991042803738977338137412154663111982366724053006122719947789638128233852073911809673770124202068432184085661046555402207179485987773790556778703437001548498222327022444614234222037871772974246262987830641033980499126397400043045909138407556351724017688229405706104040037898073847125381485422025721605308820900151114432105997034300580916596583591031706711301045528934563120311470102744128694526682162156528613566619069860380525520269621802154856113380382209794577524983391892435920821179044012511752543336534441387410353657257000187332550049847961558415672205367561289759558685532446870753059226076441190808624654037987471736306644798056436049873566537170603702501129455990906132951799180046627221531897915772888309460968964574191590539164844643189796939395468292367196344608210496255516567523821911068737802831358374987289860515746149394990096628973448129883727132499396514128909669454557863026268828237109254093540970960550990231818072589766526985577920414512325852039249066668543197700383591719373263690739356101632633961940125271288362763739941477077242520702858789526063195953480715033841406444014527997992647273575962382272539278332880415430383815400497793051381377274092232072015289526311764799314183214745335874217540833996266514834439319605421400374603352394449512354983084467563004205981866996001644533038717942367383840984737138218511639441292707395209100762060469873337300037945425760454830260361379038059869826551833789415804172100988423742344186967163778063037858005567979715901520787962790785375861187733590260611484590735554478117052543773749837810411433891164369486529041877601522205640642629076411124708853504924648388240603548391533840915057737696383632085911608858860243181598777457645638980964686174614713197059393251736637275635138917868040917940291635797329783453162497386675840174683035139158374693373842111191376900624432104221789498318326872701015370303309425560460349329512082488160214917046107261171212942283070963204754578004281442951969614427814848083796181687674586288811134726453402878781941806396906499510916700046814375156422009036222118198910579558923473690856902177688962671731854865324581064354611107522380767198143336727299150834796852585578151828070990167856048283160129158983358118072982378025261273652799195803650701594536927492958758357141810909971890018396034161891186986144360921220068822621943240124587892829220710305111484400972861364611930196868405627024428645628715508871668064158195154400361844333904789371096952471056176053939575790929963649387006880840497568927885838312024525674715450576023111271003022459560451324600015370426172695365805545024587885133184537054195101285572584317453215541777860787266749151665472430582765722264025520785882643566571329272110031925444433383259805175144543582307878458151739239295634149090483524614436192447585588331174732360903548576214788821399172705108505449114803230777908135669433297767425300703203305149013896109415902734937152113917427786282645884869292269157100960890984021427987860429259144502029350264636296443274071043676558712126714954866334690194743411007393418085778208339787135609940433913867989566408596785790738376832980527589049168893052302182731204214181421719034137905746572430994924677110131572774088160385923984838969121452162366222979670868883556862848380791421800942525983519704223527474835339530270494265915271250530294561192886319406737602926136916118625168768152084263042182921319241005070293283357210714446749490965229021738252421420840680576410668356007747564537647194865571498760576018241095519613435396946318205741570310975132308024024093050065790266221387922983948617004806151830623237072889264253937417947052674369819830925645399185748349038410710426351384276740240346018403869279637324670561785256212057513182267833778750151237500969982213828435530235262568697126550151356444906487524642161338218898064969034069233306896714422337373254934930070857921605432225830337191019171162770164043272496951752735403337699374508113062090174802909569618995756233613720813927850214240579023581596638076188222056680879040042484676078590385084217312383799462663893412986616199991449994939189509625990317196718034157630963132832403822608615324163020827815464133147221906619157282425787691894943471859076553078899943230641781881390006288186076636937605753010475461908321998712758404307376390054492188728185627151669106065501797815164705502623664572318590997083558207100313788483862984905726091799627974927240754511955042534975321738997559178483699334753704264960891772970539479474178381882674944764939031720117772907745469905680932159476262789756552033998164255245665072635497252398027333585765362995729744891787890719972642361147668136625261186693451594128192074622800894858973093424987127789601590764728520149788560202132467101348898265155775413431070557526801484272465962671938042603952333963834228142196912322550161003325200577006277712794144260428940230405224692972929566026268484289661702716884541837020851145228697479414183240717499201674913165548129098930077606950392931839476925769135257326802480701782431418865243402137054827568150411280197453842226484188763569824278395686688169460129285059580651985359938055944501956083849724109517583711662231821462361684706094461095624394354808589429448927253230998318993489274282414732443239019352963830317170283926931682518936865230468746607185520116214605254383098926363784492696492621420145143410059320733007474476119564623833028149135262401410603649611087266378793500162892320277722754328980486920748159092105317016877825919050694450628835748382696323619583913043786613615117737838557671211986049658895898837456174044974277082054747458225582446881238411448729851359550911290811793852474996997746902270440056438921402274977691854042973717000486754256580186141061323470647923108626155013363306375342286796615156701579713298814639449416683011172692706039058807314043117312029171346593048737319773313150857128743740070685501910406397212117909514641485687781982117593015162984774998456786248361428268981746975783845457641827675528165587203570394609752689110419104318964531120265389530201275943446152124858665123560517570769577731762529739934069351332866186411272115514162035199178172762239581018351007806073754175646989742045663654516162757636607195404358862992455572046901175936839052556794373351985296030837686351490028782716559960184836606588834168764843300337788330502259927324556200653603498190531736323723401970380568936379870665208296896944584472789187533479756258970935667229727022293629368332703035008708983242709339984421144936443542528295820374981763394575225638690708616725371403168696368944295403250487672629781678729515963863224608945316094688977435170304890790118037823733775504609707674974246759547473235781462581988891129460412770831208964298098746826811137055580632577125246234666418668373636111319679645189222301190487589279307316052071747414213411847055611122938878057840512631900485368303568846959361286752132069092591493550839958381790979619302841972941901357239696562940764260684277517100863442741897912161226831959105723110516328284874665660977621306124489169708169364540385402422167139534833053911977473854359900761300639179975679334381868398174713805597438671131832115657670763213391411662363350742347646579938464977881863665816524220902473717430764164476301835128838397471230968949045075036389797909056948376895811349145794066709234487913729108872003180526142278677205324179815340164201739750073850882311397097087673015950870793229465591793766116892215386235957187792904160558021686879676388593634695759972192258282488590340007716748568625222108454672214149193133488189354105116942127221386654406970077256064726944716907850195031359439399356987009831687540279382615197375555160334599268892198412864471254709100511601850748778024389501854674012890640528849768986423790696007843953045451812095605832961498795258896122820341082968110948200854614768363704802557459277436448483994091382197724633583397764533551428330859119114041909268233444548882682735834176649866868043673185630191167731320831424728678370058589539935772185604138210646487226429524836492352839840854017324118454240585480018033574873224305462846146369329829512171111798040452985237209329477896543916427722266206992153459900491287181338642753015207893159290996355477725184263307600041240074559192038033544861101591849735372602454109647309270833379662653279306059001124346280304538133421880858355145375635651911212090364494990787360739945865329794138400539407221188955675186234783038029944312705035981579252147511390173378051379634973658521390428114411532207742061801661748874515137652873591178815035466438228586974470494768413888495668529475430424581304921904234976469952420217351501712938655433144758426702327707927266870508437775493657801204491304135663308092012915478128477899711098971025807198848355124697738930887709572383562112830094858519460251840485155646867733615605544863154015330451696334470220593398002960327493318848356565524852183994422793668817289643325420218571350541671881840860391919374120583302105533369730009881975175991608021488483095860227276488138110057912086619975631762259100329043071464801604466944344441315070398576870580091354885361234200246398390473908211066448604871906329723566447562159626623847769493020075073226239203676389052041570367894318873997530116456200761183844849461580962008304058366604690493617812100496444209848486189083736265524894754494087355307041582394638451329465729529225095624279846732614151991695873413820186035274375503621317198786256301251830116478159787943633534674664153900128120286001974972646513319486711257222365579677675579405958322897452726271042273853577327355335897738043380965984932407388802793144300189475446178607205750834023591875447141331492596175146021830259406005779721533010217986938737149320635754825107297613237099264862821712746791470724129014513286545046922915849714738894613476563321735088670310265720694993433140739934789974562601721141251721075937176159469830742211600432891814709933384875188626342086428118126344451896438314586481242692951660757161052891385775669338280882159386890547028524774134815485668910883149795835410619094862306340897352932050809219054534682321019662898936656977542147798291153037619896529750225218016648554359330768860174668852965692981341096184139220030415368804187282904504244222270275530329438482362809294833201164812857622343303326544553714252522682712032964531554628723610420436396959549267365323941330775363905934143566550591776749045178914813691688082075765580185754749285406742584043206577924699378212854202179620894205520238916155049598697169595226945068917839459293917309771928425589167064099613206513047691793320355670829290171817772060466768244516323130650595912443742829358866081799480218604036037210986910057008101535817415778077373700290796514622461723400000305880024650828082883494775369574486266873953118060345335622032618864041680741795676585681985771289710213245299695113885118738583916003367515276076881031950131241410888070677981240596529791755112109935251446892289264675944377212290546253122638001717533805965786874823458299432001252599480677522911932382217181219424823939905297457505232504801573800032725326084443114909947030329034186473651818501374482204878842632096847038163839631750865954091859316124602512026763344510159249532839653092495924259803848668647829934778891160521250812491333045366311531527244371941603900049696917684450379375712794819467773299149820755270079070182761000758533176084084853035363141454743975941181404717370481454859393549118140571500174058175929567016848810796506801764295909113560602374435569685437544518620646698366558106738819963169173970314022076442355728409672416166214322338259473883284683600754684995220745468492305749638058743088044782677170498872436863119877189842028514544232369320418254451188034248771248361645338151006082196082709563123583427870296115336852084345271138914105051693280434562969934231082246060173383198501084809796532946226367378269179484819070664321305225142254994347495985848993486895036395098457625807806775721081875036985586637725941227711980700471607326030697068081733975137205922710579804468710928977434358851033418670160540978890814974022577286596958179557468212227637499719076287254482717010505827162988983624081884631252883291551290404244122073955890285417349385846642247770660985973622689838060687840550211067513705218721767890018810112179073897131866335543439376673130864600281760176432715014713917218165514828294728011890191101187353745865080693108979631938259687811592222530689983687222909796408251339634997582163707319154672397650278096287888088650476379528325835294004934256733085937714034065497548250332188123028747241838188641492589140979860435991789681377528087305173208087946739132693848363803884542320529175058828249162802645287789538579671320143836276252441458649332200187861987107532615957217203070249804233829915453851607560655930156578700757224860537500391324415508952130902325176471976324778202918904303212593702710344937133612106554993793675958483040665326245997246324763067017823562917479353011733015035997714422128484385003448652860614509363296297988472581016548636107917113304474208303236789119960159215088181539497099143797530356666673707181033457603625010800833150836496101233612603271450848671555571980558687532711483646193584323375884787408406583768508722772787330998681615332885926243375335124904154339385823686781152653172038897769902747020803722575299784701766937572580409467552647337181555127607583415472855902605511209247119005030742381784845814824822396773550098468849913901674048409315515090775621445629560183254094723183996445350249822640106066286052295165532196581716283936323210735930230881480534919918074473064068397137907885301526601255087985992151309531714841439570312817518365904009660107516584473462488767489177706120263083030378213371560845191865931211849527474120243359391217268917168326544366547679045261811540312887900257598072746789312543436025522309870808234366073720839679949884903505261170942673794242170456018737279205655991649889052837163643324569723375362850258706022825764232251616418292803115413656094946016303969823483657180752091645664036056704432216170651376442180909202255896248411891000767949139018095162493190277350531359574167117289555910706613316364569705933564417503411171949247702953498545002483345090798458810842621135147436347568864362218835933763425243883878128133824524509204541495048095901027371639729581698451547377227752174671344748387516772994349127917656148775951924991683192728859722453328339405864987622250036071483359522505732393458939494631184654188757348342470125460527251761952401263601381093347022459061767585224330799579423033357589956102731249107848608309310958889306219656190807236117933708663295355116995449629522344570771595019124944388871071105181060309930655611830341303352791314692827358836481153492596365580993192176383344067466146996138398227650278181552903156742288394813455126075737310075149339415647074876968989215582861363468332850748059877367331244966230604947536118789931941482812941394617558858893393962927816702115318406484146257315854250376683925027773977639868468103237944608693516301693997308849503043164074975801380711125604949826172421702102376810666343849914906968726923613652847683882851471096726768183431845071769983076669940795366253422494190146082401405874741231623714221702846825951489758433178191690765023718350176154064987298972195977880422589096598368579981986253428010579911911453232398686556901300856698363403540365149069168786558421436330695554301520109827570041328052806181517726376157215676802374273950409388147545782866417034982327369604673652417126168153464664776380505816021823386001588175727334846188775393796024650636173588322749118885813629826871399856653848754763448706532391293471886893871371539232618173531614552966444985334794418655902967696339265795858903086856370782167559406599026920666415073490321160481180128134927014889926763058331005019158316161787595833002341412002673697308007950315257480402164800594136106314190677806714505456658078827775922698541010714151500949904132066406740134092447420049301246923628116414527092420363424454489679999285783786754689621957777081833359676730661171867588950039950673050697745545418589595878370332171061513081174317340052434678702844146168592350650075767159332363795125548993945630671159312222613313763906557681734909091965369637889234164666454026814871777238691937524540134296013578772599044841666753675080654075411061984925563568417300482763089886239985760868633349700583689411998275616620172432969205393089662902300709915653902414339155745719993762142632139330962868366029101645845226391848766452370087318426644969958824465587541568258436879985247035585609321131970814299541872796308670789271327603686730585282354588563904657254762937629432623176550874305607023751507876744834222345215564132322752449820436296012174633748181970415402787427006292245130761352592626850085179179987084764969162934177186293189117149584305046810496037756606798595383604160031042118777531567382645214051396580931652468179311547432282619533083021977795465851563248606269369808988846579658955245209810284312743468179534203020895068230265679248589323125245098157366537065980153321248135854622518878851587686137054539578611009512424886741217078856918198381146725076798647750822675681156649594949077505037781838272548121132700799560908058914994094275164864840162126879516604400441325093165374237227481980480531073315099308655088881543675320158143134417626748323687718351990813029000415698919721420012506611739983412034430813614245550653078686070859382374322786696193934699253286178640098905548262698794262302862682486027278168108179905642153326762162535994716857392679117662640521727640226323625120994252790136943268087345549471454882236993371491556423561311718398327475684497590478603291040950940709866405052126629692137375473148275221267925912813249731981375817061904572773889306525678012218072160426669691505686922800215494444780479290758622971310238208226060566176559112139401535429106587867397314129838120939583057648046304617538287836418884574465730789084040374799028641253409530769716525853200517936813446788368821784176027673367266486853166054605837355792653033585674721969763140760209479993580953235711043556677652568544143603392687947099265608555287169916971672164220246302095797470730121584690441161272057854918654382526279562119581373022031241890914122348434104855266686527497513134666545101802526408537120690417380766182160446614258248036393986284339472011349859335535686671741292740226007820879430186646108656441175708988965007254950858481212510079957789890625012830306846621711813697033880496256999354904072216494381793007821174679308044621689638546335646592116605358360779017572652015609947673738020210111381568093849436633730382725582825290043610793805422675192324369879114104907396702396829016101836753416617523667066055298182600912868197523458166586751802479205567823336529317759272558685461605920280927211205472251234898089366025451398655572789715895589748492013604817142105378716412411336724283068671967349507252110063048998323236563143672878127277733093229785960823132777258386990237394789920120219712885604902422118756362774728384323686819815952678170852826576232017694759488464252290543034594546355151466596195470129154603307467569544756634483173415096327028057572401914248368525813531855134432895593283829983268307459724774738218457541481165046685417760891709092950706728825905462429263884091785811903269598906898667268150141130698574451796755674362148149836865466858096412641735212926092026988258013201676697781566662027021548595047634648573330126820098986658782462869332997654943185854714775874230717147700544032308488867403115874091911311326238035665238414161735311049860099273939192958551088554539208935943327970621726882675043598478798204863521079899487957573628438772201712226964094151075303007964339599054224630933577381757588254705209568185125646117761510993728886306207359139697799801228317996945646013319612845526377831697614693001701893650814712362058809273932793884473384752619276645470040663103257436328703014722112463804075668019686773441879793611027370762939799948855374699482571195500952672408459398596251597841187006557257397839425034415996981913091383409698255653319197225055894362930608590886286237143634039112464384597515130210471858373478223505917113982716307845033386983789665594649288125607012194484024602457235505031855343340811861534852280885832463467918935477742610459792730295886897547535703100010890684529493187305278551653177273303190119167472653688796606595608204733090955996135675773490508983118649781914816462520729796195494380041458862876319916486162223834740903066922202254813230315407561729757938421409092892774987495709208405557937819347626779664696895271195303552406715167106943279039098491763389338093953919472554853105232134140064385597571124378069734187040757536595021533429665444210113976900724802399371902800055869381647057559610458188774251642869992305873981432212963114105903027041454430853746835188133543581517253371086002222592869635991605564299365942081793811490144849605310081131710894965036703442573084643176172425927307976164857187606500070837875742022054427165008119035500040967801905204385439214514174148239038624458077015076686334117096778455184715551133182157004368374326162425333147766939085897647693314626588831979258658628530068238639824035354172638301414255133765014901509124587365312808454659716615601570737805879982827266488231908877186234564290375659640925575354772392419949106824480701708753012912302886560483080411039898153313657394379944295513036785175840400638127682947081048149103652671915435842904501194999440742089155160457485735609675328850312223357703022744245616527946212901592929269737641487335800371937137704030003751701191361854500985525411899639624446327121915627214648908297003314992751855113836912781648005504377672274098990667422035426587499691894044086223283157047196509891773618123115492119136121758669629870793305309634760193697765517341074499378775142788298362072332043999158448651060977539385263411425539870257555780108576010500165697808321154086344835336842445868395831792382054440236680941838231601153905791796760893910560145083461805135463685208286301404419539293066301725627432679945816932075380740508626096966891506198417141457080216644256145663449913418189839903707370150280592362854398657950511399583558535595699357633770212446750571382177486083966908707880574977443306827664306536608119066276207822505142052151745163195474006175820272201749016856131604056379950673183962973285943778557445720286499832749354483756759234255072896539936674351638753648051422934639506025598924189826047232372104826094901189401377485105031054225638019825297360782353912852614930572608518610579509489353642372637506181974305034121652449887951747771872027083745149354317412176857484389821161917852507027022102529853588153619039019516958486287308463178699821817379977974853053628444014587281055213755930233517471063365011733976279015090615280126280430005898818346746997113746298488794958630486209170307787303083933225258141009699506713362778972293799372051784608138540818137931252303158988416427654600006095612877909080164230859737464905545599855665006008389409085233283935779643507744435436374098817500205822043590169206703892131567320479748889837145394111347478802366232496966439146341216896746220819282945057956460538623039681120600821986332778466364365992361212109771204501770765408174578638248545312376802991729530717002388750455458201259354961322530262936584752927836154119238377096729616182242761358924248035595310777892720320165018143575141496994230390821911675297565446726221031956443259065604334437355939856642610716094865467411739245999456595115339490316271489317981602985001109722716394505634398291238036117016001992560514639120508673052579171626232589435127194317649609716074566792945370461805070084348680373824356281336233708815133699242286711973283272398569656603073380643597258431735845634123747563463024165415234378228873022983603171238579736228823141059607631470212212911656489765349995433836360204807559138770608539562621678219680476638173172001126053548958851298957126884854314400200157239277672443365136323765734657010181594133283484362773464856500721051426880493927718791776961510057257533525061374837989164030192581726810438496502871919072077246793640323907885507209288592334503412720701285423912741153424467649189703998974850668712441174982189466524891087383150165189155534672782925228089981471693537926838824304117936966890960016311542863574482977010341299276741616604753372448631054213246372715577743240734744467130983920450740253503182279447514360372929121525801872089815630068859013587379590361973979443618489239115432075198800028198416265923967906429390597481065511829038577617396543545550318113275840493636257633452179543973896977702984720101937689556738497224279935884025014546598613554028603676077387096829478310577289712426394509766576913774222064163336168855498599058285241069395220448544248820923451164263575552745960067047894271656851779702771286111508399557605646779553626463323676654513127111342357774079990104854782172028984131318709970878013055462240113636724139453266343417311698473282415020809890213380165916990958990605517282720184208734062975405739956893169467360459880471711364130576958968379220584911431782194277721661436287220794923546216358182863367675892804006845165962961006147183461675704195851239038508598583779992908686667866966615111402838866188306583537293326472312468112614948858547065249289824149280411724739763213356823721199134209029793645424785323333865484989004942896547036089660323736348292778492130696986119726467975982034538472800639410112855556764580083877281987658664352569988191809212165816169360156850765367021826573123135235982326560737330890288308383785688518579491875188361223392566122728460211693495195675417302410801436396177414807919095868879432120489667801328728553776429288442620947058608482518803112764657261002779413850642369866424253204022982338477213260758673147235282485565920373372504221235989415969936183509686432517485927576976897112199194258886982182092823027132458797722529429342271578975126843990418083595706192886543533582367054409414885088909795286286365822985615062911128140418016070829626741195744312838525299913282259954815214879981856595192138718053632920868154266277382933113933325408093733285826912321080406984744926606108313477640825997542987522323790209126135604526548458290208640177510419218380336575513771562507500753926523680005858152275790259090626496513179706889503229382347796078957229675773419937321677277627429850692016878220753890090164934668743626941708536812938924531766954089380670510826382553018261008895038219292987814750760021970529671625580307433356531012670811512706690553344923119327671480195715820845968813817024543456800188523398573924301988777082443080915429245804406631365578745102189909689317060857516482660090505811159569879661248748623097367158732736548183950940480614867826279240026274716874408152838706928262810703936110178537192788214117548550608891921879841673474199064463762848836455175069490327192734512724592659848667642573877979825526951882441692157178704975431043634181305255440200263086288638154676618328532763077855325041077476234492454713841688570798757909740560055046639509954001227084188727791452566599632865080170247613012236878174725288559526047883282320692675117203939092739179943970134773784015318857546750216697586894809065359064196500847526142320352508176298230311820356876751764975245176983708236170358250493380325171650516380177035840719345631960389456691503136159963056992033702060464653724581977616711256422366101877920064547464461277152386265699117999946493147225166750097822398669886096949809944554461833763521074571067612395727143926788629963272792861086987116313424394011104229442531721981009085737291543554915430736665147925992335511694536472000991208913356887680512101834651670064868401262466213734592463861730941705011717927343972170496231864699216816701241461765166943911916888917013886836121114084660304544401907234969996664243320547119486484321211586890011108337893036072960362710724722650629278069914105539819730447162059716445847633443081615809868641407849028310142037181684615063728204035274617338528614395332190806508298359771344141567659565664206360610810870577130157585195615532711765860380063844859942403407234448811448660991998914862325178479075319611750744255258869346287131923168797259016313848676007312187305361615692384736438044408505745352805746053630261489720907185454336186060307665325190329693703415394848526394434669610993934099318683273575285618629558470961838349133363928248275781873519070870680236295454507440217256072465606896910208174168722053665975389588390457392768646881828054045092424811436052327561779141417578418850561568782904908041617044939053676540718725002215273617442982659615137777576554583905253189464745253714365634651397997017790958015531622113460987942896047708470763291900562495721902624873127338583123858843904308016916480490894472645237704400851200265169801203552908913111066422760045600623185408670757450340036141425209120480748456223144054385572308332618709659312784983657509525618852027707392732281305383507331934031867681501916575443287636208784078196453809540236827693603799479791237534549002698755904951251518730869513443314203871735419666255523715615599714602547028991821198916812532102777279354005733046462553362666117674396403715461430569775437937087250131603125186204683253530569712000030379662642766677514565514277933087653107938551760885829539428536925723355787284183983368472210055765446865517647642656495508687884750004930216939219132847013552311539572960723176429985849761623498260181484329123868222729252981821743977988412503398050887205725439634083862803599168323224449764137658030934131732193024306002863713203595721002102360667915272108358565918388153596141689007731158504935142219325401683973446441159887263242967118268334746374996810588746556344243243419516644383199265000249974155519513821620995058514407012738880744729930795107686453709603128663419940271566338940052916898632572144376912627100566271243569640152519831731947636580327292040670067784899358246699217808435446323986046579292202957980676979794954852339359640332768193400101519829075986254596206898250037215197532478741561557023002059162632167522189674062631475987106919335567278191078350097834490313300628052623892072854843124676215373433163887455835180617240693084760832522157091271518132500359466440258610209596147818130237040536836142625926095376678786018956693012404337528658070163862331777831065405964578992041853909671473347444788654760430371729628530260762980687997808619556333637730872652432730112424499420416736969712260636436745572883781603284419721672543105036608874822008846746371168474017974508484579430092566214354292834141406466367486207620175663577522036744035408464876630309665912052014147263084971893962188002541618971701747044252167144830161010014807320684674634178140365951050444949478684381783911165923645452689919038743838334658377836209299589838454994637929860718970851466131760591268713497076149189830128949097271497680964991994300634723254188309778713633452652158228868071053555220484237365885607534835289146758160662394533500842227889815576814895375303320067966278242049096535882179552708479361237456229328287924195290314695073244718348877045376941871844236545161938947162826794344468441286838044532673271728315010483418379608761693157841925429902653841723938672698891996739660095026991208268199869296559511252238921175677378752800033844080883771137225620253606818197058348113737418184293452273676941436266243095357028584500459363873555086966629315185439527941454494077989035916433175107233804408634664330823594136419675429544785985641557853157360589948682029156107387147918215378979019442041215214170289837829551027834819897086954202710868164512004098064646672804885439297108764382015752297995491946514827457976645684508755845435485292375591779580100418604614200934072034289300783809916329489586094402255994217560436406851657102792703224319223950395793828939599032538621104755771918587964845175046915204980652317594874171726671018604759459940829481951768479247057888397278235021773607045125450215019577810216467320943828149883196747139475266624198947423026926990140918245238461873654386303350651189757367113070472063171966863927391791578766065604918399948141606000520265574536865477240664582912646984200266062267681740766618230445098848858291553274629527033716025314374816206539899663466346482912872092655560052690966508190112676191817126700913820721699687746287870007664169157515574297565705339917837891969016261605760371332838144099172308762825960874231820384537033643135527982651018291751286433875555922165812554272514314927690313708807296209018302058288597156179663904539777112255815090996952566298354114165463668514764593256640663090714048846234996192747657116373035516705658669054595319751809816101718551066363904706530240370062816393616679204031698107121283296696331812319983134337968091239602912317646973139710977526960540036710827235492866026223958623403725022737121306392718108090756038386785051936291254720808549985359412578784520107103757821372327443591910092539795287079881447534120845365449720235031385592847731057195678636569244211356035174739590081371235339061625477197201113249151141114367311027659676289399179591700718914045752008293028755278932625216406825351204285066722462456307120358458175776703450661760623657972018867472042889010064007651500994695882438125683397266257689653772631313186591757631152209463752113946715671100929916105326683806151030725003483983354367641120644213868171959865706311820943605263584858937416395772194975034655911372021564021374425900700890344907252004190880852508799468044292029892109499931728927463209913386625189737038228635451608136197330118715379226832631994722159667791569231918620325475535560080416336153712574196922507535660154282744121031732591495689531868067468036706191690198354288802820103978377263323981766593182435487075732026155830931524652536994882219785638236652973294872432750037793830872520917176100461432333316799321150310556016315646025054662443468260644927615206124380417673612971314123315006360164493453581287841997148133606830300669281823184655508934432939506111517151409394285347389787882491378243530064680089125804223605451638492512309960002077238268179608820775088961420998177833391712340766143645620908740108013483070592550032373805322639124241861243265611345177005495724427530368203576005964574435349581231122934280104890544178283755340747424235014319796301215387107395658397325735916279297514963994930763323385926926476885176141686993503070966348427174067138742888940591311649170408456776718952781633642037591008173073529451691627441208793823917679615995980176843546778600328058797056288866815027483237996449098104284437853859290196833997168544312567457507913921513727177161708032411009097656944116107019169592474816649836950774219914678323427405902700292190329113522070816576583026213748820699352205906939224236845980218947731663217754387483735408831202492753593546262440110399983705361554973153246940541787603554137234218141722735316777570469463093503947293564920280774086175772511311753113786439760426572278618437537628001340781692410218713833609953485535637497001915977781773622959184597388188872841006765391625747079022127947104461077004523818842450280009996822624239173812842310196015634501016137831243501621318933398844879082667085872071672976471976260588867918045743042951583851354566590570709843076053037012242478162175882479511587663836815307211528367626100024289980308297400168727800209055347970428945561882540997622700573172489432980523974630869328307749430319371664780263732939874691604181659627996640742681537449299582171582391569609484673471991076674389522203029169815777879631368728534501233863867816630039709524889746177098739756323569794716257293827769284126326119179902510962726146191509082551935294082975033506498698520601065863354915133126034299027109802015825662839142708122798417222286610089902366335385525973893054659325877175008147726260116260632698120449021157815416838579649447676660538959153099650098801301085510588435978397984272990127358282662748463874102715639155844203788657379903566444017105851917280866208368724332402496266453469917996647527027428469879245800541180801505588967499762298496113995914036625354706375562540304358795693254480759940312642231846700521790894165363710040408192519129226830096405896183726527867937420617826260362440016981363703069160006868179642567734062131816736091667906959773927401631477395078093795295235632780586754972143581786801267051625528407746791539031778271515414948715412653232023728628148340786785367775976797694340397257021501350809605461909467181794329823749844663260647779722447564219154310781728956732885916362637872079894894561662000548882114903054595993919692740428278488610872158056554721641216922008232571018429385015304454319588894324499908678496361803270818384508052290555287960796387238366386101028083677959056995137941851143597852186646628170250626365664219177335232925856387077451729788177864704857127593125081960572500692127609226967717121965497250356266817772848300727194456080180888242735372069258015996368734911814681685836127772384539401300073512125970592460893437339193686923792421397358883253669494421870984899626424308906253959131637439947717738099833852283674065449475733700188386324019756989112055354154114762351741851033775067238408146811705085714265763353252486260817213820199634776201870865719440080270346154503175131589674118216189418320175307398698300111939383519710374201214833580291701009124427566717782112471717519582212560651923922959103230687435435115286506925220653642594117940197058326691704782720902109201095362909414742994876038658543054655216883028962431209875621657092867340624624259702600292482349037349229598281391223300435675006680981155109185939980420238951618983548916068268837614202255231833496892737304096964428314645653887669529718163471497132344232612133615233665401317033283813711975962633796035283970067942267290016328426063800451762034903555220120842151018394618945526302558638500635744528903121935863279403466066161577483271575746451455498714226781340220600151319518064000254979139067256106903178844229548476861582552427681395021948808957145902901307240576895650155348360964074162278471520792964785778882633312712169020094851317679268998338601001506714912021915432330876438141253966938762911732925486416929408847674706168044947441805227507791487658956072296051480514197281155440971498992763595813141535888869058588233434553305257657666678150560382548521670810862905518384082288790789319360062663304288082642477994932642393918670917069338317752715626540259571738380959066550081678116518708989475297614783670137626550949592771729800880351988375654730310585602495996223724020002236862804724028449176695914232050980469377948409027276600503289009627759135788380052673282150911211597025316985384045206188311223710406759981061565841761139001783525651760039834548544122019483482076767314392940991268784204216404926186580365842270671851823769443975238224832551780209643347159214534265836725697212890294520323794517913083419630512284404192325147747445936415176485795849101412200959623350886700211958979724573362768349158738448842999614235954997870645980319944748841351138106562418470584665072163479976676061285771157812043107229056829424721924566788366137059163557632772986807111369631103846095328145514570199318493271191631938735995510688367979448957336465356335409138413275317991172608520416784848814168332310538999827192305922752421749952777569640433678156993575208261037644967511286878765437864606273596629296145365637473414131358157997345992131682930440235233084069575408333945801446387315978359316186325599049491582164353876917310936243811365005700947217020950473007624426917297097544430876058977745272161811170082467963746903376259150632251889557940453163295806704576135364137021516725283002385369189655412023132654654586106441202428499527936299961014002999702404491208929366754626956524476180835617904871798298105839246917056758872727485840529957713525478020239298682351700562216722499276974950050817678282097571625534284786640438720911770368390184024892682461775201202207039558852032379908705663821956547613240415980043774623273623943554675214443848523731120830811606067905245249254126430300982655347739985398827896007612237610585138556916067135726027546161854624755568473835007163142943597167123906703726497522144214747900480263551220590843943638676948513351322085419236704082027315930509459704721890854280539076163358091561149904818155192153153822674296652115578084407753013095930191195834464132553117610794395196602519997428432930230027247966774111938662517202152896314315632087506651608347736070619238614700131171265285767273345586827004048298562559283356560090521022085339125900657832499573554467683919232745810057627302731785356834125048392902734250989043972029300050517022949208581045005975824150917883490529043779041683208453844491745155255008110914190475130416155208617334354848976346179000296671541175886477902720036244567937553119893896509305076461979406412037986462463605153433834384747972868081570119796987748932610317935375073940218833131394882496747286195307627870865199054857908716588842875371892201263098230546021757355228098964969113283051153312085802769912196822730925837650331256539340598775765322787474321661352053784652419439243060396642213346449061702694625049263641207008047230050077335126352686750676491711836680746178692848699467224168797162533494394347555833988498940917529143174710149591850970757622099098764795900087523019685318505897036087055627090078540738734537502455006631026122590678443215759333025806731750375639814752031565596382161410655035678658887067394840009683935907417685282885564102703885528364917384187179790819073513087485813508178728365515934097017489060520340177904646741888118242533149951410163897598428361614070462265261940490599380452910824788586947744046745119282968876761370342801645570146301059804411937953359078984405732325709181589422568305371857536963039566405230710727135026084643131861607544918247929263576437516507209157784300845264486582387031592740990891710626174288170477853873957770742378340779937538174026342482930425627158655739604242121783221053535949186607474251550337754048925581853434650255981100634082456922314237097189249846348427000506345086811170183649076938551694548594149132706212487375818336756570848846582705463589212018452687411061293744010247747143258905447102108937099031466401583194598075515838688520375908286270515547417237514091026055359200218665884540050208716290212593002483804990853640496245477615348951342745999190975884273976848661675080599706859725397592717026183521581548431028303686296410115064361831698797308351387425837600700438754210521322615110909627538496568897394884401362469195380848220475820592309562686740899959931570991958476248034781525950871308486617744477242521320106799777571203111919577528323342488243891123889879801310919293676937587160332093035708977627273015648574055635375595985150478735922625710717827242402365343354899683680151628858866603272331231291493824058404043266805942840199486564452820466437412424913627338566616747081453272669378759016255024634402017963843681964700970762739845622981983508124268698185879372110662127460772070684708225592801322044945469577685006685185711404287044303323949565856188749400521154248930000580804745766466819182016388252097819073613656792389051966580252390353800594422989833440366311312443477699566564390942913706083328901199095175333286481683118443132231461076335320087340893920712192939181028611347450095623778474636680353812696938852232660024022933255199650720809464220671475005566500122824314525776219957323276977794409479833876571450044354196861980686248772173076243347631607886784503644891977591731947055884163488400203180703796148825664971073269778216767113675068601181030992121556948650674372015242542330887712458930919801074748868584701568313625159590196224891682074569743008196990475619297996902871805808914096947138545170625027324342404847914747292500567161521335413958852788378801266497045407312848472307800856621277439471919647811464091300388988678341215815882158842693180853923622893816278507569722467064540025370235251941376374578544659953376579271764677138063111522121455450861107575414070385580128119362788018667048057852684794802671094024059204952244207032373331878157725854811528327464881095324651225649344624204495876742151334489701297745010901387208162978825430663983114453208026821909417406593197903393160445027607482773651243539465520227945545706744433907370574336853278882919675181333107682636417546737155671282724932628097711087779556432309862544132739714953302265489596050939188599014811885921948122488970542568445679086663921068652942967047513203805827613502077137311135599109483185994148524516809014988062250017475043148935396013657322374207996259627177950176143017157753759216757496160761460614170509922393337843710090554731020267438231186340434665399227614397126547267810707583485315960866191206873575782261721680048740306954439405858277767335544132262318170705785002888126729996627213028557473710107594427201071907972864632393281076199363047356526520062415179452309697182681998026459349673745498819478632349068172914347751549434468962393891633432699184777608348790892818982398145520269931396871561456215409385117234033788347363367563648470910047695605360912413385904058696531695600453190365487515622142874225586575160693863840008300524605793894682512582652470941261929424581261646635397492388973618723025458630988475628404183375314775617072946213758880653557710208026341329617786355865356605236242532092314966815906707287868020211630338426628751499815170528028194062838073289605869372040015492343260317573595353156961799756673803082160517942978060013683627385806211534587376496183802611504151115777205000917035620829196439875628334492760414704636232318521357090192479483447097627179295827687009992160831011629011982669621686579965893355806398156875366692818165737982006138138435470747944297257855215154846315038474547354060234243490712166743401607282400630309868062458826796497454581687075748196045740504272163958988880440096028651320331848058896021018917142997699134941655755649425796088079819517831315271520156898826474618674596674841742746268207301248302361958241069711514981325132320251934442158356527252316071014231361719423310549030911882679937903575097055901546147585885746751531573736226450548690016313448382354212046646547119499665497267206777288079708874361831788562586867569032440686057839685832311984402109269154732687077050901728654695186565935794043713454962432138725869061597274370058129792264694572734520939372450872195940437334566894697863311002533903785740376125775833191107835049281856732894932342523895901403003083406738344549308801242875383853773799803355980051334336490125912654282831738887423544978956781110935084233438233901770699827663751632963671068877389117865365889119925125886491055369804013227823194656722149819163143600487804654338738656880693595424212977372123313453452032463862418858889353102335615188756941018327580709831833680206605913042389013711095266984052317257943066558602800615700682642594201401867659443561755494769292728253905190874943916503002422855326986523594493227933745597504597173019846391775044134666935191791368971793477273302451316522131557220545984373547214074671368649956660450394745703639889510179602512530755336440300153818229831494098512492306598333256290194105089438940427048079785151868410670828211400926171768491737755068612648905938758215568170699630226873060468732383751346364466266521747708254865248191400592603614324356215082900615471980372988815256795348054266898509122130367279909377058824961122434942952717238774635017988497564103258185203698378357147093698669604770761223569778081697647018222553454539580782266169435694250754115137407443784966489052787165301764494723743402621281329844413980053342922651186326763613889804068811568408687809349312418273807437941217082826497385066407845704092395329907983895299940242708711208775640086911820624278909464047519153581503073579190849106675035361510699627600550981721115701247041640712875264751783523658369269993573955851559089013318529784947030733103076018986614620707827253524784832455256175795169370796761974761878829986900801016744597097589216367333025950088699857488412492477145885048752820019053347094468487483916580795385551691918853212423001753976467406026196758217072359392508888706576814052246442139029427598232182491091613055649905744952503144982657794394834474229076565426323075197233447656209072615195744615744120707652575437627387866654075873765750288912563030321222520173758139791401717643693677600724561186968809691703398802922194527950277576755018762578332310384199488039799236641001046009079622051637201083904066527779425624244517717311704475045433524198232746376878262850983030259082539776592979830491457775016537246679643470530514542614504259018910048089403193673707173202936008168958424770176643506575759922996398056777694897172450502386018314126043769047999644440130804390417221273390795387827631759753455272519438828781735532013276466149230407364184579829318732094191404501305549598829693513775299964290378576085098583997447419835065677870252993692020776771736584830928286102002273432804062724486272248290592823142656391030587604805714265557148146542954026732161093979282825372165419414137854363852241786788436969782673378583565672027365261423520453743908547824350714738086120579822290666757760524891347730805058403382502545162780448911822824250693380365849006496536703352258727729358704308152136088243684334357712164781479748652770787278513153368522783410156307050820527322850844570540836715737573059642926103847924799360656302188183490708239374472813063950356105093003082764729257820413556230006415762677292170124206290471881794905070463331044986748453835605036618252884266211532546759381233780504721147097111501043755739296092921173424719698980809490487071432255149827228619023515766108833132336056922422714185325374065417010006019192970299657340331565674982056415914095020312882202558951744710934963931543002233539222802919669923264071899314647097305169529266271984280238235474227971132896986920524693963359838039371537810243285900469645941114157859803552980176209974619632928271918810112474954775686853667572437340578969557293224332080831965080999586980443236725755014870442353066747997530596089659172429093071053399797862958453958563184698902826223195597299983732779173805021044171217372922577175148685651728050315590606105582983355133936265021791154440787521721731796603512477575923796240358877767754659657368576320860696319087412781452344219150270410923165205246978425761605589150495918647073377825723037133468590665709296614838694263841829910150726737954808500166529259523319154706884486216512723272034461765544633659087949063529683262828196578475155127662668383152702203045368295550256705977677065741395086689572888119720134657653134653379191691054600491416070891233398065831773275202542398562444455347364830573965059935327886954699612485796928975412554433921779031926336484183588721740952666943729960867442438836876210874017793168886213557285242059875495309853800420898018228399012820011264167881271718373936560251966583565201536633598160246234398013140200525005322708685377549215378131538642563438187387795833004350155187517267121263516324743522957272199882513393434662685076929079950991919358367590320516345494204187070775607868709379916307190819275775753441922289918901173123432975571799748392462639713326334794984880903644495506301097978731231506949184134118123276781939806719941183801589202289922908640440323868457516114627683232950659294174630191753533317219016285286846435121921168708976982540058676848000253028483839491911874980899542919900968642074456121855320386214738495992732988228802474255192856202324135987307747759800106796861271543645400689780358633568905837343842454909747872270501469008263375091579253196524283129619014786214678854041946430835056035954501661345055572198157002862028314529987365647327140570432342436626039213903173696558589634531079533139628082240602662340429096124661249029671863971906597385728398293408019367296066210130087289077717429164808571648141045629813549755786990124525937324433972614130573903213046589732432438121018811672922195900109250703977967582027421629065852260864494899803885114622989872251110705127843848371020746858690007386739819104621842934770848596999562850901539807648236531815355225096305389782202574466112118098345309332954393818109471171014564362834525614038402942930897710845129064627673865855031193929390903676714142592153350051168059790109481530228315760273002510060738068464752498266046106870524846890232199007464357000296542724313286447080009178250460409606806987623292776821760557007036403081978739934950710673535538707925605334091584159146871500524122812044701698439776297531125029160335875980151468714810085519489860673741188463209327859773587576587423850314045852169719762906214624591077813728209554611745459926837369486425300191345756403171525301449711916731835486873221176655360155895059422531837433247535856376052045724815339634747250245066135883120062689072723051249389184254397080100723678625640819067819709452191667166650132823862246418216766198492582767326406269898611579985955855927839532379678526152082760534227203706794055069628120678297085068356643550039207639275901466619265661077633922681947555497797211688780254940936525385530365584671933959201459060721916843144269649144754909524161454659278625905291574889657679586481444415851179911664312331362643975431267848254341799136291111469798416931794287719383738672184166129268058434875002667603715664689115697976105881222720514310014794143670287397810929323523550126254499131347738275376054351090405313837473947406341672197633130214428399330014669583943645375298393093866197579416053327711834374793959748765767302751106705244067027668856810352167100579053939907032579377255466469750026953973434625840617060029078080575183015300155958645021343365263037380608145611428763573461419419899212225428840773889876745775966941953988851801574639251440466933100854170771751008828289470930558135759152170317733901838849351072832775771127155682724372598503330523183611431440638233734487644918230739812387436305675875284343190540969773044966133019452886379797909454019538112566891345864721366615589370643451953300054137698671184087155529650310142847165474349500958893886351104096459001937287509468568146908388185963313575237083718561002463063947707181533443432109787784250451690962737704991775151831276748011736324469268082897677165988908966010013339355055663688176849948808312079170559338861639895075724624506986327263763949159101488343440217215341655126065093664604201020001050336725821897387880397933476786499238079856622769316903267702159224755961432058815207397864960313504840343764339820470831736883695430113697153726692410488626458585960798536635194677769209655387379683711684971903544758251615809509126137975406751235048169135660047122074790697547754200086952330375102996175660291266000468746806309699795298732266711127639587930030140488754844349548816672514565258980404633595129177965468038401518835227969546104482851638901078430063209180993269901817813663597578395979648441274860576912458435448952447080125584704709356896238524188154973385790116169850413124743204619491297394415449964819718794916738142311418538786258219772636014668076249543385426624440061184717472529690723543515700811326127440886200578568401545013952093495049485286828912604956867718663646203924524926137641927872310125066634811969399417490909501666916045149516462562976711437743153091587509603968124350577886159563017872814899173281990636651813700943368329670240379575756029136957671318656759735387749924630482672084557160618664576845391969297528298370845157802016546626760424895229453608783868294408611882610545368196084313025760853824083760289383808065349481911986080891008547044388972630861622756446619442293789295213249135799423230173757482470125144371471455736321998303458944783234789074385166956073459450600828993128439737417518635905044128213952220025658168604201812720803538157927302913781740812296197443765327134111060415172409265713590537673881215985102020784980135148935625215898934578959630155602293779645841484357947533365150699167108466909697156171888878803323678901411721107594587256496384465279127587433226477350410884200588374504166866866167797587494383685361312794857677614338496931678175701956810577555001777828760012352553697325556091713021454651046381160285365655435388102547710900492502004904602463393218630076837836418329131390529364222233154534971290273226577890020272691305561115576738696331723417261566513501204156738750681057821715373753533879249965725285781231725862447337725984385583894803429317153216995016878184542982936241184899833024789684854246586828346322653325773105854761502782239215949380216359117090075283693610401926248321281297551114897242399121521015576749896547426666765085826411932549383857580358480977363338047921240159143413462689122764763597510323882954688291154534028711192375585288604097817510678396435741877013019399826078007407833215448841268138082141763130424817032177634145117124183846721809587604609228436471517514280246784129348007659578560497017028603914204486015888980883155794966586661217555966396023686663900482116626624411836125007479157946957491876983823637232685787470876558159458803670544603991896072454465026298750220777030188448774366046038480069019712162971235885493338951936447432664063500832313183901128623000444210942305086503462377579889439671983667498655470348901712700738662863357261524342693921853218901880561917064026458242834425336706773737964981894767279168461354481956311836000209676102302388128331353934624028499081484309009426046131770262160726543106222611428446887172317848898914756305206873153140283080597459101808694765650772836487463770344555347360044122517986301032466575092695989037830614452704134810109987372430807321262790219709843829017464339094066972744722487809724279390942018650393101350874386938651596095159679442340518356123629298472072211303462121638472725254415104533958451808600221410980559335807683791676968161233264910650155309184052259096014610891574085826303287160259426266523439596273837945528127010758228474037822239257279077995792374650139780433856817543037591056813528777035643027582502516770218980538011865859399779837850269774044665407877858796361980348972088198711043464197240958924619704895734920353764251417820081210655803701731063139946603293454371427461588658699545952323945761066954138150349000161060033590728684745035977419330975459976142299660163217213520057942301602887461451434823600414948397915350453923388864858731396601281691826285232552874752090758866898141694425422236667632963500453237763603898908964995270842869692848581149212116492282348854266378452324328586097341129063780276535637717581692292014338159255552100035491097470543017327560813789926702405244062046326280514324228761156539728708394496364888673123068059942421905701367247409075495098832395847185568487468390212719294649770688912388973988596649435154230230721355213430129042879305845872957704867986966721883356606547356194043875865584276418228005631859336391825937368679592761679280156022812189530897977482056077761566119529427396004410128043913349507305268073811678490547876966999451912638697539869541859583037934601909581688923846659333943899470548485739352643210783352545041042346414180908307862826814313656893609136665712038177457521090394035709307023838292006984572403515018875768926121365597794574199050185833668283229185307863468546779000323266550141251683890883966097285349314856142181620287111356892829967079514927782141226929667273840222201835506027277817563165617736382536500343254303170401475891107376994474227547190368208988625261543020836374117780384050620146328574937557740387402827841022113998209696181237919675052081587692471081035245553719344114946313898483529967608596809083930975345219600768151813848175511731098742063906218131700566021666742705425898768241608867622850847703255834992389709486648104290854860160201407293446311353449005583988947657064048188995559022650775665096331740251630647068292049554223770100198315212535278973172875372264124441013934637881032521718049646257107961804097292688934626650288258150046962474821232877728666538326779505646723138748750205736736601502465339302614286732145357969482368246056196376807929618884530886640018580203490781014761862539014001790627924400668925430055557413236494221337233583214913241285173941923884250386800288301922036020971185225009900467907008535506369628043243465378443610394563718458341574295197001313648167480797357633400521363191871783513228532566505353813430314130005723130895308309323631321505468746208554438270872137310871011487790979153884602780702851245393704140983327656211131753009474581115409684856959876762839393225302266871624124370667487343981795068839888520907064783138120443310962435138695141472468977659446495513203866309266850525659990037182481872644320750864557365970572945454929003986357439286743174808039547894890436763247646099426516919818720626391128437829663037609413831979529390482915177905414634928614188238284220321071406577925695633861737767193368017225956010213544476056261066607737879999680364070724132946568896533284703062249208375553326499360810933649967071132000895281678052346897199692492143225599739538770771299776701101587205132490718816822038869302041854593327117283542938522815602139995850565084183235396183381488195068658213180240626682664098184106545195778064259109174374522034274819488873340794320612163465371528801815252187029636455138318324602171744838634558878737945529533936844102527174652311496989598793443272902806180983642569017253251397417444264140269580139927711318347849420314738925519693576507692510272603366421197642960437931765872015223782236292501915015781442696240343628697489917223127029616972140909674671662938442308892369943646739032863428456205372597774015371693193239851823312103830070724446639506050133962268597787533564914303970034046428510602160342791289754518185102176170650082037402009077963285751316127071201065173554453239270928724160751603545264548168447926611564983774366880061941308581742213247313026445487153653393054948604219440971640193617139789444499569217409507343385513139791978220090691741259538293868054902583211701393506520143970108385449876427129269949699221180613293605984625918074174244164711664503574187533477986087487454868182227535122974107634939502681175344652590782922005448127772782243807327801428905933704021440896321040559658922143545624193953911072945319797175236633043538882954835052926391390674300122682562436997144933421155767033365772820050748761555904388930085745288608666549748394290584859681231150275821637055185326929644795710255182509670238927177180240114890604281376368253912063380784594220807360844949487318872051199437474565541534661502681248508204160930761635231260447398674515129983265855165634992833307261709049787398487809438674313813412181565776057643837524970321881680214903986907452734299395434410966047964552387137110045825693132921574201550392383298133822459130745716432849256376743606268165553623362852584782976043283291233956377860176426657737080005716062749344505924536370414333161316516984647020389416233223073695563568155715990428873594517044380201089029582887636351215958893095293114633141969498123170419160889128814410870142620754865609534486378873594427477757748865368606962924301803959763290442368302216067971890755961221261854544212509250655300055508792373278368739619729114408278481925523666470603805343854746926648663774445927786111022042825304652105569670851150750012444506415928718958020398617696162493369693948269278712052522199797261697883967727923438597221390111848656915979391375583396337804862338220547976753508470777473170896791661944201445426028227824283126270381451027113722886595299382234633731830990417609155448561819417265471620611166829492871425780403984132980227893478667600057057160964773013715036547387308289191450551371306846309559739969699311557065400955935613863358734172208070121457986484154096475700204655591036696316946161008128508405994582241320080012417338846480209712313559425773004237208826962469570142019989645342618003354642804704070483734475714622854374697321504087188839620854100341248653205981364117913325382351106382098015484992253001705745310279987924916567636066155585994705724046897859734225458386130886379104463125118401840451792398262106137153423988651158503187498481120681727304885374905382558745275048814803553511850194977224620080062186167478802739152959080696529970191223704388894635927041854383056001546948660162003683429832605713964361762847870146439216915474929570778280866361353537970496622160644586710456864009238899876510964089533668690904226030510841135896934564767754199815753393515111759636139828442962408556884678242928670970910757996232864108702362044352821022841942040412258548597205969804911634169524120198183858203837109479663728099315219087340389173110289524569906573849321681611713699854095566037914416396501113367340547427866903283255625172985545406726924989883620531742773788538923483041419451610073460131303052835287783202269574925443084811268903508894629032472347492396088206956171451700645084530612485443446460564130427168241675023951527831262830195455613446905223405492906752764705855108320738179595042367429473384547756704723584957357582644991285893351518546071335160247337510364490853084264770980223753322050830068171952461331344927383790323384530423070725419365518319324646533473632135229740793894707351498893095207078208756692557423361103356287987838493658796475231431981394603728486163033049116483711157267895402116348732741711542955368495944643501016372224904088870497906334459642677163604282087461343885476357217764061991877093922556654143334327554194519665460639927416169565100294228241359232011185144534209236794560731657860726104896827900109721958026772631438815436686253845491208323255918602133508679098275921200212174714418692038865556870070171798189612750496175712427991250446066630930363779430782499509158436899117728623991436919964915070627035896430875573890706776250043380241070308883333966835609812412198410644064208637450674964325041863569703400517478672982902741797271854275162095100358959505651496564650870247683499581189092403711309179556325233015411561881668027078149509375304157031681855524458578810341624631749497337968959310574465682377540467913317536527538717283308705690044494457653035900123855678593029019961055213873452666151127521227210471648560281844591115643844839565112087501198680152681705592703085043839544260118461607834168552679682768851505063929175802899009194516932423639048617427883161511270075379635547082114187055473871985361694377801890823371008058962645004979109910585985067260402995287143988826366176708275680983734272267419717888307572264858009801596241283611543462606671764113908618331304164542767949328232316901782831782075245528979694463181168440281442367211682653200672993751999410005524162354646448695993499950000035922565972585339117262964760830419191829884785078555562299632398002924944912208283727412161048379799926013943102140282941021668434907781440736228757249116816767309429352761928387511503318095647052974201819060633026154408209893825545506551523861434736847593776769464704772445988420775553091157618330983922649399091524254359376608230043184448888491550204208740381784353070265918854850603865561912543742286754525745861623308247326327093819221863791079991657663716544697519784671654790716184156591814120122100182520496347696049780373710732510910033776886117903522953629420202550906996445350534567882250290778337713736777057820939843874103105920729442629671381870656201206473705476712776750621026331117266161948746958062925359051430011393770963810095662640663965169624670106304759722980111893368809608539324664312339140526756146555703593220036204944197940132143368482470329130286648711235438570185233498746493115879553422350302686742835192696211931126498287463902878945640040203490691531034641202923958583998452480179392476806242742202335006495081214876579344107183396168895434246250185608916295280333670479660220808003587992820620699232227533788465074664679936092531857991998120904312450723473737823595169054223829770324169475470286603724988854648217433895367185907347476466727102836957302574989846764930710903567937378505837847439280850235987320756392925131707253626835001578022529020315290902089360265476148826153763087747629561683084655108291522972446332017262840622271317644066275802164444744616772009209578113775256092683638680050778022407386966584900505877187358493053173879290903800494718861854857469315002062317655241230112580870670174892722790230883771644572226359293267527237660264939711347208414114537716135449020606092202908400855073566658394254685003521837662906715884670951014934326714310203667738745012815842463720443629245920146337148722076247900092398570697027883929290145137554483309594217022935285004934744375645493601504836028145679509172422697662053166788643461470988753493769303203842981452994932519230889512772965037006420620945231385966236948645668766424125384047468490214750702059464423724201766430369574692838778726904542211181421849124545554596068229340614807280362218551719493147591296975398661453610247420663457342546114926783241119233013553930780310915982829344513046024014825504862777188827178889942521132431953538948616328885543770012378173157043106629762444109399425032805845106734907066954434192644075904020028206601623860659680289656171663347113306604431911848051643423899279951222235780595223546413453879003360877072550805153055448624007691916669800558802572267565557719469386636690360354349383913312818739488125522972222886729591742655043469771846418993827975463079777758225119310701319949967909015301736296032286491513615536279781839324546697354591468191340448917637808477451841696964313726047813277653793810884645681378927736877232417203361240911927614288054428694748574879626269658192465943131598705742494618913166627829191427153947192079349773214466976938945737135380860563963707550354337212563635225727542649970610413687422199059741753368615218800178475358501245853378037180144330187725589932462986870839841476806439800679948970247880061950022321451989399070758500941940655609379025320530147104549882006366926630886605563853042757491487048592639031348202933738630981007357595370476220769987648297149875112085574135312094920951958466668844279316413338803932367398802606404508438038040034005057516991462455934967738032462197796166916903626950445176266909265451647590565855048501970113435530337648465620852803648322758461552633626267478228955134295481098671160846569349211702138296119519412369719241832217769571769504087876007160821583411608004969668967712099699265241096842864784839096379511560589779610239566955014344701369749950719994714566306210396125301165533679682750626797486953681157249062048319719933682254353896210518476025405066552443613213051121972203245072272436305293488217905705010458379435322108990677766850882734380955600007683147054662909771973023526735810625174402759594601416849003903260428417056218710636669281595188882636544572690364180533943926398732121005788716893555031930987571108831416238992176237123215420049168940644519271106514906330910522407732747728957524541952741774062528987973204159196329629518348028621278048566015031674124924829833785903466131921996944555057355417566293247460635854226248775807573278575817453889126702641790155811696289373159812904015402773801805427212270073125717252178999150121144179996535367558900088027363733764238407525758846599873710905433318560874830590509222493755178044763607844711006631706679485589661600450820791732860477013926798188482438825488173865080791161258526367059832994219611340168778337314181839158101385590385442138663295159598430893300541777176707866286576886866810057969644556521323869146293786129571802028251471038569987579850981776130336614452662329505123337001315131086442490042742830456395998130790754038024543097105141069287477445817728860502110879230602974882975269693049085474022342451174604962667652251623421309315907291927437485838098161514016905334931057190996508008708842195712732690568643800564903415332275181423029394014206711257244210265282718753783264130023783555667545455258999959902690000580305572514957703215319341340845280947697128170112357192262159274029738342860689420256603752829851734089982464310371671474017325858807048310841066121526290601364440725846990810077683835835646592862747607719368577316940222779024129577252984044750868281397398538589099878955554192657931599947418220657691005173947170531138636103428033504883817812962982394349257250329015562000480655540072421831273302759685818668766764134171605111173120638570064639893941490878685647091405216090667767084838279784312556565464800673397829581344735434675023553280035554861521343131777787872682287127235074184479228554775396622328902854701801756759279499315472034903183737226754201725042489854097081873923847384884852355250448193093353756355934227129855381247224707616359338516553303582459312363835575936982925531318974723816475736916259765508222522190658234894727139048267366937582174026802475021264984300406353626010587680898502870455753695532119840365969492703457717729381088510508581208072721236828754519735110495829555472784564549284245141467439682082727365700076702121146269648292001021622145338903203275639403053833029381652504894600813368400172733812546580813461672133671085458264257193550634445120950395153825623022411838210025491151911866669061663902090127943872735714684940096503892129595497707959144807686728242342087350835164552804794841481623146155172840461729038439562188981428506432649347476688218099674000041826497747924849778857632382146820738280563064868376286926358493333695605430018223696811188319446501314328607513634096660235322385915814133406749530583377940904611103795158965485611178379583055492401995101612510404136130325658203695773211652653159915373728034975562967913240227772572201252208904827239210232232891339978187696445159951832017412860482688087372605920778102808277301920252251244719031743337836228000340759667792581669693387711466878096045800444177508598468778925910732241209726446109146215494002747163286665697290587812011522428709407965654478254347748308799162350911049503236209855124370402631272729334382765273842978151103252319206738430372608955076797359907779276055013930805003378552919313335141575476086608675754757112566814126627180069554255768167642608071059325607489383396264707877581257400615154607663116149466883642243951148691720580185417069359575823107324801984620678883409495949808783654514704849613180120258406659548424059799219704076274523285506489738193930725048609642534461279464441464314110859280246996812639888329620316595622902115254890238131637388603395125093981169640672454717418772609747193709794188914198674370632614543413569821004512359755334857780838193942919636128185335026459254976447626726923277378425852106049034083971216945134975581289429430358596207040089579424535141844426772948882053223229235202659231372060162762753883590343276244280242951956975422378580099005172709267057766201868794953996574433909893978352270428450489624196183950349808176591287479488728803566758142218474468655969456528345999537688488416164463148836696585630958694076814914464845621548069877472168440445909947505201505714176812423210502353161670993752735361125522302377161372248068151235399781374888099312611355574662078246442381431378663591303684262399628939899982710760286860523237439279399380060399857332484836861156211899952185838802128915396973133676565756140522305103192755198991807710855570291832678505242732365406409242486485489224374892249105815233792712974985747891640032200280049028966296194055207004624968830271262796332150564196904849003017149966381697993688588467210704459336545627755056312286855024129667333514737039379590919931918974647845590376687399488641804842716742150155690695737878142343273123013687803107262098533815728224258273991462013845504561457188408971619427017482611331514642547584563720466166838866192306730973545845223138660311340342161890252182885547220719827850615689786405075128821995885821298762363061965292483705016358822506927720094163614417621159496554618397213714424099310584064276917258469541438896224620558458484375346993087813255211636721689107004136683109742905404384796904343611079064819171278756090759109740854561900888071859816365585340136309120621794897659572985504435512759359014328193027366444655013358600109075720773596488586629569667214325770917398716894269547960033919661989481878272555920777855347447014678107514016202020227260760269296438417116219182674458857573856343776764503771918218056690551675672233203578300796803711343088897201185396701310125019680372361118643975790435890817697432696880431842783718942135413205146188570594753825339339657117335997796628297906229700142656559828245156691173447917809909085415580225451874103714777301496082803186290207357658127391624437189476185737191810006016454718276470136030822459353746885757872852577895630074808522300909156803225902532599948321425428183759217597385544815191714393247998946117937360593054281956510930337694825419148022641058887770959290247965055634482346206935635692966773011161125997508652414739531899669230581609672041978603219954718282300855597053547885714153712831206074389090931211497657577935082127141448125070765140632154658500587226905679506036437520282413468369063624370183443167482490583471911645838350739241620764801268029566041244142484471351512359870911185631451924551111993083986438648545007499225569754251902988246903401403180770305437147359474048781907497877125308124935650052351107717914630772139563688690846862352495168774994304455960766754559996214264463576341934425421102920709159922016517314410556726474942544887146815741920939071689240359448520310039203424911052179592726010272146715341685940841463049764082732506803010938134738368886759379757492468022694898171252921924188827155609369100214751937178188269256124708157118707479960699549484634403229694328766898157827619342318575355499186858025058185772242946426150981151658196607228779671530895471233387504503975470628065982142426649970243896963934654130248056185334521497874645730088373968020079300235425165835567529350860518159006730066570185498612059604312323935417944083919320198587839392008004086984821239307913891648876193716933790750596821944102693098177091389541059784915767009495493438346004906304487263017361245244172972026682625811353095870590125203623236590458975123937159422449955919085988774478572231337260863153019816700627444915908493589857341905679996184094617067088530671614401633774151188752718591663005118430236681287783519953970771669376948458941129715500804579170943010143389170165550349577157928891094289147292799830048194514702006071694565114461739113916472882865888177593029081119541990249645199748056629643882225098160191507147969764860058353771197916174065140883351361438656919100199949228464871851882094767072989485578318697123313169357789836121669005417668432760729601531350459352819887125514561486788781403761942202955200354308994292240026259642366100835305626577133283882013826013322177881826859357691186168542146220678526286761985290176230148038626603362796080113452651880262268416285454694682140962931012532001675330367009825082899496544502083845701216549182855052282769073666347910515576547329067407663333224069788623213157791731839161240812579448598587186978359541374904322135199706827633040867102313592121343693770874508867527504911329801742920485075384474653768786927985406180658418998612266075631243833142238191059954512165528176058550724717628560327405069287429057371096441112303094690637588987187035350428040800381435492278249506151280855383969193131224385090657184358971660431183398563499902216395305931418581010299732534531678707462378247660962902514472661001364483717550391151356569177204762485170886070120533413512376491655971943145803473726735738986019932294321816885540701626948644264120080826823005764241088613826537073731112308253841004209201733143136979482975916129560925377527626760563553935014038122344947900872730434486463459272532818173248860850893748603058678931469645925087103055520735716373220499629246381660215465142325804784115096437760406141451510879812001716185435184190662981286790374726600012347800809932090674810404946967959950681589762758121351255927351799514183387448219447813951842526750012584411089351070796486614456225141057228346237495096488291022372675077425951495734276341529822265326204622963724261490742988581863111002173351332371622745895355193919445695798246768711257882256296644186860723635587246779704587983648954762900308953664298389069092379845823318634838497468031300038745131606752358388322373946933840626626098336129403941575206131023992706863746063808592143897193941482984953657691897708646227856906792061624044911094556178442289765743009105712529657701030636262198776605038292123752153360762398063836053512454171871665053200504661252526556112441184367537488658307921836167882848895596475483933384765808871316218189236031812933516187017569986611129845916076636675594737511560785085543283630700330540011619277054127365541452161095548868411891563866714206304649414045502936860148837226862657377798845317522987551597866542284168587831789526872807683239870443759249858673504343497429457609312826987086223788611150892491664139851526099313313981107646522315515403519508850666797855495146079290412583581331889571020614382406989322016031593253697551213688520089323149979720793317474250947386939038738213836296262486243979040377253335699582436731381820128283256299069036202335981642995745505504964654192083097495240874551164281809407651555230078399675186096407161947676423909884051769641463671909188005156885468232372185300007613811428407312374184823852890497611492681792323147085834622490436762940995053930990480348556699577738414502175977225684324242962416026560524904090127255801595234973276067927182543831718780829257827532767941407492606364913706327006197949143736839863240513133332683848692171473282356057901668038564982702080486064093934064822650317548906080809575675896260686584751643568067193215350737776204338880833289260945926723925108072841660893383354956134094563356057607674963207639548123517150174422458486445311820785551340938186868464253380110259106928752374908814709249671806021193834386863743459416601017637256765554706267253436020070246613191339770005023013117160434424008458244097349455492767879563866305510520236535790677306191145557609106248485037020707695765114273613005437335385873522733656878036538981388155624387603182240723412884171317085310723025984076743243061791821426278326978775640490704827975310128495509513400785176809938591982839210203430207995917309228715738867576976123630060464692924831611462606795209404664156177643232750243843526419477242413701028414603388454084121200377229622600822795774291798659469310343106639593699996557750809093698330252877681860879153582782287900484877245235266926373090739614151775804596183204767021237454621333568800777554462146430015749817603785500845171457134990549199508936508952949302986564560334135507557393239409607511717022460306950499581295609528328422177915214532261003695555468183375138967428319887330333214727230004587406552641862538524412613176468123025380515312537075406006867120684664898685967884864200996057944482081843859618071774027930920175995504495867360463902194124645387038382471674685061775165294736679063514951967160999794331023640035907183478318099306015549731919929737066116631398543738912583318182124108827729766883584612745768483362710766686702273843775905333311158293491844205481525609628477476594570059207266649097117202259524507830784473786154449432235822549282379244463024118405868877907258491039127317269416825120980731750015148427739807123297749606861750625884665001995822953420125906108241415004631766241541614229925499705928229630176190307467719030707342837843504469687796090787235123227604481026385325475419275745133150192673478801534666040939935716190179880594805268516297266559651302253760875046358839418672111578943854001273055658471054602009637051309529891075545844304278636154769619911451746066616381818697005505369757470997595058822056450680895256739338456963862423814855844032431081718289450691583845007517507744499170945023458855724736140432172008476285540265148256264113266328586066905213842895877179544720068632105189934317713318874270613744561293619511734086371824893833975492137285079500001564224801344143067642678277724874968298440014729556214898137239748215757889636004549269423765748647816666216883092091283484419573996381752811139672607920685032982667657332150016399014326871941998130645918307310642138437072262085020752186732671743544320832038339258500404015018880745870885388340719057339320499291568750354240852765624916970352652216107984130991115542636654460582343239473210344576903890262148228745301261835776550646197609709725044926171759263427040840103990124039169896856060475992314910272671112313976903963900758342702221000415679205555727227903276745328547677163182231667762546290501877717722035573662417788899133102638148786444520596902403341559286095140809332553250566587226894360405783306143147661077927269844194860822829462582857991200072400857092553054370762338155040423535114262231509738478093856541336354748910230131752228377257038224612156265602784127328060133604089838546940222507759888068227758519627753753187239685087063058022045521230710175574013478406767497100193386364914630431901856446036383943792879616247428017858605278048950708519334147723140710009373287610053570041436036766861498446351963935258247552076141707656217927913176439424463986059444605708850635119412289228157883181853100092194831256779643448309209386603774819984721123475983304799357249987392714000812241819447752424790369052405827421301339840675793839633915330026450746076986197277449094308625023199751181104375662148160994154847701310034535603338717536278740933747471975950097208274622659197516830251084597151202568783506065825350242435896233755742781336136568913383465994909278498478266817242235314572701854235851641012606034877153804657169060554713798017362037599176042231638831318687483283504420215664940039093045111556232170710579888339128429196701163587869396064532964406869361280108442918614802043483846085944261844057949445570726564436075927915801424814363445256301877068504110463264981356233959181884720412617504369344266954551062622869312423843857603295143167374394617751953680349459628673853995542441038691024885585262023399203169211674046480770391739936136336886764262389291426931045678827575653188460978481975793759850549590828081138622736134176778783899972338661636380575379765160723824542415515807283890509761928571817664590869344131559001075291225223952905762100110618207004385851222716687850306792824845831717175083685873837123379565667012250771984551297757749223643459130037303751807619632768755019313911251343125251131022378764885708768029970705691749612391595748109139223517054625341670980588539275620736515091202662368503536726500913727058437145002570567718977503217120931574148575616524271268961070076235856768755772253612196157483986135637800387428506273707901767890922120065177358741417097769998098431078378066266850015001299243125486199887980293689302508784789901844103836072638513573102931910103780953842841681584661836907586199267463742699975096135743181344762842414149788276797107273677064471664791196763158519387100210969153933891048879984792410466853784475648152140134381267338010071814677382211921015066171814126021468268711310562546028156022123738904095537589028273665208874568107047951730559963956650846740548617699762245623610741201315034642067380854290818014875858199350332481860677892250643210269275431905809852693442615346545539799451519815878706644458332196872858842743524047973201217022603600334495423288837046700491787899243266553994568540775430293555391700155615231261487752962120814149379274066967855997013190107393833352178156066829922488069036047961747077813378047653445477402225910375567648210909278600463361292169077836017406566623138595920534206658158447020682903432254845394144706529122839175474380168127209972867934315596397602995823920228333268438426013124261376941125950596751399085062174302028380473010115661061174504579121206740991674057747001233096262063306941689941079607111474733219295672963792763990058909460706518216149593433584275175039967737549475341413564913867343286513787341834120128619285101989598027648233671091866468555567991302376229288262158764886510630558849812801215737438725848930748117492050106894829903741536109613219461945300609504276369829266445190383196320377851821120124360777457248204590449356052268267433427710014232013745446064863813567838891889416425442131559206018279568039747659345052767023265828256156139886202480811225819553861360179658982298923860223862263687913018322582858344690132370435626014950644455811123059850781051135447532695613020997266464895013762227486685433777988424470692718428059837357242044931847324755319015094550439288544010413476541567890396752483624455228655817308767842363917633890366727564959648260621541386144833553042386235585364269404491574803240054261686791159628708164738337194133789984470040189176856778370271475203594962566303355822188085586477926589617029529253204598516612828294811040322404285362333808371384746749714503321826408334986950714558373904851010814217730574733838678164417824955604841705098560100524919880834238613403669855847714986133315735389192464384080737137533735336718838853413274400846367825103421306906161699480503610742113454236304688228941459485947151518670045731212418563615518727585278291650330535339571886120397015574888970286502714487401001389777920893131313372764173564428083001533711304650635616576441332919203922586663769025778718366673535743352786459442147460332524227030035306462375378090235365298778548363821461158770102848502683880906732410076902708502991704624978310600475599295351092590791013961277229059392974667057179146165588173676213874855943642515676147926650123932641637709723162789337432590690782932768786743976659709980685326045363134279452749987486623402320760488987173462099788880807440922749954628613943381610203252630985815627728523210522969147058850664444246097993505313712689216144123379981047977022391930867610626974219927234151628948406906004670344630862520208649459092981101673880491302787016297251411088419161341902015436120965250336664643998378444760888522930576433096329558553275972741736660107280346512006852542560078383924646128062613127110396771880901830123543754095914806965404279281673800572034726754755001010450468231262209976129704632257554943285049783850176477953241126664594501548740288284290887575020691502975746854929488212586570813231447155695802706249705204048454438238772046533811173797925028593492378581951593020116838183887849686763300735159381960335663803372788369347508155073284994077626033896488147457246336043764075390968025576201843057953196662713534203322771691262112716619351064069974822322249230091869296950335136677439115752013740586229637346869506855024146612367013116813082139579603013566183991913285038100178079403301252955553184135105922335064042506415085055841559704366473452784910091183569866045659506867855481830759453280848820725568253241273982656745429237741159385377733975774156686567107922499248590475810452903468054050767866482288006987467791605844767090647482394202739134635223524715414532458478307958941253694077340879737739591957177641390191030690739162392061000126547627606011367100863597380783105693322795637016336124876952583323250037914267851706048084438862594048546654089839516377565075277893407862383701986400321004091317641165852842461545705783115270334110835494924313655670721530476452592239546467791656852295175895349417489119565561387181765301622988550541762049964114060880662236476934904367564273739230464132224470740477232218784209160416672754626370583707914350784949902846706625285558291016100584365487763097534506288481259996054243521556510798971236132954169934960746048901228309969911604112197624384363174460762769335626052954786611038413990721654379571631036295719442517440247551303693858019560506171665344534241366760225555908707671682758422513681127052221835305389785550495676471549079555144257237129526889077727390065500636715345829250492381531659212054740347654944688548706182176672133761484642681886203314135586708891094044668865525311995879529356438627663039599006417749018319705871994754550169280924420980868077407394038601189993273950396191231672732295372309776419380448505445200503086685406686327870298464891225274872730847908765334979451812115298350011377167372559656192987238648657371963124782066788497325083733657835622824165739487657968184220601749162124303137644961411889508483961540568048655474763856890386526594427763409381994378380609619458593811489742415209103990717862069229658294997520952853374463330028541900696674906992377138120550457392949693392752438573324628837794571603972546514927135196962837529113476198783941258741087732387204544103520002392240488334185594291714637584197369583062517865058339128953786762303593236303464352994909039484677204727706019075131194791209431029700664240001283860939665307622371930216791743415675411267745254982766398652205186446198329383955412953274614391933106814353167212881060375351411558238439115337308307894937739678359726832286345995112380470644414198902135502670696320221093371152732883647800382081236250839970490091413146124322956507106647706576659452990255060199661893578985939994394733088231378194348145385094251924721376930076777273673175026870027034655322477009111536910873635020121031629257595344551318455683231097642312448034309274744314685565318519105503171358021942680216200095322183974844403659114978309479030068424309091762527083552260249674933855232037584519325697092898716252530513446766968069752296507569412856809020461445856739007070152021569546842259892600664200352390214574378015118690331010334100354152618192622456225173572741227171797030775616426019453849059505317830635600744446503599579449047003699433351641593153035606341964015652033086847894411333818917669826642533632387073157686168842493747131937399593417246824334791134972530705532895803511706244031398950673446312961127483806142021511454434721462420556247638888910468008516668856100802084712583224167881305062313881337793522733923400213224850791947583581329091541546385820349429851345717983829724911217399321773629200856598703506867236129487158380116006661885996360671747806316464864411281590754945497001545351039763376335928988630173110986189000205320956511333334276151035552850186903153812951572337671611778240545984010899032362603618337189944713803124504710055813055515906252899676207774980969666603736283225895665367993083294681234454458847480480156020056998791697646668095657098680636053022817570729372554255090829913688318020098369744838996480138403592732144751247861388704521131706316328666086667498298454397435964753128309743753760256883556188292312505255890945308903337752383931525480296971942138862745959010268865416216681373557437817309097902534784420217944234992516763077214363266350335033810411294708014002249793537781607623530421322774010485644667925087686352227709749680954149138204994596146594146527019021570729534110433755883953009364976879557572808299425978214862307352469114983975313663841356211029425860801300975601329320745686410348542821774891518634005479288589108216221376109758290323700772040459884995047515305937351972137886715885630788550468752908037483507188535531145352561117793221722903509264346361221250341973796458939635122277748055803781157246344086590470200231684716654780533063095469597786972244980837621656249393165321471948577032038707499941479526504563750483666566680503157202641835727022977714574739627305573909038798620497837031621304110243388114602280994147744359292135755890932069036748619040214411069272981737656358297050767950590419691128600004862586024325019934040746241617412865579031753698924741285837426422258893063620575360079727287375420712081146859742784652806982270918011872951048065088068693637099961694921291847408346606632353979333810308542936979736748373952044534060803976815235790461316987988409742208617264279625706615909847786957949831702227973848989409191762570787055259725807666055196546319397619082630474821848465517661010436035105218160074857544526729868095753231390092104239009123859195571836799597409064020210243804932025367233053141169199122986153062104640881796141540929022026270837100292850304730613254544243231791667003997216936777664393883300612712031285578019429560431361772529560252993997930805414640921687855103491736881908881298829898081850360043319177526509767540656882978005704030477186757962545578197535394943759946831319267876732418448075217523911928109366411189169795890172957900347282588188229048438618461445216057162171278186767197149057948550315204708783463005372084743965078933909007787541579299118740439936857144648102681598479607017144228587865077771123175573216834355512764651432336427328501130448845020458901716940291738915711023438146241700128917366377441374947337084373802071993974521520640529015776455862128172002144341809889317049705042964590774087881263004873359049718859725684253522332587582351109762634352147455774940099468942424207625269947713633543137461483173677518584750850483976001454871900270817341498242341767157488827546164368140768141878723982393631794041216224476100031838901035271944792752545634531990774382301938102255351945233098400741351632772830156385735324314822120732960274434003485677430085433066654537176592611284018498237720751884891273856046965942457876633474506882705441788756900109664750641772489786768496890274445152137951555064448188231786844568920478581909492096715942391784455979313425830930815906776495854358559987796067770204443125641939659146630786623635967372194362692026320257888458263099312153708387510200611514217551443146867541394888246010665905871174577771883026552338457049026401057043958474143111448894510211858353514164518426770175550324736725851124560360459965475865987197209021725357247597025678270828501473271164696487334092395027393940961872288404363028693595861097657434861687093730850512941605422720739810782939893064196357593111996805703627364200526466231848801729124771321897776113975778168118069647799324934234037813151704826438762269672146285467506917930409121395054803787516032778986298778933751510616486527623947632543928924878829748962676304794643742856127690487923653509684571736874666829855331296071579223746942121143759016777560910307654257022505087913723624047658199664608995901042960628211314354754012132391673639856710173536604979118412406551936024187522515452295382680842691902855994273213787221966710056927568752120579310940795308389507316452385346968371075867956360888151179729064851215399687530397536395846443518950435138026759627730369122581427373767737381472589726202275281931133387922269568708429437642911047646330718780150360970954848009610371428140676395477243830490800465100351305342202534206879617960015712856092128286249732471740940003270719817216933866447349653081050462950649043599283756614231656080409768554458323387991328594055956909597108132915239476200930328439247880405390590264239329465923806590209392479786811220363361042897847130482768009314400750781470021357624337275678763961802056102865569214877904585123694596798571341643891898099671903916523679181216835428493577976974106235078529715164205678504097179543378936884919244070253811446632854122386328988855043758309050811042139188723194817512788051055756173064016612626895624267428826074155419994778818514216380168547525292847035239873000802409177483202408844858888203839300935889085756686833650661355833278063265329912752250405653012782755519196665596946815641320075124792303361937657448216155531457978880500431814068755222550545605734106051039394979867797581851715857309493732918390430579198268361771849804058290443918223863421433410180329867941521655305496623190918879343418414504659742877048499693159852810001886383946315789902927741037814538704403329682836906725529018747068427051122169824732262916002155230491963400827629293126312591656497258283263751665540002330206597110223053341163214106658993657600326500861003648960248524763424127291410279951349962717320463376632125989501784076266026079006265634856244383720638270343149637517375511167112183626462324000062808376674493840175705682886918739188904922001250639197862123790414692888536998268478790354319154338205305328446748409987048407251115104753901991266874403919847803074333780246062887977839645169493852797874846449979582384577460171409416360256998810966369753674437329903530547763592999040145342013064901404888385808607115340318678870376808848213829459964896765716331398329791564991221209242276360711209202904789036976813468739584790118530283124456786707338580828999833191654672591691839600601431282638337569863317655544899856746418065542697201526855616561875683004126963379291714325721811167864840843438820590466477525038973244524402924250063879279834348310602464583699005299992225456083122955013364432483429047723589677456260524882671970100402900104516675917335359534606828777288580341740521820690755913768473500778406567131646913318257196088561094129238722304603925778584074032079781625986664226768439220950842160657868178577506149797534051070694760870189225202491744888325603895009685222883873088979422188640514383037760447036375479405535317521628019753359229332744138722458086301804896162775739875042694056290492645595250365144536568037197494267063851588532992856587248962347889039298846159116759070155189671881161177135389393643433101681224319421896833405810949416915172947860635828183332182871222567602809327434819673588698275212445781241970868689422809129203455113623997611483160129652333672390360334214648845412362117949884048379297298412143182470848902304048704298574572464028780640092757261437545543602893719048929485278482940303402054354548740519100238229415406476369906664922168157786567624486001993963223453208201888499781920701271820798065068528386739252868546210682763851797616409389482588389674001156352556410932992150467062523319134312712036052052979076180877510052482455312036431686180626603684074936571415566345518054351428653979728534760268764041460637429653851447958612212207246972243695384689565309820385104656816003554766702222537798235196903744385793492645565789111973257086081727217976221873983599993370942407532348118129632339882898525175571588956999737810387460087754161560547277007914105131067514531004981405926199198036837079703809023169412320168142327180015230621961373013040859839882378755616928149733361618366742890891654034380111205309630657092010060196161354028348174432592961234578741655124014552098424416321322784170030756380845397916217065457918437289450309553191944695363318039945553169366764256380891894791224763987573474931385702242895431448722462050216408567810618751678991095272308735288992301891260419020401717198998154900934550434603443837222249847746196967704511192400188699405166906212391121556309712287400809858510806111434690177398875413054785561162522632841688280933960727406519457983021903894948070448774210236925991588620779428013251102064796704806108477193742038217597586287490905760755318451855340423480472685027320882266547332468738601904228816867841653151597062325131343396287926422614092458195745891275647283833121475900290657780385531286380802477591218607774529739363141657664824174116164174847069713448177631217530390656729419952426729144698700928716124185856686952298112455926746318287812161662645880757595055469707888483186596357958976836926122948427937385620659006657361639734897629336436104501122532611458385488499066405479263706876977420998516769764743901119479736442770906997256141087690792402550674279748882623437892918022067680650129759492401206308274146771801862785354308129000763794817535030520417280415968861532683551790423440270207300838268829686698713748399710309655460608323728269081216695242621524990895139673716464773373707980503405228518338553123963852106652168574269634427103655449549669234177933033520437528267092768341114263050524190395389012160473737669115135591805978415642262658523739163789877376743516965328315858221153457184426070266641519657957332633526901828749938153297201737757860341156286033328399599021968947507910344086948825717823156298094254475491208326789139764164012757182638778465999097842152010721236772560833198427908241494311279395086110871626581891645196800118861746484723654084287001810211721117667387408285305963129139379820406720894888549239924838523273468933080245743376533932579739588657030218191179879398691663702451414900487656795154216259910376855085699709173555774099481854416805022342293284082854246600568209354228418432750745308415288005797946221596467176049352740840568396342961717415190863945339958855612501485565769690348357588508044437484616030497348630931885410954974117013995685453712743004968719735545953634175092119280557405080558730230563963791013853080896756438358285502186277248322876016887496304740819289493442368003415058769478411629966331839088758496140084461666183092300858804163513121962100055230955276803805621402227468485916608273434092942085376912523802022790690686459161429457280176304070735428767255171327511574420455455217373336016911515566743528588084156412042767637524867748814863962759933375583249720876062432007989851176115493553323385717068298115737417239664593150306715089679326139500735058465055869986606247771792856966115813333910884994505496070961916697690262978580721221275382036614284616961653414727064078629316958543027614288109131314678535389432267489809717887839789815687510544396975720544929275893962332134688924836810399629264640133441879645408881076060594520103231119016483752453302261503261983383111241726928257315172128637973876160466931723132191866215247374445441163765188852085990928123848496426253082612371738399140854032470104748380633311846072259553565349776088486457040249622342649510364786113603034716540930483155329759894819939246011461506041442418156287824296035092858130798157446262893123241813579188582660809583106181809580772841071922246416368353385208118012601562508337976263435248744198942687072167791560367025462209635613611393146870315573779292472203957260053982206460913413364950008494729288722868764665325024734197051859607810686010327712956666413261932056471598118036587107229047572167694652823580396749260362539449710776114169309943403847811310179959399795911474497583551253883814909572373080308384474267931560594709833574638017650608957967211607542534575930378920670155154683501035073493549961259765403623111205257782292722650341616426267220094246832402819041064927360713031612388960837026439567200587248616838224719364503773005620096133708307522828584812484754818684920563345153885006427514713410322646878702594310001877307129462445073912307026322198595152664442866995490596586680731862917552364634964388632718529985206016065766178874765697308042541628843146777674529921674891619442674038167773043610956594693033643122246379506557738023370153949487260751178507420329720111003030781757049786392951688137976240253202595942856259806241343811232162631338318757099092845302128557085504904483142240188852302162065390357841864516344038661318623065328862453400505987374978466689876696126272618869264009767387956648454359366123226032442457095401928044904478796663987577152282094934460186025468978790368598329328788634157080820670387218281774020606072201920557050485237217248423534864710888497594702209368988747721400441449035911321806373386079622074596083872322055941738893113629830734263064194828280487747984595996631280403474711426955422733223609318926866966680967282837911017516330941898571919222421349631753182382322230548244578477291389313737409082442607284451390539842876249236051920023107348173074214604316087540702356585415372201833256917463943461935038078313748664217493491804114515190693354135660913675897785665142594607218743624145723538207702644400372367945810082524512980116773287496665493791538183606232232040849295233118871094323803992599212561640310030963335321678243744805770242977950208559040895544487840140658795643973549426147223792098032204799705542137220300044190791088751716503031122085029060412526081239868243546844789350284902725600355459648876557436810037070549121417758613466270898204830455118260168187885132013564314793834276047741297139056034978859413747025483305719048817435420719360063780287469288512715986547478105244326239469485970919881775780046312708602025299039554857862219197329336969687653349039784163574323379981483615004944714393726410315216956002523741499152237004431496128798165692521225687360480081576215070299115722667473064161720094848686281928809370771388215631797508538142133731687297530409975416131154294836335729684418862781833824738420356881610026286119135757605649356463538619456447645401118973878153827011180713397616147086869331229096629406440308926037223482470499071901000921908232192490355932838049496019244852422920560014884483876540376662833231750327632359790478730877179430550683355784206985738753801731305067498768978381473966115479174477284479207395586948906680649636458844942962969047953963060168262386614492721713288385463875755430938496399753109941146609715843632158033853613152357307727504966050523047022020458567596260026594576923062292950237949710905030677784490586479154478860171402269610776616722935297654573626249061046271928989892055881399430964326864466929419738527778711262622957235534248451604306960078870006451278022811455664586198015139506739640853826414588331940767155451050380075660884969006317962637810064106433707862973768444904228318747328889997755808995067161476768166335484696752256812391450118583798622377334048441658936905576703391808982942548029695621044605741594521074073269570039118351264578543565440004117235850972244995835766303083738388025926410998840892339864307778316137921541068651997350697670776341715392161860747338568683969919362540963536886334208431465648946739500505047361295247673505534707497581096693646248486486922428657823361090543085572369264000497919734453809700615321787728628993354425123284501240558164474374297410318263837923005603635455701530238409719466052399074797962346270005280458440518446147140348156746912763328276680520982614666227748436099284430960063543556218872980849099359077085145808612775826338301638266827656549871666267431908258565709178493427071407358342972297473000294332291513157178311788335704041401830245711108719042075472862768276676179554383976011963538511530040561034915276937833844934394062478523664896662980016203644701016317745592944397899823333171310675566974238388460245725865565333774201786829145343490859397886716868648835634549556947807799060241895681068686590733578031575818418258885586804189229977234353347744807018054345895902236226439796939709473050275359250425697064334846326007265565061264245642105767999231123963678739029978723465910559207903589485676062731469563865115477297964416688639336494315342675264897199961601789194463713542489950198284166971480367778059545867195352644058739593590616407138322896155922441873636585679567204816466010868356039668309040350782533350675242763603928370142617655051847457574289239734469428522732199530122828129782692025254599646822177480452369596964863087100249987136011596796728919445123234878231782855360323053710747061099325851384437536830124004660456051598310920414884587004254054883684709637993013702149006685241819526900822704322702104456889887179365414655967993277157461631251251502425120193280407676515082023449628210181024525099872674938105273234090027834269406706433334375533821411585237087023417901952707827918110495350646961763277698241511952010928073189838298341042033063478746669105251909522014307638713919491105963664350215359595519343159207858617652130836530242380375763877243759612316937097897094107456594458175721393661571229379023937045518489224580152793037307756906479882630846551171779410669757241113790632253352345402798370201570111621007188189000510293005750863031098822569271795072269288568217390762710655893108671835536643263263492204544287318083583965916174538476267870551193593607004765412737246560598978322376871732729753888488722501932204252853911672636126760031265385684283377116589434640426801764552851410728453321902589612516278828195534387308886193252168303165161393744847522791578575000184701311687006159224046316223754258334086185755905012573902513431558539970611301630889029205934763535815171115749239977232509555262601196116458467283196049352880774198462078094795535155362561069196098692874197518867587721293125269463678150498672919300293603750677778445172366764105457674098107472284451277612154408594895493796141382590189018356599746581800035106115951623499818522632818145392974019691443523592409592944553004839035105244744353041027574126606067936731205066532067654202657083971553481797700228122635598167183471427608601749809018163490124534612237726531152026744335071151087755000470682475557842571523594786054367417822899660847222734786835355555810230089213215871793744635990317519634446898437677732316747792161445918086152574593269308110903866289157813614031240550323670900727326320795684261567860718705082427984538947040321299885235966491551477465425632452100656524120181801012059017840331866976017542191358224310161410085366319125771634318037983809275325961067561143855599574295453163094668950015286714258776854878566346463257770287149512375143028160103454702785762434011300412647314638067662778344387750227451752743866610674408014346177958607862066610072438842821766696763829910061780477541686581591647776990451190905311044666617909849295508671908276740885401621613912562707884513665746105728187316645136633368689745014121919236717543782021249597598418825538151020434342090437419369210983291613959042430508502734795551218821275458510445650468185008010734905528243396478018624678974861447719429012748820567972102653557423028055616212328805180988780293414111349011084798884015464454937945758776471494671193514468048787147799684966416992872410655028432141286409581314641571576038806880645647239437865290197966902524722497947921739792664072349468157914036719825755688027718132477215656150433017785725267982103291924717337883048127494736042476320970420532419093695507249522371209703783292745508614000530480764374518457140088610789950072344332354938456197521619242248521812185006084064690442479068955849503869806082380617825709941576738681786087937844534432411722303069845981914374247492401992492187380016599027564975778955852353330764089173614721592647353851166201260808189031610873970078603798016082533414640717027081844013970631902266031601831549558585908208333024610096016720933696739634431818159631867174626130730821522627913844458160028483302987477627950050518458613958151819777322483675674650853208644755792016439317603657490488525887838168870619136351137133606047532766278656928119681878562572301183811483528687234561695118985725043493974062567719712175354010916524875237136146114859167058226370754929440842862108240075812413880401988007550460309092597319560143387287268468487289803177241339444251186564637352644603021365983746604723823042860584391468922826745552142055075856285178665375961747373938817469062835600769242010665246911577220356697642968382128207323754693695167578965692321056980981825743417729372287105040096495162242871636105910058556974558603411084467330336953421497204823054069894022436501169881542117194959487131392812704454277880129066413980647038921686125951172995961275122947126783613431388372578593114684164034123000489325085724787607197183709340068510238660471160570168039269826039038599736289616130930967835523160699111981213931061695860582714871856013305213089020920255365050142422061936150577081722818971612102324911662210275639773892731832961945722282739943321926388368103363725072930958286665292824780049529540662625526934885181750507924840919793707970285698173732744002291005425585970524036541207457889015440448835707081307779710547824653564611795161903039371447570402732174153390938102773205995176221406640974976660986367914168559821761350742726237841991538551048647959554409679163029065476832152584582570642592921062609097591987163260125882739592265504914809737322666496484736416882763236897169242049133116977800890844187021051706709840602071531808594483685377407636895057130936826800893386668019464291222046684310375457404614981131159979752967510010767792173044116111781178313652324016350542580970569491216470498160843081077300476735301187281799336539204678170423832274873868395173187335825922648218700109122301998482369592187209539968190974103213130468137502895016767093042593247985188165789306701883834861682607495351264687669884254268472238027767270842821923453836502437157537615017321579941360100329082826359728534630250763935517306529820942482235172242633384598566825451289095778592760030569271083923179674443185612884512250011898171640426494845865401956222522767785060228982585966133522274116139694606662005153256359291206265510548651842325397113476417536760941549240572615533812407434879875554981770055829974475484376316545633132278734280458064514364782376179861422314368806878019818534434254600027180528647344840741803163471514674752934877091423869768156876420129132094022151775541562495372800950190937368628722185551669376300512694134330440251053333968596591974105368633451360064512429492458508333108976167737992356697989812120350881999791977533779317022678219314625887766718404676867294540576741318422937806466928617486173841303694270445122321333579425081970079471638285598621659614585056090600730543629622677743453960183351441710028023690451293844469888618465185869346476081821947941611037997980815575915684058451313193433127303764180040053046944482898222559229678715322632804815678399604129368765765764908906334052657547003857857237282988074348447148327682649877816914031051763397345935943362716321948118100364610070767346669864204707232379419653939618597265033012860698898465972384328021226239802194480681711613108987211016448126681191092813169730078483375041616213687073524930556335842778957672362822552630500865212133842740149224628552543255226932944075816974246858520316303300315233159260040442568364391204931081440034848770663508195081011902156858805640015583656316031388468974084036299655543347119013994854942053767483109341190710974287523587205807854740809606353923489894376005274504879184886718394753959214225737486108765821981290151897046509384664496674662900206576575681542552416782876769538055538723868957899775131742730649627467727174757405967807195710102685161304237992613633536711014842148750934207969481527091945895990973546259455307549197528350374777029076183624311657518779513589199094170828295541498675071776938408483037784663821383528848991203364957800761475407777989282100324189104676737147675760858647108848701953356111836455444547536237274124359784911764865056538175228399998943745420225114204415652291114450847232587311169719453838600140051331032934088704743059758947675211841764566093527799264416380673440701917125318781085711503979520152597914604380772030754494353448616170537311600942051949566940955307796900605748062944559508081058174420011570917930959739176673591755820677484151868549357827756028195394430042523416848720594955519139091062585730046585044042986960221182431719719545713468819080690301960144369545512171922537514202668928313717235399267545746941924363918862768190711206959211982421035026773773399646619501521526393291543703034129054640641673101411269623493873685937740640868008537546422966737605289564374671819960582024382021541850138547218838101289802328396915931811143196735993115783622735955044694433538058396002220231847527320982038400480035680235365289353324250364802315773368023842816868230552553806436929028358416171132246286083741655191140071072522263560583260144860261664063905899283604336755517856362587639801251169715071299919433636880306682312685365031952337377779286971229903351008528916137424723536944622666678327238458317726648871536352899367623793812271525925281993624021422004958905042816466409019541162455723031159194486981634566173708467933054163015810185875507333274187762323292199130727673256790878635344912985168376584258170367624129297266489661448773813838587851169367644969415725081247150683752914829206410546338805361199311252308781419643694870012486788134286197791982883911034759731936126769205739962193925970372764052988522865639979422523197994620485196890385273312047804424940128287199711280190885181587454548678504085117440514475884485996006124964463568741336924654584390493890735868271069212827913594976863652597451547804273542753039875060117069404090122866590070601674712125597495605188116745052333878898124424992143491075005628908702440545381969745647879094255871715941579186912615260048454269221041909102837319836147053031151569596589789421022494990737469576382586329040007049200036891701711533731700387792009874551403614924218643829089762923239391245879126937921227274932249727360284076147109700095611068404749855638766889918729377023738381952838064616158534230598196984731147068014441035084631734372296365547414862032956867067361259409418612763349423253475994127949544740486580997223303996817172268531379254539221568703884800832459677948527976376226025000536421337818851748281912975292178526537977916272918544199575139183457920172142627780102790065688750368684950524269307809574883582518663704479106282403159609090476920385267371483644152459092922805338514586760990593018589437465984983374842262285767344405302873524780365985716173629795184515883516989893215149912520337542384494299406564235178300226761877749682840724193879380388286807620247138713275554620620320719195416044848599739880824687429438021520754096398697521503294029152275762179964952445280407789604124307397462309575374656878988945635267692771479064481943805085432699807125642920351687488236405479220013126164398471534226957897651756514024369845608214547300749196564567436847217955129315292487628870325241594382255122151776996639428095559514642853336688805188992729012178324073070540324327893716262813667188740858749542314501862457784783543114418113785030013824530696240636312559979127303493465989822258567309166159136395763146963999225489062995285972068060823217589533782255290037300731081458303023555470608653299516688244020176874380732002853777236129974534723913116432162473530840657744848114565779663490110378646855181362315692318066331395968905489697042032893171141545899441932879074695862387945645490189524276617604299020699252647864425672683080596137404335597784313039221278785101774075111870624611358062204008697118923928742735592174842053785153320326200328591891258414368211910589741996925300438159681717664052130395120134860504740404636580231588724050955550584263172228454072273877744920433116098145560596023000284089989840005482904767732853518927909710676252820463018128402983450338396200223413725250575241251699503146065383179348767445316286793756195817524882116153680584625731001283537467261310896388125628154703689985250533780897845566666125926700586390699824503335419161928343069254468945964992869973178034327528714058009334948366138618355445460739907909437712679414467486850983399559782552545018852275015778913096681127758147807110848651027347815757078745661757274015442528887117811368539030074138835517694551726961959130749891409239653093667327318987237325243953323852614256382700529156961549300486402545943371571129127198073398712572341975665218655891958960101856538189284991932954967064132002483256364248606637222191696488754031576078213751115937384841776222226379864187687117811845486483215489782718529005025428453985117408412172372190370620181970810728346997818417225829392528921930721229082448989530423260692220749811804353904278453207212335198590392434495600414269160633101257512884932304448691154815410394944958966100982061958847543107132643998218877888841696096883720257020504658942795640683502468637710915929525076129050351996700613249384834125513479682952034253586230328112239643780491675475291748995529380765994067253065463043035369517725388512617025775839234489414947969093622866801578697142235021721700818146118654507803386040309233937720015747389338197925872257752394643131976922195625265464098318956726664120292162044388175668419400631891592936256629810793569809143546813872562661468204153722350413829836081969658328302257078354927667757699160502107828869300893791593007926883143785955272282347014584813464363124946013709090902273211702807252427481550075136635729343970338591547307370308618868129434299648395472986921796901009894101983658560642046132399556345289846559585810034943406953961557185372368990518127689902286628508358727541543208840761994343241177018122351928687749944469377365661216879753718330260882045076486952722577631216355075470841620663265494880736362457514358825121656380836055733590441611905119281674632399498609493438193357059768295989707034184703564045938053508692152497381122697146886160549116714177473591654726132312159044007175314088066509589960925666216610616061144775719460861970429323057520905914642010309887167429601820562452279234741445086478588419908428359918676971435030674966668350038365267923098758088458184561505355100690389603776477103057205605622547166426982820113409234777528417359431964663882361269804165665423043048690363661566247211120022266640448210429287197391785308152334633056771510193180770935230307611496168660148999960768778027670830076800501786532933935006431012024884769248767806068666111235739443512581549399453338865116372031042555008056929045175895192204578003149216988395734584890757059200827308214740524999946644787295686267059335762272201140552552745484146944228204747329547430466021583130957415384229118666111865282197457618100405300675336931639012324579509796336307791208313758695493394833480112583457932137322164973688785074486570512765406726195253310211064179064841355028071222085838441429800503794854614089475858597050517631374084431453441499568060243907796516090288634757841261316856662519000777098196312261620041303966337945610685331363618326070839560306198385904216751736654866818465079001462347892740474801247767309710813603845814959510938193638536754589997122747612539165696352458869097672498414829309071144536630132275919047769087160838924217986148711081794206680150592729954471841813933710306540244588257378055931283693884015836772648443384239183567995468505782028646672756543925494284073944470478123334402187576105590060540302384645523599780900527994974645185864592357333096276708489532405952485340196907404989867039256908933253347150688783714353104876902899364667153492932034235429395353210464742117087985940444860343375030607770357368771489284861022912459746233575880397971658632782203234502998067080514246442979209695410731246164924101635244054397100510795452025346998850714635454381352562789902290212385968605007502066705478703534657973474326952161023979799115238702881964995133770334713098844618762956797540542197393296001025633645824212850520863526487270636274541342326950428707099533157072182172015181006373927491411302256215748934881763102851290981433407715169703227640612633006500767059617558170718422790290675048449733678270905085816673212677201650805015456291909458312943311149205689373108128068477259010230960672338768051602620709487187480445724452961014117498889939783321047707932270707276664698480587119007933674570009667315635996917625335120517581797198025309277638774977321995857575880083089369163238182616610119428930125051854424270268909223780553193806356318554792183416279824950507405854451541882942367580108883799629051381992816591985457730373948354655643899490043310103781711628175531105607928693617675905128607705784330728364510542341106826015388295074730349883618368930543443750555470099544284314341341487897358729621989436371938502681826182402287366616605898114043924804927790074221850877455988367557627659058022909648430348366633262700706936924617467788510620681099673894262079979160978866384168727062686636543708854663221995752568334988980644088716252854757588808497800038599588433376275885877342452716962029636698503173052086556581987114153645756380861311748978295529482862311303668517991881225583373162851650199940514478285921561998757820491867526078535039922579341605798394289525854287416649483521637133158398001910751320674969598455138353261048165772690365261550787372645841731795617017161553803024882772795340814908532101316066986171036514488844301204874775742101053238973308607868157115200151958921094057182727277491669193572264690617549697764122800135689630786947989326852818739247884379734159055885137952712175480770497872777309988857230255680994466133237816397153914346628393311828511724459957926483062172425078860263175309359557347651686595472355373225464444005092936458396663686015784698688459744271125476379421540554026812888137497424359051381790674408529315328353493061668834163347923331940312435050954268165472056756796159536175391228096528289813917525266663829664367944624002979684626448948060700337382522926363046881237879183066058333012268448768934180947263623171098416618920572858122771078814733314615760007465522066802391776926570747225894824147637244452883518638395847905480686181801157624321065695907787949373145198799513833934845545134361619919370992024880087121844299777185074253763273257239415161418031975563457874825026337782094908479771644961914439341918253315985475786243599771347180854725590350266180676982604633630457313919042675801941370004530054423828619420719916822941075604322655044970763344641017520599226762780460125759304233423791421220505559258210509040727939995428961607201341262227104355234795256027862010843982670715320137515690018818502367081623196652546049112252922700420166559406347324288634378149855120785465435474303051996370291598604644768990465008063662691476773695788059111586711563830645006922554550806937078501695000793268845139914360875483898023451423015358895782654771777391893931956591752368461999173525471257029792664125084807588231967524904810370879205037951063187634239566101636297931841776512345209200320710640849970375328952224384241888446631608294535468673759885024888885482381812505570624049533508672137936726346080939546802348124059972637653932974227328370525521301398379497786930260156433063078504150797306538096893618993947873281153255748170846499438293283735627118478467788512490843323958173682068530944267128641365214703780579256127633537726848862145122570847867126909449953617433247144820723082438053725208478046348468479580722510502924012439069380487922948911730765670015109836913754897668366013927668152376572580060656059209690954708750344231398737748511661463047396119217830158714481287808216366156305263884265133251943850735796971288379540838358524815441313634007421637399693853783885037024375203054647897187214006922102660980093450363495186121841048905558439310254699411305616058532343128869430144470806797886867164017927412713437986051000478980993712239342566440765186268778689659002247786075200587963852757515012531743594326299880188408482230966001081363063227716472090117687221013209276125192621913711803008360748858039876128667842761983892752266398465317474610393544894367295571981487716528668468826795479592676669043999254720399678023487712796964366596072249386467485482858018845487691568016666378780881939911481534066328539286221929413287449935480641246843745453546102023665260319402844111608650642466950394023504254974561313277907739415483680682248220406984918033186036930580712054770459607962483963847100708114404852111483641763718618550816941380236088829829993819994037365489478187855169327178453134981461729430986725376150380336853201505151640575422434484898080950856106958400730178795690078304061927288552819962630858346053033112344043258686510547307851235377729018942695172541202344772242782058471806001194289263003744515817771916677784274687620681753464284280304728636308345753714212705650107694688849970006327386207603987864042066572641287582872658845639340147076424747928297535194596564531629571801454045834558915160400123899483567402533287447201675204509521096496772304487654344263239455153889127565675770433733018697786172082556131701539918155445441366125937819226802111791192867737106605385964944840712640609147856643868341019190162119665140661200338873009570647748548957630308052008113802576098321290478060396051527474231804365280074570109631831351527032998380551701113655183981412628410777302062473636625791841938582085898713595535586374214867578017918356978574999170872052020381396920028997033968538969454169741138824747655304041438031383792530880543488682302074697398307207882249675198924888409220726269455145666510178284637131440357333461990902334272467302253640226420711047547001857268684804126180698259827373984003505615745625383121366887317481846953680930011156661956272643822945120330977899942863799926275692805800831662544358561154748703170940660658613994229570613199567529639128796594679088664404786769063397322658236288781705704239580485746753006508124992427004567416079420680737477426917729425938332916360224979039908135921483937876484532418069030097106503437143463346882223642337150000284159256629289624613893575219959307025824795303485062786727056270068158046270092998940093340502332932980380125164539000889253413418166118877294524466052937030620581708376332879915137567937005405419785430036476573990270426561530376417250395004609741507449712991051851547012197665306338460082638252451311132081226670721008572169719549022290669412169781599918403525769964797719064063427784857921059539026796741619299507098844514165285757983975385057776893824132014903503600388027559103021037650381366960980985612667583335377873706322597991606302646563634500726603458538707232985820095000380257293822779601100488562277860863661525782753288476562880721288013954352904776215399027922627754982731625000393185880971288638040026716886203373864126255178688681531116049991981072541046939894062147928832506711419182213088394454862068532154604662454031769964412946107153057374428361560312875859584409019782009748520886920997301930663545714532590019848306084179171695526459085215418638030145371200359255012927385720009574745405310977897717373219950356785220560566561267565728796994987480272236142288858505644345170913148273836044211728713318086317777808037987680128288926782137066063495079882437602136097406162030223861262536940877278328638981454664882490928153559451509894216225289713849332821149669512705236549380913233613526858337861157600362393759758209416694983926016092816413705667499017079003576249444985772027980886843373346313826460978743225802604150011430366470722589085741895398686740034961158470683893996796878348397675464045026905124038760351276744620741774742020914338278830514915120015824972824142910519369376249679884015675872256672477883693899312577308228245625274002159715298054437615117907958703191002934931042707801714938651203947884986563788716197905664749625529509904466134026525607698583324073183842580224644425859878198740552361230065176652748034973347755231212438768808728575444034263073335151126708915267266025349218355940608465896284094896678486353384630521628807065821984762129934347989170896069838224745113291944963352848912184750687913669968908026848485397815621842415489684765819763072993270301886614841673759820388327639243188020508491204347185415934994055327053478866002112877565829929429028597400073334503039011517921639211578702184745547139284631453965087803366764030466774089621168766973714772980708976876493216254628949742957978443078451564359012550539159676647133112055849526090034913090911564341695696674661405937880211668499862032306434782334348419307583286113225194648982848799477239762245227179486632088196244159842555556378014379339314536135734724261498921079447432792794087479840019909431666638181926832126004045248928050514209643980514180386847402954199698808762356454211344780474801054325048978349072659490602011169172315112506065483401828104231198377430547472049149377589000685417148589189129884296915623017791236222066823175063276604907659056444796223565083647896439737427614429547767476443452625449487871582173406370678807848280657086650317552558314178199429578965293334277365474540997685534785686133050387851023581723876659782603707880347470736448838403651784887921908441526633969347626691937846559942201727829243566985221560728731700700560110139977840574645801461515271254347454852206266006427915451921435582454028502793737244657888612499367070270404469864902979199663159871101102058438907661148554099914955853284592073118593460386858421607223205155819179001338454317032296425795276895013918892530380659060536492223996327499965238127045181799559088719376831512686137017477547408220654513057750265904331050051607989422000382608045050546180136583093996819987650420765403031225993355361464466430227304094879710516868099205118630543393567946396465924754575680985225343238624901340285363741933018824191953296223001049671719529833212686706365276657869317850543948264804272638118381040796951348120281546471927704624207892221444965716996107699056775424911482151910500897888425889604076596714681362093205322920777729645484986259609181938596469174508216850472638433715343017611601487640376517088414681357933619737165106634231693312600653351152477167234424804521618465134549864176177398984087189629270307070302326677313545276636605953155994129493119324796005973798789189308113564605848338816380572141766859346526730741354347639535606128748625006679251514421650764073888191886520282297387203916550033513129811153746973294283689196339595258396130975272170681667023544749615953522370012568128732718072048436382972210466663202222463249805113857062835406797873384295272483415008753627442721232546513664150455489343026503643372041200407415416642876497560354180525413025718181971755268086332394017780257283115956243186469942378190927892754829412025391886858708670606783480365112555400319042172991881092001664056653065709426855474446125786116261882934734872731850539670924276086004027279611349919509789811159424525094937940346030687231547533900799906397320005419941190318187189333068599441075097550259469607436034077347174803164597531574271528950378426907917938437457203166074374616399311050581755858415186444298354467326051276650486111821849355838468003131958493845996548384766636593486007880102958529878073476605117043686650468842034968154838548233533437756443458465269076419924080730243132595150208464727667459016485081057524959033651716909408851861299471304378277607066422854161050177989420795122516760449714101306941276546396162423112118100205111865613058226218244054820874849829517883026113217567971350325204900034322579625532690819872522792924295247518966891527172209533034485749619165435163099043322479907463932385126879570319075757750710175731236884597945038941604644300201128999548549009527174433402774535250197411146155722199653036366180633933380258770978105673263233213727945913585127795925565547053163575132809170900403338035170790143413670452134723133180179458051266169423897348660741874170502886746709552823603067890141790067124632389082213938716694294577978749148999125970441256880059140899781602518053109190539776427426009959048766214245543150963792035858235611685098950536738124249369046921740287302885636839118357056672924285445071146151498733257883133696036080999390546727186126504362967893850247649477545727266596310822439141056274721739309350384060179366159717257479144809720662580516903680523902780085208190375946128911437345152757046355414723051425495434162754555482848575951109199138564685150493060245088847658480558325806277620925248526769567785534495778286870270229808080899849187886977517927313176380389989867188207580827984027101051008860980258642012650979279645990615359825663099168774470656010701711975256466296429937370478879978169071235256901230498084354457410665068721178576541498176319129284568168892454618393719504701811040488521276720391156490718414196665108834092758190030333989481310431811219625948305478608891439191690885719154713733781034786285634983168453570874273716314218663092992834185240373973832322720124325330914657010583476938493267946556722997789843017216828936947512023707402091992545809536648602801020907805007173396390071725115824336702544027527624701521582355618718695440511621280140555916440584798771451884382134176561523053007883994153235534133262232763900071340414053655974797462562577326030344050683064099477959720088710031999109494189333357104719535539819927967350638487578350545033425685045273541699236872529974271002981496309612034452174917546465661770891153206196460228704475912194383468885255047717272289986819608165548989671357378329233889430475229669835625850680423064083001397327867597530089538271939913096415007883409972250594980288323781145236343192680342356412952876385290922866204815948526234188003223589626655600683521413818746056119408676022638896433408438404181202473450209207680056510910833044685436101949688520876747624506255058141993893928623831377558386070015800979379431182866197412786746927951623606672924911662634368050619361746195407848139594483479784063318671207662715032704453338082537144201419416958458900351850998209969801031740563439147433261609576038351543443052341723067370513035363928786570588955366556293955630829524895640482154019719234728793430917881303175225879349752241723399769818952253716566064132268068100199960071267607107861762287541827751787374990880166656665435343512587284444741824655736462695123132227449540313738315503424416798556827927709810099008849525816888685238809807617151048536184375783366554686171324157211276007518127454586477788678747736169396409883294222949347761184144015605172021711667298577182100040305238060303303647660261170177309751828858341897499834955726071218497149231971772739742559132890354867231547636980945623590336476308944764270011113145006786622057604417908462053461532118578561786273550989796909092207574600760528658632674222701077631021258616550044788546466825104015528840297990383721993620012883834478532203533752825276684126526829605599711939077247746666061246803740666378968789671967718499702430367973024329954984801825528029618068441292647221403516115283978525812196617703467562793430874704985890582666281974721577178341453382261797350721072693758842635513036536476755167299784587788325871542040931885833589303638519286964330727612917453715395155496356433280046470038291219540101158551098791455048602187352730003084058379741614258821350551520835968051537766984158969376821133485942073884570432177873191680993865250950586507574825207880504025817980580878188344369694179624602937142875644257352905569712748725409895521209126832453132889630071562601549984737093064715136989239106768019811981739434808719229267356604258079621027213454673334786375851931561051500580701884082923707426809103875959348127821317915830336530413111022627141988680602195202280319884227442815611173429578207803981661049602697972063753750066100606308322237533211633312476415937277935360373860283976892626868432195551231058079480402088947748278033331572982073887408289978130371165784504951571013734624783568831835397891486794294256241751862587644883609232929933322993556654027618034044949670916718035774829550588379260520166238245286469169543564763761381398695639465875265713313186370108701070110139203639684076662448502754610552000623094200766941805999875528098831176698694224351566013923040160394078336108632719788362889303084324716413807323527068117750850946684753122184735561448606719373202069225125582513710142650102763494235062225912272394040136254029595616405149087410905718296733387337763379481155269583471765033936885151457887592440406626071753432328193329506956378992522712054341963555727720358155236408558363582173627599508767039682203489104899737856520311379160430571150879991801032435404660543258482767197995425144321159647305737553136804844129411771742911679217877274037361447323265329315629026476581781668559718597566862358167178935554040277396822821655983422463368768865191653096134827313565160168224722466492765870776350624557123086006710805141377847597960279150507811230802385785320040486469026818133106804988419869782386057670761876665224485964944561599474787808261794199899560698728752391294217292712407293533826535160515493078817572650531280207143468489716554627833029574088165891669367625167612050622593667893213817678583971889740660354790827712393692853178427750442547957473083558983858956764968727851534088803703832098238405387078286024249838103093235074599879543871143844381834198242982909496226574001224247408503823203917527447745169505942675310832552754662564021735963765788425235736590142087997002620813803470996845341735709738362417381755898802880350665225482801338876931981812434607678719569949484014060923634472746337163262224420125854801878287304609898641802229604424063784342339902973825529220450376499190180775798401574291051760456973919574228315501896242050761696972297784560547581875083520919677698360401410911783534878927048502351350593793307830763833577872735881024361044175750763200519586552811227471339493016704893673479397872085089830532470019031605866571036141439139682606995752110520444501681430442150648383795475427195879773164121098810160007119808412964952768983770539089369245357848087556521265839768755250090797255990626997941760936032476060633209767218075161806419007674270720523581228572876295810357380836663087420757072181523459149611549621077650540563432395383040935733338285423499684499817212804177772941057137792933416902610872430475867519652463751405103156788474711830155729419088250517797953561550181374281611555235989909084633232186917434866497127057317888385728413871280683481896245749535381308461732227745449865795671896888367387073847171528804044439135986915742598453606920337040130057251881903695924351793560053163114051531095974975093077382553399273516792792215931835921243611651748679017898517827856764264378727441061161493350993859883973068568372500131496993327986366897546286916219212269586336966422271725771473223923071242851136512575649993546451405650160617957520925470130473234452058057873247538146318524521772466455452353814378214501044795035719493224155647601584372661419307985594753057795217611196337422661806585585933993186428993129878088127901554117026509534442174081244782850782718973120617112556322619937277982503065318321237877841049038470828031510769694335296918637847649232370219631262534511417296350423625336197705932648279257880799871261311752617847694293224727212074653523938951862580678162165346442515386627394743745527919390789267031830923837387336806571907129097633631162407730731071774441478095015950866119972085308699485628549100510184312419544397221063174435729178332190546291407905751611283035317596974446876186661793120039905317898885157781103062354376116110798185768422789206086008546638798685337563981481362309055877366874272941949480402781791595202383691424855216100977842866328942201313691052067088898014258092405265243805847045175134874304907579338248721756013906174908048906532973071580561994393976050092390864579125541332428251005051871096853563363542391019142059334560934740405653732785558184012077855481930641507089036807071755951674575549407175253878276177278444118072532607511171601076006280495932781052438568997272420222311589943896238241421527956236768600514443271469627119346964465110574503766189895151577187299516665903508746105457363160198773341617623368868409617378306448488195537416193954268875182473919565115406034344074042682833913681450169976108625899993289801372437443556147207703012118467691118789002698119873852202764741277711589699396230314949191613997209523100482181100531145383848862816394012306393345005285056251583507814141137406580832263077582003006062965248242434942176785808444023662172289067896862656458182362141538387360315757290635612637351320215387798560080653588350527909666207610563792015176881322726200003537665134124104957815448913234778873325240780999228835071648861049528051516647351393881494840860396847915486873269146668510113597502980531348594074333090022831102041543222760488167788962457144005279676415818909942865391287744322874262870592382207325262109266609688981675594540427216747767087982665923744337477603319742425374810283044999012684838541795849294321086124388131048068235290417112443783395076354964397622453595742328075877425566503727766728162890100924976895964997763916855569801164881595886395550116635580173259051203536926559296545078008499043282269850404953208509709638545903139262135380866722261141855267402468860790724393036714184462788520839115349882659145025677992872178643423040500186765249561495870696332573864028661527009503340592891478319575179607810480497534016083849716657833927415801998301243592768852690097217895146729555339188720298161672964899588826771601488385323351167761209175024536522494859383103060938247257900779171669011163317333253013887682577559849072953917360764959150944517510517408667227810031222136437728921594019894747896167047724843837928364930289159766519364028713899754652130103263335654514666007212888355872466120407873966083927371070155377073549163909991409857337068899831691470833761750378529486519724533618298164525624310358595115820711819622233587714058282724716345645034523115981370176640338862312134943456532776462628177630285574688962697080531914096135136799402659458590353304897480336023527040477204745131743677119733904904054257702723035811753285184537693747046566128558079860994518927361746830848983657828841756831911471896212227963550330036728676259210272216213782964248036757252776821979962393799169080980262967859629830071964708839275219681087675163825862668498411793366696686295037061656348864419734540892059314678328197173907285315433297835257760042387753931494582576332030476624961936667817532167227870648323991328403298024481478143635161948798453343917371052473259727578771771594663955334061384799845608517752485032859318119723722919320654427577898787989786356990547997911297153908726355776907365147962061347127289029166895719942842897749238662931679777522472078258869086004710609913634986608483163393361427776085200261109684600279992661013535721905095665217936422377861768715175414448289698826409363871208134372676487038416418285908391837094481326684350436805059756011621440584432974936244036717380439794943079118491693599032243974871056716615390868497302236900089907265005122884437764147473416926032532729776048638438100453968577389702829305627869932738369803002233638417758326352082019274932181531221033911725492345799504159579972272428973662653839919926275779553404323086411221518984999593834199963658724401438855818379981702708082364454266054888180353314239600345022078215909270124293984804690296116622321463074514689105912098849551278432442094398314788949893122551066178440580310195964836007407584127355726494356529326443381412859189321920922220222401473264379490049398500410601685515202338217483206778024100823024947430404201678439822294818195390622220104827616256312944699185426261202490618330122938867549672839325687219371978565362880718406165531691303534236541703509392854093585729448343910611879814259651231197521173752894895658258009915381528057058145774928013380753353480557231889871468937709449058697502145678174287318384129669726621557672891720054409919969465977684423617699413606507730004362963149842500298469093620594987696045832114269513216138550694793372926353853507890457239196432029971233074547576112687075164605261725817742212771935562348347507199237067078500910606163894960787188263134449059328310696427173237133226947362991744688494149559505389566553102919155211891610583628511148000391042644902196087252262996632039978191118236711592618375373501904012187156938667114194671124787383795069298193220381159761075722007152561435363855915368693998211554792799192033711662142022169314739328155872187483073629869175228799721680321898558044064408636381913989858880433244205829023141183512096685185977544716674809831291915281678988009150810194133393283449061605162959332720044881517427886610027861205857100412014193202085460479437911495118620721960728912287913302716325858859992318646180922800765603086218099656318582729750227083089548870924298534921600666531434091591780092113862383343519284876333416011186966870703650832824806483408693387557151981019087573521551442847914267323107270503790463537021078112060171549787543538670467196313605744783963378472438087850105261693419433039586063370158641194118728263617030431758479508009131414661074271400131777553305298225622556268352980043102534188925121853506149393649117574146224215638828221356466527843301033027158212417027806480772811624548686238944301961896332613907717858124095974990198127647375811782902804186840845258687293675544423478713557812317664001108954054895479311260590849706100462855120073505339773289725009695837583562990518371340669908131989761329793657766744751637978596212741323293636507874014806596205881562495416924724464545125703823856486943530668305460874245531477834537262516046855111729181239808849293362462361551848660153785757220113359370986596038467052871147171956908394941184787838737430684780517830941051451511943279895761126753682593547115689328495897033986903596038194452781963582355101978478807516822474497254339047221419059131280767834888020782662196350992487181394937542536306400269420464128452884884085760920961554448239242225242570566527920933835603679782504531316364418935471308606189503726888998797526150148567416422522095688162351407934224531529492828456088712887846472292886848427916831870706714820810455510833310986664622137559652701998644807098273102944287673072788546194754946686359140720980439964026634480695439097408936584339991643510342320521019961607636274962646851557139119453241336031295176405719392863238712125994937907453153241169466962185342143507100756245082299382023280491988978229321518169780822387783670640792018623180542219148395724198763356270442015907550600668999289902633507423763888840625492326501233598580353162754065832450603156223045177584931459059519154418775395701373706865150397168756592765173534159251389789665535410247826311062701603591787469033563585126598109953849743382894757996862520945218563043070590288489417666388196091680519881340897693907839181973742533796575556039991272611066941327320632648648079999465964838896635690189090945906265107901034231203656154077585031050805120141774394538459443480319997518024727329274476638014715647477860130287145620999151406731852670903230640062819937392984467051459099409841180915593218555561537069446067223329268640162667554459109324218345363264060525476884634156837380465101111724024432313828230117642913039982663248775049524334923037326756908035688068079301701788557256268986265208356005860802396240206988682883148538125648916476817014878392820914074630453175283309823260445858071244796537027695140990417707291547968727438281845036294160832623041002605957536842709114017074928578054606944150223271563132934735948098172496155168228221789730096015554622420267077371976609152225744538937254084139417657734013957855017530045360734480437749552186026996104737721252625759723095274419241301970614919342180357007124908408274308994161785740440725673569941004221465236867004059521868962473183250053047842330308369085366560548192868837617898708200558215456432264147121530424200270474119185833231956752052159110415622193142481124248833356063021553831355416023238945064727214491663518139018066049432848998080221049180417222826777120681367683698745314260941950150724859795401093212236646588567524432431674482514230534998310573759272811719912848306720387386776906289508873872970409712194387834171658392416380418139735441783947476689332020782531062568730482409188640421350787580675173058943125781936548989165974344395178959964601692272594608230824537722208310594220288680037830339574535557136984488208752347622891085153020159801767300775463744878591374581176049623796243293443168269637978270818813641347166275283090563771664383368976796960019352649829005443009630963001406057752557739378743250575488372263547790602528815591436433856019342348508828969359698082544583376502301173786631909901852548898764620140253788921554807289666713607176008585356179084043521427622121312851299416521905202760431053975088348884223880500395488403128061802050349621838437345951546260632684771737231836096798855921602589590531124013054837911320314537173693802052091902081220774613256615368275938114030691412386560192308745202671902185166434051404635055515716868694818981565384443517485364751626030769173634832283426511885588281134935302260607926283915487292693155279836987673303357810306718558816921509924818768577729980506265837285124401886382579991049930052942184741977072322436113336117456719726628894050861722559756063769357110642233430120882180217903751439224596822291461716322725947411793832088669473379654935239833981340300205290783664609526605384426097265826800553042039134112706662563537585869992095283007189413065440522084645269512396168819965399972978897205925227699977638448613964282875474722523283927095152676744446470560601901644972814712060686748185568407924212023071949526896425722736104772517804307578060207177774394478195120350648835693023922329992845437485791023220179054614780679511932269621149363929714351442676109870183723420860391599134861342051748724921735238185219784909358840539410390972350271771092163142864247193393230004459046949947482846157118478259894564516077123672287037411234719425455248686081138473360583658979567975931042841965965950310331491632320711609523141288558553465337481730858820948851442624748880820053959727943240725435739076775164870647728273035547862382301331675890451298322105555898335272049841976626915968827119915092910314901681024689864165848776783586189428199336711358108931251210143653189367636182654826223169204096643617888522081694574300953354511593953954534160535680475919160066443261663346235644023545663052163207934962087674152695499008993206047456345827771910850526434676232628393304972935737517753934841486886071304808556888234334746096323098604959964212945511016405281037249536311243271888797964617672846303717095742515638696169462240379562073283906829083375291355518421577400920364020034467221695538216293549586300881925536945890049795092762719603550812258474629818577732431751375293179759014612198391594703085128134087538447849596629522376229095773985672279770870085928135977438597032785173372788462945661644617949459601646708613278365725130839226895638324053618772968022347735393383551476816310869986162925827177478010610574350093772324695185934671650969023187990674762580100537273952461623011633004106209363374280620694266570280428558991861032402986651957033614999771445858793096261360766727284078069695805783093292000343282674741933118780662311063516432665704487480871650531438571959902172916862788805564805880175132600264425504408643400028618181025714139724197767342448749358593464077021149019678546505058879236839012775387074245573464123220760052170039225267180690272132693613276478995632395910292823905208762485925700034649959777097979799499611518767463946137715360458936823103480950128265038379712425152330731001934623940547304805482560151045265126870962334771166373197137086975840913207336507807474281702165600870374388159249565807783369127499615565311942811616349553915915280118811104839803691717894252191147851663540365763405073704151787177982515454026173805193819345116746973471984934960334633467411532780441694907529493403956486466257122913847919871679110045169826989828285845686385030963932931258461781753398451866191579635840697891638529308167121247008906987800317156020930458867179535877253971025591527700197069919099770092017092768033685873717601103478356060127577543026951506943862632986114450024772149260657707006340711596774801143425642969766553642371845434841277161133106364862928738951298191864413348422394069904509901139463518702975172064010045571487520493195939311824026036331277202356713315868511728394871942606021011860124867820825576242775883115264355638552872339546180232264685264946232756819359829663362911564762921331740690049236425228626504501995784529803343192892374926568605761100507733205012956670345770100686114932286944469166069808257031911557656432422328058442359872431746988618303716031878994377926994131804909622468701714111000514262465337714714342835322666693232025774042923652357210889427696104854580952824244837019956811119843530993677849435966060227330521419353158902290352613300972206593233966284607192091362357268056995683714036993403617009065588735248073941684888006966670618237761629077133586032806123486657841432149644902971785152973605541950629285410364747162799743305998219857097136685704553586062412581334468241016625455390735108459539697347149979926003793447707956932419860650204076501835329082223032213270271644222339431567144619202239437154947612871776959778698086354065055191870254729400671072572409339512855026746033605783605922729487425044593742387556006600559486817879104033849250586779910339665414116208629386610900656644108302572867866175835945408162692830201191833574050139241895011461748659849924651469340944027963871904236019943283004367948985733120393584731947373541613352043754951875750953489596375607092478826994095038595993287293547219462906067787120083629918116704776768236831502372361520604903894035293786498571065205986682297706786933769241553444380870938735133832005367429551899343560748392640797006313070465291390030549675254226723890597830570261751482982363174405106713311812597112833821479823931841408241667334991702662417993542971135390319614490330174761354886585789066723013901345730736030292437844626437335229580096804914359469321218660491614168588055709747860742286705960191985620606475900502683786430058488585224815291003220821172162706513629183521968486099169039307797570679915362245673779093872149454670162421037133944055013859615773403986477550861927393783576856070624143172555170457515441099882153472537624972164261584874312779012397187625147975778676324119370823236113195769657760909670950204697661161689031639208951041988787414494239214704705468738140764078947008556128208120168281682667827911761323385314261917314459431229870415886494925999889524846430550650119571707887852671730997941665797495689681078125456420278516215094701959151377061322746267108031649117791290096010579261180288421408952651660396614180531060131523980553213310230540731336742192920490709840284051783066780717321541543817566973149755003869394102134563780512481133109545621489108287344954179181261895133376551091255368589035450328230437411097115636978245968093842758631408662807509625180593178758882356480205159737552157369057809559430006764807208628434708843921788474255043264172993131734096729869681497085483241272542353845374516830066794198083749042387471385828228681552700564300468092553298478607671415952215633467688619202622858324416096776851163839359543341566710961473207880665008911396397466770294673360105790511901182035437525474900539706774715062721256497919889334770644683511004223549842385127101784613816734980768036761905840808905453661003984948784837614369969080145202722914138898974864460280554551156029324735371092211447702847021215983960484730070090194737721310111387091653494848518439623292733446724549972922331190184425781899054858844096568336521290986901684267971554599358345573658299254868443212239085886309037698318492550425579420218638639879449127681521463904396134614617380376946054862740729320503675226114764602305472003584050416924995588525006993249179902708268691509346938606457987176074639759590447534881148100043752606784666828925592706267941805258072834197894874383700203988118383095516204446197243023740058221607869765587951500379633947019466389688597458051889597840847323893811230804683166423445200260247188157680134135485826718402818608370762366866261981462257348821858441158632491055760843819556468928874042354294986512444744057018452177283587703875234091515750878654901961632992996758875325718534508612230313347051258520362859015379000504154764331536498935531304666414267271159826662763488663867300135669830060571513960287212571921878723330544296625321018131622875377273570547307139051811281305151334620614632542200232952964178142279906920792123353538965336126853231190168294638266359621156190025273201030192114216559813331993529106374738040333685004905364485009206066193661820184382522191061599075386037643537710859227032938490519679641909692080641963837521655133479298278791913190803164522684762894633330814286410224341923729842399843519195534094993588561466800103676215794276530151454128742059745890245280142744317454480598457876081953256648776515640503628621372509885686999528491319889220661757233161095759316142220214892909611196346980932647823038785789592310532092002626735134593956401982149123153203727197693997680838711864763520237471934533862177988538241440576730923638312948685346994962881662791190100779141347029976010505230679298866521427482425803586438730548520643929722636460952016394300338840547371510591793789680280854691888078600159811822515340698742037714841998579635733079141959368359290772980504210214761552166075651967564144239239186115990912598954246288945140299967283830759331190646090506113712725540265058340389032687344106787607384225388329871430408233425759740713817554257456429098600830864296041936915365511638470752448369450030682309978726397912759419252280616430210893875039518896436470419240291144363185893513526811585955117819093756265941655803995500740093580756314433176657037412483721167776737305245989035258648867162564062795835016457207796515668742677492865966301427613626079949788794801878125735648125174458508578046580423035416089275098433482159187384817178475896640306541787805268389811638415172782751591276275062824602144471406904625992130879718366461910157281246811941593667619685890933754407354215928535810140123707460617801115975431027156358579814192902608210939957357372601877362037930883773976372299203915597808573293410528460532091764487485710072655937802947459935935334315329954522392913446098475192353889324180307812008699297724540016261181943385543478597140729444722329800917783989671099803224267262830616484998110652118173860441888067001288180499455338066671945401606236236349712917912512879957502327091001005211204606664096118706599407037278918644652923103257079866657142635747324398697734549884156052200103330535162381633960221905111354217548982034405077774695198892046789552851429607287746651996358170766928200322326167717657170036981098136047760044023903418488057479831357607930547350004307484330020284585677720769445755851888351621556947523040891844677679232435901399876830563032203085085525035429347075894365278860776608237520269595887618554063092178051130762879570510427282688294459712503354232518428840455880394412433798981958624480126069997527519700119400188708683524204279885140028371394798880116035770288847643468823395520434195985097425005759844646791423383876164684674392967505638259557406003418640209354162951948615765362135626349277983831221940080275111645248216110672561313827344527952599807328065997856604777205314052713470594602023875067215657222581146224936196799934705224688861420461677165605692025487201734291987220777323776295057669062834024300387281943165186553530848763353852493660101518366481622240977161764508757964492634442101753345917584056116856492356205562162498536445128911642290576361155325556386301583381140127373952704163794055354068139233333243245058849440194610895058620550575146523729116250283643375308139259872592382942474115606493495453773335560170163894980973645624436158677862181128036862129121370123122021265440192836983361986203676381619727369518775934311704133340265253471439915669427930058686848690014729824274899825689485076399606151102846560274502399314798052413549941415847094863368740378432538165774027016059220959898709295406028519529044312111621757863163905253014178564984019267128920699374260583408595611389636971894866202272837139691708771775307957040974592554105771791578347965883644992176322028924792394470387300630548661567118303626775179570789844045754985107998669262922711068165593137523255127763262943126422513156950857306423734386895841367385050958163149730886029653716539265836113413332349282843449999137519949222350772773867468404905209358191800125815558459291578766460858054824073855525629361102680264577776953225238842933438693283145523660942523721921611975352157285782308233226637886417673515617853221474431432700825473429949973552484463032369078691517358305857013789567043736843350157930618848537804799734043928550149027490021539775744301706201795638614960271184034382357778355798013528672255684546390182866702282352039377242452885597689179654934075680004676434377158869597735335906738684445976255088714680823795648724996472635053556908246386713317048647082249277477328484765289678800937264362115718180639303491172862215748381018118709159974557927004806014866997610971647518264617592507291676921911328204863358039911852302721246868169247897392339747857965873682461459563643630193451052551570453354391048602253919015664210938307226450997124880248139325270929467367713193042654467160986920038246521411421867289380577026815272585820730038392202892798560085916350980494884905869524692436326188744890762065186756638152476838107419412227840392307699754677461075634276514550118436677213383779914962226514319343639143948057380644451979865795311971579674347159900814923526242699422925218212122416406974090643569870472994522811517454218253240335176862551813388493531996511312537617675722827651397989813123926278610755027258914708109015168833977482692056851157415684102939807588224036133174214150307007575927423711458318143864452796473575588006076178562729600978376191201938386404725312316158674723683765918843341421771171938656377432742525939887276436538668008135224751054864929680743276387921052994388487801379686572946905947078051750697248414566015483407105410819400032516996310726314219863672132868666616779788715872684749854535388769238898360355826953103174173412998084487712114533859327925999739680711758815324476607127580424271614020184064119681459278428645760937058687138805242617100604102492687054327474096604835629431577332926007413682407896497232108638922341008323896251254698527722483069543549231886855684888516039795787815293437392840277201684992724045705925908295358094477898944930951787331311700171112416473118181198264867319371490750899596510124899148928424212895971756778631287426065573839071935737926118653007612839493991773159264024123841034143995642974839819345476130432651089065676535695203115299429177076173775822542492992839027029118800917480954435087123973632523932238474186486643949707726704245826194869976042624000246638217708107234075127735298212104489658988012590324521181130116762318381017815845383045663782734401642188370788004623433600899945721914604293521886790653792798181388415098747321417435102583754241157245410140792226235011045935286851203045276069710729136170048372569248955602733559098893511347364664507052090050193678756256601782100426150162900185921092341330368858659419789602957889992854044610382345676471626518252447524530766526518984657570242516457418025702006987168113601885775946418447346359381218483809645999490312530781491086063618574735447047729786397827079237741705274876872932625411872466984228462288518506777743369098562967225285603693469117049776371815151209924048121202087240564210839415261912091912350072283420340576166662107676253670750115025943296307033335802846825490886229827197440986710139121409251277017502415121636498583212524209337263221607875571585671701738876859549134973220937764176302205022370814763672824852048898090222096020857146071373698024601890790328949088150530279242146460393375453829363571287352428363645818807639489894881856396407496665026337094331509736599281025543500714744382332954303618577518803221716826304174679417479853263144458088150320144153136895079233989929298318398896409642208337518232622887792249650105157550661073718379703414971279916744038344750779483696813447347824907508142636710502504125749541263246581533688021197908145376490553449064562069230432556290938442856436072741327301938518133392666898133893666386524781537008440789095806810945742175308017661570878449919682072944610501498402722558599128883211656222480342772205204182014319775137960875148422297556467479730873713241255576509599579072127831691439031851341394530314260461054719487677280223896405914149087035849674924503174499118212671138977821083155930341920397963288320787535506169408229692438674603554880295573813678185489568525120511273962631431532081198545723939478282528856768793337371093907719007643775455090822505619540252077051138282484891196102232762215129197780876927495031888332490928011408402886616498690141264544611513186391185205558776270284103970804359668521668105287621384907106748347984296732016152593938341756636845115093412484049193082586964712479977784892854928581628057970276359560450359965844268893529478263389725163542653291904583917172865759886527236936793310915201936608082499211661728482854471403736340935884786319065613525448242077175392086128458427940145938176742070341883069394748779798305691946710958358878605940616861695285454157948990716321009987966573621575202077980633488099089582033852086253462533706216365611790966284614475685117196130816293243691023500584282316374240441048981740295408851375719655043794074352160935805898996231822071318554508739888095898529317276691605669770580334680574998644859286639893329289219646802461370102192661198297430879168330768911437917066031720463629652179917751883967756164589803607480433093609324249788413982041320055072844017688402974540225124030720971650634711029949152863782806274691271516521303616635967089977859203272863074138374405087855044971682908804180635912282648416931476846268924745152809774270883174537175551070725762346786672919111325064975855317562811182362834570716788001042665498130212394715231155290736536974438270952461826712677416242473729267671702301080525625450023612088232005139388850220266223560276137910759925942672011657186520683326987092477857402429297990024328838817157475837761467442107898377915297314644874849351974381575516204302080447297215895144054403182886254753538506770144943610557257051664952459083093035496601435552168800509372123986801033665156909181412629581909405414547979281871070083946955130989034260694512317314838080723245937697399972335595462004864541846754833754359281840143648630882727505898644962828898976666615682619973618573087207875945180313272669470155386581559674175856099613552742916029356590016039454382873708617841701635821347614951753175428771978882810336731633445248457561421907048145315556661227570835985542571191297802170264688302422892037033404344193812792237562444434532138013000797332951700375204292257702718582745877168814117282500700874711377117647422171435391255366100015903335956207851088088949333280367420292067806243757520720174404196163812244431752922472151317808053638586205072156592074373254837337764674132120407651753571238548011906604829183089910568097260540783025609202401460677427063451622156566091761728663447048665972004821932629632589084622107982461697815799308086509712546957524829912728006471049560250535957624879806114877853103023860376485354514519131230292625631986844907457411194000509760345525784320562169532767658614752666269903502775464126699675763187194569252858701888273013020061283485075186130539420521114361456048524235578344000084211285595634603059725790361731858469830555376214785271142382072425023697519718920086230855568895929098252196057073207147123682323708564490848160963585649402988497117981236651381768277074088784164944789925843556945169824771673781416544782604916681688112510886979151717042272474009140442746536901105996345332416279446820043292327633575182997952386431510286729298927276863725538995011104178232983730473868856269684835779125954548744040929738572796879345666982248159320395117478219673216377662026615816598121292554971748298891336118372451195890699649324583290958046144622421898667426178517825392643354394912444547432179937366744580851600900584893315009991444272481658300552978194619602796415640148996332647022780775213663227210594423120138119420378724800249151598223141124937727903066856181479149102840832962714942844277799891205253187236631299224921308365351083972510668038483482118598658417169499206399668658241200917570079338030143854278615814247737386264909619389623341984910881059050196928479502616425696696859251442479167633025236276276576319928167626299350119968045887203041249836951284517274184303523944954198028745157332633312456271678050968785134319218368223674174207849801712547066501817928506618132179697139701041185744680340313251440815261422372489086847300274489745457894477237451648289566055621291941071681219736917873872099602963386863605560287364367596467082011745411116137962375331854347449499939643946381398431972611321040393950987906237023764555618374136607362829615566020469954610339657832181299000982630514568139977146504363475021847393317466614257739699570112049803950750444772133319574572843655187629997995678223185060396737246316290925950730265561732579113482658176122447293487948277588270843004087360356977834037741994184067721189924162637733874287215596622564471151962080797834885634285651509799074987050028338517570549721214761570233455633609548165412852430411852857268646631287732001748346792940447994794779966613184330251957603415638922517324966683962077374609308960955653254375313984088538515109597672569477019829229564508527758875525122570312261883207890228456175705264102526659265685486098022600017118066399076600553164148584626100571540836642639446250297045685633049586085036993206499647264075892835084336435009116740542870700530824685030670698686318920669310799164175106419455186347194335091082476303646251012988852675026183779411118760673321360262338441386947565061958263202672168367198373087771781531093057064902000986597385332267852049033066586581747101152811696369768827898045743779968416615178050005083512442607215198729110001391784234680915128461058961332243420570265471878220032033406581207241947602568082809041393902053127054978119342536285343442422250394359238387495859730480952210413757296977487327561296872109102489599936349821309052734976326636833534162335455344721554003492551391808041707376153469637805190211630329356418800064830949280696981349766578991455450716333754656210649701759840983348913410068020484855017062196359171044598448856055393920445830897608475055025250801833560875891658963193896477593942914268752535842228557081610389261623848088035000656153806755134198939436501145860190978001531504658753508573193538789011285437376438873252059024612748723174084876615355484514035057788822029212260962263313084809933965259626168638987616393743831844672144433795030876208115775603990529295298536848219407301488502850896573194550510762669163102335639413819775333267543211016400175611757106780148887136394976758282064970910653713985735182666040928344306339572506041326579488617084788144135779020290581570740743883538538371397261035538428783932367150824222736134249326632049928665429774899309071648693870571492333119775660652612871157233885384239054998318751019910096422153279999322946750663160817296898240036024642123999910099836603994367092577478738529002507512560178504273055053483292026727781813558729540627991477910656576056556636223443917137809622698430926747771175344098217691309679601586250927849646057322991438033063254426336471934871320485995012597475362976793486404086397228568722843687340839620256901291310717338395176622143178406470426505998497418846608409874736470706087366565369482961861767351193228878735573178789791799671640923733875836401087262033261392097835426838607952183183501299578101911343000375105728402589214943502703296024362638082078562610862497206002890970666181033979705794864598442012848520694291276311355593981750247519703427300778151116472736251133271132858947178566011437806709710366114803791088249384289141644825381556926653683533521742830460898976549998389941910875788917884270819353438630678154080806162517273669243424042157336895147864605789614627221151561727467527297993110739474713262587450323969229997798390027413675473692962615459248338478752511834749933608692217539453056969138033827248409544880341687508172194798597097297483418527248018983837864117340988671931854922660944734303770132017131730617206463878940010810349200904744993913676810868636386343213067739365480111332554565341136443063457029491161243335061161889065709451211574274689762308043393135277346697306066393658028499215451381601694800994679132443756900724473667684958466825004264581083442642251242048249175532339016993106719365628654465695476552762814428748062747016434878978063413900011272346534889165176311034418121201451220416097358088754703760560039072862118979586280718262046647574152160059753315500547870438899000309787140567959405500798908731616868890463040392112483991756294610905469891377897310511446976562588245255520343803874944980117172549865345170893336943771234309594064723533008200689075685703992284150842229396407934325602756831256656527979769339699298976766735860464187193345245524144904068544804077365565000695245815798890751437885272172711472633677940295629005606186237695927724493437712296288622640925939937920314961250771314936260137598600289756409761747971309552932965720447378026564486852284596436389136065676816341073455591218504694050438769697591213577881619779466011286059057877655134645451300678793592682162510430103219170133328755503402455477801548083216722906150729063344896317594504000890219138836704528023814029909014715789124076450776145889144435524214602600095316136323678426308556567447773005022329783932565937433431152561876175359082975480689417915180896221131311311877379950121703680243694451770443253953788486313367349584388051289846967688677899267041678435343944582717211886751262295912678482636736787215315964833888806026736412362738542670281370525701374371837275703254147798338700100582870914571721755168379131575369341131152115217478713313329983458777717947707417584545753864202022205126051391328837867341071529514179183942408163420818785430069537917021155431264461269527113428840792039186280323608511604892125863423846349377970624714891756443754410083994018701185750770072273708458971406581589033533613018665159970155113061595228254874121845533222893552517119430083803804283824034080080608764237568591167109056853887581103644891906643255920729991437527394476774110442079265746965991801877735262180481803205243799671048324974748813402728185399003803050643047160881949622824654542035109405061907183377757731693141704450984447770187134810425410217067318251691704441201140910052814978815081017088943449477379990056451764501569146902257922724694372648708644642181852868620697056616966360934466431571407019849160922412630726750953327621609221404271213716042778098271440391135845911286137260338310796328777184151133744562453682008894132574105576623829202706340483906433139496727795894022613613764239101555439822273555099005256729011387339841257186255327571641364310551971809288760195375784491583703976469823009196124559291166719015527346306690133121524069529375556115606310634731754925283531134505893762198632298920487570814949433731040345161526418660850051403248367594587445194500027241393408702386852823101692612644340172160508667760695232298853163542111711637214480405259601669460314900716449871174381719445338890227722411861363817367248336822272269758348942791109006349649327902100039768983049365396191675879008055523416223112753760442027534874305259025444104938696153467542304424107794544457156009427895618577139640563377050694665219651404361990028239768888812145338537598628464451050920869156209057228531143037462788723660841623954946499445908261141951544152376652228987654303239574798595768236755377914714050205938280251862069742854280760075493607717497885758181720218269754810930718538258524630703622848782686236426690019126682911705550517183113476179590141484689319736702797218280172764969384901361848405656710390733763886678884505138760857515112525464660717831816544176390998330786167414442693992884679925331124403427499553089112900780303796435311361869891151337775924184544346792751152912260258898478789424964616365125210759840040184402657587881241125672280159829950281551100885614183751328865339295357455782537577264875844743465579183298104925890462431960421562196353782184768459853425744017585362293447066700023539068009911456223315760067908665202546818862801140483810998313951105430980893417418761198419989552474745283124565905905092888092392594671066324987878678291967783772316714691831992462512175940697337851871156943935543205283918060913320914174383699772494554644819634617825166734949799969524276041101174269630111543593376300980787464298728688319152932589127793220157161148801049259056623227437763355891952515749100451469985904970412112074624183417024505240325440961309893074497265703576201374384125960058865383376117158478143041317941945763722589448956617851849654183611893279799796052497462970782209817159890099994404070559559543099786283489001169700017659998756896286647919783568919116880498871082493185794766587523133840199136114681224076337492035879120707820607394836812103090405989653523795746682612466632011015011917528373741354531992833969911446904896145623074853490786887437132718801342272079914238526636889938876294013418931207574286832576357522860310865623213530481347339405832857950245500074236577474333419222798776724939570604232955662956818312704967478206477591541366140535089846008527348599162088284195884894811587471527355058762839548505112316110187594744526726705529873683793573947808187813376951814220563675937521096264533222486548577680618815482147329413631533323831671632194180254794671580723119063803151797188174798406402350224943030777858544626239938047095869653295474495801207117706175663219891783029130087460826527204409742510819942516730129562668590441471900634116258873539507644971669162792885857288065443758120546940290443551804533145092249689584673255423516334863918205422063572516429062828785265630414063787194680428047340820019060189434212186681977473857861672994171699679881939161141820951422621247854649089294796354911690654362314831170188442983150651492504121644265749599191446124325240323576258625262219036176852116852476192440555314047710714714516924923031741233322835432027145158795230424421570558347953496224107577344947460034161920188314454181868300706292515095760527894119701801451669023030282805007955202526462947424661190089466996923363708863587187503700635173301266715365825927264323582932629471571864650558746309000283471478879471196771988388464911228361919466519832916671464657017857722939631696552037066550200889451270355053169290355615133493294688968358131117730742958053558963493550713211219673416273251222930482375348485879325619125364254488017375934976489161030754943780240139157943699582878820564239793303527066583044188164017505465060605878787298821643857799323804695057872549426808707991028761249193671532898841994841515851270832889093717812753946992247874324746107050773684453457168844648279029711877674481750339345939809685688186683090334298669683282815359046822871020977829805782750957052931340394342035130141020544808701596990656031106272923441458858089888725839637411701911008198012109365888070708200127881085545815384399229016768433396400121491797789410297261750583821348077265383421076149285244448519017580325759244391652392590894571113922646317574380342249373622921829636930011296111824950335398969676291157464393085142759028206735562845459872019567252384369632710446129452225687937621554999799880589439673829583743809135174594912823589002403098396177512004669066901223430723911315236323138671294260822470133843586997360207649465238527238408330719662135340522054130581085544553136744691372270943230773474440988381496734520883089492417657605153559874659339975577072164623678302165030881510699540655926578930449900666509170017381617155572722810598126162150287928926405635912870103528085143094642918803529442794118806597926156242739110067036611556488497242762910871758157926404054214649629884925898150860017345860986439085297122471206472690925891520597332054288061824306316342045168904957448199280663284074266508760313916578160783045200490139206838369026385882829317415713827262610814258492390663344640846565581070636821140468584930973817871091743802832219538302140985392057726100332637189258327669050824907448558494981231441151760163295173661600178101275607612125889700512459112909613548313795606247630360494112694200650975502238558278408124339086118037817926120117032620830083323374888195303763222374263982827166969225890951436655259731139524705407174285869859033393452981773917514825233644903517703089442484397391268921754024828120918437572307655349825002917602773602148314032851779592946914361324201448654011181843594099697668893864134634083309318620396544181370105968276716521741491216011510790031686318430148076058174730216959162117648017746631241334828215780518718109165178449794099935134761307617551019968429853246775073239556793242808309554166902592106859586012835765795849437093901579372327985258683638803450825132406615346735146264947768804404917134570316825630448640627644333968385665419983597362854042899407247181161537720315026608313299865085369041090049951698179276104530452830467228363977975913297715249512630787240963507606757110332441035330220230244717399959654429055394873323071563426254669813135808482183830008179084618757947150142537038457872622523020907159994725553850955273377536644595034795353244528089115153156273653525391488917025207123300358736565576785077634503629503513399352261329264799612505083602958992342255118061277640118754199014670086813421109192640808890680027082758195387715386975503357570924040004862163912474361772254582399350458539097278096268214129223240087741387706739202899388829810542199393966974747221217597719531329333992017628266271455238925887098501657243114845411669605300451801641264668669246844517469523671623110750735809867892326390589870340330932006994967628603952956786608817272201627058998885608178676776430976153391544546295462865618514061949095816024958658414792760765485943031773212163306809491062710284625068908504746507000834877409447570496710924641181610548195979469056384473634114100325760174910828374849570395939228068102629857668488857823992543270162218851087748534381207648572445739627482278031155626850167390478532057770635239110866982602885022659543007238147394968805552226575389775586600561964338349545834978885759842626002264347777252218725513356514222292667858729107011960118283954767943306109523347270609274434349973906237066143957821353640187460799481692328690283359030205008252650928214951041903350127084774298439110120081974244273787665407338749065376179872285726187878562672850362821430172286657463974642638570540179997027450102598076168624726700525801176408421742622945725461507949948862706912628240602802109437664171622328269828229164884310112949943686653352875411833955653208086126293468819075667248415898513278473349003243325626491291238522325746421256280273477653370236389122912108038449072261558849877801923223126246898051601522503973181463811329664244499447703662188111586768416938902669813054346066586881968157943052237670074091350438567417676460902281566881106295593497658601036537329678630522285357225783183340598084191259201242267791535852472789790502680997188396968563518819354727434411042916339288137947675231969453478886511827204244919345038119383182018568120973862732356913354899145415483252487283341823020179737699645465642170671019065832918227751550331127899231411635742417531985898710580376490448233193811384305217486882306405530430491425171298261657535492887163325844907920632815849252489138739935074446078016519159706547652682158331193287572095017728419498779712143260681080256065666017494642604463606594389664121179551883916282437474660885513911242189846680067943550623815847116455576635028311637096257185579566190703457806881748720704845336195468640844037152255908492157055312077021805490194063706898395708796128927109046557258552644807547939598809849989082180525869551614009661996962574119731509149843515698799052505461143260425730014639023880425985791247863889919427184433030908591386573806389696124335286921272431672150252805031223555445071264549117015553564139803769005477607253181571799627097662308273963815860334043365879738708951158038460274407762146495648752377768997058420597029707163732196590691730689159056959173730225343044795206931700575115179884053861709615200756443766174229345461307226373571131836240940245029656607550326492391908198767095987149709859321843838993781166725530426732924010853371432788723476701413705378385793518344842560973134753650231882381247223371677216832582611463624731796158801089425987955915988635620236343954984820077780035251848936589372999909482271791099354740955294733935025076916428013623441291546617942467826029313034161560118678204703377282769537012314733880298455563218641216111514349966851595377269646447958379041609879791868177259422408063966655156169861244694438930508997029996027974895675458011118972540907396712408514881632140084462308222124965761184288018086817234873874467533009142662855761567273125737668247313013038799644209663307467369683740220613440523161040284548832080818295937451588358983015563284833079699000117804353715519532078702734991466778467560223230080052906320997640085343783865490509319170803055344191309025002721911500236237678266111535128644673605114368486624863772357648981396838956888858802504860544880627789774429133669662032818059812798656610727850005702773587185554792945515572831211636764555867878922480165868137439068045790259186275350778514037760383574251557125125959629267663631377090168363814505045283538591629767544521298941915905991915823731869922618548140927216951171086230561497180809021627616647507533599437167614228887908666419280732341435915296682056546870011997055381340946558676561480274786518054637263129902290930488255178753966655278715761661848583486671219052202035274607535852648754819402863020780506550297374491107700320110346185307389747739330147800100716457940045711077631208388194376076855693753808803799167741693503210025010224772707959886107116734213450780635562436477629948569501845394277144042039522402005825062490997591010027106467143970190790613246696865656781719797005887005889428519914807774502429943579490063767334195011040098485138479697286810912450979178500160223248351184782851386318060697953299024679708139608836092682606582275833019084991573910353725916196642333647247434269873519622579435549646090960064348546624721729900794292662826016670089473007429847925726282627144921269116339815851134787534920054528317885072749626317244981687016315890430798061767398403294631220954677795301654617237637488635282390845011545555751822466537097716518560905640728883170735880457165924777214757079174191295046316137475874729689775680805868343371244379526090696598990801275917649351492623431090490872626699734977245941351842596249280857169932857886540730266533760715241788667667526810716722916073810388845693792846478216103107791416808919724986663534839511393073133892339876711567515796951162844631315782107108091024712805940953793590111517424878097272076822505388075734099241569624090901275275541739601139269032968597852837404785271353626686335245793218414855431898667285485127051959457298910734026324728704502460891345054251257716438993081376941067841332369142419288493207919518839645496167363907148135028787448126339893010364380379002813155608317170221896095867576671638301498843227974076462695710893486624809809864627524984856032361090128553467862953434893898989038857012466196084930325918771149765723121949610988614302692040189401140310371588374592269748331445343936210582891140061695234161177443436453007946037238659309204977078202464737394698032385898420529786645254640396751458473509591649606247101802542818073579911737335043043908141209279146228171600204419283928464675415323211849255556713668444590753192752285169006003028942727886257680674349478854523482950027235149389786986776383543358603086487746620440372285870785009777152519971194159947928857040091280439899059057997183857877219103689793117779329255551313501479004816246144109663840250742079390321929192731992846193803198771239542392109877357502461486612005860694896308253326495076703130875207224769330929863276989465853004781947890511484844194963252618255066156767113864329345127790471503144835659516306271169654221155351765895705722803176996261439295941255482321539985578847192150112737005571699800750313239695247488341673973360830231115959674525485946223126139071525943841158150286657719078196783644098661427151083523417469119374464930502045490423833293381834168728357614309858038400857702239615631080233184110522315142757507010152789931753720055476149942949584836129620177375465236273365419392807401371070295338941425270677846662848135621071262874243706719671964168887098965050290115429974802073271218327855426685638004757040775138040389870313898131946325864516482772609534148717427744196077481154755421816343524062682422409196241082454238083248108211937785211840029827532627268331735302163905259876384959227052394886613354717486780508470961028805726644667700710088218929106597260263110841040421289214327638011171492517336080308321758888965851256140997554871641707189177912065332044056525634704456532950127898114514050129117958883900135163384440168848808263658872973217493978030743424714123492793521643062349016978402179475255078979892313432001275840598330979241200759771589531924692366587799260581415703050842425567247225415645733544444988727018340361743976333316896721227690545180472836317553033516158026325576631068577326974030285897281080679056850429131143448673400401897587327105794723119610100413952281694385374130762551607887067468834905557831065772142722159336764213087937423590282075945370319982087672479352900496960017396718746513763913230563608414494042742303920305246562484756648985451247301879625626325602408316026498459415311732567313789262626964524818348107095994707039164301147717404800728841497259912785014858835271401416670733986761212418527342968671824153974461934716255522496654643172783467247490772738691705105473324666687672990284961483271449268260819998355052227030941122862587373227481095071983007754781633497803913199025691711874132068873845857746882314826571024663886031516277961272739039158012442400249479521324970731352848778022244722253990897869250516785280045155679188850791591059227015712917959376253828096045792606958103161728875224967018306451821820405380280357511923174144346718762717375529235863549538558176454220944569125954356006063999109188762290195508134696045119067917640547645965224679392516245517205472554485788060915121313333956140005868626823341924520321777597450517675953798147247003048149698384206945648613591583634890187585159666491078129605187246740706744108568856256846233569146332287441772596253477689422396802223850334033278961674167409247959439456351148964873449284933438507798756590980591825826598180041440198243656743932153946647946005498192587335004147588455380940323285873931247666250093997121457659202935723252981723466767015640171734256965551180317492849562230713475419287727082647905735566219819036917296371806992949069104077738491398787191518977980325274564659489131113286103440079772585351988322567530853186883905988146217450561070515150834458114771360187038296046134042193831089417536204031173877079247599000303644641298315306368371429742035439020051686838266807938125046149334265404442480222968633269647097687758078309295621628755903372850310127141385232141260779652496538057492016403713902431265632764253197879166146597266072007936398764606667403499986348835711516127932903344488610884037816599524254971235451428238486802124327142678661698153223786461426651124773900641678201205497939661145143362519503404577130733875975241938710929331621440750669970433008420105796905666124241079044899967200503306067092518850151501161894139048253382770082214809795537518016333845945427900384516700933399775026120500903829994035505797060950860991415298079279615073191369415879767180082857868824538194184825952804634721208823331233557996734108188594161344870790813934931667448904041056294827277616601738560343536228185595903765345839483118766135125121614986022261571758781390800425725938003389214163890060379066198744492700549536385760450795123743379127935219952259476165539950394513015134324916807320208651708139949681662357797117424674106309466701922744445571412623077729907963038891451571284611198842653161924170552078404694033796755485803842020158163654212292096402016015220691282590086587748908624423893392465936474908892764242728777270501562975786315804158981590671801771266027929635554491213359963693088694207212618027054838333469035841569869166525993644212028354379918267478633053819544224645727093816608425663540803777634158731067545467878013242210151391532724870385991319295017849577017603038528699706083581824506984744753348579467781473947135117946607798574586959759394397417326087829319127099602393553463771552570542091887605188326194355540209815292862121130337523004523223084914176258199424652242467738643274924085479561744070434171274073109231005550111141952748587860887197519510709704299685039397974529825783588759239159527460149748013369111748579494463960634833915136776733405595968703278829465857276588979638811672573731130850024097434530386764198792159846999581775533037619772146753130147855308260805001491529479140929807164237098547088091487525406121892133411661939856387451534938520084064541049645545795646770955764634203855982159943252057200690627879264763478369021851751786407351985434779732620663042695728140485556490492464015983155248606320237936202498894441984365973765848528845722845783648933523878009885440434859496555140864521616676818532945963344263702557921562312017439099642116568958116708119250259597328734816435947490166166695277848258219799754324484896281852514693415716404886938045313585595122962104039386961918984146451242140761176675902772146707668144364743124872151840181305998608624584885295184750721677955419073277428858115465192881893186533697745642437722646772089993577377710506154411010975095741726987952341457831858185298581001416881036502137004999781209679290219030907695065207250914707135075812532488471101421171450486594683702446092345623357144218514274307942279713163099870645042307436280042178755875231826299155531699111725301335658249099415812403035198600741137584300348565964706511245391178181671822607565296451111770377508488034163632143396102742213542671363387071473058951311390647756301967547014017328270758479865018656223183049527715272473805086066774508378885105871643082202967840257771854885450327262582859753756831241778362351875950016343188038887644348959882000391159869779806344327565032369221177982028460481624421861615686380082809475034620958880909045557021107020394115617807560216163141229338332682428496896019835778064445475143885932810193952832151204746394408576111668329151569261441374697402065256918939908187509174453024449877451843577323045214847930348526766513975304291195284502065404116325977130533271484093810105549190723265366004959324258500537110407382631638714750319654882328082475380780424870996579543928233010567458945879642825219606609019482316877806702663610079636415825765193161237963538904671894430759676610443016558309527057251381231238179791462842579363613058811286068040435134967899537835115130022890757654900507369859336873816908356876423765635294598210861995369223589474935989656134113868151411904474045591110380660386332503831199185958269849576374459428190922528007632386273454523122135301694782306779467322123796041267056402587308991014021431876402773483050895130860390743739435179745222830270534386559630828365875698183220147403683218928140811482978912983303099720658043277015457559440177894347018975031921978880361213338235176028962232762958328675883488731571681540022439629652144821870575812072293383043606540079990175411297269211946746797393534586700372530738436292474831784831524822178253957027813674134088636564419688705256646747737419093524189748773417271009177357047623023343541262996145257450535046930084575053225982774827785417787712272686680674596434307667767251074799630668528464124003829349830325449564364937514831666420162212301071407413281301881835246293862725633547875405082409121883648787137747538429710769326098553360384019640061432283097369892859688800190928430675519331474239654814305693928499082728665228552947603513261694553997100457822307604513912604055885173858260691873710660397359623135047258877957272635933044655091579575023432335125968047374062557212701122186184834038058102960257425260949178836912721012790641696421479440849254564107809798837168282931715063183968759526982622535579585174018450592499900966602967635283742230137839683210319330813898058434892222192362983146786395018194248466421045647334994111568595884442004733284711779568072301955409810717381087285337470744490512773187453154309943379821679912439764336703475955001354168511375604541608205451960591300405590790041623079825128374800929635744462073244982776102635109097003830082540035650187011572028859654027873281103074765677224842829233260752077067264059755948057538068036672867771679006672669180653192113118799001994375623961269703652720212554067438438829698260211753627544846013707580571307342851859695429374334064685349984678148970578755632687353586811767553400822749993597061429325332679427541744462095817352376116315973791681921357236057308034034362350971428114877620956317865245533225800446857722947201373452457694278320355778023442373276033901825516410254870896937701148033917877988333842589640379572334192453130580825583495346738533582936895971933227379367735943020053841407431249748355125462052195304666908728790783677510465443109331082913774092214928384786207903533758786884746118905150103666554422420104232077060830497577492133696541932735455199028511941301157049016669726787437374692644754097050857672855528589540459708359517876398470617774371040034079499930203140715192952229608646310283965638037394064364779143435709492831964547524080741948756288538788935325941221995016146241186672508007224472059373696428558937543243731249580017154744591082463526366306448454709597109979298573817398248266143814720680747807417092332842282107211748526407645450329926212328827453835393775429836726772065169450582514083434431416554826060199367247842533595228877465114900788560864344204962241128357170393502805923169008683015735553148631220349022484262418066852315117884051951046126745901690228744187468263897085431263001176713588045981967053051664697254845128611069953798481218013693845714417603978263481244103248641909693956710419350388780317030201503802936474986972489594832957070409892997540202123531572059465654018895584459232345251057413492509447738605819025613739544838499703593206901480187224772032542770655854975999572012986683990374684011893268440341968392108192700869562018532272749504615644062084235265622709490853070913243665163182131438079170214136296958526843604732984675473113114681498209747287553772277634984386119204493617738618064604632145577419883528358723557388013909282273696210346438594672325876882719330949116341936557845461299971064194864828543462827749932724310887967845822112158057416756146062312738677592807600969681473563998237769841008696982442824998374134756179577441510898369112513657706784824208190413268023082033076465109732711519319430498383465097054526929957234536745909451928408294603372886859635628330938066730250140601671664890298271410634475966740408871358985141324435968457260138097028841682514268859404779409690251505279546244730939036684744146529172271888948427659610074179177571629637242876162105734359453538354163678535893437718296106128214831977035553058523418263678546075164078252986894691974062458165989374333652023234917129057327424570118619389469425589374861404366743111517356201461568904008974179447029357536913266508389374509555450860441707332826506243509379258732445626278791323494674814480045926299536795851761430162208931603879155969943532903474770690142093968661035537398335493515939346773122760085902140746269439603662156098910685830557853703184759194308310880401590727115893355192530900687004236123411962015638057451565728115194073615201575962592256192831799466442849383272279383205962601374515369140030959394225617238102697509877194178339418805392714154486465672212963595426536853351641556083223222991059367344560458672584710994945320050258984127465864405026792816814545735625667815247081285760321228102620266048695934625232282201673108510017764230526238550010879326532366666617647323989749439639770676229138134966293562726331751054570823999948379942515988075109686228682342324201179583970852353469870053042795950233023421857719942869426435214152774585933308356149631362755607192928928097741891547313642709713605788807198932926670113662820822029738263948594176966953274888083232556352124583935585818443659450499539603258585329649260747594657963282186561350080663921727544853392947905242277595635437988010947493282490487174640886619272390565888314163499626371861468623881096673229469720855924169968148616706890881013358650132101351502643596544682090641463787168030873848135559803996579423422901186739463810541332557135149737145516983410458336652883848007912752080008209638530472312495833370641838487089979836369925933256193887168664786720290107798653012944289580676945805740770505625087570724166139140510338796127082092085057532538457356297509674630091512338009644629488093029199327241996404992684520432572561261046797490971232882802317627459790046257714848867219312961286906130967877997305427154090192827862909503257079205066184504679678661425569215308698121932656527771415346997697663108487256692592855394529592062372246979792173281254754838036891840290177472929071676013574523799238761702008702468343931654684066873084664789039542239010454593696210121843480251449372847454794955967481252453976932299601765638911666110955401292826789315897767877738615082747563561639559539567454178805618489755252278783510631987131492700425324276786771950667246305933118781131308452607626808022640659803746873093162315068592230973294566181260006437175342123623125964637300611870382573327526595677934371850712214941368078082013598962107175380129880251469546177534968212611196115124974584581216173593325570984860912391293365972255178583112258005391144302146754057859945968919146037228601687496674583767682344421100692182830203252154448086823549078383850627667091608121395624697568997821667895674867704862419483219388850488872826346624982586430571375270737788500650379951012509100083393319247313149799790773653728191694505116011704204780583901994152624662174533038475934533663050021914247864407544942189554447043948026510467534584659019518600557872892268526785681807359581490116428444018166989968514538373870947004836069564897939326840846733373740037417801845628536800626878939241872124520293247589648367502404541616415924973118181556178802943139896287888485623793544596162529574565387827367028295830578302430670206049681491651744446701733654303098244977334356914580699282302010058654490898601100492701194231403368392616963098797700441365262598562341980363444853811663348318786342263870885390701444266382687775450865812299124672552957781851829915518245169186953381631062520013931276451952552121708108016086576835414679730167568858580453672414729507355386582788568848966595784098651329194943657296241486688693903810090544879874018782123009834568102725487211145609438341841475745951217685125206335658103625150806689104011521982316278903360075381707255249745127287223261995011131718536595200501994646638951651180563331171704545918048866799906108076610719093852418715416205751557141943803634935088775841558186800261019966185309255038347930289389674954712408498040060569303832686633640605550378055110623879610191830681764371152612911706385686243843698809627877194260023510153217641588896543334484821686883104265313269151190279475769768162900060240681860042952047120225142504853373921819653304427792342674784655698015424901567061247885511197801623531168397988077679492145296053615557207126022515489444458647764812453907716496161152344044797310172912385332235179495741317346502506276168582340177722265385988380792822900356567445609981228573418663700636211504167765453500236747439519163325963853029287611729752142530286632496515635286053654626565552236054036519868806541201478481206774880647427160571901886745358376014358233347454913039198751644424132509928114143971196771353213545330745204668622853811420188470140558534944931049429533868626388410310742338075266974819289016732207920453187016088865823550514950560166799475660330342717715394751845066356798127446438948584586897164103570296809078326467145242454570695504899192311131693875671516865940504124250932874494993576378584461615526078680114313149003593482362058781018891040170896539678879675698092614142448316583462049417878439999639114439055929655907157222047300040095995614558816234299223226518476980638197490473694097327025164851657375843852974690422460842857769624679165490119907406591232846711741094460662014730256646328366371350443989329173293557840408521468320483179018112728450241991845543250413119961000211039439698073745124225482695806011216171588649552734170316417702192049885442764266023865527742905439035941102494797566809915989813417750824024933991118044901629819293809825632293549032846552207644015377711386050235792124846604349032376306517662290715369659337703264056013317181534636765475436665194052095848585844345443035405097127039527313147149059179438925932125515522377114159469900473088235355549971092868615848752552429412834798621076686760705285774527353303147385443766465997150638580017243250527366218558458417119707736295791553652005577559580118518321170779128515693134505646201684434951153896459260187417721501253260456767078994620862831419691479312100955267177975512324436591836941268156611228257717776245656615222590723651783624296697318144484916495530625367974447081663394615043902487250208862794384328785135464229037486998028166513336729548930001115764670033546327381248194559362121600733010520016027483060874831295543537088317509943872411687514835914970118100873082204178303325998226707858162043418821783667307828086118801452131706287174406870627191478235943630732590667164477603805185220272627602662357334996851925902062582244686329560847038909833016023251959781442532336522897258888429992365401427883256136334155336650027763968734435664078675596965173888531956982858940838531679653765785823455959720024655467426746705082119111949451558874246974826820378930137563422144238378738363608509655380518827165592644923151024223227772249713943342014327702925617813170495201091843557935155535475667981332020899016261608625282741512123469596454272292673504767385796466554370633379457889078266176303936543415865331370183424854406432008819660906948222670443851871296697356602823243956605810043032365141306809654447837196511098493455884815768474507520815024741814220074907366848644944515894764304183580395484656685456888678626373204321306674834700517998344644168065026536938641921406893402561621093468947697146871904529379423569105895091063123824199984893834896227971976111249064207035326346228307623690947673877671062754054582268809823889850950596480808975635885611568736385070713316772344051224286879494904341937305528142716396413551676506919047428394871057157726612620536870796872863734682541034435472931096985154285096236456697597365006182167700626638860765616457886264928283168135007075318640191831690353192778178947771247772174965871901994865310741217044923939175221513251299766602414621993935570422350107261994210102091039629848599597168644991395692505480266165587197227460961225143714948507060714158649181203329355428118405665188227475631312820281151348268318647705573048330989610394416085868772208347707762125080480499447746537163042159982577687342951525957936976938790264727413357896014789241486944698984998072725656265096389515000263302479611764275123132346924801032599834425461879889093211559678061892034495632433112017898598087472153397738117803819041971035310960257709014399695931799107795413567969228887934051466652311391610723462787025252003600984458442692878972572281421560524966236240088760064788160007302772337068014314270322919681265841181206501823448683993166893299220553479159579486857393068052017517830267649938179664460009436802963462724269893588695491639995647916553920504214142416151533743936951357791333458379120677248160481160711786978094390521285956206900484473703393931292259162712058630108439115310516991828040002374835423343763930106977737284105867843058389899687718084058581399772396549091905927977661951243016098478641081768549733602580726777506400985996480612457162413981488671285797837332590979216447333281114844210054260187773161818697705433611434128747256063164954553818681457490022373375533061119738387630049870757227128016740658220909973110800498738866362581198666038769686758149948138935852154687827069000855088046645980994736899551228395012981037722832791240140203228559492973057708866693377551231326829955174064484546427270797364450337975519832597711266052475754820229431783722124443723839831352001033639290844505287591075976109726158309799871020790510359309465961464011014941724623040345173179775749968274002245096608202779549931473878338450160056412510455790525900641515376134747018743870181364166363992945494426100280571482606589272718316399867059095269539439271368010496869555440076377003579607699612270150653879670655800805903401474256872054920873847682808205236915966589080883073228595384893737566898389511406703200095287071337448052804006185196318133914473586829803670843892787833743127264760138986422179217523402834443629736895489420527928465692979191277595693750532009795151112316054577331984347630743807810085064613123384073853015859792801847101643638680156200072079550153668948937015788242646519101603412536507557589574719652354222008663260769170804123742030878437096901432721519764010313829610438021805290706390384980562438691330347159465939144457043235670731558412066646914693442077100224900215342308912203246183958263441865514380348965896443788311025700343980247164572027105125960543291319544616772262677293536482485663776571198384821481342211478197925390362793261675142277869593769172630474013172148870059306565046302750077642785014958364702336991624020760619624275740976154974737815941744725456662025083568990966871757043029603932707084350410089749137515140621210406501125218438492227703225180552411197571512407958122499929025068343453173910009193708990202192250651030573708705271343382241706855659178400048543683797104342449262969130741142116274434077293547105630956711296189205447717124915106491005650566562197261124273011001740479728547572999510719866832914488847818761586765050209173971335579136366536018000334427592020716467430718646266237181267395965516601572484580582119158009047878424319656345904503945067974866579705577376213543781775948245662819378744779950459536017788208193219602365095397286331882765106558855771667143676746719154115528643786126609524923869123947125779639999829847314627434044588303658079484585574379499843708940307572563448462182324181234821028219526164620371558807900197341969908417751106355515739089554463642557572013008076070140561092307050485917170471904691580746008871819773699876465944283847609230693264648995722448142139492561786624567970984079624613700581264292523142817810625801317717387771396605347128010520916707866765847947414086383979002498767511694814979924944673138381901385273065335736778480674131077393667203685319338537826030800415644812468459856790664910809896992019874905573942064165475779571249987915362929328171772620296579860985863520787043089892298093635718075995593495608170242152198456111388244339049391590763715165327301208874285471469489514030859768161185186245484317402014744557495499215368614987653729068695334539707944829172948143423386022626982950508467108507783705878571118966357828074282492313507058018331550403354351587184776467278182836468293775913600767724404706657108544021995289758689870980237555551169495953761458162594031332721440499616359225922103149383478645982599815589176401855441939896854967191466350651813874520576814973428360683999243924217906474764781606619789002435366346708240731609544050058795973441127742430671455726538831117371074765355113876849416531355031720850104266911365366048980396651529837795006926845018064558526831132598161659626750163473741884573507526394372920038869737637226704810802299594165151984079428431132058734533570193719426918729853902434371908662162896211611144602790946695007394809956128307960789621717097035191564786883762184432906309560253022621247991580083779606239190210714474022956164707178570714532164026926822769457594233369238824813074189800051129640490804713535633377966068918746683453039582798037805448329830707788626975592957388260471593973211304344632167405580850179917964697790435005020142732373659185766771569684763477043704709016091310693358353818058401793292071028239432098840387307167316098654040376454087405804316802381519595530893937318773110562856485427439356275901610516289360342725314988228520540852566664160517275509035304324648737761334951509936616508134976702693560923993568729410139911512565584724846629654532296653785195902382957180318560337312192565292339626108879025324599723328323618655145581536565601348007574410500196678717852079973100247805398994907469961274202116544450431784025162489079220802747200511341731589219478314368520615969888944403704626800952260915691981385665557086524200966267499664284044314819597704380962629846442398090129305717028099011483503012857648396280547485741170064897692484117422000189329091441515128523839383600867982814237823937498461874628708780984142639745580489315486812498268841692121922491312305981633767026943152761134612460974661516370743285299055638139124012527807563958369539129573331809416042770609938322595239253788607592984262895414817266731368529606774996854743134613380276927569833249171519741349308102398030440105105984600159481197905403650969075464055635352242159966155916086916988290872710957409601868431093524902617140765036947304268962947037752832628795978030587079113540671273200905958317540095307173919465496696528276577001070032052531506335495456457749620170371456761339010617820448025599345237604247518088234942667214897126905256890105501457973860359785982293045013891983056386256355942685455121098057724878425533243053695607820860840180987950585357307733486422069307047362376847513748039715501337676489954943299085341283476409886800925578893660997702824039414889111487646719609423367419517309534494651021918319528285213977538912457443659925621224815938490030915435908451456976679563769900854432205327841894861314338391249239467937805069828565338805208497157733453520163179332364792582420597929931716723202612672548559674391282382937112249089866046654746903176358631810821258326478389169004218538544927904040165823947136679670611339299316510591905803673402642963393660894840587146855170034973222003425671742655360640277237582932152893043469568850150034542205742897507269789335197782416296134986924140445680393247604287069625382373880962470442868787078902275634501563318455711429633132037428985750551183838514766433440259324564670053178888546571429845906251754744464642584131329387635892543663607671129334874848801401951384891927385663650150947030003829872940328758783902088236448426591831358105128577552660449695879897353345910778987388791169140583193209793249236894853583682674798513949152520652435098116908820084569919504178223105903401904867306499526491487306506675079921396042939362498616511730116609458160090791555350904150005475516773619147110301471753613897082035132219552311695249153351688827593925382128494714640511300239413601478893939404017040084865469197456346758760776398372496827491309616978279760277570261974660739447854546633532738205160926559786982288550098102751846179975091120157705504724847018491348703700947196886324660440980672686686895731450047572386786666556147150198951719826617235052200068603549703869595129520807433408992196276311192654753829332939492448552899738376525109345786428341762774713932254060400704807331719209712276585025531070025752858855508093150516047725782800689982461108316541969279971272186044157225979207418217576760029947998759342299582498950018232030185768309200120112478200996558929799554756978981031681568089993043803821735121972991297449831252938073973554906083302823044573573495929949157095274461982400336562239957529795204722963621545751062407918350245872845428963731205707383408598817844305427529668834148305840750995284023644656549110237800893987065188092705476037625659870676835020628651103107308241354507164054201069182640056243690932236079980923285963435248050419515478021509428130895737668084523357135634264843400051703848412758134624946434301663480980925912968690448312027767073422696021856336076799530630184081877817895311023159290450075719642437881765383439703874056636197126374857332794120708877368113593303310267115774363713446087207209122932691698572179909628800200300273318491661987734192151559227662269273630750408811329358843700048850802577609318036025969541928500918621468054577118262504683577741035182563116898304993307204117857414801384556497640558616321770800457618137286798219227827168643300256379923092558252756818891798332691831552464654655223415978412991541236482701177432005929383384231187219739351461037643769179014947286115326635552373708510824195944292248658595591982207067952746512655748088888335791924713686283781776896866309097557487306310986706235555760663346136197604649465901110332528033099504464271094648581205728066198662443136545658164767074070993451149635738562884338301497911446957603996244780993873951088056149209723501204703986286984579459191903297538452520048690419607172434721797332673209526186009550203152978976364527370579921948659957155525611432392915644994778876013306336541169017145622522907189032941689670246581982185118888510695174413428625118979477810164423967602107380126176423158195210081657041811367889494733260241426509078358894579575705274579068768940667543378588123330858737010267720519235261525119876580834019451915237176288583173370800030927115300858632551987273453969521736080460724027023942970957304524159835636259025455547191514535324097993165027182887537793608474422223013392611462756324446115989428354698182106760753146605396878857189234314220210661866833712757302263861856040717504474939349049356395857962198660538966030006032668698073437734883153413417590930554358295744593805410055595633071690964319976932674577929309978835366255772540221399568850508788494081694427355362292980515125206132788196263652889262629071570763087325023495601364658351850546203434549798968061301307143812404692494483386574489100212904142442775689012639384011443017618601614222811351604393070455225606940520689482756245200298012474058052312939623594383739610221386025983667405103587331401604837251206103397922918100066734084702528586816124228529366591182146999299474602365037364942380040013884210639949507472385873756164762639768070657413066524445951849025683419153295592913378644689920637269992170889135192926383851483685594024931109908111392141186397815712922514173726529244067327016233227103353552828134130297750746710414241912048319079745356793214258218976020685317492251922999771906627683297436050444761543378987099114932794673397366983203292932739802596269658611903969628882079869829145033648678300552867824378516571945704190492931977089791243470250150746003969049103187454755950619266522366396635923784739906594545269495451207298929679241709695367051359811661892834047869452301169690414517324503825115537523973674080988445156641531320316856499635111825157452197548681315402038415384551584960111230859492082446428696610755909025147901113059683019830294121417456554059112167080762234467334708207899542614107322021448296329827650363991645811914887740804915895433455094288726034988658633440979471056059815627992224299856010872553164501469810282950895827349922516173072498231674249808862755042308965193951934238265678462684422108919809509615619392616819946989292335652304119312822556913187500029852608492137112717982316368364071843128975960627492464889241737299927925204730521949540732272921624380149805644812538824768784119210418363009026585099049764612492463556271431335863419259208061297213908825137639554085275860135356471675710676195359150409563705931812034327987837749576980454962685233620916891426999106240429171444051710792664992154901461380483551313185965943368797296159490530206135216831119182214765722039130423083682323038689467254519442761936530480418383422801680111522325847817464784032820635746277019833367603898094461740375929074687746892247325469729172507879620050512873843230220248216634614219878551687713766595223434171990474750219717817983718438663755752161783713768276239796921668970987287749270905505091095626278237324114064546611405260549603728039681305763840271952223917414945025471396554976100840986464877630921929340895302382643124344806483385128072781758083563699710882425914841500959385540551058533022725318884301743040949234803018783112639448266426882342851089671796368304521439832327189389023804577508791850156059479007314164587053273127374829233172954139063615586590456478776093535402463300320281771731094443422555184233102581525174091115541590309533155711909230491296167194661834262939518317343463104271109892407523743186012105855828566897618553787452075068250789323801252549300462215964574857905441523650178011202488372731725575606545693292651930342735164099280310208196424701442892251662807541189487653152454707132909118931866763420766396298504812942968556024789668696748344424564403683272008099589056555563663430440794736661403490877957441209621370358783574503742827470954489941637131920479670164033018271787541370725918102228508665870856092897763532438215211986898153503521772230846971354046740112848926691338837873058456547078782130999937889125208566072965907605506371046277939840840694921337461583105287190752236360663442471130274402457163782656690186102111506543780973906916144103869397593990857639773526859992661830913637216874963260913963779871870317531507549571143694131100653983916164618297340402154462555283315618312336384342940293789984960812823580731535198134669481451886235439136825409385344599409009101268667321312850630362975487749122439906216539984129076543753411091388692443645979048707133203609188162080744172415611376560322326993899533987492336470905146980776182012375511987133950106344928294685856935503145924480115779588690753868407860026114937521745410006608113268243307403732141891329580755631794486994501159080039169301115421319361837046559225511796728742503962793130498310671830673931546153321667719680018448368647440360556563969715214224109895353326539653037703574315672809284093448175090731579113083382085179156538597908808874246642536497641930305698460533853046771187832311763631551485014396451039303870927002413544915551490757762241250315599607248619077856623218626379978528807945833238071082256715390732850364711236391911525912466869822339243127798318732459708147825906562181696205051781401887766297804915931487078231786895011823705481313133061852825421356252611857627285975334363242267443716717442580460886334517381144127902275735550275516480822365775845439272514304189708724001865036917853562749918328686026085506254016671356551435284704932249676416222554198905228463865920604615653760203192137145544632020506565671159152348459784558454035976577756571483367278257840949944653769924666043880040942627524296743089658010036025188675316104728328256755311589792013329885934267020313935859074435188537159418131537501496840333857725538363146098302621601138727221316505904128227959439672120073424781139994558645280270386488691916891922328547448871824297016871988467783787355592660718903627221494751275878241971079639332057172200288819138564611495983962895704526546623413530949905150490058600456638931843955517018838374028019929280533362606339760241366592960927696949733865180631628682343978504248616889195790992328833513088744961307869008040277706896371696943710526946900192717315144630372131796387461631315658931355629866457264589414487197379101387518629705381828962201339045834372655576896190099134330483557474039565232989591876754155450050662642758971042126901814073139701661688290316836944458922309083932128615447677696055262478785548018799191018750664194786532810152208752811958696224505946850449425976744563363152297324108304812381011468753131673976250825066540618191424465293720432780267141515866834195314149962216802874052437187919196979026782410220672002343327022710022642989304810620777803569945986511283152551452710390769024294079067914999947436508966130492852875482098928077460438855980680000022332103691102135393352332570758857578322164556624183599419238738300150847361578825950058400055401457036678801494587841645046449674468125344966096809956544814454041825667333310626940221608291499942849684742035605944763162310548226215352565361666237180138919374452437761495347314986356397243897358511887190189610278022809712294476495446985351726591993968613761284911529819460714605072962900945368846954409060973677644425627232197049055949999608076474308580940512794423238973537421329946982440226827353315720253835263814964484863432443605482212028427296003293388189413753805873350779265198946251041031278035955302925352482734174159098499716831193817506187678932835631868221938057656045970927180932087476399396486101898798469391059239643751113159457988215286543742024083116867683518064372005224084737292094010791717492442710474534050676228455249472078038737285095901340867480460671151502319908289858193879802642744335245197823468900549087621119262504863987650583802814319050531819620420759501713701944901592739319760915881638965231335385304329433577034409211854079885122322863863670577071151555518443516468048272409176448421763673209920159256265492330487610927018440150612711467469036936845852621160115301048158802810186913521275493481483500067582814355700152709761530105986343404298214328465116382467630492282605171299019435799608154844017004687139231740709150471248695643802738062871795869299111460545973555576073165821867000501348628418008583625153933287586971548875154515517815457593796851241580804771609914409615537842048338272797862342511385353103595935574197748142623898187817116103076662044451141891672015771659093828326628248416576476306274083135815642791793390206829419512552856138414160115522272669548316837230185296819474263827183632327267497558998977007856073565071876145669855316861001660701953931448611254418026492079857086959153058515405233376118196903407180121881714787030818937748903772753445380009020050539381557505758648327255151015080812697307985173536325837868152583030067063460405669198256301053011877721342114898919536239194330136343597017126402749525818008921835947778408803847659241134755978610744706474164419793691047926849962621401355556222120010403020530443428584488087030712139893493413856977408490923806973503769790325417344100300541681523092056192493628724718052767283243635225007915694659103697770242994289413810240810137341072444923313734022757897481545814685196565660821916584189129207570807387610938099365911791014135482180318685354858108528906651752420744946200254146805418714403680306742134851949836367034273463911735077196925802657688030776875166572317683729358891946186126349512294703708891645472903902201938525171540482400070323333738402009601693358890329438714268787808219851445318807411482429213460195213246042951041629726283554361265197628888877749482916949597163938448401187274024737210426099280953576117584870816489227150251587376424434489629072295776812032964292871903953782152957417405110097856532063062552494506369664610898837805491450546163539253715203540979756077844939541116217646649899559746753968033128871307499319163338268531801280901168761421667602446979018391350176610346123420538214118562730598551485324785801954192076901345161819254874187866357133709449740876660533746652796034368261828526525146667101373475852926398777219930776627590975700867264741208384713608289187201165539609381038572509289388896704503921734900087109269720503606771075921669080676444061448266038218380437770522877657200311691151960319266246924099609395238961398055890411078121634885356394264296627572520667292290095910119247727333565131563233137451730441816011117663437010811417828588029883680403679702087804239373099679624947307464033918986193880641879884808258591125463111451763164930435870374916894961378246746105668846731451777226758942233929983894266259512767224633517685355529769497851908823870383651548530570431533604123832679279211222022072648891825781983068961568855376773547029107373079094209096789131086859883736935426009119668876249320975966962588104544515030799057962315121694962290033559038646201610445359097480298494095262230722301787784826508402683937621856735620370420961491908083012410770885429042304094979489835490841936617075701007249617899202441100757087212801916021986059337394236063202364427168495217411134331180125450033582924035306929736658090997754736294647423279613635382137501545874820348327398195866299552108866646035358745301961219699860121940762306161471507997338594777512489135295731561003195264472444093853638918564068273702970325484001392116453550185924614226419534452865355152838384621878646609545478656097139003627760533607106760690163245656990227859892965632713425587214777926281854784123951976198155800324373737898692467551944683822401223800892171503735574030064766607479700601305488018476158363146800735464628929660623762649602358471017935146964182596547922749159351482631819397468167639068127157556037816587647509195210189438129411449811782819047041496971631524856913748823449946027284512879567002268167150669241979387254814521449244528836941412909560806522757569223598285530646569462433514899005756533905295110259620102375026814622023826716781615496818806579688627460487211503218787444891020801283837031717187268757706659507748334735232653278622613006420940188698081634433510289621790792864552503089407519371432146155738698800020377687954798449685487420466530373292116308033833309272533465266912510864763385380416449705848692183409643306756125799254997448460232523006491341337760518841857667445336396061252031123360684316793099290788525226551600361890215266206437306645767253980860756461295343237261599130178196543884202994087871603043831952564272654164378273033761070777886525281788733859473161898274081637523393585469792423175828782338692216672998769756361979325615930824187983638869211970746613825329566914248337932173328208142356422283049160096456038984663805973340874738273194984610042243044295165629157615800591057903923071991796960942801022365383310942579824752998800851773874320109192095930666070651007450733111156226598333914659010103632342056199561706629239648670225103661513486022818775891804254846885125172167972308723610139136787654496847174018805664192711680760404836588570703954654660043121365630401245944812376012264883273488677187308395467499036801426099280469248363271229681064917585255623917166668946478257855799375783616044975853818713699987648931536071136050396103089852699038401270751646022524625321818887909227029390750730996602098759988475450227223501430642099371913894181168403474358225784916794819447150482900107788147771368441806588236498226730062440597728189406396396849653028535726918523568715720138149836004482199566793393027552676494367251129644673978955207231942336354412527823686449395079517824502165248147674592752775389795812366972413168947737220634448565015088679111517304321478918139618045645732670701440868666427724133534239010553882805221912035909534559629891662389028948420230684053537645210922888046343684302629087013296615969515479083846092500530412286446520796419400085300558845325683999425475664522636846384173107486480089112331423045445782867304872570369878725760372681239024017362560355955607765412960107494238487224253836399790009768762317215244540411753093648310730518385381735554991953608199143654623865921767892898802153848872387119888413027105107138210796479737637007663446236548851444105320896916843303327357358843979564759648384736142940040369650309384275545504368345711854409311346701674963918390139921233236993111416346968226133207287697914803171308318423644283768626943000589822403135628602596840915420978746310810573387845464825137750306053809672759405385207343101746123099845787772554343358540184156415609017779912439616097059634490773726802288185445100178772430527494251279287629470114926079069179965617217837111979123423626318436388082849835244711445041425283613247485542039142863295504500109299333314704430700644701983630570166241945293943603046420933451561602150593430050597003558017039261538862770560967237581905768458337244923936825526459666797906490839651201625217269301338604705231106319500124409602303354682492940201480315389230825689148029810134004303621487928846974675682876936879689464499446594215099797601398889165785823555132148281350540922739358106308583751810891956846943661036463607602544181185983541489671328188358605989343782133165465419326043465190103922861196112106938616324836797878685468390956425428464810608455887745006236292297789834532367297221291255388275576877958476065570037914125208446298613938039032168972918452408876710422219935162694475574576803033412944378691044547952710996620507308011957791457994106268019157608216873449707879701608211125415770179182023103652307167080039804733606438897826357947293914583258780552672928310567658990824958422012428605402132408700766383889315456732514137558839360795277525214179470489199746236231113490033555991258684094130162857101125685833803349873622857984252784516599948698636827031148194294218116701971116094671268481044158769043453162270975390651806609401624929899133127128661139588592445832063830590122077375688116425623679191527776104274361212757664759426770523871077792937527923642299492780763590285777546292799096087254302381354120561878249679074570285055746446712997202894583974950266345214266918398150865983766276266032376474975714220887105945812201734537422315819971106995687805030721289023516807066569905423645363756834401728489224069892383176005118404898808700826739793075669251908023720333176310395703145233731250062425977004800294105118775107490519970756442641667114441056633335870826876474672054833261051956775964992664752261940081035402527351097861584269618393835174179459893366331421692919005991172370655399615402095230806907766827923001989777407641608848541536430638262584736080357935359703818430731286477980266282003136597841256726307760614589377357092290502582616387252961812696938082141167695739953367437885402527098213949693289546797094852133906805645904436094558464213394186386620889874412669105303526368984735125462264327547996353791669813130762667702911693570805121383496944179784724190828316579430585120845912122425192349430289981140659561754524691976456897732521612644302768074623531007357166106657115814615609281003386801356829168603120919843727342200795489473928165196268951435257429023830509258720136627397876086853296292273627959401458248815706344594647374255055262812931426942420712362150768876857974356038744071319557457847835630436824181264320709254470644919191164211826683325640725122038516220624599942761111643454322604395750872926505613523013803504944611464456180230075565158759061879513255590487762209902715945296331264176114782504068656706739880240073614531336909257992628836208824190020895724517722391647664959786221835657972970702783638029377859628076728633055709781324091552881577389051991939117967724139678587800397520479877101326281083951744460546390201556583079986940781174105701184357153248240359206823021016688988078636180103967241533896718652110882205978424250839326732730045184335715136498515939182635393953925019051066602961117265474814694322415327221947663554903813872698060074014154154781609884182041514946212185452845208518766937154746237986258152485374255110560902530340937426401757614874301219832271817790198599194361407415725001154492810239575957343075945084742922146059025909659131444638321284892456197033729490016811901600103430150519865361639997226140810144887773652861654844227018693096365215803032545801635172156955057467836991295420581450172451022154102242941204478892779862969850651398738277834754013243664464756594059505468463525603416079455605298179347134575122775571841464224590833569158419700861899435527394317358276609772822934009230276533029348953208202040567195986444052217703496268126414950649246738940006978777976133935909026527255894038385935957449894300083202071817989503534868860102677939319605758725558621709484355134341461758557742469848755689782130401249654283863704063598151688586811104194419312521103113851322112156605052510224061550938800179096624124337641043735518852748726862131110669808050611393919767063036397311724325328381075495325427757016025871547900603191020047723832639037277511092468192333427093193496819621551490566188269502169289809539032481816703585402385162951931761734716434236522894468828316514466635467430732000644067392647225376212626032672875859719935041743953555181787766980015358664817209565235976967813354256113543913948558794413014496545918481270192710387803772002295648136850582604745439735731690978472417001342461843778134605510944301011836757867253688438833919016288976032680805333720280570318912196402322010537616575585083278869048438999011977633450170864679419102600957449708633056319179334133062913450586006399409062292038922011364243833757699573024282467823785765476309948248969119934612639516065222010810520910337755655300483177095969116129867454335368332549441791942067502834143567028435995537680868025208586798109328844926471668707584482254325273333374341235581246405114275034842593260649384562838123852457663734701826929045313809407696914138233459987982114171494988464171148613066150086754928534636789287966076907474636429290037833460383040287113898161323646461023945693594720551836780194720216023181933396020315710705776217630309859014078340843500848361819601993512854405875285754132791114254746112921813151222242791941581781658019901722464408220173951624675336490087477401744091798739303149026757426180966096692145686044529508032716721113407336093944948318150211832946112922335392038507211253457212412667047924114287207397031713811939353403930969856481364228268060368948218841266664472999100319100990710931620554593713873713887737949569260124540627139509197461393663687961370019401273453215121285424383310386551746035308257041795291155712773798560575855850154791715267090608063309097611515374121689397552962093380080007847205778944553242142764580271248347971097109853414803267252376777156465149437145218908074814683823527845896710762652207892842018099795532773191425624712525602739053053476436983921764660655141751844191436766885985203318488848542643209214549802010799192101424985781413748629056429870631203064844603357339071909465304154872192462578622339488832490374706421439841157069578842360678328266551053449672928805876140300206707467443725000209329637166357210618059497009043371766824200553576309274456450814048051429784323120108523656010955333079241394921772529121114208953372237999769681234178220949333413296678477338611189916629737324054833881558135706175410534585073399287170552305554757557756164822907886805872022746894282101127857610539455087002258712157050424604215535767338694009972279909629694647988338885124359735812236326471929264492023070925388894623645140058194146914123840669440268231198269987303515325218630180757314952111676293059747694832671573220126506861962581740119206627601232467510202509739903281684899112165581609212136735699242029146460097902244588209514120373160296581068145917906186565877085977951543668582657036140437491752135912304624869453238883366157559642958047476035852763340225912180047910297628279508987586046908593274675939766206198592521248785645569194837814861340643891461388050295396362070728650618709053652572996955565981806799450133287909908561515415803596513875265254491018317529658424874335088081090304330341795547601882155658897904742087363322158043115269967158553507863498029384795534489146822941507494614921434290201261836951385268317521608345273648077168052370591182994934658537109307988211581656616734241860555739667999703499842922974104651876889882245661823795635897493809743939236538801305814647435085347364787640899944396213715241307589380780177161616055613055006417252620243157203791318452290638542327693735600870726290735411614768573223438363817214098275427199657043841766775902342931154019083404824148181277152997439029686769100897201463057561820192226366797756695858890997808965716635003926892694571952494360394941054923858212778174209539234686543827874436711233853415282510885537335697881399075830321422349192412420540797529761784004259341666447226039926945515405817870632390311431677315116811975984199183877328583493896122423695677203505470876261167298122810467433709157626448417263243001158533145762335663771542116293075032589277970944539571194188175200347705478303528163983238742909817670090127567062707163744931126603670085520569486274669500737964268210124973319312119947463774932438435631101920711846969329642782273960863227114339373835653618150385896292895843464869268183505507054929026005979750139593233345365555749619234625933588304175900624988268079825439633740940264671447410169299399732201450322315032388604656501661034323182078856399180662295456057942515128949597016960077811226535116637785352158962288718910742471891520156783605992533656940117245474853893462787310158853694478458752796817019871071927080574979048194447487697798297079731951849202714517554426143984624530671339352090344943345760200593514346100676856819323402978203653402398427998689396069872739228384706096596073194942390712998851930629942182637388636563129555154688072903565820531065872115536931405511541201097278290609645147158599822846605380095170514223131778409044720686001098498059910514897654825510147446356350237140108310638919889269690912109254319958560917796398075096127477082791412224138826112450237350201714642053466000717317657817983798018509822168902687296215878554663661633335669969474660194966796335740449671941135005793116537468758417165153678705219320724189631533166097740772526839459614202532369664172995212735785468565170978615104833424650763095736246411509802507401184893802903467436796662893377948488587743548458537073632427641294396615473153357851196213375676508389286515389680743238454751120013222403635788293783023020282466935288372412916268036936969510988760399334487773173215442302508536194374405141502831557045014026563964963591985515940169781660861456913300811371978125065450258842902134988085653935153267765785922322276979171436755884210413938803433603862065706509475343987867605701435127857494698415714838672184956476362695779557025094669622029614332304173186564241822613520682850606655749319646991697893181634732630631391406609230232844483595452173368560757982839833287668352162112385835798823562272716725134618110272155619627367850227156487597340071355992739194839923455643156103437918066881607892145595681654107471854930945273529230710024181910839694484244938670566944131103999148555645940797665362943088765211364496547476364064833640787465523535193942112603752325256981054945772437292201468144769829011858129897246514970933065892391768231435330102861290267602243332424134686388253409372114396696652607565244961194393278818744666412212640524448239163035964061285970448753680875932451440960069869426106405936983026544950549745148966305310938195069146168343240383965272019992815931582174616194737559384145761238679719389492361639009254428434144289129486143254906729362283223036525748779439490310842765513437245794798214456818245639842651287835856854659171519913533677162350509442010904584641930021279765533716937711219876975246207154660279705086607678926618655993566732857190872783104596993018407261866896817801607276129491372616071065199562315872067153500587018462610272536756908079429156076954556376167199529929979087715585250302649855176748527142193288984528928604627693118671938270512033606415679599327620734783989001232994912062319227672407214743479786395639895993862564278422266755730905646282696780135185994165852039286472494329317652886772311910066987879340616493960318305677685708029452010720354976463825747925800372361785784215799625034869993342953545756885213194078076472313897453187301038306161050609737310591993007513415313263578908986223473952970941339201626409101022542348642456159973245797895866487601523123402499391343366223568683066624174443194983711393217102119204750152028153620794549656190941717591387051318718822920984140048953655112301624540494494922728079904176336870712466468712219258355840459495699561712568817467081298977672821157752760736349536678328285637778424984154166397238475148268305653737519260611464163378468046196278442213548449923443842265071427507683709604134327731362124963128579308630250224215002415909063266014809712199715793579377547220085602086021382499729540595626745761879399080342881287071362723548488794972638392477613100128610129360639512542500853508921421766275022138588655201041972727021303106406850588303922999428626734535774791389478378999818740842097934370291398067395658733439746410216031050379431662027726766191240244306486653315974994922801577474162360723789859737006407609780646280301725752188493484067334401846125549775185807824049018256684716851077719669159083676530761571633312672786836454248417260149892548679306154644660009579743573754609212631147882446748378015189510109342405301257315190858279412709164420602178418868856408563387519346109617785416794979407764910422786692076013747458733382837396174061112067856749327121085593252577023295517421048788638628737129147933978369355745705748846408521788528379009139299090417149966568050788338780985194721792708895761129892801405472525466820636226065133465717125388777494492745795667588022607508300529196494749624043072873310529604745642221633814585411196328914464218469032554065089045551961641366964841604498136360672133616164239767150001333609671530834222449305978870858122128304910723403955625977454001616562168314918490178624623442738153715704793431667660224007945276880371991935752018516567807222558728661365264682928873472332999185036715884131579004588982357557186505636678973259540947183444304218659457106197918088277823183645906669462178325048133489671210564606162290881911441557528435361187977930395864417051787541925507143599865872534841422973514336188080264173067978834338059360139996094223130009501045048097293732474500344752443785066081487311267228571928005403592143907070792338707712509519170108230909366689255229007176111077809232385136120016093297307901846926582714162099460191259511853715049638193679179490846414899591033185713586896740415565540881623580165216676597334630169538469289703066468543425636754532129861007436672556266429956867152217090873101597536894602884358513129479917395542713067381462667353866841602877574855772209746240543193046361335232446456603756529444391638657522770485815312354812490569535918600337998080544864412112750838093053798639997492452708216153850476328099201634854745521085361869544196826769808545203977327938552647307721885716908821931851619122129190684399246494774471114287509799057561505261212150139566215268517534231211966129263188922143088579288716955463288663822740184138045920575547144741493827014574966914499257728025361370241151283711754086712028696349910971719973875662411711778400059499106375941041305439127515741980724176959748824579753035744418368240737558785720814952130049172348702373599397914482663993881520997305917413222376002532375740651082041034809904781610062347543003755378678293084122035396589439023073142658476353316493984993070785144297498511345904795842948235690555321203400928708333728077780394848908730785305351059712348171356223200461947234709332208468885681540639451682460968223133310780916455885192109203393325778226021596920845326324784727970690174599149523916877516089567955248233242489435732278439768090878962598491716200758905776922307161511992947471229293066911281947300134199162211715530595203741984152596749077591062952428064279273530219938462825328222769320638827470154034396177207845019799947267870045618689249189223050340768869624736039401837347905955333181600482793045412978658631898826824399782120927750584766569198300570550253057012054324648936018708255219621069340800016511939070830775260657353539732382574449492819547166032339186365482001449737000330521792102255121928450031412037304239108129868994576373290961559570147023610667489052008274367243097666099371019558610426096940083956912983777606171512533933668700327067493776472021081439552202518579726895669839530162669824100971665955367409742592679691513462372458330953584750734950738957530955847375225380783229241861199131013655049218789568497577054429845485053450302593357417989948702466568276037300625680621574850274741567821899056523897983171503039925437536737643434437332042789773443640653382370104073025262206355543899360340203798349393892046080823111175741767242463384106152955720913205202857817025828598635477033488309748041802495308434049779546729341518630865531956289704981986844840456731415334592046877578071988388908172807519556948916594072642079560246195654063041042755218734439197154574091176890333686133364438942064177001293240645981780458592188728182176409927608110607374002763066977769318849533773753767092449127059418365820952965789905377636305484899892009189271131800715482693764674083978207830781990239337134567205463540578231376659127184245845753351285575378161431123868568463209556980506458929191240337691279772960343066090522521456117983708871459540825612266163216934242823175008823983819246215589121835582700703012302132466992864992412645106948913994828931495226420101104134716863760544558372689221637280412740306530195797069492757405404912617757487281013402878412616377152059503386076976381762147075692035916904993535836931207623916468679103494411933241330955240281895846156576996601335061254582444957719848724206563101444016944532088976155410631952712856337780597868188321120547591523642200579838160588498866462311062952172728061657886346151808010177314108401262100777978591780689353738816005140284935976211364743242697140860741963888413825448925294157757660578306304273511073225962128608130197211554444727779141989905623547627793304282277331824962556004845466677326927915165236261578544004754519369566368702444609268208816970869233174948516704738022676101589036273986625444479594255664755648923829503937902820225269124681282792340382357372665042712760111154472759945794103464106815430143917885636721557067989228575624928513875583498704864388183379263928158235488805439971099909511719031864801115648220466791676260782215953529512202330385115152798825406521188456527537078973931750085988889700938800736412076155319192324799225820622302954001512013695873894423078321877662464873533040106395320648017081793213384239650430737731491485868473824569327738488273944226250729782000641037545909830582373254843753903678828003154979704887863262880609486027147131274130177960476983463119411014248325438669245754076440165120417187077126570430347470128637954876998570010872092009300049051605075372041336035519209947972702675928145671617702443715675773068065387157166208184613594946317710263088710484347802641309176332429134384850524976068358618101447993414116534017001841193676962081586080419026749646380571417072468345434774239529394034648873734218775247189637058961424957848527210491679124680127900171914361671133936029369422403016171420675246805688556702491817283601524690410772353425038830608372727557597700075964578400933011822711940025121616041367548136291376361221998078555188250759045642892290463126259392099014199320137002877240386959315791837662563638227084201554838682973302177794577175815624178371610020723293520724376965699266170957256598674419629281232877456517889484151111981571455321963445770014380820371335859285135183164047342352498438800000168507952873955790518504461086017968155781796624208754721087061251260588970857199784276273796113708565075668311375240658840305120360517006195275024019372497855600113928653240939414002772395279463538453540504891390560973088739732086946779130229700435189493658139952333662936292025192605392176304556670879016031776033304001218470526460239215527683882370243395846088511905307328054338435983269225959986239943190436185902539572476401646378444008063963974307335189704057320054464653647829129401082384808432445658946450013609706678954861072078687680554136902405225000810924955229061188601271434796353660269415982239049729027644491774776177800297287733389731132195970107144130664100347501121631951715477387745400226544927508653524917640194059697230703844721721820870581231357573059882578009250846959289841287873392211459229322315188185991318791044368549953695657559383184691937283988604793646004987924470056020991424710290349855848794878485535434220943281171250607066539827682613535996147837438131010249985225472032526106787691114855304807460915786569722103908643944396032311969648166990158369089801768716999344898408524420121317836906988627521825073541907249686812156434292846707527135698741689654371615227163404667585375760676190636601639018251114352897716218677712729832914862458482229392398808192310480374848177227314653300673079772522237146087185190534382660046605238500237786441592676776503745257238025736323579751804766028474353205399446652551712399242913882401735975372631833927299094758785230741466091051351482337701433879144211220858040596925265587077510711772979609502540566411117823966596460987914880883742527962879707965743580713189114549124800697735737347563129630737438899552524432348343618741542887553462716685354486146991629990459810360341800427761047304694856471496675345937526521340466194764436408104564449658709409546232432896907680771350804777161301001638279080770914150477704633448005091956270500848403225093191284436386061358647985324909180866926234377519085643561928589978446900890040861254559641181521230882271205847952717847554150834749114964466601430595720021999878480421522051948620274933240188165085490160238835975971395607686698187977573725422487627161083034297280406662164962012557049867994762270896725522301669806096688066994063396004412888766655493414999483812273128980334946947472402078498412220302455139218068440479675274048299761460652688576536261751776235284103793965810347422544208866581778168653713977241755729500439451515314681461115140945749592188448382906615246332137701790722509047244723991332633971709275477607772205344953876321531837145769432757852676132092888728177332569423682073129293705928837925653280714616135664822960119917144319809692680853486824819572199984511167401055594024818507930558426855450114617101445617487478100640749604377882610266917664747699695915004323429714659262099153618163184895161877887531816111693300982980827458450860412423664649777006250834726234623665465045738246756989976854550119502470975475065315808216058136498938306096691174472300001208468153691038234116544326121989962988693792191577666728205602397047179800243194512606374984863398861591505568358882305653389162772641525415198460712284289990975725714574710393265486484377522867496252242028780314954878442515056233872755264752832453622669584490656099930551293760287784002099560211315866482682057705856058506246176168336242011637827198299558045712612702467707697572133207149326289362091359097102283198087697863898002216990352708326612221257644180327381451771062309231256949962269387348863092927948721799748609363188408717104900899636816375415742664445754305541611750269324787266989675731833937208888191180461130506063180062241761229210243234793497224501248892995237307643533887020847538741195228753425513705371277305928636501958842990198346341909477536668275196817830232771647673451993230196812279245727113194946786739029861590856466888936402932121301379903799572478594014776432790187433398229632135922832872507612743923561491861539470099582331119387665848393801126108699240474143601600602371741592160734133764967190698397169873936111113341507027657108001245791195672160844826497540410960267215554006647584184961295507655310987031679699601056031389891586684402979049159354336047791236434863803991090293212024771738591196848674823587655344907316181074452590646960272706412731947135341018116460004908479134028917834053774115442897160573356891898894575454840369188684841363112305990852426840381489005215887818229683749048959281726987479896655585590153839221999836978369608542201580896546149407675636970653819068269829010141425382781674886909957096435878620773544218802330694514705454573964075249734568294876332482085571352905743750209977133076553459698978235931736104300551620211252499821796395035851059910620819289701188469118669399358576674606877440184524953140407917498605454026696835985137518153950256467071525150083997178417622625692772789927273639154428284436736305661830897636371553594825894086472023699732764651906237647551974226117034997267921951706606312878837193922312249357376674879748412151140909198973330240941226595103847816941335394417574529704036052572648148923067396874570673716196868233916071374228780021942056580499071118508528939534697502325742568308495782516893597881152860784211557896541275488642521659370433829881438067817815742642913914589374742305039865854010643010509309134285961386503642820030621446063734261423927076052366024187741157724357739775223102385174082605317984685747206845034435487640093883878441589245188318188909575104136620493990729344979434862802486908641102276575880338358914016821273967208126066036858961381173881174360514345813288294420017067250374583607752448809684914507448480890992877287320671981028522569087559803375900478047475003062917353820377182659558224024936585941497036186086147940471278817397199050613442153471644752318162411420404209184506874805553368505217357454503988994552527362097784916544886372691868790002000289359110190896189637421121619671365291167257737567899431475674806458027182586552508285559863877363274370611296418141431900619811440747701246759098881823685732179163244024263791020991785801684792981203929784610895544982882120955230362433344144472486906433763944469013602160621193224663953992971719223960561294387269928069710160751888411560937266454914312123445084158121283005364924169320631762452975448878539877323029118940574524002523317139048560091262058223713664141641520762231816056383649752160467721028703102377861631493260537526861686530612688850051193629554631337285102464920432360592332719215146353378561777524832550196212130255067191536333459705888535974558520001748223169554038280415219336776858757113499696353925823122697169663596823163329227609991100773426622167816661770334414549951291293022118107582438814734827480353039345624127203743943524852973949871909332313269264653967140472522199347023938067225559715296632293507011589251925198129960050575324737739653309598147765132792829815111771731479172400408323900943424349729938728766898348862761924416888193777939065733963397864148620806288746106449712669955326101985335523236585756077241836646694996018163304802275463723297448762705061180206891271372566993635328599114020039907303996865558522954633336565685746989960448881907022232848631873960608913835227978190984737088702608106312285183741928591899719313490474501093966433778163432012118202851676197880238605298639368571482751090514710642157141875665715506389454115618915109188855331421551748007793750660169784772300339894947186305807318268121834030552964164137598941723963513089605863757220793063703984288959324253667626463630756929494697283604201124610059217188281241679660024505488534914688223833712104227223245332127136583578128055737111547959170206035027111210949588403351149219777411678728806557903322869008021941432780038691726069976972272379933801564258524257115670649929528166509765424409630291825163615202836997725038690470121493714834303052163022957623401580827910601822624793493109360888877078419567639809415564788324564128319976160126231524538442141355603444740307057503556537739545460881383769933581306651207352327344877083170515411558461842562053234053604843643403314035057835467321919654357424086014811765485662011269276900232804459783050205693338338261309672991316705304737237205089503904507094346655858596566251403864766151133253160559115725872108097044054023064930279325473291173322999324751760546387668409257904272279542516867872636307782139831677834349131933742832855061235137568917857226334317399167522385743260618899606910771044434910194772492852692063066562180464864284160861113917655495788910596526068684241989181270489001193021473309679710537871221316867513099320750095221937024157911062994411212253154543254102957244428115747785285205748155435464392936527964877643257166735358891832460958554275926204802568767814348461919470979099333596541157256512677938276660532167531175754358060814377336641304324440183766945892054096476915701788463833432625024058850576581649231124497650700737733577090863050242587287209764473601541598972462425643543985542956198779531787763697972343596874901862493786579306720568425766202108647963246750290902584674064242859335881934574587998166889037631220783202957882140019130180105454810084205695691725807145242671901420532192405962767646499063485051543694686831060653010599407251257725399611141913072222907837416698191596596954886078565967831375014524260927687476958951624857223741664882384326497421350794402712710798520903487293424088890616620497732165774691097824253563218240059392925896436468633704749034543890781681953064393819999535524323033807820089338384931616720714021352575821697079712855052799941550692524528616666917650627548411616520029342407063541293849734163651707855070427508184357692416676856833377606791274547126742168463555030528028965012061634849647688064727834316386723906602632175094750808205572732317105138693884187220443547190946545936476765468737851327139977887505654001230501201837118291703498934320753268390050908185498113083066371670605421630144384099475900181866292676100452691591993981607262313903697836990622891738626381792970099397250307022147099381609340711466652832386248812024081822204141348994161204809536464954016909369543417675440802481458308506364589134856452668543451861816017152581199241166586429964825600437971939053258599648985859669448425501334402410071988185790448885501974215906997012685586475330398988495548484464291267809022619115719951106323454376120182808021182732207280684823941446787074644515945922210651167616630720402969260399205221914587906807378605726980770332689045988755020671985596046427793539082796451054170769348678094907517446358642641286042119651429885434766496589912271341693554313565985522505404917505447761838932712729788449516938065840742977858888713451544472068405309264356127890167409530485733494956839836675994472653761767035169796884270615761347474240457952033911322848759826860643326903513891157941803958450172523840589777233823217211731523884930592217202123561531864698677928914452888194439165041310917685389730570777403859042641302362022454245010215699494491310528146127541204183159052383549184736090648637326633863145316046369069441330614952846239361760873799619957601229454147663055151848056780149298635554216789960302972321159332302846924184076587777167675989421962728566909332708914454123753067338779448307401531076099297021780303913500577222713354752913349593191009067017950207263990503783456312215511692105827551179649685326986693177467649030956812151006551390926331126789210918153640583205490531723148682029195906035723529885188649045055339703320535884898851394942135983839025270759611111364541681299023340088034617569808646592580543374269875378158689085530846312014309867412316891174773144092084662508093496518699896684448672518455872277398375561401677150168093808390824238859097735561007270211284434146772528332208921166826098384016938780729842215290339054287630570856056380031567476679731834779691109331607744567873297477338540174275921180669271641282860914089978754328164485033958008304573472787858088536075137763997340046552298297095463949762653973669894718647003476455019485198632468960966173702063898298371202018572002855936144656394442562953644015827026528161442961307189263431845955780918147027265234572650005997637806571830981840564472181276102793659373776082719018656234733846573619757771800091501922591326152023182201635028333404082624943393294648438926450653543363126438495649773894303365856960743251661534383859048099248071369072192405064138226637862539076767630525404052734502180624294382813875198744419136039995786248625825813161107696779217564694097672219370872368601020900862597896798978836458583939786942678591090308260983682541651760613209498606043184124238109532138120489349888598983257300170295192526783249047020802404953649374490030599784359951057677734505683819726485395945319817356834408849698969062390514201452998933861855265827086621783709879519804187486665834573667799978747191778398060876067631225336741452241352989733077758835240455476446141652156721473033665775867615996594628087818973356485197044235260625432729599803621813482593649544443584115140566944055542974901854803739366082383781377086797954849182596449283339264288309139817744398178542879331552434578000291835270586565331415694399412701998704789753727819855019353954332098440449980839156612878247938202549038415984185265807642820812301515424345613781714044771655425672332608428657673841343339374218743445060108699170213528627712115046639142295829548684446295980769869475911381395908169157819069347455479584935250861559146168919084673705844800884962797140521086075593780071380263806525941378645392629671566938430217488975076805269167106016596242766447146559437468604569235404734610411180313288574087303530975599275640114235655354031503575016523249082611604417136125045909330831115895709082124846153011336974492736035836400208306843211181126921706087404085480518967252684289146481958352967424705459230153990393545652588559122200779114813354299896293126027985179825196400515404565075019623012630943101018996458921145382069199827085171664806548524607329228235307633445434073722441725534529603570836905809863847097099675750456659297817705374531785030701826321442058361327051400920627856453485269876730924313367467500902824628935879679647988281364522417934778425566844773428893827678293070569298815165745206743144678291001906394457937182132729422924920795834041634238292067510194965997504449613706892060902887703132561151016036369847888414142552215295379588804653387272678543159987914831322991151289248853892679188483515080779741567091303084801833543279599466971888354152389574790979906975462240050793708973636435589125718639617265923462773961166240590208084336965360894179254808434846748321082671173196773664288284441106368637641835553799106040649098676736711651578068167475811080531862118141217085942347561150184095935944073779645509293792652942936318266027602144597945561006257389299684312350327418618792480551578458418088042884697630048368523136618333822175056289430614755530398219142637616965519924623197548750611267820814320486353638120602136140098184981840150930450325801146827575477854329033288808649086008949195369105123644044287955212586356501612746391411020134214214592159842745939799743501332285383752071325518930938349334033211913166453604987169490726162553875699799619066215031763288469546538322895067782783059702603116374888972548678404716032480984743442878648082786751613217058155839103217476345009138530044119349842988248884189363290381921009157250485673263984871759948690109833462702922912592861685402225710110556910801251869993780338263222651066438616777205656452392572625601879335415574559504312394405965045748199758623300002626411045122294920431239664289932747171622830461373710566098892782571470078526198807649965927379993217232409321908019481982482519749355305793198683982639818665877010562003774564357491878603264660961561821338828164439925255423154232199409880302874292257442169986956241915891818964626179413990315899209664986097193965374546807032800433153101197237691558775636367881982312869300474106706808404385318826141678434509644315398576455781570464370600332710291874438704286143452316802712135702651061944765388191475173677543148565124597132177014305056622730343290029852947073001957824134860169168790659613577091115241811035630608518957302383163653069962815984031717383310684782395557489292648301001882233733711534126637641381261137061813806651685467584807297765261309444060320519787947883659012236470296785172571999415334382719781223267798932067387677834314187665748923037449230924991328149171119269712594641051567705007580771887256404013813645901655815935501248040369249815213285280899838946065589580523344099720526195552931518519585088266018810502153374495177462011412934689327377700203482528914243379789265499523995886019205410007413529698907094293689224549883246918343487021674978975765475442984270404231129846885685619410358491576498802066202496019758004242164226138963173999152700602706149744641078662833254877259726903146156743661129056424655118932073387531913679928081672547375101733892070670284352372729082195903344512258278917890393524926323038054271544136308925905782913160454851344811369174400818815234402659352039358941320975834673881083720996442918266731144812090639574554383020156619858099288241897378860616192160138075512818580074464989509161955227799649813265526073806400319747063689748941918091094538577719721157737548462970442832936967417955685812425909067572941825085685940454665298763446596588737386671205136427322699513453557118170189991126999445887678247028332103505825455702010530104361012350106477798110565605701505864670627941365130217597533748435787803320563494529651150297395064346040026926170149823542380544718228785368843603935785510533751615291251702860488422615923324560922485255029769367820338520991001758983822534302222410449216833399051543260290632005958612674379386209063628748044498566753558765841879075179047183396557019707770872480637009602425898839730009965303418230839825031649783505282409970360944288103177214184040966928165601546495348994253348060401220245461024032724429934622022396094555562109501506265071214553434869641568682457924574019265878158426585381164437146752405779626197796830009576570292392064806816331743191373103235640379442022842816807673727506294913250459834605707739856018375959140538739150427355432830273096607962000893273786054034525562147090271685141276641175410346409233250913573763357697743341579444173279657239499136482818314156614563373675941001754232343963202020337720066185993009867808171077381302407180420361055953609203959854773487659141683788350766979901574498470176767704035791177520109466714961380445684909000251499399931839953769793707792106349728353862718250979262050991474025588421327735683492516690707683179044647605699562275744499164666467084802003682047906172895247486035715119147578984139893935433333165156098808675285781736948709365420053654292244681146191632353158084860897982748320997330185299568758948414798078014138738604339329560564671772114296999619868883908901233443336861463425024157954355761078290237301163629055972493259990730353078538676437785803921015696213956118102784560803187298810669006420426423809290200455272680643142913316984630977187486516976611788387174531139785303069779904321394815672858259996227787670778884556445795460913310285258251274202890837668575771449964007124334402259310885539664151595771141654564490600312818456380966038842018823970015986696204579786089613351447016910777732813153425636641211189286437260412225695899653432795316504270024713035314463408256891350167189717707768577589613364124080773097144295257530480502878217574488560612577798586169513317286377594777998172403659616990694744238753350608876944115484060810851054812752068121319261222429865231064874837654596626932016155608904953974388349317449290692257875932516403915844131875936614663051673565690681296482695595331356881631841726528119880161625288653583667578308471000881819045392734661186175432786930351200399569876497946407892026799133894854902707246525351517253655935956004601266838360439185991344362141618390945461781387374084402628538221518252806485165464793622202389259262616235766528053682917450102154288867838035768456096212729938017645781438844101394411474873917921688363699297515384176739527555468855401183582319733005232078080940405626168759404057026376648894416294102017650156110434673888061546359338928324575774680365403096104773059571659231096325439564028826568295421308490493778161213508731552824210470569520182549067832745617060650938620931718187666235607412571772415504532313756332849583873502821101612510497277508860044397414406601311848153930468551654851241145356972385467930722706686602715959611918596723036868783550622152459629660022668234261911021435159788110735002131532931461862736503633163429816559518821654077607338375614375362452118466063623514651936039160769502327963272032360669930653022266556232453404148009175752803604906273361289861265163883672835045078778000683764568188807987741825606035638442795894460643327897748841401539477297195355374956857555538461340483967374903446056671720165421864084846576745086219945438754259863232832988867965020716765538567403582485788018909270839413701932971635601659221765625563072214386567689406388241951817112014064505922811052124056343497225218197419105325213559372133799188671882460615754353486284359738666235622841781636317449155986638810372605622152103516595722963881230362899895494361307204386588714007427720073672015689638724634730383451510046670954954615856523282208711400829991167943678683490487526490987464134095860523886184692056995433063745850298333431537336380635563707536016323091750620396313711608321658071709706078086224515102513253655566496853634931249021760612075228770974675479999229743999057645850215283578366636847081806307509695897734721532075256127265084608319619560586644359024034948538660981952305139085144980489067252860756958178849539769716508585575396504853878502204356606855396067557869428620374769135091294174091516974971856246680636221468585379367975597892974034603070941087993064018638697702205394831936701566935455139330181601281037047840758966607484749943128854395548969526651285259627771647133152464899356348599414407865179036107216804166154575259913385752231291854244628004393565694360420841138261602908233036361283983875978411331639825095217481246087221579360810632053359349235889073505157820484812112387089674195582522599426796936378942060242992194955227036107213030986387701261207404968812419226222658115639851221423628582932162790914002870818270117728034741048431669025053205745396562637603349312122500626106253090147480989299966622317498658645687152237945078456728053867456659600640229265133016548544114861169038767609328770228569996078154015445723512208664949264954311079108443738792062270702639733936506970603727328316822711546664854782488012757883835954380409699626404044089100163897226959251086567746770697149762427688318538873178363842970708466357465392156562536947337634504923451239716395314644445110229977593859066746368813314832681341905370650880576927531891763264083525950617277825746485708914656842382317852473184027940087474346619369803599362114394366178187786347674097020320655333764753245176365714748923893023718884193367988716858572893764293280539975097812135499484446899814154868678164825220760764820111560431292388140089724441135555878060251301962521660556488260513499887511585398803532402609156831256704389022810140437146973072623136360590223970379169873136085203537107278765081176256853613993496815885829440894310600559239829492752510784078301479812514214734382714664447917846179590059257204072592227834266627524006673726633896655175073205836979314332559290494714954228899922002045811719937212822507300935132980580593553234676034838834777095372476123627700949570086582086883843182506956768584514948443148646766543296010743422448015527964903503024198857100285423565169045026230168842260194323172142115593911067189440794652035549891289577429989533937047537072143577810250125705138628044445961250912660890815071518476995855790909397376445131858147112988909132656355019380743540240313866044093294845886930313362413259509848072048509493809257248087723841716251218331051155750627055926625790044555245458586157763826019176283071962493217445340128652169289294991156549482055819453890759530297315051848318065626457326931139226497366782062227112728864155243573025762956373322179771673156476007823464488999788124021550913432365175571894555434114104163954046955450895808798486318853295862528023827606255157424873025998089306620652385859420111572373552150655880680065104477119171139762518625196129387345011682077655984950328036905170606716608581423962938470673339755148083767081158604023501165159491048335987561572981591530402882130977146874676121677134092777773629170919359714776889144671453011844774292154820916814423765221199014121414584464817431172240953019838996149404660185748986238906984555736065331107466355971929234487486848188410637531654165446519465597887235239376249346892166952085462589306181483862748306610563574521907511724137264912867803675104693203715580535722447957783041525031534968698721000486052925003599233676695200519250151685620095605784418209562462651761338995297008854818584517928354739582482120580995640529142473818464496997812614835581256117440710001247817662300698985317570864534957163387040373311103101282014718844085834532053699209400696113755215837467355896998978622787654317982698417801446692914739921915548712308234182426837532837248836738011843084577950077624296324808424669374582555178399262933435543282473539307530841503151331037674436893602649282759158070268913176262159111448652764734707379633344186131022323286137306853884816038678982601342030620708113702333279222411769846669875988762745694350678749710022074783961904548060745419396872698484906473798871024368721203844525238696951542379323245729815469558991021800108678728724996152069411632612229264382123791070741345431594241639118238652023590318657074436838159621894088157209837888536952499137818821685138081419522241401541107057084124018843439653348771779738327590683462393944205450183772934862772030096794915866087495338360097317625448657439453747362175478026192120554461778540858549613536341522948355492270245692620584547544864917101397430551118551131266983678515747145528393119617817192960452240887737718187374181928474807911022225710935238527850615096853035266721357186107404510454103215369045966243160541478338325070733718385934822335977858989153394261286462589953826560851180314050222792222471188095610542499307115299441139892353257488152903781564780588654108319691424617069110594281572507055910385274513137130294903097705630798004997401737934229621439220408740301652379947397080000514780533999643283287566449690760495945482600772079479222138471994058773541102618648605673955482437420541824340896228048411581742072942839346699885333910494022670274745692072186079238663307115271609715881896657320058442848949725591165833402645371070686535624402795787945133098038736139277805549399609630221956183579594044871006252124916782840189695707772861588890026250296946771037607735101402538601184015763417307314216812791067247027279520678631109864074687338511508722772147078207053455800679437384688156247234639199711558858852067246424045450141554813859718310771442289809243420441028959301027126578497826095036139206391483794457051155483379184690680285672138295233752951798082119607515171295932276201470971003612099665990897017739056362862705665877093915641046811891286772620222600793727109355611831994745797043149287686348320592677540813017043077865161302886543471803551415814509279179200388468211435649242550718837604381965756030455568308187405769442118063060606656700247699037693358799691191752811289945931465032029949474315300623495533977256298158110348916120877366800230834131700702576979076593307623294923596621249469106751001605554937127103846418531081064079798325769105452600623408055812527240189540481792049192584613389284430057240572819597047019104708099065465070998956050054413504472741660528753644262598039028577467893301110585371389079245998988355472709022553480854927117529824978031452011608179833170610022627364268563071783960750537585031549628667930670106564824731331648117881078765212063696344344613645463723249626041901364616550986985794527892296201843963610358108792515952565050643188840086079885485647698266463685756765605754054898716386982053814119196433520926439380722620874529007221370501406869235643047963338299075002060664264341076968283507790266977569845719720999550351167698154933914798567886829374650713673417959394671631027463013175718053349877446650117936250710362134785831932965688591225503437884029667419912850000654500807475971778343715323612873301681377250731015022400684656205272111037920767123371500501035564274440129589554257671440355432431718438295460256324574888640684166728919637730902352954242789787406791201890010414939048590464821391453397370107034778176921663459302816413591930330812030194942736910717691591788835233486320184109940682228659355045170881116962549637516158085796836338654072317358931927387550871488474983007438105587888427238083212690932258430659090605371233894310105526781152943914330955405956003012683389602405318920527925539440107329639324903596967461503942448817895141134163603175312681962799941327238394965433773651553966877922330090913668534111859634246505156610806946994303339824575089568254739353539157704963463865567699440474923555866825238990433491743248643302943044856291426806887121474325426471537701567963554167714118510656141129339660723971608734440868262944106228922507631601648883014981432668895793315724770263455070048135417383719680990026664299287386880885660250206247687138524848176088617319006406285332171658664829460451714288648563609700160101971016654146638905105389096485564409921155588352147415002552721369190676060630235242497535801823298667999382908059959338681684357314086302959426323073166379491068028541233555873936973761012014216785954073534012995805353295069886545438432225870916766608726974818169118415108884731288174306821559185095835071528874997590816352063303152876897501849192624478242977091656614279344285753764614749207813954436406606472658154284763000478282973764580133755896148485210301844590434704785238968176295341344661343922151790907978885014952074695231221389054975532164814916448899454821785864128257849564224639435108157416858963726810777959066434351202680565582844218228009667527404775125307338333268267111165522670357878395173800784324195090782182372715802302678413011172046278479874656976825637857195946161076048202916402662363013051011488704540027174835290993317373876645537168667459364682764266521692423297586701108263878131354269288029791568345000727594428782692696444515428574587584686743388259875975041186414879047164360086059892622673322403256961339257039564667227274702624034503822403879054938728671376502126569319417080833985360402083980086526584122456067258859244169613709251847139381953467425730540674629460011287594585354447577448407844184772253914734745912707339364029084379777687354981803707074870556164020351878073941785996844786046355216737707688386055859077536335489053985619013456158686308751553583248068010970079818978809128879660046089864359362930604314696854330175130318059912269612726536977992756635517691729090124610634547563869228145889851599663923238986769820690873108017377182192140732099247961182466841957692873103717914227602582928130677323839807831654744924521496545897095522671217283594331127343052228586111023799341768544165383342562982518931817166093696436127970468426626949891735096904249784838472737732903978230148437380119300835934031672337527664314162853973754852588279250143647696654732409407439607933527704213722596361103450874935626315387416093979030823278792710265184866208843955642728713261993010054380337213916715016653968136157386443606197599791942122904802275739497162143502550324027823676648942554632055366871977396298876119463493551419893416803095162245666000119873980376936099057521737969446452834781009756577658902105531655619009121168318917223888716299895370607937739190111577124810019474227029218724623463505692705135084144519545971204468296047025801698045231566857711913271123190694889486695311123976269661902049509391088955858361304838708499955297016283858180818374556172472693984303864202760076856166057161061456759697723416548327998356810440274222645836157137816361832725969435954312029839933110356928742894408434351390119135439027961159757913075406936010890263914361310349319024607007711150502631546977238727748972846664066788444512397078080705344126335573757918767421758477351518611773960637390624449507933629075658739022278047072164175198772196100871371891399868344466602101257735330479060800530769475630145924329141529821963489734274583238694063406911995762562599383517054953334565113122286405831402692610188962653584879860942360922119201297444669314732500232145658892419418035174592389219167127917264998471119481110509250954145082478913684065672071674603666859477807645210201555185509078644370721323347096186358916506977733351366467040721993722849168151718529835192942077610282396470849734323695513178776216968877237319875077965439154019957308594739540425440348284833238064780430605604787196561574303227176558463584691219607132480796376167744103325058185091074063316401527021031854686178580776268697363984397352503793583612399393921661838280018858392501802256105819198871521117182513743405314356654308038213340739726062679019874590532750334633299474122617561755616178933595181719182787433504784592938720815487943594648417438462600536582236895106972172974566442884156815642744322007173218653222678822635706112517026072616140322168914830094472123681594570872601659766051280091061104218406907881795041588548308851413858171209527924812261715596328542890569198633989400722226694948608302257614616052365652780211611247625802181955240814112839818528107660592930226961948148314747150468800945203084602107316639790992041017425707350305981535494211906228879952672499995180010080332588865210123859954827828013834006676227200811988543439815764421312465739968101196172229339163151244344376410545974958106222179098286590235472195848584843148962848565676751326495303957795672278633659018901480283397943206355399428116072647976117935663186076166261548045892999521974715668198435090020042235749352161539608428970630877535393268785631314269197916530804461638288029076738759230924449182537280105671171335896615397459990874460992485400104499313759650795176399697403172499697183020768324321552749426291157844259424438418889285861373082990384297557831525271098393097820301782451445931595391982894272890760262485497852318583023721358707876726211083692119738406962846687493916721570775425405235462468794133783795833211906577063737364697187375172137091723941056097996944833476761665239698726658942736620859799542785161919831167498226000834706597094029174917190227436379595409020951835595898539296848194583258040826135880615525620076496419507822780335156653849621338134654515925994269235945079991991378848395078043052509268040466715155321636508983126758951454747610853257675790768729902896329954328324405602578027487659968336049637073819627944772971531249617548207554939048974408972089681164850540917856970871266894255462798872121853302050303796223176967166200993752475805320303429057293633763580444436445250773439063694244863267299489616532115307180608916333948003301748179392414572859434531806952772146984664366762731712812873052604949824709627051033623752904873660385573920354987185710791979233767463720911464550626346746326534043689954017036900651180404725318834494763122335379589539270517760777527374411321525527643086015239784863167978280519656769135028007844053331349670241228893900831544708310142044790463118122719252619022355165899574142706863368570294583961881018619549691287478779029359562313581394285241543772494987759110627302814053671709336317145444722357625276677602160525623406862397071826317948309468931166782377390709761723161525543174787066578530697230739473968473278820190183937097130531971701114912455965603629856851051357475064703307768677470241678112403838842718089600657543821673285668322160052081886529915769130012471206373232630378704596079826970071055777070227370329074534554431989576000609532692432412614568626543706276913768836780405249479607892175950526134968264020339144674007591596491888630672828419380639870512757196049182495250993068154985245593912178611935617929054694933223145588072955218743019523006499637264802506212039004825850554466289272128365106523241855437075881506411221215736156338488733195440894556067075656008238795325618168382169874996938613232053570711292251343766707685946287877871729724112986807469050857750916929934353655856225418760801098049116090814008805572605661747283973552448574255658193643693743403510449858523301356143528409004923554655191525382485608989197342970823406226024559325171984072698573856529145331174033114419216516536631647026601359771187368052070656915379272322678638795093648382004140054628792079444091232919326183406306476361215765733153022108326688572187387759720872165963687088369095824409153802200744062794206408576607721217984065976813634339371235051639390815131589113914488717528097090114363071976591395328115324677550053477410979782718524557729741033793484712957766984848343546761155240202299311382512028784150131143242446428308695651883288032832928374572251517325852912929876305423180535937736885002418697300298910765340600905704048957770570397568995785122829982253937455348645164823792709019205321905928229669142011324218576180504217984499517268704339224486547842399704237344236489162552314160988498858388420146396596542539685026504705850982485489357283113467568795783019627905082232995841689747789882729652128153740275318301173649523795077220035021349733169196301863910983218435036397654825244648845733445375897446139080482822023387981694360707232863305806445666901849693787832989941756833932870141932683325287782016996969272956713229586785642199927938755110268899074957817015899120459021740377161395717091887340549820396664694200080486214762645076340358187367965602761815970400409199636163099036234097030964380080446494430187206186820784938288524601008028913204845437505907044788606613980775811360069442807487812371511774901026338573445276427724788766641741992832417991287501264288191837482685537545855017791309899918480451690365646047088520251674768447080965853424728135700296147520422962725656580935211237438887139380662335619001532785341230031600246828869621378782026067557532698098789966463852398461226845490170762586366715831903386282550856217575955912845166344627847398629317878517943750492282351611485745896209459174025585893426673943930067616560979088553028308663665281321649018136105049495810621658918544133729588354347075395187122863634610687679763942342275124357262329563045950390017871240112360216467261581415447245357785867468082060592411978058293833582738600555281227245085191323633808469413633170567196374626385427094345188945286403318928727498199053152184110568946211646161684125316652845896089669727455209708983933477802668737206370359821027025623788809035680765741679123173897412972731151523019138695170308465487970486370489960410061992772365458642750220828082240074637722339808828094619077431245821316356006376800028335304638092707088203655843147259613563908363443805379074621997308796465346309776366421918440234058044192786800834182412891904189467176677505185891814950722622335705422538143784146260266785516396810553855814897511005864244157510067538269281600301894597699044823747587813320424278901987542380662170920643638347780171203904071050755687953066926943329317625860452871630662479832039599330165418165019662608414685501360732902819734264051069003945238936709531948042624410561850189827474650901557777302746566609631755806206792413053245765720349432488734769837417509734919833624613054854312999824389154490718727992756851041198256736623038164330212768001735451534647852181786439735220874790409588983578156042951787369333282812721085215086269692143617443364998186814569795014538948017630668450574352416093788981408596711325543851108817563845674108673976825600452716336103297344269828184905473354941366897328995575914685139694159779092352471459045625999221646193453858476266244519894067119589030370577587174873172158394113018308751424027832658737431385447538609884332721077483515091813464344604596218442832852783353783653916924836881752757181908115393795783014129444513516093891918264684956156966296275404379066885641066730417658554662702912430283533381229338545488207419514897651527435858448299696938740923383346755654028284945213067289917903999141866930057141690211053509362224530175111319723310151098698071232031685728064429469301085780213554545317956298120620836188780720927080324681250927940955291476601032370898238609126286591412211673919334902793507070622319414041529567761322325520697886431161134029605078676350994394366019414968599834493060521913278313499939098043706603558859124987811977446651699776586540230942256001711088807719822242812821911792119551763922599317262044669585282179427883595869794317276277924198400757207543630661387696366016140731904308419848412877882557239939260260075735030720797214397298293249000216380446303726072484160735718278220722279649198680632642378674025650908993905446182543663215184271147113539260853855359538536975441208854464911197822692909567430845326522342425961163369054612626067338392242029123110257828428172081943772806143534680552517848086225046576803922591274600700477910818547982768716888059460053039322831176088692594167014126504199023097541533416613830477057141137666181015609542948081912106060442680609518756278006822238050647544868980030339622781055611071319033459568350325301422644893611809946876787947997444525129587413272402052422424298636379317161159549254700382644047085316006630437055365847838061375925410806978990460015833237807580070072019891925598403269686995851332329210685771399561786342631827036967701456333421064296853424154699398942386307424768521428089974608745659731169057165930179478826962402408471148528571959944143439166419611953676037130068621683899255804635026819270524456075251287434743856687705398766127082753667301327250573584159224460263501290064402603098847777356229721738385363274330115127033104781094114812086557578789475633229644885750986134309808327131960875864362129019333476900838152183317898824143842162677427705451242449763495031887830767430725346120026766400730480546833110271786372896517373205630708971174298463119922094673869161083949955690139219428457587697577532595093163168773514204513948089516945183298777759464026911186438932847612042291313220796640327151318763260514125838190719229754735742769020956136771363572768871798716718285556854803392936373410475606000157613704676574064142535279873491692429750730760724254473469436515516679932889199271983407426986202331440943318234530568862051590836719255289832038209166963291030800317732006272623992669078567843541776774315021948197282257003776536023397644918401271379522936125306334780855789205243887923834195203621215476625121033263170034479297433966822637400996296582651990619223671402925828827428448057452602819607213628441041086098155530037245929671830674233165798203144883182364622911722158007848438894009703540508468677515960405896447388612956458329630631649321681252889886105529749483904870924526113055982029773564696510279253225442471460164159385910191188827727105199399219353759271590864251305884470233100290403333280432849597065621322186495196090998292404464846247062331920478426233614032111712118767561415215176810948686971334625437214247239643745245633346928524149737268648603321728216985559893795724563943469358110707049004229757074200154880022192265683234369502586017965356393523660122621170412238614150628135700517043524331824465095185045007893069334661847969944723205591607657703693627103712964550182987112184946255737606253502465329830568507915799750250453653651008292434778485085107676976978518110767632748326706748203449491631960531410415378704198436470837372580309096169353885512038110175377695902094211965863039804593360886084207011693241165672669698934502004702787856486398044374933222312133473989483200035619978931605983621130929249106628349930371165944479322360234555593676063041972035652039373443360166632279441440840407888701449443600739805957574034695277089201267095450708964742945949374636336797837250632712812682569151389668192179630518885803010334320780151246626061457192742660835494240438439176884640603662947818549403130054507222989201880783405390768201333500400424739898994352891804023786133325991319610095584795663722311843675074939823701592032515255048038217819513949670799660006741694172617855595506071614641354175573689534374639834535252375981479121539981026154145213050579688126721097850807399599270012824299936739579624552189946680667672887671606702405294895309672468141933048414778271409530217533245108211806952820030450352008215370825291476273014732647754189451445124682789571537248866283873147005858195407871788677663902090324496470954026127235444968674954355339351750731437296143963790853158371000634587339287391012711389559132617603058940814112375533623577043312867704417651142492383052735528639300364358131792573920705862305584870222588258087988418095829349426917486751323509672398547753200796225276010023215803907513530341351288860078713337360894065880892962888897827408893954844377258066187736452841704385040240758051984734548954794148121472368932856819879716817175062650692573445039230985614664900928966871693402291222125677902239388779474409971575458196111800668776195880793798803215134492993721313349663064800361817298210097520667979641479655948022436108524060481691180232098229635090089851410473600688263040334462902559664230119172410673855757960622613470106859837995760779320564144921327172960102213755724389902936301744255529562334393805778482719140608898926368956134311992365463463084570404877610319158420903677208942176813570828415212815817117674175300721516855940082526163594133050521350035894225003487788761026321187532342250226573146783456430233231308254004430814436629648192143335717435357769517614193102201560298237637646671721168015181030222156940858685017246792792933869937301678053899755514238734888993705761653571612781692861398403464613244345875404005384475464617952565065771885095061095765137127447285437378635658824486775400337083561699748934478505770746689288121106763897170915311471355598857021755354756271007996817485201464643761794199033411072020049956796098066734830199057253417058527056159906298264179270854759178192993747061097913839906637294891739743941775501116266601918070854545819275087292961088265006476772082594702680084654818176271097747321599339597651904996489856213016218176644928964493388407060876743364497960550138464092106230975941056747807628830348414520949999725713681930036335175479344250763061238766145112650224781312449859654790677434872634542846853916800713012819034432468241166612180001125321110293119397018899864165058720342935349352569914089409510035446463252811210132600346074968624656452379289132676550321996707820312837582273686150214495266279177505778624694520203268973956109919204108246861902459003042263266892504609738442783281245349845881309062023474274819494773474010060650287364178004462716817978030556434080031756459541067570958624836212648501688074503199995634954172914250554001294156130217479378948334095633234868532404814420486918034182801759403164370019481695733433800149312179762537678388063277588231853224083445904392428760817111944716707249280734183802155498483611783308291463072526288708726304281896005268692437745595332025034020486210401976762592671227913755614438034972806770325199067949986094332521065322806931814483724969231282089007197688464900625547824037677557917666277937383254265350134080848054343467766431063806942762780141018260105341491502735832053984213265200910468258100786908324574754648254657845900540486812611891176484408632358572866258937349171546096898487870512070162986165347899154914516282006088325794110049395290887360763443543328621495928313590109907528671835636130450089185578879163385075869915397716308996520457631949611549443686317601281423470605577559581998746889892256155475204159845495628136098549905290591196108842234215156926793451663918622006896928644679325034221879574031071200326309429972736827008754653434102301623162874875339881781449249596512154453180797969254881815628039122989744679414875721222786047455009992339610841982144119683626649266509630233503002256625467697954022755326819207296656734990002366895525576186013772126795203155260310415917596264544640354629254139852419536209187289656207760528617089615493213057961103738972658649311252297775661753913779482597926647057096909286850341256176225981026915226874266878474538605568564226043100707176834678403831949861316661103644469762365069454315402106052771017169111286550726874304425555219913566712377527747814656064618904327713967957029767280477736200582443821616952337713339286626788302102257952122845953299196534603694808154405541666757814002988226220792626612356160566590654295432365839523387911714594020058685366094996218368635730786504643276021675049997626339396834946064039862087052734195841898296913838941584613248341174459248110608359519175927974523532202842206974970578236629982553902313046496336067184918751947018330354775129683812497489445794854084218106820963458150916970410369280007912799420008342780781360829849733813248709453787963824035887976741644835488923018253650396056322450363646773362578939071047721562270306506315984039715749303517347382949334710611312069588866222329549206279602718958093859348226816052757922010617506473220856042288619085841021375362167720094924389352099309060400984750836311394757203816099632618303577207434714640888751630006477247158463984083825504641887592469455883368861873549900097822438309847038038134144098514730925147051899254658800041327906621023238949780083765130856099682739804268644218584928453804143373410652567389954124735706004970825076498765661437551680780094173878983045354447158369490392931508395153088000237180998830650444165997121835909151781692109002248896639104302057389142249608110634986008325109925592805334644125168607542217574662293517126354925877050298620719082080114943502983848262359103809176661349423173996375480266558056160009087052880819667443894922288646200558557643225386305444160127847854916962264197668064987790700400126477923970727121116022148805648800722195904006323417057296307691870277332018532137111081171211248217301269182720076246011780760681183921838684938009606562113962614937682402654005854404835243220301719407928806486433098678586161415387108047479843678835490912205536152503396862517660069880424080394511567549151040796694039938624215798457603120825142741321349185675028488514254675298576198246118053626907617680381462335001069149378891863057199332206405237498407028656503301163721099607702053541473952147414207599416698458576655891875613759620565204965593978036957472061499064252403863460064175391723583699253632850358306423761853285021940890553102006514545185874398567208152849476049053633697215273315929917380006839334525916820466496401775046690209147217327968117088361338338110301992101981826340080017232610510742729087588629617445892513548800053442948698059197707740424257306047280026560006151200210703952741138289146908506038241853653332946997289035363588936022786897121909255190442420539381257730173522682611570191574447345455166303494291234314446545605328952858922387244777674938276685508359712410154178614622975899271409277090534912723775788625431738345133241956422923383260634757155345891796369954279516404087386991568383148611857015888780311163432389883034166526748498841356239164045127192523549647343532554048859913809369580529642701685783343207699498885721258624697874002272836904811141193480594841210388101168377377412205942653476603980719296331792811684165299853136350750281146840584029990873151913264657919411068949830470973692552813404398772138425588842674292153015413202609940946011707134313895789013467530522566662540482866539135966245139799985256110225990854551018199972605318074923760695254685376346351190361853821343391743491101215155805246016746729097037780067681500794289206065171425770354575461583389991238286020689857822313229178540018936580738578279987715927085698375291795872185552108525368411586724387036528846697487702873741153610764988802630861470024723656394670832966709336516932134874497713077794948547405259454729769714632348544971887621967656092967770091954537732100925739112880908523139946419131372875137041671880599164783609219585687554663760025520706384148218629308153332764024664348444745683022738477609126909472954201592452031167856747943337575581532183629653573069340769854911261855954907634769915873287603266494364762470260566384182838184500103176824344790703898279152322595663343454726155497003381384759943887906592019637277063359647332298752621159588110427577732796817706013675141304149917410418084923652043346658948965778650982533945303638907200849513376375850791206813398849420431333920103873071866254373991442709938046046778944214233065716390929973502941173684636645437195950783393426847741315504911174890583511438257639251981709130083605572066994909062232518838653406784742620528154439346039704949958207223382241251581969546021024192983064591797992322003643831492872773221182700056489710046269239547264886963815516975531623959385919441764781734953736412826620768555349598532921818241819596566904956329910120298917493118149147057552919031847413612087747635917131822133376214135695747464274161268327621458426025971815817964429990331426905991317132376479866844709819245677257169693097121309912700546629944527556971617685784635741872309226745744181513463502473496719738090380068505591206779703552928890100864301885380593073612841460034015938314661076675547554864322982654976939638272468358780652351819373037113308751127812053708946289080938686346350757983668041128186089181063435440865113190400555621581349475319956795799883517646042685633171070397815016528017206570426674535922918483174810914489170284685692702823959044405408131898946538801837346385397305919154181295739131978633948391756638761646745496710189088982650284152229568145913768754450211627681554978672997784930230451574512526266970219388655924494524698628908183348761041846286741782529626558194496185046820637479407334588166494009791335079043042666083415815483911668533670879417319474508498875539082483285358039388630175102758872750809083551262511169495863559793378272959967746325527200507296554835124415293698135329070858447018758705397516861603986768793499820258583642891632040378990611428642708411482023739579666372466754156901701389175559849211289073961190206686831337798871463703624811865971818605111273118594465979247495174944153361515233255297276289261405638273843924452692153608091881539327218565715366102311064354003712398349629370006863952558507225348738507747475898765344833900895118457056149675449125941190702335999952214074156621816613346679119150530713417829642264600358134589708713032295621273948486203486501657674273016646801576346570557040053403587263022245306915021350281556480283766357820027946134564207268039275305522019632801933615786678834766145112557926561329851334984972294854612936431026615617910507439427893833045715677552945957072985102993103685192438367244679172153584667903115388398564620798130764514508235448063552984568840150822150252082407944226002107985595598114629824476611569536547886050628322633623160568772984539200726719127273458765418883195534414562976558924299223442314120041510017082292902933621289144859659412239074470210130263816764145628821636444076764938849986834273513382235638465877155723971758059835960745885493337615598051363430655161926148500843089372258372306019509166035546879006897036508824215244029952780317561001397012294593697920203950876437330745811580324862106832469089891436820468803372248037218339914059065844617223362831063295019146577528517306339123992657438938440641582450678367706598346537893118502054895944202724129979346370983181087910343700013338057544807560259723554652292461316729418681529512081894801593346546725137194118175781481384671188688694201398894777726654299780958531028597624164559399692033925065547613845956163755418850216933021671855569251648741683334728806724675102763658868211764291890968789939271107253009416370718963466077229434518900366326705938479381978772838768668351489284066986964763124795746412704604265296388696056750476197924111150964321186304880552813414809719230064744119923069809113711974061047094721158100441296238938400156517536738709331318870449518510329954018915626368641403525218140996824158493991460080489597325383216759021922289681755542506044099898112930199762009722658138521617813562070265549013206765511670518283979949960233024777139223873925881132759601812205089010478407283850229137887608514552511964265251931355660840744567167172159139123538874857636223397831053711784914301920441549686381742088973714806911860898164218602963145136636470583039213359384650658373080221982902675112788891992720921085156221229186099042791180383969901349151446057291752085530299810894730060453974916660893824245957143573134854353030046383314528082305533402578287457440115751189015765011707354874506963681795949012630219929621430161174616641049366909613363890898382581095502118315535689558660262889733530593055748778155366513166800293440361384787419164287613505870493359261579960298339890100540421501165076344171701077418153776902492013463636729773304637667670740855318202677312595160273728001344636959063021822633121406958337440492606822107475462463829033087193398532218631378410957033065907416886090499894055917034574312900169101494955325553717481226790685261006318557858745138406382450889026006839203868847622913734665667871449485639959977593906899431423084313923652636312940390038914548756233742021952197305882426769158256079730438791221462418696500337747944063627170392856506967043402966003041501502883152646587798521549732051427022884901006380699818052737506241643082368854174783978963563241206587334966792090969290101312853646929207318998516671442099586806621721063833520890723476309931270812639814809628642558220151466550792833090096135153598675271977408535325767658230606727407860089672821103506782631269507374019057305940783571451632371939229766252442017626483216978629205355162003534855028319934587547858786208552865087919039296545773156278669030322770618813923257435580465026053073234141847383732935805506706163891364137414060689763647882672569781151558673464438747365014993771943003918916845605465688401378816678133819643568956322493965354151369555974037384983220709750678757646420774446566297815485852374984757749637590243369866281026024454441802868765449773793320353154624171979315678529822628481469820463591644024470448583482739458883376221254024447853689906656544200864186614621854911595996208245150226688484457668579247885936529947876555911310664573999953081326615238651146582607277870666842998283041008558261835496932795018696214983487452661162756778615320605956761294979198399064545460516636263745360740200801191489745316536975437652450115314552007778597935061344170226878355432820777794341898592046817240854260697988246294494593518599675521330684220955004983189756692326183008404881471092249625619280135831578142896851449403789131841134573971843026096013833530809054375841469162740987931410658439634096483244895903803913403722896432155035597747947788577161592084380277091864000057658452254979803443273887659022054150444410215703785605012539383595746874939701966466436206287384490731114873338563007352357179677217834530440579385628669602915154496020592423860267230734586670685715118835391364937168257832915614407804681798008581884928885806303696888943225814149358984379376546999323035661360408756198760555041124985558480394739020969930356244001261269500751938613341032497008441789324763448260341786628080458207447079324255326297866716879377504296460179731903294863995474075181335975141911846100413278354604904542163233429895851495547402695962320014444560394642678042151848846264677386278484107409653390815340750037400502462573767283292068631817735285429696229521241357328279803098005302163777660613832490484197371368590002550181036019358099904424050714858354417216896054312910851685326842208702992657137800860607259458132483402444050622272132433881105183280705777217839919067478334794472197417681420941686427671132455862055105234295022450460647171472395610132755122094133994807692060910655713354524189452886645745190391086268180908721898143176898438967125022289826953468088378199577741143974936153354069877207619522236050507321036075991030709123476903773168564309953483692277868364348213464485996194538970515261470370114469556981169277642886818306980781214725934150740517504122401075117598088762770650416859612224950927452019615683499931602211935653144344726168215985353835076913271028161540332156024883957344998558628422382771020751170156812019410343854672026957768697475325175012084135329154730689532658546274493095336732525500025287629854495888242833950586844602171816710815254665349880948666693988032669321575261844617079836727740836222450135009292965172722978616056846619209461380297486949494313630489863568297300318160099246831007333025220457765688260957434044034344129057424623096352945845652125215192852884181197389086801549080250310535174286143376357690014717282036628649216196394049024665475466842937503422408595017451371802707717870610644850181903815930083649120398632591237528578060881297922548947350281873637664356226728162943493557272905879457353933388462546046586618761531804032000435900223515095418627140530612968541529368238131863260129783865746743785086408214998603279354994295472266408774548387447487352919918556415085436233406567376473379264739781048190814659057794631014363533895842096350874255514370813416976832331723322836017813619015035030747448219925037300511014068465163301253373058426862784098927231720619205477205033722169451518499373096044360917365459284288182499492247438431352532435457646426535891453790361038569805418790043594441052181505182620676937698675893331182835412158539471298632690095408701879043434238061339072882579667704817577009956340010356725612565059545656981070991738283076359312126398327989553914455800145625514190680907831347251541774872899285488304734371446608923622338834553530973120283917580711149299658019349811626929912584215358689773450972207368730277926677097567910543452421574773539604194508063721574980254365327422445957471725319789747391037090440826177311659634549038230850652933009457362656574000234968971462201827795695044928632991613383067653916527108226461436256636753014667115742517275096849811432666952118768117387396504986351638427885076956972929035832126624661046829522155572707793210713006324156602254013070992986251094338919432914154397285523021258714132716914848809753499242674359030784756041097052928858171170829365270689188404035274419719384471275756084308434917239090261759384478390822049272302699043906970381825180361961111329745296733079549998197724182522279105933880086390279668443810982828851936400866764117341267341103954074125540251872526948774512176185004177039459165895405698142962535805511185718517269810379845983474532605480970342960334490463535386140145003869074463856738945347604932910089454956990455219245028556581622919465242956211631446092781944497342944530994910236536288376259271526607656419161929177081697010734893537119550375147204821999884728356516137870769376336308079478005415762778628352258473332565829703220592518255195597186895840284348330267393259176065070279598197608442142778574151155963544705511385115518441476825027188955010237055246184919723363857236522746601453754362308387889153843730142371110733616598680797629275449824088380972618730229694743841413224249682554997721512721259952272657798772294128978631776768803033986569494718267119821900767576622414099763473366526751859595189364833813340407327464927110860582677849682921770493709529965432842939820833664665053705897978836566055092275492825927012705526960302135455401542516385749981489923566398475641587034528785902503602577037480997713913355895417785984495799215659034820149097371703007777214674441855446427061563654672175197963681948443534720283060478220564762621032779264618568471109769713413895207700589054074816245801506776602276821331433814705509455618259228751080384747962877221305088859525949585675932036345863242658909621724753161206565767618078625920341265628794989746562152615663169008711473070109306460523829875305782263906525078310554030413690996733743129555382138981243767294513751277151611880737087444369932411756716748569241938976775667824442845881512077904836166725040905378436349145769034069382259250292673277612614758494471509807140550339464231121512742365962985164178779279369015393114594376482092581217579772366886313622287081361497660587818349454450404000549757237709728516295477776287708510205384049846087804943241579164298541399942961051866542912119146154216741426497005491945296014022334802952757418418829612049469830414120025233476142007215706300689574414834809930381729248027608318260041898372121378146584448538407839784276468717726333171963935529908023891196046562650864583686993585926256770631761483878574330381909354528282478624785357373870899960820704102813307021924015571613294826479034157326290027171258865441727134642914594624760577153715986139505144042529615119610101029658784626339282533634102625525878624051270384486714117962019912820085314848728318747688201474485843308476799111929863342763289734758118296109073651798652818003959010711227093036051699310351076821529796948954123077274550814890086764753283536489218748437640566720607142103198021722624487134718320658911059992394072067426513010600869390428563788770110536845469855546490167587899933683873480264575419421047447928803933744004986811274233884743753252157178498077190477266902671038296129849613460878118030967848827156273509972411646147735104738049416047621437160756458926296248863229365664655193906666666605096662641777031179096208011034486734247286420382303716671852024355566927640698544100465261946863725271936052403126360900656636062253476772202839082017641063122340367773936394744789057656121583942765301182343289149683750731893813467526993876285568185106635938763611818677487568278004641844384003006261109021232845285949609788094289715275493841171778685335665304312425729777247139069098658285970342112035681497172438204988903862698489227112081529758888405371810606763513070832014959278290931826832013133365428384972591131676257439020495604828901778777827189483022347828603749448729941742272339427637348585457460587014179108456863667383440578076048671028803799861019480899279336495022284502786112868517564924209446638720043093060205645956537776475064803193715442835537367664024425343168831326911069054365313773342466303957440976277239677174227678109636483953784720730371153046925235628641831537814043144648629963814688706017944444397746515602307554572788456074216713218787369080121928474806105757196857290656859795374479778199798421788464274068547789778281759462572129424495899890377786382372939315617261751288069365628533810705834495255824113688382395830560259174156805331149638724613520180511034976411516749730100524929234375295379081509756599623880617583324725339412665030282034861931015275477570382586740021725412339140696609359259046338992602777315909089979788221662913006134924879155226501929575320021837296121446881195600235569247829624703543285618591112875558629661374881825419152834140827501662324493179486308367750048318957382764372732309737669603072526778356818487961589312836440413670880397474729345852097973583353146861436795098144283284755417136331859494080677416122936117356935998928107761873551268046338151161812710068125496587028462244557773133502710114529898628172247090833954671288098088182726555065039853725917817210685193474881635328840251095976126821480567259164289068685037835548180110228383726904988616196242432547359487395999473037096105260724770520065504971467346768602074979370784207566666693897745740241439394082608038483399363755722911714069540675514187186528708048013290739696234465243020501915835512428928711160368322655895202798502910979585299582378602438798794274202683665157882029149002121704883648473501773627820789566547575998627168999377979957742837947603371315470435441384829042268075290707406173099931680702875633956764679210164896870283032595756137962591108416449189637613666288410866770400099225889517135896735313417146612901846248075901324537902460724445112226997333362754840632174029661078302351516114816866437180343777195332975772297389408359500359799636299533074758476864071847075725013730947064149858547187182481986617919108963313847576050973779873116429561953338903923739233475264048463387495983688264184129257953209845183431336982102737835218564712396952596353561672275598357958777163133700226366395547161490704045892161531563521839836287896627581123855137416857443888077314639477770721889207267173452368753292226680092217119423180542220779582723352172323321130491199473074113701586610802970672201319137402326387286395479480986577600650775914457557398034286463058854813844492331613148895133133546063451907472101657027735256928349462044863871599914905272278378996167973298084978213601899278359850670471375350032754992746757224075101099771617411129917111259514634132707963257023488938292839898589378206535729850782303190770831676388487180910285962417831458186455297390537322748711627859555817709143679398245091496830937731261760308738419208009796210648189824740537846277784117463463630923729088004745095636825681450490848984261644833141774879758423392224360607647756980314604247019588337115655584753530196524371040769632071864086413636108466889256167878757787087260487802561451552394159774988547878405616161870129262142717980916041370225327432382618038817721906311074834402580828794991109310458635855688606337355823508420217013093007538579672929569471178071198577787507612192214356375216085010781436378647558896870008762898809646644051767785112426266917938267534747193332783860592815896296341474019178081973057896571310898042564828123585202977989877694710100200040889711058786218405454304347409449160777590413550020411945979635659107658467211372849002960079913338959146234407086375589228431877963194252448459397188797859218960684345429451508609993959410521534259528888797376549045470786490755469107790858084690525548845367171652455954361802346437426826703937047113210855075847581850307512941999910014630066470224078993986996566555624414723268347568280575044404141903064183035515624327261023959914453823483018023031040687045760924030123079812656159434009329829791118462095043228976394028531832080527683968526993402054568668197067218541259999958251947410903031232072102755156832409505790080118533212644167541278674156730049750685928442120229214916237998654855468195754281673605699238860245964879719371735609561332455535656464683294155867895068453022976748038404986877903992033739816778295327735853768612238962778159842594842816283069618228462521520934012082511447970305646706010658103570534390206343607287894786938151725585854706155175150766858616639517634871080603920918632909527327970299110908466557512188592682187344170631857481490046374211959814551714711646367068707349351867769079442536158536795012383571534260686077628565584084828954396719780115897392697741386741448607142508516357705022880931768167547255755401208736363602589282065104733760250684962395822152369010160926571650809054554539016837436330660498369847985386466268540212117119439759938408622846999892860772445102184315236819048492134676674059563698097074263347450160118798587927162315692840141459057054122209325859177956399946185627832481740861458752082158862490724493481201758521537069217293114315707246188572518547531538145190988591357070240205326663418055946349658812793633244306113960063788561879084869172763449242962884235751512607055265978914871742558167591733668827075973759337330052626723735543529743041368985643957340700162579976009778955009557355872100132361536790584397274017800095055120033516326483276766453478956531987354318499922396471291697892120846983218200968670783571577324371381143367569625366503130562809957677189434572460671695871022204046312114777689474089478543449535206927911543878147704403155799981695464117997364731410285902506899190157700693512176823527694620069306700717512212393683228056982951834241481295269398476759147500299867756688093092304963818847476713378617305665197452503018258925785905232208940373162050749225310240367394859703566357397483170670172141872289487110148102771663438616076720309677160827023450262630403626872283120118658179712511747086519671106692125918767656479929341346036759131006960265013739865558243152045625318553038475855399113487523348958562707228205917010703485095463297063189856285706516423795390161320689503196063111139546126994957581005775193173423646187619301979978821606927033473331984290103471464102945285027052758198997699535816783225262036050093664365202624353599001077667316666491483410367553627071307138077650595020715548145953688948609870080162766866168184819940570794878120567474957277175762259402079681518208699524192350845625668948776834206394655569477589873194766993112050647992447770996028648329148000255189524895222175436102159391359792640699819706375533887224662918208695239318245498443921463043700696279506728679409401277483865742490322623185308961428644842680394655545498635393626654259439147442177909953441672605473288809398454594706072267465650085118575683629972868915567911044943257009967543831744713007133906508127561057159640691013900765228666551921232772537789578275835779487988234502622327909125951248231794962667160438375060819492977563068579993297676569571326768475204487610463897477474987129465533034078628342842454781937427982417671028564960096485397726574922356325316225585216347098476939590294859842243946956310792615697641158040053261608021489167731684503900451870025630612764994736698418498680893393405400932541220675001512292417225618511188246964535751676480519699442601752203813137114108076429416800459976862422083452237242352084768450592453264517976877900897475259888965203428904630664987679334894158926761637530820512909189077649646058930211536974651978165782616170860935758178150909099728317472648268739385605350477344766623465628309020130169922982982187125128408806808062340139234047906237347133846198016145025966791197833828125357495819688796795850969091864175309156684011448743504361515909489243713700386955768940299039464796964022955632286922803425176295295792020907950631177297635614716017036913831814059439455787575548517015174582543812953711609166607742989603194962771094268036578830723862936061176071497162899078521226056531711293129215117242128492161876423832849336044122405693060546455279159224363073695947595180271944698587950502159559968515540763525028848971513714253863929496921369228059359993418858033784189105905042082472082717999859676540376668579121608956269281157205140498905535042957960373409089110612482203845518988896101683670711646663287400414841845836949005166692515463823270912869626650472296619375635994626077294376843383915589510629651508328972856164489338917040049765071029539016241544313751018760858476649830605849167466183130368333382450027230399475664181265453494886009071570518990501124131609615346295895069565259624316424491475993487766610904044809041090008666308564217417704424596150261437529151467335958693910704897762767171188077045690077834137717817476147212663439196216004321418605465699014279317470592987464211661231950711457587461345796602546522116342831287661277676426965771800081034393992244170450916236177061426418050202428052774616976406061438546026871715119197114184887191783275938576354138571338479944605090982572057209238602045192788554685411042401650734240206907576143271813404227347163909007059981135367243267973267451794951969807941955824726013222145651586432582889362505930161342642716025707564307798528184393352191182525089722784835910874348868432822210559463353214489347888287481589919782942493942467452294277143383754240299315121213445066385549769767618619242873603059090550579803793746540131008520264651499018231006726677179587571954771843358243629329076722102019454258779156764629253739449021350267334420048458672003661306897347070751704881790495039869471698339905127348413875253299716039973107625848484202128588642734295030204709701738262304745580687705521744152091562485999036274967169646772536262377118467249988609749756760594052042419945632140378271109704502267900406674075281483051971782284382912133042661356123116130149575408306151421572744719041570135765527107867493375344618643544373526605676499748668520033667334560928764998140084777250303336636560635850897527271214229567550978717196833139706963481366025536708162047705836824919236239337703443489691165622415344786658715892291282109662211378302670738780312857186420646640085502247261143256196267834211265547574840782769033126634878148618886363021098768673121750184708563779647273070734109779363923181421082928816120876907479210094901730485062975833998515045804120200073000761481471496476650215718223671531429116047100044783248059496942948072158871815642321197681437007510657813544936612796596006578702666258071889593482797918946880964521844003110662891685549234470250636782075918203686144854513159387191929366183006005470456618343902756345898263912345597207973830385642567278520338534394286848745221155863663193316943510996261888380776167468648368858248867131089003677124792490423446284532380926651250377323161599535415315530589180634032316503991267766409717002129407591892936962669248381770481110150388602511479797838034930724430509361929457223500178465954697132457980896078395264693764383038883886453205244456388143324184058799509878778669823236920971170469761745746303041796046471219834100648447469295235310295633689884210774922243902192928180060980795658681444396765716450593593230436535928201445854492103827358080401200334466340528153815627110068986890107903467080148663430760534850522082143392048760789352813646098418598642915652394357686062489922118742892756982137901978667494841887115995785468235402852471465245221855080484280788767165181862102956059100722743119430169165805042666414286609932528308986092933354954395545160915479542242372378047545036162889357485884799672970237927681495149299734213180386214862850252065738293189302485584082403565066432223845228315190698617058938836425170995167682265440419798790528309237867358654552404182627968425373687130312138867299521990899700482932599464453829969374040960333235372771727467497378087890056726472910369291775153467057478593733646433397176676809264075538196882298274263995172778464066129518253092411186852372377763871498646237748101113205512778602649751168173007358442053207892793379614526911225643728856782593829598515526706674501244193693188342744725964816292521836663159891519105018682606190580710533351306771224034392797170797291112588090447089603968985183206306045789413053955806159011414936806469970106692381934263447918444566002244114666432583460257969472612244347860113076410402556180399073015671940112233092664734970245150155816716590333688447483485604986090701516568389598663707982303357745809497438481411832675830969958873277683403480875934047642638863558075237132706673237447868910271997544610015580667971068365796512211050162081630756246862481230321945159412736229052108674341491845886994407501874814926277368192810858454973985525321715697667502509262778098873744418436036564174316452565140403606961908381214096093424984528310634869901988440679971206361244741946781328126962804324039202360620706738975862533224111776202043524013949483254805220957993640124584366000006436382064062643688614696277292479627323770684742940897114791101634851409039624692058594507386920583928671928928169748633369837015250567317000669031952481390320390407577369986874869988160252176151732537381021309317271480434444281048253066379602722893536170162458699427969181967489168368042122549094137762728785231025309266586788008650483332525504802389117044699982715079208995452391052909946754052591059735870502468426119862705855891367040066774767463849662237858590767763852719678146206885532979744241955496615068482832384127704413644492917195805349349525580528780844809507646646189216217685787179818997289653576455607899389001252300714991314659030753902410104617960378100286451202254671027695241230516340684794205565719359940557399806759986994305945975789737859676707766497449328466808754558401474756339185005114688957579322076190928705453887430068845301263601830420431699922828731282196033423640735306104610593526839757322168983036709697216394015525727888613972480650684171519915427994448742260187995290247883135519029103560079827584450574524873055792772465201977002953753007025738302714150074600031296452753712256799157126240668127061981546140992180320167594282735077103726887107093432931734572469661577695375240029525250099859936192467183611499545080156146752345600097842902485484739908987897883906841163780052361751354495467750422719384974586409610574823524069789151633946757591551226281580724857956263711786001220118436535868676989597472377691259489671995839692030192282399121326116746072487368313171700549653221377853555893972087165008348849831456889349171907571574683437623937066386565909725664955322957383428713449761015341549525843120804565227939190264436227544833418285813282306041074886779758176504544229741720050240938615501709409595722539342327771905889457467859961455888860298920588916584174469962352118987904870325542968860387542717886479136571824370231764132143498451909689630625315561133141979085899160974078421260547048815981525886160322314811093228099441592503973671189229368765802589261624770193353757855224602013766476409027902900088326518756800563044761300625515409635601912054576458328320696923637543482802268893861697315723532536821595845533983860738805074162073324192265323128477447458406593862194561458010977171652925937103279104493826161985976143770685529032825208592191073877678752890196280740477021181551171924150931989032118689368725794794286786342570733515700394013705064507788192279122955895779008096546113928624539715762483063791404746782337663616217771081135631555311392454606987218447435543950061776915368374001532937944529365314210039302728473188872041743067802449974590800034794468818135550184261078730813344171058457483602193628994101658463899080050922862919698308592757055564297789451379722837274744651498295781467223581418678531542009286158769170016447585675919184203216518642150160891573401640422901817043089773804847353834286980149995634795436938387594500377469151294006178528818946316398878824106751553520550178679085896370776699405063891395380093384859345329130555159595147349726649535975403220438838859457633915591823367755022044018637654756587550839210184093090130471622032527136046918809397028967230391345778879940963033417464850762729100161606197230371483965947215604073342603430071936741561592881122456078101860574010747172761175521672305901602263386920990948156748902676742568182920778478888598480702523147474706683259115426155143128973719922434300673707901436996212190478610735217689330092126122606108538599031410185279743086028122872980438201047147409707441576035606241370362083229508402759383530970153460791475818494285837710911329860430343709330262573005792871384676622573291833507827706357043349082993102108464138521723621964130762146643682095482405700584869742388483670417365364450441051706306217819138226624526351310000563889427023615545332605927581325816677512064715358812015544763646878669564781970434941666666857586975458447508250767594961609748484638214016134637635666473012793671666083012594688257638546886255259379403320078325161743912491566667293237221166221249791558258480440718373264081276435312348217801448651457382244479287762653237187476531599989435352723015844934527114428633816833298158054303921056339806945251322434148439781010068422291522164078402989299419051130015964234121066268379078128443164000392677201650523514756016387893006427440460721132872443240463376322667101418787453928170178884662990962605130565541130617893355887051012236298661126439920646143618565463626987416103274683377740727388260518282358662866952610809959800200793319077970211517396628753176886670003329023891060050662530149192839945546789921022322558294774201695352672228517215320978225410768188287734272068321524505447327508842138445643448187495689126874034692632766547119717291967974520054465304169621610831079135088395926886209985726167213393518199479538705147339884670385029499032249529709885437454272227324019622606740360038834674556815836275240171807843319765949539796942538581509495125038287754662586785440574267648272242267567997986298066792992551713783198520253793752663366646724459233991917894361320245699415243613206469366022246476762523212544884921867226235434278501568800312763706744718635770311270711404929902758723381636109405166897471447517556807562148064079575112237131438417889147559721289972759117350100115836334528465517678062850949601374107095701418696297076944712906033095933482520297986662016952487055841970731230699071379238082855643264564159737852046335687883360682974093715199488355555068136777754999210630369851162343498459262930252236248856620167395564028341853910723649075180548852752512461247835973856749793428436054902682909479419011192146599791751750402162988580398293616192405118506562504241471866937908658382421319098214135565227725707847221561758500800331496318048171856158488446819194506234199988698602583540827815600070260750849539226709432817679769908572847343250800621480642993715622723455148183297989858685502350860699506392008495534983722043950934501634050541805235296053694036490622708051314540407040114150133180444454352422070705027836949513618668999452017683888510942481629122804316150629182000844502357073920451218418197542681624913182503930022668847464723638154503752931065266328497572275699423274612331255502784503671001956319269625123536859996885832320769647473903694752013291035999930317569760053652403317226466430840701405667495316440729491528415730515485393450348570495872490692937718441809401198349729486366929601444102771791129029154721794175346612159032161467780710780515229454566838097259470746244362035684095781330785393257037297745713832394581538488674553383180624666136603046667498551209592420817012247449568442566656753358007008665036385663813287600003409069400678047623751194639255602331414273873352787602138528077171365063634643368930892711909209500385379637699910453897344038851918292937588459819807021381841691507920959424364723685940542196499537223300848515656870173783831824159987199144710286711182145519653701019130442181177766833025723070411137865719968446238413382119246425926202004054697373085335069318775877505805846192286558658077925778599334344881305882066773099422845017625137444951904437370109787120730412915260695267011467082653435375550255941238292102008749277161642644241393785952434948070633963151311817328386681304198655223831801920010147311531266759993216732127418539450238021701139519146429448046382828758293365077654733884416242511031290130965412337264917589259319836129056684840900903895043535313964817697653061003955052191851163443427834747615502347234530041714056917869374382973721310104286507082729876601976682568381313462900484293602677300253888120565679668677106331797807867952499455866082019191474097768322773696361911310613374325526012855296757709733796807994054417803002673051377259648373182757022140598399750992929079311211192236135562616007056327675829658120240107405791376695737710428115967402273766679147649485938653335592789284765668161220763393372220560485712717978405463952118860420218999307874603531586890273098762219644513792272598696440710640250390751188912741752789321244803130540775246856450354472277842616739476842960963222306504462397861626746530291019938845177992446305765153277275631651991592300335788307969267965502786353193475962249064039575507062418931015111308093606566059555534827058001483201110270154055088100600305096876079179850323358459233597188522546204336828560073970302236342892308460872474578499052110048831677417077356582071107016843083283309786602635729815633725540000934503578574433531424436931729966936736083077294577516869636677134769441008106776810214165261172602720248083429885486009712973049659049807752615170953977402057108223658764743500119471972205888428969308352907056500342748940376855433101063875048962500752930269182188499576694685483681266821452212573105003384078237493023439601774824185265817758084249791429328987645629314765536114762826501549753808929353923205781076629364370906363440333792334435116363119724173888601486515893352384893141847244386796417503175216148372036758734043446134556768238774511893138140689071850771995257110844480527512236961723189839190047617951044848434655801078632603967125438296731751949028605624154053651378405584640982500842921958265066095347906482759092046725897052135357792463498162753347082668201037970903814022942770754656395717188601055716875108575756181435648545132069383310941675719212176930883263451883639704215324812085406558502709490322265984554889628831487012104600873716356126303072322629671445118272129226515155573210269022514614243226875362380058113364462783967778462499415125094847022282802518120472057537239095025203982727705434931393948458908277990888230141739896440103226394745354767927968263777014821748809089930415989058830634177624186494166545029830858747374625796990836193869407948285383177819280747581963209399022086063631563456730711749272914547903816833244579936755577782832922100966225840551246562200273393435638829112477944041861749278313795166117419778725645580263596089652307989455829281009644273683644826866546915635801443699013228648140297611749470952626010160985670904183000426206884541905676751791095666777618880215443724896861499724019165986513554593234028863165513767693820652021730185546370019848213498887377693787459204099811590220647481833332991250745233298439327620141519236748723877519972715107117824946230492176447341138233981178613245526866625460815916925388494592259453713303292067228776453747895548358717315268006453712566354629571120652651815372897037498365955569144887378176748532296454783213753609992224058900915089082855002933668155858623311622906701314101128078903960578506714876720871402559960158430549471079567587635748142932188908504734691750162346151925065606493088090362819561346008462559922071373828200478249221721677196185768784724644849002732574569532110137419185941120990561956782893461032214420556258201223998196790482277489947340748421751359067407152479067567814620226733040940422416874974323443135263602713214843353855678622015523867415559323893478460844455903469508611671949040826356952698815564384626041278488183863179707752508503160366790546349320855163400001522772132272933848722362438914745341162809742039572432114020253111726089023137716295555251789436321223942958973767859448413690989297116749222292819536993221322526838866393749829152235643046920608797958463314050506782082130540831411391062616623529945643596891726751007730560026178736880242626304320209307567499914164148550175951859479887637699480138963661271122755794839546959599446127180052110764499842946090652761972403222955784473855147860247320673119168378016279653277312037816034716930953521540308301641867308002164825417994279496451739209409631643051325424099861809267429459257245172397963053651373068853127769373508666945636032301918654135927516086243645935240940724966492076679950690679470458687911659129542099344899490015715296138650151080068202153869659173778631222112355861387120849232428866277468510712004498474989999706680463839360125930166568913097755909629897634375939477813124186276379275902079620676055758736183326834403038626109269827970443055468360059311480832701401313150176291584112180706256022672465554771573029704208668668083571230525869646874487564731937673645518335111830497825485395194311057630028194943798538784501941423849318450898515293610886258108038720090799647021074894405611081194490889382381980688604064967280147127528827334300980439143647935705509594954757598849951172949519533208343869199413366281590538236410602449856620264487149514970306267376036130373388964260873999993520358437772397821733491017881034507477159724093772561615937462042634950077679082438867260118311955009938480614618507448737348329041916333361251930305202116747337843983034867975603039943745961118635928664377258544871841934489857989150750561490428204308258206558129486475879562248376876840974351143806984726554455285038428449696285974088739605598606207496995731176585875691985746968649156460601346289481059519213232568519520387399058799574609754818771912859764991715624541524749931379946010698853307559097340197850289814929978052603395689596919139741927164218818122476888220339012392430596333376287966477338081191176816546524673171092180734511108010989030904860552845554102544441045755269133034950930366658076571870573491938404662803895584182078900478735177272071220143567599225486199256677023351051912548311702899718983344122671450551076802467586390928875259121437055735445544912728289579067501106275968100711229588323701663188905678297753061062864116486844239270643032608735109691385626152073969973780566124763246928302373402753541089736177751024943837105976703087546263057133449511045543091418202997451815795830116943574009724067308393733748610285229979347614977410564133310824472548913588586561368036325579436378180209692052282381529653397229854865349006826916499770433601358714848608957030914546060266006866186528816709353072929395471370731253304362251745254198096484842915236105831074367594174231414782841939733124446686874936345650873334763183605542468664055503844167233591647498937205512780387117431856984449598518020117002261891886579089744201474694626885332907193173067340934626404892074788213218079827030305339530882125677907062221649715279195558354936373055297434216791241496125511372390605127031715814308500118326601208568808349154850616246664583716294674458556478554781462496738872733356432609341049681768485132649714910499748394836661936815167288349965541513718124560021694427667264168079902751790658711976007796331984677709754697596016794732599086953978333118176082189607071244054067832140708924840848227469854149691924031896813520955890251290940770795481590993042481351100303153284299648040245952403091363786765013823020968861742919783993911447683799388770344138107757460848621090795616673017587567585514724567614425600812551766479594758239771199872204495394877598263367303707000008355236599801754969206041830420787264844799427746985722890682633829626712477060625854311998153891355617503025233740844253195840200253023461080570574833486041709347036595826979571090024980537186530896121022692009479358299215742333421324216006473914975689833782843184153783010218209272630724268159936102048330218287882142635393874592371710305540925671741360961880018817493554129432645676540338455124850686684016611544087071860090597028316310474892818357239396247272463436001941150012815451585093198469886726284475555968390773574787901867749610741419232794876855621869767109364088164811848163437331017815056990827785219745533224979701938316260731599424819961218994435651248927862585658617009457993740835242209449658071875962907598008257990501663187019572571400954208839985906656320877384102213077406984028787250156771518227587961256229234139647668201007402918529194882719286029149046346692196438434725680151594287922337234270759166949123639363982815645720463563669069999378116105751105739097698024708446201578051925911775948419985854237169574606034762965995137379005675706534234135116626205419210764824861121426395723164210053581584690186453746637009613542358286757259363360213184520982001356718399474246498108710891564050471132658209121972656869117074740409532516293817951670306055751454519110293336570091207813397179772145945206071989511927765931787315169219914518713431097452170605332503722018603222622289026521404716912379412481023059411610826530902955646519319347706092516929682399673134898999643488660469638013491433283254216573545357313957511690964900937871177881090048230971869340128869567209606851173596735070547250254288733051193537027825274843954492105983927222042157705810563854323204093922836473360270341134792559222552774988220591125760921735186295026204924952097096671261901417081763143700666884438292720362695272526448879571932675609216878768878163514725411988735489677508454184233411863035760628459994835509527471740511998334627115731569729164166476681337552321023673817947443250537639749453584501592329606978660787757029472077849103926479826587190874496854340071303154999959729671545341097361017139684707738049371340187270832647937571687201752268445819026258362101298676485096618673608326557298830497095708819862343798978680692815423668052314530603742704600027580933980817950320000421748754471597249469296963705079121797817369653809211831046897615506651261988000646967775551217758587470430800861045465825116208379856452563930603085479889108122692597189129428506561510501492261954726969363156449342020447628691811292842069538039231604842970054032946935657876130395900858333160714215978512100922876552732289086106778176942767852454079450113691238350882337791892632692519718773618809868788375394174552511029788469777584090339362958358033070804225966318505577885298535064690786121453570922145891081818523099147743512322240815914710505287873677144735007099790296532812931044484564306663760889110412174151678476543027429963808039914935119253082419627533538169892206657772619427813271423722785036853404906309001451790845416784883906438552881921238298412362079017098280164319914256701782666466992840834045933875778287996994954079395179176359747930663360244290133284742668604160580875861488418696108220121289374442168223443723693742909058881273362871419420137269139019640758574981086556549636099020570855391896320082386191361647074058053560185709118902524910756821402834069366812814305586636062014373092805949029214191633956792546044728951719346329710293265840016781864756035380165105489168402876415289260272957790518717912564788966201318602877603652741633846329153197734919788308382161020102087849013712803161483433897600701182890465439843788652608224690971698778381018819913152184891599883255392842167865819536608291779828935379215680611136273125218336854775776732168821427389106626463539485645652981994816938315557106584012863787698603574819638492608253048154444486203587339984499390192472821556434285720122369605322073452955223756850219383975118727647212171601017742454420500537508873560750828572396038628593185686744324848433414469101224579118269345461039546954967372759832955582776568423789180873897839896816163139652522898356236688384527785614105353552847057469757848145694870473426626517200912162197550563126950251324507099925125845569249032892358994855742274224553948588034092199984487979533830594938886951174286644595204601203194022566925147793358856295914437021993257829869544419094353991950033460490299509969825562362917889938386802888114816552361575897378631955785445668938354415060770378556844064855439950003394625199843923581445928045139141550417991214646300238078591920138361864600764816972126460254070701193374122904709798131934644284761818046327657548847270385342195085040977767883998397576996021684466476979770430996491594415253261759574721176876269835780893626670589645882043610548482687462675303012813399154467670269590289347275805682051295360498793592655379924487174902982369574623931344493199709588038587372550708369585230189558102840646402729254854997865400029387001643178677201851527863532155002577033130500499009977957340737577090281199529778120948552815005525286837465006132867487026220612704982248947206673793627281254746217273450158367396738561296255707329599307271238056634407763940765916782016727968558148202580845021846766270594322843745465815619037379199241425723866839325427304981130650864754717143618305104393077796460298862974477733516297025106771658410683602743378296689531535071981323119640170702481569586113887556119749291759728390903771955451222760336541089652359148744975200224937018647255416881218500287383686610180443851171053020058955902703844875879309594835983607491631415788551639460582932546878042926425226007449943389064340523543057978356500969926161714912329654417123938293262244690981390590508116244728332922790397410346565083023231735313351473980160513853719790087617653788406766374769856136471428376083592565953443517311156780111124378137145388045870781853927521698928307061377624284010331426111728997792374216444788365381016655989045083808411542528130689708849242028560523668358449059832159916784772010850573049071152014005656601308379206825374076475316511676840368508499768178511744692908130693363679183735819326374205362628421021880086386892829220813097448344587220456078533718636595063793305636157570067564314591099268405692292614411518082042376045648267128510663066790267261862739957344438962219968724152317322294563839886230224125200584952188709238297536635826665884053029987546460856470545778426366464370151503698437291012357904577779146757337846129274487734821473169225007629683852093504076632499040402419038949251344857348213245687369155493252746901480435193809918200998022669761547736589418996436559515784576874166557909742931315153544662461888047754646606517435540772102895411265777632565594129549005312040601659004142861635987851180738808927559719870624352953538086988307858238242676564460436894151843416412250486630360882905131877745398680551701633913332782428475829089132703624358033825406148250740537081673022356664308264516997594323360839764850002712354023818348685896954634268965767048884687769107133911961112288112358552185771284247741813579336166055587733653454896806875325419802551106205706670233991840218321677166478922527786352547940211728363874060066596262073240254279226841916834617516769389701258983554972558797214400830897125098605005204461125405722756769885397351884189690272082698388738133799416248254061061142956505918820629243863522344447880652882332401016760157953584578740822124628474990622327343885223335717541215018078983204788996636496168723606170373008241475946665584310134720339352476043074952343277648382142684492708997243404261110971360079714810042094229949681485439845586569137871895091237227325330806896045861637849993993211122591407947954133646399969976106018991353574015463274230379098221733984220388033784468466499598862742566979159778340682430993626008643594400173596040669461555948967382127215757300989851962234831488407442062198531887513580375420273796775696585817313008134509708996904108048499393802663176828399003818630425809324575029662594110914757925997238412442309001968605683329657730006448792451401334382764940391676706947703025630871074461375281732975691345964861383030116200822944990461748452627159876533380533985345057930235211782468564971260184492312240510762669949549344612822905536246299231574466862233951974901664546320575682168244771631394821694403134575254324933919435368164818067293672975150696023624903484446304147262326102868326341256551286110378227856189905983700051753803622869483457644873643945398848156221652969237017009144212318105239670382392720467461878245809763406100735153149574171253982721887361520293439707546638430564629854449527471733558904831136117822717669491910934725957717701873523323597330639172179002125666541921988824764083987655467127781189491482364539381243474757479058414500161321450581401339127495311338610351611041337521421440864452260659372739258711624661688467075493444300586427685933610106988257528042201330857969866094184307781423097103765089852514085072985153289310279851815655993557419837000380139713395287241656073502895249527509286690444480015262891308054807007837551860333012422089956856389768744977650841056335918030753119329953782155004929608478726751780683358143430552871320606310585299557924246942211957956834589439953011810465028428730520607616829639191663415901746182844243184732592277248924763706056219226252401761209037934822444175381247932415489473412356448446841576077861390386492013886713316425982040564464446642734891988181338838883790644024449219966757961754205656182309997206519567269854043131626176742415612430039393882025637562642168074399088322809762027144945397281724422893917667032404833766040995834030810461612443360698249756324333928646465326613050997132965445742816269064228280228174205827736950001168948039002569056157498303030604460865067241136801647317893599993530775021350856037752035935215119542651783213004142574260022607796809133181943205096153607304304156515626885827140421774523382983829933665965698126044543298878896836979860799508189486248022137262202514415861519901680107921271216752066051318773761254282962557977310876024427590782661365472318133677271668815774297033338559945561116501444650768060698920389369000706703710766387737715391973333289585886076669314861972356890643763666820586035736538530552610313269883249951544146825387259659339740998005339026950356349667727439183846046157041652828434341415029600720214088735956070878173536865020145969846804148718348494298262240741206742188096090015357438025138918637122360993939341386852570654745948522769541690479524558695478815925104363010871067379755702157564386790751315739119321604449959375006969264926651264122637664530423686058892771675306993079811052624036082165239135340585134947846679119090316656151224331958774163851119413639944421847400496292388649646245303026035983557613008331004423996657713707273935784523235697942783583381176091517998799509808728582026387209539828509348651114368443527999530344849987849731277733876834144273575702548884048655615922693825291387339894516714261013212264193759780272169488600301494526462043387257462513529559050757777269976595266648813123073951405822552704394896293756191393531427975302850391977996908154869970742124320148544362288310970656765005294280662667050317583383320006327597975431479704095782904208541061743600924966270181594187741325468194764577659985023958997979391778433763628563462034663471996503464510234514059981662963590565628591247487359040893510245018566567813126879156783048060668692791085502986970286748035135818282391355205310993392596362882334806463426285181457798329726580352192628645704763000242030324673615908827685805303218306307204486825726588863793729110087098847672669736100811176714060956502704053286085334841511966535495122527462555882908217843269100679374279248489726958180644781607748923091679503464869711563430808342941879416571638069175938439042206698434782928254067731055341471181592158138363685959533136083743204607632193321903720677860549743993773337438720849058430384053224321866505141808733116158027785928334065737381768522491859294947524375306100926826878668937341406136745293207107269018453959093559177909877223001967747762205322275672194202861260567357522052556765613532767831320430614497696376137629274756919679642724347098412336900515221170897780590602385983637590010365689051891806673436529231496855272498018835152497144925693059239200625103476970981101488458627890865337226209389584701931233733319187183142886021932248791292187765275237888901224328468461737141578757541934752306142584645143460470043215361868684581195901345358184619175221866741827293074494653259415323741668940928898337025827960203675039334258229893315922375275769477885084453526953945935022262524907396070963628405083531699439940319374949836852827148060623723628498907112509154905654936078982859590191310256920406897785112920533134120768252081560464811793688369224420318276565627620353214533179920679775538704535085499200297617872059733061377548555721897044442375592462420802816767903076448475602880035069996378469220143748087772925833947735630817603081969798565949597994602480005035841438935041055406336343326062131891120128927889698128331275590141447657226120618957754816026416056945920800876074183818352582014549505582086779711314056963847397617679204926991120306393696579472673365523163722523759456132026158075514653899533906989257548784305720733392527178631060953031755667936807195749497563939420048240508108265890357220780158582825229862142213151770022721363778857528252322318546922456777806035892083609381833894697399878954321542049159230945435841612188725319386589534167470519195090066347376297474820308149237300483228833150645653653989100940179038568897470610597016421286267595509087638033959082252224089464365376278532491981427910384638384401165309096580292825369496832111293017404894426818266015177752685525034083264492552118029751212122413716628665301545775850163867729336609515323766755219732738604421104846433827128505079860292084490286004167667488563326563501050532048546412374908451290655562369010889033199159346023405663296732316113749076913909334147962039734554883710420732350350467093120778913301428666578187182824596753443544962265898921093884803209521077808390187551184123399475740732448511619107498107723455763215233347072345415788595315255428721732860285955664124201294750091451615519114260475123612238225866086078993017199687378514177872688230019216158345415678280131182754792706751186961836576399212472860292305502696657816379807150102697904234786610457910659733712533249181583937695376702259447995882430483180882210262014504600736457580299370834306934540477556447903151920941004463896691541810250419909250933474036696586117223920080464786134193794665397409211237144635641731194274067726392163894439154583054408237844841421801314980291967565876268695401376644526707250687431805938964311504448162314200432811978866353176838322403776857357247649396430378087264968175374475086255446901127621017826474692794714334709733509886128859641979457439580946413997905607645426344443124991105800371337783310126889606947316854229110467248820501378764820273549637258425703558969153228670649153481838145887418775672166222251784613352413356995014475728922935332913432722864946139534798425408108655305284826953848234825391361713536974034081267377986119985452786444464030982031399108020713412519556200677889772878871528682559418933079830378322054422416366197668166901275867519928405589279293863237172215346826894904463323929638925347488522134363392326890756572191927542094578151879988047431184932216714672441709556936036092004708690573760355839107533919432469846341653921424189988600018207839633675969044376213392927491418121589438882634253121839844368721490506090079731973248447693320146323964654011002190566124397360356910796756464732928051710182676975885388515664935728751294542234686706311708991276894343746601621652931793064665215835677090472698304611006154896143662480687458141874261554766864731673114611605611806565252640018652805159716802303474887924258329692707327078766297512407490554373490594815685498076181513915966270980341001834214782733056433514792569058621891528320616294758552316305283817110682041427285962935185563431628592593042019250547087492334757178909290985806934437851279102073460766368861723711972857197537982792344250253458891811407066571714493157496599215022032812468485502756857202469441360753761680364388631126868910578639442657644297464553410816521722483835679674069731175972989524595862756978042941421298767420864644047806950790671541872264696591007184690939918760381699169536624816699506699748212946333261255464987670516296804075875998761647889926166745684846365694051946071915557026998939367316918530069840977786391880424910578527667560436953217835725536314346181026427040767880723102091556676764423920553185303729426975343837950841027924630792333661488368793915270804010548715628278536365584397938572367545185584723610612837462573612031335502886419802408455014267928045095061700160991863001980129364500275745297117638278225723186742429934181153056033331853310616344166588673757948343358501934367459017513978186924117645018647433969940856734437539975740092612528771443645904297981440812986140061219300944962219401444860430839403114987103685934103836572709866375745498783665415078057736542538677549473131873914191287146025996451882073861406881953665301844111266214530935633362694948525439620056150499710567770073048495710779878894654350586370508680677361344144799940624487554780754902371570849477266696121247160579329101540067414374787407084744594820100114142290369410119595077908391153554345037189527453152844246869897531068924240077799176461086160325278041572859839610587383242500873395552342507075156094094756160899718595094510344492660077806605306556743298577170106917001117971685815853162689317995501045443839488194576417837921047084834395784107034546486458887283049892176240749922750704397373741350434788567004549689829714115815627163434701410890534857443549526343659544413388910353427628897043991846403754819988764451845795197998330325285261962184243007056377341723361885806709082656982388098667302219262003482831322643566036406330967905782065193792522604015070477245998621473580468864325767768188963565853812685468123085497966838587609555597638078763369616923804670152007281051420320582739552183178774090681700685048440616200179251802730213240064259944020309868476387673877152460033608648982649088733694869089461748443185276491603902896990489432651801428983569996035890719062268889708070590096047034330595292800378937063821501500283698772279447906785304173861534000284214956363493609306640738693638447566308220801213484326750404508154565705082362958392435679370298482016346592006860420625486691767299871910412476634699251616142376120070007603882756485601087977341653997202739479454484772112520631145694732896626235972084338813010928999317503878758510768271615840977701613112172134762101922787947852364911142905588712446303453814602342788436595186360137534708489873907763003138988851148697765951314500243469037554530867268285730720861806199437225503884737575922904666275506345291689437496972574148767298368554387996043773167712732060991207877218504674691387688368055514341900812632889939048955894367683393591634654509860765640072215401265006054055499470466619664622143407250760552750707208825429932016726625846321715269595555627169107911705122830932103300524859627469847465119045876996752740116490263638851156447771563480299308927871460676124385224842020156651598093289994524631332186453076367852656728879616431271963620199036323245591705242463275518781453385702853451454677207006904164411125138724481158216540613452344939265327771900806851709768255819918655279690657738218671211718978942500610018883748593403234100430106669758420369024887918470427689584874187038094645706959523394517286863924738074074916173235402614856146088475054120855371295824913225816341597189931083130252361074122410493019445489249265720523321429079671512230766144680538382873350578144777887994188320282890670625464516964753438573095577592554666668540815661348623588416211691049482268227036611354540768403575710004908377939246713430178660268788478467150686862896528663019005287992746857401033885986519679245033018186537845357699111002351449941862637207791115417427592935370061132860963941290418084377904375103061867370407156370327876319883734349142775498859805811589932766019619486247585589523638261207266274344184351101927995946000515486185659934756115462655188705104056253068170095718793534697837129787381741941271589953892723864211408110688845791975629334671196920810666462808645499996197707128304811138894399173580109674145184879841106274048040154651127797292794607048053025331744946122607510694531082676007074879728246901747017834170094172882440923950544630639879155979878046797970946674316595542079477436424866715907512494962231144133535984981230979185637499140864724110599622829027774536458537139877652223402519730994742891564266546206890325682471770849425946001639742309973505589336468298349495529610540972952283142357992588153483298812887394003072455219667834564278063340321673703204554005810279652789442612331256998473635940667381353356221429354961399230153055570090170224687893712494842228526901409828733548756945345690959419826836003955034712746710644767874762975759974927049145765768620549961068482273995228045552986676076261078400941148624258633685402670670632264600702837143881232192591169626077182120134793510586472411941637992054639784075504146651211263025138368853780500984022589290043165946392232378081859934488725111237544090919394050289253365714645171885894580385358268794181603914857246712740784044136803870593781580568411621713764819800658596506354253934636423512223229394852138910798697705428461152673425345658191682520237754173952511507108727829504396469604558745056332847695880691509078420801292141914977039213717153254515118492203602897440664089989272811610111445385757352396123340775815097548823835085245783247817166581716907172269940524655570283792712029848567369943627126436240945785573014874248426762181941999582650743685965618777394171711460374281550642495780871747456242665118938999315856972636283870647260523809871543806511159072495837519336003820860628808208961900940445723581329068423268686254806448174311889102868412064284205751324014535917294123685062549103763040260498436223793317345700430267926652101559178867298284014001178954579785021261434332320424999806444825651121926398790141367148467936206552316411104237105327937034501144774781850777813166070821658775193617801140588290837543186453626489359176533195593905353806911423768829021591246221681098814583580216287734362318508048205644370636160821569151126628301230914625802609288737396497204227283839267379256273690920514758197386448049258823693406190625243249813173000770936870731881309853738820460324617039591666579719681382663799713380969637693616649281348549624092417467508412618551920214165766909572856987242909626560015803188045693568849735961646031370318190170854392408531875598073208687318700144388582241370791763794413399038796186771894338439481367135102523403435248293024441583121103633288934815827887954463981830973301127114472299653104308123715030578181945426969944402666257367387486851212037882057038558555630013381375357548836470708239567808710123723288991329399767311456433687896476656434580226176195475016173274312398187693973292094027262339617740177778472362112801171225759041474514973095577808232398393354095151387895307317606363919387746661635405238204892660080463163283106528118515813777692897593574709402966165477436183660457452898394169446151157510197962086452392638587334602408543835765759222714710892912542886793576686470550464865879267320092719846427391526388088024317420040029195279258394632720621085548283825767160054291876261843175398814955516370053612904157857010767333144666084624471800427969077767689649605862571130464725408545636872678958997514328609047343723555202264746599623227293449437084426202820226386283083718168965962677627401880781660274418733168414643392235536572752031248725333800819625399687478616187359506306517394187764960557130520173082285944308746945963242635631755469719621986611586058076309566939415277775475106284039635048631683851384058707660511115762646447828195321382026554522683123476086459626872704707540272760150041501949293728005259614474165776977671773220286692240942684871045424167096056399238167442869317306082032927917465205649326017047161968641567333643055824870571112645028993388878308454321227127003391004750325926902412148402252411176117593076339638867746646710127317165231170182981423685880376036953122577526244400619703638161352615385528769185710000351482219631114282623369709439695903381488940196451519436862535433774339481795595013873998625745117331849387868863646685368655317184282830972359841038444597413879152628138205349608589954621913058462397623264141933284542278092277674989267175376246190235673349049580632455752806207511881380265399841228825379446901204581883575739679393915245106357087350910046801046617690105922894254469874861730435005397099767475167912857894483280742510765311872216656166267269049512902106739803754691710293664200384449782780103259084199432979361534293151639586830521530169427408487831985664843477389965511871018270097476702087961738150000262306646386471498597345864568047852930342649468621541847319902298066031841104098558314754302321074215073036589929574079474672861485674063287453964165136102174992251299127690046452179121785741515367560236043025112020463126957054373723387379525039915513516315755112285669496886317344180605596621211586911315228155319578228315816712111635386110235261031744535989755385738406036404829151654045066934478721991982541112773692676955484210932182227782352459123798722478585231370845210331892947063053036062375946162988566901138253816338471096057316162543368872838263056614462241258813357162268227835201409339598137678360620811095984983292993540887607702022354209190244173211527887430535529749393595463498012363556598993850873616909186119606069517141826784388358465127355835120082856374412330481230075300186956309860973760197545196692270738963256319321371712632193321703466799068828519966201183688282485271590272756526845945517400828596130331328542653283356944233814567995851002670222389333810407091471902890977497381922864160921964189528794896861465454683425108361227917698767624536918867803565915178896163942032095021168942926571805890824218803839308464971703340773634827633612621817650519875818254029729585734318927772696028297815217662675496909075152295973536698859504292226418862384519076330586860372622376135099525002104594795460012355296375901911406106774183643663750933345466739417680108477903053203352859325569703376666195947137329754539196059446009268361409346005360080282187653192709960465007905778617390295783454151836057201331491904511276127573018340145376923150340037042586857125192772469945637903954853917346239932749677718753297717158784967530973932661946801013702773273105218891437847689998921555454531979503080939158585674842072739741787250694892207008595134558283159708995109092457583449763548872562367639822497772753370290170522980587175209069012978986544186407474828883278096242115938439757712132335655214809581718482676028679959449473883640055403309932197270574600780877098125772851583751290595621063259434410132945835096610753425640636791750997388872569765223228870658813711837603468515790998220110131582736035196223012504402439676161148263282355069106166914410323796337925914894661053691327236946730800301267083002394666415647156525099107104571084211176175525889317847069254334035177091399898655222420340850416527131665423829014389813675718958598004586062143138001774258042811088632454855214019212999473039881028976416219472392831236411296883666400110821437187143218972633560575017520600987877708988592846486846536261930091414330155736746759716767631980396400170635858089811450392596795368006004397100297630950162238626180163233425752903803705806294024067947055132089881976216587188522307676125490409800322970303038807683546098637767088035080236072972044091992215288428128093410669697214528786369370902270705604298424178722595131519539933344375976739395279237098829576146432577655202689619612541887013217368456529153047672418485113150792653895628613821756793156232693381017572034452974709348852755060744832228701059475763098285467520702528728030356796686166641407219703255448123560929049473484048515989177246758319508673889836348292227036137616904430950373410182569978492655421302642273327789248659026164887857034622737920671304535621870175089218886280157386606963348195738156627107522626909999826270133136922878175869300504150531553880042898136682280061098392939617168168388096377250182146836620390116386494469117707014236732542710044454698695679632506644201102706401861938751737732201732018726518053802746994262509981788377549115103053246034421105310179401928193058243295262044006735688682006923382173933678337617107396339117566322789392786651313572125242674019051896885174405625105821702249460973760309607470329675477668311526857166335894811562419464571079315027321802722891651336755563680788866410766301378101098467806675773917981139697245486625485089007198124983426450147841894878235812958759593630357762153431749845751722595776070016317356308054989070034171884583536012157314829142980955846588943242831821436506332228949774712091120072151819587722861893789600404202431568347869778699410100072017837433172477442370018918877257027258196727865242029499594300982825000304796714569647527492627108610088849967943577896182359486054024763285728855718239944082436678633063727207684977841171303634770512810609735655729983543887308056321439614544641912375862186956508259782820137854735188512036450679656951650799284553987521423610945782887865918719540733223816799639555473038480299766300289585623019321831878891115847731579434058559492153905013220320091795064364192631533629674845727900599930142247255967648856264213980504859730192131939153526463135089835710219024928196731530117562256138243462405124143710359062846972235230106299844858228821311242993430982506546266393581521490568201755424123328308237688444418952645563859985124535450730522369720464623052667804567360785083108674306616251407232506330299091938796709733121783799673419999617072778992536022954081517516703517206556827709718785852270071207767809624817747092181543142364753321053465149031124808985348938016043341283932775478110845262999939382610253447547795308434060977854577949804549937493017806291374842537352070725840477280806082281628907584433133683944551255854627184156228033388432740888220373009089805716110675301765928449806335652148427049328033536047007917332468310270919967906716879684293343698040127905986709799733639769840313666479651932190597586827895309051690406596052213795032144403647157713211452869112744875523200891418473646398619445136114120775297651705995338456526806127481750074884400711730721707876893009262909674002551331159167240747231835989532723827650750856927181216152485674685626034216235058423884256235410535376744889954589088568346850422107792118305193399153523442550415926074576545505472510131227479089685829386187966541256219731446403781028768284660494723156902494864773946526896627392197372642996008552084032967150504758833514834167185777929953824821485578785476557609869945629827696687816207352004867567913716203327477575258432503384872830381028538149101481753111015483448447917601531432714801519938486851396966913708609544788728829935793823664946408961853937711914929522150956989758765120825344236548514410427893772559566733499229351748047112486372051637514660386163884962563464331000943554340219559693745782214852474051246232380965287991361009632799540404026238085922870580557750817505951280601092055939408786770910212614148350219662982751683935528807018178793138035517091457027533971986308204393243182153012331368938866579714816138150135886021183575819252111991428762125053719340363690634732061453084487260520196512158633483169182631771675317259023509179962105803800135239924739062341463177472134966769298178229200284261056095047645277177314059593131196912810138274440183143279324543033486349478933009148737970321617001245945535738667450280961565409546137953199771471390654998153002741436555079143087935302033902203711660375312716750240544352021387289286365296809231503371347254082831629000342400102903408001252792929497699767982207484127002234756075366203264407659224315122208080215135486727803814987592942070934140759699226215736074478086049369260368207047829582675306285389816721471164586830511843988492405796266443848587793901347570739118627865455907166954219065272372318016337122751850898874289621809540955195416369384226938087226038704058696474709412753449078265558068006974972934025717823598693446394703020970429328635510027905500690721665785360413073391451605716268152156355310677437798378996860276224697577099725491218232549927847633131055483156756223141903840317241734598481579516267291700186276638396710448430445508979536332815348638632147740559940821652438791942104703257314732147707910031690692302614749934687951690584466698718610750512805503878016729907136152402677380435952200057759835417661256659039333647029140541138705336414922819202534174624417234267336246936183224392044128286971595801861421633205526576716693337857380578737060483056795226432108394729953986574357058542681824291670723157055223329608341852298756546675892230290005730398904267180143536413676529812022380157840927886499780661729916753031823362604929763381436729133122250590178251574307850156635232444696125307505806287332564431668834147986894655932315221756154403507578137387381279037893464262413254997244758826602794017871483197858108052672605154990654505374882256233786513901363982392129665756783965342405168487075939475575854873731877351089072461985157086843363517150626232663173931925166978318411872737052321296637718617503395096566007255392343192444031159828940705786136625404763883994541425814065623707173158063554824286696942205782781174217879035142696310676260161703936800267776769172354717889127575990437236718866487541758510442031352644438812627738392587788189607543086537222594365952001313754739742688196573433347757627997032544134439864280604569695909046326682249395137753723370033362828773785211148002829103355868728052145839847125228161632105992531815728424520284310935956551709767788054221216732965481752584968863355027594388144759603036572947356662137588142055675529785781236688828098407206748099733781504434329900858190279176643351425919224192392331216965609615230427137286837648522529657309294247899183496597866035953926102883787071031953351595255390119339407356393443031784672989702287097034189887947747292439337225823966029362946382891255466431047821223151652821209255060773430263358551370216522916555378803870657482392341585411477630492292135436114030339222024379309525204790875102507769376025006729798662096106674370971063321156764559536021875873962076741459630310984745110630552501858720648922655325410439100526998148345797115012130902030034927026334553335060405806511624677675894170714879770050021657390353580507483704999452001057148259831679064431682845739957684654002143168189110481857647266926330177127761318767559518908438033660994869259324527692772556956544288691787346513353046451739250183181465559755334871256925894206234063348743396479044834361283275257258115431629043373266493711990990288705351716108184608637910145849109424234344773108082255702390961992771833776282077234091343230677301921610908988468002115388180185370411337834466388721658633050787350711125596961598366531715299446707423367689643487774697658343389276205137245785600266946925558349306625666776207650737932280426870100380298256779594477735925414334680871126782233986937141107212674589196945852076208745160629776930728074758505913190990431054905179865952556745769576893381418842236606566595069707496682347320278949653371910332238583262371781583194548958266837730650928627598456744343757265116509637083230752635821812430698439337147018511453908622007410470432254721660025447089848626980590876016609242479789728280840363932668383418037165141981282214216704766584399293086923537974835391638166702733476530932315322705928886143465688101523833484928345977324611282591306481554751207341326089627585607771611889966655310408982053315203082023899276238052764541409219830071791469405081808042548222782812036690516496420423790817267858587726733098853040351822615987710583092159596085560285385334691619948019137207002034458616019037221752496205190347559827047517299638180614485033985578417222352608790498392892566073837966335531469405722725462317544740234246183217007298091772675923604371518162923411603739160470787204414453015252370165531446244338750595976316869757345813777800595178030207046428639453334476688601353614891889867099872964818455140299190715164455911820366424688396397896446735632784047495811526850466704159983679823470575609536925972823485963850653704281222483238362780378337016817420976324611109310215047261512235298389819718821177396073145245904504248301354184804237656420054137947718595029724043744264328280446888352914305418140714875914240281305848889688534281290185015856383967068975009000679469918866825652601575348041393496282993113236581353788291992972120535269858198411497033295289622797316959807163123019099023027024644076479916005619135810535124411972406660046883473600101341901858452268430784367284799367052192975350853429325434546097518327955884564088370947071311580550710707623863778121820479048089493919879298307674497302602717576729049508078479495783306268817048184318756396510955668511928696672771332692253996855557968524176229077266416194736460673347544340973617376388700779087632319034010718985637542096882704825668866583908076561585185930273182636384391542761799683228148228193226094813832762865946827008888909638956343858029638045207485306903021684846058051763870337388298390136628640204826253506814501389700136759151934454663670714010516119211602748787515521874082999042019065328435253752921760363202884447420693862935441364636946450056919956857763554429127370513098109425609139167443110536824061546862167405890949078223157039555207243804150591552369905708157974048958462325995255438378734811298105980599988286069212436314958652564324790903138781363241495343837356806667069294777834204410167181582511746971263976887861527217663248002845874886198121285193506302642296330465735172538290313346167950364754877032961011566671441692324994764929389376140413267164426503586287029053861183900348853909844918058950074542386716253054057828505866480996057517323199101820064237724641375694140994204179555701885299464272450225376542245943625350510769657061136424607283182436370636830345977356373697780228870845596587894439528187699500849172444602499452480633338666952147976081403026842118651676439245889937901290081566407755226903807089602087128723465900141462727597686307240499890099450693379716859585291330302101732295348633331587773642680021041124392723115162975747093747164053313719818700953446509679483211082787361215564459990291698034345440222340542574194186874359805220979675955637898513976496274455079509855068200432865315223586243938990584338833292431714562461743867548605629669477338751899992746863570571410455064748755605594027178949607085509013600412068861520534938021975406771001393069508183833448968729164222536796094834694171195766763750515039509222567527184762934617980959479369565688803164119336524642593916609459534662379241895598433560342286247502012252588956745294095765717558997963106763411449256197359402664405384914607895412295029112720236063063797204189368586976401794513371170308437565779771701645866092954960646032525277468278763976950269790671834509176377867985990168114381620483877314754437607258619602764953762911728141658515109061439209083949574369171428302566735166579041931788259533412732027391882727874500022249287309755313667975047604003534075416995081337913149913186071936094802835359844471731512192018853392778525755228585723808761424315824093678791721958813810358498944705733800306665445857264007834129135401797513783374445901907848876436729024948231173933282745529588589266126427769404772209958594380379648417370631744991638595992286427637322016834708849400959447329482721153153124376855136965338652309513201162497908888828350478098367473824326562740287501088134102167109973174235421212145903407268272687148374516575479708409930662384733752529137139551606188419465456935097832071111839024278898408852074478230371790161489208167490394214203886664575433996698458281556685103742769382076158414335154938483104153121157507821282523303750213788188437999886414665134475174309466076833701285840601388413521598226427376140434226830233892840655471446518584700539581291258652453638417686405743249730879609376152043091634879094821924598800648089423846568836525028429453849608579892511275062526606634802453695320923702089564305144668016363802695876225843456515790574670790968748989302308979845870714388921123764371945121793196121917264745070652160359782874427034262541157669097663577348782839523228295348200087954936538120004670204407977355398154195286930078799389539984509063783128290739435048103944575853690252997327851154938199890537212073877338410664491870825002194976660028404034127000600474574991628121660718633749086628429741325344444707338064038824543091320505173717939044096727916815731298274446746743177444513408487963332144883413143164800215885297472170790932871822343925088085560628127320056764686638188815882633593411842230665871656108141781654247413824306548429010963026346905884511202857112142860949776531661511950404008599395174968345363931855574619732496199304557281192824877861058017525382958625331835213831036660850600563414724575007121888444163180750573446133013558624162218119391920710446828795091761529365916539008732546696342342023163778407898745698900338366432251813633898526112168445913233255291639490574575347092862779932116575658813223139343812400675025821256456987763230288398093025411018490880350427219695198885101622353247799197395095240466125924433338888456829783079191366378385854979813562908686483854763719186893109050268752806707334914861578844617136888230082525102080902131188172079999723810435545821013127040801000644445833257974496663641866430356395513301865524833754289250229440025304454661465811543347696180021648011974752725066718225105540843088071556611929930766565944817290875384316854326459758520113527660278569330079842414880268501188221772264875449171827536102876315095495859666774043748712290545007575106934816849776395040981361689243042168743777707767522903024029886933070201388513222313545042140946982976099536517610810381497694215766223555490877036281609515148029495868399017004966123475396165028354167911914323787133460346617444783970872392294878529740123865097849708931097760030245679451874329377613428075804654502843966132844438530517341363614052686163759913521236155155074471684011834836746539412770214103793236550782584102078055910409372263224242059780640418984281640530609579566363027417580430418618144800986641452458646961309591701919743820010572483888848782587768496709085748006902243787135112149797205556853616923406318335212486445155093183242296296542543572790139963129523880453232238016819220789889964495950761241952742106792793346663205602935777413716226434647605990605059420199361913429924377387034349513350170428295418271016284543696755680580995454014397508577028835423618594152196952994206815800385043211305957818433549430135017549381135330753519604712458328932290201998638050697937560404878216643644751828002895329808785783648135821330980013777751458335556084968161081576747419305665724599112384016745973726328783989970026760135343288561327635674348203204275426213989713968947836516298045594602126213930067340022252468961147127820903954431358489629778057204602462849339208165737512404630408191111096240223019101214034188788702292383353448476338756910329670859156432910797546156645074590317508836758738563454105456106405330521975771540680034284137379693492071786715744163083624887649106863447073339625225089123250868960259343074835700112139627328906813813832022558480905145575481456328337504282345313468731776425335386222514005879429797717881475163243909601541761554452579439896576501833258016080256209999375789976039610974757665579075933866631677107529300230969650004329752759139338767318611841079303080670227558069954781129882740718537730083638298077985125164438727369742894518801751473437500531172760801286931504349433330990348489807425376122598390813635177200075866559120914385484769693416395473945910797000312164111884266416518333662822507721542169286462614363700167291566733854394015742610943148888363080531982212561235918661010152789872363771557177729780237000597662260814299588926391735311274844917770445508269857814337711749116150188246040615624937945586175013185050776010472566579110400980779836837842489967168491255936173230691469779284205422730341046082915456510476637866815535231670382373009642423252293269878408954213824439700730915779975136234240713123178732509110447599570156237809669333995029238894686647195777834790031683787199539924156088696562007530312243374151428838018117911355594521957406301992701832182914168812247362823628237055893469522512337610402459575455258273069712456697759612136247805057291504390271873991668843436905128297565058834312845562990963148922094745883208505908889569339348488073258770423018355428213959351412023267073913980755295921143819668270364636871792634316803478195162273975579635042435787059999294070072966458756284675622015684358844076660226863357803187031829543975058817076392311598206699042584257801193876707444797944512870270285779065786339643503563746285851309958125037111677462702969009565752063794517308039165255526491804639033491061970259889794708509001220749639663020782074600814301454739910087663465003516371287942709506640907318607210489647177467717915009528278674793275104119950653626714572143296105334475949593283393004237431362884747492253904067678032011048525310660248732956828147757181969187738165921026542742893347638473245125521408743879100252848684345606448243853288945057242191191188414137598280021650818976658108284654610901048845586691576214434696074628477532234544050149485528300880766200337765497346272643549322190737505434921069493317258634849246256169645528899156015601866513520355637574225714587493585153986713400848230154620239221038924023821193095359514208647226196907712700687438093522823800294377667171598150578286370079706685589827969383563750689228644526583109563672970868903412224059096872192548260454572787803798956534991762188276203314454342118426930172652018289066783578165341182674994966188038046271875913752867779596528235146230428383511782931287323986910379134992457373381065034051601359685702938456842585218780087233337550026295007500106208039965164848172672721937143449924549719948654693700407572072024885834710667380788019800255318442640384146880999261593916410209545043283519340030566272002073859640967746954410382884254755769216907295065343767999552815576700537714696567965703784805547830621795265014866562411504794944167955681603728417764607052596858681493625932130912892167181434423557301056792699479501284269516122341383435591703240541547071625615869515573583589445099256439881595433456876153513338108948631289707553699946634478045478990037362218313017413979328192670893744377115965127193522110777616313174984486480429602950302135481997784388965604781788167119596942547995621129988199716404034807874344867106594754621895465747253110212946241350234754432061882100109698669426172800946068980686543074049159039727972047369771393179766825814341026939191280245920448051954585568663780325040683223179904635682454137785031255320996984410644838535818170272512904466694651951375167166407370886083158916388271557152839458147222538598993740221691540775837460311452130335377519247248157306137130079453690794717832968879671894006489403939676279400544958354381520235557591770479484126554137130518661991494699932695192569973160006445962917805204042510591435872028141230394049255014507142192135033760874757590892654115932714740271086025665422242375942122236475659084676659005732951172488852035662749380698847073866008657464497582003485652336400419950892953083153892896180306050216536760222008014184980169706797948522136536153185937571530803103702389495194419481543002090865309875369000424930508110910274988330814357391547861037410045006279530090001085411061202225572082013613640338052601489802861329777110051279894551854152078163252287617201734283792554222420325520971683233191156338078029028251924429435101670247246868012467249237607596795424528529470264079728269070736210594347665994617179867875741783982079997479827365384456852099990502215390540801427353865767899872015876522061993644580598308469692415131640569836664412719501933297254629411172433442089992343789923934651522726266145077855244095403187485486888126193863592247560056877980954501121161765518322776526754455937767416821153755714816317447097341350897338887515790832137682543833543500923348258608373038672807405003830157310828790939072800254250853387967779097096224511292786790254053606139165298646114284391216525654399128267552341184685719140423374892322555162258570920645683379867738106883540621859526897325003256870728721443169459304148296762068379188701050822149432540445781567193320376618764200245747258024954107912688172584062383019084544865204320609483456976337179905033389760511718970516632489990911449289535236683063753588430386213877815785968080128778487878678012043236002113411245636463088751036679479707497337633312378409309996464087446092247839634930008057592575728184723469142652705784058774493166920213294226053287785403122159724677442895118492275484675599212591333364300699814277490933668352488115631454553050726551903335590828843672172217792331018351157624231457235102291964406071810657706535082909773248930925191036243196205547428636689473345174773335047052093635804037165570360291257065465828275193410671941351217775142962478535948355570047493737689951211458036273234781186636728727125112934670133738147768526304717169139815563194314475249843801681869697373662421998931551256634330868118647302315094706562497907834269965759952473056187462912474371791660973898508532546271874239695333571735334213236533669841018988266923817235180089860878376092215229651463764934970045705803507869980990678180267996479483674492792803700254720932902377402279549137710978818344596372204708291713505641406932281043521107993029053656664015561056548622211748350781316899887123924377270229916226608337240849595664684895280881839312545692031665085937072358344319503157737731124744347705691488900924080801455951112532313978876932790055166265207025309021585290705515888920095615610237776033054685475273536213906460635102981726827968978579773206284451341127676006292489043545550988601951122107173911023902296463310736744781133585856595990695480243403777372652358017223396571090739898761350311034081976885229276339240363453791366359454034545053309834925119490673637616823501940431861267490313242571598515803718972062672588936835286894212240376550097329980829706655764589460186270209360889264400934124575614616733322858234505263398616420380703653958983636670854064433431530565907946363637156170268185851565718401980081687448972680028450324732933689239966584560506333532666406091687353197985534895677440160117907527815183620175095888551679051576082049550098126154416529458314460442403970133204002579084461802333724468254121064642853389821958283201598358684672762256246956618470898924537442447388826731994258929896452466834929383286184963170432870309908195310494477715337521053367913300317196272895298691240862327405920765045389272171962752515536906666198448771633103389567794872537774769073251512762266500304103088360327384313600196233787909690200279464967718953340505649077740529135551493101429879855984386230128396439084247726764373903625306479829633793360846176066845058183004174310602486961568989952430837899653436430985901942125991488877041716025714684173514474042298770925429759152879765988704642470307957152818518899096354693410261093128799274253191968729440698328317541629928127382542194444018620760939953456435925440940412900548540080218241805507026390107762600387396477509159713786118553982869966118440092034276724891145185871522187085544178469143541456455997504157866326988904814478445979624766422917295188957181906025128375190825407886879895486760288314850824731779268965658456823436981492369264357252652789422993539901604629042482878980084898956535444013232667773945115038737117468194648702466087907955363162131863402794648943667635827879929542031290841044567840803085455105702012837249409592200159374676287940400270216004732152068836111178270783835878253230322162930751025449235703552906253307918741074396306766545321932794012242113698547992120151286731504379344389004828182243451587909998161555393769354881669934696826801775341907324908794179099849845502767444969727168046902696074252888187194516394885320424928438107810099310294119389395669590924392500364910714156312721772833261760623421507762992323223705104716643089356525609755443237777633870234841492356481856501029027420241418467119915455336786146636963586875670062919809911884711021131201539710442734105887792380101266279066003395855924964924660162284143722925888262756426841355692578077422806912470358437942467386932486130694808930561163045599496413112310524332030323533501452372999630214975762467479072196458807513588474275820193293509862897464667479739115946379517186107406021776027919555224123926417807588428850860575447324369084822219887105455975041789898080490462905305253444794937758068695425067999803627862326623816684010596757738073429175411955565499436738896329947013662085657689812694936359353303389697715888304371324973842336348891054474291193925593598405580680786042835009406426998873232261454969274212797032070289208322411920097420357290799718500344695712355224707402798227785548952581916574318583502505403998336108292983416744012290888935766851290599714212949510266552989019114620944311030137471773836510267964771908268005591693977460095576162536228627608036133304098415973348300201050082432841191870740372704835690885774981761640734603620749311346060536394828586458719906817461150630114674098769904324942878773022140965868869982826952682701855089834222489625897512018186827157964271269708999356509654271950656936460589681747537326691990536546060314986891946558668344718094618638125542602889095742208873966025273560544782434629616004369338090366955427636328434585498450517936669780594179700540026724614363604869683138622389279166629051212011402915918797381409230739841776051253478950325597884912593608878897352875515994139297777823770431685720950049198080264304485275227032404685670557179262150780522887460229565157215036675310295885724048557196345255949553020326357434583038600203816699311672840251977242973335862654530653523235479966104155054968874570807606222815482326417786329146450065793937150885911444934488404577385185253924164951939491664967276110828509488725057528226084590253432057030934679099551389908900181925372594681087951667663721413636154265603310612473404855588088860461282764875598420123884842854148756425107684657980062171161352946751462470102048038200341766495021431491458669561348775658432938947761431316035226443267053514901783071210662743663198092513503245114644977187928127047398498901063772936624644224942039197553867506284966788559404914482534239265474606478608172933827124745107510596606569587373857322786040320571234399295391878765320547493301854023380853617019266102368058866678520942312415249048716550160526260669424090485059387630459211123599132700369139621830681514136372136596934365168389695863805662942301370475132304535271575534996579367577932865554701224658920008646285095665296150956909960837901326822877458579246566396839780362821050753416570728753126624813928951110854826942426933583968906046533734335583459915560523512649383654148124689682005120752403576552199496774966950197734711719910219066954888103086711967222262372404273581600854351932011897376240726833587728776073995918011621264137307757231930597478127193894179467240316899885094993538584824140276941494210714222394027483435539472303375016205191612535342580308542149975962379273164639728124468778245927142314207397990446211371376272540880075305350037799859692835327946578504161427011567078245022922081526258236714375080230524844465372746629084510166555953583452366725077790360475563102657356282184302933192426991723185363701041281974612672996088818959035377104986936419041796143987729051319324190958434037731505733139864550925339063641209567372621611338760743257427735698804345554331137990160046796209432884925647688317707176670038583771267360492531610439325377039968390205794903914150496146899115907240038089875284109829398552191174813695836902012852378649581926633045617818242137418899861772874711718204606554218783684662668917323430655899288656814901041850884524719233947010769528209211870959959303901552081285347494562464695018414033070854449796023571536197935152633496449495639143304751886897907957794524795340567548213974432480949035900672581281468671848164830013318439161430300207762960585945538666910590408650209538304879784699844203192497684966682348123428049222234837169691719108254748387174201232040893432460930908744347099954229569745934556716049122675823596225197842276175752083020148905113397523844781383441975366245630127504097694648939471150220989757777419698658420932863608788918045318112318261826372258248821108616576670212513623525343261660282698789140911544267567468997304742803154108436915214950796048843643498163486414064650666639057713797766038120927660752369270324342140171086448707450609875244330765260698277180488457831868981562607882633434130427552887354805339968871941505636157719180255998831085406260377837203299966423435448849810114859162370150593483389411825932302484682269671896143092189089557214251072406949418431932789729215210727564854356692574885979061410934204807200154423246405683284882162253374678226851031170596420661852895537908395995378305784331937151292209491189179462412536675602442886129538721694567283653705604771274826661348779234128259064370269912558478615954938113449433997229243428745320240789146366527631702044765249479587770887485286040475892610191395966145185779448977264043122569629386813565635786993033144441112920501857880853002409345376493048294613195453550899371581846871753643293706974478223617718550148306124193415504682609224518714606333552816100731265903960895256147625408045810484956585170461211284113381305003745208150934028432553056761689818450946157572327484555495752551043428210043817475301355122283888524096106236653811737746257528526811982696774527904632220530745781664103600008749912994869934152689929752160097308188742332551994952317844212430168134987865613973670245215785616405929498531827179940042059804720960723799265383198971673880824189236967011776046091531796851843956769321597632243261184859608435350124661933762398604302390210201293243296819377719216740879778537493368624039630679511420580262709619606848077944362255428704287255317863352318789117283990216808765936829409467179618807230590389673633027959617371710663078892321924195026420480968877696575945621252333847891041172785962967775911599866318993463481526003299224296734952422890515593871540165930610470819804207727795783312372761593014228944287040022240169841588832737747756462735978910234883285364474022052321354377935788316823235413983613154432994426862291493947917007530251109940056282240801252604064493560814840628150615413100426545244986931560264472079598954144895405938469035998014028219099954927536900983451040193003574954977472254981491528068855111805273861315628463132151132485858799067588819503289455123571137546113070830934440789970427555927279930673531392892975582601788621694226748966755430089107705762491772064492654485164555039658222603593210081769529221781609115688036410288130952711014622451822249505510822221483370590587194030277472393483083860212843413783968577120589801051967785767318113398235955887201471766465984293306317536577553410914281970923277041347156161337621281273131370837300167124821189915324202494622732547459889334785045352714499067911931458001922803376373253638216560306142786241579482341979182969238858021144708090251948407650648669480767978353050425627538493057813187500260912508068262178242335584525155082824015827254190187890819483540222627580357550967384240106656337862108257469509370541518574117377066183623272256845114655168077994905191560126911856886659464529179281652021170551973876340148438749803834762023960774035972160310233185372508822341579566949959162086969664997943891718685256292882820058929735018514969214687347120537256931486701035503543314163865074713446900208744876486264855756337678117571342515062971350059153260614190654968985594099678713287858024580108175899678399451660710594519995120514451854601439028872377610035583095031542152667102014611173171455295623310640804100839025210002258470319514970414678854333832764790425096228796400549905352850498122418001213329699964995801543552518184914041915155361992755182348283785425479016459467855555902997240878633605581361438716221984037326625397050851828079652830198371775565628728328713005443614281256438236509201240577772621361390125995599795951685540059061894794133386701205808376877992560904558554909706890901841086836885165006971535650865208866490753070155310346969256251975766579449136980149923521126219691283360986991452411723466330688413648202910825520977761887778175900988659912067898516430389057848322876138976752868065832421786299855394583777626668400619183950773844422870818086476450505995841572848029298360323309476658180987590364359385049615545698154756447507384118579172362233382766280313169074043554045324477896739053838982182221158957834229752423742461156651266937834113954699464182157449330359226101150825982907291417111847564371174060834662118257306676239294151990464304623613256300955910957438518165734648469592617620241229939472980546068979770941631942193648408273596816525810766338725607171506818188892005590744754758637087923220366115973510833844620151637751713103051625130302904560280742344934971042651799112458659027235768513097041973223499138227743271944669806666116737787367066041445716375779072689981571721419734526805464626909804116564889486685993211176679840729363996750558370379763932205638081283029812952114047969671537076274734506364668660207431621965595329991985329420177104472531374004923029441458364379486313966987113934286143609390773032671506862471754499852025942576505604764994756730765421633848651917290675551898933445261322525930648299301593970974246542225737836918632834733454270065123738873322434867084460310059152962149542197535731543998048962359606938037998689383752074181987891020945079828694503407833633622212369960607204410902461590262069605395159102023595347200102281666679869423158288676388862075582505254242032351327756311494271945034692542633746981616255944660232958813829410912650230308316092718635788425139866349728223308488427482083701814576881486925362032261555103677176312813641928733994414625042517857786620276314665292773510393214508596415010128721947372775677156681554803717206275906673613392024426986173864505182036758613125224670909621568461772044182332959015079044794617445870608649809973682458447396681635571570459006073721263808470607138351809026077990363346547324205323060758163610742030805638067892339052632557814866892694340332963389247687954505556090884191755607235209981394771441341551097485793302596027054075187339207483474919543212164538002010629204570243242391236374717884615636356111350182842837024415386359337667518442436498709266046919134331611655127946710012232455202193601007544358200730506329708565959732697034357782928178653523555544305357451622671530135795176062163035902838772318619984052355792781890798534225860035276473903700798605200529226061785680226938071141872943501599113486973675588721143617211519368484949392110531185715925067307060376954753595517485189654050021483688447877687150970772197286165914756978589530716291303566060966470263936033351418668586932315982042933341569625004592545340876461347468013664129580913328927073613233738670711402777852031841687882689863836199180170864264006896188597861897217751705008962165231416695891641369945361023186747786266352802852678184119144440834920688377972884160611104396745408698524408238889562168237419757369048705491997461102691370254241916384611697352988376099580421424892997268097558499345432457544982396515025324910638549975951197192159450506066484341855938198282393592233042591353939638063942556640900468738599883007321534976600893219989694833523625974878205058903973076787337926577101942116365282319197654917796597894620085123912244961061938743436999126562236891491986929431866162384386672230133082854715367146093738563975466449557983519997869364601290295354152309696077465120075697892908619549792534913151083367040998074725952839321342988596366335443515000078337612329471336678949720440396224279225655577221953072108799202233068935185624003661548678597364674497781370580484538169871913006120744827275766292476833419940642077287590474482375302640791292590792501138981859516227484677477121270134871458758129543296770968480851526144980136455944810855972848625936567206865768605017342377683528618400923029445615430026438163159119694806839202938979864372947215858454861900970274875101620971000102052376904731746587299648962679466613726902624055173640511597818481221005207181809774949033406355596772942599332725008842782766033632401613749108613434755388627092927072250738569616990039315864756928905461037570802050205344246895566136725298889446510797010631100945745300072031830572749746284618806101626572814584095830590866029875822576919412867236446297150495610246658921493444846245458641648399693434709484700515144557673262726389642816588425026336176987092947372867065930213280276890499653449817947135933853784492141540576828590401695914088714872166567833513675707241376375522927112943489345814228854304346783152342001369847653666707838531685757506147878690879400995479801528953522057444017129974531741525905893325412964620793938058664423262409809352600661614154862350841047227436200779158729539400976360401851086247527063961029162207417766697044448963382164695313086263332203480595728174702812915959010919850230566841137731363643321385760571632410767575993853688905342402435586337330440925216693514090375639070629250010157208372063997118218461029331798649806712457757138788752491820836705021568550223767907801606060696147221417569769347025188851234517425218252900077884790375507054739871461995331510660156719328581577738207174613999634437066294681654868141448981567129385461899636781976885912842717567481535284084023533855458377159370515862896329838743083144808325016956863054581501525397668767225217713629896900560836425580451102847726470004630797512378304611789889716199896598191432888994290154909278042673391536938895195151781657801857517721961476642445337786886663401311920936550795595309859205897262047678565016793274474281661945115508278369088010561521705028012716214311456649542156334333640196001317619008373568248477459519407252255135597959194658536158984096696380617510749601481854564677647654817516929680761730425460448816512233124559203419379976882102855841867147432707643587789337296946178412990471105350669895681128465541883017511849555363912346364513077861165699439086020370693556869567508890529007468077527707161923850133991928290446945580730234879135885373003068030923173920292198171179519758907881022101528270384936773911056356466793494206565316915693323896491839653317907877362441315805750845784524788816957825143473364052191676364935289501840144713838482421040116216678113402409468998179906305683849523237604095105113508782135292522714246261514787147652078008793010514735279447457416601578194819548553415153729993696943810734607613046874974861394188535404792686188620302735079882045469553445278782170617295098272646850760024779970094012409651005090313289217797450452910524437892882131071447645436916413960933621619697790327619925541118549271085648089812738074337120485499700191918563183958815228135606607863028925445218845146442978196134872427744552285703682708221496506085641243452186780891828558542743569205104299734674753368935260061567101432372139779298102434725157317691914653575758774770916950501413621257474047058766016793721676063859348907753027181544844993266752203235022655286779141142464558503094120753193382793419120135451635963504052597947623918114634589609723043734229724737201353119595001803456087171449350130264861585403801967295076564499660881734416411894807845722942556829718849174473590816996980422902671633319023251529506286534933297230523154832443298170025530446286494575324309584974124257081484085846502673550202951386044302738384929566846116179792939182509353208416604303798949733914777073322740977118727691055428183307909036715427046342719919352526140614059272430081996445052875555213587248664722235359059778919944032226258042569769557836358378884561189827642465446681400438686185660539574485058748525587551969599439985918551249574349071877497588538155997797782056171021166768759037342649812858777448002944802534212449660601432776400313303637318263572841793006679720516288159184811253309593772595510401012202755609833872710629274419476182729017809839284231689214649033163628531628750771152265973042459880167939946988594434174306324306012832726508212596855886769648358388562979503908175366793228019530489573171934376783143309099500671398301715154768652915339907129253781335063807610560229508038655659139211632907729191463969454827702927313634373836100170282643825925507083842163189341360390347962943548790768043846897272931531244937258756494233390119910052336812647307686642553472110397891267335521367916354258000317791813610022577980458157725022495906197629023333630188461920132286612946670075818221311147173806952364451535830384549929953695145998662420417474973795948611803526348883784068881350032113098313468552433577028826782138062169145680882067898650824657302430832092148365832417977973367521222516761703687184650134905962593638216860517333297022054238247241673975450634508027794122928944965623727198473104634896870426226266276384190763044445889369018200949946645301833016030871187130267722791880334011326932465224701968051020144085616538057802753396403760203598586008913305711419760476345527289198790745818435592076920863584054456100890068954250433776859753059751840792263522360999593074790535209182062196766444087420189591955458158526789124497273462210313877189046325839597081744112969230551179641418582246766630366418051531661537413771973371616899953678854140360993424816840082537969868705591221461165952594643665749042645227776532259599445656944526918607525971785179580123342246641663460915933668726284805897636206580474933386438903683000742636029358216118799118734495173876789301828163247311709980120759999502931894303122230909404377665867007886683456441450962095797830668845627929619097806276218822045425577832156050289828586108809673219523094514319687098881846025671424422966053337965507850698399973951005809536256715678013790142028310375485465961355113624865651072690422731604121017279777353855698066374284522696465180700862090634940667731653428687252971126840400749548386440192257777983694587152580772230895121851345897906791403206859000521141433181711412877420113674961512017069859810895719189407733936934039623429744165602488752732110393159928771768507080941269143144815943057011153978103584628136179025273233175846305781911557996521556571865636027658895904640752736209005314430227467053134700686108747169638454856040309145766563706523496520867855616372094280128108440449946584226091121856713564690632289291063446997165066078955739903203619023628324978009978623240608177231150588750613122171431265210741867263799772925433790824789440800396162114241054164466716442906359298639160555743038735049361912705714575683050219485645583791091064498983216465507202465933720515333400877374941864437206074983830094068110719753665713403522640870974636027306565974595812149445954317129897514901595619417370323312117333212645300795596602433449133620942225646223648951151832962990106061630904239979090248573573580092861751211102027725554048461014736547292396046490515104263443467469734679379085377536121616985664301124805135370555685479625196847389139753880520451500460362935582291921413223984355070505080954399974074638151866725949125054877826721949946667775955032393458984574421056900460355144779677845667861837416292770844619003387436820165683488895355700536796854622809343137958610315719368256769410986605548129172335689353982157849542673279477094160975453956652943264228846755235962980402023763807401267878921400871745465776474162921549901641563538625815186998125947045453255674763586910386257262580744192452594901410932222436110760236074554883223748871461758484105595543099960347076639452831660368860414677841202391014940702606891356699808779765748013690253597318901693649136162406452761988097022644095588223807223819968463276630367877653954653310037490659726095007960041953566273542550346115304031168982105678765879306931651732984798043948468974828592262290597490899265670059471792427374541942256404805547179583279063135854402416147440543370905031215409610913113486033954550663798080932822440439210595807943375689816123011349912345850639338614061880099811633656879706864387828757739169914091300153130309458398140917095331015441314162326601281807590213606826565330265321626195193987756660054844440645162349874766002394356390424695068608601030704852868447163072059665295362683750063984093622438596982067468684519840948410997784768223309966249183224263703829782270740414034940095362569490341558099388565187172171310570319836493895766477507506115492290875450962662420644984333917482515940024315614287041934488752023027002038178329034012090086081923235503937096875314120317590376674870001008053536438076324068460738023838340700049196319012078811453312398964785528361694198522843588661553523375923055374414054136355347590036186440856389584298211787056467264811142899018740771887368374528656811635721944905003707309096609481490650952208445474179125055479775452673289572741123823200508588481395532364211147591398982421539372867191825619879628441567518261285802314590873925349837935789325163174734235440616315779702143530068917531611882843207956326627130626699172171473625019054426070910370287160987879791594603477191282972009752955082001753789253635984693404860665438437196789997574129574297535517163610685422443896559051117672613945923621531236212152999667168640977978157144107108880585773991790007002100954612928813507858420981215895175157314704009824920656297236638944999964008764085874689690883050385577004404002446591186896253582186473199833452103147721252271295410422455919868854562438852475766726703261913943395493856253745334361628924393285268424375166112520071548501973482321598516035238963398176992943671864181112690626986196971833955620876179185233052967424076250746981999383203759581964776288808292332506689710316283566420683474089034550285317254448921976159407895845023432018683523753145831981589393622088455860205106303080124175205795286525719358887570296365363375761779744918850269949729359432580930138616960484700909264856503703529294314053459040955786832648516777786680772638343991497085994954091950083585074893910014263760392689265987351875769128173966978181093594099814999027246213224699370536887254127831085269471159596846677512813390700019193491974108812274194653849327830361482096473214605447864287405951003920294013149163920448925647014450690367494775686837269805692289508293115021552610178531313357157687410308804653473712328065342560618146526271110124161255678219632756609241072459327574297910772943739166126843870251237850092185500876629785373230285859455125317143829313195668064542490190259682855769237624552451012473441928642433504828226972513063287980099107808272793124809951693987734425836101349106094219932778598825103834204164687102536282296993293655851583956271204645624882284978330595498110691161437108254217870239107977396474559468251633785530963436759034440193571160161490541541649508259515455437651677721452426717040255903990339889740772642861276817537367871900636130714916943361996563609155010042392221632323916407382157092063924475735043373307572106335879965511396408568204992565833297685341312039360465237144742185625644074203573307226537333337754229290499537047092461903279751375898779453994977794340695167669173582092934394969469320161386411457287845215290186568090913461962532521013376807521989621920178458551297668703576320914958269142029688708557082540175321923556230609777032556732772204344303525609001644387386730873021965278225445884431847883652395980712766922266782539227627794148434987535715607535838997808953291557587805506051111164675505869271382981317053123935704615700527562208505829129152797205979789208744367023374994836155959270092980589458456456690658085778173250417411739217558467993121041024938000894737890710350371919752024452101646972910726840410695469072747905458966506446316588585105661570423432772000521003173112525770698114800592200479704725977675615383215009242816760253724799769842416585499440828345007877275793609609798042072207140234643611166586110529781619509142659019319220687600844825318305860542871549483755379879446199380919398408974582928643602713415333346698623407861376719912528029330655145977944981383489537883785459853895514745880639912993302695945764572588394894913407126835369093746795025222477755319258691042231715579502355511133635394010359162903004844742590629263287313650868214205055755304555100348499211474291552680183004119502304024269730780633215715619259067327668352128289023887596784449185262146824042320358277262934161032533655809567552967756660759783160096467697323069882331467676971175195557423222186744350913221581489920182467095320106628621051717744229384856751053221370305667586115580225084979644868056835073404846068467672875967296596734279811255708268475852889428795972196023626672439037241643731630415907521571881964238948535617878266477917647946018239337955700846908883016159673207324314119161467495830291546982021233231589480328484553386794579389156967586421505564698086917824029097789729520698108717781082497660965947650626338441918632814152101973085101747876554712623011298024538124584431060267800517445759542786539514405938023036774006662288944190845565120517488945224376711047036485957899245802395721174331722953458298243595010952031483310207958885752532301638724318135863231334144438674604790862109906698422233017734110492607136919612657391188050736658063281275321494070825233546678187513585195388105877244764816608441477428080996818530754849216023187541099379528001534138059363854188912326759530995607277054978466205475138576974831714580861408775286837651168599730011865391928218577590682121802540050577765630422156230101940869689491687775464448141420034227600369413187591164256455445034202514404689334633838114387550237521989450948911608315643654929952406376101094526657705992859782841056393717178843347600910032558731146929483588250404946382601229156076861362210023559447242790410441041947448093530011381391123226284765772542368129896180785818675840674647897852338443376410815795805400358185324813413722387490620806180508771517386943584461696036699114077474690390217922025791985400346187310519166078862309108364732989746080159353966732839248762307187313391122867466593738825948096758319314336434814195259143450564044148182832442077295849563375631841427117649994393513146033316973316164781207429573832758911192240555450966580242457167416429707170999790307575273897688387412390719671409571812233160695182193082469112497431302121980810204371853007885023065150652280911860972915744154249233901759979780805562976541490248642205192745133177644150674596186921386143830759750178148759398280255549176677517833656277639009027425384497380079936360871538920173841612473879245131080471621030086971024639544064399416941196925455824324092433353811928947354487918958919853694634561239170982367267891005127156729085200049840918836863130665103403371707281375661716086542395901337056804565768344825650523375874210500931097658247686732785578383698876501661019686600284879462726002594827508427677140003854679610561810668544612892128030811094280661278512495037309835344343862312486769295370246684986458695092381271842578586419480319151587869518374345597448122662081491496958638931671117351856526044538044380315498754586834412600999024069643392780040287948843170873585996665010855456871187716658161331086357398711672075708540112131014434856091737370471702737282467731720178466043069253567039393731515034981259523003235677282542353558995079345870407055284563009681426245884796143315633864764595181318263454825476874656888446539512062115760241969859565592265985721502985777091829664925364413080841345358120878625543072693774611089829832974376366268421283659200259791044106685715659175372577160586552059203568477724300222026231271767441766902165380112461637228999205329052455824306172222582131769805381690129153061758703152840096398228290572091108370059478301678139071800209128398376944291658855466765269594132348065030094077721940368596852323475003040190761984466241744219060964772378362577493421063028408203890518089789724671852487279892323036254801869943900668456448607834881171705177750648661722544721929926107144895059874472310973163318852405283474175389045311343449147082677428566210076031478991929424018282405330677186086112794261551929618059731431792832653812609341329752822122040124201462130451261540369820268102891271277659265792805587979864875301428791445474832752379975380613517413850678805971538952412700201871421965763276039056832561347375753679218022878596310711340303235192889751341126104382218098305170898547286209859721050716035612224664038056838562253964291768859745728081741835655498881236965481094232311193901816089810932544625921174647322505351493978407130005222881671565774342328459927423341845907360784394156244530621066418939975780611092991700371764989597658318295175173908906342295348353934713259210679254352431600753891325552570300765886481573931289907480678733855702898654552299634861173613256081010931879423561832469595538780482664056791238294225943169703303796587084199757000281251412553227609502079727833659858068296982150837292747070067998462095721260904838268807198347676008436201737542772417060505959824155191635118913922449389204940156223897265619395494393311325500363469623658678433843230948214554327929229196048993104338540682078728457635729501132230231172493737275543672542499125880984294637684761690956312502344458005440409151220503805579268831253370849364091854859733896669242939482341683295362666387105414919974784181012878491857738429192080706446966435247072418373593884598934725539327618414171768797892985531646706739698274019657286679257237854082313662528748432138520398442663471504151119471471604843219765525432305421257113436186569413025375779021528969473431137917637709960773014439506331320626608345866617971917677426814945054962792574702334856461891644299070126442348101554547953080286817382245163758386572206993910431460525652579474539164794021617605930221735878679631751048238790123428791331528212737068021424938125742790273198924844930651373109169122911414196267596544127492252156057799437890517966439048398838015251756849687177428565332773011613476815437072031659043320977777823295429535686538052425509842361928579503505693540844815155455023835830903998939518461228799342542973283622226818803455801912495688412341722220473319792798651120819760863500300740029689284924911937315410700210569936017299507541258609007582049826208310327594533055879009981528153387174175752858611654817365405191845861782714483782346867269837569201554263882094290285295593854493096820030511657369902592799438656392165142606719414051097806817837764834861659820362317058819713071072707532885849652560805991068643884570976905293367734022314513907995104238194546287442603963371036252071477008418842578482061195509510750846236743896632891624489872489623671798175225723643940396831031198615228025629662773000621819290982185008991379282486255347711484993425829087078668247917222134375485665867228524867128558470502657521948579894078689228217288654819039138375183186836902824423798109414557151399161757024819089977141665136134087808080820097545424060830662616313622433921538501543713592413121788011183965440806762610736073475195643233384645097898507283745990714201718091871581973829569837507806340831027113540038606819035772184613306427016183719772491519085939105369884406130189044580581967139048915772088518075136973026142406393799123422303358582591839822632318512151395753154873987725346830044086237040145090762517148659784252641758391143527098036534948130817012447063371405219702230947409501868576295941252392562240211230332838913169577002488536333934648640182238011102761502825800441887266087903146251892341908582201816630208992135359424942441946869972868327974486803331950497973427361647302779947895430838610962629574517236955762815056836685433963255048363595785920375479892283957146403563428106021486299298877377981199063542568132600494429505965962526304154945221004389572052312779351868186167056718878464914141396213597453587480766428480082218532783557548218496096574142703697969425364933537428560817242459141588583896503104208308682474780517105528281691693871117445247394202545293694267702350111945885489226518721895474539469277705526662951801172417275118051376889694359281020401569806574450918113950333043835799239473042713191897667060985557504311794658736556394848313539340544752488394029516197616232199935610030785650876559101912176737591838790879521892212079155291830324155478626664819155386387866562660372452528845872957758331074383426072868389611846091487071377810884498238789664948752131198898414820139085470571394119738897260592185562727778591899333956667326368977377002228465119429564246289131663624571261860387257584048712211531000561081375169790005535263155975213581139837378193667476267855038034596761908495984114495149942591011430812842046363369429354910975273034621560915865032849328833612637727745488423285956529747387853442075050617733525428512007821601679779908177620974184407434736606495215908520000649217562709259105695883218343828519133417297294393529636980181669226419177678613314290667801421406090607600725460410164499674736935153250992338777310829175436970291953673490251877905646391708536979428946608928563585870279160619166216057961180705827755076991099128982929083585250538305755476093234572047885027220544232303789652099576692166690763978009369366243077993963848685304615202683282724221811464830189430436108361590248659095384448412539253128732591105103529642431764189544048179401935147914351226558940320317634565592125633756495208739044557560637037520561380693633967805924887767219254604290374776739094808204527091544388000761745519325335731717227859942385173971798301300411520268555750779872238076160461592952531704962752115826642931662038616340334689563250448286142965111153336360856014506733428742949134834261276255891104141109843609058424001341198423647269027183834098727243628108568698292684517715042304602635093327723580715922246379909534179975442781968956341010248622222698070814227685898636349752793579683476751318009441879060998939661266372303927510446725602304461187052165819977068549001599775043650101919612126302343634287891799592018654136365998033252461583403118744661596254244669113982742969605712129337158524504441091276206699693692556792500734095613383667927379572084419744051853801846071060239324655129481895188990567391623194999343263773973366955600006202269167543114724834628594195640390934485107073721883882046347860054109787393897906498037412019497666502699784323784554614259220377939533632010239907354034252565982971042652865926681637376333750239756634652736716898755432988370669864010134106733123133566953423550172138785977094310247807290255610625364930754923189176133474910451404244929604863516778568534280129695026640810133218227973769209486602195412770695876877489134505776373895461478247057427066597590429716232807238739340253486312618876024626068445946243500930551867123471825666119659991243973971782521572803322621809520223850578168670278296319218763255788095528386890931224440240019682541015064422059429150002116290924801555325206026564129901434462460179159102089366180669696280465092595584281186415424656847473038189598148073136859573260988086134108828473697126884541775893618096699261740221005248579796754275252961510439608233688990834588056773794062365246166675567003958058550665873159205549965181295926071637950959902034061858490693273344367000999042683479751876853605202141776776227697647872505821940322067864764138682882904337930122974058535774189556114685778222718611442121989575458710006819042084625227776660993912936721394431248944586816139979140561454978212464222698337839369846313037318335875510600948407549442877803071729176119834073393225624120682698483458879044431129982821626184571831352786352427853228764444947448807826806442670045869945402445712550991640071279632671726368371733939826947939609061914385636677384257580176330817061441967335821377953994328253505891080103259965265194808464787503594784522779130986677121637375749866892736309201627542037199643125632596280325248592200259270244683914770372650133486495992227592508404804901720707333373720707701678670616267362007332957958508886790859350794615444313147675012371683864167672550223924156293377275926079142577849716602834242104933732127866472936995700134103547594866174855785756722072820665529367218614455517941220968604561394452912611454314605365759375582592643921797148296773425448406004371174963066243989804139953549850355330028366104736537860912275631046276337634691036099419229492536683241323065313343054987109773919452811856514765261908296672140309941301559241175856368503621139352718742033409456654512902419165963501813694291362011404639559919013207530435683228161447211151256844513085614250221421450287974376339264690596672999908116499972125575626046931634725089367961276626621486904493590158948520565802324131762105384328226827833689540401581581630955645774948644218820677336270778101166453208192714187433954092329230279473002421774201872799936552616181340856578401338895552424690646667960312387133277318300913996933936626529482812512440107417473687664561289088346306923054614422996142213424938675970750188947075275730975151528203695691907780537563850379217815452445071307492405303004012743422314832494661676051026915000546350545323477114404911682808888769746284987948345982967779421737456294941948660687384430059202065031547540797288681541523763863680195008143601041251658040627471591966206792215130790071405595758655690791802200409558805634026221710434200897042828416126513281951499289975774802545323165394088264288548121815896041355355498871407352361491667221360634779640697810775202051510412598217299883091297945617160641839529288063140933258278406770683635825142658876618358671552662181102321767134826592846764473135638917961769227344531553467644258865972444802827915627724407335663005447175053769627322826415103353620377747778657145788004895174371327929949616331644167724334178210159337960000192992402440389939838449612894236914260661365286852805593217733904050176573792089526533502924604202671399892404215955506269019062709681840334512432795347471620672322183858165874673422750186676301272329077708768569661251748963379757512765825854754494368157614705431134100354667151304780779629243059023296702203386650258896785087431264419520710808077852844120658755269809856922383343369735192930127997810944274261725961178063934407733578740539384292092024929064438294257828758853907773406259778950375285677055939417419861081686766515603212967387796283496662626444400141623677031501763482669493276882098715737596986190922588451351481101126308662233894531525223887807696974873035895859997874940625677796999113907127057902367089100738377075698654678559108505987742323485546722625752898057900116252853275375022719842434972297765883607424313437762270186937562849931041721999638490881996977950420296175831953727491384916646667744522264123308917556669648401902820814473053014684145192336764914134178625925433189095624225361039866058388595995055778054832432257584261840502214910485095464060197699117803665807299898032383424403690441203963952488383226211964298319086318541411070261702000678539177039421473950459599502401136080922447498569918609351411284681534392034259010843345832660182470810103800904400719704896352642670163537004911944319898066465729377586311572272930901320384787714167066125539315999484739504357042735582795229335633139731355583161924490222028971722707543526221673428561409472701993886223811232135147769146882060237390800189301375523214672544901778403884642109321884013742140810709004238730975064384550447302021392452130822113526534005079974461558263233251467099509544532014882556902955823780232296166352903763036055572541466214379254170329005580412839423274860211817920345022873758346019053222533141142156444068332793526744123450109620563762451578002511709106736892628859927837687245861142646298182833530981916884130765934303772393706347915030645886150888076835242996888874383960931779502760265360185174896952123799070764007876716216608905824017396182333313778116018387382352042234636665884150881313177550861039666304093197315713015576480249323908660241022708407103703292734281081924889712988204368478248962730393363859653560433620696317112657892065758545435217891936369774922959382838115005073918389678947263067616647990369342435202730371429534125988153161155970796741189989218504531172252725144691796770535005858964239412763007393420286224863722268621114710881141015130286198722189295846313716141808567510231202180897429951984304120112121321123259589797440443590169680704363507475500073428549219965282284499072889634215782620548237035210896512806332758151736059459015744205874341420565541364152871989052708570042133788108459268844830653181566202234023186321578395076878390247978872988897223334414075300997712602939468791177467211822023181116367519778407556244226984366479320964756223231354026807285215471466576251855060932067776347773337766538558527838869090077402053661052423513687773562919815559899976840838713554325916283470154786182078342255466936067666013205531472973962314169185274437522234664609570548356181110573888140251789263293206386374408706828564759744617643276868776636353291103073962540258992731803800550500614058805382926748403399773200395468980816142959918795894011015291116991408869627675749417727110889561628424762099227795523782081119597748207614250255168560851672976729314846502949314138077813819521844433908801175067846549277107058489363129926967209081429614308771038919379591886956438947798622697736529696157976035211147848840929909652142200325857372611303727501533295391528959102494213236047929700276869597399390540753128090748302229901476712621753961053946161995634492162368135787903061570790869075465297140417214219537890895114383854334623579825292109201859374254828936062318814669519164512794420655444251406206184495882786985765309026048527665136583268903940115158639904227700960692594176513515352691466537897213062531267882581587670464367480481845353563160293075882343011372230837194087444159347674867178180080999497746927334418896238206159719423845724476876665499700143246419725143392683101439282528431498527027391476389824945226169291220627090580925589291215823946407411734534726497275638550797026677140626065723821507463208208376717904098982910023510674671869026705849573234278019740309121837742272184523833801002969112982809220128560125912115133385171961862304149501935942933912669918902626997739511980330254636853373374258311112965763772139742631759603799429982632008033996685123418935889193313929060165787369976636092918064363997929693259156144022789218896092926829842423975309845830236949559076877872830195499024804329331027530551588845660662013500929423432514184844202144341849053134187996822920366966841041667539046598145649458718479722519930391319932462650999588276552299983949707738803926433999912511384487362179951801351837517705589719704884658222357020230850401530045146229652799457748272372306630954176998753120494096688625656444815883347193738933199450442423595414253584268702012432985432217479685769406782883711887504296929348846605701905262688523807067520873606038714894539202758237938987034504047640018099752723645560161138456035011118005164831238126493501742373814303955866526936027002811076098667714331016462807677075737898974007179997389481243098862402615464250658562628876552235526113734880026335932642607390261241028121990332138045508322759268038861049294042236901844690929283703941816083179639115834505983377236184526807055518461787016626650579532426107519007100288352205749298363556760805626447869665295287778160773171583805045695834545672138836423746380823296035199983320027017594480551439290082302495009071650971045829347114811791863759416049981996125587610117406128512463008521586842593154491566786372701921491925150372132453562798216593149565758134988557408266928800162558586945070769751225566207215408516409415876482230083164318894359273859898058702645510613376733262600112142895604927876575433298985228804211601946834511804678258843582548134864773474831848030824308772944661378420436431008749134844601565892797753509841358305474682940885775181481215255636137760898888986361273947087044735052690886969004541879847713469635995653287993624388724527164935916878148397834546423522359581794789479440411459978551690485983703607204039324680575400047276808977028485559254776893220817264529794229182475137273620258166081333547875945656861777768148923607337441611099093149625301261329973950172091266185167806577574840857495184723013646463306618885247715407011971263721630666585694951265286993450291229707731145007472393671571854840542126411576460797280314914990798342416080041723272268233400113139985711704283872598777308791447551355588655928676266669455383418068357366508061887108844457428167476264653741608410977476851711448501245253620218543989402499538904121708620377627334666843989007507510986186800795707180124330514982783857390913466563693611763094849407275380575536223329768271337269960507662332464587753652289084675448227881011909596940681696617690099651751021926225297522301510221205784192715495930604396295620860755179536824774608898254138451363015775537764813344314811486184441330450835963266202747519255897565457518619645647598264342354652568156310440642993300406282270996268713984705344494983566647527519673103842500322049277876089018210748911922680067237692896402954438122032964881513951748374475991015308094766511676812035884305500153158485466444570896887172846486523679414092230077292267244559995308000950390137679492569750685704203749428546617353143130250818676939373957751069723553379981018442277494156514051082395303083735793042997170911613426053127871320529917892986143595501906990872987940696472921795223497327329507308691271878218095427221605278330630103145662792154840547282452896839362479835265337909975641444009591393375492988466170721955590371399374444607779141538589324048450298746392329012287035574192196114015064213662063313847489017973368147702986683544154453400378970718865744508764670474911319516821816026881565551372435840492370575545647848188751629257706694795538126628712667667858774611699194129430294236739437164823778013787690737275024185963750245521432015308339087536733912736347146109948203174097666362091653746509949491469051529463744837975937341848808329071089278036923292472331962527800418867827158258754533691494516235828490407706943412144452750230842814197153814498701515065243117242342077154006967460143993898156748934556994245944763729803759609240689798391244894661023714101303349081096188659112277582044356958161956080151755678974662664743595091700389437365098810247475282556152519770973253451205229905979656676743260486588896316773728133229794105731056347728211863661221108069198556823225543464026869750451541522415405194913802961366989940192470041370277935948482606184241726707569572318032835152608345728852534962732484440755729005240501674417620864013500323295131957406010045122657438446016607791445069284505649386450467649196313725567803954463523140674371829470300091779948066779153528053010815829894887980661416733693945808066247871935304655596278371043121849429941611542089432484790994747547292020508391490359188275584843018283753713700501448361825569257903791630046012610275680762000335809852987684471186763479518440530835450178136319801560764267742030868635469346280390307589658900026684148521510362336740995088061323551716636477889763273489892398246836575821960992804293384011457765497702962560038883084225176535509602393454177602391162593815076711663334787507879278467787061675154208367989863134297175012912852795956500376527003657696671163917286381717933993994323773715362022245609751121234163405970863022980130251005846420460632873512043481788545812002271312209686526964045086363334456040290158992801941764047880983130580796372968134178040805462456469231923727888495138368631459844541539836665658622389462306084002153253641171078359028628479985934332080006509604070954240827132553720810015063853496948153901158738404847333085630881536886949063765105389253070317763479018946767767382579260790192712111352475092161999634420379039684099446906423335055576298502564197374086702626488723068585214493224263273641588267817241495459865866215515071142716788967096634563465109314639301168411933350138973677875760770359130296876379228291462634680790257110336349169499085326937513143674194077028917494825698252877525676447662790432536778481809947477309700592776027705726646673229680744805230580130035327567749907743448979992150298171620581996910484100409900911277368621538021856705755745327144181301561509856615624047378898641659678530941142403924469502684487236262902014889464996776124071369275182555272131187869192525061935530029295054562350047343987496022824893418524585359645332269187571836116109079458546021498762208803209830375001799746323384316070716256600934100579227686693536884458737286926581704836969866189111612275506415708780790311151948124357812763598711296941350476197274712386192714756519849300886623472439468494206144855922633136891453978213020469046849203337984102009371415247181221773768950120902259816372149556358793230267542282418644962977891222348879825353304488124387440508538692050678027697353058163480123280245543531347713048205049480336402518685104850885053838731045962681520534975348743177700670949525618341283917998505723303736356766587559730852999564255007402323845431278872628415152453130846272159212479394416441183547323846194558326614710637460688906713989714601097857529771604294596389486917982699331842721593830895336967032105342458040302971255842727175751554307601262706253528336058466758491900408660300810738080331879832003269636985244918321939223942388686924877052473993306020642667426199203324304387020109571921513351771982155809443603295428429636519630773096115365589215981984882514744586960947402669544166037250052658834627279463298920312812920818831882526209389385183434971462462935965945491398953224153552074014105973720045579403657161656773889854445340025109306951248169633061327175893362933823742740579253009295790944765609656476424887333904846941650394411432970032658675112917884909795279841465843189874514141444989095285165827373631313093881966077510205119738167004490110009257087539428973353661092380366778135801189118233160287349926309010579381369256720544478589155663467748269788230575354582555679078572812555498415336281960257262806655653842929018085535101098510901769866494184203585937108979936315467996801661252343338485363208236026867852069569829269726273669457714890766386909965502216138526148739181556854069909810665202464428481792887758902528907263068489047276452675552293502144144895829717608208051417524726967616253788140517858312166243170495940184211195194682528692525449020000851842489390285203458305047540628997167626959276849482707864046973926320271666814913913444846948805238226388185783722006827772925951179757479937439284186223614372091546130413756431667615173169727426711397124807281124205769387616116112305180339855942041095321309063543890997196131051695954892387337122604357105743438683413360226792846582163918429334912529980533066407368456356660087555481902936614716993405222295487170743861743693680344318887069638762940394500463694823679486181673849141729739042404637896970827368821960175320244752881771225766296381364726526815160290052787294501331885323847253553499286936567496399687200306524022833316777385306760691568374436886017221891770478067327091759983014811481203037417142055945869189209308803774104172507942200989145696138210326316293359212565438163134879171773615484890617378505470671760228519605338612950467854555719518310525059980481092495073452156327772721416251275111019528090604134983298984158660263197445798175366547367221526811485986778679279788439697721340614526309219324172164722049078407909268157455292676453727992000554117077809296966568950658267098126728136180469909384602335435276120614631153078904327634842884076917080280228287069987338470424232516444753112668182971145876383730939229333760302846318630436537084701859957671039363711085108568291499388537766369512014816742924828986314497501371644798749424976372162417988519045080193618350055271884446023389344076783502437515110161777244948047856693676502400851613850190623613444014758171120116751293557832925869862455407868072823004274934249328665417388079162865027357319040018171299221840572642551244339387681267171556631171235483640610946656686253767107764949409034675467551847762004659476404718899415389446518370410226141594840127006115846427199091413272609010652847353787291563003417008315854588345286881245023253745011155326298837810918020036005360948169277531736041241338280385238123986668743213834835002735786351105922798574428265826169246849682300516656381615810313487621836580332640418351763266092121637032412177688324348290933861102950723038554397447832951220672587607134440160596793260303594929214058162924201829738023474148116477782427620735524999499206845568570646427579138408672177003871879589063034919821672159018590574678854420720934784695343952403060448223328925722930987924625803553009078607332949322549126371870407855648333678482424381559458363854539672413520985163610392807087210504060019612736572984863961930282309179276384248357414810169268588911264123126154155525834668213293414872642121001156289797019676705883416951425562485724756216013017718027560265477574667833871004241016923148652346634081647482545309767911477930000630382691389314705059511345537108726938382360156977457040523397370617732682705001899208245869113038661958356347461905810514330376058941238096939753190471879910505825036576325211058044384271896178362732337369524241564502780633175459745219436743615233717733978953509922634678556268778601730444038198612062220213174556388513055878413780619365580337596076254076932077773783336093480917712269010007274493983932870506850370475995970497527532821246711427334546909820124999191105756666263769993909345148795228080797507662070818696788313213328712689391209631747307941004874099411382450507265827330848139939365619320750234332904341720969883845805520234769077909631581073764807848657517623557673434508924587977846601334418373677126178468952691648516687067954188633902939023192994810714246518856011085997673078775058707289993855950828330645838093257963818727539382141252553033505820888901436475942600237953760139700519626304037184088956611879612734407693730354682921681596937472510027975663427075769018459994060011881673486286821954617476080458289191129560458205834481233965453088591111058678923901470196257812827503356152838914998214468302335831756875351992270727956902833276343416961143149486605790229083279489288019952344333004027416939494438588377651759117227663044098139067948768725862699644727787931589952846388866110964638494254192990338391601746384863482661342300604661245282124836119295538638248631221279619612380387149344361951412303154386129633819803331410652157300557738674199744490991189458727325434311850884901463550626882574609233663602964883768076075120237942344894399020566594419028722251961087261162008527853729305870536713589483819389082035506789009557106236773805185756405165595816634064461641466719126441144671513390718060573217672431632489777192702578055514407135799425051874359890431306311634114795707446796421354390111673012050191431829953105824828900263681056999745225143981460649856686071262230307540487578599358742332098769568962347784800686717512902782612053557614587604711170786169411560309112851554394296282590140893804168784114862843506250599873358768397980776335216606925040518012066351320048342945209381636561399642455887631729832565959335978326376941657265376569454784929939425722745595564427730949159457671677450967125706244318262093724912045953120802550062417788430509832013761167706291646075895106338750737262672568194254364226306866046910179498162119619637971506541607995987939717794890188842661981227386865664599625848846899888757722682338639500972297288056097319154872960672040205514802574287458888816140821523827155684754839505402783456089803383517808197458705326652487681048760906672602037905328232075111805060264227306993943707429163456030397918178193945380564495939080439366694342452638974116712419677291927410533605427369391938290883511684996063564137348774413830300509111909689408394080982420911737810280402476219133676460430929496402451721530281621380020795100612461236487188658862079182352079311817044049208492231141147536588363618494483630820102262477675512823886376844603333777746819052612329063673135850945387971965109961104965746671057201785359609238573563517546910259758258966940306556664944192629074496242449706910709493085567648497259224723788479046659979371757394679955799936337365460231783271078408787060417300144997413164355932856772344161429469000024424191303734856331432170202091842878392772112985673552533930604435649129075995831618676697140031864452158633665831137641589397428907332549065225687677164995594558825242401842541790084711236137360610171775120697204021687789242582019683277400604727054231143123033162463296694189444838425539843107029644882874410997681738400707408954493428034594813211852767657178386844180689734330421827087787109104432183011668919958941854754932073947939025642924443734992662995989476963985660523912397471781284888457188219776713103433562755990760311350902629152883115828729189212591928484276805425020520847300018180430745311335859600343792923952617867228175698932843267852200439195416787914617661526438430926264302876018524081931859843484596607639069121478779622476755002309703026308099867041240267321955507036514395460023350394278332036126023141431066638898438977324656414884973320077228144396750223670723221065155613532848925250597608267682781172221828004014358551076134135701521427021606897247391865813648010060470973644612247931709795332314880728688644049496802609984847426470205362636980062301131589964019775370722846679826716105552124044152028723241378397224254417213216826321249834398986009094672268419609606702359917464699383323428363335955751030976752397677879859182842897887015343895029201069515061162102980552744399057592042602473767606485952438352237917151437343924022735420048399496082676055459746618167378461823638611779405787104369736246387459593365687614500280009444671653083367912243292052866360549884043452675884827086754540296964116062634679910903118832499103167804261887738664550047271676209044623404094159647005445109751855275151613491604589566467750090585892037089927292177962706615559084085009870397978833643455255737158967428709249264246453893659095714112349067842552262244284528085024105746331513464322391842092771351904361256023309105961547579194940469456881431432665912841068414755730000438073514092004346597878250212551121014409900949700259195394891466246997783693523904461206648925229706525922152045335716697634751414201794618568272737919118838300009103703207978056690340582069129430545601128676016572377381172751067752590404311127413347293690642544284980326571191181862084020895732622667384369925975495710463035993937699811601201318539351915596077422251466994797691112091327097919723720579053964701781796238263264886540471918654242586830026354860699199209705052038190058320219737929515555437045966291804644401342794454197243010708512882426589214091417416719889535091482297172914049036249478105221633066404449262985531985981092829794174925567837765395352089284070342584962204201809100027220788686204333076238865281658702384548245788457640377731817094252593648667352958233736485799421285865243318765718905956433492441164614579384042479940778134853752842627377471829487284363478978897266522204714438103966389720222858480751989693360949231312010526640323924122962286169077470863145155246531588354530112706007336643760383316339137481118360831339500524374050576994038301020411419714684870983721145656307278773612366263260307491035069569270255077728882758329379114029456648928146728219272067354539028013856452093031941682705384435738272241327607969699471292376031832273357860532755546140196534808988155591710950295433658727309550792535732069039849910965677048903922706845797891362209836519920388816105644923040259847383563405913583438962590376875065463604098100367030121912445747688004169405682165373987538064968687519806935434496873042099511111420243082865788202062607898884910230281544416198475429825869550753803708068458619958282118357860537144807447660327204119734693508998525822108028116212705319171319984926972183668946201804038405546805861670784414610441396844304655821197063993350471754666642267882136747354003776107909352178869855851243241639724161566158565420336755260131524858139129942012312937074132440515020603841690524959337902618994449428758371467576218254197857079121771153356014347825954426320214169420820915694989318917364502437618615480695908187285889475435269068360469938500950015636437293647384501253185761615973980948871375807423686829632490345797630251126354533796973500038975510910682503370783548989875509645627636552931966475621453281604633245051751517306329974154769404752815101010234759475964564533799346312588048745357583099917499283443581516722000871787689317767918474096031579332017579293848213261748074984754121047491702467947723852354344626927611254141923050601541624254904412947078567348157935238504633377339887561846430997741694130030226840730742409080578938953268086783649284769397488705778572091190516142969456662181282852105201219491914303906557330734718068850873599234364428742227049149067582263981033151410474750526576294681230437767917822438715026844626350681000338824128241240004046052810018967510683023969481371842866279979024575788176900526415478116761877060722414752501123447314448370566186207032396574322019381143990427807481369008912415569716437376274565081365574836595448610423742032697373704363532261094491115010795242081611603147313998231751537355504525604827888039967151057256148738741228902874183566466198979966548464791755396913845114220054609270669331862195985103833724437562373923701608648078750563199681818467343887719513653815577742474699750612321298109820216028314437948133027645866747812996514054315754467891052111448876689676849796864019878119655765325742948772175726563913458003193318996304807880218182942371681864364636969623596429723362673164324950140191140983932298116530503584612398875441056388283282407178983637141308522622249400775705600155672934624978496585794344785624868142298309566331444980153435826044437571800808965760275329409210334205412265485714015499693272859675655551546775846682451987603254444725085812727302749698704428180606208933065686243996274202533672212593772404895980652775543947604119106428619242684185409657493890644564265684877245711595502878034375096557615534164563216723888992197905756796304563884383022538120270949975021595410764808952703641101103291597394445436849990872562131432557534557417541443892521845388638430837192060270917613527166288204030145659577162178674333118048882945897620575355395635743512795004731285306097543426344963034804196771315619808819689834368638213594829985520313270441800215914286144473853440752340203395553547225289842043796597292707884386663124927438910495115922268576256174398967388842570898427952841438751685543807635293345640034100914527830206684465323196899015904332692657107593009344333279881614632990085526712379459681831046751758352797077291018081977929226897217352039372631925248688178146273164867390389779186875596632425929073200630512339801578404554884810487101416983758652958677511770729061904262714747685970075490320344113338609532971900043421358446212959741383567993088747567173303724428260001543585038080650595398965821901539294333483383938913962135188955574568037733845308484150768489395598850628964528136449719108019278845117315781846280466574025020789804550194282297721736546240394070688157587262291579915858711658109287444686058918043188236051076401100885828616463087299555370358706722518584258671581759089668744544483301650842046495609877494597978315445842672309808508123219693689303310793589190995659843990791715157875822102619351654288748469633480228046046232800186878037527498379418298783620305861869371879546909391186899808013028086043569910306890394465942025672018505698610795644128222855639628597169153457664657453201080797165523436026464451784070397037899697555826740109675249235685842937974127813656397086067151773242262786871752163498674342455278141281644842516663977743767535575925292352932081615227340428757782554470199714326696381369269943981513840344365617015110891823910221140252474264394182782896541013269191720499826152376172651162054313678398435887664388197354166434537382781128087300363612615789342830077395443443885057396644335118814250696448522650294187876731028780402939119530646693749777826852155435270760489882845574596343402415489015038464401950489958156732679372182010965627666588308976865626893144299953406553406119357380991691333660061861629964874413045899323947433947187308014855566991534243745619862238093865708933137580792061401006502438924820946190250730920335527686190898408688997507966989626706703115001909120363609333515533627590820935102008658231719663706566966894310177032957356672740698076978718223102274465877432781332677633409278522721284648397094190266232866496283123071184827384055285216831567924798519993280093515630741310734488958722020105560444217253711606536363655122359928881324029845601860223271571991963681640925607067415687394259389258789407744724236998607778754482407906909966632587204251341985576878857980568607468610712401641506542430314845989807903535179388800184568529818014548446083154560136664334723167577830198250593356329534254805083477163787519558325054342442628469122316952718330512182623772636651193681478551885319156793394828267672532754013256313335178892783055558761447895901073711735531051078587745956860942237156555485108664687968953604380566048269005388377284281911308215428473139698083508963876633018868917494845513913182367358460829537901511647658813197053287770182948977982907660287851130637860808096150292384633729604015390805623017035622264899915582389013259617857319313861434908269482379275048244772494884134924012632577437895405464370017174634404676865456819754839231425666003404478635287104467809445604976215882884170163833190797149123182729292788982331040668290038734135100706448981912769138005400458597825456908981887969117059526644848410070206845730226013816007308060291185498888575364369301044988401249846325292990843176102130102892773120593023833726662315817873445529426957961810024116178989400393068510260961736066230555683035831627156482186603200300570310785589623950356055107992571689916276897818805697491459872895158205523229465592390736041325923644074484882501427874600554932947344375781538992181344610374935004968445097475453165187290529693200221595296209047065037758274021314811804702294379509193347085022589908549783995384944606847177075295695610264808975893765236305900202902315511329024459100036337351485006835503941652325051149139131735715986158132626771512718957100586457595472136556711832528834073740186901035182223351587867415503710721670353767561679823734680500369292400807932088786577799525297455677358193176024835075546081665967937981520836774804472649763155712269577390414941997351767974033277606162606318834940846947419502241227779067092688421097787031730478473856446952991884275492687564609816821270849277022367798981748899016527171982168733166342033065657831146066694416511936651026160202289809779614092487639727973762058471648890572201931196306447911084105471194820970432094444018558964361224891999200354279232820249858895110066461292229614956673374074292345524894643766282853579106064137077097033902916435628836295552515400657507305456690685697632082386607482066507622823590362294159066672387783946618052207900838049784514126746287002732319359026671891937882145936417488740698660870759686772638285732800257488320317638923098147904629623176762456596337616648883690830881720924450369708987484081590892904693705422784982287673101291520626185399639771685485997672691531238740039339444885038855482241987572728105924650353783955435321604958469438209112146342378650258717932573563142393843097874779592463034657563340320185231420384567200887759123488549966771534391367949742727525401853509286047159756807915776127668823991464051487099048009784937507875273332550917873389748434278902264219537215373818558471776947610051643426954713438311909611614196008726961232580523323049177646363114350056761719507326273688412917920729700054254780904710674713648396686783115724359567461934794986603106338109101298481115754333277933187755095286943386060907211811942397040987023653012086944236719865248585886410778454722444258810049005766064481852950579022874708213515873535805466573058863331129310031409506297361084489160269216597428097310752777469604612654402271654669486739739354340476469996761842973765243490230574175745027457247091522504553563422389371740284052357531411719008086757018283954992894434720712380295678100151524927102665553679698731342140621136504963475331699780460794930319378208647961917112627733216109355398910498753937176916308158825118264662595889615087234268884846878250342384320558121434087868581684544326522083722542452802426677847499506336872565900532997111453770393098513779492213418822284722470932960026919918100629576815928493032827181848443515815574703243418143480410731233481422200649549385370163383212973380127428333249261876060753376274734677092572707468636942240305504707493378510473614430949647296853235751370168090762061652884752371892185052199413763794430942618584603300427429595240332109501891394819498444728905785176276588585717130334920152563199855660058523797496425966611636989629496832115609266016680921967489487714424315451027674767742077738005256857422959832112112262824349611740089905721284727728804930655214907161779943610363345470987729616247765213742654349550115987107184565509200275433098974521344050244472920281464825568869004206115407763878364424998589134513103746296083538288283659015316629302580069331711394714042198895952606007641228889074317486179038420326000159366369023611867751460798353220594576678340419385465062778512378197950696052055533998491562417193614876017588884206809277915931480498527799414076285200650880539939107011442476784405299244323004936413588131850763016348519032605269465537230326796942269574787580254589198395472486335039838328241394953983163138839476473674156105157156244075277888760875426411633618608709801326779430472114338743628675499815630760767709794440690633866739322525211530948702021264890831701109494295823069152596784110098872997859293750173325073599354918379718432163006897963656055707836194576636811822542994811677673069827239429821822225502324537649938476922144560747838386396448081544112869914311906203522179607463818664143733632893759253221405988437126577015407253217236431100556574359322549522117614818015260922621600823160460558663505971953490350775782564824385570430165207365030647755155470588140489857346206053127132081364848392924426208745633491856679394078336145805404305430293135387679275429312115233692558155910288800842747944451665045885537857602467698218577170739772059623359732594250411778244545860020576450527236220363061249298470776810203188810399552920454364647093842012786851292132421938338043218376108312094475610347087372015023074032958271600585794799875613040574210008703629101078559989130684815119318558964658369907495610437390446840919369720157502314534832734079964362631351169852448947175772473941370766473305655708269390123723979263696468575374812880945345082845219970476447121033135861039052842996185681108582462937528871087655321322728718961105787246602362721447887679223836107088596612938668742316438706955935292094288800961935000515597394001876536880855822825379839446743834180578791544446704350036075074231128521381890794594109266034329561189503484777268689917513386860426786514498112620384817044031075104333629938483725772757998820651146321136383623229360093356391847781050027331771460290824149866682355912800340287430721310688613190334701238298822800141959937132380803265588183533782935463022022292597990842200701672551621832870025669349285556737740232571489205088052113277930088395088522018296057652871913946657278422573799075204030678245031660161407100146936929049798619801904750637060246664453425154371555637951429636282471642063133378735833310251109683507437218640489528602145516521436654157841524340561238713385742608839220091806020940037303066568958757275088908679920703617322044681006671167254251262100977781975560752146715543967947446043362230174199347914547404811852844616845304160453699067992817571794619693410633113694501904205273940959502765935091061526762260750320870981675626254769751564751872424073426276431662336978213472556728127628252503467392829643720968934830922955446252012865402275827789795820440434553570421250636893311406276996754769582124409676146596056002802937367496168054099044245591048557612388886874680073035971751541571480932593768153531017395623599344303496171411248791651119718053361042030321436294251824664668694880346708079059372626464572542369888869029340672043357667146207498813569983315162496513175006778523350963017481510271449871857998298474328915229693319908589892244201081609405807258869094386035705810860099147521662103053839953508981257795648161388689562101249864376858474275954087752251093725073979645231986839025901460869584539364387490078251927168558295521563840116623279784668625499183844449099590681164257826101882709142004693401923669501535633493878536227018950519952324916069290155625278548449604147747020014465721499740552036114199370891639902668798634695344002987390315319525827871900724486478042488176747798533460615714358299368138724039252904236931382112963795904531057819511138572320903797240135183021337434919550758319410987282932677862251490332344561581217329787874113995684948448546614767162632820470319089209436925272523600507440638271070321652372211015487718352957775715512202907547578101077316182784275843443227818946806158544415973281279841719744091771719972195384149217605765064638476660847114838358967157560452071987206150879325599417317384901777379755266081993743116336969796509852302670306879435918180663310925694298499665826732309539552174626024771939014931039195418513003884700532225422978800232534245829246645522766612446577696684205659480386543021897914810713385193114276536186261983838108400340286545377561744440827235915057668868151334888113772413988257336300904631489451141092458777979049672193120871088988546364576841047474901883513859097744778044475049800560093669251204727281721579426217965061826529810244991433529500829091291544315069892750932408660304728560974688869162131682887679998165401531375276207943552892708820611154297108049131673636444922634085500886858795587172500097616240953283047618720356871293206183825083328111734837371887193471683276390801848382973658161102249865978650952480209352973557977307499259147997644379333640194443328836912387338545135527053787281149681245582491866576139872554355102835327798558995818778716949074129423232235383784252590458913427948829803722949083771063389325959760850309321152859314032036639491270186218680252862718443938799256920180152372345794176100643138837566530871370107706369262558044501670849736240458093023149865541243819976618007758261710562931263519678294093636196390630775337448040318641234805014197856199994000182039401425567644183692344709034565909969803041847646012680325691868321071687470928521978328308520018313114196348211688644858828191567404917350031114701013328971298601926063687095655873329069369504958876547915808929120893198918224182410160379792383531865474574777368868395135409092401747005561606475338008075163336562099927084500729784360556474776604463974206138033863567826415984367173093064133710884206837918940966855634420087593453720867544124471298152641190942705644263706219062371436070148209777107245375818831061468298201918144669594871819384674566694740260999171483520181493251666044391183287969857391527168390071011241506379298076638467434284669795871130951645470687706152642099327123047123291795821957756694997943789057763052675676580727840621213621133734110601594959732863116164775987747969090061230747745444761028340322762041503225968482892281751621363885710117970134645036953784438834153896794553519222259074686056423134873305188073883782687934140549398363179683599948575433412380434684300256386247695903591325465319148688149686682605456040125090858440207131697019803550081517925887497716795138011648082209909321124530791883216704092130044036359615479533257001560178637567349274617890573806736545118786504521044570830634705713479028083664051032111427369094134902657017528338260006019794431898933868422592536237998164797503521632796549823928022755339952635253379909615937296148365445089429022082631352252589533970507293186279517617660831051384913554075637465395213557411465684144223034582394892586532984156850371471691753830059560840642636864229765975435595230107876901928659604021798002247988072087215290654805328930079575727622384542891498774237222723386670403789877699499249759961598532726642166867569881085887346924461974961311915968921746920069698107973301784079755912694381542757680530951782731206317462225095441585514462870022171072628566620547716489382152628274502052111919513739089123300640363752440702202953607762162574957337974683265253510241306883330430000234061919775077820291784181778746418807709037713707016606498001970725934495420449433890167390395683093207684211717204251351278560032377806203612637147564008140858930962485348132724943930519373531070951959290982208368832285395210183674134885393161805247513702713259387786139565854775618571439441165817157786049794543751409022161513292231200952883880155412666206755128809662794998820579272048321148297196976964385342053101379032126229135608605768128414611067191356286608071423860181771899995684891775058951375348701831140235863065050362746055499170305827189169289372735252256470516468387784770602504220566046892413549546556544293920070031373472289059101268584646389797804415518779862402406958247096421284726839027821600415978938945022716292628203783653049532157516857259841805166874205206761105311182267906965979699914252933518262256177771197817267312445615986186166091390441668242756420684739176529267655763573000597248159261494108328659573541109070480950925052074854189107018733955680874080069196831047816586579815515564478667606401248134234274320800042393723917186325158965919997302355396559095077827235999099542800940326487045666012239602952380048493212781732013261484698204882217495883126194541712825052963223710409513672444912789972560274827049281766150609510420686602519142211601055181753881470095941688455641540257476150830431530348213013875624514589679757353681913698615949474493908207923148598674310143487684289677411180805932017156555894252250339086531384029207358065622895942807045126857884037360960559456190958305811342143158624529220314430155625812640586873442120299571922179836461649937577572133521820205766627983399332113636982999301240381467558006631581985391835065648977976624871983928354846085972648030080035670392857051620719219751542470366044135842078160821942364860662628823426652659545633375337047055215655367236418879588661493502642153033854021913714149994519841787628659225134283231955142799720748162020031002530716058472549494491126176840007771014524773549231900385492138579592352585554211624452607617629911087636748015059917076064102895577980838993944799779148853991998093165173922045702736594821510653162011670009748851314939539794156488117163303201096784284437141749214330406960470848490706240637927171774682996631022666263960990785550334773802088522863954333721798081923252906488489207712096760944993493747233518838463351525436172851194929993645635401872412759813112215906397880430778788068346417078558495711574352192043392676495606128337589455935922674437594518623983500561719228156056153820715793927484702001810056971937955732237785555141618710301712575971216950250213506290091355115293218944059071380995522348772888182059517510101558076006059680913976460480209418216100780915300770799585765482366944551977879849404026087451116278932816560094568737817690837199895881813483916330070513098386380639081723125357215688497019420791849336248664131490065247593225719806383648099465439989219985123503260694876614665206751536982331875742939113399639134823079646203187462946433507382308199602380846095827272946443936345570290234986333036322384312108886297351580821659585623632649201052333448047585509906648569758569041864543977700034279413461472113159214485332576861702769338087799949381427870578198875350508927266068392798428633440426556711518368679135564452931337158709625181378331883170063672720280108582288165982961593187244879089221608291637049598942662136886735550739185990790169669486637240550126491329637937490274308864102062802973311736352764397827113906348950384732024230688818742573635057126556354556595529549416725990960416275294868405434758647706570772183550121478554023173717494378590655671348930138118224322362984196043168483991131593126012314127450264491511939496084124866611656246753952091479775269657661798150428735065397573291332728015592891189526998573728952996988035954829577629342077628640197122764037771298861702551931058042305367438596215798965827393456110736434550840914881161372501666589211250746087867391931415970956304303519264717936017381576576206183906435353890872111532853088985412076739414738533772408916428048376616241138578210635070705736295133779273983765688080531241486777307268200888466770657828586419306391937959891549930607122109655224296830823653062862846531513769270795625337475632885356966507079109787673711766958442825352032485077917700670526148433327832419057541806129054782380292149263158396390689755387146237999618689055610103366911435997682114697601937451391193803319016447763069701620888396325817849401950261049326402933214958828042364463667535803815991443703747106416578499262951248380887499649675510910031192119044967178218854037010083934332108457508248224542267298776097267636940808408820785360319008945465938923350460633446982457099768507165433784822929215817384697840016418795973357927235579789151972430422002724777866289719334868498276467541330896354670625950836641900979696568492557359554224802199086598337454634140573361640076576972370051463710755079293937668149502689235746165344815284937899186424477542500393528665367181289845491808401403325561149450687318579700329773625043526558651415775752233822357853231243136803474233811424605022456569220341247933366544611627430937686864539505396434644804184881217230316959981399609476063612956187123758628291509506718180289435495733447474318890773163256520504676484028494898734513736973082441210310905703831090095754424315256676529860488997158037812510550712358244143544977104206365220408000220234601822968157221114866457698857709594229643141021320745945738533592302002465547798730017453671656670725269585671533015414730019796103818966889763016687105620630881045697112945118146276373792656515948097844678479997781395893640660754518421761914952659000787865363171829933939430670230758358149887103603091895662753381703730192651003014706163486269938494699201113979889842467640579951315611289751565060738850847213197527691025960035024484603735469513431773974583234211810404696255962171099861799402548091269595169815155395455266472223017502359002189585596427212405943120730788242341758211960837074547981410343858493837192646453171165834206588315475535563394848902505092816326739553575842875723071581312710819683905804646156242147168272047027353557984839915531322822065227357089094563633485161196407153379905638829777633736195244766709517583486245720390736914328328980101944753412699711705847679121294146696327393195947088405632290688080658150181975457501021274199159398440435314932283892716507104600292239252045161828790612022032123432138045161039063685378197909076503523578114249793922936322509561787486391958310689137984405095479738478107842789412229470898384661283327861461822408398893227940721805091592340564086273010493665822039580159175936122917342769282773006400838974121338908501517350948528942203812984345685844603270123360784658565501170864113544471346941756660781073744347759346318060830611909768637766072907350694663343121392805146319086420790043633228528693390858239475484482721873603151199080559249531699381519171038283138061648581692913125028039691232765836631745917297816060643319078195285051714424509453050332946297456499241025846031767664246994199144029174569385411337145554528413886630609339620434855517366105744789498107911559650347403923056036800254957829869103844956995688534475717586017343554468940886558520671791699049610178871520511281353327857176326048915218369888087409468737340466043858056770696750010525789511204356701324930769201912308449158113312531798720578257562232501122611475696663477519430120033524328344780735215956773570783073461061146664762355294294740370343409183741805711455937957385690109190294863190182045681576842437644469589787762408058402030925805301730560505531984894669552307996548442398929529974611947881231332730355211954396603882495266106551521815044272166814826234478001630823435747940375568832469074126002074270399767342215797905861998573679681450884741378617468845555624424741893193026951623256891030206922310531375630025246048595025640184176859776866640468751348873183040073163449606277381810043666541733456876771722178245029212562536694984229949818514310200734221555834925438266862839129315134924180391079542512028009542641792541803249048264945529768535627995735165774491472583014813512194522163783423475011767230924797385722312358040896550405397813886605286849289387581614403044370064268007442761778795327101869219571344732965871018784083689640642142640720055191338905892484395676156442069795434358997310833770339243934054698694075308651820829999592374460569804252753356427888911992621812406014035496597666529272566598142563785245599284474841903675029899262375717157084111022497404753048455714026171571243563445945259931923612832585361290355807942781331162656613002511117711560483088604621046143091722679969656374596416184355590541087878098900653965526132798373976475046504463893264028253096601186233851012080555811662990613109875458262285572032106657503304125778258036290476321227070901339581376791952646037677805507604489579383706733428990950357578135068718185406883442046506924380722926283721813657571346302854084527437837129166776870955369252408359328215244023619722815808076332390356425389931229908878665043783797512846886875228176211394141452615694685513167786134064889793688414002492012798105935555290471725154716367528945359205191934545191804770900284022800007796138933712466446055572495216570256062318356903278595217367806392122447020573081932201338712169626737129106294221825518423031250050157476379004793525952907739274439498504322934655368568015140441398623392716039909978213564886718917444710327509098141722285055296556136343797443950308153416036969057693122817942993919179665759141345957166816096877751667768384286711576897523884955344886846753251983462632219531648185051969363535890584387097173502357680127598767140017245744922508442864521599974322010990886013848576929578235437970899220194429450933940383008376581156421546867455524821447407330461867626004672626208802101665885642864222705637667832996229663428041482985458620606839220322855666621297103591110759630234096169143396146440191290303380074659418125626395006189080755185829249007605271734051216613203559974249784299270229700149790137707096511905298138018016128469658775541383673792196452955792893382394946837707914748149176508667503762576690615126554318835799126418772792852073676206598401086250134898111505297142843845320525224165173077957245938092112613054778580602611339927266187087194560022417944697365167088848281094973208134090622693446443811094907182857019531693587695911967662778559072689429280324413308785763960882567305429096288720571669106288560288872565362134869138869524921022568823327383583004754374797950215632734076053332166743021078928508583492656447298854559902612825130880993469897042404028147152205366620171966836101740855994886730764333601422212534377382712967498555508676734349458856067955645276110190981746806559735949427426418584693495121944228323284893694950491006421514614617190521506540169441614685359981358796798863051119710988207117550967836973102649402258824345292912739191409713271257139069029315760177360141513237080682610252609445287760584847762274629423493242305201665883320971656322327212294029193017375046684832132968501554782752830406265132378189661903825096334543327305490254826301898130081141361251557760910947549897140930346301562659541779700945679781373599524680203422645622277671689219164403767364071732849971664387721138084413837835370600061046072380953637506795286595231028569442562758553484851972321466871980963889747399425653520461227916353718363442163617039338499328914583323593469593791819806771005730718851860189136817574232890563027343040775751889252542461025287862113438014243074735908146930588389244759526060404956166225168987653026470227661499922522844958418397591200442655790535297239820223061362661449538281995078500673454100978935304453880485519871784213379615147215079608974769646836963499793865910554743244854539069236527579296056474303089287896616215728095452457330461349807671969746131443001641858634961502604228714667165944611164414237257927584252035796164425477600646203412473238955285407051803707847457403372079918616710578201375125660836840935905122588942755062684760804469450436586376237668213616829558595477984337184811373940178000889945429914141567868474964359548618240212666903406942425686558912818359464717343401728038869001900230603466492250504764083893601398437354110398032416434766323574382769513694961547420629693079415263009174446362253708512336074998478562337633634027711116508671353272485939752674768044279785496327444405248257355205286579979224957490659668065703795947024404272821053530331054581867535751798390945924744385489856900589870815898930168379821808617743523285667450334165705313257583611281103818317004850637108170198897738706913227567145883830745635090065086320547110193585077128471286586404599125201320100354674772923934878970113574983354191667150529118897044749625046242429746237803816712696566245487472996269520534351993009224151729352513951619559448612381497587197920860432894451669450968848078559904449392969418337512891877893307223382844111685037408470307623959678060467923500753166946050475990909721891403012864722355326049682593727691065953814362746659431143082008669401698694763256582408879108824734094979128034562984761918534470771033300535430522538903472630238249556077169204762055558409681082527787712374471153216903877285564946413655602622720947443576107696939883679719450472714839523654054917340891459787726431086763914880505248106950231171445243303808102646761714449763532437426706533886148023142839242031870475970720393651384117540121000863359491850299927385279517452365738307510278266410799558401920112195817358515935880852831634566265491787859004339749704239408982175147319019133406557630687608724436520671513396940844783734247495084860401264249165411502124142699981086806966143563367712790142379584043520134171198614494685324913137224101765411179461555908655480404657630269743255482773969203132676463000301144931663699249132991101262732501477277658710361812559670366449921131726141091918503120056634120125256212857503790960049628189187229759308596917003103712440937953275371481976485290299161503928534958255656024079136499467935262430721354917060416722100254818799456588262667114784315801956351545976932142833248794683105479377809259078238579763925078412100274540701484164942282106486418423103006458191286476854752284405727019252207055723877008754571912310337652167773057337766425918281931850679694715227509072701393194869211060387701215220891776030927598824974200572944149405826666378444902629629904520635576548503380979392574745022936556467679844961566938966899540871910870886205781835206547999879098524445611659111888796925055875771723986882987795726616490231521733413068674970880813157156452721369532593113058735917618133050205538388711220487001205702147305595843930295953140349961822224667725683911016961249284988505468635544149107786357560798272455184813366567637100583370270542168517406189692909955161183286578401017458736103049626788945890016954762085967252593830985161405246304464937401423069052127491674742662350018573982203784052866237471507416410996090088688104502305584286123083410624629124764459007155269618256332428604027040368423952475732718670081426480824010203416883973616119588514365623189143270613792442412409138991300393411017284359116459447932429594256555380500111575510354611518254026706311491555026946415761302114704031145220968345251965899057715958246469982854809654880032898011974647335482621705942008262483872531027492542835018165549430135650340575639608029957560531835020356390983674412302279943080224477753789689275813203496270402017898371871436452842902270770834795574394952720802327200436339215946739135975340306332352960749367739755495844882301793695446660963094008061681320095284659515034546716852099965707392759649826272002362879247747420751588823209486858996395275721063404889260480458117045084215893882513329382382820566705619455806430279095069146812406461352803129838292175686260015040310349001444710265088663793293078481687810432123300115802278954674281138851299848052732832849386568185854032675421759122517177994860113917729272359018654774860499817937538317706873116434078732471570200376856609097772036081531452376888524254064748144486406876461475355481622138681708973396377874602316862287756525639369982456176657916239003882958739077856035599090971116838773208182353176766085015857983928316425818724703346501135441580608342409389384630700274204999644731403903519910385583592737080490958148334017171526822823804948339469559044808722004708403589732969691359553159292033127056733531380736839088842163337010382980699119064579351738014841350809070133358856598915860075918282287290328094137005072692615711458408634791632802865630809018071607047547204632292302187055593841968528868456057960196679743553258198252906441403361184758468215473231348204022710196448595705036259182983032540957517823301483658934792572839887364438081904733328510708890903182284433402728479477282737172459329954334384774115404143187829545965031204353271706266905183836037204138657911027707808761489609424991069747607422667255108012694756610247834833287967595776020116317328438428279866357762539760412832072128105686507750495488340648083244630197104196344194843912574270238644592867978041275313846423867139323320336772938844852671051567723808392228163585982678534014147185005013062107163559895475539257312983505899200930998325634820885343546309491513019147114973860204361394208803911535273815270602283414019024891810517421937495720279064987276579962211162283212453210179400407069534619179821137438262145202544419143049007495966521517326940581736810204769431119476030026120640613927896335020755803022707239478381699795536348658268393534759629013775211752066141895370435955790831319691647395021422751572091426311549949010579015891010006804966959189629825559775252326117390681824864403179182137029892162210939841063453936109468112678519511826285859370248037222452706506018545430188920848864136408200392820079208873229777199106371031855816388564211355006317222309645698313369120194413245038311769246103123664923776496217794970230160541804045188524375414546047808886088425053843840463107246943489030501783191038114265564085743036032710904033284263324246786678853034207788892923619861233313042110829472533964188871163921246713901594129864197163532467489458037622336888468208717034809673924034159122034280624457963648731192614428363023735576982075138221619492077839007991921923515900193050989497773405489497798316808035078876016513765975925314696452473449063913371131347701798610964495716041658288382813591640489442933768164236063084341034172712638689290273168580691014363162346150762106702451618210516475683373619109924237019610482832684922310444910893546948535108893201229317658861333750804384791562604991634780020990741952745329168601196880147987723287005685317469267112139091943491199341867823441127207597388543928686595502088774614697887259027943373922017541100526063752587151979119166939756310047641369254033513757556895491310627264701727667105419458476320093837746769541343194180396038951923139772351039650459412915252830354737352287728604305029530694025162991373757255472786031134897099441064512032659684033005407450229680757794203928362504639953617576360548212005805302571231722678174692835978745058981392682444670503712929731511123316932798575600931860593500029647349399924161107820594566801454493368088613037089506193603917223920145461139083019045301786525972747712675392448902863223887357691889821296924828097540450469696419017960612136741434373856041635125363756908832125846902011023218882961120948746881678214501865995470600853326763664808806395721181443770555058277673671487451223320995125013590817670718718877587462526644491352498211700584879323157907121664847425606449466663865839860571659231353944319241667350830292249631191613220684889855596137134989261842957621804260013013445627720374627966914551296205370871126178760520465276543264225978113326405013494853287405671543069301082203702103761255193899930807054777599605699558971189885505840224416072470295812492385145637404619463965869644995395554211003722493603791334228456532786574196200082613535215488606490864394426175234168264760884128638271967632950776468751968852899786047258695562215893406957389859342805331803133518376186770053875316692666349631595460923566980281428796721056026511247106874712880223839513624923414157648871023118733356456629193095419943478142832734455676893945745364868699454349854196512136590468861597648381276962729336999351052938437461474435887485013622552575809446678755614485335376836212633208260966274439438647694110783596700888180389835982108295503385765189130993808069600041134660276253045653377552658323907133519056321768933086357188063927921380817289450570973431079706970192588764308745307888710083376356951600094153155599088534514176235631175264086633722939113942229271909770074413141342905938220013311972242220048084722369906393095350398620303301685970050234353556437098018037506299543624897347215158379769205774433368630436177305843054818111422532614484139393187203910476260517814252881151291512084975700434267193157024386331835903720569434822833722149597813181914923834771063146820519308102517802919524507807213284590962844335348582920189299974414208300694121129704384901088673856448504729840287276483591572569015641681836493615158345559182067412303475049158252677388489853248221676234369030653142613163259071208868660354277460341793971556467622519744337837697985738036979362772429560752683470570463802403535174218385831940647185744038245122681473284580588965122199937041786553935917588482555399291375668682745904673067711212842100563483583933178937071074735200704201686037908091085052449252832581277185491498550469593938642845974210128228213403191097689519867617994517936860360552759836846085870741428602156864188361645263577421753446663298132162970141114179503287476780949386579365891759627888648975178871822420251641916346833350240469438652533850098993135020082826618701315921641226978838362719670967357744619447352580482123679014009558480450737449504583001805017080534374337452666647937392589014177077704482359978496533669672066244756903477352759437289804751030430036720375826019075843703091293284174046717311976533314471604129645567813173566733310833428849475685062103789400888709966136808417110838247384086969531594269484486170633932379156171906173007263413100111540673607021014478794925355627321399058147346840041019782931646281230982762837205631812536651665437677064586312725143900753962863579876527472606610672166885820884788600094374005651275354892480260851724334925151427496829148844700507419553270415213469571394011418866965495347499310818176370931721997374609445964984260156615648461526637372794001483669978728632897737656342351873000613924523694484811111439982682915249481547397186418978577992159909563728777846446091772887974756411678557896759791576765136099196344163933476119225749079753904377618814665703699585899253944155304179442520880210366705096507200820178120079704597474686062044140395859423368125264893930789522399290409315716577046178925807826533751839820430280872073770720013927848836619149556316418762055810550223152194676204053042583774531750418449811363118018465524398860851701719712975018976380526880894546072835462237311343885082111624808875600848686028025129111426755254845484486063433893345514821431424403313577103674853166864900460459864469337068974042023859447320204914432942322295728877079555852194795517601239499223231244267397900132998361452348241300276343354455906410020673630821218872862003077722809483542187355663911858101328293543521016225329464925878720359165806419781675361180113171913593722533714520846164343072789499709331651237644580225192666200187337578321339955530310157061448021371321427940022798174052562358825981001303259277832156012467905462706944185281938671438565822812890472271279450685714912682650263548557769165283146982947073180316682362863554013028591088375384469277901731312364206583174011082010509333807135089793210718718160167948640215688989111201997933996955484765607804435433404649003960940262241923850158858395074290483822452523076747959575793202351407651736485342663585103254628283103793868609563933490214530161275466648072382762853670456371194904529916171486939675488865427340399505050006303969543235118368359237821944466823854087071031476161612361849306147516047085946125538550830064786693515380109639601259963711558307532389329247818426582092803143572795935348907817568617823477524194439597139268757460888997280382141699688243826901814023658874259527441063723337218641427163052861498692792576538070116473763623438652653823107614328057806668232286185464049496752014242914133854404739674189109911175209205510535096268655637302553124867969200850810315307792787235797090433091633042249796862598773879770713571005769668579604150851991357027771377892826284360345146861429818617591946957331891566600721999617719168933560758338985856906955180989415999284190247102960740490255623082591111049723355568013603377816430510719363693223957825514997755626063866670188038642991898026954298713595909335428878187043105527486696483610200029386448912295750840468910383484443858393729741088288250124294459410013908920543542235335605371067209731604696459367431773221410821519235930378098110051541654718491030149097246490204344551295908235828020276755035202939930429248836885038692016297430587334709560863206083294650726306909536762820550880530660324786235901778272457375634123162829813471912639205791703991519941962322301714994406223255263322833480115303586595160253774097059204548084973327455018687688499391509035326201628555163888523097381759258291132612107498396714774699301998169438711729627537267727111374859853236342889904602312979292009471852392917998297654975434336444275690571656489352750978718189292489496140865723222452826045176720285792030280139916639329487196813984188596578916381075597341238044648231507076207604338784880961546790920013395889938185772167815055600857462565730967431764429631148174926826412402989344319638632060399519571552299980833878864496677586563297429768277109672131346977306713795311060682285995903499591675397130432771143976400668863588965269569764578325630351916483928005307794030584492020547291501228888381343449743636551709000656513750038452646497988675404896441881108094338051257921909504251931858191752460986180063029318899975641971604185324762761984190530052665091769155897169345962050862148195943989255721210911270797088288744513169020481899952031235371439886029989770963555651483557186478247783085211399484467929271835279461027531782374137289353538556312833123412311058807674453756811283948006339955712547147825579977651691200656559172744225243695903875485834254761244294980034631958116527131544592089370368614088972483532138039240303116547453846628828623260349010733829744788285482653396335430614371966934464434710283022638470591195769367527150787534581731914033879801407020310855959312999524957548964605742309627891604591825264127635671689775667201158741372414003683189383383645280994417548769012190949930496199260036349261225625704441294034977441100958519027309433524758744767032658126385426635992962560152480928261471203061821503789101794658856380692648158119085274640873982727286753084226181258345853299990986952671150170005645483838813511553298771536085006715262922645092987011418245222436501864759642788057138097632566152669929380247636902255903026698736165197532219222903302895623026501687895711825945802124708239236001319208562208250232731694891795150553822877586066681938138784743628627330699526737962902405211603133988394764107197428964579497809413410299564385820619773572636655339064205339163487367203400587055445675084471543956777761160814227396767601869008080056128501640418434110682626914680481601607085340191584024887730700582163746395699715226120725821308199545363557524969311586769617943328085519479194147926477321045625526400713075670100449091363108672487534464125678010667791630802152049894958030413755868543974020067541977183539530518603012129543932434805278657302234511510663019380523794496671869253870945810103471549061769678144759864931800359209485630138996481236715762463204517654179437398273008269616452744651195531019597564474644072917474712743630827322612456454664046624834379299578457849201096272009982358772700418275639433734869157417795934791979827685953938430464677259943829066974215812408506831119589194838145728405204224038131346619190937560577337110924208033086298788568014036960829762146477592043346007280314113618460268608768901257919093345926724811425818357165437627129142386556470950096707011716372184102893465736257385150497628596748791216591693113280918246677582232455907417517160393549090662238309601487650049440702268660531965705199730851080302555875367285308380977507510546386179610216330721847343342967596017522078390594827605850545763476088414021822102268105548387377062984662739559456323517185714815776125533610418941509780856770580981012989110992733624040397936085836274855526023824536375566423934135118996085988355427649787656416688291146442215001313247974387886010727768617880422068376658867200568628338966786339624801043478701771827281154973074742743212680571494409329361318344383341125038344609655619575215713784205340652982868218662295060498146209346049062206391169198565817966577147649147339960127799304429819159390415624097518211680294847568388778577383226728192029608018554559881390633947956674338496045368219426437000187192306711537771730391777465874798621012771675328817613886272358138296216376659973444242917394342751964907204651353225327485581389771613545882430154025546155847929579209791155982517719883544436716600592814062766993895470068451724353113776561955224831283678536172410854106965675875409401891076341407264682429894207537046836855403114250865226993979332526966317014427802757304785802355676663695718692564494843310976985995707415231829270173023146556660389360978986159473685446547776809581901884544264839221439432512621851376607355379963333339327947720606416473912508172470888586628120868695226862389373061576546490437650017178232821591805061732594638840391037235878081100304339487179911949843687732119367353083682459739845563582246364071606494252201306220598528554959970866365562315667364040838437910824356953267490655918471334626466274851407129782799596140096835153831494819908227503409368265864359923514274004358168664970301634463122471549051484190549522934931687668751363095699635567346657651292764391438027693835084836937242040900175666825578740974199571782489159491628890995396315379028062415082981275557056079495172247916360110852651582344035268684415200462987546601032701317947861979491636905009310381340351310178259885889079713311272476351818812281659265161187283765512278330607041768302830298947046943903344179347832514744033483227491402173917506642608765982681147563503274451545230171275638350670167457772333422135054163334530332160867611449166612090579699751305872653246164777538215241827633157642246918437457383593555454184015348728713274579274881805632172434862283814820398092219925647949264745856122271847122923953516545139577553591558059099526126382629322986563671547806774007355260764683630099823558951530360537069190290925119393152155835687276251932928743085362603111920780503896408120892870307908294932783274968707754233854949629539753988692804235434716326243734975470421281604048117921769458354062718518386530110621335724627990032562638345279569575301633657534276334712325900261197714297533070645064116745860775165296044676590958617934309278099543200571955554398783242367539866440537045605285804729934646708790952131098960000128169621201516318871149216442765522395626577172660946262618577506155077461926438950855319093950040563373059785314762059604951402765613901546572173057056771408808812540329092329556453565997175067179762738202098837306901976330261141927480426849457659780632227282817611979969466064532776801843698643737907933508844677627246952007378923609772423007585987498590242687967345510431529671297247107068718438796752290621715712568226404361963063812995500256365776213764780996939346483141377000467641594906682790060738505759288519191602438965864360105183311895955725787066881819996810914400270289001497186107102884102848727681151978695450054828380725054918326456594856135225070045995874982787014022653262650395655377711076823651438558258848603353077480942297812317892114172417500281057508750805457981852240641966334786335423661375376633227115119509327278803553782704660545580414430556546467482985626117007761451192185028332040722335802392467230765124491698545394977943226501162650770083958677795627110335488810969446012277664113496604728820412073866128537799440567883342636373003790332510833743967260025080532716670306069939806837251407228705043556543593020323953361230849403898842019441215174375400765501747437667952102201026928009581755911217264972054698747855508656998182236165116762368275067258745807119895801806556308682560579084878719837428894013287901491813450219460263292043027670750746650441433986063315582733390769258504747487846768841894698113715934610577027655632193289392219549823643244917789020621603930683076378000575523084384621195098349241619118620731898760278627207840406216308524573855613721037640534770828627479283183337299092174754417042410871974576202022812842898704553579728150618516514756667653970924499019730692305406314855825903815732876607897743033047790183401108141626287811523713808176430831477482540941466265158957388906940686729109035270389479840268118991023798000222323637344271591299338265614837066667660638339957505755150273092260106766239627284857451800462707462829962176025716817889703068288679487322688747767320514654823325589027853421778214873075048963042627722795038977808805535334745453802693698697285897187598339392478933821229997195887087095348315336466921686617995808791731578593298208069232467804810506596880219327029558251468336142271961281809168431302696365795844490064705164722179650228122710162758824225794608093705728222000637265235725993324957717139365262399738932936711522199554837232003901457263256052620639935777728272548725632044442354406985140331765970876170320221980238437661408541731179934998845388913249974375771563959577807602196163132461805923654133692111157780921544791122863380442055012242463595313713951494859637238448763668065127805150037102369730961196639460690056695448357653023127666178808304967203965069382572598033393176147668940760811875268962354491351156890196526611231723618775238214978754947126858068348179457246963689071033820447188361638145753658219006940021152733006264833773066080499531735820625615850978429087277941313242308516207674867125297208337730607931920714432183003936168854472596838606726161407873963897130207091647573126499763518895455724073367386064025370309083389350743350066836534500090874199299165118996492871615715243711195015046115759558980233786054309344338771477338854978609825785388632166346712850332511698131698743765060373038829806180393457139782281222321492755549970141298120112954143573487788400206336387499476724004052046074029737061006363778505656085724605964717698086428991028400205886676396479963016215505606612933540328124086238107019113168130288270490607294663627448201682253245118546243454805015615962353288632160813888041534678936859462547241108792918987577063947505465599121352347253755177672933477286009663708650054909797005987463213248355438154947843228683517049179473107104942707532273651559023709222579759520401137858588543451097811441591341334864783738289047048908406562415801742256420005286831556563737894440173915640615932726010082062359665933503978612846436674010865261083623371733176835690818252938944361857318531059839873256627382551106058489897539128909616408783680441940304288160572967673433239502869317749581406655959305598549642494580172669686930891443089322055693219106157265165224565503705850584714444376835408444602006850785985987702966614657094187891228795980647946685623905463671921991715219562140597040786495745129592179647701478357032224384785927629716097375042816510811852094330884541212985152592872476803988001581474677562794967225500229507677319348992742236272617670106074294148157975620189492479393480468079994023091647549485103541308568945133929896142176039513493339877049077059815539366680556645704776152254089608615528277868510593756213690410059523751035797657488528505264419856540098363828763301941626952630336754344337585567876626980958027702773389687763997800048008637260812332080309272530665963772395922278811885295793685631668134183402717693016420523308693557599027617442376408401848276980929537411377270451292504861465823384315564602174966559256218544397209089204834458602948224731088546925738016032679866061859287484170628733049787563654680031991619421967207238571038579507933798011620955004233437510174348646300668280846787624965293891883490876754196869383585138658094530921899739427243479355709663193034898748380706913573325203257021577716852432992199853674670013085281834629381521176922942763035243786897921433332760357821494610922786268083603264853891549080968166325647789851433795061973896909088737459851474349474273168645710081383558898570213656117190944362864916832041611025622208229412188533165127606378598536182457492014323596030904297026741275643643716544962273908680649352619560487017320492589007186756228556584982191337841388430818409761782635682600523966588921962301834424491082597539713971356587159639298045988394699251624471075519639115783485763523390347897623425363701736354079100968611245824363531771595958481361434781153523287983481506457525261677410828300088710247062076729426401886514361768858394968470595732192227611660591767243737633317082681048965989129918816686530996950938579737605856137592691949234280233488150000575061122539751223197536779200559136183109697242746178159715210351719227019002827647550972917649070924269536717337594264247940926617457577109741147551392947093012720093365730892071766411292163603034254168065622270904683430018714992808879598113547349950489919439346226937896205749002278168715017449233591707301549754983161593141658162436619087113400230285428665031358130409184146540300598770994143972477772606997362044667992637681184533274087011838914923976435826052929581644190060077011597793271693946262102405721306000496003392424355944098045005418648950893804036518180194531213077548013553428356093630850158358454295074765437428248446450772113848976727416918801088284129758048176215916476008187521422681594000131963514196339964037649778230060847042729354817694556924880153289240225540984715567097063258487373621756718364934188026780482017653408490810919210165547784737138282686742794618285797173510383820926091388023167918170931038377006451479256101793737439872377586179680406240086723465346908203149424899896469281529397170482068602448242486491940520340805936085960777913092185308939524414626006031371600893091558275738153752916005644633319568815219505918410509605369355688450050402498539903593093880559242766027507211370637414750175674495325020959546294316486678384183920159901458803811464726600716950375507230918958649609835270953640756733538546318206243749325373261891478680337711642145239881393043242184242847539303199988938486437908909417735244938290792989011920580033452390063733712331762236108648824042814973731899316624312091211817063512991454179584392181044385533598821306259692170639664991212138963983506756102054627298793490215131031391243098294291647036413879914777714113039787301401770809345824356329763758448554053290317022111676343849132053805504485010015888102697825795431873859025881661901596407261743556150724188338951807920923899046853229286042617213156802330259492705548961203174182688283685800794399337820079209107774804431634795347932215936764346648405238031827503133115454114388862364115787564298262634568833135672973521121494612248748493708308730908248039904556261757908073092468080452875542249292524646663958860652126410686386081222238777535095263879404402499394770266793432451278058892308426205847852900224950090770590232392386372775150518584028435332135370194843133050947315649358272151217897471110328917058880381797627127020454913260385104733693643180522985008006409722028802279190998146850750199732750835815209705521399537580861401907391276652469233699289576307612002058984684100827796245300075978190414310265367553496084751417649292972849282460948237686766204612224181227655069225251009258708409499960238184028043578546910846843572670995815405701715992564156215481710933782628545274852983217626118295834322104342774121931104503606217522654373637914185755058550733999746842034460922919015537316191744789531173952295798127889589734259640571338393487202911053507357669040862778473589466396622488884660113788044417604126750006651286726959561844315268775652849621346339760598405063571978007981146780642599457762305505695580598529020232629921695804069287446414013523673247356954220042036156953730285084985362712378387458550932024718538647648853395296528076786767103603957404703558245690031425316347402672257022659399781968242551091581871679520678315973306045137503255923096811572317443457702991165051046345124828672128817517708642414120359618218600799153635687809335692711598499480615057864608687641555103158870727700227976511659292887502975586788234028338197820783864470524699230652081606852273751542872746830148696813204471776326843074718670321282293820983240368274089439652800552824952833097499109108649167872397196166151047202370146411872287471457576173855675045856976637254728144142573855368623173702459197494331422935788936663678548015594718634392809468373940806628072447739278485773224630460846809898591285167539550583960803462573350032767297792301153968845855475134608072726398464711696017245524469616736070210320931526176339674526201480257446022459873860228048188124835603287871000000918903383895173660887821066940795745934976004064278921747117439258374538704239638958981845893969916309130964510295337490820863577411453224934369065214306884189017404825375518919115681322175293523893157984067209722082274678926831154977361510159163568808780782267644019607955672434443507298840645874735165286606690135265575258175655409309002752020766449654813150352011282780089998911648170344077508705322855867519095614778901596286658236438910484647327531951536835178613825861808150161586758790305428380116113763772773708207986211763210845320456785094338117672443226843491485877652351443125562251875857548778575676857773366770576324308408821442226969816746370855704256494528958235804950863227980977030916622092427248742694702730104933922213566531096927368799885955884406227636337609568813315440792823941260758748403084066310966533320025142614692844120170295826973605679090707294678008379671935331251906404995442807369659088721449259673358209213097504949166410730512141269911962427165776929165842310294691043801663811591919445552545921600797570024348024682808067278540011683594638917302669494136825232773362174921797136733905688680444014997338887459694759846726907431638426191212262300862652944418292953332932100887424782139146642967058108116285202438558901054944858193342539028020111776375777425236568129561198202921244629161722600049530239136697722100898939975747816590901927461333801665675747758428858674429928951339780355790970433533761142642716375337107693180760594944862927322760022501045447869561932807252504887797694291010266998607361348048165638533772245632329965466159620335895654360094781023743008234686190824349010485774769733497316945945111935165045549175994010899425646520980200075850279228992455695525910887315798624659131817979104991570192883130618175493997161544022021140593490084126606073630557632931113096446627249835536887186993116097886535462712153999452192789946438904087325222001631789440535304196954479530367779508859483188204579360578371848421899711458112099051943858818170685416178971206739931208904776015469582571040222023086371388757255454376731244567540078480292056371184142470038307007145534788417714516752287316958867000549727079453175851282823750026573237924564035119929782935865260985667087941710527225124104945284292809294822796015208977310894761294347072705362672231641107738435324279143312248217370820093355668570564115937827999192706465498187347168248657914116836890503926653679061214891089990169424432509769913980553329733147350947602529389497661437644865974405259268543511972530191626358678054075368785062926140734922015723551966662084670255099923963433910371950524779690727792568760717850041163023287913464088176138055619600402085197823401319848032351648247464058536679237164063499472523662373512937041685279985474486752322261180207993647208747013690255461993951223027016721807943602936351239770703671231389895125766891466765517580480452680966018590872785260406515316993385412463497161946900005106257937248548779771399904356881098994684074164339591399744254665917246466362516295412983015924575738959164525573576372789656552827571208548344681509711746504506935107695703411409741763068125812615633999605895690421002720135386893698357924795553797484524148124289267966405682770150378201290631113552249062194974058151178616066665290474101731629506173666096384742350936385056842711808247919516298528021667094365175609802549448793709256710573567984443305606764888675233953898480156145720867862778280053381798955791141625255367101058260614368064887355235136079147828780145336621771314656044131181588777370038184634901062460500638008912278381348458148957144703385911964235853376820953759542953920330339924117698048298592021827703971928432195369913554153437730096926982296728197256729750775113784549305476070373147693913500463199451061764808362591645281967919333881733420797537234075140198189016915801197621830720330176567278332523904179831830606413488022732948216949071950326544030828758140074712420086012531023084890661255034682634932579953310541229712756685938409805738053886163015232353392840361014467048598714906391349796670142926684394895926255262932412131834602924349560419702603582114091438288311934793234104419930830975848858904429714834165855426724765931383186432904516022708428582385821356228487055508725259736210708124700217232871008992681285664480761730309974747692944042501605065261246784866031756263204838304710873417715097154954272585401318600468439142239987509929589522252265502344280168740689236728095931708713362101568258940213436124885811209702065353868816287165826167853657999207275288129966622571690195966801061876159185615941120712303326101772712532167774321020026790793836085145768152800513532641779240203520594103636400390583916616789083405637737705330605178380661432785487992212112125750822330322117773431304899556803492623805439617511464103229231154064000402456031554561726894815418802326859562007084624262881430694025635501706961342297106766915602914721493201334201230971320266919461990854161414583890632581635407719990300453387867753361330278879408338510512403860319819251131592533251720872362750897513151149200432583447172985288206734478192053657054166735205715554448590242916759826129406031890956751527969403123160189324483133642259072494543934433512749410891127527746008869182244019044575688706509497595498787578459741063010362751675306104146026908599254320837116263013294648272819674138998481633938041607900645850203112899563634193109122656453516864502198811374521533688841937964129894159901019459596501725763831611916199432375066608609648471308028823596099978999675568564118117740639603388591139303225449840232711420966802888851204052598162634998417371096117478252109852480676264632123502891305987226189767485674078170391589134857008323919360615073901504532032820841680662789503657168486050404812543647503015041120827999757467226133174582058135596837183021822729533998288817719846632809748629438150820982355857411196690701135248547016051784350710276656777588186443051107290149704994051300297092123001358650516687317602669331135573230202828092815597060552177659913351437585744638943111744514540778384470228191682312642272690795030644110643423431035592639881322781332330397918479121383133747988856022356991492891111075704979536791904943215305550276507333455575466845973399557269115879921098482596918433614526356028301060991712835666181244361795944929760897587191544682495942359075738907526433544430290304842478743907053117380854263886360697722205179426034903559747231366654027314434202605731143607698769026577503998785751792949927465596601069079941605930143133340093000258401984109605482379758962264436713256725052603887442368530332880894541283818871291991385109754815683105406190080425015116063030955054774545842645004751527051543982691824916702961039361670223816065476913190039067080751034937557575254646381803715806186420230060344680077196811609268917209574370682063266720479252431824132215379637690476382308024459700192052844637363171258986150606536523728928131597887013059660981646785092767981950083707947282216295527509198473766726627192207639779005479599898133510041478125149116180150620665438190750817608176037875865019770298536505723186514524936805676548337012969602423733257783236608463387047656975188189892314758168712874949592002274050739715723362971610089193382093677154741094119169363426120304969926736346840754871606824484870029460667738240592939910339463711711447144259008852246950222239929530255892909932578161325661675031589381472510110297589092709992720633029840212444059077410291217559232190480688463592686771058639464040736020424731413895741802433156343521543898368337687033100275646916523641610890955278588307675076676248897141236007170612330214566095553787091129539345505587918686824596929812495154426408824682640317451195988891871264403301929853532895318887436625943202572397336585117685754428770111748582290322020139237645112754657431532861451388709292842239368448273200199532206234908214729674886962610698342983357075267150220311956515644886952090867244134656993804634473654568723820652594154389234356222731755148770825994385177394747265038637734550478049395692413624512915246309179222518187134028986405577087128215382336122091167757296572636973639443521700971839139478086519988439702669613229590699344643508773466628083591221888172824957587297969948975936334156551379398172202219403326972907315833057690028641228176006820377085497380869679259593601388509527457428745447375603765370859142384709389204034553762222730735370305269766904699790309442187558321329203881527589817689868768779421519612407314581606907132187290796162304677426711878800114935121515764690978928711965875665466507841792386227908877056220932599858158005919084640108760081599490723216199739519340760648968787064893259923512460248499219664465496718563606296375464993438095720813262957604683898896887386528137942947371637834426024273944747503665252451919538637802907061640355491756098508596298471928441895250872992982858831457479296182183185356556125308900793652067272766426838500575280542830001270810989338004615195260445541496682192997148113617438412181184754178834206998560940352387440554622740320125443595178396458314003965361216952482802465350112715370924566080173010999671248846877150907614470521095763572617671232960349012010994165087288943320426655003074454615959548917966581214306971512945391964564320056854594497611969323304756557136038216096964601909616580959453760280504267854537930698939979992820773413038366750611645404979471574053948667656030787126190441999026248753779668500011958275106766425761721003562135779678462333113109934043971586340510738302358590440988174952010892876529208886391461380246929830424976624348058070217187005275789251131001789293569331562496810732542060346658389406900056784285692501481401318721837447060304059293225132784530000975112878943627674874920982497404149192857391246239601174604303464100441129037510355074930648624636681212738390842652442327819162082865304336714828087189411186131305593852090474328906641074186123313933772590101304061228580758732459643949901643708338754208611293531831714322528523075301467108943456577961522124320628544664598156353403995169839245824597036029256357052379053489922959340477892943521126078139904173309268289074557336358350591102473207562112175967540924826756204704756634650004457865460873501638344047257148540313685019509233098069942805353803963055786119223322499628448910816985962436398878403753640556639177726682133178415273529253433645354924179155105580322351146145989518772114876704001816612669025714699871891678782203357612134277894244783464013096460191317990101879409938604367807093728366866769946210376520001608995332974678085903106957044473352814286713463404992303662891151185493379697596270682156024059910967821169346023667526469469909201743113587159898705990648907296850398640479364475759567064551676497589668455264844834835749705210913381348991334374289624622527483546979449526377684263683707028826587294730988644034018215246811871160504655709826237755249207913818422404546911379554178373327323685082597270101432272689597555955990847687286168707128912870218138662456236735258630674151491022703489279790529703384276593283254241252901337377448693080835318022276275242967162753754911199562739073266705993592593811526853105979203886281026459663420989207172090254271560367706595894394653079816251574217900037394129785618531850067698819554843836204755585245969477878213877799261770507813689517523513167175405893517867078200236329794762769097796405790946558471160692375294097527547899953715174119016661520869479831815900956814798940617493232828338725497869191799450408534838345096838965765052642142714299447739049277715380520284915021758992753585025606422216788612120927554497533586723693539702382454887096919823925269815216956154858382065829464873715920465067810851980469355130810037183329021344999194121143223820790542594240245007667225273972411666505571895444301364265058960068618110580144283919104903909569903895193895414040627437495588101360214539182966159073676679640736487392740902163649697162057666155140032454322244258479212911944219850046927881759826726911846013927564513027917336059420875662337815950819282503043961161669025628280821786984090029092652445045094775734769984311220110883761057503926368412471682739961181988485610988099612691614250394562150858335273823942027799582317022568653714659262530256328337669504123390797665522448750471199798605305680464584656723483309218297873093049763072662316416675514528762257023460952002396398149245576186528096133238091983954886059713525549688753772059447190616751797419658051274949319329690373599833286075740708437479312822736815426710620322787527399187879255538965236121897368935601578877722562740194299725081332539467471789846568535169649431478547367586939668536928275082687891283959532576093961913556846552500214687198431727136780706421139134524197889214848899004054703544953957682053781507052619782459455747315684254066044777151736412185732726118989839977325460484656572764899773213979089458487905041508228157002921561637144680531303571962711473633381928787836602189532943163508505169448265308368973964865789631710776373820923146807207920185116463927640996139367969407153153212376783944930361104925533516666310832200002207216500423115557193731890179957770716020896368508662955223579049716668107853525826399309532098108002643151875147734778255838186672355402599601003484393574998224490934887379515122918397791316033355860655977344864118686255761776642815413078402158046201700033068189015107636499338631473970628239903995901690019024841358230210427140830452778671877470813510634350465555690820079478298565934892362547246948672673104741360373245242842472159072110551623210822382196223780661288887773880015727578224733656144849968402826841052788761403214115430209136360738370253054403347576080121254024056938836525396399776912506045779089752732571740794568351258091764891825117010439061382871747675255279998783572773164414876392295065267277866088750526940084633667575851296532045770179650418793992001526920934334308786411056477626861458343274420047311450397995793530668167732306251463220619527428300942788735506130862001155843030428883481009870948765420941048495327279273622608134641116905670244788570483515201356860830848467025530940578869905893114439352255698843908006537628563272307483322864472360855771972170674602508599218010099036789677603765865459976349248408521364854994818360009906224321460950983417820570403751938164154250341585208808775789451463179802680125220159306930395190890264236644659253206839198606955061148159541102309692854389110842632045665658326255847152962707301811876444905679154219965824276963305549543626182106170608194623840594755541192013937822092119857966018462875071229532137808836193793844302570387710097816596957014359450614328269502018107364010081902429155969351960717837717086428904183537280928451463538532119326675714307108965373193491877905245902277376342279434035320084391140031846891829361011330424014382753477099200297939550868808211431824542829621571897326205623452504378831437192733643121720994614618347383518777738970661928586207694016744630464629231229337927615420436928122675025056298015842010375593698477014079354684237540879980368187368836919925875821971052249737617402909720567059461760985243477081962492367577111638299573486048025195181397590421371388277776013394946749209750563040255587269424429084034641214297177636892298910408876077154045322438629296708457243097235814457758117007095683828418940223048333257328747399256927723816758571310607455449942640562943907705606857662484343469294025989375076187971983594865912373426712857209466744531058719683614123679526091364966146433304379903061304602320693353845534271343865667518618833053199532341339485873703468761248329790514204816676867278868698179021856789457024662205266350755959738221617526125459467443270682385618354598450306076583293011136909152294581333317167879073813494883398766604015252425203147293369595788428734645542066193413257821666636356368321981825940558660686430958654835805835337456223003517187058085068262362735851948784464289659168540447028343008675956951669277497395905816069267122255124458801229551398036067299935843340272313941286098689057693103015539756568792307186493125686900725978872244609460882313093972382886292589979078249985859054764850676738563602048562476415061874089271287553542513190780864487300022859805614184570863318246098537245906770695278426600816484374843556971187349940673415640337484880342550479675978016302451157956192099644369354757931516604070072443863165946467117319018007303206356014121910504931897175281574872217479818094200784668641973050517530400449505230534128541791721811747084418184387912236963461664100535449020506106812781026152798485700844153545671573365998215200770098616870808640700354229028062719774532412003460786593364621403123897238838263307658399432770296555453223101415958331719248256910233870878682035562913505050518932625989438394075736703418850732022448198749903999883392335787305831912237625237543283387420804774372817880148391640686757922291120662753990796144500812290341084451916074851515022089994058825848388281498336210967566821529662191610069337986811998110858583418117367842959409928226138867878373627509175405418556002113540217319400227688881883384494466043918464684902514395672623888394583161356535726750955715944931942307337927093135607485532809859263570090845620070480569815925440753698239339613421227877539938396833482227315239026415264797367756516291140998248072496483689347923634455832363672515247251951858206475394750268546604482780199732714365144788123930318097903019110043960426664008899694125892007469988045585787009784949568504980898650612815555644764226148422908606055393354934098120727335838836983010754346714387601236654705909617385413175829948356863948723525473899513109933800984177373895228644531084697025728358505115437523786245403835870488593814564521802274936096414693181581220005821473572822593457195521691373050192681393790176110262514391103405556255077445885623785843119924392419390011658217028163748623444865175300795722385525066064675369182210408697020009782100617327609398079977237706868447512014510224071882213046205267743283574866447523080479499367642651532387554520287404304254801575941355814682764285811282036068684472824698720129389431038541441699844188287945134986977972967034006047699692728804631314453822820676485746593702634840147229663790904050696033880746316993283622499363429846129976305493178889326142754630076614342827527085510833496832425795035540255873624846722432088961868677578870709162340571461146064930968384590765130138114683629483588574891168183567770408261608386123494112405902926967753751507285100069424702436449969049125104679065209173187494041610276423408318106814395639816357343251424295788872518235586528574699212942882912375146433539248389948562776676531637403344978150086366664184527574922338119539370743364761072874754335654826175499277831353470872594331610142589635546657833138126970372890302346304626989932308437893946754602089347385821628907336084241174032390422236924937422920388781794336521749556815211235155713146628770631286167008728506117630586228533400285135736678779034124975706299244160290438475134656814044767036776593215413206166021327785493144295037640257487613529140706000999978518148114297685422574033653671918830521417507587744749665279220925287649021616016084349023987466898153439158492149993414501724444460446106175489273186805807828730080991968132285206880617380440040939316253190238943353329108713259432042040536369624803708081386449418327670691543676839168367193889916773097562109330744022389008718167202523839939885236357292606190699753574806289596056826407046892255815082197038742801738411017625019733200626969298438676582616115290719424471738413337478514175615080044955156485156084724553803170620598162080336738052065458485249928416003323001191217735442692885921438458218607871253425436303913808644880273637072945597152071657320736898193331722204147341693657853028838840553696251685260920693472117488965778186757362556435034758207702896183366156595582604603224593492644541586074666785814101793918118563635511186591380821039174085548695658354052483219901964549450236296332193442504796186865727876704161923668369503160200164079931084510137201204293883121747326278452890940367686008395097401803987491484716362273815437123219604932254952449838721627800668451631941477495183657629816606022783906896916178046280878620793986341824085001972610101843880448115503983978762902476267871636856200630237913505237321324901890887467789308485349096350880593634458511568942570702988282105595979119165096380747182424606383021157420114474527071731743331234680595326537746805411850959958327244081923521313051218230900224536365603844937539819056940649623689896160989250557432906293441723695795149082494528221358643480124681617843257090816577733006261732014349787817302802738627405851289879683476013753988508144814882452733645654216935747276795773730240755366200634952447494320382047878461015304105968962001781869657518272428758290650486330466108761485727241223303649391965306491254707276516724504840123920381429040764531007990731939544511591899949660201054490137281326154512878156527716097701154581175941624184192578646719955362450651838000408074848247559624808641028652763647597941657944377710443363644952908756614231539602271975409551707030677992355694483449662419255889833018253153933185633140288301677668464468156410622115146371872102548392760219745580197996161406858520326019412729694460435198510477396032117401691535615966145718529431458363990923972421767118390729471905533948269678615679034146805123309471442034690601391951937604362123480684734589779369998037386146325131933438423711849206421884349980554089157578172465020079773585136105431042879846358566492492933850805753638343058892308454241947654663785462637464410336394032265814163400817761722718239871618099292025284098949265986703827854754224640094964522268924919754716156519000053542049135642557769603404981891386160645639886827171319931783306983241361681465082247781934418590618255857165303251689068303597554611308634496882682727152855934573341891294986306045355070895867538976199321361870714814822440771425075951218890196424239120138614315515732406284953664954834229359501226095015303240223109553297958973071214443892044618729751056858048059055814195447421665761057486848284176438804214552998737833405123314615877125254539787570818698176063639384796441270707571197145721339494231998784481678189298175490524906818170754230340895716731736013293604893387844786881973342147500691166772082298434115867713671937963516319741996014059096811619131758932368902911141427261497571037265025161540292800253962891683440514144402529251843143686281752854409338294426440698319769643742529281117522446157727162834306518881729073963066948477988128151133563959754927841686014806799122818356888246679194740446697757880052852202983276317082056409993730554847667876899513364559385074104869060214950430017552856722213697923741935523820867343726603144551345953393826298411378126289394187371374081580995418343766023297376060445340804867146356633295974341721597489280690607128675642729239539512259911839597162925840845617756304089747365193782000700290005404992582546105127441084744025336606142872516192442516519983352981167254903078437342303637510743998182298719640002710962982498796413206040747303963895056320610595636586573640190506097739799406860719300096203224092796556938093865944159738445765539979574316398824391389875220095036748270895169100037126552634099621681878578174577949170120416854873990053444109014794349099559879133349676557441583940424752683593974914119235077952045849041112046435937597800489038235485210863576454972988623055260082245803357640059827464599781038505876731990894210586884417217326368462933925871634560951319350723865542488832236408573737338561085346899957954818160645661998890844018837330292507084185860625783288394374168340036970278434805474928806365470949021243560250901817784856669785936939896699860398329261941695678125238802742071711965956676106965467183037331540155080077335480233966579671383924626341381390468123191064867743343765764650152894366682082897973793588128571890067641002060766045996329304776969671577366537225902597049343511232564997308241577765155207105554515918612682311704192926687990885409154511791917226154978404430042651023082769789035005376121764208551461080695060167578560385641886778692341526927190414659910709354541508190793252634381937407009121550566059434319614378182157904804870439993694887427008071323961420913829222100773402128927429005040168117549669268749571353497955064363462536486276692682539145654884005780846120537169314150781383709534309825604222689239254966038641816886702036495880509908310209870975386220979299574353738276863101483407912506090609665631719785779250184318316164671479699701115099613590314114228421946045079098329623925700029242785099025537103447914728174350157090140585457989407778092632506608344788049457591717331755423221043433617164959273762109822631987331028828051697274595088827573750570224286259206208944344382849511661770604258152353413646798883472366903448427662861556512224858437768753038332582578090755722151668418419645814488266486020286567094025619282772001549168140272657924683527359967516604653313333776923830622746958932524419582083830128554520955866678457873373364338701905586122392883478314842914912823389082211513942511129835033933817121050555842054470277009438002319453699283560699957681272239357353444529752104859075454446761728479953088975265111330316683585585789957544835596987440363398515759137539203579692857455194206634361587517050356855974514867386996141633929394958746224230785443211943253932800940506203785800304943991954884133699271406155646325124444460476266924135228978695957123096597789537371214089290512720405689788499812180877847039833497899919461247399557080104191957843310527902922168480117158144189286611256302036399650265760328862920507321763073885623796556844099057349527781344111607475347316163975259808489661170487268816227853464962943007655732327320619518939698928470595277497412348992184457290641276004681537872646591360169282918267396600645985434048355358652766542676324617783658051826024799197715811851745814918764963225458948180387393650546351247140005084761101299444386323260083327553601082106435338216546284484427780806311268228134963021466368351793405471435674769928814844180757400794195827921189082264686364906019200293732505461369529229413822548209683660720144241811689847602213803067001040733306925630670630021799732382718077895386638493409566850064837554849621815174710114243366363193067399403608142820918395581492767906178984875449613592564784127386910481734992699451136308834823579120899561987516121953479981100934775548317177207619151731046749365488347134343588256807020699835424518604697845613389879643359702648348867528911561626958327127345957077785951139058655881428339941865045827972624520132352875396822885295371193015092098075920597832308840697690375558972109539500992875485278996849837420991396096479194230549805844978568645331186759830631544228578989890174053341079557963657718984547361833084310874590776209234726271295701035972045994512699256013670940045919652532558300766956492882334686894654197973719765370165377550441613982563064041248708972808043121854423736209998860173169609734531123127556267087349205567420724994751835853977425092529926316104877491527494099009079854004690081280631102931107612045871696953707709282759753595779950710490269251994833319222345070842729675403524745799444333783673049084546358547049045174818790493005240336767418121793383510622444115636573682005327321802185962910993752805634792499936182607212146995843249019837961976848436551203320776641004720979258994245198205081917293596055467524580964189408488925300043927384033998912511615470304402797101665997352665188351557917130165576982858008706874312847495682256173380568713452144731457937629018093345021541285073240701531556408436386025781781481268514649694811101371888173705077997076848656498964416133830149456907181204732520148700841865159533807049530414158012455775761224455450283122936192935632894383171262213602665880088866757684201772849372404052643659203975675524808589475375995478357673581942571543493284488487585252875645497066737650737704344504406733586547299158467415241067898466700698709772812957193942907096694934670335373077003077103742313068784998528138882370081617180643489927079353299157422666027968606581671555477736266246609423700739327497978744088993648735289032505387372194458949165074271658354134674668781056851998892622831151721485953383871233276097460440127409735802635517379468038941788422028834801533564384638283278280098106142816985637697600686045300110695741022541066611211787024797480374887791599137242874796233512209090209483364222775028731696888460820992474728662043207864177366707926696681626751749844480785140325930120624019288304063387294243909411168744575309004029703234947447696549506805825883891508876385727284303564270019376006224043881420661958470459316313573177067992283566579647424306761934198450948508337689393016262831286236569732287763672986669820941988203912982259660329253249391181866734245320219452995024139558482950018613287242513541558355113311949112539223250194877295030140265316921344360597977123953897119226754274744300074990278030366848886805527835495134306461412978637111833671346503025972734539927287856821815771756868581445439904382463939179228702393311562475062032181732830460162509667680213583376270380576837970005678097217826773996461600851699719650462264961111039248386641025411977653404136771687116818348243047998577730567437660433265687246449148216204183129649804677523586360074559385828887853086480817824968205352832508255533691928638811940828563847076417553249564494848996074112020299469024279777073614395127741418837285950861261290131902311483259730998603026237063457702866351652826872119337082379221775400586269623811729875499297109525045236110265038709381892106305765557089079304243215077064295040502215778797350273654255460800455709666022669454255582914615997441681806799845100681268801251208217127862547787775503284053395037627471556368793592362898902573453799225219935544859129783472799177296220634855680199733248910737472714058631525984064507555135602334095887343284131297961113218145287752980311773184607171552673100633439868239746846183119341652146165046326699700528778772649814154156808615606854498556272028944041081512187114198785936693152005862950520677665629576729098304407774956465643688059585860043247247499854397606627966083864520326165811722712692157028204056962978474538354287977481985735172838931806214179247471622749527273362683824187969671648119158895425193565605815660495547280214948052829627792987101613117223974474624855374813359967719660452776312594561435012409122633492316538543529673489844993003120358482483345498947054766250005174976767269430668256084806417875337044116888053720213686984911597059263747647314295056767980529464987020859539232670879427315946934819778899838102208493626097890178917602024548477094784480512310735491222531123699221887638658209860490117752321131864632782348913572509602948773888146238902204279802459595827584578261194103282328367693398445029624334205224023676599682824793643186824621214439186717785761438050356096021812121371079047828208054318943725811123453381893809976048051035898310949350540234990140751615288345434334342307664864813060539686529167659514167381655323351105837613091199385072524480126074263481187206415726859058448177403488067912922306150183001147205036426330240425516389569767854785462988194328559175665374356377338261688836850760790250596919811476571201129115226129579756286047596824952571332069928316124658756906689167205377408274767490697410110751463280173071361317285887315334718615920437984545337842152115268304260949414158537140602295100753079283373221588920248363689108593392831503900688236185451540929154323143808548894368351039570617042847869763126574810245151457666637207938449634429277333594162848974417660469669620647593828968930735477457972150845921920083108478751446874202061917851370740941659965756286241570406209421960703567541070775008135233448703839705147244198187757314872076573935917321691287898001910987747375073398476490422583597594717118232886385350265741483212719299374721297552658859518422300525135918534873769555746776633294525776588654257584412832737413925123000883411350069767892802318524121104734880184947045367300184282844160221034827086185184618672252012343335914748100514401551576361160521239593116546706524659243756249777515214326016342040119414268581446315329986311995795713680269606549453857532757807407320911824236535952746633806581427418250490614770878351871282554034708919310534146699006368472782072486500619687538760637578021586163387378494093415535942651839863883131246850112552547800844959964495526272099389177476410983062035086242749146572519465030433507441091448383015465689094003535198844140992923895402934627557262377033791239062893456568922318789163153003361531974792921495274678143228898730319483662850717157347332712363443596966441725993177152783973455519484891086995908616911627505620070247181854029373863746274624644096337751428899187434174730369455755118327436167056977687152106158277518738576454041543216556240241912209871628071409281592332325810505515302871379730847257689524778401921391535458287364312788844859747832813017080599158730553656193146553925945263238701106501492208217963808354873172515764042397156063026088895446518467064057373849207837616667657094022701945876063567968425798064367109777018146409117542629163221863412586779250135418094156778413895862435047886359185070376000699368260835350083317283790051155888725162789025418868254936246818682384642282190229505297310291130746905931430480736057712262434591180013923411163468935012590716910608076448962366709133267014309780271988658956378358123182554247154603010037253725790862625641975003836435247830223586746840368229753788946899864088592539252000181028928299635853954279683790412670151680034749586055933270816824838249424385217663509181219487480553095495053664792700740389337273950365850922624792691206426767193804490778639302974311867537992231050142730779788072114211931370855810586992198527108582233936432921642093233829362254663272953121767883239067345296945057686897524886465807707225398370182335451186895768618514653664391728101502536982196284084877837984391659657122919296412253783447097087096277928129683452422627608937757207282242214913659889719667368476386012143372286660538428911453432470029538777039704198076460204025649656598595639583752108529421612508568508220343846210587390293723654661176077563670137667471726328940922557036961124417209825177323043631326288036640021158472746937018028054390483839635585900434687176989633331742860681937871999013761594297615801791749911682754628005038012650591287039597078309308007560747231202788856604142161121520698440683283959507618358546553722359304484838408510004575744917698943453590905278598152899303519402740489185867580999511562842454736095663892387491790717106554732932430429724512488668523866703235573642830681210946242482628706685898005473014230402286006271156669449211157988595326562773210131708956466376631529872161070455636048039715721931364603802308614709201737314426688122729017482599585539005609166230329384566487224956073414334817784187609441104245367929918480587816128334501958381464276673218836152083252808981156060342537729656495542151933338522119614453884426275059092522996702324051654362421728789848965994826213141240151810801923242016876125565874979564262088126418207964859051972748862881835441002002011328041630994755723429235596607244134895819245890368606472712589153116660811834815795896907850837249531091281099025503334807079596602807636063727759618164050054001145365351218727885021369586518580676104187620733186489506762869354559442891419565026631697551638980962927962786918378212400522259659890744632829825661892403366329653406166710271377398635044273885603128633663303525554207866841426610832931588191390931906826700943212054431563426295847126801111554180507961598756002083950240378201440151209278000469223426028387925897752162639611099908985294829199344248091134073958540498768762747849876284431718384805241550448908450104595311467940034982647316347780608177151962264370068517941032506617482787239265206679954805566850198896479293677105271517961965758274396760054878276881393933284850318340276078511837430127114209349493728748969714986871377795122447587000904505238697303363855032115136261453592127413222794388051855317384871983227422614839668909410993329303208486451351102910556270652077074233587871581283437931066017081515329136119968719129701402568896163421923925015541821507359187970115951432977809555604898829568136677025057331026164850788764311900624706985763670594579345473521318345363464390144894472815486853811245456277445051204481112907347077957754476301481651041166492002270025518737479978074490644167245767943019767496555799874010977642288626787734888697479606663304920605467466480713648047829538934375842616466411451730493359370709139983940695407069958817319411889780898889327000472060904480899689132323199372271229538390341971234161046949950161319740058883217176186522697486542678492151016259126963927270561319957510761714760293944027704572167720219339034841076613238569709910973310658579873853511104624391549355122708202724839578699833442224686699584032102248910634008095020283221480825234197895828254461601921800042207748785831687163012078936420814344744179695776083630220236684428315910479450354778120318793005214413815174603976212307482038223243363309416615521738033418908965851345702676034933749605404537795926986497961998051308768384977342166475004871762282256412521141296754605709921759807026286720597167639826880639855094669074297289122726570608621216070011382346291706969314265969289196895432503699405948714638653081580006392759442020027804671626445063242840471448165792506094992608336240020126446781269672375865770593379418348755337249276746789387995643565865904170952967954312282289975064607388594318631722863926390786630605527907549797934118179092540688039169113774674899441483333669864960128448058787867295268932966843981627361617798485077936227874367118495968839102259345365802814747046397154822820921587541836583412119097830058734516408697585889624899088990711001115539610730133179122038072364756656164834205117792054284940290574450837151621523055663771686827139889596266470444998192087070807289788736755829987560199690204658780293640932681348232937809161537829724578429697854077444875448366637146571145258810048008617364625734243572472366956881934296129223737025156825287996126275159029916763472589807400704647626899944512039070812562230943333662235956799567377576765672344793199364239666630023059163361210714456791764113600881377432640849904329946614863652346991865145591697007348568458799409237048063000729789600376750717993923221113404457070959374602741206193413434899934873498391963085336713071000182508723215443700437538145832653841855592558262633212846842511270388554208218056147871548935352188501508930178588059560589631767488935257647884511105903661834304444297229138562031434464369422045570166504872466198179355369063618205253446239276233365074643676207841871353209925254677663057346057790636227578728093989284190023673248425878375332327223701020744721033155595010260607767694415493795710090151212295046144048659123290574700778306775703227920284468057908671902914483326443263415595925024649799928027526423331101029637678520216014311665014275678611720180393636712753482069493046345815226559355999859969427204208147496433608370299177728238560936907960739454654123525910579871925209915165606641099140778735711332409612900296474837168631997319824844099553668075067539011991173603631132041461297742805514795857769247277297597624749321703816640981309618359775128043155821928539145354443709674475162908027631689598511700825574377756593012178558118382994473774543071883584198929629799644533917711968340154110981389375366116591627525029235436778257133005711051772367387610340422737369795759603728332525209515632122665015261906511015758709042866578798498876431404651492827022379195413961939373903413130422151328348143684278076107132271931142071223127273191917726307145077695815715476355727192492039506890543592948897287556438999383569997494323223600938528665620843604711480907185261704177772849695185632530863219147985741339870520381587671125259444185067149405064658123049774999788501592727573330235742760235930615828785048925144478024162158494658712777745031359002548637669025894974043140406976370164870635240245205064173606520322785787840112019782358579855788900095643556595745022574295177949287485429613541275297545642961129364677316809820678740443876062105431671493672347302305590011120302959235989197098446703944852921717199809268050178871487294660435501738771264990118660303134118837093720438121771335380251279560045996385979662165075513775283470541486921163311503393010625701880835372693429495315946422782213929279531386829949529305522037443950133422460069721509426220487725840901595308735548613147911267821254597749929539981240092711398578407621549438933926705115926147537524847386816597261245060511643438784963165158772584137228854501108885772444028428807170261937107352276873639337171075250100827017957392412320412611428648177680679931207104127526573463719483790756819411740287405741492224084035218972207393493522877077761159801531167159560238517074391674700422426597003377617772228419896763317672918096837449447156637326377571250257449920077426857485890116141564781023517674335903350508593316938692942825255518592336422703320396258044008125229029264342042921002021934853905333167575238138043441451062386521918972454988481163767603636591910480846229991092568699192904737845657614367198041394437142637829190736729684166661312009502399045706305004931538811042969754666133990637066662158569017821848925713599863832775685337158838283445405840690429337782977991850551663715227904452177661571531013071579335901288985915373341872323507397124848819718770290097046125650327504721538038646888920333704461042646487575419500443026430214042706091524463125391795763212673882555700132681298448539876932922213065415832479628398390214344873323239180914281331939885359713980500240225268323314207284722467279166902544778516041422272180529819427567094202084898081289598595881760567820202596586227860597683981169654071792654274507723365137280425513683258601005367749330944949263437290635891710763557799161613564572285988848616909621104891359587232465151618003486347621032814763739179926928718287859026201282066497100061491800076284377188623507687995009972679975167548812628379723968582505280112005333207340880663748233043209564657438732888011058731785958625824230540377584399809480580997326357209515905694496171622229352239921355447956442110719108166663198580305928402678332296883952307858548158692581737472498773337710065069212671082546583335399372432902833157620232603725927853133912136082445070961627481416552235490772125019302117745751172394000280248700657986749380369021327539275895577064294148314671431521550609549599049149047930165808129022957256931708835705719286007263920978382599043165246779184667502650797890279698357809927193637269781284405196150890819450950436768146812071176816555742158000932552206722447772569031246437435370561031208043973063998282335660392482228412034632334826598349319734576927465896345732938100574841261381196400087571131852539917366085166056778189662016303516646353692842629116270894141926975044983406047811273946181088087163546713433121802483644220472071357802166306942697180570167334653849824423914720911362282813945522800828664067544006196197035167256768837951545661539943046237184804631823247620980960526253998950391623496547957526536566467066050863031779624600715902342769931389636714988517177324941857196674411621819935164314826539188680468120596576867362725801753351909779823103737578031219872905724097796773625548371619773725398681828700157805062230392282648855393914929032497401739042308728803405460070155319538785237110397914423511378490931601126884886387738645537595609640496906203258914531661819379498773146162927973210752743144201123862964037922302320643877018819464759366792821173469791411825946671224538178527952757854001593048761733245627617037429168529574333515336829933408275276743057945918085460782728985564533964629566846156190262547740821799243020566076688509158251173208067224921136148332862519157786580884318760479008331498980572015744370077927347461605020853626399022920033400382158317840676596441933148644019748124176185602529348147415613702138164179996198118035274196541565301379291131386894107759957293177533494285860312913238536694443692386794233239431559301793471883223911437439184018578597407331724155116227825671835356808247019587198267178176877305859365237103672144332046599966284923497453594601607663675718411536396747187185988495113309819537578209150618318205984863685578656989613125981244274811317561039518134192279212891022527054069936556728982864874885201363619798277462659957406717948079772083205446893413269757031013578511623937760366577372976879142489697695488673247493280000512975254358367363097154055229801622046443701137572997675975579758344074556936878638746818416405836602706964562686016748427872040257095114134598995078905780430041666421732204177886724670707375406128692435464795457932235154204459128927460940485260015471332651934427168972687264953419656562522007498926881236825916253531213693052455495245707776821280855161659615596551087985212402642188117362777686235319408549109686792533790443429363702207321445264603236540394646111905710243870434316513293893288937599690822010817022484025583460122151712497022544360512595004506013421619457451496793049856004596002386758207189102106211266483973175790433124161952300705074471732163942561845940567215876334404909503227151982732567299558388726589854986842719525771497004448675009999128541012456568014173690389708822220180614511975044260520382895297146652372415299192081329197089335837260767788523880235020678150275493565212073911449177520390284822589955459679505901605721002969407683871334733265971755730110789122720014469801146057048923677752671424739452512973219610803494807143846539883443649388593268720087753443686353508188943013593562034983471540651111112270729554183572562702438674918957344313882730948254334966442197394642892098447565445433449240164309374735459751101203988469338593622556969467164207120056511103435161008468759619827216680762646014352900031286161150060483628212749013790420481057633226061578624403028456331333633219895157785282890423237675499365911708471535589556694408032960698863131254414762171206215677104161302367139067093278654827613718283856096318429340446125530850567502755645325453933140874132150352476272868818219968330443357675511105139740121587684184412190212634324864941866306164932951085229264831404489659055831252986022577573440174941792927133270486165989310093464532486214333063812104499651795176934444257517926611029028703938769456641327246455457862832178534445906130294787251210534950323259479252054547181394003259929787946192409034501960529237528470766195218453626437266124190808580949604798552360733331305029458015097900578003550851591489718275866042166157127128046323178983523624852658229306101150250003170505951783132690759176169579615913859410699936785305984306239154599148250740121371133078179636905246646637350357539615086263311313947934415162096285375701049407195635998809193781157295428092480428127207161342474721959278948127724650011577069728331683668094243108664361153261348112736237654786562936449188345372621671605668247552815438650310072504325435513643741859871895636624754181518836051446871039092156942118974763383422182874630987972877324913506312535713014801508460364184018739475326728817021050954304119040345666647979618435886378140958682026101524257553847320503662651598701837133907001921095288568689439872253918412336274874038069667513521404951977413093660841421293106528910201975580114435537353355626697068001017921633233422015520211296626130800741863430505502786265644122261706761798958114168605537404545628254518490422969229625932152584730882835389805588745897067485429422060633037624369961397687371255736185639666231419146129993256042862517323640284379247050392666560067662248172107721809039749716647282856522006151229395663682583255577460222617333568080983862567911677784963407913390775391955038154618258492923455122389563666146571646282631344633620664604381180166270838317287956676953379525212903188112139539874837808762502606404792901599384138714892045867940610188036031112859079669442209505504402945647723987624872856350328080723740921244203108066087396801743923884143918434137614819318929031706745741679599213850333468835520193587860403126467306338726896993531366847839851134194378372888992793981023067761112134768525374627687359713142220305339075350327100752944642666413910135337781005531932782540387399619358174059352501524487554862737992276098758768269778928932313402971455282236452498896279788191417333377209464740808143692331754952494974735052474336063963427903152612906472687054809588511507460135321371687695879090338701331451004974440414235995165144373891847879256082821466338228402152634670685393933327504418590995306019240151752832712500003421822811043062502458786406876458768909996419825596036663929351365656070132106781910711945365371202401254662835071937755287676830755467344095920530331483133152721784004840752112824189297041647766570118197447568095246429306455126158153163108513945616171640258758641041596330486263060793515946074924986228199860374165237644288621023018538686518760159108279123880838447178584245083372509745823459795930839912355993228805156583501424354305231059585014988313616820546784988709425129236955896609839065821452233251355897868237457129426256597905904022874584869233629787660790162758010623101606246298321387492467904073104756802394595359916667997279859786892020664897763780721750106668528278987077288001519907912926310901745004316219864659635233526472848232723874555842307471356666353356161999787215479247216123218462728971090055860322002872083659106971061098291690106226583948864554081059912560422235496841023786055596982752836313789575874176286206967064722828206625013427181239853981253410889223313399660836752469591938252358791523625310192532017093648049739068771134219433169270355413434361843443541543235024135998892037601933085066247728627227380323082610048764279962166470662933958139551244561452503363197735925592042999797083619394309101422092909677612636305736005964100331036001116620625218699111286578126634960119719624076155648800186455446447495210392074572418252798609106270361708881646153549253991584497426264898928633022405953765843728467353238995874048288682634096593618083035690867310292134018752610003125961582491678310180228307168231545317785511967769194269887946364271526058127880994805435335168580429664034788038034026943554285110629328121497172424180515198841482079813065029708119315053679227393510565062527689619535951412009262020200271220611510660502181310892201875616597330580952575615548613162492442944424857233063403058215626226660144685372458950380133542640550921985588224690812847042648125887717597968473759049435199116850850096337148515510786096084311384874271882939254088214388609143270168636380519805018528323055234017623702613757920269738824022237742489563915910535829605824514702595857644039365433508126972097409145910064980629200025016925957569663201709240674200572054968347479508267938290559198793141968017336764400891207005436650491788141504308610595536906176749644440096570662010056178298818550444720310306863194129079636265214916004101821999918804053633738277647043031195901540491485161994615483818645165948963203202879414286648114198118468595223323713012203893555385508089066265096994003356868847659946547462833735019789481523089656528006005823400380767084089629000050152663651378455189055956842356009832004314862228438741580807595561081079385587210113236262163570838542343981632337613904165199400418321382876547708146849774218354719047453047603807775588025333561293260852550522662093497584695732420578102222769083466786512911929816588998610517238208506974897163054456425352824543919163936443221887153579975212482113054282283796048800080934856024677783730659691384917041419586522205250919873375324345711679479952822625442081366461220135745719479831152063496762736542110361692147979993107639451193715921314574511631521323243812324349228141135664682101310135693464662444958348000934137310713449673202777301534296605827649745368355043643069539677750698045109778160444809357949333199442421942043440086796976536199550227217896945498038220588561263894915212340755342342066225192239939361997453147151245256300559295677979123046545569447604372801313287500148699832704925256067536221643523730552441422293196981610101293354356242424445617336772619705065262796429455769710883086308971287795943267112345694663334042996544505133089120334612210632637453411881109679545082573720781374885274872650027963397018329593984537302302533181839026917277946452058489754528862425134457414191443091861185587111136940254288490323818524822142741330523841933697742975246321867084093188491092633458814478906790001010158578925252701462064423797531968950390065459367619475234749664964829642159680182813036746823128673965395987667884015776637984126891994483911551244376445009828687508231172936344541415262695325290887929730257729845215060302904619037925387149266245523316579803878802730701594507247888542442209425443245703118527922900529248599606309276979542595583245532536257056578388836887456767968706113225566132732356227224185479381225963643234014601872506553814045406876263417761923815850662563423487661451729356803769297935677339360653664816130715464083816660273406443019487226099764430369754983773866973333678650988753613146664401131245702434832822096105857320110454717842681514621350943819407443063795657126758904852251645981009093146980599479878608441182256483318715891992132696139889009626768443414332724164315031081137907461698738328384669340589451605353604092736641141555349385425336246438606306022610233452200919766646370512238042394186978002521752499590738830393774163955324571102912287942740217959545400603523891524212489259382929058454973374820970434089515043344160550676362649418049461035097025863624121375764437280279147069378622670623887704757312843695032850451278743509901686577352950150808792499144315840753691270067178581968101921227290540797162521852390057140264973212075437328157173644902922511959260926284920227201433609105014658066236953138142036958169580123385329307425790501936814322691126523162365938643793010968841234690238851533371235822222688454160983723534298970286248534887803642101689145685890593498902478703796348311257088356537656866766712579530677284867869842837640734383132173734208586262817250784390573629678347080354776713575287398069709934054782081501939365027536550019036122738299375646571172026364326987284461691479738538095349205705506962772208190567999761378504164401736386148121908345351429923961432255429937241594428625036183736852236783463021725362520102328799666547705953513524488788888097758488605473219419540929873783737290850104972158787455922683325493889163116398059290949602976975690485585761837238803347926209795289335443182840202815674076357135861598665237843106489592533308079781729752664343704975311060061500410891327136409741116534590506851457705122629336348529318870331217912288770409799473561799143141707418654122091210008170496986268510098429308294013298369273918752191698489635554665071950138658294829633382084579867413723570318376858834075354976534541595466311145125338450922344493459904944585149281294376161487474592793977602320025007539593383165664657112982208785017258675226902345873147824550837934758271279761807264686674377650835689586519729861208859585751765774187050787242769546515711681806880168937154304806991213477462773279451256642434321214718532989108708230319710933424297154406777756626879953701497999982715821331272271100365479716448811085363619510867077379698441528213760816272372406689357602069297791247702395783357924820699260029728036497585196366146297588905917208127410931122496125827609279051260195428961232905936914418897525701227846757260257958620840483985609382481862337955098728484057562801409377006646958835135983788930957450130851507458284111753131144587856737083454480830419002795753991079176242969327929088121783220391831882577097019435747527229627308360675763406645566873499602941745889296076294227638266733435584921841227894799256914144775824893852121544162242719108908504379052404408332478845722270681693739722139701121679227683597188478608033089086707612531143945635832800421210257300138763924803230774110240063151962535437013787231852137997987535633897841448795502108811068445058878762140000540601811366613882640079011124945103086927953705752394041516209951363314109430841679090785164899613007435541844036301771734815322975328219894823298756937115135011777245534354315388030143858931794139142458176412231960853914246931047811000561008540069018005608740957253391588913303198424342916220285431674896176229146844832697524568375037071898273603084112563217548172374674253296088617674894382984583739631675489808018155899393913484724060551939059439465214019915662694859347192015391962695508764850954362916398302995436668297605222929866586200030179874440436909860053663498783151911815124475496399631844286983870093095822760729455714368733264925599572999625044544373127702698407397280197217971512168531874602118755996506533457779515366864477151401851834498956030849506640167607784875184904968775448629151263880718158431326376954883377992941945052007077616254882119978087710552595363656283054696809745916047645170231246955966662520433839010888941971467755964757018267727761558346886022806913097258928980790965374518951611685271097901412594370370664423310159657950999951191507799808097494559438929859072042675831070670770508879836761070698625653395503175932188526886059228995323500737532067369427966294322402481253675826265574126311134300426998411965354652955609202494432217192897181558328245875112323026272489544417629182832192840406706609379778288281742639162539458250079362648379044254014114161362800566904603624144791093814414070546986384159246914730986124646150029091414588175617812121124776783904598192679356241283162602895841305963339144136262283147027660173987094264894629141392816644127883438855528160185764071141735159442809131096055936522081445855812675183307392204701470505276438958127851766869215400835239216564400429404248244866876846513727881775357029367842572516726457183615791734699288793568085970628716253936150966219029568606338490667218928528337095506989801615875122732990212464175742843175015624021843438784607776903787802519620488822769127504052873690747154694197046679168147576491603655662077820939319552105104943212583840532115566938817048230541120590566751261342226187010109660098115773740242342455665840071142845064211610422850883351823852568820795715550015715304693921569853261085193735228060392590013133940481875747356916088854547267826504602087611552375698115882591037205121248390262705000273603155166276109739553741337464060035231983704615516700348830091085516212142210555168374172808411607886411923008856705916700030010574913540485277830053770587635825634943776666250481795977422613583130331796512394279663149079492708913897098262944474481459696428797880062403415456930452215297507176227650597718845333205273880588663935616048938893925057271031740508872059644085577596870595647508044067848312438771370076413311977982779440941058245299622737850157945853156936073851193776920693894884277119437467038925547483397110752714335887706409690505522692651563439967403073901258580926522146111170261065317419610793019287434657904389051014068322218871979786781817398358318466156090288900642915871457128078610493130711365985806740676344422725919895715697886790774351870126149889377961533513269979329748163086337664895206148273509232349647614062405482075520937865057180449811675908179336184177732428917187014806575395683540196995799610170834490116106125117078520787835778308698102269675466019979089174858037121242376270649698179976458423471693405354112756495404076309582027918152675683179650025961496187158144595849548192133794432995521662129953553884210069715147487255483681927985773844336676516648526218388385727104712156428256646107465341627237686082957262940452123104039050770623594843434216745334124592186972378468320705840809773030154135787827439466139644815376121787432233983083624519166291933602317290271757221583208171731307272884368891511447149474185998454298862327031489373515186487283331457523711076747936091842237905180613778295743096027963335436327101582959426153953771860285861590955470648294439109135788256084344980210857335831824216695181589491699024471191959290267800830950744304625963899320603514895518410410825581229647915683329609624842637796877904160987905117191571502748282519235860245738393391569050869984425004370707434007521889772282642154360168444643624118052283814058108546169592344419571960425003787466130804042100302623005728263873414901422341747123155170735940918995036164640253734412396816239608823115715501680400872759545427590931206326419420938749541594513281511400765995973623743878168763651013569907684195071940579099452236500904791009362250304829851408153858576132238302703747739977750460256522594630682357776630490089913539555261460816441334361241204731099521170503402434323467198847369911264827836995079583362663017197245352515412451728735620497238509029139237321193802287663857158305734422472098049506593520320644176791194402862436335350679263420536678491613173361049631398803567549507365824728915328216290977663584776081413138503607301838989672392142332204668564343254095725307077699914872508566509053658670114199650868630096489632455142782042974779663412019397954319530896092429242761212466547697611270974520618135886151256178278298218028992464179885742909030593562455177281261703043934283773027455171568919603019084783457986696368396064092642364627241763057419724183771681418952868815670744470046118528925680635129084192456113967564998348609724185695809449108191594614257411639475311821553143498773402967572528597716411040090253161690249856929494890559051945886421315568898812001778262187694326729335701384807071516173899678038690010445600001976881936068827616688520835918881571046634336378263955105888307527563541794396591548115682013706415033770314173172330136456682293475845368973818860064178274843942842131500861279525798786610486411515184792791840318590848071359047804679934247334916301801509885760287052579685444581058062788151675590332432671444665077590695214482036694675061818458224344589025653505550247268631205858263255184264789696000695144861237289047090429408343156234127470800031024889104190671503817021015700318030413148557908242406552710245652706956142381674939596416590725951669587917711413185179638718467948810861005154986337371065524643741193025627340466174553925394535006449796394583615738576829929558174415486375257205740684145948719058791422742522025409313945974181556228853175162126226225274202006036586855377597007586555439874345039376070795982716464166940137527566294250235483852893938646908536082333795852287525592293708665307827786161824488944713812938964504968448201990154809786102836067518917817889769718364839582394166573883167543590238589293821452668993358732411451357937954553889666704202941666048570038550493764032380809237251211756740942700445508773931639425649583022069735403093563517559863572256978050643287892653105163935847362120741689741595301507268118846518384189906697188242647132275342442492689320146569199069749105474188019900113816861887007370681182165095079615943188909529529298389560622772812630187162407886322414446250235536122383765391413241952928633536390065158550909664048800550081670543450079918028271960041603589094192769900239464717008430745800870326098234893861610782058001689635941028762536344566387995865801401342054821106767558858239780132262530246147745055074385599088794553831844203962961128724541874631529823251877610643317725957922551171332197236282423136309034785594986463778985488792604752872723174259243640371217646931394406774599634875992382447520813593224866559653225497285612868367570974837618706579303252430026056058463327921965229043399579265378341417966835246728220617279583237908281167465444736105026834921983021122647899140170443612762531754465794973342492632919944421128677149603761642816508569569530690944713731902830540063777662977033498940134039719255312613865407110306525474295553549437644341417838044982454148688007814399709823231893590811348740781019360959834756005665194594855969335467604396011399349596170739887975853511236595711404969070644742262401273070349392397133041513418484819335362500707906484188819831776946474842014123352236639912107210316025584508394226730046715832202926237838120557123898191430896652247125692981418979811866910380383517117984529850286168089112574551258469390000587453821282540680835209875538996842362325669900495692867928781167815268995433126604764167733477979115720372049062653113283336140916583385746921648553006629463139891791961283173170416175148909257841546893706229552699835194877637400836322127846830318431222915337209997255950336015518711005050324536218256563034036361345801449277120766676956428850517307214113144682587252293454603587743898020525440889445287386655325650314687563981216740821518249186137362098286168594472983956764616692464767950721461791771918544502217268169158869290146326099780898732250424252643734776000424762404746573990268809319598134247309003144715477927419435325082520519025710631056201756625827657729025687027803117378041711207448428862708106778057583869126208931025391635596962457886685060991976964206767587106038635477148260219000621948328001877972591254840711887313689675773119978406353926482497391908588626988968325284538970657749695004577174633208793769746614448138893804255802851459106728626958992884316273101221061126567980126787980248427575566910633277497518423749074083574154495992943171712827805266666757986971520891221985914498538265687030425794377193714988087340128594630110978610404280749635363172623589287831385034217210061608593679979962497331938462747228368332082862156244083292909853454517977304901061893697862691816280288539506419379451229174708429190652852497138735569084512608632779852479124816333553176468062395688391586208235220861132163481935875186615516700665632654330192256360886572018426464511807805332172836009615799730225162575339999322630576478425765294507956727879568811344258481617949707494582217515911751381910673191218768387048929604752746810022200286395175559692668197049611647181469116070340404236841385208109027931131956120364135469936530220557622903119516976790662321345262305822818676291897362028987658944183514830277532546807379700025804302195983159349494361842224553761821752377878698044426475762745110711393297594300244450565946684459092493132995990670833343770196256941807070681894213961906804254259551552888066314312735916550762619379403547849398177072511477454475592431005474339712207346194165092800756167038291111004384482149843712550975688298586473419043031510703507488824315967891706668599541700436827911971379280614204415634561815793899951790336921998592718492293763153639105099144225958078376933271600358672282451739058284065678525700666829370500752196104058524978083415276113233870527232105039179116576671324311368904426206718676576025952663391185323559166330769148594809217395288098724098720837830455927176716445134266240003365347618146530093487423660521227016875098565548572413406801031483426000817653799788440601328686542518351538646009295419105613658834733366032995162397253439087960440134250013874632071443495614224641071631495720897944281281645936133351592933536925484514517119244295275822575979535651526523236995105212275346495323614407212754001263967451231550885115550600724047769476510516438323846775131760838431444933544430636723438370707173953669213241991571458455663471174242628160993168103130203733094779064482023967155094441924598500672924843463772835308781637045160303169735652836177706455215840695277383208225978323253148468222677455567328177911658856265254170841492784135377789321125742568274752710813520883547107822576568797081082927622080290675574003844484901550391507096101659768007521580593617096555246025894786372876237253513199868187599237007922139834931680275478968637238561922108902500444380917338242998195518837086843994345058277040916056495270360992587736663784585357694853486588661435113497433111550391937696895212745953250798161273036136329345114383060402651095156144019506131330269268605243413064273789833238924037576405595983209832486130445194618248221569804037711496937377630987529782619655493286383949321299286645742660004396797178877581459145316252629860774918794181857612830977969609159091574742232496708916281943239718140391812208932323090872495766958171306812540092460117865323033307627516055209186620011301064607834254418064579279974589709170497916413723953560972442527964574306708808461525338938281934416409243456616758571937791044046627456582886221107789505311194468934607581891238157953051899796243822133214612613352103731660547670516546043626853050128368197700338163464865585820484318762112414833026343817127396898477022844916557006633838044575088715750871852177941082996878791900402449833862114713331075737890399865775193583061103227595788611344458278004288888062915058082403266177691626374165062984125220952667351849181553144266437282540868256561189149736932458897804040284898901584216291823804414938483850463769038737629064026547955391068358463732943286097801282729966075833070690638624587877040726974533336864031654253150102486462679750921287341964722177850529337300266913144580321202824707317115849056969628861336709195278868974188790702917543165156501996075503368974489738464174744713179975109783622941552658157132406835719917688073629935095660328979176781808890035522922641761929481138494326400180341879817719339378446246396316453474788348344345911901808679655687715331231614249667413740046242506769119746528962306972000241713064182159987135739755811994730752587390363986388779981529385153087278714880690280194335104199015415683304143060771735626567572856985002650540485350396652686225987299107809555997320109419451897402406936048007626062687986539366610544175087467587726243948842814770754090636257573457321537967754526363600572575140504449270295884895136930292139423856912834034459978992224873300918250641838945131074238629050091388014347606637958783818731520761708776372707988254824394255600889556697193415088035969839313577891468387842254113741957574726289298306496142068173064948937143496044174545424242627040776028268828313661001108284391152903358039200252013113378831424427117503238263164488280153754981183709267650454830071447416631250345181560017572551222766566012631661835969664114936164290585317302348855611799896961612321852958970422964409300651511484983319774065584363035786082873911813849358958633063010420740532554331839304493715146682967863757156751579216416033269401780661943950418315993794987731929819815425126012674342484254378546249057963806826726892124849634829287121166557812432446643587638542259626399371978183087769381310269292754116743598347905644328416832704451329405235104279172243568198104798362265393001298483073266866976471801570971553403821904499709649316513464726455683409654362498041739056189004862523825431703071009551801364295144052896279038972149665305945079741586825066285630111970035834482093530689960210384097340202323476437489798257346389359812879348858275125845465035072089830084193020066855221089433067572070800995544985425244604595994699694461997741775905788904049797001937230418336484285689830086235582702741722926251047528825130066906253154121298208822815098891880180636376080852374860078388986195150479857760201580541398317727490422279030687948637769496354644916646643908673506763676942633993814086241334571332076842366682006715519283794754092747802567022534753967864305389153994762198080555360596476492630141054645148390444903667922309726481994776116115016546312590948495195545506578979009183220531436873828626502410862502849090059390646190175686183409414334307939814719213382138210405792677781323296253726231107906280003282451630342034807469534285344623277426091507990127994733146672701135998112887954089804981652449567398894268344671937980973821980585719067362350968704697906623750873842599055050791415518934715898031622894502773359712214690235157360208591000771642817642695730032019831433282899514658033650401657866449318683000423930951266218250956835108158664319512884366684488552645896371845237727691564074632815298832291697538842686292578842713388916080508653247885290414971812408967050263024338499361019936686506375603795214588787721442632814953656509118300947035962818199572767518539974736884053428072224327527953234860871054093986733527469924154894030087599606376696348666714172441173252343277342892609691557963948896145839698904171933801506609108455437169828686755371008728291195719501009483638058229399424319942246253587712617326367663625965617776892752717743021780790776708826121721798725727078341194856998661391056631800650799041467649301212218357251475725177004324855156227652204025912250128719643518931423821796659783602318041124901165256341068555701589365497071804881331146029266154269620345240409513017415861679847675572841789021931195143329987882972933515117170482049765813835057953064631290475358133112546488829398102180649954610573828680759295396679720667815637276290515150475974566304903280154321192664592152465698541228726673588766438007883488722394846628253002711840345281677725423633568002866424681549305559134255396252310831296280889887571516193028200972024801451787960694017633853924564763139298800020237145868394119650443262457546224408352559215100203740920994103476251034388747661084997585550286822850992901845472485528583499243339718122230938859709838337870665342148764927620457170993469544825556264837207920491531451803553483327415058774104251257750500572172864165141807960488976914527487111868844658706291139444717136757897221096267066730661923217580611223943381874111807133718737650066211441851353304224959994981339312747467923282222005148014738633780790781322645337802644352723656110922877348020299388091570085367750582229081059718667291553751107717439027824375776291235168087852270897097072754981737670300332734038283319474301456405916709426525027250405873128032413982090873940871181635380307414427246714390747843312486215578871898803974914454254935898960360531204975089121194823133979264495232699137965639483521165996152133222925321592621171774742609799784251512402543321554263126471185072876450506825830146041913151153187880882051791813912058666402607689620952483999098653650371056598380006811164979091002304457695561273636679278060176636824991959389375928992061189575833469194480295654719578909323452905549738753007504862129130260998156255234821732756686865185125935393654451608410004779304850509197452587590583734939765931062188206937085215355599005498514263760936835718616932089457753232350999376134307095900467554355744729523328718322050187007564759561408241338764876208890744122199857650122956276733251293243025208402896449510965426686380489076802721603321044987051950943660883583520363725864567034870882085806713376068904238078621840335647688528552508590438387237365122171125696286526983044565728451357854818706066801632944419412859382448693924718562153198743905718590607037463276250638858164236792289935105228811856520666813019414764908231912154260601569899297982304571871001284160747187041385877038840958437199211367546021489706293097167460024600690922814429712418470579144712378851945301275943105549801133354389380447842765107654720286563520751648658687749523729759085233913995655646227108503142281559772669784356426123006299510617699755390266899440244443709291314462661449341069903215904286264001664165587880429239202036595225045905915236584891097707114431092420543155268021604950105188094232712151105484834217097456189203415206172580810761777287345619653778764337943544029771225129099184232529192423888979717825990297998839460794287637166482336296180674703982750646377599146856440042401634152782253943899827840362151770659830118447063954148870402660398491560830345102571043732662626471985415461053043011674588999616307168818772804024404151150574080533656406230127246192779686221340992059521023350004937744186508083514974629767791777785697232448917387632865861108920897230697261029108618943320732980871003792628080549403029584583572165298841147778391707969505596605834818593314900333872165813304938149063874612576287792436757491019304113809345576286747846054354300233342605418399272925936330177172132410464384685212433079685552269699330437621781904853420111640967183362810726802187149501178800343818931448275062729193030027068045296054731697564212537026284028155868650198738462454883307864551944742660241438298142395434063881086165956115606366806632358939287207096405922899208927447219368469817625087290405096764967298185850220374636504311421808809382762668199768582674764833885800959854708861050519391304543244589591252635647897536890555378596879161787433663526677615980992588503855139420925336755088075953186915955853242845146581098314683941111889393856957180070371769624161745767551037162435055254085341999656126374957543425660414177650070332155801717831679913663215621291948846142679808143774814526877074673563960482296573070948429199187198248728041358355584890760372847628963747880111666419017620665124498275047073872628838159851986957701959821905640138145760010367767602479028196490068115067602211837041344696664384193033251401129807655270027267590837791965813904030620404728297367015301203867883655171344988954277372823896704085631623638203260276095691648012408158810895195295893520705011983613751454325433546830836410268048664934277690837805868191283041465551376789345308739766023171041564445513952451599138861273764251718636434667233932133960186554586707731002446697762835785437955848773408908845433155790948303931343259852284377316270145585231328308272657659200040348933757804170771577565776494567824792347950624409666581972709336892948033854848685553258036807298171006741099734600330102295627241674267119258479498071080767904392775752507074560761726513883023319090045059041977448628058076923165459623316020681991197996800734269542177334727299867261556529570397219376526861403892206844047587898628840749842952107171116944692114752258118089983184026247474275023055703265729541908882980566874663874769487543080221065314610699098806347836687329669942566952590042221763640566945618407993231008127466262184504755067475145323446490122819844129588943615786661558883238386528172264238602127644141601850995558075196288089624664565295160737720365314623007142160707161360084020281306890737260607007478849045462372179238653958131657152350180148776111169604706538373735245072770038757655097315565547133482591044380980252245277684299598701486534653892935382052551236445876299309615207237435383954625870349248341502630613707465663933221675111420612603512310139273457092662487543412336960003008867489919724244365639540279851653461654289991116421077213546726787185682335530797846348273912620330163946552770909149806162957992783522946232530138056221548691892296017698698265288037153519755041666750324377917018724045866843922693137377231963058852441727651627566808213799161867429173956568483865266394031925782938850200180868642317967864546429582347078739261632320485061272212016563483983214393185071767062210591193519301642412297124267994550930633871632987880529031043789836785588227122430981357362466064812808690079634810683278475173744925513010115838486359347903454037754264005518224340094677720798807056378168704837082428891873742238820924739201788324927485944292260129629826937894239965051600774515753701371867124758486902378467262913217117800498143536761442824968688012859157522273724099533101630032018899991405475163560005082769599341251189470097001390453182627843673142427757617025135821477477899624445096390364125966572473108189380298347929210476185444870114972714283125785858211985482575062412237666272190361502517931561286805823843769224756897915785887613809961372207866402114610547997386191513207336703243676054675763917436188286438289357550431457140664326862334669487131506062333990943742934982976871377906752413084250946044188716752552912716452086613252845383612317404267807693786269561938199077722641039259319168283553172228937734179693159278800519980315834926247311175231312807291445646137825540279102262440724109737507002268893715313267559985493621157826403384453787229038077520899419074733152295905018804674458576165797817550727278108640567111165177960533620080182021175838774027662265677224146106341476779097160807483170633463019272237693148766560409511453587684494148279231723054754903934235674717540631114536226433999733137102111267160446869768004605521262038166309813764113324882905547607719058911335628896126736727093601513017557193738833443895414460472975759951861208928848213858160616800557666009290167972594278010779307992084179026296306426055148026846351247953592278393202583400051883331853187722855445189489415414072893387885259724479547332459044984976886263417561701626458133645549670032035808971551962054704079521244774089180855282153925789952392347789194331971135901777792105068326312112721119546041541268624082428307968142504889732181763150049071024928528819890798728134791351131765593227929351711842129328112707016684968570449999133924211453793197526237253735856137528183763444708310599769147549556036999308665560277675195377436748873730822238208063866566601049235906461707217488250500839468480456012752619599663869447564597239529782995301294306171864303442068226684394401195193547300399407983148642402148200619469793988405710308613738830484077173802254441109073766817366595290573984040953984956752879962191874797847398188774958745004562933454111065571339311316458428407029602292109182342469635811076289182077176204004552800316987508238992150569242753575130214369615896042811141743177632343720483218974473893397959799955884719808200904469769584965493544137866473474222541770184335508203257237586292024089990199487571483032673978705688031207652622090633189436101002423865269824742202929626286581896586084373633467211636200598778273180019323000893720757879237617531781389399049399489348463282475816016357025837276423346790065226533682641941850614653348642113379105269410574622738562104311851571406392934251308942835694477868445250154506788508140552000581746690687452441692102467356038568539838011936513104693614962902026388114980329368434993544170386208652727761635766945975086607979712928558002296321278831604527031332789202950649942176166072805266477565036135608684181641952617146952924129064561299500643918198411944812479048502682156024339463712261364023460308857456558166096096710389265458461511187880166518712666766121256438191390489761869884538471371615153769836233636406276771111304750293061017607945447467134623419554592796909346545814399945533927936820672197122647974523861691001522933835720164044751144609069462851638528188612023354452088744359317451092926171221668565579206736879495833014931108723074904453686481793060255549573716415906406884567397425176823397832766214337225260518076663433983869051003743672174958065058414669966909584476539767966807054991544838132953450133365428555292266974433183167460263223707614651639362625950078450862439628383397981207359473241795219343660855521424193303216380335079106902156987968034338968795591795529925914334370239458576193149700209281164193903774165349852639537594640034568356663421590277849426834859107054684788305211742507835866024350454208776421931442052692301685302201965119897307648885877408158284360172557176050419185394202076304835986245037296190138810562106942948104390855576255842488806938521703565028021914831008963178305804964691180505975894623160813932718914450832458417670358152459606962112932112117341079808040012679921995641936014175588117734968716201008433694813381168095161191191914953393177957756771837244456313660331542766847401723798579169663901835731530768863913066113614367134423791134631024944377130353763240269933514165426602133319938047821790787751245410007273439029868581135998121646483801686797544737302139034308537534757792034314472919340661840716598014293034770252301859936306505505374564422664350667640341015793035736970514809220392690571025326376792805020583501300319927463861783021044376317192349042169313108774500899789740367863384939350751925151311991186118497627900104876562685735001212756617006969240299623123395499026914127773033932613635347148642393531646082342451527114336158238070898312578001944221302155736637358816761758492434895096946224686379656873239226821167102457962023459807934678334057735648215935752722528578413229047164896880759066830907335640812564413122869963752154570152890886258794820259481394879851993727238176088287207890506929706637836299032226796536379889805211121385971311756726926886243169316111338777224789680239666489396400006636334820056547504688848664159847839812696315630820963217092669621090314379333116373410626563436542446384750719068272572103696941088876541576878945586629725603885292300477728816067917105865598260387967775571845926548318532362255306247595772776181035108283906345236810430411558703575010802222342488705002687973548063803262613989263695492845009266999339250092446447393688558136472630714531845544472146483235814817297141874712819320872693572568600050021880933502079820672486041064095936788326774017807851582487149907819091632419249116807787644289081995771030676584126781049043838233839755847630367912617255524329806298038961202161772558222288594009529844745406943501521045595076285518979153281102823750305797903185004770703164491625793435153590975154255545476423953202200555107511666774928654333046161053136766769377819482868014050145186609990398372517236739880789491095118562021771978763771024620197192713935202872443800546041582661602471636461386601706772924760114241840911660659728725538131047829995333288225240786366639312949276318931798513619497654544935946389273142550158314856537094430841907940449684751070152773157290702140575882078601896263937615479514652531422681295880516683742303535213749164738879101019594307628957661372845743133502411157327311448575233545710783067512388299141331177162379956553749958513876314433484770780089245512111403822145418058153057471474851663002415412318737867503743052724115267355328847986626874208732944953330308023105489701364614358408658648554351600707877514149795471314553351403537542783054196684649867552989852426509315512052522552898927038928801124914352030143051356057022378447825729117359604507485807898218967876119280834730516762674301419683448565170512466211503746444358275457478701698534633543458245973771349020772448700514536777493972888730405756712395372736892119236535192390965040318127373094498656929834101712048095019733831273100688209122296824679509429001213610801983209800904659901380036970787680609004307032380164631572385787635844345858275885874793168379004256796541536153298576330280822429425715184522595651425191070273267392716632769560858654992194704352611913756755690400326055853086526913685274412540751603773417334345060675011304548663209595150419746355934395367468106799965649146174269976234550949152338671874258074831799119285557208896873688601969857629010819373399671954331957773680993473894858652659012340966633819596071237745860279212624689655552410670505894861300536756727347120065958987573333766331361040619623166502958780574664150491625080657513263274682101893079642116911026843181042084708223192483950367639470165661052751842032995034238218110223113003195946664821463027489893001207543011096625029631806808060332743440206392018770676862126397308577191266507647443499377047502965273268332264955078896737611260112629579018444094388970774945367168108327938376463477689377845214456128313204667730018943169961608622906164934853345518800243843995332674066350884123465080233735869366008574148774343623494968839454569826967344664328598263888661059655259280227256063087133175161733427466665224250263749227404370260409337442083026110448210670882364104386644731370074971456694702344349584581304207662131671962027471467810044584979749395845507335842246364150590274100015743116411956180178844413475098944367056683897425759889462863994751325371685373673739298584443222917102275816702287946002916977943586544348242345033328067695860840616530574597292541147983196286603470357243321956787384202399059177107054845429017075597270922101854963573002800986630303143122097361423082776622034339884766219909432867250502975849394112122889785263554567594335217822280516870982445912841257843558031366411887096090817209364234590183071264893259415450793716011062618201231148755389118446640303319741249072657807726604254984381120064938872120739982856472541808858990284795399461068362160496201092112025686602706069181794605641010468640700163255136422204497155886748889640945820201631498344992894173948867882930130921532257098360787517719647182150548788449892745630220308400765708857854608972318250073651073713985501595948290959452899986416564145648844094753548868663349923852114362744187978749050629255332381737567269557174755813777010143873603275939747228062709007080513999542294451740558781143539281040203588195607501742921340382131098268933380311564711231770745353650413573030017758363297733250008525213246616681246372528139782845980267260232643806826405130672464570862053851101182182852164004489806434958387315641262906579053004628850088768763382133375389745074765178963246821105408035827301368413746782265578548412645932352750204305333377368449540752939651718028834080071917647247016307413581363315743342749402967606301406142634474120237462718323101650774044422783265689316876098196345713000753067412493543773349498380152712967450978853694150522580045400077311901697593863705032938666939254623852332121920067095146891766010035259449349598409178867269338151894253280696180653698114655798595303443724535217812217142629082225933696628767211029274145178802416270033681863974307052047536484956842411002526335023637023492638131781773380632484624796338730035652164261743187790310321193211934114105914528360565635447062526646682626682703718011502521734186011741888969736628106034845742862170819114032228443759648212127959162136585077689249146329976512556029104672559652882377676042367079746761540295452043451438445654458973603107436145588104639822418320472537251925990102623856214648968617316548169821963779013551172445872091906392568606292255522277772005761934569898580625061376326285543716163884971708625794940264141524403127071367339777875945932641574035594916706026082193463917673614785871300557177068982783056416989076307094264187515069391751432340416415420147781177468190599198948677370504759443400446917325459335790101697398627694390749209448404520926573629902649077461191667692333440960183732509683232583062678883712816110802220875964738470308766247322837725175194042529785608396973649407042744389986180050691229652537649943669215164490222565829620781949105404760271289366340644925550968393861728960070700569847890687316918422974961604144018912978603213029424806672351782005825339324415433577655475954736517537846036715159304275103451215998204880189526062246241062501937518515257089601179944470432904426717277024078879134799807538168641045950313968578607857706581649951879916081518246614775838892647847185155653906131886768550585844440375364079997801300599414069874424202809520807291500595310503408842701870881718030749763897144950385136922607202078570495207705916854041617069960535023865448760679153762362643093864516406724901056748100438814350955762349779105089335830180029384529620701575545759656397706315077591385612628814674259278243776513481659821993344568564739961511808744377919400537299808203598894488901976375230035347683607444929931256715839704492440145319626826022943690556868189217491950453821415043367956425115479808819250950300494009599178403650657560646469303203658167952619799326063629682778095804609182414393619943900746323901230624796390107175053559095397581469602639117341526396343362874389933348328673072457474415180133674926479184966114619937610178735379360596722623705800782965580924626957802818961596411476331256370563164623998042674381400491994926851868769343291731609532825969232128496189473287695125261185588271154683071369954530064528310461016025372912273729842478762395109491162515734761778685878687004409796727238491517140589742852147945314370871108040904779778858728307350292977484074384598295835398614163071589541072233595220939892022596760904977047395877474369429400232581095543349582019140223943457273754091967271744519700692718550317909733827192160979704555897190918647507361197993124077140885341581507130835721323066424520626650779586855764363640432305459966040081346232603791652027262565017744266957365860470316855616954740855784403018827854218801727664611729821479009391618548528229238457370390471232667913618589037359950968108083833998758169841144930996386134570238770244604102688190389441228179829673522149757090197789221120783289420883875875488986002115131811249138728846788039028511700431750011875722726352779959956017512961632648456477376398724799117156368422261296284790538972017429051727426937386673544074985785825910342268727733449768521425788525496872763019297072730152250794167085915916129404744445493348553422887290240681655651659600921608017246156736780894521561659185324345640549897157646735496226936832988501672828585612568856495281419616689809128169373380829841120684087493887302981116506709839007911142143912528960426913368518271609898177021193274038289506306538765072919137997413230589423892231646415845423100492314638641582334151575938165567299322058963575080201020780439632571628818150954641326346483530304101373961947137121255982064709242254899472045862552454559998318314462140187400665535240256862387666768387584087936458387067398097869391753836718461737114003699406226055770789350012679632953349131616728292540506139959229785460764579254979442150315159401036533444065250858916982240455663259632487567593668437858209392065991396894197838913261746185773787881539026418087910973553561588164504979282868746798155869128755176737257699287126770536100957655857027187223940478378064690370034549301225768385365043266565725218131314294996366173281936700619361332512445461280533094320912898933911006629978549467316967595321369485818728483952665996838313459640393923789361235048268180883991457128102205807252132821623944381344465280688315998882323017042219812128558341174092903176400672061278215082050059199003462204781700300746501780585537743269646270893839066103599174907176116151323005107873815330383788633096636516186950659092550311538315121263772405087311479563316723893644095012430558974773728843196730512007064749540537760977586821021244780310150909005809131047791685658514731639604857521684077033568835941498876570104145279632019913825306200896599475600886596071972933114877519559824564137942889791551936530554258162279365886163029485735891585800537413202208733707176289627786418938966606235659694436362891479502911431154527521775965142069332271918503746376487238277927747234814515403046661788842625518276734367429904735553132491949829033032363695783452744609735605105759944570231629278524322171296650481516989896500379867623896046168702100852703588445932266719050282496830249284231233858528887536706973729248746404383122123372396019420954816709690516432096675451993566141897874162385338998745444168791897597777526373677665564239109112583238957732721565961976306838915064594237786001344058763971489783803929073054948542892805558611171959150606785236069916678395323134976475283008457273879086095984651285917283161698708351443491246271041483953100004785183213665893525243669864279544150436750288422066547155178870717568449571734718263062122285900280111139191075555912087353359773317195913103882680653397418490663129676290154787797450856542162120672976248318181666131585159391760059110092998744990298638923592121452430125814652944056004924260732845889927712962627506362906923676828230165504133373211254906986920156811188192589848754025234413057097328116541154929654837412262024222087133938590068412876552439414491790134027150687381228258461728968619189928287668345983391011912309008975074763634407908225160294046335289709944452477185546813684840784403178578103775065115147141395998326001976191447432169585971975476164278461720745132814976920652576889743126178430084407401130352625680258275363138792974576912826461841702762880619682143945917312356363008809796908738593665788907603638962859110531238128816899081536642408144624278123221244090136311948901343261543909180762255001997546383513684209785825132584929897829109705728157261080765726043878414766710182666908695488489412557283972958778520887147900847745613891721286108995728610752081499773818126779797629721877397270291951953583029144647938658459791133984049365381570270247965592971461440931856751653040399687698437729572587938035216513950578904495584938467609974291920707536187012068419550596659790673361429217575939057362074304074864377717315919906271934977280515893191302634303143168566186036681847678272450868830239200413596977912448441854098322811638160823055906904467690592913437953745027964204488529065382605538941893392883487383943013867273475225818397983969969766943299950153280418996647093696048906011608586975553326550246388213710457759657934237155578135871974495930202875803097847701746192364024774986025353223386577134245856603046482631715851837045471462938529874685950121516010863282901847143527352383670568427607805862056894271343302339510403165478185347785098397434462318503416804432350249664102242771686716329888775373281936111602573890824961280853523546079935987874452833260903731472604343124603482592755182824185142389003302844566226986016976313499838695811303166337017482952408704736668554085406694792800124989330682728290232894825719347986288323241440483159436383071934712960732985838704940179590311788877711083890446463399900687113375576338199070175892742303920314288998228115797445853864194512892513229055708334504714545768735129663090328301571763886738511755295236112808386370783828877562040890267183485223282073905300466381875706833166290400418368884477662505414093272155270689963083318073977095291418173936775230882639944244714800075138332872062151499754309233093588883248335094476906689080221119850032330510102387247495427041116449615098666473505701138425929207559078671894707597578557600602229119540867099716930787177688939490602592622308155940268650479029410326260747021520966865618531138922700672824624612864827348273063771719969238879298774288654389475758561512903639020799222117428957415913402588823354267735365681336027570962063539610082928537982650996723709881583166534921953049703211739883244600421691947661856730296689261323283534869320863035315987855546581219676088624648428733225632567628543672653459113159505576695493621335921761426869379820038384016485178373149361505923812397005734423531489947095176224100680105115691440000907866405013971519323639731387562208093023605180833561901973910227238238411436779505713780418594979253822841919142869838850273065861591648579260639935238099799662700562483766408884508548064565869756760011870893770932276532847454414608286300548313821458641519643519088152589929093113339781378211849443858705534361974592171958580309898879065986332366434756902181216208814801849403168524227179502615871312946433548081755372873197280592835006288928080892750388912272441487004673617752619397251576300676054109544601444990097063845847226289933077069039420315561026474626127318016268173815070316771942317764704117131886687015730370653003637738877976369752629059961012769003409447375510971390754285879723921486619690015809756628589998400529197334908649132113609460281908422709732474328746043017269473610845804092764392484141780069801231909585886986199973221848028796008888229688428800369028301030404807236893477755002462248912833028235509341651070565315381924981982244715107088671405178121540901874423971395919427637479655727117673358538776060412964691621693117710427533077378086675872033259753146370947567982219727165038015830793552209721027085391822077599240415885078135719188677819929442872423614432560687872372001932816943430697201224888130447710865833190408404922956053148580556059345822692282488961971674158515972954918434451842451154565998151132252541873571686159139612930909691473005113501964709962694751540446265263080455814446973809093333870188403757805037613674730005331428008782978605134010245886568193158389177553186273434106612335629456509590893328911789250618167521860976045870471123085999207265900915512306184879947496298264383049905620187612810277955070011590252709149377091787946516157969833584142218577396942902201478026140748139603196243284420025624293627033126488154441128117645894518655668895218337228793096156610773217626165017359728953223745563599953325913037861597772138391040797780054282845897836580945971479434028104423733108818038139230149345166344219922600325232027479363631031880170196156787406901258232682010602817790049375731766801717111593076026437644198507799589027729681935487111253490446224595979731482975478001883572355500309511313482758597780798714431366510468976236265988707282741758158775065678835499758430684851259789706060738263099807053628260022042150254274853364289099461807106192508305408716130933819882182952092053224209914191541967777380613920585983760593594777266806438363030277234561480296709622817445707489040972653676426476570130972600299358588723983042340984600864038936722764873786714826996116249442347859902246266234575427138333564016439968747552598996874339839387318142326856837949748535243160284681555294106988493496099742814806084452880941247697882530168973145984253483261914872384450436562062945631419259610718932889367136849034512078098550602460776041440586204450487074715729391587417880954873207340503128808708898297439989247310041991454564692644650336920352820499078400096783084901953898711048612743821714820060569005967746003675109067719216977493806684688181365829027014787608891214502842768213155753380467489148167743235145392079739492832332511763183546170208286529567917870061356875753800647139834475601748068202552439311744268112992320816714081077737335075622607391798307370118175380968946009291443337694478788351897978966893475292994077073457295955364410999523332990587710394923294134445773428725027526533088308125320971738377060701202400190250380615283576841582397750421539319581877064602860568376834954203535258550318177236480349984373615799264673670580070214374880540104266523665468237126178065962510100220536166297276134301748743142194682960240941804542637046669143839986734896860229850233551959710882579636673551213973672457149928953437020316517505854224062621481858783698911278141652446980532431531460249523944379220566070308399972011299227109710659788225302651189476193885098656888984255167481707165527175068578725525543352347411808049005784555017320425012481663187135997298051549592728886880229664686503371086881279166501898394592391689455515167088542605767325888865373712459313663858338781564752344070507695302087490174575251698435461890245731445809352501244398292126414113118770457688013136724368143012777117064262160313820787570165823959562254268647455602358067200885458631979039613905522914603526515518547258091202018015456624135617338980106236388497505832477369104636855537438378429960267601508227741953326022022402226713024287269395326522379228677629605825075392572125544738463437605760293517665703999520216955768737220813317027717072268031910189293304805676351013039702154428636697689428168412308834191645806455639788576158510265523805033345130377484100514547523813136302189895911406136875369530154444351102036117549668431884269625618898596349439060516565121418553997903560681932807317836576404811430664822587863723239983607359722331153844971641931409302901657196291154229998718200046845175681814909367109596580477207601122262489313463037843389677409241829902085189014040367939635442450669658057261571855788656095429670821374574366079395960969426201274739426551011805863404984726915407500441463205415910490846196290321802066772993994302031751648621069872374510767148438416991896099788401806061055207327297120431251381053236039401428801185504689497888172926867900674343989804226049354016452829827963408043373104860563127655808503299539997947927909446368886095770827026561088283487548578817480310094544983510216467680220107247477780610644149398047612108266722918060277952218207224162058642006185785819860760992273497725279372166415274534324669611612648750215291742017113897630143815754666011852846917649061491071029670418075162235381929214310611983159230022148870797994925295914313306599714356670752606176507645542280253087897231164609904765139106063908156487226261495446609623328650432250658452440605605780326639653521992338455365810990430320598445273277922158317048488650397694694459005981979060077245947647237762385855281015136706281209151646750254590667497385581945164504898793233574269953162625794691352562901027567195318730465099691774650310627336031245902875732505631042636250925365979038780308438310916741493689081614260745708480793484972251944145009751390837417794489047681490699837248711645103473128272657836503365541155402504425554969785922962226953924516613226238823328015811154259617430271811672047125415440225775684165854705695240746987240826947236647464037291968266860921138563438244931777637473406563526219909386240903023625558177432018894257102205557963817426379132717241598246538422477924722222909728337671256478831344373284498722412268407123932784019374549042176141099974038606777462624174874464793175766005853639258374003523469052080439801317433272826659319436564560444574965335552532215310588280953257029803363613947244994619661342292400017980828721401179188664734943260573375639331266642186716235118428076986308906117672891002182034002354302492631939083675292544926065024059352587503840174623984137678714556522630683289731817475015067073053261907104342256000108420368752272216601506174503011372229591159881565027882946711151893041862805200298821115477569241406633926293161629161305076917970876758128899348575479067849907962049473631658450987603319482212795938085552680642620172904842711116972456588391826219996683998447476665685940175241320521904084721336932335549588978890589935423264800501334524178100446082792040697957183585921004776105752851108126462139243546591405084552171481751083523841552350411239126902175632039598678436140473576028782229311221138974251699988742423521525303490498397531886720989691951920205969302138430250818024736741757589992267704082124461609066824611117638650769962308282140491656469945193014433690261584056985373847359482838802817558691352775194616026864925453348738570879028008168731583755257118715521119296399763635463518054740138558134871592038317153700130713405652701408189397429828663960523190437894592599636680952282913324112448652705552622712950945660997284775420374516032301437219869513661465325412162820796043532651722765482862090452313288148760631941304902497253442042260812292579976057879955680746410720920194203883726261428305880671016323928098883810644137115253131904768952984106922521720161212807270875317379178879975306240760844574505544162745884183701434503395000807006429200039499521779143427546065739018149545650206910682553315943884411853822236374771403563732456049102758613998130792335048757838976223844840510852673607467560064339464379805137682310302787727774892489106564222146119235002832653905398229203562973762123507367594566744617534786830834767655777880645637150479819650902353016815275793226445321218685278854068769766935017368362955538873830798826918922988586828993330566871543727584816038685786316885521058010715788356874561980433233592661105646807132463699782695665529174954616486945791656930938017752455769248216646126995492507978563070774154502778695135601719564956479051676222335451331052978716713299626136440375255287531687133906293991752147302375427145266653900588483710640368145797152388647067197067251641289576816962874509764921415606050081327721229434429999264972061377180588838857841249941368733683023863334950058507984481522034342598167773683213152028890378311444971166307251360224755736718135526475924120054683138850391699346661198699808810839286083282508528082445620213725069483162369234742241354176478037284754431961603996177962296798264153651263909826393921673679182070160607396083920997291547728434247400740909102930517235550877247171987220319009938050273411162907895348954744952959611690859686937697960472467895599130676688064112740588848749217095326286296943449059215597413869944976942644293076073589143226267378508954603016025876185201927783024793000860928597660719374159431557337363074496918523863585004067416639609841691283068803981338582331017372941624500790690957879258192845100497877618377961929954799845473308396682637383622432601309643452190135914999794034244993459323986834619613783334998768213094594753905847935875437380081230419783113834289659455546287533226966333321400793676920040482257548281576536308642198764787616993354303161620791194223940966330897295715639297386560038571932523481264640680856548961772285886404134670062986562214544217369047551070390044028339006132020734450027956068735340052522773601762660854888533124915652008334078804576687313486376994589296336860277325637788176887853422381859883403253230592183743058345041475131696564347839805044745383343593070672531592823626490963695689768163731769554281873481405235720914101629090425546972349063539263142609983724196516369119220313919958027977532806443035407331509083381521405285269383318605431933467184373035064935469386220930802263489351116364314134491377350100902980915967462417546322776726837030781837633023479265275584625812769270668810308679382325780842020835718906744539144195709804417328098136962297271062031880109875184853050246331718804018124031865381898364175477051880014862993740690812323085665418734725881776423016366057445113764769630308447103505435779766393929293334589720089283842990709113894323958971531706661490638020014450822559415453685244230992533877304303545881558530139266597274868750910111971867592443655489269925176124778700216281328915676259930331412921101035879810565820357955944715652735061164779013848798560126922155370462388532527982938803165801240629713182969674484477676555109636224458398157759468038135149944348972148419625417295205930569149648534820917901964405649057489271711480699110911188329974392214074463066297664262098010318799115985253165450125995199673499401323056644681539901077258853151738074663275590547568100979278928404731620283251679153042115660955994278859431828962851314100073806863655703774439907510825811652523041709957583698212461876239559113926419144312780773150411009000589750486572382420680071378842819379986591352360133784811641172537790450167300277429875040246752545118173343911115560829319066220529621228513806509609751291286369681798495104088502507243740389985861212157374935649608000725293286738372085140458453628800365598310955628930908866755170076038354440294753047185181313506915501282167978235432877005953418920151537120159338021908968256677136674243737227182321678956027299068607734425644992204295709531383534316598996642947647322783464564398108394413953105482583028614824390227530486973100456362922739936816941129410059028332904264715618418107964848199542205445576653997940945125687421137448184386014698870317036391409423201541558880400739643243566706708058336873891554823207661286763238651525840777980768664645118342809798756536639456274844216691194504684292962944669846945412052424965381381502321648577723822027328963206849772865858963059231522581591485390172260881932381252697134263020777168546211117771551749737257949244591836470191830834695255779521811342327909359539728493284847243981168444716203893872404918528094798764442119377155652556216085695350362774034846670313385808071696586572143078335684415772156042718539715516051069471698920735089334240121648388676285821239176017035783169595648976131503030535589511708618991604244853917499748802363311375944235628867223353341929028607144828052723535169153332343454144114582542949090837433927029611484302524800549644474191498105302345665390855035122440719459418707701442915298132922288183252349059436306868215725890983902728914285733003377372259441490743927406966623008003626258335508802555980280503786461627776458472503957983891884369322486372010870484263502395025517542099035243375246706634380801843441412095167112168003156494965889496042720606988202266973748183178774870846662430155461636111928181118550716168379264925146527332547406891121714017333204637350007620970235587027526121907825243656824746641560963141250465658876943034060750834108742179222998954550663240641856685223295332664464758246963486616778852104725394223498701092957153912337811932242941489833173078255495643524525710150605786638163280941143177281831630395711150212783882493653281375446048091073074215418955975025283655522376954882011875340096113354002445883111580921391887253195503845788720535173199700785272364538763825118352176780613973968487226684770773104703949856335144332233552697465159586851846154959574919917797780118403662191359546308061683330279729490386160318169219128789401001540784606513649590669154233685397220419045778838612150544202283558269444914757602904003522571740788006723653253124186059729264374003207655159569836505307364688553530751434489901252199679519510931664943012226012789458718624992494930489150349477879841379554974190237709404952793304803303655790342281512747339167430780656157738087322022200772614742986339233012824732214494982802954914914085356905555609382740380125333744694518483391497884432739007995318799397749318481419334332651906920141043540931175692205992051690560532437798383702600005794634996952810209176030888230648014012251794618253415313622663809277633709434266983921338450371696409913346946609811288974223133455555993418593371660936911506111223058633517966996493958217154906010292198307287505422869102221664774182466852891175262103821052244498810949426712597818384308758993597729284538386106172438996828805674164267191919105995967797502838606214377944860220537587308910033821141292353315137424728961566366681818516444404191542637960869026765522707440896651683557271512197702832941375598923508536360094163082044905894313719087952181223900975725949063970876108083051865779731714540047842514107617045203704988605832872432074036607336103219033567124356058033543339291635585368436938168652613113832020155267295352728241488895274153801058226275717220000787308713749749938777423759259014552879575397095199736269071203648746729881631785688934522386684962044902773713572741743089056102773343422185241623150066292865028558941772841430838675197648772900396360005774583482042727622954304795324627527033003771977965689218717253883074644077978790431773209505421444213947987574164232694634638289693579615143460464264268122738866006483078315618591493223988585111975029831614609743439848798811961238126792485347710064654206084289265435885967312047138535860633769682194872041495178545275691252230660466548129036175233135598531325815468384429174290858825510723992019878041389611543848069854496640007371703792230678483520806664118576262972474861301578541644096393988755458766473524029293981532579699147918440355660047119311286287040386332756166713762052036249089615203816955098492209710594012432555233727813782734739780038962382685243517161471872378969696750732187030546958034161008566944876133545748188014525133707074197825934914562933528667632878100128881726562904580999811970515333520119295016530418598810579629495898161170723870741765588344780781902174194704105907408857834795537892711026323542888337392715910273493547250827632395548388683385399461117961687581784997590795375648275890411188577186525432761935308638051701726497747864171725271121099438376843582778878346233996361530391750325003385488947772849374839188209850982966703637087118136978374786801797033704923362877110856771089917426882392692021540790341559513817811823889518121195369344507647958859781193151318691808501663828286379182723656510596161264691492132773612080381284587991266700305195643495192428587035798708605851829462536924646200845007029016540105131793662115224137173016161491473940913618257320132089766987761518884217675336710796329680001818717701057781548348081695784310221702341225727229484099018749714256699348974763112783999684766098926659410925947022194761386983259820093854162266518907714024744570942253332725833667260059578147974496670604997063725887859744192264254721494211851674727945654957340726508726463606396415543811279331385167147061785736772288468100130701073677843218434670514516976430069281768303434678406141425489440835801618008087681035834011629580727887534848630745268187451775533687051770033576180575359733310489914557996043362483156337059843142936631796830607626340445951019589849631987333714875443938132215396845909088802491757950692605679430140460461781730037343408362197556291382489004510575844568513382901948139859427763512833171409721398280182873448314036986304492058039142261530361446841914767323157787817431541002415689557437717408898460466190549016126700760457356819890008834279023191049096728540650783547396427716184031800235328070215760925762793493287793000339879895544927385262513599720330712123089172966161542485936149602535625600458703481031002696174599071363931447977275630081490072428523915304397370089527616883246389674576883592986980357221811507131283729975041214310652112495242381647805805447551580310564261121011608821510840229350722159538741184371929590349784558602299449825361676267610659045340254743419124903175171958801199665923972201322322857066464590199762509774989118448269487027624486334214429054119179037751314050644698483826709320281604132117246574339303640067284063238997610545895960770625243743745297381697352812484539758514891379383301848438179958016307298224525513892538606802529110821740784817982543774921625741348037534967886321210764001653445908732619151441036401324181593087922046623506646656698048284215107341662962371112128284256656242917433759511024373386973796680659673513564406929166545343520048270570363568365095371132255187927504666513684863402012867851074661443824537363699225950061708306990973601777798891141218446121987024041018572512480756803113316721287506535595035334145099444355856683680861552887926220101580470701601865413827341618638592376188598839251994619868190072930785291455697131259736283916185500569497972442232869449198462955670911894990237506038938342839860695883387073934366822618652402265848796152723142674096979013522009168387520466684286123182970838602700581160959212083255888315109813120886267457308692859699775959207739091252221307228093929239779764585437812037311273293970044509113118418180327676872057838772909277492518844098829914083221347324966237714838167111489717170737983095696770330657596474434041873183181329037821401908152158481739873728603363766017214577947681750069188172532164711406973394152976271530103324730752358550991283110862068723508849792722876152123480123852518636232029325246642462786140120892252581612727118780261413916123479507251943438363736204730065502608002572050884185291052635720306685274851464645731736870691426571921524128871260345002742124366497783320753546916822499560087088703276014457570411108137803486889211997822064401624063699842584380740559780581165523317481873223855687580668493195499718532529835306888010135221650985070336772459047199820418936681704249319402576397901185727578515616369897118480923019647665614855106776799638736304779816620002729271750744738271615111593096023951098868500022093056302880701782774251026915305720497661088420846438790559865434639347374926978382082669169652914973598674617779097231849426292365636563547631646099476458611474575304378356982631460919632925042200337375146649424371495374250778927581004741425957264702511673467170860388231609155154357966912298564173424237161390118702112373077329942875018326588019104424195654642647917992943708663161564725212252233314575756645205941016207772272441251444292036176882168014614581753332172629548483438098505711479833258378135088599043652958527903912272204930685142366358248361165104657316187842011273453415769492794493573634984462265253242229213230637936598242883111969022668992552285078602270244556376955437493427155837438093059154037776872909526295095801279327842405558342456624247820972274022531759717826516433298212108935374884032658642574910703741434025096671730135220283675432190524495462637584587193224357372141345429815001780737363332808998576253020830749756630714637211112922936032491024937299891083604677949245029635372015329297717082400643922299310199489308036363164091478099120334286719763041053573319519029388247476873083590253870249043382481615431893716619741923716424822889746779987909824984856408924491129494281854946172047103602821793337959913179472330944044037569377052472438704563124239554255089636372418365357311789934381230522185229492652272847644311645317576978127653491656081069382097241407215912868587147848165495912863506754425991034184779383365913471760451441330607905606389486985535940673521378427880547637681758268247964245791964369986648567646367301704751288397650011412615297683198776740093888774612567849301473541725536884231947492593824577754771754492639763428784884828636324574054657589662142146507819124096438311949421450243929711595640541534501314049952418326587778068864521563622791844158013951374295293339276586111410772614799659624118796029459784545587090464880266186957596652905478497407688663745795854385002182268539961332605902861039366010750640856093393675258559937240299528040772084129671612684682852038524671782886614251746991961910333390418328496126433090789890563335469910082988732911912014243488431537895904994499767874414867857767448350790026062247533423389519244632800531333100483480766771053885613947809163962174365436186345009430494393772476427155306079542585324370620457699594083336856853930833019345125112353210065554075672543006861610020089488855635247761031434788572651536384555944026757350139501954872872091651013393300569745462368190599727127889654314991915501893716166976239659591213554680982114173553407440022376066988066708759370168705271033989136776842013533253921806401902037494641736428515455420257744258939014240041357014246247914204334278811123516121059451051700918523400991879549474940135299956786241952881803881455744659133336875949626099589599707648141609106878065952261903616919245175122898932413711068571387103788072554003851973088538453214089064496680901222317344360900470719714905310231144415447275785895936071709402096368612421267572958545681755017640816575722075797706887239507412877244259331895046914063826374075789416525655427150655384954402061582895572793230754980639393905601295124410612537869642345709462751620400899153034514384997883741869738313766057863978971235970977675105815160895668754262231888455793786035140402712315394887401184390553281163858676792327648831822591645203096754115861592569101080241193520318601860973143533772953984041927900344518384247939630355361683790183826088509091351635700634191509223347912866308489371438686824792081708827751471628593541429788324907342116670041492281670827036362934071814383096515586166981103114613516545558355614024918228700231749528857336482878860891210535631666591581424625152887257424830403512848807170321827387550425894440569302184421873982083493076129565968579073822603858492990083021312550515482345694573351818920078333051924455857027211637689804384580550587269830182612783415059247610370544114466533421016791543924004091002051590707594523746527780124850475097411976505708098651770754915035709077569104611896631730465569244851245816572434510251558671555661089516378060579324268302878350760140187872678440736916868039491930395735470979738292757280642256831432899255428521526660200678591149371280447887626247400788682061544459900054969158792548339683255836073105023841470615487059880425595914594559896394137244173645666726951962819977845391707403652749918948861205489715109892071942056825282821223805826171454285203010502826379329864856137298594643808140806295095788909669345445382562228936183301245133256134863353686465467679815301169532736444258427229985377564590109798243493465562846537112608927274379966705088850556552558403146156268767622122124828602271728939597965127053028163137106769450087832810723768291632379912473267194161853417990076224365512165602455666101819526347422885126578804493393757042357511814806204550817134927148005863299356661307066205008664716078347588497416249841910016659931350299507739742002827739559398604916850714326321049629371346888494101861501594791275239127152739223152894374720862985707515741670168144870238565531383704740239820260849399423411702410918589572314857191707169684922931183647924279255759783360966763327374118087007962511893865709525067412779991912146682211381879891072486308360717489732974595672162206714901273105864530588877933087375672779435872329376936906361018191256226555767138073590017311922900181209631643605403640009073452948429424023587694972715168813068752672642848065030085119474954194272692792885783787646037488962643368661248052340043868215705734509672239394887522194070119764995631609623958524293756174813215562252508466981395966686086516177454928601990178310617028857423765604956408040234216038767995738219591995130439991515513009953300524372900594764738782360076137030088521440158287700353287219090542703221728427538776150577134851457610098606572574123988682534080438571297046797440022900435397076044234479682397068683197207972531437450800533581273898772997779834904717064894262054708119025628691494874427758966499007807708767753078734100266709061042849862146868313878210027302308493417555355987531921529121024208188322079845212940860375204725365153624381260306683321771220034372337376077479824552473820719782888442024669964377141806677928474038450433393185442260826154248010726695321599489717777245220173746656951138410466945131867606959148373059888916962685444583659104467999548985200386236567922783857392660362524446758641293306836444340182941536606507895390374669207192105235047886006294843644897111093076925400100568747857208804925881365234597020912301635963882835954233236783379839529513099327467241974620386928181029763415791123220113934581182249673749582132173922428222079408633416396429897433074782806510552213505018146093334664920743919580219393450599925233042749436125866835003152973109543777164486031274135946879512755579053762276394630536833935476110046017580981961809165456939935688362797473000333347518990218851252482226919484050368679823841864634778438944753507380201008053870385583096682684943285370323101442741642145680141887975221539113815479930586498180731194387136739313344226532802189627922727929286566501506925631386562392077129702168712183264808528804534987241005765395252198669434622806801488154814777081191492312495814629608712607316335459892641795689423320973100613009346656337581932460595554983359860007278783369971611319818387512925574636349853666123474268775641001440408442009461990575904783584901934218422090677061288526531478985998278887029653467857142110235604670596283668659790890028026136030568517579405950277882328141283661649766013062024869075337269438792894230102321401605140642014439391420913347045888690066616393570721208079320879157801158460039488576219579717357538142426704113700044732591224095138414441639339527420304120864129901070998020406762297589184325091082220741638579005329940873916606247059991952879929079737888880890364360803238802235814843214968557403026726427821832567537047092796459855053362138284019745338672846962232730867853448250359031892404528201707637243900609423486999377388964664342801363951010128475043717904154756282713069644758770280925957557732039007969934977666796112097761472907606099538224091729392143154839476974740813605261736716641106229967440988580453100467276442157275814189128194521685186424050648716748738121565122778806957540410777761334891891775873970579017192030320451975149251132101791746078035622649222513978602774024710748194054535700783768634911637494243269741356659606676332865618194827036175909877290866766238246812352930028533370884414627319785524976635880012946232745134593785344849333312910117193101744103394805753295828691522480677612576656007140936544992943438582273321038232566872590133498020835891959085765167814995919809692626051641673128955589741883993214571261522397343169232320656823788773002261194735071776963635163815364237752792563177947786043479850054697181923386718252582510782968142347394234811580640801908785562610625512603903076998121508206865905995419646066310647546538363619578811210876143176140783210404191721080861502030099177560766973839786644152756912724230811796147410257192614349643047855556462016942922988100710123027779094873604297440700613964464251714262343682935627550548347244754478120410910436924310481337653509616733607135410606805065729685959848925047851774533134927646641651090278081413890231848986082692984383543210738906946096935003576576514036512454185353577957442156565065418202026491930496074101710865991678844670918431247019535052371849107536753688006745991262008712325735410802709376149510434553215244519850606615797599167126478334232980697852752349996608819908998632829262594799701308079007140184900136908881464810610961488226775739053745486099828917794995343807529642591954667321943863635829222487891417229535746722005571756032691072381837061321461463269694996197723487520936475585492120781556570104175091879503469740345303647270036224302646529302597613471249777968355873724508157419565511952513019228938362947252136843505707171173553230292698913460355089190244729274130798657020824537604387275382443981593858992079434647994509363180480468060608342205688189981464996719128324398527385886665512143574092663376510471823302119447545741199113155231973529988607784653877642092211854375969551709780326676568157300521447871584331979233759508444396698584415325615309152558929507840823924106610000212713923196978444101548387175314555520003010956593854550656397895771346950895302366653711764269611371936115079394115310543287449338584040755976561885557177228060154318355472112165398894845309263002502596620353428560019204747798283842571350226039138847558878309293935975277774335517200978342131553419841046985160068736412386929335459789556396745662881932269670072731576243860039916600905180783168084036508276153675357468093501873281626439954957137594510204675204892610407270477589874511304370028899208777091528222618617015058345462366509225020432440418998010795547113216505873792906576866538679596939048925560306107765850260664557713977093036029360491736511045431061899397374589417182558770303350757085246570796635784130128220773390706619506619300614005812830128758520351658776100638558139298839774793701926013455542662745234648847950977248002692021393347935888391116995891614252515229161444400314538827155643421694174141397513594789732652738042096097923009321273628232473380246690734577561264023246535596511413841201140426761224216525169352234627454417096050639810834643016415717796406456457168744356078527727610423592292795114061855987085677117008370264746755742011294087494952213667491493982102664682503620546710474567620743281781775562314122677425088527163338705284900920592529992696678113824320718300531639890764250539249512669397172789503050898598326316270328344724947346207039460260178369994213915653079203825675255978879805128393613983968328473338133254810913733392622859296997164114359034282308823069237207723581783960650076369330649785476449079126096693587218136876259844988861318991460586041350327402881636907965440573699721427811274352477274390213693893495088583617775138558528956550683230858401012574322170863791439535274591666133397853875410563164304638032770033899724215941655992077682813860085076285147900459404495594235529192201416555910024182517112158893423303960402156478469934739606807528297102549505429990093364467362655936732431373322815680620768443206448987850317807222424262167477468947399562059910032680427909611330009238203240472742295845481966338696457213445964775890505074861326443741355551239657036705557061580439471167840678232655329915855677687076952978316244916347740650565292811329913822631272260068613593785996828448950413994368478017295389567327736995243214415604544881908156876296317378264496097850864946264487189868554530718483131397077678027111721345090126522013473675742600834183468472953625485445798533565533828106222883672119722577194258759170727789144378879773161224854135304444098491722415924548887945909430525737916540036376567812135348566900581152906404988385846913470978932200501380074748750548834316092931902164692687624383403887342813523291179756005459163263831857335495388084503735068804975278236473194804827239666590484544977461633458372149259296210840381402934255724456018959436623121868834359010157825437127611022208561343816512096533553751965737845488162517678584010520334617393249808914564180746520069958482751332642502078764598636264020613934427455296181203405083560743688658211105156248117226222991104246337295886394419543051050531951985608917678350568961272886040222727683398944574945565185018200929400821864706816829499063792136068550112036017173108314562525330825745922928130065813272249744912509098347219951919834201516938982526458289196015009055587962986139675981118620110320045179306043945448360239972560221002514904165194750792527828538221791020707412617053497631283179585720591210327530075742488254295223953065869520439527240209767122412204419158332112760909179429443780211771481622197812801920406577317882622679328451032977837392953854801547613559416159221333464112820111576811350469578297369265842248373065996951920361678669175112479563734408172556093451069314501998833719834227886572392373468978468405221840365787148339161466882539663377208936760617099253037117550073594669324504903678025866275850731316092983400684938617203568722100471309121532663091823846374743706467785631331153559054592610490325711986704204449382528044901100994792962500624523348900875057443679112300626868201311047491739219546506643149866876476561827939564224905098026429943746446716910041135022117757538451333617449593636951163062383875767769320959454215699071132779830303917904537423520317936456284556816571847949480726604678752549916235633861978039760130685504994752457029210824932879691114088252288215765347386326521398880149941433428307764490512600786906163863204087305010850037694217431245180440692404724484104436356053945443084589889032799372496308336709688220367897132712113315748267805738564147120241680229719632823802363243442557305088178502573080143394981236776669873452701823965313496109564968422479322799521003708832066709976217285772155712428306773466785898705372884785259607083176343806995244654978338860517379068873612779985731598834400536125703900463563194481825140828508079051756232857528758206449763582679370957576581535125941610540186869665055616930160548022493890767545011994868880069442466334223439631269202729899111391135202544870281787114348580400170083497335765332430091777052262027100416211232229144786251774458444557835069098799713491746962764968805729501232676440717389678252871510592186488832581582314766658965314823948824441469955365490627974847188172848723873715618240874366891259201090565403829293551849595022294152573231908278465199977280083135812727936802517927397664898827245490394734316687222082230060152525652351777260024083144274394860638597055816500176066534633721374697519536396028958212220223427789741256494896011603399743417207413969787768543298273228205698121789103414421863298814533432638681602310803461677530692797003509996176890267631278165889689844707654378917248423902409617952231033482341563779839619383477598057835925083379722044891813228159265496006475350303968919747178504607041653746705202909859330043387918838813491806430052467236146176549371788108568103186510658003143150564498352569672103646756775184109739561125175311644333792173055753110252616268050973995530973074003551404970442553010633419658105335061960423292299430596848232379498524468133992122446202656870651789122502385096512801114064407070777608977931324684625024564890053175070449974474634018473812973390818077821682739669740278608058718496913058746497491546908650387127585029031277053667197662085353796087886579974425084631941852579041658108613275441854693988621180068143717126568750851435864502455471167068187524834747435967078965511549675321040727741632209051904110399268962493762219023701904683819773938289908320705737233226419798243473696861797003007059317910815612497189381844035263356902827893865149568124162028410242813012371688345134017474017090808248624422979252611116463947528628568376125820559445796659462262653006710419483056803943048076695291636125200266372742805872022985755648134795745326329239973691661385225791127879277749295461552555114269503046360719686540208545327253060373892247064386268535222668116897910977351335908991109330749959047240569671749221385561153890252356823509533893049574077193439871031043831784715373934024076166444384666316663687119245789134908877735138354825670150194897889736085393846459879804704340331015343375622858433005517998685973623972327258743653669750328453735636561895060806671430212447041019161912054962095018244990246813899346622237729325864833267646392790764587824608398415802049186539481033915420546434262479435544748425088102193013150277206851883496444375406661397366104841017032856935684127761439021145448015976045652847180052085312483885161658226761008860578499923783664945415707428821655917619370236369806599737347080820388781855436716123547040971951231682093483906511613425722544571358819602782702416455066467691230977596233030418944258626144360581791757827846622423234848283464640478891257387813447652209559029513391203347462592258658094138588699548094291625188216396229182866785592215868019447856654606527033892783337631816773853712722670106561777197334077713091592882838801871494420555680801069571527163092905112214946330848742927838226241510533564337189808521505687628298686094368836464420070332536190357247531356545463725960960959872657913327797758550220932262612390993082220896013039818850940650185229960431300792293664583407532512921701221445717095255264058443524813794793812082429528634405875454081026499170443469003642861110213405184983954054668243990666689180782982168466745693740840247473102095471648365719880843970309777184095045695429144412899434280546291081477400319249325148545037253118843691585500203929644779435328156303791883514831961259849600220480272135906650147667721065020078705195488962822262218881248368094066630150675304826370477350445262772165913646732664565240914726008780628973310080735744617905896491523008838093602735854408759492355848127289182267102689266804811269765252015842572327813415634767450382488436616459546940670961094052728206971423136097148750597561015310146570029647615171751238531389039966796667834864113300121419415765222596973680089045385773302907268534091295594467383292449324653092011173766685971243092425559046407361510780507135297724883633681190018193784450041532503407712007192750961818031322477039702446698990754176627442195015029768088065239468524466713134872711277126034298330944643571290653849734442901185019613899236169638505831904412054386932471215297675299942794956923803463830166497509406446779445657444162328737873111995904714672081858230497368212105311817675231135256836742193771484662101624312105259268303013026089613477850745357844503948325624768952280409329898670099625844324282953949690150952747560570061484430905712163855446388392998117418916209131935857504394219096795852326259827530976936275216677959361714192118156175903758878963028753531961540113252293367381649347647214664009511415393189051574267955422183010215377304202107932098814897809055674683018941545917467783571701315103939730310763993373726345361345502993684207320081663676022964733929079657851948088774355645787375287877589948480607742355046287747381418513126602299704173705342595489049856419758069918821447383303476023632924114775147856340357742974541593274277392999960447309810939990736369309539352548476447348497213523744738399391595370861330518448817027578101944748003380395104190075780497676525634509173853784540396765149916209902136111233094694414415921812575115223886262525419420217844973838804137383703701525527005720629794265538045090358836235885740324234878830020191382854961919945045856281004734057338860838102372860244913031689906172168100922892161235220467234538451748864865091310971976432181435859108336290670021950829924018834862330411381025352952027053516518201798299521471943781629280262822940271191310354612731546583797783712388544629545027284258892602060352422703584705188364365652003405649291256788199119416876413500036477492162563675660640828645878031516590103464265718862092009401569380096817093846758369738916339476134130526530597347296682798265949334687536832804915232781798198612827843024975344871270388328033618447402924726675340366199351462489764696310618112293913175325388814155032776071733305692677076066593401810430175781047859514399079529379863057739566437992893826297023610896130482824903983222464770597975122643867403482425810523262498355372305424925504678399098875105795838049830137216952261424307212219133455012014344688963036171163433415611542834916141477773890741341449497035616700352094669267347849246437719848651035398169884680460253548245887069422391375202406702605902893819779622871812650368155697556521939570910030645095744955416657538618972880127692877521514838021933074637418358363236436024996493282962978112389299729140442764201702939919329969036126138000143425037673323121856325369017735971515491251019262334347412887059437189718208471001834857937092481448038928443260632410281359199739362538148013971074403171571332376164153245265939712178420872866037687014478824507566708838017478982155316230653275510997664665903059066719377511134122652361634876782591119519384073980535707989691169707469734534154977036068009725045636020354400560167432110502054207124280549586802786960737573062092264158055206847452108528752800338403021781155325872998710078025434997895612276773349321391817642697694235777488673715909020179453366651861286008914760512711345415647154571743884089240335797707844422220407541730320923687853730920188962451927524649240314532311146820483470705505525961260105560771778089487983231438537636086151506582047408665655513371097837901659542582552624323588931612805466874300330444724663516478509978792121620951650229666655369398232702808766673264982231802360524296155130027911402380982939099431848476693410232888059571780999888517217463404663523631252854467126162157106492169690874912252808295879877946314677254998698280307562586193667832303362838283522201462902849630520221849747165937716882088454885491571026592722008396028151410279541922272278013014508205789053013131331530517757820841693518073776241529764579842444474167744581506983567291943042732269907387994921852096437048129463910517399559100878655437110775279543177750702052664486621673072809574842371326958775859866804339598110156706661581164674903657501394669496256513705251023511474604790828268834414759122015147334578215969086200282839988844959717558208056375624138008353793277107892511056425031240472426393331203753220853225646412656143986277064313994458220970226677552068004478930103047369925386673393472894717137471105108743884296335932191599665801397699536179723781225338053893531580628946646473849444599498372387097029528426151189252622633151226017330673414846233108021600730124530921959307124167040486204164939287709834162402421993248015212825757516306657132466408542361268699844949248633487398059941957669162969841175623209975313893740129664305698641236328655867106914023847534666185171019666012070918696402773801352021693247050641526084014613522974563737548550227696853861019196527749755067787115482145164504895749694921439968209924492404197577472463208865977008150457180470622275040011726214096318675365468310155001685186445720766506660144236725493323855555801259702464345739944583712652762177837498352134851960061086224602106876893997317809011838098894662932094482503262652771554884893793133971709624586406072979348286131000300330529502853801765675808850921765405139379087395402297631474935313390556201292241381247674875158764561061370770268331220150928912058746555239543038988696997676165101183577716123072787479729780474272609297847121596331362247514600174100130428023403629214950824236202569289542836998817444915657108176515033709263684863442178974745113543825551477491620659923344306862599384925086691008854165483175829672114714057455845142630439514019069669259774990691671952685769614329373546366606869862478881832368362183205389242665840772758421809141006059971009156546487587048472322882153375998314761434907854397486622917746412732305681174678017895905989790408664989742722628891128971881908978214753025138506076224176484181204215588148976077639470791281056736556543229768092740053240557425715555841557582635083440907293887215328950629259295409178747392994498640728619253995848465794078964313505612913395987503904547627025614575329936071051976383846965559136687163117954460726506056513699454109649054140797695850463788439336985347439900575268294345506607124853690414764246731423323152413097081388497633311459532472550681275329574388096851643028696968355735873702742536147000865188323147668954649479712173514660672879122748379022218536032281383237939853179755910571570414369947737883764745002074594752995937391686822892979351759446440305583189888789297830759507474981212259891191712729569094453706979715924844108925315429766273234619546400910575006243437961815117887330024627329839768630349232214788152697433601286624932163648883344933585925160109024171582845692385486689505750846060670210705493631251133431173289242436990653769615559779788201232126823224617463113865061365206849153770497566232052747170713299463350656271190688822332216829659846054845255873532570378665751784061393528228473150215918806353276718669183914492508440003457797067650480989445791282071904031581528260102560554069459472230366159857461455936203338338360258743551273959959121507670156765074764166702032731291541678444849887300665155665594290162061722106598017335182768713305738715884930075178935116227497392772058321551365128766272349693770452861191678050933042401883528837195924012219625113718917673725842663714420358996972063006625595860890644821849603185674384452972397240618810258261203492384554289985390186507071967428811688960005318952008339657628721332264061985436552352954671936057243870141092305742409787177788932145419953013196572029600273026253950599581559426587572636625981997951353272756352688228937521902266611998573078065499148549357927397130318216337165330070091726599897116832868833469845277429494537246239787606904826583713591538860542746364245122754168727308368810320194938756852667391628523709731824916664288045739844708490401959874432077285730771554580954773862056737501864469452231161920570046463237476232172845379715339103595686256570040939342950535456156647058111694515476025152529327706638913456545971043159854732542116458929199458510169494304268871454755811044459319738053187656631983883080126638197777479484316332143039198225140712694219872050699010909824418030373446578229875502376369339508920824262146357545821184238641478501801019864954829358742276499491370962160223864058616973957929954369877024585072907221552976028643567525389398425247935688947424204818174956866548481518094652981917264221893459801107864838257804848533493427189111684080122761516437093644514627017920131061605697103268564954311504860489443827699610525091707959050169914147130597350586971481112712396572694339337031711564296813069379735851607259415220211663104319135071748982137077089133608048882620565728579932854440766252494638960226325338427551855810571683277119426218583845761995050775058879151750533609100390015678226585450793253272252196043166497014625046846061621759906001126824000604839029200216371404268684084872226119234359863196629779882724584087309078477150115068069657762401099101451906159642449222501180329631884406184099361130935712485373339296284863422133780889173023120554677677977070014066235350558586374863145524454080518714969539065881636077899017782514809195775633569371834441725670395073669908286089514443324164025789787984582811948313071346214047103508077603928399563476358252698123529273775033956576791712764759252111824131376354215216797246741049928357464331811749636718852853451139465961216939973852106908668564952226272509658523909160778252906128838007293770641841794003651211625687818703318839299890732874706572271118412999303075530878028082598606314100540735562600027763226093537320960367566409886193166854596127504148915686938841547302562721408677189783001098718760708793826987653739931596439789399704600393575235059152862968827052864482027202009419005236692671073722778973058419585943907994533583747120422683179458582563191208203353896447638824129931779659951408281709760955726859207178927113412760892960883597987477672999384061179358262010940872759621186512461522233329201013914293683714569688095869120573097542230532557115462969639700118040975510765406496374238717465187549324877953464345849244293808309135030272957627558240547651625570292601780639420537783930922281316468561843287871655678974825123209005719508949176367435237741688795046211451384365277739054108940422180508642374393914240536545636360105058114845157566408422035495357116125663432796841096728056047986861619364117916295936277324841322507254912802286354309509618520466441553053285568498658535145058678048255934088269891659815468923531168579037343200754445105622294093863467629953961876618467546083448527911467112260157206650756725619116312651167973125388719329004728504645494213131054179798743248910047698140284578230164105415440311385126399336486547311349016609681598822984515612030891366698096589315806990661667797374201141593912834689515912896047930332687782535124170000790769801225401732100446873169620986634278753874623321404912924751630677632016621155082570940319660855040893595923624157684105701709800375422509473291266712043751229749846957352671295020214637672374919087866758413859736160064775425719628386688490875350188669958469049876645872384486606672704781421425212086784069058467827961199256290012947117564109848233640137622560196405029592479352038700142125106384072860280297898625805540667912750023029336893356121066351539307702413847642200976236414985947787974061482396241762157059764172968783313477204112384542497143698802785823730119845028990332319736807334051828730741372688544108251028264922110564684493413280723221362189204668026528032584822760239460732491355927399966953681365339213084291131506130553914093185512794844367475664365934028311510472736663398045827723146232058122531740462794891380301008634114666001255679235283128401994853342144869688008674641960409357682516779715091291673428898881086416890588620740253919157240558849821189681193987842623722163154218828592185126268586591501012679451253808022823068005417209561939033722697469119618336098111559052393210463127785290093811464381295638068126394363290932784051198637022884383738914942350619464725875780129088287811511750584871941748092615998538212598321329355766523638268761723495770726333547924552638390126796569271203160940919992377257642976921246612032688104058833939765821540483209701562029067900321388940843122005675580264639864969830254119497086935407261457572797738388495928031636469853201856228539173120305622489049064274906120028381059067172074617868531870595657414744287036314177981237151319554109205581677857071219815599987901668625284931145470447470578824944813450096028749942610859169060929510265946829941594245905448668196488910708988520789848615145599444045013357907270755042189206168718709926782134609893578402330504521359869330365066120508646194298650127823759214307222099272680171456995990075634012900971819777130224222269349806929417766404836402756044615298686713789637835232614663926296209111737392010751195643953277894879895850008950108406212787063476459638512054015093395450592443858754116020832546177315994273155318709983748585725785940606143008061322215563359201107325985293535972592052753629668219555692286452912139759902423082175878711607838500725887586004032812162804513486556424270839780137975609706091402380226247991211573467799382239638562500267656352103463717898030612039552540017666373593038090044313776741355948577824046015019309053263519831177286682654620273174643148496384207677534330635151681053561670554249768667006834632736368128233529544709994226255408683091986174970189734099423131950138781629638777626911524775010645500759873518688725859882766310201083198704599452086110087569613251243357203972256797449720933708435289371424622043785918374998879287073619731107274366235936485138603769445079209383136201327970896391837305025432020227656434587779607530720612775229451377151500230486069636025517254208086092841018427015588521795680989061409435180074378521919246822560932346517621384042080991022142681315742504462371816458196243593295103774021182001479261431155036183930102090028542682342021447641022094595545445072938351435220180996228486819954803069674411569484353436648471506247314294771693054149086490188644328253490458580694792702048767945450648673548162943499707137435642852124272362971255513573574117096605323687696106278694099998907305716163582170965755402133496249140192781275587239893002519312768761574693002931858976379983136924973136144392520468456507480645409457457509163823259188464331207801674606073093404253029088375644094857250294609738653607525632871557179306577654372603052759192686255199849338007271283892750207853619317781937750996185418666068592036199926091283233774815007262509774432733790847426071642326024519682864890240700357784121316670280319434490664905404458617112475247073175295014684885163833398610351676037912196445755140032675313974692956249476609938724419227751756655341672872392997299043805532215684343117867701810096198910473539137860740233875807762417198900319678787485902014900863299907076538601019431252101124472376369581779789114136506604335755842391339613530685521796593126245451261883836062313080903616940079752260687017385507008988082122702451839836095265109465540334735065556043298948038063731130417049132264964900237578186818124453836802629270817986496779967303180594528468862517114896916261974337308906375204661264876150303694515129299734224625934673143443622734014376470620157421317475528094250903673144530859654690246892747620620647919875440475813267846328997976070462207705693867972909718645302107283836906857821211540444999648514413487347492658724991847918450150639752000123541189464249723387984396595810000634666401242713765871245207528875461313835522808222333024868226585695332554456966648738185287831302854971938050988876723054331043728670178572162640989064108922062738021104978266508934462817419523297786644562392399096335681215031928998998036230453558212420788303236297160211618689030225181811747734050675723273548219602321841500861860239116303454336846001852072619900303150504206144816427207002337366628799901294562815614156269818483768993052419823639871090866928927242684651881793658649369076366189466178691492891969544458211740643081528040312324629236380229179464553829495255817846240273606417144176479640797431994117904114909007388676453677427985977777928448092561238039945471599706279183490326811731179674014775969653327764673233223305256902666335905121717854324610357734978128254769993089605220623363526095967471623113076946649347783325605628005779035225847151497935490461737457277709943116728350316523920978618584538143160469355911629802748186901198248724648946624168636607428002770653824470800313943848720451273780489508166084372533320166677741605744556907006262661426458855631340637271127054452786396636833302303524594966552772675028563356479342607796083610762454121682363579808456646322721928983213407447864005357133634298311021310369456908245164027812210107746563620311311590170246066278507446601857629675917711346454827838074472527509709186476707987534910620759641570891651349898565105716213435393214060941184981618173890024469995081260940756863383275030053487415030490621689185655658286053057788934030939387012119732356458387355255453692006607345546044551139230440096931905311809998205563071147528063004328730612188776791410200030132848895290377064789937729441087783159453726528759591983918363179855542736186036946688054265648336535091663858616431081715037473111550190031555372740399063342673040219837849797919424068747189548134125225105195277562490135403633483732141035087717930791605118619947492885701762863532229073799990698124265570402675497568686195685176415171567418493340219139482945783391189543980882357143532222472202544586203647682449237938052828726929800702960221018615059112609719112310943409863911130840206854214023255461628620639388997974941171234018830684284691531056932941524765373841565399111883463700817569878847408957290306358119526642481284805819459438615427268136500223916164325894868370794644451739270730900059273765433270254680454904994507663420179966296170498304164344890177766850040740294676900353613132398441535672334129006901215215626194151333565590410693531779926057938554582519956063074979046340092319083998933995423573557167306084955086277093065265666204386118290304293320565835402454692088382199258177631675718184393357723912591841040066090142174915726373274767633279402006279195376405411339447709645626994741988584931229602530675776673610482965603068715843806279035416959822042240973684571548765503701567090618200275154388624777144665505066824160448722117521317839477641865070119307001850972760065612958804545018158319316551643733887458213998155631701154797186343548757161103360072901435037592668029399416691251242413528707074741735742337214192208727228253700621988815300042069800152314427306237797161719722111480044194536410325042869808224988943007739341040309444351124404309343426708211121645030785316968001998204835134070707018416192778685814992619879440385071682645270350992517512695367372784719054345664306601082622597247482786289092270930210910325091944855606305742742041762648471393087351813074586264343745850872667200429621533266204985480607564115328335126427365304202893601968295174663343393383005107352362349728762909466867387730635854093499122389874770648601774083289244809362224682561280901353310497966918978055558636797507214056462539029892731816131367269854206766736775726749680691608752153954910759582811349471034290324882074668669457445789716407679168924784140665229916812700334676392725110429105056064494199377865561867489447444532877746514240090158749952707479524607027438954257477558102690524543313118972389094312666026139754800092820361347890883755147259732753171347095296802778611582333117317741098796070615486099680193863409699324082663235299526867438974050774529806491395201211123835813486975518034308429746240637943762409544728325016745742210937018313722527968886523756540448353856399225205426548261522830013880979284659910360562952327147039047608586065195928705750406182419275041599115648560526225396828587549236852774991549666597007150752271718931749180476963424327249257498584330956766929911108387176344876240913432134851981198787769100233125011669857490438285872243625039108530922194947851653796979242559124299615739596181961053398511328984452834933425437527323706648294443251894510882072936615925883244410797696493711953608961924618853956029601927104535661803749330051951117299834686150180699223164236805099086603814790464845063304447360603893360857008961329491352004988336731399073397009000578433791589948739157182490122324322504860185159321895090859641860992375578271534028096293621819790959170897450360719527486679519618017596040941294113452790552188600962924483197288244383108073484640718315266558675310015678649951056410800314963675179001547028822173894022266788933181731124453359452603467292972591706642035208129476175712795244101406438327052072426346261151927539834086909954782919154989579748160199451807881717658949566354629655843930257969033608208306872315028125946985511508258810554012966421261178192068465376961835892954846039165174042928885019799331383429435470042389136699650326912067811747560116195028484734257329405247523903611221744182876485517897684942717201968507338117806210596065522859135712038702927475243731419142722023164683828384604287888930466851672171347747731584474066408078739543640818896803211906535421636506503318136252400707386762286034091436751623914917987664635428729047685941989241652546547446873628589482075666936948679874741446210010848823178760165095762892386400385124090436663310979127325294658640695813385735600769832226217377390254151591177773691858164969740202621123367250788033036856044118131473819725707264748097285041959468400659697623468178998769079344046727101802207294160338180657389466392086189142232281094242226225004721634198670933820543051831317166769425516206281229726734127571716598470856598592916321388068235945349244612354554753630134679434710782299372783650647360187717589515686035994544817872293842411387579013504967411691470920910538834582674870605611406850855097698720048934444124316056109638064110518058580818634184765963173781322753085396323846892477428519250098947391688802285373422812141828969901721739945087718119665496442467498794710143831315707545968100760059519529375001264888370116995802529691713523310655103640931627124304091896437356977939984635124035096099336528204363220345206008997096875576570114903718557150271930521590200359485590911069498593590703082188038337780750300937437476427123888138829829430371341876795318642806881568650692198424854240510611518218141607490538820378903017883056927261840410316823406650265939685285139302496308014631365408142443278286066486266686989409175677245899300767139898812769271478848624763111453075028325854499042709572531203883615332535863162027959969928832984689237222465866903207481316686060270398806957195834895029546094687527015599861694076239042115839629153737662146981332988838621511783232861180685104819168226391730612456941655402365820910600861129522000301046117629713063967412980550526383593567892435289076208255563835033908953155330707100602647419630377763449755823241224743349177369302910442125948283197089985638595306754917378813102070452693589591312539980113863193159306577760508444734387978473426678024345278057027868545885198562107697023462490234820693148043532967095144488746291141044285866332494851580844745936698202124500681080562543511330052251560086441083645252950486108977987741631496831765007873593415135280343772347233251154835035996078573437295940783698371117577101391277104399969102828339606096607950299967483007530181994451783077737102487064152996361368076188987349061836637768125926759769362545327818821287445629864365553108270221111916540734880648648183646048581207334667614862813935928719830603722079212814681448856220833300239801588391525621453706288872314073168962755018520505005608433609543899441496543387971641228278866424380890715661557928742043945799538100903955881618286361057608027674625972824280274248790483555836545758406732037677591350318215742915977702686992524091168675657830136690685507600201361731080877195228865389409116800474986256007222116019798719115003715733594316005755443472692271782246304492476230085999514779698997594825226795061861780262228157631830564611886578677575518071656435096932493283916111975488380072928024036807596700038588734988259896765546772187069695840873546312759548296374028718307446535040879897975564925425039551939704741474042272219221660738073116685557976505549762738007376997424485391693145120891676306003313798537957322074071020031531037866440764063981243828202180187307616315487008196950238202104266018865597162101366833704096062030367880615216023463253710733672598374882597300480845105262525532056025094313747593850462982417048104765248333152981482983816300493787278407253554135549170569360998829448227087284265916399603330307096693722156684906783639353860956368761821490162809565679448801586210651200877679917975663662311084225186151307779884206901761454395704628673317681044753076111593779548745073828298946139378317380164422781665272234740578355596849654791833491402097129787977314884349974060298987029507171832262294737518952975736273966517379854470629719879852994231996409981471045425264972877244176268437256085980725801939815308818934857677540870075077915715199180537720530155952012172237324109326380379870408050601918470957454976643476185069706527402963234349204471753767380016592096856419030069940640336385403019620424248639204338508264222771268019158908301806826553847413029692581292630726672434621251830960061738061799509371605010452771824666530466475701400747391572126775823809103014651203579936832308996645768196890335165204828300894898422571776590223057507173595443855039204665070408600045462858308053273513196568165294933133925432766688473968948922346893069508262823539307818906281242108446665756708253017834988787728983267310921279296096542870604103075178110253406657674840794261778471759687755358777138018454810390658874546424551738725316417456717138153533600848051060071190705012303930492961965319342971091231826431229615329971253734832275545484331403287658931944066438344182589345238263249057689645258110815607012687123295418413174226704556027812370082442591809659728116079874676569910828576055534158545238836502739924758879001774800812889518584538251439501612759017916181438878079242978811601241677536174633843610308625029881027275758428957866070768105941805658219432949056258236423485220229428187517069001468986670366867678211247039359094214690772840559216261935225997016395233157170417110868261308830441131409784368220695925361564806876155163692752127057230881592924903038864128361086575524875212967920257885955739434559920570317966065692097818092027793414320988213610945554625584756443304808069476411258700269037205461075911918039716410928804382407176403152677674433376435503380518458608131352797782335319988900186841049221430601700436738226771926471726036034364894122801792673150479009178956769994430622233453430382279367574922218815670811821012157826039067105384625184273139694327584825757284786518757199633688886320862332222212311660401225565644822144386266327331068066183653531577888613440090385582230469609531184019155388533669900000540935604698273076345519572463537585327768159419401018854210274660264589597390291960982221041481908850722416941175295763409451808984196482631885338145135633224014505073124291300538450769780411056921050081187311300021232998662446641256939282448914169167646379394241187552635122399086021049319942050509267191395971039019700805257698692623864701266928016527066889879745375643749211178596306134048756311416495290347137328537848263380995246968098089291211011970590825804676958059557014977577443648721906010487852226256513691691759556808690195193620966119358420641363181226550028083069747085769416828508441114790163269182244172001582765826830172376903346309897831068054755487043295700245832478359065910237878206981909265991024709802557666060135354592955400725389967246309181206666315936889656173272422208547995414965851284930575735957155437529721701482025354451586850692016928335362256645436601747092912140804005297109711742757309180268025475562430837578942658797129650062630832743551670687151069327714422519207014391274064842373022150068797631709866792113977405281899941366802816232623962983908064618866799219081845067327904331504473902273707794212592301548192298925511719507704480240681592551468956699496710536352927118741928440498826410857549774548941517715794176155492108794444018276299554291424613305708166365129163227120996312547160069366619689939796721419689164221338801137611620306652242682075072039496547361264982485261153559132655345646361117509123885246169756940650972393067336243589403113380927307154041270487666356142682159326655713271040797934253751418204660497679161670138515645091754020896671003929664503873108380579119139158306492872789807824787166607078524836070038155241718553062473086872169616809425184590849807934251918665777120316191409166517054366854707485224388713484056595418184638829285159658904299899848188888426882397316844843195458764956277674608527648602353896970479097327641044329981368354832373296078359738595983930153919807498206872614476721256999514915573303202851769090555810244374158249133719206777216083554662271961770250157218501725543489338531510422330929770185965525955393310045271960739955593392549515995367721962594572984003309360906810001589868944445569407343029908150211867452953967999483032078349354115206087392382489568571590703379229743565175681688921236072426318077239049266341347349031084617585744199473104208884615539828920335696830702244820394473665946308412436334324391831594126284532285901672670512008428630091124124556603410783331163845452802166730455375965143271592414882540565931384543664474666359088629265421636244951659255004494609591040216441787907874423782715752932511511396389171640678134447121482923643376570867751915122008556883471932432341278061114567833079684950825627155877533685150575330284724184334059125639451071751575341568639070353634052138115715108158937995783702457559378665476721087808248870480958680259068234546152022199253316619892995749814372127940742162954726314054655349616703699128248989740872354576053843170636822412838298593181132316288644684145545281549280475675631413975145165031947894996658169372407658550594647225476450699223968462432296949309843045447810844496678636344826249845900703708919468982522841026742891226443658098259021085831793360436813157740361539254064667678089335840334524739621594136661643833953792199608197828372339808557078876718293181085324571613289417314784829957961420122024634987336718818690409687128688896094000674340318523405294477792610384644538088858166866453161441602652457681720668307616988955742904513409710029069303584417157445554596895661782035684127911190624702247023378469755106391220260038255693203888017940069149060359124570267252036601680625236672828795670434624483009888659378804673475267560637594018638736288239647621282408276182805137858492558267965916720167618795862097287340014988735408582796201026964929079981696217788639362262367886315858915624530768839591199789608566594001100069042656424709495226361138630101826370313624759022359829388495371115551370812036470753416065798772532050178879209433581922515775133257587876434708068010209622649967489802297051644202294470831942760436006255785812253291487434756260086407921576505464089665133815390607487753013219940475148888241417886656151427683762342164494056224577783415023835060028663043481079147670896581301176350659849776782679762040853712964847274553155643518919819087949797896592733094660544355836777519050611392550828227793148422343324834458051303722217653271179754255914087467656318589148424574473919942407193997292846693399555698052217079249701962918945532058488005024961646361666257186496491467137974347227924365512809917394204123682779891768608165075962866760911342456147942302817213871701500266884351797046741680610948002091190956797865457880114489118242345963780818676533873456743151850945822177754798084784612850914235549420836397925514712585320009083573650307709132605771281434647819667980304334166153891362847702793746495164703711353440515116081855604656378699074316777042454510200312102175683367903235783062516624172270881003088665903802351665252597711732635564883123890634035112308354468901540292158508442638793892524725593905206141174390072463687789846335642725783676705679051355066960557913356498018697180070852608074983910656377675853111841275684926809674520610105984024677688796217487600381100459385239016307131323723148036165752807370807230610564106183196332926874713875549936918308462026040269941194316055937233047346959051638603074186248311276089879115726655116551650171696403200413441623935120063591353869582368682773357145867791533768733732668634858293059167371942157848137764521843046349151297531491569916140796038309996847418478227850669964650998884415689065945486044403251841669096941486965460554381045496890170739252780227674699275074806042954648279987484901932337044402689080949712823275863395830716699297005359147811464592366348977843225303706473883895152486947893911750714275316761502948214135689642677934596879560039306016958179137600217091504925909562351362598440055016775019984418361947302584405745612982450100968316141112238281042536372586596898994927577379688322769695732862030229125985160167969062709172267761952122225009895456521450943200993219073717035533070458120447196463887634059276714380222070530162657240411778510863425217163971940125806551003826423978357477382865050540283680424324103286921013568406750031108006430013897124840101044164422432512979328333400171919248723556815390839787790623464883124880556404706532771178394534665114592507401164910764191265449919942955298476345698826800544282912272553193673170778733775496453938079136739275371651023818387060574962097574686167968779414815784474223156566180190494980572279645601990558537105043845499577332909086180362037428640493534256414192503299680634783732904964313132203403360102385922261568216603651929146962477147024431288007716149686402213802666315535651310796016826964079701617640656478192888436026540468493029174066050845483401994953075885338761368562211089040487536411601740926169437968679591398813490672554924720354130639651561364421012356385149343035209196131563050727437471916778578606458326853135579357959976771232622905519665865600322728757074179647276996145423058218424557633334029452144408496354924973336993850086615191488176516861293390985704947142272269046096550034391703861607093628608708910535372167727630789740719099232705673664163188673593419259818737391029263852780034504340242929466431618744365441449943490289223143941568117854490168858370106728927980605561501102665177618701784339672149689311694207174915713906589307559182120181109409804105345589562876396220375027855039858479923557991038176941054530550449902837399263287254517375907052490150265638552799677449614318047501269574173498761269358336234251593152165496279373746980382995394471309182348182067883400922733865047048448185348969584509031265395824914801730694477296000511421830155148515309700013417728612038606568386752270852410319355070249014533459618422860049977252208332175959206344447130925529380701026423447816846851520873645558452286749002437402532440698060874392049293135534120743924769820737761965180967464031742307611278252465952136370836609101727294917160875038383616116763183381568819272633386359029079862220942530420283338242468103751442259632232246624077063814176660876979877260780144070884504220688717393914935682985214161407270794276515969507465251587602916672688366211495644301900836411195745875117187814144262245172235482624305228627214172041958150684248193523694387350483886221847427774533108002850421727290913244474589750364775957948389897654960768958594298627114743003608050588855422727783859183249838106961961515704592111473988827394030229413051752960584541277789089628917539510556342519389667207657861801461706300728418418537077077973097492326581260385276743345120757660620047503520445416170980400758041790081835227943929923321427710882124598244327872338563710883939335547406624980214852960900156109401639695473344770896525199670336531673720574742917476412406637297126888818446200163745318795174620344948190542539066108841840158621293711225607352735447293259712187888119928967021627442034960714031073342935359585269562080345705022734384138405166142128511138781576843242063073604175172943098954284829751789838154738192226749884401643069402330965069805040283611273847570667375558587555471901820148171400250507916186377664524001658768337950633570906126197705497086580006637342492758321711012831013037903254314093084479679421228051724012614726644392884046724348362103770165745222199752627282088797574061354882434362960663848149262531810433209698102021256505311470134502775000399630119000631694177442442407169377823193777636893492984237076888401666249705038268314658386624193612925995979907494063397751448526704407963863771531636344980303316293940242694786402113353126410382910262381149538375020730793490370211643877653136539272925874820013603092636704611153788900424098857785859153061038746260853128411744159902173051159225744195434867316738640814940278373973794367856894156064287596101048617454700581302819912174518967960861927134110989146955730791146281159718818306381252787523724526623550472795059514689703266614950516228952681030416790467255682324999812294273554944671399487926244673782381703163807466065190600520711534047933090208471148554202863647201990610691845477086868727507968008201712481847299922251334355588303149587312915032907176750708679847874944333057646740149055198887146993046655046040055612834762866057224698375311511073550443290758728562146592091843242898288825776524833372975564028474395828657859521830148319963755192103785732331453358658229469982855491102656042415272118426768911860605768873728204473560012991940182887218391858244141660317367052158752515223247620496115420386819718001819954328667913534513236404191109093824987760129428062810397537064322296666995783426474172200277801241367605363551083754890953048287529046410446360396574975692202585291034245976741102893918262017053107673596142998864781368866067516361247362531983495945447659349624697147509644552999649089654406081269769067664162449451490724129036429542134046060169681865364169121571989473955618816076609430213749364569345548257666050852787178853958825696455338573926181974896937251401165210579571680158826432437302666356405680587144509524567651066755660927625389525709420999738210763163255999272870151781512144036032008713810570630851455722377833608320934882108926445930751269819599141923112109343678440137728313005353521641248163926305635289291804957407365649505693577103279392203925416315477427007117152243038806989338218656401574658887310076037124850777450212969753064606528941656638709254911119390898059319677103672845629294058144773655034740801831543824093408291805024327850100191409735451412400974060702035981067660224649413554576673632323390018303471884722019177270653480336859059956741672751274111241035045333546528315495241323450377456170154537528878993367951048418273346221475943200193432399703156783946696667672030700656403976729216249301572605518717068888661681377612747214881197322873263363163146445891145573747085750572882213983299937495625885000834974739882786664974363075521101492517614519402041432336161696194409294842313823222752089602279214819498072205244640415483136957654729457058997140792531978391329060719928364090912162252335656453384265956086580572044749910089643571894991160260729461596987867238097622860919958238321564053669473919182445925035887633478878786605603801447966495880129183602483284746117877118396110633515647881353632911103648897602064260987557823324909916880455552811352340777780875939432916159130784685647712959107552742853518501820880445863447789834843160965079072039479248576432504920899107736411465719907178402405473023255340736530694921696920976907129226536509734962538311543268087176252497227789141001311414713521436555324338679712274434950947530988888858287194238952877576838403335520113783139526972511099108113377550241621336972437620508798878304293644513484435711701126651774056635818418975612703630761600698005669610384570510535300499417670816583509483130361873130405116461817178063817110361724525900620891128389564810879841042746610089129340656005143239266582862653398287067563294312884085199237321862235943283546289110023671877808959065436933516632246735745512141396619202176291823757154742632612083481718029323860251188554028659991432226007860916603167883473900578574688164226918974670018802068329990768473575568678367513276053837816925292279437668523296252256023046945188582196901721087460289656850864681763682512506217071699047891076171266731503813606357274738342636665063680566484129030480988511599603378781937690544127385198177157366763398968700225246059336070021640004126226003971346806615554146704108395188242638236325238430690605179662230815360521581728420336629022937905556404160892458104159905281133506428634455120001244047841086599562516857338155399387815418579699804132394615418999520717853239817814641729710580292587673584371066313250710226595843445318903331316486350109060592005251142586193069722275944557587984935815806381666037605073821204790239585056208628447451622464674422465804527329552370533866554448764356592894018282025184364328238600900600160402056581643532027505048582343605341313486708807499660167268127779279228510600112395473042316398833417063625449822583864715310344378641843624694385404656276181165996381896744000092806022682939377575328161268826469455520603001294583739128082776275998730606683217299909690277889310324334838423589925439138846668662189732019890973329124612949675433388843482762420024920536661597996947166292581808841279388530376965278209126408842699579462721825778264805980662777739822071227076823570378529353148647083624242933082889799192439718609472754406019341653563449677515175882568460068849652209500719554269699160403418053405910468507600984294913909638410836448873240431783236259887992499990746456297249858313955375691596509691760096313064681026732368312125344909439646882392584427257009214260744641785001514556042574452750740513255462142818024979758027343446344396287292174531575750417393732147784752349263379845624999451652956288485064794153084773888925423868342300181050350293574833043733633133920034464236387306493592273669187220537667012238512104657653387440551147125388750529502026594287964664159256150146618014512523058269652489595440072271413988371611129660162469423897368462655708090468317189135111308041668798688246455394159757421335508627362248602867871642923194808388641573981395412585999039169633757234283393872018865387328194254268115671552449839674582704510121989201908008477777646953687261341785361663499461999346585562812102662112405114449717848599684272034656559258825910404946741581011142012382143991154259618087441288216310885079800226660290981307672728389012542213117315994874801251923592669271583784903941662294106236109807152359500511605438108557810711917427964481323732122029794492119966022741949944903365642899572958428780125482813616327610960210664618043400443639859477209948860699343528892023605779732537257344910259600895914162404259640576755275412513877715523159915745635528241702932455860321142396196357214653089145768097642821762211385090214824251774375712245412300897949671016455582005895813172043859706378427333608073143855321493513532724484642522136187776178070553022951683417880348251515251325643658267479927478738943059675305954165665913298936680905513704943257226060912907655949675502109677609024600453004637728048523562801131742957988962174960056974682936767227121696620132283397972161008440955491368094080693177674943145420365538072789848932345789047208175679730111079646559735266774475418279900463614830935452872247099680995586284120102058872959034537846407357488573242723219557631109425470930031344705265880451208181764801979129777526579693329159594519962507419994447327826584894004508751052818784842031124531705605882084154688740401525291830721769415604858065094160239818917341508178981118643514451151551375332470493396027982957240127660504858302834081427544894504044002300196119404485749797693227498244183726807842500366892119080023065767748143275489026008176089921721316606486389264002702969950694907956794673776492727072834096533581671841719966942055358884612126786997026277572794630027934630678379046833236257885257305779354836867948193592645964383116614242596787436803678328105987965493297973652466464063052198981565359115433245325472081353294137699364723030792202816750844471888063137393924198081303729178495780775202932847428865328028402282296031721604351467555669890950823287170343953178765025245553558423443563042267159614156076438106719907503952975827974402789851708617535054603610580890890807665532067919470080242619370351848345527176774127763853987486797678744345278937814974822402445570737494304384811168975612120400037536276646844430418131799672648134984320336599745146633769072956993880982862264248126059159156222145844836847575432545785154051630884531024936140457965534504987232389292451178904312286421461458000360084090633693313612971931937720501883259207624288819950860351248788060847761925976415331072766632573490777144012854276985358217898503777293601450720212742446018083380513468783206210586586861363408862675550551139332464248197473967908868271886043959027520458409020063524708586789968676265604089274101029773024224872206715070483075835071824327246761970914783873009926414818981737519460914546755862892202227221748384151106909618185947645945346968217153194106770418787966845253530240558783056101568078790447839222632308509197432742572546917171038628495418144486790952598641562614215749552067379251025336084990478252875684887601826644303214741177760658254835873568290536217681234576268697949902113257713363121800641891257817866279067583250640529916047175301563490263600323931493692941108914958712015031703693113838706648417169766836874057485150958249258372038014537880947776344046916954906776193373087781063622963689549088554427095446233849801677531185689553505905561690919177260744143896511171909953519436587130675773086405402309446119986796172659061763996290097513888548116944229073322361510908601305375062878256341067437187391486150005898522503359000821178179165124353644301230741952824947919532006733481881260122587869073296113294702282128775131056645379960685777708426449411805238350360021026458187455801727396127909610854346827115363693968964874647468815406410157636552607890876348789922705584648139988181399649839014156399111975886002573216741142287711514378509593994532421713064532872233528639954687775094469635108370511796371043330647082611244368568990788957783121055044229237443068676921448103131113229557913623670206975300979787834858392934078603184909242856654765649601541076073845158621015615556140755626271129078277337363112012738064664267921505226904073833296533077691734516580935765662310874287439020133713653910966614518368417537002945960307570881620890918644611664086845644982259774142686146730206574106964774214566969224872966557781178776326976857364154990757402554143451304484955102348670398405035742568754078185154106791915680944755664089854676776666743020773037008859080543708279639307439213819089491567352893634260419273697879146578930170463169097706039221726699335332245548080472693638855080712696432842020951031856582460636549878370422155809810155313246764554904015299218393183443736112280132090555020199333121680060205730702447637270540396693831043319276004464731972223563715016326629366472231094142644404196277910209084376933807958340853605994037976856673225974774553304552927816680909745668847143004714539225580755408908705534038225917384594067431608344858713684616716157464062194675088346144754662401225565935042805393550052062574703311562871998136040928214113850916020287304562418484313153576124701671682435963784656986914849093899503552367120207900765865159484124334738224389460367662444921115484901685629741631842927334458790422249104863936796126277927265134953783530466178796614583171917434271115010536381727231119285054225472029155562847715019220983178914949994108305665504727767568276615931052090589113440955289255662483191353488876198611715878170220263090311828527602095695944144170846497024982059932551963015339533785664579166413227446403869380645957755058783355269128797076310179367764809748953780186322885879873574968817195421734082965426855335709641559442446427334815712584468371089086208551620301182582990631502003990522065393127377834582628441943909573634778910408628204288104055415054777594018707463016951439817091410928593111574000246508201125872108963951988017947076772978545579096403615450576069614932070311975168187709993770001188057911656150318939988911370225588810152537410608866518004701927971144537921953101042453569347840484264082120831784545166865470654922715554807166855394465895020737755142788964144813497744917892605902867614999710239957411490198224056676450199463484827491179740545444992603083036544916062417457270230975690725473551895076743402044714856099384609150951573167301264527173554253629153437968265062747088764279794972190839228909272097480121016702658713337562983308385475084588826199570787685986472432034975997838901843336045030572674382616897885242331242853007733589990278134795725782771257249067754824360868885170839111682041563013567678721346152652055872849772922615676782710578349631307443290968110080517271680488636008408252513382012565810074549429229893894585239995786483191778270586797143063210001769658203917940298339843402654008769243378904949711531518361586902603234728556866497312552016244945961989536744119595208366801824592177291887360944427288645802700823016574005837435895946616301584692382984576388956292760418245470172423652675950846714773416752934342396936061086479481351962451297058087554035928141477606817499739690782726314107733318858781406110057342538871011991935972850429453242840001026788018196984531533996308122820535396029967331030623703471440872897348798195917657616200493678096771548191443692492585973829198920827560394726977470704487706492476419244425624228488966874062604339393694914980353650387835197161665408975424127040389524926195098087964664676307576162831466798238165729338555857334517946085579348833118577303578273774081362702332668127599158559639092189121850095667906161326512821633983260161190157378467512535472215255908231727899907384682228316100237626281043275749389675344088203928689124119570659761082828579449076898886430680653106197194330405645445794135743116702826126403931470279389593306935377637497207122530026435151404106820035925479063177403971615558409866390326284536230912874369462437158518956892630087602886147516781347192139395977557173846913861379090748031193182841129050935072731099907009831725120535096608975679258704064619374097359970761924851217284551810767212602194359670890015741763114483810170256465056680307596348070097416538387357621005828366471223330097636791128138827321000392864199483451034823999896898607623780255373250781612282568455301477484759456724307465566363182851733264510805316960156467447688087441444581213720404163335213655091680405844294450046637504866915529286248214647048109707834336851840743241301658389805777329356997905139013571608559999340966158777403348304717263510933672190572803267210196550404273728650435428997181381910720905180192983397128353542368718548771272295363786146690761151512877550811565926024818119060796291964190079915741336666222155237643080557670728118967753158513125640040999298939988580515668910450900371374376202070868081458801216433128958607453222582732059394026182736399053900913428401310796668713639955904310347068698925511590465024422792044336789166847728390998136062476164340633256123580841480282275135873840212533837241689822912274250307971973937398627892930719566890949590513590324117417084384687552943368488247904539757607809296805707904120041557084822966718188059579442196756519131835855954041059112995765990959363081355696548850299106891893937688849207196583808082093609389001964960834860799227701609397967565278454983264972954450326449226187602447340145211824448153058938133197764488979309958695704383533927332850688001224097216306077242447188166764385041299097089773395501858702505916135335728407787085555267184164122585336822926924870488338026642918313483422416980296452446646802269077139186681268128787435623514550766211891098357817024459752792654394162907631848437702482902471744309814926770005411762799798259358782009839984433912933302479984131395107470592169568675955115510006458238226788276288341501894936266394846079501805641679987954461414791800535158251513120782137528896579456746737588868780075537776828332770866183615689874887233885047744850185104442273756321693174022955452451217309225670114283506057770287816261757621084685286405980926181868157308835441754148101764638823458863939942658944152900394147473746507879831422739550928364782322463535937049750319535143415937761759232928892748458953604064179260567476949798788450797234886113838622200625850567354106622557409353915725162000535506159082244673083686359560821638479102893047444841795105486281995423594091979739870831543373875729013049438529927446000747280146699792401946564580757034927736077774522757666098316314618546650808492548941081279882423063411700483988831440914267565307161015568178467836484664666428447193627576334419839651349800260664244151672034735573458451130617032205026608928509432376110645626760168952437752148081826618187564728632598330926347655160659123602672942839378302331809176325920800263423453872114551731442666658224443895701464074199183744408351035387004681164316787557650707381946003276398569892198155186195635915433244530444427796227523964459391659266950914468011898801185393844070436765467862958387955010630562047862576658251791509844610805410792592057485492465489719479414511233153864494561431209384231083777979779098868780004630386242298866381665758305899953895322941472500732614983488057164084571468847786653235826824089930085657172327893614611427618877745880571030118105964655581194308458083072082228742836495972517361046578954935095720166494314623093538332637074123411051539401625996980747227063408027142840146952765003671313347552708921824278076023046499358512212188030622528532154294031856474889165135350045983710788299596565741554783810446060995353677718437301923040478980064587570059588019283395505373910621508951630586695463565169560309930590886647721217893951054457096531310851368822228511268353923402469378552771020834323923919879786246050949243577505798483904622982114404093935970091553466396841575428438977651025471446275418116606026269019887533600765501632027911165865442488960466293942781798063079557617008441736933729230689500106865744157331352209053523256069843896126668677603660241235939661337676284696156822568029019582694081096693053237685108388368418102487809589388746993763442968203144807156468580388665622158439099019360474811126007735133803875755502873731993734807051547883351299333389021974850857437732323432714298811667084283540519819005771443292051731041567524261786541805373094042664801071942458325876816839042634881400225070316538133244960913222321710305004563270627784580469200300222966837314894513184136733371767428620871056230849476976833214731261019272745346413888783537933411290721510630744637171603787476136271894136393806363000260486864246296802399372052389381896613246324191098424347890928088617948741646667446203605809795765916740819811600726145493513447996728239788082709849135463167759231833899373649581872581456161832288262409464499723216321539786310996577775969423013375167621711007463031549779260922426141219728677848230311409873947973912492533254048209903933121511806803530743368733992237452612052933458232252053758551526930340462119367503307603762127209612882091882912461303810477145091614849760955218291000188185485241682654283909547379848064655042968632187422104115279499749887746491347103866902313506593701903151556651895513365175788840775182380777606476785889505213002355138879923179073321171518045634728123754503368521442491020110552478630395015964063891266706730513453630652690156968913503481394461046989131768229153513885489545394353194641217032144438480089978965563871480981684674730509342005292370353093325850522307759403274186817288344174196975269753317107169366658766557136018749111940976016907583054711640400102629057460329651049341694770634602101615364287037577856810861216879102309948724678540616967007012330899643999414534587847309050059147265531813593419475891039754795218459087027540673490528349016713082411844332826424321874345407979191421366480181955413705920315508023625745060183730317124586286328180665438175004681088583763664809232761604415403993205800993539668851347369497648740079630662193624970499031200982322420137104377163793228958117697412365967290149231926249603578860338587635423638028302920578140172938812260199975404610903116393664511911661126948434845844981996273500356331379001090845900262921056414996605207748672618534335191684091462333140729933439653832461492933229836959944834602007575864053012275433728911510468356416485001863276375147096372347931317581700345231714155671177570359725229085924945687525680925539269946589536204589351628573726442775877693245649991846387982383361600076500090223953128972169025010898130073014165105180859889179072724340859583670193491405620842106260122699886297906020887852886450901536127623318179412756454371951025899249347927875595498547785495636433555988931947384788922285361176800891716631742531156471017314750263437527483965515881331207727132238481286047867806483234563808534254672118093183153703197809649106742113837837999741047210413815778646160027660428796129395648434473485035462053661110466995538320968527368167314069408919076091484210319086220748590537560283509144548451417120611964921197094912969122659971149816263368822533609087836174351546264608911869948581416436979327513025029246942959634266146107455170475300430639321247968406483336695627641350099253230016772081522171667587244139546747924285895486996996901752868495759944212225255258518472821541116205990600861959228114753426630867122606188154506344069809978720697637820567873374250382456765654351982682729108267779926442821938432007146629051254898091395347672976232002102191610000251091918474693808508128991621542786619478408783535816821813010764803966799573799133855834683156715287391728566389701443431093914762171532737329974919637226220342568095825378247583528186709845059222676580546844997995793712795596980045999233859863445889276622271570235522742080375910505488507785220378694752958923453584776828871255226246424344079564464092750924711787465785111116742808237622426620774601537890499705019110157348456604014579486620400946669740552077060145673024918340721537218234525912964935544954124864170758666429870637723869996972579397283679236978743982335128503232376339720758368481620152134903944151224653843147158520653238178946685421933384701825935990635496090740432910927284017837855962136366366816932126513983802823537507617328603863624491112377235850827140201646520794555834568050411456310912172593286067686601937119861043838129544098631769992937423415039114400424637824053139954690633483008647432278661747023094585307938024352523448572913032807331137651443193579823632572512227498061357847083978675041873663035969861566979425209615390885310546229836369207250736103542325027497421100949249554690049700458626497433745360216183027007857501596096355475122272575348508476959611502132123116955787240300235017311551708007666104574783985657819740614820848607660614850727762744898288014272645643400128149988116980211215150340777382664659570383677422630695954558955385690288591144274586241992116142534084293264571333443238073707388661895721936313116406831520241063477141423832643107203451949714420770312795639460435344352091585524281131549480341698203833192302035266789809812443656622799783671775792981498688506554023891182238079349635008602921349701660469619917705570502202609446780708447671424754112730075185740789677537810405956369604797071385173390399351872821247921285924582336142885468067343629848433975065015061912259294138868074259348289668788857281602440336789982881423070521601033854835689213326430379429781436740181053367755041976725714674947518764723286647319068291187468991217157688943553542021637776714200046002181563215902249911668166241902262606077569344251926651772041379090879384145658098607783675835686030682561353365864750464694520286119780064652665366413888424913382293468687976184668119090568530121430400232778573056853221472056719968898455186924188004904612438073540203733852661775634580567800652739956212770582030201597179131122185255380697959449459568215706414862663148420404922054040713317244323210408830262897884240938382886435549823520140572468801110217177907003423457733537827040031652753430270410273539343652901705815364300761662722547675459804802225571369013552154254774132294931774961832414906158280467961946946510116506774652024472935091144729968226394168002977446674062675825668575764862602127995114605837481769731378870126609846106231089536167405169801729977129736146620443959962904079911543508655435771656887598754466708440955798445579046461847704500660700532244533265313039203428654066132937987463313659298474629406959736931089038861157322811007790026293151363664847505766943385821445937523439034418838966686151390527560582838408532434385018548153210156058299307848041540731001755725372241833767982036334427815150319816359318495339296473308761640167062308796363058865217278492131441889973492740396172308053975933765461416274362386944591157510316888090046485388393606752538365753274993054320174813799166308683717143764998119935761077544144303376479050923771245667061144555236975820572754661267966184196761592615748794948676694357507747423922380429892628793878674692240968710798050308247892887883986740204198019557900731764150862334810946354437564133413116370388775567703439907642700023875909460067455130069831570612190729196943991126268649942045321545356094405489109950712500887195994617004985215287318939294484048574939318715492827517155203723162078002320045655700349863682024671999908743344579898776895309122470606560459870300979362968055673309086393367672519043740525952903163162393818684667973749953277818557253835043762170875770123444691442693722183661718711992720194288822372167104537541120800802518983185930552547553998128585745100845741861032369355928450521864951495922025494904071824543508097869381909393647547175220793930528560336630657175206725469995339931003166407642765728685581317811634340446834797535477485810004601174117793444223314835629243849449048989811119257870420434999965483541212409764077592751361312092588796458736494101489494893044406653560475882330743618939385564263140523950387897147453688994064450895542660921210431223012171585142877870494273886222927375388199906611813769274812380846141826572294895673662622393614365197118748889745536149493920743315799546698965225007894856525570192946331089975672383499299357695027618732117988802027757053341377763627558012953456494665235082193586201126650547171277914020616765124206574073631410082775435038564715579788213322712455000949534592776387254040282305530703567739182896604876529294379973694508222154536844711084230419801542103489649949877162562626485432389690918621760372040120277870654777263664817628303256783247390374168077465417817634650186372143229921643192695261775282473501002518821047381824206899579782816036485782983678577559079986737215241516341698520135203683351447540435986264848197127706280024128858493588141999122792198565221908919656076758615304899558188093433791402562729369463382496161258303579121369437950563621431557498390822785837024860426114856825645279697668334747553738271083651265656515320105261204666173320420236147967680259509391881452887996343854517595285609645498051057237589840699047317862169781624494232517609678777177311169285917547531699859948631923691088999439152672058044489915191784007356934887150576770084060189503634987219190000418302581503174142110928599037075892205430725456440322811790177234193248885380585609156525277725287956225362218350068294336737330561013925024527294962823777389036994873098783183485712422042550755366069739504689299293876904593856919603795812423869873975124431765326024861481782153816191191093745688781659623356560693650706450562356989624888042004827875563766893208950545874244369812301451377482681044025667715607272321063228619222320710075920883826586690535471884406786680701399590800620748277486680438935825695801539724102978565584422415678164431754257760579712381614048880066390589500372655704445628826117112981448749088046747552456210667553962341198496088419281329532898036092898559850154667528163998545959530371711646474868341284716856980360217115242698000289614688231494628294593846006221167979831823160932868456968587609779721650738877926933950648396432347405202830506749726092277612774774466093269873246713396514479752090645298948042957324956367077916439777697708917557628238684320752079031247815864433805455041496245016001061277817215671964160537673293464929828590583898844869855969552949183054458896660557834691851294094985355433195769518722193797608075903573351012081726158878298791826981318715499922993819586653501635887201008723228360264033319451234902114731469734099283107364846434885755431220205140502562045370117689863633167642925867317599169100069139198119942154351159504771109575987419099358724727031712531890843313800926426334006433501844771419074106912757523920243904585750126028286226978234497151844451952877173949718055097759433454548813970631273012776690836825371365978727895652485585705352427148692986019686729319191983119508241856871451128385005215562813753540573268728065920253989549421355115310418986214391598047661846753223577559766713676242829922865105523014874525881564334751512055204629535774633258255098192084501885092770861565324945792642211480047041193402956351634558671610693709437033708941265488447615364943282610089992636238003134138742786430259874878477288403734968534128197153868430880738373551138428647781377401255390709056209462906638406522493281953269382088334720340990913634794341129280342760667853525787244666853747202807664776205990683510901843002897565872573132820556972930153715132399823492368368874366060852881368511485399492364035763458499603689531091452768973505751717491417751773465051166996918023001588807160253659842481487033618349370133746417641889378549150118510578241400644355432894291226383685408802413397912792147148420444682936478813734798600894017504014893665594406711864007569361478142864879764215136746000012101620696131372725859022182340864074029940526942212963303379251138537942695570025783784398049278897429510829811573722159107552969852845344244625945628496538870279565083638187907691015470317370964741379056408240725739906321246286042022237516177370998553962757464322462605762372714637684175987428048505439601001018105983631687815243163998309908506653760333627466161690020098530622256669547074833609844130992433432336016659596139726071085678280712114264046518167100924875975876254777421774640570882185407406859186647073649135261503339667006566514874765446757317333831356630913995594462160334080171737040856389805611409865859962907533936665789608070291227116887842912583173234287873711593209067210624976000809208212872295671855947827690290969901064529716637640903018205095499073452239010265184496527647665244524372535249317025993922933418299840087521836895897230400664672744971361423277906851116858402050110813857139912599836898718439479268079569259046408938233886519045146607041845478768779907259597763529152162638100426402463376812790531346642808635717229281519888896983893552795077257073585103897583823097578474937581683759603095863411365051477767274565951927203732400951667462940359401581435658613917360384068138615202373451143840372432153608883166625329075770905251097901231303274565990349120276231498423121387583516996021754423993063545530294249702679658340123288022347422909410802894711512399671745666520818579842004554065596767803477559120243907908027419344006565812541726750632992067883833795394450289964183251206626050942952954604487171127778700052681539481712302220069544317642168426101501986650730021207471622634352450010183213973098944091132838828470566847343004834694009800246377983798253605672462886945231519756339847619896431289356616668094512203181125271778089423198420817822164553504063326976178122522131757829503951987978468664931896513990315774109210257585113821033257729387475494311355013934392645163426323294782146639618929117579709777012214833440164109718326264456202809048349313579185134561819238307233203866029937801043916598699274915428296952328419088948065459796840405151467947936754801454005818094456540269250799544668826536961721625174157313129971850497533136805274707914974789035659156222134934418904936561134696758360079544632152592876588554382581019394457354296686888380205619764156626449187597179672840290002211629558789931164183215430140551538181176997272992431172003848433225109180297525069416067454322746267118977367163085847647665505626918748991465416794733455168745025708774098581141048531790394525621416084404765933585825856607001266632849049006409934757244898725063793639233512303795881132265695077249392691513576131653361878246529039806510567652482207192360830238870209696605509286966523484346322848823317725995002836497101916399010462905859883750826601351323756705013122247266909242078677793171627643203799096101690286961470378903432458670260642771747770426124439629466005749385205967215346376992043028536473372780347748096354344875908887097013941151670338801890471065888378392115281753713145276034557820637043677116116543110723658224375825317014892210288559431438329512967085836926705519647820957737617787541895698292064191416237903990918875533468993860751316761609480835518650922808877394039074927232192111012472446953396333310237342206884576756531637235393738066405548713182117482501604184741054138847482649925041485976108765948188983296206445140877235000617981714139903744624427823040781514039004665058873010517459503681001751228281813798720522306222763869524679315408692807856379554970987223381355261240788476659822259189038492200107580390151339625610948601345915196956965966681189932868596796062576396515903511599356960254907325008766997572403569570607953210453030595410021271225928927349459502353856659143924423746776508925137102154228321204802949432386082490012268686897533232554702693655837308011803409495894090848709634054851015442985924354274613886639895149014163156802071282053472014319804008636865178181684122836746750194190903440003885695800510218172173573534818622038460071640711569789262569940089769247549762563313311232217572050999641938243326351240461534810118890302032836145360478588447741401835667414140062571121022507642467840806217414577607522486547109285055326453265868344081821828264214676373863566351873896983406019921320232720808513693169468716761096154724223031120392115879914516242679871385845047273256637576207556185750644707091311907805235848741994382647703785931532794679633941213933311188721494550397330937420211519602013644422550815684029670943614112497995948236931421381191163371671626288984047120853867867862699540350054673181234127809529232004016845582823645797954564379575767952302706017523815432240767516233856405605078095939362346950797178564449883208312024391471226679184095375562910403360263497410098335435258484186116300766406084233377076404543186855132621780403821700883582554877816097146166177415205890361773595170840871550765998073879529600197015230464503235753877047630291352737498499833749001880859389381653859183208083636673715132073701451064425291437403513391084856451971877498076277234440206564141109171729720569962504078392189909964581870053312282179423019941288596935706991498038030518096059577576049724516862882515630128962926522264521329105386186754752993775893987352767739602535654305905458973499616464025617809817562383324589849752805141687138914779612038057776066005244313778947636541221765402960335225404280654387561977761125075247132183429247284265112433156956547776385340191545366250399229919467286150712007476886001558164223975992081206187089626394734668318438752490420538872019001669418242505904611204940799934326859735592714672042880128800762194870815544476493906303218186956594304250600588412671623248799661167724697223377237890368947647880145567004622771744137197001030499189517708347226020324718603797183603662667058190377527367903177609578035261990821493014465453421862215167996897954297544535742235093921854445772204862761598424549973132491765217997519683859545552260628066029524745655050110224893494183484524457088557757132553096564833979307852432948990751390268908136379333187517594314753498287719289764564425786731965812537464795803648553746379140406171858604180028467223423480082139907634275501142510169273876972296307820983927813080662975906258758963650008294410254788503980652130428308025832111638574206195235114561217017238546674091632553956475745892351863468602645978637463785007881167328737856830370599112636015805188359019713838476314698788766157493914064339317012916638646700733216330609940590084415604404614568734352288981469625538985184575142523440696269921509277717851372545826461962394217621942319318830566543738061969778770154034744501049204280097890411576277030362663650693051144566620343058030158325345225015439703535075277377521192423589414903831317073455605474825828344575004621292947112633324625720847344937501246696202558199878925337417604604961369353097808501736904451587368489204961036121116954752487086512706210372022957844780627003592580373572352072221074741406123396130985590313338564286008373192721461030854688914895857147856726049024169979379349367711980226925998928906285278018782666533932507017255663118822789801572860110506070489123502508129944913425435827465889986746483798716846071070168333412934006209700443815357934615903219666733871660730118857136083080476079093755512148391278856916223020710051508327417644148984414359865156950713559097758374068074313755828041068496986858395851363551865783280900692428805979713093378347306950742934672842588466467949799313815596933245110226299949807608304668005023615355640016128987169691619797287054864943141473162053197437083858983598006330068258958993738577920759920376040178796303315743450409258852141024294790724676433401591568948023958979403685845232886458340171865221196943502047228394215823583633055170503870263337721165869065035744582723521969871514180143001825780267919859594901980499863716477296332834622919099610694033964018208746694084635463133927901175997287008429948983225420325841050506768549522499325607666729253174222281071504109797370608238811753017142191567880658717413953912912821411669396263900963280624065144788967947759467457723458927372925504907443325913383781957427846321604687955931277382322657407008259782648860710555343222699374959740175719466558240799269589887874499310772504081614714214141316761163274495826180596073757942043154865609839502306810440423933505605588298484566216326068709388707589121788527719272234863833161263874828500397575503408465149278448266342843374060388275469966661144224725564172745095547640991311906341627136678370672986421103520253713178370808812141975788699462520452830460106636264871104881312398142446029108435096434821895324332785782282206068178772074046857547159390772209245389745245489628869790987875214273625335336877441835947652806956617828325333503185403081259187310161756554992559634210841659459338723284229911879018632244174117773045112451335635597522292827161626398254030823294469015125441481087703454065814191271673437129274566005380536344462110216763074064035196691968378668925969175360607892371173003450094729939769274304208898636696047923266951116817056774603947611678568790540017403196828111786454376730072590040265488362317720802437485999688483392378447393539277625986654039742270475308053278078836173031801119815015641032028332894742442871271667762470819660084270661642185828169584957962329016059644486745464450242540634646510010216952376217778418854908899581080673386166023096013816911354744941826574956457577875070682200702759330434099421830198966456361105868339850944711523260858355243676974784250616643571628584350539048177289339176919939192397047232771415836506114799005054652445948893824799354845138875631277551393112733428044305514494989610933030682078344972465850006585409882115505926487500612036308938357864053094303196866454728247995294442773629188740827223082850021453223150373380286963960063942909898847709522981514854774529645131190431781718160580692400960775288634099533328936819574774883043138850113096073519973266812675683821846218585406988742082749175462892810814234325846731913215743118702678397819508298796875263408950624302757820866183633427250611202579040094968224562674677027807149306688230231597704253098405968680382902855087054231838925541424964944516529610320453411239759485830022530033428251509605601989099130306563656521438240534964134703186595519975044534598937716185520115061607187813343199205754864065162430508330549914501849574170004542914418621511622685869642347912960606328641829589980908464085485731237597887990447453571087807218146945094980421782298943821214994408989162729632771505666445730265048252217833072484235533525637844576468407341015613821852728814967184755529979757955760015919774391938017424185314642872431070302078960475433882554559422259658557631726211492325770833373472468315527818590494018166678301145346730680616838635650813033034568187016569399670204590768714353044457468112086503151975737832200010028610836472338521204087028560167146546683434122856271823526034476945681454409698788437373166580882896914815143964040776020363364267979055303631391679745291177083425938808506261704998813815786615746770402413293317238117721616757939229894629611675495454823512460418444805152624067161890283867606937378919427154035068780248167692812705566009434533897549329608569269784598450794366656244522545976978231911350842168980567820571662701584982330348736183034361846512234024275232065446095729059323529319719577372348173270417556005790518465756629423155168931843856055663982958058938587784185856309593585333462850025198317685549486570481615447133498812328058349614531144539960319205499602514054013286279591103636678711509442069891532677269409015033800776195608522311621638591753733718500104513130499310297807006964583663888982965234010285470247005422123673072059470589578632075323393615322567593596662257426624705033636829639210898911055563847610065134950223497398642968823731058808817756673791768412343160085651032018951718772667538754811552800199720427020347518864351930432731983716571202195577566507856181796123547315403688763516055969902346345177071729934012592111796271022236713722314872268067342868659472146930287008557404943981835273565071270673502358961409238239340469956178402856014468295454602112615325473931907157410018508278650636842759700799206214806236562582036103234337761422357060562575581725891032377067845430337983269954946409608825893092409170055332512935791301331103163948931709538357219735148503654895543446151586603730025891101967532621686589234865597406020890642559391725976854715361740876765698496140129954189737611805165768098858125981553234056984794710832083155741992533943494346773376563312378917072469845700561978874012397285786986455546968078169646700262397676530436399931094011100944168556910588918066262735284844202492532114133797805283578636901296199808757366004438181058907252871117843649198994184357891383974513143649887962354829648836924466078965209491742605317026534862567761703701219126904004042350091098851541383132151207405376418229473514399068163070582521755297348078552026180663330718236518586854377632443937689775800309111932380125500816378324236279238177892574308605555573904350761205395391684448334513551089230983202974927716251827014034055746064140403792750183777782538118539906106323620087004224445599183463178962526845272347817714925442405280347256732998468810798989539428083816872645459829521901396177602648878719159914582817733079486215842204429689343353925862078565527702984705317713663166259277886432541302832667460154601428748910861024628786143167844555160736395526461998648422433405655070958173521625709372556731658190638526660224652617704319442342265287629535904010847321439659962861243390357351039217678861151400421100306973979593886548341899231571083868659507309215276150737194614546525143844572931192844243070630615575560268977944542262394322278769621431289800862253057037233614790800261724505924376899623053945676422280950653073150837363143755002038986240213148817920608806672252702056893815815263490498315660659102364894220477910957579723408834881569756144746695134230525859921773923999659597665866599852840329349418871697272821505645403999352011069174629063041423612342594875367576830172935751209639952450285497972240383880814139136812368322989664362663385130255705068113962586720236024076039855428411725413183929639650977583373902751553442443754228413205120149275660812809920701031301821129427478721105221361388364498572094714602785135214452342893549504467472401866344438513504072817437260349485781205942294635028956443293878958322489836877582226242722293280244454322736780309683609731690381416376764377001871094344351983717096979228222743607078183385452387208140762801724772927421594415136336146179366651895240518881621040252230577560521773911638021401226045216389024467453349485249512549966333266332627628574578202808395422548793699432705106779435185658573026369042402598529758035192626106772045013514586826008978682896239165032871920380668579015996274155577966776652904492965572228982058776173476030657847256700861712416180611745633318348190593291040819503005645777558929697675958869976388258625222828506682423035141131948677411993611904291360957238605058208820460751335922474418114329317338621505903160925801210178297131047017574518232000589612317042112809561818842776742444141358153508225822467943349802807109742570123887277729783256616324086115027052326558982211359456878949783251186037274308363558784605075991544287180554950574847047945172367455788725066249178579531986178012840336737671788310509919540394549648795475180427573959367368186812254492200712811078409977050153326548610999737074002497965951182307472034318991344447302738635349598815718653396541581129810317139357183967401106011213704567051181484228507829941228848871631188695594203438153883945091236518461304616642406165069448697892668243533114712959909217435509430201279446740034876447532561946519061429488782959243319450180370788328226580945785058103291762002982338480840724091374621828234803290330123169138492274093468232275075845485228171135707990729821802282141330733570324231084397355436250537177827321224506026014673546939270814489054382712244048964570015960240798208300013046759535089016351411584127155176346244998375146429310927530173864279150527739854438835323957803013088048336843605242105666916443988838946339905071821023658750677725076623449899121337642700048835512713923013429481258485778926300126230548925385033865155624638750354395438208506255485718286207487881163109093367723628431060860326855354950451371204331637718044923462498330455093872362545562433481346157563236838590292939805480915946277985948939906679974396692116297068960000491097625045686635488713268445374127764076559977978516364795726377510150261557232089479370363355228625843855313091437684044238702454052805715874386570277719658783948282369242402729064219011572578029401637005126298852474059422567123025632472242462691994030402956908339588479222174452013498686115488415644190037510804282410622059647685030111441888528576925663956502586057775673361148978722819294189628520660148909588797292790324502020899843052848542544763765875192532707275215855494113175362319427502576737807042987517880439842295596442465568502398733462171371417766530093404994426393769211988724271410344251717829227440762617656549258386530346232521895826696709082433767770881694938653348169232349695679888087587096955332953065886881494080364894980348685871107331175962950066038748502410091624476133462799012368152301251462917152948719981569754775437093756809349840839667052835140766963928221786909864547093985243172702922355075011371743076793528214725329788866740206384665929495473942215607045523682580535710083930774635969762649973003982187589764575025279794972586921867530799583713221587711193098093667538747326471916692439336975053314166621857897402548481848588014138017004013701429985370198615634689973801297927791454376097702469025664958741752758973452562226800150058677686506484391936795911014048000319376917365233015330253585725297711520399795691521981112219729369736037053147078375499937571592816220142139792734619863206519673992885584813940990396346781148074543003066772437833158722573413564626326904899799523019072533953551583877294497185176073466810737453651191217976765089816664019702457648784684630773609502808915996679577156864931471330270514332678282545355274517641889197385035024521762968759219229846016410894509910960671934969066576017789520537912833568865529491201078220756309732507003929400000816625897237615751692773099451090689532467315289470531478065118211559578867305658173041790972688147964318931649954703448116149317878280341451570068333873886657101870551812117159747707118279166860261818757560924089755137180695980008743821445831592534260906013418462953959449392387510062781747913983390759840390665337611171088425696047068040514729829059658331765297684631453331116634063558323045734985486457052834045137481719722961151152070002463610552444043845893544585820821948493242810839593361761361361118128471020091385607629161973288434223815523591075200589050150002811671869438858131768480170198427349646563302699894810589019016698142882965678573014146973922598163734121800764834732460780695168507253756648787462428349635917618389023123075882963311626382126040540675245425141100365583728901149820479845353382619805645689682964622607591998881559379596817296079266917512368060486435917943109840170629516131271073862582436699420764525419531575672204268044769950490372495657705800585250647128367994362067272941121163383801039115892318695320105995721835504231158929201965968722745427570316346010026783493344120722258427387414981934843988595890633324751979786523082359542808670835462453018831575217764834440293282919867900587791869786789128185033510785603054803347705254326903016287191677085904135366819912320752458488976442046025201522775639280337228129135895413516409025145002162839908422990758320813600293147137858266617472582866968889157705453064055612459537651866003904101277078284660658002328803753756197772081324377520831175658347328138372158621537953806000841147669361631356351718551103066411742317224408726553590535310385790846222009263556660788288313298994790323449830395840899160554676867647113892107910114180870491726875036076553576586895315949416300530944818850361482643372978441979178344205459240213909972825455994247941745136287908124492844434496961741314389081835674343387308960896711624753431531716647041464393740911895158887721698806808937892468533946966502118251734151223246438773510525907373166885644242806369218251964963031205623208327114135077775961660713593934405392529580314199940981400261159539781254452328697990523591534570089904299616527453272072378645435745800413049084149996891263366302427940530248597032252955773087641240398607483743578001134165559184610371808597031396828936025639921704713005248804872532008787578743788353981462739965281424841369072622155734512969272473086385882392190650009588681734338268152356057149609399591303747337443947184674811355136357867498923761951156360733024666604068582015201813702749309423266474452157948575959325785198110808064687738285367827596826613417664920936068340367471660208875577618473872561212595940887380552800133409875810278344665128243555425359898207579019801805773926291906841584175262852961691788880240061417833922911365408886113734720825078934166646219943349800717134675238888222319152357432711113992630479178641007719091339372875104937638926851455220168271428909914969910719127452262523587393485447168370611354975171411125542522591171681957448350870028184660987303372896731393777071136137840502284930725674365840408981724223302435940995297928105237266391813019555728768740715757287501939615548693674300880262249822218665973012396158417740912455434958749777199012825105242763127288678532811787250147385721444324261153312267221496383143353578220496016521885299391464857773297193021640705953378141056311020429149863675048130568583723835291222789502020210355608200136622105564328839034530503540474725414581063432812589278409054262917530498424897794773327793548883035245876226361502818088471402235649156716297462736501336249334026863205399422496329847358942135522721140188214872107918802779229704333339929988751575193983629588956782138586324244157151672840050774751815980057595445932722677472778107564078895067162096088243286734404651154193514022590289853278547917021280359924137024016586539926272085317702871680502550912851894864016229375566942838280873490595140239522564755053451081384624076964091092902180960050005812407129491214656847457331067925657079494906987260492680876879028248868507518226688547654492936625500064076615936181561078348232637465272012948641462032706068819867622426272271913226644474445514393759081647574330079640254444751944434160301721322151126611314375012325870517742054708432098354783077113143234966216676145849004691102998873908516470196023525325829491999600931265298320209904092897618432337132325782323112029778508420719518191004902645532966585362949299835923271045017212386557179766274653969889499840253477305663158112815965661174316604259145916906050818051641380653312492673295478525013889984760434155875256302689302206450414789204465586441855371487632263403437590880342320777019712944760828337023912946294533924558923388909591436926731149305691307882665945443067183511150759023430786437473305549234598275502125788823419561759071231295449946223626002506061091374945266961876049912059663449046748931704290072413739017488876382397305379007454569992982088000163960047786521620969760120508852897087007263514764665951809580250997330048106631360617185149093033024754454967806346296510915141366044480587526381249858284768456501683974529625207977745558543772628929479221387775234536667899225055208694844616204117427084290213881434609813482020807798063103181571169246317860951020268024406820807557546526733954415687036129974402144912263676730048231761395712250117796516660380561421333748332415840393717686848668346476834271771971041489163904342395980048744906237081786530197240501948580285770968657502393636524342509376204239557727768726968650196934590356692942959633695662327109788018735639340545801575321296065073841009925524220675930341244514355187300739167555300525512656974450269155321189848883115237955344594795013957136994138655945059999549355071266090327010588858913106384018965156028575254480223496653059620567016629667543638936694480566357237650691345267669056467149599880601219035124941601979627287382536148467727192032916037941373316547819465867043085184236647800139566489448905507661024710130243436857101932135743702703783354022931659011081092334346582342466418018174235269369958099778382394509278146175477570538933962832571494104816923807048009177300506873650803641598271500017583458992145544632242060893115614171033355470552451156985976360944404311921065429329501240864206339296471607633561472998445601702757997387528611852796692449647081832422021114586672335313274811820848948709829897917712515922258512949816823280130560933831735867237862933255810631360599658238961840519809356402734448257047085809691437617646468675406156866042559127671520318070073379395728185049797229204733305441176143898264172555535510165368912460951808942221104636046696455683937828968214806082233062030502294343912135753638783538349097788674138135817718276872927264728041176579785027246810334117505027965749742339389706181254856158266376360946293657920297120372016120694073167705518505435774840570498609035904477752096530743858497851079581771893888688075092223540054428775910416545674614382866275476917470997487126060985905391640164485580232845655760382666303564699365960765155572577413261279867721403928197275451387490051434008574770180523317591225279228232352724134664632400591125863095334182117117944878554269536239339732398281914852777166234394870959250232316324903630658578821204113687767723130048626526995390812269498190562855728216503784413333555610717913459459895408511987256199710681662721618213871258217436595498998351959418168951711960796625727568090484327564258734647987116502276374348349165825316936520977354651756846996598082801407242106098629453303096592149256006146076565236583502805748205608064170759575761838247552216947475051349235447622027017782735463679509469543516733446957981507113423279345116804069813360053324998868262212763295727331989573150941645185387654813812927187601961092756824260320864693723977834129379724871582350199689844355854582889387351237412052633962305102018531400872100804007272867162715920389668707367139932022220627648141462032245795000591596070000974053474924446348654391477102343952772643640095083186194795708967670904325940970941480450969921996783884173328500148844883783549456967712304983716570918701113942580996475042876524427502122787163499506247461682252710592957225309742629571827630262445059469132613299711323780854413468949807028057147935545854779638520952788763566435160066225922233710650192810239495295376796233218384012650801044826288817095046028401269877720584725372090599840047833350200545355631141986282094022646112958003630838174563082730693813502635112115920290732118094449352626086350375846384629703728465262058067665300741053532124237363897174508168830103760547966118393965537224606152216781300322124553814960704745715846646103981154727475486345741583267603132408241471085642868862729874812636824059635415015166587015257588964138917698971939310703298368998207260849213785947841459665891493669051551808462190583561240168296615385300618609270575296237547590314583513847621045595520184454440533270804511373619012697673125639159844736163501956598424917374878105747141488795232154069966241688458748176334412402731309334485301305684165023476953672356946147660565932744060599506007380210147275868273757958492823702596848205614319882358183100475749825661103150829031964650566459064393798048730281481218220976165804627432993113771736424123200214349123892323792358220583651899966053078077850733306307175304125339716379292569498417750392104182354641355884398235656474942580152855458302008715037956748707827724527325376399537164566398406011765262027375793045171683217647314524850549773422956520395633312643381008969629731922751508132381626458068643040303746709113309828151660434595494023430401649913352545619656618423957934301276246361380625211259091846907782294970175291908178004438733927894438524920441184760950468207293011662074330814229826469135777654382445352049461828539556349674181099350253823244442862842733260390844083981112890844805193722499698982452194680750774325281002236678509273949590325013739270667284022710923867776967659992626976399301804241920102327529056920480863807991699967320328506379992571663435700612081282991310931967767359072664502301361616100717440592642403241154803083839461935298472027027989958421012972754733827320301288051866864160641766827354695937071658131774396890177385292383531001548043674464532260808005145070480250016132327532251998514201155825793649774404062413087653918810795542994557059875101018298246012626056582842171564327470942055651322238392521692765616814094968487015772576234580604850098035149438571079949342535732917178450348822706544279551367047450219376745559984053083835269128647294882149779111327014512153539423412968548643707202025418814389046266183949684298361230391625747740721630413614793699963207129527027964159245532739431402973092991179685855791530240433623160732205529510645383888415129969409603399015009930055787143872731384078210966772977404931431050558247551481111648845978546392173424559793851755166622155479995806638200727662552273087501974051699027076638562409660713702319992832766641568173232036395640084245539415645205099699506065389865968943621632342950909561270379363692574432422226046208087475868368592411893995948834165003957509441354503740516691585202044523280726768265013932290369265910564119886649549901943355283522790096459790419023777355298516262139636950576963135058404114736074541013270046023628986518847932845183512447826255651893256232733389764828613141626631152094822693305674703688321751371803986654959718087164625850804537621814567006016225323091136601906804775006593877478645573280735624662208203334025955539214883806454001444939116069618745978841591305015147555771918350084805066972948047436790953946696121035488840886013175110424031115085147770682631569471780663670738630475061429831338369892667519995313569434373871745221593515390972977035592616716839879815475864888143444978882911915707583325223338206200396889338933120021418932824022476125682348957606185064585323887911751259942865261007963103977772999156686414923140214092217696317067276399641470509736270450534074626690168013573374409004185899494979780807882652426287355909851904230197774977855601756299106884577724789989618583348210827455025344617632311289664194277093678081333778637610868019739185321178705514548327421891140065911189919788020007870485093657630057299969961323872738606030965953103437549591813272915824388187565026695607790490134947754010692347989198591001657726728366900671896198311074960738515186196568738631772416889220438146740144279404180771547700576280340305747417316400396635196671265469215740258636227600114408483449632322079365578260315936070527027179969261357468016385851463610473152636367917060833304469034663697431968090767123056913919470584043971508128563979277876540808251942153219760189668794886496028193119047309768380190402387416118551144450300529281836485041043033134337861189138626774339957193017692679073101836561702986274055150525130619767889186170646214661271799171614157558373135035274867933946494632669384796856449319701926981683576028547090313637817045889201318681107986066250906876581901462772352727406649035823673757469212214329583047163117340004008410051107075063694504765470752368536009737048507603475172497402952130047841257242188279272513028211873519901630600447675416932136052165813621707737888926661058070503403514724632601029087204306621732945261240021528183040565748242812930447945391508524996969488830874914399639938143571096665605106194381158651316947186386838201668376972739061362369049075787693865927337237679967296409874641207984755428387374347288309717102832786954773726028696984656515728770954878954010100237341299406243385710987780325550554156443104463225802697980836235097735537965241540734810409284235096355657067630359215297885866633545056052623195859604127823075672701692911253583435616932879683165280117523604826283764171953209570765489782402249643532024071857893084961129854386791416964082741904700957929894985694044592537447614352559535712048384516329816685251030137806238347761552065709230721157755178157115137368863012003797657563363551335908845008344703889256250457946369410133953374838156655002463302786683644561460300769320588093584619774751629486562154511593696097359943846282614506232605827605222147594074575871530033796482651409272745859920533284312237656646287650709321906103594623946417438479930169699426591434056029156881820189928319870734388444494279776564920972570742889626647024529575878977206248869261772275955841013313277032969724977096407744719151602411379656511118316311176604933736280876131404342692377912752195372721885309430684539148985249515476869572368639330662706460287676482257857863655627084642583189378600370823460879232379209050731419606138948226302730254217540270312066760834159726413037218448220543587812125707875575361153624523431447178901637616938287808514906426699368587816832292373612012750775680253985118612027489322566584839356090996955156900829882078753694075186531036573169050936964477468565945838080628596406332976529359983416733215796230813074880908073784547657688703249474339417223905295429155098592739239004937165617964132011336062130342218290708277709236758639921741785668713501309568661736173217358656860946584133073092784921410085121887446818224093775255713262506449402450474883438192035291829169855981918570796833709009004934692697729467009616633622362492707015027092498828038548770780964901510913969243441543353602405330483419566701712769232267564599205403422393569410019874103729370123172531000034407502209101500002424133629931425099584844223390169579621581088303092601365034674708176156304205641676004083300067443869968390757402505781323554979025553542587581566893030966010674999701527261468796810061384162209773376775929178310873606873305956863742572253337760503412923444540884901941598445664242883629653730127092823993146457121849611526737803239526000959169479481953121128215385011235643066730392476406624765981311542599118455232800908341514172156274785807737616826590921820509940377713735223162640569177872992600391362295872929663339296744351921616129465966375035475180373049305386682006950153193118867127479526739947266001064822293870804895446854480019347846406256809327710306856461538780540689358529600800390338586114330768930100983010797239832274950849999882640092575345310315405259532332345953333620627597540632757612601385305607724346024824191051105035485422758569101500960691602375442095793843867645153190493448209436257717071756444554874327058128655985177192780088207615189202971784062758954608370079510133232056617699141571387609033691752297216866028146778584534668299560295153607346761831106125940948359002124509997687795440196996404324072357937140171983445359794222869012888569266814324596653372476116824581120783451177159229100035308553552910898618669530076667849760185507920058860855293008307098273580283990263592828375806258269277352052711173902316615354743993728279274739960336769018648118166807378433695552216560058213501348870401138332970415231227269889037415200821260274861546467990139386211131278027168647664649533256339898304731050378916353969321541712427227898155339781819789535507583637632413631070427711801791725285747914409634849971136069859303249277659825321793447007113185270667224080556322938154660739395774248491130438076745824849790316059425063439289152301751889709927678089075591657446897020605134857159570662687998170587213633136132313387496195446442398610219892773954341515817055854904362056630655195598430713235653322182496437507986144195920854311075828985879206406631069858810764637541785207095872723382631093049466244758922543195381638479591150264369203291945695836098567769236320665103848303967467698679219049046889361593037659789721161377057194232411928057627721674923172994020967350046099708278124976857639391995062839662361012520105091170380931986974902454183117908150132149178283330944784313217917296237590877381195465085746507474747028236670828816818250573207205787691729590412454113989773567571593510651102939900403441301845709151940357701779733078364790778551644927060784470410954754024993879983513949201673487978909480888614578285322220528235569086835938959407984382890336281240924978239126350731713696028467174260098869580238067322612712167075043895503706375809314118571393855921894707205944704939246004902102922705496510834559131305159210540095886386825273792400818644593687359539310576549694891727441931290323779587174345603680117475590692312846697058373579603437160815663124527229994244287497594964816583639271959298611623809035421543366624847640891116296853937115387264105001468984752860851993035308098861663018381977278857693956280825586758190583152016538102150915784733343927719015081176291268500544170772589083419890231602356620004119779464769492327823766335156919234203500794730796716219581444866343861837092324853299642939419959016785779992706769311316088741051031491842742727060148090936584125779650543394600594631059769719221150806484413584462470803045988336108862200055084712418635957867918481400163559140556091851746840187294384469703256089788601825746472633296976871496980524689706150144528432425999247518353819167234227757686985797524400357620296952262583351281975656239288193176475623805017658305928393133237201293848281084035707911138994791614932716984066820795412845135307995547254637818643958243418515796110810792843756419316969928246055323386718779783632724173743797947299220582785111771423566049421134969510169826883790570392766111824697634031083810801858578331036095838997869399353626944912941817823068370290642829676434892182357923812914291903264018960616762327332690121147558159485546253005800693514755831441332879373792836859334759606199152922445017708741412951118660051677874148004245980455573332153285464603564382621338140186208429600511031663780454678114676374350216149610976157693409280505033695054555781915296280472320064646004240161771369910604206613286604186063346398939799588741498766664836803355780429427855112669201034105384963689951709023106496160065165125205517355257762184848057787999320380777074864304023428925930236015672686097480249138876351645108187229971332047955594457119188548856864017000436108614053809865792708516117242024039184497381865430301844643687607798950928105919028429938295024483521194627619902397088958518522147903507797578304982675848597613007727860086409317940421944156341878788991670787003420113902241608899846836706642037888507758776901838026870930946614073189065339130288489942861128853441182062713077102541851190099169900621704330500656520275016334199402944423152601557185644571032890009353424133460694998717772908014014768143527938361660915076767392944488872875583863800246899898370130763516126279602679085213870613258665144701516909000245092910197968404482481089120217804218864492764232417610061633895085425264197661462423247689878836185730864034300784235929984533003873410533368660465221306156005699256157929409133929312938499895346933431293579422991468949156322365348424444604473475215521214883335570431174190278982887550809454867375476299228518989710475515947300127599932229312165804998363760761595308456228434080175619926773171604750541627016685442224484319931019267454806501887571482113575630176703912393632720405487654663746993667820055810745133020580849629328616934193898156173542710129104610347434774986299897549814414593868880173386495786212335525247348530956717178238076253861939193655204171618036151845447105754456925496137230124704990142828994238184254863381533728930855921697968367656593535988797968402476670068738087706455325086111917743404282277505354259126155733720797374973603875995507620915977672425494379421732494493711605345013881508067286813847030508430424842738178249794249590145927621184727775140145612460216118871347092133682606723387273542540413491460589579375185249840412271682675475800090432671015170981730253182482243596622432587459151070396358482540720268619421581484864374241614258645906882316071329991068055859385263140413164243863146599739285290083324831157502391432190420940230521079183779109303320556174914108730659220171796692751899085325692493964699319508656924654428847232821378430289949643350630128986065662825007602602220454986752358364268023145539301851411937953748365624413034478242427580444372327204524996619746636533290855492967128536570048333184154490441254839230597574733362935211671752578987971629598351421838276920111189996700458362526034008066275335291247013891445706836014404880707745653704015009230926553994791337259665747432858357902114182172285431153156795968304074453154188253949839569118259374339598920392489672611577939008022837884280438754374541441209887515645301169304857184893209287546938419893803776831015549334555898192585839802015302270504960132575540478073643318933797527530511978553889012130172737694787389154310848135927725544858448824512789185165559151418286333192730664999116380611263766886697917929558126652464239976544575656017772755075313085685780118732902043412974614195863433841845443528966757608385613762223546849348638551693330678022153752673854242733978195380514246124815986024772533912801759268043717869214030799368631398700934894979097897823614869339945696372833640799382002801268082014804069653038869481308546423026330190764792734441698405315249820209893488905099759941521897436647158617860253445687568724631339512473315986995568157760228808985511908779573207952500888083402804174596094255978851795289447678511801139687117071931604079015434092583788723603706836982418395368934430569538786138925726164484941223607364574736262331759950547477216099790753956259820916713954861540562665591462114092648958489458269449089635600001353025852652955703823918199431269154613186384258470330364271719445558084561926288797811961365463905493489338031932942316315943766409353763860027205563325266871444250379074571548404851983219400820029288748988604828845682204866344439664578915757010200112714564512881674641664552039564390750522336174818696062500919573862488788057876429876732028470245860799821945721226968826541737002342331758434846918914388776518448911197256092949758605938957076841209633665558557425906769151498438684138809328451445003125990636333151112422775882841160181679765418703409928824614520788749802669358304747287786777916733535005802232800939767157934336230700726882584700956748842986482919333463802532518808198416847898792250310159619675674051269819622818987730078641359815271835604873899294166202187886058488579751027998633857548950039778435673022474020564396337422435744016626290335488139479563764544672127862783607881216705876064041971689864066439105081279179428679878970154471886682854023404814773270372383731204478498033958725522854301556352216717773088472568760866080719521678926351112858695168015157091646737895544748394366907894930582878432990676946161696034135084741736439578022534938626920616322531672751090235180238954224887815946792117682666223190534025185669395043965268787051775096354874169062311828026595368828830504822655424082682767830564872870055523902610370344094847345459497429818806077164332354420785564619351700670508429162664642940918821519471453978604813851425247141487431117049384815158629648768597421226072760926549259402712991047516491188884689114364577425755236379860840296033488640570994047543376198778705801162712252883633210683020411094642355631392313866185488852786643491726097504042792392856544914772784012356742278443139277742404937625184562352103868610098646295042165074783277477820892913615810978942899059055916745226775770526440906066596003435187554886972341203409888368800551699838857281132384552844329698096267864797802897502907365900015379528823700973157241501033461421404116153033141771141221445847725225455139230726789590741254649851945133080566833990096589261760965359245101487240514884587139886740487366223361212168963207727291659295349018941011924022604655840205031853497570224679300276535941119755016227449583582126907989288959682169070283621179634509490275472151609931052700799528629052874383415355400305277368740808808160250367810071408637498584728014914961964411861576783369202360908485121950033692983852450195302774646781931386986675799618142319559219528177856977391298780669133981883765645630279816102074025624322890882251514704553642750566716837372516959811576219508230762591770874929891614541581349348915243880709105710799265488593093495725550267647919721060398681197435268528048319856072653493296327507136678604447361782126972750396507886330266234007325436930977347595541663313717949311229376552145641084550194133506259465331436022531893448841172825124970609457417827816868169684736879593674513464043643807558273376240182808534143647092693511551089096681085519382800614035696414494399228901230188381938465492140892054454466637418677632292700021838970432025460975984688787913691277150109464818991059825401343494972024731969276326557424098088790352828031468088360598327645982187701205563648043272586510770056940746469737213933167671415359011423605655629540953868851738264836069814231928141923328327656800473738614865242245387615831888406780629504954578564018612700109017616248134819756574340687410857680065253828732338287879150682499064001490007239417095160182286485543614297751625677610457065899837945890218353925639386836899024936334735273538684700069982331266996867326703638403966135866184365381581431911875427097820680483734802170357828735513937401337009667716000976529996129960032555756324177511899193235444274158100026778860753311275522112293476220032203255907804832429914671626571851903139963079486274485496643798109505529262937605123309010366936529803940500160779248132717687794567823309681934361971796120668238278977947335737090298296558667408566762200035479947519157163602796365426806668203165797824006280791248808073061504857482183010951867772906781918208546701592925664264942614849009777865864205987277335101085876165293468556154363748521296449664858446345649795382340980511035300903260157017294863408526009550048902428134909946044900828702126617568562178441056005119129041027401903611153691928527155573125024397308100504027412731721445913648371359305457117367152582175698290508130784722882750786387015441322993275124882294232352377482577907741354248321991415355891619853146547378786500191466778315656032458209822011509582344103560208427342042203320297090727880002258636778083447254073854008918519962340866606366280229277698134090478721892964775757647362711088001060809488246800210062260217055835867520817609699636077674536480778708095486710052891638994149351260827064096068633629508224421352810531657823550841037189131136086725800421106010269318621196366460441514361789070218947708197849410695169322876205617350924842818891992256534679124902114727369381347083877772404859451376698843701393509011364518295302971973177063173961768113918794605933183529565029850570796148777808943204683808812114151807193352111414144441786535192594532164281526665472745806565075916530891727299168554208317170802591966313643159798159344626054807100002005446820886750482744718507376677660528246112163171121067864857154991428448343510588176166181986030230364782668940838614036439016530676594353602309277040609445529451823964965484796825342514056338249420072910012279512990789207409501032514325641312408340090487869506880601495197193871180126530390626544051085754493201164054422142120391324854069930179189362829175792362957928509648965252492161804999316868147259602198216177477423014887187078555653047057589347377171933034803357702684200023307892557089230689598085460788737901114868098432152240610331777298035288239643535922587162455070736564786057766172690026252448719963306879970975187150484975427967223725307788299123481902796289625271648167904490412296747780768681329691673485230203070815189772562201840640202663888572492494416510520130942749126844548733003218779728839283146563334613769639061598531747555148965809929684054074798215448838163484410406512016219975108329511142615817134319072734638335035266937038989707018787464187232289383998961980929967383957278363613313091984190193523036375165371386408405451998389321367002333075542137992648057549460683849775044353762819260846808647293644053760797989405681480568962181854278841260694996496836912147582346428241984930752388333261050681538708002014089064299592825531499273975138074767844197126944210221623045953819757645886113545922863469666848157779754208515774473989219922094709633375867839110033003145822979843777837458820694011159304646017087613041831306412378584043608283459595344068450038688520595288623270830328863302805245762639917304630184955627015983588084001212278232930739342076816819873288584366510199894823481235135680075037461022898927977643645481070592741206769147976103756877593045156075262095858245087877269543648386630807642172893875130889680042331238986295462266913697031642642793194187989074092144652220382164689499024507171210680330257845205898697982622785531178966042283724214846798935653205277943327337778213953283138267045221375685971591362801379864376562657871895500043222970048136319404076830260851682360507322588565554277408996375289902009884485151742979575540076521098021635774383276651668548597845830900202268128180032497653636541694621454141408886185452133212575700044098454323052653399214731547431353222136326121585992227983081863228677790230890475266767570842388977923646918589360700070019238966589673807032011648162734432260799302857442473867266685264563876085885393827383112709966939887464182940808793710709658300134272955234991198707934826589775877819267889701661593165453635511735454093223469134503339473920298705393012316363659655632520311526147908656224027030409266519196778643688485109617602122030150230953419428512886028719388407062663333445527699194742646762424511927605054951712783760143148183441918604169324322507388084402596509863713677556492571167961459408589814154982320459054015349925491075220901607592963766102191551068212747916416581065471577141137587302812080069149287535415865240692016908826802773375446765647492236650623119107002297694897685030766875416110449284118126267531581607578700383181828134646866996925018590407127010586806081334720717992898884856195471955210808558105264213715779407359647470642338358035174393027377013774808394714797431581293817716644032918433633178626513000660319062917182949948669472841326829701211727724003424635676282782605452344440062483925791688197704222595971096526323055589378753283102034533359071771614431793454793228374842076518619966577669603317102598573355646916088899712537419594569646065706640038323913336968537680290358659420311527046886280001271193669323921639397947836320791302405912883500631417695341082552564095244039607347385865235540964768990163360440578588904716257966063175286923138348278955755165879718518924664281459289636251954861525446813036363216196686667831351892613951530560227823218705853309594772843796563884678868888663265161556949047705001706525334859854699070353959717317207113834666251368799830539472937077557664803641344104723759763312306045019886615754410549503955454263007494785985321344268740481006744641598623595911441966928391859707727307306300679431390051500981608409589890854786323456264995561999460823255880375933209003343898734306901985632764785024454022740550662172271131407435962211159524704310777366368361216808973443721343315798593223240911353971241799613981081794605593866348632950235624096224122390640036314222469312761310685382810810789632504530376840737056420837247495262912083802100088233007098401194045255078646252084290746142174755175958301945750917574408205361982263454558334019498842750848718837530962126194282244294369109016517443210081738606301546031787193266165444622115274023090377596384511780594900750382073644743621449415560249738315214348902839172684124524840394893910296801033724725837199836779053645026207807756778750544748096440025684905679830330354174302850738181430952985274164752227409612352823355749930963542186068880834006892282563232631758617127804699090103911687578570590376634648774162742905596460813318470848738793546121982890953301546545268498994165332143036779190851915623439590411669059749975247988486964944024581854786828103862637012271468504931954496239817686682281125455141382607326471099511161025357844551037881199002684113488335959295034689723694886186496868745982767538012598596171926082692989699361337088777795192743614394980386712223781958719791268333361128007279477157010754652653156670216325214859311402429445243591009860536775925064000406461885401935631162079234632241035171181413076307480458718458776892850386479592563011380891302264319634839486686923068627747832703899494411267420541076716115579823046616612881127885398243040369240062277121032837515061597575495315985124394332188692370586334976130073629962384086817474067380949160986448424713559461130372513837332687616891559447371233280712721386319265394782249940668351518655379435293397879609415807115700937181898411035278020482831255126304307661438049914438667779942777145588840481990841564569050520260756900403550200889989690300020383665802633047354828924221268359130066001481380526711593071766063434261296326558168490203361207868974851429462075058950250623239523481245131187474808641631646302365236812811305292320455471302978046055833395919208319621582414938973307913824546909411396103123380770285296595996258875003264918232521112356979593048522449300828315296803848470659474546655983904345947125294983776667285852658536766470252267179024235110163031135926448680113522194361393587068738426523561681035018882918269473071410588189365422541302722875121393628622540368885837487044391756806310712942693606120374751002413944722542815707833252123761754851928369403415353348892448976926330426863297090315116312258763138086085828134878337769414849330316171644433665723841710133701414269979873030914643735180733499955756340810204924496931898040522326685313847964159162258396527280714539044182582605211358674486728935381605272052592919093181167950198199570015919693896458828969828125373033122065183870751783538315652227829693447686269007248080297722345128993600265518189573429195948717380753612954662993394602036826385691721933465954379296841211928269286024966531653047596290448188204020113301430664491060240804134670673029678902829088097404977936158387090515954139139355671934171961137932771860604476354138148637428881961992195964922957889988409629567460411059629272971317988828300368328514436584429190970266532187405673888646319223008294687336061586455195880688136370017716068916007761301425333737157677751668595612553859441663921216576371470257296792957780371854060045676336442148040559535425278898344301203146800001473477859303113701057747603385827875548910774758224136430849705739565829370745873326329516267184945813299509426494301335836767488366808176078294212372257799010357491721129036588946589823082389361813108597381773743404427362752998437733688613504609191436333431144202038017625017896154407731107453536475315183433239455239715201544969999374393919297781304743433644693936586645611712818871684984830211211241326074509880447996851374175595410952326750303928925397777592278858097012810979165638962202090178894146962399040980593107411216022770794423621866500085716113835906198059108860806152961708738120210949065953523968517530946803386649532529278905231208101194267000000414578929744840924118300114747236044137845682345768565624221928733095271112750172222873111566395841069405973679313209670817155149620366939065577230675789317245208515253010904740621276503482305122100171810770148828575625473119585560682020860123533476401609322099621626266820329048763179619589496762128961074966824114071025546307191739475076218311408854378872985235103637767583241932896985716063157174380993978495907868038610559576125870050839897489388744862810534314047999117094926253355445047291729818459996807755995210195141608431984469175923536756284584056508678968309363321103029813492068382101697176870378229974623284927054135072112910120257021953240678223461454326911355857716577547561506278110555572884606480418319074227359640736831173694186813008143842762915235244247839393140170878965285256943269620898155578662715796478271219332677661548096147858532584582409384644495598911422799963686731774574860279083026620815401113984356727161174296900655887789818093062558657006004145980432597272652234792143436934152720018078606575049992145728231043002833771510557129806799557973742540103412799590182779803852652641459085605798657805922691220686744748117646624719922370394695560640506138732378180793564643207912095458984229690983028192723103428830661737968446414469130632851451244537606939454276182311797596230577554980349359242176677121030530952935090747062359098190110669295386101263117262038960392584941004949460692639079717429812771757569692931791978101755348347862840379050730159940469406147683233189343314397128841626253025454957257416024372932016254776161528903535732123366029245619466757350491386194070135598817705838648385261035169615557296491061772587982092194553785456293358839198728662196625717112805100591545114667806316491712590613608598614165842465491118753478159531099153576235748527591755474880763002343987765292937306483198962134709548064931510210912368302465304238385016525936344199413561693848892171041643642935632340881755802665197703567705761263993716706121659729092485254754304613735578217082359467010623239394856446214605900880550288606366010383870106396078493762830663949845393850678502860518070846412042252770157825741971456730037724611593590458562397945305312402146179749939586602620118616360000006323965080282263358784453348576262376982712198737038976560305667471943146799211176155338212696413505264472702371453947657845354355349654349827841892920878877938537154185578807424200478586514767445290490185716981795011962619138552165283612784953122471870804851860692058555848665310650887551294426610041205260200156475989919547691389591048030749953036641939966265580041715482159778473093394851649573322012369321035219580241549493474124659498762575821242849502815154522311874080308449501808083280415151100886857376353755229432586601652167150284254850040828948553366677329188220318197623512377691749181393194971217747312301373744362428496452314399953497708050328247775739997769409467963561781780429342869428352361294864865624776199339258367365268249059259271259611619190363179897390169388076412840819667852176818824806079557136158453644501036544958384619887414286896114779995234610194331181559216114876910097240363508161202651472641949904024110174572055384623562431971582534566659365661912578824602858133063285578470460429697903711751058694421891381177463026358007344955652758229336560134274943400998718098505876522954691653614594524860749567056468463796829845510820729057871323691706930514478201717442819759814778829920788720583645585690425835554759894333951279175808907521008558545741016384501529241156607975004403872382026856903019182126149292731316258093221456467774177260740018303349701450132577381593964993522604329361235123090870342607764234055622347718044824645485040090924723890873418983005273362623444053810005235844553885426046480703092701612505391711359142217645445387864821853188680579236452716303209672341734834951536282893086358273124032055891318139955783168846216219641644596999918665549272469877460569142999515172412325069509708634585758292275024228715303916477243293333595542221762536454919880572120255424284161578698584783355186665507626146471539870783281466736424914192171479279197644858421247196495979608218887141854599495162940691096674919376507898212410994022991017967448827326608947582548730840891022367769877986268106843119362343757646946073058255788736615340203811216439272479546304246870639703505818571274267301842639020409041913575424939722633202795052483141305589704279763737666043997809330300646820704787786523860509306207466223300720947583929738618747869400784013117012696591011270341202318807545845658092821618309668355576582107860376372605132007422749221576112989477085627346931036743931942319519942026421989436470660620157841917467370914685617868541272383841529701875864078222397718218150506198690172305897720424877858013101974920191035136986798860014726056458299081531865470628287776071263201392546455263031152145912965693426849736065584529088070060818958224078466635529622580757542954665650418993142825820494233515905620561444264397508561070094769116138062435775250230631324819063467992980703918093380046292840985097892908385562145654182254945759284882491384367374364065942265923733558656338325518709019791646882547904255745348552608591802863077373286173336672601362209636104117547285266145663059965713654411166107244501145910964470352382030496477229352804448409776738390362912111056185178745583123408547797813559014890479688375942517992352340670796244464574284797219762001984138940788925234806626358964688448894668916061909296577812151127061069128065787464793753679952316588667375464237101672924557481027563713615982338431380440115299189657681864042418947640901099264748342517548595993404954605986499745322219383387935428216558113076148076900963752425628890578009819818371349994542450837571696602223136005181273833631918419180078746857137636108094647218744011665337029584814624725762334191499368660120861047943442132179706395417674960618258888507860828635369522953594319288890309516639862652826150972810811853381978993921758084187968094709202246289954717057113879975647893137836668622571253039388074210951586570763914566491549130494346896240885891357255000906087516765812912457318554921082611904833623475183439238521752632099222615782340632646265532452510942885612511559407639565448032316832354756474978170238208765218960185527703757919109265716116082949768191289502654191124067912422783633121400797085937963523530484487384069123949766485461717514534677760549967103500481388967909359628035355905981021671653509570387898633622079811238151324181157296022655186990226929954045589767420921904533955613105601200571157554484441617457148030166007910978767367785257900255230198723059258267662910903339757178864267980347645417706982478115700489306133934834179890583835310921481378538897208750947962704308112021459645001005238878884641064229757184330070945695633229596936730531384226337073168964631076955331322924935365663758854653999481561507930758635991740944863753082959636989339905036920019975966643109117422475759367408477384493712882955392462813529051266711078968098087048623143958526609154692706548736862064416572132965110834573388454461049974226107087046151056161613823131252416073240637292173640863618819206237352470449710438960672485341469247426143228400258782273517584712824487252523988983387003373308428575322593038057217678264567231703800331312299990823983555782960223913244667267414394014381176194501314356236467176828271884494651178086804755457589368992434004388439086190972757433553898892899573774322070340182614949817185997769117765579561345888104221716859886744989442941136572425176010746788313925470934804113073304733962239226354906518932908573511053731518572059121003581043103856550860337960398043907415163866907423037034763213899860215945713516654094511066802836656499583257877876619194983165293579331790668931462991932908972892074642540706371658934225792035008303135555530479616062365187016157702792382339802780049708725197479276494202681205395839643983161642344317786507520166637823115447690811782173948042706788386117632565211240411319893557996635194667302514671269611536309838772480188918279537480572184428565283309540882682736380692453481229910918347320299398464885552913945072289793664476884014262966616942397706545808301294017951823938932777622417820376164252708271535235332038173024322912697993049987493113031030411861368298266835726269808525458616880503352318051009533201811815003639181178124713514452296120777272263997072226597772219643481782119344976307333778966561917644103584902513349518951975066785206063936785918105393658700450815133469489241304348609867639836423620462974422166644054404456839656570654873708990802703403744807415708192190850443964121073205656329912446978178572686754848756352603713267578948416954398850071087719476262528710677922102851916062824687951727611574782855660788000107920514166153266448485782822017986725622825245856091881153085851815652129192777194173504479818802898233994408660773281454012422010301509849136485225650994283941887478897811464035107837875142800919273949005955824114719276325858087929278196379145930849053160696450540650018438261756030727871114022865844584826565662013597122102009950434868980036164210012015969167937523639628697112398046546754398849424388097231677390846766888714246425357536953451897105369400066452345563960263053638769926003117435136359396800126294876375168841831496792596700068031629840652244153620520957544754452002351334771899007428762932921604147124489610795732559003903789942399505590083631290732833620691087793543039239736076781386052089079113666133678586662653992861444473367812951681629401028793766533365244493884980314195820827030596749959071994764480822948739498440778436239816760622805070272589887404656043240653069220134024955422904156367756287118044468982772174970858496429473335130683271561184916845761952730634742423730447075108905780436264757050730429969862059372356165819592807790927375018910867764757905616372353721666580213745284297446421948665185773723769783850029864318423070310283391510897214568874296294329468443400020612832463616480375114950199390017910735028938912259317877604351249365199793915565831476625403438942152739784090363859151692095115977542189889033634570844760331443232419015400806989971166279601696652469884925055969134429596996793199937725969112664438012006232428634127310276472173536611516358381918340720834679999166715998777925862465325336814731316210499077327959689440164551547216311838978590488494946609438329889793231854014138716034255022998303602972628146838154074121916240891069085888537873724374475832526394143122130314333392312384074242505655624534700042322840866873829877045034423642743084185137712489789206495256771860004133426737275568710866664775190052119379887944772647137232329513581203140587485863202234214263646709946137689160471419083768162303456332878067883416466821225709598335482597852481188322100602744353991050791819721537477990261721677753903462801671724890559629116472069385180811256108223881907549285044681774324179438731544195473213890195173959841288339602821885755079326220922501503675803986784079539598073011896749982256751305942102064238465971540044498939131512876538692482776867675329939394434322712597226544535694686988059254188241189589260612878611070407935864637833776912469243115365281028686411688024596608969428456375828740066880458962055384880780265535514104763161911129799822112863429473071284047948332146138818642847036024524209501560812670750247978985738782363217237379616866182154721011241544031031834088724670210826051259676829572743148890294487032884078484190825294921537644237653067275759936815081705238431874595664311130211137790870826744432889262251206587234298216139694643576561569202353365441188947360060012827938832937193232099407148040446607167885979066242317819357898627567871396790852939641749783750402730001328697104880837173303459627468986201277826402445998679067679606597769941854188796400067784536551217067654028668567727640785308324594695913040180246167014809222718874590190351008806671690799524390079467990155803089063753095807632048485887840494763946486789069392674059698422292033008572352558862879820026525172046439587918935972798033350416489177861237122520770234437305072784745113981680006011703459176399970440493284516179897394041154660146379474262607149644919823214633221933609616044467912322408271330516262239141927417673258895427599402662464741889105608490685176068236596856329300440344537858275482857884508414676830306841864170891606268199520166096527037855944728534796748404664899523198540665597502035782864122494817425063820183698971596305573688766727840149967620711793663330519040950188528476054658415894203598545423607179290028236945237911866287283090568292789154039596773097727744396027099301163912212333070511623105664275348312849844337786529757631111803760693101513776315548296706323137318519375448010013163589781814281294682156513062113975368347655985108851467847242900715458171102191718420431660601031043373827139014427791617882862714185348514039796718266699903387796200623525947124137730171152804677890766662050717525629246391634824171846965990373826504506276490401864392105348408614354367390727013030755655849755476822718238156762344786099129610046272059193022553460977997980006051130714395737914889029760726726883640820147775901006704456304442832429117178883217855455354493821891819130894733841228212819568468314713097553587329292400946566736820817504420745089442054773147575286608740573503615360591166319686698990856122041799476352185493593242720667968662975182493602802823359998236121252831611125328926559583948945489022996314317694047423884715841452439659610492276597377499268081750051333451727263542808853191212857946372344467105732456708740602324275191454895515769635060115106052655946374735610357309408487044341930577018179286641948087404249924100469365615103820977291664216897351695753800701814301922665074013837335205003472103901610770656313858240578686158096628351295074485904763017659127110254418856044279464081679985663788138268729070607670202143939468625772877414108737302587360623165192894549209707426972429725902980046246823565999372120279334946166961372634145374604563974785997266069061062287059539679203709979197792097214070075671801854232554611027063169309206411712704346770458425797293283406730808045136774490644369512068877961193046527695174993577057998740517040330980979673164220608140181483377771040746824135007904780004593021572727391193718477852275118375758252121933904645966209735851943698614070830392064526874628022791669952991913147057606667821265118805521850179443618884502122750858974111204866212631394350283755703480905781446349599538855710736399973784605070367303931009561796259756973426076406814770595939157081427780642367827792943683512170055451758677353889649381104214508484476090952166647669644472042179300941068805038833799050170899109370611376728540774431827795086510267030613125575738780133851171670438046107784506600978205832354062916840518228519525912997115550626099219536506684551011924356173894755213191745275339069690588356623163843848465946364319842995121885958634168246020480786781334188988990038186559229269579545809335013003864205829736052325907986217423492574087494047860249854774206082236117521563091757763474052882098787915311687433779244631570799009036118840482970742583552828281753662289561349556355468900684593490843292412485090674597216565521812397677725844788368443785429496172598068114210227754722238146598093780656642405217924736946368601661781607600113613450451748243603905302887757218783895679414503362264955326355795827073481649542607793097982085730993966468760353961844778592128803707566894631801345393219797496809643602496108083707440074024566364069817492066174017172539416687220549329013813148435798266284484007500005759596910144990134568675963420606439870078309242602698339614404169314048101994826828835059871407423676358158463046613734543175256221938791540016176111345281983286163892688749400846747827788942241708444163825209167360325640470114579567980554253084189322252194974556319150722531690249926594875267999357295481954053003634240287081429624360002261086812992407624430055487780640992203800214109875560185179796341355797425385020666305970780513493232033004224907826237331871955593416669709084588268130358404248212701021151984135743897252545310412505091190312594467948112886489531190952264173232347508066667482915681912650095126858167005520754289928166497977251704981759747983905971549293391893935358586193232015368866237163096523186650130960978084463677692004890728071712645026173359793281449724327595123130985954601336780410193803285408601362513756889710217626529946621145809075906725600772208517714100344183248849584851789494122888899392980408482197634668347266491763215161875729277819106940957330454415436744940216159265736806764585258762387079968440152383802636267794795266229912267527629952061475387132223613664803118296337289372872364032230131636243273123708789923156628627365569295764608700937741027247690285133029062906581863430454715295639770199354478070251908151757350254003683005266922863677089009113364838168183224350252354718236055564061918332824216796362698439833343692784600290693930920290937101450746011366676837749663124163448468512889756547403315515600711012125558802564108346761731670021959796101628975514541647483196972936534854442259391182521879260510168770853962297185142851097271978603988394289532891841664640887271556174485303400512584736573869376936636684698869463352704777101922177190069769922041303574238123098261544114008132427983000296269425521231301350846279380671545016716111917548171690120607437091812949489428801598970381187891910552124861596911435354907769739044368753821192585085239628178251154237881654857643065625786723744273882409339731687606124768291678115321857751012910871182738327780445498169899186554826553054010235888400683031029906219694224352037269653011584748634791864542101064154527114846276588610775538251960064850782096892357286168393490385397987686198741378735937939621880946516114328511362985805998521287890507313983916283691970953105827523316848067945276372861978999054546800492429546153812847803390047973432905950222639639101757297263195296498075949912641467956155207326896853341511977621601167674240447818975252512864434638827854676639600738693014525209784954566758137137249769477386060707981930039627076743881931825576243302030297516955881740595629421227777302231351137606933774854953992775110441183695084769201826060720461544180691963352845589357404626699798119796887312119323069304403106315951437059186760931915133034709038756381961595696539478061318453904009843529208866625364268769522132281302514813302403110606524058440430318277438342608206389795974274733242108979449436435858520675199554972282734499465897620255244501112144257973456472800607449477538965527692736430915328476771844107452629711599340970610817149319712567450772317165622994309025406073154005617857619405650719530324561469251683988448632677929407489942731620490914623173489664388631625808075558024238494548830392792877945384942881948171170771610040101837527090849635910073421438359858978272198461255007169899397320189183086070818146724084233578943065697162722925181269978905861416901889251929009507881364244418829631195873321274735985601103173847451548345867261743285943128262109643902633330623700772000895600985202162711250097066362103049141550429944519531334703621531348086905037110948047495677431342499509011929387810845350927564661892439533317662665109316829037597026642180674383784882537491098546334752544457448634426470423537646846063400020006266516574354700390349111467616824232461993213079265317563332529434729300012605562495716351762487849840965600227607363599048960458541009592130658464389748748003113037668229250226238418341230743479498364041366507266594142734827297307276548239203454928815161881000037721466764944250705081890096241987229669055750770777738291717131354858253361061494472049616673351614107459101585193654398478630607550326595087855247118198394207524549247399438150547246659913728988794445125331114665814405538055437064502963948664481130227239038256650650870430985960762559160713023209706886891890156618644247062185405466327848612390370765238758179954919112060931318926929730513011567092131838909200864021515019644109019201423926359725853316000459289813208399520869834118752552901219902360465536900325329114605873539547476275434759210293236436049522982604718275887492405592888574248478585092763393635031763544443481405610439301733483970263647660002350556637430748224073626964893983129431963587436841149087669248915742338691931258813408736992583177583520111141798871154390423004013012180992093513442099360489900265919533037301056729769873173432305946798729573445034024718221482023376666382945468599881383842976453046635789626126903860497719836410115673095061096293475397186434842595839878714134742927628271573854368220564213828974741577231377401844392857664174785753955531507734676952778650519964325805347032784192089995302408391551637081782645446476916874133974157288719562442405800031300069369551460651330092026228915489424053870036554589334595142747274067180355217059275886052344328711847399201579491559334427528911748727209592382036773856589676692986252438328033572335514979236902379993389520327289489726531852219265418324346447753126986699328445285489901035179019371796510290401324989638418626724203163950063911719632411021436188225813065057172931052090064761626731381629283207966163309870020505720628835033972386234781176835052222867259224964972462000292647482039491769353207658309355268223735025132739527640913979914363197934564157512981772985894967275520461597328663111210834876771574497027954111929120937804667351576477624007681244690873308660202552415593200378675179570440350428693088419134833905146588698766898960772588575357073743466659604680389863568069555728131714590553034791204146412755129422186186593518159805974841134677406598057557629577418068100122060507066285993084324109609212359347566892859887415194679629602289985352084060769322485312561633048603524699144244790103528492360529488548791066002092787737375837269437990229085788216240891572528311675308432571297018253427524902437893147993688396969664645076807647523352518158390982765837863130095138392309005777135751240146571506868273333655402076056885296860299417233295306608419269331281277501340672428822754097409395349648978876721943831943139113144461949942930973086188490145046154547228564189330501147058792521123239184187519524818709949093625965331747369454813519091276276406573342679622822877922937810122597338072774134457216193801103294903814841390842716510943707058659406721052459781006652630011633435099271097564230964927535101662926557194218769430534433425513819901766490683782722954234085146005308301253040622430944033613534147062280242436184270681055716102805146225719623293286815098857441148940664376007157460539568588208218349819072995505152690564271722263654552902990085206165295657158910369404803458013188522537226410165544343320655484636963836183430868376783791369923053235054440918336465418005219791396683480381199906643437631729566430625664147185176028038375427367283094229568823042459833003955080226636368206622757113415162050525053950299579535862938228199230443232143594414424905179230649618422350650855854971306367877370920597075752847477359123979599213489668952752844970649547177204753480385972311793740898065917641162223434564366765614440968664545814029171708498331205038782890751988796174655424687176800516274316896922953987301854937773315489053447883650975897578682074353015290133915023178628130979127431513181027045764925948378088245350532494311444858637613742875309659933568216672934042816505795246114865108284020273215849001904360614343682744630514326714444606047751191542947835876442475339328085829074574831147466376160164632032253255964610488684081906053549640369328567900887813028544152373295611282019828810134163843274851549736780689287695613882636622068504441764655296122589946486319861983276270042754871850972869494413507504637746787499235752317068796837419253007215879189396491781747337159790267525743926161146080032036002453649412183979530802284536383663938507350592396300473359385591516989435332546326190516087369609115661740681229461303653084758174783149343652449076154671001060612956386468291261789362056308281337859568942004093576106032067953227748475845914325154547185886225181013414552094381780148258757703101625744845147437529439340707636943384414717564906541482591707605474446694369716346228580711099818057924666052400862419694791058742984938995203529842219762668039106205225907793243240081054623158030986822623767178468095879715754123682279419104386393283728278148063767377994463220553333907790744323358871357383847778587269570805026061211055795753319685399136454518654817813536719974679627730958662648289970617792559119752927429572904871145209126891065392255272839755511259466162444414235315427658314550938903995424554685677734991254542443677183573112568832773271417598988813073142591047494660886113287384447515387062707952840378715321123337766220732398433052464345886142746922527246246109412595756057121316233807169631310935666154783332649497515046732531520601916770405674881523985787015557493396789710666077003697614018717430549824919844085402440848925622299575583881978881754807627344827903783855958214885345384333031854236030289006225219501200580358817683884677603265207928331517940124881241076514801933590774788285019700464834104535873224088881289545210476664350852055849724458223605697314028409300183279469829353264091482809063132588301032926537089690675267454932945747897866584597001722511759745949897675425008698645472071352965098638824777203601954971724960257662205839776810574813449919191091405486791610181868839140234686369629913124744680660695941801118359352627737597846888194373257506623105032664836118640273899217655787483627090082657254350141942917525428618951041561594046794843377069509026072719248432614566664392046179985650619730858882118694638856344810182237568434890572668210256417494741160004436156956140185815355156014340544293380494901988344742175577668222145729863024140809173783175302077503849690764269578917809467647560796712072435787502937288589890367289048000169227009277450995662378213650797192473269470520202639588420973491653060728597057054553526904364686711400311286292093098891541466741022538599529628225545480013583315412235815729509837432932108758621433231536618228654167478930913362645318317117776292286813725391638348266372214103577113760662967490819856840057937325983503885939298109745698317801752828751807640011106372446316194998610432059602864475124978673907701870671681949959964280368597000350603396122204822847285716308345780100532511475814684219726149876890355607219776822373943788783682196458562373296048250698760653527080859336766834883193868902644515746432440024077579830430062612163729834890943646852961966480274216103835629757577673100882413420947007506309049799064469214668139532452141963601088824767818850325703704902388675497831446379398775936605884715828831596474699270160629589266876272690768303335971345942021097513640375837388776938732018473162189548564450453207281547135045686720645718447426981124065607161233085177500919301564899571994595253455197476907237498280009749788626086868502709000304678379766287506809209945816795329099244556143024909573527226820994851194892525254132433249955360921111323924463926631739390021648153598829572073267657744253065283114177011947217250941699422109752516930367842843666360310759499815296222657960777961761613742978503802769132058048377411119185233597708977908844527452194781755075756013869228704243923300370747072165521226798069188512797153800598942201037072246797959522184235124258284982689417197603151234081968715362163018336319944597044681566299956600668801550812791524997959555124548641019754248671140948375350095533953259066705762388876175659231057767008235894347602432960881241932916862346643549114369756524449438842282442446422718654694471232844072100143852713961110979296429202838708149027944003742104100613306455015719964152804610225910661535025638570788721351125358891004159340197927722928641066200376114482051362649352777877787109735918799670431081466038402450861639291680707178623582470906103578449427967335872809740849132851381725662398715376430041794009369849332349619382995203913939078861586421963441647351706546518404366677395431850387163662528486349241275614884995911492956155046294558658374430207345758500424109421122701003996733728919880103421047350319527266117648829818693897502836744338986860368641110219459974978445961405829017423348400202574884571808494020277637789019893864510989657104172410587187043062141463601744594822942367247940019486994777562602465642219218011473684515444589522633671001934432216276605995727150203568908713808368391347684272683316373879038243917050551034865459671459247439615672483028698813363376199630634260263219943180325738035382130724917731133453316512819039768253308779891358515716992706364666509093250543376701155318255936995327894500739644990474350068882113197999834203578027454659995566392822875010482067300517066871660614726414694108719383698127643502810887097172226366921165024995504578370748258733309517579692100649108249985798942557314124386603106148335686050735828884405896264507470985832936668442791471203122392227033758770175644680851996965024293999531695281146619460512297581493862291841643505094651565377111622018513131404286906499793353487221705632517480893926542039416173191831674847320080426636290789997322413822737734356119961982138508282549609421884140668562606725351041312221836489216352287305589155915789615950202309715179043717739514588925549170698282694551079736497664984109726490450639273457714168422803760418343255961267571825294128674143351345734218929403502509221654517587180577693933955599719424123999050281989522967148251506486549547332021234881077533765439206829784532929565710324106847114806845615588773154274642759487626944760323815756403292008154595791704790482091717124036292424854961405065567174794441642455214395032120734394787941242880543441793444587146770841222851337928575701666060869703890219823596714012788772930234892755161000691947848926834536668979221489079314171465278302629790820402806821962629805904260690905277588430241133303242998818205250125522322245654238308355305070467273686084245694676134027104502062509984200742710081029240432345005801002266643876198280008057790541515569278051672658809310225105672407939758784644261739389105887532940349449919755712888052437941129935355803434293091932818590819387846600250899305343564423242851043746912508850808264999034555811903880689889782418439013475945140651455937077021681742482104944858872527807626959603518264081543489721077277477534955896044024496653519267268749863806950977587618156503970823440948316233523121096603370485474653327730581145854661422659923644100287164646850679758252740355236059382528827875608692536418051479501339251853155766806633327770118497763396537685499037637200245492450639709290709890662858565210499878620798205868170079440163699034823758400228952655151096021035444171455727206580988265552332577514104953409826210681133930246379810193889883862014450283842432274882962196763078977810765500993944920567898461837210994249597028715212605488939358698691311125542080737370711239061233417600180960493055220601956006734568910843314201941454235830317600181697486205727962945114201342280757712464596633799592837134581643752468311958268766788264342065731311099882896290644428166081493479870547238138360906155578506719676491232684127456070059663614879773101072072787092859545985786108259072121039287532250913050120635377292035096407547348150785380624995167313306344088909509578561968135375504768464877148364615102670979112379202926327967150276227851436094198191392808623386946975736204232694091854697052814607798544051237826269033697504980751647955062230716573770455861946039760044524469595176136355010658969594278875486388923174643011710687157965421074930065914282877144493112379827546478870128157936696267395898290740211412875043248643312394268225646270515476077060871517978849313436799694726083659081382688343520882839138578583747670363231347346079073928733313102940624049420827959308597877044218513189128408202544019680402141847510269359272265361188293516085241276636985361417676617878466755408732039710847160016639082425206325954172196771649852278693872426957530104519189865707849358863447088163256600035453236556114357661723291378318556132995321097274811872846838697463489541262629427529769459216481629700050919586470274749926204589035143323602804069501256954805137293477608828543263051156801833308990666146350255270261985081135025681163523252527626681539339559335178363512087908874339246893975493193154779711312034263165608124792148860095204717968636865646425200839914381240421312181470215873881173582294696335059002874856608375809318799591192011942990563852363515019215969920995460887301721739983419578323268124056010601964733346017667380630677835599490629634887751399015842009097123224732704158314058978533491743430853501625445991639186178286171330072105662394317629043981194895389257456623646410608551041564014431976999196384387681211998908417639410829695946815585449662126666283474361160329680580061071283976590052061345593310745002680024988722346659098073231131615496467396844176376954411837200471517495284216313884520754005642050726384516733803896978526922386135862191234524689480135177577048562204986318169046441283741975913770405633090757506833011917862995995091144054759585382393386281011565608036059664538955329837320286993084806496383386590920103281818759083986967527558579870950118345367842821732956295043859677090172694084577293346150730393611253997399443524177705968960746530066662258545404626446758143125841845435364785740236090901071268256624068855488477074829867495231040373903298785516144257751668675260096910888795794347695947456869418590286293100771170754297668396250247776448083942292857330448282248565452211086760880656743664471638547047850248698349755794639316023984599427097650249884108650883038480448670136171264649250835520018901795466423362871220349333780165383392279569367141483779040891874311252957526534469123438465910840244237278885557422321567658016243161226972960746762361872858832774383514813507504413664344281581866617380940211355411858972760700093873200346017541443825168111748865457937343025963776518723355021970547098327174998910832175309785791510535563580724603875137533134182318487609945879798101094915049607319139183280106139341275763221973886203487181984429021657351402842679179027580152016287743982573262823975125098243022480762773658034323158842584449453909980197259960101788630835762670714815781995366312466156704591138160580400282298625383982335271881996817323022564402532757940396613631418114793758647974644560444494180959091737884613310405772718417887961663370452371652344530836304818693909407075111247358171141811777585554172024551199520821586201227826367432055208359915292800795738899848444298522696927208511710408723501170415706141378952609700663234015258461838995411044330236191232955303117037382032864184461178390360257714605025329545351331599203512868519874027836360134995644674276092219063520039368762257052837526168563206031228434750926149674994018759187447504176471190499794278031911804901559192335329430878044284316304912894700988406938779052664780350543950071897555974893337111240667668602933426692615194239743761597668636988165132777930053102376079359703679672420351024030439789878976565144607835684156737300579499864820850919007753749846995733455443927114210906878485415703701232484444661198369377472660391526873696039285533681761464531045639346161007617172528994212817480347751532333279233617081767481912158523638087091640816233047499329947629172362044608129031724345086375318876739029638736602254294778375580272125210100229383078783791620792216863961255561942572669479749581073178182046819075423806703672132174358384134599310596485568769818708186676611685474226636197544631693608024989428824113194712229734055837452304005157996934108779023995067557078957771675642970486238873433981396364041160697705104922561245344037834200283980737399708326780857565613551264050129353903840848865217086462209258524135121891546282094188200427130120233705635156634284360246001365540142834967057639205704567057114201854414594950813687639821771526729649009731266623672469823155992344855216220725974794744982090699061297728806100110468837353266243824629158628938030035665490413797001136137944277782616590774191433473467301341666078130358040785488150301285189816362534403713846556083329161407916803793357905912361286402597237501087136250393506725308248226031343614463104586210571469556756622367486848825864692072029752806004116011846194336425009360135129578563676856986225161782671290894473271410767277873617709814015312835218376829279284214629734074875163485332920717338164413225802012955358924659877507756073772849009912724244603651439183396545060975911079670146366314078800731318411644479803541423086307844479682276094794861760599766192161416698728003692642294847767590157581311494592263649693966795606395217522440445469159048740623544761864664408268568400877891783259186971371450789054878037180858331805218539082456448331008883512191656346048054847570063856820236374233840010681965267272467410339321019503796928757504872909453301496932067813820903944201249558462098149392821693688334333985285123585662565283491477869501841351128528836601252277765794013163832620493931490415849513464828018407441701772441711285240998671504843631918926114678710146237071053446662978302389033546034096133241891752616458547615401341568851565391415997648320571413096739287652307698644253502227966892364543464429872409388121102775175028409931040969440314980989758969541877407489598124053793547001188715232786646911512543005505464889610253148177372089225570050282026656467781288369912027321512566401147698997829204189634762299168447244456159867765521478244538714957602032630452728713252530363130227395685040888761382700598209762504943830786048776367748603801570966909867473237677461974175595231298734081355701887497975948036231923116636486870628788491681306362300543923102038121955850995881287033148317951472166625207860685821081910933010330059169314411907760006395122953126390448691881668056909255405311540862404304000065423736722187625410841952483646382099466765496557987806015613864996275318121892778547503284569898974463093635914390727237358995969631858310697338396407680089556620751816025320012202554666614000385572830659124306932334610475180952513616501426541173253463159527951824105844282210814984776502564379032792146191813340619344097666474743379003093426181101619162915047775101235209151190095713045179866892010875886745244479368038725123630278934033321749409641327595029604135243675199455656042751697136285358766942069773928769347884032248396073310912602596318405702892428438613288301425673593311370344372624490762010907748709972350701510369729641030404243825085394273929205676824568683033282126245783888716202586155993394440122104544209596736375288817547299026108218287833780013534426331212433088618850340051304298899495312193504588250263371135016687164517326435945188783548381725975095279098677637358143712188977536066852971155919948540983232290194937672561786650809642386582753195661745239519639151188530755433822933681662614184599168936755475849282398621714489783872656311563570098187985411901177204148982669057830121456981296465694620453477480476474011742248919344200570894447152630507823297829184114442913791382481919090982833174332591021170297158264808143873628685070690422176298454603160626599658373670519132559814458557530300125384350045827904248772061154278771243866772006395596385122154422376026044343328555367187485025414931736009221435679255277443356670843194481800069932634668438299296274903733198864150524609877442178629523815006606868242247843129395236775987035879573143432284512071764139808138312215239301004221186917241474347346226319923048751315131640637768351845531627291829272562919569677272743854953822496577643665310711755918606006790767207133889198647741987794733654228633731966337630255544042506118922422936188588526926084830215033739383461986343290571610129491526459888509031440489127149106007461556540548031587128641691176904620236335407990755132598950193040556917330748975298764638713604929174651703491058804578005585841023105827794235538348994277529219153648100437146002282407113808567540597589198384700671786493758120646269196022867691655027881952477158997584380441967255738617698328300068927285102931893054186502641192871508905096023267494612863114265198875168478053553728073843735429539055514293194103563108494196479180612267271622917422328301926775255303285099904584340862412360343416973359409385389964918130213490326270876055358264073766013323255016829060400965582230829019062456547166088278959623157388129661433002966433672748429153212311738698789906257221921910328097513371005593436200341505666841194190742226950947254335988594144726114122150529333879036119426418802818317913519318179135247528006300610944156560541857197381077072347513207050834091097837817922693406737405806018031113816585191692257429054094036963878363261921983321334443461289590914819361088259535179016227116073233440358280228183446881671573433522152428239429890155311085760769081190710376487001750193448911783133478460509095173976420976025407964455398926723732642544673805356768180660330437470940857697906262738527765398270923499534029224904665205897507343813465708853248761948342958198596838793264691440984193361285324560264823868681781027602510031907560878475284817344092827416696405246903330552084292184727223103592797638710089300467189585793160986838977843069629789041593125587841704817504177692033926641056228423905763111545093008791152453367706715384789656576400475845160928588168296963176027650028349328836004797040358526227847135506035514754067579361565015756156461194275143127739727841961454011225991315582117749985949086845303949680689938288685101009893980738090328151834789395210276953672613231321176108967513602880931070941928064563206487618316410926525159340088077616221823882078715997223842781676443167875532351206070696074613523705845350565378132558741195104583145660385578344020174670435841532507750298398637427494905004879970108775811550958241642434664884985003836467801366509541731941663235922939499613665749911117030057106181250644341545504093983687820174546246765945773438220114247586916078993365448768554594054225096595475729566718461958544048529514219357381675658853748312366273472863743233040760025556029058938207720828289527645077945528383153836187899254536427328265528721671442007210443236491148670797687123936951891266307370236426164934488151007293467920247696413143599122939173373858781905196116797446771497261520800502333496431259935258916287585265432548848153455467314343243850421790814286676111359090806231365185340222072941825260735039706357946524665510821809865223985251977787548022230020364251839007352214461149233526243468091928157590409123788737522636360177501903021246101995949993375321213842391245489548649083600830844992769018859556273147983289977298379437358895197798420972662776935188143457172746894596866487458359438563184440269450646329473881209973364109423627285696097267921833070762432070664931050894308149831616901827493701626017317153014677006438991873516298157909715466259968776931370426128859150784158742962837663970988981275462118451150254021352516575733834030917558258880396736995825161903153506594398656849491260685050120823787593993385322347714868457670548850309246375889698656902348031845151394430943030102659759673880673873916767460684966833453257895998799241617014117894400272303984689730313527787630286922616639866590868477330627937223890152483695576284408462691125923644429099957892290423841278793662921418337496676923320016998222456078455627398121218870794775021410868811680413203575099436752157216060819754308217759961679592888400036252847708436028478273106506443503118217290615162846707271546743315688281031657146203602497043090442462008895412151318677511690559132374575185446369455951176068435565564583583576633962857588737902814485950706552319137542480715472721131859586514363802591302868430541696383737068213932847092598855230910982122709344166154050010355985277901223033775822406411614746555527650195021485527913169048063288359518794911273466964853359922869076921778176911160147551490379651276126088205009303519165393134015639128977521204527753726142562533360494943915051103046928326078079077955293270546273641876101069889677287582741645257044329125495647629069974630898072792611576828570538460968192130876791700559153338264999948454153879427881478897367497636676423725668680108216703987421209282300948409524116311752737766845871175594159149336730467774122170480333376267048082166175416741292888066314163814829592546086421917754600528893556925360932516715810761767595964799185779665255777049722624576026772553661307582849880034679186720847885847159817322893047409076547650647204317998819490041066993442217303505824785161223189011553281957175845730574971727805976548779194327427059352281280373487013446649568074618552324049641820060248549195876044967587052048081335586819137390818095248265541637019032185537859554208409771173757249790405819734235628895926448547818170698887532294787004024704847916106465600009954762677516654354891078570179250427354844515450903412179787417333842958146884583833426613566035480492845764098902162583415059641838827701999570888342330720805971486275152715235886603932831592835724163068769562628420894726311279180130140070450816715828014603566858369576817835159968772498097408254817164379559133113103669240218802285891518061536081491189515307871672546386697803230813114611420293515711484864193757391711817053872020809640688464472874066850767731035836567701294950488706388569199960678040770591432420205359836763287446400897499934394186436610353299698243685018740230034521868601270905990360061098619843394443946753276948737644237150616008631548609548127294136382062706769034695046925247083767562869790543144343204938699108515987089417513164616281323699602368337959582542199189380604100270230167360851387650879007952248284414667192499293589147518288377190949465443767552050828239914003112210429801931176980267045410221362033995342451329813092115438586414994732967625141058534921776108708798471997116144033017925786960246324748042675821997675415499595417390953218537172474160600572222922741946395859333586570208382522558228283968777956573695542581137950189121934445963350066926302727121356160539118752164093338764408086834019061020653069965020953154647116450093834918556197969163671831729254532449945453770790028749453236822651956577675659275129117815544938217076986510538961013752914629793817880879458845004264454759564641342266424218109518017617467562715606210888141728656384853149498511554806040804725183805901500658023661045588948679370558755170289624475928928164774950436566133099016293386234413555910254483262082858848697683396921322302414407466023793084929425569422563541043313570252689052348995356998961265178688138949208233003770765199581222918188931883421884936979650594966173899558135093081432681834984166406929251862278834278375441738696282819203292528918118838732435762643014053506145591139422397999999650667495443355876566323081482144145047407824766950554908675312998921339456510860760377131648571626233663656889156286069929150593418396358154992625317844694878996696174436658393254393305084827628630790350336877102134990921027380969293134855953252618013428766292175770935361937274947477628873634543947453658200610050495717514675347473107967880878787315805313782974842545359961560332010050735873711641198243082743333572256554646847535961895026832922106539016704581771676815374272595889915901151014277439227218913604126930296495211083102915235469996742671185429814009118994980019967640384727576475848773628975266463330524824622244822988162739259988287603221318729252766644973138280370325435719114068449827305842679132796001059633415050360471126344994213656403892207505130445813122648183245458899939066138994221010549762216758634066664763212397672429601342069426756666772759917093583299098925969065343115773029520110398085547202137967934013874961423231292799890565992859860507292770866349078359841357335467063134710202242607035804457607900269442214599019001945550794450028173574135126650578561624442368803951080652047067009153025425476242579542117418645768341613435574207766228159823459572478675309357118800786332471335661680000337954760542323630841796640167608532462852082040441227899314881991865935719557587790515222887720055839089990172525640598051721061307963011263383493925978269398950372976065132794296827334493201801877549723076649894280323018821303049588158536464566656500222078406049037985580210572763658168029298377225342204716611533794303375334346438682322005521791007758788817523380711063048726182691041383794714197499844619859049836644717756730592578027937126111398892340897497864533918559115185856822227277460792610951047495563161720416821306451230432497842631057357744880315964433564415215792155889619534671382600043949788422380156469363864062641206064923156605049819408631704825187269437902524742713252685712188263534836500307269280225816321474443723537628756369047699355641869368245038842058576499887262354998230892999917297323759396493858306840614870786779337753295087754480839172787463545159536033450724958048246642184737393115129799293298653192751726958805775343377795979361346030944185962117236756122424061619185703923689898859910176248290012930435515210416420249458811074204150365462042650607489978181599867059109544849641441720884347790991272028694600754281974676513367674478777456058156072619690556115171608051921177961295032816528613647690336441810561092903674910535705240391251992169631048894922984834999337706137589085250931313751507475584435257529906098465847208478035991374429221073328310695292575654677304279482271157993725542100360533799989040223568522283632004761663927119827910161263275299623285121241158705849661379042993993313684448315369132428188689610713984856511121854321341607337277998951335474655825310668632036525113557508446205717636696957071898916901584484100840570066222290852553275641480392041881301072590293998050449596656656176545234101780739499182484699063085554215239530447636148522839914303016442281235095662810682205399455066176614294419476084263194400268121284422423050612991869769306176584589277931303121018995312117309534115289557975249505342196061414469221144699616768750739596784801572418982098406277727664177179526853046512386881100117058367557901026945022194849163389118318684196881354350124726869100080536305395514622847925489648255682413742755405369073616810806636674330220394614387239726275698484335786384733328313651528391052167043096870937974400760190785915657100023535773652606244796546196058525771463683557697259625168518832694628458230706037669971925791788912918084175958298167915083968603199674246599000835581525905058326050584711098835145154670114548398800052781296623697104212609607181984622679779596638420815966589514889430214946484846567364516657079181775244994597511709749029974549409643542713929071916797592710931366934754202129225995633977738645631194095993959615219144947400467339678523026053019940588788884082581041087212721352340946185274610059974254475371354854410021755659738224223682075008110095625422947293904550087122796149160927899342890516738253960786698182420495607210893063088865971348374975680584312417937579369206502669664536672161793473959241447674572976838117678410929251168876334146689649791755557266363263078099481010458940333305438350831109151881653392764121804601227847571020345900768709044562973661691378334397123248259541701177054907832109986539030449905704041459080153558396394380826640803804290831223917027994133323766617429831321687611934839648475881886231935785071435006945169373430203621473631640293281419242717594492726452551086615757215075887350006292780944108962264484434246847670694267408876826717548012214991588593652284715650378544815420311277930033843754276639217922910262099852372859893427928310434188196330163323142663588879346633829758212445572341622315098929350483340776005247114148507405824537714926316655652172726784561123167457909675244270148773513604047890503984199825428315771748702017852462326923186683101732084157704651255243393199756246347212189359067953919238420058900383979622889181006588397195644228480309311094608691516645476932583616802657887654969339869729457944878384410246962028502611606389827692551751882018596106461273138810734237858187601460404733383815017176051471992323460498910256223217020622167035828801797437404265777421528205966430354658724461505457650363668439698971447556260284886699584791788366702046249791139959095908912564747532162693950575010551904277970291585284460981703031003647646887188802473111057263665507240992460019966051563449304757261699791817141119333818725109221476094418498658586177626396257434695295735148134028216816837014850411448974441857534873620687307434390822753506332213003423406338277109092406187020454627982578040694565828526118625824710660823176531660488171177489831496713063713712030473768160460618742288056455615798586060353033317585028272073354629015472922356547540750070017866691571826630965839724127968619763111549348384153140797855764108139142317043765930929841848042753546720956769098142253473707528723930913969704160459190197293359242414583269951173283305871237056926729399062698199413962024143800686104038629038763236279492248490928486735114949609112994170440715541432840816596165476081967444032525158575370733354928119014808532660221562584296301201224205487725525289985717090396864999975144277558701523736602179378464270243332556566116191332475310689535446302799180166014943152080256606217155300081792132540956893353041429378950172524113414436173706467629788847382685941145343698730192149900516513022439810372809176148517943161630530319337116108018918872889431503513887931420389277273958069781646086831439020306387342564311080592346923815869098123447405590243007889893801732444412738024777906849211059529379081294971047458204361206783544914055957573997098207382253324441899487009910099568947339542946111913621899803326097718120986484142750139638672633142217823259666012593744897800536068247492025064520152641058083993038330616728429662470935985101353777367726834751135878380267377704143975617043428428629269400751838879310341152512403638449759789617013681851607711075746791111570656232991847690988572812507156734461228315148606521440225870488567598817108355474208814029625834073981988734905911261333430859998266523415467181214267115253820743572379708609078050297838403786441172774389807876837834001396522339260732264454488885650965002292119187415557616013882889180933953560742637827753307288392121719455462993983615538150905133961331477527891313149475375834713693531513860597094378813183433255074852846267243878580378230951154529050074083469547480935405167736504294662206404383281817629853119630061501115954559759908107232289888688503305691032276905372942634787062209786337500945775802529037863757947197940148298338876678427807781301695803832641509554454764198252275819323398145198679754462713536147042486432170527183291162551442320085225160188102040144400307533998443732794759463261806585492224377823236180814538854094504117829655390932437326305442121768403788259156846027132705292913185701648895997911716357851556166026954199993794790076416285607652983475198290899621751298271705967057127647013977186635810281575716033372336705498770047426502159808175080664720270228966089568051867630269086879929675305337241459486208453894093343624820921624415420650655551998274369938988465819021059702766121501054899816269264626941451524652714397498945366898887699293655777505475492331882810858717132529332918063149528789948487018519198000447373024577732093501243964173024100296055832033099050351114865006690462796908263784417576294518556665096340410974376766281913384491082654044671287433016788146345203300472878404901084498508167294287088556836081910345327908973398465393356985546433377841275764385295327006222291438516663794330185916087054262496297051081443183710097346110353989271349317312807006453184003545052441424788667530417926338455236074107054041539897755062487543120960826800957035382653039632740815627436946532182326737142060391871361231624959679479962094511195065874566357981520819710215613745531873575749796093456334842122163152956836866645768802682277869296016275308516378901816169764064052454519727934829493236526302712906770292978822701911977870594462724128185113047790309927076403865358463945965781614102314995253254498533302134495528773512612618418648854238163352268454589618716067870099375909217705897176240134003549311422986926909307799020263621696933328074421439820275148766974497778476364031146119565673549229085395519092141940629796934340527370599585128074773154008845110590095276263744287403918848385091299663209361297258560456423124841354781840140290140737751416214929648213288202268299277743470821864274083530236132327432288734408434915929846888162431389085273649209506190420091392319930828312566442420386481550961318640099162368838201329919757040473533461932168949152097723029598608994003636023187828915917625719439209425830314566195756692463496539812129784297883935121461575172759655620374691132908339156489699807172459035827152490786570646843919139658322956147454100817050507577360564222168382761924233129748757814400903615344915745066731496948482159722633855159783958173054170926668402192916385496769511959087479296782353042082790903702147785555999658332999737198956718937832070477535835792046971900041090598622783503309158512174560136830551892645915936053361569987009621275569452922605889454833704441071524687773257796065185145808872923869281169047243583193527179803541276046127423405204853158076839879428284059308326700632416687159090600102908189515397384280510954127266031496458948475284941292247385250043533678764806615404453202643480757875382391137191415320289459921417522908318083247360024077179888408775389839686417741645891797034636513279644217830326637931913645567721603194893793775543048512753289302117506570066082404425020503603399840571534085477960683800870108291601488522883613380674750013037961358686470577824851051995141295317698797313494428492599484859485447601353607050528316735003032490318930541542038570448606267727044259938394053322866552474822493811308889361457742031246609024500519480199819439112809327431277022046611213221508336101381607568241163684638572645938157492982472665844163063962613302641567487694382094686496816971975980940580311971223954052343101328696950859656626548023742313107949314636885997913441444129226747340754024604697331486836540052062388529385983039249430459560056609357487471748886267024558367623737514227928078115795746830351942471335313832579293282795217172330820659378593116922108675576035471536903229272617323961851334525313550345916450085335380801056053247493712855834133765242033918812718852828247414644514389635386504342752688392932884900303136993668567012088544415511196968792720500494633036623702703760450951986672287160436551399646037627356408118346169829119370382943221255381733821178055698337336742756981014405254969819206681585220484051540110276421959561659607830442798913036086706822297729618546791513660989419471062313387116239588383442187808866910330350973913589330622872277164112302785745213353184744571819098544213726250849219845802923803259946531421229027496579367510768821773896643046514364069491107951716139604253288626879523235272009834797711670190655187643394220178907767963669177808744540474329313933370933889736661270557511128666585928747423775399585017274814828579847362381677264711143924803393897712494828682661144356955276107112482327368327339238361909581199081273451813519921039595014795679222471777662232758322386916253137066785106053776599051723197608900287158942175545699450552367788452241273998218142841143190865321075066246780636858800587473020211750322984453608698557659252308737563991281713080309407956341845278607160440572494830218556844035699310276282018404335847864692584646739567572848392547069447521514402760920037356983447935537058595280870962164141880932002180998766593470905991501593447203433908804791435049094596071054918501322616459571295480608577407645580654612471835597565674095699074811503108113550234309727308342937836750780760736797460985543583168179824365447005613167839883864202974466541665264034457282253549246318494494803481358108434967640294462477004016659774123492915021235146177477405625713976326919846041885621776432102983740570030204268069383916707613326964071469310485084582651246272058554663944972343266432012969471474046560769252692785533387832577960275692783772079261018387001022390236247199605025072745558755927433174429569846173971048542335039606894474859610588312004708334489304533068514835795475267952223830659659247970210554549986176848700741287935005624962381910749536168013964326236801539928466620799028697037162134395629939801954635993024889533455868406783288610803552297651065185322711007496606290964292310313345891286776181595425644834484017344300808515256268530570444303850184907609212147119825021521616773492113495126136344979909779076058098489294602809089860355484167030379659318582373933606666796314852813624440993994773799486933676585431030861963105217242394141847284662834728229820998952993868832559275292529010960076658603679174436335438655928400846368662756042640408073306913546838085029457255956803899187185012567519473581204326682713258438152797463468583866506140091744955724980512946433944288096307520948877734501124728086310797424946199819243622879857653267737029521778421431174534543251518247978036011329483889587559209890106898112944479342714817407815161858856583846406540198282333211749949729740378552667355438893662436481470404286294912592717376991498574781115109147523547163366333050054680402955768353124575868097432015662011301084414681652010248697504466244268773731064042123655253294595087437935224855465151291617303022196303754745270522852550960439125771211067725403657659703774628381887824275152474142773943757117262661353452555394932571727732009237809389847187808250980724206313630957691272926127571260304537911377300292651873780123652181815507332223173644601804498932350365628290635793624648922401299984716878464327217155017281987988118570917240547365142057085400599439905671485908201983854685324820406998438605992056680909250376502486428591495219244144045157514180327706359934366876241353211397849761804107589687091580726301604369915428105221905646254708536602128973209594707058523647020153153393965864465776827817812886852646223769634775424192443550274303255938093234541246582522386404104704810890567056947074522143806350539233784526777868330344940953066997740702431490924453760671183358162022137247073478319884398449656944069884877610118643858745224965567404013092745892431223106746792772619174347817178379014628208194678278868414794115546884053679783364355411028818573540643846165256975013676089035293487393200202379270621646418680704241034720463360111195194063821470943313355779056313630403711200287730736546962708451434791360493612289317868466314988889766257431468021066456627209514512830846810331657400710770986726066612046771016244581668939608513133149131434653752772889231535728737347916116898043912362645349196172873053045606405731163974432894504511150714106885919496394640198847782090356721145618947728217667027908584377805195379818001116910112113789724522672411786854420931494128534934273152255396641194813749611571574227576334884967408225775127476913081495034438191021306721352023136917447475104337805978996606225279082802536950038448590258333468259563240752647145254413219623855694392902655769026486867445939075205676900926072432018084161667880313360860500074080576568871362289935725948643068891192105951685414739144442765133067253032374156074310834275701504725551905847147397605664883779908088525418972674698255893280358231384667721998854444470386943220308930208353878905142287352093984147671127142908270317806190006184849487463139588973525496953727384526244995220377784227539163626149298874594931990844535318777115736699926274819770605060352392263235257776121540451799209088838678656470001080934007222321140337533872707544866235026799104999358179936267538936821611791528443715166131999069117262392275510004589572762690723174462349281421682658061167917993669038324860567194780067058580865390379476326656879077168372251306856797591001268829065209806352437279359105863355341044093203602114979649105293256138572882392542010026132215445159577098880200377634655996757148894063115968679915346138854017663649840903812501601402981775729467931927305239891096314062157198927698099365084562593205816632966885104292473715864004499335340396918943556088335444148427214623743022551338924900509756514401306492953435611893258677161653987963780436909445233275173403074366848158654648032082029730586839553701768193473345812980168078114322420590373830275501333325281349801431866396751318832190468408440380106282889036158546619349470357796861111713293515622958301402686722601218463251399153126707268007040915441213625195679930967912638551807596446191702493483492253943180889877714991282527905535761498207504595391053218253682856617635940237106676141072745867989984372122975884861373244380049710308630732514359576625827640666771331671553354612919841915443188901359878170273087999148595898614714007092974976681669478568537064751019224365232020126430606192666489025151574448708368497566778324407477640403898258085131919025322816964786880623810608388638451272734801508299046110567458204773337501588578842544016548404560917408913189275981079405774016527150878799016958894160445145758994415631942374890150420385611747366681147222336275360879162549225392560306046197482185294196522098334726188987574331489257388774537673896316525478004442394523763738169642391011954760491510762664840166077316948724083617822883512251036749168507212931733930856934664811172492989266914104457714674774575689737663799224031937717226000389516613818271260444240354881078237104468715536246793785621641574463326229788337639525578961480104857039456557404866811907179607352787106712745141155971619196348223328621308275511136637001067542658196931159489291479462583893628957203977737682782080528806289239734427446719692114797646993211355020629059574230756614825301679003235877294206259817367422813815475946757226073752014821802714265212515397425607745921284518956428902036338144306407022411845844357752858772956293936580126041967755637080430290230833829302588481807882786372106976787326010172619757105555265245229377277806892932747900964335975575330636507737349145083014180416217232846335709654372616954854530397567170122441637201544809750784918159310660917267742362719305525640027112270883914350133040762513376569330173936851864317684986823854294409769266749935949961358035293858373457155805230770458981529762806869564528019478868142213995089957610170480935380357495817682083077507485730663735594706764923138260430916236266713600461293144193860870481682794126100310668754133675777778729816904039860490793532489367917339620095617399662613497204293708935313498138911676562201729158577712312075348678930320157783902461451134296317636352005272944065998539561057596605538564130222350840463548049895423503603127099460472467385890069288986894108593607597959625244094493063190497941649827644692286130150923867252499248508354271356439368846121436043381641775084442212220908494034901040283152037177491812084127544176162324911480824427370636811841093839317858032398076089917051860021164537979924122469780566243143436405462580072870935202360357899635467323961164182820728245965239061398057055634631854468178768868630456157359694610332773556499048717128284159481093250643562062564213448137611113940453463682464971016712558606224708773265762089893477650194886305191255401054443847660942203401680463903918818869218328472928280755082650809996486561376103577380010154398947252463822954892904847217538083690688999746094471820375517329208130019183760773168854218753667861007143419517296215044452280580870016342868246301511128999403594966623336478681549408500574043645143068662225936526240978770659911854122862641040833358942610840883518929681065019721973748651767015924070390042025742143058078515183228462126820696432792339099268477076460374482708741361933945085679607968894793809962009769079509049407260133787628984616755316352250393434571366998063422442182878330174294821793827185155956531604438832692055191394193517873441557161834205577934473858390450759490054113445294920240819717937696452703335843550428633615969973703131248995875003487629544110278221944611919763239912040670731897927075696301952826081775668497918269166175848972215327149125757114008765077178962047974153405207582148086878228184363334303693375013969566433489715979138529084036587226082726321156221471199282314016990528537402263866632910765238338357781108225664786588999023760238667036342295674042353553346876214648240724321678978310615265787254723005312069976153696657315545736519961431140904271550206577992517860271375274029141053406759336571377920842771502407732643579068239531945228268178461960950835291764976595297617533070313397199297034791305517091506978237651831304149874898564161856311733937592612682230324272686294368390740412234966011641050631286220066264778651741004056883330102243238208698122620846839572213418889767578591286623243645562589186850312799095091443400588417286886888890953971430842733999800143166585393062438875815381479168338039725390413023258730259535836675334919232818103339331385412806961784240646867097294319765728850555541175573766205084506642305900298644574232944290339460003817614132771888152016114010033082205029598116145422455259432526470381366131107439078146637507903943179350063398440880640856548287969886881931871424450192401761774762087237090764667945407488422376034679196690458950426293934850403729909690077364946681505076423388810889392426477363529601429926230860279661538536611897337432810405822027095771629680212928947180543591764582320677844387460103790155290731946474313878063416107654299812416635742585038679753918717035972984890945694833011807872275154887614710111714210024736471554997959594789955028898317488801908732036750158855343389245101299305613698776977982154019946821018272806370690272561282008424306276483123200131510179286936868605899218473809617760781419491335617665014453908162516101180663085075562340697153707204270717470764500091690387923261660472636325877897706935134441202117807983078003704190855625560387046347212023937000228263850512727468262269879897027410113601050857631547355231575544351783649780569255170563660362708619858003093812374486432515915575339775964681614453068978136533590993409753668022380444017124724554089998488730046150345726057766762443731956854437381903022189552070865592842486073212726560220485135153061945738090110120682297298388215826571393097492214406851046904177522472717350675639789489176306232424627708573283539476135347192239584586219645721239598963498188171175738012515916918109084768443734784801748174526703677455455177866542265757728715869057975562276949106915135316440475043465564121244973916067532173558286378352081703663402919681045033406838710829746344995456920952395338149042443856732864130628799746966424207555705719008620035553204129079745905142434114045434020901870701223975295200890238845174799926395022351968677304859095371689805780170104124904925224423318449353014411938355554270216248595097010529140642914334854183291611976444162706500231656234996392448373162271296103300094560410206325047812758284495222519296387132065336163288176724341123591380055504221494523048298610133675989972525503037636852570601543244626533256548333295493346377039780695438195095269598662686682551205626731104536900590144835101830215778859949243673767796275703969002578680156335144636532865600655531833445564337118076739610874301195230400095274990318849945181734844628430209164171223932153692321600395010706626610670804912943706155752411774371785617107151257575976078742271917411217908861305219671020123039088287214189974656188598075687747401609608878328694261273549109066882629422632431415507902339335903159458693080710862506900600242506285032193554103856060987608464312536681570487755471166937598029532073599107239232678691068147750282395526553838675789628797589769675878375589994096186683082368039445811284917924631784554829338979331600061024768673733459174236767021244049159005268472679489005283566951596047662289898420366218767310539021293447310849030074981408345495102032575657968835621880106090455736930558971988866770643883494628533553508285619982413678137350071888961188453976878955964710162082814165705552983493571198104533399458519973814322587158543651175365569988041022498740535246808580182615111028202900011385368087422249916283619350966963008327626271635823557736322285317443724425062422992259555536163082976996623067686131777661148900825346056245066485719163116075919371919640012404463262616453455388592336700804879882475561788814987764192602445075231037500511597779881890196912045702605995293738961410141250234403681799857213325119466914152487687225133828292690551632319997399471853865678232670831129989008225029587865345280667990443141454682575976729891144315636567837727418936717885828314805268567158510734398452448787781901085932860061573812497569756442598555854478523137261273687500711440936875775320424750394348572721565685860720473248978493697694517059919540558915545813922649103513090452498799648106238573842648041748937955755470810632825076550369628851173888652530673039579157415903504426317583872929326053978830680424495782100088627328986643873479131365899740253027170100772940198559116814475251407894774342180807627039679442268209044806898513373358592126571193431452278927025897664875931122212779445236103574777124752891064991561904466416890399967987485832068609259602983171491655592536313457645242453300852373628458432305816138716495668859720055339199577375819566272066206039258149957791300376209594491367021773745831678567984742680027652373499434713881146565972284438336711613918486415250889519459784107055449916204873868318342964597479904178243335550661491083468697682441867318792116571137786060879202131769374340657157400650100928096739337486950277215362122658291408429449859173137102387536125427591970903548432339288487682465631370449594849987415648917567060864765134896036331802054595705279270289561107683212115870368378890873931749773267129992555757314293420755874562386718100325188745555515706016396016510930278813430542072366288263966420337528397771160036393482942747077202572474758818637666553843009629297460242302531221709547629143616322918670063281874632127224689594542336385783922042656755544244381283859685710403231058471369034626654790063277915013075273409673625609638944591053616061867872634959005038426606691376546275012032596216564030261564386936344834302086897812392581183439005899376524421571133497522258241480735462915349233631681713699664613886050483755691896008904623976210600886874885652004268411898060054789138196903083613917730818428167710292901720281160103813966413028855446014847578874922170725727574942337675175394770554520121146083442113716554267459941849203540465053158279617708526519765951871526982258956163363944815500500570578830737651482016960225236720423088873667500142180469727196134307328064574817406127309951905040848880034589458872180662451295099381812102848024814833811345423566280553505626670797813686022073361242538720886397828719144696950587910880075397785227783682747040982691832220390986340996450124683604125603975536721359230459314494357412263177927123615026698815778372274393538363497525096461747272904880699670230021883367835425028788525738059973142350725311877349286723499837587283814289331264472858095259142551851986648186213307655795498085961337807281159683901388105503956083495534028937567703951451058751948656294868350906016800471612256031600746322684582820132382828380855084408033540963260898663599123786910679815935977905756951167453628656589260134062523310899626004010342654946371373185829687964478298155052484473048118744838634248883173987965000175612933851422087332181804379488755441547816418792117664473836658508106114293228645275959492347450832558169566418151886301142551182530798384519166143231563321991919032971205478489612353536758630533581780396325574033066329483986688529294913976856024250627826179488274042504201118272443514627674233231660433567139517243817112409889123941942412063854635970498033827205798861341071258372148714480554188125868186135464961041026451095184852911216281767748521606540735559972720518812453795312866599032948987495871776109724798010581134053183626869753522446487664168908560297527706767625775827545672616174379487136722553080057753738987819323722360048002258013060358799940193965478470416777700974171160651629154814112692796881689004862341668562536953204646561917693859547335396410371687607252008223442452045963785265511539319144353052803115759943690826244906473835022164924386772552443000043830819192307754508852387481141119005699197451294880757322614446869572007303430587559172882904074928705262179370098789572073873124194766040183895877995950989248972928460118309011325067107512904426098722390436361205229096482084806328271262672255024821076766332531593635465083063494287231998733507368149697439082247392463057519766618221817451696775603203896147272377156220794171948025843451902648536256462267490350833295724720594821571934848242262613930780919881227496465417460481280577594348592020228023945662670574608629780377195788716715163964038355493153882707718196547353027591909441830983353204962301712793077724252848366503406739998701660086137448387220521393660346522426182383811420137610374364283531424154882653489028885464719048233034386322166152903345660517408779221550903196331412117945208945089838988383428915347250491995412964090469559568600599731425830620564746280107077118475484187716060532301889038373254089414309656500143602295474253899130116924173577847653466817343396632237759836810411053181043275986918319878747151249710816917169985143640468120571382672974719659036219827103594921531556111926506769843857654715160581274320205196645240151685682285945910696040016604329959850147004334330224106608852195472566301271219350725298590266937907508461633269905583184814989540908163579362008428012294624320624427728492302889758952972280905502599897203074777881809743214402054672095436565738140400605131711363413003362604659654511544040025634173161035877960204371344267657150471115381388486308304573257656589390931093141030644184661154842302679674576726936382853077247011443705328950482280131439157216341113632920671748466425871550921380311550068899028022233918736211507952724762888250905057890999520701714648022782010716046446933486554254551799596138949755838481821209774245351457656920129627658748623521178245730257837985297336407926768085440301663020344753301804290481804627368946594818821228175616890409964337476007806593295842228624458722475978092731277488126857312685649979154882284974116822853467485408270113436355669761835727643547918318869345489206913772933305121019570951440836895146026538485183716789215184325504077963637169468647354070892386205349485600149824421322310928419377084370368421874326383207195850190714475461083714843068718936019888104010962093676220338840443514818220750920456557771900067214529277825554232953784127762453607372779504271982353116283281859125971073466735788617724128372124110520826486187099694678581365421370427870692539971100752571678887297088751857194449326922014891371415032078923601508001676474531325456674259083116575998629114949848782539256281366184137983006022310506022334497086840859485381096988747583609515318720942611586544050831672799199372199123880449806704300970034890881510066723389448380727594621850437115114180897652538404070917725797617187492298989856338701435486018638464194563845858045469197251894534689026207203321896257962028764535716214211637227233742145564768727750551714543656810994035936533392455883807781925056059957225988639624661587319967947384167416889046606801486113818680486310308364899329786708902686104469090814737652482325683224176295824847619253024308723584374912886493492841461479378933033857156692503542365158791075727448887566351740079304887502763369590759024373017944503129571711161956787900055617190697291957527863595225321113357676221460049897568341477599067540233992057255503699122892305771176809791238188218476030158990586861325164112411592572925059414877037329528251401854358322632079488855932887188648571879816723544275220134044829170932262094147359719759012701480146886279369997302339956498565494769053343261245939371052714118537610157914724369422465855694591310892725685733817008256052638847815825863217881066643945811578071974558665514700658778340705693540031439029794661357161755986329864898691818450809871246714525212167862744780106316915340499941696428480616689219375390647063363757244620444426223596115924746676283936764508323400608371256818644198615400955859004735054900915890789354407101915920254513583501233614011657376475238226738843002181176714777921757927232937948106195112106871243925925348709051713305826618749453753284178122141056310893102352825486827701452436389951685371287756799742322593343882312632062920301461941422587323779018510319052894193753922359439110512084571351129732193482004654211723039227692348072953894830690132641918524911440797634984322279837655447625276510134888338493416208245601679162260578043460551746357624644441378159497897515543394322744032960640614660570187615957742573056149151118659705719191352959807095244731102734929947290719451938263458043614555203988083648445284137199287353525748284743615306038721473025444856899028673736579608386205541668269166437165290043158600874265264717466582172118863912880839096096528704097875232626907170855183395516154247290831185465953725531769315238234874431305694463757079738026712745079797087586780359536545259516188568638006252490196319397914826035402067966217888069190398883861469045594032212487444516068852766817702689099512358270629908398783224574080005486772004611622964418133581420667038349432932730651184520584405629951021220770856208827617196914714987453997626302207348601157479120607214595207894719696419175583597259358220438596721322331947018234712850233062285292569194498418937985670428027235432389295908914992014024306454324929273716121889942380085972227323584981808817066953681662284614133632208973594389330400601228760500605434293262303454225914624480943432551610290794058164003575019659045238819388039425320261812408964828992227161122930727584701885478850845176894109450952975727991566466132676030495920302529557826157244505054833184778093260202689426793280480237415433383751784508258975800894669231879744670382546120349266121263193292120467695437727785367838670491006495319492138094045749576334501797134074595568161114927729123229024778265640734599513189281742077948466780709872406173252295706823673133478156523556864069557243469153099430295685655241786018587923004691482949445356538311078462395994622618819091080398439200757372200061295926401921807531410757643068391662641806256607369529588497948340388143890607424285441774088234686164325945892798854466631683636211426630251655374663061079960464831809988639186363325156072751353873760727043395749615631255171222116562268858096749505216561990324533698651430024883129745367166253835907951561476013628333914089587921075858470069862420441609945713786234928286455127501422333106266077590395585763037904344924865822008796319469552186731053757458496381576131673944212346589618661515664434419065663833751190813968659179338147150103501028680767187570532035176940057885681761461522483835970171765411969567775210229235288595235210383912291814554764496778053046057647781437010643606655520767306934433517828361938920263660042215349045338903391268561671787349565538916562885518692194895990008814473067572128556430605393874244130366968876977664690137212358258755388398098908444128069779626874047129582031059967548379295953431804885573629841279305830938549044304891532776875731183255760097208801225551164144469220296840173967221478697645699654811250411032390285120222110046607621521307358301039834275208127222302786687961098592542842808718589618765554988975299902000703915447848022648051377118137390715677338785914061987399903759487651099367913210194140488129168683804830824865060476829314391651119442975539563908168876496361704059976675131417795108322212744192632803665400224242445461325374194015871081719706397900345878554482263074289699892265273952149041320912097907728464560310221820119840179285389191921781139032647988689215830137958989937605628582580742850476285011802087771569492623658079385586707941200274000795520764479047026927949445870147275622110965130493864300823097029125347728372847890887123983241896685405094420682005560700108760367857667028924239044897773656165066033711234854758604261956237423969193288843999396152494820613827067052056422007927752241492109993302887822499884687867837212805186695153860543210564400432173252455220478165496436176893457748488213668984188364972127984285259224475080984581566826137476152204823247188257385702641892487528316776525417836285058244884210812546184151472613094016972734655118800002042066403182177445204614586574748661146865802532648848589027837571898019746227649709729930821018603642196101178694729072130398873518123728807047147786184463566726794988978544159013626382420289556457383958416566650214091871764811451346180421328942277993962990955204057852480686263084014067758725725458946795160622054711540116167316420891543049428382475859589673742896887518080499964317670244422319980387058934323859250403576079644023321645052801143745692414521515120927701913678342567574519660987095565713397701694057190824421050344717806746724637457212702442623899152602451084804733745206926870079282421854484552394215314890792989814438623970154727904509277875230629840851213698703508464457328583147030091160257240823170326169324392564479288411188385404343262186167313133242862721636060869502669083177461197695166831771707936751465622398641619711722152559551567611568062759881918679645571086498313255345370057364073812332411481328698005888947917437777765237108980365199273593664641246029759567889769734398528626793908165015389230326248996477615858076778687539930248092295544817922424273602536937879805796122622833205878381435775130970368019158954513850498305351240260350946905644944421149903444683417317787523455365856337572330349672480184654299803841714347051305137883247228201097841376510665340429611355230365110546892268163399263428003142382622220238010930164951560210399088214296508564971415098864003509618696393995000800506883456651230863964657626071498069701382857647288312189959425610746757252831343301746410915408200325524401461719413116779049167818435629010278810433149401040988779750562583063408700369057795634765252802473068619686836982594949708308597183387173993155918206294269535644616366144624409878152312102276519340547245425617683206267994229583473781367780952013262977900394455445475280146068720600966640166994967757871220017806546918356811965499335848198651459947989116811492427412467946305216074336125881898289175926897051587891676328043085427105513178798827270820707354023561050085009750073628863701117604020888664749445936112285182737207418661374085521261033850499329705311346394087488554050473684418727801509522089531818300444449626590997561185076372102909154678460520679481429744016879110773251939508106738752293487401572816185867410445560473274627868622520350450673423750382949843001441746636887835308735094733424887901012225776812300462358700701192991645074338488794114031802209946312765547852463559597528689897136014335566186776421609654544988233339511488509246651357053260549366630821866697342118163059281239144159128071588645345394599253484097490300526034287095390646739888162093956804833075483862354158218780902216450987678368207052841250388040383842408663224431293871093687543403078562054462359793614593044772190014458671813713159988788110398608638973659462544707500843758720755924063288883348667528611632487074295317226880933383736393960323885457243158471465197714403718287443065754237758916368310255146246457478929068827418358726866512173905611099985903947367853337458649056652743347712538682454478078972797008277975700649735207875739292394368658550007521143712268670056962183308651768589312223390952423718858423025984406229524872671237039613111913125056898027719157862253498180316258105248915917423896396184585176750969010902530955206758396860511196654797933411753379634760220062319820956500589033315209619898710806874118795823714296776786627311183953490389574735244265900615983306002319943300363556362144451452688060897539103843204675532435595561817339934593623665181029965773857047782288880162838444789523785503082181146309972978087883983852710100571455750931369820856500619901638897518101292676669201272359105945817983892832208556996931649309825565284634241128366605730851794593082356743346640037441923152836379066319379555404587476852061576700457818789272116805174416151424024007213026616664314356635093518917715977397424759598047070724863824076436233846854737073108877212581043626963303865448977019048310254702502820034813671614786562591428447742819378548738638993988965288320169620525280785679083438593334395815866261824532016115558755929510393273906723657361355714581471834369840698950510698913581835084367823732433722525593829090834099529210164009944196286914162788090137886099736275699659595889999780896559871806148219535495528691224748338709904224824575278210939041533133930499463501671500297953305250585229180380551029281196441007123492157870399637228187895453658383492606106613038625459670226182213902812050497969627157936998918830325571270378507209235247205090801064292060927381087083975736326025221212318347305677977445932898708121978232377908115505181422329389110309405090285256987462379129807730962895540188858243755952333911583075086346916536970795190981775651809073575251250735809383601994224235105040829513268333933542460157128361444590383737565031832423135446368830226088459642178630343418277420609058423870112832500566876903382010113142267449957404843891499719641245898623934705585635966327433703866286252142181441692707992756157899986438038361397624920188687224191689469162458570618506412484350249193210662989151304937842448003140301483901894384321225504593430366132143731588935449055910132159220643005068776950052737085530969429035002220651976436298667575892632192950223263650179721498288922188850882039261843508356811441504954703049111365433332695632834916670042547495187694642175106950390074954868788188869854813181908603134889522006441250439286798982190668676100696900274806557791130664651920441448394452995247413190805381692038273801524162370861184855256968577369142774952245255408368336369341079448852093333177306999081753291429521280947405763576600329415858566635713229741039886028437417326529255015757547334589361074655303102735494700471442915793287510600043755007882107503342672743892137808512358546018479039450679792550079135866842452909733326980977561334293774518936858610237976121533521002834343170154853324242841042656953674372297625572934828358765993830917129149475216034407462344319636454156019637029603110176582669462801958192751702191311010829480796599374985372646931549699427170869669312547340560381012176164589226024111239655704312056940436429692078512984277369655503231046507504398970554400285313419082008166698521719112914862918676506361254847139368980600894777195973414042381496747060194581341122426722823000740697960693272607617191587711756489405257172188917763431078532365280790924301686328618575404466479135133556113386434541959615472569656511263819417217401403519455573967661595630014166715536995089031780407572253514283494882168328864334692524448084967510325153301414050777286333876674864558878417414529086707967102104547448431757260695132757816185961231892210941568743080208040353626295740707813686645684636582448489973252975192414418429809069176722287747667987369084213338641694328840046656692698185198357106274732022905927434910453724333206825633553003632160257188028802585920785654898829082072605985989189717627351275496351320708402924702624447505068443881015318409965842298768205187052686274727331945910834244751313514657248847206086102258265897263062088546494179781368373105601356868702819273833988173695367800854253519109484439075700073466685002246522538549674141792874031393427415989112365473021816609278208009480196108903351486472120497007899425831921799229516882606189608125293107745806399247651916978086590127511584931494757996942413492636975318711141419716844971987693637369049478085739530421317823770881884585264802253507336113568829583336335784605534049410704536000011063231804801434527983228474988645640553416787069023009062076896075732879908093592466747898346691683652198015125716157838130076747017174611129711592938339208057300759194802495783771249745114223098372459880542423599324767503480908828007976652585239157545913725945336825583284297258953682528984216307629733859934993113409164018501486879340849106960226625605404541243792157286288367289079951570400785298594738927617737768618356318336697471516625991468762569647595591311419864548972364907285994953616229309717683159651342811524949643572152585927941546994875333009433728479280402664757384363844031086367842129547642952653792065675337293256263597339908437305206734795072778214940759934097985792002008505462814515134090330933829301310666917628133492207777150023022715517723994662369648836446242982696598506987574400051971711181543696473454789260017615520702592377542450349741223223983905227655769935288856192782551019923752414361914225619850365075711624777398165761874857364484879994171828674597376896138246446124283589892530035122223151938539677706913119598869219587526580748396855225228556618204060001647651499118750319358044147045760005437111783706736155107241108515989405896944523590580761404810057367472627123844380253915496601991189434901662783331470851108886586710853694822989952373922396798393944737462969556735790842360625742892870542334051636814035778272965477247478177190856914665261644405378454806896160769093919131843337602874934795165289394563703317024097728812569611017068949509191814220776901076627803483840369469080944301802558800885650976478762129287624089423047153088372851037037086387960360105206188092457730076678561304962572578690582309029268083963857198395045056712737967249663642146597321269496793136593365539601627873830614395860686115673218244406507461544720789352886572049362754908756361214207569181004822982966559614829918674630889272208228822643336130740689381132355630643623580730024846523953680106054115768056595767939574125949749724230778215760284957996111173705091172636810616092466422809793682498854994112333963765716167800494122239658659848404654226709361590136787784431823590627005940919098021814863265448873627585009060505885456236623579999580164180207578903982248382203016835899942021022867914482259690869934966667429246874531503639286598587326137167127081584041831759768219963206129046301986535391365665343751367856453526446866646071920715734325159576125150471653468706246831102955948038078452768511458903611056446643098604514973758400583331610055463928641406339446618022155953027370476341547569490245666873627970239042156497859798631481644167087197751766466139809892255117078460959745074412448778971892058717853099668849220707476031590608615058902973144218761056654513163093905680964744759005665742656041297207071302062634132184059896988478507638002231111731785722242567094833340017041318917514987916354053001253427457323018172497505703763264995168597405905872881129147215449783279207581767866673963162320359001663031272283787587892712225841382492318712019694076519977408490744998520487215749729327069842463776013027932970721578065876538828473800547389014724884552144851725074034168212732390575930453958043386140862662427785914746824131169021054168365490059950567257247925961584230886175970436373730280939168543553805697057190917592871750124315714923502508663490069636593889973737212190474768545395038938420315002208142083505335744459862232726727340707252212980965861130553970016278541675938250637328085217253560558457796858592924708968868797970487955875670763256468716852126980916724952390398023543761200142552933295366544472239359348403520832002577075767503110141113732075898433958105092282127429736330445416428238592860691108299510708583785540644794858886059782461765384410162570296782366222339661786611435295063420402330840346568507576214935604802002235806968238704363628530446505299146759885510757658460883200936714205479685823825371574021287589339824966371971705486449235355954379586014529744782382870996181675145237405514415489460585371493302652377621659240713519005173768390898320760899679111898277611347584430684087059001535481544624424918477951327962276122150786472736354512448267166156581878714678130197980738433589804952316083022081390482699613911733025983149634357413115201876782740371160212337406460055192009783872570221397441886640535543280857069867404451013036726456039988912264512462530163071544650165265095423909415505335915816415860448765073554374275229609145281101997778694758346974323095839328355879329573430986603362976069516502740165379457617849079435186403642294358899242000890905124906806770234887424542882940865622885771357001144974315422687782222477034436353362851966911397415756286346553645290770880045396213200400837456507836580503523541434414548071713854833392050288980178448971014450397134448376054166292589739169982763308395688221785857885628897852122698079464941723406468680653417685997922335199764114037843254024387859437292476422341937078073510838895167060422126602622257010291994556572829658289911953309262812756974697561547759639650084528452172467862334040517939789870057104685312548657495380024076618591159361823905884874147774741199134435068228898170061944468424201341915177739325262327250572965593589248653442895729502459923379403053267970091381638178988252833672142180310237669855974439070253263710534510986150700859738785908953939698942582849255128665615874487496555589468668378410790277571571274406392492018899809264498992737128857246102654218230739812772908187789461183473487148988006697810435943217915618650824940714523255890063914557661648245893182983593647092643707007960657025070465499568275817960725110233117113835046590882659707447505923763285933698908612180095680181035565448615016233812456826167262926031523393637186695804933403946732070393160969375193528041966780748759046784223529455604809696909506963452026344245535282443968004172924573400968513433919514155560026996172668623265882899822344914899656265784493396566707058550644972191497212319078026703288118187526140605749923092891892187828263192326841732723211622628639239554113589595491876405552264780544635913180016621967438904368027431792935358014568629542779674590415514180228604127398185905835293598854462913495791381727704762705852720315847344365187211855962073452051611434504990989231520893931299740388212752917325176676113469369160771706532938573333354601376384106921047689413036774955724873728684126947909038712311472892605640428803671693161495400310421368006181259329079287957116440273138028110161568691694723569791804619774014845603493192668242707168639649124002208178078875074528181978098965819944574806716507901771443524765189737122634621267797310732807427782993288487886477601098179940226579707141440902309683756702780170496448215746516317280429257786605250809451425180528207615768710667376912420417665072819287290723145495149417144494259650964460315230226459235128561660227026386832992614998025378004511118147779542520687892343888489125967384207009292851579033672134776711573084872041047106279667763834605125428331241292004987373807712943070786783930058667214045795453248821157008473703722254881311586923121002655913624138750878917336985267006878230194241812449151604152183399349399493363534583455420723156606118150787983936399950061328503342274963119158524347939689134764136641340649795424121226689150732054712466644738612064330592894976949409285664447552655575904644570958931592520726145546561266778017549389083725318794002154568730705106942257855167334099714721921482758533707027415683000266359154419654875277659689046389296013831499359606971591848948393461574522853005462324431866249836222395086075887398159798292425295887234305703095415216550523301836584516433036039023420353676207975454117182997890246783498734509735557406017620524188539795046969578438982514303909031540568307665860778209240568385268903694278760327578661479912948987949218997929550470460570710779372867139223559696950933904651608227891526147698098656398138971600844632633436971694583547090198853573199453053329559415292210647390983880496790258355908094114895883052731758842548016158039446266929231942354402789641424529544017240236153352742986819822366892751024867900988983198460530310707274668339339254183612376768536651998397686498712221701858352054427359317069645539428209175847972422814557019255431065498930245650660114732223191162156972131187949574798565721716449537697739627893341982955619419919363969986578387731985572891633072589372893161148495180291792472726914888940436308189199412102631909274322951379021543629104870129299875778977624538905056593403205988682656143319494939729339077554317772146682182960831163766302092832895266652489708996191476160893368508887184462321831619099259163875051312023538268251069725054094426886853426748351607629171374831537530762474889627413823784833196238829006949152127426283095098148482883373834979008243676741723362988795950033151840601598406971165120042651392316694770992300532985052733028702832306438373115948705075028624029779235334036430922893610620281977721126888478439314845292316624553142212401385139967194136369364131884261321357461608818646576537785854949713788435968845752267885170434253883678861382117684674853672374784665235115336692105768791844402148624111892769826047008432402414701547204038532931231398883292732202976722658020034599820203893212640386242858075894507412521862195731250288982861184659523754874488339236112258717346608637372475615411105706345918684011958544677429773821819871095551748687580438997596175296628994022274043626726039741203811696164823648551208936720450838416216806955048976757671805665253192844068098529619029499067072303514446724233607405482502841220783730309903544388919516788546007614731296268116684432653409173942672285359937847858167098984825990266544584709009685162895541010114680315891659523203127161622284372791954366909930147716368975925021545047986835216971274948801413222203553222567585281558985733398892122838775293585368360171344002434773415747989628529138462125916697901694524145758515242977156159440016819694445854377630471177205104759131285468769114904278926317257839595145325827591192993083605824341021994867513832733823817957838171471366757492210221622123593285360123346450895447657827766126437359499383576345111084268416572520252520501455373159286972388805183652039670657324402892559118991860621136407831867365684630996427511802284894484310774521824631134648619968215225729064878971485580664612607470350889393248395394180012771115029235993638621357555109579997786447036454630335841874440848163610613614185324659545969113386933620048744174852241301030259924511140131326624292152970453813249348452428847964803837832082801366286224929439701791438138139962170847682752775897093569782607379393016330101220529149464558620980344401886784127978427364017072962281240548727525443857886638785760251238325873643811137281246052253197521969746133716063030874345634093563577853553124881795694095035176659596945955984489786254154767071405626851541776307510665303519380214309003081131777461785193517946926089793679749916788554064853781914047398617623166321996536091322541510595169829264153130820928152795433771940881441237354175387760154627662874740569964251032130750044264120760900627198012000238829421942716285889369135964274064082594344788206322516262744786830913477833558496595575966861535951621620494372467819623345752047784442531853550895844975690640945048456835520815237081105282200918689564436313870501384321080025426752647624864340977654002158029665688173723234280107358421444572322089474729708437531822902191308822486723016525062354037101564484383115949690208867563397564018812458498346249225167109262694047252356397042365970260667626692248759529362404182345996512879696701995868487459975803847897730477962333278516037231294549654549590572196025147736481055747307857183152041029605206349072414174210062965891091011794252421710674899195029693177186682819674803640463695616220028503562791424688310386562975415018370000948910802001811963361295807220997902254857073485697054588033756847086799689576201914977364852901617823258480263718559481976607993439021519962121396561531208010313764299447785244023871664705000168585585922267061706222442904549127447387356456505826600660019704513056681275114295316868344281358995498024344090201337679959214818072722405023666452121450077194439782992539512318113642554220055185108677974924057872074652950510675965582792108809944195788614501141934388924523574479542948907981916101980347166956093180810661510991128893163608717123544713849732891812725918901309810561324539041018299722318329760350350616464094256265745854519060476057251482578255075609020127380161025082765431445459460085370961676724106690934971257676112653990129806229284299529345560320966675466706933026361476766297837646823060153629280706952023201581050128739506594503919755032048083488849716230494258174816700096101640096528966369189544238749620067299807213013089234663443822281791871215687046302587391564666189111528764266188566196465453485915356636546128401053654762860803201487350139912448923018415389702780866875660400485022670505084725220395084785464535739833447470208937293176509690213418484323726444778670519606750375323934476459992187578620518895829583143117427568732519512006733690990113031882435669588841601923292753507546249018838244558686158796036170418221677314474412694643823248142091691110415109433681369898731691515762936952454467864631204764989516134048665211521017351532666973124968845654579751498155543548387310615549084155067072910108151666632829708583801887748138854101954441948652969698649175088994714390715244784532819183874322008050700100995426868541051021736679867340241827014021494551574059011887421642318391451936880246544093936040729588941110472652349095749495231982314369020014256241828876712799690281704057369638372603251117527405353743549401514691423110333533046616210993144079810268181510120343039754194157935963403198193967250350936007261861887956294162347651499759197041697289236979607253207840689731070369908522410160852453368164527741141093447906734406244398724657805530129740971873712666628471523814983731351345103094692522342326274297583142544747831215787338022641782638187112065014648065913618290359578569543209513138282547572449407060830508381535338047063877693248290676997340849423626696976186528508086709970940086951875217203012534764013989369707990151999451321532707779235608738388321620906106286849747358963504240788185437671947425698741606730156486607977508789168695770210271129886037108730791454543740382190113833915557271403352038410796785786925603165392931954571081510014544983163267223034863959968845250942102032335106825644829706057416602038408535275217814462109914725311553919418091654680466913136340642310647680284188577196229239986641036403751533765454525669136759514157559069201079938524878139668854772987577676300074370882117698015565843870347876174537241161203667321534848945118917023645796637551132361192534659924410921370041043845698100823208451029050928025276379021153663400738769344733416060276767219496156596523199070009308598564247236510442256378662575093495927484977157623835938539698393314887032688328558926491485634103656608770823513223427970444756949014822422278364655892836471588773742096516774820524639648813147489312376294850225951325554265681138962046454480775452437980159498014677161756398091703132796864715591769075716539818816489328293291645683535211570284007350435286016341584161918663946358329706848401407183899632723036379729450065791911419019646405699674416003963582753408136672398262162730855432497626758515181485280937989607979787037382065691381680762969458010281154930320486487311459954790237147909051115734515159835993733697180219741139615725126097361564935331484938873231153926252038748564783042381010779971182284789311863471330355059863386385453651953830347506672630858387153281980710982423294487154641836654268471586260083716317877389019242839327807340072865624622741358949825347360193948467595113516013757053637818048798531906011319924293175285023408065547620084098602075773660968353563328545072315955150447033817381781244144711300306674601577520693966830609961187887689468525745975681206220965530328954427019725447261958821858600061669388285474332639858297254551825935714031282428292264109393902349077736181115765024341508353588898948317253363597539139421436819821440788425767998139299071269932866585688095334769976289377834397907728962296058261307720795495971192249127150609156868617212376169769240645393082315379395924786885969386034731663902166562784961394020548765793424680263535769533380532689458939272890760783622228943453888605058681759946144522615859342133602036737076305903476916349901413727006720344979287582316858248805272321428041526278722620761673336743370831658716415441708389874038477433626916602734769055323599882417128188064637623667027919670482412232720941523397078465361650461520779891990913424930573523582775501766216559446067909306427822397169324303546897015744810674543011653482218947208133303157362121751175840830291258913620335661207398758122247501543226278439243121410046884710490183827621837246958541508827879012225136525112537325307035027448157063165224662229813312298208227682045910589360342246561137670520389192779173419960944997058380698536300667548324789867259687650677040312369745674746276692316437915914796787965628225653519627080343134704729968020712370066361855828239134353743082011136144881112972341578918336775919069965019311489012946094284968518416153607410277521377993180531316427820124798137239930508495609528714596272632962954918534949311225283786559809598401130139417926553642698198148064737745976863684308118894218257362865046323083553542320133407418134484407726278956168815831438177985961813451537825185098757998428477953259805794660781421349527870815980724685396101863321047060634650178076242029128387316730802384883726295116474558095259471485887883292361033916810096780427798823733992805581246617890861415775430803232311326865843123573956538690568253194370297491574549674128672689519490985918965080976319219318308529271035066145161499018782271490726022585527734649338463105602123688467771744079591356970040883985972910782429176424880297837159268608809480392987413108551098580476924322748552519137193774472645131372499905091178547690848501842407793788251608270480544781727239874206245221289867878525023270716872110092280670692488915763005636439290817321376897934505764507451788522358980235858491429601441464844875280368499190804189952819948911315239439613427262004049517233190396776219352614818780026452624785064753690738045446553680933986345898198825432331741822662760206548052238794567975859916849954470959421951377941924601943171008999650496623278728580698671640067810005516166286336733842533346655853666703146498422766955876452175627837905069123892585011961990166032325141395276169579408205653452883200512223896556380318033789469469459821062100478005290685246176673730227758584823413462329460092580292686649837039015959297672964995473045900318516884014745961424993838326073252753586463509136320176221037307092570187942334621321773156472932707742021494873522326621892289891040152390737934751003982105056582855692130536691664105410775081432453228266453359856241687166364530161990526397269233175259338294449826696374887903369875804991238888334317105996739786054933050134157782866663790291212205021451664618736531137573106099690264989698086126937882960605008566786146421135311291872855120458767817836640738704224156006270556149182590056477300105015403258303102787175368551175227810305325253221114567499363696736598576184117474342111622833557404019835087430384596320667284404598585199605236441271967471669619307725213167638236082594572374558549543752742228653500307382086364896240166065907988848703429081016029847773502386343866453583688003368345328394465001775738695399873504022024282009765092325347769808388940430749717619339142054913263887340086324687979174336911561169342832974914352727752858194300808272331134668733112276707177243957125656113583663833532553769352714275813351840458294518374859598019296495821487147234085630913596684837299749636064509548086803065382843380304065046838927065516983450553396547233349133910903001614665458654953101643167269846027645978868738602401493517223942395003230154419648696137262898290015146578450570671043586756467758220536397669121084836095592350437296905897569384755200173869441499497316624653257675367827947909669075218718173665411137925005536570985000443009221874680608472009052953579944698025152528891035314217241686302641928520347155830403029217756542035758239236801469101799562419563591024470645414433481761792739376852551793153586924544597608701120696759889881014498822567707428420286053819507154933413769279576922518094625610526446820009756312058582230958940730369024851423672050179387048558589675778358163929663002883019849195434355974293705826852407447748475190726458538050969628408696641981694932818688151377944962762835807793071866766094099877072509128100045576801109305978161012674860706682016794061358306346458625536254325612131033258687155185154064539405135402025932053525629845162233186762308106254220693283516470862706901995396748733517454080003009869736328882971281446834498123731893213820211246840357694310429496845095485489940361549162394431593384895835003485100103292526044598544684457341380435001325270572523176903435395377425704718833349449435256919143746227113115373055026299509743034553732284435798803085069243585184536800543655114520226855765990153905910558497631103301461883871172285129595859645444570211285287382897397183111422005038458504364948008197741655025951753068885348813619260933082777606264701617302099477863286262893949710319927221696443165474352704784560801844163515135596675312811901159323016735566047747933002190520942033101567680006846685062017309872269748261732397614339209458567739818395882526436889380860157234133945051364348352425846489448706931446676218476268731782223871956661412510946593030907695218426775593863332308859407036565812243152062525850614349839487575918585037032566117140180094965592642758843220551040770063033718510940322236308758247822140760655525124154170167006715131634098293477526347683635354222146638095873128469393127796157847146286025477709982639030637021635671275194638186630857506735072483947430258028120448159465313098906933440103268119593605205677235524566917938375633303263846833991568185682819583757233887546334039196382853723909355443203085688737520088070467071143663470953443600487654808901647536678804688303430418600468981302095164697485094587202553192360180401070090512698513544534535069080542282433556248058065327383333974580656775928969462620909688629802203500937819635841270200885099459489067030446562514427967996752777138668708080028318459465982548594032583635275967077664585009852279667241897033678834553181300796126482760855275416245263614400495157624486215066802497404387006695581896671553038922776588915788422930070601376661528892623605787022597329150618113365791090933786739430280262965936621729215795396979690975160922337267503857528509221851877928031329497340105232240579289714069544168147890289138543550651605704865821470663217718798328391703567772153518582652082613720863803376472089580411848985714492030708877656811808289765238155929904750634875049694350705265970351720343907625736121169178721194506013611957349030126541481299577934934301009973976029686438686048072342775963047332538456419004147364260049815834381597411826183464553449351056384934100557518600231328078184862067593597203987004562288585868539273472305325672369066833070990127234314885516439993101297114981094733458917904899679344615630815657565706795553324774131017757586696857550192847649359140807061776513507657090177024927630673660942951477911831694629513857236715902289628139641359083871707852246039076663693533845580565062646352668665885832129981406108435681777554393549237266201267838072525293150173906145346035226638906085214741557673407321926138822226951158401235803684744950062703167431300418613172196740575155246239327032951028934099826816206514001696558109970583166204343175276528433383942992516214954900365897438053299469797332602303789394108657501803849353315935135915908245780186470412025185956443951135562070096833940807862329852508941481931422996461383548775943050815719212802410029155889464854917263623428028043926576993722453542680168225226004809827462110157553168466140553561082294347971843572566458092558221607591219232338935332611393008701738097781519020234385467565566545941624314198412514250874589533083633144187975454087935037289222842200222537394660391238731293202063509877308946557424644136028209829055951483876310921294009672742566618132057668488328490408993561869655016996454300882792126187345969400952234434592722507090402635758049454736489183603166808589310705611682813232254629555979912002580149523679773142138631532404774862702329956807001682876167620419805969266236531534422978931389814129547992372315226842641368560352896119431698747029858272873694785483395245617828152505600488400037101253982683954724742479295338032042455531955979409917520479500679983117619637470893095401578473180630354506093635750691641842584025871661462306335617507847459200403499036820141802895744158856277577578674982229884755007933671002563673521237789237029166791152687016486495234062420435641785032010479737794668447148230418083137949311700719394621147193291694107304975228190664265155368605296405435380066135900430487751831063505728749650031845035253654726943496313767215702106044460951730526268500628146279070468462587774201415256719277910110586406002873192355583263299988480954634092623912297860019782942391412805725782391400371196435323739769014592614904646334598507144874748709866884829930903063594275892598314963352338376664983417774474994927306796360868980837134931732461678545748871068696071190102116184715626473260131824075918530992740919503988610667343263490495543171072969427801611950969022525139029262790398008065664554450473247654083993423653797288192615665534648605622714698869345926660691383477026081200256866238157639540442846876673027271607998904158389120569056526958384600785612447004195454811517574484136346114517884931051587140769360516847782815154608402679816714979449432478879713935702384749749020683397408339495385753498631958383201387368047846579728463054419486494294226059619272064253913106743186182981644411898251117049361598002462111252082381651368881901701048154645218879961524579329663296891673712250505383505229824610129867111199500870690032105844282973970002971812475597631751364728694466690729854322617103047003070224064860048843984708145901670085091449225657291265341305635217816439006147638272527933997504617716972577466073606151141101702462256687517772508689011984305859102907676596068271941477387017292120614175937502253917800335880011845319984209950518460920534319201753338319172166752057296892274401795704871517316149942474768487189695521053108163264990561181437135644941667374010815344207012710991653875888114499756602822532640632197643064587792693816140954212942838016537183055202390777252274661376906381272974857786727930665597417948767137532362581134898309993443514787028312769064953387169703247257034033515195817403747529101436742772696261706405944136754995683232862905632578551862419474143387737114663519965563116926706857531242386154031815177696913871059611578408673519822937840081856810749875295707440296659820199398033342033640563630866884721580564887545468112582643511760495991960631206128879102831010049668359851333559882663418660752956005733617171467309507620840558652801141042748839864483176585505288869625541052978128680419364817508415478982947101035857870477590533437710925908578140348382689104102659427039377973731680254668513419779244808855930467387222362238988540345415635101656055509412741500217287027319868782518137415723692398198832859438896188111170734306273938495368334698703060161610413017477426750699562296597852737466158418725996648331278460461361549357118605457447001416078837566203545867078031609364686057324223543080642494257885824164682079668789344999181438137117486271427677202684146789667012678368750437396461756761062614813581002897666242468964348340528118729549314314554718636676150082168298941519556479828275841683044980626689008400074378584095728606039270014115512566112584465753202019274590442788840930018433261187116083312524631058331181677100737269778854416338331321722196511619985619489739346204619741952669169948483046004169215628304418597412279199214549385045559295613915815999287474489201903187250054539477431531320461158019684590844179608316046551491761701979742399240650852299717896156663224355518743183720805998641721612613917576994852990920142547964812245198255314100804013733524148719907305133699077502879459430275345893708626096973628797748748954954942572372540375262118021004704410434758612365248279783907728019940017955971463502426363550820533934050671892997551721633223606196183149030216762827556265849377000227823122779915349440096700891692232189859458378645882955674397132733458386672593045129401643015615560993398897416827358910155041561946889439058122480400373428175564036632061783254614865961825076140366789259726219182509394547500839479298391199054642041003610619730559180199130318057060763854118222091763746752977823323767147992569603452429390763043333903555267277823029910778926950713471258551751148907933211099022142319963617626884695889314398371253637612859615405317370726137025173185383362391765719768970060648376211079237145465233513486873431344645612327431638297309187665902312579748311982800667929434916812678028742923292035934150257511110056794092016241627445138033721947104562551088087903731291432779396831764801604075650777595529522927569829296034254853494387251353878327738343677733737657892555431475222087568169682363523671912484624504396780092680321018001657112970833361214338081719249754281884137601209075130536272717710930330545212059750571575535245941197189809590450326485859411521121133626600009088960112530187977123311687917447555670429320491955870634099785809704010253482290068706237452189569822483504779131550628452422516759218108100256952576506360052270661967447815478260423271084304262546267381794387267242078494406029577285052704767626306451981586204039127228058485102138248785153364701469122571519570581200072747527750595096393768713943038301575281291608172299635509796807264770448070019032231362967999436033327792592130097052068799799035422739270657612973295577627264492329930683879098613249421004955956102483591970282711604855028910932461317726958763912275470386343016252905776006416072580320556750724420677757305527456831663589942526819331900965610108083032231906986196332474053563294147640141138509584212228260931972730671229844564299789071359501242328402446623076798010576986989335352646747535691966839258792880452837990424194275872886022186188068748946554957841054844950870684973704581608742273108751233295576621125441447647298415241996866680369174725688204339622392443318965875460491255041759087428503668572484894641383205832020213248499436239039133988084150970005464070134684266084678249723316862589084327425970393578705146122455817481750542526998980956546174341856689370734237588638014296293079427230545799769816363936265368962998526410781508217396227276818077958394426114734272185578931919275145084237823983676876754518564693113432751126958634358155153506555522555245069521655351642616397081081412274571356959991939729538186350072575206335574646559779494890852743899293185229144207614056302170264082935212175556418217535465208569749709820940390745183794026115267712011723471427132032163244844828892901999905203134862934299989502004050243900263662556854992210917712072600732417383288682320812550316282458660954441525860385086055067084678368825225615104566813080741186230523892790561729969433039158840779921114978798767068007140940417990307804849350557338139407546867049370331909795725574958594374665378325455771436783400351296499835551894536931273317632825530662281966927842131670455125317136715410226421753550596731328780380159391106964512124491523973448531519549412586172143011622600023325947360302447072819739241699907516871600109243631100894488332602937353264026145885609375967755241179888730431579036047095964687156302082360261049188482404825703344218078338042722061910360560068192835500391615701892979113933288518247837151116361379964796734933245413947803391047754811677772900296920081038377126922733840797075462313375445401047878652385023231825121150954467187375364243448958370850532531953528001529436650180754567827095621370598593238344463425705740560062129096208010725898314426329024707993577995336003989364078525004098334847786505327229872257573018405806733581308856380587186202168278868281916758994230374139855814676694468428822908652379297725758116120781905896369518571996198966736299161974546775709431311848858058536861446451556748329886534793870821578322818816158622441126114187478574970625857569715745882171114408953870899976977104660458001904316751673287892259831682525579540081450952749590016521086682291639927016055860031732022330174675690343035777641196874417538660895453364474960232761190594865780624576165590337093539946903584526192307938345005904192480736223490246198296711740582446519052842796276036017568555381759643606828761962207015763147097296422964031085285149444293361926728951100348499093475447361730569987736058925499472912433735927402246808442417353160204480663435668554081965701746579397484691994630610675231270757727447060621941375832246835766825720193683924142627184590220507864660514475223435902006109004644406839527898472368706999990992151444732825738150281227030550713271253839484029860319655203062844555322868091507186634381818153522084518746865192546474635232140343345117646800282737804374219947324702276545862495193735556695278474840175844456826186702855990748627947911065710948218823301133940965219861519963045109660712419722726442898758650141810060182285580152329265191272342411281919795079133431780531746386139820823410247670822447050114232743903143581909912156022413436275010491659751230850817542733614161867975307198419951872812532534134531169486034748165375060571211727757154665987997281145502604873315627688216451327046735745868438511160726511026420226075769582156480243478987814712666419099276056243830035897633370264771178016165365496441928833842280114249201531714237983831610967163512659531025981202791433284633098189384295810007601297257818568756595515533084277659706188881583624603240974969023666554990796713613923306111814499734281111310905639814622298201589962230805905122983667089990075541229500216889005971486937987852374953004767764264555683440470735664751334983858884678961323443238763680825235186541296140242502080609659980645870446413459183831980824537658387083653503000597780750838479486681721319131567896178428958389728666289686954663943805588806036502069360204493425666959278367872318401578923954606804142388231978734557116291033896653351361766615207269966357701348314560658418634973968734006989563890278389566672346935685994866916063400770534164850254415519408395452135168093620894739801431648998284253919901888198633128367159680165826302146543661096677111583231656584196755584782306394463300618907125615599273682803609223260004881737451901138276917958342304535932463181502411468169847801955463222870995470009931145873767102469410961742949815464555703171690205162902611224889864132807442611598144066325488172537672746671182488777214687196239103200362593594453556851774621492450739588462400944893986748734875933897329044862090356140095285863811362131442794558320611953842051897977292233224218146894362933070221749791244376206446799766439569926220674981248279706935450917267733357848713643677539674824638238161260817236017123448076368496467301543790513986106353332721256702680833834960084462826257345183786675697127132065909568240314792657934831979338513883466784710811970094446975912484403714270695841822012683803201817751510125120510193226288762192581092509853530019626872876587885744711996704671805556639071391271560300151204812352268961156002219178171059298882263045479948966680161226015724752158225924768575692384155096966961099366564290798511023631084520306629932789998569607595847973610497457201402890046065543363243254989979810065792786297637405513156619475495777474733357436463542955600894919687856833442250156879340962255899483289668228507505569122383014395000866742230933136708476495807623145499238267146049741399965312390710921653199248260814559402985427444882798305447986624552514761927262559137255243329148818027916288213086480452946786307353061520672633694065257430794432863847384070386091953240997658233527571797624520255629330966907323079673352379800085037482241987402968589559500179670760047853085036375629187201538477649412313466049644066102182569145070556722897047015600987847463716884030701900205487633586474226315937610691564094816564189563024071337899001030965773820955129750165679051586349492544178393325016925101748318025704290623420039526051733028624158002054871895203303504687638627646445936993025586733231879233228013010471736838526404025514368531403918527115164627828485426046572268479965952971380796914361303179892636389369719254273878824417634965099256659044376452388949209899812876442222676137395766316421692482966872996810579228806845532576190121506066283163327460965492698712716772892504666524795977392420971484803521535863116898863997789026953646272474114214358914893280091540387320227301451392435921810082413877970805474816997416054925478881492315466356227239135730983374790276118472153723380344514532093820554114616962549524139740941609500571020828302978616264887039360138969581368715963418914807431688918483459332890550607362939207563244066281945573215240787878262074225361047392533601552895523653944359315269391138962067306321418954937515256911119445714655959962067504322943762191122813792861677649706918321935163675470651606802942691523279597316633516783734726957695587106919860407736242157794262244011205994676626850638249485847336532330775592055036515044985413764837353511408618851327698743852990412419804463107854069135937404471629698829854336423421517190026608125435355116324541256505554622666037488215391125527335793838074367001877753215646490732073763044434792869996747796886641266550876863875287650730756266745093094148523170013284088434684698835565088686420440439753026286555965655319257345058704876975367296306335891835921878844517695670723076705790629801778402510147161168819411641796475331141664760749586467128274686407593703263742961517414005722349947684024215783857442591368761611907595325437321249911480172035665692375257807986599605737205927915259325440138085201463052917303345974504005699738405030478636865636343808483405933198583919356805942810867298972840142602050875036009487277947387534450843918096381514497054928659678659146374766131083144476730259872617564851743690480614045123779661442789153039387721138104272574495068642512818423315350664737537672435188244824192808591671579910306274958610916622444866889892475058765497620756438709633270521053646296302629829477795854033224381852473072713524383573884940398748046380259388021235127069384333745455341470315524819412886360753638275977359537469211871188747509321933592264173104284334636483766331747368980466121611192125344220349573722673986978455077601233442657868199158349373268869055862056529183798982144403745772442685487552404099047890391015400407385451749762102113563495332075511815222880664619631699600442444218763244225923150057305631391112705326532011441579722097568706755644427240548377599300386172485159537294526362803761249243050050194510600055297552185527606381142055052311487441078348735829755898912749015288144713717793456367581263898095029471039413603633522878644978481616279800900704482480479587245336219693598865788999840465415371877328283504718496093262498857245728545652161493697457735051507259199718085880204310928451045245938179043784071848453346055997219307952550596886669662017018173718974685652234761700290547109096799535478247633102033794801746186433138407329498707361963933861131540900478596263199947469501285082132865324390591417318758490547194829506716685325150109969909138608318483142368227177346711984007410497711522672116066888789532440455040975980129534544515441114179993769993433000566526124879865256963710772122413847088564822616587102418902316302763880955215067098304697195470848166472995692803807820814974049064241595849239458144160022670636648288589857001404532577694918692459506922111847734225121845872094534743718100384023603047352221388224325189736614954692820506261232593569576931810937829286235351903456542950367518014529372802781091531949749149452587365648819257921827298430729341596694621786638768582806315446075315896213559136082179041745131867584093384213701591262730882332288524543097660621548888168197302771903729306557553607100083035533428318445906887164558797102605592024771208679114275997334239763323913872093736111196120660793303094479270681459513309695763731477235709541321979709166138525442909379417218618181226803266595383251895450267845414054590814980470717403501131413345955034136436055646916842829733224093061369975281534205831596464312435814700237840186091823784537909189989844577613696710500146034821392856871401836186028262700132497792979538723048360526915903515932182879209476818604088750694006083137050498818960236947515729333013621780923070640456956262205872715504974010361922023531214868894986413998230512654272398928153568666445262378821126377597608087521960329976588747349282780234445259674236814768223687825895112494333563151281763241766175004760877739185182263979867010768851613715744591940160300294176454515012687480781019382786126141302464564215573249880736621359605327196901866372265153167045728537472755246842920081781396087618242008748301679961680510877227444791705828134108220563554988707590520023974043623787606091294086403973133686091154419214739692369504143897745293603142500428150420713682057318399479694394182154343254611301322116386232844381207014331283378894348104251037291526961235738473161331860768501283555170278576552439642886362986353170326163823074151535102652318505977562672417712313451544584385135329788318212602881432648899946964822341782894533385564692590478330882372374478121079585400018464014761309352345660294785079484153566508969976458005296725254199599898239541704625068096231112422460422904763835673960061896647626717041590614202497920342136312406764346708412311770025431419998640392418316296053061615487867129972394937170668986562373237577283884547217360551626799949285044512123373995163823460060892794086664883641897194695716220597283692696242157148682672059437635334585952709716392424722827427539615701335634853083579312012142987771510897931178100376181613804113802098125532603164203236230705313373033501583267309135837476316909866063628973508291849341419546397088103129876175551218352253264393690823680752907495366800636166320691473682129951059907876091688140088327925599754092909254588739063600215741938166025314588350063832448590338047785576119716765251334607357407428748154277578571852999360018256289924777642121872705969771887278118318937736989855664580061439555608604450686402574461021767814768545644273554456327392180172680978380777308022099862588124028593623297333615766792603867963737218123862641248750658694386270033152748639466743846336303175442634095187453200189309806875843749922511320093663511171301930729697380745461007876543067735621049056049904696065304306475627418489150757941217071743012890732019063889131087790447365472962915105118948946838352331508349321633743164567944206403493645816892208497109092659499073275034504500293317407090046130132645225352584924455957499149443835167662823846617006846643759127453278926500461793784027417670524633210680840184196355937186397147453966843361798009914594907755923891936607446182098061482932429999280396052828645312535264574253066319071706137757006279339803022282980775459849375330378111849926049621836648465680074781982425139878445619731774656100748427584532862660125022322229228519810756828156339520910611234535207243896185275238401895089007989675955510197097308462690802972437869766637265547668359770637146779622598629747962687862548810161535352345194282846345399848251272612251463642658803117615107366422641370223336239609580313146176048667015266076682250969797724250233904770146235774687149240890624862463597221230141430290399757491066131979899806080966687626155579462292660373520093340264263190870533545174521276867265525485192666030993602071487509678250062679195867509856529449682214410561967092081235441712167329679114340586572277507336082933172938408003580341032188589272998600321669779217254117758402629861510771954050890085947150247092873701794533810397765778112594126824110183037511009175139546403466362463996539505191066974888534530238677654930782720289277441592232867241266546330389558048965145652505769553921836854105657300317960929047160627635878831126070046058087917065832265054857728659122012442310610342799818687026569700450097064354542323162001782770930253304309132628199745977198277099143823435562202291517186621371624550028415970748634827915895361766666132426935908026901339170952782534803941608848635782675587416076401537359697213458807423000761911384774671854391272895076005159061413535293408092599624568730522147669167762465542389022987169752540192570552894557002832037732009483236904296242405370887644286500507275203428003985029891845915740873861373176250611284833864834610463321719619387406076914902651403146258736418963285559803766639514814984648652334031812835222432025055637014092322591267322952102607076711892327344046187038204644888695385535860438203869852655097769950167608946698879052866809127490029099997208055364117781479226328362857924740247844111162725431070013540827414961459655033039258412402049413761934964120544601792434681157309743219497148966792332667219354957387184345409863671338473241578439957777874421377849431836698879984177609486289575897815623765855102439124929961790935403087843014619792984459465052938844696974177765880008643075800255618140682468044398146480070840219140092771804517273342108160140800950564317817829141570548199529446266555098525656250754313531622904407784804675770127511294734095382476154630697052957587104632272514644457960007194425366563418752179524786931990757413231857773937097389027560270633794670967719458598338556618924427198500275938222850874015593588886732878608432826398443230266759933585371895644157196371034175568562239458300459499138162359918170790386563504889698398367372456456832698705305881866995929410053012981107538214244906026327816053188330630362790185919654895510748348046619207330515452214625591431935368848177945071791052123079228701762842428293324359526515472455287235738019020996863936406298180312224324705996056490020020907745502356253452164122564258141097735670184203902396196931976516597044422902312563233434558955618410579241586714901180696395220371013543374869470998504542422753017443911035503070656734568796116251114695409076036954635748088422924625257098844522070962520080138191850687152554250890506641895762156286874180195794806707299505285577600838245751690688357826587698854391204227543041702393458050713928155779709937358161650006490223660802040330804696098840118750753229702042642092702434117297445375581431007501083236146719153728194737888070533092329680891112943436851007205308440672153681471086421348500251759089465907329327728552816574814793755733579797822189664925519300346341795963222981874703137414258023262794644215904218359414730662685262669650750086419219361793003477535262173934188406953750550134882883363336867592028943353245273557784380526806047998963700684388736074090657782943622061103660020051175089368466626075216798005347418868788026701957899784764094839648652571548239311341736877583388632520044039522663581065228627687723598748152298627321218137059886751340795905517995882561773395150984962235806949420460536534113401171840943501713076693716869366459244836361839744602186049515870763791116315870211719986115026396465195922666269018743838875105512228860670826081668022449729568231437903829246562765525638246745916181427538158987289669279034582878254006594731505015937249309826675296597909025197518076796413389476566422035205217233787043685983006027339299973435776106378765609959481552968214933676848484594542661406945890378864556079774499063691924154238109997449921577284419438596039796559246824279820958038056565895443172792214867733807991458174790844363836022173205113926283710296214667341286072024683830749451416420492848598229519791134295425747580947280990344672712597082346629383258016718726050065612990104582528590932261798317149188079663101774911084914958940892839402873988888876960471816149926295464103240939359881593247050543933612054069062742895872141529974320953104535557865899454975787926918865797967222269009410634459978074084545179028672302862409813076869622542359799109828632519798996063738431784676511935700785450437893161550885868724800469355892841239523119532033316724186599011268374774536164024983159578796801345177730739618055611783781083121446473967678488749373898373238867696863922573386892344727813138905155858323197214151778935496240152957823181380563594507697741946724382837239673468950474343360833569196526892340275881127134514652616539423929526153557165475194005129389351052898467426100044419670076210709259108456559820460407068048188888261758206391575196720234422115289819942156532815390628435406283356209627126215877420029405306812159950613415813046922054612709336654463776526102622069839597951246114441345812326258889983987163335323694198044977786567125061162590646280255219111226189242279671045900522012328538199134741144726876603509218410091046864395222999633736329528367244796825251655550657673218618491599354750984514327984901988402015631838298312920624967020332118782612888172861571373172106425952952367007657697401116900359995089256832588800495445166657262084054712354023940083297352388917181583591981351411369437558379833913976917942421412780729659205870666658170039453986440347413366681280119356236113298430608970179734730705837306073898252842981721752576863963045338116632896446621249618602746457753131473222512474969208811738614640624281682663050154490355863341090074450803013165477753061285147937024546488294788842833418661444774070429698467670620147619499062188873537195821394732410537563911038287632792569281443294517492847801669519066941920110056256888471201692911719107348227380976416161283794917332761189255289152166419850420535688542495610266059614754010633273778956746259586131220852191192397220161294376856253854011680609205600505887322980315416392300764619644097108261916943870683158380746240783544153802582164634326246831452431378122162869133861921201399550545432399343202439086439762352224276122774622821323400619222970361453134210127249549552512575529545331749766297498584312858890439994924389252876660947741709816414192408253675839942583129643486717882222239933443744863496666050578924826114606819868414466458998821960164900117753945083412222441366951015787704050366192292925912263815651534156457762879086537468988556304003911076370011036572713531311352471286093921056563096573876495437748724277301885242052118571622365885036824538669914028249415447018878667078812129929741703773330898027781379933279598280845959357862358340232782344161922438685921990325432369388698848948452958102311921479207756805695678136646467644776521096869226721044373272855911136155981152168607633909566394515259302211206446142042320892240458520642291188692166221905133988237760053370446102282424777353821908888620936731653874184097643861137555180247449357482312785997787286634858192141742202189236700583306496593921073282259157724471378859191762776404375879045691958669908681460927642741803680364604096479173520806626644694488684486778188373254561029949409465676549033454047502466634988169694028748477605052051607598389719236899522623463221562412634150946372489393256621928161277236291666969887107514833830048377889671715870464242815790839028891952879320300490174000928725283068830923534943466483106092148205221821898722921225877508881320806798316186821747780763803425972401785697842658719824640925837934701778509359975260305943947938579623416389799248036962973613366581425115563865530657007200897378538836877366987657170665324786454513848049295754747229304841789232527130431788940598739065648910235640904572331825989112091096756358347618623451217450693178454284956111303743097088101993238539084405182125878529807930729859984746966266169739904671862592210420683404783316895228433391707024701050092792468691334716469690372435338303813925125099775932013187344418927985482206949781449045725832603804087681889651156021805017542269174171589178912899869092597879435090061042877481375430438467428314360403210193471419492578031192224629865673478206891281314421233116129314718737930689921702880951512300667526813208974095521075160147965667921518920067409295415443598885421165947439752784609987665748178382554668746739318625937109982668164535925707903486780368828394005432141202379627176198782660034716002780005100355789755263538676316111893543906555956539952484056935341912336088982881509135236962675347460760413762907522231416287453790439163835263329939348903394022227615955083118411596858938630183957313172432265548721298877246227414466521449154303098098976746797878020994765982795025555605170793643290072171500701563454922353099077240611680264316493162416341683138787632857306407648493328773582041942213978292537479683050691986810219701406459577672325827977245485978858870587992214422868870303315458646157547972221674259574941512607976149350167611959499040197412843545885743593189935339701950879286053032296842067486133914430358558966014560369533392951652318366439910567999020296198382073810884134222577581293279022527056704747177737046677729033313983815978920818972597513564279752182160146927776753578545386923732693619450875257122819758809417674268285460514221018168757779320364095107718782090324874985755622283160883418623750187565525139057169029975608704785708028868198020567892473096283229673796055028217779372132932245535291748951320527402025895314808753860946291224343743666449730090563631614336160770281117355380638664648806219996574068952977113673608753052745772566048242100140654574206816838293783908481365947710977474344536566057765992347832496464890831348843897686816480235861846932339331193559205890347782561250262290949378822237821361390683106390205103078192323248665157011046543097011461795527120634284428998791171125510397709105300181235237660626604117186868474106114378983831715254377184047860654903567936148497889529686779952931882224790510749927643390973616591509596538771735692840559460419775065698724017884599489228492856856242127030052246543883271911700198315090076336008662485339451606000706287230523308655979315281160030945897513751112318199893748828017172162214728198129830073742434754557676899275670714525288402705276091938615495278400562829772746845296912092557767237328925487258234645844645824258835636733511731013934274651058710902564165371594605161327762494043626722034469242597560726541824975004766149798744018499485624101539786985747059626190541711705227950811952598946601469889412798583562246230237065776125312865517825025171646647417175789296352878545119458574568012059983411541367397715489367702097525633858644118977563584028886364752179847187551520515204904604979095491501314133205599351823035427471680468205190451268536817780498193837095656275692462683096784961383158907995417251709418499247416627620235709491921828881399720617149184816976240450852638503852807774432741588199422208450357702263672807115663035095987977137396273475224940231600188740169294643588194482102142372447836747576202613444132893831070514579631432699819956064426413875498299268337769394364414290104851718559527116211893226662247642538268719974142623927744465650652542426622100749276938639965020630651650409461800203152259442474926224608213526580410974658146990762599242213498896812441663377095943940496015308668332806093313701430497139248377905538499532007904584638416367343357881949624596748704697697002911267024389307726564019868575546929526058753267908124289711806242520564146161224211546888181443572325358840727758492288392220066354001056812086063624677246063156688822584582902209833189045319671797513845938076041277308046089728335002855017517991741371394092314490753430327213064587176945218021319898892425122075402453701654456792919226437040408807682407637938563488351229417078148015767591508521030199835808626216678948359740923326909728965623528775163583799289958473546615423043792245456402222569713182429419355571783565069773780392611819733754040021802409726598871513319911547141216135768118802074474879218114929735746986318717994603772909618150780833634559258400009454052867616723144967252538706402595438075183471177015372744059060535340466965321141881090071994709499894055481179255535267093760669625396095320816829117843675811066956812327468012695453163222385373951147933590899534752226293926784292014168997526307028514143927735795195647559925432987375361329762913857578604621041191778430282836411121140461889599934522594377569035253451952079951732228186223269165517584308450173143276362545795730717765462108651168753973767444015967128365257760792728122299866591214690889938557180968922486203154061936181423188742568885115551904814774250869485866460178031205531758811808024768551700888831729980603981847750662804174660915491690853156514169341236957729493406346309664753360844830094674470348695722029914120763258279898476240865311732180185598451530599151356805647350679434166801920140391942572930932005670652156792451419132534879036888039634657927299744788925181390042823324358600823228036441559364086458470261519217830331383246760754339755637099950138957449262225051601860542480906703473958401160528372233453111534859261353103603953264472077048376852102960230494652041242144446002752037893331064595599154118937229736060382512312132237667541488528565546203613103245998865710215614156804906184682542822265565248297728839828874119249446211331394081612408727355415770977979420728131275089013514026723474996873266673903968428778356415397103627375848453353187027994012319852167940114346439708092102937446416143441639047740619516745673598357794562182001874917791807120179607383994268414133829866219566228750064725870497837283409353695225144157400328203798508332073560446376838488113826323515551771214192937042758879461004093675635166914016082590102995370915979434073067731250118009412267061663049682499948909085329352320533917877489775779517034576497369984243699185509910250864444599720753718936255089759695111690109909135194944941130603719992153996493224761489576632196516604322136919263219692675524049291902657833253120195702164261263376459848838391774685274945611085672992390168499861764107432448786679072406595507279981113509640728338773219906547899958531464234767025196337860289331511441902027607958330392113315873819375691492432073441232351576728028491114110604165271284113849209213011811851095605546916921285136845450361954497750038589999270161478516931182768522807469554936416475606175461099389162447178477517403751900853250420191306203529771235835008451968045749517032876050626051479373889348901818017604044375153099579692475092855811591842758215093232350536802216600074315805119407594713710811269340109209493540199391917328804527642756331015659861782233874141333308110597943962913418853762149658837106721059658599961373080250712032611998804448619932980886275839639184575487363874364140812927315150222250174994867941612378188841179009769015821036708195568049113564392903878937389663983356151699905938095155646214375169810486443299037294415447953052037899074186014462219778105034113672556576069717541799282828108712631000840120874546451268835531455116352475581294221760484728214850573643642607911536452372081061767749451062637168623145620073590118829090993046594386660262951968489448757315704880967366059142910914130485465440801846599410573184782752855565566876886461940974054562661113366275298635956819210839156293302515787250988727013028759628742494519276682637243742002535047819940844808430938629614740684274269884784229635214067547262203130085787691995135309841850251213261566895072324153808963352276948777033214310716470522173833898140061442542470793390585600873199530401372765213411083751653467840457627649215981598812757992811446042728428661988525044012655859034083845247250367270850259722817171571451595003544520046733950614235082032751901532329640524562093724389429498946321276406384614988893336878722545686599135536656900649101820624836716880854210372987102609723832944552686660030811922657288543515084501513640003569181039443136093035376140524707350615176636603346355542182747070823593651511348772176137384120495091500219476780162257736051284708707887600947933833921083646136742798625885095834869590464650736950674522529964157628654074324815117005118552633633871116423222702204232295163137047139831726160248814194784653215672304078136681892511625005549968766037533981169281362111131274605903417921576812702625076703035958061475232349444109876850646580388396188565548128875570419068874368013700535613706466797063831354446914704468985015841655872822000450238483437052818397562686913654571571471424274415137261710104032078811224765582620504555538448728485042238762661041647824297384918554770438111035951867038702593309640127669055714696218027170095166490198685423676915866831944845088197548671688505329343867591836480855118087809625077999527266512450845763224908007215746700526910246357485155560953148915668592059783098646720020186469954692883236730916357480047035330536038782906013143371267734266041774955719008651174807403948091877058747132411318155167771031053233053639704299038515143665622600868860594246047199158029421369593819730949526649467231376657298266997147522516304915714835314194928104969822585725253571306522838873059777856319539281739589278649615906451384083630297653725983060706672217064570761398084041358289776298395592907860790616906593898095038798651097682096618666258849056018323655368710851378937008571598810593707174554060536565096616822497644153074060478068875680669914349317882328109059815437163626077548457924801341213490422461599523706170681374387926259922628885774392129473092497520700192559934623079164874681201823775581190166625146545798733313111802797373938074398592494000195240780401007655658732629283927942403050788627240834516046323070618569955424592193274203998187032129622827923586636544889743010346624057950600083139850222259569051685444108776021112876939526855202685719080476170286669088476549243202756443613930618954301365433523412508421462426493009735933594083077269487453399055496839075805700263958226546546062377786155207547220664545087836656676605302262129098273315940382303027338517298702163186116919444481207750929554735839391537705018567047878212809816397599582378406814068348875257938287569115518578893092466664372496871538902907264634784639523753322049896189695370775222283639880140487356385591982274504474547497342170922780926088057095066411343245306123137585627132601083798075378667112821510018679184921667359157636598232173568839310703658877608324552207339565088058307128581650366894872349453516581306030754947945951011984528383841090295022739818214463441700181563856944297063237455373950279069291495678870150134623123203920273236264805951397392356354588942977360347512005001061195377738915910472356471588489542823682379655362675700221272938764775649330627180997884667373242645075844429775540740313986563420175666063058946483995310000971431174871746558249906441481445716447503344827374347435261072774054651476599282389235948150610510957947524819095511881280118155824879223712387605752401501875022160826220036251487715838948899367144391633924131578275623037241781570678821562354372460256655880742907272626898109314565177199172817720116047700536323686426854605585324815091432344641315411003895448449966456860911179851616520739641414760153722344132054949375950403814426608976744595072420358355185283352962699172304164056722146472413903454960440309619524576692210002099265684482630209071568698613340838942664082009488993723036853293001765771623447068702809791449666907963041153190371948229532245024432915545815344338136347640202468339764826855337629056140673680235784225942943067680956547716865520809386854912614109920598416056932742342484386658764140857956446251105573416297917339863696049258372257836395281330764362433456851358688140240376401065835697384206780676727996959675087293396137606028708995768408942523246930177149599288209409978314956628884728192156875553768438109587936693170920500280002757242470967032918775988570654762454765025547188316217897102993525568550536065245285873331276431696551494232409862340786841632737513327077709288480067356677322850189495902125131094958556225912524164306133991578771638146552686986420142430287286082180836814786254271199641471543201944397499556843772538351582569489156357098423920355796000886747520764589859086617098955658960202235951850981038501902932713168586583504610321106654965426504138354191803156890858990479818514028330126737261369332886800695422090289981280862216463782709975294166025564906234729977721711248573143470875142126349780980472759757601998391072268554614092677684624434461414382971144159747688206440475620684500026757881860439194359128443066557252176827391122330478134360986612895880802370098219209169406986124366658895881854232172766398060018148909328549510818020046858159883069522548600359610295770483187897606219258819105042570428837687033074138240182789423825401257093988456280215933821543436398686461850852382261083804972769810959782172124346357123621426760768381663658405305206759124437843028872977885191683723338574959602422251895163809914882919961076037532882353443502180840615994649687200677078005960145390728256519619931073967167949875218841990834159980158223815301373143459645331796684649449983369337402958033553610614408350631853568334477722413170889632715821904861653031277055137339744999943147631392396136739424987403472726896275725022336344616075215857139781468495392807840539200991681526371044977401962236675425980654535064379304966670088973357605677758835734188495868642454004562986405629252889963763556934009144363069672391310925634505417548954055731172397917203748844185721244358537427764437565515993248625915791986123085597334884694345893586047711155916017324690162826514227728794387199871257588007592317243877657090099863610518802609821807324718943924265592844583422176815454814304490910699427763486542082116395861891322595030253472239227667859013450145368516893571603605791703435839830942865399419759503576300280524950658633561498642623510700530002847459053254930762977291661133676185020350809335590598773083329780137204535098576568073246912404529645028815488997701726733128348945644405995015501933140030177458446675714262678072630172973265178601446167682012647071946244331226735555420012698621399396799176559766130342950586145550648878685039013682128653576692638332328877206952747805403132006386364823180334813570861020910712893391853931341344562838369232340296700933056008391971301429815948218593279474415880619823467327790280282038778357641945440815307284244627745079056600405240106226386710541634601555589098362810384492324086799721600314749773817724779479924759649195279309434484353116714506722154441168034186244990615492874393000733943687236992897803355129039524868675915195837178150147285541879912618033615964673812668504050761156255257726850525984852913307967276498485530854904724744458309716440745603485179085459266751132015417077380615303618275023259523462246354777299155363425400645274770753241374924286210658555769220309937471108239629462461899250266791191382135753553539504333190069360029338853229812282677889872734718394406242197688348859376420473004899362858521851253236851873051713689611926669417728594778264302942709866202913000877604145738038781692084688574242529865531009647878032965347127338762319850145840444351693289057029539969152544745551056026615464823811750682815967021574110719678710102832876975011355942484625281775562894802388158911387901907946252172705959303682841775087653122569397964676625870555595979220220443202043734491797664274168708848295320731069460212083645774245585016052026211373000041336503603569992720467294228566544412426869509749467264195448607576968979210254486279973928101330402616302291131069839288055195256818337037039301042090503663985179256404723653598199720581337074619529599379023180548134551949360432170690970942619949495154210726306205610800557803208951737219390857842183423095158700649948223589312034334280833722249282762344563231900532109966361958065604809142270756405653139072284826241491402213534400234120206308098840383174484391373885439403415662249984293292374918534185179300564404523438944428965623433747182925711644680519459665853496313912158474779432157125852306483510167967178402278415661653434058534249490987222153065031448410766653451447799857147869134739777977326616144913525940608650119817020749186578505042159578560746122096826326832636276697702127560768069123138165478541527462710335377752138150069587928394483830639317848742916858566670178044881538665036287073385252867653602567431274721596031996718732244205067722417563674398849386031728331758809016581761857807116363036988091942848856211715767477600670831214140173161739029873739712310905875449171431214377923499301413068097741153228381187234690619996762859738475610438407718858883084979561781092506895636365225734890249198988656181076154498432674317832380502570602432744337475594427014254460310059250504277091035989893920563947978847211644431214050460268508756670343854983089143225601850618521721435385708742245854428345266995712222806354035673292011744263586774177550480933630653283338967055937330643872367779304576504259206518054619988381550221087203223378805206037913889572782300597955546183015631283527580859375466364702919692685187468776421636627403771345885674661736135541833822259094139270235245336876652084120416776806083423450304369509091614250372968800127008466447961547150949259305822685688384714562782051971464029112914474886266994490522577526019585167985010659699198349526466225752831665724542455216748479516355158568775324457880456094392834283597785490879620663809651093626586981611790928136269742655724017328212110775551973811266847037168475171574838841324090148954825518796092060346070210019857440227815745106037835739604083068151576342009640919556827405251906481749124778744385872559206742291138914554474408914611531484252248563126983416084945601828374252761156230130553735716596584743792663957042825263106804909897595355314165679680750541564857150822293126606942193263870629762937531651714300847672004411869361206564598270206696111588868887805530146872715821408011258695681898090791702482582919824884706519656866149714979292367694606815828178177556534580881185012955785206002138176795931926237494742921565191381633224931115027246239600583833655009510479131545723583295809421194656283787252137036407811960446298380523878793883115472888144040040011753038106280189233131003156688512971237431553685756295692417457509029516157430756498168596790484904911697171478351033948226125591977675675288232644852029371563158082962860394789873365666531793312827095516466617774676632725917731916694195736048077101836312498730073836844360538267310675610325480548352092644728725339240713495324608072186283750874362772759525405535109164527335427798894581951533801935946230864715385536841840278129820633793996467008553492589448666932550192453734498249595931062920357099314067319865046445019919061929561137997834329873614493894815822861619079474059067613198708326006716713439390123713089053268618209343126634794993730336607626764247692867155978531491243374358463382881113111695966687052727033635337267693367202304106532063805999016147680815232363212228107603045898154287160025940361393339854921425360089154345163311620430179948204760709045187758296932720128639802108163514056755324640893425675899023008611424750380307873341194134747084995358872610892275267882191544447660230446577990100915368126631508644873972462968089206559501817495447297967407501094365916257865277881393136737291480107449815040294367610297131756469915874022961235779647971586907100372709103722678912530978645329442473113138479943323136230731125753079251825702726575975473422975166093019899025841734313739518357674961052775278179155782895611829732735071101187298450458771886585868469794389270901238578597624604210338869206519429395310079146891634411261294359253322761359854942066786418047167485067345576615475152984966589574763799982793807833225855455164900256259956449373762179486028546540490954819285998850866809830667689540216653372224025837540807258472856878966250600355320352151501456516855174387354421659904527140719667069908976257956333121550967459921343156378832898661060681725915113948234694326516594734535288647786814664697227373447980587579548091250878257194582842580054771416612380150965959012228823423152046280183375947049005801164001039850813331887823498861383690435156409564389972356829423025564773498297314745648733803610146980058928359977465739766288958581866365990920599876311520680381358729920410854594875882339359665314115863217801362569121799493026584633648714341540235027531775683563902118586445553495077849948756475825539267122150577688368911678077008020874615607004720596072461977935267203663351231157292232028691421628613005650433422257405486203362314142694811475391283035289857574461314011483831844866702349375488602909612453418624669524008472356160378528351482497613534375125100467973408282727711324037248827256918569974502673558733863583334832445929728068218199576369644789058156165676639997861457483876228887609955851141105177109387029294917801116696351319970032878029312930094375413160005755549896136396737756380143936482299410949473597649631664395156646781503434032476090519461424607625087385707803873250949226189457240758765332688919586025978383350597198662919754007110918142936850683926012429483879955400051531645682696053031006345396521622532467606085314968608766357472065914688874402686272818607042214848706906264335660251630237212473497819290216924783171600400004606164889150729023219322602320830102843529721538649741377049504404467113383885013634344193107470109604860042976363417201350764713619567741355928446957760976717037919711957689610216744835421534702104972724914570898052669531983880321863785010787214910175885741512390304111683470869425134461524104247752544588255523396687505630076810493753494713250631616137378863204392425999361272505413166363513165216539779426824098998925665879010060549893843982347297790472954481084233771709565753550811438418954622158698221600359481534100388782258130886089938534066372208592333774519445134669151922493740685221924805519250749090104073293024340994004123552856058566356310927124552051445419123932762003213645097354507422462413283785158670151669376346002015639718382114626832934761501321156801275719067557776735650017841483138942922184521504419843932680136828776896604838947101392698932814234294546801085620132499148265743979457606535311442126517043555361021007407321565375235322891182110463375132680403281298972465020680513672767758002631154154220854582955709434076588015726345587047312989503331374601866422284845631481816082319579402889601528066334888931216878892791907287990608263077260991481572309862404490689918596757312629935258844100309666991149943612156932758503498392357633193118239526089353338197286445959761228836426497272860822018380253265014354495515220216797116842894919622235180261371079876238060723936778764093526381417760797210150417082391763972167475929816846940185483016709103076448373211799991344145764378651495887558746580224729460528541057445860782694895637354016782358533643766138512003894245308521182315779435009673191360915080644771555448417289283735058320357171222720984040354640909905839003533781941416606206974255690230844900935777880429577390249546663772268119635146713692954922162975516749146021528042524983271833842191872200881343794722047869958629652660331397707843672298364694085565193488591465256340059123180339073202985856327910994845126303318635347780131939941816951513183975711880022971165469110251176260250082897386625875594031527570998425621132043230949626429917207459200559799829062555154152772472769365328434367557621074148267785642269195120442274175797726962090566904234989043751270171611140553180391349743774529271693956366875372579443790429147726377429429406936259088820206031214507658047188333493102743749963542251877906052358444185619525796341226780442056856558001464126114628401313615045782358602869652790994904102734554100168740120986789233540030770193595906296906004099156136893829339965629902496107548365887815397832841037344069639758111461227474035000043047965076061138868999241887457621176345103155262363897716565993926709402158304718811366993291641732628230590339054714265563366104804598812088974793248116573882559303628647326583477871480939505245627413699965897794095589388601960181766428239436820811276419815361213052471714623952347313895905958798802616602749099704551188777585242199071223289666709751734993441224253063991109647627162155579014986982515435228473049171788373149683998732704523856704005516141027303200168375152078070951140853501151347431921303149560606984502282646531586428262735429695394768246808004561600138578580785815783760849720763673272306187358862014202410760896449850872136479313512878305194386660485455390142572457710754792298338554920189624991367866436180446111842429664214855681685964150104936714369300408567149595579235222442483152053312513851311719671969830018591996252680910804571396267980637449275893461347229910759990303906818396888999479900125932630692251636965898401152043065655904229849520009900753592648250846224407910378010991056172870526708255209745168988699327081461290077065120954686011930431387296332552358668455973576335612576178408536232638488912601981804901206377130546423054566041869670024326721725061388590662505389074761966143958060188537719597401883975676622458150149565192562373137861749520853407975158379218341698094706104861460891770338217705401890514324856457989296371883715132693049108679843555896199451223817454514537915041907302400801319069875653567740166201980047059367866079047501138715462368668887215416182933112798053382193353416289884802065997480317067174468937959007624626494416339097189674112966065305182204433780722572068352169104162324811229889774477925241973685226227021501207416946774375490902844958864517530792924285018451247606509161589000640136115248623186455809660232823328284858937635250472658515344052634748496503447728572733781904418047913882611100014008215723510142307951043829127820649011896044580992610224033694964905986992240080896995266780246535673872395409398198685044066400822654282767497172722521963096163149823755849427584522071850383702332090078139366869087219772757441571226512061823687375308079665809007241066212147065313104617354638071245133716055753782436945529225781056403841130998218606148363051825456733005959768071995107824052914428012581387271064274664983795212791768861549030290592115241654518195098020910984409579418509817348417722307298953217715524022642014717845790301778743377729178214882160064409722658706058292615950456767738238407167558443679343556146702818917022698094318447452810308512710787645819430176575693355234817885413454262980325361401467388337931507122793234962082449342066522778408221919394262851166334409720918154491647984108764785917011668491337464210937395215331566210141196123993125581258521056268275828803469361692069310697490789576221777919734475517021872331433495623330007880580502675264545330967418251399841149917118002289562046024010043459543508021566396500439361626199328586954089921881761268323318316867068982995567853878749704228999826947814695379768817204925208581365865027423896549903974055308103855360515303572720191334166546891928545567677692772143591577955181273561824483753762331380629210915447909454978098524919734089370596844524191797505347004725643645234809426036154419579254565542966943275369420720030148687523980090153677568351093883897153276996003321701301354798985933135448828035516771254996839067005708543151842368050631919806941371188113148780715343419606641876574176539510673130595701030033017424590263537286742000794166732011640758160112591335015207200304452732387588941301827999428182640026185435483843051072483260555155436398908542581061799612958734542167470867036539415159232087742521208200521476118399399458422980770781556767678863798189168418629599871229594846323807739764288221813198764619375462739863181722606403592062074834344412677359058823872822841496344428293544154847065370399954936659619488978383792992825833431598582674165782673120161888012534013471165617444747442195943363002827945745829428600832721371730833541541572294730932562057989867925575481868249441997093309573201552304062764628416055057011025813540145320676396000014711393513009987492486970814187364393593973914749214038435286840795098320732502392720089160963702576339853725009664654867270278869283786464255801070273951135926373958024522534704268885347731848058268335645851019843806977100834576729545531347054844676751811594202095396545644538206730752620620746130752222930855116538592116196866434622873289700604372171920314685591957115814094134847704831373214238586283323423171499646756395624811846366061651501493475905184580403279059446032001283292608339894891412085246306063440754339725185115413826866552893624381732721285096902669592526333409668499838428602389799147917197138379207073438225928684762454878435042910377964552268379908708957165069255178547557864906819208354583693355317012818444649786624291527956651673639663362549978481485408687951900523810358636692648481263175165144078720065087140463456265670613679598494632415943190132725855530638988977182440989094593465821408543162544053858127865770848185235319084120339071284282492298940268950502282559846905468528378210636856052745461366265384206409513239965108220648335713135431511842024858780627239733292091559227792431654731237761604737518052157073128101253593955625839883676923157869087492951148891145299189054574323235083968541425212041022892688464398133575276101253321204209164759611229044542901249706087361891453092140836178870433957178749370638198307630054572700589270490346229113239771348720921664783708179808537711445694053493348806262915048528934597823274610004495377409655414476380911070435038266156701569592384811939560310003564725381765385628171247978505371388330432256655120569470735323880289773303363647263167127163197051299524845175505178127107057051097536047788597932176528693667872199679330930391303870134910111906353037708157218813859422906204058394703114528503666986083990562565297159455347068159523858198125196023771848074525563616651413410488208636823613898638116624423885605369277198245547075789983082952600030386542874888986729051051144592357108833062227339835933538870459730571503314223554944776042818243644670543316346111197976430912135911566719448335275179456612285842156917748763715585910280065327265426569917328726819219883894267163679214690731582211196189574084094960539576519014946474113740687709204168417216218940921874875393226970269444810194180101764309078502110819148817288574123557622936868296215669437305027902382122094681418135629380280480554387848698999514951308925504639672938456400171231194386713196180013685760520136650307587039062004450797462210949710171588729722498855109446822069798602849560612734355883483285347224253178119436405720557599735141116077781720530975633039692757308815605916416744719163352213657771805914471019819900111772197689197806927431005506661321313878183209742469661726420397326574480488755304464892792014537175650078445990559867250346479565882445355056957245510694069960908765693875797451838960279040680333158933597924257991603733496008930428835454859536861636369339441386661367724700256343108137283366678434103376271619407157811860580544664711179267657703058520792865851791256675318446023905512394376369863064058678606591438328638802354645964594565515725167310068682524964406906101211361936690853383433168159985816801033081306150775200218054347114069015009315240513127126648121159491704491618865701809890705099250055007570308193259903421767936430125719587831375279151759366199763670194823055495053674790154447240029685378359529348119753553120780978718815058767857297245442372780207266862277773301069808843087503940737175907292492590039093389280222319769540732484541809781864759389934214192207805353322345110400128868118296340742617353944093699091982938985270132216942220782789382223399767425948261487818971651068984193963159607944774813881023020887084016565035399722556980640749600967283760366279669203231256488129032231478319487700758424126300635695030724316917661166625263305975767151033581321263312010918127422493056151861726595519624621618811216526399440324312731918230921395098475928839448402227627131077959373088483553997667403420711951420676865616089162463147922919232816966139446354976636780964255375290581089228648210366012874030753684552838172910944804646687251644169859760318514991409917810712563094514304534143470124204072631453078697174053254418710066816851216972270669354089615697345987241522766193319772082487904945880322566820020352421728155007122065025867515511708081802043384074724478256879311168604642649806325904743171071307169474727944334853095323276376157358708253686061724660922585372475145923305642815755093310998556544989402683222663505897126605683215583888654214293519946147221304508005277868239637593637381902020942653359816387987134196216630173006293594656845653644274265083773518779749897272746049538149855763300373809740278877906877269249121897538138143510644999949063594377196446444932160815576732497325508163170650852532323005754105897155277078642461625052105060178746853613775573759963720839942113108130849037533427897868108544934027612874294146132642354920697513278661238659864260472566286028224618886565876341397472909059275628249787740928814951680583751637040149031025786020645473060795025923180279141264923773512480802116653183267243530667383889650289204750848805572552220800029253380299208036056361006406689589597461927120178742483628066584256845095598714156463413030603041556681105720309326018574941593166067235916654723272894691248866175663310257715762434704703784557571625975780890618007018980059142849522205769659638716223212835039000453268678761753951818032728660537891975890489966665195878770834276134563684239658937294449324743407105156714752590977927058108532410967104803965586278273184623866890945322936722558183948950806457756284144498448936013540465699019013664652743464800628356423325355660504982641442705976055161882069298642303761962656354702756354442871744298932952412605201864242158705973988445974965807037015748220032672178891465341729784645265657149694260606216819957031599717178875794733801797741585080931548746978806414393509439210808980686585726693456235931785988794172989026659943686004759834182932907883918164651778158498622273758042862406445839307880930251146810579400612840327362575854185275878693376522956596076300823200543783248815529972639192727766746384929932138469977764481232350423957245260389435869715708030309164238801325906112695012062387852040995009116679432663685180159262182759611134262967741538272232171299064868377816342903369367570711288796826633669053593868647451040690922007410595205664836110922036863886325317908444660702848630164551304304929831544564740140224241009056219328007712288038070314391360053724868270754994860209944957139296610246594378198637392869522121177547730994644807993383811318523808538960443265117834756800605844108627064397037262420441539486844391922098333509203690510472347706644141200949221972375811404473198700121719701462487173638082904197570927645688281881594200807374333373008844891626150578244884618372946673926302927232746448690583938286493661445840856115274946611290896445173912623375743417512918450252007413218927461801914135729097864464338201135487051199605514701043701059714389016989035537693086787676619145275918739781038712166775909926155832552749305538411349957927940800763814585835406276773996956163860661333706136070037711658500595394095637158676531620435255551610321524220443035124307949374931001113894807546127899885779367011256059475536379417895967526266614065442891317733249320801205453776170694551145274053393068468269019709732718868603951133919057489235075725497092809107172493548387911449301579345511574031031694423159302969433551262311554759102212476677553389699806547826455361414896380113439450734771009105738209075017831403704522643922486241258964732365860904530199623378507993616044993692468326974342867782174067729372863711321469597378819027371688098007181298420290976471645541579695929145255594016742289169060625747431378023756325773158246839657418348492894913583727433907416730813299315685120642662660810571403331943523154110628644175977520828718902553751566109012118298992699495623164510484706843199443980828989436937703772230294806605927536938224159519460048993851406392821564505249288002363307198877588203153024084079214853407289545555210078020741176249301772744494679790887327629178930213666027146473004531800101840515236362368433438347812182949767296935136363903984649894239886093552533186895164984444316183240234809342619038460667936768970608211989282497099975189758446967634960799926272017714257796704419246045990239486376627030725169766255723742536502580671036874573205646072801411209234939801509181831296866675226348234367027370552366510565367804080647715116963220652565998890269537683675925216996388287037283785972340352048991070418724870992381259217588172963853087088144091896164671076046153879862505595519870690843568248931022039681520787814879016543267189054107878558320957038942888516265471453334106439751865910164680203401302793413229258303306308190123384821624566209100963099541531746178634006269354034444569181170215810633994916957397843171923578232807458350999556176845501290641735663141904655856492111312383676453117499789730444978767134257620036630018505666481408770474823979578197900710674356020781164236612012631627951595412722100532537887964345990806453296004075605673270813331627951949471486904010227856647146603743798026386152315088974130655578349252894278657604971746736384450747532556585094289269558678361231857180782309030643097275780382767762445962949265859212074533584146442019718451800890253286131674932391076330582285796837613742727027369227485055480424586709361546600404452232381279655015616535975625446233018123883755666552761494235494098361713982618128809374854824963318391666870340453361968975421614167964859750046055445869197032610163545669748138412761752549220986360674887219623772006652680220490571274343860790867078181641221760155004801424070880391425271790712136432798305067286619156986480564644485161233014608930662642872923531568805610019436717132142886701439686879747263658156008177149083757172413527470576284835878365468547695774668887580574700144080934853738696318697588865844599173461413172264850926083202285202037553564317928932262394543315749927402028493269897549273008681705607199714524983335845762446524798747648592806863170898129819605931578719578787245397584531453130565801754763255881861814411367272294377832866085893137992685132981348331325416082472554899442141494190831701162499263359932900113256860233541698579135064628659332150076302721763260599213954378681753004639674243493307898115641906212252492307057725870002191048706277864631964992669061179537035282003169879838910372633040079255755966885964084731201000448920703124102826653168058055421143445698881919287730124325008826136248972890261286283169120963098435156219220340919564754994621756280688111458217383283246611756469609712919136382741485407051885992891530359761925960708120374966745683930859657971710789948621987994241940796122017242900564081136333943773849474792849779351261364302563635689771173326507784279633427815057733373783138615948315180881124025586039757500355637620905629456872433151461686625088307203848118396835938363760787295305279919767050738720811338130125382519828812014298491510581678440411803650841538449125700984161688646808599425275913484851047396384636436608381953961942590869108041654438474558387171798366263973025709518881530114531061144884855014765457732096143239678055899710399502784662982479981117170649137252177436639065507508193262946699836923945796851324348009780669166503772942465968490895979725115241518171462024293464508123175158721486939424853985806601493040487485304048701188619187742403470942684687811766810905949731012822958410289133727243131987931449846898313592928519463234060133781004282030718573435449039206269014678684865717873487155926791616656245771475687098240916253521562598623787904134231418896199079099179874756244497919150072927220483998589609203332299879482512676291658331469860787601682980608683859108080097356889123285301072116335613342167748512418947345769152938897789737567742138989588825031918179087582385960781600169805696847067704379403517535014519079795890353024767411126798940360734896465071939517966378814822819491267125693296872509859919924003058765520965949558413396144750429666088844535456263674360612161537837363183512109683429314611792134263615838918428776594715070838939838263771806434396176706089850750392231225678458341485521718819133190692219674925204497461816296343874492452914127883188316233287937868977854729149781001493969133600053585859405838320167539306976138075506063865704963807607796731412769233240373456070097208631082698247943675783151058983880664386101825957911044027418248142705742064700571596040538556394999695354974195557721512980042281533917319556157092903382785183097992895408534277266221740544792037379997179586520064580240775058514384599873716339278576549934278108880936709801697100099891354542296403541032435113104984012160115314951042302244490213537106414540140926558316351851437911833530891954401539288028667148593080525736693361626576825832735239635897369795913048520230777630689329162272777729619705068281550381914289478608619158015846784351816370803356928215581174763076607710386825975313793379027810345289767242822164639287224512466880766266565364514243136077558094254050582413323247381645078587329662750067463907162994824425631775068982121746256081635724550567015331420209677508638243889275730805282250554319513993476325157051548929782912292317510293232131265648288771291691395646119408708913843683443720892845598630346987171359127943022948408613498952201445095701309918730070010140065011272619802560719017985722477254975237394001007724615265879828255998386579031805474316134280687741594057938502185056301733835140150814197332191067689141122053226837407553358151764500199250499338345373640172464986456059947632093568990709218498987771080420225523151343006611787692033858779927700751494458293717664368118745457778235027584349364505612216819732504024051918470142577369629745289932414214488222014842972806900806736382080221145727113722506649552565164057329424063650872550803730742587157249348190297196197389613837817057540334105176609988827129588859023953503820080081609289696265082062784131782329006676149045176240748914307484957367658733786107204971091567493213489427663198185753805551387653209122779205259597924651767740602147795103711781987671464297389963820920211333384960356974737456512685601962979612405870760261963823006948021965575514056849963438786558595812192051829944950125161224855505469909437461696259607609558618560086614879239489881835278498063295538965966410434526969216355574089886183599626499503184500429730436964888645098627998021721809462629010793814138962242585531137863234811799604772050053639829082921645429462427765647473083399286042184758287105038648661407330815717069367766779560073658197934686483144602481528313165882993841863248470899412797120623557493131398404550997160215820158955924955302167041978866787529840344451003499835757406070962555263973888164725246975282790764344495228697852081819603658504677732844652494021226085912565598355349385898305951726221371675569481769274892379465622416904582716034095653519490009450068850836767450009275637285837431037108179330237907441092340800264242400849132249052196921994652873321701781518109643383991794607874723849887274990470174356792314885810979393360488029610939242216976000524913675199829162401392735432418660832090574918854610898420994448759588598218230976692715888385409620557730557604838874654648946496122801349861413149355201314642952549619975458404111053709884274208357489950778890231639879773328436072572038499748616201267004225267582357474319365820301540356799014851723654888898687158505345593800112693688838830711147093649880770103584783306105809593438233992110336964434073876064976435844659439980164900112655260351232504596170409318829082556559288582034588056262712397458709933640121337976360783953512888771357325794487765273997917699283687716455436510660738411094171174861102413570840267722022210104468993098834566976012511146856321877347372822900543145097891506953723477985803025359228844794274027383806749959656008647773045012016866865099709338230989464885306373141128649310224090789611592845196953635515718629672551362593482684774990881362161051223937911826061455314790258010461849054310061618657778246734642139793741130632952596561377585038036516317053703565860746077657080319507228568457622120496927690855148863241352711333312850813011151405692327138032171634799900191821054430783851190429214850787749493054326462310808828458271124719337288714309139165951372950054179906759703715096277628970927711828116164696422434359692273499478311738549358221681981528801336610575375244220328754554363155607732855398355441890401360829852118633613090421958940897237725913191236219462940007484615640773988578386658412339582509556577537634359002719394373421120894057548487286040769946408674635744969846530555385755609984367869335860607246141228789681955539033864790364681054637646630718939554419711195539965277284189609867571188102943590847626031971128260158442240279109623578409875192990553914200511654964511029767046825971188262912564225132661304497239244998641231892041618140085247297271711280593478890074372728940306036059754812342090068245044020696190013420532914169394111275160372889948367806751310774156961199890856726355927184625093034737531206029509716692212039432460888086011520095393893860475941526196257401739005586179705399523493244320128631313550548506132737143079500184715870100465420718902184088700278815114952316232753273224471987607267770760388557112124992691587308230842959127822460269555745449943898447446951708901817918681884375609136128247246880551082512984747953050626758498832730963075028260844027399729596691382239573055189229555637787480799794374093537908811578293258038272644194864870554555706253641939437177278029507854881457368949361319980624095949852406994181967337334404376958903153999200137007087462986133308319050578533633605742782548846895576217211829939482238880879408158283096871983599911622001342007084539320720358843530023969550858818906860519056799434699338696793871649045870482552063747050744773298014705673963337877489097289229527086708543651274967941796901208660285667736810102265835288589085573716725015552211944771193451494172902255912069712290809661025203364980906597844587651334587542271657371896748050786674214859943817670123423638143033923041926047080700785541542963471489938814612365096438756690227175406296395737442812429627743616908176773345901457723895728664031285661618585785404876841307969364906147573615093005452516608190574430257174524527805663622213668566954154625072805901061873509060486814749606964714987895091404720465549516717905493124777147312438125354352625727577567222616586723868284580706797737904118617462941426785408307390731300334790278958239186224494925386091177799731354848311208284249344003079146806249314505672100053874108822115079023228081916569390126308328260180438142472660741318793951459868689582806686884440528514466554137803897351265668047120464359730333298932342948532864719031437080136813955452221127696118844594060316789478336821509391482142280126583187584779000048088490893613086085994030591312217674070744001105971927345437651499717619380126889558732426554085781720699676418255140900697107218708537537358410631532820106215784028523618496992544036317819586869587569984106223524762281272970421503194595453190649341079293055574887630851441844818039915995820524518470587553566646596597029209858222925032080302353070295193260269669290851810356894883657691818083386549429982265699866071260090115781750797010426918439885237801649244597309984064980700953308825400312758818367706721147174479255528144517993048175540397971444959691495421607757651777729884459955756912358927214635812236027995775531157203137583965368721423692625136890811534059450569322533742923715124867262591508535790798590563970879459026739297202771712762168470398746978518052623041227194681143302778308099641600289674328526867190911670509688455975180970034962658903939519522639551024446599739968592456619984031132450733338366998874140781913868674657999800486444888735366362721630250796880531476385862652084997555642197017794468104575498103995381342416055347051561586913467923883743663989353892044593645311432948533612781859332583218283270063985340713262641637023193465809838708365420031935650555544781742871182680795705091994140741861510363974855287360675995177236039521886752615527397444513809759983590560791304975292263048605843337374133700219357349884712823879735958626618365546280174048535706149714338510613682344295209154480669531902005568941787334254881464493341738950904448962582646009230938248604277023798981393756892638683363421389777640304529625173535273507705952591267820041810011147902809930952896794766878123759781577548749102945958958430770140838784954678553224862843962684759100263923139219748280858328351150203027882706796952329318273243492900123749531143329967861289806893215211748901090123466632356192817196700962299797646874240728238823473855290145522908423321194391539839487249803987247025792933049623340620938001861717007699812398015217577052493888697051967570607655558233916975031326518402691077154502888531541765181889050141647478962580621024555092098421973660071320769428504102712508328211820013911174571100640053476963751032415859412941725757412365142838343419091346473217885001006052902137177578519943389070391236564965409441723634360203281926694146592125659777844299453931156113884298497046378052735790325952626431898687464485322705930678984797269666295448136460901779676647536316577933379222277302080747351539201504397796954352954818485276503951364064537598447739741893294552142246843934416140388736230109150109930594397456694454411222768533015924678693466226008584614831432380851924562660197168622545406681094099821946727085062211594398532556161116279014174822528444090410506620186498081882975476186295027815876090299668285159191635247917883495740636938448114038549991612986748080271297327943149965158619874192106315391784805983328672868751689532439236983228701463921776976444346026051129569412564752345489846298351410083812623987977301542309449691749409848631658970144665800356122640084499330762100508990691479688568039067817601038827478873897212500783375356546572152708404720810057613647038283922632299259616543809181795742030337876172904204851942566427582153290558478024111016943076397502231018015391038874629755872312375514972875221887941996904402795664623026864506268233284679052871027403038731064855712950272109075831151421194666530091387356083330904845005401785257447890544510275367269508872337621867629300763787949746982216433904713422260674639257254985430778922517426124198544185455645207622770506149332980446216934498381765122854902934301514972819646271962134232439376074692548302478511969567968177688643316272456687854616277846847415880682676902903540378892627052783590187170548223354086365964978020110102375726811557825441762692329056152041177359269575065421240533409886826775677582638359908922361326508219863700183919846136033184600336464187770568844986813238060267194267386034567387880864630432294954651322193161888042705690529618892732848142671821461687777698087511414870974728946030892712278654121193881694413417103973524178833608740965807691239986929766778938971777209165113773755198669956791473227259245817798428421604508593201185622212820071185022210564151136257494370439613386619372630338428489495242840055353993833799823214031438588362938678145834429362218158005946990495140864612779016714510575562944001947208397397124512721954515229553225547609164813693013177737370261608381830274663036355810776926885902492209709641983874883812767017275979750842380192469587764780460039216679714587751207469971637252961124646820812309025553024201802277837446308674754835937133906349045873694479219030639219688610488378278450208899292273090087436199978133899925579845630387033051322435775873635279208209207324776972002935512760804714426531636807981057611938130951066549280325955073768507321992936876096069223392960502934379658990434479825091994266355783814966721373511598209247334612571957342596708251808683518532874866543959692045922483219483370017236531353802236884926609135561405873031524292662431600931830020680313521713135710202668603738800445890278095516457040774144443487333302002638022423098166327364869581107284225357213251110942517410877331603204926915975966380730144961039695335333840073762105658578367578676044143235350323832612443310081400113971195438434839911009086766922197301516492441921950701395374401241792660732797034864597164852984594343928061510574396804378842422308114616882148586819406527182226161116293129197967961426121818948338997158287584877101255723432287642642763057790535097693496203361877964617014599174231966496556188118766257814595702537766421415880563544088735007484983096406990239249602243578347265858981451376749689696274172337565564193221583590866694426695113979167671111271207290938152983396907017132129647701201959216894616481689093568080482458809404729769898159071385405147483964468773953527930483846542010356904989533852207773618887577041123136312572604196073643596763148083905995619381228418532974023609953494529113137243606926574626790297650418391529699958657331730022190865787180461414899054816131621130739389185660250573217560546744728292459248977575579339261561085885205527860625176156821634465624082713949706558196246938279898417816761269399275565139511498160841744285220493199409042670362383358124164805629582141361698148538783744768684713131955716518452897005286086849420405193839347103786132405944194358671530586729045334646438437252116815469767360708895236859642481003959946336293772478984649427605329724407405603005525838534616666592304104702021874424193043452218495118382279546424290653182476731550644690530869777344740077383259677653656569675819113024327092063313642545978083148183433932201684444797326212150574093230107327519574580569915998423082067338476847681530344401674203117460381890091717367655627631285044023686115845502113542464490943991081294581950795377644494426115804727854175657364577608466604038453061283933442485610173231057449755258675659931773828231043940467455964302879779756188216120296684945993024656488645446754047160024054409852633448280931624587416425376868089538776731513823866702351984865567366342548649419708592148454423028394854435424156405459722725871016872604428619678046599440780125159552788562597475634722074875916501399973697862717293441326871859959645721485862576861470716001396651093849285867506720177993220742587698085897306506887642526027563361248852216336681005899924994170988020959832478411206277193337743992583191343383570633253287054981836464860510004535958174076221021989751232891235815568195773427274221652355155719332853504079697734270607736780268866913939829019330194536436075023576075620998497414298213348369207316192626004495774232507420445328919840200047492491500891492027945704803606992001689049834109649023032408910727554567947477062602989945388290195587279746484090323633372982553367389684645019527692767565432814442054945573379135879954328931886782552729205276407635911716805628364057567649905555223624665035899913622319379322302201856487021363641320761918364896014150932319555700260659229480962372998382504661491030872361624723135548955393619904273390407425961734585271570827293196272899597457018629220306526121421293864298335531201516630396510046517517047797817346543683920919259091099525062519813623470031707759622109599403611741589126703004940393981408001011529233435288250638866780042279159328298274517480401541240940344709485500220902150829316175295446861296133175481964186395856238509940025124713885849978939182709051672801742482389483318902784853435648399455293619882122766105884387688476219649681426188002993593459081569493300457212974399904535357451983118748893509870070569528236829253893067117385724423272457507253249004080542098024417685958280767323540775451441376731505296377537683285175928203613437060157511691206411562083454865988881634579186514774718173808141471377667202952141049718249099082161477326676133770617237649115257184685379380605937511470332645913896253764586206400818149724854644488758316409569286094287758547098714962928839959802061591082877750878985780625367632035236706927163978558546089001950890900211523075964617431899910059222918192735390492895137319329818710158338061230459818490304182460840083186175553044711769627858512803306541683001614791123295387151404430161295983687003446731859864509232263683185267863519917151080960900003457530778630628683627356393073723022626745686005572995401631993688438048288790677797238614865793019502582998409628590181994139711040254456517470541937525033003091824619039226640239761006453605812830187882980972202752984006933287981745475572890750871165651293699810133207249431415478674168837045611157344058644161181744208198015320044635191412440534640826847770571309608429687456170130261545407469604918223546882242060262076981394173825409632793752290695973062084504771102960533665232480335736211378263775909981222964780086577138262365279739608941870417542343199728478753846115921488874490915284533618416086520864343914823548613534003603068228923142554867328206131906202298390379870307366506189486181709048674719184529071497900124582373761405340399653010294978376196913719594701261065107820600362605207291356573632939564685577732761495898034743605977838854626198284841467588729426496902045096012948111266145854501984782493835370827801620951903040442604026169890681622719646797543579935694378185198623191594973487879403260802265804737605803711542805342116702385089117879756913471584913155440745685057999083188576297911022219255358200482217855297961659714942294734030907668469504438536070230294713977260890548816299645613482129348562658137669114257643586997343962927219410160461920235786711222684413067378407209004954579113387860758207093419579193843756993684880834165877336917931044072539299664295470957040984549945422890457639404237251940192900213751212199949358790112984212206664518110821840478313025588281517602652558086479048569800839981187777076855331941573041789209792366664095736315487638506747581462530750063144562122100433622844432655066996241951451003314810753924054711998510264912283629923240303575658976824513149307756575442464516107888152003459686266300281449797193695406000254047563963302256088234606131469531930158379153415144329660241567684568313725643872524135436083875515378771670652410283468713548680290243928030988037639156735802199519656555325924060728346616049868592963825999306938657432556914295630776171863901788716220179224071749826663556831413089653035180115407601566673959319078853210811571813428158226611866799678531330011945777759632587854280375809997741221540576217312905613566819184997668853947951534318277217541095490047949994572392913377757052524296211447639858841472884142156408131009066213149009005428234630237432656198825513756758679214925365795347792681470693999654996288414014294696765074615678118001329024958958264677020206951494157955832386328926392508255035061988152494430805150395585269985474400375351702511371728863601176988486757428296209861707307284925722445200201622026557106758270876638337095636476904868521872325515823100969393757055037237003130599654588067948144903333049040131817117181638087396832704450864359687179043685122235942668795315801470726312127861911176452597394849672768446583575928347814422105339814885337945376362148775179309157879814019616154012890938204294221732182640976417238178274738152547180838946851349945770403395405580004904777489184960508776840918366782941759143550434868422273134855601677920347012483615275105797565987249603353892493290437201303137185190983872401277019347027881989270651711077791569115006770332153114786397389863072370239293450476305381078607021573860012514319065046816227932702648746076617550456847793540590376181161378518767781616120735104336102430834799039613840642057588131278352797548398912319584119936482391121712032000694814547256400665039606950405763555843085325456209984545329454600082305886175389070264265728445898043202798074962157708715331294565187893534236089579239426495473399548155270638487302706379670390010138041162447056341163451737416705470060598450807858869733922555322819970697112879128300856890769437299550046905655858699105968495887651239234724160203495277018489381422859023774601772389714900181977747631349771653361126506588490297511945493700977326062477496381102164218823770175034315493787626554996521958051153025266060684022482215108416376300407524331715804639491555326850517705249754211128391484908284343321349244175085926739666292303232286464199756512976461388568638322938950375395473623302577433980955055894844057389417651241840334141424832107219668044476028421719329213477565621058728189899423039644400422813957451222871529572916550975039419744114418679747623199997860906727210828412807406682913086486140992821474340515975882476137478916405116765212576974178965175180377020334378848794322105672405811129609706004602880619687233916277206541311970591312975246444655017717253029049190809663137075107382185250731087710639809053030931886455781529222249980637214023380013568623435344752834277003411428106903355997273587090905229980214161039711409881069029605136069413352395559049620697037370238779214771501781282176210905396722798917423503915596219700703696902192477793959616481800187125431752806248452519446052495943298188205684108286616123485806666072562992839870845201346651494027558806581716300938591916501746030854712539525044690361240243296277226130018917262839708399350520128433475154917503508107757788499098241190155768061365032974747828009816678992368766835513247501603411436808455663490412152519178083370105631881970557019611516903127172745530010723409385681193925856535611481018630637319384667574003587428234934346571537421680215874744234036537899806994738204927776644946707234482827977305568439936239600046035618683506856709945068667248068957564444771019214006369253525910198735484939846075974176867217017202493129226591931832985460117446750103476462247946398612230776613260839597398747143969784590974644445936358834138244391880202139207105292717758215328261306130726288560423426746656939997154756406171324139430969355970102259882307821894534588591240546908590255509293595725974002989861124929454906521926340381702532148590628103373529771057016716628885696207914956402240269787714911487828565290220475001889370316548205410552256024199913081560075506972689950601815941053860183947254471677460150632506881334779253586549750195837420850979944003457212994637854677966828238793607233974571280432714990781058386225919716712065903175404509302439014529002261642218699043644949211043425307069658444262478463220326844325738141305897704664523576730654737425638113822259961918166849897377916689068611864263379480314088734960264578466784223296874931404084784582450959655338023527285230069301160994174162514384353133015400955878849097667045503614344588718997658344587286280376287878745875799782521700316644344348934476818595954112262590289160844813125621744799974452339192549190198448378441894742799782003377269974363906214371376915278016904085311723284204436954752437146602824027007632315802392791138784356227572280767744888923801942458978609805948305631862148897362806349606601227472942636858381123496398563350626460250138092125124595822996141798490013511575428616686488083920207517043734561327287034416732702177280358011069771795345979429337427397845443144476983262512412981427140182739404354070541260238194655997691543790851282971434431883929138174642372152515078380017841607353266591773858115330087284093191810073578574645379168153552756155306289934063740496359023392597548160642768536915306354603510805988633129807668319935111269719600169509098456905560088254794772769286649735244168481680454905458553643661506488080191991267712616907607976499456549194759130599730678487144697538922368205124261659145504457885271162481810206021607010650589726960600565781899049579567791388386850818726746296219125997996307009564525111999830547349841091838434682127298454604487450394213733799270962893306587842583809496283691908706432519673711080441755467635635554014688295300431568463768455512697644206452317526015122859777146223126999115919980371722005784762232884862792709068225175164988539883953063171416733194165772024433232071936029810506214365313611229564375542988204894694847020738052923248470241237169743401324813808180903662112586208557578512847841815611938265881619492469074017047793144985576672021000750713829768078322685725619725359764142599600181056230756698143818367097936661652782156152466064783614156117353817798462260904600003553943297939512758979500360618930430296770108538432904341977593551761942461978977657346477785624473127602715214372857472814959511369307221095821725327566745038039074586835391669988980226608500597192215615474203763603577577968345373158645190026641332531589719876264301894504397091815639775244513140858971889984736942841489309234246564305690208416530639764371754993980404835731710458122761928707090181541809001474488450913934549883619814588579794613638430999359429853136052213161779781515146495845067761005822600483902655680410121751062775314140828913820553320760854370334851090757505864134724069051892780076997494691959666794101219358453883972105326102078271512568087476843073971968653275121229211734365943903484542728473811268892102249968640591375125649055567551701173383652288173761273527796734919531775350094795366007184046547416151968252509092266685537117919576159621546680284205851385757462053515128323759811043454489341306278868997482084497715206001995768191095269449293927411197011818405608898407258703779988563567758936923491080115820801790741570498735558562052604961961460637240096561417623930572148940561658082265476548168015135037039713241239449814456913034412461637214451829588408183470412418349825159121133821796521155385252257651162173782524661845103758122721669590502995512754143414672606924683011470862720849416875091277839410140644318447173928364671110530425498500352648793268529019626689501030715347701790920694999128973279923001497779875128845920070832826221199982777796568159121344469668607942940900519854740771575202896337621042942528537162761841564525081887368708487971219572998657547045842192129574445780427960234333539149347101808755969476397863967191856452757267934016376401891575041774420101996661398197974314333924406236559217002041269101739911786546079048557317404150467395453089051648474979678656354410435151361918380204048919768613835732844900577560692404247326013257036217598081690193400441762540707707123635196314812135780062415527486487362886558569234943261196938525169877536025290264902649071017220070734063193386972266334905819402536658812470302502870338573471117943011579785659902399586695059039953689473203223161613265955689489201541210212928538448786439008657150869202959498641369856679462321979132586870473837394229677737577976815789940260010727593237075647552826576458311196164839529772849659595405661201861025653512810757035387029335843218873437093970573935767724604916515669635696435357893186817514472466629881490526368182810145281252139278877131464513318316052654081694021840427072860221217511497459033602918370387856797524444206032537139145859356486694762167857797364756903976802834145861563025343751826059853059279650567723899263928019046790904947949003788061641295295612864618593738423465666185596316942039417672961815577544240700038217782278662221035453943465040107005062270533665027776078035368346190161539742989614908543350330719066250969830894366040994420817175128033619775082342089462167355969547214794799721307507930066439948618990598150491641597039830436006663803668341519107077193443448088250790571427907435963932208273419500338674632337466919045914354173995012407022045515135525259910170015481779860032703024481045222066263216582346952871346320360220156331778329870110349195482061582908103260086829649319333005142888647477445380935462672232293987521621786985468069257904915848376674858172361033495680523249468488116318208537408901663792123645548032853899259025167369723084831538759919480082235014422299063681147602744820318014263889963043887989103346009970315851347301009579094701693179346911415172270396174420754890949838517011376928099949929818835539739569639929721613015847172221195214921026679695436104265368283534765969673353590323519906290032416390184101823703378872604922722471825096669999336861990537776920127659483280598732499960527396994483965182647692177162987976693066177140103688993735408949010577184302191671822809461718762050202365985638288314736598412211985834789082612021529985233912917552611763970169807052896710915933580502658485411868764058642183004932237902751741984337011689075862462740168943920866718605454554804764255340150104318214300393206769108546068353356978368683779534537166507669748137312533098977665516305918253776986835984289086491598290746802651462914972703081226354392340730014365291854420719609346945863709726070089896229329938271091375846701172725926957251392805820416994027337870154957854632007511971711951651103597232429346037045316502450830410176711641864626738040442824858372898015564904650434154534870570166335402595860856319415436232552023479111172890470373998572111725725652007482809752899402947786517840802297690344523865830086710901967324287092369550853420072987613706229592739851231394764691877956351079870368155988292232615272620025968549529300362509590837953134926078170066499925658248749731648242315548611250268101797778305386949561002430261104707147295377132620797431120948349734203053672720487837226751010652425708145816386041329123778902292709676219047127974504846310229369136141021108419011687658151172991324675243729856715236644400796189613066778878843210018659383135279499292544854882156494490211258180775883927865206358069066798071361607976398050339022905458553193760473597368157805842272219081602357888424684636731518628246440675012545806060702192196991269629569843865761227279500613950586781438383639062497545221234124077414995620073116265198489439918694650508645416752733820068327680284383566763191150882226430876952805766236822017157575558396667554367407649870854300110365346816809680666097942396614728919939295517493608739793680982680806118259462824548664960809095847069226011937248194387128190815465909234325508017302019528484277223801169584978226128999739020423471277907735364083743418859625027977747572669680896157249867127145738872792778787373408097092513325920503026591550296936750874764431730547237573349010387440750568010033695534477897165426020729309313646485307861888686889913456677189770431882420354952575161039708136804446720278873703281923614970582103873162555187611200951867600517986894835201977228984209064819557871454453351699789104773029274168603972771392141679789837844012616314393564882917876887305422746626903203453435274904361921418705208418663832031548755220640833843162158483386647664013220855905323769640223337980787728845982208137042647493444728688689014906374059311351518898241677424798219385619268423379545836711972878069888280609557021414239434928356540256832087410277117629002804061850770437976500131373567192367083926311473016127974572081584489968601583178078003342717319865975343122891465726500409042182439663345221727944718394632176061495269529582359628161973836825427142549513125781211580105500166733044568335883817509085566660120293656651350309318606021238077050400822123983488720208464558174556059837844075759072899617546259086491548472533017468812673339145841251431748157034428695300000747056257740731327919068906980548028285191480188920691318479632213505900912629221103861726993591964291797108909069469566499660934152212501819721321944677602458707164104679376522848511644432959172767817058679883127223355514849554606299928849160869221847274913377529504665665026127831101171874466955836761750162835335610618154124009334672084022929138247985912058376219658756397137063440399846629176070875711093911704510237531062220696687143480440260902251562299005343376301737173256487218767124285035435738908301916954995139747628843796400518068286934643423777477858577664596908790219928360179322625160327041391976252171587395344208541283546948004783464718438808563214865677643135045760003668796593765974404389357401679535254345542574173520168952681125054467338217472179654671142436675561630031850770787031451470018381227579059185494738785342585603705844739403254291595258532400064583504912786002624432014473193333933960483948806947139275521113522053264611369672067947528077779955519814987787444610753345278840743432234364196132589815226333957221333827896663855761098191557145476070180944030049619045965659792765346986786843652313310477141646639966191058954820025269686210802148629768344341368703414610430062984680221365023211921650630613124849080717895708900089686291611696816497366058177930838057983888312492054400645411209756165669386111745209789255861685609118794013503002649131294638564838900184246210723117469174726477580786268421849712460424019674937928645570043433254869153179610899958110826391655537677526563554531572895467860727174398856774327548999198463626704000177824798920551011598628156828251334779147238753270815799545022644754651212494266593671146362005479865204997285852273212546678497604569156030341228603084500130749908586423566037940084494077865223456275205626691546738049870225157475331447639083415336192927535272036439027947166331334978752885986011278036934374660106168082044409685316396943216147998877027744992955207696534399079658949650232614926248563066616091452896500806901432806227254498905260614217230448094318525547330847292906320336375325020129344764496082461376995209898027735357711007939743954536775994061752690197873737528232189018865773087919017865585751307180719335354965985776361203618536957406818175946581787945878315886288362472986644184406477628741770166475525570321930075270892681401077787610483379698384640654943469225896462586820200094423749799838928264410295790268587376498536268773255526477865931008099621699217431130295708149262281922900093431631856435520231642295657979044835160144475632831176321173132167366537299997802662698918890301134443302443532894755831032307308924187236768865986169940130650239685333965069537463575381154014440351433724854248779244140350972368187715510520899369938072243365539998480280219023798016113955625267336292931062094852226724800226135322810279209058882351190835381570090231099603032503894963436707240870155932776159392465055073783995468232711139314331145088132187874780862878502911584481711904715865548987380923331984936972760362922232052681535518182190316792749765501496349128358227982969220580474415316413308469387484704399464061471369849293167687088632581419931743757661171884650139325482479971463375792144468531834283504841239777912676555578141264234397175250276758064414981432058560699373818575794034591298069528236695838494299866580539843758268193305730792700732712443126056632063670803792172749506859131536681471376096772981633574970744535668577705635657780776856776074815131926202473741599804835703205131132780904740873393091674756587249497760930694706057101575896649933298816799222844023545940009662643257195543403587887470479898760317901804634307181507971780537254222404141886501226642671387717130005413020153805242797190033411518472564017744211554076905181278189575427273473805601949068371908684792404303016262662638307611614684542183603579797861109633445329097085360409823871468772649369043564933039274655229786916508052343534154799588655632281425058323622431268943857145024763009047576359616064149196431082198042541020490214411959981889281261558303116666633774233479667734125862950805399140537136779008921390805799722957350376293111493642613866255035000434074239111469199729065466701674248511700991448071263020549610002517698050592888838674832543605062773165803072657249537804304461250764684813653576589458414045802019257180328641853098416308310548368518565136314308041837269028354129843572437623972293199407410720387137411535258781755732331515680862601084103031882569289919490436613347313407145065226170074068249990460871813587037710039797137609634606938968839183318716129871930063728178538933624197520742546362693312880923872162915030279799705649765224755196381675649373941668029781046808555630975853085457405057858106002707162248031064902925717414423653924151217095646164267500367208911753553966034958658342915446533585238853298688624755105226138430287208557757918924731908661467785213348377119043210543894232153434191976074565897801198676901464928600316209054183226857032109114461491490344984731319521090765645246129217658903252429907039900847004842817876106071746154440215109461984572266168432043663796426015932037552501790986247785705347879492651419756128144474216510141093543103267153412130738715491461427595495987209634144131784507135485234635185163295390404688604935789224068107738076108712049277649384807641570864909810616159152223215515364401613557315483805897368772867178203213252846466755594037081644059365451355962244001652462819127428577219537834150315427659250966813438883449315511983681127409603214038207055560433344876594106857981742863946072233042591660199817136107400087913733614844056449515145921076439988389226944032299135121587329863418146782207296465013301323718536088034431745646166778307918938555535022856083916478152532535057667473414892807143056186715073811442053035134893926608604196508124727861164182266350411225980551648115568343954440011160459081289993582862197349305157619649127414907858873755632772070002831013047699134400122027669690269995730627722397671984181193772750413156338764864096093646385224463640577078519909200387158889915751678744529749248777360112958956821578165331668919099611858321258926046296635245046400487075237847174866032612500311705260499653951481444108422795268554683736258121742449241856397285250481691299915545542984640908798232141965858951682934293034369333781030444548575918323146899441437616463303138274267949336880454847816752643497152387778071402049688197328741071277231759744383184729579349564935814660407992339957024986783078124834640455814365496707568412396961194222305697058792026605841751143530887659351188720634881517068806585358578486695724375891502757655031342815568905866347803338781897119323239376349294011537785276324468078504365272200635482355297578306760140033940549251056144358538323068058436224932282227141758903897925936204183215524748101825740695345490540721466384743837870318356024708837404762341664545412011313487113691756238921584422135980546553887439078449034525902554636461988964089290827766820969371962685894776309038673880988714591102328232457226675346473271561140076227333274027863853844372003768684792003402319214584692184603280677070550832299915617825711584934822457885108603999910344310537379435787652122600266644405307472447142953741453953703131769257135663428635285670268874242694460979106091794686291611077266113954768242074893854530959465301226681602946779430032953219283344987362029423951587485635032708883181030675581626263896452384414922663842193008300633126998476466791797186812319750796215023846661026457039818816785596702829272681085182631632483356220169025986577744084912839925603084744979650761328205989738535495448448865808011043192867229161550386166690010003251111606432621239170793320311388737487457793400268960540132506864657990601511142499199089905915481588773687615091585258300744225993752564177384516572018070499928086898993684013972820323780993769524124521761589358203753545011894776777005244200751852926975685396563633336241787763441162629915668425732784290924676951973031572976294097626724664823710860775869128645097866832547022302147499218623657956577486673404743584813682011761683817661027313436921868930120301537290721777364879403560876072242916718094084808787657872441299827514829697232499497890778513070564921772666772815498503590708907309840703310096579359897386536693558482573049534515461269987681001855681301663943864164678246667046765950101558382156810832601088447656388999439047205165311649388082645178306199654517162824316625789015377652929226262098350828468035942589564665426633439838090263011611653425294079322679152554669887699672040989412583620159440994608663186879145467710968410509451278934948384642605060968938536717013770808573935652061074752759990176658816483851461857346352571987901644642400845848463748731781577709560532783764087302160121099878881165198027527908068323973063579607466035981094895980640033029318375579976100408540912083015567215246304901991151894471565519178103036659438653866908138354619337932023371024079155683366090557884911347688805762900732057625361175370419061474890505521835357717805559350918770630858551719472077571218601685377961353154861410625412180461296745701082931704645780842402787696103254811766804356996275029731635547653835983984577950405678714956656594353588814207390483525097279803692672757279287286815633211303759302784229036490458333013578914692382940613299327081093794828971340354522579698680190719696655914077719807636578438963868195366297329828757526543710137285099862853782290482668103779124508488706407430268931427290073057413532400614746582153452017340493402100997120106116832501492891242545539008264594604993744978241059506849283174312977494741605492570895393636071785732130238352532686759798621082862685496114000660683345598741343537956911475219268899687036476919001209600397418767304619571302057368744071040741880141308521921894873623830753012878266889883732339835023731935331896499783863355320539904565963085200160847510841730488244441159500951623772812636006968680494813602684793826633246859925151736975381289429775374453302813503706717316935976420255989743170118767828993354634200322942783314633545149201386383015945214867919647877067631391166868146385152181473917267343814905106654970694200377571023410576900832863239781072081396734818926413387775300765134879617941341257274752446019867441030762025001859323879278481959875705288278780898838965284384207147304961171116286130378576904954384451115703206464023663784362125024226392014974215705621144304091713492131763174308637808788193498281282629261509050310835076628142912349035973931055353998782168419835548706176310491897746155883045479971768590922277571906057716109114397197333349332494353513559341397091909830682278246263438513827426092899436263227808980972420399007684577828096428125372768657883471545030406004556049381943522308219767331431809605805168941538689831967346238613650310980738207325651518554222704516527897346584926511390505508142521269104314085598646734620373313901511025278147384656642662089633061295560168283779896174742011294875865617184233401060853677871220806822341987693625753509080481237106004807483315697474469325253558588999544080154747928427419716803605280237531915473557947085680644642188064298982582844222811827813345606109532907747745488987325618892246872160876940729418403701201592274151279721434897228447000316003630142837697680966687842698567426565374380026311815659642780885642499151430835158111793758984404385305453802827158153179935026975727064360377419818118541731775797726882777522103192555743068119703864184308705089518213790550261325738838233716601470732630659501135321604506786608832085580936943064813031073098386695464969769717697134118257175809743802486583030463212492457264534284363455306773730427163906357016206593320551655843560995855362476116105042572807471492592554553313355121149369698356120098310934302935402076693278903414670653088076275934983193925712726186715023240293061457346978562546650799143287173203752818810225967748534732879728486867702306173529654068698279196406574665679585983418055586676395313481246151820000646194260324263625719543316417512174461603233083783579903561978704735623760752372708172752783002228209922218708614089339230729311807483726169999652022392090418496209083621132425847777562100442012096631116502631879222844970925419545554980922784342202015572026508235621277152359195241885238133284711433707750331328725429882616561078373896640616702534347478845230188062305189952706657414108539232709691420881294274010382206080910116206765353573489401013755625886134784951971933811230231864064870635347747365341131635234515274531430533830995733094517091202495567678995039254336267727923848249480732051867291908031576464959205656465492388117536169407513291017591015149737476760501069258747205899495842323100942147718168387785329362169386933920182485003342870122290532269523746444178398353842889579490403320767943703377316713737763455862121681989949659950815406549807395621418879645530767099295545295961224270246868697344775644151494159339059026896851540055614999818562674611791471544703363832420839763126593227652679533908201018245998983669010333133920516305611534783463009960833622819989081179185220715107952315592357512909903105688812548138848234752340791988402757261663557850543254306458485194608605485217442786693539397457938706946135317428992358074023359669208963147257418759969304566749873525938348450372396214579226323264096828342751658972893932861661212249844046351450439951367254556752018087245746535188790477952825240346278753053536339347172319035764456097374261393486625596112885528060788207620373603736727143824134900161108294404512729090476279282021643530065717143944422226202012376180768335289738311796372132297089075099296742136838214339385201329409198880297920523893890738152236895451079317746060029921252916614672367805769464079643800297006621992522408039038070716828451719343763343288360057332924040877628720535526573006127467744389118813540938228221483488462378747444922470414511962271385253902039346922575469920674480823381885643264679797297707698022353784632292647613049125979439062837143889801978482813388351847126156268952900749748081160368392004612923820496014472122750366080142402911182407085480287058411349918938227850852394699692637926830116210360459942971030738413079794934429233537137526221211483087871619940502581358673701606814838549992285278975090926943573682568973708926122696368006400664605734211612732015758814307831923827038327389800100341489262159935737845819919334478501205553687049405058351237437677592072140290189260088945564820183265374524910058305106311104998974255556372894882285627613334257067514296987336657600936671571031890286927004109173289819436810601584795223838106728079431380546191606012479330378811284790200842005205272193359276752589785003384501700705802821165882646326700058776633883824815336354463638472567579743295619804964250481502296540530880661038291308906216278579693044168361746948828833876629160964772917161155098321404965645253356915089894068293432774504706440152789202122513038902043455494783689687705664957297370214730602891060237105674641732411605918531244062950541660327907517030420177641286507522923832872811229588553615125189544315596558970671014050803748516438189363308670939011858195654252715537219409347425270709338441657172494079975589797460341684430818436652849097087129327872998049170802763065117416752088215495262318624367831383492404874115377819927130179551978552424046224346256649633115928702877961364943266382445999032266867812310273917257376331542467245547388788929685717136645975038976364173233190388071175664948255404047604262577624163778145581481896771761306299758816981739056942541077564006900020205976944131822741543194930360830938042267145444756302451248507088864399910000353040979857802145892685406041925053076753487929507054848253638545595190674213637389107882456153239536879152247593327671578663135009159292440883915809214272430784781013101768110038584027580077143374969670673852198946356548216188192481623930707943875275794690023271329918434615861398250405100068299486667171670142143473778562415456751424222276418140361669161434773603611476593836972942126402556113087919456883880898854087232636843076568868536992562118163276941760186325094465465370660197343402254501999336389010233530778771007548618202669186969467089373044410955232319410455584347064960303024911452045442115472406909414651597214818910507804714452814559056134005265063351184191089972004739784674261616364554475321507665998335199304543175822205273506100130416891025573499424491305530359326328522410971791660865480432725768693156817646314455301806436271228779971513354342352532022857987926944819088308393969857941457201226797580781005627011246905038226876963080867226186871427422718302411946655402312477746702249540976548999291621705064094644275530693711911978171700094616962877426588374833673773233961137235603716106479977417395820231383940985544068849580538062771957557995525749502361397343085394818928653315751925472935549304059032603056821886794233005261478651457577408003210494392653038251310587337831810056539165522133063120223668939942013690389449564513769885881259617661202365622140888947632185271774209650687186893031615105590242419045377424528958642997335634022343390901638950960879461501450504291151321132793220831853003407767133738516375873947314022852333593303271834055730841527567720390689503479411113812218840513378381073749023117674611453585415144897098388764700788713355500950175198993274464117851607312590075672431702001624751386538117705490938944162775294148960769069083535981391080287874034789649313347553835740251543571202498483906870567716962380103026191707504629500068822366642608290409794762137223818198539111801680482282272607441626406674971142580131926362242504599807279787167057799463273819571073303368879331897339401284216488286797653359763275152127611605532664569998997431846149505409001126215967130543351824982190300778108349851445392197679907135771112665642756726037379272685700249900893505167230030042934626736888154200773735474031848706149170722220316261860849441536945663694596262739094225343179833805197649864598039389616930319693457993552120769312378477919287867818127881506816308632926802262789249485775917117355375347444262653884279544100280316462139848553270316335830892075148711167032183352866545226843546462258867568835604777672018683153921880249005706140123179262929001234731193609198702953037992998631649153098274386348715058401364174675979283111726078079530064196489918245170090389517966269662012855992087259354523446544809207666585396738332611938601822272684580327181589324635918519590823760260143272449068477412680669593540694395765573749578196135585163162573841114056825653953234087145509428323402701169563658331151857483103474835665906021891272722966593725967415622969551764254144610927444325435561795391585205127490018167786215294925789964022757732545615833754612370506605829590184133655015258555501431551193331439641118598623338923109241050387801726713963464651824417356315547280459825284867763291370997104766226298830101286220042222620024796120137432110716957112791564641979235610073116903833166958678481509503821304280395162425204572320549952164967821534487100950143078154141555218260353125573877056662800567868643424521486797809792784044281867345526703431567138319191215247980705416760871765975601935497459709013623455139603100965702047741557999485964630478203380530283931181775350072263334115488563290440324936560523455988981005100422168886336983079834216112034918592613465536009013296272324784350127313918825332633913013086645211010225468688102594191122216568263470546072445064659052143022930994063042286261637732655826849290756044543769107811149930735196156714182336313460754140234217073172246953420841110143058446620809503217037641115736763263273960438939288281435893861709230257483140630632834595229832523332629808917438386921427726275178094912178361724636784793152946239846807951683234928711022419114332418130394609561455632337471388314733048265106820896150575850734949782526026901256572325644463660890048162908077549880627780644368239196809626753053044709405903716267646490824566394109439574873853349111764039566378402377980244301612416860886908612219272894539520207631807718733346784990064811939847404780639171242237886570755988847141695287051801572154150399069942443893705986563214361460442657811407628388816368526851833666386138236386519249478721196014416034217168288146480966916083702010490088006384850909480789857897885468949491414088707419251492529874684183414912257748616568495998988388192037480794865583070752811483664020682917061939052090802868142960909943287727746536693766708541440574870739571035147008418287098757709954415313557153640534410939106683042690147882499899825865209932219136794336487430894854662696458216654304204029757376655326541407745507150092849801786048629660366527366975177803188990148250984013253882326645415832786345666431877173813684307651737920084559148827749436757582636998137845870294636720163259663769051302530587375084870514725457794151205018642727909163834804126413019135852224802803545548282358865742775319959168178171063595991815478146467679175155172133380122151469651957592554777922750056291457116321305389785016223937756865001944458111459779561190507989211954653212320820462060096929511401807095405461696216921643188256089069504465334903925514712022447630873268030473000225035044397797221851593388390442115454849516807180936558466019694317033045585691285836284906793456385273772487343916588761822895001065581171479315268569485132561184628373541124798094268220991620325869145188527776314133756061419532801934467979602804067983582952720030468700378188890770948695728486748485560709730376480166082460064970672173043514916166638793643753024650344060642255322067816996085908131942222099514025710240353802380436142113785610680827151039729608007148548848244831068896476078282008893718058419740792687589698281175926802765730113251269612859318859987177975368481111614703899519210546772587925013893142360641853267833002615420514888698901493559927887769399019078755019666876872051526090722944564508031069004041031912314575578107665655659489372611920245398755045867041298472596668657971228868285570509138199698321400103592017580056015657178993852161133895036487305831115301364796204098046724044043597290652815732749893109358854068737331062439875286157742370761233035540587794976411104020939408619691688494510736804349496130098203359641761461168996679519824042474496567502359538156391626301313410888079312054477696201810038114184972451622022887161006968130565608668431847320135437207906685794183980904455585282756101617283071029163608928802766914270835731742079374330097319641582758675097251530490754073896294050605295307135628989790424673926123343112808616130438932039062006247431571913529525402388185055060893643692912000339336413354266988705254944552789859031912496636435624936183549515793484226629143852407531599619116381741604033036103286622257340229214742236431515351251559816202506461356915203170852240901358991081196115114375989449162793633295083863262032595752222382674546363596979459307595855409659263787519382832293654339353180530514808169689135273972141099319465900042620719127565381947046182192310702969522990727205506346439635399689514065850200387170894842491460431613840248927744797808554774002516244352086602317740140571452407036814215378463231299225128423909407357120122002046860024680594859947612413680169224684185335217679703353402459324174241324642867060149586755281553319848013838951134096078019550156185775444861092653495881564145579199784650834452348924276572234726527253617136923162357988224898140063127208623901363302626746292915406326107078763519303791771898509727300615792216223600759872642485584102759683480268440750191551814887956535152919133942433151721081332089232066562582302364256731952490854576351566039402250969654292651992819803835043771491287152642264385899757823618882836368872270933161264569097801187304100072755772670298559473130757526803233226062051495553599312261161069752444662543714353785794842467969284475666619628188541685809507643651627631293889316705198608939234378999770301117902278076355416351141899844293675815787003799611871279669962872847425957734241321082852568411324129060513429881685178661817730482760345996280518738437812509793144816573747642071834327416541926641930614921714778915095038408101822131526972014925275217089515694428343357455392470105099862272064395417555803164988127983317864771945009124637507964369561082536501667136779017744844219948804325861043531639683473492238560556927677909870843545015421604349248185724994781934706170647273324116341351701523924209900109215984341683490741231178048092299857652122696165054205389570480141650579414197531105201278216643686444454144086130242854200146702121131554418306093589255282287562179276106252617534569503664258962101119172453332837651167706846210071476615973517102553048734716339529924900776787642942848807923586947467249299778497669843465940104024696275491008050034462919738641545672200380418889777886076699232864671632956398966739879825032523095395900174219181895281482172720666025497087717412142466774299177074787737215607973810633481126176464578841798506022360807455430832438046597035946361709263603271114229992179774090153092653694707520845747831191313695917649411183953716182566312730189848058012304019030397734423572642205702929161237049077808662926371701085020203628853343567751815872666894662678169607235511178060271425994995710520534375800722660502294395438816519189853281276692692719615530338272758087407405467632375071460535699664415309311596280030267158561351206817025926883551854688378377712642049738312508918659505226628906712009531115072213950488401628244704514832276521128259025983414668097615379747355086402608621053850737006353882633762926253725900836313116652123082231019145251800428821858477998537303591375433752539942963386043594184036084425541963736384052144089133477711894356647427862801982568990803477089912741599099822600231666390030999110477105826565030496410818005051382702327235582792611854022616209783090628204850259887042954847579762378899666348562009439084380784078262211530517088936047519981121574696573243837417865941045620563434713836796121211601783484604815477164016428078329595911302028921254833695210169361835981288704320375482868140895514304622518324459922513723274426762543769393085968040780133569623215017383507116690669655493188527339348301154854606005594809074566217601376535351338773804099689365649942656730691300260583275710840187540585327093339953066436507126281550166277310059226404203349213899161610279996278848265150200198361174646572412678914064577749634773267610934190578888917826347694994961804957716702857806513479161293339021160435793415925556865469572436453083459939177158656532754527185554328738616895015347232337377879688313497799946551082689097640897739839157224178211105458787540281809165820262254312762886443426404245765991400341000779108518356966669661366379860845530340782089669093174504060134213163103983887522772015875927372420406228096332016937571746331253959571955219433793280348736052781006659798474061713562934049612423281767885623012821362243004286495484502810019525480957008821750728547930816797793807726381312098287282478070512290542418557542959168442690285676537672472779130015902043021775057904356484012923051547919363089013383660630208836884622726190584519255720454936363441821105433736924768741032475518377627657988412393846036387097354183191781479332914858226989037572509624228500653204838041383180238509008753511070449607166008827892456454948601217044277856815536783475300148260781683134226658593972344557525379215345359812720527225261258634994736176428597264059604779034722610907314857679440590950682728158402138966303816722489261262733548708490581152971053642505814041473096663462565030508584514645192147052504647594170846276632941146349701326499539988501665427695560389115872569789499979940219382701909704920322739623414047604852221975300460412997062797195901362996431261416058557316097062481542398547693927700834986697182717854964817848243758670069289578286124545152891619001256440622325090747485918031309405059013559722500536853801814741379815072695353232696187856094385459230645330217633266196642336094374263575618200120858068515962011350001940825440689642301440996051324364881713665416688329103222850666260681539014164190976492919067810584405229617147110122070512442851258160378652721053803203340034574212546533350644842472177478429115222807924573591665777963398421463480431502646340411495696266773057085388350147746089791242461105285793210066391490496559230944248221949114974336267815696683477433208192446703891076005670717551992561752761381209572738852847365868324878495459577155157357675995591943753053405237023610347414301403948816034865882450160435418651919780028751655258087365166301573659742496073445111973814246263580644031311128429797171902806703999952652037444241714514441337360454042166226700607816312970197765786643649264745881573434829919916210572558926878045692595980219965207773053940232846956161187653791229286760016280746383358173420258375781254417254987030159276760370304632271615073759804992462859448248950567609694788921303996175915122274892536596513348416286181305922912948498139101495556798032236759698077148228141277322693784261213798684733903687897547057399596049886232290217370694720164539384949191462971016316301612275269905604141725917321253330063842517556214309177026386693650057354485807983770707143367796391084695177940032450952496458800494091231418217591706312266027011641478035871259597775833870473319589279359089374588286322412002253188998408135743261816852759176760949812337787881789707554907434199773673009592963436480153256673978425505156268839842599974490812407408016466627003760533097092825255609999793785904062112953450564477201806705514182376070728171518998629953484303417009148346963977387363761149921752941927685269282608115168319778760763500866774875273633136085665331322314864283595647002716130378012892637523776085810622804888002958808152508558243189603167500846110107060763521324550242319554571480433896799278560806433184575077945261876919983764309363675679792708663923356680763003962078831278809126544713637530108254540237298953110766199862082702393630346462706528547578335647927997745928662662534435834173849646643243059335837980984971892587262961215219862612947229550218241715732538100426189199802437152729107701653783479543835876485189523354672356000251467018135509968262104567540275051020669738307785803330554419564464766500610228446630589172021495261000111146073675468214590036403719462332176792058507516030587224931418528410684276986593586795341025921453161496338951684473954801334325267473278288372823589321487855500560847561535210321496882723666669871649753396959768871110348973653621868045900684031979639293550730332625373968942394915951657351027924489207151586201150358281173392979125547689460236621463428311833329946413699163678040479694187738739818530262641918333835075317072234514740517727249372288837709133200847978225037140674049947029710174420668611963773156557769963683859519423794144203252690334109696204779967535503750224752960225467045913965712059338763402052641297826334525581201567470409072085577604699203961564356259683446798585409893770482475937251685743793125426877307973493741410012844355670772649477191886200694181989051848638154299973692967581546584427965108200497886340036836362222305840831378774388715415083152883946733740430996987542276525155829795606443794132125513221845929158111677399393565122681759755619536553745441299781795111691709698393520022193435001426027637346532281579130830770250431605015797503945376052992228669511772023406214124500578164289896190292703237505749753310007712866644782000940222623976346993711149668392464288081058419067548507858620838349981910191213355809964708920846236635003825581567692848575893207366023917849268863429463619325842321741483140545044403655570386430653555079481399076103548563865178399661820982980623702465927386957224818865809518210644731530213801416439408173162964188010352128529948468571772940919586544866403675412173546011586105750368193854729759924363326266155672317989350820784638729086344141726126619824187150441073695588366620705210400496904132982249414739915653374273538554119605669423457707801102983117385149604735415169884316120690499724847854337255572363017770625473461376811349553669513264759602866942697718080263024063050037144066554999063160746159240165540420274022388329410705541634046103957064598953388896675804331689944592755300172344762548384379020334250310101304572624636655869646104785323911459267616457632178938210678648135758843932234791180105829564468605874744984542449931958860430945554207682631456345060319724337764047570003491805869960995111997177694745287816190731679119317084375595617077060195099533836728826357945205780272388196480465647782244579709555974319742966207183858711512579326023620455264239375135182467777682869650947187874307243497715122510074895669735344437600369724042833564029003961019278341916653258915511012990776506607074461607560324023212623794395055730314219430359120610856381382157319489374776032686052869727591109211033642550733680480668918325943299901532923393838122491968402701193882526927552334925310907622553829587682457906902802263703157915454253665297691547185188407185873544275103854963719317180656030801582013999245356785647184356428068308173982491379305510167450457583237248658298594599480130222971867405761444710910548772441449609610683512467561200320839864078657414798923000820312207680829855575163079098881881993411278592087467859377510184174138800660801600886696921625256970812751894379903376069710162989417624295564530979855217881209172558712274332580218078458982488715829640393872823601305402020884999988436980453593557001544958940823778730381531603096693037507593911801567604377743233138975933750838712689420102422262341801192430541182507757550515861192109053337564653689773350582216779786898647557363315907542316404470212013614157323142340633742258332196700493871613572495219816483691199795142919602788319918788966962941263171393835399495392503345364316679438192969999101872091786826032183433543116623989228720080162069965307898267998841056024736140562278536857509163128203714884683641432614959638393936994369204822032805169418208369192277628797123576724353322647913409649016771895385534958462344461144412471886198597003694817659124092889072216053648060231881058472509717488138821034363340130978076494960066417413859779633096686146245381229387113578252636961978823436008200097791244581287989882147800077035797212658201245786804253431003415734460610270890290701329911800261905483663960735699696336290253797180980545970704973247485282693414437063737101736472923475901327161622053051280525962882621865676719658624581638131376159693474423503235000001496728261926522104384298115113731262276099050848727015325989818346179200554824012957175054132577537524802653748583058004715017130223159955935440270030793905888272078874661604958270880378526368653490342434820233197988576645741288239760509316501092335910981412780571929754672665035982481784555550267346496435606652275702964767523194564245182028108389356275592170555050399891996406204163189810997752356710494298008694900397630941964711752746197822459177018370512883965740511400823469397469403685856535267237344947784845464693342507661146053882119357465240884337727205468521102709894532500257927258885373387635967171694611965215934551417797362284042745596696017472373063252003171811897275518365721741498401388460830837923852786638934944468437718645001842973912276381249538976329004845665620512407772523315857459183008156658254112573599043616229370312759301222525987052120604253314255192310916263418612406490602038071942813367499262849249656148356431292706295309909819320645872428203300819428041489716786864737307647650339209730366008050677885666865407109728592363704709238471460113413256112365865512566153242766675222704897762806856519959354203917276669990507626841880225343926972945262113614631396931223085014359438251783610182234759574737348475810701722429358478788632044663752051063180378207626743818600011884521290438151193374007193211938658641817448339617646830671001340240504229215169704857727371421800910202983763182553057690014060310369446623426657425083498005050156239700548267315725774743293972954257347234286434374352831976694406417205378212732572706662591761248688866418767245039003959951548443599409624053652066125760322985806674674067098347923369310445347680725826543916125583853981231975494592082552437057674035599720466651574690695361813810291863010712953697469109606685094863408578518004837342127756798426743261629160517119021133962096432904364885277189034726854334816135143056217445176992157946272123800980997453408934183872426156548529731723912891016605408987106106536256462782994248554012676225981185688377267478865409614410966289049986851150756607196335220596529990209540231939498570525052540344235181662197803369168210234356626888868247881737348864366173543569452739453420459162835415180052835049163438478962312878423011924037595976639768133806454711209518669274133847588868697663014822804173423954599751956133045635861651194541684223886964161736174676622070644312651395097315888328041596825437291828873542176432609380666255936852152393475572302656724826713178879081547243038377224657389878284488868884413414186877926614412515251948396727286670211076673337731157579222539244468050197199541423640392943907037845852562276375877147210081338292895222332141294889039170703793300953564267984578167244811839173149122300308467469737172252917794017095544254389154693418033614836261983985823659943660122554990042560059012182037620228079960092532968890717075010656192103813566497901172518180222774427340312976801254144824273094267235619983431609528164869815892687207714889755651632063407387070959071071071225885101197358604356358472190427306120936333253360383226045628444718334445535924692727991474227466638576409424052645573391930348953582921934049005787731817772885847550020202047696880622819951073931620890288814334958590685046649160489974833306196025183397595585563710894690272241619500754225169619519883225200919497393614336252770076412113630062429984223463609854547494677441881749082607446709809536019253806028753944511625014908404777890630937932965732632346241653924217497579343781006127321514080848608143104327664238145477093153927868282794620859043178632159744583366345620188073525884083846506375732714499117418063157704782683033733211316956132145558437957238114448645312519967230186684381322027996091713974073488128088744941055322481970736613165270172006508147813575501505228066835422484863319326337343034441905015032043610447802449606489457787373970993322324828297846588549310242168822853398163292437080345305656147297577677253325976446370297291920328991725576884781913669356786625729889525469606828203171746278950331130914367094879474972260674354388284545387368086172240200594646988077933115799451255973287939293749608113341296709950168275964306061381295080786574217181891185927865277601875721585306523032554291034216751084894463012668332215135294664238676358791749578104916998576422876717496712959404673863145323007603639267915919511576024957742168650121105197544996719986439542604167798048303222139900860303964366779575952661871776135702973602281664432532449572822794115576347552524248562467266168531740437647524201503443991116298844884181613007420784239897054943073208583755511471170043787764954936620666601458757057382790177210812728708896635502428446607744830015315480308063113972588084944453077534016105384306751180518440743215373982036397097530738425890533388487563026512686324108677131590389073180580850702656284105767145878704378131354093623924329727635305964831936129774297145538060292229094081949417714635519908068522036931388892667229824115833893198610403511152629623541978079929532767972589355145799624971453265856853335434653464946090923516320110957365927339839655707084272738849357474562253711319223226322625879734333696517802670268054274481995241409970958103151556655502934503520022974758000501463075714264477926109598009725851703240255854937534716434856622675579430580514789467552587137785006304883927175873061048854499859032633164157521102982273121973604475531984968597112390499185318917656013097606159390979725526861895551020497098522242272836248131867152082842193397681921346548249570768485115705101915535938579036197259556752870786832442744982219774868098350069029966040576353482285682713876092943736203680841484459787485487018655676364955155911152774695717130183739570635537375537760930753506680679770366928565663267236778986888493035139371104868644647595686755145382394033902303735137965179445623959481026420389310646044853290186924794762115382191266805995297685736607989241533950137644547421755836073965543608809975850509685646381233052018535196268613109574563290405089357709775791965794428643705920442212602019636982164574921541231797141178173764828205793950421673029449161473902652403257744243294610232280896484772743690147913199370326637137014129901463554016235915542483948586426597874723173399557911301194938808046131526810984545965273168481104143976520552731037860009066641843603174643180881540522199214870235266999111274724617726587724550444989082459941464658559843715828894580342085138478299973550701242249900053769771341946881620844475588273808709155596747022387123675779839993098239175054025772099121190278073849120952032819558124301052524342051459091004287291656052186147165514589852329109533948283327885230793253037489528377701466492757991038563365618328181290951235934829469291163629147879500099812705311087923551304198036380229612793589807682034840908290235736537363208532182811007541213011659581945375438844503854633368569115920404708008917939401994640312822625558024694953557465537451868671366360639696986365493989343269537775033497197574238152135792637153121853663301407898103810134273474347298542654951737795007851340453284052427473548208754224820385307419776400924582305401341213037559882916766074369093083806156158875532615630993072885308732168828275676112020799648447922893491461888383384347078563175753091128912730143692508697189444449862850848808274636711319189012351916816733642269737782447329909685091258398607258131684504511044876455100506608811599064044787152590135324757330616665374152683201259512507340611603732595416216375922025306945973862037126484108161066175730513085597298850588342236065525685432166821691964298029361968123945876176180516076919152832811546116878397926594720742554605333869696269727724412033000144889310555107399077851949507546730839154438402389436675152417640004354053574854341096877664683669440569005921279607146812409080604791175228435574895707162818564075738103078161016292156258591014720807900901174061297281715777530608080425320275173663505126680614212984386694976443175173149142287911124329052117091669340113294480388325125769677955364356395064620010751572969900081077588850045990288587606884259332586504815252910744763246318490318126649581925822060999344895693940921811844187665845448002918971924277316619234067198909151618240156547093918341977896686524317142718094572635957130661068449272059236986315397334219196598965106861353584967225539486870649793799547321260290720163037630694783780750244844323949360073246421660932069387544572907523861677367255911370635820728723815398657126068195043014766020162409354528647947290809239154983090916203563453503713724098643473123701801196660799156999508976439077334760395441702573959490435434032636830010548019156055761152575679606138205714630082371580572560319019127815507424335830233204141388491577709704585822653554952574017393647320747458080089524589774609201033460412642259645420183136815958600869606347637855840354606130708156910625847417800803081202391080723594288999739430133538531762618582759753834788523085174245727142726258362987611580479038637241362654016717584185558434639735042235609379555911189745266776018390429322930078816038387384732524681104736512363062397543609721613132767295153077996249597244948860825717702996504593282506992937599762677534555962799473760523618589851209214758810723718324674144813791833403270787736414218257417840092468827330385766279485100020842956025749543705564527769759405253441520883906418447704114328840798508968448645503688373320453124431233493707979753810392784787569008787618719348365294877490168943304373863603123695098952606681664418565492797330142549421055267008733841620877059523906368507403464548389569888356683767619052089844303617526192950774586117187383326653712718135811660956544171087754776668676188226810680642380584427090607993729058847370286790607308749655417178889239532143775143858342927229703646567463787415612522708952695794049384023101252195007975720616196236787736587598740664975696744797776195790858952515864361550495072639144549811758692905307101739370121193677074378459711386839739239930666793833656021038823268290328407812518506042982604979720381570188247216105092636545162046709346842746686600392439787803758452493879937975320943232752480584722736595965349187993398539402768216698393719298223427928705852499575858185057185096635486220669752527992346643275595430898054762302059435374337442533059877117406544035345281488925922774772109034120744971920606987366411370518508272786974748675454714722471908635281302218890195964205223036021226248916279676342549523744139873347488763732370040194610693228941853603727738143313211819489196832396834253282654584167550014363726112633152866074843591706009404918201096454777130567691935440284340168367142231255411565852067116022014982170378093881784291145807702826626944506007933539716557445371782082072219788416767050962680795403670554916791135320258266790908602667015906936862588052423727941873781015191742631865530098866767329618638005818001850474298604852402117337540350456618678621446142420358182956512275973401853758226296240260933434467182156066144657470362834040596230385188064457080806571992876374230212419729404118837351563308859679048461262040309564530089190771815835269820058899149721601970905901241122015733882680254866189012269729590553460825756356950771077473700871563986503570021778205217135096529730942181960813246910074764075552573322453200288675846829059969580766877055529774623462393553460190607274077950463026105168242301234255625472053892826556295236066188283962749913076060917924426748543057003792270082630473040452267602187337940410762964978363325187057719833947165618181764908669658345147287194559022115087610794022576705482002892153268425425716580456604608856616264817965643171480282951116854913110227510554029457006955594129084226386968877061488755692386430985781236245408034340132248029610661530375433154091122297418222703480642639636305943242080948005225410807361413686836635731240775145886464074141218279161959853154892104570710821876581580126830386901639885871933591692287682719459922300023647291099957538490524490429993516749507452988131290644528859272983812986265271035808603993277253553265576451479237737955447497547343631105786923332745735149247883736485353735113858966380568081923936337219414425435393085128155358013276976180912285653836617899670279434557856849388467377616919713451914124689984838085113966862939902308812751823181219440573621060374890875481559535749224935096951474886703181027643869908108224167056912310923151196689170791666343830090535893939798627852530898305770987726952284510743788577759210695340059633184565579385731251176853075421459995710519016008102533641881497839444101536616250818947648779401051458297616324826181502155827046192793445113271135152557226666409998469633414852491663386449648045456835752651360824386818760898932142522979599170796883988299648678951490634773842629586614499896988775399341101204662665681161543608248118465810171038302184394691343581799899766862083068219895036979790011342910802412447545429563867808262467275483018934506240234154036402587245996193320005182736758854445661529893572191987667564267356098618632345108381762270339978801050784499282139975947859777554087784781290343168536342247547879701525831113178566539266917520392811334292840055224577489157671184953975811350322190209803017169381499746804603741166226799119516556133373651809353263273040102253101623890008595944320968412706281754361247693031139010514118835669915691509851977668407396120596213246854155388859250176862218837978812985591727531299477221475595330129360152111269343300701192742667867166254495793663469082771496302619225079900935180885936162123647871422032694713329327455548387371394050948926843927255493455648194350504540409780078618614280961204467364848913589078838015841227398557917916114502349308686751231416675883516550485936293875398639065973992429372579114575965047992932151465528261112478853241129499975428730241638099379324889149060595663787305047419053099036903657051895556554481176979224125463568371287648681440774848112873654201027346666855899790963215993336240193800978099546700504617759243808260489738176838418959991314215738061258853718074913899373576541456744789810971217925142860379898508771840661638566615286376279673903466481080042627824613003738687653889376034804326230803927101478778276593816850831615125170270394680354836124171299351911768159890959019471135833086475827758261136683276739541909614788224656567379385991219912127672765373417476211261467078964119436453529166910706630753422639468854328619595791932131569404167395864204098020619104214674201480296273922592666523251538201166103891974432973320186701445122585188139347890534664614232447176464948395642214013627583866061752470166219794871295484823100800755384984345900280070531367078359138159393927339990582763097496595330393468923253089321980678512627602311897398407439418028155916965821306545147343712288615562892973740723635347630588973168660963733353458853121556100591997699900727716704451168308508257272542009161081479523231500452927001111249407692326657062625918084179318946087024814200298675906917508171901057566991316336682394451502026932919496059675080287751559249215258185730414135109924260791987598539861134605503364735416401716416554849007208241443230757219233737691930085697375092694889720522711904849235127489503183208300571645386016586400707949816247270399468746880417937913208765275221541554619751366631756245096569810942779077595345140547957908653156099299204727106293717078987260299665652023906835599034834568528854530506665105130876586576636001037555006714889457494398720968722945002560130124565067985987253800508665394461941763592500915993731314784881489965998800302371951830715980390909279798277032399179996620076143547858328572932236685675524971592327319084275207096101855929657556380408711137153208461333433584477290797376258525742771690322360018496750321214492926795249150289442822915708315764783118889830026800044008985347756641466256224954433999494744717844103927714866757595664191082916967536153476143748252657426161245871726245523111312149287881414443840183855097899969906941374527197233661090629715424210306823773140597052443789905960606538866439000695494468077789867127613108279606947232347650156879138893665936210891226320670009775337596562107335150718243797689674032673264023816937224837115111911696387404537510701977063489467812847984537499545082742391580708026939063873780220450667204608758350731110074922501819960973036265428479428885636548705146975027118900418281012318876450184537096747794444720554227962878398609812975113933050658122440101291498640931997508307149510571126550898348287824783430989948998471552164763977411626960161052581161957889432585760343725146131370629822906404934465558777642756274318722236703123354611597484224260683460481565229399519438727564924288473925779136162548914643094469968332212953078195090154698013428813176385256514018532566760621960690816575147709356078518116257873371913452379747598112652619310200583121618230130236734383486935642999364745680144569265777597169392956346831882371142094228705675073134472194992895548652597028773151225308671977753790557745923245983872775279208394072662569734782152884833599192804887550710743406172875096354803832514584853654364135838543168528061037851542640518277736527696642421295427162206234274195724000417781845046452882857939243832393316075019543397529064753823187776958640485717265637837082713303214651535468206334835907820978910289201063301017069321599746179253536686509879274599671104639205815036665259372581393588361152719288807924296062580491854462954702281540836486276721452700093961250184163724251417585522581079876160038492264441484877839073805125848124595677380077535215352744611451294705970877237218917359413520041162403128026648657066069232754070584348871309486551128396087416679280785362874763065464321065247774543777563463169429686946388671590638265080472003018819725801343679873545249161263037097145054474453716483714989172260504545109715641307818220977940560982876866302426582918537117628128267475043705614828976436500192390705590028736252882033549927829722251517174236777111001675541889626804728839080634578361213397241742533772137234719234624404408732474702689405044298136371639460601261914711343713630812554868825523039297376554579417699879970068667802020602360292680811747592465741538782280991291327787704177191830372856358323991191533957981084911849290553100255980755305954686892516147220573526788198814005790283839795124650742365732412206082091592967034612011367165669111265676608513231247606709432315164602559230358465227296849310705839032271923237879265172861349144457145610209692588133770438091141692052849905008926186411083923943644636066175259237301082129235112361578238909231764899214661280074925718270747581292605930061637463979357878004474897502717408657266065763172421882123832482573474448284001161300582613713611330359946701284459205045762319026808579916350930205291018321285587086427883138756230792184675527138532293680639294129770043582321557568997125513141575927021370999918603394391535038847616533937831604428490156540116721167144523605810088001402106951538483500366162955791812884140744265739055185428015448476674982640495535461903508929728169229836454512979118357757111497055514141616144576274228716795816408503151654485964339332404155703577002203675009265584533585553468672457379058069298331496445971140717617860179338839352262931348672731039191815363694099611381106345327787396115252428882307517686591282872625275715379858016781024308271328412299948008518390706373663912871641454529964448772531893340501699233044053220008725452920061798510421154762298013841094337427606092084925346179977086869022783793428463137917837952592285027200998735207559003014892996793768368368436940975485641759002354936336005199165985802716257595498044553391173377107253949352440994127325980625107063137311146317774099107199094103312072775687434882447707757252512345012858691673370434594824019086992997082230397232117469810090451213886614566136060566730234236790482853372444434136750990908681528693970778164273091170836568507042690000887057653344576996369620416595587628484237639421396747503324513710902648556775095081229517523664382477754783381799497112609113802594369901298976128149182705985812259251815247899322278339183809497796387160406119753653687979561028267519661443949868902793724983453505574435324881614246288371819990034346965815222053580505982924007255984454727529514066247240886940926603535373016698750285977575035271046355515765390732460913074973410846066680890366159098753106085252500729357557889003060554116469011383312507050548584944055783966032265647109491503641129882960121788233092055781173201265647907540889470232919207243256219085051781700954961116361342610318786012460160168087457719895554669338078729380118231599171517679655508080627781182745511158391362623790179068087777771992689490527427924986070318585887147081718333936426088925101030881360835930540740549132968057854371977809069528245061140453758012206865325785888946686045409060806140159989862056977345400723641418225485652567944565501652679406855680916369589745094708440656837884161002512542216182350983286990743259406648539415549333525010520696780006770575828975793274537964388869644237320191394519765185348560945310930706061437436973969030727308211255040111209269438825524458396271600126415424498574210291911851765555776897527485820117594474376293274544100278392795166230132405536739421046852420847027639596972998129901751045922321331866618422827340627345387892596417197632382220025679593668794420396336849163232846550810729293343309893999936301364565474923814852725629622829010796936799975469920192185482221618163903288055462490005276113482002848524843523483810670707502467986639673662095898922514731327000325563351068127558012452899547442937696564531230448291499230918693764581826197207595769804307077900785368172059517989142586261539031393781883584595445810052052483218420793463874070254078957174462150682802643839776689049032766003269046403328171014839554023629906052764980921563270207825406169010984747557734739096998271237762103483522958256698347474797471674228753347487124724407770132580868299622890947475592941273016331964723901316297449414504789780973441747240990034012094193400217894055853250943159206145392344680987631588444325378603961951413654604060461334401863944059602632999659684330493215192186537281587422764748704798202905892621281124753521731423347824002343956190657527293305297878228934867288921455306304351731069527891347081703102851063818060535528215099157696253806851713654285342587565911252887782874660574067639956817376265941964964564179735684636945758432395075225708544007484421766235647846248268342050544082269483870420675779916860700190837032006334461532199018272934914397978122996351527139751546888847275072464941944896516491538311747490795606200661471650566838274964077357312447314965563594784460544419426735230548660100732185021798921067667768843477339254499278396685477168967285242778334595915497417415667462953171236955850494859339858479713386693135139355540472455272774585249651645540163927917120897305634166181667676434890836643696283145172590986018554534056997440675918603110774169559896099610730185766103936452890113045515844226144225441652390200468093162270431510488998442429973727314043986851054642721706695682679039956832778652825628993185514421718867803232522904207727555974976394827890526306735143281597529017765069119465943765576483949700948905677632057760812505959472952687177919552182018590616465787354496954663040800834295730094100871462227473018804033474830181666704395951462511378977146251321107371721108728144102696473893069607287228298212810081052101016398044080311415728958856984554368213281643499292865257386547190050887783607007514644388327559111580579112205681208979268675400434599511847278104805630629443595186526328177630435825937198986085267072689487639061967145840402955766646593518586118238918887697210472209816049918328169077248032281305177254957219430168324747405086320049827516485358693543299144902979972416363203275710116556728751686098680123920196631982705444767889414899146817129236544621363780192240254506350965475375873391134046949759946990922430104110669059058003646668986132779949261357966781824927048556872789895363111792852961337367127136603798620986883465806412433715750380553557668813783259033622714191992787542623720050213812349515917216055076035981411718320737419235274958556905946285185140437552130347521300433901343584339481324919613475395280892793972164585575233286358567967593336684776744846060459357461673809739481081108669043029853570429456704412943383881874861595750226635675660056301020756616324062038815409298665737119697398928583097918224548366566426135198385518357539659072932544661632946838327757536180748311853686082676600711196498654628347374927134641385370888623474956793109516272613598584000157240766948973141867805680320456230920648747331528967824529443663993969876631435068509901539662643903446880401496426575730947719896465263729990699105763897131261076102107798542048564693601433486321630909343135690914275656799346183000839182700790415725486212561351596229178992546766095777888886769595729552984823668075362709533880125240791336695739686105041167309587094668095394895876592647285035809460154194755413333443898140132161941232736614949602311461218694689096055742603888400423322426236935525966920700582547021287206214323066610968517909461476302444100230549264916991344429192553457457724455499452779148012847705291359854947948353339051889848391772264863631245594211544239645650469331941689653338888202740344053189325720345153563856763714841830419669579308603541132658239829102939656224266630310130035978499943683196794035183543429872888172906580507368957792052922422281347476757097673511002586285609124451095503019513114438177033222406833979115987717953391445357454330195574436949041454896898365855050802706411590185704137667098974414924213086550135883049011525104021837683397342661773935773152839238824755447298526481530799607477723756723396118986496779948733572910359204553368378706531837523154717945746828068859188765624819149599492929660844045491251313466786700130279863484606381375606281111121725730340914503110785441169361698625593105591954362722417323840960315956377858871488497076007210298473959415637063981087056621193560858459546348764465168074932517292247209520998790181022293795101882667739232913914719915122857525765087976562573879866126613033812076866218367753248324759456870680220857796919932639180012524814868335898489055714271336781002233555518270362675476168904714779364423778652828870801286302965199644155915910359217726216865081831891544175715263470374573695065193071018882508281170220350393600893105769235912048010151056531680963484413624885293471282524495817423408978510267041779891748043288338521861371330674833429629481903079394398965132714321121818922127348832395000235634293849230443009676278802179019604749250950689980730187193005761712407718827739459012670340270161264648660745626530749324135204748584876189082333236336220014210046296379255629553746889907931935461929297483369585936705308069817096032674929574983541301469279117361103747489149740124054871507427051666653992531510590103391408785505677227523617820214374145262427149919346359275716124809353385559958346329134553510541018295532687926323343517645881098834988061691717989346407269670615092541075065258429557327001447423055730262382292993388062770309370447530486310340432936326787687115932275649912601710214444031715395507650763762571655789735816547364381329937608902789330585593177427446738959208320178871731387016949701412045236682796414070866576388382197484112120861970358685189551298179597813690574385148619731495921031403262338481542420851377875524341985221268715972848016249902430052102354040894236758195362070786766625715870659393078977468563720136375648474095840928918092311396356194656253364354273697929992418543987030735421095857745759245168103990147221086578094281912944775924823050926691759649703721679954881450949254064918441280685119259282982269933155291925585825949698231606862185962414559842393044502648538508765941021547252081912611902741722708171647533364464229838205022167122103061189491762672049184887795550362953010573492543527746619825537827197368919672115453073775429068946026735660133325013422186315447758081611021693925121180973641692884436258671353268089368502468495200981297066852217007545618842527029035663244339157171747932568078863378919030976313234616069555348036840597792420753919930316013050538426456177715926960139316170468687398970624993750222678731688861035056409800835294805059146464874945178244431658467740590378481595870452364135519181672738031044724018134580507864899438956808008062498874067500650713190951284909166285055796180955320345451129657522168694140972883690715559450842420066711534415443336171788493748553575509010849003044518542497550287838977704332752710291676046113392527075211110049751865014323221161254025267909601561881965557541926063455188128759316854965155581689156617796933567675043893491035569592140748705687337011389436560878740435761472464782193375812271537796119263815308200443563623287808002886725907955374425140831253024257863199585099195829005738936190493829461923321955150219126293185924875289409351180524010833446019510496927474178614309574574783807786680487202720105893873083921996893631567802562661866314741948662542786200150366707773161629459806304004276259981791432633145485952343104128419167393753796516800499066561604199761690231879834702616804875509693315086483800942394662995752791476885115194446908133343458614031477338787896763778067363180898877217779178494425903222228720010235271568574385985088923718844630638267410066768494360843639256234523484035962782561850022437834890291118697454520859914056298220589057914300239887578973914380047385444747134869882252505680372559512423327849048198857139301161860674111428575639505424717758555904257269581628526540907100345036665811573454751619622441407187218944148822558348315550922516760289668751096996024451893893660735310886766029092869414599679416732891065762339612812861597322574537257684502871757478490101825170003289035007507796355983647069432860313048796813416868531707913211031095066702098300662233147968344336134475092221193394708497922181362191052302840477811502069026641960500959321976295177744659915895029871913292212237125715699769157753409742182734395062500790898169074515081851046760012535883899637131838968287104391514825569984270954745123268319434439736481713619251422010840567155270722512022146431741012937356958740542039016794556586269866484305088056198795995079978367677433629211092607357771029975408309663817440900506244799178814946290751907163072025452266691628862087922083029751938362838517194011433276984222584215201733666506129306891441440751466914662035681973974781090346408235496170617538500539409079673370900557702795574226570536993700418263082189000835488377972341786474820796069004708800161040113127467199400074130829556170985116329951593423830636959778132877203456542928661230097576978440357197085613003618171834866673397367246442143078839503529804874228504460009013876328434060182159701378714446042516429186041916935500638129721996331504724833405041392858988339334216102085628013960257039618561738320448765552820811067654032684697107717341937008712636548675063480469721252463151544364487749107325339428857042291755395282736171974532459529172078995326330329121317903615150849853585825624133697260111309137996756158939970908784434858112672572205417449686637344647845429510808288659600062607505995504912461462094676827507525848764631335125038039623269081860964170412368567437965683895185750506793195971193191108606205079079780805754808293120113394961787186141320226376674330638215631622878381474425800356605934854902554949124065784410451731917076529802380128758753174756743678453861765465161976750219563365749926227866082402682361045361079836306483296427398041504982743634514982099095677392537738223036996428409771949387445217279371243597133905037496218241865127241702161210287835100133564635470373274445037899421077764197360049066072056733708763637686916430069156895742835480258077140498681480552642344672395661474173697226531550368230771503292152012786426093239911990861715200273935411874764996475906409922247968036312181585777896449274619152545934597764036100158533809238814703081475965949334411549467697133430853449854284646001309555657046994274584404350386521622546205953468182001379753324981924567039002496294644049046613868504288201873853906867189422042227987412133049582817930396097156150968567215062574574637740240667849952964788558719002186781807079592254386734427615642303076594001912124317500395208106048110812122414931991714756830689317053879258850664067135457774498997014938928541635417274402513197804663651241619685416507364650112938818560220854316215262236674274474884013829018592617723579415637293521167347012872034298803957974394560873536621076418041958179075791552187141815442609809292600627112429639732562678288144262044762411027954846011630096620470610629656978027686961057354480302665468663229575560333374829937955347270143490736457900658471066528669818920136477008099733036058162947917020369593287111951721301358112755457086193774618283929621270544377489919534228500392384861858390688213974845642250397369481889442854925814473492381632931452787898823744375109800458022392658835536001279476210798550881902978893670627732377531414047769106092336670214680770679262387540858282665417672705763190350445583795463334660628022051412611746699013957893960676777893458001250155533702187419150323072829523571476035505204395206494059890662841413710784436472715722040886356224488929446089865420172682420008055510462522463933933802408336423978206092201271670752636576049688880556557988589107366997506270146138704299878222283069722397712660677875830385395876842984274093679018183757353688953807875866175725963395697307513782302719070909714303877511220590791278838887362135084526127489236233203152867123849222742185012897413327068846255860576304949195221139922023858919179414301053078593913777291398230228702855067137386300169251825337185873780499533802531567158728557633669508397724062238664125717056846922120662656496975041637279699395245268330659436127723289918905784130752330400490866600852389486128640779969525639466048932060173683221872945264807825239047148371155289613742430863290958147150427201377750041258248767961018261704485041028449742374704317827683479956598137931110117083042760616064923222555868517360535537413524227193205110900365374467221499020511429618940938010351986471578616277020135244057560610170745266914393383785899408470977365517282053941588679752642056667883689842944147963979390224344677028272055113470827297290950788187734502499275578692893757779812039655735556179138951168249387947821807813006282777863622190670902084187954604981807398270036869998560841129499378200526088262730083035882114269648491666580708710688355424285801799249072102759848800945077428430526864229556190500762977942882052169482777516723624790324984589648157286816265541146519383931965243648197450900115418299807864380590721451027843481412609144789708854447344291260286303380430877585155725218964822805043417454204767169264568534432022370044124855045730164543446496651018687675167760952921462525902099947826971235521936705398196106007797446127996225258738069020040592970862189562519339403847926837325236877309372414690150103571331912383161290151184318742585801350730222673434848258483064911048748588422589654393405244505472476122729086141336072115746766800764112968146282870646332307849155507197273025386060485646369100988467889425504561445680531745162116916892322319740012764287141649861097154056853436004858323407242220771676323910078651818243143535564347205203939161614890013547019692804561562660909727044625101988164464518893018211470557663932299859681829288815957647614596059099930118290288376039447755871857922842842659416097518642997730324370171850896931990145720500387231934151922010031861898880645017133263569239053083624866165906340386293510754360611744508134866240589396722175032994410290234781937986445613951697906957901264272053318448870307078245804999170323989680871680347555562007774101344246798766421226583681569805259954232309793149586371691530022635166207432497492577881398396043001615694926457545473901364276709375465970049955781302437109184405292268710563880973961490213013309267789252065430458805571874399532780574347399601961682672157957042764491100500814762722574003675551206279221851824401902071137770595852600314050737205199815344653652606863576736195832844563711778821926658831449696565181177500932744840507777775798440222938278963488053576530290765746858323837588514581567503132867383884924344472328783675946864205833840852482586689444050411557965014489446388963724274900557729456322176506935674565117033866831203236510689853741071314520555957158204770133284765943547896659947041583718321997299246710395078857504134066866586323830021537330281767055575457782453824910966330558741754570224086533251113742571031349907896343260766444139882355511602486656329565492593194674925130869015515797493295637966668839254726196835837164613395372462659742714706351682230201903380486605189586241465621265395749438677806421490340631794327410521926304829979607454868527482880821206359284126917599124016087658434866481462022562542318332456415684493004449192360141300470710052508090272942199572792544716355983827412031687389738559165586765122852567062414129919295578949224826426015272598731565775121986765480322777787799894724246233412221948492976409927419655753836404775646870845702572730252890831258894124991070988383353174459145989628740879018294361908834788631565954397515567946151854835074554258382297887733825759899169499262935063150272053454622682172919726842187067239923676573852745727130405894941227559616062475583161940254823253600480745551458291901637916608164091777710356744135745645989423518059563829246927497457820429480442212337725932158203495146186534336881044963815431250087147704340968110895073652151725308377163914918139431855281832598706488452038803029926637808963528976427806364651459042162426376701120108363196789850008393016501821208114013155732983371205499806884044481643202012275355154344938206306947862188649738428484495374312667276817893223059891132289598968700872831682002704356686576816471508019632178556760943298980543334134314741301461283721694077535282405555263411780435368091358431567075665628703340257711928467776227438437715041603826863606067222029092207379508914373240872343609198725884247569174657945305414117704182122637249521562116899844470772523252717571270120244502339602991005502738750004906946190812664777337966933692553707512987616970920829602487206846559266781519212535107378214591387419966178334679141216695028568736506646313585013423429017409079555434068903861937889950011431471195135318205159542897144177962369847665143887143823782547360611597403134631774790077143735983382072517296838295583615623886064123238320398339194856401201240626818761664093381361710974732793713659445272000405142364889883632381867371329213713144989910950712140023026423169058651983366205219202302245006322539603268484114360840417464777764332789287687743630176732235199861188465945609007541471282837703807952012299497092269560839588859508556086397293560553807468697816269124207638235361137305968694292220052897247526295276047065511761520977404529211153652798594636220483630155498037689843327455368345746987728286515009546883655389951677494475360116788983055060451554539220095187373389375248285114144243611274194865858012190904406324875112294484496943026230079867693793589393920656960638205955893980444426920450020011292418070016613489351408466023879070182720466691366749463980810213386917922583241649152217741156700660507515740118934322505503773002831667454336493470951110257307528991086747569104775277139583929274467199677360315105072999415319929895254108600114970531364729124329012519692864723826023942069389620961783675068600041128692108342546678210798715408928399912652984703227928612259272272600819095062398074671873621412955906593827372379721304637966557482599822165633235074584609977335969000991455375622555622305854478699710528903001345612669167660700231435902958990406998001098958413918115334782071870000989452650673953220608754683006382167793118509741186549287788419286638366195375544332515357632338564198642364208989222610091295508106505919305829045462124172415262666183535592152821103190672457620001074098610425441271457374010886777383232186315674791233980264297937123105255600826073574434323819990147931208147053738241706590942629036122389241348539867977031726933833995050481595565838158116232427214194428127977832615521046215321903962994992624235927703927057067284563413179845408725520677933908704851613072905089462676650828324461334878521842280307218057049950206775463896380515485719671101244484412667208610119276267389833838698030494568245538971400058927910838047552272261558418284663458010919978088114394712948868887302092016093541979096759604347292084304522374213256065217480724337350841109290693317000075579121493103661972425178263931955723887757498250658771191379355189182791139170288062379529095658953463296071804276081213658978256557383115149873603925982562212752169923586331327456647340133656069042794811109171356926509708574351488394177188677085529793271730387885861530181371839807929769270447035393386936082023390006038932875556928124641689495642078847474516750881866269797053947764253294203210999355939864022092929911516426083952337333583879095641133516380773564897804352797175555340064301746065901575298052900869270958554074411269185609144862547243570026597069854124908502683272464321441789085436524843060290646636921204984458673169901610522750083724206198093315109239400675918902073235310001910309564361373942698745977926249239607858659262930809421481332545367078844818359561367701093975250112171175672134277444420564250356758466866624104553921657018293530949764720371594843243079530845214445723125717188291355878417828122667742107527657067994708275090127684161222120861414223020459537667376982909451725110983793911318137813316283382688893025673110733824888035122022673791455997036969742017518977199777518494173873585965146548867244565722197660141689638152043124698521364765142921339055768810083343614707535861122330444259779270862932623707244179621203390034790126480210800831366150359475988170673591813380611137706408271103463905027268429365963331929680808863601364059533159959648711938576527041493637770066017589626449699889603623077282946029732588878550968602254279673677649394104229490446065968603773205240455501086076096955103316489359969803382834350080114885260404467195192311903342323762668681035943034464280913142103913658581597492551367391016189010098530854761334256186372445617227707717229964331901065218751271562884412674751522583054831538190022316704588462256166190932435068625908589864623322664563831056397203495938482272044678294973514845606076338957133418660034841609494564993102639769365777119243061158880361251298233351901125248251692562039340801925948837431135418571652346370059843478493464880033691549617124087416430499896666408027250977145352760091563432135642899741787990212269936885001115509452696139178040668785245270025417564631592209079509225830067041271922802627592053152903309026013357259919605096992372742415003304719680156252208503133528082752764069941690590864127966072501416303204240500166118862656581674964414020026290379666431346929636730162785873318912345629699893982196215265811251559417211182551530922242262013976319786537280866168764573190546047261449277767116217125600188180386526189456925260912305767443175086400017929445619649215724596752973254855949728878540288805325400449239200214513180933667404640520595912691044400471394727430590919269927991805323355166668476239644408130920367176630587385091159420813457028643647791730459381947514464857778444412639446876022350779175273316578259136679627067891800941037754020706884774645399737448937486503572168816317976331490758219395483027012725902821146623093714071948767868813697783103290338009018202125742252569952370715251839984015276406528658109133941341239594849644000087780322917436002322656093420347590905508764100191744317956631106531977383453451213312291271794694340146878327379432239565082631325452173978756916903479514353263103102753557150614552312306612619792316763162469136156684203548096738515681037014849541277452410981247554633458032613331270409770160656171618197198056868589025890683015794780052646668027923054416307746398208399607636982544125081611376746981544460329520376431910321827207230990673729014874454888775200580368170073270847099697699585300360707975716376948192340448772435129766298084921899919064328474970934423984537233868399042029827253515941623292633130555498232905929507834650859346644701642102280562779153416480418053662569565791903462468566414209395644833983811109918156158887340915613959060887933421467834399916528258733957507058360806644186232376939012801455313391811912271162431351308184388897686894742066847778051214130767298325728458808328678017244863247030075182888071383356302294095004258115755916350612655583704512651986216226194372360275488516165850656917698152860333760466156662958304301640503405070858324438956859104658360859175904080185707654172798865230971455151459949179185026412669888983290528374131003653690809743967966703216475225982565144968062410858702883059063277617949363174794566889431964805106652110141529782710830386216202802352167713275329605839125692347642408258954217649671472389776247911593879290267973164622017359883919161049634593786131928338741499538538903386199183953572950743602674184054185342599374291417304258269832991158060002539233340331963490134118498392173667312452724753044161130103758959440983960435123443062872449417168125034761946257387098436798221344258898082172185935674040037292134154382305022341292997478619201853656843761058316813687520122610169941440037888187922791247022319934439075920061108866007782829687207934790006285942566360747302421642003672419298367888097713710318245410975544581042682678083834946210634443500217348875409733189231854382531953016445753267840039393281419194673061917199410514493421023351284854182468958405799741498013300792134338049826817713528363707872585104147607571319523969722079279806997031423945226599547593092374588968157163189179097081189102812705828712428047988359734001373922482192222928996746296357972846740739381571329697806288467145550587671856715684183388526224966208727025308225702853169736655835892698879487788178306455106031165029933911928718004772822622750845876934133035201896851115224795715485753799411909285686254252632123069697867739984109470059367499349579220991397021703665661060218475289721929487871989739392628908736835204525116141931004034632367032254657445458121858144077799539308977150454978596488515736544200876227670153279174882523619075272003207695415504099356749875172039015875904199835412478218293618396913136363918849195323940246244510689823887967630959681777444425232616256800781798567509560747979791150120534490604448021244145546764744886887704616426166708664288197027423236440839978684694124382584635630816405454095611247051969131089423922274978417720512537506663066621410295436944376415393407034071173167483218873224944222104423647061132135266946847366924128856337507324210403123476803607774398038623510656697436747687154744909244073186553039375493755397705069193084329401835606868955290441626658902997979954378061723182651752401812060182388712395068337213135941874755930651021929310402492481978163127334764325024460124765669056908993167716697406015375147042953582669569093913366844319090099821955123324559653114059674167748433891913311033429125653638969114706223222919808318115058900018720279622954573428828161580445095911724293248427474788151908802469455773282830796664106438190203866307573194009898016274354798982612195217874126318120423651663825958849640695344135954516795687541591011348290958359149567201597071079782052543778545001155984083249320066127688883245511342006982097695094617211105248756612390091426509403507466342857292181453439703787949627531610816965370186901670152897360781144667193933152793159973305689266223548335914364630450402282640937614231209563941058162510999180943538497131138062009026697863860728388054938423819830633387402619363699903799832913027547603385977499167280469948074930114530788558414882047849403762299535626598647153455318938291221435691157042683937403401388056564965080891531786439497890982854366534492955684416465286974847087823411432112370034777044661496301449670132365245718320271569096930934519285396872698636397374024414460498256458125227054100352785303042421785316202048909242080969572502225093555603329796533785137698061817844869738577407093423484546436950182971317964991111628650396500187924742241151660863156096079231658843107064591826783655994063373367950141247665207486409659726960259643106821839344538877873435112936676017471186698755563089859242159445725821231276500645241918216443908755277133526605486933601978802078689258903164361405035008500948720051556458829106206789158173872976259106683540944841986811811089035205352875160608570010433186149424751814598187421179104028706878955095833629666216235114098944874615876195340291738757826303042459293937012433837798894113365287159616187334104057363541584719346670310851135070665901049419414891639536081882368551430331489121684575876765994193393201038715126028226924961948004600913069724341380550351210073408708361466823158690283321638434570515646074468675671395959800137101647442524325584682594883669303561634957506873964477756746024243874236067583026323191481302808129483411349442391275525387722851562086570477948522139502371163708676522342374879560166713213069014272807188192691795379694905264221407035491599441147478838102332537553389528132642644767543686768785694697508016408454413999151893868581016934340336874829975601174093165799820177517712505887100277123022541658927404382326781467639015662016110193816837705891634933279964961886881547643241295233552885361124506574447410112173266998613482184356511104407925063357384941872604510408337107531340258451166187365395263518040213344201550653313631700131889942014162432711416131995112057165938731562868178552046741232161153562600587760032681205050773630332773909779249633908917510936348898493435521524501778286722296774615539759071064199329783517820498543623490356049228888963106960179700256242690932064446584533607556658433256421874359757559341035376846703035903367874056609444062862438593523712114591583922233779110292555230086412186217452578218191392131265696332983753998299059302691415075285269488199797567220792828295961190037407393584203772670883069441489264466227166021502301981196828685831092866789089035817939398123682834182683182411413909348995935358459116559508728954509942451576079563962337777788698076710257422255685257323529135181553575920195973069576447850108948177376068298355631683673669983986156183242957395731424714859701546523487832413237026015865776748473517102083063760171784539636629207834144446376404919750336566300333597163420162877165525875903726267289887908467950853109859625696495438065941191933268976010636019102091116907729367658277081930556089097503931162202462375780624502923833290344719566864155293398469201335880238155443450678787071513540153843449578556277071648901613799450396712531073854214095836413686654415588404181656622776447926162253017864667738640005521024876294572803122283722018318025032405071533273549729315845593404802065523359286273370536501713621109953468976154786609603425670453817261218196591335435519982074852202609093991699270534804383270695116471985015275173592359862402077491048955311538660405581920163608991563520503870494580874633800840084422324838034351238762172376340506592920445678227258448128492055200065905495907733944691046175557406947491840682569146230532278652657127104262278519755061967169753959864421561590373237920083843401701264634590840075452285463514082408229796147319295635792273392626132408079654132030885901083573572335037433616250507651971720086345797362488759498126606308670742197160953877791706760774273631298008810502144172249535947349823769551503586705682939529407038865798029180048217635246353907088604207407798939050599654858590017041366394682293917907021083715868903772835244584615903553569427998915915569863053654621702175333302338494065415708469354529606763919526820205721291564669078947564630136881874362420960295910149458262515227290652354740782230164524779800044258417054177537304183024137197834098209921708256258808722394284395672104422278722086702376174690005769520739662747290332443635835476802544436770306632310564876369814202144129911904872086314929029678229362585041727576494319678598195464301188003299597633367382437633322247177484594791085679755419579664544251166682272166283416387988774898437258481427967285577856441292603476601560565412986848956004941884573331495065720644808320432830954206114193434622870721262229113246894761782565486069213012649626788540405797509727243336428436534291163940981522846630970167393714187360012855309872998209736938104804721942429053956341310374589998329274949222549426768411786060608236752199924120949315857822756250584361867651585770250931037620221060983454781942621113694661489877080095908493532650607302401586869008768958467882571646011584141849365165967136080892413044814127077834895228862580756484393008975756502570600177843051059014176643838449221449314911379657192188436240843924432143544153271086118240509606088036313134028210659410840671225408419349796214245940572607302774257461051219183982214084980395864747016427125360407430388075477041911192893322789922201786119463311659472376134570728050720733977147502181290192965691657295504880250089251262959294048278001736074022388718801642483431207636566734784757071059703611183343352341093477687341418379961893716065822432279316532102719661557043067685971814837229322174764528874887424230665321344877819004041864050856649706580298584764626455449495169365343641538960866182998687724050664830934528047092875560748174987783839043617131181586712553518879620702539281598616652524981736847906377013103481216776725927151224135661985474672076501489281533347381337797167996403373657999575105761542676343023195495199968395319754055068966274728088400771956043031375063923934172412824561488163094342923384036997069560471461605027870132110317611341379168383361410337379013739279213432313079205926683015901488226752190828374758998626586184869888892530750642674593486865501944950201030429346382918132405257496802262634593379089411012952756176627655748091619911865717718900796844201429759510002670265139705734726031016818046221132069402291541048937629435672424144222147729607076579318241412794970669514477872019958387505568302880523677043672826894936671280505919074551931020388358120778415870240023382287347370184458759885815152174248690380852487239489548890195312092171698707139177702397886743694974293754235684063463686447381298906192433597394240205904669949732481400147117553039449367013203624915798754010279181657202222019049006328508746616985319617294875510556816696737223438707656126694745730709392559921136559714012804873905192443791719627604636137067016582125141776288934808041184634478699941425406540707560639774660634530085492832587293443195434760642475486171414081685330751389025356052270874929159733403121097626601128175617474684888362812058642440748942181807966087665054312291747805999279036382246874384006092350766016107736113200151992857049415194964399559581947465959202627414316179457483238940628939213369014401190157831433769064495225897476104621261763210298061145969317735487924920889096434000851262224608237265596080144139991434461281326439046890691657413523897364107807912036567224884682586962472578999997046888580576673034494252210135783638372045133360190613625004235972805403538946817857998824158386539577447282998896530793087390046673554871466456192530790104580139730400071667775832882896460444685223551671051149339168964468018667789629947920278719826821168019637279008295807294372592652885736475262995530795015012212838885720312570250133544304880906101994788288323866129857202440694915478087346950595841301030260702465198297149830920235626503778188492877741333999610308236959873664039854349237296849568718330768930675867268395429108753504355475307534233708859536510309192865725450376150562442889057709120062714988621270889558767939833445167232304444904328296055083819350170438922577474614449074092955788666641853145007762711800848793185349580112011557469576671309959921476156365919543955213670203499361898341088362246678509387356654607800901933438429254850834115197452870274058494350979138980908207854927875954258959631020825890449707404089540190957807550456843780713604914746818579291547633164573764726018051834305977523876161595598639785896195685215069425193592947564194733821456404529849573972519823295309180400615957703754385849653834528926973816297158309209863115188382710312050987059506823345317335898633544881871359951919481471209399767932908664539258603788182760695215901219398965327966645735578611244531129674387925972517590789581499807558930234307355207169914872454665075954562479628141288215369411986826279740731240221833613632733181919484298626239962265821820889263908568372973292668582476856808921254167756109881506492538573191596035409113235955603930254032258393969229284013763587403459326723245790357844578806829408408242702891890036127687483362979835481419536117810701307502334298227183329044250095529896436547946316447184912651900241962202181645452264029537326340199278355494328499963063595192409055078627498521316685926398420439047247494764582692194520746728921009966539416627536566989246879625104476020009772048313670437479412588902739798831812314388745582234753795419714375268796767703734205612626072488708037043086863031567079781577499340109957995022163193423906961399139640710969205694840980708613938150593892456080193495686603603486690641543781085847903892624587591680449657587221901179182115762177150859267357607715967095287785428819951852714281589270357413894593840857013401517141562244267749316662584997924212530169134792102363437505826757314159022589830998406765935789984873356533832897969367014095166930185031353813215371388728484255090954025816779398096055749745577148426713829013759318329914809279606214010041915386427240272287070231760182229739019710435368081088489850907888139459080551953142691667393692237574827652131391554198838591226462230973098392509664744862668907328636671746110649141408817585209471503499545295364512539305135980402938199675248969601390552584146594420417352952474951464906321866418090651750502086979810787648696623957933121053344562747084703832347453779674500539312843634373096675592808295977448598132616128688215456169176543979937660034704611142178174960134603471665789565563427615731547810016110664396126355941368330174013767817339312025319945206486401646855985437394702388137771352744916249480483974815974333675981496847553560799484477881039055422429610597551036519757718948214767972759786278834968429157604597302414449133678913425279341880938064383552767019022569496377781938478733862107275289345612876040295416878023347663714960991695656529170483132750472444641009091862173866076209515405976339702055967223680103232908924557497843286098043788125614150306562784014324570324991491424946228680120946450185137304787443878224947114168276251620603957108128699798161465490486869653592325844615826858038265343001541216576325464989282121454918683403522690246575121108987602725673482749433245943947490698200411651213856873631945470302297475923623195275222662307530347097475922167369240673898069223446717611227829807189111868112158991506333648556391914313986910621601220869626469242565983008242557955540986291947074314682760049764806720115590996626829311181824379100200682500537092261148106897428298554210931978993884410506821323549443414541201457601893487144523427425432803749279959898165797708649388207354606554976485079084136698881610120871812035694949564527789304504084734098621656704432661548120808012818230192732656535593733494971314889480352836190546768074271725396244061204395318493940400117078322746469826690074905766184928868626708607767795584580183321927444653877994832170300378236051162206142346161371002575580734478303981040208157376785165323752037126665451450263758214805660105661012155734338223890980284788353433327741393690287469276179252820790419446429187568517877324114677609782303052542122272868494977844010819410595758196865258673338151693474807053820099213702413405685671844547893358834509050508947996863048714016427011232528671394651328335829013889829674192436569892186956063231716793926258619361267915829839458009917719974138352457725423475535622712472450249141295401818791595164310111522946683173446384716589019900678010645628716591976709018318929647605965707149152956725878647698544505049387236233413348599464982801394808268501539678653237877767743030213015628078891953798106133723623525868019474206552518618834805672962979461137647748896207797934035015039518088764994877042461109748543932997607200454962830570652087343037082241740252144265488580510132880735333977022323985157151239377568529014674081884593904397690394507406646008674680698346006050528996422997038321277198627117825867088192728001263368402094222203531560726359427174262810628694768631796706115877295291560822761151386972793051686236518786932191947887551489545010302327817526454432664446780020410869446346761006567700034290009176402063983277356230052372457658865762365339472713374923600032779864803655118820118899817826470590429024406505212437403172936864985094210160062179191148061397900304541673638031402159152063807412660093650505267220987693866145941956236873530992970107125293292724330141031926351829508170587891816903868693140316586907289528965971355254665622994408816388276920472087467347743899980655422492212729123982992506426601493965860709385292243352875152491668964249184903874092241509277057588007310267531294635520444065419284576716457969714499306683041921032814457664049879090430159338152189699996078193911733974352880204457478744595622313098418974722999396447037725747495553841315905327359860860721635414415198359017531272471242013785445181208871096823559408008760652867360686173084526293246005621600298512774617124400982405155689863393282445395535333979311445808216036778843879495678276445953037705405062751399163599548254275250022268813284193237392086666866285439056897743086711777971108620265330415656474592962750994526785998090204698200552117647310758627357491924674221241325743003025770943078473139868016664965163190130840535267223364932125677174990820955781505001752488049908528791412645149433297336054483024331945888752381974642647983799626146105235945423324691691151501167160541997471517869473528500844538610467230055056091112381634804353456557727414090462298477656375736683950463804318177273472055484872021131879811885792567416319370965364573797157246568147018358771165603711879000234495272866925797740610629656208873301580635841099824896891624043755634524785106037720628766796889338592465649199887680897720004916542251261014579144075054030877484389215858046705291577999740262028165569140766777398604678128270060576373753019803581490882134575667057409667321772271994418535210908156109031507094849708309899209934084100210864505864302552992240983752292375882551226742452285170603279106429000702978818385449734668354306685707719092120483745752686816830844357983040898425208432766292283667914354789489541459811636149148667415179302190846125236652557051755440393275371545157360996180749122305875499097378101121022878047664309334897286601004855769404787475940442039231443269830996252111388487766410232556352456960417658617605961111248229983153569252454046151670755499261116801517978540151226230642189760988854584426476482834842223861942933059215388201249883286850137553958202012684163655062813816697555406575858999798933114561321809203856779380352087526341920089811952383645603240929093512688908595329461050212595336391431778276313555610588916938569944430869333957082335860635591747404937056620248397811646275323526628341312741628018691691039469799014635313113477724134183923629324099159222857948716537713441881450669964393457424668749869413482244390793091515292081125049495680061689165247794581868353790631502125591984380724635654056848731488270596678601412641264270592920619017368355367271636468609129622292458345695858983512917449463914710339651499911952077521310931226775965461377429243906149847252778888689221439277697876999419722858071908878690562586457771067398102149149997503838507138204727617368964262692144736427729260471750320048296191472101406932454908540973065693435479800121499611011138055075616786143472317755526847874870109056929073284953767637273426617910770190657489674294159929049433214397433162407378555158033543981229872619486263542617569074551875110343796170112667180149085348722225639942668627791948120438708637853555543620189166810573951632608166302127449097137039383047263096546723138650987816508530765045765219626851082379111870321672079420953060898999094393377118685900282696723876034936212471604892909586426799463137652172232462615978967422174695452652077809856164812011553330348352106117191086351781587292097256015681250421234306193848116542239917629591500715748012379769734191643009915465170355579703943529556590902722038196481848890730319206415863669601780963707210469540749683003739269809992540347387715397156426755953175133951317222840694072475231328222940142883173709612981268624801673862806308730555218707380392134980954206417156072844734293422831791936929218610039112689947401909503745903597535662922724186210585623109329926274353585974613084353376705132327598874404628863637276695089240185994374733782846641195588930074203648645489747170744102251993033606258988113790222919334017777621582304907973909404746153235204732551402325924492013860410804322986998960805331740716143243862561828976141733451847799987299450509872893360197140334830151810912615530677809255060260918133141415756230600278967661821451850249028609240183188631137454983085801986884417854570924219849880884630732828017475404377458804392550056928170814624078465400462317546382046645135664902135946823049077907238331099744008610499779122629779865259496066587243393732608881351882722239802229837615232863802311776627474972794180930274038466283239660252252151137254392687744181359037450827467023842121223039744279187976928414299929581209459245348704168261827442856459671532096798513695532087180999118948365332733557348471550364666451788388655814756213361663874232811426209573305448054062731351930789342262313528307409896324778311919218881257482611937996730741875579833630811632295398667853653897290039374753356543863804045976300527689286584276283885492424211905534204053093916959535435413161701699812090563259193163897574395000213621191492542610384889308548443644039143171933359513406147052944977997487075327663208392646638279093302706000060897103513337084654200435380338684887401410840336488486573965885693092170008611757629107829841691508771444856569360993626963892145013607357490443560641923213738881548889506580591440104971183426015041290481384126247544623141629857853073862987473691239701045329533446689100848380135503558744521790032831401972490989654786399311528485515361542939779836170530806397609830344596391658537504349545423867189467089543537707257446156086067460224850281627050373958022508679335988036511379726370794471986991819429390248324513634365334831812389323382590150915406421265644493096108709892149368888233786269456749677711076106047129743120305104103675456756880899598038498651556981240833849992081395259138308428670537008230033141922430519283141687499489047241754356743742746429776504755046597993301465859285163172668374853941478926280535382383552382527419964299920670149221023636974602499075669170142409256885417335798688915144479579916415075785089136444628797998441687274579427478787044772852838550135864691506878184640732309207976276307682429865628099168836940859965499509329550277496376502798476775359240840266758487784931960989647280092531545173957254517891724557875361704902304893732408625366935469683186798614928137797069728644069656485411186848070182102446901027655390175771192408898016976777789799190417410461270165410886012187908501770749018753003216424247423440783161611879320624685931463063343268931048083208310179977843152943461162801966741255648802469256596761762660333044548965853255344182803111182583368188343423512790647964699783378813479483196764662998751945209190567264816191526890834146077001018607857804526621028176435600395726149524263835475728727874711448837661713619543478038884213667783378745911548237767927019580374666113445220370155788542679259818022864724821256845243674939328330374615448647620434633159308553784572073226647647490311414136604796261782237236751686777182512414810415744853020128343555218577418560794154761277556386518251412947532632356347737211411505589371350398589030777719369314561341396034677661773592502560115040835328383891452455364127064938936850616252355392685576586357994049258482655135357260904755907962415268357918123235731569366433929669081964883794965670911692772178682606576107178576144511542236783592509138625201963438926933501246807037761792275440736287648523772661213406661533381438160172193370992464293167845698817722924061669535744298218723326212959399342939959126535090713765696959735616127579883968868099944072014760867136703820088263047452686719230927008344717715768097989911116112489424081725722931396909227338288532291316336786558546290298200282752970506739897760019313712150293785098436704002463485671173875128909588442954343303717012043398386785516130505098504326386785619684612632028175567702999859851872194675421672033354376125736160155751456718111246879670189709597906802409620839310124744742103875950811463192275837080014355504803800899850484783766750606426844122590056193934780956761306061534685642565055006395156014697360489226696620924016277148757307507215393370561447991047165678157716645765210696055904382308252630577906422493358208892286667585094939342639471606077746240336432265880564974443178968015143610400602239460927029383852456776565506135915459819638085923306552088643153133750583581331554562984734822899795331731707873779678295892180968160023403047339546090024818346543234587958136116554636351091225759134753925422346844694875604866637481224639355845177426093758162894545585452969085684096983975065498392419010965309722849758896795264443198239286253052882861810052941340756950680925990067945572803465111237673929718327732841971750641982139654578646207751703663539263921993385172343267437935986958616873974331169106732900842557900884868453812079899211119162735149997846185374595065053916680260096353888810342101530783729019624554899924164518116093308746264290891480682650453992951652629410754720525687335834382164269858363528481148875627248056794268046159515526930486510620346077079317944592812418450024915500635708696406833561408367302848515952233283023138556107787216850290076231037225909549439555636491689074489425800186392418992934367312115755445117099822863481719006992768995767060713908049120484902556381870688950576105395252866264532989050704070342373703780160658368697707243096604035261818499796136093799647628322842465573425600643349104984765017983676510905383727850756501266902357894698718270039940301762311162536302527371652378845771876129805293744990940713554479666113621668151866486682204776137967920905255289039332224638976836083349362048030940607023315481192835165616253731383989790855754975015601955035507662643383255456478892265410842387675934134848956150151622170673646211556570902686788609965040143826817681083911037388406154800205064786237361449458317239518327825745908133132217878824587808378364329429166789867498405686136848184555876106820618974122095265673071117599686736991172311400918010586697871519299578432673171600021748477756150417081356496832980163082124897079220398704930369951962060709352759791611772031113115784847227791882224883703585757055864635319838311844915700525473689763435091289613687470528619233343892313082463098692737598694825454793592072759619006915343153584992869236492574067495360968277371499930607281132575102359261804912010981494171083482653800476546614087787035221020750231890381839666698116493813895818928006936721920037985563983504157323853518367929842690286732192201227698172030699664982544306314460339130139249357689107545002318858868340966277669146933911633425937704725073297001446385295503762173488029022561599313021007097717563315727180941969818044330489126106891057843681511106984013019933024058452821703572477029287343957336668699900596429766795435422835436530626379662069787386210974621255224684774746909680608539480385717940943083727174304671622734007360540550170234976730438961758133844574196638995894740645975833989243122075473244525651495328317551326926675154651301662387797361190695671284162895192023050142132287143041157505996889331684149551549765548330859842500850286684397370601888915679491020863348130137836652121221689769299360054206754763563734938135651156354421818108283959693467291480498105128268147654500421299474671051156295365379651291777175289309177184141866791383062917829235493223562917456364655385020017860088127648909119947262327998344475758345554593296492809979421756210765851996578729385097019250168040315651462163376205444983621008355211157030746376626587721686869809150617093781320824635178108929010929664688051412783598708468372011087485147451284453526623650900678215505158990767144510723391537133238658504840207784671078792785251725939365450188742600245486616717509967523880507422166062620641162835072151030777964721313292044569098308833537096173150322483116803024846243514674132592565415031440806604533016843215054465090315434274750795540606150461178146398028982671757367250916881562592294063139694823262306016213089380797466628461777706814982413103714021871399263935119772963266276152952488941394990132657580517111791853059793415848515202246845060084082925483201858267888443723815334952279485589623400334737214796416119114021457996302463194263641756502213637899516851852148736649427150123252478480377265505617546208789660849488086606801549772160381410772676998358965253177306301511977957131439698148594626439829273005909225206503797657889095923141580331097296533008019232102051628543788667769134543925010255917576106526903051927139890350382440965761914528845723902269171542554507160277748255086759720929609888390937654123705439582739803574141503918072793037965581482275705189126727047300555991854897524621341296468214142317999382302642995827660155999914604247534137088877405553437727733347050295930370469974388483146896570172103238432777890088645956097488674164736679489511612133354340849767965766618489666376300110998225358264946912224065513825134236122510153124823774260661244228533178468294193529032160159261736951937567003038802586899820598280203058992662556916833639391893980014505496063302696729869733275817234971101231205564850458718312282474157465846518186252628822811418197272364089252838770861162864015320739931534042955882296977784138496835621058998252062011353607945804247191833602218801878246918582063789119984159176954659451998953337623899376459973398064249911146008047800068913719854882647363596326284992675333886546322112278729104122093587023271598135313536231806686685049679364777756810683357889032966141271054048286160826109366876594158159102238749778417137672340753043042082441298495116594186773398088419147234004763900196882412911509467780617240997840348051014461583708885476536409930598806005290445816780092306689084800954602379351132355824331804353553028046373743870737922914411031427203448141840819283544066565637800402948057132090571127633703050637527289904831749380151894300837009209358974528159175497188388274340628056507062979892877305244443149704624741599142657354829810972835228375340144302183226524485538176190603173734894971550789226619996771062730155147778492265519983350019787104181550939037486674891872075330354146744354211867871500604494653594464104657241072981298185808127446878293431309059243938073152671399844261218645861451535237728907181969896216033819522627019090035159861060581881865618429399743187185057333351414685084467481996236373310800735235030968540783921816725803055784111870762417908813569788914743933373079474668895425576662122008333052440692546808570072093218109004081310987194402489720745880871878720799306254346264686875565730671966442780535677756670639707999382362221797881457958533311427280060995146555065449591944101295334487015768434195094718900055671693458977988460535380958871628014099269078065861455551605417485981759546747486699770796779699120545394125914177143091767706734234013770257076309399916371582963929362504763688268285712908463291978462697875349133782127977650172327732964622532018417787519711448785418203225142318197576683611543590448418916398975366553587863629968185087569957175099278291459556130683668749496665169427746396195555584710262906996246463133532405799639539051441430274906082343663437551115316121218540142905677322304540323950422645582834575760892347807328388378209385619325386854385244125165601801410375480668167630629274385136690619847311337331299661577184052288578526828953043888035295656447220432288978705780185263425942547407161417593357710320483418826280814287445051637604134471931701337672718972365385514083591567840051761721187896399629582777239134926776980153027054740587165067280749874588751747099509100887860742106606928472373088511791064307406506394974202455781341994815058588500407165545489493337152214416628027544112063404708480582122225437260770327178323688792823778490731250685975241348050587201209077984912234772390475416319304960710427329453413709971153977208721540932971938297960452458014309416673111945042115450635517016175445712155978372838632114565634336428255419181614208905938664402733727684556087700760409864111478651062137002794879196724472560801373162747932832721219557766730607289155208586568634703997314079142459891184662590816020919210812330372507564988705791332583527898086283203053479847469330803432290094362652430717676163014299294814068526151119767671137415780611400644962325022791462786159922707729168423356382503173523565960900020069068426592480837662034047371590909818934588868268417906778199444851979093500713845049098226148296397529051357741793230069367775509779692326746484684666394069449242428874963216607819001906697758874215216614543635220753029856840465226996771992138687391370153366573499806046559680629793301699979617071696774612692597144841561318318222657793093020613836746036415196319423582393268527866686024337841514507452323497131360057474570448731978864535829319558608018341927997517010138225948151922551265134455450411233438337630784344501660106700255918000650723267908424075301770351105315616807404283431870234044508482066352482552939483772914976121243640232573750216039334938493689477676539098435415197575910476960899396528615779767841276172432011098694927205267968409679225095363623560056952784484415607006991480921410559895159177327573300367752565394423727763549812807808004933706403557098255239913672002600629025066878785903989791281852513775478853290131038101779501974485382867815114519092541557571724947817343394736536587062476295048320274116357917779155378488547328162686032118701024654041478383667413933950843067126847628545395876685065966826971277292517771547319361770066083462103591054849735710309308808498434933698076865103101024761676661818356363556461263162340537384185904651119768388258593469627563669535782760435182479411468475557589936545355667469919521282051976894066977598370183933389696544814768979957334697601550021169205511436489639412384624872331422615137596480612284771469968553660043153132098213820229894810521407925114250903042327293658014116514402722854200795606328198182051160720956908416077432372242564043013437201349689379614555197228258425425741206365254090122796396047707736816335032590001353555179271686705049327439384543453172803084612220274343881338616341507710487859074801254117530380076683913048724923693152606036837665211298321329422443532638653235568570559511532921842923229836180112527077935201825025622700890336603464988945397394801993371095055670038984318253250631227419587462898289675619512827305568890367684631347296325078149790623870364996001305251407530361621560733360935742239631962643464040154603910228178582475236572945177369130327701431661163924174504595796094175599474381798399369759670059726806609828277130248564316713810892908323897229418928028417322260769955487751238557414617158685338898577186616280888315383922566124425961854420255282447156312311370692182423395349541391757242979444374803842259773012340028931057326456827727695459041042419312919605197298533343517009729666303301579370732314244328418130343293303954987560019480618179594816133744472685726122957361512978469239539360269861286965902539782823064438785065467856756387318293517856892141761296264354576112418230173924278350146155241294751435654749940722162967968453361148205278418986247125598535466698659145582751482610061718171139004229180867379702289713896234141255434367987906701581792974134143748868311970551410117135127783530973458849308125732241364886223837262487058957397496162122266774619675596014381037172566046189843965839347768658270835911621726432127625003250890724904492091734943182972628689297767184052713799548034381053342996510446119316946507148337017942851469209062819170197758290775475971401915632957101724217922978125101266357698378174049745393568300548672696069758670878232473046412052612552657904156084028414713350799734867892056967693647564439709313052107997205201789946404021773381807450385951410645884579501124101342189044645677120130253460024861881753061826659835630577476828103248539743187418362855703328273464781019093708474332845821839469957203342827516072005016603869554314995497207088960075209501240326830451707562973706837993327203626626898405315637909702811097208171953270288481327857094850090680971911966523801139570928723590392429588409929984568409102398270030441598130702442390787953483367751439628678126942655079526057543620296389962636263184177843534697543476900163548866772941302909837040632451003462596552739181242385964934348682011559676583561288087982123718202863540510028286048749566394547140540216785749006236290234895387494555513761728172683633305191535912231716914731231700441096893118952972510499375575671185340957749265839737002314558497622417410125136595448055366828429638801850554369595283924380409682027886737519790930428964023422448598821955530379091464856390477683648246579729655125019512205619326920868947958028635202933669111437005656612482849882562222729260127022940880164429799892607658578392346971311287563465630992723372056148966129607052593635782526963649381576007842301851118431377822453083223502067792410266176227196741974919632048015614108890873430885509979364374176825952869692129752546683416553500410482853360118942207236732997678888169763338564825159957969073673385132200644198570487947900305655780026356238962927717711257473197103435064350849606760705624186424620146032232374925744794441727276769441276067747958997818438629104382299494866812675967462396406288151342709039877553088947939175814459074639563182724034486637103174285361092313750038524317709046416226784438063378877908390710053603053798286078145728104117855770182551315770022094329440450012804088533790338347433443140140630893550523639908150751993690255994050701014485849107557078264527280591203922013217204056148032560780843312521186536860179062989686146998363046913726135566866888786307615266782115607349950004150102391476443757832612399475868693547427121147097549974554202971420342537105477267675665306092709452748459088533553771550167113575986038161909121388281837594871098979075483606300365988550996348386261699150967820660656138155613369259839581804474278080951174838026201382412697094410151459014327666106079483312988882301360485361623557812150039266767304349937540265462674290720806887940814566331160652144633375357713463632969301596733604493407509099198800846825287153241720839982938191095344413787144292833113573842716733452533161749817846543181993257708423130996270069661505065226486492117184978119461063659233435133119480887569206302311166235466922259521335369851312530262927770358368404622130246391026775877007298324593550603708832919033740005401700381062602505009093944352519409647641380816712085274406775978567877589667509394941983608791940238570346888255418130011557624577510423461239840207925934315103572873006182620244264046133521320527693097979937864142413568635340607004481194400551322429818363063945684700556938727753560144190493096357048154764129622877818343684445000301410571077793906462789173457317884193880259679889381298060516499983184359433298032534085372432300040133578731592727280863909627243433633965300320523276097737654164939707075167858331512486996567611883299874584985183298297164015678153421772656801929903447310083933134200092179283752682717701854188770680506428573866713588284221656170394676258416652134674114542239759314133927497531862669243024885781804250258804142953669062999833315631715624670424944368686348219063754910172206942253152146618125430262651957750290687877509375196149547737103496311460669905946292297232269139034341108578633794416301916261225769770569641206753106378224522067216187203321825363500658372138515992983392107188281067016058069841936008143598424254763991710283696751963702954165001950331023812381025749178942261576030129685655979122228884755073475697399351103636245146425603001308318352556698964123376855036915156059542429350084799596204756854453018178090021097853841862487898614048961026696900028095887590430629211573829795250738713820595970894391079233830961447743136168154222087590213986978050974790288204097069717130092386609516184458824140318421496547040569030567942445658687764860983198969720089584923084474534952993216194112626461093018930728425505372124136096018876831708275968228671425532409186327859785224444160656108478435296259326093835439633415572049357602631960045207672428190047155406337081784445887412751759384377730760143939699694983470914474605360526554332962950453290839298456018791033769154994137928808722506712692019201239351843557225001659801928608380012006028953733322436421045509014133710558171709503592316241955834103256333919034469851149910945293002051249380784692182771379647447134465133920882298439416462705504447818703522428049135719125661913026715208626299450402697594558886897742871729461261426050957140934379862393382706761860949039132104325165412121987388434792629327228866425825895394942529789722698178914228454838440271010460774812864623286404335428705288540781914208383224783089107884630963675534416040718270271863672191392718062161966850845145435398642821147935770327573867809425804663633293164447155662810020183662189102029473169917930367660464155734850961580557370293638185139787652736167772753654792381670280148288365142400025311809225129693614642994787648659954491567876680011619545293087726966926973171756758088016469866352978700957563079277336225203332435901648182218576978808432081913663157011789193793110871359573867841971212115394376600726194741093202983916120086820230666470621170727093447418510273194888960627353279857037237311134472467568513403298444527249743239898689002772493008102575369772791940719176078265652296946017478267873578385175193398267111842073503620250392679533137061908567007265506307066948894640977579237802927906403044429758802209032666811411039455103591796599855807526480959779525583033976946435105388972524204020910140980440107479963789092017656834789980500544318713418144140161741472211252401108014914921449189984905705693799921731431537300311839990186252978605218543847674941924102723901095898026852524708761808086936540837517603119152479196428404127873350394461360708198587756973067579913613370863282098365946832279107617574471135603650582860388976904640213382425035842391129346558241057205329865053728516268291257442037405196667074952067698010969599923864465357777268035018054354723709187926682810754938459918458317430942586054585938488610113383197785117492900037608285520171996658176017151596279762980708494261472434340587729812891793140527124706233415943846426374655426492062732984694400202603819710318343691279546970875066380532449079757101550681107600199359741607364158310163476598025197676495672766959919424748602557626438006158364811584440673091832065309408066522349639365422460248199676196516447546228050974348124339934169094522686539264659514988121628327808394111374655014392687722011116676955689198184243850677658111644779010980757897552546258708529862399144363664764041677010513125944615518120275776074544676006592305483231185501937583141327912948236742885544184079968652203259716386326366043028614925092198624403827591724542671346551928953148861563356627439796949281418731648423895624405140124525964895242613257303442502372360772514941919319179279832764087819283880441084388092220239859282091966674749211512559898926170469880828332055076282370687535526137877326998860115513539176297585313421818661224580872757554460246003054231884684141496639770570313242901163901754165289717349893135193406335384707433885202186070541612786075573033309504176116113463869351171349748139970756171096239036057437129021084250208464641333746563241402917715376555009209596996849816026294226753250463566031757830507267992803818350406882322448846675767233106963224059200382558434016155407142328851876038574548537480289753958195891289441051218503996798485860604768850658096846573361341725168510251112282927725492020694293017807970873808330634441641744509811186247329825056411185880281579070080831286177838846676480325528761884198069165251097639975908135519492895645702958184586434237354120615582986269545429667902825082047017499990605503828596059787753233204075889698351987056226393799791244595355343614734943180016746736840421483354461292506676490984586970093493680524898143210387979836567141643037093572558937446590969925858208400553039069774515474919225915767842130513513105774455970679531712971591559556897088806252492696976983071199789636654442177188422711269602287035515074211848733475389267765412716130473782614384858654993536975091712196374440070890292736508311942451461070759850414871034367003591637908940864201602400032128752592359875416010341106022766234859077079695960242515956411044964132818044491842292832480664770227217746373704175620803564028922002137742467985619528115061314805402769342588118156925945108036276294432329862738087993226899219340626647392068640058669194486533111283593417607586233608171027381635789741553292717221721239766935143519627318093922135240458363831285729404208975633147090201467627378907395823424086951785956163238862802438998444408139613285180372155423885236698378343901363001130511377764186116860191611316802943562763883297621930373807637293451212023276358148931598833265864253796532453159375305717660598165608409933806076258701547371646285574471652894026072955401243159700729039833054701072413387736268289088638636286387863862387801873987509890545359850799624308855585673956995896237998254992851445057005518487044333867297459150296277449355263110935150801215931631483233767694728081817564809134481551470791884188705268845047067672167936716454505444361674383418773339769029398013163123694565520296999633292112555586768219806721636959165491563251001069765583790927126544735663644209924488161633143253786710865704974157349202538019810746558308958125828228476192118644422137400921644322747346982307940011213520999909623382198649221512508109496755837535102031899144572340407374278702688950308815767636479130955095729518159002629002142179820513408429361200814884893143080899065877562755930470616634227436975474952656681729529027398940888626995429044261544275883794793470809472537837841617876328382085507579834101079801342583140052837568577703808193729573809328692112575875689982737826039487304180013488150442901270814396351449934660904826757704728779007960069092280229492133581756876510293272094522947760879728073648488059601922827803297308482428992555234968161423363577196133811572114793992621332271065424424975520802035969187808579233114249633923234587060587101231458717437376406912268190266724492416420320313796861931946789297610757916543206334758193387310062470610519648897094266081085371155393100928077641356391538926970369798991355430989470888845856626951467056845527157372339108053189267386745037610461983358871254341040365967267694030656607158738369606055429340739761506343610659142677477219852781453045588726447520888878424851526798748611101959731115793573294557523673396305932469749305438050462711917757614325093200648397906880792041958727507424484819413803336977201811272355133602429584594633367585595283688638223551138669408180962155670326712218787523639786797344501021272924003956028788362131836342184194597875184054209856279075903025249197091261919176970252640532715065221228989896006292775572149647793364263306612685708591595189628681548944030907410449936729160764099573551914082375608590920750237788408915479553573720440590513352009971962862661953434995566266637614719172826308079954475218331164108084538205173990819514816874210432869982282782453433344160350937096222934137439314679572782310174398098954397558727274952923559940554534585106109815796938892560957145559376569847998433388801106008436549080065250649336695617508214748576613267428009203535326456896866010418759782494741446224331779548037291940736578704707120374237794771844205258782452598716213702284722570685272732713685014503817112068807630269988763612916185251938002490701919928964294718862781042682241489093114732868635950608580220747566260947231779436477355406147698830898529461313314661867864236449277960461939445117649516953945260937710088303839511891194137628130178109593351728066917450843970371346500555655644853733707028653657088231895157355744928736074529323690497085250797155092973542916240035772706267715047274572851730178057500105197893491994529873158591650555514726040800179510738758538011468266687801983237225165197169288337183004917132000741792048023294684812232521207866822440374831008578352037716805594193633870091643923262995511645729371470405228572442550369182198500522203219342218994082022068118502890210362413715222749140185472494792672461024010503653864130711843930278292858152707026589996853293970613533690567101475783495268430892958700803411491488401243707405514631589027814879623653783407087863007499318532154998873737225311827851702314859336392087145779837726392630984951263420628151873585904967833554323259868306404045265936657406296501139176297087171710664205409132889396103319530349542248951628517994378356446014965697090253695471617866935123294321251034704299382545023423740172569928597673683507429098943637888007224374628556460933433359322383646689766536326908277498348070187156703604073954107131604038680244031881209950590589001856648770024541225384032618655762480783148774471337771307007291855546489603816530319156881464126932257571610034907810945136920429791544361265500137303436280068243788970087559329600053376760133801092833617446240822949949582455105644783773078683219007758387081647222735517122260678736884009398662687990663388893137722757238070572502267011060609749994875294429181772954986674661491439323079593412519435096714263005540257402545685869627895442590711017594921159939043665715996586781777170263809156547567643366936731361704097347082231936026212716176510858545677631922477283709477567085244245384182495632058557035544014077974407998291900079724287952217869784252334773019154042369971684278178796509432919848234579711917185101044469610283931781087507048694609745953142891429833456436995717392179795078521814571796869762029833242860728346196287130692546675362928481624151275964788490966524871851455141545508238134374541401659708374537014022070588862235981465714757156427844763720503740172474284260182899365146841140146249427131577111754868032610140260294700667257046674738319596492556214980063441454305004565931332638287216606593699237554443589232713934824492867528424268848964208318917084290699869846336716925903543350637941232140736971389388054986924314358445185696381504418138473625240174003328775743340631754415884639785276085254747506974097768592055993299389003230880359344747694495924107705821286868862352166369226033876521555434894660140922561978239032811869197803308799228799281990838417335881124959860534528775876639717606235335171608977906821147696190633480678591770717395170688061399757978610228131382483008365629484099258067103869054911712035209457799565312442095701829635035004497988745325074467050572788797458789164557473323350636927279091108198025406538562251757913904863363087597031845900561455552408442010825695568749547843556573447892215318264419056428300832025769507665656715803446589275359570363293883083439810447929147284766676253184353027229171833616904819145596060016748260595143055552354761691781865817461333642753773536702991158100207948779453345002016161002933248010835811264221013268014489204021324837301762007461193171503923429790227511667966577093430916030591792167521387790225614782428334345413252063069870357503718399614036762049259400961269369957386524764067814788851244676281654768973251584378487844340588522392132819064025584436399960273566668304894345924063807883080502704243860379801517290711018685734907092421870360503538299355208127223702288210844494728200831727959857111982080219297580186218495116653867186144521617384744885350423404980659971914368271204638978590183795636607713556694836412866736002205963713666716961350384950273555641004790393160092514221684853426639421905018834783302885733679991673300621546617713735685783632566015293351980842471886549021483162625887033671139233399885826094091420890533548460546240077792707531698358400191952121591381731944154850330108302294178454548549688853592621142453055047425053796535873742982987370783416094243318809599874931207351784661462033582095309424682534391698426569746502216353142948379295736801863074727453200568929567114830707502188131814761087684885457634887408825723261930363382610890598046537407166735289491035233512733733963353007536064484762210755589915569667059420603623564596206943219995748811349645030357643277499393876486048160651290031257167293310281467517277196165799698395811345420609689835682834340872356035115326195650214692490516719922984308910459885701290712936536301571076096399061728530553377319184334605294119108690863885855335526917410365877126553990339632534656712624548621579446415945018392318972915685805369431757068433317384395348053694081565043015675879920506716865777719503019784041584740015686290459593902037066500540296793366344176827563276532492157814050847684291210921317462715332816726506939219296978720263904098609331927278087837632650535214049845249244926248769114935011124772445139210585326476376003308957195868358955551371687682442617557603804243550147206525609746045211429214954095003370996514053710120751109429933482451416474197766512957834760602294788448163235690421656559347768183574017096179255124175749417910504861387498505653725066470430204578517546232623922038739287590180840500817894373979343803900662874443193548062867133689627309577527794686375404852003608027743085195093105603424925418968280547783696730216572486669774144734868149572502150464905201710626893274203790695410586070372773207981608042175662181367809390920809181725380965210420665708987748321933582936643678381128393356754695009741059254718890689692033750003273508932712273176857922405224807222608888800067118289276860752949884934421351937968112708959565948756612873535330984797787758557222821452270630956383310322178660767244533264444990407181541410608603673931073035734703433105812826792833527273070508360854576302408516600755161541830668303285497715920507073727803884945660440202842349673736364834434127219614580677150284008722569610021605430508440946530606895137084656865339231361690373212358871003181224170734092697353954139001508333133604316604009842629069146266294344115410117247996688608429399759031694481596624245154251036900849471077756120983112782979020185720095155337748749398835679145829829087600227645116594511688569374640773838483294211831285753171995042606808860630187063335985620617971871438018786338611456216244813066137182147149432740936429068498866660372221974502504942277345545767191535155999629140841299223722192706618108487855115124688905021866146924224438165848144683429679241014621148518953081571946155558501910574313402763304290589155441295993831154657289201389580180787964987922152541226517038011132141891804348575437333899648068690165980711196925495677938098909505381914357182567607532778807353604289949936923030788380663677632782411268080530578886165802757678887167317126464623857343360145019741844292218224064903354337159233157640072330315923246027054926045092847050701288823191018375783576898170195625747052929867576044619328750008038197813627070113825640403705011221428475963939915657595267166823120187028831332963352785221317690620751417686255167406595183041099621120272990827266181114595777487804685861640027234294953995152108996354895881656081316338804106516393452819854619628116236942342603704360801711309641653279320969392550037699295668951088410014440330527728844388477300312708047577072620329122233320840558271011692983751670406048811008575859515142975136667061245899182430492061136383025555371404149919657734332795645342454484974994023732133856197095100056836627853428537366360855954456699880228770383538299225663692897606289813833716706016808021497520712318225034415885782234439086293413791527759724378714716757085359856684804705140126796241096046422299935227843591914313225434712924927050206052067557067903576760845695707078006008678321094537820983493809229907001986710286685528778863408665644230194084728634224273471152934629547114352300819792804717636411200320525025660361411934568808938548664503725417910314879115555006652841903892994639690296096942700999941088063064788175404855776245136386384932720654500393501695606947066716225350268959711432236295887842444596304881966233379626660659704503500598033553636069007455926629487306737113969175651465220110466035783102316681612163390870918405246916885751112579448379928677739970232059746308873824442237497926553713646342732894780132482814647583745338585653395441912345081951850713787419411000679290893996658768403175168832607331754346508099608940656322358856933982860639245586849228326145212384735178706600409622038628626231285724742086954074520713393020953568967226515764422218979569718892545133515789612344017041639558060169441022478052430839828017706346300697284374035171824908692320674946923778622305108587346128053857835523051048235192580292657995150597411213142993800454717966562896785907617533815883864706465587193303928435464607291158437351833079557391183848642278566542807342105980378425384547462230113098961203578225822769351750198980391464083333710594357643717974939359705439079010878141026937621739500937464220180790450473380070471700302102797400163230999887454056513233494300332476015796562189870430603393196562993403602001070463315494758471534952248618979863572629686034266938354639564574572126115599683382011341711055545353413804993663293770843646200855899546880499110636169849003247867807128071827487444565220196013768557782970453310820106094157691627450551958167346584710751512193465792415327946437353324285608746428061308959192160018760139332962026015988695552940481402745261618977506239504635511924029204308935448120744533855714142125134388241355226913759666772567528178659875526882982044876813029855669171196395416370282502665338874403110395634661798232672218522238969202434821385873320877388910277099912799038637172389981746057713048050809715316472254915205320304761313597410504866448961879360650641333840139318699139635546795527061051442711385219979913629258602164450549385796010982644031812761904002223084356555285003029960014375231252516658735239190374087793130623969587066654335162291109970956611396285314728748311684682488493446314647630861158483984728761980354074685085740827202872675260780460136492833600517991356042389182233251389056629711381976879697782527257575192284164307763211530327336004170303037726772992588153790719976724625447177206802922061369610830946031877367110315534391109011203260733659699172553748168294184872931768417347054881781802722772751118195049693896658961030090461741877722218020157269672669306396455643706620084327050358395282507309412651743540949547947194161051518139236543921692518007097820350079598324819367821397449337063295165394510339007128147383915430267381206853326904436323432279906505897037479737818257837233988908498749137894154189690258404793072186670958095438627177322259755062279215069097569435401286735800484634442411629531158045521502843824405313991702757662012634265751100587463167425869288775801199335920577522656787193287788762556038114114351992607336105550926717085351739161639384457774392617799245789638729620144934629441532839053172269547487568710558830321639222252316718040524915433599289448627698571455514000002488350724560702295188998661023816046881876138807711927199842435801814582453026720990809255428954594034675067776145870443625550135544757658915389361554288775356544185129677768423916371430496213816825760422482321023261138535850316790101333005059565804028707643606086049772435629279903424205655311021811136659759889834972191081247306804883301255564084315933798660497621107863731210634591991221704574779494955463534584552841889044799522594633876470925545095122788982355596955451005618075569512942070942583914336668241742846441322713152333428525706070028471849279271530244787219534356874059540034390092753161390040071719469703732432147500635677494354510379318320944443832697631286639195506444882169493725011425944061164730242380055821616695695447222933015663599427049758679874802246411343850416283339117735606392935548930300933918302124502941946714166804146480114126001147976206831558794984136948645084803230627162905065776131304552612203091565483607232321042468409578069392746209729280913382436395886450350231585410929634069897489607924075215677881711599206865119627651915728838459852720008818091755092958427657758393317162286352498185236815160115154757301235789452815581194648137986133462695338781217116386390889809039641876455638915396921025110399610694731043593856255643455889979511298458242817826245200273179149474443121289928674957389722501377290689658636796339636829862398420587108741715357360716438703583525538777097242698978493901232532434180265732837978786810027751414672364058855403197641714564878953940989368856001865426742865577944752517430514620138046194480250144777686069297136456606368516859459685455030025571882755404849467162857136443708052336930242585767326338924538969379125187343766088927906259052060795339511625252560474088315646273196886348134882913291562585668729008606246777487649349354805315432557293048340033311769191093836403399379633937542207806546455045390990258737685812869535894292114230359695726624552545918550828772587917207992940315615900911038819181037648364492982573152362349363640347130030847740567650420619681383991936901517185143604847331874951738243329985143145979502594179190726619338018496538468330940290420036207724672107916178979310426768180488957806245693856853394690363286106758443530197762783099004706171919249818987497600184870035572874134486766089004096695312451214058036917450785520922594046545870724476029651476610847566970025613952311921706090618879851870842918374941957982530361215255400709289181964744184549686543104723255189688300708360675506617234011429460688072331131157428634912678227459988940631411721609265627957367816655981731934181927345542360731403452428839179437339148576606504797397328883980219249644061852641136439762175314458047647081748983039170876494815827351903294911576719088427273867933378201340582063506119772880155335271377571878338201613996804050880678234364717181114378105761917872017640645194080777021658418310958850115549810293998348997268316442763244622956217865133170288536810215697621807490318689301164328386906824328783340273653557784135805190983712174696066406486489550432319876732630250285352147023307058732826017932726447271501948782047396164854076051923680576247871193392336663738439763988027533627549134432581669537795319563359467581720835216908164103030226321645293551045780213302624239672798960761170352828882894931305783124154180508559936718041320220100664824733171266468674042892889157399193755783077450328908785436556658896719214413569514116190432804707031622222830636349260506264191283505379646276602171897904701914722081414175784265544570433848534358326321085178701134031646350042783935536431208633674065955876963780543042643408962664157278052096797532927009149084945667947558008352138579538833685623449374625995939886095473805042437334181040194403203504127789483397282301615752834892968404939729806448033218733249535538465304849843274420391879274763858545472015844742804363195815914112144452047308696057491580619061259744409596154509058181483641325037430801056559773039728342069167044361371059000566255286511826961456748550237335224937362586707174282120793483938169601943163949917757247392536185091100855599907275477519289571984797709406872406656019719539481234571639660218376239359252989147374195062225216489315060209557907578664094178617469237302615660966103475457739899444143343179474584533589126919346364042453090834919697213917952143958422400071398841720588477662159153600146045268186232196583723558720193279276466405623102159348872572625632880192205390679922595120058791027312748273053057719647662211845537113581026094833277754215700368194111787654717402624273623732646056906675217004693654077937118169752750639684129538342462562024260842104673035390445807187594292651511959907889318961363246481355011443763997853718731358996290066050989691911182849706223373280654999902234359125965449552455654474256180385950914193964730220330787605586227488345323543514512015912123325622012635558839784433569188390444055959722923836496725205074342416115274602939356835673344113181900306857791906268198756357423726010689792996676870738628723705506182962880357307842851734607353510240316169360712351943376838047945075591840647704155102568010033184506203532416031485296163397111841464504541477454138753878209070652573259716235505310917637167920395364996655296809325819801878260746945881082528810293169968280670371365852288324394910051635230417072746640980750134268484503946170826877168800706329874383554148287400550029380503361965860845616229768102924837360170759815025493559463568104524574897641460448147737866213632958199433212874434952625914212191816241456213608825001548188410880694870096027821755293774088148515431376499265009498183229130942453709208202273699857847430305061017640728887908262558225288728655482146827468911385875254627903614148797415885461568842071608708807671339020793793162126868533062189980712862039689560721717326549516672239696599823208038148158223023090380325463384756103545176067167671456589660585575766982234451865802726099077294508400307000770174292220287036437809322088435601410961957454826901918009714242017659224074562123055417385403503376712223775861178671806526332965988022013210657274428572277301987757846086149572172459497971502434628861318763733440919199325985605781318889552936193892550890114939582277877131979656289757799070568271927845594138073423129470659260319637716913901682690690701289210963971894641995393733332478274344806193619435418503654418865263698649108854778633863787582125150942715395921372426473888982692754209053903159829018520021362390750142709996897096589612736867471886724655228795241972782067229025313063416939169507250374498183920981566699162159508987897796762554773339458307837449784472677589763647617840708543064641771958643276756729856488922258571670159462181418348613786688662313231265034633297019957141536768609807370149712961184233578570041082867641863175551217995549592681950187540885035898141579732252442025615468354712553489284030062416026294331140495241283122299303767041913987477793305989580721770103912242356070986715007608961415211309981009965860270428465966668015680086073655029871305128225275370749907961046858788441517632777950226683290884576922479716395496848088364484141046995143485129810852593309709701472569137040753483512481128810131909555353899396613181034072918189641193875404974065761437348643206809500828583708953513865894723739679475266422833698125762212007797770711754517140460176842765080015044117386176752051428242707641081365280524645863280105239251171132664047780972977663415976969438346369141294899360639311878753535735611408484899716113413409691877371353067223083035944543092220240877057311623302113776851518321288552281253129134702406301111224550614395707392002466920064250997128059243316693389128277016605106422902576144268348268996827803556257974605189678609186589918583129023151333378457183366847619235852197008683257400275480506332992782132348012628149791861383263124490401514959945514890073642055365109488159481158979643815491174063912865303326049448005352985943997555071317198922490010223523821091227056824658407060649526139216534234347529976827579574511746472670329294257660547145347270035309037172611335869877509078322432847366895442030754267359950801085050543836296937099149183902122332679203051679388769233143030507736406691718652390801487521209253106088382334258396340645754462729430336722497216938685323145717798518391438118244313086947749048594194727160521423490514310810040755271521701642926028165449721998852357232044576574425301021305778113045672855820272353839293676941390946935626433447923421496213870591109815221233197570118046794269980062680750356496946369635727171019547637404516176487678287749026993234161458251042047718399256201352820178575181065326941176957856850979631097562919330181386660847412530231064135414158055748994866086247520523228702599801362038416973893428987455639950100812439214236904734558690263354199437974048727062991486508122987771239115480169867033927972966808920054373556042808106090514489243328696143124843689495532258344016564174299038546349787123476184572202617621520056934002189040498619258191975221593040475888921285477952818377631032932419362703031690065657056620788621706204639277972557705556770645390813946501130151283567565277197517306899938540257424275140713553126472186032600055799906038289255235065579862505807476799415395303463053031827647645211964741332259433480854820879038236334075673496112738894397168930713564862897797302444734360330468917890110850511863312599160339888276675406333693146975099549071417604021565105897247408935822247357419323897312994329266477708502653180707489012892049503651305510880402194394095618079545842395564801282903859557391071652107895669827814264111619489167454819293491956901289544818147875604648703870150647207656732035723279748908388365408862681227729351303181110122642010860108987856314097499962178145509262551972449058651561352703700751872236522518968943424857488136191501385288731191511875513208266713783204421782831601280630168058622483256477062864568825248557330893990569276576452516181032267922848680581286169948993722688363694330129969494381593270629623261227863505766387077508481390310301334239251087532931230858821183334421164874991510083412126666935430948863860118167837324184259392584612794918017631552029920851596619691423504272073498597258280537401687697840439438580500586066307301407931369509904108172167824023072384759945055766249597705561054177687348131474869272126482270255667036766413938865020011766591403569245176210120054457494819487819544427536019752264015993211331381789712877567566039381893462026111508733203758088838502639308262667532326797794976309782072063748990744434637824963209286075885690194352739581502080186829938311992454207060715986016808551162195699681043005666903552411722137718504771606110502362822480258317915924228230530114625890392973208770666073651214018608828476986126006413392964215986999846789049587803125332809954676401770804280567486930017018001253573336698880353520265956845177102444155665251269809916079277385100409015445286460854640628833773584944781088951374041312734041194180820191618782277910131790321473705182281166806396346962214850284742355186956744823277247616069226007904053429032523073728597815303794951282730746460917402203438690222699450073663891724967711263463165383714901103261476342730741254963696215541478667738857425380879201208984577621614668083465982326801556364411107783846616672519356715898902606246775474006017707252552818230491363348338415196685865577605818886767003115201946601945971200371214294023793234252735288762763597701047975898608235449149565047847326614674576610802595564638630516440947767914124397324201549816305886662424549664664847853727003322136085048830637986170062361080627862222579459176473707965664945737200512680910969145463734590517987109029031055076735852745011370870560033940319925458101487268441216368252274507167561440554528384390357400509720196081163613998095901911284239173634520034329583422289016087933386449409905398093182218320890357618870121455932332722757345998430371000743595807617473593391843559421981481325187712887407252485812291889641348319347117724773698403779098208103050238267714130391514157208430642442011826527283179688222945035706400779205090064314010360231919862472483296683898563466816318730644619576191050800872917245763574295485273800185571346855617949587434554237052400864775316485935850681633226145680848799026202117088808330697337904407611706287885071731879115670855560662383255249525234057761318618736475679209474333782389917455020063963484568188884731389051146148432691343348912885841944038816936618070503127516833191452319264800071231739835749558110341133184594918917930605834814475023734661554691842419492684639005646070774237931138582830386308964951402772362892626378107196361159519445799396126922331776657190180404450372538265110091938390058691349035354327718672699175973782025837201545717072546900681954194876895592279898862032354647202989972044286861875786109803611000273356830908492916756495762586277033807695963697906480224834063371735329181991432292440953048635389007892933575392029249616969682099604263137303709276457468776756763605936651667579804628592560547128333433487954604689701864415754050652825677100936042529957645153037237742680278098964081976444909427614525487927988501614672771010817085343581668848782237410767827645074619746018744465151481336449222219603202888756490916100253990857914319244009452424651005346606070823785683054377022255075104948905087902060276369116070231850670409739465761351263970270237410636182686561319309768819911007452187935227848658897990550339542291446848291893758846622219335175650141220986221308173843459389319175526072213310938668144310222235515857981014332669289254173977989844664781589479867391226521672608296075127409288025437023652813391799183182475828350589370321384512451897979211156126810685446389174275583648369048916624163914551703020130131490465270279187192145446038273488657960873298031271597526301007731616810836110727872640318895919218771737747942960759622932003204520400576027143311693768929245440584843133686860948397735259919238960863892061548123069260814729541066945990303673775573286988804318500778524608711455715458363570221732495217737257561092770140588907408586605642194273425796541792268204690498608853794152253974012226541577716254000605760233439937272655692253239825409256447436007634344945025877527623162875502638939529445577371531177984196103088454146479154227811576995301848125044532294039228324695971026664487056039644570786995951035649142604591874074179391290621653283725224239814550644803233510930374468749446338588696225891898501032695014087539811839752936853703786837836806242505655738862530283717692374481938464473868406108601135234995144369493562183817810001643697301649966293096938876116714133009568829524188938154969773554749868770042390030766569538897750574115762311260817923295468532345253924567601922588456942647564222301232968414576724042145039081035911617798511125858000932237535245804236455030217531331987275595156056869111345801939509514349543639451449031990056157049031070600196353953852764571440477667243536344472954547476952859086998575485431752994070816430222074426641183936877263783212354172154498363078476008171967774287886341034163000687868382168750397340275912764409252203013973516397675664848328066576564504190420783524703584049400667035774043449797779788215513890856077957120769909544052230923528892908322211300691933994732439872802368971019431577567089788085559296445383986349270945750136030803124964461863244842548124434939834029055476116610412463304526819670247864926119307867471926944751585565001252882191683157419322327259738919377437076969308970869497961286803924254174993356218574054718350103754503550883667101933656702345083736045757176990129187363920362579694386054708129141352528872083462247525935045671787607714079668888705781578674312904334858863362176900954676499467380049555757405534328571944187319336634656141421470636500320962466162600520513576675333374369203975905162006079274807667388576131132263148333706320868409617059299600439267376711633430444164226975460883164260458747165961201671248868455988236501924166348731079902166062793332919355000836690936380036067427240559255320934606721975090400019780968102239660451340704248160709257779211797175756497345596553560942110269091382711945696874848045303642708015703307106624630922945336483128294264517057632105322012360436731618441755210521509279771999270813495333955119466690879788264584140039041144230497081354402433799142652090085328911821596716276894934749386933765987582169605690595053823823536100392095022820293358612876417633236995941586036569339528020671684288217903292437918254718072937788883763069008595247659161498186004663133588244658852289840449951025499120140448565167261875994960362746861401556353247020036079142298665177511704369096228736706326001401826583238481843046293432535909942966461218787940533112651382721925373180490497836232363734905309319321037989312884361617544363434604470461282666077049377250670514671163038333248624296158339461414356199183763468150021452033641651575306664110081719369966267773301285704053129911717748922318930913753512533342707520089678507872659995286553516297616012324441854164750028498254360476219297011995707596106457033151437600988333929341010772394515230706695153957215042192967270161786876633421456821129481722971287166900782169804069467207233727365561966753475949364283940994424780399481844900331074890141270068562688911125282333524698811963148357562112421068097112553975485371806519900414940376495399043962183252546980612984956062065650492944136417560064025321948368503497144077275513735360869097232051681469993320681983476601281902185358932810622084264118560375311706661949972405221015411730301210291934978382874737279061934635754366159423932782427471410669086815600111683935513979763106608102751503326814357567890285385753497962022806285964344782993444251915645054947398833848107710779552754934040447299119323185595250669517495689519572032444246880229845927696627460544100407407691319654193205867282660092668408383715886737589757989864814019587104159741282056495073534819958517629815272024338729596740764368117667422100538148373752674934269943723835315870842674795039240956987906416027792462063350542221479545228987298672051427075534415134026588791117441667184714034560171727521139626397916531497473690387092153452256777932195556375715565253975913067606328889373905266292412501235479752230395945859646620131590579364357249985170805317012071781410275852899534014792431848596879125582963970591256325371462007148753293900221113989311105659028923134276226550641806587922985283512220475194138065335378440662276261308268606301152937145389082392074848561474038167798638271156946130903773303643381705388642151211528899224919187359376217370718885964538541436751963761723350841896312181287043357675135714813441232234376803007927220735951337176845828094325996802410753203679809356471777690223670672364449381106770533023878601702425880096794896050150053435993800584622346436751043381138768059613284986734401181101219154526977570482235470823858851904046824247387433921079195334086879567974055417257346146269528734663724288037359592474843073288925650892871297927291424070563525049325721261803285451299796771966921883151641740090662915710013563749382501708216334312159592508714695558291312147603425046807103415280694495918790683621956689235812937040199695828013972922943627306987042009334323172779593851098261014695772507125046138522074432667588055920943889252141235706174836720943711453486111901941673726857414283864269152565250418196085910434869697376010372720608688488062959226405018658803691698036515436420515313610435558340136782023454651017202897591798536918431926054727061581432258901555465122115328180822387759524520755263842547940921818765980809001886535545711266956192586484190195237296957436712257248371415632013543256082656136631238918912437068231637414654985562107239119199609457136447189424954936128015569933065685952109761420802523300375259262858615042423735885857952873460938751432278517843567434737599294179203541227252490399543301735825485396881224098557339259025426009640464785765494944782598406487930403509730805093109271857936301696520971697255646982212134655871255557631743286541560524657549712608348812999252628452507089451832889491604735026187345959511710683929110703542923702114564622300716111389946955353530752747987856133837454770273562770584942451683146163528096611524462417124685173970081502145717348442336051665356008672523856352655173193209335532824098104628603381276875709319124643618599509909348518249604528437589869972736984686558775005031602125376093802078066273038728259630955361981431563583135322631599860179588760166543973824732706554910040819392251409766157713474414671744106163293485418470557698850121848502311059088490341990027066128200760552956839284566625289112934121821454885883754185512609706154858325741904217912322997538612121524811517232686327122661655237365890038257751402056821383353341907278524864165919918319385169928018463440608274903917971847094460579068937694640644288485618228040400343612942750157794990064621212505292395773957677634538258000972390146340982090690936172018595889570171583113468225510795179748978934864626899662567830379680949389902353329978348557820599792622344214120481208129663432587527664361552092982432213680879069466145166250345515007389539387910937970728127836409738408341725567420750542420756848365357799798549809653524570309337630483901715101466031644323447003491396809200395622269285067000843557852373511647954022133930060535967343285451417134191074617024189414988553437530816047675063436611689406475372997751471640608672536196481793828108389750059612170106836369364884702997762065633818417468651128205752498636281314137259902068585405316369706503604250566457501491523948590421916092123534232999547729750252721747007053135456415297284229452912248677989875411658096322735582304049419928821317964742900909159779956868746354822546245669541132149938376386990616351784352990904405473282548160881596169816032085385487190564201387653691044854335493801624099097214385640111785132812110015258504362323483950225870006101426985408750064855411721932229229750388982587342166971536068402970139035294007724041828260756353316700915678796135274646226512911338952337375923658901345289657728955486482506422443181390328946144805041155727135318425222383940226858817637852933415604975655066747251606068103825218785929024429846500475419226721723578736224567105784486727452977062369023269658004847249232506285740148009466024441679331725257389260280332908745823408572629286363635551923630549049494629032922962719978756738280602053662615575194067805448663631687350016441996649501055349838483187473786736958590741755705221742727885671096248376307997731585925024616972371846349079535317442407160953809223552403236216890016771266391613344780366934798799808313922570109959332012078458790823828152687040513099208398698601034841599935378959196578506455501219198080801482505072103176227842664235104581282900455996467060202913471092211986440001836151466385178019310034637483242795774394866363925661097711425876326198087068584624305330245652797994597674195262907489695570661020378896556262397059099600426149202285006146140085452594399192934377603635381439762591975430447664325770335460002721074216601285477405790264902409843278085778429130821224996819827251983148275627209510955866255493745752482188818532625685827958263560111799328714854204458582325288866754043906742764348928534577151914227913782437592041883042888547175358207696582774593686402116882930284509594239060111664955177449474269699975320660420654733301892153196158035132680770704381933589392118955576928288742251452358183407258564781781187038275910594435781831281002035771543465700922485669632580218824817394972088931018849622030262872115517886328376496405141509542226506395349565287430660942014568244229544112074324895462315293812560659235590953509131719122857688234196733287540771304227212197957020536009270246548015690080984128062192679818817005953813239047870243346359929531487633514342975220697851086535133500890497294143684296577720092860786324983129697638402580567989944359086159449736704586587994954488364449747361231737862529891086907878103138669225886067442981875397280520664333309747246456040024308753929308258517964868954537281732410161888139743347853292918634626506000740751479815409739846910762938580519760355288049194977140336551117787576631607971990512536728038414888852817488685199315868630535040247156346838607937484402157641023683826636044597417246514389745062524828896844097451587257311488519241797746907687249235646764499628503411885961809018561883994665826223139440930802183994155624732880661552240112056719974833112171869976429813251482770068366968797255901981495696181097218043045987913757510316260943655611751033824475119462741060018317416271598149662183569997893575210792353894163866451165579026640110574915123872787367268702223845657974597936147439371281673274549939415082004213656464006578122661637447567977888188945515910494835554334484830075578941387824875403817522727644095096542954949393290927478163885133400809420595450296090057090098343314888858147530766592373090712168016955870223581366785744017596515745815184377780451303902522554043809869022301988557160150312072553162193478417170030229943572499089604557320521406652000728988558676978904704861338499217570516751204815145481690561310406375107019720204265506119752895539371501967711342540837039562718947881843257695993006005325972571480252700831492150727439519034447427278933978950618983970248013369112441094390472142564556910866645833170614075490607881218596146739576652686622093495085170764016204002932194727290579193867078484175168035049676195735207312532241815064712168107018265107818073151257149834859098811835626360616292412258947075126328824875233007976483935765334804306406205380444335828360844846403538625461903995640423530912323914687578556323015371124591102598680767194780657750692102054915661439042477550584168142233856165429641023408150403610510846618277757687319233905625915809373100394705024236767884003799090482345578768779933054670767147615083346408733125844130906351005024333801514921831132472937109037267380751894862775261462023320912245598098446478351674628801158280355784332094014185657039218484020919826030621906370954927645724335866756204081222616171014734603632112184017868289390408749561865737569865433068603058315358282342609229556075557609253735494731212804061167792926108274126297035800294720203224775030546010517316756125962294925754620101279671917196389449707820925160855769954207961649130107325776064661033958361181620086032828870833209186619592420308247860016993243575811654910037440640513883553505901191219040160250594574481867848578934557813591778207734551291919920208553640308283622080125453053133853575441440056291553330589079628135441451944623766612706958181636693166554268171034786075317207983740833539243199549011778526384885573731364226500616620890426005475946794859312720765969532588880451399279133560439886313493590956710675258126027900944007046401948604163214936782609871515035177393122977172089352388146260922986225849260507482693342438123535703040474262889434015354231775893474207815382633383854119417735571566180334505869419572187311330303906998746206079525046902437453558468194374594460130874681929543205728782196054237516008308945872714749163414971882762889482221202863261629034092027917656081925705156376108573066930742256014716610984593373590350426778275758469994447634833587133535808660664315468412124763958293636402282824836741840508131353064230234524626424926562350934455813218508946727523093649440983932803309904129066942575630767747152819175140440770225356581699415223414541636177336661713226378354592091553439956373143991986176043195367723847161293586025445356114464944458972948449169226781602063185121934358386316801150586313288103871178795043631976733596615575153162466960149805160234515188788303931888744413888584726726888790289533861216595316933763303653429120128891143188098677892617273499098033626684784565958293914771817143706880646313653770527880189036183844749765218746989016779190724408436495874747629517317288693012478038408500226367568697340345939943845387655945178746931735424565506312871298564481549933482284690664561200550686396505802906107338426236450189359489619210389640265222112689182352795291446823745479627937227557030223284836910800463486273895320380104579239076266376540379916583922476738034335722658664152966457239690923024741950037559830633440653836033969700293916602689908725088201408599321900003691014514355269241251968390303871070728942177695489976953561782937278676664575434856032521661146909087482814917283398511608903872244723977985775348508796807132589323767388561460153801168488257078304686293156109250708422596834487951672601022069720995168828174108096319221090281642226344082977374135577125665378281116097688966602529663726576258380708071157436321578322530689567898413086230461928588780058627119058965812328277377055894403191906109410007156500440316288746351758569155905729037382659655680466430705117079810943168847549362207083748117627324700916052934008814555656163080349516224941337564158063360132733220387464741167848897408642526497460653653110710956921653247029219095763431707042038613696368751465736401169181166311701989864828206858607524204087671220324926866783629708734362558806626394162863918653054177903724409842378612990117888881231470171529481281129751976113075008840788255578741649799870480821172134154487914606201354648989667420820288447080265471588332202963610656343250345296429110720288842589175889189895193172620741558025354520118782300798723100197765684308462755594028805517069387803855924040688287140254347084647024133801729167349906021963016133737277310861333988431447282691408985622050565541243415814392754038911799191246698139519747267549312183225735166780667036783864814702573337423600771675213990138194004885067130440135070200157353074989624926660159331686744520521786267585245434815329480750369314717204898579109421328218398740948118412669842242649193225888468392201454747847944702431104774718225721443994855910350922050075802978418343786970464543709883767934704248814688702045405745859627494575250502495045959744197642617057916508451970142146395457341566507247634881402391873396087603019385353508568291210655782649077177190169908404948457810597722857972965824981870255792757597433644833038385762055923948119397228411888810030689475874857555394399874626736917546411425260196313229767329250871301493666263579396180223751972498771181420606627480028279878629760708972284708553740653724961792040829703222459649673120926514294577101010129149248801259055222623137968293198681529081686512075540527022884571479859166073605846058236803530262968911729694220952811181537148707019324362583001170596352083761307517897321900601302045733963153736730462309230994776200706303941439083791517548639184687980304917204127785286834684714399559245782758259095169221086646432452923700641919933592242174020707410090783895464915927830213730459718897537381272414997351829770048225141534403993499203495398632216263953447209864977023903003581055204551104618502686977727675881554065855394452339189412657911065365270648018842821285006984007171699729221797843188129535507920635196678259071642328214275942337676758459625324590066266675039227540696368809784201690943241301495454600340994372372709067347338973935693478201848772613336827392882295000989814639737817355566889860184051905565122137491044975909692095005258217913764496307581815074102328548867218577959837114823647912484253443544296904599212079880717399098047863746711073668676784482937248237427763514505137530907561939354638536770920416048636406149114990024211370459341146867166955632453827466298811118556385445906419633137016597475946952967127262274251016719088667183343103604950222748914102592900397119594887471596150843640976312408428249508412891516527733381203453220926672242809968047760700874265973961386388252240674198717898700205122995789605254925169381452492768809404262506883681384048440698827313129731036222849800373161165965002783613401031275115029067976603060813757215414625785744338024781676492538504750330256315435000652239561122766776066013099276541464828470936274479493681661133247436770568605675124270578959714466140720659699328892469824045415690461433028110003417302936955581235162793458806873619231313013831169970275724732296328055353761503162395983745363827021639725793608442090882226412021236897126280022364863485982497194077336052356523885679088102136758284706276449204203205371640818117470880362054402946126753029683868036437023888143055230369726284454853897684385396918073323222350725114708676618232484901894582872626817817624537149570720215719649232174411888914822789159265507313648661200570718799013233795662723922058841260399004815614372016429653347764767757479390347161636318013782809785599036596801970148925118091350556123817055313006941166136731328636194000150720152622510832512448863614802326275613305723745269651660511832776302312273665758870524534342324825926080040654362067559541740371756213153044882134501399202987649426574280193259198483810952439691278735546919665852812149463540428254296229197860727294013555407634211216797881639430209571811014406140925304350913619129964052818841751162997672999264852349395819963134535362068085728845853021368156622726907810412769437302495736785662245452241357362207087659368168496393441159220409229782116333484482185179577528549659395032510433155613479284186300388804046783095443509315045810435475899150207712665532604578564578215750536952843785143723163599248319087586062962395648662549306523814097931033475741438889019142657360411107609769312551961614641852475014651428926506153733835867994671666516057089290704248492773967735382091819518738660628463403245796687568302127427547108512717947519524249089088731428997197598213406404238804888118273714405551335699520077873555207652226936290085197642873814550525283183291289150887748670480124674897936164232024994747806352786379897366209190405311695809218449761642497543707168592451200606848084324519217511917814648557216722230903491837469958535910560855537511728762681594504197495784235858041157089548069885636051817680257859641855921954924520523761533792625687406029385639266087537896908797598652583490627106793040833051780696042459564492087176049916190823203626431009008740461001852327599618496970455844125679134879647589456157214532721823602698563069856978898052145073256130649824982363009013130224394432601139268250307965633636835540641383282686929209555165368756303341627001583518350568459664462005982342184388663009648257668404189663304237421909035983608293698687464581095669518304847701626154197657774236206347039261357171890835031897327835760404000757599935466836716734510826339560735826189592285953438585526380737159626878814322460711138498167381135783324852718381955534129992147102113065661971551586352862182278209646206180206271896242373249892836797400283699197087918383191254286935966033235941840318398674073078529274894152208216799437173905147261027751812699726463004720540863815501041584503028552748602018831626519191085091881202126215674850746135926426856665887272248345571938028452231288937568483166956770994407829922400150968529770868996945053470281209749660368877116325906409369625407416060126616919230980897435206933671465894148938703661447808913248358807218058324348640517681509533901770608491369148879134236494402644699410704361397938774330106584930453734907652081466206239034520956650704189991333919563052405854660385860831012792101660534949412640414413878858827452089063157383289260752496646710446984123168538814327822478130034662460230575580167604291862085758195790913551318022452172107537576572577264243881620089829070920881598622315198696606905336184496746142865490204678654176331880512507139863484144557115802875098847362694793700804577960533029248011364909362148254758667028846915080702361978340287230899414203091474584344548991328059360566344897883543411544300509963576115441782591336954240436930532799417193254327647689536325187920880388441383788067778284059341896660949197373903883178487819942059157749462677235098952970793909668269275725533028295734284177245322024478786145910336232379589818046383431682162597404136381424351957073193199178706092111465279127150359984421429860917527207634878685951281484076772825421592983209826244231164954039037819947556839820871249056726839762966374486338620842051352635282318321357715339771568725639459921883732160688343419079608250951911641950847466319845474872892670297363990628713772057847700944864100051857353966235899763761905088427661794706009399017898322397085954489194057294646180392436045465875516201512387755401877266272163385332886884366552326297957486175753825186633172454026385461451883076927325923881941096824827895768298840648091646784005046902754992581517684106602745671322731698899458373928669100657043927162319898325469577648684428556012033257071287398123773726422821583179607456491726733630900236664621464210670082896763970206484808829056939489519581968517692273850900592116815269371327566235887202378457042214063480467936929673901901589372812411614811736232891391296544134990884442083369818313850678297107984116581670474909816203733114901035807905278172780447020539053890814175359638701890806887781172142329723073306200084242326889456128694782418848716706915399411812841535500736136495344838911019107489020144683896220879257341502281141850164631272144538409645070140835052865675171636097922944835006516012116104507741838632062988950023948511036004361429961073913504061039730033987693175918342658423848446298592550407295390619020645340313617488008663127418865647523451862904471689038336933918775880166909171473983282756887150419078431748275816899910731550252490324802869905634574826936767658453410130766388758238747094385353873708105348013193223241320820161464894165875231681561971464923643674707868685563524131036174996570125006434712089547649824810066615604347643391781150594943688706368354807799830254823944617148905658776657230158894759934802037262086125830896875487298810801323876772704084138336109419989951134861944198092065837588122460126950256496029669070741379824263381904732608241905310835550823697065482230966698954012492645732196833455908307487430971730475548329305755560438398390286848132969490404725649253620190845284602153334204480383835785794965428839281120877721261584178405416962259803898907485723176048714233316349611715579155394111884042334999485576713760120294529692466736529130567163130194735422157622793536242316957530914569052311063048044285645937139751637131609529410901420545949926344532485760105725003768347693032758136014321573270131536940343435150006741001570572576797797829353414836757755244230766545661792626895059446287468290459135617634476395568351582999215291547652395618597725054282344278780569754852742242393910825017665748778250823384621909228410415025295961482743585862633765690689290282647883899995722813724380162696734621048770435833332344111762686225970090424108001268591602401469219863103347249990221302456403690825871472038902886171003896754142979420961699554667222775389127559526638630517653176129102959693408399992323394102418867445789877832722307752579956763706630023849088666917771983308019838613688009252781084988326322660824015360858442778479516489011602949430959864304681271003653735398983262392493120276399043300334795011405356116933570441453110355280070404042506878338564265014013277833359251424470544297981377137793878539032287017449295752173284881517150791291997666596925679097310954397948328054364109533906750701449925898801290224312781512883755414452251102712423793881683829047752919881697434011472797983875957441634272327269723826288563974002376495443256183789298916065567510863593108129442890239756823007103920613980504221906297010506800454891308795678499880231777364473109377961191813938115747902914500878608749177753308515442726763336182886540063202201237562022907088717315217767006971858915600023157400894738746657306757689450671638983223474145488753000145888573508812343052924801523638737264983361673190191544958179725959508973966134261070139624690061008304102646767490006851825274973971702148746137864243718263737911000784125516375252292131616064024040531061211129534681980568376216584370158622650794842160186426900921805528709730779583788032659521432337381598214609186353717614924248418642095499875920368567516488045984073024723034714786514670357606901315370774228813519523341265050992584042124974260444807202366206681559603843113103696496422633135839914218774982731710635264726332288320296815749796288862079318085918853850418561455648241041887376936068900757302860747611356596447503260489720080226125971196949077493764679323442365320512162049461590536779087548132514279765625895665860435838899376014757991514585168910279362648934186975648026157813533139022947629219127170178228519882167088750172232255761010657320863301199413549785035241424299610246033706304725233893608377873060360839243071595906699070607636341122715541448384565741608757432459177145583065763790067780363044803646030154100482198176750304685092902343864905903539010098506080046231114497635687716676268989599636702290603207326826708160184773158808600427966442737997650207188285800742923735305060368744918228783614098001265373700010918498765713801499554835230764153059605339389314617437014680541523413409196321617997440636613635923608424883847897726525399938161630266264146348819524816895231276584679316578396729755028513830870581936443960416141182606452217031011506281611462347271294864265685559186317590571041508284330210479216172866665757698256443122230178353796938428663699828709618849859244938881871087329569831169924000883874028159346357501703161357292347250064602428856774074521539737237956593714314391113839114945752069700068383677543033005196243424794547358962530773263864491780724507766654534980674927097451439098562997509468169240262514799044738487283126418142650072654393571449233343629990191169079088542672103366873410077147448378104297114791031573946182957437546511388509976621436906738668050929128611455020177554493853133950244898329342709339714981622857361439997633450120497170696139218522692300097575261997012409324055622859888310903197411944371810526408171060832543796832015255297131699947481441572483142487088553716088875244010994308516146055932129142499555570689929843617096147913577921608509745908084760492036537288356576203836356796583543064162166187909709303506762726824787896183439518110895690145473299266811512254257513699842330925158177675040896434093231079494650180870014518576279207909423752994196852250465145891303942782351042420550542666013421020826480641714999791764096329956305853318442617373296236056937229275480845738926898454732883157003539261760978454173846684472193241959358039931183614212746406892474828532760439012090441223465133700824852508710458062643713678203121868756935946781120447051384944763080951769107372463971635880825442079145869377853332591862629880705902760858962909315141832812373341270398955934078160796240680206542426114895812637327658357648664095744879807185480196513288460225517652959970578368495312583144843264902510831033251328161976281366395353076840840203161049686400589469387524199416929498426703968419627249331443507906505717191521869726784457342154926378515838286106655233557677700753129936201496554966988009700982065734204684521770639969129945420293483856649123240796534215096602854470747128295273052821206423376141356427843779501700519403594999329591564714139226833856490303344825583846848811615928079756894064652891228282568124343157226012517331460404623393818145333931625508184754706595108974261156461610389011822811324327518474854568107272929816043560295578637204996175971265471471073459960974683547855693075246040077551887138646668893884049591849847545769699708245423349615264640466375453365268736850742631523161864362846172758945836337140998442600644443546137405321983446106496685796720552281067422727755591595407633587359927093949265998773400828419663395833711918188597154386434218701782572193872643115166124778990353894447065908346376415034257715160407382805276791488148795999413076863666151439882710768420501212160810971163278379599887649326786118820218389841926871695175682179818848554647172581003209231888170762212680400993459931629234279866762123734388434286354813489204472660359875989402882140931496630230445657721665178825268728735844271038405335060848537733128294297510719769938595027606315513049495032299485759184935860427597850444256917261293034712251188503626472278806451666372089805953231098631085340852281301327752537572918290727277109379480785704070281595733146077298846300389321635568375694576811388248049978568371624609527315227340886155660698401720349932050949650539686781662608107276407116830607403285836237923161888912203777819924344159493358523811382728878744292130359053765798932191742516015352681460285838818731115871924014133854148535330637267434389055290142193399604626910901252034971001503371230566211016088740451504569692652172204654770183808520667999980863271810702567909646017659639165327647896307043237036378505493487201817094316843659406138578297128387624276073453593944969113618531144808219567668635698797456434224399512290006360606771486535255495921700145678084213738341319424857050486411405232262825459633230709111632398307735008061171379108971436508835126534249594682865897767286451269075696644828287657241915894076649928131192899273223903341014990254956846513403854547373473379618186590898235769790317401648060234888950662460624363136714991705891899339544263325039380096737407591291250841903157207573273432359398710668572718985770531049344139434505525170733813591208509861374182043468255635604305134276202586628713775315230196677688768012196536422946198072862565228438236727450188528261821652473601070889283448738800861809623270422701050302155378693350379686799904403283226670418516226913362787855072888326642190795657682665582551811126625636392288055635226916792168177987853283977694359495786333481387943603045450600986861086174489688055211046887254142040751405128428125335181598946214836162674771587664322044330816803068801131849288248475703532525124033585235477967190523642432584514982641261500575282700974552659727733008822529999583327538852727400294811959574201591181474818446801900237743399395692020429967752980814438835420465791011261037291848415849250835577621550786227339817906733717275914367500224925643010757852956200026587258116027736555745541217004289981364327247415576237614080290372907669984409942799647927588092110720426479939494585456504586815606943426594828009480213676146266271526018806817167805068805196272919987842240331097687326783691549852252000724169656299481942376697146381286062039175382181478648854094021423630365968887159477745254427110897785112840067596128099349934596482851380711836691571905371768994581325870733531975182614292874051353012057414274358745143415630076224168353843068527733653624251998506556601682112819036547063831011978247038329632972584891437444422123960094723866956618762030691003345791941966196058153642635007919338712992286012172024214454242433054079770307715634392441697747585207942708585115220826799859633805071305817547552127504039048125677352259495569876513293078785313791839249114577876180582882444015611796322109682211985581927448657613107163195603665946257706950351114639350043085502626942213614858356472338211714242498243424471300516037811332839397252047744222043848889566372953914584357666854486570072683892007807313839839031798780703416280857725737247482425160493510863269978491594443095161700801252527935767352405025235011296221578827937020296522917227298548912802520011848259271345252336332790913617331878384536147204405364420605163676774364066570083394766227667502022597370801816623505366642223988951736620201342054131144719188998475077282764727890560947737942072880891642909873890931528596107019913714620697616875731491082927599654489521131180302838830161442748340273723086343075154716303731399562526175819123573000954423056181025636642540209804037684430847559934586448066398525306324703873147856369157337699033434843551080588293908046254853930413119142878698428289951950253335405849846029912836406188256087794733279052309166607408186592431896234672634031514942293176605738440950617042729179463410541075357537208020503873735653487219563641137356900795221526432918533273657193269347266250934365283069850188411801031399863521575510951211200786530324122262706574060582368126897316971682948652068847830001697038332217519644276681766147996711732910568742620041098148420538551287778828757362761336720037069354917392790113058958583974738516871149030531808927120051973743281314253059690541655858593799079460828847487808410011151745224687664020634070464497808904196391567574618619288456206438086916945641803565368022707071440287458859432350597210233778472131199063452522954640807504874854663714245111991542327850107252747440723339670119552238171811164430977009692696037183009342541044976549841859338093753840439547853833412082483201466512648687556622282358044475397716802040386961027649942825605969341378887555329053041255751923123509815362853811283221718467867899000328206058477594441655013482789851794607622645639913207283931707557671959491135664540243777972743127722749289466838553662961709111793710668832366352202038825693595604002985074938846914210382110337896641884566491041581265975589347764224212818122971204866461625362548707344880532354969190918622329771231209350692574637605056085695166027370530825606706237783675413179464976808783173381583114377025165151007449027183866930461910380621728712080952731069180287717127381390050060672059956836128844952453520057676737866076989184966420996470893116594304036150400800194148795208609534663072564417684825657559230690387527294885431801477564923680359896625195572201176626314677194420345670008567755101224268115192152131747929117726501160671158595702903761525050299351531655095076420685167283043384050126476950738091748346759489837816917970233423005203596705669847882032310692252690708410307716532203810677328778380168054379392614230367001704615199388294422133611823587076745269337889978224796267260827510662397234293882954787203810084901051776317638278899190319640212972066307941478798125577074162640015261414139203438064922485832849939719633360375495102833737431099098873974719732656017989786637501670300707246228710575556462425840668278991299898225703433174999823044360359444078737064036480658078419672705818688439354806102204770467741292886279291788719847830962374663339206703891139013049055689010085508306885742454290915631672202158807648770923251677181081384617360026351047840417995267058573751780018846018774497345598933660441645335595101676556123899432643362768658151777294337010948757470384572795407486111994802287125436334432154590264079183445752590238362463357655544570797076845437598952659323173359560779233487644478727958828109458660667016141961474031319334196480054207730712031509265906021387564081247583361907887179938621617907036516006114139182299022943691144466240314598179190663104271302468222577995274815941318643194191359648112590184971485316323254746004643767814500251098426537562192532838708429079756175702620847113874651832188374223910631113282981402866769840935224884071376129734995036366360366709467469115011303364041299576120554748446025636045954960586669298812836634830439724603167079987441832626447657593955890548137534818105736547061486628331943828202929696940971239605678110318124364227626895567880454895136087023788692141218578616202392619812930815221767320687693842617696609232093614535255694810139929829140465227667848407921698469703880337356831645125651732933949899219463653558077813656927289388704630623140973220451138010644752839948798515953723548665094685100791262849091892202932688193424373992676737830140262419674510372767620904845502820512493079237297182597163097216032815503146035758949804710222258783140031081554493876222941548426141984030699435851473442988962785519419754456475297782575086014339533840756463176650416735738891872542877886675159352684390037265575327131850231350017915933002048662275260311658007586744066981368523565469196578736173459159433240799515310283430796327292479179159487611880345315936324865249363266416701682835066948733047413560778344750041729707958633543865246572232339648301445445364260441182488471544227123492560541928242794131528501330379750166205009494039525059498141084532111329589341283171598305846225540818423651766703858069669987480340154727933409274185441476777669671228431350294097275443825878551870144462062512952861975427164001812126165517131357124783667142287919418425739217023993415232081195990553522222012523082633146661104330807317979936311971438047055206385598482474859539850288172128964826168800606478256335288636714259720912674010901400194201263402500705625349671690074940895780474425718918988020215973860868682429495879084050554693692448790121723086918038288066709976439488464273464738547709587899297156858427214425516813887961213761435091941900288298166341529546117343616051336621885837832003686862712436532117070015601380775161401225490874927251779281433702398083224232235662200510209140767728018942320661028739554637745893527871352888641491050382464989243040481747152332563509056467019655036068662055369025694320904327108814611337795280783425546841352294339295677274211680933360373213500355615282075864085285253311073300896381920330154377703662208699679537272038611810571424004044607876946191531396361481758264856532418811183981629947045481237895636783166136575793100663575814784394226216016280128842873555498269354544025967026925153367136148493892126827597501377404743413666176830658986384253445817515214333069225508190460127531803082816807782500335513531796587211109373060084622792270810798732438585993787403392211207145407801163808111683185447789399055634257063173695276053736770686154783449394809591337917276868228108574900579165490539112525194063957929277969063789090929418288469233865712440800864717562217604983712702741398293165886760417937372527210496980297489860796955266412236414352522371243797245129809937051796499528860369386891626306909870347636980056526387298554980489131849009372644146052141879483287208331342967958052856576318635027779785751432983858242437597075955567127704994389240607297954742353485749067804729321654200377086510973287101220438994971766810560149498657232371537436922665410386696298919957041789824232618196158285004297387077503979444469539823998889541759156176554158616139989785254446667340103472810113135734979389193871086320616667261700634489277067042246731004638051087937258472791442606635717977502515921211476455764762218892927894421439150525250483770476705078989866300807946663689451362637855003540298845549258376928044481114146956925544601427775256519338451840945338973131020203054243269916442128067605321010636831938300134987685029968738258780319108077035312395488642132207665608470866334055808194653762112307559533766790813643076834529880538368091159134836787912833831337452863189221734516774292864098892764751736864274016471060687938146038258216039994500486794634249056264761635170011881579971054422171311450413205129180006403025411065848102715482536017705170905968311013260654349169657586327259051338243517084300752954122544155636135977438400120787722786967191378899330659957629880534561695116247474701829420682598286985171473331222322286148720929470282517462418241837403669166326135547913489784180913557478818759355652133552401426255025395076484572688350773652601181364079323456076509387799782286054095720182117911770670150614855429658677735023080746667716961871660902959304915083232251424475879165877708152319346618138182832173729644713992251036973213095715658886722158681996854367649803456282784924894663487205611756713189113793866960936794515184985487910706075344404133017734101715789646315834198344172059916204642133099408529655108085187772185211476870682420280429243967654958224539934549269949544576403448422138403017855007755797502098049108463703398244855225370379788154455369046782913066586104651727393460662247659847559518160988021051072277920006734504604519156134765335159004909743693331845550806228921492324930374533465780182250597064979173745987524493788254061313744534283563039951625647068350443786890190760796073327279184920480096020895741006608950904872917375759109850110345942369408912920517494584995485716431575657928288491605215267062456496220706475055174371983097933448243435984905397204481512998757710502477579287076972849208047486829340446328122452106003541799240505621523990982333319346639228643587166868632567503495061480544951317104481940152386490445897535354979891231757849128667714382261179817334520770155344373184185541117529421490038771340952811478828773683260386986163878413104085279641154063208177589759642167461176172955450928736386373571774334978433864622997252489566461597719199700177660113591405400463674995018124177191587109345676821514863644451644206141362316017624701356026108587372019259015862180144099784343521528446490753382554384904982773323713279362724074563013504256416341596127242989286389956753995641552332613638510062399669579926231720831568408549845141265741645311387479109691720722967694195691957643050067879403371806510593201766813492574608871667542126301258574183750379371683783775933037329583508834656758570445623356226050555836875386370449566625319812999242780665985337178173209039985817607004918892269466779841814000957661224396572394600918665528896225568933167396832385573705271188289182120374656403164835329641814249460180532653493462970076018865119468977003481145809540235812473332084755184374983125087989654467729762182095104318111588025922285179221755114261990201954763273615709831853147341025618532063884457613279783419094660017469734273431826367674089913673486603077490762857847599189927231245632944588996337697978619030478798801140820958388701340078054662478771746245791185117106233458240558624353742986106511323972117392863042623572166953631572002666216273281303482862334406812161814721383509315094436213047675282192509095827392582774894410923993208421586728513051013325579592260998527503072438097136620336893121739561190724724760344726688393082503944261156923182483900463288679614255238864723374360366433920408549789703844757414066892648705124546500783107283528935224129238351492937026259224939745934098035748232033278225494375265038717652943725813462564429386340058436174690199038480061548469690809577413923443925099069041360855162465528039509547468365933174678316936335065397271370060077649830990744206344412593133149289632007198004682147035978354083545799717408208354574847842363840450074850086254931766857449728061747539689377210480968767215537535850858412055914005343223966606294851366493915055745881453036713594517466888488325886813843859969552987237768330469053999480827725812296386625179394609651372899649222615762104670897062695974879263843342594409057880867731275803215401069871595865951748267256428051113562342135216759361238015678420809957682766382082541764106634679898404079675264843575360353316599686765288845322203468496906779108383739742270428116595998889895811860755849551912281752206149929823268691965079474460219677670985599156122448808372701631461784019742817739953699802144263123314837231444478842174560095938487289902969166144272962980564380300276188379277137355413750063060239043142902536084140115782046295718202759103091231514325552260164573099273241602108614079623642870855086659491133296689640882897888779175776471279655106391238885077534566151829763318355056263158923188778655882214813321677399922740968493279008857634831638574325188564409673098418912334590962650656697118241506952373186941633393881209481239676883211897791538249672150311818682881445436510012388205217647204401159821862523783283211468050231445812452229863455480138190959481548658864750999790006352364748233740998853988412686258519425027365250833383667476395287722849295890258271175902861702183144326133951903024442404300074269163704087762096860174239482590138130966782169362656531094200426463503806218317647675247242178926009705072897134353602719418544980191370324489740436438755086827091458713859031462083499261670210303030055187775951924970480454171764943995298245287757916552676211196934884940705932184926284239336539308096395941774455646371710178718211109119400589522635133620754854548149929037157145412039404331506783567339831914040603746441966591542111826594335421955883134585145881452501825488848193842542614035085937635159895594624675116150764338947224444202831146534793624482022384477840198957069622831726064136959006713050310237885695579072742434652023917736823665437397972545793331351474631263804159533404422206538261843486815696483470598249713754181927718774399251182771735756862512903272932434529588503556884188729436350369045651959952051966329131134566165467833948847737965170120711013359367391311313548925799216434371966848691080241013036394451573963128157493075548442226590310543057514825563305371639465421967487865025665326694064703923347489256522794811430290901011276534284076638046420979472319467381157984853462210986747567471274666504499615601957144079254067164978519162684952685276067956663249910210078626716353175521676059807196158459342727497957759637939044887153512050648642526760361815699042036613440520722923538009601093074347160263091447253140355288537490229351081822989866635654847280925976917182833564681845862991255498652821739679665370917233573285997332000491456352479247806360974361233900677448532644559467554882669762593947901755995167363051598803903202638728245544256994094735386848248242131535677563676459783901210624362740684410891761516212633225362625846303850751338118680313426602118992268695923932692492915849923356562104597835133466104502659708888967912468328276754788817994064410352893069789301346633841210461617907064631157663666012811337420058571106144885916111632263966587902129548390878445350050248177804174004208716453361783464600308201872398635873412985218128506196590892076410225386709164628372669835391445817421448610127735117485111596865103703526563858320622027962597286996031126197271341646564047831059708462549632344168487983728967474749272680846102080365101425401394003302777478642815013215460520311719738929162874856595680370847231971828653527432153607473934942163377407802329193313649838289489671294443294155638729978185382963634108264976386111002481793753783140466029453508440745123504324401389559442369879190796222063374540202658676197125215302829496346679495402251879333343889635928900336706123031279895138156383744922787998897374415339089601985650633416535525594147713907353292366826490824817625084914562734417304835881105945704257828528236963377489817927665663257557777661687230309283397889064679399997668666760374672406824265436103880732888825242863179045036202157328881868700249404053485268992366430294279145559774142991878576754166141051225602919923929715589677529346146820099065965093288280417470583732359889512066945378278207210638150649885647220229951875640097217796881436806049855509271920041398553450781558181121493831465126684629634958845787644134648691412366318433425579960455857927330517127662093571432096427266961592990972242525207475613527167428371317542652618564130151374993629009583640670020884225985611098520599257724698907538964230746283843620520363541923274788990823296303750866364752963743238530382736714417935050376493392949898688974459165781798626243836144690572657275944958251804717628351218885318823278900368488198903185500392851883939316007995101437070121842406521347661042536565709158168349944576047303157979845711875805286202292341396556317135981267526988916822741697031670350392897626817722389381460412259906420226614607014540385783951467337625321665394017137286964972519249611742662387728711036457842238788063535320170227732184471902629000558263122467625184824220522514599354953919227165598572552547060245946095502453492978217331986990510983032191278173042658295929036554429103527508671411658781765647811621239174854715124448312228674644936864520710441086998866197023885566519007348641879903443669359667742493471246383395095543074164941205685291042582604549145800815588658840822464238531018562632228800702363660225159367999474665765980845108894951435356421086066627729502704798139379841047906744940950633689057797807101970191186547465714159056946117307312670950142653847479258702772576537815726884821145263962723442548805661719193578749584296335248878857617271150852024808113684648766777407465196996089606315285283655268796211566797479834280490256579750821443251763808654184464529971443842302802621083159298545725591136401166105365635484197971288476753381522475086459215182736322596497030077731567653910210007848458540635104160288855066926470307021628894777622254961333991916253703599995521965925714254252968008879390340645996201054353491420047100753013979001411561187705440962322499566252677302087395697643530769462281105820830780788862587059215307118362085005320351856057335209560672119177845590846631645885001527867125375301900894045455991030099021803986646379411420669743565451499982498206000163725992231959449453274793653161209026678663334291987331168820975667121098134867113128036513340372165485002724167686077604005547530421478077109696242918521466844601828262945075820421869302507558090681788910491253832837841791596546742618846710492100840544769629232610773341047181065971817573165847955083531517820238379227086988580316432828783504371422566705264949609568537321871778927456652989834847196756101521227515217038728564675982175730086134024716524443520048701856079122786553523472293418953242038498615246958381725414121473124241520701999866352075545456755126823195349748611476801829638393180508812477511604189001417688001059750325926116171475848070508450306682039451143562420984331230988751519622319151498685793362325206194762950987209762133394320964477085927055883689330700589144937989844131795221361834989484948459416947218894626889469742021258960227684371674523818383208857133096954333055913131101871198209262939330574054605485149897187289885565546387629824318975158799263205638251709349984306365701403933198519771432591793317550800388414390428108252951422122195506757482748004022431547738520447476622750866554328441213371281006549721198769031244347444587425518408768555283780417385323118855677318912907250125231085806243877600926144577579659138292285532268163467428433920845690364286759630283220100450978830048283953186354723399392440767741440040451648323170117533927604822868493918057101887530051264086514609014116056181898910274104656308374073776620603700823153736704429678753067598804589974603078636129066676235679729152867066017665831804199044885666049965913494577494108811617032418337361677701893078392797223012263752675945480623437249833303436304124603472818279628572889430882513500276694384449431915262181346518304952861429921161944616060230311811806631959970146049474359026120159710236817018437995497050570552039643098663045220514011270335240421997221898621101991923818923105712980548701772720267648644680473908903755806711792773931012741230840714170538544461374354432006825423991842123556564689092157610127598378067171217342081571642625284276783389787315212317573643151453615224753707684040146952424383187556196905795381792090064508977463783988698510654766590949979513168239364879300764258042348273583844658267012515079160822534598453183663892627085100314490490290818213287137476321306953518901563416439356366684352337816057621021094942025705791899815500234403597590580326086107412288906441957449915223311252454116952172007065962452076020763785372126575601264733415152356135394295421587741619526832544752482707824662896878077549079636403920215033910516458685985347881441462669413084947320248114644033537426918154942504641624020337414720683075751131270495074808446145905288948902428572330473111195277107771561137667043788460194481404726240125781939577650918377807955508555386228919561306635368990650293949042988021119277136353243608380524594034036804312155609410716684201985169160006449343004399134317953819671873139013611951662428348169930880094316305673988948256252722753177091821239968796456000053247480877170512154680177097945468627201847205167743772839714560472108133595683212465909072301528149580966635910109139061484232710716149994900928391547573421651973691538190195718022424181352452547370761249064575705432357251289691664933051084553615679013924938127334109575338756585950622488935111465750489913485448548891531808958733016383496625923292068686112054997135931126097888568423527894666093659987855593918329055913567625912413467882379201973178977450987261931963367671216243134556976169066726313066795336576651189633688417082142019804243783510916237603993587353130365667777165965704334031524644340687687919355413650861579753454387550630788344710254311336103366626593522025826963151717393040947829626475552612621928117675507792678202777585186513743433695999701561451508840193747894055767695568070800430789916515697812356199654157058930281664550354501037402516639084965288232211651526415787058941125867354290248248889807159432214768795769163211788637866438935850637028824905102496397967948084178552022849549965730566939474177790008946932982217230400124548922205327885215114413506143081225862179969672921988755653649880247810663514506172307780973496328589468517908114201590394766441419219787968915563705161720185235299363038396675104217247848542502184280227887524087707332704232638043730717134434930722858170472090172564809966081658009511002470523826946135745950579811686175907766189791661775633463328279653495580689399030541001474929573377514071864854137361841884254638328374446506093105809869227328715806961597380512135782001490651143691906540495264419039748703291027573301581720611471756101314372058690150624327461045442239886011345103891240539601215287046783443873818749363275864597601340654394728203482716521494539217618218839091181673721067457258233349110836422801127600706423996702771520241328178916355156431663992426374913329347680251999932709720964885538427642658905227784189938244310100049061817737218926798731918801587496981814827361070791895173148999433644193551423009489374042765992500723733333894406624654964542316527884940356248679449031553114366571433852797113726189155141016686752098664991274978672437442102996500329375818948493330673987746381640505477668822902124056899367785580211215796130432246379725238767302961840544190390251188255748531353030067013610357788255667065237189842914302064857192473957800569948453556538950322847383027489230779122156227184206707789329770292857325042635383794559991180707643335249251205691131938353640826748742068347049687451256732536460065374098083767316734089306430521336661916908504264048877619983304723352527237727642493737749785510686158286151667735190990545513665158974737952193274815829901185550917892395268878200875398378076658212113814948009527577409455189165223701777452429018863049570686887005292891439763114370551389172250133085327150699541721715736570973593453473067096651695794778599622204050175609849588117335021015353632130575773193925735939473037082204492010286139914917495277499981341286587099722071111130362765734076019207629762874070907938869721022918905089042212030438314508465841421949201756556094139234586938002242335790859213721954155144507480527291775838581862955435813495123555658474084634425290282089433980592038543470495742444568194833937759984129357276870152829025455011412498570055697201408035496933669360324579846785410349483419086950064322815041953401462368980765627343642108852720535904744608264733486384660688992264920688195147453071356785059119120426589705823142658349888295009524164016716558934471256540015770171507974206527735949038151464359002343831192614699963285226827544268410667340997572276113885805048646084482378462265792659480941446586631395231921868222360818268094791253424460643730860868392410010280650832162299584564982212958991014703400476739771428838778363025200242303424659476610187361226948335866922980533913620451389608547348514420220409858744733341792465487858779183954476035619781957130189682407174375622200478520322694266462911079077182939547612242995588688417390357322114799414368339412857688479519054913357626161443343684219430761422960351576688385482517595773679090749146101511928215411546653616346851534909583891306629976317666821345623400095974966476953680774400723882885089231081860878675652630383678603119219238380789212081191334597170587103890382717860766039907763497814434387725120557116902893009457823602221577492165211554465710882587281496454258083586444606476820015218042037695323585750246097779334406832006699548478548476247623791542151098168738701590243749913009046840471994312108760329597453205832974660435677357363932162808750247203793417408997610819475499464280060896843869480713225568291928944649944762071187187636718914528549456004388861938782658740842583668092710805981426263822773349814445134015492646494494626210658755084864621670046371560195586257775586804076661262957575114419147130229633564601872158386207535541570867696535869592788704672335274447511385618174728536896204213219112261290358045466146399235636081923710777188075249696545508273985484546491435110808402258492514746059589953363606911138357555120653936537606200955909353090856930451102043090810569814110602924472759876734245873959548882086710566013480198280855241683289578410862167773551699129936993995688879838836283827838703522885375771599869346556580415282255070882282097747285873088862303765852435752249137794546451350307878265483377301581705343106634254744197611564681598979236271228344102065194168701956069362731542642972525584891038990876470907203488344438177241348393018502251681643678570997113089851799941727792019480957130351494243288618662314680848847101715622049784402834178928474965482178391288926079955996406977191025344091182027033604744145002217115785207164449117032243230863475274457233453217443863187530396673747279427816041703741325881792399981228611952367522544610361374469594510153909665330585818222267373556603526500641298300601812002457225202422377851801417493430427902035565873059421369201525715329035368610852980531949692507438906484011787745534056325599253217517081632232590554078331965099234797979802393075153266814360595023004078514965042705553846184380670732262362007097175900443173611711120279814693104949436836527737693899938046371574142543443175616098819924655128361958695766237506015554441251821646722251581505917893906197608700656763961450793469481198552087637785320853754621731708485001438182369029658073055076038070777493901486105814928858923105473509729963020225888658946122955195521904391010152521090590669879488789825747353570911822368154923317808874583130767496668676887475884327154862533520810151790366053369606330233193326752817206529119367153509867184930001331627455867234287367183027473889724035706290477074543076145691236696786570139570330563134610946937203328943216666470101063070223485414118899866498274328434415278991074471141275950886115723542200586658354664315985346200997788573827525979586746094251149725708178765676747703807315770259042624481129501173738078911926034780873965174145490023365272761280268299929724942263228681378148266638224348595834133232171927039574266467979823067692637404500457690365782373299278371914916798260764196188852867311159537762472316274763290989561166618021745464528469331333391156493902442140942988611105511746992965764337996103184616011436728262229938750846552022812150277507847177316470399252181012105076945994019554608288343248104535890808329430111617484510030636382436651118709969531437934519236968326384569678166321621254739501893289434270010589957120553441693497262360837566010399165267221534247769287860092819856631458560226091359592717059164679011237855582558231395875198883879925749428088808803174119631046049630502985212547045987201627071134658646813940196257001518426774059233150349571647443268301118797797342834675122983744135780178237031273777371504303654156846608334417205866371592458326880917946740383770374685678423309858573814436707059780208713195300713290800327955258743955538410171833555655721085471644392465894481290468986552576672001496305820012925837013666622518562025353433966379244522585370020174287725677028970691743360420561637468231872343467787276494406952028305257505686883813612640024109589983513960518410992597127030895596244619313066710522189411181509697651661069925779274532831743784541450217936971375964517869660170756527626222856046690734019432203827475158691124704887103817255255780752799387214058656714119865395449232514555194619215844916701000943394388251804895845432502182324861406298966703510119700188198897795503728759321267328719416552038231344574007237850000851965825486329524087713708606601423557798702447046387796726567871453149688470104831209503246302465791547030263444472352382959490792497931614705332748826985750277003293316200529727327460949232323807435776914111218708141725252505764909953449194587189191792571478503430546282944613725114385451137456554751602483063166598919257270105087477713461673775896109930133566088413400564426561661903597885437668846407268566805754428976925432983085207552440147967570695351076579903668313760476355035737664756469084265011987689088142725338958070428696862999004956788813331763574946411882375047746918012250247532980733690159680051890957032527302852974962353852779823079481764381515823520230714925938882050874334863918672370422191908745067742738599964476067571772172181504003935941900426301805702892162776919788343542912862889721274856011185221256730495248745835573822667163612959062891967406955836560507285181401784982122808455699740248509475785079371035740478188960898424391002962818367083716904544157804711408043200527108623963212500062102223404479959087677930599744225172450974904766934817737384843362686030234443409896246784582288874760513674819607746828682952922330294153168811471380760097742405262661637981001729146159684924722483019883936230230350228125876752772210304830460066677192122640217390018883458520844234243162166448601580506095876443189016805345483285293788591688430972926987704420836444068996453632330257749463940171703360708573001493457460909044694095167466369160934997168768903121608753391176959876894818851530656517184507720955378859955061531865907618749927229870269565415495422372366027662397594400780716568337657430487593471869757473746606989233438259944766114825571129662492450985806166391820853688032990141658639572251420084207356163710474372349368168528223692597868847863472024135179963742834072378792655320783569956073491062003468586601518790156059276872420131652526946979090546875039704120712897907191770766889420014842588302154657604555010538637415661763686406361189277934864921030043434989987511457245638510114415382329073478317183586371548540912276776855537856007812810389137641167868627144132207190649909744345173525561860091340584339408540950569513839741030663163259257347651561761271025089139223264242118562820318025437298587124688276674795053696121182189897104152252487706829993118232402845919235338006400126273927549093420002429996174430563123071252176999491326376912939344990509138433214227601135989791645871284661149829726911906516006389684536512697628984973368781973482541882970218020127218199806137818186655236570592739164502661596771746761668890199325633176661428056196019677415837504315129111360770541565827975158342331061665806622296303126247314394486572305630739020036615997217271445149311914624462834824097081476535377740771236984578189953731872794912391806206164027032389990419793865716179267295785613716825722377033801188420683266891296679801020492784648141292182591247159072864689218789119313868869221066836769513995843208166511584835467718154515478220302252398547412963835537927019355229487183127162573314674366940821044237183530164522527272869492272712978016575064038065128014141405713758187147590099729727676784629408489073934060292008845798948860462066547659482937081187991766793489499271607749759617885111953724831088340176228419998826733444062112557115672071415214934218568161229915708216561871330824965195659922706194054343585193569908540025839848727727712021607998193081827261696297344890667610452518398275678248048787507551627301831271907370129663745601360671322533025579436935607341517089452307604324343739020680022085616518171740611292060177624473318863912391386391565367569595676016788215674089069664678385607758677489264520910054205595970486826266858593464658639445572525259737877313176855793821989619741358390760099082351311004211249282176823279899433250582109121342563904230010358666743230318785421400356087845188531716241856096705612115733818806959512380140510823172371715174379831093717193290737629141104555309891856726410577325266238450069948570511091861159620380181023999237307535341649530844256533605519708816345425248720153083899116848826371975907467189731289686787251143452943632297467180946829535648988691611753358367314559938562853248592969683956440344855248347795143617754114142460821204290764667058963375198006742529623525100542763213448231669280273243588397991938610724516248578262113915277039556693759278315902153990330797774417169632662408048377876003690217521549558587791511373765031384151879120023358326644435622343501396036331815419290419243857881349886510305385808297273711508134573214518005718971168589925838716776956549716747930976313305029394988429144259830255563238561020694798061815315132213065723697439426707527091898920295081609921867620952402323748581497094400346348585334505139177609754484144382122743557569163899329506438892698065840405803234026520469840568089794616713888046718496564598026932738192508410852686151743973025765623219201182911468958399935800708141760652122292637067021604219298669312566627433239740033862930436076874572479132493545663984977343614369425420959427652402843894454313035076566166012409238050643033322322067367287651896307609008821752656524981781551407262617705357505219687220612964114528795056448297519911242326225365307328919831944356516456006107246843983939533956750116986549475291820710049585312411534299120740945405715240143621768220353762855046057123142314695746736257401716999302397371488584097101064803368341198270120670314857276036656079038746328987047757768059066568930394993435828500518694630004544487543173980164309049442250889168607204764632087556134614225622652433829670592851873354646047340332278843137695981206780097566994734802230318358843682378979592069438987870881966118214757681188049699591239358471803811791806646303402506007112958045466490754379798699301206914943242916298091574534088219380420868062639272683553377756942900349108620018295118170721902997175575701051640927882716232996167458499872382014014588803507224694639554011804762806197012082788450426742868954165033611544530809006012841756776742045349923799163749363636690200525209269084027364109116917010418091321483044014040155388897813714272749622557370228737983970261032728902905730477879917057052021746690226393535981813167437948887976922968096616391849850918390947306003908841975283366893520492062909410797717138869633369651529044587330908070056109087120149870518013373277188611171779724833780824841425409443081429534188813506345878501035768562626601352621443978312089116948527528023378764358634206643095699200423856280007190416858264145119998900247002597820546582829781186042312769963894922027317502501616475352159234842570458735757894982752599636144815797036292260836890464400001740870183622088709300559605842935832328012723162119040464817798909100724008427382143546777887951341295742438275260544115664103308645238951690808506145147613750661922412483668224786360124193265420335829835241059610720697365657314880880676551066008152439915410106125725727621617764539812955393519871335308452532300969542387573479870687490065685111666828604177091196872067928368370431805600764571146570999787211469363330412993267790959040574387824140542069597647442936345516836133044490503791681688567488549174913475406476648102615358194174046031659812464402417473318180254119093707562556101022075439588891916645436197105146749523428085617004527012383359424726547188736381365687073750336774320303955188190374002558168193538357222265996175599307908708764432578802374769175946174704671078010349630481721920456015625764706578667352353386025858605186530269369313589663923308476865966587196908896749205560089542903791345442713821155015233329409359826461419047175448480448953070024484839755026677387225036432133048367554291342744751975921493790006233991141858248717054724784687899451172487319629551973843841605675554788529755410350504270836648554329321461406714468585541177653926478929762484381082523260885987013397265147054487984698910580660889933821918552803828923995801777441684715124963006612597684823172573305991192356638432616031723375995309244239441579033416992083042011772701552767954223024328356170698236894580738045611375290901089612029451559869603415666644274984118321316132183118397609278387252726272819680274284703918019979503712965064390467214917376159874298276449684279172969593112617402147652087900602099376472009668944566104002884156291585177543892822106034838487161397432011229010137679089954598930726599541298266250463198840322774771380480915163059196350270564116046694574547685263684525104159377913936512097555881780582854077166010719025149295469339055203228197306744439202414085451770868456040186047161335174261871981661354171695610556712210403510104708601171131118050664097147861610078385564983780212286594667999274816792078495611960632038995963357578304828814841027745782604352414649012666337754003591237282040069340998185854214213795882496767837592330580241046437820714233326167322557838580695804486371558422336179737447044785759136694810969711137466606338187601548012387487319129925067700449741241837667697253294915903581800059904396931808775935657048153132027710954018365388111789307555559267743770599341999220427595456681881448163320728278956623607276496727405731393073734979387354894020712240359665232997052130746334563296485213203378794956016540827442769986307533164449892316184477442737648114003260211189087593823830531657314417293721444390806392204700138598710556859950721094336967695005527083623188910713084101618330021286200658910301967632035749404683182295072224513496073443894183571779143277152037344314108371396820019940165786632650021908362128465219064598582801257252808704866255743884520360053535507886273589433878474976662467891266569242863244643459453837349789919113920431500079141589143413423329947174740781446372831860930102969715785841434944397532553058137006412918802127647331005737911095597380379673534118910709459971064635466762972364779503453247162590259355304075170369395663276483279492589145183470951989772712915214894260444670023479307940480183173456586237222812790833637851995375480893507933435228071353613466001644389948375155390852996458319546275702183248391232204168614632188225623217471861553471770716445582013136332911671730748417788531112945279398244805901416027533335884853713746408457033480295214628458079969814971754552602110999359184725275184260938188013978963252486080432510350120147107638161291438355538497939174297441184438844307685386158509257051269381238321516554740380787021685122455073889761931297614252014113058115575890068639155986053940256464925827024473984638171376717423583409477281921922414986072008042762500477115483867052478350447904624437977314898150865670235436059511766568908456844257750075034542737907616734847173376541397471352479084187045960812100532520591067368113695136889945029725725917594061897724106277312216590083850968580414027561197491572134851244561705271998543615668710730263323443958313112062904273840427727662582047998804734080681012045503963371116572942510932068030788726461362969587180249856157285201261264706861392261398736463171746538569910289546490980168134877173216447267907157587054878331437176404173931255827824125441744608448003323959703501398919140155541104463666352732966238245533862498663525672784390999531513854236311865297191543160754675218473487515605210279741345340365915437364544745282666712587551558105774505652349279061100912297338113978974027651991592827911472385127379934837022229941939577561235995180433271599758202390218910514327772212693878310117375345204477521595476521788574289506441755719821295864979588614685639818786889485806415459519805285939915749000603099733419896767905672921663955076428086856415580478839216095659062266151498377253151564108782402816792818896896019273877043188494687839240319731312851138786621461313053942333154939641671514846801586203732285397200449042103646991006114055163357516111318619044911673864953650368456912905676058659368214092136183940137087947057912169068403159136953716528247934286928309275327302118026232894962354169159733713011654867490968931746954828922664427169847633453692998340018395850228666979469314195787198839916275297946989582345652930936023026926750320964402364237628214683934092809587051123445839052503950548037988644566680318990831141819366547718748526985438872659443529288006786109762469126590723372055307346743504067084104932224120350869684913193562362904286662168555482429371702912469548704239133736771979877884208795749494595378219309663758914109452493258098692055980812782619180822452803430480871636497367857692428596714028727281393055531669295095653144812907243940116070551429564123332561264115406873526095457295821430428146586802625815894817078382095497553414264022259814352367677687141620846787377918916357032101148524593783333727995701159863144277506537336103929615030316685681261106851918073975781726175498530890491865708652354880967079520071860784796235582474683501972664681710209670010486298346149912742059781612749447956865263646592838922840820563259433942045972074976344000641689199991755060831994753254398924605414062529570033066711018172712397834413317899482524175127450987052244842192568009174442290077688618378463416872968417095445425819270182719615834244684994430876664647745632273108157177078182394176096434503357486102028366756245291258230526146979535088430991037176224669087355178972615375422350330160434992597415841760001924831052923539139587225059851216909979196454601940999524642288579575613716432236754411076414352481888587474618542190377219048353940587554620436144879826455714097571552362358044296193781983740077038103606837175822821620431555118855934360910238784805570600053875225277066346509865423574709899179347993971127976268727007588149776207353420608956733758108801039303769405616894480463066783609295987043015918597054290426253237383647069849695634931537729656673360923141290523005752247306227451307430076703625277079893540424829402812247884473645188851222406543329101194951355932734872702243843922835443180752268969132856865291473590681564065498666863121521577741003193216739091126442955143120814276343174507665705843329549048451792257314748377970198043903762674457606615430829596557855849557024773712079469838532885767777282695355920617930307978605325645627426673799684390450842926550997560593544884733782865123723811752715940152124920960350688406437758018321654203376225151284087281652680965179169997393698668159686503343237412328754687973213922333454336776728982776715509275153325542624817284665921994331466690604443291138549886019589056314115746209409261816821632810708336902788109287038051035373870861729538821710563487305693152226525418288095260802688656244017065552138385939072153381854463968250687161167910069958335565217523633749668455151770494720229239575692809440724961924594642653504570254020792566144869276310349991560054343190843629845686681394604905016768885562544006817437580961768447820899553764979600090928624253916639498472099241606605830161269442096944020670076171790483071120327667993177935890605687225756572007709037269531782404407724635078392217254276707358977670078562864178667559748860424659682822449501944309163046827263151210970673694080348760153486901523428879223010574679624558511900285952430195565257735315229879388520673694476630088647153026939822787031120032159451149477145731249580813720222833871283062273717609095523345734972105491851310675991080314041971625760665791119236872976238167438457122543769384800168529129014457585099436446789160395629985671039185129680294428430163489221592849907782794963695131596669667431634908538967122757541315428823867303002477447068646985549787159198112263624470472169791607552121743912169189957677311608776024208913748186852651647662326515087986629024167824987870992806655669517012762925238324692784404928970863705176555904097535326298847953299658061355003771853673225193496016225142638129173536654079107660329554994127992697507124110588167515643537421311177250563972750434055867036576456137933728624161779241572243696625069316758900395320138108801632927002340320077463371801264871092927418200378541716226034297483770778536689879136220606723689524850655392320268280935232499449864517786608529277887983559719934301373795836494789911604883564662120654670457871146097194695126358746581815706325892691918123083527144916553335390353290219820502236733624558092983719387419950597686119594029084186784747833393228514715201883626494885504763545564324552931820015186787502000262589564866500954205043680072439819079111455379472210132478487028280702227281665794571726053808949995645809604539373857815730547061368849479443560865943597118805248041172845332577866090820423494549087874309817640673469873602029297037679298300011635203470074337474615131692737417901252037132280758071995804859548621130610061865923733908608830282954112124867330595209294036000217255284612230888673519495451914383110881742867248776682981350713632396503121733053716823427268580428985598629279100221503472362271396728484801438265342746225375866324824072279192978416384140986094515870408326574192478758652032127753775973400584268624804218124770976131963536518136724842827762819079414370991004389463335809793544755939651216927655998442995021653552872871593902323684295965820428469681879089659742923642589934335831922222598257448781956945245573350340065906987437846986153679961153531651118434828951798306814576543390252673814404964391516078985685808234695944970753931864913080532481260463316790457271955768373270720404886188834413577182583937306876652347642022474871045453304242599681611139087437823582745516808109579896132776862270526914757944769025644765700963174140684508056521327513565086307625031854219000480170518129735726472634599080154350327485093235328825950520377266206915213355860006246161659105417072722829480584117698328205744866000337317393601867918203355782180512790357253837337000059675385249252106139603808686968523219550306415093944836938457654011897633665410675371842499156055973217432919781235012625504261907841846901579744096596697153035373611396189855752516769089727103458499928505335504356840171971814309909000446182230253343640775470444667954766359570784518613833864353305600163152964865925290072650070601534872053828953115081255215862736065473726513499581329944234021370669369592297687253954774394657561400184707099722039965171297706524486625868501222095431044615913635462939935263086217952388838190833407654327527054742106977521079250085836157206316790840414953703395663852646009271257016631905807964135151936339449983712812888848060427726035154420409402652764313383158223063953353286022385121559886982547374260946510749896682419929373305652754823100746810391471338962792908903709226321423927648725688686997614697399856124392205339796604552862832610995051806248506790388210044812594959778248744605059811644542987883246287908879250104908798520828754413939013827803188117922250827786437825978770799700412877446106014401005559356718324410589657092721822820604015405508726701168613602936829503212528789627137305831527183169443122712683035314460118454606439760451107250860420807077362221483999136949399431240522097854750811606289116006848966703768663577018580779977184658830694970834607065010005035204471412937097939725381010493393751554091431527782523906114074085649486346287021445387564601936019664213750578429431237250070723383583056828979442803141801650530347279461487905784509170564634079782553601035973641690457119920881659392298009504722994659275969377699904691596660932881767855231275410010776341664681633168917970881240335691629566358028437805684936711161614753574351717445247025878164027684909590184520584255751219736798448126378660644015772511192470554632511670921070310376091555639375319615041012204211857479103490790275465522759338371011754283157150495386379671752710448889184931010963451283232800718655349606142619377657217080243906030231289687606912282364889428026978702976258119529324257358091275216507461831842543858100715265832470404467889044525742386021332344996115660874214206334307675683480698132679604958544710559599621979407230474184639490030263977884771374060632604359192291383739161650110108485049040586675382512970251088319592898216140806001986817282440080093862097416734270775961149989575738508723876569848355671685764401188951710940717390996668785504120223764875184575807441056869087342733436393822616699307960042588677197864279534750073975119007813795439074673341795568419314176489806851521077607466384997708372824894382574976903366897984571637612632938947546118081606747456483015300484709524326180558751186326504326058003422363515710327236060286024861922102265945469163952906472818219224537620333345292499353084343130831461958686190522240358680414382039589849195333046341955505368818694770730261729429077877718291831065746326947730732112347824088168486826533165872513421968198097035792603117312270492833220263786400331021918639643321263174540637534808929606745270905674925627181266094790431745861288904143618485139627611661243511316195727786932061757470972588758908312886823494504416267389779726894685013820203325691363748679033556867772620364774368998267144408975333481830958098560019904032118664403363872659356768279969291173038060630796704856198529297982490222099269628282185024801006069703185152192459998314307916105723973174663245039124874124191923421750043781073303006821869381323045111173593800423135101210886256148240775988388315403912108417568892434511362096672363979853396235949890813448004089753087785346726082225867445696064382139613170135596515518911521705452329343406446608366551547277549407690724342327645315720288317573861121343390586493421988556399953065441388416315124212207359014467113079886005086305132736286929099178450460743240034736059447894678613731910272488713932698880603890147244346330651677387992587281264488938951737368840237310721128323928258148337862847369760582170615377109068049103216037490719130807670716350281562750080547774447751491372677675031671991311661301891009514374214896258102804824918523742242650739214123540364905519503753546688293883585532072843737182049590825895681109000708911368670082879686615827176383388886886348487408012438259857101658604907101251732971637366861258025547409774118248682248550013397935753626909939548081590648817888862831473609276287497095337144287006454437479202724800617111666583102720108657945282477525828239792362548761409103338680552991813218429438832979742939705183906815813311087218375375345300772531987140107000094133927663454329255582883928051473426041872708618714531167183569921453640389965450810160702485862963341484777592896475841957601290654384228520445669025635074400803954652842131909392560820236797226840443782797672739836404535719323812379115412921671153355181985636649936785672032172073537617250817549755184066983925931660345598728936895831261430495062963387340559103102625492262648843724418165831222159019388870677071536842698416057524607719017457791086799224232611269768932475741130317319932698765905832633475465427797363553726435364611490341370462178252252131225613050951532886798397232282192726832919404685075513737673919625338828908203333482933832464993281582837790477404434992352259406619870512597782423742050642721494035724616349288605327515998180777437730533677768064072459200397398410523352040384117277673547247095104295272136382294500042525153099468524996948650874813797499358346205356477561605776799771364330650536786644265776128208358534352033033559055045090678071548157113392082577248986791514395634468253292340561206325695130287767373265930126721976159184513665484417812441773662914341358830266340972332154429457710731782158195527673590742172321362857898304242140799830445475102940074867945824741194548475987419409608533361861585653200893597009831952290728323539272620866920959000256519804642016444020796845790718510706536936502738747924289174969700882741484947388866686445591546791964463263899269160395642515387832777601245376588474720989830066540016056747615628051562271601123527602028009637335476572273327743900365789777955632839013171283639186722723192290588584058094859028708110904360686146247972260007254490513614580123280393024788428638014165320366772478617806486863657255353006456481051800432228049982972249913916851917567235065804039075040747679882726429510045266754162537924459768075853965120314607432579949901798421421156286923546170551392493177987660641481343907637103811339996919950536871396546867954154405358637975717615857884070599881584070219506362002254467185056918670232255657944044028736481776535829752593422551089594599529565548386239612182869054393884981056025510041923797103124941055934571828495397626989311390189346612611551991677032736595151275009628100816176601040405932694334505031407254181188121476146276448310793738937138630701526977271298094072448079675859313384548261595764168607501641038615591069017426896178663738821619485881106435221914081807802531514365711748299605529928630671310515642786717873418443282695144784144902000800400398382745404666433751324506790827576463268770114221340276210077704729740708787838542431310714462013706279864532424248069371506627408168756935530715113187830747486442485105801011418777846915501512169630128184785633252103330054260246895914121854587391323231193340380407385687412836939369299047753100402876197421607257168894117630025705700440360543364432245634923858056251811246624102944872751784100141183138937421701246366368981724462777943591300880074288237590126282201896366019062562969997988018911288585159957592696099961048799397820520220790043587871740574887634098304141590038299650799663954056963285072087932560867916498224534348305877250908990116114705400596083650390755566529045624592121508295426777780635890242777315568049717510099057393741354258657281092419754567003317754392680374885131695337118838010294265715833339215480637268168347626527109335868540128489588364357256523871227048139270577619478733190873919587776713125160802447617532050221424753550550175501522502114130363048813299137503076787046628207933903725698003549719119908593725841356397742951699699787498971972749980896903539151990141346245480354708349495807112511418193304699721014624895296713132105944767662954915958076482842270003526328627370286294508958523104542954902794794473738105085102151888307874119364444331806857472323151408089055509849112782228205876254177477995768047342921954939531302180366155601256973526451150554256664992961835846214582646596881325970966777799433807428098566663963773547807048109838367966156466665565279323657187264879840394479782960864205862574836632109426498637727822886082960312785929452088419738154244327473200969003332544214576192261242510169009669251746482508806028254115384930878587092782987352627396329857377383063744593287762065178759627406893453241352879403796176231425687773309999988601021737734913747123164325865301396552843592770847910884466411121953599338547060425777206169446183942505783898488527625685864523868885730415696662750889601055575475130491371327134492938258888725215560560384055774826282232422109568445858652838689568857654229182073434680667592355813287086637660856838090427246310315678599492723207457502331236333284369520976767360073347463803543875045123673247982998417792961725285101192879998055359556538130441726404031100555097922534831677151576773225852495320553123385318177007363298340983847549240370059706482490565030360995723275028592801680521935363500194002423256214032726100167470294093276764042248857077208824440544402457801861837647518606901648695912842613078922399405765771146787860877212819643923441172713544610648236265673230086515348651040896111671278241720290024004572255702318851079191400847250272625667001855432593124941162657378103486416243170726819736742906001499311595886236881996616755932896701166457836097743043868807384150540771536924739496826743956555791850316486748587567525647041057954532387335673628255213541518874232032452097217779496399527018580413472012067364156095276715268645125392631097566649082069433864832590829908895021181542676341527592638510540173913244535615054509157537044246678410193952141656562283352162805087317753252651890476056786932354735125523207963784350116403101903947400096980574159095796484702908633721187348924023706232035544780316852480441528767243589818318647379441361961114935760416742099189030779999516914393559926506703220534303716414587294324191876093760213075059514164964009538034927861040746649571535669945368958163282880892014016041235841790786919902933739924789790354259337748385464075130218275510334401264088335870877092729548865785911869802064452317441549587449715511670744243546791155451580834998359616731202460179015214509880587702659721725555374903651673306033521115576568339909881281458035115181302414305595162935923012610794059165357999520106059863169876070737897405282683759326211743810205536926029267615646796794349133733967584262836290289647170976923786576766490017970336118514733548949812280599113321398205950993816871348102842567598359700253086212600130781052495344379234205057915247215415231537757870152248336942703701549960324049539767347112097145124098757437947032541342000928465265380029135771570871744431288469942037005874553922808328438872745254747774729875534210247396529305232661183705557089808456603027156351196806161856740596027310259835959055342908757287465668354666477678719814518774007402803660577761147277136194472484137983326605223800776941139870373259836547234508840981542604016536895396012720003328946215736887597263962043449241121166678929948816100736969318614628587521638580296476096946264389412850946172862125053996042620873395603382081079763745640184225005979741858403338117653774067411015153165531342230961527116909059160454223642673240537023583865713204649964522598315433925880465484615444984641766700190615743365071536193592724818159783791722629176119803559336579250682792168882167914798471763074618070029325878534505826278727077241312647603238765793235408975479171681298336312563506937146693701974597921257718386354256682223070208202445503154511025564364746070026793560246432335371789843457749318210326109711637793477501895776760990903006832039496916174099224988661442200439499696435570395430171380451070702952016685471319886750166130788718926978362380815634211246927857153567897913614746159242153127648702167923063166792593107407887603343640358415642187559031318150321214872238802895087247018513063293911792657448042694961818572011102962048929041841578445446625132589771970066812800425174761100771716960487839785899966652282177381191509599713060355050549969426799381080404894121733110247897923103661245750569395793400815629012942762263945133265846652438314753886492429980355189947590179654226199999020031802385142694808548083167867140670520071774875097609761329129569735666137410465168208539248552423048649529063500350301322292318228691041627664775887794400811848298596005904308494681345179239903409726864003743706098162378591095039313192313998868567596843277895085425546971022623227884200076504153395921548148860773185160862405829461969937304624584188543148994396977691788127234069097382583954602576603532899553227348292164254643383846642902717583145679311577480613665709940312605221541083490197318703527973596313148068020208360153571474873581928336345627529989259401737725217249203686604253688309114864337229760541979243251414748733606390782119516322304811669953548296765078408875789672792399813236798886657584552267174451971466847514576730970928812721747393075125901774404485551511993808999101517027235102413048111156642215512870530701996627912108825140437109974156601760828896083767018579461817627611057358922951283985830729992966722900223559787442298135516959087463231278183516826169782332889313642744187272128935023091635760245744222967156525187553003169693662153646825207482512970176800083437278219952651298753870444928589647698399857904644246312618969989033376829132055693752744267047166489245403899374871110589174808029055375772693455349519710997759407818291409648902553098655246032267880423260111990165100994859931069270521383052339670327658368412028205816572933233309036193857519712182682461915338653562713693923986541036427467464343638192788132141644539980194514595981334619849995061180160423933530077622290712405210184319232655377570503709520501548593623854393549086454970019163852179060034646572577607489785400205013598402124617814164762377700194092684027147674928765601639376209819341490952455304349504517511917567964534605965480623078692848035404742371530295725686005733923130014644784638666565273500686211889753046171807101740519570884563051483086514789729598950460971624388764167869123653636980797069170416026174890208159754811148745749318120445005071432471222777354631058677612776616242579365857470664243004389097215862078110795857605686861031891368442422805487260941125308918283956393503428554094483733419695984801322444682915744021434463544943057070428634333590603597794223700824552057892144652821201205090506662101374116864953945878324598907529627430888003466294054997489550686514558151163508296628691593711580453784629217728002860923977443263835227111696493796216400731257058030843163211904986838817243438289026792846430254482230261560401446564651812292647528337662524977280865313920593600861064433755847816394091974817660846646651123635412871065577288853425972543227828830905249170280460943501976847451845650392266246561709925351039602776203275948220015396538340216121180270847082514990450162664472240398100140365011374234390437960982376390011506670004945336300155241112016931652600943331263184394712104306087650051055350481867533221334304822311965540429633695719190755890144274422333522576035281984744896584964934605591078962978107661021304429678208936562023984595059865819371249003532706459420520331700156497642664621143888958599929387818626560979149391883444702482423288396669180224990940604763238407360586178533878024628371795012269423324466538269347465622145024084192457709749458551583995413204065123945205441139596486702662824931613871252981717425017692446474122428652256196315734299514307158427070753813920933550729461900612125167875761257586641213884596795363300234722757117943294497745621511044255074009958572599678677987471663369164422265111463290296961881029822228530499203564229092996497709938195491976725968145261476812551371576918699163291302519573297957924120363976516595360601915853458053782301654737053878900158626028134986063603524239692153400109389500293942589355737955030303994105609810464911734282401449488970337451240835943611377217095082833678401106701249301715859905044892635585910248292390969665144402687664039648285257568151256746709003184790000818459403822341262084579856063490364520507923050145708696925138181651421076104627411837761986995643521258681444705160447503996874144420539689525527571804595112280505542153793316169784365228291314102898961155178679810077017777572445945817398860203389416497945632874710236994899174410783401443970890879339638354469600896381722181600246487555745873415696288310959910830178193480065807493067069861145295585125163670195448169860526759633575161160696686107210744743370230934773691259531982867675407532735170149052635867650639172736034117008689612789485363986587946821315282678585138593161150527016686718219227949058192151306863134222474284738040301553633432139049554382926955353125106242219620901684055634171490961823398467380437593635943989941480921341533032419902291574637897642003622298526720803206697672180157854276145822698182888115264779125388900248592826853609444694791650699242393477340405882807205570726106271516237948163057249613197196795600502503152361818035435993481602803446817149155179241046600337149821059674535055411105811485966313559238509037647449416078186032460767465440372327923437179729953318494663819684461887076926758749762590384442720993763564305100558990110369746977429630581468316018507541358249400141523500711816122055092804933663341701560237159581805036662897963330555025758956410204386566975891156745974515761406923635076047499545744543270247372719767058351275363217172122181716247287364785436655361400564004582967667175509933324343376430670569422012256984105984933975511976944564118972063755854903175230321354829517750991655975442569431901730930436270730611661307327873171270551082536861019116538728403004674221185294630041118615834814315509782123112565866061363205768288870747389770928518997199848576805059726025776716677618419119881402350357955227101282505789087028315107376848268777951957115494049092392269454128420665727856893335809514374521276596119086843087007870805955165402323370874265117942321462247688572260993460533665422072088284182035877408049300689690715352965143103223256101777201322019093445883723317260251293869911742290785827009719813352092642251980044807729134457993927083233769870223880480663894987660525147839636174497685856701418221353683686190595449543992057438347738809011976425061676563583824734383113062884256410661048952802659947749554950780193424030007686059542709836543467944479641678888202547693060558952213614575585049329465615191434235859423466797002741544332736225727210977849337289537086129987377491715117539587001237030537346051909628065546593155377720367894741226280666765685992066706481640257564026555703972834475587231988551613327378423786452766443682493200287821065198083701930966284753700597662529688840915063974223657630874056294152029753784705019120268116261665203541566668510604308609946049699383654164498703953919082376517704587201254897012188695629523646415037210510007912861851780829144468692780636033840209187932675949554075218202437239100233780741662370707362512550343595719504049933814284489535035645383724363600272680459450789554715628680990057404576329148521872432282186384881533902148855224722352075856114377235641456470888880714157350089565661118596338328630728717957929837346044870241452171754407572879440989273333462215146576727260332205073920110327874608244530818378180523461114238046251124905565763257102710415449625588844135602767841079367981360298556538120623971785483313959175408575167081848814111444573261333083463395849372732965616603332063431057280479427733577643688690504814203442255454033681169271478892651194928968006027871612380708385915070154463862770104633354017116202192434110392166664316020430653576902944657867033684528527858160298411243424782306270090666054277455273127041794574665429523087540824610578230615817323029296897784334527838235335626905243880182268217896789859508155584629919900537809126106216949432812685768175218269519383359979635067576815750827968636207553866830280605346771996620850348915248638572553053810072017641884770035315462762403904275142176916249189207280172273172297188554152912583262513283021797338832154784924954479650488829492279132585205376523395905605061986837534451978334244318891653982203117042638645310432225298551624954244223870051299398702260472273951901438600495165428920988195727636266464939920314030953445570095563495780418309443730690209065491312755169280531994400569188642301667066410298872236430911060520789220487103201952168234990231663204705869637968001353141329616022449828976998104494314998853736177241061690560574122426532067080155516249585541813986495315670235655715750186203801311167856185332541767256419421155768294852723840444686585356547945387503129972780806069709114823313582897985145580437289076099801083955559603831818062911816411223518171221686658662414100269499545631152946297395131393695770406730666820061836569331130433413782181573232165422334555678424350434233068802601790685029948909959497375560580591699181094102994513730977317432442423734555414165720763245335390530274878206815014732314562400627531242274247191171358520351220398051477355925393066094518291251732024513876810403394221056495815791514367787643785612315342582972597156214897581253029623130422385577562866882094959590422618741357397953834599513111005410192618432629754825004518744601766647775951920900899256792555983789148271622550944401860652296146266138935119314483114847994008149512026945509901675490714138036515368900859254666663486618041959388866883762945051096533387709336651235197308234342132778291155534544092460535837659022314242732437348701657623659413354666413198826030165296356782260407576706675733733894889624338575449798015133631712807968800805723371531430386845095229228334111862684821183976679595509078873490346675171144722515409658662342694607343300980092056740699707666269193085588381502430957148776801258456578993521295495980777965857914167087147247240211243795977161191667760265740616560639042914733919159001586335004023837630674392592213930100833924045883831553122230437273954488412174452068616087552777178803537498573869594297423064002217311555751663458032217234620322685983381819084323211742683265225746471405318462267423826605287239597358086646417480094092855907094284486873636506266730048763902724704280479607410450524676929461745117448924780041365549783141316664024388172120996295595047661287574732536378926006395655517411307797668248247443826609930349164368471593558938161864938869204911582917906004082248670685683563888700086399335812686193010565080021664508787635563399437184443060999945813920244266017778294070691059497513216913611547025755944809930469086567799274026657917839700941644502593897225218761481127739550367052733142265248059083544672224506218496389450889222150314057319238961261526575353301871673406880801132597627705215396372087691426697790789461359674045694692848068099676554069423619072656788318928567545398464174689390243558316958163104338286609350483163137817554553425347036125934478700395062063009169387880314835543548806524996044938231898209722528142040898353657084323585884328687750105788898828823597358127887396144416264153856740488950297663853542754732563064578151595108420165923087164033413232390616621593427024116808015980600394943183108315503195366704992256092594769820544193351794838730621105598178349239599921797042094621139773923470206220182107801150535819661722985449165860096049827597781048382740951178295545935250924546413795496083537111134172872326330247384160713003679118139014270652168177479739136082371992111919709970234197015184295372163408867067233107539567074138165356081082211766158337930349166010789810647440625493851043533961916537040156891380028577018566982170259240764616975544982948426903181603789073408018411919992492028174160684073298707494077523599146813825417599482282379789481050732329638729013138143727119108874505434782475992769082515100984143968091912160829210426195453677783224392326777689970373259183316134731584133278461956521705520362845479685135256911057292037441638485965408554927521856816420156369523342943934296944062524378555683190816496449075369886718484233936614275719858965233007868298209106515301646251467221976454278583376708141609794141987353769047466493098458505570570860495541354313041802352908215665422761270967560271855678631061354503103600209263798878551182645969171797641520832036164677814272166653182059998087897818045118692442979933827795113150994643702643125339851826126151855513686617133292266269236696520158299227739902758450855557342642376575843853709537025105538283995501743687536950505256453416113942831586676641290938052415134201673506314797258680306553446646224725639047792648888799238312936555120084709899201344868274683419402197731259067632115520236923568090772942422003701339638341179997392969646870496901238484277993605713587737254459791463198976776335569206196717655352205749783827895099793595639469995801106257739932898148972477012827436398963313506329920651834947383511079279903541034075304202159824585303325436559515187752942710260395826802848784877007514894538487775855561186252073741991882706493243170161333994515688961712484339898566484364185408265899857010189611532112341627346161011191580005556815385548079977768123304117240456724903634571798022272249939812280630210189779029836289825426249320188556017541760048437176101542594305811097813082210365777306037439367840830824956653757877036633806559208434130136947847769970204701002500393483406536645487697305831578274175233602341492195156714289444189620483362121695051621383867918995185525774966133699449410254059025711033257643362342631039882413871976426595197620024411380361662055643967649756453248053899325951367137663934488040539723127595001322424192616218523104893669020612514258653164533495132193409526823489265878839953249241875944349341956164504560760870357278203823939358881268626135726393184359500727137795286952059229082388131956528264161322399392536515355227582467246959436942731883329169064433090408689061307916489232071290963993594661183463090250016745187574165109537671154246173840747203149623568707029531416893061193860305975988941257089892381762591255003783500376562592127272714687530812052631934714030529885147629533974860868758880758514247214672020200141039255683074210824793876091428303321169846150211442534364480392950167439113672107805228566919937689996852048019590090540307953715096158255088839577845086136560028763851660246363982003898177344054875410126202977066818548631128492474259935918237940818687830090346386550712179043228406200060752755645957410149998138873679880683467120173049634805042322478419944984178875411954927084838046164149608903981356705990169299111278495215085879420928099586197393303650679593651286782217524391659224989150492576258229829739099699303987159100939786071139611066349952201977700564939511759937835333501477405771760515662904184466887221276702357486658625469895975727323091558100536985880021323116497826375892800019300038516032188695232431679735757267239505036867254891423054837925798559147660625414847292387680432682821997790076047794333531289573392544115217033164424620414026520152713118518622698362404220409511757795217165212163053748960709797826029599968626895280537274705662383993112176239473160676101669385336991903666944173730269200459395389407797305046651983466154322284968528073663491553718770790397575276717389589667577850170320244714906536565330025627832318287159262757925464272372127324839206686219822582001236165561348845284048141770110751404011071686766099096442589302283831536803166534274342467515943534978205756415504342739140342826019125435708584305145202292124467557154622252060982437272597208713049440003927935858434045960906776710376634829576478392219309763729663025364795829117098269682777621080807307566155529407239067156373127331022209305906971285231349747219468441137505075299835303566315071799848004657702862588247328886995037907707979342924886427181282460146657685798195920680541917024943042825729437077100056971567526473129271260917637968793538839338404690103545041614952704034871693021215405736172274459038547325691443279731268896576535513226532163237473274214505248893911386435812019189051906837945418693708831953947868196335743262011906626763740077304657281675226122751404609763597894119939479560095795102586249093389398911231097499250816911359534817014339709775386345532065291255892864866680011659776982325659827429900542410591648657442896979180257990107197944663579779722282977452547430020543337854115525261667587224599258113067647269712939293783277719229943040306006097241760538807228198299488042012620708999556610520398443469573481240000120267134362449367365566622328511275292935799477053840020161846268850006290867635594270067384757521086778280369590208184303019796416145814369894638281432464348529237708147566206436873639787205467282953264967531505850123216706375789938735294629209252320343827321600997545112772242810478932951387926760230589332776402465396630174450044011658833493663014168023476854231434200097988871742279166181740188960619968264052555100809660790900456888191351320642679449315093301404813791975351668586936572367419482132430750507909236309210733209011397869918522149176635545244613276101136589158438374361242035018398096991272534980625285579713220320344591827978814475197211369061093789794491665250103748910701880247715735186226869903131633949850680822022691022330539109065555904593690931644656773608401827064076111179060238126305560624327483574117681817770105170998255719566404441623696966285291087205300821364684328056507169383556586144757539875838954503928234029126228366406583919790385142691153017279809047614677896822263960145623956193470658509731818918607412441909683809254758451891513592588272676143399528296055948671924633129581662054998404390204329354019604712405747323037223299970000970877781380809245648268949380694891449218065143429459525568065161922312597314190245161427591146010647579829719353341683005744543950662210091389630061091527603698691442026264138310794737559013783608286018304290539338467004547135559805647416108126623317621728159627815978652284751397641321304206551989795379025108132595708509317522519425205138228400322232437459421427200287015155824418465033609965897127361919495462265162429354662262752455977004688989657500595929490016834738086845917117964806659542495097894628319017908765203649342342879272034176497360505143118560226611120851827001242387439735270907461922513227531352416476868158216062203402640675984172014383552960621766058366882465216819805228484925246655277746461065000498210565060555904807284451799204640496269471921833717370445248380792796347796417303303579366466052497370742665102721698743619978266762216879190983003019488005366357209425674575895072114397840749037769666388151185187134358682691598394289687224152303067475209661088013666036272133955773924147866768714887474425052426288832729229247113807873219234104217390170211453696513189455806087339543183903221625863511384492646114438938404512239060285671136261149428317266513363977361908291976648755896174030272354765719283644177453350055922495738562273298327730981200004489341928537966080118975204009725898394358450820733941526133459692862564754164481660737451177247796900419847663164113560746954121683499014899859436697404436363354408928871491835463422455263219620747275759275046654391183934370072554410650723079095584110245849127718240747199785022045198104753584814908820150061018445377934025275863657854804885518358945038613905700118676979976257748943083916806028806018419339504252435262580570810806878627578493175633524613290954587754109151738670423871753476168214143551124696698950272154368045512282965534985280390774145043576276957542895240920518444245696510434388087099858945088726780569256154668983620522621554102202075043987222514759808402140319239577749959503691348105719373871463599041950578344035124400455977507941004411103471287250113561088150932633605836490280838400486949700789283182369372690483770302934734748138284431085699677194337445466459951277075758739847336805027912050663121942269572874431774983812218738552714395133845836739709416320876176985339494853447256534110998098310701595631722871019500257683465163130411813193597287038545027962218864466362924339976814333892474699407506051171183090197333755318167936358757423157712789181177509681249109354664120558827206694146980484763038859571425576792963298669581096268409873320168360765153913720354403102295072942294202273695016841177642748321449442887724964803064069497040167316199051321059399020577035521532709069769666975841980099486010034279438368687300188102169013182911551065504238397968809671993062176603138156416414798554896176943410842121309177526017963968983665143740952286852355452632032038262295713076953762394403217900444903374702891006770752824395230623280662108906202552764522717078169162178016359223855359122395216232091445247080411876524859988590653809426266274675281037316686752065769971437178323478257480448220159758772419096920387633406875163534377075252867973152874460565008983445672525521251203732562378722644933949158464428099250672792442651691173668830159050783304954880617556546903788986804862965279961325726920350176687460991234497002566925834711330722204324719021956424742201048040223641703190963206818964940699338600487519965665306615537420620198521460682763021398199350916680998488136415382572421645595597615030640776201351704340779556559684960803333442491581526656499166487081853501309870531953489016453711838241512308753764232939871243016026594654104593870786677476642777740378129448331445269444088492025722823175003654881670884348669734740303805679878643343501444194857193617614349646371403696126460749346369307601710510520530893908952576694832440956599761195205915565485614272325860200744890913532420840334788672815314756348144252839225263024997494715876403942668349257261759560950421107685946055234639235108094897900554230879629036860041995406562751783428650588041896298426047311429255306477625435815592956328953026990402957060767209671789998113696167227114683019060860203513550980224234942680637178771043709138111449816390538581128293237193573263754603162332952235639429241247516149407120306994382291542321161453873727912268369379443221842904032166708508775439120873228586935031133414474678206686220770720746296310215063745461806902536869390027417376406689384767515693718126074666539703217884826186200343425610831776690007928189058721656038577972100175784801946373079070585890927633839734772984882438591206406169022654251659578022206291390200513986300475465466450285879680612172822641238149863869737294967210060396850858333366846543507965162000413439782626920422734254071306422422113894226376991975558050476505036943233822768720644475742902627382302878820756086210583974335311415241264830754911590945100139173724884679016853822118364797318579318504503606376045544860457696160442072187154663157827870931618859332738893462588431785922620740408120363994945158423160858170823670697421020727086348430255341149767147339829997730313737255410549513175419380160062461400510747355055243958698311086308286189218956637793287385465155278931003763465734602228501808219248456671105554155394263140812474979391739241681489564843048081026854812503017677120474953648239305739124571221593548998593708732408928080539271373195460808516432180834358395309339342613927147374361268966533007219579552271587015717079689365778978990752101783553304085706111707028055446261171795949653611062423178492686606276691948563181748195093027662841336762959655468723008300193688794180034864369983822119927791426768528277744267885984179454026141508972888120697275451541034510102780807633266026720246718598127409464040477088967332808447011992182607720136052927429265498921213794165670919406285716158858408433872516576788633873741235615583827134702115229815269364788824997365368466366741838095160791215420961770257413635773728950731000115386052020918272079369357281255196024796937412942654583996368606215187464919558295107937892412598772199962334674168330531421201011323199784099645276419609189518906872956489700942108506779651871141452991227377998382167316757034326380510930632142057815524676075953022010718785892018724120369682432542945722153005085567341841381962718178355728042246186884006472875286847334439623003075218526729757122489508085263791434935436602772423657485791511095398142778782995513928312955495672869321243960748002190204041585477171527861062857711374991501468551292043910480251135870472475783243049036112189722147975854129915989774217196981358863213458870103505931704220210128731140798456712483951147516607504355362174466725796393993932376235127897007431100498678631366752198377986517338948384542728426122290648304097986523844053048201544751547561669729920123235414275330259913684365181697757875748511325810033080144970450149444584605380990210585015135878354434532935808574283800101429255813217595766729827391820799658034997223757598333475845525692530384065156093710947277470792372834332607861647944432385851209105287458579176393661995665061256294522374784406173851368334951027688709223244336101499046578142708494449651441408465460749998963578009292428426326228230072496410936298863566508684780711619005650988316635241796209454936109597245895827916059820095442347304179654605513530957156527763783562074233379949913194672118901354724817526994030001330425191879254956523719552744629424923446445802569229806481499367488662518993823404859010596461967625129999723656906569234167788721892044280731321929945584356656121264544187738469721158262715534024059032640713610622389902564911858448258738279965633796605525596997923456029412557299353094153108474589974145440149954349345784075980332604995989150916084990098480533032819294064168392222225990802450869948185906279326145827882546894758184426196619643145708992538836024215282817566749646333013198060185555233834292548294389781209275401704895343937178499497808890845495726110494172807645776485559534341911373713750396451545624283589341780067505955977609982691634529646902634530731195346018485730410945226522718856371235980082248825695193996090364228412210650994166391763332694812855453928073460258990881599641120523865747304102518619400965121203958865224170504717479484264345662690558299582895515375052059967647807802453920822805681328519060126076770667717398169083350342357035227134228845547514329523601438481739336610196146811149647820738107539885440651405468097815228725687355829462024359626195364055892124650181574006292819564951340260943120481092258507005449951625645734619804203320470329750022593489792614696459038809570091482836958160921379470485133917807725757329820288604342539808909981103529356657334657361046314565289264385912444339165171258883650581273260148398994518411803264254092107068413234161631558166137078418734018773474006894365874263082594820968324673999157139784224101680615807860490268574600321938824251891701200706326276642855092702078762278522730811729096523054095883078001434860994763321582515276920157377679668701427068676781052353986609381433256316027894494997089901759234980863893712021627050008350863698887495933594548802380090838064206243634576241214411421029232258288021253735985824869895015701111292180158863701158351276020653238096229586922668136148988479977677786796591410517428519441176773712395760195040579452885529006843347375122190887081056308872165601274538899592093970105645523610749996307745779535016625096875170624379168462835399361120879031503628088147960348543305449690553640666852037872079140066564242164084832317721088241811618343860625034501082163835608217178898229040415142526851431039611718805708212163772891673763877975371865188119826912336956768307635704198902783892182354924068440586143190860738062490911216746094656709989250162267688297407360690227071807895101858203970571509598885566703828289161949366972911516967135588894006230396701478435111643529409881059233040687667204978194340141746203091823600232372450641019995837786231189886205473734862669147640553535033721571287675020108203502672560781312071581974829101775264552096239755999442198395220047792577634000744098645591991184356102155070792667676761138954163070091842968714947740317255326649794460968433259074262179141626412656244340739235420627685363689996885288517758951777752337814621760724438874265089522926039358925629978462407929219195153856016076786796954150697434282225416355407600160727430001212539643656674137531814116239372216505038623286650106021387228762541727836181908384902759769445400238922790910819952137019416987551570622236090292140579004994668124762721034029540871545560644107770837064186572868477151882365002763883773905548094014117744450467550115362797357806805363532005106542831439397558768167268281961271229460248638093250581794111505477756749759346800927182377042569047216617035685124350034261870567326689309249693401005162288860280999422422905818640694620964289301444053853030250070340079868704054069861197129542038531729182419234908460145469785101188286048975845119460683178468219743741353316897040922551330029846419115242030869844353551864335724462247993173153329790231449176827499558661112640197089979147956291878584893697184152168398965405437315867165294031045401224250595658541899975082855926710225956865738001617443462595523815244178827019814667909622799889261768519335247942779447790647510022563440971913193592036856220746843021311087538093264998463693529828579888064376545236926700370722476851307385356673955797120906618786021772428086590932254541938125758492799943587354066123414005651547121260962007831063091558934345102663531286082784846298956302794703025882649971144668371115143105935877145225468207297283310366270609297849078339604629859382575667475384569967887521960328846689044309148216661245284143585869254871446009315576364821653094149687259527745069011740496770881784386093083222558002922399680115492847459701812696600813203095437410970161979725417205214796650464709360721141551700845753012930103437157563138078246564429593144718209893838954217807638553967707197687469291208638269093552205916021013913958293322116268902068582144614664966459136028088660103259623377052015554267183925933948444702753972260499688220315959170533988694278368131541668199219262584273180937906363102207307066420371551757999218440385263179256132116786595279763990812726314699114025235401411314394165410133395598572762794746646987483820540232771035824077526288355678943354389865937560325938070200807060475770573088402559057537773564104052334549801292604246763595339977311788546529405081953747965329209758746898797707158138264287996534872045381966762602078314385494182424462090510368669024854750976963754218032876960181892428012506140351827072709859059121923952043571271550078054902908076259844537160578757058232570919886864227266842524892984333689252478758378381572336679208173546068416065707888429554333056427862867825815945350980835355125093753684054552980181715274200382313113752817139238181831402407202858507996139455044490645863196635707172379834864947929772862870318594532460671154213389201561787790201656157980429194844000142253392299308278569544149560972053983441239449873409208064636164325395621773204397050638261511728592827957771862719913867791734487369804831120659992000765612825959585799357090926974779054131051371712547309650524343019324966769143108564667755901239863107979763220034674679930919721520282470764570724632673151207188761060403871457007325076767341134779326663499279322491304945307288553786339580475298946218298914878992830181429774108347845888859585306955551362134600331158192214554693809549877304415817770314288975604126106842512882878799045329325917905625900937160765166630123981378220616477181298185911621904309894743862924661933082084590715205610567451932236683504267969656647486671522417583436424470688959007445084320036872797728918422153436442114440972381816357723335763017253856106815399872181260379538374202546311413221443483450081898688850396628051634237539142227988150519963761965249495617795082194982080237730532064450084934812343574380971743229114847555419608766456875910625824501090995833100533942889325349180438143404022372417558033283685694091428330989390467438428882453259140789767848186347947828309867871469744096778994129444323870356228925917203919047978880303586987011853569876018077553021212113166558829101331946514365879277415078439424388575731146071555832778263942305700260868183292077757361032650691207379378297147539958160443842054310907974312341599893066003152627900293359950684767186588414991414100161066986579387976336053726967247162389014386651744163572300248411675731464177918103519431833237627972526256848617772527302971609517775371043722309224800695173974557836127925325628149764539855910009204474947454102637496473561510371790853090038257551434654961653068055308189474273618442544264366903183155621723384550983419273850873250429826822519697661689512259468381472363133695555753042622259923726098869913018062401459678756599895590865083209325137640232586306894412508121496096907967240277718780604757481861757777393015555461628776657946782685594226026768050150363438222765941678558011789470408050711703644549577469832671033096524916628415064168917027127051324487895635989748322080759155262379502411628700844810549573074165021701402588003021219193728836333686644864969073534011006193985486741578470927851554951733698118157748809521278863466655662330931867291045228373150456191328401780088656879891744117850179367826746178571534009927590177934144633130494502076357759424763517801024197680016381128305479733032642989437893713220468793139622155516701305826564880631846042381309214284847770634425900502723718954634189631898748693113453639691497476181459274326647280090754833952482482661467627559836247347607679016278794654993219356699733983469690921988268948176765223745107417350039797808657827640071390017182088141324509895542771378984142033502469048186341583705047913898805657949800441367856603864413501119601107702702654548907500065759638417536507290582696601609273673075757742898431242652930884805383200120632206656127538170077611612577799634966491440785871693862120755895239140478181288191310131661632961260927389484530537714460829318993367326818590933231178915346573497386506174366984731242860779391700410736841176624274017198577593084850930793213647213911596253795491194308527791465026582118878833183620024516073441531154153575144074825989499109719666839742676693283875952157176844785805506054575360704609304012207050861666524402760246095484563114529488051079934422942950775464745659908744693071811557682836995573926038268433701247164294694766783286668970781120807304274647208568202287232699291752749837905246136433206173920576227715613485011789162545843210191546254675511210061921950808277302444407050854387480368432027975256138973140915521395152282532335383619827953226455729162391027418217104085692009069915616768821972741212649598624161393431186625326214051843755505338961430181927270756990980514639948347829708936272814502947967160594751535912043090290881698706197779384591057397163264591847363379649987402298811907138470762202526695435208720917732357239939588891469334788730437024236720709590177719416461294629415850081933005361421373032927856922033534846142646736885192508348168936501134200842074587374411530989435154190262664446117666152334068316491533342275913918297607602377404177720887314238175529524123364751344302352058385290889920294830708678420452141600379315906352571264194875682644239108993922043638514228711704950731688043700224902419505213705956183591704779986406773079652542861063556182966213857813705988802448815409598081028393145053534804452137268631454195189271127403229360407183071600412014525215921868911290520657703184812263467902643762514886179005722717236873485887587637245535017683202864720777279640600868604008682882079740247327589079806702987593777463834249200881675408338941327583673229944640073064240294696483438770462103514744550230381159483773945435473440106638548643265183456919571351411799965327860317522603520700582471899185091941989247195526183102898647993582157299857136718117662784448347576917484957820514285710983350666207815312281615760456715553580104868473824867597993734357169528722367293329259847602947933474155360827182749793165590808870251710178263949996535621990613383631755084562659357025115049011573021745149609717995715661201375773484312379449580952446643576570128897100419576694079539990546242341131778377909751178753145650821515054903952748756190495553448872941090959493972870437775654473222617649898613940674260082997972822972345174800828601111171227293960720523134065213282109249486811335166429495576665589789700589416603053093689061296990624941689554862600687097164463443236837797788301950322725414280560291236594771956908670550103548846927930390792919597280991087591563915081399587060129116254076860692945877844282190747097763717174186214007948715140581006412865464069684987989141742237117860702797501136398285834225231258693373594247388739024255369284844543074164939728701296717323775651105872406468317663202304227213480913757616835640049475147993686497178109415443066497497138027202729574235494487343645440680602391967887605669190457764384327000861654816737948265611182299485660693868415221240723740576627641702184334152382227680805240205751307273768024767709682183937030260338039123290149443260396702566005428746659408309849413042901574320424846760271788019152491858802275671515103987994501510305841817039194976848386004011319262050040938984212698323370174826409215627205577722926332909702266637319939306690069272278686901212416269833865509687713365952294315989353766031589241759888299452224158724730871586802875182938965443454104739312416119981556227646060471075947645889181501194815942794555540900777443473055440018939618352321620907249769818249921102116310475956322050159691201690536037389720595673853229351748052953152531906775912234279781797204532200150791790417947851793585647752590396404530705525831453385559115143053252931318573198935580028751926622743366693427900757418118509837173749639896868553057048020877632434025971155925219251147854592392229712622891394925973288401381289483399388252790123557441772696287901494059092774637494111506689873532308498609132459237109368452382325279714412061513005368116524466559295339615299912049908002842642477441453685463281699117145374895009722443297026895008891177717283792627284477183870725819725656372719341091317264031571277671845127849847535254568363856161096571832338613898527624261929751040011460081987198252880460900983649365139412231388503822312354550742714427847507967996142986854531641177155621276355313123724228966080353862019451133156704336478025876059231716786609848726465517185124647118521962188359868511770825989472786968676591180193122120867550811645250180630125568795824503309269483427226781729495970989838998296775071726740042019910498687784813532727500578479183468706861279845050820774582841509180755192006770995706486005835570355443412695705002017569134988375339388247048298078797248316064718366754898852210483898705153400370153298794116342885522855067052265983357443820413048264817353528829077821553608181096870602110252251845930881565865173327914325808276449169261321218098861531435974346465805256221836136250141752801663760550613654437413836680088107142825830806246370672042355199457817260322855289149077809971849610351229512888081358128707977681180335680079989387673795700943294294297370258551023309255716123681912951023705624885639215709298727056427343583913020989849198399967797279863783872066233213573668767888133047220384939921707771430528631361186014152169809134013613496798521914770187979946149778956093116365600194893024510899192811488424706571736111201675852313767484966748119578661152287569921197745220986664072777446412672441271338845929965614941621873345670748166740625869594893346067990852254176576417848278563588471378311419988039782646115030608543193949504718584124088223264323525280960515277736478286710741939964612408498384764689115514035769131804456168882379730508608180224674707688277658145122678562997654155384882708307347959349649449284910727610578503964838377219087546241747499312576159341799484262767964656730680047984503327724376292619905534511451281930847497555673863379412119318672103582189139371638075622505354732609472920129367159753102310899459384748941085785481018410404835384122197718063639483846676458798289518970093184624918007324832450334701298226280483067992229114907290635005534731756420478154629469750341306456179563647181564216429754548452639222712244106426099457603693794201049301871374003446438804133984413526101262452124654074500205831153291168033589287485970217131126060517280482875334381870234673885926993913661888154430228278376699526761548575760118138354504282862348215946617766750373447403344785369197922110304644326822977730409431749305231981378305399048484849538279879477714931629582578768053823152796330811913399574446887362388152818611605721452687094554976315549054422310207017225700409454718688542169417264505086780617071039661877309438740922891399904365882991128753022339792968588377619166579230157501533043323753841135889523356135104280557214910723911285065048942902288140606685299835577960762939564673203072661584120772614619090762202256320223528935031421066548161128384963108857214104183792755113958448248223349989511152751138212005016404140526954454870748649555815425269256551486585342018813115228018248712084331996305895254117416516730043950995806533052418493697168361786711471964290860302253858313095734701704295307917397660565625717546719744759937540136087090941766468866861841032566023080299695178696581928867243093381348183707242634755352190836965170516250842489679051169994830705181224422217674603007387912818132662896307397870922286409268030957179501529143369244050064664080250087781304134947904458786910065703289715842551547415895392565431930477680252268809984444608021493283100661245670775875101272966713767699120245220405178805302121018883989291210491425904884665766166106352258337693826573760257025980069726832350994458527050861724125855726774665040231247075042876794911513008213897524666772571084500023809953405314386222710118172363136873456696485851827318980162358018682331581368484355350464823496693509012305056792028446136257795210204332619677199620728253306061032624689053180801043495551551850650769476051760996100978206067895005956316771154589117168564365143782407485845105664382615101598709484945323415509238114908488476225849128247001060843658434235698249633277540655661287838252804483719232858422642408522200051544801855893865820933065752478154107020517807373636693414493383661411572407240982175542925988512886479578337493803186404398681307968387352465414160311641226431292911707576814194901364711248440510121017077590067444660995887164468936465783530929630941910719392322700609974807675469331623410683719879485001171070335979400386785003584226772388513437882706760085734207914725421311801260179140066169694933779155172782001194255447050547390443122573417174434377253421322662177932436825650967553459960632373394556236980875831259817455711322969341872677666759727008059502804406665073462221093201232946615576067169646218565383195524197638921289883282925576287668867013077547975039424636552502054719932549683027708531283174223771318140944321266425780674236219683586888068729009311504629880128949651624884189959095058587719638368355021899509642198429182957346073341509531149581293642643826345111330760571347016661467250678427363857763939419807487221640182580878579553332614143639471309058254834950574462325689719394542681379118956096442363538645786272901041180511056430152638644301776350473217017152853402334816633214873211874580740598581886769395835952198142586859887588493356334734936912811047001550103780290012968746819161071973281358890256162861891473375668938907393416852954234905460625979589373367800799339902072019429939806554248521520328433703349316078343400222806363561655810940017935982285949865041651439841297789141620876244821525912908599570458502145449460162526288295005448616129257165046637862462330161605866372831526429184191012757996090209070314083689282374657356435820172440999804901338710126070531094302050809003114774724149101381680043309718029185341156102915084453073517080695182258831631868168597640215703484204826146917277761128424491518125766806371197025770849574620560120518491927155290551458045889134367528065826675916123793727295993753584494423883187696747851107155799835010288215056988242720181129816527533956268101445247087752667547122697128906462461596883989161421409257179597518030018292355622971242085881970897569636856234346823630214710263438282858171794107899254122731328862448000387855531344839651098998237058883514705654387851283161052560722271320479107312543178223058267258145412669826513199636482418937119691351177530555317583020909689472887680634530530066465459602898312874057027101505307839306353842360775445712438098288038740811785934184836122043973729565336605112357659863722950232068947724460798813442536554403651595210140748923758002048715422997231370428484020675756938346111373172182739754810667305279306082701492189404177648993023140801615692899140620807300017172586633503346023804175379494014130655818715467554286390605424910393326492049271450573637121315247180167706615291337714375467246326537679947493798234893395432773433400317978340906735504961172500067558663665944983527608650997933180327417572515264448626140996422864156331720740604538138566964313632865620337052781506425250608051204671507753600542601703881582247946281375694319172598920630911006826415169227296614969109798592932310311930629837471468300601089433299662242582383474257602131718713597298097073173789768077956929894716772033331749071531604205353864457513720276507848002394929864039606122075515581515687117448559895189237141780296540946637775804590816110521926098029976693972552340824080693783803258284919902033695195562834552885889693165809026462134456849912800367168166041393991879430043304400862507378592642718356718721771422341945625741513023498000954014795120758879353777163503002868560423234062439220335521393830477633607744858077619229712120024513868324039502955784556851684726586579128840413381385816944274678862761156844182102259424109023130824460812785453986930665618079979315194361222452554129993633481778552042356687117348960024762452019434872428300656199214897217086146315255924811659128830353405490025069155657073715355412246860720530808667182731546711926573069884508466719818650470357045431637223887182331191832256551614181212423912052869196832193490524576348116034739907906674086894142448898146456020625117309259721277430453082092756268317236370412056066307196189419847988813646479969327145989481401267110805937412048398265851729779375177641723286215886091644298022722589961229713716273865043889003806602698112375510493617326778499770471026094559174632553848047110924680389957079446306639084018930570920063707600038118768021826002939166815185118648177926124594586902723677407290913526971397361491861927199620727739495515149352884974642782879160549249944410812137422008165189323984055301482208238728984720099483016192495925942300455913252385038917308923790064642734934772084141365860868329271035503973961474017045870139805730033792795023136122570531809958029715950541828746023347825179428277285329236114605457248099192758245728596196059975757482666999125469469197487074869336156129555726971072610281195160527709602514792635038800767993807761384666055264055801865128507461503598273556450815236523401215921435613369050431879384764437645224758652005010120478626083698409372797534754515708827749457733941282896962245367948973679238630963586555003466489716423390513913489088849063920250422538086045561029211388302125962297662625905958558143146644123086603193195508898287604747169234409385344905822329406134100905592160031281697251388605779117554168005953125363715785769723349272660521067565545091046169205900442795018901980871092032796182287710093740248960530855460430275472305744936195261600368126402276354988727927489832529180176372687475318474574587732553565120440697551641665210996082325747910856875287303650191457476202366904815598873246625454406786035484778132336557170437442793723511360905598264957347200631963313156814368815178497491598737761251018277131722753042304614041860250063080026787910381352094952241686335776450396513135926537347630298433219403460534149463043616891802324909243053682551970253568303288237505057719266522861267406010008412046075032909740004273820266146033031192960685978732631666991365557579880910849342303399191756303880821392446712099285044602227868393647440568168778835989721271182053798955902946185127727580428561211788847095727042700046963267330422651035072791174185703341155153822356230478664552398063549981246103403008982322819889241947331004882403569349959039640765473394809585096023960634156372370010115577094531199823359117192571410748486887756963811174035912297779767401391502045359123822049615697711982103825353327291497795283917568471571926000532226309552722074591176036421483024522009281375628791181516006935570852869349696335323843365009370631465614504650697508633699857807116940389253995942476916435093042799727885639966159612225417325681553203017782374856528112481447643734654178998936453926693041622058460282638542920460241963484417068540372806919936657541590591222877037241904276414658382596085410933955607944179576191133985453433879395541570279682373204275445943839531325842536196927163346848784408705651773071723329885951416909954477046162553116652223232769660746253783036887607763862025548958295333591348614994563648774204401457349814512599868564821585463756735896612491479752144373124976049052876835094664478080798586843921515794776547882635622007635675611629640516001830082086497589444749775645744123628514028631108445731247433649965541034442006251980954385355888387076837439558946526611469027699998194986655608219490434358977731459417684199016032787375025092118111706979118012641992804530527673540527263253654984885335080436221008383901980790760514925637293466970721674901332448514950342381856899435082131105079341398674286215039607327558084011316831329144529186591170885967547521438829568249325843897667791190435812380871034498945713048020681040217947547967771183207962341324465242793214484464870449641001384782629947325669097475959130899504614793149784772598299180541984062033352882156660161790917842306243092017413841045913723924148597728665904223080291356528131855531947960955652249050550974946620134248707987735727373219636393829843157144532626315965456835355994064180533749882267960368837543148079514790877243146435131199217931844318688195000795669546860314101572296347301000901083688013123965506407621442974887251554918363792210930170195122095813716194125700555617945184635975983963518669603303095079615648168287109335866657567539067159554186415577911885028283257550098228058327954786493195082621021388913034009203447056936613047990194785455182790873143202912361841741710177317195220917983487393684261015430005425966552252279475420198540976373247899717785497520114910241469076108698723805239372572769097031224243734296305500251156940330028667207337521825466170739509205914588614894710121233150147164322986699656363225175856920464270873415854474409691970896676332567060704183326289618413586638872299095812020711218483639124782431427514066222967425919483408919740621554619775953034137765615857606740507899502815288669323129338362194331760268897173072766832997810528083157469659772066015590412297315000925790368552199888138893899174113324316220915353171685936715448369947033921904752041341392240944926880693104752679307371560254602094824822963490135473267924927310725407201768944437689578183026096426387741502905602408370842401967000648835736583346301568697059011790564650911441436229371904502364745552201538905367167271472417676920910242172666891436033115631657948712333845827635509595154884035337811556746190205744334686972200289521679558809673480575802549517042439575687179920916010873547295392021684665276140089370327914163583088725610645565552295944058313001945857618496522087994577567713374083101902574343953281742211646986498862620366634009646061600977458814487895831059791623310361948211156442791516907468077024276864336361531235745281650808702079461487425893851232866631286367686928530067169254525433170296565812069010410218086319364772568244512834935375029014139862921877943514961084886956703357837096062373398397537089796070288501113101491194357647733720595244996918887002121542152068336519195376486190074830978035346854607280568307668263413337656037487622245074221255630662280337934873173928562470566859058093433153635580988938305210213021037832674207954842931464214075437271828516461004383401641750395869561680769578626988038853856677706333477848315006568752421544813701851570620361972329528337898277926115709729683009760562549873953933244413959086691230332784915542977037130593275643290059354289955829155368268559591984727809031318530939453748648021011754389971985777580427516546472523844938698097102981822937776903663571967454263637255495729722354580419635674401831666088590904917824470173669399052701814399449727004841090257204653310151798834537762496528097201293493920377044070656861469961889772053505720302877433585430888583866389542238271479893813573210076081847044916201961340908098217888911239361508822495176901624253741042163835952141671732333598815076185439673607870094408170251900265642800044883024110850828741657877749768942343625460515796577589712975612793263690122089921128601508141888177333490462758575508091738991461040024694516855368272741282539642863842026080118490798052297859583568642521339666856106041389661483476831896775609849253677886187316708739458450275781596685881610845804572843605131641592222230439810374734164215579461627879339527709452107510985946780921017818456566916973176392067986704000863384206930015571761268401641803207554166419546747880558862101434357719390509590981478153366880856997231672409824510252654475651358688836556307724591271851079729170041356093781789383968470900374978466340118344443717789861584712794735889841273338454950689262248541351751223419332548238497566466707984375582749581672589378715372008632109647721504070730322457349073863191407454177844341371227664934529169494831656016877603254916234303906040601763755285023995709911709138300693537482141942980957434809284936367421244551470469340217731056303777405544666253689052323297044676297223797580110738724824544436722563300942403970358069178632506867830720482390314956848438263041486162653600808270109109302307986986178306183838821685618714147285919679265309874376640260403914000281185727778803062631378454006163966633665074485996040149012166748193653846879045291459444456577269141339915881999707325945610021624534545825254637725141879030603215745287303549179253583798352092786110275578674598326607377713769817515754550421406539511155541307031043533768768240871377771652969766568412184678564572814413612846103123789960084878479310142504791279051727296402267791616909526872871996382719348079965320569913964991901647245208144853529650376922348332281950362618029885579179582873163850463253089598324714481388769926856735646308502182812170705630871976913142218747598907039504603380765746625525719459032736185678513157854849578200674728233547814393377851694133460576644705891730069079652960261569012778208772097260139668123112262458640633885405948369812950286241079520356687935422582447706317727306054321563126932853744835699027205253341234676169617808863580309794383342977703953280701738846563121679622116045968288257717886552195948458515958628283217772691756272369905917258267569705272810387042908931088446237153856366343489771117534379335841004629228718914746247440584265462431236977312817327327450264022251203838818190349544786828205527480126034444461727011152454255523396644549001336394132871502235031577905513432798256708834675371638643627563055345848692530886075715690394338161155765597595067404995993088998898869597616612609636648289244611888755768962320527312061890628715680448294454817557894255966257726075279981848100189616690314711949545217479424977958950969219854512732618246901501561531201950003967117157336186729678583719655704321995823532595922310937080513722586602012664553470897249968511008136034260833064456371985727847521280863046777929817261745992319962148798633510238386933579346195504029876633346124819700130086624186923890871422703211593743210421915585183718572105260118099131337677327050443411066461151185637439550874331549256548199071713925307484285019440520794145504689389374151029597703879296594442001232104227965151453572923016954951846686793317408202920551628133253203273322223241118190870805935438798297586554035748298799268587410908307639859459031907741375481689878253292099601826626190161412250977971686975022120445688564270502476435342983698620297037339615397895973879929457014268953756811854120716202571476956613264288931610986469643007057168261903062393200349897090230613837181369077984227857347236544170393331344708794344227400710733024496602948317453689123463956780784118892582797504555422632253516597552070288371042339938016153438428438200968066246690235319585792649549055331336930648219832422442300665916988230396219923471060074078072384379928447435975427821090277716874404284154916589139791780738974619457445097317343714063866802635938513095519795835782405404420868547152357382452820608068012261131758337455786511453669177619101456957926220668962183915310098825964846937507471069627623533930314556653958811350027132838660564673265946273998996014390165611763818289042743843856133720891827678679894484538270258834445307900857448975034724756093768450402675880088887211432270080672571249357332924052732620074193953761300238939451696835893050458974738617676783639306011119972041704205818045340409926570148799074897366534552573713482062562283297297162811082456181395760393625814325594942425391679788130231610308719842826443291374167127405065007608690686183817257863508606380770948932345671346672306309666870258718887013696816983262172733294480483028815125898035950620244340312769191331790915574042042956690711029781850580925485002093900027908134736374561516977725185655262444154493723873104152698747281088975843885852563947478997732735876443432218392816338142980246908874699085032822689779288015136657891798689851787917802901191455281742192129516612727176597101656734642835548650017421474368133898076928582268041131129635814182818543570796824265308928865028339517861876775197278191374228813455723971093253963399634130549800262902100853717813369126356679555056867419520106263947146608255260869823340640549433951614837294524320553171090414785435356403002395299847908607307516421161076660845723681674864173453908809908484928580942726188706885520389748424005003945429313077019889461209226937783331021736805361921819226169568322233832716631805909505408155530307066019530888247353582511715593652088323732954110805847283455875183171807351649978242764109384175202760199273645958547234066663048722482292805982287122611759865452053297718076665662527834572550011800208898601422118856712164759599005108732546296692333304926492635075742674727731915680950352752878054933965326055000187052429221259493494464527559792075045753691614232340685458793809702991824034116416752790754404874647379547017748423252488801315760110837883599750914018263748157195251088429371891736755734368273265040637000627626346860762252546060749968129274024330352419085096626395427157823236792255997845532039576131729710782203743131072311930503769294189380692169500646633499475243957935828635795558996884193451573289633721514593041962652765922857329285068700739091508831232481599672674163735893709568567674591701465661099070938018596803543675125007061216432533022625991646980665810849441186248582775126404934028100348149220343435103296171132810572037082462482172078494703242654092870913645885956560827638011028588812873890908388203592014436886509434932237333973287658972298965039177648735528382904700040194342053098895790776985761506843711015882502961714749585572757746917481150311309394235075652512383251132173306135936169732606265795203887891890212315376746873643500215426136094575066450879919753108499313087021388472585473070463164887990187463492777796916331161647240360577634286221499446079983771476614041704119776075284468555428501490174587314985753218195651735493537402346780207231385189242642304966482684872565582088288528257044975554596235704961710055325101703473876612951102257952551779043544091681222367959649253582435217367010593608127735711268781886996712017243283595331992588185391872892938210510572499817278295563985399964479486666617334178213299370132648131506046611751028055408714220503917036111424178389580403037932866513530211075561039536586020572250203930931740078600442621193883924837277532754844108629016117508403987767046949839593666719003142161754642149215513938341224918188818955224315385799885656708714394814113780714330571684314759760478670250811478609776405424553318812228644206106397656462787453336945568630163397186829460454266232993269533539286307464267276920154343666948861295499079362258702394399325332826624706855676299997856724909520616414476308506438855319545349591714029638304730100786099467240186548209088465323656610216674442379887921311998842056686006072389902563628107431893340521826164710239336299025477174736720330745725382966777346794749314328796003389973958423003797280497296889399335379804370922630292261577949482413569327696886854604965359352068556332545281869628718265705767923285289959434291075041717983349778845728898326812856620108443652022942204850979409703121763549632029907845011801884065017588560839155745248340447043351573375068936677188321045286229404625259053482298474862208536805484808192496049528314540028814303939208576089384302918108244310258735970601036448908973616894436189328653496655127352878681124853662106785273812436692247134033834707106235147984696233686017272481108662164676010544461443149820553570235806484217264030913933758133255856477181903203957154572665708292755053285961133669728945028380897515180734332315829114163817719783920416885634894704201648774752642918095347538588814401898476686924579231211696300940477351593860020498117282191847874626504826978945315143010254620661981691026182406345086198644370192594985307227209894124604651674730333861452282977505887010513513897223255686654526562950481250366706521675868083052360988757344041601158384124580270949705597273753223861550527274034705025102387074744393991103162657640154221006187246502204593473269187009055736616874343865867171844948922827527150562901605117031679202549059366053341341449054563414913931195042450033001278982974734927604287088985117508110407370579499462700170965089091461133658517225756705367460506630446351521032177818404657318226212746406461708039088556651555240565616921366639222131577673290682313007700400312438109196318646806516298875426845936463453960938304772314205873545911937089562097399099786466638045083955928875149492686385433609467061740624782087024850363629726161241539600299103280463001126034419158531441911666296428464112638556757155603003043015921834639269183073017402715338645449408988789014829095309054373106273623283371283297012798534610558251982409427562870825425348463991893001478036005762398594126615543253302477846603695971094866127713303212880236784118639292462912153234385391702398156755739194993268361297446407239724494126127677572826861655206090677840973816096713188195278769428146075369060540194822112946892246333880548400938630309321244754551971884510649305729883447253479417571253918768044263950684516349876693826910652715142471218941241895369120596362099431454189385678722587110574779900794300001292194345286767321802033138060354133847689560573558702766554703212209930789000946465000954999222738095599409614317550395352736090864422410937938819031778057552629753993965214773184954533089854200895881309548801877179605413129562833799361938017040182614226587507440232519142347758462258149575053191868283159602043232210869063495158992782708468110699411839546829156563839254046498797988973829803277884384994123050304480803052172044321285281751463742878140927969736949142117850784144470049414414413800254550965201557204030434526569935439189663017467844945016129482952109971737036716949909689593646702586962407091042038028515523706199065007480137153295790478541422271897059309512955224448072583964322655767842294958323537178074836312441555223826743632922679907140272939422644407350245594233627956824137345336493071607974667115323565632790118894750310094631145498715639480818421777948045791870904933595839670261181636230143957526461220133691691489906999338777430804435017901808127916741241217184574053107112017728506825615246446602993295417773970836882111703790067956601044735099935222203521126287969989253672825262317819439926864168024537327131488581620187068170629404027299730615802056868769856189612433674066785520320560772269193151303213231016052918978757373759232475404550490215111618197470709660088972269807752719091240638848508760728367204872473401485214994751310979104889057269660555130263557102792319784314975084346570613123064986383506686055191002114046767418504199031444366503580620862888576659385199422969514809177154757501916698993081279975957365444835605812900403340137543959082338722050632711336428838648352130416492442036685658022315655748903294505919563520447146505583791431795794726375514075563148886070551010729038759002012060284568208905059541006490889897525122949340591299211013763556370122756443460996674925674512057982020749590505078777921502313975151073811474708252679850847911962202205610596712143390852931950126658592050811579978913072715604037302608404271090697218455068766161636403424233401822433948555365391884006591712588504320614285253038589000891982290444577976593359378640185800759264435719312540840438209259349861195283244382204108049649777208441220548608544061558323869100363235978340348408527328889164004592468331031089025374591618953813960574589924424154475198209215747652578912017246920037627968509632296527005368807281227011261091310227527205182447661610734565188951551025982462300613861729954832245156649202191902438679383490252605408569226386704252469360167004755221562888174033233195771208042144617975609039180226121180162591454979627129541973155771700768559592878055259132713223627460794913967492024465812928302444315027830957518715457764717318403312719622423206428622100052133611958363088348714516606288396732041862227553239862994200091490253029591587989934057285994636844026165140604638472936439013361425505894664070109547258002679120913156823271869377133324805621338836416877037750707553065224861666127668741713539472473788117105840563363958348292008215175312099857864793157105877869773708587871790398854871280863891177064651636986962646128817103466849006229684679895747413244875669400802408624473200855027993882689940509902577595018228229657986649929469112572519126656837887405793417967530462247124983164430036568632032169599154073568328674187597912172382307490422565895675292001462958196781403679444974548120860212970293821012928440653656170192017552156487912873980883746717316960770870458285686117862244693030077199456421260377180587266991000647345870848494367740898564558433113167584351133803593131774851250046293707304217481552922008762291166810864289793307212714828271732659136723732242089767598173532327243630111868667185270168059366691079271236110786198214438666012795319174963482603492000628589955112795168354418121379754336044017847363282163233087086377122503654671858614484623068585115753021949579692678789704879536757333113449289365195639499262410878340858279146324950165254576306586927037786568832764265171039594616122070766147537042558700099404265677416008046423303362507406627182398200264437947940250498702381530473440001658987059080238236028701468207577794432525765810886292635082424225156403126841041437415641359789089551480116557238985332005082638875629003095012604751868273205325327334631869368197725730881507433618167572725080003798968352263873412942551031478804949750166080186072000934403028985204616233762995342838780959856179246297509155378960819529407853120192758582460729268340492065790754673670472900711665570650846766859660605225687706713245425842004408985470008952576076687488460260682950078002120905871242550896209017974687690512375298759634341945498366494935316396870298427850999121280961266177138524125945305869605968800056104367964313098175661403398114585379849235191966992884126148973968379617181357371587752580432673288191231894918157047114939805097523668743314994625852181740052915420601816384968583382530028902514683390234989339727443238256578733968752043739668772722769618485669274325561499427480479806803721134369925280697787692275614911410928095412090364034436669254869809876003180268204027813078778594537024467572096672276890854950286264785502466296265949599678865620667178334980607829644608890318144188533285663842680244539059225107341699646873431981301851617375412735907918358126217989822854560883894269617076899851258386451315419595142729068286683985843308441658441476381378090877942741314971153510215664993348195159864243120260246304621990570500865054283020837381556725186239706712912478220023950426059414900242207745950293896094006010411161113809155095655354745452728045419053510639263582255651007352341683892225295368758897005891431055715082677634913938865644864194009927713832456079994171428948616365256807456093276137572788779907861990976478537759944144698873912743925441742947943174204020265896560946054281599707967748484895336550989696252570959571749060940020591504718678739752610550746855663674988686790833116538962732756540171378844915350700778847147458849919517609942886387023843373405927096850304813774911498993417822935396216124264906456450956772163195876972757298706267415584893386157273493961909871737222803711268990063385621359045642217497076819378018915505008644338253148519870180849873741703514385159160056613954003780777096872857075594331841241238195461005825957695547299937959417493423312251307848484940501156082685981675778219356559537591893576760710481984215401325639313951878551106246220140348611445034161741199188606957526141647454618784448166061277862663718161651027532399514155725124456225096295065572925439641661439947190630243587715989905050593533975347663886807517468406475365896450615584444555977919516196367838513534359972095132591029706613174362257053926616290699581796134380555324945990616028608083198913179920698301309937863773463107805050244773951928163658336522775087369455342162809546325054614643161504130536177819001120405759705334808290825825842694817496050622530103511302072935493317289121952335211773577305895617168800104368952674425596116286477349330803770165970397144878541316557867459700001135028769501568039470137789761569561537360134318313358561257524334136719983904005107235764048369401033518652430840874100715874499330630584475772038442529743867031413350275986421806109451437077523224606779269295634516780167838586480899937133034419809669401628641194718307572462438817815020682629663389323651711236705049743911291795066497362319541918941904567934325754188629040483450677005966704243683052846326091463202627456325029707227842026540330443921249107175065160179133995042572722794966273189926463208600337340544268213141975460651318267162190623791536253394225271467609975359892338423854963654014246349127729891593557596331825004270132293953246756003387412008985310387114873376343191195134965180242243805463070286784087489358719097083368994025507717269876521695492974082895483138766620563688363271848061878531058989412190745250328438047481118906708695433775927814813000349219442989083945680003931252785293762272291540780644206414446428605419101531189347530292098412904502309395019241262930113231498811308801004211253271410371444212598457916521950099225923413131800643244834403236498411460415203324750335780205798057070095660063689557217533985266249746481508700023428989323226770054498427127370910804766374937517143233883478731487502304520552415051873623485039621710845628527170121870331727916497820669075262745506164322292857430383305047666922673103439124205449096582557974707872506465202858178226743604122981159106771392208202075949641604806956791383286956820055144917839375298363937823838455759165581223351761654671957176756810907538551837980246662572263292219077215260110133023176519426601355007747485991670564820312706864425861276690883741721282305436881616343493466672145909835859732611496012528236371473903308039712886599146084166902328141940521701806352997254364010146014088498300067894102580686403995418775892134730995694835598544052544354792450267611824232623222500498661393741433694595534321476223090206816506310521467210051164997452174872323289496983368525923997751670980374056249748825935948346783492599816778135371053443177237555997183381022194619100026678986228667249406951530327437861245167853564305355575991383400985824354757335033898750101609731282552338399396691429050320966996859081386282347676835679381548777211775388940350530339840289463865745397232853619742840573710857047200370024100606356183347525676188094537553650833542471347017166171909092648523873486318792342151854944706792083424247930668892431197137852556374299000350766111953793717587548192324664256495138820464275296132657835416714444772587338373996020433157284843268992448285828344410390989756644991034535795584393556259040191893211169558275457461440515974882800855431601432149361144264949765316056445654576527546878161194076896955136161660747077195751766370549048000325630508278088458854133777507254876633672711522572110572207915678508623376128253312680198264376581086388352002850949750477104512135233230993477872200195599959743892537418881040207529146019052800200404062658587439429163404349390798954540808926006660556433198949175138990899895682884948523931722215591182484054557062189831063490285662898149992123262851517998011385404655025587723166097171371840588808446418015791188536027165704882396587785822093540360231715399186514566596216797216743593278268665559484661677505693096996991472919494247357469814622172431557846280234368329405568382007699650657892702489577318368648174725662707079265595519780552501220360279687580276996949730292211690868417657215178001487261498446115171433811717919219435642142739939011900002471912905534374927399755150646850568234025598288151663614740237806205157554227286571520495506399666696749567943613250092126341643137272074335169010018582654104119745987759752579146753537379660647105465829071243121099528221925349122675506826141507051403670758634703782205804626637834230258644526565103666315631261712681489749181282161071076279841308954133927019730214124770905560013195772520912513034990165369338087729307316873804066429948324448265980847785383895327231409640459536982044017391294410469248474793358194934845814710700864727580964551923865827678848612076621000148667839203130425047067913731529990300168232393910394256770374092731983259030649759171223627443027188108197872193814730849974864352949328813598795925108773384279768967385126222803470831820893657709725150126156525435462227718023716032262251309646294179562842697109313389958069047125828507447128086917680123011415588970468486803633790037398019880523027812937799290824292655346981013757429532666104165044400427034946571866919998854785083520688201200400308414342893198514916168816609445539743153655158471781878292849267892754863381814865118319316484320291501585065019765606437692960994438910711327312629186069953861208358374672215185530374131799761164258380245304563079769646176159609146308760592161756820342538931212171047191529994331818025695579643474004132818812221916215533054406267599944423672905944746482468039570159977978275164989558690586432085779927084633308651814569398459624760233947489795652025713264025136109377886365535496498047315360495885618660857833288967616415436491231807963864207399682142483445283982170109293589225239637778213048874026062975677462958912810514844370152453178519341907477975350220633532634451784939700141966909601886066546918345059451413267719739656559818512685697043259461793838179662069264389473828023607841560653170396361872909343833994218868105978242461569923053192573761222294958920842274183214005354551699678884077309301054500916432846575918894553286909402695569243183011408067746368835137773404896261179808497132408375612456712968460532253473733085174126571665698018083625553306547887697895851942712750378973473416015164068088732187919226016112276546509082561167489428914478036318916350559933664065244012348594250313431944148733260169354365779449209148547284690764102245141941654771278271848581831490943199955782718248334565444426165816390042737113173166546142690041198258205602001530378361624770279761505008811847705105733193726288234563416285919895085220832994274512406979388543564542290814440420096291475500945635762610091377846847304967386644463923291390457447882916292301113966324119447376526264209326788044524750071486131507518186114966113545766607898764056963268407300483418937041768913884960747462777196958684584897768910579450115525932535992000387867367495023253630585811378467806881286380800321460426708025631760799909471406619771612992749347677758585080426447479666359739263084430332811629043026434876026526146442833551667160915535604737159481320872592766454250632753216954971754178162022309022285791306294086769837760380732400924988853943562996415758230832365470398172603912700040456102768571533092673115777977613520702151069398333604782667729224390949709593918326686065795846354513480187379906387307172474834721822974265241364554485319899368656675956093596933425073068916330450996607021973704694681451507552375617939992560922144857603148757628634187608614121629807963977562745608906293385423267344013420136932519042371148707708667436797088230656545931634565833664595667466877745281766419860638649287932804490914085709741464792203409066688609285821318473656151322990719482880703526546554718176827644324243978791644163695639993306247293860619080328408916323476418909945749622304868199816769705914503863082332063354281087885245391224993440716276688643359277858080878359970227238307280071927730673754986311429681802001656168005160752918251366581388471731462148092516632286440689416384894916013654239405351313304305759182025071962110027853794707839649501637709028447650069600131670120470850631869448191835097385756937007426081198117261981246861092450019460689244919758610448345320353032113900883170074088137619053109554960246932686559307236630002527042084928916230604087187746460446030130267118891153294225001179876361603658232308260215499467708214524267234688146929270083106411626633911360915850356232573143955356829059482046949847434754579139442852975398890676083501206191576259788049193327931070436458709164825226523580336595447612298166146666155300918150347723487676275852307014686953787718814414401602127602216156445942781208883617262732033671131830254184078879227367622047504664440297283006835985807051928434583643382799304996345861762967808170148302000818852301145933946090873559620882397208552068573028401417476439577734865717233639420482734959474122151628193285305036960789688767435438476863290911995021930644359822016790353822021132623027281950909456360917232839725811266647441888631657546253014212919246818469112462439585595992225197756718903288387251279642170225985310667249874263595291092240971691032379747288171592050791452437314047213183931901722743979626342817703924528279115408462848029464399540677546633246266701210674069530511963039628287468666241725760660616641938259989528131623316661818385427039483144675293213940200124370616331690467101340553556895037341296189855716512547749564263843258054819350904784627635633572938430065315837566794517814081031460312120348582880637703719585303530781149710581894307160255545749692753028248594154870337939043471460077791933167383957971599986456778027571400084118930304616720510125627874387588673204919745572945889922970569478505015625900629821078393659576420129928443775455320440909960318971192609288434507346095436351098197640674575549265922926628345533481497558400700873635754101957681449316800364524223332642486117728287472824391914357865646080145896013180692892855051110990745749126514933255068862764083438174096486458001906730471093635682261081149586648730949255645137390363807299679555766888344752419831820462784477347699850872700899689967587752629958949244401471348006469505902599729996426393311896085730430289937480631766009209047082771146019278165687105952028681875726292708229806450912190206602068191224942659277402867284987361661016711440789007785687890809726157251558916193114152504654494427795421995525620103379112522645867587550001314003459309978438204916899523463878646164999757568722165503219466561211186714888230458603268487889271516595902365496010106158425367745178749847026753603010417460572268468704260774957008101199509029252952079849716303551310678445307874801376018285601278013417589289969078125306345273893257117447433165293288300208762164387364464258415774442785649208032182885185389833264285353654596330630015819314692323664887942864422546681978964793852668492088717001523433770340856955016208985426794436803134501637252811147307050145421470756477533591429882244626922190072158456481349621296325022465593171562911938953040212364529847121034458803651402144242895824479674090426488371982910457717490213966285312838905452016722782130644570032346660292495578247662915996563066589292791812398508116831309926299693154932907967960794309174642355011027699043979082793971440581688785133780357510744467779158815674768088696035434885652441427109756581439033660275001526199192553717862421311478834224948888292884015133605106058940269529022158340325149061462019920749296540360876818034865069514145104716744299640370300611810264587813824414051601198916235974978089042846367986596798404292800620031410758688490001826331569497643039459065490807940366488386839833459606233625854309102379192207609629462062328813702276743168880717566950890244843319811414161288828491982565908479861619374144384318435721127466943330087582935594921949256308842868020449435189629551467793971843406649658757761264281275096788048117672235470900844277045057729378686915321233665401312661374577558482096658652039359921921338069562988284623314052908291991833878637271978722765092670725106917575452536983719128187305148178632767949063304783252569466138131167615234783138954209753159190114681709250259007679786192292670194875999864662422807182531228855091165233314515574709195981737322100328020441204435321510844686644608244248415844465308195113353033277159364642592676213753649374878789325839026506566792576117754671666095693603087607228969086139735911937281111201785470030253496159016739849275228986323936223963438756160331511324335614779168928885052238357847375454709075232831574004530694777930110727774795117383609209242209898785659402736030155306747640980378530850768321228396483215043755227401482260168934540712554858346366409543463236465019647839462011969536506052041605430880121525752492085069475179407569714856836573834167647503447516554131592585178398782855272855942668378013632249500467767462667847574605528854606175115721692990301215259418409273142257865833218164405743320534269468814163127426411856443515052533593604285467592344321256373129199598035769090440081192654992696217050406953245092482025745175143370200500844181577899387774160765919826413729822244180701321587782088123204483601392801083073253416921551038476791779590304930835682699393685712537354579114919611761544236673585009521234304212061617250422959942087473590490552275402892350059597624323795032353534629793680777296790885892346740831613313232746411069161642959733863965489893453383083902318975226406569692013021421177566457263660709698054012528577405058537400888414950200072928418933642770549970139447176721449757561067832596538535577486282292213746957742220676694909480074904682494556604588231851432074279534180825793857855018835445992257365490067107747019852771221255920214350567937537103545175969568774647337814414924725864337122720945192881779547501943776162669086318374187702414533568224013545573989941955990692702919726777090437728892354860261540798489703997091315635151697823042369487077063355732892185521601785844774688071546953626650526431003741609836672602422053656086401038803423121141665611880080298437027619039500119821337199657490610819975116277604201738138898700839063685091158589667009242889706280087838078770815449452482310241356341587641987775370202498101481362572645677609793936350897524708961691868517153492688570589133659328326177629018623351464070555401815032853515769546534845521625138384853982867346236927046379353483555644685673346576868150925234399454708919094097235264528898535203527931294599891792820370018898439343296173963415525515734984226528713062913550912402940977874030825055373487128651113870273208520662131731763552798794636305104128550521671895527585339300077970211195358721624994399460987146810667957023248970273633755642861999472458811697725864746630982570995742715218665938761872817503549605310267010298228531089420790578483003248523330311934524884971394025104075848493472988972455346290782798714842592185107394902681460188510584114549091653186819313178672477671021051778297175768856747493843265516449518402192895867375135724864401161662555795005446214007021683452212085464990464149014416429953280385686609580138679927931825319869089763280416260423965504802073139330637814078232484653654461430396420829991651357833431607184835563456026432400588069896785988145615476618067129097201680684585756826641999460784146017719504712330062621617829241996440707694477238692924144834820067432873654440097209876295333549553699968803751140875323094429213161837529723118928961261834538597611850539850769205264582651038479510421706302115914309943264068914975074769365159905298144990475432659577689673774073420069946757633781862289114802579290530520094325828848160755517807217554400960764022172779577293210987181662914645430911048534031346787019740704466686725194602194920143272910372604980142944398131232460653959454497035843943176314439524549964420250162838456930178195435585668298923606180298842104461940693283310666574680999216379939982307732571580422431126697030617819711808364468958720645122424330197048779411971810924867805940997437153070854445999624229048278775502931715884587327772495507173094998906619978216657001285596760174153763303516377458051341300380995689725982386507740450488747502530557924459387269193025477504796171500238773813909691861885497933971344151629980278988113598329594133810254788818280358825199278132412766905081232194185512175253475715287806285518715157743401474603663524816728227241464743267612465318075504135836768672031663090873695186521650841256893511990471166678963389410266912686625249131020842390799528206545111923328597673521916367501147878560560522348056772579556413157494822898906428560291886735521740055450218150004458777044372919481960740663743848077355896672923226841555267732490343742780599311263038339597010804556352904231535700777563860610909778593103868129551001333339914440892204577628374593052809942276934189218885925565366557108159360503091878255607005709153185888184099722679601103036749191176232676252414705808256676048203568950971189437226160819765398262430821853809166758981889615148038492430007353830467059440416341303968211995214000069736971187218088486565132916704380487532872179759846809895914044777311613000061870794479626793885174013947459397400274595623333637762570553472917198935124923123028134786832598549371369211560734369020110128964530400831552023700475990875805867457129396200427112465660706093914126504339593859397615011671032650206996757171353760777023482755307975832379893730953124668442570050464850001139158910565915325292608495181319100170955505369939093308167850609344819180008784572110612870667498433477533585014590601252703081701032812827250205042142844124515319359814597933124092021381477240947349224921911436930981895264550343182875372094199302402006043919421037334529877040656559612860113465456802651768954589820788044269378606353478601257826481343927360842949971751386296826048054365480598039495154783346510119327227188119029991218255526126628574617712373308093004224716508213249398030081699292600893713777372451060292280385182542368481985274351057546704367023176625869470496670308422549608908840960884809185622542600066560567332334535850628168915382092691104949865578823010235519995924880808985903142891954527231855057564480799023475582709748511667253590554667066755364138212258719365290906819546189371016824116327781101546604522277409579391215155930215008137271176506383517222453449964550296331826506875701188767198596904556772849750292904364816140284631296481161270465726455452466554334074942559515141579975666954800365575256541367579468215519225838947835381518915771305710989000910926883805246280957547965416622482581391048340663374837771769935615923098730870915751910032745197393853189262667590092819716476358941085995307132222464597071490858264076433371897470189996948256975697191613426728114669382769389499644032732385288620976366309907683399026421386119175240806696987582992783746042105437795789599402177752138820905583556495643487001803095871243290926235180218916314078868234065657493633976939550052279742056726432150810632637109207954801788210526140196670225453959429260946491330451106173691432886188918747418445791393305190868828617974945814907911942979554378630921105718391598546775116152296605813967849282024860587013051303381231283392786585250579231799311888884735579362967158927854182367797125003796754671800820010916800497840019565220973164649952035627652809740138319965664571491290473871207983182754271456149590846355260043671620250735508250360614848001347939199891392948789971345109160314609041236001235144146823951047472308333150590527837961921600513507488962544708737024758478145234196139568890062282318120167564761808146475778738824885500918208240626196021869517478078768696682444915157842560641235261751819306064463931401920438992947773233649803426812805338850998884183176317923641165804299851726903324640150496940423739408822354927042865529161107737588627891199199434368601292848511113745982251959120984691888042763899714012658229079736616702562405729915664432294617401064765529711933745528068649535712269895575842320559079939286424142133101311054013563063991238648254838558335780515821313296474767208302084808861003786387153622650645001959999320591460291233893269838430675377573709883922843287175062141786996660300117492604539488175379192936547524622201179021582749765569997679928278734928749861585618885630869264722666111122775611343693444631358646175914926327823531503280252423694754738817694716106143574989663546529396491215331668027130195728648048212563248644649492767803965327853848967691357321390230587964530652478518828959042782942239876808181433626702271211828375524624973127129900500383567085811649082079493565942539372963513422702552825306251395179149105058003685947766387197001319117989309359712854102637135456022684247669819118202728120689915278413882147784491423033810140870508978375847100042275683075843311220698976438238966438527408314418471022105960021722995849274552744963801276583357298816059313643075321826093505886829077417267328784293785667747247458552465403078281504644755697908713037663472671258622082891907901885944547261741116982495931098596978782862132826802048776268169749853748674552899392565335889669488266528322831090044086626703813312197601493394498000623470327670165211625346091412069282814818956451068725766476973412986444678740740843721211173013436204021627920298606684932798366092582067063370127425718907494904607937740739570913280216463266639467579542244590388142248990760766928106490841324540991429749001359276491329375275807191907048200685833819958137755934888316910558890303480130093857527528711377076474017318065391943034417275968481422938926159737199673819144896863219170276902337663895545497827011277194587136044427536613754263841505451094260001557499547335061676678661399415213219629899356465062262473021852437532291153827213650356160017848056799415953175638882819135062967943970923475938997271746425412906455521302114204925144720161375869614839985269805363266470483599649548801361272612900022434885239419700487635812840353266846895965773967720213033561793547748800540021624595016036311815277747620353528332524096460807298255869435136850212314426968810768498712236906955834688361798809009882233924955540022655331548074312284512726999100379768895312004602595802434006647434647922434001456390242155544166612349176998903082883708301340936724755485387321064526469734922026191464525855626787439875846250209404153478001870863617456027237064505975236582036712139953502304045763251097353107751691752358573547251234624361615207813417352754345899944597152418306851074373635059918500810406169021342758468026933768997599947424396161658328973414075278909703688350622801517865838310413905348725636755804603269759761388873521841704280736657694561278447163936980554354341870529179347296990792964998568150875033297738103946648458301443424934794649416780889558860629513385313163715611387477554787128404328821379015896423450715683418783318356036034093134008120808386235580470215905389969144524375330693633006369962970397603944074829871981006741624595339345825322316392218109431731421476244960073553445768992983148530912255355887408019077362044405812098941847071425062142973563626455943392722770504487714990607746057622675643559196654880498513380633445175056910402120582544835318730321494441373486532850418120164115646340086269025386541157160508521999458165443218170802395934655741549283216636602201671374738120114150076964054040859170688095674506949431280437836151693089965415497391487535341696046122989588769706375834938064718737317217535786640277062081954039532817667577798540198170192708899500558754191789831919256423521354608862429664066999801677488982710756259829252879384920751836699327509763417258141565407414063592046763770162065208466731067528602445145866981367920097978817792069846134646526139933004659190699786817222551038417311419669514392683519120210484632468277254997460667551022375227701776005611320175117668635231296343680608309609502875926667991796428375434142356839749674195419398249972827872350428765480452569874717555445251675203442800473795161286778901358331740735199565292893062425666745091879735267205690679665437319679455202937415887954999359675914716322727650480950647906774812276312272310031701562839467360727180849099973494328763983132938866933984468752758498737193226030092635737512446193787561967110502807910633323157885550599792536091637108828993514600478124066893521382554767694911723432582729629129636351173442407934755843539591614401537812179847535054928092539609169099719609941341710100348127811604380642868232019586580819693453149074690278107086353584310750203155137069772436973016407230804620978446981089702929514647933574142256178314052712993739874413747699754278443700470645106579519125315721922596990308665684513906279588382614536296164311197187367438510893609939540529727720214326975724892701715900758024163573101481126874706550923612921028136527911002219806662122314320643127254301222641443547680970308389315136354022279031116903949004838873525177183659438824167715617835853380850440450176328984351886836214077164230756702125035753216484581501645911135374718673940250215677406325944405691956864768976003851461602316502012754522280874521148452953784397581464840288836352660235974503701528614309074991401831587158190400141345280011400021817509834111491818345109274459938631313838812358227316744033120942127066209039086173425614014735335232929232482633901152248459471246065574024198634496782411393254715121976677936171918022781119431433591090636451434886197072917997282511588513822142140331582257440105947128596827546936390207806368455701247051189495167132426706026141131296130611355442856031285996340719073096528623093772911878468727824012790610887226381487983740436946342786513990010643555667620673544693866388449119545168414591446896856639449574151686254109065644469566257608686395571488518822669031843708766968752133251608115174362672832702510501356279753939755883936401286894428701740661182003362400941472255673867877390665726559543749069019536198974966137587458690912912056322973142595109888254536776932191448672765218615554595943104807876624437015952983085255281464802550114341177000220195041507289972319900494915786124482011250410967126833843795791905378651138057859158205135379418955325566418589853126268475358265738757941195310358471803887040276646043697621109524145534695016820821568302899674280770686472042225885470418020866080478243470671210020875115607490879258604973088465029961193856643151612686126688890503346550930200671388398415574975206683044120772212752277224100825222303592273964980525081031667132678910776118628984892550759951718759363148176461476539992375974153959574445842257751436986106755714382760178318317696341988448396857389479570858537988719287832817337685536123702301003706854655019872105021310282796145260515776658887747563126672549913807132782198409974848282762687744884400025937479019444068203736742927906781763432695030060446283299569134769118471806111764610604261761588429423743338994210926679197877158521005475597422686068288676090202869221055153490363975911860872509277726244073439758858300601420345415710704665275881322709005418933715509231968783188088204128217876505635464113935047570078317715141755549623039179930669378807065146174070963659900698112243937626050006588976746355259630733258590206120290286428821298093178026241140525418236888824138796163450225374054507707093384917066715466390932476716577155146927562180773719028668967530170851594138413539776797370215230597535217013689144273603897533005479978414503514949979462391705364747327212636804519587044461102369442051732400063423705532719005896720387902414531226179747207409567841527243694504355283315824432656313970707263864066801925475702833584346608730245373605052994822670197346513809222830268428584688903465709360257221324167392747524792161790659988558188455427474056676129271353697653686345607033995460932770184222115765999837943185510592942680088019516259213533223040124569586873629572566649544532327942582885722891323251916203008884295452732456095053351598261401507151301805388705809484052983083070558565536210335312307014333257491826755901587455537918114228207997083432824905843999214504702526806320992351207176316048893304339331305837914229439469280826943142405728894946707301831371234610547557917278571313915706871510477007599387877140710474062035714896495739164213129639539741666655592996648198311993850737012759084899808572062427893568410433466638519121957187994477801340141404301295083023834131084762636130844123508255900929220584757250410226821483184148393958023858385582349713132744582428087424043948821171295050509474839003425688880147320882189084214048233241363067108548662128539562962474042687120017270029444346118778776759454069729050364772009213740779852193564156217881217005265234084856653174292068733390848163949731277486740043957732590827702642920577512734395358648347332860286108730556505551567673856944591265895155837605052154379740384076494443645554827642397426793422990832830329191681558989020171931252378959439820205997907121660665790813545495990944383122450672265410687912474001731709869896404634844844093637553188989015076346651347801471885062467929310309211870212176217531243877946966580685441613451389418993961026286297189075809419766124891433764436505197694020405474807404077104385943948312993350431868258397957570592214885344824288735749115321387321557831331403938352869782496342463106009260151246859972455115290017171881897842738487690087303643397366064854578177942891316637969171901823524704504160731904455635674107826767481863264506058459620369439782271167579549452559175585135950020261137311314839528889160671876136678673371475076313332869395317089639607741324431621836485026927752259821574571228512992840798095992460773129800477166928823954108631209070522650555815060403817306376009486976753144018998985062839200387342507678351511536868161748826449735509342660494082271043383694629481817655709237180917195744690649552933115891785934923688128661485192943861045879183153815701651999448923753778819973465805590295615651587714741599269681047688685640309600088003605422423371294869195521205076458595470027620292828023733460251747675937177259632313957540359451046589427160426725090007497037480350975936608391343285392919530535440099763345565453074307495458053611145814339585179859932047005157797586102106641836475232268116109142907301292596455662013670576733766285166628449402799939874907558963512925640267062171856564135551723779468658758839358892510204710193801817924872516187966473701628410661756124600452482931516112665081905081664484714760385818216970597893998108119264683222489507908793845559772308588954935285413231312412794125012429829849381147906943199549758841850153970613856908567530286504277498109257688447883578622050517732616622409030176851456632220280388880962266161903029872263417928523318683381047612128614950043962125277287866414864917246733113413848363064582577313019261175274096952926371676255550745121396870263860309956430301637189295212015628819074057204841460912366538961281916350570114087571565654046065127242080290876388515022590779585625481335240320980096837434533408720848303931797772969321406529579090834505482932640355339077140091297884354873524064218245146491575802132700187839080778940870718859471608667480659866905690858544906381572250956102476856152013119718264665477715875563927328218237449073738977692640071959651658223437684666912570245522938882496010446086575740456031815008097105706524673612068066556477515104317000006813322285185096746594159593947908714945843904756890979040847782946887875533172953698712317638034126815594596231041016078655084899675686415009679573985079835677666131281909201953300043314534593401300904344302834446899141085720932199105407801040109933254572854426034498771610060300586575595256681718746572483055450471974600038018021331585481468088786744599441311582803595549966220902361115002887392521271133627230192088222830757370228781537175934240968871593309767324758002709207289470058428013194248675619262446124772791120914082975609752168178743134311314288028642187899212725866480309178598323650668231865865571291679623674140170126171594012521873343879104915367878923008187036775933057711813119888419094872821329274079122031261818420574248757499770905493115761476779304454233868362211350934784873769521305446127260124634868035272881561383084070130060723513280819820465140336200620181002971327337423090051859104620139869305532965869112115848638267074960037141572823097188987746041824819714237105830155682668320144551556287283320033633024341291439786316052534758854493317869468707485591368255808619522900986040277518910590511477572962993444254568121520682531612754927301670946638148623872132561643617059116005895080053669442224214269978462648548974695098815172315514208221020037055794492781712645193188170966683221942347525227518969096112108919446198148113635793622767579090130245407441174347086564683456568379455150215232941297501772650598135327013540027886386159490059318514190680681210661936898990900491183022661136520833842812848076298493838583059136496515040430593652076069034772251217227657688419254167545247240240066067664117186058859857225119878963041468767599725675825409081695648488202806633760283774109523727206738102109569317651903973951264896454160874871419464059121052989915917761099047199938400256875203363241866784626182857070743108898484866873458771290140571686839382587249640615984435681840317135923562818622552523574566467156131928014308634849228152994917807156409712420403871825234590343015732229751775174830409283883736963079253117903753548321891724422060149113556435446031604264941435983706203950694031935395092715589035778280092945237006042765047500759107575013152483093215862342764992169345108677051660464475204601381590943480055106941740983164719117997673092903149479060064452015014216025271759954551515972500728755728130838053276746089264118957788693624033527270995196185701297349869551284892920470488490514365455435552645796888218700478796130206439066033949733558401078363913341636202640309421433141455130406549221216196122426927930074708543767171251127063752796814252284265195130412884947015298508348804439867305016792650458187534647976120400327481603935401918695452978124784244051146708478413361658093524388186117535214451033884588957634846116066865750153894155932668063707495800533756579106370470662002459620707374754322063017462428393162837704776085754751658398535752997180024270612542543834166707575312808080811341707781554169362743349282410253880691123869997733877613938470227420712108983272657624382689770993855656993577627833109841819772545550571701718379057445298584604998584642379692131655995036744240702079617311977078373397980208872651089964950536625761426660137760749997109248463096291468172241647379154941638389378677317541046319180178762662007166009778114101736630433842223311680180844939973654333054516685435247642881356743853608337392720879718836692868707995332578890698291078626205539612050553657126639349420591463552872493570630310487164315601960283465877630376642424879249939480637194945703284824704475260142060939768332002052030034646885332208292498712358205540175557071355773714350799482751129217890665200708294097809447992842915438197913665448498918224015287434644585562125762318228051400296331600720816618923733007684459843801900582535431910525377574986993759757087043561581213533305749584471297471545881561623142944892820273953117535247502543283016547612539000136965151140231006270486238065091550631187108955257779421368115041908413822919992063099508822610782701009822469140343386368096082392345602637594974617656517078421056380503747877570489737747212466364358931878500809940124395785347297881561626350414316119510394838179785826187702532984593862278019307274289854225693229367119961071179353010942076401767590045079375442786084369603792633924823728454843540001986499171094350222407999626170896409356012268194164876676128551817748828281925845130478738769761252545646558753856220362902703036991225429510707340784382394047998055617826894080465357189515852053424814073483731152544271379237595268222377845236731053102274715695365345216157292091583793128122683097927142807830535091340958671365612185645954706124486279495951725948304363716202611505896700878914966091003924964888068175183287330005490032112898811593946079155399899326927218857115276037376678894859017483459385068492658687100703104961057078434267610596863950621997811717583254538842324670423517421460497874687528070327253305992848532868828908793159412608130867559839848324975280984381432771813283266037303403502608119726540676278343207280387263981731003996667199941545269616517600255129992347242907804628469416271877639939448242281281595725700441018841236458676608743392207025156697129766869652773812547212644061461438226088418048767550924136256935518600588291900892293670040190753860127645273971124794244165761732146826434122099879785114568587001637312819188303741984052759359225688097956836738746320949787753440829530058412262444244488076764612533688669927152949908541611889038854688267815583464303834543838725518057038689957273833361349888002877208064350673835112613174641969783096017605877091272944654082924569011195176255327702953137028732194521751305406981163018407068041260008655043878175203613253356362004895597381721487526636094792863651323615618301333729824561802665952253472162199510656889917881295044673966785045854343818765119204210277727562792176069002937080795668419961663364255436554303857661580177684303480109887678885222406217802803122352368729424112801347952488017439113912656243097494787510860984122083562419768141353375044991716610408884660264730624117388472235031810737484207096252746900923849190493567203068221121012622028851115871802805425897428303881271347770589101637198058786514030091998862801315388062423389465895598901567816111608477586941971842218339830168776836894960129803565776508178611416934393699497657044038997706277016503852844975165382430048529524567227701166653417670388196711955140138610826549617507346730811732705082785436624958828447645933865594240995776001587633187834922504954577002600975617253338080247438974231703213123750413876805868976233035250272019961724195664725508449709002114584432782608923728855021924062602824203950566890607754053568706254062382830049477617739820859248773022356244047499801705448213705387392117419510856898195487678270437774395163148431602220231468710347567851111903607403264716848940137011860470867236653898274955979898366795428301718513168762425056759035639525290656525084445896427110547337140440627971845533683218211007927760881403787388099354705669344508969694319899508660469820743696392730100073687875579462660864363797770957574315208829022328728498075185310220055329096190198929282966163156402407481404833162551317543304126297223247096527466961471472094375946467064794275908719540657079706140434512058411851121854905642197415632699235531934715232709268951619346568029439993128394313136244651996673312607660287935640233634329072723911696443604698458899339653734992709136985065920778757939053523546483688487191735548224255521512668603403755900758358680491713007139679212664791872534338621283119131112662215796218012325751316877469058404336020582882956505765692914111004764816676750400366584782147356281306904600558136168811679780620190362177006839839852449841264204024589378579228641250942966393877054210876909156301476121094533290540433787102520297785733216028101671294478436947869422882671495650570346160654427552347190227045410250768848767867043135602666457946030712563792616599735498816022101069576768463978278026866242814653546514218375162272539844714808512294112026542838059839442001710060237579695692921557112679686232143299510045375703582248017478922075239862963268979721797640017813182702993399121004417759514501616620184926449894469814282131154797900276346831707470435853555541577433531593070865330293977827997872221459547817945584150300847889363137857324124223136139527859653707817721573127606545327306366905228411840808160316113204359529496738862290346496525666945747188101639896680960084304035655379703185153120639214667162614324501445509777777456470224534383959464823794462249971973357943193633991096778437774261589588050741426501102319170449411608528998881554802252905064767822918952308861410074624634987554194681671205645781222544735330870355030114385740780151090987145468227371132391958487130693473743507756587744638293735812349840772828895321320831667180671479672867015294274037713726867615802015258538537556891900691518343213344742827552142749481843214953627483598743748583283220909113324648966485612220717743129213025087834870322541503437893669033167154702715152089310350894158035457628768194257935062261279805260723332834390487703893371577018034565587870896957607443927757477407798010502972602554271565677194061706393473711820682245631785816782340039959811592348073220779834385146132565253334993080991365878035363137423733796934322976336189416180817913748830344255446998298558548243867699212184324254980938113160738584927327303121160791667828534278713936611550144372662527606861720062890517000796036454662978285666993440217654042230045116999561184044908196191690995676191763912045773037636074115168680841300040244638830307309051351500643127053148121028716758208940650708593689202837537355216800543972099068164769279653634209701075561816871239468062917499544373472705556859903721199295084987203313542970641931700452327465902991945277382365641086929123919048898585775771609294738781506319926537726395116422966432838541260005155404810218735508160463364593645703245117339929861306905399378280586229928946190173023655009515225784049939041539669439734210471177981792104024796016075452435978339590982697284383231828269860196878688667454659117692800118659609022831341744417915832142060988392175598084384926094406772832642830041632959576164824738192564869491524192371107272726427533989816944884004677719722315947838962985394182741751357191660961474144581837975644623561121684342070025889081351341351703083983889393372017114709594932181220540076347085381136740010833947526145441057782066046578687890706052439844491844827867552670901196805422943220195936263691874388153471306237743743754906306853931943372778303353044574145568130444502377015321882959252244163653312471314992582132107704320168876553550965677342754644164702003634436633008836974175427581067463202516669503132598477476869274545217220058182995159796910482617114640831890344630960820551239190968896129114175608674741476089997990700690786690652747770292463623625108511212640733664809892813403329504523272387735355229282366089455798874345075960393455051874702908234383380470344061071070034745935704126023633273997386602903293519698201643648362357346850476335195991824907493893034010447439988413618610264847988408557058384438444953344643238762184765181884492783219737809895703371890711613469020986830143873491584461078092827096413389039657352768113099924930558183185394592296562503790871666266989775305486006275002183159811245333509973742738107071815694974921423187360691032150057129648776843299047010417281502667085146306762270237909236472368854448613400058363181099783651313023789476432057931087256009922035111221331399753605557440416229186997112980553628305425315023889212668288259402275260957774384502505638574159029591375308917217177315233192104874841659454397434851386863810397382887351801593236317925929742462953616572454982531960704512426361747724993629133681624118808562137760315015257210663381591616006727294753823100424073641036186601618789698704729193696246232116805002696125287320362828896696729519660220933873155806548491491803125118517033110305337063960782232161263259766055919096967689521006863405954202461584386250726868348069948027953032828584246431874554553339644813943938832145968115145244779804478430495866202644061748075911306631043871802233447862209917534705353389337118868942074578954185412357830203194798867935356995623352445469985415494755346819917067205930959070126537282943619425445169314747805142269983016796008696397529245814781740963060032987813278543889551939387047330001102334709191833512940610475185623445719935043234934409527975446577868873345326441588146222348003785721804525467722995251940521848277299697218535351967985292260547735818102575456527557850895102270618473988015973563707884273602871551205822276332934237559333832620353501193119502758693416432787798265972519205692472533655505700300572102971205549394279530537608031669929945935515409330082845244152543330881366783564343327481524523342854106824433584244145415545260027200468166504189384566813253179962098676356777358893207394014095970697949263599969453726925474188826494794593120080986742226129788937765410223284715460239627405096918990422182287544914023072516827441716832195422365012555979618419046650120762198240433827299429709524492668847865010891413146918598377822283824865345316045583745240186273117118384287294326534135877870613357661807395850195199604267818032934994536742136198153133951207883885649550084609893785131477407416835758565297844184255408591162821474689147482029843311083890272163102454053923246153926200538264663487210885769679439914773281060058222196057698725077682098239174692601772756339322847557072011291145348039272085192822681207425508195574078052537238097567943182785371339224103708322537276944583084745280377525166405321264018461556647807582278262037292652176523037195355596333454091495553540932212276821530200973024941203965509439666088181029934882854763159929523171570425591488747100216659174736256955481023526883476814126798646431659169624389407438833952203199379527742740416693353268008234366613139741140817008066382898946918343004643370097828175199067290739561126620171942774899026154602591777331422587686396985616807738862226294424270953618782025453585081894810556789038329562121845097303277548297002683946631136515199563504252371311258188019443135174391549289785202103168111901955102673167237365550784570942524174174588116500707372872013944688156939527265541247750426723027903850499503454355745764020417225876154157773581337550273867793345990822833497457868491813092989697009021147256132125422981260438728279955688769078304866886795061241783717397993778379271662145353380826349686229318076893624622784932227039179754685878202038458120995672458643553040513707947685357276749826313179426417407374450746936123388830677084680881146157036711925709017254344738550705142267529042480538006640171476117805202418046460223280179417004140207486074885972559630344544765477793677324964699396978217166811139196585017106646090382308036226518155422555369327700879598784337339701912829258170060568940949071320770103929428102423428128589696290214805134181593249836595067460363518601225838912267868148628082660090945704860555137339689984511512738567741949558676875787838437754290650897061199328292982983829922972539176823733953640528719721869613245849729579516129664071965203890727264526610203444488514581325997616692556432543250204699890896506759895954957834089857696626937683246835251065085246890325953533493984191397455688824763859005893318844227088103207832284112192120349115062974943908978182959137893459788753718824453010404257627868071511600955715709032906810848473820439297274908543162272995695938896581558839228371263811250216895053522213512801969748618955105862543987525641236808891089535051875444479456184259590966810201849890629308035781183189481438638708044009922870712703804269089812385502161325862141371369836898378548481430634080054464804787280720770175476604448235399143216995553796960533385192914855720373175189863900497229589779458187310212818711189830540394541457785531288236035261270874001292349401305727744726623327834761274494133583536826138656274653950397690515126268696453839283339192503551762601527375957274431774115842089536685001563986487233696580650973841380208703846580542467627320296350692134881555298569192967331598430828479568313608418528046072359132594720652341741700679061374781536389261710092231760018695118445964053897064493541490048008500893567086104781907667099629579783608520867800057917396441453957392879744000531916638425553927560496570411273105188958422835736159252110229800937031257547179865487034792334043969331156303368989487759718744617622674429305334888653118373625886958296642403034158569195230657091889141235313984493197246663902258316902065648066515163421154690809067855607423268137893010051277394851253779927932383788659055163544630916364779698542184156899698197346705902085276708132322159582126543950021666601774026684166227665418680261627437817188308413962775301968797720437625677182462141698159904718204905552246248162367297894687537284624772784455343297758242799984402227842841649852338361800778248607677581541844358148279331190421590036939928713809645803856284312680201863028295346184329364346532278965889706486663141985125275088438574533091337319955769930693349567075099765394017273877644891930338333183378486254338404199500789451127108029277743199888850472510890580649630574113905711627191382908923962949000890941431860177625317244734153440776372590171902857274682180035373134996453285423147500105303101809713388291975539907952271021179069766291610217279707336810434265484166416516479715055549741993529614186627995139125159860254680892387500589860600510415497581620329605419711481121445066648776594250294938973226576114350667743596286162860629657843803620620918446428990951188537073594936885867720906019481375539424221905637643010448063212106456945874634227670858749976988795922685999094274267894911193564192828525099402225882294697842363683983462201005948413723900281251079318332935948368350883697801694146640060951361424892142781721257546036949958570431054544630937267207495187933042657616477642671841322591161620117978723853999460814989613221058080712614904791407712400438699075358239522662347788119905336380044776994854697261242663431075624310155418910860372452131607637721310265489537219004053239140098883864342297540235359935213905677683488774774558058436171994222766208456759415501246916487593276361044905719907448196261158037818768332705281646584587588934160624773494769992842615965236396499592591145908585892777934839194505109032244044728012391593812386139035219906319678395831636556659803290425556386167137869217233793765906432410044198419636585019249606077153904706901652365788074426411888696158612714855066970392567497436095148477198577886262325165937446764282021248522895960130641782908194298551528932956981915029376302755080946976242331632150130823133021297592051786118287118831193762214392743395083660056828923240352959992419625378143319211259812115003722595362704884807357491366056050913218475627815343522842011220128646418134894092351473357311108852385879749031347704837702099888247992958848151917243284141774936620044692207753693516766761821913712157364493947647211968394512599606798078593406416437736707035234010984705192431315171010119265627405660360406498126207820860495032479095384833099452405940483255019597720132799519933709321652299969635760956195197118806936481702874729337037432102984573033431427301366479966108198578872984169904904580115486263778522287492224403100982805234977262849701037884356663951660550985924510635146960048698521956699226699835064604300444293994923786875454039885485485375889536577690380303918553955736706431800560133743157173324938376182582355853450228784569407553392684896002774239994080672932071791616023565352585415975757418229155717130873866290606727857495393070993523006770554082659032229932375507024803449874074798714638931538152299861319070494362132333565542181606386970474426880715716289977116020771022316564444575275733361205893374002880422215312107813346604679120409257803011948069748774296531153330762154086827385047440427106098719575611102685159721523169116362472432581445200160090967210673247303559023361848616600032689781323078990650955341152306883658957080324721149773328795246625174675420837611362238907162017338168820187716940291893951609284852613625262643809252127811440884353867706422389700360718026683135591767816883889888651205779180914984104251043777735963080658962588773778864076169865304251558430738004356808270951497964248191261820282829962024803754042319491672607893856766624461290312004700696819125629281028412868476098270180939142885939624082425092840463528664588470547778575782598841720194981883641442871796706120346681325887735367197362864358587882828065750996874542919522345215537764086943102046549378171436058545992416733539638724932831335848003019595682902615837660922918369218172189471440251720961518911462211430176466770704176231736518797231888696512928922384685536954380484692205517790430359716941865853505359747723421598185081021769411243799890438838340497617257557716657086772381112293085312891825856717774062075285198969490820671654850413297597113579572362945496872026367313527080849506776759845201356027571629501212309241529564180609915699035142211919274143454165557577135759123329849112188857240386193089227854067173569349039485779287544570594783501680085640314157006660093911047757302907907133256129610427614892976166712865828585774786997838230997349538453838675804284454917010576211157496117644874247164912238656230504722838648373138337182370941207209976868964154440734995971408807702984848926034554416425235597137600655263440171730024533725821510671369015476430237064975836573683712426547723569511338352481082014995476640660436888836521663920654498157800619085380159960404482957739206903000375144538821028992352755800972317288894551729349243138161689848833411654355286303784228123227539706696942165643146371145902927351317668743485924665555934808747438666655433788590869844486307042705573263591296552118239806668713366388006881716729746053098718207243692858705069791475278025548809760289205368883500569801488937178039082182982252353612030813333203747794234850295110151501151939662238626457695528957232818315913520548500003049355392786512840526366823919308415057441733428209734346688200817637255904122460112808481459628860986751478390503845468699829930576580381856643716414984116026906871995748673048869098402780789117291510630042968461941639165651970344092301232239071078307256820778978880080423933321323231545322736050428515152925550314416598715175958168985709925328912705014012580534905538513010352196041729168337314546868060218996057808877437831120523295720251462926567917558443650754138507930696642314066082727707099775041496875090971715523156199285301483476893256999380702466723831256132959942018593295178958881648004859427439840047064541680693029827803763583599118146499475126298479053171975628175172797195555330517526472671881373376388652229572237242049722735872751293151563413622989781854474206890275182229409625559790605234601668253103762067740053473415578692802077926263335078979370975371171069371674947344888943697843788352421917024687325735186166212284899526405964632748049463225000874740656520317424667740107537156367778366685705619904695998305057979017249543669538849996616718902033528615188804172468040902847248350998109204782679775145696053622081460499301318568075474484547890094961280892294353033169439923474671465367653947177506779748754268573908418699647234255728024462354712173104783265730147086910644949276414220368819826808180944804281858977364336334644518646685604207411767335880973200214345505886308605765164535222628622668467703036933865320521934296412720891820940678410181562907727774244854601681222982313072648682942015002176917568839552654178250521174026049683481888979489839881368898338143729075009887266189916575293140151824747889973780072783044161660256709294785442854991529381741300445334593032670127686399306665316166635945309075373173480675346859999492332781716686283135220327982486504633855353281936561282462897436007626854737876752995220427907132607771748415925014599682938513597837421343131902897594889928272109857564980473445903453483559871971841133001062424953552198790513427637866233304048736473277279735837214409169545940525239216110341242268474029490296288613324578643811446634567848443253944585199757356331845601523279943388764223640961095051207400447821916663457739364184264156160060759554314342068437815515587698805103668033132193431376116224445295744341238574695319383645749209689316842273576424196904839273359629076843736824481988302434812328536511709491970702946866506157304287785526901992793692172357634712319826399196012960768634890528640660771162228092613760631655243642919292994375540725425869043524031836559564446298545690432040656395901150462394516676411634037970612781086588976314552791769431696549232190252034955771827241827885181873278198268189886938540394660151905765378487598030306997531804459674628757637871886577523685613925680516918478616036920299647231389090972178966584282028806363360427087344489236938476251878517171333017909182817054573513238720408203726938768472242126938224414224470007912327153192144059772945134312311981129562954365573597204850607157376879061287400745726614231767756754189269564039877567136219112985064635051656918387989822573456083537304626136226089082983018526901722523933776463059465586725723918454374600216653760723755248745517180454862231313377520340835939661597468818403075686737930574651336740700523924611800138591097954771353499599772146137667878228110552574848266204755477075446255347312431171861663362293355479520489745640891901793555572965205493349889354342447036478894240334866955948715605066378830372357821552470039603366458500493146025828406187398204667868273932624281095360934635237048528262921998207715002945682758789217449264283412735409421365344642134736985787654790788864022262413102081526028447123827700507752068085522686027951139139989522261590675199063174595011186657831160128870740209577417385552936534532839269241365161883782163905448830698329595110219243227596771624242135523274440448410001212991395625486177468343576976343121122183556510245483810436708218408908999008602969334943996700678799900118761112987870798256250158124824533358533342623010348465003034672596326535024867999269452038922510114205422227002634207039506196368665040790331362457888587796533511712670544532155137349624128388307466603799811003442874097158594416742355177043329190241936914433381017224048287722505352003310849968324847426571699065798321865051479673897015460357258784273976378949836416554543005449353618528003773444485940592732637137402861979272363692050050639724907775847813026716240430902275236065261152058832378646854900364019112995212232631869776844030662231656373815767843367413551067430546553842751018017310607583549182634025119688628471134005325174945659874544745480077689406856451653548159902937533946349874604730920459259292147046691899888408842735752407496599101668873656709840574477955145822928722695954886501448432127968151770955688184905256916302738416981257672279382798737616777236841626257044347689965542405273146213671830144122457687237799244150931494680385806176217991505741266985926392395997687849904475418739366028896038316063930277017464451142739656220913029127098858891324336200635157962461767151960967607257088492381691687185607470665081479467236313371853858546814370608951482451650447213111920434416628363687600105930867282961594289508795933631179533687826145006079227028734894303447090439515022733636499893485453931789875663624446337868253131881656119413046701883998471607679301481854450735358715849901452908338433874752008016716138440344959992306184872531611926895848010626040781174452285903519028301328016342573464085919826787832114601201965739722576421592168443737279191173398678821150574333410283953325635046330678481280654599378896374487270204714170195603777397466699941039636081808000989068768392811432197325403236776138569225613210535468017122924879063360437393982125824939409946177664043833565655393263592384327638652824046287550971906389888346953585012019103033423461977479154510163883420390234843407431442968471204261158000408643695620932691014462798864500071156233252643091932813041370291260787872775641509576572898111523283262082576590118814816427676144468988168327044182535004013643734081107319832845613248310453585306511765155818481211274346109950230509491136856761209262269583225513821309835632387278525836372928236428040784580733374861341412968900433323960317951065663227274803608330627129218004091661099418345026129905835784690090523344729515301415915959728348892679292363722418782528071593809310042773566163052237479409010794022592381244939716910862591377450977790707844975444026161236730701636192304946357537731416437374865607884631782679658985655134486871810089441036430541274259323087908860428521871094345790605975207610677016263998299354203191858427186493484980208307001951900890437065824951692773957613624671204593982655784663810387140764024876486391981047889000145217127932951564383327151901132556039848499835383853132114256326270743458985862625492804202121789190296713555285598726734835579999381038770907911821568635541716821810564893609961274217296774024016913950428025311896236556672376086000421800586777949234582940299319460697443573948651877398066721488849277459478273054106410991358873656860150537085928578733828348018791853483221495204784560553656058241138768790772603365902308127070561775891575035659968792516512172303908132216405647010079229108945344243905762454633742645107577265680066231892113322354065383163425082578757719924949680167958102339592209905284669215862989559557692624552679311370686401498178045756731078315742090920547270229466752260316362008518432057673875259008345383985249973338103482870464373339673190409342454756199271982775141469071513351360118190447733764507982050729347557738588271890823131463524788393285605460141698182598876683606878824499185313253214478779874958643447314685673800684129981983314458171395174243521070212649939852754664272839779918973612669220835190367143192076990932257624297670273612468115448497365207015061158229754714042807789171006469274906616878404030515953217112363935988073583944390318507455889314385556775244922741662136857326862742833380381773252543744957835215415969293191161618172473251397367267535364111427332313987608848896364964919567758380271892891131179379906755916481429286132073872586507223733785071383122733119434057385420870274318171167421563802805900451131344136729164486568622411924456358959410486087170419850226445800997629155139374166838521491374654368695300781042911955902056182327340792160041789065710604505393533657669054663641142290176497568755622740854625530139408454039223898441182540512167256544109575375553945180514022135422137395896830271843677974213464211760397915619995086246637751037625850883790422028439459462631065701198792793292783587155816009218070963296587436739895747809709239588670925631553265336405869447409748423169527894056464206728682570509518264728638085544605464092822641454519645780204900692051348939223714409218753263717494247579263107705872088308316938349715436764046282364636828659051961147725264798173405419285025579390342064260160395668299887269139054488442196995480554098135376480372832079715856496943482176356138889205193910120630503085632250597083907266007545945516669072375727156498107480333789222815350064303768077286300222859649387591475028529589736085859824600806235171988860314024872907675703410223137220695744332827799021854527519017426330748147238206662469727789628103969306397501599647754196074954602706959317813359007741815582195583422867166401838120320761229205201846082138810555737740805222391010400870738777600418225148799619076608139592117354148212518552953135904040933889187116461716424034308175575464926325003336392682499082548754075792978339390654192884789229804373869496524011264477235448598686956251931021333432130835218863255233944449210431304065952748531528846615392007056780947288570063600073127381223386887710127591371945545288647348053177298977395012731421248524931814291562676989532705198880749110559648893291566247966815600882209896929762115844557134517540383602092198288249342855647047645745154183565157385900690276942377721934331200369275192681179420331228474583516734790128865731227131747413595135866229402298216241964330014224461517013737956846865230969377303572704233457125808380083262240342130476485181824280614893182136042337478298995982352953677786933641692938057191855880256200629980598988119874783835514616146316830201661178361497162458352802565994130839534170102877112767821053808797482453345488712516646586911524739473755920832556205046195883432291700382905391067660143945443308120833751160349145411589301766735232720185226532111944236890863783737387332158710331438115373445176330825501020369129311657031957195009704833949901918356733647517628459244565605855783790863996646229620918611557631121252150749999909416397928136065697359886756801826884274899945489431165428317180010040109177357644681756235949567984998457217615467445856744992011074286940327667823665392893667978258602160154402760468259147643484838714059711198408132133804392694570185180263086386479616917650003757929384912530705805254337940318105225477461141547683138984917924378171685824865731696317287459806118474952963907041037678252140753875533566124585757786252196459450997135805692256065542683923439716091724393711395553138900719868405201409269683664432823908785172592365688810305742350178484524236494818564140190089912140364241549088967812625183011180410692619306284035283215131932170093008036283728849625674123530067344096044126275960397388764649855691361770925892110163028009057611353428438539503752721278679462172751544634266696323465583551849051504772473344460548979386019598508758539885720119347712524877060562089443317472583083519096468165063369667906312521525888441170830023592837901811763588600036681213581704183568656914050898772771950994212869545286917267308394152044143490419238155010991614724386200344917131401752763351493687731342639230632760389864886026172499667384620479710101864841328856264190860749095229091747112118351598212360323586392348040669563719836889138693530120732912427218471130047830135468635265184654844804544823831481828365688408413123407175906775573633571045631915603722247484224947188135962057266697261216483103533739494928356761272307755179725046089862260568598553606744794409224548395456091010359255854456377095098323138781259391472345950775272274698414525233414982551660030817897721942287948430761901252535137329448243491538998929192593775363952187500777532623025939901582864619485113982831690482726492104467411807796062073684900902452333784619870524801971905878020848455875849037397622219390974200837714452401193551978735828578481647996933944984247998174187496121616298880380768305338823926057533954486073774919616519284850821900015355564525556300905636112735326057721606025555261101567027499412620552396487072534790140945304450359003263318748793119052403895529134364402269842071002696582062384741460957992132344788547817077933699607176177468910827753517843589359208574910556093716555136924331274586105057532332640186606625270917598703624153896308826253106077937120274042443741414961455552961380005186686381767443185300539085013300600029849647350379824621864914809671207391185725898475879772119392705484345152779434820935009675230375486282913107983182333046613597374827342542754671744161258817836029449073768304895563977925286525113457231855925503455519844506222312428669796453630130543009883726917706197375157262123135192692615763964043507572422751158859711275774940579873711637833568139402455007811186360749580217775737571731020128195636534147795648690382505372836853827028156628778261549818498037041021514574629548344911974220680668858729559044076378251347079937255828626498353853114221827919260725502695837789671135987858432745968605685955134354676302336620256634756553250244892350804378054858025720028923567512780709911681866675228576393712484975387830257784434703409098025184093973405968290172931711078806596931522637525650639053317060260782576171006609512844424739962499170849158657578203138714205612886993069304334328241843656796653893381829398962119214957829176266860023828748508621142247585215221747742547072808264605709406061183625428080159195934932118636180856182746014345072278193679601504550438605339926038462610788946171303837600699372750822513526988754822928138926494863465690444873580225988211885906759136231950783731662933841515465846581731594689205353518900386823159136189932126303304495986125837158438945618494466127785584085642270841559916392322366037286799384584399667575557458263067484858444307029256567742539235218543174817643903484196054949981917042941695047627282701993641626715777071024396680228071262044390633769094449742688469276169448003218436955391890639262586736584109525565838456305103674266630548572611481014200266212639660996199643315845595355522988160490234315323995092891669298634310540129970626544427603473338697010602368684137770137872674831568787966304675275181423667339737601198186208473145304746328075525056222819257637876533586139385298592320795559971679827827248436747689987187563734137272975612108276756492776307758111559163420930547090861302316690651934291559156541350897328407841734724082937494637961607853708918904074604497825848636158177439866519111386015356512395923190253861585085376706940460940761552631303752938251812836476249978084984721158667825572083518292391754930622985111945759533435204578178957822772870292070629336763298057599050758898173159105813151414602776640444075178904455096193060181227367428598236363889650112478707683761207111093079002727248496636884894730139815950143345740792769447607575482286535808065023161586794733049052654591229351010942010808554166331182555003067049495280461008917823354713547928629920946419215654850462226219080950324752882148751666307503573925967424963544742438837421899109587045078612658085195523683700277703477831320740863184175067075132056599286578999457065000780685254745745287116768356198607404623260005586161688436765516688145420855843135066561211401068885153363017005503732735287683764207550849416635497826571794457405429814425907855778915377184093243894875128334393043533828464852391134345201683975714274247707424870476743668001949681718731995364665646333062425875259516546773537145215009970088589644390006254156674571854589059561176912226621339666711488357878659558916204143240244138346446490839427896738525023472618977655668852280162059774697105209385741317935924942110859972674336571565313969349145131867150189182221436823207906042544919693013258526402840855242916908012877255561659537238558276281607187616753810611202203684162391900392501832742540275538436383599769170003049875705854145452544078201662191871885963791552647479056768009757539907458422131581981171056637880717924905937231188057712955710356085488940142462484130135356948572139357267276403652856669273344732893932401312603420285493031159670188229763983141377995686290918823092164740791920072780035225068502176879455744408924373439366829538195124098590295405847679713593454104877772775375742349138705243744469558128522728083692364291486394378869682737633291012797665581122245725054140621267046675322032848128108740346178111273767697020970884961779705359806657235199194045866149777772794980173560436605333613345461333285887906132690237702692863031742418352853444724614484750468772506125113911046762681962466716655007283915164958397116679241228372782917358979261183343835101804047258762146757449200507925979023191676830484579361557425460838886928684124722767566507075665153801278713481541345180324656832428464790412181247321207656354768601869984317721052052506497021980609334673725701384859897672780915580215679281532396986940167125336606979923358365783070907146619591922664385213308479411842445519108836260095637839587235947220490023673651441513537168113848447210658123129239549299112264576137357346288002981704230520466988999641356830652169516449409029827522016661411704288790348652203545442446951594900704659437920765976333716709511766788398500287690908046750789654539147207931279478201384238333377172657256965996997435666024993054277596643578021989216473806513792749373102237092402344708772275839219294000600841956156444937714982301383959749258349456820805434710126059743588138415435316476305799495795623597004849588858428926351038623867685291722344186939565554174742198745355543148773397557447415857639529148397578203148884089935352698323332727260727212705777574173542997819593787800312599306972695951352361164795345310064819897261340369595904257287586922115722489977245155260871544920190079755000775548226312855388503617576861352904590711068819782387873427613207996057436654692328786952383237654945372745976118101236749591617927528409041975417918346957739728591141180522172505399158955255701560196550839650200992575348933779374749958420727611361601446037399215921071074799168596732905531473472932278712002579360846161824483757841167322502251261139407147707420956343893058248199772931770553785417395967461228903656690716601218519625289439843307818986625230231651951116763359001339531896840712058260070167407290427798905855933500477522063094451410941730246926172078529544760139440364001529039986989529534779427477110204398966975895633752114786574110135179275534227287442537474782409557622870349317451159287030949551895014401403443674392360129892266633347962038616708367970189880698187005526787508077278258227574076623593638337548256917910685557525981510357031294610169578357000027135766443694645398519635340325334706214805939860093572179935740278247294274314979461621700287885913277679733214612609572593373597567103935862292801624449347316125530192329207635538644546341857130897887629906521340132671341939587674936229951504358066442772369625143351679439736994603855011225080976685072076010997217151340498435919949269892892287136066903376623005891964600026933392900117906063739477874537266566561012209036666627863518325924970934004457111956818349318865927833316904574386217243480083618336120289627513571502671308293453479449477655365409234115903743407118114685847360337548034154249748089728167625105982397125490381174639224401708813639622870267182309751495646774202866828115790642092962958827410813181420599774116316800141438250560208382394943352433096200156524590185299076192637454796330647574255295473859407819874835416963965520954821112486303111827718123455173253725732185486277979794215235164198990717351241975473908408534686960508620101742803670217558726867349009373533588470741411358249746777623256063921622201642059309581200652303218629302484001185573478071119380052358783230393539583385857476746350111140301776760599601996662324744195523533052731130408109614039291205409099242902996778398399472210326050154306720925710340655537475892450599515370700469924841403534280673504659255029505208860951324574846107328644383505984342548204758504191627229866158653726884194007163882885500086669698036003583412834040962357656467517269259779858628928307498787477658621811016663018339320271179920388373536833104086304042277296558399149388543440830717471994980511665158907976733319029885016898434882031123874033444603799625426799607946297713723930641257060220773497594816065426643432026285027057510871527025806679009158980264711466411162841531760729664450034870235598272072617067677539266367306675293966620334382405713954215170400263817672436930364324577317837664589127066869476563491207051329612293642409265921905215846018608329451741375073339069321898208348391967233582024770856361414146030830952395117573873434010001142450789592321154923233939202261901025667163429007906705857265676296934197494155332559784334778545661304743884172773988514164799235260132107656258587902481021885607930142250721627509978682690522196092805269432226253180099854489403830838841301581662820839903874047297046770690462331493624874966704119798353299817766632962316724385496956919405772415227434655576214388323291317610696698303615585308382883941147534226052170924071146344871698406274148341360319095099439903153968144883911554953548607451066464631056324706208488564787979640171400409638598919310899590627004100444208533228445636938291041133649225212144097424187778748123174289999898594501065097236466534892571261422054041469635672264752813436969840604432896534357588240850265514758097971145051724549367060876952730341882280861866686550173996231082119852482598005462965915585556957854092015411551009205800287944418147850247827356352674586561942000852630018970164410799194037684493503178757425790894655078104746150602513581011933793373648184414322361207151600308494039683755518787182652505163116618539824876391055579411525580602412198152139938147795277926437306017230970398340753586268356471005546628791906664607034890471336360980150657857548049679025641325687607375875983104101771636780292245537784543214277553981815969746333134593363603932371226873004770264075326257648833500702185759322969247840128666534733855135925412405259843807869428974000495664104721300586978384476079093412358628584270654432485187654997447587756277723342581435462935436567737590166284583007973523827176679212487629080287945194775768588343619794413087836381555051210511389533128886958887865772071955734699875957181745702076818599049847459531348300698307584282538422243737669138262048091392120818243077275398722880993611125389990251344952545287304132343782594778588399620226438836040180922579089312684251106726562282386626407520937967861379688298356270216185459664077589008940361212783643142042731020273068159686550757590336867176022119832356858483375083163129378370356317631573979170351605423752548537066115403291346662043407563667003667668486643331874747172394855798931679948552244841825356982981240819850635354752696954885885560581650059423037888748651657125468292710486307118444633044180152594631589617146277024047207062035040829781282292452301960156989503929001341288142309522041095671167100955247016101825888859759695209605592704618649796991362255053753083294995324811507931150616941271202524081665882746095382659984865702521206154931054057920737988406829522035538139693615434946788921846443104067332133963964761558619682078589939987170261695012911087175067198761921008903077326692643802861896919206336451262477495666164822072572637141533503327848446725937154403820812849122959530406741518196691086416285531907162423527223444745220784762086042241398592734551776005445310792136252234606547364981629179708177610066902768940586483658791898442081726110411887496897018859755881642844797510405925585304226796773423779119678028130962046935258128333437179922724178903677992370567240362909000138326886123312297742562412318803351094764241544914167353765224681873953385554891146175118491167569418876639160551010792204909425475259593441829078063510555910483135700948773841302544883024020802340282564826255393786843886965508191753560854744324509218219788674524612324047651270631614866343638596670634771028531182031636775590901512039328477367920003522351554206344977222141339416638580912975539205401970523591342313742636849352917749641242837523534697496531575592101156903229551758785925067597673809885173124102559906375357952438108570385871307448047848988488477440958364136337557164064310525907558733556828958898298186947702653488489214996917219872532100911794583836244081075295368654488695776174375069883234136931911638157957999809417183915248775760775619386634967666635248590082991550844006109044204290744521723248479625857969161081419983722404252474877574487150355084887021279655014838047683396500800055237691281141061824358157152886708814737841948785195435150378740003166952752073980647496571526666736610684805036237861412179792623499630293155817286594975250521243825018069725189697477668764697235398506161591163555825671358513056190705909105925021661932757974855391762958644721407358644929210733019008543472454693593613704652617867607656728906840865711777143691124696135837605113747661969993386983814435340877717034522992334727352215262140433637672872517593979140512894544323574014641365427343774414642911611555573974833884574106498004732336373412607701623284517083031106249176850965493794499978791790816557969490612752689865963743371712522289338714964429488583181373146095105144463834182454256636923152269763327788058404870387090448547734434510086557115094616765841961013762672167538108786102994584785534496003137259932056070532895030585447618685268180675314723457893413771335318317373045096802958101824549875885560412929704656467404801459204334618343710922040685990661347294101162856381347938496549134033356935464748617622918569683164506121573711935101841357141929088415527480382533489849873254333771623694435534565137781874454404904508921978048736750623980722834507286372606553246579071958818352167674094639587711274080655596662615118741755944560330695432586096373288517888648440020473485695063796974333888249688466522177618764556408249377587444594029840967050672677538187046722546533144451429269896474698755742042824393082010022082468579124482489826838190596789124994442392695119228228148745709351456397744171011155253498687241696514943894936915715841569815831030497648962182300571741777811825314526018083987281831195611763315831267902470050170085891520237966863115903990450203409298162148475594971803894744538190234934685765758587782602608843000686354667577056170037791263150034246404166617118558248357505934102064718154616046442660502338189165626315832296686813470546819091031785318848879171000606238915745910087851955245466834484427832631170826775681660597564099428609427934053206265576613482199479936618114788935647557563010980622575033200620779562042364151952120274520638865933395659376013886872542446363463161771407365065503764987124617011642418936143496227393997163756724069450442138471700394886940287797356871470644964512414464176364373470270557708643648907465308351702832727236515956559952951957304591707243634636350543482146580064734090000212036086884594877716930043099872693869099521672255617085407576062406102657342560220212308993910168508127057609418951768845299876525970423138138472738423246463306444572336347252642738026675307330980820065365369745130769458080134252312293555779085068619100583592817178684199204498668421354480957754881069610727850300343806879623984461759542552286247970547649691245391599970648224600431412757091585947975971095178839426424200944684705107633017534901616310595260009845268930621111679358321090016163716669314957359316809660874639905706438202816108072669636900340017793595667966252098155261351013373343314075640802187936863345607825929575999621091143784294321839741093360774222475782103343907514952517239381708639089593627541714073178254237033481558697460590881674887413895372126375912677071543433215674769287213438910096919035838683373768057661969787844451509447101812956308844128314177328619136802104819979376749740765882288006132131027755507330816019559710304387547073001218658146293059904370287898051283856085057942950277471009436029218127073568435064537189311655978604279330160025575143022739028226729376715245455060556459597563388362324127568953305249322711162838211886094488246397610095556895262470360693851816919427624556710114370726605257012961433819006774793308235785269527575820893952323347297595175379386142318352821881954428721595274539414535450837954899683514524871061518270275105988926063802168715268204314104275680263960404992481071604258066906160723165282940006436277568448506022278289543538477795442867487348802837038954142954973693863324600536779787291031522868457907620431875014588877851710017844653761416718757879181669307127882609665242966745535821913299308204123388209580617231596879218757707518685517574613887227381635716290787639450129321601699539331653380957272811185457427956654346542627372085782727819505823018707888527523718545329545770688407746860603007696475209207304897639232715412721363279073297417287088026337874059737519381508969517623483176030084267621451777782216420908232321139880336265991489101822933452459518666619826694337909770790310345675060494097658722675101298367471467665932905838247419803236665686463402287723863441802717166230729347078652582550220419114776311567755674468935510307725507203605335135271107790537766275381100375774397432866032855657553211777445115862562582496420424104910043003351521970642994172640339500220961826873759814957559112018052693718374815614253317229856297176378429817101448343201607405709020942924473118086551702488487441256559284178529906197670231162758642994280981320126452799736368260753579770347902571219063622645318320534203990256009944600202940901393639576211422599392947846214135216437108859295621807042378883709190394832869305987002161154710015070939336762750490051016976853000503508885997378797532579919021746861818943517054242895618746405528155168124026304678780475942600728628101643363591877241595301230815797195608407433761474162756972979970365491447637912595960319996896538105672422024066657656492506564141969184625932616003846907226562278739647298201976389653621571153515892764127329522292485824753332758180400857719254331091329448276452482800320653177257445941796031922041860212417023081688977555397499997201253499704567131727952039621854631584338371828216395129214987758922593993167646415943539223582273762917734709518092082647220630324045052919754061300184020410644619440765749972148009144788639707976044487945914922988252880056644337430823702406750995333748471901610431386509170878836402476102006028666088867697932869896051930899986566521385906294689028523428194916720509167724737704803439750164796039002579579008094531679495860759504415501884376958119097715270205789831475290617060624350600573686744024201067505253111028305287992538603354155597814058639472701543197539809864599974931163520389057577663240917089979995988893428838738565027838566987045149704749314238510396174815152634811359155826245214050407766297841396585271443138789475420917931898514358149494619920081279543027496701291821291670785042050579524887115276888586321924563051260011182319498078171447382320742154151970411728348531457158342918846385386255600464435671906106802651529854837356033055166355539166677792507605202372698859760983227095921076658569518079573802782747230316560946797247123342714184631848598063395139901785327452722120266126499404582638761115163705852026773021359486475431156536605627104617358161073580446073653621535794623974208562700435116409640891636730582792350913130516188355195747226991808914818846533581913054531449540513280041047414131899800011058932976800105533091726113170685138772058872365235059687323672969563685932851637464252619277439034465727710332331637350822436137378683226956099617313932609034731144408475445275170468841281362632374854674926554365832098808535903501242179434881142345767123420877648409653421837879503583855497829286586280539753607288766835959327247224321908480204179705567307143250061775933661190227511621310541454836898825724411512228220163112055314632125017203989514759746461165040560598801363415302706963314001545259177066713288979175932780572004612855051265206338406914067443716058747443494897565225754999858931542225980924390016479919657673747940892387398346779472448998756951813377981559764694863233321745942453670580163220024484781095628758836152764145330794829915158004903289175930074747268418741996124029184645197286054465728470043567649846505261125639550754892236782440093788001092173203386844687595081141982998690302057865218827914836067453964184981944192105022756178234181745161380678810552213698321766304768161899384488716727194608765414609930245120014821343781924636327676962231535565408618858017526317618305984853636257266526832279901960168533361320285700461535317628531743991282111988108590085330249210414201565717410197777101665812106547565784384374345523099736169661208278402281269980853933905499294092024337871163959097023459294948698920112278027442352472265854888873117751185041731698551778003304721023649317652454318287190366676658507254895228054357748170157274930150785958332652195229714469744343607952981913441750741954808025945342303741879393427031388915290183096340967245341690592627781971922501853401070511890904474938130338238011897908801893049455657953714901500408130004700569801339106645902578906823989938992366319193281783453196238154170667066615228304773856544862935962953570177916943029775503384858573666419617252744978032665303677154537577565549229797763942751656856720873409052907570710793539043239393517576392606480604809121001243232333500618223070202075166325511163747074339820958712160751044927839431156177265690093130624718416697871655912060768448275845858464270904212587073681646830902751253566882895186234314182145346794087744965062429695261969949895384592225088536880149863582838274263741056998020698547527507716243473597056745031303305705320153129202113664740852655534391453267695478276234502682030736912011935515030069833046617615741595741695269361205770023340804613781624074055254013026082930066129449202545826865112796252389304085997148902340384671844099120157044262662927115627863313492886417036261789041280385590475600126044306091290469758743697603428922003572332503845160247479385988814637484244353676080594650279031018902879801413151367483779879996375606292967005742053702923709946910998080163095345497252207797482464321854800504629493322799858114975863649576086157158130890260071345042734251330333106502546044450809598276304871473088102623172476858722601639374624344129220340889596626090258297323759324873327550225068171750755793414044819665326434705949470340154297779392229408070154042740896998125954437122290095815632215386031641050174324291282952423686295079715404683670141747251375365003471240413812326866024227549084073876247663345331067387734099261571455593024429050576316589926095287581205348274071359074844287618504490501135300181208304126207071593531843089847452234869584085139823805907727322488453040920342499411270240886496417684868779171482089741460040790849823805178301328951417265299636022626774290915124166428973011825118686410642203513341131061119135704640317306284889091338205110593587272398399748743007724996730486954822048905475859316377769441080530387932276895693193849595933562239932619962805462269654453195023478496544436926088344703413016210785326250604217892980668934531869593605300369634919461566428746984246181417356816558891554694610235151666891064843895942779542542406009986473431121356878979389150118328152500447923022855446406889752956381261150570198285400323113806252506980791460273306019198885180491178512684438174983776781471081003420581408999694174500446613563648390612762267857951755308944741424597362330346641204922760802712778555738616852616039866925982187078069156229852413026996336317044846957975296424344780262921260526243400627504030351639063165741024846504746524860105526084616909949268285696583548931650807744148630002773215471088195716531995168513873255794938155703581940733883649331690263073592441146638577783461247815213623970914655725677911883931466532277617163799156607669575965235477569287485993127602628356273611443703449238237011548073936082005773794770201820694000759745322055986692553577044467348734308151504257887039388848931847552713070667949071800897274011050626655630815676988462849709518516524171076051466128651487061275073881503895571535044627526969061112365391256774445279365386195637085085012833895022394048625955362204225670325089475215947079536814499619350100169320682626156905537300621481103745881210771358941783388196533370689471356843060197910772818971384041626291397454228796464804041477765538986083089555768520201037424741977362507025058835015072264172583852405792466357436398815130224558888444490259458150576108677345373778078123210392749285965517402899057291077236568910746575469873536102003101903756001739917537097110509627754292846297542537241105114187968140032267303251802995456524724134707604626803845434208357041906429740936040744488358176983608619821380519437023712514626152471163936905029489724179855529153001968064818690769456218728182732637156306635592870989867972860493808850285485044699733259461463292694195823530204744274930310958411910981295189441643566157140282583224822370205622709545453967019414030192016203936020898639977146110284359002212404073167932880702258166377198284033207807102636107602939248835864328715859142887140855248097243812810151364522979884877509764958189209610943342952331312028349750821369983010602303491318827738761818415995050437267878314132895906633043882001379863149470363229058347028637759686264329301726982887930448487814168338548396511135498692860003100972977326652306701850607606460670018978182151134565498234501396689342437826264024948422696602221919960422985296351050088273667571170263600489939558594930534904175842617516939169784407793396360379419267837836001875726004151970926172940330136229917404255823154737035623997882066521710926859520256441306108067135587083775796474757149540693035016164101290101043912367927370499828835373624317444049811877505522415359910544057189564207055046445489798838538323148686473296261226124811708873991497207197830845753428956365036073324793536008926760799664836222218701051300443222575439738853953237730380698373231551193329255131462300705115531807301776470019678574157177152841584836125763273991657442030394823209815756065487192578449635243190562618996738263509698485491956784709296686961715718364180058334344210482194289993839104061467256659223627784788983149117439956846070672152716501394372079557137840460615296721804425019752211159464718495933927240939814361929053918738356332953671786186332899665791296186363545057766759918848742021369064535750199624972121425302986632666035300691436182220923077914938608185505055307738637423453930107214133960491202333065522665231488376744103612854352613653657684802311242256683900163601906383244253412308867161203160421044213583945005415052662043106246516782899764550269343116927613543406873580455998129815601808810138965001977969255136284622093400056728955343781794928624493293863250900295655171894212175831476816818755066711484364804518869051540230036019309278220937216870515011119866422653740617706694707950046234702948587526587062291731584159625515265112876079459604529837261623768234487141387193929857254459975299317744223785914359579284735916990753537368803005442100869387565172008585927847708280801600363796397358488827767443250058481237400415329864655185839943647738177920089720272059312357144613468122613423125090716561278369979655290682082569027820439696910616691815119812205504752929332992974504514772262174721812048857661200254493033846417300617134001058162859496629039573622878606617972552858345387591200991939702285079618244143081823206159860800341063939359060106483682174044544215696834730411259198689161150955613208064895911799238882398154239972602992537459331699795698047828860814615107692527228129799761830884808224374506492396642692725765319164689443607981707093959868598700576056418345236120746595889518059403476803628038691377691820771725941432078081562045452232108425804542017087222754560253498112510287352383374735650639240029079854952728605204170721345464838350975173383612133500923927020761577060743395122253435067503797368743545402087276629675400949025375196515432060744814633361205557889620553141824823281125585811972997327250704654472235010537048505472203674323636709456311589966541553831848481442412153121186573214280489289612508938899226109194893920193290166131201222182049602054498794913688257172043882730927371512685649534138276012316476501449770844277261281852067962855161016979341066504210550604079070755026621496750853956890627216550115505722495481518738074704087594880158114512233197737942517713200251982626262253104239970470099482652076145744098570445199312387487455804500507329708197375035624573272578708492767257669232380958360730106305873119529097956364100519443945166905625810993149700982410897655906091940450038955770815539076930980583995652166081535887846895986357782707200748932742654586526809831832978098575648729656281581537167100207126811295974538900116051470931670950694478426299057917612779671252969510943205101941426561101591381915091248831071641823632227882506878338809486943171019547513957760195319841008875198344551585194442994066195466726119533602415825624205941657600748264968242813744124495939250054456843816864220175573909715525559572562862084851397856905208426191697097386481980048578219825638052579248856589979533479521229665421102602633710570340197513368650334350020695185796590561631840891772353726466099160363551548575623520152303152801113762469472685342852668052045535362155980467721671022521381891351768017516668853002248567721599527610553964040338468068589885975606054657819485996618201302277842165135149396270706909593127716753606726301187078097856326676422536618365601422634830886966461406928377860849357186325377434822241236694915524892564645604170429613445194582272754946950331303546660927552154223040824211740877907580175162825129962074723091096607547544936442120348785452266863327774666432722705735800183178828230192223346412987175533646421833275478198165164121679640273073618240331583214445900959257814808680042401478212942783432369043192976601859952564059413898011244873202415232525771410706808389752701187401424597754843088752551872201167175423573015867570195810978065276256543392390045056558230577550953933593382841436491287909985745843988955454034084322065822272883440309107274151534087244342565669319327948879938032387606833958556816824048817315069927532614870609312930852187996735770136381556795615778481598363448976885549037913276955209002799839602523937742942743991050747169766837668472979533088932831110582019051207854757262617476840141890812670908001968171122316788908306555711280521260756341125228733917736760240935698331054790268511005942847043725101585845695930525245642520520246224094262078332838885106732474251383042111221120056544116931262774893680145996832435375693956472546762979314865287508817647887052386222610218697768698115820299747385658027403420901685655479869870474318521584696679039195846609154234597691077666139153965660366870900616525674989851836733110761867363552698389797196923657955433307900917718714230396955301047477872188338604543860337354051519882570690098076163358076224457296380900742656105546695393635263644937174744217900305121816200835736921122861372593633021128572564204482165594249578241581145215858404510379361415656995887351379162159718255189611647265052678590926479551247753572885877199799607039127073017857397017593613733106045417726812493039367901878829785721383501912022048884189365271572020589410397332475703668004148237239016516841922662006601528478477394665766248457564041880912477657898512983446720601285716388437452735791788028828997232187138885836969482645867178431562820571003141329904945990132063264633338172772071494620717291309543770887853766218120273802259263100681522959780182294928663579346833826366334959285858464949105924002434878040241754782864981349322728009795051272270542715324791896648496693052314401663683359799286037871721849494886555655785082944804187930807935583186989020791934337581778549464769911039045093129214110778502270133480009642876124157595321970912926929798062274257818076610393960492269316629653435361946648450631669726517954870757436253681123723310682972556859841146543451280579987974135819240345511560202753561364091074284364664906392205397409108773059035136349842945013959043730592248284517189655898762251814127423780419977023482990722883193786111180496781945374357838479710176228992275577115142225090010900400072552655115776985833676352039677901975817990723908435817976908787381753140940170855903330046057910003814400989107829939688015331407354798117107120606813365845611589987333306122659658866139306536111402485269609033548018496553828116863008603640372332653071742827137686518300695441149634822450994646856221432945192211392872951157904859788305146016280051160429635237783760111470180581403672849340053282768495135570056628647802278481776967561895317558558253126743132760924966695672556251879882693178225116501605462824517852138307230733400410459901778778106996735034652883473417035562130219815084164759408507130184515201237479372734954343160421009058389028267111019667137442877018792752911974457967956057550131125755068218709637573303512889230204289941152409798094883748645695326717929567898803250316236764218091855670830140197201631785747988455472785923468774379843366998237908955928288670123803417970338681981104782691718321298220989755474730689212086188501920794929826536232608340409614390451875742592843773987684584372246110710019996501682323207876044957951577173759418602463651237778756434785733034302476548791796144006567723317064042438224948960537010313072026884689941105028665086769243087114798068905310953452700025467437317885658592279899759107769474824837590764810066473772753587150816938663884535770065128577593224465264995567506366760179091481568992057730220700747083080092642638416739730270648811740015282144371502240503005030803791022782912508909388090197301495230481537211521243082923825721760555542583839400473907778456999638761743278062886732462534887789902985153530450185153041681828443227989206375757163088037282448888252514829563966321499421611907919873293518803058352633258522266007068131840049195834004328503331394655092066049761376488441127863476530344578814133208317125102817114748818024862417445340893460144391200995255578661884830221050702963363063976619246493571169581790446761610379340174021860005243641143699952026737523386438311796910028806723403067962084621499703921161636341125493546019627715321941331353753463530221234634178379586171574170309094714924714930231014546621457146035179002590084394790226031779081265974141521670472075308406181440268580544245885927102372847559206781771765647034873207062079140580097154353971759581906107106859646626628451410026521994481738447220975089019936483998947641210957050628820428149793270399910366964836077768515897891334357319346575708262812921415445528728356362906813248511521861483478683083769750891372309042130105217924436484878111670853167698882575122296387245161411571677373163383303609726359990750744973713140333292642110231407028936736497901068819239873223633173605924849958004010316257594775469143395014539218199171295333232503924800548522182836360545294433696198447310981654291281297458463774643051368520020882737724840562158955636585128042066069288298263481123761206682216521974354660422608634304230704913573397877587063999500731331339714040840674911620325740541797688611265188815002203550626782067609195047745990356970741241256284253471758723771324143460997792509727172082680692975476947873016358297912097618114471782352936029286052964926637041667030588196763603001565681560411658324308247337255290441938211514921873254795675855392979153585387762517428934075877990919160007149566497237625289229127902515031762134420502012338312150023894289537539198119639932864791486673368242122316451390156690559011943945311719337257768915054678159148924408144902948822839764221531723560714472451065208145170458570489656102213091970010315685484744800545813095377797846960065999305773378979411329652860104107986947053795440839241022290045638901564300511003340432351628646119304173860186853907284800492415655596136066905382904588093173938548890280296896581057743338613121108149889709043970536271462013333175848980555814554090875908506945406140960607976939370993211203181151275944775965434767002323934063533012387793378627248492103799088160657677406862034548613471180514300937380626269784073670101417955711872155963967710443419747035647582682193653269071017703880111290213395596524649573890765672023254208044952968803695200457849452819301431368430199162279633464104789776224011712899723701624971782728826301080506791292984058510036994135302183979197545381544351482964239413609012458080530585292923089950366855427729962139190619293428830211976796654852926635761013221036022024912561949231411430433643130862598951599608253176470766521195001555036989795756255941330821409549154519604980569040877377732053776853758773350274293281421631221703755538853122094878843724906184860824949960817752114918298053870579393691165725164476611688773811216676578548966626695584179252183654042819549956848420569196962925147995207782132804382271894316104342364022577281942777175854173732210666504203892057745115501727141193956480243007550353851146095435731590487154793737723023664345337097391197297541838908603364049551743095300034566286995634745882939249561620868200941460324209417163854833860751096389887381604013558592821489108924314614179131239233739483110791969446796264000230833245901666327704222487881070723140378819716521055791672748565800074783333748254498614310257483740476927535181113330582912730690342394514040457368520198065405000288271797216068698830203358173925132397219881850035000682343152915951944815653761608535674432062278582447089696988729254782906147047044449387469651774094226334141738959959691366181082800704206327519333120398957449818886499863972379784725655658002634724672489262955694318664399184901825210593101062982082066368672991550674735962375247641433638350299295128288865760321532277029295291137081164409907439885558372993821316515289964854428616163739871991509547882330049163536799744579416346815950621550375196649778992062979641778975064751479346836359599135828534898087669046220133589354020817854450802805567730678457769475974093438223885841294712844344626156754654372137221476566685978594809297516769629662170075945814510599705619917359183729891894739939769320155979081725017137697099813685930263176953615981781399067708838474527190910280727222797428570021492845730871505743742255540998541787112580425097829660378733458935027477069512954887509601046876624692568717753352927710738475676841820967536538379778902789442992588640880382073457814602352664416069746698132733000209631300184067654462163075150662663020513904161324331430741275656313107529373567573736761487224671769850890270510092382130262045113510378579895159045902532968994497226302089504080976646104384081725248893017090440525807625318562545808187756288513577306941052917937498540342244041239471716324798815933769803446198368765739254063435597686721654750275469187696888827527053004960021236911513604569094388318620653416732378659325170635480406073508869122954381071898752119992529028460158128588621588216009560907591651275031133884596676980487099465761372474347506302252990832163242760383479517771804670346771832167518617648839016823422807244019797046198498840868036486019044111380079991481303760711851657172025519902561011665541319655550589982291628283328609544534169891182317481784274400632739549455058488953637415959803136391608862841255131594627745729244441341466942803384011682090213771901845323464523179622143245217148565581350420472019402277733977913318058366446784993236027183752157120627838827659012418412591982081837180199367731487347891681462737235714779048420537964635713110547258582343697560710199429747060059672186174586311332480436039998803516159991367840704763864035928303289089011246006763267884949245881336048270044717434988832861100812404013859299264528801301324203714116941906358780438917662150913359525444866760209914590259131383622991484542220232442425072437729448424819876730617608320571698338087846620243430201569642904768714964065766506091242098555314010480561620783713725707880454196469745562683377584921694077599169459226444874548369026995613794827980733148042692228053941120760224655928016513543287324941264766941220149875243908402202438990026171477508568223792681939199328383163270176052663980832710142494014062086585911105282663007508698484290228595190459677483121006519195369501257632955192094776252295021884693484059712396167140355247281108763081889492736750909398314850730931298661010818119974739607206617560085588400005837154934783952766981962548985162172586654608549054046883061363728455407068679834167114758218906187604306831527108163320023317247151295101625152779038071817348984402068946167393355536810988882278778139478271015754909923548947311208876398843142427493452085685264599905848785358879406085825039427261665917109870928294975619258981860455632874973853907559683120524440532354213685778654335793336073573204369870377069021970181038143848298558064692223416749386100443987981020591300428895199656943574228477097268040100536543137110304601610971126857693207277907144783976852260238847626247205489805816583590789645958084230252075342799485198706258520954029263525581496936807588540461154871762467258714166439614494413972713983594095222653147629684302072384599585773135850939788396371280585615096717612887566852735459403765975919637396186177583048088802793615596244776838298442632801094812904604148747836006214510732915162903097999536588985510815674826873113803880041644242187742334740222896142484966705564678265881018920326993929760870360870858854028869797079286513238838853348761267246325994775538477010170087321323843443536421103278462943948881633369970094480889070185872507486419521550006905841256839530499611355961618866312923286028189852111416047254973762914787636632138391893792529105389196643454124399088797074996652424331298624850165007255312274545546008811418000626472000751742559368500594479977293900349971512416948960439406492185133550737962508072769460947099071365302492568379895576871070047980163577645867367777796395324791460451876206833759750856227718103710272568801989057382252331139372967202486281461624446280002021777740840740085435098203199963023517809241561219333632504857162771498884356908170880679165320589791157704061494025881176644318610616548773557564959642231644186783345460710974330281805199516583947801183022261881383979327055439161459846939382192074042160195853455920590408004082550911597416251597799463637169425148156446022428351637330990430807514448900652280194879261578557619895790987091657834301075739626173763274935821422950340444347243024118346097352393108090381189484316189556053079635633002249353699000366743633531499624082412904430750277082527357209738772702958810372559230018383941747880798664459616421570210829242562469527252055959101746769531804150307047644472674441552820272269949743409241458402891287212980592373805523911351242576445143423923419655078564520406036837693392187255770637450110901555709962648140974805874365627850626815510534668691402546779706082622952890996852864775008509402720055843342386313358755672488720139213534249192346859493270634289644753244427295847697579301106435855651085676900799005555630739267374126950516246634292214041653802331118574435580944877904559943234195390407165150607575723637574307711860256296277679284041957057874138527578478851909283227648873865535195956451806242207364685774283196235061648399582341444315186985599107855581625522492162557111673459450694301047808691243732076080253026417639526977249555012660676010380392246707868577107805153565080701394272383251817871627873690882114114431855303639274458761798146656829657498222544375952307774873501982069628683927008737758377878069304854381805602446078321237941914383772277033918616154055135216678052273818968976843071611098925887535608189512917238234482652281706345874994857780596261346093727688027109732296367412194201112843955833310546141400104967927185592758633539514674957278565755823985281572700530012699444503832910830402088386440870883817275562597383203781685499011421349542463148930735242912105017916908689493741105732722082133155919111651909987582399780807625443361059860256828115770802694419302387703313281463086832291232131203929065366555021070307256940133554786178340765906325452141997359497768089440772316210747502971289447246981561481556745954489619904492542078209483157286003600543142997089072604742163320430212241674238760982931046976722953501853312656644397752160292945911223061276836877516933165506148624645815189272664346867017896536683535684101928945945193667696270725769214721007580980316199947316435823922988066672019984687894489041484696199114716488792246131141461406254050713632591873134648765492657981103815949018930894083553985863037871759233587008501909584326101798078262425837919854945646411288574593351074291442041123023692996552554395315016889056233982865201494405165539908824900195213914221051865879680105761834498848729114590640756846279546584558350685807013248781924298449021413098997612609787316461853499646409431057386278627746220566857640198312896502309826444028258247728779879422481232311299653413882909292254611053954235292343682355507937339726338167165916810999178913843200089344347993532952460125255178216324820678107767245983546181561406506482996312886652260151468541873458098773819280345921767363488415628432806833451565366236951126073683920975336024387072376160840475177160430034126281588068274779859126942125086236214228885301599098877354070729362685788324675560582889804963034508001043863884321407924674070937369840917393844057530726462409444871425803709512605025422251237712609701129919434350605420108468505359816640471328718878090294750803656801641653045172671177794948388361691054473682475827934119820104327080038903113496181742016402109720210781670596829546757763201108065422156670769005177513373504132325931335841312794137388615281878143402848288115006798467378854361300023744723115706132251737732782757851145488231865930561906665697624619320366241239287512975403341638533821509711716601496048588024395545776683398990291642427141207184624199585119343420558668544637388944361523300452966972284103559711278932511766825558409765721902615566505592924906926096682404849076700865546391394154329040098387261385928025305989851803965810275944840905810961913424045943672665407519801292438279004811457668920466573303557940264948385247629815114787593464671630958912180583428889004726302776901224944416872654977362302943136558960050341017237115132712510691898517005776766006308258383027697131103468170658177547272203298049785620034968750435868823324393103608002622434449826846486307094220430829511983399014164919092112665832718427428577651806129644104880748904054474347594469096928831539007609130864024553404839726308767699976074765153737968811357612988300477907380973604090383491497019845221238886378962570180987300974492945229975224706718179760778060308132515260155594082752355518831581883975623781951616307991388884353500068617675672247984633474581389270379183409790149227513956756152583125588510191938765173705280280029158951884263069141635563709185192747084763747091926315244791049305985666570181485184558995141113383046278148585145074982918024456275328960212154161533934100574713073014892532750872688728274615179007134992938934205887309723297621766046800787245766570942994724754604670011126641792391091249495508433310318894978854604073547412906453968716846208931166138008122758826334178758068642374165090444632748871780819420374864473072668430144329209320479211205480631226391672223439300620774186886427596975017286616962689734885550768741469815539314885328317429245304389792054749100076436339201449719183002383686221941854012245395691233763734234153915502963073772486508409977478530521627566528481204177095851079133359499561128986217795633680535453900980708062375071030505883380499434247236379290040757360813084606650567930238318625440468448186559291658152813135257301428297407773066465613783568618266786634086632643802922958536555605679944369411038237171855430913175562270026632962919440122223256921039067102826907555786833879692414157859562268224659310265717473993787804182028952192575066519320408244305236346291859813567723063095520215684656055434236851949356433231624177017959592596479087213142829346665171584714478166427298626496109244953025931638707093326552307731192851011976718175133804703581477743451642985399593071857115832332382380986205104726284647273064527679866012242706670528960939590714107463227772908074688576625641176530564040806298900292628916703224443093600966783281736368262888371717796807281428100532829524110924045699095857435454927157157840769907785272653010376661613297868098431656012902149131259296716811739582857821021490045554487853384879885948682023485411477861627305598355760270012031597188730383508461213452115646071285153773816726520017199542038429286880396691544428012999037857753085833782109117157572260283535831469818526455024964041738298838727578019536078225094523039786282713555863022349499107999242117866187218716281093140006014005896153617640857130423493656319731163927630574721630460616068290806890044269357524723484997685317153364410913471675192795073532412128385886716580554786583666858493654867787054700055321155774829308358841050264284776498725164325854538842683444515752214666131287675079203768233232443961403343337185187637715976522506156251847526436579428536168237249140830825113444013609308206774013042000233980649256572666633678170774526277796513956692032045121978273774665774010377219125762799680342282062390909813797087042179645698528269244907159237641963864904567826602714723470612139922719613542936057991250193312700392268520479771791599602503882024283468337245973909349963365172425242619699497186262181489459285193089921516918075255699057374500158050171503660880913784280891598871930563453732985091504033608276955690922612542855333592086875661913432829516574238407240795539361140785468513710602895916013849444181794938042342549730801536451314640423598123876170256176603316651700139373901925112704226933951964231741976638805393011716942636664368801306229343399805614039502661084261989738756823029597816313663096620094550662739928639527737348814310607217607997517857626767104334024099650379110075221657871345002267355864074933905260400647679334480753648939999950014576817348954709696410082176846203075022046185212375387101523821607754909502722156910944136024951321590670033625885284047626615677293464394866423334096786031626597391609090638749446335463027472572985811594908643190403990638972030972915807995175603834352140358525939321502462944775049987618424425119021607912079280808276021530837432122668762082967829306183361395276365454741378522224912009770885686879033505578519161203158437866276251894873523614920966361696605144323357894025886103901378615031450984873027534396558402144106349742667618036024790261648434634296963031186652693923363701088738262808481221645452964489427424286617168359700304141752709409109869550695283281654845690771938341355980464824879080438896941871203825663581199503854214293711220724367581437028320280471806609938482150864771383909505566793937295964359640036935814382607763886707633210690565152197979034332485108176352596272627015213752164192939120341607697217349407153736193473653998362558823679582133268798706506903846282584555695461672564055952851205237827846162979958429686292955607763334174488266661757784869341450229641430566164531335436909532215601646989281642487667767051183045201963068839592701257278697071089135285274436961095628636457573658600830900790531610210398724241573868280359345887194746660529051732648934491104813136338838840837448436786270073722803276989439259937612504610466490684319000942517575887359548000070631220423871751849413053770091808120694427669058794318667671327268929953150515637366575697223653496695795270209335572882517015631294086528924802594946517930957001642127883429218046712538297534639919584147087793243564087761922446577920189130853537154268712692513762285293861296698202771611628623047550651916219344465074454683799123326813410667965060790607175606052195997221219406446044637827066610453862612807114131152125099017897488566094208394780314799043693465279821966633387335428494427644792469596186255439396107100702421995948412445173776182528326596248603565537630256272910149969542301656389081053131903236159739976160955973428969089306005370141368126485981948395777623969863779088700024066502761739143511130500397680640781173127978383822568078193384922389116857806121587061473156763107962296446272477122131783069837460645684204379488956443453388649048002273033629293737711900589942168025866016736070798796468587164725939695309283179350532023003951347183154434660963981792812502119694646133259894519487943143784467181257554858592309501739916100743122923447541406369264956416367410253340240854788387319091277944854584217545565244376770129216157262671318639391269014740888096769652891729015757555112818242789840558192151548629753787895942778719617334754332110378575954033112319683451727304880526901797216188160631964531206440943768236296953341123337893338713872343947915901858095526875054280546095795790489540698830975054714668209816944348628607375546779091442252455058188779581835350950030467154128872358642271753416531033151898418898436119051989598709602570214747190869110934837033714218329367603661377366605194362749425502856284012235733248117183750655764146072517640800450122544295386538333817420853557003132567474451265779438353724230816386376943938181156506405844928484894180254057529825787514648414691333973944335193608441992613601157398330665144276110018657682809130632086834397789003419292624895011601747466653878496705820135645316858890782979914921774012190555875969554337393590578308559780914357450212326949476664063350578413333788449108171006336164895102168331105529289758332214602522406311976704930099716307267742569270857681011987808461015803090684380318782436392960846105098606937989558205978188815612775086528765447276547553383593772841697762183784341581355254570409677722624162299010195823033878943065477344432590544550265939037427815242752741753954406903004475196579185017423184671939615494298192382023057286529940611667810500108110571926793330955403318392884639867723412707690104599876435560608229121341813001750200317331127848891422530215843490253684450223464247989677424372080959330720591022026868014844044152120802343735948932707204880059833692755241315536867026349006811428132465858096475557497836890820841210725801163729740996012613766248724595011410522851963357932628665587714717793648038113444000051694787519012753499528922809678672136799495928641882621082768897941537141031308997899688740989415988499521069007686961314611995048749311498636273041527010356715590938507846509497053026118264468808835563531434520080950703531128836501711565786289780182751253768674370439876379200672103363236945016090788872801029844314127600315536593023807209866954926627096604821042229824411068459967804024269318959055805105448197428303963797197873951290186077627908293031067570405943370948932755407020108989157235023479398136503794348628813881883143928785042601905261610164798744203012825677265925164121675915067331744873373385941128345470302611959794823097678453200320942625814321476015129558420019434898563205727676196005470844404328546673758186914415272084132941803076951448006356249858712329227786095406073234632946798977745145757839072379924037274041734634391057151451918162562012661131431319579592732335027650157103962731165464646386460568350370984679276998477200538326954263729161766578996657001990897005195211342050372756143181384802605601850336436859219129337283725893190448153826509721999051882991314539890493583509495153417308234782517419636800202962071466942570919241283033525425935758445674333744694960021468019033975664696262889133257957121998793118851125575222796386768298882564031213916323869899310350001289084931242553315171358533726148649338385791145084728619107211680924813508880275341608404374697200174251406354733689118226850769624755421317363064210413203597597005811580676719897848742394429598291474758259096797844783312482161667821395386544163182133906231747395622788559080456331282590620408448780524297422577121903777980587161071745103797084538853412555784792156316846214384856079730422376654390331155074372104959095310216629373995514259915204414375075244042950693592251656830511798764404177715498851727577402209490374669186727820999317271423717335949961401861134008602713139873125282484295828383885920642665720589467164003517073234055976915242921215439247758674103864048664760185073002802511733137310202147528481771630332593697925479448730208945796715840688251450073657723643405508852729631944678304999762110741358625265155247964362459414882016715524659412339132848318177474793007860714860068021721807075327499213167345186309106799098033383604904287920483067082326660191616931006055752002930355617656238056486128643419460482707727329275517307018411130198332277703643267400691866046952173030940340674110169657713349121139543449583274354042210511239324681161283492840651471078865874353790835723400850393309728384265847748406020538698071532415597666263962847935446713265178871831358338138061434435464449235551073296754336383063691752043415429816756086970989139879668951039006919724697115413014147806421266787351976044140904555813590085024319454372817149050420689359157687804616952266337759000579055637390953702676320254684338276320492671184900321483648132417354574561841935889973858014891090030142640888365859481591352119370585801917620832226708056928705663109895171770888737774918187990983739618689342464475249878815272393582333472681081204746960986604955709751912843022741843464502369221555765253681679838745525789998979529995453914910943841190668998325964664294020234432681140551001479913373366130346942266761688801044621480829744487121699707180289929827622555625486470472616110995588581315406728781738750006419305760839904740137258026834422249042687607907901194962517236798052916649537509519671185732658030574457322158253958926932453823021221451631067508571013756029011009632386835157264332932940308492727787309654436250220011802081127533864627063491123599106272500496535478178282156875289465001439164187499236517172270415872408133956497852592232127285660031355779019225518233581890729825914191654523143811736154756676671973560430787730023633040848303001017930436318191097880428393838203417146744994186147112437398924977315125187000662709249034640575989848538758778968326088306792563957408556112911142717349388229689762697426311677165178366918325274728100765615527975011705229577123549227398002363168126587175272640539591451733954440398790567152152486661907359993974455092074379237840695581702335457590874930778749525403430452316408544950378887734810017461174279143877317272481671166904384695937967097277233146584172774575582277994942368836818355222832107556000612426353413262657337041925486230174190394365940072414888835498711147762788211440012463948922077244947338963932364413271337729207974291520332538478833098946633544364303166673548507679829124173916070718125342481066107990321043034177768532417346038083236206541256353527026948083254847412289776013043815375064136585587199227092294277709746715934197427960549686793472381991274236428774593199539627998927172985426115511697603145689959073568906897580854090599315976463393697163270867913870053096350630176477829761089446138287837617423690791222316391941807256809449443144889292383546690856985452239347737699719925187609839364093281499841174609490374374862429317754575542038865239234948634783461640331631186493112922078535448510150357136349647996697710665564748676156751854663143118410083456969153431141639783287830133533728007334475236537939534876626839663175548092590119319789356957315668794502064650349464409360493912285255474227740917495766015641049091753650171866901995186042116968104296248680540945340424370581891816054281879722410567669256957570954240367231523681009729879470990047152847377239991686943451152808002973811673378191185492065236240315709954286547587702769791993474527414797390973329788428308317673200612967245336018898664869101289889174134810135155739092570100600654411334340596474368308875500341759947875855824043183044279317903244831714459875182256014467726927652007869705476945669007586912298772929875988623356242626876313820522819229580855650575178653160115421145784709854048091459583678755244799688726750128250407858589272149809794677993622204767803467834562161481822819202107275513996337324616971184754715612445408908878619324179919950951514907425870835476307723771949338737999028969883880734282523561551065786975663526370355454875814644007324492251536899933302240273498957905223953468794244602319822805791841815137927528672878018779977881649599050738013104145983839444609260622597806055404859836044406995143001838517163714561120326687158835866477265699473141824853086430238724914683806284927485684721571668019395166627784713420684156892704633142423831205581159535602400031833690177176778603919964146379599473037585676031780650938506814484354453824280240198488788530976274856779231923657802707907873293880554936806367885022870192328484744605180345587660410093626156832026969901583076180133470864930973953690683979733325331274307669230574433402922883273094462644551451663345847672102936762980199799756583198196574939162568715691341395580485134444317054548291036590422923127853644951648172162333619929032519204885783480014807212621445531103515380818273391578560067553592351394438673695218613829612325972382381740305095892925031434713987516071396623386578398690321169430374856381082042207650996293142398423652014805032296315309722398281404264683397316275315358440962065239262523437116737457917585546243871580167249325381670957827120766796130183066245464085622754758539176769844904741016824421698308323257971945148870839415420086638170891033673633273166367057973681839779828415664889276330821550714239306419700427535492480975507336114597400642471355811858558073190962752842739656811936322405067868112460441595050500553980245053155678280270301125968859201573920567824734581876686682575070172050474436012392078820836448744565626141825815645021448094660923730870134150309151211519322507000109114136412299784499354540610035265695090273414408075554318973295275965851254923616488812143506688588604898486090671300887927415266784011323330981743857527581493768150861321063748512438034532954606221504406775019736293548152628800516593536096074654182654843937374534497535782442224620811497845486621475041329048277933342783401878142634367342092436802502178212804451528014321297174091810681390807028393590087960685354964903931689472134030974127707028505439628871677082143607328431521266297547878705212306535899073510690520093268541044551845604744465286383611933668927285852752838960600025251349368533530543817744297684592584700635533085872655883587289398868724790325665058653846471436559637115642424557576422724308555657046690397248094340953486837845190449939179507007877113352306049015038922956542712180945622425942484135783624551284709264415987763360338221542900251983598474749760129535830518734817232092266715740334847740592381746058082125526704264507538100083824712631035734300616748608258790679251544613670515665536512038765799535262792885258790279827127142106704115205461161708971392639665267923214387285053682270887916330330904139453210036177536355875443201269400504904207311339194568306568452121486552769923628160999095741989759195218762091955646147189542304392131550802825040288995520435740463399165099236137591667364844189882719558964400497540536855554943638240667111795304942088169819755800512007778110107638655683781921449326325353700020539942131983428736188877812196487324865245135061975550504036488262363073940443696232104878140160128016376786883864685609140631903739826809233377562960156694047159897224190776316292676101624107381498067612941798086244171445752619262409366881512032945431579466941178381146807483885552772779331843149956590377131470616988352223208617650043916837546262733500784227703655749217601061494473915145132757876849664911040196286353732581653543322670468030204739799303343106448421594895317733063904556130391105535537874682298365849116915171139059686229386160516848486253705591018833655093065780857578458848023920772664490258222803262696549478209649348485459043517126939190701823389477885517727024749547756886079677585214121175915088659572409218983192664178728560570614638904895410944177334634215257562948817904266804197269374614520898529172055668809801873436315265870876039776067870816905108361498442422829136218225664076307446656225103279776132835434312870392930983911799088080037791539498767649697381204645976232909491240584501210668208706733722321012290763879973845463033680995705876663237979898245592363986266216411203259750245159718743384447061198842808881829873311882693227692985853553474986596901048473203027569472711818100409805748042195764215530960595063334756587575110236930376900679999932963660410598239624748415401561307042110005510567887581482844701715851075347404595083738160966888879714055941648430084051308037852380052603202397093997290416453669788482218074785369050146532687711553698805798234592340924892987318102070616898863616133710334590351715941241552568497747814516143884894344868120918917859817033167912815325963686515335135752991947645892955476269358279510039037187973351740474103124399677981723768446214704147823809939030899347248769197694480731724492545650220069753740063784861030910582024626696696895029393317414572717447819468587541468377503528405338838295483229681976033214193597547987199347989420084382213789840934040395572388773145034502417762781466370658609248210312752605384598330110871237862365051824948710665145329205649356613646222893803303974309303940274464994111352273001973985310682714498058068934157346128487259254979602287073076090463894112896882401777319292606095773697198612272563742238550461075831834177155226637683579719520931011793462245912247071922213886185869405498034284642760259826029359869842057297344451568193851602453139120967427508215645250431816677730781857654171184338135789217635775019306531447212274503716733264362713163403420482414538863089095596007053302003169645703522551678810004632697952712894545114840853796238943958997479751545800932652189122114707950605424275121146940730954820242464985093214318060490817526204535775473277854122876526017296830859220636209258196404706487885004171610149698127779141508696707574541367586519153779612267669504749290170901233023592240928804826875641947050675136871107581382792481085152931847670288767466798737609448588867510228757487619988857519108030085316798682561866328580386742080817525788415246975007407280220694615120327174416377332597263426029749692330959741880693204033048158539199713886523998317051261845078516554634602997454161558239247906296828170492322929797221774274061561169303042531089267841527064878535479578900445902504100633697959049398074671037401837624852083529150320335919765788433218736500753361190683056691692743569300630935756350437743405016692736121860775560368739716275858222008337524930087150298640933276664005258781313513851349184786456717948779638739937699035466708574189584627403491102056335696367050846355432650654001607658362671566641453930498983753373721471682946444986618312941741277512770366579620476167796892803840730413145463271327750180926185412675050446352436552121858336506923440090908507702733109456203115943097015741318706427608298733946999747968765205980373309696085803249359847130554737285296738784366822966962838995887667748495325030605520787384737811587113121422154529400869047065617019279365397642029682456037962110875238002630927464386568596470696467587689140129874512751629749652308044369993174244873866497112723560714967053867740839406486215148831678864734710174782158744807947525057702543358717860942043623393518486732688938340343548424299905132826617555460926913089894675174213163272148310862679723347724184737715284949705014264347262862260469088940117707878269601120888111481853674058130816858997246209403789522540502114258535755947404677187807823671050755212307430529581942103373331618090303286953331479394823592935878505363183336674852206527752146562608805214221044129860277550356805311848356883874741602734975467806050135130842148986331984078483719868565041583111653192999611040936361581471556632200340494973211260460151991351438666459284173361669109706497661743575305105175821175508822714111055737733411745484354503620144617009762672950137496787429116218610036484455623453600833713683756454948761857328291305737995327957522996866816772755164000317064873674959193668773667582198707980989828222046724599977687012521598588215520286049731200036991218257464430882883654125018159932727599364239952819710376893108623385886936498695647560051336779999253361581450604472482261021010882381146274794294586653188513033044190455129715233016894804172878196506141282605953725306493695799024524719246431994498200521950314694724814421977367324478011627219895859189921486572007332365849471687324190153885233678719469155078087851789116834070370331780268807121552343775157757288618821435691422022007707608403935199442969012584794345169264033242283358291058611751596473353946878390208449871368839700050430206443304042540029435979232422072335084274182195448498445154042009805850646213064867354131868874000147765818577984890185264880317499609601883248996773665385238963349639648264735949618772143605516128574886605281701493252955597581168386857143241750353006243625230777602256573128347075491273521105545047425276595054552889234878102819579781314857659788772968376821642719657184117287263448826176431960186216490046510333785778360325922150277421555433371774443803319082968212646670873666371167740203667174152465414827032496519066610450870928500925857147072878740239027160856442870173909234172188149009321970840267823379215468163112611300540296112828047854928374501906134517803225062542405127796348965275629900644519172729571654917407169366420907282427303172388538474358982416838606440808071864065687583116185646513742812360368914301203836199507083954272132258713989024312631727867970961486213674219861536085435661969663087121388071893496600624498081071145814750802467498175576457577900073196978041410466064964633213516004182040738753653649375211214702904245658243791833295334635074422085126982357323502446791917049332201571485332378225048325396860231962146432659538648166330092563220477594323946871851557850734460134019679101577744483669035741461985918913375899387109314835990391894996886534125039035442728404431557989241824253482121166698757564958552415583127961878605167795288442770671261652056119833861970038723639960441785492151661823615893141753526656737725089686887903589781228330330534745221459324407966669359118987208369749385674927234030124428802588216925586127579616283174238470060105910786113696619165741724311737256542539957472833659299908982157740026504649752983692748201529511035083253361350837600046688348264465344333597327438046708591813204524851474086351198683048364499553453795471242617599131561993871787413747830715735954901058536902975850611116122688205473846703914424705814141886686136991173149424123915680876153909573795704065640534520899950760033885179762372763010926755576960894772619625092589252928399635469413285900524382078844049574790996447258632277513187622809600507848693416015473827795628119018150513246275930987658660074875527071076503708141473798457101641061122791931335425861247687426318241647772115795914852366505187440074737750442452877280138062098722706355769350559274465764715720531121741460490796512999059697590102795934378907771101539466137601663724972058246115685945699297892670322599412385363024858553144619023426930951602525996330542877499602469244815746798117787032800631178016286508133641046740296130834039199085170038801511652246507874235237463584029960594990372079274890847480249089017375509339056547940007171003721643613859747446424951869890275407000718457373279712073286471714942693933501566469037411643145908998656766093433322809821703279264295312786782671339692228601056731513126154849688314627793530126975512281307266067647360042935968907903895636292494639076540755339822036858181219626284350660383518425756332090189023941473589770674064696530982695394004958293449651656711986099337246146189498845548433908953998937235631669906358033999745959603758701646008008823621869951283374106543164361484710294739575247048323549653758656561875121916269872904887362934766132172837333744263730340015553015976232142898441252827499621365438341379633587570744680107385394119156589651898824920442846254805545192594814141644575973802506041688166444896926153564115722742515159005417711834547557892680322997072131791221572250234181172703766056509794519208814504378647561311169044576869296123037158260085787374850174958253521001197827218694968690649602677830288210222751096920918850234183699213846296592609626434632347439472738115346929380970507720871988859622075014106748805287641729919743458921034996171641881990382735903295584644493868028296804979185911286070993556361969571924320309878052582124527479117890176905149885982319758812502146443103341135400522637173741549367809639600108550768760886097710261352770709002916650398574229301345689478343490175421411550249250821244824603738710950721363290539860992435199236704090712230470590451084303084181390328410569997881314979179278436582443050792479152300913352238564827709030648136264441526676559476372899723937102695725735749888376344826392324158947848880203809332571940312676897055473871052087723855540127546478183191776636222289646904660624678144962266171219439313600291410589080287275824755420024437588066551131410432947337439970995871175886301742368199402902576541475820130940213986668774840453101868132858156320885077696276464232631618287132910888292939670843952686420099625961801756979391087439921706835416097583984319804746409436865498823931555536724021031522814065444455177383896354519764269916192800926733867888227889703487836199439137340834050922597504650457874420552667905065665750731564344696235292235795763488329471479839183218629268496415267378038450410247383977214565594879430623838463728502788913016395515280184102751422880480624981782426413669819403815713939980252262888592215373094662147571119319783146489974867554893630994119282347777818288461522649419171293386488751320130713799176502463605456626005043257392127493568115764311188471953267351671747550584075912531775190875221539423981136993426571446853695930838547952751340122865041711479997173098463534668429355551390972370356503286420697792885627670660830876869074626515380709536622054461004126050391276166158475193690722299412892324400706628795066099738349115620537324021909930434779904351276369345310082152643904569502969733728261908493046024606563957410371527293868789516911389895986884222464419592499610555769741086199960656764381082142481205707299725256438898744200611850879818118659950610297729686047798185110459404167598420672079045815382647564520489262054334184128780379184125799669407354526833810595824954199563493460177754066577997559913463526997560684294990492184936634441332716413504232229480541423761075663581016695058305322654963582069586212049853407714693419327509776093646298433331108160061369704816296108782763554859462916901416575323387511281286015553642766969888228842367936147957521961582987363492397508671090840046995101190385800134198924178866120889556829814760003549633301094836686967827359636378502682821063511551374660340467295976951986956478937106218272317377144377049226209166038148528736556779324593847610071787502770584932617946246590514647022859214857913176817037609334194428920715699213300331704586084341045408010578272829671944139571349020486048258376525109223199311391586325133996989338651883972482587931712432023184851272128944641533346279591750824975517351695596496219858702801992682898096517565694034510318361232267477076865400581583615712375627654502658753070684769119339508207297258464009548618864837033247228800103765616227218308985593827575072242402541368997641909042936886067589792043960905859530882686674231533167567858515839198463332034051601831723129609282783686910069492340915386493516261407434383787353789437073268874979983878629207199123516531951254119306964627195866171942713840912658386601303573277654084955386178787043932074801438339549224251423430963963825376483453784662527937808559529214160405476533967908271466968323669197226266232717883448302831276159845919065627738645075576587099083857193819762204352153279316274655524548378612537336304537476732542954747605251845583891499333929563921114246643390518316481939777889220347774639342766341431836642226399977056018725636005708942266461301321013763448503571752066920720657143630360338674980564509586580066203526894386687291156536973838976414906163468222388664372311827958088678421923849856545747049281082522577318095901411045921809795864113182415210078761300647025487985254048515782174625242105804093673598306206033728892802319232950703867901735161714114493306522548891933879858791798826434667023323564156715376653302986812429705920564104372921790785362208792517246998952338649244998785299039497490369431521131503016013680094817134585172354475599459492343854695579436853050548803658329608046766642317773114127171487908404290073741442406194928955997786349306397426987723298146638670884328127521467003894527651369690200591308440131852570219002194948158712833215267144931188876753010026249631275504696084345586280575165289984472608358015422590593764616579928251235112051027333296500395218390751609684898554947299351767462339512034483988493193869467023974226945487544286629339991224468906181071603545940082569649299347009165299580386943766021330927987106105612572357170839557499834247849083117773015065682964299954712551830222465800259824463295466315943212706590062593210145429676397352815313403466988418920349058420915158895920521259575644023088251624382206265421388572699107925375320437887422165070527073168841561445048918188888520376438625994059316776673731598810958262666875121784656010560056273626774335480963155532833724975700388466659630553106588203556396676937190366193340318799296409085107919977004871468671292192898681021265796670417649378715668706471767222814150539749541622318202994011861115063239746728573421732091133470127353714576092336023059403998817800856394803238604135599866272985031152005975864257305853526321625011087455034622683083094156499636412507970791592876027151679331686963453024730251975647780837789995164534373084110593025342040341361596718441637801805101582465450946129868630140339330689917075250362346376478992517849196023178969863918633524976133939614642292539571862894308885163910310564676614932889433559571344440831739508382393550452321640827336269971848206362923962486345120235044624992527544939188523955860390334595780160204119487950332668546503475983854360649594613469342311696692885684291392931721506959400851810633174352941585351651631251684373975585795307204062985775536101036380738170108866392789905139664781565860248941261957101348271233211106949324158163042966228168150307954656597548668599323394741359766436182428806218033317453954490237407482789438680842687964711803088233448631495488965359188799460945042878754063121570857124153907106370322201019698716195238021537873333281628300563362216132911034771758325349729585198087698678141627316316384797244511150515066719026787196506668129429835422249350916756294236758286149996482121168547744305913167068885949697711090968331349472466833994961154685792798114686629364042342690366816998485088650117625480844847612401950390283463527175208688877449395342042679755822826524460717185708765348521103874798909118347460204785692577621586185055082283127392299793462450619129695849918760431650399452008593170691600090422033878685575306457609135889068606435779865916871741874125969758087906689915486042674305974596185094694062077162915608009999374858611872757885471990080327402271483748228882629489731938105737158939299930877241386024001970745307475905206591340770716901680045801646976788808265055926738931351993132492011863127620120574691775395504889501372417900243323220779971589251889755023232320095722635361965522985265119777271156734028956669973974078210597254805211704050439492813416846943063918782328983979200275437785221889233084431741261854251816800593776899042021357727114107118576860660756288856594838052370394875242206708581016318189243037160248517968428861517659404050869902293045843402005248589725955785390317276622700713753014679019653685633816065909884886977079878032173053312623202057575059533916195131002808471354890313119386441510860357320419874380329864525269647289273510648662206248087223458432218206059474024855095724040031964354638319738227732682693764565064458822931966752623033370168651822721441558864506389163221074423305036457912512901279561175238197052599867627018070685418268030669512492072656370545234643864243540024139414467834285960085368563456931685746139197673620782354362953383611063527314528759907337042140745808848741199402437722730239978729455560273075613468889890809803065303213833341259468796628966611253641764578179599768376272048205201512597786283267209955867155519537493924822074623199258348750874913845408629520471085206635192860993200388413631948867962973077843200890124377662302029528470514720362881237294590336143050978790156058551360986876491496579686435906928152922007996171727351299100899973007949049493346196471606560938710214153279609882459245538497200936449386150008803688763240975055311477738715345338979262136304675496988163042371672069217606060890787072106894560191849562462733691114231540469304952221865425728068547233685656630668458932993152328052897597333906051017792507452130345604159848964953153174878475927732600229441192251689246522616172705622450462191318213628938520393165159879571864912369785099188255147964413796726898336069333400810906032914028924406206609240644976783488966943362849238553255383582835799118899107229511789257652038706752501779260314027736575198562476199615444318758069838068277529790442498598921112204995264493923503971892654468975658988914353655819538729452045799625985230406816395391244498905235415599790872194664726317931074581716842301722662246370459352628649264078371596230552451479962317373041521211918909103083743451294401522843317030563358902489290871509823550129144912255135639717283834950094530178405360555819625443009108142111136417949338204028368587363978193667487230908500867108777856948555544320471367136706873411705068508989160441518352415586905915330220047685100427912207754513514925132820912569671239145584003942252250638614907756761089698430629769424600718822841177580278826596529398702355203745322606430845881025690741459231865068386052534537190130289291271371255879686961492786652060120072109904748023740099659765602250952167986832381402853554523868299804514006130856374372123455786662442262704502920582107177558980796902832637222736768238465513517938567455218318963568527406832189842188404296795528099485362586095340505191737150116197891214684161865969697318629902350882382424604314118097476887604092122053575438096474920366922189079640737304048500527537264414609085910165923953675214075431013699583494876593233776937395637577199062762801795374738504258803987383019848323778187530825138485766812939167281563403941190600840445524907458591318419655624886180426637974317746305859367401511279117542713559121410356733881159570154004314673848463538418206247692097608565401933575820201566284237111853401791451961568221396910083065400047588839143330358362767580665811570056806584943305254902987975077459945870847341746547779349913357562419519690916028725721205385690634193396024630589275221953357015158220439057305718369607689149697430171175172630221542438026344637637011991766366123859607017578377822858834602676384062153336380076519601098646579875619996756480179497047358071206041282773791102131168620765241857983295530738540895278563890371580815821663003128723496428740003569632612576219199757265451390042581205703623310607516000710427951922268710556500732285628547252334208011682196316759600903164827181260247558772263586633198845726871947020209409965538194436144958061583711817582508197801085257627332143032681255820216261936583160647120563669491149627394698226885361457735632896824095473648294383915525936459396284430744420151407935080252699435611819453820537558579489101563809688866419598797909725410518989156429448362664268323724009451577099722553474903825098106494403644835307914004663588332111355580896374809800034068983135208037351215504163116610312936375312047349859237848119754497620743817605558826775859906142304526945852258825311822379192692916893182712829433804117684094993331182246036466883875493364604121426677458504546772231911044010342176642132404282802824297816368222446112463604291892957582727061161025207193442278070215320668570420802033186614739710652180651776411298388154390093121171252171858570241632382023609125731453560830585619118186965996958879961408397883412406316875817459901438639075611871919370683738206196204001735048957297045142336167768203294659575012031615527119723910606253711595444580708841952892254959056349989494731378552620704363733747729832395401943452987644505893406953177565160467228172120842556946975771763706143980960958886967440071095758324330843877553062382604010667538117892740975699833179890289281588959793056967856595831967185132765579015152058871670043624161014251580609717591243183316850798340185886981123198269929056939381706125796163347368962101412759681679631672627049896040208957474973985572039177940683615971818232343380854206017169715107540381080057508701578605610144941153870307803928568311278005465069029051414976468403186745202771653647385069606065366457777411897893307509787539009072170993710529547640772189188061174580174445820981114454934414469644568182170086139467116812042570536312152108576925896420446140792517468106673717313570568393319298149791214799017876925215105550307008135213237272569709521844311757462952333014463881705160043076463774297418476068122596528463970333136238524812180474723807297878258024586867698018875442393474157670884163040089279156889887727726656978335922602034557784861549302400612095988012720353747466058052863440288980982062444666438084108341406264577495697706833771385683505921955465208263864350247940379235093170485677087655472089688860805654270697106154459700190274729573112191926803779545893568731277838811214911574095278698821166441834926315253798762946556532029787292009674528114795543253441333324089355041017307683688048662998618804492053987790053237487351998082660556042577829254169221394699532091205632068420455338421956090390576214916758357798915363500598740233652637000720272218214127526873127066252708992552247045235670392887972478252329011140190343693843892143146657429871312014240185541877592447345913563718982742425707168570513321133035448092645664123364033144519469932274941687722584556604162968235291453616087949100789333414094158982911435439770066799674923651703373623825070535254748607330380947358108653780295143991637918633548559052938855287428183363994217521285324434612966441478380801518058192052327023511582012714412656054416447305270384298519830426330351556799409315454149457308903617850313156899388353286068129172890886522002631778241838681470598943843509041830724746768590252360572621203137177287119133524324310880106336527484155103137417556273440794710388009997645197619717270044693686875599551600172869994691359708413640398233169666346305104743015868152656685906042403754877295520852747642838143614481096566425158953558034247644610838756685932763506906174070902396109689458540830399482286593508350155132909668491572943287574270584169021580112083044677607318724013649448768877708531552541231299490241678999943626664676695263257439093850895747157210947205199763191517935086049840624446585243672548912202697151076039854599400011452419334034289626370845163580248851977943439924739513824170546880954182007266778578445048342168750257864121500102262619525656623340868896922453502231191401123812286180008176591878678794707839410753496388596503688703453657160097918362465053563004942225328530491759554231482952067622431694826693428860925002268151552454192489577346875203100915740835531623058618579256860723667164511811544247031986137459457091084280196220005719364345600825683540218909522598904130140799307272539871549359494837618402110360175453443896543252961748865203813682822978162003841669595333174433551581667065287217288202916008612051197676821261198442353456664820737446051176353460413286881630468111426923589727057740405656471473680067485395603446400880276516501107662842876257509725496142785056499388721854745794674415879087431649728940632077639894425735526539366928631696721843887929385900795435248150913943313708415018951588702881425545705390517325288471433441475796656012529936751095807468242921275801659832555865192514621196747893945662602940573581480695318748007284133833030506644481755408051995133267007289494152893190195013233539312903539434658569902463708002340068198896926776687581753248495943537895062489603068566504576280193157770529436550652916567073809157464516303243165771405867317875029101022789466176098254449236784272283421341785191312168291641434803943133191895689410818894748567736239478770635421592137473249181380689017220625366137080433938591469248858755619948905324906001026706063122716727124179286785550878741108300718940644606857379688650726162666113923167542715559072924362445407120366073844931480722124719457591564999209750624187128202106549107424767467157499807119197101005510056654625719546330791688499005929475396901138072738725546755557831493161095592098947066849190980670187426430958642896245973861772912801813582952832690744648237242897762060526546892103732366282674584520378304705010993695458650135951004988744832825643917615798158942644303879198475630872592526232945386397008253871692965204688179346465397218156807822014255998740854691898724942270619098804630190233063644514134386671583146028613948053127115468299274533336696722652972103564905603325044328356543486293828818911287696484821850357236230869414814202680648396022515972477993094383698637559088693545998136432645446773604248860704550215669437586858533091567537800175367361018469926194066579922446985697328634674164536523957293837492406918690443732493930572452374493563793895976136465118011241487603268320051483827239723506892523072975284529359423481693536894159280176858824477308524917611796379394200264814165844965397597102443880933752552951954941614981543363084334269557270928426788736208219322580858124878039707098086746624509894873913260768193134065920581559515654179700248282390121265806115344108650689427435644222027846181338526765912860803164503572805111360391916834936002283204714169171649337480639319455053393891996569965022119882935879018196150883461017649551619359296446570125102519244832858687605902167480928455340561514544439983893567530192559921296939808697052761348679574875897812373721744675747731478984362392881017301920673441981820355309387259916342272720188296293816262796144338649337455335064181479076243681283139596459214859887399332444353945640803338753115610013395594868099080894638732164157180767409951514524403601009189116087919055561222338696588254238970929689122964536589932744659934526106560381409635199805444249176549820704775647258289741782807391913315084854299329378254561429182703858673213661673869059296429487365228456651240834076478625618351576845809199609227337142680179489550440134708818763693562533866466930176349870391613281866296369965618236690487394055306622090304565302104105239076185491042388443090790294422449007509754266089689590626567514849053542964644846182413421118841964240723013619687559161456867562764181474320611301330449155073927583478990616266816619631506244141742796024802681284162036278542602678202218275316674099529669936902544664154591272997504703838349919591488857857495131674777381902176839152107887827908667408771022048857790808190663358014013319836718651801435283864524812369108871226842612979147664396173702171297673046815396345691269619389134606822873844469541501643961335825496846830163649490854355944737887737686291912930965032732519669544162983326312659590908500455255059158637765254684234614566704679631787517805935558239039737067343274896785519449475964228776895792992554935865855520396597261342733236980561680372421930108203549471374090091906995815579423307553262010940848840656335192620710148454113596028685688786772491599473971844135974879068944815499633620734543418926370975862364998227268281560238351312529918569118213070655236224377874430924227324513844306559781765949785141057813071990155840911649793998314970693912929587888994088523483623143634874004882127482137746684709390398715404715012557565343339213238728796753510645149738990108680892282101618714563493485887101434584917159355104990681346642815755681481281171869420777025692882504869807981115049030725972067714513324913362193524395157072348271821808014625006784300956260908854177480263299798455241390234585111578651092844217833950263288003369848287799915831473509334213304444034966384727523032817218553513531614178923813383057399262526341565803142214595986461813116444059841809566058421432651939046915460910657156446820606357221516651286360760355843269549773112512369752504173570955161389593327097355544419814816862119570630857003125128108007757234127996868360891731694707287017098689106476497609256002724827225009189561906227314282311654462864967886597740135655531537495403000594852486107931743124935108652873761217497583461649159484094429268656362369449502185606257437720009781185348478600157371258306433285984988684303524310282793966281273664857338023759035093021017490926236267913673916393142029888521188829517441543904946433519323717532935631231263701931960116644130855966012996438335147696512586565183514528274596891873888987251250831485791892954252211156117683858991040814375783157827164675740658282510818032640252341290325024076367776093981526090785484491407708362908484625011750321601452991453883514972172645887070636311872884255271527379397320457731208471520599714228116059330450363193669080862905777955209164974978734400779732185713363624821387131205976503388990970249482431625832488472811568381647091114623343866477066085526954583260380135233032710320645588600476881896669129539297417787646617936125210093421976807822285662857345080578667620494336765511201132621275096713513007565554109085549353688309294076402047829425608540834846258785841302162597364271055565443417007606783138726833305474881024753278660232740459943721822759096219649664288507760424074816974381569228320228691459914992454471658398286554184477006439582428046298344408014496592658444725819679353266916533848756550792876266458116747480675681997357771615574843873672717871765093251187284533922601420427796393160997600554296418093698148292174709539796961553860570216777421513494274535193729969021357945600936303028688925764148861921985552792328375831064963179652107738495273303992986042085515790864247011901260172881157198776350902271261208987139273766850724599258140101193719182545047928675243107555328026031963563720240519590946580033748255184094753122699447569582341839784351567017351357409236067294172763247755687573730959231404813112719859173212121981881892817400649946831490520841627706572559974187753027114296840881822179172654803867469184044441100819008030355709935603056970814024578109842246650659310396591742498814669159337453258930632851451932560718328023525737681985800826657329211424700937918730577510926801198181763450530118142435139984881858071043404698067947124013171317031711663012234810656073957782427435289522089526876027225859559361558328759496005427326025367127631520013582706809666343565297662070801468910385504405946610526848585819176196945941702236137206468119224484978842389528536850836948340357955819566576909984678630505033984011239672472357631669215638268030480133844662996068467805424080921807785763501102960504200134155166134458987356230337323001376096391354756896768640738504717241538014852013808618411499344267195269785750795490485323973930315613446708113650982727615343658633358440465175976401089995865357521697554555953732961916154211292240218903567413318627812949043663819407528921417450009068229755582484051322014153267781009606674505164799731543906230353898645139136770040021000361722751849027434635373696111389123950929672992452570065710443888602399442940135590237764058476333908364599213167838417169201072589264501624320405736608709814622783754740547099768465331644342506342971310598182912059207843261718742371617570951387514878114665951803957227255048176829977454968548457302850085582461089270456480858294109338115513206396916649009721833175443475981662644990510940934679563194227164125603186336203031446371712043929678212669543994932175376013104404091179485961032162253436859037894734490908513304099595902579487556158467451175399918829156913880691044208687746828192429585461077452092565847221193672567975722039432470857935987295909083614587339875086777521933161745059818768752448437603579328549522990225527543769542263239220565941171340545391107150760217278621548086321608544783644914657271254249213209508678932929974823849385310241942473298294081680721919298779521855548537997386498146297848790001851666255493976044474744172056829303860096343440568961067484672285304636140328666671553344955944871803489091874814108994931241202651827422448918482035198508170192032059407594941136609942361949552607533333253287045298494038172820603680000976156575289162208132324802384236282357365056850743405540886519205071699548065634448874057603730469800092605476981353027529750381656089958536692027641107144169039753911038202543873151445832800497077852590473460375482256122992979890839847311334479672126073039800640225322049748465984595834602425813041387945763153110278061433544261123772616756237315118473990055547227733883534361960715809441269039180878765970091006489667800238506770873022655124258830269146259672626771039307815268493793909763497712531537255035064074857487700058558954538128177481204387229050416738363760689098586025032438947812322407896520340998514925180421903360321662442250226614335221757536125167886878321168950528701384946449623868435030734081363671471568881827342468350030179408448703596356940838637743689087113326917504666710222498570698722956633715657694243860140019480342406468483901655965745702077426962732821705700099130369059788258357675292370614943861238105062746027220355386805477571006280608154623843980521386757262102174886318505147008403421552879720043528124491807170833663973771940257628294315147038945971239196298475661741859032378912366458001838020991601308526690983127287886130426317916137096603301376975689415173585680175449717398826559734193019839693494930774110030813342945699164595979522046191842248331337777850379850475584309246505346547704910048951941524590014047681465234951371148008881143801624348080288830124417931403321965447763071775459073132787620121539519920271736387345160687225167126989678491833395575869310319140406777667667451920833966611681557315397302631956641645476347922006515830466415711472087344125141849977635835045496706138449714523072245686741298954563603770361983191191757316647846614963904954974960696365518565377826351473401866417738871544314004878848437943036936300601774230385579134304837404817869529994930183326321744764029727703246036333335173559332096712824680760460173757151690221800017705634266103708325779720722964344867244072078644807965579471432067103899769334295416370216541224712623811805583130061890688158071364726873569013904854645270854348316995332877044042948176960449178610097728174485258533618571674098552593682281880130152950386561808695045137214129121244890459939277969634538008098896949865703253994993704528188858633683772783979329644085756246836165853856204839402437367557020323235671846565051980037823500711948575267561722435407073179764459397117931249295752006125490993628551872592089619935692830881935046098371468919330392314176956656959243095198516686079861385652519688579888540549810688933985243439218829595907962141279637725029438881456641277834922557019460419216100670212153534797992805722090899996842323442677791731003785002035818611681940929023882780334514944620075789604033475963058056762040744097523485849418397651125861683460767884867916422922046555572350304827163596812760394104917471758170655241249947672402935234646796392957725996849129516464247218026263308624719073626426103923801536553949706193548690096177354322831803741541320021745532332119545216113200227691288681349031830364293414169602176660810951402475650740813785944119577434663123506248294165261108083847063458374280892268398376618219971201164537878281306006651805537847691429449777162052389685736544196234497988027871261193604002756069873715424010175771323746881945792651126668564897321199439441712401740364387256806573545488786591337633852635169215526847475986682284295208316383076274594716799448411958228002545724048563942508084625155268816422095088880371040229069672610273700612318240367949587046046821575590557087190104901744396139754746315880261965070488286629349556195730725501735783818095750236735854541035970048513886452543942698511987406088079397001320755402525462586237643581732087259083377462732886989580583583125532409436472090051173855980685044226841954277700213981375465227295152687764051819882705176613600589758728752319308794520051339428500632982366618738815902261762670400276426244077264053921396160060438223270559853342937828704627299567950574574122577811391783249030769368947933470538815188396420313295641993181563704089779400845802357743864197267843353442938130559496030610179603240614050476183033923289526527540859261214773243183359490251749979590189413706494803524803358309002804414859827283910171132636459249022607568927593445398037140014007563224746902831901423243627350930525871000059692839774332970252436602572959056188512689177039530262911647092740712468997765895490629693503112951731101702796901003180943387351111531119925881758920731088315692199441595735184489028715665378500961067943981175907456343967156878677010305436453135577375091525842046164753542096419463034295967395058482551717266587289718525058956656563437572091329527259890515524245882210162577191591436126338265122695904001989102729323669788442528146738322961492653937403275392114720112907176748850319839402688830257693505131937350847367020104450100694851527691612422376350979855049604630699766837077478382929070302443856140265546182148560133846783224581607765666615945501231692141519807076169746992290071607267601880077063544073580212411092507177676425386937676832722680293859575510687559828701401727596353880656775987550850964493115059571081115961535525337063846641364361080638025341094703375818043002917540062331072163110460856730220982096560918652013128026561153315676223618856806089975271393561271296547502498906580497095996645272964028408801674302720476134883333723356013757932261007687543241963232074013789228550528297937266775106655095784784296811587424876612295343122223305184711285172539643997246088972327874594470501030732860452182802295293858387335751242725910736948438544728613203218283449398262243857314013206133286519476599966754148754899046640065968114233095188673502298650023660065442863534880857523930536367189117087767278031067694881701806337339530833341356915824323923111698261199287789422910053702634980670058082858181178923817641863664274916512056244721551839080143375340095820822192077244459113222496808680437505465076399715674257939415428860696049437581923361544580203927297825200938016174419333219134612331107696176260364876058422236000606885862161728824771915294633222645150359348343060712539246172654369000491088617739835187699377809174323582730228343742513984234913156394521058330907031823824158942046247192253940223060139486632653269753140629274788932045687105402874974440336821537555446479980626761291766928230031358491640726412058308151606088230119688879805250831240577223950790807369920181462521117413756571147793045205082752977152414407649552459379828955778094479117997984504674205868600238190997156778873209944578217560570236436585599140091730407803930090276312789681383315281510258887282213995716319548204721773422326281612932119491023656201786868400609511967546648874652289350521981246658597521166395793432902011129163748323965716033201344307441621641658169997530847334118877966131713537547367115010403893767860140180486349270128699822003799638460831610743693691909477944427050951421345328718275235809641947633995629114527811469610037900254511438979241018057760956853363628054575562622136535745653769158284866134350505226443617080287311595661877588171781922772642621445728231675775692691850307272573558080987577386142592850703841225833616418712531245169144290950651092251898355110187094319424593438021990164657009879686888217757380788067122981306779979395627503661530425672092884853025885769515186558931216097860643602379049068692849829479166208144085145771818919134029382990390280808963240624850221294213101885897131632742424989659105164984590846028309792654284031567432024158489188315784226262699317700217552823469387492731204332155000566400914714566723842359083898187937951384297552429756805987341657368610690858179471044486748488161425256332358142447563624356404524992918732519509814933564931851179996876907186881292035666161251205583522107196089715090382627222511539488714946101898558702522403596707089357912983711124669817813855530153671984072207910340527573755642936563691797524860478196112758803380296811817247844017321175777620942706350169968197770757671093027213224397847140085867761336322636043082334579747959480461091067430851031588167308011183959146301528379683213801838424793060473293880962374053999568361589405644470393333532530020622733900327835158449314060671826993711524928279131432894042772324020552227957095503785225472762007906063533812648744024392985239955769442725375498254779054823266410705307841710950223273364852502626483934515962894080950824835826942064291964296301329675573124499453171452603308157942585384644816948376875762528341929138123250779292742542116273803237227546306624622497197606380822969782439611940000608789886139314257761590051067390887177725260442714811445498089759787411230622365365226870276105579173302152461194927409404892346009298569450874089064649136809729879075510574048390291923439630785678114406273684553572523219348307708382749852805783132568449977722835871529672275786368414294366243824554065542774029928385056986506158683991008687298715985552867864087302562277731109454059521600910430883395389626070601858974154758981015765868199551032833359335334025585413176093361621925673024313955085186215954926898587945580652846162885385675559728628445452365774720105982048687096066952226513770753251895909013919113719636917047012165661304757696777470328266364585879236418409282658976906406054543120446046238104939541364638583632692832545280001087250027378494548987505237093000151930588989982297995895543587168200718297845051524743363107549799671989352356661870675823268134820417410481912174252329201136528499074621093366256352733056234805251910058931119466593616571446863923043642890214715930454132894433651955651280299400299195803852357956380283758759183029566530560825391787155036959535141471084985532748807280778850743328597347771936286003149910679050933520430423482107248674915170073939920257594934100843755784156849094402741258070049695998316357069876311609816172625834131515987499216717319123014421237884421003802950736753325034617891326015496252498976378136481090329424179110401136290451350977878115011629708524224446384140106056618808154147862766744518952870461808437585337681431514398241028582137750380144464774701206477557350679424332927795273812425123123607838170387936640909344741199273084673334085738227093248514766229810717211942571310462101675231122732442272422208774701180733306531470124687102043517825438815539036492232366336785025497812644255723584685907711758078526329424371806581213471736378380366475770713759860318546782373957799127086058934298524838573751784330908175257192657719246367201427824098565127739694678738804616737876177234317847462179812175082088994430036932889311587194222391422411989571872539628543361155577555554252667045503881575847319597547243776513079975659918366277971692577084223185231655579976808971291113677639246735539931320505689966280929632017491416028953732730707840443850268824690568799956538721727687296059359262570235333012971169804126329638138369237299455145232883331612368108438105582498444294556979098219212886419173397629964653220986024911305982138515762168149611849719638139941649140878444051439723705015493050536482777246962170840273856760473101915560646591004933315153430193122943075660834264518669951787220837590042217762744431882708295733567425827644171549181791158641198758800102486684537099949485914720720252431054991091357611946391194440596650541315420051465016260784107693383745681097272747330718837367999759670439940702033737365805787060007671307513992597424727435949797835051669839544832635184728570082135189477139905906315192226014763202570747872735359332121394327740282447322767119261747059796552792712185051419640997738111595867851833817441283850178337487707021142643169605450082252213013945388788384515529968774867388469134264884637638158539967346106099499249219991876036800186611154336002752443841068049166527548152818700859107182543929934007151595733309611689027504711916252770359536598046693655805418417025615251546114161151076955465367776318467115565975090922290789080858814757362637831248084121495945380061377612105855239017241868364276604974817336889908774392582827483783911635438960460700971186983719182376752479312764898198474695560700753565967372373873132920655639250286096138422190789088751165421972912842211039927379357312700989152391539343737511587902049422674494824481006685387784166809595604087393039319906472344077165657717477253791414211197974753201822672232747027767058464228040739313911468250267383853651694682045118598590603401483669828208371130137138930587562398257038118707161423444340127498864399521743002200392434625267239971017521969869800157546739850902087216402300865284571534322843544881568256261315927158015974509389007222344594832216186528167362834625048978020513381772429231921690826767290879483393212430298304089851157305454897147252115513257397459911938106062453193529359730141184822800458100899818619443350377659978605685475010143958370861839270290688155788051313305051752395969150605520826577074294999900874431279212818955174276877960317342105814881798491326058304343593280030843053119796492717924600133453936411576065031004344970498158017294657777452988317360583453485588990153347530960335532150711917834048524593592017001617081019259172973413886815872925751525645089004492930973211803086877161251744551275536875030773965636663060958058401947315930965460218252063258554097087938549911039688894090832451722489191332198504665923080629813915295828286500428025106261665503232086567602433845852099011859855022423271448556576545735276985783647978426216574222808855552596926335039924337492256820077007236378011721532502418567545941781144485123110978000615296215604382471223496324442638704040652361307624278492502642485098532677229863357163592853596246941420769850006258028911446654344843872146554723177306917681662553290146256403366438978999999896023921954578659482987200224446779514881607749400500367923820259080141212665100565952574656998780091493369494522007653542059682408033420674457924715107633475337166093494006820636218523350891423648695633346554548065342490004211109314052717741544337279450468649233694626936099908804505798982832383012723848431066396128265278807921552545349577648584970748559785495549673373404388032084990199465639080489430890085461450741458441185594931373164288438751647983588195928149440655334482622360722803223226941056947443835834137665132954226782624021778110908278227192865966702048577415385302735974955527496336297519467778057933816265778681168667676010737969650419413938464467463063596631692482487714281858080769943964893957967002001620957434479207003402697314230880405071549537730597438766987069918600703482951806791371120394467206872628233647940706156751391295306429646433723143445837763744087684867133019553076178788284472852298257736369016221504327109335107901642954441621379118097135921683276200940615617036964661020646620277252201442853316947850776475360725553299395505707616809667713968359596525897346632439713306319314060403789120246430647714051446721090737870637320763915791653128247115562240382053178609912438016680031108897790600242478347053437019317032249766216829330052598748953892375057747804271532330692859749663932288077971842907116960879340567196988099211141793686578910865934156445330213019316489104955839653293470250617899225840631152121999863162805999579177951553802163783814153754335429602742083886472079835978158955875015403574079900919244475044307054203307016032754930180430451715826685775593628933515899561298385686511217841464601614927949374190068188574037061412037214587142452088498320544408738308894267787941969476125218805661572837908829573863520504330899869491045254436569145175184492869290458285329974462892474762928811286874029441794940326901561612245446713454613985913197076001183312860607720702012940043048034698326523445640284326418102748765843573084976334848366583776022033970179107962685650952802653089399655814335107515010611194924472846516445320420268820891830793193685610636464118362126980831077324865424821636916850265436371657537839327170521482051805525787827778719674234490995699916589058326402816240603950717001622847353102103343853473451978191026916419904693985584577692218989458915395049819589877746802324521508648081569103182397483227363634444703713782872292076525145798972185053747178335038781823905120574053285965475161544141474762643727263587538338911802658705496918653633997629326203017037702800134037798090917463065227049141682092659571918373595932487664431653568113277233578891004750619781737354887772330329627898475253898566004115059785817826000900028040992089085835529878751710762161547576882553036547246377170906871437543916792215490138782145233232962861597346282108362278159481912455614974440919963705279787866222738230098334023349946837959644097309090445816324879027447519388097871548214956302865445095687676584950859305710030750742274652743973725805829757428390256944203659927680231955220621785541388143673195571308053431579783103096695804423164718336615746960854542601128964576382638151423365787838736191562278830038493473675319075892171798640540621663506173995387927760215828909495152784942524789290711414574031516287949101730204220006725224816205297830758423775962420188751904554866635070770277303556910889500021323981630391426332076106757232465054621049626186065889215276803545121960469217016278121376398161026299129099324962103889422412784360716476798139879716038549438324535255110248924948140538074197090471377338703359941519377191424406372720089643232118823184981078731272767381083737225734638704990786546920987616166692988816012160371299922021673729327222926583244562016457470792618903633581067834114658137053034299261666753123127386978301928488077052363236807009202271969738575584938556635195246696354920202565032668330109796982228715431571407451031778334810213887319620594488245986465880844804504938870350996672616589517216567009966707178740554829555980774590308814795599443482723479014734039014372271752000512192118817014743288458208396705802643557451251204438342833318674483679231397242092937623871801293559892343632501356414680219891382337213526618995751353355253520262356993311685063202096579236574674927426669160038169261183243425711078797868473403394104926702349384327430197998484668045296160490528260176924001789220936024084210263888819065093159245779995187830283132191116222371806787858380253540983833004104344328064834317893822234308178462717179548416114088106020793917409105120297421018138243963307016264474798345829703375412737534565306315674499421723106108901066351527095921773933025938134088104601172441651591570852018403768713347963317214680867888237332881009760795735168168001337682233107527579059808660528699766535316048028858422215841072690889755940070617946628510489359393426092748002954180650999757404262144578586210366573973258908573086381451780716623170206698582435304500084917136052967557133888641632828705250308681707579946583945085718402502219143416347711131244342086724654988661024362659738248226160256744338379478347401666020869944213700255027630100637532709478359854361173459349718500141257937628707855998732580417295531212057120314196693616242961471701627866267273608458506915400515878720456579603694490742989311911777639800682237802009346204073622864700283642724659311937362514103341377225197677158210355117717480437551364543246704105247143849509672956069721257664095572246233798850936537247363580578647476170885485898856875867421195309762392843060869100651899262960976186300518476918789345636411447923343374473881409550035274956307994625180410347097454347978163494063209171726982811132908436884521931446109211634750824158980596918551692697212400428848227259437182418895373936423344181278243584751877322322678631324766432223482496177409045279676205868904270728952017409955273022425715853113540991247479355144919265240690897020505106065083034409121291050749188042851491854196816054296245373921015710288473304725796192045013584882695697617609181417019898322343303547532713449715305077705166989896399501787357659460592989447500276002616012102897915723450811998367427317683648077676437007915756132179307749168471336649837381911635188857782565818202293751351888315399745882511927309415505476603079291179918041676400938903314452939760074970127064239713445688915373864054617718594221038143612979490913814193728817980978739298689816922922909453855581900311416609627852240550265903779549597833012059497410589026456820068216387432336304311220553831966570477032845067933973133734081292881514034690175914689951691636169857041729515603304854823918191530972956103527850246752872804932024887455888268038669746999642843581670800905379518777206879508828243966508398180560677775405959514830596442784935912953359555758667285071906066727540717294746549793898735680569173001833824222512455939258769934046716222204018298365378398281093190062897996167638958894815738531920934598637064815668616035580971535398876279419519138510577618576646531436236097417971355546378067336005736878476630152940237313383877828578051868651085868434839660983230563087077010480610622728367400933948719013424689860491508636751828564825313571451024570812184216143873894142701603894432474281626411607488435263616819652653683317873350286188101197428171907386081473037945064643623551670751985303459662374923820361410546578954278147008385648195553958520315782665329902816432433899520566563699642335085674226239982908950391078145223025528641389368880483008792048763661606185712153068949196819767139858385419282474660886643594312982947875955145430924634518501313678852830026382547446675231195533946874829475980939750946992576627887574874852411625718477083396200178175819336909287940553286121241485962911745826481520530120609635942479084614954594641330858222367589115332681558681910252584160950569891360275147989517675347777569233194979801514351837277971398053431827440500280173787645626242678746039952351956141248077357286396468573623169792051305187487537678735971898119264262589064553609869070427402801649678876356946620452067901271003532133569998868660913012605987337647247781830524569880065298564431834806926282121413021483675006908114175775091047314426004610684491634466387097285071112557998822604154282696221299973045868885735452999627840560532618812318869322125996559913073502990760944250751423067497055427388841633323958241086238362293958639464358273813374077058244259768023045120176066764961682525555655028970013162333794102581425064586929976512968566100003870669731319468448680942348284525889720921369273160713568244951467027325772620289528176147561102885069800914726142371739863822147887830172553129420128032288716809768837024382589492494283668136719604586646578937160122492592221486240240756237137676217852161254845466238543946539498739826627642297622330190092766184383089647183866262265357786396363919165236009368062850761396219496327608495648071160031574101800080440262864285503608762711553779854524814441325289611652033747819828167788258205682897383400426918026180296566781825065846124670219715318840309572851937350187191908035160907065155723696914553566214617240052308251227631581521810363423022376483907848561295058434001283069196045844928766427964955369953770418954533575694203694590831033554473094113549653403206179904644676220430956635087688038638986480149914886321026426184429625850370149402975965056508132337198756563137725473297688610299646868775386188640701415075967542790104521114071179616947049600033922871531908058899271648554030461497508781515559821847125128235072209913740491830190091997543236713160783511337805533973075599472519358115734429289189410246450797989276787613759357182487739467290337251689930779689507461524471772351798946578434343960765335595069989271602516216084856437468451202889023949521051054398683371686880202199383858172180717322061624069970308090300406325774842477374179266576582467762180547183634082397490780109765361284505377182145500570226519118970967712088451227892583756658815626606063131605895151385502340128101694751473836395207362507805350585666230230892540311030229738378064651006896919798934815589729318319197237026587098403389762116730546235934606470003732393430091200890187433424426096324398895050538507710641447098170778099041449903225533750798179657172509980336106375877946540727862083886678920463825700838905040086055120138566420740523022122775031459256272812904338815537097954310640387785855126219322219996726828193006727894477086453979564652428446984147189557464976155365885457394086813829561974775816539995406078833358779817532118755754696324750776195238668879774707713073919300372406355249919406045040690291389620646117638158398337505575757368496391506943225647940416250459065829931368026156810544286336336867970408352627979518447758739854361083645704306372668835219075925688046879551803758041500613890355528171996618104951686945123312523613466271432772001481562679164766819915391837350621075464029131884954505327648406216224066936868077823770766591677715436649005056238660512732510449380977423702599307524301057031484476311630987421078178676069714270242534921541232922530761568523579482045735916209600245818382733478353326151690915353502013814199278221470559939584397790707529161966951078885359677204712033756538782209472326875960245104047148008298099405584865224510006674216434897148721403795869234980950692197530989144305745626626246462080862097472980992087961568451237885982584532395034159579172459511555630715253177016756803090326723110935648170434977204223946659502005442360882732138218350961577507481397056940313663562344059846016301867712394778414671490615217219021122049309126832146426566410748363708683067229837562234165487411377840456763621120012601527034105136891108344936467371703888060548498077179600809523448232180152625878104905194659291939215534656892136172002569794038422503575453730945796321406427126752277194061420881310051904786258414540674960335298215613966222271053581494730972343465730229865099633600147125693668334663559497796269034616128343571789068438334080273894063145264933146482131304581314769161325442619329619103249175256490109063604199741517577031307855352502555450337780150920620380514879326571786536868317920536302903067651802043716285985854503943547180978242905069201859994326120921202715459279399268600216419787909659805148598839972870110126322779985591783600330574236734134564155810168726865140845902937404620094468011540299496613060142676783715459175452548046084319087135098308147552697115879510324173976631922376260837014792445037473364987689252907046939720456529613812160314878945398603895939150002540535816955889336155124586449361590316103470067273199433116143251740042389073466633527651199897732204652714927396468200440426916939924290132439272180601429144585036028124359953189777864163239722666368926128735010052566203435635826697992903100697027543135981220715267267278489639032836085330023036011043999752515122574050894126539479868371000984397012723283016280075114455984429633503002534977849181150815036426577708881851083343043813452301402487350973742588532505747637328207591844198412512791936311255195465739521503735073730058972321545633942814704303981887011323962928759446661240434597914389259367662607917784592216067757935656817301258405863608617670782046580537782643764358843782174518780733817377291545636280526909112718370106659415409269591200465026631178888279418666981586664984505224058076821802851971762354574633710631308465735558822806059326583038624331267334238617290239178752069884885298788727626863351717087262067434602500528801922505497378003314891440932673477967955109022148756497856616857024654500412902918121235465385884470081605326688566548841311877493271198481996222297050020157320793322764606320208138632441675330364095559727570752696979088182456332666257626056522586191235453360471005201441136508337191032268839088784049668554300895078359090105812744118737000047145106691239316828309152792495952223999760903451507674142556020255380942436283415623078021220789383092650098897099886885236396726631731337825296623505048143009908120173079559666332550441796479512146329758555167831199226067777195292474740753846344207856132921017496897173551260219141006729232601509706433908833186232591879036705931346850878570487875308174678792136134210377871911279938231336928509749444021794568278721266031093391204381164098766742941518072135744031641557582218764001202043689987181048903713342632245243194804572216345847077476515684606585398971280748630584118733022132764400677944025677173885849886434487505623989684070563749136687466492571446097766695516415784932324734466323223016098623958027268872319039234934182796022003263905587281746035671892773372538242176999889911574893968407506223123316715684539917775603848576472020840538002941785956504044392833028362917399013939223763922207401907534808470310293542571015776372288832263550272849480387326451845827953499854834649792446823604524609498902788924983625712638569660828264926264209388210499996652497048319297110046433362740185874781270383270522102890998986006244725259589042473081782123416893895599116747083285538376855177060417280913874865925541422589292905698307915645578101203393022934447150086424574377477273591945795718852564982704954715494938778291167550209805108488948457515190948801176553563520935449049816645480713177250076938180590014630508927883525190051288089425914562574154847766105559116882107695003183651171604470741577105301277699746634136277065365528011177357732755882916463571244036724467140215354285345285795060888342813838148199872768414398387110151213380236685488484490591187878717903551624631141231031357190008720043187482115865421339735052258059548599717142555241948555505722108289286811423903413195775093590752649469997211164208869701385252380971391943434565517160081071959358949387284447336533105557580746324998554279746027506861404985040729861107322711285202006024035741646880182938761236165674606146430511584125519568304176976986532529627695369045394100142779275242789404395551750309392652942530017085161346665005698921949322001419804518206555276077926827190541579471783822716665649660094470295412725197743253364797623536443338962418958579581513975596802084327927672696337116786702857050750382065759868213810991480798353622378470426165068289676377710218504898529260733304688417910113216632687990055593858877743196413926699089897262636175476496715176923672404165046382138068739134237031519237212053632022272590913844532741198031590398353402143102050733646617800598002795856026764147360245722946087044504592161082518219424272189135897743530922198155135756994844217322204032425331356211361914657669816863100596597633962006645533651174675237634304880774973822530037044871073278533797038819060247582924390435850930904683711200932416599104151841508012175944332284999103403748508304891733996654335459778869820773000585583240073405631615576439786362854250820789933239114945500317719523071093172913133502434209912156424841982717906842588424366878449244422939374776917217157236979541042579310017922013240119244228667154304328957656798686321631563148361258941323754185934614428005432139443250295398995311037698111784125799892489174686062214488555932660623349431395849809196437638355477666693835400501908590755263607655969471054756993561156829374601673682933250492256309611561991039614464741488222396884495208623132562592697620879891483647424249388234433050601177822808294237894910864790590895127888616473103507059520192715583102502324423418050936994732241188826514039674313651916148873658702209227438370705049386820867191343833877187015169557073280024724353618675621017243815554286630527377199500286655063630452379625755238358055907655104253619728867359123292921816223690098333030589142750000429973042535112856554592561764587014493234798823210813787871719121591840532347181927302592278593485755578835599537161055870047857029915943135815698191151813812151482315743275957895415759405653078559719530784178519214293236746016687592213079597773468375000351883535517057697258711197606690403013972640469145196904483927668244669065658129337592703372051352329068914312194073065911233947774057856309923219639088683040207077113574564861820549638764722636171555854248978883648202429875201418026351161867280906288432725276457929453507642851699008044780548720962670938434270086793262507363804658779566252339913238936484047159232056480006641397663064910511786238467159915686269399717468578009480411039506248046690693056502293953439791521503024852028697783069978225219177701949847480549542718132073705730939120393977418241117925642359147512027183790955745736014862128082558032380496816831120771909730537965191525808551767804340772009863325966825325478340629123171484249113053454625172870925325234638991347464746512027824231709172038049012367128256367523591891148712799826410245105810962676574512987022305050068413042661826279054884742723188785202601047154266038947452436207853968586499891374610088083434743710443246805151535122234912911106012735355930922236786569564207476267366822368246581639230397170981381399093779428899712875662556269617510166945993664172386765802630834670044537453687976291293206532907114897785839361893142772431176863838377751065308693329517542704467387889104113908083897713711091593057190397435709943984640266947169956032293930077581227439430615919089216827424218854204671065272060035961884812443657569635568725978647362730076443736751210209547697510879097377169351654898412127245153397744840948161490674877004336132975314032631418426975456318605735951823435988096873917461103319537133994696466590549813235249774293909473426377679107628950661239661506828327418369106549983822091787089524088065165817725540020835506947193062611287588337390899647997257506312306684267916976160798798397993315686474672644390347994743211929811170473913446428584715549855148417923290717787884424273083163431364530416192140685980492041323016465063239640011915241797422960047249196167705145001420115857184503018789424130717850879037234217491260366543409934598741420211075942982798860159470580119180566152108978162568686689187666579503376725159058459593113826687414606082099339322300594143416176050751584086293335125483800588641787089245465213604162172016793552383024108397241631719403464399388758550120038282914252979132677435189984046149152900688222751587061661265489957187727023398874201618303393031546741659930649950590668881038724274545981775243969850168252544342903350750347219119264067734852335361516612472990806306530224665639311680553735817729440773592912175727548287132592656092748113113285458454913805395501753829976602924576652949810120794646826494270012842237382085284852775236784239480128209571840466785277064522676059893904874022082325313328626389075086019431861878522141915822166286360011077860260105147173211395799006971622269327054497501809265230813529426597206871377163349677621461689021534519485396474128428959615603093885291967770355080882866868222884941958511081278281116654573704455922188470993838316868712249570979901630178061481364329559322624256343443820438816367208013936795415067749842215492863802113366020219567223827501548674401288033867196122733421615761111108271100838802901760212813546196494584275388427948372565380263762433618747848998298289878992774181442129607006877800804489955562002204120737859158780534614020136019154181047134751355178022722389749570196497807950944482972232656736342496821387104447663126200839672791951544596752768865226537236321855880416624925938369646440787993489895594756454919698766792759015741710536019531248451234944252809677546666386826003981564491862211357111795297340016799234568715675760372478407634302728949433309284577023143387302736958746187579333677676177191606998317524695953158226253407579302082001787719427974311098501859129329260707731054086400750828488657096918742284471900949424760976505382740255025923951729156004315936383967020884382423736542457595102053368597238661297160890709072695125505089207413432332337722732782873581181034616665272001727912648628026180106350306624614762023996900614743526956390040121638324205985819466501844526286535632782488835117317211953368752103105675809464561852735416546408748313319676307417871360652822540994683831879728034638615028446768074607259064409735289651801347892896026408721947161750745727848566725471704414545574718290844274732808080276089050507323192173102557888423423927804211017738011501443344106655675215211513976361076132684541481769230454528681352421224954949528429531276200139184636296232077217775854509912331631314899508922317905749196605838125925597070360913604269733612904242063165117821867109138771717027505254708002671758145724286580175592289647875621656993510582234978030684156665158175191051474727851991935375647763285300676312054515422227194099428728219866063586330034588639197153501195729720572516669671957664184718194103826948674685331776523449653511892293867704757171200099250984868761829963592438139275584110463976079323291404922966023693879504995470056474921504235466424156102668642789005253533190226427996200300348290316157035924487177984937212143093101290324948479850519236305750722364169871810065226563544009599164068587947157853353231590530313684834766985249608076537147411300916111302048345635886875347206158368981594215142798251461295303063379584045797760901523361400375854218485695760538886905615379461543000563287011101329624438647756887029927651441864501455986675273436111904818586363601848367444472929902864889876384300487546906951870140833918607799889013977381744566396257198567685045304635890492493317275423587134738289334654843560855747120281914288936428584962553722462758129343517064055204453031493205893771747637778265853181842958846334209114355007034873790996104929325465369080531120847135422007923071933397952482862496937832264706443669477745672343049506771636606422723188791578317583313576749019805654322161935773811620023286768288616297286976523724134628356375987598967314036160431892017421287667665637339073551119479022725859440720449098515018423271218010462348270279977560136073718074611259525497336717616312562282987860913678915258396920880025591720749779896537779103748651071130275045521907240746553530117787926820225868622455231884147122637287186315897960243189079866540406546562726261067058103269800546830369730284789111258085184957739587293170598546234921238269651788142422072323979212569038193248847037878571372043933017426203061264308268540322581068651199534553089501246019327242351721509237749122804018140734081155435861369153523033215855062621107323882859641772799468215879127655258884946501225714016228424781983595032867581556626488340422822945035977901327001300039169992117680071213134543568522649463715346587060682055438833962258903771827501062768818530860943611269202448396649296868070988522093292964190437183895425900877631547842845990596987925016265992350456435117825347236954496722464229879020750872172492905468357392784658959090974868581282039288254696488219718741813697233379398400636924563607938007662302740293236610405058110509799813614728779013669904016584205724169283457375861166734961531879110366333079566099571186658364487180197003022984555509255571540751005859565368550822801761520688527231875840191616099967987357380605095241524533441236464592247206929770161639280191033677422968671564047415948758482635876009297763524781530798928621259008686480489325020446771097512814855557555764227792267719202543832730320288856533159043025083524672186713348920668459842566627678857602087257619179924071213127011365028158690777122241663849263526567182886457638751672821773935748468233769619194220283582164876084064785050333829441674011133852482279614756073856521782405928929033974144267632773366466748207790400648430924971675814324111468882222823952837772646315260346600081895511058377005173319535921208038841012662157466216170599325193897275780745096192515385699217757485376611757303383459392511621800203390446533753068893508410992137516635358103299613743355706926297089146855886018369844151132089359264253952596606705574570876393436640021827979505102073964035473540422192388012157116778675352078102709902374123316122894537260169370955108167871964529635609168717844399433223876491783849756744437009669948771237265639302598153279621532682458073912220644931429305684224664159227335027459026151327785351454500209072961464962035672123942013252000476599310492180996184111946986474718837976446881691762296606483847658490048392141607017893111737720710232936859912960572201505963492590203375393927120698279287881397650618333757635932731742125160945489886932394008946526656206204623337541633383213822202555475671947544905192514653752115989028752976059033256053152053570944292252012572400323974193633706924213996298716272047901963121824014545605808526661225854146733167888723426937432102685283436805995701719380604462342810814534540818720975084244168594838196755998883940602701449050423033681160194251026975592375939107986599709673919230453582195691177791839838621193946582619131607283058823705165448826554063757527201433259363391614044688785629773575688007209275151575320655945506684389218435911209413929177041334102045764898559631306770748580413100681549090319030779379879419703836586398827524016987528426520753411988267370757652573279319053882198324097102036644109926115691797162046694862323682532368417550880078385848304584666730842420359985770011035383109564582946579022474623008173612608238583976502797667661688732573627880714825182167683861688638611596446518695244527493781553557436031149003390646046763331889233631580329955062144367013174274661475429932621518077942600041663720423776505433918642602051390532878422203002394068791735023039658803868553102676568698815609999260346491973880083557329717321269425333919586461795940011503089081991360306022161398654768370540673678884393551113524965272179459032970296183221864663434223464134743608698898580601277260325300309885761575663655279121657050947393199038042807545656863448571708832828173275829636188208496892152824863133792084861710196310187654527238826215534245532569963372819847104396452734353752222519048913118289197445364246891594158017953900513976503824985610800141794562559356831783969915033898891202146183743188576281388415928880012650245445510409221741706048736586782845219354372787879867345036328330486029768890770469147262026962333373216020207027459487823503773539142937560265350792553369325012436814741922025830982445000278071034390637564959187770795900466815389246267838379278760164276693368528518720307051197382134496436518242423056726464167932782944532618769947691415416232146477154646923121746999567117886868625616631092661836537409768327335321497844666897017405426546934771624271564012784740275073358493714334219073163051880005683975297112856446325537397808151308700401402046770380980437185254410979420325802660796752580551167246828800810714291381239057100458176352637941411628401327383845073275237103169193937261639133161042962663137991662234878441299913793721584381349030340912730753920222156997335037050052230022113740450599214721559542522834151314524561607192214089620010531493119245704174710989626759735365299992205740787432564421233696704273785772273564096069786190205760234219793016724586100437872823916415829540226991978375373492027155033124207706001643789807234966727543050341285181510902828490864268297301977845604175776390504141336630263980350831366209915463258734270923397027369006004830543329520941273809698386121677419125484421249280271547561924108230062391749271362632011722588523944991657789844785167652953590713731494789367814213554818963131823607142130479298811764866754791925754236976458759636429862570606242923421692037528783843425212994298337077726165915864577337714481617324020466496002976123248222425950229251748591475707386398526768272344363457558216027269705303580803811146076731688626839302587026701454634672205656346901158287821831138234121695892630099762583345507207976887721190321590131016279820130122539407166624323122621965340722355216966540108260512834237440932515516063976166798460846167472258497924880734597781571146406701527370835819530495721052146143498948966692437835193455866043103330883436787534325119269108184957461016777486958667129338108985075270182668922588789424859211959044192905523650047774063398063943618903564729033745814294404822244524385766372647882018519471965921856658792652937597329769608276132888546269039993027635773774639015727538845808765132626293531470990479429091993717519883819676731405419814676343028141184937962743612835125924057694520240406488054092380741845499440877079809608948126961274851529681334724673112036217481097156360986524343041760376068758543805718094870934529070765587141419071862594142998887151297350198206748410162777835207159699803461642254176624016835735875730074421084735710841409860343730179249660252207466900675286877150272571278606316961204468538227050405409477727253519465512746158385755857520593565817939893151838857857402658982187355324307019311889824187276358041723480635709268858360698940152281874282991544486755514122847427061929151256727277044442203151596204782535995454370990496129011950482395934336535193916995578592875927228497417613298866572244228497040464271100518442013563402642401421500341775657152709240365811797129826476880545536059550865169526415733115497217965087037965218556690332468529936967989202323528560992112453408773995198089038498153494929682998228576975093290950951836152746294300925394287072553172001883751355827719147005622001427264231617029143188299293009011953265591052142060639582933572874348450872711748021380931708269970050444876129315094629836334880007564400234010731083516818026209202859619231315135661095796782556196336420359385647662207169763588404735140687818127451077734654551925049168798062851230313815740212355606739419890253086570837382838722312259905355783391113557504033406283372504605530831471354705754747881375217631969935372103021981680204387859506296900772335439375209436768326489563333337028096128221182252198699117773555030202266586118967489545563862276826236613342137500200714298111485588938567462250890212515991467242690291342306523268548737849004088689633454934812466945550372825260037781290486849250903749666630394240869946937140888262970010043560871810955661231609319596381953988368825661586887342013787063556266737070542114424412430334134495245574620095715094473493650363112533884702600120841675482316078464633790020313276236225615572632971146896426877906003567880476700924925990392160555348725640627267936266057454194661401078341989535227162261557748756004834853147811168176172345203964751914020042612835058760955478188790732043391222498223957371409071880435015394344418310882270390268521455302316538327114026033934070085152373666568118815462491601022172158436829211716951013002746494506753621342287422453220372362448387535262358887293579638984866559670606963306330284391570998559683457315826311782261126123779799306803382036193658931164371241047487035354023707843058124609039755096983818380389681884430919410994708034327199519060920672518915825953450895033684471870624034851272765471452795695573881794603484789025727235748949405128639220203231410382017262674583517882198363066153027232567351672837165999714463717606853428190425370811418874049017718363190013872478519754228190708519428850589029789944887728960289272206498220001017333290950459706289799814676852041981007497503524593518798508347892919064619255840996208698923517222200428937523221636508656222822286298030094912126060739493786957224360778541965376062075099251148657381668975414274433305007876601796538426546094126841472869290591645447733247989127504401672186665037134558528079674267413768790552870898919560252276998388241945161065713722706656142977367812805671258577004943097035932412161071997254414167154892575026376622762983573961375019623925991177953719729420599808149419646572237057687269560203676203030934048755473085722425508030095344797248955570087471631317710552448013685332948187982696261744196003141668023276963762018913454328713300263214484340697840947161159436693494718989642318910485390403967149967843781110359001916648559490374892252555659612972552181642207932060849679918957927079598004078642210230397818839266387578860730023384295060437572504913702102626470989170382983312610955882704898015458731570827926599642458471313924320686889178338658184300651803656466041242055294003049866152986627744935212485968586813798371124818740733532372520227777395609592605545707782619348832967441090603487614641911381312731488506825590844038778003942355956415152420871022575129822749388623280696672287375366819790979396771301453509674514767979551427314709169747637638954760235907737642713881418585570154938648650768044257057740143105226284608863745015874846723189143457892343137597957819299959657765671790742963056733808413517659962163286923389712885242836447000626016996752698544340115510662716517985915437334925270078257507765784634808644056399123935733926924815237392659037892318629149848875410958071774801407376365634254756142581904887433972828616439005840608368077221113278143942575638441638942536538000168352303568625544039107244154116124127018999297513909990081350024887485412060133284069729173014431763362145338258936295533315525255371152548413827768546388906065631803320639677538438974444298595338056108786559608744248626786359961750459835204514638939682960852813945367204211381487074565680123408538386853372175723784603506456440432801629726639568014474908827937702993849161069199047609815973263099358458905285459265298286334333118921669376298981736704413681730395106974611711331647562686191292126479177905890651457529360894201387496574877186932605277946770751052357464285669874057931123095922903137297429470957570335468894040452128715622742894802190002380946842161011966772537952498862350485153343794862782703335857841235257601630835077944753084906073089637889248745027503260752783573590002338737598772684803273639777510823237928703666381070648099068167047450357531400468245299557075857945720778364992490554237322297610197420636259249008397812841773801355574231164628179849613469389147764500116556923840733993946735825198673653781157656759015824891807493093428698069319468130097763807972489329661111827652203239653537501889832892352009183302986232333188264034317452943985807732109881488375258700597904410324106672194121675329981534052626797309333483241337115214192697374655224064306988031387609348266950640082356361945532497289440615410822568139270921070184565156338355658773612425060284081684422929149227827626429820363961767091922730175248361512676046617617895287716463532811846219010098293948687400278764043984615621232922243039546246623076915213222315500650780278509660445239168939296006272450021841020535728351273149259405415346403763003565121225744800792383785109570839933910159252793403855162423793918937874567502366946781481871765865669311617646105240120476183241474365315546210678896212013250905979054333070875460857158975562890178051653469735911951271683820024247486583021440704634353626623409196019446845452455283274518377921549161144700796657422250168056872543234261351898545294918998773554375285356517196491113124471915349153120025571318477820145253975853414272670020612138617291444207505073663278630599912759695178683118216634152951593290501888375997612012458560597113531318772356957637533755994375545943151785288773559324481890107793365574060204503287471060218226821151148966113408097761429733025421303059036561943449411149048376846656823353927579666069678962014957276522692988073240650023921281379441781630549902665286595640821832143766299237060040731511489341795474083488539249796428943310953084292532465467989407964230276603171364684374674218382408221745972639268162672760628290303942030773283528846940779035467156555553374675034434130740427870165761642086330274994494475441238901604633094272709253620777382463136790948887716040940256690371031700357397924556247660880516762630495726805068532802443962649156812246030533218786941240861643092727866485524708163105676557309392334415687458929354791388911979471028519083334606422891574775977699670001085435101865627992185974192446925523725036781605599174026807023030733721198299848533837611378164048559256242680969131045648598161194307027927244947751360929518873325012634122898597980295863254709052833321769188962401255589187848344876083227934473161922368439005213009331378657360486348595400049228785381183828656606254429858675150653851080890435389711265763553784010311095190795636348509359802692543992218711326473883447435214475673357569072682432768904385839733914056466031086673625399315887376040904257024220447507929722182263786788524554693535908801356077836567034133164744638333467147596595365358960890855149012734475020114338078659785656111971679595925395793306627291322401382655962343745223350004734825353341233414024277209539508632639643774191052801993343951450250993541480346696888693655520914815392314972891769247293260376191443434875986444056614890186917739278304441364375395301010737293508014153011122370676950765874096330903775433594582374159757507390971126862453029150635026531709144444397513708694182477592456834403820392440508557172785336100781370658310459865050747123034724820354686712862182697240716018680787831964552948182326194947582070447743699027623674330118963358781855386578730564532839123738311629616273755512523609128167699301056095259935943057647361351975695831689996300527177159716055680611477174758032339804092085933709017561990853290098095524224634431432676004467930000296616574388274865694488448478877224540318479629579850524700952505371209610927970441885000692768039435612317188260545712104203004847967589248103342799273773780052294339353151148931152389968660291407629015129466068793109933616796040007481113906129334303149776162584181320177238735923379714914518681379565956478084372742960158104174524174216518642829092602103990269039664822655074811401094977208969773776394348705967319510542484032410857229087679476859433254485096148786059979722335549980914802437371814971997571418295019843537267403962235932984678963294058616455383108634457249177037708371464392096889016816923966987729800860887175728040110280871638964763961467428831756783727633952055177953778630934804635496519257720140245085149381873808537684664896792830466599383326295492332296608233644545339121832916817456044107931856139493452793965280638121459937591706101808032677348669243958855941383877501025859096777551036333448810970812737072114195732063564920995110688636139531682421923046979627654974195005719597286734004361335152326112160994486175938536132504933555794766755015731548938716442109284375022072457261200858879283015364273532328159567332186410916175120520479582831080210317694268791932089753659225810750378048890808608137030161021266424981163300675812878290702140981594226854098642455054126119758215377998667866108021155099521476451230452180590416728436632837945982055363194407923077669646497645562672266227173875663428493223688159143183984703292756099137390510949664804605597683081728363677591592290364435527874720462999882781866014039264403430032817222377737193461010672930697949300994844076927667917531764778729789262911575939689193230148947911550992151640087380135533534889062597285105859350109822892363880074627177054675765164923651418377143604802266210527733975514855302878034672220768547021771397320087957020212456476105234319448885297456178985687656539266233277528917484617824848302271919394649692256395808852236162776020810489915140560610520999267855083094559355330759942220138248868183365462394326484288180915983974898150150753701094918868836155515514444534280792220986933198407936177275211980759392870330260951053791078367295189037253824465883707165706968466219582272091212039659165801505774777790331574960056591876839843969517290804786188961263173840193613460499443287098833646407539710515052324598324558045336207669420025257031086795014658565315691340528661838403917929744017897803871354460790059044049806157124189744689372243511571640384467989098574657757342501906725194657407557297215222375286351533411032600411407569111769429085737856360182140955709430137923908376211137436660279060521833205569847992819610243835806529053995769802974100407851494105609060845733936403460714282795681768790006526029920484593355017581739568478552033741355275146268842133316712952171391487952487758919748695373814248926471848780089348819430961383416957495366223931026237038443018007681382423819241707526478442731586608256753243419741521014630635274194848561040578311515812485589151669731333317127029081561945821856374087955551455415789282296752454829432136829145695415744086436041749524627701244959787076443088651239866867728848563894456399198057620633216793113458758039148117546255938742037292493770369113751593207895036559398768532403175364482816418648472522920200408691723551740683664479638781138392223273120737929891124029434385292452942714134224410059570900200441620121593111666778138009474905089817396764436793120483484352098936185420531995260152492002341685112294694254170054956236234280539294274645573290837580631878963413860630143289237611926114643491584462682094743217039030025988123890704566826713365272976381418132247377111198620046742851771134190735098858119329001456275057212813741786714726041227690837587297100968632591052050578575123833270297570749676237407269036421764573556394229516676530902499946180788692489558097690948453422771859396689035743371824330101834580261659230717518904811812465173822629364824881746619060810039648192637019383664604276672687540077949495402750628196221128536887699603988588349669219732328927526369171210822232022127221923689419067672543738151612607837538471686155043583719979011310895969550966964036632188904587135454753383005281622325078814226282964729101808424353388122151509138672729196257632867636173168830266750324441807471181872983118324744197808988357652492339452709758978701643644727441324130595318899158458928947363066462096634158604979451789868188550020941998841035560053332238764020128508714858625564633696972195474875094485598149774370637466956350426032731437186103401448490249970031331980000940211861143451862552870448071013402319266706270219420746281444361370407694148747466043247350308002335065461833006026441504948203177633321882362093092720391231716831423434196831577777309855664160614035834410329916977804817839682935737314243665973311306023800286157206805225846754951290481581580742095877477782713498067186208105372007849121926874719694417412060726580237001367667448123064273675070222174762359506021420717710203437713960706754130810189545187771590941624581057076077017312908032742608769907602092785672850425890757765501474246837922861548868291878093681033420086279663932355552981534602225776330777612618494983717801114384564148813632397446982061990706610558915318748858091965349630749281608016787754732657577681508003792336622223302887520038724923272973635941909573360157008863299621164518965770695708217445527299905857957978650603184288617136166393505082566175565551365375631295985885686700247695496413436629612273759803828552020365489710204945670246465137248493696701261450402210956608277437215370023979534410463811216967146085958178789287797906053300082095711986846548057736977267890401740475286786460066754201796173968145799183649812890357482871105458130670253444320934090405323656630926373883828775817183281062959096541121048376067716076921566318721425839691524580350167682257633471583570712029473178406993862236483982986816689100899335274109504655334572071505211997158231640107567751340868225681683908687491851984934223407473621385145353636008517900191179067922346557324259637968146564481539215575166897660543852514791437403354180729564990788731564353192618991651277215761427167197441019918607659016831415006550485796639965649606596267724211587590499672841845080455964764623978949029518548102810031921447629891472737689435662341227065990191051913602513926816595971962854570235235311168212959421292044265924000773838559122253756530219435101949757785257478558228703274436696969450891193878980773222142620958463722684308734250780614333599816116394210505949963848144086134229446077108958641632734563238248609509099772513213929655751800152392433450061507063509636404110793965074231160667959737552646741597477520709200049437754890609630390843553743870204475250086722562978634696199678837704155172583891520719079220622557029891662274365764897322939563732263431349758175400649644994250937188093549143013757883480344144050384737934214313802049110002783393262745062715876114257502335253002871059603802362279944913935963108329656227609620996779566812676994401916736766050973300074324598621955945792432373681276762135407120603035439705264540225603824515438101458360600600664391129669918004863458477507787400017945119317683822450256558384328030896742785604486301364835852164543861122387538185553923050134132716579020545111303667560802613211993413123600455252629723435593632733324695289622425958100954833284280908411426001756917883914230196160440748322418291923685248475741108741234711541719601225683598028625511096189113346894104539157240823064248723148768023282179936821412057467523861090690369535931960818227513317123664476365844708623046342931872089041608254844583631266823224870329349678978724392111383069694965452691095978187577960963630214324167069891409835699087228062472864724875190468522269079755573853330177857449359594474712697509423482048845258061865368202766029034691362632757608199339227795775196991329342966500570858317236430675798208892388874275570465145592873197640336037176074418884895168669684887073509665838929551804726100834602025955100466467135079030021507397905906452097849821123956202160760176162429651576502792133110131784605396628974342619845974615143075885979598539377790520576431010847186258272000984837954560555037271317741192372157894510768116701899946698291771804947595988852645728803219626235325026566243702650592826929008901155514169401120032841152294619292542535996084887842160447829730461661965990348134856900633040293522973053287237552089758151051587928118834062094986209940698703680647393965122067130667730565584031558129785354463717991104204904492188961359853248571267120499887104725614971514675898287900961750669164257154597395383958764275514359815998333108715248857294825543564470019033857847941412390813014383145665510868263518804565518056783694915995313315766504897672475045079083815784524381032192174839651990359542944210253741115123733524997771230916538588091010145582525726129388438098405257893705152919618115466647016945381210074844250226075604415221516942197452049545137134144893186190922814232045388240215449304018086302636303958145269577923039405505032549551138124769979607434251474227607448015830101383816416071251460035435561237879918026374713584796152964661017938626676459682980857855620470658207618922708985443298857733332536248149426221151042121159890225094537340198664931608819160739734802704955170684625198579103623822133658341595727619787921058845873150377366654261011100735317620737471039349735477545206269257534887790678401517649010816930852896873043469535774998930166019467305666899095181508433567339152188410602958037237425311838958432195750258712578976486352446087460637960887483228273174818166470961406643740552582989622693561806544515772031411776112498530450656059989385626300322100876788132692237682012582368464983108224811100479131609022122079182167958062977147896772909301704433423966228929165010974406724172352817498281431028268996509827765611546544819516135434289138217894649146550855339746187642236802209439111153724961239113456089838201469157399196569799152415425737294006873541798973250387541880076109588555670833497284062536185753689181244822405470467057928244679428962480658906694904772069436800949641342229938578404405633838431422840311202058080595637375410681950355365000743461434639824690761762652986753757886494799278450771582829031108268402041309712581736693324395049203072459394516507600807071266050783712293000209856654523932366175733316007410440506800459160426977641929131155020073133193229274358446735183397721712419865232310262591726155218942759887501694783692355001248067765386868348274652805729661327675177354297232836430039432246538033266941548061556056689639575655901232446538894169779498065024000228007206695488870871562373329659512370977463708035978937794122016653257755457214945713193406377581169338074426218804476466455624725352959852870819327534494926534887344528235619172046493975729573551864302807696534408848903800884323733834311410252912241657044851837240564035979719051671821583737277557572555715780718523630852860327216115046021269465784162290768872508385664198797608466792556066453669120038562292527921859837496447320320375358495153323889767680904913714487435269609076751957888021219665871184347886529671928635322491832825810269405377205484460353481117098798347223824258559361083601879053718337713114213834617963786088385020127374184087242114347622906068404909386813488751139986264219776498086166435352992759866525474974642349019636192035427325763396904776814474536204890873736383681770519078490740420836569279562018605105523246981712551952729432390889219658733049135388302744836340907285260229564854819165231740941845622107695816026110525676966711130389903369639799374201763515838791813168983784330221875619225242522456906144770731819365511146006228533019093562552558011009172930300648222743628407897059024807783125533498145769711586544934256886209565786968161885241968213579152301415643406024445820395020637214260881053197631155092732378297451321923921215551786413820124973636683602039362126738906985092028982995571543528797805374328138015403623825799891029740363508470282865532510013290362190462140116763580077646582744569345110258206453814017301982832928078568295937431777874844368616561531678819226022472237598846145657252021205633319351145016809132072758726984857640539150710191241965125956310643291244722490947582711369535167656268628829399919231383796571282117674764982463499534177345361181996858810920618433095794685946088924650387266347103365458937803567439215226336343531407358069529281323276242977700700874121653331017226070857144332729277291653532334264680043996926387057154371570636577799344469503814923004799146529863810313250770183244203506949483628694132533114087494696739544773122423043281115061508344353093327471636186960611684031748377761803951614327950559952829583332873843482010661293461567477420003277559539058985978121660214581281913497668481851424385511998332285554831510167660699446737499136885303825975590858665447521090835023308421603455313132075902030868431826436985688788835215340856509139473030900651396517721078802856048463014350551132328807862564899249229528761982389578980764886390932094577934284552057422049268039321559355367604830442434669476164899053994533419284612709956934698641979983226838765824929847170462540661047226937556507395569725915529601596933278782591151236358087109145137316065362245878236438292405858041941897313060084093753150466506488471878582505281335566192441293141216104036911949036382310690564077189254383782507628606356264382820531199692820757135115753294140550904043353652535928528166141808131594289446554328965735911149182582935585284962496600624148147621023185970858573170860405301659697201225646592204011496210632973286083444048740465352598673082019040018887135292887874307171924530997894759282402257212772202079441781460393001926836215605664565481373394900703045465193021471977647413295432300755097745808840305390300276470546736875075442489371115383352005512105289671600613645601721956069275699075389049430408993931486495825110143509187161621300456658866646413136467288438394371959686135073231539265587040407710972827767484382646780412258712491696554259795361138790608675618947328459217548153912802709644001205080894906291994769888843237481860328296707399673605802489511543395100815223443825523633836462385349214396160179876221191773272132552779176164964743278859387359637822707105883289528292742592423694909879561259818460183928033824622242514747332178999918388369390890701738492315017507736937759062362984080718574723434068001152164595680824459320066697208387746196590814146969161670402347596886860786098521225022790654991696642478685064663009864341794037586555002124160582113442114946762799509187648363167405256630070316682545816766916276357672838004633312606547301482155084916562296171132815833742990342951972153956840966672032273185179409732683057716945234031608596151676425637988790245648698043362040942504398178158724966771880369479811379344421106224884007520790367431052504877206610601941458344189714934285203145450268362419387269234948259178370488164547694704260760641783439731449658461198046622539539482202167392229765981810300570692975902748362218433709589171240052385896139895324553402478519007228807439551139870877556547350966901210284663812130324501291281434048462483545843442017996416635594311812250114464109449747293424398068024845367794929155879633670020497084380826059789994060707967319450290851135845868366058721863519255025727102386835766541881867329408536275677993163395254976116059383546468711084896213310794430899478951366127241019390072208148053677023966944948356400120462132083813571670412259897795151292396944865967097813871291447338839959098374798120674332555513164752874520284520200389471783730104943682920594820030416016298214683528164218140427490280494419759852914650167177352538604605208954663997812818338802024460515510438730908999959247291626040812127900128500117951388111083853169223959110035509410523180267859324269089654135819980774858996035255468914075531840021210589120426034217805105325819441702047824061466291482858225280347405654683677602518807024079943330982501528669328093613256242311406193676769753369889761519255434601677820435637033978727371529339128710994961719372453966708122834860871220570558396780609883677798102403197288800064498831005042951197413406564692001064162473513208791035961334007509880631815626303813328402298286156239401815948975435177819225104741469452389337564763645227897646810344278385965186617167743112559009239398575425971183052451645733977983515848273081324417554092194423872785707235403436349130125383326709158562458553579753526408401811014705482156755128478050799633770719620600943461759466479795003231785862712690830975221735298018438900123293614829244356438176451741901154895482624819098514881916000914947196090669848878510399994236701844638062591000470695710118863471634886470721992406396894733765085141611983602881311463748466858427473610715786530595938131921422487834271773955722115559772203604146903958288296945934703681285235625469213770281419709197144360960079403392102827646988597553304998084723825950941367836665221597257230513907194824779156541130994771508739614976452398734680883755125496421556662104590028080466273806320186393189464805350852801306573005649202773360142395108371001041970271848022512879091843132533253758968505443025035957201302557242478955512277009559841502732514985468723972234019195339110913436833680243490444484621380349293970709619974391223684211267398268072900707981077529053468538338995302937949582041602518493043535676384210514391551215735814863957218806674674197141446580862675899106865883309556949979757347118329187220905093598354341002204290738169742181053567560157574148012817318848099426674186637273019000604865877426784769102200797747716798096193498889442439444483830370340940964465548564960632390930124320201504947911118823415452570831383985091789539814827308334797489026732747593866395662791966699848403852742194631975122095590898546170722217748182588928279099723745103830628678716253842511011630543110623977261605638660862412694040705067275504485069726295022599085381526517858107115955278266878960798819720130102475692139040682268263051488435454684843573277120278233882371550142492900634279549060924835230689246373166231253326629753924889684990271094976905285099657332639247110590657124678591270511329534923686843216490101749945315622106064197009652262022236698331965264201453957922799256271180029636554520549995994880034016463603139706708832731776637730514803120197603281893898308649073871683390978716501926114666911776590506721628878100532025562860805180704929931439472341648690197957163050052732224166318742224369866975092002698859854445288878130263333133128770685327484526301193057977318908927946938791646158223867870097682781352937413020803143869183022713615837463505946787977923858756576683937737125195414149232488122170141615496529172509702953737242595922876242500652090145078663724105019175097977882906659368171629488991612834698636570198688055245459992541127973718844834504467466726283939999749164243739812123040063490967736132351837422387348269482765484719410407285080839155887540604652253366281713099963969009262274229025138354584042408597634825598011214538547990627402325257801508514997691847619492609447364816049695315054727081960466264220237145945099210324583588475716478053927584596366854487979870885878190683847837391750367983142430572592477020098164982092202883244743765104203222582389782749105548530881489155174545411431319407690194450599013737669745988322041082688425809433123084020734075845677872666521978073204864547756428741002624889874221520375954830746320171228392489670935458982149265450963607289071624843553911976354343430805224283309781540644204930325750695134010290774403262833862794118011783232468689141602707816582796231426755548858882169477982527395222913891282519102779213953685969836289428339370769867436932866437000172180211444631217935528706995540124568555025269926163674565224918090116768484991998637418062260681765868964592678156132482712406368778248318336867223641124200466006620673207061698016139950876349708675134763932399562328676979679441531911190041069604026636426018597421652065621089428238240276409367134327167314052952999484929522809644218997116391093493667532969822680485532618809160427469385947706042255977151958328969588279741712113849005359096372632610903128825580421130102409121749924388751116300486261769375129958538227860264356874464630609083992867077590161639461928936363516349267342429281111246540514722521036597621414959058518162773227717380330336634577438113821407407866320720054161247334841185434959144825694192941923664557476235942820745420264927398407542535197948312907513229021266556238310315274053063234765582305793465070205914131009754917513596608792037852222529960215580846813232339554286109371088697100500184878534980417068846009484494473489696668793829114050804555175222190960761682586839282759577595857821944863274187138733714617795204057769981440325645901613229249747437496369511097963137177776537415361204239377498206730900406411996821554411495164823585866893968292535579917050721503048806592051237672905514085111500774787024265952422998667932282867931603264878415753311880267127004609935390082219586308283547292780768788525864916905174464701748767700461373452585184508750131464237876332894194920959868261897462683313527908778977601329617825270784212286578479749182601606665678585961961272876241040970535165331517806478341910405746711201586064285698437987751509502780250806674267928606671463997036217690463516385616685241169143928125500510770915413182157375915113649905283080839603458885811118217759821797633158892214791881720933467916447631539693167148221241863986984832224443742508070166486061599699759989716991636489612354497115462411091667622511129850553051183271613657306255598857477182883999237412481097438066431377270279356073066508938450748949354894355433413266249257092581051981587786970124471900874188748024680914339685837140358644249456828492114539190420638656562584677229472544515782485328712551595541348486931444558316185744545686351417703105627603925578702159762627672966232443249000905360501068739770254694259104221617825751979846345465132001561204325889592240852487948027404276116945193350820241996748009136565826675561912416002190799563772045441679236322580817942593499670409689581472362408656234620374444616219931977006483040235686473971431583279509658965224644105808243629062029627214938779572969784025931061577071444120119677685363673827457147641973576949108079049253492585945582169938341435459190053080547332448671331074521566614335533240610922851434624172991055585928969516410199858251398309593600254166032120420407152706771235123365998743259855978175646892860185684737134508967565020282518639194546551220108881087487545882897280207193197603365287295443143686048476423664164688176334209992701350959446530433191841359358107467463720957453563540055013442929125218127860292669568585195663078169661922508308237828045586761317512500661858879858839574923653838705777062364182122772348212464830648639806096849005446939074767950715943029112224602395104032053958963294843346475286820531918047926740960497804422424834431098691193533662314296072025092981782318773639653991236044774519964198276913446155793341712672938742942275170978473814445252430803967604714640782982911932553543118629912767675034944484078199105675938890406271179367937165648557547411276106475535340506339304489958546913702786418908421308972342593897500787713818783801868026303221082085112710958955952979722118908213242979912411530713661984592711731475719507299447549926484892242106725184906666457004254820074015186056854287082760619954908530619770568842812845840436711153972961842812633570407487051478958414206810902181072595796437519217751436098512488198908263526548325905297583625454435620229427412906133028988550703243947297660573107161647776586749281148387151996661443397310626899278609021555108631272887891674340951324710013871703227483468693336636042280698534175860027444880131866058227203639670328018481793754512413322985469834408279136855374746515866161460286576671341466578746642174876989348718512921027308728941278944863431298864560386213476784344856500006742247528341507763555796516787447180541686324737731598533856236038922288003598540851929736386085386300461907533913633598450923808450954613457452910436131822596238489031705603791921781400132372396074880468091797043571914544568221619515283285032726621256667690312729021493713530995273075100603458690856476118157082074931445661060414331159827832884052675148312838719356878198162248618556631419951594456269888230660825331308317762437349878805386998676744323586236886192998943406659028990563172644199818718358098243541831571363386034620875218020535682094890943498631803638338559993204242841366710327227420555723427222701376883919385796539705875324887684491025933121617135881531457280166952539614134066994349691658661724662889335413109033129042831294304444906687226745860741315802203968978849000063763323215690177575092230820592941485776563149447247060457475216497229986433107027651842985176663382625159304259783616797761397383876492733200278005939607130077499993309544067351242865020133548743643891503973538695344992547480541460849454264993986836516830521999746698876209318265083651213706432440302401795946837190719219476297178442259278495281606691097051954304553526749540964507983878572073290613494581122546028247936926434880169647050838863996507701604943546271699169142584636253775323457915556564658611615724570778217165349315038375490198293015822457358742697021758564907834458842993722380763146184191398536780604302374446032038994818870102106081497154645669676247439666973639744038302214045654396033723418781783400601533888995751035643705592301053073574784197364204779478714377856437304531209681863087735333931079634143198874537887479058241903384559171928665011834572525404960159491121955443442687133515366334927526512945633613857530108100872718574612181457272092709878104248773216535572208671293389932583677212843223252351838949261307643468271731069132109799987686374288091900636370130978340263730213208175793005851219884249949053236053343790512244314207335254664190958695297971780305162943703852281557557394285296133347583363561879402309478475521022862077262695473632066529025635483918302874659436767473162431845089209836314680033622219538542648357051995340231895108345405527743198012353727905123015964959827708781955358656410789228427471948776049083771459540904421185010225321048264704646254611169928470956992738568909254886240492174392953073633646097510771399908115341984926195238724121755938895683746851054425120385274588609783233900368069394885147349101599996636853810865827066689475065772114124914931014356705121129473752338545302217522229893988277241306012103885877305569263334785325912872119114167219756372164525918358144676840517044360565963342511404833967268445568517367647991678910943661982064175504973959174519503040118745922421128789453096772987153883190770947318678267559449185330083335272080526862649843037603679393629957985036350720450300656195791705664967023237370409015411099314353390358975142663285466827995574013503976235020670447045172650042910695810095095872036825081958973569378380141223024132013141809960765219702390472526598624224091706216540313531511192039508595504635384826912045974226743367056273287601405858408106425540150451793907349098611070490352633047530725218806758474585962364312793790130766098131597753615512195120257671236072675418045344168011336983572735603424421142957141935868247598388422385401368452778665016121327607088307265694518934703919841360730930920542671183459514980942343687439245976657091263510041783290259269945710603522064444934188615058908885026537028744356972723700300393665843692822355916949462578557121282375253394417374838377282826017380741440367496800913918778839699612365154458298477054747249789850411580205976003073744037143438648782277722314526755808060206534503485991984455558575420589913589642938927736096293649170928772074794930439928890591306328662189349641515423034361815934670053953499549294833184010711155473401850283755874417850601442216959464241185764055667060412638442835477390892446881004558023671630156954044617061501209151113619569644231196349118947880635576372012105310360595544871118534971901116088615692411804826203806348069907569791908277291828647632544894397006906133048568141408638936167987507465192166796994755404009332771579130070890447838373369476076650438907170188049658257149218562398702434603316175000853987915987446255582455829557401823867249129326319186414802986631049843618599289524044599339020082245772186397527943175912474319886169414094238128177612622980267094692230103052720978088999642356983157125360053423636359968943945093881061611798679531234268959363352871818420169902954991337625874463485979715879434747865973659509890884570240625888616201331682435697672589178463414385491168621950923165025843398169337742939619936797552316855133235572357358765096476143268800975835151310633670078726234820532864728470561393808442853866308626524535736969817842069358403695711183870482611472692698364483411182489744970671234457411831735243807570195760204670233385352831377884406269809418092516676509642230347037881878325646279322005748745479648663981109299308884739941340279944735993222584264418354962179729702424305905057661344108938345539309133539238262571951152423631622303743323240226829495057983486568970962040971145226992596730878706905937056414613123700382923499598216747614844126524410500244647791083751328012306820149472574398734427341153324859291740300680213688609696166893790789654799981143642499692332682016914686119291544073147051319655451389238461650803606028249652206512145884796866627751232625860480340502972634767760886129343293599011797329842669712914513910333500742835495491035708983351549160811259441617601996067083579401913584002433316187961106253334419852818884079648939217699964065250180013966664384892822062900028540965845275714764227383692115459148689116007226776517291656018235587831030202176223156223394979794643956563390429472539548430448421130169780556664252279415588836588159006564536722929162231362101635127846294268014741538799739412859183204055760323166638616780646416479096505984351412791925322692401404389350323661984791081149929203469205460349888072324681446929301769826917973741483130705680795492744493049138737818150077141102949431901989055887457921088246907846602150984956162776127991661655208348575408216613126424226936021003033650977539527341532876150909031738199740447522024044818131989396732490249312998387911957751756882790691960687002653179549760581439149373153661051381149966787866606778425256239256657203074967464655382253024634601823230586365946431480524771011346903372196757250278217584426226547338286098431352580149761924286602005234606016607065830145702201932060525648045335933517632550308140107114105521976054606158565230946212545565110839548071631173517770136201184550449747296704368535547769890363473380197085999764605636692856109257429893273065495644196743386250656878552143436045512697672019253147209672253494713222701463852749665752522328882243809112177004565083469241271654220794603948130405396623296650093905174933383220392234380912400050043450449438829313258944615604652138356928443479010261676126751302518695400300817508586378936015167681177735551285325776496925894025471567623035753979838937760580528270765970126529420020365071909079124365910505414742400638208912767343685597126709336966852632203226706107162901279660606089205978598994569716011555139893543326472912955117624064622752429420361815464868653368092499669356228952283437754191963496616052758011569343244647521574594396940071245156939929490020415559190183296632208985382653565491458825226461451944665584042507419529152143407326334250717542213633589562980717546778423194928171885647729814606370588145727104204252039475933866360507893566229125722380985464613086207863373266918446136294004453379800597689266318266452741995779117747144121296857277651991730538249059273328031062845084693374024239609372932700779977752972805474810391930743445053869142862423066586785946647160753225632561636143724013737265094260331639653407735342418661845278269055572131367012504708649456211109505030092542107304800325483442852655932219484129448357409895110917132709112647442386065095453602049434575240093895403030176433773501547595101578035574681854837173880746579081720902277394932203801312661515954498754771313520491977235944595425323846727983731315555434734708099809584217043254728380004733141555490089380003452671951055387325228118967069620032897458800515637690174213451833205992854673550840155082919648446619811616124174691013276881772710318948391395715257973546754255218936748120714430093577849420806770022261493641477983371374117563874477935313240457944101080850108024909664458707061779377210700673276671452423687153107337148239316158626602948747268102812997801791919408741203053128735893016844179186310097519465777186958539588877673713812199009965922746271973168841215658265190574056492941794626597393963524612259653702909175613089928003444425103864666908987816134647758692864992559576772241255243121987135128253365981659170149592179025029682071574523647724601763689181473538639302249343045662375336811017569852931096701249216690846073823572017117710864210565176453484120334874518103001837549851532931748821525383806110687118072590564944281895042454987907392515461614439113731062721843373758476844070233047803467666204139713006700774783499489767083536535135124600609406930437537234614771670381602450765977512384047863887859483598262920997578280983386300212918067895156934189768759802563830553372377612449820967223754239272006046829914781168302341381668866641596833690666929734993632243071640374073441670862060020858542004932724939318468041958744953605068770282127361723415873487715134388177074385314379500716387653966373946473054554339795420313659112739985610171038302687071339438733739493224982862113923718885948750364678017206597440403704384254552408597602471081373174164548588130286824260530955635356632924055939015414254098977854725305160591986208899827666058967105040862352340148357503372728490870603595413069680168299140730467504367279300683366976015859649445923726587936388263302544224843511285960806220914089192541521906593653615635308467646808186575103805220600010435209994506933557778080071819104859135121272100474159149192667797705470554822123381865462711581372278806500958268057674085177577618438856719528742117241673606106414906099997963020224853760384934123898482527848530711748912697995885748616457993705570483399846648813379435147470888390697321868632795892629346569453474499525334373424494917383883347204203346175963052814303758358857109231888542276867666064720522429252832249354035928937726895042427240860585586552182256547782133735812327067444987156137580901495338422050694315095093334619461163468027563665256755192500024985341865025535422985716677644440698123158288493155348577834017016842873445805688586002058581427469071767678999852621188411697175128364035882195845781053071824414017723650559570169478520187628595381875750868789933191094614428152065797899917884122476427106537778618598478800857221904337558483382998189492267217931033397726974239618203463466886373759630325162214950500339726151860954025001708538940055544549781441765690360085353247170967723265851670874934749538926410746291185554122213774020943739424145250079505406490665074085092772175533253338007383261895553635449091301927140034136927540596923841032208371526457649654518622971495226961248573468534189895586104848528664840985729474682964090280185419809117019800087863118406123724542529686053038621378377837054891730468339945435483210939348647360581874222401383894069323794072553060841202900082072796575577281292098297358399718580837327790014768462374806175149017099882811016710299351879812755845759052970900981037186521677609737555472917780483413701198322940416063592700711885901704579846410130456661313007773771370534418973615539113359129569003252815052024662147781160666221131339411826999357299817768911313712732107198556983123480845415319764644382173244760977473930843082189958085803340193707574035028160344629528804345812574183468524684097212364349867355550730400707664375863859795536880035260082788463916615524241622914898157224717457158905209824800577212660689032518888023748499333535636681310858682504678055047019165145599124965212603660977869417397537140019929462842869341559063635696746955964772719639708331315743100731785891352111823974337111573812636961832764219340915545492266902178616490188374171138494564996501191603182128625354183116670799117081273441686839214286637003534689443177498544279690824419777681090431246989144401975826606673334939590172610457085605147573021195044191491417054765598225924915995476382070137666585039091485335411642875097543551161319374884008361316485765834725678258632032233917082957859818462049845860292892184037073127995910103428494689198635652086876829673999820445895645878484108541281616892570894250617910394087274809982102753498108089903739342867104319016244536177654509273689604203024212339610076593284305573419547955911811482408365425130816429982253562942393811116781768253613351894557478814169198759767300959567709930975692649658182397905921787770660294504507995105703018112552054201227957474840138942138034830311677225724586082677342300391644671325433477191644219529028638525579039381158258635448100408784830846505712184344227240213557742116119758240479969904734418650849725660776297272083553314118103292686117260383486407021243322778002549805019248459034324309038976960480332906717880718014469643275622338265912288362379181718174747946564518663487173572148735649253596822872689347081322751792307616159984469050454712660392023530209909495325323487126850759022055167471108144102881627501333785312807689508775209282361056591150293698093503234139634132635513509348841460724116129882640833448496766270926634440772483721317887087233424879794239371516809200916040292938751274907183114597800542139342227824752360676250809803972695657247085570419485593907768635969402942988954768439456435012461806027554962946473957532276834555368143498811615048726124440708163652258026789990695580704262694768320378776043249068254218235572716163040323681797124049063095433530195721650102029970289059650172212588742312156123291343341657977803208861304658848443549115835360439988329461363694783895257431997815487280133967080240704103716241374805694022765766114843481561778160499063980068227910060422634095896036105410531710804513996893802359082025483904855827974162326561551323513732900063762928756408646617442047468848151505238124016541143205820612211449183809662705096636047684100648669630762320999699109975036228209081529560158680758702038680543124809937829767799144576211271097633137246671018348255327520337032845457400431106232414325467426253316934086319893198430886000121685512556380896902128343620455502050501827201626177684188979508782609516170246091943994890212189372576121477051323428606332973862597404136905870748128456009440971096538440840064339616860495430091601868628947205039647130506860450609668169303132106753950242192891874527776687381511279069238043872294151166251666237741262089923182822941727976701977942616272903111846308624458418438393016385613023070869291590775526700341953240710064741951441836459821297087828590371026523632005958286867084768262136377776797745590033654138137773122882397462217970867376870381613925017812621164463024084542138611854920112802922581852532151730697955062403778437271664659713402874476070496142598319672797041951799095059540206961712271334979338499594735309971577028416849264777729983229196483187276829500215399625430220350846881620161761045501411692724691723375813210387451076719846391161878794691216288112915286275340141095410156204272356333065373054275968476090029997948133708767783085681167872738002821924348678776781463052310403688791399766479040449027953056182139458314932613626054012861235610430668230871231962945964476973472205985648384203553138799314116514511931339516686759550026486802908448275862842819039958910158285495849100509076029888784884708639207557787218076280437041002488628948377100183246931314698683898880439073311157411737992213177964177074439552061475061869203442914357152122748432031762115366808649933536795352292256003727011059093784787984901660028986363424207223487938615173359813072044932077495833875212628045434077639949201887696615863103089868345825154478866058124276282226049605759390316250599599909204016609363240333607704907161799485775884844678581819311509936737755081672879102311830367814414777438773447822724522237053509903451983310276680409597086389024195377793217259978341562023776693948005036945899336020146841054395139496797552736223688082986216798050058397776692771239740271609128199392895512340111434951402215444289327091861433298603336468623288246152324520010861171454732015413194752434810163415053377549384197890693387430992262878941890642077268039833451454628447484769278365956863769197353465843947175647332922999322828955491937710673168827954665969007035805461389306970478886823603972212563958165943343195839133784136641339713358645141498367943043681231470300955291088105920556122246643769591728973261493197505436422255315718904626312528734548965549184970548692764548380707988053012750283627599904398321157350895978041067754025358165438630213914126838656509364323690179091562803370907017614746503110606189057560586899052606362186955076596290352533731539793451025989253896713643880972187444752176739488204355832587799058894746452821372313638354787745584444341188386896460663301627275309803574700111717291149902980774958444373798526657143698926025578108547253352543837222463314315601391144721141676276462311783596353842356287301652431058443548097673975848196437581424851947012114295080837782462672280114568278598720800761017557619708463408499165635759843568598960405145067971332592089949285639425784901812927043421802133145194927695195877838686417094827390492456008713542947615237810690110160777788437032727486145786509063456504016458416059796694170208610918482446059581445014996100383168647377093326848333319717955213356253719973495255052770353075804856771597511104971075730814252632715351073778540526519236393857258334261479805015549783315284270076876983300538646614845908006264724266400051107842264377949067079017326524192009000151763379598413226463890036299882888802515221376081034878154861877163756240740098284052526785611953347082560429096953168609145131430874633056940385849212941589330023869261788225769772367236210348296893836101710523195334614827345365667792246416282285061989767851809684891807628836220680169788824058970867815249094526033171110094907511989620735456363104215452734275051007031103804562200670124862850236547431898556180806169917104106896942778508911678761778462822260324823227110044933110860490606865507621272726471388801713515530570023079693438917519097691585921797170617105880379814726929890902037596698992499806937873965280299901437619536872755628970201287683417800912362317908644658113721936682327537438380935505513584054117098154920871932763504623413728671290908649238270720038400584702047462235877517498343313945361926255070198946355040732066864573473791947266996566955031731990556267557146081628949126016699676148795278474449093997386958513806378643633491401558704052837862393192634217546857953318353351778448740403946375720766688368732160052961521039884457951381879286759660298817449805871757992638606448876904509190893523235488108293885081346034009477042100769372969019340713917190794603676466165272630263485932331521077946747233578669127572558551586447297235776901965253080824974783124756907994378164826065544402755363115446592997696962950939805859136917877587750787775550230883488325094777356033642191841760158972867489841326942531161600228731312819077350883838471379373028299782646750215493145999172256274169902918727666769518029850081371571040679345143928873785896095650440897531180759214014015470814792447532599020887399349925117574808979656259667680895643019975158739739888558025853077806046727792493719579797103942888921485801675754983158562821018774660676135115890694715110005530637685710677419679707039460689129629998801136051854844493303376631086230918208263632913320265081259569262717023003456262181323035110080820312479720909248586211523992592747223375130156777983737603125091220610925443114272482147206809934359886182160020910744470445357516059250692166958992878896653143741948655678021387510708701821078586338323976049747015856664186857899358417481405066768569123315329122948168949275844066807650650294437536270804117120587206177353864801569644232705118269693152219853181497023099123479380315510746358501090789890585629499269181441120384115726061588158205549252967589304443673819305891392810878376115953168557157528230971633066862804599495044079669897139714613629721539474598512639537739314486357602549918166570045124655397953083965070727614571292047947702038343882708850187037163057587785764883609160291505061145744432833155549537327549678808888704816475995994218739142177878566317128771249954060407815579949824952784808736329130391726109701342710010772809967520793013576117274917242537249449246865570018701614125967285647353884322991225100087784993047497922736895717120585177388299292983570692704604555787292989641548447934318551035882760696986827487724258887306650150823653555807573252373187367280480993372837820063914705043602000824238823141983222534452748618255742884938699488390259433985459252817189238793477551775194007891957523617443001411320428194594400598649246335703398661028271162701849815316582844818361734303815683030464257642735109748449353291661583743019634417329725137870174705759885413977695413762257275340453822843622161397661567452591411709360513472886437876957496121436373301474916948930936083148787362666291862408125767630642637324634147057791288257152865711420708791158236275426349726806215557854023315492592147276347372149001331997390689750771145598513076678809395824774400282255815683238646601300098529865589374894819183902730196218969531731734271976701820782810204903744983884479374179846909165843695775616265479147788574151133034841575457812661484424047075591715219957146027901059690628266768195690687495101249436715040709287563521818737548357420551096257260163949207807287866722109929868744030380858949139635155891305510506034924672181975070984535763383667119120205385235276195016111104655099172696845685629701775094964358971352446211176964934939799073523349952772581272491059734760600834355792746190129690117380284048541076755860603357670956065306097430298973236541015002756111332242484827822854357406669508714481231036945334431008564943419739165953646910978000603297760870115533173084608851529980561692823627737272560888787897119065552403104415223190829005116185387161381259094046951893028762322486775435056985445821800710039478429954826733063631737726598349122741431523710656170891475819945269451941524053341045974568949936241989281747054344799369328626073852915292217536373708393544071357799083704913389087081595843210543583764631718390518353085388077103286390953618246164555201586815247285147184773445668315998220917443216618334401266566889715061866161115165195391059834174969949809675252902687381724951746343804733608812939775575475687691495636946689035077887715502207220068762766022837638425804657542531486574103615344352019469920940733362637545561815054936506855924901880884161590944313826978601556682535810903550824015003834850095391780605212605834719242727490405025785696166049610508885568601369380916007155295626027177741722934597485254595541346675437542522894533427757879103609009539258453829022416049022857791550319341664930663027758036401330611647832607494434648711219191250670431290496381572359053012176038874902636637653063573293469360697089489868340819984434767185108935218121996292768673417982254552203302090213797225155839816747765826723431054992151163592287362492917800491435328499930581071265779479697792741440938137480478657950042980041603712497484370891758259697406385174805999510677352934989710911063633300366060878375312229277103839053823989617310880335615736092390623420226717639349913012455021517847170490680996819047640290792642458126137692392812574442403650347610105068642087366684533549075516424240127991756596489976587447370220083522995912733152282931638848196490126276636410157868607113168602664763834730714383995602590154002622147966917926569673667109673970484159832659423653318851811855258018790151406887651676755687316830042395610717127329434751048985110619147538978828784563332478444496925160378578897052716602374330286535476557180790108813448090167191978060908865329772402480896068868093543562119956865689202416609776943663992241397577716865422876202919435998753690480059407754277374097948294118947804423972696118533084200793711253158625357186639388980810195386100297825124677924051945185975796331262448436286572707239304576533867062826693201296885931900298203428840739546478740875977329938063358082340472951681135164891956783632236376786256351383400321679336080046579764137962019296768216201368511195256104058692890074221253569934983105181214056887920235862433849970265164271161600106498895621229539416722945024275897002759831915117701704484086916386844699790827576358728312984572005892416324864489168428743498646842228409314618547359730815699548643385746761750189276566638972422913154856927592863740764155647822613317885848483870151680582841324974369964152821287811639129394929564666873011432807588349481199215977721696878046282192040705261031768064593189201354466510501198207724781119417818332633186033638570507220986046247461757699303615204991487061868446189744367617220391704598793552671490762304678609404406709887727121010438974052194550311645021689531186528281237558096661775434284493152191401551361081743914205907876466358929876225190818835528304484818947780743500087393155192618026865402107780156525957339282212078072429443481117622232301273535704706591682991355307873384676506053752105064171554219546447150415549859921445509536717101592576275901037776805326398917231797466370938858949046578276591415230995945336973936268387179583425666116723831677728974954668612020321629497598018988048660563965079574864476851993246692817504189802785285832842664859693720654866550656756259613474711654356801836376427518220076537395511314282945336368168073152905059471112143064990942122189742476921395315628982781096787849588226363214910468418634580985186823164135308068869107247083030431405545266777408410970249145364838612132443216136592495498249921239935370280830021554085510782640909316600812637811291979132541465463646198190576266382616862272492018262682148036876367358603286091959021501288578432451682542446340530343093598001736695862462044179267465456231492099324978723956156446267658643039694937516804005918645535840614232817757480133320079561264157937302546460749653312505563052418147849960250333254121761085812408132891768112874824241210233315625581566215428837416633457229922414144980842271132074088353777231267880137776516134060863084261134456010829067110945056376088454575679489261945110336034570674542188362158352193395456819485283250342692529029242595515324073419120486965962630635090763907125389022991838967170571498738871992737236371841564866315439275526443148767281486925644342209334359667193928219705603453832649630321979370404557223352369900894058633346460702648333637820886673033494716488846653120644395999255759295464858536992810725665030403622733235663741536350300477936489961202045839478724432176293297484842643752042259338055887185684446378537660939129931159694255326040751569102070360202468922342700038475829422762927782255300974306597794689908738737364523047169172963364297034745579168636764288644566964271787031911404776551700483802280886169524199857603758406226846804260239997992185775729919754564203871290765879898556273672613064466865258383592715137487658415475947098906845011842781179670544493295272381273633122642961951822683000584762005226218522243129637965766080186946622559361952971363711561667844233902786941773287790515899334650826043922554284451503082205209402798638805441649290628030391504516219320567073717014768786749130810451693074927178606295664184216194797499950604054976359598266727183610013424987252776615616703486777905507803279304281912573844875862508429716131206745295214900253992925192627680894521630643585722759655810778899635776349728270106181589758550379563393195159495500493598296425046071226018126003858224934480412957051165946557880415880186670328487979039749572536600081206696454972268005772695689525287058756273169416670963228726431082495515187106388659567121686753580205731948010515061006830297700579512791971350809865389320925933542241741835803023470929200382969327509646167043292099806466555514973390120604958419766050080050268583345183074595488843137887448674869421084706243975831743804414956019253685356360976589055477280573001022217783185281949506819632420119798255633419116358361156445541721102298153431208852151405556051600992964217095808268041480939190644507633365835581786397136895970007699947346095419499061604192660304332281489760605876689169856636346087307469864547049613958050043665715747007651639116095944224997762570946776197852450940447549314805220045651162886438077746882680574380870422121742624351410831463910484734244389459464226393387937727682192813279436828483623569981420139490144749950035686727089970513548199326788674623157901531772193588932532162084622946400049889535330254485744784724431133000934511635872649682041678774736294428628037503355709350331522546679041782595193197744561763400890017101071696920625859892295272817346225391026867917479288249104657437449994258618571364689831229163178601764815229412118726646588464422754265473963226951161203244725370329865317965993852247991160329047110946733990521850114242132382441537367319337547768110549572329210535939557321883722664433486045541541029610867103038249956078926670065531568933506419342494706468968262261651086169609243184338790266000516826824810386568444842633813678786913740546615306581482770770341109637824877579279783742072902817023384587075073464668876467535527722298727947236293290559912971583227013800053377392792037733906879138272998034783953998195696126527712705052360250046047240926165298585999652741265714982634889933469896796933189194117502357193650243297510941896151144795011386813775891431148089426715047975708357609971556146611967230658833305633007353952067287768754791949731577083449498231926909716598666909768959077573787823302366409941384319059096468346474064762691814676886953329129505510308758924061854158574227832968201823465153885595601356057519464073831624034019596787661334017308414762449146065814668724414004335291688385618930614648185979754284051842873692114534438385914967125842458203971567009914010678228451051353378604463770441880111156872686913870040095785111964237842202192144465128657581643476727664485468983733156934945714159209859471499160081767323980676085928841786640895757007188031861265096414293376567062923181898402274960265333289237680061499984972949528117363543694620222892867804485459747417872816418259777635158368737126555465389202882833544696565161462134474264749638670727229657688997530482529989202539453496505350410282809277347961372429274011239124954828254690957188867149670780774056817922319717525815435418642713441828030998997107989148571838463722281071889358798498183273375609362719186339868009686160176494681579951650172939663055256474527573868371869982269927899461663163391492886752874750347812063295509823748951572461558913522013609619661776129986063293808160866075466414376808748845943777611652499179524875506335115904183117524611673601796696193239658344065871980828665606536531451431034217548952746603653295055651519628669021445052391688734971822702905805169416283724447378038961622676641967280745741808231422820170257564770022196479042030586157281545949311999628684725863123188219142262616072374412709250318047114101939904431965325442433198259650177375876301634848664213749508179487915833086568257797389598639046905295386656625813283435862697765227654473895211671754116310125389837303377690376007345586994273849457277288615598925025200708875762424866887115596627720230631664861343113599735834160952243044994571888400499782629200334818796326138315718709827929128780632508002222456303595298753119733868775576095057980728211876347943426314580215225008227664746197021406460606273565958725052228508562516359416119622240815264449921272616746366576652021332436321766372867771879957969751715446078664298015364138266337357606256016147792202610504285100990154017934704747496333523515096923819327900112065596059999568887035797820408143863503131408580578860456970670842046637563667451559237308046807048518464997991052969412596838223229017196843083715444117898947025019080050150476757715334750269730822141525007412966441402648221376571414636727063528055261312788141769474409430948342270351111893880445925337348080220110299293784355499899713383295871323154223725443942564170176068123046817601271848612292079571319768237485748491889521876007922622377557949380206887455219190572773997634911143426003652072856204727572615422495712506295765184922994604518481942099622737717698710527936293080651149091584893164667916227254388399266236623827340840750782404953936313097996191316068976608423544181187270531762457403380082125969646324897171548197591355393198234616760260864522644442768308745106812884653590202422960122476841052474611732717173865069190643814782877415523981975580648336351330531285852097251242200917116397781681192449323170908979773206109602161421879805498721126700611563388757006846496524272341743629268836945969848560058503116982962250544541676644585500985176701782986322408306944335553413610360488118649945438247145899535113772967460188891859818346529191967784527390124185903932087776572580540716529960801678426684033638980843393763829949951025347815993410574682119755070490707681695946950081166575964830844012285780290808713993529423480117258971185294563290414006736590940959816826210158726360577098637692095723427140931350454408639734342031562206837627903403878298407948815050500244829631969938149299231233329407022329533782808962895646265461103910610156959896159201296659870899628780892309223305334203478073285885653469091411921443472479203492139553350768918732687933456684210933994895591124359525041171673979619074115769890994000835055168239525401442068794919303360515209007531318690890623841968117122857303906447817371586154354859004056341342587518739101928876538364904190401362521596120030673100680167628750422502289566202767967537351993090954881999568613181749705254650154953903184366468556835851272737907228761769540999583012631934246253556627194275298509934958417098327236602376240353540634889460066939362565908338733430587432187521074134893250782821521862153283391806364165512808523031600361697900888368159165219176927933715964828763560178521239397770805267908187592225276489654174702067747245458396018072956260885321309415200482303305861257230968316288672284447415234747332565937143718257969452043694673373682840599248893015927214359570855058350486695016177869899900499809248288687121478099358604357382134349046935516225758503492770448993439943649147648237212292847243118272031208127089409043368935774012891870419484528476537226436207297758966383831333808818298090117814587559918333783013568010624376538312442629777115295544483431260990828016444794418123522331997229590189995704747768296860642152584057082322254300846018750638863569582291070299926044394970635415170343889408180876475701514055200460566520743302200613018907790952822867782383195859951817873774332323932845033700710202006927989495552462969069257665029269522614591963138289833283219438214128686111629476549550881726896278989564325157624941013303591967261766000822317655955529505049384347750096156461919941042522955431076981064950116624483755410995664123299740071848122809483868295983994229722074466665182665701439480423844307577393144974873469519510308431893095209250574921673722436073132848109640187990675678716021615626189163666292814402355553680126426408690985563956286284475508891106871141069892810640177411043136021150380517964825206505524291454808924005120518142874440500029495446772268717112572297254729436211913216016104949986327892303921747681992743382221383637412368157195693390600973467254223000815146887272411099155200872040608235469473750669972001825691404470945901783990963106653267583306354519009964474704670169914266831709167412209868439584900734700580398863455631270006302133781769410896726448164509337777585251180323113698663237565640182966050774935793776106565484595226462303727495488602844605343141927333282522642099415665790697188621811969322510914286894237009918180338356358027083594513186936550072440890039886110041949555370746071310030751540391500243211383698204330929812492609472426602158850426948193386535777801481914075794517470806310355286349829283334685638712514862923878688420402757131541518072451048697584550910055631318777275584910148887307769104185616418661604157175705706185034150172306470183659496261893941070673563674056907704108889847427287230039561284727000117583590308628326922058717895968929270010369558906611088489713201928083442599742625164295878799675979685710502723196648142265588923371198928477543775036033808964438167655623580106162405210073171975095645280921262769047134016920851290559686458233287708457390916892640473380673199694055676603360134354026289943454779071393525667617980095815046449469051306721230470674490900771738012631418847524706303143625356326965949309231314240425169323720652271908721508523360688146641461055179122948519665764870741399032183603886060676186228671026512299236002876797903463777126006920378778937176771523035753975773062798445348827565953468124933761501292450358067304865755879144570010101016348422726981575266490246125177791018450677873699751058158704179014931411868244871745601123868546136184536428937396225797688523966735576530558895909025639676487073329879141448822178419397443994448528227166936746509825304137282255923284612564298353295916090723816893574900930585369685670243368127304075649936041975611971661868486985628495468748816910144685434998090478999497830967436157830294182743447939050512471315247811025469229510629075008933609915524279385784784090130164881177772026662211166167451526910684416029731409993520557152734037153412944172263204063190074801145122427358602843384512435566702921505412858385251434457280179755764697532896487221002682184476363604056925119889339476489907197974927338492971301584490359181886549534452604581715720762428308712791868631383758524538088317513668188388304850621623648424909989319713342202028341464028542102729447451133808848253390809913023003204295031909592551915159749255826279314571649002037422796366346388770372260389374994279243454561507643384209775223985315976171257157205615430328244445521288955976884280661503837831872978855765542811528708515308966171984245118197061859615140411938978509662553121747354466606396855041157312996186448943561877900869573622964640963125505871501366956757275718203218385761456545794623908664399664972298286739655920975957282205648009635438449191497402734470259819971030770834212565346706423553886464950750071669115664970785219173203665676326621847138952830047347889396939197401759372892506533300984747337276160535748009224321906794221682434553586837475925147636308111185806811207949738894387704406702308721269079738071107758101493135162326697011934564166488710342260035488170094979387881843211043783767024863078427171755076392410522196635241558127142648170659393183599502713004306878994708404678727607503084538107106155045218354014497980238830769922340644873172619480873251285613996592733872708435763346476764138902445945853268180178825306999341225184441482731742728414650260584016790026268437232766542130059629435308490468498825021968731644614570344281083466131072717269855902168329468511269063053365925093505897774421914858999852309542150426943714533801936310800772041465099899487891207468031435359671223133384013596798559504280739283620087769495914134332256358079076438174765346344521461474928863527093990900424022116780388986756116980899358878570370535087165777581734446688451887410444326578201219300117401893780027518801341542496256933783848313395544970326521330418858950907651580978412594376568997414890280751409421467753414916408220767805531813856453044701786118010411306390149887280548583263819257469259948620895000868537607956119214495348040469510798778182247121574742716747028784484904684249736845707303515904259849045727591970665581111515006733277087417123914187070896399136242385362619815985427944081033238276193415849152490012587764123045814818332144462028995192192209708601298252943496814443582233176290273966484997787496271743120840973885029753697098211370063924965813355987148471764108223658199217534307888630906388995320051705018061408871884279867212551709261192826559494168285041740008416157240523845043807864643987488262179991157920480777526342106640565475149064533477008717342388162606257769456053646095680964865785259302010886445941027420748677841577382208385180265008711387144815189089160088571882256839783617738125171997885027347795291062138219273483304580413988907656842244491005247949352861166541319219692163326464327827568715846237621385712180143818481050559398679973674003989444638879281790649128079615140117430475067413813499979574409132121170940726333932657025242223361621745386281275143776873230221260524122133918693398511717123465201722325714695112538264677095409887115425060250309632000305261398378351285497273276189191266192596724092632528002185800734636021499890316892464248798926044741016916533965276557845142976135723459829757436615016602513579419049080347967448413576527893400749175735400027530244210972424871849811951056075553636417175659821600167558071093393383856539687820899698393174855949268484221131291770309257738672044377944258367213560749875672678511121487669160044894400034812782255043700162063479873673348963027398554148551934396382955266139414678188007196665142261905751323690520495546093120417857228368867539746352280821705172962192466850365112975952781868050905942531392578209193242480122045282587430100670321590794138990504322082979567957193860972803830562425902698830424785181194948834393275656595429432784462081431911317838268105194688134448973723668737279133318725351942623266743981314407560343037897428189117557169168730982556389092908377002137443696821570213030664237504847275758198501268704134849661048744931515518739872932783010647966745905283746186954211246824091699622837075164937428089361189847873385267369929767943492481795417514458646520516835202486550736369655621248360093596604516857983054261027237320333812159504862443453458026206946960533208822099574283336279544819803790042210552841651088332751493054081373725789739524870750182260889253348228736750907715379198461664762674601918606951257844072740370496661904665691233540702254369465830121225242209783101839529678357167791785848119995134883578821972839458242729904046819726071505152050066239799840626477674962011678586256873164649215963162617616088150208377707460302344192543168113085948614203719704682496500646980911076590688323718617914874797593130799724834837104993795366010610530158189303728949055197001064518358544242786160995138470225257771999421342290410537818847655321865391374271148188241415338471742237174687280452525644779745611059980101242608695130071497137250506370306889856263698389683362894866829970752056971892314551008724710726800719692985088934926982661699795952357538808429473359986581254937849492384480013643751195850488156920532499708053623145269223150255779303901854978724330208040188620440283002261279891977675290908641087235030905292881274964170187691724106240058895897331463726699006257946823408836722900626137491359461530688060278408729356970945259064675482693508517041300093662248439643734648103444308736906480099580981781040025305619666152885669827746733712898392181292155878872590412833204793606997870422507663806810128546435417552118573356291491508812355929268059360276590089544838847974255454804982036084303516288573337891460291299114062172552612166807316215026918360145852261338698647556869132521182847087486658890908662349052494694647134134600721983015297997354511541426189660292897559865343408714792291761337934974816796520190805825812748848807579307414917149154361835021181845050059561798902837985099185679479276246151085616315944200473850552548531269975592764410605067900698880940983955239380083270057966866795213921563684285857666525813080569403037500939057028175501199785355100688988333614519790782912154060843725898614216424868960486678689849523555837937365007797342332987330095094518582252029347288707674721046498505125777664897343247048896221634081041035829851631859887289184718024122376860708152244415652224204296184084780081565329199688784484501411126827868790579497559970366459656564449785637708022455807070900576608753755588182899329996836825469713510565418584570264909313587878052569835834753535720891307664608951950214998661937225868814708766888713741224930667828262510631819045201031710447964668565557726746517630585841786141108827975429188663095920200813953304352273099869213659809209069100131997494331264074066745704639370792284376236727005417324409165395899829590810370938306028076279618333428324490082479172123467921686308405620640665140751055488152975327485620308303428633994918148794676973388512024561420854681192164612501545327154610858208079784950074419627290374925949889996348681610724349216116553829117868916233760912725187588247701692413159981458558309956097466558996798560859230592085632676358367837279423764984869879609639782564945462453263439403659891027269655179948921088011658049377100227959615923418100598844529962588465313136166983049877736010029541538964510413885751631078914024607254242419532168409214563517055633215033951974812794655673464499473878156160172782935910732970541551801567561277206761034361943099427058423560984829664671218440230536614984742989068125761852657036976506024082812448561084147608811461559950446066702244115764431209956692786594317424613104086619797475695257274463842052665756384007540007675018455301510874142931988657342347472341004789132442792176761694958215699614688719580833872533549562959907929174242940105528970885788759298434124150635961845356564872228219378393815973286502052031766428554981219323437494279301964271826719237210599411321639292066612803072765211896752211357422583226114169581641829196578311285492590679902071576876842179017372038227480354469451754853969955438551480775418385706059959075698763933009440477335281349105371585878893998168446182093917948013178564594158939687742665578096211787655903167822186486306460830135288998545575803291769014953302930739699557543781255883313372726144470275444117924668868494073316719897896789734157328788387581999444800711599458113264535707078431229761082863083788468704475790528946873767066685641822521362098830964104382724727703636801161159168073624255802848576950890499560615902735457204641994528998958567757156135720723735162370872734205312023293067671607380512575247348433123644609016492025069305847553575213687601878357456640556318821615417248486400800495374252914239503477176117229651905834333547575859261274930539035077432955192665184185004673810809216857397942428210919865961160302416661312385124101571843214294540160630683924544743137132309298670573739988552008151618865840516472212300431504329154529720829398854219086834748939747732202282163701374450220323753940553818802574833070100558650889251921751538838070224473400146137916163755253842443386157885612291249358950796595223115374061699850382644276895104109427086699412172290131827418525706961212836812310229129593751941300756489275217021258536543600727513348281565253323770039118441131551078596706923604101183139209856461456837854107309015348341471598756501748512156677608057434851299702427910045529048070004091654588569921338970218382391865159783656519306376313942106881302525870753641345229037736428000471836261262065889372641382069183850204703048113920510331451356844414972733329490427049455511387533539944584199387788891890634212335378836085301578349224257139373514905355644115086954396294057187190932842536671870040289381415757411078460267643806155437081896481084038703548071643116221545453640271010035595490438975061694428984539449945632949052574911855268613469332651305517488994154975508390863254157059524600390824643417855662926062172023934370061018658831959489293752356333529539217785360390509061845359027320451959225354070188894572531998298070324343735721084894249557922090762652789485219003181451248449108515058351566978728338704553040665577917455506296026573438629216721373402557556946418506950856464532397005415640526253669007355166323683546187627591545026248974609614583556300399520696252897558990585007821044129897608449483058601838011803391770179553283133560746958194588420982446271367500354467158845099257268560955332601071640534729900311419735527695251034727934749366332272503751278258507862889969434390092890260056782929739851600059139124450836978599601558508701316654253405489598705481459408049544456307107892142585108404717247738177292077876522950827186740747579199504154324984577904725082112693409975491244765641571749598082333139088982838109311711177421452893296644485562822916462663717861370425536282029405991929971485703069958788812111836929513194987815560735113253222883037733143360391242118255560462478637951137182220254774730119677771436893577105697196740836824101914815983696038926601325253677645645610147382080375634370683354940915471491339617900472792458901598186630180037027017224601899002536404844957582087971113616579150005575376041876023921226432326831801275548509479612795335873745273185144135119807198294080717629267224322046660632500271699963773643934302427838878202068937231829262106445514260161549014096880172734999212560868868626129461970345117224885390508125528448161168936869515121103672344536187817119373018492109794471435020908293385142407769726185749139990356096739560438119041997694038551505276722474555596680862377525080618915592407069367211742091605421064690500657927611232825030639814807460548343973836225449126961350301724781053125204005457703554911504267901827389981621268127879934701379667623864852704220458423357897792240959275311352477644381355801315266239569439915661133447592247459187569886038069265081951443343166666307596968394422314621965395585512339761725550982530741770452028188524280630610923431748574623179044862847951317200440820629890991452693288140957301570170013547934362151706311572883797277573131915213371758445569933667110193109079509806839909241592204379834248713853320478443610709997964001189955283361779139225856750844530808092275056307500807285346271900231107649484956333541814368988940302968311469385711360021038312647360032379582553285164364941454053458510523951884501428049246642805910300465744649214792457939034671672207831558196124443326669968240725849524751282958341004048867666664830816331940282198283687633086512359752680142581518842548119818003292218885028725154835260399721446559303217893519092839883264290747842624222423542041383181071980581850778355295432922291144200186441146182668167011184458563046101764476394921706483316926839752483688167931858398933863828897040730944015126394672207502270230896319934562863628034539126551438275027101986842762891787646725291791198908484922891003319320083149211351484853645092382014176552127165352836776592174973193883458129521594087076862718265779062574813311007582978416127872354753359263607082741354816127566613669342386962322080555161003958537724391268857130414078976312409826696778050830039482177470543709793337699467005184440030390653747427799897788381236027238237967215708151420993675810639368981778365666849302481145774775151476213202970743425915288189900606268891117324557218302443852444465488871536513415229681770507063925711324349236512144949519341255808240479375394842852382464495803159225585472941640531276473889422702747812459590531800593987247850659336880788990771120040081408941276150839982208957819054973834760405621324014400528702712718832167231121482006318104320235747086739465124872232606599769966509770272514770457039703796715684867962480056933524730746972314054295227145263403305675781046553973612872016673543169115216583126128234108059315996698039508137370001040726500733395789611582001929454285301726528955992040039728265505577729371412185984989462262603309870601684808960931798012729905181381124665399968385491083032676108902849210515922179576200412920090196878806046624602766793230841464827657650779055180484385555516166518480782064459146185640229611112376132882239415602616646981648410479056683906176335582365998267119439163834716832223784916001662463848604029806492066905483421787801068994539071796894499849817608909643293416569763654098934777137510446060014827818296144863903012931625617963380667693171836505007723884129306945818832889165622717737981605939602501705964482887374096090161293297501400522114344352820939389322351265817724401548439651689698458577048637631202664126953831770431254310535532393732928554054600737794134223405575730326029908024185283917730358548879403390493243349750907754382724017963117208168247484764586664833302057460412315828245705515923132071490455674583416123771205259691087375343523162072484921149689473273834185026541890813669108169879670062886092873194491976951842386738621505570471733997868559642300522120813039894783765445146057227244931325984441301517589896892186885829707011168703808436133186228743246171576782249884285079418611162332486553574338201671471116488643727377398713865876158028671038879913823063071637116496324514251575193087902403205820403513832820609092593944790409175125111382291248435813102457209876093019044453408358726591238659429775809745093779990219485993440644488168218321259037010044201616458449807821268020909003273702548865900106844807020081975369467118244960255910100886362816025363182097868045644975491075067686552324794302050457004953338078832313962992125594860814238454169484459874302232889213277421890054658825947766335361199764600791455275538857494958029986923004302165701336279652664959800812429770403412211718292520642433113076281770159703095576289207851258525570252194666661404772266123861280067510228487826560657885381202317990498999338672834090065147659694529884486995209231291431006419080012065595804449934777846747445104658266336557317482099293842298631499053717675317831263136758355552839433709182163679110777328927116718805639764668945168858663438994397014669214938904491546424881556646451401871814216335805322688636139216186640740465163547482675332511763664331390293252592556517220436657907170945313078741964982938225442593769944624482769240557898142789998491993578082632073480597925424998439326951993047717057382301662199282555502881164011508975259902588885755255202872851033306648802054393524320824768405710998146587279286571864337513221570667360960032014689325658439460308497999290531341972234561141166727971160682567916442121337691570872633711889500681127586296644977661645371900870244756052876023588607267558702991789599597196508485386469824189537690571208555252558718719272337746723096613057170370201330283942331656473414488965226724641468030794009476758551744402905225042918495807397571533924892892373639745994892929903917756897647220054099546697746308552656109485354848683056108135075799961607459439057953387567355974132302296603338652939547301638154829701405050367670898158650780319841649323351102324904576643125762178653900249658332620969737092372521708884347378060568486985122982947415086627350358975176995018805460056569526728831710978935627596119172861677558725917267331510483401180748531375790289529688423324561343654656951956366701574995170455876754839241033462223428633627197102618925421170443550827367195052458831619629072423827077156055330396039121786997583010038215450104204850132812081340296406623031326754425148946659502602454658903013606381843658208798213761072820312955373112958938779565214936692455694381017631996649344074694992856909446731220286879956915768519529821324087213514201597112919753360534880344795763552523408861184256673095635480037619777782109067381349409522466070161010860919752903864004315634765090954799690779538768327723893925299191973129877248720988724720919988067663904624070693349518743501681242153002420496108327308587371929523363483255044149812452813560148627789082799824583940826402785962242720540021212375418641313838231952027949977007168985912383640901191007754104673680516674571308671153108007504516261770761042097336116518532398163247028657752018182872020931643133463759262763773972316092054994826715865100727989501726415569702484798707050400020949365454741226869333319186571063138328027508519731203120633783794631002690353891042014752347328164177178193171870929702906699418065275983951733526075236012485910371041647256698361387275062350434137781214586266756059905056992806795149111045309322032921746568435802477067148903840217645038174860648721507903694734434183749615342082715992594124412538633578934297502303387368664815705634055218525385010374855266012123471466441407495609292705967336732581023563266546096343290959435338351490489733155105770182708260556416546826757077114469356584515504135590203139020884619743278410802050675153244323199492809985556427884060984271412755517617236567385070535075616750112887099669570816615509147226097206608666456818037165401592649007806926443796226696161347930066556548391319307683721123339587419200245723298177526915073948952093410975803087798399146930670083785260451503059017842687973700548707013403453415549799432423555693554325317788159767957359841865781730888194290767367238634913232175050587972524410732383247195882811933014638464553758204370212997196858368338059509718133384598706878269928353115261024252585652797789030668139037068899606595705670231710214909837279456847518528474401097276121833773797782682264101010199548622022755605717103703366145798928557590799056284799224308792940368295583349034906556320021380187057877947184060004873475120903623481427437939253802739600273492314409176316581831868964766437703815656348454397636854453853140065677133739104704385806202599370760475600456538803547957013828160868196828074738128555540501951512419556167948997241127394430588120170593247485800733245598119408679475710584043851636707365942667717118456657784026243826563428390500397964651958860235168391416392371040208288633883705838031120500661238475233339845647218374130881559149455825905808733762186792339250062895797410988918565843113024154820149639066892291061065529499090823656918249626758097543923416350863886018909113715814057119256689414532760537722223456312732349846601247052123103887972715220571514928823641650183516478435268005582105098750071467951462293392675359270048420082972203985915923975796318063651816288982393995229132642119362623692942869333964624924136788844071861003793342764357585442837373489567013680011634399992203729998408919941699993965351527747830163259196621560782675031764764011082806971417335677427362713452621337021706317557454746030320049143843929954618551473103479451167424772725319302461462289819218791750213846516862418002994825898523842098658701203944405263872183037676106186159042619072000356131593257138435622270475578568023315328628705719317614489708910795298814578853392431163136949531992256758122297772661599103799272248522803802499748659840497368336164418311216937430118324612371305143778519635345857036429012770261458812401837078634517739603871488633353123686420972051665895220864428021431742309872721773717881080026295200018589630712963391376947218390720320931883627292746725156915669049851113547287362786750963927854865259608397828336450967864251920185390782330233822748234180840708369123949275581661051698184446175471735482906512087024772916493152075699027853177255230581559401571864003262386648931289875663009070011583570992093441050838269103198510534723259951522534012782466052187516576688524714073909527058631442861296721437645616416324149862087438911028170100470605643461629603710614557026364189682304010291411893229033182404748931042225304982043524062807985421931368665539190113388228151467166658987048571054402998173381663836106211306591323497610083339502659273653652051322775503112288620108306378292108529933866750945169065513882264643338691795816059522524174084622229822881143823976048560399626421391190763630276096307023077111103449511307238080259251003931750763333696927955970288547924008864774922726475567750553421413644002553498985590038674477230327261437984627295030843391653499261154882209021048734198125665758452837736735982492225726414954839510928025320264296323614975284184282836624433981329135542580496423822925036750658975097251269466064482532699828435405886465614881845514130005282247329439479281945132644343457655041623886065185521239687987549114887861607230607455633080510907724740963893895374798046033256815784888315358238131204749081182956335076325448296061731738126763058855528830746553599255876037935678951184313886425349923122417397355236606726562665397248367769054125515273088555209046813746500119534057279150129095909443353365319178794424234841154885418927891917077440761364818865198492453244350808479120074644862153042531065171631042832267722266410469865094214150968645141069225013561473753791662878995167279742976398977062746829246862736573216595141363418114903661582356060649177599419457033894844819340359587845092270583225657999151031572270110115327311548106029997029212752221247275430356393980107300431982672695778982464587275535002953139318374263769258049939895475122533082972374561151583381853340183788400145042296377725451575010005447799249245934267459672493573438150880818761898905278648707768477495911723432456344055429771229676544250557346085440983511134612208792740422466596651194871840281580304290643275692857721856175595505617421116674857495386170615046332257132609590310347341464827997770051320811116682566439460029180727713964655983475321523839374825198847408479624307964112437147648470826001607213194408833881768265673486685695710191806798714352115773751488697978675937787833557403674704241493829003214814036293374416679357333576056971898267982147399053544665231271778948464725132628092702249136156979597474168594332980108482003594329999335536606602389917982675330608445967119583074695264369625726323145098354776252561645813556007150056070977695067708175251845095659663597415660141698750496440042595506386990509329386940691190213925831394746031600840479690731259558264971192744657035927312858912687392381554325167697153878373613082527671150125712478366390193781504544691414595806012091178757193177970073558637791167485847503889802414366821562304338946716727880625561767319431754040185036022945615762093960344718214182466253500108900539861207571513816873897524175702385827413428042577497385149318867138213644906643216478573291937356734622758008372496424419441595951685176663628062636078368393321861175967409274958757232485073867505054678774783367311967503755403750828410276765911291875908172040479689367907724998365411806460687849567389218933045641905189275921801408377896094465545682286522470310841136765002191301326759155580066506562026706048061819649530778232031737746039612720817245973533557057675407357272512862290455102054397920239831264835222590757514275545677391714143539703363732330107367995670411361962842310375049683273122211516801420065042080786507126283778170792622470807912883543042027302405580289257304175775815550458152212022141248135557046233970627175192990399113996712094251370096825796026397822535777113447782637173012492581962469042490672950091266114778112258325410262063132568062956947916037436339783575735007932613215808730734858256405617964993368828373369204890071243252304845570690031976515529020814328309946252133575553725051094753112104566902845297921144803998191170035126589225283630637078065067801242559634956458173057171044529559489616209048156505327036208186837776224560883099658765957535442219579660015201703060535194740183066012672238986626268597627355753829821081266687184814599004679458576433385133661876813032427855929243424658376977048777671765958525039643540664591324109711091126566990605004177532050048803665630570920414697487482754403751586093169128898132301781273610513371743770549532306878347733723959315104890923897058510152750620065236917687372520578664456365864578109875690412250777007281478975497255660116539058101530974064612812561841255290303933525665015199613137431066513968607417099161666622562304864699191039919074237687804851429050023205031008110295672089275712535768602539290421210091999425089797285913480268840893185949867341443540129723435517341009240040289949319837715720710344286515749372468256169054977626394444398128535627909315827550880964071253555420118826555959238774356112924056800359188287410589754994402654370889216597442604106664082674179726612470208507449408135283281010107641529161917295983755136642089660369437144324386016458223454578187967072525291118159709485255054296503885227760411051294329336413528972149646032382836251556851294677844694768938948261808823213034671591666971018217708404844787326744238940024751888829265933050806495212858203151354684698227338970843673754494754895173772574673984895111498533983784867649096509060122821976642410301559104021768102534941782432960106916965694163722245509461057252765509294161131420400370134546855300870598876674997900388963723559688911368365981163956635207831997893325793251300975776746415339447668092968698779081337783714377841455304046363553608685632590690816707212905443327941644574482025912644585685322557276250420870623864402641499881644576076899969291108356817341448327964456821701301279306561871535799536111684464045131531998213327347519855554483808404003509540994034464568798202405148675600627932624081350410626435799002848182203126620894208847719141149112356169436545629511864913019490451932755984695986480741585993464916196324443009866355561855501584555670863036975865618252083100712172836053797703920971876585393411070088570428925819854530534243356463093487874480976511289376709909014761001439632414218827111313300572341856743380472610131967866333478608036305907394288756915329479967640466898706428436304590749147136584099261900807333122670959997713721199867710368321097005023931302054741099467863481197823089862453521504496052483599013970566026720496299017249141916516756862513326330888883680273607448628029383352677054805150267832809479658972982494083742999346055654861099464208465100845596693043190777515108142862474817492154733363903890458015976085400683885572965077836310312608248633863570666312237597627804470243258774925269725249419035351262435188115208140982379284484653208242381265892297867248052740011312731678524446154286454578980470917962977900210430726393753324238773361957628723726088984523013436534288287585443528365702733945295453473685125101472867791079558233665354797853322193781215969073923291567355391240729049953064377273300767853996785560055297963810324237181849811999743564443035916717223852449068809600184900909273765969537794435334871605500411152314258211736524117314899955730593746977247039617896616612412233327378344968746079994018049623216306106723219449547534548791320413976294898602844729491360773640029199025420591739371283587933717675226713209679912855569994986885210116838912009417624605876409205612371781705109036286620575313302874189352706498413350586549499877488412631122498969974822316350863891876261407798677408565292157194262953125845983792194918144868352524659066493348552932231190332272350939489690738356828402631487361843971756215183760743148866828292399647188951405867882381950418153100063663299938335923824433323930432501345323154678502225776679518482662079210957063726789840246333015461428393673846628158413499696757456878883047504135191535001780818829546985169036746544448066049535142714297367323309539082224831434033770461136342227802862463199555225109532491501270603397849942017278538870596159779794987642763908484686160983256884221443879548039072550081990002008733219891846106347532505915144598282449228867811475760376429569053493511346171257580070456063068725880274711698174426319693022066891328133800457115052987262575826919045795963760370612223416363372612683068530530215119780803617989759347856274139096370261417386858120018525175981378241309378259645581901913706888844844033870595718625414096650600060710647991736277482576234796868423427278213474667424406388600436090194690186264209660046143799107811868599276048975168708880108546305434329642656385862458731029080869867154719833177652747203271065329514656850923282392615580210686880122060640329905221787111172395782338257451795418982860401824734061705807904594895375460357784333418112869015167683168986069167637733429380236829633872785211570170883794288680200912115597920969917280248953592914704271138682574535854068873535548165253324865426308165458814829863626394700754971835941474978664041106913585512353324231438742508962504912541751391885869065059394311060262630537501140328863540310481700593337249389172139719200443514536750831862977072040561186189159460075093361058223092675761708571070971357496077671380553276527824628228036426125554824869540529490545870430545188038967849041284859663128208137532994191023944721105398972882915122986928562488761320915541407036449374143071734277186549318273608409372351821651834046206374564734137224144512196913799129427795580202296680240859686666071682090848687972676020060091533270898790807796585708537205234944229660569378582915950977057152152866215021774815417675034532165978381413261440756013615394795189850803810482383455813974521936953476224889800831494182949282346812810956212276022795995661505832588697971234124836522775019068505245085122459876196236820572134396059378182527608410678383339229182825397833707712721787726727559529251393496728277165011455231144131056166942253681473984187829467279035452892235372809206224195587581212724184593590564562520793257197456493410423088333159336610083395413503672263468021810614628716572879655769026063781172674760930250532327354160191201006551123511584174510255918308286431290583240456160039603105347250414085427590286068350590559034497099276740845140882898952305831234627241836538871795031825921089192823563156411008732160107570400404038792270596341293082333879316248042907649305749292848826649450277291282817005465998170733324672103289190873848715635960780183342923965389395716311875523580880775517563420997665591085943356147225751748679630177202075524421479976620633487366749841243782815524332113432574375077985125838289272363062464010932751552387020097119693702454651893247927588193907030491191570788289252779618513184256467549030072390868071413898473901296019535079457438592436242269949543299517493904304040828166220452970996320396896709894677552269627526667432815404090569294163674783411381575755990013245826882389455444721187907790508075010759563068025200387231144907278159149415787174219917086042870532963120186008068108017266005763662236299524108486261811746105523898950277915752088110616599128709948608186962971445978393982075433261899506909690838422805122983770539863794179224634289342982912176058714131995306346966269154861128153673619141619443611811952236004023874400954397084347568489122252702422635334220539213041236847184842896752115295520035090422423212956710606325076587753754470697341401767491849835819455246624357765934533907438153804621672446159210242783937700175732376114689672430879305287889779745748730117776401805369752344380840152497899038020926945475186531955336468012208665707061244766022698419356217023630746755862538829002048453214011317369050519932402330813937080059420908030644950865511497610726607560063324865526155670076325436036738232297648013511678682536501762808785265669573410402671554588911923478968966492696464144363568274632639718192852285690138440800101724946825107884660190092788697188800057559151948602663085450913543693653706177619858583296846119095096718023374917487193906318611005763491046952420793432022772600048568093858259933376109150284578952607065229193655050530684648045156731627307198520267230058676040873421099103650375976818364035126645921706884563758207303510197675411518569137335055662702841803518271087386284661577440790514457867050119739081182457092510396192342361026066075921002365833290900978903487056774293619226122500758202840423127820440198998272544139884663435863456566709604597918308605307030694151318624717982658605686989854398222867267853126506491158276343116098986227489714883659093725024230232074654089352356961128762897819153549444510238063856085014246071739370426109506073348733835443846981882435886917629273041678175920156492961117857979310749570586030587503885755407293101055388594327760250385274749687043157382131817006941673139327265928202969626738809559925287468065512972800957675116433910679667147967013155189995385515884982010618100370696318138749257522414732990880310021402015845052867724200627120044502846540166768539306618658229541341453187072845163843196334875631593775867132590335401130760588007448197264243837714159701539545548122548577577111576822471895908612649954413322319489968635096168269690837752697726225389859033674816876848612249017298799205958317249742366265155756687628495833370644918858907878217689834045758964240482257194263364520053196719084772016147334541554357836739143021807744576512065979770315277572088012279898991603515886338516037500597755184936586845905563677626021322112314711323535043540520115152547839766469461917116225816640932336315640480828489831804954873516229278892105942987881466891525581315904688036405623324099136090475709132912267867711366932421969964689357172931548010207878407324673311274789039168664275619609536649689330401960839145424607144024141279591963737899595502299569531993496390399071293328054408104474869347247755908429781343096881237374641952287520574934846848961261725903648756874042139126313076075126764563015958412750798567367131507281274682349354115235384567234134453535020616830546454693047751466052819261309509024559186211457063456043869781595608065941768898594466681645860253726231174989106244934284314397247411534728462903222429975224425852968342635134097275723689803568985514777468184074106459007144336511684746462309083122421289224982540855794845280567582000899698100641821098162723136961122682411806109555239172961136815943013049094164446183551869142444172932069896202022059959768580664983211078132674543140248547726840615560370829172962563012384224141599903764566835914299421948755876160370825861775431282303072048721563960699895884483155146531656899780594754677523022793484630821998563794864290476173184600093887763211561540994590574819230296597845730759560752337896957315824477372504483189593695952177779042418883982158588850196018236284633104558048211279174333178000418165506915797611492752074051282199910933160941841786852658292189328308595946986931236961256016449964151275745495408759507043411689628646016266518158885386854753245102832231725303634228871846958706703359215136373501313585171275332898019193625538964162497806694338264806468919653531715316118424096917796029419721183995363234552198643839457657122172934805845417672381960748934544747431829142849667930918751105235291043799023614779694063347988429535784372898274561227710000352395537213733522352237632600298290909443667723926248950052978205932697233260202707997424251613414729154711166652551998177058031773068114467619678234709401073854366098680786504542195716282486395374031263066557025754213406480577516223995438319878299695719033992654412578823341288344520547477921582981982302352571599082034817497681653742242110449825500530653283237106226622670687048619083159551120685947513654044126002438845159872413694982966415303979808458571546115943207858524684907501335756280881721434332614227934581647814157763301142834919882371633330814904786551377238356656635322761952022400286105747542080549412655263404449107088827847406757652823126515092182672240476803856590235340318305831100903711243785973132696671096635644526211287450249943711415452176434875420628044187244436325042650247375890533712706236518225369644110605618504736096098490226304967879030993096792395879185008211835421039653861662184350465441979222950851238196830628877993339889869896286030210469448111578087954732397463885919714705132052150621189488988622400766119219643174190954653106137808450737183101068597606235465861269772876215671948564929291920018463154054993579743637392931872480205442689687386147649167326343496210754425419166112750097944422178788664793185075907343882746402190288948417339482086827957179717721293753994883503498897975564684295938581588313993849017154407867156714042641772955275104226248958740195214580504166962109485131388014827991376005774104895801148080090522200318784096766277866060776376828130120870908257451149942507558780175412367970045331400500551372727955910333022212020274021512396003589591734466344236636710732243355424341070926597177127696613782190064090996579909953187917988242878691277647201861680871574647227619865492992899243777945845501197787880902032066337873945574893948945619717190052539516071453061126400561454186380579160174196942747400657904373104699346083852983084497006674203749503170921989413623909217152256694248812542895702853259610961198598956902095625577359277364681656862253077535264306216152283763287599928826125846463988854817338971466125923436788916613250521133800500028600163680844862071322056983615669015263557462238385149575099578555255773001398683272610844149902311543678005524537747092783253046183361074392786078633865741495503938234247366496250617006901463165642345941583940320848016037379570018618856299646583754166885074188205984691947602497698597354271659292424393169615085465331355984964898743977290437274120536913952552489432455936720781923010448036948891176146987681744376542788204532178045859284513073758778896793294096057235937133170973516933092338689065625185738685030593706097003024925543301422758287900493506370987892176171656166720183262647272860483050905704220375726712396967715893849353575165964491522625107214895012922331077546881713259550258584342864686681485349471539663595495481148156128855563805822204463082460828737338787084174624543319858660917296159541833517753080631754423171202758583303269585344149132237982547943915223929520812026825138660917938852288087492674855003475074609289885097056061002991507569098956153028589164218734550391538413104754342245453813045282354270745430835478257963816968531622032617723495181622142408677190156094036012809144947859237640939196608596883910490248965469502590505368356636965766551391308043826082189366003506546973786102481250588425823800557940923206805467036540044605193979615364255668216143251707063400791550293044318904886173208992894472958256140728314153451870808082518669513131357024764132649930907016051280138111068675784890310628164306565572910405184275206469847790209465852725758950494969299334881741549329679469238760392573287015550734789015216958027706729554151432046960799551872351979521987544139231750671527830376161718965436006829002526260831240784700171863960910600050585171652050132907695605436668253602569989990541591595646161097988697703202280401550340411494097042576574475428517549244010782419675619620413805858574469957562589686123349177686872096302353789733324246205577613286490237762903057885478189346606290539343470649431205180816467547276484965980859926917897055768455382144418391046436722982662906009884450524438016402642243289202323304467304653892351910077778140384003882106721206307875920578020748191595501094616173717469845576987117212113195817006997082366378116232202915551103823897421265432299146524625879223681638382754487830191830507967875340821453743776063522794150906352853157165707564829906737037797931716477241915942720043965343112360972912144491540286483995611761107321080089271894581991041212741263248377408359447065811674410675651032781673857013726882411683262208738621710785325092828582949608957636873507605415730885266460395142276867935727901811723974401173609355735111267189243165951579936995002613663178163343681037794472753019045446714280531361729181067349411843398317668566885423557823854199116832915932755095121243368425930975824119011053224994264715169736744899536579034383467879318788748327598644033633354277915021371044191924317310161207315625077356004751124577517189482867445050033880033155530310374406793438079406458842670298455204662611483649785635932982059629836950956240535952424675920014326912668417131509120586841211986525794419721855438155217592244364134278911480072999169892447536673807789252745534897644654727751715903492252178992397836791019697868197181052711102045062730248066533601047356993743006687433562680745183987987196698666530591740688883318916797947367668824459624945051226678938648683311796374663102434697342844488776427196492212662604087455520711059695515184162560471168678703480889793114280449788047339297530818337481647051109213188142272977523072807350494756634252691712616730429482768902019276809601181443540915441328183670729247224821992344175432609631544768741800365152086522111279104457171476721117092598492738695834621464204368455802385404852043233126650493797023718049638116920416756674174858094586528482506873196125547824596275938491588394616089199955918707330431007168329627280633444858742930488967400723388973707097361095639351365943488145832286391988521083865216966087146231854902971083469216235546244371192172704420003454217674749207669990714986631710848069013642391597099526349566937482738430528124988723593084157367562050065652315629528349194371885208984828765938161879475518645255130189929619575998834558665878320983842137335856607395790113335923429176205891760253879067722047217084629504404869828609805363266367677941280335480158635241848581529389470424492750090382665076098953213379783810009369056556024978348263227225540375276371703737282472976585875715533171943895663605404642440708236278363864428639696259852206262669225109479539532767500720962308274985434618369587139211346239284925224300969288031998241957229060999704343764674256729563816419436067062360519270334876479462988343373081263857102184313031395726179832228352293357544355533551692417369918744308425006452660624675430122302255575955421416223682244804690078563841214701983061471588167282263168294477336752733210025375072685992019493667095557238893732268750705559230920609974209987866235293086859270836410063072739684941643746489685934069721281097303297569709299559405184936685990809498784402377646163403238171380553988395145842054170539651345635104612107439183107983597872135355547718939378018619971153771213347983667524813827449842189496625425411850526519745103267150373226292894620050427687232067520199275247022579785282315081021408280314540112234368902096592826674971265490664235670038971092447230485689020452570941648255098712662002288348885616812783434085520696970303364742722402015375159156526880469274629068811530039536856546325095825467284411750218090148184801644783652581960565038473665118567620110568229038547658706627755934410375427284609434954300073644976461765729706306858922968606226840131676446138569120272778541465991434376821726065391474342352509987455211680213579300163474599618347174333172193418578746246984934706267793464559545106883959817984131909182436689013524571207431713186144667240967700125417091910728813162465484886080114834081633426836075825277457969669647152976132299184042477684726398448513282972146914951981200815729868151224117674677405753435327640967311306018783960299281286275851954934427691701156040844021637523128695776847949274187830968802125183496327603898979900260531576159328542350750002137533947216843313329316821534578280436403958684747407085974798494218573443116890699718762192439629252485186085080733701536094231665689930944272686478533524908602729200453640083193595790600775560169931898161637104590578180629335092720096985812411624214452363500982975582243367102406355316600569198619966771327522946463446126601571212199394644655328405204708966185897417657683274753348115110331677839799197513676510347921215589212896095943768203096324002860856957774395535808043906770096773270575939603441296093311458045415268095857503295781043062610519475815810216164185376694864485748953390777292664544141397127735747062871284276377503192353612787194738382065664172392724108224147542181060478940591760021153192860153436303443600889699979924520591678437862211850314898840669723096298735757333558851435499498083263129796011574775841143615635081995909317972668943143530496148928124628680253838744941403792544503670848335980347934016465489471357106517073784163634072780007195997524492772239488728283414514472088579434813994815394460403287467180425509975955711395485959916808155374446504218834156051767028204277144424737400272371835460179140090980723825096996750728895717377034433130529746910252786239473172042189994176652183302941630842896529365904071195925295556070272848760768543647572733834908508797789225623418425614533465414344419734629385544280449198109467243771670530918116312235538233488212450223389114252180775635298118146671717834992061867350916412541430382855314691922251847341856296767825622158826744552291962330264774589522464812864169190870769380118643661383544293938404263910203977897089682212608824994008633836363484341179046220184802666972523868325655737304933160811708671383824531523725903907473587563387265150435335306142089923588097761818203424715905304258961606113242469387190918236892601478339506918277765181276921646502337359623035816051429983828497567938229009239663765246121446545423591765472071114676921711786296310569654741413294861991060625826490687258557151809789237958950618983570792790455684067685784294518719614862817351648735322653123813932856800619148571150316966413899003652676985787033564515370675850511546574997489171206026844366738853314292857114773629761542999154019110175268850266172151644236404554646462155112141843861903120845544432634669466205131647268170832190492420522887327179613132520016843586287784976056992698476554755212465737982171863684704407177496335255912106258335199947200104887003638291278458263647631757081589083047177219069854575529730100383634301335995580409233769932413910732082706043299848533105617637942025744663305090086837383448629521651293237800936702258843955837880018713306438194339737131608383823881140929389332829430025297038216017528613273087111788870748438971360367469803490267253533049142042751105711359949249667684068208025490212732616075238950325782544976845353373899130798252056807740925609202304648110190040905147262112480238270661564563118381375590403141007815865616511518997140948612980329803132254957508775538003391331433397738436620174787369593252808729173223133465600085599167283861048038862299539613161615349747424048100007572071309034262505432120855312607418735790391213943182030502925503081926657086149792409716871150106159073647547698622836480131486593863717305428235868415928323724141424152140364238692601714379880089157536143632011677759633867139324650589823774989827097159929925636314634777050206924983793588459460851671004889238883876947179850722280197616216273056514380026040530591013823986942413107687763249704584865156850696670616794196532474573681065151775736453249460047560059933214183372087886942327564280232800188482974192638735703896324813133754605468779248702051248462403211053918620452965262236386384550194764846523531410249308601093895209781977533734140625862953021912081276579510676765589667288644657548175920587848488522907357768718435570368104698292625932890009289036039957251305720962036419608285428150876276425870624616418091586634753733733124390620684485726235441114458397379660743326748809917914941950780358750389571970684703201051701952862455214307220474064312245829710103286269238129991579158914358052320012616510160704453294813021686756934194820108963988376484854683201703778021119469961352739925400761902855029867135241156840499627522486182405351990616802949298213029072684775351614221687026832738863424254762240400924116873448098732114721819220297266791360186491478102624869350051422454563605845234568347533762904106109171922790594671482547662278645394719622870557638317898687876185356304983604474051082683999471166870246215622834906881192122558557157024084983021955600979805852190699683040193906053885197618284528170909688601447501614942020607999141332272920464636135918509980818424813320605465034440067266125352492240465130435677434691225312135137899300802072183328405998333448126552850220531889767265495306338686617749333207865346830740499614542523639799832415104211427816567996946242755475244236330328576311015420129953731664126906961637080878540668428383112261226895014219074648347004883502645227710944729216559164562725011042788957401839032668824251885399170554686829058292755187089928431728343535855285572553453291711623493824716971981031011523900722029442537711093572055071903993218634903411016501419077595559865947116409344978637670584362669808482960658717646001517992129835713828538528941764973634419337205073538888728994714593768677220345051724733242255987218155027288313306555395282319171931312311636579223605879121587553169143895514327324136825335674123655002327071770076937249292237184738534459413036248663501100561457582033445347436868682770664274268554926776079511508157918027891731495946739894196582243820573763719993547311608725018117584057024837587483748030977736740054052445898778370183740215683671700238424618204276403157815144729973980364996259677841619594942979105428987391818331766903294038374076008405978378187765606837527674787954390845814311509798867936941229605367806315198796487859049376004239613891867995095685484531674275395983733274360466370375229574899905517228106051259790891675818505913447080922079986153693567038936739264453946193718682944016330618267664772059754591791673487844165481070544620237978393703727730419973036273694843701503296772847626029766026945626867089544071155943360653785788672156841357776626889571435202056144984282412855211431554373971131044739658415595356805330893399999367115621227851520361570390220758955546039486940847663512144739064072050191971654351860580731510127657580499569318092652895856505388990400222415600447298828980658513077871588239761718354641331516432143738949375156551393949245054171812301461795459184989192642180477507833002297937365200627740693077311105847934790301040671507760620803038734060911283099401666483565243742535660220183737257174114770081364271552895009106392627536018781906135879865319401769404567068514175018213262260258010154622811549609027407679977874651220149880863501676529395834737902124902431266195076591916413979160718170981870544174253717149981418103991464337361259908814736598131214943639647320106895771139230427402701719003365547098708726199652983268712555490960947586663950854262581656271790891980064132908813367548863882229224671016544654359013237208097104434952468445891305757576241001472543710772163749097005527495790951119681915905061642412263480609051874908926579220886638214108806127435573420442712927533688571768129124623884559535602234006771718828603064607636709608702296790931294226541241068030283955576818077521559397397122488426057706653639283595001349152697948758390279656083464047507727896354048131085634304924887769089696405618922783503726916360480726477492578907145739552754756633340346609798446648993102117696633771900822580361991815980718331388021631888733627735099659427348663448000858599755932100365877155287739449112350121157004790852576573970101597170545343959284441628004169080561052415054165830160756448203697651893344519927626961308108676301849137239292939802577394477120187817411058690108141377216907892106271724278759616213573080902735046597509349017082480815051003083976744699610160398456180439761819036355211892947413409596664171545406614354465736262837760982235431657866152783360242087961547818269617611294930958678451692582063621840312518388102765526057099811687353568423732423251134277870639864916446545876929019792376032621686749096279952365795488519331730852415732235401269206220313108851232418274813046823775916218822579488267201650637563539169343836746411618298453191191057096831122374319893207235272674652080864777604533334608940444254196467676450154146769971782778179129426924497413628602175509303913533892878255085236767307510832052605030940458277649107105155036020854093572960059076389674972565980130872877492296352737275671008288718286227301576235091716259049497581891327697021903088822476211699256655703479247978179951080748459204462380488877542177360664091478312526804820317352942396928511629519652420841912098650145318334942495096729266630145484528756215115997827984292807579109245193196336981745435946527542179395905931783873220584992743372945937867971576386246160023895094687131703214924539091190657642955419881642739319519395527257019878838437101966088052406469105486932456901221394802357806969100010446232373476968017800686843127510674499949757137972763306575357037863775079171111933988038083743306480014462027082950141425953098419038399272767114008943115741756913368098705422836972790490510767488128596537353664219104524251659543187405982350424523274147633474582374473953393503674871916071552284009381907825839736589850240666202912405724264721479104131073887021825427554321785094852500010342235575688660238741216783272334302698851139667928764462648444205200093283101211986295820215481202077248395119161641725191065498723122948007956938305756860422551749339910955688754798033427637650078146861651349143468135799291245457434811439360766280149203987788921632964667051694527945364484535000106647446964820257478500660978422121125102428936380862858767099058555802891259573872483818709554433422768048223341354685290659958094486827858508171045540410732655861050235145032539933771141595576527766034757434942219474551034954147697662565105200015850685707062615965994111113769161848789457509686681391572926082773654618594499238146793015051093596312905925798458268975543026010481396106902863429090945397024691055091150846305423046024870196762475884400573939569256242983993312887465007438148082722961896159373349506033373984902834655671001627168305060498613080021562067725692765361020501533968647341443523124239847576044780924103612388414087571082567004978144413040023549472374453676853067625633516412231596192559515603125553194950241468868660237255960957498669798650535565022087526174212373901525964368799819993199004387197404081322087701605546684660190656657556030422058781605988678703965952951151853927175537689376077984991102772134423856574072898863055781849806169210197088847455248577817260266341232117547819463488719321802165955318538082196371907457414355157027212662071732745698392262617657149158850554178398243467528179485462803012630949942446789624855331227282382470768988978354727632841180660876275442331064560708489388768881525521296293311056845031261389044276192185770062633005146793535189080733198131247415180464608371226244994058850155441100465669354874251715767271086011364432475872504106841411314818128362872817954810462529231489202034224375606410318268679749818259522057099213123762828289221081839452535855687183774168074398656111137438996999978538199616623569672329530025406047150855688857264675463848187905265160119429758971191251232008727935272344422056595929670822167089417051972608946309474494820223807359980314235145977414259515963790734391516015728374480751699416650748199713927738133622154358641914295492537758827475287709945368649156767738883078585801406992984907037582511088948163877569930258945384703300912442074976804670203953160863789430805152840638154407089166140021417357606227054422636716632172670881445638042845279619779519327944541667787065514577450475264776105920044923844802539454336660106464862560082111043933514269162195065543075283937413190553535190330435027882375568754713085823911919489100249669655023992643830494216713218665864790214714807230125680079504738662172152143085635239853650362386726756997231801433615648742293630145632424630166938701871410784402769422123632216538854777821345817373403159631529687416380601713805779381445637279022201575970610183129544035902586546419050131536221959595293031398352116773891492807061529860763681136126162800061524644068644213975845695402874363255434380200139794043460664197133984633866667967676745135328429813340684780787503085462921395539003256751540793259768726290110763252928098536074676055205655626575008632962799657619242637322679228911486570305399664534066224390487565292331296276389424506830123221938134268751377178038252548190860383286803211153672398237568681178146110560290958531575423128730243824416667486556602900709280791313025932958811015802230184912008850038004310524057047178934410745246266216797079374669188509639968998968520731624451610975736393353192331962769737948814530925368238491552882964445278543336920605613512354608855924852984385402240089451711952233081326145111859641994808477863319131216713119598211090562026593162540837337532424889063762861311953517759571683123237841689291620763371459815025160017760645759956351018143797288937404309373558943249011439014757148069671501808314956047002537428684026752817850783360167745018053364554750221463282967019877055065276761596067771323881507277755898720608494202012222025007052528735547406320917476972677979130542132302470602386479835913563918807276840917999192580887398704208627966209562129288111214434010350951990204186179712478421182818004023193884436769470958946761230197504074791003112739488447637181548164505355942016604930828554682649506119807093741410162980481033297797645362658336553966225468085281064106746277249282473891728744151144953491361088467425500050505929976931574959319509420741691563134794286994836463285922649025141532163200895930943514760475031675794332529417725894421227426814964094480137630469780309486647296214480026911327436997082174292387199007862638305752242034772163659856031463015851186200471044142898064612743147275465736613967326475832802772304512365469334337100996831451931965923317979836222366209046245116538756246775565122538758786447342616837120007823463730864903294756497342887219664968036550313626335779619327309345720027520588119040670075031708607591712879999288833895430433437809571697825702989081950208492924078223398232694853344281854171424903974277340792507580684203914045855837361530924162251012082916556225292907314823437049029997163353310897756970129025068989444013029190739883729121606916493064322042311979682413253631187879079223522500492981637621255515214976790337262788767284449597256909430873766286140425036316320115707766817260985305935890072926648065743010365528904501058945635366064567680587869700516556323977871988860623551982052802273279102902711687584753347055386561174841811998775316506175730050174826741387455119870572102316195090103238268111723557401443472519034935156387801714439440871956484427052820431937377902682208067930126555162490961049909602265283547316327355414358796813013587023168138082407647851813268283215378613158051744664657710135591716979133328337347717161626766547206031087931455739945034728284702013725030548152249833280512647283416444903597349137331378416960151442783290530583065885704610044101917665443715828370763074387587778686395097271389543523271917256641546213783735975162830636949882795152639135252463321061968100978970826634563413270584172159851587930872238623884267543956360757218155511547602249659380023646510502494910557979218446687122104939714524478917637171117467473697460643761542691308237366825574037091525842537477865329852795973627137746773679315454158417390217097998858351274752527408417400791081240327472740393011119088926455958732956976254519256146546566403957771907115764753289632943470009681897284921614534837985688339214553643108838421870312358258973328128933415757351924500085930277840596640808721780715873583947789999395988936339202842433780173760549541560816942478937878752648798885328017539763388004759084468169975364120967158912174534610534394489065548049516107014611943905738373776117931225025888274098808543973445621414562877802437159941523553218962149545729518822358865589311739485913907270118156945942493318386127733808704261087593941605903229799444044003162284542730357692062728807863405961957073574084225248047072417280448632588938018043764093241509401889574014614035521952873324343847846695086890563238602053565810506722812477505619250275532287269700741006611076611954648325888112131636468517731860125490765338077680874729506151752442296250055974782857683200821556906895691942782108981802913041245016513708733282985758965143703862747330833472463227444475595964999069031510967113917075331098233060016476390404596557525690323764908974300364166876111698415534615216377880776786818808859524153504103948090655070439625204224474331326486115458722686503454030417012445064661691505698872354582477293382155953228611158563685984543091889367045299604089558911996927827026023185764258350962698210618623144312494602646614551364869778780640879410315865709801988713965805461033208505346193473580055786378622919889291946307673184445089135438441591197962180355823977437905957769729248985288116042730437510759086704442823615418937637522380019806132480833205485853099199605044486700823866245611582257520285126267914237930280685888464673140840128337777228264085010806609826979155033461137423468458876566831836001138825388781950958539466091930849262326606225683502741063250426567662775556878154505236890588790135041457975915379121474455748446904163437339093252257909420523241423296963833083638815716792181407270252018180125137350748171625025747560139885367990059939811143139571079061138651413823107394758505088410504002612159955141843436123058217735301971341371423927656410225263423158649886155017775322836191637235216631855230914786494538060209271256890643332752285601772942818434429471753890154209969270038304729431163836217567793042128377121665906116129273697434485374327449405147971141475964922120260487225958632779675054440359034235364689248390126831692669043436937205979972425877221376982887782700671021191102880461530340479950371710574249544370525895893770556222810485338796092751771077960394440608322403645661926946843954095782649132763986560849754066684599443758293269701145227399856521567415754269132001479887052612449178359656984100867889019240283439074849017881186742367240274661957435167940593684054392534639567592055724861444152726017172865438463817176669583541226336656277102699869770283114251249623949335487652503280434486864802928316315851810713494108403050424367345702973373409792546214896752296428059158637519680693165469348741832698468036422847542144764307995557087235989528389531748959938153500352750171210244207011243847099243211697771788295367829108754929945389983672206414231565614651279904032934027480346068644807646764825527385014602713251181652690900527178400180082814200164993437185615624467772300192289430236860379495113034158737071177994434765836159715836438271974675607454866332503967940807781578583452509116850279779404605268376102431728727642699630004607006261779405452880392547695597969223421593122948352685946593909525772205953101192304882576844466539159217559901316193028303774863056549557301857585659387301212158889633518086119755440243759898310460917481198213556941123253567736812781088734576175454532416496343772144993449874077106702344508250176253769591557921410871975502291858856051735368401493425356513444529565733407724474594346231334681628424316366930823852286767429418498258886990778663171037375435133154430230996238879017425318682031810975995327478430445585076392126295341003235439579259251192562962294910144911088847526560898234126039449411130560792414503592985867306352060717115435514125760239364794087934408493724252241670960578560291054857242369885634839216275168762175826967007100812195881749101758000608015295769024228995580930970362496921808818256776124119935086111805285130351247944144952611501233113777430007262215611406868854112536316091385316797140900981489830633949661481523012804421925367424096340769614978635748005603297681175236216616931389920101676316692704058929022023745440547022602599808133707076899098410570262202475860315602627342486019068347864305754124757529654688150758847812591357632538395903486286732083215576928537217162446509065514473899617623194992689591213088172657300625647714578476028789344180425378776974532378640539119299965586726794412381721903551551260374907137462773721520992665582144665301087403511004359035857084248122572176431455684802142023465040797793019535988918632352287166988545646626743037672530723774653983734251448676422240647230485983072887367047046800032280943911006546644577634311453838147617622350390346160680257128902772762916408695702706127751849559979509593013009114970998402925212839712987242628113558415442720503217496031086775029908650626043977150098107582444995201319158214691178526400450165112641917813714937094496779430196371170737804327423578339919111477673445955310169089896231511517421062743838062774579503068253842493820511025760599250597933982645297440180273218969731718757561280065642658812057835632871481968503262630992410704993488962149168420542400764108432273175723076425201195501428335488959705856625474471021325494081380226718068211648054661388688740347307387134251792221003180035023187059046998704267743391221469775278762673183714179823104513817637009686727359109380328132387263407988480476487868916599922802595376091806383877932464751828955802778487111790617322334384427118185660744964133252659759584323072368096126283559950821865274480757829717340203338751737140956136369333201169474649407798505548687803288935010693115380119908475737437403707277303593383204707505276863724026398458981417327235710044684799942522007945397086659094315367570508112784878187550049073242635064333466026887103330257352968965672200723712314580659627866540592045181183055834355937163667727284882641931287993704453380259609840286973413409982368622300601644760299703759868388853481070569240504181848060672625490299286051923833823171030781034820353495420568735104863415449477608620900498483205431347307646938358914015016521655046968494827710535413041503353506247694077597636610941179348021346555894806679571796863876812082302271945341149634881111147927386167662358304444346474281690431242026976494596076047440897504466748826792315091704538489222806361515192240970846579576743254667905487948677182854822787087719659267300705029692140088416073352387708286901306718121778262643615834243589971853947314432239421040179391814403429117184748658985308471450159235102133017024870911318675900554658626129730356658727512229489405229999923746208248088946501413983734442350222522019800090748724871979651471307956951847752470600952729693880978573876350363755280957883268987375174482561831307826461145353465516328776939296241374819994154167066216528313442410778750335487093819191989870963698203050647651388160360290621296513290425636707183159064293057098280681408869552936585742148880096391371821434482587037703632056468056488318513729220369652962345230008083214389375065857246800987522197551820396099508777656174804837700982463193215664160725404807334008870875733039299936860071060714987305286594004819139192379724310395359605087198829103277506416769537293567543951974505477484631116947140516750118596050325737878411807901976755870829872892021116875071985535758248666193064679165123528188024506299554370411782681988126644186793887140344786573124141705189985642617548476872176308546345160247830711762217821799782803874943406153053430499535797699967043724512883005354640715798725823766929799896350044471076960183402772929999331064950420871641484444944781705621149156437606047977043986422154118815989094406335767086431631440329236045829221117191020926320761426398649629199344759252666905665784859400264717002089811931260372074020636841954718257952907687167746070762608796626617462004303599364975462132777639421596996573879837738982790476271414516378852514001394991852326144318950502559773974754676215977693754510677239031276157526495329109989039952485828554600913514063845178541973170176966616069990800691121093799434430389977855082948272764319753628777776634036849270833117660834267858212000944522601658440502970530895757544269890590362767642976364788261680187543143019819809903622280789452736981145642204080854640934175462675004448310485464211930330805048036597147410058483630464591930148385816742108761790105908330309637235641677065774027289188159823655321787283888396203551587967130016225821363968485340326139896263908807179625730519158307541546436145384404792754280609819375793257656782675120498858125849995431422227420141445701427408532079358207953415257356958781759251930394209085008833472525310552597024418964058479133356909950581900138014987565884655585731913522095305334260307342799331537398380393081129684371847557303087804857168421341044873037447482865042020766891846950727532366513850225028186851428806214246613083983625037031492392833229463001498283827102674021829207345057244984571087024924583647778661691912554274026359895041115197504629753327131347617889654570494785524294943962764966970070205668744782400908264358790466796959531156831226230202714911653244615820545706514131682638835480800012986751026997885968058709456471305574661459185796814727041678326025667238202150487923096157527283610299817686292219736004798711799739471578676869461124019117091171491452376125595522055494911108413714774933829316021359044004455091097242156352270106223505102877633912028400676726309942249437322412995258594829557041179063301659595186930578509865457771645216851058331214461119521631511190034676891641191936174750041661097791218270527186388543281577471540220506551424183003091934758714118486343636525923813339940398550437058185817565403075760971113807205975953067817931756257544808478855076657329140159017900220856609702764930300322757648473785182692664368711065823918873116792407360599049725164241487459173239168552136477764947466079857438254828682141610196610928268957996457781176821110997499515194628557319921800944987535841456620780455399179768708117099956249645209938298840789655673194741109288609992949528003809193632504957905546305371145462436853617690410278193124280166050092366532121893345778739399497944621848394969844055702285853580752740983469939256839232674152857535087351705496957875312206477399178052977440917649352360370232657658990825708347710950778550082959543801744314863626216256465584084731728544444507083146922890251918085268476383542872677897113354916662624970207934728885843551116209774463544048966793145980871385074892496438531416118862444309655297594415945118435927529915304898220431013944255875089027175991907639649199629963957750368980144673990186305076414130997353173596442124000768349351309014547546687857492177604185132761143321407587209999503730575945200209118030944281143120675092974840816804297192785216205906215626362067914146569892780850800372386771492440528805493925889791969957955307654692933121113569561349419343342327502491145128374172151883980112431541329042611664696994505161476557300799129936120847344245080838800818973370710152127473376534241729852578562557026632829290025127138054975148833060151511406577414585180824389671434699749030391814879536080694660607998645438032503271485445220042795655343173042696119031404479361457246495110458880528562370045890354937630230684076193809257397561979941977128665209839279907418734194233327317209029334722504167166467697110842848072600846702948833952296708293566270289851529476163066191578082704809401768443628887318022510960179486619062186955382534274459505194805630872822527416136427702111964060820581040143290117474677853076500459156147370722518670654793113310684563452878555683568081003067152197961504924203344141486990147665809339486187355934525732093616019270140959947049651122051572619813489552597140052995050465195787100511708440808315763208722042685331174068366349945699674869097987207376671293841625524875248744028488997929867086153044471361018439680605080004147827254447654999010359223409411778909259185353357052891228339476512680752294518058754545976752541898438870663709244317149169165692439860833513459587015895458427568492703264244368030603335886992278379420021638474703208168535815964612904802066147969650739248171961156750170215432612681027425462891658712008893749334909540227533740982427028524027728296092869331980664502492778902379176284056712506100610800117944401418672104117318507205899548369428977144198901797179632850890354332741616921036488660923159121061797451430995988769732461932508100846995251584712449730316688684312856082884759446910950736981545590670796270996786167305972791377367120195973113771941357659479147452841923856521233752609411574313637741091347027640712393180091760734232689441107111807403716011989552791053671144142030915324731810203151276192473349136859269769522223326784920478568944014695791790411781587549578098601959272161171315520939551031405812593918399043184892722272330002189137513530527389956959788361044251363087471150056046576242142500346609381155201066818263507675736701320921009704737535188716206988965532163896701459484808701795968820289702049740627357545449995333147360925160512008354456085380797664933820858896570137369864571900228213164906295771251588851008339269344668316784182889810833708489740864403412686392221527620014207192994343590171044613016634940649779645768099057395520910707021351888874347728231338803362425004551219497451480064581681588389722742837035433522669602819737930305892886658413915529157127579350331546785435576499002436034690359920534236765097363328405764085896530921541135245592713919670734083562367144198731456985126770500029706639520600054029758507471723265015283188481575979086711522443807033083051176339420493757305560325046671299276114745677763155398940884066865116337304128745326270247058869862293763829670792590544407123260134907048038584626451541764351605987340822078941058196794627670320452641400597120659216635043108743210606348585203504822644533923492071419830351497973144124057255155056595244965817687477401973826287724773671244012285919915943982345958994265486422966214049897446635918557337122573239996295078955646524261191634410844808945642845791995333788718638328501541550680998256419429426288457489238303105452488275537596382411677618860567153930256677687154044134530773230279874274956233971215596372317104705834858079605432095026697415489256382735561901603722792150919623809331260211453379348143483122595917887456609242347748589288668200714085664277134913674289569030640481500595144023368533398292774328543381668779992013730237027937070441269760635219513860134842085986916621427177675158682630767538509158266296919017624767345913624971255347918338786724474817950378618555580668697100255520143185117572618276822767302393584133271599815273612126198998808889537961103718990982602942316339894742263993586815670969777113502056483375503031335648695238058370405861917341571183308722651194271019984629474165799639424547279203843157714475580477182474414839869998997778390520914839209062258994465620075451190468913964246839811180982487689407641932253446803842031949140952864489715188731615757033548749345393301144708370809944483941775946792674829594942306928065016491687832691319362929420522191049096331667279531930241898470995210167032378153801110827679453891764656305663228096982272609899790555363778475762098362475719399856236886810815505589080485440111755826841752837726547067669969753919710069698945126061489525030401301677451950237456984082026190345747500808943548898315239411478323435208177786765909812275645458116321919839484524478848023336993551020807222723068961769061442663191211927726284850597238279721538602953013551007716737014878023145615100675479675299087075680379879948483014290973160480551531119045273150161081933498415245875146425658213032519214668636273326387725120358558883081744596801393921567773828023009523560074948114189499189922354793063252431158545919900805129285742852179538138759759248811744817479532942873761775190869327451431619349766038154037131562421999948372098867492378148589675898406506358897075678164333785486810504193270084317158559786739147065412860115593135310413528676299604061006298209609210314227789764363531819822660536315367847404910692175659865663114622441808115148844022012670430798324510296230985987180740295419699577389432293832968023542989404749637482426803518315664547849862741914878859379041838923972073111420458115094672042753111091879377331917480857487282499115771807750432970783820609445516475631336907862410817913443028209139979820555503539100370406598080920930270156950752595262920210458694794293571321399376844441279664215906906963689854579300001802860276357610590747666785637744072181807416964631368556536107036114851559099350881444199794796358188907253720012145578399132456987366474677263711040607053480075762659792384914857619514845534380432169410232623618468122637190825474368152045161495390950873041589976386788105003397341614025564819351026028904781733189898657898050097171197173098957071728886014432340105211350463554503644889953478898059692551259985767510768128011313108647920302427747193400716749298075042505911308734712221293616745140777746172303986006701346000625479690415124827013963072633453808166977222288721695076067301393036530992694103757443186302915536179663454000477203995512379427701898123913106036003328020975521300711647353207827621676306487684713303760022607972788063757859440549976311503836471132416749443451207974411998826866468981019102231370558840079654543587597087956417340198351710719989482710739960471029247495953585433529017866800501536272671976297121411326176368992109710844484448168021502499185954201417494296928860807872778025676714080592580202178863397400944591772658019965007035097266622348415018487481085662027676346922797535070706340270115325111587013293272331948639082619819034760891362592166342236419263641246643365334320408512429994029049377454016567005262021856384291572263417312644073425746397889146570932379324440682576165772893178654780748669791674747756446652038004715792097436052428939664631992685916162153518231562192010838966129855246679515013915787686255064352442028240099110971585495662144518433399025602147370116150493282779383847568119786327199876537507353340861616762858757285958053140711120342547542185119616771977336744828884963015311464787435177615730640606051373153521841249096645671093551146454814158961216810675978641002574181739405911397017408385445893308302175101110643656690394088642982046443667820375824813021981141009684076248451069683432704817340254318508352605377107171937145796335348547332297304709761195217372925839757085989832542387791162390167319564200283143636190569983661352138332424076220861763278802265898784336861312965033854561324602179362987170751315686509059217698863839930387642396439939701039720461394258576388046471414767511853025249835390122869974123497605817480023237212190735214573173632278707342176814019631925366272195335365844569470708574323387094144252102763025650616859602559919529405943134291227642022913976734722588622687790502770569084418402137496678544602016345758568955676627219801147038010357905245909129717210864939464912557216943963967678532521567087726107881744783250570884623659703822969508300007720292732021189878389738054368941324731775675723917884686300676715012135666608178791768679994630425518122846551738218845204643592037441840942941719160775350331512970197368613167350859333445938236689135542463129058052645748866582054240159937861791671703776279182284313702946391621144872179417538721334818474459877636689813827770071272408410187322048180223696475130121218802441596389561947174678100844332703397552519436723885613379979875204247585581258322507690541206277188263499835919669963411984187748524413950228579404389482994258080997919039819036704477787091179020104242708922331710018388754334709803597470197139552909619880405717138795063526241108021871444416097579079065025919550190871960412543917549085891427927847864562877775973280164526349193549450239213794079609950359492059694207879585754191769262532945872314191220213261007165194395776235988372175788121558408601641512058909904989654077768193716351916580140449089954655508158046785191662364725546524385669374888686788410428556466114676760436348969853166770323349246442580538533565687852130326167795371418965271713419388964507764485801329800403802211825235574037001221459127624803512670295605633120239171915601380893978062799820462808107044860743137053248147424840568083887779484700748883494250903756207066244545444684649814338636074260228411186371658492096051316547997603650007918065994999614957417675310911886378196836247594735734431679137054354653726780450228455679372925557787195736995559513504640968577742747564764372538096793862779860282894753810777759601260971297460924226346884377458484271850779628743551742165969603650824860552657447617732653216259732185497418950475740375886668669846749627665811475021814464701767631491780631057537062693748363727130559147036830319925866280597332247708364811345908729020302996479574063697201846396700083431927688672784012290150866205634445920130908412317066112476454196369975954795894159168281904852446419621499383944560457084288024135888487098326465364101898723528293514806356483759983912171117848322355903136570134640831206131414340151352640316451880627409484500638560176778169096861816725336006969439424919456658873732079268031775584184933965349840193500283961917389548980705809611764719809122869635840395883555955316039372946149236546151004370947253530587060748922485589848644051375496458912770072058545168833806486087267941402467326882160072451898843099745645115918690651444183781922817852717978594528127620431309953126005349972577081288742037101545095686359727920739229299995499771042451669510032046320212282399282676690449115468554851802851143318540906066086320403455421949556185048230154258265003401867698996242765831887913320950154022283685002130292348220376833252877610112940240950542124034654105003262995266172724797522181771561650952071905335215664849106907522652947894894523812796543544936189790984607255311351452076459831126453492827624689365277964993190879427767376353024074062477326544017263764468384892529038976374864923361869015296547184005045001098820607890616766769503083784972124314816948482445580498600831773932299285886649467780805955319768028006496512578685161124257835992006171623007819251684848560636786776610290132682255430854181521193633894267549460118435436297197140495503938118186691851938937518597904549899091114754206551067237075127847382688422320170891319814599359839753271525450363663177257779160207437877167147849992375946152240444014216335646723224561074446958436080251996249216193018472057169028112514048686358274086037296495422582197620570546130770007296453535253610145864347657365909659206494107032567004432474141088824202857721668869257168800329777355386076199856444155557000631914437921968246731467180776599198821277346604013594931139446276969108670175791321575746914135821856221819593085810109469808367695063649648687442618827686930491980268097371368029041877693031356018058181698206357278347993173630079737532587238980671446053896804411577415285403622516884868647093131214346743214602813941872740126220740070256244819838934456147159800287651089342566871192711661476434599945341717926168220934560970106792543828000933472589074545163038711170208997117806003972413695448750237829257154155778732720154305420554987530790263999462993547237652744990112808653714708453405409442000486893023558747365140535814754094108225234776426255808780322195943903837859441463433088330058800159708361275924233860982070302067769233144801497000902215147475340874313363543412035267166906626513218279504964789120240379632307190127835796806364646055826534519107645853083290869595984292462257635378613327871266638898172231145410198300808205180249381003550846265326185203517874949578857781517773955939696577054200088477450425684712024241293529942536239939301667398221116082319306739189319263896504666291584281348875991160489073762763811490101252011626641463325084853180567474535147808584063240082522784626205302114666875331229317482580613115792428078274994546068226217887820463925360835286873433613338233482934309893527750162953730075608464058517196516789383562645931893966335321840677729215736441382007515811320153453188446730613376373764452666901436733157031585580188121581878217740436040981348984659206847014470027515536103581655600096589324971112647408121910853491195714837208392031830172098910737573000317177942597533682968614901751521053785864387536971172763428863133483243108052588496383266531770220787959535830430858808398168550355366743932792074899578885096222160964454257052626539408321727669727143243190454556456852402689558953601179709926286320262639972911871686259594499910435732609325305868298674449537737580260399334324110948063925143219555184393482382909422168873651301158535140581843857331752729141315168056308381109097091335242360928682240305063583689725030893292066798762223695873082827172934969560925821198665832062458833827882730491283354748070969321113071140088751873322465461879750917761619969403077803637443984859800186420824981954748309177297927195642408943982983375105572135329978431237365454418083038788712125153602754427263954263269057355438295734594774327876173520333847143104920767091876955682967936597650418584265969506122157273560365345794734954402052237282679578490845476865373925696321753689620146509319342444309735621961008765285222981596071981579471142953165581655524682096013050689367487143581109577240141822160543865968457273874928857411600392329046555972022393442616467913361600356490802723180526872432780668886696757763000968044770107477305447330344144055879777991954148679729816983829743904037236583788570752240678232254213916637894587453319747122864679340366251498586544139656053362903932704927898434903415620854994135142155326854672818231105251103325278027060357401867420633965951287896046169380771628360457778142463679758383320130071272063713037475174952733055004553143230028466092202843997259939173255865915835560834709164579815871959938851292496146090056658422867250621516300843913617835846717515473416677854854214094897995831711691517743258083076927226568858758997206241202018748336740291747936203798086709060878064280162814789370890734544514612285387208037747641896905350827979806557978122458132576073030901585923507031117291977580344527394434935780476566683584737486960041473707229769946940699361931398755260611272751301744278283970364801432964290352326784165078623777627901131139396969205632576288888543191870806667578062830009709248253324836869291935139598770832790949109286200114114762212149607519921807397931273191331148872054848514647419542029759835672331101716422282659206520841984826598285193552501880877997325730762123862748455379676809448238657514491352681962821240459677934076038070876369525754064582617419932726472752457866067566450931652328675996351481597657655964276596511271522222417809366918332504660856702192120080095277537282041864530133116807276432244751749436688708342642404991292739983352251693731241271111542077528956237164799097405228932059416200076208521909181841587688038009916547909368233638118195540545214454292743016143985380902814723768444103694747927599018128202753520626874729076343679507186972217899196595606044541799389920348644418963848045711459553254370174338813627503863382555519716940508353972451933958158503758575923915208705766890910105468741646572662421261775344997737696702513003004732950959361173158341613240180577543824169274487863402799852681859082566353289928833254647961882942021012273718420330761183906864143448793089959983502660224489227175237690129151873539105447203318434688999721398939670256591663758672527858164038936807949258792198963477323333462228714712567501297551998497535319805647618670444684174991801566585301124070311455932057284721509598521753448276197991082094614740646344996960071742405657837453282486284344370374282109398551983138619951669892964971059806451522667566873161811674364874504048089941281635689675069118680957048157433593537205072461601715069760806551642006208664583517454176951161866140963996137485504535361800645082065313628692098810699246600512865696857048944947205117444623740864167576547937396382386180384662419195155200053672664926915195400050568256287157032021494002184540094966441991432773929107641045301259796391900154620333524965132275800182276042533425517536310449188675259507493934067679861023824756178449398827487430408917727536093999885449111985095351690312928611960915733857797500285140796495524255527947044179518811338267378300724644289326384257655551203346129753292086006617251161615478436488977005333562049332694987008051042284521295125799159286943207429318309648640225043843203645707619046778518101021418891730577143609460432591167935232772970442271504964519268197585778555958426430317359874801619192865183012329392607483483774630132714712360276434930547055694314264271778910233522829618393357436734628224553883929424276841876750317726195799369296390842573929502460041497042565032755584443721175917148917519247013715210993463577735544736007694753858283040706737446047790125818141543089685116174661820492418318228439222854955049976240453327395809533140687173179597437632495583916938561496203805772379849548800740676504723400122778451429968186970463371715757638076583873524929505769292088790860557049215634584596930473019012904099329622526950998979671872422693789233310946690943592939519853334913317166516736285478547061616741196974858141727389674499754547467838993526313252306078238979753904821136566482130248712757167721146652696815465125665718647453367729156807654382098976978864074553100443627809337171120142111862460937028119663127108154105472760142700071661207006252191698329085122883931482937523893801252140234605823379093784359437214713559937969181365345062681781875775970560822104604159422070968433600969000053609296628685274211355391219587099041013295838305543208099666152518798779421345964061404225069351974237450640117424053802067080653640356174109234510945882903721477723811531716988854363963703924698020192256141215131129369488528161165929308982584642431639581974483298376314012148409974307768955169555179409736187577750215813363934057357804214751828871926272168822007350898961657675150940891977597195029299300879317633180353678522063249702880686908142302104942416589667178964452381789058484078503880969398418299006912539498402317789624446872572346143112496550765012938872921117693959858966654368293010979756421898778877856171567367113427466340895370518600653484008715156694368228446050668147771241482759704166776411302241961139101896020693255601439271021789630939010213560121285233409363319344396180450417316595939001750482755106757584109583261726002734424983429045100526953882715673289451948856744860941477283893327049734006225851799845294506454333681462427991086096814320726722441711751668906320266711122714089281003776513292736045476029621227902850334529250048507026763372813358363320546889407856904374525023137200088646372099354963553711036164780903948832012069399685225378282806199430569328320476267368810808770718268881264386208495419350256366069271463717615441854721666460439615376273131074411912178960991985217954860720593517625866913228819944619758070662845887305474541613035511064689249583020869972553020584931346767866186792741861829017361777262175464721179229610553792202060813363685485500191781189715029804780544815274340889797599411027158237906266280738681187458484330950287181213342121718320583180731594647049736593636223297727471141941044772279359101761514897899090747577430383285138882801886707114665344647896575543252548331704644887898450124772134453108123358422353271233607112123863711230247384941894107649706870439262855896788457739945785045974085883788410704156930307798312441724653404481615321978207014829305719645077230216587914151302796654203560118732034059539536688359944042426225103585876172610627569483790593858031587062224851223572024006785091100500900610503404927734640473597841787042821892257628793149268983790846912064657586890268149883376853438240333812856937343579546900163168001297723713154461126286298830433795781662887372673625239286415582437444591326077474616786177830312384129314916681613155686256188663092802504604202445936114204137763528360221734879537196356304849417361212294690326879576622713503423999564298207884099524154430292692062334146761423750719971566382318234626430139711085611479921030488546269793008848742435144180988298764297703017781867809555535685408136922615785141984665208686126162083169117214234042888673435723087087500128283516902000492741694427850759585895435397674233018675935638544546235305513733272736790472059194696042812488994287062231270045197764976596876227553544609329709179990408639100482621041141791231690668749974570436203202527125641360245078169287442242405593426172424398226243820775640813412113575279467680475244228053308673223735018047023973355136549652596863188607225759037501236235604292090757936933949638663891550395302905484306011954181146506933279612616325890344560267416027094798527001143917837755413672729421402442171162674782243496818162166005147240665420309395507670210460213553090556918574279369728565721184557161894311580083692108685288769340274676166163988701389705780058629951277793629149786672894567005615988783897260154939626639860481539064770814333306210661446081053663264653370454532960223990605981009450771827957877514386984998076888568558815183721925058577586781970090664678065809581691853129787142608386534695385685416505363361750363650480921799648011348695815622181149704793375663987299056222923208937222711262721873667527499470573933792412357643374874981752170050820085128634800757374524819622538765460432443703858939513213020913834866928036608116538272172638328726775521846713679202639087863969680198541162389403877151191476779882588925830063994913904754849688019660351779683912630066388585418862104114349988761463699462212214135323614112529629580452076374000126182265634567755328417813721999356323898162297341080996263922169215971048445922080768413989242627695091726302216323824436584677034348415490787201184777809407106198227395847458644413165833278992197507395377892173209303023428081496325102873871797885943565492263887383686798206548500665710624513966229033176928430815253124223277937191785211535629978868437880445225143291158606084045561719061942646154887030089095232936241864069912537583926562066038745564568977587558718543066429452099804880661187507724396953799696359767208382729447228188229492928122865327160203980888258221446759161506810969405608369610787461346054864260470517577765476193676379266335760716420266049295893248386240952867637419570042733592516822938795953810373815087582923852984522966558004515851658897870709275031721404303045305990437638726584346553789317407692511300689345884232492911425474682482767239368008298390431817814096711845630439585394770303617783805143761328186366682141400609697884154163820605487017101837109195432375878375723453916121674537522379648460113397324768122740785125032704508111630939273027938569136157414989788134620519554511664387958710979163064295881518760429554958942891284517947239874073245151887461769118500269784043503912268554568122314408605833078301516884044558822857490889814126225373903151631281570607105117873701125205185971278028377259086970929675357861455141532716544451506107844068733184550389594423843524274607184490655041735542215730707503180594229397196956757846156436776158228588515106410095685595722841077220564930799866127806321624322193606840545770631538175707555936353635220883387613594482865102566067906779425570319745850726182034149588024762152146572792801130892439303254446120481848651056492745183626112346178121172638009550420633977527517075199425200752749023438659690772821136049090218179183776305730987349301015053917992051295654724974336494933842053374260460272319223875456480161993046830009569573919784587573238675415143608591135394860461583628225490581638317639979329771372829596152366883522025256268990259646786653870553296307450544238962582945948498675427055304027261385917728865123185269643050640425840280642649400738152642329150955304964246038548032903527552317725546985955201145833763619344766499869986707046779500235507183620699863792301011531417193987272137406857733779529906840609274872117737541708062140462902877924084905565811856198756379758622237828936566222644612534430072282851113972044116617883823610869922137230162947187804968787982083894295348663688705764371037201701185003126699041924881837218238149624196493360053300290552215156503353072483308140220441887165798707941071491598401920051646771823379038601243979558096728815238484227425869106466543340601026142191075382060746002139067427064866206308131385670105314470840109508367674434675016047512562574318133289553779268844990156639534315122331847851806857519130916016914503634832691025277711133115698031545388996442251397163063426135534792509565357537835269702372999590162757041446134686647044994964668879171602679494883482949160415664015044740715614520306445628704414753549483175382544264680370168057211344022620597337730880475646701913015092115254773369128584569348075310902054973598945896937336857523372190357563691457589087915976710777885333248111498730605542869169697097159957392528162004388526712463284415731925360409563805735898001632099860776549191143869931176701659342243431180533758969629011020826517301730710975422158657181091219431671824704584381597755674661439856758772232633894394417063314448042363475996284332586999852786547699952833497298198461631039471543770645728561228415279868636201014205813624672230903280165892534587293581703454556976615467716591196984139128252329346030516351256917997014590174291763104576109841921661991373484978166662382165682599219113019799124873348027429458663628163026233348816997440445525071834063190221814376714259997752180568765931708900141889186004393599762850660309687469523287219275231444814074887622232107061153224441555025814568982168702175775204435641595306354451629633036673917460979939885119544509570611421753448698382999367861146296602828530967443924807394328791376553439332908510455534918208896150620713219011347455345266475674567184477920074595995762749549269362772952288584327430423566020930883113319408843182750871044397991843545655387589298825411799806390131105467296690598764676439345849063264114071410664071476648106577165318746222006458500608868935275425793099936283981723937662947411920486629958600457117224998547247984370198585615267487956637838058660597565684572443079872336276177664795506952249558955133562050485034258915146471628334554931202775552307475868779875180657396940865087708717782517787664160595714427798989437466607578842373212694513579660073207443918155066789124469555217071664673878547766296432813491334055120252901817663746682773099007745988382664998031036704528514427004948753568625990827780228952821074902099289943624869478709536417754661001434114780007968802683123024472937963263854266956176495556585071509142662757352532728215412622580433509962415872386454319445404851964185337209776126410086586306661368045054696954897450036380616796333109813241693417008547982259986845625665095218893108171419106136351676011849363236129006199067373182445683264650772203188552560199601876121225346944110549504532727510856350656293368974090375930201830635763231369683263814956784038641906020651891064782908292396495724298873897372145053955423318739348190942784720010332273867480237248428196410176300912544457813184472770480213028919392568956038159337912439216942299230011448439733450814038428524015320270234557192865671435355397424813403332734311696720589305555388523361158377833474453095728330205631421829226596343815479509355900349675084541879202501029928104990519722664171788732040504313167217647749310020154777344599624392891246744833001479993736405321086072789280254260913067612975459795917384114905709705705885152500331782805542137240129763266755651018995807313829836635645682937845045655912742090914882224326842326476835687708561916004448360171174425744032411954608009973828844170875766324074562806650802448216629292621168735069687636570573508734348089934983383555198503358256030600635105633197215562603054969929743866787434908506804539524673600844378627945976265417381601278283157797237689977341141159782194596877200277428391940605141853251022840311780241693929413830541802416077987744279888708409577822273000895335498827423736821690977587859501837697458574499044904618878042476466567560753264726518730884133325297600174375412091812241291978721312766708510971088737264314148228602677869155230886541232675477338200207094978480698388177027610621063653907993952748878523719066427932517724524862123828394403735905567460738101104454474866676254555748828939520150570961260254695497424725854454617453770442636092861431578802694109987013169490909943708324607404424986759141443218955288661024655575716055666105531453465137316912268155722508383657720817066782026726224990179220586682732558753904802150676986641712991476361761403532031760169568906937082762530479731558676753848870487371969970636730965421071410134454324106549368229475669056963268870112004485922947297954384386303213347059660819020836727203866693433149769107528474662142601959846112767986934632461521458282527095713979394997491759335137587766933426171542842113399463864136527996207333950671327980860054270580286853165339505510879154261591422670185192689111102267908936039888506938991095191840540110162563860855433452451105123624678738741128415860894235704605958781996979787708363152452175290803359856746981779635822207019156177117888191815106827916802839878835640288002059798601802049884816368983653996061448478844291009383146715537779872429695642370380901903290559468288928632142448906940603170883017253801143227937373678890983133832598241787120415151083041335060140730449779411345611446402655039722896209101791953678581323785391651459696423338393216139590581050497429676926626360268322236442301181160701533495770958641288985101208152100087625680497898630680641364245411843059805468422643222022424784861507658459016038880867913099166163834745570520097688303776038691058979798099910044592027856070469908218553638219893120836644241353627414969865518146301235029641611548822331650645999492373273379056049878116040078395034505712454182480987455892237359191526757292502632606521642804827149736807472361554952088042458834051939727077380488887517205809287564729947496976083821783119645011134270248812043114450102898371481232616131908158655736654768762931505264967174711540248390514119830285453200257096940700593907907646205631280036546687659925907997732163655269774625657339288496253466529228543366335943423118522820245569787045014440562285421892836832080154799363560933882311636145288170073037215335706254358464522853631255978612377694817953265293788239519693494845218535791172314742687250093546151669834098917071429251866618300994138727816117675951991791681668138586364565513337230389362046799915617543579744423276690644560529661831532647583927108103569137564558395540150864683608811888904356034321887509400052539829560940313511095791562174935380406111659346330637970045204689229788037800262141549567996553098367634169114017612297732274283074708800612227644051341190392909967922039911457837008905103938762243138917096867862638061694648257701244445654414352286581036180785105130723440519688355886034253803391666745252801139480540832244005069077661259971448300288731025528396097362248224192288298042619607976600649691031243495386512297053954997878400969666617175321010519654383165120937924013109835277492225357814378345183632134199710873407606911420718751486393283683309358184942375025310234824352415919165753258146082063108418057417793049627284592185934301600259463148285838221923418126866235281963369176375382105907601652493170932530221755771675756886285261595376313963765730986417685734304079231601078258221234678547011460826867921382650786607792373615667814061792354769256193816524361038983971161086635862596261557644439681411387490467291953971591210878990900754239067694294814740608453787473455216049430736047925233831567154579270753781189682830950670212391226536630842835737006058007168018112605957478051982709984712059066837806997112830551869303600506480720134227784568610333855306902923212169621855114892326758561874410324959714897210030928414559613637786622644112040801773380607821124962954455955410016895761979497482977056542315994451037819440051977764816143633636423256935952203952255827081167945115397144865186267468095025085320699751123607367168282515701287364064026322580666490150916650996971250943524491474675770764478950702741401583100837397105190678182369267624479796618874147712585490552809245054628158065832320620720497773428249123553890878651100827240764818224166325678159400415655883469705551994884224692063336506508761787534294361825751693658553280781711727585109332815626805606878887781484860955510736889674193125630852966200518777033026844103305993038694090057317357153435540615227173072278313998858239389031515145801701418571811678529868608952578805737284533769799310011546234517553191733244981071742144700409465350786751709106123911782808256874290498179397891202509800272321589295885353057753581026164647883241858720022338280037681425145637002315856159564751592526342389787706251175875973563910683051335974771304311019279383091352305803283749825590932122379944249935655392426967150037245632466896896759804984090239775213267743660483903398169627470777205073251912831706199028867372699901225485453774057277851994877778885480327142772559361329575787267528672159015287448205383617224759545407599772433191117653493063260823358652043592310219940249019106867657180598453329690732055272914891497592600840750514269089173742323005709475518469257266273332768131200486063427429875549642357371379571685269944335968074839642485159951065838228045364359456920000279577359451786855213926899462968505405459993856957293921196106363341761244490490837752486183933928406593949553168090738258422039513591193641168009245606369760771772242628650623561907878999967533638875739251637516647887761594322707240200064285677553129754601769158061096774218291799384179790311916345010806325156365174926001947694491260171494042846278025912022297577466170981418438027749528508982896981144425227156217663430843526754971288447700039835280252481882531680996118197968829818135602140973287541909852014488530214428825277864578891898647083354979425321916452338828954408077913899269191895561451453020919023444191059015623130406408343074185151075977082465583042503864040845217127592948041924098335676609456443759042310303019821935243545733380613423703067588527357759385388339004550897376074882234617682486412858436047660997008943092967665437531738386820411384154672723439442864564882098408809926086198752080917822521596362289715207963237891013228521034135978650545618663349233124985887189854310432052564201074782277784181110632410356212128640935478141834170165419160798303942363473487156730483520384550161074538927366999451562572753507328373631659959921407355677194804336434498646745003273339439046426909596067003079428435838517664470606305567128657203059310739712881601146638191314102773419936375573254295418818607383955748042194968174919461334325373739595796209475046002384394711784930140985947854660345750657206693274022819982406789661031056242442523174460562371731477267638861085116787473313425154929938496235568342349650403021329511719550618266643556665480186421124509086390167083851446532110763267738479498237908232513583116039264601077577741899997869451850034523265195065751267395784112691565265598223677056860691407505291344418380225300119447236381081711192178349367167259661035424183711960972598408664149757924087076605651047635123391666856465419612553657452435000517820179875438856621552059975224882339848032739653124405020652868750246766548993731045660246987973507876282900316674836865474734504545942792294418244643350626497508979553220427127968272469972351476888585626953735344284813997812410195938422274633030482985300643075895755444113309988114643688327189922856581999481465391954146305199667463980013821130288252070053055184458512260688673241472069901036083574794849017478414311247308431038912526130483455596116806049381977473763012290489909785209737089214042597349663348103802874509436808088702164093851683179599483038161024423919761433785746622589999487770681781114295701228734548874559940825083541461547882869534828621874423500179036665031251588217311377766096522331068401406331309714943770286953051335696970246781913874071147087427381285681915097279147935268824435078811367794218352408699308705766606332564446900287510864861938347499264594859626780057678569891461887331821879585999523625700876739608100342788787947678380870819167866600800136078905759490897371139927905942734669013208473492266335215744569903342173470296598931353537288069811721780339755768849722607506190906049836989750653307101350310832452826305146984508286630472173041628159424989241649051276338167857466722996901708117386526192928852577474612721719365997974175865101225365138936676594316374281961953926845100202905422420032665672701796194874420926623696627688232438513383285907545212442348933523442826878501478300915717724148613071602804495166247848525138220358064469928728284143723923435500366970660574822813828210049402961362547795639895845211177826280298383951736689409965700815950045109881900667745261876731678110958087328980075082104376092960300021121118457536549388937918646368640217009812008161557080978230121279688506147321180097936438446313098283032871517482527641009930933891457424628080158304135690748357134465140200579319291863015157075286198433682080141035822100254452558587575594014618077542487127181614943478843089580424490350796647251188109546191161505582242050097288025954187173245297512329739889323368600781254058453186637333092639924730986937829346421775832004548702562245527907279524253421511900475688001789978597827160728037749961148531296156243424434286372848607747248362612884200907628586801963200749198466739755479510914479605159751400987138194289363236144027477331819116392476684765591488610283742686476726159998438301945158018869384700932947230556381515607376612720307294458527399853410268755639038727800285950140555905114376456071383689894665433451659812919326347094261348814633138710224750193591460247865852595524771195271314144611993992646352935704082700525310080711619790186472216100071233355685352135568054035481633104266676031341339059696987771849267991859132787258878622100087351782120145764061969048584579348422175200106804064792030419620886363565170072840073332237111232045602531859936505169551600857634146686529588804067884014039301663045809606477713782805950788840590447679488721193542272352701521364973969348094815795608358215907088326324337764473487511586060801998953639420217664634328714448466882150797499744253912390221419015863099657188815165951166647076240822574717237039212332721071304916583818381086299564506524577961274206362796133450357026024582566934283655321661697673552170685577624917368772275609530032258270219988608411211500264476258894644444704323381472558356943723469855646724075671417789794318607459182487475108613908215463669019820609073414710615183880362021518815891195130240363886633283228671356184303989414102764929938943973186594486404606243451003869023692421810986911968381614055415285004593875917755120287289799460332441315937439308694802482092881001883958428173215659957649940185431049335079977354243325962490250183977881368234490896099413245409126795116137475793980714950252829062370436028982660152678867636004509221289329537666338543038780343451726613875767381258132446957247652872696886570824447325431379862255826965816457295201303350446317817997335250961539905360347112651940617933681465900660270626874240762827921143176779377297293405782279706766815250379120014682398183109678062294032334998649259474537528025458355802402629480592203468117309181425823184997967978956354095615291965512968238617522951381550965009651448798225727617326284034745788248043855480929900848881673388719260412179435017175712180340440531993845665808210990597661183546895553257922133875179071093969470313309796373323306297517256888841522085533203628164238081949762458998467542105156426692052520813245243228934123315408824615612425307734037551334540233504224119361802567153306459338132159002925901773285018788629807935568564658960780715504157065514892196992524453122209075297578915034373597426285647505464391751990242810779787121609906412086033999696579375080443621299162665681132700203305194396734085582192207468599284957852246293624051121357266339299861295527958199131548805375537627973066160910320809498162044966659290655705674206155541526985104550354332421324102878225541318112825048066010976031693454106019678092466041232041764599126488238804643836305252902268572368418531567463574792485463241156915129284643699956781921716829164091256237609548546548865024107868929560061175472363969729313461584365784555729687089281792031970518670077547252459725504135588080248669436585367566730087711790227201044184887556437803690828479865552323925388872913992733729107055132589665464854677177360950275634883811774475940360980106896804701976223398628953441894676561025200926624176320113892635261413265226229664252958814626324830844252491418809519644771671101107981814585131693320702861192292955808311516898664902031972684116581413636345278619868901036776319598247505641384136160688820090001637867922769921528193075272095133464854525903407222328890221617272937930784795719211711115250912684766025993364201998979033847903936501813807657135236635678744857936679622413691407200639224304652180383749248286879033645376866203684383602723821443667983328528918811811585179907741147478257242553961114142259484281914169404804888639764956112698827148320411604555916641927852641850869030837513713981098052852321002247305702947831922856936903710607317140959614214425582078595991470144524485004028045425704742540088829501199330404224518050862333391049503008829411868404751139920161448940730453893577054908779880756354660857433490132750933768250948100139999927520248965061797719125530688178422110729109588747496799368688486269341944365959965340799615527533460047008504753844772377002995177796580437735001064349237458680142326400870896545266566107453411595828808937080068568152937738544942272796466979541904853908327880278413582974210383832506379625444958620424656877791595880160789426651200472090492586742554442605149317052987242674011116451451863124828928326586555497189601910491604962327880367590437662469999851124597040751858738685178831383738778573271324233994277037063050849308011678231339211433689072291583272312196622580022873309926191050850981416388238113289823300052934700134024207582265330129433082122076154486834226605656659798349295259799435008904776503947236982379652070440514343090342181913289372253913958468489368201673636757841059211974617072626792008524711335197572456719194008868252798375743700131989024404008521024728075718535464408122499151362583703445115881006330223712208997527653504386031113820978395785593697606649021345592506077811387236858634943593743311841022882588122563267665250694523705598875948327464377235585469064409522606993095810219114248859932869148739269719955371039024565497725817076949076018003445940590804225431094218721563696616070950653609715030652975377889945903833666043738983601492227380603637803766804977538775678724800817738911425952509761378206796951813795580612409040078263866370488757274546123086589142104756089307689121066475931573184869658062533368090396706459221446171401978213691534605197637092278982021121462670577373949201014123198688063012041873802084692308207425248088274684443345685412956019398296830387699586834786150340253805101615693294091986675688218879592826418844527706517202599006939149116640766837271115819992697133675061337433991663132921571277393006133425136674648536936841970205759470206046962975752624381315981702752477864107726267023710839461304215585549636388334135184595564156998176338156542782808249438888720677489681177635063200293768101174983808795009176545202528694663700207742144591605350525823287682503337288745105579278697604987767336919592985470011374642553539664688267561153718170203076978661589048972432341745723488927612237857906983421651479946268460131232054471668701451285106555919735160735143517011391578673888208806824793411682577206788493275939571523062234061904730216411356703836362703820230437474302409218671677806719675269109482958389665404316988136267905133690153043967830106923131910970537740315914039771889327576838708672059389836959504427097968966259159288382103450155851600343176531283996568826589586659462182532559111615314390233040713674179477568047362880293274462136661383232682626524833176091500017590170203621660850630402944250691483740832985057170066671173267224481989101572376974957064381202333042218189915429534634162632847541456315230591335307856048668378689463394440091879880742868017417072052100879179248998382673771477272840992820198669158325561226750278006379002814231646722642142069849396524383452378258626805917734126308778362557286769718468123149925082927967664358735216838500323442233590980351488869851957357694908362275745586499115758000983823482621962574872594706931237834084493922444987587287774648810194024698049543693645198151387085538821555059435872226102651072844872469534766785785574276430488871172900313582408687710643380869766745627767198105007872863955949716053144494462545978771800616541176090839819436615541432743647550500878513475899856150232442184314805062827139816631602742478158115727981203278891229726118414312307956454055316389333589305110623678070647595758780565876337524349181091614937328412976889987054189212730723116567777067782038178702488473940670179879259550463741343275288470437106355703417438437742722871650080777044730050131190560641864774988357938980412515828901576304317533383350886302977146576938446440921075585151329737142522731964458707394834344501761857633676648940139269838035913674793414085049744699251359278149314891765491472193664622556949637094450376481336445241289540058677135687935381144495881142387064443088065683183888003059085969431126645791648953076290240464028321080740668926242156627369623456789277459145746168405119706417222294529015631485284299796547903105503949674526146025961532938379692280281629465857950738833108735541150993428330859572279162546407029275883133226951762409337011446596938348126885087384896581337032978253155153769879840367249865495767410426993291498118344387418063085804327363391716991803599778407039651395138555834170184080644456059342052642079320273341270611971689191576199489621083062818208053121411015321823879640267454054677551219754712533717930852727562474666624158521431878165625778441835217292618259416587053934323912181213832508946258333576311593224910311768207673965859815422572896717849609727213780432743746175346222560900030909960140973139492310911724474636518864790940167498164638179004439927522175352588489870864876343043829830124313498632097257445570376870306277926160902102083518706676109337880283754509256481944302968268645720949536148387896398694436221448800298788030454762063047455318890876916599176422484997463106835589773129446717111232604237010179335283437987006981774548698266772906089641368739589740415411236591256348186541520172610821217263574394455786600522012419363378651307407245746217644858967397585912379461928979469476905676447525000520716229205198853419794056546791674166618813199957509310794648805208327382038755386994748409920299746734814693867847448427986762692000241959687625824515184302848591034827040926096112164008932110745332927934163283519727278878763073563789037325182558844397159891754047549265137667766859359290140377023572675274011519368845065746816559470477585735038826799929840315651077984179399740993255427025640128740477231400814017352178238645416911544116286919470359797450361226003955051884865725802863644527836331784768141029225156154353393294949374989574053018371252644026784388078808231870006029652723032922156083837592818468889458200014422665207535703018019231268009590470638857066752264331457285770604856832227040752009059818508493430268729097329901772905295547539855517041609853724086534728662449781087668320162818951035288509382147810154587974177928189224378364889141534126227960170162688763490291621859784563734575185152289900093976388494404366872925545903785523352528134878148211124478534543686720622925360983548213858653456288018668856489041477088817990161971247159427406723922513284622679464373627946787813384708246562306691698731078453389265547905579319820155934426303842172059317041248578419128483507419418003966920664647982680460339824417303293486019832619209211884330055177815806729385645861990555064803061443775077326247565495926398020484549917203596592887236106021272472649443497995566045235360743249011504620464305846275534761936896361423825310589927724819727032534790217620518661500608693284089667801549795822034470212925746278223645363332270194766178534455288519651181362452825932677273497032336104813608986119093777116829057974991620852844231789473842894214437256023661733264564894746704598973036770418402190612145129262414038834846377510228343239294974473980398916278496445078528592211052161033841937261818472230684813699030258545921120440929523462572032532150626624831983635317267839006622228085961961983964136476389601266391716728094509495113730380614994168432957736068675491764348461931446295127638509702623697912734750007484646540561546053936925840632407873791706868364777746590612957070190023852140002215973015933904882983674114589406622637086683786070097702778188263410108160239154544637006575756642722093173830632529051524378163969945112804224941376092848203031996547165811754022873530087084268023744442554155488803149334278557862599663156636645116888138971425169975630923226183276971199020109000448388691659947770265525580556389209753602259213501104403672293075592125509940469179342216116226061753735372140558148627669716623432475605397042730122243158844590695641952001888520207718269931871985232277258737745787924214903376882308139106884083782761194229755867353640904737335983395356984070917718881242606806197898552530910798828853984992028575624517601424959323373857418177565388118226630951318213488543592796318335624425809470915933104008116436800845491116659899899482053260379022149380323277830291224394925048530459658300954770236049339420988012288735072945742186283992030332785697083131159595028687527256902733149706049097833126994922804432806211277100800534668924853514604185379513742896559901288909941643601922294745818237978092063543122780516678447275880748318815367231884321856681255475743317759534437035642251390899404576702345544913007051945017296237979982643832338861386507049585314623859134194591769324019368478955598955456736563375932079470206174688510313724188898841798164550008251157155776400214913527019034646793719464639008827722960771813672210333543500556213999646320936629159607225362490158570379835842390763126297942486907836834749832175620670000476668115476384448364661442874989385702277907405014392417719385950828284920147853307654085780544150848640311322436144021512646319820570643366903062611047839161687479745335860054643984116453789386245608065771462568138628803759349906966827650829729870244651457225629859054704255317145525478458296004479155626015568468874750787673345547715882604807844982558247561526702737383922542633753149721892252329505527804534769265532689086498376597062355847840842930753678921677421465298479402794103673610909534842462913280942648984826945722224708182609155571448547515959866666264159401264574749398594225293074223477451661014776421298644873318028452634293170133213564808048754567481328033065156865843695459893474890689965699623110200226375347799354415787943256011337688802209780095605818058037332822228337501971855976473741613438047033238250434400664038616357009721479618010632830637437281726494179417471784607037294441298399711675725760034872906328406373805778558301355451582638309978118685305634689828339451047158669589180439717772572128764677542669325798536390183875796864049289199615766929380982119333086851122255465725984561045849049802198705987035133874687948825344794954208424328160434098479458288730843107609854347647560944640379036993256422600936163819776287195339268856512314210314592864549370036903832737876831444033651901368330447529735806383980695325289253884455644365646795176022757778824937795382122307963692797028105464604920158408047831972277342425752535258817339163526671682596262110711870472423859388338239609564035125692755378529781815381010455650280922341768829268338789606479146675833728635294932845486387823213230708140483402456178964492721022495223190520736908580338697362315803816946019650342895544373431523847040013424348988249260079845107137138482497347958368706347638041920371579142626568914488474169494910383827616174526221954338317630746804363596708781688989311192722322756883789355595755468313064893418983894532011474608430080995140731475418184303998138825116864863955774530773069141173030724997574162114806831160679631167498679874692671665839367096355212656361127385471400184943093808349730666813502525312075555108030202431088030702622360464942209438706641681373826678768103543277354683778551293124028029762801666565820808110061769666411975418386515691922587307832509481920584069072140898847729455656716542427406856480756638176140209746508775394772250577916852203238226423236647154618746770736500696906545974942561193346086726593341026765007269075348823452981829685566844852172714463479271925271375647017306014843085833244964429186422838560783116846144332058693623967946817038724496243748221704356502407804453570408266994364798348368102514324125808606077437323578692647739912892325599342902343096254258240972699646065721053933966721813546583041161337446279759118299736233191256305320783978354345254304175679660135146397989781038343935577925971520034723811545784843792534993810465878312356467122844459850140995453183091498588154335941176644989713167188133153835577669822308288405784568945612339519028821005770207237942060787969643493155720440833641723918064312600666511069523805931521928467966863493343220280177806650429272438513819958351756027553237178612382253855147389783917966187579274531134026935350188158412443951765907340978553343250659969086389553447293910262218773516635970213596095278005675727468199195443959583354370407735696989869207043116178898388431717098078236270015531147939328339479489721050537960065663008407316677793560610050679924945483852961984223646740343108838617222321378692595962595792273974379080170847370324061337943219304961326097013489594787119924023846938670412851981568589908709437648380747464307752042302805843822936904180180910399455877090231194903248546184094347166530128822854408037084517941175397768517168322151885516090419393609630970105392541945427376730427488807096279463086188785399807987266777740686560753443711542934858471658931356606843191606141846844798295670656914847084453525241729518840882192786904278118141208047607590824009210470311433391786556165901950414654748020252264282395452526292909140003997720434295910331389931698478413691432026087859863187910880246512891848673844260987086672622139199023149167657534996144923868347559259220368205896399251649957917368515081357368711624021743997798926034540690076062386412645072131799742241906597175492438559217267184598602313053524379264782316987668724983780835997627673279707837762564053210989003613881046706263520221856546703094055909316865094320644559785513157531528973093304516158367734343023645630279048900931442051499026278236147305711262208038336266941122537592687490554361160470246045407726831335153549720326405789930404528948455627302817902274164130164982987041321253589613192737333869198062159110529802894003153172085525984264085107161984624298900840975606156017344061044094936915449097001913768443081208329295552682350073850671326038377535741157862849107107417818627232900397555517434699415397967526468597328520074203031620080827160539297403907416619746908928704534770635064454017151727421443354469083954268093554145487580861911776410449596265561291131578568327430691840646744000334363879859847789339351712498496653740076910257141263165647413575510166963598485644912409851146813815422418519294761750448674456327588551567778485552286281991551252895079924655668184866564902399748119351151285944017507468505513131098113774958491484556358734909958138619356384463495035747084102374069117863078562635321835440924192779410231802253212824961118772782324399927747996242047248510975986441450036470229089491108450034480123882268152634304657318336144810166405630962316819544845611055669756985889018056056775450385734682422875768543819918154584489216027330838116581039792660255704788288036819524192719231871309852522323793868402661947024008353341094417176506927574264800246471899722509558571476710130315080596798615949153900071776202635556386025079981650481552603705098897188165226557367281963104378167712847282091864340890552060762149293549331389204311041744597854321653714933661464668442843260530811078100726781573854293015858385388255000345596904152669969984190205475333299000972171048711434456673328336976003443968658579604203357823528509026974927675686350242388054869313228852991795744923109148269229282990990490241212369876476040448695561576862323461758084453236916332095771465982021870597177265216001447473208642267843753422079818030507522082630200450169871820627404607330470170493686794995073980028698815368418565466373439794750820273967838534532486448452199392452739468647324426763915453831885650412709406657480554840914188466750490530173249841284410258835943022373094406942430999739415721968110874191929233023283630321641702473880402123467727303743437591360478182320306416574489355149775244889889423152026044473994132371353737450654906500930898629219150773464938536630390738720116759027825915324476815667095237349397409599503903922795585871396782417925012259665367848902668968587654151095069385025286407853057306467414055387818427921040999641236101113156396394438783537180603977487942032777987826091534839110531483685770603846202969156847109380362999021786547515326258910243192856293339695862344569070317151193901320141956300969011670453559313662791728042421820572467712751502784401461966114483727711741608911335769027538388726077398621926082744352557504428106180522146496121917131219915390924041566777323119370841466433504264281243677184838496592325392921782882954602961584172066792984291355841596993103609221686144086433469346937103623668074131802418202398119120538293836973474545069568688337515252184115828075758949455354143224078756885136298404338790247714233007042065956235620127134438733527156445117356039421429976389072017061139992418832009033237544098394188406965955967942258821843649778896622831987000786286500464863607042930100080598062540676354401559356685672779207220168920896381698008044351708539520014887537091621679185377359357423523574730245643045825153267320432066444983781808308163788688329015551287830931131790826038803559718214389588797544649028675878807129029445701720398770614253687707264089731260460056692393350954641159878189260899910245015619210004942889176992616065561868798907814200479982406398641169139625955680888508783655997800936476660901240389927511839122251499826506990294104646500745982235704885542036273300174857442796379446291340647760327810277601118961069363751484552078567063656206360418449272903579686475759958684471855410051116419016642140213623115649672429128994852403704694636085601040673817260978432284109116691767813735438751176820176729207840417340447701645280385564674312821255092120455044187732214295369666176772337255914218535354341997183400871677027793882649593363351363445133720463374849874073247441928866013517585089633465594660069061987570635314398777100568814023360140152134812443946204511230883779789682927668356274989561360665069440223708406316481036777299443355419588616972401390040078021445215950457210910791560150194995044580174562496720077145182013158086685940871778724230046102997270917258484832658155913837284032722992809157084555042549211049868544651036092189014855498836956083714754861518172226433382285271736739713904891237493051118773835138926802330980361536353826796925567193548192118849476078263701417279122378545750984586306054599143396993685181987383361525656148119631619662052869290134080276712511566908216557731133192632840471462952641139792154071587801691892748251702403210624546563087991337423149480680089659129393084189083277017718820197734493205502309324933456289903828101185200673590221307305711050006579426446696076040577502879605559281742612923410975359279611853566799858796471398850474751856551303666023407844589755725951329973345212989999311514663749852168348376139330839427285897783272467739070436150151297078827718228077334446589867418267527462547360647674659981235753452567346483727522615687653035785018090355683883878233951457067424271757244412687968588945530844561673580992777544751657529900633660889528962022629211990369516821970003102566615396014167155544216320306472285589618725698162773156283289542102875563925654204220762382255839290087837485267947746349815508782022687913382375425772508109833337802370086788519308996587219881042178800464886684455848806076209532399441566649063686479644700802455790511947112718460053801558693916546261142061000534827917220636166628670635897932396127312227597591984990205500296020222096277063834032048543767624160951382691053280584254662406042823320074978670013409290605968146462593362062176894686689877152327835571489421724386377114082232512648407200372816631028295933560487023688354131677574207519095526626463248886749692231315028597486212786455480069362623002523601888178393653261864448108416515506293989073344335972235556901612381745958157397412473432653109978009399712344268167857615691431237456592000678162046803823388993219749896071307441517290905897977098854315982580374313768580064308541325691991843417723588918750764547040239974523966701780585640860030076321638998699611759076232133451833175657041097525807561376515819735611851773348845323918238119369489998144231393641080244295851614192449222141950165693389360994124528120082642379837640138104028833492502536678109845919480934744972499283723057792625294706636866930864495233966135238632425856986849958848538017897044620908617670768830391291234593048167077761865370591162306922287408698510614406177524257220606003827491773056035882589643996729497466851415396076800994731217545159920271742146746885720787060282119310442981078688393629567957607701807384797618396567482494386621494187767945633641619840474319925787597032379357915019208409300678500578922344744520644861253501380045989480561071467667745990270145289460246511055731228036555491734940743337047106825744761862629314998404332282936605490604333433501671775352883811191880643935582327074564553701868355183081755453126406146866553972138260233380514170501851318753489322105411692497047741201099822594869406066263324689121643760744540394307947076765688080644518926749916125078756628222211734616501644099079049385398225778361185367986034869665148057259562479227201980696122111031360714091098305134707127178902778932624971384936014256248844802978488599443918541199313227829809362812599744870199639870557852168876150601401001016048854051110959613831229950082375844742429404590208005222907209430891075214996847248689437339653651539105331926693572682330310246914669932269852292944315843181122710729954441636793879708409303112660639054034840141154645222687309853890387607422257634811336288175761014068210333684225285893625730714928113298645840317493008072326348642444873140173334291906705268387864378322933607437885150806779467113284464287961409188829563403058833565029677082034523153718031915870956675748163665140706823800898972029462523341252526572726873172601257722252018488058320022836310831731944466607880472165637983041384449089756872562702030560948470619277063089067236389773762923707711169291083382840892566910778047785605953801438806387660854084292631000783247485541504959979104958533090618957316029262749564579606290345247902837082339816450127948933891451013524808792481125532561265533587455347625155939401341263580841873260282330029119768198663399991252693711096850106517070916690611274217068634936673201844717004248409550641745997065018006035302355431513776907525245508144338447178927515182727746711154185211810328884959409968855695439301487500601830961399266702486664008205663824161625541369056529855812251623055375648224117184480612009024092420757494379957282631729906582649100764161884896960012609154992228032063157181086663614917240118105972026776473779230533301361531415754286115213814866101054056069123481469631696330264205141090822230140461909349332703296280683163025313576089435499976669777089766092420764954540627214363014214604767998673415071453142915937388240270424399705515742654565415746122445062273388138838465551788921156008936375687512091441367481543188423088186112487463382498855589252866486329510888420841184327099229578727155104209127212433372945193422293772527997960101136343645379921066648467999556517896254740043174000971351045209861644113092733733837982311390798772804853337284087858193170446350154001447174627227999811311549285325601967382111641610633348380168702827286094596404436488462750294941593363324910813701301983644348884930930052588400257588736438571374719772573840303578472756636142904407105097176859212260661085956072951510929111688503497374804958342988239277157923060138215042281127755544955880864375438246520351358238539267006909761037632808073562404897324763268193689015803963178761140339033800379566126635199748217645151918728316444239009695066115886229513319508402638479573571211162470678516358577898763854424498594886116566836278295927853163476255482249869748390473710129779979069479066014412689683803373442170131204300373674868375954767481444599444101410825134529248390605710057822615015466347885816081911834073657436592051514432412328453248444671955598079935361174324955299515208073499565131419303469543338935397507315134909523755455826626610076975471319762826956580401220563642323360844074386380061943458922061231161740764119608090181342461661078461644761360234071616880454356633937537112510755341649975715062374521706975562584768394041559319242163159459957800383177628136300435169338412955062636687103983538405246058166253105797340532826186922476567196081625314918765627138122973537889122402263911855346008697988773771214597365548231089200934223632472633262987404107278506872167639959212784382272097077647956744444777624075933988446043417019266661993394429234767608528380298025231512189333429582456407631102894726543170286617166285140839636052420562356133633058970624411729301006506056755968220889516941590154002379942296704221599807788371010252449903310417331800227950018169183229294380325355211781248672892558149522238637497267594902638849621340336447232148179529849609058337870498979078973621111519767427093765487909229854775655229003401457795579105211531900250702416970685923007054871235163861438138165500584312174339574063672128734796299178364527132905682827676680232441731751623030916538937544808609898817843339120634813096841713725922866144128124818110995153144446507938078550782909143124456223767863523504110365860048634261974688062688530000465983585004775689506843097901544966416538737193983422607531023084061230649944835567595623878291656260428579188591839956949941071384539633346771581617875705012849841388806115380273356392566337790996683362574387863378361772232170383051101963288042796353168300088522010138390255793419891164265210223048203809292151850093959326536674506069352128271972182986109973409811902209270209482592155630011932594971083158713029042080533965989461663567153129751958668118684469357429224617531634573007085586213103425538198477971980970845447390955836553142108008894496890661155125633871380380160273576008398290132481994383801543078952810647153957840800427775680835788733030407463916769136266822982941516882226167743996850153603268487918808059855324780308919072103572843421856419702689282200628248304077211395729641051687158335382637163732313455331553670529459534257266031307290047034419516271545985851035114388116108800589160373755208335852273546011512362570447122173833078538125891449290389951908701955787638886442803978057748143082789242417508555522543467454985826634734281463557696449133607436733138517479337641873645880490037937235013033917505161773186164773232662777114589848763367115159426559169679578509048454305538146431914566315451338881455783344493235000613400269157846292288583101713056537121278405639708724430838071496020244148424405107356099660027442413052055766681052031445216507114235750380192194934616100130454342299938860949021192678970555495195516544187876348574127406710862342329599576404582934853439544211221664710914987522844183668575933032996517463932009258289230580772113685809800448760058871518273222103583961592154835518510863683418126123604095244287752428371044393059713158642194656106158887402595447367142176078484391302739694082632819499791143469432141818076985459313068827876981603648393151655131800598586297645703951620171289879443139875582202151658786363381084684945776644146032424580436887408569392782232449186522524361819761215121780240660418998299514009455950284254989586083172709649885924957214940303691817848993187020126070619072795921056217151942399800787523327936011182845932177384012769366154387313246346574660558429226287467477099975266466610613903570219924990688858727858982060797374981106980541924557507851956464141027713900832646249264175200747029586898862383486728866705129208137814289553682122279344961690110763216930112151824707604210616564583006356924935108514663600438836053990017955238018091543084805248314392125377599862786038527250006986196810584110257969091741250150217494513753664191313717615139783562022066965447822064414965438367871005402911299573126583621690546924790622148937219495343185751952649471690523654626982081186296547262177397633304006460369215902224630884339764399712413837750972735829542541255899991467574944686279026551183938881624494652706703473720250812450744823528094615681608938687271380309042652988086068871580599207317845245606282060973275472027706037376625878892620372877380041232114662545087496584663220247703569052009467387002862924922138103986274432858679778311607990565498270355169260251887415365466139097795351764119984989677715368938683457912131924651274536453009866530728024997970365401844538879306287524926646222702886216599232580862346840997280023713446683376851684343833669936856057787353588025310232907285686269721930012729494606983289221871829102192142657188814187639140744002049504250582421589009490802299017777081895980151188375069753802104242972266570555998995867544662015828578615718535194905800692726451414753939248730073923233293605719647677032839530212019906012008141148774668719687785033845356892071370415305940703716744336538935392346154462018477154270856831061935900348242497220077343930693521282389018836025681206270716149149539809966093751931290992860560662198581785764908335859261233708369983865846550732807959249885077819198438869076274271196491876034959211041782993942433681345350479106810606444469140706370913419037229750974723991314569427752806310749426116707411801648228091229316408163839548342048619863951463618535003864089906969573846962374089490601294726800530788833952617682404844499748647868477982746232592902605314813825983520240653166886084632356171282267885944181496898591482287812432459277161572717560300656275305051703058068868569745816854282313238004630169305038707274867493963607101318792117465347332630797995833800230282891975432294225667592921688533103365304102349292088342078917445356971955137986730783401452693036233903213578423718552755071411340194699240082904680916313756767639327981132328157532872108984090302772895162158623154994308026196064480280244386233181539931928320502785497378316254919265003170207286818260381661105810941031557761946966228853787412213143646180575579309175391842652044138387085798227048495625564284076161883005126315242543405770205208933810553305189269394538012786154841189909928008640643370150876714906077785495863981722638700028770493096407900824786097185582412584283696123012671252557423641227444353305274645170019301637023512066203330258071450613108590390156888088684719659002624146817204530890895826383705269900580574967461255171020104129889537497176233957014384860286617959928261711152960338330142591273030739663078164243791199308762230887392236748017053938241689695105838285184705081830205547784394483012621540000893384964052779806729154992791674081296169061820267013487238710437830300131357144159195313207896037958080536994425347378581504343843590163043687855531883844887145505273257307642544158521538626965631147151914162929541739853679486742931939796834483325150241714271090066413271838178198349773024017406998593292976754980595684711392323250746635254328908900965849248701441065647184601306548194044784023305554602827505586175813235388278393112762093734116358132862586598568476316725090780063821866123173169484314614632172909669819022775570548264784300421094201122410482577930888222263060473526846555666830587357848086429802736981116424910037701916466393236405104843937629178362399615614809039264715234264789276922506138225628029958515294576437567715134079645430381160971327609506497076450013917366588132245592510806529645860901058631995556658277365439140882656256380238173626549988137951051948916209158538595803744868932818153012419057452608368809289713918952726312955131806249919291858192109316867234866152695612673749701242974562602202124626509834374795256526621018331470630105508648354440283291052446466825107564575493393749067792733169029347375487005174694611488773240633614534377008224859937135172254263984909792147412850402551777272537493651216246832880398641913528714549562024027669758086044387539252824464798396766250967353821750452317596309486526226062829382263236940397212984206165908501503921928953696729471010941097596735182762433875452805758566906206360071519319559601933585704746977518832370439644855238174787772877851819247610251230539663952792976575737101929884628782020979578687271846924747585941663135801095290980316568356244356281283798848968147056487302211564339679079570920780759607892645089523449721398546497203478905124585989633789535060560227010707877509085227152023865063251797798484362630329619297478426973298515851094846218332413651083320525844109923070094869591536943052328255560090319392309269832307437822289053604426300320269764666193749747231787504822037409758099665613772507371334793038623640083877481092657937195852231119663533822532891222813049496099300620796849182986132352404472298726848364539365289441786889549332473585214164416904380900547132780676005623147682694044663194386405830155956768197255677946613465519686961802429506007790777920463764961075178327418602972484385565115125183632832016312421542887149456658309454769225505188181515949793659115417627351378212330641230727184039149031781692108233948991211693553737551097258513252633646566945377707502788188207811752053634388772898379913140675117308629646624960719876082550244322245981889782791343216622470539167564025904632798775825952153214506160761482265251466997277210107396842090697037890710375290292693834043430216949032742117670039246492411009681493878172905909036800855235910162725111158009096393004513979842728648855322401291862507876225993728345856782071077003218086876069454737333784605851282121481115195665518156372564279161282436756223193895193979895376696729106861161432916233322424957623279633311095857709397230768388411970542676936472336633405115677788326840454665051453385920943183873522889418394226455753155681660088179938353540180490698758252586087125773549697771029817085552122956195743372258758174729001451804928646611821877466643630956061059611871713965314976387272718015134282231299456745704920962509577787286519820815706096910480102577714123519346131160053917545718701320341228869836724393177052819350689892994690017102092363251262648936698519027080998195117493410294695290301232141367075646421523506580952639723545522341032011066712220693529914818382189539096047318317651985723620181691218996345139688818401195813122454372625518719349046307230407021787108582999724432315883975460504420132827697963337628074877577855229779958771845394278739626682701260554803880108281097878938939268430397640065023053254296320798638531492059706667697898895396538677659380281545977450329932803174605975614956200032765446823287806588140225988075474467220958770254446450764954789207755954417410487732681569666835869368529708711585067387840024774026100327172519698873764418057437418112455790174051701725752618388243215379867275954036395043370203409416587493498155673486118151011478782704635434500864656554640354358041753841553176735606583700126393720636064298267283556596080765173063708925307533948305574840284664117062638207617439453611927489816083292989389687209945496954826257038017862211161088505380684200354728272558190971344493485904919588242968658689691451764765385441444077867655137313204841340121326458115235385458849902040417927347410106323082703418568820703477196634121749975765354520234919051327046465280030912137163733697976437351843188121365373626698405386217078586072266990064624039949304509269879590347442143763872380538659136494398880742344690509800215127253909073432065437269432196428896343318580522851049289106481044460772074450558471053628682052810778038794342999356948162707493117060743950527562278092962258684965137845943022638645641126363841625655124667337272263437718804762884867377433130586323111402813329691883311906658276336489032046544412298693867403564312019112289757716000444422529452009443866959368497726801759654561695864169269686501580491032923867005316640277532853989466337300817984487865049556725132293468054323400803255447348622355158123153603609014661885752348807862415173696234049078128469486614389981689131618882511257787686479094652323009267199568548264811736361806293286769595159755373091403165712206903723464822110978141102734188792668704548731899669905355318374095470470477808654709524794208389275264753569998918920003379178264960829699337962638993121724346045581017586443955505169330476894422066517682987300350187907487107688581463132642788712650008518241768685210941641104803486819067318269578226597046373470186250216975695713640718278438972606234317288130438414141935230419440879591891525429830912432489131459732549326549864262808334241206047822492110450247998637069146891555105854177433368665628186379675189023696675924785252083562203491933153528244361673540160914472441507737973157430631208850879822952511481850993706992690029370764665729075944399859171902983196336766290234907567309041553885789180642997345828313631461270058935486447465926899474559886648717470992338557518440879851650906704295341052588202854058103126236572301783968218053535172462203632409199743891876541021625210372445353040558251709560030885655264170060499418791041443201521949405405726179752463630017599482024437093841648497758825497703461360768704022139419138167064761057344807747130145663264702321867461588792385613676505958983113982823848910268593076741434230545597344269635210395081807506315344917169125180482464051697968647562637756873932643626157794243086952182323835703722754006456435656739953608276426950455724068614486316800880826309076098294587175760228948633820921050055066682493487684010228367973178952163877173036880115261962247636417731243672930587460240199132035596093874725547870568702392258108898424852299786569566118870415198113250157695940204151574166333635579036784728161256479926153693045172570685743932860821644796832917754357855654883152907785146272126256155401281605180389358556357971976107690334610457848923171054820313360887955009977223131784267055764052364240242310201670567502746884003903649964106999391842828828659074450426050567301334261304482227161335757592398575675770290853703924684830580980361806779166554344634641389479461031982850195165142693045933251995912639864589696739034850944093959787015081474790171377640763225115541513750951771433852474207711733971491247355120390933398523809930967068770161071735070275042988344541951535499751170839961649472764781711217662445143603218424991417856112543905904242265076705555978040969321733643995117490003117417206863707043832565357844638296895006867857030667714126241124414023563678622802840589494059775960882764754746848985690977745533929767750416881630156334130104125826249000828286676947149785398336310099195439998010194158131013396979715799265027172479358061744432546502041384235252103799087201958177238620293798534762989978599395141268245986489266544493091086910259012843528970216514755917828264565247071382870551236107890383268532171207070418063374556386170336945771146343659039616438193459537267731107980335621780628632205364958440455227154322252086066336858764504904072383539224993457727695479277480708393101933524017678626177562098910300318722875224643211007547313731705341167491675007486479325970471599591710406747435861636471519760398435568346263874021702499494179726362685177277987278571021006594186083871000991928317406743485096364733859170669506247762602364625393236866644448473680875339790927301468776411284746975461027084161573613629310162109661451019475238158954220590527238274239093856782729081108512005667963597291950329538165416998420519848464383100514706748780311991940846503513058931644036770338562355056622641424547407504351032681387780883585032870309147489317906871124874208357733726340205569417400092343765398984929194789153206441334467873912732337545649293184722823840915707745747118466499342806073881393751720960304011308985721062833334208394901100137913208622522820802521303062795907867621706138335348422068483252986904434234161417061999040005601875345505718250999321557728749050743093698282527280711271286902052204574566539934975283323755605423602555758101359405770286252017195838675455373429755502695258592533277812513166014417538068766907506452956963954058477939499551725594180549200726972493058284609104261088479059922093539579927768684705366642935453319907054702498760858382415316959932289428201556496101303139100295455418461660054925209736387649697384064953784242896155811106046270559666526643875635226583754124661145837156163265163974873761151998045835563706834968254853427552647519812386114884032182471530954659422930983623024446171584342440320048065255496102035391106808861924003647889869876262754044829835692608456745535788348178435376558288806671412469905662816813110935338979830073052845801705739837657002694600296187844749956048128664615412584867078283405895973533938503361389462464050109733447655769309492331245908112527712446186215982010638181839483279431148235947634207329292287540203347625885601109383031942055929768306050337694838769466534305753234101628718568826473012896254753584530911472625478259266660418520026671150324751784005094486387306814983647231009489127486160884188346994121895561573498899540714466176910356890670136305600840712548369241831685728705553102391308975443103104696835618129526585153961341268132862497254833147976288239903349484342125351671696843744641318182207337641340398368367406715962898094374487001848035639489888911438537151416252945002353073597591140546713146286170749900201899916823272904427231768288851464341852575833928320011010200373032787609968188276636634377966192632121126679187426358022014015663742525514854930437005144880654694320792204579280769401296996198404001688226623177541852028189207960203880952400917497361175067133855555969210966709764109491418954665330377341292720801019878075708063484768949183261961471075754403003749837993261701931750333658469845959722303471741087826318651366034672313210858723259626647970300072539928939436106941682682261742776138666390491182512737513867010551179788982213686877105699741457412578375600099144219341878285187002342999183444356043853052669697418892697565210518996188709214055969359204697985178740736468543643995267709264411912338887284787247548710213767626722920948151507518671802155082040047019523766353170450363702174784470024025259462471238674701348629362909689329962647956358816966651666795103642683809774633572561957276844955309087967156689489454200923228916948907862851479219081698636486049385803451139442501657584452831998351110349769917794977283162184316203410444844966347363034947005762270817822201891256238336071846635769910156061083162122284588510103742829272910731799794408905821407509603612954090365006909645658060210763159078248141191749473378433727882382349815817056307109437901541267428565870888982855159169456418324942385755523542559943777677033717474765326002815062165686087207106027895436713950256029626317143578223421900414686928599209532619023914387898120176764141616174743467323984301861408883317345683278820320045757291843485479393495548597667960517673858866387361415321486345908485523069654551060414944421339739750830105412268607054090180253262551309085140136872933809943970280705744469313427787481954568110707373476404855512344080250133543596406976318064511657148937920353366490065194525983807903135449220043022743825707682639895262364418557015446088394869823089299618290581233659245539548643566225573243676623109412084281257535671995785471118426457390683522538952641249740828838138854042999970503410035167795982524305442521814421960590431645090158007571561072444141700496250176512128817269177648929343888968301655682471618962134155452645034432129265439891288942250807915719102269598103560671197010099125127655882344515169309305010807075895184737830652697770822321245898657888179270035337336605589669128871963237256762381932092507467830223733031957889707632785353841291558333430709619662745051918849132982887363970074547139417709519795314816208403412059093052366483513518357725168385699475663610245011815230216409449019889992408658175972883907912091133691117479725878597537063203414431747580875066362625793987197237412391180702291851577715918502279456129268373180028419345588029007285192531566981137256226660381106918199405312373998558064798089561981051334863946767864105774834062693693546460503758686356561841136939666104587882017173710398900300180195689806033773602726639226269880289390413584804380089044190689106424707318387279929150834569526032895017115302298603585846109404183306721230275288929698365773129083118296036716531397399939033797599733289106287683959382307580641393932816890051412369552040767881496881934572851632033077425516129468546644575878535798945066853178819313781704258571711345884003515122557116699029632737624515444906414324506868392920586448422242819255988788835984846519312453694388558334271791696280940356200517931342940256212365534166060649053882638609453482833441119259634336790379551707623376774473547710081289218963284510262722980345911532356953494143017455642734182549015380426357472191077846664934960089814702788274735091921827607990065391351849226909905476204423722186310419179166669922201753544126708190284272658330473456479425001301601428152884792762727252925385302226861190492794604310852539044392279668422587776988139313180702059976228285352333612735065437519530445530629063117902239289779728701713554622658768233860971833767963957678448109419280541042606342884475635458939993393449021528978563027686643222878157339287784902726754819418876443482389472620124011921435524982586311307603300083429434876213603699098874247338115889549916321555554000325929860606760832221074652016033618820590524556470907012328403922175133325274069128325405411472932619741166075960523861465582954408606866249471801051367442147343943473341670954348258336964104549732187332857638410531332899247515281433253483480440929653888428998447220392266807769557120017208967361418158706709216331281509365281447373324567169893193984218951463682841024667595702234874570889175933212237785240352187159425385257972355176189494499311484456569817568148040067377251857013483360851293962656776484227338504213626413045562228037991473363979945869260156230868882639801841533599600164667080814891456772878221712347426705510154293152745623285267481421698478215204759201523239631210479041508927130194572911766294252825359272599611137898446529746076193699564479673150852276863158407345352962541467764713058497075732200978245176630248048941325199463004191584758112213592921455353683508187303736272759718995301539883442089814735480791645831873836042128340658059639138992577882883922327465788917729309144258728090746630106363197252884080214481298103749569940731232451317511090641557870147559038192176241825556852343942041763479489507233855380758504904089693106643197391641107621419727955949402579652353523149719460608394258752074712186478876243000926768651940838675918383996893177175901868428436570506895418037660938376117857960165958703898902349222374812551030841640500735427969321193437497402862727962208111741547318921526895851416347115018501252443516380957505852778234192827773631948172408805026979818613756386311297748594595146475937860958719409346930507934932137539548373776409745901178913356159675438066800327136858383739291398986058496509686654068124806067002363622743088970668653173563969727423200409032711467602146654131289697149803107151717345520326588219161169206389188947106550242167613255378203419420415990609800370644961423342372625846501648023874178641511262591428302631978257164218550691635150107114026773576494098684948520235270084298632615591613420230734821544323461755125918906238093956364678356602554027142490267437827990567828522087495356957517406898464402986588695405847575855243996948281436192641845322790497661895213304711318160961305651123000642209499332022923470284768207581849062727721535756485546272809553200075562529855935512135445659744611507785612544959101270477737133966761636480559943755371795677935987113983214376325496927339224350184780246374328001272750975361336571167301968615053868608675365873720288577327730895029226915233540211012893943310750162306370987022674284226592300697871797260190552803342900521279110685184490018452260087943280069103730002064769892387161289473825687732484248290324259373266219005769887947505183836552336788266239819861643474010974230887070266648131198248079425981263162688527047716724291167600402947479183367067388397150799357770245679061654763100997359543787960979971069793717782661381830829951477053422097950270062238057451994341661754545113577710369476021683706876685700630171858822139941675967613950510528859701873359211311924918682871451743914525460401229968453300891862508075130859139396478620280703473889329495493071167282410398106917356523183449680191290001090324147209610579309160515635065867504203079515987417906875252712324243218813875274510440629155094344751090429497181067265768685838193995428515196432049191402112321421843608961001654505523466032481478798847909074208800445693489786211317595383346109989719069848345117086447186221515491365214047062907195112196261899016913314962034189832239344449581240906291920840911644963362910182869898895914704867211305193598914466786378626657198946195291205748880557295938560417161190740409951711100178291901512599988599614806806959723734215140296285604358572677863357602326276603688151282640851930978691440723390053722613137819263723973478404428769118588012349679630760816641269491832509019767793741450273470472189234089893659585652681688801320806284539638318016699929576693590281956256071308199194350403598618189205915325232284680234332287440723989810238275412879687538539960065148905403252882637692235460966771464564915709298509781635250659436708773144277487756667971606858844291706934454992694480178207862892144983040429733837026178642496753055087485670378639200154675987365185988731357365414368524024920278007509209420200029045891012408242394708722379344060229859665031955532843798604619139044774315067629245849762799897767717642835864528710660480637267564151492178788901922521362166914510350054803835968958970360232964518124573671350970209500009053938447267804685188844019392069440574458514364436423337287058798530764001952014655454516366551345385557969206316268771837769357980138072675644145002640936970218388181909524774767819232016092900414411737928562749848447367729258535370622237810954874598580234578170021815888409542295173830312143894421639253151487246685732287915063005621398951465086915799327015217998304473704234002861988952643398359255617660213925599098336049537925624090744276190638581815197853071855861493678889231520081968514560900469759757557779142730172607008905855100687044999557666750560769337433028980898364683583413116439656325089048778677831913934791357558452898786691730918197140157920134492425128917563580046869589365716526444384869591568294271449967570766053252084933716532870973172000329536437534632494817319103354763180248990185107399244778466560612999308423600246877878309498165621922217247797978704063366963072908182056419168035084435328127138982421514657305602252126670041293082141883188252186740854328069880871177145727951056692214296101351743706990238021337788479323158250062758088483778178717882411145417745186168350131152838350179315296289167649485064059046044318432351259959710901231595196908220034734034839564973135213404198587386897368269886646990927141325118182426176336955516605678105712660509496799227475977942377764823726439768868426363953025022254834779172208782757562092392559038245717866923902504573508518205414103785203179062478857783678138051248032655045185020614524318004464093273579246259364651921404557134333310176325299669535612300160877059742081368009038798227974430914028123443292395305255064375314679175428542130963767534874651884950020261245423727476904342589757013316454932110038651529929711730056623737591019990026156344871994314079391022636931305438514396958960526932762274331988425482286007400701253685933665001487463374319646566175187295430202319409782435551245053744857386852097620484644775509399963596719122115200947969814680381330528910394090296988598590560941038716870398662893694036577948003169297728786050957784046564979821242154395163663074934633381923386193950684355711636940065782757038840138957272053998089120394337600247789263049853282037835778397957394995258644597636211181646395788160747091010988372333611292676587159520650662026079609671253940881159107672942578273779195361011776978526775014210579710741429469282568282765855075538917419077005306326917585211974521807985724570886077434598539737909404472676077824271136719342557728647530138554903247148773035691427620763929823324213873415712756940459724237113115455658624978397136325680340287353918442376891261163662032512355406488828830985888705642555280307017739570324871179932744536479263450027207789405746548556360695295362580714611707362727908216411971449716030920302760115338450878823239440514881575233400238202360967395213426028911996920704568795613372461809400188834916098780281647277720796879731644729018527237567300170102746311629806848126647257759126408572599527104524471508422671953886391148181178319769251121469320048189590156102638104706291833492812917183412367416365923733029154754816951346109177771089219698927194318203945761844069054219038389599161613640948405473582905618159481298786230368553553773909809787860444745495941785004091651536254418000819920704809051205301307902251046650322930513735985030930798156159168258641784285146894424789070227993632949719196945930085468720442811209637463922638407037979284885075070441132023537332559274846773344294089460234424939997757557861290343464495255058347516399297853680219845656841797809806570084796433420947943810233789467303279395268791352734644827291925777477728190749139529505379997376515253150482931046199426717156414786884328201861347120723602918570044785797042183680038646829971500933338214896510515309690138778194141304356710972877081368867239550777577832565493275781060026697322775917518477550152035105520156679691847482583743882727302591798602112657002204345814040942369647985067296935330375317452233021795856999760379350272644108201813390248070946029063405010618073499890760049066365173333753250152598605173308809141324587958392833365037189956571708875422842056694685284928255768801234974767838612161896739892030552501432444443611891227450143446288363871633026422920549873539677978603158869868188790743981093852615715751476087225645610264331352561426787635335887887746716575584339341727590432512756311069124186208829838571486206684919116764406111815949391818008074226416664019443520547577148980361732968714495181728716959764397404210445459280391855857674970244492052351849585983192421102659905519545343301982694995621738521554218052784684170886419776011869562203853691886995017027415723204277087996830324382846636221857233409205090099172857708561615332180807778309182996548810898274287541800363740060568856036449835095996313623589112564973069801217755519665920668910948447888036168857673920475406872964322264709043005286349855624438144306824041262544805000047942795728704472586805997955332582792132357096969594812136820166927530901336348984979098739251816300139905094345600817442519644624016720312029998828431106688063711057592078032031335850219620218031058088383954156554271962546242086838256209134360169102420581465630968965058262894508202654840758086165024263196791038320213740284357330017099732878275907667102166965139727756432758618332519288208154033002395076183312623813969287367317279418572587616563779129995873599174862942559308437712896368805071302217017404557300078514420560734141130803435613522508913744282777997460490019374401013243496095957146524349852877017192600605896003242589244232921648740411179288538235217012735347725776293888857173172678695909638787030802111477361012527962711473708577651563722544797578082449765858673053309921535452401128290754057402920930149188632691324075242265825279897459833344990408213475415399193843786971121972738256360139904125514537043682641920064035851710658864272528412117587621088317999300484396421576285103745130338962057399338423639334326725290871915325108272358591167629450797421959887715822585003355592355510779979187880009536504096158562571601828704625507735894502868518174947754552781643757070123538513382810555458869013947468791974986554618324301274710762488875549245622956967700300014767748505107439625070496677488293452847346147205052209487515140572238783428385900754598647203564243101037378754039931174462695448312884362233154885848242472606840887016991854842036555266433387069842303412903617103735794424929520498253094716198989081379218942218632828513052594882809076839851630494150212320211500553779469199025846486537245596347936705977806044652550456257111403463580516411669144974933034317132764338846960065201586702525372948838508946142444792700211287063832242090167120635669046653342608437213408577234001868780873120573332893318327482576722818029825136212979047403430301126475036642197150782700260130180935637321276800377136043462391574663922080821248142331656784571821257351237742785308899881238211927213949991238274581861986195046103171053918249174340404501626945730952937179067585582408497706748990054327870595257054327001249741651560583267290740278179132645162590577153945040636006330902847950299614525530592826389808291806688642013487557097911689910428954420090195536068555972390179973308527605053412004833180416856121149343146634688239220746050502100266698630403514431928173891543530850971187192825779267200568587447091605320539759429149927035941198585183670565998746905006218586669329963378150873162530654737027838760833695886724515502590392548189737536651191335603365868477974084449550376479881464442442885070151237031942013477490137039884678700704428604127132457924292756790183625753566024855710940970504032804452266063644182617293378668822038126065420952650256584562346741242972598253686060510703201388817567986316137354125852971294761783367462971371421293160719547441881128499790561380715664855789245808551174636706612765336770012040783079813321411700181108523729311892544865927913136668152973660933524212344548996245250028165602122547200776524831048815903207763140484286969890157468597357437311316055802179923950748913514594609842110778172165593109940092433872829634328676594117688687336432427043029621170044219778636748652844159645771637015502395775332769249188847718038875210726443439145569107379472070082437829059835247663371837290284468290693277636993140933575633201686283327737012801218639296137185555158151481830688448790886460163850849215784185250551928130484750364013120413662584443655809263835878757005270809983645041857842797464768047718314240605975480315377426115297835302913381610104729030815683989361815554892189587143506726467074303873156308357604825213530605639478960553677169197913338582722923950824623046991258794625634754497495554342991693700142100646907805120784470827070852787827102822601760353248550289983418039961468255053241185057395399951723561706537280486609354883647118540299109168209131836605335744568593631464446355348261958236919096074124631556365552565634385573026850554318673246571035862115389574627629896846261020560421273946952353783122231985769558483659178291009394245771130049918209889034052767002493948062503819091347469771628254328143488968594571696020080804642218516692975030189396254645479231108252723284681070865166344659858675044696488311688025648963481925363532162251078501642704608281217054343785044441866008861533631129843909709016098634295452748394628156137238816207363773023021527293743373569711873155521665841214531204497208813242207990432480402621135089723925353977408986342343268660977565480397107244586752496450896117205317073090248886925265770967518577608712781760441275207615653547055311379238373439781994715964340251472237592541850060891627204057608538390593708892537502294874245584886297520122455656773824190816802795139304948915531741258265792232822688616057647527347900209521874892313417891082835375749186593891107574655460265985037853257622365540155375734457871669372669780327814559084264266816379198798218330524857665441827457093995984894429397551842833082239423416769000711151761376088319743842395500192737150939314066409179810515266784730173186827865751041548767422038619186979743531819598616603217438934387332876703812871277363455725410107911011529128442230548268523829452302533410896156614773231033432226124081614809320310757719306565119364798891276985780857994802252961506217384137651811844196216097030592486605797964992679846376735370451486639600390883721910146988162153697764241319721261830477564614303766801403094330434407687003389595426290215075409014035445515229555295856234548518235659943962137167150168658865676539932737617220825964105626386991778182580160037349981536898040855745320527918632097041747938891897134925878246658092242385652629055764634883258122917919799158793238853559584070360327622670666611261457699159395268040732420225776414560663814587475783654452734478596726078944754618121418979720972243752940258233584754138178268790089396320681817253056329840768768168050824648743196281744813147513469555839017208364876102625546402986242528782967547866403191568406127659877217628878734566642709866859363582959251158970022774215275309009855545181370539450145772587261022750813065988144273913110377541923548325419907248526272907743932189495077265704835664154693664768490432822836317803288521935759791234986999711431998043149940781881290160210546945721462044402414523790721380753554020655480087453173717063300136108338653924551546405135826806822376852590895933725788498076388932717349942841234430496723099891249805869081877028893339982725939137575547552006963923007055688366641205081517078571093763315176733712090718065002858714386243072042260694298234220453386397116418373060660818984100992174542796202514316003058468123435779455828592382652346162222176697286865443851319025484383382046750613892637980880773654148902693127508260870397188799251687379608679688290584060428101898747566469390775560905961432621748632702535334775989394209190069473409960955439805852334915593209318782976315366636174245293361397708890810280731660547525712007272889465306968535813348617003067232562010748798746797619292023541932258130059971848259222076001548860954566750853399458807485728146254922443957088525196056440715185758641764385713661395554082412341761339699983210524955266374948233048421005188737824145258443285700468395732614050414516643348010731521374454179840799780135747788518874659634070195695069403367934736415608118246731719515975726792986096201467071113325814439248881592156653240866756758000765072566650788255689279215775949222341871888285410420183995991058864430441964547579780803969695034623016282972097132522521605282245748635848234495238834417220704357173027904111226629042440276479833665527167240335945660900783296835429382969842998639895888365327074590992278337299233125942701393246283642023469800378049534767362989222623141288226466207930334894504728966427614995257326485754968101591647883791046005222811259811304046555314467301111966391419175107130925038953606214087811910859268881332950441523365160188409056581227361814853443725726480057874943047752818578365683233659812548300144160357092505041743828569030672304023673708490266314667237462586653829331673257553454783874383436356912493380537203068431812803000684190416070599501991924345323881683846579547581916140305344008064691097239363421749597577619790428799429994303285044178619993476711740478254159438751274983191519193510261763792711010097023453849040725989537357890273107470219423412831522353240427183280095293595874939610452109006224193651987223610458977577845339822268564213124219700889918726337987901199608457649224161950780525700105501779307633034680678445474744183734553061595993460060636799684851079211593403732361460217506925534258621308228336029225638301710893564573178160982023941422744481926605877538093977227765936838316240986922481055532053529638291449692794467391078065488273068908817477714113321075888768860454849861912494830602748297980322727007410003976555393639737816766604265325950990118185399133092161813212830576348095156017789436082018544601998690061442174252768940981210777901766640413171317013190322723533289736795554516520193196305310872244586284586882095746214712643034756448687096539262234047676485671703608844277133917154922200150978776086168836184503948948018672711678249648244582746009538148886334577256719214221905431431078108153642601150069229718892610608431709878174064182441354837936782338626104486762511866712880935669808174378837363827793921100636644854641117240045244893539330570649549204960118342210833875843947629031334027278852640236166513630468126819093003174284925032846084316047816652704015765345490150176723260385346034356635364079942487420621679107285157104709291469557461066501320630363027876375895138918292396518775138186544441178393435831353586837669797551125167276829376547597078431867394343239375739627681462653810177114653654544415191750124560388121711685646702433920377383531104020524627563968086518240802040230777357722060367232172090464895480204247406669875671423579269480932041367422810200831684554960748417699095873981067419134834487716846507664810156017828352640478678299999176814176825570098679944615030798194098237941978378071677907562393565998244827193130861028404341109642927723201486123441452491791453237983662112032491852235405112011500922494157422376204850442455267333559514734142006231389319794298104474469128573186873600883225924443681842868977400943791225845867892340572543959646318298079303317372693460451483947674129989705013657518033020495154794606170043172784330460490125002653560213303543412240970759300320533924286061416639623770791941227955551774439788031682371014499193501714772673356234996845131858006878219873415902569270502374203031008453097812393161177497839904125341647054769110305857332187901011083887210117669135693885516098202606612093399938101778175028645570558442109795220428962468879845615030357238165839209551019409952183533508422456573520553519291498404341245469661568273868879172819427542781589134025908041170664035732705129180726433123692139767767235575949073676211071613180552111589968002170227594353442349032587981959653578484433296067302038112303679396996505983804727685523144474962497308785774128120777163031608045338053980954009320409291926785682181202212798931181117460145796710960576357509180577574304366386487601301638930166061433714088732356477168097451096598075291354150879462702851699297131243934955734394867052354964883754715462436310078459892993766130733733148898631845984729947242487274880419746755882759876998682059814861916680501287754329477988327647849750304157008099931551510406012485435277667275406951529713245681629747387887418908195886574582066637416259810767600709433343003383220718601142604465154802425553092868243917076874847827618997203878084018843549684910378783168423927783349234376597085160107725054706885100337400510427964583229910704111997935861290893401823147787082160246167829708139438511205283537869076775506346299742393726390905849968108082044884972124042479057452792441361865568124223339519673168076636726689155812130745851417301516190412289451225677658196145913536392716890274906744924859722860595960486297314697299591163201900096694550944331456568982337581895885763976287967404654588051934830967405857820378300646304658475264585628593982481923134614501980406951081219969769873920577502858671665600696028543575841004955704505176287039732039161838178468588129405767235064299220253173417678619905516944373798035055448097506673752356525375653852514706001431750716804040020175465622968806448052565730421403442224862788989764157330086968004234066797022436675053744275272557585121621125386764408304805979763683674274599407780638664889010195094816501670225075630388257450374311937254847829182195899204587077106785891596744370704688915530939708336686194737597461889917389272538252396322023821065698738930314090563634370434625159265994868803024473013822744761664059746145669174322721433076030690857418901474176596110170499194796627216152140236721215363844416945357714134955646389189374414258154244884373216069152360209398827380499498727319553599141887130984356369586948332631056242284033246767211665705851315641110324960543784304070317636395958118362635949237749203917564191580736174474383753281070669677656385464458355894199854175995564591423310971025918360034902048011867736669362838157410380368146596501074162331805970664118070911881958168476147111520330122268238127900599878801535286945725334982540818221901750914820065936832659651038402285193826589478014903885985441333750512065782935305614296871667566525169731434539371571512777535867648213251076318644771906152742854860265560175168137342572629653323458051998631866320115869280117294560173653722022451515457211341049165285968025386910983834482135388337633823779842493072309547224091122441357237496072206136798919604366633271085507041105896188864673651242148407253056326585037541856889437736320677527558300225593299816794849857971842108859776964960362162726505615044820712403883545043671527716561363276984735110766739778844473934908478499052459032080244845938508844946276603907129553169775759624464710413462477432724956606681109723576968850532621604243789179732872286224858600594308920201073333678788640933102447955105615891155523238641052938575051678165630665934866882136994155341327848914675967570050022331092662353443608819708768211005745882950119119963071105607753173804260684745154891770718259321671570738828538825633695345714373817995803839852145197685771999116325171872940467300059429680961730703174402111706201103817738922630709896796765464081296123633335473419207790159483537604767088007717523101225015026928619157062713230483347320802028223215267821902994142346758201117571639363116506470674743228352289371943323669089420321421678930464699463352610924853023412239329101160619900171992955583438608621825303125495289483121851391591183062066889401144967572566805709897958591633539225942716176838833140152488754338413111305084731836695162630356725752191463165016519453470736735240976846361933146040307990331980528680963325377889915335896488745858972219628683241752424563417847745676674276354534813768016703464834225071840269612358136863705844782881245323727761704212212121643344676698743721142262844187525673472714087036118026278639123688585148308780208337410754065517401941990326537327414360762998303218051728356739935601814267960720564200195238763114685662710611715891619132387813345290154231415259731742857426526841517276888026918086244480058146804059383772088007743662288241664176994787243231704552396822711429325334957369885116571915807636793467969449311762192555296043282575368682594131761040361181282794545457513595069639803675764249125214892410289933282078303524889365896930066333072256211392308717537405626636778958705645663892361715197579105333459322391349009632398907084615878175492583456743424953128656529486738346055643041893286239867925169576915038730023937331679975552000047892810436018976855126204945930185995612236929028486512947546451939765293868205923672163385431589373110502284617756694335585979848026280087695574524685194026474276744041811920263569152544376288061443086354819208902631718708339053412612563927990428384512608141880202639233506256496712158959789414775872164379775813194494459871783570200874869952294111858940997219699205067097893822824561343966306332335731201851040917295701868387236591953320245303028584642191556614892914982143594767989145120273537609752135612149064346254894256476561887666521184664407209467396931246158930367000422346010010861405197388868495183956830720684731637853897808872817203600359704556305472590750802984683210054352368902771474394510466447498076505992642706878626609302722921254381947068517592259099099213340589549101681289163421390354573300725027354210486276787910138332023480701887944138141519473161538401546622784083161784012086829956959225637200776002711943199815076311724366064193793044927401820395603300033223311128616807872188137510882201069236888406143886834085193521849186848260700573729418348113512231399400811863677926367584938174877974984213812960075217758020866918111357986949192967703688604537346222066349591119814149357443377264216301170345962815114895454477648377113633604119382473795438834110218625925627603808148100416407423006090479390511961445236257990785819805033139946252313505493445808092049457907848322580622799197987730364040473744348353543955883824428669056983338349708591306165514003164446595402915543664898705021757495426856174527332662459585810497810157399878696518338870234732268603653489315705734083604151541559023260441509745187613582914807922928820514401540162406827272510492865452276380677370261424277155213076442024842422936885365006879240303999480280752693000624505185126171168235911167017086051097523942988259226200175186946798216911388459502472413664714029020518534252643070825418470534720243314218008717349521643773567504071495291316108996396947842886683525616860423979781274645061801078389617653340812018216346224431330218624957648989721770591078423494838092218087796553885965877042917343954944191177803238602107186679695251733765466004248975776010443784933924101235659076165500429405939032917241389819739372414111612615297864520608739852227583721971153432520282253442006932678345833692359797362813746951038298233997313712934667817461706825801711893343708869984739036779267934772890619880162524501414470237503994354815390502691115360536622066673057626002106422651329227501313389969915448112893235691315133186805805112130436572098551898571688833220057991736763494551121285639339844015921002552673231046015826741149991885629833784842026418757860279712716006728206786165215002553499905010164671706179865442569659812257631584673559702146411894484259023096912983485866763195994882476222097499916470273928551428834691746230715522370046720798439611357783213852970779720249799107577846716816051992821843269777048816784044766059216481943179032315331488422437150790002901497210700733792378097809367739547168282141385904919964438853895446109464870490890756790244039166516379912678733470377651397883651797391220580116140447935770029473279616848967374647532919581021217176360254157867764737119513978848078470571085361716420829695931459494039341011684143984863432986293505773418044866833065739401799919504282290641997130286405563999598183086370400666212292154129709654336749679664711245320100731542236758454411635962626158450342784742183453313920557116128740701546625426136508336505856976356119609871675908791754302750266263878480438692891631730953286774975066582693657860108405105223681675438033552102686677783395475613020696475302082597449450166005810153393929097840400542659278062622761978649843138069321870669081687107120444386591460803721811989967339205400002537108260465237726655476786008097982028577032015381562564013598943356166804098375577315928144270215627487185011863666577836638259793926413890655172019457898113532829128752025293851248538632600437240847695792626902864144623959944299241752500668970398910571236327635774223221024936970048113011907902862823961908415313687073248212488492756164513126237669465084870633970027987821888938049623301253778370837241870911908710285960864916978827215278514296302448301180079364437528556330487987726859475408702431468630984422848281138535053543031787315134887232475443621359558884449804505002094287682227432923872854916779624921188850848616702380796145599061525763564184319606284547547131444681214694200784111054660166222203616509400258573611372857603796702801942178982024287004328412949336102866813861498889374776659359479853476496291369293206593586653902884789837361159115015312680220308681549715738099906184500486162693878522116355065179683800919431743408799252049744105129865392065115165840456961793828679945233090136213777831184325255585962885225462057807517019889595966035540816733583179894868734233398654428538577384159600157785252697932160310518147016432675906841719114636798146066886080825733691660265899245687764331660032825368441280709679514023887480022275813193895218273401789499799197397018996959540684874366298322619088952260720504164262173272703806540409630293246101414590620134053001181615617104023141340344966190438828289582701968618623127051164816887674140520050235515183473617293624175592506973663798619314811602156852812079494022573270130020851667227724381176231621282179180212039979312334355573787457228479819305769047152017339244992862301513563586302482570544633799687317836919668885803217579211189806338955640008039170772532759988352231356732008714611301443662915843332356098462962036389663367482328164192167055337808466026396763878253473048655773813444661208800231083068510579852705099027842199379337168786417734129169525392394526765928563645633417487617131839583945912905951845425088218184023645051076552018906444798702600499307819717944085876980634573734099400204349532987964572375004686192785662510165097174527190293377179664639302351261913317069258252759678865084327067374543337492949364635133250572370524385162331427111199121189579743176445111090496481118978044234586627520278045271945283556482737589748744598025675652671264232521223512855248610645336157209006167004097994507517463328659002287027924235444913466817762140783211204389215247881502563183316607370180668802521620162641953765567403127558258674251856908062654496037866571671530765140487253280681436500306306687222422399148727124307603206745080624177142869229425771183567949240709263131155291000315439881429178313655887540233215870782412557074984093517695840797342091343259622370435038325909679341953042426826938549973766601112911711668852020128398951975102007580086140376752763797715245083831983201279370093019478512419722546139515627687863951420779193981093475424660338351212249836378531366214516621491963505919094183623306495486938620070322266353584317001122592334657056328472305501455256457530814811906589308589653372827425947125708214716867828905629136652964954537941825864476641420713643605335429302314126064537190455720651647488730775895753671982037921341142261137340903854749169722095432661897375345952173538026706611324918879878766875526515003866651617428751046131560244740843524147533361615472154633000462979887198175214710812562695190326585607551087470387873474854485076859618555620922126674585809765151459993671165799707612980413470529213276956289079273966720260777343999949965612111661407553303503388982396975309968314090138875018759850889581754150980821273809684273167186317292663148158683349630806451303375566435730211211869782918325774109878705653670016926178947835613017770186210107270593732650835162593371654474608270608121091302127194553714183732911054819156903616920837249577049949616989985299666137212488412009979736024102808871141192998453512304559066942076403697434916183957645612104499031768115919827422904969980236680559376723000467926906654080873251869679999957837003023898976065498188075266353030042352852425951771753226848853184227066786613805908334637897852037410592894622652968943629509365759577618555640792377649237183433345078966614965945818448109314464017812149104661449735055782353579856322715979354209355364979572783160348210413906700593957201593732478523725713904530347285304404647391142789291417575482427120595295845296440630597280760370109946058140727927421315294869680062034202021301862999190808432482317768766085479982536232527090650248528297521673395939249320087727966721240697217360302353120670616694922164546106024368122541779632155530441977223763819597883994514039122326834088949583058930366692431169720121845845009380721559471121855745403914156880949121816290059985491374606520839220562549838716868338739164472163649551223360384052157714912054319256861709582518539913537041243526384515584304308013495176120452679969536466746897045521701155726665141741241780581936484515676299025442798736446900041888909634185879514209460525001038122275721224257711343898327243123266375765045267586123515770598586586023329283707120004188963289947400603103403007778213051211244183408390909077888274349334570824448566406375126736273695615527257439892258349557929759622353681474484839703072766575148511262020409850928093776519441064138326201477470818972823156720604901139503378360721370951205670604940732776481846404391721022442837018993538702432612915392506232013110283195202946979481414430432322447683351816910243535616606150375634824372716295467093727933375520792916755406879196535789289260548127897100615968296087554000080294186771988181933089749516822661015030588768838673107149862948164586470919770470480493056250933081488385730290206597025671527933871246556148691046444627622723610297621210845538004185341381705211911807734416199943734309886859414362350713851485735668793740413960455068783850758444169004782217375848064237122707598420018399363967587736444215049641588225868019589994733749412926552278093813347235540086560850507300970562639260303565150439023002884887492539493419953181512043384136884764414516598860867730092944845293912159287243861229159624950039544667157764884000601879733618539789710790744547871848243157863150326886875840137864403203268705166747447397636071011867928019216473983635908608084782083848348811309391224420307811916875276770125172376271995307577667614270543135519003477584226082061310838955530066440283566851503119227963588470430225627507800039833908512484395851010384082250825283524751372114385475634811580764848540288169827438044234946689675132766275212349806756380580965162001114348726591294126790329752178457012118960340188153968288945328006576259476578055725617084206372316366424834391677115116184101420047432612942709879686556335636645351238175592087255442554847135288540096963397632847716617009288242620363189939939991932681398389287418004036266777756417041947265843266284451403653521367534504706233399586210011919002638472360764909947264647456763689195390873827684391723853244089160879227599587478357031560553217515646448677462285637485817332906750438814428857696528583804197194214087591822783088566023541985984108145832107713529940215662278554894284126639471741366433486085731685202836931943605957260908555284050241370645580608030752437803501954969837314220654927732824535782652683464723199328792186277355627478649088795437821766745148707172764821925673038269897178549647024405291249719979463020364998429110262795534855515970174002259579178130271138520075908141215029034969539646392844019495889230283143757087993254296345965894322238978159711774863087018515628088455763503066647166655958571204558814351382633331368625275281833498748211445375949265144238743364396795621989735307389262751406804365693094719722597812941467356665359308627522340178065496776588929702134756388737251823820837076608449709375327521944383644290574809423934300466182516468369867522372100094615855962599353009138347473878731783047811782457630447693777893127298482492646669110774670532540790225225653130590176449136720418304261337135445359597505035784860209864416113666623587277400416829590066906046835225757727778897424498497883877581857192582695048383358992968028641629186589540362818436768350563924456298916375248495989566078694481216605580305393717668338778067659612638156475629220471447047074300657263671267245289092516760746867375277411570570731254296544252109342892625416753393730752423925388918791889986173588527142916668388499265281218739449308571926828534899931671126842062818660562765719757186896113719566776199959074198266698373625298657007487162747488313201791805408628289400793691328939930248418379286457064960108753605209582141967014874683046498812755884604935438809891689110194674110471061407884902359877267369356423826924829167149636697384806776000414148773361787447390278281518165112626119937265725691261171742582264644626238782753182693669148841289575441155614670287265856633090442975309707402504695871508899058093101002713652828221788880328391348252070543732657066148559125781906678884242013861449477197544037106994863346497383147935539917743315952359164245826817618260414558761359378617312150541357195655242044266547658111145814685722112179292596591818177804099679703629552044660566587492210100528246325451371140758002450976463957269719073079290628271046533089311174948572191282229509723369351265462570094627094984829292783386698609219111479962821395718046032123149305766052091796449892911424024895043006784414507307778884643170015043460684170672273404929494150297053525282039883965078195788028670829178559818608069599999950600022223857862740362173124756056623811719953703212728287760508426468264949623560120666754459715826338893685447712728450203616226984380494066672611570605529020202430471970260491415928101076795600837299785917389867072382035620020557837625114017689880829201257039851919805935131861764927527276903391756585570688614268096432506230705516836132633459395072580610021445467431637595050007533772647807930204032702492859029179232778645919973858839444906811156754590526734923852174524303787338592212940542083887829704979361841227008586431866019229108899963859486078594370611019338607499945518307981618815251993163418989818550943197355172412017236279251037047433993704984457350262463187902171055867060459110688505883576866314469505676328526492459422513144567301324026564551269917369703905779650981122801872755239713330768656097708706552503647928173677471792591683369115296274583944412758302797917601623798572953840327715561792472927616777453012629155400571487922937743334109251491701316999928786616581996131936984150590502141783920668371925027852791508419226788479979412892203003614825938017158632717596845986719339380140702030021755026887224838754766516842443740294985593505888713326533146206961150098112756574275075140352545950844554420466019092565899479834297136208308597166921300192827965393269938174392795987315027518007617200041919125298595132274316461395882703910672720507356523813851508029856006631479915750202335733951325742769241002646762281029566443521928130449584074307256155448565882700495119465222457185314620234852001444391881420636202917205704976476492453941805567186087739124290613655861309401928550644702836826713304915327666043687435933794882182997668804606571997805337568355823495246697625211691586465079945067057422254554289457927694997576439968293040191071015330483366139746665069169664316097680784319904102612999910445063441836251090353422170372050977453248314783601181754918031762816666152449279031829117426665958013596322736861532316538121679410910679740514994099686127630070035249664014680528460525515439535684299160359245708399430818743440328268993222878259471152911663392261599561816858428161877964740761827825437187529533778968745181184456172665717055175888225290138480158648459763824710784244132273517318451563688090787530315787284178322695578934287107339802549035997976967567701264286583216585458299200166047732499332486130371437393519567431628173621183368162981283896290099415211540281965883329582436343140140964389939330221450019074856209788519437813993219201478004597711689739137672776514895408429951326755368285630719826327811902892154703834298929771868401100758528727033633517446988886035782731557308396966731402211313754914917562019784372370814228667805638988095103960387796165693741242892742415445231969688954704500326616410995839369908813125264641421028085448799847728103722107695731472890851273134979431719368304850462880603158849375272383980265568484503441967872514375722123706711868633354549730991646925452714849297372681180137192639073348385627236353309669180253845480773076254129914704393226636731570081157316600337374047005502923513683623675864164979769444531473556185832613280391468593394882623310987407624966728385725306184273628519769908756475537551014974521453846499659463426370775339467215613715546885046489177514600629383542597174038056016806644822065263782186996597927706451370012423079394504944955771011385558591850983204152655217542608899827440376858554453824606328378025092790542414461517983558862483796493113393379353893126919988892730219360678649734033227818054337756297091382855087584007946687618034604361685122535249669301949447147424141735980033024124539866151211460420438179747933860948499449288973452087358430380042587642863933050401419501928257216948422111463577894010504067686598140240092158864040049964295838186396073588936091850049931800375398812893550656164234653270998064824124129713109760875206600991921264042822598391441959399661428626438623260188618221520056656551463509245951151997623760149952347336194371661377275498568307950305084459619948004122173076834581559511420728131618832230267125313231226502822483372228209321659249983835518507617477290191511401956982685608004873680585051677172370621807317971234746157361368020370953215668271022632833061306715289784882096017741069439780012207471619799263975643896397622581415164287090549012547969658197888120914785583534601078972470567544668098865987984488134084082450505644398123447850365219248628067702566259160982025787995341570269362696000283658813179299386616037975815535704924676172611427678279958546260089280115948438040781795244690815585578826935180841171374245692544978323275120058569983088214130729344951170083148607768844800523041574257700168373659434812237706582709290531313180624557393309525766465605569283176189821521758473092285602606913103923221388391868977205834043717518103297450645541176390509643399202994778794488463069737176205853613694882311153468838032193639286114071267964186782391995360188901211469171646044953898052312866747597147477127740089835217339952459934518297156318794032592306489403151409730082553191819850107738588426558390397451405914754148330001959924146407431786090901170210253362950407836967607337736930831396805112570751383882324508056527858382579079885664853732788562700406676698888273474583543609491925604472197696104086231668620351926619807272960427915119500913793982310661697710545885067494034791400615938890189596418364185739362453753390363032620687601749471315894306416989682138085259297974691529235943845717142937604111292051272979727620613748889021694063919261514003419607442655976166181348505112605209159987734644264897173105749921675477055941411685993370377244583514036421984369287331262300091075762253626173545553561475467910014277765542636855894642311594515405908684872528311137878130716062489305516006680540344507573337698555928508816541745143123175683061253254330902342003421841095160517338878727777625321504403730910934915276948181053681871267436101440554441701187228232083510485584150683569218573509430785413652831431051114794702409433925887412199554299978768619881775216663498917008542219536147697963268384774124654536731278243462722244913820316406663642660589565820375220311690542981928919555672869510065595009876503223682824671778360805156535654655090271502412853281928245139972414163312630054417420508106792610936356077527937604527191963441639055152893297301761966563720700439295853438680911696700775083046327716478405690707940913149244970417306649389512127040947622734931519748424822568299335223445370547201688996865037142207341330705211026617948396705407778873575283706169080657005140134848629202331107635309373695762192290404169006142073528764282042593827924331911306255753571584134284207311309330352540388396867989133559503563410862285165698382007576176709924200917946761518893073347211955186764330189582773411047102629139526548802993234300050335185840711697738391524245036824137780393080129229495306984055728181606817070801115732866315291447167638842712918362715635158020757600447388574500610837379462770007956320252707484761957034328709044518303439057400711933118286069505670676576043924283012683027296841470773696622138406092922752040585610490364457005915644368916278640360488048631199635645955490536281725176585746346546496397551883055043712714325152825494543489762183500773973337298621129773686082390970108403565472935519286940490922630508610456798106149720834141510179556323572768972121607285080434531151711332130237126604811701056826321227527698667258139297852098740639174062443714372830292782293729122742003369479912282769580444399013212913343930649973472450308568264067310938149262341665446057942395728619724593577810489284596483068964195582445354485671695858408151133874099046245272586301749955308862710663215075486307816033691408284405943728544789473591647130593677370273245804263705039679745988852720122947479049745987721001674831163007484096235181131761917022997127229392495744986028862715457482772007000350934906865896048294073168740519507361242446786118540800567001440545778786614015513097870797067503024912264331530073460028492469267856890872270490409617452006732863410632003630833238852012688929204641056038234487831727778081991353909946094587266211740156797766600975067605430149032586277608558181834522332241962608182948459474008522093272253428423884913159757366855556753556218483059495532417283614514038783752542378961561154590011388392682956339894086692640345347443770701131481686722346750326137174138215538536578650580653742475746262004790093181827711964492902268444463171883207667276989335009454352807241327347686917081978430807657959572294861149817270861855365733701918195105031306306020551495910583885324044505602406524737696529246188078940949986303198057701587604213917035648696813554365204607564903391651487587200437058411676661976040678357172718207219021195943021910511264064237060186796594110028364568037696132989286102352703258297633380393863773010803264711045330163563851783187666294406267175774918276436696159814131938751481406581678996531478622053128197827427858543021866941810718983478843345655892276761346641136309574344797194420510352620004602400024924791968659541693362275677584688347073314645387842676175904492671915048205386372355267620506759158635810764600158701378633273829167930562190286454020290281394039515013552583983753213405952846219468498690434958167123087376040102452520411166091076682900801143346636986554699444825038628764572035101945522223824450458527432509111670829801297747880006346325955724220174087711003693132066824337703758789330013429472383291500068009083197822000245447115776548661757133331497353046193263262283959201181896628092200351762665299721803011807824458276286885557688786690772999449108938597726355545369404265195675321008436295534230114131240338872493704648469878059366279421762236194463841628854346379247365706462811860245649400898961453209827309115530441178909754750535547742249585770865586037960392037838608358563208397899627938568175476834365678747287411079376246755769223951784235260904045437499916840742440667756641260729973443314455273588293872706241006714388193926660287876380791573001560025272688212178558061725651490481753576368145297196460171465836316879384734556207936712739494656849677537326506746728431700849263882301364386885843849312919067895770208688494901531962482644201760067522828640392861363063308959420678476469798988023745901910964307477962612095327384092581013963777795889862802980696746734773817102737006084363448884080144771856389329602610761269572231430577083713527707135273157830722763829634982903952318959281792871742133090172125100676579223602291895289107700168076883819091715083178530618619779956804699484404702153934074194606196625956545919436847635779753923343298868900923265005309479428487330902158386967202053958197829429993941792906780266507030438934580271916695771498134022930804624685339271129591594456553177375214322569699541458417535214050252136864064213349716294585534843600267456268367285700725610645225844013414604662434097654916866500902138182517121051634536375640076355473635527968833415181967949275147696624043738948887496038684096255039930731219486807580457152641090117316974058320463764917812150947898016657831644733427598098185769275626239897835864702921076876348672381177411236439854776984507708355033686121810810933565169700076177054699169450020050699948563844928734941762156247411210120203223879167854745782514978630785386218539917949723765791822371317454458192570086705630117084860375399867036298618653751742727670827469311997121336324683448220434246849404660397617598636459876080725299026721521337381603380097990161188825290067483287202149492951190098445401524404780340369410778066287312999391911105795093836104341063120234697122562532088906706634447066713748142992928559151476940717075890345566469271983977120450771002610350614696502798184548345130321610493246647817078969419022659258408599410827058667506380763417177029197734752768628807069636311689567688716804983352516692251009121312306271619560456564180634987546514143067174023957135873019176125945411981986536958714236775904522256333085175847107221174056582936738033245158840386149990496733976980567655808558918271722598558271025149339340777399260161785324456084374287337262452073396082812008121541542758907524363578913810209334819337247837714659608904740703006792552824781931300418381391030390338732189081397915158826644477196995118256786963485971773665909699214348218684594884881817368058723109589949131380334014704571295354836118536308274468584732285049603991558971958707465614293148308640347943549120472402333642098101852300915859909701355405376268280681950072547392617245065040571427129738196395156080977443022619936802066722528208695970490555877377797119057880088041658887494235643848315753010903918661317768006400383133373063895475107211111099298743176109217337392155218880086350444373153304648814092735140653446669888471717412634404601767632113547518911668349477585910969305563687275791741961671051363275187020245653095851477459318529421947953474649759021372334628359037136624837743591418479211343699848024556849392682710373241099071239038497672180306142886414942537639740013360749957392058787580234019970808936326657623521693444548701651967845861429846238663471772387380686186293211128066503187467744035216031566838857705299401133780651910317033155174979660902454584528969751791595785061436608219852564394601033238251928324825422737605498101680786995018916673063098378807210020173500686632298194308325381607901305997750072938477158231770454039148571342839859207609045685197563696229348659400138188669811755788058370513388950471910329821581726057067185406561498704070227420348329215365657201533004651813594525614371834463790769013806232672001403745869564475497721730046718668374638810913978209675437040760515829778837837624079691689434845739132220962282333781438314175761018934161598519132383181047472359560189124644965927855794905622646954906306150190356226266305283378819012875830523372796147266780327551707790829520580600939665862562766714062032522181731923227039127460112288219907770276213954432211428456549946060210605040952398847478814954326307388011782657392056662556987920270800977862612873546875819525535455373653622550130454904796362566046146844220194753794055132469294536921428454888472081965001395802663627012038595441739037409922437091438428802786548923319546025403435126242868642399373866015224094411828762913620401904833996347661242997154045133244387344032611801199724694842284937015065739066696998435284489781064505266646623317327754238622787691462472546406159583489777985004622960826885119519506780200834747962500534774553686990662863452077362051899261219337657634374561103997845365634160323246536278416772576911799933026238990590589071820302414949172054642258374571452573826580070916493461357496766875116212850039688635236100505881885318633951628522431799745203785593022853743437146400049783491809279091420291872162153392319949794571791534504988624558844846344295349825049376349048802579516657866996128795120079967905658562923517844587923236895129753052726451862330321137074433292102107360194631035123945867111826722497617198230036485247604739213783896476155630652135829719790720505856925581267996984128098071167944054707911317302231201626283956947884372549252546363682089273498887720412133676532671925754610153384377493782395864918676360330858100401546755280571213916537728820058869266316865018321916057250843346701129962131681303290257040903741701120807802580012571585337136058227306470760484957943131030994410352675880223232766612583103057440963904355405266576998638696311424006154577457166779416551177453107719906616337817902787312886805779825145289093107844673897405067204271357266264486917514786449343776706232981376964124240852842305918316949730902036549459230344813491950989885164824090490934652338075589905845779681603193984221976956423448880254776653730129339858374169169301849582870372529768887128165137118307248545043134828357268977977342733810921429863327262316347755014781692386320774404381242582285391222835253853304307951269173804994383391629602885208279074908079935784131209732630523136769130932621483937409974368550431924335211347811544933158620362214259720531057661475048382424362989487443982952672360402351930524507889497104691123821786680184010502029140349381519568743610698407122730802589443305442069627684484152423637778464433218636953026621169396516336968977997264759474073609712930568341408442059382437691041518738731883254086171310664774001918553009108369305765633058660705528875843173588372615054706183703676189968759943625587179076389042242368047895706650587006588898210751467895760966861951641564197107802053768410676243756302703853826271974519260704406744307957767221804358688665478959259285814891664223370128730072833652721013088345327126546374717669069671630321537184945539457701773435593352896726700858240350653193963532631076279776212716583850485770904903494553400300335488986137421251009482283963417797904835186930841551054719441411317833712916781478029828108771732125877273105191399145050058625575838826057594725124653293867132124241561388018337500805710211561457009006450521190736935880283641139284173168575464727580449861652348636050844413972719519296347539087701744902133896967333527548751017603177094544595831829633630456929511774948742267010798347129864998085450625533439153119172909216257764455617504784734415754395633799552504008484874707667391967293301519400334926218213969369542589236712270204863388907901693767540342390373219009694407231014512801319124196776847148937205132861347256111073096202199213513520470816424598273758429627484686848383242434884388355920289436819269160481641884121598184308070638771273817327486499012764727309902977834060661532715384011043595511142575031562759136251268933408534292765397551916247300642043224232904687862954627122543653898920598208095392097641857342227641322115009894837876791734735504336118958993561228749350617087576086023362255504362657708068511479850101187426151900711623956696438600705611627501706853275550672775185608332892226587085860425488609061904580970408698408947798023662803325819802199302616723898646798773755967198395163087890675691370275617522910716207074863728886480074537028945254863149239444956747970984163681484325666060569894700897863741883684844275216401445163878945148730687263585241546512459529814529152980095996965059590528862853577025335661372944579672312432761145125599880914143796766585313399848886992614347571191337517053170907943108449046406892470855179293950084881907523150304622262265242292983529150818094872515471301264322151871743322025312778879679161107796640527307406975689321946030483206093646698496904893968864967946703904605041966589420936107298310523679462450665086008072540816838732704460743905774517721322573523663253674769188228200517785728694111827889717363161690652210365215125730015295928481322304865120873114206784722219306438213460626833076502189980797447711540969317378207263219796472327050205125421120931290416378807906596234071714729286636437802243187536155839234610775537610959845071141724371188678172379853867951170213814322668609179443366707842082470997891471433289988115397026670535631809488217014899335017135505823398008534477776476645714552877878668936894485078127426373983285088739814709212442932600801634218641733636163077091125586346641316837611434990073361606248187096137709937030347589109446385187201874476565388243056145490991786061455037377501349481398793667606897325689848324823298106279601063661823366500109884029987132066901039954361051501031795267024304886678454644078808320228000779033139386733015029897121177066869621644055661103867723716500273195355014693176526419081601253565073479583456961476992947746111010700490420720497032533921185870686746517903604069914417494526414542643482770639558866924680446657482676007000084414499981332862559001895974169348413270121225169167301180730360418830906117234706313067948075702812087894540738742841074058250882788759880863230004701203399269905098263201502166280180131327938896690194596886941925822590471889858705628408965645858058494574734618276961904436440386504695469328989749032564670921629710554274844670010221414331813262644347373542569555338466473407417687246562466107209996355170185700299435802511847774957218652698536909122019486137757197509717892314166961581536897011596817810389599986680033045826229758537856205159120837059513412837127051786932364209276882912105353635040556261216099044874933094261641285792714769976539279573681486351147492115189794214576239718317965280549823835191533741698443380470584256530177637000540364877876521602351857387558222381988874282954002505176899498525421931895502655988510038561096960486613758372544042773038803782865619708513460886277926983757437328917577321638566553110525212517160119682259468025088457171580255683063020910937479570487512540397092743627395367855991575856596168885560941137361492072232779848766574943455243348631164509616330061687959053648008684539684516984240318387422215556089812942838381239592671859276405769868309091800271103908154944069605710764109253880152980611942732002164844955510047469015541027040471084296213185855409151573095106466804568102119291527193908463202947339723686547762249612043167867821979678412548288121103635027914030690148031184754426728347740842513035154548520832041295040673967854119062715444798603381518824792761236171185415062397605930346673624799635481695720347694961200891662624228576821251790592405939841183755791427242715176902854008349854750124766074113388096037808859239412255982181887564095762355365059282848854069011523628979979862362232844027003249074224673715489994809370516495385046984841847134390294186582839813701581402438797110420940465066056420412459126837819074052455098854461965243991476210266543444007071693426124338314626590508498022412320741089579546873354910476451538561074112572124560017360691528915667103884274245436075218105907880505078791833073781055198695376032296647840760182170362587662396781105849391589102340157619739245668748870564581901268982836358168826532855614293725216004820685140227154328815498215068039140101187621960840485051192031721304933411632766569255052420101731767468868784358006699681772420989114296449522629716075883483621644724434593764206719710169942006394001365589904500022797813178497678037474268407592850535330530421751797680175723638684331599418503913331412454014380640917829567417932326765327672741823882018405474631060072025704957647952707333815642489379629835401605906578714552972089827928538041930004481905275049790992193243230284452821689242319188230981232681291783726091803151328765102641636966403602751722122301912786028226524152233435364241754601858563498031845290062495506042704035661989732214582029276838367502141586945741451408599950284382457748303484555404425930556456881624606715360353485804445389595490288315251433110713423346712044373184571623795984868507150541268272671030785487676223119712012737241400497020135179871317679465878883960298739410937178308660701301996153841525328614241597331629356799798277693623498352793294725977593224510705317704820790453604882821216198254555425586039885156767809186552607790138479778572212072872572096318360476703056202314779262200996713320212170175342536996958154237297902932592537639867436285654483704474646213408615508344223401297107149116973813175113012245855381832374955105135987762841069530230688169459793240885752266735057280461236659083861538167870287933431774259608011608297313065766758100675045322615058380908120328880628158221281593794971932679728574981377230097372303576939283631723349628111956059047338625960997447221558170824970537389619367762116055950106334612243280587454295770861159952365589548523190227824482647591116062219390521558154925051260635554994578375627488626228616825582516017731752469176988683794963960288435558261251856884204150982700611284982756852551090785726683027586920292083238744485468036618752218270416197125726639481631394012041903967440011105071327534980308250255491712682370231437296198590870234647733334934599677252530626528556811583557627460992160103873891277070087666615705300588126236312128603023790342506510779384139734831373368892339292194118971943010604734786490546517332857849454746915883923861964374692188787700122645091725103223134747247698702649269973514786882645275848963110269492296325525513636804127930215610408567378607248467117567113058343585369922599328878500964806469238715174676693545433475595850086290911171847060177108992549006710020154539378956409348953701247109182939437678300866700242148768380809502184461706346002824611849105982520687674817175117341683006915027438878236460814484226085091747625683906567533246683988855286732797688619962420968008194509881578474645667829479518471737082537772554295542034365248570441730480982011708887785121138089559357496606220034840876955672897059387362433166887213343981144063792813944454802418553890643621126807782868994278059170289685328597463478792846577177759610234202092764819097279428185427799025534331892767809687240785318025754811001875826406489382892049760252931451247693706267163247930882079288239038219594130073521333273550019687829953483723741629748824759954357233219782790819984377806407849915130604561834044162722426589125645515728009372157125305773443637253321139183008031797805260496956092582776248108053773891527191473588375169832427344626175420838957035282329173044351290601310875385219180153178772912342112160752359938461544998529367445717167928348778676523787609407460109788744049954863640655096538099785500966836108787340513962371380157427979496052721385083905691266015903450961905075402688352551389961296385832679258192271482477605921044619248641592296425149533625139409120242196146176448747873765004527956096366404122210396882995534445843293736995541929169656474604202676206890235702384472320887736291061540986606877581206553400554019108402496445776312325542903778951902801765276690616458223526829563822411920136552916294470529241920959556965877162214586486661885407844588085455109013847533226569120702698793826521921642231954508515727225685184334219115605512523072799271158123883687489771746064928580963777560084283321784979835853727011462480844622256937092352659773727887780492232309435776573911161829730757127344247975540590090427550520024477630666714072050638401652920425139564371903282228432873314957138637026616233290387883115864055632727670478662147632811063024947542069960072296444302639844758700506043709111101575522977311593674856239721068857354354486152355092959352404920082901218973365830609518660083786423215778233069693455660438950397881714444858277096941184451476634813496670853043089065273686011604763854406879367458809914482446858273666216861486552144868430442659910085817150401529084639418638298346041030791395217722793837156094072858719246771834729450175233778276276132013833237543451385269275096113644975813105283271552565092182170726649198672851866829691724001767250995579969354882942542858757007084683826221706587842144953132380524307728722026960628498997727300463750218816748126381268684007974175268681022399996135350073860025567192631779220234235907768791935180592923012619503053723104401349244957355093366821382950580178201743532129896907489651044759851686835688843114067266982994913217999395457773899646596184173572221384139800727064858395885536845055168739963693717666789235075191283492768195215992431055708810386547575059416420426161212252065529209821863935020170424391050218740291052165941565301038912063480723624026207256168328479654458039199204918910269469748405182411909674340549188754446898082623342576187343705561680473976586054179392449587976751204538239282148567483539290420671154552581893686363223451813272449951200994550546879382752580699157228925194866727763971868909389049349960349481083016798866642658263616399524194456100260769084114355934013534908201317445846703575523599730151739767450131480534602965541719340604637798862176462164826387359217484567856707253041174260229468123731086495051266642764416368793058540692719236268529346631533855102033983334678068435973783205925611659957815885107315023932206195291777505994517537036945858738852741075853262040283748022912450699581249039224564341293059755262084049237697890597495436336863638296933599891884935185933393596586728514474965996118591649516157852752636419971802070845713971816819800782304908528763732311866922221718641720243091104565766876417475109221596761652458360777461850471032098245829446207682702438073149281506760693990787783212248324143220434895455512419731338248759639408471198716314236680766120215593840103306211978417655159570056741214146622004011107824563807923227708507316308041775659264087149919405277613555186935987572588142912583978828794511673721020418980317891181417241809768745329648970304950613278201106876046916587818635343777226280322453006849851854069150638560815206218414738351669342630485330234045507799028890602250602303784723558342473852163775189852176446520225349966835060295971459885917207163533657798325410101067694562045747672275986512024246908816750555960311057837456189414583849096665056271586904197019989210764895113385440937137727308259032931783722388173153332161608053771497206110032127748199851858925183444559665559976945534878309869025049162247529965628344368373300232921781306785548906590792866712202869365778236754902195337761411400704909415388707228224949248148565768200411210270880298461140351555985354979063467880244214284244668628110132047837351769153669427068973996741948170996153827010859918967581874121387316541802395797167689928469225840369205613684059820147618874941918045316781644974784712090064449201652733918701481295573150616671649774884980402998453129089572989951357954356959097155349943464402393283412617476144439824741419350208817152877757420450996154017279647780008601088466321186886137982838148258487330387495676110241078339789648590535725398833849961084451091850550593955362166612824966833680523500142501986070317848313710840492737873895931217475903608210057041192962117176300500270501228051091729769410933889798336247691992480303387605509711241692275901880641036433386325046103836582481008785238463164172635495464112758994206195931031355898744365539625649780647450340462165743985253620664101723460779715643404652679888279490130397953347888438871606573414179566095475987409595162545331423532323002751594379109694219729016342691603179347056953239967680713911212109921300291138550602963998402938503407051184030208107308602770372339325130087465566926237882609743077983606213363296848433855188033715345859892816503058937504818994608094176262407610112771009570087791471418019577720065360857498403710752311722645466224108289409885747540427478260194200316454620614271497379705824203757394937862047031634275664880240181783668142006093918167247996344238895874986139827853736316735650000649239026809405382305602092874194759995975895023772279441504166248200195541788667182801955627825734767591097159202220808561663132055113848742379055327228541175323384310680982753280618630517666540970965923057107891896643587319835716082744118074374455244963975611136898097353158178406598066329554054089562649239245210762704627146788099180690626243401967260191840172598768254190038890611969159587986097163136167876448401856215611959625007110407337643690215765834712976315472444182341207878114796119745914354462812574975438289801988160136919595736261312939121002916954447574120199029782554958210747041082685866692207472348242698660748835022153311654352483600824443410992720943735614667152569863866982618997500490750113968523250909080731243301338382027125336798389478935495583535120532944654127784290943040949735415660480801912130202280341777619230171988531677701946495468313482780588401273480316374221194706201012881894185752386635025187119074597631958880186168858244572935788647309802765693962508465556508627274191329096886211800226622817631697478828546369018121913783304550698586595414671857379684953951862300892827608416041868397890015567138927939269740256453918538604298798740015557207016661099635202451097339366332977958936747659612132870101963268292927060419090200551320788215247127850688407381326753196625961687727506409769376419734249112438548068472722974401037073555515000418209822279422699706190805614733441921311318643012768698287433571791741471304790800375407131586417375073076710467878145153416400534594883547726746259366359724152798672761074518446516353589344085585005430738799572139351152149118719845583704656344091824254302455553468434276496183122278110267492450072231643049648756449697183951622524664644349878985004597967071349926650014590551000736328746004185668135236299453576466296495777622315759373660003089254639018721911861937581998268909904151209151950977751272776016305303839629891785011170285472412130675346943439645362474495356717931234224186103990172041809713881051497391447632101917325489051085055248576559485911819195349960318879562107549495280003537794788556680008261153578367550884398955657758172341578103451790135303218758787834911293537528529338454612626981518923135833847600407991421121310690577470211739992739958202050109654878480164282657660925474784277944539538597588795840837192063503382694392641993147904745008072437714713737814170964863438075876744332182467757975025220837113449611337227589961039295548143025950005063736291049383638403686314999765652943122602833374604066916884196718798707740961311060634797217792813223392300303201361203157334440586252514869075838739455176754485050171718495961807495564286449387139372154937510853556794912211003905591703042522081607714502341886818306817281520444756381752457479222472803302022264309697552579680066219066461073688146175027366080665485871284401654818222241338810007637984011666583477945342653932927529938339279237153528677719274608108489364040730209104683305672617324333460437592681755946337510372039913681147510998249709601522219716862010514775715436859668368484359165857466862917948335922020551211594141826461525624491735039044311881256495096375713852968777044364932310873178701077706252310604219859677783566520177605729406624367196100991150084001377538145227530337183538354560904153328811213437912985025002277156724220463798833894520092934084031355431114721399748069753595581105736312903460996252735915168497803644411849538200349074912789521620366171477889479054911247800427709093003962795925912290869517934479390463737930896064082049547679271067168370246694650117179125082241192501573591354792992609531831326539407854246841607068990464853906262803592520086989407956552350848084254147657184860517904721938559310732385295743621077966005074506229168602859339005414300130593511319665329022608857640679304759430347104179844797873740992537089643380991762507794880596311271894542659370048774075977858470863892641571861980982275831587970622968225514861643348276515776266242902593000761379207453226595638103304017962655863038003845887849719200771208267054885336409708904288277551987911895150635073540233672110050481541966553351947757595529036137385055277210245132387969976270539124929166662465888210380427891590658359886269076923417549353520960005142296454022275365534787719794402709642730368167210690280914281647118853854136403825899766247779335997125884948010211799464306222822947292444516394080355665132742770642159485858020367840297927389939753268405403291630851044680657495387181469469292150386453095294767575972697801222547020887740583992096629251182750028171579985450192118345516546504781947671651817845738561991137973671542384074859623311658037902289019265049635676343161015073573442065555001126205259962357038207982513683946542047762496373044888815670603073281163613113837041888043879589723294570589989779008965390254968359056292662675301813942726597833207466531779378153061202239718386244459001068479278965349914922591813944138150936621865483215574962062957126284746284529716189369303411367811819284196600499439771021371242933760579009047532159470088978244860723528513942514829851503455232124377301076217051800182191575862225945369978704114575790101005136791402316347976658868595342514341199943561571386101468188980306054391384752815420848047127339716558403965833474838022662915915748232347181802034086722372318272449748981458724953296077539779303139289719925660871149015057762976001641143859907958486918100908489264854361613126220805155882286070464414364883675924529274044562173913009039538439728589031319762570405696358242028289886823184495104987022556976596184309345732116587651508336664319787263022982039459727867433232636199176721222580272959354779344540572976209751056877533652173781841204574978736220990497672171968996927567739423049362457892732215345557976462031972260139466499061143453153145265739377185590789457188326102671042025622880712601793965831682802211996423483805153945192097756772437739100082567242132909488415043572246426363071590804949675555590314607298317976865440278773436483026090634096510676565420922969822150804760779470253388800001956075812645715241800862788019529771215720420557380089264993866448887044408748165974864757756792585478749459348006902698468664646387418636251984902255095657704918506460051772258290196809111640588981587244047628537724421350603614171346713950930895934834481201095870809607562449402214151433234602564354674426072240811761549514448222008194703354803011409845811669396378469337648108529325378414448698056390744403423635990228702146258973182970725199727984753578574508641868120094446648509662646886039823522004328207856695896041961290799087398254751776010437987149186039986077385687703721771309907796467656150675108912677684623636816705032067526365168627842460208263827470975973958205900875817722073937409114064169454411227803966178547856052478908202975975249024921825657506412846249263504681502567419703751685833471128183897661562938709518550920883763915024260300516022519850051989550359741549393256365830470157076008183528893068041972073170767360904343689893179203784324990272849725231365647757075992860218907506410155421167195195393853825780964936727891618246552901888430609285940709324459904118455459948481517604174683319800005473486340418951992744015742915598561396114543823521591146036809216603643208805378550767544941544286639610489600743304332593346835843322037475306512020975276078478618745145769897562596485739396168291522133334932005420319489519830951388539137161050970698291876767116253235698717237540413759045406298217092598990719777407266748419311132575840970628356712716993233015029523977761004352032658541834944697897857084719294552949521541198009191442208256034727429435704283651326576045358713651917632507821031901287800808154403224573837998718809497831480380947276612562929780195193995682814573814796632648287678737468868236077937261110818083445995467057082941747907197652216180133990264092030255135896309256876221305793404238163458281424472159848835992862443961011952102969782846666374264562937960137174194741152776620414668131431643324381314643945124941507245494749685102837012474960323682711738093520353233985960790960440345650771852856009545489433131398483128823935105265481050741295070081023907369807114238382570073740168722850910842868625147428683229850455990162973675659819384790065992731958765274903753861267611982459996880764548757114777030739492317395020162754586877159493819884952836799617597261546565539719555449334270205914391232280312077936418423610126840686743748741629337066768869458240816497894703614758065896287568973286780632136622252439787605874689750539135871637500048681375930511478798620537248249536345564827344058868633033764953133030960869358973758127331590953994780287054950103003343010028247113257664894492268249848979505323639666198796260348361292825171973115116395273098965036629098091304321116653610417640488968798815594225540113953100414719856674747471428279603564912419510694570613609105529311373962827865960469338160820094238848309310843018202314291177792002887523870150094894721923208776652220844619344420661273912428774718496602237647223037555566391975977488163535651743358539990589956522157308403691418482428595308036937099114664197309459659900239041784022225669513104878079043519584139779715718119202453230477950379355148558969380121735283677252709763525832233939205564028550331273055568401782544237827345599373908088339769834927409215869814230465995713269187649247663123482604387120826307123634613785986742005208759648961311706428390171714531402328369199760921250505615008917102992080736240360630760063538538711208854180741482766517372883125737359110656286968778170565133588395980781611759977055695912627074211385008812169559527921110049001188742079891830792365527845422207151029806989096782247976114720722992014459242881199517659583231622300666066226634082477907104610338382905593001090831485598049744466702067109415250287647651442777104144780236072819293176782669786686515932992396067612480645423401047944062686218017306883041281693792822206303614402716451138893471079765134315519394248973489616072049225775837233933991420920697265546208452421364546696164520762371493201187924794892288877217088676254774908031195289785888579486541770109708759548796204373279127144970544051069644790862553194892921213073168475169399047757105895766818362233409024116384191152695200763221569142167577430914937147152962012341364428624472053055039377750046365548744154723623784251527359172528757536408373502567648128926590051102667180914873902378693429684339329529007426964082253744787652752501882814077850488651025265085338297282107016344381277906675046827016241315909141239967526171366040052980120695296880394797092117305875380108464760006971806674791365267417335160283666423356800285905765425648184620418826960796074280268320548344902186538588662470732660909160685925032657551339440476060906111496695528885206385424590154717779161264382327030456512349569542850264018565187046587380579847450173373409893028637047225505331569500351193267792913294119701949520546430370329492663340938333085762940786068809989678282144556901986399382588451377870618205513717046620618869146027693171243337917764959070185570367148482733618112076673898250985494922158098138313488630156937635324036048226606441941809508954181664656199439916842153590096887576139916122021033945471461626420165644019444119749989023761203591588186663828425401431506770025746629920921807314245353255308336090391262658737146219606992403804515369209117397966366717533386455399669959950344571424579720208056129517464916615235498258385073100703056400631676540645722710497227497970062285967414085661569678205353311129957065780838184791408553719796625091197728133422050060091304843121546779823269797430697282183711149510608608210891081768323488432208256342871101863983092688992863092664008007961836143356091723888526658028930556613167796013740341098772946750260254814312371972947968245223775456068336396578077176152248321291443165560269073414862583530188983398281184214285588286871082712735171009929483877191683930708600424470214652287048027034248738306316493187956782514834317287842480712640406423661913806247419766644592262772655210666065821963811971600681439443909955637117266568906835703008733608097160505527348884741426958795497357764051183189726316893630345489979160731874921457025625156858411477829715986531857363959608551383133481199514058180933035635157177929251994215562786821860606444103303619571895577764702696461454006685998234093539096439692398006509360957013760118303437207842898301395322113919046822113456772942765511205558444778360525060969687570542101672158847613822812243050614594932342601867615827779532479623830866019382332759852318696778239251779268086149299930487851790246062846418777555232962753501714705213865974589550872264824765386287792481626075800675426536355905806928602043337404644917888221864808622206214197896176086258680163717758465152207278468887127423692385420300978433531713142593870856169053253672881305621047603076228397193375705122438996712775976059314083469131114832186204335858846728411404895764757849625139622776299466655932782416832252011867099689827361292347321341578473503150590253708001895197498153545284127176544532776465259167939350954089781255232798336250547594169496290501980381310449129345089342087301780733330630588928044157497459312145737151995880334777474482448626949434041053962959764689531733264837869940662029956659112932652522622040427857073183378749903487339528877191647175841032321433602592068153736632951705444882142867788031762621576441326135525255599728220007146241641666084056977347752447885103751008939147908647855914380412682322825578302058634169873955519743744212602604340479590821209455660091636346258397896687962585278515157111456250974995805806597123150418029091127982360053470386957705339273543969147486134842889720825305464235026566982519811722176083589157018416808257042866828865456723337433210072073834431372258046304817268397208264406654461369038055927186416059900681933761550340667770530856132089335781803203014872946337207735718652601355710755788029918668217879478929771154421410041194540883015517793305770762771826900299099819469936784465969257897284444373572655290395585400505871299545173011438753453430465844076121600701007653400883751051229917986514609239481189879720880255711589606131763754419674490708917088733576692958595813697748679122841967930722793907650254189861449285542110560633281905501485433000256831390368658285783128858251756305989271418590963824111662480807258557351960322779760640465379222621579551548189143453079479547803606075501591729143193898459889005009030935897471326230630169144191721481911559653609980905621660305476039745809170391967960460525817479657192383922249992437203415090698759614403480293854206416544329495162497125545665109117425823420603357153994953190269935094542610577471322937763264706143095025673391960494918014988078370136391278049083768963682400313807327276874032480668816194058489419350551194484130058753687956529738002843914157626678925794842266388507876423000748818340734157302815372233762362833494965084209653258208306277417533491622509339931805476813486816304896577681776962501445644062735225740660322772035316409621556350464091168904555672669662940788047178754674329726484285484724455254869143712406182226247845807026438874791009119641704339144618344715243887794646602390877147244236415043999718080367765736711520098610971336698686295474375680033525645478229720037820272977095484662590767321819379472150582010956558676273248133974456846216595446199673606733826405276358714282880545321975732498631484867499076738728237908217049216132040556716067777538702833211579987562629407255347767135446556074175274004767215370440746900765135679186354203958304758827134651605252303908495790136151327556447162268493791824023880098551943883024969944720295785295574563465015817828082127219193345773601372520532231796909490965915645910052118422231420640973251006547598620996249668726565345943292422044006562462972990685951829133366120249669988487794086838035170530009174425348483299300321887540899637837163961919196968785284305313312330048066674524414718292039237161444956316083567468090544436697090311096510667968726272277667701095859753523483886157428458357420387997149120341985096760024183041463539752581489577255838332791925362771868750976288551554393789760102397759056657547621318335390320223644643251329826027992379524432263918523983917343432120831348416359130102933592633635259260552850819294291680130845435666579346696241882710059750053155711464567557098455437305058230724626659126964028007277420637085511407839093419814453704664803282613258198065205456352850822645816002638562703481613933048931057473312945230896187179376984665583256360770334796804623174070473640309666204265057929958098787957810293449044542036081789151852225395781923306005406909225031294500713739452195721871020837615000139158797382032322134915752169610019136693964930853533162758092371100507444589233012181082789775701626214082569867756886987160837903602628047662428579500998662157701953529635017271553161922756341356376270066066000931406071963135233610819821887959707238355769306583366893735064729982415744240207418876072411803479243542055023506245650313975372647295495348154067320703437334838023549140129810955024329717961111460223800442805272311527591515836316544199073423649295986432577755837704111499365797804776536454900295484123055759393158404746728556029877201310156719371785706298664477414688558330116927659040287481113158593736654464740837182787403191832134825824033048300149076795457956003121483255132415967311745133835774294816212653847542075274054319085095077609286149995839949435953065493364381791055662176824311025395663071548445653301187386019383131352860058390941529567359992964954136756435602898451584990594619945029515414194272007778033568797875129540606478519715353734073632833437083607271204009419252689018340679196377640077998020866676968261294109842547569056180039203868812340028965799310590548954151805925026587635446849350929656194120855354553298957491414942925310848880186273617084388604654299155995541673805330557307195549366153216601488655103187488193461842857383088629806282239728972203896984330250671689136176423450009826086284704847074788374722895699194000524407343325023173715021433337015013739855938500649866730255065608256653486365414595466411647298097712491653676664053024178227062071708665577636583196012056403275343047140552153806372357013706575366090459716687740614866563064523230419255440518287630133462601300686232063847635495456485641880386143998132467476285833068540641977800103362777957396349920206270045097254735210230901442409174067484400493066028618208185178367493911412967962174540697276154377116495838562752302536757301154918442890715691023857212570149122823276240324717234214690793415252201979980421218659959404392963537930691541031870032468950519311847379229040587814643169261015042661120193691622408531247667740433454083779082097505725201582011322457869746857662828618017531049267459989595155166376038017486906124454413762430754165642322236312810658657201558628510843942780164494057768221572195877936335685771307315761500541331415125795678191710615473321194459659576101397446533031601733823685464025264468257337248730887183793458121118464223028097935754870105156582588753348407498969214143888131335801792667707145120610426554492299147326051179814337275311279573741801789757964878291982183320367334543141918415876045020406006429052446213234990148721363866334384065620593211877391703507856456548008719108848622564079256171792729501381544159830731434500446037315946100521331630490847269074006387318989984959941046531919137261133782606390156099852864214102753747186494857030554769345574638588966158196840085358336595836460821961879979762871295610361523758294774889496656584353700245249209920102491394284673656906143276388050497407621351166712100843225478649563588069098977970602725340346280582533061486114763556135239710707298377716767922369373520412879941625753728365380381893972696072580534562266012548915920075472834482779279427819606914232480612308042539232176793645304073944391755426187445166976427786304079804854635441351472317559341588572415585568027644712912091457431190292547733938885210589285411821887700155078730542847433473071816938105798276369776909364066538984471843391397265276052564621375186128667483477867324356925789920608467095834071601399244867710000961248555584001683767043742651753611741048004550875628989852762821044365933930058673638084510542981433922608892470128750085125197812652237579612870188026262943110040450298621829054132745738822425377131786515826331191253155507042271830841042060768201625181772060074466167927220972831349406539707189530821543119242978320587990664205660368348046166506845615054744799065193901741993443430174311729843398859408265180120435044855066637462039895005977833099945103213186859083436733200577725328400876247815387129665527837054874428998495181933073799753461718534577497271131973047076138777401530578696572698634948813901250104745576029657130348367424671198906627711952249718665389046702408413416565934300063806490891571179673624827804189547643485133478708570419279791021428313491958404367116751332354812262743067122348485815076913547962183691474425602820830328305134741379791273235714890003298400916943320163635474169771817244950079678282765420141374524360272608080420092807232007902932105126204043315548640178591417658913548767624016943438613116583104962083266556643015123247870928417955385769143037366801197075645731091074802402768092242082311023886143217499758003890372356462063203666859797860477701499212759130054627802297752847022444937335912873148026678712193715529883441803083036422541628680174133533292539542769525122482458116488390621551387723083097305524701931428718514932133624378338285414950426453111703248835874326722666714009446569002069787317362649415577393315067543937225261995539134796529770097048067848973279762048791310793934937741555463229807233868441314587435479647397638967801601303521490644984462688034807758513969754256865679502012308607687268128888610026650943512539058095443976794552887924401023181195775271754830535626150726749392400515176618543600669148993436457014941539804470322366169096524948710457425007957716274996540356520372869462327039245168549425263084342374737511220267332253932275702999660591440838223240167601164186556641064247025712873440995626159012973897609684631730936401690155741444058519785207910576221917798612377995031409628083243850472765264848594925896750355763294324050354204709239780413191702543807482410007812645349357265248639292460742265269143978570617218848147234123596667842140675174221070837566326536039087362100792842777302784232095096108556192479465074694282093377283803520164462768101510128819132691927888589417194789735665536904652088969724928135233977081360914724819672646554369595966375119705451163393449320627556117263198361319136586166487503889252133123848284461857166148055761814017153901657006143600572887470242531860023852106017207747096764976012514061890095099968988946631146218444818733429548373662465925366618474232176893221606325543642632446611169185369243360183737853798994084238782693606369632292512947171787871437944334108546449456494642999958245729334530489579360994699263342618210908398818689980062798895792907109102017097822041758059655922506799849745560960272937745959072743443772794917772628634062223212657990671100855167659574170651995020174415951607396486828520691835497748977993363235209428850669719934372902376726839304588359431489138438619575166097695697586354353353538182859972962609190315861322754185518571773516557696682972180081768872282256262774919745278648120208110953128986284655252228529255735985184367313527651417639341216465696933381963473904127947275820196125471725530868733162482226673302628029664852520209482068594895470382358547694228158199076518841802744808925317323700984467926000048042452357333136278793113076754947057692047708087003097708835465552395390878468731451631619667353843011837501234697977963347035373737702857936915959909965432226185345909476859128228758414770869861541778938187275376883874664347518565685585201318613618552302311884286641590230820486458971537706766414685303124984391550755746503229687945628326758806475986766058060320068825123807266967653679554900922021298101394765783200942302612565438561822548509700568455730472742910890887066973178442331438630620708215650180828135764787768146047984249945130796071810695874958019207841743017174336842682576574223123061661078299021290171749365774103267639701101514505183411008537010001353369477411294437119238282668891775265332675003648521746343939159365786805429700745462762960103896750003956812395549005212055978375538344259224990929656623873289367924766974925796665568837953931088834714530889813529602686169548569147808434058639456405284597713678145609580391138183765641349257424590941946129916835826623728137877790333458316036683735780508121104559564285007720911161966590193246720819178427869068429443270095461140680497248989499914636312261097013989926494381377310841049102026606627860671941742599188464920494153160856656516975916059124446141400269004244575966278323238857561581693794897343321761385926187287304879681674547694554044849446997882667217284629673669776388400907969986358347761439199175970555165294187033919851971817277640231951226541698798725113161440291399667113794200611603572622009792724874708448913757563016624849296203234874629794349000566622038905442087829176483663278520393375435865052554203909654414568561896064473912971405677305445589026225932849443409887193658246954931407160697514638746714749433493560850363245496952693502751781656528795753377285073992073403517700241278865780012611259616702625360588076862939564094199152145617768554591792450372022189879668785903050118941144380505320377181415541761147169631710988600190479462492095302375411056659340849584346546668762822449457005530788668369862659830406746438384144764143648421697872087982958385490894349068377935253873781695016496573875936194094641839068352338229168440346107256877151937338091007225710535830422646595127151861433733094679288693924700180415697989433595357115605097884652575727278496117882468645763718953297190488250905034057060953530801769198309913209732461618330884148831428529698062269201985985439530971604236863424940143677543335287255443378960862387019000221045619862929607712804821484886848388295996813005378630097890058238838910192053353201440882099547567530458506849343826879576566255524733379189174817762382701958725209997108351100115816609790897953648825441531765163815199465975960216171490194341337803064523225201659708390652731422556039089259592613653073962755034917623988802709366095790539937619954474480991434203074047566447530367619649253273560724756275447688452343487112333620589771298973890397952122461796172924655607046318495429321380675024203122125733479704531211652648461565388434837449927954522816338351623210148559463718004992880124971318572801788428122712259539421877631267793446692787119348774758422898041762308320712363172310899734617444716510898038399592001855520666094246512762800864798030131304842434250099137049728478652897367077342763223711821910967697171747489470443667691389697170688236217132488830424741811442218112372769131378944745810574906328601145393963721956340949568206982779597271436368259909172290585870617300163075944517933019247298353540471300032557350205903616858503061283755125554307420296354601393607266821262130769110260303541596650988226668759065406038875507081159037237826678986479159611642351680366135684137651184383113858075819526229347657218932095832808482334845019453301858087503495188491154774421136259375929101895314009042937192050435453667210430157801684823568787566300096920234699236053759650956537784572784932518104465410292181047538691425862573661872473354615183199132606113338557437855856444023537820094279917719787235341938922119203626442153385644511093885950937009835277845241383216784606630442740802966966000791930668976271046369126674615158520218019373882985446995604447682370819487930571282356553028153629535728848366718279544025831139115914449443107742012509011057141460860121494120379955880753836074715543766812052039029040521689718638501517023924323761825391383045285235589090798626448210293451950495964588527144436312063905398343445100050125155146893058857494366658630158877931054321065168854774399093145750756384070959071033732067537949572005715292259905887628334604955993773683422089996156503534675814009666644920170203372663981448956464833686847341421604158381678412617594613074971417416265960861538335725389578595318072997718433210194657497329405398186212975557061451415271980675350221166110039941375668727678977093005408130872216428107058648079898758789007558504891506079176826269981602604975748116892337777358708770404023092684634879819792783276286408608603041842476907938431243666698887426886301646345536742444662348440846148479173069662406502213288901228289155149560015163710082239999219893281706793869586078316018296702669721512951390558761686271422978720150781097668105442737771584799342759327102360402567344303792201986463551185119526715664318687202714337685255093259983490247652445819284550242996846698282200619352775301739091245081333640287742534122721498189120058175199102933169895808200316109739806452196898804232899521147533598262962731385785435768588847494284159498669818142644329366548312688293119065908672074735144671082473842891121196284666952075072169043275327222318370496009930827717674920679184150917524188503137978648641091894915734013964564445600456917534357451239553122387939687289758617287015530234219124078439578857988830414706469734640404039475699523319025548638778656554313394433976616289604515669791916515114929047417588093049461969547878155585461607717615282305829392333323132063297310559888365941207339696843609865595041406921054612825396199464773141476834428898672566637519400136312368217678823134834209156815240167510974275849306561702900920364264149027343517755582979338306782153361966851785592418119536886133280542547934690781860945390883448139106688821865243397677724841903486515641144591642629090175433970260032689606470725902122594468744501062425800383851116933529634242044302490544090855980286765350115175237578679710681894765364088569045289851355540445561826765766454775125596057334576095738162959047222498591701174553867067031181167597439088659279927953002806561544352625973965963131847711768594741900093987486860335539077484885050641837887802080504226813702716173018766941528936450952236602724664795394139865974286941743541373601144706086215024359014525430487907127440425370122483662173486855944240717361309349737571128703139681256329211945239069597666517546557552451794087209825645835621442323602199392828401780230860296054691929586025699139580666410372153974878332700203493911229342936083590138427590397115805041642504905811769399441047739684894827848516271314656968444563397663342859536982278708140410095974844107663221925171715135869705145235140379859241141605641257392781163550570232453909888364568796083173472506087277084092887696406357369749207813972388162771977220498442137816590782223478607895546562219583255970454619889702971215737909292909245716060744398077840399936065186362795246144969998145774129728240144840892472210007948806663907252651632209934835136367281994854126158756538690094581858368648831087534570197783581925569347016458443417923196205260800609016490500373459073863675260932571683279485095175698538413536514008085497695359957869444978077680054391877527473331059431393621306380989720375975609058983960570666772300405478246333217923906628318969404019653699494253231622830195426511689221191738966857803937716640162705688823783720883131058536174632383740307633006957027739382165223313578957187633649626736195985786843984897959372237556640867093962545403612431702530044987807655798155651902004944465620004444274558323630131141662545503351986992041423903545141563141639495538115094741232036254949366081470161413005641096811775725242097686865259837042678325250729632749110910983569115041915959306083153256366943577288089912114925595432789942384797282499167941087179781094604817572534906584691058668016287768076782548411530359077242956243341931503576026101576000782182283982758210229397667318725574275618263147597169245621748826507372782628188375708177326304618370208044098098287274273708883924226245355062229566054360891318013685272114357810484346661481927726049402141831637337361752796229200172211200367379464574118656224986223950704041454282695071281063790728389335081682067933898626109601427617938593426511790859896702484851809557075376913303822525520016475912730223602176365910682507008815757856527285462650132966434725725803751195549172195183319622828054280361258325698712064736086997372257404300186054636803344822988083181480247179723864066409513495636319421414506778705230061632941756777779623347719128147790292656152023604990350479952908188510858299799294483779361906915110565988093145013750837949800223500689047386318692229114308071162609342058715651011255373395899673295098603428429711892162567077444588635057947982652397590139231627573225433985256285958040643626610039205922367830418661542308864559260039128471926043268878890135128959387771177106016403858218322672197945726167737042600579205549620932084981190071830431550301495546702326197454043556227834698181416942785739103293029525906927039545906391964894057551197180589109838958649844671239158085160288960786408854742903419502497474182683897261992005733992277059364076133718575204782598064514532527861390372358693607523702624753048635628634241506448970039657062705187684634981772244373752627062162902961811516353811216632738641533356530965265619587609327353893570753864582603961369699208750099799862552672693704179481676223509850225043122018761284721553433025220714470095769216287526246336377339132054598322532751942115883778007434281569691449697910395811953874289750704549265590469742047925639988890655796489946684763307283244481956885551680078533678694148346162015005632223811628183254279098535679535270073317445839906017549414917485932386177009327742836315820686833784974221599034091595444474382296468034195528807191070391330908719333421230413636135910727230209716854619906848223926341459208905358935804648341134399033573793821254934306109977137583856926700903647489124938818404200998880614863776638648638678518232393504166651428998168676275624824706239856052735447076074702836612952838413216894257925169408336762446366992762954920528220202340322707261506288783735348366698113927749357325948174962482388297393911587700325196717336733069322654445736734375824555035300026365825633028459641296672084146120924270231079061168946502826915726613345591827823300902722502354940995113270760391500060134370819756542926890818215471150212821234965975023288318092301885876611169865595919515474828934182608148211623786302005847801316995073793989706230432516353379047574828956168388217074964928948641774029293592710206472023299420420084991880960045948986379238254908597792659954781031161741076792530926823400846515584786294933791091572289525779501571976255759201028796014918901200365029821907275385854415887283929956627087522222189075633059131254985963692438960310626416318046759281480038393430357091096931776085531040898826161277525865554339908656315402588703379163722339066568575722035303470670625665146110534861888870131299090574508313830722620086200491877110661012278587414008622828012995117611473101838992059600756930393480515140044384603625705836894361080309643242902380400297281358459175552799615795324464742807042111750685681302178741193331276156629638949699772121201322060951848573578742153057243022686819063783356426522135535629779461165050116524105192290361770387278046260576529184512339793933132231383216094633517028907823218233143006327611211208192468065902440284021879111296032904878654577821612570881737184412765886893427345026711655366074937881820920230984022043896189389047498954580990427180594294053853341218019166695058672778066233868357995188443813949389911495795690919525766210706827740771507272334844463489677944979627251168207128935023135535241025628397353669822427947213367208747518366402486152684757311438239927494415927323363644909555651227868042443378600807114650247190422522984669970492425340436377166990364718462014655386807496758331566987716384680354533891090964794862625062850618731344339249720798887121542835986766801459372890697806621503102736609272194255065539443451196516761401790281967748031732850250238389328665387534429061014706220447487031464394088821064395913176249671609839369508466557980105163566045360938607498709989306440084837212103591732819917494569476933733549094412034479981279536215952607159906924803063364368007229253152287975115386310735465162928379038859802716054942373202999568180205315153059844867071372390715177281711032133128476527921383171402554267738372187516391933058615578203502328534167929357608288064104980467371912656877950751327646160506320126423303812062848717043014326137881446354510937797532387115737714930001015108066989429785246147777813221749692114388276847497568604021360703411199646036927531106130460126264455312108665860220434085124066492347944829503988654097401542808255061250276187079435597995022864065587089139747254823320629601280206333616512760663800076746342858012783862362961097467519058915399371410564321951545524795939874560384289573287532749747171722113358977123762586161309907062872684071341654389869520235527860866625831943997537095124606160089922051604548270640121769818891534841712105213333244824912713140881599946445578029763804215657072375559920782788126447722841149372878459039835735209152877150792171622692630202757314151784849696523542866828344027998327347001760361913424168113761718597360077740363193847062992371850186503329396023682826811500279048890164189124597042364804064833048343103889924893955580988523781426997799654580781219190175568086755276629028867881320020505525671614904434496180272640347225735216500992021762180737036234289099429721272403124067014103449183104802936731845843734056813131148380925034851923311286671658908155414281617803864835549477583155294954308670145410351080998555762338937054590684780957608390362199576648458565751783227743129885876735095849139177833373510071762547530266762614100730959261990536174599500956669076831036707923733454968703341201950635499940615935278159911266109330259199569122218610589947839022205354120427174872643091814898401350637959894676735532485078578049521007526598731302045490650589335926795672016409007518753303244890628279765304589135853587707637206726158088557741808096711481019391867265918028007112488774516336881864431958970186913681558313725154071554630986225116904635411481329109258107451190623050914926690936615800117268183906685791492399334229102238477836612454299118141104090507935886377603428687237527295415291543199416959483083537136016670973270666308638586518154883847221897613281403976149331920301043053358025259113857621445570583407922477808694215104954721880447951515127992437776625361159364861892447880713909826765128485999160723864950586007245282567417008585103884939832518732306906743443514367805435245031067902446487360130478468380442162565984909866272578566957165961056769633038351468423889512727381284801853163640502946286526745339208448862865810813921060107562683322747724659208492296911263129477164284048000649064038805075946211997841099344461507837018563690498647284804131463215326358696803011457589975524556925724343233086144936315113078676560284380268281467346992561387440079592659295926759382589088358744358224655742063748148540479820376151274484863112424501572887568995981844234642323655310203862079214730364477652632171023898208650053206627566798667645281111639034497092828690698750901325119912394825931062854901842368374826947904563088493817544124562567921800103497045117437102196652644227485444393686228558532754705808265244220587058538971348734064493284142393081607527877672359529987531398629891632801377334856733938367964782166304937269049421504616198336481707653272799684537428701613820659816835455006567490135063151907324833547793181182773840035843358002568824570606128043698283036613386323582542140506144844846737032562104108063552362944134861666463921751183665544901859184222049243727707297909772215384092480009378792681369904125811630216040234151222305025214896680854252276507592868245939316015818965244355445604511157160987354878684309212193975198790237622681688618881052807469253439495602099155950454594958041050540771558114614350463802806160060246815408800547703562963038459751931694666080312663811830203948499690149438082575589858312421894071656589205060799137038327487818435717154926715285343259595350089611807632662263766546006917226812266207247454782591590794436377932063926989754777603015897318406379915828723944354089731118040546787169652270096843562335470914899577694293256506769958451615993263568165365000646054017958432812607392826785462961466128060685687752461959404607548003076656964169029508729028516469630423819645117487148683046108584511225010731433146751507673120676464829919137072986139616737160035785811107409734727327703976210233730236040900038874762693371340080907760925443763802818657835573586756814248414425245568882775292560077839581578515401780579056381534560112327713204784716103429088306426585420514030664432184971628765903877920124509475064008378859679341328360709045397054228531574293282942481665543324130604328543243202504799736708649585769253956007625494168769142054032159438881519609953169109075762660035779480171699542258326449304907302742129849696414517371835766883770091508319672735395921082464017940991660375414525890047898632644445157891097892891491820600272477225200028615314487779718406049690076342058608530255119864602084366019912927127881355383929888520404775272150153229830283530770919349585781895599140740993639468365745307671358464470473262885046771249352495262211541045838586439971480628164159951028280797857344451788605888021716280573598609897014325767290468531913151765486115090697448676141440143566047072445841151151991160283640777703785886955098430567350623105032857130970440129394162915677532708740277021014002876643362865108918069675528165903890345476013237635581202582819693048089537681669544048692742741587905997077057352239143881543489498021663334983415220816642426056130420288473532744169196183805469549842347380819129194391586010141083883044774637144601512135583855501078020465883780033464654257547681664745636052407311622110844613690558578836445014307555256226218110315987035862161671054734457492379674869980256877982285435707904841223779630726604281412577030679192996116093034672740052379912394093609999981719892976940263521115775870752599188641114716855330516762946603733948206402778086904508808643346138970937877090907050636066038756949209523082890264057644658580090220227962460198159475031464263423273608191701622478685334398087193841558415864974314192290285168821988841447658513845114435754527642725550975095354320762242383904537673288166881739309282843105675967028910052073282468755964475387310746736513483925111555365478832858606839500892709151062730122817949813999661210179284261486710036082370158669846999867199669366312967703989512007607379047631959722979324281310303133430914131153571503051337099046516488264944073494213681193194998045534787621457069724391679988140495418345601524593054136313452913845974393739910445913775751594845810945870413588945375089238549939822876237747031967280137639764860456127946083354194105168417390999960849793060006993819996028746019121235996379567256979987458872456364413846994792354482540310277205789887009889795444716532681844733944635045550785662827871491480122790279811950168572335850403802273016355324280310128682067373146856560350197471296987004505339631389312355584724905784836642305631256307613891011983288063161469312499431435029246204758078582186032838650677805790472599399580287706858067219811633192888544632417549327283555341214776614365062199231564257349964424104528711838274740254310859963429810238006317208817891127382888388327991742145611310575055506163965001306832053591038910439212883618027383714018189405891013747851020621254657260866277032496046384467565908472763218042452513373187874529880628584404563961799120375732152900296448099553134000591325306326878104543225306677437515312920971354534833129137186483106468381847829541699238403888693289633166674935175771248462127106739092812195236243291014419145934673137053529087510476195990177274349364834198350299281986932151985100057992074343316799632785657727746727534087552213103909782322603108807798813482967967176154114277747390715381254027442415494155217751106238477835852851895871715469768019942781741839085562117002560819942026215908815393289578482133981987836110587781493583574973838596907309633218028248511993537635301250834744745307420858952428353422048522078351578750549757175204834771145440229249744324569492754668611925306886655434921305544351147619087025396406622674300628739913179078993689317562816529325270010574994113172464373407928162284358376405945404566298704684704619875034610680828751276785694240515461526566222132793750795940629863243039960807043809401437277738285744274647090884039100933686027783484744955640161128333454288225387038143063638543212327755347780049103311466073142929052358328000708277983254490183386681356749559308038995873336976487734441435108291659099922273000232978357251928875659849177653081185051027046169309496296673578684654940840296301907340474909625100604283788794974611922374349782718860751006138782140996084710503274950830859113421048043961210391528222253292906190055899885213775958914960596662214393902422218873512217241561209372021633573203790175362557246951583853967846413878301054812680409595518635368159514292313443205258163262507325916360414539995886679906131941725198953700203984433387464922099136310312877320625905251452921043787773955823589059719517010961698264170516658465865552765663014951458804820858499853776300679591270478149596895478067594736577876957912482430940765744042020776337980467589837313584929323121258246444968508655048833391332296582270042134882886535038081618717596468721426262477417649568378144972343275165347336549147519069414753838262471873295144063936866445265558717078398213769762589573261550708468614517490245919625268970324158114883335853921967512221499019060339665943617535783141612046852416129313708356412823628214155425529535597141383711906772791475103446705941956942896536971584538198990807046910648237015109042692361148116777015046567643048470616966313010144163639787401772871172838242508148353368003553480153525958786572632772207887842854143021480437648807923979363721707797059215070250503268727121084945985164450735999674841741070124838326369306665880919005488432966589336173819939543953146285557553261635500274032785584766783989013231445523000675527096511114410278931403253292983314397366460661028151714641103991583219611896133527374500336731019751829198534180125276746272955444122606659639987817151567063313760706473918479470874318902958021521112999548714798674194892045363354854960808016513234472247332159128665332902571882336197227269091061117604600155348125555965337795212465317204247768884012661089043552163498452723951175107425311619624616882436183478696710048398124452503807225059077954319008713343956510233849380259386173023293748770384400485682131530482292415600427064554798918142584923145819653973172137358931855425411446750491708880239409808927269448329231959802720030438617131026298218916794477619211918615741953407761308129037954710059715819397057838387542041248278287952946671110731338295703517451418736004650756811183852913799050705965609146057266883157966174902782289507824496122515264893951002762703992639832545638286449418678234075938608549047248434629990771614875701334703122550667227626685280580747378204733980483063140397814752239189877936207684114664297769321205398041749541102623241569620146392553124134987219360008085579847228660760013914941813177193186357367942967058754952521405250369346945327597943681000542908654690407882479065950520011736821898891263971401433256327098530294426383428637926137469976984888468184387196623752475852524381751587415803290022216443324636007456979715239610210035253476616586131186010920022261738355449414820632856116048838844441630711112439658884974797491638531381560275883965231001774051799887359139136659072501301178233066359738426811034899223614878829710259180472792102759704833776137141438889411645942804849350783105470131985867030487118178901721264317555078359244974442936702877489043755980937983734495973922787704910932292045248861611681822326289383907385681355949475882158357282617377393132774630731659936536476420479563412201018861742935046015413045512396498756499127589695345994572341919471488168275996480213464137914545059820241058633295326951823873454518573105204577012196742423077850140478605234449135539828731931190843337429682648616609871489466765124788956782521050600631509556742021554214803045427604726569329202112709531048800179988373249350038325557857025488118309014382242042795379501317032562371581250304240976317450579644541125069877817296460524029895946638398062187420966290496276762335293548867070200536812193421379233656363804479682971051877551191161734409166813074845122134695966211118363259893437974777993642720249846577217931782790382364634343355737091760942439182681828037364765807370058621500816263303136630315791119701005688071061778591764832669327122892393984239305404983207618952009344943492165257105580684697195516053868965841491332721933903813991939359616606496103718417998121310224591355770591493082400382354462095177662003653648319986978977612949077153305941399831747279987253263594520932322714339988954493548005733036350433461348464284631018840661446090632005591313764779563367697693812275432843161054435480395738876521674800025592698657380591205788066271420373882872355584873728163913282183316321802473965890425912534847715485832105198579305320505491961132351359851079866632297880002866531243996337733087602166636907550822393436644827479264071773552804471984538066975723952776522919372914244714333458204674957303800389904049025638780973522987597397470025152325716396551057422200385299757334958402024358236163474470134227849243617966688637187631845114538933824036169786171542461109154094402029167877596559399410388602502556681350857287834168366476573221699251536876529456281377113004208145144996442317621749740379098531909369055911174727521393538151839670309965740796823321084486714665956285059724609949681431070391369435056550790401283503878243443901520186679380248373888675430793630397438208604094282139154091790603372587951446552284889643023727673174616890153044288435339418768303406676027035756324427533445290632529878950447832447896512270056309324487526515629767850947893061138483383357089987807000555081708786622806184966497433836430783578616046722163157791318632517450515984380356834613220052109694134814627647086315195401955182796013505246391599348684843134081458953320471140981585028204561407036099458131922726839461919305177607723221307523749551401526968241790047129088064618491853743943428710707618993929376472074978833966213703073774655273656939516380449457088271082611079171982320322637292528604007811875339404167759222100720316535597476119198495672291470588907601282983200732396660936590573914771268680386530012093570206115951235189886299964814318406718247768687276093705912137543535867846868326683498176172654090918553691817102645139034875693474609582000241990253334113880107141106160003998084809261649765239382472590771345189944203935188147112265644425255055296363091898001002969998388440652158726862083315581219524741448570412167827777354841910590320057372601986365349311632937098586081912157107501853858602145471601981841993905978058169573959760140977723887366411755920405358503935450574024243752031267317763674955747355677352461594583153814300652201908175706931805247960481469606476932600889365356846775617593811937795865396321448770980608038461764013364822242226080553941125799180480461740929636832521367705196354488610734058321673033269966340959742576905239188176003241018117699121604256521958493579914593845033252070933114699313243410873062018767730246243006440788786065537944884013024149123727712838477091205629597479449763658720508518788563970947303768703718234278216339188989350845937055305309176980318555360236532109390439318996312598186033254388808733449033067810982146770188272889058919486158557397936901283568270981913232566698274353093423532420033258125623566709590573769074799622081309487977376687551076467197235940897370790899888386939412929347765153659914786618873435387514880969752713020493880665197809045412773664568427197263562311554066262575342006615438834322090716792343522412892813063134650310981809025529837782239475794172079394492509606700791395299128639285207090130541404670650758594041673671565929773935158490153815181391223804384742979733859197461580729494563520766685034698345840723430997581082037596125310416325655715335078423242974865591302300029071286931603892269637371991749282347501808287159886906222305240817786188050985910889978449622096955732224399947159489728395636574388872313057498766269058801817611902090238615900372226363257535506945467717113141848322474050060296973434719453854196422768255133412216080715048317294026976385039948228587228072590884877505060244340521374725928557208216657169068421065624828650653593081836565571926732811641130999756423127773877327791472991618179387640642558444260587160339746279106304330953243886357705965386278756883867917752556001447901877355484107159289037331032853384650801000913999561097280719637064543389220876134678433507074507238107548402827031672230783695136949909357470689774161197586462206904797573712454355265746047444249715500503723750133771026407298792221520587853818756417982556902398661660028551469345719841381400903048987002468951535182723474008564711829906917098773837294226879719701310780812368242134395963382255588971505313118796021998769013442357976138393677468659025260261959275457376806852823926809959732739081896205363169245920095041175335419378399285262445883137795918089446772680453382861121131686869757382417995418979158106152679223638895795521865626361251956748044652381962349415710072451749841975173857399761373611783417699779165587349730896633833659711520247617707722222195406989649220140730811634380958002264746014455186140779896212242613084589929371640699632794165441354173476000951076035270756259424114823480176211902318741516706007419760644512144833300620417506440543793251877984134432197464689885868045575445603805983307076327887505969443865641162099343134266973760817362503546304259399713608459401495623880639152480923239653687634987372109399506245758532273968565877969757977942302640055065010477555842738806135765951994463489445810930889067206065679623995918254423401804983306248148006295005037539710132635437806345929631573234534900172006258504427861904918941436680264983082391138154217941737421780595166125042308081506603698706355423203465828953486306902599853298912436227702305592586722146207035299026047090281335767355918878607803225027927979561405750982940805729142763692009968896543504179161850828994575141227635841140156212327313276534691412568832464396023996290189406203410726811642546783650353968661746142644675912518321389590118805929690308411433092483153164438842601780975711404765534149844909019042344486591257769605393057688669154258111404298295340623961607840349534412141853185113703259469801733997745685168692526223324529582622767185560420745420766477456208097837652793882155380569974408321312968747696422774058627462629259212836941517992361252981893780500667017846059011959670379004658688038968145390597056908112212059446954744625525356856801932382516401705007210736723873016999363188524176533676140283397410071302587943073588465044008024360957060293133035209470034592115160318773587116858676293175247824761314281620150513552726823435312586405772489478278545603316024907008923224312513841715928923578607440260182569118936421790613299024872334463442408858210135525717000779393880122400506654124947934917446593326384803181371125072337056879973201229720295347562762447485299155953795868089003804016580394851733793725450881200846903046271322251077246883804587853146555317565179550632736263631511544273747989615562719628842664449915130154124347778871336068935600582562980812241616830224646647143901136555566994813845706350598472302855178145192373314346297355268222403428717290007143962517148649486025441751265477432814599003031551320025564761235672974918097298178675394646037400334279505132019974443990088051292230311236659223295893383956094810915161560676460894045421162349940213296033008545323552806902057055795579258377165115833119862885867142588553646300649855516758846285324393024380203253302875427451518439015809087617669520656531786369405588681364635658168443160999478497106298045438472208384937641623459558460605936999000604174143187679491818363854257821349658287355034012727368372238633465719789813103309282520127295261602524968732780538895119051888030904114590384312374911931373286893210205930624454271192943276799584043113622321544660834537622952772943774461935289079082725405790340276419001830402321055038385266165061821022414616650096919007564650583366860002591950975344866433814323447174638404605355196414161006920818752050991383124262350835695495477515933675966376465335170405175899983307501574021444599922201384085828675753328199573718927156905013862896607804889441543383299085390161051604928317785579914250320286162651586767008456356151873455469023238537567617034225438574104050415495635141745023728351805931511502035859801505448910654562711319535168625446508164468564479477702948652210474230371164795329659475237696940526081990328171087944435438960107610941867300262306205239728040888031159237384038688779817248656490566991006728205157432059091544250611276343037053930230500272556755219896618101188556551712903655999338179046289181025010579781695462933883049744378917172847764864833991835384867048387704516774731302647878674512906857796999692698078942225606792265744062989584429863710738799538048114563662542072863475683954394467409923073424268000026931525823770161423867429070102844191661534701134000521299976291403062148121492238912552333147209090315085000535496771456176710524033099664161188486723590096501839407190280503011733237998353539669462542197946279121629937208399351856827884238261480665245970780376124019882469560637468899890644974846166260936723238984261219623687361093734952002172912367772295937740837393464210694339253628895976572337152023791786874245135484367804856889793077473327132089629661693622919968343435544027156706118141481304742356455882654327722143490295908046753748514810362678990517499763552256942928084976572744314361445643508582126749559467319639214075151371851895459664533771821292129080058794577267508909957877111005679674973933030492386367583996651626184323825326287865764920584347433220199124375984167336706081120014083891705954941738498278514335820975486141230001137421343822950413969048945300506384388209782605860949798516656992840596934484643841816488920292110308844574984143084957051559217347916650052137821673072696840799475418766659884665984683789029733868157955596843537926505745436041457793224822608782607513943570124451134950816358682020158662063805446055649237356337150912335216203794958873993135850601913195522058316369092899544753777399370897362956181469353466648617809932510476541351743980463586780197802378637733400201405050315076110649355543629665772280979237139224692767274222222289723983497174197107108703312640317682591593463839153256708763456519263840458106599783320368148014532201449342274313975827890562851727932983719445424828346733973608118980751865847164010677180991892155181685801466801695742222668014973268046945960528187629409257209613694176121294071377213313822951833514126862250999499244736617497595007050481280684379282668278596781526603618265062410916760464866307017194900972049640555325091978878413739967714164189959900932398313361334072749593527061206045481452439452231013735565579185350841731559709067323730392406016729088505712203387019224507994373132906270588618364463635247428901166101079941981716464857749345937702242014104673901734846450239746446700445614248197936597117049980860095023993737357049048051082030634573052286303741945987398235006280540446102275514226550015420034475108527175282159797946291124222561526055742500943660823345524704860902679788314918766528123728603710216019138829855592508316576320444463005936587447444923686628990725910838600794213205128443986948024951006015474212439277145310734425143653077662929886621500239408622768809314819697183279504542445632118948401764079728165526651685929759396130109663058204888265648107924559159730045387069038902058594501175283349967419340503245245720874071099212782830665844095144283673170484849528972581530606139512156143998602394299289624905111944693768905925635368863284374534722903711863598254062228979216639259985820075077736393493539922485402560451476535856525921122681540072760406033242178050774717005394757122193909893459853767967926163102028975961763559876804575727581909126304695930688397542532996269513805493465161702428411232420214512239578035490022462339493637117875855647162164658750585034150419862698667848468220978182117288431172280262392669191275991468957875613691362564876543787602384992165328122589449316156367971312242297548036166462191727636172847247415350077646861543058755543896022922115554531090160746400526833325014191890324568183115426465033784735460379238857543044710304783675995669142547643373457830990286467756117605363754428711504453868405848694290201050475188838710397671691490797547512984328197299215909870248903778239724449520369674107843535573474015497082568186299829915683705348332489307178035792050498138906514838841283777837546389729240278727933138322538486147983802592687809192419437698221928240315231710487027814716487347945271703188832744587655082592146099850182391113505298903934791304074471291046835568555147420975758928187580888516694806231605652097934440049199686308434055807953880146159636284369451046529792141969633083511670789637415239951230934889681443235107735717705074963343699231274308883788144311568454275926937174068508790424318782266788694275236971024504774348205252111521460815191052317902851269867342614183938741254319609606139446398889258337893865444948188447369546078714027470682573595213002255874404867222153951197353956722981124500817123695767223925483517691777375316937775588960226532129945536315114258337312737551707209184488343042544584559819018378574839728059316006691888563743333373441961687539467341933895150257732392109888818903317497572152705437855181279509523268116991108449976318591290927234508834271532703310562662352375338113442757136811557730756271696555170305085631773054126533207043245441952594495133034899327033742607100402690658866096949415682042753152823632353541352064469834061589460183409741077436528099061061281294896929148347326078077636363606786543969274113970323327465098222622851967019486108116246067281378064954179864200570828198166973707468107698682787388324810426088503641878100965763687866636677078022476786620901116618098781686175476273608997340003184363400877948308403367159204757272870091355914090976559458348866762499741451538673033259131201977624005331174832238231612557043230734601693597756283402377004826657216712542910557093840973501533517187285970242033672187287986114245403790642533255718514166634109202369314406705412796536308802019829574843728419426555973497938539373089288776643164110962862629251419930284394691966360463402436406400356550405291621092711732970249976160769467017257220508187085237404809497865220722785932995554480001138886743337411260012979556055737503890199399919893707278043286205536101458688207080879594947709188897996888111062799488428868662498117503675573546837011074942783969546758191104264528527978952943548581193176869562541625776787002729267458616515242227611392740495897442499851146783847160840883119135081997756757596486798045045975064197467753589915873130584294757111323712961893111325000059479806277333217517616859813854872874930332568458849263214245581504909910798079233097952914934968946614647342509769356206732384367929444201055612140366346770993708159255920384662456015717452487593197889251523715242347829255147832042420694215866732049549626635663661711060729519520232943525984073091490106285623913004570475006343576242681862832636119892669598281119225870777988900562074532855347662984670982979574424527869368034107499204438120336079724954336711362728222406582371146074843069305728356165218579397668763813868728820177244245109979443382029318907124052540218120191980881495069513640490675625861865320397469788158734712008747378877446196775107452995972536446232973632452192959081422104683225277513734043855961181724578983767930373358344553958879405363771326284024238754992345321730297282754289853153145875403133067121935079631893238527646089533678126199794218137330624153336080336577167374267814213410678637007872081627763962488460595360825302013995982687872208949857000427002758207465000997553557891165189294823720511781857531081655302212623164415067348462215682580466166326593790582213252337310254945611220062884220028961081026909357023669759622319035121135893259247565130288846588498006456227302793584925714308628212567688295500416566632050364502155474346621163693526490636880647722912307312141698584296632136467250432126636604262645243903991420316398574151143495473867458472704207455403600035851620145437497758964323099170830794679676680111536524838265204627760277822359275605714872570132520768704709667680394302801804020566279665054987707929231460613642532988995274225366587847239944548738916932771036117016030590410878864617563676170333787948931276328472743147836520171072678277624356531550770039222976366886902060031947482489699357145745077513462560515934105339262180430076870940017221069022942571860754379989791955636936134201599334365063162900896553784130984853715409955055873933737657802457304656095890233362562185154108704118914991175763573728331522980711104593431574732499790187741117444636933114970568512133062299253344214077317322907283668681615856935845640471468069313943607582438483122470824423788633587050021881971435544885264077794770376291051201507214482479594498608794698712565483850563077739119651436946006986377903559547521971467166738523219951198048588364228078010755828486232297234209040951569254463572736048759668340189404921177000038547335168891966513064954469579043357688753114215842835065948828828028212780815066562808735880166685192985632259469871685102974864153217067679824592496028903750372561265605828942194828467754693348540581936422790455081942687044902851254001602601459779679376377007841355488028586865989535267923987835224986071749911594525142129933721492311113263771307807722258982045271094543154456581910174614688141467718703745248103959591547191367851196160152714074942785531630551769461135487718782740380071822939391654108011481134126834022972032493425180681964617374766705669947069459028880853368215092889051033607153390582606298365885109432835380001945568240572329711109378901414861092883736289912260909409412600945906600959109330455317438273842640018239014035775690545471465162463354279383536257559934806760833157799021936243293291308411573611675707283109219470723102640543033348530110119672704352719423868486234556833220970577631063062280286796884001294734365400214740531690134345866494796807091046801773283136920578665377611178681110904962537240804131564688669906303874830550802771746367069114183258659444770234381365046580719611503907358866922780490545661282394769945280760451610383785923055337331422000973974177360647707726366469170390652853219971561724734434989446174316397159763089580917451973894509503866392051762854420685513509350819662495829238650155979861174909321327190692079482607654707159764515767171404377005069307835804541401100813230317547148138674338432692655844750898653946239823993316995796100954576362206900776832887758825706187927428362953282134854969789761724805647174745435126549381914617710193550072193383382144831612960431276750871924859959029477844214623141299491519143875333095654121729130371795899289659754506464864418460444265046753466507610612593814369198848315902472770360222757365283554769500732312665033817767139221941138874706809397414638566633128795107779373365415560202078021166558895279110633839105734955610870932975570474499172681904901847913782294561314705934909045522341423363196210313476714620461539625155889851692206307847896121744966959808734665147061427325238020556770238412459908636944010341930154172269432974118124683716954398646451155151779888142824597623738740774139649440897783201214819142586741200619626651240411623893103268777893208608106343626945207242057741846516930048097168283736132298161397243834814691586586660346068244583715841747263585143221077337544794048124224628827904840661328101654503834640451574096700948031244200722031715512878813269447630031645010391239605339171309533077027755048786817935839252889662473576763827995537408637982007654253812461818629370584651807138703784215924261940050903278678536380624704702528611200864278617717956616391589426947834123967849888377162331098261709371947755867240155269237904752318954389314349489728227918947270056513577787298280111080218251934137588714852198871746720702793587871113645341782433542450542510591477859003756399682749318314749412037539317117926435174117733063894327261504755962419500274335643497003830347504479847129881485581060937091460541176140649374500209524651055738724907513987722239299471377510537931320087505961578172364987430462333167918707378966270876900187150028515761696650939985241392675667125480032989662113330415098619400287048215658715351015587159181130421202267942418467632699093422273400878241860920487443885496588976424422437474125722989317360233816097029446455138757998108495510437950855183339425161280246285051843444844570675409215015041687650260603712600326994051441380945091685646643182136695390589332701713557443512964356950591617876994901134304738734047272692610942072706797320486395068228917372859497800289251073117091750793288535251607345761702713902435026939741097533421767597977855493162093801308964050888976331685682915634162522495850746929324925142055732153134828246044061295029772971939082546887345520150652383845434576098093257505679096048942643287572669188620916665065633516946273611315832731182603195305707701983553562372941521613346029147452681733674069682797087401604907976339056807208331933273002909671505163245813423282824243296892205077689512199867711152461708945277456380035713589150940263955185176422888278606533920355544667991800609438484601977790903223761781321750485515341176883504444848051075133763936799740667069365135974401751880831436841553185991410466384969394271157658647530717866692248145889673614326672053709160470081331757601927473246547585956713264894248413033576059980500451477351113490301466863805922647119433907343092861341630622013556027002657748973121959105445488380678149025471091332479343009835729744417675730171204641640294388195609112316909784323180144399283260172566886053294695660086949393160547189682809812522344574609231633440093806224237485091605172114171523132631404992961862624323681677317822006179238387226890766426268454190427658924585824448460504251474842809169932527546957495905609189219397747876303163872205178994230449896654768834243903215263455764541722191129562948785347765290161877923640947099324877871016169757733732757985110405378011130823517696799417496345236393834087244584324593414734775582733622163427391324993237391825922780774465039293330940871327655924279090536537633867390786937054631055559908510273552436297379124237517334191811996160790047002670108245242956552367792989356725249045517239888260630688381768343908116578914912886354468454815744841778976653536704754801153139143526734302317754834017524895273727311129467423493161395767513530224398293696452564780487615485350150340203226634512463549942645454628447921600862120421738363911290324208601590655743574393096418472826258471756286286246491819347567689049087606640654336296562514242882320298098438178001523671184586876311100500861605457347023972256626432242652165719712079188113654686561754136932903081805025509907999827835740803705855049671875734832512590683503378340655798761995414171854714487223045968782389282325620196714626824535401861491363194397795667321809058021504258034902555845688408732103148399045798986358807606928652398075944844887028605565954012596747392856743177616894426854011286222801180845606912772212901173862835717743549008671116128418298107784433867474931435728675305143204029142068173760798676293957930511915277135274903918805412029258789381225346528597556916691955535450490352135226027019432895512784817947503799410800504620078396809467647545311356804477207478418080743500045673433438895945109383448886645312217491830690764856416566371771363599264718415151648560949914276809779750267693638433049641564865856862997561737440681992744189883946956599748995201249010403735813512945293836441461426410782763827514107292343699127721145273159635008309640480260949155390397706948801683371023461909417467508415822387976808116664087430915605302279954606368297567318554715627452444340555314087036720947738918974032259046946109544969072162451177409872961819507759026655295051980746844606316989455013735777305397753486750704864875636735940421497767211287163132233563514386441900799007498633872502536682383444254436822182797147009460884441070735838854327396554639813297860161465900957547998013077431897569063334454066960389488458971389404198534902391657641677512923604900935203853778075340305904805800011764284507028007405549466184301614678695970078514739672223233349397445836327686299030884952324467886755086955067518996632846479354947106391045678575947712739269280351019154113350352321235902539889601059519707508218389642004869354419996478120561014501604977974251072273989442860986818438514100181757338457553787053105999846964864071720723707560400902454542753437760177520282652789272187623524148849749596381589569628766005475430136285378106711838151070115833037321628595564124705884672267008315445953661919434747169599320074905869150330454476893597334332242919958624064490214981308207601794659608118071139548211055743301606474561395500994843719433496613824097603026134537805494997643475549081797177017753673061100187343329924883464051856903132286781006228899132455002378752289195784439975781509384679883286399819204039234739804885807133961522089058746936629979461781951826620351480957609996052194001767462166841740809633665882990829768492923826911476954555636536722507869748436621651594570379908034194354369560621516496384519909495559787638693357941488521118154352747913301109833115845397813946655209153626906140289787108948376971096186645206296895715148048055457876304446253408549185003944220671452591896678404804443821560454327188491659840495813854114235846784604289306049663150102179570678538945719100902850743875648742775728241793704092748565111839126033245819441964249661207474144794185370086581185919852307610859400056057533474811135786178446794878226707122349240977073333644479764118559838502102615135034250808218172478037981129954236204323326544234509524141423359167490621368806039196795335502090972867360008034914742565670166974973435554095392737905436220585369934645970359783664947787181701141371073384115170868940348163201544726910056697362692444917336300357109075332118963890999505525946745717050445331005261710542880745265410541400592821215412567615659350928634491793040653790882522368764561952104953743985018551227026720198282577365373147941422923386578739929993585091353050857976317041748373898327757247387294087453309128625111811239931395237233338614133653106804450193988386228102509643740074547100267710364733596022254775927059339603962313253661659811061635234354071443875447804402643331944164056788528526891807844639300830185351115871652999593929850917587367216492036464030385827945246537996252570210172402113588616103260884812663427112951139548907260703035977645279598184548465533948820204145179681452772512993984779675461366227741149057700667432512188290105454181301714375957602517063263942056828412942613877195058759219917421980721302424984261917473932042236859555642640252033760472623717145396182680935300504959535403280946132839345767125651062789096357144906742760401788128681066346777234076801809097982063119662071281210097714563088430309983105133730880710824716710976400315626437549709403202849173989736728579931768499013488527610968159957206819602044462842301866749378784222286845024435514828768431927522532694577527853386129036582397293407575023995351694342204933165784011645732883064796252006646605752633633520650646163549761272191723553313869704828057520050793644608331210674212380431930882169403100838432900854499740733428413256955138210279488036504889398871426958205785377324985828662755548612824078108821617647105362129788332794687141317828091631697606235733315290391404028626702535191111017340045562887448740939068266402932137419830562694203276778874093024354427826447746665128879180277857023339585692290470265811145077862142532299107995801099497444114676999292521738441385128328461012150985309389000890360112708467353655717157333785470567530609150147069943821725325997323274728292530470067607956018694163433764894100373533540951043865329118550722480248539214405835154864779554544306143973893161348089984534843757259067315504389292350360999057693978485860584881077367258481119241313528504820283562894398068904159390233286975499137533586628480658616064952230625977809713919945408878336206722411595866453520535042182731043176226831489473769392473498366081711856204741923465725745188823136764167149625710101534895874355074894425487909456665817328821190850745286862952451426766711307739771087755046458682741522479816308440703649571552877282773179601875012502020194538846233255438637263151750746739881443237171130279711887007999148282180202647063950046902889681156419660818438193207975675403770907062054992302294893128631395250330428610680645660161460410998165198174753871367386328292266767571744179739176791050659038952675623074949710031763199679464368460352840481741373749902343186812770181959598579777029491774133180987324613222059747742146389666614465352590782656592269762683109502924200584801209222971672846828460794720293989362676662938601571185942245453401805357103102099322459510451383510133209857298432265504218763921062278380060867312099671042150180374935635480874481506103166366049675026720425837820361373706904372110560497193467490585322797321194638680272113940618590742993272594702326031783097408656049055413459023252780468347131720962968074993490927863387014606797569873374354405118567944664774138527374509837173127448722176342027501344686796443840561354708621387469412754702292344054098037887228507256920775772267376517872538353113187843169677258574550391143182309806165767913280535982198145681096723110237908267850076328089740833222596553498067406173075912758640839287947545410660433634087307498196809317107990686957855456716485839253828442766906931492574439119003618933434681691286179648144271206778496815085380189093721822353840285061225110837058569866091249737249040530548455110741981077196637179648268622826956178627440031069891289911015368692107265450106814131844564566762208997004185377621349409597616297334804080356328248887117899173485063837986954351132934726170235290663985783927682927255027273015443986512590543783591340837195760951417788938334772018696961305689242205313951096052408772561190151354352789565763231925957693570967473446723345976487256748952626776409341411661956340058026147728251866319255794666376429637877592385658927548098659600444234472316424455984952746490737199403461830261552669599779579067163061609003546028227128809769949666989910040250317789081008124597225760472854605360822147745661618683027982029237312462086855120875066651266174025982842381124341106174177454904315658376594103710207536185827020920789278873630187237712996752757685988499593339470335168016024327262485255954745989745630571130570920804808097906466379858660535330767391165795673691842237847296027842752636553027055605632300191093748398058528614537306491128758985021433775074181855491734552881745351147997726200194553030304204467786399386695762883689299473195923451040115958379156908394958447314499195966867338501654015182991589620935424022793296351440683082799191876429276309762856183524480693644739314761131464571515659324511549724275796925816557637165216071759498463671630493406763328883632156908283853666456922688163737075477235370812005081970801745929045707080232267537647586487977611012778723705308882453864867697425364253447799997862940777548276019080572204320077933083980489212639183413373826888422166685701330192344064546355091471482360069526672445388066731112131116087278439292352315661421816735417930025353894317932334675902196196151626512470067046617954096757162703235576039172824509451563827539865480223387881571384974904076807868070562406527324908637212764586762784123283319542938641187973752013221865764335911283642870976831387403311943292207411202985784765189863866644706585486728676014620180875563906162583421298734150565410854177138601233754852372698491502610679254627239054772708787746119831830428411552543723506405466133449785963593426064209631742591736030499072180216487779555653006599117116769358524134416764591981423840504763145214537626271624416989009230659449673314567483881562352594116157467591555155865596273556187688397686915203205848825534008745095370116061135168361406817814813128193099339091555810471614508088029125362173371868647092129568083425613327520844986337154619723980317344556829258215217012603775337670373784472641760347981660413902434492571731527976632655056328202828548826769515058883107447223672307576271810200739023136956943465406019885432013261800465206418773832544977616150500964197113343567408960860028452812858719441709825506313591200305026362958184482397850609518673876367120580128479044736259436476762096312263303967252367348599393455486565415513365031599903021466086063341612628418324130174439684527142717875425175951427067443161543138684966124187161332133062915472506219324667762847623375274684309316888095263193700377095454121397457664987570855312570614848813958469363141629335353837833369106605518032390631103449034347678443516986944903489321217370431173227459267684537801541559224732114181402552489441094323984046418074113982812810449101510667279030631338082075487191881870516257434055316239169652416061908448054021365102888387403290822798946640412724222318806100599515531987793492901762172422728934107303139944874602025226910069645130649221190522515196779306700497031798736023789782290906476440792074864904519022822049466121594777627443851228787400730435336624283867945108384717447236980592820910929915800513108747333172481511864656021073887254074861797499472450821450496080967534957499421680820817400657337578828330595976452062726567234785672349613712924535672978216617193412481932806277192092308679449231657109699309436492706466717307558292026881346737824098238327335402132937927018676628651111550419595670953019629428922123942868285969431100753229573648619502250672883352807884596008909181041837920780593361917925083205217864717652171021065930440409574634804627099481533407798925709663893662794097032305631249480572168711096034380697720741416559085322530720451385413188638237699274142745252671079130990233818748665360598902909767232793460443379140640728111663384711024713031858392783106439778120052392562021996483460186879459730869773138072120674067056221308935443156049654100380171132408094443774227728176349168517668215842022517894053821598136479100299284905420516628049498934250375339125444203668707602350108468272315003228831199721537985252349743982852375957569243748978939225790442188916456913286901386138351864218215568455092744296295950829112910027446500669680630693706538100485922719349413676312775626647197118230143153114015951437675442967581468429685468103035717936536397784894353672668721268091582633600575544435654110945458880266925245466707953360234383013156470350823430230687778163870662733210144022871262899621282255900476603234288066829616798379708909398511520786220112178413846448091818701725839605576501320966429524734764665939987474402628927943837206781078335391760567671750750744923505496686179088700100209047109721274929805593976018647304617499635642255735153735845683800798702384020727241470951011475079724343541775526536623975410702330782878214446223893002735362145594537369901405827191897747855566679542790052289960781789462257480297422602693095520320117070242891734494328491431529115505341106237523718546857926487012357278373445553457647031513497995866656967401286461204025684718214223893174322187755089984837522162189946085818913417378307060151731894421032524766265792800456033743694348986448324595706274991787658421070053889601294096479270548755299202188119215109498825041301547512413510016980821610865723481543058378234290173495207923971334335003349889938622276693129212573393822361917729873889404937577000715108968146850144376456469492976600137385018925586140999399324402554230964622210074041614129686917973929422617538220250982588500250665795198437781610670870999090831967733932032607450200972599866865835447996473413439546502063939525231121178770840080298366037988940511327047994838287565764645430594142859432654976107373602326002471950382174807349320840397308958920614576838742175542325438429964734093415776693623493760092973600264921276669189242996087129920961719670266704609202449209335233843150748323555238320511772617525066351538590323490761777231212005968546906171997184794243211676042840610894974280648796167543321574684911860865486469369645739522780903742290340067020735159568211464013568477685983335864374324947916306118596030060039597551144882045581670891361170775154668149921686298031126777476087479009197480869731313035417001802299569985665746060712722954367888781003106107200666841257925706639337821374798958603012026058579644657739436150448543675583128194758038893324888096959200868527681326561194615902748027690130116237627338741652667384734759243865545680848980172794488314186066159619037135502466656491178304437580368958467171089085634198503277754484653369945906086819090979154119303105971532112533247802911939481144965560385783285188235243244230036056332471947195399964996134166540005793997506897605742858509969893408784880133367070917419172860437049784336190083955364874089620017239844594437906706261444085765849207733364590766386545877636172543868741519281947496664035655816645806771341352770628115645451666201852284471876480185898449856848911546516952748102253575249910386774789145852994427294988160012071685524013161589215611551991352433420075720994769854087023864972934625425366749286692473668366394946121363472914918096280012840281383647229035258048929628737072090936176231727421690936128067460965801665487874053117811435404877562973632630935233162915224733652356034114495761453795063206341793349645151874700490062684533833739845306256202674682918654210496942046764963025557850624981658774747383704389390741351483505350941618869427417176502628117249524647740186906399933324713183939113141791211387754796700714918606177768535136344797780999021551705362044514546264786352680948132803037451063160164023042206608316695758737761959556566932216942967902359942963592685721771793268356170561989960024031992356090598583180075010038672682267669772464757404802872330406646999296266442434564067324471809589469933866805351267112401177545031457468316535298224990079931721218198834188266569064504718844368947296165944150533985072879465211391071922237979709366201162788989040632948495657286078602096784141277421095193989266978335278666500354812512543023677497165498991004507913269437815957399211721104880289704386825951239021684210080685572931672777277928652440715699865437623393540746908651517267672820305748971501421624067447464048539254408019556953125685810829976744708599381750021737622830163035889199549112005218398020263387190897344694202075995463152479352390832942278627944384989496010330129990922198306949028879023688032247045596053885045314688929787578216500833677267620139818584603171926316663377324085490791658348012442093013926495257276394717754279557749267214977423648804053460315591806394262581337950446734848674596123843176128962791050301907255810450207849144273575839406102557984694455859167187812381432743722257829756426322876976216863108383894896900577358188466847935659000121239568111576854559117818905113707758099462463453574491423262739342959562409150463793775198413223741066148840035466972900523066636643284563812296882872593717336276801182681446212828352244695158758013408756618978106628087190285140478602291026247952791174893580317883735489846198875762581094109214742273908060885990042606545370960764208932037777031888552113471187259676661635896151563289591804078980824704206267454933996327422087426566849268684618076696593838930273608013602829857924538802046102283044544644341270712773375133924260277342437535580831545369622299062961827681832169527598642088293718637521232284414498372441373084076308607080487708007693935411675472131937634868436454911054241440962161454343718546826844365475455779961437513709724482196727039436802155944671404364650718862005988529631428375411621210884151268868902042015792323490214416852037030427213535293373958361077530908091312964896367989748964563195197373486536264399508423854904796939172826652881246153714255859226817983376848841618517582405315969895898781564711994773595960569637918313050780450616665391328089258733253105182463062395883354203219044435855685972747828969810766540709124475720024167784559605131916558476123055841060704369191891208521573607451719296278696300156487370793281984467062384788916799106986179549374427300216574870024513554245152241720684336954603120157389842517139737247519138747537855016968633273783563830061146778119668432684335994262622866163818560112112772939920619578049710740688495616534944649554779220500244895613305219033323333143317609937335235245402414721064432133219327481720266311415598013870422834427546143379668730420126921762170329831240179497733346169292060235689904060749007208701400188902991316852157730408283779126625273599003671580034990273147408567580414640276787847387937828600979730065964971907465437538081178664337143639386564977982468190768160778363798254379213209487614269459769078844642586103535143878268670299260611714579779980035874802382914522810003989862307489587074386089424978366530076277025933673202972559507073638321802391703808430033207108145190843987188360589647227850718051590695294611475344952360487496687934348330951784035556535975280324713259457192895240225929010184378381547768127452223681469927018515635225241707590018378853861813992310637350635884815001620676260026757139824115773624139234778218635252443073827938464290136561926807815050189261442494134832094269262942945805513290956646810079659047201569641809265185111796936336990264932488715591786773450349807891124977694329679727610525043211715311452480459865574299757728066086188163191098979230452610520035863475950674141149181533214021310691069500545777942964055249668488026192039350637514666684166629598685722311470834890277988482940845112229817356479776176734373485887974351849190417290535692447062879058724424797321343082918776432466336887870852727524630104324986608908444121328734641725763881042856439754226456522179121445823673848267232925691819472963269819839903512523529352193934169599155404217211948162909805254595802301094728392037927922435371102448369270855923565147692663262485226440801134037530751589508900571399705749952475941352138076945956731160959398837270224162199016117610444215145252573234828844881628862812082776037348879329721605233603771762351734195061624820172646863911645294949473684121481569273675394393672612634081203014763477495496816646809328714125289646442503438598620235990843372062746392640216848918830090692381118420838700300292783206283964582782964915403692495823189970618685740483465200498732854708786654599376647425977558334381497704371852890618537834134320354319290641017376787420775181672921172856316014865523360117601663686875886578868756042879646646149082362375962525470550181416207282056253595220079034636511511895043887777878525869161021485991352857178916550925707848616481964038216185141228221536100576732479719095972529164767166298868480070336271703456876706567511074989361041573386315876646798694797452269538937976380166061944862547123086769999762967068064208781901147785710621675350063058437519853265781353518764540250154470740005365548269502507149164866303218752065628188690566146674042141646144721306932121151461882367364434549352360072521895269276922660514547859282813785111257273700226077089851368856611342406529147541834484329537222568185151095951344167685072217484480313675218865583969605598274478954804656071688848125665899601479368897569457316490530880052442018969128764531891165625444198929059340167009452488765423380728806471043519450978049014568313267604793011784742850816290097684272956053145297399320082418690933308947893671716962781906780073010914239996833823295157140340703921963584344261388912383237640435565204290835950641100040336061924369161923671418794221326675824471354223287393960258410973268537262970917602767576796008178566623008407837901661556878643755981225784828309769509805755256104498220559934325363938764427126119189924851622039968509933904422072727271559289526867569434357444260409799854183486772256616478184986089070716248888836450114438316606217992512184794430033232861840769940613003243369056285825381977240320042996110688680183564671970185956699357909562111091464512112711325385136643562577660587338033138204811760311487962273794603636223145610191133071945259979655166284011942840888731980711958311535775653873043112517478667562663625606809251592264895775189469545494646300874071008285253013030975802320391794754389695955394449945106595714237854506754682306593153069297458038725631365246146874380518670357998335415301562811772923252899548562814459798590677689001773432232670610252598037466421823329175415153359229703157948170896131411286266882480638185597970789320077107402281892775117987861474454535388232746561134745706092636510003219392710621509557902232002565406274147622616355452776688738068480883820151907551415038382951632925791183113161090749642179100126838130834986368963530538714484520751249605890141405438321075154394977166545765330811190946126524029212626784992877468153515722845657915113202808177127292832903300255503767730115796427541332538613464507296255245552324045137456182602041584081703268649695609644977466453362446375203226652178833725826635005416669616896959536544947531066497361247457476059902387677493824631934454678310416740980989984396482535066744274843552446189092218659776386392521591477283353684748065507028506792684865433632641640567700552976558484204057354658993494744425434743896951207080737535172396992296122156021525245615581376982169054481286761323702925147070875120694819707985619717752656274871963689244483177285467355493775605795423694031927149061209435614107515471801926625484851129932517625135066163807023573450305143410205538867150505549211507415199494592517582833210927343706652150648554978338280628722729133618066019377879908304769419086015915586905629816017473210211886492784227967593287627499473150436184851284152668956611739835045067091806864571794920813594796985908447030766879255711903467309625554015083326129159373925158852240040423083165713631694056801302493670461147795565180033961777241718362965548060615259329592082524649254801247208780890405866181506659933875181537595870919780220211117893695434081295569625433563923916225424002430559576131202016147389985922105276038499803623809591445586378469555982528477784768580464757006346803312019956812091999824370556795082926951860576884027825185607642623082293508675605672344955682647538967591585514040720029293229903051433480402686279122378906724006076208764070683433356366151918102618983010097736192672973788763880809958124714916026774357841399645685104593512641887411621561880396922003495922216903008740097645380196672294156708508513871589326499723009695195350313369172784241705540692836815808939872172901368381052870590265686664064925939721640512648713838270650300358674044001266159341495323152656647279877974159499563888976664684972411467454479687783316200163627631723869003356652962073347820373470184791680008919110691337993069305010935945049702690726061177883848851992580260555891483522854558269801998591579771207807470110818016112033507640188729588891245781666212445812353490741536093365031249054076204581463937138139554600776870058877519826773676037218166538722562745660976916131964132276390993036339620272764533034515185214623234301138267222086599632795703124221435528071458649206308016057356501830780756381769077373017907789861695198013962979205193721168092766042245557910772258293949696667960581654428742909913942285601113744106418369116249884213980639045836930708277005026008684380640085201144817994313695613107260545470492597046357492954277603673122574416966925557141131267035999081625372975238627583814414476206654079640568237138829276486120531093942637455360504311962275462164048924365366201628435066320005795639415903360254410943181706888090010339513572234964805431893510190644751997837717497220446448969536948336083173223570050230986093540545475941117883580143237322576933204274700605363603540379649040634223534257099985092813496946076321351342751754506207609247143418273313538659157805602531237230013070922525201969878253553238827638818814290209801012516255603454968763455234704291240385726107639936100316532512509466014855701452301456169993359593496200342352075493058498262363104139145771282340782790637579659144717208478859818340612941841314572242393594615364708481516614202252782297610567661083841405415163679910030650788775736923105069490694995548446224449669432655917868571942876144460462953780058326228490248106920283834149024881852107917647823376210264113176383601806253220877920969974702746532465053164958384479445042349947214242211011292457475723482026564903906855480323209119128501726202888145667392379906021947322788914872100972347960444241713717961019260736674731576824356739475580528531639134330856073930179600117098970031065590110512276483790391346565756212994248296910835365407504616052846075327375241957305350811233745995332964491293360514043017808569649688441172117583983358409696899099066822031871647351216103079029225993606066182406905609210472700672635303207294007881633152197617984878246658088703895163008477215972697615664578617667689847789884487046627127056013391508447964928519332317259389810703019276669383188367834843961241865684173944591245273729759324848281229107961557233443271726057347434833004480179574782582335795454628570736045897025344791950003073897898222102317335727808794416609199000615180367366247082065890763394255388842133611598223665443078272573596991814901400667142808800515369040684867547450291757645278670378921438400351886182692455190913219822573099255562782435178930776023334077607119835680032671403488340760149383163800745403794304942934928822254624451209017423476235309442760115450061829943210052296806548122791557766577077659387173252735581399233436550495582104208477645157738536046203400809536599528528961321251671750403338082709639464289392382637357163324332615982643826118057351267390963064716257308310522014120093912862890567407938059028382139752047059676164208366226643970637821807248068132807084951926682170697985286808316415672567593876663428508437862737798889163345520996153042059751439711980849300660342131099485228447694001873384772119731537388874055046202215099902000652349856121447247024791339743948327190686223767534486717115357828926613788097724350808449609798027321384542265994474133984694606704820636128039417291061842112821387122834838696632417434842423031051871492243596995274987190752556472761738045919755348507841040418587793457698330546256691568645636862322891501069440820726796757480308894185887486134057368500662235759813874662733750655306247170369994946812177487628815994062772726810317454982657746826592713128779135315117308174730745804675519861635962471969600728240078873816631989976880494460980461009067873381832725796745805450407229985505529986255166444874887046002610357035508779544377410398884277686567090006274883092899448056793908615262173901762447765797588359306467124659583333954554852381662348239198588789662755606464425653330901560239887761834907689235336098966857132078946637261683345758508820236768348651919368054294356253187026597594358365020081673384834657560381431589245808065063504254447730196012534189823247221286464422008520945587912451422350825902836262290764613644181271824345566032468779116712684864988487594888775734966678723041909849698172210023766695535792869102681156624580522185754502819166550362540854268206301257000894721096875063947803259503744104525667360349424732273174017194894885210382959179162563783530338700047732186719557329051190591052514217518488556404808404339802195406658946893379146069805602014295810133931426495186291449687086134339087666844451513495767780736002738384679098978792666481438342440310045701474666880081386494019215898106812294199727056260008466316790157416803156300653515029538711304073541590532954935169910292607440738527694616697909700865986169965012253177895134847639639603490763574202233338583804505293807853973642356896933949047870568493866220917286041235008976152928062945906060660638505303942448412559744762569297389273534819608070785716151747629177600698320018217187768537530799758653531184388644298141334860139412605738024206801054882499068688170751061400084227214769708610917722409660444083948206083633614672467005807087363722670979953009826287063358385458012389251438721867701798676038667003762088465735822282343052445857285524685805872225624636033192870703503075402728537794361158313816790406815447350032833689871954107120983263097571222708448814918146897595753845371803646036343375583665933366537046630456010913722218968167632452562613283567498504039052784290461926453096704811341742957163067864983227028092592009887618857803675048285200717811771196832278065751431553701237131388795212065530334288185658163915171231434871542208088676933242294845008891333018720249462421216020255093836400035852200513678170891801236325181599685097211407352447221295478853255973004838834980171730353398810688838144350787194601353066586641371648714727160454385632040416489015599967057517590126837657881823454790467355551736048219359701308752704599785922105154496373139699776013038295616704427982996364510037068133546332189543247337813541006290949251361991922817657825212038169097988789036212236237873326838788008530961783147534187066241077378241324297511580301522011589245812285344026004679072849128397006458966794781660018766077487752756999709048658239085957142852794242553045434849754812788630729912657189026542398745721648015562910063045288140698377247720009967625667051584732305097736195898787644067537166400875784479487003311519661689227867987917879226363522014798095549296241297525240924446952271541693346266580641215541895129641202266172509298360912119712187527011429899933531869609508083775724527959327453862826317030988415503296702192183908314078907311853330196440815318388234755955378212349415961950245105758208593942048399861830996714215308067978508128744341564146458153874398417969736652239638092692210107740774541698218317437536250906787459559828649638732949804214120435546338637100340421914205582752391714962884208416825975952456649325734901878945324323549774019284395817648786391625033300189251100110013453258752633569067269160430526219384223052988124121558216777164394308893174093325613470631552887326858125682274095853665743531982105464863540726027315701097648387022077458949820280162268490799905024406710850555688833250173897122515021223614432628233375482464240375060100807275139934434731044701038619972358143095706306782476309566787246697254782324791173316271731548634815791468817085747150823856836945640487946791512059321751236438494792885498737621121768436355279463447077410480947940835783133795910280419245435503218050771801625859878730313314684362056352130039628922644186129737160990144363654751455933715835682716529746431109428583041207625986601806246534220329997298659221452417951760363876399537151646483542126543898440703003122479812767981261572174864718962149257288441051223737533599651414198101517150332711952531422561766734526566328831281283302102990509926502654124983971327526264520061718675306651319498019969297882927332584321411089050078277660376234705744971162691337284278651367305345707920503600483013475252142398385910772697238391919086485289202533784797468212279438152889667092069850542994188422225079582184960457895524565806050809940239355046150925911748915591002224853281950954974746632007290198552737013816772990956401247493912470624690982092325988075516711493560107691385506492001439950969055005668341514811171086591601672539216177208893611647024205084237710033593638703376846842794912248897002669849168190472296000264338766656631602024236926203400215902512806154692589768582449857813088105270883618234040747815392640909298927270638687095459322109915139874828240580417959393568550696747054486884729951258707720004763233967461109551966895779367134880093618526833135352517095875030142104317409199010688045813562386585521354067501382195865473083453192420794686980558469028825962592113678208757390932622733578074607027484413480781891071397769304372468862806544019845900488181896144534383989017096228109627296279105814307709597360644179857608531933396088168536369638913957907618669051352816148972174342421761018335304629171743135574548357255568068907168870301741155155799337251608546419576634273014953695624073871793716774300863080108885469130446306405504651030485765719498961767176420253342762696774192991126664657154578890196347897160154225590224571172724577238340624065669746848836424585736266096010190158737196922251101570571502086706064425664482159675549357830141377178548559342616277789007100804046922089107065278646460952012198032864734378671684415102765830536221608603517753544398152126374880143236789961733224147418157911783288094326838604338807783819585574987143256616288696217423361858387707013916488559541840819618118420769279148858579495186266556056791121647465637921186799567682042083858159566408425717111415230314881644336228744491593511988883243080917158099126782720468439104389241568836413791024836997471326442843329480503222389450603614393494045204673201386616491516628496165308150779359616546810572783511568843095012526229351987562077874813066844960013388982070489136065848904924288184283960639579378563515872915891202378952086561936075867926626146360683307804229955520306624386497048495659118137705608097226006973873487474833920807532065559483875129253882554835946566225248603381099518453827914536010081642221986282076963043082347573037882123970563833008136866431371488764151800551734951104452517946596648331469758510570295947234674760073144913070295568404847175956943622752262612095323444031556192952031269892525709444515812520011531998513557275987317696809241585922834253172175045118812843778542437866167209862157577727767569517334065568836102938000034212662829889345735186121774424742081352653702927005304096023167328801988994298524073073085005558508545378984250791995011968928918407605400839596038301769604632311437516692123037572834893459930959842930134656782195073304938108636835513408805733673529229790231085861803222275791248847658455282767176123266808699426325211537238608030982064236696118116801300597309733573418892924518296422914520522041464614249369397130485195926090699506859696642102771252370696866210249398792422711698390609863648395269572449775180054777270534815753481150508489231477571668591357133640373704322201736901493489715985607600086427912864189872244112817960465327551546605380808886866423204005783085039648793481167982357904315964151277988584277513378062816161600516486614891256216153601239822799972649617079086367161901318338377071900320515718821819198894154901477170723235413872633539119452586819038472364484652478487770637198500808745585677055029561970945480251288100540374206790672073656833708596896801906402519991589375117483443706083132392422319264619310920565945466325483648872276365185191227292835022504360153112287643001186835681408445407027308450378645506165914260072153446389115647799455565365912502535126437343257556377128782218553096494294885198361841748095482502905244187938291218041029021278217050095743999236324109230974765701978584816693261447536390665930900614167240002312657890194328033256334883482932068512719069486410334807858335308713472910351155941507514663457532585617481479683775164121690313838137535564911564854933986340168488250910402592090939113903241980287790095560414096504752140031821180626177341474651618801310677419092143272161242848915691524312101920685745899545714436784750874503780117657762988160747109687436672207137902728160535664871086619062660007593374635052287916778498810616019872928035189204459410290266211155445671052506015387264087370228512759650958151193429388686813613042487446203809269969979365722202373292193676916635576719276211570599952779990048167042549819290123667331024019499469985205995414416362822781618299528539938086664508496181869423718659973875971151617313707913422812204616533257561935564631234124742654091958551251487370611885231998296587426347383695620058827099352177076171352891549051572207975919667783527217268852045515960928110911357345914568842227040222391685382784732751343275564668181166067770083604560123288530338417546805221490961732362853053916183744097283121313292264797366229262379890367583698341866450758068171765844850704675486697156435211915264967870933530912269369889695653294044968061047473092904596660105849276182512612182699424973101487466360157248453529004609031648638528392128707747243691290852099329634063520388518959560054724380142417460775448172471494192867003989522018858828682020536247323409089717326336114606160791031114290532144636455591253163472421592475836182212787612489289069863872530731163792601026668920512608616706010816612138559645920652561749795651584586909064305634370586250560082321561435103271595778647722702094627631697403019957483513722981041687064101608891690830915899696852274550640054444930391441853299802109618449549350924860595639262721596145055436260475696545815265614061892529753921373978743987547775791653302117050177230350967066530850099576705978649359921136603126155039790478279016863306978263855653369474193040897963362947733286716814886419853625548877992679212987958584047168612557901475382204490209981663617680169249681185974871204103808964932418432961562436034152886716453171557545988639754352542109935603327563136314909739596364148005158368707034466560951366554138261383875266527519865403995335252648669716706149586851820580815100691628373566854059099485741619957481616344571542409644728342915259364828383980846446887169381827378242551438630352181441819893522512891493274764853817877113298468936568745275916142774973428152601410530844967765665431391661076993255606737381402571426934623971317828890992870829129368711346169810242410571520875476628018115566224928548431316692777448581748425880984626014430353797567462792476180610153603371382470430920681216018602365617555252779569321219747319466401314013548363938821430259012451114723167447214122143791997683597408634725881074624322295305475741092988696056345248337065002308699966474799202653383439742254106618779386112824546922109937126286295342699762862055587781280461354333795992751850087827428062907251700738980790540210729758577120269817522558230377796290081209726567018756522606160982339047827411979741068388072897585292021529942084702192187139665590864700486557300567556480942976829515392114723251708282920703198932749023436524828014414683263384269787881781109288729823159947320693088639505304933422387554917123560284192332940739669490359617093666555062701792536470669138581621848536505834142642675670998824822793720950431919462577468880986833134517336832885922597738924900532890335002330663201900660446560465092966595733683235964873774226719487562829909823380176375906490088806499842369620694593312147662333862155337891177937356331213186945146072840150513198740813377028528370155613197436810494806065341823086460880955056186713749696336850471942487872845201258463919875878553137531926762669880251928543950505535697534419229364308133432067748793050036692252813497011434193218382616010411187140141708375037853155409691796535135475596881585751125815945867884415542475124384352569719630812603105071010443695122448504853513432231236464057594316875330231351467060908983353529267390174204243724938559835763747919095293231285869813372328432500728966587183451521900209046594434623493962622117044908343896001249568959698138272944220763094006945331444188734008432273860681916535776547878835381008115434831432614717045318511290110879712634917464842881252327153594688139654316569437822337164050307711989512359511313071458880878180382237133013143867343993192359512007961694322520266532597551718041769208675434023060808088215335454208717161874901173319537448914409044374591172910549260143026745990115878537727984005000306991489721915713428267612592337336243834446382453260442373728734433862986394262626214009397228600875854877628782768602510762505167139657712084353560158653691340766340992767216920309471310755504240555832867864828925518836302250220712153310879443936084761547616774767474954964374370282546796265613962774940564134176632892964703967917050239130549075080257797750964402571243989646343274897817528353604197632613453243852850464888508740080676356608133047736139579715448806929726074879100123870954787536383261987858210455815475773307062429165899031101525778249191318634870386261125405207860660189981273340132846519564836723149932967407725722642471952157232848250284833714336118343650815646325171577818291431119629809347954957466390908584974945831985982607526237948980625435476256388588225708813387920156389615431115444500522213573593434447798453743078904372583667134600154825023759063481423320966573717538992789757939834098399123279670994581789406770272509206762820688661786961662983700435848967615486440377947780272441371674704744026346908441743363656191180153931415157351576163433688794341303389304653879479516251416728028426401750269589699888092311851179887272885239985777607988345408466952083477425612962887393710786735689707142655671429523929187270607554473597539553826483368055634408604031165584380864275254022699994548415808268541401824792289256748857424954418767249634041000489541550282012069573329878449638458394118637349655295911047057618417085434230038544583318482464533300374196035018533201771360922397317528183609680809854869876185558030998599434578174217571378073250441718762056159641380179095218162124116713775009393163556753298170147063681401685274577856768702467250444493098947912039166404907692575342823007058073721517452351853225843600494015133732720146418133611048142164562761512579339098101477472730160286834185774311568521141254881088827315399401772022081218595264984620445797370547439473755838640045546672407163155875889223700830180745516600375991262145313009404014430857323275730667465718629725798253823550380702756431842280869904471709239149480227289894791045196347391436283443700705283686539058125737182675719428953710454323143835271624753627835524071537169670801634227066278504594622643094444681038824348435669545677674475745907814566195157669787488666880408427489340014831958561660281966879557299678636244165981654274083302035715266271561967549916362399610429008862059605884683104078903540841824283814503732922254681957604773629588373994519387996090120110131524840574955595541530517648373677736652197214822651643026520512554418903409068324142604930060360263784589458863697357612667348810274054404907406239915399542758196159152506391369459730963115492482514789279654507357149777845043150370020169401650322365694595583200298526526613044627625345302197831354389498798384559229238893139342165747804467035199392212397300810903377657185070228798104513057971770306749945425180678829962588760182287413353851891867161260092287942600139604934796690305000036169183241263741622208489482563124808112769648097653648077601973198944586469428733068851483669432268846742852365312404732075438729677417989438579947546270792523449377740769431669412626686106925990145330559715162457266710202754521748925152624805452626908586251598726356812542034641914353261965856996239978834419860369975499410399057611312184537987832214891600813105735671277080857454980873854044822122878447346453906200191178211065899762572474810134853387940967457574013417079089904996867513107575758653611633988238999913063863630088918990912752032972511390239336957461026576593178452779565592409842971540024065720543294449546976253539169705209910088126522352688504059723809134470547423898772326171669535869273769221540873441582700174952494261093211405407994698138215270264609271327380002136751476590953852247200374656048209499347556763464767062283679410514574641016744961194644154992766843839227848810909135155698369014611719245519849297196832358480159575211176320344042620838662548861504753149593844895045563453226624464650525916806023132922162542071054173317015774833735979345015560272225846510999557102572239411129605908260097228915210389679598334706351681994047523262211655213296374066489451745796947308445201219041361001359018434304919243202463925531255047471225144245833681788325618930981941036876555894671422515564171609078901030385510600246503055100341251617703171829148299092646472776324141782336308782121622845289008283855361134525343616970703260463420354563573231206043897842460315158567541262037787357098424573034579449522570196484600995706806099963011297737116236571739954034248462852359241312239577845436214778012309288553264273920064831130868647372130572093473531972273356375947375770908389580140592068469286720274406730598934710850739894420927609101893588652923512508433925859733117609741565769973573150435182647093325422358441144355099438035116779478929870516249015436781005947071034215335374929928346674361307673602444422132351111542506223786701168934021466701937096968138125895695019599668699058965638935521466397879744312148987708359875460216645236575771854395853899394599980773303297877210240393885300961280751775079337696110518861504881559698580072762924870757368867540686878799302435613507409959700553182496105875676292935874891567007688103515295634919455077735493694602176806303391195279166379569174596229963521530446285154873683136057084987610109862463647508542718358151041039379304766857847640993432695599736619396386379017324618241464397349546966906318433026642280721154085956442682580813780351060240047442802155051958329296695023478399015288308759334462861854521145329069063629127502411898724503111886569323546366874880896875409841464269571423496978059426193732859453679399302781380683485085357791851980006231645199382182896869039768817159975021955224666267590886396402420017885069640781082884787732984183040371321250218421304012882385610424088350061353880300129458458272019361343252297605925534445889104363572865889476775642502372486990995525141842787807824537488268356509821780869790777984537855708699127543213396032397883894342594243759048301805377761604044086567287926631603122537421377571256101154566859928125368655502179072828672723394932061668399709119507677242239810349561279181108578262396450688664723475483459193692383353773709136424903562604516848556307288851823823668889692969207169881125017049401088512674822785711921342062415285831860999136149968286114046441153330125476171773783302246191802881939579942343655609479437495388856047012811106346823026138258082685595357693750340572588474277683868772283384798148604035896998210551561847263637339453073919540149647404066727058771437599217510606527562556375060367335747218571667499455649043407390712598238319896029335391005197906474374424947684028802119419862683039296509756180875576599587238952833427637151958513437244973193213523089811554834066390879411694004458854180229166678434408543276590383856261832010835520344042879467198092529199880260682706162930265332967071437733134309276848289325645513568053788097647017230434672348625833711716166068574911220519326134897141627360580987150466177025212680759441549721453145116239736277740513160158716004563318000411688572787335648956123397643090961683561091133614658705322424865072376140100383685655968407195884105995988807968630454236340695040997560765079378122829552660019615863994609481751156949842752113375898529780553046115505973396509870508101817155859145259561807702125176958744810103674098691200461168746237858965883962474082197059210556830748287822290887880955016703711787794049745734452950475116911354873646500304672754245875823812459663442763921562147590451545333368420260807207157021971091917396466311392399053054850644646511554866145839736509935335828749141990856346465944144795244759853722379113384617425184168703170747374202948651838452116337685910273443134663429430783819957517467834210061112303080638749452491596698765793493326851482634611535539295042645861735565711239224639109096041478563140878289133082416598573585743028381994483130984442753134845846299860122985300791195190165831122624850458725396284872142530529224862901379533596994709284803998980966949945665091321076887077545668824347624027688520702070616186205810360940046503872864067943689328336399632271259619837531876317856493295588559642572246686097013863406111460874582358469705800122611440248509897751085496122826022601300429573678049147438924280128943368023640539260443092007707892605479145046453543189817870944962088217950205597995084529677258445428283730299418592900774802887788712989754728026593413668804374044080603608731498310717140423438868278452893639982131759475841362596951937346118384439787773342191378846425864499983411640963927792722962487804855994521318316771119242328433737611011717850009953254656181970507156516868499153692164993837513451543873501590394977869482955237125037765813049775537968597366349797203370408446778567749587210538571606708310980542773066072401127540170197304941833599376277185837447292215027726839574581273323542753054680824018236289127631156858605934482251679293369394877330537126041242842150540236483070027216825175908207072124491417494956696426643757016436054261868948233821429926917349310938740058523269435793902450993003303343021116255439847435616088893840184969065449713445669860737984349884207565078640936420307457164707795553426101216946298651875389250783663758641407584536911768532970543996942941322687020865828659237499617625950157111774816867774510496497504458249782732500309502562876022844610506032573092664550533061407062650697493808002867944253270974516737789974767929051757695798838668058826273704807051185647488009670187799431075543546604851941188158538098682742614135025949804209522362814219299277605217728060234479327118194353968260147943265474861640503788397219372164058961452934297789099546423080355612401582749084396158559959647942634219355524247723781919722163149641279049376375356877759081073509967117890414252530205509105957421639069234584249671165657767398959629927946595237435448928538993670781224437004255647270537071656736491895520086430382866066314123707568306656967838271115028837226304161380421973402873076266779171276526953872276704320538134528006316742462463507754812579235174092259102012195859764803160174475930891229698095300528425282682178245054674000846710238579832490138627417106588871309348283000322664708524854587421008260332540194038491484095017250974929410412016968650383383143200970803698323285413064613706936929261949714354418073324532748334517398323084455452717506133898779862379147665808177955464426226936901710172248654012701619499814534939962618402948049884697375151123600026898185958125224969726987889838622708026539063475742946614205358032043021467085075053636616091714235651677028303890493748727952956733716329344075694666702167771776017281495534235974217724524098500501526510658890804806976698355350754497569663736119940171593812700180338536113768740404185119630583445148315161290618904805837630365772587026359392767181561006832786947287830011875989335062580047014338364792743651233175618095175883184648336571739351582707046229942449027609711200899223542815834801397651403012709313907393683913575127093437409260326146163511940628627658981542020719333677739388821175771042436652666586342824295599169459967061320821725045252574093092643701342739011621161035625070623144730199406348788145739791200021731520347498493353355586673609222608892578771379664413076084304217630173517185378801648804561510202994696352174483023714017185619714822489786104260773523513212638073705996878671166230617635859249326217713072705838459237777181330197090020796772286297531919449408245780561943451858194993619782959273845317131527452614028421040135804235302304647840626438779011444816056488911830984232830230748488850870067625723142737353891576577498659637523509557542124724050852525725688413562863723097088669401277410215784624249539422617229541061354623659691570253434298967283724356021918359108183616247781062770137662912275940848261873878100085662039640311434348894651000786483695097109698748810764028978325071911838479110392046772167520368163413508590407141456164591933060391591268319472071651749284620019746814311035154730807012095911715851575659948624505272996571625618384895237966775913778749113992149054212011965765097159233160424872772069964942874610623320843382685080509132010786333082295813032238430951370241718923562741516306433366867122087637732559888710862016917962106884655602788869429846792073739603636933973536424833398193785410832518654230487835270109550174872299064959160143675324894019430686655252887540134946857281959449189820600893050495174312794328229357514908634067213742294472005979335373729081789639464135873837009832054706791304019276502312233523471576789016518364450302075834373058787304989286286657127144451688358256437243980812482023380781495435408568577423471386503230397962301708400447931407377247660113974693951756824375890306676048279754071828868492211011969038897223437773161423605643855021195612061568886653097902801447493282358489214961250020746330617678014656082256576941970533290909604247677162834487192458954668186607036739123072266867660747421351759262688601902315052610627235479425807818519228585049436800315038232231095050974255037285190487904533815311041618781685995382838368001702683048152466614831945423385081559637154364533026471175873794131656685379956520934970347827599815624016161745908029414705584715410216866592687222585244521026746535748650314918186624424055477124377845621140007036111944707991610493001326921915285110534881588565455070774329651879605677312609724286358473420414953618553375299248546432479943500524240534302792599572781432145884922899629992605310754018191604435422566935919039382649446296255530213269452760456631791304309877174225990484744191775282972229655789230955704497588209208682690609684111784632717642568116480322891614131794889508847696893892842284473688786391767812517834762169037967220880231051651197098085908615477221003394564497344522457455456149593734962902364422860244885496520350674887507295195478424382703943111835007868007967148657484737972354092135959520169962298122824886771753475241049332872869800820044059159987757822556054819527100393753068973245262091956052623895989991044903588082751177864256815557202387450806437496243897825783264663132539322389040525549922748302823389807867125999957519205273017240256309960185029491924189265325101529103745340550676130015700820466874618081133394136410014900172363840332425585767482996276619428557053608406736702853117190896810274722464415393059121204680111158529491857616343299271256468121513085708894003130973830680033105331766523590976311152614496753511128752966633891265482071730873967056616180832597852572562140503435908036755284905124908027565935214858639752385945270415878361163796379964848886275243519039558997689321421344786336957038850871919321039847120630803917824664482632041277606075005583102372990490277792674725806254239747856604071105199833479055542909652357813570675165560066720559488683194137957347223372836752402694151593917926481715261418907466474200810107036107137765325491676357186226746926706830920748816860732030736424959077271188236666999169654898458918565872063913289561331919556680072911239937053296268847426508130814546014984676706302460456117116330710773293750524150068227779240687406395398568523550319189392430342601270215772374093541659626341218579749736712218630408402939534735985363229921295479325069307828253823798977695253500497649130039749110990448826429422553389716325320749109247177796069734051029625398602817857661478447217367696995941387168768723447867499006263840901144805775936011622788026273581334812100884104935966145539300712936277143317777255375938526424627006075499195499170568066580076897038980186559314731838496848518408606004474662365869765828856357308619165135295810416090558278724147756015548266822337503508950982497781626600835604954674554676874030935146871569882900845225254070497266154548368684242098254780259387572365195853207901304672851509282296783821969295614201373674851290266829022400493722126623751509144887939383276629912521687719667291813431345057503947749676878581934095953188030439866832020578316816821546095343497585030759408867451881225087191189288302639773327119826412818804934996964879422435993440217216538170018106078770427780843541237634867005343251472731822659705633337819506527258256159730363005067075672384049091404754668447279959638269433647360471588622882794502958335825180436521785310126629673150417956170064236943493332078780673495596462080365866537284263902452296640691989745255474470260748157311909495466092976685327028026599631701685639756763259984224383517028946509650245734725680241165563551050828014825554539145763442446592329435874511317295799594550927010502080678568461644724903055958688882949022918862181071344185996937769292362962830270910160913096265771928762994427759144407311239349971255573104551392502198379613113852389294005398420978342771264091200043546719006743955882293284178401758300421220206222982562013603241676935620776295165016636708566842168372384089392034249597023002541594235632660411452896390578870890904147056866729547237228901577532069485060634125001923621686804644438143162805869680148490959696103819866887859275724725043090651018321792098290508605819696135312136664473880556510659785737348928941250039862551974740509520078846412390456781590375822221602664915805736132456147873105548194160657500578490892088360479747648139472136228529296495870566657081657895737212400109956514318382979062380018490957368643517339272753849096680798956635129070009717906109307336377229823925152651229697965272847716502999734528494199173471496583063909529069934261761121839220428616417319477005196589237193455068091971958148336118451584907133947956111435503571535828330235922273321901377077220080863559637162278339415269527397966527029513763636162193814226778911185276558744001641900623398155722467255894658967519151903412713945316575492693919336598908765852336786043259717275494478054160792762819046600040248032269044808405360767541428958972109971375593740397995141525498124052085428665229073734653276395734070099098006108454255423198972039546828925015514272739842493036695695212493741896977732772946502351176364971651123416771294757021143185007237061730349892352047956973612329711804720589652557856309639378873374256951255842390665444979505728075383404096124092352844679124137263314991062065613223659704388804380688839720045533887309026387265343181375853362322782752085768646863856088249353307835696151238475671437454154733430004756232763232952897881523270620778187934391236470572144642183762629981212222849523002451230544178705249991684964300997517470570434845814815648202161450228271099831112160013739538544033361000451193977967299610544619409068098229478426458831642738498108759084431932882161959257758041987279943642378180238915541781479992091691537003044222088033193420099243169157347885310735671208285347007749953661269692832179817351067715918149320579727225508477839538249620349941939854804173991509561250365504284825506920133196333590470119329151196225586121898678112186016984198970845740949078126498867010148111251961718262794456140355077824913170571796310041792576402237446555929698243928092068976150476604828475652887693779579382819628502382057309862495254428051133979699931944648856417711556985884107976544797703467128316980850988135213868703913844658001545627465191193820647786736246771900976798577561115164135836496409896179003988835244302955643886894715854370641961685480847283750939719471279577312765694258538150347564069335922455043552775308886675108536614399640245708631000308244472951470672576384819184761617090587353940283799622939084327701429418532827922835234583183241859802186835975192969412550284024961674313617218227145509114415903053939981844856510004469571426440209372817095734077972371868642919584134004638012891416395431717407450878891500808118392182630447574357836862967268092093373592882038802793931380183041628744062819791949951550945458148330518558089050603683726374944872404166271505837552778598486535454936932007356452640827238042752079291586987235466160964649426921244531090976013235004947939473343293450938965649443972650147428226683292880818471721618324584012460933740203604354405763815394339828245348068761950505724586177576818900482441956494676822303288714956406390122808423374895993132299264363568837963165774187698280234806797923104427294320425292029030213823063459983435398610882489738351488554296560794762619973589037268155189602426037573744554668354403459703783932276998684394054142485274754842166603892020249688065581411314863045247684342457810233963120029346755759107875410842145387223020083837909605435127551279440084265941080580854883489631726526742175326586171061513998034332955378117140250150770149662412869345862830119038171163266111675261862943305084254660834459783121107044383062427851597443454885730470851014133595437584096867700098598740466789332567022093206964395196138133647263245064823310456295335444832425961399680906516584311678004780778095051996493491569210538518384044348719549283632640707336466057415901864641571294976214096600007025231535448124713221788424168267509557913979110552566290672470287146826352910282863680044763555326533454288809898364534287027298455906746474709893936011202516266190813706928524352710397143459298564028959803936799382509761036604328806872064938312949701879903837839670804002710985419867853618428798255898661282159288496164433247700633384675412385893062346994544195320344901403695300273521007958423485566416577528802511675195272614091672182644152544206619415461276730054426957490132976912294510531016636756245129337307843706731407785380729188674866818685517299937884924139897350970304671043253402429502816845248232282126238850159933519026335000073222926438610159203545507151446160878447630437645462706453607434036478165968422193074191375929500377792997890711081153209159700520129965527868946117594634167126040402474937109997750419899114481306407674696420189303722754841132122040272573625454116996485129176123172816835161151528082833958759399918651003362177036318870209436632109977273124583849787700505041766381496982660486468661067943747799080974178345060473044063313731443986119018036711839472214213835922682138033923443157693600213075613554795016869010017024387741761247210923289695548424853929509909230354544809063873493549726661515156265213460337318863013700961136664874609193417537322697606995120088856818907878742298065492179103483770521199033261958446253107865800854989193259120963952385242177320177735154028853646523051588627723574413318673665101857719767962874175231313737284914150268355428473307416980338904253514052199682194131559403397313475322673238745212447825662184856818299250719061442195330585031077648753668207889380372187827759270925566018249474349420845361434834463912242272238136897235192681103470597183113884547048833989102634340523121468504197515604848755888670983206474558424999758895207785232129529219250850302040826778959000048959614302776702232504594205966477965039755354556669998938942921137897034635374207810341930447878377345764570407243150809303150284239982567535497916765344491919541481657981159869257471961420348874501899254832121524148120085142303852693055083511782717253316832601016194686837554726454558050791315841347935402414496111382003895561011945972087670723655359866534523200039929662194334788326034233685523447999401385455284625510458735661940760857656087358350246801580133397126780636249478616299055064309602774799595997811113464651991265664237945446730554519549969961888998900252667571581605264142107988396092447799087371865275499463529833415081414247129250637979470846849903040965103437640829716760416063768874861087764967662900904570546776259854925053252862515114887649538740468808492292619836917441533139637677661020226483844497961218098277048551974793347457468000996025113005296494768975096883770784173984253904684009002735230538618696599711658626922035172752750304138641660241791634450404406456588731672351075311160042326702116400413967480470794136657191126702045393739428891630400921960862059049120778358380072997239939929708425373965635599138263726738538862096846139740185323711994203286716527601355723404821389970844886864436788047643729152287711293363763216311408545341533579025396804137207010261255122211643178579067518872161513193161096319102675721316439257221396752472438820510599447808073000169031447958321401042220182415878130882431865240451480057000080663651344233607431097740990083335460772858419624254040607405879793683017642425801365580503766983650558348322268022919918753036911366745006940814721205017233287752226356860379638089672408923597372447652134522905503184774962323696447433199257187570646435836800249774704342248785942212910373720456232008101243243597010839261793886226148859131995326112204731688185949082227629346266970283118186695938005467657425577142086650344095283503672358085802330587056874811131561108330932503411722762531846035174613422014495254274156509804742903035813090650356773188353397653187235900382284089043309587991906321430575849012298195516485159266535373377812011542742231876313400200137445009051901940731235931268938472986568898890391646962732467426752205252721661172190296857271332791431175825409688173254987021818408691720177152365243698209074368411557753946106845581110833822936017986408753554176139265233306441067968748101781698279915521915485238962789792684243001543423867424015680281070928398845976486651667101149073217874809304306036246048831352950554562720330378671202356416731874348207194453286713091691374211085483551840824496627280771460071357787556879563253552326043081246974629582888909694766948322894777304319468478643198515744403519492279296782759746573602977697843559999497877441766849796184363305666084733842391996369064575721605959763626125306057810989703069062362351973469257595112165881233051460474060250889212429122321663240533647552876428243003248135936664974522625557504282721913542546076941157894312818895164584684027430404427079931768605290634304036203514358068378803939204530767365729296815922281541751123917157025364374791128010687305504661590192182626652840699517593987900795201957708386394341909741332559319368815930268099719860442807771272849170092775471277396616650991475025886077557337835917139695230326706443055838800619966872329260923226030811527343493931427821711137958304831790956900143513403851331141005403844255002129328157076905463625764070910296079600975171889476100158393279448520957095363165737202118785990599601115315341974358871543293444664140055111970770867063964497461205949330149057300974231877341992386550534579485267870311990302437959640307283598103676349728094247456654047730421118776583667083990712818869538356045120748296854021233918893887336415697920964010618891116759184865523623339658136745327206243351066792836941409388379055272152672431526841044727252725858749538769844460168310242413957756882451861031216459412244618205663018301311414628933831831224598124811016319424846783747114348402783716301026740187115848598079243617094556861206604740189060592113469273223437816908367093849668290599920646491182120355012764772038124571863670849785453552418845026084369980564857249112150293143561969876609382664893492877794013795425317428940077878899372459641835618402629245613285104617691070021028988058177376711282977631545502490355176443863111044415032561721370323357540244560046227868883356803165968744129781531641308426341723675722294879823705498114715813332525877661045050842738980748027831959474167333817611944713783191547454085297662151394564969182268263760345899690837401433283729917118566637915598861980351359285164112986848639360297218371726329978668123425228718222941817541500622538156662191302049857818544156520472517506836557183821442378261213154216245935946485816728556953420650911214181241418160370320517931835671231745350776549021544717282596006009877004451900893040984781612464397335096568225892842348038287001165589324037845678828399572337931384698786257477604776852535124659204650716494961819419777613671590445347993734564959483646134042312228915594079390717461020947255559877955419492970609283676234505253779423893950121228685213356553270350382425249115162142651428382345790454158292645941657429882677574444082224687776074935578050416868431728521970225488701104278756870555023431598618371240185545715440968326842264085862415358386394785039753121174398173197876541650046738238083496313218598251124060930828859997686941875762977292129903470366836617909619651464979243359973262610849726333328925812519909755783173359953613459523579344766949074924882200161986363426508274647617739668076232329513085196889677217723788667646188275221958276665634099427176295830451214964777082694477894647711413874004018102882148248508854612156543461332393550767139590070647762317937555029903556749479763060527375279133790624099419851965664219760768098035960980809368741328722921299785717714341595629736980683926563122836332763450720042714128551882777323734118122109727626835673478318881223470522075426831671055841392275794029681342808649540078848860802097754703239982054677318365221029024738408397620572857621276955515349632958015919206082284544266546756289390015162892432121855318377611856578728056151516501734420143034130070824459986718800691833557884637689989674096931421796011293610456004132673348037143169879982106374236821994741011935353069801730585545728475601948217815619044212072521453817175693977750161311993828855835912666814420751633325792437546334392227588696025619037852933421028169651623507193821129628859715567608501107752260090557810570723007799136984711851285441895603845761317096278227006889864034626369336354045165166556937924409802754298174360071243906630039214284922184299030648495054111934838554667706878128689611163442705824275100855578541102658482849320964521129143565388081223073702131663057254630714579741535297448485826633578851952651606220240130436702489673867928075482382800784253771698564839937776858337071722186157537054542941105993351230673455717780796961943403032724822278382556029069976084162028626196853580756131015992052496012203220754099660955087476757744482593165311533999646808404052875642249276384814238240158346858208860121941707575550869239908504854348319614418021719786916811371946398720411536980083449947724797765497251254403411539725455448992313913170807476929753100167418017141122711668535264123871918276432382258746187405203992777241129801841909114891013312042029000881919516419127450654198265380729780026555640908591601812905391204518645848600486338216021395313923467041136946797824617144977085129655781452471201675990746925534569888646306080042106095053249618412840004571486119014959426618793269830868277774614118424723027474003725360680665048359082813444776197405842771087652665940585627525126535400696629510328212744880493886950968979643027103021399180060394195686463589814543815973256639956825045207117239653067147835560276189909366557657035337097553865360572553558690343875477976575764822416034949768569754931448603212163391262335502294253844297621896764226345758455769708262822357504491490253903079411038076883082969145969171063752505034305446568726027141937810150589277280999942543139957718125044730825380578807930313171865618398645052619605663897634705329180848486724695402782315429686187155845529091876990520099996425083781895445851693356831791813271869456003666560557777650322665516092045891122807936955618908754178041451068569092774721653359561381006317046539611229825030638304835941083206451215023971120451483868857737563876390052910454348017415762722667279500981872011243259411758375275343954098652503525180952602363081143955684125041909068040836355453605844714058980894153848709125118122533495767318529431249822699769289676835644642434601639201950805961989699159266017101190408749301054626814742371534912289385383235055998701006817333591689315714299933069382121393944308801924543073638309248846197047351234532044961888892632508302530804467186968577620713294533953103138358539607539156777342434702097672865610396516006794082694655976251766647914586140827252924265797094610269974235242176245873200623854337938402150316445967323236912002646048318676122690838807228667953556197475580421911118280715977495090904619697316931669504371405144943273931162468488965698077402130547882128352472973983111825788733449793172738812095452546991191202403820527357390018086352079198527535519423774952459059550702822034562805776884751778530390797826818427609734396070165426005214191957283653660932439777991954642848001174793271776634180203880144382685155125404140473107254817685804440825999992994203359263087773851120255169570626341083395397910532571006928963712141724777802212002869319332300402776391650341832573652311170617224518130810353680978392956369997573724816841654202424397458233173268483680930221153842977426835832109544838025671787873273263548690676523122962299609038095467154253304080688251617856174842948853865320353085693500321311995584813282358255276017670606735485428575319147983928232072833319706663223717858208044032383007542193246657033452719507761905283128816890117009994173525224782233850868399918845584102090187638978678451160284220250444681948903344188449712199507313371957280572990339798029913509975444245492804973318897893429223686081059589267681312013026111968368614894900490087819063222848141139469139048076324405966203257713166600156096770521099668308667572848017949220244518813758519232185306191377291629878277088020977691316070636674546078252008491738548499320200630954540544269506394386450728511349284839164601060669444995678876179025737724238527500241349259622340077573941367225329466995459863122762988981611354306611222684540965593871099717314168805985937929877283743830217241464105678214454454508069550144038734635218260434451427862611556639584465776415723168258450217641327237528743725578936034827486732995565998384905810837230069290873269279919497004468693911800451157485368471884301065877144473916706097469133969231973602576224170582037064162749785778017732672267500363086055445948976159541402239808879985468320347878748032537972207036283247640210948545297914536948929361220336826092126353529432378899502314273758277244821807083190954541937697484594009478985166022431765500961391644532705740303279980110528254099909096682479844990036221672753585721589894042576787902236383930726389895024987621288793031794871389161770063028240660816155948880729580618951625182660229567827151556272479897492080118365991083704311394150746485151120481808865011073283671731188991450573800569267667935214018926581163251687319305711814156694970613827848343508481393494386068082644317209056003843330439559475740637781524433806157516491142401841079340761489192619888427157594476923512656463809288941699268837241739351444733660391495618396219393685283463413092341886627274718650334354147613913377504191706778573713882777278531481956955997653156860928749586415878287565102986696208383106184776868386738752787490736868868664751390354154276997298267039115066032121676066639681844635310265055489105244727528554249604701348456214862524011456908390124596475176564423459339961757451241101348128195176229001202946751050922422243664803380462418192033420960592459979506032598790298159206883005998305397314924027864768766970047055124638656525448856620212110464004512379667153569515680448552224549509962323243821114666050463526022779551313041466192533920145786912887653695427690091487793683597720593630282855493895378535021010069033378699690461546195009041381011465046800509101539652000126931636839853212604201937378083532611966621774509625029421158306758934087233022998124788980178874541245003918397014764290586488637839295704755186436446380144112178168606519508885491134012855192600943848450852225563435399822771131675398608299724148888484505637630621081778468089872506425732772927671058109077692430066264008716443027146737277970209722704683732101167409914067735241926299809679932067183866320928967391422512963227722567320948004402154185487712902159824063357161486225298967184572377907694421264687559385736152194573022212752939886960717328174635040058580990814707435380477059707137011551931713345910247673406078331073358696448060716046183548601657762708348518310446121909617541962850769881703087212426756905279921009032842376869928104530790868938147513077873167676017974631910798728173146440940513267391227716686120830819286340886855861211083360115736925954374939978553105136306392277821857949560093957495888459026992841179326797092220051016683105724221424647402616424261573694575293684093293277553820653186183751783040825258365686913345493767259382860920957795732853284848305269097209704898778032559992620159361759870599353829985793383882512172551119274784131115935105457076965435551682674624624625839237034122452226699197003567771812354554081004302505764723679497887104079345050608264215014003198852892166228962912163617066103462308726175560054841625632880054196057228137310058446130989077349261140066326186960041353977628682974905675093558609950603514262800616725068765634975578300093913328662868404018196335079159265535155939742193832451562970307754148420212678100000753093085198346702068687457127450700049556982246130577035562903614291921376236427634736996059336068038069151520774312604784284136018654482037701633786064270145158607287302869377771471472262984023794336066631860695985353192878360720395022632746499887103169013824925340421906164344075143168789826027688393826527582373424537692210735841305392264144308582055703197504036792245601305278473014853223538129609859784208163910786737897101805514380927549980131379225765757828452756155553737322460592587495026834133517853399873991077932675857623151468350106120385929030515422130733500455003229793803541426902697036415316376380022593450543460199633977643663244474125858278623525962402806633398050496268299509022867369693515128194193776069179496534073106958248938262748557045856621870567076198557995821123546010521009692084614802340969325514852204497323213149674351147419868129146866787881942781843927265203809476525573371312000593143844768477850557197113757304560782198490580824872585945151269351804031156712670327101472685304540392114712290937906158384693825238576775451012210103963749389589260538971000036559817619909175824055434491961312588645717131938458249993151596651362412429940448873976352198312638113854409231480159587089522763678525140841883965268967766244238235649518232591498763879497214354055885892984942761176159316720968022507863855638267234592608141106262841670490227549117024692639204424947424766322175139713433159770643199580848475515911426275914506927212213300169164223628476693869977857477745250215296491832806235481566354779712735466613944050264005102720996114349118312423536832867559600441170597588363468525843298000614834451388943380285952542552126749637706080524808264959830927211438316721303783044217979875452054061688591575120774607542614137055714949225356609474338269155893029694623499578638597851171688645035579531598327956826383588906732744052436021344834045277091829493265083329992630028684653027962757422169946395472499907711542790101861659827598308805971704008292255246633386734967082857838971699360696206713932864058323256348879592735514539616641629294558092022847419046823102757897833943993924522936392383139604335454183678943869714291221747554664152563415413747136692771530194842958254463352870442051929017662861851869774300867975175057980096166983518189879355257208386746180661947566971014607078545284072339602404378696505255192438678090508402412592783113452865736960421316122989381526386995614477583934721304483703013958554418775261881039088341869120607640165508513561910836889110678930949672675741626035773536056444308897085429679432538487365334223444834958642187034948227156591721182852130944942446162631312084568831434701083486520241287588404169957708778025065875767096718990128148431511593174846913550027030286532103910882504149685615255973956868431415770116678138025886295486475311521173968010257953143392565787999976020898254448342740267856282268792502510784483883529608075850364963055322125777516565221889944931575355635605014917566017138854571080297129105313233297373664786517904614280092308964094313585681090706988039820226390471520941163241881643391404255161487463018146982224067155605663728894266032126764378892884344061148070573725764097007781862409483138788234673988664239938840091111759812977004076189886503234118698220922605921146020862610624251050408703635496835809662874459617282586141683162298089960502340251281474036180933946981089544249170336126979957234381977244569788820442646297952887003458221628349489243421701576677796581893631759721577371695102956269714194178235013640777119682899907873063582548563091270393975488902699282658987033351037052534994785244224667048944114291829684592634992740027948692376327994764303505052948096869461591606488119700458511477257212212229895295308057228430427790137422190298194954551533782657620520520280714162758812869232467805788483091992925345081485308163114421138163198801699178885884541032690461890283186012243644901953281444951831934675473061319832208154404159293452129695446839469102659729990978260956333837700180720442121768264383972096276974860284983177955300982065342152087040016597878105095082551676837228122863746471702355030926437809373397411700949289436440499192824550019320588595594476650535962211701409298336918183024138288868589555534456017392191334696117451981256045779863734684491053070820591098840270295940807170152354631389156382267613235061090893727219492859177694710525587970299720826245245486172452002457509356011892669475923703117777334147723123518100696638956691793056286144994488967879229886974468702091580880228925508882301986389113305557578111101895916517432261379288175616790723939360873748219858213508848304266597344710866339307036140226029914272705797025703209270657684581280745860040457912964497089649596523307792163091096906949450445401553782477275568958970123475798932782054063587253112519074958863427137550187957263515851195725238257974868371494506187600166031979230919602058024131104936093138214863216845138522096664574847839151307407346142273622053846455929181497568504801280905377626104728650305637292298931658434082827714616820174285752285747689752712255672820698762825356772482162792477243239473820680190554143204451687979364272371311492877036699149685891664503314299998318533805411845189665510518113486147156172833931706991035728083903266739939347492987493374495420787365806552533177914617364594786883117386534651669383115697117240955001365324304683146863020054871920239580248136411669442861804952940639721274153818220529513322375994870039725287509340501082678448478869215721787694424979532661962337696086645395009054740506440398535664210199440274546927996777824599096291602912409222212334503371020056224725287561018086243447292524521800458998706544028680350586787854036972981113865251778744021417499020122715797622246446532392666053216876583276456009948172994958853168211100176931392285942436614516481887974476300660912852690978939421772617271568791774158846400640692533354097309404703334829385221508383735859969009932670546862822906122222113092924289436331167920300435963413363149978001686403006556188746973425617634358220417729742398649533284251079332844250785757354437689988119579141338305777895344105816606258265684499477571452248130017601192897835746980126157565265587201178946947133378847082873114576786647836627244066226561385771474758230676131047202735862413122081145449440382796165467296563029185998257788958352714342022511608194596019292252653551352550958971546800249220535541142400327836298633577882171077565940702651778118739751213388086894801428972631374046814177234187817369126746726654844279312365308815768004718360700411499130702964570884497244231071277193084730184838647608012249074816504292216062328372091748401356634287026468174603713852683949193470551968495613229292449190817860690783406048211684722420744584753198994023007872511082210490184308978142819819734569549241992650125306816798568721200503393284430577269136734875864271468765300025365450040866902028716599481903376206908423336828910459577445524667530563508817543081549719117268322156996175218763879029607237596327316192430901518319261600165948611645400225530927287577072060516309510769449434245650596882842637407710182229622070007474112788612832560610474752974498398842293936348310833374909968150362141661179977308715218358187108203366250997746980199416368107074304791071581431765602650742639389172141706457456816196635930759129460427616582025124040009716191085199259051834170491532790234627903408183403879271478322015323639343904645811212091757759420767740797450816113438911577016264758914762137157602564575916503980886856095683794910154386075840881949092120764132913325871940379295073172707473908596527456421972993629938426780668712046522714340810119123162161547443761369592916064704776001009341961370672165544952923306431142032709719819681537957310928176000122767501787704521348885346360594392048826664092650611863334977962980163523842269697382064751415289278257744687496497795476584047904882939291574760047827497418536358016109179564800775068694715887707036510352186486079104415274969993312386810865429530479730446539802473194080773604344127977431981221614169115320735007923226788381888250666846321497699432339363470977513062102648975292973823810696924918977617200420462707456159977998787740448776020584441772118366546918804724789065089027219307458066904755193772639895360736516045866953586865888630758075892946625500274903760034998249424154552712034620337129558223409979026801955657596865525733940758057615856043376007123192698486991285924604739885091135804156538887452210362228601544261997181251339846447677822597082888798409601285796775224046727244259017068054481605045151254524469469859350791359437593815432665480100198108987035026041438092959014717343059731663724798149387201988014208418944510395455973448062230030458545360639864655677343652714308704890616797542498892840097637994299844407424108931043933692093849788354972464663385032524334949355330065803954891577143958625846177175302565687938454415698194395898742974024280938112980106920684245129316819389849241424784296238953811057761228176044697644276360868331343788424642327155134507745545358833924508447437156030445736084660224638784248902013794582885940997138001422443696640256171507390898105425631657614622390291396355787792884344803928829419448907882677922153694932534036657021146625366749839175665372337874104883523829860809154884949735064946762358014304304770080966741356680925584450284904782146492417728404562766945033430491095608893719507756563066543766248694420874801311649922595208594734416203181239476540846469405903598119571247205905145024636581721894859163201713165538141545340218950927585891075536149813974895845119674026249475990986170277882466894593092977301931755732063655227258175561130839716067422472223973548321869607221187267169297474575382929252204115322611907665422422287273918517873595941863843953136202591512842365211066181556579397520165420544716726355464305211785889447716372028988524724983137154534908309518087210210354112809387399381502710719946909684375087825356916941453058934348421795866651545593034910933056290486382612062570322538067013111881388375821898568873187663427923005927632673618676853266420288039074421084832772927419192664378421982509366546604770734852765599801340281207875030988053344917188524773547636415617987229912138501164067078082447819918549783938310322798916407285113788195327101929970956314359387583257459324365141410669020001121568367135988638096823863326164957551234517616721839800038823107709911988499809640835200966091515702919574387333860616792624145317912475710774972443298395058148423062323409623861284358233940218522005293569259231169088751438432738263327384600526269756263982790153674298498441091041209156009031353336773402190007748266820102665254385290131489477729753059544570906769309291882472327677060741183744114969215165825875271667610125645245358186736167038143367333651674161869909209345650390548551290561895158488539414482224695890108920702004471232968640244882283729416806046946035170465990098964654206589168247333174368071903707284444845929129944009099051372442787370473913561267439493065458335915158368956377403402028422761266170385199287081209130210820212157499921690981518568153155364905629314753260777789447145022585648566714657172395838593619349473113379158007917172629736828669981807761857060636743644112189071553820250024587176034546767146554383418363109663750802118937843638281614918955822893948143558293722619855080793161400146472508661076667651544418471305712579016572779664863740138981826390683054978446706689663034024148521333138384320442884974319746690636633061103201483456337576361062184562357471260943404530288413317626752573084965711680012935547264063566799793038570088779394099474620433736709085360170764733158566697888767047486531950691894638976358043091619417222605330061429972985927875299614077590967016074720180399377378537325288546180884276028134361463058096172626429726474669346302210893210960263339153809384894847567521832552726226566604394322302381348629906319139803227519988456653648182401469372405944115811479342329857562094830121083475635618029403316184548444390501953061673548597192974979467485793824945860949016391473598856975668935825953838117245926587811950373630210090166383935781280772132856988209654137623094076381901306225998321848524544625087279253565938558346277522410417032351171551002190383012235309113014317997316739443158703248213999225805032636001185765808950488377274053105910175182330496773156144238744441682375034986209227517656080839033437830331247068641206238069936390341203860887371688653531075166933820823895697459444934737677745467664424319284935089941375247496020513865088441537652113627240131359978518099399646676088893581921397562372800491790597667261334691147780748255329997509747738880904860630554294159481427311751069972456297467211753283060280943318974779121751669945137486789453857099309293864359186652720748433128545125447640976600950906523542987903338074027398423825361375520044256002276147057535343188234321416784832158737516674601707487163771611717784565109759976668092338531027332950900155688022630035563731947687622727691154007564341283591712757985553133261924242294598499976474475888043896700892423254516071616022403306913581555402269554470366116831404326925246248507435527269681855987505292898582317906997026417902402123842235595131810372873665355299728730120021663683776788831466010732402411979436313315780644394895074891795968773056986362754965623804416075259840113766849807625799211041861323801407923934787356642570311421144452226665151452102127931520596853675574819676020688983840223648235214758349087649916925150537224284760439734936260947979684996742304132630690387114532837007038568290205835660824227565246748238385971623082409993505250348324634747079388363103225706641615684118834619744230224266471542509081640739768677718888612805492808548994572033632955055108748166408233941308739665371375109547717169551881146021162202211358456560513370571406405230947556351741607027828773464660367691433363948036150706240247864453299827291782645051967007490183434465718713230726937128075981409553227875536428437873955485357134540673247531835060793725222587292962765139312321446475597119853434925924634091944849826843171391777263855968501485004112831832141395685309581265245995132126328965239997660945703914174818641544871471297361699715447326186814032312825056120558140288178888721074234069137172103875277593158415868774087704793613595292022096006290586724006117420869337158748209413302680991948302532031279202300134817453378437380067553752892850002747705187009931891742124246829478878102185982366692946157382966597482153811293548197840123094080144505093147845049922154559011590357433883044115927678480678848029897653880682259998281963628696483960640334293217677115224160573380118053396269662280784854666171019790195341411172742432834320850118298349601220974429394733179991159921730871138763515404395421296434401264338891333960684221387396315336130834853962839573568728589974983272963225402225242052004490430309130491001734971173343396227992629115491020621343622109862273086900013917366131513543752094774210249506145734500402425732439507880987581337618634420288792225795210573856580210957487619837118812035985391212843141681871027509112421167221363402606027557972338077640886327912345187943463776375054002539165709437394181622114955149918807058793094858152959628375868068863544503750725580954229173452051009647854306946668030202491216801612088043858731074603201464563554041364358357985516717699701818582103584937541349995524737621309515754741372300791438695299523441911631996402589828468493409175391196109775914953712894824036007368314850276201101832495034398977974521245832218660038117308187094032963735574378660198683525422865780799631152959269481707997970841720478810351517306685377742287624968583314290846929865309127206249586135999206295363690093233466631542490318415798078601093557018100595055907325704250369665874632404798172491511653697633168724804769305636716455260931069391005943773511476187447122914687432795028610847435604709571418058668083368249394568343815816270377081284475000624326849364985230847636478012339598634161916863879831315504866321168651774902069031628428727202406505284613276824959891032029768719921872670945171236385755155805152758631463142366448516276852845098477037521878908224523782068248604632788351270923581842089890236456684732734445073245653543557492650052500176753979783697017710504503296872730603190687059434259756146602467463215247175245694561082420253291964318295315111260686936530643854726271721441882676255534460289296304138422626128111162339794104988434864795827051167320756309172105901726550930949918966183677978900536519563136806357409620717683534276130339520803242689979940359054114451190406306992321291594242746916611134044266059640639492797430525075260396277053320586867157541321223850028366301874142280445713674311338574609851777846715871565936778188752156723633660524384347607368500557222252370800051534776366149528090098892283743456757134070314223968362658372074266703333700927666340388872680806530973944262945910095524858600953607728284979618438273213048193155682765223368185217153630106046678914357706995452659415220506399637557019859187265373981445966891315047554011874230697734079072729581861423658557140754229544634921061574892709516851578883578045668401031499907440932157761956848955279733362746684285269353412405519473158815171824374583907978536640969687244459447737598182362478499784384365858738905566902932440654844942692905097464934296442046647765185143897843043691412007464998641721329363225845394775719559679091379936409821952764015155679066315322426946594452920259495319901459755205779938891594709120160823068552839229863243425606775871825773989820834112620340502455143314661882844705135645976602375173578395712752615635830046244999939758764252224718749229429472116352077319504779292065669959174421543995532423305750100013827851022421931026781378286350035936340943807456573044707591212376143290327912942918644385222914809260598501466077632220005435258726081194225959585869834286186701149519381818376006295273698738427144708263634729754072747677603861378175738218067911030264591910447673942000137139001579151247032382431089380767884310984083981376788942528658328535580505475700829857976676644947013892289626577206491618094663369261714842421887584566695659042225479327646989260456210011091792645071830795873161080029613669583403808757350446096168112472798983840170690197285436492520238755183775975589099412031571999249736032183380735656837077556731507968274652242529442067988907284804553554526451412296607179971312039944083474415889958648240287431845395903608020101015797248399608806844311600024358032933261489224898151789370733258117454007612536018260751662670502436015221908714735239856556117181326964919107464592995145707159689719141558625476071212634679559931747664717648763579671337984886920287252758596872018196728719282672000185900303869463318738605521355001165579787532526804917600341317961320739866268254527437261994744103906615324935481940699006096061227816633606500290456971782370008111047309431401426870917122585087834367344673613311136756874883604967120805042679226758639058016655789986640848282830272637638259942189873686006345054484507685121061591599908904597101042888535643756707709536505452205581449498814509095730476473377903868413195902089698073266061180018968530481662820743788308849341086899475793905450411104489073864734434107436117890837430487225423442829017688785178368024329355768887700693805412272842376314631329098512460919989109114162146750226471878271471742214813458322165149156488255918666296517975510369855389940023074299191771288723264478035237753331368124175002559682973697534922465974739105054587237359904708108939657257282518176374653425231416455537927146809005584659856278893078916689081311818669407052933844436639479921670226140484313841935290508984829015187369540854189821583853278836093095143956316348573252290250904357733189210428242171943360777828500591727184338039886261368970472816676493952850157452451834294570640265941074823324967565813709664033343507485968113406075978716679202308227779489221363669026445135892237602558739343040574885328037278386449370486384959818731849307117266375667028443886571624979084448885117646623453058837286131944600705635347667084281719477242611990966189440203814363150710513159889117255078667630620251693136989348141038517644176337508650462857953458972933113842457731012015532152942860136528146115626961632241180181535677602680448413070375726015055138496247365915953867548094638907413140235738283419447934874974121651718856092637731421913596500185071399139683841694051619159845809525716984320598309186737648360829694661309433608622809015640650191684006935567488826430597433642872453116168848236226795420910391894121245168871796725453690792694688959766654635520028604891321398459688631616768678307718684888955918410153827898755334226990042518732166203801699221820741246099560108260944422203770380947251923988384816880859600836325256578951293855922255512934237263331552429486466386773313815445424557886594043796615651628119531869464711635932514721614370005222370624006814755278641774970701738854384222571269740990993543364148643905137540233636662726778003800982916843623845116680837554424642100269746847390221001285140821821939694759457014189245246419939035160427871431878788854552894760503700478192965526285112752253427498808685241035903884520185084815994641404805443058231455618229904486213089252906719527651180574171617323679297233223166390964320313705984375620395399401461926608878364308601696420006193172945672258590559365150905052410640405663062670586076357081221562657554041249838169063621048832353303082376863563971726956124877137732328157941254820975112635986046658525928664457174558589060261137869646189501810808606849243087198354706982686234652849474259948184493933473032872504076435903835056908873492094848311510901448399493875963730321098985218436816011918522313266765287239208389200559343702138909627020298884855466949474966203919462043375135436459539703439642390358844760090740118655919890338885222493120696189414153229408387189379329940016886419840529831845009221364669628700574512398796166406658262388736046267464537558727286992748901510284188233773543510016543076344706039387158047213696939897722976433478074402321957402595745020494211858903323108215435869910767981189938439782953686679522904808872843897700744203860899123259119532652297203945268251536590717165876683975942360244985815556490542657677809122534904301508630862658048585235518925920614802519691397235180853515608891467412067745790224241103395514409799295043792824063033577038887523791296791513964747316171233466616171137919153231696073488326490262878407045561340895979665439895020582202161374512321968507644261969322177105451978908774519088259043637927631121542017639333773998600288311280252753507060914608282773183485405592667875905147682787691260138270649617448214256134589527652515749205323713253531621622098975895898853399651627035166652455129570919138162731018363899305972874357991853114879050886701174214139800881921430062636070850793009510205611290554642573504903555842363960139418807578084520451714553092856330783842336603752994092956187428817731756840955363595646994349811725406474652479883310310006983097873025442275651769093779570392966716574575441935852530980159866092776293195300153719804709577299717249593203312002380012379804522867967940548913612381961286097606178679757821531221024501415608947307246989423533917802665203152597052220165419869136799410527564479066238556397003518595577668510468297437824369364829438489365646557606394405107702117488821250768448303573191593463784427564173141212517543024707242081266666768319246431199617117569618943714526347539612534107041868922190599032289455335248642358861349610426784662278714034775829577856940398172294066606987701538809330901012323706789742865601438618242776684320755399949687972616503657051895075925769028823349333647812913703182238621163251007560839350013201498228014184644776618257042782461452854764265559631106753142769054625640669633876023668256235211354124551616963482384557274380412235238756073696738075619026301652859265782746297712017621942180799703951005189237205919625665600415329896128215645312027428439077686705089173637028513024972137750823449563254959597231061995096683143616007118952666560316266790570983160777566556047501066098189954803041078832868335379528647340468637112876183741554600166955456041856336802644765851889509709757287284530427859192531861138378791488998927182551479955063615297805219949873406442436657725462975984303275859687991147093336646426167341060439033796600754328488392979946234097235495561608101952010079634911438982878924513937361514361317455848318976298586150569193635102536686854648897622699909757982867259094012367900866795916752610822484932149573294431067688846933802577804763995548238835650699426802369881724667519886004662994850292536662194750240378599711406624280709416161606743205276922321987366680215805599883586048569545418368320652605751173749620858360557166149149103396803310138486478432022828661103200707624772832137469119443651346564720854435990717163850967435795658864759454422451004327314741692632746541458621669553266328474530484415826835624609279121100138409681582020439838645908003523136940004631740491611275156067177257140414096154074538860958302167086714967208493166717847207660257943661122823957543471931489742639685801420273968627934181767051527616210991515438761953871172088004093641230440289027086011369239431970429083987304372702565095206836684426520318122738918908622924952000781956349048915718025188864577356479199065519447126740356623281315033823697769647208236216701133074021485350231682201233755355369984385400483538880267163106919143231062311498167810554093154644749420739629418770832990939125632655273644717843632689953733020332507462557542501218198700959262511618233187301667407867132994256396655203925963256966585347505407152435693884039654790947596631797222415497962695415583558106088067251284152676780480878792442415606812845341181569939991254761709665963467237208594172402425575374980393998359562144854518762595891736193259783779391087807090335587848804526563415513321894754037771677250748471508993173007560836862343709745445484045624590699200446341247801608176474309010009740917661851269891634262344161308964678805062493751340719415592426365366305266384799770210766910884203807563207528027629057313040395473818462853853429826139729239001513598051696366831498135157789393720630937078387924208991671819722936074735011151202157573016015043917619789269902940492202543515843726704107521156036631096372236683390150471470017293692082085781145265087814087558998714126855324589862666005348550620905304487496672010771652648291808731660356566758843103751781258376606051259995854467043122002535559685148403816062021619209638576125879923495420636332145640690598133249771096118151937791124937361643164266200235872062123748353554392605437452663896965698222058943002146306038592403640149457849310891720935438975455057736199856244906347012240938585710752678715584960347268060651077768303437977865160174020609406843147550727751394452751173411205114017806804973202895961018865594433573297901478400970981725909095954324985615588464937924557958890477505723610222239884379665118147022692273167352076754177533913974083429579945452465304832715298322434885618560237547843367953129192346548791264783615762888943471482947640149961216035944898032020764828084248855809197542439188461527938878237808459287181260785713554149150751535336055408101485083177054794466887090641962428710143805314372823395193264793685391400999376773962182958927159373297564362746544854048951571950464110271681461006951074442629562690576166316773646453323925746430941853727638910105665430688172549123182108120069680615102149773758071552793126560466399658762257568747087359217023722121775947757448572017241825148752540176516853676991277581828193790349309620557311207598902575073660932421119537375981590486892107578379876195142238679782975058445933157554742766180535153442666335730637981673472764344465203790298130452042199698622451519407362274589684010918521053794662054606848563632811780704293140397765068158303460065186295172476576391417966827796335885937279122909511159033369229523327172059107500143005545560126547764456526741130314673462427323172312015398186619921164250093671645531826549310056147285175692795986523455693719875569066762343161747132748217727572501442880497403846663532199157727707604452139445244989501991725986525101284318472643000482232469359058816708675055367371875995786318148818103895905286713764372559820593262054692189009944949991260545095827661836522291650167670841071852397052628033709360410335721744918605386291863606657416204006278595166843347955540483670980440540459348279141761086689051249308266321599115706923145708140148401868460149296494262009532069243601706571720595473696632364056498864001636252888113327074790800223838699053982120238179348967650897677322646960481489433181928337532719827666536533339433079894562538680076045121336590121917572113774578731462895108494295720234438647787257875416364151775768565406723753512979368336678633904351074953884675135611379370461606007783651460391292404796530947957230534770849737141157064478440101353221308143673330113871865945214326744912136988128131343488571938856574617317955623076560106560203094453690855983163055235966898128544311810618110483329612496751618310920533419533372111890334635818473575746215188232114273530997496819158381900007252094420966857438615224142757761778983646055723132293797858133026304233541722123686242090655182587052937263473298160076442392232199186166401911213111981410490708807016612307736312980394373987868622124797468754923458398143592779706593329240779882570734489734680617112129490979985976964188472110092696277295162239538659323952979504681437046006006267113185451815624414465571378951556022656300355711399993431358642637762356526474037938641112094021968685563175670230061921009153610688821115256480113234098315255813857524016378228601789126717869445121301174763953415100855926458886414123401635389775518838627153217161368055258680592746541964556975323306586614799365490532192584441620177746604998112173204341333620010266765063930230631936794688702251690916239423049546770050495122108781216518643020916025379967084158701929477558073433879471555556271162440600847459063940051949070728603580943449417228190563407805565802717290290441825252931674331624973408946011412208667435690253852829497717370227802176929150727605042332819717919733699779348721441282556444826865630640312057725529478574488377765038335047529872204930380820195045362835521309791206693914858639013379558308687215938148127246006900793655880058002115596935422816840250292201608932699601344014515525450367115102698592330597232777347812199205957304626510260349197415018220487776400008958280946210167602690246964389407184059626213340995804741668581782584573715024791645131793217380120685606268205194364224940687453853600852944505570547866960542857260591863889963931176054408482737984655459808376226219226709025452563541959466306089771104188307831871008303404661320675132453526052752858623481149719670041520697629750967324290352639675876754546879456354117606287033763356940570987586433804641322630894019081723302132834432394600488926623286400581605846320396321247845844450932329949066949145030124060692484565932017442752682411271109907688251604938502562247911958210988583124682133127213276753672874651910585518073109263117710125344600164301319394287569040928375263511737322847914226939219985728577140037575675049237508559652360999820788804553659786851322494715850699054411332099113863137393310843795359047351254475966522677932046979283381702779867014425883759194447215551807677340752402640976821932046756829227101730459951850668138338949222276383530707320163003614771411623433988865623559356787931460439701638747325651803452938061400055533797907110617925529600408143200820701192978804580139616465776734881710664407392740708289619642036230125026213811783669012054945419776057682974917965989075096037867780159555936283656875735767873124916745645879415017269624360196636592820818458853575130806807048340731578244514344980648893647186581921302023732280178255839018999151227267485947615107182376751096115683672250910015474410909139307259237813752342955492562916860106487115771984453579417990323451936748488144284761879798810158452571117844377187451222098983987367571995183868813308624958462747939371003429446398582680555910722635668902078630891854473281547924686078538386730036785959855270142292603671917710254024435497885076234882119113688487420486644317659222227458826431619191916294329681189016171326626000152742111938885404039889059387148377022065128108984911037298875295587888089485754251127574621890051336564509868998155077808329009885935913490274355349844965364893755414459310598523208595300969905242665877874302768093577563899882324133524534524500058279437386673989029930913612924096588708753117358311814120659827091948941164897730819545312956736231285262187719295074991543737463903685028106340536467465673971963088484249711757141812008310479160921864222504100650487448968854684701924654638408396479211127861163218227028017651107654639204289953558639460026184159864344714720711706858047879072780628901103493207335622712500857658030461243529366370511769618791414345522453110542998817821489514667089734106630942258170279307405800325792970214008666337172654083801988104235024950984461169140993071875090089912869327805562699210098516018875974324083661688254656665789226420881101080014749842358847226448653234593525673612510234716699582963258881947274371246672103599465640438489700092008101347658936108239992243392649728381049387836639451431829791958029169633033326116769963772119702519989024056390432138763138558482610535523688942289505570691974350639174904338733043459635288977971330588848268295600303920676083589022957671274381863524347510481486107845028985378034462644832375946064022369145431649172278784910784326219038690001007109775366848096692601564741585234938232932240613676702071794308216868331778158526134300062209103968483910361769915834703782578175691511756704281419710861911882903717740187278776466724248343420020965591841428581315378466495631366230102106538588937067450707695077485310303847310312942905467574744174559941519950426566444730388739039240471453117321344628801382520266821187806294410506210966153238252415624125682763765398508939765998982684472615859067589726329253426341706606719898687934763997711757045438547806905298486098259591760595130828658244296129060481950929776733997228422714804056926905194388128000494480778082914303132979724707325373708080017014683374353514589203131155481489210281013907244017690927319904556386231596849925294016169609633669931595478256535199619265945107489026171793061461270315950813005402717684179961796948533200441327039247094948057090757756840008364177527436830609156532371738842749919188234160071813965519882626651703077335220200316645873867655756348729463412051671813618957457873447720920911114996562236118380119083086302327204274712861214674970872439769097365166160827486114527941937942631124635893629031003675564189871842991452860123848198206006740326472567572314464235202586441508217208836722853346161122344519576634996708269323050460850464543320898720959541998742065612876041238760813823366998501111061801623048970522646434520098031738043064426998118704661222495416389221332268914797122152175818621508694802483052939061509316194982871704446309803024054900620339596294349298405635389547307261984488743374015660956617537222246657271067088288681781773031164718961284518298142033659634578940116519025795720525444654196047712197952879970872751385567432825192947244362298113260459611219998979281506662837514073662055706571872050686598968193642079901975316570220362938963146905239165915533245870009214744920187985451538979876048790818374321742665460669761863142050926911113890422586372088611768798065679104034945094625043998707954506330248510321141744361897009483252493566734870183743727927617076831430115991835921628006781890455025428112997798550916040252978577812002191717809561951069797863534913885781084553649824848185432687990077731604482553029838754252478150182117927337109787650121589070165805309661802956064537074135328765682793595630395788716998218763805991096498570621616807089190655684437749580082706843879267571283661495409506594479573281702819368472143339511828902481934750555958242704258523347789836038274709102296146487599034889488138903544171300614873411669436223493999085186045845235989756137762362511955050410936010757452643503741986899013108358222234005196345417079864426620331278137057933460738994384561467384483718564036577579842628098353471327946097284275419729492041428812924955112370755354548836154181953968563275616238454588708514906833064009934872872678460995121554274388423531069842130210305375960690945620263002137347732320858373279144387172452655923131701276980064597721676270807151113479445639884574136847809946095699102194300410791046062332256146643324551557875602788534901964875511058742832535417820111446693758305319108759742375513248112986921079273885373011519945788019975075347239781689912880916272923992363340541093041025304942877715527656413588511545698129032928100188465522713988651394643445897503986712009945070863941812533075765528246188087875490064923005232592805517084873321915245256553245579539072845766930951567808350320786038670181626369913885878857405543397478106020456876441112495600084349285127870503618474922834878364760391238600241438423463552895096186161201314877829858074112157580116408017561275613254645197523115397009901866837556990150145827991289493214548210438458901105849259679471336933880678204012780655734126842435942924329599901727973870868942597019645138299471259232145640147465444730156688424468709583073564591893606429345349047190483139039646722277965190320317464914332083779079547762987579691986950328053188970098837484096732852208708774054981939039450253027589892876838321573897084973663230662615565117866958933678731266444702902365143989702100841566297847544626840999312794552700561549979425049278447707827819348093096897823006182009413861764577231596348889179238048624127609016165285865429735520484583079858021371532169512019505671307814727402071956937390020611570741266567223763031341316075514590934734577624607956532329248887504468506819299146365633120884598924789337575975108221692053086932728871979583298200482141203815490139580544620799263881097283226663944349915873000334145197168783411619939296659972396692197776442585519502023222618656892482221629845183210549231294460470145465515843773384941524119676630663970585733244483598595527957526830361202225297172422952101695474254952763123130033866056502762387360234610311178949884951286779005426996704600293961320769581962326462196575572134333317634713245718386794267555683195130408954800399049669158993211589157846232948849036139055403883262467139491952766662222759943882675440441690179388709666764639366540388111336980085298029237131430008371303174463563922948788480358414809746556268326546529189169556194945022268343919241040235317098003903410027248871493274272285601405990114387014313299501690559886799554181959722527018236251123657344137154917750388068043239713035714447371250469334736321049601684990949338266130466488614060009501790075048912228133268713846930369133473810093390490728981102119511541491469261528478101274817895886970580246646081675547359103838548573788387352926566109881476414722854168148740272109981583654951631199416519316081604736928481798654861745720601367009916636631415988141186918177769549495943958782629069274919049767126086140879862048642294479639957007591940353336417559487133483273823073532453511410507107743125585509958136638790876654925295880993539319643808526609079336348981584039189304798499565860999077025151104887927257186631988956011620710440660293747195417395824548961633840610363909793356799955834655412567176641877900282814606060807259394538480627690701555172876898228647357508606701169078182476068895377133200210824281155492018967676127564492555439134529778948254439005132195000943058404580468125409841886962889556685144054640852855086407831491449140072681502859390614127672467646290325412753746352567771896236421300704735051605452602376444923999864469617422988130376913188167209618736920389571901480358710587523924837907040686003417278698896857605770699006160166136749571574681266899926245818423557896992368050924296033808123675998690360830144238396965921309678489387139634861594580983661131979309762083916477774765296438355592262984079383442219547136912633127666238556496815391559898131166261063709275557908772203583892947657228531578536444106337376913965293784889088529523645838488551275299245753087289678065752205691978540388380379699354323069454917538184207571392317679876904687774696935673992000758315479701757644060681392959912994967276380994927969636375960970114754613142837037413247076308922541499541363135980708526237940681505499372734481582388192395310019373696176411478491168898850786995872394237801680127823053663180264946614977504739457443234625470440273200454704064376353146355051384086446773192055640714737803397115674795931392685389236117317497100059542563869314226262566746280457096323440321238623312133048370400492705178057023606776089605629781001983511164649555037721843715615047583225929857736883981276394365972646638054104201639211457551742030069346644340191932823199747428743517490442251528282239305350814397437577768632503377300545294059173044511521223404399482385941200663410050736242230312196236287470148145135682197846334408541037378458342908082233562469408185342112314636905812396163904306378975550703903752779612630598168531526429321095606544952187015770955474284241611261662676777589430115158382386745347283977430930854061675881101654182770083287260992209488332829858195510356676279058825939676150705485246486812212724599092421866341899302628428729347616257692403203751796243215706081461793581482558023806554129118584597072967406849143772998663899157087361428495249883714816184477188681247562968751905727576242000458483408627999285782335142789515785733695201385148875856791900423663014595768762614605062205198722610519801574183158257356350958234453878050470000565294957918275247577253737036834525749563930934421171401566661292225321817240098157578492121548263939686762786163662354489243506058932830851498338745100810385359917328122406851323050517663578512568837575714892182276472041043828577705709042463784561033392668241038909252344599365534647218604890613982328793301882863250104570429922812185938458169828329385044733077428077347848615556612212707670976872277515098284418109750560970327480267795723919831602165996222502757953800391586517984925831384057691051612345235848781988923339319034239757751752651907483797194735929881140972460595045764656612077685655757402526387650408700621214968874155381590172631427911481139412713581937247699723961109952114626902845305114396960368586999033925621581282259260111431623595319562025009543540304061551148407330693073299009697847196759760636328325998087056219544587529257066098366069943550377194290754968616711410435131312603835187347814037377188084457625434481451294394226277274019167872595689637349992401487691495274100473881667827914172578826687518889951855436942492930334444597569828777647849436730783363479444443247089807409848442870526408164190326084907004862166494201609584480344116014083744646708720582241003213051357039136549013140092697255308242574092122032435029625128815938235443649109323057150347764792030152145539500839054131403810108449256806756527122160457226900231768643288593355029767637445567419352610611126029492773889500251573558932121198757986568930900957800998158267255140695493623484812026550090976565547476615942180031557573533398184644100768786868692861772178818009624521206747784305504272316740927276141093161783181413117857433551948345248187986316120375726224314638030416203773350960397834779667914104631670898772970142356575448824216749592363051288201853969052512046367981194158914646245048243401418489674423585101651741329528274261688270391957173685981906695545363554367987098305408203868750184303364861454279728743045080794687839152359411301954978365490934846620769620082482334453664452486694971696328124175372911855293346143371450959826667715057756469866937905255193208727307215858789418256211064286134001962887021662375751821055890632869780221982888333031541181595620930241714490168476595790732888623668751799875517652493732306000605168455198452727269885438223333194010612713833563936852401582072592097329033468869161824997398708892674298610276370100335661224158102332756092029995207456140964639464766288430647636541955761006482033764989777267686122766574098608638247750423546289797918134597714592132768145264723067713962130000356819083595167254262600165737651929717991100414108394626612814823138975669748299555037248208069055770291930236296486549032068307807114285237205122772524750705843917949521704048396789235300357611079735842057475545649139505661435433770914296204350140874418541667442520792265112046680056245831135773946549073153765591006468291031763004779428784061497064246397083110264569010422164971762071800240252811413722581804938602105782808992838932227793639795343832584281496283663414041674162754185038192946644650103237564078078513390784544694078130528342308207705664597019279957861779489819319507273033277281465171069791600673134272824258210083500243792587852586817923883919423285439624398770153186498158315342060461959471479735455163631057415647778428208784984496331531369450585236587391834278416648199676199941319554488695154533625519462873791214129766793116333725598034181413706429648164849355188037873086575400509006228537486672841268370575616229375317889839045071614820974108909067784601629669534047811641550297242331666029468268656864220449844689992086192527174719537672271704494329868591985163129506749404442441211112195690782357807568997647657784146841936440649820383191315206742677865563172561441409151116713115177462132262651903200427980937487691056240858939387467064207263633608643332643003076629358619353252621568836663645987053183586577524790021870981923438207536088098126893158805711516157241302214839305341632718433754690996892081794536970656070491236277162085012364381419821849335630896248015000377038913285382947216129910337368871962735039200307925440576600758693978338378103997619857236188034200941977962305395972980128635770772095020308707670027881218344804841135866722521150566668100329558560447131129122641282704522575448044745964035714824465071171282738384203184249567753413144353517600924675744488040039943949094236320189323543533653674130903156128395092271837816245529390533748080360084502639590499401539791000854306975538151913595964858907224447391978661004113743526382584087957667254579894818731021388160975822756314965175907682706953832348957077411327139266760381706344166755610301640436597557973068197690400054051897340965284479287540538914713652010521881791753675994073571608653597467262551144609582756360936879249454706945637284388257808927002160117038593308222517052643538814179321607977419206565182835883145826970807209581555906382940238903227378856848936174993439204996756896600842867900431013339046180287565099246679546645876568265410353956411450508259010535116774084333647852815107640530460441340422117561868451039424470930273159445177753908697712879964212807139592177799432344772490463705874466712451517613009335795460344574638343728148556985127608292690894594623389123435214284560181608875399495242859919181410209835207622488457459576258949995688781963710888087693667428120665138448027568570137395698558897027583283778299894932965064421143944123818558672398177382063532330238032369662976986841380573796939785909236904918147070693207390464122222644038292788120020828137714399018350676808732457100801328232524692424366445829781483980133944534109137434983331766854114126646920856965416878005216234010170637197399436355826930294175939945073325206436843312460802612029351169218803472412053822232084961393203145328205210220004822127560423633675115835018578894600297406663202817238852667131776306524526537406596653184085726617831370533762435279956862370487371253687095400632084793372518372487724164090360345995440832850296025597168805296746409243014115426681908011352485846144889809478200209669992522551075892924645808686282677772192634749152990326790274114248643647155448582592693168941923665499059597978134284034518718009119196427643251673460162935008576507482992220084906986062116231941821158620026281222938794881448549545226916910237516713476635705730115992113582449064782624637185824048237160352783547109898726319188516947752987139262594145235382756677628590504646842144909345984969562543705978381897016300921927733784763892693372620285343688185954429145470879702900319184933872390686529908758311311735728251495928868348178654218976118149873980946787796239288145363660234356859511904732059437305375816155311522732779423343658407934924434325434712058635282019022111090451965959734983703051484689717189927751836357751597411065799340955420460708819406881909676534596054086922613175295348921817542429304508245820718976887036795740984335831475176776849289555871937071882756468696392099912861232649950286545659395718863514341380244424278603576240407649560719260497906818024547011430750843907395213057999297258609732611092342402176500830055442991332765477843677526124711529585650157269104976089727143472900706031955769014140308594438518208001487475531841892243050596742424450055425092827034626955644062799791714935515490444261639856115475343817847200890110901777390910936893830736314875172996956214400573270986645209099536200830677068832917415172541918947878859124861325478223475375420475696623744845433499942810335804426031581148449503791710233104137465143844214088654663643543148669353324223425091006972481679154082871897422687963445044728573663653653672953009102993841174897270247796513966580054395614511095386460706834726978461830533753079346891100832440910687960280119673450149065202079457757811845583206215246206709830735939309334417745229233175051373282633325931554050527489918945341153449008522115585087139656555391384072632580503425634100375127011661748062326803917826862291724602641177782158457385412532153257025214502750870993999013604686201160000464720778570783181016485029819710504621554153884799940747976792972574875630578387873747270220657068715976274033962735785254603487776486414626073749923173027993208711012415179888436730420829911672731980968045122277708358683904275568300265907064061541044493261048353887446250446787670092992495117643890115129821887738252363069220787854986975051633426666899745134435515199434664500046606723157971624978631763573347007521679212426835693603473031428579071829011069343614440462134177285929013907701863434488311463185035431788064178440697925776511790710551968559872951585726724964801957551931300672174490517121794245311624095556666743298239214273061977889925112315989415835825612999197964928030917148167466598945424120946718747805597706957060804936323056322332547853243467901106433856809432175940693469730713612154732382862786639374444971560555167785207676983090253967571944633269255643464095090703444146567165877948441079719920219964225713468028191958288806586289173400640376192702398396056461174274872688819991116960207281629594065594770780502791866635765627379802708214935043372284673650034671512190372067279199938352237221376582929504627858531661074698951362469587727001483848922655472376415759669860900524135047844160890360030168227944746023789653969330409556443146737839696417324236633159643347522283269000920904167305992678638932498948763548478533600699552869539731981709161558071213116387871803992563981280408846039467231279617886726847432830308159251327155045127411831598925660531559585886665141613603426587440925362051726056167419097152359015252737683150741815624933912837102210944713188713596398305999779635632694248471703895626144891289281386546305063711236317419770285684959970733813288442017295816605592790398702213960576859801366715199203578978729412090755324432301613911029700629411648481807015906649493881626496466887865575669150476340374390814556156409868057026063152557712515985006467132969853874871423747269467397643816048056419590419594667799011994182277148201364593445317655629116043443983463638270704784731934005156883722461029756396660982671210401597478945070117459880569682732247834742044345260016666928217350385421403096125233629436755977544736645150633456323479683385126716706309612671353956773523915412895969517398835100192359090938528808026591678082642879795723385465101802521076104763904287236045827168678802781222399811846674526385123633483414165480925169559984773669271313186323694272189712766441366175314633372383152048850862035734499927212273474275202639351358803379496189681713565668011258420653725185921353418047780616213038901207509981839273298009119067414490991105246445839952652485207788885453553943297783922136630669900512093341456445435217579086096805062559759831970101679165512530158583124850222591769041689878448391520807122201270526812710474066684051478290281299379767714990017891884930567999194667542961248277217020446734632875863801300295117119513074932349061822907995665610300446532890386913543124283602089465016566315495235465255402095286158419829424286280951329190710671863007622239156799929176024115836217372815920912441388760408682508094433075106779113846556072127875645615106942210592399274261969822073335878215837213339356868077692786882399236607408320612566573432186804326351215884648643804140732414425217509603248611514204668197875110312666640455809704149233945447212351174718313848485292790792091216932399880968303080838728653961254342046175501623136229229617420946615278304126138886262350179055520354664744170953964513786677249434307803212486652780924506422778024658117079563639202774646577388332127302657615087839225946630582379049984816480737601093657354765268480547287683234642369200259676828308070144248640017748583733486741407103526049329364130791414687396034005285755452260302807489720299804749717012493626122407194840662171399308112429944109662710841368800129644525667870724367053843703895429440196320976208815321760748328495458727495764175867683956910424610148681156497407839633525187292521273634945716568295293405209497588293014057004593618913228406750352340879488637538035963279284343866404988667621455812051773714132608203389485717574910455717052846418659811453113187314022110847070686596026494860638942546372226362883082959175608340345832660064340904782547810070753792593358683734226196454801015008113427048270789940370810630420070374015752793369076039358442321775168311969041584218416478986406392485167473161490797251552012591648133510537079100502253473264637939143852310180373699369805662958759363177973046074560857311303019618395952902014152339376291465799517030357174660763585523839026454294852980500705547544640000848925161780663155608553438465869474209587923341925611373055790051593547915683057388067691503598474953309901322477123376826417360409468825224325374928635245155798882131328485707786026320526173581585093548551578332615168494389521767377535148999477773937657026269535485018804063239484980956686201615311129668338248761839670127377492120976716534466637992534277403093403518067080663629764711141671634734924520245451610449505464618657135629084771111853528761096561948367288368048657698186443176503897957627832375795977900390777995563194572281752927591773281519549611408879088651156130200217054437068768392719451770392734837784000514308316606044520484854668197889461753655271516982967801555481183870373036933332460121886886049312202530420031647267541987650131454080451270486452527030556785578900941772617958225746224800127510836195962128743037486068571576559958910073134897776718910893335302177251592881966199009706047730048870161427161448255920322094607652723915305773975507489553577743580044258965800991484607159216247493955919164679193584704659141336671222887948978559335752418104589100435447816100986035404038803666926298845806633306026213126178202776690000947827914607382432827539512474385039255249589698744387953035364372795084215661649385718521715777035681704700955757831402087065802480147466087153193143371714107027911278518411762192939375803015219829554999050203382549736639332005343553787515608065006951443129117489634524326359020184125611215151568403004165529315389961176196545808037273871493151479370618486524920933013862233019498741495119771976382345419060206544012280815310123359675146723801912262156905116041807928691533936595801369562733823045354284824959442795258463764786353453557619979092556137222930253410637629164391222548277885537079701059568828210233733457557026413035608483670880112935172626830515271863294358129570708735795627959348570244528442162625925728223837519894552601291948459019235039818646737604620917051531470416729257672026973542801945211573858423979792178110943917140026612134817272385877173235056251334845452426472746362780018591125971628756956464152442560503679191228215877607401338233641560526102270515842751168436791094081362303058582834117921380255879902701029647285001165370773100986450418169732760363278147980407835187219584593097551189045202441264298603580697291073107197110574166746981142694951344064224231470803582856403600898736572098380013970462249954039339442837339653613942668967384615628843481143524705911694594333615337896644481717710610343730851960447353198016850791642676440234733615722029741545677449136142028983409968202495376232950970688302368271274149276531538052669164293102053584303130586995524377476426762339744213507086554820876060954417372119114577471453426782694823659444629839481872420674235394944096593533527025448562199058565213036851966477805024844583709863416166895486543402167545278435388762294103656779346761458445460940439708891035123928781456544533251569638104493368584293170258659419888958172150469877785452462881984215284865053883926421649871975059205571196145326484118911488673754205946994172886081418069209918064316157475810262497692362530957665623052390817460136535931198670233655008301025634371800401630701170891105814574994817606885042807463486104542523491690612196748312353514829932949041263129502300864200203686077591431485173141016830628716873234239391516451810305827028453366231673581111912601375116252127166316854050579083621751413199672301253807333472308637925686633461662456800709635153016343700086086699605933731007644251855202993899035353810871680309522756658926512489423576149318744928513704824617342705883361150014715763753620544745614747023500787078047143916722149277467681804330963456211395858468797790252287970110295689673661272892061214044163010365143279069309531564675510590375904765832002460747507250901412195813876842202998684054643372556778540119883754111894758095308850693012571136720967250687776517877521296327520885184864682424208076024268580539353651151004818474059878700464338182770416419758710341255511088329248298710483806523478570737511172373908425003299805194602273754560014264321017441506042930390482899360921557389631316504846213445190341697484097017562716592839741126627659290373641410994003161760391899262252747447316682491290753801023406562681716157713596718381788870199197108935243594897309817556650123877081944602583552826176911530903077316911092862154723087967623357338716488627233100866759840245538951426641001690227934458161996771977664880528223833430589974331776321537559035334800155372992210065237808541922338180140472196352910370231638102337455446172639795819043812855067011366689899185737942636946366217614574871966620152765295979373630757402713489124179113666643530856110328019410032457098492104959787121397592917122809525697969302459917275558051900135349193801927416607241318656934849762260639850432946386746244448498697385680736570671817640990737409149507334741929251198264989206714131078171925876608346610507637496225453002017168703996134074262567760801227560003126593184414534088220382840887005072423260485813698148453309353642179621970965465820491003331799698100669305491568619965882776575074334897794185985367390456850880090333250368992799074534079928288497521062048806349633983830918404112149682130714355110350310917890619354027913553605778249731273361311506048348806010291744223169894080898965245680222350844816699344308348581974088128004840960307247274366712974329139988134118075175385213688331051614743471903310835136893214010464305183849251535950623716471541514536740566494291214285269691541206326181352014458744061494153551587945091091523146814607558350728221905866137341007339488890180622862412261005644337203265661563643565670063989969234850733668414542621275518910595270820276326351578166912501176855607728099194912051596678137537798461739774548726283652894461095472345824937646078885776001280444875080785215616157076810308165443967116740883785718044637506058308724994916806402894678673362349280651358778860544708222330387996681098623804058934102700437660240878812271459763114697457152056883579678301500934468912353640469768130519589293710725000279351504496528686156764566364208802816291703946738993083157585676098461218346308716096837596497710698959217352036087891465910134656562097610121150606243614486429035976142545913397337895513303990024791881613608967243615595000271954611560604587917626814653453237750825888685738977598264479810468530301199231593240682945581292423368184985262688952991205091205272429935965837128439227146473083712748969029675732030113724313647405311832118729905888556172024403118551215245793551518087990910433061047044556319841675647399231233112642860733377826658227857629035756185615027371818351806695569086256546877662703538580945638922288541063756554197924020214252703297598422108992023260057460137296578070237603472726825361306255031454780454223617080871723860663860332763205348470614977595910141408985640285989969524602186858738640039376964285588570099525472854647419756226024741381536216141865313485601860761950922633751101201582959808931302949026762472485220378541979508062480005059462335000406212775798306626548895290936311815120785034764593648073649909236773575438613303196264983187300496969707755148323793888270462081047209525698745913475241031316599157384479705554874212878666129867049777518629552557511622076528368338671391908403574147022405250871452208636765353012205727101254667174366974275091781290691999970045245266585624274399584817014163852448445292258823869807364760743766897586905837048623463622593096479924482809870486942222115926504957320698281104834002849339307545942401140510979229884572119238065272062142873920572632142459112674419170493514621112280852856908641799009574171275437446183446768878444410441670748448013397607082799445633484542435476857968955144318922745458013074745140051586035251625039377854967744863730177446314164955227474818934406208053321445402792060315022136384027157367601979446597930141968848359878789792138919195741150498830318864729454623814565250372117533770506285656942847248835985742018193268727658704181361371720353424172960121082157010344451394367760454552561768742066628483466467883433030236200599752577803901119550985638114263056821581998786654476400148184631108845242336601234541758609770334316469827711107551052901444387664611641392346892653913447858886515519344990899797236467229241167329955917171349692114153085551381586993112272410729537968396001161777713440590666483458889080033758664752349949670866131127359720860842963172664792332698145059370209503980153145360558200013220525890009785296838652714554813223966447024842844383856583158787756126086696227345730183110596623815698155900671923967434814199344528440244699766078432172349322208234087134042563863291160271935147723320438558358414100580877711700118299145804276577423238220988864098962246135099057659277454561453404030693684860583388066625432915533117949565653086114999254599058777096482209159352191951063691119962043426692231398224803219332884254324281595981850501608571022796730835569979623718221555843462325085999953816872076136338565959396783674479931495135075352567509163391456003298189094824399942054486885938886349456753413211322272751868840483763349134894194631124616445204894570646813204701089006295476298380762914808861610239600229372106846335142099220564930641696661753727202063217807327742708348999445137491489631139351848350278116850072941873040554350075327912451944457629091689388495548351128680773993709540108061536916203088938932859082528813758434275170831468935311501645284599944920886123583820106828494039565100821425407432240353964618347468320868843400182971770385624165928879289563718424210708640461420786853686937348363229192303844749850278507744118679783499650432832832868507281652777920326759082233980090337504426874598352497801964367809438897926644331695022172622590694532878780651199210784284545481931125535425938328083191179892389921040847036503976752037539508485534623463790517370332032696982076911692231169052099710182451401995098170696328295225221664399064345030116782055291186701334703310967534556352313138242667959911616769963902476628668172236912372175938973811727596024496434542930939102265812224553893924510889888458840523547574912889709966902452873908703191036399596774412270954774948740346286077545807707514192334736092570566370906974004724700603597537546369762114276475579925921542992684780576521116511311444865576122216860526165654438418225184794323674462278042621153436211723072406336198071320095156757670450366241089888879794447155861512069955708694871137165914881851498427428219507996825205278784558698195736273457474366451377854426455048693700376473495642315819212187711228464714113976546330447535134205759958597784546823576536034668382998206447315228089135244114229383384208368697375050010088015414105431873605541891438353637766941364151825426658634606831118069074023279286682784828578229528627911973816913464653943572645334252457905055063232123718138367898901215912302662926922851217604473737508277098959760342872854935367893408022713365922877068489311918341645384520395661896760118254396525935084733694860547323154924678415463892576382157025918849409233584909933022766226874349080385406735838290953992641973373211833546181292420398840603166618588579263055568940860720933581213684116920780125709131722574803109318579922339290811684506141835513455911810350671915136055180934686028752055841384105119775309103279362762615211682059338697257942098589724053466884682723111408675933098023830195863830595537400373586289144176509793905489215105869157872939650539348727145649983315730808344475809944012441965784613726387306458578905194240145583281332783187457742384804943330834163942126114971037100368972774320671938102858089297547851025719451059391964638831897230746934906141148815925259816070930229353443758434414905971869608116843232197116855083131585213118826247882900663582748832794418839165127001678375384357458887040440866425824621198844977059807671496210580521049292311837661003361955347488280719626429469249822804299247647554763609948558469961594175735484204030482155738177061553717196259060637050662903024566023982646806092310027228298867580688438060254579852505222791721466046874190176242286673522149264554420703412477614406583672442653950446079216681041394892900882730581897264796639380606815785384668664096649715429417651880566780165675962217129210914533376595954965136785172641073015073986648829425524608188842009281657083259789328568970674817249005856295353267614117980849708101545029497915410068106695401778390549179486766603095324369917162827297590900485171913014955284108194918093720035054177220402688762094860682579159685594913476764405621413048106939882109120473344318438167849230080454396664380496840439280060955181650812058693176841824572400119635822684316236967510547491982453004939059566716784351386487047913524557850116250684092850972317970560232999041400199107342425904565450494244985604865678190315221076969337214181479485045209592650796678034331307208405970305675888605774205086134171645320432486391761900725562544785634555774557024232212687040886524267973302438806499106629065376736073420565839141172985318092240855052010020941361105150705556135742815419812404478327511108487531863484809913318151171922943356438977493675224261289300820990075927252966699529196327156931325397558202064792401997234920176450373355164283551652806743937188985704226293206884761347438420019211236824253981132145523582151953475541621022377519945244572053504684353769961131709099407213161862736169098538858567771444447706395337593213241294635477967544688230029549728904529257839627595495858105354074099829902509766266710368263547393015882400695038145924146049991498718492754971711888714283337640533735552950031077387339373895758309178367396903209319499604891642070316149256199043713386300091788612925404531859166697463782601441573381659956342707896401342686874906976609896722419493554548585891521416103462221297006369506396356617562453279467500361110767597041505205834678490888247682797049718536948136673052295103246744717730298920574887141005396264887979961627317364106510843281289098270109685641594984834987583245412186319086296915119836215297070575997767246392494704812985606417943752245588671685607827859585093220555902696435744256168197437650602885311935450053406114663189256903259800253877154475430847863468176750861819881692195367637452483583712171874994053817232479116431318163047164652336700982300245219760070606945660113388031082338698386350494708020644975086375857679398219431698583321621293363148987880277052859722627517556406809462217616041728182204182365845209143015487100672599784253012405423681703332728658937220959154426188011653858842293553896870557836187507530554706219275329510066649317485527896368218916696343680997936993698142547659349051681559321114745308664639684192327386122623309147032635021493815481661857360846951097176643314678927626820867652356257052710237453249161275439876300036944105933748074201231573772734816575910172288133346705689288588011153103051871297688552961446865764510319098435440350365712296464815110022924806652736454668905888911784550720627861317161493230140759006687967151749945468241857893725266891792800899490210960868791222773839854036246481100818471754361801426559252186656005926967652899725801107294511436349689403974388849897217203948737020053330621334755974826972695850050460218315442385897491749398762536020986118356249697375032925367766033137331306707194899642478585879585105492882394336118020661791612562817035328119266639809913334109600218894142409090092735370545372854751195403184375752501521121853014625199016362996009716351403133233155246697665570909929197700176629818685445764787287031998932022855737188975225328618995014525879617222407334703406560034224082602488629556572517886489577242142311483031599340706575670699269428168684259474315748547526025791123139568470133683783461958311698600475151574015513484190223237038164073626743800674313774185069861862432603170396111186564947287883698654114018870371999400101283426305145801093238576825490923409034303381844975416157624074762790297065927752426449584777942856989511911521937324016102347534053891201097221124549645487390072979192064745426487622771811143213914715124553237117799004879738426661923402637634496622474996078068032420239591834399379392791459399310856525089477970208469324122600153376862113459996206348895677187184804333861794336112309498376746996167055709805733546044959390552864961774745917578252737293080530133665469038655347409675560766956750591539778378663016820320605460805486013078432895380996141803648946835524157525897977056266944137161851775238119115111915657068097344549489186834488220953074688723563837863065424439752396459298878706806058194873977328400568501190746944576459303768471163277559689589073425794903511879885567134876519850450113534335599124669604665330714030698575690020160918825577953729761369161064825917561638216389241037823559322673225673732075129359955954667668465512270305045819244176841856565969889755883295075410016511073114756989439238302230432074198910592813397855099769339352670182481959523000557643562913905726783207068852778893913144625073155675549696983677335081268982479929735631966570040173505142841697129532150670586117511068912615833568046433214665206970400617025446225484794938210481165883493698724771259706066318722032461989666114763474035146161233821054459055796456727841182998279207496226327261939532937682648914926028315850379574206694268382590872476231005763729554826064229426539669221067412754733711188957288410833344598375837845161159285513816771230017167257405614452766418420029544052368149902960894667739197323252422257979318524356316981564519597462733907819273351299734627986677893852516363144730921068918160104164714218936986357147104472624395713782423816726569259722089070015488904818208771076691497202311046990291227027277370697174160445622607718228171053126072047634072751303651819159305712708118666432668130450685933573944594594814494938568311257547319344066009155671220945698268443647964269766831407371690189026680416396449536215458152089798402652087418165102802469619344380074675697309926872831635072835581939040296664880554453264197870715424285148539491009912592867985441426280241310434608303205164860724706907428591038219921162608884794252133181691289082070984569708511618158908099850469036550056934950316116455550654383374276767106598407995909239240995675711578679592051389243756639598916358312194943394154070981729320068275226809836740000123551938914354277215078631371185485666937205071887279987536247904045951942366742072759089484855301326368470191507556152008044779473788141366788547158489544117503825062782471571633798694747939280401773477368813385043312582908967699899599471496806664181545052319866442393372817889032537790475677036107638806261847834820123518275365169472869492155130890766243342213977138664099304678230533458664713053032550520932526656483553681269406017370045123655122266122611122432397692305312643944743369312931410896827072934250879681417400438113799925995126556347990271387639227447970200703139430706614950993621919048102793494657575660088422159697933819202238512346629148644285834494406747125868903326031826140736953706021449396413682464621200577874967684023429451950891140432262663090097136001675449771347641956957227714796016510617961088623474579126609237979765505274865345507368187587851973150012132141341665344515028501408501660643889143683002072219303136845414026671034219508878063407734926109798377495202520877999242488310634785971442075922459563736808389785268427616300888627855882063680164340631719425122757337091860161365822687990852260230780786383106328090935729072318332554946745625525979238579721435364382860496872034300702330158508079307196074978489563772301876390828763155240909709752569751322204319960194636793652683746837654707107551467750606045703006760329359352394910370841182575544045119714737370321780908120105612335597039123340330521104733853112901493875392278580115021882560347342275662143243860792758273824640605658627596024099624604502541859687009991567715990259595622689671013658053205037998585994058062656663603220832329073331538584288605603515913741499015838502390325526924271343796634208872557552556295915682421862387058246087621996838486071142180984378553775858724283445804874362988696764236616282781767794826821034685907210356386411109331864726532510508026757850907221826918641836409226613658422798952797446901981325327310216437231544766202590436395267472737856740882546160355191191131744088356938332338987014048075411516043432873493637842005700047284521580004013849870954239012939178141301730001440100361462204299588885395999996237280664576158491282461057850625577077422171222688844097964125010561986135824578715028630853017009197911389181176388829742045181575157502695871774931372504263158115684743808246665075532016601131036865123892501688085573338025052204318420120459912236377623903040955881438164161597532062346856641039782109890504368208908488493487983792030682843306300378742526808943229414436223974480367218748732394677721011952884969624078179827953335672764691595461623977007582970369389620409406099985537668952815750230682669466685764713833744696350909929149969937890343668249127704761477642621396603643984122299559850968399344541764899964285978382773527283398492379529188783123376757468364975803259742183994853398870873533992501353203497680951348036639208979131745725301492470460091094533228259965618373319626404819496905808105278222642244045925245893264684406051911162085929020343913390693116085081644587608808090546479380184265506618821752429709672995802255948362642296142141486920569465813664795953500869714995696922532218915431271382968309834784669671218157543309977198735438166861180976945536585912831436250955081952080859365898084760094694657850906051820002986043504262365087428832614784888230841998996310281442255860172814338492501381461520074564434597337039594384249113284853528256164872017498035836210751756048868076995471326808790289393316053759286326671033263550533468841299325953774985491210114335410162624501026275909395213331624968306934788911208607793867150406163090265123401690037905462392144828298401267268566853904595761088027694993848911891625928183539725791725968949031143964637085957474034922289456799344094740370468167475908279207945897725138703972075634643187911691351525784698674332987955876616881926280481331765045498286815998606211900802438661210233642364209647278817657369239829813012922912430753402716262104787127097314496713753850888233877144692710603008974801289501204630202070660074541624792001082550180635347657179916780884169399118927742531693739538268211631239882082224843986424539123435498691570473709645047842396092858204329165753560129603902251298823361339033603875493445359657090948037846574283295448458358242686384778340125136561602184102023675845594828942116474276193331529533055711690492875267928818432615418320598249353667273978011536709297026761036362281781160162558675695615624500275511826669459782840914777281696634941482058635335208273926993288351706450279387977518108543321676447360346862769637619681035489889538201267755242617631795378460053871083057725200789497123679338136725112939275447056385782518368989771877261419151908306710324942577132997300340156812265726659038270795407134773895649605449384551871406648760754418500997487796809176876401839928535432607758462637090707113424762680749931244333044629050384605636473387737467267324353370412222944405376404630682986988540307914731859913456421642155664917556069300971618887777236422191127546952417135018784333621922326820177838677939331254274115987820535889660295754890096429017320703981725105849042020851493124344680433606083910671197725128641897484336508298755878146005044999369078777787249578221140558934997469785485845480595363880144701386555272031820501673461545167065446248945301273922395939677462294160155812644290752763746946881210158387222209930005473327139546743080494204991165871046971392732671342595449684753391560589662705421420348504292855082639660960168137671633618178474961711490530700250728910250389929319359395222029457592082670230442974773188365849333987125061723724707419875600264697116475652643308143781892457256246583183176994968341020452841121944133261189666871364493208321402671970936486700085897543827194611617911792980890399210758724434008142653354330902822085437341265202200814487742539573297522572703601622354758657731041634182036794085123205464969411261485358552280568770023445957033403629114397940036634236773317387443998724320575027611659290125139482011419705401047798922136433867675613461314278520011378294360458870456248220101125068989631201996008073983517995196748973572086247631432402315932250596753623050760944190471799175694630423374848353845639858858348467427470685501810953312190107151439229161194920521272618795901988861042055647944391257702942104803377999457584542095484371362432748610124497667372595894909927608727791808708486154502628154401421898418080303296564030606405266964512061261196211339115759951794565423374143955940726290071911669149452181377989579282819378802556872334859779801196484091462832981206928211983464118582502381548125540859601157050857512200804888180011478554447064367210573644450123058771880030319386107605532748409144904609032755641545454639712357519150402142041948060905019516173420915415908781162580298984939482274436066066087395609704136283660260913604678876793514376117871063120216732354871942104105945175227002937663681632888040832263667426229568586317264751664496125916989547997655129246347312229184400340981631976095394226563203782762063695382361309943907082021085626510091307344353733848864551556775531939103249072025617237888407960869259218587215070692962443400280493025172457896377672577455101350455580512063655367172908484417803820554953531351841320191416957756158473950770908808887271870129185006724807447304452376926885360910111056107204234988726334305799527366551892104039117690764077349197428236267317328032005275331889473304809574527090544250985490193698863693797296106420078099649160899268307604881053528845564443724807663043980188753057327103945974786069469749607415447314408356487835231493896330862102200993983472472696145645418978057935989640610596243598757292423520067459931379448567448664112843625787073076456686363333380633071152762222580698882973214054640847234347289748994245134867214692799916279951012273817867161495973095796909617133260954573893294668344208357453371035349702216692748955816399662277091522971014992589372117536581356355739967148492818428892173756630779481246441621856782215810049361942783897689480125565107170893773829037106485545756242629396522545074133732111551762209631352101982560260583166457312744379754336240154833758094046294847110827115593751372941520196668614756020847762910456443464330548351531925249748016701874521568451023186773167713417350776872980257657036297591313905018600338951653660244107824436303591840560157868675873705601514455396880819907562209013502926489639804658162698467309872169449657238210797298946948038748696209432352770001108214312160191195707814423826039999205804474014288339469872886509696162708108389483975880862056959230276840143052978523825341027442327259166672194870969532219452512269292043961750296430836633110249131289692709647189014208766440331611701240454716518866603098971205253121743561182851817618333163682829038723835979516775552232974698968299328372496417689411756010985585630510584271051625929555414758536419996452679744164453674156509414995707860568513665003171060690081721815881074853615110108770219286595124715219156283237298306257945612978287603842036024721576693550642897627656279664155456286095134336100988914950245999867369981494004127477679631948862945650560265510771189819589129855653005481070682976035696647666300227389361074431743052550990710878686689684082372627695405831914805690225144389879972416588496501237309484538781788722677485739697235684683007140480044333694199034271851021339252318446146736039217455771623250621728027732188222705308546276057424217857950102944386798873792730855214273186079910253290695978235328583856904676693817557507923685694191904000999282290467646893797337379463080384614254750072671102192809233124956606709501280893976792418774540716538304249381669535770483834369467127180311029521382489148709577174635226396556021345777352069235882064292892704270135351893030556505818252895305404379189216420535339515640588024824261998117156236185210927557664181461359374498508677707044002410667284573418576440634103640147505631250770153888012013083049882611329782484381765032658796104268855851213904916261355845627785974755343994628216020282444302762380304156816095791882131772009662446095270703170158249613814087827013224052960275602385908892183387564587629576363985396486753458361364417015808617633904145305271689588531466415493117801136706420256427936775698465068780410543296472449408684541982130956501328286604091404878606676284904300528106719000174201290894823178795095939822258115574877082167705657606146369112430821630577736559160043246667081517500434349358036989385454436112557566560944860824936020808269725931265585601582485041597843667152643960092029592397265429853537712038022416912662218039353668823008206081534719343763061579538245466799707048194056908156937917856575966582676596368062793975980496009441650271955657472477399902624106177359585937010958180568161276375549471046459085356541635281661830150360125917765481233250043891555671226902077508392051298915529754032950245607303459090346047307756003977808799443285255929517091254361038844962174498854423571922347059276808155096011948668222728757530069173779113143396401154416880191856043311800255849194323005789773294437317629277158497906770264230252706233187599837284185267675297083654408282052079038800027740734055583334055463056037766865629050426187620531439664675698653186467232106407205385204829146560197052541681861469117170588301611386749709192501792135480870939874702673742605763477782071897530402543873875169442910645238819537444482288272347869953040447570591595418055511727803551311951890310205648234643240462993794670642671541306702426655421386810366925158110974723419172942946188262026865343264567255273684232866817983955439692521812989928553210438014197927261361769263709298174302079803747053918649059219183013706595245660833452281353326082461278956587312589822522887495571445108524998310027348892420090360082176024126518357816705048985693949998934580292004254524050593699853747482428177215111965897564576699870724089718481685728973678039212155954021483920397999675097147286494858026692729818372549801746674390886341286357398701619195974392197628929115101639812505667327956008794191789153757934842205052652100123136032557303890215868655448719398304703803180573865278440656064113103168878770491998010441271318541221502859556573569273624697496780348826836015045072083768619684264387514285886337410687916636072090637296672438045501012387321013042491867630980790413469999055681867819375146759959220651647626830564765161919624574062918105511497322235948159405875071479364602849101410051533218050426070379720995612124820457270129215242163993578116000401426564010811985975044572425217757961850254629083889732209879647582148795459373125701228282255124319104866430872044100765584361328827591351151199224387009802210129174536857428888402829433189373927932000159983946250736127753869846607521217925127356628228136205899395146554919439907934441365687208439907420728289796960120354280514681289470769810278988118068120097387195562638698366776722577257596993949003946709052061054456163786178849715515905649145646517153838456722158092833330311809945346231541231082851913279073407195405376799532034361323994608092428054999674249895552940459298545392357738639138763135183524396985679992429847874134275726388075903066776587668039938958974225896582395775855298221716835619461164944435030860241636073474349627585141246488434237826133750481559900704854484318497771756533837391994130230280825897634206749645533964161352415707199567927521978773044470949949722508885869292425108851593185020075538648850944924793634985362442992725909086202380889648712998861378283546465224487827318631856201273619857490623421302066095074044925675952879787994039765821749954949828316014847050952521738149565190137549620276029673040481690697682968555588473073241523246079699477208437356110132896133759945652741269404447822749016830439426366457203642074051812490225788654337627236376435025416038870514146185421728359279474292271888007915584461625554835550079730858543431452400119103606284641262457996130701934166974131404009382506483916756308314231881137051718000445364493200625257822723589932738531838027815437398373487043576284549750408409347468639553920808266476450063925122162194199300309139333078942571554569707860480487685002777227419270430169997024976550030550144621516938965181091518625414337966092072425770044582709076584043888343564161388354678846339264475742942320027588636491787867267955810111260567104308784076443869890184571603546435841513176439204545233497765701360072391428344412346531730107626983412414095118111711727787606113171552992631020516369659339071015890251790679902278630980965683432265234807119650707873896467960549530464580025086539308444341280660616099755227156486634186679425824615837505036771158437844194510155729214094708519717537955554471277278262082591720302382364975099081808516804745966302590066092843796608979381084903456315857253326513412648357684768108518585710125640990808672466693114845172929181766944195045308275255656308274667108726726435225694808832380449104875815736152183736358054863188450268973817286273084833176782955831400977247923678700251479877388122038437926623269064786091857908642749545003069260014130245946145139993541517955351891819185435215743360498170640392731998638238688294072719651161951756784642895885936383500438289250470097606356461725129998014428985886150010919789193938403608356455537097144197666636252239407286219283168934161628296878484971356023583578708453708518276883311689672119191593536824551842858880055970364320850135179695014969766516539273660014837601821232631607335348533681185220027314680644028355709383677022950490151582068187664142026963899802211047569528954337000677983206201533745921423788499027206601392040008937028309417113996578657973721779730397594261067879723404270044504358639913235659305931298718838393880117693606742977892594447373857553103615307658339523392730807991921300292343237388079474011131091525105651846932347871992481279396208046573971935186471721623453236962831580443452112485369349064160530037520348240299999032091865972982591628836185530465148789720608378393590376591975851178017728987489684485534944509205866885029127648556846658393043784228710998987356734796279003871106083744369024344892665293741869422973557761437129139993118391014914150701928009870572479966617500556377209904006972537531143063172283509655426039296736592768374986435460372522853989596077709094356769055586714769872687547434490563515056105479170038565683256505715114237534316424949509986195144876210505551407960897323126654719855704358240904355465585582528414548826898148806806331594008759392290209674082331279243398496434965483632715819794168449148358159074609751144486620213570994690288036488049903867068137267446112801197003529881303975252952822819922537763852389576234411793189197245995670410674375138932497510427736655107633663442663411505834644990666503437078246198418767638753004279077621918275680461162727734216917377014126120721286577049990120291579359873207342807715944543778129730266477533866201535135908914620944437272462568463693197247161663231419184548482743398356425678862533040069985486298344978284214490131591067638040678479440285918086473307855650113810673278201224899561585192860974380274994605059824120329871990149324249048242500640558029121617320659829992926615478889406046736752299856604834111498264196819140094794416713862229062638380227373336223480451156812418789346502783074785563433135085503404536860940842024752727153776495049380746125808076771583062210641650039447974335715871723524046163839996660837081894316225037057512967478302907562781815516147962106252613085964377117669390864103278349238404444363240100828153983352562284535933732208633647762999923782771014921342757689285337127391190121721517287342814169083074445591535353629183242959047695018402663818039895138892391198152933993825812674123694830214837954219957489629197649251386977076008359825378157826861373904506639265472492313263938439458508709371723327642000729929610734549364343891672948784885589541820802476298193079365346533617068963392183161210943584938671930383264129787349233492677146778766772994384115164130435999909398068293231584535871166334530244345399188419314108203775564771120018714537136500688798399169581685397589285334404876604155794545847761932631538138392015425929723190028155146037395578895902579891192915758933313189867856221291185933411756256365528153510522218026729851053070660998791704465433953476962010776942183007739792108552157543305170736347167345252347615951265376194408113588623105456856734413360634253972853405589418974134401334888943388178596938192715293143301767270345103418856515289829894785220471737155393557152031942364203729306068172913835543596068355830537907199297521493043202392313297164751533874469712819583768240736373324152674304462159110122437784583235972485745475294240235890766976738894551782509517419179043429594928216985254312081288370584512094934006921451036148249988984468125706919348054140724437296404162918042347953073795692372665189703844464648138013726804407965498138546973715195037609118261135178418500824225057973144080484044457485243654068073146899980759368632648467821752124804055404621153793016467157589819586743870681531460070379543763200279129642840317409952418581657676312520964274697373307226405305900520200148442953282626291655916364295181918682218808101748225018741591106708844892358584240753419111539945213466798958272652995107293350758636090715188237648278357357989076273478392866016459947156422931452977592498069380701932826499447005862429409912419079978027906724125140850413871646801231287178999682512294824328578889735351106608915677943388703722746851282902590289184222190840252194054589486310917374050558045900328531040519519127082814441114851652635476585475979044185429717908116332409533423167886807333119711943465830153679706612919968040014383102360008572497226226561802860143038263822373319320138613060990449069125884853234902072184417249318662276873230139824563270789290188839871313364943876658126751723047750566713381364354780166554204728116914312722446126454110801397637506424423743247883010944235376180874152304863620996200842150115262136923305162652977753367965196099231524168552433127500472339036601470386139053795098747932906666998093763192066864400565299909484695766986379199019365993696237825304514455952249342311688223894403324687297084271521525774438346928106735971814101401632403674280211363607253011092986531987690328075046933397616520070862528759570660721304909414248854315147715113161347244430409128245683179553967725420481545339737317657527237182662683663019626902950500758123422604617020018030874178203574935110901597301604980072647690670598403531254313259303164118436005059841964698496084337138325917134632308298612262605251921861557225600402389740546412638154473915074941479941204511076817880489550408515955692195819554913456007371809338366405591921687742385333806708133116666478103218506285219412580694057904669129918112805033115636539982625988150892387125552305529240791845524332719113281068646674702759500086880218173531298429674005465280519922240300047042412834484554871644767971558911804326860619733025733865056302200351322147346267779437780555000039739643804070972554300135822550360966152535227280264258158503228745442963456263936688178457289816927793022601330438671880178335241701065218935300542872531297996816365177838534403138654992600899245178571900234348489738613801017653268392481455386365667538575060953734178872512809005684444262755352037821450254596168985002395850268391406049384047711420247825144880714854533840463157239203880486342396440096710475232101124504400112263379286717749106738030017607866038214003923493921632938032165118028311694024562377255215629608580265427973879719075375609141309549347109463586412933958155254360825904635128434320142944989608004642532441016818915271755675925296982396550476914225628323721818391461025578766886201992551933100257376964928546007260174232988337348568819558238948000721408523186160178658463998427203434461177071681832279878645176050582329999370228699821176527463471723757131004046078070469720234200026202565384033932193776302064815477809729991283776268481616748506293840472895206213708820899300563390151403800722897292066937280011459177609176295385239848237872861411891872018943682711827689666782524448441040343072604690641942759715198709092606531438046962837320118909368285376159486304871986349077854289789370268848204575101026436804336081121890522571036021456365493868924944885779223268428068132388140042372750579267010489620811723543684749702796910058602254813528324885540115696602747511916732227870025986121024530558993215407635582938159427290289254664257221438348807225152692063084570593933640434927324957944033762260644984268265862688934977830062236204695312763063278219074831951708606548294960891198114136435675589034695075254624677874790118198403579982236838979329114299248590726548083121693469227334963982610850593184946914235603707837394712326228243427164487343400990964989455969100185691966069809275528187105635222028293042935731674221774106641705825542152373808178784345335998864258797329818537027357001887147786814430008333710518063510599351462569865993066075854344129783934400475369945441255183487876160618965696479134243347971399203000718643188409389913878205034397952922094161557078282164027991925105984826878997938009562735340138547607280054036851972341589031379382302478674159926077261062690108746367136646788326046321597884298327023658725872932139968340857060296359658087380464022445351337517231771814801625468890772822314220091147607040938501273137769584309790575220301929267449036064918989590386284227816490994886241898243796564232788500951266390342091968845740878298257501654615214298569895802165952970540753722227094166220275930621594463877749647412180621085337481130100563785488594992940505107128867491089669863199681027527115067144643133190671750938869446187722290293227452847943139033765187879097749732025273317613710957445299478467561093919366384327406710965717155801399084954440630753176289150996148794314920001865962502121785081949537670528115414483559860169625291687043320812425117818987123540931288556112810510568271308494426292807884444398025245305854070041338177194719720074817451781878744019374516403452746570358179599776289951086399004050238869738539328422373671923086060601669171437280418796918768737175487285405893506506912794258311485215706466930150774975831136062141014888950533239816041150989269926824399298980518226928883624898115494151180306334098128438453256774106009246873417193554401453904233707169364383743143014385543410949491547763239537609771426529496332781047844621367346917190170571271090098960017711071761788435549156235300188208222815366706396627274109375132617162187650020066499357170706901403062368257015206597102183507363428972382814107834327858468573241614847587586905620784199890934740907620000879840617534361726387107814140108133975573258452267819937180530655152717034986621294891595236913503335262798258200325297364099959688709087023744785463799969795250869657319693419686560888400792232555354210069050068549786634662690511219332249722630404835764174177842364642004232668901885187107097907387855169389272946897297869688537596474955129895562277058443534726651968255861058800018050874931515417514477995097386473097352266600166318580720483882899751665226597525907031523819502777837471892818438967156282287064625270952175176339919823564241251419011967683891032426548552928383810730684303048089065095444669678720425944523158914000656991197102496442612424828336912154653858716560968636137554387035546891903619984595848924877819089583098425014330916808410357857530608932210598944483556443703141507012481457846918878803085385405857687535554736697570838036199251975486674439083927102723287229541128858720691403482902585313328269126144663320610940791085886336852414753585409188231219089413342181949504654330657067006211859834839782104482418576243943855241542834769952740319271554887400126679504637796759805844102997525061078790603525848995619044326006786976301851799447458744677299907104512935910953042569330819923518563604509809049004131136518944943763091549393364006409920944794574762394203281281861724523268179730110547879787915104399876277486253547675206134719620104821425306924429312772606311802559153916852268025064614749468099759049403291183196629216813117542851282725413084971352056849030539127822210415551614299376371140435334373608981612703141930166066490056094331595827449958084386801909302695156353628215440029125615172907624843531657049410522516100913553339340052605776332593696666481699077961998657363801083698304928398310811550126243522821286380828647226884822658106820579047075909104771327824515039236018205444154578716479520268368573067718841021023924593942413940055116611474252605077199159071931526458319506679821761897545410104327718118832754312368851762535163995393089209781264467854658248469504683324507814861869643765520675746649061126502964585949262535985440823458291973833832946960810612925190957772890070130545633701987369555860276224521769376655352866678036678177197025434526728948757724926726481284155341320963916660344165873156248806252211383034241718328415862743860450470102466092274900559740842624509824514077574180046797790699416700122177659992519670577009954944919568592169030760332469120564707549614549766124845136577154981735464030241671433061250148041419823647767941374882967622526341810019415698514984771393722925349569278401175448766510194645516962801198167001742866987584885014025224091041960865491174686297791955991480574016407033063198450482277161922233058718211922734517824432310644053167016105729451504887644978357047289400420492607937935930247658328252782230719027822287059592909976158332152964145565759597830895879140565259600065683307511464514203459293764927833217314851468942764880800381523270912615627218382202383723503208946622944322839353123531539931948094406096188801349629855080661066553706084597916713233784474715395743281900169444587553885339281796086153801539313322916236938534180531197463992034419567175043450835060221605863122038354593212171491896528482068042759445772884429108918314834723201955235766525023223735302195164437837303877103912661835237558963955139553754692774834758674513731645136340439534784765033210374279867986994626738639653795381110191091759335516215348529373693889187028540580655965406449480013077153275400517645016412806058275859384918753407958043320713697491462763251566111369041730562234613432896218554753309634213158730258511048517312891111346747628515124185864990481122262741026388709832584025790594694964914581331290203368713486389411020985042617657794521261369190954203564906301952701309373085306042152276962123888945751825246555542804001500233404602657236524604449354067712122287312104581535863730726033910203919338331532691124529166195795932976456258590352985052695821915348188372961318132001136431557794791799070000611370399032151574094389015299541483334787670563086677733008409103655432510188133536947877209103685710003975438878152038524182255031948660258710929819467626511658935725800646677514014516915813503015389036992383448013865299632768195836384581328845723799591487351987993578063803495402797724731956161575849813769327125202594115302139299638613204627625640784594810233119419468059512111058436979205121276867005581360261960253881447262833667995156079726526742109659417088416232461593253776042078871176051050734015396631992186150933992909093171145477140084182997965049259789968421819611541553310311729619962518511662492052394405870163849662576623382571488739330337068751405723937526332717257962479708568286122705716621623022546282261064978898187859860817699330964760084354291879189238932961529983784147635893894940997761207869822937618277387680988768714233299223925656316332722741138249664588427660242638128240903799752104813758517794996918049289973746830990356651908409610897624033918495515063785734176904897978419981987771514519555463131105303095768700200573376712803624934810610494632059518011947493083050759863447109111467925108487536119577716014087514065554621644186239561654348849134548158326143520548612180511229260704620527505357582696692161793136624618577836489210067458762297099632106509223952134855492931516162306379511479840788506553780649868628774231588620715628417905678932126020391396105892923287232937662606793709816868172632059612643798268903046920403541758641599465873108770457572872384720376052713065980579194791276837515323413277358856651525603435599191651370337999098238648305657967581121884764715349725982826181765660472482834752473937048449352088136083237941450956932391032373221632658986922492977476987685189737090166190007708966459422371379693450643107795919345691208297889449043839164197193877248536338386132494837577920752362109290057927941050460480920672402272639247991581372761478361283198612763517254327554801913814660231071611917462893939265812060586288139796762419881515299560617711535993493468614479394134801784527278794786825180393766829650298306028378302406075724785114747809010323056549230657484283555899150675991776367307888697774937024161328721013412821177632774329153259939948115929313252698512706356813688295791864365575227034098783888843862285282589241417531151603750569139773154162370772620788416975636796952059898186636641424928305531296825616240413026377803426162369265144505283900310622621097320359479051860368823094685104233032213762395570703923687357071190066261541226235227000641706609941812954922189399151531723247552408969128299611226566220591239958214608295711698322634527740641704188212681777252585733774816287930703168416006632903167514972284472467078908309801841269015579850101457891776377581755020890855865559827490037412137900187476114604303102850813835003117403632325918373159083699373325616499290843547377436950185928183296935650388150514398459490685770782564986311768775409415939933994078456814284960804332535216253181984347349097738159554088359178979146369449345457971400363016591793406740049620224894928207534476197263718879133672378430152957139539933327095289232387005313086704319133346554792785752012973257487748073624594450084603060701507379323136201003148253688982413896099013648771195172636728098750300421502302490558244669266415646558307939347296433447496644454373543460086897551499695725430112206443921612869392460944651042366606565836290856117341645149629658597572050110889606215808944898836744879282671176906428820989086212100784787943316319441315589249156260279451541178811572799514517498925516672858461558615100591517890874608362055008876523405778430767935835520039422563164744998715257225886004894785434569982696909063000315565679349457035303997105124977705114247552467890584267278278104824059771060028653189342970748840183659902403110542694155510288436354812657474500032812543551499143214240117601106818726730114649670863260022484669697002342151287427129114814443475360218041068620389129782426259116803925430193764061140249951809719941015962355020009902017162064605222929742092033450656582893142053713352209907336557724532389895445391554860719891713843255057948656028559881435898853969902287463005322543167544862886762706721727622521392084752483872958889543495016889195625773552990565572481548421471968309457049143466977256763793112750589775296159736144338019919586130072511637518257213785953369971703091622054822153693078397100334716980689666759771196469402324250981765579630146484753784574418463745371955511966387630895185357004432530849973891946514529921855883755828420932232687365506174748042419962708431194129188767575512940165761044872706129283732260252334838998264306474287123718507849549649326241200166247913476454662950277112902952950765264510231159220710815424271200158165951085755784712211000501442165513759619573160533852837526886374477995700417951629488001048720223165783102136280424829615457129211762732673653543149596710920317169409923767148211366069876342802044952239029166249701914601949399293259296035847089085919744300764293216342828463412085880318811009284957236091929676980734095034738210809296841299009047309234695518753913180624225629987106863890403245932426968962049579592023431312154371765103906300679718375655821417975070662472944437539018145831672307092195650367293362635136971457700983386641204144588521488789659731700428309406593241430139820199018324394862188827622076875508969546518615454596133263733898535756906166520144326312811440090724608092026220613162622731625278748284376749558726996343691806961795017899035672525961058938517365159651148203129178393153767234463418482259068190037519145908985721253683824060846564420356283085860999149219583815480992878844267452043338624142404784548234056683299320506215185445330302945981257990491467993209808978932604559558364426088993195624576846513923418882494499578530664461592727174397528695365026901805915260357434683658678722144786192367943104243211624478583647636671490592700370636584800537361530909934028660537669704109206252600112846045687363872072608234410646083846062674609084801896776189549214769186822229841945130907379194079019711128084781668790790018087705462899748628220262100092490004573221701039082018666523685720483439910782714958230854772207280750866985168337994000289321791663660225100721560490885767852556883555643287880710959140681019906791973158495339327257844033038305232750547743140980073022675819544354800844335097598624481335515612231848078814350167198893990982416945767242257180407032282928630148446914588667059405431334181092114364592279874114381176901965794233833050396121655983043209217450919731790700516409090343551242078399423304910811208198425057202166773063339481098556207105489813628238986736129441504804794485942084251739802126528706053245897787089800473377032671136756009147105227537013826477992610647312921185520728035666526561036786748620729942200368554155392244125719964143491170417315221881816695771537596001430236649325307283783676717473892373336781307902004950676013936356196390443896977263708554373897994411394674242001353105233488676026664712694565537616229241564833882672701840699172615604988940456934642028152099444666851060059426958795041896222937147327391545964533974057939901771408824365880571646196927088820200938188193999002241447659834889422651885892679846050818036960341751305024633883029255222335457008472692867163479859076285108159391806155798114793007410807951587077456961899910815272413274187413676540116051534205444637918605477063166541150436036555252278630564188897099929056270364644712881947290835690393670126780716935125367030682788116286280035575676307922733397722969529771158322783047184572971227321170064011500935089706798684465659305753813228215181375067996959455040106048487747669127401793909568630153170732421029033204982637461428545248329476035237896681889049147000801873727919167718506862684988025357785217730966993386017004945434430615958379279212853552204735610555836919132951735215710484571575831260217137857259768450385327957639918648858965687030794795398436534308556324184311528914144980327563111162102294845768556770925050398380357376359541343280041817157473582655791675586544589276921973458364708174622835036066673598334686141599124562133712743136979546720339679520772030298046879820616728258913317337870532086228316221815065000473696962955355972660791774635480925067285077357821450789644845550319962006963188239028907520247877748679153023005274318573184418192453415219299357988297862050554346575079989820992282105965005917033472348643304717899316243167593625939320946480107931703245692122937895158982150954913472932830065050841464345319997909604775377099038621267739387611266112474049083534031698997851763711655554146944293600657990909557598682438002328390978665485730112586392203976103623028103764600088489107649117663017800998221299990763538319759413652215684620106850342986376176528777995318429150451574269363658444284477695848694970683336143586841749570564278301689270386731542970209626510144615319819103778724283201851210771486783435942407701567686614132010911604432521882691647143606358252348486210366030253448892998255658760259849933660405437260831072924711071922873527078723468073400712188511071325515263664388459351363304652601788515275331495896942421014418233363631845350527446493483911361446497402288277845303185050160734024712320628140866856972530227512671012870561706571253217717757975311525745330125618825335878268360051725091189716207211538708460582120162904595205865539703478916221321435614730663958037426308040889188303267669161655074093482849078070336764917658408096989389096049084941373568083916060612819015656391299786764371611214390290217895021959980865854138048483798483615836645384769886174943114510283464149432080900805506842192851995202312813327457227786960827147273793008340452707450789870437590391281630032485108872203236629497038886092616496782745023804193617011588804987958479215762222458437577279925789927110126934911053376014455675759752885698527149617553690301963235129283110030030500913001908203354823762085531468306489569989382760599008327679756905262393362897863585926300014905402609799534589783227603281112619236086124801207542040519459108059741015284322324192836669207918336270779690274098909088434855232284677551984108548882496719254726543558711660952462362264487068073371050327165117577109016854785991367664634083443119265833627092108630124639131235873725817014911563661560248379188259754424445004151272327445461976243881549092218511104847243684018417817520167998172005619745258376339260514977706961997731624437012346253712910604004510401768968701017659094723835538470284419223326466324961699076475197443683003431331735814963235768358731385516643044602562180220546452898622839520395465368984853562408727047780844612491373948857016998883993329539120774676216150882176574736208808181193799335394416175405599581809974941401545448272498770693452341980624922560693477936120652880519691290315127977424986536145952619719264114609814891920576300847432139014905731937933039858966659600485678745316937271543203447122153273043271872838323573468335367081356994667972400007322666258633401139450273757435613494050013724826712982948999160252507038771847653690984933867628265045314941787589829726878557381864021785897485959403358553950638089653443758940804052093604970757123174616427745655951724273871530914631244653929369251792737368356974308282246532266121574219279275617180828265224435688069388810697853341221535507730331594909181878714216647268281699502548792630482584595606395559436660257479577624329499053843715851581350398221342094646420839619053672938617522972161822092679073245082545324226193295130892426739545770111550189755941729937016799405488369059828231112739330554071903235624408198897427248597938079154181691750853803061683982309983315850863406261387919968971033904740866490897325440581392163755522501290047640636241101420572829198640765307263854632202039780638478506653182474400378256632711368218991284385229776053279851068018003218029460792985519177303070734382988420978542189226001632456084464327075460557113114964906701144953971790138592721992680183205545535757839237001981918381688299391389789756166050968981343096485525761961262334170127409054573744027707536627603872650074224556755252631939926371760723701816649010655029354327468772717310048336761850394235587345622500934182334549682598816426710953169664086690491869397177778133726463069822891259507352608940348706581714987393320485321326538281996908878765268590292494097047166339513498056877454542542236096277789576615850538225901878789345647226196924917467749181627848697706366925743920406136878922992403430092096511349863912014052124851242969249770941809729408573764622083302061469711348170186993594287694283969957006549673458564489848883181768738930405197224846580227488555453346575164016838079085711816252741852878806810041414382189223508666123771015148368053674054004477904971881165179430182308923967440576159210178476120266353868286333145156942172929612666636577251085913098856427098667849789566876182925061331392040358157720292565406605319224666607557176215525494822702393132165346834650212219366738340725249998736382052070482823115523418769611277682984743156293326907192152185755571087720248985020950496741501539062604448218825471413255078582200113737051099132153145729819053501427093927136088451862823566320425048504237186581618991730835210301216869811866660904062222560606577207351415947819081563375605966324738680128184925755074299318924907397891807423361786160203257892670438618575962311131416883054914602027034963993775432540419391603297823731740466776454744094196153078084366762894308922138482573521465957509697828496547876813402748043362496372876827957422336609012715375717095216522041000220133616221153915106467388765859146690822310955166684154853110117527666595586837560507399816201148902218522813505233437935598308223750853599699606662900476338110335304659130813536258365142303742561261423148278947775793637659956158286499381606950464473616225089692896092924844165071570392718783542176086552028900515663625886135823123458071087751305347700412927844175708687375587837437580264403495636930943468997834365337737587044718119606708876088774932831154715100537309312325050549521587099751691001630347934785995983399204791307055142222149498808122232529075498911824700916430948883680645272847133611259494721831791144048749668295624455312356920323770380401331690371110617348452032214805203634110226747316651094964263598334513918028406963923175630109411801339220039207740428264171403847502641657737775659080071418661944026952923454857848869114400650701845373119557112843841226487081058816149222750259257495270885344547920100874537010762805699888003881272431974898102196851643373333762480852347750520570509081426693500796522388289806501644589439787733939448075566533281191687511418278162618773225111659180633102891836261413771224914745805721385414336252372090694997200851095833151384927112540632321858582674154897988007671088809383560165425198524701766079836079538951589023678027791682507713762130874942400080611425967817067616190770952618171495591766806043447583032001671742442155596191260957925841001058950379843411597108411425114575496745804373789218189015122906196719347953882540866065926250906430354071374874346468862902724165287182103505306799312243590241524209586802087085422769323222070724167939590240902309040269057390859331854364771831850881677093438077085097272661086680219773084861895611548468009756671174079768291677441367641734859039794314817596130133110006237747308259135681660473844765811045956082659479246594422031970469776532421297849480071728910762535963113272197497255997560536927983794276370045341320179369240522473930549249571805072729775247681184308881870823636327542141867874015221994244848742663979033134310428059153307321310115029474414027707272746368872272782034981450512957848552548986098941725943883539459833814797289156725247823889905089409998918276612261214425807982859716712732954504696402899830169612534419436195616968324894884406459842623924567296398180058693701702061155882615961944770897664344853034470106287308591549017988518245773982211977909721490706968686320680866203232009185555148312411688538774569172206062616148828636592025760454064297624889061177302766543380608722887810901025582351225722927253797270346024413357536957751602840676509540890552964480776807777568396650851465946195900462677029765799848705695030933822883420030261990537094310945344830399294749535119653079116405712584641861887611411553712130189890477051756308087798968362655532871397267536265226934588966454195355725974544382485703201550997616309378370406829783957264898057169669152416259173220836831904816225435361637614101340497860835826154986067869237065496172675235085661552123777407582556430342235935406846390484768606798999849746486451886572147073693393935944467339267646601506722894567327231180546679068441647372156007328113008689422250833047832252253970286625434767155024256390950291682707942883911171116684623399276221309787633323186598771655144174604964591883715669784513741994580710952119481219044656673909000140915641600635303507778848960900472738246957615468632366083925750758168066567454188892625920630022119694214437498263148105758489906419350318767765314089045285023170321165126183365133635313729656194271205480276841957185739419069365602200949698526056982341551130785490210204110249901101795716277266977084466892949299216184867540459673659452847580532721517984235132547403455406502321837067213204700150998429702440523163329124496977402145566264589728463228119830906756758447787617771025284711421537485993395297704725892897802613757480901485188400647426843875404058919945924901241128363265939374536922749627368075874396917554460750397888294802656424407686819089376764814358156947474286651703371454137252390153453648727610169019880116106685344371716188680815319799748094784261246035584971271969630911451934570695065812529368073836024866210213894775683913660909836734429902583344501917926588552462812366192479309985305541868937921936263159131652815497935361466069144409705424593583646563508021400254107165624019364785142154216749223728545686087090449020096405394079578093718776369023111290094260416002602990811850296957320132316807845717247007257798119899782348100035207417694348257057074331718215147588286546268230374556767109627286590931865332281603497108669745776268483753060173642708963424301022527731528439242488312184657353553731847038418885943856070699980528207191368447961948987575041196122809111216981027469624729222675252066324204111051527059444347576941150337210865972078614113575305308593087013810478746563977294485104804158919423239541714300828500406459531737675701189777659459092915873362546983535284503478106111750403770697110670109382481991265095916050954157685914998964295071000986625137627701541573881477884153735480368822737581848188458240680268957177376214641142826664243646716252461121757856009184781552501324055239976913287223092751819373809836526612571378593590992018453074134338467452032238146855219902466789505624752096687388991678338136880275773949124165171459940066194538954417752172024479199057198002001288246969780972081649098237003262126438636016413160815811093893607352500306737704987387885709427031596021210903926974597386989041534691031951520651360920840250413476115689642142413707830931864866701202681117916098534008914522839963911468361639924809087469797240276561709890997839712227529843125392525418518825518486532424091086988917102756238475186771139785281159964478207210214175333660369009386466435151058106662361284381095731685825178285022292048452749213849957977065224805411155997366489390606922690999831041497306176242486553685219046879461896356170974374900053198069671558205791024489038858018950454631555213071586827072265959983101750407799042385350558566845925653539297117843834698225165181977270367286698626800538237828284588417135153660137524500454097154927338013734637149247765219490697251288585361462233536335006196064829032054948275829476086938263526244416221154796271945382166194314932395028771474149483452642036834528949284691337891775083199771352344875244808705389729174342462549412184709389512293284032516016742948197253701265851789946762772556247146486157629017544602165386776055812958905227455849131016156621793344016691103173679631638461906765268101238657771420387403834535968894427624786271648988409807750948422108628520677512959219516725689810190529863364276144445443239644886344190661001058052613828384471792301303117518400710054021846750979486273337762200806477147124260921066096870489902955208258969995684110280131448773896563723072975982899996300744457508454928840651137035527528368349965794158932123314166053152000895953426957907166139265792143783958196359069885666712105456511655617888661160396506045775489077321749628197997980182889415679128766145538708142052419953548643992742292300940919692089928346232826295445732730737219586423271027241348642736342174950803457261709675788568826627952817078200911723044956338270276356249573353890879302276244263855056577310561390466914458549354353524952709088304661691140520910243079632694244329779190429836778818031481525658019219222063522707271913089936317027802549428475169618306786607503795103945565301593112885585613654153659388820148539446213856436502918208885710102191141619480499763943577520088010143778572164365727901553896175520278019419522041142286021476535433588491202629721623680076135186947465215777952071592441294137519426005194070957290072437313708245367067563992741631377930830511446501491715462752216291977742601656633281953063924219000542440394712215957790168834039107026008292890709180794960699207079153460559985740495285448183386249650023615626190157550828090680597514350439019832585808499985003164584192007478905564018972053814879996289651372274902620569308564205754398164479079843168272746878295421952501550939226293304851774821319893665728880713093776103814244892487020094943333208465775898727570401618482284457644162343868064186320480709642743364706956649520496553368362816364567799154719526802053891533672927074441324172293819615145406185384052169854205516579801304147945693909098399306568027481068038707943677289787197433122000853109706034713478352981319047683288593473738179080995109855470081772518230821488120489940209076072375885269891461037286539513514333992817985696971745930705399299288127943361147301823318827333479674798936159534750775872869574379786671173902745947272956692289086833454804111062095268785389493550923066761217056708386702546481534498348921283004944892356464595188595546873744010186013681773703792365014135002264043714323922928541095399642462401501389673905035739717508242493634329159264237922822027857088116909453421028761398565520714375177040955177053709229319372716213033547822336299150724628315323967092795796229171037017753538926833625568095193677014191188842928140366381361305020785859316560776592530501178895688848400705104104818840625266768937498332364788591281788644279203675781292467605268540410565818558421274686330622068545392297767610121602417470919526707430911946322665461948521407576883727793314809336895795188008014592577633181336876361171138964700181263568261669381405605720674183612175722845461668505446416095468542881781597014500184197969510965493453606174774532533828668518944434607130049003580881690265842430462229192488634277957601302391924407338154296265287031352951357497851210901046852996828211630723940249233400350204029118150515382742152352876451693318802191892563843053148700249017723023043798334096332731435005767273027048502956738738176412072029685034644209081732864497209878417583107703527866758481305015485473140848818214471760895254968727433284856054494264135419820451181826810027572886406879972072962036163488130571082231459896780148286193635733304886719612214053861947650881383446109103356096396181318730081263659697144821681054873046581415468101792573261157408319747481744891251114705604953567110471786091087990313261935820250941967171131689570911962453908023672597560825832551096132053464214647041081765023583447103818793179865605253956031178242901181213252811133132579786506204613893722929299552719457868574797572787742065010259649266621920580008434223802109636416383577673943337065340786487185369162290018660455738147143396849411004550535131903914365246518653682787972517147838418040142022774713253926482198275955271615371225393784319188074600922409654850442616863516423535474466928821319485065610202375936870254101702268859882161680566669812302376763038630141333519832642466117930153719807491244196299344591856481113109012351414388853221105479154034083727484416711589474846189825928905891585496879107875094700187750168297083840407239924955433021056267708928620448450100415307531205517926734645492056542123887120708250493462833910292750757279050614103569158613524631045518134214667312267931889092875772557018824434479952140612535902993721529399265394338425253987930872097595995843401047266813631542386964980209689450604412016433696928641623118839276208179683672683858875862303232604598989516431916606676683174288396900974285734198073643094472820114677473530854371208770100581700540304859782315059830785148507440835439133059159564962505403754728050680749676927494684107334710804649110792806909085856709624209763295593323244717723606701240459231935766384408913386655326086759383493518921539595436970393079282703140156001645015311589294353479461096181738262260965569275339771084182153683599340613534814708659315605179488311300846793681309936281460328707894727559201585825173035811465686301273853075293477293752626466313786684044652342441500615912558369051633098454666001972844732350355561920348082718020232196974276545001073247693711920373443668396110254609705676264494570817796109663755138058903584394644846550863755305640652231486018285322227826458746286673299940788983909643082548998442377307508008698788592595491682687280666337658355279557445833040872091999209572193128063505487690368243113787946330948083160182935724163957671702559710392175519973745898169108785513098373536319296570879218120100579986438224741816063005351594516797357798641300768359668795148673790113164545972953442988179055758560822010029932448211498895678347705252116545669239148088668464357811230318293752488382042108720963835378915695934733856980955234834118339017877402333400861667104870075730137371020540511801386456181449053955935901144284224768073595854402116007964155536689229628683356357137517873869685784644375189602324205070252194904005712986448114082637116073792808946640260468661456868620423384144872981884594852277940305576498526491611116871976724678273675621323703063425398265994470993773557929555929988183771760485731517559120121445074081858715343489263583934665799506808570079095184429728791690633270398585260340898576616654617594291913052095995082748839406403138748414104863830704872613835677006452242467831100283788588250828085061967005976266644505404957067308997911823912505506041382728729926491630687922637388582717249937676709096146382977120651742871351794249913709842530446500150776330740571815787978457947319377220520200029652975622398194642096890664858647862074985148310569992999796819219454933554431239790223897729797990191657521572975654987082085405790518040208550577211659108269544501033861950035738090876522336252686512664453164760404508868592579809369197815170656335760795352299371660527786951996667193727725377905507899713857575548015016970602846934153044658460404741000857434818870905520548041973753779520201782081046648548636480479677950534144657806384832945742745101917811840434115492670401158310950555345203377633231370418043048838904595091111003913069612498454353047031053989345823596820291621489684685632713465792203716216900471611719982554074155911749039797967345870552320480572347583997890312256843731315057272595601673986620539497748077393818663722857924977945130765119498084327883085881129952209422358437177778973794368558090096042745150542915263229776664145821274645966130865623856949901340699892186435292034287120361527605083861043331126005346865563423533944627853644660269823334784883213852815910656692634454078366384003253104272624889426785236170432125582383311664633180620187834969488139408012103549921478576375199553448967181618114650622391046604687021821157150560315185188403008520644338699610306498095461611466756531368859771934770821249961746466558301839955743791316018363825326011296123915019195401634505502648963771379296241069018803969110218462284590436729053573454475229331357263256454616544932175978886856491790288734655984132559269596940718447353220077769585141172518415649581139386876944769699235977262556453989590969517301274988431571528846720577573915915369595336616782607486230255949144872694438484174841191088505808055862557151055518909712169778851035876591459283203093564628523585030523207919002908567911943289544703022597562956800617837855758086775737427153257017898174351905055715942278781313074607778146436578146446192367626963512064953340809861374335871108267432062668944951990309481609208682040145656621595773523971464389065660192953529328207105904642640993688927961033332803619108743312782716131377718416858670298719916199683543702714161574858479500243362499346191955628251173893127453891287967873339086617917537438797858782832043418374785490247725567301211681809261045622862939208213336516300411205219733715105424549863656205355910759800351145273024727525780237243660701906008795422934391950320247422306861780034946178420231181841071984515922578761625588902042370087532015890449131369872817580281015776319168055535801284010103419080623092548885010650868414014697161934821813628753471769886149848213988716651648217937858619997959081376698950896925711639584244906498670698660695774364061704215517592281904719118731746030651858001168922651876550711946272351221135535436719063446050424913012545594713726457283430353068521810588976027689076392320917236846518911423891702341784609705405565075397918469988051778013298222049130588153617403432567734075807390172163902681543133695393712817217930283024623890594131401698041843615291203324848773859188611094536544855619662560992124315077694646788140438759421938714719552163444399882355674311041105364436396009308975796783169109361177342549042750631487653513468014182379578195735764238767899172994168777113047837119231489688424007120652483129046527554023190730094258215884164538408212848910372484105706792773946985158484439878641010857454689459094564376656051098255879180318867696298596226666315420706128541772208023522889622220994046397975680374443737835007620354830653203135165936725089893344014901780009427924476658307804933265559510948143022436451225627913773436087870574242809737738734909337831518316246126313146242213677277998608479546671228930002023802098800650209572940081298052440500641801810216899815334336097891887276014595931625923015538187476329294868247927072438143789509028778096403251231447097328200889588407273868778264447159298962435514124775254870014035591313855908922848022837596088619892049536958681757321743997370732356989753124146401799488152617991532143107396838755855827222520909679210256346526305088509592686256610624977923612343550313743067140926898725323098437812152737710435484518712598011340120170545247058776886939908770469304471140116543542393491922826452004566068477456395511759172363825952592154612550717456586111022761607375788621911249927093848961030391291175383180305465953634744303820633881275987280080600606147896093225830517920832199804489979561686291877752187303373695631850745486043641491994060473331968097759202962713251495987188817234612899381212721345316818765818874756080783435256053490081390523069877818657038055257070560698707043311788715067013929242845454067362953203472007767443190280180218099939467042000337469709009830502945456162390591728675289455684753348730144240844236759505543308544114576596347535889679984291737081525073333782127647464719552210545309299449138518939327761402312903012763138393629241165257724434214843439431527838059788883065767941544017809617824307346109299151865012956665236875426844578049799419408760545461598662474767520708135825405094005773972131665487937214440639266495692221673290360365308154662828429598993857419691263311762389138831721922435312165182697635551605456725055801177954984561973607099518435508201664947220229332864548891087228494496462150672634398789752226485911727576765703613699800215791411635424211774879937787459863370845530423587748825689472417750714477118421573320808592362112067264494734031300322599806497288889136647524899816552514326424040795057960256697350267736252056780202211765956976072336992660227895966314712616273080404668015165573798015312639853809420677432082980295914778217832834199696543086992867640745654960201399187010714970865756435409261018703831332150385026949317811030463828158144197775035294098996284702776027256839757499739720441610821864466566039293195841313545179330335055596217072239700582904721116596388426634705500564658409795681744292026913961095185993558465694769643391299769934727634839127658387631998199547623698518567409482630808925143678996832091018157115058097301443048973714065898086456305342730914061266477488833896901340252373578846654628677992717676558445166653691045834705549978279848641839023728727775194327236084190677590753007113882690722808839864690776612430020385518482263912300521918707061962535460672987929504145764493110575304181747347235118272409895550265444850911532757798058597996751443105468970792600043098967208641803404228651470878338316679522913903362939434352910855635238708456324687523204785969349196964722446793144261517361660129051166666309775843300492863811145344787427648908820964596929917734436781549434396273132998132558059511490437022472522102209311408117562388243206839995803872130389391108628837069419594171937216960351511474921517476097763031315671071792801448677783857662817844674193927286470177609844160050723593989188741318915103191058167172203536078634719862118858686365289950796747682136766839209773305504681129813753108651504261741634856052841618895218640114197715911139928629384689039751993716255783326493431789488135872204337069169152906751090242015540068624742714153024874932221088786557638684473129738912024275224992242985726467301016542763170576802422509355185694798434656072284146065635032106704683421124387355201999639764650849004293979740027036526849882583764195060627641457369588303883252106526170288431402782907692004292928196242891817435845269862528172255264805294756884976610530224562617173483360381987818366486299144575240216990634506285113158930256297415294589136304350285758419045627122749970194920276902737015909010990450081984045946168258536514857678618100671124967734397032645008146794058059790786715697847135441517562381978518905977158161235990947111276585483542965568869394852091585399368447585509027234246987377361619869660339877205248803317440012096722844710303217292588619371000541389165040222354921565126011139290181654744198363653430313365321502361226470439825482682279004011173136130860338111584465110109408335840155436255227361195079139984999031433130769797707908254603957958064310208928129706403304266767572968261769269449004418278394612678941817743968331118666679469833525015389048326957405217905469359733419868998413169229893098226712004635256832201274500536590231355188506114549410314411824823720814958109002327155902372940517996797770134651377351366662364672858750296613001365458718369714978791240662376153407246213449176870031912713924525311305474520102780573949173196475211542189663580963701730565695318786517609748675981560904659775989234732894166656254290042107411323659938843270158722545666010760888385713450768594724007871581620940530685571681397884040068750048635681413629181823753731399014424727257832112759206979067154204188879777606726686358479421643391338635015187672724771239854681106595356417563350209334963888310629688892996293114673127647186137073748313855145926937033403346950324218186872553754047752484768024863725977317629083152998723684146488146311541116752701607415662385523953280282784684956152415935282084639229563011285681444187533089027951556851746509066225279041837283841642105174316635384409688166349238195324391090412547553042727816097414624080833223195690040520918977123818591005701364485549743434872020032567836529708764475150751599261345300190200493441574454205833299103575755608677909639573363261644740905271141523798611750852460900756279066354108897177713422160642261292382273545890581808882747802023931651232535850279657835587816922906405703663145545876947405076954339139309508701584927470213997477885574322572392272637706477917720903263150063206630400660607698076112911467880208334930503805834120810086972337058385559231318928819762977567852987582750959935369948987874731282282353471905565436284524901024933907761443744048416937038638332505493091299204415719114746397816479222742380286443768636162669802607848308523562045183744557416137821453363938978315852284432728060542847122611050447861691772701210539869443532694481051143933398289197455966478772296314906411337561923271995763240716530178201145721423798905110581117492621006182012938123906968589029333978932059527940774355114917245236761640444472666671872667392476919139706799184951892838052016809484660081573484846016065169254690852077188396031201530330751105318639689542266741910972455353709710806095115333585972608933701795369353888968323213928412915703009374121803802926743566346204359713137619633564650502789911563721105053822979257000821657139042053987543441839046024477189033501284708239731642182341645184452303154757753460646371166351693669283916004249197245227070862617253972136221401846494523253348235291428036428147133224250423492876073666883255419763467364655175034678291694749708089356853803907017597831642576464520509147803287478764646141357800391799754637892042541015640682565097119197565408950076941417356505777260577715303724333693466214291236846209133370415483746360841825944383222983568765298020648989667705881001496285854344054804737143605566193083505742721296847421691832202357527581663677988014423661923319048707594762458211811112997709762623424596914090626448193601741406102060849844575776611600470841089411392203833469716349657029485493139962739841436993810784443033773285689503787241006122683882225841089648272320938371581914619106904880605830986383183887455565667134086459259758853116253625812248549004027227121673450890872051637355852476938237148184777411252387465826024416417997158360446979075814513985943617452374012038165901328283521616794660576713083561320193243428300951339822782488077258550871520880086848931573805126965297887588412808556813893389902637780719181669308674180990859233410053687087500822975619181217398577851446295247023392801355310172566845722758397123981652995818018455441066315047322232629451392037804862057611331212955944607671074903597683160337617873112651071074165287903591881526093686527882265242552488442490785689534806417086749168006165026420128697977976323058260607409776484761579821478101308481097013062363513376657132978786886350067371823260124163369469634037200279785479209889950695526537808366061671301846618374048372868967249165985251879890381390779116930612032712599690545744198886655424531838958703055314951849524065795409995886842161569562870808790303228050781015746502542405300011233265766296745002144808894031596236326191578718780977716419732916504719799203814144264850556646782545362363795974507301089398387509846513289804518728976532442700306533194759501689957348941783724753327470834425500896591060284454304826695359967577775268450045772706383235624960896615446719465744745040146154362685839301795855387799419400969387657165752220580701319884498580628802610218688590706644095833550584593183115238067975692505215963582632639893185893583878466903595601882579569057832098001528344177055040210533313795008464317928318054194957532012608202120918105282260960881531066094353757090793932647072324049056060301684460669477008385754381193302912743929707462462281712195101932300895956324762211131743716817866053289791025435914214471975503010384549049647304096183282650991357645048795582062076381373746030832166488158418004735499685236417927476509642970940882232766815261967824142885859138691436155511958028791621713151366577765644044244513462542602816687685392570061503697428150818732866823191384679151617422071110018618148752334658106092864449320854911436208309091878066589932020105031373319510310248112409390033398761918951499300676023099173454636259574461978701782885272763360530999806778664877915104714680160659207467696133515283896079513411538720281428880078315456277316583983830241682495915996868196159020305804885736011229239812819327503841742221162129774853825119681916472772859061635491129283022852561831293574702029778571732771399672214876727402040172641032560930384660426850821456734001374252686374819663033700394195387079003959505860513507509408966960229039086147978451102752745333914844117804804356307082334073236686080243023241917166287988514502969612029317948315012381897999699271213883194589570254915822500072297382862618398214365662208439093301748561088766179450486909435390543531106110134743143521822756089703619022737189713166424603228563078101213302838071084403629049764834399703190818655345955690439574437471026170085658756318128571157248962199617907323970228970916184148199086758311159056146173853782736724228002053064450207138309692257932235002858466996077266873040170980159714090928932306995495900599242938595860933532899501051657625197241142606788731207476863133819317001676701064586309278513097648608410674613100871089325882404898744337591908330550216466166750021170082588307277271900472016307895122745299167221414456655865054594504150733088647346732120326710127201867138513705370140092964555975127309450812744037502645808795555659359906064882564368077718106692496291497186515244659104614819487504565655552607518839441647321128101405966846670421466754516733241400995358436570356427366467275514985251987300720255245591966534479487638851237080832888955065243078476606348672583827240202443323451043827411576350812633616590816326733439773787125278628451882832850786871717152906741773245226814293280593817371917752020669536992502488247954249315203583015226416885384457878237647571277935449156984999857651314942489970000604693196616907329891715907113142623449562015798475121724647013907543661940102600968421087070108748792381178661584953570138146640015530913126430741905373498957340405177889048346611641992919722650068626460376788609283985299492125156358021861125630999711964344505947000262391563454123676044494761271525584185101234894798674389363560338234915540301655571596667220568825696564200444676104504621139382779139252840337589954906925621458493011470540988959634153145115689152626940181072870381012650370421926358211963375681007055568634295714105081294989535294882751196933657399473485470167756585412774424559913478590917951121473763531975199639596738985617081654508992555690762299998726592584058014263048379426317541715986044755774690738466836473906715202446310033091826730181312303774731345340714116042661172925815797240836409106194016999165260943796255240281431451508115063729729904386415212437873430328042222582574756420753214528252962646635421706666735682377275602143619786612094576814230897982674516508753829472078897434914725059713266853660588517254122152812689845884510502358848489369989419008359555126699520280819523888083805021779247898065942083842476097761347003994211134218635982556712579004777120694353967995883662859838677930069394045602503576434473722436882640156904983695440045741409344192597095376617744764589346018939969086392475894903705221568278193955390439473602240472518290404177632541887029622679212295152821960408697745117676332074254651126223803077853387913170024232403456270656082991087801038779120494243661109778068728934547743389201341111982393353906830980476159664865024314275100142220900869798552675973089234480979648818427862083614794539579508589301962466524180029803268097727118559726425892811814754008422876476946009498860036885683810631104927535606207296518126786077545700334847142876188428933499358085021448225476706443958100712011754306864976408626716584069136861564984384028688212356445950567231452762627809829071309561366155060448585355881603558533015181832056983556246790942423919661902312025796857164803720177324802961145103476611384043084260738214379018282423689451989006246527991398314557166058390630163113165871010412430605540423529490863473192240259255683291666321364486108556666959397859386685323768071650190574234237923619996383553349311818426475533803484882195034207652736692882815830282157042870072761637034687994038806883680731468793968060881768993512655576801006839733651717234031598831841875125077691373300174818955528851178668887854353280892441493600165050445443378454462978109744046915842127843348062135338270989694624660209193846671136963633828085940220952356705710531358875434045726121313722570995493793918322661296171764490299785185462376006059058386294153336536377879059559768467423397608771100102532344945247610828937436943773548033733069314146578917280618915273508744267055660092807847226815171262350453820406918738203972465230491613587999322896621256207034107015045607926346584064588447697645944665202819439834088963099757340396921426673006685317084533373754301234222616213665463911123392818955423186212995306410059217789413916077861718088576850322303067785070930558485865038987219057924737632310401511533447970940792795699222209992348343503685197398814147562149446597585312270207750034999224395669577027903768162237342266354983948822788959702600505435412113812009293294969269409948859769939112058954078068295669526676266515698254081590937548791080038148384142153194873619486402273908092011397914108738308365572169804126293709487130912579255005044975997757400781031966410583197332834594515609418779403147806499049072661152885977186698043744225451547781619406534753080246655570619694212667365263571937687113633494080767861745710772891672348880878849572981976924094164679466166210256251191672800528020569334104261161873455265060989584074334979737477240408189374736972010995291745942671041980530529082999356247788768710081692819184046492119507599840190310163424886242791876102642190369967142883487038969684340998964178507360272169084850259103359055269240082246166157472462985240285921301067018989107563276228484384593029945758714093822870188164486790139319448502601411017802951022253466197357762862006936946743504540797607245340516889676989764838345847237903974088888830157249015782077400041566968702006512687068941884684741643368745382685081127867801671399299755008071675267805780529726828610343125358281569310197629042933003122257577847391313713413315266628337752002954117119742873010857747675522575345942816179678054557654784782560688377649434468652193139440414801119095315154299071754842285071254951020559815937580186204218827726832607671521792785659730592750753338102170112596530375476087249196047626164294547950842169292187625433961303177881523548810259555700598558533572685921313213868162899074921856202821509645625280707892670665864887420955171031359012584841252050114385733073021963731007979129392282502602224595549353943202491505024433585849537571348691795562237129379570917788618492897859609052725342529054298885160638026980730937272513204831399948237877111109123283969077773940633919013762837488981543543249294997856974823113282707650136364589819940504741076907384732464187323249232058228604610993170104507716111474470598263756579279866594597448153698420435407614499980620294783304317380091554974529319024484587117871022075371150236551670216366955335805202639218720188796348950105209069762604103916916430003746185663540736941156952325187425699504563043124834642021057167934900559952416800810169078256733796683053411241777771746741986885501900589130989796969925225147800774936280506289927219498995557790846140091129062181386074611415142786185338796684778475617921803971069109173721583387122508789498422452037765826930944939195453650422714742150644683842048967604843238612551495711721089087238336068536164493010785973843729437609824220959901522430046546737731729349191320933667802323820694530973719997865334355964205740549440991314356972393702630447850890933250089053024501762642955022901914927394974915499620025723859363464044355594213320857143216460119508160383664288050393560341677621870923511279454288825899795464977263144484340751279937348734068176289551096133799128612851413364722534652006115747659433273289247041031676987089687432401559518094219652348356648001385991931773924849081803482321385851839052439488981596514358338887968801944270398269006359125133896050109509257304972934447522352594600818992207889896426847776202533051801543813814177251064550840360886567019607439730450440663558994310067482946371999119355683144810171282740889810821283399295421331008726076650588891120337587599522977405186587835981521283674763181787186851845352795578480096736422480285634393946762581345304336847958121539006527719796479628618214672573834608795130484311888992226310982250826209192890188374057495574391873430331604193326086914419647361275469613498763641400225001509014383162428436395604837343557979097025206257975785786979940862929483619473234843770017811704352478921675070503123247887827536990021359582836920763082015284585570847533994883038558762342914399075897708641274179734598364165160771859436032764903901281314490287983437253340845230720137121127855404969298565492550932581835972939978932214551372100977974433760296623086846173831023252655845436401021718258592798875953777096358126387365579236970522266316543374821235066545905634189014301325187810792053281188179797676112145898967327759436197585959306875460667035699083563883231676370082217674633312498109639102560143340977267895292998103546885796034320802957024542523970845197848616781178058361466908222817338213109395932034924923477568233478057737853640410961033282904815493528344453642881058921944618053013735044665450086622300805939024519141839200305477372014167829342297432850225793623233674705639556878460808354714788069513059496295069340596877500590820651195175138652340388839754585422071026530565757970160864169991116763629564212040168035815513274786840708234986206988698263999968592534338219091933612712695824956695553032284459323414748558783551447298880787530766908034225310666920856179848340922931890731994149413190074244182333066554176154708439280478703933982189748675982093816372646293618434265114661040695616365569636699148842240796413903622149785863518810935589847857703472521740036019528216391418490103105950682410983006074315179663747770501574846278809691796184209957186246213804133467914745662242457589097228405433014437238910585878870340958562774957291259150441951901548895366238625421356624104596986685350855252267504415424520188711576601242321012593691575634606494648135568454074406697439934168310564895992324495379574706487369255271778936587229392776900800669333569610712678827932402771031425962382436901738655244946315590383232673742509622988782843080434049530994263938143593618743012009612316092811851337166879882201889491290397176849140766681916572067681612805071525729770713928713880476785323553926472779214984622242883467867312264212126565852727558036243115848112226006288984174434751214896162664795092198697506958114622047617208741471975249952949119658697607148065397894586718546271724955245455628273633576436540322136705109349862091463945036969041912255361993451830614667832844277404734088833707311835227998031828481086096407247501385870032739386621102286879308668834376041928883148789858088313185632132803829702083256827857996854247929148967540131411332576757406478230393490816995620801371098910350041161215453512080126703794245431755476154022046498364330789342462346121563623780902635782850425316171272789646444750070253322954345745005033289726738865818771908299651057889414397771247822480480385249743751104186333991759106587018438962343685353358281318747567528665435083339955017645730300561679883625217205102077015434942787729564775907451001188727915987673026187464102146115979757755234637758295731666514841982744376412698232937625419888730469010335306561038837608598387649261841562988122911926015916010218541166656085228712212900706273978785796451338372636893511288750823037786754277004336654567538129972145943384799907221410074371802315042692225104872629760308705684187767951590877952061520264545702610914493035732095959752699111777140680540017334413148990177341575318884386359844795611635986863476371468292505958679464289673689185129882677909343096732839899642955763370811047437447501150500092565591176360121635932566775534192269442562114814982144598745998040659773374018094392231091597628369719200856562946808152919634665756877263374855148734344537476216820666373710637734264417352422051678517343368218717623349316848109202159216309217202619535871989809624650279070524648747502357152580053964949965081916104103880523028518144564252480509467136939980251385762135001005004386757619572019295746065333653290300758597115495682604053204640645125942447280564168097830560447709372814553830942559875971844777951302573186247047298893838919542368765694535485851504830383369257910931066759301569633916371909474646355360569883090071232668484613679975429179724283391981444418664628860426590672008855179998002036661793602395394429447077623390691324387326179005229432750300676438324766863072772271832926887253772033991578363409360361241403558136121668982119223385567642111725688535754384073686931954354065435528072656172686727407686682348090492398550179545844954795601988656763345971085587908254754013222969478853698251633580042929674692323274024571534958814290983933532348913553216147345928174682399764979957238721182146744347831381088681275926632305898553603771170717246200508182533767715616721521315705738933370332816967500458920053232684740974069668972553750029781453753751511916332500154902666187228510652063024747786315584066532886073004271778402743328781026571726838518895126518470795592012622590111360288550085067093437556221648560166234253170224189994747632202379991565934863390669602649548866567896515041048725875749246099457411312954951508595976484541831770741021695782514356631110475072238526962307449319933538718627821913997966858936709436515662818046957771404465871261021605536119731338625699217158651972966601622745740860840014945254056643161329698875682295846182654171252911257086850708224746560637494419535278695412974465347249834833404276040552694321696475777147731916180025721267002405577115469533299780148063223187712849567178847989990418080186603660766870591114708359324199179984449024195510259007749855368520871884146148070516680731159379908585620446887271633091126497399408220921436822334068625458199450248428699012071059701746826432635990049062125382881554525273014436173224925082402150540898513285680574738506911045211337373807258647576607821163737654483810314057853409543234420662475107390364754227638386741541172918245929045244260528641015148151521561923039794141816045747337330802939064113552221950351720612453752548375087094023868885584077258540461101504412709347275311988504295978623075819793395838502837497798916064406135372907381412502010297195040393204346557534906014527709502181177220062092356272987437680943706001205553492388254426847342923623445805264067936195380787408212542707216873347662217114095426085536525925816462596093986173626617163089694326194410314004355722901389877123088394606466951480797053961872518313955632477383386113000854586311945729842612594309490561349465607875315265908106325020371953422483754237431862250993314698323066375514562122198477744727324531235655508297582695039448713095482772938572472130242660141462155257324429589773326427796859385403052816528397195435162607346040906112639631804312951100425794467675078565286261366208325359992121071651710114455369048255839492108466138496895202085090473653891971348476483839577139666311407940796554503772400059883299524661329534271757358529632096538319373877179037706069729321478481609457554130964762522411087126921270014964748275918590315725370383104631708950999957674439511003966481031794854645204921193405021489571373034392325305710330744803264656427536699052971583543445737239306142909777144542127572676916652163319651195128396037973808755890148532930832012603684120462218741402228944136893846651042271150868159743636930300111106798566875216875132203829736647434582860813532128039860618976746804521046980614093608090992431669117458161176796550043672515579850915262943428249233619454956876952361841839472888753759352284749768154482223764647500737429942224390638005992129430030084747849293718273999673810803550319583604675654669482618111115712955902796509991591015295623074554570118536622412462084595440871880913879052681480459100417925806436687096521040620387891389432158813850589839652433194390956382698674420411814166658581129677694822291320321653429881180630963539021192396640648038935255617833144174494302564209046612147649266140075176533129092647528612699724545078570917827891175474223086991772715285373697891931488864834221784540554171480598442745612783950471989404705400004196368711540476757355645304023237826918703249849718255073966846954661381577389723746154135915050563687781600509378024621954287725719324246288867693144269824625731053270859045316223312707156645031918950494926926353802351032919206411568689923601736096225354568151471985897334087487971125043766705201248822557133170590643840179410469543771530717545081881117378193992171052606554646585975729010900667034290056697475340777504406529975162602328050204708036243887024265035082096881513648478227751646253129482569875773282632814471343797391730149281523761735769092311744177489472154497803058632222861814384836659762966426879186277952199148325466288158039067821861147538828423981749148992348160302533765453640393186852141446541114752502783727196632478690827482568524486431137808490477043776682309054933901557711543639757543613916877302442004467596858339370110903630728231854299442530944800868581418218502054525062534413840098600495273056591723578567299689135634383703151823366873401464572983625815739391048167216833224878086633754756886018597390179563068984649829766326771775114467098760190023274614871611959465799970789441315197906422978332101288786343342979193577211141481360799634713804779987050219990519952539125872863784469012569807615971194005693885457608392952269164993302298438666142516413120394346948097577896030150240240526902250302683401808086624427707827679888433306681521391637887975608171674203530076768089480646209895742626385583041574243009618299143940467151464675562933426394957527986243263764475275157555296414031999833119169914592501615254698107892012700569737263285482682093653398068561563959493992105716927796333351044556151447023824641287203056904243697821948885442140292976517119732985024631119310625030938420198656286192934909142282164824054331378929843221979689719179803662694597817023287879403657124096465505930214090028155516986711526058858515709530482221150155803952337750513403152098156433196660354325087245987199812303777372454824553574228129100909649130030224518534423324431601100333221056382870438312561271068175773791477315256609466767845908756140533617297722863741774428081330251926574832001742665268539042463313385764357211383884017160864897205934501804237240891529422246722894566513737230920338636755083288879924584898237857319721962879641307832199694703151089604116974648991574264129643705283166048466294062890431917458883970460535408889756958855924565683122521922114885109940064651144984603767590658858940357662346566666774703612642804269036468170883000479782275342036204705690348166485426293300306159971661479155361413510558861992934581471312333850897172111169939199329988758914664388304022588904426805480503145238890841061927352240327818059925264784687515360813650933685127636823137476449319577942146491799409953158432370434983129673491864339072508743125457082629692303699117934679305245556530344846470977157289995330675804142171561088210671654607369946267265401331145965857754767569117807410567882699714651198570705799165521342588533376365582720857203557203903336418910248007664136503104937292300079303228459360946206205428168971444176430052941079189618773098486159060425150681503960184978167607401322753439379235434704980550122430507431497321286199610360431403419819170217489624826712253030834010728228102934123871935910971237516502953348798706870369538833183616337764987810058490422491370217395851636290335200205584422104950380419636763830392284583727069542412487713719561882103133200748731221676685607186914226660249155856494995940108829013652690104812933818570331616352786183431294212421931332180155910705147149637328134151137189343088146634889332072124986935477740744132639190225060015506443357840713240556071440342527878684441931651558187478260482363308796756937348538542090169046516092298942462933934083706367483218028014109105178748111012534005013546354431837756102542785043337568480060282023285737796117817937327103820226826236302563022919551434226434489680034863487353903152393652062972630054879973301045412966041893559924456000365472035017539553501762981927181488644215076696848888991142356903322972822030393606286041473993678494189021392266876392391336645840603423270101091164587658112273877706244428069825443190242585726545045023500915230000540453552677393239973267450030894558624536005987680259623168935396811545828427013376369904614894766713172000778969966014998238402755150615681050776256581415841686360404797582165720541060565313787087637444500728877816005025491507836116931829689984430747574908697048660413379008610543231918447247107479243618814904863352505812106894207658986002951914016288610734664925937259929823633770709449582719715963743052028825774768857420370500551142029951071187535972030030716298925341860493750793560879013886599287465529741250572927334049146446319670482067444810180139730158938535509166271755350827919168124268297422959963690484750827509631112417812668587147637811208401955813611845422055922685988545392028460778611448568590074336626771466138700313871305781049346338305349519397845651261387503502198758219171921940805891211848454083365832595276054356139773730841556653798106683261188205513875637745987574431419228523631220838426188861858087601553493776381835607799324663340325111483693445101057567909863875176121745082824307051909279472059075273524235822694044050689756921292065265138739785849576552893502674396945810943721079947861833820015174538216225254350617182490111257279218956548155017848244585837338711061378387010771435038431929382979633826498872823717185668354630848950352036628687058392762684374308855426785403132850588133382166826078381028660140047341866665156081549443017000735367833011183578437369704468932627619807344028678986144168099774695491623965587871486272987583341065339661221199907283549821784938083264789009603199480523342684745279568815981206368048687146377445903985386651780807531839356167401181352848283789603597641242563856665691677369892234278850371760372856441914526498141075338215149659590256798284363040024210576215621619013248768142772224116662582105721350674580884104343734993689815733190226865158457479506573590905831619760610524205257884256562279807358918315624684270972108399065395683306453658950075528026214162851529729883156266200743620892480090746392608980140620865307643919130818290935505868787663659088480783168989170617792525497963888114931426730655371568448705525401365286555740459221164492330774101723284218434645671523040361652275860474112233255766303632987409734669528933296042241371714058530127171240164752952965855236537312952758992831963372225005143188176847579586101630938168302050355037188439538409499406282123055715075848197743614381747594339088850400980660925656100452294016833424275451307724025384038389413210010606965832892052873701039578218611932246683513949944079563655212574281296600782295709128778152289188116867832252774325969125293388752059928473019073973285457599737906952078097165329964561173871381159466576736764979973491002968084775810883700908254429601372548267870953586039791378360754302282419365616663149494854608590731906301594371426466591652534211937241307546057000818535940972740552711468535561846797215624286412680255647233981956857830296301547698690403858892684182829878768435188684779866709044533903515158344550345228272396573370792578393813862011726250694682490409886786406891695686099503947447917959333277170818214866779054576504220176971153031326473530610171346618354498745875636268141901515556492930363504931486046695268306371063999736841217797162722564574575992691227841073253265825966671608596814815985355861241218470409541479687966077050182739774604411224326625073574369883300192942480082271122821797140632374935743978971212921842132388268992461103408439468117151792976112349701797718888481992505697515221009617092886601717122873206355905292206964095429733824346124066343054119400306418857752892281185572771000823050113352352269262671519074961504087350376580130361307603882145427422659297298184143911552988954852927487901724076138055746235306087931477230634401060725206966852916819181309191878880939123910006853559158485994464413038017016475011371112852469505405768646369200535309072947458736799474205447201228673172584480655435057730628761082083597009504941132433559217955772758988364367629845293854835841236404587319449183288783967348228342485150789872318249427437785011151528687258938527079709118668592378320907738836603797805530715683054250904684822514679203666739291198433638898296115531818760490905508261427696496244579524391603034722668161703112455118323870432600685201273884091757908384174043936536423273189903749318898160467673756211949483192038461859655777565191084705849727836201559819152639044296124900419148569680183081571772365151107796310173336390751914832287079529256599902993324767521676356867657267677349121340487924806942791598964036391113658458082037234604193540333912549222165547184798499686404866607127383574559749470038300162740667683764021022654524014672173540487808624309456284305215250885001862430438429140368667387916368261031271058253245754557863850812371462752369087648663555949615871460511443981915823135806800001684640565893375841749606146391556490006912493023776958216233656092782992170640980957503509350472268448597665374059545534448025913070846094831396612851230131088926194638174848090943012549572271928653493554707284349968311417292687888804353970454106527382723475200227960609442018482987896053919416749508843511695079712846092711567912017267585208330141257376331052139356224636758158799035548157736812899491772578668312830772081531634913104433773592538052712930714507327166743950697876867716833708571966789950845999291338015837341244557557055318193624463655127249294417195381745351147184385480209565059807704005969216760707127500752759623744685491030172721534770431651674531680363381483100670162311734232507571896762355126864906749878822082444505578506204237310663577785763733010859939923473687792159687100054196716332907115063440078685737016294984078743138032499722611100425335717287540793099730753273149092668799873508985065137676580238310074811246617243763588903374321058625451629728745581395303901217907591636938617582806309903468521892737656264357949740760619863608388204971155262356202861878739547877026979442425274550536780285759517454155883134761373902148818495104125837127387338346511946400377107191830595168124571903077262620616353447562034371603624529677431491931841158062055850588562295695557628857280181144534193418022584396959417166061356319946869865110365578329153301753148727241226795441857521836904155164646157586754436992921607005376131580999551179268392857077048399399767503530633548198252744160082304708686195469830830768298820942188984076271335878944335468947114795616474390931947169655584388263501327829032611116343895938473087998381508799222105242592205729695660589031996386968406417819017814671869868239115752733895886128167916960696352366787258398939327005880674192154908311097728091609882622083498265761295691681225567249886334843092603081617602310772214874201923567020671228876769152993198378690461736264896458325162542914958552518956950703012387359324267678700766303861499651909986729790430255045656945990194348716569647724021907608379780040800945145347460634571825663366489682335515666716773671725421321356186125711191906563643077002391002003940064095002705357234107086704480954047924746681871713565359595865072491831548363789999225918506213659885938002066480040927624215512409483245885309963669274595065191477644215399686878924748943845016603126366533753458269216456341040730930265050766635000669177959435671538062955240176196353798112309027598030812595274742737340221598403710201199210314390008457872928870611712999102140998869935424619631833316244494164213388517757274889452051774539092460547179594187604901146944930630654409426780269050872217536387131928164440344799378474715132247725906933619505188644459487209194779134725960551714675776387364108620849756912206649258809420397716327913559973571600917513867452921668206504965160263441184462436754872680478233229675782478092327322128224609812905810248192233365736175768528106698261947245691875415989382462545022263365503511903111037942921565451789736475989250055712176414447380800414990882903213595287823201229551367729006267927135704829399288749692462613560676076404816055937459742595281494553989461554246789115925640262847609455255543231738580790394642566838048895106273324992373280759321047006119332564834771957474063016107645831116578779576810009871927118279605447851803399105237814445884708657539804069501692415923170567289825874911324365118325341834510579587896661374549884200095700054490557851291768678136638569626657805833501990582174358301926931593953660182702850223333973730130034663087822107121179179613214405819450936516543326377419090440764730776238376211753167022026203135373087368128151180895967568998075518387073117332210619894860202025215841916424360526295416314840165542283721105967708647931370971664605319253067560062486218216267443848734770491133822006345572439736176349808250737496122113730155476364487806868021715559032034486131565564634976218166081516907629525885751224262428580931967397139679993392971373666025606189027428315383377684137596304706453908983228789966704417975441035818756312125398305680807675661369444863197566613259328817849845902099855677087794449874606235843478931170005810768651221623118291634922939857970273897992068318516113005832483872558441004260366176137701466018315047415766295432410694624515697287037499870739880084274684808229441771698870601842902981813501309331147015422065804093747010497605786713376561069964529401719411652942351306956951374569106339881660261212365912692967309565637313949030917240151350944493361492432457369424053392803794791801732189896120618716881888608565983374433414832771915717339991816077879345457116015152099489772928211449592133995331160485387502261218238823907356112609534485528931835583948971163542889669273877034827820539105225227654294808879054310299390021667346805484319875685028335904358489815556234736068968133158786843948871737098171975086625323065655551738362902876231647367721103083192677591239311424227090995132393082926664742269758364030952415977534857726929901151977213821902403007164843790744059535961597379859028802701919429099105584840634480682744047152505805424021321232600330118313516141070151518043351430338573152921235455802349869770973193099168499664427968838421961015672240365153977488939670868117287758110395107152232615956666257858961267062339731089258656854372370387283935664226324679983841428799118516069437228218857634232220109079075213784855218696005308691637767646813013466182463246382264040651405965048609582040491939820179936403849054425432765640966246045072805652641533414252175745321852118071536385443509140513607724586909406207118713420969757136075726320478049724021416617905855418385939082371770881721344465888892119984332640913045481354390722847203813352993404665771571703616089646337946628063449789459324101446800763428263339726438255088945355312874166705437664063465004699726323060705610462551128006092513679791275244983997165074196410290385344768535038223566791588353090695565500046546366480545278141631510175170401527057912276483131412016847261079104275019852605573297552138198769758729217222744875491622172515600022975444630256078272387449494245337954811330790761728286032366124340664229934323601825190217623281122932881029464247605075707964637524290927931892846394618098950035225848850048228237718378280049997675422768836002702828797289363251863982654698824183293802541943211013337283295664398692319357135845274301811535561090483343713029206650413962306992277550360974418987082154269861663509885842188493849655906689768889333243003993979666412827027174391735157622914314436188167435422881588326842488342854800931601568450437162560246821638543616460859780796844379136878121782770590620525843345012994259122612767617611487426190007858397238052770270990561325844922901866016907492753448374153044943896298610203815533116084824738736558163610468725679019483355181467886564018124142967686650485509209896969772353425554122229229505143601466936738193089724143720210539312737471356605233400661839550943049984474689712053330795097472658117448653457097236562248437471930228577245372946252366952921713317438309987396127459555217768772217685970206119948592896023506334892297265679109459263781257564161924281391602872410064517371842729796514581947461902784337844815903180436037659431957676945590193645347532442199020920638667674863152851306958610890853426991611986333734538429283040926848223327147015450209746753961880830733698773727823546089893795101989888947403278255092507375733087795294266292330237391051286405084052868930367085604433383381900679648088670494113999451721971013484490996097093589820802508358071339346621189278435496619966683229595261614084266661063902131844401522395575802557339953568064216305469077365949285683064304527120370581522860562272120655438555681449025750124789504367978951910498172935820733879426847538583861858686803276185597960417521690442041620063398598418215955500736789984896176077929229776791276610473816918916843794347465042747852657845549824959829234686078721513267370352622750040137752121915643637425090033107958530756825842008892438906966783141283364959591866441854451474103689559424451385483680369710038138744967450939031497598982547985423209919153289760896473967281402323988872591556897626930360870278506546040378349077775113127291426857512643989789726480514961484849700343223427555281274885681981099841151096862031503495754540051923144226221182985482339724795348604876192957561801194409946012420126882392998436263430500074575841459468532894525020608607058693012884649625276758915204731290968960100827507577216110109501402547149001869022054296815147579568773548308089496387800261955614553506432182875347960154795216776518597705923020672188631557384334759211078384485105195937893122177083755341634557498111706825455965071146315068938124974248379013099887419995230232177091300663686766455042302471390555845611056240853125406457913509309321315278288869366027312386096893072039988147160469296382655498128268478072714294040770609302478615004666126202759079303051149617769548721247473131097578515380082988532313359896044301092447907360036798583055348826001115451770090671323586065743642188008922965308033418076908953152998363839799260088573791864748763807440058705302673628503537268373405930612013378283300807360712567848505809766197764702935329627379354091702389714144518044007879334198396368405822982961937653022975883132631606851600104114760797617508729375479260181348148711003193047980813177126258584090521412103268660061201404931519110909906224570804966924298406939867197324979555619600878704275810568980060058500311872473950720062543488171355696752717502541822069944456859500049724167880615315739407185976605433522376488296767897500537355871511459241641393856501708881318388279113338524457615187269943639255087153234263513109094645456675530705470727082688732987884332991297267367799338105900239839426543792232658217776092949947638859654671432111898035733973687102304711094511062991884000850994707697326494482125005224271932496337632186714610588790509422237563127393961692683601526925209314122589511256823760882712742851893965586412459341018569350094732904386003327590501720940806223230962036342452727845296377440191659260894002056646096538882746554601372219919848703338355774136739332350478019902633817368412770150411176410111184019471143257329021641285639520009129280754319413908171398602160875360176468236462458585087458185588480009411092137558269280083281472716481036950193296098214792801805176895020933037426208172798749813634164706992013682518716862514704912195148517102339510069939994213003040651479220837677625707192238908224820201268545952956891827107036848421955136183045722307880236479848857432983101491469736677599082330146895059638788353316644589733433941722204655113754489636333224991236091923275079265446825527908456090594547969582485415434765523556420383760863415269435270543935424590387829622582982577476308330933378232681184499899979163946674585134110003519575636099543753888046520995836939227583658028555832898408609583771570524471480583150967735437235238589887189577050967464596319742179562050590968528341509710734205341405024985935911739312186980705141537918364957884740617120382363580529450458032103360148278182936557831700199070051758299054173184103496498166078500115896432648167207648411984625735768799490890943808954351593736969730259971191621888615719499062341017961077537120699445053311661988638390194459590436999715105878963299689529387466266243404980426184537567647225998715380142700776277934783427713120225407133340134728545917964304955853759717325552521713861486502314679255293602107413935561126541643479364412870640060926336182477665996427107109632398517514257070300513191123128901782892083490659946188096469949521965009007354825361892929030353007505012402219552325149957607038060762678181355658823019307445577760515202304149033266496100222726600443782519882919604328535853041377331820866190582840122477172744857442440043553782059622962684663439160103074149987581370499042808165648932674040775640980338958286393942668119043921024800036692592221223655444608835310379062421726913134506685884564405442917877217630172043459181954077728693144279635524382422856476581807109418217667417400324867338928065593926079154703516362488799127332083790965165088185688707611478961350129720958971953121073717115029993775037791781474818344760421094969213545794916751815073731440228736889736622375712121405399614799278127874070554357250221302301441412629553689094187392653367637472871882147644968044151848161047304525060914018760816400609690471299840004158446760247848516960905087839113647756977365850234463010017443942844458465661723154602887681821424847012893925707827881516514941634745231138523231050403811679614353460131233134917084762049491859057575693832718388187529478990290118133566927598896695585813260105490806165103904686427479943292224800500473802743720411807377765379708788612257454780448980353631701238095276907415526550237088725058561446037502145762431473332930668939831405200934375605295315768418602948884757315369665205228704214840497433592648014255801984704696926407852436294497143702673280274842159373170724075068072293405586273724887999863522597142706020240837368118163474387370449860101405659323418997162735621516140628192188535640653656232968564948381414794187768841736586472419580526796871640468467392766263236501660435493692928353709911767143645939723098526657736915541764338937914662970093578379752454658048723671143565031874165772672286169771375315424985114056360256014302523444500514460822911256116665200554411414105894450764086628059301826685782718551627207715146957756157675877563689739375063492173089396924377267958563293118244418318501880983327434021456646865443137696937280259608845627789218097070573303973843776657297997916388617618563727716598956569144479123992410179000936706868412822804321174837482182042282237343896491449282516371893255843893277770807412403873689826699266845081493702320111986312082424737057598573722531172372768058396861730854557099493353638229239756508478607258620269759285633345202728589378340945879746269440410493965083554233488078270513141915707498955304947647223105236227388008625168324701640315647416590010926265107247589107500022801141039983672253564710651921857185658130510819641856837805898644694728834730310785043141278531749093715057932187233070567591259639341844248160238460228763985113798430948571329846993576581043450776208809030162356436520461311272546346525574188505203852078390949262935210551710297221915490868191522049065755179916885158352670680942600282823350006344353532774258284023695528464998714909591554097711863472583910571283644247111720769055402441067201703668536693686557719370613066862098006501998442570366110754110766731203638340135647208611946883221128660304519713032541758055541937043209112069509587814412363304081698554379901989534374365861098712582598934628060041767537431564528260243945255130198805416337617082913594671887730220316212939082418074991548583810305884328263405547891988732633226189547365420239642070978119190584950963230987994627511012430612366065710192382252042778084723314409806833484024226897529432483714418134281321789424132033489239929989572946007913435950666339663405139062848961201239411303960519052801553065858584031929082852528973989478722715748200361193074758434900853936968342504890652859775869521706042702698942132197987306181061660609397889383041061836864454602098208501106452468725895078721968193401816884319557685328885507143125711818588718069800427974903866492313497977060860172652852922013774119972497570600534298677814214947249646307274437339663704468900201782605388001518536524236136612303503541286765238756903990855579659148091515970701355678209357257781148010318154315462931544583331759682838304434980690743171020291365970411955625296417845735448658260363856192415343043210735265030816210132638286921251041902882432168629159089348186020829270162774504029792827661373178331307500440127358500886593541105958786064515083659269221915918514178455676331475367386840488505909901602789430233890647288342503149478528595782289601472844460324562903846185538876534932374067542180326203897526274946490603356959908740539636577969436830160913454218406817391751658719387220249034664518149457620312238625869183710079050464011524668191901698365507810336196458795600474460315282892635165904771089583881492591796920175302768552719497317849366251435779945566158141716387542370970029496649126009266532826027228853555588475827969782382473254992732100439846365636265193676667126104675101938219606347439339444905063527672860814471247332862127695805789159163767529126674711556362130702587863415699273881284632233519478252663599481817587301265167757170653804069114904524945340296096744810664961247775233662658331970096324344326610559795484019806048825331295681378896397832561835350761531708050864133332928067064139166263488969695622832822010974243751130732041366638240601807384256390290117051893631927822329247859922137007062664421866162098075117637226533997215012940275530213581170148637579382022173083357402564243214883187520257735618734240548665493679833711465238971525131036023218395334888804887979624236144231032191820167722343047234946078579355659118801229319497565228314810335052684729590586437950239166712860886098676489326698647974716208662890767319122533206007114062382027220599822420172517912824049405705950030872358495245118383796169989564876737691919049328157517310081334571982733652976259363161156962976451589132458398086197845452907241615620445516100031566284674897320356258877223256195555516325265319588066727096988214530430820562531145021677373831611851896428025123670025274925945958731740392531371499343341237127609099506271707713609151895861821292669506981516599829144102863464728366944764822280703423584839883309056735087767017466353269565551911775908819840226404777882500040084283958668592679683361771261649393974956337871264376130722039205488825455877788827185310438059455689490089068518657499026419266908001223922516315756368814137836983174597950912809760152430273558450406262705312621026076111876263128016920552736282812267505887757653619965716522903960897904879634792413696286082744434298462700856104467831208983650269311128002526650076656056101005848320656951499829379029284161972921754857002141713982610968203476724885209163317721142516584737404709079278384852732994284040019251530755155212264709620495794824398230852832215977273763098640910150359431322936014335160803245423922433413638494451476729070558137697462079784890446411615810542366156576635583456468123287932021355299737513912597815246521801512958410994527855431365980350474014137925902103305267792038397370094915659180216827249518772977342173384863385227547115834198972116257572090851961787548641999997609299996802318610595871578775433016202090041236954665204805958419517600596913594406290344907173478771580417639901454617373863861391283890559100307145860529717476745196798533094961204014643092290571688632855637149076729446339023750204428952100697296112011624757157101485530590784282559842525679602752014452092564238764144865428387137916034263651488431239614434805078959326791796129194929748541708936053864347385915816955086429401614527047884533314211134085146545050225038845603203376641241808899638346134404983808584557887354313420433905442949560874432594220809032203380495604280593634320698162481571398652251966621073363378331296497907013626423137982409749159158794239228334292571153326364589872978797846966246409653221190913702583770279062194153085347639822190783551446333695768811920544217918137479130925218278963521981054633798750114206928844910578586877000963901846853016781671431301490584764276634454595564896281317147137666798108556176812871913740283287788703365942747510794779513066342364632636584786066094191955731091816700170359231368922147717467954074169133396988608457249382998611494841002731150628085744429338201591001651494580118592183283783779980818475979833256043147032930499156680508587580596124308458359427976402498583072784394385966611328211151379220616209678410012856653563293417727109619622303714880841821579776196247705930910561063631676342944072398333464443323933402319533148078557977269075066513229623678580807522742108235845790264396870747435317293990904291479006507872204704928232933000098894663398346849589822740037489227571499307203500276942499591124001196933916003040448906382572282836876362175851070174598650620781394701190936565521243757473159980737817508555677570305427107758981226691349440834282921005085638509573491621629777778657109543026564438330018375640174770149967073644094511773671963775357105954172537550473586240386402738199819478097989016129576345083120330073727059623946549254202015931718210596276971397734876322341450722040471384574276265499724815796500455459300118162543696168752346512554523253777683058940791281885051028491879632733064984972740448079854843842864546951422371087329728036561391271219326069565420646925422384853607258511037266812147010289995219429677879640628130157898347983789302632784300424757713077094144706239991649758841401206511172860609260611739128817371707976118496089189379424471934571671373038240347069758809048338520481800468638626046564236959548047512356307731901308664483765920098410307623065456366054203863396429339887296525375304736563648924032793592887476530825128065792352540362240812057971322633011926452116419916696235825652175360163799812325536626838409163052182358057651089947938694618857824513972450574259256674885181060178705473801107562388711744542740471536308702277738697788356299938230787489675293245530152627388531252133495325037879205744375557933876657033340943734504689655542425619370174022307156487758282917836501139488889560189787218605833389581546616589960377706543666108679498588264086160033125000631160989647318688255858473864189108827719637102543619079819769940730227065147864905344817582897836123688036881930453623706225178109708194039007273376661622359753041517831073740641862432230771377248343140542304900807274660686403381013761618328288691360241809235644846346030174115725860710273539937927061864581188798793334843364769904807964586310399203521098686507691739206305781566170313613247586756694992708366559872867743914514241106542722885743621197600462310700051721989720423010322119119936237782256575682948510251714459187878362326427138871148623261525546062092208432898044091391452168202633842810456086708390331963511395437637079683460017309032152124948612580252276787790197651401866364018875060192087467468561183683541281788759763884432093189781596320274375336536641549510907891726155452484628115470305782727416433881565610431417015235063477400307074921175087906252078251572974167506820308913679726189647333567407963341815679907268016778990116134621809059506910861332409933806393201960928483084162744222092856480509151734593806797543955700184440592463931808953761585596043674805488822516034607180588637850201760853398400553713049320246453213337990389368300541796021470213231552574857789906846784154205233820039862947342520878122605016869153944314460955704758359134775839851119633456697484069419360710189905827253351338784130223428625058875484802093988472810900397564868335224595839086400416879628113949662979939621803350145970517107007059413883243515482472291309725740286761980002851828838272941469404167556465780654966792372338786528106451482216518294943761301101032977230303672094156155463185682611034940273125862785495703795835824596545694828099288788783228317014129070787162416065414954554061021352688950948963926725789838988840884784094553430811346430102619872502541434803266022367318584886316822582474357258487463940885258292669045035462264560383421872109040498575090849568897058088488329738676585947297448930318587726848120601729859154782791771338202248251920552746536046441945807149594250078033211934831198782980388300143966512049074470906303865914358329584806583066161095136722267423105427666840601154985456814674346112496857631567476078557147684066077856584672113937276661930917411279865525353651470301851220752505447480512710356277937238020631461371108305522405776939467616516008779356849303779450666629302013392147504064336226329069584446656420672248094510582713460680108883227562725518306000317625316137998300152031459191848850011888917878551927178075300966992029589555061063415261811998786548676564304220060349403782749140984246478980631776744303904224537051851263635493726336761800896688314534340490249919495885192175045259945894770121662917454333446236066070701163023450117100691450259923430362443172475206943086945424870904435417755565587143201996828993133423812357069180450410530196837057492542521453058885308702067314804862174310089071560399475799760294057366651629152277083003265636536396750033808837249796409586286947194419660754194217309054057786073329831311684162483990850358348686700300905004344745560169240905877220147760290944720007673701176353253356786751426520644450744518722627332813037372283117175925238190566058252151901990866875101061546750241159668035638898105700421386485319568498574272390871353857447636548129813642428631642757868037069274116868240791635256665606681563826152240312413052571611915084905579787292353430106208808057161969710401198695553599938471900861590262859026456257515174639819750356990432726573936924477670661661720098440551485097128439115639423920549640876062110436951335675745571507139261633930337621174908575553050264411606097536026216409157340800681877659177103556790760949589219199880414526910071821952199253093595716038764060359029453779063806390300004087844136386627683535348545066978170173933522463682492911766427511348813171811687564241570383522066893248694149526754338911995836457112909512794480164323908927879928363693982066044165139402178056859036608653645190324093523714116401984567151369252699477018225922917006697854658271561459133092547054167679978127476723015610420472510083793317115362207393374249139530367338941093820217720384721659247314232297735608964699714097746533706248929329569772138254551536098260719437764877074810690341625438564096150378847754418505839803419841572862153745417057679074196785901059328483317638720228205728543122015029603439651715979990181305709120724927624014893470437059651730620451662655922592819621554624220244997414068937164728192908646013093693393771411951664856334768356901355477711747729963936597130135332533884071350028942236764047876747511707956163768648905586311351543015844911363125404186736763391746381800916017719882317999160403211038826374187302016113993020970815160170218522186968192724782313875225958853685008900848788338409227217690938382378456681847001165831638097595684952144422289563454153354148372967958653191515303257600281322084604662251093918870707165643379486383722158936030477266460533248116691685422155295626083066582508134335575839345018590445752467848355240413897061418340015236675037961020430460676716749958929675388051245103645196395627775205336710464327814167060556498220084028106343574770099615803805364718089894880553232671217842217276769698570080796444245722919443253829558620974055368688889671444730273468911975117358376521233581498860629920098409791858018102517847289043429234977044891878271424071275145453720597614591672685339645797214950643500556051614027573673344717504238737213443878495224973265736773984264609590294942940992696397231485764434623131104440624708299991538092666831606352104758797541914495814837088164334449237681386588939946760611416457216867663945866050024806135587713536616994454856426179564265450751576922831433193772194221348966252413309476578645150525803270316634014166365229620549434419234839363908162332404932344774341424112240953942975304602182610276296490235622928003840694951589451268934497572598172764701031378900127691820289988570320281881797927405495058003531283271546900548183003648347666816602689906600387450365329804969945247016730020789965211684790447736496014143952697045605099448338230075126520391510617660570769353645414917598345737405029116165888033473374686129878414110813183764415649686320507254545591365370320411732251725266336994596900046479104733017340887292093556064920436089600004452406572003803952821939833970989687446335027503924383294559295153324380970585830508612299970147356215919733737724448307154755485743131734552542815156880293773952147951741086287110722950575335972642020864602892190533445530399770923855523142831849402300154701521108191092138275351953888078781142133725200747394225199144597799027109200655323897234775633628325506818151260730353180323497327994421409475889364865161203065230881859604602589985169059984250939332653446566549924096483832495287998071454894100954769474432576259762817011455279032723236524648856658802634863436444906663650597097446416029577692010703025100640194912504322126416051501944977832299108139352126627865346371138875068166787869889340062451307878298820064786856643965206415120159832668726122356807333265125453922766363811482119832816610290905942245550548997861893524838773455535823611733179579497760456562874700468998006576488210862653039240265542273083659261699262755263913843530860746360677453914165607209625738905626670629735673632428732296217579751393306941527833268860769708461012961998511781013391290804270433920735125605176591914318319093911068822847902733402256740357190324618202272370188630857969579953454235080112752409598611756523521559245202331736408111784289006686656949811519339391688652118642086873956256154352461610940117295603644345989991739147392377334168559663676167149453515770960886714305030647510225700027259624319134874135040034027713929673560916471525513476461689455816284935886251656455959064920111303553184109923696249485887037591618278494412286544534475307940539791745859875556019651300224539425085321457704858552705561541355897984813709694352134423859318174156987527710266343519269234869432922025486756052061972608744402682202503492994214458326861267640788674824830030723617780707150657235485949642247885126338675824373904734707784794758283504904129903559007292567904929908831201148256367408644591675494390602825512546912758087573369448141709011444907898145649384380604888820199818576628349544117103626737421430741777672182739160160997148658761146915658879821722793539327663773673263735774642294718085968000046825565250992867965152800346670289507482719377918613618167685022782312426044669007538096384559121771867134535662647339512166683286893879339690854819393403098643325056100818141101244102814255028518130474959323659661141327421259858467692721150102242724378041465269971853808648270536835752736437348993447040801053609807406744325096186709316759872320963184802034964126302329101376800484145321235125060265946306688690612709791740154739094486038487648466906629637631048096660357485637595305277980017794971738532679687984784861427358734807716316069099486706359064276897313746519405516306254802052325162528680175770754961293481326734201503957546893286254967056387282810590417573449531424463903261830271713358444567190441470087408043141787824838506536624197099108689731851463054067587928629476826579829530210226868858796785517669847086119330381547577896796553583408770541435852803093401288228860391821089687456120999009323063270322165378680799514891066232176798989883986137183978799983847041794187668817207165494254045521294299541822782548367006503335036108306287344517421854035021843858491365692895353313922324412752468267879148043537665772548837471048903096450331950353948518954187753158090107670577996758998383048447522418712514246621584406938197427794676407291969281856688787071111344436298915440080732201241368782757575941933556859127701033983212193976852777045102009800762870565419661111263916451995468420495121912650793370459472926359505355311028847654859240360256362891731956889173428903853342545079623426581787978496178623070039893493451390313809241516939028257158001053801486084404057445232516648473634537553243439496776650441640142864842423366486659419813505290314469405640468945251519388715173975249703015159816958029746945805892368516686685882658287772026509181145766791906385089469929459361949984028037209075004046420004358097857999428202353118768219114327282138028659910146657520958011166874773356568478135112503013284360687487706467586798579658805048204255307269568365513420196023866562166422023660113927883524382329243478060702280221170250791965824534401355648499154546020282403734362966099764575253386815316804799495569398635434194897501356773884034325948506633156170922315196641121350130429586774948231155179443910940454575034177522447610619320644415508824395406335408181003894520527906955351039238872332064893310394715178213582315984189280821762162383103347624095342431063517513946467654933420036757727275757526669173693491302656606767103300580113430669652071719044185377441071250177581659933750957179553606512396382255947334261032445473801127967035690525359465586580426340712787675519525772605850944799841876336722421776991289455036512285594674407350351008643986018118134186845609760687249402109072152082218336474993624039737305290955468767442580919875949024033832989851977617785290786948073552125525467961073903753400987433871514293718054484553542602184259600630859805155939553507306049980108349463525493123793443585458726435526733313384706938042468191828868354335309298144719409854714413657505838265152520107375966652955199191241406307830194693971715579320690468641667768088766211124994072774665221299771250022421768980273032596314354068815989858428547946191983049932710863503678756710220185949329214190763706493020136893117128540299625410397483231428423952102130353886614464814620278121522520184632227636402453891573432319489299462287882939394567594426367669300811855255236711376384096418508876484380673423467704735636654694010952395538813915581979946889882198249265157631404690841927884969752095420693327305033370740324746642793009322944536398625819306998171500652681760432094582888158890744441338580862857772862035318969863437757278109213018518188788229809819723128773064845598528644341768609120187573875507480156196053893236022858133054981092041412818434114746486475387622895096595675656628431960690715194510485708626805817475858019209594037190339798539557713352148002728935178381469940614217356277548728999912096564923984556325251729635358957650707303211980294013220244520279626973318525952266742291696386600334434586837682025364206816728248584995850040582822435929542790955390535100573894621512007308135564336677430632501308000312841075671578770342240840709620485231310029682371764472258486606346898151947366696955580756734741869239238397698918057941349167647957234483316020681819510505925984506706521981059644082622052062798680404286171161802460778131459213796402767188716916054687451439083112383084221616972204901421443557456256140816631189292530163860517306114698221274506364291828473857472830689954063550457575448825853292898769840847076059730721494188323505991176254184781481491381424264503468131986689003244700759763483927433681023038007295204840245512801477560320089524523634905515785258942972078831134817016591960602357465634524087866010632430744378947467625519442629159631340973239748974493900846885875174097915416516868256515339919625547183241976871849391703224401916673795939304152286929877580572375541762767806108616778684040724397065510458988862601630029457166270852356977309573588244866201782770211616733536944577992047653816652213095255875557176898880217065942128436864749267345643488916426056111012131382381624844232595090551365071688565909857463442581798267522954024894326185210079392219980636386819459803591834543793866104201499069949822642126982471703797401502419860712216521121704098968825565901954967782125212173743248215258112573096986443008759261652827195455623692417858135287500827747692675551714419070188221588895822061895293474296556288104158298774481476565780955334723843640296696173409035578019059247252466492509741723183872104304364040910522798332799585101366029040559626055908560654098398843249318780166561466526920774482565421209822510682432280851118570201146976294964142205398060202232272603381365300153945292452681643706314644720711864113062691706526648297543625285901600539338004463950669869810257361158863671066031528496637012202853605734070252821023474577340535992673412332207139044907437836120956100848077034574384378021629591375005071211189223931677419141053708657378506392590891119556095628857676321212020946608262443367791192447848163225037138785126150662929986187061904177171657817046564596831424539062395633247578771763455635130393509514396114173821414393962237940565103914848454859528666698400650233728207276151598921292367934279604890761460619350633400325205931713414069665356382461327457878597445599384707249688375223782891796760042853797053409127039754928865340295063804093786591360931521008970355765270716099400060170752648685686346785840378979186711212852389150267194224073016030944640405565748725186659970320903158156061356064768735061819679296945145350480620847721271975204363219674935831862555379042371165009062192951819468039107478461193200746289207839320129955255731452297482362792398646237048997122436103010489162223774652016979386265626792739632010301512154115436029425733543266759443632037286686942515439724520651867574020092856051900255472627687851311617285664112197337605929540946849952954208066739089941779135040517212601423526580262648512076101461581687327894713518335200427463600990344909987191269117150429157362358240487439089860598008537234488338785606010147984842244778931945088142341520662590124867098121379455997823348124418360177089245339074968004662405459656100905899870507556363356004599523275845036869968319157832765069187809841854888809678142571074455523712799309911850505759300541904252549646006074416504113676849782033669117042885814683979323038246881797370454491900896997189280211765708576083539144429221777761330317203444307216706648373411854630885298131419312224596231362560118255013176211478454198945359779592606120019050426261307868876426705382458530819543023304657351542296889904149274947484033534344837984211125807938308644733377872092562258851275833535410202789015033867393849348998508363398803206111393242228467596599377798892925002871597701489620184918522782949811429983157314508124521267098178613344672973989411529888224638160159530958280814167687272620451333409255229712270051387955768797352542656172230410478726932529013318158974803489503342224496399803930251033965206759946151708818262265909282362058160959358380751412795242207366211070388551290067776647935126394132422519003429657843447602070758662961763834320795379706855552982667320690441133962766340285279195975867490799229172369468568206586311561595734567376694074993106170428452385151238011094556170176244151578309532723426316205909483851689493159813969829824789723550488855358232871151778189639358444340965827069871521161274175567554002346680798889315222701151954527066789362906660480684519340134549355164444795674409179532580129646755718985186650007115218556661254476490004291324371221951785223609017556844444787756146377300513218863714447608246113168097519141165561437303585499278666251500116302888054224907500594466060343437243115116332608856805567130278271220208201168374209692587965559948910244181257259493472189950599024764276246381291086041873431526423850715419301734928897381763437407640678778404793800394353525306729479944291882412933092258268879293498363120994212173136185874066988100506991940777920828030682112635661969876296142524496924599194598463081583090079151000742505497217379706272573117145808676946587910876608893318916286832571706218235547861424102997241890976226025212116597530642462974189913208812175636182376784298706263023198675869361948896578982869075015331010705001178778609148274491006995489593177475086012969490212986973656327129218718932467907797389407782440683529334968392904426592462464056164828399838908437468431033504843153441432690421305610484719448926040840101168364234273466301955663659579258726829003709143117233986330123274964873825400936304677375007955060359395980286911137446333044038669786861317119282182664271776973426033831221389488969328972668740806271037259081490307161655535668389461374270175820757803257066487869493730064901138603038199235645634363228149847752882421883194980843724373167136823615944586249546215872109430236935803251098306301256531070626062513828517885320689764760265768060786547520769289453408918996970786297380786921613538368945215754149556908317510237674297098131446586642122433462366499254563244619391472050866345771967864852901450864287149233407250830109522636328814029882482015017394845500653640901526683254987375967021185219676067977576197641620385437764241773061755663676565789559449403449621044368502435863054474684393178820933620738621321589087583437947910075942864049235798254171077355935703414892700980995733737242583111081958480141154416346367589329752850324225712087180324964006947527982610759565653577934925217181565882964096712058542263042628696830510867980005513623811961175059362430553347808897818802991010353291352455868089248529014917405460101362651803945286138501990231324189902330445445663418818319626005087301868223920016240653207344923099963997899076477371376690489587975376451726031104015515726397285311234589687403654741248244591628021453119270661909550046114300573724163205295885707436168196223354665238818282713860363569463984067828190217645894660245171894754507985964214205738546343144403906261319076128221400976713238068190417329601969839513242366316991669833855713617160069571192598675461976344935229630582120392015746110375917760952702332010188430805578819848183286833909259161531310904246622554701010425568012887018118410906605983694818605439678740736836645679986803548778205667204189493113418374869638583157521578913324265728999940526971148155026688431299703867857960682277565060819626341738933970026373136262333403423139719826245790817943238767845563827906083937698812146551030720186348237022657911807720856580438295360161627076669861721244734911739942124007570509624294345211873839452300375824752883595045668968673830888472078174651707550135270317244045880065953788830832315776321274391436671669940313862360104527401613639756140489710030458821014898658437198387900392202526626850939980755607708739507358569882932829698734964687651816538253603564438680112570088245784881081375891001661648399571537666623010526115859126509356879954864053999086947072643488177487168347626066605742201754254508247242663104648361401304443698219420201392441220520583901664006846809270664031019913558509561016437923228637170536871242246202603013484985107578761585448005899067469245235479251350675438809076396745477742778183039427299204299895754223464281187377356092719166340736875095476713787724506841701910672194383427352086671740493580173772711413027707519511783571460829013581773101330920887883999719765304519833871720613706164980968653234464927020094940960069018813459205860717034460703552260275523698536144595454735891357386204695974632269614513711113169988066035720274193307099716239701349975156976769697970886354920103785920952989244360445930565360345960178746080296831791357693507624800043656629778520448713521315574699493788938980099098034699798986117173182140030728220725119547355410971427815040741267660398692419526906915807269004367394298085189257623754903344644214415639860752332127562589967651022802177142799957823481292741373333336725645716997136781048587352671433785875239383922557260426669256223795075586766063675594274262307822602889106743095418709149278436624405614902029372167238492092868698013268998444459173973375551152942671531907270893913631929053558352648478806508898366373295515045087315402840800649023401083134972741224198537696879136379591743210745862875909265631173159488878560930210277828731632430675681622169176119150698823915354127798704379096629008017240744742131252203391143347212520136468635708077907302689399582164040795211206994596626794261883380313974795099157331078893435837064662801208673882723460273459822754651805944736164124588845657468215477860741709204677562868425093866651617724802337718470314566282713707600414201677932470437633291286759073955363701812173229580381774494638733505794844154357762801418479749753722144842136169166707731111874472894467345376559078179708258997355710333246345356823476999165459830363979458289905667947405678594292751668022016525138671118412239783966176601669939026712358498590714784938969122613821498679183015371778531723627719855328959030143609281380747175783312726192173829938185520441301025503474744564269680687071412173832779247739443424963122313127564659118676146526291339208830955904468788909643287935263809215046556753021099888831727036867100819924044005198930686337667378628855601918033070242895846603425522438217215112225671277991895050653862826654811381320483136437182665388866489188819426295015326156878218400768739090379821915566168524787130649071302216478758768960820221524067091611084203905562111733626059681688383836515542887456680982584997813631491147859486067400993468752976273480090565581270643480396752402336987435909801703435275446171580817262927109785372385974431940870287001570646593236662529988465638397284287086035875426269945333316731975498148294924103953928353976242216643450090475219093318438816905002030883359886447316965746701505256249737126162172490415568466245077818956237698710313004321489968052120463446710113209372793414391984079114629440032274733694436015175430956527770143399031661087599840389904155236722682094309314966340714512275027415124582604774524908750333713695617914692812222880489020206201917839559924072821947136148715666544132060015846900258171306234986967376767874632520578815834136083353705046362687429544594823443500134347833694589948108146590887601355067296975741355483597658338255963324754445000064826131054224790812857989882325781240267723766725808250564162631558257343000980919757878820084299570230007968682245489440640862033126138632670224136891156568980406866335726689738193645329020751717043985824036685932262270192533876876949788526591730767315785290703519232294259811610621540482931522798034591397180111923515073233391545196572607844415218035714047116474644238648044097225954450232752827789319151593433596621235588981660522082833526634514976779427474385805730798674949793121337069413385322680089877616300640403508968706384954202514835774500688508100221956259662056658741192321900827569748302997684441658252676665299006898471400813111666197026045512585666144147871340853433580020963254953140962488230038123474998019225268923120716524319517648586444803869245357592412047118876437000357698711450183794720760629862902429940267133332274176584206742892839997009214543056906811522424305254284082608101097853671042375829039663124160202290390451611707268036834535730076474877939467688562820328676752483254896337356116341634100285055614824435872683758843875608892784888809758079542785477353908600433497062585184303182212037156070847507507222551381966174386574632633270966923493019659291393382716454558214701270825699113197749514829540165181472342089775469182040896309679073141642874307870178298055217792319764905252863643574767485072642406375826369698104203480202529321212708736918324252787692658372937429133304707786108920045640886113066587919676149850970945541368661252389643121809836284967848360612420777113240985809423416018456674471937356689354508452134065779787112112794306829379530551409330297673479609645534168161913760152156712142799203567505136727249437635745781510068007793709636269097235638706184918254316226627358265348863141775920877394920107335057105278450917736206252011039460765802387955624550258018400149990167879249023019629301779034859174506000826169601093550242924322109199488276819917511105559304916484708590712192157742340044439486546040161130179808215862211450382157403834219827897789686690427030376776148081740842636357754896308441169406493725788943285267888047807595911577411816615931153163940688735623933380830270349030333965846788783886093508560288080448680897272382173179041346811157849372142380507755982201891031789074207722535523817622820447603579143520785979833318676041020096501968400199031100843971203892404085613378209380420983507965818996935127729689763829367528660761873142787010759865722398305501582647762592013796935730826659911344598944096936432746305328423704935375200309597553917506495268887850975967076090761214435569533222581016360868292149519860857657940365786676173593541284840341052669501820194176354716915694138135753751746552683630743443025586508989848902462295146668688894466893503036586758466541645538213700767444122981860120425384990221895005066368812132565604796182762525687575454354354473707135453843532644885184796155965935029887648852316481065115682183240161744701105611389643528475791059477393216325139706461374403260462692351689596823290060167770348746834390132961520604379443963508471017747958801976406312057736608590811266531195635516188457984864917396579235592751217623104076286860437543754850526852678034998301028606652709043712697706938140672587735635951091240458086869632380767178082885361762987791964320989660448484758444774169720029742593203059800566439603332800888693978867400856130449439269321596812173444637669527519478987614573967250845088078913979968213206634873334298014047658014155733879562602820413005325186638318390467627038214711347753084008367759723723676801304126279390778702437504711981585535157821922918274587782545959426003876618598192922705184023317458456669384826118546222524052797115754273017398463105504812097890918675924156711157373771181709859768551976352940877235035734027013451392236986915036409271977650607256214290870697793968795004393184840352468409085252488419302515556068089609204688410311827646840439994260215480816940410799031583048547790477552199522887318196080675197255034074991715181739312198617123994544536938717504110408170057050953197936001729195230758373763078651804203271286386420612281195933411636489916459675227055845615301010221879935787863905459417370282138887611635481160869196218136936552168102480901783234530191408808994622056700342038609266574074736639344950110825782716498531351503390412046509930198009999871916370710938764797435382187159786596854822076020023090543953508416706629341760738550657863200381711347031463778012204727130249484355614457064367158719673675939094004788717704366158145661273077398459228166607198917308854369976272918684557298731335705886392386138395973852800114309702915755132936323190803053236526191470774629806229996700727992941821510160442928947688957647124482102633440642772556497197473827981498851998101587720468508061183212811496574428620102546363319666161559830404601005323720556659534827561526484953852209630124065136107316769682419135169076926383070353669558442914398882655777008054941111295646586129155340456698898268492632506416347112219764432306625325409586773436178959719788099767659441693335393461863029776029560309452453039537319018594843033741606912766849686258814195951725470680692764228322994916645773098015549215890432615884488873795456018199754183026816305837764561824039480609365279811320305057662721830468914661412825834755844505489157194271150265776496364545472533438023549378654414784164497873776353032885142668440387431546148414227197693810942870665180017125489266620898183389968088285979172630071714559214493843187576447272684188933029194473379040464646969091646733782829815450958975092343970081292777908035559153343303947877194633972405510324716243606947723336892313663860305954975664295113439160620645466994876769541367358769086187718588699205134548017998439443904941262096375264790648516796741347691346790059013451131958369529611411495492351134728968657828549321601333935732093693672160895167941080408503781157935392477238918619678880424375493212183338590826766048982872530682411977134434886211260707685288424935292828950099071719377088066600589404506233870211217054060427345169575214418147274847144822872628060211609342455545398365137147887119793261038471559908856097846001173433838566765009912391866996900923709163978944953759701518544497643841267753294260809725348250636032698795488492019937712157141610606679933150817523559039005933005903277341659120394916625318490493054813568664976217645920461454337420449536009750235497051191226802676293466516477892774471370773041700437099071980867237565926052640562895200115938043807644503150219550391502662019791696307780532979385787096208784800022294220462321366919383786442758258052754870825092722378841539819917887598344580261495573625319559852107983406497446719504787277507522684511393106688449669668742026325077878788828448881452499809719790392225160821480256986701032843005064244113865836613040940885203061504041151158544442294303571642385219243543047735655105670480352214827165059417708807605630787226919526366394217123617304114357499801742545853236327584874216121537791213782303169178708912787687561347673153677583131321273275631741273162142996395243393524556827629107972227402462700752324201214666509747949905613122760078957443203526417814875460360901835919229536860742308552771230232201339563610280944280832066533735728678989212975369887222660307947747524815539029726592661471594779905623586704168309135811456784351160860042059946743976939441059244560434724559132881076250613365984397167582296812712716958006997951711999379827212424514973316773531663836926915113056583138502095375642187349693839472949315057810107970895505193770647845470696480259218436054694093044175121182160605503264053895031614694530019253045385531452137565074776619890730157416890831457037972431597811083857757014930703888133418517206283198612262410010614176155640850104549794349683403806894029675577743418741897188280287919798436986998972714553714794773871315216258983200341864853291424124300597673453204039732410962364805044872808132954570929282548436772475536709072818258641139242215313786860951837642183811155587405853445047431111756158451558238314348568161910713265910931463721783538900319723082699887134049245878659743361291761205624197502256654203016715991755467085332259715429099930550594116852826591000477052592815207440392011352196875852220806197812221318533303026710603640278548234317526453816601480837896440923556754770007512338992531959336954687160582343152512514491096054989270038013937336764431085159121884384261271863747003612670708561607142581621078822150002401535147396174878984968235130576497724699819880402626286040338230630934856024298885568377188119010591735351674494773228355033881171533180931584824822255946695594803876244358602888594230568353586539920118254107178623758762342428636456848471875045360901233653670400448392411546148564825936009324971372307994082371590971153066999355375965825889777651441028686207092201042841726844423790620628309903429309832159869882207815568157222854647999143874654386310116370801835228107325025193063591418335891529910987685888755232550047327119049449413193845474626467140644291106899956497483700362679944577247237467489301647238092030738975687809857678914233195893295207809946694531204242304292363355712312562549750651814686494705340427498006448047969209412705811044392554316089774175241963471586285759175598095818262730835137631197050007019551317772696702499071210647643284855119722890694578926282904628755049105858098728610533611179210935375205647777218859493056172443602597276618169858902537517172137110336344974632043377606739275818012744686390048198426624668068182451485205287747997258251534539973719094923252949993182902593334338323139344323875623639135358016224545725126231979929597772996525851181023122786655736062802218639243473628652868539032879401731573473796590639414567211192174667659239158423179278956172491464416505422099953508383153008352786411405602253266136668820002882107761825099339912135486769199921248123599446406414702447762041524402389630272423380439309930234164429537670375687414818296691385258470702479354557653986376580621293498076819339014558500701075095504152081058448557902490111170610091027641317393037399959176796046686271594601059985129404167247627504048764213812415544180334042696583597506787205274814190429089647466236194627995020619505672403638934263107874574213373494888829430496657098955005593281602937254572436643560989791091868074359600596931078549000222577400128456954277121294176218700930544304810101278366894608011750553479429874469840462630395491171372088874289253995258073150430650685732059372545358051742740096138305736514079423788758381837457909549025376656435468338185961297130737277264548305382660882188407731250379671168697019864208196373717071727644989969026609420130595285166348805006212944959075201602752212953124854649547099859070851218962100705234986056015786280178781356672991832732079029056230766861217087667633872541479476807293744603139047401238338565652542983667106774888498390946017985584967607049779096698557852768595179446916257846658773305698194375630730660857595326949346007659910464568446033343698446451960056466336263437938111780385930749436570576792254608548335351533774674050727114487826426411907473355288380587757292960638941733425790137437634251087401471791477608900246892881216771591267763496208226808126810172163556915505029585801700183294969664883753151829715638653966782523906745463830473102491792885642350007576379753591688074687966957825390877626480394037102048060625619626202679955175568136682714571975900058747868366851316047855189820101522086614535394750734176989464328943472446796969293172408678520919671682634797167272754577235976395832750728956216926090894593712887322677803364237825555181438584602860845426153282192696692471017184085505605442217461132938033212569023330957248478394382082461797419701547034667821809991548873534929012207227934362645193932767238420958725878736878073580548139997239200959269356265704610247551927846328953718126959710850918857040601563939052712652548931735329067381786391135944794194536349557993958553568201585650361632467543648924289253666997415722930519316462625486935863719635992166447256819584797146364160815387715061924465437298598926774870858332460294072831233594909487706030960217319481090588446234766422032269246576506557923401650287557761978339798987558354965505480708984459347784862470248522520784586790010614079446989219575392453046528420964399755738132290639603832699593213888112573672738898646308332630304985088663194922749459343710918037540490374051677467417242574615055614343907563122388369131838160668301506507091738337113205042970240005841044806717947535630008692286074257805435203014242275236729101608885823259746491931923040221140321706124295856869109306640957317568423165074431309950698487384944869161832928073374461485861365024626364085424265244358127924071295752427220613727841717717064545750808465925994656799926407789744552864707319469375676017308915604284596571415241064836709434843725436965294951602500568530383671156528353106897602699832155430128698555515833848457516707647195726871227187209737160517122646137347714224397785000033975021602357650317595813089297094832017191737869863489319518621064733880596084683443755678762927606648345421983756705074357038850812474762849826812554425033174372456404308447561291429274275272011746649054419666482747046928750688942976804410742715317820899577149517792971807720106819564612645921673805412566811012081030325472923906999917468665513383338070140222640853784193663009930118699954723777530182480201892635243784553341733413974819559469722189995187067251214144017052248977744759930851821177403197264296727951089316454728936081357365600842868333406941457717445583031335704341565598245036139056115802660690107026642614366086564640549639198617097634817340384553448049078031125091369583841656518294327210178361213072968372054956709475645067466040726932747950562492535127556174897919864678347336770110552284258497334279000934290977572341595980491769025760467706443553241801186965680160497901640203355839411099693248991969908342240118668932711037238928351567689206349436957469831990243349904187726389560453291466501544760486028773498269548191569069889900479520295241886094616540748425018752858975109079977925623068844780963033351440487090206110015948115215462387285719335137709703369999479449823953523015114956013325612322611337015871261653448897918763532932659084948098397421396078437340504072213768629168924546070121171117177363375773090566016152123373356971405363254035765489245833998224673280272593351607052376246974553194948864720956038011137057699786241799421809229917495709314306917362857065327960980179701671695350902440221823493756692155954301437429942659650081870805409071700647383536625548193590734134168501141661358915912379900925128539716960124404050576660149733664031177629232176101827616085788592405241334914845301096013556684319548244866725801571762814299641112197083033437511570883495122843080149808245861550324839419699131693072344147825245344963593952989770949911310827543684080404572104878518559639656141949376023873661671084626080157579751376516717339994154074154831546462227379982391515974858151532520835982590941215510921170862107074787702940549866537004686261495275538980040487008399116829552126767586315323910905985519184287809213735650527916838958941140875391229342626990264705275402323759131169239049768290510244672058729652963468874344179151681382535015600867715724275867567519951791339708158073724823629911073889208332506177238539875138369758332349326260808487514118051006693182246323278382915507164566231104801203578783252125462781214784549951118305144990552093145837420439069441421443132073362080633794134175669385814359941583075846944897838756961677840346601227778954002684926701390308476198641048180286830282430569310702626382349990438849011215574621718808132009192961018711119152639702700129649331903035480670579310443402043541287607807277852595353418988517655457882948910607524390909917892690631688545841755275022411673274318582735903012406698139892159883622064384826699283129658390762031984277774779563667719623528458044195579557460605382142012781941935916578131343018464714523869981057409335055692479857038546225258918460574602480323739952962888364745649821609731700012597444163142103336567937169060745524010687892952406064790060471229432683343105388414411954493671436179602546816194826300694877651549874117916347772705894801757312342194554793689525701968169940517122453605442531199726601362519727626697673393365614066721659334107106126870663704593400282016361628373348074849758937469030809830127783976259576402586101466172607232456903699215174590088379411948029956863032823013830488714650092949445294507454870747857052158052180391159999023969690721618415125670052701023136964635954650352505037951546341847380981692628220540841601425815134440211406644824305579422651996455402379678155950228160413723779634367153096872379921840119831002970496178845632893437395072165531547884402114317276863155063355090631159428703741484690016919633972884845660815922435090663290160538438189233784444933788378103414799453784261498316970120338506235700421734964386639975645687655135638609399371455719014176857079650203107902984816707584381851165923026960878904432882599678595753411774273882742220221351925857877367777586006999606567258007961173680001498140645671008859595728227847652006186984589732385046212239241149655452575321581970893635505524097919951241215235203712156381934712316509117207016172616311711128984287720517610872018911568119638460572512276151967672820897139039729318145364624541998607404668833134410330852256904972738552736750058306809257586448686850142740162869605164621996896082830163209131721751392035656443516087304122504647147689328010432761632092619938017758041914652127928845260542226040465343900063977241705153163972781571656807187971408495580654559988050219349631371834291506848603448603063410715566873010410901376872174421111295789029417984176935091363982380991901169001758184423006040932443200098004915816864036831483375849258622290343406831077384677322482610079907991661864687779613792126706961334628516348378601286711885434522264451120451007647782363754997383029076616817145876451547094880955269721619281874728873203173875300361913999890026236526807431590861739209028176491996539516358431536402324228840774482764104814724887130971144284062389414431628439048763423146177625877663042823676489005333001673207266694901139690555183465838992435545343720028939921453223868938573485064548986065199899859806345449084159842186908899432283322091569050075712832092785599036500982121522569017487141294151800496523335494151935543722951519173187569786784302113847743285257385430245798895981091408166909761520605385894386641057967596301287975951493931154886274750455056859678807527267153765305061023328696536006274213617030851831305490356000365048203634066514512213862914624416862795599089235901267768368213599921197859129388560866290769868593171293339109596011142125610156671803117239875261693209498243948878318933046508729431604888983137789138923897051628518301934172213804006571465155023674047297537103248027448564237808213886796078164395768166794908974525258435607766733401072976789134755663435626816234457015379967571998886791524164372592909566725366404327078450468021855984540072971264816938258145847967202044037881389206257188701932869137520419605928807206761166958024332143416292305127205564429009068110608992352317050343920874370064194173464726540786594754546529940028357646422179249588117255707579611242039820918872072624657581258208458736059381375358658794153455889593074511750148039120499141831114611152873266152910361349101578326538572745442737115329317060168195841633558359009772669031333522281193497640009691770058067235020595243304302837914061103350938871766183875238655772825351944398155969920892652143237896418476031209628414046072324086494439028302632029522266110180949222797598071977848943333361207177923893482962879784014895752704031159786428742807613098294541710641821184003496687161294180900753962039578250821866897736443583485822335484639602788133010394184981274549208534307445169124909248829130631830575345138225621515317217754017635815003177270880903378273346119907929941046092165887576068160126648182099464515936695551320701905498004315601283201176564140308601650193379207950693377450518342174252705215317359510588799509884273238454377707264072098103401633063335356772777367160361740652436504759095925492192347634648289445431643351549331838462108068943170910755853039141724815923389659761060540212114887705048953225635435448554088351931526643241620085078344687392966772999855215446906443237549058676676250265866951360459245959164673956951094794851467687431917395539337362158956098553987151291219862941678022032764456766266607885348791020283070357477508627939855070080715011467899024898508656980877752940017359721269263111196063623452212278296543162008379719117380992532279170027445361129758980274381725227816084794450337742864714365003826582418171530379914212719284317253320270112394816335266529425921689553090517807767124852775547003002161972586347394916914477671995096362096681145996656619034363641445801657653889796896596553051305485295459952574265702247137655238709591314790295552183078966031091568743211270687890720404840332031041140989014731998790554854567592448822214619841555629576528813788572954770831449185426326904625211279027121449401362391350057601960086456344261558814728833599716535013275304155132938030171973698174876706140315201239493827379742552745225030236984113434515604605220315620633081333402777883847031973892720082955484935753953025550807299734465325497500115686390934321056867612204665732483254704284152951213808613405303186338682663386821414957715162676287644668833746495529436629698371676681291531395980837398011284405711863231405142900839110353239902063697595003656974547923771231757984742362648955301163690035040138436841345414067928194013718783997194415207877716570316053314132279374948096502725402226156607122706747716550674172073691901203035207360662628623550775595966243253239670156001429150620144958579719866159436013525446553869046592096287577153843746241479635944817785951987132154013106895171766323205651159057555792265450494579706892509527617685063643711985474080924126500725418362115268401528789658788810842491842070531767098842985329704359197656162639762206960133281191551099601882285671325357727705610710909057258264340419153228263426809622902597710972650198180218850017685469549099849886147464049406962003471024822856751885827546023878640986923956534239797887579356399044690633343134992512349203002215017716751871177386779009450937724946321602347667602066410304859697946519389772797679452359866222578176159777437027705232012229764574580200431123661470202055706686899348831759205995854809872589576698167673490559020942708722107728595495520734185905430366962009252478997062634147535191407362214787296424848052883228588401737828734980488192713887462380178831055982655837193496655349947644146650060324665248598407060894433836518697970072833474926184181830926076586061229963371960558477782736845624415368645807921984470613992148688781132620474899351923212543561603864436074257263099403510764326544326449626397071105535891724582442191492559821095655244879182116661607577475092971689933920030240996913615495937688058668841151227707761605314081904716040727026795555719091709681597989449335217357851803111212079926872720538015739903212300484270020330154144773372105141945436823207362390370586098538854987709294912595039870903073708455746010481465758905870873756375861093072902056360798470785977336130710227173530724105652190393134571687873870824920662731471636101659676279051691720120424329196924529267701808757449085104749705206162028912373656614082815949157154624204082235738179422184524379856390663401941411935983624530675611490941313592206362098529928180887661854902408456235366718058436125270129649909799918364255442346145936398032079970639769588806677617339066782808772261185262432337406085398391028807407993538305391384232618880054773749727316381554806521149667757186943278654558842739072247845706601438233078062332857731517304628492666835142373610632582730844523613976468772462703198560823822315839109859675164169960411363911677496863122387906344435889434684343679123314709357934432890091437690461848678044540653390246395442484469509289817022421439534732837156176231935967315611909244461991738336100896261914060112472145255995430547836993261652722849285889785848514748401848956829788212883355479600098855228287660915854283416165667360381779432193026565586075524057846481172775240024546099898301228524111889321830603563856504645325788411625986665936872891837347049353471486468700821061019806183113607713580751450067076275061050439227670822870244436251138312172513934015074726672796476893425134630003028866041082904036849587330839225168357965822520930517910160432868033560181442062874620054729703391919661433643105274206156318093323059268507882958051830061507988492337686815562968361705806005508567903297112877523186947099781222072595506448610167654531682511935882960026767210527409843689721797481977167823164949667568433014013307778778138583478541955246183874287553643653105691158907713053372113076698827338006482051346119804979622606959894641524800436176710886536749952233897181509635445618903453574441678996394986405473609051231622586328271264862997262988855845981748699711252311339143730558915561707049951141324256741035631058438206195186713586097592545021946391584963445852438456826672378248065910208375744897536527241208897905087780617817492459584870292420317297254319314209379890970500541636591262114838607402210911711797976584186975090029751336089276805638256420039522332085483096168863454274934839164157580680694551177833426952130596335730325501056998822297020515111345195753308125904869072249529844396489326174341263531201677743397782600762140037687956678482427107219247423886380154382087680791783960626548979675124946302599457885171631962087659598515809879429208625874646260257381439589581141519777161965206704979108466917761477728412775642326513566982504413554182626120917151528517777673607375486441748273031672945925919744049044044438455506268926449234522286035610690382834008823691356371361545357636645020977337664225921121687274107916827931777165013226540321346053434057719018697170749977223126334353205798112833523750380465419788572505215022832519168987581921877420461970773366065929457917745373062740144234473304881129730215967945634420523529731525487942294557567895220175310820023042088776315537382836506217500770841899435656504333209982930742566479546071260186829571023060645125955604266680210325966755312945145484743582665483144419658314463522794271370239592405710702828980890682364271031502451340521455602919770768708878196000544851613750036342740375253179297057616191652821180669454418333092091439385093992943974847921939954555873650509005988500559469362915995964679577362808536370573973271290978525031687549115219331856519406631573801864785285785536028434429022958711511265828592203746861414141049683779644251692574975662912578648959568254297138246387220817297578474720636787641098938459083037459686266942687152443859923280312827063332390499996800216954596836884865913281099284352659014020018838019224442520286995050526964676979630184414350648588746760838974546846701689469501086046976274715546480669432200240865712487311079378106607733602334928144241947752726611825795246387072405610317123324093792745007588556108332128118746488594047160189334814587504936135059758449912537608624059405600709543726151555683966766078087512726305793551921665306902650444356802375645265499534232475616120289524218909620003994203206578414873937665438279101113206878354452932614902557945244497318327698580848021333978723485576754281828592553439376276754166556603503514688971236456065170046391787351437139075247544638624669725384952269995206059330954816749899583035115049233553628880607702667461621145842838877233687248014063969528672106291255327381736766230625743741049595187106303445668188146301490283864447031187746184061049019964963934515672163323687651648188586736061188176629172739740263386587471459644100691599918249025986531086923575971103614293401364782024361271606741761741259176855235944444563588457539387036904610574834649811234118527393892170651118081795004270352229172033144257058717728077083788198087201589910450986055905083239916109473002176872412696874321195197993123693195586573731073850267118879749597182622870801994150176662069897489186985944471513568179968153350328977440885055671487238833499956273647010438415551433572993602731483560767710969973691862986751100007598759253709173002003379392696656144819825461848266364372671388390007664345096475828917159543595660070534995177446107957939833212856867278992428055399399327152223196703297771971181683701008815567170164364767709622922500711781763592563284477542728048049562799869405803793502604348973525678540755737205688001013042373976696950378128474416719677291893045422624128621857865758193234712276534189010653185567250063587731328518975827064016529446594226387655813517456657855526148629017311105528720086468705849534492077280844282737721949408126608426175829445966638217346555810433376059634987838332393187446696149806191834740129835930764437588001822689521177625896623907546934558557728584859503692038849743999582601649789075326678159423642333744061385182487782948219744167705885780992673813960858787294570707924342888770697436511171392612545076417425871535935062807659414654401823551412644840966616094037927743347498096056431307411748533133731148932356180320627835677251465464124761404722737959136900645267873604885907740279403394123600912200382192874319743756904071585855467593120015476625154284563980205754887359906865082411861232913200434646233829960187720857271215960015633767563915449434723839524162000285467326096034628012307154715199548765934434130059254103380308852717014915366175679023545502199185592241293508667876354300021958436257299852488431234013989854661802117184189611112908045616962461654797729443839551744463268694128070610392187881131123886142574115390454623191902819341598624403171213664618976070956018704504326231322433529227247030877223902751970230427188053269319014685184362504327216270548657263330741049228565816375639952486027944398788934117495148728765971957435367151730482258453944986746032174096517286441459098779816758535243257637533192274615579899073412308208694700043153778192127150623146477120014618498001140503331624454786317694532616208164062499038119303219990398977388010720655845053352722870691465250351931841407675086715822846527125400322475729159551483586366988749971272070928730136626867899815519458629485828045157931180960734669226918307212026124175871774792261723252069626727140085707969752887915641256309759028445355778995753666780531629135716696912329673701376284883353424730210099339560550237422746263226220570028812440830552738650666382978588068649748022449416534253751552644812060354928930818640794150386146928972311028382179596676228516306078998135199676003463999567588041733494704954103801233465230163877437491829757186135642079579554007803096642759128692733303350335456328938300593652875120695435213043004962371239914168929262512483149702224457678034988886712515375539996961145027185241942102517843167233654158429887628694256971334160630843179436111116493966195802855412776153588984659084208921349596597787653261945361946559281471887926695978579889854567622919713204075445902707343769417997429172507014830092097858524779550490569979600599894914945467581089412171055850252928761670388129354950529324012508159782064992658031849928684075402794573438686716366230755052341796929139695574528419994465847072171273370803265568267867215513826696449123737762712852126300286661927477050191563686471421604095772850477796394585055232525438747061379547157196205834475277787266771490382404832453836331757954002895889981952992660467026561201802894252260312354599456711288732655711766924666267375281883068989509835487523307846880913185691736523825641360227877376684826464323234541973446401271131108418162093304360105731137203907637279075554085121301862812633187575299389916910910355494234036149549741786316357503729330753422307393769828208841252506722786898714664488066727719557845155349237620730018307066570587429515901004213116051634206162670764094585271369768116147382652158331316014986406165765877860535831790584121829694561437493100627635890841607170703527786000733112043474677895752336817681276226888192325826433538404815943582887540112675957753363855521712336537655790298494219156096660749262781527152269020928942512768235108387144847988035175549956885420253896202692871733541677171984636191395380275199248714217130557492688141823277299483573364754712906899013040309242436439295827654525859475472055479045772223037279494230852989020254747899889371554648673967700876964130207771285645610399354518316945202119753087380188141291556514218868705278931022293939717982750575263417437757083449691948337800032210259967367773448804095095460083736701754682248717624969930720354090008944706337969046786401375704144955707676097833649110130173868160093440254573846094128434347445495338532930730807531196284297678745433677890505467228625825591513046018599458912502668584126450875079682562456881758502732079664066163934974544224303546104371667832087871164850981382297000330928233157245273495010477891282203586562070039001287910936618528850968451491043437193773400322289303093458800761123817206321411643856237125316413312349399037600190778357123148222640640277745783428059427333604832529569936941808303387807130019757617602330010200912380026234435675505229877330838582087360628614012152664007000945662285014397107623944321767382390159636194369243249511127444310834178941773512853800375094424766694515138994431342141083785491971376462063340279380692699810559487259528527309832521110994227692203701424445941285842189301880224895302329054768136620123617972805246177436156687398590018829622788879736065487944044181313927062579535282667992897718074079268265133701894231521583835351451120511014160012326183899847192072445614476207392803268969622840374805024492984778706585989291718840074996663475140556841627762197215249120309132842462571994348015719649471674336787066606696676126371998481830984564011257982720614201000443236915164936843277351280380503479455407060218382381164852979680005359741202865932556083617591066430127676054342048475178272450825458147904944642400576537871504175486699121764023301653961096866291299436643606909238015548854762736734562658290882064532858783184196377967974427671514624871345386811091985885971369264204383185381723623382498283914910496048540457036483254384654095887269766374200863769826105931258928513516916953674856854488934259071418603017329004098280229504369832596251910376236953490131766672581493983550650585301752561923123385502893891691111914373634480160888853301884156818732420757803936271526331232460285472670424652777215802047352028252259198254852566134846113465875444150776079115479518967481434563536455608796836046775074613566686686937279507723615147617558694901276127731078589445581407557433872728477488399641687508892464885210763472978149828073973469180756804162378604145577335676742143160215210243687924510791309134096896719894694082807172655603513361884799214201945602355795714060468214975548147128576395266848003365425747954594050154879405071774321903108083940313864946632946645251648737036319137883553201628082786453056750316315087978292769918889869493798748766473854294505226229590097782778556542412695488850098597193006188385816728343600961751467789676730115001918555027135219913398646374632724670482622948988247898632177443942988836127833484059995368669659919285578331879079112448636020926467846890482228209371143273578100016279878470175875166528522215614809500512248980513762762660122170323356831028551754377012361667229506857973784766242912598674043470340083466199967369930429664437698567000081867067955091572473518875804418432596686689502200607216555169688609606895355650693964167461775661177567995461828026681486322402364406925597165497680315531426798047170016391122676042995064050483416022421676176451584918453219568308479460089499454010090936578172259926792267904837667265199692717762916504444133814470675249143718797299901924136451880883580463534277201745037998692196574525570742836235113531013866630828618666942189767953014279028155069341351000564944540706147014189225718504797289701641832766334979028715277253799831880625739649574888037184040284740274136978551142801557636446116591040731366852267391161045916614881710122650516555857269857240952120568135872830004650565814880079753683774403245191190816150612341695344952907878233112861487715168260792124677771208369592463686481299583914451641795423037084031496328510632740526346708054721606478116507792565829634578610590216029932352277431260746659654186547994070482274397485589294331861539670440767509078021121419965398568916479780211580039971483593417269591200430952418806852194680331444919830610351300584968107764218831830246679382543729494143683931138519162793323495814197395565642841502446739481758144228075651555532075943231546120283347039074922601010747136086030983128014814471943050022682018388151055866245353849133051675675591149414481409151827911526887441857277008411908342340073325105927642476637321779357274439220036487401798776876912182616807936866744833779818569303735544334912094437616867866007407960368306561935507755334065660506493775480860124706820450455582536149041757149685834388477842979297052990397589365032684938811522957959297051619848942661398681195823730359476578026500894454496496001011880421365663887273739169272603835089573257392836473524516294207947782534005027806012206909704898454599032455289281360315233032440554776350320819393297212336485734218932219584916456187592404076538658947494291891170409251954579118058211541236241361414076681573487503890202759815938325974129960657703306237664016678574074126414295904506812099723965434730003659562833155504415376615046774631650617273634015884951721356131916303905623879854979679921553435585140294379389274608391388448901639980461598560638782126418750455003553170967112976717669061994310432226319861207557076002702948404550291582744125986765531619385849942139294621378409879825661501197372535655087554134324402477371067353850810987875612970051472514532805685319595247586591432237792879727417629431477323657083214093981097329673355506404464476958613487992974233653556337961033194101649828174287348295714549052696451849397473312850568890182083127868288931001817440384870059921349482495248742244851289536443490219247209096005970635730295878585652950719784427036220054394976692322803837790631710083011873237685514092959768793426848385814293025497080258591966756957488446210655166227348289576135123242232151006318631475697120947678692523916777764567274497364098039782867630145648811012571020639288275969085190229036615202266119877748053012041592143230495237607120161490837379171638611074394739296239801214166513977934712795414932720220753899283594565814557720366998147449111816362517686561044107379218675450577293422570185166669664673325844066965869967793482826313563926543956007412712964596399593551144421521781177537368422307978580238272589681350858761067125930066574252667111509838416394654995271538949724017772908168277526499878454955312134966427021407978205007145974264873587606148990399909801555320470874138693104157298086795955832388466562474818573941119788005614432552762027513349198810134299650040129466206569011987971299933815330473054453290122004853257881987742016045556146665361654269493578508811224679285409296433571326849495325892832347734799722595755092698627602210454294920940891791053176962408750039910129688481153390948135433400766136782098744308819949368979381736925124648510835123961916052335837657219849238603665684650477980332988678589063621594049238286591159394547111622527254592414489783107519883589472822973963972822619715995208032431264754344202613695330379434533360874081769380961286718149855473900161418827442002008505467615769132637361754287447298516654523764973472960227109633346818084774242009670957051956065062490858978038660860300125548150474233032152452189705615978184005809420765667895997743320145065053425997297002700849334422614859038344909933459245126520422824497936169034398030903516265632106568423665405281340509273792110142140274090948588540161621610738776241500046129011782946310990318152673955519918866338071032655344100584118473867893936878119010566053533955049986724948602321214351640266904790343952957791746557204386229943469241048125187146500525414947861999210971920058149911167983290605642838865094909251394854671865848325547491848020377483902053946242906975504965919957089143023471698493706979538260972355145498484567849558159429257561167601219161076180439726506985083851531414330642446675418263116833537956955387809188645423245233585501738434566338158719522894817338952813366064097116929466887289664060936377814161328554685379563133523161256805503998899350765839838918007260559061766189328432880236485945074358979091497341589788168825633579303686877309915423335006159062802987423259443784661294117200552343511551585966948855671667274694633582331530460521093702559057056459471947810132768191337078500303647965529980749104055958287102632670126614986348575344401971836443012368673722446583543846415576782388833632484444594081482123573817698500798725873317151417513696961062231536215032021681723053876406608274330736607443671768067183755368356143852472068595449182220571863371276646343392179820284790736102070214463735011842926456916139091866851548979143224958948549949799693602225757203450640193343560247453699001451703812635304032172349587696598561689750654856601722795740259928631780763196227631364577315960266879571732127924347973603643423662491252835549017388364505554516305861758720863609583563799512137803572386844541501361403409738251820224298436262916638371601204053308192359877065465973803195936414718471320238489067406805117797783037366068747101382026311352380730770116062669579107653358682097406276252855687522024611573234806390227385548707109213989271559306240638568944705165725256717506722434467136481396613678113212802618197593149122464212057308243701063617517023197126797554909277668886278130337383435515856476520322849605826089879995079199511968193400283557316127977800361446917558063500800697895507828939017130792863831320201244983445740901447082609399386349345052698134110993219329169290783707567856018139437751549562196567850797339398481664910746733442065009754649257002554200956342893779154115450496086705813783561042950734975484096225556810979715153602687463867667469412876787443016752496120906076176988082700853359561783226041684893135613250763588419622467458673046152829834968178218458162108198905693161561122506435489774275299003287017459088148441980761919913306302681976243388592030561383151654974721009565415612604024930835703338779765328707123171244762634952057332057785793223406410448676966595286665554989322713608541236102194696359225719302069024996504064322203468537712300061734800965634728380060338279353782209407462974371430040371436919302830932674991281456793926824265898573617825279881334707234581586857396476115245155593313340986440293303100069083011392962863099124732327325775319178102042627714312050174403240529528315547808218135698819141882374878259320633710139523451815763759788655020701868406147501172826999051257978765789540463552650000894448119665832482046789014459628205201663626616492638014624530925461188010913291488976689643039804526165426913165261529708427005659962270494621000652603201419545111979307080668822580320176666572067588328127486857208578727450546908262925678109477080342576174829069809687585227833979436755767106502834455231189849259841637119073841182296009563771011536334778031568564827216909409162542510831332807033340260152444382146476025880554207026752467439957303383786034046736677690447726397825924129260449093870386660929429611216955253414847603314942658470923948731502940774981576554265898817543892621506708499830366561185509803549291936490502872734803351590951613362366811268048985915876934145362369771132509425263558072303370686604441373337944800373186075231623095420272421957051863220381249065146391335723520502641120367629641930951186929776953523485667744337061627411218077547742211446413994541442269441169842080183598694196263187006939616481092337119364500724866112049146843341663589241095998548968559053010904721319360674741567093197627081961431900604476633183107997117762784469355351600668603843689605514034921514309240490341655604607850099439700020039189870142125300924328488450079135689953662428441906048027534917044488587090878919839951721090550576499746680571829219382656035676094076647086090014235871056123185349464120487762723333240575576549559441499228769249207292286582847146493364095553030222040138862025224932193180621690977872228201011651498989675810297212558507696400291118558740192969474713135429208105960742075505269511219702579045307533925965104725029529936187942537094876856584652156349313142741327064213652572604980873201942994482601634883153627953020927184888681960372630461627559885630184670604301829824998847555988225866475705007049831104996669569174789439456737934796030288453635388958906391211065657395392588932018539170762328381763453120776053499427433008159674289407626906423469745353784967440119997649642509831753656287624201965697561555236611983646205762158677537325650795184850692358371658758927470449482115146798326693337429150424104984860076556349558588495434071925452601350418420135586375142226603815104463750774582277281599233177327365901143349978378027547692549200598726085341151819124060824242413300380362160386904555290639859023797641816990600366788385500631493318766271785465813053290147257450382174070198302845474084944851492160297528776637808397999195739786443324465159862922454995564579983882155345568642208180463589572976995723893149122883861864638616011812555383763988064177796476659712273928672274171450358453035668529814054325442263479673614573253430126512793785669027317863070869105870297347921572234315297221087010366900343556131098267217830336601531342821396890983494249527925351728078223216073296306620345610894546090140090876770158850794231703236469755143460442783918198580716597743187086619460602621285005321969250305048977561003574552502372067766594349101514218053292644037620069725267538177599379412467467002007307280005965036252435903249069164467467691372079019930725926488468468342145162926150201933255013787132327065260061621636028846452114328955835189182783610630649643103496332819413361367914678527699324665387283230082021492612482245884621535529018571786486016628489230398645482815969114726890507198107770967230864669849564386352380074047963439736889954360537714270332025979457329306180086888933195993796752417129611301414572410567563825463539182559200701351614535345529800784883104449476019120996502423508098979934883086881457083428981078883317415956362324781004828218603721826281522616094194756921952340827328893823648363418644931408770981947006839581722351256929041925539357326659365644578400804422005412220702309059186349294467382974131249082642743215316439519932694328303931674336282343103703558372174012851436933875279700102250624701570319786897028927700484316826174049095685866818182804267089783442895541458536886347520164100272406132240892277113576601740024120417159336268109273481251245103010988338527893157618429045933468758850624165216558548289972765285305645953952386408942442031988931651499238671909728127512253529610275559748069781623169005692378761081856877966183029532915909271014848866609141278461243460969860912486438331087781560662703166309890163259277588226190565310876271604547529207967029140100146146357033126993538775781638652749818537028410941522789527323993922418965441099994925682789607724762799251710668478459492133248376946581702691784294105092061773214730060210888995987652405556932606694753671959085542334020454797440666563508580456865518451384056085748141320668195752831843826848241000887929045767245307387964666451172834861351546504688724283502009816366573116901476592802608441952546017963259005420422560782878731385932682647399627285222638972989451957903311489324865521256214379553865670081647935972731124978214903414661036406831142801642734905199021256902029299714458122997069023015916249514285838508318548990804058050992256015009804539567779428742280338705614549235227199500890565671365681602205065676305506450789778449869204592939006700837363944125067509853565777817719165719526178813756284911489082068719788211770488148150399785901920928381639805986337053801749107783011667954187280234223369489468649937343365690787453433564467092438069375087699049280935256038028119401891032247365204680077240042806780828078674810264856918190525291806833849038670554266476068665204673769207366794574316893056879601212835944817801679901135075071175166929878950175705704072901543012841070426200752906352766813431114371773213819392156889136699886063432116771615151797362686165503703129479401567715939214436285454628986763531677233181541800308839284809851487556267398816690430958086442583247565203204238125775161338077319754459922919282907885363643854390467434851134191442244855398986081928306610998221701212130842933831039347361965109377296906176516385317611737044658561361166189056050894111529077229658988783496371419508798228326288097923972522389721724265627776650101816700399614568734044276236122418117207117655598849484129389123560986843475725717559685901744453235109643080173279504987777386511654860353135086414772842129254550094767308545277400820118575099418777000776685194215166647198056583215580132155756308782600348839721142233907555715220708628445048128451752627205771776604937833632082089642234323737749362774909262999762035576165740645229245811053901354125692622237495457572017587800097336021916864953196673018332503615690481101827477345994387093046623922810661431429976350686286206528420033374711342854133102268330996842368218453196848067971620857042571075104807924276668961761249430571956571280213724256157221048898436008253350663891259533910488538754638339664740818824739921470468369295557871451612989702679976760601642859232852414281969565558182534082254694819278107330399316203368295654595435436722714075676136953382001002687768510444326221030808826211344805343443161371789422433145203528648342427111270718204478982931294080892019883644919074576051612266307092072602284274473393437564542670035766352684142571108890271391007927041542077350270965072038477445124014723086823339866326922082387889376996078328949202128846809646046509829167592633332809535456694768139362452858957119589647002294622788651782436843212743836475766068162388100477705479758341426033025477575580913149784713283366076396526267438752395688459175799170650838211679184925533817565320308858389567932038115923412018073503619630383602590203896259108076972283252680710349775632214976204327530673410245152932856552857325903582139004538842918116770300350891196185551105060008533269454478490527536323562784908354408553022571957620792336158764329931549128181134342278710266977305563618247308884263618001555484169186887841487904356755315933636237429140993025635872199638622888405115268308866357292809525012293216079969253577343723147674866253867644940520435042993406857140733244501040444964881100675094464928122872558612666320727648304803900645002431221765271260750435569290063053053020316739768163427017801446134889724183509306781525836899994351655850305191885080480886415282362587537855465759231685288236740406651611830158475881236746001496987752418924111158927843731471531314889101567739894638012634996047188673056565519594923851823709062190571536989208201396180621047882698127901349602076173831807889456209052306429756376699992557708871124190833057616465968077423885755193962957544464931655487260678010408512163592519152529286780008205563359156451746428184615831794028851492547253142651293819405561710159221082452547870256320778427288283490669107958528112462670861456069969080730053196257433609701975114504141191182093708842958973060333995404271545420468751768971213949242598899279595918870280810739718313520359857655718308191214259760732674005966439221448878639249782377975782846143714246679793158020732256802906019383712045364796603788577656723857787637745542324003815765655795832109332990691858238917602683878840218696787119152932314121678263581794508550990354885892580289918147266916423050114428836094523229652783485928389078530071572443871121587657951734809798761282229487897976617966172475854811635758350040249754988814334107198354358592920106706905815128738697500074242958477688317196120399615540222703178358177688205678747016045690834584047368037290519929967540651804328444780533429827131490187512265862503666682898506842842611742033243990163858570412847286722517533077951685165646276020124025259638093452678280094816714816420854679688508052264980575736290997623877299674171851411444235511198684656005754327220784189788595930226553997805625911545582811604322132852048597449561957961545481167444811167927978599056817528291847929419855606619399539958343190953910919994317555387667241590403534680060689444378716057124439142126815097997592659219198736649725697371052183849219252960511863882560690806552053702593329636475934372961114531058491308997176516166124364604055470140634021103225743861877791814419279045100074207260054540930866233809352987680821232789011741224814163481423054669722527786421783893712447453291272617338332094917550805390027503308029695992724547032826935202680510695927045262543179833496906095812525736382266046109233201142540067138227301197209485812249617764656890737799803241792848434050976506073878514618314172863378606589800231773201330244904032200109846840310171734450134460421612723107753800194550143642831183122607483343425524339966235557807991175509817770645063457707747495541255554579775791734719773132042045613677333962834575675809570244288607862323574857830595337587533603279425954135821288570331766645818353592913508226169163027435414680094506863908640096121828636420509509033220150376640004854944831349345851836520117579772390083768069723766938691228589014504726063641279902269082485795094681267832724666926891819202057428256816999133883425524631624104996295728942905218286277861354509339139589878346406781871739262558743858637619603956425179849158060547464030894342676846312720746736947810561238373657143590705945444740786134841972341510669054809705084008928268558336354015999759010457296061813660090681811392992977990173256329010244207422269445601165779842020653041845571072528224817610958474931917599829743954600062900085627229464835789191781486807947784265527976510562167493266290644169285580443877459936160089392159641143129982374443148170019083055804790485182910838596757869059245662841906530042741394524417412494084774659668452154289231181906629776702173704120671239052170076254515180393712742109440999857728491113795602039866354470859476597399023488523146353627947320491116050925439030096092981086964017907756293217065276947792274966444962867069525319997187421780457710442902440232391799925803142657673867440372033278216357468911960803397975902794989317612465438307515252242707081532331005532678877322043825779491507747686936311223816377635697313233338922708279890944155091957964576174731739897732371723404214090278370636425115916705311279656531409747392601534113767420824372791759410602852183456853297500933737204421711280340364213943743366380971317184001799796543019404548053879354814400955942184082484742791897119469178960808104362457570139241010912578809842941067312306972966381940724272708321211483325192747710219400760574231150143412835910006332151462023703757614926545507041288716820414670313488176574619683843393869855093724600465915336901208559923749098023978432239784157162119175182639715068565093331276274411020739467998536454142328953945940362891002375486965863120086079478791761098866856832482467707719002719165258021991038177456718798414888482837340524578687552905054901025540406362100784781059425597217373750094848477010015979345371688091263675366092517325576896849342005635665921647376471597730416077545325454327440142709327089011568556740875748225539797839990380458536488008264477950111155482206136925943172517450904803860646548238224627285639719664315611967153295821146656598643511490323663714796892983600886487009739093154343951130617164349513848970988897110427559240742843396500109458612140747990469967934048290301815377426809563583341429921227782684502999779327675818916023903042035499211057927791150661859790563672615750798655548890658293457989176349411488799850141740645473231704243408921256938862552953992081795261349020449794071919091608871547105891613159673979894939379779474375199957853689601893552821917916609277055423461474526034109108617503967145285599109774785766861613885276008783370885202792021965935248796652813497250957890317917624313204648614959694294581260491418461250573630961905129208145201466872283255145899266085450381477646136068279493722735602926521264906752401684944290687291223082331803330312195971850726262080664194791005378202059293220527685044204784241262924455870691020944332461384959125656630127265569162053155810371937339082978575196074768699887994542945502604480388280630387650285058041391777076178183074128978261987705583212529899670051607667725336500604499984523276013926146496119766819021601663316928282104102231169446678738663367833566927915917251063238402934187030697302558501751044544926993508013053953034410029166800889750130870350959411946449722852719539314206223418928276475346464796873256545152187353909846826401576087705955278543518300788140407418430000513345815425542190934218254088957677178758883190027972136971757724379424970946789709348244113746206948903325826062234055213216530288449583600641212565789854962083471031551583118872192352102515199343730574171613235616029040332952835016265242220086818876315296769452924140058589155150457341697964426126223121153942567909876496752611292708065300609752194321369665392381431321883796470465466919609985676359741945772398990492446708044463374517163022529499802506737492583716170078273652227556789347408163274575135463532441695313553708799235921829916665817697774959086773840803690287106603564233786593081250913270516324468660956050366753535154692193206720359329871460995651683354707365827679592540701082781211119147307077277101056308071154571617234242452908430557336468371427316970743336901272266941219988104744612963357292142194386144318682002331247734792795993833382659390255651568347329099130619161513429674365171717872681114715881669115057246678694643831070583614391388119393842162131073743627633406177831198738421900384357854144815917101457918059079969521504675290100643415104938659108319798838871457078489739317362259953720042748538182947484899560466814802529833973002745348020856280790464698071971132278096107911258135953188976576544506331731947993822939781386202108719995325545524914704181020459892588565769990679914680615171683100211424648666819949496708401496043423953428763797896987103276220181725996482063837796419252877369831404471068930111574845984550259161022813022755518461417368648663283646946723733304795834853200217786932264013706542923343684961665504627267468745888368193855217177657857440391061298929303971812906153330481128189013534587978797119468033103037585137444553948313986348914491902713798746200275367407959838925179719317644673300989152928784867081193790170473391692503193137038248409405006817461135095041944872992550441472660746076291046885002495488475010951944976616149573796814293631403052613095001718992550507041860482750640345531412561445729610494935334180726314037843498065390254851692587048576682574392707722086409156385402792420452312517681116879720133288917516700330444294631779597060163012783793630439279677836779804326678255453168947185067239010664612270876713473190448985302373274204043891864762255829628808491561940252758307638095193433746574198056733115702830988081700719372016979430041042879101350155668563925236577083912230875601737650424028831840225703105980882754771168884869063048211544055384229876529117792207833231463188307581981615371450635726671151656653911504904288029336658646306946084032846692497550323382693590294121448050812378665826167982882195912308131651315519175787835807395996686466881837009049909523787849906023519446994067904989281471917627635643005408240437308742153635180888047813624904238032424082683960434114644380000877593601398443201028198201952107935212846577743378510581114973994036397505793971048132318925299012049276613010286683315018054838392294017655127150679856377961968796271858700863181837173706374179243597128522343336215130240501352772430455912887376640249354551042489417258519831735681539530699142364883869095311908146932413072568342568094207944457252064343684353854642983392191290028237463495671787719804958521450267255662381547995548089002235306140620108454157704830799562939369411386681425425411851290152421445004989022008020034158546336383545563122466100647021092963719528154531147910172574334068189043651297905611719787127375510917629675476412076833778472335317110432079895917289303811308778778139174264094492533534358413896450521286615102361591803678773413554599650629815653528738695272158655403783234423206199874428709377754813204402951453747780558764367118882928104687493178645899278203285652880243702894012072259443024460182065705592293359745331092605437531766585847879164749165693027176620905861100160060529015445220090190153425036935637288396373091978520892513665521394266712217318490276027147440893503731790845187922025282431598449589685725361347219416162691242455295234443671072738427927345409172306633150738177610339107273255239981468831408519308865032084420535431798741495549786762006784837228105193202519272693435276594987954042957347531236820259761480447089724335505754109760649692756817751649782791820976783442991694614571194513426060176242228850352860104307831766319426186177760616010299190021098363350462088071836123989733884189034117445069030716914570782346961613486603598415025603975560173731569589424608017224504487934290652009250828274364448448616762566647976042011843125952330652727778551387884992352871297861085192611278959538800973428299510431644863044981268441013689696318123968585736623761458221154650400137846959977716992089136116545559270005682610385575623694285447689292518255161433419930083282747803670201698947139791594493484831233766204080783290756160378721214149483101996743010018072704050464983781224993899407085915806351582089496232849555967145063573796908207500064399910520559281954945249933093210538572758077386076262655240437255683578433431257658402468631878304292771314461227370429219450386248890330682006544954460438832473059661370901779637795818108277095551114044446664344262697359671708052942307581157366010987487027760246668018551015722843379279343743839614240115367475611758078376473162927817351053628241641111859766673143228275919428343562423978099453270622145566310515728721460525313840344117006091796929857682493111666052833801048597333068144330302264608071079276239327292883666440996358587073510708084617101649592763028723560801212286232753440689980594455224485303772226963432062700448787634295550398402134385165286349315270276445946524806579637699179612280550043314648398741798147405735052023564253408428305405765453876436424077019541545214755343182321209809018443332475692595293289825371557199221172693650816205953586440939208406124732617612681132821704054153034713839590846155960949838567863568638836007492216835999395502998715917971824297063877462830385585719395535352610748075013342853820020159364332120223115268677650052718137295042447731483530386168209330491438170703506964334468201090244780347256732201935714088860836807747726034257694926554509360131014765482982840495222879300890205154284962371873565469468781587567704057062958030643075097585502157004335386697328080769523309728086697470382262811959272331514753078671302699237587748630387420115603567595777237704100244382427423411663472444416017244664343471305258284598100402417547781498773471056806812829422909812666145300429690733458030322371770610625610187876400774513535828316195395637328160980018403604296070576494127444650610844675776802660953397931519803502250190696701614232089045869388266240716054335400963821621391258136429968600914880091433590564394605923296710765215376225521991951636203509156154119692676930412485375429224276461513056938875007481088278189563283698973783843476013241965199115100800563475295562441013412073606642780671610223534153654140937504787920762743724576430362960351917393077494665360498319127879017276074812369267414971005467663825903320283643287194289674936628985451206312616694092691031168625952955136038873777032917645921112135983037001964003335021186079693778336493567439650730536174524277086553794880371371985587388044020242603320772122192512389636357728077415790966741549416079296875368087145573725772269057631958277618863342157796986044549412983758692151440745027262346526841047066463243100856707938673157722452103305605926157533110662492229248668725434139742682933427335753062476557955902075894494027601142265559133469496177204478756325640663173598733656118191974916866919272969097583290832535272322652739847107644100952083491751342649660988526764103978589312548124184502932070657775497741113439342805041354292261822823799225701384146583400027332017498902351826681390437438188613734060708078556722250280983268334000407007046934077703807195112955598377378562866236934276355147586746585575452357349221180644962563582920723457999720230873291187113997658123567680083034497675297910019876221684422567125767854296938615674485871005841897687633045697231056756939961540051293527722557116932020940178872270565805781834322428550160280417723685297208142841079822399503519202989943992468093956460189012949644485414564602753755877737482417669710571592202878712346499807607037682411047546479455381822945698659518142314430542852951727445589466368428925893868297192788180894484256033662398856619215040034135229040326060688919899333229430858246475744929261095144359843694776197100176537243205729037709621844962172504433096679235368444341121467396092821168364097047500247965011337462422100399140852072280836393569052794176127314207381836836218183781000298579380437513146169156344506498766821413977658352284037465043027189827001364092529103849043974789912855069066371783874962996763839028264301690693054647198285071697566217592632720758974599933808854383854359727989585284327194405729466717040158356523885758288716656755705468379306114948599459905809650396486871414300885059870154943807688876412867738111711511649394441098884635834603774927464126184680039941265936878453337409615353235912402321538995497037444823993514036254510662964824716926824495442306725271100378192305510328245778847230615495085723961167596827780462166815767085946681910571256573231832128121632148104291577639846774344985349857567680753777329195240805275772968145513690333243637419221706727265674275894300682825827429325219202560238286816834606695964496533783297424269246288234106738958185644035728312848477713326925057186703542824202515873695585590016952917768331948134007365739479436032108328437928331612643635512263301075793832411226218683931221739511873935939927531089194825630282335131329261683422315791962294891468427175969653820436312234637127130032719166495893926403438740313135970518428643807894963001329593139993187712364785141482161882503596123460751023325331215366765085131118698016628166430952436677461317124746347735652263581749682203360566154799813760263474842777054990550758025459674856293850436884863532692134283301426134871706949415752226590589306357033702980645692837523983104247008441429351305034915128294092714510064555690436310870987957942518046986700938605860739773060529312124434600394830027036216096535233787880959529516762173894203517132808112105061428455821258882304434178647773245000379426267679828507459891416978780374297342423388977755436026011124559686942512223832769390817875060253049074861086625144401301511139621899514398325121073460787346738630054669443645805231219180351899177041114384510842726383245061935174278005009611491828701916705005191068709339126500696931695708474637380474209345560492851787336063552798848737415811695961425626530451914812777926949119707158264102204641005160672774424872692371735310444090828963534293559946435667034273658805746430725344277683961765289962101110095160052119549074369396351725960830130488917726093607594816503161729842463435610206711869151034291999203053000746239052893006231370412978301280396034452855661347948007147632425779537884874671327061063504901385429161062023518474764349396520756510144609348372768133511760813766689221343258526399906486344707929071309562096189949237619083200962126684589407996943165979956420514856047945526792007288372506959393307774818556544840007544813759211261395350344953088791060425248019221396471603714791086005457719368480593660933326339717180821442719135406090311564072079257815591471298901107712000480364565974726209949999052261205883506411494629713442472921470067472042943075418330492176720481279280313695238442168213688058070539628087568143656362309197306358412486439064133049127861558087475644060367713404656439081039520196704136835628945987892992787243842960645041820354743237712016770495708845367890842875543050219103353520524067896299332090254051517252381084981057083553155606589619714220735934543855229059448719972481777385972097001252011974242007344549176991033430040618395198470674953789269054591825501029181775038142905765667354543878915849894560676129690531932917980809026895575070280534717759300961557966202639249028511994577301005490482495248015282787425263748978086560116330562784016109536230475550143523984297738190603925744079429770860495089820666883808781937841310902213697773402694984008184676904146080684964270742428214177899897783278802077346089528201062926528984092999858158752648543743904266505665431157832191717631103324450215677709284030082412535977927169938028247296076016524325204974030641328081448034535073205873979520414103687462959553079081531714215703735747352098201740137838637649641952343088899890728161258878279546613652533011178395324665127530965469327675996378865953504063979148637808170772767418013704893343022152268696538106983302087480312901977269476804004314984978462223396248247949203721485906772615161678381602234206546692497689962150873376278516007985902713706523762150765125801463418763776390757071194923398280422397360782842346627204450702598936403137010725038055206125313481840781625836518651589116784853209584488369861319693467549752386000947807084296056103297830064592602402137414012067827614592015794559337984124787140015720707410097406493685842193446952746817437515464587275807655177854929734199671218712684702200417089364717020490291172544813171933219903445618746128941014113221388488372934503221167969666201562364381950039765948210125646442038563381543548998151328046194146359058507750728735803517068127925424354924414951154870748602032458302254538593268983244459204391618622594411324802229552251099523284956223718663878773562216165348006882702411165104766343946991595226686576644793675680149629849105730217268133984829302600095009660558698852000837634953183793999408935568970933753974938593015621069709718158508761441174687119192546629779486368367273080207173013542254508774106853687381467563472763414390769717053847821937342134533110368124556379982295822714730427223106749194229457545312812840139015498396087817152979971853374510781229223599111012001458165704312567845994752654732436279360858183882576444885686213213493270612106361875382811892975158977315427434387456593626741979785648610846724336866120457413121290185127747388830063214774440388704053900568840019013535801444597619486749995379145376787516896257995236585481356617863628757098409806299938215226156335279762092887390394968114068293197429952124157740987410415110609252332184944233743803135478932190481793532917718077515988844803854551787424301425633357939483500237465195161105259736668486728798996967967793699229523726528364218200476739833898435111934434618676429451251873752912705375495255919278529995815997702199908116613822297575028511961543699665891225779233969456150117096576751246548565468328564803068941148029356273448236796465219503885271185916131641154084367432782919178187100593442368449117900761158493535589644185983060544440485532902356247032766271770957354720031082825594624699118266501268369627126715316159730341425847044977041968774721867084380394011343241333696864657744461305270652825231687344999955852977908643621030866699601276710224836638873860152860810960612582836743596653725715401752325872471515002687429741913714568511320528660437467775352200071533510982275643342531049051514400833435694323687407916814803906614664049039564463113874088121499678484162690288143962948768290863269336010129214337561581632324392814820744579856658953321864333462545859213135953153844281975531151759071929894451895815634135902057398636591400459842303585956741556544581061689270977641320759740387852364918876532871735062079414355843313508541946989242210735107523747440350061202629997148493964367366246794699726960538807893636575269124882193944936682639267877727021208491516385847639021658924841979970235222827896701601079145068664572615569087165384281287388578762380470847114399340483377726324019171420300536595079392930079006533786679945740078800755097115179175795817860423569979869525210021558283586728443022030451251278469488379988134355827230212873627693194436624340364296129172361352750132628583167693167920225123018156124439727513131188912844364729409309648404121280517723803088762190498651747691454645704251928475569818487716907959840739682150285538854952985639687227214790150728677429639034747345945025737813461372937852494746665382850750889833540613076649938603684579949521247400063303980904518269742458832335037651318925516159696465305690971042838834415665425288538323334035103113091724596593624647041892110147397007434812534498931768936765260513766968452735799713060364109819600011908396926447309532555714344356453266806103807851686738874002685174302283817959358661763366554036878239510856549905974532789778887174160270979076758743577334921207644099751471391332127795963426265589175423138498512442823927691783815550013439095777089872474526592174140292042813204078558970626132403824459224355284754763908733917559299849352143912034767882811719238539012404655988251699003079524266740709951796532313495681382041576049307051252495854938674907577342505446702140711067243540519424003343527604078729459313721741456173049239676140831223364937690859577490740365170477154037505049469425485978763141050995369838952092595207630195956454051119845583422208221453041073649702325684878515031072493526317989688266969514256867372931864201435154374103155606189014134884738170906277484264604365102220254923847351443169650886378248231593617153822671034182326424477461833017435732740174474601104033756512451469217367487620343786028678272912889824530095834716908174338874561165658777740357451699560732205462148015654603716136878286058520823096831712332249973745569659782835460817630441641984119757072781707752066400788209930405532247526633952099678746412459328945831946332433572671542570823946792787744016338027578355544780018527287574683137360954222115541172572366556037051928855773639889536709412566080322501792247629808978027558222048944932043416213705820024464259276002969274496057613895241043138122275767129754174693371608287004098866678531054935815432587110654870587006646864116806820905284097658404841103015584782294998109315023613357593310550209736681238334771532036788599227426478035357916244018333530103044434597040017125444523817179402868745642646704951537504336421179635060393173901168542309334537657027120867699685189337725922026921437984305611273729218608310322906759103361105632412673785831545622286439362727274116127716205473289503156456572683724697867945066012668125041726673780486094772716165714516128409318537224836280181440445071410466364782569300597242881590550020470405140714909465297726668524269309829354562027202181893156931285161012293656671066139943016878557463878418062157326395489517864578971923611812741367564795983063991144483487274075774479328315707811374682974730036091179116682162782540211414622350789640302073710472691701864741207663526556600302205200181821659301156032259254034105441785196038038904857142153250424374510170195297348270894080828742449085221625605632654026052863707062529309731593291822720119394842639543876620794232337808879764192802448270644960492870954445545489359651188340174089773319357129263156713203206135255376870884365708142682585413163356153455969441282418929541209807604582742647198012522885319084494500319187786727725521842794881719929964845898238403981471530902567973045268297953291646746575014186025024652763063128737498103930979186550293087061463440879518532556521107933576388480114790547328824691772512207509310836266448274177996140270096596104284733676017703188108902183231775111477741963294603454667288581201742234469165893182136945898703260755353937225642671524018220219380966069517525842730647921550818939135736502531632429907086798729610187483982348231924217569488101875390001591602671281871957475725411530177635413158537127194931553063552229471142612303601654049757936075367430734410549642819531610607452795999818227451638786177659894695369758045395101393430438159121042440659493615490300553134114887934705576210208582682349984556244245349227686058500752034940170336243622189020487903039969316232629099087856353226971176759417195777331122953640845607643357418570227804269982594008933308296502835332745204638999232299599762416640760585047713310477532868770089499051955685597521270213638195413777526509713085663022385478500660231072815991735725846658478368236450436050139535858691147017053934923813982918997630549541932575072952450915120647987983208264986511902247186818461568530096644027185059983897613752975210749155952123125801163887975380820458720721344129694561736640379769608882841345377786046362209111743855070655799980085296612680629507342033347340009292271206573281482779794824132536789584722875582339770864292198005016769173156672973263453979650944401490981782281423052987476215423878107895347254765203276747202111040012364635393718810513036432974410515218474976441531686171725655474194274170966475376152831317550200618894681100644140322390669636803590721940153760712801849211538875149909269318397329689622827685563787164591327237797542604190762147127810352442753785724504700756300310450230603557291111084637530562605996129093343845936807897611810817281758360572432945644569488603945667609802572541857171177395973162416975041032250884819628107359639463428743976744992079669536584528821302995145851696275517605920624172416307804734519728540855204716343624198521229294820549967290710171422414039386087293624196829215770578361399513720163649144220929569687280051379466340778161774228614137963766745600431267952101901336135432259967898777095033060001671526073280170231883444042331322620714338221885532209171398369780739157638166800615637635427994492459570057140563022094973264147289436552960734177353078789069702170515385396706273971641270048785493549097978460387489784624271759982451965296188347248818196616313265581216120457634339773251530944024998306515813009640285368372921631789711110324993144724126533915234377508450947799733016347928436000284854396288560860407209398992104091196757251963990362165756047134773074899596549421372712418423879957392296436699690666360077966779180982582025717778004880052021069842502358488292631847260239790522049217257997772832715459709766194704865614661833251227669810653574505985619488075227886133220224368109006803277246033463165998604272259495058098266376403515463135707899386843109240832946753540513903930295626702432502535249220122890966639008536599500627515353161707815278512077443079133648699263994198963382008520569898804837900764827500794495332639942527020274649205744850737286224635321754295447850098424782624894019454683072803670835160680657538028450112712080627084890409480923244736477651535180239606328396548516894065281174765259712624922191050836876725337947211007302802485902286418926721566566666846896298845627891891155768807832895143467011811582837710328501938385002900756921630617044922356707054957210905292632819963828140725020695896004329020496687519461391946169959018363332920834068052361211733211226099419523528979120775919996230407368222244261426376666674491347570781858252300803965332409063917070276299498127331417650552092821615710856789328035735184292328492527333110693829494601172741017856911957201800417902941870279967774965041171626292830661065025288953735952744674446746791774470516294754336428122281878104222532246628905457038871806930311647994554800131711732935339561906419681263048200179093105949590821697499061871887521555604030614387862224680092943383888974393751200411267947289694122672244179104762446150102578308564594208003687891341937122520736254620843640256558907661065911079171864521828024086859779955331894246709926688634488753885822770079532114518207904260872370024647504287406523601158943733016581153183926471731902551735423668595871409435359058091739443931717960188079967064302718746399098145183747791921302241788923186139599827234989425024916525137186993815945325414750062504612493212258186111400991136009664988372924006917248960955364134124500807928554444931803658773705785751458440349319104686680688875340884479278302715016905658078798258078634026279936575008446100345847314325565948073725276452258726516461191714474408118190037463125022789721964341675325475741150954782355379535093851886146069881607747725735419586857316904354775026712879078559473650546021947994171836832351794740398295688208429943064359298716791271010916078310756097412449169768073769363486412171895914253445024267860444969688613442837343252825508340406913282861973108242336711595389189806752929929145579623730694792858571364848724859369658517614051589851620572192275026610584554905544079542438158921723515081686201072368471536680219481628185698231531582295948541931300007479582358488057676134528153449840569581495074242718194626609541447942019763045301445252787023715759074892120865286804964347123937443498795377320526397497062873296636527916101616862408257533329011622100392740258870597689822526792079810224143524497460355291384245046371021976722742168358254847313494170728090959845004962399170078970257635165692258022438030142762706719451672093171302000724369056086198763228375744145456046556137363810618089281852784580747633700321414671178330357919928581305362309357981610220573679105647454157903327518237860793496529813213043796390690090564342997721104800817574668749733513812599891277959620282699675143739695883568666161348219264547767911807764697310636931486608389799386757219146376754416493607383728258223872079270845947037520915244672429814389861820322411300617610092473709045872515206232831926345260932963921976974971537766156583919894902210575526214120146119996957995138520917190985033283147677372063376733340106214250825581135342316391114521283061392953256268824826891821334330828491396311283537133620840281220984825655446446723995507534749882052001805412368520357616870337736115009255128102827440942827329282800897546791680492343153532028712257726398328583878630014483909085026514441206880018349681980353404037706214454662116914240432793475686491571998146116117537187825045394040148017036787162992899678165133869044264400235428088895897524934172448252047440570160403893384637556147657249557216146118623115020906671765471224040753393647787816478266273777626246693055100644465584269094021487623962128796420921670209991650006225920472365922291478205500062522644512645804525528404201611865406223340878498022280836858978835876380635911490358071443748225976616574140364805202086735525486266000239896604850997317584273076816051188719039636359767990738648056279615290126184280121612448827432870047676418043588912897670823220112072553634942129026802833433755440570621094379473028986579263625387277924692014289105054742493645379275616556478387039612713385790536843561341256695888159009616837401582015706352302765120088335753993540437107055910858125852847141935282235094606259610076414797821135801295885930109569482346941099715736777741053518926764081038398056444914248833329124088610287053248642261321666802470435535551884607370696751294418598673990296386204570240763438932947310753643449910371846531953381473747662908572191963909169558065106488317512225818098635829510517337419292849218799056510526537884067436497756552778346376724450377299066774293625779255995911506077476307228716454159981003548365456888230415538976171170355427675727248656911183765381952451847718656656121669891154998362376855180375696802083690306673441413039645751249381265516747307217065647017878360603573843523518459108913309021388556622326040588654764334554377018008624183432404183633473629118856094947736924294410280614427663049269545437994381921197936104753816937889518705653591079306586406269538874364358761940202959200526566994257948614193869304766541220876103351874212214858286315251620730426029705312062973657733528522854671633793778837082681223706412950497427901938370543893176426441101062938427136260857674259791379997385227280809685578931755101315838400185785434309181254534427207773753112854198002894798250445937106528909754654754998422614796112232920022650683804157943714147072576769629062138994056722594227135107026653400636891300137091170982260610985916166616829326970642489695089359664103451877845392907543111108848428479270962817956449301617679934653929450535635498671632594268529899687681845384965777180690542020741822786415801366463579748327655166829406216763693684516687622167140792600159797314439743490985011439302315482032050051087460687678108269953187339013192427988203294538581013994070141611703391849430467812563452505483466744339815871746933424670586991300657978827476678099667538728124236644050477218608504173582324878981092732922641134045554995620524123033039944372077509919202577679482046844882896147075014399146153330123339122779794223898922166484205908351398365766083345935410069924593421430264158887339791111069686978656558311511370085681821585217043276444835795203998235828259415660109947634588626982217776162646744784242839159302425738203996870163989814061341231400299381723041443790591256581707008923275386207546469921915887126232562315097661512089743210160573989508904041123412345993834783174227781610473648042635362890989590145340041082178005937331366413849041312760247694710950866988095887894345740128083563970123046053436148494090132896101108259099049568904052762062313281899780512040437531414334272540976200840940000791976600754251619250184390730571110333574766141487251518200448626897692417737900520421038196222676409310997471256849860489735609375168612155672954326181755823047697203265806773621858528445925625309297235109583663160784349290231027995181940053159161118198274370916381791061465128501760346648319742869133454848990212350938237122211759055946433049443282390616888647040900741638778227823354453414472881694529118072023210690930524132528422563415903680369833341980425169051469306438067990892065963519465500323703462779321570195386850507656106160351981723188790768152473508952442034454971294601615445392479584918416252249383447071243262499837524560869954793091354894795697007991872348474055728274059718953972539836225103628317789980797695568009516302480430209108373069691713577638523301892632218304777371725993358469722877110811677943065997582303003233064938034272495649102253080117658626294287321510569394651886666185138116383450773656245317341615841270895174333654341972381826626101768605880187930515031441939802349644662337809437008251495745927906798638325250770216896278569409307552019569656869002731046824999207756383083668876618627048641797875118178127644061986215435618326048023830499489836020756180179101987906065449249994633834551610440402516157608764506655985106880735624918156921785848574366351474468067316654218269074275224623659433002400816356749991902884581334986492361645044113841435327750990523005758981307874020574192010527949043967285601103535169469204331952914921684728816720382537011723476296266984781920446782835708261314479093763319498731129978363399496498190181922269892757577429694698309647519668085281993783445174956420143522130435449501198878690112061509011973978134207108948151375283309321200770416492507687267610658259678997424908707349277100637747701312438795791860434348354865673508244745771914726973279896109634754738738686048189214931650545147652921650827985347111535785161247197714114905017777636179903169002697953410641195086786446573901898655900212137272891286126635527165290639926193429605189312950297713714367755864853551825346795566628514708388505130623718570675860340601619904943463733191781991019068421246894546563468100403592626363634318040405822716274539540500427637133266749389904706878143886048345490268346699202576555350035260794930626554453979721295860719899468371094163190416965494352738127464598157163693483107265016665118693539478920447015722232513646003532633807186215064757489635818071390558095085263762421312124294251731261714441911060758628977586699313735420465696916218854475607201726643383214988615573114692442778288004144179779021617996830627866154051100926327628977882952955180781786835541962293512232008538009452787370794250482320461029792442358136697432742364483792298846733939582650739324614194331735521976658582986739402172083996886612476625361503762221189774560309127997347380920350386146676846264127742164506544684262497427859832575796327061924774863432857941253603560458844579791159605933064713506102388410208977854707699908406622827096895571040122611218997799955985655189224236547391951667526417036573082489810533673390775914103498615225440762836488501487059413932198847606880255499901048546915788172590633882986758940978344701797804671676575831948474439061704285141392560862353260506582525846084767890724856005993491368255262575323152974863566644808100632311794436711008163409405490774108853967529534435965693083709365930540406455051245491352977194681357549504503346536140511410073726329032441191654960468067050349022597787820472277034992861393815755530887485670150115882213018042308148253452623630202342563120900055601223003984538629597550510965594027576637872660743469547911316195287128210956025278184659193536776187452495154149601707839562539305209977234298763803755868593333313987350693388570569443846575748146283970394195195294388540404598721782348521933745079653389120422355749310021743000967125119717727939811621941102708419433426019699420997063220736262342751584434724411468824840839666496266694562781498202616780957654349963121963705793710460621927458454847673921084422238821878419432527642344977050607142459903990094172467157018575824665690943221258037520496161147359127901208580056641812731092118222196916008364281542012163751637339859166511987297203543609241348396107917367325530138187726848802036421732771567965691891847796584869230545484808476991061640848825689177280686997144340440339764067659235720788269232288061275078554438980099717684095014749165950582106183570997436860217045179530509701232403218891605579211267814252510483177252481150299387286259192766839086224082990717545049297399048701653017948163677505078642846483827330844365189163531258751553963986521187923732679777773967460801034899686840431082379734218160036557950922529755265068462924949869437793985668128136482819655671568575366571696277268540103213883346958177868289024286186415435666554385588122295064047507583721920025262543227045108304979303003392386256561084174418734501127914504371617792820160359749839598260505529563634285308227852480370582374953602357123963450761632483466949193803068339030691527314287981441164440706031116599869002547748463078758909658794047787800988491008944664862909320391282795612302635291962577168431769611471740534522501744957869721582726308853764166881156670267892966591150349270982949682193374996487046827365938936851613493969751292833241247774549902110363728414334616846833849432069065034858044982810858305872405954947878372300165148767680445670192438765100402650244282172709541440401071207382273790811884689823841048615252501478066334412393039437837140006546709508674441060490069314462130614392858213074128377121080804197346129186643297259681183956493108630090936317459261924646918404601454537621746052713934956714099255810920658437361175318766219000802580605307109367339922437295827137155506507297562632627974944166356431899296639976826777978277075074147837626030180978702379869142055893787009452441178811083316926079206754388337730139755047756177049989065711414149308084259962470035307376763005440477568651843845959293199403515302013497513006625701795732769672872156207077918787817183542385793002424346439155982248389643520233767195359855653537572837681551220967106745667336320019215715725838657638865486338564579980554543746653022941274501438961578613535992924111406085465943369227558330326832611648700484596019854076972899053399333538732534790432253469716571630562223304444496192999480191733705977179777951134109501165529163872965874288005249764651906833323909830436718551410379353335016277678908561002211842585571406415863449884374497629619745487010381994973410562631178268944789420643969293566941111904215955941124798282775528518499634204667751511568911308989389854546710034216316295937370512788995912517517919287514778476062600298238553277177719868797256248970640273214012696959149825999408796533481941717788358580842181031729402224937367607567607959525686149454790099865241332783687447423010002447777362567591664525997997828133638657879560070077987004240947846323940887598294021098093928766315514062822729514966435297231070422416436967395648942652500691568235377019273289676344875476552872130751132789222278385620063764285475665393333534655733420402100218466352565519337801846061110085366722799577115367469352467259801462515629368945178622536183341485328106401557872708610162933256453635185973838843379288938804977285241862031560863039980057905623986338883146381989405090228729731937358087646788714023653732395071429053179346689108495787998287768742242443950572648047972562300335850404520790041324024477538553630284473833846057587588879784784545021934050305680641621475769063080847336697875285524137649587073007052218797598691091579745235743430920924061809107359153184315126131319345986591438695187572019896309070563430156199220045007112848878424343644985062852598588534060562642106391958305698624642573327077666371552208876651051435878795428409759325427020759882406347452279261702106485459257278781477713779934537967489467517560011736513598142614639515772130791269664396793408018389676715497700803503797738444437595919762197811983738200485445515952508155005579272965415893232672429376455846799100277612371520197971937206626417686052096456720928065642961736737086892400414339811843805228939337092441440192146139097647184058871669540345335016902737322382536020730851168829504210790164630313229723941376050979213316890153933075142325007788913168918818647483650195604593561736611688095943843443870438280154879836394446042358860930910022845670924031325219536141374652222177279866900357546289275994354006201443848925650534041188347719195859658591089392746097789027820735508018509810187290076298168618698355126809397995673284816503592126545449270131068377288366418947484510639950146915431292435036435500712713653242255641660731903879824694742632546425702650709564699264870579593595362832821033781157220254561170699383675707767840642176750183939095890907927264874656061847407803829007226033225732804798652329462391357254771755491638513808339484757909879541560005396441125545723937681657083794665692465433312114849853034044781304771450677098862564542698753996191648163088510394696571252729264306488304275818781389325259899605202098818923794947074061737419257638742605085042703578639383944085411244587288626199344533452989957829234318353645003100485550042353591306203428309625054095653102770431091137157130266599591242898584388682974711607841373655543897979434286354230966999475833528087903384290621236802563373173181667995352006784789009554813906634666900959600241295309265986640820271620152140092781591343755242542926923173928700713780044337973922050706397859545356833004627747629768839568251968581550719772633632602106786091776178517990357480399618249204224393866874430388081023189744642974957608396982336249355872140911583814209286900171164231834402742626526573139125892487294681860748464721877655781802554063831137171219033243368603351186326677098282303677544397450461492623156839078451324570474317503783258410602030283948668281547984291544471055890391981616439158421125289275576424011259586480121802033506516862682981985311378215435530916476795123587253437783154257015468565423665873880611800124640236953761353902993334929747879512629188949725763325452401552283789028874518274177080987337772290763688946533628357682173219204509104270322892786817677606706771662721032317423570545185125530329592029400297905236378011570093224042122916395259517338435916143171388363127969151660271440363293826672233653740278685819219748906449194158662686442486709817605076633969730299360302615838634212402593856393585252182468706566353607360812668667527079418087617149745560370907897872701042493588915487829300533185579408194865424059435072481560306866703108068347865583779460092721753069294840146216332734093150481335217891989783544431013104552951746729226618088714830102053315383455863077616720388644977435153093060963934152322601107342766335824415768625527853009864738889387695949864902231891370158855188230385577134352983062775069238884378789680570800655987926847002625926596433530424820938127686254513426604115339963530019816509327268075887661939087760768705977895665021461069187025740686674806201981721027568447473008501733996054598012898915268747810092646183945065505487244386304845107082123490215693662207211769505715511686263871157956633706019836864330840993682864469545402690060178876163548214576947367696413499342639050240705749985397315934550688690034615070899276787276033269943898802988828520572403538319490454020377202998326688254046763914957264870998075310023330948779084465451594746921030256193513013373368899149912001718533225219126037542487794772977921383070576905770923881512108973189919523745730586104655845529751556018041201855479648857584366508646718820185703565783286548123449765609188354414139913702476647072159941625100176025018579041824449542358508119920820631843243794261490397804414626250763111301371726507477068893660685567942914014535727601384728765387009587171267672269415307460033374751384046391245774618016386011295619151245301411055027158585970625759641792301616964174066000585221229335324570838439865320407282958151217636521112652860226376104271125253349725150531035189583846309502826646465652538195299291018621931115892597638923472738944969041449327589729318948270691720585640081493530939693952443118654798488952335042520563439451248717245763022886950410193690570712161658168005667388252589812543364373824990172950796980986966478469566923228965773744746532219726899743948872569995278714875423551203157393378567049432223124285768767368870203142740639737240924545543440621925401389740712070028854520435758897595717205426501338278778086987898549354031936030285545476939604292613168929713223424847474916561186106113938692751004615917074083823819846503918412541629118246152776189268922320874058983749223692788005017879354696056142799778870841281768385652460960250516519990271806703858822349367282903234974786831424205551952779590416773390028598651931336688026419302431795523851641464342181500282974682466061647288028740112537961408800878196243205784919522358200551537820778177334025268800781690365898505778774114625037472401113844383368390974822757130210238931675849225790438251713501348596043066197187420079131642720918773349819969987575755652903215311698363503664735834977549762883789629240080580921736846125918052876505365967619338549437977398922281959519004955882212638562509896778792515115616961907230966734511225812519331397201415443783501443492854697480781708820689646166991073741760840321505726715856533253722793765167907276733572441660175680855432934560345713079817531894789707016266454057785950966749476377886663602636501601688834441904077849656992729164318094164048101814337376151446277178147388296490495269423516413999708458375389956980936423056739670274892027145722007218957360391541303809491076019186126740564658290770557931897329021022427057029312131819235851280325218402456525353190421651555968782031667249095757431855880813352017716727378325027331681912327733522590604386116933759740408460543820115510995931804331108181138565833565634540252860056125265639576207369410899471323802243404923698041624735237845522552153904171906682864529105368667215000255304279577897550597449043158715031699609196060718182421169794223493000175185124908345738759204561713434741523550145242698203820062372799197460490240754234802573555614822248188636318965740466919341229421931398016240073606090325291097783066292948371589138035369338627667286965089464059270920167223386555139966235051480843022023711005135548418197245314116927086840298229055264045582365002340495877062047552316590857705406080890805644975514966016858253852714379087607301668716849313162161106160110425887672723218412464455526809721467311549174095598507315215495557694299911918878492021450230962206951035856606965600210987437607438943027576991082049318587081523453587224258118010705804544109236168625042859590261775615695780045080986069109917740762035168323128727475507821659525150411301051025526669837016719351916229541953958704662107191434593552328709382357876483105186506788602983679558151789416670824940109325952643492431394293874253288840665159838228372122339399133074750563782379116122607303691807256694705372109530033255998700053892138037687554082808659710197981041043277039861605158082442461468070644897641443757122452896879992458598853678189074702081503003230131905234919328314670848414047200111279024869420902217039953185723013652376681154593582144513357107744264727981121375657777330771534571673179581519446660489871263070850268079953881614723713816585784400290799006318726837729769796667766429074849139864519096613787990763943682611658785329438897876736263089077776330413590169391256518419019381206560468138650531554025745796128842949506931229376507910371592625854279756465260526634603792606710607241971632600304835473160435007411787236392081179313525567379578194096527717266241402781199528273357747334907936269461618259257272206453555362323862962177250593537208562977341217462012399733390393793682649485870055668053324399008292407222205932878969052191330157636811335743408824712342290553908448242592369986346810898755271734604126618622412454967791608880430625156013390941079538765813691066191661331803247244297105298227021773111251965613143065535372557404493036645219554532884946250316686352971696164593448222171053000268402716012597724282972314580134660071929822783280417231305003820355177143771226991799776616963428134548058807443057976273408708915992010445249107567548304464945916220907768028054418090817469327491438836077736847507622648833987907361536604220521170596752355908010215222415177248509747749549323413616528118549790916866427825620990991133754404162079760621411988861019780694767540406894549935265805412288527008047549494904141205998128394523858881033567051546940663211600690682450264077182907183609435631879794815921730788132941359733751092971716029383202734299258800940182670941007037307961327909698920718804002342692608344765937034551992800414504296927488054598419528829147718901282608640720081155313891108378335057303869244033983714618099151495000011269179688447414600256681810026479231764662195644062730774505022851230999147747771324807238380123800664372638266774582570132548468766206578331120130547240273377302379485506580413223365844131554039995879158290902534942986842191713808126613545207393801315845160553857667295126187631181792442774108394199170568267460110926150345435069337847948772659003280224351530736531988858136970110373981845877054668761502793669839890148936145404575809010411296205251275901158003760798630910022852907804559743862225873448063856678727536536015931379865765657040389308670519315831576632175948591019478568907730336151776413883932044743164516791518323487389462933818409682307032841198690257725217569078415633880321003458068068430148817220954521740953030849582642245663362917849149093611676216535434225739098265101411105937389512057973170387680189366124633886665422236744802451863306895457500960779907021521996067198483588487354943378836889695004193581683318608125641370429336125693441101594789990932126137529333435755378618775263766345173168825969510489371122568723387717371809909434793560474033703453817035242512781093138845001564599324347738918555802063724321505220671415701865102631349260309593194589653472544103887869300839933232647472251731049502847063851095042387470860228363370322246968333149216308141297557931685536962533982226993813379267633778853260171386989022744696040039752482188428059757537593736967013010202487967990433345840286382679487615757370654820613534651183964111138477082545184151778210060284818895006982388878575424985528767533748493824057549471065002519708646052485760048581504060008401010907118227471051358687797768768671750462365072288851709713393521766848159501867545243304257312822710767761653013606423536190776229155167810773637501116384666015498788006285422908002363909886917769353409940282647558302029950618504387408001372570096237462318922130334184620840559562054423350346065615955479736017537625468588056183542499241179933035318916348612737983796025579356936093361170558148889943526255966768091593288493717752573206832873555840780597978611789026598701849310084807236044404690536208055506828370964823657612111851516423243287791465657082551106896820355181428228538970873335365821897120967621158346288794877585802511457535900949007954307933825623690925836790893098759007144204341932582372558100271053352958051828641762383416703889871281053563779150148747293422172068542420027201124143232801598443987319295195538679354726443918338421243192886232637815398428297631657408424469105165319786999923291088965212808320430645027391496155064308009004430963415970191106848666072060253488553313116681386228501531732314559380166194353980353305352854488596763957713224296444958138590928657713262639506647257357831577680345123285120747476614265377829221053416664848859682156405306867379342344002908251520538119855749640849108658430167774654520938981489030794161254990380442763004502992399215372709076530361628249772601914218155500423764768658584592777071769661994674487531773628802746429128466206134980227555813023306208304843077138068672765139309950623872303323765048864154863916315446965097210886375217101029150659592754363202472899736283450387358303407222367590463319989334845419133781015190510404315570717061209936458171577732535640502231277198657157744087728679716625033134758721563251527399879452861005390114578699717791380223575800192626193526505342013568250686713871397274226186203653168733579768522301984699269281123878870352067416594401436171475894342126860928807245382119587452111318726297844663725550031428372418395220235595742232795699568704304854201350506913586823601748411443144074950114822012666002986867735937616311941735315743773880040143335888570407769165381110487915727664648284313498370628593670406867901411757981455433228911045114369348452743157283899938455490380484762021115180477340853487835693604018696810465454886283917313287979811728409850574108237955397163265388863793995468200892309750580487443644038937936246066069023001216519294881712842148221320179424708532608954085484964792607386585602801093804459239140318051241177151547220750690557771691805093421059470443247100246109731826749233088366663278784931183452539419124889517221304323738788564438110121046980475308588741477496441747423461022908445026301802937865012840359748324846248918097582679137469482271644145454910804300502685662460587762955681541825371506817975688615375943541901656596329787696395354803058913837679970312378878957925164870910385686597883222548972878368710380642476536399436041848281487460197503480036351536141183907035592767653435000002829628695344785046408041490727196685289901322501205507223258190144364356657977896970176002295338116337668360235120935563795955496932846460706327195615889980720531661680697999936760658788499774074892218652170388853614264318881405924801089436225502738658481779962550292629180929653973515754492942770619080693923961892747684993769807980032045934904549454087193526854158098180706538494857656024745779116707868791916509757192615824635880690006037422040353702465999501760742207602573707408643786008753108954968359106807323638614456570356812611643683490692382072843262999666983029106550334435213694441408614220877957751698630910350048634521582002015611610775423332112847898226163903480947029934421534612445784696938932110826019117266879788713598824792327771739235233434746668861567400264109793838308167917384060746516792661886310595215322476847368078206473590928094654426116543457706836469068478822207175351431450417281006641909038034355959582340235511338385801073640054360200211005331249660333929998955311230318091397466156899226285837591038079061836254764699454916978005691221354322445216629010979504679162331270826775463470973148920675163853637539729886607582602748604407649360408059511606473142321500115859780416252430403306216915549107476086594545622639655960331498190320346015381953305838886466682375243960693103930865088681082488742109644480195722341314216635906573643747091973402609874052075916589078665166299886019329373663570454780110129531244653538223978684093464499000008134337051803327445895391246574977245070312031881315783738649639656943582701253675616852226396663256571403305655842607646699909089891023530566386519563259313909794689717200930454392888623557083444514513113045862088414700291337054835938737286828917047323827298223164682986723076439549546574676153410641183150502141317072446193794441166171038028533850566584284680123519818479453742307833435881821657988161240117252865054366574237808614922644977807950445569852332391605478796249991352525913219226258167116573043460328260550598147098839627364220720542745949552352980784836631828519452999254653549603846509750555782676860875681861624077288666203827013080168930525901613914102918347703831014791022664203607968577590373246121820805215899463331320245064244263781969440463169547582606798975988374778505964043947245597839492452224689324683717828939572324196561733562048065590045093440339588424944417268507834879652255831664661751449319284984891133792748726800784435886200934172708043132064931136406483020329324065814490709875886596754193593973028222828525964879562519583199553266297625841862198085918405855632647365546929494135647128816939965672120256937991237100052914998316085705601174805015064475229154519164489208326597411411763452879100446324239530904279949335227540131101071020321391511805540076558078423134919218350991783824922768464690578336945724059613590302878615373251640822727323293035732298544126075182935996519122380445550973044262935396117586340513890320084712831760698577131122852851205711681353996767296848497925215457368783962530083588696904015773414336419954467090021502724899121859882601337828150039793956266395453660963508980196203724170555061901770593144273973229691713094200025762413560776038733718702577005120887242968868761771269918837147126863605522956478600649143600967209418986763827396508127994229060966837794389990239068778094908682462091357086675348177834891588594763246340406958722202600720590619326883238421039563726329406044769360949579595450171605796806266954896719474017657161773625780097084216309836556302974605718072377705489757876858701913454321441585858144205368984562327438359018214710415358165621657034745281157610936465610622259144354795269753289582137417710791529930041109116790845057051731324297952558013388367744892617127910713457835226241462138513471067232198728259162386232298029297461656138078206227947535252080147723148990714952589650924437609176605397888375450493580040700916431053212207612759673704104428373164976066499774561913800150148950067176567662984456074281534980281313162347265245461111410548754413058400963926355354738691164459271905023622053588972139262998607126267795117043829323598946427798306926506571686655061868889085956122937352516952210987147742808943780973522377601054777894934891338571216871723483487687271968179555279738274143911124834492128099580713224328111499834344780813718922457445194031748295318012371064238331166687087391993194161384411630207057441695707765392128080164677304921644097504624143226472135569518758134000919467371864960652432352558054126863468978836278254976927616099622343958294950244040822188805142285305382994577985253363821722607394553854958673097862761675464952956775718765893186072103137545003598776252591795815762816966416157263695420406399564946963352677891510277092714866253263371796923796486230294483135758275252416245873083619723983623108952342910984059876460286496376816176861248261076644288976359814091058295553353541559395641928365112227640358759958625879389972594383452447197407281332725640090433603684111125915459821213748378640111081053059792333074263907918923348426056442857391442371687700514506051181673610362933560653606075735852043081640975179417939466426746699936289896751737347218592074676893844996657489119956174707873283970459059760576654452938822685123465807867064830922815696585229949659487940970873986497162076693644112398096773741987073131160895911792208003996887120646945433302533389897171167998382523672431223131369931661548226917248760376532657910177217524802645836309900195730265916667900157345555890946975735121243425598743805777410074809904424234661561464638401182173886276742852484586455795681247694177525367127545982122352698236188894462694695595472031082537189870280280242936145487967413548795463876953090396843716542393062408506026412368181584934127222925045784713461875178557155341599607507659837194577283219504528588190046580886154106042285608440493543930708278156310532287570556750229797402295903423203844374541059932361209566972569970305789748419942755498654030786123692962367406207518643066718750368835773031188340780487227857857714931774677518746912754175248052299830357437999653384357287293195330004127259570438658277513067531138313264051644239304671820936757571309092739114158839891374962212245301592233888322179182340944006662828734848142153142511589840074955627663590844547548361166807398889058623465179791355885510314810299624606695099876792496585041981635231074920994086257460297316775711222224663865513327110445857287520832307709838716327870786012847730268908495638510181425760801973495121341525969303044007865242934424422466177764804052933903255329239200078966293314115899903816592606379250536039934003527515720684540825401709288189383738721613682414706526655582042453569268786026465148214857722977759762518758112603269825690875001926344601282884374712986146729666436195695072788471075610250323824513508184384954648568219196676190987607666692275546364170772011931925051450090347262810923851168594563639279876730945906086488499091242389396167693628339004586668627255245262672940856074151061996715203253489480179606315275337002116127907016711094709436234566160685716196108929177278958509087245661912574838205505814546380146926093013121621342737531156182538669226214743158855430524823797319885180229208157908144404310929842759781495029513165936654207986882072705080450016258184829994780260285544381013075547312648008505572025010863317264640828109143224016796713408573192194510900558806817640395625409458067201337842529397810855140575603215277898929941500798114680477359416653346745748289542589756782201295266155290931183009443694538322926276816243094564241725532899526461363993069108810660675432110435549231697680205169405584028979329540223322922138683366513716369518597690355308781434561022562328455833581362091743313706304747270561633277464876983381036148445304810572520123050178242997609918572637659768612545611674004857776855908748690616311483497490186178877748082290882616658006641146016318142636942156287509705908636275029317002756656942829001786877939453016120869047816423244641791539930144141849890708602251120394484329404632871889149557135388440221353798644244848082431548053421083442878184986051678712510069983076970376806918711124124518493908424567576406395081287968510045652001911003889406060711867179031122957361404062750781918071294009160649798188380573006771635467413263742521003037649297029324673374086873846752877688204391565661334277416039670459335120499592073046562681715191523167873418437440127398018467348047011356902016134040764720696951819051088485673116071389029286584666120575031324907970169481024350645029644994758387077788436637385945335533382292133621867639535844377091618305355606860076795584701799942857387427660963369060615026745680511758205774058116238855601818259101700911842190032346549738956180393114934448883800624661069964185636170754780931510539572961955020566273687431372378976697552290857317590666774123084422559325377855122756126479513859867359352699660945991057106825575159082479922905359959347420861067358580440966897850665277107593871189221705942917812763644366779016401200114630894008855847326826330946929409098060120688133763741408360831364208616340253170333219612660598134608984041261409869449926260299227799692239140858941184495354874206349907040054205423762104785995571233201385961409710929904381983052133214253749131032305616500343945684372202310849074352124450214007306794703674138738209914454063133371536024479523161131326607693486647480919180929455616159814475656125174200497259714667193967833851922497688368989235152124967285497624429382340520167999781017311946849570684092546850617906391125362716266617878462047342843725142877955146276389249456125189511505245430526238007246120939191810192483978161484721968674940211557088837735935351097373511525834045120202738644171622231113153209705732017870211779064666369862845145999870148150126317199313203016382419331429315779953130689148716445537687704660973014545193458858991832279207687058072855075458933409355356773541867027259901593444466270310633109009956354294838649039644578153917895909957942612375564595796871405998645602691076932360483960608550676868063889880508231370731220695283971535567298655150343598181304339962842419192505521345275587865317956326470685122382645591401756283226061299970983112309653514940206000757892475068984270526843037128595877605134604453714632132249975645294218023246304860911329816426511193044923650545707783200622706075897069119924446017406689541059259240235245728927566247510345893628959626264842841025086083284564167467760296285958982477076979009839205680213530572726704294233731104742076289257939367531018101107824178616976504867170021186723087848034487329871253202050692630396235557906506571244674678075108567904991939456410805758072531305649145440433308598395168314366386594157096401033727294056622398407184176462288452685297849980582033257248552628846593590672976614301221433296351139122665200309337985815413890964409826146908525380942295166257193365769666881541241344670508234213990607422511120025156804926854410511024382231188455691437733776884274779327778454478960715548433456381950818273494091005644625748533861347320192870558750105080935594078036059823448816525590341944736517987104815264985557435628655934782390112887298854398976691259674630613994145596544729065829168601669498787126380415411825181340170631998752405222112085227785998684789922216922877805153875002791425428522486228084988333640220382009818074264320168777883738668265830783746968502089067604012547041618826967100387647084257658763579477102607604314260628527415271130727509486859757662783649425194403785326017758811181539879124661485010437703877914594748874652908656979379468745290546510003632335829905381553435861273500295871555162525139047613860027429953262522664185656654384703475081811294521872195356745507580003678932743734925963026978119319341086331961520674396842457795932491133898032942331075350077228613204307923744040984123619143766926666735715833858775478333591534257813062456460710948181131811275955309811202458101456668633682291901286005067059455125810197839421690180770599874371174768340616121435727671876448199746294009618693080232687955387107328392869911937394184725990115909754884980138036453670195942915384888987792770885903058538545231409721371626332518926191127466069906362289343646803823156258863936232230724558271749937605673492700087529188655199885552524177616155800605713394275547747925450673391815190964569530370828024563563519697715773300169735208714704104433326577917483403573061922799382375132687947166583703785034896563740054769509370716686509401235066285801864170612774703756662781680357619785566454147936604838994845060404277795179368253138451864152535377226774502941581088585167284766404590405704949851965990790000911349424953405480100697918628151278782796912425128790152329134626354976952497854855095203966980226778506580006718224775860653358714267289390227564820354942703385822763965979151240357088837855008418803483739975648470191525277884840787420472901291634449370189511710575483091532453919009943144808457971490596169882643531409905779397063490522665237241058428096721270151210508068774708718829101102499931507700359108420370786686054595792947997577180777595487854231671695650792467932334698889182269043465432914063154972313124304899393724360685155469436926123389624537484770145702544677111169783315763939873237964856637593813893646907468706701003234201923765544697765126515732106435998112725469093230677282804103670016092745091362470254931621665123716476948351705220174685596169787744869952408139125238096813514844242955039134409691152001745360551025742694928392952229731789866652599421624344972563060038343075027697022423601490224574797155238969088507216931311000155046906411115025914142459759991196291147971090072049970099029031654083105275022793346504050264101864983570028419807418283550408225243040983497942739450266274655752579110401902061559726444689578154878991696203350097096789661542221532113192757016106437051097688430354951646856662666071829106058091706164597495756152110571174433370325150967659252324527466132759428229072370773654597196063212488651893240223475663479029962972084877602754182034142038767771748362318617773302805910037498239609088833219903015943509057517118180230812020948564547412147716552286173402604752403235159638275507746398441690151099414660601890956905654892021017275084737873226009467264352280408222560417668880356747156575454294555908025286450612359696530819385818249790842678388690264698255543277045599915015943030945307476726506348442177881886720078923563140309910993353501450987166604153689643641893294998161149790508263752171685185569369144766533392094710003475761116159578079868638292912182078729976662210745380221970039198327463697813448943591166018873408183249027955350206003831200113990024434957893210507099392205222917121147460914415859450883427453339167331723930050421015094340031103504796590266959603099078847510664455443817590425785754594104905061444313592567967036019397721853481625321377253412120651964984145063203334600482289429336766713042619599033475391590500544270182711198425700514527485091727944738411341464414498375087873237549008515311701242535348147124142507467607394442390549179067376611277424454515734473917932254303565678207533347609893348423232143218621441915640173817501552209658004037735040158709625563668039017858554455585841125473677239654728314310074210641306730259904555128795644881825695918354394615809230818844447212006529121250996314327763361397703993990333946700957531697277104402944629491255421083508645250999005040451069905954137750187924249434659573652507855577602431498022911140222716775613514119900370388120074342960348470206718784603338510510241733889304195725706331427281744155975339456012400309803511409371566280330157739388576002237193363528997633785453162657565539535403155424121004314456771350572547671470573317007178660063718029609325680786505885804602049491359405273613275107341271099841536375288091478614827538141177718746613401103167181196651015756307232051672378935798953972861834180094961691985700638238078496928411297546985522025100703788800866322947987900147302272510380059755871684965473787818852848495117285431945812857829592697999230122074517599409494310666447640234711815730300310443700218310804564561225024706518101752291932207960538687405897395139676628575516210056618374455332669031878480168465497125800933499117718913443879761662756877257574555551416479368472053695632167735059333243139976926483115234763268451611777408357538619030529180464498257584300395357388084304642215400640995345924529189330475513050625903209125359747467652649565261755654795267346872569022752599881550540617174254597002578447936379453081845246290105583812351242995298957357688171559250070748673020471713216907069888628603026335389936924830379012856341922560584117746075353655116069179743614362608343119401049777625430320865691557059337050764146752814987529291935910778140761188263836887856947368235548290667505488433547808089903691598361609643346851827463423054837820120576524870939500235859865900680777325251309032694655995701634015787174779334171764407628142329097921999273337575714329326118848749666532215488963273489988123330905241121331921167474704760717435233445169837905880860766988873517630044178287578425814381055975538248034510206774854007133824874896741523405345010858641151120914939816118466720969816082295981440543138237315538274927201614792384973694838237906021711217238519876516308387746352789503354041824467211428464932227456228193926981721454764530117231749427976570442548540347963036170104611563354807357375027367849985254284321924223799248612260543148264425632191916812704880884747123269275440965515979826789603888802932032973234431478564684389660768109105571526579349175901216427232401780614810026325233100528064280823632931972162591016011272026640375481160103537873222342912208022397663213176044374863595449537262842790367110833075225303122136919012723888848440609496993563879356846923403818286884549908302720862872591747728253327540621356604515957582845581764902155609808852549386151845146721945269446554989090661922804466760647777130826603299829043519689967583796809340104405789633404990591226273553227589025099447117534604474416221028225109625722329834235932741190252160077762856998880657404875316610186515433438927118658344852518260783164874514832289005787988433814838933682524642038645558981227268020005232543792488999591776958723026283646103582250835482609904128976795565006350335447140264549784182869270058181600818048003353790338919183210751545196243542658760618068666783513191851228024575579714090478522905421071186586550496938167620887050222756129130969280101534156459748304967382838446423121613648332020808144749140802311458942379248520445002729756499088615617921654092806276590518038216510955778970450059115733633310410433224471933267131335417305477110636330101869135821953617466754529428683146995733122606172305531577650960882405362036649871885565193028938756960687694841705134371135411006759998591161948527741376228452500365647626488399675336127383163894905085525615019616885362660985417767828264958571330900897892310047139611860668807704775404454731241658413355388038046378968178333288169039107588210002776819948320980709456301290514594669954307770381397988735325523374812247787163622069762252066690074692504088034212911500529515083553645402165126930690667625501706994530179756765962621810154472034779783223340862639196130351234187169970314166768093553607551293917429307372296462902264470216764395827827768848523508844178678457844049961445949082537831580574041823460429706987505775887742205246390679189619565289875640094334328642131006618134345340791706871059695633101931921358991438816456429088904368506880390394809403414879904056654440130067602215299671264302231499559585826497582740087760863973336445886520441983874384941221181574076532155742980339337187221753230897801326785267681193775159233489976413878900119075635486068108701887782332045901730341618481007934597599924884386518907711127341634254172466545516174592041934026629287522646366513705651289790998018166718892572616865269601288920649745562351084090077364690663039693654899835028503217235743413655860580976920573341222686914570725887624030391720687308082016771774385095040159418348504073493322205375798942934743980451036504835295802792842390786251803033883382958775886094271609288915022890356153361782032257624863081735087017168979889771683113349437975717594837267196477561960439402811471042611306576383997403349764812535740101153036369097951876284183361727743279019651934287787368564984828206335754958905478679261969561889264032851265442032583543263469084442850558430767317027018783134655229068303009802317425180636864566844196313893843076599711675071030794370273261567983435230271600433902437363215705061969649020502625763972045050380691288246077027863461772100930795496549193116692222249611091303644899221323209023834660350989862063544478094796064414220620874081576563892175507621452177412060974421937847265926686446528269662148737105816820427482335806521523115891896836034365081546548779491567394385304479841320105312764832948300912818179184165627568647943983555342441756540988214115841896743588227014653972897809707755292841307890832610509882091404356151721252182214645078680598494188706320350593523102817289649700940350743227286092296011961571252620644047550096925266784911320355889722088856715115581969342967901348638608035254904833846657196221235683982630582994057252116747926272842262170163822273778063475350142278175861307340875998644928937694956462826713432883305391235260312321221117605931112239216278959322991778406721461822750460849081722725288104517664796244111571247148516255022123342274576402331723987622483698766655156648920088037381166337580747755879007626086602267725578668770759003966178861850835892667899896085944338755024263638996611916472143810805897669920167161991044674100925879140045096611013034233769265536336650570251831650761418282040010614004461383242005185896575454882901013223477685215659323047894932193310882824532481095442540927244064397210909899183929708364524382548156997441331416878779617668881480786930137087596970016848874235774690160053739703504803380280601253787708687778516414135797450123483758653730699665297533266378429171308051848819082011602506554427005079893285107318038619150667299983193590020131424620352433758616772375734325957360946901132056994414012582207427303932893633494830211872323366921625294667474768519399069184313392786746457962681098918548245289879671048697653299064635526883134390284466942259997627814415584318458124436021000586856133364986569514628239648663527484550193180275077217171109924370618597853960196486698201674747222485522293695298117336684472001582731958676624637267888590002857418197180551696120959094223080030122184504132835066021973565944433626073602338170501857612281909565645158333737639290959761780473168173398958317237147068901340107115260892641671978059232622598082509190397538998894402987519901047888980773368432074971072277301520019466168464599066928288293475522188719705014401405608634346014409476611323926496823253283457128554233960369622177415475439397876762811803522342016701079886015850166640662004690566630910259214820656767337565970796849499972326525389480456581516533689311562086021299797254791762342282731570670610741669339391009852718899757849835994658975034048293489066809665628933909156577531582623619007912064664101757932847683108250669137363899358874494698839417685918202597197744024635751611489859089630218510053716547942329872598618637744840893802876489691196846072334082016432299869275784667403972562613516182529109626300423397645912521747190061088326560850718964650842730894022652091327383498934133246296456220071428789344887244150867157730059274991102889102375141580957750974732114233143182782018791828087807881522450469347499323838722580218576198238005711100842314816269028748560503869572229150693242225963865551930831803766234528203344364470642077545835816512528316877859669269462845567076452190488751961665190279500348726042085803719591425933035044621109287648158034838437482933884412898762568416438121984864984542153759689317721193519845036223684367491562383897032813135874867528776889720532411034635351052718047957896559098347174753116895966909599506372622800875254712420030736581196270716599640738998346663843338122232724535346179076582048292865613375752147222573400310936828059270751479808984241927049271495771220081689973498423674809085569590270242973366910842612566293400961963217283477412185043049894982622031480057368585852740067000612480470493045887230308903458955527615981761763769798533870185667841775999367336538074830501669233869239825580351077716756177416441474144822076832824440619051336505176756669101055464264922488446266050137500595069324696289993508442434990339459762791344860208371435831823680277762903325769125418938114415498322393493949360547804547222841182219072187704129377151681870656164936442970098985358218246292529676289988491732062076093140522119002860295336421386218924405476109976812779378730046454983229677487823194323993761670718687865790447973019986735743680710616634169258389438866013780685845708449135523357551333784715892293424567788308940904669443374577960116806478790588465543798642373951485425347475156220542444906916416424399470262790411910837832894922954464352677259407027935111682964257070869435351278691616937085686108458810165378956662323000839057995181643406092752139358925311906557946675725360028627853060373851442656964280439422295265412855192144946855030843548936307066348337172293917012851962103965649169693144752929085943090226231104011448240009681529931291636696774366451985104949731082276540362754396344255519768077224556989208416500592463299855661836139760661183140114689245895350237419767714874814890613057872731983311236046293979266067852219074321614261808571807787310209967686803259091459263823672658410061501441103000760337565734846713125453358618011217653634959604937708320870825670246287388886352259289865751166663949169143015801119263901426621362974766081514473717250363708505898190147581899657181235180365487623082679494098120523379109014129437371415739040591639145769472116215340640206388842858072617178930013833324152834948457739023507857905886684593302447491076521497804070889711004911675146014982381923064189937045257130545793958552688276763998599058650901423562397046648898997761199838806775299506024003554194007082367336111263904116667324416903459910068550041179418579341577518224141303219423266564824732293435272684504585908912383620550270685060429197549595101249557231454280564668469194545112657084668105802959945624559713019957467260184692485212747859770858783830733003928909675972904106902269103500916282612639464361726752144070583631988886242191125040941921321585486073317837315099545086325422776655806223628176656924582852009256335982903390357907222537483648303731971879972721600267314029932751298154066437101103629981437800693001040047428606118032372816920912317941467304985068208969715101739128796618818211883648768454861970545413869469766615726599350564389859191433857674586959323648652030983044347008211803653221731257398278285347133608862649464855540832582624826897119527803064357539326497048235072301408190103614839038444153926485295047684783250068044408861518530857906377536203107256162224865898623202315702095422771022931022279448765207560274329755701096238197221732662410430469838102107509036961620399127133719867036902902148651185911346395285086601183042208564717560588163167580812858797323847993311343722989987585224189599514922087663188090609513390196405597459168571444129189619879600958487195840283639416413044325102701823384351419946063025515539003655292541714987088019776494393312528722452159105995446715047758799155713833991611468904589029014037029716293990737220937427601154819590207679669551974923291361444546552385177399606282585536282687737198383905954029076106438666095719313195351060898680265365027371611147608882652242345007394643220798087314474223904408883869704848157811469006231470269034705612201312121291461609438265728422104694511538834719349113863174233655315524870730757286546629012701223549474747120898547161659664895339572541504247886392732801448194088790144284077154075208032195617536946697199920709509814448342255429338883157624634343343526607900230084156009296515452485394334755644854957899592445967313479562155139811056073836660998131558391728190578374161527086767215796144436505849842753192180152960795327485873587888538069665508178034564210963065110503793512026242335623824558313744136121620783694788907220885146029194917975886748697670530666253051118098886111431656908980429098174113982326885773924814358181298121777111615706420956484358455830789059648149297561985325980763763035440517964002292572952314431343358106923893089106601432220060375763722733672117040321567496314227053131103636529544385942068625917437628212649089071311120471148144285742942011783894005096447848802451950297458668201640777935997694920547896874345354297902632009636559678523393169665526860499705918372981662011919227335955930854103921411480285918203918366064696208628160238690724396026389458593712890977097525400519116790088085529518824387120197413562682878736187970543545507485329618869319246927014337440183223334188615433389061893346539828671557588087809795636578873511366639407364598679944827962970470463810211401933445423584595175613158947938920198751466773570937783030886446412512803324562948134953913863671340448500121675632459007456601145357206119260250626227150161202896336609639867550327227024806753703564550630931028411996780989298031488453822326125114365213184320480978283247873528602584624893129592680164600838907654068416741408235985591670037695553190692384797252074864785095431308344280916503024955840679583329047929315538672839465407507947825683751414508008997142415009616414706672310312359050452924554973689859426076119107970526377675668874199062431604993740797572441065455155697014630540868144431536045454526079882041921965268334068499623682599114981070664843137550638585559421077856455384316267755282681893170717159464404771992778841314930587043228240640377940864111525810941960234759528514698137912034570974659608856414765069786253124793589365292099491467266418214820840870475823638216496113795034360893292003393301947562839092465358002114582466128790434712431841349637618060524812123639719437943536159753259953996282923813658138357713650373183755262021531769018674476812524990379616664550009630595577135679631098221283898792138570365660050008947995181160414993178069222281776575296876815457428623772191147335898464328732847260682931841123401349509230339861806485818589967007265066541105216484359684414776472742767672869412777410212695784016515505927335076590121349377768281598594991114267658358844660962031575251851764609099903623390844525271152925338351632113697518415917832513899482694093522498728974793702521873430715651569537401132216200927723600498525717713433057735045462051931787656622200928173750211574797629693260362644918639136458929857234591084607915774617496247392274773089511082584774388026517014611250415099138569657892553316748738463603478839631973791491802923269116593084616365393915796685429013439232514466008216915113862095025307628596828644842008216720129254222683437193832110926042996047308752954708045874692219751452691592621829134160416159024658389778970243145363632174453296383527821561408767813456771434162839201939011890378705095135445880318170168870664208221635440358168594665585496913014521124793068346321622914888579990131541411438323309833112881274188478549030200263106068522285926744064040533833232718772362976530193980524792392375087703206176368303266420828269373031761885152978920466692035291154694960330693251530909124776385791348149422153135755768830655840067751099662635888822644455815463315664647710185583277338986047078506327777967661913095857778916408815322361727692531916696104572190646766061651074561427185502591292949991463821225847929705024890408820377067137061409450884718780495750918359194327963722597192674455259198098137491701738720752821849654588820324982503176127213828191599734738684711908630022790809128214406365720680701349632197940207601775128039763266120798067703850530034618431596765131075828678342544229627171023619799267753864098944215852932655471784503973488747869837128306409645079023690228587968654922758827013356025012088508564325734850134122017071634239595275186775081586587958358898088782464909012172364728462881793701162801957643716151324189548818251019752063659490245809051878910759030274368958718696109660501086901863364473574219648040753356711412222157858267365517469601604073910234397776043780672374775586505876413278875351890030181214971669231701103130909122435499803894324142726182443766422746704440120045840682537413894747270760960210985565277115517405413462664204387471414266291542980666968232781606209293344761763584744806225286219232022739725756097137991348013537731082004700990600441695144727013518553288361176722602882089959878723972487164985167648842622019804192268131446201172865239664230528576284168681813817874043155986379821083830816705306862890138773734744360602470752796180010955801072993126821801066626534024496939578966918696535596822275499430865698942141459457419418821994539318956032899698926082922092584081758820222906418587515948064255181656628777522493397081095301167142720613380963449556629855296577625083439959863954687976370268142634050577127388878921389248448588674265277402210879677375044131926549832491552843478220401760874320192167271215336248170569693725770450202617017399573129915397342505936166128851851961443849216974265197476500563743683832342826221562117751757787138089450298269400664050391748406522183490842257896420171316465918612558241614668578033458592408483531538465271071566796310108063978295751881697893235742287622261571597922833373425329890353219821367447429033615830559311681873165643666258915540085373220136842158088113678538605496948875570983043191467413524813606013325243028821608193983562882165985769639693593210349611435454819920362163393445268247933290522431402960438192475635358109251501650501688060254026357076375669777136638905049378200443983877962345119303246191620361862273711671494999126633936882542838444141274862958766734372772129881296656843251966590858456379172385541355033848639153919093645269271395630924456095903944130731204645501624788384892609021473804138645384093418914711034951379128207563037402125495626179201901738064497014633748075195065102448124604197099183495043489434768906474865601962140709795111588858081246930055143167486181716371432697117890015304529527365767213852094250944757343475256031895996362708736740578362808164590321115105829776942957050298612073530102351168470709918181124734556717097553693133684979825009048464041390727110270173625754358535009910795708588636120153367088742601378807057999837191594163900698981651410030424208121432127872940426923596930791560085243261359184976374966264431534291985679423302020976703717053329196050481555374860533046843227938933654181515124214855488478184017837367154121669615912108278957621036672414184397869393168334727562915579148076141789379114013490212344654039370285652296671073787541232092867586726229350941918232698276751848575950331269349418765992137754186058739399725262714037378035019860290662670141814448952658924772066279343442414830689140641447050594025562036772017930557905663360607070513548843208387693241272629763412207296242804815415666922069264334538634947745702059119676846899479441183758902980070132443930759654822645478874977646613788228883894921695066677223630622757562630195943522791474042695025131810804895097168700671063724695999153401296265844601667888776128259199103990872161062455936538583926963510067445494644266431587359217880911389628713698854866134566554252658881474770336102273502163113198845133657821600742105057348137097308295125081704948948868592269045299937006819990884482798407296378552121358899105569228967653813812423350780044481220017879386259319253822671586511243791334734397689479703764302852883625401092918664525469665833744673659174912377345727623832515418502056280632639785914798389319026868586012456102063262953075871571837078307387015401797752833305868295235261091820039755331679014918996049249180199880321245128840182994781359881761548399240356435423183947671450075638971607688344563322611098179854752481229716147212790156881168093647994052351420213760661000734815543094475336057208871387394885602350188141040355780008792843015409613793894387245716174009147150524748183715769275431870406123564463030291662056285585332840300226598674659707937986948569316303415082341878811030870818630737218585955493350043384264180281766758324586173648598620154788085175970180825053765285185713103255528368991884759763039613656850052300235045287618834330856849009915941192467249196243379389546957851079175137783029370502735054358220764596016679310017371094531315566235800808410884615922493448099671195335121892655942630046871482317173659824178336244558594642742155737451096123053884270453286617422864472220080780126807280479413419525237466062669788684678649774447435372944171114480583210961366776328772100495858440457322907410076643535012478982365997924769770700209218014275675978225723368135001165829570666353677287142844316101144476477168204049322721241415372353892740201469051224735198036624699219015387054914880612303179941336502262271741046463109233944208060554754698072988356686081809112580326848280484289920769854812576252537752740648301279476073047465494005001079520395816288816236719851650958901975617456185377623419046293156297016514021750146371736171943767451791133815450191023342900080015039183272588568061150816003177750370188411768846925925899325879150049588279437165843042277744179238835753209300067537923664277655834303711196733855097163624166128511550600543845992814162719310537950596613698032753471274854425190147379187009599321879848495118299360088273280457289268421625789983274731367901676168483324334410248485757993034850692331473715517212437005418449005937731017643256977679823904010413247707862812514541417014747901778914738598928685105417130559769728185399569308325743712558803167038858055216474882861785081846517083533822039436242805475450863183350420936392765432738301230056082903721274822477780295015664514829596658970132366722254981582862726288228867361679113164275227061146772867717884260123586818501872123007279100705907732441224031593536891792139588134104630082484033621974071135826936959291554869086169190038950696241427420335975823459258939696869885380496571056935076097671852762458355602081731028893251455296509238246217234609499642099580907177905331748306458065475623866475465061038425506488648143172889246554748681485026217140300862242027733485741482182475757874801361807769897586924211409919990105800803787217638073642462545248536227958530063633462652800763704471101125196924781973713586902930670305741258631890542145602390057195343965390783417138327924470405859312439763622610483704004873512122872797528904925747079415361565304591340080828339745571564256822211039379924346711842627982253173000549266490889354493358658765798343306072509251294824186760694603226110047153942926455757391326038280493665040280650705141142882298802242467895260821397075283329009175812807847899676565895490088068827308974687041220360454568978846964766885759082853576626852101782098452206602924926398402984074845136870461056081391141789286780136525191615861890995886767066956618546791364892045012542496549241923586254850033992795218383049792409538372740903346396841832476741707273432654862206671489303008669916304898798035196229006027506504749304584071894189867092918990263703961905344971608353402282633889199158755282871381630318983605232868736162205953945942435818790574049572370233363618426368354958878250449929396215469235559756576710313400609678417607614303161415800033482295834471624054068227436569615866254428572052513780283048043790621736509179503343730514706340057864180381483150995666393372538021279942918583596942291695266788357573471108576846218438326275682297962489588567661663499937322473353436053902245668048106056516831110894407201977247351468961105855134297518556973411503337407321769989573506587912904375099626375856399582851508984507164823249836222011991483674187534055251726183901358756666962331149997576466989843499192262061234752743547175945872466262795088532093006862686734301668769502663371225996309151143946274834310380799260626336812089775893612580515065805121611212284311981881498888719916357815438250115950418498425146246247813775558742774968761161431905705103397705319031124470344464628682764570164543516790475517247067034592404923237195279167609290858857687250928493097072703885588874429598211022787390830453204424675159020023124497532668513292053401547033670151706037667686992120688098459844490665990774279603268947964642653381401490091767494436479253583194495942961796845062261796012656941457044514762531020455950570132594817386459538515783688574189301175590351123895621033504504957792042443455131685693859467439783445233597209195010686087586426713437039438715299371440512643771305637262912948758779432983085184859885862879626220772686553120977709962144316534492474466258976576181299518468225390681899206700502653451102364023624996246370010499244070760684606802882687187557848705656389696588323463252528492126985682922969421731975851558085247424993184541529531461377330382020550572521027920187866936665101278618276272839054043122537846912673563351850759868799657592939532235205995983908244170196712562302732617546077961253841480785752985703807589290901686709494449687926200533380973815400900473196197858656586850728509953051931785998719410612806016200680468568203708136276120777756294254943187490548625286778235970398467680602544991664136165455418422979782806818776028203053673453945785984790739205581426955003303380602577759230129633662575034838925373396873607147171076749257796812562083397036511976589383808831537807091451179987737440516648816063450197735465368541271908665216936863832776327084843470746067577833345787569450522346621156875219170112831802669696462954622815975607188825276797953479759672399319526994270500202287268252060969149183426893234102341858310186627703827224802968224471265271418309083879061152280881545610099442193067419047621324678199985920217833597040702652929850672391241841356860246024508639536489047991473053752685204413259355924617691438392215013583398350692608201995949951726731932397070508398855800997456539553201505147966192855805579196809382475696326863215345077588316441537475489651453576935018900482692228929845891650600727160949132516615574114835838354531693357021327257983275511309677501152515444025542154836849436843361475638254233911647163762147114189416653239637777533731762207543851086409608286246453089844597739762258187402724837086014066447119544589887913245868923977791197799998322594981779820589877261457333184359441471044755336124233154473630385591848129458480773095955948446050155434504504485295393907943380358744747007470637401839938402527892158514340323398066081350287815583402184328113272809756749018859327036494788248418555728653903057822702077180147343878677786742172938701786848153330570188017341265900136780406773590199441314414408600562941167729568368210802823321928913387739489736493231173598690183336055984332531288149209973366715671013907619307259262424626610990486696941041783970078672749476499662223803399230540316147635218327159463539324809233863862149250720020188673854217282816451096744648649522134856462981134842702233079582822726701111493382013568977665212950741511615864989165226557471553454734095273301064520119036814231076488618205680509227737930626386877373383638375849600598792121726761131754987278110437186685469202061474938471596934342525636098418872259918114350199726458703594126537783936381581555388163392827613705887089699629066390366013822575622781566788726748667756743532327318833925024790181356618699056794740724186094621065277314885695733663129682559648533614281895163603722457823760888758178220959385941600235046623778198944518810716398974377034706307369305771952407164271607250947038303607321578787952646539476473819746309337422174156341087724866490777668678325173687752794804955981446407070712127050005218998681915832799496419986227115596057167689431701591209111744279185724650024552696327811267495792554239757915157276241844736158270398176643286377288073265006866899204696583474413042793111865325761714119847525727581303356283273775726238251275447133689408860135011027774313278955839674569503871301621647344916045970262744571299235434034531489939374619398251964162892255846043019129638537056220888652820265263996805261653653766744917886374672382502093359709849020570710476821031599693740540811696107125100500890368791872211090132628550983335979065868458377813128514314928705655669303395050511951778626210082518327031012576932428958124702696595514184287714045052848450931409064339998229454494350338387097052897094184054999283972636984125149916417254197536521357086721723247587932084743304025416470296839753958655543871263768506466196935637635248486366231011298404694222125769462060448206718614357653917982757591850965519848139937882109564927154106958149089799048753463104604752201241418389322520628690311837275052287903613959369705363503625579482018576399386967106924853410384171611946998361841391032337724500918085838416274807821587905735317052917442943305544791084476307672908761490664216104786534896651858186265053308404252115898199885784077319423844786325389196921404672209021671869278668826788048940813056190828925746225275962890397893974038481492778379486314577625289421946835361211860524018387090753581367945725204871136350121969263002652522126015960079818153382649439946913770427426161298833137161450410778235875528813069142881983968700533017933574142407804135670450300680296362081859319029194173802059068848657566204182064726739030097289932472428301198501968411687266190522498712819385830114318911387455240055068107149791711765248479915786137833199341327171955547941257868868334641543973197650346241011051783414206914710209924229410865799278302601990555056020634680396328920720524227754876070793863903471622587942850638253407010964667193596188999266505296842405416052263811405602444802833682987737105980185183497959954677766399902194149141241652909804496267834855081307027143896277632595228963997726881001879527794571890223758857861600443552547932866059697592855229030528605194724101712749885797476229594470492547282839221705030207663987883996447863042860243641540565675993975119379562327131785370844924986106012000958114227273934497017781271349225209742847731037695524291355262856152746602458327625786537908315624370357559332662505787513295856974892034693616987486141083971002618831084248881965670890764011467968909923814750044636378365064103861808883541006175630677927893973428846423829118786078478040707386887124473848938719503584108563610157350513140464295490537916814929616751949277612178509918157208398070345464998973464184511995875897479228279623082083680196646720082794495184245048710477447804310717447858264424448245749208743688428218959622748830978247817360095397549847061526602223388670702516869084608239245374979269242354081709553285648121389582130061482189015558281814437182404214328490435500581548225656997474984378902353157435208352831112172206558160072547948136486439861966521824200876321827669070651272999830831185764631618032555140956107919666795386065990595286072463169455994775042234335883450039746590128359952476153481145189988324123658156301474308723129430354164830629119771882703555002607783864336541712920142637893246366558612777502462787300531783114928046777078607215346831481352524924663286508867490544627534706883635961360121024224758077729811504385631206661709304511322457906331521582705942887099062785677319715087561413682328885651932891918473872210358861849135072449295735227552071974059995181590498055357250680059222297916834480374673454306023533745755092329522669992826260508294408376658557641885273841507953835726463999059512513889471530736487372827016129862657702977031256976673446278247689134876971611420374815053813038456317420620696826648409371298439113407951730128118782049931207311807389580847027990121548229314776603546852005880157412522935690834775391265296034807552965846259838051487387375538990841984652376322775612728904757971257270783302699260478350287945594061915865587230448139387419332046073606291135828959045518445005706711240933372605651719408808745085079858403237136072422845100521064130272331587408302812147040551981540439485074142144322542941615228554758641887646391247202764149721173791490982406825355828831207938150976347504454653521222448089809454585444061350233001702609999573064684003131317875999939176307194850491296392860458473315884385019768052607129521412800672417592684472697286245517661827073901863823192149235623596834684985912834495491253766578075517882666056294227859802160520344236494195492220978645503301852003184909864115970469934617633247881095129022428114832680893087048182368136393607239386960247007307549440544705790091803057136643322618175636273703349450539719379058191131815308468612505471507154806682308997134914766174115209012992082125951388795712438750538866750407547414282464459773086342237046652243669077609253040452098714067831866699843186919870797455014394614951848329729514804483031705973696607635080349084599103858124181494588216802384686234547419335454715705557519113372701468708516297336765444219340368037004829666119408472450445893889046044849927207891833440482923479917543522078049988916174340064864247580892640981478840699712369426503057114035366207748766298303006960219467046825557415556248518461775893451265573006957126396638453673275899581100789766603580764005743527013350830902480677037554448386473237136499445950019076958923418542603925046104093435558944845461704475164719520633065861218025031989196561538790465131180497383519165762609552545801308295949525719481438409405365809309315255736971793623330297489335433736889532855579205695751444034494465423365260363581937793580081462390457354098946624893534770715248144516455348044814647137755458352417676032431266818065542314883226458803540158343325597459466973511974904571724139466688023657286250026087867334784099097198504521787205083767792252094757324295482135543936685707758874827427331524475208607047045529456883365923271381467670770447652118597322384850702473511785948507400877934414008741481319666517449073680565674632082674813952687207928743585320541861957367259803358140073836097716481294950283658078985954415942629274201358088786227179567682522557359795177119459314977598347387497589274784007229428382197924500488209593822612889877540322692423380463613178978604202992648224590047543587673498338288790597864986574624445344105346944419172667148737420303451078332384127274637163795468320301020923423265114951886323335782952841234251517194833895352354877188967102304350615384334945348390417062618012551976460025757761478167929590730871257378552119226529208158705890929514407137032710324071347266428258347587425982597382086594490890295352814538131394116946985594715364809959090558707309035351106718599310812509999408977399168175794681950197492232180884401516648957902617984766069349311247563715655954239777721434646753493109966662159232613785965850700367560817358068341511003034163466688405694318640085089876244048466687207698095336483109946313566001666100045770117944120647435661900284732185413658044914487728710478224250905325389106943898852182363764482438395918738640941513085601279403794042147803117632911313800932804789265122984760879860671636159743430110868124899241551941159130525727568124406034408501504001546295056389319050468394515566154251051341545190734213276253902057284180387702826117247569695405952643356193922883186203667241785604870613571988036221590317430919106705611014572959119305205426585943629171993336408409636920006720646371330696213212742277812680227061043754896294844176807139652525040207572832901184144005452288537660566518453850760393465939141482709818791218626612249937532224954596094994819761141412369314171317908879227221870105469824727887291550029137322154028579814579983585208136775079274245184981150012306248623925363469024010440874698153032083553059741827171621099118705534502628113814708188430625473314346431144864639979680475743650332713339716130243113707244291619023255636379325766074362632135984473420145257735553640679506208309749340992187171906117744848707514077538331847363484264294837368982027929823764902686152016725681834912447170979916406353256101534382584275304839772850301268316220537211291821997509963493893031800707264445370878694671942038839766534731015762046822509681873455127606910199168894861429238569263741411940137402167901357607724497992962526750210413889029649257215906589862140792083633030908192541159128784206151572008919308604275030519723406004109349220095282978857444289702223211403487966533984223782094314347667586920761552304894967017010553017161971822100094789394830373289339691772312946258964304497658879519881465999489489159460160824642025357221206257578331083763566360569566780941968769613902511827186419564752268350044176248908049122209109167076589909600751977650281204765029983889664481148288271492022489396797814843413413664231944042239690556283925830888682896791145070227990628098407418915203930229400177238800669486605747622538094484362444339574398696880142017981600052312104817248276187587738841603539918937604266469049682007716377347954007840587391151073619951611379723696806108635855342842427307396048620844999712191606175568684142649042450429068555369441588816081783789936201853304400415260216873437969014559460820424846337160666296326469271162098821266467204816867923290506602322619435531490478020547989805321091060953008444018205404506171671537486766749164432491296657430350251155516735843439215757577961080583543067161370297621530131072234177667638632222830599744034128717710309882394387943701087633540371644922639506091925953542632902737275655463778404042119185381263804498415559727590155310380373622548523185111957120980503381100122716576400236499736436007462794944994557731282559629169640826257513058197065872082708332932945623584546395405519616045056423943375497673245837932552885610800819851043257788748804857073414400231801229473460991453030245427397038667200822372022101902324942395207007769796663926389590609670405339790771850842860034396557210343430631446140608761762718410878011884957101571980625004050422829189313473636569135196939144777114906504424614447341144506025496432363554701952846988272725092130981355611648580380185104042773263873879260484896637759156232001075453620254576308225617699182247251564875517272953763845656260371219448967853770830860151769977958316077501165919286058007815474648344420087095777068793762069780177563752346888255386098156836890266370288075022656676263745359045916415295082070238540703511541722226668303875480701429715582988955946532454570193161806221237686967856148014884849574322001555286939755763054010270873228583005743394098973065974337198976518195801040369141887487974406868175868482390845334697351302192546992385849562741230226327927150836595792044213802615125811634800501476856992711826875464918831290399171977738218688036791425627123732078115621268461381803891409822651041462644464140459380842070989461968452563158710931763727701489019028042648041015731421024969157886742663546422654312076132846603500191803624007949746997491596167530080014363255856242402292915187387811156737357220731829952533846873574797486276971416578771528786437813896010157101392956586598043299492678516065298457573276876708318385733350631896853854693492957322658149985174067544004231706694346445646345594118777969367953354451108150916982737253542896964906915290139738196430749560194555265157302330863251883924174905310210185780200048030803759798443057005702545151985413216012209521131573802813687180296633134749371994159423841487329185560538342203087077449789965408069928896589736028319557881370901028182224501085508226520505912341155524669574225968002357296392484086332926086978633897528770869835652277743659957536171054453259125741038798330511252460630086457501228870155065893912129529192354538906236310296073674329550091963022121780537602567421610170652728492433327598566559672046343165916493869768091786769446801072577202647943940202630885678201726031763379412351985557936022015919768345223958856793516660521909067649782421219446978106201356768835118784472839157265706731289651632297279927241610232755126221425219226028278304875155406064442333419230161554622946926264977658860601352458230437229138625319980006120919678076215333476547129448390284099533672137036419350979189073878513050049029567366197222684507996867193199707126237176819255763183056521723323351106193168521382347423505822270678708507462911401349469499491626580998954236826409268051178816324030788309784583984299347273195380800014327788386012475369680627928038273656314841400740992227773703872196347619983586905759518568260988914794660747454152930240325026621466404862607929202597796408046861335877167011268702001039585607795510012842207604903850902745512763724167600223923219972162297635833344243759461772196743494956496319537245995399804726335620521131497940442276422474147030616331942682206803219033101976788378995883836157152133320576095911218544477153725707996944100204991269162376242638730988104815794431577950189411410373814470995831847051794451872775260991440989120289437069460424023397711282771185440350188098189584737469499765469416840808440081740588688090456844292301953154232089981776796734836987277836744162257572249482283428828386424829662809450058418717694326709358142772838522241283813301496784188106515728149795669353667934599901490156346829837566341580846876381505854868762749431731043619551048678734049521861123588699003722798591386922984399218389750986220693576907418182337274621745778717455736946490032169027122622942922638494321373978492281633134473538761661230158245054467310240490242479408137351929649601500183868773012615404047993156992735768356691750006645865160224816415200534221144316490688159784024036393352741678404569756366602274414192695847280077746332508658770737463163522900954719643727977443532504108904539782743779535381112364292808485473715583723850848945688435862088128598207377581503428838012875074685457922145766888552627180793641944264533501551656222982954947278142805858826426677713276929497885420396040139202805292837827346292065711476585106088677042909678707413872251527505905890034829614183827813324883733470914170860727352578217228771854595600870488580235293852318529524445046955698082229040550642563420483142641272926636304746918712325052667717432041499640594773245179230801277123384960641291463625018431788834512427771378061885302434727528676406881562606954463998459745874231450080215660126955660846458238505628353823919972279755830821889548193635031440209899035598870449273860658983020806759610368061832014189577002044066104025226140768012445312403395393670576760376379343716287292071758336726761175274520964475130966933375615909555570217708233635963170051265916885476531331118110583589043263215333636142034826721921969794485607509692181778900970171117900263589381374754766659225560677091499720474343841005239734664916805942537371503336641524828188341404435082129101598337468844418055130366821846681797551711929998990720901580549959331828735140424428955240056261432029403450528491691221822121889348452084127612875402623692945357663407792472331343886310951392596399448806352365213799173698635441333032114156878658825400293232023054315872175989023995723243244435489346891026635247189357023230632073512781242880348112733070156596770143138156666931822246885545921448813792518987698889364166615402467818289263466266716030037041819282678756471124065899768034302451716839535812482753277260253724410302519355461612632982211658717939584682187627773107524775727641424963772732391987475134337463325975671350374639778840898039586137694803307230851858389196904816631077430476356264847153650396404620459078445519113561373156355615174049477859286937312046826439688469032082608576725379495755772753999516531611927490331781188074553840042106504779099462184435520462210596710397006104761430303074684813355188838739882856063747040739858102021788175744237123223324404597983037439327815936168291674415879448462413506507095196433763625639901047029346263219686668864875126510363958822275578937392594508823710831744601223037815899347010018165641053611977219232752291005578949824743308450623533314422274726887998431952159193309598985415526170738132727246701077089403177547162168159592841233612547612964377510908030485648081356957327404160991495466413660773965908721094772897549538548291576774914054425792074963593179642734932990997570442759185572967252197559106686776312382386192290506310704386506985661421643975928813621895388890049343333267573306784964054149200031624523007979890037285728497800415837487143935527326839404323473996999900892891741256177172777619179312235587945173172607104562823252947111080786935780543363923445425279478087513189404201778481302855158881223664259520697498977160149341090409066508750151150600079455801244094697943323623699274258576445136539656021199344187983918906269488693390753320501730400055310575374909691044504652779896236541448709806284441422751190199605647742505417123293401599068090205823748207010563781613036625476027718255419651130527656442210286626265328785541404123512207969367299559187535410834583100756925911636314606062068176347739684607598861280832256854231480959729868877162070703660169864991766737498981874211968620178538851227353911237553134412829805492440591492393278909060483904512253181237745647186351965714101898411055140477710953134520425188221338730759193774353959506494582753647542149741137879420335839032604689565127046782850176187190635649249923766096419670502420174091232569657227261938212411983830014907299401049371057675203787025180516458324983761185330272949618292812604675858764648432110879218135012142576516999154675868061831049185304980801855922982507047260757922855851977665379874117584530509088006241103344439137827094654866682631798095754456787112349618109219252925092087493572690749664235084248587644448763357093875377929467737680962295053543060702129440664906399256619222542884695509399720708900601777310869468134447795773927502505357748437335172061585514092647953510050786616813992187719534359833587318486089297587414913116211028272710204534335746478675165325145893609636069535310127802313737315511064295690912485234586877401743343879531354942926886172982732558936605673020751191936014293775764036513023875680514408113564096969810756202811937071760148871330725674350006854154821622594322933726269500680842744230622434781589340734091609621752327814810484468121196370262767278145533317117279658414320068553302215756063373072998076657404523385454809214549459629488951917370792779388110263851987939752770728789599617091620366006366103847693924936212222817482519653204764150260741135088134974314392844179422514379711975354208279785451555890870635571575441704564147331033293574513086505102003639154853316176841074990924899074514470210800633255010914783736967997830273961206110461782362722823028269998983860520562371249949645957561650769813215913348725559843023816932089754955915417903973071862602040863449953668640507854101437319782315800399973057174400876910165940351233787849863126262693140782952666405915845214747131088097742240798026576735435182118202547579136770564732231651217878468467450399944362964510111295261585167590774199645383370569139962748651590617130493976289522011647679047837678878620725389952946725051670073323059982962481183387702144093823190884309509146317201193079898475894158049023828828220028345194727284837592824858536744209398178055294321258434166479229788141375872098878029640881916590380930632001880123606391443797058963349550907305436028538101844297337767532802642078408977592041884026974637869436257005011315695019850776504229856755547843476528899067082712845889059875299597627235356586452684269237370467721994068703273699040077148270359039595033176646252011197994138595448124243183625301098056129197849641000325878367667919831455126054124618478629625905931181666262503644643499576980874214132318158568421232717149408044633020912144104913496095646318896698801501259710418299654302624064333811083964026383583366160211331684518985527127771788840170106211010749782713159002614850022460135669809402281847748490463163491010662133538887511869307502526800842364367856918866610570084850034122737543648137518921256747848044432751831862680092704538686377114684030144324493510035749700038698605288854630398898009847421277168082403121317114862289652620866272542842685609356388478582559604842456821374498083371695443364962015950472966265111783531200448789900838127690481822551057106557025452283285704771802120663457664100738043920513506175418085365321163290876279875947243451763784442978267365673299973945985756946015859284679006800136110702808557712775659863909499579928701571083374262563032240789697499583210282527373110759410222510299312475885871938970307999966692859239126108905290985285160584075741494055555152133080691549940809132523814936375334703752945651189143299677877892755953668657777431740741512057786431977931274099826091173082697648348820670385006741971939112747153354437491548938679332717287231915971300145797101507659862537155266789019153101967783125933245838235878705268651194175031511891498590260559301813524644623470883144113192926453030089416568112612680051975425491860203960963949182266582873198215798559836663627571260331992024640139458806117170923565292057074378008626845576543274708182297666027762400353855270998638580200101202326954570313754724161913350130253276521825389661360432072393373759208293248103664443504030496103443847701979466720564671895291922517932477517051954459812957161337948339652314544794457873245372055337098744904688445955118277077267494436782934777933941763997518783114931102841819113059097426057198073947234583069907770153618616846322796716149219728380145201298028133336603251261991263526101870944324816369909707108638397040052706471023508431056824365167573098155328506060414809051716890786024061549336061120325870676775068794162099482711879252607637347370256262857041015760927745515061938146469685109595300958377668241480545918387095632889217978758369452512572505161629939176076858486136878441370894318729315197763010417931120001599406379897398298155308134388079153368018567474977061985133319727015997093939743855019424417606296259479973314180352231769071085953590818635648420786320592491689516162541691437402401195418706631397954844251870019526903900905311915876494613553804586771374522295790197894508489743043733269788998992034769026262954595282403986253339857106394324698072576619180745983949633844453561917847122685183921520864923082746751900442115087568353932751170419644399538553377478394236660932941415906918274305877936792176869279790104539012816971360555074872741884185055869909349508693679903143489167400217784625505237667600710694817955084164199751083547778987415777826529647809376650630307189350042166862082625613427508846147034138373220080137949538496078422478664166527904068355878269225994689884899362861580345809542285525199891529748960980107310305427677029606207275000959416148412199800994989963170077237068435454669389213383014044738114021797045145770723261340987578924365765367763710553200232601617731891099807181347313650618915644606767132159839801845900136433311396679181008906102868356211334832841164881288607054012287044780461699148086034807259695137614268786969577230174304038408238277441616100563501762961471593763277677735461723381418326193270154917039421124528276962108681782965757389739693169156896469147092428814057792261555458066219880346891934307362666278351006900152783742953792710401084115747677232428325558901424632282698529339924725813210156597134437699305432447088615089431776350247291579897053602926792345499034933342647923384107727217093694354466984699765903624611269167271151153976973791911207058943864225911848538129454927380406197441540409525325063115122952235667453375854854995350255842062926185076451398724721086145873258475901456620865200522517179172889614089303962680052542918054642379309066863649810760887499427901809062710542010701404623711552830428857075747269409416757781432198350649103186821982972628168189090209354936468835780716844490217018650276527059464456414385518476746268603555541379891707223065559414290371546540329602630208312596643724595148494602804053684003107800271728039846774956377700481931526300632872749408442398442513839391942526944086140353464167042856320392499049174651882513834954452273689637536486102599310926254847385034551541633862085952144135241550105646053640727475129379705183376260396668124874242343778537924295388199717488790032796290280512905463719117635517281536057629965134754118093460861443441563799055758716456636352462585134171003076523898921316196751297305224464122070525575136467323332921422395217094847865063543256206701081457085168971494518269291072933656448540429081511537114373304849435834875707085646028148982866940040155159662307110555314469934968348137390716909787869444023705192814191891099673101385824285833924858308645877911367825783079740903150186431092152511512497743373965405437875038791740219171211169628783751819649675928373722335235253630078710713225380918029194902608688626587182009334719270047207794374943670767666969640380019535222163492501476182411212584218249642434191745598038314648196200916908240905296824300651526299726030376092918491277475289410331570500076867198674920888012247661926432787558304117318055851756909150329002523788203352801024574429186346368025374890928231339432872966027652622077948739090849631277882849291172840018499718265875858878835763043389407616348626171220539099940524008541537657311402467969601556501986682705056176407795277472306632409966475313733455375620028578214598885915463951266898109112763498693060232700164483004606209083295891509947409351621879725297756400776562353852078075883886016526434265488044589238922261026596555562653881346215114129039167910459457063335995385699113037264099530889534090444573516780102172868398833483940420909125964975045825121712137888031448206670964136710266624489519213850074380533551508943680244144455577845985907096297731011061554208677205140293868450340657055811467183747243007328734107606396023634766077024896404781264949243776060118763252561263390160790393001231248550204080987673538102965258928500974767126681999289724417073692985881699064793200483909124158299740530829872962258737405314960296182938982498291806911610852143153030154855730919148512163073731552109603879792749233475552339733756900410960822407358340506265531637195677640638362372122446124322603868882082885390929016093570361414291687331553045778531757138836318575294938316759057976397925716923208077280110502538538342262561590928294681823221061153797747229329166970096074803407561523475258730364856406073720455166974071406679083353687802146892645358070945568143826823448695120722751180188497555591704790988335391189158554009895430196483657726542221934431008709365530898944578180301883366562980901462749079742043399719134346090654654248508496252487633473096480854930875295842681059634496286890014414771195375364822949863808371293687789704529007550680507662647636242047957639455770168584921051049055014988578336200444995167381581909404712953731498507545086590854621848124056357043751060777271238295665080289029039174027171888441228432001161725689946098695841027279262755684427626882241710369985232944994483539934642747333382573071755848522660368846495823849963612841191120251270871454788246172733335472307971732468714439404394223473741367353295080985233859862297668403807270090141031605281834985487264439737495952126923935454547138938404596628317195939812806012693683677145939891388882108147660835098259547257572858717848660941186721128538416725710892814612146149182613930831834529209018964813527722580758349610353369755918525239285253444633835892803301874435625546779474985968670638387756679551883965337103152992688881869116313682670303474095930269090703819513234802125206519299513490780926422909975970409930306672934115762446221533222048311623895064930059839849228363659153035662433590134160456043196078901682844581081634202519921308859916860153302188283937276800069684435758709209854617126884526942203469736342211184351026127396093095625628576706388223690444981192993103312727704913876692625903580769210640045538238700967431658816400702663215487767726061979901242553079759451615086920224483136397650544200980900730446344964667419921866629462279683070000995006216719597550642834104424516069619568881926929925961338449107969742118703478548542232969454248564543989732151178049735461965827371306473886300237431306797724391921395018500833386457722747069672022370441107870590532060132060402034620264946513792068511133108110847339369670026334357265686296984738809396980699972996821406414368256703329707721056606655093089180462507465546847608523967909683933113534430562265954735475059168716305211339811252316735895277102916056703259227359498170137547144740198927263407041970371413436726242617456859118285184165917845673493985546538176483695453123545382012013997467730685585814801792474147390771289735001183330034154421009827896322276757250941767721770089141361100980479175514349550307487853864504512781576611920739392190520113628645095509484533149076873067332169601290100321359592714383283828469610068672583634667078016035953312116526616242867431260673133953680237290483876342829553263785213095658947215052577987863239819009074989587967559285603718924417050602357222987156297563409416141078818004991282574558978674829194321710523994578689916914429086403705216211874875578088640420280102896723084410766547414960775724964664712502023953332369456023481927089948640098179999531733065573339495248605505438996761817114222450805844983554517768334050730404569225645084169357933556972702200057137633354717561883603258074882512500034350936537952357325321641123534917926864112919551457778326764190753811373618585638462757486033756608369304958225002146679000606076916719875935989343893742503940526432695199625552142649653359792057262069051678118938736191003225960169446684556651161668683886428956902593821533187381037427970349627840002205246441163809105852613309806964622384147833111011680296798553400136844916434994853541005565583868472662541302215693753247562041479165804556326486146516857099428992801325825840917059233537356555063149223697695630553635939926304725521239663619937884002906886769120157010032415349840162378021462899929786639139735232830918690586352172233327331525477418536614865537104757506961003560393092712648733002544838029732555468420449199464453690414651316530085228939214910504508796795754903622803444788984075217610876774042721138001951740665549943279584264416015717930365613701257879885684360474582694525795258047592333601523715258850590120414302721678402598042116566245989571411075563433399662314639681062488957249381656628909157239782830374330624918491662257391842374266568796203227232525133513883496537680067889544401284188170528882321455866724979464112532121485146753414107594408182087154721328498474807696939677477986718952627828196254379860413726304168423970110550518804616450571344995794014651816152641838663438187651748011120663150622108522991133047226653239952197091986259417462525186390887305688759535866174058280181686118155598541647092643981246139413550495640608704114073676111449331157574603171356943055762018448749825479922988257411785013775884781615477162181695372575992387917082676610099728703527019631486307449011494150533771921881941675345391850697718966991717440664936765293194370673820060459451018740604387157211195251348288964908897855679388230930183576012931843392507993339940695978054801402975177546553991869984831592793749784379519863712918460335515436008986856945985842386363521731123764399684159856307570094464922183278913473673071705588707605685961205429188872531330937521503817474967103334929716803013033698763560401723405798614106043693757821510320731778926592962899078621353604940554359347449362145041161355425155075354272887156151921075599632739345074548558579877386739185375054787162677523887958960292901059880968621227859740932138065752370032860831240121775086287284359083800684605057967065293418259838553437143316470149163951316333898510986156073355418536221984823542479766915074932369565067662562210838174003260686692295170741920590768945910914594255966421230124621185672009177860535522339481133119394917966445452850456283543117215750396994322700537475835678067854799194632387640368236086548426954602167223093588308504904408316278550448959853871781698375184212240187732964111062911910569904690649917025418332947961070425077539434646459580485960801703913343404689423683333883230051617225546292206192556171958787093589734401097041334462475097137619239900368217732535401681964626998986206983623075534358006216117186671925124514328352831516404389866104149002097993839872748017694106717907006289421514384741233248765974989855502281698763394527816593939621492134724846309581592710973301564751300596232707449082412216767877818275927426883559583873112024759473141055887423728761490767309332806939013967885491527366615079080452411588150724408466415862997873817661980335257783307568027568747019931340822564049230232595226877675940405319312319048924067242898409478694801039231389688006520585275182015067672132160431925256361202879859371049150215225091200871968051912048534522823718247795975710024280261002879634649460599054363749712735693525803254546164688420223504520695390187532218508483283585158513573614247244358014665647921489801162998010981185216530318610538850071689618245431916422169662396063011419981823949994432338679476231880037696759044227598589775656941263431513029990686092523822031657454057427199223354347230270384900547797443547541775064017256389932222070206793385303759598929143176464852840742348662217458649915126717178137304044659759324239735978728579712647568326040096900981044354888732253265059553380472212503939901167644224684659986093530617382772373983718501514427866953894527269043322064204163836941278508364181162145756818233070591474878289503488007060905534264901281158616580033747509075049394432158180494870117814802491031973486526486960738847902558220977905451149917133963003540433427551695269703833972186418608486561484802148414128347690506035660131944632336646191817352191870674815563522599057440171028486427749891271754831778232680332619198205026424659742080743361028005081210796819262537972562499185208433708865895494944180790596373846400069075992542458674428787967181773958049528535938879795343437621605422051186147312770339769942035022471038692943763403668769962934219953230884426938691031675458192458655675669692532067295146703878746949276403269851892105934399130334831065857431101662854875761070513147984965709018530414995885508712979473390659375724052406492317379295647618360147262232620217207429721822513582422856028293492205546448193396557692003447159536366154639494236542504006880382088757985138097052779567364212948765673519614728890644679027829801387059609683006815492314372352823793533135630102719095992212859217737144516952763223425847413479197937711896267886523371926428342562103914212850333706414918272846700046432129956435179071696604622362024707928024956515024696539120695102364560662765514976834673208030263774304656361541060544743919037833666562084008432108381595698889153910969820889523909352922488772452516601618898615789865661990824122148802768567869862197716823938865766789322021522932441430063756608237462986118809482124607477667394595526438132156741899550096877396747526281121322794880845884420809431472292436865483738666739582117199701854214769726670143444636177174646160202959127042598147132708649070250425787307978229688742456230310666670439186286695569010524728816559769574510333365142487574334332918614507261681389281672204699547861818702155990164491672252822085910971944708630019352385925706993729126490782456370331142507863773078529602203190068459987099804166949751647591419652784386929602155540433383841586932759153451882647234267601722721406983807380011919983780366211384169984911431057739347682712121983883772615095215682930620387015836174673582714071583836695412209430813345473689434125916825465272204465073887691074246565387679270196264746372166775107083377188425493269127182545270746593378902905990487041118779603875633651706845309806682052157952400371953885389196047447885367300392654179068536244456000704336682519826616571461659961532021403212959620073487421584747348892270859723671345503089184692270150271009463909763370896465902194856267515718975445110131430019055472491135850528147308835579994520735435067362039534169160470874830617333094114602818657027546815671386785683274518322709960047186618080702298628378203349470469238768638526669691576041939131570483136282031167713630491523791193506416352113058730239865101950034768667544481823902312220249453013960815206557885517714164094408718640184766217570430652742611628525281934531495036451570969076416702328932012797313095817392974198649539351139316844978348460716239028196355506793171208772106366529405687113568115133303282543459017593819754746233137372066410876612633969578511887689327998186477791187528626883293154045005519657855074198978224645424508062983226558950999879015627886010140768160955388667150912441034548199511976072692530618702783790994159886403319003846596711771851278441960416124226710686080320995958486048008353462463644959170397109903085470965401679623778520186873924535014960030202730946108274775851586583012832412966536694487111288139033206585561580365111052549215559634578275151040636631177582504034228439498162015056780338803867613020887082091035944435894604092561095041029323914198306997852777811321363934500100840869034656316399009006702004528433629221191096341131922899231796496668721048980421351077792075028230491389932883997557775492091236229311714880948273298743648003715254240619978052815310894950104999242305486498391677298649395440046876990618263855810665650998831672169936660152035664054633856587148961187166817179748247038100592168791073860157611599511872710691182463761131471930225473389872055755104832642379574234652568448325172124766879386018334060585353820834490730843785608870595710231714870058535862551270059664142788908325830613548496774219703001772037446055686563041053255951194008692079301324343774618107960038504642486321900346655811084897874303854852707738559671664406397282086411172723035462955540845647384425782178297904418219526298411321969274561238130530539951842848333489499955839591865568851715401898455569225972120733386125922768778857868084337162480298664594097792657278498483946736395501401101369667516784856435510609009281902629260915636702939964306890223963730528640727376871479577518829198997147505990565384552727742982188497308765164350398780811740045446092773777294330661924246928474980502865719151290154824915180082360577601601198514040998181602036009353725895718447396713350982025651948056555539027120489652223825722745630760333442503648183309592542951574923133692180299452152751164759995411728233657141371522563048511938494617037634737537294979134168257723007535584650385720083763597182625406630781266029835840521003393121908650909686056848088334768106879833431962898681468761578987183787718505372142576495097274253588438205578441187574346103008455499818935480432900813447888578878874285466038863041165467704599862118761707575166902629646983155686177048892427276382976599263579568714509586619883026507931114962123386852941701536874183801927907991530953312722487920622571212508135708375068196796320112851888567753880953130644880754086530993416196782764665890568644903205790091564362156231349174739318105528243068105249730968326771200776894731640996430390814510255791931076055305836509885722586417946813631414908485193459267597238011684508800760601562032979232542292992983825124994617326015450617403581601071182738051493278322730320360226609308464788452170689451940274178113800971887336395017560501107359606388372892906116178880905172563416918186550894004115626288441223139535147316848672292314651676100855248656668162398476540337997651256074011832943863989969156461540374510309237592457789241054201681774011660171638916125010595163922515605731317806997207675463641948959017566039325829564030046313508743398402952538582512013468562816841808362951031212476671473369866802444350920403866412371476475069952296802997321707532265246121443177669740589008384660002377647664319336904544550349200844841053840947509931087661762859649345183973241856871731355608630559803647916950337350365429996507920183325310300750189418813459647564906952194620872222970092326748545958490570892453864809240325083894853427729340631732223076690396507430374890751334640449983904222502985375066253705764047489586924248195521325702967360268383750454167583633873533947351688223397945982263871083547983438723745388447392479696410931278484656742610339682199672302234100792296925480963396709728367125688490181433475540968517855927193524682015986845737050764071978228203065828622594778689181177401093372628473365394545372585775784462716240144977519680061850282922137846814681740843507249852752944489004993082138887770710977037466315042049206116805091601620097161148726384733433343002565936602369322079562954513868147802125236441020415710314241241308460363287596297121491439723863006068881031455610890089782823535698627046351994641678921577168593193106790162005270634287822060462330452042086074772924953691804710901557157052027104378468958335436054372080551084639680563248448594754373041940746981610275872349857840044051011516232005607054393751066231255190082382936775292441792274556407695304585652183023877336835258211643682721951790474244339495883883175933560837973329537582500848515394045580252697167592879730354932633271235663084891748329715137492649132539522001151263211210993825766450392299283537697595073556765945012720377656714795647253893709202799124369511973162304882654521441558284474847990227848204948183543400040101583659941235406389784577992243679026768033737615948248156971224243867104805618732523815204058754119511839560763737316030045897452014179311468799629972692809940507810508114441761017991035014412275298833832257799333336839353425231336071004737331695282792086483812807028202384215443722019500035910053010313559437310526893807036926587410227562579639577433474990009956042978980154553305336228040963847882031251035649654839257441874854746914013979604689753847613990320735747246485871150479328645655388665975537840673070851508166496966755494026674015150281232058286266515706582008991550861365034007153595199904030211969942306154588155255294728793968032837063428169050965598014125837267959397600319089244988630172955068031740722521822911990892071138458232633054946213671137521501431212557507944422950753466146820153364130267851195208690419798746781005716815963082166596050403509884233047087199261290648980945040863459591954246275900964440499683794272853994660701781461662831576408848815520753549015320317574321032068272372726459955713786140169057305686624723424904536337185952496877979641493673095538555812026292580309039361860961596087580688986142792079028895302027308106575544403600391969974719773741897059063294277859608751967560586449861383546641131781577389312479839279522070358284396418343542211752117421298702261689719810419119421478638024357446902374291102733867605939099826528020979688287818105905886916554232367836833854551829851784583837334413452192264629248149581338934548169668062906525702756189503475753560008167340236051984342136169267839411996925985906555860543309423416909180155617312967396707445797768205682613283748896730599266211160403726486915491063385899609668431728040651549954662836527183774429014300227521870631666422052881986555558259942309356455277820612273549348119722357800854085931272672139151306791182894640948874269897396564218361277443455015482290300122350835187997075881499915954776973116966136345791336471700068926037257069538968928332950486909583594887731394181996690602868185258065492529025958919720548849466460462529028850616544044129911906574897621888507675623138983249255029563949758900265451503857992637656618858408855184249842880998912471341765174898892914358735207898791244493542543213640246102641136608599648155149096308576523608866930996997913160310218405255873226893737586133210425759730085842507604979424530255677538211235123264783051117630031595330898660070765193691262782819481561174932266966167572357297330112324824360939946934960345483077373138333667056321563476912130276509563769304863181714092054153628666164871939862044203713020584407848167593670695257558921797724538933862511170990222944815116980089510118243847867342992379407489630896254635505998943699573192183941889669293638346816211185291245173403687453270234847621912707870533711548034634873689197443154611459275759906966602135064200437653205785516940870714570641831564678991044698602083887423861903524275606774879793315586067219549387387631558104541674428024232762109789911800306572819801414910311282924416246574799624896786385596874523430186370733614939518527789615732147797822251642276832115738309061116307635009026603534971346494904683543635033468274167010267503941980587457948319394712445558803070807044557556965765780540878308296324684691084742593205264100220393477640477028948983036155684522246842419826838333096914194417724845119784118689354928072972067991377547468469896559863269874459439466051047976798385592230963415840477349678028413426370602894503573090974518017567237186127528860284662607065695547294576625591447518872381421140166071836778060135002825824744162276221816226241418907304115481168918383733914484971534991075309968172738852459994792328221399911579548270334867489272341186790458914123128863847177723822650257467392397038268432009647696527128175257935712689658179733812166537156296017800264385132607374600292384639616654222363587621750408122394451421725582867775324713228306933866461478928731894531749635796490380517843980989093033319082302749077231985660451047515134433172391107020136333209587847157409032379900208233749432429162108360033052160837947630253303541936104841663643346575589893847306853177994921644372236827830987461218537554278291014549888828268465336789008875299440552250497922843016486015903589439103168236870265203919061103032533891751044539078161853716769849592416479289902986032256036125075041192070421087212991319740822737328979956401756962268843337692025159394045764786526788367075476743992592831802991570221963026136182669524409938924024484707937784907376716947694205782063819811789695091694526854690177512373128882734199290079049298675256835615012747319812572537458935012767171673339112554694311079826245043572173788503585377516298994040100643928329636900108647635421344742104525550537829942298858060085914948313466182800779323604078307829761508279616805380077280268525216008679790151206947048535247602813397769714821160602094032319259562214946604164522391630851845498788314072334502446215779738851873993376641504142364965772065294080625005577963250058262630980931108114022689805920803742446754729793746327889877857321452631748658603770085587376209359569851737239419104067811439178332269608076392618295659112568556204078768136637521255006848908107324314599726555014437529740007009185425715111831042569670009292110335561054571251142632824038594532026862158154168733622128438134374385570960034311961013240252205442916070500783298567186986419758566643425137877807939703061951644120912105064987718185271475586293358538080205928951783429534263562985062635499903559384915355966845975476454175298503618082257522111394766706829744133888486135172662009029901100803746454922027908238403678930840939133721136138706868769078410132490614806397726655925159611598149465111544574274433805577823470080184790096932719323709440724738991198803061519637668395156511208213201437205530169842576637368656524125737987244081056744575131249303409157741725190772176582436158012105807074305157589228016611841658739703237351086906740609417374571308421047465761816350800403350873445529935059370040803007236817589401421788613340216990404808546090420474958110739662987747348478090275962014605509822416377437509052402517593220563821295755523606606572657217488733720036941712565858132631334292374827025976036586040852538634956689867363795175239850734214179990524231552355060173642562893542508438497878396588074208151994392923250928561370329147853572117496676965120241803691087723056279779515789299188300981139448472984928080927794083757744721881383079303950331004395552132189584672701149833570883298511369174298114907443589447898739866263038633017609783622658518879242004391349067765246579427670049336488302537017088419449433577799023684065866863090327094420523677244237747810843644924221205734734746005935799173946525091917166727303695537421161833437440082012399839892674355774691026798273583868142914782905092601882925889382308977973737244296985260015734032213337878397633406373708516675208471157659282792611706205542658238140358748847890549862592905245250236682336107765065296832506817167800088785382741831809649523673624480996891356123109729313980321235910579142696750008570171021175367882749781725281180497863466309174317349988773073208785854721614016208373174558603747675509503723688233852783916304742175985390565709995283732748907795332321873178143984947501544248402210378426985150740443893164448155286832053586460058583488618835884795598544496626196879642648325520320981360399101617406469777197417541630300846619272871387617551301879510875565444022502514735371148600998744137838255423712201154024692813369317648032026087368557689324975464449666779838019062699352114462236329946946283799364370464261284893918027889697630764665815811614468774287019450510754162623083251304286687546438723608909112200818703377091841645696850913558026737940787722245498728341943258512990479144605043282624773598646260168283877812438536780396969090600300759416012879855607333462314423353911057219820325681155653989212039616095033280420552028950885578947503975271816755043538143040459851912839519940742966366184535047232585683473803755967981763787273238234196890360400519244957393190035799479777902633895982410283798103896022169450155185805964011030878165346969242010355799718635537861410982218923118844688209564277737834354769692504719635799021054971839360207952298561255382222952430679614095751873853811437063843339154301772667678429412683577699454514205103077204279951536682106706797212252039175048789143707381635257409752637137559171257323197970049497451974817289416697701443010000647185053468445140510777394767729132659598528618976243085481097782954356252916919946697380057938972623522727830632831346921389786964235102614884886966908463115243471093115560782716871440667521560071068411204261904479902668778875768678974869140273490573537978037102234185238556161329046591354960913290331306633972221076553853685827955801939702465546958732003477026924717675519369294915323156609377460547582477715981559108603539272886714415085277603795955194504160015755292198866217087500058481801508221623744665332494830819071289275547838319853870360519701859862264086505285297007174570237770057831690897818662046306941362306942708936158187471871215927745078867859848109864300552732257644636089860717877542664904497003922166500120813869157192755673534068256399837912189731416934657599806675371378226748273759231780433070215250989305352839034994640035590215665473170793101620006749517785572263007142567477878104798434220876725698074063188629457952723212709963878755399952269298237915002785807221167771334505379184930806649662294823459772527776612940761339993635746089931046877968094595025931034270410769017512137299919735873658654145363466293703711266195925127684089492983617803153122152502686600219262137039037308344937750105515676771226170735682945886038612300872251632991242710238463561788495768874044639910608595014419689442807686985256538809206437921492347453111073857367729843233793485512121611205991798771968660105566156692577694369520754610266349918236906084226491061407344486808788839603222675562840045750997457629963141712564676511291471365759844741830208043911665275981990081829443274994977239364628748767087086738026209874459316886351700281805646909458025607493535697891237235624785332545118377753881123172923706200246612036497000526863214174150547429101527318162529405759583466688328771856578001028441545161413863555347844586454586164644404915087230808528601730432127536772237709717914679107983112784668165495601286012770469054551754764990049033867462700946659500769744374269531612235778956028610533764244098499122399887445138873490984332856544954393323175316054061273832318495839272930693234791552769867050304043125826929775067326576088544374983945005361645459496929406245303772747976645338888183159957324512327543568046439848271493032690288366624872061717068131149270689294811257453721591569729176919387525169848210234724148303710892768528374760060501256296363516438275583193271249513653925054964947939589371319695336867615975087224651379555734642525444809012536992739614564685734668682785618883080169212609828280589093288697405986702957544151299441887406993959962834328115867730673034325454702985729285158805841258223632834865005744161888594672913796685549852595491854708797924862782499026317121836908614896509266093344584866037664363906522760022479776329849445630097049360843834304737302279227512303570906308193183969078745274462400009981972091811046769908079977891652991682634477234797804069964578519684658354725400749228146779664980772130764122071197820620759333667421013622331303137693152359468487163206697062512358180969702458303778690628305772386079250825000757386238309339516398907247824627849048721425712496392787463910151820945361035132983238548395607278406770072568932946664581550565051932683836968354550106715455474912968447367452676217166586403412826422279163016902593250729939327064028061201997119651726054955346520323784975161108267961021488586926006993168943982513004992882348089690239878446472176629653894593787508043409470437534808354620068732455489058627387809605102123772991912922652242512076169323606627241894991229480790936562192648752401233549275085424538324844489634644668691404631727662872472428474075885796489052616301907048723328071066849823850086994241008944436328874368023008059124776228674653184393393647893279520510012727749254049592497891501792772060327416622279731923641463232537878578749695132129956855665658450650079289220301404591934916511215923785782200248195158158085448358853777411504092545281961619566071808255911266496672213878694686081809560725943291269855632476972219974907161387654183594255971854263432528415143814712256379142028648914459480053784879056521278238757840863283537810221001068047865334497356559308254616357127013830403941367601388583760077451731736198217640011388157283379097393810414445204192007537820514898192749160746471169778254781705949096863596464213442944361816776498356361828877336772371146571875585165018469535748944336996665896353350086508354996312297414114088640166289327046631885105978026835303520416077307648354664529572374778127010432673456412740835754911364401337948553455361178356138621961550518241885979161704377739704486973154204146801196830791790344116350003517048754393191821059050087859565766397531317597797036226588623519630220020153288214760879835417755888577554190880618803340174944207554546443157448322130378882746634530568290971637804226742294537512659036624150101072188194853954758307741924920316926010946925158565150348679444141707578696959014932888610557328131026229655349978403644969741110536187108373555104214378458334667990215298892077529425168029997241668323786325188787315613459187143781968712646851282542655912451726680080790013728628038685718486168537055250532980845440629359679374975052559325135001848693101366446652218867550144465815593073566416473324915027081911390819350603120094877334528425645066128330732872504408496742383078946245626096399950730951918196999323278523355570918977816968277144663372499198315937072169987626299398588355349396148106906634355141376424420300833734361604022913412381436005237900531129563107130246091980612460708548195178755041045181881664127382864401284309967197311817616430178086405962271420967914853127313660380767575991711015409084591147739550902889108204690151964194322677009144448891238005571322937154529102860702217834459085108330040360909945527188820277856554522126480159664188353373712896019233813182947454977338964800988488513210331640512680529579491524649517742118053587598226293326971086706934764064891644807974517534392157438047695589292671187377673366801379928704368400002645449035061438977693972683631583760963109848147171749224200139660286417792296826164968519361271005685133471063714719206857003576787390621560635660327148721530800754604451303241693781652607386925705088350167666446906858364714262110591188023676797317258377592504230216126183186729466163427890138681354444658370029086828612363437152180706916476319429784515000397037790433712255526297879299546087148564011311370896492788499390517072144735954262302014667510432557405178155233376796874559233228598282307054847046633502004369525453427592847869172333558360776890270937477341036799346848336339750021006755459528687329635007545162222592057735615941101761496328032501206717862791010016686332716711907832233861612178249267211721405293741778116726444824007581506373268559766688655546121493543339424113893243611925617155453217001588464681143646814839990093344627569244061484503778337548422717401621293653851058131491936841276002063142089358566811052350469569058162600283720425233249872356141301459672682695301286978884600414425683419397055680597432858250525518657363326018707827934270810453699413979828075067435170984723203743241228465343589557947745572128101060416545198127838270370414059590049788140511122393242179220273056773541162524043077163803377585089551295746479530782886498294554710716963654746520443827005528706110890165365669851615906760022305232247129431531669290001091428967206507950210240895719527233826452724469409743883838142082339142546825220915178373280968506913549233204349326336145265281439320846591956040367437023836509739458738977723760553253372710503733103856528977492118469051949302560948563017209541750285983274363543494856829941066432654088301216309176601057198106151184105961913638168985841750065310100202021110904201829221329387078397716107632530366942070812688042886749599101955121597231535055647681113634110207246824094370972117234217585420979076732436779662744056811792328370091955190058506217875564965064937858361944126428178975785382102395911826369815187119889188724332505118632279333508994296516932194998511244861264326209496989568284965829836522325645928595467917323417305084590874803864390262179276286791370044452460969581672384727827076193999645995496317334816004275248914466225885933491503762601330207522371659057251901066536712713970364409496234251878587002568351172123718827936599858021528126503742949000688385832783661602045959670567994916551899483062469472283496380471561664446810069285131687874733974070562973150378967677591158982376071626788047118721561029347169753386601331171907395034188521617919840214440556308204218949611844588393135498018502275098499306974810845491178873272789895885758955501853765896190591578191533616398273308382398286946887423744728731372368753365385849199568513906083992936423308255101004188459569657284292726275707742243692304742018722731472488228267344029759136931929723340770770570170455797687686006698499767928893036147784192580196406504340479268778554179982898624474182636192802331884844493994689927491821689894275914736082997084293708826126571648941574221639871360067528583666516119546812787741548491882796940501727468893833264576291604185344678210762648746598975121727465661460605138310903326183096256233107637913300623805305992327509917037467217988065875905669327867458335700774463149336926840568464865795048300472420051226771024706747290340964305482211679605588170113747343170227816830273004579710090473514162977067225405553108190985126238883482440485086500741000064893066715567854977874459821574316022265139335786691884038312051498688324828638665925925460229504321495683786575137115352204421955770988602368856486598564936461057466938008786873304588337656525593064868413407101164823346703361718996802234132598902909109617793979975377605772832118202922514474812577310591018383762609495673022267856107235760171532057919738591008779533168024675039590705481795207931488461199205437175127832819501362905530168524073086768529800805260546928804510866308761269244779033130987708931319607064951597365148871052412001245711829861118201184211483574386296901434739813012212848079179127714568359190581719837546895724121475825294420700207454890075610556160054482844251518678677314432242185199164115161030003995891743952522464296640765540165155026958998869728588288515701224266049281619037337930206912502839871993635231824006400472114894567987415549205237742299233545733412755616704214591256864397062148802596648561337206580267290536736575512932708750961969507567085060447315163054765451219424983051552547783507517900261591540311397522721524754728509899662674163575234198473212257936935643536610685030840421418409832457215147710215765711588354094485728014614583710366377675451119165238753590322941116863168049950816859199162691177902076117973946022955476402428663332959505308980792604046364896466441270594905883424014845124680255950438676288031547339596187760413083418640065641800724962418979371971984203236886539582122484667000042333213016750791411292766144595189398093144479430553295832522149543935480452918403551158231654732292917412872687763651356081245224577726782018223393083857024042833135225108352945592206512860253680721976124207448497504390812004432720188273271410175152815405610104789477729918880365989015162909581677223870590107994397806208178673343438886143084177810436771758126923894712854627655415184644335996193450954331235662877815528426378839022482040385474396811498148292429757548308171331784806187012936451170328578463565190245304577772685645119525503135317443884185622915429453061427757659889192480354221408984195792605201752573458657515130606244566229170651261277644763234765588771115752064018041835556050133302555282158038179015250828441305631698449456200428261249096504271664620293388838094577798609205142962097231360084795062057566465507821388816836359591891731909764689620750484164029829128891428655457514151979327499603697426398519513785747481240343133665706419674566665454881362716999940899577525008562224993473948609914331105225812992508974794376523161536885681842348333624943255700744971735185438272817508716898233627079209722601768446878247737546116907984161266266369663277450506966568366166009811595183873274300045475510751563550237411421782287213591682385429303059805461314978204314495862939712222803020590533522720849668421493347967989502899419992807714362640844212785903320314208797806196525932218455995352505288672208360443177905710355005179167221997033977309407218428127234740277022374387714029134580271704375010072087350164951965628719504166060837530372225010793258020342842924054271258520786561331018297034693419412660731639633376689863691117646467618601207666997998250663573890653898366022903515826761202296396204186635047379352393242695684093109192766060049897152126280075477677925014403813607244222307332013659217874299289165299004282400511752723779042218474762612665859308192638428812171684973304818707859170295772829905456279370303995629299303272117693194910056534259325915813701733006483687545909683519301484505174657556117566114510601911306321996170220480204679382207877429179080616938501163093288200483989214772320150736088342396555543391512960617319360448122428399166800568175927249099772312562608810821930660061707465809317179810581997116822860438405086103790755543720214633018728756472991195463136761963905601015624435969900904212724855456026767513039079978550855500306623450054833786717919161833961223100142352589421240180528880911142654697593239139485584224280126578672905154052171326611092681311209966334706200172405349410024621448003574799231842000180772724514363336237677405381393678627654777453972782528160998266706849764817886180649891813699055364502164312198755767219178903359327371435612252743290649722029291214623267183463296348532643783711308112278532344585502094498766824142866542555556375970462603311359421681802374266307085826680051687345178826918141677324441314381811029422036361560768636138775368242508537788278124818640768394437491464797194766041086406226986327536510084082745006191651036315710750326169079427737443498738246293718779877102373834403733627863742421856443132985889772426917830204221599005202114067383736101367800386733162384065038629712197789742998168126803116263449699229328501191821080106761787383108577382663597771175571393681123173188254415440191444859472197444411410461770676682563088111484581361218468966342526029707742202136842408866540032381371256929962581119953976964184312143102115772447733135206401917793631781049790898795607928513776260283356248219460801836682967928234646192711707068901691941729145784529077321247548591316387469178867992135132936992415695875531749193956294101718319438344402022989834029878590640887687619475009744086110326496723456579998406681126452062811317008625725091129463127122318262296409793369725585043430197835130413997669189939861661023168024001060657361878173079097274168848771635011110262753488382128741210446109609936170873428197262086189036975834248828901647157951235708213061787519627134812759289305302762885835852124495376205758172866714548076603668714415171145056227086949669602227378402152433882269184757556936542011940657921344585261694410073519485940097437542282980780445884909129419223377976410084972093046798051259289984244745528591797554352641130550314215037857665489128660919872794671683833254535893980049447122336480260763234458745462494421008914036719281926955673951737305550497071683859482789988063907529237056902282350681837126780770376244131330672961474536860091945347498911100064195750002930965460218666196382118014810608148470657041693622319346576131359477386238835768612494795760139310505835229803891733691483140384598597317126815885361562808654021662724046125934315035666025138011924126809826357017941444567492722255253027964410470447530308227347964483850880561633346087277233683134987608502858507339713273309170526740886059352108508986891339260693549572980982925814177581191209850095283214475086199604615862274112679216681367339966158729196040937385698875179860184319468667110371376246818247571047187541669882203269856270541761217400062349494311546631122046623384414058942990736802588591483070099498817835281562346582225217785524635454652646330715685440453233256810861832481495838683588261209501077193302105454250701372826167851684198914376678902877824307750991078694941366289193175463547039267297364723693311252593401310595173320088130107306231813437933414696365190614392550577092662707133515437343332769928449428174603901332323064753992920647613510103096695555536176410359304608975466285138740571018314260615182362055062904398670002658477971753632632388185532822699475861508419558846736844196811697869504178171984070105726274868141451773313637960508307511111953800734274013804873116234342533468938257568578759955319761519866972715599547943839685415980024177663518020441299434765126947899857676317257370569854035458567707427200673639508948506767466382222699443134082904080775945388226048323274074365440397348076013536651651414006029181673985533688329669576468948827501014576621494304658470980371433413603003812851470390069262259495291990510077778297913090251060606007254214047937829199198217144708892139225019247270413312428305716061016313114855651746695837498400694398600063722375285522318334478415940299077744468768931810498408170117532568588577328946325957340159097911793565351875678878509210717877317076740591734634502323500873091636253515472214669026420576499680084486336161487374494474031466909824961474574721782877958130935684025471107020786852439054154632605873515396132913639111228069353686983485335112416793956754447035364727762724975142269493825284488320650925404722408428366486966560973400554710084530824387578926943508852627220188968259470772649338922329620485336419587549167714870982426865429526650900335501778760106825555894152991987921323792598938242352646992769218202685648152416253618611414749811990136483696981413376442698598967648637191257792890548327957354425602297583313194339264550897053925798556150997523435805158846237839912857384252310295750148605221625041360878285284627926066600657963739510157353020602693470802203359839941668171791850844946031439050512791591721898548433239090143030528091759380451053737835625520285727732793973783634764974424030830647527340747077408914629746708034345509023701989067352400820707275728012921279894044579761707640877277560621343555890351202749046186853907542097850084529388071606311832752392164005113512632764085015382294435626679262623231846774851052214998587926782480334896032962557646220303499057670311028605071734778536505147336243819138657166640424050933140191712705336238879287260087805527512440527913632787063981436871868715744540730013746967609036995378570821432168729982398365472872628232424835664784460247847634952373728897911366770135100581784086595763895738897761216832088627327865401236689856599702277831461299545258886007275645309200574587490652873372605554611003070671960351674554888648931255060735431597082442284070068272945312622025446171931624133313945652088758619979315668753588999434640155707515386673009273958498974446107008963071625652100141597468951143827884660875847708954753381667683771544134736975554967380240927864411461772028562620142402144709088970447407187117176303749602855703969623809170726991062311199816887132831134014621417931230833293845823147338667211708186502370153666861964648474118049156769107371561992426897319764408851909497343853101340894311297598241386007673446908212790699320840729640178929873814274833679765420171860088702930203093285003608281385741845309777154667197131086649058808021774609645862363670850853130849103294928561540161056852769199559663834519955413324023430532060826820412352149667959920250398707102877347091809248358215471769192374167693976627566563364997977820912699309075844590416127155724028002819551377480140683225540345133155740074199898104428072329586678775381422269233973720193329130593281530694664260766276938941894946859831064958075051416828462492334267389809792460520828554760265230325318242903552900363816156117718875769012183561138630426446927835723326871660393216225115740987100190911156087575359474287768405792129432440028076355681830045349052559715387296295234091530642168798804665134725924698369893655667063603217853404962225643502487160467626728657596779567458147832005404774073487496885132926704753253910996371460687600110663783389649554161848286763903934517205684484594869782191240852223825360726370409358001091785186089550216107016441050785518619584958992064081656950577401697758252837632596038277363057326230196193140748001834711373088719411502824483976793551811570734165935092777185257839061006352686606182084825394354511599993019720461057784647525340459159263996810379627089820399656349061523007866071357469198631108556591242074552213882848149148123866482410053691645484349692261221902740504412505271518837892838505306311668992495352094063010894184727002394091830055503878948609873803481178729643349170791508789240804108055780314013994563197123918888317797802621650930006446560673110676872474801752054495548971692628874075938125735514936683116588129519083931112891687963033812416990061885749617719047119417965135900515422680210691177000243979804047351592016190905144719085703363873847751385803956950739424879031823635442806864764725685136783793407600409030735899303431653075387129998490972956178268349362743698549077562868798756964540940502917728589785135375796780868938241370162400359687414165315703498969859397661852436501938918172872315649655454918783502683094495932217840069427932624380683098670509482807436846359486014075786064512602653336858114485610044780308919099396622719208602291249656089048689849517198313590781402010482057834488516533470349450320127423803368689722167199258287314170052692393716357490085063461070266986377657708685664688187043038177066697975302703400889926565780937520689421785937542042774834705766498377748849399364209953625333399839353709102999250198233639013687702393815998896766416600098394943540134308882137638733040621230715602466301599144662311112188891502860202464810124374124460842595520809997749145029473534542554124306399649734702996136622642074829682923530884239424585514502102435773562747530010214997206994008834317463486686209291687141289715052315447148300233400052001727925518796636426451004831234014899948780160367994121152585698657215781946994377839686455867744115458363782966975305545343301106198734099345274893684123064880550586244641610386499794430574394727696015040160874054795926818760192334521123097369134326040229435592997764114109585752778961694638797947229896545393553350081030420608653194442296744267006981559702851765396744592524085673050384985790396104710059708909184079948066177577179679319767182538125665345003201885620966941674026607549257828491470967321589428501291606491626400073975154167042108894626191611737577741988088575431110204994565871702968863979676868066298852032178133661300207200533893325165933986154958811873292081155497565181835239598482978236226795923737200659627729960836888729214480472399659896017439384779642564788121438813691936603486102248337509187000650178262304033810170108645666407273105941438446144977142358461706072795555579617579435196055261732290634657772288884144421421832715472217108839863541391988763009166733766683263739798696687925645854334110632317114325358822539326372056007639810388287401705443817761905526116715944689755329514367199514895556756626385474367856228499876762660788295477065538384619346714721210450658516023298545763022697566198098631442698989379855035523596443998411351838692403231269070480247934611782375714318049733929695026245495261532638284156850707070269390855326026398165044024165466904883008410802520955983697706442818935337687688270468722217964165552450563752368524474102771136396098879882806342283349803807281118885461534910774865897830784924403247792131680316026193561851583547272176947272747816277711879092159542630248068874498071442259401789538624228485889529581949893295706342634759001477161310205776774076808663163343940565064102058577885350557970677307669751607659584727871389533340365023148031292700196748223203381491447738570799096979399704852107906576601286866470051891479388361098156307968987713202376810238800072410160962331347392045654396502802270464932392376718145366008707123612690935384659825127206189414685366505558977866431457779696535306773412155891919317213290622727073441693902968852715123712055471486879169830934183337829304040273478446644327343477224945923530646034163269388237344786580270536331217640691246335952354142463072980217318977586317486221718096990009786951790748594521720130124003508077850122275274510700864867676002768913090448404246396384512097750979475875817877516079507219213675976221706096183298362282241899285788665598225486214383563646940989475973156660237058753237599242419026376219883317814492906721625442520159848138709266535971319355375043713422079901935397103966740422425750381411816226077277958990972286870118661038091979022961608384641543853876009483833173071695973689499857097686348387382258684877664355814244814079341523594016480730741141597523306893439602041715351542604772497471448098544023365611666952452056282811461158241115576784720455527853062598882601573428001103718376206487305140930567012225701642766646857043651801800512983864069409607062832900983045999758091687273759635188532542761186830845725473114984323888173136882017751918122554561141787783297513344237957653286482392521178143361440724319500607139101671939089650576280097987896219259439830325301555095315604233287143618064663838120076220303324107822271641641560052972879958989935446836457734467417335583422655842034648660447877477136820355473032860437439326912927726576531856080322238225266946239264707732497075447787582637646640209170768448238120293934210629252188993915792003630424786785184026595697194586040157632564626963351794290219887343654144672914515147506172547231112189023235865440690454582940252116490036870191486739656629957092366396037642585787321383962354042689304451694727952217879018005663667515925542245409136445571489886551177808446756522122478604315101822410340629520660957472669386808033491557159514775468880230168958403382064739410908752450421436012620738207088144962974407561022024537215237603878839484251626310395271093109839659145029237386517466742381099912289871535849199112027597808128382367019336554698209469509206170414709947137628238892045940964746869500452939808908137862484397668503188941173654845900209102913484530804848837498353919409478360925967138256903492124948956036336064624157029990488239579802954131585557141789848727579285208319970950796299375522644560390939132417388473768450561162848260837014436648822711069239092868465600351440272292266825732665629531314929592432176699187477353965861607793091297939108004313297012637600166738520405736505992720495372060365616667364924140331579521425732813792514208907366623926146691216580300450943943557589559402547143740021880622504740652617867614936040172363163941086546706992188934098679155822716287594125329153653195373634036508172855036883502656430040453140676063672080524139985258600936019219666766376514482901000468736384768628051654195592803329459151974312836957081877466893969448890430434908117341501513250381732870519328723348065606894184790501678731603695727129571069531517448646551842446468263020285259254325875207500885079104259324415609823453822350663154611140345778032945322008069622446392791274969581321638537923565659349067208037380372386037049312457738263917297966502784750903274959688799549291591125410040562358384465099586033188233375646023230978645082837173134690643322429071551332293351218520670988857904993776632369373390580893613952568719849211845756847880842317155654080673558540219312970536864042063936433323855953119500115182930529561865029174965391395787074527799064424215672177432101516134162791637210622111922293909073937743996512167736085431317560266010142635541759084202801391821648720247386619254880223439933254257959565523778516213916075587714526318199007206368741133715024087330627282683923544683525909685868548366600704491696120181181442784662704884585769697791930571028904229584432963974166537652411028827800961792755156645907194661485712485961355625672104475412917097129150004251020911033678024467434454839919307365243869004331148439343694012550403634340474152264818109544224458705107448976694563204373989036624597104323118777104391210744027843709001714696915675021896661861742262096339869968962220399109219929883908408084507102633192212692880236680523278405233173544534258872983734727948732125577482581574021269818521512943120976851941950771272630674277851048618727462139507420627599746251498595826715503085725078170568152004244879775877644802317191261747233911054519298321111043327185599060399354113817054905311410524077746679088961927053727839468193144288214187834023248942335169231152950676945909370102739508685730717694247880401699452228912071568537837503804156248879122810486360050678478652351307918285737508256001861128718286543179878476796069430854821580324747498919484976062402405504568117921061797531788552999857848425694140802590738748254067580301102342760553682615963573663079031051816515310890258315783915436523015868178841608838158753930563418560143945446801750090580810439236945586172096009090625041963664385863135179268988365689509024397559935022055577197565308498342517301300747681655676992448371841659824404154715550392152144115001647411604459534145827137680104210003239128810316435554073706650046826117615912957883229103655411458646898650696166521679111488020132027693961378084414234037015836898387452416613152875091153100465811651092620689300019520961342256854948940885575859272878016604309033755956145783453873289540304739252552396566421819011518091075933104161834581380126604309017872229926810943927418425252434537203348512465264616608868271952035075557626043527206354527619807166372986905447988059270610338416317782822797004355198062822343927982429140626930484732502158804595935930982985574990660111771103814846312154684380586886513347376650786683798541010479317499527766086103945064077934231274216663668099260011258330033852348267129950990733207410112096893874837106095957961981405864383846325450879000395480639907680592431790364863422800870509658780085293949147125868111920399249862707021598134339454593608905568715446665984265787842210134658202404083784979515146589541628475435030382689102685549516830264559063613338093906968512300995146845842268043217486223433171014689325993922283075167679513411281684294366240694079481964387826480419851098725976919630391888445985786236720500226991093687584023413263306883620191147900811930069824533448684373398327768082475406448489403312940640584244735869565803368893226594387864444292008992655008369150914378634415263371846815416423085133535692671306204099142811672408627989946663655318353927165007594396756465991030094895336755819945503540012354338921998629893897768539553056266148885438704251827274604934730479859325820656820759435394981886841201500581350055410653902312928318443143683745153258727367368286382451170738809645240071770379602327366286781066297013081745960467308001995560524422826551607709128452334995932104637730254480703345480265612766588617366528096722804159143482975505296178201156272724044553341453987443745392181585699272393395271558839646578235555818954040284571492939198702292327562516230331355709361832877601760035324788965618119945603459082240877966704832716496284906575433252240977205535965644844163880209096826735950478118232081677897379842540773021693436051057712310928859110327904698143223110729857579966369511201708693437632241142716645106915668478106397982962188712060291379395291353489576969722708245898223242159201355814759604395931406714580587068777651511088273042176101251465563705187172971436822061795932208451441104401496425342099810397352165638236092100697903471218399268909872280508098891613138533638432660667794506698617863590632635714992664328251292600253144059773557946102202481696391500816918102438601817864947098627503795028926433251140319463695022100234874137028032967258123786795291559919120009784798221206748383272795866094392465968408759314031091463758885893927131406617112926393665839594182554840198390735252577565405881048165581560479273320353149811281703577085274741536216562859523065260324708343625965632316938606586179253626855365080030399531597104370319517882006509120526802541982854947852693568075099219017180099858326187049005489370746535404384266356152303247237604734435299984049582707127175721793003842415039279606676610990769723765290592821211006033450415132423290658869632153858961060448593852209452920990404696920403572955098654469220518367912111601059619959111607271309729866042470139507514709015639338740337332028191869811937114394337020658236805754444489655798744439149624781419544623060360701610786019414329004947285498970693694093109132646604206734974064131994051901010250130786118022254355751051103683661817158147999450310667955995853981103859711939161387973458440905119978440826015186035897261810614943301774819452443982098720771017372428673303932992552463011316654119980220791300868782200971707270145873478043202040157222637365506241975845097334777572169673764317208231298035540503993184807330980503779813141256428513362257011090990561200338202976621090011604607302211241171345766931134237021808321542592342478253615515023279141811194482575265739527366340573274331478701313079208128848394665060454155421175561633013943780854096395546170772639946412585104548076564549148623556300486314400612954040180551316529264544287809472288538488905109043609295191635029273349232611466580604587752378315601392426607377276131646674569859638273968598137539977189208054247915193969855508132274099821990585261944377231730232079107274768520880758992148217274566003050345970769016634723915193691504254981341040981149026965067585428274536664412967076083396020000391211847142388629643234172427483486200985688162843834733680344314166661830335404761067112669692680391886881091650535611561060195660136005277691724318622981285823242817484637332909701853656093689755224202007879307117365336322789849826064613178876482708843542205337418886572698027436280915272565701015632920527370550365559736698779671651690836915353164299539741835088573840870747054575349795831346586418798588362519968845348431113079445931723791616458086399775249699666602152281945080706024864621186683853247532417735405397408868319291056330737525153989946413367309696632189934255290268388330175215075760748229033154600785628119135460169350187904112041334992009266559096527592355712708972268829538862933072235384671444806468034855742938268098198638489034359266574607426886856636891418221918148381202668519997014519196239218508062885510040649712779195623765728616177300513047268980210112909351529642702458950273317790234533343762519866519214670832586786118975582834878861571982193275048281707748644225541839136345397495654131289571969918175389295171598858567032014339673311565175767643030877130628926605458226721507082419076438615338485434180447829843036244476312105088260858702811052246777013105561350921023086470517121608848806059194285987799722338510968197925300328906118642693551966788757579200954561929471027029972955596380502678926271210988804242419216734441278671572316604950429888500959846434341028261943280931874429017954099476783145459134788655012705949786443513303993446352170810499202871274122622922358639882668480129749024096835462465557693528912739753122231624526393374269799096604152348726188857088058841787555976582089828591477299258785516983296952512277685908432318242467525067657399775788539072291420720018023411660615303054959074745503374020966558922396026550085764142174512923276683002287718652772033271372193916596911392838913062491692107712309580490386594818630007289862623998271444355122910795949196457420138030139782072743100050447227163233345217303172777867212104096393504679352311789407770027225758383781455134583220623700488766788406067394896920695342203954949935924661676008391421613543221811139190523102265984558857049312146004521965753670518383934355909902842659886733391708756749034854139640257598349582389008294488310184316955191681470519721244506283814876405273438872444140936312980996411302618445726541173840224660318938684730878785937862331319428547299679744748541590766258016697135535779515114231601359364886318906790591915789547084075460578328606069194545457021062588994012669854801580537646285069777816927729506004240399835016062114425746660357371150940051722099586215988598999438778380125100212094884427507777923564473081806806062782551896000896736000633641289729179470256163465906534540366738957609098257878046991189060404095036117395549613008615820316016000718788689904883189615017118097421485629427698811746730683826073148883811407993706550809495271976395908713463833570410696235308927942529588566893985637560755847819356671442755785866990503585353361321316849605864834436580264456369381641300263994997249943742241098845827667600313322419113527075971347840490759101011241170393288426531739288567817856517801317273496682451124506078737840463534529333304399106094845347761065339659149457030039262809365161593874615533666947524872601485622452606421284949029131134377079691939709918875110694127521985483815926296614767311703929022663388061585309046405588333162636189481264295257843778914600613053352622098876323674904678216610174747477826759368312239452847989807475127266141900100534740096022499200728023308141790114864761575188684686916876302325176165850626782130736461301238109770519880455212227378849854389328526894588441864267892828700008176190331578622105953763865545472235050872747273374207533133872613491386474349677436893575642427936983334544281570809647436250350937750820856061626137665657232097584381359162255647350398090556437558008709780355419781089608305179402631484534453957128656904085363154277643098896125930395635201380238146825930930132293227432327731188054650026476280032542264951754737239307456810560624262204172685392363042133871480760840095533724678460184455558566844524814032473424252560513601990769211125814316877811869726091672989942896097092132759305328195635091024555680607149945647630763216044647826627959837732544945797096497399572364943680310832190853955302862586456986940593137879206155978570431312911568574447002866295534521481587990040633167997828400254674552912237915253108974179901175276035362167490768994977137030374707474109113299135633171710809270097074149762986534611584073846347866413060007129759234689484418532209723274016892661561864257780091139539842222507222568244140135585826210535546339225983700782292214369737414747293738117920809268217776455176669124511675245176714458543870962400785822561128781439596525649036321368081705793752494786336068499825725319148037840519805533715105880451650845978560934916805956857516072850342901539945425584240772486504848521316731634747828260023884142074045916660064470063446610954027089873916766024214220974219512530114179065038841727328553993101924179723393530152654418708738110273386397402419728025907090691098963031362094938603429875564767225830209714542626335389269373149430996849864101379103966607046570022672918360120794125312329623564240127245240695973736135949060380064346808362071185836379905304065940474784600581033761326389295700890695322334517070210295173935449390310616997692107913030875931505444397264847875277574422762358909908006758227170643737829983219441283334957071073008608789186066279182119855501062302603816496890552760963595833836361564856207076617759733430174501197061984856230484431896224191152466009326762496399600206388583250478499195381525339262710057411110418847542966703806506741440277540679999354211454331782835397025809085566774134089304822275395467463220427348284881341423739124168962251387509179474276020852196047926227432614064935086624450624718763346982793658549980022289190958869688574972014918282648950294880300934865429701331697493864395942543409820843776628148264708217745849245107422116373714017553160349072548007884725769130323182533711511850725130045726498046486782322175813455300595400679832610053480942987442798470235768406610533903247925086390446462015156641846008752090966974379705514712875192067911800666555004633185058695784314861626039963295825076465618327205821304597982684873218491772317218098684970720184796741797285202748180829549330410533046797998923148975330166915280548040056216184341902906945885894945831542657508772806553901385067441730549109578952670949480892979732603303493753913144940221170000131241659071510331537874972607917332367638638060642137069064293388457977144612177024579695308174399641923295647389939399899658134081702490571139885832535338635959254637691813147690798932484190518084070459211064437182124962858844234817978310153287807679114928323102686958135435635523130023661898157370601885703036074774482864900982856877008292538013354158100986345605556156538664738829787916493941888016241015732822406168321559139764286667446418330183846224476478388122969260459130763183572768717006088183871902972032279462036281890472871800112460666366531197017256931554475172984550851897691478649995859918031348579174433557213953760984128810322398364705086648575461547526125599665056311981205556864167865380914661454105799678350041075583401920477114024412788168361026531531290201440463011333290480563745307266889250730414967533215628458357635101014129990773806592010606968844131431758085805341827670992727956177387984443840363719067749036145424838743634588994562046886591517736522128961123047094452654979374496620998217086813781998186978506487119008751181391635097652502738260448819303625834467001809051021449737249300196124276142318200434722907918585066591054046471423462024040872769161846081729826005421894804765577269305743289275951630976246613247979472993298317644507098621058822935438213773407856285663283605513218795031900945207309972938954032959249948522409231444791828551074246447220137738648229511823123321179193542687176638841502469475545463781699709051026878351103649356444894413317322427916237876919941997180646374115606772723702873729076122290207335971007903525369662685790719821230896845112989742224443956770363349521867416838615025808309410866896178032996034578131725320227908322785043814881912938351626807249909175871296833945059898579077533498463104524858857616616805347648769229368818717721788996215708495829987207564858340350071025755073540106557138920134068280112943432253830644613006730584242524599200112956561688779065984555165876940875355793584405625340654653881657295656634868006706207466701908513998268358626702131928059573675619912247352928408157520717368138905969151059380774915773715318261732732711143046681977922825470575116169271092111796549112924139081687210052527728815849366939136942906887463278176699440009573487916105221241945531361582226168668165418307297726382725975896091153718259909473028809508474590900141942575364070674277692022706810559124696788278972472318715770440014152205213151101698622603205722957824367581100180676542393187032896716007449719967112993609247540072907887472859060279233341456534962002625608799536468648030903157360606413268134958395964372506861357306921203471937446520119995805136475628652298642733267620767732797413211389483714797456009810166329099995693338426187283315689305532312177163949618942015723313139473143987333404633891767017600873975706839569315345671980846706538906007123912669019318329690666034044003630380308320148573370929928610689374725261027256235150971090098968594190294040757112866023627603004039216669227276963109388322959995169665412638425161604926948194998641807634083741028456384503212704130813315254282157541627007913169628484173001891666901240127364360416992482410156315139785955863422142475042411982941202948186436610843382152749159306725869979806990859222997319895038295700606811586885081521452392265704254830619315248435660813719740801942310872490914699878189654889312233187762870772926590400790244353561554128201356839435894280983111504100235511953792014935945963399879779079121186662523507274877034765991544411761685691056754658142949219530233909959705865211554615661074487261264232485453603269880895556049025222657121352530179819688708469995334601536379078201442965073318427965622661994087052551137600417040209862319677673757088172518352713897657370953439427257728894684923136744461334640723817487549581760689775746818105734033138902578626252041406793081317784473364592843889758663864508342335103910634901264889669755989836303211276330159953427396855409685793369831960099565314452443741970036138599167771228707570151597082431850400563038648209361634608162097517893056783536366830624223110419878158944256900746945191832856434753210166675899432734961350839663516395554901876224688114597673118912892116982045561408894327557799694364547027063582336543711901277726491126101401031803952850956542283843397690360833996586061423246487828591691604790032727629525648987865837319321916849488746313132469490549252026300752651965596114734721164307957122888120699973522732258701632979794600431322871395663025824555264847406298876141702028466291099743428153305381995193482930718375613126073791194129176449679705221870606779990981045931897739539767679358260886128680953093401765401323648469328891539410809544368998168377225894450071592241697758030998485052633935526058458449997851300543764970898380927438091001683930282632829997391972632741780378588153539656410405486838969767331309300156313493873241160848289474353688737475979635620492486516982287058189644458023126217368012845386039072256950878628653376386337793506505679968744133775976921500385908960999746919899463933977306061060875578818240719829218771278768248314170574234283451188392986051856125291908056105769264680066321477331617184987753859240791615666882228809245564486701124404642200042762805520212234012690187950534614373830373239314992436014633376918718993059382223580357634300091450075576269660424846365316527986149098663448037227634156453810402853219297302300770608674841638563086276468799793044860072512099662262965832553843516366605513376459212188402214064586967328747412696322667948478314429587208429485393804574161235368778089034479408850549291761818596547886045959211843390074842067012550707171763826824117780749547131803657920403535117738666681427385080971814726056415126583553482878803013276404266137694760369602268777244748465111767047957817960050225689054536713845453271133777432292648020270882706847793159999957837268153234445031348327125875285630428368542708519041496692016983269090886579849967686537037592006324304803000605030838272508206613646751923703156353452169519702651602514037993934795104158649145590044403644343025883914363419812194496509134533321512759633700092943534486337519574236508094161970283104656323692346296766267436519783220885988732826590531756821277844067312482607372428512819006758502926926332532755209822989421616548759391085766283642902791317269489025467970175670894934469509542533861077391001821575377706963924022000438469541524655441706868623949580781954115202280275139504646532851205147966680287886557560557514035048263971162721575151125532882052849626794745914536547224349822270773843928882782040983157179404461831949673826322105491130207768239985607545983707154905395225439072878917027641739156929521315203308616675277146121413714367586359342051283984116798072708558546883685887616416825241673742014676512163504647558822867114735505259089100959742641801429259975915969726945956022585242165422584894027560404474142953971468210098197136828728257964362786520828583085242476252101389219337740234794885947407174666725006320188464141849811103570462082578719179368382939299102819648218910015756752618863747684819100109834787459138048468385472883504472424249047743872064847243139316771460357931455233451151232620942850645346477770501939900390865865156851879982226826523462087113999238852589741453904691967415863607776136038023819557528536765028035653414521162730571199214587441763966346567210626416834834473853471568601436056661820196829056782150357457489134569738686312020112184124687972548674785073639709254483521939762502559134496055541803173507880032403789530874214191731819747298073975243844909745800840416443300436246957935663428227777979167863671723545492374547785310768180890683336867921433756730859612918572854688470440255117062972982188020288297013499492471475345945909916292285699308435198645157518209106727586133033832720197023148654529311387369919568217274785354348888571719575187931298304582708993994264000242460775808164743414092863729049140393119279931785244605553339548884136048842565708875116769582786684058105221216787381225886650518026127283908310830970456057986567021977044679884073323976303189310036912605503233572274453406447821614686803666825240694196632238204095807483518867572037683722857081628876859209898105994851424512138439441307664833911324166206601258534658524675702551672986155963975705926329091751723884745640068349308527861944797168053943141143404333565106597689095393704239070660939814305752820211572283648434794548892978809831611210005173547960888566031548778065293954296477083250318150359378403671513680559457105541697957429884747130439748228877566837673601425776041221170106557822376672689051536319680143014735602044294621299561821178637799201900880823162011551422760219912905418771044320561690332108275335206687146182330594502308439003584959408592459790239576790291813266156973567636462764316201752139865510015387917702974138810392567822704849186792047360167367785590600067593853636240606880032950517319216207535671761645827649811790126180368587054961047059609257643357539051171600644634896954832300852812393742476599970835803601176753497149296103890484788378180092411208014800758041662304855917409985497230202713851186481016536878971128705077600886442323337010200287436232417962952857802955292508539251763930516785012273759195457617741996398898837415568548568187549250613694317624301958425181142660010315096624754461037108755208129824558766564737837368037163362705083428828764320113712740604537683575490920451504859965476943504727891942404931397138895618343137274742143841396003044138123205115989615090199318837759148514417097946520885097606190855018076474433908525081364382798528108820152936147466816874227001019991010784014093146041460490421037499535513270554906362743809842162175048734519122547650712366350962470667713737425915672592770128750044953405749736405852712371684336781787950211034248497569078010157275506727784233232325903428566436840056220734899566405957946576066094972342941477689816007197547394005420467671522064995087709214159334097521279951714285440341115536179666873790604228630340102997262644342099974413116703248270536072272973785758920760622083239696364729217220162504130540471562817452530928332282823891733708966599371611955733850543970697606044573459778712253722706582350235268999362353052886417564572973087572906056825715699058318852363670486592305255242267495723067899971127828256168498017722288272830956533046593748417215514699918834205727196494215656222045283683747485160663663541145460813921868959781461338011867510814064238405170173649999782242386523748145918188492322346054156485141935122688472298117218330253576787013447129009764988614901649690900991942010950336138082737990086266879140523817170726588621996903133591418309159691958674796587366026398469583258991140170467619461410851906915311356401601146366049211672145672402562793940205940820041353712468446549105273403595971892682616837025888250443770021417458723797486194145214953435785434724981065956920088327357182486533044132849695563366538475245846622372051631840510413377459064210479350583231251341945421070580449900522457517584764858644692347066711098110868645942838284211037246612428709687218866038809157710676715562529947946172851917725325967151478798412300601484321008753802844419587229023241713120925316148776768095074849681376397106163173298680631697995498405119203819068822849462114707949355597003018473921526532820657963909230074470190520482544659446041036582537935420373978531648200224524824272314741970826143975664649081093218981538593678659759339915348529126794358747698527605455560960284031413487681614984001645087820493175887644211143109379030362748866120324452495280531375728810843005578504852255885479920236049257132422155543584319706064002076722071511160719696677365039698305447216686673625238966654682679783834072234395296147118128473622401948085618689239463829791566130234104595013321373388754847961780567759241401717421200277667811585049313062358695167413012630426636930825730930807088551430660212369575986397806942062329805957115822547486427152065514231675218953994567471655011371704535667188417584401525461600003850499571510523850479596019822665291008529515907033845766876450836528788423429725564065922567649235799282087418020147115640347502230980128220639010970615999691699461713577715522686159657626212962553064399388229084138301237228049707584989972600648602513442912605443224063880030848170570041215476646845556392916654668021964800973322919595904958875287361887776238562664647251479610332145493581536852196679132892938955030486543280257154826909295349224175053292456215075904057394933292145475396073543892940803116076098156160905838870225199817706527620830428764657313062182746011738710402668623145614669626622356901905010603697046106687967082037829102261532531728409742215346192465211050577224048579004887902847000045933206812857555261131151468829110800665228354674102535943003670212597679350498492829021765522892773979987400130600864843431194216908710088218757110889947546262328855411354497272158465667037879253450437904089942305821240729414280435551173558389019304144720429568520913295424774644219896107792398427226380150770066886634439920064973831672031763469217674531221002050558704023503107037945672489896772598317197860365719512678348749028968577705878363174605166884756080241385581961388260999394546820273482631362609312378300038418192696017603364982064537457977065421729883004480785987840639139608944765272113123466924582072348897600113584484540904333570617866813187059780980417270014548541223772113545219542620421991272251119842682422027394182951793156073165198618420150528149396970073408304796150006038393049869974131654442648712895108964468616990946294634570520529980876006129448569820960271016284413842999521565506243374993642661456578020423948333992405724865732672913817103653259276639508026185201738462105492047362878373289833854262029421064040881374204055552068259469989617758553672139608275314708199116271715054084204762177613445222228340879022334032085330341462670949252663893636974743164290548652364877828245310314746906847179265217865846981704764143995317019450287562745237573874989202289202824338784906834296264146019884140084868163938939411626515174575157288105851158161010500070010728574391405609774998415815545452644968800819327472556653408790015774597230139700572866560357024658362583995455136576650169061040843422912996374566815202050722695281954048513138645987572219013889862090912652103473683092611236236655251396552698404729826723206358526501842506678311601307796447235346171963498315736403012393177220884944031815970937747662263151104655332908133518975565535265215773666407107459063472772692550871130819556848480416353617380201032515997205626682889510402077702516520780152749509880578134630399049363934060755335027158659210333963627653256899029754339103137531689083500725153223065832110226473741717426991003317411619217287037789320574280256561677143563650374089850784526502691712500754604656142533050983790965898610568091804778427645414311610368678888716756759143718530821729559937994061156456119333247705003358473534446481109700630172396974619569119045226347458791945401478575611130688945168824215876423615318614785313429521531321704505020219373914997286330858959121192813452314523074874675440451807190706720523994928425762407045608391002291476226574406496260286158507391434499177885836668964034045729169986760301338413833690942831560770958598357356438835557158427497919487449435368686229559691274338443390611225620072269355253192053084849473170194922735904375594807684829264907001258626117468172975255620555896349692868922304193407129898864418805498354751989537430240552643536826600292761344742359262740452216972416423088401318678368330866337896659961500224656356503056682720328513029207713048059507535151011930658431440782479018388771465548015326995486970744188521779253185568510822571977840607297305267501136961252209673435743343869955764532902816935661048331841810629718562588861284762018014232160665227212319730476723587750629589390445808661857817881766093662476392684684719601641168906601505532601147490275140118732849278490167511741119187469282095890679885775030853323500000822457343561912436889075321662315419968342383401245717692480623943986292083050736594748157406905784769951804918666381679642814995238360761110870346400211163449969379982316832847279151735626271139308586273790800070398717606547956796624043744177001051566135008311411854018198528171531937538177537312779496556113431354303496235973590859759650561842832188920559719618410567796669366579977576020889759107572710799416576022774083943364309664820064638272431480949415784758608675784121113889688632429788899782145556883644803326193084873806350751119470245075647063956712761834470581344347765726690317836673613964396229231235589782373334826776740831697030318340595907597927714175049107953630134963440652883101868560191758553062685345025503636163085146261757116308816491075506566485463100973835396326936777341032779035455792275729948259998983984630220223074945651444549968286987514601728092840307629431562744592735461430138058022171227067180983614431274380678691177635378088970047725392955148631316921095580175210968904375014581050625923610281398611577744984142725942529257990062193081821636582900494615283056379775804779350623005438846032411251305254559764530314717349564309875508116660176282264605734293728939052401145554849794543722540104063248367638280151563407605263132324077386276517872597237428862325265840056969493150946741484516349676262172499527951678711574031505588929871988706546914434830737087878204698290133630238399826044906592183414526852771133065322554074071278729067621656658987691732818620457182485011970636302771631375171427821736263047539353243891623022574627064063928319751423063767907631379893487393865545814910066120819326671232384633021988732738682561865527082689242616107084022222573221528081914308319809692183213320564302021030525326227152979668010719790748622454701520252535562474217494935399727904017328291903570691392274551317311545638289226856499243134354275677115103579848829662657260582394470110818108835332405609655585005213953320568921254537292753327185110987867086315174205614897976109775549153254314453485432621005282498602726735679522789545232148117363322021731936048918367615688632775223149153002481837035174858654436218648862119858872846332661310663013893370439511727136210130619759650814771789200296840313679616243947854520160845556550877401249575508726048317400720800234397842860986998413326000174576260982557581846709770768216017761680493868315829536357520105345068277556044467872524964918408966123898257284858602471161831653803834433116902071688293144582541502241747086500922191800298340938301120541526215549774723556687292322381987642740114808505414239121295770418262529129351478155114109064981402605650140190971585702877014692404797184035240130059621559221936089714703907436114181955222996808869576516995100749430909366728127455632717419479169567372621335014832074952687765778517218048629173684707685172964750127701564927011810083020411301372318077040510192045516573821238239654874631403277900322387793921898519561077017928514631681554212911026526283052305827361211768079452506836105764140674473567065180661281851970580727085452329362842342443935868132390475578834557150953577739897924701988574577331332429462870498913348406123326318447766772393587692085936447887102598887532882207579099898218034073683968592265464624842226317093221803458770983814818093405899740065727802826718805410194331445743047005824974421043229152680574558151307884625325973518684185627430653407803903341308399822701821184445514876477021153701230131835346492249836279618405194188405842699405284037285484088619819611980948641131762739096463731557793272616087612053779680954569706926157111867892670729750886253503241768053256701000359895482778067346774349204219012525950195451757448957832623092792593572628641829222201840091451245442494020597582734307751542532357832435676642220200364388195180718609680743276743755372093955352594265878895557428936820044863348615590913169622551997123262544000307544894390978675614753496327768310028312328879468727500930112044473366368831988819435519660722936150405135338813724929288761878193845375040012930374693105812300492720555527178977406366214434779576802266303169741680527666870657813111297538693277037787427093513792231438574922329959774290039485944694391369725160090971583712986017485868551563012243769541068733833992207338534240418408104341264680585460504685953167771139659110805939450080373460372545441319890441694621892172224446506883361430671743552286961753659685876927130413086996089122503894925514598692151923133085521954830372503722913073220786539405943766571328544146491049079034488450641865267062767770880584217437793911309048435498401812153743081765448210738242456428984105387413335080528516313266826172433845835224559873280164508717605064376923415410237916032248543094258739937000181925442362930122159976080754220131506436379806047051987863274985848373230287787958635961792248552509008336242390781513946730976623460784972218815691744715254762643363670753715358535395601936021540975134829230654138120263368065822693052307599558246046837081070320933537710590141694380497009866316806648231925490515281066887168563964598881650009967573563525671962796871523845140597904247580634564991106439731339441544088217602298231077038170524422909834202321227583315331634867836451159485169026484774546404659996463202992895197894131836845756583902494799331575439857575715961803886796734490984617963815502553346301449944053505057290660803359706028492190002271754079200462966317522422149351989735530857678138007216805421121007552537128323069385553557663573679414633541813485882462929857645447314816902930962962209376975805134845231371780061580994201142106089328738150124960354763574426109122394776416275309448959014585938689450070635874922695873571895206449613937684914021775112490503375588626374069623518124066767294396714676791271285762825142455311750263432601740461848169428641166465744325280135430123547425870313895736401825128110578898568861013639562790400859832441927941569633811428220455117572532742913536648478281563032839875363074447092270947776586685530685482744525418487454381627595646321301881709959651720000134288067873848686886721490385037524108872963882380739703213280213186407831931463938977168978565794921517790965413896820991154720093549978417340524002475052255500303218898972819384713549911080749143852489130175659754794561081973933228482247006001089610498259282671502549262695199419617560399747347340677346123925396669502431009997675605097173853096019902492077608500630359823407990215921668447157575318359406472113659128464938213250588814467198158859424746103871997756404429786292920740149816991765117244479034051441104979081414439880765031487777510296929196017350834170003569312894850574135208488376258077105777648551076388322045637505254758604750023265516104807786465663803817219359044965303810441952864281397856174991554135447174787572213025807063183881392596322585602983006346712745293899205176329342516134595804352566612687472609940276846541385845103858019798388991179551647776423511990214746822693592855022565726840292591948540392984224535797257103355641767794138944427098369951735485920834434780104583955691118825942567837259810187863237216190494745864655989360250124122667742346787682306537562601265299315250842042848945348679743245343272440663341246695257289282223626652341105353361611674610113638594570620383727583683741254562596352650804825059906745747194781322572050690201591683032561886670738694575376011908784102957475998197934192636758672839419721109016603436689793034399168578665221450313409270438539563039207737383418423239736060264725349624661569674279424486758127238454470681127642734276083464323426060848177582818334568352188793372095788625544895465746823013091499294396062049522269203249664983213242736808568090310554820416889593731758567883882724861613498629290828477829460836584312427469856652727267526897361403967685624884197359029692329332657221439495814001502870185351507149887813596514016176009241721630322572834103924545443495341426099734021021762513956912704032719369061188507753848683839584870822670454022880249126188753179794546045418300735685317063065362908974380552941740517175532880129932876850191437004254633966708813160699931157228873972781992670884327927082969761961454536182364137222071002113396726798328796241341478260340534237433037840670458831066169153285326122118227020749210155590655828624277335432418307417413168874322431234194410419284639102175000311573357633917453116752787919121334279032408933968917616964669786336143921999016286437738692464272660264390523686986050445612119991726795975035298211963758768429675627044864749512804046986401156776409193792754824897213375999161820629435673277386606764695739631263416298775880474945386079223783781523841120710459092592952697202819039679246410974012074516797121077710645474919520487630731565155458942350924213845176494967952206071686823516401091013677439218014244967973030059766722234375810850982848275532206867624977430771912284506468362303415466752110974856032091513366047483022069460285502292985371586874066171401443458875348437687019024208051583323829114865213764121960322860038036897030618454384751497781470260125579521522264683144834895379028280162979322059680347067135524769835172796137052288335970029754016015149688891070672038368358752403120789775475055261361083793361871494753609542032151967028625254927929622877189437069041360046968156412162835981917453741593455616358543177965179441509258304582461747754558808645212740862348314781282563408493611177827404282884022694562837594173974557079031996556622492192137427619837383521908754535021644096130134001861572129158664045705785884512696708664882729723181356223025431044095465926941514315951485905341300728895247995843072631594825074712030635033775123341262355451870654452757344884811872255483282052784735723104376706022671704737539391331281184176435644526941449677683506906786599429750166902415000831200340638454833281739556835055405853715802607340366432112245712229751819106302881297573304495526977413520668387935623267029615910003536171124813394322389674104693396460776223544623941144836421588446700894157620066372172884468888465313361707894487871897969917711005250992615380475059400712235753985732102291852402539849897713950640238943509028874668346953525173152057951104385407798177553712202452569552345884086542387653264430985899684642884033758024869927971610243825384786051953428135754502511500792878518579870496660925729451089903250386493454327017128008219918245947671902946253515957964511227087594422168791884203389816987373645916869723527057794675768220985459602316235674601055629034674330072698982637953938502258999370098123844898036990985042381325838108445238948131324977262380613195442754033523177362128984265103959949804109886124743897589593453476149042477831607126602868984105736489039919391511468915843562175773660611436856320093969466034524863504236489922464294940115186205740885813806772931212572378041171522114043857388738040436012917240518267218757941313474029963142624688940700903970423268676420189637412015047148205030820589453094988974809289626717732878219215410923374145957867858091701955414155147696937371671246079386809946284810296339217687886140803331362355402529336420730580896809818572270002114258012781292673982600612980260303439039752721239888888649004021064384186768545523230482355635545672155756291142878708211678148543122062898147656225089146873371735049410279989131260398830052388220603596943327400621701842419717484523197701191137501975442811273809089224436836338540404991430390527144192752720460696396836493073851204920914885448334275628473084439645950530996901785037033790225933395274669571101425409885855467416542103166953570148980550036962313261665237787911695475225829908568375613079181421387481468127159945979836078857636167251330124134092524779076752461462507272589508222894135066498098347812075409158576083267461065387274389885791403920478932786912886713520552499681100998064348648188254353101132608889401370982478149922806119933848928499826143911261026587828626538214302678721880764950264295312270197852467224826031498761212880045265695322503870220777922554755940382843171143101384163756286465133356689258832983444805312667519635348200655566294807024721454151687375653278082594667668983858669685603362468175513925666274677285467948428759197847944153825843988248300287669594497976527192618684900672473114201596050767006158953276017815745354967136031639683113655123278807408181350454961069869857180706886281985112560298303927147075292131714569360265830647845361252312605515371728390550119916260663741052787120531821608222235961101070097427315762508604155603833415905464192715021034963692079716015591897259935398465797595577933384200798383344304996613845214841927695018533500031990685737272167648425802274843339398795724917187098267086417607931609636503466694344848310651551415758844984437349112699448156624309151751003413844808609730990361795339461782244289520615301344670811332918574873602536780910499869662866182883561467849053239167890614828111653277273033144974252571065154447640625121824496008500675781338603387810467875345542980678784174304615050004249256621287286488618849946123096153248337861245748439134043739229449988075527780215544287587815233033508725647938718059146304412252486255136552938867926379378529216785665822511036714064384334883992459497455938621613165356538775986548383949186864938287549462980577385711462099814407331564135502501447487914957946964269255416094316641384483276910065647993231175718191852444909493381342781984522259330156701988757097662587891945189513492426079044665652548435508590749182702158271233295986058026971322858818868284759261689426536549442122634531546991980264968159642020852056638664328187905885483949766614688501399147545309291859479674801355848585174444757463180767341669613340229247579955473309420486823363862802214820447153620346091059383522285361658953321050682450531604273748529043704212452525154392180199132791435549192418660395546346472899988206476493705441584703366155247662828294810174366085923689933426283514591893021816558227006184877451961928989027765059878077622538235985037137619133004658025655530761892465428860207928342489010426968600914115291484904874245269456325544814162781065090344638683465904711019502762136408563058312281269403555549894762271500108799293593462248262786669044683487724034588263166313869660366734688551933066902838591654976829030159398625173287154612442058553621882284369624576275592190217338699913675641313015935189523758877200863549407415333024220512888953257927900762802603462708228976240579281138772218496590414138177229972289026856722003722503117835087603767753463784426415911364034584384947530913386188952883904013995418247132360361134532337651885351530214744712648243811736759263129178214440833360383581919588060627275797019952401770835798036890092407462188820608285844693035206229950641097687899476447910030628866099079434341849727002263860805808758058995862848428713506233215588565665332808874510126880416609919928045987831994964504559749241124040254168374666769491859211444447104145756222289974387076278544054667485126678738708370514838830535674698705216548796397435583738036379674055271909252494225959679610106382214179794065406895984965927605588040052943298682285083789364412254670231488516184640431452991073370258055963459291432528575018929438628837585417930510921916892388005384370446982869876652232249118044832985253066602759306881093563382206102286980707224160962247534352474854490032860435493585523102126903459585836880864918553780421642040824506760827044123161960251395299616360197260261634160904837911759333118648336323646105465236994754431408779461133167394474402226879359353645921391250633466626820352001253298424605064896854425204232409993182632369213053502093048144472308204740051481569740143173147225208528898489073660194442029067456935234527321707428336918022740905849562304345296756424822030599076566712498477707002058033269356563909114691818251872310875940765406827288000060884386329783000904668300164837423620277552920814760296184123796720638119979277757403871348156297995031158723834509522766969781378248576042482077555002500696259762606841552112273795214745327849681097904613219585513227834121733300312784585016485000302366822904693919735739235955507316314653018017069300513620154837239343087718952953357092052675983171571130348619293562186330200874902116235266944298981827951825403160889165978829071105707633757464762681790144394316741494838871317056242227659691643873243815042296343522720966329776177170201504848518524526380095903185720624719998553001659546236523504755346304420411200679618019411102574246956513144857734903852243578754171510530681098839664533948803504180497788654067643543721708521716642444693667355940824210167919283418806291421615261099683343449419082498758837277592690945063355272880929484803701718658835246919500903184800607666365806759352407600590463082974816564792997736160898403482220688399098308923685350272591547735304822149138936618471135084644623426372645102203746312759307501446373389771036601819825155275219854474780813035352419286105827037415118700222395820079333215638848643816641882327403417337290642627476469076016633387917247658356540272300204993325062164500766011912508959760870196320436288876259785590267665337340705023275460636585237267348486362632588615187649566057676841408198808817766808509825056201220416115725310723542069890133261908052784919814817908462953020786365843980749010899270579004906732356866059699352798895873546476832430287658637805337097025141983518069007723980196583270290489559466365283096577937649214293214104132391160544361708003154162454482223178865988504446433699414424492063270286606766170910821371980977834456658580858434472655792344048133136613665071760348186875065745921499370063752504337362474834402009508021302436360161600424366145365713954935789218336428156312019567587365353356928171510912063705285489607743502895961165191355953693729314589540689939369107861426905174275760759422423008046640208374057764362056028457490407163625650536199896205559867784424310268748357894074512445486167979611663924103072992152314278016693869997639141028862606594462333290179692194069659291696511586392345444221481045411846264755104705072303824372027567658927557508753444724846463469633743897310907307330006284664880452238165564493171973067115693385202841587325411931674253709563643343785678212515687398055823731887382557971238401955139140962601127320528579779904811392328593435893526616735057416137113632635425840089189926491701025237652361093218643587012001446652708705710492629500140716569454548671711038158944560780349338140249279997676257208131072869070876638673959920550075463623237688503684181948277536112176438516883397029293503672884757692758224132885109368416223775549502186553400657531995491650148044617126263861868378181981905753949998886383659737450721838120826978337571156426671212613541567124295558515883972337104215779931768144694481813880315167041320876802354727203235125690250500258940122067946723305948080142172812010569879116895017113539226303015521537820369630643996075351057201600611196130426756594005645720590584562890354643259463813632229852425051754661385929226970393366395095678630035173843354068173737462138230352709174073908641675997322057325981177199894886074873893330274894247995895865682555551857108003261916997978838182391835060098731737043023070562492767454671828461321099318210366536939439658399117034495268010396518112361986526720221835287149849827251668253700785442865662540223143545774590521799480699506341594710633513356962141378237350355666477989729778415703207909842896410791930134842299725717373259409847379065448237218784135486209967294807700773015587719903617663014762960564783794043217712426988507104169813951292383855386192337554302459253382255972827381247941150427043098205459346663479314188219090327003701439807302353493619539914697308914237418859881394966863279001666692717990623849443765229700382416557713367017776368341179356120672742926708886494798202934282774198947989544719461781119016098385489371691543155394701670670101479791857297910717986482537932447855713497127242193297837786480459445032207799440744972851990574190627722525669965567960497258875910522680907806434414187143789220359451225881060854258225012196809787148434523864002939935377525108200382631622920851124689683392945641111283224841384640272045507050054028451363609792004741640495693047838754753902783182045200295371246655499187007071034394214189398572964676634941151884224715819312269494663496159354721054239423415397767577196152720279428537192586899947026986704844087238167068007718291878484943005853998625481441807181946035966423100288513858730612043158703368316930334484327682719147976081748791044381730652804716562658408341581335441559799086672949586327106241161244971773885228196261650179762546071481537913182357166794412159085859795971971669176315660270122572131812276058962659938911826585509173138635348146019325331193988198758241394406046993388350644993165765401152260402175079700452821604618807177843181468437600819354746454677904167328059338458581604942802477337217969518650353530075815355582298548444154995546278846778676321635542307133907609750103890308979626635785117059322758112857653515681210509259727665267745367517467935671085867427074508611035470850004797320269763399042769845515152489362950728179663308345956876974127895116516652936541667219134868877882614522609929313980961409593218704251441370315734546783870320619083645076957088953526475274972589280142907400722849624937822695837447659131113550369543147037829688753735947326885476782629819924372294199028698213394974439071972323369256577856114785821489027351147181766407181895082249534646214083724118007058410845898528065936604621938186305112344251993092777661526834085797825773527096209203066652706063278649746394621698380039209162386704373773247354195932389589473502864326038452552533281055663947100945446136648584085931637053655218791277297005864218774053379341813201028224383866227928223017977831713461952600783755873440006735278365423239032833675498433749286521383577288692643350632061628984287977920766967835123323165141396120596504521184107594481599676274632656431400212639464977987157526501615691943600113459764309573439044036562280074511444787912093920540005408187449007390933333391730845596332748175933490130485421033350449372237746814602993583630668929322419246562184751071114704941459723395856042490105901068605458130486513675668955518720415035929674732244177091757848725689012571813303416111663386691963331055945429101049856585298058529816360590087211325240391843868082049548435560119491823924265641959068327784490800953092690735626533891765844078300002437968534095225634287616906175885799615475860078935999289552488178819515651451481333192600399778959727113798130483266838779492842733013222030145239128021682594882943839405913085246609439990790517885872630363476054372403493908216283399595420994931536241378245699044302496208087084512777162161266834978699312510030261549868840373934207899403329662472594454710097462578028421966512087255189789096105787803477816066683935924448010865695002262787981431202508502708600778085932404846660489898978259206523193816628440514759075552746484814366538166123157216736132269970452244456538901574896330510613546191215857613954685893747543399136820074917659016077467496176401713918055762983652860751744888311402766769688130424156248666852669218884870602340280884719335953707366057527043273917004275503403656339645143083364508813699848875325364279744366055471271674589756039707650572736714182997449059416431378378758973435852436067526991550281005108848642241090542372662438790975653576078605993028857529962297897261489499227077347753274344507986408151466609957596223559288858881756454215987853699163574649624489496954208004996516243393681775456367517309201813793216462806879336889997912871342812757256432371733775858154759342112208819825390594720985494359653994924889691564716910112498467230412924520691402020607060290277983741684016385035273255964238928365889214686350068752850843994568618113650500197304089289896458686697754214398163598475214761553899072178107145098686697068946231356878038401560573547120985708590999523867297828934347787130563234908713323216505568564263015083339831481246706774587297117255260974924031643016464335455160755182370806321921012902175273253282885059328109719284767107424077841457914724114231457862183459768008631526987861852211725323443547722207974191546452489039344212534376836528693250199647298726757188459228450127163414151767581803506598648758282716595194383001647561970227821976895976048989237470636243476823425863022352507216192993110593300628085985521483491818279771207114612882377177514382568006471029423165717632551452371553458807121448136931379307369230049352047433530867168371513437560863741279736328469769529264634343889670837147435430231971759862874685345490079726898538161388032776031985223395769898154751323355495407754484370385119664101419254787843422889556570500759705433016926984371151829303462547475601362761521347530471829460176613770485928096365898218603032216719252372162271232954410227385353648519815682888925380231442267592347521217511845590544083310770985127793756250321185454903290177654991142470283678370539235817552277181439737475063659096794069911267716913748808240378243590933564616789884246852860126315448288427296373851558853308563253797954099546475234771437627363972623698211290745116381088351240520278933157179219569354387112424905242434578874716110394705483917588144060110889260129296381016906391358173759170484094942261368151910856362973500055852728585877919564536947447415423190754183561923461597244863748701454957337723582829984351277649941416713164235332268147834352376314617385802226922566576528864708592661503636455269185701442079026619552769006496187684174090328820314436094505457251542498758264665393238197818744324664842378586717305848322337987250138983954975431113635640826948137858083292621533888965406880558439057241245370856532147878791307834398779754316902756219124634908828179862867008608050476512604790580107029356426619139734681060054171279277333797699005408747065661298572331651365754511284168625695296769466140023749491331460478433110365866829486623619028615993222375977787377574644340733859275428102460136722045069839747355170602144130329648121376028763675817371857329298851581161844251364803473990673408192784235222452621800694555165769419986451872428364433327104987875669694470607286912096535468545053348186963745014267717870360305330532678401873826604191548594074121068354544438474387753820569683623463597671387764427945007109835639383254712705341259527176160518620055608752886996396408568737864945410912285797541300661083101428192046386388220940867632894008321042030340925889899402408707063827745048069190140345576862258447579460635943305231348136695795980250973546622015237480884856202711242124410592685089069990338108011152224447067844503650277955198213149135268468537181879167474127036280929264999040774798929191949768263852581419987688983339675139025924655340427355557091824745646942321658190249505427580984228713062712907106985672076406740562904500533899263511423927978612054092062797574477058254021525734386591114855512645649065805959235438359082604545666499246530955663872021991348445857380192461277474230823941556496217205961263296108593928427335282816812724557873520930829545424130265571816104079167731872554196588602998914067277432006397049755970158055886155917489350925344282255626338203414361439157825621084084622196814741067437588046980649097410195186569156868576868865423175047249204995917989707414998953757886391497654873885931264647622713360194051878008587296438965418660305751281278780942335905014671239715834969373921189662335954468284556872019657580795930723721036737614523624808924775802142139690016150350037973617308391742306645356170501244591909456224415377740527652934736932997063239981749889955035934132320522092261452937506037147729074930619986711292795889511292863608736758119819948113578070697939829297122084128733418386115527640075351488186262604397317172875802887909520520634290914053714733756064644412492846406910661980070771283660524818258906351285876204856481758563900392910786114253789173627674346545562591534470084937128181240163804557371502361104986738197745736287480436756700723229662395812341380506654236092695421843335667363327683386174822260421380478142205465627794901232143525121159839224554747969780533660121538572797743847090453456697236445942679425379020214735060235887094235139999152948591928259178761899275571132797763924013375923237463721828289857409899384290760266238021966631518561614837862275914493492234810010803401567243067675428884015532236630077519725888215262538055233329354760521297483291027569368279441514385494480740351837749226464221317930967581918941283074828589296803733512859702949108252240072024109006435132797126396659617058172235539688116549423571992967282538678778764931312710491744629441007351880931515580922347477295205419403382390496539171590836380181220619205448094302186683014725111261160467327274959755453786537070771429033641929939610379568187693483814641160281118979043500993552151005346223438377297671693944625144638742083998530406886155038062921703647139811851818085432509406367882442284622196032974817579465267174523884117872395584539838976038293874812296424001852392613317775338176113068697538476740665413731632208231747267535381546577965894777927897741700191189598561997297893524047477902658770585094105029283669083687484696225643680057001390581004521617679064884656758151858376502497627775321701608148895598491197784323179963973143891275092525585246819723616920667338837258176702116337570213507645990959721980409043842552856767288582420339918076907945961298687619640173050702533637878300792183422215603391197582338968966258836392180066449233433301767966267483738712629572338136775933978387569176137231155712991579302249677594349511883157143196862791186008638624394547263165794804268690109801440290049369928141462543266763171347368519556765346723189710988590806526518597034774696771258171761723642332997171577125915657032120196754665227478353304501059235772564256665654078060815757632084624444148636376980849610008314903656904939011340957354486124554997987703840290054196949536682564469973065567070754423696194456968112862030462952276466067762317005590274691607371025331353335530852264565265159606220400677538881472725352114592008975698820713703919403206346675519233472448126138408080646490040736586764647077721380871247336503058721709936502944530260356068417213518137831616718463078692773045409605674619725827961601781787627650263801767700014255322054411291035419456250720715775588516810517436196214568407207242491896925862915741038964818833110565062260416350845853526952770874823226429815197332362220458712937451108866664880517731352109693845534554295137058050856005693729573959241195053503783164160379530743695860270419166173959052791359381754132223988397246748208577800276527805419659457208084796898817107714775388556680405419112313006793923150374904499853904754063332201944758066832838060520357277411564172231236697430108241394964994156564638584078746882849514158864591063165069901124459974954610760857165332691219505305898677090116089274047128187023413211636501661512761149027459091523154039444036868178178718685695828970860974140816472202636541882839599627691006179157328497648041616756000528647595483981937196638457370060177513911420659181326510078131637676131344177137393592148729843303818110360034760867273881974456813911573578703955439901024164239735263404015646121243761695564625817180138672755154200433505759646587322244431217561739774665076236802533823735806891010740607073565193679432941734746967584426519844707590527490424038452286873618282049421840032601878007691706954599774415793132332827618270100288750562335302844631741109973749204328099079289651801826783836467173090654825521605726419642607576450393808303598811953876166953022268216213590985561156644193842218011356339751748561588334567949548401919260585470273946465134436590584654429897688926955476151059511333367251343234508772079165940674722559356125369893926288317097322407305274362433738778205717571235065648403702987346000838529578729646507039482081459378330206588383475105094995654731039614499860090042523893033111690909753397988472894651471185504120721032793915366145209089092753083218302156251071132511386440759636514618639507274924727051907459473389638642141280184869275920330057168217013622091871334063698434063112302738540503573221099516960127797222563911305845181757496633900841236223497633534593642915764842215801915072185828364216999325765663194833820745240364266739864077752262092942231427278158509083026557621449763141318401938547659175125803249700436626618434430236614450091275988745351900094693938211324396659925193747225232219695018041196104940148041175579679579605917641758260267648130180151836404335974234883559345551069547013580545822907410461175901353062532922652611886246460027844311065185389084097918592642297248306574642205197441973082899122018428302169252229987388898411507825649684933566369105365700140793349615584480827913670349731069720060008630127010043275711304297630417816249622572795531823517387684060343725841473145253904747349619559136874795925086022958376879711064109121971806713666771431145826169018687182713390898472709039350106288664855673078322560618534434032750382451783912387415787422644721091811717795873492156510060846377864842761189831675284510281138938082943155654863930817355143955565321444655434635053895363484985096606274962313745028218585042354414476766792120329229365751396212513926723186752441988297577228345666910423136718689713061137312127805776670039562121069919274683355734831817535895924478065771315893450286412060687348270361545237848184553095827414688194382391290012458024211468850566022362831209318738220709036166695891145414454569195914391186149146941799387564218601572030204539648379122790590634354306220897144568046864636189380907661711885095121044044431808233235602763147107239947581069063766206874962550001926746753757710966973090198184862964854869545763602811827456212031820013899510819580331126775616440165784369594788172001607979797929631969601467456805621674151600759190882067260053887995560481177551354481352673809600345620909175756271727412216225108926317919674524619959566147775588107805755424255063487334037068440356806652501672121044310788466534703027050708895706363394705308774186027415330251514049503445535314086594417747191763629799242457360492758055691478945174352669732505788185831903858049533137375845648630172438435089699003290579084108174351549957635749091568804946902794916377730275660102269480810796116217776294748237370179397299118154810871833424532008517707239832610897348468502937871731875624960782467331143787375962967271790570915116384340530604889265530214146725437173240689875935662477895062610658025485067817291988854457331166259955492267995688511932543374097116940758338187064222816168733839374821286761199240860614547481854911250594714417095606527702166961127509568642473290728740139543635366138626477330042202896487899341346016198827478529561809237278801216936162435974655345243034706434901782250216999605932593416943668774658087570689737309038212001979484089085396583255707395448675320392522003486496368169705006379120002216441700871435643031656755308766317547552484113877753099480151136488351138298121672664428728525837095205972139511795991135109907778912918224227765212773059897744536877210681231984866055144649075167399974055707014676178817203180477453160931273323910783503878512642911992934291106889764297467943102319460082777792985965010032606592982297523916027635290774630719863269040450764639074542404151188287940524372126134723609628597295202062585193678810131828600867596829693030754100389656930036168316305010840952690618603364077511933834790413924822437716000527156966171662869183795112443241920545351314490406510290174957525464106069059151332970947997555156329610305394189878588215888099517234297176675754604411176402013660180293692075263511843735320554645788121477407922828079130187777735977957694012096854180677149303599647873131763487432855735230821679657361557252543684222286842335838745022394754529308801865220317198914925645618802111423277530999108775474379343401314278794884994740529823667395094939401353375648946879434786676393750710219542330510636721200312233241117251473641692968138896112995240004718566793367609648872867858831339336476282405568942011886468117826897114841138832777803436431244596734954922881889416341218556817676429285286273264322295300940024681518072082109861059048681640972513557397879785644645389018378854365037913146676356344052910409130186474394272325789203100062984970144903249751304352525163269815722154198607073721317878793959211063362399596457616700679826041371210695158681647086586391042572469105912438253876854819308409954564200927679438836275288443004653637146083581016929761096337008847425332691793449219286310145889317248797975647609965557062380388423802674214553897436551366779022859271601897158684117962189436360718350763707196801129049315042236985332858705418484533841753783921183022758844418256340590954160203156908080951434187886400403555866972791659339348205942705745359782003011294321589926826258782751618903221056488655974244167180983158992620748870170706373500732897073124692354027500233033042099324586192534380104596465683797785423744358150327258052998406979711592909683105544871299468594827846288226491023489780089353214280170103271455867579138548360030104816374186217325607504710450671561974175339514175700736347923046329090182626818081632099282477400588288019659122473766916361478113771222718740206085164249321999879592509397210015585218450552726901266673080275286152075527559165556591978733147350213912078949223788246467080124389067950127338980859489644632349297691092118943308628283043864540803049785385249918571799449772846214797118157564121958923300798249510248247120503789410153154294036076538848995234894928177688996858104518035724837725110453226638436426943880835265375802013477373054522776889836369376981395948444400991631354389619594185400855772209628950393328661241581912688717172423848578241322494185265537839758849499558267667615050482147344364017301871514370963654812390311581102065110716045973073146287541881500263490204915660682291962497750122928751450260870644512125541902702823286179300189955312133694323387099332179822976338092149937105527889207638129339153820953282219770801722819511389182303041380308421988349987212304640297922816486390124785179098862687848151444903058319931526611483131063260961210760078680388758997856233033202372337528035473959929977732568049130480324464372056797517569162744858803227171865039691945496220788701274599996745885132358156555691514113212261727381832242906928052896274799767502523719513376914202562322092821318820921946933113035630097682610560052916499960725768134245545086746452284923450473973298251759884820049516046940785479295067492656345343871737162984503714164055631920993290611891216659327083379519585260207552303209643383823103010042594582086497434938376190401036130759629971976707292129473828966861220885120100209535444051415168882342935196637125771627705823195672125542451283001273475916105420196605144488390182033652746964112627819714394910328632650904323662479327374877310420240311587970044705143882527666793663806695277951435730712202514590596719018029006036664979682958923034907289425825404532456644318331692053443673271043283211159889767009532357462089931792971143626121212724207970110209070095620870888619636418380627593608421628154807794263649335740296177949917993659960101660700620746087161486761913943945681957461731223543218405716944496548139158209238068657168254295691416106452451543135358826794459195536177137732528432913421020046040763821285012003436708516322329164558381013546480653890205159525445445443734348769729025070082075986389907945022837017998876277706108408960624494403879159191788494833980790438373531625131698205619435131425201943492660595244854878527794573380380262130948186955327329976471771872998260519882364272712419723150491492445367034137588340480247515430166358121866197328091807932250896959152328891956308603225820827613496793639280662092741012949536426936268013402774712656624011232320467802002443848373298651028903938039495247496912560269062832634968856960710538821404766137065954006033639577781771320582850550816428557681801242851697643805467561278375131295202088390142818560286766269730767650641381711597372017195347869225979909498296171803574857490261673775551234496815158381492596651386875907660141419161467650360960917434314431170267241679458478508814918450507262473113940175194268015743219760940038638342185915871873541822511906568337642599773293946449376598757159763055298225227115843649552264326486515681908072144314610779019099489736132378810039814924469220531935006799000205928226847045627491148255578942410129743059640007832192963362651210140799043900357370701254304839170266487160531944482725483191419331828326461049996861262292990189267284709476694299831884844991764825401668491600287271830164871477860017836029017404570709680967457615664942240989195546197996078166842724010517426380730021533722605843290395369699625295170344889571157316235740045381795148175367987975545191255739804813569354536784949150086857441728054444851659243957181604173972515951447393612499138398215590984735568980553574659429578647009005577654990085982634928079259913611448513985678665231050222900372777920997330986694995789314688641572210038607104840374879812096949509594616457059240958983678066328529323794474410059840210283272261150068238474733048550780524863441655209629444998309514025194935694937681830877619178463211074174087169486609633185518090773552114795074195734222243054556844056035084835704284870744575712377466842910956544152965666978678800219582078749455884633918020323025825620544870942773959027125181809709833940397499102155758952766433943002862951946433678748124583724044277654206996058422263477874128561851211816732276797831040205889845846375595414036206893667512341059647761398878284785960454190637003596130679274876399245834239370822523895495339845226707942069715461063209436048899775552834717469955213068383118375709390179696865483259438230685288183019284537330219249162134357201916826022064362824416088356188147533837762941144898233263804480523502757806058867158440867512689828754036461710222563235354441486646714353254618796667325279509713415892279316441707457939921953154172258057488334483772939241425055440540323203656991392096844322075563612421215489345958889702342608042003000278604723431747113394212999850090381745757048410681269349157618586736596406577982088939943715148025476307100761063142037237282783879508349957506380962329961761970705671308539518812292232718314332070688423505860765853612967681398651518462241872627933679906957009431334960595467102410180458603750508606935041105768623990134768332904654100291277715024730684080376074545519051680085465055624299264017843401091071945531314878277748311638895328130984788382162643914587082353526577714349484900540945604557577375455846161313888000802961494945493394254409277854918262553618192645117727050103509070943372120038943552257744420812575804393199572358401263224257638749225813058974374099058776620220580154308467278374250711510991332957246499463266625227934207458945999043468327243512452773234466703156861252058212665325263415649687325067682778193948235275181384921492757066848231955012928906717415941212492779839622886256253569340418803904347667043786855600461710227464356403904452889754761798296181293846816313559897069710606016691003480155645979873655217159067563200026629368689934942206570960981579642910701939315575919650098035431348603874356105320120619603556166390782541262739808606371562531624388848769685251963420792034001906129980837481676724492876931049815404128200830889117624780950498966303828362706577187883047056431746582340869325230683705785992930416624795912119883868115643148155697154711824578771999744709313433550665735382935789701846166663810746028894387744092337002048317322391981488534611108339674368668848686717569447463127852588844330283609255135137997697507685341342004258569962132207761306634527488721206741738605383046105508275015451359798078830616658911865866187768463768232416616531670344797148292754493171279271882966342413723342809876935199343352952681734950479976586404365258475271074598024766820569329286881580425541763790212182630261383101736963186294897913988302957180902153355102612129657126855727942623716644590599193574884059249827404219999506592407752253941204589718502691711210136037732922211182218283582729830337801881537938305180045485632225204104276374509053568097354817267983344786488390883696326358797881123291870524529095588658883174594637836726149684013397500372612279419468542537376425259337032254898265804342610935780138261289558818622192225845910184289401788714955856447541872997104709943021428067498296325309020603545586258488685395423049760414214229857695362919458578875171710711437203273188224081949873110685417585456426017223746398950314475416692329675497859225040946589352224602144770707243933513238728907304847682574140040633042736563322724538956480831802825062715805848582273510983983946446964446710572569624767175235555698998554305949318052722397427918419875528408866318035310043669748268258444084324706717927417052796271025285634508878232194602960010893954314132822668141353403023081892242649951570067939498525970796388804778897110911655272441283203763329176761393048783692146754526992092042039336479788171515230579360244233158433269598701823842257362119047015655837685426587979593298794502980232703164332337233468472784365506173578647231946427052424773754838105552299416875548376159877454988020085102111196981448839332364825073042052757255465637340596678502074528632182681126016328387709986431650500777308835391505456663537574876273839115045593955334948845663467607834598856901216700965260959385394298307896860400088138751354091128609905668986651849125662262454751183695651178798275152735293373699409941259278974068147508141635800882204571706755877863904484368973996763604913236604190399847560546927364263132124860470128820893725865857009219848912346956730963820073866840919000610612650496933126107098250400567887491730430437886673467952861030904288517515273577618616306844229108371793993028494215828955427675440665581720775566926249480995229392440211047382385037853596956803540054050405798689259005981212693804605053111529344478401368086308978765127441761641577823474793844400102685462351389382581761250876853107330173333493032028950541904541248516821456810060670146788012628379347995221235933177983365478360318199512303455742390590907357275570642082201839341724661980740382060386391569696840562714461999213176426746039944773604105242068576599909568780901425004694848802978821745247813929548199962735366606417509072419674688751741775300320368474157045659049634497596655263037705798163199570355786076423765314689173788051730990562232192796608795469047513314953559192773335166658283253922337441398428130295770098298632679512577631052172079168516858931937651685746314614249905086483944996812043144086311193003347518299225541293714260473365911518390370231233785269439384386753598688905421837502287283749710352044333205918794502908218039935633006423685722863420209965143657962275163960157607023885465056591553764863421934733656042502005626293569009679347730892764533078510425525020536084369601341721257628449752164993957836034213751156084461173300648813962807899527409708257027802448967296273214971348783686075076109058538299745337068870178176310414949644448920475760285444751646598049894383216984819533554719953706062912838782113548009963219089128789090132214774045914165915984858411049823098811233130089281348378827297672677693078581542722579911190598564835262313389019696648303312862455074684456512810214792077164155894671375589537632887193668539136075812190110812886650140601571535077408234134479656843914750776438850369361686249275009526965618910855938991105969798942539089865607386758478752528495597874891773588760661218691990712946446517936867552994294484671705288019066672201522984727398326161160353105680813005853353243795777207869019139603313001867704430591568493766612434536393443055504393549392919370267372545146077127103550036435665393053096084791058421870384826780093838314451754562878354916132533946544608002802830505318047821840816811790948833559804705548105115921904794139184405376327642567822979755506804451866515785601386649086921634261591335472959625801734738259539381577216618901273229503872128243050619747790301246378571317457287027841610963937921415157117475455431083380120591241639659811593713366140281077431302336788558507257387081501790713908568733860760265841525216456518216651643645790478628868012955351235691020420177629729696398298108611902261785747449862981488550688290488263296202472078733495344942655390124563929428562890665867258727592840874251737525619739876499586958102221931615627775678834542938652229767007849170466585395301512978133643289613565097807576456251536269517920111509727035375654848328153686197182700958512320750360944460296041155604062916525871226497984652064626795044850367548292818310555125426960208207433491203648921507636773939074584157513862604580427190200535121513133069914800998710626914607570452994181495889758968227875191349034404582847160587644520794441601206265217004400020964344767041129703908367211633260438705606859859032093842083781818056796798094000917959728430750200263960711960656942742383832092316879992011281688517184181710036940838012624775243306043299844607789516896446795808645820742919685213001181178271004847261443394989885704808000627503791495354205798328694066795063436782697920522928161630345183629499807665841818530467454000370766641824412718309672466390524560877663763959618352409962350259274484038515676666608445017534221596953950842879109827879626277641457657077782259004236399684962654080661801743217963784454142885794499577914974673720968970344149690887148467265356303901168169201204660654814267768895121770493406823994339898446343996848768949320512520877573862087916941334276851200637553434067301403400456927484588421848672280640425315442286083662591661718306675211674243057800874279847745801125057788352359661130249652136164258171530454794114250729452130219714614165792720843735420336951014180635816447701196372275506940740954353800658520198919073497041583044335547247762813045505756802921599177541512481045554770202374067244732689250449352051814866024632335090784886589317585119021359732381257393797686997786536938435194779219177384993975762550790522474141216446412352947505021678921268562860000729863150099404536624003188566573889268145190168701907785839350846183951975398068296777595453009009039713770095045555174274552131028885457640141549083994096266235045876888038250440787988934648736300178876937822948112799407072703487729164986476371446959890495604425559755569659882479534229517682990224161056248891680340462786462426387377370495957148768599601823473379990799283312254894865053703971035207734370311826091446152224280740197176249330670017256104767362773059684664602249141030027001406813740343502422409277481670410732282706563985054778439388496913965612069593348527336108081994454804340732685823347938479230354967214384978345059234355238086432899498835165266509110037289431094133961172280445590586605557602169930781498324558027863763352603874452178547067984879720628715408865635387314699286035114501248855577752313192897754733033987075621883224736012933584247203692944659696675948987416298778687818990407055372050322580489409452211925035507372226533376086037545599604248927173258544653856082805489345597903419584291498549198131912527940496375318108119314175736510834178897171657154223705960466908245138783713823530154670246481569401080662529229574303439607092878581824338809961430397660572869805648291736649538539413714501159521728716489999775665653961603998761500404465962085403953223306050641123894413884719474208098274542324454996198914425569038220700825573442882388896344429678730255979459609339192818968822891445128820297074523431807440702533673246196840948705274877700164087600177464576574951324159445672571858059397123890273524919091991849606999642638134530211204612544546351336098068742669110357608887516484026394326638174533714066331098681718723509805588005657332526913037704281684973165309968327197054209466194384190412913987622681708374710008547673336807079535558053977026421020797267495874643488944640449344376023125680421114632507038017125255004467835711146246633368668978615251623699779170512235197372843242092784720758617058887577443950311944210132674026413549732251882716968485976314388352340715440843858897657637597478486358713514314567827337466270398543528783300726823115360722989438530479469598486620047026911368437917656607020785174023959747604828773187537975006888220962362546792388609363234586237972091584971890079006238212367259876208851234268955517410639788819809645363982476800936084731820481074959224090907010480409613228148588614613815188788983358417433545566077293300238010245042376895527118407762945579441765406266872357103009751872662209584065392675186841228840146318460498532826446499854940828800767620173715303596642856772804505049506430733928343594195283637454766576025380497007667319418645948921145790562369068493329348945918302295634029296751274101797671307576968311559473014235397290476944404014865795068145418842605926111702267445225161087584556848514734042155224072287220053585347597053517988033095438212088126208188857730731276512548145962051050283583866281813162591070420297141047803431405362425619810271966367910175124932062415118984429590552110740383838567118073601237242817408306544487581181303120391499191055490747160723706235222952399094293986422003727471511305831926468084014383412890806445641541968955208984341057682030716240229464201670871493932439034072483339865042513432306740062264841520568799110915050106301584546732616069716060093495156118776479183450888761566565005647974109466588575256784885415772885495372951685670529946747700487481251241731404873476756638018319549029115647158737143541342564461473264014416527418409347919787984482589780114250910301954947738614174371023317972301512052131282922349820069460193843577760992834889406812940826795703851147855939255917090897308770907888288123328080808212332471106446303107502504872501691709216766615046356038062625725690681486907894177610716379718062634272823393679519008307274881611165945113952514179619304534763081915645356001455876432450198665716873580043588887134497579666407733251099581484188474428212918206296536073379313773937939195893080928164353134139895744235102821303533865363907352955497614944253742760450586030254020977840315820539003819711869151608539081669786248558761044184833637463444650519174206866520766682352459952059738868581856310845195205721413461902152809623314969730921127766594162667264788975647946075706273661504503147049026472593178011388989154759282686375120249993728814253813906085406981644190141685595106447208570165201614372575455292007111037449312217384991057091569682105220636451658120527531642504083191273544356729616448599357961439908763383419230778298072160112793585915019426256663650041386731235805172570454573734722782539226317655174128778836371086117336917101975250615171009057878693241783723636394853091383610023692839276670356954435769545799633885534229678025208776711372998486564551193007445681832062749464246639137169718950295594440062438514056116101929245308902855784416598964881524542856706707987933509258831532873264983335132666185003064431326751967451925044732115470081300697204513096051127624449823409497632775473089319905424635139800755368961489390358880605626138119315658303546230471280190814102848171440970581531970053433588685180430991720990307722091633604457337109654246017209240719333194765220136879618290527732008279757161481238644794448417270722516504417109095252090151048288779074697183360889194825428371584687620839389443011530408259450396989139458661456368606879603296141776085821008587007339687443492183441647698892379999232781021790682927056735284030790875578372909984902701507610140818107224191404568459537234834878292713827994996120799682395027248795501889179963033369260308349758885981961363997872834789629452483364299304009881673750577316557439763693330309110441725984964765400191471720446781763183100039152407649416319219488163266403079857000484479899619338914192931199745700081191145757423605919255927152047214304780956811008205058546975232643785481325369601107516938412908878433400452324651855996731893601641112274159799509224445223406210271321225351402027383104055382535014700161606161419558749978661131757286683163313142399632317284842634108617000780278940988044571874485681955389536081888252884482253972639900231088564828104756905636862740182869018240682751566294935238501801886016863676194015570519830930779445190561131983451898636598108593392959829115748375400751751880422624866067349436664412560540665272019760401494354735050624926227044393338022780497264449588662591869919419080370931743877367773563455881564638016866349315936822332092140909348208082438760468502641237939249412123815079105995379674109626358597089411239394640731733814607461867154972381925760893251499585472920567337530654738030714118320364295794475029453822293419359530556363274855572854940422907788421713064560123941461863647045357392101263862708061479979103296016737401217756564204647169502524156391096963144320130901608449235306720971345637039596001856857923029066224519294255647785382690384136066622063525022857458091151668242184436323565554175384424967491436515861403952095526577500841842058821589632868615336805038856493307169058674739408565954101766039287563435008283155045833154572111635749945822498445138519252546330697209302423406806535602718403787116545282960105035766703932178065133434405557172286150179023623829210501050109340575698623965617802441922799822663137671610483039514812566444157300331833922536518575351571127404914651124004338317943762470234027507463509064563375997856984281990595820006101718353443747916086113403671910945586327553668913459872573315024887244268841767698054059815303764602999280695586734400750037730104310829086534055874465439992405589735028738317136915189633031619706434195671577800283529609242772239150577302591762725667928687510094224764635981233429291259757275896576942484274743450178247234431731756570463280043095194732184129317490768440438788003795355027345535903498516013817888871045377544279427610684385260736092522240983883896883918707460486220273072635686654441383410380350463555453857118309104897806030823388903741845113728033078033065969729643359444180539415714283371650139232121752034369078042365100796730779627325261230966528160847838997131688567728127189551344042700288007242618110012045430295984306427833189259853590241324418941914033421786492072790020694141442030532652277537482199152359167218346703168851601045644551605566736789182035222260955394136940278775182328577273386174122108148108506257840673247440937149820455483964062066149154086145103144370182663514705898106305195813229579990651026105076547205529490979706789127093695093944105150131126270702917510133432496246919713976491671734100463533721097724531917015621018275105930151850720117160405265242944426147370037580664151685155159315508597143373307510391506082058807789205413021442774703324258645473002288634305881554714544708272619552993029231868253766212601570286761465721585212243701720218452306559485835481836090335854921085623316337497081712289557290943959650431247151436893952424335247697699678798770050765133192154856464884338528770935565296447760415051840780821857477194210330303161290194111281593537607899866785903077806173146968638254332503384243472519184079557261427290369531402389483675855457107285975914282972020131904422365098782147869366064022442464225571223085298073291905419452062636429730366040203786512610244172394233950990029668551160691458719613843278261932956164678884609788224380410481554096515866085761972375902827943435155454786148583747002598712023504113031656765102256645179582556118029818884644952690034908213350508731471533911232526947725162457785545777569538338036160768833858691772401433406622810084495525047264203505997254105413368644496292913377487956040998463099699648604126484044593391543720676182558374583731639979415762778745247997134290233024938134138503591047191510151037091807689695129547603876439933239303634243084630659418591990704298249588790597369422630837386748192810065393080975909966662448999255457179699537171591678099742835472290013087297762274380976310769378310993015589956591104133022648356641351102034733650496846148070830133460390670660734230408020284141567439698104440424677987233365943119766967843540084003211482518186866216826375425608337511160520667850295214736982813371349488268596110396976076910514176928623271355575459708102548293031939757774127154817689434179646908237363289192413982277965766508088442613187458930229943064748631867011942909837879196271825781768254316976065447790015852973850333505928996882242369626123954879304071554457852409606187956150626155998809189845201753604393295432068446138734721658029524235432480443852893441621875931357094732701204720293158116960841176136078996986738856053607739591489967983495701152090504986139985891178446325079364106528627402675584911042406278825657403925214862095397354837640803555691094971084731140619309799973268303585220027742183717744786725453181790497100220046571274026415874323794783368380402847303759852968152814085617141857434553948714028845184177354944521279115193314513306455716912726683426389635940602976451570672401931893987410180948664767485917162391079006821878439187000444801037820893910482067663501975588810662165896577764615506757733594780150938277555038380102882161294571159923914231667057755428816286190210764120315482387352276333499339048710260357570512327935558297936636916169248944865347021455116340806538445679230820247966662164884688850842666344610145572093395534435586066080028566611922382458204077267969544065666211047073020903161950340353782077251136480078063012345804548889126617518717153866898895616768755350108769877772844100358921109728295179896180281586851232918365561296225452112308104025845074288208748373989559522758572758575001042292133459161024063130228359347501826546481941579284933331719477553249151607448256917742870689088337427809173665124551710126899291120276337629949532874719824585236273295565128363245949475379927735347979568457773497574765960551413368883141258651829747280571981741516621206685047959150372048037415612508699964274868983820739522589542881960854501373744798094513859041900138419339834843961823041907163317751917698313899656602919242826503442452815792633168308842878202816593843363422077381322784065206160986018869036076432404169449942534478983001347497884135260287305784089718555447730100132202379493093925695275326895776279967102902500212937196133993634729107955945825210934872772360790436423001914762864190968788768060463541274148507872443603425925575707427280872752214169190980647130014773685668449422828568654875953266037834970061005579441287848293790932124904344381711923762160576290528546828912205295835000288280682893239429893581972595697654912658362100667659350781292438563108714817667704066224200500030108831914183431974950682343897305945382949425246371969571983778615695952756172307556521544744821395125075917080725643801394081178851923195443862080333763155904336959723197618696904467345396194318920496923244831212609868660450873720099620382081748018716330641720979675257137864883126082679603218223863693984990149543084975921310926584921044337168412126952453737141694398508688765522845670936528510064476172354207483914917103366155036268648502575167865257143909621303723434712441001256676271330018463959757970614114202126810716649655232361573405128151977757750143584287191889557864339119928017961346524967788683524168844189266654816626390118160548228654673656491645803810475339916727421187881652132874200404124758503795871942462446414524374872552561081070465569735853428803072116015499739612085742163981835915158494934239932156633057466653576580150128204136179703994184112871210426647459987679134846866825191728786027996083155058658003476375307739873572348503259406698288870151367091761512629433929766666828649198152707720400614316450346824336681837073166010498697248761009408356351204583583432084985330747048515499249576059026787736229534155389302454880608075896858587337295019001235269365510294439565672505975106982236492990640919335618852782296381132651100818020600460338948178860179719854014760805727243533637254849227510347035416289661980874516550468318770331575130714277198408361206483886283076147834407822979829713536555795040859091798632731607657398177201085033519755097461153186229269986744268948274032129216838532531300170861786698271438327487519862417078245438622600348210237249825378515114198769087943373125887995450421406049191394082586594960235196795212058617925518435363289465475553768557646334631910556593362651521917201426897989753347771724854979685327367891297072378762726339570647795844620932622725198876805570156048734106196029431948594191141185313533251937754260236879197611584503367641087702723664079764421348132407803309185742090409405574686646937238957760532277010755459255932687536850314866273115912626385567761074374748160941238836555071536949959375432491481616222618782965487452994457412533300634049056848487557652371105707782316978762478726073327263273692509977863410423027254127349765157858857844541765698430215913823051133101638283158946161423690257581652792840956223173187911086502876916637542562379617666382967631193076967381837905002577974440237477057139231390988656582883996443442435675458561474510560762636613488464684276624554330323057941818554752037502955300912838586349398569211269970141061674740962512624050444340046535566809458664297923061800148694545978786026258283094185448023530773023816396622063034364882320065767931484157051858441713108743492205464665546802814494198997349695039752526031821659202427577020945068944040295567452122520056695490523620423442613244504761606800382794422918860988928091629687178475560492907031001055656939684553425872305945271078565639791245097094854807803793889282591168499117393076147964182271403973865498204172708165509942084144641275805352407607270257884172737416438499494321274488371492011600160843347873555840780025395956565403439977842300048532724518203382669700231028875301683113319506719041656722797808056268065259209974957926073601864635254728451312638303152558138892413826996071988496184412879502211473354961489422215933728523117150090366253508418927151437944868381464312420723050769839304524982725470732040265421882560561626302580221638886428427907324693093329558428095156302294182907012062803099126547569687650496775260814193183271786683823211150793967479638191360614067280856432595750444542186946152720807239369983173276266377744401414013587261788487637948385303138169537597609844653026418352259863494323824583973555128834955228674274495814506858345196368068980010330520656332505032283949399041718975224975314336259813099474485128279644973902255223125503927003437940978840780681064525615538408995239599667325752600016072763434169815024358179878442524149882795753660190658004137628518045147514732785928274254753623224768125467995424123866130643192665482595752463028682630532849149930798839417670348121787083731180597558066186084549490513457732739639473462377499062795777827106311307671156064763267747238925664490521463956056723826329220416544342789532916220620240010013652258274282584259635899534742565040311292515699491838862061967588548930836856119207589329818763111452569904387029880415527541842640097599010114109264975674879159052667913773463163053214087244070938977290698292832300793760095852425218652425834429570961875864309854115648254741962325873698316643594787008268840003337223116777333188720012158329533341011217340969570583915542163816818357099043291418589219282177271924768916749662908759836824407283660194932530706460485538369140066840739678425187420058517162644922431237408393473871977833896566132151543499448486911031755042842658347083086041905057579856272199639732433919522667449423595156440446962628642260941425660184586713356337432235549673841268662974664406253122898555185861788990873171330763266514412269608011600903963772319426470159686512911058001766167563804048324581834219128738699715120111018597945155800320485984083752225475578375179269347472770681406524879456216153497778939831077045345782913148283579072989885481071620055339923731074826989559916960936753876135437118045978047892679663112554681058882735923447323029390060316833123289505660060965209139988966310336991537304308039950315439011798620018602306414250518652870704243912898826065161715332117989759164944006038683567963760575664500534375688288829052508776684959871560476326202726004400460206835286787646167332334935000778098100569748344529384157759790348410370655952365833930006801955320749086362198739830366499686969608459813845592028121610336869446791261614285325979433783752769272545832647707195839094875295832014725952120946436984927833356768624260096686493576919168115740933477740565657125221717837736713317253141842244834744064764054447867946938754250631004916167996215772041001996497140773450053243818492650196447250087482829937665055337183067498636694403960414724654727220056144137018761373681755327914881023162589895126080590508086997313638632677587797405016185626106036511531928348813991815479346093897540289396033809655394675769567864700126136429396032832160915263717761891377316605355451612331681680649528391425610503163504810039035357892234417829691702090944163914943859990515675099475406185661707735119522345156827000425370138576442795000227758442592403108331372927399479377582929678944456213099331110395655217810572569654860416746385087499586199884912088944953131091356197324628875605347402274071066798813253154226649626027527964709009729158089804874810001997656799811519393890630478409810247707033546664889260465166056649850288150194087837712057516795181074034479251540293455336095327506355648283367563454114616475151115110985056042813425997558926108178838870169580404567950140419177125661429693391453474101790146280345970865711558487148754471444172316825768388433717728892824229499788004047055555622797222780409324348043904339926916448677542880966769700334299479832342869081474180779304280290627035997938225565759136610604819455471179090740892670267291989530979938669885916297567045189861642264163007264956733083046753014085000590880142296656220726963940914425035618011725229070371123952901800575827934347280323974223709103091649170676176407428196062029266631474162151295963691657082366309676264950967661525587187906413658794591167198298820221243705390481976437705891749830518221861901160008980241298005048251167302718292659302969695402228129483602169007581469997412316043027304241474947107147080331227421283268106256095446627342075272348733035922923928156720537544349326173096191027205663733115466720107691730125726639091458031060210849672119448399147942397207889705258137614929375936444000336155942453993910478824713609120985079659098239991162727588336309101327451518994638806994331938497712392946077061059164235196927527530967289060418157863213980863295941357686758452582770626312030334805538586448144012858700229766284684994981093246108432917130291160428981230397792611675623654334708989645629775880893643720800021524581087437232044426024567429892145243221187450872840417455913769763986232640873594416873742490238800658026834840612239159632890729450677593693277627977777164346899226270005870397518981792525240681402249070901886733686884103046687050334622293317125758292880684151918245214803032625606661459567861812037260969560386284441104498604111820898166778887256985259949189370194269049067309331456930033949713769705680501238682270678442078411613169902632047832976303726185114009245196036403763094324755078589020977508597352297029355177227139480187342265348478578366521989143077821985921616030615615998224267711762620764177831991488393979609240004851404157321223830174209247003351912379736871529407824634170329632863309902249792733748388787829696543016318900954410428878620823431379486177880995604584018581862736066202997646293048809428741038680008486137088036634521461975405582093460819413368730119795383765722378285606633695740667244890625677059212800203273008771833430263818709488833480443480798350276646612846431069568903500270659138049518524126477085859161155239822962112549489559562352245489832418741323608853043115413961094351460839003932082942558336910129436729444550226595061672300274922165616049003815337081012216940191042320384599001429426156687776817898166467316601428517746623315005211256648872411610128528780301587254392100854903780865879229565155109990879426023272244009566180581080002587796449247693420075019910666919779171684746438215123546670540139616932815476453364392991479708852400137876304965959821190018366951046456875917191065734390385227556737101575107577960302215460302932425136744943411740236860457727827538638306438647228560734317422776450792532090802065623012352941606633184487417761814654115331699248606722674867293345225165706973045851598876528466018406687553099398814392591088797501908729977534805047449246504176255324259960352579610984428797457287768348195606659062782574834937292599305427389205381604548055007582870173457273758904682552152178333057331098578873973646953523121287516924937077810152397701241941243504755698222153537179144752195527311616701772992544049101103663989359702464639193524953904555156904284828481935995819617260879406382187380835238992559997794456425745831524687312740797729757242583057219129967667739708082682776583751383499546093457547964978644144218442159462818330041516068691375550680958791403976284371321061487954839846419593532206315272856371087903118671031702673170277684409993098666176545781368701199945946502999488710428761073637071049089990817643859855381272490343482373005632591692416238843314237797141088804389808008301381222965828882486768134732051094158430690563042312658652461118610445548734074820730861591562416049977207608937593936781445121967130439452718898899176544039006398756372115381830540024022134380654417092960970092162332456093300236470362206740682470000918558247054793141563605812328333835543290300629326106376354259916351018142117640952891475085202108001523154956186596669729813607007067527189677717239489227662408566545497577151223950327382815098366153177593730614487668399958572336699682514376861629003628362237326044580361134273848008165315905441445542877160910501009872758216269346327812703680443058640739843510007212542374274957672555443857546764679972066331034093571965920193493918784789719163335188365618293889374817229931560009434292515646522449708120996438762054513695576891244994514725862604953304003365478869780238575681356075466925790483257861790672883072360515232915604249430664301832875337349854664075134171772931961363667820251921751153318145309787997062512009386497860213228174593840202615365662607943628653077852237301334331511181963733834816885424114399515119586994788381900431598101252760844245020389244460785026081819415775416477364943518538421073005050659714419674801182808040947964595954336606593224140317810972599434307620117853884547797717099977304027527013585678174827986482345784859480267053942435304621708777687085216983178856436595231232774814098107488016726493390450799794636346912273282733269604134848516814952716525375430041489676509710758148628020639751016697549065572780772189957168792861957321461650344978967836533649133730097366549959670550774952596678650064699551410797796281168507708813205249239193362111279373052792108953555512886961079691523807549876830788072205769134368297888021970252030619716316076697577166182394993814438056095092728884325663405272816828952352099702827045968046023734690636639429686877351863280335346944163268962418235183383474730421108246889062735514225023246244873204009912914039651506290556216760187345606885979703517839206450085914903569417554826221439006015378023374219571774565824098434645153812586687900576492469161348535681554294559529229510730451207153298550659862967734536769350710521609881640775385094994097813211458028323201516979183463072515107589545628375301441771359146114328004064868633652077144686855831833020067451392837712459110456234389099026100394303646226226898193758721607225098161746427465839964723889890886089015570848574875173900311139310174083784426903918234006044252852492625008051764428093816776605270547001387462307802944663363633482483654035710819516591296966306745005233447982900149667407281012660564141333380277413774262268569256080163877707344198601911975778114377295956333713581960863608036504562354670463570553695600262154217583714701162774932091666343531704231458639305912391332199014156647946274398664986752449364459671117633401173005730105364549969805476555205310831127305565347481392807183472789776113844407834343596415331072870532131940918115173521705527834677820774898884641728309010874631121358736412504720636276489875038126923317908419820684201584361531825755626338682380147492835759198837978558394197692605590008860481870945157727095919825535451462852716688957273986279030677789979868049597380847499695208356467384467860129513920689208441914571133917233534164865763026625844555070617281969933208131074528181887371856797623376990460825098337521636151211476840920132089109868390841601655778969752244044176546567210339095619861249153733337198250796770726017794214688933462604760503067755245056924112937607675109161102499498851315799666409127664295510804306834642040336473731730739762673466913861974596278286124160061958421688212594738773858623683732839222942341844920410616421765607034447890600726100137678998443017518783095884268098060937072950379476693945291078135724389448024844938816616598998217416176702129361133835880129507313269383654878537621110416754916938883715108431759977963437351240280174195825354235068250500720494168238292194950886888182577148936810470996765563948847716430726634298321898651271972882918253993079252163625717190659752052695367764320150261184384090213035370482099856091124704430991061211656808114080051286223340323465000887060881678616511102556456650515783377367454917733108245670546391059633998279600262753373256207748806874562521872845729272789694628254170863082259828136552461305527287373573582683985995550861540742942454216018678169824670211797252362078930379820923393657150147729233339721146558609011992482305575846970894244702172277328203016572833824476145755090244884300234486977432946004742899840045802803590604338202792678561422950005157993432498928457813248843266660963127957212387291785360257326468956995063769950697761147188615706161282047769470331320197510773642828756753985517759128402116810359980690786679042558954282458751183773509509771717587343633849396436108771300258750292359965046784675918167603519545995592947715171204063367364103791045893077387276735784900399616639994173108069160918319512010957037360998431430535439202215510099141685426028744471074497532626370658315728721773147205772656563020694029942468980934945022953215846815247677742879279687598443935735494303118599428839170476109269992449249847400677077865620256897542493177109327112029016508324824403167875267354735213814244704737033912296231977334224019023890881873863052214613988636675556994795103817803406215647765102575887975277835984601444875914020231063599702570360519135067675846839615615431434263760765233419352461687110296019382689145986445968014713742152860386211245937972248663421403250803987959102226344298084309482387208479476273652510519552506026687210805650025716551138098047391596220339721963213337695131016295812200587949259723531059795274476031717508377893138980504927911005452401313039078420054077485875415426961026352422137789024189556495007141453669590066645565396577112937129258810521886925282577072902361919038549076397451182830492953132184579509633039165146432986659379008232503313206097969762973965910368091708229609170926210579270337994529168402862802998419634803336602184843624516661259751222189561244918198543363108636715007076861700986944035332583635559926531628074258084349720161318816797336252928627467852637938392140155796331011944263559830935738881607955347738819747194946543727658875022472227456861303924415614126098699836658989693310394315026916528131454398110818211519889817212257216348640404888680995162076252004225421557262163762119555428282443129760057427368730582029127157650223290156457398795901159221643339244215169484371621062989788001595050781969301375955668245123502843487107098566895431471987719975301633966220777644782725153204048407349854395604049422568571103060332246650235369206600530698149814876936204797434650896063994500824958582183113617251999360350672965365232884117157532499259268037634669032253763429226250093422531275490346124750359359782463390914715396214225904374565119224212326089089657768671033828197797558506490936916265067503600313006312551528664690794649881780787163059122939100199186323425000199717962856346989232110286050506101681736713514570840201747372040274494643353219575845477327463221348301646522418733109484862123754920674059204125916100155612022200038815485389855274181537277077595745001038697847172261088688582685642753056605827084166512122629713730686295380504309678518155472005034978383212999549316097525895322617045515091905894877446300852761807675019889268418804307818846822261927464956468263588189939152729513591779169703495764760784528669485159330709403649000745109494793098425044828509865704974560004393726026375832935800351636858567957310113505857498285415594119994838286192485560888159540192420196505227749669087592084758370981605853497913256705579206833625046916121489970548227483836639257458890817512411908649007986011861306027078167233738704662476037324921124787031803931005534407974956414477266877627948481520191727416453429552816340730431950469239170965721991979285127107252238621831401576112993569869813862830710195415307289893991281990247297852421116487074870237158295001072408272700910102814431843623067850239957721722717587403956936328366985840944700874190387474366163280929538465976925176932169880082566939970511573133052096868793076835494695104752968520606741309210919347086178554136964282586545677893973188091827770587269565467861989388974585507409155150075602928976251879672316618655472304783996740555990253250974319066292605015304307340039132210701287973142933245086589267333339918691458765408038572938518116239707374274289429975311856262660909900480339436767204770933935783821963294487447051382161570847268184956778478127953517806389363267130459879596049570099594914380873613310532563700465108932858626105426537336777080797062444988959821069627446702864890231334987146342059660920649980925352963664389351363377399421171491564557655942554323085993132297384148957152141682132579186975455513514264940356735611403729427342772280656991901977217519236090834288194002955434032369914841262014833793383503513620299954695525759013811718221395701140658700787802632597405374862859441855281599652814906982744018026666861687249515736927887147361603916094610677758996378208474092338137788649318595605208255225391924001495937974598251306541638491796074456073885450596575575633691343913923786862919691334578131596157962332777331366499541527092605334224302777343709660396538177873311851872985583353805782792003063979861289931029961743023279885024416003307488221134929380899888220815341832136255172273638318987546140823343581472319371280504407728843227169582872373248343014779136647502423140917002182456645628253489935388890520698977965546588637747221216182269233250023027026066848291891138573368265364838513467572207606068407048599140900362252129905120120187328707583540400177323356179056094439499427224840379530574026419211235064522382317692306773196949272181514552351708129117122615940939646701099087296738541925297301969714181699257958860340766349044239866386569218733923610528111098440724342355322045234974541548760638284887855311765375191580971601630319787860950002720204605134825232917950477636640451193007505638706915346702475725742087473644731223917029085480957953295980524152661912116760073476627649060461184681510459350973185423045482396640547132729761481142742844989562771621048653578433584116523987223924186550919016734433809558709125235714152378397839433162352917500404999469149908093607851615232769563357682041589904585874979193231545139460938610167700103498935740934898658999137258114780694688520396743038030337053765307137133598192764225071837712214703729172691088867689673250898246048626624000880194175714597968330849086566585341056128955652734129157156060818104236416977815664454852063081717200450806427511667416561633447058401492498487428423999367710920378692099799192073805847764790226716439430175003010947390558222965553784101811906020183387687148113757089296765611622531092319756409165253211642285637302578601524277427928049387466748845979322969831148145040621025842599529634797285911691369114955446658714404749679717222821515793342171795182023701984061854003497594971577358358265475497745217705232778126704437347511176316928456621007589206170469901149180234814402397290160958252324899645239230113322907173694926513962507389523792407104588675913184342745255525081333378320766472891438998275956971678031442845095584078763523720661357342438394172164249673946684593335300443906727453477618806069816103841209074645332918951006907447497195760638586592331251499173104915165833303167017495068331960957771984746923864409085633300225377048785745432597746555879874916648034601512237371400894394375646139626881310145899244119133834171359372887654941735921717962322511670667798010237342236192048278043578877115717363751233878528900167425063413689334257276567891188526353983238947110619562645452028573817494172126409737759024763376041964766018364387009329691291181979576611548803074568741211162934260772618888612887988694617976239814775337860118344474950816060229347985910416399365573944117672314587011300688417859429296131181202220671267786751779932028343346195865156407496970288146530900443450320955425644773412624368029931007464192133926357434473532569658007337145713883105059438307809184185055039310886687143539526743093287304555384383258755056676488622086022412377276183017114819763875962300859588422406980423496767109681772853970652116410816978266727402226693268430054914406880960294565685825079569911508937128556780355465325746078846754798561041321333301471356477598808013344286104618539796027636167714188038706237109762654835795331630388864298885865325108457630998113121875466825359731755551796956041697070655390999364338846770847865858975233844221284467355026282453593714093096638782766436801824584479707200841102161415842611151867888247846458375377488795027789914594092065510942733863325960251722074697240763216739323773800006631324415528822816829437336446346270420379314977492298449759740584989430426499045222088507109610038110589712498160743757794854421647564272069696701432549398866757580161861311403008325384410521158936616854127008102300001597415850479252778268011115463895253688415289995797986076152576440217629987863623874324390020612395380646331914514229284571513127868247423942290025924321099529218014138383235041943707515229403360479395534198534037920515344423024052393075558240369230663925564746441589816509375312220123742355839817854851228319565398368083689984287320465471698093990829723528818911282038339654763200687843137908770324362080502368996683950144556172585126975977522592329013118239056828752305893619224299884527636654354946569184520895710757298259578451114789347067239615254727938218238971298583088928493956598566801989765253707215553548024975090523860569651292528651754535679673365728582668335228170241719690777456006079250107129507121116936719070192557286722192621282653836210774339186542088354152083854239026206096466625224460971915743570050465570641939350380627368194625115710644702463576032013051517547416260521160565502282493340018838580245249040026656558689443788813744528110809094776278881751833501574695679157015696199611695723557286100153946062661244401012936487861498800307480294411209009827025859076530648439884990113237351010876494274720478213982742987907195936051479374458621806612390929808009171354147980271741773252786420999893416812464043279851240622386423787823097960488268241573757836378732763924113299478552121350348306639072539437892690877941109848988049460839446169805498102250714797913542928132481539588599911012726162245468764571951070250096739308757891516916459603794131229575749699167677881860294359241438442279717873097673081620414068957532487341733271105052706040640578154652670647249721229304288955098507089095492616405323365328435603271181601279396854331708016683954194823987225069529225987298221280030173056679354488293430790493660600440126818775977361451087340956101064961754456186621520006782865632768594730451422132029204166970125192024751360195321915773967012550258721104581999097319881820671712207280122960845569025320064033799156162990633066364795581112109277169207132114248845449760089181820051629215521566149089016492396724424412390382501766404143446208635768300390879105847281617699685489164873238109155541510797053532162513016619948564856814364117760958056270380689060546791318925385393893224357495383543929401801585389774595547179835849627727056670874689042242307484443836597346570380571883085814260385545373410986758651388634976800605399843165827199337010250810054414915443118974077144456613551273007497704168695776134483232011249543900865671128158820959711733610173849561096732953100766778047156471823741398152212894073214808705649727999255988201311153102306205374478972908173378944028429429915194265807542334554226810857163397987029922324830236855845815174404627390651604608727903732304716408775485438532251751369576479088917978651762941536413298540258587982895898045020914307322757767587472389896428276868816681132636426145121645733082492784281438850312860350185604645465463089016588683532866552459181635463375314229811492415596292912724737400486604897711482969311196856877593868285485219252689111387234694203396009146355374572497247665201564044829804383681895120941590093058573824258657921034103623915134542944470297305237280194589966097270302338395219591580287304939885111643677004982474002297692680094659358591386625326422590686028312256826794072677455056918339682752812368762240485983315710628983302966243673907603293926710095353380286433929160522758553318922836667886967886921162742809784386250207757241990332137961193329799244542007264215959011748873302032990113173608203341640468461785869689363175249800381806474557377341950684799831314501911151601911328004573739917941248861025354973902609934748199502570741719722897274497690939005310298308185379896309075612376514173571170139369867438371978918743580292163017810053242465272936752623662555116130706638353193805794899725119136954889405788542587035985950645139611678173730261237612319934508944613731413525026933017884944386496806305336395915387218560042673711455078835943472805475163011717659005970212238901908050598422461325518109167502984104506746120918410393219682073195162260583515976811259574164893876330344591045207592536929913310866108897448363285553529585464543929916461860247385322365129321101552098023646378781544631577255860953680031251023876331610909036076088654304990332550899141737129113392195227251955254803606290410710601707221021025303751136121097367345925294735256669967732526845285663897543016921324506030591089484984257135278818160900658790178406563868195691826857605732733660635372820778369263321632039963173342093843541874211305591881093213405555132367488703671701851638570157830194542646264752842643825855388493461022415613699701619264547626530795496102091883182776011436816410902511332838815758146732083287928776106822058944518443061289464513498139288528691878348703853582409782742413408297571948105306339576401548793568333807760233981409212600068978383334578357867007907741292751887029197322987166259975045183657242030068672219179823243499271641103780346102083916241009986953292418336287497572357265416476470256618557158082360727140724493123736212869730019030588623859801483860430592680332285398750316511178064330536667451671850786572830395852902601032030366850735411278936491649899807166544784595495551444384275480812310361566144156199208142992916211917463231634416973317575481715046418518670536581210592794479384833169370655309271368714361270563988445919044037449945979029165316801049376296939488803212980853901442953230063683915307669459687088673849810568169902585608204480944329238456365261224460808546774273901477784398284939921056879178534946982202487928308171849420650061902491196663634237495419445581404964700549226178533494684934799153546197765646988962666942123370230273236411618925023803641719001681050554819291981383112971545518171995222398382869453854245592300438345103479258845313819266097533712017839084286386084306068209082326446441597014853828128781601530613117821300542736567223427488901633066273055244252665792640022481714172061784995162112935860018944755054277699033459759613018503686337128682561390894955572847144266595158760938321218042079556007437837214935770849804349583399389517863501005398969636290329410063046628764919191418792344823386080372162276630456321669320009860153748413940036477946286367392751676950035329048271863693612754849610666641840965284973207242565281492828067393060073979662715069434405110380250270827789600200084581182247925735079946956353385835306515216325632003520310618958973761326404010054378335364789251448498565889519996490611554053247109563059603489373633662777741116672406252820937133867913929688319216607760357393969908315244274804392250090735323817478677196561509263397290117333914951540844186699410542324078915011212475484056036671798972404204279417555725085634211030580019597734329610809009016275352186164027712589813597949115007902539984055531797409813323654429659212989798817557841431767897138973832571597873337458469103545274395975299333759660529173560642737277518341633184188872637075530403387866539246756323429949225654652033093229140205426732732512860732246287242651857880166323235001773148667535475030179952006008971172518574339694588027256006654502102230046347077544663388255007354942069345837016504574827445290819428983490141472028218777335851416612164222805395104387587992194497070302844725254190058355759971637594910270143216303975577167686514517924401336246425057559383953506919567715403283491546845351030842807177290667305641768411069250533649538563003921123093550562371677367982564339951122020856827248787898644089865659799002183241354420820337304094700137743691750295441186831105812804984170699868355289413346574396841929109332425029628472897921903518622503678673635215855695911711247581784444147075242374576563117506479664470843566189046523237102952445752142260990102255618916062389616289632478957772525006280801265207081255871984194854738324190026276139301051168512505331032796499055539886087619553357165692312155567155611518781145988557868334559440691191718405245991233967403694355238677162256586722811477600600068631737854780345880599746435172345843467208096482151295156164146265688118111308507006051732267659299691080184619084053649755387105668720364625976973104848768715273001351506063318627996062256251998306825501861267738176117130657466356896333153183107476064003966524606078514453366050717168601956401949987862473547561444226812595680660337006745833144979735160276635203289330724084009474186666297381730819702331660866367584769622283590670823234694105105151773927029395147571440461340794682517077996173446707148027897450151806161197295303664050814400135907498416014603286738655690927536521707406388909081486950295721303452337025847032296835579367859418478109666268695456593980073405063025169226129802771611642312135170370963463865131314503110527065820411444944492000215398757555846446809684622882585734114410784143867992515820358189321170903658492531933116184490262220363318831274066269892952020423690468678960855030188582097364382799371377269496201240793516964396472621061255769264355794744892061446821995907531743458727852835297202628797880914491477010297273415412820880630673443499800177683196537075491464300041480848421584485576943529325636186531850060596480553686550240632064082617730475213693485752843800866159115284358235460915341587646727359902905944079481476143969905959655887104697250835157443261997391726664757741225789273014481726008811786609980337832665798729994909025053016361694034368406544554180446184003418737435040983876106584964445006172311392883374508241822099789264331760133590816347879999744883252539844536842054371704439829845423092894100656466049810358000500534766295008461657438727331507138993689294553846905704900870544094702572992187661806254107169766293813738753387803916009593491820057062995581142722465073221502632770792265536015614052690861391493858866170648751672135981720128803228235243088855789296291878600254996186261835651658022506150712032661631029100733746517042843823231853268681219078173000055113734040975921981480925437161148473370461434662422964643430709215239718162367749487258663481541151813983070003396776130830679224574077647948483222002760145384291348539214250445893852704520382733579767264237647303866645433281372743834952614037569915803555381968249797776739024281805426204407094400842550478492458692366508647068659761320230544232718904425807226346492824334833994340551994004732309771890892177361700103000667544222345679413499715951020269124872504808320270563893789160175237928970690980136125875157293670516056195917945267538205631032389163735428181682089914119445686762380241649094610643348465028621581889588422692226975901403351309604697867026290473870089821176947369078290721929092831745697499085616627217688087060064056785310296216997033323112157949059411245315579300439239957865316440336380634409530979226035442009548404526621588754585640158079512099871943483832981333375079242460161885986118949111367697258315640050884391926748198710937018738783267934216366159648591104251912429449354343552308721363104039294516817193048322572402149485285700467784098170402894689381995058901544478893084324811226894834432764847481360091118488603296214298768697422228127504112706777827091095066263785884317206544748192609554952928525246255499113669379087849995290369062607586837400136334163613472687494732972364277730357334740250099811046185288872320859160338563441585878226890408566697874004515854707370134187258008310064800430114147684472649325701991993738940779177486975347800232625769992822902819749345240360965577365689338821604682554199746357681488323853860116608556943185206636084184394533802193093193327925662876346893385244967421617823408783709460182874123800545253397027439142918425797052242234913787615897334767344700565638908677659568058785048119385259649099161861399022777152504765663098510656561613354650210047857752937919333283811348360941016352827474319852928021272844738051350568786568150868104298066489512389627549843994673759093479115395863020016238992363282098467365754845492028388342378148275290691914948683799454049599525557230279207293105274574681225709919214705712353430770976064814195841712013419360664112663603203400150243693932699650654650733450891113547793171500448633082281855963535813681667279360921212489112696465072893942967640859066569949308218171124427708407944865001871267043391986722717644217267380320670493629139349150517249394581761850527803286400536536365544978367300149492630594508843825261720851191811912143088772200630776306853167397505956157170896654602232424034118099545011034251601351913780140980401927254194965118869316076824141485665093916332924383568453907135817406534830038542168724228555614301825271438751756128514421410344681797439584953839225333932437594197946951898650859041953849526743431140687763642182445417287397617141698751785358159645152395077298006327457764571168942180147283359433643912534682974459952175334561620789789030957715766846997480548797849342166581256443679982111907912159035078724993380448209465928866813273182437649151163104412901611279364737454389827986133610670463271490931631390108799571351435419590122446009348043446284030678669941739622717650477318543698634010613551547106432114317202302372128043774594478805223201491994327023762978699543449175647098567091269174120555102273689942520055711619030317167784367038939590093960613545616448894644254038901868195867087386909992798998519019793350868026781823782412145353832223770648604590392209852030472847407441411532607247158418480120462789838287216577995160062580186536000148511613023408502585946934446312380375873889147630037196427946473298582681182741861107684276743411263393370429919733177154064119705889306231217822325205819653833701950797580567832176169898386047266212635714137865535716076379766660644770032376641419673285330585069377471480682337867180809486224829143580046649708788773560062374937588967291977755179330083894508944579602543874229139045439866347321286391239570208925955142945839843273511106589265016495179389415860021841440984853201247960823750208435486483966672231954581345838155501964804208334385191573677753561790947381949205962589525637812464723293897320796186421881010791501652798778328197022182917829298281512733400311783045642003446477864581225437037970741378050751608152416615038626673747234055748080591990823014960037914243340764837106473794241747083926178526482417578685086368487858854231629664671220852910170565052703413525789150005457502065921725748035734799222482461745514759417678184584761290386472215697770020875611937583054909293999909185555217801132298427059402423438533141766085397392397699355462467146654811298926251885925777320215571262739679168871336970216579505214175107329783721954944494643817397922649926219704675334424783905152293834448741688653547001790982085743108867477673354843797774525360968072806092845979457330130047197623890222598582154133549219262240942194115639618350195764695909123933567757252410750221174031576430123148936925681521729220471568715945900926658789807632653809183845480149021065363028463564271424408638069092920813746509711071198639783309061491077474678317085078030246300001331569866608092218025368510437106992416258025653136252847535910164847222358863081872412769538294928491824158694673078034682506765482368446295810473902413154376500072134735430178236664791702915727908244427222788041193822269301628125010988867778687488503254131826088565541361838907451759384316382869065866532316783577939169854410407520477391693181060661142956509688029940496402801516535388643702143591623797727579403827236945478643400876829325298111838442831225584491266731506388020875024601423420659234500150266806622478968530816094549844873451028867328583558947182615967096218962084868998962663418481560333943914447935597902166568531218732370020417351369159993768458557761566398048063836492421744484564925215362048532899706746277363905391882199579876442605506985308946771070513203158271653597676549910799714776953715577255996164125657720958630109332898724058249766126147188001154677880701788496427354280553572462239801463177140091176613183836924444841578819364180128652316852293555276777525986861768755267053291218873677254382440639660209142094050174700401282536873701750113894199793476444375155755238283210281300710796570337723890936646294020807530339022514694897289349788394289632268516821389009586394564171102252786610504056022862933667116793002113411442453083026415779960531346650054223777829938436385833868978498415405700522241713629641141633348340279158730193870052550618117200249141089058743619475551676516332756281034891623290149715384092810748900060356153103956701349492002495048395785506788736728668557714265680170121307756662839546959757256739498106708552412999861503155818406560318425865743991448766695752487292481334106069972668468660269397505374959094518664291022297819305509583840367686125477656732107243614262251174767232555730492620688071112444708138979365536879852244038344394842844993629647454664979329716828595418546562395041640748563956060751032041977693348800523674612494252238516880001464898522699504319001945980035635181195149076054433709229622009013882952504447709506778837052235938326018036681667002332484192953409667342277053672083217331417420225414827831243714867264412058483885838009508312737697084464791588345533854706023554137489460572464023708406771912640743495734148949098893038056407419835066735489328778776065257747515709628690657089094424794606158962519600719325753309928623001118632209931942361663872445189571606075990626477783306365326959434652766171325426628501055899426152485352367847786354844593460026023978711006026845341920924931891263290675093494848851617351562407403809297810085285176182142123836211452786420524391713396114923559819908997288591620337184894910757899178778663499628800220678021403788175679174252356466967536427049546276788126168367968059934215313376146460760466707258821417043706945630773417234303682254209521419937317635392077334629382085561358617455290674458932470219838702865260076463028241067456302242082395308775863365553803505450713285398917638480620098135946922403074709646428946166107237520230735047440482965148512446972826932953409146443076447786846849298202358165377749926584126364408706708952928476719584282678413432983386563516321421456647396156400288512741537182800620952300183272408499583731996626635985359453059917613965599500299859103678787993618735172680969426982577041431267500316997149698252802314881512782309398180892145677252058042341915163348156618384997711596965156484224717442017859457316575170228680649102825823142114508173948688162461558357554363412552578613920284449864908107030423086428026903267539079589284893886015275057221317853870456782410452953217672970947528453703722535040355312201860092276076322329706159428957142403284476612526769913561266227415568723590077827846122015219961727923661373696459750175306783453396953411939176645582425389801572202009911511910524740432139730863841621081251744554167153131666292234166859894582373879644438869921506033905291615465709653449812894155491379560946368880562881671240309475074975985257490900794028305514642796499303160824164514915132090985313640981574223166841573313930373828690655592592522697246678091622643337138565442710851105900904778326760767389344409400703638593588453578140240562782992282788858854570847718225468186147748214542075204051284212170788059511859562974876795800238594215692903691857740928507171152052682805170644125671554260988900849310163563540211853870242603948465665848171799245204144074865024305979168021226082926621905791947886874044221258064064229153961104397926744015920540827649245960389498936801164579404292229679031616383436392964571734629270962919950073656443143470057776121938578110742131070325476087494536664825220839774170539643713934551086677538417765271528658040038597383820880041834908819983911724780834052445543438428899806380019640327028475271595805161458170325438358320259171087162348103235513070807261108029332099011215788905295313929287901668417051253496062258769813544305618775132276777959285051331236144296163689779042254960412446959797153861702432751842729389421327177302427698640253790227728095949677436087504612724852037329887017851669225876000642131884953828686025685942747634857396725684346371405592264723411363556446052196447723515044104284453505525633752461514549682669382077542308570430625516502656547217729361457865698233387281358436043407977311960548142651067383296887444721882548937114691435273386284366051134114403600998175007803545303919006364679872251137708271717247738328115894782902856422345859027054807637336169810129874523336133601727528868993885119499745087386068302982464244125648531258237628769371159675373292574606655984345038472258925637513430472228605349510177040468354456677226404673730048243637198767855601067387422409809207843828603376949197429447771773549041761399304728200555391307915645655168424056822947215779702864883725656929475213710771376058297836205132464809966865844499258172909719338960085524600931652428462607969580174330624638016042392738910205309155088277174695509606943993230910589919394601369893257888683889524493787406004657684763732971634720937030079027560467233019332300383738831755129795593438478805918183044923444664215435942713602597572534328438083108594508800511132313018348174077037653262158484079330407165461344818045381618378489277212570334925341998623034214298036984488686174821044744700277877107017447625713421479776981817298931795499537364213153605430504416364582068660812567211300743942715912801606819252042655568924308219218144115292610092454758190405380322330529799548508525925259892400176083000410495472614072802689930213587841208231178861875611552372949225441518438347665801508855303747525286065637492235477604211519355634277055394179932011203578867740347305452543944416733702490637203916095661382662819211984691184079316020595171515471718670329167521429926457065418401320863958030511827906960709581243233424766353252506132736748344027118348077073991401869182128903207252885606639133825354268043007173872291013801631441567491357699606626641259099754661860235791967063859854645090904053022217111450518166122260090314003907998811569396678887365698750201008353973367194880836146847931087679822455630964519136679903564643245112381127262237085753491199971953272710423408237247830855427840388456630510976322123243227975652541679613814943533674581831400093738405355493645773901881804724427365010309274946827761823368809563122365982411289715914609072992092277126913494698111800245842958248629816895721753657370945197759819154850078987017930918582317765251979613340108525016530819092067627029793728713840207992837978988443077269623310566791657157960782440239937972227050197373733016555339143719824129577120750428368829040995317926178114653098053381812966189527322946695833343777431967603129672004169002695363732699489283638044987694174734443321107096781321097199398844951109025256168090169072033560192292952022168737707015672643680763773370933209239823675231774600579851116447145741563494429465889008884538769893410345233027742961035395641721358382546026140271361952174362172409396876163913343024289372275208227701993164084195373032026562403452594387865386646135192413575946794042217648626784303860801761159096250147713780924102312511803380026697291771639585391999423730058263865671824099985625863415067378401270823883460924005120868868783976617527532832379043187444834091627154817338909679573070215214129225752084500585535247682135764513272854878168638347943906428602147721806635538274975771387820062621608256484757627804710947415844849244981245928033281555623403592803307620733963423139703290370060311461957840619238924448182785669406473917269056262431210867716112978976369196732309797591078702456380980953800221951308592527413737917555217387729484712857129785779941099344609846121333742260421196071536516078602878211526268223047032276305742710326605922810611541874536604048882898695349892795234638350344539178431451231673695422856913726802391469145838869479013173190450010552112423166345477323310873587283969896082335399153461890347212635338575711651493351334601918877167499809739246569716999787951930860066252644417410186132121608941160062391755266347826374230296006322387287443081786017436917134099783606666156943451533063257341512147306219306351735755183589925990430698577166298515194925669751783708106708268910773329284334334527762590443537471585145677858756255639475681958077765911225579392936332395676585482282099114101575689635987687059618349053229247169656569354667341174234786681638194252007650264532750442672432163116450874836041767680021043208768412652216054905250314216817451511207066339752688732167450736265656761530423951048597515241809238500741321290599246843276962104322614266399628926907715571978749946589203216035776261356356366779266020199453922476170841636326071085273379002110458517614222089818061400167331108474047590080918636706983930672611430508025636079248082584208525210654496051933780526143813107334577583930675823803516942394308781359648325304900323191779205210883339096379333277259275846083709050792775051929499845341924652848648275495833150224250508333426407090466971791581304591213791156137124471601488737165080035944659136280543678540071906910189425296218961342458544711053227279660985130401120267955857997388806291909061407588431487263761925802083865684777204907598087437970654600008239466611700655255722704175492710813696228681640528438105284617189908917819914827576507499967109573063081682115338893941456785151792750187828588071202806419619665873276222339301476503456345802245508322863888164247666207744689695972156996981787379699027347908250024657414098024263849205838029583365256223127986041872698210296099159509460346584986013523576737678958870790465071916677655404363412213119086669897490874064574162580317620815271121583309306569099328389783958764164797231828282628034155435349743130578552394547354977084647970402911911327062902209079459823863928074372510586871650133778993026166165559467915587345610913707171205617282608811526086468086594745712502397707444192056488864440081898085683375746049006198170855011011223610460509845126460005072843750826634493338778277714396689362603252748993190417819418688117353352414177517819499775423492203642317210197440197973520143501397929584614945820241541377993230158011656413740683124940422311756765372776475172074683865938993003323433742965593635514091121612053676185953330591597603094823165749639992918131455564569418286743970306848185658858649941742333597551004473935317235503619296233138975209007165532045639944794768617949897690902456065123838361929581704759669234316892845671986363892985781085238932222516639023918787435087486939538773160506554380256371206912359693714893870977469446976099357281193598069356099938696532303422073399681605475883151463050799411039070498751381655480458462806616961254972351715111823272750623380069811478753891992827304129287673125450164593985488896711880882022975171944256811146578600556530649171001358149506804760762593006421236446876456541475926043990911341419709640737850724221527048735588633103755645426930050634841915769955713820102406466133088380198561303477250993865618018564442574719764808010928481760533964042939595222644950111303735060931178971799222134495624052646904366715241360271499935759307442420715931368525853611960739104777961900193121262342275693709096923155146192788168880116069638383054213411293249078416441973535571610589347136347822273283193627432723472400353147052361025242556399077711872873020395317160543672559169112061334435022518977217514011592768440938335845862503642299708997590518907038836256810305510153098385295246045288002239056130012522614014739934283505358772426406959446953277926861794861742134650668674587537458225290016049905947121967920323664080763140345818749377407239231441066580986288741098254796161339501779838139362224513944889586145504483945045849558869337186790521195081638477369208014983907477020564308361152065298867392910865932009617376360861207380572111385076941940084498815496716818445936597147106983803660022174571670408841612903859540913666222036677885044886807619039613065202041953129230208375041889544728921284692322241960051806064695161395792608661311594628212226270356994516382446064093950720447355195562884282073188344981640948371714773267272236726031074457063406934314593600025959899298576840648088226405806310777087634059181274885542668401266435511909863951815724741433756668353004934469913417599943610269021130879010993228746906018095085307823725868774233258341870673739905615119369657866724806775503532686411752291908785305778979078376738416432499982883751098213906797724404513174688071020945656725430349587531858506131564166500635846205051459516626095188001695445382069288599012093440557604470126456703298815853333217147639646614956431148877709849572760353985807305138876596005540025319104215953840306949803947820111775816808015221995978249398708234013645769455607620155782734973138571845171625163386797375459715736822878826596730250532567866872359713925737157340660441303606952892663340643577126931894588170952523656983221843101831683389187716322169287934734284645228247128471213550511363447235240557711649973858896874270128319921520111932990500669136619868554418278913858083392621401214426761336203581339549396702138536354767276078725366999573071134282896845375833750791448758894141649285380127081007271745327523185904829846563941231238116840979206968315053770753151529067020406924720354190742245775027121103818030105338112228448378547796803961887220128598141254945243383575582465446261365646210945571473495870517199155208880400270434438025487250023344685868593002440086007086419089210780565378692021069474110240239233763902633534343364033705179538641345345502830909658429636352864105652402132781609599201690824397748416079298549067224299177765853450619783684843020051210699957152668385888611480116016508788399794264491072382381009761399365661807383377435567549198841964792894902632270396550354343137344775213122334456628947988746289661303064863972444004136671147712704038357157980931477295008747866122223565531053912635679710523118405253451525194450621028381262522810790027019047061049872055784883053388039547827314962376936449707638656724443082909623052359008517590602135316933048554895150567114229482919804495308677106559298183772732373118902075651480733102217468957066225883932349428342487699312328853139500535717294441812710811052612381417965393353306550853123515625331027362986794040839675691276350205850891054046229272428572737521299237073571502484804812567577886300140963350036646728670678533198387553297813741154903288370235037703334246913305881976382913245933685548914556765828711550082171399398497768330569969231056985531167487989407569844190180845646176604668099693878982712132946457474924431883107945414150217416572340336113514315576558209338185055964220482891981104923198952904986602809280895016910229563512691579107070910162980838812962543625177661484264287412967359564791377385390918990102971135265053162691019828237203103036945735311127702688772072383233677607422252373030538624294009054848044403156417145712905375680653694691178941870279872246681745010169761524077232543393712838592183808476034775848958357810744666703667940244765257450198173820027387346109989635053591101846423601847738483824000845136691880029429909775317082137789811202418421009834202890377186516353126221489789081803620254843250908925271157279199213753791755021754967280723273313900647086061920187752548558688130076338981170975966726601341264513657496210031274036165676553807186952548680650309317487469947050264528813555591162625062584120795614384925058221262364418206782784241921163622061557195473375463977390049889573490427400833891677366126627225091957460243485818717049364813582577814280564036287872122847637148710432150934220260204738762528070253691294108093936697345477458701330648558853425146511207038888882201613457917551559675800476709689777692863883383945832381077016291692934004008497368678006342957247815399594733717432439405613563670922862110758954263452916045051550911396111393030894231155031416644489243213696319852838494901928212587291734555894218062229081411751809385245075159445438575940249373386756410300713516378419901769557429277752059559779135263221332729345282835785442710396902930076150093281692293572575153390101642024063989445048616436283166106686078631596015988835011771625393356265377087875597433189161437600581665335483293443072070407411340180850212972482668736143954586369975142584249791576888099545639084638681555166050692989604366276844673963966996667258060232342990871719159772670129883177129939513795112708055007452649536389769960875577613227697525674238633932843019568801298317016855417912731972974354607539291719272322184589941618473537067855839875350154805843562358631222495063132773045115940227701201389629076223685906836949649109297525752049221100719970194408701543376711226441581654570915886426853848943752610036757563445161131991680631669559064150203199857766147534988380571297915266152425377559977387551235884392162127903648761562075466094900572606095502203972797637824888172956647670115704022818451328387984835866727074124121360433694554846862342825145943754515251174251504089532297539404085898008978422462237838964222398235243434818071816324097889593088407152120218344050092762987474521597928678247444236566061033097356755196338855308731584371341475306517855958565188896895574613331585712375024786949303387315351910070709816761940790165893730867113026973419926243472823110249448488072952205253597158949480182379695679040574396506006363049680913356795412113588208459878470151954710878863228147553973918478242780420516798400590480648326660525837025814139717620029291823903504110704199375834680431835580693069912721122996057425265993553998116732597488575612133768472599859160448346799914393946342451274631818441988130411519471874915055197813407743238472116383765871814964928385921198781598790075897726841600967603973517840894600099174704115917195772629244937697552939612555200342120026067379564697978057448889326208590864324446378687024262749401115884545764968694405532640255752893798929714138964222993551630490104308919010676616608553467294703641804547923829078068102601750999484974625111436664676762840825132275110707147190934768428378233146044759857069514498875547629935372547696280390117054658789932423836547839320719274144648479271413661357261843553031957591273642394249651639892531547767609348953915812871560068535356713458711894156619700795349024312773468288602896699492500755730853776124822702252825596767369351742863840175639721337841151704787597888323539874978854492978212104517088958321662374901125650642303815127884568185849325319550248298874026984988978366866710234584150620332358068997521738940301143564915521546979725939999970235329247013434078786609973012948925533259822392566063682762345615840257838985483170542845488284018276256195133326150672278618947214009319709350983514483861192471390854408339969338435923872190562496235530132524688840575520343162918203956841300028235660364925909625734857925530680119930923783023864543261773572860537147057978454533555294824682405672055543745855519509148367542454571144647040975767373698827184401680771514390326252831377147499293270216929965360684161999367310908406184041093992807091527430136418612820899689930923178697787697042589603767252070874485457700991776335931451765406945178297280235576828859795254235271238177979218085198693265510582195133676998299600967363051486686543206012400787040467544083640108234653099335735514383224715894893581538059844493146236983040392098974314372604516528344834151228351645532527408884680651072531808568628878784979914017540911174462114054962393989494314741500076992585840660538063714206792713352994818781767830051180722520397494340122196168224771157939336379643313550897449311191164377206428635409020246787052054916893378486773751843356148633603612508444638456900067794840332804277015367111553616600766765671140571947097385734176897399489769062864741346141808369834657474561566086865519184678644792344049419088095643581072860309347309987772721392983959061917382103081282003120511036041365825662825282628688921779000689551951757924291824926231250185356589166068502137312179596677908684353627313481832143890104332172218627475860095113726505370912191587397258227636295261522408556354409245815015745700360245828814620524535681308988243307359353675783000470630872148280223357407483021841829835234929110115026044039622107523100221104298454130604008622157557502110694826004139221417119037656500759377316158315093644221144246061976227519222475557076650433345580282886671877715394038323504658296368928815235271474376751039906343787460478363721055031806053823640472894244903130132043975864748585369220773247463999941530751988301872757266649796751204216292546204475088444022350353393187988714541967174406982208495934508012517666442795685563795885283614759214244509792109501125747829691600564741639405279342245315890093623926251435047705491735100154791040004369492708351352406542251271058773440015272901960696767309965329116472567677341600408274362105290139309953486792949019712657979890171007462867286798454797028321638062062320825419469811406353957866354618144979195978370148474391779153339307648957984025096326180180833669689029790037110104912594184628868279417661537817746947527652300356865749223210722036657484223262577964783001189954478679773941777932010959961815123277770600991184783428397569534173066404773165836558830072310345006958227735183362420795526291703896774448226129270224973735010677175675399517241351664277858427644695030003344313689735097856148586833134653515838919774685396081185900774356956281529163645032603556206413842045698426492646676139744318254965602935588414257298173860324861503269400108041426837155451183726740726716089879969376711590529134835207858994887580756451825945141814489472770604566470296045479983397999206916282403279523609310855405247268508778945336091893139984362739847822657965727171174865446104154463158052042641952664437035821115474534127493499546949152786902447583346900974319345984316869739799940926668637408020303605821824099447657422789237667044477527622369311342098695848517968641620896162746699444992186137917185029274539690246662480978751725006827752496612445178111681067396387700884677430087762089326964688720383916420310989223407610807910733387100469989483343848138675091445591804682226544754448940772637075584307405758623733229088712646184024115995295062770996655035794607131905451281706110066752790560585345867056473505985218851837318379550903658304785247620895246072744925313028895424877809714890747993284582360180970320002464378833819048958550804622051407654082717257530427729118994502422614950779330620592051348262577547430220372268841380813572382378533295146557968560121224097771248427927458211093573082509315080341555313950058154835002359187498521201679464122423800298959882077641896398702232374862298797968313271949862152003209304628708495962445677487022115167380779013061806309971220963605493321121967644874842234501747203690457206482217528387539143905827254919940029612384407547198371823717846892462115502554641289605176036671453111884566103970490606803060603024849896613702093198209145087398797079842053557445327255051813146172173237820655012884690185940515137365500432606510234012921025903343114893459874916410335195090150166329047075168405165316614306521801990338067639646347766805727031346154532734764633621555159420563014369123052151479702322994905494978530203044736100512664547667676834839033144670849705051713956943499683607061931279595215149137947163360368541116123281583415513126805400270192009692482902002947241616476279594064176170172685950966496979941388064108727512042860734853477256930814992781202581934730502015932338549746375592173331008017157157564266943351716671868318109475054807391258122863254912786228712885457149382640956336202862556849472849227441646448804802160664174013481872336891550620737376190746182242862959340723861692473048715778512452763885517435837063286381997831133248116602870810433791890235964109148996690025609369724886854375889806809358044297459658351305309926940917515876056131608027410713959913224738267702082980249599124751753238668919559252768271300099057939726074694098610902401136686461414310406735816606920793567904654532618039504320583374832009655150306412493737924129086259327747638513027441499932760925282321941114287819593231820463489609943479051935519649835587272950311229697479852995509936905441263270240229400495072542356575786810761664823083283812636950555750399347963920892569286782267784337746810481814395504316369566649949728340675227230051882095086472751430173003336762199065096799519526566819542583267298302324758335510880956390433942375797126052070176815758241559689178459813845367115693344070898378394078046328302507571339127827654081215820700898637250980460602946688583898901755861363946928660398750596398684016259758870060097840757218642834277530642339776319750824060601738123481948146140741745462222616106097206325207270997687592369662341207335954892856678307606906780969121224130520033212910770598712693513913136619942117906866399241414753073673360510138224475946488136908321932775520210984152429786610189809116318262319640606428836910800888644060893122161897585194914332550012699126039302278191329669799155453319958354459712625361709278710288948220063748327178477790426682093489167413764890123287177250089854763644910356398957643689611009980951719637992070145639411545871340119975003931339635919050843624465147314286092546712027289934738409369665879358277494293925039606821022506708027267426358213664182852135126787438613465408160637017490605209489437027529783503929425982685910641594802431468532686521089554472254627135481098370765290005067579782804110930712068085923309737425077035146218823107643120181630651197693147751219622182942285361499471735855771909969285323731832221563714922234039338277947163167474319758707396846753427622935142582278659974062040563195434883552116356739757122369713563564960590048051891246126269302466969535462101089269584252590978475530007062999536192210024687779205151513482244274244042984117311731086331891196856055561474705562097046973028832928133915140132567171478427870304478346270865469977386174341583636912662535380495083955990763561482336668001291957505432823006103533243912388433578754663190662468650137795467483232012425906907853828107565891619756057639462580720958421708408972376137527582058999499283204496759042957997657988969614389326852375693815906127275966415045890155211309169448351902369080550538384992694709383081477582312323554998992715011673668489158762647545296413780917425816562507316732843421472168939157864190796714747475880744232009504805213600725183204135902209041567795617797511432420506260637870411404396922036095643468485520303236527124221763042622366387989740726256168343077972497563349616235728176449283176989569700589464230397253855142784010976454536180816429284782139392622008636747218855680908283877938179999289219986574965083175420395496960126572990425387433831251142177941940152358978540022661509772302526844987213748033761329949850339487008174655245876235957870920773207160021011382554205820914523296081785388368652715081360331008135238511162520739079733496662098764621605152228989230941872213590363587276659929735038606260272707271818847507709063960161974310852815829067370256918072507477693889564214518295805649644169431576189939997117762509988993612720407728187973579144300787646752740429475292759196977582607098490424979437407005311363970699877369337785329189448617771705561094627062391893057240238291524525440457211763843643535694357560888857406898447065385446885164880886812411808720021048732239433331653345276542741270447497700333050972029902508251778105348628301620260793849606925979193693495347606912942282798387370219441985132311466829287697714834053039058871811538668533932525740717094081256795708320053216750318451536226526426558499394618924839243344936908838342656366265722656939117293024329272655318492471031443601598941617122388900497969913588889244069022518667165076254764861986763633805545617154561649876796719572683363652649589190355992774481034338653398887473019791799223077671496244539573496528779074390111583100160623317528370921935288381381364424114065886519451250364595730540600933299693510825589587578023423348755851438660584125366330860532023667658493928319297706931973777947973551029712987970323496027834491362361872941152131510824209637864767472558534453231062335522949377665367713436721125789421756016195154090162131835190963968074493316597019869547476944430910061284168233954831113430648839817589423661500314155100060756823379957944268044195407084617156549859110833851465057576248674048689815277237464092136601397575029924523766014796664001623905787854499079441915428106021857049683249252061596501159309620287336621248526299449212750165467501646729576011151503145499816161550057385585643803916705164706638852736990306037742903561545956656666608082095807032205513754091949175410838302065794483951965598424512237889888254431798849143297974202796142319415565935819679313617500335609192835894448797882910153652140668044685745345015213756497373802179092596632184513385343094460078990056823438850408751437496821032347138916994267240224241248274598867559667331829609810896683519052031986979296255380645789849690660013592369212349826002625380683378369031258959983704882846732782327840235417493154057123133796895039924901505046902286038581668396906119509696513450495989396638813403106185301484019226916229531741607512579280155354026114179694726705183396467927935373481306838315917140234957920568939757950158091275264959672628736695517952028888452010385325133449479111151452238769330702246736712508216492165967262291672551813315329516590160065046740576007826313578640840651221360952116547477309896381895474896242900945181026748182275335570327363119671067802073220446895723970243810725232090069224448802336656807834447375186737871985558071962840432852898036795616982283929319412663560595649439973177714581615778222113312742111006396167988153416030115682523276231091531606823953630920515646075401028612606956522085978589276239983317452166732239288933274594316301000290691456640791375333335199722497530773898222346093109664301634500137275577129595487017374058336550632758809403416504585318749567194703657990299744253898312308600843298527032421128824448844844578951470335756212010783026688034573412636653183970678467850308317682908536339893398215351380461833663795739587192355578441454141225829805911030353066421878737576914603936046774518503828135213926123267388054663282290271522071979244253884724089013189924712775836320455825710527026544108407574418766486503443055336456853099133395037721849254948323668117251299792260844738815702065451644986928030157199779992973724652001104374870832125442781584324641193087066464973146873085445082521294373411468176367451006586631016882594784827554854206492980968329009526805813177110950644671159366957682620102213345402841014335967052326109183562914773285855130347397372171919142125135192926033048596669587584356419147042969855901588615982512264076946184917695020913001292702407227044029514319588852910071064602774546713572146559604192966816065247084021166284326576050212511105255204216953103997286734410001122664478373102549506761820881141822016680299379770867292220755456137062786655435884802021886839487930904006866809862802616131493624017143704989801864790796860219542554513594813872244391256557476403113069890018555576009519738068329073360180530166426857191887467124294954365481634795382197357417776091211349880293070415409237175295367292010202794122738888750372989061812539903565913084006430553965105347815813400266507271770267171572098902377184854022351958384745719123456899075805332733357272667654997543938145406961956808102042237158145675273702565773620908218741024994370865805411270286661819854735205039659047722053391489526813889409931583762013834871363745984873180342642772092532026573770099571686956302582550892538837880206146212134537167502544743521796473774618887691966163268111527894884005984111790926389422762210562907190241760926527096238250642855832143248715878893429150354333897699703975016684790594474959331990542708726717345924098579275707645782520112429035302246037050345633864344593856015735177347749389896102826488439849602664385387269763396113682960485315527289328861420818751314656589983497824258619221470203611376699315339415327407678992358075520527194437780341111357351902413050042187836504691447848801267592617195191512993337243792279027449262948615953955187986348028093767662158602774322051170332754935112081323966876026712537745014326375692900265780595756140981553743596438445094053091691154440729197609981124286829372127855514560285298841258359135316599543450093498641298762977356552616884233097343804815056829517670754848837707548534184995890928867691956292187320935040193424552111086446427089353434219577463794464169152089012911585287400667638100929723851765177632930039572566580251941179668712049247273494948493551816064379623875609089848336730064234892202151782062523361363319083856082705875274387222893044572564587187308164211173008050603600736127408794488477237529713071523633527530409502953510739393621661896043166909348267491239520501530889102252280381155437422580987578118358329183735312960860691915213060081315822312861075585248960040432006456804530967534478195962910059516258318317693252358655513285602696926047286441715035489872529433771408722460868798755009222771249021000724543969581872020969799348492308278849600453527228846159942398254181382491316070155911343752336129394745742182718089367568224630441379705282971790990822830323686617167174588533480826018509003279245521237883540058575247315935067449039377123577769390279460717823602545332135407932675856318518179962369898820674275886057875802899717957851165026389262621388990407761041858119936734845253550119265444276384499733549081510612949813260258510875214087133625242057423916950894051179060142071631821861834936126718312265194391353926102166150853803134690476805926709422179040891287401981514428502824528400218929923688489594147354485421901262750964183018132846586422011432338561887318083406873017616280336224137980166092096881938841420041859782164122198539014471726288178120979935269961056281321134877656107101473336070117361789726543639812410036281078165840618508715209168460406686252040317259497355715686929717292902985071904997758887335829237190303054925170005161070640368960443191171102218474195038706476884441602076227177039423884149884071452362313263109888907804301122473675084731357001538133212831036653971543142563185594182949839580492920629103521422223194278137853595564080645593065384706525852873353399254958260740667825991114469289819167157867372884178056919128558755385034111341189117486137339089374516916080366541020149731203122006914007294095914962641746251078256367439647856950505799609991176148015115642990626458788771031484723341046436892885177673956084197775225632551521879237281788448760498757632097323454654498414960501976999253774945773183326501951729655305159766029847887708550714508555234704482286067243769598550885479084655210395909415285661216224431391553333371877889438547152148565030104968927167366287473658915073019611784426339925244740748793115787971309235596679010689324477878145260130535621949373135333245702523266376057654882794036555198441108370925176881512211171269204571576102438015874279165314904194453882472882558433151961418010925423793420131365921041442747073866920677275826109742272809141246184731583449067806265895665596454519967345515029266624307104201130441031164921727903121163164267940405103627013053703339490300828153699491041306018930745434663278512485790162256917107540217271186289341982799845654408775772339649278696435640480258009200991507571792147373371647217982345251312555478176848888577379911041886898188718291956596145396457886322303858012339668982322031787712600300327255063683826758886974391856514268652364812071923958179725114054494636236588798133789330180185720989506972616722331180440042188056570782114065691874885400450518233170721355594800582804616368436303281427334918458237912405601772235770161388282072815987046340178235370483970583348359802836390873571800561416814952282592402832945624880533062878943584388544678564087314670144555786606456669363429392006563608530758926048670584513877467977870662276740730703063193485138812896928176037898181563328596874604685048006929722751205951260208956590800691145742499942801091765422959107942680686398843458676799858193469459151628160862506679385913992384444661223881096301228457102529487757703287985349595394232909163161038136650957020779414412812486567365025976335887957536119442663922475166877819025204792268200214438596862036255168301685865089115522710970570444866447297615302570510611905792691804765616697846763829999300600406550712673379723072012603084898413366757546247957658816148740471247879988190673864913892943429986519865597914647172535414125899629437604585842250144841790028802939901180866899470625417856449284432928770774816411462529213471235792716665253909893760943486272550999868344932195714117718089817718074870747637700675846582546406818479662907894200162135462035196391056819429590127782130207956117551221713886016188871533189432356404937731916320159350990913232228384952338349358125152102444516740321541619031463332359897795257159693276476245349046607771455826240741718987666883484374138134869326569242897647707424722076322835721960100014319585229841541457203150669003260437653020917761316076718907782589201747749109756736493543281296793526227304048164439571485852175987401569074053088973080375574084247943846629344930840128286354811474327907579049716661281019114875672476509078095342742208207390914030583252703738030446630259625655481748199056251711117564091715569327138147027763986553157091876089288279292206586402722158297988901804945063209865158764282511420899169071330633441595245730372750743456745408928576488868722210782296471474708466761603227232177408375171433377443256483276071673057847240072522709588253410356803898738302580659490335150365063570544436632295913694790245067578664644174694040763240495853259068608903619006585622413012493552803574986462406549895148775045100465406449832405076264630432791389701394516123220478900290864455345201213978470369874215749667702398350425544563678940433669333057119840659285679474271368771898714028615555720616388917697559001594920283371303233804671960510589508294770201620523878770299792224682124711052673904626565783961824530501776377038528924497514735119473920240488619296241040934344899278639859949599843135587920371743200766469260891043146990099857404903757749806640900140343252773292004304965059162050466194647062924139212276302448407213185457096983918639231061198499618955019498389607456579226617386630237790645141231036327474645285621264245849209351227925126414495101976953478420431810049616831274825065348750071787381851717428488966473359312156635515916564688991849391327211899659090860684169196662211055900501453644193975741302668428445612049011276909624313109696797661479892730797813534574308191116550186408434888279445196877144789340496582399107153200838278050729177885023888088442196298122150533044585452149877774193306108843805395705200434907994389390879653481070339755902630681352891070244921929588478620852066671280646859682228154113021725420718267770924272585299860173716170943538305085868599806382658900200279505602618500527218404239381412377176315305087831031106606783972807115251334653866218907936067032258675225686213630425668088467225285980907329621871413974369257528902354062587969312125290618279166033848547274432069759126159052057763947327715946309850012223200898916118347450243750286584612355943670523054797316715042154936896663464283962074974362220558722187920594016350564342918149932894655794480640946245246743265257396395267597254406192903194736130003292043614199240612265588718282609442694551767010159739982060385454067034182868270879708766558406904992272728565059288967279853173500555873902588400613657076359063855624284711006367596184070488041701821401145178985191088847038666835640467338229040823658293801292231776353273745155424127444228376739440853701226558059097012677947046695151460134045863365948566740650797936128523901588340435932815046387969266594232735929492401272492515466789793857856990959903657104021474372517326461952372069155717828842636455793118628791358959450020978742018341525706213123930768852333264035030465651862885002015404918069654935192154659283314902640824832356342115453056509776957542835958625183832257668562147433659313278658992063183486203821177715696037947469508405764643740282922320227294703002583187100795020994862004986342738141323800669243512426561190584556860375325407592498992192287959418273400494767702331025748844601292569564784893132128138635050248867588807600385358969711436930891490517843641431597898409050162101233641896742944687870662531197968523194876079526231176468089585361816534089363600959008188564673675415268305697176749390233755076056508659088177879022275592725201553631208584787366237384410946591367250576480083599226917554567160209429657019206072001946686707775640771196471799736779068481433668546185871212083904648175863256890655601585318008622990182882535707462907369612933094094412961153564342086806618483459139158694246308175441535903153030444688876274641953022412908549504951552639204896196362577856698929073785186857596322640009621519167545028385329489688765185649462066347377727172887179507436857886543521577060382043730086010784055004743886957079955711137703269511893177162142847945668795383959748915510602317586787065358696767611815846311826150268587242458684257668594429759965327815444465961811197685023690418961419742444125790933444009515960433222942477716188025843109289497023139589885773557033867491157452056602887493856176201727606166833928029849183980107082391894507028629839894951941867299188511492425036085201922719823163800665528138453873797189169095602659422827487877876786817165634180727113491362013575883127505859085698576195415937514601981644103106530403559687539693447611618420536252013482375004799622562182322880704233637995119900990934024687085513874747436340982320842061951133530303673697740666238699503115262765364720264693844349535055480749640587881691099716052264304177356585521747748929073664135916155606264421871694755497180305935440818022064781427072010609627410580831048770697953677291064307653181918897077313271481116765790255750953709466848150364955209026136420159679670612710861854449708289287168665557761971465412368959075668267910226694479374023740985290860935011265663350250700187422110209885681340021544449841807662852131399100694460688274254844816621893463270666741118916484747822780382517948013634691645944844405146412559015487761014215452227179456776500103566931236155711016525316046122175118956596927371369584461112264283482247107348451927158728875821136806805170403324156808988067815195501984947367570234755563160812447179293172861724144364574366612929669763056004061548429067848492707993249249245333451465948221231668453858405997129297646179991524603334180157580121174254350250407768553846476528089344500919003018931521534147585352620667891761629627181291286487922721443233212202673263449473040194719984696892991627218884855463749111268523059822387639575220020917564112923584653600752589931063485143210970837096587903941232919739951279416470365387425764569348233863399223292945366648781608251227265439872166215892594397379720425183165016704017856102844341000106852613560292838171957214770301395868751404024988973560348179410296908980788889048343714456832894731101258292073312272733474921568538337127988398054232845508647649721045825076072979580255555911801599445201299785116173396194912759956536872452304077498525366663132711895415062464309144423121266590123284565032669400556700743486962191295331257617146036307674701919295838863152869964594333309042637247337858349790234556330861165415610601013141283409756943771704513214511799350132115248495783194195758722509514789221178065825551958343978214602692829483202600831276923492737411314099221760973080619020936812620785138852978654895457480146447959844184887642854160984200675265789491482133495136418780265807910529920891437750977540186197442536435272644165351072099794632978339311261843680409153934700034889447424085835133483232243242708129525528626122277698698610161338354799936907738505591983893555770331844272065366434930200803652303073048981257185765609767304192032769251364195600600547810475122898474785113123492141212699043571001883049722489146918596993978861646488576817297135425076875054560446580324590755734985142330498555683877103622129778032301209803383217101013163927544788246050422944579396452490140705330189046665610733341699230269781149912785540674177374103285001163658188684455066537068942696369692695994041875335672854717212026835067545892655376144931440998951205613782764293871089059061989643984669117111286463679691941632089384088971577875941073867706996125655032681314986382550272097365813071383654594078960072979368557078240249064676366406783704487669388105270551883757648324661162954006404034841846829021957320819834723492900211034495832862023228400929878203447985109741515717640985852274061871896630932223969962821702030617541064911431408146873195076255590534047181974168172436729164198585748768808248950103665400141273778886262534266651755898270399723067767008996092158921355629663976673374509853190008868776120073868151857251460893824119597996203273400817682589060454674541119721962216676710826672107515940808577590250326007575556549175301685516878720409560648773277336204274698601222672586665737578989901286351486044077693356521602040687232287249698341960865880589687056605299805341574579899417024887038254678856569985717803838055383018054065540148969931957226992837355607378158772686974756834410533598286424715872996224540839294306519120910679291331494237458525731893381200652321745015882757199870120704241396185786903532235680428766790489999037768921263417596663512960102243297553358665175801682333155748829813990916710104034543957594052040571067719615860370944404644844017757855592482080651026078882404061739627069172110986336161209136473510958114244833493334585141785731263126731195856243233546487678578630497672049370332193182172231968699385721821986721753783941873762857751745187530183040371777434555925848313188454809068574040614780627584143457288884936527412013947632266911135170039347941439701230607682070452314233066450244081652866221431995566758950646055704131335714814931904871873675969278711029228774575517748185493847966937007685054042329838580578793355472326554968506143734283166570770315459628747245554170042029187994081555516235109821468882061763419453891899621804719579715341064802378338992916586738350839826502968605235633495436337537467232200238232022892983473842216385384154964187726822366631920968358145779518673546827188064449092571146136536194783908305732622193433465685492117012030850792886212592412960411159278791568342009071823078792975349661040536234677000517688167651228059461375524945671493026644797748265667275468912076793077913958807733568686406181907990469782470114756341626469207796701634372930650222677988940035868057405683217598879064615752390210606638114915988599702774028723313171352387489633851706379188461439788780956245005120822185650788216697265568275495188307761316273253991693717885244500351344440865380230229466910336494832106939609723437261124973624796002973176089668001648033416427054626492690708718179713642288939158200313972421503710259378142660105829987463153617175095727023970315285291135957346341335126315199229167824359639854760761886625230398305086503751458251143288947028455318277672637915539218540545887299217392734023214346391635929720372064457870562770784030730708494279998854151296065763519223035204547766660594973953823613675360081141627467195593413499197339363281623290999175817840303833587135131265016878048153437585923093334331138327329494881136699445369401528501051570100139760583984508933025220659136903214928352618763681948794724534118467044982339228942155074138270221285955633429264232523972233217233774235925926610538862658484645178338460355101826692161895108323215866353777183344761376525939115963547006017175248472185279071733007845689213901862905539272032045351347811628739446800888813608418710651265342482613607846337856666748369509974350542344368372100195823112885919439246733729327002273910142200384347998342960407956878718853946506072973069783032150512397400168021909659139884342337398839228475984092991159234965541282213328929024618805941942937041404483170219044262145620439191805531881602997160599784610884165133094289720322917821503009274780707047315946036810614495764587035235695110014519712781725117516741128887720920776109732097041364313805992900917544457608469329398474555135335828403635257878982945020551385016762813208011192766011846987634485693172980667560429623620284142777651497179416741292900758094338580047698079363741294141794850916349459492418617868904308441174899018769876711182062203419510112471629169705745219783841673136509868689773843848786354963335832077738606847646566258775251313684778149293879861174307642677703742267829665159847600953680505942963935598879392392541294870698461835677561281938987325888627736563332279221705304542935438045493992183702230386944987809208216326574975965068926827828544616802216171739206342748831350653304683268334202240463425646672487179973784608600288418194954732616781652585573322131033558340212412787712195314802053351070217132434507837544879356879759374296011126305554285778581127805247802722903947721368365750962886699514089377017932192503657674379119408804302278318679822467061383275724132758678482777400379649044183955662399686152615788669542610607365271178899767851710992549329621266982489485884651421325675689172014617960029082553283294869202440319423662592975914382212820759849656327827365049969407857593845540802507791919526546260145411587708682766888750902188631706405658365165879766005282917004765526295625158047043888076834268720390340016105275841659935305838576887876095854981653990994163845145619478852051669364012237437308879732221044050938055251268742536718977639105958903764535210444101790450645243579633778989488668777740942958851685685719944966993730034881026722841694689125580374750783167999644233725418453185211219470931439958406659960838266897265596710713757661029576728700609130066689858000301515928817519600191485647996617932877937321297884486036013396349469105037056077285413799939393429887800330559568649572319848990998589422736802401472395319391463245437553218761699455563092555465222948040897584432441438654992739921581292782616137440017687938246786563869916931545346287179599414130569812070603985530830492629378014969602644793052044112405010815738479544083900512142764749510816665313270098053775888174380152115777124144024697663432787472013506017724483813391771877757894346491005892123408452244534257998579843636426590033347036155730055323378835627301311970346257114455460120206126076127754262027723895665802915744952240327026912450530911967000994850626042571436466004440572786619360003504163664632207919681436867440242748792254356635779311536504027629914821592142501105971431665439407131979832135979244224971891667272453570085843443810000051742216377602354012231230329265449321121277849433817043238272634164803737954526858290559269369737618346428668990154147156687137278700216167211887285025288803324241581484181200225205436762571644094715291108098359569358278425288026195360418618018351697308979977305921164566810972412730952631266862062228329820682647886224090179215759872121409569852095680024766533343513339554446191923480201774801833922393071898798934818430761010106969358150013435002085507263961629971094989496940844233498595164368655755111269521148354520318650005628366951208333001797704998024725098510655938973423703674860066697728869057081800968949460901377226231639586288806596245329733251609107853849670722674339459725625817158780096628247133636563176559220249786531013921647610947070677591560785958405913905796714299963143076782326891884782078376242170237325394157141308205453187550497953401367274784838662531445326375251397062339851376032500157930371398306468265240776310137442024589263232345818754042100060039461147758987423828006197128345300659163127320092669311769564776531592455746269382718132161344384006400610646551126275665638069465533030419785884741464651863250627575632588327500130912888523410669817859066124995573473746808191593354072272556257665923428755056947270254158520812112748727901761560493943321259874047291748768159174002024435457589196735769291961472001868193108057496229657098194722867310853276000054767709920888176762529474850558462861622129133591027873408702436351271520279027261699444327651604888906764976459199863107634941106208280143192866949523460732660591050303679250144174494767318230712882859344671823076562827870743222373266791768109715734371190054925108412942536811756841654337560497185142789148400699638642834948664633832206023065062907938874169391453838378776940832010675040395898671438448421292555808595335457184723845297474806533109405950087129381117285190984413253733250586109652047423908504143545859203707486309239931819746751878460212999732964935828851635291864107724685221955665258048937084380278957783668890874623071003316993250153824331994703119090674296931511090110715573454621686672128154059289814355579309342265388085838947305371153662777743519552658489572641454801644725267644003266094905757146885577309844860798454863891051524887428213275314093754973237055161029377573929287732180808867810104410941577289401278890564072803579263778383205910549365359709881856541350288796455115289015655968684175836278301920942938197309203020502922168179490385411169437474349128987439969660375199474644376914666928589023773369108335639973752535503356439940368926543474225416273388593754645153933185081576093065535483376710775914594775038815204563528446773942778467357560922858430334383763513217422898354230539504890857838955368864911926509532387809694065804671473461309853260529060601864857693723520698433895645572194964963292861778031328695123400274719211757625506047720596424748186005717194364226323183573288401170220818912685754361285051895112662648247452348294803887741787432743275946987303330238767475691697667933546454884847717435149746204574698298567275167150302038685838330011449919172278634323498213863840518928982671976773820597023811329726574867505321991709691413167388864237763113271906013550692920610591272218303935650706720517545195907253537592584412154936768667577581879381735486091749604754868904138663251097281420104904699849777665674528626948383358100700610183512825830802455159447184677967384159828141919221658318673027700643347785480224441411470841294121220981812070025578886958304184716040551591924329490933563800675583437118250942508288957715194161637203425926629093607713299312230332443462554055477935374228915154397369173099425993168411391418921536687512756293647009638308958775142630241709545490491383610643845294429505803143908808300757495274019248143262594434953831204124965667454037770264075039449903839494037020256628482490969119037255251274742140678107343179763456420391518120618257879166439399416978563833653979359655043982214418358779617821901066724433301829129218244900515957861782608611403445362480404118028112800747375057743353191479115756623385739523136054848717903071459822466527729583170800158553197143434994493506433138577093403251351638269289143236964477966360903684124166542180926874392414481265109568054691171545607896539355459232956955735561962626311716994189653982464448646510254716635878632204697838325979979217100763002552096521622834536172758186845504685777422271614458522778208689436002430222355035866915496421275846358471156360279216819403396920424077137099756104611253758339485105279240605021570444836664272003527539615255484550957573997838043341672513044468165603067790342074992020996238779009752350473575198102812173747478080548036902159007086219994327814022601992370995016060750305533635673087556544523699421182230316905480680457814209604599737785024224473887418491253246140089307670378133171559941641810035267199928068567297711629894672422815748175420686420079701426148069237807431985963092736847836021082706998154975571439035868006755428656214089788507165892474331325733760438491984519868563508169729243141233358873790243076738038693781282389197438392779375271159930214970095941314484266011167988834422407371291499873176301510183555691085074160018788929080516923290177790163541228621372863410711761462447899859967818929517821135435393587871055218366876422373969181338949201438397185703557000137856637265776184163087765999949525317739497417599570050359353629659669401775004862768676558064704092181655087343528569102988238811694758836638448868309093655304755463321156951123582625312349576598952880067000908993155001347461680571491523510061990450946690228247697706205629548332191866575330405012161431955459368710436043545158977117330334334899796395064432977915058493260279062849886215023645855504851461329752540111381941960614056132014923254556935706878722598810840180398541942248120369430725044626437677478237173484803681110801436842026972360888236263323685403772330057090468229746330923214473490511087530874308689961852774966005700732424758020850267166118927389592742456019322187154560597001028596787985070827607923150385834970543669201871679898541794072272631894025385629966795003932301965840015448219240820302086368842855266090964625535121424558541061441425303651408218187274168090486601959277563711984103412694684205591009328221502292715658050817280351925370334325799474535724358592167219478053870007302009300114109037733353855173558415351786999070668394855472332136603709952287041480133762363437423331032260193194699943621835799407417859582807175240399075837018569010539215886258872870353216593606479808209817686240085365669830215111449505241338639601868961108228318155908361600665928077462237732544930448769323372448906688588251464363715808462185912256812368121272763817898117441942216201043775197066765796695241249987575148758408104236678525034800617393434315191942046607144660301695799624889761593334011886388793115945343579109508756624305143001569574376115965415101747643765019985549322215475879305850229779371379003737047295075843510684364493097658514383721335545382465451547722251506516038627261701374364064387529637104853483012312342647653846278618003394892227707349781779981584882465226050409425023864173427971724914286277622890770269315042731411889403126740612852347688219929739315464448095698171752648895697802340377592304560386090713652077300403912322585229409190780649762868550527237963241164901089774913372432288080696250285396542559894253630208692737841267870307956002706503441074563985720849942406719508112994100306864843061223811443369877935512248027723995194561288470250435985124342924478423179157887302988357827150991067336172200177478032693126198015448143079898892337746782933538524209928192986137568840251645887498403044234477772825382669821839008962905401255079953285958908559665616378455539952962225149305344239068547255696120095100843399506620840969196461805532493698752497129796986589215522171070412824834605829247320096915223147629537639553583347980845056866598850625772220079796297234960483699887797111029040759955027926675403808489170970143664618585272981802096167486458908662789183817025419254016655993844328344734212560568007878758483874682132654874172473920320891616093153774808266925579716569619901654023810611975216157734833167158629744319827355553076541373164812769349032924370384481385902529023234780060275171563848077506465821026947110738621991525883191418291910666976168792133282762289958856958604330597827811826844123544483246477598413129822521274375896349038132017857354788821916870630514359846846904368016255208437861970219851079397862164253351259722905238398569870426896258190426285272127757192372040448659767856337606736333220843162656412260108965818483580142074770093321415076739910946186960066360801572943988326067828115422789142487306005662576191840756001754629839926647535960427230019662787053308382639117807230437949398911107727837219597168511805713977773217587181512511715564372184816269751637709798789856894663721398547122033733275134408136218969317141954609260473910695105094937389628290127244756919259641759084987240033092144017025840641858817899593002479457502202721058088564314587714662584292419281929543058551399368041619679860695749568588423308503256569087046529005692316040661100106004152414969746863745904600243950595542191301352400555161115568566408656606224943772125549553011283904223928190315463581762195807767505500735537595623106589815251375308983734668267964532179263524032505192969454576488125986318072445437793208985100497767248411827419083251856175784927371110444856956649751409745283852810590942500145221441334706889724290289798456564565204010370562963379412935952080058661440081584129771662952836402099493947886500999308969331297791256084905033962872602717995057359723055674555178720520168254273060630293206436032496191822898393189839664508912305108118497426131575790903491864939725368774432717530333472567104732860888919479441320218417924865972220863398435895681300891776220119448885798919885293841692385489475435781957235245888320732887618786648946504986256288774205090743374921838366851185842959278812587321058873808134425995951856111748794239814438699111976139451782169662024343419664215459439294650716331446060912500496710562910411279956646963556388940475322785437700244068785545630536990005382857001379740583395135500157363792039405801494480413054793730884757354534402351153035673950127941024810938231692860289762971797725718126669012074095344340785070956972633541789758050404274494507547015832406790480157320544901038449660936580390079299036502325007649407606152575633785541628697097195827404014803867597904778987744460791705054438390254527794061582013740565579946415771785052965310293475208974342613158487781933414426403903723134569496149551825569872718368689891220428234857996234097306807382755399331856594323342675826965971851012827412069493686570425731751072476863000069859566495533152915451042441222258506739712530235391338917560543560781461747037590034212825529380081484482769787800595073843924499627206820611424310569740935029802744842680355953736031419665749499357606761143815412647889157322049682310248927846847035942784280319757628503173401527326648597619077273952402408984371407184670982394420763920307144821057430302368718801687168562187956464616863228973265215296123884523904506565642147286856044737991027571275069878198659743929692423975482621814550841821275135846982734336628891345256542751525656431026544984801914417723717771092742105026359462762999321773507534162599145955206451409098595207079255122495751544807143778586448890500895977909021800168593236704066489540651555362286145641702887958309680361525357532324076271100609059726151121390042758201954440703231438981123812242000884227063630944267776230244166719793896314964628981078382967375056400943741803817263194188490649673824797745891160583157771778613773959979254572908440424263541689992137557243486479595092891625756261260683552289741066133793843447240520835434552819332850307126805933942021719822588481980016616495022271772568008979632045275149329423989099000032632354793597564222123408435273353714047578836890904564023757576232165174469167420334793044354770231140594545399575642076137480381655405801988226120469752952711602441220154737871729882399361423514677506541008151594315324291558038575641737307986017182007054611475357977528819560099129826295548428642494780301125931728286783236788337842574096341385436361485867631730633707299923626352099318383421435147003777795963025397024981635994620426663006856692329735765996607394337073640350876046131708014539785533691948458162093038549919700083718520934227193216234647083346769566546674025490369386698560285537764026906233371555261477869311418743681321316616643707063075973057266126963795512099762246818471092967158875970022607006632798931667475819960018768871101405234545075270368072283008200642375046647196224568672912716051841725955911133464854739875238679716545232832995468568992663042374466226569329662795069271633790966182460951559618956722197099446407725237209632802136050229630283072478036878762978006340446365662055587132352145965069933390728613559386952103549697062445187594540184595628536466101876046540876112967659657259815704018098914253876518072061876958063784379868063178131222275528924142129029322278943481719200186176658747161029932396578939218705222931687093491336914006270668861919505363779934109525498457383671192502244980038935380424231631439664277233959254533295792621964837464741443390794529122413826980338106357640785034180758929565901897577942265503959709833862769455606165204686750476853568533081358455008321088333531922571714366107488624184588643551549568974842554134676993656414316491773170626355810378980381522036879260591797578780975888816363517551936846618114739073171830938899010840323413410118805890648342614429177910284929513394647577998554211096584563456777490041839936714676559170256215984170769077919685997701087623125898321255944365566929318536544475146000597599759495131207567031222157077318676024277077693657169225699275644566858717571073566748151234479752879143278531788886088852486379957444163901822289899429455859392377239773030637373040529233841368262615404242074519770279867831046939454550142058955523467614967191269879847327912168070391780036990998122424303872880660752457217785871538658896891749899301553023576012537772544429325703471578300649217888955886183048857170930401028968085475083915900496209123850763727904300069980507339829230163844817637937059532456947727510041872675351329739822242429199023361444339449128045164011766791062110338021277689545025307216608482081757137629063995177983221151573935757321370821868339999802318256332499113970367784642889746351738544050154426531862309946626710848946359508937793786382542563610829533992743769782465515672493385401438434206656294079320375194452396111392918234011274975803254822770864687050292415203627021535991432243779875082975757822331250013531001223817259192914813852351140242539174722112082592276715723986891263340517746410143147526607472195850866346858277248469978909112757508676843667890293130786959546496186595153091452891525858678995930737825825564238314379299648892540519924682426757033255309915442499951651186577775134896504889389995649644587922089571290409876292055222552255497109955103493119881005393532274803759521695410199290109982991060606499858465869068021433751632563279026369513209107594413314969695286609396669244780666053061932464890962899071597962835937342945708506074637020211162343798701176763572640805527770828865728728128582960951625482893391533913106351453202584129637067838739411923319452918151244255344420932222037600170632076185556136237425148629841708129811319564356089537426594621780204305489734512240954764791005269996924020454823985909776686723475288622908006376274133943779954415040500063901068698306623452502842050578876707799249924065481354045859888029275353248346433826425852462949890779312468057476655990742181791205794203557397443400899671878008476752641232064763714190464665452497326147467380081532047914509668517555115260500297664966702560246432348287649900981163605480521942879515565647352090282777357577444145647720015674490784315435321473907437913870217330698665284126797993830717488415060225524815863627513391755018346119894452930558994693978124521171308786030726520713459624154849635036744212799643874991060599603009361790538073368539272692465811738143830982331185419943536337355203099577663475500269474940744187948244746580495145278230486476863848839158211820251376496968917303619810274766698922037298848254173285807794013567952699988520304188076183326611588383886767187553501202017290111884565221583739946088250536418515256209808772249178816793023596939017981705283030384840692593834610076952625583733260656181002226718106276831189649729781290376924444008176933511448478173390490892945051224088154603939571973782315907465559205233500567479268876452003797254351170860764381654824713864448196831215960334753059177708992815319575954479809463646740769918337841930483254043190970775317538101575375673429141117309827388653025386747863696184755689075550092342018502526014194890650437110051586843429593126932481298689275913611197330069998663530791351207273098207444329063465030630623524776809858382227334919699988824069414652981567314280966848253247232014568636092749990943551499872183023202672448622700595727114341140899424700753164867908682563897172668205159139002720625786132145514651900102863589764403217020548809923407466543618842923027826392846822223178961055615891298883823339929415309405669706875643249281036898983253735845409611315705911662260195365481494522490593981185561667748142730781360595606336070943161044062670423465459416680136370857676893349200723046691927920135402750749686473570096722973191493491781896873990487028706690124837061588589426279592374648197905517134993671585512353179568473761300541373800452180563863123937575804569064884533083068586092566531053901857308468884972428635666976987153888062505503774883945349202150866450958943569759412170709789285795547791815785505654745872721907467993031693244118122520918635271634146073800855940088076447322956894140442675109587062474386730356447524619833618152629846893063495785196068408875706694685443156586056430885090773661868842609877363213834654840363048399440378070630628082415452446365737581048631289362832066583289600940103618150323241714111160650225754680141400581437127080606407397012564128029620459771811664631920328629684761069950440293653203655075814096937195181382113063478106291427381345773255595258791017484449074711711343194940370716283560980207267106974022637369216826724916819758232143029518990001389600576252356687892859173834232045025112127222341287317042138315475326079414256784770155649311745201250476110702273866490451022497813549882758380450710349936190974379692766982664328147949132996202323334849008047430394961434089667459497953167978883715283750918154293275597774048639594495600968919524102190982423068213991738503495000451423745010834577970361834485675395130633078116443867195197793675443271040701185239486486845649133910977082974043252678401815815555887368121578311902991188414546796180969618908922862840177726727739540771661699467952966567743595828123044873666270057930611012603309358861866333115864954174780724110420053947043559181963252307725210233656372696345966588725781537940091794065448783696735979306851055020880296055435692240943311186309721046819217741682938862051025215421414451447628050762956393417146183342765984518437725335091377044107354440897864321367744960083425391445700386776968304793378042740551893120287149832855655627810799808181254495419649634811885732661626620682854784862995408011782612763040188993655632427863216409618748341462498969756499766268565289254753953354195525833366418924721569320133415947591247869594803330311032982937369238162563071286853910383133201978362107826205278819885158424673992757472217345849710082438437050833515213073954437647954599844807049255767359595958275569718395045620083739283030154884205850443295574094984779726555722863914934948834626461534792796250733854963706956129851419828610924632056486216219443357919605164305246216962709597623301148247856206940068528581201436678376243117309898357747552344247939817829865397723655055531838908294542744201364324365311400160269579662723859214567323273305400136554727818626137510511320028660718101723317913951543192145462990521928068099419744953825697170076712099095116830330133953628883734579197640773232314614570141182484447607124892905663529094266016652823245425728409054454034657906536590475625349480517976124959653126738019061110626148627566924235961485207011777374400817096499848170890431727510606466743711536590479448374276161790262273459528393048089755901284927807272795513615969034900394877076526152088566168721398002107347585911840038891451955099264613591066196180127625009349451898766964465768774378388022097292380045666678483432936066800451277669589396866038423358134231839803656065558113210865710924261383245228767170787098958918219259249748802601980757450703904148322664238222661964622021309231493915759790956517958095790840073896199033296010497281991728788947757020932363553022183657189652303052145248893036428591643541606835910814557994162998088831565958554852709268593464187175459940297553756781307491559764949421619350114668892639414958975987802218169224788761265008685092785415395315479063168384243041333682757608622768370657558264159950308677041069682355640890828514216446438498573904167848381511036818468316557838015020105865487710957367724414072658585863459509469906941254769654844957511681984784993435617429565648762313368080848635452146192437346424138366115258389123948440794146285074568753554853564924004706283015506439119746560208734689763588473475667973968458156575751258782285732906907475481481875574222403078732834627260835346916527818986172148332850920735630408831971093268545473222180615045547733329068676571657959316312057581024855194421516014205660964277201843657814220467062257205361304669017911661789671142569608540479136908012844962333984444273457756550336545214795966204544521025984408636266349824711933525566007023123391298271916556856401252452721692960261200960283997717483894529781558136632213275799439283138566348791756883751170358378576804717239115441467321902244053626033773796192479451622105774980879909919329519797440666768307147370245295450841518190986751244500597484934414628979282200316256808820631397940220549029246766217965669790636923032204075478351145435094944563184121372801287551468292176730764988811679190274541717439697891292950660119684873962744659188570436576926743728111219584014338402440857067321336334185257059847850301319671277887385385342400454011669912658761865645544015687901020542497122472111347441629057446116025672817124949595169945684750394156082818664075548791187956866278774911693626549799844754933140671909705953873092980214094771691362740464192505960414588020954676476479484030768988108606232133792508732222542265793752855972547182926121065172309381081846346189780502280546538985201470301511896287936387606369219296049400335821694563830878640126486463470178827817885756554353372968874643739376557856099065556866443570731973260000346608281385528013000533047386821027145760754559980905131587272140109080350199009827989741580021740645227436811738470604118198560131836332200743106037245873731853660549378366139146712252030494451653494743405825781186411271918231564798379272991511738607268056547972507041833484329720600785393866121501453401697412154263434624589827997409719156403851511158999684483370290017452071607927806767624504051717265799895373435746862740780771940703948204923620042318464400325625981128072549177976778978490999635836921218035799760044176183259593494944099161708064000630859135170769391835147206041941479673369434124497361745990860179643433494484343108232858406756136161740842568569010124571983772677017261500935531207049308835250515631536719963060028703291028554611351244212803831401512428008447711909239247976362780439286677581474196581487692567805753947033571961821704838802685157106722486954197196518154016140444001189172169282473240989595086207867308757392739892874590300950102426919722665513412044220806342797069325134094413614748457038517675414602357789443873759257635385891256530945768525496296612955698138955067739395595873776740857927702527214504065131322720777151151975650297524899483523205864675936858572354476520230898385750110727158171641871487041986462655549383218465135683167446491483746999082832408800623643313999822752193862412624474548119938015121817317700489881122266914882311263574180831742982157197867544949268593847139402015849486487044675960986619352435915744060677240383177789921778722416342332169115355804580121457521486545920508019153285553320326467069925763388720188527497437196776126159890527751252470711678738719363676993526781556296241069920511086350552981999298932334077662146109001687430890163594915770572867527810915219027767615298686398687092813556281264922961823485865188559971552176807778250616376517964728614140112767292318703226645378564593728533945583460548227973369601327559361484412015366170721484843098006832465326882820876849932770996029874944051597147954825598294966886644818529380943920290778867426196035157567928479686177305654747652417476772966091812094724499642520815348649279680428008124377966042588443267980004881842798233026079694712267977494330439168439165153565184956838971351112220094259190842652710193311244457600927065729602394505022372103744801615981985845012368343873097152985691749746159519780711166653529001355737203462149678492696103404735209867758705491092983764836301479131298692170319287469924790473245376271611538885648905186008505790605352385319079486819151756419656907422756347746761731664611967444657058136912783436781015460539840399464543480238806287425451427347790240516283641859472027524384036087177922437289454215790522330224623899346775473747425606143424105138856889323328508597665370395377625137415519499300385022120278039405116962685285233305932520748836931739129821844267072964323628317817228063484748652974298430152143915236416329355263627233990058151392433402082466427867433034885936489586639438493253352962028553131479316884918410504205658442625360090347398042991856525681272154243227134042146939866898868760942594969640961915035944013026901838159281867661820370288399216890128906679002078404372029335583681250992577845124215843223318115498887097512185204783879242880880966779976415399152309219133069727975541676406649635076240877176895610415435743774587000529599501925281337452007100967337072760582346465123291676997150702940202340167339750483593772679834736634503554740336263366903091534379690117440158730695988296830678558593939954635086673107852449707285881767586530968629731142431175477285674367216292960472326071121215925240216543687958218707960910904260281100843354100439312616655859018965546265543157238644385100694653644597841529335306301750007229972193663071556579576206398392798394509486076352532999650938210209020218795475851691702374401482020776003079699778662237734560305567542261233236784104096962317397992362885520232046185096521817685056261092222850865972326906850899208352652926166158900506570482163047132717980090280964842911073814427387155517328631978247097663148586667851437603740153804658462061723442880551473328769039736515501864020198633424271295659054502709366216581272321834458954200635431790888892202498914375418779777711368485617355722239422978333534051054848791309827194060973730918839852888114818695751508083595215998232016754705973644394821657241205751287682651568762826197947635710597145221499302694421741282834133501787065930539837708565593940364411625260502879121937840530602740240690737982413624820909295723374385837274122750310095054361483908666551851079965276924788919563077277015851275113184227428879642093667018627806875796334042894323335858340229074481791931244786846642571736981333113064128247092297330539169014102467195488653751074255560877113114445020781602312584082817350210001809322284483268514943603763247651228557222367978848444564015789693100771049441592269866679218763148825768001549188682859479987807778100458552738457214970072985908106835084334419442560121127637114514515236533943410255293659363926106550201759859853950158538215809370851023413732493259148021100734415730165902154093133535712400654364332829109542771509662920868512503169901457233711054362247908711387136246831901983553511842058541872627576649762294039821749426482433766945580076720201764178622408800278748259194967574356816059255260500128076000264299635650312683197633042729059731734846011762151030065874673745752213604510459896181678828005032578742486419916302985130791845576459291800872842731324461330984310705049753973582829108177627650120596434919630223878540443416897647723306130264384170931372039661801254885498303909188982927304393423254925447389064960040183235627635317843902680000842599443206337495184350804988187188887300026222884189336485708060295761776170050184279298401357625240359951162114516215323435791686219583177027191647128241202295159856445856994220271133534731456310501739044950950233060805301501996244222987736037507196908006335406066698334788576511459392710697878346915093491320685040938500826617379251700723745299476938672810324368889645587735421474826978549587989367553162150291949664696975298844213157090892377996092111608673599829701393499437265505138707422674147738855759356897478089349737409995834361106596414728535099603217363668501926403487452122392951566507546733473079456255658824239724789126675466012582716694737793602763975464348247695949636204856441978506747964997376949817984873903561238117721392925113950049900756095275306241920203535980126867081618796286885227037945958076562289719323139821317179623372026266978675381101999458279798235902715595341135789575630398479526232303036379476855062180466360431813105832447415161520145484355874738498886687410447778954545087325276292917232749365428232958372567063851433401566747810801796619650451108374528353089067092425109473919232786488160532467433153333552943369977062436071504053477832685380405539574381296308580912530717721248460128387086951686154614087377254738378563970823970056038375763351393800324425595693851006964429387741836660839325037389160148963447623527282727895044407786092566223351712784416146220341692318021950499456265937599984707650770745143341739380585684943852779923267744118757222600446997817031385629147292963454744572355517684058072328481160746682802469729918300725362398708499211141226804949516781576492691173843830497536267759063344483658367156912988661700900770461199528536572728113107881964207360977088702092731753386625330730219282437418373538637356790270801499260502535524927709025945378726773734190844211414550647267734209150034646809017146920235705859935752061380035275720319943681980596367133748390513644962069305190099169516573745465687422571541262923154376883724013747773567568799403137236914468545906464200311535078091513774611369921688297427888322986959602880023923683575690685049057087802545679521176746980567891601862641097494661040360875747548161950471456414712146130869915710307938155420978408469178241975407590968207266768281151833427315637477862519169018718082194836415316759613872064112407722285954664471136566858520959901874197955768484753210571754409112381980384218876022149027964138523688981849576659906402876486106626859789017943430559359866129662399693679393048994974511940332494960122330981211601864028423693773260650450251827528481764558856066533757247124819385618200412277250172684633307625855453478958008275069990376548038754620019216426988904199870722564020609087697234916434980327051532120934716574964374027313093847809424149390870795267510257444558872270637350731316888224656824599587108470307357408548269123625927257469350804097319201046266030097927227583660442991055093218329199823129012678622441651928531464002516299429509155943160267565789284204432993233151682975186490941941051526810992009371987115574757508553031652692600172650887780315733321936958976378349784273657555651979039160858373775531393212534350333768951913874809169610967314271135416522376321687362587457628069363096297265451770903740096173205478535380825344558066286384463491624547112669852449182583909079481340256371856203149224749489360638379471881286746853467958291691949683485243848392436845370035796228882495958132095749514221218635532457649458931426526122679717133645313333635977602068030687197958759427955304600147902020802619380129888258454642828899282448233658849023599122858685390316289057609876387782053737089942003660358572809024340888347856966768152889619841137597122074465511806639162072176987134723559160301081942459472969480543650963361683383849354482035603022063936816975996820555046253840643641766935381609610818151992356044710617097624186618637963416715489700118659357864658087513326273566907366510255769548184897691785046254974278405787639283229503981296115178400775599305428044616042202391301637050947423761918126708520887127466425478725298490470584155946648111159086697762532907953830495480142047803805451786015294089908627868013133278009215543694061336085641074892211905529990592903903418826859708385215156576262147385935305557310735673394456271502691195877649518230158785583040464614000356862024467855295108430450377143905435941595782914312645420343707946438106474849264935872308237101647485660175637863911001204024958424590490121266667624869289522841407285763520504574807559849822193052132369760140385736440600385133912618553370044422312234982973034775094511722278322595858072965265025179835317271955717663149911182748040366475527731917528884235824826439542171215448279684121644046506691064112417261006448052044971299510008683894527973664784252947239913768078250870936941288205268862041861936773456221976017070633978665358965926754617128019390002058370591216518177816828561068034890233199130816609451297368129718516061502071348212904345015051379199092201058947987033030322345049470359880652389997521957268878459593120443392713235030623265086477052882788568291469619275564027476755635334988653015304362197020189206061759539049242211049562441497444736612846539058857150621845738616123134799589348538246747824196597468502913024357384386976101789020933895351523193461568171951159697644191385997893829700752267648484603480085829472005909901012397325061998274013023481213865829477386628952834635312462939306016243630438022133046514197033189954133350945849449748820608186416837266536772093527675043970288518703448782845775736345605396785579409007805107645198413834612977139613808866890198075808926702421776168905621345224436148019891906343604206607745156068116661037007984053929194432160715576228850163180077262370921918607238844345338615714110233844664508167411432620851895567692333022869778591591243445844823086189106463397257275517253711538510630839258753442272068355638746447970309419264842421990778941229053119402822935489669181350307011500984548153278968325182420971651953693813924330494152545770571342261730242063759298448070814506546616899901595124184025340937482142064217722264229035077434203943536879802472885324192518766719362842536238159751213437800496085578241920565182005603989206737416468730934286090388467571059026569114746512680959055635158498354434292755782833972900104527583371335884354752085914957950719496103984607680710598602173710876079772150276728454557224753085577073940058516024299343341115739607790881812353734431044940782089296870060887034832084854813148444421825455677300681498783062915232444726073746735838168195484416720777506013174229647368396195367733025740454513600455468104234496758197128307354288808182789584469206413195727657803944713508269720339922778938395879339226121632527405406453352659799425084248017550341732875892224656190108455204694092274748370678329476062276488697819289774152174149104800412114632199268348856764157019818610599710968931111591353464762831810819694243072186619457855942698218066112723206918658186001922596093798202823472816485365631470888268327789137016965559046409265790527023171453607973731126403675585663678828701820830600003101892510495434158428535642272396323140810203554419434614045451273826141865786869006808408373923713989322761069866889650976192551979775845789432791744942098114949351036631760699816192738877678639431596429243815518482997769416820327685173417756303096781107617486288485229328263127804702610121740760287568007835389082124154608516754789050683593738600214084929600213651837190655746125890201574203551939526109081435959854177737678641921185586988984081320784175792496507901534683701750985170136210936656469218118020238745331851133862931444309683200519839829115479208931293550277796392876904236057787900438681330215041659126050092396185987308618352638945779750382716009168832839887598003012028011236399471998177626120762460630102779514765953484611434089660181941654105230193052605074866968678942242156922232945814626634630440925947695543319407744265051295923235853052540615616815830035380651889439599524951911815977577909845223072048482740228000989667490525941066255947270484927582436527452680456666821877241919268299486320857058360494684325804602010099907922153941176867812071261397826578277308574811185238500443366161322043651103241136598849821926133445040093374784029813036931086530617713416239753541613167763318775829139531916479945770618592516589167112384640062773008473731574209718795417669158280148830456558933800212205153857225266307686427006586800469865109432735293724041638679406326813181256832629823702977630023511811835289715526136713838160566536191826972377826039187993584646238057936880793955365168690674676392033627234181770840720716214132042054328513945756745771047773966657466992461134819862191476774688131887289718034661380498952433650499542469305203408761639366629601030184867103086083125384767433432173103929511935594560128998053286134003201251751452941265727081588784702007657259003969922706482302809984803206936111699261878551808710366932030006801140560966516243174037817303120026305341769332494867560594432263491651886963655221244700353927530130984296316434709287404939807334448675219782843450406480737854559964819198263661165974360536941902666035594195673721663481647008082935414605195069910470693136693489184262321580360108428815657809144823668107366272667839027575973856879452715484280340354807016494148549817224145026472768910015990987312923267106969149555553069606813991937770687400203259960670757310974276125353684688485797682905618388800760575684441998982210913232540136518517459557782446478373321341560446404261765330491554367537107982740903323085538267936548367372148643571149107647802692372221795799661498850511056416794718549278661577010968463787473411208175430875131985120989373546633982732637822718874243275159463812629074682675220374974161194315100724536068478466804988265036777710079250643053099380840148789787049847301203824751879710315713218461883567958399836346493014239842898571617989921434714101769527691691181943965039340940296570589327508912578519106752299140282707896307918228882580582641728050625203117036251564777879362620532760928359191200823588331203805242234025597539107731774675276124841625664006380615593582246370220370379716221536539557915768270439335684080538683141772114893756877256317398494645180962408235901809194523375125431937896385888404498261625818367565741364133228074565887033962430886436524791688772999904245459686885772082572543259148479187451020139562729917727038279924875411887511988368855209623425179163644226427038299396974822891675147576953787847529197897489830303842826293998135332173291554834882478434984758027521147600433143721269109854643109397794645542589833482482911483589073717192624032130668305785862921203400118311074132689366822775696741079998331898035261236909007333248372369126148474133314428479430213912125213376227340111876369037933600733931941287584635395319522975327007050542693814112254121067344627363159338416032865909684112081505906848038554285274190902160123477934927221052629172792784740692103532595679574279350350454187907432990604796453878881003903069170888164855273039856019404295507710727506065998993884807281426511860654177224700224895613523064243521674756745961984911389628767709371564836991146287273737783145959223098390364835268673919183219347155949380349326142426277934118570802213694580514138731899714950159245507771058666694065055607258115053942621607909655442350975223740455818721016413680349610006731914093210434323081704445946443421442823215625635581889457227126776602612794354118366867596200227284463019787638195401811552252759975095361415468809589860472401075289395836197565450135686366257838757280896966639523264164474485093336579187459847673282407894949363129556836354478529174996165872474501722698906294409932122679691801911277584531068760395387087262939163345491041306292792140458884884781174648135133346300560475298787989962948647939116962230749530042172407171888802795785858881655592573588443214584603632935357475684460515633287144394419809203797628290875501485414459574486474749510482773660845624720179207408305764276154520848889209650914368764132805091674395534645543527422782546593995036666595960073844106930320447124895766425672486516358699506217928392520977982736590406095522926604027452870274952917527828311640348473287305667746211404578463010931226688283663866645173180309006039138554419510223435566883479535566917078591159380782109686278643819209047557926863649326081571376305816744468131688798326330506865789816518464566973068933617278159069646858751239103447974331470331188252836296924152713537436107012509822745264089840684608674112258556718607359320988648823121730806594483054011894569531851523401668052214541504997976658764590575531848687740605432866152390991411649286156485497475040934861393417187472028302938387677470832938884781107654747097168274745195950790915971245147326503638215421857697873695803155079702860687809999836107676943920439085933532340217572204465157566945103589195246757292871758523110235348465766830138709092266061781987407585790757702704646612541422051722381456711050555390504365219548521689788521843379466376529936987963202604954862969503608221870917874807047741573777009699465326280200535995605287984200362205582619610847379994471196224380134481221085715254498150419964122086819582854408614140968479237932557947935304606657901967920522122876396702137855666000363359369927876090250314701391573470272384277527080052306382419170279733744832511360096849175804112238609131622724443130253027721968040817650296033512672990094300577883556807235396624469649416577063022041778652605204453903234152654431681707442021377689657425642337469112556499027889035569705870435713669144350779081551201747356561170051725518338501302636317079275167706422227772861322044208406806147159713493997110307298389001773920933888854867983088878612272599982327124635612673845785180537693958635406533997768965398649344643906655294624855430722744394624554685940219480408439486437150868664901484781555047431812510633383077729367549695551816201105331307821567107850843890119209013304395209243582922854702038684742831012551175168188428413818561982801883305292840401624319412038707543583724290726671008855208848949822915532524275256467216846153007056894612618089550173080337345411399609070957017398807944577659457636438996146971832841201348405993365498874713547789861175045079842673656619722151909999679817412208846791100440939192422171346724161928898467483499477549194085474592613030762071413754881223650564224976458554762057310050368352057775802005735040295259621888232070391847273842173297891039161131287304463629242265323956088282202848649353749356978881982403219682441934122073221953783586179168104795888969551420742102794761828553721001404598714386204211450808238655257281620105916840903568323925801925375930874832627878370542351852701422542392862641369103451692548068754582004232664344932188228298331489941332295241399544690248892493819834229431746477068657568552003603818860090655979615672563496697900030893905138821917418717284035439753055028921568752494059991245189703730896919826811431095827131807453125454418080907934723869225451807960984285001253114442125840301686702563284182203015673859362240072899741870153079190494000257522662067479783860498367155744434944858982318583968658692501135290112085009116759704449761005188328925096507851523381325862324303576694017853360548491511519840775730538299445214178723673270849243493773659673415433457945631019847888203915334226559457970792941943866939265534819392798671851584103933082734150301746567093835022953047337637421519244496547625481021969329527092414464111498340538263809708570061906479538683070957604950040103289226919947593279195436645603937986030802570555713248824474317447079001855610362515071510488318263747138559666045649496484122850850171831866391543559860645130137378961112552997972527655036089537489036703668394076784124792621284609635251454732963450807244167997350058630221420764083814855868305127739650595897942773410901207553571800157402924486065392528226649696509088129414993615496481347085559514210915569350319017037837608539122015694350793103366618820521346791910321257020759787813996571736873210876285209494897067069977933164877378390927600974324830485431572851865611748143093665943161735885857123292534878305534923025824990801022585699133673211368350662669384606649689425255006809782251111827356612037164936407242505067800674992051946076004840546046917976420611409083242165043710520672853853530136682929107758163322347568524164354835407983450665604239353750249553960621447211905910916831938784791442973773023017707167228104989099684953712993419150553632150227983265007423019134653253542011027534270854767494076302520486716877642845676450714074281775353372137904481910976324744270982278019832869284063526311401636580131193188912838706718362622794983652551388474846945567358214172723401971231736499420942357279578972985190295144867366616783527017994783441675855923953661324521470521634255987995920161863834164123273510256762641650439537838786886778329357079673977419683495792977846375160634363339617525847429277262424515607651576463835586446281014177258708228333528408734537322906980275666954474281063599107132635714455003993022709817439379913994384209415273826784493352983327044376494068770156284620125983322421564806583994740324969589623173025988522413497582067605877526870818272936798964798840629970731875243865323041473058058112857911183640430933446358443180768445681818724983318560033446807154225338039678534972916422789580763079247885735325670031750753646972052842757810944051697968765135853790639284266527652068105757798482797505149584724441296779922377940692064769887144313523945175811144340434748964074139727262268138128571789759730585896611573130974925158248043728465487360217164416986483672494605167038483398438958934395779243690441201142101432090645162220293951578712949398072206752475699315209421119710112495643703321265583384490454683017066463731746588510668867621550322317774970479150291620871015386789844080692911361614261787002446163030296873605545873361312606705767775146597591704151574972167332405656794411544654595505660504169352367366207292686970057946765034945678343478547005409737821654979265853052696252597451774641023728784666516431058712990572073424486977102442998601076165848432131480890570163256368431049949745595372613906306411192036829944000572988792454686547334004867097913024735816331823457315550747558934727533586753834599931598759238892547931627241989790475434403235324085914405430632413033318432817835512932729520916966654354349542654261571965931329109577880311648519300923509624187154756226911334202802653235349878483495984669946566294054395817538892301057992616594593099961932691324315901753007619009895821331957453883957234884485425672929590678090758434540546772547458067978498092256861949404723458100784274231831142470920565028181457350165511841198677824686720792056911122861386927757290636977119412151250291698436420342837146552371776704851282074003204237704460806087983650479726975290896699966809264477574158677778688948948521170286685073789406572337360495566775976587633293168080980348159724382086127032796934246266655350657452861619480072672998390797532766025080443217272377090094990570210328799547116253868532020340930313028512429201221533844831932379629849520996877277720695022239643063398004284121019129017250263734263102010775705630459199987958562431195266153163724850282902438612385372382759319467035488174382994225571621136043959694529495659470169155476684179428945592627978519382767193968682164242029030118313617242288939846557796696180843946853497241917981937740736132604695278621076257634306557865975309804307609621734730232641186532048650747066826885984522169318903765865522365858954130870784069953058775198965948887975265421766473441226755076338057203837006099738802620544716422401052767188416872709577125144565993647147266865456050609878586754828275463086993956818052413405789022901217118371419148025760301619731140072998609791849790911839563256459519179763487380529768772127419185206947371366652971919354848016518377724575103370373687063348982124219180190985673653790319097787809580654533076600424650007504083801938903032481974041335315365231624302071665751509909133537677075951586856179667438695351005934709355914594888887739158232117887836573072427061376635880845468623363683686821520366441963757034943942377054070292003642314038259464363962333238650345615536596975678300262008840467017227512834475408654053138035325059844358926437681739656965656518395158355572234748521865731596036302573651038108930471527452727325958683883569033668871274524094385319789542832345058677626343723169422541653702770955666744451036467978870281264274440214725306134247862095306788219335776999092016943205915847889726604085676505928948142744174192729005742478314025095605537886735541438721031590286711932649640263849848790520557369999444892101423401425383929004881171635165524621655756893448385573013964535743564245475446599590880561222754971213694840557776481176999856931124458825805758536136823675107260690983909583639057777066233780453521371620516921561023051399713845476860137476413207408070386913302702589952159361511226604822032418259986360465910520389434955399622617804561201062960055513457373020950006312956592904598664521864369539751387211244749670892672176303695128574014402333748955541363238839376558153959473965447255564999942304885309642031985900773808771579926593122704865183382040345591250525347960322289569023275931375050287562029321331714635092520376165164528703728878630637438570503457935746554971076976215013856903478812008114281461618501949788520301592963969076295121133677173059480741475908794316814829322632191252610084325297012561694969365794029953924601164282722225695032179410121159524812907652791303053243246760639151753130384280296521117771140688370822201028286505626447462808612740788796018029712171944855445920062558973176049557968603699519368940737960492332184816731417981320123342472310059809140534435704442977416377051123625669525890107361382037393303113180412599032213796645370922144341009060030511398495017525585288175024641716668835244228636752919282412226402444290415632700438122768420291511178222760431991014670432141603651230591814149128886253519587533039622429382440877365197823395771520145874044479974416688308972067371302493347468093204051511170553483553268275113337631402541300776565042498662476342136604692757613993206964625570716847635226478022614670780011980058367518556200905796092445841756068151329930777091438511706362003510822839962721406946168557737280422313602777758503818073776246989532587155085104593915085831322276270090339536578924534535212888680354101759235987578006353569692279509269279285632382938816204730006614595189453728261068497151594975996636193640535796375487613027442907718162391155300591160274541313752772349885191860677893159917648130437513481447222601350375232387336903645868650763220189771927607462365650628896732357484949297311502273389462031112384249049893214952179237251115899867812350449576467311160481187256235154650107723330181740489612205838899611066092663247985382158012472303497750569448466855130577318365582527727549162912809499972807422150498192666484316670435635372807867630944943319041506192406087913220364922256329458936456424385838492032430864460804842436656968825032006493376996793972344919860066158307232024049861068600934126481011175571304464043356467119690146014833456644491577461877433462219375950228831154519617405550355477625267577495087322285038789399210899162135556661619288601872625743418667103988486280478411319674974022711175660170286864800542487128293579443963769595042933860937237610126759864902655660602467776294559866012579853347838075771173112104170028776603690516212222840259782622472154289754074467300291558525390048915387996274005720739943915249962792772367230718411211433603558477789015192384807505195778851505250359084500427999232331354997018379403622235325258462195664741626955395319674662469288431796443265479215754290130781096741070501351751375302982791529454311398264290029361483287242552667783754385373920800968851750058736899758345078618596570336286728007189571989918466445351521304264280484448090595892472242386476769464598296962131559614520787865915368839677881500398023769258524895609234280476858896299672465734180618567598040451072585252377740632485501233525733306236657464139099576499042544004665556610476550314520276554818401052516510331951084684743589887762482047954600961368439663816066853071588448782266821627040513964630647258655784525617867346187415774080213850673287868748194391097073167522379537740810295582834013337358630419848075528761913517196054677417557165004924654257386956675985649947732753991454939235050344168290934946113790351218683848271860043419275010438775124437630935899297389566853823950213611145162742693958875103235113407559853699061208027959081780848779258161737732792386546549013314517563305485758615735167300091329767378057723601828237565770087828442106562780118020587046359450749565065089136421624762005457891496126690792185416253519327428037994703796703134235020145020437788703831868007596112362012346661961166940813404194305287704403087819172033319668672158728913300084191126709610415773098998994343218825084429958134327577828171666932288648392234303019031072723191320264623922646085565354358965530675634632061187838937622094136187162773291081436821070220106868584683479884169566280819599403787772727939996887962289448264898364401513669908927838985010221894843385766986311025385892934124605398743926335583757811025298793301471842303417191042786557150772075312792827753468296203372645399630158848647052916082979762345660325219822294095423160395842562004269083390717966055536587747691348011625039057104383026712266189928954822951405549976489460341299602020805257642954659758883891811657552049594249678626385470696049696046386622076897503780461842618464002060760693282105698151791328355394041991412426418462603682979117091299466038923785938789878287041706427090317680203004427517170302918866344111158520367541124609966024777238960550584204424540023143867941530630459128614199042407447389210780097160383293436645842638794473292213974452338153102561282098398640726716666106555178125964011016758481013163935812339168777050936945183019011073110685934498094427095588607555715493051928840990246251660871079217747259760275986345235627687343343324310478294435404004444009808232439172457136333247695083165219358622065520997355090497315165838540484621255173872482644014371922959762822148403587192570981472626526137373047059802896882971224345637281581214724383890002647876195198052817678456848256687719346739803898409491630714068038219866447266561226976078421273310052879512610853058053031116720220874583702445521627727781327386192030774530557671678881198556275320869264320285592761123012022782701798264048917746056083864638785058816726487580265930069598672220022154925855840952124906177063354293719182676600334120916689656285630855192680172563813455401589849930333979322827959080385744867126438247598051058178613413512469520076761148307075480293889850249162768712042950463502905188032042765129116992818080336789630933744209077473256635629566744480113077088085878897924607048747525052977316219997848220947624238109866717184986306295259813123350339386361503828487105193486229412427734925361758512063773519921962299938540246691505515616528706456018736282617859957329379789377709122356246496621906670407025996703485174235145789982575615360683083149980463635481314661217739437355539416617257830013071254694119610614343065711606279118526722379845488963715262377981022793393173713206025739658418970428366368643358640889618444469318798626248934450759490137387154447898491833584068108027092597212185563309551998701954591347113176031808252557648212365821973092487844127411910153682163278379769213225623045284467854389443889572607606890076845631744099731493157429626533785311994319035726041039352508709545654858616248030769560064991297282808739373514490924266489503523500439976978380044372112813019192965953153524493629233362126762336026446273319522571348787755618802640154054511449721855175906150794166515373805798047107539297743547003927333140650030423462460828725262119400527191970168016106622362484777283378359456975983200065858346945602780311033648597636767424530859412715501038096366593351489490452520080906686092919216074485361207680047128376110024677166202864815916834775650902217768182159825685258233926548135556060211656816126550783519221473689542883919531870334275094382911193278651591368901754796152393176333377809133811745525092802252942951054303552578796786645973250534844444047004250252882420545336610899838004272642503421447426915824559515478676643984892403764817017001707219698678761929371094959431362250592238773895921460484254648929435212074843621545235819728572473626284186004517277265731376080789086986520172281446553022135747127719588912479026433993175969988928153082757169084029127478129303546190096918616679528785125470248541217562845668386320490087532882006869287147554061698247214457320259323514587257225077137888930836737518436050901500722083205130711319908738384262688122036745177010795036187741324328189584258427648240137464368111063787873172883464242524907488005538437734220792081415424634323690299317958791413912120775919269178644718200878831351157059706389843103623304393172758427169145384743651087553885420932879592986276275090671521587842304489698228485815559615111290145427123355186570816762775970840909165177832269941155324726920746532029364193318342323572678966347943231818972307055423109859876332984602661457663217826508703004168537898556709051216523491816792381174424429957132100337151647198789015278814310372557547003025393617769965759128345375765160222783545784366217016284003296559625854662641459870538836060303833133097213875689565180034276864501072949663468235366993487292473325319347319865736546020389172294581947581964875349867766683783908214879311247005798355267262118199049503565852498484436130929038539604678774001466937566068095895039894997314021231879867346473065371870248389603925526478008270849157270000994195457339934628776348881352907609317988271650194648106336633200333460527421471673526786158053814381494168340210026801293351128615073225390893758735099574189216690609679930112574961834762184627772783606413398653061280889302414437001694587992110116179366490219333758377364631887850793985768943702435175113749878596405515720081761068580687145275743089434025862054364303330108220774018025332837701760627058177532481843813075546596274614897418560977036727272635292459236528934858435992848564574015144020008697716549768255101485689279984501930343441707333218625977056713535418829401303621394358754348818900759089737878665813911204469316404778338309196762256522384167778170163092396153808739349537833989338016974470739472453427428890656521794937380504351503678777246260523948389512286432022525773131638206836772456283191515890123568941348353785881176152674296018732070221799572767035124674209229732388244250984339877681027484741590674075037337873714881727693583586713160028398858946891055541864233758690630357688202066551050382666344715920216498328024835047879608513787824901908763318658883611632430724601919726375652001466172431272629587219137084068150496964998266545844527589764756492272980483922545510218846454405937804529404605286694207243170030791122394570737831439835339875225817720080537026729045430670001787542749988976845236697016499211457758745042428238196372887377007106196163660867426701726345383228321098622547794141328467838738821634468680083662775304913916997617599292897926020614875786402590815615123859120401362574412409507286533589419033825665683332046687326367801585845947953544357963776154654043890880410642497219694378389105799952895937490316553482662354841284908309125974057992034398892436008970538381248268596917947427228947232596345608131973710273711204424200673767506306690466354716950255905951809692863971711799451740113742894351166542001937196749596860648787506222849737430409475331886628607218368893461729251140375496285976833981141454148904786549804883358340530096922572972636388993391092226487993806243482783091648102320892101563058798554140995456691974340830688817173107727328190035069308425534290074701099996021539201224642261610280368218386021915997683077746259653232507906556286211033543128352814420398957730112942643620088861708813104932803682486487958225080757648962805475835576909534963891160883312703632011328027595481097024697132794426269647558554168069213582714541012829439807785847807352454581642030260777785831593590796463770699017636210761914908421281464095703824861025755167680213219935794166405003498053408060336399290758278240384062399202299961604849872931210357297842414506596001871819684253072320955874590956418330432764712556488532527535884140800555578352506344632676256489751105309150865516118086125712631354713915369712670886960826202771096921706941425021785918159674145499769731297473667733247722778463168469387150128533919644421175165229071573848652178391121447507739011499654956364412559113510792726616640805817082476867045588603005819461310790136155378866147413342621719014673932309094594879018740138759561481497495241878683323109141660502194354430423822760634941782370389639989217769009346472844948203175135618965517323376790441035999822418053603181052453627249796085858209236010239159910898036858383343144835057827456554340357274666574074126419762959396455506022994582663101313668783052008268615990012799189814322657178572020584661907168282485403133494701054066624025221557071963682569723033199293980348930977992524880897328788917608744837624548838328145407232695826816090001621219521471977710308774649414102477735469292599267566043756451270248195601016193950374599686733110683232531342280303925713085723628635622739166829401705553629483559567848255823392599816968690380239322931178138513841525261001161317811060211687106065419096774310163835710877910426503430353347023397150835708343207020801564792570190683404086667282791359674939121303636160186433954726084176436324837694502042554208964919505614208548656847294825923469547509360251460016257632890343912510282501734077106611689809015234250999556679230418269601670136975674323561181532012380948556709060342113581717007557056285329022721843058347166113666687355349505068768922299566942646843922878930450423853203882699612020523755881810555133661647930702058883454585935879366558093205684149721246301491262906900780301518438106715774449839872301149539263985051850225380082705101136433268508257384398846293603220982563832435203629281053399559788564347963846133785587219764207718979412780502983732800652821024229849290707970507634222781288123627031193558055037355864061108497680495104696407835444082055915757665718660595890545826593980802799834145036153031842431261832209075962710092111055966535997844738069091179739287693509892827586673229592407286639624935875147182906316972136284015770949456742727032698617555877722877063451523547652725677450934944174219354104979431851019401526608983057069676184810353796045202162975949299060619614963622114482285058742330261085082864311313589852356150851471329369997149435510377836610292820868360962059512210417945703468001846344524033337577153563744597739473474203859093091467820052917977629868552291411904604835822660840074294460111654000741717787479073413714893421779567437460509056095653549155778020382666761592002945651018097150118486748640720027124357908903622116330523270171311350378458243072837165360298638310025965060326773900195657832967475157024934443628270281578492223753407689774637071386636426620314896435751854259872001084416410545505212866788336214774019998170082859588971709219109049890959624568453875275523122683023392621986472942918812801351778127123670616328451020058473644670420321006936405425838770369996588382853125621490556635548596615864851012973444379138429518405086244615583231875945520936107367365762169168430215858844323568984459476608321221826117695784834128879479925295627684601462576251296536327350732775952769780927428046298825346737411263676800001360112471305965575591132557213272011503016939900225430354137712663551471763695298846380738428089042274088727108309600944138252545954920112342578284184289779765941572202482009064640279334384268150020002230510328262027865023675848587062825941146467935383401175961363921021612201382182995252814923212238303498166383723927508924717275807109643097532878005962387999496205516552337756271606827594240927184662553845423537870386401529806122472916804078133039149799825478082816304033780262818857578323276263628402925710225810262948721894341745792497286310777933876866081660863359566892295079885270326992097180630239664048411162529710877310010597982996138610740000203086216876779562026005116538699996966077634646954601874986380112573066789867169747781675182815194668289644542322869802163683478208536539829007219411962437452095836326714065607431325616233390898853396444846566790986619351535241482876744494643140011643624951698468068369026718885278674658546594663760010032501099277122832402640812677722858711466834344445748296968745523312261722305173867585790556715254959203091012990287852559337188747358365239651558257733511584781664920216169187007594906625979873917402068224841861556862506005901074816699387524072893400118280216969952906078134782742074598205537732752727574740489838595408111894017140265042333500116214396597744030533044567598474819675309188061354363842265108074378270533789767948898342726905714440331077371691418631307000187635692284338582624520174033675849280774505123653395052901542524538064923316354033304494283574997605365467640707421916589809031393670150120441995221639195787872520861123580875597628258748036168784373537137268351947088087294260317563340125202816195224374816468730040216981737695440561051499955895587792407758398457499339369640746206231801337804771900346413576581084947240055286945366163649956098110292184330007481525018463963643772809697682888408442497083488337351550437519183325468032515279273740561395709561545808426902102782829796274976535616685343052976501709829800768963093966704051617633504097995975134414983409669366129686363327658506971253154511579171563967531185209415574332102486490687924549632112049778460638015162142323865633515627335027982822942302966773160081114347315112442530353043692146783173233384572722317842298328729363022965004191143142879922030963547775277850143471648270429093569927670454444789398409238454717845364955128612212215117923368868325941685713429702325885960256926041612268407578418977073307978931105593875220557565374127749580001635878507180451440489294981998441497474760811227740147946928275545561900716082665913920018950907111176948055072458679897114132046889172263580515266687924123210989270711765946614456382652199657211469201954231378800833564134945173582888440496532366976967103128089247950300656381359611522106133428333362212497459116792547494704875113923959113648319662703496144662203724854067042991417782409701790229610403408917507688761839436610455173951769428645292404307087690994861366915418886970542151020454722003839498777736702260366879387431375935285410826108251298269650599443393815597861111986668944770142823034474690773631028747609862222372950451064076285793310760273132275171422865432844111273709068313421319554914310066272258312290821278205493573513997838937586091326931730277440792118335595668503185230017682296964114628809060218679358510694344392099169393446383100865918941546724679785814668002812691891817686308177749165911528743257400680905268757630539081442120167236323981450417836390383023171127581703592881631540859620590574256691852200332091206409938092595175913787019070840472473833387842212605445955236812013496463648390667326749395120678403787078566652745609879648539433809754264929571573855882561632719318809550863736604610390357365509777627652908002668476959342968979739072892121592032825192656478777624442930963604536996597836010546060166026900038919179769172516420727595860153879750966390437622624154086531987378993391168498335876544101930470313393141657310368404470053023164791316979380570968965322378182778277479104845854238703406196650604631537709638094708327212998804497103130617300827595019606882701677893887581562797098172125249869347703232646361306934104125179335205663199768203170702445943211155635177584314869273017492912787504320516345994243875539118800825584997407091479351185446546707811127930890182078243847321462784161309130314505899882730266053574469261904446886379774451422418730008203135972456524946453605882938911789198672698998724683814532363945730160185218967200542550444657473448831130022405849715397502021005970720105210298383195723663224267379103021556691049356381074708118779369166842829575350364577410514540692471542776475102915717791866984380172393627987411645356802860835992955666794925736032541622837647255874429205679945852917567648306217489469400823235915143767106191081508482197019803057147052615226016577772172204257331236432848355002190797949310215477088829533505123224327643410664538182751896880283024244021703572190671937752481855546810168582851995130726836159589201005643116628321526486870967765841039670486023803309083127517787572584455066872179700003597131179528429123718178423873349309714000827001875477879784373734800725078842240722738136509561331781318255626141344948521458206351676322515895379840056972114507910836035420513350462492514028065034579290009203946691655741711109868443902800818207155846860488540424471849923360858454369410626957869339502857697136689351094016838952739320183408867833049630849817436810054269838153276559939911714155062063701854941811028112186703588062538298953163343598629195741321600674080843646266689849743362841367976978740627942593904063295912686162386560459354383377963687478266653709063014689048226042975023959492048179208966382496666290162293827952177492206302070509431903314972007235651270708201944719375406376558218427485719189557489301848796298595478699108474881923670014177935290042374338448027290460859710769117514060760487894210395492282757573544658389304856147842406309083473091658553124075142675323638798901295171059039356003105213889497885683840730648824479445293809798288893042673614771750468892551381573648285216437845811335587999098382691501346320390086974455759948039780733315539546693506715493981549215941825429767439995781112221718370530329048561057660735274345279812792258837310860431096269599389286713609194317404372684597277932316635407060766447900624627411461828082783929538983546137679928000339062361779585358675422205486223531270261613505965015481562746408655343555153460164871266176392741880401690383761200957466537390635550854477411253851357003978387202499186217512414478917953408116042621836679615858486631547830241128857719200607710116265033488757597969964926717710382211999029611175323657707411127770613983395037798952959276034471654687088059562876181278196771200089161283077246268760150936052644507053703137606570472137998795360846431713992721378800337539411509209403471937220026580179054122752675196637305326849246814205357409739750338982857995941440421186832565235798719653108053408497551866524299253440192667429137544162067330087466426894028884408339910025323215186662229801047370991691430511716720159799562009344919703365610052226756360601854482476730248124386720692091668652543418895492901914072813421016272421401515040599097340192708182844967329805728109131399951958824879918885424233902397391957354433613106251803409189664860489260977383506228883164724540789432974885457330625588287087297560463069591817125223183934555093765629170755858029459325564296966039469096585899670332067333748007738281156055662975424269726383656185331847155758610253057921792531855905898180203347161085862373175886244456154916320701827328137417071489544805421784631521940512392555773198807911816737736680645570972655877432298593895513851764329843390479766436103404826743228453850945203320650468827830189397746307041170898435121931309014026221892184628728143297262838399852612082502184640966299366170535584694019133921504543286347707777895802935229168464390572127352719837318817070825686837492626625341383955828431054233360390854308411451461237308032955947894443109577169352475849009210014120816681504155841543239398014741833079240689925336026362033934981217095541149455155331489760600364348220377718115565860845342428140419412857650785076669581581657792969310091562767792899433118428999849447068135653308894137061945823853476922603385613040714884459053680259504191662806102240159072332372380645390680025614526580464083696063262628510570757031011450852205162289919814743364145346448993985241580237888576359857147908274757282247640064320275272531975575030554849375499840298744918527599188756992035990414717637232237437091333838230489035758546002600777283761980139243072021365877997394294297013850677883994293459538566104899908742318001839120574473586346734880793425162431384943122597994111884949354070364697248352680733756841725962066561513250310170777956167699786942452280757192940486320149749556058521174113247262787208685135533130163041606491474482405403375827648464273528030472081422506653188450131973156419581497497562848472506256223748755265364563365507715177825627364632397673747520746626510708298169986921315565994227338258168837528132616785375718274665618218420497150976375836983779099655385745129359019255446590315988297446776347895003505698893593050448828554126314644121500087588116882816852544652848766229628222882989906678333977276272202487317431982632629964298461177403046664783251091718511532960166858055885869098786963422569774390101170772705676940781884561725992512404253125321941968804965985768638185803523549366324434641754388502552039251510174377032685814501328044797227763171640857711026350752288561352607990880920634368478020440164029753507281906531073942065998722134607397883549809074628340839044077891633695241013455073552306362220781810775469134820242620517952937693551099385284487804461918518308125666848731217602096097483016556523407663036727703935309499415303373629087253039067617022665853290325948549249276702202792515068300659266785049933307947365128292708327633209878267871350571609242870249223187661132535407459542592096495852330340259657008201941234226365198527859455025690950427112536363743618274996579018776178948735078245908641136669420467361381088866881962541346397513934197123539658579797217990612640812172551967574207119199813049666179149600132900791981536935692206487746629851649163670289018407501665871650682901251710998327699443990181810909384191209694208225071690303673867681297796015037806827004349411332871544748141170027922069707002227127125081834842849075016908079448560598904899888416016783173757446771776657719195673925857027851724853466436429044576600379720001241568142762201344453777190436426272449846706645905599868275935421012891301629851869346311954702630887331836620414824308023678320218643494402778593837841258199307536250659581782758868366666573553217669533036285238844220558618449128710474641021299840793577628253478653353208684820886844642997096644168848853745134547745766764067746327846428856808722844414317767052307450766193731075053275654617486011737380655583002596726620218148996400676210093539752677326352818425699888482185805778242738488413695798010268222617793200328464713400814037309022240297826029034369872301773103784018845892926224403572954962996981304206346439668649739630944043538302900092122737326140192276642756805700313960147225462454510471745069812528355002836080356407288797251135290743195294781669726124373296640238918291974596988656748659200639770800309242733904119304714220590924810865576503908776083540589426802707815832233937455492126933196074870473585473603925016669444644858839791091731242932606072494280990324838424395348357034681457425114565341249234592662804069901432526780752496434946260536045638045834309338241097338192841915779539802129871471674637181796620361468358657202759969845641954455760070290080898987910715770223326758357217463603531269551069071398023531805452352025033290055428988719078164590051552327444295285028259072920594420669004125470635680328627003490576306471556416940174300888714321109969994175331316158165620659918429904282807653861712582776381925743714831813830935758008106232803850901850424034835701285101299252738311315007825144739579410241406739551697420961083846671997993086751613551435302755133644255415686842219259319914906202248510284663538026750091382039238368852248390803760687112487617853729039571370607611788222689923432404547643792400521125009979764860856964604550123159649205984064938058464509995784563475507957825722099326560247847457863139032915547539483456893438469276583552463201214550800689125151160907987777656727158291447972615264539954978787301137340036663318494361089913343310147776882048575941398297293628964253138931596386240222545349910839324395331956395936618005273625436027888718715225841462608778740013105429259752355330926134422685591284765416752363963262990710041176417439638535243107739994118848196445739380012596541360427520627199734800308201425070517941730265316658860443519680562882889153018946078109935723380518594487141890460153655013889565142434229242959610581631039410294775872934643102264953901393196492918230706335327364163829524080997775533319357308190878000681374933797170434626202826814724405223141841860336724898494106488182269448374910597050608461986732667216382754949008410877934836415989372258552163301244081260495121286086532028136064726864906794605644413161064443011171815284893685162607981563306649610022220740694125943536391487245138799982784957143527631899965092010841057845359410915822600862596521351958045298433181034192280474312313049077298999977755472221498393049632068829489193467575174868678528596698508123785426516797733451447545674011116944599520235987026452040628184178695330901559176978190220013162329892733806339341520903310198653019532286119169130595512644194124416520188399729183265918335290784967029605315886882070048323758646560099119041645082596940462900322074864535545876319064901207110191659439865135338201463296918346454842188287502294977310826898153403216612408201971868796465850396603645544424530235079321098191332675233365456123813279863767194810653456380442201233535948293614859372077941101185819985485048047704099955950341976887057292125294604289149271413032218345374786734588115432505956869827034034172700235144266205403516834994457675979945621619205060134853099316291951266929101403967637133551350011554973655838245079285549024647396787258179202147447835436170313974184624185508018699881085762480632736756570119245484518017073804385716493543321187099386548756016142337265596510526795571717131468325576340043157895400402471509756146707319170088698547641339372681694469975143254820977886989322155403649645212926867201594954973863318044172189978693761618150967305623697284381549952750709934221652654654390293843647586079081680766887804478128948926020148727117486423058055733802469796266910817186470861988930414271587360077407012938248329935585086852270770569462777533823954884089297427035162747926956434314627292526155191324630016415884058782114232368339628500973250334596982237720563232729174861323806815188470684447438489321155551086717391146389686861121628298608931294084796071582767948351812605699597655850475252744692106622515748619955896129363143422337889149669566897442240478410246322608968126530881852513614116629682923221873178803334067538301140770239370372911984524125528918748315116303664137651712545556511173831516446110766438045202162561014233116589998244667353679788418225636236720948771666849620223821145553653719622708707992179144437942585004934177010399607637056973904646062787964865772728995273419103949377695413699842169918992298769098361952336066530290421530905312933206768922194326460623544524149195757772534127801572440350997669337726384242261473218089783596638371969313407991271941506166672967232565881657197307810023783402320302836004845938547805063533734863070418242303225542955838450131503775474872454504918991983763008780309805707567133319675068375819888680440685512024611891657416625929649877501355807029650095184101828487372783120488307041367007716697301871290720490951013983877890583279386655647529099634372516669451496205846293773072776944421788749162750164337125721340895267451536612105562358738527377313058703277945931355487409284894456169423175065469881617068663263418067128366537636491195150475632472540266430718544826169511372636671892340994776695007564534628402368091400258497751063011895394613680680206335492440390830362963206330589886588954166080914886318615034090024702435674865537816361776367765669774717940953646301311509554657896092244892187515103773060526994923150952514622104946256704130268125435403925211259433997878499247505232666944549030914316264607833744510851884912778910960760797005635570881514655211594836662774070608306177237271684783864850256431222644507596377644021751196159466331607832621050848753536520742941160451161809015942705084725816894080844987445752794251445954575987859820671593200635586363983546552274678829936896955329850951176024901134999421335301820115856963262615086665693880449246141904486769554769653500881699410338796439082746424695964458635076959266717848052754753743453222990207856798507100571629204728756765381835777137575409057478825646820434230633670669604341994212519986327523195614599229107568917057029482777471622037452076229341658161599413843971725620222441408793653029774995331551297691562419679763612041137973040893016317545351111861113652928275430964168073382199011371747351229745158747314511533432588505769152215617836628238660899291003143710658471536584738393995113427762771518102228612710021083239133882445927892922388257769739079195478787604686031775810961546349858600968038863799379035669871878824946470534179170890451570292668032811263539617081101352515640741356712025993032934254431860657392415015068045161124006081640495880204536639819533272807887983788535887453798587237791990193056508394716461397486463303008714254924971888308562525722030819695998307861841605431104023897761584215572633305282702316657725850022092053513163320252896059397726690930370580125743414780346528404716220388224560556639315293051583839320128567515596893834639687666416570931377251759477952480598447620124724986840913795710666691048487990801859332887995912227709236720150407881119214416394162149392768134970200148663309959686720347193577128134226996551769151917040150609374970268053458057187915071133222763231831306562104371522671372512125924012763370965555012073131455226212567903687968837867040366447287444646481239641082404365665155710241198420289850820757356310490806829651223549610731799885083129648234879910668136380543804632285598103200953354650370606306058195858971618142222343761837072065119179122116107968708684484281204158152807058848048288305743039405910495477206226231764978962038461950858002867422487612572658245064220024380678809060246608077063432351402058016937345658299535796144166690486445931111340344909544100979426946950679093247748217680918956548483093889771955395769826647049413792908151536875232142090578124480705712766904244221668375946022193781327218203889283616649712489322425743275750698133428856633201667103508406091793863024682834899134379818571451398658137558400733722040132267323814481550598965163569300543628113051274640713111018163050460919361292301031584413269461036084922502356515194524823035442897809423148301921619180895325094963027405198280975793955074920812342527683294411457112677280402025038331261408031279698074847035454177044400359486934325926889370697608085071128636870864711861333656269468953060701234754001543849377559898262082926351342118748192276501023391873409508497280984870442262144010902436001292188716934032430352952358563319869652010535907307309423260858089365267565422659352633588084569250369061969843798871637604932659717364937857231305698207845762144484323975987509655724745653544091175242289907549328370530078966907329420706716257742437390847955948338428853372553779816318796901190533084144503172345939343778083949073297945650812066521567619921835644498063741051642919401138727219451097296577777692744941424549030305883436435191565575879336349882694798729523365627455295860320832474629453334090137460490953778803751794352821478506475549380952680025567576133781564452597680470020538734999061555359687571449511563073535903848532899522476293197877528737469937467051307428227053845483998847150668052650568981324040691008542171537916256944995351681644392347750956039109142027348239509444025888136318085834048952841093083944569012382804706451154753171468832928383208068170235850919340734435993830877599045054801594516594889566473173176381036835282201305359107124405273949804197388372161703448936731444001514458994165449410422521767490287654387729222568765981946450111329281971597247670003310807178709574549180680032197785734191211488143800843242124619890525552210253458731397502303066916076073492791752835575303552250666388697431256387418456395009416539505181143193091644682796214110931236753682235484094993440011220952323360063437309173824328728517742272733571845931588009433838548353887414206669282475522563937361361884285908720477118907510948447966507540360639338829484194207516775355590556135789847593737038981074016358940782480450858261658708092678589770914742285440416848886267761400851163961092059721033241839488263439652815637928831491245788519898461052284279995095613224521295656743622495282921337017929755819891328247749136523631306140880152553393612128979366797940584103576421925590927104317777313996512803144597036369759531582081029286516238125308530276557072949088880010802307559320482556206612033468139998227971752159391037754515478115874871126756116056494637143536351823832214315649222010847306152423714548316467220391107362308316227894023024635352455085723084343832520629438832319356976711328528433138633994553617339004294476377143215126878701399542887077520166838488119631995303800616056250682587250079430582146264726418142795307897117402915620469956308176603430302575727215841815730577577603139165266086515256182485402704818747305405273954582438603784182351164497044325472461773790403563033744009670752352062122203109390499837877516720610145131691918606468951311532622732421751479182727998166362078464627991999034774633723235980504178820572258341746992553123562797031932895426697602854870838252405454957170695154250621844600585827570171386213802502438487329305318481594047592505850746770361064598489758530228588765123479108461813605142974278100190350045696572383117639805394369515376512497891019130286670433741528044861106460588674928225678525412818054081310005829448252394714192919470292601837389275997534505927243029722583286961057436338215394236585458407524493819084503610336702738768338664548397798180631788373415048652565845343241993127416017250031154183307984917753677764801945392761502644707086278500417997265528725341030332913585516900027738472070617873777503743546692424921101739171287504233851251175415974497488521326553691791734406077203235746814606783394568852401472357270268946075480346336435382394501321186976993378575934084393786970768752658641469374205853659180558928446067221935006552849291267514937185587553103942950311196792231676153034042124385168086464789169118842525772431168179477518067605496295632639408512002942621760504893657640030914037221872798948916213837548345748447878066905630225287648654502331674207800707145027377276443353448730641055972918045297710796781906394804301480507874645762391844525832708798254383018749303450663545398236833513241704529072190266878220112003046794573777810905520572171485429541430785363893109360359781933463811423977893110467754920404167086726064966917418700594545925473519411250035829314632797527986637741255504965308590961980408375624054502678748793455168733163376755471981762244036796630116834614918644368237067400251192324794288212134849606093643418107553854201355006811983809866177702281491564395790617538749944487771869122539385414617311436982087733629757594616695287118751661798101944937294134268267888538826079837386039971012123471941754087369648238401027666224883750684857020029858451432881958313071360024617153279260282506828349157602912606578992917930277030228152002694098801381078826206006217306867586810357412171912851748709997765352664696165637943401240278427534767926993044849781964131920560395840130746058199371825200451363272060870642955109229121253440032486562518293255174388055623723675034628207030794886279544633598784089377578097145605767355238065679433276918485320880505734974713837649218227546792901446779213235101719655402626404274559814451555040088166992893200567434227411108940844835025642788091370058572397843775488742897030414915091336888970834533387329064098111263432268125881614517179926427720491365050705169841655490078436151161679887446986721970329038748253758151386970127056107746156066073227427521593625083859810513210819848895733578705712412605286289031465794884333450912843632152731200136453379966337279908261185673482984402370754893722931236196136550697059911026753606278258354096784237604368056621030929983130403234786878793916557623260907592377716585723647650233569899734545261256381566310804058059580436385935060044808342363363237259354813560864629238179089744507342298882479449036066097478762632518046860426130029943115254364291959318130067994620367608792673095319660645448647892677981973694645943781402976487567310583943883992698802810520301855664463597931312142956671136247292014297077256026364401460903157206591357841765522501246027940456099764322397399497852924591260926301181961221723682027542681480854869547735286462386569911082827006253992492701038684751920851453935473752576181253038912263921096620454676235144072327736969077187474916806051805984095700738470919591045141664898217876608426174281980799140003329065567218035893473501683514457927885678113563979662268077996282878522207314897399660705507062824918397638423230782446078802878465829818517201292380130411793769006773573106704300914637666477623081720879624885426427220458721402133505105843019690120901112254742271755285386488452488257627061247918087418790269387016566844916609547811265599732616301112485337102282232229349459646582407794957812798327236701100366123644089873145224764148571085240997612490307010005853823746722667656024253068777871639549943839744371651519513658487392870083662642610430353018422339639246558840071914839927276295360804476604754525757239740755004920109581330117252230869996078661669656674415967868440887300416518241647912299622896829329719172090914509324102178134127946133805198036140246299199372234032628964322472895171436710399702506819297301932965627887286559960708283812264208697995890819635131687710925576054709956054084352319014331797525840119422791867695206922704611924015886437943408818927478475835087733821698939602369564718971394085920232090891648286232137317771304354474052271307103849695434592609915708787571781653057354289515756241576893727535952988561022211197770353374136320606800048400498788615761217399386515958978363033050711848754358652688351670051705825624697137507921741665149326567622828851616174217132757123848567365693928753412833487348145335825410774377951590651714923715692309331956981052232906108227647578347621319645074659244843121373615112048920986291997619632154508960609651912070104106821702954282446229902015036784636340674807444100173696235447533556532737310323199304489541608966607083848125314746334780612220693256864963461755706789520597491919228724237312684366869248594052102159960661737434527490753050158795985878068786367917560844653483611164714909154245613303038426329010548145857661833262038613611616113283237273771730219675086616819106505513577983114392191159728882847331873398632002802716989937464072912379618540375326044883090261196750762751898930943130346663973708730152960273249022964242979268602476958558381305759210069814161122513361024628934133937192181056515701114958603436589977365989944365857281869978678712890289902769977996493346102430060726388942047565697274413243501983196284508036126822667674240954108561017747313422119560640712124861499507722296256920611658654470215304710686085900270989633972349258637062104424758300962853727362922574939648907393115671259579125006384123924343194089789194969288224071010519976229957656932953869592985624371779705961201286310514548459284806371060803196674811794919151923735761529332151153953972172466547655818727120452580721723760523036360156929861988049789438332270408039296291182757656758555854076791724503288330666112488190348854150091276465904308715728071211413431963187039623361323127687960197204043717529594821063256398354706273621338736653797221529537923609177618719460001792834483024729592130924395649538604398331133894642539266654034236679547170733897807533769142690281208841622214127645609187115473125672929396452577406782043652672161449430806637622893094548265996170225312405165000444567724428529275247915983437323352307831258163423980012632948575879113232302018342100874534742235990904219827134451549996159646651983149805518934847081966978304559245884829299207813577935995778393716094851128893909130638324589695800050178501511436493889315673691728358399591416200781484818308943675199970641793059454409881130072510187111464304293234513047781645986190832442825145386466217511754825832260256804484011103946733078325286206837441572747171255522348545105606391999905172927271941242894885610945645022308752270997109094376031718059053140330947037281638408727468416602194545752331883628768552545422750888486576323071251530739959806043459363062842193915154200827245553059302262579999950594713797425186562406815640793588038347494053046531701809059097165439957723674213670408012733547507667569648812130518293819080833550627274006366028125172554613047225156800218965063405072308894920466678345909186326118083964017307035668230473290007022398394304753889474535917674437191506936969870649199538537398337521252008188419837317913000514108679794898279653781742800181287034281914986284214216763684862177378882661388244823984882085308065626984687141342261795487879867842735914204185448243467483257729648306480428123989299909142891189584954902868234039529433026602212459627628171912645795333418404113849451412129706309310674413604317786502069040482919754604618139660733547103111519286832423219674688463867136506357206422340333377522730753519760759095630475553150877918340239072497942749885723112770591026284594758829905978293075341196593464444908715889464256884481001046854291372073920079859183889807749464648785191058904298946735472689784524696467401257821563485247719245832588720535712672230860896653098512372476821485771858402494819742732065413511747376729857683832566377722424973749374256995340674991469802932667691128465831189151027827093086629212513779884022955067098956707673409988110991242879008328991468806675654075182672126616268025621033376091258838933748338227613917019826980711629947674821659736328688320873323018846082826695911770310095373474143386599908765432115857757854832809974574061793274975909048785719620996242685818508950776153138781379743064297865792041263205211903982939902505148510501907491950927545187133299623836260932395866906045415891573857495973240778680976429126117269133556673853523361110024850587176317297531456997404307712475516503888842069217129040181047153711728968337053179195138720268831724692389296512143058055639823927673750102212781858818004683232052129592358613822544249980744276861863237589000036632898944914628535115861054749155433818332717099013054493111663046963611904303323717081481109364211733369831388654985422228989033732012066147981449194804369783449695002379441465830515293468807611697682638358204279795883996078556265574089803068247560825519289037656038885075734298262965420085893540826235522258622244198392541423912070533368533200958931100928191012850267053772577343598615663405575077630987164551222367712547291156598657095019677626078798232254418260402946454197140469199549617863990253788785017686588297241202824166386582488922715871508303447974173082474381674131867490196811817155075728866772882334192640869644143882534259556262285252974625894358550697329604763558353881548079525845188479771558608046934367653555251048078218439027258222679104999409443851286881448313773782670087035576457288162181241910491671826676949241688099383606590557963922580034977313523149141274557186411636438938726356113364361601746117167717019535137154262873545264865925811775862851172719378093947229478604677687437972990553480087188481019736853281370618412738524431082012310613775966453849084005009114981678636546986005783886856396399940347163091187667153632425161631143706196944915173718122198437217157741710895792412605382802170506239642458602117156844500165502464529911390597129986977254818861876380688380287917078203280893666459900437033891974277445083146266618648038318690070268522017302948733849568451505268614481877428871652335723318073462856757413231620327460854351719913710525287249950401211709659394079520735708281429956405998745037358009189182468141475239991944387042754289253910272934598899330097238137271958745597486833390738024843965489467743141329070827407651703511945955915885178560040522752819581686282238814075021975532061603137242262737670232001569922696508166128557647658732701718707126211337145956104894307343250569040840014277102881848888264630588974067236367371016242203289804529698111763851209293570421931891291306931282454034435888122792403497956380262227546533420080460837478225528504106680703605334464156462681613334408493255818327672931792896657898599262175387370021628464733944897609852085385010835572459924247591949993970378059315691131540638858873594343962971784163956718839708616941341325941691419043031074551279158860247965622470238215300267175372205939596467878246635084232823540401613034799461588046339630409819437743569257304489396343321852606304808935392144451029795909546803067596633557585760728251421883910168327639342651159800747893268988349967741015284177044390030855239292412068484341435412822480645509640856366255271953848649015589974886564046046954974257302060278207490123994060800612846085470369309978738629925838618283635668613759848450798222051176772375294838699811291945925892459377654345712882072494804436200591727633695641582784624427153687698853142616871783048768879210655089005614400302517817592374624779773348630993727423099586927874510505623154893990885757205606293964439322412732447880771649894579203535475173377279744378636994082035277468229108030260276039115523113047449990786051589542366556209544431650136437057399525317157813838842299731386048073149689920067049738288712437627874677872162352728525116358627495361988602172900492216736737351052146163248539313946482307104460240555589970652156005852228766074343248501291681047510791533572636686427091841938682527804399159892725336514796853138405930966854088016872914271344445132464472568263126099734307829789547988456763775895875483614710050123457594261154762832945942890378218487272098088831585280160518204806488001730345127913130111918368131759734791781187954877126576467074065261140720126267950469999642146337803083848059178695800771131603112652890441583317761845740241893607663529813636221612333012147610131026420579937210825818128132080733839807178240058591470695101708611371996865435846291047075053353045643032088685662908073979661504020094875286068063400092138168830146673019902212416717175969730362835309403207885386858558165214006479058135979126258863347061177357918110243321768049195043002440428446625947580784375372118054303755041150080460856186617357680784563450107246405493656166626309971197708212821523724289195922627307455521366569357562554086264263404732958329425966767802835508555895605647665996249995872834368805601871810344441654812452953873466884189451002970163108469533122279654998939554945688465169753342981790998727495598993614295749121437329128577499460324643008530893395177453059756594689127880963845153627985104307185003999016977578221188413686047319492682760215960062233025008109347279095322820384597272589606966528751724234722782351668805626708921247624696254330789691342912611167282184354654872223283208855617744371895837849656228422288433821866746957936905459131227819887814242957279419034778232453242847378983013911030078270724008941524213162904910458981697166175915008054431907327287523458015240576673111406935251092969255242052390734107835285814820360865319194812387339757346028447211811326470196690500690128349694036712761250432973241144954405434661397374766543178502486042701656009997530554281230903539309908271024802795476724212934706365040926646350013132860945329609120986034427099236422830259112061559360179512891907198054055124506182730916664217257360987454605684376176948220799094681669656569856039700737021295161117387379404996710318658619965317729609839470088321611627349674901933315471377306808460328229067485995925419194932136429901950866223300807884232772153040956994647914222143703695934104127932654811100313085160266608690957251423719997899770803353487868211415791555516727983366119493672005345606470455622958336881894274561978437369087675622377089457776808034961581605215410354612476923622123451757016368234570519196110552116467763794778581342436797314427352402940698621863629448338816997383310702973939894652975711987868266110057718219135430320641517655122995337559588815468423002384986146563679827276384538371922749238326513843929881478842132605994626563723025152859802264329818393984481124019576327931568079718959511604743314826802545114308175839170130462467696865700823073044828622270370971635809195629658620296956463492899783629208332936894517295821866065986429733001698810067307512866556146234813187797696933628749167689849347723722751817871803783417492092546076692358326828327531557207059341111330056379252387509606831906732291823831053508105685399289141125307645506701231228393787398982035205094660637201423019845530954631721947010195580457348866405011389118870679039351861489524183805936864518814678732183676557470564888449770257185668357046218993793633819418654892183656650683984347463977795568352813236084900890438832298686694144433183340632943092011769720928702820758135853318626418132836520175896118939815127947916330028392391643484356605773121676806867657401918974567163420229228677094586822029305042554890075308293291216854611400652678357646297687037253571336678223996246004892678125568998072523449191148322803239953797862835985269915084778523940539975404705240956773299171951623672209532546031646307088480996975781478597758687491274176102621162891177895155754092571245846326438583083231475456567251524391783551762772613158854295403180622501867077958297504531162614475816961609860438626311624223189022855436944825643647199157338394008986980325268298534937000127123250446579493810498531169731710337138997695128553428510711188351443789827884808954123391949690890933006114455700052764195740830775763552428565125858333933002988587276351559118758955615276603750494995616390587979045817071491201628275981644459530810687168993519788123580458007689456677099547248654379293359118428170870717300330952867650740466374650900322737257025579861624792478981333042133286566755923178894995073379223118496280524294079738734837068217670814949122003411406483637813955299240752173374471761932346734067474172859654059195154039922581921646892487193446678000293341063016884863495166959121516918763920590705054965111742759912604055691808749808857396604431406564913827420460839274474110362818359505594501226290250107392983431176586115507383086210248634448560044062548503996524924399368942640689830816270073628197959368464678746077500592717101597068381804009063412377340869805727399813156892256834267484547933618903800544112093313409166136616772923356839080260003067164030993604556179527607148870183104569092148272216950915984486594902807022113334434778145913567357524180492450050171247759484996266230116394674402060780460160869602930413804147426574117266061976311352550020634376200821877578671230491957954190531259744215826174021440815913737291879974857593504342000870299975048561262040983258701032871371817377578649540646548918637293574425659983668796935811923088998147410734475159476885228671633937099418762102292677856271427902231389161633816427898686725134326816312673881608234858777513326702743944496795329219358965301726409601506421678578616431427913658047591044085222291601664846364566282363579717446004615401008058704225988160601562326388706343313646367755666371010592228471760652691072362562950434163751355698052371972171440984451621732493018262271919928335761212995259018650588801172325939773599216040403622533623731630845259397851973095710388598642854929888373920608098381837466451150217944004815773774493314625567418329143911371330683623814981565712118434364971712572929999217495549610069586220971761528451898093637225325778678413763869179518834849648757365944986599527785536099434998392520086719220376472135418311749287182786684018232759819361097725441473100393119934884368962003702363974939427633961559859836439110079549597413620917162824118725203129444132591991824263025235209358387822500892373814739860155378003341283354212888644864744384744923802619482836423436072160350592908599757931195670929701745062098270358009087225447180956307575774426175582928211712862162435819855239471336378057419708080188118174926981011217492211837896465016695546815372997747889916808352167907331773983301087569470088332323442034128317374070959134415172917136034091818040412962803359822675031082349215368876513496197886160355687442894944579416305673717562586851324741054226697250674811528699011565701638788381603154821985419622867315165666800036233111116637989636834338203189413527321049736685220390072355653951637291222393108818451782091208715246497979804634076054312219844761755170134715047293269702622155020959681827655820671480329804995313033365033537296743590646141127973388373501326645050109224926926988040257638690415726476911968127312803944490331422897017521526076169566780614762571934085887420589539298881982343704805376085999720244902232544423382652932400414762664539008950170650407536990193343017591960126477598001304284695314890776168728785962238981853845946258093949312567067906373816917290554223095503528084506935760104203895852721926216008039893985781706070121693235039770896256946528047683985409624289036123009863831080305363487724937285488417188789883546333340197112547103623782175235314425286707411614973993090078249465758633558008558782185979355225086400015241550756547234368015065130029123904693922752017126415934881923666896221973886720225625805633607716737614588660054562550383418004435579600327251339813849331815612339163232322879596969678661771410008689710333134020721755107581055487087305221863950271772913636311354058154904451624700662394742266701935913077000528032019575912509161682953256935941453613162746066391092081087023891150814626106725859236489573853398689080318182368099162937347989871711551728743602155089337639100419055379171636684333114417352813538401225293864827486581633125352912206972235336950234021650003712837089352141192162177161906770685008925287133622836132236070255481003591313724731105678405466390819482046441971082142654293640531084046767194831045428383101170659467489501627289234669725038533358792124847068309124730396643379486876102152391552428746207832331892861872211853156052062972604224725692556049997350124381392489786876393077240570211076655157147819922737987700920461960160175631417971928015716425797340842076737127446975867772568611789813093860917733830512982219661940145308200753234450151606940318312741845606609585377738210269303774169807662593460054528519818018220271695608794093788083453169352732647584400715296080466935971958585887335482519920292576592393295429050728153443136686313432806883878278222918650255744447691780363499357240470995366659817885954552284790075156710719279730517053118641964221779255100948406183505517610183997502116042455932783140401416809131296692170347858898328310507983044196041711593694995508356135337039154280212625494572082894626789910671208312996221557541612975833366618629180527798205495896558376394248777576263000895855289570310099209812825065282285384768835551562496243953011871342511110066504106875412163066426159194199129059229310392562137147622635844728910555595948502850944780620660840153471134358076343746246213211403828427690561437222666304458040718765417423684944739069861470843681242833521971667184152699865773722105105475400383452409905562870390582740154780894944446212655766138340017237050292571618211698160355739746303070623467123940959993278160379403325957836750832552005222443131189565671207081230307460815451357708377666076936286962866120936076600387135117526941344937228908056350452646030082529384336740741335330187268955307908468652509147783874199740561577821611303971928207433492957965514988714142502996585586302059543720049886656770704504830024199940088223755746520083534373849153526129732889882428051721545114347668129641180127126202288743304138940047716065446424197885038732861921883397951137076260093426971657350871618314148295359805038852896585179177989913945600421226774393933150104980668332780609325622149279419957471448923244001467949092206673476084679499108717392114553965525898065464515243160291477455899796138697101471164942842491803609388148268056680946877045940650500621576569661823869252414445556122436222509512836682279953041297348189323429151553191413061615040474704485627858205617969703324827433764664200330319438733704043308821505025431126895618873821736384988538718755045289596077846009652406521720996268387730808667263074291582695767582213724949008381788297566829485392279390109027960276804062049400389286402268594768669552501446226647730992046605040085610467171522086727440905942734856393892436361396184661823723125977002760504352438063781505505896456719873484322741585072268950310046407914697358551595081993798267376678266763370690140462210541931692780939644751206097824082338306471159120233151067677314738792690798305908111673421258802518116354916113974047645232517491098414666059682662519941100702847594281459479377023613807069035334564242812625859141284342531887920813251072108369485109456435499086559047197447576420960904741615246092189708256773555744027891543557222332887813310979523093308832489600869031424459284041685933489587527765683947556991805187159160876171362179642588376147526729022171155667330936088408111207206799037613283752466611971586329675408872277972809029028774690225611760792827693373421975420009998133020587959805823677910595123739837469554222049945039904685485280862870328003212785764881532326952015057123046068777224817330746023997426417636450054353832328385706103084674788133972716702258204024620746898020291123610601061940013875415836819667318011844252460392620775146651689008532527569358847517753340331219699337981017101188297167332370106727455350106281217913420973687674013212010387832722434805330482127094198209309358652767322266286089968508145657275517449735109349762528056776745305987044732047406120390681720933934502051524127947694499965104978531398985429258422558661506353618452955937260380284884303862904154865245876449847850990355330208266210497115713645449733223523701657892727972220241214863376292253631944222584027718871138307957633164457604426412610063599853261736056338902614680226328900544271479784359881131401779263347572283240763333080926001616788328071251371520113527055929597508234816731038726877900183883041620436835886513536728136339507946878694982113552572454678596879314724093595482264133983473578972966643461183511641257068789004808708368948539454454483498412366436184519123421189073394857976992663511202812715120133949302754840336043291027630724855868658023059250083849599007999929183322905351525757599910048707515378964467651512894018678850831881578160497251100850705956858885412216569422612332954838195472965961682616654190509061944831930146692840761397182964069434963500092491490669160299774182941493613636668667591264938430392735225979013119044990303532465099030239802248576228142548531486927806104653007058559623674517334168993793150444541126190090584884735223587716479881800209382097540956203141742622453251418566120049439953337400682531814783491522474049837826241765474108754145596856541985244931613853239113243637714199819553964859515253770617243601473727548933762638279240826941109956180869610823214562708271525078511266453775669845767841960636917021334444158084530059833810201791209053031289915157973280295532687809946852117601106352789280224409623477764614484629335408677255141798208261287600130704817553523858575019049205322334079851110569509964320277926142813134198788634647390192887659410402814391646149924003315237146291087564569152233222869994868997492999735607865582170324234606840388810965723197560246761946059820392606371306007706976427124598015686681108057885919121218098862341969432947480697479227282449377465271682908917576916376122614891869552438514741004151621351800646058759751172687498725765032060345362274559395476052661372787509831507100198031572590218056457269387375771692377330161379845356191860329743756553673285207342253116705197576256047104225935207992747916869684109630479360904000197306394053384522906929737647436267784623035794033163275691401327137664123152000814708051501561687737946572594323408013275058808298276645193069113724564045005135426860987597629218283183729611121678249833541645202882671598959754965302489545901752466260062715476566999587913196091391444543393177546288148746668215260140445841761920550519144714610262430974845806061353739728719146052050141731638567660908657719217541887546141682988761739767246240667482605272123486738016083428608776209039188599293432079751673343534696112217272911285314104538980135464147561269371848494226419005066114660580352734181076434064917005026124752406815543521613813212503086871692113491359789754077058038489693002450984834298874689765144378051854952716044160030814402936380882732877168143946840989046900821374096160336516740260113602519802905698618762954810872289709649346059136343474820178541886312782173497858483594309928673046223197922958130546755496548905340236150538874142231994533020550697105034614855949108583396990765138860302881589312504799879511896459420775932140982976218816312669451045936335615973758137856668847086037146673291427448409689176466365182923497432246972587698418564096296516187274815206218881733906056240094618250139657449886930539600100803684814261010876603855104911700900222230280595581213823803180863286963184874201586799857544073755998208484261220704471485863594108449487603747103494303170871108473352218242615589589232475680293079997705850806058800984722890900477913083436056098944603946455047894428309889988594849328519603952929557772676618204242345026870008344485720203976619427122867163844225092174419667283351790502270812207768202495772998768516403381207946284158395351136539838329920257284184857601783723669424219184674885050216317282056913287625595798314552346254761261296890800795446648187047559876922487780717805471937674402889664604432672361243778678909007582669208850538594201128755806388249041661982333221246623009588104808414013911850844864399162284222548119436725795627570958459718286098799916894170985797541677200862327531316661946493655439028667167605247690542234126665099449598366605637415611895189183821681507864262402801136278327169175562264646361150638871876509913390351299385793800881559160439210074717906999871905311622697185867776843539432993494114182222035662933047500571200328002368943398293067268051240056533504178809852550648788700464278837997991701332564808784517176195194816941428030720207192784408028931249467803355329001147083469072747131812405703895276813715983466029229835150469287080223986133917854308840132268408192400569718667013524601577989677119941694470902542405366516961815975557517632806900097475355340281923151240808685320997499012437388131099836242924911739025674924730269937551220520834066127540955194778249140216071019369263176819333659612379306271961149933030609579297538415342623493507103125669676081321484533888400292683675974544473157511851483362313193575322454427518898606696510184701373541695455940468378929796750720877226785417531140599954783774887848046944446242036366295595802183403476155915552786887914895705822471771804972665269186235123758998103695213525148865941394176158462414452679707631196923388620272690900054877830032816353470619648151287445936893823245534124724590397733568769361453997770451896361847148400739965584901306586686282526649453971486096811463216783020437397027276639087008290754118041205864718987338970793926969481572979771437083547796997620553067231769382772564732729355317043207616704321879544730628268820836063547640103946465312923913965410401921859436587264724793170102875161351011557085468024766474670428707991610988745874428378345255335948775992445244577169988453318023063962733388404689229712050061760807069069396408745520045679155992580075075843961414937423884368303817197652809447599351612576943847964727521293764062974139032555103247667394055637248671258826011555512502287978280666318620526622531084211120792229474828362712289491484476879362442924711263172616349478777592403679262629127512737820455700751030563024298880086846036128856850216320787528434496346451643002308068303090114911412916397066685776566096759967726756368040523078147964454974909258895135269161334499147523004472428732821206294537002714222587060425868716991981013347943396105093434530970605613978232764149598157298892219243245201077407940476252632342488132599298586788773240496479832574186929504732516815763175947925756845933856523479746655000228787699825436093277506549720456984322599459674639421299648278847538454003109405582507752433975355961653595324542991132901730088423891911911430248357103817007967583229014550909476851323970835790969008295734052591088696971570792793753289447517014333247696649023691973183194288985308503277874692739570169266443312480998566707865045763321338083568489617183037945812510660964946676493175249550508246055915693490968872308358003981865406669649141418377905345913224961975653271132619127927379644138673055851812158469127532691064701243539525006807091992377592001948377241869247885909194574336470094733905626297358176351411659058134944268098805591170542385054170370795942618334673959813174732391118741762194290470793090081673191661507384527774342201881665929149872578518439284846731601708484560291357906755463407971682470746570725508019922500602985943566498818581537143412353965892847005217203922517057671147003282397970281670958182072269906710148317807911568414906511218709676468677344169833393950409138687980084342872314011794334779149961121290702646099088621729180031924266063168145090578524477942989551355463751994991684305838350147000123974265679574414588063677235785088320844426773170121563279090716295538027478982473929888754100892276644879371400062495032045511924179533462191216266678223624042605380173653331107039720196840694806425732164561559964696456958711334607819040514933254886669171322268176098042194826108835664057725581713467013686680097621683568245443196345301694421328637237148805609809320459622868232168892024500743396101246984214354690231120736713181158727137429500911460784528083730709298184428773289920345893114701505992885293537829977415056614092174752352792008141679741370573357102034902316638465684501345976505912620928922836045720150114543633978635243704174149210196853076609096407031029772767482783544930412266180249112156812583107444975203843987909891529282877761566604937526137823593479378119475092131936676306774912016798875381437326039382150871154166104789407218731749034244272393133367068387754412577767125992059594536239477901109009170948933962200815078159673758999282903796685848347058284044050398727126207641015103066464344334312129458934492201887586940189370835996414208825034171017345376054792392586581754518735943577575112223056251457869254834546878564332793224953018128769253460152380774590301298113493622924798399932427453832905890048870489658755101644267860936064991850524818930298566025489032144280741490270577296352901761790602283224317650555143578396538364025648139172072906173547365841570190868282425025632432943462806468645449093139033455721032650375646706804520124654686617672751327620051195455717661251132144930297324046032013037395259318118748402505080510115087274401830226281726121060604781486719816722348301748394133142360451393419738806520319060360005776395588969089230943314656731423133332927888966862033114866653893179992153876375015665614280911527230646362679291511345765878940222118923669112471757875471721051173642234596112313755030013122593885239062950942658543280397855953556617821332012729602539493755154268079035926954834173267953227929544088643167935338955361919572610535131991034352918336835750933579032817563307055401317001809741820661610886156399677946937212768199053319324612442376261852236189154002898365701168989036141580667998778110251928810467060674947824018394804014973643658319991395617287895334308649049699936521500572587855858512350712456032700850270386459229493952931480161904025806525755370302285070786846879715659876675902907998685720703587742556486579023906951861458883832993333845725899073455223963045366235119693551474145420548740551383404530663089061198187743863272803759838740791380306353093590130422731897735128337310243021874569272964953064491502958365170847179583420865962216686465135663422141238364288674156780769929929674039091069918821428679523857309244576922972564397977625739068426936499077175102080194108624297353230042636978695356298992991168547327784367915715279231155524579935819213141192201373454882345045002811400769383237115248697124084531780301771095066384838788391671153865952073184868519683274080704490627701456610357863868083616969742233724531253436413631449066357085402889628879412214342039661337163492842857231553811255661750149622609721365236075122905749753443876686584331335580632299646580723717837241791529694017626216813500070007741453910996881487547768723034062072403920948262312425272993011656975767381860178487185015595285315832202428589034205583625255059667725840384251586804400874801736664414365223968189529016345460447663009583341267766202199887717884459958188235326724267562762800547302954934816101235992473597937786131745250389297934663782339232442449685465085833871014225955152901839216066820174371469546269126658201040637828932604297678840173113354905448673739535982605350940813194828682941701513741630143542237955290986322744006873759595347858941601220337934336456932690859107740523637465650882807868194178336520676239974568962724757286015300247686993279595720783830506188069155535749061316165271681024187973732263346734649661604309841422678006876158056068085328222381610648177139814076328667365894782163402375130854082303920784706540180645969435779913293496463979433762089735113925520199908521901801456805306550769372358412643495884157068552113958062800006859785809125483489234799590037619346852421312357289371105528132335318687949272522965008940618133443744029803197517737475468641491439360992707457960528398555656353501820743136745273435104698271867844713608146455176624948770108686331220114507790067569137881727244188305883157195046191328293741113078589835904280911055834892005453082591078223754181023994391890335546098044251178246060927037232811742518217672636553304535186480485105740275396258089980128092829488548579367581634200333252641457571278003522960015822445015148148771013901539200608719473573873289151386201281350230971730694878418448755246120714177454972044583558344950161072975354590827696155631731529236562043440311387829764407389384004991848994456488822469090257652934225211421883064486201840913746071161102582824516636674594966655527566065737249439261037532312609895048701109259488882990320573068713774843137274317315161088337622965238030439188334116927225495700565178390911851114146722213300275841536613425817857491930646876815470349638037392545289810107479932736058451200134799712501059901434860789590609016712737996567009469356425232548160563489220635518374774059303300018209200101391905569437704453731777101456283675920148642268280633060102703539354348565764494014120484827635876537907659445579211374937161911762740571673087100675764852771874917001363782272889843877397617011406558072486414132668716553883352092476132270709328179804657541615966869222185728867778037189144650108564906140264917266016655445222190610730101693496887118843704371598930851910990093334286520645863986259856775420553521349900472185048422425817451796553636859988989854300723142916713378892614771239306361792158203645942715307155457310962149305942634484135716699774670739374324456950442776551080120506728465557823709483410686327567302331675542546919614047964483816906738892349049124019647830558206093089343131087082480815058205681987270630557633817057115713957609833770863592733919772822029249603055622417843182413706051190926628740067616756048449503401947259878869721336348906685738159273194971752099264056701684985728757638760872023222336910246234507602660888555603413836717318921221615561710560526089894986286853846437033136502151122244587185298436833452178095122684266542683393831646405664615251824869401937704204332790034773566210586767979218120920427640551207061203590085669412238645510968663004210521764643845827257509890986481965208390883154306217684708056380078655901905646066785694709014190945095920418457180524149821718174453309936361103657693814313275339770514797485283133378326804186230954825001384311561796990191659195263164828030389876046151401269079018817086755680746255946644013487628386343215290625048296867239533126588196154702209137573183813067043847757658227541903746082144090873183875680584828472358856445246491415543618353363972091036310654784395535039121496746986151761805467579870043327797995917501649467561247358366679656689056439089568604608732620135164542016082776965741255909713956324054009667535521857374236749785489829874065228206150010561791342236579348007874788375340648263817904705878882190166499015977274442280417835944081594744038053335857698951354658392953746973015250486355414991168894356232682294406590978334224456561802355151666384674399457038542907371665715090009908703166571684829995375579478706790015888467437980502909530416679215712788621444770322290531716884035687891470242522449300870542765493078044059898128440273537199009646536120174025607885621321850663578509650349795136722983308899779036592743880755307890900804192678174435259420398759248372127155794224567607087653793780271752027759544637985619485791543183994898103192153213883384633193013664236750443929761207375252858293310258668871725644498546405963008568315201319866564340605310100207592149827390042267310091327696371717630392097344395770475480634910151494883258067332056695536186226020671568489443309649151734126531537788395186736533183636311371762907703579008319214294340291764910590222184149694680249104045127662765872974199541216137656987979640256225564037733248612091062417301006646992853483400505306689175292196490878932770643753904590279338920929128789858152427677525544142454201257449520754516278209240778046196533994510191783729738833567560384475180395431162481658456394463624950168287130654877437988137580776169273367752214839918266473449560158749293294300620642776089128686959416104840085536547752196776749952778089027128541553035159697580956913175830675831590017250879040806057000785402030278871552465202257538357602677992187347835450700851716409800559989198135913731969130520010700775926444552633653026362614269320667073438962003606889063881043331716929011662057686646238138092847588645124232567337959066417089451145075800273788525150291968295908039846309507320128354761850602992009994085689449060651729466585671869329230788876441805009859454673106641102016000756334974676792457629092770813340719183281586274661230553718939120255593843664429324336434256307852509182875827759309626001624855805984689662019656426817024693217004406157812140851725122769774335994376876785141864582268922783256986153806735056867311128191752523666676633411816176904624565838040227237684630865299559479750435030328307314975118834779759907945280464568591261518254008101024817635689034467702871601383777388558351967287606276011350217763055130356668017609227925955963093399144122317706860383052977624211423283091024222947398320517728402565151674782081435741721605110916796266304273638554913463042204674763771274731666262635519210957920127077328066722306040562938436728575292818120177545482181692524056495383847502493524674653111829795756619251159516064872648679556751475601674247572435413967146851465688860638082800101929981918257128244896523550229877405305140682052794839541354738715500311559204203740011923339823877262348304228783474408466225852356507397871160672978690294629073756586368245718811706765489543073323251728635125300017271879531482822788163957895009960397282935713888878765525930571674283547571580483079254643376073378000798023698365949393515653920590180328875427531354373683186604015254900614192334994987828377982106895477947478097779561556835140849852170176488672073285492769664693516701877999312871538489518269933331555468535241300660121739509066876716489620801753546120875012608045170280880714586765964735918831199280667165755488252174376815438781124183106179919504363766251695104992805696646233599494171668836547088579372939903600831715502492586095006121395460571192410068986461138828475397895990717367222426234441694012026368710627886066729035857441959110172627539603659691096005959985728186193390303591238956199458303610871108296612227500491657160070422967833870327175883095327428073406695640624003858920003634851606661758418064574652947783634499592366079331343795302606478885085091330511206342391237011237421769379207496005377596461898680474284077779552471874692142313531792422944968201422028932875948414433299908559450710036071478484605616575667293409726404377782756827310373044932126398815076331234883061032352271020755050401708394223506939164460224061686492506763545670767165962736662581803459758916233931298769322246906431302231830960785896433365483494603318625114276155787720968961255075143383480613799245281734210982745887494684189591905982388185355257358852697225949200886412011096450139492258536587743001641811897147661136219240561354118285630231125112586335085833725993840833237783598547196957854689614134755991752409357235162763559733401757212440277279732487361591113544184002722715302115629989458043973222566849404898237519407673343019621157292252092144709754371438159416538017748734230444509797392364836685387821571507364898032541287353395342348078302959170289427800639396524902122436321586870548739271584649072513113504212269025344479284430473229647829526458001516125474682785645604046942585488874203486891464619031769556079458885976082773435545502391422855378540031341356795948699250438354484731589614644538750429088970147289391675225030361020526723573675402605891121329142057427372373625304041516887525760264899793323497703584884305560373200211908634557497743708382552672418434782587862651313705356737863455048704624017191614100482483462228354749419113714421930986180666750610793961414809751494699067935726535409916414737327290362768263990267524640468292610192911076955396864960292064944275862717613269352440156473817702055825142788209248314714748321956184299048729819466121819923108621056167188877383465450001233879470817731838458226852036930220282363563213105567219971780984970902349596195405712727714055648484938274663692843807857789450030630716123148569999726511035975292720292501260138501096514854362921461048453242678830857165371073922779008397238158710127228315692939104786310630584590668282616696531086626289150511425439748052556347581774810205669609984861097979909020098550555237674473973493826202955266246456894560970872803418599993011227659163807807435439706734987812646680217345734480660234251375196452369399008857318618617911531911471683637764968872120740834862191098337014237440704086168600779302904141280410534701361168903766785826045925712667236451697050382421844574153082939418072399435809629236722849639066107807739435442218936099011949972792923370594257000572262682291393760431734954728763005559717645478028736596322602130396259618392274924583688651853541284813785936446539632776771436580152998916144579909712129217042306496655017497511283064472853358693380132573736099599984271388049549030218615067572097704559116380797388732802267292839880798314013270068666288838666156104161441895623437571748871015761457960783925752902794895050460827879055637123665556032971505194323931980387066562971502728910789565385959083843827830774838084556976007387547246726998852895828480383131917718740908381286387959020159649392642691018047189818201922598182334107453828336390658805076643902215117864026918178666935369043342837889614802641325779242464160651845881301688776746459206303558872711475284089990389974331693596098647362898226260732848916021229843177763279842459325541864365780703335724056281900261081966590467916230704196219343908341885426888649618824381874178456414630962818818870061284768313107074338507092938129582861413802476554713349188751476335706444707123681215542762015277124753995297474221780207474976175339327050185032100155674443984598555078433924482071811263751549350304143409524492110217975632958903393258438636014874922378732603963716850323760970647335392983413927013953855493169328536458560333578974021740820801088494923040081265027110721244279623643225055771710229541281937213887157569028380951610444287997929760626758983935027964212740239321846356221424368247683224907990190941748552073489776434750623475727467300553636754190424251233275479640985999205074778245766914466945898231125678357902499265964361061783746113669250157066712735213214634388641627376477547893108653354348784147327100490009336706456712168981754369798389496300930137888294455919038056785571449850556704639182495055934435609583970389517409057513435079403365016971189013141696567014636624846786864821682837032787973698332056443765269133661771191394924977809797567145616517264263182516421415195429134553789027211185053963210703428758848646187597530539156452047263068095210476200771269345295916352007206511128143672547873527430012788274171940073781228008731643540152595168565686990514693494586228927799360315974929516930516353475829804039194017913645866817011785401822174712936328322188101787805733544099757806286736604501208648957520889292304713187644031808857393515700562076537583416624767754427096643509642844139484932394798319310888179961482371081832133575082989772041360734905854560125505238988430478264562966191310942123949865749329686088740741674737436609429004632379771674863918098251971402495481163040420123149583895691560928609147894488948158035472360795093023773624575372993189058595721588720085186934045161709197681046038253641457485946864253440564889685137722989858828071323401737747555143347182657045648519657204707505258935586525266188489758332068342984585052881831631097161137812796529691192349593592316679173037568345650653485899017844693005314746574449231801599437368440731741045106200262571316619747219015263848829696811840981524402943389639794539111684914821218334425937801717123379124333653486236584127289102828329588165370966178984721367045678495648374653475463051159427937422562829146157298712727110282887808742378458727103726267950995936186246388796268656974951308553844731017836336444388943690944994171271798148605567014562846622012802953776254138093610688283812882811578013277295239055594510403435915246869709696866442126385106900727448425642250152190567641918770700110224485235578115665037498579132888129151268560070346510321670414305295478132467819124904324286201753262068778105039947856184257545223909888790117051006591135478224902945903111567480320210058092522307021072126938124554539887415847542509460409699195811733847045918617407641419658356732811418395142196756645955592599585899796518193773058958891432666388186722534880703988520977609545902596670753820022894476097932435686889484897250240138100869203012126268485510187433166259335894230239036122856027041163667407377396125170545579794110613383462691694018500815600016954645145502216513489438088907898388262162343912296621941394050807677781922925867062316601879874865224372566170741637432475111458399842156667313881942075624715891560384617945226790073200717571718393787040565957996317315503419296255008906045719634456741863529101168767390832875686053570136132200259484165243764094287664980231990673273787298380172023379656871280285459698035080121877784458431193691366771308197749515217023486586428771547792340001527508427495003786355279068761146375855628255328987011728257130017851817266302578347203679516565098900647831629168609608869228241944630927318056151033878483408886876402113827342445513085664036422387978131848148819176942873390510723468728994420048554348019600465182233088322957933830458102904046967837349183999648833457817399251036724855524938300092831128781353489492146364584699549549200711282767639162360662658056890381844372299646733514858654526649318878810602545457647969571168128745852195272184445571241420136450429830533587540860669734546980159522694290485260282981244186443575716458798797136644642259387352163731401363104933685631313487818638249764714591337122553801325216987003388137083788738663010432740907229491556724686198192034344100039976066184536339350102617610650188664589360654422738258716440895376133830252778403832752318624231279516831400884500317599683888979161211919483359198396609018209241575782025600484205738568772562141178103567814088712383793038274534186816026852748068058211866025380492212477800854622370429679388247749168086127089928258044230626306226910341924675944295230026171477433229733584285314652252588479297372887157397391415615749003039857908065826003257413325636214347917059523461002431114149561113661619971002491283099514013540226891746474514869611799279130683936054673717628329653911603584585514228422961928478576453193109141774001365225093072256543075669956878775600890756484968336316045515924238225441980588804334056669248671839861751743782438751027533585165130728891292585866390903849417436141238725137985289745769436335252830752727487404633010808576075741320622166947750690740619880777241384982516509358138601102633043262161068620338116634078986271374000986216896706563854067856474507588913071571813116342565960244643072994050298140760406446561641187248812533235143481630659577122349699229593489244764736287363522840021540175043923153982568362683911466133420650347068724995702922386364934584283047878402118524113002776606212266353569813767333852715196388600706058155861044066093406295467190952868334574959331095077788768123289509827834057247777120025494485361070636140042418352355201850665166522277989712801810551966189054402642336962298211313288194783025777043382323182414790748183747129892431182289654314728151334612252450011661706687882127247289058947924618842703387914165923548831916097448591491057636380104579956221716290881198269876067699989433871189811256733369495250226108251978924842024889439139595172534119534999549182092136776151035324900854740345079599596407079468923418953083391091569316704803344029165989159131097021462126016545492371312088237710153684841025054167336346888512604417149232482122307191536792097925381373823751393637697217384558383440383511829173539606813925033730329952408115675251606479232478331574810728531846691033441720040992745086540681993966118369859077770207860542687953626235356826031364947444503378585489785580830398923018044127461757341002003906152609623724975032341512976738341485409743647059900181330857008757988373585673369779879161650961481569592683475931284823451149163183121985295834612526395012388067060446075796965399003197959286825168327092977888425275626365631453732570605321385278817706152124144102844757096226913083677424103223095545144559147340157701330658973727581898082634708080918479274413417008826789473151241451083553912898268185224197430229254100394033800177229166865005136140818485261640590784369017096994213762544073374558414785253290785961258971321139705115966067664196555295527904456204365657130162163502156156747339882076466854816858299718483574203272239728054355406132756347660949749488452659607276882193686199601307399510424865854797364596010782496125013985834250285527422975595107641182352939466222243029768340531817248031231632460261232814612957707352828963169612019777809315881842008148872653728746752594785516002544715228384630776426697757610118787738890050393263368552856114565427532142036512511527066376204161977087910999870792247572155553218908657809192346576468544156923379775751875765217360245344393152629051263296412354042596001821568701209076893372071249948636836442221444906142115780091150558557408500684508362172485352380653559873938838151574385594692428691184942645434139981378786896402404549292287712581455761854068114153509278779214648598486877683939022486136253959557410805843389866243727398045469212878560343522727921652797752328795842024460710368697475664746107434129182487329711488582114992597271732929594900554680591521191133542102712403628122989810918105357127425181336733801899880273816379961246685363084850928133740333163474678145932901158227963518923606248476276738972347881142123912533285512606647437370161280982824658234055452406131677944581448250142695989055999667033479768665536177352809374755110887637064565040937583859692973656530480598124763866512806205734029772931852389083628034755071108643064245681206315807241155929564267052227324401169838838685819297332804755639631065073281503630291510674846375602947048026193434129384001306039468359896247508075211363950634362344624505633876320623315017579011517300339234283164906533228630769321939132318232984805776284574010284209525295557699261821097161489433363201266792813806214102701275015158744913236693849214962379486958838954274539397212820078878779300049677932202898466764196305340321528318086079894800743538966854364253676914671199388357553797918630041684736660837292968474959012392772043107573402313831036458542526199573723316872601117501184292248475031717014761254968535418915076376768216306174485846323041075905671296341128746777754819090483725743611109464824395401280579912254017377547013434883615811527387057998172733372954088332694352758191078677193693171663322014464800264155188746045779257310782982215951153792862869560201191113530612293810900117380288838102889004261213208398334398744953488495026487973682784983760383393047630722623920905729409621348826197559262201812396343849767386098854150811023819116839776883285600984653342174666426178907042043290967477027898640036762824342010111872785645683646374378337618833547575492471390000297698295484381595131422396027557294712986543551536365493304949549692391490593867786667182470797304033407170998151844873248417296277879531548774030213638539142639614815479088083506835799530142492232666111128491039312316055331676970323481291444999883886244076314449815421333550676980545992959753962091641962925207206252861358602231999544283839145348998345027806627207229288991970105211197259025151614074717849712199350294710753582427083470262631539954560375951169076452149924002347798670516092075613289755129281595447730245485509551423068865705012584161680092872740426664102248900297571305487241173181195832844345554961892094541912279724579525283884827554768523285817998954531834340530970523035143560708621538187499031192681959894548570420299436416089626047388158302677505609781532521011822677100887572190061769616263053283700656585190847952047618500248172043425149998085145316646790258823819079613727935347330690748739014444127521546046194175289352301779917108395941007330156783214378935231513439055757774412941778340108288479567764298250184477100814916657125862417678521469838288087297344489093155698882602957601468678468602259760788218516174902287318395348156974453810957604956636032403895776667419023769305675858645307857386131161825650918567542756859709503558331394582062063703978304381760718234538135956079659870714295721089333973198848457857374244528294013446579163435614149876450064946350618053973556005362469702138683215427048378734979920356257558899140984575113520638733008201401085877247788245532829088447555960675075103736174825252727271904991892192376011224884897526648926098369099638129147976138838190237799249360683978832650379762644444514737497185303765420148872566494296734710638383096883980514243471391474034441665554121692253026518906805058031332559207542164901719999438726671620139433958345722343455760861947851682293549102044914073510296664812865416860708543754759435393971638116467054333207847634234907831446070172350096813002981516868224864945529972836153901382974849986909222721715416552190149334809976421231490792747245393265576074743029834196293922403724265842665424617871302141879633040300160833299258313009355715425638330398898028131591117240277399225771476872319356074519798901272300906372076850034568333003687186682435986566632189324264661470263154901648604527445578381286503145976508003113446646836332283599772654060205900631112463812411328784007681276170422738213478340255112953548558530998798435829070411854452538521512943161243372898880640461109117694904717095589252730943243241413664674361554304318181453222282409138591474951326364208257379061614608911403289688319658607436701398859599082571722930631189476736555287443239240030158471382203861544568848346312549894300030622058761610330709847057778143156929887978323712578046911830478476219840928192072728507848855617141351404803243785346804333494108274667383079961014386644635966860169409370195178375838305707670450555817703068237032044007953038782305460042182693804996808621943983976942784358524141393079357873603307235411947441197254797307506040904414913150357097161544780011806350154362776952178371859940389136969297823451965765240659986101983384139991772238828367142951362339224572558041929166083093690969321157790682377147856426064351401856590161309573570182793078652286757249597678813878083534143293358987459090544447377676431954095547154947567548917490905093652030199807200130884807150913903986420442890471151367345889719756933755939368742873040479853860781065653068201426326633240587637453055356093250207671376233177340033949471689826010273939345605035418934142347334033348263789176172081369232770940474631669930955601045310542961586554520776504354477116060063125338235586595507857896754887782259631959729875550946693794638366988682207108938091250885197485677819941154957908229832467944525080046633324093706901478926202952858727992294247643598183066312616379803597183366684825275788027650579043054827104103821646676135797131137530523531392339685713655255180732823940233222941884539354413566437390438272210855376152065587452242985391082833777014076413037560396374666341393331859841255249002503875145253207013708391825106819812594093703494022474555185626278581490986086189534438165738121826811310334921619657518858973738264861380021124445478790950097612124839012298695414222128197927280473006498453989184709856910121340576577064198024569312158719265171702681391086775262635869531755589483395607318974086913371875615478348482920614103711108893399886819883293174173664375380395300346919644513924014509245038851130684520683302492450101261575006058440880011928779150591030453170906166447841075060969942811786043767066683572645093228404220071302434570233177786701921953741591267305866970228941686316548585043623987547670226679373939651710810098704511927521459403713022022552687619890423084357627270752953515704209767352436249270769285408673918781777579229609610517026752671516113513623821041785755673407630727829609582480049039337082926308684638870045734368273142165256983827214889351759815034414054556697790011122544541107032322549499116286006505721700913219025781309917890893199655321906929422333004566314361947712841335699378539788278423625322707918660989911408252004299344350899799095890849945503346447789772846420889517449918106043236386747976003547957613755883204281764106934006701728422495757631941940880625527588722445439266157579445561804201775419656790870572957116466450987285250779304720787114332438791766943899150960692734661223497227656001264857956351601800238315727356693087481896810514714588124693153104811151945436744374884974603314119880129925545571414064419233850115588636566065339319369975596062031027248461801489277178183546183734263036329570223471374276614736930944201539369849038386398068418752381717231305502532018222607857026351348795256231158398656262647281612810789812880891948053731078138670993665191262311258608994442597132450903727299847552006319812711330599382460797280168846428954675682665879464611161649370202242072715611692766770397073892314623456743678744271991542468942427195887822312804472169985716710777460584257336501810219197501757065722116882510234429909485831630590942216117830599755487093037822917545160569069679560783994493047344702627154285598384723411849161111126764925566196266065433184824944864288988360051112106275395883903764333591768261476193521018925866886229369265944590369512864059201234502455790477418826522936104360568701870131630989502040390235150272129601655770256950056963903827400247138692851582306139063158848065668199403296839185482240015871861500325050677423299808912461740930170987624399281932236543158988720210597792905933497229954554983946639727853545969419438581852441954926090664270956316884203265426657360714656040193178773614521704557343990129453699660428282282169644568604174547942910345067573702680719619884876564649894716473999578560677221018570138504070906436569824427649569169310290046828283001920638038004580155486691585654967180988447591536863486766988237052641831627180233104354735945733050298198077827459948973419761386100410558557041279280369298083933420655267297444544344657276040836643251474686899708697192367710612890945997325973797242221191178404024824026754703921663766752961498002623763993366858715404832821307769310783314707831199541198848779168131238547154830151852189758698067743568260245394783195172576841644357910555776650830052571383722459445404308660265826682590446355816800006959468475734175190498873453292721338529101964118728937372051187230707663517366210098638258761036621317990910844111099017905672901968166822158119642497625312605899632976332308817831149455626438570318936568819761450324638495358015936651000460590352345158370360985015981739173736630999686043373439331939153495010399865822627912034373878733492311937507403340320518643870041438382227314737465629497586616379119022899168589074769673044409651143762265509866564488796022058698126448826118146191852654897212804477758198442672683481338180670535672419524952750902711757838727333758402104231871679944295894263431255674539537247237208809954097888416625399195061947519272749431185150324472958871491441337704138752957757213920819264286472550480014611350292422025309072415447622867860544619297504760626291547467791305125535037715381815062249071764288343308971204732327380128283716493804805782591468984432788531461227586840236206473634578684224676597997320189253850554164642162672491648392982745754664679848214073340411498759697984242340735912017981501224365474537036395825069340967590877484219817411327168753814554180926504391092381384509037407506772498158014646373934931309187067071571478370526777962941280780649115699597678111617613871643865155991401868017431562912909763945649074960373062283314605607382151895085642214218901312521791016976683137341838509545709953358887048497905750661400438073335244678149871116705069798703978842532578867511942042134661428966096211649720793293910709698996149125584081426972827734037615014336186345427490424791616128740000334843107147192881450775019094507763546915015288304379824875574305915336745532621082241223537362241018630620161455814595991419785353544136314273698197158203534700216462408811970327805388171152947924485750919465355551393801533600180740409223731494336693585524197650832301712735076050424104880780063115888193778689283604721603081076302094007412820939357823699959032667319755786492828526401445718404776780557147909544823238946505642896553398329211324212328568503374065680842689710141132728979563654653481141097826642418188524702662295473025245781706581846996953814574339007852775121640187484985716724804262215291247003414203130114857440115911950793896541053198796569353298463227934045219844835748035130139730040121354146285673770353826441824529362990925153569107230973021179566679986018354331732702792392046595234456052926637157078875206386779693269176705590237931988229299468202064968409380743638377244467054128218708751378742500713422652257276152493412975735670701014881940909540106025459885910843546313622260400706744603701709859054437716852957041772468044426700242985433960504725942541782971172466174827095895685441526878921695610620305611016524649219383186290945572262596769054144395061010365725675081038491903534041891277837936553980223139162156341852372629515537230810175974233048043150973802735754629177122169426382658401503123558641196110874043005273671542758533925823812693003611177726894203043373714189272037281363900993173638905151567971755743145751485530915075699461677300787200805802742038793414378931237268233801768452776351654631256429196141903456508834067184743150767454679473518467345597188836026564523650056734186194517437029926984242589567331352424553687895618124728575703300935359845523611923009017646478160157996440276963624572941074737063672127098819499264706158076698850970584198484750059741466359437210889116889808270192786086314302704434550881383239965620141759667296285076315040823896943559463538620699184931100280726162797409934824199298215564107927160381720664074923539466641819627487925708746886998283573191083336962390178508370290240683069198475645666732323920607520041729570223965318424691636692496003465401455463957048871512870245011314248896216776955644502996264821750739194470965445329231775485227391414621251766538995589377443613264394962502823100745370672460547657075060942522760208362886497120340611194157312025550235760253244374913415854759437036524033320511052220098918498193519511658682384040949458882519632563099922904264872128824654712146720329063640996906323784326221588714480163914969151496354643443182614549215015871116836369496708741743504387412502383729500420255757385465351297518242114142214266112240414466616880472926567028504599975976356394162003769392056495017701032813227126480461815397296624798078365179474826205764671223751512388576105493133464986745295245998802433773141392593581344375464664167865278529927738976517766699542015207909970796914190767592733847406070608319492621697553075691469346468624006336736450598864981366949778756198470989343437937036839498667550488192181875763861191940079069017080527437156454955359011943936194877735577782515751356105858011652347301053052471014846434529270711971828236132030840607722116384843366135378527377478261299946900882554728634903952108817473134114323054059923443411949812774841034691291265070570464885335079361175506191920519745376635772611857175944022167179163357421403929497612247910443091599023823153217992952334753831881830425156925042422522578293968818740955616641927066668954449867445062685022224895444098395220463778694125271519387481099911378097166841007958023447311116452200680811425027939347895501676923535765070949708193620985467810742416218898129494781061229458177175604289377329642397315110290918219718353503173716288041139796368283008088506121637756051823585881110066620315109939396450702690597543506701276958886289854402401956128385855583915292134151345536901031603200338546445406007030656418474793070070961392775077219358555956831767534585554653851875069273573271225553064033187043903618074371056452473196704714930732708429422792311119462315292222472402877206613413693520657751122506004202371855497974784945479352348736422675794004626876416346776503826902943942292156848863281251900048229764095079804421170474569353448954521959842135337529763062372890858494893433515905008490095702500471519609429178134555483374711523514585990703040451109886595564566522060275448656234595416434577828340077716768893143367036080959006871441918946379092519693756402973537386238280723119801776910109781508833782216346523436994115364526218627087023158272819369146340346530462688180256076571538294960562034405700405298285913994785263836762737291824232286469218899277909525955240459212166407951076170556074899755585242345825439987327432649077342211234596415147131156299555604695131196743054098868530892741646203257087660512828235155985600279080191402571433341105232665676501147382152636663404804057041119318393222119311053077667777229227042367278166450103934760896906821858434741427679587368361527570058010288002984040092338323230809870322632884636670887637245110178175763337753353620163861076420972834815108587089306771353702714063059980853366274121460929629767935451176062530324731349234454715341856417335989079561780377852329215177609425577030607700442269249856574926394634626419894431195665502074599885204425989043181562298198040042957454075344604607591975455246861642205560121626429619833117576020941709446361349705398545776705679182709494014605068198305780129881333421988855934619752804934884182772100166818155416813058562511144007082765216380953128468080498324594342734075046003752411637217364066694712909560123809559155149692791512647399010184818434195194265376592238352202559214001503724256759929938923196157426683538546320063626271035325164259620279593109227001380945220133649886909421177524331316030942881216773740483721789638118460479341316776523326702079955616373148773857764079555482955026849716422378804121655144568392423460419498521851445240163507573559286050827173461195129186262589394275252038094802280501765431580327087126788016521855384588225264540309659972609567663930246424088001362716513664590691400604877886103073319666189522066842897535471281719395351118232854567394827331184696321866222945043439237891853953232417178335493851381034636537736906190839536992159824590522043057782401920095172274075803651476102218581421125889988178554830633035897210397757915456395137761296431277435115876797985762943263909677619420880931386950040248101354769935732139577844727386041798587249457815598712241603443575803797915225850722526850744189991267253562412912388700141403611334754856452222055962873323152271002224493875869338393548833294154474482157915192295370424035920027908242106019988503735870786580815680794689355062105259563581980070421302624675088567736225702082523657406107580306605830050190619278280257361419910841337549638275215374567556976644677871250113774254727467397860579479404839266212090230247497946908680373689453139935750637186527237956321906594404390528192325763285052715856120332797441945708647757492001536527554517395699692922940639762672180703519269445829346684684259241439045430338318093798704897521743148354255110230748128036169538902068420353713233860364499157693278979825466148716607423320690435497386692927418700859420372244361852536330181072191890724037610356892600860637753182961697648221052028254468673840045787308620512825581963542495238641445472892145899466316186392244673532879934061664726203691454484171186788239552765577575807990279999252909587405827572686173535598662830826094465071271635838514380640920590914529650350091019977909408427609453192022482441778234869109138478784997575857276950991623684515661185611139728001626882709192306945106376519685866333477630691871949409874929188989875179999126470359482793413441123460447843487881619480926949252265507843184654851949413285676782684284013650596304427731983104389652657493370740086667727810617812158544835753773366286188594341059626936246829347179750580342122048527860836560197088869950137140055350300346937719084215003119091552287907185392275969648024393814662631110183111634394003395409328041182049785631073294215501779056582961410644971900037697599314227055357787844904291360074845254189110402015454850919355966133802672587405873707275943173481280094240311256179626369042098987586190107637667738594578173683187822666701317892358840894375146908709304066377294819403744609336425401080272418790264170338271485845165993826007749647318573004161950396283055506038372182504638382061946430111496341031286685080636756367606732073855611548795814796574571139040327129540275247539350857216741493199849107983538760771282593073574299181592494430401882845719469077614997606053184577327176593777925415810393676510082482150839431615189768056336354189620227751784818130784399741862535475933954983400149886201892892255749057256686401464868957527269849983373793103204392543305662519893357502338853881439770914490440398746455538703928815921175961027759555589185914166370433265946067418731071762429027937627390460038254686397722174356325985979203464586690301339690065003027839922932640455378834204749565534664112524063819684770059178448182552487760346330775271288743843930378168764625163273532024709230243407308472708369550191460457664507953642508715510969561727628251160959657718822485843406263685773375686925881397049278741256770037489365146686824096222601043123912813405713725854571925169613502472451054721067797002324967284778800103007607589738661228017860944668937395413420588876948650984577965966342869388492430298376832327236977828573310190232051258563257043765253725495829299727035759971860039557185376289363990184515375656138320317304924289674830578545108549748359219042134674915805202334788562973372106956460374839811235469567241842813182259376569309357899155440130182272831799251462577972886310550165211678517505955875927662281235489728754368460535320175671304052211972393190350782404331049183006199713196344151453749865601464134560157092324260000547225280380750166646676263195033514113793316323853659898944548818545122010313315836098357305729065379984835632015877552627664256844913398042400944149295590592716272459232882498444425478913280062009191095399936384164031279635791342556343847179759034326937901727340264283883505695034796707813619966263934180242690879869336087695246888033304885193526761337034015209850660139296969467550372138905731059233373921284161835833998801177277104313791573894074260153643638929613381543964524097121317215755789531575518675131267538263972953365748298385951688922395046938507473529467951181751019469131609635256957987670770585205117985689526010273935678286937543523901259574578574800045965432118855176910154443702637621854135322399297674914301795963423762705355199378197812103055515574251646564831711749474493790969467429232538477477271313509835095153329987345438531591899377194943271387033491531095770874233915064769202145793855516439921049175784538934687179435085108969539989597179265233690708960595214471271757507255749087182227345688151977285923131260656612854794301813095498479070307546347829937349913176734629104306715884236176361232681394160819403364601103188291645984101595862827771616032482884159579772875922945192484109680172876481054161288689339656254340064773321438994729787531529337395416828726487334044641852747533483612417042622195767280563941695369462466079173715825223974122837069061900950727620001797372356249243317129555771067357046565654627270444683868290644217666445484493113107387012638355489539633261971601382653201749877411930708805851002812091518001885326345705294231161327971868457378366481290896666259890412610890453253177105588414388166726507639659628839232892677211904666472887926664725921852544912458252512003419919942276791565037839393628579019296218395437066067738183195250680605945420281004784953766650826080180654859864703154639812637697796797946340981091497802550984449308111503071932948247698313752588093701734410937752508875178821123852592889264062285207721624942195833207784383415669235868989665917390340618484160071615508908691870098028418653461163186474423323980364301078301361002811850768843826086620237096245963408011556411472151383673857572004208547784498272434525753257857657969298878759902950692370911151747616455661598714621275510463725411001611245530460459816835410309803666372675043650600917709581623216905177695359157612850785776312317974329319903508599032745640112177242783102001396689069067744209259849777103957185148057213015858182680675262450160997234545612535954439488042263900638668221917989835395127797969185723866176218331140403375147598860408648190044284753293735199897496771929527184022578472991999736487337557315781049946672565218121194170844399924049216905430452578115670799295933991002950577023807610158033000638270141408905892224998531743260163013171697610054518906415008580906205566397629309828689913042235761051208931479104113146737631636135179115258008817012806714202977847385540200029429787527883210607628247165643116712264866309553482032397272353800199155403276859911129957515153161906448431551337484781527664149089143862906068870721332042930583756046205845373689033573058973283269728649498144782008156240904753821097711957888540843266465398903863678005262709083889765289951399255419518980942287578129078679341559957036018293123271381158772561404762495718267862144929886555170794533147084734339456841286912541790801164483484921851704132037792660809281288679482599501138445322120958174168451532824010853651474280636743106417236291858813346385156557488759409349615731072869366997879354120523073982833006911641464989727160779353918362688918814266698652018244404238287981791932821525377929666080126577080931869391814735741272502145956837109517135303072409692422103988209046708990948737022788271318774235629928347725569382089006256771407887423115774404028885461140471458688092098161740167037690877983088297519666219795129808771356521467416870660320887971379235122934068268333181995890819319612830120853776075403516167908030516176691122331068665122663186425836786867145175486360316507154942253852677282005451811693487780383127341586322246823607892513723050607086049312671368137309708418547444423453753967866482168531906067832873828317316965519422254924578557113321228642092158202241216823338279247608039556152169639812231243808624264823970879428713546807260229372247695498068440652934668711744829300067775734791044381054584121868274202323240593640714611075608693324084095878095195885443424332100527368962004896640218199045883614740025234811195671089759859705695632644769974129899741048358187502392966577952503103809408060925211963395446306940496357078227797920295564955766693076188332803689721198866439534583861264097462784373265327235861181079908883240887299713417890031497666589318002060057341017187928100599248062741701238452731390686262566116312429118632186646884784606228038515517568569237727466802824896427267527378902749786037874195614891546738775065763425923409877522201544812948629430071342393904921827906791397326046075704807684475220482517790482840711370261599821808492749313544382087866162093409097502341036625923185715790684813842247829958316641377408851383375920413653762488537852478596960173427865511259996304985041028528704117732049384990494882247164016438564317497104983916940652626178069079071051971148797890796601189572206379818891904970272258496890273721618388259874371364164699648314888578020592469914162931150047873403433665288407010623133803572279420450348784586896131730932487958820494909288435209442543017025753699380977514014837430427382186147670452544178415841978930288257900953273906437421042991504727851412447740383025332866497580969646008362909273516487650515686069980222025664319134453693586319582951323693915839181391633116363044999655250226081099011062987956496059962316525136409535928469857699838688750081801800811704450173909572539965695292422384795902478546296239507179538222289053890360582932082370702131483275086727428157933550003262448473856134931336057592840784338053452149601118747287917918640126025097578773363308414500628705462974213056623377508871895341780474497163113764421240619191345890324374100050520354662170163278096453167905538392083615871363427797901326841442978763593051096985326307913630932168575328057919890597599753451947941726300344773903943358926473301678556974479004846680597188902691289157433945772304166733219199403364746190022739430855831844588004397565104542368099487447752577243536047860032724449152625949503329258505218087405264644867454857358091841821191210756533710733140586158023434382060411049288393529642110723842060409754049283060502838410190339715921018705008006877053254118618953755815999824461940131187161362413012435155160773288682670896679914615412079079859659375825951878526876956559737197954466284262102989848442863467806623615990452108127948506759673119778685014480383705073361129697568988981297813770650541235041173216003766349947951124303695893819604314742775305639464796769090280827041891947369474237580978949644420949695601141323295929556021052119781678831055432811031556553425039532231691962446079326994883417348018917153841814976594709992981184210410633745082881920340799393271664608594418583630408909569793859094788498022382336370968784777528276574948601809607242001057577414894988280608035169627121606486421018738272550671519147143904424875599079951299885871818353328450953808791553684373763625767579994905550508093592439717234970200985970137099354464750958583600134581521275462688365481906574797663391502940391439990639802300014837996698530662580045053713385399272157789378108767683640472246170312918662462232282170975367883596495747731798310240759170751050428593896515182902278917048773769991566914732899152453358152530748090992829843610171922281517172615040702948927178696847816567967755443296613670639027886612349941730049956290068884807764089192026286750445689785505094224363191510687301971635956418850043687013233953022707280683588787658213403433717779758237655709074496023809552589646512316561747686618877165464514077225164643292923157901618121546792795822758188128367839151064105351437880685049268508870799006325384132068017227360058445426260470895793758587695719505329514846409995470589144932233030470437684364905109608705345233219928459162062958161968679043143637013051350418393250287717677416342127071831020364209698427944936537700945586009987351261903873897491829536683584592297946847202558540141972878147486102568478381576447812499641806270176532846799370559855167412807893779072002921324261187009602389308543403857812350472961482518277331277834322268656170106939421527838598252631383891829655101127328451277857583412887257674308199150748520068942273376752355482189348318481255257923178175424139644959075194256967834943550522708950884651756387765062424761832819360636865945662531185552000290733903876787810238243390509529599900125168316244144088645627569533134025957620363824428865166591041871605281308437878332256920973324661655748975674073859788908495347069735808934319081487837049392560337586977909143881512228850487387655499389583185384550756882778749361060034742820637710191706874231431278719576248109173065607070654756914179438761680663748483203369787447263447278540873310162746204732145415722959391661098058716119350331959394822104091355772176173124156084747365207328079007996475359506903096005271284666344581324579739386222630537847358526041072159772186032407268280927711310433309375141431186545182532354926584621132475334382718317687618972652580316182808066101371119056238080367018373537704293798122222458332875228430598436531999957099672570605963476081611288887909705827941037351005320284416298246174081960758457926840814428271306184670176702188123867620602025323717900175772723610216552005351881591648188422722376756434077850432825405820657516816731175511721851425414752633645174626010641311508221028984042826570576083914756724886981506796758260272018485300512181098336680294824979946725035146504267642015575242241761463132891619984935102917219870606565075264176644219106383308021242102613994849204614913834529521856813722325367740734839580899994562394988511609473183981693704406854005893390891053935560804734478713162190347993164141811202640056619447381056397316118634802988677683325244707586194461713506100734067630358652154387472870774651225963317679875232584268865249708286903505567962248966235716274982336181873799580998931999422600748120071245751589916288791437849710162695557278364594552539131780390022211037002913475458839975726297037907494708471065812683802423036238472166500327724432283863143066413760802638595599858981612688691012645130131925613436428601120083691239438462212616754651085487626170723865670082453775247701250836050205669176107024486763154236301171609798497512217810824789162035000150873486089425112791026606873212398239985662176631691884943966328651048041424481677444937979217024219237500507398149911254857001555446517485750756640535301277403485016363674397508760930223069738542046315917600891063872167760192407880288152988465951033448025697122337471135071234480487959207109938763997704172293952220716168829670794463711230595275141069426876126213792701468897998086405022812385629355014473002777710938883645150544431364629258562804437862583994521741126705687426320214655074714950838390696835960926398154619124808938145454944105185672575759534633809428600342379332943174035349068831064275886778242934438025304913858950319266185666068070837778259027512950091348350844439162722582356369404148903569370574394173645725029150308317546993924109362198967814586492106142328510046926814241088210369092205916164820923014058566867539567558089695614822966282313904533440722250701689468322363182618171106678078098385105157531100919691589935981806372049123731699623676799324111518751062900669432402912441133126494704617255979545354405501749450008458331265457022084876362366061219372828627054824151544956726537989072262474350484507950877886270138557752420459524842666617283813313931201924647819171474087242257214495657475346337126699804088709853469613471487246324316085009435100121331669748991994573029975651958805602802632867368388350954221780601917356578094185755295597398891085977710765729173498267375315425754950286731508392483822703270496537328025420900937436126714347957055472633531683894384032165259234595787172940927469672774944245828198603333969262705996827261431252048564243763645809645796816756240966458919751660644879408371909634403971294651489617163442660824411500565611544647271706998496586541754675339387707324356970708058561077041240075708276527803329888850466067666360709968260676934465874708617257192887338188811208737626853710440603836692675766998575438764688246244775544846154562926765931900052360797867611133803085625107301226969146289927481662788660134465821392958438924043751313194838042435472976498101246767996987837383192914654917329457502864869960936241114606237411352347885932608723774770397016416753306307961815441485722723337769049316619896307496233250578277732725051039945296485196078703088504094189604448913015974422142952058728115143015699469169974039849537955902109034453060133854843580809617202302378969651366767068296019494779910215764152126370686190007739231068987303497760305598115970613851224140807123959307190279534092187950968995418643389263880177780010034168418432280553759454223597886588875333887010173147076603071320461298030154638774963918661473114328351292070048871969412706710080826931193594196792979895828551495965146068009845039818853389096266093276358959670290487947510051282783389887458148614940913071207425152830891039097064913835071902096480449418083654433204290139462535233033613132230767434015549337148570710874916879708907595267860547373476531070375071563420724109615264267676031292314105143978395557963939507533887420503603266423817725475271328414309470609800447302986961909699687325957252064967966371353647139429740903396596379165969508386136151426343415042276761537194277388088447273941431555924116194275867859378095805822049983235373870033813255837266107387383251832499790233784995288566936660834998118563302666986529732364904207965238545585527852125949830027973300707015372930470307123211022255640845426242953387967762258898078789648085291470664673149891070776733913340153319593849031649226774948132530630731364519171491531143468704648567095045685473504152223126458513822205219870867173054068959762612124821390789752146039954370925765789373583586197583448762338592914134123660321776182682614119488007936651432939469774705190952812390594962521565560346053083608519688350523422324740640192382096083075559182978053652121420385581362734131678255823744976798383456129026233883168893380864259241409821506102192464606774432043435100065146962805605501161863826764798443022675750146348587410263462732670854922449709364380413574192168153440062832764709893768994772064558759284383789363885492813794771239276828188933917687283366920797141073917380535730485254685530805782730647918066374537497207862621959839250593422588243158292701300096883456080947993885080030681762952940069345727180831854206456548762099763433045283332715351213875367826274546552889917802168743922559986637713972619956344459529773178351574576657447304390776203844424655383108477150004082706104215371061289678751425195874311509140629399812066319092720903824263023362536757251988048861334681185629907191032939141885559352054336399012126558672066515030464253956987460152129070093514918702644661389636790659752227046048187451482265546053721387103485563943296624053523066413852131616112194752371766426225208917250985953772952932609175431893051884603404448334906141829050756660643819956756208959961212810779509282743040274443254168846585347854362946246738303213064044581555720012492632731428185077811360229598138139208276120138472905713757930131974335846303157899833014557889291416297832533312290036124871483175851228919698860955568287580289686772048409322781974268074106634015479181016490643904371749075812308590710066795537260594109152650589722960545305565336313263386488660677119323128066771825603644907873005090228561265511457167287672501334896587910878054266435693756134528728567324004421504817532716769967139155650299533204438401738402497130312644767908752501819544064751399463651459346019388364921054400986184652832616500917456763953922963304342422952551894416748377832547060172787501718885639944686188360210943011922195876110617437938176193093866159645706874036285954324461652074443601505417717632184764209261565936553741997369944257223986492467251176588286740270837868848041482859113991737570673557305876114198479871285983360538166151527735511590963918542483090316159829026449895113362432182483590377347693673586433607944397956745975931681977951579190028178139407122624820558295439632504512812738056037773662504312129231654116531103788306167326024110720929889208630822131260919259866151722647359190496541217169966561301662937504245163716909208681431121825318779953072821547054290621976317096047346985210072100127461963235807065860951657452955828071923914611094454382094631686433408112598020802609781195809933274820785357019035556126753601899143200769563289633517530716526768223037825588301936941052629418157368923691081321944313464181047825071518430751017894864976174110715334700328929378567440474393855144877912839220306178414647309833902339833031384719233289614092073912110520775457473957985096381303414763042869883475340283443186975393335645288838558973178516134403889022986921436920529775651673081812973016093898097568051515023453519397010030230335201999607434417313509050563030013902748404370684208565540659501950837232355999552988739552126749885891080990675089509559083616524967977594372839796205036914467509698122959110032134642286754855102136162432658127788919712599791413294951484692249990869443624822063628797365985540982934198615058921905887574793952856602893817658165386616743070433407149596975217974327176788210359488801090473678684645311486188237131027197694430908583375961228934986240200208892527572760544785366045759442656127282950278918201310217865722742833003499416957249426273955126740892484350374689196032131311220962314874345373355675733270129128849817322027587647445626858515989301566565659085674767539846010031503410731100800670981811702780714586215446288460782756354151800248028197897199511686738780821090960821017148565393378044698993442957924937815569857811270245496790934592032600444678937695725456525226906903346906389665781895248580804794934326653998404483626514561240259693116512483911485618344027452291010849833407101892927554395225117613754910298916258609052395207522990365844516479658160188046626999638270427058344675115966907253503742077247378790146722983096081709537466010151038523361259711949656088091895944266455186341697810271219644590569691902772976985292702975494193880028119943335606901947505711212608879182092652240165608785391527635227426264675337044515987778663490358858330964607760461930502116071971116551939587555955526708818920281151944717894725585364888415766708391819560655743680846832873505001896375830389137368733818200434346078257140874420717056601704728226530246171872036842179364812725783096198483797204813149233354462022698150084132307993631509953685735076141079614744372440654286661177441629831400840068167971379175160848984310684195181106532419807167905312875555303893652997325830683142078388511062798753380467450179575216196253436175585725528594136804335791895616240181573921144819140885907937386682528074329939722537139216549545128751542083479822400947105510911083656114005426781766131309780251245657361868788947422051194623320329432765798995715283787921934593246052844917251255726832065035631624612206701041177244025994573807975880701415031621652454493653186109263123897469964136670618660507413746452651732906863655489332715888394615118030117952174936163379507914657736906143424366402595552107618875377633669968051646772798516305744758597099436463906025743406560067612274086580924736439571753570257484427876301313869356325394155761442261713336569745741798793988979496165363075967690889123211336939214977303276360564364880568894409967738601645775830258829336540543937143031018339269681958277850751162545616693143515372167647454913128974381694191050418386963419175968403237332096662078502637952491471491889934380786193756900280487901777562932400135473085123834918233703719469724565893292305822194956880443522984413379481641433378481450419182495088080537978818057104215509279981919560294292453631346312889971007674550983452366115581839864852922805142325023360750610073657024475232646971703640217483015043384546073459397522515710035862543049720803825447604612309908412012771588683746076263183978288059109109002608588940746032387841443629659499258032060373765227396363523554932335748319388426582919802929753755078367590284992686223800590034261020435360884524956051633708287846225178308124630529606599159761624342925152296352620399837044169747137097088476662755999778195805221740794122585838640384044595459494300807937221120198673323528964956308501065050086492415862680394147627012629029564565629928156695260467480561594184432617678246170298188997624260397524051777049763759616730156184872133127576188849520931342108386988928097057215387800023320313061383418783431899875497308833543370576864358382955247918529811786699426634729093235156053505512059575598141936235456344779683841074839353593068737392253879539285795180811067240693430013348893397876350790156700235076616012003883819899646084478031777648273734938933707124114232214407496027551924659845797516485675591975786427714846208227284513756227115244872644362693713679956551005364368198071096474720720460251064634225191698871247547524321464773213318268985244399730504662339688972964862262294536167920233570650196635775979889769647546637610410942492659412923277669560560495041427752083268388435401672343382128667502184791741216155418984678893800608832566103520637719576006217692993349560010720200880165550722557692282995071906042582852118352645218866152102334317695418694521406971934884357328232253597371298430532774585137303401511493041285261286116524931905164473067122107694998686193738105867832008770248348257320952563959287840253532962195344805477237634648720829318223958652157522312644215955265746104659258757454617119416001029508313144765123867220782727240020412197044338652511623349745191860197928067941633606007067994428012333614762078326800480843055319034100054548644740122859691197031634698393315222013737438355449986701390242157316720166767010049240449539373481418819247607423101370527740042537480973314933039964972433969658068766563834349336118262846877880793874769513715011687336042863268909450135614091616491099431463499170271210122463117076988583293907892094750535880477844531526791019744114057446211973071871288924453353494888226259777451519641867381970729730684796634776773761698957744566802425602627919797772887064996125317358837598231623299779399890836578370212169915630377151972805361975958784400422675203429631260586901280458657329240204424707808876541985156488659186945019706979974055089646645426397481385078447956976106729598970602692966110235056433323750959109650225355553582353486031411597403312195176296765137884886810269925791763580084394112994593198815523900972333933365841535257506919762247417416234607991421790076795636419933012768263303377190219242497048222004491020531122148999631754746627117677050745198916598652593050934816453315488607580877846590580224812986828626121371057590477629813516386095540569438273140144278720717913998971763519734460784006364629371468760192748791384505333674948687489721254158185006963612861217763796527687949943329430287700871147960935567534624506444143722648977523072072204916352147515052554339418484268915968200662507238170056066806255945099319453618943310895700393570510200525027239066628480722453935364080777049494660888194927983327951227937348592622785687441694125486058583901540636490868494719825041939479603521877267718156489339541845736571086615435615359678965950475136976112110315873542632023474276672837610604763025958816353370733890486750650474840583195798741403591769282947618629419137629782179948615085983662712070943386913959225508054791187579293919231083839004008635629450139700914696422251922119031768299307954047828662242657876916592185430213987010383148168979846209200595339019576340517584453837275882259901251944701366644628380016086381590194307070750079893439606170704046741146563492629021909916180806009569018869573308468263883969333971359852957359088996121514932535773412318407428157962718835912988397406445861739156220438638189540420059955964198469533823946701100441553208438774424472346708150499289759227823385180230536796973932858757219791069307908952654267304510438648554696658422607782846541040711562852549364362358407239973000613253489109718389578148290491009022938994019709283304234853938944886090520808904629482325351292161860510225867600201570587445381853769518896868977848130305797416603940649090701364492255449023471353817954630725678034060993262721095919108210560939688395734578641780714524267003565367072365143771974214989117864388965758596900352991265674006326395279117578768700472190196460322397465044235082530051148305881632932326982012509379757170455145807452935169663934247459236003080529901071630044405265132233738047985430364903566639791280165725636921802559939655996021878821550219127700729188088460193542835006520527032983428823657652268689236389230504023350142833653134341959224855298151086049660528995738947322778337196697978143161393382400246214429527628112522915541981480715088203231815528489546060455071318621314784928091255486996132047310587472330751607262040580812719816178524605505273103616119319055620704275266559281552947459073731351152471488746247923643506776875748794349932101267136612804173964056429246824187978793718844131630538720226740245264495356099069355688332313295195760974276448169801862119478274932948643685426609722985650708399331929025606668585649917238630657808878924838932217429271726763618575053625738765936896680248475221790363116968602522269894887775704119445302812764255856706744338707642507973255964763504257934970433457924966305101113599991740865581882952032964744643403206496764083891903873753949266976484383126756571587830618187125819732855430537792380243793189203465140996185990087970965197229006124651565249294161085620299342366315104112638542938572123655536922869342237940674827429458198718350205607537648770378350711105799251834833464608378999289009621286797018997307842121645222896515065401397935068296382470474599545573167348792605947895805375601337260553405246021602120770641184503925470832808697262323215520488754053857949661110556097203894914130256662536668844818043867247760709670003579881055916726025638263608205916983430795292110119264456919689963077209417850085952456134294396982124098144862634181563140513243040462019442521537822535499205023464409202631343539175869550975572990253908599163317976771438916722065579235458262293132399679811400723335850243074453805379177038014062444252488358066677014838060469189506297229606568105506500014123987130705418356829357453868752568807484516847631354232640815676867275194262181558389425357163056331902344811007836062796192242877250931573928898227779835292028786600947490854128207366030158939223125757642260500841646869916716688588756252412255048075809770678562362962615351122276502114216332506939499523119993090775592587509293747271452223422955456020756277073080514346725945047714251521585667646919634948266946998235288846197197854655947465510289844586124303655839866452394582264341784626525143022190106201576183653144827593010832315191676967624374366210549048495272742528548495775185151684635215311715869821851845619993584527465275415340657548378916080915126110110029377303532562690381955106073015260430894548094050184186167815998146849574160513166720378433566700198296818016881213602869761158623960427528803053525582867127694454964306688148680277079061338635709626046199299065872280005270512056527825019575094429812689917428631097509863261537940963655319264913159069982215367861323381998659757413304699755372900408924341703419028673302640774721890047443289537134608000720522635593508648765008638185273528408140002755355089932107896535794226787920771661929409717007729033215724567399202036631223430987863463381317941596657451562695053274102616181079598926057444410890881030863433076260331603380991768020559290562301973286569498251935004501362945791750288887983195410251228720775068129370998840279100561368193723074688509983408340308713075113704984103500355360202121070326190910895966087187510593901263530389762689106243762810339018642834050321733757687546341537920039327842343644568984048895100509230622222714198544912707104464145097592600744977780150931392248265058550620674723292339981829270445539573290522667068302063110207843710509505703255889893331401945431602590447575734716193194078522386066302188622825063214461942971420768132015375616815591623219840568234274101578848912998384791901933671952069861458501047365165818370899239064663485246683043613413579738746885406182743362440857495110154110692839895214873218487598468409322216090099024357334176182423864844800915466122158031110590355479498376475879907480930930459484215597281334620723882739540563235999509791238179466570938113418635101160315800259323445202687688764686634734326102510131490886492619353718353861689623872127653570854298205790870576698846534908867735655949958522284220179311987586782443486722001534371848264579235825815600389904631173320694561309412996949426067223248364436775755805236890955366673613928920397456253777615374886586462253063106547891807529260814901702493097518052122183782786786139479062026000544826018127075769489032313348056568388666438636104753197246717087707825349948953878258569322209498204074652169560212862846898101333398075130918410047004087330336345915349575555313703844607523772769642205214768298517813987295446425614468443380899662314716636260330889903604404207322288135137340033024919296750055154287344747245022116790648437216830402321051196817984900742452665663428367706263438958260904652900367108439611632007783456830543376515827959038964754638656926119031339178507150514837447007623323688217274547625263508080175165720935259577362843277249782300493612712374599060422413760681338187443521571201585756848092111616481926958614921725740978522031724936253477466546915918391363106869383223046016578416689543470950021180241903442222731953752899788899344452539039698382138225179957932720018873786312930897818730853419528797334324450480267317770443800967117575267969554456122840145173617522545744422759039968612104818956347918165057683130578209422036721103638191214948647825999376904287236448807617405647178780924535651037050124204434918072724786065659716052293457599760897156057036045330568445192877952573143348453997102534842427595670443741054987233774033751581480605507733083127730575025393236088616849606644105335659527955520722307531416334615367955281912006813963991109914982727684771871905010459622916276843686865142214608989657438828384166086955514178314879102798644370059933547268546524554313232385778633889092178163706835685782800696056894708297841746605334533573147577109824039556859132013241603570187221490754507016015858119569583445825931703918958426323607919410294264705304767646761155421615582641159190531322840916923913359663718142204304393551867187518395379350504837562091484819010001748590107244441248840416414990006612664107923114754639196367898770795030048098320292325825889358791684069862088660730515024645049401945973926401811891960589432920311322288169992848514512748117586484724376398419970772534418190888413744585607679280772613898686513124279476388852690428071236467379440717982872946330766228664103510981255980854349920589505594386858747527127057227548651250543428753014731535585097879159393962345198025303362013713216539084925270719689296953486297082625293713574597627199352413487791802644125215175261735166356809121514722427751080907504472006337812678185399969344670953270221302408547795076498878018027895427051130387831388771940301156988689480929722358391818998258324313861461948845345628555269154892915987013102226925550800115316372002403957546981358232287894918776591061561468346437760745675905643201745921196737211841571190156515643551956493948385322118071303264205058499537212350864774990819810766686613601584275990436603754338380577410189399733746229911236566034410215457984517138691312990793861426241502819917104981311211811985096627717881229344572361763702354202064376409479842167221743200376479333131180500597556066400995166596468245695695592752427584127414329521396694876839932740944418499540087086968675756359306636847598020122524121517910937375055499487479837747389570325520771690188201553602009804504863278657073412438409481235431371905353057486917034229557331123095628698219080233693158620907263093879961458027685084321706860762921323322129181345600425816802007023018989309852577256827464803011945033420336819822894326082994419195442389660790974951446888733446428272589842287993614321028952707738917594598004975362800374852796127250037381252428351721347517123129320658980430411410688570732985674264866723394948190966718649296628924438962376210128191423743035278058233727453647699953885456925077267702103538626151666369402345104281441618886689840407565389783377879214976684144843480362681761243144600502317894811088058431794950909909862047341572448634053019152567410795115632492738318827632720664976934060876108793449937891390005664181414689357096396375607522348978755312314924081869599052893626222981525391450831055177854843189358119322700371778031163699542462887786043110524473386142572990810190794647836445638749178333787182268396653248561241182380714434828462532969361706155513879416268610889850217530317127133383839115033176671776750475459327369772549590829763571683030575090885845680133391278002995671858617541832060772016746188060207234763745181891528219776168194862560514019961120463948878631621766688748641066461718633421735179019913422020403134179393615948845318192822484455687013774831290251085899677478334703461245882756628510360174631224876950282355536790026567409934342465151418329221395902987623331055457236543954797063221874127097713943122166472361870961217712197792034063345354869880375505864922131369704621424254479917349462832467233447279800225744627698979408406091956948386792733974723555812363236478662264791154197069429200462985841159337875895506223134438556613712906814787193121370172698639895917362176865947064850281426831450006668599614632644764125594195576161781982226838587142389087025074194856544654935436296939382811166984110087578473035450158931426999886753659865310490198208946985618315923255114982514665060956408661070518434165313822112018036743326889069326689645654211516291487336180665006648217598182899629364051142541576546838053621831893053245758306143194834272846151396778006441695497657061120468904506438188199056912084539866120055577994899740516551958985180945545168298522869751175920659426059474694367745735292314955225245056177919444469714981295277712620567621426600094047463889358377292081001517396756926944637640737607366078029179072137450695824565446754229667476605275487400508434025058571141303795072914069033568316778033092580751281745607110260279636677482867666106706121988299107582440583998051177202740599590028410436302294647180010105305667947870592471053738425530478995759072052649564828127298387674552896608286623150523014221635363055314936202504143512092873548115180944594451019847499490440543408084935167899542080417581605909392549458473157768558732952123911547888466784574475212807973955486145434064845891024994893242934763587951254143715851932998811987362500169187534426966930220529072066486225463097649196172171279351546411005430571715239374765536457473119378160355595751927988198503267861036693427250396000012151156911704909361737688461076676856325376021743624188081501113550117269171657559737651810649645922722804172510993401195625867091243291469537140431849397582247087434183807628174365597405807474922002798664682328769152606099001167140857742207410020955062791757224416383276994440713246131444041491264253741403749338814690030600375052027956788294153266440694132945403405288325491864235343642486426221332159505795860736002792862209411472429752455719366575597934894975240181177395249445025612631202804689523651391667721441845455526562172089036204853691451857835651352855329140649821845692511142464374204454044694996882111499440871380730712671240872971806713344759564489249757866951741990830933929857347031198722133028550959493036797474871205306724961979229662187994927260061295657224061801891389630287406183155832634971856780853798227664870403282593448357125302227732844025766197611363871886301398525951567983600910466279954303538904611019342108752493118785706446858146677949606668538408288129071740332642496357337177570647665574825713009791601543055525470797894486080452447321656083480400579040940040179391675788878984371012899242462666468180166031164320302560522316022592904924535684302222955619069249326790568595644908812071039342418332810925923625193677762104353700943627198572540616775992912603962308522047828907680714261257576967313122378446131367243050038860540413139264221377551355223236088774843956314649218925536830657837797191218219457794931236941127308059165072720638471680581917655836115085022290780715876577323980669056327289772801310443464905237195952709872787041143164389216194842648228174790693974115186497638445027661882749704067055649081401898280172519215735516272342847306803500867992437392438704998443672121669909648391037397883977963803175176882136899596239147459098033942736974893126036349860829363479403245841095417040368759429292946991676205489219449738990666196788469396629352542109926968982061953163458930659751491616844549020025746239739417237000446481197906361365998311309707497569908577482824705692228005072097496307842242238502916078840180827302654813986690455989596562863879102717941918781141520561183724109163520457999966329078342701631328662617933335584083575639504471813555295058550118461935736254055551050762937049637279277123897583045878267733895095398929887473018980964089136650447379088601087521404173573761170854997250622692257624397883354069988682468249666431687666535423954108208212119391684775099420351188052028136181043084060855396863433188085948115336287356165167139282973134096593409867527369023681444423955937163999642074067544774958412467928465801397825957478981023784965166218993086546490425854156517435065782922512837014448389862503801486573807692285385723290527670275015269854062202592624280281409144339322502603383915751222694201661446287536127609036484082719969501403489420647454652552787659129449516001415294203340808564363430033119434145707747073575739965353621934167548565019755435973975725874192743282192569085793731255273463983295862744134040877714159834897710821822866907999849159743943801763324434608307013275713167052761913690016069604578234368097614115486797318810303660322353472200616613467635828176926187984993899004552806577226869687603244524090780182840267182578372530673978720438358001448765044332563603485324655986785438262011014330914935843144940823122624483854431930264069783678586695713886522623768962989818451060701416210259685450030372289455094678281148480216342388366415044999020773221466711175266012936860033571207565249602172545313786526144107412411374319747261960847911173239057730873971122632352144337623734048293296663285757849676545816293335663136247715649466224876947754982921817113033373397135103465412768517698759595966235852242099057314114323409060308940418783834933102147610945432131691415335380472686269421500364121493132295734153406050039069967514984182085827608758855396141999249819908312898613130094945467149350557788574891952328013367810073125557646592962674346465646379352389970539028778192434110178093995643922152866330986354851378601207074282961448340374244523524655320331832714109763403287382377315840666615177550089974076460148798179989120572879613560215888148878978897083424613434703988477438811823824344119692052053060990069732563814324035748852807993749494593699895975253279782363028498451357821443215957022099592473418756355804581241519434521683966559591501165564072440462094491426095252112149142215229256921606859452382704448832622650957764214224138685108179664557928214633061302200651545071446060746751431578235970559989327161260369222631119846740768635838229543098133704790135774500317871910983817612186895176828361740875473588558290398077866743551042163606326838675160122629799749398172218028219545920657425047311229765469051267177700393486724592725177796937547525728800648481712828501408947261978842197116476483578618143724529611409877478220009580090312277819625092025752638086154038367380925554112935613934078870106641926675153201501983865400193175287451630436913699096126093751661773270161714791810295002399828441750666197394124504289388708391423385340423371723564117672144403212985306000718153833214202100283542515266739771162707140300376389735678044940455909149370190040049198645005329737807150495241643129576474056886477702207652422826334561556592287773385717751895246894492959083101428386974161961556281584432531032855080268309493117883600977199226995360112391238846645718800285238848086819025195107276033257786266484495344952053813600969381974108539972940369780357554648854878552354690709327793365788028823949335874853515244906460918087553077268036406605965731504148414890256192229235398527363110551729839072196653468091403872224720032136346523935317874413615177436565363703828095914120051467509675962672834963721064141027890909640357243495826652769791053889444299270726102995042461738145369919059684398378635363796586838234841183662192018707992628579757469098538576535033805048137992168502931787658689507837024698767772452134572190319134747569087746229736122322188162839693076984981317633295486570279914823726295893031955307513721731543991989096499301302668534660262007505210869053475692238066615615698649287960794361033854358214691469018388654802146723199333301282122729444971440544046172665312890982399492546304674125796343545824584027995612039037881180038000768507383003623458844481181732769569735024267259347026998462334818828727632438171868471013154123806962462884454809681477693843376279674408853960984952335767317262074565438924861411608725756605558060480844208444143570840080763688116915190685340462090628446298460257183573648552199418588176550624632382314031188222523124616153197241448568023821014224464462753975019500225242797798243661682744426039783637727118943488856600193350918523891581756767436853763142552852094681772828220805713420435939393664730541705816387416494478962263154811787410921775307766460166234404152512720080648062734956711687206387905329915101180617626071828193868491124959087996010925921144384283833131555351674288656223837042920858272449894739395596417022337666692501220012580186337020356118104937345681122340135542237272550982038813988729654282928695993932473857673606755374912570544366480335627480770614919046491333007124736585318689149943502013116585349344472284221840196755622830876035440293128373943770710510320386610696797189880529017698129004488110345146510702343865365218386990587875145857814370618101238372021753324298748007486946565747254513904341376517313222557152959712200684277540060810655098680479909235113573167714278758416892551563372994933588647961792665110637665829085058797547941800097517802798154055566338258558845198489078281889861477323256596346994094349201958202472940168427552742465085266335244970254537211519656628301166481831565443653857220685853666771764695202857203477678985851803177812220672799756001074491580154212156258712796416282053022283780785994902478507845140834868103033878864071500211780715413878452663572585162126983071372070558421716955294179939264968873876386493294705114113824751463480593496355964944368026196305553079574512569220885331426088170944898595196680681160970562784154040276346248611622402704785426074949034238806744253881342695814482658650831706434335023444009965460871554872203052222986258381598073809289800507900636097997828702446695854988434839290475260103624313271306232340659128751669535025483588732157840097383803249181305174791027596595446544299435467382004113873900820832500054631045477696158695682144510465331920209193016930673108587113374736437376446385286523839990088793862195661176269682450269466111590492033016210060898437447085193557906776351492565166597210317551323247298089445690027154822544738759187025574456650053581662026870990873881457306260371582395920946806425435729193551049657544456235459775924511156047521956310563379911600602904868429659765063327767317003548377889549949801646791281837505122904241301568442193887451336715723844262757686039051957798078259144474181037097008793758094215701697943889781374716963480156177920826166142517116655576610749748528638678577985669163658218222539469400017212991427746062059715602632041137967464547122354386404928517215688778095459293958728061085317638429673543058560114631031199612490297965915706565009092533637462867848321949173174214286966036924047901205657946536736074674222607770208781630583868503010623437264520750254662194239559230967136781390825527858677715305372204373667968791718743754229724096728793463915284769058923167787043315420255717954608285530271748640376244182396134538271659389710600874411228533609829622750136707030639886846856603541084461779035200609484877981644459319951528262105542047833116028623031861419837687455412835416737489026439265587693370825146074372644658341820826243966393368361232414325820882087340276520647017677564523672967629691066827303058762529719263537112105230585039786885745142831757242797216109154843168697629382733184287840590080444245120947655292327386479750718714745963555615595598468710687156103465427465173711108654800417019932031115391218215863466183966877248663046728927881710137727249583430764762575924627693262498405123739932588092997288619484341974850312851686719114675331790672583764577106928924211603084641164984664051034300518672759752095812211951019085935978379456699095534348334094497141384369045842924403367803394760210529920456607281866343311315180725159967658239131103545225099496341923864880175793583426799389208974265584993062436644783965097868531303136476056816017861332621067361296238618099501111652852070206165146416875087227138717141790387736033205763846536822822385247161575173108149154329905275656898067673900762438874133588293938474840241989171656443602805981507532818833022186120691883207520485142902117767718911030513034687015801064532356198739411120659423330638548356985763637371887903859554137935094424535666647704407024038383846833549888817121077440996006923015232002689519157206165524541972359478674884121586212082597151469166428163431550022648957687994509740474955978094672473102753941286007539971040933597976586880801119955551406502231535065966735816824261642551122369078721002994621285389249314011007403704091069958770207915124513482882657215173490660528728409613256849149349374769625816461954616610699150234432960604567681062745538126198920833352390085366106512614629142677474966430363084137836304175352863131856731887533238772836624646965611358038774948930556418376430178942687229938641117844231915222083488600851079692450834109997060679836507649514871914015517388258118161792726214383455778918992968684920199977090125466664010525310622611697584129779874766129734523144089058963505558469910081508785563388625845587772331004698166893253783609379724897050993065895477202591625597540484497027541542121496962355747087325511143083427900923914593934063654322114469002949864788557727425155709028125210253241595268858008164529021675005255013271536890259798274902413961202201096424891012337871357089670414875346791358729989906505043921425322818489227683076951243154337928728876699063174987285095907323517641393288777458176825641858673948763306266194506399245226678838661553371851813512837251104684720381444949237031552989138621080238079932212534149769924088994932242464235934767365872185286032871984797209201576419650376710684846340846328034109915028449531276379019664622634153641023849641083414023428338747999680406135415975517686257961591640095214736525538636799338679472901968967753120081847663334471169164760001713772507387082165949460243715835528424702932149371024797907212075179446007264495407186686541779146598696309182835448127557774151524117371219882537213562535749178870742214238354960811385254755835360122829974810396881121676686502611499924110846285896435939922280454360894376236414995374026643570560437378959560387548514783110504587692696306345523377108253447082829447813695876970588884843295392974862945105264208152783697641052353732799243749372419691661936587782498408673265509537797250996310289589570757749031605476922993922097479720253800156676863476662483199572527083881909654731254781162441013426806232139408278986571975725672668347683712895937170080089847717857552286807501679143478416507672855633155415688669106904059658619887848279318482949475044889610835931098699048265364811144766495285777128866032790441680326883227302402147148733161062844601455260139728180257550013417655622672964157201067474795308110366673404463776562440981120052514091343439796986708965344732860648295077316330686410604612311233766543327473558175751149404033571705939682886773558559560531693888959448314118560241763381278548076779557178108509047286734872085745679522024381798045156641322912906545867121592955121019072093930508366371103121348910146338058104266415765212874330930211521488590200191310446049892192494113131777258116789164846049105276980058664161308251554538437000188425127296722716055238027288994755426170992838695129647048741655113111854910024763107112806377354130732950328294977829647470169714741291242095895084915320287865542615091035518774679831749526589283484762353557108403214815655531155169377034601026617495528972907058506244467441547596475070073764096344196825137531350584451794198064198004054555426415156349022404358005020827292341735309147646753150666894069055753900870405353068416741497811082682833073165495572310936698924096833021227205659771105750717711655576875734753036745775329227464420874476585025294158509570269221086423818028718695817515400235106897378412421887118306046263308935090831476556793195497893812984307474367335461488638860426298619224123758979518848132184469376795572497347995150385191478177775335444597685139291681151625931110275204960707493492141119482105649371571581266678019964684902700380409980431782858667529970531694112222094418399057799751242631124165199907544025864841793033064271771709113147766169949200436735178735944683202011360835331051822312789881742118409523103611263499521357076342707434931256207042560416838408339114494428001878119089101293787720483223933859355555958051580085328459616750797016327394273552009731161953729908374872376475927765312121610857139274107917025191759287813678927936794843428150658604135670952513227733394500353799472797298577247384699204942978676391201293341445731878066772102994915007080583440382489027169290052480684860350626253431834107288255253918324027514880772447351589901832162221106815209245384864669219990528103888170412610371800821582321255857422504027817656181021603501930941828171777711804845198469162098864618642070563018905562239976812712811645363991558229065541964682733769980469656244889585204157712617473427531194162402939256582918973189360209800036971045245781022046778667769183514714167465634190252026345010150073776734388743315529595790543909986530709460579700407780849860759007258562125873241029310653798797007028978945307608064969654279183954376048201073068557934862496517351226931430581899947577101416569711820387404283376691637189096260283238382004150154300348418383988732883181365014538403999311354629249138306624520437287822470832720489229580614445280217992013181969795279196052054112968207521302287086564005970554765536230979796020605499079065013517862612494166850170926251941247353330489527681852639541703664992449514039063246920681512022485878770591489705312830205431218332023079781405889714812194112076456916955483552383538288930274919419581750824055020576039900397321267315670999367409320962086935622714187005214825579865327310701262753309964377980613042893355850447526509776290563670301560688574438820168313641553470727227879314573736558378082255653994068031537060179754264793436045776695869052274356858983154347606536791183940192726995818585718834499895440140797121987772013965563261273427293574928204821945257216598999007657856657033924096417320015994743381056024750326468206878753772021716050213482255252185326702875696378155973364676667395238814920043199366250851082009545904273455170014496394862688400491353263805631269092520344282074512122205696603664098018719922821752979299837218621205627475746594013134451823914949944230986682384965186798508597343516227336075239585661955922673297387382853191250625762033265925813909382926362019526424815530292834818537686915691198944862466367423674754917418968805380392929670443894558816868124453465692691850584991775427669682064161558778626193298955281025734431337321962392599974859231144582617532843317776328051047314388094246223829715723644417418371307421258889780410093354783240183985032009366357644332671249036098911390722122232447021420845512843768281911023893902804635337131736467555382871538381487686888812043000925807750461561580139768830934849470126555972720432361967995267060978670527201323936132921110467882579376370787162511808306927512769317338334627437910562303155575742095808506044564922365181661018728111952296061412146309500242784214307521553559058356836877692350660179054687251094844736089054224840514705779160964791494757952025321784684248875666125629121406785559361986947349819796658287733673485337005453140762737610110572795753719129897162406684403677708381472999964961975279814340212849201895122045614820453718600062144048199681400817871926125868451578848647488018627407478981450990601788534149435961538905335259666302333928553530145725881624869132254365040535171606098603449671959944436056711325487582439069717124438352926443510506360355898130617024143055216675358406804623818116695225026262907867559667663089613483444281916151263424649171615045531366622790220532668311400795969809469526012853827083882592845110935221833239432504359780536245447271120972584207091073022758976292332806243201837030971684545901841873800233911488554910433582082570661065665853711791985823867697222408543328888139132104026532680493318172441577403057274814242742413006650618981688814879674772661084582217464972718022528180231070253859004227447599709128017287601710138363465042080199379106773796200518418339419661454386434806557833968113843288850409692141900952290014516362830523840443148625863492448309430551724020223076143523260049631388579482679272060728796224985315804221155877644217714000717258978207817857813293196483409572940746497481761180007813625097597861149366504011890490582846503853770065181583579722056291792820879219200263158591896887090106229577944755366964935263942645961258357452037306402135381949318968816619263956404960800169966923262449281599181725803579297763581725670355052466033935820381308843160529487141894130122798973144777833003938210905699815583624685225147584664375173053571476028119962496401903112274638370278559676172845696088460222750845251552795668096512272220839086299737755103760008788763000050146005692346086898195144559648873846523776687038944992528532033908081228206151333507507198859090517121986335429997037028967056083765120618929935969935480253087636379206871362212312771337761143864661975455526250596310806924571467355442243900236365644919649545305575023831432231343186549416623863530861996756584331534750717802689559680970142897299415475708875868064473364037243379323855782242508316487021162255378140337169429696392331473716039144742061882448831765655969643036198379320025655365191737151985495226838767595420131829657527998325469544234987795682173760125514483989356112437536483065049332131982611378553645661142233971876554625591609376604685021373610180377000485574599045417035202789627560323845277252757184429217725394044366987840028500174996667586061499154235305413901269785620689598066541460822039006465222283409164222760580142378803245915957959564375998520091554163635324779180550426770880881579586601203156735476210995127307995067217993481124595373789764288692010521754664194672002677665082737608793491434494400678128750249466284038688351666048108901200488339634594135005564267646319184857692243753922499459783321944217895769092061773294330199468715102644257660185225942671146068200146151365577804517026791665048280469804598154096138528718149631581443614803279758188404273178668015463384478121898359032371898749579033944642445900938952046288588895649540810179225209464925489001472283094101214423630817551791350285683586994842725981843970441610043681927021831699231679391556203792675384485607607242353830349512599859538588310301307342108815570851950514092757682622526230960714334859081993702908811356353601287776491259421531781157764501611711461951263859776605387670934386644944640160553490785624433201680878936667922240826038515825451923931305860856858329519495078879117348774579824214764026206387807719675318547364377553755494721267177008402322226172770080912691811995384784375809993598448188732257036648779012042688424855037465640067490049381827237915053670025109478828114434289926860972256175290688785748755612890086678535694602076214814908603600220119287772498688065742084476968991026885981573815789536705549765913468473858733918181211293735191657789408483071525520943931247772503551478603481952825364341577197703713294106319724248495023839944161103273059754504227876483763495002383033224774095445644183833027098212161908999446725256318898051444678370304096439696754627025356332560816448532696988709789265961926804610534490458138018958342142523366794419536266298483649759774228386699416744218910120260898116792500189927043378077102354212375623653387129916904663556043069690373609879288628429505514564530783486373690666560143890793770804217819627321114011018711673463194801931410694101130648888334808042185616494711090929986981570485854955826776339675999685581866209363446780064697547012705923518216984606419631352210448967951687224753395364550681800033727493664055538476750098745406444446684074938005692191377299277803288861574827563041981309671032191368211319407787973214606879466715182435766618233146190474633484357154921540461804178462686258032957527060413955074561368402066289148613334079739952244498279169883865555227112417811667772860169143763139364143917888719255960515690052021049072059706555211725971895483478161699760943683827694543651378023084561720182443754764733721946528458767804733428334798781315420605890087925282169602424725026365152296633321352456201351360933167143897015959590547015502773281443532284498064331571172748908192677275463449435518017977670587148625656166094256697771104859509067204504032957913759161982004805886473054666322237993790714547407139594185471827986643132920563019689177363648771940646392518441981327070093144283233085955703918572502778395634000195800613958438688284367410296836638935888836060133049256118597667726111583158117694188633472945788065115803858432708595102760940790049265592237028071490635495029602802760850377296370394209816380079924140037369705008397295718800917030842936817058725772521323720393218863429731894584212752956613521978940140709259420330406679818634825892161037147068461047683729946899501573628756228790614683696742534897922530765236768629693758280140799042012894110893104978003196221803513434554118819780720704959244231409042605489565332049280489777690089736436054299609493624926114502167605601510946842190281707223046608444947615209174454633639522944753976109225035202302693510302095177024213540369261582488776485292548555511264823555535201790942042485596129157957695810807890788560166443131375296618744594002312440585733803523694499737185788011359312871843596630396677667833395654194765675620822212481197025975693425163831554780933241841870158146028043219452511473002564011700722021627582529024440829501138663667327225387517525332007339576714184491102264246643994742781969890139059055198712490870583349124085067402707187815471376294052002920606028417681951722670679591899710387083719256960470161278829984852330648502526148229798791814336364134551842841011749371570936113907660650387599019257809699131870042792267245680888755012300350769056315130176994070766680450925568243473030713294629158282331234838426015909735810415453981059372069227708348207331716959004266539369172431339073300480125305391205671304385200966770851304404502748936250602860918766576643887730901887131565728191341758991699830445780659734313933773833081468315922482847566296488522844802251090650306429153277569135399645287784303338998569214964700127355380263527267185668880470003602699985153384559447315859454376513090360022331500065136832756539878621766157935333427011935268547675523833309561224316398846689220526031377050965240828619935154650533714930277344933283401524551959510259658418284648899174422714544508993774415334639403019197892183811170651796941459774040186957039469357535203429872772774825768684606647520161782140404723616077215088711770416416391555988898050335493015920857098246187983538137299412585112217441594906775672201380700131626798411058067929294428208464697878209065045600199260690921576271567494174900068472568419960191032872099629035241748427685220446019404379498623816279454516315607752186671224962553621208298160162717216892960228618632881149702087594869843462191390623740570663966075358634672130568350502188040223903990448839162827099302938710150270281978577737961341814566460676514100711836647444826938531153146124717611923906011833484004179355730801035055495500030178138897081708162635259435788762030914612852357596159498564010829452836833343918981198975235468355890095515904720265342473495132173064695643422243920215524308889057379730268599076087169472077335434464633993291350988587049517822586274011564865962506247892324924504870674844450275265721745323597721434393133436743881447282907874976336052806940718428846672097214276647278531737700633590115842938965955188182761925981255653859897851823423887953769902622087855979219531814504977605551095209072591030923011967897332537151109581696340482241073947891390467178237094497175846960639102771371162936432127989174080034902662922804747372641389567363744504275123072158647991921712524036932185269824272175425049365616901692606524831648343116784094697998018043176883854129567033578638434090844919182747023974616250885185609959303913447332289638076701870892190937712846952441281225971470686932339488835293293602080408114982758818379336570681670708806802640624195310051771028075646691893861834785652652147563669335573566153232995563305455284055360494196949314495134885584684213471991848543384867230161142187005909448011159445059877547869161341230896994183936910344547526683059451719643173302929633087662427266349536338380976050130225834264913141445938601242699460694476423059726759222204720785915042620988195196597811787954690761167820341138823865258910253489415804793277759270563523558251461104821181050668361824370018227616674881426985381201930680395430643744583906782692271902494903852268779812792866191627395262485014978291229704348359054147458264956048197269605109065578475631666943828169033543793709371373160621277625844175089528572412233617285222281741264751946389079259780317870274239808446642352253022816870854135895862908594606533834292482008450830491893698780354307301892079154499573233076012331292538567183436189453150909466221382163222384869244875530003208928909661086732938187252463704995384143316430698824406960557302862932978557777453486424750324439147460064128935285014674472985195665248427091746174645857351056690543133519969121167158147296810140810396147374165864124946095522602202723354366843350878594915564298899367340885192454802754064852376554513680956389059538164745568296296168631604237914309235896717955242558724515239953192429576060064476618156509515291044099496675117664882420611593723809942591506225979138039615085132073965527315305653368387036248463760367564383509378297986673290449217239087525324197198929504506816228001927961848751679143626967974131360818969143030252463633101079007826457793188546217334789544329261221117265108719914961577137797799259924261984515739202876657952195996900270079649708791521015954289791938100764777854218381476764658943337779557756777325199578008000094560574233522784406863372154511366500322723502536488073494205099783324863258611501641514252769024318960839819542508857520406757084204871130888809340130719622972765232345994246504472881476862295033613378971344845708465504890576698681182379941954478233203829105143107801143948746617092955587283069160194258840656154869904430208100553148578502624357610180812998014924152008711699397540696885069187448437668555751977842814219595083347960906265302539836967779375063505757242606741221761078602195086224424759919738568173357559179464580060488998695209273938192891125297244814216182176106978253797927665375118941979915388823678438011533902028215702024529711096214900597446118411681046024500701019642664873169281474628995030680008566677447808792252303177783478165117356936367801326589897397614406317553106887911373507694378646841410595198415766784971060125615302461958846394349713020951132359989290878517266639662049143927027014463051778336906443251396576409533473948882960811105526408765996867808535069978550585722677302272534346787899805097849619756903586025895404464827924846215187098949900103016685438783427604405529007001495482920848349349400726364063394708040710010942297370954826445608604482146682391234790781799626551153204939655065457192207335572011980277352548461760602932751012584841964315977025033096193245843571999194896614647333813635552675571151672169693271235413968966950804808489455001985847037949106467605646489273348746182608976331772027598488157944628345714689250464613586220095013191072036547085600682388094885675658006089413296326415125167226899750643121219984464111527385213724551375802613987238516163494811129343140924385470898335861284251350708141863206831099767167791957323384609893604089181092975067894612825990136980621736317420440522399557541465347410199007431418434567769864505175399941873324923928701908787819058866859194533264654150546883245663514573782777985242736733102548527860851819955534396702360154842328860994762790096038614254352259498306473661610304430273696843464065572096629996042888152139774650705870940969578926554543621444426972776414474907363269255117450223989820535566034735777561885811928196887485810749937297586394033346712221811318161565864175987875464958030085148592119428154718893132438585594137698962880385603944427712432120873968333646191772848466039760052538970657973787555513838291674047700792500552925835299527666810868640303828645541665639711085583664655196313340542118500202613821026807052145419118772284999152240602088562517082581453170330786870085062323538750102615090611496248368634967628181632285313999868575557053832995072537358997723775641350733182835299650673469766469763509229823724979270144596737756131529621219145427108927024156310204428114897755544959933972138506619366859455460989807436742620665261938313648602759018462789039698245064186861710295387542451884471653352999839358011044552279601644594719220949283075581610519934091544480354461543981520508829172733017673963747740943874445788157757069025679305569125516479549378766028748263575910560265893954031817540420499253733993293761711682932848020526266115147940619079385466272075928389478205967192554561334515448863878468792329025283870216963082114473798260143234557330591786799022234959546607253716879821014472215488750407908682326920695783769596794261533040190820782882365981134458780515335482453294013140263041882237134200699542828835974596545396921660695817530541669448551197951176495053635371795553008796097164912407859969661595396599132626652519665954722408980224414523328001712377696481714227263242496383152911455197590763080891561306938692834102828514751488225913769787033139067590275552788414927806585156250751538352597950890730757196976227875705396436672395840115562050150051010378173587123675192669251404106030767578820163073672715821441420215780960606448592359054184198107267877607089261090775435354933670148068991103864344296474274773383368957885146098039887554999904847735913711431273879581160572517731936212018972990417397522061529176280954070389252272094880772092872666788288919324725412630344039634636387405025268909109560711294572135153244106037276543105235513956863255914327478524527150132899834789567041070517649368573977972817213869683796780633436570601603183759262479876663950934948365189706243195898867256202533231987560902487559834048810178646896162859381778335504588735982713083761819008030753962391219457920720345641569599615330601779528302826606998572440801773130485439445339971000189182300195876513168430336046352741089002751605144270048548077126021492573458343758966796610790767103110872115393956130543365286393656507258419406754916200448947649769817400312762245750285318365339900590639968845867485521921801860230585849399060880365419597125702094283071764704238051806302774782993170382545233975614498164928495053012742828146437555569930489435579141350067665252946594873139036661942752503101907428764199579153543229352907864122397132874413160398374870277381448581900455223966574712473888603522008535979702123015976314551181945193417844584073459004221664306678419749577264707701330071257060573500634808407961814252187697634340525342425202653810797180060392484096097745218352396895459556089409414538897693705026060183032044467167012869903169555049259587655442173298849678289732301622382082700606807565675578763343517609824373793252326332566498433978386139145958865792111237304109100637823558867064328754400584382336167907777402770923864560229118264897285893699860784728935001317272645796463407025306267851398200557018752501493817039736452609944747600174695792209037400989917152112116760523065575893385459359416195480759916975820353008085798348057688416971346503754832255661038846242625130198751199939830437227413052311563959102607747845446794735936202702840008774422217370940222226565263510780381561928128635307721018440660569551550172478240378542173484370592929189354789169563778855394512223230019173429052515126220927233951663572316402827657264329636279684099228821269938898133038849670757913618215954120932558670332401054560461241793006126505574636823193738349655121670678016554999461816579890255573767150503238308190535069234799835994315650991283959791210251684803855424825472912747688143696271589797038415892542286633269691107713585045085324395190712212939093223370358791866163590289715434484289555595694542044043632779463702502357014808472862194299428344298178047260029217049037431415054510355043252489537255378357329429114856614182183281201849246579705980532498969396915052319873693520768214934955667262588022914880221038102204916868021376972171822022783166137150175735547410150257671561361152041285087460756379776095375226385559358928167777315893675859443064468897495303225147791576451128040922204929188287079615233775359931091494742129443157350875922700235566101485018443825051137065233789737549664323632524574034881681673049554082649767234584213937233682896511982553150551985468763973540004703807512052904085143671801370473440040807755692344240468181327249176003348826820849246376640756005147339047238563370064844206905962770917292850515932462428359296110232988772790204735612976730656103856808800372200885990420730016213246870115614370707423499609539121469902026042586571070746666776999116072926511033484790038568216311996299491363705489856693603976312719088184714746173770536054069347075536981209299529225536313804506854421518995304274655057159462983711275341299205811389702559381764636119002589774146202820071655036006484757685630736940136776020334149621653648164189195358769196179954542643370794296292666371170221603050996460769245259860536547460446571427248678144409417795426781110081074333518082261706046380029332620769175989112043341712032950013181040288415210085030463459415924523222943409051148238215898612281201382237311444617829684124452020794380380900429351775307198263342647361483724791148394896260365537398804589728962349284165948155070160504332980014194626229447540957590000935058866168597121404201049846399607109842150022776956085265796736319492932935759015330543918706015879628891629659291508111129627277277177492761855020151860876472031285286911279065859683224052514642370503642021089598767897673991847189765827924919638144877640075001735793962893794077935818952340899382519245155908666637146568667333315380282221388832958352196686233054132126231403442767550366228236224805736747153187641659224570290808354325475874936497665484468645602821130197822839043127233089084806785727866665597930840239608376970843700773593203812507823694261177168530366182514652744793779629827365865451479498823653429754542061290270497488757782141396323201164804270227452181918053698179164692252582660605547040852959740567030476709557290553954811693118356108682171089892898800557902465832632767297905520042950045869153980021822583363664788542472205033746969210449030823691092595972066123039559106558824278055607126955817956571764959040402793875295199828022138329293770419506204246636914672541632966654777133940031584882490403858545032284794442863558670795158756162700459708641574515858398541418531288332418761564184092672450698668355834124030073045897747421633509748417199156499706187953843189685253228283744372945589231080593756561434304759203783921757996808762443933501117638562014292299274773774776209441443515680007580833163591064595925465317420233567352895749793417260345131204691582431236783102605955009502256359885205651574839569303011663836842612036938491002059187176426810125304718062270878003297419149813340717515298529977148203587298827533115516070635253191428904447117093996959207669878210325497338950260901771902023923896475928007615251855743890593621802685144744137097518347325777244908576529826593274435078975271929766607562773091568208541272205285296681795198046771066266854534366027048359028957269324182592464865040522095866404054108363362920595676722410513452393426790751156318700986205649973999078815530604623102475642426319968587483823430993031237108195561627181920597637698845306553892828865000396699620104447056069344589171008033144077449447519078865064902471429109069475415989582649824034252869245646373486699040821373579535463027285693078615527578203871397875327463921927503501564012092892632421121194236709667274656766406447734755248893821243870428688146674043853266842573838318388545874429610913677001899989353283902282344497966658329238261233555663150913499250065978834578112363503942480133183600324929619791316960780825997633059694983167245322264820282647934391780265859750100481400743104247799440650240518084945890715259725323854445607251959098594070785377990711950468792264473316097456053345125174637927807463108058764597190565469722385599571320971734079805193203255617946535896162835915108388899104297262265527640294204476794933031574658052699237600795215487097318328511859453951709708218760250281179937731695820712654147858692210317690286288901751200492357494385013436884548589335159228135891238110401127070900984042489294793390401274384830339495089917847477136823194442151709333761474689398282028961522485214759515161739575510325733785795205620850190583046225318603019474822497229872786918503884125836512411051433858073056498281255053884311195005751456373606133352390888097665108312174116104772868899733014932426736438844174378593384717918326219917392714573258773994998568350132244031868658287175881960432824418691988802376932496818884116987682243444557881378395411079607877971364896908753438396642489218103825555347002977208427617465996541315925905066570288114347212576817058388515615678081889502953980512438673597990314812990723469107779355786852289394007271924748277882482828361283642224230875909272169207503479569611074684798375446060763908630964578379634406929829197333097233083011982692380232362976884194468651294967530429978970478803963864142596612672786838867179067696442214610101618568252827930869874988356857382262280440741069722302881330250784900626574425068447425595277754771657430630112142459000749426717028973719880504981059862089367171921379217211459197590715073825569859515767754310278472280908242781054237228634286475820303213527189620397590484628028922795660328595578287010338005282669594979985558258101642236405838664239880698345431396801446871012403177844043206035554685621192598742176705153238664208529042125838028499964728176180389888802784390525812819847356969640192008955164141972024477052642762472349251550302385224651054164751925274176761160520831565445397156990245312151136662051820621282354021883750796392886153181074063731455901466248537892124573536444742808492264334704252089457713948491394383861810893944011148360124622964591123752748387819083577768766975579374913893346698124734265462200843550612005317582259588691966079037367053544086674269288601533987243186779641069447305195700658094369304426503144116729572758686987551112214096122454419791801030473684600544717642455653365655779905780682476069146529380625650284748687851240037848326468059442453732164052858536654060191281081600272056420976465594798629941615241120605436926165346112948012098335587990855158840913557354274030932063042658645406407927337251135584610667666368199915430724647396401729336587207984687129737542621582359128874259363189751405899701682058974763587286877991283101282773955772529370953144205630256744868445025266542065389103783719786100368196261757187042483281842365403126382393943234243047922037312632987584335641491189234767166340901441220713048764392352224978094232792981098295991567960475775876405595182351792048097094019892363543178560078195936601427573782398732616772172922795059246191880280377028663736181811116915940698552135266373048982928864082353122681967521753518357730717518174934339525846640037483637480815485408043396978904962704930239004597322196146477244193373444467821925558007519719513641223778108339666255706278205766653227479686825397043855436263835250363934794952174158052524174795601531449663106320548435092271545581088897270271111665215604442420671174612558092537286186703547962412121427490995830834479768234608312261740152322945311427842033765062170951347915386577268920858643041213258355481751293364257739249138030946229199804171306019493652756387614290965642149349570925475484763921534256100367692471694350918712429902428204498256605098474104520000183382636402059983777256740516202500269410082231662792837496639330955883107328240830393612974070005067897923230575889901312448945704895935183447641960070027001801501578688457476228246513357890150930955096313771001998495497464287565088925005602193472513024762073833624918708585314211564354236414236749251062247873095298610095954120719111977367280618529808686425617931135350197186735444947737081232257035398554380349944597640295490272091774420025338162330626080793664625835788216766510698851855715100239310725659477507070551848167979274657307032330384238248376989894874820085415789024494530234535405109515974937040608084192951307904889067359357313042093039365458658757524786207993239626672544272917715888321928308552148418612765129922697040744451851611293872610807628273306085810868403365792644512816228712196331121100246546041504261171858484976145104679302891912897801960587994840915430355938259148994206757941186716212175047429092533553940892910088370381501153058994298817185664222254993909295469519193678933447103751927999986529580889412538644195429817016409848286929860840805276735310994208922899504697834097215375804849114793360185326398125226259503357321696911772142027055294256938349697694520702991923473896000084206059220152140574846899885371351749853829025947089404645667044893723458490541378639450810274641221915208061948725308771310671561033141879766455297362126916614586720553289187564463489464539226842602453029172288179203535430979269054941587098295972947057304829079331734816741400795667043574269703511520259608105142241413779060651330659851764060471034902902260807511377965004710470816580683201238432025046941318986564742659040995428203512191727539740226969172112947596766009602081946844577448468641790243352467282599056977166743788794980611718017452012402715480771621805859770191245822442268479526762636023081340198750951753260835709296813419388269631912672358880707575431497717465007298152239716630017303542114064258332554818034051096054868831622464294822208707952391527934942182323043705921101353667497584204624485452288229038562715256596335054668589639513324102871035945614176206331153347577097350128741792414219949149291059854116321342673119275411598270398588907463611167943283014077385225047804283474182189949973855308667733561143971639767862987014024895447882413656080288696667145567619219395307839283138180290537608366914188554399790354154139908308606644753682084057777437542891357246824498773114018191960858689099524212763355854337617618487231526736549314384324034047454347825100875751237119642136867506642970976095301968857353679469732310579938965629427983883667484178803155828802436507134643467298691158332524844957997033586432521482898314625559516179131951255963076971846042429994944790809789666538615805350250998076105418080329957293936483183434880914920488399860749743765805829752951759330459093677964637524579630065053182288977170014122456740263201540213633579594237973772145306600061493306831996690294534299716267187440675924125714183369192200032433436987686156636106986150165229422086101412547929669622057396774805629024578391461497974532476892691488805334725556766915081837487827008271722745661369410216873247797779055625966020066803394730033323244280480609470831051005449790610443480172218669040977495887892676635282154884403456842270787606921339803310089520101760540610619860861932761043220890334379950783301086217903418144025563464613104554668814667019448967239974806888931159844146280601821374254129835946129584626591583344178708360209302464382558032057461128464877154138286073714058920038609246174767787621883231747154750404905403934061704005727273052778505405412133093751494546485621231100484923664034182379237702555732973577947978769058135495735857320818816233907434118492792457293475693014629589011891300626995531221564505020100180798078258980859581363937632206743636654543305288483520621590445042757494226989561059384859180521942443099878063946507137086815002856659620249636888606393517319630903290901913281806706722160560607805951764591886188496873214811440569082757401521332846021685335307088648061797502174748813056488229515911633165324197657005531273320612307061127895819299778298755320792596377938957402011941062048184778020077363558161446145346480143496430586372815098944551881621848754168017059531700669102637818947162504188827228968723052473361497188622465824137915800120049800607028793374868965945184231897430791829918289493190802493107385441264512280547364853563649697314919796338341373527278026001843255779808148844106638350252023740000991228125037398807283774323108993709375426592857419674429281924372237479139182089900748927854552567394775770378595993693367673515433979772145227621800816944166264787549423667661175227811054764964561843408589013173960865371904702812421633634531564425223744540872178201864405948511594806873797390687413626771864654505287559087572075392504379031568196453825802991410526985534736803469111782812902425849557606581157769173330144725547754524835115633210516896317556158252343802738201468035605627279609575833339455647426191686010129357502891850565722397557915696704207726612860820984942762648574913318810714936146160008403488393218217171473378465871261315033512186910211144130893157658590208419885509236992506584701318387133302100827580115421259622041708589246127483322776401882390464322371523144799019504318490796633372635199342762748247589924188607837924910688458199670265595573997201130392817456521688231454702519034823806193847189433162229993602691372973743513261849197861624269380141277495384547530692697579222017126462664873015795990355372128680303791336827919925609900732751371443614252019431900062865270864180968041530638362651068368786690685111505293439165241508686868189695040665122880323183811602504045735832222548028243638372422287902909505351925717005594068646562603582379154948576737461166655406222004357039622520911809522695187999081846938560182321342990260891689154993031859523111900875352040681718638497181895364448222653517712117076227771307709549889865154026307127739554971411913913203078226569945938701932534234608779385556631454799263119292266285207712773775646691431506651242109983679337342000982607551580239040095866221865023477772985986538000902471003622411249624147882349850613807552134290857730248978818761735519338245968534091781244718737350078278898892309302898866964807696498777292235362874251792951663317209793135271809792115337838934219711618560965136182698686441876152148925729800624611461604882839491960511701575302110426799374553056897828209986338271062795722271913204066618397763442982555800137177425593381755510859779085131927147400584080564722156612419909238705863904313853146190953991538988127668977000889562989920301176474503687385880668443951823953609519105340762742696745128852991233269156848991847504010848353760892036043836301928334305084530091452211996202279456381014063798528822151901912844430770996422756662833971180141335991309836255007912485334910113148322052872478503612553489256524673013774115793557774273210867314539654001405375903130378860500246024315618637304108403849593232856664385442073171098732708948349020051025078074669919973534138675057856797104621735487134941614377497040325562828730271193373341122171351815806395091136610535600612238187270702459689375124538974794836811552085203361587978507694928423496610752462954975618065790500547918064523745566688470672712866840764721673997581636764281620626389418787671051109402993328400122976800814427183535118041009617192276825842425323579395100092706524757189767296975009641881994340522727233404513080041840988914355953934684014721278861652165850787253603104429811506066609599590062186081063238820420610924781130657761054595861668304990842837670826462514879964241545547341662741255915173686233806551667894801872240221387963522157109847351605390668471572190198492038439025111059405300538573601904595805408437093624071039387038302951257797558660407421361562220907518600802076089169609899945163500213356600474837402570867109531483296042533719577210326463146577017989036266938825616519561499855440829812632107591023692159003806599790619620367149923761736181565041935603430017323048219769684626529317371196351022667796643747139145960363305793720749786072744042503020618660697117157675759945063847712557992459264373922329540103391801836310614554567322031476371164764505885230913025422530254826847772978527451069727596880741260527704685437845632562255166059487835735437992587409387071191943720531558725765863061693749325397203774213841578321767476652955613933443472454678473493755956292670290099101301882178612078717944833672635558860084919729853760348992816113364492745593740833407461224119535964659792396718253967736369581305638091326600860328899108691434893427218540021900147732577010669321388093785600079135663036558672674145085155680338269498927321513024762051454291063039712869066945846780645339327771932565463379380642640239400676434431294114505572754019385248430804617817703519027903188486008800831942179293410107189303479603104553719105755172061743770930844228425281627805405920770937679488030287910059424783494444647010727930833414192842735866733073329140480971990050204751311826689800943209807948958410189022829382479090106172975220247411635017716254573119716693436231960632551857726399658562394907815663696168748189783366531719419329253479995601256036548605336954114261809412932564970543286035238206686408483404756518488496145890527540472315428576748536999694825991424994601253721822144997222866714595739005475834279561229049827636339619069432214765008050923092620851917602922247566649467207690891765532002992788478066509947172239088540702150261489120372410266063896924122580124610233168348367052591566036813889789256169882732545852672991225208091490323084451410561714745927758705362094141772913233870155469817756320270004196897834440097914997538684403240040791226379226524227711314801842291800180862592489581694321228530019561095860372223564081809352890862900056481582262707590384274396013607373884285754680527203178098308555039539943856840596561323049352430587331192129963757987748026583056364965659315289218462800411180081500511086944951654884827109378111193682711299216164270070276028697362681497619965278801886753024492180164898570987681543615205090704220534930218730577648100461341203873086310243005188295681625015394827156802680540560929944567992270935605055921712035786746907489784379901360444582936081605876065013460410829570303775708561708947397068441294333843083448302974769988824454944760955086795583938819261255279124303536503396756521531578179708330205468085170470514455244632456451905349830548306176059288378649073177408158567676339195530264862934066488991998075045424898750012966274531100451759949204696809094510059801439436206277797699666755910233532776764052489673356820377563318613714552351207116798413942452411571719063180039845790816742537904511421944380083057412795951916008813632372901467554762166097232118826505834781158191833003622718931108630867977889333924772886911131361462983372067133902751985645771945660222341055459316688374701226983655494886508413738370780936141542108127374842351212698536019085802943107417238579357959921417510884204733805952829390548107106562694267702439737971237131268721621153519324796924778876790818301198812532494866661977341363880706669631402017838059501485830012862517714905306992914249018526283536286875065224584674424695842462644239935145902636173274363442545354150923309151648090713031206808938279182763812082670017477542666139727011627505426683893249024479139661133752869610920750078163558496938555335397810150932373701306320254686032996067177983682124565267492590321410212158960878179616131116871994779505993359361566464084998874045906262820493190784212341373078372107214367155456186495002790585951477152344057243598680111670460380024933142377510072606015882132521820940956947920443456551928106070626113304722586752157794412941071738881884479037918063003367431475631243955622781621541623461078694980026067294059901666480045385681763178401563927943582979555391198717519848100169421631827647944892872190005137930296762685086604444655997239265586266357561385941435679269737986534150127895744691742644996267802496742707273770101268458005818819395558414821164548644585650676925228059763795296768725190395604577287040144766767456278815453222068644442861099210075636704942707664189819838371058347695207870849564307511783079846575810783888404589654226411694705265257542000843673234306682596770083124525555469825909414979948694736959998007096714407485250889339165978432275952543125288064463191287364136367284435451574601819060406338875622057134931705446371577295023562235791863708767757769771118652968192381200607499288648144780212989934941651193639655543074090369189769686192424159942105103521363875173011993497650986540261153254552556473526187140854388311755169221313642730756677211476759068957408922687543328814041306187452837391339701169996707966752451005681170778151678399059565390087199013382266815392526734448369189115157545616797731909540032318364248742144766431681147056333461947923477093701102836035382622598846952229964765697061889639948993242988884612575304934949358003491743861271515168746322251997752078013122350299389332891371899748630111074144812923204382807868604644679142604507594408639589698850172725073227563650727438282648039899273954267355692217206671527434295605293819162245668956643006720631374429473847019098450725108494024309134827872056761260324387100535533844239248668977291591488918227767242323317158710120597575963983917205903440710967000767538413210911117115945367770126673883985062968244897436166934280003553238972476501538590779717331016780181945710884095104035351718034599460993451107363949783216693311050637756257574706158049737625755656339406618372906266668594774071576434564366303434743027013505278972142914817889734505906369855870675962891629005272306618992464334725748170262286535710932435281197952947051786500701830990117407175281846288710748691647093146944269763751927592214467626793588995409981677816230851396989129170669811018867174845505859910224319835774064366493612198499738689024741070144508662028400248936925818743126768786726224916529866131265047765354137747427759234764105006773340289151418639396561282366884615221048237276172077431629452328333470277628238991172879711270677637271802125171597779425977024208189000802449591245285278700100336201241856229110186698396474644853036494061765350797214838686290860309051903316295726168254012394990494240720281421575930090649115002543808289425371666366825143779292730849904781184812919939469018154881543154241541194274029213402000803980395334905663331972036631919771085375864883417713017126696125932954880622644628408599050965188641892355337793231946918986130628375550748848618688077816732443484128058290152509216452579283994024937066530159048828797353671203348589935613641277401494952077924799110187258323765354510821951584615741006819243671442285073721095289896801790401468042373920003273796291857484167948872613846454330459007825038738235696110097575919945186916407962620716535930223764086687361231729557997564068121762134306804518912050144741087480969128615090985024507341931575396191829656407707620498696396221370997606076650256082533181390988427646346295706791024974790964801759560461600699995028280301175143980369297588823424107097216693047018852347084446356529817835790736042981240965161899797214459479851739177601837271970617790838438602213422500138949348099047943973096644114215389306111738708066217907161372634447826647001510197729913584500011254929031266148862297152515030541830879500531800052643150843057139103150320869671583742136782873202240786762068360770591443398110307946938357226857387876478908017249944916043124072076762547654360725812408402705571916406983980317903275686080144515699128083276170047772110977115152766992414013684179382908056690653677454390877012715756033850511171125177948889784014139162866312085481075769836386047448142755580385324430890652452160246019212493229850097694923606773716646670334457553756445889194159903466234921689814931863964599290211175671532957736129419335551318179062618352473952147397104586161049402395432047445630635244858526424717407750762279362136244925114105957498422649284776417049386414254362318276951551870101687219119157003435396382484804947216870450980703006033423197424982160731205662229669250167324657597885282082553954278898927448821440874470516947486570253894216582452494368292932132993500089453374473955684233854096491990356349849175489807326042438772164572431252329251764809259102874446329659166294736336226779024032360648962771222592981729916270238990916795710791013315442824289203089072561694043458508758136552963567072609012500486968588209961107648191080902476167633868550849376088414663181540528604172609542320201245291760404858971830361335767497442543655476090917900908294177377357792651031103237320977281198892118713840480985546438073315863741388557509307395229071337380070023280387355363294358116345100449136752469351743127589654123122509275682052737021905424160062594335468426247220009198906242880162438092557940098820166701667386811265171420277624960917384797551790372108565421340979159002593397282250575025733994231911600654716639754445620971237831871564433668605494083517102730243595164522456838763118625749645776105611676151460281716453618394946503479684898023882746479421978719649627544705797923263940874098778932418202334829799689130717651620488160296238907648243131849847075550616086421926316400747457578842229795487918388891290505940065374737122772361254304477996430225041848276548902904087793605269053952611027901384045910703835576192865370636969164719922655871608035009361977344709749034962168809709618922629813911409529027667875524814815373947336800494508627922720690774445979510519628342255455123610168561673949438011259796659458888812284094734051117871257095734084294314481824837996821985088287812414304623821269782476091474090371732967412977760379918922778228943757526456684551014179346501271657005262808862261467339108855443466556642441815920145368582572151397048007478383841471484143921020507739761159520179109094545019852674771077182247716121338154629018207710801626993175209276106987959275710283559941495112383600783803725070590975636550604476969139613683363480581527447754339499127353869640478676983233055343488469958630130752158522382868621214384530188347034341223629035435662570383304248388482521861280075412530795657540241926055958919072845133527138261447967569255239002277040482780419331522129786032520182901356281257953924201555590484797356013229202764335258994747435832034345301577386107824028475118186115024122565499777084153217235017161316546283548919596508679813834499080814745985984486609890736402806182590132344281630009914831815879108044263468771047930995566162350076043598562123443172703254087881080833228047013040075906121423651196844552355637966734813564431215107444793287266883164056225086726699724615647198411854382778408740414112959637631141627958546889013535251464144727715345121467188471649616376366680072131452460567974705916691693251643061837582384739639296993382817917586207569319774021125468354023602585786047349001085650200037356987558797373497955860425312862199592341091355277418849751021168841390172408961144982332082995359619641033426008246949462673340781459203194103975356411343561234228182149543887124178426994759033695819154273246723051117395878662024644876637974743346568993772405795192132726694260650393354011393679695738798517393975165555384577674529036532755082375712075519149514058543568101036035029332609894839884012102309590258796359450518317417859578534598375952822890052374976075551762358890690269279334157373512810352747890213863631333540836548846932556024240885999035942795181665760844978029546497297705426055861887461460709458214314296612252051291330550630262654171118128560263777019160560632662027839215455201309948327094508726926110714039671901447063815248253617007345326091159924470116258946934823055439163274035369950595624183350435957811503430425775327163934869558863766819658706934216534208485402357327130568530921508267801328057421880329597978682180466289439012221884879311177700586429643792733881969005174382348647220577347842405802370714899246439387037282928264558501591320627917332988287315398461233363891100070334351157348490786471893364666309364508146696479757135479144357701713320520154079517736309326839255652164954529980212269785212144628939035171058378915337489631226700255857960429390194586318937626829429333552168720957478116821610634693128825570353473116579946293503682176184041799288416980659071663305341907313209035154390768346550072721909275568072952932340632496774011765642072578270630744761148704483458934683244013312348374985989024469460769073197236221221925141169071264773536779044697018148748334968453281419699050899870383119778485170464171407827991323790292326408504204957372667282551449649722842357286185771677994052707056792383317251732812459519737828865484350033891086408837472028619377635214324057182602853089720728156833080131331424643707558354180119835787767841539451704392958995114001998004994554777165227776834472895961930578262829864255189909118126059698187400633551167055779112326424836043782436555411148832881575419216036049340204621957937367560490256057770267087383316480732470738999494885885506597653924956920653654495361258012593250367414127753563597601275450659897423875778072922138378823712876074179328294859691923746384458936298533586654945578167249319915125929479351655936611422718182549672993498394952518344652406008611226125287348913090736051978474056979868944853954066200065515758075005283196642497295596042428763191662742248748831974627036181619821536238397664188349034282896044078281115351655449820474416156591166271265862630625248724563293682850899083004054988668501747071192776003042066013474752850001648242403220378957620299534005914838735531784179406202142314488847640857770201679095226540888733550427218587588688409823372869676283221206982052761012906436915401857056833510709110163033016854437728667922334625840269498525055458031031932284455841669006029512863414086650940945785685456002990787039046534373528497453981389790444157533414381557899369486004841367473808225585935864806916120053779862724994433350794381939810456422720166128391547964188517841543362086852861752667700643750255306669988968871817408696316547719233818100836423337917039645003728963762132909510996889846436137235525611552871373769474203619256188508909291016374361831875870151170733885270090544471616223344142258255401799099811433997973265568040494155432659324185550047316177240766977498613979213351439890700565611233325661280760356538781941289657104524701294534106413056326566192197534026787431138672452256077607540350668558615968316671072198922315497847809189491527490874148421881361471226173449955093555283348759857132839674289221843842254591978584325109173671348085871444635569895979488296898391024405622011471618752662303632648514888722344009243557641684908092540596471359899284156631836193100538478443709043451104366195068699197256596751945737836645202747147470586949602206669250641956257904637112683342694102737899132833527515032684893778153603865676357027367533817777467599550528074836891304896669082877955428157841842525102128792392203420914095867436603733253717620273774439920116977447443556491948794562374038983784342688755966661505501386599959096625378352839076597016053463922252667060623321378670681197416180962149913369023650665200898932968776900536299189786223875637438529737023507078003104164938105527785491354220187943210904290746971417422285769412624557567943629393891375415007081505594238530143544731565401247278349993784921998390009817657661374297532741864646862912234898540917661330096781674278544598295491898228107654259086497327323348330826502597236020123847767829476629961640939607615175892396013887207183267650186871588995014803118415915949093693668956942010564476867775341066083495983133033686258234079197097085577330287796172488484077234980969229344730486879367350101615016482761696108125603245439032843927695089846703069886024443602578127608465825359348513392262999682288164964732271186447711128416754351633095829973065358222567681495581292919010297398285684141655526640715520494510549368823498686990665886176500105482859641195668723882898062354150027493930060492231751550462592014280398505617586444935742598240133428428606459039012001811949432344744619744665076248214532996350697391870268424765099076433558652507527185159698759461806824419611413857228929827422168748600247228817967011744952245455735505236010664153551664054944698755741836929129006015114181666732256987913150153594048861753347438174379898273442541239046354024717843294677557389871267844591624756131114790401438743307618211884177028470747445963964865991886372013155281428093928494288988787858132242144467594446157587183806435145911845802829516569295105593266311139492164398682403330061869966596807259535461691067446681720160956293212916175898429438624195328520798276331397133550478264524665123767124722481081429237576600447532420756585317484876487256747219518046899814449909603115798403218744709738536409485510446888734987995295535479674308090797392211394388894553795621521207067278172113037619643660496543859445364135545987980590663111545736446765584615414408169187001533895000387938389709154454317980676315652844625680723352955715145897537358918566831131355369719655583518987865592932721001749143334215650303499298168092701976596031066616713984564160048450874170599079907105282561674634647918045089338768875606973112944379410730261436220980797206641204848687949754558100119668133909484979298409331213344613018415023496840400763114918074878270649967528688490448339851664052435921760913191808777831524699220309700693386279223156550264823059316120698713208207670516974871282227942600198218206525728518863488370217735452162660310695749644728997371998941737929046773774367520938701870018047410382940038766243323096055745414240595835954171347699228110218197706139010282883813090766713459504413773274758647349917893649271698947527728346462221058484220150984097876947215219950569038358255577720940796470264452069223815895836195196906669398817586278865358954607530423810911305975841722005021098828380191990375117956525301039681776236739676768215004254062333469090255167468075290934895050442295034860408851766158441106815516638158178046976370853277454285300705323087297956610560634010315063938813558158673654037039588438415695254605985363827182704939701852363391505857158170283480297214131385909105494747322992021122388807655007808190258144370047834822547488946167391215478114208603523803834157722663107789032253703105545929766950144292272127748223245617525382412678692001503321871814479127304098128045361962068622812618914479584889495269857868375965074391077490274041519448598110280642697609992704827100001539847453337906303415148828677718320182935572821983072960836082436820216071396139627438886824159365543681823799677202790949861041125868767675291931435376481228862786434872282205871168386184976228883705512726294158164524086456304927522868379392923195763348599412784771401454323751362537578215304889950250984659884417189752037304407351666106026415132171372923317151891723663857619465600214047492435463618690059912995511579510716682301274218021378017065423985296537182023935229812043082770656745586913599580053759635203635447888460243135755692649457058087680190516041102065209608885745594176110982999378996250616514982425536522052549242388712861330012772654514084878632238509501585194254464161117517314786741254653676916920492128352784692155890980071985555026626604658432883736977279168055843597935679371455919465011141715253856589566212833480845056776682971518973636116011048877192367243442989665149298824844496864645880182705039891050622734458852027234794279749507336560233268108296295572868329387050180252013166511361525492176688971335961025243782875322950510507027015802596295085741092494386437842562466486095315488732360969943384094921961341441959095460777746542879323507267738964933441948065965879374158752082092215602525627798055319317826343136964570728598078869340860478533818067943210016735240337060866847796168501440434220206623326553449484632052001136644814939287626795197069472524214442521549312707569155144822338188788835989569292247456648124427095439967990097219431700633718756253973581208056075971762207889829848627687054477608776052881221133661127221343576941357715581232880915387114586003465028206961098530433141276910953779607146765265453576936693200367136528011384290096672288074373430241318783404942950874087292642073413928033377611757462950399786802621158615844145173766734888845091283735487215439699950385280304347309902133463599382312527269379711671506125599712329146206373447930295640655688511354391530585975804093873058564522759775903815852768761653273136418724129089979276971136577830379666794976745483409439510903459291785875554031463736599553673989223333042148972719621995663427109928311819076561129256844927946479872227344678350756365353638630871990913897289144783739384494239563623084010186294524980075454563315421448328754353740801311428579381765553263550490924296156281208445444298717010957972023852785897358022790290659101152999455880130724382962117970972442996196093903366693517712312123621150723863934072902536629942200738980222459762853115349525240338271264608373868495221541995171218189074122199222232254082916706905456467473052824656462811386863428510193670707900320123837474863112009644131362992026111949672221173735433593150820705914281024315882743414125734678856825606187546365287937554027679847472628692509475354115729085176576407578378393467478399490682658115093867614325715982477151701787424023319415853694298998900169845418022715829291753767433382445868709479935336730612153987489371613635098652643580107818565840062593083616684330782604968634333384860128086524113881349680783102367450340255915931472009908118758073733953120224501652096566073873139744120660537161561572492533702275118426749113898419978260606155866051512518616350908041963432685786641883456544752222354186681230089701336443371354929850334641628793953709627917667697665957778767639724450032390269516144109972799069289036238952496172432705811321742705782784766046473931834050124128186492137880948945170331091056430203556932299727037611795391006114360632115392712788081468135863003209883570449331526727880047688358742040124072894135385561676854361555493081547363202162623370788562874445362916955639854386156294486711064072695344352018629673863966399707383755686301570507873579492095094882526433057647752102751086470285804247231522524850455409118456317065653100636790572990430429710794643399520811664410500599324556910423689194486174038671373193159611363969163200969237759018265669194266701119532937482799299619827218459067879154411625835726743270806213189294154616008395264317650129924067640013439573011284659487238997724152093260654242745565669602832729283537924036005885649707610872784614824782562999307715209422119487035429532637006385661352968494495060856812476539562228314829556137480055840955595036206639216265281919037171442504957034788025256325792141974034654060825364266717191684025030731390487060544499365097932431081767793286786425213737217301446733308872497881216209982307455789980713057968941380592218876609324319083062700539868362972449062277625572746540017301963417379019846469204333463152761949916085339848223420127074726782821389330503419355496653168034826972107348970354313431293192909024267863985151868809803213760514201259375999439633708704180454810394452446709744633159540922334731847493617284501792971456593477880585179201358321670047985883830751492418771998241170360549971427263884483532580643864456772585034638042345797608336841979209837728337973308276913752923181917929708193788136053343099684503920372290059934400277008873114322791903680668837365706344556623401135392904445946393479073812756167259446994771109393184351030156739976802256332961209240148135901526528543441588081223056731235882064024778182757163817806427630550770814195558268691354745496173437159765717689328831750447975106464614209545184185339932227379368260167042922396201790381243105469742366127147605782758375367642718528662344200951996427210876889778007203134786206791998225188564239570105275369033052899464413030613633079349302636133088101895358221978841289162329925363390563472060607747309706222470646186951527864941382482857471909752737548690238287835320581141297749562367977500878803572101541794401998413388860792443722798488117588066615295315378200875118298502745096848328289170230545822160282976408063861639925821575769593448537632047937629283923126527968913036304847381582575889573170459513174547295311467974321305007932756168309560941660672251332534062868251419663838540183976000528628288147628363226777790557282561691070443356015455614025170233885195028771786310434915503454999433983575251958450922452975010029782059762070838311682267558664738471321059905016650804284704345053968379921267517272671203949073360250388016770525140909631349400305048897477416859139648285110435584450646584789816359732382618709813862488419747452700918179444335780627573933101405128489105510372607413352397022739473377637196573679600406617084360732193330804077507466885551239571536870372534899677018502043620019586247995191586819844569863374399428119456381645756236219965728734190145887182533476717066393179642932919904862303119329893061447901369026038130517118167922916608999785377733835387803522162203159826630208412370618402423893339209160370945947024282329583628837435196897875566730609437259658114019682127741048012573584042584963729071588409592530064279809607448756755248177629230617002444353621332655375643101784451733920429245546330688513898440539898414056673779638729846425187909536707348628965241587642078568940965409694885153587570631299424641662504828372006758815764348910010695587713420128884898849335392064099678439100055588824957405863655299788649308225090486835707376872888727233322391952789117338767299043611778278705195653037747124748317444401187426352573239442122306160990293013532315710227051190762621688325998908866162827295424362646665008422193179944636176711923459709198578145997346346664687373047002723885556584387867903359862304679923127751730399311325958156531858433106306284369134950343035916858391454349214922787096091919873090405080638380969662694538159143818893227040703333339119096809761745052961616884995293781040335445301928231772807962699176985563170158201728164732874975667292648216720787732870972176634428409515286813821084433255161613461836211205394688330909221572955345108543421426620678893308556083185270195152084152664734230841933612136181637428081985193888394045959653794968924507279300772349773042948835531926373033872093423408327222301338910832045550618034662538622842258943276340497345810962746158815909996659898218106730460597775627459412329414794377378484678696035436271556629872543276137742118850293784522810560475847334071818831685321061193594810720706966827202736835344559627183127109169067290577927059321433623490118160492551778583369543999610984031462273082203590165289952477068764614862488411445684272071423988721797717015221536943451749882295058424076849748422567669450082111195931376040158880336379447472894452862278055994335397671734244618175519933513967002420884022162682934939970445255683664065324872005414436602479340912116572707566533197170046403393715814472567736225268658351335633774611832321932506744920747320435072859574294634998973931249811633399309654004223428198607538140170306055645387721407497796729742374099676967603416457075194664669127552588422636152722964379282593055603096940242228593021261231848254730653436260929420678333533719592696057574553179783989569843146684376019200928890457857003464259916433903394040232203222224513027890140502613659355416248368278907905084226101368657425910678801046290138566070503327874776652822284445475050436303423841714280793578084157995039424947128414544947697626289696811513373579835516444536869374352255429407797423785642349953577805317217644014125924570826095706563950771007051570586693493610716478212816311167625030470850085423414655902754109723015099331439961582068522539205729183075434134816183592529900296926800884980206229575786039566491346407790642434496076653295229145590294248202446408167479568718835932442172735532809982980359020885834619211896602775431028147168539890242171987099283464439561749273492359690311078717662768256210707185831313985651567528894667278534389722259448563054160177454481747146514124529680529528113429959697584204359492954124454523082858368521598459552180626270467328796764840155742517103296773840595244485234236099965192471435147609187173048767952266486684968778198963655180303169411817452990983751874006127465516647390524634903994998472803848455275666291061883295829837698546009242167351135902136766528538277366502813687439460951187533719892568159930270892311811276026530307827743887013598763941932836717317021238387365643154742358469753506102624951347547448986201306896863495940877790094764996063932917330126535579215877821247315470432210312051712293813686308851270656346319001985967650689785318203751934014171027432538728188442423727909616511037263636691514807550469007200936209929059171337078513132087029872945131736511646677069607344607423253645915533368110901931145584654415144212406129396710067452061089111643182965212517640860704612672654469072877211941722828484343153594753263937097914435710087297909553881679902747265832728653405884218373416062733067357355693328732126483232061360149236687375728690400976739517553179634629306594950760439460205214888068971194858526695637917139042098501758245166545234635157000551168393010513920392708702560127444216165986478397956492690543038142038190381635812202209413232547927842413189895063861932566091775669826936641943165812637406531466826292033402719060734824849915822781986478241591961944532192350580767495303611705533353825055247862894833478917822092300398645544244689998011641670653441763488995751769398956112286150513198138260742509563362112667367132679439648929680858757420061556910105216201699019976487043789561410534565874260924421350811672810045437668335453296714865997351273321187387203162567342299778658001433122531013669213913571684296214006847564108884416913102237522092280275400599979759990727073806554066704398796456211240991658241230680932211711150291636260620210676719102913957225418469891650639530245965723300726762963005902299676104546901727890805942187068573971179380261007538698307866590164024968693826076215945717056718028113304625260396958425068953581694068153373433771433976929259786342071502055755363113189187830522105514855805938166482939917640482225229176924967753066971054490403335974254381310469967474401857400231225139231450801658847427874625706954860312371750945018535465979622924315616588926530002088655571556758265906010444727167140027133078633624145121663241839960798851603224614302265579396402906523836150327859003934093776243724759850546590089680826538895809433657383039586325321019205270136519561832894891439081569451682578425927406342488289881227476121300697046272088144042793668220507994932397713236131807754378779829613499600207654496799756766983357902766610878380111234236276723697906355030969459198742107719570041301490498502581595506220531750988006540168945375629062247622805810461163695581801894483763819504903846104492472729896882800645432156410014837260551117652270956351105717605107762938059211747591834930350637242909480717240182600377257524126268676709151294030336378415308496151480750027994816044912420931136114686344432738425485592137354570274745732332001476037571357049402620946323878707425712290419640001712849800444564642969444461646326163652913372758970589000519564881454950510806189358341022009756958999243483437162887644917627473954231596498725908764736425385480252513568601244348180932081065379862348691324745303282430179385077568728241861816665480756967570862108116590440334721433417591586387909186922613397981116935605343311519591415576134174127938736303891625254864486451391346681992955457992918077525149082390194764522461896018857916527439466041632090178418977823978296647487490677941064121737336444488200446366706837459680117456569430986043712190826158433249602204104698653997714480911821816424813927648703744435408607712953484241551015516475209102344421153283092434908880505647529045767603884728059251812533104158864756107890400369979679428739289090454052293741099509423140696219253589168094275002702534010356846653303378453570693441855912370285548738193806993167707917307297794099187332758021747920306542356383520253521093795815358618013136227399006280833553075694868055416064727128765479072578678068137900372974253048375630977823234600815707361829251228667628239884618715342835153529890852416383017698305277644317086824682877532734877420297502976941443699073621660912488656020629634844077573810575699472276455575290622822323100772343232750693477410101960339438756991893987832117246244889213069933462959516688757028041000168722805393687508687392396386715654171772196274067766541254080734727083603434617597323447261157868906709041427474304102526216296702631934229575926606926049930690149401598231809585982558924689996704111439455984960956945166224452729278884430447383118991042791453101500456693095514392992868662507905483723185458089298877142934041754698140565124344736599993785744737656006426429361445996503237533931500108708920838608057781412643155105497147133364059917194567746846910459040316401115166791464135939272961771035286523526873789435708759714654676104859780111036467067377827407543725580332672889087402738264700473241412411431146744652146704531371118358111796799149324911176654650493726253337976806481892454741352107345269881872303737431673401938177002441019997387210274200879548358506383064802513542575436421244727161083418429748590795949194025307371394329037473389520145167602560904743363319003172149695500938182746513272306877988133165338853876635644668170772933889967540833526393177704488842541449099695275894483488016394640512627224197467324570170557748001013132832269955294854993046946612909025395236960061961059003708937850724948075414505098059830848397739737917558305768805578395418845397701944494256095055533429038354046790589189016142242679296358668389181834097517770537462643593744801230027122100947813668346862401880921484358660177003103953118230621714205352269980542490134765132027457360346284642514094268502034448675477505576012785696192977778972511871822347023223844422085378438955307382413167989429938361752677995978879154753201659239989675831992224704604658627195125493265603868407893572172006899199602663885330559917688261219300189375849178956649261708268782135486898700343909516986953846688477460605722379669919395470241723232219823734736567568409123177589241111551379539737923463874768438184849767000231406111757349348420240064120722451036289429098756436969388759712446496380061508558290820589461157417347482048269197893984777384485516575961930528279928701174284164529430180134959643178772555099332793774273893462767718812933733188342850104013448123672077817127523714694263468335742994963589437144064369400281344109928583025845706105412641173667735774961772935499153879621310289890909396425852249329013337099321799587952461774658647753692473674092861272707631867651446949222007128960930868206757361920494657336444495034703616582673562929510994156644919514723614795042324579822758782411814617267695168189908815832862310194498482114443852644891166396199247049015561682735526382958028477319651081411989930377156802211595817679181325875617977834225836457374842333541799379335175784116954148830963255878149050081834792649182151029968020266258279337688722403466544469984654661685522519166520176870033040572752662957226972687399983467007764321468077595314017900801655039476980599130402766088696312218776225684786994615050154586418957463473916017595961654436992997364240854469273217850694890566334873623329514557027285724878431129623015217991677081177962833253068032899599729609121106322439780872695564949102949354701848934697382821223754349695569905755425207029081524048125630131585752461054342293240955875614593075298407130010351165484899192590680041626335177828730757610309830237980683279745143488122348792389833878634671910892802244910675884913494536062482900924272269119742244426970024611081629259146145438853811883688121513894698927037719741949163988690862292188378490300804958802693025566147751502005284766702929874543841128890966138305969814061322112063550958094920646038364516118636084408726328184704531170711678780163760825061925811333817855691215145153604021713680448905452730555130997494050770401672305554793641881441642805715927212313837010394245578200601381434580173574754619391701770909913541293643737236063104801242462390956913731837721381856566583251299021896096716558762016692120089919024912040433801299467670126921301424819620123988557820742491009342008710153735340399436495055795713910755248414894163331870623212955940526691900430653644000979637559814792489622923461004639824985427422826417974647896456822278221680637984145547689003280885895944773374221734566370704702973709601591749621431280901622943785626271998920492970106564460307215938313736299896777563633279665563424532632441057833858769321189610821172556537386752293034216274570718241890584345091885151767275050901692155558422135592792588953507920907154276487018846312867984306323024969005276238627750418034717323639288152110241703140435546818269100689909723712898489359266202920513655948223198546655474409127872554577108224429003371099050485848569941757314231856550303980302215362487605150976618382616901084988727257428636186508150863500563487199846120575602901097491082949864731485494010735557181338750358639873545915998971437596750806720215957724344496467058121110633337257563484637341805928648141026144153715963036025567077385280103503390883277744296752356667265974252156740758185604898137690101530410104729397935010580742143106772349938528075796774271310627485545378360387621144073325891920908466019263395730450025335697047482438439645188433586281341291530624864278707093311042708719423597943058801229106726815942561769993171164077780918134973271818944514446559306371920353685404445812909301693048347745352072440781152787464134345050064619831502048524379570729372859589877539291683268738187804496185144018124102135316160328122122067227425841865188401244805333920082355857131395942647461323496560721176979000055175052229544434343190230335340816863073441223655806064450506768477915190933576697845631852163783762344737616499398285376981732400114614738470666201126686987782321151357032865033294949780537798021906605056075405538980075450740682059440347161744061232776566759588326758169981193227648844698714563827713959895137393598072610807428488517400868526383756363882045159661319102336243163506688409234573918401628588727640838116866166398893897616697483978516373951733403064071976792925536816172688818291231086721132743176651680489001850344775866158132934236944753818876325011343296769634699955053851904339856829344683906919317877476834380469023309924559500233832020519597141488902050967630362596189895435700958842648307451389238200893194224443135447879179244679779932560505182233815689395165487190195227262215281175105148466797368734556427822616635221341797330558387766805134503622818640120495038988961368470719013357626016466453685621636857910987454341319119508411511832526419873360954805387978850063648329400576322540852097460454154789427735648344051814509180647564636676895384746764437736698471664154816728660335301684711538779072674190556941085496311490628037839257543361134168364127489826357105999757756337857711538960127296504891023580375591726301083545054384100848392477104519343490278927325042508647709840869321014729957245797737884571828230914663851663602110567611422940214293392148011339290837392901426941605378771397214516897820377307826848847062022839775762009910779584123505276448633767280218988811132620529411313609088406807968451780950693469277433767059757636549013025378498146448595924489234317538723244143982287957601256145554358461638949536523363536207330042219237826232875693005480977301890161557127566988715559768943285135584974911588059220145006484326276809190391687926947119915156218477802147223332771499461797922973435674007830244519513418847960900118697952566973396268395731215015173210679723881819675876893264688362698786291947889565946183487904950452535019275129627432184062190395219952608201724529867842389984147579315770263824769654715749463596658019607696480022795360190779929194425998183664148315280250750068023371939537155323237750821134222468957706614119543518398074674156947888808062563631056426804360747730082491422613277824895090139359582354292444029191671400082198353707816397176366661187165593085218080504162425123274828961407754776532512886098234462566119886252561308750338308176717941272307985834437432679362773184614860424625134162634151056857350087037379595672670096317335140869311453277585688219866552307824521414863602604051878862091375165133768919014854832948468404065299992284102044556986830894670146148218031929666359099625314868436095462752653270808959655376734312819514256607201677181104921906689131831658221387586976998752086362862024555258009309645157987652014454529544160510892501980333031853170145021244086969285317112870420340093949588474737057803908361161689150800413717818703317822437231338309652775977151944120708598577010178229795540036433472497242566700476946469712679858566547502510816243307519386603614732308038204497749121176777109169750791341252428763546963391939327103003238915013829320577984729446364358139698437798713731427731109116637871505950975518200354082646516683788013919311888912084510614716306579425700003466380330769311330454489267886364469541957866855462352632961385453485077131651172034160097552125494767945652236312946781264970769408388334868865916553009573684311016055120856038882068388973828650282361070940591709712447236695069394443257119504469032026042794218413161362838960024994310167095453335319694378537632504674100586574644845904041460865649162899806060842398314351756275636299134890704505304891516246468449099708826447518223933930290114343327194599943789096341306729902626255268554799474238561119933150586904802909125242881941893360784331546440786290220077344760549186159568588244847789243260268557343587487549277904121322782708422772718083220712198641145610366956573624395264483968856531116565946372930717198289205130184806942683527113144014297686478288154952035573577934151106596411589915030664802058848222238116805938317209660834707540120123057607568097090630278900696486616861150600005959933165394930561448254903313709118498129172717455469584998713875101175199839494454104470561113037953876749112643959794016139352066165858979224559440212745422166125813384667083714831411224744284029622083468219749343737265098235027828064948433896065631265629212237164580282708496902882811145216924210804096114065952882829998732673151184156928859338057151141084053891230789607947642919521768407766759474452789817222367482776772941508220515079903826602433622088992855665261565124014890803660054577379688746451042563205142209908145946212959096177836686163311172925373878077852016814063138900788884442734421657490913995531993980353245555248891023455270766223607321254969713490952176792842227439349135964317864802907298155673750784998075601658611802796714995720659808240403895230298205256112049197898070832152335248911984963116795044200361145888448997857708906972356169889214197672754664968918880485568469944207303909052210133221078913183927099678748408930337334812543064921385056160813822303932174448942822574672779754008410947372909049148328711542015413011296903480152541052473870597279898865070603252939426409760699107570825299563409950608253806805701904940421903777767961239053697130627974782606412377968221920284629238734879748240540839829389926217985513483970101761273486479979728265105700806574847527633800968496373009692005500476735268373308705270997781360127127875620329254825639848245357558877369288403449551991674458698528249280032252134007807013095869279019961733442550031939948868230541659949132528870713180920857623779752634948955560535359366972604072411265083883104831030418518183614762058165610747504277737051463105850073963410918833409101769398963317483177411636238659622255518848818063872964365718294677326454937877113573309761036176443352862069988536534804310654204052181584603122808257719998360488345162064937890512156372588833850146228299915437211515275222715038709077771980647493913683907585657445504038386911069876485987310290120398873168613346265455348398820117649972387124382346557192812037817294307749838100428971943219676980041003550632257121887959646780485090296681673755023830885867388305266995576856992640911491242407279541078849301597595316455249402091205311524961292079749822819084247738570259575906792112324310113119677033980402272102619762456746378352793266256591863868334646187620283174714736225585965588900562237967952790091586304395791974391649480255083488626394365345190006254832610338294809638969260886923711439725767333633838572356206562434645548718270911180662597690994237749677794347604415617737185921319373558364901558340927134739582001629620258493735190548594408020120586544157909033836293137447195869428634021730346022994659807533202308472266184562106967381307688265317186615138694801545173863265273418335171924070760602705571348861471416789326628340307732027878406642860891262215557633087605490496776708200744540722210406994660377479798250202362244047904498152928439705108763999353439139826984587810011984124237471469221243277534420129595422439641897911898241835342348077803696828258352944142283756308391687145868088309079109456689266249064866373942831752392243438102754635345385006308154599491526103531484664851308727843691140888206673319356912051700284801296618517781378208565005361971291375808482472780486311917730449476872815018465231154464018749575202408128688314852409370889494089732537983145902147020245850688929048573000662815739603810509116875024713727587501818347246433453447911950480229771850288132563736961653896132247347267592688704031497299904022432098523905879248639538689801721901958143100917715609867905092583731170639296525285091578650328884451245251805575326464308258733856946645086397855962475022736222651734086208226251940175328923925977156103311628220686369382157358342428341833010442015313279394093293864462333771798126648375474984809771360429836990177254611983359436833254482622543792789612400307314968160369641169434692942371913532009065723971549317679228820703116356137049616696945944980645612338772355545117633136707322130691584626116489855096367012805359406610366521621115499659238263030096259738493235756804216355230848165050177972448108658250803175020140557673200037484507665207007099243850126628959410501806687784873140673774515877389343771915511081474561662872402341880318138347078404783465377105609186795347118357631777086014034679685330981521913781476915037259419253051515996347417997250966909060223782018931435557216026552194580302827241910667494173231926468466691163295008035635329479238196110866469752356131137293034300740433526757036461161540520974824828262090456789129927670816914797746874245192808562678202667172403215830100803611872250627733608433389123774071681259656020245985669487396892592484528016082021259954033862893569587020493277258877842695595816535668249251837438913454809131010019332082416754842518187577204179196404946868318310730520843588081309560797548248804169069162168902448149142978976756826141723112888466657657664583614614009187211833785136268303517385640052247624382874709042332335149861033603982227460967126477802876876341280310823504816747375328438392711553961545018130591265980418861655179889839127793767613153995157752020263852907994389330540870681184548353529600424972564730193182907266137675557975818870267179541256238551027869331658886955172142285667315907309921444015786725235852130013717575966484778727676085841605520669006662460679166917224076646695500690566783009076458876590388125397728233399773044762508854629145881639895437850582230087831663552971749197445291694094299420096659525537003033022529333725422248729760352720049478287115694950424468403751459447331682382743789205549926383306161997706783412705646307973419913905562089442282640550429033751997873158421551054121350899615661641854977004868563176724218159670122739422504234577894231214493845026772602643836387713081851612024327417161902923725190884969842753287143494862019740167206785766105719155883352877556426930348059487372780600487636029490580085895387733190723807561339252181580211773208079031715093809331947892897918073893143424678373290979404997894015278762123004225274774726555640500646023333884094063479306566985110421778615147613217114048884271458831203140522181358923841765518661560936003588025962981351587148379005993156132549825744466313549451878975293983772456365995297500666020834534800457436217519429842039746994364746786032543833794567206075062017834074979382379393280806854566018802313490509662035303115573805090037328731418401104634025230381920195277028467970554403167394720140907270989924450212896509859081846322505262880313620376279141749614198649465448788989435455056600618202040589800260800077759609529914256611746138120303487492825762202785278757402810624498353812865474578678555261346220559367925121733769350209172919846417493262026344392256692708182655636164397701185300650050955896854377593550875862142910405510685805369247442251097772796812325691930627586009635812767487413248172472389847615945020495821013811067827222408515219548351534461878287238281843008310674548834113824934050286995860864910221381032790124737584790508049773439838352075948521652536894148480445792473757899413131844469939429372694398549482470122606732340399409018169491184357486320691063354946107984066248739228710658479711767094448460391596129827059117820142902552253472537211371847530903955771462911836634431097885255244640398185853784971052529382019409860989278748938516817300030021226346367285549448117934969031280935015101568032815313348515855116861612210314504154215851827721594566610577885687109467057757450193181156865734989014862690425451753212525492431269403504163145782767495816884547162878828434014549262283684807849550109526218460564397953036951577214353322215152009700576880604949713709085678637914615584553127768863812520825809497415613470538760596997446239209452191641374536442417416441613912862273470156251711399997605496553187767173299299306023576024233662041869699843415044001335986725983074443303529140163388856197610242278413677243124843786583021208687749515525250551129726187164412149297404231476500326267475971682556907034960594182647660439501150051485407890207202038084290740474597366122322551036529960305931015076242573027371689616833492426528275870990410260176420118146184378502003634694150454774302934962855039429396729885041962212043817446358969805633277815628166768102738287895342696271136900309757397083088387244558636176072423952930611370303684454108521015543631122154009538802953939074605872363767198443044032847697779825397290436884492898123380503218161772403542022827726746052438118378282090604703730344109605865071273254851079029070442869934084132195676277566482852268991806671930004230380598844792347550656214256428438564289966590198148912927938928104337925358790148281876451301231659709900803995951267571292327309708350566703034693762038573249981109545570038262142221612389403230797004685491620978942310425356990397112099538347608498049258182880151287471724826987642931569587423327653940028795240930792828985031718344793976851628923945704011714037513399573330837577991877461383661215742727440185886486927493528686474825991800617241182554989734795520248944863816888874138112514025676568567031134170982912208083564424850553568300138149753299140118920542251870891262323927311835925211019554063404080553322260975405232689370922360098780723711646404233302765837089010133054686575911751203476612823935667528615182752007741558551894163567982082910664322610680663607609076923055017574739965015375312510698386912633540185915880674468201257997652571856464470660118169805250086082598410677241974082201670587571393014015105688509755697117924731709505187538670335898124070476276941878158525157559283417041274636578237154945114579993569034265583416850202160740887315264221900678294140991518082225015188755487009827349122477736093329652743192103719534996804424003618310034226736566493552003851643008499221759450931851752148181792437557612854532820804320730185795037446980414161232217575149204468524201221100700793716528740392967392944343112344331388293415704279364591437411317167825037203803198451762904600612259154965032464067369130880320126924987701806398064322022125086606707844619093881262873766524570822290743933877540048444694969349193179593045116332196212030594811935655787376970853612387483547133447681922030587834372857118314061574429713676529786866519862006931219126381800320659812940797414921970698602206587941418109997107161813607145636026851511515780954939098051194233845741570095307588705878750304180167675020474868770062912629022564257657019920442441704376217453219030118579991436666582703865868363030064216862451723989712729088770298156967820006631460240923376562124276204455244654429494533482464070813762585069758851345612629892956655318464738518356797919012832607224690638563655840371902855644176666952615208426419972084879266830392199402618438548397505663681102989892926963023773688988823875624992007083250976152849690608777577268144650795105622596126606709284060476835971258555175052254996431481391617541367297525925605928506852126910799278858372696072699693594460186512480847263331350403591558754275721163580076001597521040490739266327936686853957465748191140222232416186313078200942157848114177571091074865042981727828570188326906651161515815852219508536134366404755070472191960718261171883507668599339152152945391713081703586487108686203037937920381844375978146916899530564172448833856821723899902187747023900664149182856884149663355368554968951308156226672489764781746249000567120319328777452076219829045715535274304406921934283895569594785159939281674206716741160622058048325183608871798667654853984838288162863705793509487612172259676220386155649485145805827643066133539798878926357798442541601367208645865173022456808482677042643096508895191521061919864417937364013838779511003519826400230923172992462165268363244616879190413764548639033962182378088810135022606236559283697242373241259561789908856632783570341791391570951524816044496601569609622688541133318121486341220368041823200974249368027021435684812986090091314499132668364218539494429922681141424491779110962325093406346231011017490796644318885670103824710848386207252326818854112181877317986692525502410329390669349834794015700168642726687216892032346036757012606418039820933334226996695330923182031499392508187485741698627998069832319422996013977404468142022961531424033308224005022526637331967485362791104347609925947449204944305558924744273139516006871494352482342167450299028144926505690180851543424191588907948758815918697950966340236061288349993237809391528179033696060731894432387065485108961505560717312643743591835311827578514899086018931036223418741614376219994888861485886130527777815424884541592610357270509665791943646774889962108614336360466875765363866282033098920142304855819484413140157495389622502112025303919807856917407102290429531669968038918703210067557526350966412924876182715921112439250516465678472640045502669335172581490406288004049371798396960376160124419380425634323146684783089731530763840214819699511784753745500959740742647980925631383526630693528819332909954510891344994759145767052445080935844158685905126588832435151689582897174803836853239927423676304657926679317545479707400338515597149358466140278617592802689971370837498571969456804507320438074422811802579348595884318335259157553118655028752983371692262731471279751881928477898966369584419040174480365512606992479814835722223328997932428915493383469321360131098120998991274717165049282386977264278665067953535620638019367912349662980157294219000733196516465335302988497401748299865304367290953424754383858292311363845333694971163677027340709321191810623423419176786409348305004338550742422995128108914219992376223131586354223389132945957933024374045966438365574865981067886139969517535418205121752783605178240450138600232505779538389039792754095625880252349083517884306948285225463124532424935033218530640825175188375244102577852391198743113957172030573993800277903061590548123451262253124282305460721400939245510793365099473586443000024425255088530831814531047468435364415688095224229514220184246830544537108315375885149603506875605057492576601638292494602315386712864508650244596587190711137658666900108222175961687287430199325285088412665240871771386617454901007120237460238525228829735168694874785505657604521861944559721794507245560819158868592952818781516158939629962088431142094068094527708865832253055621640914281402945486290486344791083193255839021229394855017876011359223211336832078312787121002639459642812344211621268051226374175718181158276107658302389138546358067349977134662253703542839206975995177854229301001778055554883895445009470542220520361448059662626424636671223197732975355712689840423363328822114659870014118998991086582632449755721308201512962215981748386210069774444279264103184791449242002963771131265971004439737337629640645448862885659703540687877627182985243420283383991069446455011661106658323171466342588620561216172722385554624042182148663221560029646909319925988293643599628159619853498159691752372184922843517684878570297599548028194521393834816359470495149590662681772855751439628402012276430878971937551960173365199111999085921252255551312708409660522422414222515666562685197085350204469704065229611351468737707448315001830962047516744823762380423762802337256246323831470969552502064269024685933410175340107509237047769962219791174347184179161136878736178081069377009264054510663466805275778259637325163575591633775364796033900623810424950118178662124796874626453341696632001247232539936395509453034408187891358343905462517610909638864496499231413954407283485712440847705851768366839922011562150119386493455810811718556772139825096504109201430891901470597226335053308176162363811971328635647787974402145438397788997625931011017256845513790162270188251651600877474361738724000546169382980736369992873822816446662942903445782943188406077336291694531105365290480660907039784291276063162740627266425732668883726111150439760809270359887118526500669137940641887816459549194148755113345364001900333753552215360439772745058021582464088216852299437799363709030890884936322792418973770827119700593463322261703359143333993312577890215555211734899077399375511734536393091965313815028641715116719092306748060234537830840038008316127446954796471643926144214176431914374115026649805278872022081175601000664028653927971378908530264005093091421876560623643505723800071010472676524472114237966151407290865076961877436537421563429744399573677388379557237749253894219299986590385673913844851296340570059912960961546971743932350206057383679944526268892852146244980526805318975575929792893745953337218706584338879426170920186038575654381282378940512980518484521170974764848804892762144012596960781638742961772884998989720369886230614525330855564254979569546672069210880565269005485373653857806283370493095862912347428049500831905826265048505931078530631924063818446760691940605139689338193993257948492106097294721098873605449574659312922005002114560893807539709738852049997598542021495552687103104875840003372231240300058491199424608049361189596058591436174081927007046390477670707426046312561833653419489435039088966821730114834976795164171499774480127983290684031303675548580358281648637309277605920388031397998746653169994480029707492301122213910596950377020049872757328801264808358435432790712459924547005313156235065354342085600832915622418692641868952940205081047333263241423937666175420043648820905155235477370436227335919745269537605523844069060629223264533594510267144612757140033601779216748459219532019183151979730994647645355746876611941783052221614975123475792770680708231452437157799862804638093240963286725733864810652748830371886756321460555904226977726434670746140046134692494317404490781701566159995641785601226745099392835206596136729242214383486683255158542232600324580298328652736286713403759197887452609338485945200692767579162116062788022919566042549154124254744587191785025115709636039508498517979328386679369605198258254953275128266693708652240935965942613283383457039874561460486285777448340479569545563350329032521919295072094033452624461278125767229725344947607266901361004353774565790512357782235494078998466258607399053590713423739040090302864278685521393939211119131043439852327018918521313263309785656125913998431479087232460727295430918665354023207201428307448601287395319523873017283338473723934580977496378868145554531187985648327131739616386037819740812536589533235774711816227273757326918365180318381496844258426935816475846366089503430639143739496369733154874241784014653027652968417808724143147228625596850040420234229158952404116477124214934922177650539570378863270852674977300725814062212623471876501982813673480481580580353121666489159834444532639270885880535424137913853056078212313875663405354401562193692665050933055336179230717801431129446015448494796715795580534361253817590894090658137857333769079814056034377634042220253147216090293795864330846249757019533001658408460414616906061434215651905867154609914891509723552666482511585880309515773418834587409655143642688662858676803206601703568855119830565461665694540216189743007555977019505681541786199976850058544870988999642768983179063696633857925913080133564406557973239024806101059281809271872075453264873059187164328199592311502554940688018346877341432260649690732127277083751223434645478635008623948843919982338192050957709837751286164172207445712242720719742936805080694727794025302932539655607885764281370728095423430105667163949455830664946375039446955830232226107432130353602746763594048970257058653657727886810472719931203178450992079078478853294244539012306792394874464552512091199194876410084569897012388397851899748010325896731779965301563378035879448635216268779459161345201372005142110353088940816288967055311636230487962133682207245429612195718324389681273285562004586899442635737372620677611669143855961229360026048273174770569462471241360053456526900291981647260056981955550599500199405345134298913178202155427423253438480756401115042102246925387751112732235835580327196566182229245842788749466872345824832913125955854616284832266161618804383287294832820450561927632578137402529667851444399360013253538874491903840178841783563958818337231642028121731872549498685276140249006287203336154567340473143520441927588632999242372804653973319404829416331318420202924720516523864148277407816236598485901137744407362012928129038804856106327974526007480030871336885438405452901711867584054587125751077896122119412395496162685782551118158114688056447063299616733488178825783496784674467986855397051689819260245378054392337122478868717864897603499156831722377022576573141663092273676804545638931396530510932203304562427251945888243181481197848181833596323300236446751513071769357799685059832438707965853715197365486073882060499867761518859384463211402350861929952727081130190694038724733467035901352811355632535289063788693255324913115529246262825230339832010910171337795498463170108459335613180038260452908644990121730575301567805034691923693722156929925169048838972556860812031151894771415340622574076754871940149366356993148496427563156866053718997871467766473066884254518868574667915125508848766804997604435334316506382464747241423478201822955849952247079895134120927234537338896464772339423985950385586706501948365907014334188724993364698354542790013462494290184050013741166801813860911129664051022732266200260465240074043987166468096790866296581169345291822461953056468981889671198298054453473338127553548028244479830079334241340540906967229417685204091255924291613786414304614106485021617890150124781870325823881626755098328307090790604960949259597243409389703565557257942942350753757830291678254102975192238167736964945022246723395506552366732884030745361874383077264482896496496516192865670259753214862837972110641096301898826665098123588831048503317463911136706254937654030765772256766990173613592419854484451265577992277052288905862514378102752922399581024560016450215932297381569189376003593838704147433270279105080763701593316964096097391221070313556637963439157274403999593010781914822520868887618858785991141369443048376044344465117691837448640771202212700869695646247451476971002036084444330309801031117609588726295903245152403430752287267274719152112616901065819521110597936639328366215258252418090142708614697461574877154440069169631348941526680725934598845951008552049067719666703958399588624363658665100528795526413094557336079717600887184893850564282978747162207675365991942600790468214208858862765697983057045445309589183708441669762661776684865813766580421762238717000625122718429682914736159438671383215741589795277392527170191475659825472747663422967845894681782847574713871452158824738775276083948153421818723249360100883785152913370075572917456461632494179196488120629338403192170055003066772823626769063066959812231848026745877386628014608421491839272000437259024789203535732937975746785402058571372666460451746043586259700598188240694271427475716265131238609204141263198074562208860363583914878937743879081249848052633326263582219629648430473322412907205185944013458768354096485640524272649990660826066327325242423818301581514179827391388176442425688133439998654602021392691579124824575694734431022417416374708683246643042018394834679792243637416955623817142471591251440763039508536600090211156162933127035977739193663298769294804816866207284457240516089997777896596112145025071127998943886385154493648552132582247367253724139207449118018141629190840337910321421586962492757029887459237800797713677644993331164993698462929944044171880444965711958799780478863371562009950270119235167872031026243740830337338086764158259492610081735261755057874574312977787787857107522747591461764545226306615881729496387519432421753983660434113427473621676505573003521056146437713824530716919619091386189193609547437638349896032385388178202307059553300790773543171774012030593749638040930408408121463562314452288648775629894182141619249427649798421472875761795334318885792745385626080488608875298405152135789910561600765443717446318451509381044250996487220238524804886016211840847035405700753926806574297314139994211880325045230064671343610626684601310100149177852949259642816333865049502381028828300762758968431086696694738651262391268623266853114799587230681533108034436681988226182634278759254665282954065229630434953647621935254737548127547524509222427651410159869225793544630730345038599407390881848361355407203723057047868564179556596733913261820702743612835517939465516401531135185574930980296701678283757128252823185665756924778520946965652677161528474605110250317781446820365682145977500003744637993761685858018848187129327910676752331709314316103537712605862834706504925928104373666560882321329808882236800978638506039016990671024495923624571873701654027009732212575841978951237291391202174649156619158993142943373993717147199611171977517020465058096781034668375363224275598938142121433486339209821610114667464824876849002124609880399345616652356826538470587906455792499690898263060314447142927455840577583793620079293767848424562389544307107161202080215367683927123560685477607044966839670412517985561112270658388392760379225839056573623835417837472735334897335461345290684894594703792575948671029129354192436902279559744080977688196102873086397320725774262735746917235742682328627290352521697713127840725776173975042306939415230947149270225314198663358630192863171089444385224984387189952187068974034595357921350082535159952604985783765464368957127482115466139311446640228999256207066821802610284884740383000399743158480208149016343430389582826074422303209451364618319073681393867008293630846852624879256275799518663302574025917214243841631353822634559570170663764441433604390178710739045998760448681880043664596231348592639478937542415783222214102097024945124652984953470892237943672468825941106259770769993618329599831111511780390663318703678211115179676287416874668122891912487783276125174048040869107819774692691423479645464780519706221096509816662439728575502812842719205618616969347896374195006260256163754036150410031972821010308917791138725621412698421952760471069897047919619570677543321034698791669531459293543232291901985862132664924003858749761830191359629750976293869434280734731590437241190382315073486301099423914973451424501976191677384424730057960208569628792844637655579240699216073145207591858271448578170397945218781251016273295799631292873121798122675630465838337486362400615009971967857222668736071104510384634581830097215764751431575238438249172530415369182421289822412722785707449301883332245182420368524847240028578258548225791854288565650816540974611971503472309701785673292804380174421151661064655231445225997052639611951717749029452415063842265309069859519488272681521667726763862389275655367234477228652130148287700234694201534004236792466119640512156257661734109703672911743079759558796620792389503553863862640910577411618765790768494598617849551733829483857826082319972533758447873534918576528774537599671933552071563074051553691457916687627361988073324051488971912501822439682499912011862603967874922248783530404901908942458293176848527311498965389332611084404879863036257309457142736991567166432800236573552941242789438683384316340481982661344364954965606875757795905972973478869809575730868954894871684314524945537946498867211309489821412973926853547820074765438291930397558430198943671564096605652924982111515390670132628844798881385725250698342355748161708719444489364137041235875337908470679218070454913132141559563156976060983907246807658188352442058482909445436562092705784021379577004476843672804131810881240300513654620605598475282365078057853697443316597416581763568454660842626258859220035809932850440780498398664484109465141934612230541179437477906581893196628927289726334846067045579938931853324116639455268309212193588384363716512517844300059298901369221048953758242238184565961566992804982810357503050714516865202137604567384894860067524084709358309705907202613125551891775163305694080576594525895434151363512687575847152514986623119958451400182841178954555171498289903311697093399856191121302591952317435120347660653460110565809072227386840243343473897082632125329173564369765914098583533097155558585567631677758123167988497122956526014198203932208083015129198166320591553219211347727307649362076899682188644262461171379955783197427402690002062755462855703617281192490588852646750769123697948656995883259515644977240530495261833581766880455750731239831481855847411349095436068656888680213697388720335775997762502741357575910411910715085244259488382688393657831316477681382385180776433121680401213429074512827863383361730110051682125243329639648425385136335065574288023331119012106540676679361508273943271084098122834769642157852325443377546660150414426625569039475569391737717796283084708269155893907967571920116122574004500291904290851507915479530109978059685846152660489301738679203090290419338945630134332253188924945634983173751177167069363592694976783496277408634877479977533764300394229872435988161075353429795734433759813755585129125346197016334527735334534907553646099138397246777848974513533563033567673005455403525259370619828492572833286338420114863724658950166536486911190727387834466332521917295076653040350253361435484960695453393791224498531806275089545460941244647143452027959013531589202663934587713111025779328724940006496191290053445340794570379643236724639509788062986164991591368722988073843070385720065069975492210182465390099039649442076098899924203200308971145687338112373033905770521710645365019534109760777486554225046634780573839215729128936855572953319042162680014810888026801227806583975285765641276596100377885410971822390268981827445917374557112932367720352127578565919032039562276305355101947648980023380857078820366228193947881750603329836320365252106151839079863490653352580786107764257327907654030698427098569232524563059189101008078467525675178559652221797483809354525992572281550430271183507542498045711686913451520970667800717697793529475776332663288899418402238091043651052125135294867906119870830018464593154700549186990972254523437603838975340371262396215368575332358070362705531166095924385288058335565840694019484059835584447290043176190238043791039345358795636617670323201825782801164250423100920566513680009750494441117808563387267543862575787746896404298081874440122389527803271717230146495426967575695337471651304437207999839189377587702507398788662301319883458290842061110080337257760864730112654013337534687758569819154993319270886504723319583906691483782865172857984183107558235062376071241658593483099898977027342463771736309749148822493835858130613153499486057569449648188500267346246707140742268435540144415486335689371411029794285190979500800069686271533320899092487862548197377128595137778287603212618073141572784504417053177958243339924487090801342406253062530290296742176763094917009472396716708369627586377835447105777856117128092153543132384754082916255369282373126600416596283571087011723344989987947718245898450139857143407675193169698037083526092266836989141693210855826660582458285484580898786720747371084084645090760216968240469178707251575623842348955469011410697449391265864419969614468835827101771804451043644368339093758734076411985771898520799862236146741101900973498495664705921844078114363767601856073468981502003121121388255470901517929022855258481829085512289056938345834203873446227092188301592313258310362959227595788928976245665728125637580825975337441217485897508917416314871709841566205588498778571815192490971943857404419631887028888601298479817688677572951713119661697881200788069487830395991037341621658584935253319513732002573239702987923008258773704331610787693324455252375600761304952127677460985808234138818969824194476456060889992780057636035557188675447901330544058354634798178522320366550233238622576214892634711323004664994392890410242852227531870193737655832046381594528633738584723972479939970331636212153022473264208531313921182004048498199246292434074390360827800168211729342776467336343400374492875820882396009154794070905250456131138195616194523748201642017805677103369993547567711437986560110403446276855703061194628168999904628488527915783421070134192020857826997097092938655707577847258884650708801456185908300946948109751233962642383987528360827211838470507747590109024242649789826859535344738545317689431963875079939650939757138972621089289437807497894929644610716644711518525168427937405738791488189650811679667159051522999045734623375545911990491413643170581156085431219173950396259587856135345336080179475900439823569882027964331261776055028946187209054383596150648353529323910335155459473781608598802207144809462055943916257157197554644322773040946944170907951312965474384939815296409612945877223868915056288523863175707924349604155339109925236174374154275409336811505926344371689167804656499920650924577730471147918771027712130081100733187081940381030559303888374684249138332827618944141372650324832787596133247598087400492019555747615712266821027517602943186839187350940143455889435021217247018363775220379208210965346561832299471946337648757872651758555725970047864646526580414041823744775779782744769171683704979084486474967909425726303427962990205431731762477085370582805487159150428458300573113291043832207017583027872990742861132484292847567034313437746109809165789937288257573612408938781356585910048877751638029446005357611528009142621837615923636101177578141833933474782020093516873912773099248942180708570122418189893197824103990016009266313230237679707720747412717053594008196521432220308282763542000436216582110650433319366455412850665959053692218896810062040269631091834048532723754416241294165629305452343500514006789249526735505908594064079291973574693503660330385584134444954112637927797660019670540696510497341193608956041558308438560670677014175736170594273501690722857408590918734253544550525723268636299887360916266551864327726798684971592253976562346518368989040563293763596614254204656593423929876473404836394710533014420236723997124141080159334420459101965034024357557245364192086902991444392867415317249671320685369407053198364017880955811505765455033958042995083357033211270274079618849563269412301950057807685869392156812239237489309979680675727840946465089328291156394793814071153905663531593822100244234562641741846225029729860575746824965477592964482700656938881769799599408531604330524281784512166159575474166074375047497220179367336066746730004154134598681593996471629277464759765037188322126903723727977676847637411094712680054156337558765439817359500521853132948791519098827430827274050619843343519934146030681527868648942883934928479266536323394921969173749196314290872308606290922795052515287324485049947400594556276945470067677822321064966178302561998723021052656105765832750301189734850562112581250354309807975332945296847918437730487455197603155323895778851760002953114604157104105865824604853673986699780540827513860408182116961398219957395972145166432626119688516094827252324839665340669698696508213811839893379062440078712476879392250370496417197847537207974765656191627275566414196411960348344035278967901546984424414662065809692172486888649321498502039976104124591566471126855266057247580758452633186251197502892901183433579405880831954569669484834373881458680475846701389738382594650968655881736384178449310674648286830717681293619833375868119599144528261736496521121207642970925003791869694253781032561069796008156064583327120515806255539069508613176039641611038563701784146297677357137443483285846606959393802491411707387594429282842169910700019284419013952641903155952459780646707446622192749210260927583192127997939368733115688670529815439398017904704873256971803847149046120087980285151215954515827435189093572887135947215973982595719749995409620383657886077578113152055554882016324687795690036041303321970306632811222987823274270021935267511093343042166655047073784719908414666720692268783601052722869158825410596809288672457323995756183050653997137247500711362580589643447341742854856357973600878357455344667099167578680587477707871265529810189307517533688844723273231858881331667258538021389303649024703476862470833741450529257707289321938300843079875683190563566465406989636623359487700746669646641174373754718181729946121011797028684951211506247436556549936784662111819773870887504673217478675382668391583280258341959316805202394446718018428908316552231137770102061778806941756500866527107526962011875049822698281835184181408390727207078049015990720263826584375761258259604618186575308277344261086225623703840572617288921915637669433232258786163746510920646684495972762998967861850758869248803979083622955906151797466205163242600062565358475896484641510192452301603913699999368930041588472759313464439828638143384038862445467081242587657737978747094030048433542169703467443539856526501644269137887794910661895166447183850075785185574342027497395734104047299198704010901965601517262986585975149778783147387136365375236296889914063863470173888700827866501462930694579928003650640897999922204073952893149328608308920161312921673179577774859154864271870186291571773837286107493439904932383463818126567496285893397477565616381850551167772300759336221963966269889820490142191488606714769633770118975506230809187326680358417038520884631405841530010252974741532186150245810297748763070306063324617751621245849811121952082859726321154400667817360643540662560735981122052550524295610652419253555086571018776779552983058798915728843036878047077650390891143799874460439541449972492467139783605085698422959919509945090055842450292571482385516117251724266720461428395083002322979744049055448308233139501120295181400775325183696547033041587755946622984669764041224296620768907449656873695538364073368430424251862000909597051782677123934961113949726712409108526146825200903281861268367857898855488198798944080120658369584769263664482649680660496454918872436787184495280601548140800628285586403059919319218776859424295183420227264567905039580717540288996801463418487648463347709960278783690746380147252816612092780604453884843013036914940055464461032854635847063044946782242103481478265170990981739599607325988124246391606385238948292069095810062938727882603911374334921037328000394757063749904120760677229845741031973091608975691272716036402115543203533583519408101073685649577278078733775570338421895389949684742872014464446275730670560705358428533386435255053820586664808966353419418381762330123616527136458757509127205882985051536633379877634310029664194618591184541416045322759314310364139219597030325483120062668824044953848956859434455872319562752021927666031683456601783580775747598826832704523909451637675888510869669697501326766309211849573232853277459140628258641597434185442370349172864855823640924866446154423745449265626473993266557717007966348025995976139445038537771683661935760312396949043845921891336005025853997816613609146714821484714960426835551131714974525541726929995659388626348795175892561800534907845157490761642930532413341340499308961446629877731479307929425273932842744417054699493478538216779667438882086842546002473044290793068835113223583864725022970491059591612556217502103125544843335586702703957276287099917399785721788917678122149589274801121783595321909821370519182244598337696564325301795829415972733456739587728554093703251491188866629185584298694808210075961768608611757769720896466276326156682472221381222944960363314174342636185665872586380425858683872308864565438764853209483750445752598508748054344063941681765316963961486299643576846692444296435701077462592686022981836437088520208761096206780959836579358987666208568884628992046016546526281748679795071167142530756953044861047077532594357459905248426086065381377775795668023583782384944683026311485414514487791902732099394836102328567424828548854681630431874664562295330623121795865468962752641896128270675327436140775455883457711219311573174202886872372470897936001002605917942869251868190628051929763539092938038871465020958768007936997912113394397896300328635192304987095461043244384077364322796625721025256050234172953819846270505623110495859807362479494589882970550275393171313536332359904150736802130844956394306233571223259338983448330266307095663175621431373617396975065359404540472219173271960990239203464944325679673503142366662312757215013424707891862569422449462265597437667497246506223488599890129438487945407277234468141420967730933117290956589758890982201185310841217392140251136824373119283573911302061860038171928925427650434975734415194623016978875906630215958917358870506164523313451140044768719162539773273083878861214568364937095781601157805550843376663661368305603561177239289245965836732932661780100659841381532270370334989485031981928348299277694225118398757397714354198216237358006315151957834265558607098434918711407640475808924491178623033944997534359257504363161324815995520543602144837161713041324159629162709200770437234584302137880418159429966891732543542327663453115173492758484441877730106207136912155856698771851843762623670100469535073128128560736027975709326926606375126671732102279603327302160859275865408630307737815818372341144422451662312024081321668117878520346810742216891134694864503430983412079758813853595412228900888299916951789890576763797836054564103717974871020763135121936565428336197828568294333537391569383807598949703711582760169893888386742774406379241058331639663173529475768084792869950227920767056843493694535975068598916579734509693492881578145499944125955578332276991334416795804143674098052664788586752182481289951377440564095308416733319241854498349460377620818417846261199122892189861397115089618539538882630579935712710824315990555701904979000926582895273943485278993864824468412080007433782661749602581985427802017085903550582491667778108327140548704399802654802082821167105214418764524117625391929445282152472424604347742132601190671749988217297875128472790856471684408453915026858788917640010372916578459116405461606955146174995709752856347812670489141853773404270451864510953418541777934128054183228682802045905260953021435252080640878171260142883481123148743445078684666090904749597701308737477182040137287879632742717081711751778055561734393305546964335477701802452882683073837380094009546642691786681464156352040389119892097101848880388324311288177413781633231187076089209068330362337226593319907789055925173064668321193544566198692328287555721855244214471905119281617836625745018099505760029111416643660306534045302669734905272407853077256394437855783825723091271696196282630113773048361267956068661747773505245137223154980330681870461620078502839498991321943279273731797577360178474900481376390117128505155714113299200204385004772788867554674871126829477076991573500680394723895298892496985460338410411745669864050204266471964628830063692206735673768089238221350718985926533022875300331676339851246559026345152047736813464181275579510781833485891741653712676010400902523978359793429628177320903152802475712516003206420786346234338764140905440076075748586062149015876464320481492666196716630187077003573078161303287017610448821551067230670628502968183079452359785681246631737193335643778872905965245092172137647304416554918931926673562273850707165773534205616447230829390659584795510782971310499168257278944774056745158546989058924662618558696248097555805815701896365181446872752423974978449822504762582311474016109046231946809944698657011327830254639236153054489663866969934305701288436276362975097608478724726604116292093986487076347333927396906644431609668210064390489451904973873602834967500597802864768420913105779373060527356005116107475540145689519068078697451199995985786819681028585710020121460490055293619942166407888253011109933997909150860967239373477861385822680366284533759377420006841951525176077599309030669116567669172273163933345570329475422597389789281907407259968513291571102820991574186582213975078569686799152832138990273180412520979022956125033512190522322882077118190977643432370698504561165927602608387575457974681861565686996916216935625432082701945656738265754435071541752521137073612876775868527904220026772093290444524398977639322782119834883243811785167777566763307613779153425831553956149102067827965191577434345890543990947726431528442913876827117918917495524262188473104572852867344405454825233718000839309658045726052068177156116057601898780070720733217187998989206276729909557804862450053559676261181445620475743425171869082134637181462379446455786707957426774946498005214162095821936311957726471444048997789206387732715122723512606603690192402556694286127522561285420466133395556196038189689043689423336226631039248660249358783292053433756831197015308897557591215860379776623838404344308054531930728149173555510204406094791599118642300085389344752382116287149622892920730367581313959818579995045924982572267124747652835957733763538187483185603585077256110355469671785839887565076045053829484666843800567799046845638579487669917105417891964142082884923847755923539143359534099161121544482301957392139647742586283148101167832092829500336924134020875157010621185321787190378490311617018670780322022776948768030595317426006829053866327191633664811958316208721857534357042515274444412122865388879398033880951763340014750260031133791264147310285705011941847957180410306094715014053741696406028789633280102923874297439940495790881048406790089877115117385273805774826586839178544160874795350689880179529358615422888670263863889563746070079921611279480242712707013476560904757800031861560302850355633195300584353709543599101021925112185913218096036392771318279687267692531010545523528560100060121793953995408466701022127418695491263025959635314850428175683673257694685154318827870361751081753522281087428277062182198762504295587660553583715385558228846225180628431307465718498647527248339619496612662407327558903075408928728275612893273056569978291700882513845990278224395314391122039910955316873789479182611761397724448571266593627346870996081753981218545883625845184826588250040255432205987583475553391958174086870926385636615362930922930249891366531055365848776801992164821182821048260391517961033314531294819295571789702353534033800712364266361487506399047498456232791263130995245883140886202602647710504520744438311566692627889460189137163494646251661044408332970726312760344724905599264999646137711618139815193856737513260641452104281018370182009704812464658793526591812446127041489473746257338460763513827283061899332890357467647703462213409373000271279065180914915365831245331556898822186978665611250727590633393071143803206373801506971736703347256735025364050574617394728245785680719054193688186220855534194067180180210141313944549344242617779599882903521652112429986472927163776174225293123458487125119437508987373711655475223074534812117918587574509835864057008725426943810796397510016441643978602431547599150080998976883394218194426440271442792877444353077933054292387059285333278600712864795843638276833525061759936850114763857487725275210460654200638796161270065606331248508771214023320692207422233199987028179155999302495102351314905412944968551494444743008889072310861316611672003204063052254689883527521260161103644916137311686797803844920777381573846193746572911357218829572189663018339855952546411970360741559042704595558933191329156109863350002924106634212245677582498097070399990230398634336539198952445481628023459322366616341277540363322513910831026008991739837748576098697222460412747516661317534147194313610525932467293980098214300239505165532702798556211130842319339124933905575291143779623604340096208370684362754885894798863071738880465572192018208310589252683953071240220422414914372924213189111242428976475466363746827420272608407103721446323404998643554820516609428682147859353050437766273692261600211247175071248333576170462705282543855696324102106589606536060051147714610193501560953310015732724221383162450108347371085708293345724461222481464395289774491737301864127828838388016958006336585343062245728551607542878285269751074279271439671206204986232880931806508103408291799655120805152685421717751631187912739753093640123058822114644436280953447091845384633846343944434425937622399474022057505759379165503078840171675883324450503164504523222969725276186299736837160491040388170728027211224613509908264124905568022452414882689027636669033063395295921921435108215943743026191603449409603477077549073923432847598099057768805643409469686527080855685374054498246279884241910155450027275840472700839092691444313803348249074824340872093247679099165322070162885928755341257280312429588446097770880985219098048496459801381994722772741655024048052169001777212409197833976013180782009805443183651154157139159919260584452296049586431213253587255101829282614045849980461990153810096127296284140392006538386959668239033556090714103068909553136500435914762266095925642792319746717771150946647704242402564614092413040778850904254324511413249404221470045839979077661249038219865180507252775329601385410805030390217057591823142670650487261154622243752315071878320464903487386868662905168618593429775031177218959412966831571338479415492612533356793210828797552117934101045901421355770946687461117056436474545432510585400817403699222055997376420651551238213933653590868234160084420725776116276803637539973658945781508995852110132186117434211635330244483424121120499266370200830108130656624111960585887415214105511634660613438773230072825038840065222795293135664076175317168897265650074673164586431695094659405766558704397934450309663411429380458041896436047017351310453597643621905891884843477615296895878755004806161066127141859143267509950179434929563208677568384766847034205360498390521189322613548856390826075129410221731433254983309989313295759923014864671731197569573761524862741328410753019791426738920210320133381936642694414228858372331523572550208730460296768634744526952127363639928200592014203614659664750031817646019311820074945318648393134970487299985422996134396853070796378659955601330692030070133475895503508192893276274608686979455994260124245616384447385018460364938375827193087634227940967902015764426847855026409469137125853454137515121436756553501810910933083125282492025412904662598574928645274416727705482662837720911451839037048762842534676869164679920668309653097245847487521096962648261082346953262177991814050028669796397481074222560320163091329871284705215498917476226975782082092685270154201287191566241030342539898136836963952350069221844392398172121404559534133865470031569460307633129315083552323008154402474077690172601704758260436498447565965294534751508698118293014911898093617688899157040610522527238114822224120570834503323005232991245524984278601564274222258145120019592111738039152313815139104632531665497159308254114914458312839770716479000888511576047131407793638955901212494017351095418177473723617268070567502134123283073528007863072369512355436103102429798488269175319485804129570612854025909865746435841745669333269464938281299207488177377458277696330088305814308857247771217275880172964756796212702747253284430490891721522826743444022492751433051614024457986762213854524867327705703356978537572000061276262184647345980329694639755987934994132225238018837484578054807554531559530294147148047136677656201460859789275911095052300611887718220521636332448718592769275622777114829543207772799311860845049167906726434696982457182128965514356639681489149801007677963965784054118686491708715671707628584858818924968598470518831850356552093110913682821036010585438256349958027583142077774607041788293605716372826485992401270431688434552109706737414850419409731683220050392533752101027404851238125545914087120866507830013577125718640226414831606632366844293463821870147413903503177756997804769679250803086789458226633963001980805083566370538669633366097277391342762769272163090112044403657767741897234027647040746280668717223197426487612359078080127471582680179113027231453597821275750732767415260685977090148042349205286948137607470914271415515440523936570582554485059157032882934349031134351158116295068026204411057403670958390308265149511199672972783373771364861498846817895558924965206371309657399965492852957968252096559117388456292810205281547023538353023967473921355519179221139334525130721122410091784642612016224024598029679124326221174302174589883978928185795730006013164904333105326820996594697770457997528896709888827377977232854554375464319747138070138975047624845986395083541247056537698385357875163805944031768873350210795898902037141818426110212677840293803505532323218952871393176338004809472150198401019168118684066544960465304743532637005779838949874745824095567014873546732160747052938947707630941365409489314193706624569172105190616755469331399964716706466035356609754948890912179169761555622286349137619461300128966243528163404969804638281092616182764611444611090428336020031697382610281708523525573692321252456795486640022111459651556319724366560386597690833490367286809165481937729159563245382410737637765524476463570188520224865304533084298645817493488130465386068287900250999972650190852040679582150792403239512837979242661771684087597786389236080029497074090633276299462215056592259392751434350088688805515529693030298086293942035735772755385018534489395037870428358156320585085367118153579892333020269503279918052075107249824088276532206074224852795383301307744702608080943162283514291740791426750929711850991555533382279044618677346090385397244880767208330580617126871772818574266707202543486038912863249844440258465169345477593488585036297003692275185866160581904633381098750183414645722331172179157452608919728149893444796625222133060651421775130864150114229619297222222898894663811196396342018341277357331467461290586109278411207576798935784969142774488535393778120238948606893431179404086311451640653165514679479627304438460099499676885785539115342329920244037551707643806497235517225780415839203983734265316753922774977536766146266752990817411473834274655337236281061136768218083114355310439342457370552423173557853446388300965153320818857742298300291666326889848911740426230192484802654846565671128297676988672859073633305923095883924552010817878420184042798716268537728920991974064188539733104363877848909214581681316607881615574900031993814323478858388667757322541559263936882662871786254334231618783105727197979548297497003503743931735241798940889985789659414027864681354200455287789974915863621678578461254152524936214382610296541998050285321878325061943065422694294983052347257492750252291343523577786528393403831117081571154363992276068198641389104451094684864492035033279811083700226130235159903288290717326580279626063293894806688721116004890565155708721177003015096619481827521433532226976701515754096741040368480629816475410455971304707204351045765668750571183045667666128359781552879094422208600384580866393533095621276542112748303003446889602664879146832830168020572088214042551767243560330066138646597083749725997417520702310739130197677816650169267365298714091542416621975656783017109539831670240160792161947204253199436991867554337676111603276498117613553261286770227562822340839409692447671490032631501527781019926935435029882731903005903490361466076636225693898933988793053587125960046948258184564814308585359852401550776726025517810225124488912786688026160930489932474963079372211320546478842314462233002017911050748786320141738081389400038401488483016749003678349426725490756721265706034860396109974238851140152137778028946582042463205372617556274452489844199085251471722776607697240540494093557161863035662662518683982196502177329534167150641694854191947181872092304027428092236061116662294929537475747642282600167689565343626113681992851472343722205753294471721796224832692558995456509252411534103545605169474741105126807566912522341225786163660431585199057085438032997485741950470209219646499138971458117615586162105332300349116119523832717324884957824733287600089247950934898812425220925294102897106796023245473028731479789802471261677752873201807415907178040000659565891352153000410037331910343872974611206865865570606379255630083530835577808201858830432431165918500506766218609651614234330589600869856941209613072425272136531606230501206591435446838083491709329470383498285646490766073812714208126563068060064577026212058113153392276751557588777248060321235434489575367708918473502292270584264693002064846735268428099553358061583138226907451182096570626792002244123930469783856320245222948835008320129339411658893637949783927508891760868350502083733952389350592464494019303818968311977545580028513305382076690775080656806038344216747239617810280984959392374159646966138708634193859311844897233641824464775037633502332738926212150247871961036567184623686058152881428818647053316552935776449536679037697123773559501128436322945858475109176570737866165903722348531828526490548888896098552084246923703455217545400842696841099047133230001095612717069123190090466390075974563503816972804190036360935769904136889545272767023854948466307980881554634524874573647044016290705272608324414735170478541222049103455203720557735479255541569252235003067858521260918369694288424449246962995363606768096075133130938354158246712386091015281485016569069935278553839819430769286031624003098395807418354191150965756528360101504166105981844061672154387264220624558659355302090300253492529203435348797262420627018209534893407813561597575487982091552680112257129836973093569971523380774613641258740817651522271093944851512532598375689636168333551822028922147768443722332195836843322626261018540463555868915624442564204689421012455903781210903858309861205515504722993476136138742935391973705447878106290397153689388047060424524094538085188559174444957105061741046067924004310459040813759686968285377243922144113916341329302435179240340326057152311102659397237792400147583824660740981506851396843457258264202967668124229716852163912756378629202017507232649500522833224132401649164786098546737720642370924289177856854553339378629993276740706360522893587448542332351057653202494176328627071734583793813170328106923496157524184614899327840698811593101779317240726837564740467880833095960622822578020191147596379867949637301705348864884599117139333662570322119185870942572455490028954215600126489829430694374058154289907630998995065413014600655645562949435672585636965342804219856695309910097050658854143136878696412028464778595791595490210375228634930023419623705933182499234105130397641731901681791860261537629803375297630188309566335499640203141780635147350513949535684013339504027990115316362146480306418592062251394128300723010576176982825833961017440478956313215223359837471135145430788307952247089254715462356693616554055169590303304542277367715858960691605372317765408714421952501481148198350226422042959361913971021027982529833493548138489015237177934585775967862140858022266241113456480261693472103994750394665511856460402458865834176980915704723030928933108992539754890815290857492241110500136343739718875004687763234838677202435922586974531930221199121945195157726106826633176962112183269831142511661655323947081669422429707010675926811586656527153820076577538453202538476728808996489566752019818237595264333873073927779774370620477784213907353180613293013824853359471380300732928428849100346178270076770427628137770513987235397548578891376219260392412175178908586434083952892519959601734473714560471105221050617582081589393042454718320777215979180654255691681373220089337119869408704620705391653673385368211916274243396515890696850047291364360522295389729089884326979939088920145309424560836683776584436008778108618231634389092832126972455256218142695331222604157663416451289955771871973645190817000872985295950647753832101195140185463126536251090352571366073329080548545009955617103967885338489841684406150890845077420547842179669836136290521461382121683257534945750414817677340227169759590039605994533549716188018624681322607667866733538510479263799501878802991400615248541010482299851369164446273233356680271882216928791699944014754451044787414415092148574997486373574332131805326417603837400379907209957369748256849637302517622639826979676578798741472761061446258323446225327274242133712912524904562238530298856960096306086087073158785023919054608806052876900499744752611455609288850363928826109348484415053343834265075513095628248172972607324666200622677083540751325935756874643228028364125814370305278389413581898226387832719815426984622130994653209232067665625549968508357630523926756393546169141084844421002141079571935841331811709505737216498144065152844528814453898659109616877316077901809247583831965440870899171492860114357049029720675780164440323115145000151818310238508157658353978119842669314781968827956425602600865840025227845007636961712357880374336362814061206954783153212798080518626111110848232455222310340498105197337812297228212249454653331520328225558728352476948285166368367197726019912465871914458112115565542574586834285309952064979045199753718674625463534919365970287297113215660731987583617954159907051550218173571831464101027549871219026965574690920386992371283761322868392491460479855105595261150550983847104662330071432849789903039185873991470446031133589554020281882522983783475071505535658217084015495778219523933981502043831267076580399880023374864252060520210336696235701967106074690437014853976627134078954253346712592996786610467533497135140663484958507107378908305005164891633600670007725002972231407994306453786592500821291371768576401667380521806753677398264828451135291247308509409056506950463561080014880139603199938909681034728802858132794302887691587270675035773663157160076993521860105344678619547803468921789013663184791971808885513436655505441664687960561913257666579678915355299918261304699235416794834037972655448887356423509434281051760017403187950640673348163148315369735793165014355099423026982619195603238942246819101086084570565895888142088700526826678546094251795772041489179928661013588298964458912114451180720616814731463146318361062840734411068130149655840116861356546604486992675413333332144193757412748985152957057187724607321203018263343724404402218967044645459074819266449222711013205561436006178031794175069183851087272880848484459742443595364053459492794980699936097567318272401753983705273237933734575631484986001429267821811110156531285098181464366963644028437212609859642637579713788566593332107807936440637829612243177291946082262327018420550691248886195967387888554160287023338404277171105756315920823007298264016270831442494747577495161348886267877577677206113169904139317261402058154493438995751324265595876713616638771566023383040619805494684239138893676060224745515623253211097511845154191888025355082402259657475568546876679886440758569226190487390144760678223032131592915284816997112115456187893050420968418250966239352341779539042039057455055217315145972407019958657790696557600089144157475764614172633093101435088062212698035188167394312152748009151767599425252488766749078342056503773303675829010419303506955882851049630226877486460632116470884373202018885976387690382792890589475079925533259082198266294284832294503625989107430090056480793084040411234856852151003257445995326230056486926201391113310856068356177728987166746666455051384721232361642720575241628309155685230422119335044370768713897002754281181440816562781318496622817266127223913892358170886787128357478717184096491840228937501197292098068320166467406641649230909392679515360794512780091175159444186819259833766570393066928706364654587064518167832491873960890794117399059430601667972991331142237966630424606514746384337678226218780971581345943480680888302608593391151023962600050860835425041464877012744123582004153191894558759073416468943593361736354135313901189486091881832270595579099490625302254378667996752657102209222822316461144007679347886588473828486845303139368528869469016251453315588941760780859342570953044399597754178769749690516758856598470928388755812515443107511248124586927297926510006142237577844939597356296298880116220811919824434841780198437604859591020636705393532036326365357717864895440130937658170065662737155630658750773342181627152415647907619492157728871266103053575996309144799462440479944064690587545108168362048862288850164184832867896690892250183931481703466601082219340526945799906853914400031600394248861803639081182809067583595694505907253128044181118088760935326402632344558771278333713791894566099529200291101476326247350479548928393149843799780966325098900257714432246081687469365333682957859871898486856680657985711706786274495300170893439234165087674148113740354493018030587527079022013120653716480766721620686240843612726842388524803231454487041821480137575313678183039633764722305902533050153080730767473269476933379977128103308760570679698713153747208368700085915165084799297613282526785084030166560970229075975003332190879728456348644591444459571098202996541637628161840469989919674248594865934924087158645705006362675553174096395943480349517456012375482153407387256896929749493399017305304319927344551352133847330988331927989201464918519388352137057281548412939891578936976682527002871019942484515476930142959587105989925122603246265757000280104515092706179921330923792747125822769456074801176055080040250965158418110600938109602666743842144672749181771860042770546653243086392437300661797580397867098218941694091086629785506128573024125364538092835661419425454714161104087993202492643138194161508649681707592197477048528962176057820546003397465837373466066681886237758874719029714500472819506051324843238234028277497300980880341463760031731243813082464055268606941151484362079850813767334873746207940758136662876160370076416529126440295511737375160575810763666270920447017991606434900439171720996890171833002608568084245269150294530955261680217260114723022079349753958614547099806531482493182539413402557010957809965335625701313178080911481737134887449375776044581912363550481976706213962513751417788856132494428005274840622897082279810241364763209178886020765914662081333167453464804896824139528186302804542421774352574502986032018690986048981290689715116414892881232488163609657242076194701860305370304020370750531578424352336463328992973254586971956072415399835126619874177454944658516321552380139380983026063274602892895206133896737163212451460759400830231138767340189730598812967177248301361864152198295298113090531209813446014083832918231648517463131545655700614134775297396075027458958668211776152264482646492831781293802676185338241513448678693453441049699858583778304083881155716480212291574754653396143531481264254834128454980942079669736085724358971886448020090132057921809459827021853425680067914226492874942447324759312003379353118191018200997473556154697244468931930914584401158145922220934069265129456622604443179523885462343238476025229480177017015043982196557534083698058072361336156819434534589596811185177102468015574305379487589424038613776989431866036068634513657494438951062783310705328863859057268580938604790057250183090132260723372326524122707852683742239158957620597092048065669884850357950051003836115164855539042582379447523098156177750782552670876789010659687036870322007968932601830050901347218836954268262695753441473538108801378628466334334973818481455618817157992022517181718938580950537705930046112517086771206957378789891495465515455651216607127246388521269151582405497123426499875673478648017656332463897169439242123726031817793670457056945214842220448223726737638584203327267450149328116584714636328652639202627092522401030199986739688878929171020713299220503455346885192956903802074145434295824300992589660776534838469944389458385588533070975994877447921358721879542989837515056206702817940407613730639018822678990344059625752448810976759854516842406535299626631644319807569028801984742342353713085753217923654069592021511797308373225841881411424583886040228877634724809164527265220500655342295035824282326757558121305566121139309124306063326375607467197039069884322719390570331234032651165491825231076486083831459195941561231236899716541009283757862594092120289724566210957601425002086437858662784396553977423877465507517503310157201442968388942377871823130470109233652642341752130291815017699937393401705744087830713421620959280043133952088569843935637048174878593331770094632999244853546457468412830921556057631503857012500690834157872408316837554714817543338629551107612189506980997967517705012433187050159609898509201744364689681184393461407391334718054409254939812710187072222328330212318793084763003018534266742658186465319535809954376878538429212438238523516003033947596965573499051078390692640291623856454285096514721580626968235590359697224099322412415496858086249098691135202374788023239430900874674860465334286106764289774686630692672441688515445554814244715479579267651014993782733434544237288234723086903311919014171515057611772193529066387213081689794822815610808702366558334055391040342086575411561240575435024297477682035170504462151157586804974234824876221090684818092425437355764530037487433433868216028394476762678833467727801863619305188321281800745174735656763886397725479228876957654427299333334771183202646591401958097088452398278960777484628798109194130115143712574166606221750871240484225474418193962757922697216349415846451658467233144257318887026946732353520266548085096095123541115708687937535040316151620132216580351481465460299982411065222191405561396008113512454645261493841503845942943620263628144880742406323304772212710014555320233129579825317704032861520348972032964352821548220380434410545279786290132924845536140638373502943475574951331775746398431107341856946618281678447723059956123486754419072065699755996505709539215024962529353755076891466006257047266509825667574007114409379161585735288489390303849987429781156597859362993833388996188992119320636064888770520875816142824109854652737036906147933703093859046986834104891210437631630270370833389976373270853186691657502955856778588088403197991131554544374695243637111604006691736408704211595528701492832199180395825179182006304984312029395175785491403163176985808526404107376922304706849646596952943318159477804767713536712611158350886429647664532881832025356081637988868828484563889547286225429820114292593091274893780064624627339172909478909285532444947063196697021040022447843254598566201187777843739232710560500961301940609098151298404692579810680646852008279591807168624876621273253168054570220287400624242058234052512638551822249787047752721293438604691326831442163985632331232382438590935828942226950505254793427829365310188559793836364638824549028372818870951919119317897732364485493628459721541886622607874082618040504007523902732870940765871352531679663321527365142794139912811520437952314373484965565288704835170260975872883047016777410412635055444573645089338755476767737835412251694411031884774955803316381960255164735751977524108598839494051522763920107344332736057660747668971273708873814142113520604046110106971728788730649324435696054002444366813425579616952709514788506087280260830689022206460469408433521161860807937128133934357376707519647491662029614217204678356881420057778591797055583505983284176802903908451832290442410503053699016819637786489231002927735138384293802617008537866152537985740606757091316749675441697447082886361381655933918119367346784007104069587666603433833690250351874008297590184184397891964074245400559370713083869995212702707271262599030793610972208045780635769738051293093117892594041104412308036511696087424889272734530555044674250890059378723455115051296637131707402727377723159516019595349863201825342676937239840137175382301999325284387905446088973093098061983162102462085361744082905822847116407342994344466047542713613315147701899854098226051682612985693997914036974797268566955980589840679783753403409031355352358573936139448610576514926691500636091020564274730575793204291230255522475430734452855781111728166243269661855207841298195477349568091582792859091207168195917639367666827708984927574096543394084077110909603290565530283125116603239649883325441928454780235127974757792301488005894278084020820064687657105571323062392865645920554979490097065003725758109478134182973404731467421850753255553238218610577087815039158207958300164590183364609589016588710051443396694757455373875740475883734029156542133214567559434669749372195499019953570843113598999058629536909163658581346448980002199769301141490977492846947426603281192016427246021195646655357465092404361272606677634576559387265217907441894892459724053168056614505360819102680576750690159824326394324764186202443008557814008396643496933990714195415836348581052870402191528011406291500962714615853245622121024608475496848062071339366708515932640310141756737993360472786444633966396688868951831878732654383547564383530337180744685108390372345589159471436359111193069219133951293571525571608000482629932389449544851758971933185567291060512379916051790060356761536100262898116036176299010412949264928485736028941790549594579580124788637605016053122167120498505247162992592836644265603724090810206792275951029449759939081543328071537898551635964228612976088714255976798140252414758825338577234269900636063747124638017315328272788866721587069810399960904120212250033373502735059138197381324438526709585969334937901597191347639437952872708402703537774835551568229316531757764309408936126922289084536866296418747515721805944146246158137368125865849461471413410402582322217599125498031098732741497588886454384142380980347334640603590730656010372186970428832099417082098427780021271452882259991848701416613681864544061772334386851361082068126717965043656711381788162697875421299739368673971705665298424179820163994619066692185770842592258186305961709241008588611146834378486420933389182605812280019695124157744860129082058804768092631862016062493294821214993433806849869965710330058339463001646023795085189052782966370371385618940931800896133583315923370524587174821662508160286937324322396410043553138936153998213673123533685796851523092349092730069546541693851543532153831602347246692950334619514751393394664123438012557571083121773746870316101242668878700887477290008637455541141091022141552417845393081819661690688155402337466612924860962934781395136080421731980582378942739510473443492899821388353280043311348570022763474714895405458643243214120230021991999809543535692497929059811033525052286308147347067808113680643005678368640521754034033619085937857279109437502047970435221600173504583910039187337565928081711492872997470003601691790954621829077584657538129878042663815063205037580589674047213606110339820480536899592031937951243480552038691345190632545631920990432577045755079882392309664103137446973123377775698868263056574427369771983950088917442600831627157428698601931878172491622194947420731521048971088227180873626610855635483754157800889685301867462623067524269763748851449138004237265750921785879762639474859432404270533051914404071501876764280190674480777809347046201811550520107435064476068222425125086074553819243639954294258018397850367246669510464899602015394663565399714717629868186186082295173373089065878610329119969653978845197615983974519471731900511060579239546837969879330294228392002588042137380845160101464944899606959960900762938716517289387872132537577273010173236886165514130491386588745784913853997228263025075746398565758415110159100649173491321202714524056592383909008087335360906344046576656161094533290860136228493696508732789729822644249799719941418158365977459737006982105106377297783228020178965320441067797116894827561333206651543211622563959545059542186205311492626349392571067557148951063941474201071823806856354739231082559207754022343501170156769875851117568119920890493021208595826386339910977027148522508418874051629721035464311733789426314568847455911797303321052192842005599428559684714465001734940457356212079740922101732881001045302440302275352008316440795125494423062421612942101613274317822749887632827072522586556371361609112717275926509916709755174662535461339730363604434243436974514457655971420946018217655693060175000228561403468363004817249925887344369985052838421678333008099630599175652088725092076181576312804295224100222398913956002292144549684004062958002591557000206162968974037224795868164777051729058165452738750238787650270838537999641886480341470976025293344412701488173383959830844145012718269291089366335356650128180589029791602758104409138524515494350606854251282515127050951998559259255241755244227543599304834777969226582389490258020821433620382017164030681340543060142075787395501796925407413822928922828927496257586756600399633984742516433552402379922821794257229764467568691632996154060115757119131627830902532566594707950836280763057052302480590387800648104854524922543617198899545509346071779616435861338794191702581752533486589809475140475038744635991395632779449624005768414388183514595123383040430075338386779237704878142064807497241836347473825360097039855188882036478158481331311316787833467817664852348003000720655084004290074151755866603171556678174025449253986139481301648347489098512341529520906723325825669389139899919542887215708916414870970366313862835200341569584474301716743074633983751603479496544812812887883762520962038232185817057041987843851870750407423883544239717842944572460009656852096816830814349106120530332138347024654906776070225258100754371823511026428792629806222237281681087608969980123470078875906589684329127819908094251443605458194089012333967060683271744010075683759383702936535230786893714394601321293276915901019409630668286258050755332015961775555539852292355075412924301856695381467645139552504389737967978190842448108675809355314824152251446089288370083936420104104546875482892504243967928431733385173636516471040004777995375615448980462279359954335461333931114919794291716194867824764060364050767919392395371088630583760514690676569743305600279532848865807438720985045390277990704146330359626478035601551837050703945089127876561880864886829906530799970279812193361743982622295066950705191009701588692232196031939273851900011218582451386358055153960782509199524579663211434512866289465526161438302855367364360567726305997691609115871330334425431276550396474944929137392141062405018078464139634035917870465698540309661537191016036381731772049170543807867328225358569513109397510183736053389276657547817286998535703269897753792163578534710290701087813547866518964684945345660566514972250030713349271736565614514929847729224115360249121620949229491023802270930969930452137470852198179027287054057362444933532768429255704453355515084459532286737767196787514748911431742927125312324476142556719122475699967629477501265158564226001751310113417930901961818232308959302489350097677235213134966639051426381669481363640075696844087265922929879961346311290838152967845915837331370057212202200062937671860054504925571103350585521655447617816712198713648470061056379627558687634110805682105769460998228826838272825322943269037351592853596880394553444022908359278288652948222763419482952259230646852604419307675877057513815738123361536857903998644656136350956131723389894187181881331530895341170515536010886151929655588025306907149021906192085717693020933231770847337228500379418971063042275266319291249186037191367334279965872722934433984362603792754163057569261404848104967423469943454655152656802210124990316199583368810995746962822156285565568530635347563121192189291174584667786761338404818211767121741879763690337237796035786552472542216886029627455473176381932590444630214553914583046070255883658523670683783612460933636303953005276027002972812517991357884218507116747215964766546285991777059238611003082201012179495342967076891796902789384475971528679428708412875357682436030107679199311466222401102178012110293753105976110667435496421799308350570091750298132511748510696161861289953140742803545105109592762380843180891204755210705648796374454563843220380132115083468407893539918090898053467149474353794736634422824205408334571385522474524439697383815276449228562597706835567471148589791383001623734975803584264407697629688679991906495405331784062814503551850494934013360586123675619748744276019234326979022353563414087098629293147226870655750895966185228078794693146623155954025269441497956959634714775990318861314558499554279097715277680015905716329453563672664740869294614683727989930371025280818661652549955936785366857282104082861773462985909490676962729622526038424075082904720407675061443216050764401427031516638398525815894907760961948850728212456776132261327739947523200600177902803527733441328477602864616789953822265142799268892649674587755474315184125686446164110748186843126527970885423325014987374838901387995308908988148696161715731616556789418362931539650342628430034205026276673040743235201428100741742614647215760234910193162551387856900784266885929758058149488951932933864567752260712816628341687116771414480949954140122531052418305288192299868932158866134193461159955373010224658304604588689891821364496611237478516042865789366818226385431137547034443644818661276314369805042825744981350288782111720830489574791052273872528593736128876119384345756011980228060376080862361958685696616318968087936188361633302556798217345170767244582816045213798386176148018650594261941533300275711605832607411731470131052423662338025720809511451835708280627853897602096966590680517370414980656766372315476826931028645976474792955705573114777215452135708356099676380724280273004502997757510812533562868864746270175183747034430385812133914911903759617174510314532856964991034575749464275843205450713807555208850413097364125292713257525161679477786042692586669634616572153460181541888264187961832736036324773630602043288355165512269785415330619540134142179914891399511953195814313480888324609678523831132130909957839890534923709616775559665194751007205884586483998214223768214534049694861187136523140362275365569693159477547477058243868144611121459294090277176019955442995016153723494455615306644094610292399732382219321876309005180948357151559515540928704396701384352048856358116399035642237626954917364577865471321662165680151947155785748883073900670153050354000935081537909347319306336330613896096098589903058079266095294421132862906951462397455018703924398567729981687004475648008246288469391022027953343739627483516099847707600637240893274002262788226379006248525675574200806675270770870281343757987817422441916482251243686934715132928578008573331686311514698136526614806514705526821117494249495866741525698808147219875773829635384668627418135777527260456384461085320693101589752864532593490123748998901658519447606969590426095897319639986846880843624855003734322946425244782017757484306859458262384856000621242650490502288351309341667228640334955067649675730493525927635089223708371183182449009083824703318114193697311471195477560289665623939038231250547176605926445622333271703994771124663551331715533240474237759573259256700484042570876147971505485780318638844703137394585055618965557378375266976681429205954399859740396883841363205798184530389969513459600989110153103646096174447137000543350635454193053355405559730802137434310959453688234840286348244096230917164409130657522779886624406140526915161059508021425463922461051646929185008923469299454487515315101853914834348134283463378300479656246988406530619075314391839123238002988161186909201537070806627176069364617299733669690832621827544522915430550958391396492932947235799720106950397873291963098858076453252560017232001891645262166349095801361051294917730235432088703124863822485634045365450020520769937498761916316002923074822153934613129786692255699304208726710229623688692208453844420009265636497211792279376778018216619375714344264330219537726112280188603118240795022427994158035659711838517820769234657247983075406409264694915299440334457992012541852284722540486401981266824128943194941891258118639626536631858286082052785166664663443277485573885647073482688510392320032004814304525363018229757102612806173521065639842217947549553005436656445214083403533996346881050925930289892559549014378764317706732642323131467065887109993843328892612486161049709836666233153935291098682535974163662285131032109495241743385083772794544034318801349784590475235370786211651824867378756930535820072718849534775752036696289840280662152419352079113352106243230494127144114772975705959101341091111760314954964417476236702769379863258974613610561001621366220391224920218969585903147365323303783795309882364246805318933587141441701814510265387493402561171436889438644595532674210424337738078839535186860337085179159275032367909998567891520722557694951936613625940353432349062050026942351551546679282455488242458364384792893660832408423996371734562703130823152061854662801587495040699354694745783083687321303643660334859407451123396209480818018571276658263501080789219190047734894689063079632081339522129530454537626222164932673241381664811429243075601738692369458046272173914881655394364255383275175511870628607029372684061197313870118020252662592124191611702506116002169225130056708964643305278846038263866154852699113863326199128566748619548289299532219677543664777191444421464413000156999840672644907323792103388814995742782307408804336845011011119933129032038250064911266818869689484584910253458403733660595362535066798133690744006975500779542723648596509100974760224238836807662412711447072738605754119220650269313385436267475818960489392926266565966787692789428466311108446025676285265991606673812819211999097248822787546946057212267117648949853301994516947501016949294485373097672900766834729117060120352778169946263519085241729946429305684301256980081834630766418123500936493806905743296602275026685135918429000471224029291640946839602407555738213561903801922295623627131333346605512887003561040604416858947654131355208481178432024270171235287603917944297793240041389116687357331206643226851344550010922534511343409994478282773668093970575799991862728840310719345211879102800085981799053569507745792250801483427735390312263279760327096687416053585428531414299517520382011001156802145453693196246424922913349821879189062254017454959549358407427090512397853294325212421277629869812664451918857318605851669338649807176648955430718204252020296183799316571261898425875270540500234540360709967347363589665484256813802560669533613655438040630358535157527594856860774828360816525766903508115413157936330719967226206404671022360511494757707817212492588311376695874349034759253434138720148794613028006540952614111273112532544490201566190982856877888009544452323730923728457769697289048202548309186042044272228276232422277055072169729784363445249023599781831913933613913500832827659165201350465993491806847187127173493067626183120801725171068660937167625384528520324139376630563631198841350822825631266200989048284253970199635842372787863363007950655536100187222956046412596174610791331986078388761275513688171789867820807390820580627900471346150344194906310100251831682243744006570978031395693140269813609522223356117032660350616471458244946336206005643770360832855608442168682867034517401199685250154834820299379941105851096987419205742933937520183473562681452433316513286790589782036274253075171182196645815689562221780034018201107703910991717216746458835778207423583147089996561231303311311203778243275344737697048267462194673047108460900265565068212685488364037868007053881970327111278302065296408128600428027168278976595852162010034695606958023182992498124287486199610018299451659338622489796448120484520128158420746186632245377549747032882931191987478442285345359609400637161653913036358780880537065570451602218756393060732568573450528628836065757962209924775219920937971573391084929996770809896207735798536691795523959875126513228166951712422272485429968699452448105158241820126831409197283233114541843765518287792890456538995091802582693549976082271221425242155156348670953029479067040029817490125974923258069369330624686843321900038224216232353811827600660875439651229827429198324220423935511539456818818269965921430337356481796353297216236840792314219648833087462699929867085577122458377788537247268280079031137287933010368580281171145459107769168721978034252357817647763691078969166457391417866785908887934637046126026558757479615272629350604220774871252748890832103304343174903992528922999122686241225621529653532857477199056400231115495328947017736255870756971877197713517088024371487091949007584206400967953076395605724680426793993353131649795587764814321300328634140067252574733184057072282097087300055780647106630344123572078677082898501885170332148435037045615953492179351175391839671422179628410904529723511313358011458684396870943369080744132892494458461330608917830908489256181896809825722425593934764912992225318204222162084596965636013974436518855386563810886536136521970483996644804482990945926740525156148692025003361612763289669970036185907258254052604540441725334867506915779873157450845065770132767074071320311373256123863056716589786648011417727893967405567395741034978627806686575418732446178963442361448862826517178696466101125511797210657266374933107093118187251583954350887976558132800116406038958022478821147038406682074158656542750353285909784520973598044615001526402649347073242000312899511172929139646769724174186989993382785623193955649905105843437240804304645606856354008856988296768614526185592266413022379399890167051304047308346596296123879838983058803408185730623921048655009517420774514154834443748594607010733710726825611467387538933707838070044505369008009220852363803206569858416465156685026684324988228669694663156964735963988527603405999772051786165574891516645999589201223335386536866460458688910007436887631825039163133625722404510844852609508781691761477832986659344636848269589879759693597801107643415920752344159355874002370872273468878594167117767607421809377502774630762883392403083064711687862748690156883522191823908106181434956850610729251423444989962274222009140613313772996225722789683642920776328842513142390138037095665599674655016252314996593236769934486127960689041605827343545239009294725763792682442790323583421163164793739961586624441195980409652747203838895379497164748875948564059294698482124906275764906067617430419472547776457365923182561448754055297917021673185037249901551460678560910414684246866389731984297864835240017123898474616904662732982517393892172273133943892996158212302586809546213253166290112780502991442429031047556476934808090835745051010746422575847930616134629994343733515286624244493856886597241174481490622582174241218709379428226877296944710232209141982890502003214018451498841880663398742589561557566952095371024999415975986352208203505396460924168743759791484062703313122757748896946737377998563996955458789303489957336738981305256978416588255015803515439526520005251060428607446055744981888118990242299108914088018349324430433407262604940273055545754333544082400760885980962934790404295812555044941992003721365890826659923992902808886538092072318247953832169798895504095569712357991124671112600443836877259445303806454466733005818658347589682277415194801397557230405332152890073188654653889105471560784389416312945378249320893369191643193471129599347664872583449292889352343569117085110216180043131716730066880512968022299296378686559331086145324375792105417719926695193193349849192914520711960063587742363893130864113466768577480235263303405695090166535693881181294895093909506465209673610445614108978120788180172820715979937509993934489607443892845881612243897929464493554399562092247779591714005131506362004700273928167951617932145317156554645295184611250868885113501432747894865782113657478212336192057911413204893307280141775887172086950796830241328554945656939479869839462641129978766619153878583503417845959585506601682431403431123288702330989557104365319384312835838715891712570584890417864047487450090947318416917243479093997860797774898081649575046497175232944061638409834331757982968991834270764863255812164108308357147502643916436165029512144206995612884724922842625717794407173344187068491476887607194280251689522589920382013517453196932324838787217528915963985942866959605114735285924362021163459269385110307359997801364970241177987058162567461173183644281104570216843526733738350891518127770023544506208214095091400877972942493251157933561655693642454921030819944783622774404404949527174602583533615516459178078571068630868690755361796532983644616693074378314435715015926491538864612919419433062209591732723696355983287130265143207304859095191582705313848955015837727340582598563157280853489384679179066344577718164241538286909083666703093676656698359673099296705641464838638423039512493038348162710406019969976831584674787243575422853460368426915085840862267009747626128888328155642177972585012186861420187679047390499731778568769814860241646474935879093389051087065693273003431031378259029100700838666502617967923410683360859229893648364482333882708019404004173418699210566180604894923119384673394024675949081631753272536272356415914266568295448079162335790109520706769246831635860324409805662776929031853489931877602658165105692415820800494025905383350018268596417904331366633088971010275709361396457106172783797486504458365680473114112774471901608019616115968502806945211457106620758079744329945060438134592705475546031036508186529442603889078383312931428966101726566712445586537285709703411374265622239303259825373605525207485043727897685744215089768780908477481875717780953464986456663597767336592365225330007469090124705571815755311965860076152817104395976411840934722345826010472364563153156242513609907689163045641451129737627686188755473430775656422891617598194507586192102168583371097707894125656502877029984911963751744281241910757903291962330698435048630074748398678568477735730412352387012897104762151194869486353299740136815435493182540922774619647910690213258843435198190530027212670630114594532684401811738408523057007829099653083105760642456822373702566580639720038707932541159521028063278668630138144620056588813710057794678541172749392772331515328142000455060313495923133137659846481710470374995389299308141467578797159631914130591821064621364995612556763531457241716754370885198134941147441645650201556199029691415191406202119019110993778658791986161581756265159399876035304462164783647258549707681693730020994391643322822686239632722813397034286992476824598070437735744343654952986600835838106583198221528545900092861480756000032920685554815576638472831048299553629236103342179472288466325183660484855159917136887676566460252797869401315954689910526432093149536685317149056549030917886880442968328100451900536701726353234504069568124384549360966398489117833701709463185281719276980769176160762395334393741679785228451627447091649136416736844526739770526007638459502179928917743302534887847134811294055120714345688358525876620474928146348615805113248456176426827349441705674147785974463640710729483963691623315741613410398086338541105836180071383328490667481596282796985831036371531127760329889418649900764340935798969104209293528263226374051246401817599022181687955653766943208019379509910088375167538068166328621847853240158397195056365693020046284594149295176416621942870332472806674624931905317246927425536105142254496770628714930584931188196826131422940243029137914795889132058695877401996552566965758315197433116022051019190081536874289603041724739134810235310802383763985680761793519947969856515115109060535106905418657055458888731628256414393761565192385483758489881865174229972389519254369579382837980659504213674934095356124450245340193878741501331595461747372304508256496240213517058688495012614974469167746746214149577866092314164416721645776621568135279185611555446177001576180271497987238207639298157734354680729610344378563270480380763180383668651512498938717117605141054108314390072583476883001885114772739663093875370187128369438949280818843978723875515099998280193324387763930599673420207039289361937791938748085087948241693929463203716312453052728689045843730047488016670792637386284888769153005898528159659407419987498737287391190921507407040499009948976390930099501900465482992740327583161808974310422501421395558583360762552412674090386788885490213164963350139291368387271894765973085007346507331555948220912230872905783001308680147992202191867522532711064739961501187760158091195484481844610802572704726944796810997756825781049629001077999297534541150787881224425420207186039899277665202882977661016428223998693895588272014863425125721890848967902234035499828112851256544901942394155490218375122321249630919121928381558011961528111535157663066280248905997931686094199104610586799184564657600489110343386633232138917860038980623092938873689784994713237844963488657937505695783099376145422884081297800200555842758122708989350312026702203883943021386317087026868605547600676271714573991821296632908126494814013878175207373550079289730122270655050906459965874333235868853511417756646765809699083804218486237618682304093018065469772340221410553287288619192036904547671900525040138756600404848577474694849162591580517933411462759758552087597607779840582043945706461865804374516790727289909770990619936184017910566055154538322091686068696221852243330290124898160472298693074130030623445241636152351012545064358353046969506510953188171768709090943793013929569176075454129716242075138489285734312299683693170199383397222600781927232849370674584342046808312645744113907658289929048284619973327471799284671104485324090973166693152559513892434403421483628425984479751748155272535915436974915776976025267854312493045631553291080331789745451697287582235821326906604823599067330666982773459727728968252053032062073271591464731801590472032193194955585646885827174415307932746657120599308440638450802244761066532730022846472940503608198045447553277353657106685608129386023753420707733307693798898386843277717188520283489673263663773887544261766881095033306582054600213578188853378070628514740924181221759380419625314302026280000246733315838159088662327457969109829970564136136585037035167783657575016484243123222950731923351836976399059756795078380505329997779322604461742125375666459916690326409899046453845920679053780042088313249776693653482368095544339196240392185658228820590406923900600186402244903159616953675012212391344466763038081692426955182194550977843788456990270357822638171896619115114384818347812353540719024957754919928344070204804694630502505279149212597788772276956071165924362694624808860087164783537821061993318079894415633381948271914632516782869208147759005345585049567782996824335311820435337316512314706722949762898339523365555694975626342695459619815076742811547683365248279280505103888853233113477613133997498093804263593409431137706829375345112021357414257793119715650205418182534366382297612620549295734289051459070148406772942832067414393858087608075801712319755120080785457051133467396017364576891036333905358093685439868916092318121182468503151266895314443698531272953911786841800427440193015986456770578009783971751277029926028016824070840239918138146707176481293899094515477915009243817589688885713461381172552020462783135779941969440753669065608625027950826375371700284680082394260619429921904845972954009567780206789344649665385908845833498945122650249055125011647137100121847251689251634930821865521968727650071655036215446598275862368526361205686824213245339774160515769417052973014149012789294017875888888182720153276036886949416178484149185066621441918459919266773634401007889284976914892369747649094312859918661491524052939706054266046704819828042520885608992639497191719150334227394229272112569605157570243677171388001406122476475063657160170634479990851826749170728673221610937547886914363576818890350348515661037521145831932012217958455946137830730159488724174908136889725443061708331778284500145312790102327914693189611420979963885302465071245066223945829446382051408479118384233355837297289450906543969853755164169675668386513244120438749720986079725959604252044845652706458658964828925897995237753849961110210716973145512462464115357607212824626188700898197743166742156437662331658210452826783411791069029927928450910439539877443703115633727966093962909045704145461650726145309815260826015291776898908236733250396420174388849774008137909948434767296335022379980573830376695854949926205690369266847395410801696782279712155630048713652361299765988031210433502541644848255099759937982435777289565092743713341737675602956360207682012527379246553979743347959820405537476775982348236769301374825233735003551683521546470546598299917030659321920118832023282747406953071943413223617492435934237688389736338085938964157891244161694387271251296773572097765102396621416393327375613931671157549897618279688128381191060796647011200121946250434459859699181052456747541154778707580711819802516339666614714115969941365933038203017963447671031096453592944243299877968105207515681621899759235596619739373027127755518359678425966752192239535526020297891431745024716029685779019638984240264981550070697762898996689713771227511957377290153804179781253001059778262021209731309322080992487905933089824232652799961584260823643154704641795599818390875720258151707395319868498491345947066026645072897463926044641293202881117284034301467102086891003490779699643026994284615323163534683195580897455659922378738867987007879613900322170189989718087866713001567503187516985369867711648024552176817917075673227757259256481665328835873784815322968623107498094238603075957105935978234192217133012236025264142607226479714582719860792618018655848408759801352946376099821807741595418604730342242533337568617713649380403187025268649948360323609213697073526225431796607842571740827209333102350371046237272715828021896547671516058335334804889161921102385917476702441788098910412177139793205049497610683994537082147761173984856735912500895216253816739342132359284510905215925659441953240702548672789458481493410772298040391058398260867429528950639314601021918024549494298120295293487512424149452121169471062395349103189763561355094482348608485068468329915626159043489232311293486251836159684597712293271680965993512591897228872350317994323287382532177100548263291263979038401211685175940857732627983934178883928248353911164689112736052172338799172027970309525360199070258045528086049504486540356932154108440216660740657973097575909485618965661903965232554616129630707978485360223231320515573243107042519107646352087789836677835744695772224009537810063156091220584559216555869016645492688399812688259792080739932458911601207811629780808241521906853121530734263748648079683743017641083189006039211800198604574708085962438948209742357594823140580903230433766690737120571877346891715529245575926453098001578475582185962993684772069578597546884647241731215334819265448634525001154271530210261125060318842132446044254318858043606835633469771683862522115737977262580754330822892485112603259876729939994013404637167320454008470679132680661749826811114859400611730972228357100653759290189048915920042226097276348227685930114802861817182534944098452706256143635141234234352577061873421252387787043479296276196934725788732155698191769592023113581767067530137756618756159533930691076967141770640208645568735021431061706142844037896635846015651232439064054836418872002944851381794560445496780646101830415515444710784512087932737736625968627119074119730208098691384034822062537251071080837644994341844751043933859450670889942470199221928100874727761089604208967824331073670494496092056099847104801835222919391782144546473296484757852629594160238705474989659571608982598776930696377105621675489205130231993019798247561400738375348797061092953370636582002086485673497964496570265083188691543992032887653524198088587397906198293708316857366472952671822993435461537700139978151127589452505248939633105346924347963129586274141289553793124550432190930888574554289786503050886735675039635968854919292766829188484320916425539766996985053122366930822326831028758851522626085894999279194058886642602272661707357588449120501627726815126024921376737587287502560207650442943728247084814199659103786242392144188329445156190592766736255876423165705414984127412441986083448902123914540081125325691959455108517680720858278068334957993796094638345324907781089105302084115915969008450301630392841752918363185392364384616709572508856488824662713722976380447797567923469940453794524010844801853939438281186819393439280497649292984183782859088716276803700874246797999410579910760076663281395207501284241655598642960605945907932546473806458719808616885041238491106557044850925758052170063783708245985905361401110992026650541319405584259827941631230959022629963646872378476425321255935466989821811071198108200739189218685910275647192285666086879282729756810442012576359479184147475224474790651626860820951870332443201669621516635445986578776975993492621613638223742088741383219319277415174271291093958566557607488940286106992757674064991033167766959932714122529611995932507158407042869528238968409066634551407301095327710559375325776518215502937412178959482859861384239470367742120999623986826188037215383108914396397299962770468117324427866660766145395419976142593682403458496467524751494150585617021644893988806955092982937675394578523538414609150128130265768750654119892785453491787077714482277421873158925986456845377206994526690838073547876188189215575877298211925130707035993234798118320039587844827619648894410971464555481877327278140070013589444423937200323425451308635460212474935467633804709099954840761700153307710659513871333540342018927507171882740922814271601900091041940622889359535408577057625288975579425285104097503349286475969951001888084758798940012046727948377988402231053845559555812322332920973781841364695549856423659394634832619948368683690657242451527476155241778748912852930880774509135418740511755160669944427545893804103652142700586761578896604155798476930037151070937058489818076781588989657062889007323385430404996505983546728079769511090766874390195484321742238808098856288435080441575523407939190879366114188764389877204911856721838956533406057971139314697187834864237440664920170492894227133866994762826903317450655466302949229831644148963701472865543495727794791912656827746401376182476770519987515160790082380633487881930042402859496117520909532189990688598862739351635023446360079682098007776896647425025007565886415592759714881003610799344579540263171540671903444883199133174170226935968478001530009674877380739860067568347274125749644506198934704820341910088025936494613217591023339621131605456566495065354595117781450493279803266382747660965983815686372290990042414783112092502444594781003972976997687799531728919879520178991041517594023037479327804433928841568073266255147340642619544293072161699492885475620108242447613180502603619389969809294408184613393380726641872527842106658843647255686190145665310247319192681284421567021282807198994374358682024514811002576235006100852464979485073638102916287832930917258977864611682475833226921415634677682280457964144378882357122719118252048177570711106157631899348920459081598361747814180337455862129963058339570497249253562621800042661227204601083123933539023651962368512914342053257961817742798985229487978197362765282670731962059402790104729537832963884667233700393517725478163382539687924148981271467442712333185702227878263502506317527650513953243974736687599706051901696901084130883409450058881694386352649249032181209640966450312736306550733354915069458604152531099920951301418470619024983574980799289732375094432730946425896437614665230387378097753312358221236086362552377211047776822438593692759098085624034902055756299897847941691417193343752344429447502593739086959679236452666743822366527124611443639183897792215781745820349563330761772933775184202051675738037778199266717988919080347909172303263294401389480627451609449705833601378570091276037097927503923417278184060766491990289702031448904682172527470377215734667905114562248578855190312540531365140453496884482651939210555663771476786451997687959766744150766813723375587876570249439795233394302540471180881502249798033193633705509234376955527163707634030091808296710764222776687982481780251973056262502300009412840510609637585826079400410930855415665020621702636962983921837877238964442737406946855853556667916839923951760770074083226620769136724287313815299753929057229582192581228663733613216375599221653475096347057322421593390603628693148602494385741623165362446748799070562669136953228454683788374576407381768910478042304110733399344024739017846323075941744710646627134856766009922219239457656234687157762570054957035504377570819230771114655246531465350292793537221444281641930157904122625545163327077185032163765640900165599459678529304191685882902705113343914407908465565034089491408901764987176990595425507024931506992534630258850106345454826310969676956987192733039375675077564628624185615285300781578395141705580373835629423469039249259907199484633828248773249934152386712175025313982120849305396417271252629075961895281198118705746254819585659532097429306188324990241888635257326711015095889342187676141542679539323873205078355420069195136115401312412710201092114169462694107177756329009365183383710216840364628126018107946539643362758522596039332775441098208388223194831433307475542222651873222089782735710296766721647879578079536362340139067298700549874571211168693606708700046813544158102063011727140903339390471844281106706389154134703477461044764459126015837788973563985273678086122354521218573370142044604892128202296827598934424208266044474173528173641751614200525842144683501609285058390276614883173891056310014859564831049296006401627220352781946435858094839242534512992951217420360332216705657806216755905056969701268266047562395805921067457792049759037028565878334760346531480278165526627489284867500296374290051438566985406637869083398768485338226975259016411127194041271151431627832465657336767979506072438463408769160845095950964785007568080853471878390379256873366110103081561980835356857148664853779032178342228913997032118252981413577340775900485904761058529315006866610250820643568951502232732712899758295952256336560230332769500102375053826500376686439022980934496326694997954396143804426807414041973918491911903856359648643420254088583972970355779510718649497724022629123443965793452542583086547425723967356621159499394533048030062712709678017981404823973942184107680572318208142451687685340556462761721370553794127167766147187938605093814049406017654102101977130576102994806927123409406691566386165531694355859811513275232816837469615043101989892639746858036370363843940121593142727790514888188221949013925164766990468300723143129479027810410087832022655838377697098846828811452710132365079832840437791757438013278739093963261269466799300099112862138345833784003813674182204993204199483461611911004157550167373515335470495969476957571030382609835193466944013295359910817792901812463189494689531639926814210464461565558116843759437784218860890092556477847961760132740011450010168608683441375956666776504922997638357716202360036853122768079550114760193659138084909539394616576606144727497904869859320305052911860580176229934573946151033842066408823375580344957604496352091197228867943975442339077280516329195706358321246812271629318753404070949152773997619402593473067856286120859411942048518941546078820191395726660438594653651067088153293223106232307835684935731534389487153977789318061985741444286831205619522929387104874278220806084131030503966574689706322130187485374729439500381201224824920956448100793155695600495807365734901035728870630851072347488214596934546552318357985852529339924022363908383581362189525674136032113694283923993482224585877930938907574206811583372741554322484104645088152893045636090606829910969368152983273717859282024586620866154111565364247151052852696251354961613031164754363864392420914284017272064698583643329385765570094936791147349956229508290317833436517732991972613131351117109687073447715953298749655193423620683113075712029249697974645740370398317581503568335726432053876522533904049138406919879426534860540524600902428237156499638135277844003409424118654676188369191385590538488175499501234376300926527217512954459391931008944468980216986120259705094265018716291298793706475019275183351274342473950525218138910694368729858086014123542347401587509518398187608764865563320832832525754852367106723830893592170765293473046371297936361629592930589224970224478766490627332026362799736052671624578556754669181584894547973128105485049027550783904202618845187648676941675443407819218103171537226823202119524054282885807776252851317225534531804165508964509031673174334543355945516408355414102641029523013887101183117269548621390674633750013515328795002518564199723968514617886433150299037001370125914298029032236793887167104380746287801519468412379031646379772204009556409107890816111672879878254178595885614621812320958903931110778628138711328114318799369822540335151158911304729526402667915672623740873562316871210496406876700556972449974206136092627390520533186086354579469660277442691148933152038068707841985790598413064887373253683210731232262854874185303765157791197004419796085904605157948307975371274675393852064104000092026602747013666863935191175885249904130052570683603487136622707936712247778156403304907595579675713164058884497391043868213136011661686220308623846542651183612958329586039433196389112859816936203540417563886521801629364248220958535387875308201282281180722081479785171326142967177209414058648140602097980667323358306695411499925215143228587148423167011791531329111464019082982139561734849667404388823945711617889422689253337429140158188223956253946491217582248070092246524596039775837611352566050980294253346747349277149801179267675435244808076381323192817802531260634122189682431280626099026091878656410462376015969364038874713529806812620931073935866819098847164918147923598413523415105629167010997957114400411185335894969743265868431138729277092978996492436442712571001394182642339848616665651035052172193975241639286080180552765420921361287381145734736089646605308827004963733963178728479898757412824960143509031519192324858287643172131619070439991824415181616856462748097365066801612104207610907848335664127488447627627262305194025571355310228261737206222263627085310137268338907234756097066785995101272975565176471419580412236501143801902762230325930726957412520657403440624439312494614103184610469317818030159109917632291055198587762967575397263092789241275124108901899303579829309548391631805411046600075331965359490036090543757181357174360453314369312899920467329108644735694246057935497167322251668839646790944166270090406298918415205122351768903864720339428872575536646585881821715565526812742255825578690155686684778113209426457645465327311737987391120721891780417743931776139116471988644279714204670396890152189855799773092834708497412124790654139791704160714780096488407519681346427612079503728806746919168685905032175203889933045880599842988409779379585975696658166491558832690629047870564746155763000146686345340521536533499298444899070987526939922629289099611374534569775985261518347285727975911779895354766971238940454750912587237556192191751083775868239077278022012030151772416066516451474940545154616482559204334680308568118740932570301262857881580978626158864527440489667602101097096786027016581070531992905479927627044855703657443081299970710226781788056745478190498533091904931814044418974980547029201039512863459858682132159163310653485964991784249556933206166593902629626335685112537537570751898970833868598045067285815460445715668380959699766149446785465347490852866232403926006429512043184776012064661978416071071680791588335995006197550931429158560762345730608210254393009555705297960751536920734258892070262313725251698244094116534709825673539804230719222543067774231988035907937126927624696808902994085133574351693420657808411420662321650871807044131388217333746929601368265979312368157415406358319542602648022541074394288769494505602762082243052736897480011554042746935447408317477715053745463422526576565628026873406282625078148213497663580322585730943627269404827075487438117967988373073494512405162658999398056124514948832526146333623675844107266788502375623274175415728277317777427665821788308632692831140775431618923749861215464143085529937426349209180261666530603710651840810761367077380682348611238820737701073569767368334771203667110598364244447649020785909967607728291030066733739730342003053445661694896014979101745189925578147604404805055289572304435352983101847604956026792944930481654832716170038626754126893853588478430927994713189430930380769690374183080253145489662530283661991175576709923015045026686066442324762940765391375392192791555211959453843382517522471786549071145271354294055720634015129648247211678095024330192250484855000509667372232205487003180577963011436063763420394085833951709701665451767893552051326389385830685211247925114514664146694350900564274988594130059338763726437979781910837654246567013110496318608306022691220034638696274376175145421859715742638400988954339535708895618958541862601862756482739881667422162838418720072810003013735144798872010109626646912429672053747951870836321615368883097562211036818337495717121200233108503766305111396037792842405190501538665483294937283375244594891840664358293596774932785957094353838665737535231255996790036152792833704099423966888915479601276791413579376198045398968144632110310708423612696227258365131231714074742386860118587827509236071513000716073682181623546519727500813600925976914891519817109508775370205065095086061873034398650221699182622600088986214713506931700020065076157708435533736550094665153806039368494618640897029137910189554165707845957390266153570684974236366150448438086688743458053167526352474707172839263927181564760097071612264295698586109135983988208400316671132004903342360660970561521232211324957791676873448389738493685634926645167733878635310478920756278071154620422187183691720958314554980691663940995064954377642755838263988029553845198074804738671820197583081974107083564501730745154757428408354254833265125501647617277316337333037022520789433895829517101586230720673633794794677929926566852852340120489771741205411241308860799550678983211943903603389537250097738628899075178220954654364778786783773719716757093559235991482202819451996093656171248264190123955363543506677904535283406817679841671960889629761724851531343289219579884777848207208216365540451410359339552302315791773864388040795853534064163953754150942961909401873046534630843271237278759882598117106138530504736438947718302059553988885202389714854673648819784427183466667719326614915495180290295963138251745845926241185521764614129913840915709230200152005292325112438270330216700691802410626255658777866368826730473888802712076878241184489363771352892164683953855702942001598100481320934613128068354966446510990181537198284200209049082990094128012629102162747683168114980796747734210504246124639147368327644790629294647208727560116587481790427199958648754136170499504329203678795201661896048798299803657675972790841823706511317374096541794252533678027738545815446959661441273661220231403495697104702229638419995355607861517281940297305995331779687534001713562192775249507956386928504651360490486519904256339289893532037221720292387392613332447728312466923945916441107856253604958943687997573653381605581872039094628040256896216993328472251183818564255796744663797527933569641623184688288869721290522688834994191834908356821287454736934925628155086677614368609461179892294623803133641936406268835579109783357200592958531981693214209007699125727151571630826263940869467077564699876699378734676046882805777565802819286899845009967628833661625224858244704775537468176840055507332843417302503448199156525708792944679330863552800523295289397324303012931236418023681033389037919178137241613229831815211336607773453236238214054649859759293157820011958052632988032320758136131053102322171660968656890163975305885224851979211229957395320132618132761660759972523873201603905377575538269341907262448967719918036219875211300658372644583346517150532977445868034733008356030839612194961823689421534997587773616623658890437791136807252085528153987015757074597267748455915875228906136779437836278153975880731171523855404221252376404202304016194825907992356940233244643246763565428686477558271207749250032487377372955524856805427075512942836795392159530881004761778310051081143027838146040178826536468830766892256454623204739877441134671508478230350553245380459164048670652577899214659005458695763892862338176353597708914074153533004675534466395266514799091549499007080860500886233736863376144391586856544895670589930431565481977930722325927693814356858674175951372687052198141106913049806207153070261611423633548560863780614807060745699479319400079290642429586777558984369816767991546634304561063056801320242110137925621223246060699081481474345449753262193423929140790158717424842934610627321019000733345796214579748611218034843686282067601364748669699364258948885610158895217253250938072484852691728130932939335578802714682060472013039231287347862754002887637683773430951485178644787734520114534412610947646741175731316146122886198028089014373574166120871654528855362100958224709745852961502393369210277414598687522765929285145379781053990185811939266805277591092366449361935857315741251078708081095223124211568141463612008087287520321546707882151624503066207297305886150360834519456259936624568450158589401710446742254308380662010235714654901615163178669692411681197307358404781413444335668262797753281600853106541807135178357343419524365115607523619308206048418584623117863902355821882892227830383408923897450376224376742060025692696237857810849089288842541409961561475012199327285291130176619450247295189761761094638209471309852230105388440091063218651639349382085658587651419759543088102254136817069060499480097031764565938758801272616193149603381467727949667745197439328893518953809139911576049969717377102296324050558405597891287029784011929736330797373833201221155169301832501240427889003325578924472874631590912576870458545467168235309942294103196678075099467562710535666533690296325772142375001072563599091037989005546927074621550127915293746165643086793897544728248472895477970379191508890890530974146599110184936056477123176339998194091855153790430140397933158565811930355942088756248156019032908179591277024545341467566742708689478402554306669922817707133504024546633741404362080795692949060173444335944823460865911317926421331129791940709872470194542488980698241397850524265896467589890859607187580601167796569108616179992696761551086207467155018221448340763252184883900215417172998071536181520781368752184726196156227783021584463477467859506200157419721560240146820911069421204696366548240972159260611945033373539420921184038851654829997992269838651708184825914949492057259417937835404139049769269744700203852467801340203330513609401030141972337206800495239636808213252440495921149159975549144389511104537841924710617344039176686955876267268440589910309511868902527871259109628338132608963777875475933695903811405503546326266424507955422621325516897508769611445434033809472435861321759771555282507357084923075595587063132237244490836754761568977664174029084382602620916222893380591048425716610062569158249404152447264793782828381516003606564696933163170867259780935686743008233151480076582652471765968823719983529669711752743566009932305105081974354172321273198480547801078660379904098254304714250111448872852002397455113823801838849964842010606960103306088348600187563197048771763252139487801929916026343191714985179893947974855606433366128964583317415702336366724178611699413943653953743196601582061021988731094611577288163681092434290924929376289972479363407411160038497240188885434972057840977919200198237946086307427305011635385270024879353093393085810705341155798887321183555711656375800965267350983504407078136116290245572136288314103322033158182024768272634608245583933962053006505911407160414578245835341257531411458801798955350788885570668966841681480243458420275178498602694765295041458689739800736628051536393783674726175945643365003217119832104394063984633453344694069543304821688223428882425072262242390730654192586450547311989567922563406221323773328467287765683117482341497644331143474783254933384918268514184466856549310118013213194250011513056074845265981954568775599787668132145745565371576133124778998147990704722209067236416209774608506746796888883530698375920937663276475271474482171754029747343096262172185585811200361292848036888607500116484253876116597200344479486126149396897482159082677365755891969310090781601311143545891175798035215698882085053762665458596908258099574715954694273471300866720134704206114333094622722734865249249678753519087351923790103235046167590580295914866799549816567356012162108569033525836860504215536222927343102181376236365321344690374083000213078944679549169435121238534730532175260202459402561181129737445010124237323595667070889142695596249622078661227870808526055474105050215684850019133172565689959266779607963639093685344197846948729656827960871676526466464651910042859033016882770788293419264924106790349101087494193582988392499438793380313538927598793509412710809586228939363016078939318003591021011386875461080013814031883205702563779474271220365414532691863282654961541064389872218526927547938704200443984231217226097558197523053415772110573396127181139095763243792813124760035873231986948013819971314453154867985634554321364163095204674967681543298815601474732542019236121810882450372194221252876643015497336040258250178386567293599124500101211896640151348353852784324514085262477178929913208492806512142933273149714974800068431735182529778117419906524659593351574849424044662160592706589021344603650930861004307809290627294428607268835022231607201291040842665011473468542250394056948376719327516469433699650849187543514318161376113033471299053095381648539984253581407667640740155927160953560632191804590262244643129009900204402351446498177222759208137111403886772283405596092578299804025970278521733967728556737056590817848483379366126157280177327816918244116624452462966925514063451530086343476412640801314591210249731607921184018384587755718320896027113998001784647088410106773819178132296338898794574559125699185438601629958017612886786038770946776786571600993847198358264308153435240360592447004672518414132149651708788039569987974968858036126065104959297255388734678574446027477318726738710000510505024759844161558114754385334765181682345702534780434629336997306788577062565220849419667652900911631232180327993885048117990936006649674958423048860345673264396019464869439847379465658335197477820237874401343189945731050509035425917445584535772736505981849371458449973002185191399646244024035310469070043526191426797184343719974968705409187415594942051324699790998460576567042037486715368197994652765790344291234603845297276293255977868208416951169638492595553086909662739495512591123309775835019383532889796866701341516392170940136501873937189795843968158575492855081091951512665823783368328333642240662688181597081603264813131719599737086970806413902992317538761164012085173598557805910319775262531868892655510653885773650366045438066509524588128030387878282276574122685686146685892995716418790361388673290607650783446571219933137259811825554496876103420607005743242434252842051157623798042529342184742196838797682996853766690601930106063920305452421146744706004729277969149939799338523941346404891774518374629415771431362926729555498271076779334344934116133841074350176122849350113895985670634755013090044321818088994759591630885163190441715600506020197320621145537680539070425004210149213461584021131343096170394304376755290211572219830403275663698020310039900994288118307052333056451792196617910312201418259976328509514677403394126572280636349091299327269055579484524862134115424251551053078951067503491349716764243697782214198669287069797909739662801557780620008659130697707788352841621943389909322312967369916341959115863397277891689655292937069440076386197321044365531436540803144502313808611022153944819677182289214342507307605899700891039296001304752996713355230351386464896228989496925499650069977974711826930103175148155258087188597287094144819163449343670865895733729003202739462894369012336588590813602784241427543729149717667320572490678824841094700634658787739094285030869335348976326726159515466741334888269197336610420265408495988279743462079053885592431085332792872368533536747969251338466188986194598926045579719447243047252419740572445916921535214322316402362658905266364554550347927265046128463958216192373206875568847406751746634272649258312768850835162744396113802973057959991282175193503744473754486171367839185112303127951985324117924714833766738319422278204758643534123146124334402878507384784317513056194673172790883459472270507491774173873316625183169954537127428897402896299312346411310825759701661898904855212853359666108753574797223618529977105152186083509323296056103037271709062269213960618981667822844104376042351909874127396389466391495672027377540168254747763825985238442715424286901927334681366812341221410547676898602949875816039157089355950438508105348614351718671648806168156692240370435652474607332966658169815446388160480859735553400061965804201091529430759819517319239451022644914595935607588313873639402212374663753432484100881414977195157374343249197403573137402990450931201497426078662843348783940340078912683475269311231864983979943030497138349104647544790819758010790132486247572022437435771359957768141080900637082275355293298913808461978813828588924352568401269545737805437931323871761901119776573655683516887378495006722818671282139649502783734049617861379690189840007947194735121123407705639074939008524050169799389545017131398208979873586069522551269716610624184593588815494508781219068893334941272693122529126165761507258380351089990917835018214160174959334991516196986331804862541005881825040096536620001809402236029172660204787019108104330556493618505245293569444573460663603334836081452715688805359235145264831289996323737414621334017945340744425265024677035876978972251986568155820313977357057149630513790407932580437258291257416532114656364559537497554748495830316459474848485889303286636119910840335680449274903871256094433883393452191671333864599492930543821510504154006937736097416004586566744312559176382342876272702408708730257227513748009783066900437351472886844563569576191983608860164273009582439128530087599681104725349419077544847678133558024172568159263055293772380748088121526330308085064236925229102406021422641385280931285958395477207766607644538522127325584172977907788694743724322851107451155204366711769814184490480522829956401311749341097406847696041935614935103481633704245991719354386514223189509186311250104921124717558475243802885554427430716089832563134184579395725226440454132241232082087167120483844121078873087304816855487129396970816685422495929678077350192232706815434508646688875037300264881601403375509896585156447349385664172426720395071693417649619006956282975330351329993803190068129573422096618449781877368300457168968623431194869695277554003778136947370074566471752149842665356818467069778848558884784338976017098700859371477558187555846443219340324235374702915236258893766601160251792350017558096821417342864126109385849647057185127358672068711133000981570755075305395241756488615972319020120334421700148077609802430853615618662023615374283956282624072117497576212112960136752908459859219315826018929838538938322085643491635727203038259997106190663159073313691221238652885309438309825056140013362266966752628455704978769780654170179398142239302816051620826603660133702409362213538930565778097927440373575215397205241245774233721411997292246971897370058765287295608541140978602249474635671394917309018063316587576599964202335488492554499644259614326140533689461839210410094049092822763294138907127130741087363566167119810496972211130327352713770797636195960185591299208670665847460362323422501983274269653796910557776516957459874080622176493865388015176783139939328287926371909134317592111580593777271596810825590240633627867377298173701907382114280463451859453293282845215853814262625351681918089304758345413719684743789165526751447101269055010828022250284908910321650639390375210067834418185313915469216147595504390092664263782788588891168329184450201839914067406359893711406571538032206651828043865260175278390923030516937335298677088592150463559559433582580422802185370943939023410644981567138277927629772919681382490793221926204710842526328948791206434607373648996951641571787439483241303941632242830156982956487482726681893825661628457173638868411362351014193628918751839996141529497479691280530371284425494584303007981317355222786257477921978336212001955354250290221741317582400390049640830755074851954391285506067073863206325368426020815745301663169806728250726402134527165292943433048607250048419454397402664356352365666740364359257551828701525974284571995965438406509724161359784737460157645138618055603082061655536115913555624500474489087279877984813159204010406253072053854435041792747170443346791357049894546288944491032693401455022967348174602340892165494669698230437013913261687300412225352096982948163471034958697655734505094350973324187644369880005690744472394354267979698762352842301986035906688772168205133654403816135102839241491925406896328011920890331815093647336980962283667738744293992301270315954396825207109134312991334688915386513360940226132946787352665028539651198114776337844803137705793557213300748934669567956558423529645685365925549299784703522473919064016891191126743588353081787062348454822055600953623684045635540886592213127395575685431481028992845880232679528304438065639179547943298666061040940034399324345455909740710794041878769311261340712879574853666000117967756848398861202752863732142514610288631006986814563813478147804607842279677955705091705445847123715453919242217064595597755665940682868808457762995029096875590340027853418573412947331124916274268294808698720942556516010022376494431483281831871924126189427892389310483984344798711227559965595613036714751706567950524455580397583041943357883246765222873674402606784219888644792883265042265542945231428728619865751826957948052283597883296075454601862720573692111645613551886122119451079696342891636276192844451359090136419804435915266265646959996488666261343863086340235253337840000335578850096758075681713055865569474602226082904365524816899237229359253867952561004959348406393195398910408602126723689378099605832132441248627106389082157845792487066249190472349542482446023259428258261766325669508305830258305516370496888227414330046569662994688233366613568112422173739380746947166317759350151320857223546515004625094559358905248368439985304344536841862032244581226670522417405049899164726589408348265946013739436152115837402195010016480121590609993127323297370709671014003664312808244371825866942680073609470362794574441884841641535881829284243579883117279480840932977779714406351361316578581068377862870945731182615580657075467578743497002971140226344490183870540921545723970456898406342848504954099062507405983158030399675445141871585583434699214243987386700189331989745332758364940340904363906609015071454501678945085245366140859299358930926518566942338470143168266798358773283645984766037343819767437313605004831374691592198348575461448526646520382430836858932488888972736429894755056319997189642572566795130690428326833664254747495162635451451711975712653709277379160299779070066917699183897816636671627199104161955482649063039969972314420739475308934811673214128438051026807794257302820075528438306886925577625812557803980522227827580687182261712524890224313259113297437341581834672846911063132686015512276899318054575475160382337897903060627986061600234871910311899916353368111666799386178904221458326157280593436296093500127120418737629802172033250476856715557170315811137251186278217685431970519405266619783331474573652928251108254816687048785052538670217330053632974628129938818670520614064357948220605417404286582830733541968240433655332995065943507508809976285238976088156949848468394312378700250203828831307375724268041637487257531115253107306973069130195293079925587236927294018794267576798827902118625852849050608861410845684167353287603597761288206176445301518436408447932245770808954559142212121492433126258641071035427682100715464967395524716203083776102239166164165882537168758520515913661124517520160427425319085019363881653458704927527240528358966015965970987560846795563575214013785656310457025178759794601686217087679047647859394367309439230987495567925758293849460695422011491835651364537910744083968528517141301481989239553853148972552412385264862320664104243483399690752969958282151376748713532996173988432709162003674628413972059765952314445547669815689459664914207585675983181403309130024560725636053914890588760424078066166219379531887338132521221817342599746481835770858209154635856960858130407301082847914236657987887769959182420482185690152651288693963108235835911508425471737800801044447737354117178781428961142181197852849430150052759270080101018105575001080358034142369914352720354816564466412552864869994377580980132424384056677881236780222377125219628457335724382930791901035236035825879433602882279937889744397928530197632088088682546484975260472033129485269086940585318077841181586713636903551664093526592650218203752792761560127407595857345120811546672435350457824011362915412415138579232717920770269816254350090843804754178800413194351564582587828564950788775001439137539095905547175515214206770309043050248042205574498736275173341892763889610618270089095964835458323041134073265806338520565682850106158971952630797446588286955330693049403420532888945181211980517251660686143143080544126469875687563724888428852347076083230501283638092180211808249319434427649804647420064452962287036686549622063460988293982949231864462514569402168314202590357433698500364120665068133308874079390444618011881888985542407608325631010495394971251447323355948578654404508294314902740503609667067219228359568120829360953043717119187935562102663487729603443456159742970787785546451610387262595976906940153854775333074820181945662300659219009655085834345292553159685984101105687474759632040811533164013226693610354365966495736165236794705491577176684804921287730031271074492942134850768723793644448258556631420346314015535728256831541563322214470972307509373160810679301012510749815866046713327596752152103074048659418438079473474800004030707205286077932761017983160639665720681608449819432735697258171412510763841891935193321690186656378735237480831534830755170424030571293098644826672063955496632044441863272967426166444202530762384998720687536184251112321688363115492239491560468840875062094456489165886468492471888697609559932629771145010964300928430451332192016873996118909785839878121788054326701263350492084208959200777843597726309132628906009031629461105017029504001689379238442933027513265565181174566099937909240366758548790946628442734343020153440869909749390284815750535521920456760158683253708948659253458583146967228097667407553820233846613724308354872811912679801869570209194878637514789354837629798143171729596735629878060093927130260534965864900498102454618218740463442706178315955811697442775226361844003919008515686478169059989568900725324489139614200544667473331501506508077544037359693391318000219260775974961456304553659966144711029161915568337192049160186058678484445258748445090927548186800691103283634274123279803883240759525007051053497203022702784573444981286392397432902516240260390534511459636671792726858477904050357387488274587110073555619092318273765310355599717251549785480653717945172116421128169023992755979643343542717466467166595133173896872282036808709543084585296244305924201002992871371745259231566545255692625129590945775199140101779170124664142976813639643272530946166552331946925909779685184114791884519537361078661295991186859850448690424442403888727642820882582671241461371808085928151982014790973341261641308089405900433431514896814486567261581443219660304758311202452249671292694225999998262381866639500034660061726874586439148354819908157919763321385841190462346217489164070242501053374156660121875878793742225391725170961303209893688804448846291652593168464650569518516756134768725283792333847383089829828207586454308128586449557859173885809992198697260594049642021941928356960927065662019792389239119138403833205070042252068230645154473580172485765203644586700485323949826160355205737994826452996316247410166709714840189029024704917669727057864843449347272278724349623724167059375457343718442819453774367125098994653133721389624782369915609159412207553585292735123748264560156633543257845041069286586265861675628108433399324736440321589095518543889568909103576956648881356696099277620420786109498335509818981574219786098472430587379504811129231691845521831571102044619893560758779047695257684073732271591475337772823915812635499549596696444123529434763540811608134611638583848319151505615447032692989145614509155045888526020785950401456517020220183572123962966537978045608481127501938845125046952099997145354108008888109885673791745634545316599345899529897304285606049569860773990038417805889754938214102939157539903760988689585479751967290624035083588055962870062958794393938550065615736382163779519646518123466590694989112733090852730778615481192964918938134342242747499678772311143280280773358541595191028573296135346279042272325443497291229374556585191468508194598630484667320879901405346799397162267669876025354600630204379901142436844867506466424114404393028071274603752805648826356345277593036538699048104129719864852643862382794694785615828312848750255366977334962124622466952381711540139748008129647324111433533523283657001677666694123890797433821626304485041582454793939912831737222948852329025952743568877790489547101464612786219303421257761308601774690025480834537250089125808734630706332333700872301009716659274519808805307490275314666295254556036504381617171074849406151162467899018298923447824951378720265640561890437126528109176983223465097436196641352140165259204188157286194744498939837083359775503226368244718035948813297943481568473243810463286178803064976174594927734819205631806312216704655328409591494785367712131871724769761819727102795560901056749155198552105265057726457952984144500153325779753921913667259937042180500814225719623821403777195664528646531156929157148417526781112041234397746780458528812827550261146220681185964561250693734507654077144393366272327524202886504315257349473900558224996734007627309263274429107116388361728340351094981600683376538600440285501300043971511187000672712323768222833557150351233937629926106353690692113641147948602029909781545145235806492772834024157412503980955926493320296585249336579720120964473590651248620828088967877162227572199465441858221941572261967204108321551282734809725961748866791029173761387814311349213767418263135377140859289742769468854959332467686702008986679421150163443489214548643273782067884525853549106512224764239907970576014610712968076498598578092963572489601392621531565706890756745551057107404970988393922662784464086131973919080551104170257925129024054807970266956873604468786848942322439129514082529000579098639568086022441228836726989317266115028366407515825137228143398411441178111660341562382971776168574012450396566004928929093119656456049475771922255350638018713076881323472901208163145074040816420591380836030876881481848490727636839752106414101434066331164793660686099549750017085890651774745535773512185421413869581902252160019160678036433766594780965120742992882712724264803107131930063723118589375864062239911548889812429582913412533865020143970133716520688509821875097843918987789354683343732439054335083256995864185023474456580834562891241621364456884782074816308066709842971745007775256047375385247046568390505583136151988567605568722846277497962766516834984677309864879116139951436478847193054639089594247695405005208510803654691570030261642679915105469777736702189648844464586072516397559296682367402738444299687987099752429143822674252159914765603481477565261267509225611076150846932349659160438320375518237943563028413354410032644135035568000255711016208826997342275178687211180528546625043520923482092900265388842082560243278369599438742545760059375189201689808490703605007729692815906846710529155843330810952294611028840305216215446323403563609564643768959577436279054086123613937018177272468172919340449573932113353317086298003915324866509690335566773195550616836117678316268961696069967558890287131371319869437557752449861022543413090547003305242350291448046353430193914795729607912315659959276486841263811315123326648385536652261951351009868515548630082476024569362783939583995745954309538682961506411966180672328476619678451397939703834808871616430984929565207661396058317978488769198216796297466152704493768311478681263611712672002934542737629255306705033071777265782977171566887691369724407583012244276909392505261970367998437855240459943181619893591149999967265879832193800256077563399998642356958817975185956423920055197651511143900191978765168411082083080955919439470540362006788252576756315704694673291667909689837762690182139669105866794383800276816839251350220280338759705435563491284375188406817008510474653167730467481449837885608052847753470086816715512231431292445581676807778906687746864554505773346963286108734036017438500322929955309298217661902424629149710489675282169793596615806923222706660614110915655853227289136784764559073728146208366903675958839945018117259530182292405954528093154160347319930460475775583563865415077898379616752143751324961925729336802872557240581600858096505717488612130674918384970892369173134397130393992729052225570018894062839790654744487101910542002580741617234194929601465912703613179725848613540980465394709691990680928292144986451684192013453410110303886804353431527025458553448468947532558517430158369244995515847809287808906764090939150229915731061084811910975123558776716087433929143835258675094223388578827889485379104398904448906886565689890023730092580835057794850916049122469330722211440764198334036763998977028369044380908090560597999882779798169667889273541225627701957538124534091723377667991958779079178780959911468515709306301211657801312803915160231311943638854584832925718377390979871487712533508604964638731886321111518391787523953251165375069560079719517718322676730994341554648816545898016371356965157019374340956057842198362298721191639162319255705331650571656092954855489197546417443703712706401476350382668850156729519209496187168464528561845939018616759643909501257170713079584667452183588816247071496046071549415484840199210426965476601928842952316778816131120841452617442866423976326607309909748421401654469755449955683168402870525142109961659065793876413651055255606320247076748674109704320497751667841174751120863688387966346952165401106869644351783671513398305243920416840176392811071421948273166041319378356389068446827795680849580884918429250379504965010725477907982270613094452299674295127009855777013259721400386738128485908616887711721466656581916867240322340326585746930326970808071731338825049250676166158433011732086080167761378130125833984955947614011843068764053294050843604639797930491037484242684825661585396412373143565566771434551294257216448974765395230520822722656203649956072005709832156554941622658477580036279615367437586636883134978860323921643375772635486762754172326422351008278715965902955620556285193697142128403941912370453704895617078958956403333341335924832561765175020969930804561605219653913411583234067630252458521281137252144188118126187459239199459420545080526384880550403827502243999118340525360618967679290639754551396019073608116537345437100080380624544625650067483347046634437492381993231101855973062838080858952215711413722432584380366009085594218552906422652441611143557502141046997563572932195228446211607995525897463569780552658484338886883572006517963476256343621776550825652196937289572466405033106608724598941156436503360898596933883404213344529582551572147205796211644615696390680489004454448370659203423030792914317339575075921211550418245810838134284789907564923324155532464807316500696845078581829473869967399746650549289260180815567269038390353262986687326824690887933846347113381960953453423434888649974286891494356100288398655476640392784238515443609138515764339930667433241946136558514844780347532478296708049948648026761280384293735451033971567415190109397046483495798907467378388388897295510181514180504955732716031494215026507543926490987079038853871409062264804824703232713778473393138549004616873413898801525059876265522302929229979770991048979887135520742013652365949428060889344857327931426417099118440763616573870507710809637575465583674379094015219183993402623345269417984026457323135868699310587758429983238013690635066554510918086124933978310768134514478131220618373113287524657652457422840136774615130332519143421115454055328678266791462171201144780957704386097740852488672138066370202039114817280789140422772452043778254297188480395029287166792456090855937765068757282282937818817281014876247519223886552139647070960679218917825274946786332974726702832181590564815231585208947434536305327527528516814851448606921358891979704149135762210873231151658157558041203675716650039861149085446095718695797988606065903257236790154785163469520508370415148511396679896318302991932769817832105576243609511842410363931500553461325201197040236233714345200704480264545463708431157992224042502988494486483866620981048002449899565011252493686770584873429772820792921280971185788210619013508458242713387964399842683475600837954341172964041326293967397425210489058862082367224714277431989805993506935143739893233612780742982415747763640002516576173151926951989416616095843505579403860998325526430383302200550934649484872933008622966258978580998722186523224762193420068207526062016973273446465864370800575361144187313226371142451552129718943861951291328608817186717975715292297428690441235771873323472469572431549321941416334780458352583283517980500437010591607847950055970560827928631575532224898176941369929834817014282861994915886990903317556748005397650412334596135462675974445127926660247747419791909627764029194577914220316471314255001084701095466229117401893235854614817229672471816622709790167119362821583530516076607115681135768196749502013523561899773494246739978913796481093186723860291231188812545470941421285233946975942107221413351371624536079572087752459484007669553359102190648871232370440134504392785081441436618317343221887098020990749280210280598381648738288808621006217226132767328332351908272817283838750546269797218549309402101704196790143641018515298653309386105999160689430622778009615849184016779554343077548988567372384777459559628200642039061815577792580262962186154303242039444121353441698020669990324753178749683449801618985200544899814618075331096800956189491335985558672385736711431267130455951505322469571337749491619638295863272681257950337322094572746209522689877980983468413759794345014267846576923998243981334436226194551147957952676545741771388224827488987114313587501093987788224127018366589988426885085594427741506418650882407312867138301705920721394509059446976973968500154724120361588922164525893822053547655893795799227311735974934691946126941501180630979505688127737229494266307991795002414282346838411591614186144939995907030294009275074115634726613578030588036864171762471993457273157229279122358790027100728870933216013691578984332276143225665126038604832050951152641863039172685919996260782316233968885669785532988010873289869330414434870837717665838079648950454299499402322020200434112158880408672460969283481720297047969303680789168316534156457135100589630034591893679116322513594028356983143170600338183471033215280028391034064898165703829639500467311735641611543875192023674937385708037669074690959818446231249650852491207257670482450179628158976552569302176208687028657396900481183899973152077205370055880717143700817309068811739390859814365099365773820135325744590748255955613040414508851244860791429968293362631764192231400396511085436732089384407220108303212515812448490638405650310462727827866339586391583942882443468861238723218141345129536765245835971894955394721277493010170899975526515956531211909745758216435976494918723837989293850435440054234230145763455262606010637450148901991844671384777812679237069708429800852969563743955950631084190506541491389440888120726701693690337518709244711118552471064748106089214268049724779979543651920690742668785827850522715030199529955582704020060122964839494379628262841559233994971853402437426934198377859042899060741621094888792603726035208007624926438586321680681914148609162756622113201148867709286276733105021702717412804128602345727488807969136624364568282035991992686415378764182294747314362386833763616133680596302508919793003744452211490028896053095649595164461808114123299066520460078756405965757484702620049166585419432017340929901399612618321174889713475510351970793724199045515037941539913186033548183989730397118857385588912750415147096440908030962386304389907747104101465158416299273636077301568056588673961258679328394567680715309424022546230078815484280346949595596153343917281475156824713939179507532516801344956606246579008894820943249430763831646434383509189873474228736825107351916282790325630532665351545170450615787885008936234343898934890973409497724329121895952700499153767239626635788327515616476946598614611418034620882566784075329888627712159982284228684323112695479889728634387054035493954485652263006913836685386176692706472445557478673050401675070113838717567013749721998909234064814726863034090902257546867140882839333855119115411122156630412626364283236852790601664847821310122427470424624014929188707674840099288197222763278866902743992120184634880854602926889090094836662986666680172096017249121012614838161935701563458982871744671967391054696083815308029485137558217610230149994769886996891139514920460548662202546913027807342894101205327670985903740366248029589651272510126771770244605434711877702377965597881587300006101983261697669038454877560802345942684712150187762218643217942832173795607400336983926223107321504379704702107114810261653754350019988370553314608949140974927692310317090614637862109971461382873908420677883590785837372891581445228704862701560804575765718425559395893850422102793094573883947141656888549913672175250930031258688435126898722234416899411324051390656511862828915952806021182290352428452647916517507782169317836007847236089800703522010375025153279138857218678643845767876834659724684208790885161547978404079885338017481231490962492129392631932653669729666444824716003296819070960757346650314484629093122325520700711776839152194268814205850931620035588079247975377844551935070049721500720345299400047776261220678086336487043987495832322167940071655630739647764454369479417016493468528861549184410347429443737149220821033496555250248905474366304490095203864019447329802295903206292657522483143927204814148136527378707302549831153413038255905968866134659759955550785011188341386026819919366664349128815892962520990889932327831365677644141036729613343319707078928578519492960667657962260314853494521186359303963445908491619277418599721094320165102388065563784917531670217269963368447844950857589755937296370267559653430543640352719413813319290605211166269455330700558418315648165068612996711598572084710444802069437308434729800532255930917520461151871700962750833059590470392769858773116867622117064406583216806565377216507188341101251395357163168930963240785775844453326046864002930435600548053268912224388989273153725232611635781923122475381694854850154002685152557579727946425540875164798853884380652749240023061380774180196905014143779583480286820058008245656638176070165167235865635163553904648670854162563576228118340508118705403305185567137660344934057318492930337175197368646570388038105152700422395764050850325067421203355717048051411662261923321574317680195155888095026366047376190606217819001877859993355011605342797853192089539914830870231099217772800366049393261521176568438899963490267118102406321055802367389657322674703182856727668312820434739307199692938979431899054061022057310552437877327718357953033760545706120284782024619391502689267177772761716354309610373168284270815771998513889799320132689218107963088771860983932395394476839010266761979865423985560531673437040485105497570557035815545761935328655809363108099382135675329376283367176358539481979258086735648903235460875848682371810241968685249550771482714144853030167157912933680201605838198773221825530873076859408395167234900069191949697564675554226912380525754799376057160147563474250917002367195687305677692856526884289761103295402398518954478166868844656089483683564000246258548532373990805242857522503352829621484480672508892487442250452783995961627858565534273030832752585148880489033030684494492400962778112048284553646411965785981836857026041077267713199898055081424779450007285908428169793558945956164580133779537633920311905605186375474914525964757669504424374404051284204945472399253898861085378499404732144890752637340609490478896671724752926406457591377619800706626916869384314288159053639064481222210400406922174491005992324277450354552249844902930503659289135713706412874449087419508626613248609224173960847085586965996060220895374953814899534336138846290800609843198630557368152607218587204442978287314946243556990870544412546076674772546980472151797113170201863718205814422868317867843654818727124284732127137510127206968859811215319821081764608035910197726595215107534782523767641233910799624362149636843847598703860435712392016328086540047241053064050538110357289856976678670815415655799388299156718270872055209091368013434533089516453707036809678317644334298295480220399317142364607412450920062329079181237387490537813643508960487967291859511036701682967000706659496260111337507861074555731823884399346944286264760970836214663352834490871873038405884184957320427032515250819271831906435929644271405715648947476428401065938838819643245758266695720248282407942233369495106199353672573765862726281631488983184093547241822714353043340113620164001178292183787894092387117009313259355536681430596688776517371318811079313646856799836136759642100983979434006435847827461069090333953727791886850539872036145972385961037023400534557884175022450745784293383879372550418603557436367817987896023266849252125730827113010058232834067825581447764304407506026621762112636485093028684722480431303936442872594638805970870997607988854200236094136667999864220727165319664180275003465502190980041580246752878622733813992857864654729628437668726573054620242984789958280041600360226672299351239509252586381494605036024591002079206274996132540393856311484107882769459012361772727196645463217226638660222823109268007160247166939447369511669512467874784304346193573533882243190268670645940560868752896573277071151162082353015565416728451036439974831341100713292518222762690454397511051775527249581872904093391459178398269271276991296165029965148541236696421516631920895514058749208778308751073408568736141323594508339792768415731074485501077660360567970148438358753894093816912092547116846800854962845513115085170848336104532383768654621002798252702780256983600618227739713609567782133216350984401221227386047979055502563743127133237408157514012595314495487804354963808529732060943167928473890905287941096819297511495515258808120518095425597156199809623426514594120960542148516947049600730847827997112772812330007340018229795957995669280213425623000342527330307282001294056325807332072509038454724822132377113782246464147386675814053833874064671323493421036992165880423128219440984927767612636045029507491358754657186447699143920483357416086224816742322704106432415086756938477223671328612440085398922252573154301602580357299836017978657380461649837802470229156873959529397708988396658097192441445612945643354998457581795799725085096857077070037035394172073098342957555618673593743061154215413505021977415178629952413425237189573849886024386239070939121557948409546155977064230044927330451540779011217053634637673063000770705376763231871016353784120317141966018919181122203592323454331358365530462207873227677314821149316249282216067683189831360870391786789626050186897986350427767208932093096620921550814485410772952357295629429961338927801223171472175584158739861714470960702011742598287289441769715818230586918105014717703574111365880706718812629410853843679050667532314034952832586639042805351292964492230245166985291469416567511309579597470126785080292540901242182185473543652393145270091081181991352315723083878330473767708977788903909434974577198625624673806258419960714088562265992287382284051417686665438694041089065653267789639358207826669215974503809462391733054639710361468961308932197329612661997732983666048515106088564453016000076083897746402306443226120766635648723327827540807998034959986321306155111592822788977415283463891596214235095614403666444717563657731916550443544957019176704817779860361118773956985909926362314716790547465595423144811922769880123623242233243731567601721133725980169306908931835766698878668729183714382173737353837213657486019877643769325988603907904597280375665120033729129773875234936930645085625513663251160772785578585240875243018540630522779350513370153733189016881709859068267072220200010140935478108101345920225106909639253175606307939215897283881129261457990696667526159698964868074419394994394211755121529512174071781859502630681478237006493386115460411577957719707138349576809329608499933488133418625463611432865100234845310377977777933624375098721816113601883484665412724040272497750573464951039441694643491655485685234046533487132950241109460227146635282937573617919766885152796207513470999632533317707472798598342069792181372167366470576125976219480845236687215418041886029947146964922499051667718627842818698389677363517346769433354263356529995006813293575981536357391310786905162490394603392190287743142141298280193837229130878388964184425182723776973022688664224370169144919888650379656290920404047979570508289227860857717471039592240104681780760351786868266732468590269241383961684665627554914181371662444857420541780346405166697095186239512254436110503095446412766447506587765692043161570124041664271593252486037007826464032757776512030927659201874579954167738060898306800458771148501911711112497689951520450296780792937692359889142491441268171810906639691430939932678459841080432651999467583009405951468110370093699886577571747311994999947809943228333047646808738521602342961279135783847028958655799118753630096130761447748940119585233763805120098829945249850768364834367496179699798748515961009324485297265907657620903501524564770343009607805396016322511629937149018238332418597168393992029372333009544388113064459055582479626013096090529684437821398799863928895519457728700406042614691209498361723733196422099362616998388423292054841987381463131716529581159212005602487132346607190220250208571505719361284938482771544960080752432530870942729428559995454368147515535399591994316862189628551364638523694089654209155488072169083377974148019586411877842952497319299975677100320637114035278485807954580874678709455956865551141056635866927499510360421619008682485042544556269746324604666057854520465046042716848396674557896586951074744926335219730117097775380690397413560391180305441974158168990238450590093456336427709597231149245370081251899218137384331843084079938583131222657108732445003966164358542637239808646534664367753972855784572067933623298975141505000885288691599520106866273049687134642002345248621186333569334712137829164111256240531200373128061549586902712753417117968562066355728871346003939478685365957578166341060563085678723717832041823233856171428902982874449044870988670885018130646295905496161879446073174430593302216020563332408810451244229523427320303908580467970447320061358290208689326152718951257433947737880109501202264509960864775728117355972004454258076518489859195390111047009810704393779752675049351427324960088539296629450536861256970373104659743610106745537034645248449397437137737826320111008721549810674796255083155077441283469861768606966185445621667341590853628179438495899581265911710869753978656909212919083423941311960624558205867003203993280012544165938372830103296778108735437659672172638872469410932614920013406938713412669563637995121402779710150857587520390267398044902973120662830274476759600603938059059828066594379054578621563817514380813081462188186577748166158781236073504613350318670826861623131537460161645539500596488596374065048573183819239749688083888427787552321437143649454575651333516921779180792863235966017586194015539980060335792445304340045311069120148276031841056422101622575608931993991662410560366063984121137724921409572045042600184110501981577127883389150000250228229240951639342428863896610501882370976848324438020885908553405231054098721507478656130582117687733406774239285447147444173419406698859117805811903053077114377346938233741056264954929825815074753363021164686531353349649228776598019264196380877389122877416118841575279842257369106465067278850943859879543503933907497883352484269986503266730322180231808645732605357881686373599762898331221839068746940769268481920527969404328440316102114392796991306547082107684613660450677211112113178264400477655681620003677055957582894118528468732037314060540772267197019902947113587562687144031721933446468543626285615555959917779934186161877132806923010494365101483968503694483336307932549658525393366103796530936151330837526149404548205549437699000836951063222111052751411869716341409999957226873567752500818500495366225849745486980526386617958691294681283467067760282293408279220686418545023541784586616386968843839271635915739460036783043702210314470214729325207735115180715237373923942221652859623527589172073176740591961696947167290255265177488933444499257296437466258110866032949343209950844361969376126214975586580649817884272099001100917805661931573442438027003560341139106868048533454533793991089919503211008396988630505456173858050062929639663693932345763292185074099443707175829219724450544666709417303481502238989699224162278597304119471734300171461672627720050186010832209582797715438180112315234906058812018708124527116964070307450457469094297249880789462488305173370149052664345131518398461141469474734795013316036838807699811065061386832309232038981301747264715090919117156115985256331554250548934526984348726036243852453204397729152343818071014926217809418969259106093084316044325919775989382235121512866309172299231772555947514253391856180888149704384182766981969731124644992787061567754041334880367636198593081129572309629723524405491111323271563427926977257524535112583564401559648545718276107939855401757090445662983357972290478144120546187024287651469250424611280402479786460152782019933163911122922763014585250530386167705376548861045384261754519581182780026245496278178833436801892440497519907037882903164243610978716486003399673178394481316159461388936460987070814694404049976241040177586410264912901973500668412575645222161302517339684689666157687578211156869781205545318396819977036141480230276519877225053645395242053037870364708571869782789147348268388233786652313056826869681818583112643664215991786035371681298720469007599481537909481013449552973220384050908413171553476608235865671410540224686485641080430897659222707126700160048999748716062070164225697682516222426969452770231166468445710307320089650581722042486677937593513878822171686420649923692321344234139467475143420695772282277230041615836126673124878232828041389163765910184360202671183868320591290508424296535246110392262663651902547415944841315259414385395131740581624532451170799479996220781427032320432682647803618966250231496746829207410428161010663194805752487094163783051763326039525815960777602621071184086828414492781321197448939530926447193806337754338420413823346183675558412896112461347999892010525719640166753289283279260309304066124547145824224707918830605245936062300759223719385937296496676405323953742514680550559680239973458915107235818820517194631018024366110370197120320107493746028899204903110979257838992656845046999679822006570915029706546436523136390143528323989365935193738659204305058390586468253145256138311749489334596210112086651473612445695532927915220333654256372753880198240245288048139153524214555362438213749773193527528814316815466297990416769133185787151111816416771852523738086578366610395036965707431318111954883146659128997047136531902998679251923053686244100941636244974760216226960815215622555575239711928827177164135896343950334247114787731756518287654651710738351605084347540806077162275082503203374441581141753740421789790119775391805864627413647726665165735477829393317510446377947881619156213882156362570359359935344512057147418455560305908059964771775877143460763412216305950168837878060875388823536472080718284206507296517859340049603711256191915704832784478720144815359513383255622064992580250410959441885347290654914609158869111851812657263113169516172637230834727028790595994488632691190090108690612028245623290625437940854995939114428065159103798127158046018454265001573688829698289595417149701389060439810073137389470537922425948910271591045656005255285906286161875694304792085782660365591903166626669068090648774046000755475141296804851557438837594696058015430553619861254899019151744555707785695208916771273102667098051285636995219598222597349921380435240933748013150272416097682614628723209584464939865641744456032882587309712195304811581495340832080744649019227144875974362151435449134826553042228683668583349075085872463483837255616159371798425852511065356445036012730718292446670818500783701618186807399247891278453716229363938307049163879295970626560524632426316860427881295902322672802341927613836433663608578351524638966068184488705636493959674757360033211755518280431823713244362897657846837398911705785024555315605827831697945068969001667121033907663231867357165535753080384181405929024760855207932728640439166105804909746808837253422782235456125540826715402834305159194513499690824783090766182295485093758178826319827218492164791925721415116638354452495707732111364730960279477518493273407135124568406301176162827834832568324289457575728273418669974798569589787585804022405251162587452803430625570146912635196649564705040668227229888152827963379173759842727334288211477789250545027476480939115869976871295861351413945478424816979901010207998420679933393922365164204112748252232801553174637676879934045244346710061834716760346340682547268658648402006650822956084890139660345786748247594068998921592361973526394501995668573053591553871315248610005591953296541419722614389910053377751684588121947665182796827458487938794563797604584470763886664635817848874869181160910713912026971558358979436775103800404135006309105708308439406733139950411989532535311029016976091082942129693262176746200012662669702906774897363913140580349203980395574392509487567930971113572974698667585965082329438683552849361851249668483419574775022468117429065446232678665641409232298165029760744267969514701920827158833692786303817624494933444860916158815675835888127450472103531257935702402883297377017695098270443389676889811587999064199130257266672810604520914816920278557057144072161888829602655081754027620582971473105179473620901823674542898319594093832220638570240902742108618929774335207130340555772352741005320323105138550551251466515733107002789058991187348604669621942162249910237275931041967770294659403587462896123041897483687360258881260330123912709206729668736406619973279397227232222272964549252949891292589236315850003557881993509367099107040328061954730065275081652978571569184328302734288184931405443939671467432014033291929124257983169447646488506949435661321752876094351215145092135134424044679232401640977198910204364951441006439160068900603520386236187430223966623491421677679517847708202326644526145604175091411854560244200857589721491142900568600994919694002871751209565310532596308633205550290473547886746868592959283951493003331260478780704171666791004272189391804222219397417733215806810199816413482102782129504728541540635164355442191427111503972773436698352971641625348242258407044308033653679247540978085940846072804731325212717369000009467306034439489881084212804389596098203304971567241281825577789720855759097003452341026087227326368715219764061946096651355469957522337700986073187777892087201749447280412097162609570846631416909708700900431901537939433769979854286439229120881347007420913790599430602824251396738893289767250669053336804016758858810212999602231887414681956077874952773108140134745632743343412632693706171127112893521136224276320367261885420656036615026151693456485898299816206470244489757880350718758613164603059352968587430032394779842727771392508690906733428089155451903773549799867111026269902942091403403298408029940015843063475073402026446800561949152324870322211177117346305047754520793231510769235770357562982962976671588948711537352582368369865683167599644273187444814591174377568848445385870825865710967091057150724179323413637853118898806696695786159145963810391748333557194179671063580924675554194629904254975190512613860605084631272665098661876857482115901450769254501637316766267011604947959686395188175419141361887649236008503399514583407437557731229203109457789905957491663465328380192811687557169962444343639417861866866794794142607579615796938576678644272701253387261286395767046821649450151528968618877664708031070740922684995844655293012617461931245018933608624461914290386652047086676284357799555363252347472685895887865985765403988374055814408304187010365136506799429510840230339143412074553910171559360676188556851403866017057376569238497415546678413810122957311804160130326699826135974913814668551476486682098520212378338234153096038684840281636309349859898854142040549988984065196786580435157157264817138876637816045961675538233163501532813332636411113239160203802736730124567892534519651207676610768769686480975896131649914377601548367873961397065175076839003405260154489660522012090796265980288526438648039246477105513778941452129737432580031104957732996764692936038815851303680681542772833370863045595691402869162853744990277631344176077769933498922165894652657029620963471704793679660985532839978030411021270721687192774394852783561010901528555740614221838676853192786792275774212367435212141840402298106161616903229278541971799425485212863922703178753769553768121887046949738825665966904949615484080974334516745906605148027673589000931668097056465579299580654030060064475166078988004375010849523782876993422198498576572121182900323318007685104762798280520084780473791942973697413559394330794579630461647894781224230139075149048226610269009823426118983764945174958391373837482331363628470385103362816787185566745759027083540322914467276347890868911583976686833598583247938247995466206833221010394978573998747822258759719660870380741239143972950215157677316637239072561860636716238110768995680530273179402342028812833905911946082881607484282510646287952131049243395986185489975187316363251383158188961933694423649858606418748181029642479102800649564136107157678217924507151557424781773512411455286603025268580111587651588392209792889040086313386912852438921300679924171566964677758481349489513314116220806826901548599438596987008506745221115230487117392459204642619007581598518533689311471737230020949699667389118468802507336858275688263641248191026746966128275904662942533190369537098697626625492013987480487497971995881591179270009795957622224913941008934531985168575332250765706655065848221927933969571282643909183507711216792006947454629168312323253711732748484398524723329738050799431557062292493775273223250555200240276580534686032459021815356925238880864795738687475612692926030362382174469327613661004973411761145584698245555222537088441657745412874555036938715355050931773556084131634509370523672505480900544486537420101657281780598357120108337561748146312540245051581115546412084622407728619095212853867783894550222339302923103410110300217466505504490666908888691140022143425338382467350684230501174366479404205172729185125223836082213479366765854831865693487757761583374256455935672596637242985514094834866273762634982318838999799377534137023908708574604552229607499205294521331432709791681951062060375223289568021839044710040440917901032426634844681211921379961989579446099356489924371316640832098804717502864818708508452041961967772365242252116040165469151466321247329319155059530230805119308068896866775381743177738143870498613322553674410912576613218004852670989623600052412273968230514741838479000778798896566255545508191686526968120447789425611466825107740580430227552438239113104352260000310624517604667100064521505936739489958262850327144495482974469474004655522289218656849000241479854340273445991859426781882496963240259786742984007549856525479009491989970899294480648200460529396112367607956950031112171483122226506672187318890406614427689615411566949489168295973264382133818248745309799210600673110484099095597734181648984305081586891313922274007656458300102890599074273573299764637912978522241645018387431843330423370042701450935212055756254075576476109951283391491979240769205310611402551861819038363077090594381475595808941199094998059579709483367196352676396428170716102422811104091042717023816406490026203596577283732769450344213102015156759419685947261094061047653117824161982452817338639675136339978434434378761010849393578806885952330610503117250401930482888033205097316373794930277471510928984557721167805380468024656600123967881728623386075772764545213073309979504087439250840598575952636922958032891101329181025062647786797718219550884400165687909464738365786830327271755648893659355970658660241424571229527323594346613229616558594811105009123669213463915608087639047185335693271260445117961728056854105266849436612020592123705417573440635934333201207831399545365575738865368323983806706248016639293481785186948807600266110963705438749605068394540734684911035130450147754013202324257733998585015034251770245368142195548900031150659445633645708207416578286631221845908709393414836648561134813134652861151524596170028950313352460900890368450672967735571147272779396946702623874073201135383947609432389237173857695977886753243190202421735479522311586290198974028653762016493040569592223621347278023572160580776641853310067625397030700911528534093434451346396861052160176844953769993893981315644879865133092399589800330170032917474009906928939407727839311700884078109901098086061576939296524526101375275133173484367375521831707877070327957006304879176300117367435678219688510195705533693834368521250252680010866073181311966418479873581673625199403329067025662582446923625059721973639346070481704434594286682270966055765200673906426554231205456682658571653394997089074943571097633537511638968183960875495288551328534831834060989212447477753448895836474841655004110087144209218560065646410430913213906222088490566071331088498870983879690282688688596459229871321973005223579161219863623692089952362222775452256873989233196468387072933547421567189116749886301288718056932104175332376991225203282504127572277418299610270993949447121287496931788483244559858522836673525918246291266382308069628769913897591284339588515089379521412851752303224039946787366505515192182453634871649339347751260570435282276628262022831280246589009716464319647739628351533740734429589832176727150471700311665866611856797234856487843779128997791566055112763017041443441773215981998305601596093922816993699918380701543589646889208922689977189001307977167289131180434393666485620378213042357685543571157862605456142801800881379762504415631010635566799230960110371447738406254884087667341844856087454437078704211839719299195745744801769724114492457669585816264551389226288597562380190280432445873738468488081043314420375144243058006327454711232803762382032344540400459059982181954386255474551453291477547407177534971748707830821042368318863880521814714816061806142739658311378536322996127846211274963976555755568119767635690547756379167585914563932450563162164800001805424436004677016413933662349401931494099251457307316223514621114385714778268833454449903637018313921881598073209695798367994537587289411614706874167361183377978524137871036962766893194937468703820659305646648647472246418225119966883185496313120107285794458107158249649110487392713070990764143859919349026622099678269806982154440651264808307953323206888547319447960691701272092672214130867193008855899578746335009331056126330588703942221012913201060500703413766259724396066505236558827124536040479561015636152314767443454786230686883621901740116689614664391405018595201839661083449753244920857687967159514770395063435100379494921940159378479743070981205312870251337382076934829415842376208316335392491398057682835644765840542679746629014076146047267070129997013585234473651117693717322173691417400050214655402556514207023415916947285421463843700631954786794950563899068172456094986441498202070584912234657527046985774227058501020088905119110484715562142476135873580797158538841102941784966456829822653355207682891588267300460854048685348641779726882947739944235140429266650090588434930411765756991905294825261567781126956494212010989724221444165323654272091589117247777850290361577238601210719543430814468161753105917727865416878596044048982536737989834614571727094914588824920549632362770855735070429617744542338958086667807252912811936490996488317402205463119293802883545548554896133633879287934298895644614131376087868280784752533430508289093860443916074964791484311202977528823313917632836920475083531091949035924355391999255928629971453451474111538440071384120960629117287968656098889383275861924943563431160210224151312032901092741577951537192665553706564421042660563192370362245397358348613392631238548844385672331336269341665029066241786198090219257377551235633095664985890581821505966589954055487310099441795418259775689450750406395822261892834579378623116939629815008094101473675029627973329048553939469042003347360721947730371469724319119070827617250981492645747571501397426008319553174817912146559429444364738201336362084699510730019550084850954873816652506712519707185627536204849766634576213952520642246473383407071539754466479563482576082722584794054765725983919395655493682998884125570522558280163672999014106695797815807277903627997229832704807414731889152242246408383678108325488412922669074468182549893104897100137044742474559905964626877767071942104081512668164554400875242976748554067149594941420743510066987521354947160370696878486600707614204287843488972734217392508994373897442517781659678168532378613526499911639758320979322748716783450304827597754513838310925749408136262995670309574491590242772999008092551901696140720504979458921781293847895678043011559421995301492413593234704192355467909040224584090006680012671897126945645574006894741297881204245150779043563346691556009134892358780246211824162278997613392467523241812523380594327712748849973863488509873450502770890452760023011515491536450752672446132389957601028886551941447875420160471496329366370501140780765179951351001660974696350862261031328806699548291740041341610446772518746973542176741349616890846871308426244824479425622129478430767869440980511861662274066407543647233230923236805698870494843056469761131557762616856723154157971486276414887072467812083495648459585658340649267272611879864444257414159717342303429771997633001745560087127260407306391626313796310528903683187993960982966356425605006293736530390918577059469274441922393351990090991251822074409515213577772679504348821089661862163399719341493524407061930529647676793117420745728815615804145283588411400114883000981756028291844519203996534920708367562063477445470770341413353026558286762832945852545976249686535261011028680437305550857708346579447579881263153705179298376042963002866426299143040394558870944427039779671275421666388249068976358873709500964176838141299010810638915213337153547771825894578273526115463186354465655446535695387956626745678911113791523935894506471217144567828059202695681802767167792427596481314442674772609959183910013438120989619868724870280798469548363832897105629910233408952676710061491133481597669827479375968312007251281104427441705233778876016444757130533195548696388303373493171746066856839486003571687790761161134232775416951407238210854552672644791868017043872358488129338823540707660544020817131385877608092269977609871235970595817117905103713905767571299622509257038229989348744770402076642054599750851117416102950804258366302343815403512934055781854787625426713298534815984270315079960969536584346694949859119106611414151808601670427508268554047912755304685881627411780017147169039624465117038382432327900437529521261601871791792228454312491507537450006766113624360414887321695183831327406737054291259482334837037792529018274366871134771079937470691705623418688458642382630751062708207802849127865441317957448186481529479181429589447893957285406017749431605223251979621899945653479785885293596791682996661928703336188080890570309015242951308161507526615924814482128265693154889790218577418760536822148688130158470200571517370773367450786943534197572018209697568953278700615224914902599522417861224026708090310949021133475060996411475105519774903361410129154795552607694742895103633590755865983499453785442179087654735980912163097803237443999155522748758576725961368758354214993652850629575758968598072658376631638948835507321247523864311580683817136951633819409825843913766987365204775201042550335698515817465708011910627802993460537466519131015122800922912306174881979407913276863941657707249760841839611244078002125046204714753406533478644212702405482332528235803274027755895216753278928855454792494781077156707618492292929162221497915666959703506194903322853337297224480226424205905815857598455494520979522869313866845081753891962039752705060401577562405741371806937421868788999721868238835404881023606023027401689815701205065136853335144898768499146965823660499044051088105185054931212848341576975791742708811860033553146632550720643331286566093451726867280283396012340677699718490596360106218625690213495493971337359242545178394278666276521699441295400527801132885126668488438446698606623350336300480868740341899825970988492423650532170504726723061101195833808001804612754698519015213522964245189609927889585082848836749928425666358931794947934207603617159025573689385222051211530187650701258779224742702638277654332942447825221455590450976749229781835117451142092353722021100393472434030284995348835330877649711067156903774423800863167253777372033246700628814711334037274683123782583787381897058172255156133091863755347634688060965739372015772348815542679927537492634339080349714696307961604658735101152171516462284802130285774328825040506853122061450874825086500045582508216754784636468403000766799927566443202580612715901366291667284632853160789402165152365921556635510918556822870442090763035171295094137890816595422855969089021849290973114672797739204355074771780952714077391531187636843266980715920806821557328575801695835647637435553611662756368496562936476521895644142856746990107956144095486666927449538003036362276839155797022138333478506201508733736225227367155199461158179311690851549472037596375884785088718581289822403188820541644361126487350642442411779818973774265047079373855159979385358920324381399826836025519249880821494050425585864723987294830335310634699870193508169923196418954603963599492040181832803682287234133200496225457589967415173837551226746443508658615138673453396883627528208777133333830847361565049371657177432632340670331456351664307925497848343228268820023423067343282260739744480293755297706238902385368842426258013482277050223834912043331497283998679792459733483970170492643537397466346493207383134229201193119378375082878435712484203463053689086211349671073321300330786359439966956190457642903307317105721170580267742102610736722946873740332519725201641681287704518412192789102285558911864305375859769780950059355044913600715142272633257854357456770330284734548749429720402458626541052289258557051011584921023889491317659883934034565210800502886846106781484471841741939773474767851530250471244221304917303676032986331102181882169967390513885086724149122988329548923448911600106660145452553677900710577115555302880269903510365820742555342290196169701478824759756987543369152618701759218661214137445566835678055708525240970708228706777831442702195575089426300900973394717296984846694048845476538482407328114468076876624586213580431210422229082615822236025325407075896035110901643177997752412126290505992936261791176431063076476194319032335990887668974019813147518437392131156608696845602965344120525699321918416845746611012631724579622462898838114481566541738450952941391510278437260218015343239335258083352229493174599494532163966000900368578586895030001522697637604716742592609793111587540412953527025720895643076477712402912384379573053910877388637082070911330400074879761702873019874233441383097275136840233986735787809146635340588240099627732185983255549803477682630601635165555629106178747538495697781311301021712651897604946039473552817001508905738476909804539002882304634047873049248483513693918692039916780859505175265649343724029124822121570797123673333057213740296746988172897099844057021436762133578290802940685831501624950926778235148045616184117604077724130402664205165714561236998761741939116653357369069523756796767633546976724823890920897924808100517826960790203587631934566667257287390475651619780290409291540338324639818233799932456821221854200433281520677895901317660986816003080826970016996785519667061970575650224270398156027636896832739681583366087776003581561968451790346764484558130314617771996561273235654829761224029768979501721922422719131543230070027148612213323049729610521424066840436851308037349796258341378632050550400216011980492919662346323989393333117051690361834887739507489100613537386596726762398253632611362007091156738129261025824070045202469510440987852109335477919296512866018826423258175006936871998730658348408413071673471217539593440567165545569226730609354889754626955025202869454972273265240642794344091148115920393907785647462665148743295619078562444046075271147612131214921507852177719764890534469882590654364257344720831604807492118599964445256908308460204979217867785552092886210133990810945431150978214658202151651964582605563248792486654745701664342110898289017616976261462392311685194746190796755294726716395881903560840426983936344012074171735462631037936054307070057317181041860274488069859016896567413661415902775762409459197136906135991823760467223502092372739240201053618927195833299025474199038516378674897009246157220027978198601426407006163529264523659109811500039253434891138583435152213642069981314296202072267532854344337103134250829762316559000176728809561034838125625771877271560022275764535026967265128731652715355070619909936587946285199264377287467077399262952117751843351749329150203370219544033370765071154029449285018609416312432615906566918980302532236615098742281488501497758009317513118978176287419978067792629199821505997983841646696855341188988450745244003843508904885657225357270755915609902103194628633951857056049364444495226057778863223983610473613936968298423546250774403395124623755326280776406492069827668019581514774107160104049370782491833555932986208556673953504601791676298616739940533915683138445242400559976259568703172591353971715250184222036396845674301908989000151372266540359064429643892957163473617300895471930963312718057900714312342835283530430446786100820234957390602581984226956075024080894106388916054330934062323761118871245964118766827888523235581458847088364204691822390094274615098707427922401812052855289928743973356842204373484132285527299309086438615432811919521980159838157119382479714423368449832180538912512949339579174903315294399064810751484299541951368882243786006115892451420634635356121045510255536501494900291357883799415445736082918402770211362707958372227636214335313069883553400232866465224343876464179376108284134160121957834009423237113052611695222007488066294597333055883568499503251424311010971007235027749767927964551561312439869337340045751014536999603529085788126494511133510329330397417399944928546465537387838156642415182706219199784061960937627553888239318447655842469330980914909751080302599324752727824462726138960994999887307881610829064314356144636062675376279470745702772111634039137388486590256791379360015501828995959310663135921281346778701543883233915479822689886267005791023321305776498050394972760538094884696061837811432012560763321437199257391316834829627159655446400728186554029174017762394968351361434761682074632754822732237462011611027719190083313207727091653780808539453444313360987654360920663825333306512709777877878459229251817420491698974506167074607381120405776291086168850906298150083767101772681002303318569585948600827017633483851497866077777785637911080214172223115186771895101140504327573659179346304068876058893798515950215743749399229786185808870677063418754535466066973207236917059040149042940072163092447688470481678043137509886752664339896265312177517281681519111412336054411107086680403863803232705332095128295041815549791474862211511262275140511041339448246741753554036767672718232808336462837444685577978342361215571092564667737915150921532554467815190766384586321201445118616030594734572360506550814031848116984908638219008003108228925406937565514476299850426567653518841026863736856002505242764392514957432212430693626369116386070304031143646911314740277302200297096475737327762303564974623662437763772423362850056701131130528039374199817832687528664033188844113799448671291849523424371150380138475406785780423653525339490959873024171163163608948295365984039676113889832261554564410432981888471036123826022007155181442273327216698025792961727142974959338485880756952375551596203293471305841804347457820531640264662999629190826334589245865364222196756854284618383081268810457078937689515571999129610437405664605352596315185592109151127606041995808492886943903415333494899447169215141168120958265117309115831182992845388780556005229527258708414650788938199432121766155314461354783791989638870089522981485714038720427398215286832877163074156858775096525540300886947787102104596312011447769010320431598481542842215351154864681795262207708325750759139071718705222628363390834251589216636799754210063984942395253466287053527428341205749229509693347461215894844153642147044848766733986003949989594180151594717168266174531959134715887129060499928555880301404342563902080243141948278756319164051203144521040264240383927723941868919412133805959105078331146299399356996847078288526860576950148874789474379016835284915943937229770126320931129778367666098536935272520796544478493331954579242607729605345905428637265388301427478027657536753631499178301080525842808871391514416056734300718227037335802436658153775248061448745328185883346506535533533014450378484710165443510996932523395694198492300710560929679270686695974981176297530645266671923323933251578224569310699804654544921418492336864851126176451048160476917457811674889232369836099908163006099966190302557824892426418402137658207002166219250508614811479854007486513777498564871101569973234978645112604037692930197254983984014804285100867253198569841932042630703731546131727473061646396009109538515551051902237143191443408421952625530311239728561764620504464617887279987041127784512752501390149159803116035514220393051284259404255789739761082680945520894841217195883903934063622792990141995450820433358553744302518379875764122090632140293078767752062877612780117042894642396644538741533700242555172499128535817258679032048028726478646286313186462484376476117906438627438799094475082581720609965732800023601831639518501574351345197188103480119960056694515839631239146668417290611481545905241768832725927639998551147578217900916465344479836073643817390855155890741549255048469239593275024317216324616670044277896024877720728059548829526222993437967288856372481009246366616876701676852373617468047913791518117619137985659030925357852923997505073949843312188993171336703944567684366700820767020154827711235258806482007039152122769473415350337236178461903563770025998607412387840171038000325214047118375393823762169511904749869682720921026842221640546937745279816687666358739085683896913211792131865196835351909590550022788041929183593826859183153306106415332271584977882358598281473401273811978375687693542598674922178568909105147854501663144000569696118650383226077996201167029640441928368018181477758851028243394749288260758943014459332496992381448848805243531524812699229741573289406348543171588081185203308266192124867473931697941698319066417505336938825930641187212931053087188077885665900547235082862582898922940455935890178301958406850383210317958220781623733587382548538577873462826948781328289220652185683540953863531972789599251614092640425078959737331484103480687026369082304043865440567911377265345906616526629323518687062447442673041706527055393395909877620984401690050086388502562302900674721019652445427779896701623158405274556573111900195264298090217709985024008188629059275190637336465117134390387856783425359632012181977144810891129435515651123312696640924734901175371123028477242546884903558234969408858273394654091636247634850470340465612443818895462464047772598565293827270878030263692205264792758164181964136563980566035411498081862923384009451329932336583128881512333732930393566227113486512010173038269868421478469460992911393423480668500450121087142387272222660555193296217128113459877077908452979726330111915306719720101025484301478675897582285008936305766998774822050723683621544912563942597181092474947068695065836381505205561941052925443226690770580202175122930130356440993419514728102114080197232035218552999637977851625177262722496612713680767978137260645937505229864434706689679271273018067175908194274635236609173453418860714046608465648356006074527946051846919914577623196158531884735789769379904292224411545465732083226471705558328563493658163286178434850258869302005234134676287793867506345379576939875305540996084186821384242524174840018192789531625819960262790611339555940179819306587425267248269118334744337671172123686592476942103837330755673606935430212422209588583549853204306574506393434848464708911313881339593282026191230931061399164558703582224608388193173134012087787979582634507009909317582582887313104084867028072733441655791293056072888435209203191259680333352802145770049072676341935873239435735086872154852353825703434127957903045952933610761964427182877112248801663541768657890076793070109525601723224963806818941518007451110943347878562869652997756065106906193933389249176186705056823781343608324610367025740807192609667147892611460180657675880730979530912771206604211865303743354013451806462564974207314012134149568753814266825638819692089467747530628081702654741631904061134226654284265182236944606866203602576724642146408642775225785935755025682698117343500182630327199862023670053468803650966850690498132290607253082997997391775479527362359618101365047261378464597450292464375462899094060774162020454718808756756652093840069619605652241628736765074724553184507370452563987604284248255846488924786549658149328610400203186990129457138295380989220704603596730221853266001489456324789984308131971603325589864449477443732286372308101338000597707469980310083354015179089255495354481916089048703508689149573977588731712841063117775668139478351325233987297038275855836154853636375282380613386961127199673407186608550185931036789279435518862722343097425278775362385510646428260151460064247901913345518565543681264610031543334352145257828692138314474248358030474090031578706880684335435674592387522831892702744442635350623632819955913613490451915319597256966997057031903064905140563072173131475576206666855540202820672265421956455149788854492806180728381389892423031733265178501620243248647598944677446266325729465962743314013442839077712090397257336602309823896776299440145930763992476466544911732483822969081092921721209668814429840804857303862757565903318174848326883270605870168308688625179425994505300357758921253617021864394417193367954417265569099739777153065592208249577534066660998449806887550385809294269015420413422159595436680608048010004362856372849460177182327617794869133728547887823120539482386471287672551268777494021345741204034172806506828559342880428956723718584389998254640895280662194922018086064725355934250584156538228836841727885374851111924554629900904617381229407548981084968405581410445859283250349845777354766335787368454076374547249094923569137324755007460186324282349993537932878023284489986082541725820762254908700376423888200522944792664214778827144654806205775743967007247923863700893453374994406837361436579220725137441447905575387770793340917831234813249178776755521435030191905509108200623116173126266235960092199359728117323214411591061873261188878093722158374390585004115001144265017813603107136645207252575626327361495626772464059129772871574573481606500092895032540461867951935114425082302564396657202537016765031827018405698431434003295298192078483122935493670019516136343273989301158167313364891781925002662640741689818623162211126822693646596841194081208034820155886054717722157683544350375268965830354198364081403423530002448504595889774219799637869341747092184201243218105461783873506160608060391302026264059868500428980347204315273966411853743907102902604644034058147425213331991912854967556854080449928174333971817157431177641913469279889086779920704801813060395820999160373309768959714874180560625225116009542033213397067659148151175253860432610392378040413185113793155637923558348341932643216043370137196821969997446468681731847161484888664565321927847985609465449153057793808039485209905545042080639983972274495575976060407685432533156628971771801812660333359356656876857623136485405836055112834660289657738408950197257462669760066327622623832009483747202552978275021935922392958755332153920203188133346783552793987805190192410887945190726345355680261740192862176426348603799535343720406251200031491157352612031711330976832560201641795038230149720919865782644920706720589652865085091138927549917753994690293424383349515745005077198564067695155415484418482688015938289197005610113469612096610102855424721037117235861064309454367852443849626824306997797126372696763308995391428480157803142606578851745125169351902373675858400989210646611323094595073293199439987382907505592690063530558524590686457507103511713688549811366206371028084959731606112146166101484698268414278473104581087786688687986035470708226846254774950696885391628760975643220612955671080428545014155298712863359425591324627395560764191960379718624436145012436281047433953820689939327247443884014300165948956678861436138737670251270483276196909633641014463083791578580991680389717862329792198827833831743787795237454969860557097068506496762812805425920907520417850638782334282656097185939091979831155574213449702255260181016211451426488725523397040357556782367659074986275901033639585972875789647408696261118204562437078651375392376593736006953031074839773902642459870969180471741603009997069388103852901500228084592169455134464513144418628229271003403177995281523478355337510964585517215159546665021582821050305281784212136041861904826575218700125839695134289450142717202849841989417606816365573752986690387562411597207350975699467798235573021557170159624489153335050664579469905407827689925323731386056802023068327576347061492633255175883010979386328013201528460945816062958479556882734019811276144016647776024871942163766508145522978171291154293330667338395947783375447109480757728234694338181973809487755586736242022253447797776647581433657127458487228608116664186589850996138365527366925384283011242398348039481745878879298573961244234310607687332986121077839948217873640607616192714822807496976185394535258791770759717623862603539050919181655503895492767768908020804871600093706107538692893005483413454991826011234616163612666714446807782367956798222513992129634715390680997653308579605152065036560789853459643743565154101505768513944871316256853781401204256264232599608300463610551679582434919274107620681735728956656038065941929698772367435625582086915529509976646264532678957157922497277304848263214418816630968331107758019405218366152030541222634004621294149392993791220697723570085276092905578216853821960028821234366831858499632724883770992329653452578766001639789434897274252536057718817500238665435041634961768828337196539771326336290936153696164541480756147478116523336626052873847968136358454536450504999833090301248540944486291415314280148161352275844978119651137878143002434636965275301842880801446056963806015208965509518266219152820110422913342997505112013853651499053363091740989485674223420306659266853860309432669221986254913487606166067466364040168258478961010867840287367118401584576916359137775580003117284008652136350459717651489547235955304099671725084176640689653247377163235750127619280150710342600468475251777656624573868117875233384268995728502947983716396442962866489305454780956660928906562573411480162850316924018654466401520550406604500537891809295568338774221575452915566432194987381112209701561797569610411553373907993105611116798882928700112628885358188649254912222815351788445247123762450668306253712562257743649988141906717154207203586617196471145233143672085053023913566470105685572354146009486816699649249436111415455974146062398700593158595116088419022574901778867500088666618376737305401174903005416923545350099450084058991709060509620227614972898840634412262291723364532871576295353147140871538495940435079587478570019684142983453022005505002058524224890122707075024071749516423318177358859216235434901078204270235237271282425067973592058895015960777352094445943725406333591624464355263359675738190649871214574098719387810368004682918494417605521005346673808731847577249374200444393714294579668520574158728804366301567349437732863228225614790498124469404618552068532006916054213423091450432846193735359166158819202760918743362360425529411059178691584168043425460185181539532937321467529394537035221547870072995634462796955288252108870373436503454941038381607634018305438491512229611249184707530460065873372827457213427592941541759037167073121843678451810245410099905178565983233947105328924931899630664229836965447005825836174518716933668234262073644784979705806135318780927288033612049068369112424076248002184313045514820357373611460688276499340458920105812626990111934026757335817868465859130067784571676767545971111420516537174558184161011482286333596728443144988995382189094374139186228917865083464236662094265233177194552723282380503990304195228077175291599671511483197854035897962528509390099700024376698467885892826027601917568932777159027123389960587081114526848263121661943803296548306130982711964107362117818135594229534875585374449065741679066364332369587863116762301681564913491538343875092596649190334132390621917704383305540245413897540380085198123557382586433980515192879711201055754233904599808733581567844759566922299528152971115408992728169512205118972485059728189763639078354240933020356146587283712741380676868198038212825067923521692324195755916856405137123701104625580539747318783144958267618719575602447087292698350083281294060709664778090059237539004243134508254946587084687504057677374426626899918121312660540302187327677797108851200716878923122763066725815852168839402139253785726014056906134535710381590763098673709272953139425708498870933314325374663301434434037467609743621487098760995519636889721233434896803281730676879249856785643496608782609142560983637509929701978858659668609474484221282768118502741014216143296528469294354311948870566972799237876247892537095374073324131621211867774693555343093250495792507564783786814437439715112211052732166630980028160765688539579855311309860843966864299082037363187601347396896382208751874652240553571867529738399347946613943244509120682766067543753267002846400627725682573521700268525376391887092405269235066693068069720821705635162746547781223052391421640483116686822145634992550154420769744805144749798582312550586395830401546060198201274090309197910727023727822533329850362745214676309320783314417953957227890584114684361160648856946657247460207920531606035885845972952810994755958732820166147978493925997480839851776924739149801232449576411377881480176674527431767866250467122931633521231976681869981438344649539767078436014356433093925557742515742493505399843728486758947212925602100978849035855581802480258545715070869711925485118645362848063302457040018815298007462507575645086337524347153822782432419802704125424738384444273315224753374727925694506476701949986082820585059644984662246091940192070923226040502991719740507086106378750273337209923535279135859668339864005424864897164431135629896708435136072356983704969057992021443056371254750110312121190230249940574016527065253489947688148172588711863507941984044713511287783547148430917211172688711434303280341492542652494172520348344310731335262666688060747153112468697111102022008573732666350069575823237361482785918772961336917860065312438102470026994541677148306696459539355595241170468931571840735988163251253430597940972409926536680204904798216674035359582837681547108297416174996431641971300346726089054869418250637675716864952181944229655583577644154316043066616829960810983419800388676723624548496025291681455100145919840350524880609478017116054715525093647586613579487790771780751766254006215961588421820203128508458137771857482256353931600237990083902864539735595769207367647011376690775055764327400216900197005429062100523175142740157740577002989051388522217623863366200395560209102910217327556132242957520510393494483541670453825997121095872559587080205782875546412534793620675787144700358572255279621126835189542971143495935324080758798159486778842724307329537346546520661224796030533836308005760510792434630081268853831461966182227417350439136180278598707132183762247460187290062345319832631257552698617631933948390955377021728963083010832864541489879143709165776968414203089195819528831454165303735550631022228769156878608356282670254387161222935811868133266475223686414090938453915726877554954278242971965929957492474102702288507479251588639988257624727297218060631496205664988392664799403239074187315595018103505902682150811670028686517501067392713022682142103708397624401522893181835208502027473506163579205431472173064058975792692253821319453331638906430122685388007866187935108367869063550464277067049158703649390059897481264111010558410858833542910727193069878828288158565140565240029025938226912994397025443968569405909202154131232157928868574609331200376566849388011339083160546771141383295768392345353196665658510159670495857925887852595551786227952974292030137373494873370977872150653256369514289511363586644358070189754117085458107270522898594177528546372909998241961296429301258318444314054482526727120733780267130962407102874031537343865301503946237611377623827063542136579551520976067843697903755983192411555941216757994670457416080230708684334917600103788413060476114390770786520596369259240755001983897520134844862898310940954381472750422880746101599672623935937191209782651464000035877924674394326936044622508937629009234390451585056293383210405915373730412847841962876022124472338147198113746063465403377173911630380832245025568469576820895245200814797425722202128057516802270998821164511710610273225749478187859124596788284355133234316871702622083361396079064799722877520388097792573165989126875331193035964217099213529747312863605634990655083505933306736449987534626598008736751305021965667334952634055622140473458885515982968905402684154701795626507476224884352315912217875486527033170034212122771751890197376106913056864118923952462949617774853852000668058917801277204696488783552358952319696567059047485809512690463940537602678013919471900067799356510953967972669686083142060737829310665336929338649580956580762053498132048022453378023273325176306791124378230343061634165733106393755714749647796642439044955693953904962513524527610459907836699205810721005680422547135718133911769906067304814317141631195077030198530838387930638159852351159999184123661125051513423226976968971424428991412415601283230908235029465227331862783529847969929428217515271716583337069209178516716533116177157135021588060276288767357995086040322662928344453480832353861988595041993263647676741901134671416261851095479813919608517789429452329551804543182364784128626874585284554936017043919050477111985816577087048669915451099669666252990737500134381027754966651368455405342873016559880374877835925849761415828803645292616799553655576859383838329050187812197403940305565281284956339464623364574080889764105823279235742953735559864285908437976917831422128753548148889364196690445775874773411992993373134021302597192457740886482948308616657539025311230714365111938658104637685834040109544028940010694199312154211576674196857324822858675616520836027718773283861402161384369112689834911608283871195592875873054021406112664120227526451834387081360721861901469415160704509572129456695013788749401157305019177464904963903393624633994815481902269978934960437619397288811568153231083234539959220797598789984829626082835907621159950720360667784280889262479913172098958056658814073424371143287893345527585601001704660789828662960005685479125825931493787092161356160818863885971349895087419144021923103682867693934163465016278820475210860053499970048453805518938159396680202816107385931858405704877420688992538713615031353858983107814098977005865054805549816845668358998024905414561804602331477365742983603474552918562871306518398872953594178109964803981789633794284470025631055148708219263586617840336507755764188942783217849631335260137822795373371732200993204233395293033555953200095508253800394360276289123606275609260602177012160302344571982601170238987151988881988492043732163257771754166241010119323715339724114837865506841375985357633731677043499407932185308323625505104787084035514839814126967238707829722997831243484162168977106623723541510948402918205424707187701623467211553727610618199521920464780119800271639486345323672806691016544863853643080269961400598060318891899913816625113916252861511602168883569740029005590592795454737868521650700093084264789853038697516300729387262411585010094303995858640984188922728378605582001339978555596599066182722107959749610870203572250558114992624169879225384554512633584692289604102671294270652831458572775054666823889071820667927808064118661840038537343762077471333438514032819437972911993697362067282404360797340854054511457226468063598525739813093273036180292950252824546880391298243200717491479077177613518912324976771172592912374067936930337928033313411853345864473408635134554212854420919154007308703436121690901112282104820797372678601089798303117515555208314291031182158782981358260283564180742468469289443638046571525974782349297955163173671856413875103936810490770106576535296704060457990868527196041942392997293682941864729141143817916296825668460719578175795814274566608390340316119766705897829977254658913290764557106477203216030427163401619426014888725337167937194903583810488412737361112150511662754595581698686919465031753966156737076460491421619674394682578304348900301817903168148358976728318816580001032304992748476632057191926586584599728060435119300884377882669121776272340378147366797051305004256666491448830501746648887504092359650020346254918504480976963592905167764987393423275634405599996630593376025386618699641999782469427249848697186513520396904649039057282671981463031880321016764158137603833864739934940024021531819652900043088174330098236828331752874839205849649534011687818883123347678431014438336672460651335694175215819456786346100233476352468074186351218739261875229055003153866952100384129107110359333989676676378268837944297773366884662237393851117469281932662871354514622090278244849537137614645648097272411978359538413401365140321743263529987317977924326528170662980650448250982315232311651236865860560908847822490245140377617999049889392425485846765050739396125967528392989519177728033650913713780947019174268312628409164389725534141012175298054737060239905906522791231095289184002832871777661472445026367327658111100860879814987711017338200958046841768998267343469250938025619294530162136905529177036098771249737579290880028760828543317032457139897596982241516217381784567275031112489088040795142148430710400529884772108607150811957739656423480253133903848923591606638334741677305781502421486864682649650715964598912789328759089891854490617930373152352157102931924430220556908653494849572000154593639229704913705929273639718350389822550396232275616737914793207093588129561519452902963848434706998424299322588874918360612888883143864513982277338308491238044338685068224122447245540633039033012000895949764834904928208583025176668577523325915100430031528875152406214713562482494398605200340736522070780010244490817966931568825512513735393072227326409651624706133269996547295879603276457299655303447248026560645286428097320211660820447007719198620833483490062193470059321018441593126358379884595827353845296442150712264517067367789392437708968578747083476228125982308493762428521850286661569094790477753222434429240284920344074249307276373489132322894814370336417454992595091528616233990258108827054781719420992744859704466747688885242040612414560698882971635607208880283050517260548399584993202277062108425107839121613484517537542950836358794572423636475299562843347018265595539354223455516486000816273589994776965742344802313812176600002342635828327013686761245132820818142943694741354368295543326753052709054421134850376559869578596375049185648431878856032274196473300601811688230637724425893974217724935596768760631723949146251788389541646563995054178921675817793466374503835811847129657814387376349877909659470652085556027017668418347812639037626742202573057473620366087714683732494900129347151425038353524658813895291400349738430220641663386773338449548690203527689374183035643453449564490430941062583198664676372867421451975085282856967594572157461077058954677409098670719321145627910642329374888999082514014486479537377512660349203795726542200000296694529022072838553920975515710791178658494689602647185211213805117660298154564047836754452984080770509488970731621430644994663097008812849746876908461051923523327095434085173904628529309546539580888383563473497174557541921298537555027522565583583856950470351513696211147831226162682380714462082225106372167983494432300055224915019031019471710560212330291511953871308833325013912191231311779561315477677321161545950642574898376730639934047238930910314731823913809936794939325007328629166295891172355401324704785552865385080372239364338139835390782472339160201343550832754269092171784022903186000430320442417603573960787865971567173343583008821068730278877553340339478292109770550074899544571626566129156105145713586315867419108521784361030372351403402682694580195627526595778057018229672497903675549690812961632954605544263145811872431288187878045483925652668267629412815161829185426953932585179656845079934727249912289645607491761703792078813810880575766467654301563875049445591739021581864988520034528084875366638009612050570667134293870082747288460496673508730795574241392133335989850862432047446211329870678085694596597080994311804482791287374560109458284385322068296361951119999030690999982657022601097902602767487260798081583641909822533375128801585695945117637984753691177776619184064150320837598152657009448351410016492647590707355363308779378675479344790920112584075358861497191506939311950462643036515733413091834135982625131036139755683930344822266853771181761787837837469163992873839949855358152056547038086700858881418947078793227965640931200047739611292571796454742801106975892740059094595869648085766512130431723343079965877746759802484564664065001156718282768211009715320479848746355260223624582185745780109331455579095471508998977667566807859839752428700381671718341390559537359521287746756347671337171099012184058484749550757221526644879025738983214443030516373478012136467587323174310724500851781864566578886678499759890142954791639563919239679894916452744399849474536931374692354479118095568936724106334915301283425852629334450210228332638885136060019620943654979822794150962811992134126036129828651781505868434145257104516516563622291013613131498373649675820025885507255610510391899336670956232211358464797337742694719744803299028855344410897107214122247956318696512271416689455706558963259199253876594935490825869591056421851763996391890603654946767715535032092519150639904694763192719384937096403859083401816024773327453632319893953352898348309459095303864554334498634392842465671569570915959516187203695268293123086618766581215000213484311847676625542913675306586748815868275831256055466863140765777983362995322056588112999919576200912494402860210598154899728376881823491763224327633328567367405306675833018775042802793460765628064594737181584513008264735745958052314679485390128970441493926028054056167142599255511974942433311377100451249786347224008217822923104567868694158060327147583783039235044139202166875037346518060757469516087786681668099751399054368735616241413641401821148390665673661590917429843196210939659282869350917501640091843729808575355069095654033576806720664291885171088861440280797625130491847273875148686288765585597657308394848785834292797054706456950900619395827245915634829108203452149536027956034832327292239746014006863911683824354431953782507622997604936306733664772615154065165123570136325855922303543905796977951540861488659232707738124783302654112065508263736600987364562926734165361098148132800814060700980440584297319459355992301315369657673782495285344504103356465727509722765148801672670645822610318704737752204820651893592386220631232881850087577688006307949970778734396470075579555165841478085878754055079658542453252191694516555145882744716036787782233176354337207421730708308223584968223036269011410465348522825212983277455851607318724126270014399299458970989519424902228394699127918382820828786791371651139738355218885946167865244268379817708152805473581313877747290462760631344134625961755923197284281956900591673449429012044276199792506555473162316813564169797768805346749657867932423045887003150363152384337288664595745718898038463126739787692160763532987346413759533598621793876650603081867368124009372684722773119407496920507114202973666993539434950381822961628188635349100302438788626276081606410897903064390248115098947957712499420087394501160717150279829127656619089401372074440712411981356387818912321553531231080369150883730552344760988092039141590633139007084844333811429807999658980056830031457178827539254690892948464575668208761742122573131469952485094956442388382479256314765428503591538304102030112983459348785903224011942175460508352448484216084292469567723365414903501183493416932075170595820082132384118639587486697444732302315644605030150546212681729902297119190861006075011085212299694571626779051000921582098930791392011174911482622879148983043449874234685170564827049970132479574814217601445473285176887015070563918779617038266314346938019101892671512342699366409846744898876887724517843482615544702636286965895400689193342174287001764384163416890898911497976441694845040622630372841593910707622626835494013982138331241112374628644408351494176768480941169808540830493022231049228524537503349763654466336884686330260656123780505953161223199545335872814225291493868378404669659761681241225406855089678961968670783551765195962770426706173648278994792136209984372409847245348899269356137953197300852592757902628884840511451976642782321922466536103579641669553057414536535820946857539348636083364084113769308078712598137285621547144961614712882440047885944237285533565001392969655315888839942521497130097607697889414079911486579471961083701336730066534417214865201472684042129657098762590191324567505447309363801655816273573582874266723162166365492889305893895528362208426728117921170693349461777715803677729609484844679944525209665578013335584810091453109860642383115070454411613953025189799928924394850567539764937893744228713482833381722332091559796892825299247330014444577520546911900958795496171842659304357289810647352483202174183367536729427345632121011929719374515061135190417234195058421191086464464623530163723378614304639833353131454937750520992417831872801798715360986881125738970516469974277695018658739586971746047437054898361149475866445407468850309879782978152022770047178794486993284315617478547808655838964171101838047889545680911627462706291113912815981592180540173550730662986708277056122393764493785698909787134158855365842951645275633126566186059852459275091299948924394968281302974217835304413590231388984219437569734964940192686314735236503026616563224791336860231392252469204472066951577173430333653290611367877246008224757330246889570432833112601714266187727087409253513865127617902564307309181331542855860402767656660312331415364570738473163078948683352247892973164850769955630951946582090402546937081248819022442595504855449599888691458912745571155448353409823810146159546721938718559845959948552745476660983816860369497186688895819324178173188245805915812941972051340450884390445943299392065353966613642037133159320598256024303691463282555972802162066521449144757631913402696973273253204855997774257807251764886638887844755447570173256896530946712148650078504205866202226297276317677187158705467198339856816469505968674309907783901474243391138830196797740665178191880775109395100280801319975259544968575155833096452282946399585238382406561926689804997632038562129410464696410379869310673262326692071445229796153316973228366572158008956001934898608495230569987292114527162348894637785319455546159002954599311624699118748301558890304437349022055169375402855534675295500767773520518895287915987358894916333674060331614990728863078644344764436942943910788807627856923154539308963493106991695307034502159973507288732747603959580711875990621411115646913569522724165757067038762523735292345523602794806205557008801456298254204948311479373454041206259060940363003032256918669236773856766493769599030567911830714645973932675352279634431048596609756995377730966441763693210837820746019776639209746625857031782606703852079429921464254683808878149438011388031785304732846485701072275199803892726568090051692603725051416720782006928208203907170307839287980251858184879054544390954944762109522074780523136808580189421521198815026048771789368626380551792406082261514617688745922761074669904906865954163830268046615034614297162270802201285554457851643806597421530915886424429707997840484205682523255852208258657901800583805116251925154056213423481877995396436921281175586921626665567951194929883228880296072913002613994839505369725798767911992196492372699324659345924749472495945485074217881466406668875410969415738013179832011996182015746867546046746624732591912100277677088255737349800605087545437528859190934746810847599462501492401454925808103029222845480405973731313843806071705901112484437880466441083481029358274276171262171344419895867311739487985808306312288757071214208674251870593057746982282525916494332925270437083275206586973877648540690127016587410087700133406409666958888268040490400391472307069690739664080354350103496000190766443768392982925568693506004917092864236119744928729751186723194986851201032928773067206628896268000957346043878892194690582221988522579966226994045068267381547657081015788681987519705283690305546780402170366793208054963152845502991486914922001359022917315376767614274078199281096827774811883656829561638071423737644309171232746358389487964167031316228106772680551861172192372262441420364817091136614474669957458375445178564738172340265209559967487749927934504175716817691803962700343407247840866175159353093839690543791855413366911309433541925391209251217654885178794895922238971572713005392519786216752201260602087673935474095136265610778854499832769501213905607437367001528280025263267536363966747523759738161534409643342293129536351945265139120052242978616772332821520132535972244851833368841746936136357237491126017893791747233818015543708419633328442075144052637391258767299654665224405417898679493638692849470268939366519343121253082985588189079818434219431828614501756788210700770979393344508299167148792405659197764167460644714137028967703493237901960862070901594749800312090896972058269234161588644538744870819020593462480498722921184612694936465658197301617870734194751585469720936161422180426481210372675859086065444109587525741914321216421312766524512211933171416384752446716138553298253920469003665226964008781124550713591374068667082874757550692390870861326460220345050917136550482649886197917021677553877036260364462105941960304083692001754614121283148809933259938021730650219770060058290661425781199112023983843576100111958210088796761931878694043470043082656452133584240155914026322432073110892035522497498801584013672699596208674828823575934826372137497612192621370180317847997304763762404102176851658294120746982994369778633826303756090589751260540660000382942997330191013622345763972225873064450033986329837937099623174383318085324424353571696702863587150744941515532064275263196024942245797450242428888012251841806771827147679082031455502184782627651022897070020830558085930160390838819365279592033618747148689407306540972967078707574378368999859639905787875437737402801043003078016319258833659519833643821263748606146828704529297529235996195979573648428217800014583110527813649199033519602495608383338577589420813895287668277632601177643998263348901189666592736288117322437974881306465054034934455617906960557131670328375698577560535448163793324650499159469433296473243179686242546160240073783109914683045032403702258648955919485312137445945203127921659991969634435046190227883472053833856906433495054421992658769346956005674623305238974021997802011254953883465660797304141505212529378299881926160347286411208067183714456742789378221873875670816522467603686335149920936036769724563550462116024539465748831886693648002593570595748839504989171036710745036158322100588938324875069781895393682469771284208754219179361637459546412465101137260713777082955985748095675781073676918112168854136263488169763699979120076226417839672646396817370241329996562410451884100641358341286209634523382633209864453870166423736420007646830675229950483007823489585866505044964087661025311471139107290127346021102076973431213052105203942599253471450041398146150432159395688090263398206746318561493708671051204838059686768150786449225922174493238010489381583812481495233031481020630037740961788484422489385904232886655379584733945607131483466886407970665898934288905405408464359241889689720959785249367111659772217067320318183933276032099494434915990302329935906236195896214043354366514301305523067208604126188100695961097635720044260206805387934348896353953961534961846578285806818480617684210398735809831344492256016683262008295418414445438722154194410616178414964243481894323104702792181764120650805058366099326903269241871848307222826973932583217219069983433526455594724738430356957915240456602405614795871445176570571030573714181054041987112762269713187500664910302633129173820194550842299452163517220574123485303354812167218828391195370797066129066385992817623666801357847698292447622752866606908801583574895092099958885891810350098967281995834291582462846186209284877631741312056401843178318844276371085330632866968475368330928741527969590911819053689002000559500233032062620515017510832404378305429495634172681872735294431611973467747540641782320951200978751847339713518774768260682363896223462809189013487604086927340583658014455125318835821959113757046192054417927707494087361341034124535227810407189639699160816222141081705939110334747601744597976293075954766032655695202718489500797986530743368104004770086227473844137324796016750251554439255162844452963675953521350665378675768731200296340099210935414470849462444908372543345082533578501922375648147820766295312077544601841796512442519533691057329112775811290513079340033583915316575444067993333680030818527598595441437826107759995431613789238037854713681979730801517871709889489618773390932876224142946077811664202592764611091257609433935265102041613101125127750020278541137591353238121659153979057905898779599339998733623847307440595840207608237481331347262012551342851714357798606387603134111022328827226504979306429222657450876968303335573468772421266588301149592765446887474407746547497604566093554909635930665621307362070190900393092186289132106296829249007499435153665831223683662840479647196292195145979478497254378969990416442454712427426807932448057011586989522607077650472883469717474144367198017532379477802659373291861558322372402725920256995762567558749597357085883378164053607223646842064618083313344292524404735247266363134632336559343559603978749100742101700813844495057901106101630836560791134261108195142520110152040642941667040747695514858850349861058781363848945681942219025897435825425921213633702480523863615353816729181133581330780072331831163949370364395985924720042856650237023376318389300397581012873260832207994054887276028594018018146354790822126263043071227773570021086830626776378325431206461323782196056814886635915259697355262791202543843900026308205369557427018116225933322589820995438326085405501365186882223159824430101111511946792818245192853521573126636242818345840777332317399943755048084306590385884753145767671135775612483489574357798946425586305873997870241825976515214679007156548868375463716085203168992004569063119686730243083152874908658348260276224818543691959014282965869953011220615038525090154801147543200427525571493966122248582076581947736136682392029071233295826705646787440764717475467893962713330413336589848690836447484655883958046073245479032127918677089659442958075397856192576106750212669110742600459058109270642152734985908445150277508313038640714262739937558007655471065129647513848568142559787021595978183886040818450267431447890747647549099234526364931618674927755068295031887783328652249619228976093142515900548010302030681753501213124396266484708292460223704960927907041856021285637939332740096714045144147464960947666281498772462319131320428448951045033163503884228653629324685938252709934130597547684867083660333321522363317539364100217366311413127937033273770333122790813494568950090218985201210631794648817780847126469654170650249205045851588908416131946282335894801139914463526662451504709938667971978500385234347798697421813473472869053910391648046602379577947573127776831262184768438238869456068995242993862624998826765177933782025920651712272948621760318848600217566791605344138108649038871914238490684576864190838632898786611016555155361524534302045854333559980713684776344814486144750442389527358445165022608348754879523799317689966722240252862932905801773013733618267016356682787679395009451410418349206893208670131920272470549721267649913979593116840915178226926911158497255283938864416576459405549134063823719939027073713387440097538058724017754450663245197269591804010111586354409555760215219899411683923217899940697030861815881880582531793238291045857337189956495475130152564973218912356290189294776087584816365886636541501710190767780432943883240755808424384632602967861988433986150199715096146474251265500347711263229482854691936555778173121304320664201842146731292891953895728334372002141284316124455517066100588897505833666308287303485917073413333232011243051684525761245361714899995017330538827624481412541391277788831955875936036692633791766969330513632254654554913078564198416977019648896365418539666644658920614653684810222417108433220334464294521548758886860583625587754741047860016935287138090975066645202035612363272851965418516446249609454088882677257437626668461354614489362664626912744453249835433039133681707815715997096013981500499286680776707577990199199322979594007725628565910173864731183639487945977322622596929506363622507985330893845122613894250259076829667944370752576833546028288750128320097959825072605706113926272625537513105697670215267457724337812166647513955189814085069698099064251326596098546774808349728169501087281514715428611455965463683594692872616169433623930183643107846926087251457947949664810371943347036748407898285234480882713384131862227330817270959056058484036594479622063015221504800688155932308598944897793850257744826595887892283326611013658820207384388040920225817880326096189330833446224731259458989965791226430151629278455229048962304430017692110003865098819843946445240827277242794742982425800104547780774849342887519079449864087556148946256967597590327599986554234006187633273074426984984524507048313484257586073150540135129099366663396610521486292699640848479664302118207464325394196843399569063881319583278703944258619246920991845121460966663236671584195169477162715837793696774702890807061772056979876940496874940718100013489103546733119788296500449367189954202202082606837579212366092772204636508362170713022737508960493467394227479564542031049458591267605197157687486360013488580783339954276087471648373581309528141066625839894980175077866296770574354405623179929415843538179200854479472223737689538612473905985721657588045840135166245303737873205658100613567112814841761810287835130220087608721058191770153317732488356913603376176250376208154569149353065922468750405125387962790939075078520193702507402388723690420806337820326503469340554417068190064221603986394817544173782288541475726410814146469132584754712309986591064827736411703259563027738937612338056038120405118753557003332139893142841239252664058591756031804875027351678889522215704005369067095545394001065026175761610420582757059461348890517917501958962843876754542403688827948115953368329033077542187154011962212121351480607214790132412762318911522000961821645722269374976378646632446048863952728139305446425434647270007327888776656241093990830087531348069112747558114722779561328858324910369945374887000486835721012305710579949538586787994912510492807932039146130797768135112432913481579470966906892612880829498648752143421359346794520152487742742600050564194476118318171143388118678838836819775709276959568348001745780691573339109566374031514409732543590437869600727871282541634061338086664988037430432857596069325431166226359568707989531739193159058622952797072470186405538489354122752653748561906963240559952614378168457252987010021732764113486272824545834769775779834465093560160432003678653984834167801294538403683921829776082452856862002386358065179019005967229620152085522987313689681945469524854181024511516876925359862764566039286645888731911897467268572329278696997281751463938902639345081319344186183157528785840438805651330602313110117255569940039782940274948254413532780413126029100027545007856739771898118916242235874896321957332330865841075591213917285689254372514056188734921509439943761970107348507048001051397598093654573280044811679311956342970018897892421728578893504520568134257038241354538019682455224086816762804678017191338847654886994899569085212499145628383580758723166916002116322045254555452179233970449085820940861956542369782769187764868671537381203376767838377862478616536823693304805597757064466620310176893703030583915480106027888873373205502071622119671589343475138326438619099295158704458146602406524490607543650296518894351575124334030865977452009496077195139815817827753973215588480076880288888591728097388384145737720328455164430500290959997744758648990197337319848369163319764670079615195999873738456138910844006516491292564625319262683257429097054169910965067444948767736321465780790254311516423836548821533363573692693182467938971235340188124014051567779942430261666196916558064172378678924783870161944748734149902648270711122983300034820906768765430307096592415889390567621433605351880466902448999433772324950591327786855706389796228113542807224274984153344201353480558135572096547065074250512686694464165332038263222690414510517946413340235538850257368519588226037777008676093355572387691374835381330785920308056759765087735093268867280962563074694886549138892541063530356360658374656393688883819155648174591011183642668073690160915681616753858157961152660317105043859610731742654100723412113753101984271233643771885279977818167255133328006348626978943744405335369476174600800569366363360014056330803700812041231464281650356019753158009320441035827625244697308651813234196973259404663479944103147005306467313158441331502188558059049583740769565937651570787198143101100777717166905086358225007560147767969168224618708559831757411307710045083012980741204424073519625750948700560178380137202663589728740120205364689606695800602459755737784113947879782815014944768158053152832764930010818752003182725056773353017305858697515488831025800389778531283056880373007498652165105125363437701262271391641716828735660666587258821427882733279603795061302494335459513535125259494095800047812457506512226118492741619766819777854342972519760514850118261883595650814275436845357731510583043061295602556373115630419692115434474794837706556343020502406887854807155595006509976323741213383395212441742955764194697881000577641542016732019939232302834909824107378086865900562441124195685114107776614271253585208383299493508180353992304652230987383772966314874694808943650237293507219652752531434004883792638088337317200240179671997846360752825991135066228878356410167907408368805719401487143516354502806320229097895950211328997083510318371215479256366359221020280348311145753297192018346211381738527872513311321957167438422091759700720584298508344479306621124005055235694603421840950966017856974703848468954249968779454983815894246855534162107608175410977286433871529313560098079999472169676613452969220508241252451079415420510365245884801552517270560373984701832415471731320510320332861051044940271839999642861147469193715964509537443712093090588464994563584724789555976240172461807293026578993177045451588512851241004466541430301412314099429593286223614877710054674334699068188654442755672983120659608803510411177487881318225973406640608528493284449533523237788040597822781057750229033659666974004386861605904682629184566721090531223316027097107983918101548065327846106205156684527105221975067051334077607109537045510785156802138658234738268949407033907128718118417228499997615108516392818089970058508942065269992691921718990269226168682328668787208874939529612666452997409897742786821357083727641679196048026369850536396343091834353548126618060920533263821076397312915815645177003148796170470856317437682963639776644735185273234133919077532962164095446721730089297004920351505145294505407571480463923336778774217171380146485343147112957199624895795944811913185208412425067338244166775911258419377817534388147308317050748388015251599331914738565762919267228003684253935905976520713394650281998560809504597330293112314593679463594016309742839198665808622838800523261173337905146612172627523149011025491890348134445779225633372537671887516975338635291373019767434735832839405354563517887198666066345492280400259803816476538842435339210169306766672176127884095662476885003769764439985701384620007884548662305298475110561433786931420387571047076907620804382986838380819136260532521565904036387052532515973989574589292682140374482295962210785736839160112636378854967678218989409309776843821333013119955728822579832959698415446112016095322776581251925343597657462310550642030255248129843350237270983732624343581283945226418689080117474094327218307314382207128100850118136228064881141857651987069815205767361985396250639565396776790340768899777342897611778419275750835456196678635717230958276968522977114625061600085501432854660086944097179731301895918188310505438409616328251102534464337634308495379876985045980575371940695017065746121070147467253364870523614689703900674760338712880153569605567930776256015866253852716658152763683777048212383272101382537454315442684988607304432522638172589500265004481114556201990865699070172435518330569304850700736749536653790938835204862422836413642155469793315370063956682382659923935758464938800761568585134754820337118769003610105644812137224616566556197876698178216701040515531820803781584710628206855161568014127457537212160470509857576986379876417413746708532753655456095584523370608012620913162161246496988136050408027668578041152334651459315635098673159761133130748811892209186186757119153675942547293133037704815574336663497238091437780498361808735204462798920512871563067220235116017754783971601861489257500511703182413956124611084731123827651649702230862348294621161171428064196351738420656573205772904479698171364630343622086484053260183927797460578406492291245112179425097404586471892962475319762621803685183662726404526389423530059666435712799908124618193325871716274638358248827922255931609552656138424446174930119262467870355664096011053498567804260252005975633999769426661499285816230155488201488814546593147791567473537085441171305274686637222622132381364678922504653170833661415017134549958153874241626541104198217046964725000319253241586992119190800861536926717515639244491065412320927836681680937673592901066783171182115338901658865597687846411000997825427158282761450901191234074053482150534911979971030506996840443263896368527941474969492115236768165823549186315390074937102239423251909561881206023207319302420327234349205718342248048831630990224460177392305404098212452215447905387465624875789985621197006096775744581268980954355378633158672804212986624571752604550570820995987814008377658532347626342457417681250810664414582533746167023289681014473600656095514430214901905676392260074417364210470190914599998277509919806635994451086560160502737450046235689320591413851235277545841574409222687782075442125990954344950604311055869654646503558034261508856034262947436562200503499517132574302105821151211547974029592953742936112923117287761206921690594103177614072242683376304907549036439296061722297942146801637458543223741172090855649735667764222385639875045020278067730904370517184213022008149369610752426498233211033880182979055728153827125482765537846663002779096175058656577674847245405805966200836767333924601313578165510059067727156140953337305923657867148978304481667328395758232907173458961525011055748411937841309271895327254216660835350727055500184625509890439179995677373811413630241652335788348405844780268461374803632953776625938150384226910379336405593105353658203185423687905984230968784618858340581725800554159226814234153587916372866261096698458508199645782341899076304245075415089397968279833781800863088240922386512480579710051835752027151436485440928387335557737300926484224531413504238203924385977760486742788429451119796465575235716279997553159634399178506619239984182075365289854588774540083641220118922098851807190031974980425440298945439278731589668017862428666077953059462896972096279292956065088507427907012704157748866483038901641986296761704940205756548577690269114670892744459231768234862751411012096596739676971394218641855590301347565283256247699907739853686073412506614081869950816958556441598358797949864436341912468866051296772418617256717825494575563914429985312058192082422359658758620936446268812536616780578627078828331679146603476931603664207465708597229765664090772142059514819784381369130065951882603237777306746738982274227617246294309391018908431086887860089575412697456700808769407683142733916811551445013521897429063837003905341282322863759211248363761646390377322900248805161304481106226873863120497804640264454119052888007052634572589701492272154120446484178663215709622337478357315580540721014546425997646101924730177696998652500639484480228445727573138990317863177283804602884315836699916143623164507570988782371438044760564074243554903592001749062112492833241994362104064714999967578188861254215338406608853805445592133462119307693937486293654265699263791661316641378576474504047811773043117716941775473366292105347624639776297313252584167236651138887028180258904491863758410365442658758211469227757519222731787563970687740147608167614714485131552723397209905918351905380663381748478885668565395971819419756599627649766009328543447633133914207649401008538350865076410572139014058514880087416855652372276874631406682771149798802099703538708863556470272380978352610914923090974082177238571527726549707061939876945902142769653917279914556261071052842923311249847926790128794333613245258789790802388948680393810780798017394615917699122035651204919451758399616596939513388518137271944000235100196856668009446424244787128860047796109659820435475082899960605795718651775786488526947952203650873075423790963836655396966891724717883328266352003205002128965689699365586949632859178886939797906498926560289541964506851609960236179944070238679011144135985259032454119931329224051487535616730825045676878075523433642221647872644220421628336841855872794356741624942568353399700821624705624898846961235626325395729365601923418519168613315155625151132856615548814086439276510106035518591210254767396651597686677776242852663750850499635225210221970125505141968115405152094595535667258691340216969868493756166513314209906185095152014498857668798303151753395259433425102526257488402799615373698800639116081121559000283484472745904201279240047822798624919112919103273574279033912563045978926275367966312982033246999223344385760968464130518359278681757517842074695564894963829764994489157122474492639970924283880847434956093259803604576406752214304522415607161055051868467007996768768721652585958930835942398917428482399073530155102051141230439278319258526020949064371666955484384530709059095386063421157363320466205618348714102322341469564315143199272417825331814176819953762350303308457911218938418078126386532286501956530709718899333216408714019960078437947509498580714480372533600948271385061251920946427620539303568308741918240121506683835213761775534044476770777766271317517083825047756385226355010328584951102890577156906290539950939272869082212763651529158724599257245315839919757676244555351003509956634168087500652333423361174766512157530291797518752771830359122773321215494865231395572947427227426145964425861099754462467490280007564709679083533713181006606864429527212739474487851795438075074721205629940039125186324450037180402296186722001658884210322594098116279611480231581434338984439132156432744675945759284948521188862150339996443739075429678371673164853581003500712685213746066340436208357208354764550818211774726986837454242631353421276515238289957331578462042492390685276287707432000054863617081103414635131150389802064425251521945601203658498925238338257903482744519774279300524791387963963906086176809571863979962029051021616017285615986495139953732415996645549849735143284589876159543294428684562996643973387580292009836942471560783699903136574881702642055785883842598136491677509283329930903018140434143095478352938038882243232620341033229954900410731900026564275764635657587381358355625719542230013954297851339468359779256073107187628459460380906904973051280375807765314176501593694747678098216975178286481361275687215094140008693566526203247405394864265956183504731586664507266019677111600590957198663548884546399869673456558388788271098619507229637887699826358308409670300462980563913810843930459839027637145586969781946538385112528950742846233694455878472009952188972084068831718124580758519710066638337475907684236880287256232693897467228190644413179452672041964452161507475143688324589882331355920652664892666219781502801968566210847214038481312781635046819101218533508776663720569816563660391000011584115318155021952551704162591331767246291204645779070553440424592450086429157265381779752464304531702265198388261367054833449176933866020647729261315447808401180465245109143781590338473283967390835743486153214145099465363437287254969288097376866665804522887276185963073368703654402859533084574470271524004241884781298003296493823594906413464124710834985752982798805895383602310962586997522311438794261606533354931905182236936330312685605365322683335640278935520203974329228960890072195172236534047316186478965601735626904246953930196663529575221005303769032039978505121727086909941855521354704198931356642837512614676373920052810961832391606947409040406567328235644049160775653462138751282127550583901128925409124729442444336930524108008491345790834893873727138464054637865102390462685084977558903156968013691693498860683343724423979253891784803014976431015161908937873309968648410633601366070853593379645323165834553412959328503868268894891821078682181518398202307431819294623665439823349144104427044731808587700381270740879015059702580301859852894398938979608640245259496071889223234087857882389301932620556998928263702858710472327450545093530962550653778011012832322453310836123803992409848519693568488731441780101171380946113437727570409266906083319123971621535400316045394500846597995646230632136899994814819788802582833654468872495726134665515121008122107086839834572605571469896081616374920769339859284371368382878135167617057997896612816909395801008125373170109479339240867533233528879859940636643571596761791579731741386764237620132438194539030126050514341891297965386820997990641917762593311854179685368767212466685300832851990650816120308120391551578419369867745835205600676520764868688093449177882455083556751085771764836562722373031911684496549432163299074556585802812331163743353476850094116668032021041357061696428626271456472292834393681263651208635406319630465569280782867443514587770746339934089084197365061164475423415968268129122111959200616592892872017643042368825628012917722329746804441317405672020378376140550905777223844628259003777071877454360561341195314979032127734243488882611546212540916204951043791106554776725879198287936649831496839889639854300212404753794994223760891176497069753781903610676414020701317635110432214433084863399677068443071924872638318138431317893455591629161847670568512640692944958157396601178633600635197574836458277305005442412979992070540486472382927927379932740472150420679867726196593014580149356191623823726103167483495800540113285629366512088696829706989434725377785020593509405773127195466746334774522239681074893920514352877176074682270306131727300185416079960296894392205989911424001986909146360784406501854563875965553682474362008737111579277597657312531534081155895020812051701343869050226434635080756456282131358134302412435368910853508982307120350976268032234158644607830752251140115852988034284490306118678710958109308239494585359768900735446366057685064932349683100339309491629429251697492714473280188210617468390431621718854077480345675146000136156487618107623318611170238505887056377091153134332302355623320433666569085681245252678666257100920107749783090739702563275901826601423258906475308586782602444950091356810745335698094164239058521356232764154529427748996610066132389640505037172965216098368527579353775554168014347503027168301884343478100982945057712287155406885858153577575928291727181739366576793948313154846855818558517615899074763266065910546099213765719042357613309678321193865013639595391368709025019906177288413100819764639026518064706972917097257523989982949461235022947740160204179230286214951172357548133110897481835811391350719355761859580980534317838853659831724393594143393838490606943946413463716845123936404839457619339281482669828746581236128792231769656399189338187463430506736569407598212673852178060617760713479446959740134716842475622694564368254606621938927313815029993962349068826111385581640054116206422552284580820701283048445070077382216594230549080647758379482792223887575072670096401990161842663233954879189816739027376349827595974113272169484240257355154433018798766205333766691260215918245010549065737890860541911124567937268956924138329518264030058974308432506955468902753232271847949058275438470949542241153031047857883473824373044457031448541566436159554419245286703112634182246296657958455019275733275437770541370425135194127283666700037526580236507690632287957238197769393451361672645011218315595427207985598480369731338387040974141759654369518222088949888696359230139525480375698969102573677569346775639957508609074453753494031036523127037399377182669576899149014733372552462346033267721585735854376637201003792782614562529762890830338493601367593791332746450103562177796942235916984619500649190518542135286084444787477401684461654607814915044214515131055203603994392579457939207952554097798763331327293805522782010821920065774899799435858031472209387259654151670155227794862783347743159720529081299272787853448149364732214083790863458013457663455939194745454537406250434545019513566558723144666901297172658400758215393561003137023605671238072669615384632692446138415356403256153587288394509816528844693275891670112748061298643791936022657749420899489126276761656303322398792024047195033149561184144048185432732291999659128999096234323506815892440194425931164973866139975624852633575949168398620412173440218052885373011619781175310161350180332812024012969270271600071357157754333037562792275826784531604902130867642803326440666568035983553547986138512972926489877257631251428296077030096161421813094665047391331953224715558142477419217035731253583463349261745655588828718054020451325794123258967621836277992779542336111898947619340452025590669090900885760063062656845348381664548623174291540466754323496475442005901700164361533080413132775325113574432877193005249348502889428630111930967731139420752713043569999486301006320541592467272409379193880395230980783233785863247684107177921347350238039903465567524223553564416518514755704085795645732517315134152552891854397858525746100844685875274856068529125343874311693215212574947200726438425041878240074188397913336261638908206328670817992091408756957017143590320432558116367824345552174509892817726899189157071950539104019780994220989039356745776478658737222157649743296714386134610006212947125086907727239382431338092331331078085009921585650043187396913944022293952624185591634104151224928877427482680649303693456790520410617641577912019113849922154071095352342393578343512424574323984069673170836020978960077180870173477259111384663654032365472920387118056457845355311308834324088627706512116283577976348770169122264992115962961426183767112575204446778182470069057000421499021342655118368760089993988339984358839759861171380740846400399803366684915267482842351690242012950347400252360496679545378049248985593579436905657819651237750946848443615486105656829225711422377580355131411771445519916668325407781004740263527612959910905274939301121273072795807278966632808683391355026806199704473569322431269019511584018579813766291614768219228438821065136202904925212525596235193659145863334128954821554980382037433876736089368461426303787766331448178422578382880840916672352071297566387412610211937040318372126579269924413097518352340413321831567810949247697699957399500371183134351594939216094507854614251922077101984271230415844370454332018165365453207323434092483663140889847290360471372413381711893294139210853433700612913296797961102867176448416459693766668808927411560847125179265006064266848818696673416983011479783741920745604543494830437995322672263459562739835585812477050179629468211248195540412315420945683590966487621494278128363445642095664980564040894670471668858045706532725909624599994289314656099883523783678030072154144040879314432764540379572024971744161817178592063136285998942954682423956334939401095814730974512280589387665425756495896560860775580261874328775138594847090175381201876078529862909571583140293450147040750242172602293899398097729240967560804838727086772433841192033937247815403388156160082287920526711865742253295263379864440379511146613989538083873656620269075556104041980110309626923144095063972644145441522728009233154828844182763893050285318866370929935464118387302393458254007328731853200335102644383204196867157832229874588799244869588879489625918625417033517817498668221218890898733412934411340715481440702684930127669616497430485907192764126409241839426314897099480849521867252539619409531129690477376750890970921188745405546540509663537178853566884881955268693954828660272862435244387300555751162943590503999840433264762038595800323489875494470016634487601685821762949393717399969400708275406667535754307740438657938403070792477605904119189102079291979380227615942908116032999972616015076627161639413732440569307017657165248483011799668525669516815882767757114415800169091406811731839135398707384105208789026172066922915899427575536590354338204307334836513738495384476006385362893399822578632222704236983881279185672693362488787435867239543339443300511123550459167744945909248161021505641371664090020067781598948734842714700390802028538674381617856056861720789055307879333244241829050296743954087400336517970783808316474757494970956385614744510942062041660405090832053148614347267264333760439548011944989407883964033215106506067389064967618489891183837971636138084640153418581746873532334258491625284596597540213001353469264756838619644307400888855856579469626153626694576869570771308644567384739861700836800949930566948738539675652991330909450657251453187888828929233995633856279814864671944859202455446659443890407397824140832172760026298728373929722955444210377304333251249792929787147286072114128097719935749421842767124546718944412533659995192534188261596408946061819284114960297473955895168505053344868209345729129890798554833262565513566043500586886512133932170151464107808387318714573542669506031271978813798056409970643067425547923748654727419966378723009964694912293730341434568198584886466418434792343938914202723344300734342358863846783524997000894984373454801477781629240724786480293029003830352300703871143577629598243996661267622840734142795151201302121628169306356981228811835456682734721907003611105197236548899881241255648152093536664752659190873996505609982051849848131737775746647961114158772890124622969449576838374382810296301682380227626766673964675039830767378355001589620453309758692496851604276126509786549943920740502390519241194699002240199521432397997928893181555939088063061635352064151696869606277495777179778079772167097617693362767382685299344168329689712089857582875783064910098760659692196645561019381199325216617055900203368063986373628400689285582233120792849130852386461431960278207824424890623445196367264382905972177026702593277497352816353191697758053735132562750880762497395776301281789148262173387227979233804902742027261973408092506375990783627044810163917775385589451093780146541145954728341882593044056579148317613388123892299844261630850691874708585098478229508027824995296798688123878605204998647480293782561060840160304550869818756725450523451294012533791782420763406605572472374872365304770417843001477900334990013023140954830278365076610094867248146915133017768905319730468101773641406842958617418786999097585751695049387049370598036976857577247938267791295338826920605068044921977511216228296311316477583426377719747291840861600783942596347645527317822695228139806569378551706564849816098762686041502077603410423271054368894306955052272582994048072037221750555851751175519558363456648757992835634133320843245745259231726393538214148237784147155238213779487408148786929345722042376156943438740650462294978154559991748982919421262026884727839215818193545615400272709628116724755526904399366253941267065841648295053615633788628003373427390901047492592810552964849573631616047764823215113956822352147549727352205184142197266515175353457059731782325810745301571425310346274552399139593818497373133332948177473111093660054429545323728592809032138974479547788367587621413563558307206454076104051983721060119937458112869590796358834769132690804274481361741140974006754082627352395170377052022575600110702054808429282370667602285813980721660902776706505342530374568429948771413098129344810876277087706494686730799832655246520474783454271274038563722508184491119832746479298630997418655966938072887299203364101091175612575726544495423853585432364880644435694203759218049942711573205767242176278841417240032932389035357521366244835242897890374477298355888279973240755408233660174631564307914328121021512557831382948877894406413457287909561422202147179256864255390165886772130701703981855023011479833257625679273561907772190207871555164313174182174313863645245962643234537940593081442193896079481657353775228397732981026419695237398074800102778956211555271174078873071750934521036062632548006651743341006072083305031987988549766342407306548398478619133470476709499021154731311120152283105417278839890802887308195669662632260518801526294967981561743178664133084308158887107495555058765391458399441138227861252351590072418400649427580538866206571384053702323938904163174275516811903699076058107031688467947706343184869898366669757890886029145033970713015134932460594833670946269130530133567723761723919107008034737901598453970020655685006767741452424010105938180234680579153482010776706310711541525598130431196584632030541482724498576141924751418394077689391986896789989923043750828130365665016050363384497311784370948908978051506751591716789590242555809641133391816893547168861715613699214235431398168206006180377471590800271886924804836342733868691022522242998718775181670351632958458169789832319006063128435254545925228314327220584857041218065983745076883387394565663709191814431709422658204086303469880791301456246629008654257287095231290756731327828027459673870795706232909686866143161148390297983042321834083832386362426940677694884323276942255969673530324150005518566620664345315433911897044257226327380608308486919658647752807231536434092833498184693279040789878423804206795080826861247289536879656570366384770708618738487240156590777553198085917993658275756221928221729232435474542849382133404795667071610126775862724177471940569242627723471475306395318246557294252564081482955667357815643654372732735037134125457770996237457307211711003621168192400927098666706271228211777050386232348361256377428139484570627885501604323906067374441272008787327476204834418559830480688196875255547761810995332334797801900436143213420500911753251651476649013601078046697508637441614759925738257026117397735776078808221046279483002151207359477223392245758512327757541613285416655860430038120500359272200478963869101687721681594511984728474369901889095962167610600472995213668187864934244640434410316617478203448594420443240732921582320113024223849724668149838430142403397861869623053006688806086921094169268253087196784371120717621609808218379736461126962725343904297855607407039893701926183031254081357694588197420303873278187805606012881296737208078134687637366949255988745379755362570625938672900752732729329527174592001320667919650259632463931464751996192642975877291194252860808605571700959552446173440124911912461163022316299210744150146946241157377156648042958112497890476291404050206249994961239393391130881859851411737608999787774357191654343343627339471890790338684517980142949159155772980398096742862861413435739817173180373324486575106020076152406172220223444390085084256795818898935906765502660578384574889258185905907010619358377977611386503807244076239178624276488682066574003589006572234054725357749270994790406671048012037315529412096215390457553895205855548183571959324472008115802016986430242986625117568645305379505419717796448674062398565314177121780841723239599345386696992788006083724573893464712820447204351168759596819146979919996349299505744337225510436081490217995689582549849921887435436760850825663139054501699887659044498403388158092194964868266974300829197361305408026267330567153462547905369111496066333446749261269064144180846016497164132714451225732315751974419633945628803106278511159024589436275040208485385035404190548199693229260850797761858534349202428829170776624047662615575488485014654033951038820550566919458711041211956917194985370154278897469920093529530152971312562315150928075642887139843827138558019365785925501081853001033969601192217170006426376764860797689586262721520139720236062453905854934960701073782242925137568574784822217186040676072101054666693552666365052665424889954969952559663208058969579761625980290079409060327557635049950502639545841427797551324276901823660475750286530395639464768594476645426570885870147037255928179156629663276908400990704525234947637888012003693635463043584924767573311209506152180686145347477304818221929787804483741259694745508107853070540683718266649226017860335514422689388106212682052414510873079184615751797626318101959553791340927855527375476540854090542601556101214202256728527708068542169530964931071758688772120094062332072971941381061476558251835040382600395913476583226964093674123379955860910667022102861431284800414000820335690187778043271854725571921725668853709951868690346348421432910442580462520296509296316913537419348336808968367305254579062982298626730815770138111899131323604013841578818218654229674011490815268312996609458558233567138260447553400359261925909354291604501946664820836518250079117531182590483612943496793412887767277860722765430564672678104043453300791438264994620676639833960947304010795165000515916751868840367640699527105352204876330302443525354523419283306582283977080635864254281571657207572988571652434887460115151771163035140146163756306223792015555408653180697213310498527337647425444765384309802182441519514112460980738139538392515540562255189834758488162902319874727164975231314301994056254376825949510153471462231443316789309180539557769855734456523973697803497109159751693584611452134950083973902408740068411993805224256484594224835100497308264397890248377732012266028504045297581676817169241973505621179797287871801993632627754493345230612437165898903811677165192839761831637941821043717692150650407012616487786602365183291439464075050703111268794599392338400478861228164109733756209956788454132671495847723647796457203111858089638151540379232108005793173598011759677217073416781911158810077017434354866799811440638394596354452151254667590789769085818727628937306148702987592631537773847452713351594422878528183625502929039021757441234694996934453743536043082994367105760893835767675185853650117294810572105367056711959073970067516341118939144893171654318456877351090495867888730955615636861187950733443183448770780881810676447217102978933197832763000730558695777613453409513531447785578771549197541337239286427486562314883680642667516841778320422712842814290885581199575400562144824472738317021741252919764360012679629850642611294766874963742058016451576798571522797243849424267753740834556464162170547639791572920785801054213190531931276294717919446112968884361781158029403331738413663183882512130667312549634135365092450078841750653396287222353804233220062534751091734328619841683819358722984406859753809565265297895704929927921791493875692520669595380001101762982737145211793458208071778123561950461580152394755942550691113192009459766726391771234811066542561166953899409284268398369636058838653082018805956253637982503604184132256049989456714530401658823742109468764535513844275417874302721631489052157306314523054848773647990662249214746871622902704449705860712695874890666088123350535337381356873798803395638744686391066827680939317279561764708394708911081898312310902382304782848508869507636076206741838954853708889098483293555278864606737521690485390463682051266066370381235747871073916384138804763267162659665010023627052117729253661152160408607876985571782132695461214956347277808513715992617540044085741038257959126249437796976830087805510872689559886885805424689748669505457524325233448338277605408917687971622875318912492267113726119304824625281321579004020137854766049342492178638274740070831891361807793864544346287043643589812519684538184086488314214021022607521514906557820606594123591070436597294661488182468406754125134023470559081997098088175453160051092669307286787919732660343113436328004038726632773198687408816851569251880349670750661347306481653233339245009506702970485323872726026844867138760427577434340974697361044229349887893185604841779847773882708771711894657413579165600024327732111207669213209920780560118536286802913093504260763563616314416919344062177804904831456349387654641932322205324133316972322953896460988985520233609523440790869120057005902823096622827938601315050810065103508912947405244661199838409234763772754454005792731959693548191813353161682130052013293669279342706266403516267791705217063694432775140495182798453466834705110904262447212597841675907334890034961265064397854745766233011062512654383508794657093360908821946894786779689999834197174565202124600471472380211894636422923211631476852357195799643411387531503952420371079531236877978318665847785855566502419687452678040158923986411261571816713313570392934258549740010924075233118802981639741099237350767759317534446880984182437035545157021973999754108666672305113710060989034825356562546083473047760183140441002816826852809183659336110245815388110941039581129305158296494768487062097086898505804739629132287136587468087930794296824520744987650327313919175976147960006403163158039236978667540504115570163598547485042240368636242642930403818807661035350063430527459534578753127284488896098214927648178767673932611368503720630071224482813749549204630258359438917300483166731105403718779002335963467119640565916975977313034086072227797280923576722431205287532825688770530487269473672902252692445232784400801109579346774061816635835538429507854860010315949793530930883178378908188299891412291939896904017141611552021974017982394518478053697972451413385627188337880984918308900913443090571681837438937117578889347602635999529438192695320654460430995422468768773724172931612403263174232200060514236236772914309753288640510628399663834724225221241381919776362756923942459708386935173218796732868803656445066789232330347028347582293943817180112405170582580107586566676795217055451313545875176206746964123751961412682031340390870594099658257716134514284905615854039355744722323218260289152260044837865407106092259950680808386908701367098357560743670195236502659671566896337299251385878432834525819405613796611407592011796960061408600582889018607006472754286247593459244556937648075769087673487657991515943387169100826806369557518729054943854378834941238411527304224464049313266969345342701881404832340557224263924446897094713875692146399795274680337655925647046394816026517958159632976241219363112499484212926410115993934062837479401233264251867865689490673316053487900693791484585368225100488940892150249093598327398350191054163538551537287159458830688268009193953516238471471412447134971652605317757302648481451280265812198618462386481335984254270614410382388991376698223661034747570831260882002545407954803727585469035540094905464974205742058973114678216268102646650310845534625773119661228033632708646128201894394238550990028806150585729157719216421852292058450227999381841986684344239821597051647850673845089782613285292920205135896479281517126497013292315876792740431465280654171691158945296522703649449308824532099837642509980088673956666082431723340994818789037774391045719036071999255888080935064062689433314154321039657520403327712317097611760481338969426236429134827804149732830832416302909753481590480555737039886386895740034121405030871941106524121672864275679277805107932870116761308199258551863077442763509618982140917236344152991276932486624424339791901609131139258800915999888447293103157597755941572212816264361320201404096658083449653627391920781920708259049350805862973727065142172581039596121075215191234817136153072200080525811979105721813388947154748702679647492096563818008344219954699880389335798139402310939168426415851078157765574380435501611096336509170713178611160256473949988247259366299601240142424633932118553615653263627599116185726231618406296891090755570889684661029046785468027337927336835417263053465643640715726901590047850946967783816390826482740156112736280836838413159435341556356096401188162618288373576466398942788220099411555169369157658132237564264758454909592021263076213251677995122640882698379796104157624350540797146178973705448981737917077339547933411192936545421288312921070523997944495771291188821031906192967764821469108339185252459627318727511275545993231197931590961002328348165049905186223257968636306122005098044639645599173313949238643278766538464518697298600927476937029950295378749003686474589782616146861531421877545341706910488460255065356138732262438834358978386582847401138441993483337371767115303611641335180662374050275084572587093853795288208186036918761007270778656748751717568700901430308126545449170079806380119502130300322613177058611594775334431712917851711548838628323204943912458119865515723806279313722028450879241056936666070246768847744261401595056728249549331994648447833483390896214529718414443180771605815832694467814739835449959830414386691367644148375085464731176865636788666372597532212672407884194668443951052863560864479236120898596798683851813912243810796786450539141166657752646557832784734366588463062538559247932525606640602671657330505604856968060532914472254249595226173769960699402672386391340408525216792007905888844983414680594811555862076924771036577450369067453851789728766294053290357683229309370033685449124472133564883486499108756319478070423758153211371788850777793627746253553139567121756596766172424370060491091791085940620872511816374137123333533097961010571269706724526132331700621312485394859233919191772401458694058496166245915202164483820349619728809918181137039705328485556271347076864379914818342550173760936657240393788178252305795461150552498762291509297845909785430134072931216789322969712855247060575058031841812947616074480530200153171971125191219493224393506143121795211114337473930318244728064359053088594031041113514640046086913059033541634062461272490733750791934218198949474555729682642160995858546546279732964150762490433095708703037697466292899201034077129281068478286278825539158262082219860774675471315505191906811806690528866023869829080774776901009260456344283469955503123557131682862579651993793769402490209642993503641264383418274138794629488991206036713391739992350982411721107394154708477144023914057292850066666003012477241677938013821337754530304839850357980579888844041101919394405294074106961654463818340005359223696837610065571171251871429845953395405354279047852560372587709603531546447623904831762863699749464302865202164840688741548998740185303611935323918681514678133050164388313212695512971753103460995735145270206715293386867660588973406827817484167405356861285529807140760482890461376678221229538824664259201158308823616477569922467489540679967712351587742036766046976842604918911929138434231718846840199339471874759296820155875852763635110644964242687483951861646025707848883781576819543510856706207705589790938704571423435104897759377762936727813694743564223670370444491937100627958647084425201065005448997368877737523565147372436068296027490172245811085120807102629284513494379007567010122107454134067189494625963044088844468315635359094830630011164087992141997284322611411707317002189355046459910249833024512625098958878986135596346778852638107589995797645253728623038431807160462726923176419095765890063421383560045808971747993339468627486710601714596528370616229859998426718785508146578833206346232992510214638319006162735957448257104051413097183946110525961491425092822009813117638884139022473674499503477069048549774329139198395413458356099868169942403071939855907609832048481270819749332065990252999239560577357097824000184830641657644393543514376834269613877824921567703164011520808037081629798306106309675811482160419948991766268307367208939001053159569315272667946264209388365267998692769315292252949874465687304271176373610955000199879172376272651157315496985769519363265579984105365220484277424517451738285169442528301809444489714009337127062601151437594343351448871122962043301049685361361931457898192761363107618236279775476804575181323090732158800945806109061683496783838063937037044644738095140341680535078500532366938775492535335801598457310543657714164943116319710860654564154894064015276131582914736181095984211086619604362728748156474353326786574637548968225925202197697678171999105502214297025200632453281097108109500896993397544933955136526895606143682504850616438751155237999819500934147847541232442227912852775856745980003666771897157885410535534244949116900150303188001388627814803190000400046703211485394579508195363589365724089979723833695083046337419328898009602045523335962766945812741901215127459399893683388605014375439999825596246330387340741467932505049083537773075120215516405206786100469231212835267303610620157008863920433228764702951836050442909089223524321273129678630178711516948761171191937131708780884156607532690633265029399133158966871100158502347049628300718251952751807580751473679689986601546143294421897712947739377988304429067385165324209151362433602649607550224325564071250645581975687782565068668278364928496077947723532861091023788961573031728052280933422279581640788721062550879948636355971818331741114300624004076637581825054758848433866817950476801287344271326138653238648657989950998800188115995722651276827167437952807260432610531889171757218361303031138124755204396935644978175794733630150343213976146480098695105502161551168212583462242321735052693924175732368904458896148752932367320542612445573783918297331751829515214284890565329227270548687541764305825606264539335967226913372433556142816848788259543516757212726923684703443619168551351363212152135108984371729486236133320101200034914574419666223655641349217962313577227123710315885089823679782401073665336132368219898579977016663286636685744138110370124404493357884737242465892543971559931512823766371533850111086220478967453891599918689939245980555081216656271066929153756780642560798402998847810386851173283199413271583686106561077880131745864001810782450861052947419005371958218949345599841699243385971844462124041820605477526246891570491512971258598972236923921162511222561067907250858411731659416934132863823731203198935320683579207611757595399498255467916627540692606273568215275997797800043472054458679438000305082317493477332587785308796891763432916900514821895074602078948418170449144843631676466901294223194191763355706603034052464059145717878770855569499667854485913758526413281017231520189349631018676504875814610086637876281216389977008534831219001441601466921788791541473015250834727167807252467093884620501978592108380795323983618276167863282572996721635039079760176531934045500995670516335910439275073985616804683897656909244931198483616857106796425649277149432377524708226819022953623850793370499529536520857167362002529435895504037270787930079902109916701458761002002057878827941396308603174357512129123513721066543658795981937742953464173559206059483728075799553553958667060973091071519796504776143341722250596332377984139835708080285959697279641007474168348321824053175089879760924774185727656248279649251409207346068213213422415315363237213526859992302106727306756101560731928734601679746290764215219938109772006891532539093581047711890736065144677121418174802049754134664818678806640191634389083795991514898807591096348194943608894437634826738312037149990994916377597550737906110581457510234868272469771810753987223435261912402701248022396363638520192443026621031928058537118183714380227001248726255884720449583528549872031813927731261213220650976016855699086345155257571460380553363299881877966933652002646653309148159851102397681306412100844714648921649780660235553301263548419416768451184951482767113764455889120478165725509777293990521244130332250933609895850140292420913700658255618807079899580206904715527611262588058707175704073417248074712515748397870843954089779697334919231224594703962754838796232381149774712883499920113865511096362364175676286236598996486419961824821729973250731695803317380712105231133740315979114035138612723576676747031566992213323232852225976441708311249262915678539970226651165004317909232782441810629465702517891241536892229137372765073519807060812121254291631843238088311170792259299709758035901349971551633199212725626136621869462093191073376356553610632029811323067471904600234731547092679382413810367373679525686175522843347158637777752432971999910797657894113234357429414562860504448692899857714980344634876877855663436426802750262406797923226579496759165968350162395780367008815433293920472315595698897138392879906346662093990747518314187525015374696956904184086967960445754484546342245726225193443260144209465992756489726792040225654121954619461883198052825790170215337568878243830892882962085868047462211585389350730628502758561647957069848864106662609132323194110536637636892438645835584786982342534783105071641120575596888764018863306813343033695338262576153022983299173560565336609329985409610239112284680336665440804684022476862243556681342362633472789486170354178191177328764089632889641674115067519153589399413451833580651157887105208088755621227464842567723635910921171324427793652875707752099564040041527138611218651282603183737420077008767495648827779990030805379614957412306281349892704934033062654230036667963468800798970291011389858515250520704082181555354853896885304840395395664438585036454631405317546240440028243224925685790600398751696299513725833460758797090700891327612156904342186348863639146653111331027573180470534189907492251124462063973615307107855419461682837378834249770528936358770743186281846288123272581536789796249698366437064312995137389408232698425609241252213825136073801078107911673879648270441757565374480483191687537532546041002943322222564792246861029161537779670339288823012903718215408657276643581842990987740410446472515321459744370231148709826192800532758049606154770738857746427999696299999885369341111383807965525069306600516901406819623327838595284596548002204666841140777103175355611172710142192021489994183347654293819591615315319422945986937724708768961529733144354281721850648084344321648048140586181466167982006863134844750826431520687849563837320319952059564538668718096201785466430559152056518413005290714636518892225835895549270653763597916441889931781565234972963624214177281069778240624825963343819403522421693706816903810563205887042181226738651680887700176834253234477740700366363412201533906126036897741421869534312383336109911919844281292619746487091316036166067648050726522950477726352288081681509165200287059413678879678714916591953814068452984585141832161478990657414315475843318180931818945010449249712277114298551681471303085143184767585682870121182674230285000319661551883305646882913903987153532619622361983048474443171609635338051808437454403215346119006850432149214160242178376656141282055643991926135649580244648601482436321099524702485436053366282971528616343105055830551750156353876905201297568609492535296321190760230138087964417039917086818416156836386695422622340465367584790887708739424362234301165787243106755601280311997281873532004607816227870591081038536384896428015612061522511708467959570536609818712861612778625471108561997341669573123845924950811206550006646017875413203058990893091827429799260835726867086262579061534379065229079766120448261067844305715141345814218279315132333775793752078315800627988312903920807434223585970177894298302047900185267930467164049916680357006554452025453661098710072993465342735816440619202988630336200242652531180979641638426413205769254038758801520408955841352892764188054635419458150665479380091941141855202715464835161140055398857869271096964693705247694076114748100602292863859110843545752382294766042651747096234658751933848376437258312146012494712499058512201013788907145795203783752328786565206793936886730078442449290151246837782089811503292831845107277779587548501539549514065151444672752415283300357772730260208265349696059597253488214576627504189844965195631819628185303412534159343149503066804739180188562895022044947250545657129416466719980834768478536700073706828602353795629108683262710625409898389188323326333209692150390153831128974362808726422465017837899085137181701878950949928005082188000037247426609287323669727527288576058079765248688766002897215298598048155897390280884014568825697691749232996573680705505550784972977269826809921130000696885818462296717140215101706099711716585250144149711608497983235468026807724708204359701244760836771546590868982436007691300124371343374660528623919918878338610194953961907241704898131770815952634252991730558459302724996489697232870403601003275795475864361478483141873477962166051853103505668864215263371545613988299458997325678855205328489958558011003093372302194268582532853328147569277724757063642491585638378332212357636514538735946104912809216886161501123340725246640031043145625029189615024163530756049877882600887425673089692755381397217667213635524321005509207036598415449162142129438051170623095038630293399826641021128807143960941194741186268332773157787816989515355013225763913240856866125945202790080547406195177329494052266595049844711620124996197827878894465970104882753432378809592597402877368998107344663022291646724675148510237292249032027944316323342676385666325622425908407957154712430674186044502638421928657559413151644705592296893634822207146054463742903961140600463567169950807854199614776449070892051007227456232140035272352632475303282057272448198412119678455932149518637869025644108117789780850686638067678004360165696631706057847645240284134718732166426105753009819578489795744459033975934022289681062293542779210417193404501768519124213477669014609544701156825661890480162655668545287482899294632393786656696463657503562336682729579513924201823914881975396831220561216929128366784406037757093723501911173160420025456337921029300671140774950035033304657857359080955627360099553500435573212066690121747539092622343538120847398899679495722684358668538008763877638085599342676049690567758114116677681672314701006670803963544240772814188630798827540734629888986126068937123205419573463644815090683984875567861304207876938914780675319874427630123823149990935101485135545835321534432964718020739146727711907184128899913012935694420734618935944005149169062445563666259650356929187364952641853879672005089589483157604512676681765285584119775244793198120216395481761546600623755353831343238968915290476782693509061466560128031109655468030814928044453958011652461940280490371731489267661763175653398875181825050747148667732751333925046577386872385896902635174410567074866653809450410120490437965266367196582944678105516719193699801766648771668186426256394000962271050790488226845826535226442315542398865935074701877937218431182141370798843591000321782256978085160031869529006083299252829744083897990562036119300233333459434442860729103729102998492760063354617926399685036293024047872296169725908646638379597858329255345347095945391252926915948524282541324668273806482034191107443639520342798552418669488445461077027106986364739491195269522729240298620970493295732603034833175433715966163338698351200658907268885680134152634517216852993193469470174959902244581430236509009138934841821894665359407240421419527342770214476101440359518079101126081643708377773833287809919059058660268883965337020001981978916720747806750526213646006462818421218039451881148282011814587005764451130296453083397701551329351319080304816183898181452857398554225764890189119543737071655529022234440423642901458307170411491819548224885086754728186503128411357985840685173244055430626106080527180199199720141264748189249104669214957939378846476825943520257710026890593221236571626435370427882513028204050168337126757952542822966519234524987786007359862880373458982211918962758292032802591043331179012735996206633283685830774047483815920447438806703798273014835113120309734969517061964046626207740062143850579356046215997656143809551331122911635828765930268341573337462103897676170085822104436079250082654454811082069332220943863529303049561360193632880524053494498959571571862889937829311081550013654734136052803793517168359464251526398965237238036434396254627216442936197753707429435226471854486107724143689947186770776665849483582355579701250796682873485769491851735983249909079128239743360233063068413260131790617661267960646899674374441548164834512258185034334771123741301469946822567947665731632408467203450875886668693466954859577122668687483538990374227863318659242057340224925218123719107158212248586041990916398783752120980596701211518610364768384660310976157174136655486664217735901269404207172752792391011300302669810987388729241819089018317083489805080735265967462654693514477793700713579017853447513355402213667021670444672967912804387183648387591040438659293083724263688777108280237081497252815032044964461605454530828853492782881978200833213038626279107051470161257027112682837172083564281007697994549757337056889697138587003065225599361499874981432411642977179208259211328557564441879828786467945072989476072360596486453747124115089242255455309749489104016547217219680700434509980946612475781076508628007934436901020278521265082891319068502554749896020408598142102814397212468497258046924795232665517529435381698293847320412110533018791873042444128505116534757763912044279694677057698046252964634159136944184752145295259693544538392592934357466477200202611404677548926105352368077773666901753579910107991062485581550291726787526038560730742928743038064478862112080149816105244913387135582762426422431866189336930191371080727725618797467871238258832068139941367398833663050050189040898877698426209158719953682435387116969702083582756704791151066895679263175445059673923261165289816663771446110623809796810051857719276919693634869710448100359856908115221264235663435797042961693028560856576890689982783970943955402166462283397500379517472547845193320274745899631038567323623490717729147404273494614744303027468760361366464402557977030972403591749184369058371868961003687584602268360535658529219034177122576038034758924272094373414582194644304408431200124661165929396505349492180229833782319016635942086313362627062819551213339544631828579918144873322863495180516697793450922266918868476390278597681643793393436788897003880953232077571652673664116275665125899720936802608811084086235947572672750911666686690273920979834950815968244702622273016640787447561524607496247661297924796728778637964898205785740485185272484668012564753648463826252433090621956198907466126606780603895077060019667301541140007987090663745871486004317969636127085109742828951290919459455953635315926385866753665583450360385039463341920673608956232535687960436135152948488914248636730476311660620168239859831519990334187982693778662602724451060717420769012600288684286036762359906789230910520149843183019383368507208964424064051673227549655632903899913923362304757722652894566298233064202451456048576177080782442985822841292641280278800870349192998590591101289150197633867744533481223331604921420695715232383327670182664698200793489867279866007289667756489094892857213578161603483897752998687406731952005736782780440970684196857666394371738737541718623192251734153918533932041173197363338850768305139889010819247154630533792277969923744272664054375922146139400256822633007743632180035317774210686427564697594104452069658520500966859409692341749733850807903649377813868530615491445590769880746934694378876120962259905621274226283830702973914481460080950119695334637382989877285589680631021582640069974830496724401893489555617336350074214175049488114694635923265802117512243111345064602033203561688214877204607683193880659101907898422817070705323570519619918455155083293736730485102719155184567747309174574379774142997931195012401836057146486844454875788344725624584910084328462198985695409970592657399395108610162239855858765376784682220858457384924988912911967245655834592200278398005967496667838709173203998355029479024131932861997339969011343813162188817544373885820879198642912420149923629410687007693858581432602399692093626274550860688121455017780068942899138057627193066525341071986519749898036177193056369244639799446096446428007428780901453638335691414748456998486108971410595544208533273944168693133563521817803518133305959390142258761452516155056464943495291819108767477141431465157938941912680480528184421516051502867107771220583347985314982763642053089314105779034486721964513119363824901946758126347522352918648012833801813417789995218127730878428538911417934898647936982698602518182996196435171538269462413016904157493395176425545804613045230577104838119766854082084535431040114398637796942957527337688405599432046005604422017646257944933657732569605348207548429563847317764953133779873387003370667963522908540143283934274969088601782586841667248980295955810104105035858353062396476858471834611404714583990721323898176748397548430486556699898607284013471990688732348102934040763343004690055493124616292635402106546106869726713142779374283441072209406704545197583102338131605204270490737731991799479079664677155476788007829348203601524430513810368150682576814694042625547585779704514416968181265489052200575376741528325724538649588651835055795018068954341289120899897253648905763598592651533559002092880987085721167371212484053986994018679413121937637468784819027194406113607279505498726069916975505905722505430563897622137548341401748817539531690839135500957400386009884734088955022907946202653556534761170661647300067968216087320738954789890207674014548543719369760189956283213454665883306166296272660335099681560369804340032160255341618154849319108382422793898198505994782384242937751271418269648160872468338113284292034736467536603719867804346469746199661416888868972338307928171936610819549367563226295102916137444337429369652947219943459352574292529799372147916482005187455586465893763062728106457558555688634365436201782938735297486530628509248445639667256541529547238616443927322074923305262527570038156131046765549841060936653450940548767647127365718295673764260795960253219407100334500224111605358011726076968407287014868156064479689443794090670475919143657005050676989280750888525139985434228603960052082894621247296645903636411704687437878939295258881466984796312724911325019617467622057200696365988384683120592292514534430958526410303173713934788674537920340430313427041599555572816604251181101170198336879409873300364400299595885042365823251440237743839625833471100332411023203137302727954127286054427371198407781167450711489471508885045244956463170911715365479102688115457767209466998274853216205711261686924390253559294441895860568350610291976669366639061979858810391239980056929778565308724275220891206380641814914815517785425863926725504693352297362443972921273222470788504482282669738575070193504151606052369849025266600462865793706886985369874902026739102693141204550215576970196966526845283740945146978072742211885240865583306261060684078299352079504540794271287882509194960916182429774140210737656646516793588989333726971851480671454886294331105683785289740312467744197918177167749319403388202605973398429894037030892503457674286741751912649743901255480039978788945027224035347478359951720234232444030352330657930063129146644211589929150820548990467499342860515717425604187645932807688307227324064196736171632128020546508197285480940859743844246073102657991148647263835397140585761912360902823140343653049955062771313728760359067781362704745326093198201471153623785441012954424017500019698046984478819020930361336836709089835551081735577487891832676270667600286421178754732820903017001037729070941308555412793933643576509163427057706228766896738467027026823679621770698139487156286145387833711745825248544417069005210899194357171272758218197258434947923606788986167441606477123378091439840850508113699262673770136666008686754367993461377503256583088213364081857245665356534121367053258141185593301601937266389531020694585872158899053056671060953270239241269145002775035746190596389119559221162889940297356971369733083553353600654022399481837840715129167442839776733882684763594558074553492217366680149212690795069977335435399403751241085525516661918255719184829050993077619715852417240494824405177417599338675271272095345233964420275159576119149463639262488329243031564570390468905867929022983879351303283727371548709983287330455466510578434437355325279721006798049172715767859865962505979614066939606665520653063395192665212203320713833830412323214403262384758056544637323633779905469676897080828210675252162919214929393241470832442392836431490704867753869334808902273116804385336424668707055700423166433220051550025635870863067017405863320836079184240822695362790778894477295560488671626045453440105334440872450686219737283732591397863682049861736843923645706962166585233964510663332319710766081974086420747072836128713531783871191614679644434991240083297977745165819917903133949303200767512014204549444983731994108145754398243655881526501539386089734081332802571801645154336773213153146086507429747422959090199280981193599409482512475157694740642558181600438880291734396752092181602561937413169271353835848638584568270696022324769404062125685767711650655530463496356885599159322273821916212997985580052923797889797092946221710946992794025422701549937307723740959995420502612228779163392130524847466592922878946830172018905781469186797161978033901941141577733805457042980838505399774851939847733510858023324228125820585257741553786344749685265191162907490244129193760163354007819729258968538717416985992517290711480293935387456119512370859396600052570576816937361729685313174846074974461471756592496451407195805370257984587331485141621910708467282753412422024030095108587880698753134002165594303157378963263661512854841350531661702417349847025801936107698631578125348313388784597703349569245294452099006123282456524455399819906333268916162472627428583145381414533524091067545919412728138762222494045423431533143951498065618097469800409785323007466332695098383744012989031562206749003297235293037557619677865371128393969952464984968037212148310222001676826221615810524538762169663323756236547527599304300288027564905917713477867031204703403467193686305633946808112234973004772614389125853156920551933907822851383701255183627110060448814327790060716346830598825736074580728779881792882196416831333141784697854409441020032821763805983992565363002211808775920647021035641220334035184402992583287882500251278076461033344631188313444881008564741172096838391032676361787706586526923199187707510257315286469369312729706510464763090726422240773488563720317607970055238912302110903047535843145262334572142493765276379726644002667470503776108831807700007275746888837914190966360179936071924102900767519414806314817311161241194901533729817803060820196109467894470184949656818933472587368834527712114143893954494032241636943881990230331358572375125152597384818192855121435903611166312242715608822538822447005899050693100780991000024751085061310199207156596453247787214102626859343650262722337677951285679302300570379535633347230280887621437391385569735306079758300574212536052891480960954091420212713864398933031248707883184986869254813003054980178977659131534113342624364458980654964661071963154577236225768693552131331189495649219051066567914592958674423580113140203836223386525658028963261244581618698663488212007297799239145854935188918471835789900889669662469080601414885786436154947432787521913345472764219507131705425732987951619522707377511973143325244635646224688377764710766209880640643090933322199684771842948604611917815066004075371219837833587292583333538108180600153199149803047522167722316301211037883114953276333400694743678324135385125401237902720350460497904383316853305898573832774183977742134372295066674463057773390322293876125422665444012475691679538147392344877857035386512454873532406453292334371844960924535335888718734944476706726556419536539026058008612480095218212993659744520275185283838428598659785504258220210809218197544910936009366011391071221780230308094806618532563455475250993105661539312476051315239749543803752864225929364316912482379366276388457056942797720870271720025736409517262338024340116206884367023574549129389062858338982195559692924500512499532486583508962621247625368385480264963327815057066803658066599609708007354562737336384390223001234513880432461012449334449543257224748149684154586329002156059581399422294191950576451582814100373252571973715818233584076505505493056673172855277902458842305332797282499231066389864011832865359901531939165718952143062746402610686105470263823979890992022228859443944209751671924306771164805129593928246428536680672489097324593208958410160500036250765642371006675308794759164662400252724465955224010696306708828787477225487354225904546719691933839075377183062083679629816918638617010808338387933015603694667556326001584693683961196800011580163719139395811342212291147162821900143756605162610569078943190656398184121716548560506354787103618692766527129072183752382464492959408365353997402373311854828031792003813013887155704468366557354287278542272235356807510258242119878083521650999035495198313079929201014152632648950253755211159178922669083428104564704253412781154409436991709495188356003544802901313092737151493484509011440029202702145974319055794679773287493973655311832969336217935003083138692934386681551342394024455449738722594869824117049200966385246307339700476509498159538481375850233973151213218715203708799436360660259758219988741764311248144435398809407707632387569655743547161278285657295006654344924901951485454961014763115612013264431193188364099970422448939593299935128000675104252521791352937686790431840121447988723963723988588888418230038090163593098264964113995804448971315403025474412874460059337003166640731834923991724730899126829484869645191665389194990799362483281151801105227051827379945522662991901070770547934191078439538892941502993620365764943090412635018416724084943660799895907315607622012809687355040712305806235854942486551447297791101419863394439340655348664280385238545922624732123949914124891897557304271341134516564741566328981893932120711023659339555490747377498160867379566367982974885067132521683703739965085240435033637557995542555860619713142756528976473783012770148307100078160936143676667680491810561901054921928302200449113663824203597058182633766081303600866544207018369280647124522488973314856011667216352695119839534473540956797333506296118431368807690158031629136876622491191527964667684443165427535843254691188592818109619068776528581791222939284088949744155819187777463406221256560933437274345151814852940917143650257848307603789110518619739273310447744564154415673820668280246954793063595485487432715462176176797565764209502933478435198572669306877729828446030919709921287028289232785295401747084332144300195129547271820056086800719436806836025639977592304360369058672012737497885300558333729204889193264122991111323514335136901047658105948589084618913469651212182015953364201897610014660541677664364633797416067197025471453772546774974201137922052716446010069011394620414689986604219543229147126319852412836741402621953917122528390616565573368160102158544801046434978089593725695609910136495176506239710688063388881222219858170878886836093791637410026301468520014193004779479555611247150519269057781689251740703235541696536415173001892699054716440029374664808894662084374386880402622759986972802524316421451739048717241988521195609970828544524534569132651596665314029442612460570980774963586225750330122697056537241895287340822708106445050413482698698746126240695233029007566487934730152647640849166830925494724094934920406272397783611145325296542681392739874899974412506644491963483436259779486726271120812149689278594767509976879671382580238812110074555828217352298698066371920964613551083923093912052346450253616392873367651131705179294246124051441446286870774169889193322824650240115219566147814609918199237608055436749980853641777093983687187171994496270375228387769569315368507380071368001917580735365865774016280031870265676244331701737973208100648624318781900581389515736501900442802322435889702741798952941398848458448616930180859819450570204360290907906980316151381236042889360304872672479088695627600767592398078716373126035607283613288461584384043580412215513279719378562888297615232163473640328504264579273629701086699500814929125271180548484234732547577802100666807626246495270283997033926552055152071497939490340786491376322307709355638913631652029250253099654959446360085328407364302689755193586847184267341533235782268193006900220139568279986215623513355202313867404463487009021409961767932801496119904263842270955737714592628532524486540624261805220337658339684834466664020265765721973612238697091469432462947825198387966012289476040172966093364552689459105345029396586129562933188392834881088539275474794494881645375619391645411939815700184026923290515844104830215384722566727775731114626512940387398188358739480091691344309626288363814539009359872047647913407460552164207709360270783147300915267392143939805777599976567083149773828656518875385967470897734395754220819649032354931471375732752382684708348206616536199074237305341422732036027483746038737467766536302436657997682507170860073393063972710896970764581579318303744265401672734491202316173612725070793611979722164476327431435284884465056995739034098966694135797831780862297971985650817801692219402812624927012136037055872040501320838905570408074640121413447971552159159873309129638973615397564395604981531175847222671314461296046882293198185283054372758990115992327045694253946359994362024445044497933400484174614596841877967104895689340360962681464496218332363761308713829989226329752906138270080883784979472425645034055116953152471359281689916969591124280741189150991638797032034145518443361068633464996101335512624516968200491018546441302136518978893042792964989056442624676529753714386355312614472430838442976779300239335074964008520594596151455861301929615221573187731503190097297421267882545846885005644774581940406098515319519973301808495231465166463987670525475137201085261266165075151185165710764411651045685312445504553767465015740946781063600216697189817198396151873255142329717459320513235083280614053078181627936017213572875269153961384304938678785353868316629800185149640992684118015789596360131494721391458721697970674723984003251618994401554507765373071687790918614573367868495277393704808068067466787812108987525905195273967791639897706382587843133418438690617035007347323462864730214689172721286570264989063540289796935326882040332040919307319922969056078458134204793558927744635100561497369186283326563605018957069871659693841409745812944358418738678599543143040613281499986796722699423947917049933018700344603348280105283346797971503664905002552459842972818635320535926624748425866074932682714065816806674508347973900540253036191124902934057811073380689127914493698691948128426724348292276283382690401303986200991383932761483078747038463175688106298992888879729060548905771386402090595003764381253030323825278115462149712563343543375652049316339004899284467687667637212438835908298487321841387506386823692172786850137954746211305958296460318846198317756635942385318156664656985741655309575863312364606548533654812671432240892305536828845783497251906323008047964564858977112361274265897737786251167823421560871361073658985050788292478122612335835587934319333014074459398992417601176223758227966696910166096553801524013403427614664849259419829059380172606592686880171941313431387828801268893286704839606751087708869819583633726864235196128262594284443581791775212391369803733574876131980994468429348500813796474119251749057680287808238617115037326933814570403148838723318459141685388469949215287695620314579189056986532399824471603727887064832309434060230943729813534584363504002802498329119354038779059245533979778482113571378570738970528981462583762429504853387375444642219052145377335195712815667774584638077427121868046202176800632905611675339498922503214985086843942147578073085101371600895864231063638743664498847003167460032152842845316565132017282018607185700163880697219055164995160603792538238244034217753138724224729447457268667152674699577048261808329020656546756126243061673222560950248064629594046959711677017393801330226816163790310197489248254813492292116024214414253331737520532332412791193726311112537831629933663101301020768658053443498245032865102316925104868818565143237939920775643103744540018244572844968634214365605428769744359280648132207534845935080969276965180314311308640951442674965351394428615910688246728224835830047202871513878541897998748808224338412703401504829845934430202280163914858016122458435101099168322867577796648239950891868518051706545114518334365292535700222660657884349332641305903915009838337177443681371333085187718856112541533583639466694679455727946265010789892169311757905566996877187920391326214832751953915286898072034537287990942293199034644110580649604278617119700932514710531243835717041346569332936654969110056586511101002984043445097144875346550296266277327810816956528130651072155895566445201545866879216960231516645002353021500929251839916043453850401220674705269740664953879772227434382919337696989315120095060151811350362392605170851831553962820174340078086986679368502787168887949250731808495838954994171132666247646265514571806735249425783203574401695834871166353201899224040671766154224634031120614724652883145268577778609832261109152256997342887234742405868181307985794552166172695676808882997647664890713708761730583984029269423927901931016956952749719679149677040795509450899805884166042355402432039122866080193040052435865636120531683569189962881701570850299261943556172782511924165511282437628628152743129367050184518871849175243804099681638297587310504813076786420987844142128584142057684472854389877687123268802230356672990720253142650486913364379029605805137038128328238826032002737674940616852828755844414907169889135611647510075147213000554914953529381034653026472425993271000286041261887671798213001208184784146931561203228744370378068286802111585300018591192217246000077702608749623612107832126905188210151538474819120061497307908676653564025613533986085181227025772685036094515339278576033330392397682920520373273992487005990407405556931419319387688235398623503071092021115307410646647717832149216703650075458568572442349778784748922878379304615501268722226775312994437284663299732844718500614845869930805863400120614967434397047936349775855409132164253685048484984444953921677029693586926841753574963807556327204021587316181435734300758996097829346276243624280949426070682470162239749628954533878797387056497799248957696817247721722119362409220437523609270401866757794619596506614007346237909625373091075178162020962460023948357921341698591678500455176559218037045126440079862840840664983612907528106156823023319865640802667506136545887388580105985272251249468506189133008668418093216136327971466533467589281191397381467720306033465797443584372070061356653380838399238981891799694002402655557460249205503488413167926773776300713989880763022975727660867660629515057080301725603055319203157661423917817996520215571587322311534883794910795104355575458319037180705853936075164749409590624635938022165649915237908408052108169892248091523472169636627547562945571245124392043438925744997803249920832026107425431136573938693697789812971256293731639477044663453904520908428889297329738725592526235020890526726430924252198478663721085757862703122181516857347782669021394788985691331294856462956232876169275568407777759278944227839258124943435309728064291604302952533924558322646843724890992865274757275161019119441650065201504017592777500218540846594237080949358271691674003474186405878586636734608534471623273352991795266122404438184998197047833843572790019330659166045780128006983425154328689743496920780343730399115194042256103925441832769334209041007051141626383562969266811174983769763785130391179907412018244278963764764900297266703481853878707682382360430213488825005244159127655979370728560009444652965356494850870322851699452080908823854418223952126408416201853288536695612348214784236897145686972651128246733592989811630131371925719730971668173296680034861884690197594869279618840244291804290593041927576451449887214280048023720258862906366828523489306537728879596148055078933133013860607451114717448694717295324955532590217204935713243921097237643922527342278187255134382468797873230829309438699811593473231688247347406671217213515154190103846799004463155362471485614618152237702916003178819113055803440309237343953341665105774041986512065285314244598714568756564259916754952350192178662137772331604201844326532841806198061946077753561996959525003732275051353595484146200689554992041099506686237676649426182152527791743286226072972001873459393944754419252380286322015149731795847239481828360053368339745332674434456734601357644895266669992742050682025533055042791239410877319973106650541624544033253693808005823563695888708142082162953895871957687094392857142651324761604667461502518895188994262309969601501738844933596971434587321460257252804877038820436116247525390378139500937817810855464906362172390318244732898997128683239387159388078285267408953803259809373767595856692029571226440003102663407172034055526488605502876437255096589285780354123362155875671902382963873089385345361140469154733102617786888844365116225096712957652293438078348438983420701985569769761948836308225673927304207745734736873573011880603327982440188200249607620197697718358480517345627875926103418010811533169469647098656804099524974585132716823370507837484370657229574131767193374040400760651956071326452608744392974259106646788367779561335590539891919648854112665368762777214119477773459948925000809413930713246784038684850912784316732711831446054328014382970843496511760902866084630941677354754485249402436924686458134248052431539404884874525992456013431360681614264143431389202031367835042286861046674609740316285707374654240856751126799222200430928490591083942413780479801984713900853478271784885202630956156641755868291467402336336395307331448387945398820188777413306391748958603396288866340628870242971601118226382153817920303747240540924106475173480859995794230764532755432064419526356405834876263090041917178565665992832940863979892567373390575386941496414278040979382447274038200898905746815945198443092102947267629193145002094999914609543125875804638727521352489036847366110250329724174079628898571173085510442840813424715440615557055586509692593678368663775097792432634390932574178015491522713440816361497819456735196892711573332767558261671335130296786234990399985736049319619814143522571727423757159955609729040500049144425709710074371586849365991587303061859568275541865031722454681469980534104037954719593786533347741085940718476084436677332241599481410958515497064287002080809764593266352152859657084552802461169021959099640674085450753633147431377676061354483954374984256629627489224579418635448675938552934318157828678337325294266189966477651012958028043535029346283194749337661832492878969851951965965115118887251030487031796865605826363397420419315046957584734258216383443872536160024922065949462813477750127161771371265571033351786665979243242781726201784081240203617426248176862054247295014351946193459048974839561159917273740506523980049703890744712892741537593294306414084718689947432369478366071951490247527974473983472939768456599916094134830871904938745959961957701421677263438585317182921166865567932851056741381456439721822748819704129031691404551664319676407897996995261699196475760427171061700421279634222186777286888227178156711414292659351718746674565798809223612724991209700963437372238694254425418497784746191380385468737549623648005535357311118798940860879630547024333982256469549629802952955234189346006115541846151373444821490632235395319675356837030616030794571722139889415863641300117997218828496467530276678837312579897514894338337610592767235669570154220228623998290348991818132440427407611492104159413056142993743674101596273903586620258674895190568352864693029729448032038397030036114026377038565438930993820717911539270423245760000289815721820101724029585965685147758193580185267588356271230275263832394469087379093294460654399888123786262324549305459220068160664444926044786810600978778137157385373384464688958025194969494053621685050375250401619635687674174106427650866752096013511912306808303274695567971435012588411267900251297522575962698426609934253918720877228805752919301352107668220225509068756777268264300640698965159630820451167554045786458511938859491116959177833996792657102549216343304078353829309663475350881986613351884350117255528596985962988746005082279886796877260294225486885401905463936740523383341950353896154387436212626219588115318359351308543602889299047837765663936948535268058758144643030790415699017258108039702030666887476540741282546750157522309267735680524278775836773070333585650849275153037308881893881630421591833969128377563607544156211262710266267469592929635119495095933983353315493602657998910788128636704336515966037347078008511535159999367453925371234853557146514233425396288255669132008477963274982441350540655569168027625897231667962521268976313882085585048969953473539182142107824269420652888669424940012147660267816410848293667043547681188285861284512863154576901579358417679115532817557716616959203924388286987447715483383300578680189940983162393265836321361107587181326859319429056794284760079094450961717519880855541747217751268355816160534730563996890212725053981166339039568788090176133712458419211169457769038409730877080325828359634555448968596391310591335084798730364266916007590230509436620441103882789367414408769667402023420168022535278719585749477273192337791206577811882211895862575508185173473614336523375774405094613229002201430615874214664451449670048422939737921727799347018160353778899419678467835695001477866026370125245739837616073812880310475476291835679117198559505069937288596656956281645833708237509277132806407664175969373677658864809790707342523654050356352771584778736055227640277084530682947635124738905912533136492495549520389616786451516000289905140875813800978058767813884271331553523792432720930904818723755974131911241895254594660324241665658263363732056109035829933180278128429805893859610754045691519105299274379019995697604411689188196681020898118881293714273719423240684791235328054081623577879164025425151824141263740258064272610052345125246580772184045685571182492861485862941115425289631227465473910375737393317107508431296624887706756104410692241300103453241934140112396583041673740819183687762811728611347477349609290740949116473138895683478540750316914590332658091404043905814650745906622449471783232078435531767291698037391314492387691649382218827852823399301760844001560910860443819344222639598969801733765953492657753467055609059565271024588890469720984284491845767015357803644305880299065347468792995977131991641947315556581341790289444739108963177469907643024610698428018372475156415870499449700125535058821238269358272852216685295090634736459292907383644194642926333084584721370478900662314860241210200756752277484246829080018260031758604949314091018815204083505183415001170442447555689539858802342367736992055380052254210187357772435586737313023836228249626118613692464082272458752825988327880830994623671239418876682250528151054266966467114319786625384600452782429167568267258786866546899466578855883335170510528488292357393080015208519738411327243874716709673793845327853338546176122259405128940530488569969240182914722669626931460859817543013123090643608821706216937941909786063579295818891671560693432805851153159405544439937517067741641894377642661898212359504946398829656375587536710825125930662734369263586712573789563238507271523505850820945179155247021429958577260970296904695954153456493435001019170496832426531291508687015087383788662723444052299227796584259862599027645907150534306750375003401478700098950471692834204047777326348821279855539280695397832876081122324641330068268809586265865258270980754804145781854128657398027558248116031249836887178653831015341468566862282789305642999333324882488692913644629349491876313602462526173688153840110571377505017070261174791260550247676863671124739341442714850013340346172731489985294919143304300207317429688167975468937588843469938209344598810846815551835798226716901509109298729574563254464685327034138192788322697195385987463183324423073504185433570252633394298781800486885764008717975156660640960525924270136835450131909151227828840787390649513940434380041373185906496949514865990594273813916988697660104624792101119697526079082788873800466142345943409832866484985373900443487043936032658383462615148519717556413513345137758871036234564621611690205241601787114500794825860553636090655364286469623127382134743183011067434571847409759416960218222099117278922895248123116430762409754413966622369310284468591742997392317250537660204444015520775461397209544786265089028607552907258104859500211301675702363664751499102531374045451697758726184036132625207560403276236228083627689570375902957725708296530983472404936526072704317803799850690653221514298409678724648574327424816841542446913277787040892313166406836267844140502275174451598334515057356093176127854487453046390428310418919233079455559707371177699545355804218130409547270266634390494921915751661693142944317680688079828739828747002366725648007462706678193509401093153000253950712189837372545924416809083610830841106277371617452331979009556086731832685254449141305876922094052465620537793666403886388599313905198782361531062907829656685953185781202574495964023011274942000785980257203093594757805932057069541946840226332884900947176825409227667934713952013725824048355762126987576516415192460704484805384375738632509057687671026074718270451793774889742693975752155408560328108313772423718426086449222554865215485890242474605121758494600644272676403031004383893078921510254881518985847722919415474154129730451472574207315637864016646748721172231526584867468550499199153839623083658802821587203164721927613162168284081837571035131147137833098182154099229552253861563591918158266190017268939049458811632365179845059774591563778207445273099959050951010559034662515645084003796348582614512944810474091112544080739657048717040896489520374019901425832375688808508776706483226740157329491348834878215246302319991763097860887654112005219117970306155261831712588328996120791632056955942315106257646767512837161609575025968277304029556530047715794661716180529993079993419792951950465552724327507624178403353783704598917571650750127224709353712495246651351119671959646283813491558773028238329316580720566087081286601183947604321598649328246881684117741600913608915834554718261169700692015949473431383978677914569972278892762408958042564794994221955878380445559860952074554480096999866651818043009753398091409942936639150456299724841882961016451165056036863833094474284122378970043244854212715338561946140230309333050821315735576309797118761044823898371117826819185322420853079281341321818888919502828620394533789200523701955020508229995008157700634707833439942702778896032023552798690882402594322406811103168693553687511575836861511475548870404706967988037326355491876323331011920622888608283496512247404297279049613218812223216592723731688193608846944440906132409991071959368232397769440051867394724408712509140157521094507172018805349876652868110984473123725091579173982423897649630084100064030164502172305813827707416917723440507843659104433459851657354912337265288336541035827897946831540334478465007931336349551343704085467230409172030897026840592263836881100230820000285366080838891154016410507185407834426188004367918635547770331853626647623726175633691843018371651559478957586363974951384904556527569610358500109197647720249157992589688206671482751483421099468413049410096170703273898209021322637985929723780036791081061766483854773204315023765603972901534916634688568745368130087025787872410116561045576106860492828608026796364267391802210866431778159017923398965272186753533967115012798851373997323887456732671003471529812378326562121344518102641479031544871854654588412066596029113036571616286341155263675227816916106476433544154631396740394795178938804237606524768138727725826464505136476245421655088278077101238561007320762228184153670932529388609399683240518554119733699107733150829348572553606159524884878381875292654886465300400433940101200234270580186556490951263074745701222995618981803743854486797179337658710522996899584527725172516293623870221619077706266287417059762903637959311761474357378742167412270596328216990207455613382687131318066099266675864965249008626007890941105464211340826793552061655202400238565566145498217565954842771199932184245443156257255965593836931469272225895065140338124920313535704099360472607196521661249377782427998646264270269754648908610593696647555807472209160414276130687040467621035250695382248481123509464142613098672489482969723182968567648134771416899973856963459404799121460782566358042790730781613139879159023395352116639613102199275833516225106223071216718635545881576546110374673525928711617534361221300213865685164138145772789742585611804282034826792217488271600941530902908396578775887175252982376290725561633979422230480031086151282135601599799713548178256404643602449590687648398389368675193111579914049986261493483138258235906284884675306539955572409871689631534633817012442444997781956416422870101685931659074623704347281834667186548777113660150323151433794597622941184419344035027927988923824802082337564479605428681228743659044588722895405295438343540270652070677004035918144368687661874138792335773123080978245893117252882528455569943720402727800720306114205358996241803837320698327573922743191224641231393894946990799583134673197461551892831624073378853438119137194347392864154568162166424157270607382944532018974931600280057745569708855691482265671544246664967125283542486096030483879010709188853107063114121085627427080943574197120752789395729920814155028940605807766154893150320641335124826283117019344622830926679881867543655186038164410076312307372212135457470668490424937537405345017672350268172430211164375626168459292262545431930648063560174997895416749586944871783809105053338592776437139147116746441588792659793809942302739588051550557275899993872404938818159396925737526395406912892905256048189597099402661168300316163942026941359041227343351394744718554554677523705713522340202307268344212111584008871632773679902282496967333974962786917985916139106889569709547296415662336780983937202572966417390757172085882921742379404194566548745273313938126452449495236077176254034078368372320186750798750446721096167900495748729722239126387382805493009596373969968634405821695947950451881340001659557032674497970087250877919502774175901692366065861149734283468988116546147720740335744322455157578997762903267130755250017804954873520470498686778361449216489329637225658812789868531155723943902530797927463767869307656743083792008280162218573378098412968577374816767978451253571572217299207787807347476223148616950950929085695399797939470046157789634389606821329289793292004973669632405999180335577548040408617356791584596444049218613064832931097732103831656690425200539907764891667402267152185933069219121338262097866813723878397979992522880907353565648504098044849822656409712167123647118601588856821064843588114543755631785290082685455399949903509376341848874434036575298717715673806583336199297278380098831464455254080310353524163974290380142923278941617621166491294724878382768260414154248217709112946916528915666118274868613904036685211290322454957591586320347597093308551095713356303338959438789607310334696570875557471514592754671601819158619545378757279100918377547300303656811162012720579453906925168222966740027813867256047646868919942976352364168048844748336550438806806385042725293610959318916472420676644556449745461706740642251045603239212568504355292192531977199351797721532398214399442576347880784922171222063940989150366550991310304695251618463661199132971900505230756428797924165625238975035915592150463783774237460001030115264139816373736242538088398502901378787961565397784077476769184929971155056842894683099279479947982212593223262131461167229829605625479759943159827281822329465376689061258447302159498955039472425319215006250582451130889922330553480694363930134602904353329094776102705253897679026610408921698810535964557551702665697195375456837995921407038945378205762940650764678451219730680492884734033659429573160479602376892446104007673684062956409277890214998580523552793718606346710989863072555891769647473871950935215506546850967774613528462669364412133700875806803385400022334575636649274048843065071583574551216442988233874920932070559201824266228393769090872207123322081315817234697094701710379842980158317376988856555900694775716640960017426803931297935979499255348175457360981798186877372538971193204032261310564132764352664018510970866210079513321801625943659696933611809155895158061184921519865569864193175854791596425386003644677845630162234203872544322674262494388489747109802421668908925300748941720491352012230532966497404505048447127212314750082202339363344782612761366710867463830773963655227034295546771184541581032057035922926557890940119502423155002081670491335560551517076524457598912975423533483512519640463814429119224847800717685596048808913394430131816273448093284810285348337761217856555951920840503042524177236711762959020960546868322745747230572731561241147793584510085478288572313956051692710674147828848219630597774784699699753082857699298083659671123823974578403699832574681016273772866692227173728099441461817926743775742792301643448477362125519456740368460636557335520487684042447408441279447713531071047025634422275848509368438473665930257367223628710928397681775668644235935018897679976671933096685937758686420234815995514263209946848744088299011964140043690579380704275935665624365377544409882408745135135365297134038636317885440756930716580594298030958219318440152286245510600518586145493575650473259746141522279450559492035177549930941361023672958710703094090549554473327757152661525157724094451249688947154948027177472037175387080555779830674631851563020982585368047987569145174792076881892998948568651346768534277272176230499714494805154952273882390882808641937338648514178551393122321113848570421080961117852440883675104950466379816416224341275225110843764835496871092450271718918738932874625181297293179187051240354696139798333355214340880125093870076415049715482677257845950787646308232824014903013683047423715732506707931712575685005276584508207440033323600727523626089994512529007836972740357876891135536398523199684536803882123433922062515490421447317180224007563665840229619750753599100470627038518606853061721817947263499866785365308426231989314029382562016781309817375595978630374524240648070694236940832705891506521243734480467650911568663677917530863890415361965606650535085788287379441881896806886104093457824219804798406107494421589961612665400030754562749770376597327933652950599630907840806520736305077668421484236044910780382528391400036812158885509956554453099568142489487419548591114944851299078896569610433919394701750689460748825206294472285942521266119919947647228285860274318418819404161783290870422983285273588060448948646255969407952712064124565614048411015346748447526586452756276816048976130552832556050190791786082311497520487136159806318453411840552062059132724432977930468955349627326402304535232918908800797456960284690392891359449197527118081635949320862614146169906709102243820166289541728083921089397103891899355558835367516892544964826225041554585363571789754160435460536503400484928335271980960853679787379794990809516763290029151551685570952485986733554040559890605359287527901939637707179332696187169953453996342011421802922596592032490180777924959179647354510468042020783965003105814403594022525971193465319607942708244837466682502923310480323559519686273620026300582866905145377976718016185878042728173201022217937752855609152864791686030429943389215963197635894060467238924548433061742493154343853157919781679703356071979494049969483879058736502346421008434065968206953423217236330044540353782833726450099409173937373338675330837256594969486945311463726750975010808133603915478672572584717468991083501647371128527983288798663212493269963523646671160145760300997614801226227047758959505367460225373295654108782195263535511399120841893760260824490852887767949698721375273031788660214355058643224704263098002877783582264836913654099826619169082979631011402555130436055666265243910058791567651869700283397175700843316557526743505283696516575923018643309824760439662360605855460202363715287347807627747676397897205014544463036847536641794877745659001463236783537428837867467222413235301809724779305776288210537764336086906350661331368261150987033168943466536466933766985997801901927460862335322125481014777434510164170933766055036096584704774975698673760495862471118483765695992939799720874370170265679040482071860442633559950194581777037120973396882077181282743534269026671951193847778042462014761073356203152349503928138112853858726397033455012255473651265696404727247461089415368429200964213102089018629196407555823624794339288498676645200070777804799422078577887594444036511205065252250237300193206594547012052463795069865689782809600426733828207011301101564609664088982868311325534943802450143639752561061110926267746398807284034362574243130319228493396171490747698856868603248187453273596117154109816048664962678976198510219792415558312833444607780338019026910005561711003125873015313298409065937586337387484101879360837391291647491511948192151771245731119426459005941305782890380479101405843036482619889184375126057431215373513611797722087747421213026067681110454396001065159859225608959440790036718920916940714211690271170660535198805840104222431296942431547110061933432732343269762358827585476953689921382118594919512576102442767492027241986991579225077321325380366665263710299790953998332258464727464383520309141663818587252662548238709871525802363582702529309998346822756970409905776917414279830161110673677695052070619122470419729953332401237598118791793024109320794414721295583692697243501657476874601077080236713403104782252639409766731225621460249648319830898043715718026943943364355744328948635425394599502496959896444182582756132938979440554872762540390217459377015318389970106359019537232071360481555034075980330993212559852579837872521744533783981601650208216082966851497383182355198099599997483947365888250056456849755939364388455567768359996849276184636635308460258947593299784928366778737315810478375736963857389851142836930890318387373496347633831255202578535115079350441397177062167744130343504777459673412473767238537354734349211012915708961601215497754875025446370683483984019377305889931835583645296774921188368888704312857555877118287684013986464526675630900698075860473173592864261404466437000755587644522559625510745128450070780939860232100798145800486714843642186806104478089751015700708020859516031832381656614006468698385787956444753738157443556542099920099724104676067278806018532662772509982171273694185356805894762208385945286647553219038174259016554120838312264464808833413915452085330349328403135771730959720309098611280249939325949584733996605358373321715607500088724966292618780271846460255970783408717759411594849449097626289797769251001351592552049832165642907741137912851142300203247108312776254760519335562429368749790784912008833362560254555188437714268248987596727276748731623733486696672762713397243512549114326775382853382912703843689046584720206981102008736100806467998522376551933985584594538554778700908273023080564217989458073028370279695626616018054908407164345512876253491910753638177207556099139978742528569757601696921996114415436490628286190253487718863104438305459032576534013145135741628079777624451336782474405427234899848948011604992685055620976012767462915841905461854192961076960128023913719322423793472053766907343816870083144237447064063112115734641567279152738557783484011298025072806000330432571316485067313685848918165129454933901685245751458232525517971756444607641099785670179145046101237081618241061229101464756588806824245773853110972701684760886333082619136275573198437679165681623465880416832733121560890372732810461055756431838148405386089643455318071094839595333976093967002766093485596188094732308423117919339011885777956413541855483211415595490981483063903293030210247492837030695758223792601318814612138521139153112368460282016784961703192625880111052749712207641983558338912471785579823049743373303863595094773613744575779014586146017908634715563570452954306274041427691615432758375221861634865536172683333090242741550813362222932038723630651974375288179371343020258867552200502597535095335704872769915086716404577509688689874468298386419204506712826013128838281469378249926026008829177922999889063491797868366322827087508398217839594518053905070801049002351764321074235875699917140594732596860481433908441023354384049080879574286453987838160424789095971159062013685939052092451269240993561598453990333164404045631938570957888598237600939608802634557707784892655830508871165612192553197423300355358087402132521600919173776786726527429349862125096715081206435793972526712496682224996398124775150748979199625351341376255918682347328017444509772009314499268909246812281013117579575174097250581662721047843709439661532054903227997352862411434335756886241534475862677802925078608053263232152874220163189565335612017273243718383318960809378336281012762847803260545067669669267555670950408090922985086739929310037688765169497412619645589738387290021304306272602476756353864543398841200482736238877655183915352248301378691966129209117387866226982118711883105270124704358586518028794169371492208437853241416423839643248835592043999168331875341078784486875506717420589544359047376038442868566516046587264084754340469506161865376746785630807494569755903706588134121561229970675290887076088207356645127442338142317047347047285050111090743599977708319369353114071434984117963829171541753428621815092045055277709110181885776268424689543440816040276663879673302599251135191380976310110270341832268753194515295214576500128054264975011117771601262644634452681328661275247184173612830859672844634527862717530287255791823952107075888255536783831219400205439096630112879036583138404392282259970373848470635096685523968498743820503068268877561705598938360086061555500503472500016836553080776236932766528366489398174062625073346539906388793220948310438389843011369463203902179662820716507875559442381545046569211645330434752326532021912804144295984903571451341101204288118038337795244534015341405224728554537397361409971886970055142379449598908863937457350290989967263912335810016995181576255465710739344230203442018369903782718257004611724619966751267801379863804307182546759389355750492991209844296087169585218116585538064237565211141568607046454399253615135095658573828304556409934171723631760284651671116103315832424300232694097374767044889679238590323121290063445381708447382407645698495639497651908562217972326540014945555327013977100688239006652503025933962013564101494486152416368961398732857609845427909597586316846411548370899555681100471322287994644412892437797562709681153816643466744324761324165733902415414450762530049168025553574350239752137805431637484433461268477203410013476799923056799505084761571303194390997323166172014034746483636774491868284862358959187263389234091065584477255675888656647162137523397102483791258714157003522877164018587825778546819118141338115918165596786969791291751291001065319116090717856527965854802761118373837878709967395482935702006435537443454290389842080152502603103546935478287585877779050466506493555424288071262992825135936495474172083433502821016856077542956349948675332447584301654969861369875195585626921333029649466689823977694747973354371530563909049053723825062135300440984139173901897507229062281680218192210862077502956312793791067555640311401594413025206489194806648070562191972647172004539932397824551445584827805133611669747460586307175237606294892685736303489361424821295980708995503818739917125225271774478143243119964928498525620094039509665602113163914277042430016454750025069766121764643353043464913133456038157661138389363716881263875765307138161389555822252206660732378434779171774635120034131825948166647783733145096582450273852305720454763246966364038725955807487975381156441636040896818598820206487490657410863156584327336919199928033695957259030559141362383729043507731636534100022310312752964927025927512488612490155549680013128469347341438003186963649177278828695668712163345408511873196216681991318625004974461981628198077258117625604037745448882196700976876378847506275294994732815167919019468256518863316039562751130021046611709129944559383850720220643844701278116528294832988303765835587744483118662906334674347062946010384586060106300155659913946716589220357083437646533693642186900092521060188560922155783825252013709777371436371280309747220002811781516362145148255086163671522669903747350596611263157264163385854851549826910613175272907508637945726564700101578411029595119577470413998660906128270274362412000142727488883629984189290160493820549058035655702775733667487650972382166136473478601845785374029696350050075897828711433589959198781602577325827535222630474439161515214269779836424542534822223116684082852423293413053311419667956032109468078137155238787965867802243992006686905448144231228639188237349782183707842501108666562746024327934879158160335392713046151217031784934907574385360472655105747655361176048895526477922685089196751251504296208645787000194840976380329781636437920391158458781720618775552194603168442386277140691864643432377772850871539873361565312808989305606448332632709903245235299313503862737300746954888492703188234358619134545492529909399068190140533160816247927159647742353851713148874856780754560401398212422632732466690642330946955840152942761328414243211416988683175907262249725733324885071440661592402027473711740650001345061081056289388436016265786424225107466156977018847508251138774504320803985751518444943019840351164007045419965648509081862967245324034836699671398492939372879653698282398568814401294161432816532656429069114695720516988800634576865849274009187576372418474810238893609016941886305698209684103008850654136979377353841637731982652861307566313905935706798496440859297611851351723584931516513039541597426314006949366841295224214788842265320424379468600582990020109689051072742402917729610985929960173871950798505972398375294495507029477228356562495414296680326307176833763534113038650213322844096044364810319802710474430872938447512926919274046478168543103336044482345696089311802008328890407311690266113252056264020925889339517495549167277659055071683513321653657459436915641326996170462855699386652772018503388112462163340878311110053715593279561990061975194019260569919686032579794934196318132334638015710240996999165513780058634339458212799476807849476606875368315851379416465517190861592477902678346534222393531720306248116582526592710599502664573737823861251898227023506823022952881408094846221384727061288478540258730738653777349040696207257074950011143116206256986922803660397220045241250927338641444436545849830280107021045144893668412573916277761428401841094147757969358102374737270993004587142992613008011511969928006503766567709004477236144870188511757093288942392877370989851374407459543032979298216519941341817252757085743152063695754094633926449599276732426951035131586839377375687609645830791046353168416895197335423078227266990425354641212372234951488549035988194405868246941963155534811427012866240774780488136024832416854885055927316718976504756195557048850287500238416581444991036765160628106091606403761117369893400865935590512589433918448538610555552870756348029382471127033648229356971902466677647278944100692370683389872431528417223295429226461802648305355181864576722132811695716877341952931589627806878167679626697518956777970587958109140541573511354809620420044437107895602429165024165669185966554608006392284502273056598708507813874895678511299491199395087673234456611240911164959458956346870981326359302007335153928259745512083799568663237944554479610382320186478061590615745613470366767882276080118545059434315664771981562181360181211197994590482333770519186688546108603982402725790873376821793005954072130744257707499902052146484580206263343544457053034801266804173602900637651612113315430601051975219349364816298325169630393768816284336985045720873295780104550137573997517521627106622088792353017587393155583181724371263355026202779986416047179462595655665352440177669851595458180647797369053519403358827757020779945003624474190887497736276396724316816778953518937611936376508867006541242182918674197493826992673247029406184762212545429903001843128981379166835073941038995404336732806445297362194236449338814150110151340155752248194353349422027486889919005892607220625046738427120067758654048781070413236299327883494713529448967425088543789841519360344099997160084815081012204822725189337547450479131938515555452904641702021523600325022514478005904385822411512381412056177805672878138757582749625445146407296328065359048031059088769782333692072568896619372301404344479773748198267438340861684303107714610743814578765451235611832327940336107483182996350293925371994790041672907336901289637365574132211177702983813349263151484404484960023354577728579411033421144909925862538682502795141663138296190980569514697449347601255767209929580260000402859569128463490537126637862869830304311492820515012031204866283348328923042688188027682614503339885246910980975600111835685234792918568072647313941738891325486177750516989672374689372124424771428044253587902918791029466056990796746351855652077817142791625603030357361942258606627743910654926281036334157554805716303018073290917484774567822015359661487243556958611953631700186963772522458759594415121595909540563767122094676130860964444214822831483249510300566074916894828967470046860404736078114221008674740230482206712549955568640940537166619436916856764158228792240020948932517877969723066057799670911013329433795098846167716971229336763468206184768684115909157453380562290890171697505403091323158346475582723765285463952363572659487708699311460306555041352184346227115693715057976867891327423999069975630581784183063653630158766724649429048282474376751393674902164743142233305953757257847503446720653225042935337488085197474322194356355374511525223679809864464039895443153716471674490522295545316093146712265775938974411200343066720666573250215286906778034090742088880861755198893451591652531549754149972886893524109077663814451215528067057981044493225214939455654608820158067518767837985619280741921985313767999972538487031923380177014678408098672014455603488740515819060015428919042282315478667923439017052726893398952873902345020128253478962742543637251671355264196747646597474934417033604433957063841708039367839447770018941222970668320766630138569507440546352448862057172559002521629253798857583572617005260876178808459673404097068121293202952702549922186421221122506384296921868021849325964333441819612836699693546662473895597934721568593757773875803571110523409459809668120301493305469767407058220091323928553760529283972756095827090107183948838415492900056414583101124515129539049212293355968210446103459531679664385483830806489028824403400196682471717320218871440485398424043771800204827306758022895200302534995445237736896889762861405720562220243608950871219248856421084887292401795670914544599001452523177240058302360201341954894592739535688421114035102236762891698070813421851257042023677748942702460662672675649328229189220466867562134427233338062271875470228678561545051993217484780565178356870645803621253428628317810952904026865317076484009886150134207927843882068128128643167653016739076802351246930413805056349918676509826359017588830739976294916427627154350733910163438998447106913516882965706525426179790014184389317171868408888668577365841419490015911733333143749188250493513181023079300352788847762334482165403218314876425589003114640841792548396101752476242749094180591550057870478901606318729549399517448161875426483979694117673501550535474375255302869147967111259740672610232399087446847770556370941065497478594552869316193479579338440571297600387493785332062201241269759918168270904416442354750651917254915409995260244899337120948291608181801325789456341347874345216097910638814339537355333226225283017195040036138895055736961888738680730137000020132290860103083468694756966509363062335798418948751858032731611691179997363445511702914633824046282430405415132656806972002497573363627395840859170423290379284837325258049273164192881153068422251606771586374136006066443916207503690446838645614141059268965513173948599075182875273675505021989432284799693745147221014656348886628014533909285377342261953915328428970314567709611838456430896553886734487827464012638233400804845566963947524432308635618839453770641047701877168801481207107021942328376484637062389471432661677389107792604024663976535644810196064126018120686860230010189830379764943158823158514165852708368128307611689658987648003029284609779878862184895629459249573410423790202015788649120997503902232095255189263373659084837680304544412229184959430420202517738442168366466921366109316128213428001370933720340989878636138995652763734146182007900316361280331745489011051441918222763717298269190697900793745241529982840857362316023088633106563097507914324027517444568050457722917218189976455014180873442006043510302019741763706783271424320294146865906313381916074922564911890369508532735521533909816636088974398732435759863725704986570695029726096464311901006618396808589018810109198694321355585358230515285136976292538583356393132338303631124276079922738469929372975873494410562359183974881571737347079286985326417876396121107642545956776279378942099006277869355951963714983817058668681129021349213516263615401108113002470581147710454125368040680553563334866582354188552532932324173739654523488214625407160315448467149018232407730165594591111890397523143198210610168322092619814087493170575359683043615671204271200230851985273840698546472991560324101960806672054280263800617225850083473290963690640738483709128797188239245610507963004396507781613938320210656030103996399185864075489479573315856147357429397261180509688004746552359711842365772475283454356071099754249429199843191223565525209861646107074547207714952011566704283891340052861081250472796203231584051681526939807613695253847142445041215729371031133936769508329655949163400659961249198779477368898391880183043700567569477285765304510139737100355234486957430207569579435038667806852588130297294097479573055882832213602654964967708448704590286459105555135504268017261010282140686098900688649950557645615825992995729820609311974154085676449016022237197389288530633154130988130289319366514989447717651756002417662443325109223067705498946667941720453071783584883597955402030871869904755878420992276626900030878930433220242464374581284287532469978871006913218524750347512066745015405486649887366645000808579949912215627589090188608586408748074162439047756617762437584560353178491514574653894461405936987147516977259465981451588714964157957144827922608961060914062368924117366848776818097928265029405959141389889301210245806038682164183992842836138095723482062092886293307168718113350547743065166769862675571305239363845797294702325277680793803390331330675263860853889873899979214974045271012646826359410107492291093282808192976442880160520532230551896537658427740823178416514836275401944416712862692118161190883221939068722310093203436830385250759732676154422198761654133032435200768380508431223764170920072055546052363538907438066983562257170147265286486783040243288574466825944559367198079490617362145889926941104995258767109695625393138559677247504947579949161712780967383631584178875155130928471086476863339282325881259603455186630151112848290183487603743868585402000169825691917046925771801728054549272636352523120744341382044386234008610743319603430361819494529265680127115030057468958300689677172216345707776643100810701259626202058845670801623814404083162887611436107402138380585628159591181445429109117007800278745901193868248157543279389528820779310504835697660209301235348044285396336360045964417301515128932394050132994057811274093623782977214502238111405536549089462635552064384243985063377178473259787035481859712370659648568774550915851780499489060930905569088541657826158667181939611790556473231331992177557480529092951549828446753458982855196819120910613560330682935304196666808949445304963954042016553367442406482779500892544737698442220450199134869144510440774416895201081281338654901084527980669756932573943216158919610871893062053260122065842508776838248545254818969621886785763796366588317964582511978048083918531518820779349270406073038730263887896578998765045782224246551886106977403619806743528315413054115865801830510315308265248037973172104932190769678530529579595159183487943827254692852885489886314221479747868893424150225943512410750576329966062440491741605408020287938989981185123875770665562363589230575491216638761409369713413569491805783376333548117932497928270856496651580026995804390433112194685240057123554606080162378377756800224039296034448331545550666568495550599362785259812312765888427818338131362720350048738303355561179163002430929307954539518277116725434368431033062542576285648185517480136503756322035966724491882671670476554026898883474663798916635824532249170330391722491229495819896803270690324393801474576026639496300302655062382250084134516068300222766660041416568602529119497991457986905442726885574170663776138338615344203392098093215416020232066589395129672165990084642518777072942734944700751293829375826948928237226610420793785902774298995946665575860590387557610313059272458923673515315270817482541973846649611325520323783724549367846866235618133031092232904827366463809070423267594205547394543309772952780216998269011932277310616091431021154871298017459836950007556147601360494388378659073930321890948056594770227232918978174339502927247940569260669324469607090146063220266659880051236669826044559573087050091701198775480020862272749835259871761586975764857849962889169766021442152024967098876541526546529324688501329261038692037667279595629251695119924267261898096572556755226467457686136769921325076385020564365704107803222781661148466876372879545854822009101106292906298967560414152514073567862145115331671536716638135778793636683919312047296600249200498751982535271810835540306930165804394413296826015591141570869277576767118359381450090193231323179289281364795400387088878112926912865320352413765137779168772401542292465508149134281350475462860896954391744863354399654649489622036178636183658044896039026243476914643719643899461894061955752027754205499553343356226991806601616791166475424342537544030389707300495651403706092576636291032771998905640173991398138490701858909547129174104141119977268793367134905047053811471182008068522735121488329321171948277983706369819954933391245188593225026848951562484065474846207242320887420726492574693458184279088165092537282657764740635216223430410834459528119344030576011658389141698779620960774660114396376966058983720011856078880025912513549152706470012906803982317375215714713379578667641664348392769777633385112808855750966436974597471705340608708545653020548599220042223937435220901605570782963270285822398808224800905887329063857339409151800186101042377721076959578313011626809557776478802036696178795510960566645169846287855305568072111937018442732823136040061894425062512115455802835871071610429507162311555579665289833758616157419791665511303661890364175484701270466970391626628782103611480193822081690592011113326988390521117700999735708821148077784169406263994198375556619402459159500087007633863850042465446566498954968247550328394816540873708095791945558498817828226841100095459474045643275052223779789915619378385740490380779955724690975266187880432079884319455460864760921678417774490362862415850514562204883159768070353274928062300010479048808757557838010757599451744040821168228811357836702975287839772469750570205579724868125158390871981381309373106647684824388349884551084713784690460182295647931528038820921022831049963955039763183790392608458166755106712002950727411853798975160174533317661046308294477489596565249093666116438152594279274925369309462107633866575178146642293570831084353982036840965150059961781167445260665597451025434323885545608855802812289677051132976550963021063048232547047957788426075426487500124658159846433580855416459821744918248473217357703317718025344772617727456841914233999430595565609258350758552777610019290508718694064815715106068156494773410115776432822368901564820476608266689635437950564088037453281508184852163891802764604480342023116482373186354175226107946268422049343873435998003199898206564175573519398558548386240315343921392339830684079093816778027994103292999744925780922305800841577871000022689926659610766013977007254999953220573621418464331961118620382192401581141601266536589076621001004474547071073130122924836861965676242858679133313838046518059935942573867844126041108718116380263438734168832070945274776118728482815633201625610809145030923518374863140127590563372886092830492765228824302081776633078986049206109730771683068960696869463906132303021478448317002912963663892578733331251258647280306844614265114950835012417860118677528814828338496606347515814132657564814379159491407924211070199769328380672232941547281721693834739860127256941850645031451468096355902130153090168592455912533103689538139334154254243711344783164781756585437679443553040834343944415179934646480814109526682985598026226677831098335612805942948395236670860728090677848697942939426146419842467457007619865778616016493644828434653373768157411885050492069074178206075166085971445733260840753506285344147096664816517911279850309772735342058173235103887820336955739679657144401869993340952560217391893414215761068782711551150333606545909275131580410788067811141428859242459405689048441541696048137118227232655458099095031850284525601751138624049018787077022516518062429470117727823858250184421783799116237769033684593111999967909273012327682153796031607591229180142488530239543567870597088726793444254868658557215487079836286550805428145223024363926021736326599114586822126498445426858293129347861289876608391957400290650430982353226184202302364178692391923794757099337737624470587479159595899826157465260297993691821432249097070476442697295307389834969826915910407718328032853962787493774921894545182151451765727081453636789875465518118838379547005952102267938022392143447789418606766650037749126902390742173895050099086941891977547562674139169954168872790660356475776154148447356476784769895933259995726466134197446351336349123626879192818511294577000138593819526807612022259443548317347037999650526852139059236980616321968757539715898400119311089058570873785017172405276056491237918997773215292047853808024429563034863302577335502274708744489529449959871175944673037335655063123776642906899933003408769279826590235912476772826043455888889022641372009691041530805191625137897227823604560325519031783021746055753839614317531219090820607991867161969770681604492660821833385746750560891946926465316990563777435987913700023223538137457459610393274343425482016310970596640327419716311831547703561142118483571686465008834111482517990997993026724109381954531868957232547851048264193083020813891937463567617403831770345453539667171797051764628522894791432298093767445935175526198806828607457578414962827895406484652617759133049176809125647324332791150552956694917572591323456223941322929039994942364688564283408408100040290399281629132035229095773647399151864815380539115573431617145603365422778660068798362697920212151648044744722922713367288780829817255651507332107902312523794059438736643722252520035308452885700715895188739440398058060125183868789017668016298896741486925818355062587573352371509629887476667905421329841190949698068175659880080570432169406351794167553808224872603483017467599606036988340895194518180472403531996520383728929484257316673323170463038923723362624159305576049744674880267627623863064602679811833287069756875495277026065066177689249297754339264154491569426210750959000593401659434479645934543567552373680523132839624837715923108873522519664913163242378150184873872785581434499551235883404678564593438642492572206886669130099931918825108242660650515609578909621585179312966157318720676472088778820571542871376283447224809928652014217022693555796345556865713540718187037471237133449893643905762340693592267387512590882291465804274953079472442791496705181393732256906526475734711407482948984419740904294172421083847906697555836088312453916716057446146685834713953539989345545961064650350248697107850365863857627927094679293923460715541011691941259418575857136530973318624396535627005394075432158683079976893754194713468764426080434533267645751025327817667031693243894174978060572588629898324343677727959320732360652274442726934496340327013145570449048407141955041753214974384632175018837526522699703471133716684225658077005909336634595554509311513448313707168828752669165915928323148092039906778478838308935846354838194079940570375823465689312913917341333547404805170575207322091572423204363956230517522254975062113427890865176416044282574054424033430581960467468879524919859858047731745041792701530318503319548816114843789411136673461632835380464029753859383610524087506288799606288861342215423567424448862033750413299414766015660412531108198709903383212511455045691554908970906231109650885219092121262194759920826001490016106794123268392136852315133967453375159411817368067557130761106223324372377319159197891506511439462375556556463708688082049752943300918445678127700977065428217618001389725822591125471705198295164316130237326125511596664930289408936275263256004214481626441511578413462123534684951171768075419979766522138879368656119047583454485384427647211453984081457438506638258273539902281420019312381210156485996123054974342138452630076844416947012453320753847319232964307070897991421563395657258096206796989391437295092037376369994634630312302914113425322798614193031340150288961996519782208272790059926888517268565547090538754814778033234547047791200969100151901203701806888159631763005398723140212748449869252222332919206350631741943171543746618909921111361550996711733578815562230080497603323582878441586243313268435973128145288345914107332077426534862535325505158341792405734741115782039973834400506782915469469535119378470775625516435894515392409183607178423720187884888351270635830278382652809111460196318759062578314812474762755556054016564497627295889000230038854473304184341975974281412801368694846989299277250786412843164849688278166182222397616128690702877666903322693614949688964416356785529187133902536519483734309114754473527354612316945673771989841996507144000217306303748723422631299844037992189646559115130386183533706381690162057622770069648852622165009898411977578696488204489394306874277095669138685332144146320233239113191632311883498670590401730731039172910419903002762777891987733043583701897037527428048578970134310367443652192721786404072699865882575727032926906241980703765552909959131606051479433138352362931428954412068920242385106277594373068609417441095879281218075724311703534691117618294042537173038697360499433482781809091144356684923892590882392983164689347303799117724512387319925641494343573620230552830712788683772499366715819215673493162566415826074976511829105260878411983672213883452557358902845322157286932275430005798272672518449325981314393346907877580997404520279962692856026479046796486654463802039363320923670413735003358722021427900363077813602315648357518780260165764065599604368450667554475606689106341933360976271522759986380286522435889744905742825711213993894972263699231099862481610860088208084210480214113014629845938287187855777000807967129220518119334189355765757235707993384241771563390542139289103149607736235845273914111101190259806001118950311610134476042920017822645810294554784137346419127305651605878139980378755794190287631346807475267112929295569626474768183966031370723209572897487878370261525084280209361200432939163795044895154894505435346164109153121897062908114551295734586084159429220566703912324413033085546392750281504560207282316592946119586881417378834241360551893395798498259182775348361099451637864906270929765554911151752465092732288458364535069682558127277082507845632360621059682323931780203600876115119615577606985864608304683919686614757492971932756567613072523651440893063268954236978932620803841152947562075908702698943850559956054725015785415576068393136587468925102866428469547037279845833362758692779301720466636921174828051616820523006475236572158226403873503028859695895051633165756645192106686314687012430356978928120435242375470707100453794403843260767125069764492044069605581694787157279120112683606328096647966849691998280579372647574827423154688405632571092884304402652258006031204087727111416202763786616238515269001276572274746502304037061785345827306942719115807703118710400830751899701785904393704796582742010134651904012933790882935567947123307037991435198087328852109112243273805037802973732692901400660460697708444409315465963582193686344468476731999632828584323965357735862741071576901695445737355751409531451182608981117329279607188170147287135829015178656124086334653035789896314668565242171793737403119306177363320161128789995267103648391563935108455660461380017781329202692779306591054508757144032967232312320772761726693663151705273471353676540437846064981043967442913135906692931173512171520951207188741063473060768041814336179450026905449357484451234747715783409610116660032412484564935559549368482871244299022216484150244377384427224889033299683344095133438725168353942819305643843821586679273515974402079322048266854761965909339022651699633816712177174392722126135300744315277964630081651911383948291543606469689187590298699807331025620792180780642746121813005054667647634370812473538835783885949355048060131625629216370438586064539560903825289423780712077302684082722252415632729760551175924786239367102860959558669337144349786521115626905027964713385168450009072220451825400203802368448370434213762064671228131516532317135550717427813140701797602494412824198763099963145863513404347960823078999949522138428470653845378608365695114865298501121531200589060510911461604985582662527705196754011077594067578972971725606126784701330432134101572784020203091618932724303205288056543308315045730188734405011065642336466119034259396671914289389260492298610748337959584453734717950263171895891279106074832703149051594615680455930424415571449789585901293577221858687729058234868373921684140209757603555111278923493851197436762875056655032291425515864744488052470899117767246955562714062353386841338537109962809713782413565683936853193078654367121238723258470442543383686089475489475279254615616166937345115612163145573580439242688342111074581306089080842959621120268971102999895058603137388284391865258379847454067928511793374076426900269801774557040617878019376765670872254522583473426888698880060110700776323498868529958435959606434317309769809318876702084676040120770761630461805438051377763372949306586421433533671953744276891395666170549791915957435635092452118723034742668052983581252291155426575886895946400634507816598950465371658343580139950416423741419179677174839795918201765979305225621530663945581234612365935018778759081559175165168242726121512722012706099748817563417176453501631907844250640373540618286266631179686834297185486963438101170378994379589624220377698956018990512892486372406221590135645934377350208151905473933460337363654139176844779405851861687458632168141621959661452760179456697370484176486003036945766330769679833820500946175463363025046573911916929594527259087313732918800583598632499862334891470975500971876575641426518334457126000354084863113017513650832885404794736182995132615282858124122753051596073402641318611895252810799457202326229842491583773984023529136834985213930220112712772733598158243234666373199232250620523309798630855389736727928736495637189643423994433687422421610817846992543021746181397505061921844837177823251395242870547848596387877975065108997241457329210289398779433757912670932993220949076260150613659060926917551001501338135783690186028599981950454027159472742941025118711858846976201187554132693707330043960348973776010356105264191767469278403076604401556071919550831742192275392828314578064240724240543479577623577142922888720488145861839150096963064778500732983609979657546864889439801268452569771395787882983252000678209761356652435802303538928974595363951703797426833573415065288721771145316123908158941433069597857205914876399736539691813563240692176082543009987813745875180196023158838649725993661366108756879968902862130094337813367980976710974068721357274949606072578137373721798682377187876132433274943782141878226580291451241789220195864495423415582122940504713909149227585508586435123797999523933036051229046592925080031609360091997404584146296491592044353882730369550791487187079744017455917968114894772695084708061933302094596025693245019096079909009382519328382772658153845098401594154417088487204155900918128848894773403447784641397704142936617120207904697910132593724036937290970187354714281353187246002737443122352891060545618508178926149739193875724705426546884112473716727535307694223071081211597982094056835588022469736265691800541817277187691833853231608850744524745496781919878026228205813352131325396812546523383194975148272340258403839573694401007331240153819949801834895833861136114957265427802182936140607950909566290611491491733553673622958490663047601723213809584708292778555450186891129221798667282219329005155120236432998510019150565287714811931832924718472304122802766940590657288199287016201916152627849273877378738715747167520412881400202158618546753108658264482837099507901019612226565601159998588730916051408086706965397016229443401913707048667345260756998442095206319947332004915961189926365152915567027927882876341434843131089867336817013331899113706909276509155512019385810559230871056215825979280356769173402051245015069685957324088326297863918186655388858328112541636231401023229853196226796202490618481011568691739594406974350345030303729165606314832745628582969244212930087320654979124940237921852340685678418200611376030524004041110753398980925723299397964623881891431729609716760045190037805147676245105258001160644073515008904155514161307115878233481467175788505672240148754250890978876856376073123312951928849631479443764201070737461421857379079031507123833687630936941854248777637942146331906197224375966811986141827198736020684635902409107845997856010134462605176813221636185097941755556433731273269847029835350785876991370555924640722788799970152112219220795083572117894154045956365535156250751538484787011615171373168459557504453049883445755050488202997409112730627651762131947234950498213058653000959832824935951699692720502845528543818439193211368102777045006897982745462043734468948164098565573280843606264184892404548195476852777457412147309045778938959054604468120860071547260217814652766363496572085147498124922381971469366940857696207275015116968757087794829073989118543295516379240260874788943163127602145380156053305075280790485917155069702726603683197717649052128421688852831361211020669802277468719510371178134845625803737769410507083710951189237313066550883540222964844058482942908099090084362963418142311870102226518586559972018740843047611122229691111166269508936621545723545777033521583868162421968885151599818629734219502682367754755614364186801527453276733784841513144647781376720206204951734722664805037706011093325552980216927107028272048674652473009981876190153767229609271782028613312233649622208573437860135241542587189943581883791237831452810977572151204475515448002574250462732182840102362884762925550995322730746327744312031762891920911975516355545384682976852539661206277963823658580501339739940662706653286187567243488465542166280470583826556190113738590800184341522680183438752747948927653756261916665620035349744906753574220519502161095792519466372107130851915854104169677268057056309305362831433641229951335492244366631319342739752099705913218322302529988378998302698218865843966443271904515906171224208935984328786441302826167870853873283347651285022812627920074230368436008693361682551358492318789052753218207000442898137557813607239133084257586973455226235077868774766189872574165008455116389671127010755893733770031036662090523547318203352184226936157595543519711827334404978231982444855918123582919875882832407890111035202217369690356454690706337304721314898000478470054557201397486008184580177088561244120980230649351518737468503317847913933391688415521661342133371959900791398050390405127121553968972395773488680137051391006169115489279728284660073273715010147747693820233524253975927348442262733319345402105349234101775768671845974755583152407504855250914884984866756029857185999684429122878207935477478109391871670647464790334222752344251744170727216760211169890511074144009013560909811065282597359038537193967283518700523019399352392062486183755123312797294787352179857702336694330295913358573541815040777034703183518011771187914396295342868188828651572796204256338395850679888317942920178515435121719198750077876707730228416694994971210758319684741170412354281377830726536802193051851115015926362914309582595524719501240653675548709424622801739397829681828421599324643796018415511648004134346618862885928484545577958866614172419160946741939585583203523697794045813834176608046581855510509988907762178581050587785334880346206303517757928706906514835799051343792716913079675997694188613269094807892100591392205701218806432060811345994596596673058263770284713180616889736856420089834325213459594237473444374146741232666065012560445288702920266618492936014861689908807289791602933793695584693109825537997874332321304105960335386879933262731295908512836299601154083970564130317074917142261184673429335702510853623353568911452046297756007441464864894712206107217482982689804097590180390549062495002373741467692348399506490969274353769367827461159281563611355582154709839020428340973023788127232738794408609271919109674066152412729134164094198819957781404801957536370668608192122025310747241747647743623413595587013904398051959590395546175666607031244713119563037614550420978939734558949872287340597451957405788838892407148415518582839531687608716241610727287942485992924805505948804762050179670533735966626658275039986931289675745619419639787648166920465855782910861216282092631001288262902153128145336412737556219207446694599892085506194658970883767839688937232722245310067684249880877338854487922122641775363840386229335314403359134195457260708081006341090443271391888823055253848982431135451809055501915017901388540981031882843056342737211791523464223211405353837908615504097496006081566738005391611356808549210666138618555321987425726525939343495658875482624440079193337034426970535929255091668121129158708887398551174188069246893572137099415391238605867589027522202377209545507432889345129480235097502418376553451521290770431718950620190517983500233386548133743761898009910232190782841987268294821086961635851468636317849297706899407624181797433473198930551729347936950232198234441391558544662185944045438788267482188897156843117213253055405742752188189073826559061732556166248378263543361374192124380541128670985412408751619330170203501930757802322376815590926754594598824200172226802377225515460807310192262331572501059936527716418854695103031349534008020608717739351999817728736086968329093522051825914516982272798299922756279332026646469454362091645276858288792924717042155466751983844068370323851901292695385759168265578363970280016376664669212038761167264884509117129852627110679076330108231831642758428716564573302071569955376367511402075040224530010915065199605217808691247574336252716267358514983443509171106772546572004640532302503008958753955740149896856856271799354348154556379896787286352024796310454109193060550985139130065633039817371303316632173285682682911764478656410367751417239868553171713268720947846206343940973361096793786966475162561436127525291540355240365882921687343739070112310196065250861009026783834666652353651161755381842204961076747146813353990830508363845191689746546800028529770048111847564916530588962938375373563551030923687867763242655056727407728322533081364437253577441115914593883103694682753072986796529714467972790914039035557276114017537033232548455305551225944113258346238480175470945452301565175870217811599328305483503847042185366615554325205125368362491002266104801513863979282646490288190474198379999119510066701201496415772064236872407527674001925984419963056465927188187839191902629166457198738075830518270655995155993446641621195035945037798235673629541198833760833908220644157287819131259311036321303745549329034458674118928902424944358493866251577702619756091229714622818918861910391459115553472418936934643317857016898123003278581799190514130049234676255175605505555694391431226376570219765364758048063144071828398187309582478856299106016844433151452649315372324762773220900450161368492331802753541424491515024722469047130497538929540506858369694954960121843756879185379811188717347155353336147306138567162423445372176660906245170974068347753738282652589922864944952941641632882037505183162705675499895624226270349736757608794726240554512128729736364596610975391164266273540818215561303796693146258997820617345513341317716938240032084526484563790946995731712284555302413019759137964628138566730655628776764589058784418924250014041834215785231059796465248031775718590774381700751269124213416702493796120954445158945912105789768534690172242003981662767261756369307106415610534346917343090724864506068258691820826241062079542048746632017697988851378107080286061506277836433338289791346478778802352671403526427061193947122023416567428135606765424549145815693890329140437427930048082001035823776689135470280081613151620989144257400451205111920899541114420969814956563536114936127958464637797959116993235153581031178532621915413563664078226053020702232997422758820304806256168815706446060200896512400333126813355956900041916905262937911907725405694969673159376232778095093195882354794048426020464749496338841499428452092699852794611778156712520530239906582680996772420243903873942113474003432475454474604267596171463908155558522608628371265668562833747900643733217017833218132270093442250660932777574745700828528096213164514089451752905031797476744810322470798872799893609081497285730977558881810474105338221179711906663797390798543382986505481315293608743182713661890331460089125267992843923449841053642326876820277037628244316054322546992297049128289333136306472927493971493021930146944529200699035619021162069150663779091885369314216309517283134538512612761294691621367171333636668594939447597373056919437167228337018494835155205585632767782120566482021843576931647140006946605131287442367784023989422095553321168075197224401542779245907105912193480822346290869792089250810700155984183674438403488177013592535344407964711732345204025970302504727820908422214440225004073745226130059503580079098758106409025808327913937266840131183929822860564194166999149632100273085350613085352614951162023242038936103907175073252119181472879876324014012105298058130063997437847039280657379856990785334996123508958088574046194720629237474331514467068732328566202651988565335389685153758031162985141924045527823171902870714654330873464332295311972906194382925357449147432361740379273353226985917656695206908659731490262710528008786665097198116160815811609001331736984535618208015608752499411715340301660148827304012731224798819581994611722818472473494044681128782971011650597160439825136541480274298709893881166225072025507836350827753536071518740482518645781168893877123427092217831531325385983478170488148579606469645228789469960616156662594177998602724750213143385320676163262296959412934480246531441764620156032137815013628096544669537544421299848078671955981475282904206925803459941385042171997999429078497614217331470764215905117601880641784006056568777680594869515574319322644097668724201435803596637449272521418010752265937436900745966043040688520585650733877280871673175427397770833129126079680155430135058285734699982423215150872122435073752311163716902098010350766001951025252364314147780027243868247741076463791267824539435949186267862168258844699446542212819847903065919322484240023063237904530417749614650302677243347364659157271639961891157035387711877900254074066913740811031720348264988785158113211925164930680737756415148657465855353990784153193559903500393532783346994658655861354397583323541240814910548421619443422427167785180046799840544811577831970441571721977839794552574760212471692948075447544669218781658282075873380822153914388466857859050052721071769835435496989628332892186362693147031650662876265246753840865311349984517244606571603068680559415127057752148286830128124201237268333456201840608349214871839691562603861323163862135445488364219592952300799992525203128367661639632222687148282741173729668168253653834137188915121739581233279481310138306964987163276704498281366570975631911447023230453153723808685553193037248724942533888789275033221018806442325982470505175158555420577765618900375505978863450257942738097600146691804195978906776581456545877277228011210334903052038974194817951918812812478927275547019200795325678572459199499598626928678538930386625461454470079517023008779222492779215094420200184438305715695687272252433865453741758807841772214549495721172322028048681704557505941325519889078206770133570688178332504339615024511461727078727774572862143329830465733279193433687364574224732325243846001314478697045570312938968991650431704502448689661886620174877067122812544866375426345443159273170119368968381717078394883949510302864295910540105177407926082938465410340339485682741347996717569851371021760921040054070349636282585499517009805571575392765174187110555294636320437568698793173639457145057506328679621327215014786003847385362369612006596888540556675918678826714021484340525991294507599220738901874914155513248862280983057727323074611518038023505046848833419926975730021432152833815590070107414419207077308607457574608520992699380419078366703473413503977896876426406602224829682146841935867711108272988868111495576171771800095664234851872170702015688465074508031304541405653471356349679173805085742818044714737797084845683003278646858277578052492990264115464771070837216148402960234768187479639675304475720571669035882562929590467776596330467055720232730724643861458275960420766712946732000725312020344305747850986666713091715187277401101079191076826352000612804192638486129834832070956780641810779840247382797578201598377136891669758444724485189972569257100198786224822164456826223777968597264978636986849916400747667107873359035328106455198047503543879429033593753037036623392834344961242941057370887078404829601547705007213191144581893606287287229700418642878194255615679318607439275904448012760169262602343251892084445650284330058033873673111270586844805676343736132384237994657066831868306655116632543566633206520659063640973391595572696733945669244231318750892615018691013645753382022174601857527974112787536834931233813657673167568170367209222430834753995147148133874221852845341389861582367227562950435489092550743284054011677134937510092495720415063191646628022788914522810460966896974238870464643560651703891524602028967500333175126293997269012211811693342413429368264100943131647472646300099693532614690508306938224227743461646480616657229378758669978966986790942434746130045135588489883124484163164594635282070164445072152278826115255861597987237638182637380322433455999323598216909847676952890320476504103638388094705306172084796044603393849719029322834681638063924547411822744058965885634082180158604605948631594108507346495477595944270494784984708141756794606979079847757902528751546787790774420449867721036918167784792866351355334809800071953368605176236814642689578498818964412570301743141763605342518292660089088574377012486124356897596104415111866570020625860486618427027854578398316825748750217132395492565348325728381580735329419395043074493764590385527159590921885719023251902458688453188985376160526101418794566161809573920733272147162537368109711924488435315526742029512551999600567061232908244308297851755354129791302774513407541616680301387810495322807523380358562312092317424110816111657906142275745233095946736185696849154538804298140587146564868765287034350051952817147810913637723201198394553448482239557638261696579533530382295844508655386224767473541691368577353650680334805155091985296980103610573600877602033122624530699792122783996554741127090326713118681127894490060253011829830804218826786785916242840873000774746622251881093957057620148053224572395676464984552654689269594516543470051882135578735322871756265001779681882655220876629896203259529135809092514736856310730548352563349544979087253316651814063335586967692287653963848902548445913235627902656857956775110222666429856265380970158414245806544831273487043667385148963651726542001207980326778470486873135774140646347380584794845388262880278441465589093661586960496139099397927004424090032466922447847610972010225855402122817702975063894039140746113357685603497583910130173845637660043903054088275819270256726331676718132544032120926836184680308198197327122809080100452594853561257768892404387017524454310921978415337460359836907841815254527531334825196899312153108377348008029280135570180733848761357556135404801582940158481058387497678148652043657165468267424083097462072122036531500127149796449701314533104953006305757545767075926685157503892799759773777631004855947317450932047568865642087572825215972657100043395792444788436391339852561801600245676639433091957450004137810083048074096968430420314818947159555816431651688858403068222412244227054384203386084069022370041993062086679792578636439454792443261673651690173269266411010163379892443951149818890073156192336405156792126277663160218339336365505870629550079216519881233134918903200111916470264640441305317587320528825751653876270670433677487791307402963988361671239057816235624482456742131981169401493367202973982777175830387379822203030600998649155889398687127589768094601131583040894359413202076621565162567662068619041256765647370197711549949377910258859453411238055374828115989332277930274116548449584023500717681245283107700430269749986789558105268690820981274616362694276307430280223556492067081917962243838360930800648402102948595154078563796442397708159623494782993454213681087069599680935128175583727867560440104188146122485653291060836333152421999188579262131025846372175080537506073600003650347240650950777804367059393843693728656392347846855178839427195761171130349243576200544832606265162171945194034224711360695750084221813509396062403735453454906554697300208626721086327715903469225081428077730543242384432561616957535488024714654696373563590438962482934366494166242044702470282643758813974097401138260024155085089753209302925081890103718061488690774259363197242881870346763420960393885274524347647858643712294531832212627467170068016269202643243873088675248678003122984251883219536321838111709861842694391003957342787065391013457342572115606883637531730101461447816762677139672864814015334459377716757135097730570129668665146063380828110033088048209311705496768140450492810607048019406619456081013389265052650168672035937443006472357509477259602977034851483496253756359819369859592131414415349074464840820464120147805230344736051436574495985689979727424450936216331659791282837617802688926332501095618164897862650314006009587859668513128574102279635077820171749261716583106046204174690150782105816153200166363942459339012081593849174196880994722566822456730866623403709943861500642231912934670752793973071433692018151694429515572230702761129294320598704957327442954195869116804145647668010055079505184398345195090003643317421318416589590876550095518869037631252144149576014806639303324178970392176658883475576654743709936580088983531339004401097084279232151629899813501188946636172343132397419736289540268548973515404459725077859365272654667829131589289830445194681142375124690547764007786645319644521677738832822550827757503353089565560870364876206799124701245956389691147779024117680152200161816961064807620567333502678457349335181518997122916262643324937404030678530817358860107638369540948477002069467378838085901692287171548787871485526861157902471831209692628445097386490390758478799385926582956560065567682274775714357144112336205954942490520161231526629576158817883569648626113654150020611988086218586343047034229913947416751518390415297400262925963806939042925301392018651415496234736987949160291487780466256088463660000597947746530363731156123518310169530869214291976566110035259802809888200854393954981811281741052735480730644597289370346255589092524218207512179188741507828868009831539160550585375369398435412144498230447755947790174328542104491495165393058946061839075915004027847299609680688055639940897256206498511669674170637275564098373024941523715999010225175088705281512244493663346085976926978590875593135562674517125503345279561744139429889330798983409059464614590979981938641018014492961268110262403658057923846109088196129584196012964459833900006992987229418415353933450233893782283132602326411346060197003311909204533070436292864111384889450187821008540167625857487563290612656495034582101969992248094600151056482800694080306061565013113890822991027244571459018068378715189152018290987961030427084156650730084754767607217095617580263283676888771726744735269680744986375070375887256868531121686647460829127788730435506906480069437815686954134482317333618016639325473573507938441635985128544768622756067571057374670924534285468102578819137000810748424165167463705362086414699534634724731971995649038919760028356125873597085795405127171686617075014982303740944780423891539810891258621775069033654021135104291842034259276191765820459771726906885633492254916933581497627479584841370141440823219632150463410913860978847973757924682251988290916981862091660958775990158794371599081884664406278598882246289186610689916525171676310538113481219030492855541660803261195405940444739244286331537248519874944205744570852267991364272405284036047282656894474297891893575973888878097987582543988605800215598245795079718635058961904543676397248487585096725716753142013188035835217996848998315600096467785244448146164652824212534708039635006677453150083460548875886376422604486000871521178617660662827503911445593550123165027590920019664321882195109339201747756577593450505336489187505408559668154047544255939815103134400179156556781964817530068702502950857200136363926494547795502421516210972637808950217899809610136834865721505623924676235920853386731284876154589224059829367518363809220338454515401857283227095867321756120209956469233290973232397489627840491931738564430717058201881931094488552365409386830296881627450348666022857656348458542044396469423588176249048017155838231444694258798826137214142455718142606802156032517937799841567753068932792944084486949216723196035332730383412294240315093959073157430676472177818938607166078358613392338208976588646742410712513381896156346728820609432333277916619203571743460181994803372284953947057260964300462321037193031079112254494732887027383445788779246030043304359484386878956247448832816328358250703420855306939960429908969974282357454393812352366701242212482007009855193723565716935273205915741298351340814927901557913528846680629122224932152392958653429290682741728020092584576638546993584481041763466778803896510920005172182623916988386094983058295256090493086209039251066310797625842324834073061886453215401790587119155358443606840370335383724075920125721702905039786214454234933275965722080664096017925291284478314119648347697969945865621177837822110485227781838434576822200248153762169808341576522670691859602237460917728671148783531014940740512427824742806986480835718364737193662524341114791734701107539714480782074768602775073923268811591220544377334679960284709802931480290001469236897945181737938232075550110956324127985878394383493468703621262377697698907266284869802653297804851529321194655898464589812396261429733313182615436354583183048614832788558534167082142190397489608494470212060847488041362853147621881540478324151735767376256206813766109681421256846574616194123101071908382126792920920374637176962000947457932357512471613167467480382624542048644404061023380195837958585691108471403663084091610020604437541589372184312320938803074660265866171217102089962755861068818873583121408297970995845343886716804783321267981622040252953852739945810801685860589506877684854763537721508496032521176035758403098734090658618378948297409402975348258541365591401984949749852614955379962131720419782431747875776364609536329191481397521579305659353638525126164809665753082632022220712491851214525570914269050936880804058599610254540805712247720714591359461688785562624710786075491316738151555864867713450809927758827597107703621502825131451507587953058544263370268133632004895326089181591963964724697246888563964994392692026694315592035713135860333356736379409592435185270668040731360095570418514328522601694624292618090833737578577894688728475054837213768749122468554153756206647690531110916116875923137030090292261280705098286325663930185398682909942111346840063005560885686939403660133159252015337354566602924661089956410306025600036939639218276269152695294732600684402887713359892700778198099114304281739751723599686661971716088160556996265288299825820741829420408044505272736762255159779142392466219860057459883226109800345017720535869476946790618617801202316850682406600521555936854165269968825077753989808860262982538190886892134539414008650262343089613845259798636320267593122429315861100123621519964518169242092692556671758456873569707435631543147015534948756054258546325708156594989674703983595798965781552559740683844468149154190937676506671200787399687468615948293272207350399784222892720439978488614645289458777793512657840310645120444040738441753962182369328043568279014191692113402134356156888538014579624479007826445430788938805732124599224611773634006595893242259765399484409468218550442933744034400424065065227693101815423302268757703460370942515473958372505659286739690469915614463318042828019323289789125556031900347838400822109652376611314724644307854069585321247897682452375136870063011798048926419447537624561636091809905350417378984239599088681158975950806610370440917039835513057956898729375240781742938531827511395963469484021319562664809061408702765959045693788229469924391608526498724382692793948869234648219502939525149516458868017983823591269845460207706752288916430505452618716359212675996972063997905531628700039314333871588870501389265489570689914934004399240687674160302862947966852884698825135375599720776039587425972964751562461083107012945229639818730918717426657195015932693010174444714115594519858025331219064290468973396856975685348658196014034374916822018538433592168129058522722334154801050497142403653235739227343194286065769086048867912403010257008246940855164780117300180984198186345268292136083420501328507092494833554480403209443284783997132441294405164508479266836975555140119869024053665401891626362971602812172145085407883107978562191326106811867822040859398166985499242608392471727389352362369555884788315561188079286091821796278603407206772659779901308269439421945521199926698467410378406609340414397709821406537267999706092944063036884375715761930292649084392260639421097294346541767180646874760200309886489132715919049363940571095268187039749165511261327423962649261492444211591004105686652649890444758491955115508445224779789120454156706983016629599055808854938810031104742622382757332442559257654191160219358566656165269446844174760993514700263152757858561928442367483142978416860511971834622941231916705932249300249729993944219739775696943987799693268772382954941286580406083902393860949977458932904425205828151283720121610255992423484186738386657562184873229831095028206996121089490289877954908398012116831088347749771204367377804079841766844571619114605556128147618239409464200545163591013956902343126930984023220124684449052610767330766395336504580221665884012495298960728485726413403265290911230681753542440914896357518432877655109377637773112209148078323591091556864062720188944931185187905052864052480856356468129583780864279655809467987015289505237875471673115019062396210844536653864957589834772340899908706866979441643340204244079240057019569771778565459879937135735854891849168965685248804073949736003273711702231032686068383538041300209869359465735274876138196803912195625878124107708156183552040955837101385193419947262137829101421910542190698743919398934872956481973750328563629477659242230910994330493904181331558612317198886043387556306848648255544176316523881599915201207463972588306674154371221433220983739386623038856000675546351233245087823351228020707257707206740250974646298590990781863279582828554613262434884049109770555908395805529426192356376280718898498937540058923248545322549503835634539116222414802704500211871375222977585323082996636773200255617675263165119962841464894033697810729260306243914743403649364624378543580582018683916999780105693634772573288382191629385124065847331533177009613663150839807165756471825571353668499937611691991681400312504668168159623594052250073306113411911944892175081050732536595615487993044238232215940546562970410500317769409550517008391527118029429103579046064046186444215619552773004310489522605795101814165256130659064353984813138144036942599959336438007600202585954731848926296364882455537503180821410860655478807922302712796727956196060442844547939874872981959390684905662329674296175483687214851674648379399650386864274875040826950399457253265253253512765774830962634243531110543227601523463078628357507691203690654349505519956666287292348656680215287874495663181186412997781926874667329733675231459108512371564086965506205536183831903536930782161054314180316562397759430215483363823522047729775273532265521175490422563797758232598344563183800211016671520164866330582280490229295385533403629513120468082336875910386322729392262871470699250848238282872117866443121480403092031823107387757159542374722357864596918279440179539992988216719711788753908437887412884455192210896477742055526893289364553346852412718233265764552913748733865512680610657992499710876322026223967019640699460319480061734951202578412008684228620071568074095718194318201288099152010508012519448675972772559021475436409189250162671847418197373669144986680413865305517960594851953300275564455714546066734953268635806255417418601107371260386155157971932473015708306777079008018924008182141241337478152886946429287263805850047762250381533655318145367144746507208703728299905809555397510039294360593279204614678443899019243531973458543433500825418994792396960400174526879699326170257503765547389784693408923023455206106365494679701639509064648382561970854877109485384733274210161007580198660973642838002775828756222619371515240349200792537453339757257595772242088962286451794753407344996970050618476714187997162022354939984303543481119512252929992205718209258512305250317775019020552933800278681528123486911160971717573375258209386242039006181966005211319774654860671756055610428497533532880531619186504149452188473274826290100082004776019005157139068244228282037600183537140339917546458679109280431746595444768921487861368447646405271610794243158339858799741982509077584371011390811941793228010805481956392656795101679657578946646308380334491383977514459567465966083616741007709944542573615889027690151884115336333576005909492534374247908598285224548292621967092384424876252433020026015862722093324280713958180688695516108378686211855431405358610219516616885949313538395573440499018974662115036296839986508019886550560616767110729308559604909409657872011962148944203976825438091213463299494648586486736341131395711694492281676162572180697847791660333593172830094616981556993164799841022087212604721455599936765955724573254145518080431016629953800323235025559925005427295938003777225363583217893056036360535657818533176501875118515324204293227731964676470568217699165113131574243506381961853741667627285719930793829142280364549003100807254228921844407286823477260043104061730549988686825168491491661833554773518511400523543593723176325263972406424580916666125722799407494399419179048944372417335654467182398612567063089478988047092667398286377920721345020748809615642107276035697802907193826208096953710334698787365075795206576633456970134358561883107867420598874810423402499340268048184762377645935162793305922908437235862281592568547466986789739099706232261782026088135652729138657583206282110682444402135771046849714205101195834925135923329140628572745814354571599078707301573658460054407783177866080907927833712335512319335754017392505793406926125237899642753681355396858922337944651124820776172603470164075175248323903679270919334389761047615744155544248798650634944314585787017421043420144001084158808946980070252145205001888461204473680782779926683873312592220048291212421821501528549433674472276846532528333429733875672324188067968935565717827313489115955109235504883650977041757302714407643584021894800698799818676502470047499616313832764297832110003192254750589556156582714607929119566499766777918166758501319076613525870780812808971007249265948842631857814363246477210118962245639198319425134378151714585473656957679623267024890742877205235806340964769894691484118921335177929508109398219052079194885481343833743286390487012179853644704928625581836741388111048047195751049775502128351567913077337374038723899641633069240697900394001784023168866639444690445072958734637636585095912618283338459013775698834488733453671457573622283765326731749382284651630444361814875341829530963742442810808038181653050475681275999381069410765905350271944358390943972892112493115727086900212549450348146775540055156467025088746298395292564052007291075930743766670067939267303993488402865194673640890887272923826007948979001615484409219550680369604991668900589145178570851638947057751855462302476784652811242848188682495127433155988223059382714201422615258044153740121629350921859431601158639413972892485103224309613634462974211259683073861148323192887508731858968701030865233380454907819072843620944970786903829573804868948142466461590714488595406948562083893414822586007385665160565324609322997512767138177375531944391511948358035734158290167810500714423138870753675886738862482442022793115228584642357972421900046080449309729149514805450161750325477706178156891389989884590382864117095949653889825217513070402492449330095141346866124067726736527044875617082551031814856514416506470486414502999152587887481883081026685546469574008373632049904095043856596332874309195141852676337822477776092835022944159869387056012775570478338972191422181618141867572221181210913740493635426214387408532788545058221235155392661737142105419834743366252192658261059529121083307256011742570466110895795878815066913839262286098875961706298455610362280130869288291361465457908759300192449715328513692019607016464201172520128265948170069586081048493007542734871762866417504723497690195062912051418275402628367091876689898284657878717244986239630706225875601778721411891898354470900469279464687341834469317018367500820837756807072895497185605351613710865179569453243658996705466160610310740921068886845703389536511695804399791889795156489388638563046603430520660958660931971396216166655021942397685502613705263172696597464978786321038638431978248120937093874131134680057212165750691395643082030604843915254055113906405642291188311115324109163876031444878965095992220780470074676102287944267092878596261384540550852686437017859106809208571404538485337188272464442468922882602874598626077376994742150179877545547965410616625738977741482112515006331795318026862738745863093145757192238447022736690699349803838572621515372125791322361696893013819918845707388462176819506253942137728829101460483352758724975171448557277711561238860023626055739826517486879654296221314995123610732529329934080675275914850333414164468540663612154191474522745031134133111084244889469829356908640704820240186162849865671421850052843463978176132714578026270807704487423020864056649605427634428449075335833513498690866908132223385073166620682273012072370335553761037743328606214426829247644494596133797332348194215668917075755861738227603926042548238393749611599068242685482762101424500347217394107308971923912214487276310450014633093195622413173042420822881971904652655033751870281230412571226244609383402479960486716126678141956112933839275764988513897378029713936789629951296017583875024423177408788147185704254912407277464411745302688420002468985658606577924330887014503056111731885801825973546241998428296597309544701566446706815149260208927938270606463870215645961622031370574784666287051456892863881940473781084949480005460682101824053942695175199516261765072229183215712188397340318896254250270937764895036905386251549129793322127966896749481910707229927422979069720713226070086025404845527733084677270666734106135475549797010240724990123527785118709117931600459826049497037344035715225820107598339453779619297607275104586051706263642902298944344023238289149962125892306738985562221669141265190692264293836899532666169521555970932362786392621721126695001799431906870108955938132831249163205647756901385302579726818389368512916545472409580656128488125424274823362153732979593926923175529692088783261716270289864648525178130077666599810202850279358887829268930457835503646808325424138007138926324837330628643852758421947549775029983343854096849370680535596054856845651916999918668657622140228009885119001796192152655816281714169841856305865057228877387419327026924565022170426662239306137047637033344693469582340002528827394987527805122247397125365031432749949609122510873874311217686394561939877934122339587501080432458399286690946766267409335140655212630633347119117230185711948016362046108232718182759463768320613411980980792863412874292232629543689997067353897734183409401114856784448704279721317151524572935643943661809800084397660518181967323212675958121444146992518770135771047501288021326669812776116199633509983017910990595671460398793949166246941381439089057451610726810908817535121201764795343036487949120299089217891572531110544541755266589735254071379814171053297324135282126783108968050434946111038274572699487802126482147862665653160195535237134351154618036822990648687743983090398394693033448105393774116994409841131318840623451210662152121549404442680973508646152282251479770345434996181777511169384719959939236730531676225512168574643004934804357364138520317111493257064825250967188873121663457586600694765371987911313010571326292186136269095555128659832305895091860316863066394298191854457096429213356351242045218431419674643298664201114329739153002930925562494413702467967866112401016592970762353508395616820451724818340472041683575127347285507398493965349911170723411768574515413774721650020644819027979642456529906577963662616983822059915044502395192186212523703845915625884270028338830252365153129136705216096300400647037705120932913846463138329239699833372738988163367330925705627172081446841328496433016733803300666830092187508046535334398793929283718819416505587024143780605289086185495562265723395787737950548885957552612636524048722286477490028086181848319924954173939373724351206243643827387294348908855418975084245006571303245537169154795303439047200591527308011891943008175413926222025349415906306859999632135368236818639165099279432608968873281081659673412719021126432292823856244940678685371641455484642882886686886548059337847793779001665990669042018652298351323308605051870135432627372548859718844842970793799724694454119836944589120860838568662301366713654763547162248394717527372773102669332996243763756526318137840981950575660864418662338449239034581451363777083095616275752674287908119623287996720589229060630688945853233349201637708852811096495169977679242241424130897799695142848114430533614102972385323612218254460304569650840680422456300059836085335203485540724846526727193706058843658210470324308765877812416209664709453343822547704775729272648122033347226015339723067109360197831880477856369562569150582508561059649422466317920595054132967853149409488080438315019357536081719004592010369006413715445145512726605069475572037447686157083151337978511083806543165969809120010219372236972998756269208915648210608751868457350546205182487027264753886369863471109430737322530416268738529904533249067220650992718976557938247384787282747643458649085114805296076190595412630283138684354132115832547052326860492306049271964161424661973017013028728232164370648498396634259147661360171855787319770441619904881093382861079433264644223060391559056584063024794352797199207596460293654906413924884654885985356482691548837195286698016035611049999431083892412892553131759354157213977678770371268110725036641561264830518416423147233069321806451897434201786590478995915003509797354628972842648678658329951494945461197290525471958771768974809262243483390250496243825376122845543991376276465705481307772842984117124682818464935407907301718815929608518507412028514025147048381646071138506706578852151709418339470055734429380150482426629818953491246980688872418934484657190939072320767853524675508682159891494755102434629674621229716871608157922490599306910088263809416550638677113954967410911339323013469151665857852132033296063711514594101463989951189427012792970096864566771113264196826160430326399871230689490222853875642148590579437260699838009589033469049137015852598473187985021176188833654750449718585999647096965521025231941284800952813701434697884450011227150074665004559269898427148200908594114710424545530827130114042370702593634535272067568614863143693125463829647891180197922481471437268897404986228336912777103783837195860403810391527134625681920231975992625678840175950214236710844982553428205769165649259567622558572558490964291005603078298320878146447999332268451371922409745561564509527975396319587686211704296075715024484338245783262079082710050821671864677100806494433467955737085588727442240687933023290523052593077511865477005270249759475869756404450731339924973107597258035002657074441540792210059242636021367843707555743794840516770868178586224287668433048448960315536782463178780177238987822298940726202055014160996297674452247668906767085934071430439284678666275215947100506537350515825569755595156398168988509809165466571162360168584942142273622680854403330302091812552562426885781445554710733656771126591002704539543896455930761666494078883071022371940323219937705845772033947335782187831502450993617631367163702064850271331011171160502395701845266117966257422182109367608935586793993973155273641929443153907005546293193537071416688246411532540145564004234584886938494483559012492127648915671508143338437434876390438524201469983290467940656443708801461999221539938153454120987418228347336820795386672670249550127654336028008628168950934094981616356685992351275813325702930983211666204848873814290403050802524898873424007934055584628369336471232752167568252902096265285773120766847449574591881829384459150886200476265555744213794038346894472556442131751355152885624271711833227616624579588891484396545768473673897570140586877426168559749253547581599474861316285380579438146582770512219579896011384462112802826565529257535906733769649590925676234718193171839332240643186256948292561085961653340741019017082883112227484328426559406079273595222796061347521815393423979665862864919809585548403225265834093205251590355622860827795043028817951228304638084642696922233110082069696404495007551450271934798452847701948211847019038723645522168237083665002406537548883782035369994034510991670187206392242762876432905715463536577820690367502631768585966601240008602302753728134151697362183927711205148653498323518255653575057505585424225444070181365404389530547269297701852141528543477892335006991266848471514186228762793364037851159540351309930610288575062879343252735459423981678356867512724631665122718911515547629479973716347979485786247921458920761190878071546485383251782636910400155119869952669965491607574424162191195459143528537952667165813207240658932558293144753561480171098516218676496803791860985741731616738014470789059190464841116304423472150861119992330416241129938313463704002065991336381528717335643578494123780476353489359696889998447237682580259321161585536134906903199829675119766770360580050883645299093651030994325198128648361118975357113189837466895642046361939488336303800107780691380248962434868030615866445617935425990061914577296519287871575489884400706819517351000845205012911081933238173349220468876450843423621879676228535103860077347590259428494908234869643279296160142077677459629963067854848848175007213451767829866191048479611993230204738919488935079985240633579185401493246029526046613995022317931499188940941415473782684805723872375861932058179803271301282704767473310046706785860686308645649581861786526596723156493812454985353713063086886513194606711944685382577675836273418271521728664585147117407611455085354431053644874333516027985709863218023675295465830366503810621249472555148567900194840703888572780193831719279533163670953455910884797976487403560307128755124285178070462752977816239097855292500610645096072656786486354208682606858659971339641405923412313049720993085329350914497699659130221671903999858058677643511648899863043742901256997760187624490305474821393019195237740384898152333545064332269943746896615606119738156336206549181547710862308990066239240899458013912382697877550623138916293009262349642161575746503952386402815834660060853760925993814989685653071215188476811486688584224132551079170514496702708000193807277642633762978068335621626530833637366705035351638978392300877531051164248415322097757272821037161642482893309967847828371115522600444888989837150416165653701940962324953121272143945912537124939448376446992378350831455091389367699759418628958369068339527811839209758102786288730562845079136923047871151907562540146093263750180503628180516215393379486576189328559283456579755914167500373743558777346221769817430071242673075156609845182104289441104819648802145798663119922872573966633971088980429678487057043721484508454773106196150029980578087090916603811516676542445937494468076482893258164561444371213433727670700873916300942630309523724347537265293765690387190314378680318890708584126286279987936808296917287335266874480368423681643349717511155394714628103709509781340278135566171397246108643534018489791343752778811586669734792805367747678212248454078144193752473828080306946830957077812929026087941189015451530134560619290461959739582069505963869675870630773042990584821311360579599354888382929416327935064847297741619989128805494741196651322037364193872520517284756966206771968570183298198032443039575494887741824472319822446079824289293775801867414199800745687088829170324707853115038087355416297842192809442832547054581840436144972614563314919940152918530532184947683105660680984039453886300513523937214439421831873504660457351906940036906894125314154156791774822452799637055883241913719972081546524427137019023106493275630922884079135268833562421477227396196737175744285967082907636302071789129817960863784013018149060367830197784707104733865867491229347556652044524865149981331312529848674797376093946661552973283338567388001755992688922776818936069252605340695356084062437016748619924951149317601729980832022982580692603756042715684018639892759700906301208693329799984045130549389547954895835972764163951256279408664891159848671548238859168485671934257319149187301201443456354301888727307675699194646001367642782590907903238354025328172344223241411125288561176532373925629573817520367388413411485556055299951438905853789715853062834398123874508895805903368010906722787857123367870436331633840673341398176486929736484702996056769878400960184110196951171004533934666119655397062575644809154241313964111310481188453097187039483773689635691494141333567773939211341338827761648369168770846060817329317809915011532695162945075127761622152142656688433925851489652765789646009152259446193618641337482289081247744319591964699573838552183322924258962750320553490342144929351012452766172826992511886949489073370800410984407543152500575180731144691373550916225735802576614360561704210894080697272209666567822122810611039024053494699206022858547981051035063269799480149684517783615656724481582330125960960060128522336004896324669584550991350098428004888408691542295995619151103057739777314798334436630038169810216126357344432413845434876892811590156487967312153820827575738627664968120462563535580684041177961249532959950125057414896786471189826028077146025598261969510534859166917281912397905764744899723675340913743967361645867417161566842543054515966993723323372163053845128361769277240499715299852752543867936894145917055440093178689310378919726188609469150103871847640809066390695142260241596302222374730076327216211330520793365248003425758589347014019229510917619114684308736066277051131759120729314992164671674750364972855568560973153410668342306842231542838445016433032572123483921293584549455895822468689686789628418225800597729701877553803101725997974633292042411352613513295881754695136797677121533795991819415075529798369672271420132866610405075271128973649444584367485231155741841093275464521208769391437806229098236815477428075403662821541899990843111189543219479078893154856288700127382417932641464535611276393441188285903414209022164060921063469902312373566003136794688251636311697726102968385790391984613127366881315350426219460254748684056964341219918840749372932228402826917161971051617098849554134927236285719825393521150851661869464903010358913529698729723023672679381823710005032608931098820594607595153149658913038216643377548091606635712168797825259564536390875975646166994697028376336688335737985609815030726110850770512211265388193414064062882873255558026422356956621627280116379068834911646237970712158626974619117322287289288418687531208458733199837757840484699419374556035284729141780490659530688375422942252277748555623805418670712096844645692972937199336964445135266949620207812028106886413089738926342740914112813196299699976106061796290432448848281155031089539010402759363768980576900256286776947606238506738491928357939030912054145709359063416400667339832842831844238967292320066346402677482946560089827612141836004197757083302129029345066575707080528046927967603930444038446988048997789105160214772677614605820542656029240116477964485937828322771702651374107770803884328025787546823309413527289292595031334792360491898980668142021977447608416886929398179197318828918473181958096159321766070351630963512694940827361590202005883700056220539643451331654810483293790712742784625705935861646013831346591885547093573218917605902569326247899264708681634988800054686883795142112365756254891670553110652569294508680384666737645998409815203658676649712875082175618488996451371626491950981550891238632785179589883490663067722908242166713122724257474251694339336154646698038364218662140724326215787392429112564104991323755059805417658530154646199323503298806621274051967376663826977650727725660004954040300464508079502367162301217633149060331617901899957684951031014362570965265144119669424168234918034924003153164524604940537968557318797900075839280404084285755516263479833897527869948972012551006945359068548502239351497261304291272558536684001226441517139026440387038198022142364692988748102516326938700660035502383422730206383375353804972132823043564737506773186060578677737358880716576906812689243007538256452584568501229844693613486493719196440610834499483944494340733789074039956676065765572059240003688794544926710063232066932941679526803357130125724534753675510969856654476162488049385473858215575549559143530268832226498797296957128888420875402647871035387237057507604049288694432811005935262684918501942921743530059436954037428753827358637471020273287589559736115337688008754372067775413503906328632283296462566731565319836271606523042398807474838444741593451357826758290229744878197276116361503177014848900987495579185138536219027026436438171219043541181667219637406272742075853570032227547703104855436846293547276665716390520487782598155410275645458850072977592436266765578918010059719012847314538648318270629455432853859083717976217917416313097029807857516209972716070412694349798133801360313011473362188970824905268097873145254963526168346071978815790577573863919896131289697015375025030314332493992692335594978766031516370649523400220587404093048775866058789812993759554236724686876574820507353606455801110744255207094700971018681472184029213964456392149456393676411616285755400416993373963290973156770795380564101529821828653372876107582200856363376558860681560499972126905069911270623356432745763536250437726245371859100444468048227844916756190385023540228789241383979451427572759858518806677276420942608701324140941886774364265242493140390420624979282467448658612141283720568997373089753302229458352607524440332825523092662199586067655453451433411017577572617250566023677235329942683956214964886282682352466924806217777856526984014283062892173460578722566646587266277268793241324684132038414286914932859328353978260189897927132150478542042614980380236679259873336935360311326196565848014150107908019587001317520002442898373813188513998288526292657563495418368276147117512272764854145972028636143699407446848654442042760052586102222443876661829876533160716350597658294830869285314297259249179622248823071792502572223438592550284782980957347247011559020973517450881485781456842921283092644432849379203245003056701071512415206954047544844560525197579099773148021239171345386226237534883229663657771711653725978479247107739752900485452015406714671503326817598322491481627645918458616496258902649131788457059180806853216629443612356626639794090872854638362766101683968395421703355174220943392641427927416993835359840177246928328488265864618623158227772825600790686954760073491194745865841875485898796652927035796698506206454517960023107137144095683254341059621900441245564832706126655061469278118782646705485738468946477112790620837031356117165169084079736399612774269892446700834350907705017765345548688714232832965911400560316199906530174626617903262522498400304904082734395503693357798117627673616884490667972060098944149952371483104821572482262488549387280860698426595997535936617314415987885588012437831927210528409098398191150821546796107582321147738836712545569624229573707267400077702869517606559798172194220481367039505759800315820906427908100751429447433192521810045480123721586730248631509078133121764017106284299810204675606613522594150626540341324704209296758230746459596186388078440047826950408410305687257129334710952864764425671662184444825440208804604154083513828095365765262850777699510538615174140679635889320338715297870837720271941287050454500073176698187349138530029948619901149033249355123816253733282221376296862442521615169777182617660814736081165292392545020575741844845301957738522894537311603224865147994072836347140037192713510465540265573953431576546643137945699951147399113671774849822066689461093806446067508569913388472682028464539576039917996452240281483166965626011165311921167963012009582529328038135962972747546196041142049665242956560799421931950010320101545573111722550695531643941437255817405118488054415854999453432454461530683046056227903853402661047413833702148513981538369690006149721750133626888816118857976155299140104747786467281948467061761818600141589027747341535383849723658054890408959111862171032009798460988773739707187889409909990963578312788944068365867080703845180936021845266272644937955176154597241873654495894873632500929749292460880837865695120573105331625800484179763740003171630926344170400389181760910704485374843484733166238885548570199752813530706527318929477905134693318395922474422038600856032173469427382194249011844450084878941935428479531940000801975932571291475095866636428016374272685400148751242944450975631745864650937415490708857635553888581153607819860126725217555471613914604225235087866867890654308156953867109889001803515271959522245063521116591515869714149109997798518594204510918754063657788385833173536498477891344568311809354688171774539280307287913368772737427472603926704347363204374788007994371121662518232693275470185855744795137059239783211698726257103483811775816144921854801264781353112176698981014938798429882552520743955476427262492732591737723560362092231852997949746338660036045289846562622189623385363238246096846735249876936944419643390746102372602776792245396791097818133505413122415658040152166280571068871732020333751390807309466723559347841684726005405435543868735918193980057844681508590493483428921970142465857235002165965602144346182815597510982959837313330636256393949549584672114810863903154128191953479629577470688535844878654180735589364663392129019400027709273178306190454834689875543348348372692592933049771971801426713472907143744067889529625244217861322437943965626768247197911284068197454952825712910352840634625466587757017664576800140103814812128433630558187132700205140037312909941156152780210155585603098166549525407940909284846774756961366052149358572211614582543963783205314840815071411059595682428189007268052516306184044312055692381724675403694119109563752906433167049248826898731565232322735599722799774223576339294342131055102198231730119969038694896208100345012199505094219494510396081946384909542119609101590651255055708102662642425495356782227422919412449829799946464728853264582678111684773418649337364033593334017710805204381348574288252615504378835503092894901520390067278668226806754205862469285102688222929034651503254892153683216503434450190419236293513974849106108071575663852010035657612080650744633154152320136840123546391443240441284011019479664965943739958092062166849917940515665908957084748831753418541561015067437573153561871308170254536415537578698474293693635018619350956024690171336073461235700090754395624039134424499737092543898846347266967387156391056744760403898530297861802384355748889466494500867476155835215154414149745684553345740297652508025808359183970917800430380976976637570052964215725670759081312525939800433270476118649113351638496403167460576897403179536695144952578413957966417530143645225839963036248279738620408874311319860226262343482066269543440647540226118186271717609482400157841845077185696891316616985419013271192284280597490446196899003581213290517798037598170606827531822725319567791928434169466560205546346359842636075368062685460981168167222969544057684999981547409702615653612727092269138298841686876028380651663767404782554848512825083870949349536508257540989204815283793131238825699647358987464905180676132251132784911178039551206616021265650678852888818040853971399601885123392291487130523086282700164478983365887209398385158986162330547049165416363456555858290461443888399861001080669999675994203556340970626566953486533353502719210556430593546208225154968625311625607623664026630344683832140180891828799470663424503973292210434366143261724422742811283143255611375825102174220111286154667486420332220233044378094372337539685551990278229179131135434642583917488764830924668501982652558662351236729720617624025479619274084141650472520489526774985267082419093520601064081214038208892885149037275990655390288294275685482043660386320734769001542032494352027705528385177973574564866361221131095029567323285082086706810274503237349583181403882195175478803292323530449151903569552670867953817757010557776870992170050788356640520877866757766166057456417459794853678835804312877030390371438807108182797071965081970751011513843317991653787306631147732720629691498669520739968715915319470642963476640827625217909461600496931877181645179856116176941349704148557053715824022837560937773661028057931424804359235974190729332369979998292163949572588012863017128484679192724079433568269876658683440427970196316802169855353908577426402574094807487675031398164434147401184855048406745931696624236893389184957520055869261934626197112205549631089532843599056254109059639919422384045528058051017736548234753951099315473008222582225653597904400262396262022739069974786417935449310698208294083296662840025667493659356080626395144353537279490730665019903739104041357829528693551506059076577937118984221486265629659968025904101669997328425909660547837984288519355770113051011737648551943852961406495317054004819992041968181782694401285748053376306174852130452603251422029811709325599191568796718552124349961397067732968756762901806282470392906430375124841098694269728695899847383542219082872076897960000508442676417225214221948154537638483623664866729753921655980274073377328228400294646452627068179248855245755251833925892799522007865639231884201620881080901138313388794890708507969342467927740362167783516921032365034171323364404785225928149285314211803149128494152155826766446857429129442014011971613466381729255749465382937675375291556131578595021194361988748599446618240166362869925104768261516503139109024944241375543373239391166025688928670708888043830784672668436886599229353310017200703001696392638911268605665145585643452936383292791360007623088156924756465719358303830625390555625712295227052970627951539810739031201364762307333770333936619881663845029951573262778977193090549127441735377426591127718766203523075042216896025312610571939748997428619574237905465190740212369323396500516742236134260271340333105214809973357499092243692845807892940094002822672792405009457841078370183669484322838982507118522663277980656963938967867653498830769525595408836156051765374370678276861004323722021106811976886088845538150183979081410214818951083617973608445036864431608984797935439224552463173484799913527815117757988990245957547909026400556049070568162335966595512227192495864572907143287135165039117163226176327539768914751806205215631131606939767622532794250453298042773539642788107283854096953889086907577702165112361874144396256226919548491937577907970634652200546300002917125494648108326707870898331912732526385566667819327210222250969852111240900703238707667453949601351358516191205023691450191583316360140850287242754997723248042363551385379578646934586127547788700032848400319779063310444651887106815554383514921470998120210375062012538112797719414384516056682111610619677675866871790040746860963450561567606079683071043121514159739983802772716964540440185834453970154958281733536887976042999032056307962133395611350586348188390448001671512009085005580711835995924746192584463821939181624067005429182672467514713033873454271520294626028553339847515457318099100678878627442799703578140423262214962727129628940038946294772762609297754180242369383771800162418164000557272348539883744540464899206599825692764159909490185097699492359285673532219782379568551653271606495560444229578323903964880029131367709133896073625309768322301564811770236592578489871349641377393868397693080896694503214878585410595543614679305300707142245874830492212704587393792406156196903324819361152367838979132057011742035193348209196898391406815481916486528721476385967067759387566044691308696667441854090131794732223396171333330178607683882892127236907618488460780189567612617355952499347198663129097208071851799050872144373600949393444491364563962777327229969526979249255298361932442214440746635119661143866340549781600730739477797379970247489121774753883039954273807202063245814502355952019990335200485916928827030060166090123009293861113987329697186315150796702932302502889548024750522584197298730237763262547833225445890321243153216062087832700592180836366140066253980706962439143190961750799145141577541562714409202006490341872054024276422119917036695264692758431251789425571468177333642105826377315638890449915088179097598283766760265755257026385175351712048069599650648190903677566305532200374997792892541793800103728207963741493092258271183404534145765946190208022808350696916689371811235714873164516100015868320607151748502393250629522063267331611616620662214002315162932466944201141262671788878284079015405981746325521038475293423586957011554239695431372912872037647536077494577723589455428173071030333595121379650142105547923012695827584274643450548480286246064872414469057428117435498594940790255643540673269902467098541828915546896695288360186340674120946599221406338008206388679726901400526048194974159604014596308436642430574968259378448217815723428322364354860630346006279383264733430096938566717491237582562528331697244044843367879622053940728258241457409220712901295431415373976778396087738234526595573218412907572251331490749008683050356663474601439643893167091596952832417925876286861444228934950454218895628037822541807704526252810837130103585220518747165501765727419509973126041385357055015638458076228932067382023837817649067735607456513258835242754845850846485574982803913529480659642228100964211614171476136695484627741510784110977421141330398610967755271584786208175417864520703676300588847992518022059764935757161025723090326220200297954749060239562906791289609915547941329991298582365575349169479230231969433265895344012549746482250152074478422617640141876955883564198136497456993774295722532527208527849229271517577561526575886064153901391786677541911217823384350803561346489390480081150149581961116945745816524550421406571945029612183216263157766614556578452010047288679921841147461612706752402306726218196682003637687967787163475943346582046815272327166112730851217535032745526711754982634879168753893761200546174929091437226955509331735568537257005648750219778729481896457083132741096194972680927098901287328786088071687282619844941876473493032562599805837154447808814549509654884635614748258265440519275121899858206929731974786305530037486752012583086621324158316774312197615129025363573285079796383509837816636979418917489489593103528708247562656392931728722303060465541603723165430375424696893526943010252952648761372191618151054295653669022851854564487714836523917219826486701203769141932183205117835932773352153299935883684366181674496286684431527377821636171704925483070672791554893068942327531263872808696189476524806383892780490055969759552910370160242460125331504650398668065715561794280095322092907198452600118867999041584278862223530576942337525277053074949708153234986320076549736562612720449900898221019773382658741257402129889435492781004695187808440044199813199349377341550519475105436267304093116820161465080342892755732183790450673209288406312827064244722019721962530815127803224985989517059709122910809512183972030650186770117809789583930413401365849988416955705902434921786804315744381195742659210001313820189056132073892314770797046163714403193953185827377156786693897287329945865835498599230922283765287967451509428215832538699689764288089767234090857892558999455183730157696715284569057790206876445341601239489451638132388199909380797060648463926146250510190022623794037891452400350912288263363633832043642940001464028323897562982829011749710165033381998804563992539064097398371771683332388930519006211787595795853865993884603565154445045022742982271565130861941078539300193051189564756863760224970427522029158274253547524296752806877411325438523616757029350892302251676724666029473084462020113827951314532064987474066305558351031223248381210363552304035976665608541128334255831037892356248893734416414703339731874228252669036897199483817088198595993695943163434944251153441425699954674538365597532636318095554761298499270028382820199439746298444500868938178968131119582166465689993088241108479307968172187889630102943560395491377467300622011200516155974157956140246062944715037526010681875372528478699452298712757069378233508782599656964255442215963687922714691624434544811959676492594328327060699901944054556822215079339045412780215378329391465857630100767725699130573178878281975419212973574378465913380810270358919427927394894131163564574182191272655619671421677182508652235256293138757197551754646931975731149890318292186327521611942872812787677796619909095517076660318025757586680056542263327624354328103656943427380890514369239939554202678410817897699417260328316891177782076928841811189048617978995595163498936686543160913906967651284899923772128876909650363954564467191970664460650652914506790236544376627260190578040789633590955881645271458282141850771373552593730229481245722672101966968964903123752035442208144573831621293728071767371555306666995106255103228109528867867759588377714318187350759418706267471247693451336584374481008493568186358548932596015908995435370656247187889558013533059061211563072516721699599222061201117113022634363333694166091805210618712976759583240307903770739021100837699011855740870391050016023670377345143127184406848763024615574870608529037277016794712484499104530459390467700913313954727148526662032727120923265897108471992563363179852571559177559813776049645416537201983283021920511358811112760152687852426416726623554811216150613312625577633709728795968975050065661819740658063037773847519407685720687595647427201791109423501202494797492965771453291948323952043573396712989490198686881925588140236365191101760544800542983662686122636775907713831043458547189054020923008845641735867979684299707702138336483777318222420280468396153902220645277006202420927765274290384101741406631544752172955948773660658605995831907754463290427923523060816432121566901172866640630502122864881344785364810638995011652966409494022143285298837313854259283363543900973428385573113194718905584344577620503126338985217159568813040062636058548467047788260818894786625768609859691561336290223408177429184401473508840027147495469002671187851559732928409001417226403506973794285884694225524520937862588932675668616427918593640758167015873698222093471897136867897223525354464633313647083755370518705956066227598429530067561241833374251777090676380125246498310180063216950772321587714313860997582762015847289327018621049152527558690040532644835021641621418729269960565469794318508550559795453919835630475770899363633870580665477887029131848366073526089399188567307069034376400258613326266802363748271492037396803240752797356971830780952923185005602810256291952131983643029679127562114817068757102532205734444174872477681092687070535988081479739305295224803144759155197838273459392950809604329005371615124182431577156309098906101847674578335587389584924368508097484041815891375607559899586776769400216929290936516962111066444683348689774885634497977315312683696324941763028981351732418536041971977374424640835982266565461074553425984272387639010571066696732808350299255855896992658915214413616063659856941855603676676978072546192701487632965278324974776227632555081812326627720242736584476075889109647844149804265594499773024507078306795526994121782958748554117937092573582824997156534515861296309184365349419149244269869176137960388145461718487171349013642356818055200634781167863062752139903244019745593045577043299576686212868155515319464976665712751836553637291056565151302116085938092450786783948637681967158777485443088338186040821817627803684617679530872726235997387729769939894864493966143455449848103085447778287971694959361129276888425905233346654504898280987762322892909647527429638521166123381907268129987788068048319136920223800431434757767151753734766593429433229013477154810551093105425833077828702844046683192581358787801199547515356092410428626018496005793276738153701839509457494677998450134065569799749627400557407005154594396499624357125487744865738678563095275140318029449719537735786066973017710238534369065432360052356918562780898998107863574572250916732465219306078821297765483220890252595897200549837522774248004159301954423813007753923619283443064200095901688912829873698558768840605962162258249156054169356453004673722312313083463181558973230422576159152465203543644351134194795542478706348638395388250948770113716531809485097238457292694815121242347821741797802798103569747534727509217140755954431516778399172268401584853344776291173949628152576343848714024189046010325175725823631748540145640471711919665540137986007753602997172982417798638675374993177197414594020114902256839645010182476077476678462177172946757670499015564996317328514898136205594205642654653402501610723969993006662212228916695853671172108416725042217584150369637706249752750982792804048697774241678272907067385000258159893098131095578250322584754386891592220153340438785069302763133597975058610420537137851191960187384405706755172359835865865254467736245791447467485463219890963109483763657949433085270029727617916765458881930975993115247689102297114258272198633409754423516589486781878125348451205856191826639462047805452320547021801924775341860127285109022516653547645982562429691753517012237340588486844643599482973120914677362995295752328826089896891751501258692130608155585984542958484607323235447575525732818526130672647953008786803008367797893492732951300430680406096187559302665788834059446791681485452672360607137114121287807445159263057456117991000657548439216449624112104396873002983724167982402524364032520640348360308112456486621858977828399676859366341212139537000355258672798299063245504134673288796043847185919625868831303384817244802140348786465249722122242332619951683412392067189672418387394199519046037421119338701729214137225640601482350586976958351736269951170498536410276483077215237598617165911891159423200946520442717207059743129920252000624972225811764441682725688152732864462283774557687960622421802594475630627556521150384721644715258666021734116166338724424382828919356145502443088819443292424741177457957542827912310126771037705812529872966708385888759660264153830104905934182703209897641967501176450856069631009148386441809686121258866254893060731229753844458816858015360682161080193884258377605512149629708289947021598668498316798071018180411436210428416502900542755456193654866521420083970749593443439347000279403404469194430861595097812159984020376781769015105096905317304753343848994989298646776481809027940225705078228815078489237983075860872124219971126758658736618211405101919639008038538166003218275111758113622155926596338095926880096665539209277883521415693152274192293081256121425722348345313736353213307983825851344750691273288232966713144221297438958393341801814420861084885375670643797897462027687431500098398091924592420636792799341889550482662405290937483810498500498739815661805912598206923118462884959234916340178172536347473009893832139729285756128316632108057963833727556580866001165632259574737813328303939424969300620297425647459885847148473667630621583186359431014311031073701646076740254628544397600605723701801859293252655426670984813657556323520801396084788668614228718143538352155510376102290374393661163620811606983646922701547191608104061746230204883667648265962838572449227209206187928625618758077620542946690527478251545510647638763036535687742462394139025697227476627219203098605629089835194582043441020423689963613788548375468899754069017914298153217082183821276545241751765154393329902656928454641213869585200040289834224345910796913401541087303999620079837090968814294441140435793612873322033145353509445631478697569605671355319208827466531968890756376104521735299714460300399404879949639359807959664282017895416146301538041427383425511598429718873043513099394839494408749584171961966132738815924847267574077246575429659240837695947362099777930185121925771844864636625868080166868412969246058401255517645298351087455328674514012912894293878832091376897818593314758256386584593865794647683793389471321012914609771971696349286668286363116768524374516074836515937391445537739451837806793768060335756309306907221552691492459728435322145109132136477313008768663094621259651498224290230216157959474643398542349550095456822071103681513381738036292876215233948646380876623300703143868694837042250449656134704909719019203792530222076228038379395658297425458942141228758070897736122635850933398537332091088951188178312762919026251885770880818691327607554774698599311556579318954982034314911844687727887299118582848723446129014672430026571312024604322473232344245089170382239691280764758700211254808887519276113037797009260861155619013162524590736028410575578283634593496701004699568640889308947542903196883335341374670721090378497081703353509869920484303949532488789910726817997389814068307130898414403040216829180284808335668959018293986218876823736579061330445459651063131021313801761588868126801107211797202128610093822708569507028197456694529460273830841175778578512369556076266926463768372758585503287226788859385092280447775401622101173491169996025838155558719203494117878860325132277630785810225390073420022885666038465802705449158633187614115502791855822073420794835797256966881526184159080240099491023280501972428350359716858401877271205573006602671940313042813095811198876939186469859406725941200538127063267870877911413206501457096774810103696187398337207238392072290998574113858201813796580688294057291528651747244853163029217522104758375017446622808763856965172121592756709218237627999035427201312633119798218589199857433769263306704496871789604047265331671862909131245442520920366113863867951882594407746213708888293333523212930589369480941027314526419901033935277427798780358133157776898209298846501090689856312456692104278669234679422504195339458189428521727593399277306555430331508531820135279960935580899999407884660519319370070729964715886384648492967124953648763704401768312435423748385656961733780016823930156730259296072774269065341866554643636985010988328131599382223000318290446699811022145279363174090844902888818726877818852897665319421421808712393799538868910099148569419503834690884306530778744094596869594125079449685827716184495414282457398851721221063989371570852701629657244221600796624950219990267214002891495483687579802826210236237005197518126221361759881494403148980640522098543878381047038135250092891847819033741145351423265206086414535748539634591778665127132691251958520622933126668107431956937219799347567885263370219548768715242640279041888086698387669858005285654347617353132762537210199002125005519602504662644773463726353594292361392559279996680799597615661480012649100932160022989159577279005566904765511968573533378064369992759862444138186965751509033714006907499223371308998505835163966445747331936869497804490892160118107415950658598060402044835526905872223103559873660288551946898087116832621662780583967460366650985436300800496473599463053484593342669338208924262714193909559753959594465405875964051807144646517111401075581004208356110017117329388312260520740351818365381033288147986318394916552538543722491400621495736611408839993059200540972696955072227854093565257572274830269767351726815100681695109234161326940920209344867618319279907883179010594656278766746636705231192638081122046187016260603178961178497194845272151112783445543111313001075083530698401383167971848802657413463154228500919908515681911243671359396335014231866153554211396560665882163606675728511244887405681435452913314654360219728305094362957525371075028768570741825689933488022749961008961910459448418935328405078487213414639942278360022803554010754379340706008321959035026460376744968830493753362912401789212734520880685241505529182895299523720450199173192145905511903675110895766912800300749037257398947385562132279310350235522736725955928210879807810012600021863323363919597148213891408143891529080511088808998534464210060992984099624888655974553526813600282569440653274203190022360085411820389180160950525174827871430152738282244517315346654791661222626167772346253600538071974649274309834445589781032386290215281617440254809525778044272988952626119965361258909601884731229394098139689582826766822877138237450837419446176701156790096112058991301894696048305291691786811060856092823728688193767370928595225428072890261137610918540898759869712126910861396292165838806622171255502900205070019792311578148518891197782556290743958432132542484790520129450804269139769410121194456327161061233984451305694619174222849943316714061930043416056273731898348329135467703905752722356801538201982401599080464545290232096024667443240952066962952068952301531912325009583378461323804362563331275527987885337465274815293520756367462805441164527602200369806972091285810723268917926019491808683156553100121680538791476797656781370450715944437019542226921226638039515650972115693071257359101185258939669512838776287381901150362221150994568869587041168470217423052489509121716536183880887762778244881499429815532220470830933907684666201418406964432576717620455340711622483587181414066389282519899657287491107266177389129544738957946795259272190095499201666910247223671857876340670246793283699069790154088572213927980997948827024589425516794503507717151631810274074976457103289058309168778799415788951597712139968059969046435711435654230416910393678792886767357976806684380289890433160239951867762128918253389288468974055786305063360090097681189920157396121943433258536855049071102633877400692468523700037942885191595345885630023844213518321718283927363732773289595542889368814669953065091568185462566454868253694971778272510864673106486918551843127259874990687803968104330824368135485559656756772763036798200177559635020869550466589989067230997790542210567471168127318122770362811304508585116602508792517722370880717231921182483580726374493788368916198891784855024213415485123400528447149922629324258852526387521247140913785657418619453602535358816962232353820144818722335079520873065083036482313157880460773367364117802443666416544515667825453278011067652702736305714058436765599427438152168370775178502050448690316236474214529616493802352086447479235063817006668350333426844449585396552030778178026238268150636025706718812285382796266391797928975686232590606542271414226686243889040473474765692871593430299014285595015509769341961134733792648804754550033404679053149947989052552474301302962135693966122084063183058744767296575891196420745959855821180469573355415286617528915519279876532642827585554899504403705990387725737178340169416202469711051779486215927001789248646014658536987977825094147381074881288404123681941104662822699767704498630985650607800140783021150647438475922795687146178781345404258170672252358166786254524242844915922441317260824438178437726665445516872128246330104659063863482322343342266858477406479289085343595779094174375761473674997581623457836086319232651052249364471815674688919322382983644165139365357341525847206536978918429876984880035114402070476306391324715845128839365546489647911852194909625104492512135856536806768160305676601405537796913333939807091315565906101856661986699045261847162243026405298115042056058142864105798088019027335710968875249582471369777778637287493629637818073700039365661060909377456983035798834203157168560316639550012755612687992817618372880731426257882833566174740177543197090241419860949111150333653609844373634296231971958110893759882378943809941217221993660821560424520098407435629394468185841911562503870382350335729321272248263927702230260164168212578940073662418408198230974457411454467396270058613732137449726184801453615072437293707508593164248013022781596497285435215296671116909019433096694696432327747681416187317998158669303981869109853529504321839299842224091384474272787912208514439407439585641971285351133760695240497349945546808607242017131851228276633363038160079784222216889206452960029550931181939972718653490279490746237757728854502006907863148570854947074359332552804772836220259111321213310018931985306803073047772841062984720929064303982788467204231746482915842454646094947708770254784895552435357018380917170467826834411264127937802851619717798862370116051378473800469140558290675022474151852868161984625419382597877171560334921452089357248455257881862925351631060128305953806551743178745920898802986166189593409419378106366142619118915888972979961062476251655559076854956065377945287465179940395948985237523928014573982985022760872511384631623832078667041054487775772828498921324662736901900424779368381911925908970698055579360541571863438277917888317274197753544637154728185421477181001877435398664496972821253989014752813364762992335819712720867394410845731533440008101528128636577039510982862096723584392161950160026758539016754662498667533800482304575688589977609586832159049308958102640980929296911509812280142175814895626209017973936412219689505050802335570046534311821149304535878289649156888142974397301856565425638130529665236879307088994687840273647607754217253280940026277909464388391589988888334466129868365546084287100545145800969861928738308921213037764182101176669086290387859478781941516197047214922959888951541369961512701295604434703325910402424839879677753101561802398627380370788864440457401699598892051222690889252543931427164579837034896186391543060907487738745136879841271280368954694718331695352972235408349706114782259675052451468395590840265930689398335533453104785181186156911143246297169884663868141142192088726683860991842243233329623574908854117834091001681505167344582841009078120401931699318809482478171584409584708944949398282761959532374881181879097911172189357254655976428223810730947803530611594384941891046448476155098889627905608597775508563677305929009034239435397418022127636183213709064402854151480409616534704761395366790309021242528329224329407773038945473501291607264422922907716951225812918836255132762915362400537319398131073325298062393962776398391630245501375934594408756362964026395835045295684035784359112906544491930753941021785398953319252983498497447710837854263367550152715965648992818311950163607951289038120340619187878231943568543154922632871247716850278668116510081177785322243131565256856775435610930868849678134856578599138642260504888678236369961572179116314902814298136022138587559316864889690776093328203313966024235852039825550157731085272788358903974885872344990367837631992022638390403522020183017886912195788522178487384740828772208387626226689621627836339191193478964349269999761580955639602239948182208166277298645732793503783984096391704971849668143632697441518866427343514806575930767185450469108302420703422273588719217551445489572266071212422924063153391294755507375923170751283017025043516856651443215024707151020990045850076361992690321403409839485622332837131071583775675156760548978494878456495859418957471701981887133621962377736946290038617811366428792745170562656345622589869940054976872897276302345478801361389966942300008285149921599567072127897619794906033891855874042818192821094277566657266063035297608021706047850477860263766971544482603944719134362114583404226096230295049986565155887399296422432407396398332954767660439053008613378189771948753563814649777827239626643406652678812139511245936643101137694411081967528596653218066634047412794667628827506479190157731446012147826811243926688066287460210926121414179301006395909049664284134166182676908182137334160519040443451782973732446414728803431722727877371010836580126048335731276517199446753765158485030870649353379513112806156977037544846534736472842977310797352660345610683714279146549915819889542009439063761734334503092764294343262617992408481998904097813168813245303825052529391502546880245352920302792629069973573749711529680796974548569693791692683963854417235487056297791349005480270618635965394890962302831716396868765798585681168562859376512357861819004115818314299304821534958843513006700392376547779311328095202828672370536818446121678624638655744980848770225265010101327365587964552527836351381159814492305995941351693883989724689934190540012361601120301466431934508845999820054195856653062174090441498745129539384425303855418497083410411813994375633302054076249190560440875345121340357687163780467159837438092059459356237327870859931613454239542224398784948604919699819932529336920164749441663960738581208913824060764332672243103599354916510810505176275000818321333163623885965512290779590795825255975579273226522536557702336955686401294033261283267067159177872765401465468037179215626969179134749109683617780601022211714582458902283745771815484945116263516456870136237936477843725666432629960082307435875524336520518422928577307221175553611819038587182623300819675240836075621762798887597553501979723221144110010207269110975938533982207748637585259977701421052546422019650758535320414870256778695202324618944291445276630521840249294791885770247955596614032283000987789923867211757826964819821554884892636370413242173502664550439318109640919913569281710571920413337209074530389200783281717868949485069656761381514397676003197787723337394590323920315960161262937321992378465593405872815359983240830568435678974539600544231113957422624746346213063462153435704135654489809720943433998830342390242502578188246581120322904679043919861184536544798934944434967525611257202956707770570513518943993523943844611298513323969944257330860492238011154253756809809011471086954068317910803515112323982934224911585648065381004511355403281424285099711944830535816365525301935446085551626443652822379528614724373262545329026709456809912358031043102799084848501967639253225281849329151199191431088624278392399481032392068005025325144815732907752559182843972946598210682989749666598844889838493533922241787314440438624109494227230796813056634612323178732161852612333309890724921313143603487706908060638914046208799684063375391693246096845600733194018285961627978473865767328476421461994950112328663626851486806428934196853500815526716395820924467852791446490385738764540103153666172758084791256445625769149092221548007830117966025006789573054224735139499752371722609195940147592607451119520908291301615824853948033928480615989342841233695533524260928611635738257695112949396232943897240859898122136612326047973023698761593980539802919623943701655273643637070886586238342670829555308090103450108046247306853562750243653539706563855507988868074985582770908863223892474466510454270220551025151872862978296008037006839654770512084990355451493231216187134051654870870159176810805904740847488969158268028022674651906453284920799043016083723105649089839469582342195696733098966467617000110640328061710977973207189405685577923377765365069418362762318628769770270955893801269321632954420594493158810360880313411260221620142711577767701387961320275053619484747544274241481280403910855311133898991790429496226905979555223484954621867828766037911583350361503678359078538845592571776218204878727606622244406328872283030829511756628249253061138345464503125068350781911824152843139261408347557561753970487755352122187991088346919528513717120829106162990663797114686622549329178497905727301393494509905634437767222999205188751421527476161550162214658023980972189353103461071888123013539879470961214695299620365258723228410296347573563271502334973259891711322561467509500515724873149233027399131060658849436223678126745930392392421772917867040281408044939611250118555143181650824684887502074504917024473628850880678277747455750727136080421759698675314959088705241109294149296619404630917990584116208299468983223698847167553392883153422454259267004715786794899076230796060462729136783145351977623604458793068800584275305088856481907407754782626341194521939749239564756312071096033841825813350578112292561109628353901138652974091293706116358816297543803975565662054667086153107191662076001988527954303927756414394008811701222278284592521393699388739315559323599035788900909782806126563691252164272754266533913657438698466298592640204936649021734718373043776504633906354569108163021984186241438531239014975157025949116949456223716062332968632273551984997663015597902177738818184214443076718795707940816568358669716870918971736227824164195484389563290339034062860206237434411804965756070312651549554992442802506977262838339726942900949482638909327336716681204543739077924092582415476559928931267613778915907115281577204440037670507183551119949175414245112117849341565092383340251724528397229572143861753598965354338808015493787068084692680883304933813881035997359040210882103382382114247803549394098592874109216989534191765294018538486860051625533413658841109940541752659297558950795590602745660414578301895854875079244118665012088683852002543456504531421742721948876538246369131171059462022864464986097344351328843453443819261800371371995920060837307179314136734156414160792054557102787720196304026166916156711194310065730481478141781184503650222842189261746384976951220974175064054626193741378576121928919400359698040845966005272065735472445898061324647190465608035442452508957538613521775821640024996579215163765384158009147860753666957768067053925741487427479574516881656650486069731290105044334951441041550271361089138884014336149311089168732527454202832975588620259974293079452570981090165150489310169738521896019334114614112633989597082524536645624144815529237852246125006747758458660998292695145545135798367653754907979120527403395165002622519841296820109573375281843828620718196769995268013901292491928843281147397529512650433482489148506083355635548954207853796801920712731806324606361980906888910355501838534843508899826666880402478132407917475890775311653457335220904889914918032675258483231883051148764058047877030461609213063781799399102354021889770813186785397253372182342143386557708185268195843730848847777831145433822697677327418501991166023430243820679391295468578233560300906823436012324530476604064049034166960762866896840394158485366269925883104007816023129509434947970488310388669520434222173998308809902243857731502888560868023015660244237035629124721918322443365249914035127510989324855092339119689222631996880234783215893304958252517639901707568094680445785204420165856355446884564434392611624834899407257893967038643401260602959204787023543311640652789966929349899466929818467337333556137403283980609501363368461563546783231790945614993180263477111599015364416458234017586819884513426810949460157594443241117333838394057001194330301176304871817452189271757781772988675474278632136378564946402080584548175320951872201791548530089121972461554469119616776706942554207749930624810191865985979150211852645614331254710130712886695003515773823784977249817860697038362858174339734096228831489962208513597027305418459771661499474044875055278653870233596137523800821650143682351703260515512459511922721591153394767911650418312005787387342532094666151174280599714531050544677392624098849805659499306266579141775679332243129118102617164257430825521584948991064190729366407467901315157666660056806406789685157780419416671932895474525936781902716481218566686498637107748548228769149364718168815596407171265130832786611158725733869597074008964577564628466311599472592465490754746251510531765450904330199719769056587977894055777676330373005410002862085662551194157508648739136284054531693499507289569074447026244134831166135491485638920198874334450259904746264559703110656094309706008975017901317539071104652476140404502449804693426945210358576098857244389091002333275564281853233925698550453969712173400872849669491357929405450976050536166882063621803834614981552748629465837886245886048456862659925036794303969773205571696062119591354500116372527471088334842281659816462334460328160782176886088111819112628714935796535973052848232964440957887293651118911425795917526540625673220148399511084404769999039263214346365440751926160941398522309360477300059785220370747449478761335263249696527943272295371925715440159893262299538528390506524094387683919649996878241141386285275350898534614302104621185839922521827835872575662111736396607927203960851653185960432174864145324566409097812761432963341424441234390585923832602063212912902632506050236244742333408440966604234878156159235264070041464437942912093897750400672839843389612040251191034664503543328456038493476575385598415243525039731626179294163202655491372899009874328604130217306224764341162360280710749624266247027928404592952467399256935598525445713570741138771310382362003088982408052879256840051111424415749976711822642637029038437531161976071011427430428692695168270104500427371583924111978418518440247513736228629378344590716145026932456264259110706233757787537096393978708225587059496464164647597035982488805254396827829708500789844499134094211635904087773828079895923215687679032743720076581891038605139075135392090167784878270090646296213921705400479689033238147280395945488509957583986300634140849077292014173881424585431165898823458118939557717714862663979495463130535723201183527798097722373112367848105201483753911034655740164291962257312406570013029329097623069932035005606386946421198669099791403339123154314383782669350166316068302520576468519465234197903775873983616466574413421911405757674153450317099478020391250058957533886351454698150671315690593569072684292633856901049424922509269547271074208196412404215622408303436741714126156719241881284496224376538308584873521341758511555866585056292136732253693658024564571050228306565858584951417902458512877979949357860673591047537516053262273680355820655411003057607963367862171982385238173453707738934337022725180074310059159577690610866407677101186192653013764646138873419424750138252220247371589069798797105200668159232906855614802106830776776621539703227714810693031703728987932759593062839833741314447956043005968484190719289598814272871450368683029988640369619836283098427959157765450377609504248150875352817454905744754821121213134763293136473926954572003350183362901028553658351314577928223412328087183540088819575931513478441938659603185837927061782242210757405492346131166747754774449034146610637899972613358176681679220428266553789837185062256849860107335612718403229265545081155377188315637734896379206513756113575139866164391356461127775814194090198938124924418955794758075089097047880008958028734881818893011529590034438566482238342177720380707381778769014987359837022753810940541300597203690160560925013293206014349004955960992872562234816554223680255850307536695605253652040856189883328747823570573949019278984422208200853623195925225890676322758699263272616984442094121991358756852859738363536933812892668963953388558818164341026534396864939091817053915897103061304331983249950317128523069568850776969238453411055524680833276944167279370940707105600910261894394060132078548518306751018192590958043603112164039302799905038810418806104793273986310516774024345157856290748821192404085380968813324166523299313243006781013175327010991960510899094039077359932157446379282812485889355097948310735347214815262317861714718340639204248491841032704771416211196732610580174234711742806368729058984951422192759413065039865028988289461570623188187068249625396070358718598481948824765621496439290358163305513414659907858013444379174400312078905976886898132653198730169716291469657147727656162136550089889226800962171379250833716196742834122188535366153590432637989639119997457119023085002326277471634690399282736474413175520821359014877617995820775644217916272737807622709905323610598089900124114827424544345983164309241815847766056226245020672008542462290449671168339064910611551661105471289633778048839996787839514128286513611370857418540340121730529074654167715447419204947593593352536365878854433626638384877666134055451253259943392633100966207608267871376735591515887486760754859649372867063660261269034125550822678095901170752679031672011794568653620781678270749364230353079960199906612281701911415559069997981992408528269004844576827319131088767251052997159776747436794692447217132698571580875704510095913490417869331734036253487794570985011210742718988831052601274452155904944827003876921670794210645207608033008781690568430045252525857099605101853530045267935267059648071011516709059050044524593947037590634229531241246604966628873426975938388048561030148959694880767900443326493904358731017340877490549644341095291907671301599496111760607579121623694632372249447902844389319800767626198213277170451444884811093935342332570672987912610122300343967716313123246438206799627967157220548354625563013900437963181372908830423154115925599998539069622779282489450012714715263559776559044247600056086574306890763877832666165499400219669031971993985087888826557849870305212772221235543907871161384158350587759537299245497646968813537246978691786244359377710082758989904236224551742481294829081637934790624222194087213701685343949077453903091734678245423988766513270810812357086249125939886248604377175891084438379875505811981048263054888586210140726488436162614757387169536007318935419574742487904770971504990935701420990547751426855080443134683228019771839116332144880223773277307859861347548697014794205499457242452190096334036266756770968877408493751434932773165880593883151991050861506344894627735231471284888737390138775694916896685209128926861181268473296248312998397233579618888193738902960773503734029090001686756652839528664303919263641026228399624629737746160799957043860966321097632454541915590951573068503680926761834124034301378867457988959684229075504704753708037816822115655850470809398712644751552729723248802149773808914933874780601042050869245791021647128913993546123385471234128332162685995525399745334519895700885998965496283995065957310784953613118708909159649118119854750852227111314195278493755404486446888749849509897041545783364998357194103584557581985005583805506917642720540125397507581924448879753368275540120233212916410457558081066851652467415523481802223987856521772440220355635539905890967665397093574535884465931507112998812206367199913905172139832139159861982127360571189293034010898021256967192898130374217322864401258769656428758384564475523925972771451416117507073184999930769227161265260932844008518738944262441598237810787039575776181824644788302055038704846330489693744838363620369553349062057932595787079574520927514602749964071857815719265114332649034883634481869691567714129358412077262103830757061897472243176669307190419448096370183244016098913933449381600164321459856400582805998356082174699675749801561749018992706558747635947102684417473562846458287584611493877164666091005572673787525463254431804459563703796475750291251379958657649124871358596973283463106548595810585661541112308488922652613598832962380323126898138899638114333348157322976357154466421786157799216115111405694352578965519606732121327018404425778301360968317528825877388089364126180080895927702405795949263535114902853572237059798878152947178631549565270105452195147313550099999826235100655625326690055831936301623137379951581358156090712354810727390625355790700059021552709671107011543361356872408593563056396660105248487034470802520117793635743751050277001317689559171326026586334897471080714513715819669640832876196481047597803702100004774902484605847813059487559520457515668386336677303693129444083536282624486754293782770713628849198860446254784696414431388017429553139323655614903147708989486722830624006273146768163570081535437291410733629258087799010430391564878611913896002563935553277819040653599097999386697443028570292103472567799770665224765525257438944692698372116358324882433438440988204390465131457956340425035827498267481398516271824608834767432971095306045121030589099364336471917117895655057495825155966542068952957216347644473236120028117290800769515605054508109362145928496589452891062840574651522701897545623213545930628745434965062385353403407539352937542876368305424883481078954197220449278098772965382616846882254388046772298985598161921597882635661640596706701111098905428665309493449227955164998255187562784060732443503932010817433813170818718371618537848489741887439691137856002484509792695158869985637047473128069414590029924592563667094348730963181229958640486308389687663706507793246080379230865912843889638899891168386919546648812190850109927278157471078993668736057138904666914833190611972293776688571286412941126894472594008856584899048593998978707258006391579175230235027744632446485201512233637964017845315695982096902623752840212508967263720104336330708883176639513597567766140363903085020182412889920229858232281289612802016768391903596478302946911491590932574566430644717982349971981328965923572161191472989160193141990197665743455948572288306817602922388879495827656982345503551405209095144238175314566005398285267328142504689733503270493550092217741417442297346601026648188402474249313048665634795724567674397119514745934555432241406264211659302002366802179367509707636030143541109500376909519723107824136289302381401967809712812077652365011972161165598925295114086316744105671226826384859539717438277903511767320386769259910836857890653136422411080425151890710476296570825883676956849606109530816266282188730918991620801425552688460035073513594145119935179300127081567940606749012369004258738111433142596444481537219097411604285469541417018382252855898184774630948404374774986930927592871186381508059164273603484034608585841385840865651120518700646024703145462580965177356830930503275647770329387998443737730754116995687462459646333266252366126674519743949801206597307943207213828771324863289045514113088090116748441355791827433525909762806635866846652764616406816128586991326055595785019241988779684041602998795518722181185701736966274760219637966432057988776350217457691494757051256407767117167046376205454835916113712484582570172011806369500964857914931763174389851553782491663162634901980964239929916852882874978466227412212336432022329389852942137816375110969917075303632753204557211101401480234491139785282949830288331948498273549481424302289921716292732097459243278564607828595676617671338684161454559754740803719055474744245027247453327927204988707830664743418041643301575637913402121167525363828644896589030424688566082510774531145617273334451837980638883992537901040600829370943198366433977408688056836132546463878032842310549600464609545421725409127995134262013202720008004477517166525734879281455879284064100736941352431460636603539715867793503020635836293747910195859636111454991274949741760963750725623664895563407988672914340806356642122155291837328074460546784917216239867912741034044062847584168574972105528777984384082814302435791361572752093163206088469103215472182047078717427690393063508062790471674423090529119730868036421107299678574854694114685862957713430366488086708385347938793694540134087430244726715524827744216137066497258630110570177452953603203983008977956327889358066017213036034594293676030971736225501114674486912625036287605573656563665684253899108877893295667061768083074243881038543408663140201722819782773495977188846246549268953824370112623332539486462697091676098956805309271910715023488177917067912883681144335654008786389542464401937269197613574840652406802753424835357160622085111316050218936208967457854980607923478678877894346166346448354843804992178883948282989646671788709376961603427206316510540208738881507180439355186877992966460065624117669544523260116387237965065835403015511415137374433600320637843201278810718292872446388156281148684853240589979216110005073840331445678220288691647277913975164559813816796518747651718790109493818729097289729303267441158996902886707312278416331220620049801089704921096473825332963860241526624106916919643756611151183989734791833378126841271531522396963585497911937581205923229758333639462870905827663214715798749969232629474953276243481892612495675572379505010802983363039001149077749451610503492179510295790059816688043655708517366906637066870537658861833558140547940436406362810893967227646893319162534970841822373598829817538344391083037648433727105730392586636476278629678404269609799776751707563949915030311123623859233360180834306179263294754483164397234688698219403144140212618997579334252299071652014004809597990264133801867732907379424535308549303566857157924843539362641111245771797078323036466386901207248593071363866922988900725719333573584708476900354539460415610075186661382841497039497683438660427812160955105926396898243945776922031221396704559134393546575186198662566688942564359031921660092834889973735848048966452378810200094043852951971607540539293878015285593573466043335816904886715634342889360535574322955515683033955925615272867409394014440951223358676113022473382246110637198917139607657352741639518298769281380788599758317243461842442865217964615001830739786548929548671905728333746275660335537051563548212276407423732603489483231102559855914656483102036963985499179834544559766857850870967516553857171743890148337773454954303031256545758324993785563455730738555937043732193917396959174321196913851857028307255688776803058892836105020356813116520535958436779155426177610302086502839905325776835826296240171066001465952755992990659503476926969935362335054440762775442112573905651082558957442147410786865400567835600715987949663430643442498792192057463333851092622856163588493896669123384620888043574546050778774190972677796896003406749438447854396638677946835225526005915644919329122225977036721235474447037965861560829203351314728668305895534949828645565777315853929639845889752237293886829569043132350024526133126001953081367525616589678131520174746384155395472157004706344848819551825156850440455640454554909849062256706081895014155432133778373084755592826374008716379457539111545279698262805989213601141172717487387790371422920895924221724207548514476348279295896551728040279485493167007450367721487973928289349340892280674490637472107913761440778564487415905244899973122635956273657547561395751775131889570709920938757336061240147875926512563771543665924115302675022717905594754109860153651325544763857964768141894477268002245333490780984981804657067273552995968091676362960504135498401354363166911916142149293251471860033748826284773558585591845909895634865290316846527641160707524415608352307689393967638085629521436309997727252728603381774316694580818560029947721129577349780895868654713677747686128741969704127474150788944182304526306945658810961707852476419777692223341222198303561748603086613391456296588706248696047366511327139384577599872832877074423879494126695612344992075756278823512524021701495833639004843987327140615488478344523812241216386569913188373558295751355965710888842648133168669683254947000633098028844201293882610959606895125581712690719207656773875409126923045767495518281280341855822140728420267401119830427384626445367222520994999568052307731852421872670243960345795596004844700915526143762816810024118498216085711393151058325188751175288188059721106175709087468012387559956030023560798846139080979970367550175204834961179930834007449130373192157051166092292987685323615200771237127624742636152383274588171727142919184395270021676160917686651797937922741989349190926840459743391867337681092155473216354513011851853597646754923844124676206899609454910419740204693835798260210405440601465846852423920263092926482727816982333978046693377562166941908839245297884515736902893112064974912139057878552610462463777465211146357145304222924024506798387008381365746923522399869541395700316652482268248125685862466791927764707151519122363274139252527456447842214983865747018466753483083599231879167194460246664420074829297644934508819352199134935987892203756284720466077818219841897577026315966980849356311800214438282276061121145029325693949060545760009932713629283185964744235592723829847096344713303053157068880068223868608110730283594720426379755225333359277770435469005790649037523521739142331640183379644515265069500997668340494882217901505373123151199764785321929316246031596677537162368715007036004162293184667844732165329507903583562845301866653809486138491560750459428943892296846572557912935506460793251260513927907091216997870074822782816150993567533307538049424930047083699990120499602720807312556777730141120199504624625699161546973796548153637639476211151685189243212300337024065904506229237553197659473798086281566755997546539012099056930731884669239311766203849529787361063372598428364675972474788847744172228747717162509422789952504655744082142931008829143675039814391564554632456402421016936252811339678612913761722952004789608898980788437438868587755990160363157251198088488122215269083894961421936834997946203918587877588380938936367963150433020474708706968453702842236094809689261584459157929726962232882290365959483895454208371356306572835722300219113707502996400451917651595959743050877192883356284728712064253665205399398353680049409532422157690164591777194080081123503710334003338362337510603617871580675214513984377107354066287599448826868378591029775992075588392461752609814969392269890794929567441608413562741604820864772792663613313854110758378676198073873712845928620174520218859787455105992041718493929837494873520042711070250270466366123431761897155202490244362455842217470631431231356084632699736679655833517419866125839844554882059931624611764655663326643956021624486285688821645081386459595854843771162942301926838096627249972525209300936823177852173427046280080127530568478527438334411654477882995803761954871820969062944002776217101666899341499309277916200192806243435986451175899296087212757124784782453136566384258291795291484483232751523778327642128254176723877713760423253892609692577594323955305931609116414839366933030925442621814722960904388437434924953694082643653104356735980251943891300231047011307511758080644975248397454656202722578974045846000623576774360425809632442098655406767717374213076468471146877562485801513924003799436401633518833449239171179954047503220109556344710831117818910150391607622747035697592110175588038575123029459397263167488109068474682532871053836705444755013084265196349872750615872069792066718622374816467788823694922278773820942498635449800869907838159774138575361914617034088093310567715841315058786747998781821657057735897789092532992819867048765285269695179617376712896682130585416877304607123804795967489927334623124210728589582821873596418275131109545954277003264872426699062295884308004446772714694732653853889893120726167273387138394451825069698342354781510418546375726771007371672108321870301571398141147820703885193506986833617628282535680018797656326729716187143054849132187155044199335941686648450113438363211650582301715267270142168114795703708583029521904089222276066122750088963185594604250562842929855033327446614016078191986530877907795852283213358037349224075004881624624231537321333989242297638966244060933343710387601233897701412862769845759455324849034682645322515791290487371313768643026045593395944126059225509562398809101434610033990764925122653625660778419155521362880048997004751156444844366774653734708427047170047089866784493132374639503377605480654855372324921028412223436033090538150539548890171249503812207784879415759498317387914015081856564623471051570754616636222713962619528886232172733855738202892710291356884584589750977141864173821103790709619769564831318715444574959577512902417163367935248334112308876024671962233484324660603086130999010709780136199597030312797865789665420890413238744999160000167559421899455285581500599928381241172828818147327464048466176351644854811854271790790295339375309948531177961716399397600726140540103836230364632200994478661280724464338537474800540939190109114960244989077915914282661710652878601202357353616191863183699637608792328453480769796653172143812929133235562348860028405035058671954964075171550889400930301702894366451752353691159573293860298097125617864923812487191523380651653754992447923466585681757523856118976344422350413786579878650051711865586879409733324512816084839401032910485506367954030896602907772830205874636625089611721001129467965945124153520865236722950074474128227950097325343217202279988632285199873055886152331035299470938907735424812302057554804477190757342933992102917316955446614587037788602765643202860257886077417945376445082895870946849040613037833884211283100731190339971061129414743389575382611235226130775614624016011561484898999340516196461516801194793937546639010145389161337125457004741255480673522966987202648994855931044808935903438211911165752415073725307376027194811438110250508412185357473592599352949409348504301163483817878700361147522484125991622709115303948448536842434803205109249986609013218987688075250556575926706315748380143291060957172130676927090773464027682377923634169924798750028140181979628580998002818592171958016628060929462495198340841653823154831834257502990836993615737978454388890314901948942600043779339205030460172762608815905203336008098735581356221708905402906416108200124594482192556388709033376176793298889491868591725977529548094031952020436549306373797643549258463558838916053872724334519702767627569944970319581670933811251463320484596751234499505654644085189888966495695945267932088105452581058860575230796320962301695787930402733529996754443822092379416785990593470114649546853655402904133377121943752201176837079874689412502350352048601712508114001227740100407717476475110637132867508023433854491392526572968803874055315032440892124747512232439501013870307475933075581324045021182916690935792644731885491845688504985892940501402976236412156087655618703507278383002421154067992209220311140569766061749408468638616575876568737114313132197594597623356616724831974332283328241286864700530869924302889149546673620069328513591206513421347892445938656075909051723234226028393262209612514558443907078489438402732258394723542276082612346291765642214242862667027622665829768760074996192875357655486925165278331586729618025615333098739873760329207672681191093471503364217383999250566794415807445839684621550994056577873595547449850675681334751197691224022930162078112752752167690519911572045046264702792277342845128988694634506541292221563345498083003432602618010360408500395463288848644879434055903550086413825706690791478604770331489473736136422217541022561185572048872231128962484809557799673824210014153921128233079218659686324685592753337099706964674771606459607800549137744312224314019686460268254163824811155097202738537331912749296608670041254846793194279502966983207662235170680138934894738463294628946395509443527754658441599059280023005369285243350891093463160745337900832787296161576255288874086663602575920093204905300612333017820544451762468074100411842632350474808214675105903477182858171748615405309715023491972494860167828010632041017744099407636427207704442680909078034518480720129509805693706135679984986493071533226875658342781787683860328402760026086157903140266971600300578206583372922630411455821433406860239475368184007692656140045685631810284595532381201038915701831556927282684446409537722032717554912818749520344621034667386839995993692221260515417067435345019422570189891082354497733727344528481525706311190372474032991223729301628327677026831810784047759303993304448885869292124180538863806715465272085575732445354326698167356618596091439013097239845369301450359538844703971196497155454604700781369975229589794417170196069762141639954027958789494030945074406518183633947403930825558219970274319067911395421100498831794395380377649803160190627090783901174207643344577807706453415028691372945916276518457007955201650396017711598853013959028466812685129440898307733502488298578834573502308633009180581189597389813529528568214989065746591766971419415725463087625717475676945049920244244285713430655863814264411653181543310803479075917005419809858251577912551534310920957438469790219609588453654541234765928853596431205073769377494153361446285644276014193785482749554312192046710534454766700448069543518785787784327522957568112795062323747601756707866361467354272621454518962935635978365323983803809749594608867967004872451158463821661876194200643700161672095146668503355154221576760314202512427316913485503400641258126576572159807100722799279628305230400058369739424810746329023905037037960060065410174952567152593619779971782165762564045697806609645600876190291337417897917545963090684858932340936781498760373155729245245734541653613891835069754759760635836476918103771969269369761068362259126067837357717561368576485647574573613074730891428833675294830253632462649551997970640795228477817022588912181989042090694665637445051624356528403106720164166040576495921577224128000290212602688675461548810246004172966231081058317520830947124402083126905126078730029987323230381393911151936150502203768643726684215584428082281003205881877056466555535703031904589513710216282694774366094718637092888815049120655442787426110851172070805913619389035370513437302406275790969629532762653903009471100238958028843613919153079734106075645081788967572067960900683879701802107497630393220585093951536231476108717863220245219379461215904887835907754422993914686502407609685202265302574113587840113399288764719011572157373713776050428526019517653214144071327697152902929791508699372614749900896350717379720845170271563951177915255021600107147187946750656865848715610771842985578602335852042870733780027545818975745925342681805597946245230447504609686829708599074851741225119379427056301050842603865644386297835143686095284179248211862249701462480450200258363464827372157189393583918556667111321410976529414583075081997642509555353425739358562727982704195716064405344256523760321209432915544470147189390210437781288553662082282232325473584272213208741871354823663983842664124913253956030995595082091860814372176404968922484711723361165115437267231795956113885819974688755701543115398657944714769773478073661729451599455566574910552308084688874135094217593770978505666781558840504104898310322082444074240025009703600330377013816335587522712483670868072790292046386056450290568301660592051149919311435294819372660165887430663325825742928977960734417491317908613022022084550369452087352521168400757881102030633866710778959927089070376846019650286206934707598382234056184045233961599293387691353924591427584074866942865358923042877407418002816080852775473066034686890941874260573232016278783741480085101877163241184481001117250069643019701884893395343575057023810562934305489779221566274531286913084965814388100088956199834422368427650458609998850996158025252284729025174705089792636477736085091422003500559172000194183638155148880720939271406306033188290834027072556769634232521742510669251769038797130669372178308383897768003090599392059691719594729017999714057770956489794599041202860578921885707510908911491993413805716135727640986389525524485747380604470883184408591547418497361015285122424188406500728432531248186571380374198499542193736579567938148448531384960168040918112783758272891585529106840261495220593359027610789284586489483582264130495492809721797367575830121394563447630764511727750925285647862759290423980542745021291144665946179630730967827248993673824006280392856016268852302315702971766496070035800153991974553964221789730140666001905709729354019902875380858618532711688649463217049149222335734937710925637890840986352864005071532120492087905746283980058722124174967636841814718841468534949884941865489251155417026194842252166723414236541562267218836475316694314809973164866976252967887428970256473382159592213878263842005302239195233316659589711493831900368411628451530439758678984178803318003752662962226286396482727835395428983588486714423427471564946865324769456258411352203618587699132472816635854919357977137067455381809509833529379994879506130120352183682546629472009895690484584480877037543778032686133706383009261424703064108323346287306107501057444116299318458255055197233205360090575700144515100559278050891167995291866244525881376319112519680885950137015282868858378192511860484959850739714116279522475930505272194502719773795297063666008841830960906872048535934606286824924792110222045875256968907435875074430191454985229321363172687749565147461602513940275785334086355861572394065140184550079101349995494614851220258223973878516149155080146799436922769637020183586758554687012040823591705656159278397972528378947118270344523104357087584162906282438672238083537439673602867321038266305230758700522667325207681336506325874653708351276035271715021480408418364554290626014356449628470689986541965447129403763001558692076271952321210378482591871492169897030450522123169896873306747824157874717904946169855835549831212320322002211267132141808945174338624843630315723840256808337522099057614374692762341749992430280112799184790501311700822034865530514089300674794330220036609231096972548791747586855427149569600707498773978579340391867924076035589540879138364242030840252758877111523384066802243452021988140664737445436764224822415099285500551428013758434039842631781382913828135870445972499063560451938308258456620735195454119797156332014703231629078563471700351889049627708339733298671708872225751437251693820586098776001923100275034452538837778473773814106652880308155522864992816644569293997899024414764439432400675150157264064681433837922994623174153259071140361778673166534525179678947635924340573920436441644138488510198989789047458852031291062763729512883832039925703884848629459081883534806106342444073920594799606765142010788594689171660502804377596812674811036679573650309986522941716409423692933901673247123949317721788080490897547869462422934192075465386469442765523941471268234220258047656530719050947059877026943179817085567917618916781353023800683149352030387957069236142291579199703665948257963405089779491209121785284266521365499763596956267822969273210966214978198563121651763965307934845026361014569263560648688679746300740108831633791976372256756299670257036486418626380798350123511958233242948988561530514388186902488274074749119779742028682779184182090576875916353468751856014331123129910707321581924342361008141604921818117988662572209400573458056687116742077347925866151449975128557158143664311444175673086444041948532392097674661582918827678790001754312281259632222069160885844787592462532912908686632481278028919694853430361621079309705367517105204309382937693922949993804906170848929295107852948772912481166343758408759009903627687256444707638265861320471029820292658917630023240301218459810197472519439128413647241426569153635742035654001925949559714675997909371219060094620354733742858209774942348221434955811402144891105679935146035931696688241883443712007184363035242079725781769122230577065806916661883465709177268284985455770506616619110118362066334544263642704717970027675975034325992689872826317488744647692998240169162604012723601390916353535094559559047121966840003736769572148139150185214425826256131369833723619376883415665818558044682438357097745977524063275949611521907043491942457889755159567837369840641291124543117722983588192272174478412821822575078255193324912743941016531330328062924268994781360033614747761891161955034602824701869825938035675449615516580859126168150539322891859496263258840094941759477844988805766998047995992035034421596875270008680217192779867914598537877279309527898303336394073937714971180425513010451237463959664035090936609913590511816257525408555366829293504290388631819097314735660457593793400245055746631218703012435524871320375826869547683791845604950620073775860700749150251605338768639198365048325367233483814583941706421604500969464624510176093251175273410207147089036147679634220894758722623988035405343070276925063109973978568529540505429318010226614667210390109012464194035185496931272934666309151525537246654324546738394147944938868190036573984262232160064344282851000877460536067510860692215568789865413343986047783583655416079046962926854460198991548648097656880358803973143860418233475228942660345316373284264213126939228657227846349146243908304164718768737443889966018942863709026560188291260812097643132945195797772414418977623579380987038521526901122396736195823262215775214060866318633211442097485750333711092760015357585037702370984178457616796024285599678111574769886763330944827022843815126336663085166382876118010143769686552345073829678225065921154582731852349388978524846645742818707021935661398684502651343259631495730478139395572275931873537852154060275800950655500927081695225244116878849666804443663510975101306352171745535308850990433943491669762069480808930173437349909714268579772977014313717952255244532571502080011486129738778081472486917529458397748567231027289768985758237060821986557208788557936335849566491665704994267503377370376362316472116167346073399836255064597422098078627352421191570665655222332860647535472730078493090197238857742190535256123780932973533555243311481306645997474877990389028684652400285557576480651868019296436677438623787306040801504430436566705235708861045422059598710527772154157657113305587208963806778183790639350496454810189093055126913916079144292181920964094638499263458022919918556519982823479403947655251387988303989834474384311823448648862491260463068177202592606774139930337581888288936702096690534979843136559049545300376592021534378983075289257068903355442527214846654746988623523150704040296671460124986454594104330655069434884633338158847251943973046702523374624656958109197845157949139019772502362390469872048351833593775694289257420349026206598593126802459449082755968276810367822975923698230829589843733561996145045442359940168125763498754117421666459590512034173691647197281757425256016005621740761929082953964237952281425434950277097629337499609175452951734957032647276489928988345642022337938491573930899041888634536743489964583564373630994697760638426006052060030043591799035186931459976101594214443314008352761273553332197735236598439952078690795042569030050268677957415911540803051350561654268147141359778161566696552867745947610822347918435542297579301469001902197559587882301302743478604182878984669472404517218298845586581810820257157946502727943985314485146302792677441907934921180095459019864853934972514251684682343010165644334649805165054598173750162210410451431376202794612528449372935960048618123353099897684126112223272456563476300793809267812000038102617762599492410568288984418621481288184481348210602381256386012284277950958896133330119317183052108896559945294239868629568598961222932736507764052198910171216690261233961220638781631387984243690491874388047527127567690781904188148873155264686041543069252639103556186996858502595172189532722853703761089245381194668844536362310458028936010981302721288764871045868563879763653468993288272782495793478974923814735253443423545277960399591677944906667255265039434718121475866819735186613135591107691136764992236687470388564053947803823786771876750455585615439820775703046454900694659563671041534021025842726693136128341252042142189952059688662443833161536247056153049703532869297467875476335291330192229506943242117058374929303854903818954975049375424890659892766074601271717936988177081450785282708053397699189603650232382589154111437162094888714383989840097256492365633125203350120602450092700450933270423572316396444554648559511398946833544533186795575355765850393220720149647271843490940811061067465179781373123415579151089759226617993481768133240645503751296822440821738270390359468304226578976998880017613540731362239616602435330760221380557763905424988860409484588344914299001941710821861697759257370521369192781216268776343052615023868114559645145776847293366103226889990981196122653564129921232537226173087782226737415003689911095978833995349359924884087280459628026471188341033731755614746092761269623794497606538450486147972705819267836110956227204620210028875426946250741196902238349857227438704206643407676648947347988077753948176774178810064915449178497930081187455707568415169820566922296994548210930420863314643873601980280769935780212363534166409507026312431803895189085202851567259933562413102708164869471005229113812748409030039967765934837398995644559797231815764474612209270043289190118424305059871561426472651698108356949580019669005432770749940323795041569343109966435097862022897080390200967235692005442803542568038897757966789921214687727916320357856642348337011201549374534376951430651552192886583641333829935750993039756557692774731228531189462305677991882923750101293582782363699881874368111009302035487284501569452694552926941283742305320634298992796564118367140773885606817427035571515576364325647256625209719304211301588162839251516545957417978638774187706185052594426587451344877139595081917603001919698392732928007238727840942115618019735073680531076205064072142750738988734490251125993857654023034737638003875702224310326836113123398530316454453656252152842226794329474886194522333104011665101517034833179114521343133910776215536935487644783977606857539682885452639797262509184625643739807703682198238827282899380698788866483870331382402284072636189221946151271044625391862323390339696248531863643683620454836276350122110169095242035462492606818833830679909560055429946023563374583850645445500499255131722817281284433401584832348732335215284230545447193807532322249932241593524660680796015116916697110457564262011065388335240892033435697933227766626625036646569110796240085274117523248742716285193775982942271777925270806205659699115867357104637168358020316675516472052078315503093330309345365904957673845251096688226355264753687075107814820934483837475474844158627749234838005942379708643821652727728405964620411270294397502226359541654286361580251320151598610286084418997632017810341543859753170410813708868410647363032217077115518916558336771137096440433053398863526293616213768065166448752296792366727556028909162176041944386803995641616099810156658729469600954387845373168644427886285166385397133644319744979014262037266178827617925622497993821625301992692000408524621573297657968356920070630962049757899208770306470278750926365136005887233291751014952998296947774331389081326347820326509317583541007789916133038376340226344120521101275910788752371719165052736879956694733595201550044507676392254018252850986058280570400760074698331589462756991645647602386330192862760004879617361523898082712504535638653750203248741316923886856758961450932463408463195929956824068272519310770477789688013704601772708289226543524040292497083460469447073433181688847881093998929497765180438994702602172915992390198367326966001879437828273696129198170015158947302630412098343868451873518079919819154274740045098086872196066971890762725108118800818798672874766747317539345935961975956288269950903793218981943639652291153650075040799446193673447394181914049954375739604339854907249680666951570578960619998319932675238252899287071647606005813635138561254262306644048993527587919724700057943492303259175762380798356142980797347436041933440449526154168702938058123049111663580653215324592893501521138927370099329563906228605722099118966577827992978945169580130154675908000904262066921514867936155221640312712317256852904528162072585629175473567078959816117063544049218379159117457107751426181393934800319116525887582110612609776157029534276970532550644419505075264432787544056836082086767565912918779399401676177494273903798395707853995953277989031720414996778736397381814186934418628483339846701266310905699957452388955013337486756788330663116612655076958014054324396300481964346106766574293134137672465868111816169595292771582320935276100050855228463930184520581137942851173001966482933390219999101810822307864447103991494944079076073846676758578992611036720347941547867459308226682307144909858181841006314791776152032136763730480649630155613918334748598989380205173691915987895753449761890284288267493804363708416472627477958347213835881838220147811315966014330764945200034197524669538682593075598839301193396897761454999545159581450737904846835656948512671945670685002329775357794720237606876328634003029065634517674907396507595178861017611228094637582118252325378814721259741565919512196532705407541531286529757493955268445950024342887683251543869073276403938230166856628928313758251844470800380785921771592175358245375522371979457347869188452924239304347396267150661467613934084480599882730320350480974994366995801695549444242589459943009924002552390657693285938991511616444521231564022495827691871998107699165532347092321662401356852809402680812572128989473731782579306856686507396275659583346257404198032242291707201419965186139626282998067821065134581736073008248138989763444728843046048867585556252096317475815373971119229029385070370644539686456449454296960704116169953238275907975141550998785589796019407740573096018526213186715962451195955475643950832565709759571882039639401874000349207827873470502922064019978862875824581340363193009605061131284843126788748594659094651676650028784471077819743699003570475341095868506867692515074729030388305481613416993404748178846349026953578337557416162932301796180327176200955091727787706589890560624394793182595098216238903220648325377228143752062672290892553727247563857058514409546095922433555237104381732404577530451570832666392008069805276145219663559360636826132379212320309986040295920131106415804154354050859437961406303472100732648506462940060078415149142113984669648705000846750189710679486357605945231724933803279778766679253094470275120585891567971214861798642505506712313246942921617694279886403517952776875104917228534317111787440139712107074306410718479001777230065701142410211596198063978802296088831748733325790794245454114689267908656906430401106010621396734499513445205037554080915996363644723789391961177761133806366858910956030186787425427578288340759184606001166354570447788646721796960760992728302440772194148261576564134849703694456003064856295532376367548791037013743872112215463410486804398670000565642045336559725998790032620468008084828173774797090480515534169534457347740589301076286746246027996761982201611557843314099727982900268435966630670771853112703179758798031716257648493261931950424963674728967212250436430453926293712578415732316969872847492717587934420447709928329234959705330802045350442793745490361971993440539927428500898357942491771218220508101620250624468702101944807256331654488132617790077342623570106573868000911309714385223192835955411219360278246714474461112742483901032426557839908682483784228143788487011174272532826207533235393691051397282002008653948859836288454050265325939039807340494630533189924721285115708579112580756041335231688399955551274886633593754538442047174993067123864524452748211281971048336347151079171142274051878325936448431097597322589701672218103612145921934995795996337521934417526477498065541700166577155437456358241410260354636719816717725120502855609369382037760918520204727252515649451597743186399419544283273504430837076703135843845654575792251482068892767141363955893481303640375718277048383385335318131554047614999517892061955469625260185886455006352318505372938504989631584008208722966824065781757404555802980872972227642356129761877653565902911820887813919769282747809827936325326567882317547976877948798447129328467016082340408517746136260371670752378842337166332248076472305416649537862975472818029401290136011507347023082186204944862456203189766217894321760278340696146003850946097922694797161446232158669970725286392574011310163975704876085292774188825560635090067298279379094104798822947833855808259096009815793318025476985972206474110948897249462910987594740872820428324101822837760580859164185421303026724925472596651219885885808296993829198435823849314072138771116771877903493674306529706732273383054911270147102722978780556124327703365736214556176630031430087705371441492226055289300472270464221292943648134783252312327333324441000300917047383392442547441338906501950601886905266644483976393319230033777574877252854798140671020348891858894223243500392505964401818434853974631133098361847281152371215628474223622695102460197264232103417327362241925629560112020051730904929651365598087308805142127513209117660273502878801187288428977265915701151601039121855256059099206408838031033130239667341949619861217993549690828358388467507745818426134297051480117934337093185851982154385123173136236227362876146758773307513711639547946811083701207327616403294972366562817229875115310235215483804970893235879417888523613560392757285974441068407566056413683741389148228848845055796290972934500102531319734879822558009997326342084112227072035616716909307790044210868567897782137349472793499397997095208239967744738118651098211558983551598174909002832093648963690116936095251743544020181487209321917106877330410280482617166425589469501627902818968643750937268214519799334406041613876191492278606175580969340531027456095986789789391363493549740403930726769296017526139356618965565319633775527538095850369399376943443126121412822597208056338894825668645574269235347385617291040796642364819002471802479969360543512783701562193308915997171863365745395895274695277827009984638390705353218243362458754054661205712181754941706687508491059269917804653083862088657087687437912719159634191626767910677571058375183813741241819652316602535333901984289960916448539832817469208083593948295480737863391083149228019236791119170131024038729282396552402506375279399137759928529696160170845000812710806927334783222822042701186522336587161474935511142036658505240747715477855193105818535938156584788239865418564146014628013647509393765261780576286725706421327492145095324029704856081452432333741333616896040203856605299922064463529274495060564406469129090573815625670213056063705329661467442276114345355324955005202179128337276194985616205557087806636070075576055768054955293677176031514329174470874216845392727924299307057770681906178909266139599188592193053953242865915609001199337950448476443216261053499759926703414164704839647198561566350866885102655933063548798909523167745177712315846406613013517536302450941620801162334978125649885737755859246087966455738296646974931453872100292431756489488908293728032059171565510061167882563253393398885983534139771367293137001976764872078870668062623422220572559774052368856060988966304581070814962184921784829586090373244274194401948435423245225856050678283973254199867416635942245903186411248693602148041471974572398458296503132888287533559107313221079091303709269660191236606387829030809972209381640790959862936766609959128041150907507194927128376704961562142161437923162486649959799305067550169652582056438053615907306180031534016947113811081805640969169864925265704577741640658133084783186319950971121887729643668529019874092688189487489300735468176431169953404818978682890497960434330564982799575573593343058216782313042022136933621820968708720995026196767207261229994255157165032367549638131881482677433234787713800507923681412416057606542860064136507067551069167889457911126596815336918882002252735139281055004304765568553099277398873436205333763944284755240191161970736440504605707943661688719213855553825878765455335301268666907847532401661019266901772253373407438703981764001226948345859401840414113050775182048589088052923712718986938672589431673526410217613812004267055542503891516611921963236208993419400304228240553542079867138591889175203435966409862223360675454623586491378473642478765083620143255125996891099183484797270600467958758175314508515317771742254416354007149642917749878012110899145726022300529218477045514797548666698583137833970917568868596507897935695954593986799619030613910091003574581179989995783313699688672523420793929514758248636843803281905774954132646375250509556085235709672041412044265040435532709795270548074961119455406581183980073987096105545161084115632623075842483395702575397115592305129644256484595361628518539167707432296334558349615518138891917537076597444233909777769516607208582457633615097420560428503393266870163559286058948577984510617049067325203242202495294873328145143281790397965776170195304645917964935985318028938731182747276817229117185293505547661630796597661921085327162615055825938131585208957115998153034997588511264081392358088839675349841405678741149220494268691584483352457973992453839544807950827542965531261586896120377761226145294517919755705335353499091016835629782074743998744149190802697520552486791408211104992804205870437991582691625260519517939849939248000172150401160756763679282349855311459617045554444684110413148907375771757874366173693979503470104932711544518585141886201120341646346825148389289918423742153138211847721853382816602814447662076697301193443733087072331892971114202803745863748456016826877257208946278442870879598298008027366534695589557870674030477594342819058671059387992421392167308129550954480137466459413024709467040608019595080383874468721452479470930457354609496456743841621296003072107513731280395057908070043482030174523382727579977632024220829934544874796179832740621523326566142641180715813654255475843307107247637942619112159864441664655233419421184855359501988331526111306141479457193253303099534091001631125354456956695180207060985740587909252651639733601797764325250629790582096504913747659237819068882383625505082981542416429519126299084266380655664149422423177878561436025539489994412698174396896087722451394321156826522595898609506977274847999941357671214066998286618052592621885770564593704081397790709682016985576618402989346681409346328099433026185367016752222470626967915820687870406641353416617274837330711859411259151617639693609300012717108107906360535642252193375988046255941163925763868473853535213432574757790814701964968988489304395894207818216318951476808078151962889467469340922820207462621517193681592973886624937343458522500861681913381072686560982361766627391910457414315648696520648368454517148252503956542075785975520854935134376489271451377480163355993040291971933559448484973716985883254463636563798371122872612075682617562572421402689017880048463591400514391876324604352255778592180256033055570728943083119138507301274628487824161002026590944293129797524706240070590259194093399098415362855477140425140100146963174582226351508736022841704988350812333373637253346328203615852735979612394156868669374496764208820579650549577586639975429986650875672842233911784990002866915573642109130154783307773430010363710868992784438941717244596166854659418701907640637672571360937171220920852184233865200327475207362937305415194346634621407203796278873267230673201501744878870224760449849281480209711239326448622743000045679452808568829661206481017610168149535954500618220758077389222978420118006948964044616602859578378677822821196787883420941159162990451275890032378880456554292883911847136452359759177722209218098362913281971089599144972896421407382862708125283300329777188730884570461692523113822626694185736753497354256076312890752874374778218228107313181716291512398493874764578018452629677952246684947475328064701329580776688621509179614524112003587807008890464469235789606431641999154032713130360309105461839246101508872024629502834279547321156384611958830847226473782621373056029631054843540581286148370312489389114397736723404516793504562601815090549178354032853800818732198999468413570102261750990826825214552600287977953909064230036657890849212821475695458072589210482820092532432449404315465697082486480528847294618017453718734463431371776117836000139609708980119857845446954020307594841438983763529314340908417240565198243182766674728778150725004952981862885190432546900668795108322791785701367727457480691908413324324249624094589039686247093316765599735468060894409417291010083247349247107107137770277184411357056901539477505280329743398095625221676618827019475530574766798639979559833033190858894383669805692352279640542471306383911581465653542753093223835149372866915226604146510365598265919003723158796728146855934038532074804618679865981090270712170036191859874872215266441421520431249334374518845416305504153243502358789337929967878499761894893679773817412074911539433476605536720220095318798504934381202810178525481193397453233992456796792621084566143226668181210730181021561340964759945724098897589324568193525791223191781082202690642378272125273643739370793113150808418683746897458010518677858430356968401319931445052399634793280970738342699403245337578282355299707472037473404780107622022792945948658290755012634886620376859038300676264743610731082170621897211789965332541956710613276626619453602176808509491927969409816358975468616186224519748741809865296650811297202346773204922029229549950626240529611776789932045789241136327481846809181783405636431460973500658655960541420479203200653884905911031080915001170702496893047545002988618418839125559693574657352922802412640661686855226805334385899852992497339297134739823133574645606145293277102027164732766279706950425482754160837770859221262953726863114050117080918336061868150865577564022373214237403390098860206791123513056979581488265206261580980604761443521737867828282756807055507363134945355070153835471119990154766399171815922848213742708528040855227630781445721234082125891979424112899440084075942744666757146302051484647003435818450970227047204668233940111424361219255752038109449780670169148459528691982822375633221898254637554458388617319088977992666123125121133522946350640414657344467276150094186611801217217211930780986009204919943709200174737286957739312322249751142797181623344203974908661869617110509152819885885376603446843476964006162840649183749490787520650058544221903647450196233770322273130865147218743392047146132289112819336378860614049619817556904969756865367416765286130993424205824871465457688071548775369646392901675071122390130405209002184617787936547653924122579955047955582931217137832447045370647959234359229494858915646866576997912225572791873447031898486048732827969623534294007864162660006116192125519890875855956826181239656472382295082161958680073842578433820100977986011578311853535067035917975614163815695830287868553124342461372310062046700646678894985112393625815419156323537059047453435811669801096130265659532185334264680076730683027205977643481871361755188850461523947497004098209270091380507620770225735316030140253975384191639049694808581506095518906375906416315634328229865670100392827765877574351117556495121283040753247377916584618859068564605737038386391484312789694013547429180115243690760788751662180371456698761551872220735744397082408783691710741715947032233112591281550999879887842600201979361686805823222179233255830121063399907708184634381834409709634989020464055595546484084530333492278126306783155173884688664552682423832017644304144338693005082875295193831233507025892042455020859096202483925070658475939985022993342088446393613463015833271544789272155027888446435658224268631636771857589942273627461917793668492140827409237859028190245123509414007416889026882037897779558783885438120677362495885979099388209104961172707614970877088723875409245448046302337589303720060058844794025724586827303239480559050825595247671584656639885220054794644134774184373527544380851157354188585050400587301421089692054693923690251901625451873333162447049194126179068663911565528687925802625154886589465816177099354579485931981027524682387052021930738344504614804521568398545526609997571756363906048897295931060549162108842007544815341071261714902943055446431878948051427461038576416940351468444383235143937017621716567377542190429679191816436930828211976436771106817437559436074923695603863196865430342867195220899688468572399131871182192885875378322368677032342569947524255829165068327336874375490128850023411563203182462562781935736792215831747795984104884356662418392756483460730370094282031804888672744763110256112918896311062583724452515875346757783620090013433433101570954736566402760604814669419647804449289225388225033714466800764506201850411614784454260430850862834602850691252388032188227416863692857611442817184229845525164799536412480027222495174366246775210071430871401902818466486094303731644374699206917915750656854217678552347588001510806764942215359616800230139168350099907498562563383341112933053108956891533620625227790505472883515965089328691957703230009253266381649624923648318316673311857797077871961610423504802007755200790440893085507720775477548241200208599544240210225062840879287094172901352627794608815795644540998501696457477792749141758170805500978511787014914294512731675316118241372173754372705057330926735487835458179757291349419244959538390830391365130333736530878785640095155541083513812527422802338916810148864514679195317947413606302231257797416385831761818135300076340232369357481292771216088162011940590198851022793935556300591351324957764528205163388867776218687813446837377799694130351360103757048828831562358664485309028464955047227968045873003047326394366620955481983550723231303052653537153678257201441283066399279553188222275094282506731590285206238133134221097406908047880870765893078037439029931536406478957016174576776071489287725457041657603062990706108653161879884103257251633743813189171276585425103192654359419616114414079006736640306362919919396351005546965833221379714709578214348704858458796063578442938280332544474244876363815994970770805512253808549085236788075309709231304435562929663913333725154732324093289720917721827290825533296176185590385347261008277228530261304125856503777359659194363021164705147641623348434632309871754140801992857105343152402286468528882009315515857386149336581011575949249256007917239815241952210933030708999226081506317456610659571372689849212241063289763238145060824944438258759080613091304211344538259258009797364481612911139083138075271507173779941324595811490832648650093450549553883070844789340419247367911583944670914327501871355353957555259532393004255063693997952669056146853952612089182699953226097915250528967057667160541207489899516122689008509164344350787779252772693050110253632444991193499710160967694468672058109066709649515435512988514880713505710929457833206402608050983272114359301894950979846101644350683960993786806724613258608265818193809125709028612023898344378074958239183442921389587344519471045538763018266562724575482430016133381747671562923381800689461353188331589803201317949159515442549185451787655707330491014868080777091619501582917213697175792077150611402333753190055997153499717625232632211870878232871543992690109330967981960004744130969374336097823988011571812781708193347734521368828225006540488051281924079577953586501868894413919111570837245951506450458357404507987761276625753320530798540604751058864131659304810839655694480349488661889225861834617733042372308400657636475404145186657736676968710445722262660273156328812003598924493567539245387592443864240607666446913217551493434696668982984697290906557090641083393193026609208588788845976221734693724699272939419573593002508504721941267807154645225849431887275277437078353858561783744390565043510393701878947581156819904741808068702567267551884678858675814838755406928800631697165586933280430290117181929933327306287968730045239830871035473954002510468976998922441238422479322950537242545918944198056019854336577346275181254986252511239056797232450457463957642358989282139175269103739720683572216786774579847117834655255342856490721190814358085399325662287487906834538434544715188892922108016053839933094904780695666183152129904684953274665112468267116510030903327498426321157853806761980472999230602925799244896071193522114176431467440889918489909827256357470035977404036677923715524470610986734822523662171671646659105589410793780733519198284922341822405192614436740282357283940480302535571116337462260154383631150861580097531043302538598363267516936562692288424163268151475817932846644748701070047791018711563106835793489045652252000066835546506490564956824176087838435359803585082255661491921552568156254437535467853310761747065888103948354134464640639339279095116980370088909691213051732929767333868096003385593213931190616881098520166736518960445195448860643208533175003151768233411265829694520719529249014823844658959457884410235074613915093821530426716057433753431562413442691353921875738189899285408943206639559942625747800966953874709777431795586179745321261297863068355061876721482083890027254872024308893937074196560059213690370120819881129498298332899850410117247924961029513237569391078895662803640573773627078446179833280801020328886880553534764213178608480427645608848200743877312091895103331619259162647858954745147675395232074825113173422954708447019211941521528770335974640964845295586463019511489026404901021765348243111904271541976453537860494218178954451607482968223382853050833942400154654288426547636858451213400577667290999657312410483995443527901013045538598583980464056002740205985088863757773798341941904086066280307930772250376186995571994481924209415931353324265517738349841995121607598730737676008090199476557317436915365110271342289009640356530217616789490957807400498625819189461832335844035385431970175838787602883238548895957320416413088088098839323825347123430243124871211114072201384582315992522007293606383946446414246023446156259675658890565984115149062239894844734598661251557300327304109999072864382612073030600126900950268778052777383228075281111710617142462769731000902374992451326319002664259703198295403975681774612225466192079317162405820147107012000428455790950772777812823747631316257938816781954686176599486515187677239270816983624656853744186620806289692489675023114827954441198104330960082190675804819990657288629549371492451684371807551596547232466945514462465959868908075446771950349435817098004865478961307058809616166646570130378220638778962611064476504164745907765846535451507464780639577881878967236558111988174052961295980265408875072225227988328648330729316584193771925423638161045417074889760560788255638479863538507128718032670600698963066091295144442460436757436480447315484175387026538436259484791602685291362150100597943961091904116850790791972890210382350461363315778086813466836413469609016336040865354150532431331203999892023754199528744010227043370372456380786787849056543993256927334444265069687075827242834585722341912846695446522292221069128054992326701532044332045761106825073462912738075467742497614284271876043257808582470626905441555215179177880774189501243757792916012939479910718866444848502677032945941710199481263587761134924890213108373372630311325651715589850853708293350248584461190118866839658526793522062068704774057430728794595852056011695558274885947660459368110313352876727275503922309825354565730450073147243432889084425314289921148315883838383774086093406239986439161968631489516495041393903393659501486274096243726383793751619444008979096414331933265894902530369873710013355987631072291035317930419301444909559395486344507979099569439791490183843553905837493413097636826259962608093551362831913237475895818028940925554809943632239709281232838183479307179571404899439824275063094419807231670548275149467645293126810969983246246189219005104657456936290564800656838809030782428618405897451448219182030132294393165333729333320590509327787477558384128531136324406962090921383837186732638730152486414213982117529291516555253454155324136958620125803919312800902540265026742258805472466259895439181140087402975300658177744798313810856113932085416473454090468736376664464505806038056423828814322636966754370404980896570915086386444994202826581344033466028515976315966856532568301976015468423344294682002107601724638907053043607857305708407722033680339216199515177277336705257173765770498971738593756020238229693698741246721945837468490020561006105538085118443408602562926934072110218506954530540469204808326843530657763392345001202760655039186903349072111164498949495167316065496455327423213265246468864634336280174530815983401357827150916205509665078704758041279979665358720385441661584345222922397830854362972837296136777165806964497717571421108131265032366014525257339017977077856485412860953258185735690068662415270211124334584668259740002689461140624068341665667916124442828891504850877127229249053313665358954909398613247018175983973510334905356004834391920192633127673245030372865272324038348847966655117087234948905786796645442072122814101897069049995188256714313118063078658376097201636369378319010480821242374615081700557008711186792509015637861648265196805589906191216118392570954992599877662708152480097514367315420069054356473318788604731450904067289965620201891399747501686796795309168516097086579218676522555493394257658557219766607721262212874636037839871329250421847810798463907246337550855272698742123099622210520975436594871180950515032507121417645128329134885531609670541663374714451410175773479712857075181884562884390468638874095034790308276612047123588933280873912981120878984100539022649842388480758368640692156201808841864592850246186109102432743896470334029171517430069559994424146726726259455500758946251607486360287620979391303095283479159275808483620216493554095218143040282511336891487336053842813659996055767684711415956193749107802345777710973498670859584693606725925468309654740911023310381221018588944321861008175653559395824565506659115055466490799567859996442435585609337145928387368939838716447317451046795042233699676833852049094302959088200763913077313477904192931887445062798908371408492341746198516808237277963735857269158958408426725877000805041731834543937515144256267944255309100202516196553304590044969896904508853796469356431015756213536775215522874200314638160407806125998223479577434935309871683790030316431324403488320133866841838413270109717076356061089790470759011625382686217175958447983204881874643177593476087336317044195664949142132652636769052902450421370101134709703005806876966692665929750525545862113530936419021362541686823985429738309650722003279454210084799309373234511712912562532052839813158205654975460450183034333248104209549756595136434518026497109785497237885327947456728190829185334568444456216690045242287363633942791452378694514821922372317647543302288210673985197668439790080363880850258764756909075919983675538553493365445418303891513654679227879942920233463228337519446285981005880353304267316708928820995319896868838840655804125154797244070432655664651071690728973519021196517872602313995037952526921247048982799469342721821256773477261822283945193555144140110758589441622927883714438536085246053212514080489821237770566638755253417478986373459807319651364987431739087826576183385586379329827669011584756031008282649088089791485122411354212475193492200429431613221931260928883284298088285622222465554672398500148508622325733106235989198087135169268720363587151028630496603543343845218778219402556919019200821793033500360898569963689392252105462936178357996374561570679358998423551724599254633786274105276909692023174572510211757606375826212913459848876762792694731937489340306159266016797316970415327771018327566900944847979382630487053141233476604285629324470615766533131091547355976870954144911278944269888361620512279694861628698340313872182260965530868944467730545885879007005603343533994753260035007687091098224387839691318242978278680885473247038169102037235470074816982635531788800225544607317499838413139163100063868279502728594502175861676535241769703801801481328382668580073679436159638988823000493228604588482823859512828037402074852519036930799242049321120881508315850090392427961920410093311941446199185471509187846704961291686482446577059634076019016088131550382864476421004140975130865949369868438109046911314834589005690066568493866442863570174581514859903408835003786876339495735449589317423882700965649283594800597564695214387494695807398823802017678225515358846088679261727323744667178342569819202966753040156230349308843870760274498050616757113542311157377924391901656848425733085259832174620143362213634760219426620304762698605711056346325842852586899849195997112904528310905062324139896804398924019160722226572461730803948247301719412374478799866646636812701510467564956177405803311282578768065928103540971832876017718535723318510992288135469366553221580459829701481798147406501239343903732829649703611120727231516390891296079876270604945116679107175719134501897963712805246746980145567848088567919223641882389691746480643246476903886422288329264207070180478500998346669232099426174980872075409828510501925181432470975200156591266803535333020350435087205590393037681283050155362410258877463803617483314744254050947334120716519268504123856456269373888022065840471517160666866534953289121835424389057030763466192015652230553932532656729798993030243040368622241736701974511466499101408094863188587147734781176195704731322298921336264165720212663539617791829490180281480282841893412294243008384307853443528072981488049801213359852551741686977366189618057683827710628973450481784072077539962890459147338513983758865380332399274096818125227696493234606048280943503529173375448943982188040733924968127708106670343603932007346895930080206435714416274920958697099411208228223331528700763302146414184034777189900653778795593775836785367190458092888070658305890088095975687145679406365571629653703465974510382593019500918959787710939987174819441506416379336705117676857774377337304000914801540376565901210115907438568811105270922329737585040476678661019718797223745365871567351727503329155375121944983392632742562366371830209888138177535228013488332995093386533433922488922397250304661784638438003163768935653195493034462876407707127795978498127448434061567391318803119190543777788146392684535589396808898157466070795880576637890362471309954117412345817134822198360434244843249211808785844762181229329889576798367107518112910432302167322253350515383451804193955098861128891206203947493119709460022677081676849613435192212450365000855579271090745101842969652257645366258720781830023230232542283483304172071362754427126897724344871584228928237139379909136887159102450501415125107168403042710867530646264321219157875751637197685061844889310055415543720214359548781796514617930309783480900038958159434285484025964657813896990275076522992709069044507963448514717533712079584565848542409799191526729405534111044919546925407564004979967952226684054828267523758764808217856948299280766563595695254562122694807162986813662405806431014339496647035465171507244572234568871430920486377049798799310916167508329073467839273231320302037372668085558931886013718472724763268276336696262325406465025240679116879682748934008101829145578054083024161209656777888912066858356072414942008440851756923642228212697913047451204396687362569578966689854340630765014216262042796368760078940756649104186686237947941115643087593577936736482634069608542102358476032091445474728016919842637837605932117853099721527816384397964974006977981426448410420487665386239478682248249660143423482425737743547020577157884884065693132783467495716614058596982428816366187662147128799567440864874437732761584414208538946262376551945827908552513830028918111200348528050084623625318390189774011100301183896259350591984251825232822394492433708476198569153184353452863934368772573503671370890267631021683518878471662820588335397536351262509509309285363143648373886222188333480295633715691606368622545711167132890687534423551405986359612865049126598370713867882810997218350762340117859811041847898560375627035673679696216894280046152039803453428375663165749983368591826884331545174122463357698223725882980752674110687057309655075189781125505725401276092949281906747926182359380146906910256431332101622383552302889870977424553492803643618954521611773967647390612010889403307546899998130572617014102110249415777718436728359374323645965985666275310066248983131240330236285391720385021020588715883177855592609184723748813497300740488623620930042926219503320209618721689239143221121392518802922615827452052494105526043204899559047378151415030376065675118734514718321664050666799834368333803946664128452811875289061239906157856750225722665319028803690285487794558099891987766738212947509161703242113831619359827389464280694509981087486241970423142540078816603429654880329223798881192643387729214428673390691477665605370155098161265613991296749962513878380296458685982220449853801385124601958933040743852158188731982991342876732960131733266976955199840771446936671404132000883170355391608696118853606602702515762818802323289080431987428657517706462614269520158339888870247909469061609269794294722571841146994159294795946665736904931680448339621870991721718984143234864074773721969913493537048020223099867749803677217880659973885005847438165820094321293462834422542585470143326946769563569302059602906377828384159537206889333428415059233330723247133403599203881504641340129662357906602723360586541556538550133357621218174060979634239471772781884908586545555426245067597303954840181748748840074409232358991893094296053773122646904889826434303046284442693416997335635555903950254305022236453668402897341748503382806823170395950881536328017732321249523534834443260332598809331405351580491725715446040054543632474592668642936831202692510917615617935942463049502602702633679786848758469346739967276947326232147872331486211581351960182030243656901512851873523124058854682549702243119072124162580560290871330671690298427432140920980559953276434837295775532883188145641974745369976968151928492117482679832846533800192439177486190884441018578100337856547440379776378746801362623857288967084107660689577036721558968287307486714578270961138351725911716920184011437846685763836591900548087607666855758327585871183242779043098136161223974657931906470885215751734600623511326073362635564087844139979691857587355552044999597631096212033905682812614952253344160370416422708248237191113185764497875543144428834510720730633676564768097367827505221835202126732631615081654542117929783009580253332328044778015392260691498657760563900984335708755243803218516596087363272000499354329984966353185924812185679634946845503329249179851675167099598220989615637759459391175873944368067891466805514706130176722783012065041180800626668889126389630172566420891884186257179820909333837540861058807590159593395515223973076460686590593372855679043735473581050655309032265625485082726366785648339224771872985697246151342898705969307979758335408418868610103006894988966331491185333916006519665456921233219220114256896030390215744487265797572316151191836589457990019042938029858326528211298154828077452224622366805434887957275744700820630026737480430217882641848934393205146840817464917404805898042743226136224880672193330674656773780462322151614918878841910539046786344935127595643672046139358992401826798397252444852717178531134399465793092621712085470063383869124740101023489118514744058242764804044886364253693974146692362916869955890141809993657210883346989478624354615509043667056453098052871970799284130262994880768113318064657644139373271677666520499202936567868262234703606406674553395964130066962512797074305827323314491487600298848492567242806214480094306372885082291404166809369156601148108443126699183351824347153581528342302922870595589439841479127354608024258902165342462673366479288676919779013550825196557416133661744054333857640394065457971173517088138918496649019896826332296405307850648497678432412511116558196732453785408519390157090819448236893453921705542816309513751298434405236696694525387824590096284260844135369813471074198638009703424093600160989591150629829631076401040196504274458826197900630078171477307101386297725882241476369429936896841124407671156175844823719792312591938807980768731791727626128840859041587161869555099940331219436289063219172787432710063174316799677460890865684718620933355679924308719990819378311619054978267564199767641825824486906354902379250344042901377346719196470351448925239223243004346064961126006358748793629868366505642020068040846701738054577643796230175520120388722285103303316768536451923095830317724189847061670372612195625507392819494485619918855094022078244660119770996199974723894863987182087044755704839947982227210863806429192703449579176809164685396253875716145347708781769443186814622346118733038321356951918430453938298698767408509458094968313697084494820881515207235343749776470215274923564538662489029827437867387317265397551658416584896847376842218038149936573858963919398543007740780459312143834115115635979803966028975373182872099804138250640274712293551391954204590518686665825720221128527668954108063636219521219471537260872548516893634651211635024785994700387710091646406911978225927193175734648006065789006846138302019554564267776165454309927161820408876911390556551152093199485246278161893232385018495492247907354763487287835537934822758344588147470207046275738317134679208206681297005272692634957494186107636291675037038065386638985241071420503913624795601117772592000860173135975490825233015336976041045314427597569504964309024920832753370390965465489161407820124799394173825810608141987885452497582027533947146092290085107187907789438985615776501489093638245199329919843632293266678756041069549559641243642974062009807492214347262929478453965510664513190389224773453401186154720663171771125487411099482785351286846767263241305313636063980679734605793389888501189512450463636292117913002268221779566668137096062616608875630703594709634369948979059105135582727228226421866167162678914000596058306780516646117527133908371550150429259014568294274403550282001944790528658904819459225740040448866580299061683764848735474011390750648445439240706043507220447207840630817908235388290442488894134275257470498323147328402566025783967609595794902606698108108726411811136463498262808347181406297608440727854827113046942095830400706354916599663381253055227791955069393201376010869083554012320334466040415473130606694605499697037109459451506506218572335682926256035711861652158184202032408572071903920753881510573857587494016115196694009254234169192661817017008578045900285937602436329106048432414100387066614892980004944700341719682553309061084970002248483308466955759950556998310096272788877662064175018980835900449615223258106209731954261461659137104463503437186367498039208389017845209384790007305224091576071929099274831591819613456886902920030498164701529528892795473054588663645311352328267495607180263087043352484368919836733839919192037679438188641812366142030283663083460711372202784094291122909751258924841240261051507375008671882614630250499715775278714428459302489720983412269264559382349709123964171994265615024227409496282457820476086129546718837064904638646369577799552615480506555338108521099240852266901028540573069623161329503324983372052410197380370109260366909151637926640735714305965430771523439979646911260480718954583277969977819988493450366594853215372167753247751172864858571029196314679175240958694326879334134228880819774049577687130203185169922206974091202228471740312061354028021667136137647274832859660106748362865250540513306847118875396599488066133688205862369801520383248082220372997503567232605850422271480446963249970070022122483407116233961553485222950911794884250811910174635342187498324982440114451467397284168651119638126399984073529007282066885342942583637868236241389506317744238443013586307295513037234743556809724370076529054921652598527948380741993948630193794255889381647343969324821621214220723291617578809323064897590394333688357674538424675731012774621531156455082246693977529170638600260011308926750008378931354847533827561848862829898840196687874732279340601093975209241279689936402461739981817020918878680742641812687484133759277868465880171663856606459383717074362619300748304067187788991217981907495431572318754234439231178752615126216258410232186282019238918868404912738413142698832824003802545839582991675940326867612609604916394939822848501308816351691159430369581853451127371813570516684382241890599097057606520791690378429318959979810255731070142245437410644044260199432600400929648616287693940895840559860811076341485255210829323804503144247170513503209977890644193438752081316160980244518619625802194725850850428667586142516125061730965305945386639419471122483806623072366405262679856691429734864548865325393552912481473889203498508396950180763498242396832026414394168663808447931634218459351972225488982851506240970634495795722437611679809420108400397548841588328469469521660123348173241597590560351504788807530347210283852434646461413037643897199899087620022223051725225653780520616277052366047362220192900132923986166562530712588180303697763022391752330011601348122014908035388912638002303381363519096893180977365458407999378654985589299059300156372326910419610457849830554654745545153088453938268194581681920796541712217737070426797726143577135150526603177649318038053618794313651354319983663598270231677009031616843401481197943196787023622307531119478909705558238407675527864497021410986567930803211141013098684366221308176060870145332440171637925574582366077463393152792757573263605870554978477039006446820353597649657378656553740195486250572139254883243476842634433233433837835214267549495857052073976632479490987000121018919747000566781195510209869888474452120227329003427993192320012259813869530258340065942787595458473956959080943587514598796918073849021556576596341018298813952584094090668246350191723386502951536190378705816923775330499468094676776565286588507003589439245459090775790072256356111272181510092576963772590391294590249298692637192742406795327416613414415817811612218568919288153251521304429311971499818209465351773290337551124657204767408464316847037885211258129221759987713180793763211884968037167386594312329782599744694486004861489556815023543624856966393412345804421943467181325174244243766366560502141867791644803495101076961807402033957396412681977914253409961062419007150403062592417139071984656580545351848021687816855357647944602990284580840925855782587272741324183542013286651806225343998787841649809250062750963679532442309575724596153768908451228554255644404256923968314001543896669359420684906197413329162846828016787476117073078415122096012670185839213886047114468451757385033223021850873031034993556581825968175321454473089183774225929892274863551481926831628335261724186961526261107812149525717547018901267050667804808893090582688992611516222200232058429112001541755689304652974859121947250678014699694455651186307526138607725738821850823110737947533724996042686355253051527717835203953856660596519117759962079847267986881232702622094267015968651310919702339437595379111979056727586953657179994964814822207702133369476758781491612740998954588164379164859372754111545650417377250674130822226363206692527899974209565313038563625580793015258812936026193597306684670762142012323187414337565533972195225868153824544974322132549439052525399328678537719581471723821801091360100227984072985217575399130426505006065932654897299029249280498855619919612202265237407552865336369714267386828541661507208019560093006919236258301151067125720219669211984142684537439096765527456733263117717315907689138231299200811508423641621523227958847867088637608050921817332221505826169046867613637417060022798050199231837134678511222749064016822411732471802706504959141768995445265056355893979778052413676187566874457112145903389344680735917187802048860993245042418120827006327831864188012608531998744243571061700595039928148267780216237412057911206027891598011664278643065371564237461415646684415126298559691662087499899164147128725690939597315854903274078240920947242057410013011727806741314321304766718371736028144434639596219437170789226544470078306917306142848586813880274440798065058973721642319012160192393148452752519945872925420487985365273183177556935708622203088412261040193823922914857903231767121838797987874414975230339565162333344197826353060956269724275794662986975595150359189718391747818152989520503468969894182251108806856249594475806835002922251821874640124681605571463374333381100575978987979285279551952223279941307274674133933662958932806524111763772105929542256590368587643527454825184173388011335914738655518490714138556807559437165238309851960028150572110603585267494047969239560954608998653504444460092453616723695734632942328589940805726737486654312926167996765782389992045967622819157639631473283102554029530330219726532666859892679120547468519114325072313083298632358698297748408230265610672677749986209784596149692435255487506768644907599331360456057154625953082450783578412483242018055635966658679915565367782731823009083253006002315250159741687915501217899478860737795442388141705786376079724063198548323923676513607019642454478504104559391391754795169620759761972106206073126561205465201404293647765834633815697656152755599225538879463735569358807298586138810603408800994053926095391069385222041658800945240360829525713421270472707324894420732140803073873487407785500558738349068938584156641966842747445215208282413438679710079239726586825983625214626734857109340550908181815871139561486593000723638559377169735459682341328436417832748269084953644202851733878759920027725886340808775825419960757834703537707594097734293773257588937583483030371082922560823032654993321880246804994575300868831581476327041758337798004588627444894802295143152755098473467559948268523252434938280319137526281963818512229189798618968007334709823815531234612053298520957933996527176281440080430689810166036598700173123709621418417209192594074835622282721303464942240365953226983984455208515270364531710126162610226056230215255081273056859027193221377975054423388575675372547108566810981854865882807898324150449392396062966171870294535853284507408678189910837654364739739576824725398065903841274022676146557098035946037303648035165969595238921825844272553274259898330492499936730404190713349331894973162493498443474037906456193098140279500772137770159833359028160172591234420410205863347750053080362898312933917267174315983304119566019471462028478336930987918127783544857708353039269522113630626862533689944288622969081251350347566334145468476494404877191762582350403500323308824044007820310450419436265490665121238062884669874680931994257900963510435193590959585239589846031501426367685500903810578859343522162901393146998462278379312524651218278912702154824937555255123369100210707624908157575389977799095452561837311678406627691332346526182631114026249654953837419559618411754681585903559245525124829917588918621855397151366427297804947533017254804867736203317810444737872017263857201349620601769795433315289125577931769014149702073809668233780603022897569866939127651252739126505346957238148035643475328388742683278840205179492653994147277651680554953440530961804407393458143087696812943080929576835383911871195237039995725856751350970462068633018117370944193704172125143042155011723582099513696027897360122748711291805268959304554886868347557164699275946900169541399459800631198706279145596858876167874167466216022771345570013228062252549134322513929847003960522280469049351541328281739841004142298686478421925168108390114052745980361310691801935310761911011578231686630591266329613544380758380523574167962327240408930695299929694523145476843910179564605321477778074906166247391678330402937045962498021414597487641768412779680829262555563369874730174192618801012299456023389689608378104714229120650668334078561082675853277197245339989107358708312237546842683714180901248415992444731171740003033454009049770268765685686461173678708957898916593097735430892688280455361338419012337672730740977916018085047236614430270523229818532536755230587080061873964648121761038622715436534033473199899902967235305324536455994547994684622714997615305829994345807613770709457335695484950501866596653760219470053420670618560684520797218219714991223129608639449213956825743708148958570080696576647320789641052437293626455750187841591362106611560485620059192486657332841670079457154390989759974161126691764006153573590786083943271975048960372113823472693614805832501559884994788007194148621116540462802197946899332122139782075088608328449689505142935366515208122636109298009010833632880280612622519860722345361742288203236121474112371304759495648383091514558021488427328270853456404182132978476048872315873101540901018512542969386307537240239195963829381723250121029859883192295912772526822937003323744020611602347586030736431851259390098979956786461597164157907736158462550174346610698728540908001166632379872206645974877130345827084992387889485415808174657744918628417677847744906267612338150126589402121872233034493344987363635879693872448321256603172753701317986778442373330600912073721408901141798259825743495004139712568334033969831837459588510171704265657779675423768253499003103334619250733465042298153976661346248883412504784116308133501318904641948247657924431254167406263191719921599111445483348446332342641521518194168696199293760146507244465003295929803949761898325927512752133082560295100032418880048161236662906122157453860522819512489002101478573264270391065963979690692656997965989734030217592870306765959056669107338600874674893534821268018420792571911009792185206811071166050622429499283157537642327502746405008474546063991103843142127874880376821101007754315469987687900696911712888314304982846351979529610074557519898171665078500758853505855853919418657632826798877365495283532216745431524568485300021641519382652502472075200090305313443418181078990174097606331980041368487384373949775957978478789261938223936117702970472869759636362429782930535675240828569268815913783560365245395870390362734562888883566735592843447521803977678663716940170625661172859554741965777491068867168817400407587111028457882067423696119128510087556290623456314871828138420885452774643919224487719053664349283070111442783821042889198216336584053155023540070131303176213665311353855576199426074579057736991384137184835722415388087979982090601307906136964445614697077559616881244479122903278055357544976944555287180500811940684602268381167260985176760564481881050672334836910414549626710390255216794406997889641021075625166749758681784094838689431399204546004613617046074802977058316140272959100453118764134629735458065606226656495618566167222550894452672531187500330114613676605756140817741812001236160380843963116483491824401457006550345617544812039099167352310941267487839126257604038348391305916384289556121830869515453894159317549844188227632026479528252117513685830130132404072099870158108483190247058672957906616743608189839639249380204302326471380108030982648073549417582894731939271338962642469168845542045472354023737218711819791792605307767531654205126559986085860182251721290991170578086347776355029306888641372101774969596523297428830723049305830021769721757199461603298403268227716302159515854427948021894308189947461376118768338455603175815787704365837404240862495775755162531187342838411811017671553993450918213344479965290758498335701137666811347493822717090026643182331598383163986913398953449382961714146569791252000637767089259812078272947406728931791814433215676873840439608624007487493684473926010065925221211400980355204468276646653523231493167012487470618414990444612064411293926324945763411497629602141082076281362756721378344168539016522463721337641456551251753302895646621174046439102795882959935562547390259590060715528103402463981788407598896345773121551649686357870940279248742074087098989333356622039384436500156511765641603318472289200347264756246668141914404513470175906121173420665129895006611202080635600675539191466063132465134242184850469875624323951088610177770282355662858193756324954001860839701305373386488300707983464934563802537757417329400400931785248008380039266249297208598968826525701489228060139368085996817159672136020366857213800073797108625514097640262691345852612157848816574460758915747278047098093512772081733916395576889571083860802595834956859772471975696525181656931244893570206358707541850391590361043262783246343595020019983978896023506193553719055054835590520460793659795271727699473080506690096276113100259754765480547256181316086550677115424668799080651859530159905648509122465680872174267368083789830123643448977066027950582764977213840767333797007763375239809070235508136998205837109106186210806164540224229460800130759062255210427819100892950319923648094072440146751128580125410078499047089213243077092388795508703712962209243355222438171763167623658612742735815844917696859983733675940357945204096066341981762832940933042319539967843930162360597257222533912032477054279676172570022658109066886595092420835058204585663017743716403211671154628598383162550145657177953848063447624223455976423213850015855385590758827814479750853478451435161812194561920413359657976175284315682458154472043601105969105302543089503723113634916812749679150652624859937094092301710586425974604710133765118450761175147786807409766932381716748464936135006300729918633092981262628557687039568665970101727557906401664804616542085905361829903298297588606785237674180716937233972652809802453106074857429835136317711212926242669939981814924056029663510478391207242388877814086105897729692508851879643055753573310557781144848399455901395286460041168540498614238140717271926127816071082044079915444672524981769800665735024019533785936823274974297030277513724504089313308053790930114025086001949896527434730785626199192381205354712695520460989742263455636549556941178363612773325923250091773719837330497406915196620352184780110705044428441658310289913447795845525702222978525524985328316684589870667594450882597669380012059484332119983784852489923282727020102453117350538588557014375261528948080443362445059681543314108457013109907940081942429742882651029908679471738420249381224957793447473181231972045405137484885519876338269272437955362175320509510214804662864393815544969478219543036701542618673711877649573900282408641525219742593790127077675051556672860721232764063081511087588310451916668468349814940547406094679018033370932640719266207806737017252512302815642462484675931119971875200079142516299069178588075968383577914568182276828298937279328417717170119756852781817176244855561968746586046615875304612493244969548686292119851092483630955819681557345025870588409142822534292347985686063512089105633308126603201174655334925448108821374174960048355467492653432225483903085518032305406642195472877518308228968167968962871756857109937238498999641286573864400814949640289691386500962862247904576355144720626840077459354706866017086276170663826959408532448869799659460080723909116117154582387482024312704219763873782448321175342131074846254032090280880374684650707785282714466245181229437948215690014191928421182656578191441372569518304341756986145268234808207412751489044939248017924081936584486224001801832120348812874192479734209890303278279196085534433579615831322082574274675478638495613456578751862125451928954222230458136026241825265020682492933474979417144564527791988668354086654371750039691899732938337151208745661633697135558407790140731049725750237866536807522495622483610106651276016999143137418056458215298377566282000953071696796607385918627372677092476836649233325569159480546812190283599785120575246584780472191236802941750639455429257273266302664828792976237329517174007288417980361384751720217382305531178949357730465687796719805989737577095710568564780266147970447481116996125304138135608548047689334810923106032471778851736298578707554114504110298736618023827637472444635341954078134799780814998255528211432098156809540783961930635911794016553720681023260078217329231709216693775514464340758773251643736678574432442886082576635217719508276044956910061918565228921312553610098838408913069834823228190192340073816555851292859340635203825852894255645460112620125734581659027605527332879872998898721453064652409730702768672958942776699840474396385934551446494249911336070800358575137282615204708813831810835364421025064065987371121160581483898027834566531232040367800457357844767777771929622850693909412978562298321706104448039050902631406447217176473813382379169104657882846197503938575956024782345557932255927675010289774493403660805519866918417358753201839365939325768329611235261260340498429036887999682958229023408273171383144597833266901031254901417002272461024546511081941737848822486139428045511270535630916559423227894924100971816685990305307703925601495967969591413499924976230922650564970459530999873726475985688466150858243733516889484128986521047424583697875233254000135294774480885291962185185747464305471551429752368986478931168000370218528381141935746740170601392689420539108433456094397292001210685261619029994986405135418440939953618314167405496345153317354088813330582394360764286211966037308253391535391283869129219745345023944104180956243094554074934495343877642177915688025627061002800568217167942693019005300786215239059276184379956690659705577450453947735006354443416444973709440426692390794870278843898789237432101979274416207316940232964674860642427801703343003215537667694082309320928550308217996226367468005292912447295097523515456733599018041756978632469286034712095777675285711189366350672586745105379708249373720239756749536675865234429170566332727591467360565171625404205985436314113760891616707639795073698152145982833690976257533725734459869488020043778057246592937970921637074738566228986447851390141515343377880831775383906264055126155869743015730938031087138093850535478772686107388532862869908384428144765246574720037253293046845271725413382942321067702533404187537318159800155627610290803984109747892082877381246656022015179527747801193812827689206524245864239124376059603222150421706885625379913830847930204564495436841395937786440044683186795539676555276734974530865519922224345927584600243946313960695468235591516960254719579438997713728617081826854557632265188007824655676258411754261304363112352737584393738898520053176476122794444886302493651926921167422446395873085944171540908636119590764433589611758790407256410321221393813140858839409928900446764599696542277167650666661338764259861320593637811397350513854424842691118980863658343378027995786176631099208146124324184881382942943578743731706203388024911804777430651482295768303230566466184291200594097778972170902759159366172173659356270265125850293781420400517196612974534978316477763035707657583502418986154318066899727224087679298161293664944200440827389180134073999329986658437572065744074575765332635402171956697366420741456586209694526850322500566852221906894360689480025335071417686448354516944539614026537867956133568294716995311392695690011843171282288287974004780007633910841637396259727709047178983999644763569443346947570133938050820262733750979939828806403509792715315998421875099558071077474870453163597490458301899519904293956243056858431753860218364134309467383817702524691206819877460506296210982577505153248483134020592375465329032164875254968663327719063691524626672716388664482311599046855762727167502598789294649027066142808075945817736124145806515147159224908060609107235494012224258497912456883104777882230049616428411839614232135550664586894948455696652358364782072911839154289917139623503588430853008679826980332381958159568164680254847602051867978775827007935410398407111318606482634210574808788297926804213606179110841660599646415946089087255887475647001560791719780615394111559129712040735350522974204409867404699538007879985431154855180475043871016987701723096426734951022963028056406585961247448830008551174947728184924172002971059320272133114679753116963911149752834792529589162647928218665339717337966890364658685139404777298055930218781200614227351902676433494721615701819868794400776895078996618853222943106182334110918043331263591533928177573168705380599438016733540412190190562783874500482002267791534666744913313226551352459908614704263272983804347908550242523131233937863378413813860137516847200603310064853107073543484788680962729415970039004904908014820800910427819003640135079283870687575365681352694897335711537400956297457077237256296487874343675337237381159517698951547317965154626165585957411709161185811226648845282468757304613258473402343294312279105547421514324292326999325173137704580308412390606353759078070035567102473740328974723789336229499293859773379296843904386065825913533375369067492519030752435505813225011096434817319548786353709961839044398252419346706578812626221767814760687768527401502122450390249367598861729415694789706652950486453010387460895596418660880243198466390248811069272111515484199269373863690708405927230210360983657899903313551749456670952304516668991566495293743978962214091485607094206964556798080443446074036075954503958345967551006386796083411905464523974315431372031302474083452486214077642401793410051792120571937185683558346119971719069025873506451731999931469673720400567927435687256722673981079486212853817867507269002809685868425389200021040790808899384379540705157349421695918139952106002885190172222793564375751267749103975962336570152721798943665057742705875936894339424270244016308495388370682960740562136418599295389028305922772160580129248605304182765929104802331492042047328526411336875729495294170545145323100461285523444236932418305322865292196816321078030101166321106448028510621254371528551100263114528814411173980639275282596526998473234037577811687873024836049509085712628028024946532642224685725912540270118451362203902717007373944635739188379521315901248794461202651855489702021981918578427270479510774760636114954551562984742668761865083425780667420841044454513538480668884555525241576635389848701595727401077316039905433497456260057105344599398276313132942818291547140936759607498631696675853904632247171803694121149518259725942274813385806316217527827347887084746829045904578673625339721754465062287433427786784296769599177073153754432519480639787183927376889756441142956778676453795609440582651997957199165538921712353980153016663662471505280851566153873121326404131787617080418705586408453058593410907406512686381740605619549217665758493654133311726318149631302289879703404277252338688260927568454184056573481167379361848199800549426257890067080122840612371416889562663596248881704424632999310765821201293217907712553336719035711696495579999601717340557310423354181548355021521414523588707263819255084488966487134829573054788854355484440686196193677833185907340558636156211522382786465118711048009500900043938394356761569241040807120280807639178464824759366616986479393674468187102303583912129824025125517540203108483776975918029079203239962687707899924857255237773666362429231703180157275631616601750058547300329183705399051673419416921464070943022992539164830357253775957355019845596336913328037051457229115279394940668195133169268860056952185532387701171046535830945476302336277452319114744813845204657949520577796782894095964359250875231647839276040008888299410198140352911712731472949337659882258989335550470675263071252647203148251727397539485710612461099331357210518508536713009025356336861220273498032793642725604845041550742946180311580380259456429041470234885442724724203177750322567441909245688946832061885623457709171779811645063650125971024852753093674431179117671304343600929752915235142717590607879756768828464177670612405116125605028632629144475092200825713101638304918315520280053842368212652173633238421968941450517987789753645324726230004730864390461839789098196741693350168314013362361016190158674529987465174375219082469248057585921590995401952636681674727125484251986035138774095918045568980737248111665012125731298289101129093756179950214153416838087444757643384046873751055109970564143976037344178411903330112873448111919677088715184024651386278548915984510745053336297538978169283977051435097263330455124234721147669199916236516151499456879508300459569070434688656847601741175529141527078939332032981047449448093554457213748979732896422845301136323971143135921017862191161834485448060074908053685995817914426446348892961312660882302916843334470152085511389200822379100257757734455778870697380240750836606470724135673624838340760124715552267268911057134316506592101593338187591020030110407424979922984177176976937751712548479025229173292328850198905044451939558286108135793292760703494442366654555072663896717868765710517727347883089320464298301397744721453400483384977398446725869884343179080861647837215656463589656764329883578083070776761308710600061900868164046398521668782036235474777652198724300049233407211626316441552418342351761544483675042869677388489666443986445120497117443786555216270698226444425173996991179870798124329399367896339954699983145911650723949989219797262390620896845716684556659650100684574998523316480608961686449500764288189386754965468061730559314876586788805965751539008588819426998663661428581332014247824791554024461819931898701984536760763260318879742588796259120995953459417501609103700570064909957453568058288904741255896841636374064740972433187150838879735441730940153080347302432206739008661107795007420064859004480008766423288453208630409101744872466455626141270261563317117002627865964059890094874045010854121048747345906943258663992181141960873664283912963149098789791829005476956906426774798587172393917039643687016274262540950270654132048480526648823075081960377693288210721778644736712967555939729473078436228188171766064895088873334044820785101356967852670345954826762508634636564569086139330260673866379799751778244594843510055308328309978349853761091050817050770320161806813992040112070657866302285259384301950827054878452256881928929037460009339698688313183546090698113425341425481490331208402206025143377763781020148948823716659836029632636053823809829453470091926085175977972117256480783779199290094762017262866502839399092871480319746023776628330558047062239071791699090349059057689377835506014999305291301876329791327609089895450879160065682996435890094560046760925869170849825659907410031438595505094425809875324127342814103929407881444008494163072390069569583249706792808426163620307995591511155271739529309902715127014078387668844626250710661198436879592351035237584322406306407254598319120982886278861820581385608329531552436555877677673915778531978624904374649395801125550379848358957435755253595907452715889332840923838549706720195697381426979625042157457247957070680251988379979476812952767727152194247089098288297094604680519789853005801014260792237168249278419372970701231740893063164394616205088545926033396394571065334554663646092510097549972700934894660714655341178772569400242296334669260451379664471558128929278705683303475410712380557363209300520756274259411557191767466138999869824306540785535938002833572842595424053402654228146124152438829704045350042837148538963003917277301757167913157889009700473225914316381087071683345227742202001398707871592682850236325939322540130806982088959783506309027965817587518130907317184932072479054932016293445149894773033578782825163733113487605480144378147036080107441357200971857138302277746641796511209560704384708611808732490492508181565464077247059109896326851347138921264871621558041056485413160808565415506454314648291997312004574422114492320450799089871621276889491949754045849129967978329938677644278927180413381148941079047748366531930700217916430323426785233687934753280324845301610116135311249580061135946172262388154779610567253800696333631930912912650320677685265337057493751296743457961799738171345410174760872427605952117966304934121666107316033056413132448830230194717417373673996009932789404877731655064206171551227653756574262622221504071122891598776632648883177532099136945870139645279876863195692200062301795142490119714389395776095938313139398210509748600227296581763522240356771060274397925006872784421566389523539294752928925330240257046265638540779128794059299940544284280744306354753593321457482543200266786484674879045691026182301515492005144327882395937685397402860054237951068815666629239852005309243011654739959320042192229403893629841545220772719838253834497871831796485629199182238692797196429600349819565102895385265029248220957765655501952554014745567377024640450949140777208631257511864840470015500036666041104010381821633178799880531512579310947308105524667898794984806204593550819983275810934393336076881348860155811274050697472225286266466757584287640901963719950744851988789342101844461421760906389197204594375274369189973979326850561985011613443567969175537584027042412351124536188626822259064038569524283662113168202115133470431953280204989096362021486224109855311475640340734014575692844479636113936785795959927755187022881679174376834581796143007096938547719285798284480969507522899087474446748224778681472604923990272989341857666580570964471377729860167441056009419248710733711032797278193690863656564317935966422423324949074397323600392598218499113022948144744454739315737165490963200176670933756500645109163768517962225899834554435979603175737977019466110949069689966109465604826283542621121462360953005602868405692456535813870438818081615059774287089525887133436858361552993800955508976760067057279778414126690696550559278271357640543628605691738649201805071848955704805867425056318005499093791808482899019937442945128512462568887879115026806502381716168451877553933190289747728480014382409225542632087069299868500916954066805384443663402482953594255862069260107051127020016259497650007226901512147044025529775918736658337877374915434962394237366416301602861082135189403775983279032625587020347625696140106526438683520235502247734623134974787005765483471217118117481568742944715673480237904702960200084654665029293703055750562462460135446677637939055119406948273710043818251387930496238205993384364160139635604743842189310756649527899217745228571720407794264588397928855177129962141884018640997609865130660778972441140154790366277329363734431451607045930615676169318310977331529035887650549962353834028865035727554163951159117684261900313777106066384446861806839507947202632273683613304495099795728594885158107344282796841223993071767556182802871819919676028803898291965051368546087608229889106630309810425133484640614872799161037415986966313016050103555182890742681127797187378054807883572624512466150598930382275151325383626958075081314971708106263489471292274442263306793315932784067627904826611598504166557732832150735141914969179597550224586162124444750694069729425000970584565454719001250373720395659995510331482565253681074622393221738990163793427340417012575173797149831507360674679372318318138569236261856397238098083105593515532820885122227579586852870595840373368208857157494947456287366262689881298790989058974339374245882627144030100044839880270721055795113386185822113068408915793055187464162451471545591347750008788417192501491687606920612815204211690796377038999813888268127443508542496909616988310486697720199576117218024425316952422417575270719609423854957029234705120235206026152826043404584428074316212261510177929538069839661066191221247056832401537839289564399310302200962578010428694237152627954735121532971465199133337865663932497212557026141719317247457646386324105035869986742965712001102733936810815308266380408426846518828659737831595187782162608113500007310770017594193343628006643912942668427165914272288159655145028310798497317845779505747983617926771840063978225539006994443610330316350347883847269577881036473321841498651330728560400148620285108491406651666814258755475332153250925428130099407996677912825390268796752292255893995443581914052892676438653139262872024372734227584755268575230652101572149105388032719402730005857719729211375859219091839551359945081032276354335663762610188314471729637913039331336439616211240082220603054592425026083824261883877067154484500904592186646091832294231616529342831343595625667320572188510055659391336187134511073648003282201955758201416993732418638143782176716213043652357880032954307764802084782909646745112563563609100698360772278019969542783872425765471809926573730595488073381493124189807124605045161043960779837594279220683732126537983374529560940140932890349187110553486589657078063226308220753862898265002276237817987715162263976354366550650102523061312840757174514996805710343781729451103708169559731055112253805126054509063262374877094945548602411419251729933126382448882886595929773378311232186293932738720761159738315077754086315799826861028215139374696322397468348156710820546094758552694223006146616929009159541227977625910722240827964406747332248243136603765239450626588743939070742384654668585387456521968140373082260101002845594849748864552253201122767047526424575817384136504507693314656775415608950099979298538812374134482970742742041068798194128898803957845678532729404813858179514566282225118748437484411253602176098647409143568279259854821193276413704589387371661890876975265175921203496916456568691731944952041996546272128547120344404740809477067721998647595694310626290318915549503056692373100004211237987373784435377743474609725189373798428004115676247985807430918147663564029345304422133371068556258034964504583535505797033068514286842264218381388339415666493550710759521681289551654082254288160505373537996874249534617790002810512211245888188735847158341702175465979450860757374790158601671693737609633070786151511027120138712354749801666620486069388000304177445834314232954835866480570247131202600173126021424452828633035287529825348286162055456972312509957170797071073552981851591776656788391999560715452434757516554531247306560250777528521099644513809495884846394897820008058778854633410520593465822310943271568538082353814215505514098661190711049689808345402881842934792827647908890596660864118847544035395840034763653741334803516969060144477443499788727738833252355568826094426895894045180283895445193635258286284314362501267175248661078519085071063915783003977117039950574446634498511313570608930214121316814963899219628386491391589557138836312165730186467256914261506777107414536179055624021378911577183356103142299039277938746065704924376658510652726962859935117762717103166596361166463741236830982551631295724782726306220416206601772593073087447799264477086416226586700237547307476484276605095908827607411036396587960498654339858252368304226672413409050593251803008523188288051419292340255802917781767719120846541921746704978454064357568192401389946580310575185349031689963790476051478374390560990487763164001117927585068957887590265833115096004290453587659846381413916612631087109840112415256504527133945405346288116761687060407878468610191614707718150223202689964780493587643873903456633302784512456130238239755531133112383082825816237369620698882443646234720569839524435036325852174081538474222006262594567458504855428732284438601843834194843069333458101341055746638410141048464134544934003134940913076161470211678512336340017608956469139840102905862361605404190992565447293375553983371545075110921143017414868875687538392091935615073221035994980571583498335456853197380644086064108921757467249400657074024686725674378565658570682047614797616947992558436137001923754566530774827681495663014243485303768052035012289314649585992651457095694276708265492352145707321332825495429058181022614766591239954653505756665905489060077047280483086640861275701460125508657974219689905650670950282107455384028785451679940540675772371664022676414212209135508307470204817923612393973592117535208314666458310920817156041359275309038834156119164801217587376880786349402026187337646076635005065182347905554105077580374274607792061413532435366807941862544462912679330800856566820432763664793478244956338364661770028901087241781858236955718064255482286103276625396195607129231925375770474654941161201024302923474367160499122521167838635942960447473200452534197842993608822171633224878633749344383964310472942560710549233802351829221803063239670232068271206197088867459149436852877215522957045253887125828807071692472963485236057444866475558278309166891645174683108227735374700767688353716120510785242883548109015661528055820883816939129138491345821692636433122459665034035618493362586304854588938421962210515408770223198921833481929416618292262246081312881856766521599135527275693520215772696373612001462856727332334949919814850909103164037374403402033562553436028960813671798448708912992714344825591605688708629467221797910065189748182200671262789715393387004347780031290328003538984902099195268317449617814586705832039811271682172364503653028445529811300633513766279971840971309947351569357360709197117817780308999354335252150133378590650953496052263568785386675344892825999542204038310774805438610022202481322544483510340323406488322802064079360551140118413734742301948638600757705491792154356342444009581092294126866902629210110161158966981878119431848414566434017588460522852678570071508277407362630543562678600510483528680370678612454014231253599319980716522470181524225309865804447250250209949250939080477532075721669785869923901586805838030588264792174650376417153903075022923137134916957877554597916791220211830612613376224308312070381354483667666672017626246483601691669490700853199558516352179934897533473521463721322580305990538608952781855149458172576646298445031306322352144468784987062655737403334791186233793636656371056038777462729544650582756697475006263808953797975067678083997336647991025519827227247169316115579306354986832596069465782869278847340298791123380126707602581097736221052957824493531624558652103744369269827219738908223803205477771694654021059189537815263661085776959452102998351751214262829661334074351912191449502004409543273607142867204234709817657472435251396114027457181822164252082320688963109952985234235893779143947121423217678572277862507701021402477412687185682373729224757472067435312331445022684782941094705060368648159971518661147332463633056527351683328257094396287568835900979797096661803712849785858993850691599864242770205191031294423092807663083410977816969371528262684936024133003406585680521387192290782932296101309510584052296394434012031126409496433799731526351392285413246605652420710240524101910205540288694760345767242739468275633160548150153458571593947682472333922478966603164663039887630397612788256856032095153420643545632289958163788721430040299507818338932219670919663517674841374970712661981856597598098564703496349231890967674271770574227051097854426985727481608658628102374246499693627349101750956617817943480774138936391057554858448709097931415936909868517979297890984778276708478838606462203685294961458977854883115107951842986786854021600820799677991669246829989567313097751306671342479187185101222315648068649658696280826847060580085421072036532022860652789529661426291713070468029577610178058590579837736575071384585041345145386798473996244064245168835936757646654228819180114888220005706542202789697014291490778447496267313879254706241425002362489815195863260613371183226201458173036889568572530014484675688726570731202475548028586720198485625543489582874032635830418372441370528576053062910906627959226000005285945001868545320553323838291805066233212539109141346032632087318493403550763331197896037168318414842920171754292904368395964646468668461904676839108363138282048706003777991650857666684365496840731123935918922684985157359003182235520758984652866732716854183923861210855145070272699382609696908552819885316966366117285752546595146483371089665583111242967342810930875098254555085001178963662299815859528451422835996647210219723014040213246399773605609652488549120563715961552747418237364401348972390114977778859084795619822541283433461359521509990361700973441914157918128547126775966197884075230209714250906480654355785295402668484904689728846109446297545098027645142866753625055007588214825614242330521894146878288656064849432385338234338049926062410082458548387922621918018440142692427954487042454891050064718410951145174115954230897353828159332844755830390927740092571191275798764915939104624448050788709089281396676620520733337687738927618214746275955895905645060089209168057676347357456994554313190069275528065096025268962806766964243722303850659672949696210463295520457566343598292824931309186616076665192250047953123911823578158950482195359907617513115113443025669417161365723962867735199220366052436076027935862398798827434729662747981773567174282496128510507523993254171243588808265113883997500361943592995851515490369329712613874359114490096173243340432283565399230305988973658601192423431730593599435470054657443403752389632184173226895847452551826784488637993034851578172056073263453623032029286065983543878358749913951955399834570728571480358459855302564470178443083456569067790697817367613961903515635423482376442082898688879784991959767203589853874628248290345099921845273228786978033205845297746622634005696816536182985172327276642831880827673096779879311045888099105400703470649800855160117846808248281015333344505164161411988548412327847094300793672933428216112782048990531138078790026667244524212534558784960922055884044264747013114103413278430984723805438133950989952125659653954613465494556349668975638670727735501236217852880415937322816667693003676553526585771601664971942330869272874053253361761788386370624953535759718318670596794157872643489975364707258499949089298725224336849534924937553883490360978658250785998479481760340646187027447801826363009254410273668269993444425160588534125632858226454297604166417323860385301808258176505962481196778765386174292273259743802016751720726524549508657985077377776338273967579864609765227277307996567401110712683619782619959343810152626772618714771527342140986726587779463080107552493323316425957484012777818362923422166057015019255704051886803792291443163026102186125063589859099025943480625120316966701700926422794989375669333756101096271069871452447841684323512281205944514476024993635232220396052408853724742018413014835873219909236191557197924990260634833437221231422694133600060665347648299183652937274323540467533153487295219808825651088421123948985376938524985455579370465101944513160103746640248038244328222154450462698506364514179927495574464013616456402925156208612176816250823108333404500023728331182866290567867265318462434833657898530488751564601022229065445413908797552797755075839566693092027627440915114063718501400787119546589718020396609537264885550125912456829303316334189850795664726443233513228246999555781311573493430071631418769968154812166951307526220573792203742628953439224593536154198654026412170048918060873425567756249548801732546662189826706972689256516831029582992787317364372355995858532571767155519804754612528893034863843875125959188959848304754378790600836128509304900225167473282705180659121360566074767462911541794492379527837753659379403258581097987283923482151572704810095560087681348139500220178101102161198530148548762465735136837287726610633506555217593474727238859726560150627828307432785707692158240954844486327040945767655136624447767207567341011722200175211957677926450085301615191201077333077246102442124026429784261575231935603291620695288244021808855984716709554945538307604159300170227783669240663693819741354363370935198227498752322530986811873297934292001658044119585513961178889106288891677862103396121631388176316837409913700660483587858604780759436418205980231557249128430629964955749697033103659360388766097875752185429309044465025604756152725600784152721466792315426208577446243022430053020435779249472452295020977660130010218876637753496838083763539750331641851896439182076861471879209640143030378468624322364334343282065959711639121673676956842563357503302165444878987720549770750171470866045639650173196161994078677717544095628154860486349471257913161957296923524139757796839819339602529017938678968337837415157315796760055108791551380660771918504548961760717755254820378192134426411723333444785554808883359017177570719842956227405162261379865156123350301018553690126596774551319752189473846966886126601552831104974091218565045504773797060378907036944078634188833290368318417731678431617349598153319197792516636106101224983500547225881351600780672500544155924078071701693545755075887665488432183764400051281609821548649348115134954805858479299243276661767690577214902083858036956752012594880575605682436563898128656320219710172386202343163612350844383120126676633053103246190129901333266788281578413545049362812288228018472684767119326896791526643979992213993304129234282855978004736202543010217051634700063191413451830670845001382571698680269287311226998452049862518301307914710233678395823324542210745757545642088984315488677086545828279330722999281111405884946545504010055569444798381956051555681120854548394309115584259982638101125218765128636750230990441889178330983726248273222430982533992176854690204012021757748380768830748543202920932995581604035072634311629608301884811541888291136160850082513117921176171763568829225387376080365914157874391694790035005555733388304516418682188774585713239408052521920989777041078861951338045930057134163988535875484757756425796116631868194436056841907033258019116437026843685586668381071835620022275805765148990523784219205508955565090167575757957589720748298422862197961309407860788376286635898142291327715610241195502767491373532945418737887390869550030425629742470833161980002517383158060427224574669878368527620138744493730245016628929986874199448228862294909400659894588017037698466698130330470612019972926324798874918794555476044523631007591576354717562139975744221859359603240683693504811960773830749211401773075222295765044767392709082991217953017773120396253298016315344606603555503152708796926209754352261995755281978969771021394382035814361436260392059962903905995878776133716605120141332581252282954270122648902471010539003026863830279154728315046923999506679847050173642651419204983836962205899627862221562530005497780152388019788076799664151185812688017593391178734116161191805599951476090562582425205295259443867495096354149181749129634024283728978692515570011616353502706347033830763596860054824287836517462969532808955402322324988824941000499845730814274111884521346450522160160616910284727652108437523569484798108947569429792900110536956091362657337953255968222700410140556512255521802867413581092202785001381269180942057592910660794500921533852475669714011600582794865970243776652194993345024518474111416187259405376396667169203816721958952950600777000808283004450239428481481151031665014716777957814403933849719004887219469193495168514980679887116016222098860180617728858074753079874714780953079663331650606791169293050945909312909933869428157377342013496224690940851283784432493712449789298034682902224170664146835222929356364390876742480500920562443304733296702071154304797681706224408214178682107978981587331541615471946461351677720513126086645561901731969797199498846796479535061965003766079426156784308403187102750962639280837842308436726071979578459140867331639496886784466711261648527639021273261872182022399937366548703633311595671321652986686256421105724560495469724448019085105702859536995011624957732482702124469377353014925040648436829720005643559604190230118427369774532789562926950076797131752356309151077054690603194739800048427444792598394239239978489441252849986055866822616516060018630116642822435099553498809084923695519606016902186361407945203984433131665481106455495578538483385482479954981865756147639347052908154373115321169930662679256669051963511971314661941657953301845699395729482849791275849617178263728222796919228707501808369596866612743093049352944678209832670396888872022597615762434214166595961069465339484594730484770535846379063809757169758758007501072689610622672424862824545956688119852644081457572471116129544386723506297363827896321269594255667878614005256057613243376709070142250752374979914733008321747858666280883893937819332613477887713328923687391209716068790658132027082406926216448433300993930042919664677260775974828986721337304579316641517038981340467508893126108959003826130858676224395886379057712352146022291855992445556746938443131285274033777106481863016719509748794069716006372421113299847451083883568060696691402675966445801331462418581498172084706560284682223065249263738838841823242754931103657399975331656113323464116672643901151286579522605004768823122613806286096892975241563619101263426450485349073910947563837183285021779166900856130994108380630823183642117469540452686126150465591573141329463375323943485403558036008491163514734754615747444234789793227536249164021305847219721071199986018633540983878420249588991892072922735554777015388315194214132473039373330372695011440586128198932809661553564578527851066222301638460009142157922610098398707524843934834860623086556403876476235143078534379722606036759398299594954785072624254742628086922880390932669139732744202906534420108618241798614181645966998976541683520296896948753869448220379494383354351586781396061667114955234004531065905485265469617058645802985175795019536640259632193937158034314816764205015142839288014847465389678681071198288155908281555818178841752053159708346807750910814924702909722150366589019784673412150399674872703593135406635603368538624564207205945619590987624547374893574058965404490770282659893608206720539970734994890911839612486878465321378365503075964612067105088710211500570800779476251283926563143512984818460697576519144315769583747993308554593114476344410334656479008596842454184985988783657492181053973492793025444403278987957917796796335130437263718914770314744846752693055480715699166795843450112937706409229888034883502838016295736868094630093041172946736143844361854237676986391524517417680754851323731390703158193232521733292906675064466760187231772621400980134038026160391713563431891363832731198689252276713422233758863531988436956002270658102689565224209298840793365923770683746273665787000151356619669058628259733619413876240470244070750692322131044195103210598381623398740045937533949322186245394467330942442802413458838021922948195011675808560673599212115412771222223146225314096111637684182070364020128294218680968774724955988994582177615536576327412420685078494610711168255965605568527188109507771475148027346103917030759039784941622784603796102302095950913282608181370238360053348543942239552301396988833933783573489471199639388658106740893864200520642685313436321099168279778493005247271616488239888515261935760673283298984196087004279303445514751521939580395918771917539531768278715337223548677475181512286869911132222378763775115596694420542508561515363831739421172193885957504063122056160177797569797374716528074707026028717203514117736042794853619524123938991650019089039090329458239660351515169918308176243091718110741966736720754709592974724831559092480243973871678692074289183331208107736276040810446782791453026791456204123839601444126826571182616392574689507282001357995076546387058612914383397638378028145593352755347700274127707887414600057709974153786283337936546754521384134858339970047917264381914421393951790777352449782266194618985953028752919493531366775366095055498757844996507255516270199805631543115322291378359526546328549159939726561143649621273906909795093379712251417876958308830813730725385705745541017752535386861709821430859785785903447482671710261095291728116994374165809208343320370002772348269135772312558562216499838817949176511841986077555315774158796478932396901509336500854200804140772998439541970781593000417756544588196458192370535570787337159555470666192087154382154809409286200844493013562067462878591952660633397296323712994125698590667108412992297288717210649206978257335210159676091144907935017759889423522325674414462698143281895769342314208742296281174790371488114661803946429973991593155490731734149108534842153939905896050808581681383355755090009108503946281198058125692058996378467095496226527261258279788097765598010042621807813942719109911034418838944889125278294587691559543382792641949836666611061987766590442301692176348989793044384834035178204731188258160796989817996938939286601492741330727657852225264976529533452413729665143637234527964456807226552234992048906227862731306685115967513696312211711712510081643520207603382271310131912094128769401874147906040059897071271739131102628667280033375627169477654709183577633595930058003021605695918749834629015444397962695200424022505285591499873038358557302345423835664986528414505293845016857929385233962021189051226949165737756075663387218102501000125773571117685432670144240428619407494568218957949800575768760113485576197473285089403979680262328157825667402242548070578171355385976150077874483117165983813100893148205519185291301045280716417963846048093100048051305835802280755411386929084016354051965355917801287144959604130576577626357861894361788175704201321195213098790439895242818938934382637440114264763388256404503650053616440271529554014194054411986398973378277385287759358570974922362544805335304391914273641173367408111643745995000182995092785686944785482163856894901871218235087817295776231328482371927349394672143520683175623500923953602940433895482234969564887170460470428682574267087216503775535475046651509302421004037561991454712915497381575429499129336895673515603857004654741084106795145572544874709359912879135325627456385434599480960194982560633400943056672883765366126139503960067424829492196090877385983782562810349325150027168027910781323284510291240841485539435943404821169975752397921140185086191287129157702200997509985462355899764909402866001580651903632928242556340725085957712947823868990874968111178809010883227076040075337548686230920610117099167815903770843107556082529938843469502728887852139367858551108726903773845947452381424493765527069944277540132788927350255877424383589226402796589092800822084039184046430277791819199637855933616710299848651160998364799658269285565931356786955813153659044060335367509108160561458774301300273887772206994594978278525802590046941884659076718213245534761328647614778831925079912247549908772200518799308695285370412608260899514664807065232539565140079536723425935142794781668274052620915782261834508093864934698248838391329864688768811873808080575637957200541843659128564727384534333522155110206230571781828716777515250663030201042164716402885131128498350198438366714393431736303958442677432458436807544430463798715642813236464021453398566024842024275574062840174252293392174884826919564366746283887322795150997061953812200984186052323868967648796703232838075830925853606134229014942238480823619122205038322644133903215237046806582619616043074798156767156939070415163891342429603275957542575461366330783872476767549947674790943340531941070856410504236664163352489535911670803454264498277105297346979007116850261991763185838605023010955857257878430356893560064577731290539524248345162370499017816610898825440388007573680217993532143261443775499047695475232911683752054206251530132412831499820134517043532105692221020845253499442889869082507256877689752126383497619575737279797284019944116049143383041861567763034388925339404086448599749781789855432074832810440195022592742931381612471943136154653355001279372473780472467958354558472840733947295042556764875543266311088777058254123485520986794452702837630960034139682052078489574768400835399705175494361597315199638110143388301409075549157572987510576709787520958940240713859408890213476215864273275068252075699968147388690368613597409305625182472136203332771129405415152670917674585232035164504282270224169298374369771251315761561284283057943380231916381457658133630300801865802565836266983907694701334968651217704035744223403004730768585280595563263193391294378936794840682178850824325829239423673116556653396888769468890326042335961383992573682042526159390932882306365439920726692890109076851730578292957576737354982446345208347150689858524018903803435775435350126771947574653414618865250211326218999926266271929168667561188056847130580107781499859024570938155042795963724539543435617456782172079778877969258240667487725007065526083456871562664635508672781479806538377361286940966041670864804468515690453224024432678741778278898953371491454679827745415396090747756009407536994315430195419253742813234247792288578118958355803618753167468819583271932633448778371808442972460196863449132492277625255802041685804442480245733177125190742318542492364611015106909827682298538075199831119594140519926662250897553793189805934912340232041818682614142341390533152261618805667639138282363326704434807855569319698203662115712275104456551202575152680642676813496373296309162613995762153120064946780777818496549004203572530728348383490275992261804826544844185911980146923259287028465141140261123717605406699435016926749527696474056192925678416545713927049816940252207595163530954043334923976490387237619813049480744175430657487862233139571095803807185896887901155010368017193964483526119808245310309907472454146369911894354426821319825083285574157107915791061176770354024110738079026463197310318540166784829574353419808774613731767888744618770325770094961663654364016419845107273374073896836735882519529076682842958486422626409650932438560957608839961290952179172543609733448684117695420309583275973719335286663326248584629482072911152551694770326935338783538508699582130404510922165249238084276893313136402083568135957998369285595168613611589420475055219903413777185861609614227933728458846085713643065599398955939146982976633986758153973461720581096559355148027514115180125025580535141767508489592587437262385580588755456546826626285997588447285239377584140673371783857759180992787363649468522527205031663733297654704162849577083665199430016537729614598706650408355847058011694041771595333817238531919084672111123783363848427849460788052622382325902415963346921467819029383067570828346832034312397435653462602794584308208937842855725344938414423573488829860974594907735505541508599934411866258635654650524443345548301038099436677639572981317169231934699212228295435606660889186344101212209445751171584409717020378650916793975974955306599980966588819330471455256309558864256608823988808883969389792633919144073576018750888306911384207449268672423206775496564653683648277506929704253058694354729367204307363247909594525633857783910030394380347075238268461929756304223713447234273226435012673030122450515819481144751361603063955975779726502108180907766022688673628578104914784775568561425786263124496919683553400641366885357783130232365186528939042419770898248363881457635028657512672871497745768176954363152374007234259768205785110858632294591861562983637486603975051873394923479008173537860702844054743440732149533324137820900824653053655352544838473805244815071035116579540519458140216888022870412371028507684977836223062705142431525172954470629266788394297065030579656883779385126837967515436977896377227769965122386633522368812807661666432094507905638491386126284598327665812178283699167271347918171810668793777600987205017401919922466539600482353079533340276435631383534378378085043084184279666503462885113618222952216805539960648100437869015563041076132129539263572675131629236438054532265343159849674081637801721379756373715432297091971528701702147695869253759068874707015219518423404143378833038904593108552851899564870052358677166167735743228592204512889956439956190036728538675211895711866050400757778255732779955824661739519400068227148811722909099908515957646444176436675866052280070430916422014276209051323769581861060009992984868592183996614336249379222574153190872028360586710223548477863702420286004750231804323202246923000887324110866877009172228182238743375834529111519125035834067052100748411397153484265093870914111016684796218174790048258499045798541395615310617279216290465977398400545811000621565432625498980419373809059237276133282443628378004905696124375153912638580580797344738697787315520108030648741767926531590522341741601684487683019765361360901718482085678034896721141690048072914572811014521141023364553878089046523369170852067009118175436078389048684395605553658007847614110813394574575676923566197926940910868861305367094379444960720970999196920924750554796411024068073021338929771254930823865526322319348452475802126258378315840355802829018768799664749144608887232796762401784195859930674377399125271503659596637374835955849069782742630963173243849297138745918374306584531762687043196691803068102839268707002952886010338102197189104225270842258437726473641787638246503737713202141518319499642582852872933874211557459502425576053994137191545796735791864728035452124250320535828430219029783464199729492130610587952211667028793539178223009566267827442828294420691588640664501737879748696547402790495409260079510709694872519203286988861678639640704510882917791188821629207921307372933525155648088980207480814006216448348931723104666148379838791768400483532870812800956388763623499762694057065258930069235472374152867098229258339234366422468222110302092374605004793034300870465250590411430253848849210589081242601579363537681063607358386615835922720889996755456114291561094637766990844747558368551810834372301192478936225440627436844652999758666054936892884428220226591558115179131267981051117115455971328279048112411952139310258480662545487422116272678723954492083253664475524336970853549946883884542891274643148539023503757668683885054299432204585378173150356714583074273389482143069687559741653503138805216595458380292666229075989678481406463921063597482922205511249379911974829416076103511574194835021022497545525250387482111156083016670317036898369673204414470873777875301718323602700282620061668461826971441893070821094027045210019091494669668446638547663297864254107379572728846647041445182046297961897051358237859463415620349427589430362706302363517049978306492159628480013495231199907002393679690263223695310344478549354357372018346960067611809267431081481414806010933442475089233996444896881481352571060001530758050930854627573826472563233026002857378290798248956428203791193484422649135796713803796333003289351874643938094478336168939588879463275448308173604225774690874025350867523821424956974106491969554022109679868449776185979683847607190053911518390922819793486654975951200903185184217387449479565715796776946936145474362387958805349059998404137180689461440361569766207997683940054929836907538710333388299413168912784704331713321109951993433282686549059665906263824894898178067135449282195349621928047855005893916422872852190788919102264633263368828635493379066997667241029455623779612126801002285344108066030797521289043711876343993462057719508772302172299504942051328086922712744704224574174420435446256123272485456845512956711441527514793009078454227269549892398307359571493360822187005447346410689861097272913857189549745174560972371113249385052884063669074852566238518975578137557050379912726040910773048386679613829345441662339821144630392102781980007211999242845341768437796099750113426097272403276805374974209463408099990538167611242679602965342021078790333215898316895870336446539727884313398089024378531428955998371494789224221359013322360513302480967415627942912633384545432789432237104834212794872640777273983006569751089622958554366918703685000994105643643166927476090068200728987830278615829674668151583768587814194374464268195961561394661215461966785702456718336576747925196371109275668466081694179289462799742300768303678308698765479368310132561509454255450385102559322431280905953037769985166812920374885054278235936268386935059673619171094971632143056491013480417087538867782738830150799555063527876964445945061507183104785501316703809426359945699520721797310223822331533875637228953720253407646688518294792939986644059602829579436165928655074027229127542856043151053432345507391146405798535911245917311533024413349668244613842431976232113539012180603122165541463369461996699158993664635415265479554881955528695059698409185196090965497715930537844687844493770204883748419221425308738146369533025654605269504199489027073499306640237165994125900224856649383130595084423794575509668444460424144139400450942327434218598863855640686876967841448346094199350933828480077616688333218272143667680035424596519053020529941990476332935176804893253621159396954201739711135326001551743924575449721003003832451621913188127435139476263538699827955914996342931171462070849485137386072587132575325634948218976707651216680883259521577060650196172810541692704508835812238892394409537623857137963125435709536648347159565177475280363075063619499786549836488444227551232102873302154978150367209894465475449698281752237926272426898814933741684586868123689769868048443785514051135083048301061643920430565217700834375233262568836566549412499049666391344595300151176141373657536486938643310967927167055945525649526907075844887816787905204146587075328720415671680116955945135342950011423728981380558320921950268835668759593810726980062673305508109460426388019974775822987608450756350055861608891804046653846842530732730931035831775651991010857480848139756331971752370529758043852260697393663948814589039012832815581020465872744834763180921243170212160787097207444127219693281522934826605960344542161027638522209137030459964521585518230808461114446048455396338214346034831880861789910486932408761154955864740330165014177338397230177608879889687706132365737290005344511811255760403226942062949512934384765630764486680175876324159340962037609996944725495127562210631157821602254252241377983543438030309502136318446385596162316605096502311440001835246226359245049770444117475569274301246534873655436126286868982808287244600305161419379500724442062177305141965425674385498940410368771221835501072380201287689470978074748048945165792541473053040539999145454644852664414463800387715310693144259555095258691420689821065321765092641502173022701895837011129445360186189088753911515157291168165637149160050408085032129157572041192093249433408281677593267442457702238435348648496830175008901326003448338403988653379630006965115788647898072928711151108424997547196858386713093722623638679432327082451737123090673442195469791267807127003636743674876490602548045167831800188274145053798346458781118718541959556415476562905706499969022583625583722846286562186474463415474622916717255405810260041447440153323378406506196946880444537875054109712980109170535668923123754244918361290686107874379645500709304435233530228267072808930948922429616838394644097434879028608642239899858259791782139045302322573651615861021314028902401796062504600572805108726350634714866631463704099763369288081072232287782782581504855968606110840980747631204071185083659550096006220217210464434566179487204181304461006475193690996888628498941293522009495215119945429737300302169508870574671686905437501992594993992965334361493235796112534703653041437159350654962149540654863897159768743789101950176370985328948066232068399070444731547764955341148214774525785133105214060532144937782206330031539888435125173472944899493358900863151763183497313751859849365332392443613233249257201034768572035409805653182492754575956504923668367994350146736687957198144653840881732572709732477876390161448270321322434379017721832769570484277411169946438890702877320260458689981836495898414406305690412998162455359759632683249415910533257793450080698516238819145870595964685396137286778703317045471123724890095995379130600146089576028055616980333923246580830895611787189187213164433652522392719171469419505073332481647292259228446331263990811950363285002720619255116447676627935092967891196130392517520516540380745483926827040097142491659758144533767244883736264191842391379337715836815830715892372189483285401258936004520111826434741017931609548612947981136279847993237383884073890732834156913902529269763544679761596772504759586415921765206738690469922560545999658341332569247588231706106805589077775985056231897933569996973003179463710391628143301108054552653627255830611640779449018616271663932509433224199878676363941696304362565825154901107532428426739367804566936792813795671209521991750514133589848385002118672216079932260014029261026346334798721602911979695025100195184569547687890827734015099878844995926892369435568057266256983075600531123318626436565357909349005763526106876662657566662198235061673249369311643834718880389751309631686645819310256626488385638369596771516071155428788878859669193813627548091289288295012516894030572567228681862950103473552442940995996881342202112600944968420188318529584691811196786808625625240155494673481597539686033847134603097325380647507807606784235781475566076889897396060680446602786548770720935513216805308200508320290625887461810970099187405811230101427541814574725550931269077693871743163769734597058112844261865256586491383505779974348374888416012021628509711405819202155130538630738487503640858819493358690502897101296700946369690750813617898346769941817733889121718283551965993777454322546820888222783885194816156895248205189301070054829263691768088437897674416913085948342410257729343441038392975635186707916034122127198961979766001284587308948778676240426966460402580622653441563114326458662280425929815944441110311863354730696208109180306588066685221228951519656252548223809130240692227164221187260939692526310247244496877339358038792500505253315981860868026584819447584475067735590910068064969113335017841295668059616685427321855254602315639639479401760113525084141762446428936392903770412919311870573859761094213331023047990419651676245461733180757366612498663750620388115423475273469998089964772622169641632579680789165101456043744866673725434629082593870367003420951090174454253038330724924427380770789641225500920388226145335938913020672861838027491708480323071648151240929524197515978529096490385163366974203931726889829377954803342432875660087217270488919272125281188254302244006576046777165277974594692343520939020017353107899371638125853071297822310072895659840555270217255696122308353047111256470852679531935689165251566580707621537984256380967231518738317590945304714684328169444203584775528246258666275895366909691173062934186246428255224114235909093792181028197495294697420430127507856642137817029843277894056088726071941422432076395795255324816631590824107447619335930620703317308373381831230983856156235527696453598290760477176870429557461277484217156018757595177864146149957697323151746510828491573732116521597738295642933133773932593407919984222751736939710870652904686751665982366475387247638172918995592305988493369949402774642972607065187061738550193053733808193789866111275671947297720586854109509623444204578910404626895343879493636221105516913544989221741706881801526838741437838690670733494931928961676090112090970767752939951267549544188819131912094641367409511786390468172200359576844221931197271009847344884859624839057617035025978818662526966312745920438812523527268675280232864352152279059039572928701977102876113028146462698794977298063017512124584953303554005539692029910021303309822178353432804945641525129642746964571538218704300528401232360351848424158451243741569293477545424595982786894196306807305835041726742064555610259742886750266435293460336579543197850808966597950190334355162216999818864608733587493987929264164302773424024142863635875121066611397326374444532842149917504944950276623831727609767310490581394202802893085222997115005151626366814007454475870633778944992970460248253491009807809396355061034534248036535066282145340557224356381833201172086357948908718999107335199030883557837355743598134097910469295488622935340358654101174227387129732457967413479844979845445905669969069133774412935025311401383910592255492417534630367352625744976621224259812495749232840950447654953882782478795600292011821951217026213082693336828428941344906837892931910655985301936959123369197975940841328383546389988077196217202630709537585377993642885935440338661952376222284366441027173624542920155789893261149900640568325642037931361260000318033848825149362496315608547586728041540918334435703268005188971496676381098169847285508372547959334621702282371617053227936549353400419061435904244130072048939383725994903642310127857867567043609083099578006705862380422816374828161459012875055151298995985282586873750331103949132009258721803414081476243751117381946547895280215141274097689881146679462888706624652215651681345194724202938392642789211810391296234722906598414999569851593374560215022598239064173730385591456015097965166974799457159981265929312125072509437964595327556372369571231394303801076838615397839201909260886230256057825805409828418260637039924771378213794665757882780772275457052705029341557727728495698105786691780333698718838155309481687768412079137479011049815268921415802129225583387872649265966215340228429453185815827446881211251241694667201975070863382681574367058856595659103356756574634613151519632321915522374466629045511473976244559840393660998034942224621747222999817503686890501846556650584693195104042494155872833101294119848922904764698225040471145976586482261768797850544315335395156933009399362541189786400153006150277346337007171025765159310901263777685100655522477998441984939716032788663157015573709587307541867830598000099179780076754363725810317333736915471513047163687661743967622418885607375592435326192936005586981833071992978666549104729199107440873784167925527281408670238101217320792950708665829236658099922658902336325427833458912083373324328895857664866390988511306617681915155557818187340656026490835526519877959147637327169892989175614643974583239649294907764760186639180776520506126862996147048533034888093808806745401564698087950676333841906694394125045119057064197688486955293907449308122952279858845445564125099755650888139789806960303611331462582370202748442245990085877255027191164516364871727501238617276076074342113134744040796934398860104887509241405227295184674914280503455195880124291567693458793332121359647968582389685134851727387856486682897209627041248836276643719047151533146021622699921719134261565023719973257730274035705620355270154934685469950713850124180485230766049912948949956086516110496186101521601837399472623930804771247540573761748142213009088347149928106908548265846700763706143493154469146869550295701173103956108396166705017727411479895589164870157655872245062397528601526646737135417115648382838866164818922869324655987282594382228967386868946585514656569982041527480568193446667491972756900301579384964292847268850678815711113431618595038020540581132035006759586811784239501555656845338542054148136086411781322400214313089525440257316177360531970364609903480622148763168553155826235796087065347092425493326136848845638239349764257316054434630935518018695024572595142951824951411504229217665720884692466614401408651840674456978219890584132928593569212753154179097937195056659760977886146082663074478672408627227639550102872944880019892662414597181771901615915175131172342028755138204778843465143120644511076447109881315749549365765414174779781828081994484421100370153812952777654167172636608374131763521159401587991956126614022830033818535098325612122069920628287516439253773028366899967104314379196815647551269547262978150658437226584931292437026241535019220575170381262064496333151086388269967980846437291108380154796604583501250850171980338431055701733984762799857177461086891563898481137828272244584597168299506003120107519179813417207377671688571756623256564565597246573813037282455087323056932158682108797194664710680606268127365600243587338253496110045646927861329405555804887567983490906025356589397516608770926619515281737706751746007991140657235334087479136938230344570546742413703432330257262589981996003144415734823757486526799762726160966859015332618585693142671153943860342124233286672271685798920148866040628068564205031206741249893311823205395422949460517938518022197095185959267511095690891984661134758032196249505412940538218378098862320811099069397976195018529249517896923098338155336027718148851150748430936914852341898923060357900019248654956833579035725502752311959215057471141618256461905493276108549372162594605726586225476293759678582492540820549627977669084224892948014725230695981228128574385448714379201258211550599095362136775170200900451946592289760482450016372628928649343824463692198946295482206261992874451880607729771913077015567143647632074049850563435072833597706033912434520101152383477661617679315208281520264868137784848854083646490826629720791179848767948818748891550701343774819126480416888543819121829099706270439168349872423545355070225625015309689142490885807386298332714685956250366678712516245394879298613612170713098736784739642627752358094159092365647254158335443807125838367700969276676189535049397813410999532306338120762348609716118603323629995094010625589758582368639005400915084066361638892876900936363868375642792655485552533521416733708268545713923991253667764057153089243346485978964054924791600138265351522481360996248786594605520085135138723153472948395570349859268728712161276535839165781093371254398437663558597152879613338029382821337277725609415901610349983565801436630147879288877193732823955654197757642541045374128761749177871061172280945770330043012221909415073265861308098625251717953636729669732865750900183107216895876932816636717077164707069784608264323595191315103676701219483546355815715021861123155661783722508217275595278618655141210026409143693753809106325576238717578971592073697767097852507408858850026540034439602380652155999691384798142461004301034043495020694482348609466273258541070099701312395841213732100718875065891801678766673980057160837323317492637518703736989000246419108094484319573909513492768292876488078823197936292336760604373688925639074476347761891050925726328180575190640291151412541185135192092177529890904962822338806449155558019231302077855488190248023846641368618194202233097990187184584423155971500141019142753328216922347352907603096062975883576913548753622345588838938298572179901458383348198596154933298424541608751694598222947274607832361528906213285131656373959175233876551852234554309988130986989712847925364692666114094493670237825422944515509864085066945233627160448744235440293234352055808124533971039723027800421436340957439269719770295983517363390501897968152965123157414785779376022734624039059955336079820097749969688090375367360688496806035773612401625909088908977412888986254615846188310539078431287665068828004007179179084526202248000155343292227428807175986153740329719482556379338146978364805838930575693419180474684126776120075476282515861209107288552384248957946555150030504711225542110851383192372529243574037162244215681551992518047573357788102322249488024156362994655312865369537021719551554474151632248433765927017128253600707879745625426180953541526773163339966875141473045878013386777177626996261079479766385622255709589696017568518659707762449430309270688919032308394091474224606253603493488127575187145417435119562590733374068857451126440524584134428901897858377288132975665357905569394687229565477599436294031461003366247710731082689265624051560568802220377252856790838677673090607070354692334007578319666032120157922588068809708298224921105292830039849546192540733785690342545631170419735519607114638739978507944154864078323949217744881405301111683634105746298387207198788057931153317164482327666370656451775045396314492928192259599872673502658475167389359913841143650400785172796319875290817078242378665914686171816016775939674600324137836533404918556093658149164057037342091043342658394214734127814715446516144369825748997380473770990991877829206459282625230870037912321789336857570464098014743496795054800872635202574243020280624733772558025652279652003204373633652126848012083484690073258353194495565233945895772205101718454687215906139131968378455546045211647300564894800882380277780298582699559087993654026977734974557247749293558164075275506811929040917500767836438617347055064168923850763403407688951223336321704249811219004176464610838212589321532809020340750574189922278640511521923789730088808212496891792755982735954724871477005646304376193148880598655653240596368702139881013908357041063375309733724640609461210446674076519456201909863203480513042192856538913657815007828437771490465629786539656092060805148212130255179465731547465678753957239992488957966296552306546733842356435908607428500154237174889352439425217033139105448200091074664186180732271882662767512546788180548151749164630006603103086439541594075000579723652929201855208348990508991334565759346903611725935161639862834521676565023004490238341837403841549720555898029886167759432963043917029081046690666682499126432182200354512164595440538650521571817148554835611518439035363060596523373028499178658410998129838077462447891866708245911337170902983042479113302908581538236859875194199032093519673935240522187288181345532974888232653793971285465407326958855656858944397581867529966496373040932434445666232437897391788305987189343862356025663978120316146548300367524182653220969506985357353856648184374714288848327340986989296151055486417152514536825385593670137032805229900065449598142833610855892515370791982470584866066479897559356697865333643021289904229933264207473609001576724086434984124090090679826768918022005927840773025272765826055519314726662289112409889382260389356865957381945518930620140110045083732149448205009639219966278963705339974211400650458167477230940714373387177336154631850255293492749563645051417152206134346255915304954945144198353874032265568694839472435237888757286037000022239382529459543793059990662341094685173248206257248308629246983492206396028755073205079299678056619918505020911607659690393719705538009950764916476954440752356228121161625050515332822534516854628511278186537638572131610692191779169649219792622082843947730484477827843755896508546989689255288871290666499139309490251558120356626977875628002574555904486738274451385395143457323467264624171515505453488278042319851485470245191897575920735879449339276615647438985810882466637069305215527346186406280827153217049559615282003336245656433039442609137547650783319375151932179845126518287906031490252007768473716524711471897105926801230312797127254335270330581186280093107640803044338406823549408441358634864588393610168726660092184111518569546264623468193081332586265464361180389114847104205389874576119048216531363414139158250619258098495072833702381520685536927532409785465713858186615487881903733365844274758779247993382428562080158355272427492800266720720621609863059739680913260826475894457769205337220987351565989908668236209446215959652967594673182248532955197284877027943340837122912144809600115017397348972703350810624206002274206854444342689413544316370537833140016432953035031422244643569569761015472484708657814823491617828250814913141220191166689437918476647455444539364247699842548977833035795231639488536415075894216791309406656327864399020146802887812783395084965144271728236587433236893008208860767472172084258544916927104665363001595453214476249919417790290621739607637453596124397729398788049766527474180291301281809818630293738927349590019930807685599468053985986506408799485718629158702160383062008216437040748926567403073531516699623214957250446902324614680449331746548298990895118171561106981897607565992972203330895990550683854507736390234241859252779004027676330945604192504268067240313736061973201398094137471629972142116895046365277766318470685849173303870292223760009385117418716206065927895451204194763498699972890724539411236072999801628238089872603398477159512213045710573390515440235293079593799273920462717403251114082640972307204412762814160487277930374411644977516692745959196435893313812724231242657201845787691724074611083248157348337959974979752459645583157261490692424324006777485528194901718933372713600980643289463022955828292683403189664567009556868856257491171566184198211966417256101759020082881121857197633834134042869416219123490319369641879591970564158910181296535527069727667654008762432579269996916427554178129930603134409645756372738959670025220759869001509640179377375563587092461335025570738372403699750526048132812390168281308352406447462484767495943720663773348290041539211262520921103284408557386029956019489215266507283521601173815558262845429042520442706515146125667630316155597306849604937990280793346230908543030319463522582634357979640938023247462157597979980122738921993298033127659726597722447000685376470464805445532598958008070066883474459448365078201504538971719080501321932434825311411808626660009122142868307622149471047301968731070928805560449415065907714087148576853727797057441094120595119640427231590875335328303487012142222108198755324176863270001150459688622261735855821443684640893678388403506594138017350421561705248768481080455282086884352509936297673395565949577163242506909857821676838012819463362433068285481615564016899825295106553598278059222293372386035643540789407114436473854871673684749045371655476298531378407843514746791828940145251563899718812686027782798979064308048934185550689938687522217805164264414246159015152992149614331842449590623268635516811852604076986716666559318164369480843394283959807351958893322715279974440687953485316131068084279148887585219324584122955408981982405532807137125510334896370804403344527632536653978804400625045746045168559640346600298430475692215555163333728717715311377684013888282170543102345121013522355245716506540630371221876267113082826568651054081960382815286946637659747565617999362065066922498669470702957671901723637074370827149919899953126283237185727814309682438618113681778789880084216417782365683650834477063942831297357852846670010331919777375984417189156038196062563252354481021688208159143567271805254877101173180816715032370708720963641672913140312371104219397310051869407891897023064479486273977531697802651079012869064105548130398876001538465192313901486445484376778052002089838566469869340791346681464684019472790554998403417147134323307044939522104811225982320842400711247205002448609991197522097125341954917928153865060533361616528695782298403310424056525382145038739646069839859388356979638796342067146796785457438707677804742345319444800455292956345257228995724402278188577321349416085736656317881676574012027095874764291345181041245747733665206786372861166248342972483160569992726412757831082398198924045250560514908823570617279878707274363930721863211672918503469051346146354438519884792152106524988524529419100447232452882883980723116836222782651160012164913768524491007192846093331015530431014291977079350243332695552975473847582501878799120307871704904178570481188982986655403895543979695465425076093599458272860401850264204131458197447752516554467419348611564406006865353493130260710437921148901081330322173762972337508452188980869203719815723355859737776238899696524758273580923395161632842256622837961789145296111470470608638053714404266095545480618264609472557914675903504219418769175538703446460255665644841338305445964640291895642732928856109223904869118166453556344722936238714609103504298750412318033596822835223387939907643405399520442853694350808962390776791450904679046146661328476368912303173612868002262211882206758421960047563517784317611133336523934939063126593403102172870339427664313896178332197441995391385262961775730362024106003599156811736702917950317478604568662776289717196713883226220835080162674474594775253487571123328003785138340315771004645522931065514067021982431167537539978956121658110112837968615256853795880779987047563484520245816354143877918852100393460148265293115707099985610156101290701490836458797625461176021181418149858495202106941777855390324657160589363623082968722869192715824220801061220925990485915977464450432120609841879834819448259188593320746975052764622823328589266517021156483417701891937287516365994076190296342822988027301610887392185945669326574058775398906016380789477363019614300373477208758424848234873969208934300481345195314203967905660707284624374436179044713606950472602669317091015362229253970008608764847665164921390323406575202300303233275571613609611098683098996340292151553768715763077376289652552507433750065496758523576146083347982559589401440961333576455159632542851225940438661709573995332833129111421011910728504404352664840960738023072283267365578876177821260615836521223253994351922030000753922891046012947375135107273149111546598304630438525350111048015168785181691949516583172300766413784613251224897897579950525302299923616615558237588628204217411747467415862439853057970250630844684024502574433122975777527994005553949432860118898996390355145006289299030970634276764595742370089321005723976433287836309483357014100695329690522535469324113635895749965461537320517520444260122023242478063642690267230042163314076940998845853736129043670598054396090980885176232481510075307043373688827402218442679113695449814620049282028053129926736712581835422211502179513338497612441799347138975589026969199361954415405790891372503573513942893891667888467083845188572120506466687670268847292254467527499208318143177101267428406161403324700282837893811671046321825779844752369382133321774292085534714424574119265110367139701708709241023135353926979396196527795446420799280431485682765404086680516328253767696959230303015068648328237966960210801950732333593535761013915947580279495036721747166889471335000307692096480864936620254701315981677949672644834092435660733202713972391259669732962030392560627760391232702109582020288502455924592107310525552246636006840864709006223595818798411831142742323995046441041103576809524476184752348063794738772943360090015911026803476421634160858292735050837358415085783531439755666696755566232851392877065132633550639952250162893026013692476216068960491190771659126698361873951792968150999813811565965754934791990802605106047424339873700459235812722340809462530826819564380578309700087329299051684386097864460461585024319229698832027659344635957473266971584585404797657470614239451564968479302943612955221498335622296126613430837050560322326667819333380122040330064550380286041500485127488881617411779133221987896273359686981847174599879321231066603443261953448066295378805023812765510094368669416654742634864477366169527960149109577538163130280693589319141145258934818591602995326503649185066913439205948312455068702555820837020294066665967207413196953960042946477282372324867756876883514693412870304893514007552362058023446526961641758828325017377110172543726540156109173372575817839936998500741893328807274772744010739915471249548164671121658593017329333344150093831392408577379186284089616664518640353670605689915703584948720537293181910430217255800355739684682361432387291814925427957647956349903827541990359064600528009626029356096107685496992603053930869841505063111728597771119965680636047567296201872057708796566761920738954665631754238746261180582410030105433277806220084942923312234214213927520906299848350154719150696914179044567436322893829338800588271331615801662474205773464359614084583238096899042085711156319575411976013107981917216099856428656584855632500109620587001201619413095526126169569115387247544775517305864428860268112428073224501130035120682408805039161030279642116154255887179040390653364557961611495709772796453175189875288385462966979198724252567200019939199604815628377972275547952656626612251270939214232555877613640217386980441907649785244461662819611295494086963048896563825035284390179017924373625435593281706006243844212345649639764769843382317012014797977167723932856746147364054336051941738555192658665999178245034125236396333746785095770889154342228805596224933549570778371534029802719560101953709447672659696129615967382159779958616884424939821726214160825492708453519478530775793602112595723812849043465397811491203335100964277920039217413473810033091196125246475578420373136831843199667399515139607397331234625606033679945577571110605268710566266453880265005731669702170308776736804557257802185854029074162992261865521831446522806657818386874386997688100193456066674535953339084391716145286756582778462392591797764015497618288339913644832653424183411748581202449267833582504260663611098889084271743540892748692154092388109349051271030606678639638814279274275089936361046867122994406099595469741430901175893636230209108701793206244327733489771862960037604059319921538135312402476713255696754043974510969201822401446897312852081266037013036176439309636866906692074011169444153899403975238481292459013934119063837560426835578019331001320740095221734116735227155854459882892650330247031289893535388340584075234032848126043770082972511051310896187983366441400647524800637193552275859971493992535365603217567364738481215642344021684186082037100231113524276342368517383845803694565952028932476093475494048167625845511790497411587019167212971235344675742590471711440143146127628582598262982964499987102617104263364752624445734506680537470164552077741470849743011441942585347618130281092797351050870938565372377519371023031876161620873887135906424409313343886630980277015123177508244564860386176273551158586451917910217021806185526434662442307451627874938553957970426281649929643294214844925034666611216629705736426136572474716471170117849585891472226853514668790357644377834800676433802840636868579212278686360000314507216304205438508623519375090512516447647094554423231949038221969547341717557870947521671251607004643568483413005298086263849254166114422084557084735491178767297661084485590923600440072104619921000417590737707650548897520298036911688808462814877331540710589290662772622350907726886125063279357562516258073150208818306971950003144599640461152931131807653783429871263219056651931869967951490923984586089928369637863392885158519335359989458385074131416114140600597693346773271848179924328402092240155234627547479755209459983189990341971653403736510734382020209594985717960415802466418414712737454955394758320406032514453693128822490438491805878374555535355897364094642933031289156317640976396327452705540767944613615676982876037703292648119844574838193996698385491989448554474217795143307767858332670222119580637142871075698115364028284353080309273459428115928650830446377749589756442033803393646021211913968838812259660887559272298902655944444638209537528131975553991763953059359761052984647908607922790731758683224903693056998978429041102391912396462300716123988235242946118591440260184067610151367298933443259107069093212000276556374209146764825109324775719603122437861423090606404556144569646916712338861676454283274139402395410741230396117454522381780194321975295441810610404945685559052022454657262530958388748709932696685062758976534938530945386930407858817827863986532018213139410187083157688139656120339850211975946187889046804872114388114215677913543422588848224943255378429953113195236719704955597256774217444428993420937519964851942312764641485150173825040210112630474431464382541503531186860880365157210212721013596144103226035027533882071706908921402289636817210297174619741198721812351946562976399158494372156441738420812246914095338422093407482898141996890425673142699787566280919826864093715852982008406974511572874882312388226931647497539774715843344492427984519490268152958118122139136361270976883369477410739107268458136434243481358466775031008559380829364079521548310432527940709841376852431577438964936877120209597110821677974253059805169256597322923560409335007119661763505633809509002558217975101846863486724090176293384422922177952371394930004383203821020770495133712610189743407330204004485322289135091322390809247076660688796002354962358961520352356064922232990104559096867408205965794229583714365761200413299116890993717619918465119527611847021703399100117921600412797155968285707545047098601379426024470647094681921548588207723650392958985705181157122884261304934803056352339634490999146360718806716126554963941418208919452856894286177976299223673527289828038917570525431845081164889374355042561573216213522542027049934004305809083603440867279100450014317043170237978533426788178154954270147349476857097767728870140736740490668830188551499240395420951731652055383841628459666727285620615054901860345008143227334699394139500048929541948527146469929045824585787078026887805243716801973060950831453219629875293260147027974841576794102606716290521124082045918456712399825983318228454508454494828797048742678252291055024652667069647139251553508885051150505219183093477562598088978456473824493948024229515462504491606939441448186793875348884008632699960893942212337024129715422302595463123295822253703619298257309388752815835917779406897786081181262909758646910035172411980759438449400786536079215909650866941889902697660833673202856296406092444005845234198603878028123884821305638384894762154005414794476609188426396993715916221060554820480248968420663163798847253655797281228101718624839608188959392961292860323646718475090201383702143758528946658127384974943106339148175987962950603183074161632549794528604326775454578394972561821615395526579890777024974687235819063212531153006531874722577386325405529785119688331871729678336256576222504005297616763176311113873460378030787156005221416893441774925752128617787770555080396574539270391385921243203340512155089897286582619474256538465086124229267326475139648025842649968959576016583067947645599785799857640802846266090659909895008118532196647631030243765872879520085735896714138621748346840561783349359892973175989099019002098547293750075284717933846459123715581584037321243294200701052177191426889244869614886493847321047700612746235659268143149932732271929405557798454366879480528673207145259827043250190514616369323791580548260620358857919844668230052269583281032051609695639528681250692121601504725703202761590587678107121828840744271299093767738506085935830287888651300272798516890235542810161706542941806208216374732167261409220792769831836052006035612627614819341450840937445537271333306674404672577921347702742676602913884356261581071807575824605549124893815047251412147426183523535030270197885425974687275135322730027737896876103106784115746185354468666151136798772076674138359631186046615909988596778271884640306836030049976694811300805224627990736779250176034198292069639037966716642622200868659252048536509803696126042629914851676162997895953745109980316681677897591159264513810845666623099379137717469847396424190364855680460019558473101859101523220705885030656513964567603626584056248399842151918447382787765848062551070842784115347708738220181462992127212341068302757981730703279064470423959058008137474988140916636327163794127597697262779612873509870702283277416631888153805705998085449332970332339043349044085215652659061625452631027184180163410731978585713810479541721596218028811549465635692941666019534535396652975944839651198817586779184323208774398170490848108547064929578601538559927073677464416567081852202940095616325774745962304850648057837686697168898142086054292718703027865014897468246244797227402404629476618283408592969672937815172635749619771005279892801928146850916135822897423856720821193537147073463949096964660974598710010153098287661519863650102017520951996670786658254255090192941596456411989127657288847633347635081709310381273583742903142096445807403514515316784274971159605992055545368452688797716657492094425036492234646342103936476520635292924593463038974384631013478293138019143921834855314706370013831812781922951241534647882760784637495531660727290037979394260663150533720062791163480361189281804728230528869569209780197920572487588702444668430941847270917637884849581571925010387114640780450365286007831405467811386979569240001264778939944019346367361194970299078000827685345544611731912521473549471571314838641056114221460858022586256011738527133513817408961631193945892808624551457896408965611176521486780365768323960244876460280401691814251246624463539253810864467678930414578754603637457356443534163217544188609487230139373565139814809126061304630737184924536756967624355177689412922961809066618250163925860119276861833074259768394157249736208106883210547541394694190281841396426849999534648201711058172267113954391428893996981719257584080457908797270686849662273254049657689735304794486951843620818144592850807555126924594559721512520726588809946065148299796389316353636132589139662480766836383528907780147796980494939483604015538482948218134159768022809977689204838546994560647977476067829223795534363372810428749138213801794896738987461267302004666609988954986732848377660263878777981884283657797053457422752806381250657227943093722755937720761924167448999726365538619760235683987503255859190977355066104977792503929880936376886643710886742647504325939610467779778244233281961075193155291942604737355981166818055541829521037473506629092714024775704887947221963057625407997973972023918634178317248644193643781453204076378560203032405619124944878000610837307740319059740032084403665286869680290837940017105595181153757779847827610402667742271446802161474506606347451120261671973249042870813462937594684888110353418747526742288864711421497058258358493995632251139674539863685831116488211110308105837189826939935248279954356872958779230518733694880192741921924352005177531876080760962898198793041208124555700028555043049085998656324151019772338940299482694570308559727700314489240705347981660198194677725642879937579237420208301799195806468499358971481565017494968470501845730589988132213392563954815245517896256135972391674616370552781866377096401419906269326152932890709342155179720903150224094789070897714474014136853127320442007849595206341383625953290624400932830763751427230201838669198761032779794550312815356485854104435064945970161715404449755043311011015503549860914262127879667193323987853479736125217745382088530639182758948957029880042621488707219865786323776656349784496241151696908071050225510439848234724932554184159030770518625349996668026316674765052733154061768266854563155544596807470778510184409899435509274996483562822867971860692799455022732939624014382755839754272261146388964040183994804730043276225351274936995206663818695674724614219067490094841209500520386686992372482939621355929280415990478714057371065368008328909768664788456597776549532105479583806626605151131217833831178496921774229834825193674240983312478721310654410707204634883874698965325152858192476698214703459096234946445912502266196009670331531950655460161737550349869349130378039534268852107740960808240454533409993620901972042921900649900431483321831804542587244400844685924514974627355056524534647656610990257007940913185405234456401272312436641917675789280554518739226487586321330273435506956514370118257967112516905739208955769386449821235014737887199267874297289952531831872595947600309755262716920671466571128576070883782448786246635797851393554388183338331055177264586723627283125992460577821696954786825356369705979225995016971843109489875343549964346921092300632729714679186870012797333006351386940065845733767962972168534252703048370957718448063544014086284815171290520296050564774466697681383065827709092872457592116161203188180351237124780870598408612084371581576137934930639638118147293601015073063082310270609634541764269669562396052351926280474452534672652880574961588741665479576636729770006053477038802130789258938696958806905636720572736945774580947383993917691589245708027037736663689565444508237209206422455779644293395238928362447251527017783250340529150194905095285725976489649424428405590504096586912835239717998685693803559630204347185956025618099968548427494377364541391563745132227596786477373226143095287951562801608552714739933545598692380754138580369121030078729389020668948879008629047614920852764592785752908599549486101723743655845702752035365598495542807573869641679334912118738205111446239375174133908770298541049443156201436545449809686244021321642046203012913596300198800162395826893514502133773078169608135649353399034300211594913522911153904945036736585194385195323371276008661290672542407454223791225695519198244241756416830622446471913129849248605950266290437855047264904373361319768938801538051640968705496032661015481687639838869979288174616242188385160181466544016684650749722911916542141381986507388612055848992745646022719491705709637126457011790147469708491572253290619961318202431302631215786204799978316932213354772454550175901622975083867350400939562512921998432410436642745832711330227723712188536918557143205569859601863197539624293594537831316382187038882719193955094147093760202686412381925743952062931383723801339013241395739469145231584626428783503243579274378929848180588874196211694309046092547634832371265937191854242963235784230370558354511882844762110074867383839515953309665459617238613461343671129969409866316153271863276006941387917157788791122667044036458721553861690434362557072836389497712075444423928397407673060409076084989590836973627917568267886897398890908479087584996285944309753668409097368511457166611219612375276897082479521145310842602570639362290714973892367453906027745975900197709151683537995633436426772959529907933667232933854191913541380083157016585489128524750906376601511430491910582637612914148382717760208888993681529122801252297919997441250927627370320043728196011056130984647532831368556157058747756790528397403129157251284951107477702184974123865631622431680809047781561841731895432917286208394151738507300453435168698595694810651485227098214102199688387773353790149035744224961277092646862174285695951337822074295943618060330078930341764367836998288819303447738125648524788903386622492946366231860880883826046201029156116454832061157873556336624603431453086879116457952508494588851877540456084196528260193232509500659179321748559410901605624402662915620642260724550220605976185094978892563579613110676969724675685307248155862773670301533806503277945852003659385559211893609183143751908737554497435176579895604864708771916453913863564108074274386013716918042206798995805540507029523185479073402068862034769199396836975138233360966506534620379045224955204688991671094220346830503224077692611793492785090998154117028012447129209211510136693682385440301098115863734401912310380577476257721807925721464565243701921960624667920140707372542353894425836808915385405523205597136792213553802147733962154429266874356257457140935595020352642976511404373293979462667765334003918929357419653352407629579152771022298285134949385032355182034160622571246551157234469807249423647068809299621361840302624511127910308209830703436232780522386803328856781613679299635590826096601220793857911499715692051634708680353967097619987777814478603304089143175326518798585616821459761962422475760553055228038424446360963498967699344807759276956087605131542362179082422832074507265818489907611211529090362238284353145274902000327116688278085580907336113902533279030451131566567968731229063034605182883136260675101928737231283305287935743803897619794066779204974592331988698100515578365754280926604155350975782329209698563405979987085681305826990358822182519558970092619616472483832030949736576021108614812415233924680149967376627559769316339231857169451223662344295460704331909739203736944937438935520172591663866724339850480770593293623232820714546821888374279190522104224286867764102077822793537631505077684676888689449477022027564580826348987163027880022161828879544987147230974879838427074051723476218493462136217218880763326875548346307631505093795729935535217260698268890624474422364334950651215235628143779695171826331754398825559092102930179588574329934954522195921757365068175912654274850992458301587672164751137109522738680407596733546562120981644649252846811247228636261675401456200356221707403582893893238380124009789180239814799211907414228593195600538416230853331334706883452972350785552906082625321944275893098829791819748190017819853780397066521258885070377800322683639743647283157722231620859247739316187071303855263895881228204735486106661173387489598043717698910093776785521628689793152236854756298462298284346720505659256179869968335450921564443599253596321725722159216710018403119272255778091107936123649868799361087118329078880777403841462146113668176039983596445758510415390633532487254028082267531909689193693852391971502197103689205453433972374323245294325797289306936597299678652597469438739122457954424742563011121767449712002281806722567620513501774993268196344366762497295745749965414891857962158543262246080122607511125258674190444254734078405610998179719847374207283395877274068705130000214476728213102063492743583779645245392342021868812638696586871469195159000626594839125568387422146898658730936044985636245334905094793195037900337277552200348522269876454729474348052570843371213005468080594167433233050166237084728324222464014357842169447248174155831008002828413518009576366162159458293223852378584105496361066073845336350657761944501751523407638031684521842935492428623271038308599943385920133052118844001897944115812812037187838357554992148246094195251532421473368613317587620246792621370132501441229885211490231456755608549339334972723933433855153952106084755904045908532934748679705354695761425308587335722727129965335201133812487074984056437113570183011358048566539841558453588409067563653510319462008298965001113446227308176674858601290220766640884594548111472036320095190093413110647613518023834243053515987799469149016737984595902162337734823787681475856480101965069270308290363683948348810700364062711664329649125586427313410133521785283845265588038596711322555048410000172224112095730484295615254273833855828951489181944387229067855754223616457280837949689610798061463457673593454947742513804126164494403647703382377989052952311537298404166409069208010020669459138782643750245886102780298874941684072984315144131601669322595485552612843822068986186618204551551259099514847235199482570534937754208866690980412359948744889096242165292446600519504473202180305263717369026213396972112562387573514656118398376236416939161328559714149941257679009303107386721231117343601194494786059009450659492235115650864412112355924640475381172658145505938235845088611755877190853888958831032112928423238353346762982835702638903669151797883945349080606731068028892886342916331552652025550805205587784553493872913730876092081014372696422169143953798607281249069428965927011927402487945322966491730873374634936735358073607764858640093612433470642977703593274105019620302474794407054115465288477865693487140696099861802842397921496164800548531303673817079000043334046838261421871089917676253187610118231479397795828541271971414386510946668923218886876417284673175139643694560853794855085509750551976091747886811410975118364141843759415424861023466158042232787040464978146895618051133057976188787674771342531594479997240938564076912749789375830815290856435366242295059016669127278214907761638321980088137522759691665984281435603286074825386075743092292950867250532734916340282329890242561404772805408838693643006905005561723170169140383614953504056387738182630863129571197316124802370037397505407292663900595028255463686550674491191347846312468649154045670467346153533411752097074397285830195768419444096977159661319004280569942210684911706735344646826343690586286863549310320122592265721164068771881057853166231944293384144658192375707917073643290459470157047370238876439730427453069451720755714091666009912252663159437847767236620369796068017413123845058035921443204404684977651611953254166256358100242815657849539296147655028985472540760045672150337025608615775757223173663160876478173442591692991515189349635613408721041023752487712668459682683178416196432218710973259119515743868158400621214254874014047114597081598367171940507425039441516714409348687735188620809923149822277487948346509600781126742076754190669869137698810870460354418628957061815676816026863539011076003891680578125089747314466178182994186157182023872554783997502180530369012574608510044753781210147800440763673707577883712036397040276858763734487319941146667965542579537133578254400605470239775762162812370239304721928947272709799252800122056887523016402206290862555931133101977205265635764194037506964970602943147274938332313398202946533484236116755007458599419189331114937040545327695471715539086608698926410013184368265820203468675163673544024191393007295069689585640714546960016847468208445991804480260893934538320560410671955831245780008238740284860562053569739985560203941709908496884127021090335320190508796862691253634276157010666263343899344961144867169555080723421058808620606508156575145706970806982472054961093717848734631722232762393164184721509815252755792644317374646759758972522978710230163391065291386584684926413800212144927792889333675416068383966802762782484243210271565280890602688337049075153670938559394076496551621779712097700584082989981075355489403282599267486787914608111045207313606631353266129301687381317223980218163040754393698252887260780040239190531419945765537874679847776933325134826567897597061690720022664007453599162277158362139488968903272882975405248650712645903108820431512845447108734406002394833854479624356941550959406617135769470463477284432041875329730247192974301823361762187443681284780484971247515537048923811029964278460561148770726943210292496466015189155767110023728374533785920693664696818401215221686099998281950361705128022958753027227802140096066541917788093367034298353352755412785203537075468783463582163512524463744922230085519320705980566471204696126892897070087094196575664496789158555892970410366138473858665467180918041507537360888053920135333595955823234655320399254396843273213266565486397457388589454777017942131420894311119359890878576865923312664305930915425489113288284935396606544936038299228256739115224886249433511656374703024369759179943101768981513438679519791520288196691081498082499052602927182065459877015705985498511413452809097498480456844174706981139503421158732225238958482469795613438044688457025087804088575462076839602417613225378023400684080951762252358880247140722089384740745256443170652366885398298752184154528524317684649975684828684271487855702273726224351687940588611961355469265992612138210445575646756639676530443325195425952838399687864195264744897987311801301021087698312148337904944045963003664465276484182711681337165366610394301672206570475521784639083763820572273991288061655238708406723459163607198279065405280916466505894321171208005910181901234920196654030510373969436470910117285652349992201705623389814973416423852210117486479567374988778894284640458358354281876337500099718886353307242998142768100016847716448593070872572855447250539105849268782480977653189223736154608588039718223787419321711276782691606894164264074916146379501053053702634817132795519876516996582447685624387892572730863316704821830090548123826249206838421220634620908462344324701627297205484818259281917695899977281281164553059599454401312725029833823887575281786469880933280333026709467896481369627425331069501513861668870284792128013258219429921367709794837873902634835357599131358853586578231602626255247886015635302053257678464849212494563280221579649010400483174737632420523193731908728128688977006551159503099392161611134532726448646199647846419693651274310322741952220795845422322671851372374412054878753730264080254014763645139522857588629715422313344354718899440363776900213867381074117419477895904732367834179023089247297064628550420025691535591617804931830282436572306223420177772859805601425351686135041831074363114777913661613493810099900689031014451356085651857702388747709318505858962768701376522448181061709983476368106907046209613509037574509668402180875309001330479004167115626849974869582104797229889080078359839428004289198594707146172086192831501251437665293517846941917243330615135828998694841269029078529722797888139653792810061354398963667468139727114215198126530212341468277584610600795432678634100625694632490776138337473407764385004900256431029431990606956302123914632614786168556980285087669218833439006694933037482305955201314689417378397196203241326603108310491635281811846099428345238495284380960473213527585620804752521622240261419708456169119618993833448422933363664964642319450619950979650482341828118891028257294677939309117492210035678834136140400999969007406231310863096313176985307036027342467031860869887821295892640642892806708091145304671313364862323858504718395966816462927819794029912892261567692311334494328692853464465237893970297335112183000414279709662576111261453207271258064424623521298931888060094468331835570189937908069732730498679933813646074712911330519861158625518802298461502714250206691019188568609338819052500641024978079860219929291640745069262913694980962893281329592446133900158824459201965480596830826759819737836621765744473406591066987692940553585446999138653510171035923452730971632074293433355075738668347930673028542664051200122003603211696341043571410156296337038654225813489185873919941454794119710945073319969994479436504022746213142905248104115221863955144322516556646263145031357849880759131911525038012670214119970574285751927839474354805986880700830040100614502315747974068449036660752447637562205987313938344398613626878012357546019044142972704242302505517728616458384787316761350007759001202128963452312170996622252121819503657684039881626458914538462852603844048767971859783170694320664927800768419186922371845070336459690880765092939942221995103981156783400257028233025927383929870081568309684894257106006735412113625581478399612886961298866667797375616459902957477147350237738475790031324499912458806075590695817672565561704595977831644192670395800069664640852969636118228065232344103279823125006886611157680592433545114541027914794463615354981004297443842518035367640768314956903839471518662539718785675182639005450458615676974760321195202347736190492040413070724415037388505004679682269397222452688834696159180998384703155695376239864930327760556073927876017281604751083480241605983975156946064004799582920435790207334634993939926685701465785087052984035013887391304655196160841456888225952447415461802516924822540045333150797278733835444437878843344951782957185664040480023469999112639422725766411186334814951438564799048779132174910964421332562145260166505115749460403504990575893143155511662443251932913173607795006830904748267094219860026535256907061202346516274978326314642706652672791965345108978448382015605243833330543827850723085058570487680115508969608707404326818141611438982366610570519557601443469515518891087594141683547637321373819210502645309073560712531056363858762860504386262493581250654807683790607350688360394437681876217376088810395297498977496703050366451713384748757975994492206494360268606756074562596321138894746022524340619986846932749918081733291937915423049874334331740617270879463145255572163017620590476846070828010719734026646568202615398011956991069488864653530015027795206001795807287874540243770023203604423660824973986419033452469743397577350794603082156074979313996109564465151446246967954801994270861007459228104677100742667460831097051171604080581960827934831508439991989747890441967055354975999079176365999590824273976954714921769246040698449016212563589241835088589105919624772305202435510254574549154616347423728811165795523359793423931006577915820356901519570519976468797285770495065672751188937293048539105187851823114211114007381534580990112420465057792344439275511377615142926273743522800888565751592134051659512999843550865254307552110448876379569972668650529129568920418905051936773636120915120134952690129374791616642795143963991519361660953191750669827019063188487037067666913595295980198998328427434064277264119908985238034549229533019100775728682944915940380413772519026159276095579282208675709597296971762235912481618948473912148502105997910841511304868095831588120788582450332586011583836444722092818118012071798293314044697215950407008620284683801320266414923032628811049637025732413142716084683832119977998855558017194674172019386904669579796030178633527936900414071905109394067864857765301360412285065740095520882934713992849163956046474757785994537142768234127163854751094974595936298653771124658068335359377340291829449231545476670983188461562912740067412682517898884264644317963711241797995506650409100225369124471444865873324127927751341104063201220541073594356716276161719530486722879176539397814764545913522580611491717717632794559052663508278220920147790426350694230701176775078348812849721010823302710225658391187332374876156555539319214573254375221397179667065099290143636995409649304117014240332577298656991415130016526840860252375285619619035135125971588099721322453318932937812985386924725147616141801014013971682256989284930367905527826649833498120996489246075279667272482911869290034591624519852849844014421796664164747892037807954450065704221036244616758312336665980778417041043111168198312611055895730808020198593142719628705085774290389475319580639976782747693531109346291902099877433505633372217050400478932951560893508802910244337848145760921960015125828278932294998427003213125199987420480162989968192573282024398743448136312182896809731478596566333579925645151578203191010220005245897615782899738094863364722552526195194072871293983302950676097194532176279906985407456000304303576292159976430334405079387302932202472399062673059353401099383583493071905590427400208461034707097608303582102016311253433619520147825953588790878442210864459462568251084992831277377810964758943764340111424336371536098505848861167806064179352005183487126532220275533090941784347127425565471681110985263679333659087264752402292843025679104513621611900175261358450039065688383899686353087506268194144937010502153305487419757997055490840352706273646472131727632326077267402558469197666670518073373773473130064116410085822499400331003451542674668374484188254232153885359833873232818216867016702631092127074623674010857071651011602351526395232313473081931492791110792132453775127451304814921545124762864142222028118522172507475641209310094760886787054511168980060652356323799367277830655755081353887187228654879286449761653357612547577997147869769535394862342683367176240804768719306804024761322414220916093565929416121040369610793240046233315746334483529529230905653381645662547338218117134275726630504119322166461238276164324331625211288160782072087995576261763530140014337789949570786488867870245339682539994979360639466064521126949961009291110937666516706615344741997951948984369210986927245841053205787036411099840944204314864682532268466203625893189290321072136805491087028233558617605404807722855741253008818675120097934305372503783892156913265133009878493233792057433734036236898441431438163048679093303701762581791253017627991876855642703091093906842976793363590520930854988183949852676940762684471134346377801467003244853132434486593206208463048701910547938126713316955186435472283125602750125642013694538827395617554210325357460902276734091266903258226254078062746179664143249026220850965998646715592310889349155497432768098220324405095898945101509651678467562157791080652533883659173773378872821920697096262529199697087544091229668999313229943386119540022212011900220157085536460664914912793753021215289727222223287999803666646247455749048311520512497257257395300604893868818179932855618399011502835895359443769911969813315984502487547534862358301899141540425251352951237704165524768731519990363256465124096554503436840380000344673710464465415786941166196021384351559541260426249846809606992014736126780300544227015537441005105767534254530076359358473509392537040033949030065013302889273157604689273226162552544040620626283146376076454675116727579901314432371050923554837852646753797027806839363750735244959566505384282772706026750262383369230708800360878999561027780167369774179257095588801069819200242964354878876186792038395269800039085078381785947321650157331270192561395324063925719746604772439703607965666398731371908899887725319998139902037690098610463207280489500141541936479433898911813487279244548635340598522159018513528087222739848684494850608869203189832850324317684999604691668264807010178090629445907619387259514455768772614950895110480234298353031772790240340716634444855904716716841971748855180641795731872765106041257899753688409259524365921758082295596251237047794811582030451793310189724027347321032790172824480859309813620974837790396011018411267246417481897654436128259967967639405485242856266307629146715907303077770826388309827698398034876840986881298936601250270817802794572255017323955345968227791610056674610105135094858890659714597063908016377820851035520833041034051241497112606588161620990216845570473873507286471705768450725136732557933144241417616266980136939142153536137911130760241630269381615735891484063409964832575797248918008165256853679787024800907379110012475657294195980841603949076159226404559452707865698863190787079855079138689749182285350272865627810796583240937034408925079098665743838535255283691228728037067104621951870370781011872398482051669407216429035673955926458487150945622675744091996122630477411006955989955173981055366297864034332929613547154144866700030336190592599621876021925317660777706154823749775751014229693350794249507855558403325038224322894499625239085352953901281884744770245263968700060185072493479692180753762804038290942275105756969016648911990713120444316430251161305528149155776768324387977640398728277444560673190201300543603757194112589703035281190285195406939798773283895845474041826212052802006076611104792506810497374622970246792248253615971634671630907168628200167062480386336743185473265224915483433163099921166382445403582889440068322242770866575938569529989506106567423938023343954614408937932057517188664727841741900147857569788165416424347483549751180497991762483629620597647710155741534549055114089926088797505057216031994804306961525932643308440973720683644493101132585237150258162395181689184845994885521157263951314958751911604735638474391214117132607341164383771771626793303165513005218223760469250783222318609758548390142230485217857176802589343457298651281792028353083389728216046826186394997816105307709931234594028196200047218871413364186577011073584826100196264645415160096115245970503605184729517335959513465408323646292422789041362495295779450461903034004529986097001971350556105568433456632991232249946667160805501773035739673853358934583727473262777816119156884844730198582206110751734044054087548465616625442861862581187603373088054433358619415230005241155884535696848297429897219002840178209133897851701723640408306298103495296784175344770717120832476429139128354472838273995008025205686118791582223408663382372733439086940318442467633619023785213262251061717774324240880780170095628474118251149384950178471064836271991513136230674395340942172756643262528409726174732963466996641629843985348031949229459612578826898235908852942726938172207907643609685600305692339974111930546130318080415259660752059454763890025745081606932407287213942311631818850440830525534914427522683693928844541428634124117631663407880713115689669516915593321131058777693433859446095186133552952984824288836139501495926117670475731656770600587991116799737598096464865844761790950410292447204534088414621971469027861225614989098518470515299900470509293777230555910269554668921390127354686570922377275303143719024679765016959086183583032257222732954554150830080845092810008320991994886642986014382999417862025661814124727487269584104880426066465844633955396882406898412761799675238790443000222254391832172758477522231475892440442985827123324258274843138947189676857813551773383272543105845917187723003084382749196693287701537709175062386207748351036431333715804458024485845349226216511397446465739463091172664139791355101682834449579247765299374954954398477503544153761460543672617247769433338472345732082255334218640658732587700441585061130023216926427435318135004821407833747294029527368208659366002157900997906137746553018449656534595723870250637825880031069443379837242288933658734727837870122463584533650106138464821058195639822996380126506829205690514204701703990907735421058302079290465904281659335930765586486888637572603203042344853377352385777615262021370904619680404020853353385822272682415988005873724475665317964218411121196379886119709171535145522761424077304934346559411177484184015684992907605236975725772291871566450584560240173751935896474351639232620617435662442615560993940723209162066893572999668714144574015626754224637293039836354957381928740587116750299537340958524112722091366377130378855972926968087892086704373511850294641367018464490504890410646205954844876004880629789222723219130037352992739290626517832144485780076287327543009474674240910108359460041610402619394177661215017125364595231260751198836127305795447129619459302327790562090843058565580153283977634404020615530550716238662358339602596722658941847253853241247787339409941698607131551585516645118003763138812525891862080825078821810303924244246078760901893568755783292195495347198844607218441146516364209303108766531595834980630852320841105049184418988842911136193026496846134870640829508309085957146218557903123682036362921616909918139487034559558649033571640333236774916827119657450481699048049983462460112440444728633693936381147929183966278245556081106015468051307559800793515520370451914128972864347237795230916403240251382288970794265289998426577567731040346695989274396469382062577938881767849702165386011124295667669027056935326945045508963422846741424566739069508550645474845139922845452196067186094918759274105867227669575074165041160961114908673111042023694063280980594128868898014437906129134158052293318952139288603743651696192016748030796467278094740834999677243952318994708587878000982348325139731414115392742255942453153514317218848659404236582728434190649024733178053690333299600736947430550522384759583598732988593001750120771451152281867916989510585665123150434542266476999025952669342550179838834005519669620967852748615331830022805953145399843745454768113996703041795148930526113739017815544389609524410885938961955074673773633515651141693550351834807829623693385075291373118541222992288074824377647987937031035505426086276461790478223421226774520518583301017470932363948088296672440930218652680505816533622610007978992731728435326661038533655165170488466723308896619425068275272960825501987093531823684676740866098960935318005873645675005621264808726865030315870872281154404840904364222402551802327656434266631342916299098229167406260255650733368012751026216278370059290051513574526191427720598407570977542427576108213156905512437031021959213732735899801060017365788981604225034889122696323764662458126163269026949924931982229557753322097405584250037495423178104898852647234855049036116275572276102747001901344374910316543101270904574062085217264158524014145580551561050768129320450198107239363775407199088803834120018800329784348272577931241253620271087818557569602904538890912258024816004853575408904417749916981729691805061398019317283722105100771564221698663581669875613000348373638542832138920915155659334019309078475600378453786990816921047744397848349072433812415925235731431334684025426061414549164174349614669465474920826240675402828581484984807220016425857125678281591709552870339404685295965841362013169108351593211428957818304238227942664181170522813118461697860885050846777348415459353919592269510391685483965806252393882692511638981340828012528264394021485909043925384594205008920432693334241732352457962665826467785629913547879868197513969223697690232184635587930513472684959344269758671159859321736526206952409710410909269018938317214267019917987929694468451809694497222332926519813352785587627468449073692152454281529859017472614065136114626457865188285953489674900260095406197478061295266839017992334226492932064403161998915849775826066194739348046833897524326838810544724260143741392671076845676537044958266555675374445184012527125928121484436680405705331847288917292893805927242349774326894675530041427240477735404558974515094911724373459244417071630166773468986291219843763910855033168293233562005558772020410571165849081596391626285144468570356551454351730682820321258967776058709062541701577536330988758658874802991647346884972620495404836075756445079371015324078194522333048407417756681441575984563265523357694654272647247319708846788604181531628700453173231802050966292759413884164549380738057567752971296713897708758714393572936400632357750390927985181528734557887443224337424062097722059490687623983574208427609918910424176873754739577229771730205790237654709942093106169440180884498513560524102671037611528485867890590722627553249908812046747694513044178069323477909630396331534289455871344694364208683775364143848877106941404652909810244356826208824039777468562954936193157914130887614267975408222743507910153773151896590557019985440023796444169088413311285946706162948429457337030292184310534893195144454977390331471589707783786365769038261174831927775355661361429763548294704645272159722302796247663952885441998333389443691517453282824312647942968281537303028052459384924673621741536352681603463730742551970089631050220762939958767099716099206757213426710574489424324696705923860839886088020407870198291497723536248780714017256550030054155576927498103162803669307690581437303188369811396189789663191754078414110433609695118928745832462245632725713832607501696067898499400449714763713980148358925959493440163630815411529673896109771631350310853152923059407792773868427070819785931504302007480414492749238698817186133845239283285475955036310424346070399470514719569131755372448319134366521846746358526774109180160891265864197292815778168503352260987427485016213385693812987396327400092386356875682964666578392162176745922791091622629326957316960130739258582975196586579882812138469746465230905947442180524740442700541019212188317268121690531831379997597490561195036260765275362520441076685362658335740345297233333248130693898500014382613366271419904363656174350971806800717300428614468533479334610302141939012803782974257008456288865693405561158963527121500586951253422119298416334210404018376780395912477796109562364883579330927443439120345894780289970402444664484666192995523045659919561063246422799124926470902574622448769911274045270882085419861958222080748373331358880061488593566435599150465291216060374606227999960996034541636006317898954311633205944143977134647480753097935400545801594558091069165763204800828184185362702284021697632299339890030449459755120476420265949712738780130681253592813007043429312530025708224609451563009916587697950857925776282616256211968684686935808448329710571595719603338507665665499351470492580266372604893850802638745487157324107118248502230970595834853075514157089471819754772505151358595111228708774548967848640969453572069893736270168121769949064091768329721243198928524816009574227863892766709545133613540362661232840533512002287039911654681609462375957305781738950216949063496265254054486170807337459027413702237530097978907056889465311708933978688639906168014093495115343475731383427767070646611826138231047954401842979394631745222455059775393813317698457505144765887210375820988889939622695093956466926684284728892061428064787228816321553549067975243992684123408735847799020569426925488526319340529489100810534749975154394031477940886183877070216987934327560799448215372032824866403964963980270868754383500617079656093500317790278719431534166380467196815620157406722158838443292067139727743083702173547813953907627882525711727992995745677411269378053104490890581771693716135219907116828594951863723930416449079308199176658560822340015455624574598993042949867766421397130612068431680211395202991737239546002129601014095119303902666278589133239093301605046483893437149987188824209197537689083815228870344615875310058789141062227893591329825873742214248936513320697327309002681442273112886903279768586763118858929522282547650502300071942890604310350721471484221443565238691130278946706718538538517861326180923057593900434935562555482695383351978039204308445107528599988740146714230801394448346762942406356347953493721592269981764122934539048766518015315331013546721238551240781651948902054969098853971081616097591857042697016377344973294591816067007871120341574570393864941153985982963456752716810529559012784659232668292133844136110546367372217452699753915993733075813271783172783126640447743413402546270302481439880895684344291839078774982579410252445900526050633074174919273687201150594882551820399432118586728532456938164688388675981816659869141099560512874438950866563195932516515139288228597898253642197526649010600265516610958428040002571640779826159418928120253659387351420941733957462093726578265229440197201659147525490462644762345017932501149060682181830491620293212835764709538897520052931899164124151586785367230994075986876002313462711081666857003209698787964571409440247748101770221358156507609303472718649503557565242029746020472345738276638450784050757045227178617899742520663893662628757892996739685993021534895636553600280377062984325507851108876489830038182864671882034252340199506047962148092037412563270241260425285479202832623058845242586321963369305713715485896495850275340665163047808784713711563832387967468302616135507478211029261083451937515747974047801572442852968511394573272698734214210510021623106349627733082620622787676626347821870229487328282069647174371888468024083732588793017795814306748510092576871758479886504531798884359676719991138270564603186799937004789119799496454039448696810081531834365800921334890130075477089934532528913575717875680632892042880534143899085001947082243922156251256691950902426150867792521482303961515334657732687090796369484741925587771096628756936900442288961889224609830758140828492831744254675718563077757399700015993452994627983099073858147902655670384880888917763447239902737702008774747536414811178200550865284926466270621276366857597422164902903477850320253946440083783599163309331420541118582206629300976781481138366351831463543458558896796563896930265393435779469799879291761951767811340320940589397689443222814215371697070580022932062973754566484034922732035399158990111493286724255779697726539642814449573043457841735847503558021052705265739610415848711729819622357727566160278576759923417217180739035711374939271062908386764782954947155868023178953747553400128131981444126908115768554021424989787093375918554016639316404472388589126608000336349313101221811394200391313594722636446305291669713518460104453281841233697920790315889980196916430181548447132853768327888453810122421299288180564234684342548380178331088292812191932295587636740500052324215674404212871168715246937084548780277807457586785759125376641549994574544399720289785149572917234999945114132988508011362135007096251028000041353438737178648845366859783377548737940633699938723683324147650168591616772413198187412826369512357468572595403435131271489405167146068403983698076044919927885466295052999226274786664468255428152320043448863884004172951628845408897912112067363490186420163269240961535234878375928678760866282664464449937840014602662536312863673589194186263076706888455988339520838793177528084203417594047604270986566557069854031990692910208906235987510531806072337850500238975165908817814222477076820715320757370205137722158829243702051969310219022918480523900843142507606207986522068690599568404608795347826754430287617714645016421151413425954274226137442827519120333999813534481702950642498287002429448679932339990445435166415806554637497415387395143664753586573325813095770598791393645990008088549340015005845560452201216702987542345606251248370505492371622338645227977588976244917178953103558994834222538080821574332052559176834089259742921969071506530496248108859052134024460887277813589228667626885082273535451342801726475712574666746825514343287962687981341476642007186567733783566835790657298255067172635707041658692818698010469632656405615526309393688193986011704785863094997611740973845341227335739879252190664993306398540106143757237558044737834875797930070049463172737073805807352186504437578365257211997073693114709455559420920553954625447924429499271945726019330122678913590928084834831985966921603764250588844818253105686729929089877526121016596829831479520008258462293166433327550030503976492423283924940228395487199359299557273267582198329068835984453338751975796339655423368102101989255313091593544471412058990936947083982033903317492649526341752017983876048770493589003276781080442771507496391405028796565131466041802778905587985450888223121968839719393269076770114766072953406116809627666329734534966461503494810888747863856546002041637180305532705389191588782342266244878286690850014411150088896998595349039594432787214143998579858524530220542180122894472910010391520849729928367217306669065626582874710869680553413556371797918112434526685550738163708117908153829084674662852324172313847719082949874503301701963093117051418418491709510384512770120968312244861917296934795507450912291446053078459770800800641424846576462714111999867927186679994378598232290271265775818885592722792199206009247813086899141092385493563260367163291031902301041301280969155450581472822355637513026532220335441387644054288702274461817517055057972177299077644799145283081057231769621714169971000910072253305649910714553327980553839925159795517855530572153875842928107195218633358516368733738292729286616334600875586794127202689121410772877464152573738272594981489287352141767388573297654433596450227325831666207149359061381521937199724975793398582536532572095518315092758004974022059843359942082394121695512127258855342212051047927235440748138935612523229534983336537633970631475216464266197291920727468500513697284515914250498228054876833937490730258798610229474413509400179970918859654144943176716343134199610100645486678102123843179745982823167676680848321288445780893936078031164758011459603416981876897860719929497419681518367544721156819756554879404724758830633283171605328678609843320277393569248569676580705188452468837384889673686289928879936532625514984200092483340655162951098358631033142830622676948555781739900257290607623141839328192669469531929678956280755593937365005270370090096994381812703920855081420104234793335869730740173774934588844169588209890658380653808399128874618406793546504886227836718339021913708923884549353883167510894991983770840783674503775753121579335716915885011466014279838138865092794184497967006800423061640788590352472294405896260781881825610495022569373456693794444019672709445500226520208598248650844837735536855092561679608830406446315760882907817577098156241665316476608217104941005197877900666001398145004111505700685508552780901852199191522458263969515192746113735438093345625198029113270955638763213996505233991186384446798539751942828094699494417485132990539685480825459669756179223023748966109134994701297855542898139662634444161667881051390000028485762802436790243284942005057900985118223188991171832686395438169439857289046543604908119410625032952218086118317528828774800568480108935919086652894747850630928945883554473052218888874149442467333791158620549446735249607128316864590292345455396118380001151686762550162812173997098669342016944349836907152241889403402826470063769290901798024063273556153994413717178245938534429338453910192532521465627750385520084761795342445749256024015927360378733512859582241252891716659304270809111555253560107911172982648257343037004212268409260355347282928312274211727154127524957510823765533161655213404880487407726791911260283478723319562905934652372178419769117259156810360515601628264268906116842761888936487701317885586876601550246199122221557349228916020652851944746791797971425387223306841314167495134822054103378993448338789414111276895412741007777289460155678521297961878118601250090187361393624378698279539270249744547970107355425563569266397039272035914942121441524980926716858529999702066335537210933997156653650283406857138032450511824003716265195631903807320219110313474147150244502488434385641521327477109721962528686927345683627877828119992236265336624185624678586208782826732404722559610615140593704986436617622386200067332950618386148806571849432449472987267242508183550458139864994481378218563143767143993099337467109442284028421281030628273584700882370528554176175552710025978739436148161643231731133683194933628865589338323885477764829126283070187868587500237823521932279365001038686525058242686387419385950063885634911983861562636943732297502867081556603006986400367192703401496394530727975001896510481868588914095615304135689472890705933855500164708356533226636754336868728493763030470935838299790405057331122729898067479769781072408210726945859695763264082267473234072431063367612006099288824354321413658863835527914803735782964269740807417728659377614848469008875687152654757065478119325851300451392590744747932243562316989673331330838056484128038768605614339411142851986404865020336322936177703929174554850684316505749287911355286122585262946555080365725618357023469001117303889575278831012873329245645183008669809473194325266711871028592564235683098532169272474800451427825317929543316687752014409534177182733612943901776195099643146348966430347324353743047225012714397102095107297355479716210054146188109351863596187692271455329147738093824621569104042774098882313888652422122117967407227584473917199888143870999364747909263088639774062036883805011099278940496984627172747271543684347296636458157625524493035350432765636136073568091977289806911774938402293369864372400037043711482198111866160115837440939881676473325090788544409515441628935395801184274335238720048792474030185929802659646097410590381009660304086638621906244702342122105186316283210154241101133336564981150688213475099089188033151043460905792475290016697238860417928251423463901237756211420282883297236725053351106157788451645891456578964879939774829631418332716254260813419502517970719133759643574390037551850697968931492451663955529940675410943609407259267834637378096816527371143839686293806796337374546003879594369519056399775104717012008606483905092824928253352621209678111973464293442766863369828151005362070968460869475151764322216319001773813842070891094716624396344121525703873207068997534505947047018423547953029012616948136295020162818471469566431691404937824001309536902511619119087593791485770964976675106964176474756336128147506655016866742816769104880045384385412861148565353377688894754760008915587962461816405147069050802520180393155963362993358857351777964261055114751484782396819532916972960176006996829082928408119965330047629758121271715471990541851098794072749105520612641929796365902871077813074177451156935526012552016634393253383350669250625161062870722679224349040110251271852242137130438927864240978915188974416834604018225878905048058895587587749767920923057282113097996433362507239520490673069057484357068940954410480602234740897408293225195902387230761804161466793898337380363678981339057812194115231240988649029335835364387136745657605293362330777460587472559209334806668750809670539767660329336305671172645606274262970823379070180700574144063739312629898142547652944809793472078754874071078062095378255405147056747805544456335825297655678156473632930047073978343569252364206809468439306939934483019375386811693034601854600268467795641745133942624099932006322985456674707631482524823384201970842423254399159186170872951467460500478199564027289529959082818521377679988888936957836250974678490834267254141880174990070717545104599353526039039728236721482436994991169465078646406503981181139160413119085226472443747335952878269767152916144524840619031647231689286042299977695167743117180705445780936069889809971098775732129072808065565835608344938786991224706038304881064341557777435622343567798565116916208738699696852470610437874879580389133118170890355508534913817945087642178857838704554325890596173434236747926768976067036581004463323778654803434088744997660387911285965394682591591960289149195170043163802688248246386824347393483899628078525539479896493663869820862071096713464273853234147727582624314619186306042700236565176319844324055483417854090238064218095040981909051623137448239531131930993881685326990707003845338997749987161606621477520813664603297301043317576943125953044645372582083987529561541182969737137826329313203558928478129229623501794855049495905630322711145175010990671563050951450373389742041877773904043075488284429442206105444642316797577536276577669247291763962781699449194389930211522493736026030846785019293986652361284666151074934793450513177665930147470301293074364733912699977345414649037555807425045625228481957136322126526195886876089386496489093820811669348802790702406440056302587048883068693635136202251580695993397280782317457545320388326229188232589836647854746242911558613110970828288897412007973480520497092791313952481938192764388843609716969951576295306589659439550897852794200835935670138942178083460564962797255724004346938351247539984921202260067681945202256498747299617594190369623637614195643335130494547305713607654968655461515923858367846783538965391528004585101457897949598685418206902304920153260297589025115128290362864170752565203684341492577765421758216667656039116451605930242653706928406542356430436622316728311645173138535483777565698275155223156462289571637262742548531111305415177244855160966131278136376569003394326932314242263571196747069588551976137314654616395054772839500168933615010767569611245731900913485525972319284255585386133896862771174991540684317889713627214398322524034997594585565692742242794325654031638988255831360414329292736922814865222032989678569136086990165417514548166418620464714154668933443916799879972739901086407632885040968286358864230231495300203513802110546828286425359281410804136080506142057070566516145389340604840243037905783361636920588793841474485085302808477895440304341627847257607077639989773633741358742165398696428409702356725129869883485335368316908741537273608252414804916923414414954971113089138154462670407975923904083226975459257913622136687339135440528489802628862351135626584481735076887528008381448825192853619428765189672384409980622874647307152046274373087030088454689249355592614376900875641562811821205767535840570457703207632416295602517954559211745130007413193060742055576551069520895543053986714071014265404517212290136992601479329625702922231678056582895740618690615216692537285720284340983594316864251196406932433213476824301059062819346500828431080385590058808584443566609117397875905688463009290435059741433090533456584009546915169407151848961235608080050280748785176497956706745870158024567798275656147000422319152692266945921769077661812571309859219737633774963005118524260774953579497746556108991958329177593866148619198141998022138600046106835473926031051730426409428570543975415926016878383436674140758934681585046202756842390541334345093705493354473442203228643098124954178489360305080444260236071656702027345988383939931014900093357022048489022812660202337538922023694682190949604559045809996633443244177646025177296840697662459796301165936918777189533398431795641755704823708098527992450514142239195884479816279219294854264689049543545941156750067644568708339059115746217213081957172439142507646336711338695747394931722702238892693226278368846306467834898392788575807900462992071468364304291387020359498599610373807635221314578715736197742909722820484746682813997533215554581874050491705649751210743038703433400217234551842468584777063783238359654383470833279711977765799107396379387788219531203216545420441854931542599369274310971014700664944769406239730394617184092375409770037630007252411233487538509479841679662824502118160417406351814670042454765896685337685788603553992099173970022355425259256092878762281544264663547496281417596863302497825467490670286483577832167721474616928459011186216020730239924930260687167742776283774610618740499613135968853472303379824472356558658441469708386205631974130521197232913624286089362742135995072517224928875596770695130916788972904059196171040671402604064286403880680454838712248577278550761657639027438246452309452743913122954744674680816673035757293182363470012176212599511810153182350534973252867131510681411714079499107188688510711607413177972587089196809766911825345167283781397001280045881380835682487951147640377060438267575829998350300320246130677788419834841968282892724576722380097583349228378071719871963617025500458980719561397781363125148970350711226420400801772527762927760501761400165495895514728874466482555246197939563196179836958269511162468093235468938891132665846079930912031991238980326118619202882114764327888592589937184936461620059750022637444380394817974724603119646378776562398701593012487617542543711308019121794710917315809815959424085179877024217416079923941159779792228573324957101673232145777459490700309857149972011197932214859876752945479011702445183997643525220447428205422476112903918535540915506919813329653826916778754092108053562037948914126212595284713349270902998211103966247863979401426303275493789167931190788734355054020140709120686818795656050353886573347780179111576564384638454200738120144592828647753617051985727993095237753658632322097067652043528972359367120225870879256876183439189733602199519124431518885700613126983308639445188729371612841756544513663461433202298037932211858785714397484593224477374354360810114571601628001779464211075808801520776606202585669991684073791226568020260306392452613218964443499189530315210525627858588431220889131917686040351105314284539402563619215578915675888256461052828275808867528266016074552743030947650484681182813470609703228349809000665707927488803763618492958530733608528489060785069494582178343772623684742222844394948580289911733752449995583818441190032309725817624002919798485584745467287542338544512964015456763735229535204217961277965799850367236946338486881540295339570200879964547564605130907573542263260850385919387885584205191565823046089018982996893932175419168371310597591629711637183047411031249381152416459541714461192857309205637482323198171970470335880421582159184325480723022697291261499172680981185369139603601587381555986488145182347820191006412173170276972793348599402748908024351258987478509670589204172027462033085488067287863705029339855902380880402815676714422048100985285525487423010516653570692387436325542917860979771497894144213809634011840468893354442688841064119146049336319748171307245493968160299374730922075883303326145157310660974800894324779954452524574510268220211066227956140798111203681897273080960128226661673393758713170565193919988558869427640796451218906043212533809463689856564580591696350619814655908847224997248961219212980740895784021604144913181565343340733218785295707601564422838604578160029631831589863721737495937856084110231272192086296221004724994357906882069387441767126613077310431809496450699411335276884446019688928708207713254772872640838552396173702091550287352619016024990162372652142057052469051293860059212880549412397248157765087447571054775316866031744741087130946452177484581329882657213065607539908211153896571992434211288902296631291318461711876021292795788240762173560144562798801241826956154329377687562469906629435751038458113851431712069084096839288922831531938652456091152348713074254666221170586433913113119369921498867937325669764508379403565810076831176984994068799221741417383945103953628712751902348589483931803930779327273070241292457522182456294136844196814055381214836889744933318314996939789919030391015761916602169111291143441556566155535985747119412126923950766055621908039787542025240827123866354073063142900763013271318852604233525869750572043388623142627196429057252723238637411021275242222914884787790967535401223912923030498239687813848834471834000915282283491822035347898969573702703157874710462079631370029293256501738739065622794413687543686006965592948859684096934573767246613828678727357420115850290568419875407651554549687822926727318490175997792263401691082094259665726379723529760481872834031787255855264174922433937701631114499975921532170280586651472270267210077018782624894109303885411279955316049109994369657215759554759890407017623261027668813548100996764916008130057914773116631783922502769106197551130875626310535735523407744344353533040458687323344432366168209627360138686079705799183048995847043235734970641019091057330218496604143560627516449595970158802162201878392006685857476938105310076305779378259923826361660063462322158944565269046744396822939670499578500417749634361601128623250503165547747780988474335371518616714099576416991099082007384871713508580601619666520612747214907096258773830973237570134276406554674572739249757160061958329225323858641474497526179063093959631765165083603300635090170227626918528172163582041512389882483437205696300357605479288790409032093814465566648483151728162810474768099232764378184194682367051347783219730152130202758638868993808867440557039692797977823946568364328630165701620062163483443742614582640920505209697964565866135105906919065324200688784744871689594652227899541271440368556968253646204308788410536038618018556720065074902286686667018531629101252819511339359630555099204739200737754370480398486761942285470873014021320165643023212521083234277270739554030480497248330585989487130224659979663425289938685356929209107305115906452028495823056334971570344165373053801975979303538673712516895684321861362737400462696615784172937325826826729931058250897060309761346545924073469017968612454386827830215408600024675243479426801027153702475471782506644888457807833446023846965384253560532874784853413859376529822821470986458963015460220902465103021484113558624719713264195626454909640583329532613307243936253016547014408766613271451381974164071526881207543853458970949702448038676145748296609148436442272260734407364037603600296212642025248930395283981959706941137028079959005689304956368285296470125827658468168853344082899527765753347253199143339536487039968241994168006234851099476890182411579815865364505220021497243430090681540620953582336347297914645343857518651747902744091421534603285555033859888140610077477845715822758188562541823613375211531103144242286875062666141221442801688507594710121011823971214638189513629172061511713071871048409804850646846853249857697953261288159212776777670529444037144787112200343947265153996092170054096803891339099708928124682305124785302079420398968908145405322515052255417009340884072695462757713261116990151611238296393657836242730688208622821245540275539203614844872333382802651998766596158692027467926753592002778793592458774071220640509032450567706294553102825492108266460653371886145126906402047622097900111896230612302187068658384023362669864790297589497441879036507666426297040421905699861365678906145548428177469540960217829328260037959024757871930280475728565817781888994146998428619071503694408646588661051453360097216126752915584852008060589805722069073378898540219938061200029567066766467119119886543535600949485633670843352813800906274964923297900769823594848252664485228753102027778788476424451141882497683608804982284385563533972915556530635136164769875402270680331780169274372189366688353382925255340027503127111091099282875657600298277907256422021555190105991190362918618733233465344205481882558398183533654430193982871609471611092293134384577890354873466626332915236146251004879657942427968228766922649071946248010236581458922074142935240989918557065636588387190919230841747712067129588492892556269453397809259650886632868363673391588885746265964790849118346894912751585646339577378971838642048328286339386295224358519410614602743451768673565320323145437176621949173545754667272320832949551257141423464292040289393180622138625163534978222809060590096155621498421753579187252704722503511806836898148691318240034540042860354025378454716134506868472245003761629679411778402641215623734095628116651187518645946181947000620201654874355337554974629402938755205831703617460674854045640585867297591866370242820912566684894342580104668021254836276891936239337581821146196327367267147121781090801285252609498226493180545211488134720209854083674468237975083345364767124073295087806965719604047306757273241387516073587534233535089167554855038522410635073862716204716432858962923281164730582859911929019570520265599237129393236238208613789228752667174162956054114841694517711103269127329952796930320473755650495882390402467006489316096465075850348292463976494300608925446881805374216041675202375723558125882685709953233882601805765294898323423366507158981763390817769615880665373970744565789201167722516560735582631549483366162186004124017392999094216705776151977551102063146650452750956771223191004025614391455781546922064207626655535520071286857744648605783606149468566385873056418627703968236875549653272032793763659205744335992164679935225121715594849962069203803012455449780486037785264054427378712147742297214564767807929566480883413808373810797086107413196108167944959457477367774759462027826127057825451153763985130583758071437726590762549692747090488805406964623834184302445843551079804944049148427421210312954136423797216266892762691498526048619366414184517039763822814233061366996234998900504750879295281718471360511718270798529227236146572840431505708237313413937253084350776298972486807585722570077659474719892654099264188125955306957863887340284044758857617046676259674336464842817457379742205029535232336536521819769815828167355886824107214187851940558144775004518923583714798693852276277349534846240329826548988331332187533169368420981832762833675626624589657545701707657626823674347163283308061624221337503948591155850949201237906341581512402891214172292573155966612113060510770647863748621987378047054884611055481051402475951512742096824056130472170965329942221518693087005921134038751394231517151619408753537814001139142732689735723998912958874271679416947998322361264484586687911265078092433751043117559839339040517299622115469024673382679888544972335822110651101128967639549740289505401958364204555066659832920565220081884408391853339493552792232237165462378458102382250669347665190003585469511903140108085749595375133577162276068432036669987554900039892651089186030206406216154193183447848851874509633913738700116671854784401991079662345029297716752092325320893480140370894333094145563947230089726764121219760076271872374726359072698296983456660993230283076018978298374977796821169424047088000358444748462515252208838800655992863435149828372422900295588785782014221933342578848899541775337640507359563654439908525527427921716172736717811739350466841674456743017299441956259222073808764013104008082531757972553490149169995877419783632272713937410386262487683802970185841342698396194774369138931447793856055027370931708620246775753930148420100210332227071010069577319426526503104546261924104883822295093618847567313705662583857622380312093311737780363699850842928603701123369966584038739382851731078738559164434943064718126582827081637177306278535208980994460277170212914850763116761540192566006922523682848285420731317835304333444655497321107345971442152653729042541078851544537703110942921007473385386146624721762532783652288366948529184340038623348749247752916790402940028036172908417261474742604281525966836874535358624857405965783604888905050616841071318624916265963113195228005430783127221004665760217999410768363142229119688317775149811565675306991582726053154167061971615965142170719055267712023247380212500802272573270374315621974489585024974142050062255371692209324233874847218480760030725431906225447414425657894329437917754797786884400849972929115006612559600476538144262339304203095379687693586610154812620547084468372906257901134397473152382824182913419019987423398821182876480075922837353803178425198124529895848610112509250724733173189225682109215658177787737763085083154165683221872561785446759003460121373432575358645293010001606303428605045993903987453349681570636634477233214239984272699232501901351713462860285317813124844171907717361144198398823084976495547289273113209496719527590342421540739841239566256691564922285259545325888489365202010392003678669965548991960932198049608941324125560517931947866752871778544895894463229049504450824539533237726337938766163480492673037873690412277537181893444447620087304593198715111165649559724734349276780068932490039063122508904326646873017364612528088082568397686351618083713432791317726973353002166655610412312581232227953908232295035223706447602894620346920967492878729534665161642059044462887099271094333489039235984678940555234158942466570981064970917340387541875894750088868744453843917224525070455804873139191752342710986574933503177566094295817489276023807917089667747414059553740082875332543584143739378540435261532936819562389120482720066932930951656293232882910995810938398594089680125414487234076667829607930600588109506034398777229032306009124963728956779192982458831471442990538820112645771878310763971175169849157767760068970389188958795744130087993836619031762757247353399916903359595897901718802194600277051115215619899066668322062908540283132478990832879074262616292120937646964172552198567081012493873532838691740924607575968000457400987160753528258540778381143410037428378729154795044868743968151007892939770973333709428655065272447346950036329150409433347179061717021345085305860181843555098671784140898674477657955853636362089794578470497146888542972177464719058010664697676296598655666782155767103153236974818673224205296553856241277508339023571000259787666322411562285913111857015851168100800108848304396679386934817893294022356843200431957458530134573073010296695993941946417574690816281632858914134202972892775033602627467480876387965134739773553576279814318506535045463059866282438371591358136133880249634582764232787255956368843614232612789753621458749659735924603172065884086581365851100404127570095789479691851551032217874864923980426610111690190853988579966794161262806865777292086813510768416842692091517119338832734282366073574614906687789634496508872482769424546576449406651198319889526159901700964772019066758421008860518626263870106411292341244682465410084819640520647010886786988405800489495616118501566958267757332485649713043483047666950902511490707507551465775949534460296939005935310636560575727435671176245626746761545255043597218526368591944001536145503122966325259742000779592276331268185792867037964177052116186550204466432123842076755297556627942510340599085722775495212141961973597844973084723483205129118683293069444197182158162916198407775782568289447270273363622866881421962582744899935892039772706427533691668501448531878127096335373437295140662401836893277659649142742339711864572775712988699720298747602687310937945833538084465618006228764497813535681390728128946081633473961336419370223120518012537354793475288092034300179495786645567500852445012738501491498442805464050935912194058562117330530606246318483659407831882601325269155077940137899289032318823379687012618489567543168417150993942607828429938072596215516838557979425247003296644321318632390534686606286633787751685269442745397148471125869381892399447961630870188999341383787453031610096037386343212366826225535086333366077828902586343803058581158792581813086644366528725673081601226172664625320910851937176439671369190465770094482645903348004026564212721238113492996521361006139090777012996047890085387635337096940606895321080891655174029918610225284716070366536605238683145740796481377948797019257159832101608178206560086135228396919127705280672637476343068735511523949577952180278767356619889413735531006953121418702916286011480563433402186749645987965688128141584316494564746023243666093508526848783271622612468137749123728007980217926804563528685416858695396856860580809809641908133491454822068601826654611268132493435563357607084261819878251341460245992008055357732344473970689177406117958072186863062502245706792362364665029652216122287941752397728984669223832945157555354866048477558087523628845741355359579234576542482040350898590831139222582682299373052760130174647194185541114463241799186067420347023040001053636878700458933183424217324020496750669605885884052364782908186524307145826562497318003922534888199129242232277467082046606014249858310456274398284929661633627599424087148689735475060463040981254148901425461454565029822080464905638509549937828206620130893872093927269756758353206533874689797961478080023833330078397312718610576684116615829326788723777411182120270208498917401705958687790571485286898608634382415505480936146373198563665614464054144721237053654924775488910239217380687375615599261067625743723735281480220745790244263457918355378851979080805783567585552579062651283241052968276538476430393009531579785967647221329026335308155932225335759899209700780162153797211258568968035748559635354850071330090804096307424810723193910828297605421246006669786596461928982381760386620222428887802676265893534884312269303076890653924372642982132002449350899101631044381315494053698621886483098419641845293904999377304541955990756796616909575892452750710928778356025646956417583100942102755877019286778182133733052962362888189637622913972042202399798143510167991544958117816747307962606287037717990368879946929198766111279940039786564062096949329763694995993195423923132542943573326774260952268614131046988757309718507111713977751344810970516956211226672784880409168083953365321482049577323451773830988510186288792784348766761996347961059168994443724648843909919010550660548906454623501175664404998694103921577911757128416552505336702278577456701302261578180294310045030750716580796811725954475290807171195718749006652050974084149987172593266129721016439231959955538622445040082403890905134573914091568075241024482848901534952004967914635065552137792018957758380942739753262968513730321924602693431785790387572176982773971139263101008860866025054346085151597546571687971952152590630679762984782714344289287509386418063994973520048845145801626282728521813418866362583142295983993038933606586553984843880337970994316992505488051824333844225114233090471144848568649365833266343101307449156030239545077881638349385698989474022002333569996617045175449391856242013295932518468073280753613752898807673172100764019157976996318781936619223876558526671843978317883323219288414696678985222498629968027923647737186642367850184426248174077928574835281495688077376494388999552771893584681983349277779394049080718169045200984184852239115497536185712870623810999731115896083982018837369408513736935224525375481796614907053655131951053965961589410949273265471885860395651098840192175681895081559189395752960581246634924815275396083909425647463884549594615743789893634897530586809255672129105737003263277373137326575249214081863754827694051776456311648063443669720400195212259048003259872016035230565680065884100190297697706044544902533687449149217732803347615150215894169171158889603507621541527360622717921949099940493355520551652632787064291966314618850920095059399399547914550810389211869128705207581994063939461051675110727581642094337992205711474280485560599273043735621243675696435279214672412968208637547093764766445659753362882758944264164676026615910343716216472142404907560664106063763325914537409227418295542296116659316195577889386958681713565506231283314975299262641823253394450896913452834309506931097516278074762301177265492896583698128836834575022837581967997710905008921574284185901824130388820603925033703797888780412376167298448227828380182716405067760069510620247061458700050004060760998425246539881521153197126314974305381050134391299194834718060444755787108921960004632482393574049577957710710636839488598573859315673571841307235377796020268946384500013827693848025536812558613354434611052453343375573131302282534205768230850330166661264665140775530204526664819602843485798070659045390486762382127007873726390375184398683599552560336816424753317590958600399915276907018300531119155125235523479457646209964774530285741941182054283142070275893476667495396375708646940838363929784681923771037406214428502665550444500808440592229926975881727723114296656180433436198136963118932958950068180059422133863029344327568208103294932759988307773179514323704429941299091210297995199466693334146844047155765873025698890940248732989011668578591522981184714619324691854822889757423710872072491335834624266175192583193376942127765374762525986447537619769902855994296103356161962017641374017566521212641122545077292320620178105800499849264819204529846494599695676116409549379837917647632994364722274210494009470238129815749420389338147650875995035044608860860267917744897125243294366837267940803703888513223808806860096341867054302998750564110627297319543740724762381258819805090818007970041414829810867613381837983379733137466006869238278136501320285548876106078491765443053590837477877111997091541494175271576691553471952182481867836037811508456840488332653841683034585030746985965657036026337623031459264031825472724246824464597521337967091457032565090488126797892830563342516195824246698604519715323139409337673904105380959870758674832513778126591279469844147923554482525767430357900995242750370171939891361467763752144996049483623266195181125341376446371073122164993422428207099210990504285057664065027682080193378053234470336840208077678853280836733597344956384018427235916659536689595741159124900719760449276533260675205213995831849428618794335848704759420538795029989586132700671129376495103350171558619275286155972184928905247143666327281294200132809470216268109960087325321751532327862254782656585983510293564785948876134137838684983486183725104478539448106982116152919291378682572599142182605669700777922661985440857388004774732334392481517361177402486841224376652141662519809258429878307132369232578134461628177598453434062235822628677298238121779362952332002608511411864197956597356262405119071919974495287332980054005914414302524772642045451220321388131486692973240012364678783086466520647178715180753769013653054145802574505875517378128292312839306018416131352108609919741022908805650764943036011432210785685353998809997580838723351355806017628012557194876397389066929138714045355202895246408465329075069568364314961027795791757887060225877926028823346130042483906546862027314653873308010704867200658788318597410051330255134214161057855891283089193319745946422413357224447375710699905090065333061957447812448379153460838329653167112938073528443832952631505862503158491195703315268059189116463397893226390725118036521844249666717665318543563628388532716724721824378198749945948632426113463037009366988388660618173401219401602364277657581355762059632434974909596555363840072766640862847177095836711099070953660695095211068358225733596003733263615678248378916291793944705339654371912423809933710281774820447329064368811483379484913597681278055016909171063730054438544955245342822244003402281162735482859151198135191020834135922529384641144158402716874901510646437648636338878859802168651807131076435781729643738755020224688880437284177175755559065832933007476087877359236208749679018541812942499561310601947761429687436943576993426060047724063881912304876419278625704599704012725914901920243452125800270608846650961555879423229832700990855555755741310959261402088758556321720059770487672908707069341296803867292649167980673311220957092291284664353522072361559008424496449359095362711012567179213319105379286369545660633978764314538328136768781464767517881530314744460274952569514693723000247917974091429347702608346071749168396681751795486156178994505759108720797555015515285034998552013473129460182890359764049017821438694592673833834605603602482172513274304300098689112052385381539552648422894739200430684252661512961629726525151277429060907316850162025126887206973769519556378601221010306355322705493425753338715616725525773585813178838655921834798953255062139684991857380914067173433518527207277984080339870424980068635758854292517237765888541880755765395190889428528748173525881402751884064116298460522027492304500246472453963218102606942309024123666965900869505190759118322337274793094088256598416662850089693862173524945709368228296825554174142183262864970660279911173872171064960562235730483407135972602289186739135368099763588358600224532969098217696978092955899241484336914433734007273246256307462147165531381301686345699533877731501261256563473402556028721293943707248693609728544027598541954552806090715976927553513382273191320671391515606890239574737994505619208003323717184839830595859564984281011787832169029093022410233846410895971874986724511263206469874681055167479898626304188576155410771753159254692345532499332632738251917302157627770754951140146216478801496022378317787050858415268161869233174283191881723976574542017111894306556365764573199648311689390068650699109403497786840072908763631505782132230057012056045858826928472850916166987684703580241150904349235526747842164762365877586899731706058779957241896105100870529641470096866218997806163829574938635422433518369483892985004401311272941009252293657766124167236051920906374854847015149307519978310438382446888897833608553564575504575145517302978473315301249391975365406891487261182995811755043135618484012709299525563326262424960382992870726249607713774936261712747640865557225408773479228260210630764937719531573010773547664174085006993324362832417134311815080365323893211730204023551665051628353693300343730674377292844931354696898768407304322384213409684612953947874203795448162109445487733230498696453496764349111210277973629091748252854093931451078175108511704913743018679132802669237049923153515465116843148591265277428367664336108165169346495775442782608126174473165131677802436691489098321815929313130320443006417746012099376849912845478149816530825396415789080425290165247948500248284253383796081693429113760357092987671569649622849643561226034212374140535299342831509102295049954408147369032922124241278716517594746235089281139127775912067447151457973841797603411640574276727836128710561321323084180893807163969995944252426185534374641261228350302168445828037300397823704983698492372940948430383924856423566549865134419287168916325763347367696113030401838390255144146750496542962032128950586962708853738873950242546929127241097688339275107378144623931114143723940853103467618836351421077155336676092476396063120479374786177614665436649900259146614559455053735039681256676707678631169007611401195036059343185351069093507866730502912056031124326820733786681432554354173674337485835945744425301893855380918850187421739624645975344065928849941272982255576361717112409242277881635801432336252248806200040291798911595923277585713703066338375910138827277677031947617172158143302147396975912246132791282093842872950120762077861451290351668793900588148907216195318577608258088573989908991598964076326266361939652677274588454624097968524962452624703213515965678839620739204691310302538895573444440933695226147265512999814091527482011315073549045331183471201022865796250495955623747680282496208548613768177776680552957272155526568843292925482292954030134897184674611459313806348378573260086881040904672028126948144747816483159637592651802196811548164843954611300493112619212610315315902400625859880135056561102817199718212301394615272176920842918006462718970587175812892823672550086721577049900744633961665819420525887001611197302951616993585573127535463493141883155875690974607572002400404544909533454105358092946485460173236058939833170096954933614568058258490151495077846108878220874012032940042529820569518053686195476211217850142510444406956732951376142276525554449199121379481121187626334284778138004785278475508480276917281015396513183202678426131500630757591082311452251310759133758340746602244622201434296118786096767055810545232883379217438228173711977957638981688650985292287221459603949789265360903264188183337668497845453132107265089391480152436186479534709207345476104335617418860517242788389481531776293474618058045320214626780038719339025846490661245661369894397002149364703709552936903165755419708745464827282120101575491803829172825117438258118345012184939599686543572840114845086384996641374303634080457241712156492600838919029562302547648558877501172176307039286637612193205153498343411103583477737252520168744972601203433841145714220568208500621768408506238781160103082522180156449334433901910840565272847561208587015210378970680625015478587827843634712830771990078787351370395776900472780068645194297440371104206571891573551222498836280017065107054046672497149965032357264253731205002973628230709033264014513190429735477200045425874370594217618385759541733778428357892279530296006669816247648777619231833407314128908306167454649881369526128855638645899861121187161659493969077261475979176238133018049361596585286167951487475870711846360225223175568246124355192476611581911119925164830344802169312764762184241923813682149568778607557476117673054641348047862683055822101456060939219062141952932145529456584680386909206083273118923199830041793712309802585849505741075312829641229825809922057228359469147045985478793006030901587407361443122274177489660098554505993687704052963766367457799654203155985605632760158824090139146288520804947198186812681736720762400825056014223712342603206360936727608000023329785257817990273550090853395849494177334441725895039742730602568273082893086796932469268930493070173202545303062672924161405593570173776475702324028507871528113911267389509540740945055785265317816217516595415094329257142638443679639039467463947075048531638837693761329240135979924040511474481991360374229683430892536687406029825494960354920373787751089805250983961730563113204622017592256092886674678020517047853188839389880067726342564992556652583890366778506603097640748854744029725411997088050694889598469604977579867924126238509554093720171285335467360229661485150772151141004390550315669201574135744229368313460657556927154071598841027325457597927262967575841979778172142772117007406208406916616059087323391464844576482263656081093247954934899235976950367674965930293678062773901327145233621488667471433451012992019243986996986079982764756800053913044311429480396311655073197571839142829123854391470761302015998114725105859901542194755470828759251582309992152260160693599231752979862200072965198121952928926649465988885881102048092341416452520512407703486320212484335364268529475839226079986157169048490118680038534432048930421680338175347855791350531648725256106815980679777709305194816607818695231499955737971196178603548279184046152266065112181249426923653161244737541997835660516802982829051735148813835116598686139215347407911805310027276990439721863905324757513287692142564930879671818261392763151019057365511714090199990544690782386231921205775671571846107648349044437180996536865110890774036090897075768279038036753399996860217924151456756356533030053871915241609444884395171776152027765850083069200360782862683700057870998986458868729612077607372983135612337514580022036768337167736781943479601881731523205018845562751211614755554502579986659413733855755950471331074874676594949900517604330296475269565766191820794718447829083873989509738869542451940954161841056415318877119133516499258615206118729281639641164680082469529964013983996935314421482327500486950464067576390628235191720740215581610818096964281173823458137240457905161869618534992884896956696494931487895676787041299390159777466770689230871993601058205114564218395501711878912029316808847633248071992694178502810905174077537568991791642466655005394259176784905659434671368102341970751573130896289499838899182155142573937548504089146952750466561412565676163675501854527436533051474168725093375987183283685866633094059532639027076534248808533823088885840206346418004680756788000157140034737319071532990495696895901774159084095345484630582530326133040146539369019695245547215896012740631325332605075857839218648485887807143913266816977683015235916493183779347066029923358221899278411241062966253854265416507776038954728513223809255046189997774884798901751626528340627405848331731331990965323996562484203235659097576142082540108160242771871626663324340116611035256232331696269749265412483201131577943280475455464249365352566049883811687863782505701935772853816927101024838525169077995046213898962477154713875853351712306750007536844645952426862017993416202766892963728677467748407919438574650585528146943710193419381576337491516053321137692697359451418562095340857397779018060285213917011860071728864120475315290254817808147388580125160440113482302724084898403709236405043744348992742414939779287459285944356133908701833286600326973166644200561653133684090420248534037637923806141687955837605407125588024354136399905688871007168768929765358891104869320488229402467409179019723504847183829950032781534105715712991563089911354401252027261811532301635341620609275618342187235934353674878604756828535353497819092577361804870397991731873814907789641179994881811345246085118287855077202777610346844273125585634702177736078742623776632688586814134315099801202448532077306990543487500905654280599491346163479196916369178954452957250496261208396664019036591963352252371155818982820582946282818691409638922778904898164245958891921429778632450898445670786887965207747168165530763034161218687195847955514083451240921882361774282047013846744144634825665905686114161780345164954123449807553304288634990296337250635780263268800831868280990895320163651285583733602842834212107383700977662711174076194590246188511862640160298553212904885952635966547799619304979072847794270917275574881501198502283564071258783132837127325943539005775624457047426653418021146123923766611186488803713207104391038373749090989413320512624545002956234008541191472184067899321655376869404970175653164655194012331380826571238559604702595447504512257265818517012940645043178478340966853046494401816099670023594838757097252673166173086531668594415837833342294593236480136571883136767573845560348693853943060803222520881202369643851410496782790846377656147631031079396234539300415784793736426768345340211399250051147986588579548901775212749089304451326121077654373134915936646322154072206543369374180003501988344430484878864290990679696498474771328897486484845680214289590947868625175927189413414814222270797336136248373421826368549141919653896493791591167641354121814788983745149315639749699803892691856681008255871308313573671170327755877905952526229870454175816604850939601505464286516562744534472438738282716079503155962026408466153406710433455976646910255363313634597201796292728031085117767316415941811519169127388387567939105811987705010927901703886940014411135012784655063913126911676548328910603013885285265833738108500009641565965700072386832512135869809555242858689618853799494859253924354821335785880384793826167346333564621741803046130557670679234842811680033969489067148846491689945217580305206322937576688950429015113496819321728478845334655505401322402560504497211998419753973317215359859129767425133656247780044908437127143472156537141273279758426416178977059031573549606694460030366693965408728130955538043295937308769366091420289494252619600629962240065718846872617638879653778109392049903821888529987518347968714911878882298348847312514983602918895586910495443625072749502787645052335863156151060607860485008368854264315550619616865485535576088191395281680713014717858416870225726880250618021742729548028707717470333297644208976722138909800091312988154976210393369924770767690545616310120562194467319506739123755594687608464305650007381780625569492082917267809528152125550578449618283714726153748792167815395166410248414795552795933528837610887987946153285911386146723385131470053449495751449281906712206758316006868869447800578903863314093357521289235371090322206575038831575143351795464867068248817825347507509821200166683140920565664538841219502301640442653694346774945579941788260126021829586824451659937353526939252292269829860071485800231825341236546010980034065666471209296937497703697926526419760594573724829465861207809902188187513144791613274090175920553329079112565446564321606258606828695668260295774019050514613568330923215952377620820720194238333680635776988461076047378978243143052580260418573786658376230064956974397734785910137276806423031315565412910710136926292566952013075283732702096366646295892350545281881024073938444330373587402057994840427039631968390116651109686540486640272767718668300571273993727998516651112676310091337519366030377430373772827391676422214127146958726880287215446977780270460688045260708429101851469411175589289005844643275610592836332383284789703604639652223139167746241587890914060017382012105821097403636017595846503152505750776228818734102864584284865975326252207725272361923425789503646020866118910365693105239135829142413378281546293699441807292814418719250544979147596601733791199834757525452014133583105691336348328725664079856087787745518535068875396217457432041307877084461664567164970328627894815057099511655076646908864089541258905925173184193361236061277777180087702272418988440460491990450845566349010576868361325285284222321629744690239830431665020644344082279768152041491298968467480083352518407715692515200129519127416160802845078058480536129661089145220346822352888596775557583451564329894438091365280110169159266046628294701923480144021501901177630072414653138809623568644049977227849961555866644935680322850109146931731302815580387015362973357786605614593453544736062133285942671335435848392113294657733744977183960952287484334995350731545861173891422665243072219801972305884774989304721246449143611182075281738900826463295283972049474015594193104387328932282249534807829387853922979557797670715022234179834301511181565326610606262706059541448058696531904086983383205611416888444101223218295006810227319993587417595280742248229150388072167907640919691438442713598151380963396085061347623211360201599348863162155691432080116523619547738587066385495010164594991440533252319168411642608547091332257255418569094978332832909712867321760644072158262868900320033768872733570709119550402363198864939996343576639060003470778375218455746216611157877143017002377583792742429581175792081379431022484751568831515089585000584424248176132666250808702693275204932526101177972838313359319306628270400164097717158976858838190055134552220764533379428314271123788582536786065747931191251721765804256829737531608331841379213726366016638774575805988685110388696605387369886616107654730032867204251733108711505989752902456206149503569883636122361930737781154821720983882238437602235132797427353317200486355905150838567135373027717436350888729724969820713715865766253368283332357476741004261243377536261648146343092495329688720828841232641300727272786849804374901584507530168046475254941741887900985978132398935088936864565516136012158000528221229635058548691259424205031906599692341160953311231302165964527161346163207819646257042267065135307450864674814617493870001960886824793602626554282380031045325551770641255588647299539618594067342523885949707433914573609143262195613291808903091452524780402078114310043706285254236714179238559374381483784895789255093759974088318883836427386786709114482745687841726417311935311022061120656685765291991956757215540850546267207174310495226595999206059156775462486569897185112122384317927856964537054003367690357225106185138956505823358842582860763303147207825021729847049683387562075524172654865827757814012375012409133750592562961373998872305441800249235447713225020771468226909587235967394263575027368534229639628933926481424611485381405621959648768745529718941966705530434941958332339657885542413770383368261100320065806490108104018748340766451586715161552199720581037822274603137232684462525212944581496418629404852317095414873498717109344646345504743038932420119255302188999860636155325654684809060297449933384459332090322661136608580871099191550622133127274896444958180791395376965155091063192226285249059840229997418281593367569130393383334585877354805618662889048539884449710304647550647355391718020204884538663920373844024538841210846444415697323735027110990604960367101184643367240699379436711774344087897895927831089515831935043945516683191007920623484676694836460891910795661498402523634209312126749884214939702340128766161748437787806612252703234094985196290775976352383870392570279611029128523079545960543133276939488220947403115031780460442614828884556778327343086598784865633205475161829061204705081944542804112334291806741727537559324760656080538272824304413839501320585471224428004607542982907484391904351628356833181030513629516683591056503054727203400593360252052936665754983912843790954412509781613743713619698324190899720167465232468278098853832771143799490841413297500401670128191465136325044986913515994184161728369930893611281153395425693111132990953169295343272522922799661265398354469598879159424283498932010837834613534227681481548664421362649869585001816756257075610758781036284852820470579621212329656884644864247996640898443723487979633995247772882717154712442476182459269090616318871580076175550681971275255034693504590997305461704195202860511430206253923894550051698945611395670422797738214767549294997704128792346015820634296939389443368817134384979499373335878250309785726554015520448676340373645162197482432978773212762238038417146964693566256417681974063023881372762676394175224518582120317127280272391161324291774919323324198296849216125377148509660271162697157019061818230925089395583883774462848328752481961658706765981852672403908379431812343195875807890214632900574049959069499464749703808005991137220030760926503846431993491664330408570891634615109546583494016764494865132379435778203032372671841529621159836880986082845490047217763572041888969863149947002878681782166311644450369233100006268866092428506490107084940988506454592500296670640695493137301988453263594130088371342740424686610748666651567895779539122053778992390448743639612969079251077782531350215527666998688652078627852158310684858726493705806426045751780550086040563245782492901782248306156076966373261648759784033300262157906547527585962331680475931210006395338679156595730139440417815527024131707830927487372776550203117722878952436190831401894284001501804274932004871182996661207283363344500965384636991176079251905372241973159969487132746433488983696055990202363023939218787682591479737975803536045624889476812646818901748907986469512314725598677292627753086603428729564924707982844236851347798514411016470704517685354853449491758653981486008595517807608501475275295300351526181647652805912038081267027569103901888341707500542123099765820779603554732161530374456733480838837979691099776408352578597666998084489318157609059282137915178984983291019469321008853591076491774728483732434215259288264500512257986006629265754456780783974968354176999202009635245694296043144172855065472895839530448638441424895965750828028671602019321240397081054246437673409701492210324513121990988768746166028554693561115170448968181200810858257528077307651190876067260052797925827576158564740540427542365127104490007280655752539111069444083604452267711473969006456972187401721346712292548244012909604149276058042995033052249343422919667323771135883101258881718046405576968754784262286877228333494977750909813721520587765956547408704238976879655495126712152618922876225020516868627370004005536694003492747493656191934103026118703111300009289662709462761359907725239552091424600559728340858481945106539113037749284934249055211870887626877422304585675964929889532284812612902623309955167397311613405143450557722110763914373959724899406928270473013496142493862904168502960900811960178049655497993571610812247916952685562589826466907436049298621725280721116262585906163301992078014289525971562485475495670269151526502634667984783384054641613823867177662545813305324754480699120926478678267623528725673875346986531448047503768940781630192004488659006916927661440197080351326224625919534611174360990863225646874231696834543172720202081856177792299740036945250839262619103263674247053590019945796412005105517336572899432363455084356429168202838713145110995266830981049188430826213225309424493981034689128344892093233911422567201538465763667519163701307723017837362445468687746620329285652026443705074673201579760787442894577162587549815190341435557936402960502462166866581683494818570556412291865161153461680681568849030225479896267510072927367622327865249296603661092275708332238579601867646476884726051146858106948780926175644247707005484338916370484189787708380587746296496425497260725674542269531540286917126018764948722569830614567000110923179499771107135135948116244110363245656351145049110141053695820761300035376488821529383823531148855468962607923177991936942888900285473241097650331031435225637432761661257047922675332245188543664304396909560907504366569730582775952047385215026863099533492044122238520050533058409715843840256763194963379732975113672235522035581879112731626224003101107494435292952961313087184941812100886934000225061160539185514117046683471035089991115667837468275758381128171603211418714337506362722239607892178736756071277241890619813740897976988119796026066733878160369486135094320378612919029272322056884360589101325231435894675948788232322599476869733433085000309488266418849967813145299905409782934390492977291398810297542096854742388235984441214951407919340780881277674865700547720465186614017915916719074485774642155230803575514125133970400156861780334727822420278511331142254568784348501424168015861810757014190368760226141323883300620236252624341210746556222959929229402238979109985119229598119663600707797920543723980972770631494414747072221843308116381712803887132620829761840826517444691861196673387613194643162614416285667854538299392251605094146713168740744088469748235459017820436192346028016369133390422308632479970039679184932442453430638794710497221447349524104710950554138028033549120567101172948555294901557768136936815708508340278455487860059296968735340028453774644722367528853961380408413514799128191801565778807333045684956001976658881895707437402362680354602781488396520556752801940033003310908437776918335522437033818914206742247180773018882974224480714703515906629741492891054172698960207991014200078242395640971874278178755003137818147392250168453234855069021873328534079455888267858309656231936588149678341469092036689855172825197003366893539863862434603215397421280433961006780995964389182161869524770914006606967815603831449641064498892384439555012267989412860858324183821931976833286011341879154425876243120084372301187057299519551920197039624025842420183068216564401372481296805555928998478277236674500173925853663932165729187082384946525055547254186996957762154254597385127797750333075261686290023226398596435000699539007123217067976727171264412347724269819412946742952632545155267814928623783143130097537051854193314404425028607865475085733730269506401791475382448279580847383237039677284891497111446632333245154189092414967235155335011430761513715020566571579649989451455189972969375063214586256694451953851446244863577816839940039851644537045626894039695603917753499607722616071101027035419953520189691064704261365110205891626954883783849276025795477911509218110137638706007084250976170203845724037300915529493109634065469535165357640702442620522022992956182897106328223609504582541488685443105435125135429347823220159327392746452485231508647149770759237318341018033777320199210573096279403682250525297223408355721176615069893054129536049811907921803007773834482123025303746743386559879822648732850443659835314609237598626357242664221663232120978430527077739379436960841814797348225355133792718107808836066866950646631964726612979536993607247925959779667854782913202697396995397039642319881409292115671822421522957705026582656222839005686150090131683322801460558899804403960413632728544897148524369492634990628883834089290254980981061015318405778935619773278124033095050284284260189256160793186115438727987457618810609004464494386319059035225282988223400823403346923946507804424310558581806834843728213336700065932724833338706901083027827434918657904953625607534367541182641175214856588464818060983128738225784126542300020794573943785276403739130060370164993347378279710117976122774539385087865341290246800506699086135209599059994833016513860205065123938577482325377900199244213667730674519415102095796460219858820757224546672594729406135064743988260540302626504864345160285246574773814933487327329065881648160839881968968390818921446191642518044978202294408400657471074724869871939078601503327598653636081727319728352067416057515429078847317181216480722600063297174067027424030425585412862328590816721657589548245254704937023397735339182672743289905099962116361825441086479472493304625889436998807162523038503172337044536200690619413044461520197380827543581995834113932969096472591275182873879653456726312531152148377605979618205720006368720055681174406046031062042471018100985440362492251524719339748624077006030960757747476104352039950214452450876648581614373480381713716025638739127447047023955587784771808941440611616939633822074684902786353408987046726414768971683435158740132267960180490914500507579165094687016939728447084519256213430908065350069681609156535735409291252511768396397029513644799339803786049814707078042886533190759749010440290963556112989429792363142100119785651060420934477375023520375739489655559398149589739339371117014446111199799567436985446221905664105550691513501676405872826591868289109379181888537030165771045549260566258337035811564906290341969984749801405300138765167569354934627114249480611223044311487286779160477398720150090419660489862153788379693204441523418208059530222864246436522941538860633586252106513755053190052310978295273249374375185112457369744828765922462532998314318167112627264770453434022933248193678725581712288602103915107516526211019674527081537698793103480837021928791448459549712894375639165528660893579051857458617498160626215032817575756091994897058261268445769455830719143844988025492447785261657778018133991506087240508081350054017283236068809550183613736136432336259725571974515153776217728668582477451069851280133440672827214159190226323458367737500986945378156859291620209296580478260833103661216275765475794852995656995639239592125672818172193028721490141654004214782976112005104894775381613850029842090356281755480372890756609701990561035578616927671642608369960015842943673758912936767917364573994906621079655354829072067235386213493265347535779575707513248967308851079487481983183065193876074108333115756149282645915328174219915670180461475512273176263245112789658084415002013060454900509382269228528966501314364011544528441465990906508538971339163387437244595682504004239904668791116569518944400773387979436320722959966656308366989666609796862868312836898148099914416709881187985793828179008540795478372149207248039907516587119356645557961786062979490457628004604908574447940763147876777580509567682720845749972498080991563652087440683681705653110179528503427483080987785063649465052977455665157283888100207444876813939187797930014600141465797673076462889018898764991885553184890438708345232101982335590196582177581345070316321178546871916574613247602806494906281563952393771346652356703753580332310406998185622321993251928497603362884855375165194739042300795646820267380624078173066413909702065809340167013256462091862943500542743535338736623090537908025714769203379402581515105535681907971695708079615006550744158086972615225390762867833276838514473055798033847004910231445356230480016105169974523934098440242364072578128938674957829022421018631872687458702037238296156886858182766143600425587616630489421756717637914607048292187507547165179673180603618271086144049035430621873334415401571177950758198198960349880412232792161210902905149653035130250219166508300111426414471346944507694205411392814049686728236893141528931153533640833248752639104318327342958009033772897499108499843092224673948660845560934829619361395965973678773648356668478535504969127581391332697607761522986895929739276968498109395879965300318716111030063750226699007833675040923330520571400426949529357361363334592950896634382126655470883710083688807230408309657495778538281905341859786906305834122550422357383921773191987233280141375955186682586421247681034437977949156098091981007527547620356033723660802681306576336295280332918986234991298551063658606383672569142430068252232025664160279843372683722001053232957749967990396984118087786568399343220000285580671979683032213125232392135543929446210894056819232831277814293689544281628557067830812092252329748597732542555534952441895743742584900788695944184397871177204885805628016185156163687018800478686759989831293488407005248104472098108055777059970211129521930629296836181045185263310879087653834688794726821130294607169580890111132319113593432853399573402648562003022320857337862024621498982037409816806305440290200935537293425612003527784503925054239413285262559553185279172224918434165903642711092970632779327874171761814236228015680534209101358051492395157102300953869640767454882677670893387782222564293875709400553471836923054820779152758716620157566659377319593870254559196103902272931867962923479983162689300555099649233236158439416493597657248498385103064724956261303613379501264351847317859828864370577857985685060469658354318154950373205527246133610799510436355501107370614005697593880112675883803017335369654714869855367192359195610060320481470298813453047451344409843405976878493546466735139959017127558895148701873644625563430578360829674706331560159669838679411880832915393507548320830734982944366762257695445477190979107722942992615599605746694905948104338298778994902704951054616663260817894707256436940843068386258047154232500350633106783046478229209451677298503317997463676275159567694028151656915783529979505801551635770537218148109821709391266931042941793534513494560860250109361426875548862039227471318091581049215760236224018722121513809005171876992541374111763331252889779855080362693348447408692135419502463154829637753617393504328569689178166093962054328534255392322482143135289987158976489402874261348722597559539147075243712320245851592711862281890532740856460725550006277353569362110286402542733297590033605324482270436256955851380857791351553331005782119448616611563919776442504798590192009144884309662835036236680753449123915413255909129981037370708050780397522089295569980200370863064704364820101768861234984677301895067691581226720002015561299838321280255809220057526506961700375917625109875613555392746639374219436194945570249117854295189179562903339040586480299686805175992120298371649956654932884941536319516846336661845248116263806697712629818841322521798530024219063485128671562363111019437192723358162365024932304358747163023167669952597686012353083792738387584400383118402753056674323484777244099097194662180779596634193736396553909904955603085453686347644728925089094833389933329968015982517877515508119204683639645059950989026875493629318092834582735254367218387013350798884654726991192940307878111976153954525086599574773119099410117721517113403374403670314847951142707870400587558183052377283210755665208910656844850008367816991778069944494624696196646813438854620952705085506774644277797455653051641492148362018617831072210876992846600821491620407328501132800716283049812757815307082059874741974235371981314912538688436721588590941223632579852560264109238408105836435025688847901926735698102825784971156198985956098380101119073520832498683880912361231027246365709307987749641354444600782534640833835203444742278088009482274291032740068056736660223186212686137176407245424088556808978831275368002180213334797046424967669857514102133887834605875109206805236797215486704943332597840421583753380967394008910634724738922818434861649448155525294011926950734720503242656462286430448496353368722669669928500151336306316618423987649793912967578347382355967424137215058316411942251975236286755550222910517756946714711162693092345883458766231698352623879846597411375794861638802165306037380702731723231157676507299822275185785615898066966433884939986514280891137885741854185565406177996631389666776813088933651435049252237944072779421934003014775238288397449318509690225124520458785760413998522590385218368572941451736814921610340179525426418257690868793748612229666884214234772781043936374493865686144348794565544175252550307836990508931489960019428898622700400572688170850535137951499151618319387775377374391076307927432841755525460485714308806615410389289045629162309693632529368164725529324180821156468098895556936145945917037683773267333647927411590354627325193393008090311818474524585951611951820733094994140028382534994413761191298529983297421843641769604670511554122220368323714764153347429401293155817365236904596820085603985143385928445107462581455104475287025609407875135573288044562236127206390526402201913852463431599224330320808858560849213503081205353084105421888732023240578713401865491483270643103143429401065307965706389936935546737280924121873907357961529777569605884436037837824403336099157705517416964647349749774392821079440430833536275417243478386826677503535364008865573798418140766111645180593054595362591960108471414920780884320545094016884344953922000272794380060042617782513017890414040526318627316865223845589818792698292186909733773249248577705550613636415212008731486074668113386435824246918866360830437486271774225524888620768767349286281517871200327095089863120933825112446225722542959096756263995119504565152943834011596348604035876884251638183337320322227448459024571681988026010675133839430283013181277870033369429207058703005897926450334249418010635730714748210823501543791082565882236626435399751475637612857074726666304904372371962972718091028545354440577324406997805506448509643090849219854802335653551844502754311509113283339045198327492029717660413428168494830144142779225902418444859307511294084051270633334640559790032309418367777182557323832776142200182636157345276353579810779871384525834417220721894206044397237055841028168281264984847761903325501329095097447215577740469019612240233387603760828372372387418453364936842716316360314644728881961718148472085508847194251355694353923368694967123364243778575607167793608682996856347096043557139846284896526586900004426056692275833693552837583992811144905982416755155723261847480183704260623755797576846765462170587802827388349552018674866666313448601855208961753065523236066963561177478522126351524745464148990079990552142983101012228121314728891778694323286996629961157608754905926926011412535490841208783258096529262991636477625494337083721036125212467503849150266000366514348970557442856266884049962535695503210971879948130950930054993242958566462131230977058963958989992195163901152149330197859555810848676079531932067166914052673256420957540984259345586819762350939048422760419329890602647405121191067604851481833902528566563518461542078143705944666502068720400642048636420699228908609853778611197269836165749903519004242071483669931489918847323535446216433405243720417267019625476641083887937441688814951191222489150345031386431779124899043159168397239815325958532786789973682983006339981418564603680831473641021249564555884328296375750658865439261027857599877567096027195926351296124026597811847999389856150955992320990244957061029808798825351876983769828480598833288873153912352853934035284076014667431777475649052145296116644805261811218145968579838941321259422244693059087656593815288340688179081264773305040865870556905680827310343876105487026187289481748371237292996798751220122676724481503826822868647077219233947706166099864419672216031264247614807597572102958966310990288523065270403877477385379360015168829551712877358215734166875710247416598391516119561199524557291859096587089163214706337404172240563483191193820529712288502236509711001029687721582280951652410560314338170986148468114321071661631375173432823104127056122446551738903916561105727788100736046911937627468794831268344484962739238661458466716150915268596690449216672722187216355281434597548064198728314554805748410943800997421718030818637780133227666810383771805567049530672690858877412396874168859361211953432989428248928564736799870009900694115000969877449440473754717669479228791033241231538163200614531835234831125179919827509489630785671827635673484881697659783321400184744558979608860920470480019757479962419162660411560246951390746655430047459541698158572216428507397744933172943834728732712301815267755652167686378911669515897737995374581016326426193436028083773801564775902702855747481675355310366045311058079214735435658132754622341794542714878377944791700899196444086726183395522053758278444601556406468259099207616074901552422104164036715178317359312488500172883679260216307597584710660760945217556306456130739243494076571410716549858382044440129474370707730689855929139007582631849868904877056156789993827339055195395927192295051642764718271638209263743519732163383603669714008548364501814973900261948542294160173998014311282699058291652978206004981271664346589497235808736728617217482178694863048119093807436366792496963316557231239690633696115721938162466774670296507604096574423818172750417500955850787021630820509482261286598120454560380673794207194696296135760533699072079990004599950104131790878573851129984126636480740644999779141805172064158753854930226300996483843511934740337005397585579708097260568014307580934882626432172116966472493966329663110766429015463553343020141730310621138383812175302896894256463156360516079414687571087678764085333059333910575351853703029708998589046843499115257423326947879819111858495198685827080434886060389578962489380648663237115878692154414570749398720190007549943196470440207903123254796039568884001943764239472440149144486389717962862135863816883328159443661778234278485064327714421480969464093871740493014878493623277383863409951415836259381264800993172199616520799375293994457411021205607068570301108357970145394147914623050523624851921471809965075267257027007807043903822332730115169299982397476363554949705843672447477678107865696685914503100808192270878676695280293313798976247717458531243141649421484799276211463899215634233044262679028317679560757577963543702204051621063152661202487536748745927562211791252237636335844404552988891354058754032656083776274784098575309657588908032344904711721998056728311820421697070479319929175050816453655226186324129696292685480911025915312366728757962832824976370858382003073153604102304225381352429133166786669285294387257313914601550420038003023681308383939392395617464259352615295073972858654936179043629822534181822638794485975134827354418262143065220538805176219545812738474345638548426008437769286650767653295139229838752331823997012764585720370069078886933502836172290334237435925666194946902461163144273843119262327727257885954956411312346903146121151539370069937480717939661330390662150852456725550543872235581685788471257079303362817598047450546912552252610616653588919527516346675635826204221889327548537611198395849449377505295114853995453639084623666263266221839544434026545347208148210543996936028766348673399943681926926754537431389258024469618723111078281190087761182734065397399012449433195079965022567957440563548073070523671863705871572236367273125643445308106918381497697337943679167812308226640194899100620030377729628086326123716327179742275090204870142042015415585558888774269339414010130138988363616727391606915381963064249804392111461842871938516250353752632522196982353380779388335011215762011558534722358633559086099270512141915002236810888000031669711600129566438999914337180670087638142431408745240001955109198820385466751581190624757884933297616023473400193053544222448622456947543743124933723925754689930753791916901792217795767679392163215846525775976763447511137519649001611384381552497178561829677787818590443600307981250791308057609868976428766681340521260130001962774497004556955983107291234730834276817327546036155025617953619829832337536634172929253724387803374913167125425975223359970463883835074888481686134954869816837594073057443202641657774173371632515713610433974932227512593855966240302135212590580449624830925170518313068648688342816197779125985188483410206994710410082301757130747205613060661573023666920395764289998951020701984081302858602718828018614739380790798975837472701356389252047406260135276374617631386624255089570700315855388367075215448292022784099737462754328482194323359639098176528632439909584777697823626296527515968138261656741338435813045217988714671863477303867537953741350971138567369283964336565668825035962120817193163982002066754591345550978681485438983588343746929947371332513653168571478152266688227583087612107876138243991213673191961684236228228469927030595275247644282525651145551447860158440178135434907026370176231008985133293351134497823746171569419639519943162873779961278867294266550119934564100647327997147558698621642949640611409680471621513174059408850487657257768024477145550811402264248195893085175084361907923827907762917606547332782086864781899018633410306428165191222400744913451312197336468510646371106420146934277541487739733393020068829353771740139652316607263549878528806822024269280265364075567228531613664144526932656554636161919815728196776815347589174120887859908360848233950728508875990621023469599013338454096681728693623038880035243165213689513021660135571798213141446546851055560776896521102555420116119298540518698899096660213642960131841497831008166588024241456272309469123450827558889977033631542072947074424990940464728205214498297299146596778475566429161130218173728521119930074261123797642494857344232379807158134732905381710578140565195913506305567642947739696319339849491446746027057974374026604897652002025476031904522684959066790431453690550168216615937709270639858129165403261040169856664470887468108306466912331914577264309756777954410634871644557411983458682912136327009045141632138874007885603648960830469916167645380396279560896608579319164823175930676492207144317474871314902446174741371515282325299176275610447459785794566013459827686600327441169177491734460110342974673540852035830908476873844274806690070726114460409932301552172752253508114871117607210430028700036217156563446866911094330138020928209102415185854283584852719714660781901200301888144701290801868018257424548101477662959144493972471725785703460405311105416121370531149113170288778290528603864478564713496292626241820059662494055445893774742255180365222496507934170043205173432588896948964865234150406432230339781140410130731276055911039403431942385675064694471559900671841957257199749331986543415046558841416956009713730099001608698817096451947924839955805150477138630055517099179619053706324914564824494815308657363861365531819489851852469487602063317947377260859906986379634855855111055721493182033202611678117737678475721407072023723133533855520924403389655407331611614221790860849051363236657107650376480884832578865965906594735340106030405593476863910030233592873288078902224636025857416068108082064182685731443511372945500119643647214152812506687255778929997205972835723712367346598279326008419757948391828648104982966791930673237483104031119352690531825273101869414722642004074992460752437961137442340796733621333595378334776557280933741587714420279901073485058855781257774222256171414091659379479212683669632512580651367151846913091603634589851316447942229117504038726675888980520167945150719785789646591904804372696805413300101338096188872970184392210874424021345234746730602113818233590533694940875253777193717320917898341432471352909903796499370775177660041969910514257278518348378605502148463746151727470661898529682744434393459252175971212272254868230491739367273096100350241544179837864114907189727469195656205908828684769955787453962980408432716688919639614337197478148896556150255696976058356609814235583788665536205200720030757953683761280932832610261775611272370222528339197864756053554198565129269536134915886633050318679110942492124282641867556388938939237257823299325479909677311657144757427022786175759502169064088320051805883894157941086093483616591524919223971558612803177188695319170600658911079928078258540378606097412785816941950965001468653126251590394839868835279058376574927271045695270788563178257888508315939633084914709190233114755079215951246615320558996221920689013218721676821571427574671827874108865050788218942151479022848954871877904785089274507579804028425513029873575417303399185388068285803610604358175012177729157242651769029033577994009623483240694490253264112527137579034346741394016290680489813609305340492324206149530923365127856163270744606841344310918672269205734087079258653898813665527111993917673140312607549378059175301472155497133325043313916139136288533113772726701532531132163096982110026941467680407376346755477303403504781321842461907851278973418583477897661006573489833749604639732357206597381739424296489295744644395594593640862023360356075241255217252542884102856753873173942864005026116691284369219375447784587626659912656663188746527798111007852519314661084098546080611755648582015202987465843048039602004383595004047710005008530355001900500889148342113573567937527418695587519403463568906878174672897828110879563640627451533872659576675967188875213362138307691735537983105235582421874543256792698561239500349998587600129724277477762019880830981791652555001248155143524087510202182713012948390931935440350969221864368783516052640545833716334957318755006298582058785242756392207249632113184565785831743254865390857066248053599993683564610029317891208804389710798842222693100173987026525698150760930719705774358274320042022068101132368104873749250883062126128789699353355899779733276077838488531354387252535806801238851604178185903305967635075916208770616798227381035963135836502881187507864662330321037570176012915370566519287588526861583909784872628149128670974190110588785316509726038894608502695397679298586587101097686006256773943866338195083124939387628927730826720955996649446761631093985911223661069137246515371885013531069759109043159050098600118012111159568041231045454753537213478673964216650713528783287158082387001818080425975493572080156100117860494752681877733626900537133943997106185241543673861069103197793170444390510854612310340165267987264601860276682157617166965654731329112528357389108329571656219526819575832807989751519776474795107667050302415498232045188693818257191134116180913041814106496814663388740021709447952918322718858527501770125299189393694741205170796705668401343115616106636912692173647129564702875021570737903396302820052735468908873827864314107194071023424806612863879826972883393382517351549072941951798237445894235771110970145141586350051613153040004347825733711689577886269098514888718844236117798472272396324751181347594437351674750470509353588228935705302957044946767044570285421665768908091576638513487907262072835357427185913352833058896971801407002790716637374413197387048068248791878451772730766693567684349898251015099469151982791596210127983277050858862029835809801647470784157002593963615375694278919293778707857463226245163664758229990303232945492798057799237907241857265278251376528404224716905287375131746149517526582095625538463746772974796120728456849194922009789414014417711572862559938584473443070162293703900587969103652186279474213174137605795882587302074557018770363027254908977972008395826628483698633973052839704559566519167181125255059305932247190453957993381195490644423102538278093762763547077277586162467620804327828065391471885806974317124413863694101976796911594901437197391668936593936974955485534103272900877573194927900791901692222144696637494720344189179379030238475658263409211906495605764953264207945281605458844354809177244570391091865928669281645403700888672064694135170766213478343724022763493357933579802308202335345255371961272520542407104257584860362968880420464966828144094538182699241242938153653678900932460919146627397593354174359555944845655857346350613705919064300880512560554535458496785544925536417911278196383592007800087146971461673170718597818372578958973418947290390006729307920588496161408724232481537977666271145862480971789046628131297313647547434362996364563435664799763366260045678955720323232555232935005069353774992814516031830621738203533761591634945332514140848545885925637219275601976907826736312197992750461112961101751890496636218672079021242194710952944357389627521850440303403824640174546579624232574262923666657301570552065480628016286790825462907671560187880480661201448715962511679163115985574188809955053485540337906996750613601107037978417793299515531267965316847889359506648775000222276729194741732158860013454993543123199915459207492877212667071913648906209585241010903057398902728232124523357959779183526415963977231724997776894467592688776145242628486418679081011101699272007551412923636337597346306226666504718227715849383720119292381473745499794680831525793711599403061659503283387339380202114686888714376260281670147654801681849604626382575125246911103185813755947180341814719878173142210890195357487102537307654086757609693022545667866451265297500952087740204941473665151814404556078525980285392347962484230707252405833421235880459933371484090200652458455734027734232972658868373804874809270444128407734043456523740286330287198608808134976249574140456183288637177360832718946919971885199335770447831367531634766247720076717202644526971745372597644657588805842446545030683693657530678044292452242846596808776368493387734266777619095914667030950729586988099442421047357469408085372480368395718627381483125410474016784267324468136473516698488514891281931572859255917360804803676837224425960180921873023734498272897218102501765870427799066720467539358517715411519888960301239511114288071927282815653593311055190466928458089797481506871944109488964425139907830450001747469667432199728398188182676413902529938465298288908303721163002417616020754598238798680999554800228927834059742238703809258332151645628166736194997012190658488499855349317081043390533978246456437382078071339658955700159553331009782312159738705223553943009745107454806409327015827327106468019568918025684561661598592459731439020512845597891417332983638293388482779656575444704393203674972736857768379144382379528094381085780995435240024986018584176016391914474529575513824144757290370330033218742118780297768258594936610064765518079978623951784911355586148279552494783094076462490561486073218619782927097682315362104344221608083693485543310409653833053001293730765734158100667061729474815902719064786499442941482909848113800896448719795140603587841920158259778596154419361430873320842434491285860144574048613761654199379119771079815478832183703982882031233613460890269485674894022290116788097173887799627184135571835433797903537739891524027114759218424709216325980233888543841430849229613992684966114147444181791107787941843433147665876263373616104457226330557688407991436353544340395412143789711273044423313105907092231754461606267590116378588830206764181463683351291500513612147116805576023149945378549177529201932587532929957150005874836311462925904046787426797079467714071375429125577601730386321252223315704583013312753974907661529087892490481278762836711324213061252795692280690390997330921822029943293004634817452153057181307481470372791834108886255457381725742592228881567285144342104384158668691353208424964224601444402363734227562808400736444652140130521471909841168798260331721377432964871178735374111453317909080380481380856548368362701453283472502571136444498318981140624499642788255638821427364951626563122249489906901923516614960383812926933209181141052581698802021594362274091630251893747171619959310805908564178688479706769514436169673711352059868779103346313502796030873703892916187650842332242300961347164810431254841534190686146103014517002531422149309405911646342624828676970440401291976040931736932167250570418129473567713145051389504420947758126385254220739539646624152101479373206017023941979296608808056159778047707279492869610618346078616730001517080616957605275558628920841183450336281327224199877370055286340625276417826354500317792674643487699928546211537689883963012843316389198844373564385912895831639595920050959009773291885098800120796862125368457884267510881142738241897393559877830413287825646470989574833319670218174967610113533597315231730825778750870065724869697953739897638694802401135149893701270925302127607732704226889492395825477975821716230354547653361840078706727087655658847960057682925392158635714445930183943810406964969708469562121494499217505843154977262940343351143509098053067293615196747477830671885832965946899167766064472825425906589450551676310796585834770305732404871913324573574766466288442096266771624930519730213597660028335943140732223915631905878989717178609615915218936537933013532485387466752853062623433690587975215091668429620610519847751462488767891320309347184724482205038465665798713799261872602803258417129957122011513488970349309215750866739371179692038485944135907676635098239365386424624588793153076869181013966229888227649585057791503104245623848536826333528461284369563484752496648337935623555162698987276531044964107423217877139844744050782823499113071295621546541654908786518333708834374526525416360289122038595326520244996042495318076051635993454390689004239741266529914401166306250932495168789086861428003749628960540704680566609407846317602689872515461695746103231561231226226476490130027632581002291457580220592534504193076854175387684227061942796255182701192278605484103203758276682378958394241591133523316482050438896633866599158924216936246798141762271644928193495319045722984828917172962660781902777736945178086715054590232662758940524001384367557622347490444736752544119446705647012386947649837734683870037205796085902467641761751182685544672933329188753674333033530398671616384927561162636176040168767697563125979238369839777068988950419953780298162500718045518867703978703289336051440106812641062994816850537916745710220859472430305993883688503126498137789254386314891971673612815480498798875532716064772654849984775816047395450590016087277643706138277665676029104733701896622221715915936436648180513309778943777612359157306060846898232176158185116278266683748533342316565314227779593336647906464122910463753126724082946151303275971799826249623934904969730911821021123361258691174577137655040957314414741099843537605804000198901065310550441523554130034937243267671985976943753694020610830523210575367607456826336452176180129010750616936377306984848893546960126262529453264181279648056321711719326880484303925823309292991670047552317374323884922140342947537320219725372700352573809968371522139449838479941122505386912899658040914506444040041697880042706360276405693031359623023892311158958929507336110115433505401698428462152911115779321039205966567752202363222920340782577013504574788865517442070287841729234982786835932670158587062028974337200393672672104752179345612092416429438647611503695809787510906353642729195118783441367450995105402029785615161847340574739518110164955736562515063762372934028595340545435046001925641627865888371547677662242771375320359444080068708808455075158282919762922188725700779713651951315582514407986328034701095211971055501013927849058265420813546714168523621912320059195514915951525964081905544879867689370682296434040987855555055658688403428224014725680584902749971676259899780792869594688084529591193395506282262743631684594749333192806931195539434032600408394594911733593231656077030609220293211987615483004403171878799641567600223316440064139980903324269447765882842686959217765761973751238086983720713442779880695937122441178900248077286555849047901189994187596217014215229915437146367679040423214848185440519756838720536335243159164958699711269719941795311896788404562865425623735306226411883319395562029149140944946626089190242491747119753864615738873121527002048228905322688727322852188750391082108526256917486585324400952758687443723996496585265216768242515589953162635688421506004390393656353196375659475604805748704720864847371404811526030582919496447109580261367886899786051689709887139023657993294141966079524683300715557119499195187266933073784874912780567232153316753556819231976921449900176707816015654132628910468827782180443504868399792836654726058417776231768758569440964984692775083404110035889452171890952994182379687700264727909067816217154883308596297225587104693953924193888516694889060229615650108065827443181335937804721498087235747032485427921989696330762476663406083304348631445542570691539052247266868188709639538757979834838425131950794495567979820198232471266963739024428784994791345024748163315686069537952025107225590732873843249669069017219083280070799861971794224736776938746333791692309760885563954621006625851240383528044342427766896405765084710640071577688902770226593914035060788750870210019470969419780377099963765292484202104705904924381216957878612588136186637261650469778884246402042422732977296416708266410516374230924363917565775283733228030119638720674294527665768606006575925398628852153290998254868117233845367242753990720566990427221584681033065849931243293431071256410264188426881751670649394904719360031852665966018264997841625156849199560374757815079720089104350943118666611878039273802426608822137773623704492822832719154074323295317756812099092018424473283880228922678298556344189517775468311459646969426753900513907417003522680225867496283975677359923390376454627181288962725228096464513662394663274979154609622428892155417319796174867277186457882941726600898911322434803959549252295446752711330319116521876736627411361767598005269311273010394262723770413145587995288110715953116815964480755976029436521286027458424284267406382666985841814154084586617651115137235202351496385163163699336684241746104671810225282976956302403921205105562039140122192187282129955204392276990444970656420552481062122256968881372538657946734928699232424142008075552481478994506405568326437120320444436990514227781795911954080530291012163992169641015521691993602800182016381471387988269010950316052183270090068455250386099459279781277357603888721257567130656999495104943635305940239637671673776666893399836772087274287725009184927950997211550654965381410035180802010167706617691596473881353384592138935341315624209976121278751637258210276362821627410286393257526169793107636044489531752653225204847334452134301188748268843303992881741459456627833790907911463192832343221282576731952347145402356418657850073709604774532168096118451052397824320019973933640382666711022912370956618571360961929636313915920327101889180759801114598283441934664031918776205562807655026553138491731588993578679528552152013532965064490448811312136137524013475352703691848783812735075549960923896108645012418734375511446345576116039544920312606634899867888097399760826562126677237404558223136186873536745467319498442903703670661012726140581805285070354525499501456067117636064743028599215292233190862113917392492689152775780158779330865884174391296006359551555832391908793989961044799513661570924761293158439840273489354399246838463543601823910247557458098664632233598481355047616977597868140396581986731401473035460788857290661071763917697182688714803938210765255323884704509900537892160490008687002524801371774277408194732060069644688474348500188814098248012872436376078588476313972186775559760676294486049359050580121785488229595038171515694656654111876588269127931772404891222423811160014407829712543837221497900951653120927957363215051573724666686722096258122851919920875774798385851499663947892972795575559949324293075330317321692103636133387909124328103379931968387654226466825175378463521020739801053458205722225784811103587620193483686346361968132383555616472429524142837626213564078478314231006586392443266186330614070947963346982693111809863122295573050766874021190212311418929170571348529074246025773500451643221131606148327268705251478857296246732530702587216223750353656502956311465491833630877004072652359167702197320853944904999126554515458040938921393097882445694676412858753181431581230933751051419710163074300247793556654103161750667850497885996130624410856335805064252781082455358354094800766135714533438657265519921441165348072380815428018368154728936169942549363718408645598710797399677019088364162320483366567705531776403069836505135577179547080974038987333905197930311776802310321529089446400481778259995567199107378767777647680839349305667444800132725675280724841378115642725011321155146388204144209172785674831986412549613340076473850875136377688234280160046374439837730470812405983610763064389576554384217201829662281500628665019642026863139947149821855790688984496988032549460402238733249531863066230486220485571566085389383560979763869024250146052452822011659629311678202341959688803302659116092789973320442086025946978641996094790307938427645073310322186632905722128706487188168027234740055541370701215542066578886677049488542697532377531814682112043918089279593373148889659982336989055125963302114062434417017140944057341033346795112143052179381469260484867717719953994756515876396968440715109213325407021245646125494394183099917978558690884833113261963731484554374351719409704681135694730528911399582199599600582324300414479642569767262168068796711774062830489707276983895124508317684907906521773050172714694727539123250911286914066941637095948226837060523270162715439852482816379280189688367482848355546157811926160463278563462435256848417664369782911058663786096255764742380180238911201357326134270546228089021172552402588174900412599666854171366556976153232722136358592478977508961873496059017919963103972511004964842654643409638657684274624747196072658977868159089454944049739020630495564487916785606240753778109258621509238241668160950868627011905714015243990094058720229954223398698478553153420020686076689379238125838707839568096919287555590288417656919530547768926329572795459495898604203065193562436069552844104998777928739946799178352293975191330351767348721191634970387086972761530241951845976281036903704472101922913419466257057421856984411993349254172549284170353235495251204607100923717797087097083036878197850433105769762524333119094683200181864828918648413282331930179334598180449914926313010361895686004517157648630659518946283224717312388456448419111223999809380338803803680300597264013431520097353419192915370184175287261214727514541889600184954202343715593602311388554240339158230931500109381788786993943565742650696920476603089167511496201495155816574140585423932061758892190277791188292410327967441040811145625405560349507553371059988248490283982381269196829675794074403409475947174803915892457270605933048322230026558159996756868015847051982972096019956647489012411345642625505783158034288141888719926808361217614623328441321932548254092496348452497144181597083869911851131067221042142466225107719431950167767945809856314190305833319826605898997697026792420442819247067420047338654036221349113939081732175990064452609961137069502204478621826392344800204303136634102395841740457596892430600938600688798338265051940726844578332012921195280197392381114308616313799958315669315070137078350953110741764687533229493393113299482877818563582847273477640854349124195006132769981524830262277134592204491727627247867467263663873434812420198312125976703933990077324884838570163755536929771926708627610780151953131461834021311738858632591108278195280717745713727874850404089136788626254080181976030954279149126450195462921411609057577377428693553209664654566109383111592295576664018023579643891865213547676549151595148968729848239234647691900493104959897796031890443520709847367246733557826506889029545911556363284189756833981349134178111651482890791335987512064278960447587735810662463350842024282135692511465050447747764869180386145758878057627996579384551774200637749150579273237342902472296367894467318207643355190401720863372934300073637121793451908144641262566980550367417729144211513553549172453008010637343314948442015657615852092305482341353692304684077200917413830490670709319390820609724021419730690452665608726464595489776731824396844838505918860859330865001106141056930615967850292388788885303297435027219362290884845612200654580256722416216979703149778884023865228117241776609481706491733454523747719683516626371139017940600525585307540708058029454030960746096650967178980699939370083133928607036512428762701253659618685659518257598710875458418915218540814608569851176518683277833836685016832849552664612733415402578189687271638476989847411592702569328136953604108427908419790221034999602699374754190763487248431660324307753434654314167318522281715483672733564489231308194461598852462464850188274838678922049168481830803646369506474256003510625248931869305924793273472763693453702197807436658577254280360614229910561871174271540189888562134591186530953830408274160210856876871858229488702859818195668437228690134804379263372613361677106828368853254991529006609422787650298252037175138110633541132420292733638292499188552857287259970156679962993288104148155932373730112507900893526742791480135327948719693715321427159077794337799087703302713389455848433573817063462341226930649409328411245488285681680467908523331058053539400243800865559628460399559085762766254184669745967283661949134114183997246947847991912997883329157724746457779256033550272855137736200600633307111593164394172135964457483652732120544636054569557701069020811874736265985232330659011907716796068965408302267105157584455646006171696580296713813050944015468594448365431187823038948421296053778127235462843273908857791947593614544686926251352567718831921291882471310249349155460575971741588135022012372678953875441930823165517205846614207688573023519351070426995764500043765535636629055857080014926423617601885081258891010499528926985621587194084273727086766945826912225346923642407917497780295552338140591322102721520277247105577944058335631028220567873235581740836797436344776001139329201410801297739647103432784226940440437511036107245634765616212444670758554714857586237445060700527607343982587635077895694386079092492442735230667370065153489059776575328531751174168494868825247908584432641190346056586627972078582858490016877876427048717790617311497305386459719341140919694482956415772396672106998964675479468132568999752802848977344683432812020036323350456027524514846603599249778143928917362844772135837803631252044577499863870122595324233512745284386742391843453390199803137079008850434497407643177502072555803701397867583697850040798349297910614029827232039747077633393837828454626426760538641288427189072027541930068685654375124542318743597111360228860006189230927974087514234445221864121922761789817602779007647883103378207978461714029026951478517702483613225906297808022209932662426631892597239441727368634122150269319330513211692039041733248364004800215287097190184241507733419961208244840372599974805220835663654104583381059128450025907505518365056105267682552497542331105275467873258576638071827872845364474851919992584048076467809245477252623737411064686889256230318492012868236104204168537464516511006667637750535405016803461342248116467964526119830064670967657831473051251588245747225117240950714123853657945005461288748235191491288137299426505387012464960582180450539104485789471037116091665177926204451386779261156075475942704105209272177289522643943877338623285278961992864515065667520979087541148873794120373086094812363105241940138630086419600657156723014884078921763204534368650582672047282293699336917167160825719987013037119181212770983537427774094355504276812373745016190694958775450871897496255843836818227072661631387909582520513549688603969321971031931424110786655976204293172295015038440373011225139833190195061962351063608118053737988764788599128326131965750710057835773768061960946000617763551551790957830049926114206459771148992956937133970546725437500844500766637265531898921369220246089929155606284356824487799296927135820987267359682036749247214098365217254864349200501672865792524730245737358001293495798832828286634390359544727203926602907230331190111275956509763399075039391369246590876777415459669706960605470467113482971505589180469885071018738308340356745919555955555767650115414406363536069559476392271321157388888282442355428100671816254471196358246987474262152282820716358306035780418745794090928161061260468537143876932124754071508286014024905679332672300558758235040174197499608491595247103082582104861914839515761745639351817528491059426558755277950966482251870077783394735406057998945640486556974170354037674191043535503965763778853152820804582165160991296990315770697147430754446991566848114628126806232272830903618332791770893071307991939779055333594107568217436155485031298281499814273249994059317179108293706429367047367776569098648414332490181550272907877829813384608210376738207872572348052424723343790933495384910497450224160116737628518653120782328351905837125965396367180280063868521223772136497625252774184237314398965567953377469579296856901263524809358173290303841958100137855547087503608118179680093865095622609949267314199743633410311499123244019890718408227698365437574445193606862803663581628133353089858445533306015465838630767766898960705263341386588255110623201491715236377081035013398713582217298161590000778574189006599354518277128426874211911232720855532564636074404246820456275395198940010110975522938961176146174770404469201373853956240795805890820424316802692184182279034599757818876914280407151046405818415674175431550042719888530531917353473191740447348950559833702769281511722153612565028016861927082510582027655656028325059243261274892362339477320456115308648320329313762474672807299375306686974776516315223134311540383123441022287330398709919044005962354124757478593056013743430984326331574296075780980420805595608633787786412992543974526103859402396607852951555373474704596329660604874169937073150024521884417402499916005287221332965413438049450380872069959629717366781550200326545730696683047689594847873054538346347292894715786495937022795531521673675532299241061263330648749824882822296047185488748495942466496276119140899622375449605673084522424583460990372220789693246357578617288502011930195839570621839866750489137883760404520275016435155742740522149479625297438073887577329038485599242872577562413434419991406581368555662185676272255513559582095037832407718090952497397980977647637630859739780478757674346900983164048096849926029822810587194884777643421144439748645988684764222437841499304437638364919123840753515407958779831366177904887412485713395024430849277331701502945890899466417308263594573158339752544264385129573308708054740157015117931303502853391671770865033961627321549041961319373951358888276941505954562902592321378270576935566320302743550684948035347459879458587774721214627841282773322125352422179256291001810895470143627554321129216311512249935323248279432833778512514606840103697577049551663866194113359376088447186954622785651566111937696799581786574283952655106545342029413080267938271421998053669837607968557266554116272948596626935102273326296522232548451582435227760335051111968465066322531465896951903684112912651478532152072238723693870213312015456443560887591757109272247348671460423771934970307189554509641568657250033962341897802465399547313083657167671662464736349599696276972444440737975904309000348623755783185065373029196636915565433910905267418973931451009291603873417159032724275443265677591805262921103251872977136256645925892372538710147969644611460057205702337492455891847560789576522860991829450450182405534069138397744927885423197003397586828662938877029527716686709014066459879987341613569822480810888475573130308688507570576814566021365887305347569293643496454013661418397465923330543067209212997229465806514028861565851643963903406530857300361391052574879172079945858470401016677770838280374738902453609348683832128386976606432955825601241279297688123712607096062764580544816857137909188522898109223888589022996622491197854887180883898179893347034936525707205225934280067025922285078834017704400735508153161203306125136589710208988462743861138560163645858984632582579489432078681896409558539734360394262624439377061442338540041280420734799935404423328009314840252220848093974290898529887321396916173678086683057149135192624759579496268121924982429311216724552610530656747614023541033348054101005834658944728290530539401478340307203511919651890726677105519497016313749893133340182164094935248675921402481488329594336244343552802911485671255290731106395954076302836319036781393422737929319053983216981216694152958243144543533322894139873512784358265907528155047310766570015970029235668041709371756891837491260081840335448741167384677549319696424172065936694795958643711891434751860590794814071514906126374197843060865875865572002896035057158758127636331212934863569625496145323815605139893903472146409560978100387898472298255463157197087856972334683880069713907546116855122837469804752890475490873717120897708498568001204242581567442275399518398451977056202119860581699906692061057021957771894233737403682719820546723307961202590731931530271529780882817465754420298329465142620238516297854371737143308684711571668854654424636604109318813523649921230571872158391187713457580794286406047534277942587702772280403936402671201576337873617962711320127211455882840346951916610009710575411896067480317295387503465603958611070226090197755084250522968194974871549517620868421502680122278573690141149767976860178726092672538239728757572937460883859303327624242981724557589195279985737611519290803282845261077583948047073504387316793151623355877759689378245133776344159919746344347234205624746330251873212563589457832220680509780919159633161754770723620978266612912785532533181914029410972823856007096885168680179898598259105613317205136617674672653852414830205972234003869304766835403833331969033370809720702332029498825493821013943618623305795714032066393856983650969693746591414531002655380021851827922406412436503142113767247912465795010808258214186002758381039176044518067598397142653898691627971845533002534771337161512633746076387037851115766518774712561556719711153856428165320669339884324740094716899750018747286785845861024063207404690457216189395561713324006961051537891379092828096819864770324571792119269583157384230484100747455837614843551608101175842837074342702549250344403211377228472858539074933183994056203456679847463940909941565897035404238702203255945309771592024199131165301343154651064300059014552686450223325412165744332139536272590300257489560973069948341274278453699470824188575555960657888129554870495108358461211868481441627843226102710039726239949046544651524678320024939057927792850064898745613874125731809093227066248075453121273283143008054204002881277502966496982731885995775283006347053664451157526128705032222592139379504487923595630661071247256172483227554720571736776009584163209663533252387614696860563214924739230682924593988272941577211487511016187505129504800576188696174771920276524388413762696119169531660595829116657998823983976803336211180205731910661945249869747147194649759998448487732929582393410462949825223718512590429062379895295712582742474197900756968309809615696764787628821173951340904198280741610670386355827490871191880362503429485247365196396102141741019152592837046850447105533482773763799084841908458123185918089077201698323692235865627303404376293110321460701370778255667835368680054008913391045417577502682629588418246189122845170395497604181244713814972454397209226289560719878552718417742565601356353569154873700128700819434006174503943861997389974581766816219433497142791187434782908633408500887773979730208692075040898959070274753866086638373786435811296759553175946491391419172257754648595411278344622957028426934229666539684673912882195290330627480422569187501159668322181682789712824086888411895797575153750987048299985302427288093695029857892165801632033390132063888519129867141371991045020398424932272174437660552403662865201737793433123639461443102927022086975527077075798813167374553443455364532113007240447863056227927309672962627049574256348830008685951464144421915646898807059103388714190913298752397370665366783086472070902257896680231503990427702432918822450514619138304979035987110716332755790912750105761649937910543618714219654864898517941365944038074650222984603259416964640428906647527761017571518889668572273855428690307122624152145035883499606955236002867912901862842257883124270533403104916196974252125927865124813166473945844384614470764628273553018402086976891414933565031421810209132712150663669965572670539565323013704529398060414357130775287497364712932632644072545316838464537015759655483965618773356826745888340595245061930183235298840000888469789656036383756970801587944588850975639861055644867120664755822242018629544350246384001080112246644748546266052088681687070948773025446049611658255851969718183163937745872164058209683806398993771594271162769212100593262965525783543955704981982871841693464801324277761879800361725964291454021883760065446959074780057357202897598848852234328590544211484834737193440645251060150268784785070595783747188698947630481824272301975419181672760115938384054786674754470066867072208992015709390362652894185281044182316745913620576687719334478352253801289068790438099292572474700959721855914450086469598063007262225266783763549046113889066670920928623327045742441547228199683452897582438540940891252043470140732240317352979902214452488164419370558810440924226669305513496022139837682791484766466968411062880035045895683672473118328907566883833893681845430979900892637977389826011996612891404388664870648960553918199330145226720589660211769952622121746812269176670040091135948466093457152745359923223674017365833899369332808445150031078224538928896166073025122832706030782581880014572268950218233674854878168387758906574462974443004545475087194035273614777340311793882210156253452605846170176576447785456798966829421272271961725261084506157274306880520200130989942429264349897795232082167902090028243820510675133419502950779943934460719108191430128840828196376564810241809999777228990356917751407325554912905616104091389490271439787036576564598200918523176423110088065571667185659597933186451133015172583044207616134986873253995511045062296667824647565441663045570351348582768971228554533966318521340094762884399184614195029789111241294459497564792931247625125548636394108319438738399406094461596053140693529462323887824421784667634947907654639492990663129520320446454420202163802419387910638592473650881099880469292381278728332028484845862270057594356728404604461103362842251261252390456466489290469258133067834331730607451928223936538520263890671583843014432406182284899543244393060761460531861133488097942563686931431139352519927734000763278914326312766488551359072921639050702404859781894529003564032238573841071367306166201258219364861677783095184556291997670536946760443135290424555338770828219938613391185004647419466498475448543044325509396125703348538043504124467726247224081514000466246275238994434987148880366623034612751476101337217191154614888978669789210172539856236658161725873022605004332412844508203592318558151708846866723132847974456032643804885412843299318853484904886486829105508985638109652054543133489003393073558430408825875784351198650471698924164792647420060668226002472093719493359932400993920458636798255048156928723872945299823314437131383388872941620644888162387038910422744994539023301429024871511193288555142992346817690352457379660492184543021467380566682660318870744800485584617528115952748298444511233102839317123430208812123002132906475532123132973562581638228018293484835717790462975582532801852181028682290262831170538606442821352329136335966001612613956822495894764986554236620872524939566515864112844052746626386258668935240525228789941978372537420331736152463807997137607246455227541618296938867445621565047497292319658338048447661435866137988659683072415633250193593138598811332631383524529968441740216035193015265825391670463409351990369390673637174149921403918802657786587118608661934920103831206629353065864475326320685941257469378973558822329589982127032352395969932312455757547103318290427612237201230066759433906820403616011233541886099471356418768234984851125259256183408705230799287102050264167325282676552171113983909744865298023368152273380874511345864471987880595097616112385165120001177835618803573527909386332372348700518676282217267572154592443119678627603615470258759163931995045645426044203623317930118200829669261394876363097317608033354424032683791238438732810712727991523554793554626071114657582814523792927827841876879580988390384801104137811323630986054609582629264020676774591794036010687340786217736060792713627830895906611027106706149682502961466189938110460036525968959206024785712196342154259392551201991818678520819649851447192950053458234542790736874552297290072045158402291422523708061275075777555724046048702513204624763000348310944584257250348408647942095896643434210468119771828699521595243965280083080424126117038694124415800539554888336472884018389763797054270666682289807896621950812257931461179891499360487834438300269673642588269048262256861294471857816982044580583605352620112406761105384545396903695918939407064773019036584238653782613954224254850459530096878802009692388018432453300878031988834158285575854884833150813285816141537174853099831174061776691714659236068326904200803034072500482216397956683944072135303214665559823123851700747526346426208006849338778223116633844991786430935574338646851151011325169857362609893501958236455579826993684795807625530902266779198296178918250137218285719682073433216806842647798119192048041313054404165062593612742601336491967022246085177063388779755581963638685257063620926621774067517173795158705200636545782651892985023597482500501913037689664329567983092884062506143115092932053270745175819079502107311973563829174298788454163526496692921817593023705841695888078827211881555606252347587683733542570560030294721769532129453491989429862341943213483732046903255555540701800187613483527958970466827911376208290214303975516145164284552339828385186505437384205988326968278292393070930942029358355814482853764409051261914247262256538091164565755990203752840447864134175565835294012542332994894324847159631308481221740929170894225122116725711794924616125534952371780112587476394642120385240443120610769267305304558786353211933623883565658720977729895818759720919207736071930185877114819380850804826780007880929328943745788188403400224822915491840969189769753768697999925999625631865977404193624852879816820145330804474815376320663413117701357751629389136748316284529094746493202346768664988446754018758022919454035538995532604792779947086654390153430802091680125387033333281978839506943792864888443236972224437115480042737763433056168801348343070766267839194673453522923440278983196532417139938058979507641584556625016787027921031918098187324594754170746619125923794278241398016993254789314989227303032914031508394622130405050362406287530940190773582925525079680402725496360803670259297558135864925774543972447539006690261270017971723836098815188141078113580803490038539488466057959116407309598431672650913500415513713157727390401540196050275999278996701847461978838600526728124019884161063083466508944034135235608557569868110570998872832455073768329051890488652125374875571957834818487201880939330639395543957023960527577793007003713258819177986830974857822689213025601302208933507264756091928563508381009299732557810289325060760552354761607565527260270309721756334385012741325218072479593316991525548025259485572171493144818143293108743453136920702244668658177723082053471902056171338622881169190602421555721950452333566978549655060983539866063715754453556528846871261104040518769835671274028242762202472477337872303942246673080264052267516438950229746931671511324213975019169573034578721034656454212420429413607115020188210422539440950653827522864739385520933836287786044698034767915978855175585961871123953225828999255997916973221479471779584003530682431698496240339352367553714395767014397988428425941907024596673728305535818160128356512985612788041371036939611711500938129455064385165163021529440290376745335788226734247657823898046771916622431697332329224145004047599754627858251719780575174815820989850174916941558217522708394023712770800667964759207955528486089537351677196064986090309727526357331885504626673815255295138331073993000418599314761346997197128958208453207681775941313997348986022138645827801230215806732483358034371292796854259186514927848644840865852981685724072747720134216849979870193972729334351281274426387841369335819025532389676031722131799112576982429614311953348031540504289599532421119166352724671844286132634353620679310365438704786204743233482603572400572170355619051757950555897180852571050159046150362772684122765881413210303021370650907668326514597784830904515010186052867173045069251738734755422707613813294122688403967277649956860383255120388175814435936785883588324606030527920547501706219072232972324979385712768775940810376167139303838823752392187267640043646435042914085254186355196659574424454797695406405600278037338761960389324181780440629189405118837483749789485491611399519786729294712233289277877246590792361240115802685213693703505340001909787274488200138666823944413376077536640500707160690818629548710864640390664747387596452768790730059915088998965365722257849357297737146940002135907253352009208388322032263630362644234130724379593721153473171727093560378860334467721933780491258682364545151448776536904454206516988770898247965778041570165111802905904785513690363318062084589268926143124166171174958648847112603334104624070212644194727315190456788613294315622076188616680337755279675878626883746069317236087049258046845684000929813404971702868282443723228517582628414991967220986186116291311107427885752467245923892752834550001743003607405687762513432944018499411099732542047452348892195627087565059686894915392226550529170022374399485207490353844391651343545212539676952591357801348753278874110133025154547147301316193978554241578229922300934122797144426957228322795345988009328822794006815793641582429665279022013912689739348608958815395484029597693398374212337169184370713232395907165188645402164790879926799492835176048077515566730504079640383812238878355063010276818323302272482895880317384452083992473295856996253849884143849269329088905534277929185610449824078162635807102121480750368836653630567663966828797998952330095185310710274087159696013652920946237381552362583440602516541546618984051858298055350262828651571584502275075612713546166847095251475593951016212953822272734586755950915991259600811578850068069393363899688078277001743638478075264570388724342177563001845461010230052310889092457743753565761326869631767277493787835503358769724399722547346151413287711465772448594229863775477147037778699789518102858795039378850723490843013402473697680720048241097000641887050136088800942746292109247225020802573440270088841722677522631087218094655740395335065319444500864601578436718209708622260894370635185662686767688711773671147612292924022087415179592606135420164397224901484938262479126178012039360003854274140747318100919082386029676612961830779856984950241582802099865780751715597396508436474770976100944673439399449805038685676171871398306120393916246105274686803913505958799810327475183112134887743521816677009171335996849977613155545110252160228745458719770665521062027902197864549622279126482066132771545352997437988714754335723094871859568522962435792563818020231274685779832737147255069559505952068418006344606220390341340334969738616267183011725668877239421296244901439686479573131979055599932648505022250413143552544070269052237723076165659846772854609691607873491845729485757210527277651590501479932489212967551595963789400703052505447471090180425577857889157947978087037045235420024519970621908770761057374823631355539102120820586603807897681735918342177131062682405992651662531203284690526221530694655412198042262410945760082199335642650458320793251063913390286997897175113499965475300837072500717042694823578339509677774654807750870536935683815442791017261773075594408647758346093841723756428572917326026989927300612335575281341486708039210733649127963186368197990503075803638635801189121313358463254837643726611081053189051035164440588807502164625076055066995698130114687676551989746622011653909534862524789323987190208908796079963370654090472634426772006555939911813360002060587746835020896915701096547184831490149028854499889516518906388844950866870584139107092387648064713105424814131990298544985189252755594333017277511319574475551703847309330947388170523384729011072629337332411990978996454225350310475438889393131969794768191644659394151158672421521984599532370111589138775512103888363184671248270487828457527797436428215148045148971509975689746168604321693461182336320419051026021282313968039205398196320925602125345156893739649125758603461624262372620604277334715583101901565912410156110018349702439320986346217903266375117389528189001835875080804539194231587957526699074853661052962641980292622389536579354532117013601660390054322754385181831749601939291592045438557475799473215044295031917274346644560681070606376445769919531054545169248683940472059441469851208919956336847668031744761143441985660277316673576131214477923795028008926924611386637895012625781373302103300036114708328659814654188167511803524204667168759605750075024682404174628495773970364455962163953828632922720228835398338723761274975704874289491412485621348941174445954546251473909423522006533398881303101415207531206213086570017371031152076877435714752559763294419621251570298862597936792166912948556767219110323663319384220838992340104858842617205372234428219367995551531062965674104999773848309305755267787828008832989983031401535576375377049607100934637749565024458102954306867030170720420692552738604518319539366146500379850656947924742599148410916698464306140677304553611146122147377431358432011512097142680514007196282915806693770148797355730449367324253364829299407662787602073136299500705747837868016564005660666770864851347655770548912365116761352090560964288231108897545724726843511595396206173949944825391043598458359418872598981474872006636970158624465294401262841060208451468933672238880468165044781201220354921138510317358763945611048322559852699710834588176668705684546857443290019610510040035853492335712154100371897921220573564383742864637250344061447884161394560165236251068917263883695206526295846685704759038842269707232086491140004591731129898751772240493430418427430853469961493599405324532140796498408366510073489811355494348325501158991061592474822188330095125306988813240769109477778802381438361341849221048215322373164099867541961567329017248753355388652233707995990731678658574358221823261201692666080196744413143931287877908941127225091952583898159123727950156949655358146674503436906060744473768475250673968417143465585314038143739453693246211230462314195066111318136015267560888055125346800435623221685586810250913569787512392037319443384906353308008152072887800664934046601002685488244503970077145427132220294375464708397319030789294218485833525559061920281103501544929381283769356695849775655192673127990096603188102590215288045833571958100076392653923043393349929196554737362311567373012214169687126609774770265839847663331108132246086373297655228907585453641337828366574572679402927681950675903330573794096070722955102422761799188250142440331425506458875390015189307810014347473342120957174821207643618173725492338828324646999886395517074254413703370561404589851759202229446722892460644590738130028760651216938800859105839096554062888012655891843151442416805279160616685314132200616540400778723553197062856828913215044552736559046976615874025348932085562349129300241569595279765406251047277972175609428920191482424264826716593422873904110543892218297491917199847053018993437859020810443113591461011153097496432150091381620315618178093539187523610362815988957447226550511343940107052552135417287884541728053620702170106094982514634944630490867355841421440000071720817655520204272330462910852156304770964400586087306874326909004933663254770053641679951982697263945616276508264379073566436122010504889030039025165226405950429244166128954059265683925621918460808487221986309475606398377339539486711490563283454531349129874356735902688893439717243350034697218706485383691497440859822084018698981097247541070777606945725107863675840931130803918940221538742698888933563503625279796844004822230672667378383144705139586987732832147058219722882108281767801906714240531752296043643216721941615268118129157036194843097582792314321975891292932010505649200910807297925596935240920036156378222856354050756713953540092066423789834581166596619573758318986180011880784176162402183740834696578867830744914762617523285758756112961131747107747181251041048835085264354706980724103863522606519958280092971988761165955774829702522907138322827127430890924571011998129424242529920632799616832363107677646758031916076433263914454746583094947332508713462391038911776255354225469452875888943061210547725287488662633491722653850281687422342427544464025412486898326761422886290092894796172191211225098512004735438072122135984743181475165200861916292905253501552232014879628951722228341965560478637315337447895033560577285245255893105862236413576854515449181992757818937229196900252886208834010829621641656858570543952352185476920451749518356072077589516365274413543499157405402058416870244479490462585795257207474370348259723951762466509016532755957407199613877735089554474210925323590898690559425240027731271115224096785306931650378417282818575626767824355963755514386170511261233042554309271030747461864466174646436606300286741399633543988188910311597719608886881143579357538821934211540424463604444378122791588806387692546639139001605109380384858463486733717288607362314285499131686707835827123020694354597186653714561555951642576728980007997789004786546140949636595402451848786848701364123806770310320329669722561757764259489294545089563326751933671961250581935271525105020442998405945961803880827702715426998442642921305484350583337074076681896048054922374476177062543792505136531836759500857722454001168041104642740517693191904041084141467740083348669696447104667238630416878594020557012204417768610765565857706980374278805110169153611097185254201487310248270455688484553783258790572084490465783540442271732798081112988516449640829728629003150877710304187886833985302474465348988328066025805751320631020123087801864032509371617066393720228565627758349391389224083374245642018308452007853450178035561034074639997974706331387598195388301450118304626873377151112211520739761577041887208032840232107117842947411063464520650117696822814564415301279269200251308780072303987235071679830857393218578278679841171065777360040987871288153338907534781659411614850145575317168529950707927075074529446510553440065500258225188741276930894667140541520155007754124585475609786714627751352269798603453384044437327207217359841338699976229104516373030175894937728041368314107761515619490771110778513204372355971029977413099313301658532434267085905893580547410111875997275352552594544843293347433475081019223265638581823700437830589318530472053147809228567178120152471049294244756272121193557728234529287845400922109479753995034638922193510171797262084517168489706034834642549425345214346994015155442601938258875170083574188260606054366841744786580603813121974473227383845070259299157792795044511756886412979444827576751826210997862153970979748851671957186988904119975089978810318277063581446855824177285031008309115526508273269865533654290258105182905159480949878619826786258372283471621110994955214247585375832406140167131836690292989628424877541563810811432447253165881577679015146160903152515812310287251711999564961963312881019087403953392532463728410814341544432300537497303196109046292632079550028051203184088274981688831038172335381792451463544090756478916237711871001258546232447957647554969498335207469490532980230273024122107949599587997470160145559484818078221947225757026468115523112202319773137439451911041897328583551378468641423473537299326357815056475155682272470370903757939554214308635015196106627641957901690241180803169719503722942197791467753799831393555590399248132360765079487957227236954607594518806477178370031139379757264354616285579720519150850057919402862858847695289355567075451440098036989928034748099971616904850523565045783516845439670576326218798980676589809591949041204372710829117566040733581344410408521461426171825222377924823051408533698826557070147066609458107835268259135812698159079545088800669447500084637519445314285064528046197258526489996188788339017478027034883745980066388614824063661793720889446846727928611329408387668879766164450930653213668847361295609183100904606966303140395618027401764106431570211372627968648829444345500239675823274324919538496978587336476388651468569149550674511919975786136748954735622973792870996295314162703978484238690667014152353377446014894280048173382788175001373318601680565025624904884571561943115162003934913036949757320809087531241490167795331149422208745516023297097053683112228563883996169789126871465108050092932229285047613072212969960634895740345912147095649050823453794180732493775882771246060432850204705737322637529491472783337805619737163443301010685387856426385641156227400032744834202077609771260812412310345929322512387204700685327721726756340356111125823133584753904547570525812604503263511916799297796083585923498205364727515215578959605761964673276633439011564298714525357283051043371810314345915489689993573952732473273747803415708661762712706946756210575593706241759910558248053672232397183094699225296340727736614466771270577726370449172847831048941306465053625631130875522295319519701630077653587971912810512130056708319076925936961293641573610525694980307683990285621969334634847083967962216721722322544767532661290449060826054062688199577210676367174633350793681932751848562830703238141313313818493215739153014093860460494125733452601901594316632094951695750399874889673670057779251015521330244251335671863246405596663421906045342659810809367587208182482684162497265240354153863487052799989114050578345593015807044234576706272563420855513869708722795109787787076133420724188594490465700989946764065486567194514547695138830732238993738065647126942059249245178100810287559553638974265465641220696727913227288689376615949643540423338881271892102307575735199628847221837599108855025179257399575639485465651208892427140252610934372213672248712411328591988748982866145212514375582761433471851825324788415500296456998090523041642886428223742410513884740574994360220715662889110695307644693488059468963700641723716886426441306097555192767345013874245779133665097891276489975705554531450776361081347354090496426037412432645563529121275845657024214942522574151378264473667741180596954176172908739647941747892210107189426554774087721481909137013396266233889782726880236617983751782867508347308402080429880615587630355556323866019196856802811262526067322708323540005946424995813795487673965462454341756445511305321456827086185409083595575951073159773529839231525651138677146468714688167167402682481452155328014926025188566606089326743051083031252254034084524397249961318673973630677770836708938800798652848964743449787935614313804050159324443076766598582211741476846036808975537777546246982121593954398902202186495084335271727133191392543884661880106994832557356560234734913635559741811689234014038242172848994165162393738210452345089149681613866581276934174028295966098641176960231462118345208290523502068060023456156491766655312348212589301883857445847061425537197862831283880896238568648252304416190832484737543074225394765455959695968268129033332914559584572563637614654883232508884369278802360997417015334198169483566261758509410339904762328539464439060585422774617456042722711968279284615095690103067692998026960613616991948927502138885920009378623809625031003417131220657275855735992109567100129689841382707555206883021349414677300174832837621348841647639992805028166852538389005895866089371832776669599217673105388948332060917564935987339103761428395225002652328490547232430581669637931548139565999005990375949285173034708062676023313346079851458359322784532711133301446136216573036539567352519556731904562758611254950240522139754220776393226300358272677323672047993173147800458555516687935027245718040186281736642458146446224561521936827837232986779097633206582318991234003503723827786330740997668752847724774860071529360276873573007718338852356786306348548513520303633774465552239439727740398139498213691217084029364584409891496960584785557528592015508631057245020703976096612447807728396097996650091326514880994629153164830725474134816066236351897312577946261417299706967510206937548781878188097024188547969164440593542602140446184190516602395541914019247827853306725654505809375590974849533377236245421264012733349104107386327460329185196021216309530893285370851334396226148423728194864970065697998314443132292089786567747537319787989919294075530781698980389446656424754673883794379600729581577306057962247328684965151598510934816973551691460662253551221095990062030865774918473705041256988386441928604984447801309854618768284405373493970672064032672493538461606269887097699948411040625451701433520276417304901177451287527129087121912597572357891810321616754904751693322764753954184198039371306463814142653262827963047714462397025748983787839957724056969392473675660676871966543082602836595774146732073459603521515078507592609466078807621245352252175328459433913320425719473279921117150215312053247704568781087274584983258990294656383991266966762305662865977667495948884263847097175609597565530908321827723150540923152379130778362509019459007149508592592967002072138717789688509398412791925493447228295301396957016622396553805512085139892334529449175633493517054308012608240131214293286762456852542342920587620563266871844021143863286766617967338151636945313578708054359836324218747724394189127817815506860989584181276833547348721065638405971010898740001728419857712038227987166061807919796941570013988414249541849134554765052045893188274880948824348028615361945599783923463248572504305044601995899320963463092543270074212393034865025105764166494594306554809873225125216260117962169670938322496534570866742768597698472750311768234083582792850512283432121860804459663253943028537190132425609780757692367939358729324581199694352616554261782378371416567003572464278111766085925263024160688456739630308815208551894280952301510899387834678963927115076538682118748738311632025971843287034854989632892437493891194705107970297954223052248383289358790728112246530913651213062895346824975138654799772035028902994479128146180859138572644478695396997226567722026263262320959159368236930999574357700045096648648522030533266690480626844646280031344253959297438984313600728779400934013872982157160247201958617612514601359825007282485639956195955782910866866607430594075970922959723234143678889841388300847761234587848743908429783991070184408690389697394533049036142867591760226292531204749158412986206782669686199815005125983657354293433386152985634099357812046324799719858987973889955803013574245291881065893298207304231943712609578776496018629397695478378122779706940359565710762369165009034680399859622989408502511529986337177769885528205953512435562289309778997572392187870937197170648590721938005880187118773442344133171974377261024065522299808353239485717014690549424804687229703617742086634748755119425517787078351915486236781339727954946863855769766562919628908361950334805280954009373412666614371473387474940558244523589564192203971590987228587203282058192292499681572947101103687432355848011533126731791808635891620470151043314575441779604891627439986399326390943745360653078889611621829360439447947474752495409572988422799951687151841484162832494171678272260584030625939780735811467213898544806748430650054977073695357635058585160888632372752363649354729611190250406812638182256952399371709770218464848787662160625884056963292152893660387431140822503256123267143720325235525837884067683183648660118569648134776031599543863331736691296221964619844900423424593340228287505485421425362261132781980091966036164004949507288125643369936456758810258941088765587739160955718116227727906054444139324466364361071011211508794849347260480365010546361765673198324409259296202849897054652760525971782383901806819032235183913287698693726723870886756839363037857018828932139130199128931106138297482724522956687932356334631870365002679579578279770698278541507582192606558436097093874566732716042337510050523390333871951876270730275839499760097033155949961520286510188775846702899794177842934651504767935744781801958227200884926629219270511592973523497590051758518229287302820496969124604936482188737513156193985539142166171306685828855891688377283869337902348625539653749738665563714847387606890879060705317752989585375480112729238795012109089974121890490378419441728847029260778454068460543821121422984775790345192399489407838147067767209246937290342767076922505556680998290154824944647826316428508502155720704410128643371046401503683109522015437968656794059499877061217596177117288567099373744920991725799878764984267398606148537895440601219163008235094962009401978884167462213190578821138072224080423799468262714538918833982326515369803178264330999099989756932705801116974838819342493230500808500095906228836327302573708123437504669992647952951816203543120214832167054372874955639824889533014926008493248674912798513742550968340400776364630338609422619053330110414234878298871852461176292716236403606829995649046426747576092953758137544502366900960904889728756824477073179911806326040744240572968090805858863823620212516509636112464684366493121770923037971664310604207867837028355652676470868447983787426082845802155429405301063488205717341578777345428483253233079167247035123180964727191820023211165360215223784536655259798073905228544632202642739150432460239907158890136281638368847668830091917278581370051306526383282462895449609726154756669772797622796602262209091290061110045285861844601984417755299724875181585431120392197767215530070925615039722291723525522234300816277170799967563788543469278072465923226214379980680712733060588797793454334185108194968722106211333836368434338518938945050763076940415556952474678175388238114040312133231404828114499690515054122184360898516414800129867340065175371779101837118298090715029936503806806955968074750073624351616135643280871800436378978488031436595302225337595097324399477039790706784876339494317260649271593288328990029296853231933622117829995676250935781360880344046198358533050105921452700226454758358431187733775357837718258136337759546094930167011344925155371786327318859311377897210233695388953378091254360675994035935454233879952846767450115151356403666253001403220067882558594236774016512587015942151108742881813309397913921631032866197489286945732287765691617303149769804260505735811865928197373543343848530836203877670504697297630565455958122377102123690142874324560065098473599354540043361572367095607135830133960736721943164217719609839979237252750512842343548067327876407098953576509850683188710175954830588744422788974201664376663238615803374003518515276081458233862925834190725478148373344909570125513224513659486676340187852827946491822095698427120992172039546054656666364842441613891710910566119178204873181649556397942336847488999280741663952075313235731395260321680867991955903422144204633364075649023313602395753823451704516688694571650283288431314467193509711686941486489661368853053652441053170035892216281782165822902852276911792273597477924858373840623717263746777560215108443305593943073307101783957454737245302183656227084674500514595676730440214342042328264297829892177830372045321499658127832691159953939963878037883482000182655041726411058165628119426772804119310638104423243299096841620065511150800372207617090445614426499621081573225022842420175977254076839676036544799860435308957650377175906600118103717712327331479412788924970904086785205615413396938612632231446939129826861498538785534418575533991064433591880398532722086057274155886621665157013099638956477580412012336003266932051894762049178841877410221023516433623457503275036303301671231639343109733632277180225035270970758645163451312856346677311969494043401659077697549923143998640366565838828640993237879432928920568101611509537232595500346647197226863324670670148750852680362930302967281842362188503408840902770208977361132786558252533655949054713906938543192644115558661936495670337294240683585315652348128620552578868413623082326785318017571316055154573197704581369956443694961979571024830145938319455486835028931566855584115923749137288844490867624584829758528770929878083966494592848712036583087653081745494862284157359594030905112401184668530201694399626582219597662382102506229872451403791414954523318912753613664209900963050715885123086743612759892916654575956984773800861375495553344654020593680490651936427890172967759812323155788957219809346776698242782525424937798640440206427310370624155774479066613713789953870798936360394649393289327137881254507409482576236956460045141352767350370664281463433425592059371474171415906389349216111082960159328376484358266335001505588797838313166744239591152731853826013174611272117535483663404867889872401666788913527209214668755201457080536745418004838545377480975709539231386516786541530241625662332576660903021651403349777034691350135770381465602636665350757287125770561595695241841080859144987704607078931183731892390850470339136962585012105976340376100372656651774953378974733581559987458075855196398822584154770037853576575242036046177072472746628752707869687219716332136685291111783009753494476424793651405107256372287661440489160830954655301084970361445886793124846143219278088869182084425421730517557821892715584218250952717715655522718282234531071874198887794633501966001032349574682267638905608083367072159198846171447537661932853136315058499701520794269369014077826555931564828489934969109341269576070934436818108329802606141008159329237381016180614721818643135003617568413103402239678685049676221092864385307553247718640354579881319301888869375388373371199542278044662295812042443703882096969498320670079472168869490737998055122935023923449523371937313127074123280735692041088735728478612484874285291247649939870367899626332779668554351541032776071987193162122038511196470441830296685250847844430285985518660750064303375937953877720139454312407822300605532137181098984621637916015095842867817821693276620466698763336442071824109395991350857714658206519097131392798250816030647514672438953058038286922454076349459861382475842445215005493825207660835603716537243121164265453580079581356314951120511119894491000852698066258096089123672105040960434461140927945933490998072428076953060987244368792202701008272195138323818183973391680581947817758660836185404042820537367336277025069136236341351622601925104151305965881128702626404181938447733510237107517118355030881458808266451833738122502624278321672333683308420973263531274691318965907529662439204945574354341117696657768671222962021040601429669738619929233660410349505236706707401243394221522182737999344027076206450004126124791701181016085718677388942060216977783864177081181278563378837627561225256746263492481418744369958592661004904012302697672900737815658235881470872744583332585062348444354127069290698377488180371536605881929437811142465071814723711336467747803353292786007729391004922392813911672816161869645384693491330590179367075935123324090147504828996856670413711590480754517351696436919008903002914787839946892325560315136951713571108990843404654373841960389442460577613701991793236592115965221609864116544089947307997959952056306546700444087427494973411789436477756560873742442354211116297107713387553426853993009499163650237792249523477077656156044689900211483288535414039170162188444650640997830351538336254044422221976094130713386584203432821449801628510926074896889846823065927218987254909182349031441404459934247484466344800810054112558796717782232450472560966096167568083766153563966105847629031763331643442551975864949092307171798033128555791804079236430470898586365765263438292946093690458934082513222705507121782197554762242969193504943294296784883215010119469676490838493898247851506076437099825883131441508017357604110899142817976431238339910584061297149169715297488258140442401935076854507063165456456257963269525373485389451708998724317802636254735222550676101191954365663827236687044284276675816565198816519990949228456386810040519978424798380667382019480571983382948720112088995546162388814101576851399183873681542069563610787045291498122643856329417662978770930230016685656023308467317795529194591802382065864773763015012284692653528329771254644616122964882217705215738519568140872155295450915891701445265742912871157334290963369135505588912748586820338964521706696335836601486080939382178493269334075465040792055176612004750628278055404548977602004190234720268636961653708120441169147787133664501829273611100858943878602514529379795659944851151147093169079788366316815540627679504943747462769867271951344326826849361262105424760840142138049511251481303740801552969225581148521056884814819529132465238534223259763929227216591209926790551704254947220918317361383881039696800642908871916278859351430590990853448975677048457250509045284899423321105993124684296791194044021761576835780770052323539609368625993316062562734397763183878295490797981080819782865378723026257231197504196327305713307126369199578369659632457193524028680770750504640408550602119269098114216000600489974693577497807717623804608587866760801881736062201954917077320987454589091292109218305887441018175870576390246430254777668832025598076185114013369528527500347209579676419697997955005040049828866378723211044226748008554874442616674091293076593985837675417144778467944727803935992269649585470000049881220513329152907832046199855266767891477599579354451893033473671797756746500791625557422911023266636812161587483291569702062039645683506726415868456518217301085774977740215996041945332968495959773653318369311854718222361807311348815346771136939551757864665536304609521828898745007193331771409601810338404240051161976433921431123280134865186715230031444573357405626848455311166223592362664607810208186317597079720509458747765498390393224908748499895857449416296760502866384592979933768250938011953169366502839974833789508987848437704536141596677996257480467193538913383859276741573580324861862195336652883690157077866062233162588182554914294161964268310982581171312902671524064792623554358408791661232355074360779311814145568173560877473610217587105105502194552935428074212808613511004697296064080915616911466662364053109923310548527226382212633697916062503165761937207877173971831342121855786808088284282357362027201823861251646783728027578413912846812869900815971005306765078304132269544459325754741201848141353476460049179298907782253257249024179125269562883983348465955746279440148637033841652744452792485310003333934714919713849168172730246600099612440586437561155094304181148742487064928228427679613455917227679301489522548223384059502629464298984195659925219638342326736136268853600216396777298678178875467694708663709331902334444687135951823739548199397848177301102518007799144708500192730413001942699176527927068444547448995173138686988269438839214760107320364383281927629551568004193665635543177130419262604736561332238500772078531263382745896273594387054882373275847464631716950571903184380094986545239396339649878912263343813359917350786234434883891922319065977207340648861312510866931416164649434769981468011294928115534004834244999045702218692901488892655014718547964052807915269204058237732702571402910226383581979107019428749233001328463999375183675123286694379997377925995003642417431049631668484983674717341015228277375029264258787202678804221512778051308432451375048642296153811873979111510951430881864200788200923545721430532036077608371316678502343454012761179758020105827860981815128329243514810946400644769320673509170389059515748046997170800812202467842508423581636579645427449672483900351296648493881466305394098023214086717757169635954176726023889271317348411148776942465054935760068088359263644616975254739517530930647780344647796822853379081584070330753748664312459385682776370071286887359864354856940775481988984560562303498025048752229370561916541669910257626612443633442781201961802510801297598552180387204154727664278229129359421044475877027960311406607522074125377028156292825916030793129528444121754498353536688775537779267938877914054579441139799797651337961111533366430524874393726298820893767694172296352172146756844183623835151172874318783458219104800528713352002039407637654756488124452272696957650762302502287144930768738894965796295188279888275902084555331507275209218157214665177832958365210261911628226481038047923388166542098050639541326069537544395317727504793839917336073066169087937012620820177968673135300435343389254770421399116198869163129051150841416133142572397911884563426958837139877434800713570985939270264443778770013283320322080214190540655689884349299927496753749132944996412178056459399286430508895994961839254980018454630486670751818515316858071198210987798338947081165915709447500014408357373232023447571819572892060971554902959277214954417895734197950954725623480181612175200788456877377452540602520881327266793014410471641935308809667423176488528076419716406655305340996095321072585530481357049175058561230158998344672781163825491633217365955657867951970667167961471387908563993560448169760712360245978605266387540538305149818804158108548327769039946178913035200713368921030888984153746950038577772260859475922672967097190477255632948486613135021962117640513250860735383922326129053823079361565323820630547556131184174024810862017113931660636595288408888218316677115280848247373533997503709587151365968649626541217871598782864405022503491692019883634677068316726803250438517691406485278405082791624920392992326091279078638202788077503720584178576357016264856679358310710130929059192735264037968125767539288620960189985464081863661306353487257606695771940635260341336644360233444488939880665692993427816142960379465989682991362300033907443193359427790800850469738444511723376133753515402052535320652568082101235606588718584323982969061624957514194884716977186870101849209293396588710990982976369378731167436916014004537969949471947107974658195427896529356268652726815708021055532388870224048833303942076010396896872747202851499591155817633689789686215652006054618921891177005858015783262884623457043291186604504341676769427354842835007722075143531456318507163058441300809781261859173949615977191942278460082509737214694491429542951414198168859882204547598963703799113214266978124845379743644561644938635359999370968305467063324930555463636213745797410661572542364698371266069353888103643024695134172721822087389888261877799979889320285854313804779196272801596000995105774824124825141041875370200553735921970830590265770470334626636747480039987737989142071551224557073209405850627582906524641168677000620442426662265709152919637633651738157969112563348008655479904571611550476579638156515102864440398808338358833936704675617419792029907218601495874104435543029235953849361134755429953968048490177634187197077348245595065758448326754858890965423719599912782838016547941638373177085856886101669261160380951951172297415770625116935146873028071207714064832818206245067317215586315067654804123245879293962376082499290742512435641776753485001357075011963637482713122102822849746446747840111575230086581470459733493455954935369582546129652714084604837904109531339466601727458042345331261257621046185822002008162246486558944837932556937718247338278355428178888797720129446443713870770139860374676785940083873207860427876886851300718872108082888212101252329731466995233293746278370139703683952583030463594435236222983606818710939288447269053163650309767629140747376917794665992537949757726649288400635135411848148317876151974939915175146987618466826439689643267663422043510406212273482665780207413640429765618289671927194835466291703241692860863986794066977704748904299782253969297618980592260009695612069104316814928268220575402934465067551989433224153703097452535515227973916433685719733223593524746493730968141412608746626421309059850397983987036469139490545616415589453726098929311198175791742120807767763504957605547829007747723241031414757994651534409354997279113523958110269752181822101433136807541353937360510903429766585507520978499250510055325341515627768824115229323558996410663939850888416025714740593277129290961804643571792982814353018885516370107204769506865258673002409285295764453470494567895848223286849430068214466692611379279782300119257350492521916165483651715516975787211056678988862219557923552351337337432078560093568990866019786432360034082540992368621886684116102371387235228720907813325489487541704912899220167930999241347336113306871474496288084087330447086611579197230453957308455365878579785662136762852544650296861970887158881182368532529771116385592098831466733297009811142400694432077308308681653062568811811782889834827996160089652704917707419562641057957041830447749135036228604088814831701050526979739662802871450182918950602277008261789920000622548453672401277843594427381848266012902173789157135065198522724740880501478110413700364848297033472838165321501294740215340413364515373715163683158226073956054748314639068932827102936212398007101467732769378298537942066594187314691178618317634766627518911535536781845094251511143966264671218025132289748510226266693591436922344514820213986480653664640451391217376984440098090421550485052472759127408279252913754817483185435373647188965167667817725077113140686216575273606715946481498788808703288838815665086067319488058915055140251940105337148988683592747764898907701532365158820951921992553924346506060674264938459119423189949222995243051342394868425949961689221358746418636293708628977698645817168434895461188667553067716090671241217558921807730758828808580988557287501658285126453303181110106619278850013235652363951673141686217981604303147601930025109801494544909225766204857826884561568295108176077892410681201781851652076414419150748435693499465198991209135527265672707256058488481126159467419208364163376902009227352355396799076304902945413304983452550977277188173674591369432825236545350081081233152299101710083678149897211373360007410235284803282471621475461747791173295851474054874480669574626655205956767061917927207332517946938018005611048334571634700029486654628537074946996338378420573767383554026756169881267145563364524399320319171620733737096715015351947359123785435162030842104091030682354467096887017131341356807770608803933382761822314763597674865569793984150214175371933122206009664747930304507692196038871426546125008005773444324921238234365751922986626917893674628544223013209444082626235871233663793673365156972109819052957103973235281934024348076402559840654366594013081796989854785526736650127014043342467688947612006277143697483625369741753868140799614465180883069416877920271858905777865114347319347291580125527201315151894451811733391398730922169791501654990657080841605948625036193549497477736579099253773973378392028021363635853456606537751515626328459409809557196621138229501403790116487028896595431955813391002045878840927907449071306063301736231762210457839084356240247675515330223440720637575190524371346645887132808091410008982212559761089689635818005281694045956781452774461681533429083012173261298305733262751609739262521717003588403564070952122739623108236975041354351206074697557067862235530063574368672434242533934159719605415174433521912679663682520581738260525717216769786260946097440069703612704854328612883420354371959570142365038028410028909775840943156650560281811637326288795093610789876976183577058429343510246648987341147583657286736210185849084688656846222532104307016817937072746599064257798515572785057756398290788879999983890634700203684928866938714549653678066517594671557130565256959235475179221270097868329691910408128776362221035413702203561699687939893234459810597270506085203704258500350055475806228119289958658865916017790194366934368886490292938508374564777790490125418502474970068349598512709203858649422413982834757981506407230892394328582753827107531639555217563828413947737764398315120293623154759328877358664126365732861572532067840606079473842965054718244032862629733034400762399811204937335160436475338160902710136252213743680734196374376620921555950765887092702634248756850366813075781465235408543780172501356789586694996839658754677711107283249166192188118025870230928398621802379458719160125354935186903236851808859388153262084611617519644815663856566904653020244521444264748769900521806581825778569154843281008500844799695672959503065582234292205481242714803283733086198112590445952298595311927292121791683791573731730784020605493887672256814772954948880106255164989593520236488080914122192619822986965466111431359487998990182521552107148106050314115211742812090588153437419109930816227933823262374182464779620880359254125979578182305227469285178642804491544457380727126826713307177780968308501563989652816632346186689605250388542270149319727731495126394980381672072908582515353663735702679342891143256327872170485522373425305073719522581865281613940583537938132943295045253429486954017800554885932454811739611271390479984797744461916641540410283342356166861430972800175727728015550651160494403275467260759189262730729673953761459848095150497235098652281981517815594307631039362989103641710083232241097439638582656748359946966439655912839092970238687035438637538218122296086756893035086155231306256833468774688058377005553087703338824055609958328879383705279916377766993320503729943420804565314580202635010819070807181327474556589998699439563888038552757413406396202966685443488583362504624469721216552162470634219318259777721704154612866676404165546306891874481555769467876570164807972956168453917896121766670310326645047890892169334440470453253238527651551008851645186736360658930464338853165690779381830169393112457600362057470093371948144259928085706848656244492457933320240703334675696671420021036381450545483892392869768785692834959604434541928344995163237863342191492122098850559064091229207412510266556427168254279027458337082222882897601491521649599792890834343063442092973959315168331748458176021416403456542690593627519471997286573659998976650201504786337334229828636709866153419212840021618193611537314831203326400086545900125479665301373086812177802088293559250717441599786198572667736365609452822192259069044961275095021602422709320555585303082464812194516547834930248642695161774334422151514479225766502672656378168137904094458397921159044785442239838462833156664493103566380450933777404147153059218687375010762826147570890805986369699713564488705583499644189356409544006207596919540894723083151683923400727537407959778899507965453022257723055620205267715408718509337576704926395916930195382075902949747541897996030676014659985162780249609870296476108713592221987499908801752540415636948864250602442928924110571991688293638739430291382601118444160329793717292119019461758331870308154941046454822479701840802234865220567645668268435162421024780647053013101951394277610033684738657431504215240605797567033860755771398452894843182408069481583936103169278522257904256199557440798288692232952133661583460664474316579946407296901497190175258694334303507448213775209032163360806180731629443845002229551525885157786005359917301106948168787813306912219383009266610747089479800976313035389486828322303732076225305251452816184448642209578046800265364626610451558553751753249181315404751837376273382662786195488392650194337018165137841149431174110766842723419685682134109902976040407560936096180668248140473152237886627996191785005324096710916417580814007184020608594459844909739321232870085412826537212730025544272974945075953187105360716567447067377301929009011681492119308909735577705584136843983816219300269246357495404838314498270522696178792257974927802722588089294607872117270377748871782521113000751654091962045486412303335379774953120160774839295661137718881339432337202494920263218482005652577738955390140759366151688258387914481549413063376992263192359842922565559489011627128216190328208518256925433799277563341822546410013113564338465709866102916510562582543083712963081543813726196855806245757800579386126308446232087088802634921556845157163170092847615869393658591078403977343294375890232770643879620576465828349999461134174220334643481914463628389570826131669363625844587275552097924128555553144354313548105535393378414292438388499105974557165103576168610772066486694758091170985882858890696644413384826183533864933643112377121786814769068856425267024596964194654838450048011657896005590461015096426331738615749175881159023638806700632588656900096549283953939028929212958943167277651186691744470110688879424029793196290370020154942908525943959462516174665971391066487951023992052865015284694605097140823375793176746934953795224710952000407082959119641527107409601475033841684331015121081434797625843124166378722070667396050999924204199368090566096422324349086259987862636943857270239139729579314635780488377907259035626044105916281616761768410734709544552215913558051512984869760488308289649626068802415616442195994808932075008038576279116807546368554527080457485553910580779949690139583705836525374642766221630337020574145657985403565403484493723236298490690243442279970551030367360291022319088521916912365400466633900989140031846108529439883411369035749517182274408621652457553435067959766771539197235383058882713539720162214039992111203631514297679731052940653937931813836430626102823636013634937773509889204289177224366215022007230359685663198468471846845081682656869200937460497529743239135205352324679567664371680555758208331673206585952078508114074721940412196135841714225903613251451117392313206036731691454536919289896390250704064003062517975331641773898176207880470560814250977634460708538396481036251368651501674889004881449309951461095880614944939417099338914903295686325910101902904880948717795592661327841904956836775160865717572522519818158460763357170250384894184924291886264920860295691782668238718821914676341316882743283157483227609933887759818521441341004139097308131199681746315565914670118275483155671147641716299207347162911058128628018264073870301130897377969368525746084976496109174370771075827330435181612538972641194868211412222698324307004361530711408643940116021353445668416637514105154710378420746054457395520990158506674339789588501457634109380269143082457428352239907710919157723091639532147947408106000014411600565992086991462214834656711647202189802350814603260668318221843079555988284995572408293831830995360095574612388140634187079038408038136220608273528859066301247388104289041604753440095987335519615037584085520237385425323344131952417664525263295842327102165306444741875451615615084146936773513702485681256458011564160679604111475616114293590424817096522461032920092664605031011034800071905785299032714710641035156365623853672101113286951948814445468036586601401974440809630653092786757188782902996679130800224348939839307372314635002612257295119892406560290651960306743351254721684405049998252777267178625276990867538846837886302499784460583535701058907824122325572611639979863195738798210437501348406144017218955053950870675073031792910923749147880653516411732680675700360631961685056189536101142971371867557769919097876702661176812398974988433372613109708187907706048709638992226683040720118596985340227448521848471496821656476204445525190746853982605086650741077849299591000904900307448382434446363962438296992477524180542145014706123401225497125366037122070084767687866180982232577021751318568080625709507558872074533962912928169800241947032671918207884369627069582523037216151990191822889366440973744518471207673883654974919935596811995102709866068276631856781569872835557402072037950914913969388141736108607070053146095650536103428529149352348502678083892385672908476253130184615745336421437640356850149699434577291615824499881789777080213015729283873364779841105081543793889858793834809932947887684076082566404674326661324397411954128191656394236708023385843108175229776542810340965475948597390418914815311320385380998314207284852383264484355860728126067637714050524592926230317860124737736656813180587096550201677358021023958394112315208618562679581693723709254714089853756598308897227207938446070668938810533829506901051423512966927282704310193339999921042207496550288844080421036926007233946048955607436942195575358467824167923926930282137767468805473000955791850489258711428671320473861996146817339685158785406598491460270488243980068349421516922528658884880926763925685080669016997868192040014652592675434762015974732158186278605930982381507384441283723768862963391399124320046899339308492623989291994800253837344608210076930261337674597050511883652059066865946339586544911874634460181387982566013759599595087970905301944166878670845523463473919843167932854741097566062955836490257787790805698909540732464252545147689524489760559117491021130510665062101977981489356919965818361529693100806058838654986630298155123011202468423606404106840006549379349617236382361618114543231695049799840743982068254392820746061177764795413042845870368497428011754577365763078551379363020422979689320110948566046975655140399807604735136548131637505643478433779933925402439756483629259258042069285033899267822696414420817315352173180745267109118625479053432356836896461867371924237979201971380564210939556346696623382437937830388962357557598199202022726391531971733468742658563241249350257397601131050440993026141280576577867204229640185990138121302356794129875988829011611392817231411685189149699823640730016178666171196335598657178128651244161629930501632617056664272409980335146147010667401695022446770871954174326200480828282147046865471467833779283199567840927312113561904743651363674659650969567725522123306053778209709315051217358246291845739226066834587374023478793152603587223725988509724836671511908987546495784224415118834400398914393641253621980344597319280012807337395195342647709362294030721751881709027400615966174499230592742945269774261519238412286087132908658816691952702471443191001354135929211503032128798045422730193661836081832685687887692281695798812890831790837023854160515463810972840852708188366587885839252776563216703691621674922135768862258660893734933665657794832116085737445374372535555855042457599366532537107010849211406528402618184303546591180573147799640235443343329528029912844598996766437011931766806545342291331236696889149944802352313050389406600883948275352182316412057727281651264828756673510462665508706342381630288628046160465864340887008853889494716033829748989713834818687022308528274067033610359141814788806388793076351834729833069939578807343131453986570391302274890559873007847751700148953117478658268424617670180766071938151303784434411562529529080504970313661400048132414507205876792162426721161153901609544692077031547330250421971530532473126600822744143530051821906801766152548853338139399751090010932796522907628420290288221028218254484402092987600203995941393926937487691061377269892332357388545275872572018771180080079833373089297199710897017513902665625952217680701924048320030590617577332510543045494501878117758893903214356694888052333902573873238806822452330937004694158514849615299859601254538427481348971555078952437967082770214103115712563842883025610002390650097657816806408646567548051227319160634343797196697231778455963341580482455997339235150416270812333760876637443552324642909349772283586784577196550461946676061596195837588329259523784095868959992800627914597894048160955728497639199421813519858504479898702339906009890657069492152808595907536241437228800080292212379295840167230662919284494903885349303395289009763704626080575919128763053530980108289286629140688032123708948887590418272046048522752779175755339308238806211650162747232560503531465119157812789814087847093674272171840192078568401766286895346331168988301612711719255534886399303612113717115610905151324025177883907700171545301049076965896457318814135538650191052012706475564411454531238935318171380903053008444576312360527379545225166682581237317648031900801482248397398778328539363615866786819567860365797529265561589419939650936083058803187926003179531056472031046404307281375523635045719365598950159424539767798308483779720214038791969117724511770512004626702372107534628141383300874869964804440333827823900241312340804047409610750679574453021205670508972519578478430944761748423823271530564751258344206013112799023381390297058701727873497352383098394173127737056847340789356485756532995573973286779354983362812580125549953936464924731775748478869803384788775049573263119661427782266123816845177802879678381692683221128282415207310496217511597778699014339549169746919315041262455549747304773873820325011081023236965156214288302688337936147510583940439995505930065480438966982985730244219973922328097414422076769292034760134336710803591892577603190170828991681073560370485935829466681445481823663687677698993905742655094027930459936272675231309260273536784851612136009058274691697579971908160148414298750556095830711624663079247196982212611682324055294494880069671078291263103477266119730688012058097914308413352673158664725384513315370809764740592785220192996614091099530947500255933238161365765952954424307506663831415882489180586391202756838825573210178671172057079054968436057229243999193635332656734141273263704536530659007636325941234748765440058015036418642102886875693774707521883944028614694437214397103511428928647468378579868332833552598085344746746187039089045699598572572522613373478177900659961901916920460357840428675490048821207852239342613805399519856994913522308726371717748231251448841932969325148566864089122128204501997894987439415303679976070095594196791301583120261541659817603267243744939510563795777318634643056966735268945523722917073742113382237074345338553641007857812852198497155517169069021174190599979246575760000963720193342216777307157870389294271976517113189638484623348460086912786434424419129427362233130057760005065749195220491521797948120365606639648542512149754187042701003478170338894577440962465253387572970627198335399828503934548802952803898952921847205930055907119966745763997664602164577830106820900274961497934878715099223643812203988106794275707516485261800087019002501680556053635650581529363438221489970385960030379487551314740211455290087702121334938407593340443290146626169235306843773873194233379725553624969539720075809970665314026694112909201570528044069496759970546131483563719471633769672441797665167972462553325205144774202932070432285946288299617124677390122920423743868481257627150133295528463832574410760373914004715769948244738941461888380747828679978124030307360730838458305960562776376697185643889653114244003626015751844530385086267391775559669721892779200884980710228435232592900084563465042528799032663270516409048295980891912299176800459532930978217564792161635544771276257237070758527973908292306085804100353511463506262952903259046616719965354375356207483837204759685760777049830514634301877369346233222265158568982703022954897018694664246268866102828090618247391204956780170952113409175858020515745839438194538833376203081732633952700665134736787136049801246311012063340708435382937456140165818186243882698683322124312651626470249716797560691437310264376832734066956858384820397716085046267354591785799606199384809929072891433984257313543910108826374799053842965088706782118328903232043940854576530805488449380628278436360956305861633365500162965692013797635125092555310643718748165756349555526822732873640485764255926321142867793961683793196306491152210468624943164635378931934421330170056127171638693343101373779848736078453545301748065044712878664722771615146849863076050041322745798178299808475687001502784390830844775595669511125394348296471023725817851674649911865733522271860210253467801950310479521920772326378634503306746943831282001280815888992280446120182622397662480152161570930295744167948242542170509976894310046716415630165130983283240940762166931399075071029337028280072207471811613303902667477526746136498221842736805975549039755062918960678511026231491902439856497439834026086944919007607761862316818243029736683962467086661119485427058378851747574387866622052294408751010462859821256328802293086887153843396246657998528142403574058245536701159670855628609214176583748859023499551693888836916445262702455104863805232435549777387136833761350934026787370154827673549875144059586518498604349734855998313366984465670462531170616571656394795062041341397284145561302111926372542578746420707449765317490606203168229311229571043226763832837855696030138833062200730942453984719353751563919601609643776660447701935537965618429401353826759888800841973645810106201097749948801604430707899969355936258059027108539964784588698045797669409901197348864186059338910457825585461328824099619585905026794340936782860516664245251879400862098464564435856704122390168209619431691345327989424383533606153949278355734792829249174326678903624849045997906015301284952317530354339781489455419498012223648501378962274286733161583856147051131383641117527471994256080337188462885020066203093005050462534381276636762739248914793142936357199706244890588019970134419920356597434157798470119075930678928651067952371171117463384328276386713688463698431382424354527079641537609896648738083485724906396732703143556377514211094293707229480795821220181262884240142117088402379313819284082480545860813424278330465811949333474423635742893568693497671440857102789299446402853568165999702835847533374413660024531437063182915420854058870374140506497369026429732938547287618660568702401757825108932869939563692885369101418698257897424403161467454962947373305620080264727486909092138282423525942580727059267109305932895250215957117863945566802646351273024129505961107726964386589148008173156679210111962850571266141450451154437857258135156603671616541981958987365726167724251479610906639368283479152797189406238578126022143432217033308445079465909790854021964597083822438861433203754046249571316416649272250863793480679577726269628419855149206469308709682911795123563484152931944712668101007850082115330234710300448395679323466302911184163974424701688489510220585021284174947821999560385823729046218022365215218492210626065052596048118293854019700832337314451316090000166670606004094194973314176190482291110731777830486529123423141261975135222752229656438860341754532099744780289889901635730643906053637727143834855250424628141530934987609205688504315155797965325449869662053003248202163543000705302071927117519131481547948987573386467459389058949931645142252818518678027257494324239493438280597375549418618112466471712980077664439800949587246401384736583146372479896007835148608872029881274942293884040136476982013677363604376497774874617159582045684442050254209448591722005080035574717222381583582086424502218512121955037492873141432705016408685933157868926052164485673521059139692579114042643813018105599484085725201807647816046282795934261392955017036338306863111658836890487766974300940445878045558874440744060946289708224667164056003232740448333579051511735510257003919823697676882969384030954787482333954174508750370804695554614647822020293459944624879863023081215715499402972689941672969761994149310091528607924908798354602388608833708450551646402928642686814524209475614810637692403517871802400317716617718567512720393941915082706314569393125025438420933878517518375512876329564482969888983026262275164509854358790300627193552880209487388963794570514400473939722539333831205203377025076728635250726519665115357348904260929970548199995005097856254321805685191339500313309751963788983131707149673438018118746828589321881161063678433294861817572710313090821024150636229928135442988547867956566480354658138907994659012393438382306242873726330970936101935024230512253723304821102524447417749113650861375505235711219467824569346573659691183967340140606974567666871518447481259442253188220643591350481630852473224852440696902175497422271361841080623334254446858329655229096038740514097231376898056584475258981218628713261146170963483307266989510437859503034990800167635501441390890335586412738123286893269128899012224195535686353119979403011091040058869501049037123960787910067817617636345979130153877877059112422063192827012902570583132684082760509135066553710817175349625203539381947093385435055522641544533272602475245696380036561561847521277273570946224355197457040306508429442979350270443860742858745285961907182105575428265633850824426997843937097530974557124464693298952792826545785658768558077267759007049754037077414713915175800513715732309726014203050949907563090074410357232259323581976583297232646204575221718525160050223281883346181968938744668758986997089586480649013048759658440014326361824806918867524049137142804343332275761768761431033659643559159094534515508414421905946203586882602593216199071121569270498705971543089721322042487810467988276207758250812041581992089595803287180635634572950061651186302093109286576983035133393014717257486338018482703751097900006484507403679166761281543617692263240181017960151932992993801249553454267769849670250359908106150991275443252086800439982806077157808030306461045676891003439527159254219805639879832458963061638000989980381395218966735410976867625325164422318636275706674650965076309090497952935253914616755302772361067755383982678087064160675474248887563837088163095085629632616272152769904051896903399575235814485444536828896949539227733689260379827037674301355782830731980883634327755226624978199261369836763257173524057235014048314875640832343020793637173805167064411991309205537405910495609487753121094962690892900428263325719235445500345256573880480567102132832887605460041838350237261057184811906049175459434668918058327766465274017192027978064549485803179743762625590973095089144283683594225257442200036461650687250529961125411121446997332940785495109346293248215319985303974831424271568558537181991218087661668485427827245876611987963191198195651580854501673921703862212644754593103265613793782875591956726250514855869060588073233582373502084269276422436332626175669319395299574206126084329744825644616409893534779503650739971167822106502846568068776531997035113127825909576843065696907699783411798995289919064065453474847514662069439634664150267802438311943103852531266751401620558135728403666292569648083813816520303974691570592932678012456851423455009557198042539143553644464789491824409657635278621074886285778415908692639640886231684914345630958213644777113812297130426150710768589459087698121555655361781996410908320242458448674260735308659410693528083157244147698448881205359805474083673877300870878409150073544071419564812161193444939005012875448934331141650560909896858716906451154917573932121125499650753232583201044561028020693588815931440133460899495004231790125567691802733359042363198178088400547947508750829015464968569289868999781873632407205187874813500466542557767959019964285894861454485499748742944441365927427721686111729414079890237581792122669938826777171576972490914057327019283131653347917927278188208973274071537031695876434905296510531488373206767865110075516069692540791002742664455350326690866013214251069890890595752938461177613308282918124364074733384627883455159991775821522162692788978439854926888207050792222905156078557894021469141217056824053335772806323780324564752030708001462828799642440069317361885887812906216819028390899493044212646687942917453835845163269304699285271112412805650791724038881797611277654564874067886397770702420743926474096681299015774623994173998132842247051083486329277088400079560584374054873106629931176399801988749749289437831441024989618681631379195320539057664126797609381730651369574240529994880416901625952464333585628955747186701696359541522597390243619913501369768987514656103030017565082347931364430871817099173877128661245623183015317784258914229018239508115019315221843841402908576716728348783335308727993334430953302235831399036590949996592372516938982832998709897519484164594620990339257330684607337926113798303784764277887555868309190849583869813554905246378464195443012893567231534466624538078702795966559195497332661247974221395997287765969843017399882150437041124189877237393333215849650395164397115922714630756216062715178589345460444885698505257377712161854175482496399253344830599684129002458632575988741589554485839579759772100673110236659771377530144292644278765362131558856873636868482683668390454829787096217992030959506663095133288904366248170144021940086582590631893474910215326700700470842786357434042015223479716134158036769286609277403586834782931990364384653161427911195355338477467357016756381001157506333988526086062114260344083904577642247097733677787505173334249803282773706556894250301067247933220665011077424579540644868737458047071607117495371606431058929079937504546437354756672109612170701617534405695276992047257687398184988454674274499850049162192883631568198917221845420928742194985642687623165376535013312359275128685314651348555902931539818456797780964771897636252494444978972462871006361493183891668473415110571510187795777274027145759646910290577784184405489493598653932540195104811927670727598397440835344385935827443421328493420056191468110254418177286958751918952364535990688708203849399766688202365385567129751627054345052901499801205158397939034298239695817910960234670915241799455911371684371017664407768335747187274589644215535078039396704388769037804239881011883595000523737745901914012878291818168013709899998349193969316190267115386641824994103131071412213530721117914859995623000709587189525398725725703494568561270893431148904748974021448341003460616661912218922352185080536790517825827779187201645143680174083897765947209666533502345698330364752536451606469061736625493954119527098302016206434200019963573998361183972532144210885701334056480454457708235175273450264170695077819640094919445032525834087768207983405862549437892880490691568570775399119877170647811436507831752212905590883131004629987418041529387917322854066027314479890513409056402262841868267940146855558351870877354468976636766793147292598639009264494360507589697088772358023415178285352490745237448304582435862051445655147380659174364157312935227788263806805460207225235431250622792397977275661470659717949568015310984530320755347529164671317890596889284224213690854002608895091188190683916234410266244022575465631197555455166198425790008534105073816566419479998870716751957112935468492684861724686632141472732973012778420812060366978622070331689376121266208315819741094064398913014120015821908004529359310849958672976213475478540509752686638025738473968831484577532449975156810995429677387290619237999494943451057345013242615193754941557675892044714030494995234614830280129436543759264570602565811362948772921157434414219859435877672648636933917069746357587093993930410640952661422994226822612459130910978421528372716960405796801013652093600513934907777664292455343005799018992492209627960881972625843690210567534818500568259269715923155624437581343228630164923115054057104285546668161323952120416271529767840833245972487542992334674090731114019098646530895217957255550468105702923985392068239961809866147669788925244831862597304243070541336925534685290426080926230030286060515124864484641029974136814407905707850967745617290634743042163918230032758061858370461472937505470745119440017699029922278367791968321921654763812315606742336595362167282915560729602039581909636332973227806051597902687760355662265912582671501664611295200926332105179470271736910618064360571594478235497048006919251512808158886993490024834701314994924790568928462763524484589260843915948767131541653062792988031433421889107578691915114337236904713806366379748300947444503792359811592194124478649281999182968340413144133734163128406162136698101872693920245806593839933317944459838437975835020920201884588036246845301692343402220686189545218706493088435626439490054256833285455883718036911000874356687469656740506335162331722145587572572072975934831299207698447545052991923948549343339962852990275094845537987479482471943184942618035558756846596645202951424750198226376519776900876265235733611998813286006241233838085781313566740412288555380396556958442574369581203114386067443305211924018031127061833675222628342013578310929142123284403164716666334382616943057058398534908036686953805409468252852285244440350572544768805859355680764353270574177615437170510056562818348075913547002901460417163022625630665316598722574179706610360091731357379615953705783408350041115645718107313003136544362669750705158664977948871980649841023863970700111771266774336383196594745207825851399314562567171619296330993240267475010265583008572335460623877831059305754840173927122842372282084087114997163321918404656036886812307268392787383784706683279894624684030461878142163671044224730048906360043813448563502787127065661319873847411397032799683792293403042739789935742395621873906440510315666063148066562788771070990978634670826963587218887960926541504426306917420683268776853174427993754858210119223426440666277077293797539891973773631241150162841509489815721063282448331031682746109891562546894315717259424146482160655397212952171040183883294075312749608453205667107901523258601555395218327813326106439576398251590543506252967874246400700457784218857362565665357201147629254962619844626550764559137128663853881435242600789793289426862724263992580977964089914369003828084814470457424457206222803479120849691978194804141416663700376552785918349146969365420128574444168548743440207698534392638387121204185227791196014316508527355031197104870324464470158245923873852050448780986263640618180053702949473218568755964742672089171399648398273795726345288583269671784769609536011865937699322171985220228810473067221289823319929333534956380978163274014703872796550991581570472692640281060498427596928408384888364781065621871643762628605864567494742069119006943027964020036608593337219689011760632816691184074613265211926661083273774722387774336976827394703267144651501255800609031327791294960424240215649690234891925371076070764883744925574381936279851548170328507107605724816509424623519372078402580005685150516187771347886476937071476456750093007788213608061003698594107397883234923488281760702582893895398447787455461908233474090126322975569264705422973491811429851461760001031652766844813502413907726576133839394721339350847726213433802887512799587162049928495761578809693708260029985199389401159337425019417269625006803214654188229404411936170009179477260973067101506161995671753793669985159944465548992317068676511987276003089727744071553931752869462331416753771908549950732061065329489968410254416848710254227302558385165483209658204835167823738023920100942554070276585001831853343162457616554454958930063493535884820422519788701895910814212868108975075117291134012777938444787375620892448470811917693124102616688275064836240456548181373376011950939218435929854689805061557915025730852878180037478277470369535439393225918797235411113247846733833949476690738968806170448856543285375861601948519584474846767598814618515874088192386547563749778600489874448066703353273654661611593100171729361356933694295057422712699578782905355572230802644122753321623252664265121444738255629522247887307558403094312632587654489675351005552090427328853733058223491457011937483083609833680521233419086400725628294833313469405546775737900249676120684990837454897908810747652054944551273034864373834584068983651504528198402165405172091281032247969052847655293615840465645441806094824613483516211256481937312471553174757636021323707298728705078632396446986940954886638059819686194316240129054596769041141812257332195731574617769652250274770867734265526229716093599422136395358224760358974747542347898145165801735077803604309826694625570087444232091262167637190280827594761014037986771686802021634021014279410791469347512631067807328210472803458639078345769596491124559604074704606913774924308404832025291117527166830888142428835282031423969977912433721381605665424656287533853861024418598060381005522057541676097922607382062368978054103430292163526924412146842070636018305820687816927026126414586250481164220428466820547121482350964288684973155208147052538584746838135249874585929340288018652659564213999396116095702969435132628586814429423700495078099836674074193052964309075768964442023947204825577731297740921716257077766380976775674608853823841488975106308926575163402357434973933617995436806746027438694931358023684816029395144029398255856294071361345597910201930041475637475617258838547351546887325313447917329327513741802959594007193879275867425048206634938004236371396272998024392548699256197911750332728556416813860865293678126965583837037089548526307843969672329561756294986618084877489271535236956987796789058009543807148749221405446214058147091279101608092310125734950891503874941643790137926180513619353852156161316655892826967584772392085808328778598807074779670964066736623564901341614462802356607950954937975404642177228256279775340357243796925298761679905860791355549185016397602171326429275825639272417439268734677860239602010027800948129186183845013060051958120704726848967519771075258453353847296954404524431590683350528136150906663721004282678553749409999561774817103519734297183349348009266851514029243593807356029952573827397620158899507822773225971579400269682036826856524794546485042637681203600470988864784164947390105265592475020057531023201857305412460617789477645414322980063127721442909747001172637362519371035632299512124711509470664627235372202722353017744609284550818613455634472710984879350692352769484326252160382537709441000279746528260291692501503670928145681350242827525299801351522541346803887510028435084623342727524418177116754739532343422692415843157477384292774272318834477555622267906876573141776005019892127079736702175358673867906155111215790925129421476377185228890109556133024336548147851317203009192321943098175651632756357442495543520095998897121215483663043165863758222916835248704475664362158976305205108103486334948861728387771493766978684829635941451471043057473943419016897188993385281042509442357675929303114815883286937876290652120425671636062380699186659750031708975728050418322405143152035231107065666711515023457797676381124949492446659818149623997024183082763915253731524361268234833908669350826625917367353195944170887519591277661857344955552717523555038459869355270616081593777468313310991271622279270886640937526006326242694904053074440371819032934779240444674939736275560520117870033475397858598939606075700957183329425414781629577936627536168314164616573651172081353167450386876642036451476356036196813440070665516192577964115808695066261115291032463738311361514925764292039205132703432382624137106234999001631644522581059667959099666066625818559268210265471662394325937053843424712762064810295910749240169606269399213584076654009997510211186200538682487130224787525118635532133316516952267019244819837398167708832697578669523956384393909425317718097704047785973793652985564497759155989957689060225879308764273223348931778777360798825997231576502466533512184632231497521526128969000798723860359490556414202976247016492357923460629209579827282414683968170964472318893676442546301549208131825181153944555010278832567847157000273518964651294426861081818849308522215903927275213966770107544116067319389549212564643458029368989924001053590159473233176833763569725511050050949210619374377090278626382013887673709484363622507503687032104332224378763457704196577751343742483086146938519527389812340104919624686550650955667704472613163625260348260569324340402790471890529799297154314379100652337687434275568583044056617307282568243511802979809315024463756138796506428392858791556250741527140351710810317107570507310117905572057672557002764851689165410931267567949764137900508159494211600707076446372027542700961895341628053397070165086745541871161342792536001459134513991179135180787476572130527860808983811586944585009045417596326226510932013138315318113481269798188346686580176709739979692085288181471017776531650082139820524283984910174042634341327123226373474054123383068457191145039308753496844553719936012952885743401617282699280842131495452720223107497375373374481031195043214647666558538861442329600726007240067352467415721713767146146398614748184452258970825547204082379140985361613834910625432970154302993955394443367743870915740160736241045086467587944794196479898072658507164190570608453123831875162284500642711987853785816965256627087962927761709481258888021525977784318944626063248990479081127587145274993480628156326434760515731000607554942723247082968856216716630248393104791464862272986591523276212158568014500038397673437612987243641901915617763973968827961109679642157515506482335026337694831098202375148501470875607191354871664479539590435102806974948459027254591451153575627515593059223977023263953050203183225620948695574568662349565550506019642515452195572210301874708396563299724741654842840742644393636345383037806175475419329705901425953160010149224212962500696102728452910919432368426808368412647826995626671973800216013638914790556983752417063993548308660491827083075958718992110460668583366606327156525454804992661793325509211719379166503096823795590998736233663209220281230323876402713186621353432763357624645959335616766367894641217953467474009251719176107903744457919703101345814123885171678049031324147273771706424305947806266396683124200609323092897257320405701689399473205804171875337464892822018470312834107772036220571415467105290888795398057186723095494060296871699978441378887347097117304149829520002277978948378556822321966292108156808364102676105722481509305640143031044046485536364759674118049814895640701032180430680100818879523960617084955039699850845051442919007705329457516866700346582710186799523358889713886416620350038494501392349598868871746867293302366992991514584046300082599639163204969354133758666003266680876979153638384280020187739488616908109269740968610187834733750137389278378566113643377968456101539582550855666711205583819861030760703924721608544283861287434676016604738323905936312409934589717602309246971857884100016029615122645329099347537298335356469288432733350652445389583813426576292702827550165057707978280673296018801785761637840360358635432429677497010348977298815934644521083631635676288452659385202380314572550168903116861143129550504955674381314037154315767507513697592458087996297457018788609882113704596825085914514227188048328311300409989080509413129370560214606366428051248352065519378980065569241214391752029809264536502668871923824755369524466818531675734180362783688850873854612952648997092371970822201268868823757939449879114730357093471981385998212533773753661987350617351786048611088086957236244869389040546161258493216599018619275862612029185241830424823685949231692529138011061371799895845208962583204950779554689132781588457414346126952483881129176574115848780948620421642992880385184457085461385507143891264449882459266437873264507663331501746632479194774956192642567487111172026613669657265508873583879239368683009056015808236067709306220690123643376440075172253725771122468207303058361481230092231055726187501645224078043907174147057807348863975363461466260271942521866012260418921536794157685299590033919575064691219104707107116124966730487938129472705833683437881596366449071951219138060681248929359102016107074898876017450870301323069017866285825960448488639435410748872518548363273891494327913369193258567004321907887356033662547357004022774672768922721007878997181490350848875630814399190093532444830211949028683472826159318369590245195297269212409704361310880869776117630836533532804763649599628626022328382294479358365692459623001178926723801029261273456107583241006736622949204597429930198723326043745001990995535592378358108123541113743608120348438345121472311464901894857510579009310180482890836884312639489791692046561860804086950417483949708306079567996725031977144526767958510889161850384428282129353331508075655083938810924096298844814467940810289112532722756092307036990212093849879719348660681781735494343395811075199614273754617527971558620396176747045733633554345580676050957122501257402119597194197247006665352023176611148127585658471738008352303265974560099847619892167125312104025395072170236897932557788344012012716129202727631266898525542258407640827216299765440914248418137440305462803624283752965874061656178238332475309187807710132466461955667090040125239814486657552059021427559329554960101698305272467931107701177252444980874516035124249860353778186393941899897490352080493561958078799126475553160019724994240020856226564733856166516103667199260139332225014005092368162487354190781630641352535620067835694169241061263337764798679080963709590370257763203612321603398901998706006718370898938461458241814653921127533753284912690946700186879699723569232893145506358382267351189887184968504750795686063339054452673316549732368601740091635978077246897066196244378315212941535318480790025221400412468644497198582512436914588309025288574792446420669444687813230835132942696020509785436981199081747800146839880591808721416764364230973232109343145312998808157188712326976140358118722066987636838405929000242135936833494639491017409271369541030008103047223532361966675131708622933174612279839837282151080540694657634397275072626998725178834963177378647497477869478404564437200530959313494990655500858688436801617346866986329439994588827282502158335481857328565364925188465167064492033883930286091197852189336118991648895134776730235130558145933377746929909390171578579063777760170642237678512157039086676696868805559056690840027952422478334472384800456046275185302202361313866010407986956067970211978436006910393641094950632335164099538370142141886354826395103886711264198099555295365660130474078920215582205109273625952458442021196937763874344884088332590323098409204961362137810623365364121935107085128299647877049693562791456953452059858915111152625715883669653256361143657031025442243439180617920255287219548534230263866273653577591865798150596849625027954002762353731423220737397915813503680152242952131229336490263982068192970223145276448915877377685438434018777974307211678036073060561222239266286414975769739201964307897575347298149782356351333457905195211703083222289687550426013153141900116235491967126639339668641551781268323649992186985503323490524657323721553304362165319324202972000301208531111585749091556135050905672339148987990577402070543806259562346057253404483542031815809429118094250940578452966942815310983619094646395627799715322335348793492401902594704207905549518727845673340352138490403218425485028126612878000323775448848054245041774654959411281838620289902208072123904148105549107264260767889204446427303070878362791682411686718081594586161158798363885621837462997219305419108295062842848104447793669769115561458039845950248645243397295847641886057861978874759875035234539941130277732433774657848094496562732885753253996960599851033105309349804570345932020318398609670728362670024635756082322425035724145465141193271275173334619291074499645371668441753949321843930178332653732117418020017028210715998104460486927530962581190068383866469978589278715526767328148667852750701613277673141693645454028320109507010467144234773458022940168430777443176313646234831087950846690657068539885353371541756905064393065305594030799430738532730940168639185819710245663448624727636282368687327626844913646999965297634154152762814068147363964441723614537855164873868721926555022023509721119865505087544321910310977180397135250099616176892055348105913528911132187213879548819957017886557043288424748185621060719563435738605899696372284236013220511801082464029367740896752190547494603061599369630769240608199929505656848797997757049816112846419556330697237596231568526563321677113926431378651049700009691450326081010020695911049217935562482185825658388828689440273881341280537958616612811166164434614299863501121910419480907818674149931905825016497736522642376281095935385785364454078182715498604456492900666256722121689847679722274561252972076464265329469821859548811239813043313911303441619751925185317599792348594399380942247597957595214076406557637628860236861681927847494927656797071061438996734742213500952920533104805537360625654782222742790809636826644753824346317995874218112989609208995466195210037725386417866149345359894412991894080580046547464331620677208458693226205060427736084676961288231128196891350803217699069839461621887489250170736625542286548285792551407000338597137491278268511842860024958726395450147702899598469338604648132831500959991903820311632995482091253280147969037949726726191092232384289489287763793962765959366090426512902931048058799966691721095573334751240275259546843105805631105958830615200252975555258392696948310203324468478205342375124301483547193468374264652520532634058054411413784509776361831641594444651191899783637141352443535268853584719679404246341310840878119028108361259368689882650433470284827664965276939831675935582221942050476248057987580153115261351187375931831000435451788904227080230428715678372568350878815678222636779403175764623780320123629322134715267560673028984995553030273506146103458883666143439056753974448927473146825896488908115355485765488569873720613602198287631392835616097052832005181226443328488447033085130635202097320084884953150514508015440307518080536160428553844228551522915893178885092813373860288385619568854777224733748615624879721155606816890148602528382814197540683032447615982319290015833650748228478757887327935521016312151505994150771721057011173062303973425961537353820817596464639071274563808408449956947314704118422621035694165974150708355296373423289936183197403508099088151117367393509958522900809172692005056728767989513311129168776119509617512127602934265388636328127007037487236880821816599712167450313680296110193354926924773743887291067696649730861131267309012262629199510355581502395606498002702390925305478746152023561838807262213217997948440420067260494369992086105747212919813072653513340619192304225984634169954598181333095361422312450793349365944448803612446695981935189657760886182990392439069497135438844840471403934408391906107440126645355797568516180995765103009252230450988398205812895780322945684580317399571194206208812028578602554126284209492592910038753010293194993764437344884201255744516946678163260038829914955797585796069815878145070053211546547829374194047179110536114912358552531034102257275956956961548015735237295682496742983420607984158242546774637636318662809986978434473905934848152416272002019809971303101781881293760096692588587366098057226334190899259186645980693854735054799107223089715948530376476568416572881588825251680796134508938378150160074388723098266062797471060714157031849549977522291532464610784071759343647963441666781596818889326515730001340978914445741092557533375137419098282630449192462407536487613965031696969450752315248679712280280313992418101169109982261858158694684669434976350232618571028664349539415989257783522683147493370565699353242921518190075447977600645278930756957682788215138804627342726268369098110814112611758015155735528208119045613347393120083881658457391527972730754613864739358950537915403828955467774920268780292439475642108464880549605618808062549568841533655097011624571933040507397306713973422227566456841828788271918630407238702426694636731365606853119049714897721377853838529120457948781539316811400032626951257600764039157393304948958406280868272775299125690714264994739360326520170424107761064196309852006843924722557796898178292192575147985506988132117922755124262993275469055650307507083849983529739506724746282099052835132405690556605354751932261877368209915080773245846705847317063796153150923779587781604420163783765850867779767340656066331509507069346942733638768867220937736418961513699908921197233734154825341655981406459920147248787793040961247275475798727761764407758636303223761208808460897366864583302820797891091061897202948396983255905001338723502644932284782312907087749252892175693316811692972634460966157681783081268477362325011213698076553377999081632675525624784096246499480181948536506290628757683446994095745382711770902298375737338628059839622823765103711273198605638435919601254320672671412990721820342278335444002089415334586914509857973131309842591808945270738518944264164551263104253389309808564099508217403960608158949289934503436956976517359361059143038206820718554249454836900224597790933337967980751834829769604442878050983935969139563907722140977727936672259597409200765677030935590253654780674992609014748117337326216459240322496474370508632970838013728818243878292324468150628033328848331773645141507153027494547862443077865960725805512503748426411450749584832827643979263652802613768716191657946393512271687082900155344598415707105283309445329090286822818710311655946982745262210028365869199009995538497454408855409611445359684744303357811884007550241476543058363578895419459610235687633535174155995929659382500462065680390953291844902993022876001123059790953555964358377857732318436702844813791838139286239637375907441893759087971536158096273212091886245942722679119873456654128757242191984941376862989170133589717506505161298840425404960841197761566335362045635362611512854019152326327460037483127951170540257592038643438103130112237544516220022850314497826026364305971842757377804475980440029764681147714142834402623600133021233218867286953760891847632865346942814412842219887335530478341791350649673529647172328438293192922548199367842935709163519656688239779885248082285910879547700469133865426355909969810843383384904619148253935718663668374153194964508902546089983298633649818329094444883891119558863803296432700338969276618003222723011109842354692333860373642458175584195245199354442687316837260660778889132181498809146778621036804932486244577338182017307939959266336185712599582441766902423584980124313318322952846005205963829881366463924091551581486063303061222684502524062719921350864029293716888661597418263278442432095460639535250311524068605285312331841987841325458302042574358076105510164528463792001978920868154245233057771028775867147215327234740075000517915622822945047347972562402431260450795220788491784242366731796330602713586300955316166682577646549907837424696188882306958054620778846548582967680347228919196769728222042698064954811904451256582333018875364596760148112801814995399059309941324370675050926727899527743313048612061613213556988736903339126623519703086075509743482672502394009745155999427131376731465648008757649735664473245696931583574168823828168412356914549350764040012310163707747109243915408556631126596368924301880285581515988881829974332614379650605374303291257986823370971163174786418753842679287731660454959689027538598725761316273765696949061814711927909926786141950280397195976969376289299467375562037098792276911884521813186476715051945314017264536814951925468473044463521894801774621669078730720899358630718641988854595994965676173526732885715602012924898193403406712544883883142273913543825801666694182544517314195243289968175882605332196575684220788683944630419406551112945112498335252033107131208211750239017358938919728181621106714697158939141138164627331292360445995630652660668752138085736641931088054838945277777706636769707425787499175515157694441550264740816497859575364887763144203609402995682913547445107459606749494494484815296074366488748188183128730701377408345742680870931191567294654884621680533884129832170954451953410875098172234660378598044939539412816648315904181039087572447451840614501938954438477684254576869478795620882371686635798151430460940377055767774739006015878647943810879075399710178358672855248029266430501588151254287742079884489242288061926366451067573046791083816325367581942793239602692538532386898095203751755714162166486028085915879143060707841138527481487883811791907085651373695745768726041710687008388871451273420320844577477411815057927456201265063698429826282772143360962161723283219003132609600261088834337845022612422926252317765806673745993961225703582016756671331459300652767289153586845682576957375292654617613533950746993494424728994658355898539493457306606695095752003914513580631634037778825090278099297916593205831434210935785516540728060318859231283105185264583085187287569648651727344353858628246106933650473748929480993342348129449524572327808412767011314954921250397260327532144678547247116954274333655637593130158784136162159061608336977143184907513067241808524260762555504095477871773967247694660356234455543692901242161570240744694191912381383631665218233189176966054363173845582275339767884797940351173032572323049062235095914037790088271478481582182313825492240650427416452127834173083114034078642018049469375315888830451825800824627066112362215550181059053643431268664179761211956373278701647330641205206988629374275186895517593658641709209922060298669678850624121520614057917813866925721176507041383604106434331421926433101823993518469320250350444531819926780698376306743485614616128285929717424591656314029238683690959245650970424982952893943665750558528018827174187909638272693719033760291310002972590506570461016114961704890321944747999105200876450596012206380019641697830747706780748422817789922778959698640133882894646824117177970665817273568305326473944269307847669790701752515866771090695526690727169828616842792946033243080335098802093369663892906542837192493303340839219169670129690863337230983465528368165669144863369219389454800321670748125225821900603516116175722218536447387579948707270331166417513723826760145352628460600200307390449371279853497952654079322978721957663240345601579499662661191305368007670831365468251376529157254213348084688693349587941101994932937963829226842339571483029706748101639272352532494868570521721630866396982245917074050311664822859563510465807929903850331952994211025431353254885072976942942290143096781593456192746032922924769807820702832955484567589488465513848582606532302864964220094171067115401293003713866256775626453611317591824865979742937197844907438720662366330416679056611870835854535593516097438020757692988067783541883937879681445288890950863487262068145248807544258579862900425692143207742930638314653551119735448838060940984809457359725338840994049442685823189417856404347278168934290848705226150629993699007062452279575450691920611955755241050871361641239569256956559918163932918202819567852753913593474400674973803581429188761162109847604865148894739455697441356405604403730327567183106958510385099156534832256681528346858002978036578268703858208193917605751397132400940900451755501435179108681794714013151310696631619351437411809650841567959860257224079272962933195021391085736133750569526649789145385648959660417154894212567217699261357212715928024108036298530170486771123399348701247731931613754958277611266778639609005640924236722390535195381832468070186838765016895697465721032976991250422537223779775367461502651357722028906170768046096334721622719242019792603579084371357898203482392613838460429552135153340088047897299021576146509592713712398123939890419137453311851631990278112282570087227119573477731376090644975897679210130015383999510797068456062226304428251605541094133294228597138168948234743853056199960649087994088663099708222805298280193171991021697312244059751898884580365680209944841361857829602866792986072022726441878665177073965736721485307603225527610055708672482320688465580571745487305234940117373603627736418316933353317341445977686374958677543436972328725977511921367565654309539762154263365853235423919938867603117339391712633486284359362946517458105805152770080140874431791337574937304353135308662634577914803790737829761688263076669330265842419029145659946998307013874939034002141126641633354097069464968759272792098393102748927009466471829765682750247466547819151803798742601820557504109617398720193944791606173266356116116055203777199371504439733938388158764471532392607518514939019750402250754840524977126686719490544384431968234330694632170662999807913055408910779272696603669417128650389392345115565963380015536785865243417576073462617964728515419090595530980166464869987360139471561534551575678252461498174361633326688460981923446778574890731459615703829849028872873793539816356663783416492950110282229834648836837344366538215308281833494699574111680000430504276301037915363750240650869338716903873643364293876955735904793137386595299999976611414013444835604503559884621599662366550231352281055183444880421310733907178543050273196670008819201705316123483670830880841979576677982565755479279451698138499204789671489744033715929127189039464427907750704237750788825723226335335670236304431393876642297361441378763445680500098630163018313741214573466986951251896681052084347763894161447322768145591195262647849711243396252894644366858063496347574864937404895196801075294145299000743174219282701087783017619289316968412519612689062181211350497805182657392759053822875352594522278293395211807379598523256833755575696406867126642395199942249229429315260714321992357009717478488953126339614645229930787265565083149792912900010826602350592558085704242076585120185089316694337424346829518292192136497544563596355090446213931939149585020651885675476233209576694078487483632560481144371610545426941101413047714472362267742129768308559281464006243470812924608474400626195661902579653618744686414874047091424066298283660867509232207253623970606775606888027366156964224990314304403518901758047014210926752199583464210966502247933856815660223402706548316842899245937509818040759412626640206582170651402049474028478456981982961535600399522621664927114938293962011471005896303704111427562402918693408479613004445491642195852360792685563829379423630044585527807636547960614802853151548608764130653743231876578683476757912231210622647875607173028170833851436742494758500153708615352501426776742645540349233825279703546470724519041537340802027307830006069621612433158064733810918176224607156464516938576642752678007229586162243058262230554648282136774836800105270289270787239714163236629270873335959460070235324398334730950998324009392324357277828222910478167171231789995884768522245790940308996922028337520348752503275720426244455142816733169596236764924422003995330508180024189491470267819597193698528899747464561713431572291529954536483925399128950637529513751020600826187305691491142849502656436539485937169964935412043082333706030005683493327982913977154278915599957360179678900072377404271561549729773418137841894175187374381101736490844529935189753746980876631758455682488306813102576941704800267795457639407399625215727106702587706416781885506925176674045212462239332699218565262859264958812604738852080854894100024927110589975597199489659445584695474435370992391298819992978487752248671332907745794977394361223211210172884327343469540790167889252504905756077675020763560966130865043151625456629001252166535564324604336648621804819770637043054798280309037331870860051505986444915878583768867852870551441087253343901192146250800974490758357213992975263731362013929073188446855768512082961066222599537243877753787400200866079211958689323614654320897963375509459247384427795611913436542780177265025982548922510331935600710067215285480697258697351795606810246344178101603237631364274596466643923342799361962019196216137939877393686877130878391911271141801406419759729188800248108024629019486823990695712592836146211348032586859632359877382674311790272711866713615144789184728842646077325123070825893169999702955271932136194768540015259643691652569113299693353050855008922389958309930414854084350607556423968677938489861524548686660358091032814574153466296943589333281864122705333879534385875443870943210226663735659617085332886687301217933709750681294635910037394679440259972505255929794158863267864559954137675894830978578607521049676523181828100359195303750703662154355519817103234924071071986551584430302498515413918841847926748189386605932038496453626327083113580185888447612768262793033107606033914421323718476968026329077180946486807655910102003319507130774263392280067535426279284972582085685695234267909132657936468564304125782617789207239502600266661733431809248735291019573008231587840064902762306882668683800955279950181342264584051929684622417698508492125939722548031094034002391732708353579970483970675429257470594267473549142660037545312817748058381420803239692095054435363400433329052950378327293475077433589315536162902850112297219267040648531206054445590391420032675047886498639645036833490375556651917304175235470809361522751501802154445410467284008090698380970432428030652690062082924423850197094926484208189819021907496733824071452420607560139899931638429513978050305307099165734645262468726879142045337850921970598261279866844355672471484920647540676225478705040270777381051303856639928321045577816465620482145225124464798271089345267123889228652529258655403465157322746415989436141672943735079047207029151888315984042066139364855122948761411324821261421072475743302084793017033149731282105717037237190119057082039070389714879421455412086060108834146434593392014918234579691888645981597913860188716563800354864473951217611890654898334909642753915665843486922245345211748263408504829721928648727857847439533634817372493057866774966293935580357069607212621122686759619388032439020271186560827014203503694118324735416169927161310621182886986098036260318362835962810567473242022621836730645957725983516479645101859661565347442453526610336006456497406402007817518961009331490883143383909543545537349718095893853208666520665558622895329306723075847546398121510781075467212793070266306123138853123712164119572973072789940151324032388993588411953535853965874081853854638924864507398214260224075851894130669496887250534888273619276414251034504267333868562793380213085414432683822631108193001891192895919922223390191819259177920002848372060852595947949458320586515403548916003615142530020103540886134609609153605133753682445354695340885313452481063819845111362319352234415930444105621074626682756741935143375728993183348573743267234628386599983603774626746518374597223972898261874030940272859122574739817760796638525553216518524158919282549453888730361020908791051123079532967899119004391119028845150549417499711040476446033526576347736301420610578299505135268982335094223074118663857971971588799014757448397952352507502927102779190043206914791902158051745759775216592883788193566374228520685491950889987084892489731153568824143443539883822450390856631325561911537665562469888742742277417304632943030555903884758777533971920769631724859023700285357283856471399014808438569442802757006355134431180126256054560909065010160335841961307910329668398489906653603507420864247075263062163608226520476514097034651596821821510141444329837362061472702616883385238549796202701471605952833169568675332577772801817938818634526598689873403443874066519720851460681898929490920428999508773833803713474057938072411989505288612647744847105901739451479706102261922812166846211163092042582209579365657796223626937050088376282207025078200396380381906000336715724633380002752969795110985064801935812356545985959342540219024376268852747758743999059462511248572773348126765862946288510129324635643595253210370298327777742363273552796252526823261488113800729478300297967387977506305115587517829345517776927656167033667831020972574674600260765958236161613372077778942329113820007398207897016308755198913631111568881723096186913418683160606685416711145528119004806692479328386471904897358234856954678871568559647855716231369901709134715660652357622777165798244377229082446377804174865551242440890141065769467369351971864181735979337755333463518889319654322021429548905817604258952934089331356722900606365502139546188578562315196115663915679871891827107740962748303363182168985381286213692505428410429710415015998847838265273404196819854568516732411244346356956882262773506418217836698108145502548719574039911214142712973986285163879140912041379035933146629870790790985344588856460478703710146489086770857315739594430763070101456434649473820028528970292526638762415741041446506340400675292651812560187662311012184700359458877272781498855960448640804734665340917481301830773268113319101104278371922587554924320109014521538901510075989561085273577941147582870092642878604227276546809496302256087979073426267798735588554194717554937509897296237149174141477468842438197521695056812298203972138866683775289236557357742365834414672262127782032575370283894087765662623337873923260484988693212165297461107068556418308743997171101474870013417723679280193660287556154331428200034091909816549236966816876168000296691748817965221989999070405255295678077085565751359862671921782384480187490359980188780624782134790279826999741152613115378369745237200538320365654527476692472734776210145394132336591017454722815428306088487743361446018313950765449449638013439846972745055042669203801365025855742734307486374754797853935494157175445423417164420434915537599454783104551328573568252447205109199507987166181660027051365899914644435506448233477900828844273066297667069476122631284459749627387854973581665857225553792546067963296186334140275205201205946742895566026103924192483784977099737681498607020423890460493676792078629408648336673089191608440362400909816239390778253985496824719633380912591506571083738570458230889432892318980894463786985449454550393331204966556719917861570675240485864085439817324962705485146287140400406391422753959924453266350510278231994603047608563565375273758415897373259562375171974282574412281314588686518089088938982670688463412507907579619434958624708509545602175344391512956011038370827188751801327344395821716762900192577286658747767271408664389136871963608874511647122314668072860514021346824546188983850153124206291185634431913832692944476424922982200207243195726376979003744334769748704439613573440859671565740057489336388509144099738022891893324655446997645249767247312688165216561403554475699325609527076802824025108770964315577835528492171899944095893415400379261872110944919004611202203384697068727590770847538069622771502550724839042624424195279998943973701814179779146389138222364211133318352232152593167315242389051598018946354116004203403526366606324638285194732784707634990810161895980530973949343207315251946991707373282014074626541928777300020813398953364334554207395163651300017720876194633545106632639644099637167681353979651769078860076573321223765450763759340663379592823571287603793361206414721890412824328079503668134903455737525842962809887938698204219906825253315609574144627932107521853783222631604528592470015303053098717970177776835786399489315019219083268804403708851886116219599847923128116911692523631545422876316668021232193365147622262160433915270904134452845173170795547180338264343856277500617894118146571454652404756385262213089156308080295565114439363306538713577921658702079494710947025494854891659494425727153744510311009054060427003083878165350425665945628000677825051800788533272210943513929324463023678078117329814093483045457922307889175281213775438352465005489327928399358919866839340265274107871154444630255318420509114932590540377701695967836583646302953173703720336566066022563338638341340486466008014753997772314998455129574145864382687127255461266265991047104040530946752185643325317155572808221287072291971325171151255992692675234442843583920487100535294909098664652874751418175809451379097060829691556311945286131269037441424064179061099599278263101383924418151301894312253736374717396173912101981399700288998059502404418746608372615238366974441228849155533292481457038710011121320920992758854662421558912123974847093051638526918582649366104172813831508094895042570344854933218947672816821437477189914762489774211610444700006025576547182857864031788547463982615120612980435036632044014040857237316562456362749878127619975918957138022221176212240203947882498106698515678408085065884042904695856438842092262102451520830460941612175065305356989066497784660054523239832855770776087670449002120359252161759191351436713691975260267570885640130123262516976802182641600508366064716758126260894624401781556685609909900328941888316470257148096388534007516606309271540794503732792282741312370161304484799906696753732543560294150613681008311541995723019893104619390728619247439904970573039763553406351025397967501109264779066596904963453810781719019391580521253952908847020619189916221804668631113461744216612328538112357954222703240155896108231269439863619434275474744572340653662960301607343263693445210920539250740950544438067866365594683649486367142494559005190209308105943710795813567981114815557155257855075241521461008436171321197908760804895088825199326896522881139303006196650749482490697559663298420263789108179574273604536166783050871541117674422192978654469803734992114708143925165846528622979023629227905193441691208373698295876634220392266597182692952253205423685368119261464177262018632252450834877084031671253683648906723352976131850275586451357659023187639663876126874114679094911591667204410072391837037088709150934924825536976061373853280340912398957300750970555915900775481718488813183335745349412544412417815333376326825549105534520441410431486792233450664706389373806269113134379420514221585647734481850376577778616283949419317511147083670218798053715180871684788984164837638334985469603448442167371656958043709206797329778613946148072927448729765656578956888427935352400278535641720645213082558417793496817941173534196201957116900515986898158809423757758524017789715586410441379545340556604988077996806767776027250422500732938252229558279803749969323446605858211468125198071794404924114210807232849309313034617537178323915331635811927880729986220871254501389377847095861725888040341162251558244942966400260987716492101551570606201018862821505884455796392771067601195647132913278088848668447072007092951356986793828047687564496634689194044556630629980928529600745921354956282216470504449440115932579833100713356447033046154143906014496983159522942338411821808564703514161083635048669545734854492961916001179750601357178832612913744690173234350368690195529479304827644809501521342753962939566256985854162628611800819690125079492616008184612573285183601164113386231487237678804436716918317067329729758477882873364694910118052876927299940457409235565372764032855967343988518061421796241985979496671188633148838724014816172292316362023487041281735411757855339911406006897424585796474265714947758779345169837478520080344475426485788014704813555912131276759046105509016602253228554421101937828699781651655838671874728134318235133290385767290320255238465455931266560573248612304998030291750145385481717076998644453912683505549247743423911094070662337155230963434300207444503441361287423635597232535647149527326309544782633868806201333202265302330509946482347278493012006217137040881875026308211777069618464010921260995253292551475074171087109662464358699059864619245790058822168211447553478280234314219410243585845075423970485687573885380589684973329503320546472291969721338034652946967239073033507988397447166840021217462058913776393270992103080535312372049923878480701759892827071493023899622248089862275773567095983442839212703782607669772022266335626330768695216862469277148111304239552281629803709490135780535918688602328575396857604031576978132656136943778453601066186640967011364494904713608628733975474772762311327082097280744374358843226237752349880493243209366197059349971863003610157388823183833678014132521579410386432493172952069392962175036519050385867633154255136911073346141878837895087832188832655752007939864791340836220329950122564456780933031323164969609887061560391268697654135912393560721037207521072969617207236581362660654470314713403147002803391039640309973858648483239858738833396002297527798502864700822964756255120513177326967263726231803673158712210748537881963901933513137042027763518577337027959016212556566389949706966327252210132770110033786442450458086137451403907184356316361926913969418245696776285737452734119931435568043128991422550623502233722844451752586989890527375030948381525758682042701015775346517603886889267729781169246918626435551772632190902676336991471317831949580595730273548469359145594887123602783542383081006169048961668378413420118750151396045330367181133267986186719912837776945661704859973884978389316158033356750854139139721388997761427080105979467163164448816272181954035484568438743067328394383568626543493920392958091073822860702717464821653086248761541734364470829214774402483624353392316174997168579521248090202333013232702087994841382531345861185408518964514388048807910506400795068340010814788677889399843455829829462396266030041995751813848520744851167553361501365370410519750128180378749017040314230481898584868880765801525674509517975710373739089127467945851839837074174721521865266944238309903598340304321589974064172258201938281013275965933329941360973046536810444596289999390921921435314486126310524188696819045020462479703801394302399143475761933763948638408433159184592428056901550225052746617867144093719795009222766855654334932908302772612831924038220864414055132740986819368051062679958675774620865993243960801757929889054873375886560961897683547657724536391216976213946498366477437990264745849945482702795769690638356479568798730634197362205400221419623746121021147027317124332388839053414855783026657977782645854682936204182054394197750439448188997783153361494970013917260403060475855151031972792812781473142634090831027776418466326549570989586405809931250035357558114089214052644409266280426375965942658777742879528637045439058905449864034602671314792268492250824239657313929754606181320403201768035842614113577209236736057593759050664072796873325830753998911879882111472732961078601211190788908600571097327744718834357015275454402352774502041487666719271834849291431303274136747247936474056419727703115516264370468740872609077795789302175890239611857524572115869481547818490477122653708885650736222750075523574040910212208216560778840994101867758079819748444418024904117414842252698784629984980291855053681633807348646035582703025904289422898657425010661249558993481657358736924241718352727605970547806440478195813817231614609371367630447595952707559410572922827306768030099955091069367354836144583821092801095801383998267529058792434701293290802254790185636538394304713368940280822064644713617089060829174085267768587938141806700042402747145318234680138820620799777979296640221246901631437595219842723839022847649641064607265797028995017840626335011650255049785623099153699639074706531319215752308412730453724983486872883588002793411111619533969181236655005271804816425099716572088421795777826457602812179110375707391149477337938030869758505804286302663442946329730164253797396819450641162413551483995418343410351287225446810426778952656207130948290586501516096785189575068772533764969210262739223222048618832928923244302888128460037424135254001750533586590794708446030228526052949539140469329963461924900073029515597893897349694154826715008094949417352446799938133858968937944968246824221928357127324583644301831697690044202515850655640893253106299617480464901798427665265727314946475986003150076861574396382176191238481724246864081686755693664847465436816974314092715978191605362176232677000244031821689012899709738775923804983827345103853377237152436770400712968889595924350484382835156887329817955644862019476446079246912737074354690238436339182534349037724010695847438652806078925759207783808007508025675217864740430178388882986066274799362084721167968462624231155009939707802153972007474413812218819028281677238466589125844346970322440679827544933087571212865571552386615361900414858568094156953529633687905001126599642902043475667395449431386438420535985226270113192363166730489366294668279652907648479035053229457275021976635825841408717747157781917642580865475508974172056303233864102231780687021321421804682556587304660048610109275326562926044486120231597123766290143083740862518099975582689376554309076184717950674467814699290672718736206653822410562491717715071874258442909213781405358335489732137088491468916791486607508273651579917647663676834076977496825769795960295181986012807870029788340479920075623777752254561829585769622868438825368665973927233340402176085803275361865669983390993690560636110563460105978669914382503060850312307000212408422852009515534053242561865651933023009260464853737188900565013338929642992957329543434112883822464843430204895785834055312253380860235156031308302362988453641839995216758203882841436071801072853497701001965554600619573804558621599254931503194886206483229114517953390519532970383275482024897036184834190213651392521291074089910168947264302241669551084863292102746778712972217918539251445129910822923882305833853950872139304053881952263659588700230125484940470567487961205164004948100679728850838396131396102328465267732308725807420501077888807084412095580433578334756656466336379292667611865796175393896250979922143707235861584038958755721148638488185388651631692185038293084214953301001537664815969718689951880251944538481743628727525758875008214599556253711274393275658642429230733674135619843159878359407802066216050839358412068720876714528212087460658480669691185413075582344861544610366858136893004416260778987347144890954642762638783986343013437684041892717738732614927543915253920150902602475967677697088645922545597380598327496449261068738422179284762815479102354753182148369845122024929275302086467038859274547019769423184017877042949984626121703249502724263163708497761234168329129122615226539494015699204456167549608456970975616850716924934044838877923560533067949700037258439197212120039725065713235544563426456138560937026897478662850804128540643882838986391603525112450258942199199020793867469937900837553403850928765609610608575387864357975907933863536700437402722681071724964294944023726453553063385836030340009538364236499987004492804223839549806813649433466919330815275989665159096849159388378450229975902839273836116931801529118134204319611103551403659139104168231758162690049095929071610718787857572727567050731181423169399887751881458065274792691864071800753886692664175302326290325136550074272017721947849396693614240681119589682719331370502617743720705472465553339021867097622910389988804765475142450732481965113654439877368556373194834649675642147586964348903406075395534770100803840407908089877592262967511616990876538596949992906996563303555025138368346865565873875311855844881997110911525251547574413222636165444540414568819796016572284681824717544733149582521933202586182952766714568994247984072748829930700612290013281294544826187009816361125432269537604043906075626049560212951400467599240108905547916745177738140563296760330710899699061741359894972671350508725886003531321035141722756416415895497748545197688703145594998991233697879321981589014676351307004538202381732340986892760420158585461470664652347912034843473243767146734854783730113103124937819443822505859628827000283538380919291527812310605899946463043389649529669227860637719294000980285088162470448465574277642828718569917169202063489502501872757282868171516542837608118272443330603575860895715201923242009460634357021922772717250320798804441586197981913180171132193784172779695468010236211694959651821101625702231422840865428275838006614702706936808921409182163434909074373327018755076874287008597491431336382360710491893654747512887144436825249622511686576734539210405327391308265466917541509295542329991172899871775626670064332605452979738990152687979459773624705049148010792720859937288704266749275644876120963261294986545559103456103981728788608298805276192965454276285730910140852506939359918111163223305613488014692661863081495041665043799417609059007212993719460597589154364346980373031566993396650360906529225947302204722153762730423487718543348475306132521375152397414666855868642160429633804680772692794309599570378947699211468050098174028728955161695458818536418343449192026278747870863134162367644756895367710746529819322191431820205557904384018214220990852495249987873929557649240852884088135503302000965644484721805640810466529630471494480638721803405170887374614425926939210703673259098310275190316751994007076595943400892819795800829263077165251766201447349824215630544357395485287755934583811182924616701785603069763148329867705616460530507466376508986637389067380549183324643227332184060789280555992316197647321518847856944351545126605698152862207971502244486306337630935363620996081276235948959237124319749431435378748561658871571040696557129011587497203631207843972585102853898975592677173632805438298237337837770347972820844909714528661742674011476899326963811379044770046431766300872158162218663534807472457825601398965210139688838669393341322134613217168396195947808323140336146529774738942922624731683580815202974468770210231748734896114362603579285783065239992939587668192539106466359479285762319083737224741020609823851500925048987680152519971853153898177190780084419268109712566873802577436956021174028662595251074116226131931467890158256819765782481240950932570762102745405866668399744632603905801075916561943335632186963378339714971282338445835924517523940774237201955351946044260006148568430983075794485963381353790101468863106228146565593385893136418609005146888412492725350324278009693936831512987850106452270487262358969359328461999465299001481678143335685887155790739333374363247585861515444730046998038357423250853490318766594702392446985146512197362766814149570785642716187607221070102135147335599422012209673002755514179681706830416740313703645932462495871114047455883995002096604744659090556965965046321481952634323290453871952190953778463934203632099893099601912380795257461773470290540341038761101883871082806117790975177285517552334716793682588225414957963481739649770859835259333443226701077330266724019934103579155192353975648710854416406933107473952588984296471520778347165915289405156458910908787025287502311780027269080329970941459133622399159546919859580434203166005860693689030077070904459654707317725343562557691229576033986814491428660764016905495774021992239799243744339440665379246190675626025274077896997248204444148325385887357769497374230038572109347164855637258488171453413870112876497166934513616197144414091423345439665730903808778194240486967413182358200449738389959652805231776161292415688983012068903507483722689514860114574430610895181955484246148511187949760303185080195229176207510397092331056620994251361301746542126739242988978013548537580001255408463123697659412477625568538317712179300763623921906313284503535466026984925978335179490207549075178930619812171619025314170995664724648697560785095748016119707286772248486913495883916347813582070536687611923508461811515553459348135426351135705503050304730329199524265586216304482165294019365181690204581806791109143234367567836564238504159255673668770884414697620654147681999792963403839580745821940745281376331370276728044806373524931829356797309120526297951674792633616543142428134838184741494230080781365068278789835443519507305018840822215395815912408815213564623847962893694261444267139026796370160850353011498406896624777012783850861944304911695064819838360528925487298239062727710151312966386826970450003628097952630329585598206274435915636839449002647639605512039840875182031815007497103956377434118813041431487782627461301420318185629577324913595427872643792102302387991856056619775761414459841691640528822787681867167097270470977005996456873130162612984246056980519376694468526329729728029099320774578470884991942934725011334808383215304640419039751412961633690581283608865426127378518984767883621830628534854302463103566291911645248784964003941717338855899071902259585231578929367246673796303015291564668031675929133782170239549764661997471788927691799011530792640413073764035485691423451670541809465483474098818893120797998528137759608123987296499557982941209535121075039174317076725181977709530795079093788608025482494049035983119168048410296369163541542785363166233985520735750989185795896985377598371265466039614712475625399712450199192643348252407674498416729356250303683586172395619142377327228157445740939935287593266299000305847382491551416907097254888717038286007465013259116360435834327275797268610397941859592545202776020859051786383385875774892286925351942588854806468248505432440612843348381312626647301584123124924380150893642010669449023334405644223894131349174011374694888174335639647722550223941366154704047239599180965850740147070756065396571603548539702828609889307444304945018054255979129432659321554205293020385837867864954118163122559205971375941080152036632821108970210647326632339652330516159787092793721009979968942013174872230900331299464481841925214101610037119361321391392646786925321948438046596332068262415728127801833401942206420002234883261605802585226611811143646131157611255655653787641724078347643498052589208118682089776847683621824828844618618490811419038996670367940207703505381607947129653262386814807359842604661358972405992551488138480336939067849112210530306522189624577257781693856377491530341372821505645159272523491476166382391948609399979649341534509309313379005444864534507704473788965411251627237167182281954289248232327963985624672382473856741785575050991245192174240721094345445324039684823457792901806452128296750955914313853335198264847178512967715710235745486037282364524187749255199176135608643839096570820814124504632882306039377139491382704712761283752482959170994462757418184332183399651390559545480299885947073695492741912069511869238603850826631957887590767004276349302583859133287271117161388552763365192000359822866734407894377456575834683185194896425099203902484181663440949142616371295170741713932651475457631580393987102128152953324308190411483250643800517763868525134393668160969671558960554050593615463996611033299857573660471538013974182484927227375137391191651809793750428244051166432633190940804226232889599027268571203802467191260167827495104720995717098577573225556337486251341043536411794341133038687526107867414778585515292861451139349897705854345971869511905224486712882704997017072517197452471671848365063453446791851046112932278978667795871487966827400600106211655091880442193661962366679256848476904868341703150009224019438109029097021927174595818652849626066237283018856031138163529827847895851397211167631448327132884471169002873284704139309427934290513533784266991121351307318845752785557363998511710417446762062628346774622670656367387059226619362015557581720990917807395297314531390707128775664788146003944062650754377426444913362008653477809807987363972803092946841840066967850578853278935286994500482191390601315793322330206569562486663736015386136026597141073498863157450449438472863519068633381856402117940947668817450907859247925770618724800669994806897158583817316920193630619532898593178481735414924916449760829283867524536005497054098083172975929346386895981528015233132295201445751688994079674117956160521285485608641381031346661215648607778855280371695114931106065831225416061183265138095098266213844305058074644940930527368308461167114719036180843706430536298447651546334674201665814497800039275328659432210864625768603714642501464000717229576641144675416090049306209191233062092143522464730400151332608514241202557493789328934426300290907917391457521409827543530275744075592061338204891087795800855496673090464684445004300340057043544459069957054532854980735984445891671679524234156651143147915708876644235028937061416792541365012547927451632590725028184006240249302016073099376441543415357563591318036166427170069221916275391594719344946287042600225465633760863598067388542228263938222234648998162182339313981573333524031861322912782782377212635842302506874067260589814322806123696718912255848326088711872986067732291238824296448630184870553149166410826702102958827040281668268301573721299784766626648659792288582883805616976270001441688023746989148095981661130454488694436378132931110485519269560475872027851561033059856737858209687128531344770917967601594063053225141047404659692371986277865427359412115634675855566510934152033976627430924175510095515783053526090817098872654088605700125058935936409353011059273093180062075552442040569247649610756220006073376838132848443496984111180673239775826571754503645819478957501606124530265906285137026303258209292093196124093795603275886963139854576869402037981762740061961910612833962830596621725056225404938176172743934392900227608257691477127121087859380091585844065949881789219966846242526602308430947299639901189627098437943795964983924732690224840630236994248656005723010055342789822241882965483938314749722454247968046905362478331829984051999563020762192089435432475553883309892049059346723065153703368008409834048440470515450859126500911864691487579266925135983161131082891027748539306733522506753092125374092853502753432046908005246028005705571197201287674610039985830301752329725273273981627762529053274116631178024036312681172532805519918019635404572654681382076014013641144260822151659874708465291322596797016939246620814123971415498115863674608785314066697566741255778945979263911443320147298285577105087354502304582513419656385664567983625834358938767687386057062390838370516477870787185290072343936784044186789401535596423113868855412483557177053203619714226280626650814819480576662090939220090492824598259296722254375804583364516673204326365719775954474666562611385199117311390265559696071353590909629238971548994943027395186504131792790992742927003074039009911421468321090082254373272529318934949865333704345555640338927964234764393065168130285644687307141469925421260264894753207412759226793172319233513089388036841907952756607498024428817856486608852892113274375136999552364543923034540719766897337166815658910897586023627991064977412443511812420030107563624795545049545740920232304030369872805589753724479843956613717432211450306987482230108954372387756187932300837083341972593578377545298383445670802403637893860009236818519248200170065558694463469052991660461802200070332873480650991277828384453778295782215255803995418581405611299839633151141456612235361217008858048945082477584052739335732129684339603236312829545369441681264885604311662007379849645499971920535562283515058923728504335085159875509483002002417642790166796911540394099326551651230322151741233417811060518290981647195562126475000457132031077142159020650786208735330916310981974681357128450115266387606636601574546126704215363787877204355778146209785240829825814033586478920629708629578367739182171130937769211267130703945171076013527333440420904256326767135841477969873323462479327308436901370424203290025178771005371368187846776708395648475193942238361623807049155358494923354345782201181846388224910857154063720806527405678331006014217767356258968080112012501975620485289771733644840630296257441145299104210403442833068268470940012706453227526222262509577168771686136902564791493719048423007074023008324254984627362893036234986477729826563392700618550439616964413831202650021297284332938222287828181622963881745644613444635820241092773367490493800535449350981399543379988595346896628490407932917788313170442654776212701441646683459534641477390944609245990882783539650870439925412185664356112093584649654123942373225894447074233091184091223676475898779677704110228667752640774100670940813471861845351361586845173233123125550364994846820565514346965210696394211498998350898492426730853148704963665003361712505662760046247586197184994330307374488223198939786170771155527821845365549737557211858232752039073743090806326414221003799249665283273296740308620889839258125551317044591119503060156221028687614648161544342232252974601068296664157453680602004258076090766668033703091441025594053924248464745158896863371351094856514649713951242685660331572928410092254361330051776850033800154217766001177622875864635748833616216432682924493121835081487798627235770066695317768447225583953569023567378952420273076187285327691773619433650832283969224442520570518891250391728817533785844804012292416873672742525629766848822628379011830120283180280114400621174626041488252756289890530147526089525045605518608440320081934668171960550087556184103523490032524152878719428794733020805283635926023998054975214228832144624955048790584833864417930827775912804507549227319942674343003523864006362057367626482181038568401198350905350543673403522951943400362150364258313988424153754250216578957445344427928939172586209924423755675192576360974620069849581337518321962738341217367733645867637987009889057411766248097813355102895535946070745339651970433994535009369836140860181604882328634564750541155132313832700871641494204830243556204750600371595365415586389597631404779137729716748708650744527800925492505703866133654603356805493981690050213344956628167087100502272627353715178167750165606117743067763389561772451498068199630732518437377092166851963482004199504041707526898002244620792507394214375110958286683566290595394782238616209801919136801617009004384033257202779702487150041984792035165708634139579276131692749028269901672703479430639386116461808790584882307636989637623690263006604319148959744085846599829374471210579110062038540062523818788765246747582086920165802533512474372023211155615887319354021252536937532888612256089397599464070373444431840317657409534198401744294960924752264453302625335133132226735825317938701987603543878286661713432344934331513278692862118527113065363586722034711430083881948514930195237083962840496706600504254789120298013425929758074245605621727698379716958231657705798131156020666265362970742423946823729495890462364349685688804446693491244034638862396681455558776647999522447029881565883985857632329234434731637553912547981414499085044435689971551768452223743735791634992900189910243989547831428067378315870909895979574390354883616505586581424369408117536361880709157957426220469207196193694702594891678034451586306622855416291093675953180550337049166476807216702148309299433644059999896880727928263692591129233535579026472341164559293455878927453278869138417749144783544974586477211525067836933797950566196245476929978728193837637295853683188551201852356484864912846704807370830348292268720456822966717321924304292754684409581169016893532975285505110609198163856885325232994686133744799449163232769846002174137359707518320165048657849099242482935043667905560057479581964835115251681978268114102104051683391281169250726615308019472960128112693330820427530963488131077945096759225505913785303084548568743136251532951555692427836255446097301189046277957327765146690968278061364749867966104950581073451056247326638018294778148564654806007906035214791656539094071256951946454525363614650479804818891207969136300318169348553073531901573081659717461864389220757632980876455031317561267889329577644121342879497715612731827041191609149048622790691488662594407054919779827653183287195847394704182568058784706990836702403528277878950842167255036985072379876151599869581670079562698977576048044369897228739231530885148460288534185202121689899931261376304710680228401595316750913002853105641517238536096276898361974045620128596331583095589902829290404387546194949138093665138242999699256503148206758498015050578340341125144567792698539076177775972905541748706857980314226614886781819243978667225836435161345320281167293301420573445030096441002361854750727366876708121779705030580868929558134871307954327723679065139530043231064485877825590593201784644932604481581212325360141895132052325735376484616833801898851151266572957149208446167055549810182460349794099510500406311223219342064705342576777299672679731093055340477827200406527361419529562281972537610479308799108797801521070356824981957915498935340585416947891012026662300238602772578691356678285792110434748542481476366812860885204663765348637645187994875250319981139876391855763138099516694464251547361115951804427144237546637119447870362957386194588226311506363444500854213034351593175239633374163952364615702962012093539853532483820464767114257905234091238577376629197294439516633732209635530598860758382834750504926978561591569125869294159601835474234719192176073855068932613044575994964624104974520714217287781577817609412214806471573809990990409027174928752950637639701887999935783083753258267932640574895549807921721573032766663313917384402276802440794030192377025583900837163443039843129077297821642259072047427107175202711769906303789613737698394548022012141132202225790903745203348316709563639514606174318099773456970650335765155107817326199869672500293217277470289647695814838865217503715567280556450984685403720844419284624860831704087599384126587757240170961697259704754007565264144476403596454658665729507170061595779082885754049580268729944819068593881506090739393432554872061691200885270949153680001995000088070629003251374437524536606328908090325319635880556329594989894303932799453813121758769122759740056830416440141228544199992096633217113069589143830445004636529392088501073731622064841289076200981841294988405587083837796653342727559156511356811163010841776541675224816202082923973161742541779469215597358350543877695492200249339825532394775221429371560606004953435959025787347277683355646869569154833462355601094501321726090215496679180995218028219223497398312242317124899561222163031285937336851258925617268825000598771494896135421814824133614165680011160882699169920308331408875580884445447566673217138278108004102641010575071823709612796348423402095902812351958007862708215779899529810295859196151463651701923286088699921802041259332272225625572015952494798600909431867961572134896393419970980928503742812851939733517034963430412229001589687626389468617752639792121456783532468736987528009086353198703875292118978186736745929741427135052832761072267128157821589100463241775344720681003198724861527907142463523205041051549550113332132004149830701921822665300622596594371284799103063085768378838411881503466516148949067907093594952923147722369139049071718386905813957558002463128569434802989299504516871683403951152830498770767937226683296653204444134731178356644365869830981055387031851513096872216204898456467781580414394508935168003756507102142539341129556323808037748647198412779828484463998955760207360389257127461935082614769685444105483102914264748509954867058950615142170996989497988370408741518861799807531356476959478521781121505355992776889857867893680031664651896270472167310074275991863629014821904056349370568625873050404775932824984546989782668759287836839528712559130838566804076339363341583072932903996051254557667028013905755743178466239580128992660448411746126921047072521591954768542108131058018199123258588355404177126637743698289557220564447737791360901487415568217412391156539967587826260592890931961587860878366494934829597660636264197898213591341927490606382135683453551040613488651284540003041977318201339793787605368479307484873985293200126850413402472702492429406771208057960514424137727372961364907312563708496927149128370004196674681207332824229511414556900771967472257977240183524294350954292662412604212114708960758006268864528286408989293743383114132645506960450249950039936311565577322344377978363437006134465422224463357238628251469242546469239270624056268735188861807936982914804455189413248115935235541936870456901691136380086075137822118032691236932991495232118605349722509651422380042655838746220183032296950939680999314199493996195572121393908518458422150043314076266516190649235458974191731380097450353866697239897974097326066607404852071520158144253396147812136116336017461368454477989738056271442995205907583057446377665587676031128270076038219186446754576754356098208209359157254304234899957237002658992760466167842489469681419375546523533850395267794640408286344104184633170365874378498854504858474886523931864828790933774617601642295501162123944808543032828176217513944774450193949566956733222844108558978900851637724925043815893965811837093592521531281275199903054623138285041279621437267973286547133289584970184115290968406218073455853629508402907628331542771434449470396365322115212736100255040030526622593517268051775047319697902375716394451969642447929823610767068308305477244308627020793864167847986033254997378246848210093078471563965643366254078969385081038602798576153746970944856224817095776738544545992203383689943396951513182397796598797985602194679498115027345783176167151836377183284700853326561056117166143623481881240026313181173587371687895807489436369229335925081553203593284706528653344406163613771204144310365223771984348739793516249892971848278744104488803985621465910242499427637913841984236647367658804600371057319384289623230070112936334365869869328086664959887704065942660692683512103980377618253338506836060457767580807634965912254521410939600220463195059400444852310680355320255837240538437508809243171618758172804298225792205447418332057259270187984437240688298663589433759010519583084350586158200399813617893768443994759014127388772814876571651099104984862054262642999425186026658059861386693634051379661938100917591279332078219190602255952367102324623306405101847587025556631388781270989619079087062559664044038920142899296877330113943929789517095776503145039563095733181639346721452011982204415735738518639018358931348240148024906389319249214497987884885647263956267155060441146519518866708830735590272044801645173496105257113838867527552510144575754395251378461733013543128828005709661710331580521988922122080939372791490067489466056984133346485677400384825008905952403650312749043575821336597563500570807640738657702579460134541847145503010871771035334438238869230057370646670357871078834866560538224661113683248755039162809831114107769054211628182860926042022841052127721910104149421145811640015817751314417179080073603663274766351982414364089966900897445249502697303620943167148302006016664466131460201333737567357317515856104687480172743732233459496217897755883649543481608942491772138065893428485995000354608531145739196246438846809044198260768314944492024714564964701487030555549958645315546768039930640402983533059572007047969442794847393655991808506838496726011100607181057551545601379703341739998303695523546342130363143477510296388925408455158540244392306628647466569681208037203878526596131259946337712893631343302874310091739349823368401648802007084030731789531579707465443414965327802143434703570508027034789890300503826122079039825155328457587871153180252000589068695499553494103242060360823480343093201617323389186139998537380432421440431639862790939902816959038443512598467969107552106765392744433245698861491577128053480436276970714119483541992018501294428990341288346265157916189003532458030906992218104873379686555921215346903098738601160881892065158574353328827762222418741846500216768271705010925519906198127165282549218479604214131294084672904559388976267620476592415250243202088645507824734440881152474755223998876713654910774799080198822146508697863135665679929256136985931493175768096089611390298317446751105143797187809455591274708250835603041358760745515668265035711289187392428067736738983529663682498672929171326342253327872797598881281756424585622912925491800110808340986269207399832280057440188216746332895999390652116408212516230366173259528978501205094316836900933417948822159075473532546805142899629496635418034014793857616150409468624903545075539399275849037768367394739078763686694324558748983164292947503653637042087723696240414501948241080664820479035497138486997492352742300208046839060519446597159326969742016261523454682725446038117180894554562452923329456302636929315911180430786187554290039068803851927365773646696538568095972732724286718920443001775127198739840637010053550843457225513931198359239866523383877530989036984231303378733382614507885160120664159880620800436384855590935614219111047809166418722148785341230062963647486492915396061129932352992245677677482435716077731241028248964655846447165646392644226521586616806814280516790258523242174317298616475322052339322321293709352600453018757813240621425408237923856004939323900691986602712832776452641712273953341124906008343125322381577320235630980658764801892751367246501653293187358871885608445432153286053700482457559386389806481811655852575027079838201262188398873580567756303160069870373894024554552709003601110757733793953872877211840523206903947979133597432532920173658834604482426909468444041840746690918948277595878520399568071916688874107358689501779055383217018939227179013207298358840104662654777074321279364105367306773934043666293572198374637013726685125583877665729456087816512520950971559269506674564649911473322043163215611753629106351610851782649705665026951017015457881106778376657538769927483969612883347528289108022220186933450047123901366089083868008786102449069859844181072577744883234224424053602646833588526245906441448953443670082938800938291404721340738211246845949699748668820439850242003370185634081209987457439985204408728485639756807042845246588469061388542596426756863380394725525471953098327898168727738106581459414568698438873618919901476870057571392426488097820110018050244000262762058275540641530590844357673603993994977129564382822047379790693210175640812147701816507899462310172982615582728966822382152938019761353536882787686104125513969062610444729272690594648039728299048576312556306104514517007567247662860259717706219171780567317635823864406416791175585709158647860850784309652662438574786076992590226209517148102095473432419102947175768494044884951204386999254737841506609197108941316249556371264488530378635372986171399482346958745761557736309749371658682281026806197128145671902807046437941383522448973620065318470663622693906086748034734189095546595409870229960259993326684367917344730078811812720333926615141267257728865742719639534755515562786750523408926840750089675234211611522721326382354101594079823956928165210293229080208837416636068962962448174765229433407434551054475867398587164082427038752217323915430756356921688346479406677138870904063548465430484655708639440005321774778316913775523701037648034263111638846512269568925622228036659293741858692413857632758596436316647893585692809444693798921801946971435621778562515452198680934655968166659986478672873233875828717580156354548116313460495376056638285628446062706916268448033132926498897201461882235692093341969319807052091772366683446890338055931446096023798763363634767287158219168376939687449595137086358504089152227275015396453981395156160397211584253928414190669560557678471081014992701069125490464134001580158669120912405981123334418796034489110153252408233897436287059772196064006995055686524140344339604269266606363803305900654885664135898058043551420872405168895440003911419655993144548085627149379173728541724274660777094067145893060869138966814132033773412740115020617816796675967574491841510685185891518568392797296982183454314450648685301925395449666995473932118345782413801220301000407029563058109720013889057184469393311843747201778523084406739359515730734281433630052073568148991321933995138371589812442512497211750263141453191600160764797062169768486641604764821457188257938262509292716640260229815683223763254661386517033235567652840478479817706621988688437825829421807385070269839447111290348690573485946064529464341364523570025591643308416737878228977292741568019678807015912562998424715152927640210927338472192075097291715779315537604868469881834840400594963540771063863182885265522099922896042588578584862984742332798372068066764393773316721838301633964907715261550212094163967129649025822389541286915444170516153626184118916540077463161991480504126399358196336344499379329143022787540600314428486068018332801258237890844181108466434269724468654489228514282272311803471632457475177551939612655767814571203208312823880161947080937122095550484866825903686408293002123827145403289974872092557795820047192017457755201375392957364165561694668341989127856834850719050704837543338927019616916679701692023998927631047089880262420679496134908461592230429419720795345679411368560933936396396315952017948126069124417915849017929167470240802306654717189362912283908478055568567071996079157856689817283568632861571018012565221391115046200603496090987166078372235144450720757085784301975294998308267486069274811581062138862916890505846111597170133197220257660495050914787724238690635140753413757378927321161737572034687157118920222851350487668210233306331021307003286911526213393520847513258525831027451458607464369033612426171219645014866269832389154603171485364783880575365713313495287736679506238972703457285105733273976098136274670902266192659125903618809885872010284239300160955782051104412846464433274417982140938617145434529484604604324820983521164949584678620797032518326976513596658937164419597100815216779068112857970209546476367758048750932468252536842863818669213811141527641406142829504066664313902422953618766607308466283990370921484722931727064861183157938381962309597121835741179676265413219110613510974511319776118219859909859091381575206965968275998743102020481683914558597474040663195754948780928784269469547059975024487713283807776336734305646360045910660829487267192146156567687401759874471963496379876780102991069975952870913223487935872367923341324770768608592072605996048446019987136878488784009284672191292276721145062737791621418940231333900854855531219434185588730590676832421946794121197074506155234202827370968664857252207703433346646217176667041832254256079059886212601422990487783310656585601277679164502926141153349154997915424257586748695581610321630674240180578618577342995976246323944314628602937656108813876309726110049292308964285769382130363569380974047783041264425921448911497067808145880988604886404383313331282720964497950970298293546600411687520554318836441144174016561334970452415842984582924207094984105096461286394081553546591123858098193675916259221151105482259733813990757045724224214594314736220881197290606026083785198093748971422151816098361274816811492443814878611420629271603145541287961394932164681154585099917275319415408145327405696722264886952935968579908303741153506355541000994214173030244059569239295665575994942444183295209290531111554778005743245801641785762836984849368027267511177613154213742984522861360971095786289393169988064865859602760813958179767406990184026951119767540081354886157778518237588164241532302198694719807214364435663800510556129554635740175022735405971346496049876234307512409946881750104640675034743242192297894143179745899207992699647821136336293547560183938288523721049565758292643445790355828240443380774589433559386765277288575915787598746986621862497973030296112594757081258716985150128543706750319130347036033276376079855839596717245237927107757364350305553625400843493715781612339287871849254912191153621840973015523202513547905887032200660475499396569998191103969616094948325948949491775144927884555081804040456588439336877547010337099663170443221758481041558471549044746600416903957963089357957931164668641281739839462531603233735091135804455578121489232771370821904778272598123326526001733982953568593869171241171099671331240443397642753094394081699480527588227717788722373321947473509060788597737275829487315499049445976006400630042454938511852617648166507498064978429358611618394615443399467878899965916495084675568120879227329804554694746911424547977790291186084934923569692711134406526363666250051385138635399846845422358959315181444801868382893785402333606714365618910921927432193356030415211066608243361592218339453696951923111934701954251883066914322906569506998083725961304886333245758189823348867521850578164687502383897215926918943729198811948747617682113680909708810551183854564056879739414187704466019932547867161141244128036146317727191752505742927023971033371829316931692159266933762679828675585816053591442031764138124628045507613750569212162215658806118493492187976007028899631780217830860672945283468393621013638352130193479860966062072272262813076916155476970143398698392985553252468883437969831714417881623809548419656239338153681874774212266704123801575656531393729369886290559219942268091574914133964088224112433253789176184241535454541415577418669205740554860282829650932793785835657504295880354704570931339100495538619096247574171158569766785290170479445674895116460875030096070739266520259140162890011070060993327123880001207643540959877411478432226576091465295256850410918789712422625849229691980885838230073560945381051436345868756607097758886977744312639676081170658601598764019516499261003123652328538947393575733139682826740761054498967885852210095414792784496027879626160392142032699842837799001202147408520941468772841610283219598603224297919538479292070566970999988134312877557690695910065050433496580071452434279091115183190230980206555304018374681637205057070286351146149936798709668008399310329075890538391281733123277743969396006901890440447183922245385006497524390909262574656922215884437092087458631519540600569872821691689140926051846541027450217214223293295209673921401561603161362213540988845726090798945156500284878333503047987054219240825671796134261701855514642507710467933705887351276253827536266294569783960326605274509578360210356178264987453325774895686474901778958127655220024167276608560832394070207214501450616226937265128423518814660724766870886281008837422157240354597720707841481291394799246538834589828615111680030136659951410456504868439596098685730958446173016895429731576894340126361716833794964321088058065356787647704907225232764700263597834605649342167097040624157881651783647175032409706395993603783000453499356380825673756817697218068598058677043329108262528435714195473141062887834111798035861423274613409784884165963719247199551637033395180132709496805396460455257482070509471473842731870975108071462185951268580566881398831534837505733356068544903025615704642401704017385697259464610757180552516937556893786438090910508388748811597005480307716284222758371677291460621021351717859488303694304964498359939126178847854716794559441849475675387738595484395414577007619277516084763541861877037710170987220928993978266075078422815052431541238238718676137333460823678543336563447500148075380409077405625845706713869767931525032731721712934276533398518965398280470788439539470939344581678006218483621084605430089365245885148629316997641020602854402475912069820279815977425934489233482608686582405388352339811715429007153007015815645179551161127009838940301131879080074036825880558857188224900957816056354016913194057157397911063360455493390280777668585503223052275117610577409712845272820878646695300110504676170804637904442175411458622495013149975498760568171358372932778709291614923591336266379169600048140819917853639849224492458651869482635230007088882660440562962132971088702654275693499569280320571601658962317712072861591446202175726020922377107551676314560863971687859540955498639863282291042792016985360133574988668368479640772161384553713613066320299294298496657900086277904192350894614055231355991860511086456878332849515612894931413136241949934007999045440688194444379564889308666386463732659906853777674395567976831551308965500757284912668420640597609830152222584129921104752036118641981089406268303634024421443321194699855728013048429480671099810098515287244299021491271575118111448749624143779855185248282727734585961330612561375971588866926055314873404957428854055145612673910309487237331748784635802582428823878467708648997949627522510745634416343232715655398326027108220983246029877882889098774682165300161981173337112208826451957698006376359308205353108885750577428800184512578328914646408760139778185177561330278127825663233127746553720216074182245949082572943016708631090894919644094410650721109059324779509923383669135246096443240190588961897121316423074345200264524437793504481600688170108483638892500294121616414563540114386782307264597303834018706713216497023776862881863293255367471514991890846154551846634833555202235348016771008663263489058935926917699956774024870093956653765259721570866140589939996195001621246054987654675896408014310031081828422326781661960054190742804978142111812035487233463122746541972744914094804442185625766760900392007092634940247011552897470124756039008451697289046557431604245745911638637536936248126416340146152876185203250490556203043648288435058264654848870429720424395956878069270849592150293048630115480565104974880214371838924053352471121758735436547789927234575781026729291208004476766762704524588242766514383472075861172669156288169020739408140790550968794985162064960645947336720772103734229703906664664376509985199629449026243661187129034298011737465107878258401474574998484677265893938781296076462622102240175826291081176458698721595092105670156001118426713712404486923619966984402185232310315958287104404508980497067868835953045643858541898764232389671493771724775440828198946066242939327012697672635989108079290594896697444551122302961378902177982504329005373448562201207894745527872369922195238330531986442398023114704655557302854180940128693329714357403180006065594931621645890474854523923582551491013891912292898785429879510615330167922374717356885587388355979515724554398335590460925214932007227924852144338516507384165839331251501860141861865988627786904422204614529396623686207110925394624872498330779907346028040003705190209536638483694555812867811824582869994695455159524653869632011200440745672487740899318023025012970484171426606296748404683381307681681998220743119307871759723098266315624453074620646783571346391668041548145048674180693908264806261136372727160326187505942456137148901736951410215960696297598039218195565804210310610353672789420704598937893949425504641053586912949537125604739014144837391833610060917731976140661447440001150928411674301014217479279801904003649745769738681545725495588782887826312861051824383343243300841521439343723854663713801814486734857618576804254268404874432670228868179205612018205528261185372268522911961440189864519621407046973674326413542427291354660390398796838020965619522002059296376226163078684372326841622587943892356702149765536425488457424247886172977102997593677971584429003154691341141296847566360924922318962117502800015295916253405727384794546713979847772904293087634853422243044909641861594982114195772763749800581843250485996343864685847196689514651287786934203981205960074325881279614300592139285317048117168409177797144882866068003225103427863541565789014921054506934044292173052203497827538414758722141967183092871543631656600798278613920492073976043918886672745770383819028088813460284660013360995785815363174954657801711742710668434936841845662327229529145986017847727680032140536954886417767608171741838044727440063056413470294930652058054026989743738550388597060025351493264876373128653988199163995965049629333739435776610140839734526825010259544293718642633139740650227781195575755781809040828121277427764007531793635916392543177437519534301102848561888678838985493081159578737976827899669196848216571211669911535345052630195507645208076945528749351836906289199853279482580424065994814527422107432920893898343498454716710102945062622041504487772980813986611296066118806835792459975453344752456638057212329318246987296687680340293580381721242030351048670664842999966329799177582132777243051204009479088095051537742864093974801743510042017095504459801832784334548754291801781349497659978617124489871536257190118207353944027291598177456767227396495866375356816860898620197940949358665603424155550425574287791135386906815195095557205855525938062368584908127454483010149416255221953128698836383666505861271403786130363294941843626315528283534154862676677346247958397098048132325654264782896471359333932274251986434143151214901977288861202618797003595517539838467350132501307485213410146917477566294023332390137951092565928792241512308050333396417350167997472445293058630123749803223497951590387600197504777838751363956422310498652982779094620736382554209514775762689764220375547187406800667533305319069293240302016176996969649096113919894702171259209519993130749719798162466959049347426167981859100263241980741214697145857077403462777890734466166035638616998071238287565072153091727846706273009202163768815239783582381060213109726587638480185510236044132547621776066117301146280523138761616939413386154994433554608990356717260132740987012972850240097722471789037362760759385804242176793660523893999258688125280796292152402987326844114524569276819430324511707390571701768114035463556623318978378674601856410621838308711018701920750468443426304526273983722199039092260372203355782971200879970314394512149467070485062313399896499160148684050256886208588122430137546176380423891469509044221541227729875691579703383174141634218578953946949314824694732736782997992522138975363157081090990835928662201774290128761275995209729657136926909203958607424503854972187243521407317226267355109431456756688380558408570712862433242872473804809580175609014344043759028143389449199009220998077115802381187603451630533117126084437945894656923213004055599425989654330575565375208644465886021328876453930624045633983826426964818994656895454454231291862823645759520392286950736737441263167556363766621392439345125524887246526182634368804284139649832902074882075595681111777486703661614504957340481783061272860501607731553378731058575924210651641198422826078891412658008554882498642793156443932528925929411825908727743322264793932772670297014665148269519317815481387506741263319660187428239485712904376395387135574279048853588307778636830402198532775864301546242764162541547671219819202065388629570237893252052825137237508767983560653285408432373730878166436085273078769613015332497667322413152166167355738257310310670906291645742626852871269688051742705910915666725935820080823695425839499601954778526345612083344610107759064676762391089811017127652361422345363196111227195298768344490999794160839587803288373308638654763814651316839727967747012665127411049386120446479027431401448112374167614891832717830209263898564154375695612739166668498382110878111750844610677411801448547476103329373691660930352164194724052978179093567787963058427829160752078412081970928522056680517266771888236598218708618935713462695483382775172857457793196264698788183380779257635960802926261075557820502059893917131819894238766980420251427777526592593690614708224619185999423983534904826965533650355616094742283890967419865387511772501196715218243445508066329021145849593502659848081967283136927844939503750589287673581398592315237651743238053893601452882602771743713468689937054496783080129249498741009501734531092777305879533909291900149419330652076412887761083677312198527344906423425943406506041191733700381273897482512002572731546962902845634808202843973855844511000539246755139234218111213793802586100829587763501286206024077836845859836982069704208164715609641896770022358382937769469548240000193700506016321908608535934117343650973251404039506867974897279863569031286069420178514190652829833144378183742528471521817269903646190424396341732477276459397218541374351632795975554629511963984086523596461473190065261447470519072890329461208780003076033575308226244394461464519358286288088705702918275127686090997847623921185690758820340913046452339094847230864512996252515911531653298283747926681328069449405522949431009120939733602641050724527240349266139239167171628870640674483841921546419178134454996501853797898493505204686750302065133032170621869496411923923097779248317527676642673190112040158496013119601574500220028443114755058561215003726685821870100288247402401258176139879620139096126502786473460891477035082877861070806266596879203603159240554442602639212415118166730239692651928818819721223706982267759902545907931943425218813026129056297812262349622177575414153248526197960416507165855548748914432919738869148287612669515766101663945394781450160018343377195910148455007018321711912470001365672654846625398165544567098947771194600024308798818877803819950190509581550258323014737739118132717807170832874438858208005430502974533876900273571793983381077841202026106834189428551526427251706606100928966884935262094807587464898641451965915915508475241731415259930502268431134085529710275424212698161559814124058436123667515583522718028819153107231063649781507275658920175592066575356675514794144976260095118900226728663090562796526354204196798688060149446110394599164615256308716454944178387513347682999791593988018327216008642105189553566576421422986915397760153437173282414520791152576040204374477782132546016685892075561678217610577871801181863404623638842969029494578933764806313568121860652960176268484663266888088600570146729486882142933742632759171339704616126358438751675508283262886689353823627662859682627296704339076928301453377047373483259914245352410057274544385814567712945094088321732073311706628571902235746434090693619259766238517168686058750892197924115276316551103661579261936587643107304698408503890184337140500219687372657156480919269745505491671050704015808589142307800210112833262931608090596583442583899606006604015411608568378259546318225511331018818352477564175759101909397535754116902062652646963447871714746771818510944479777956904702896192774565160501078690574313570777599737982309559119515782592970027233895397175199725036476382065759842815579333948847925658428543299835119724321431682073392019381097500686413975089496280119847687587854815004647207579625975385666315309851111010318152346088334344786077776017613235028107487143863658404230462043907420448934611685752540555002417342949563617174204793305842002617272855622683930950286964423695136252817096202059865095613677580522736407214457101520741617248603119725962435634827827866240510716615364923727783577292808851528289212829371403463896043567418357910541714108514633496087957380052103868335368201722982090182415007360817251558869468315636538332788287977373724592797576097142696242605176650574043613980101301624096533899177838586153013894798884418557585012892848529667229964134708639509902054399938496563494838052907068286071569333302175545933217034059673819412217534656766635198840561803652397285682191800489768414108633979179190431311864246274729225149170843801568918585469290764480348213081411619859895991789840076704680585653085558007087375468110803785638729701450464963573041985727509418939617690762583466587737273062811825155850452221696162588189920336958481061349204079341041811423618106901451364830759619931073414740652529354731880773922423188370348158367132118362044463110419798920906089015515082021794745197193191730108528008124427633412173988003741650609295678639276657656179459499437350478439289763209127746061121011132277938219166564262399573792503989262957140835727058063242236981594525912875280937453948338093780763418632432323259691488184756226871834823436925191875615636775667372722145834880588105599377715425803059051660582349558308966607400433775951009736638380306972643881948014576862536304694030290337186256466939281861832423103051785452444261437637273992544015765114798460906281224801719530847141004904236512358899378166981762238966265043991454584835568507515093500484320327743687444063722504746013516634249802627158773092103091530037324536001880606800934122800033983602934095123841044033570459153351547672275846732775000549131351549308766994055187114090499634002359435506613816037047162347145532118528973901835981887330861405163051057910709504470658625002097666943588708823040829882930332378723209657191315829276768107687554441814036135820179660842244635337017590623746931133667264825630578079684438527071083524506409335890883480914571945833422246380645532580788062567059158990208880139848603169402317830536963939725634564038436175522819438529221891794098975003284164799479543518217064861336543199064366932173728655723211461098595476668453131462165416236819925056025793993311032492262442152877408319980600315796201593920430729133749880246340446371682363570114880397159066776823860304002340633595997518561823420729808347868177918518671416193819284471487695652726887546402421237446566612410785834405092836470755273080654124497802467452040672319689677976136798484664803596557132731817079324075400980639464229829853383128970722933284960226059693968771069654697914731931758420909062404532341658016143554000572380606556473220929184962464330686029724428268630203664183845553955575125013617983839592344810247326891409100196539297271543640027744885496742592488792323609172813554461089845989555258730428462850776271298723792825930291648533105843132335892011538841507462214104850161381697407937804127807721440151470294102217058587034124688884017171332964367091928265772074202553101299946345802901186279682903750653490823946734682292902288476785780842287376795024427167207865381424558199837961319452703043516018553703554560341603492572779862655687718616488233525993828238225181217563929081367440744201637876721984708374242017195063569511480619170767434003191291560964534032969807263744667321326090261783274320009899810112324331149686048339780576030943559593536519982601148372106781179914837057811226310697814983194558761004383637335620486819150772346173816773493526927359873997331800207654609315447685044208943244184177151185846950657016979430017316055917122500961220734208313768709036573845300898485203117360163306266553605537483117171642295510272375570505878353515200649533549983122119599392914102144846593663222103668448573004690921046873046286709323091623647255049970197112629436983462498846642054857905410595224145003207304079056404535736964560856142596702852517689276030651748715923499644394444124358048095851204032027554657525396930389651719673846603241313260273858907139161318611716629081739489195584988381579595779669687460331522164659821776072557357265187357367675255378410270672368703692579729663315204350013373893878201394347614799793499602525401673334101406501457291880718989317667211566167528750993127910260021971190421060603213724854123353589310888236966671890826010497558654163680805281098760124261282674222280140764158225876578964867080456106946279924922176318809832338219642253545575847830686768585739998763493169685051348722165996268878201496307875495968518754564801085718271979945317028981875654623126279841771385010577836482699273020335854710598640949681097826747849087222863028616172294400123410591096711881299466198533536230839028193189141999086052071313690266842341930028661047217485726452566193915825799691304347664705836746694465793488081866753955411835213214108897403329741541910354217316298106551566962449599931699135833805487637821583463833550195143067275126483056985689511843254865945510594959675629712471721752478782266863847312980423684384760264910805387096525449482143732218595655632368566402961718012457018164229295895540755787020015611514301117402814928634556677562973015484078532955286896835231929982786957331343106313112322954038092327170040572595845649776553523314958713470566826674472470074898078561920626645042312636182230227663427465943924333251787874075412170154187511832811195161798968638432105597804701398512399038743326313899191100271723825332267093230765756603668295729313125606645693844623448477558438553206263993965205112888534908203364566908834350748329342629768989867021640809963818723443577633144888509640498038025241098054697967337031060441528220374447908542669274726407621084389014419152153377379169126369659764242332483837555308044730921157539361032896080226473378155812784273344007338886403546453195469767513930203652545510269146021260307434279217937447678869789519678963911676643549376905837577472505277183702739435470453998971655204659890809906240835011511379613944658678417382340586603980820431760519317489055956965589226570883040881726104737336427417775367275056810359262580003271495904934654543943227114997913680336138782348130791718371720219577938012321100546742132494380594606348413110524923231094388731286141844562304642900002648802164643130918893263338900197108423082315842441973040308249635350956608868810356800200301382579664314971788660487460215475909841828360650058659082787858273841751418264454954278138545406890041677642923716594849394785537456375766969401122082761635803584085758804599651135966930085312522962597790159425204932063387230394063299213380420851870183433280646496196942941222654857611574723249481375571144988720980294092260149192412748975916079266513037166176384648677314901573732332650088202993730582994772410762992305778744683651608838432654787284907655955332632710302771682345484304314038241617584461211676676721086335969062966055355466172027106281461830414552170912502878232697986097490955343150718240748181281923433458970617018844349612359901117712694530633160318990913912669511846451515879262098271233252021537956839877133259940669543661618098613124438299396139420037842723841825344522510452037466424605303073523847731424295175802783163140412845794685398086114862630247204073079214834834246549586518448198395787156869380576533077486653196861267773935019959340769165207598440388782014070198634551989187067264527991481423799019187789332352640097313330383911485063373575883878319345830523045525678661809910546689674642003693259970137908767728426681609243764737738340827135685091655734628558123603971561005205613617498043143875430037510599303921853127594161479676660020265640871597182966131404231491717413977202095196970946465865182607593967083901578664912440252676913291587319628840762856258929869946872898347820319564041309631314377939036137397778610313155878576344653067937436491752487954079294773511359602393324284449268458074709348034449574482233941171829209912882820462356200245535943764117691165395569099167095484940570693813272797621257531064032371321986007472268433040986326703989974230116305213897541893331672652261354476434492555149020920892966086844764001391920754344178221934945433752572429644175360479168540214631529288616119610804345903527627378932405180952021453618645776995462890061795995933431868052591923609573508277798298291313951640666531433098732169791082089033021063513100754668554153807060989311291207096140521888365314526309049065572766240615652070512789863067464141931866222454761302458764566999552928902749127553112917874734864992056778019331199801321588855419032203510463023497245959223921982072613782340460420433541157282508555586400639498570649942706925051910522269494532452638303287886277614143628415715173210509414986120784777889554168844200300253775104116360487495520660389002217933854697570379573047527636618556752692194271673051926560034744476043730122328961495461223627452810551122252016092489164702270483868919049186745353410917531175093358257976119402528030006364560045265702274089079138832644180974540832462515900564766374083811581230861897839259950897974650077770710854733090208988485490682379552030831573674646247240818120938233063309475016336943308882349783589901355363387852806169448690739707127919708123740761431377064752662288929633396484479163631037791594895079709895001947873337794610018985689902822505811669921262524073761647394447882354254028715590519588466845028568068953251598441471926870445060570419919603239372808496380954364849485854348043208168682528895709958818798022406335091469518909500384684211301577655723189784723024980302121200887911233583017516711473603908908097680945443996079741936041110501843382429335501446147349575334232472592280241461376805779815818017035435788545566909555383557759489978776979933130932799205956098647867537839230728557288164457914023737315227440387167494126515285987273431028001572628373392986784344179981257712438435400109724260438659704507447464604989976352261100229853169021854473176771104344285557770470093921495780658515798350790169697945840779582388924763676028915579625918429109180132000045246289029309760018981588534120876788565909528109441613800582465707834440965286372743561959640294330109069950346454308173058868909480632522144829891405782181526381983755937252171978903413747985091204896354343448288589749503744603842575733302967015622294204072635097766516114407073705147818388031884790136812052831909461960023985826250380143626366963113851073637769589112850447365654297274802118588671227987824861057549546656330176314200678740677562264576231918162902698503838994699756309808424408604633326425045248463119628124409756381507990943992709281473641958497425703369291889167390877632224099609706477183862980268803889481746645483693363917068078552367343483381018932159195253402431354830195429228669384851295004555137043417426900735763365844285875061209836161945220660885695000911900227394410312022425022127567383230934449993257677533046312101097078052687797813439423857656540612320884237678735348403881714735877187835105017215753743634585728522900843239398068687158214443230520386593353438704827483028071274784550605714411712905073930465987478470553611203161353588314701870438086576009619243193162003846216598729808496924834241917519314354273139082030460721344819001258112876083670134415533198063978664756363598006683341863570051028018649363616939484045782629945962454643119949404322359384668945477685733679777202922442834633900284893624001739787139079582960561045076698383239905714174383496837508746906155906256704790480443229363656173317858724267737277430737842097167860669845491278545576345859374245011538716040517451816440719536735679322045723765862544448427078811506763977874119636399115056574513518087550151305199912142374287544944555025432198834668376438399784028021239602771783837507104420545716340617593324743322756896738298175479937982952221387413804346534973791427181577490684981398726135009319168943007286837086962569864393061566507959107153404300155918792644321641361924970592936429030343263370313393685849468012866391720359537012012489698525650420506478553787950370540756226190267294012701101935968938722866269924605858505840102071119411011700724524594478642999023587191805615951501509083839275950340920167280554840580033625922069560169066061966196734593865259608295548757420154521973997611910704054101958768591540338903172200802334169810793565300654240311276696970688638819091327909780567800086010129181491685628376656410615257073266856593104412867190134611230685482049576760731718897488246335432484154001032743976875215434951410717592969403325558165602435696990619118384144571660666762692322300607779888710133024494694614365081303427617299148178214392880847970160491104159141534204293223926799080230756728501129683285722037731154689409687337645143463606105592297190067102190305306003063870590735515711546474905347026585058537150443212905548002720217772513079300647699509561793054544442513982037512808089402972001017155186092369391088382962312151853233678722560728424292092403867635094091493410409428745724265165142973692415027336959248872582362329830407274909638263191671538686008643074733958306568816122623543543023190012887392450828830416825824423153876387180108031004982482128148562084822380158354292879423979415061972367558767073577441998513051307398301060210693327346311654639609394360465940913214841025492774957510027386307685501616871381877128411067985681513538452372893886350785072712781737648592204801984046132966924214435365468790817808987715322495030751392596263663378789579905674012719285302373411614134176972933424887807411971876244131735137600551038479483679911493538204236197111147310569388058084278961528097355745808955935380217612610606815773193334128105310230318831888195528067849012686418036442715574209748549666852844151853500697650123455431360762198917489638492207131157843434792176141434025675848748052120371638908865477946328637590664030293530380175930658680948669928241701993139105642235677772306010016942163068626121896586448010895251281480105339168102982216890676881075396798370909377883953086195969994392905140216199695422898004466947115708204304242827702847492978012423939523649384689488715636580357534000186890000627024141691537921707646095917880888089742667980335228132158370862899963991069861266358374095252475457372399625371703736515902700143890931951553049892768414473348362983027168991487648949914755944910692619148072505119050298735940026483393149580845101912115717350799165084408062418586650081807774629391150464565013016530360518334350248233519314556617690514889144330991759803762863137484619604912659335711968106049545446566356348296325318419536530224224641509518415210245146700078854048153743271672695563132063923409547632911284941057939235106409843501573118839171516547064659887153176164355091774963024043938143997982638280777676066960207601295688000295525117055470859983515125741379206561221279385182042098777304179613579142291246029559311367127631627887266422227244792681848651547193954176585193583947568016883269924629532045732816213239127505821909484159172175059473569719864125049616132639488967993751467207076100762949623691813496639240471957046493942089922933210116050490035437880799618053244132212174225814988195480814253648108972496227486743797346726613145492394956851877726923997094650302599215722369212462354892302429341434862197455934035749124067142437210829226584283541592717093874738234621638576300207612332337565202187425526727040752737141862530544143840940380491371385144553573914036950270412083891525734849403412851673138440052256604614800818052848575369036324757471397224311370210180033575135625429531995399786121295579706564122689650416787554600000386457621831901921378551531110327030792759334766927970416242538713147843591908764987824059444089449925411367171886768531912111841078043474783182203339503427728110858865967797429908507139119070844983876561205235744157268088573128282234291999482427870926527732791731837189538811034402983435167421657187920678103525136021086097607895926022689802832178950342923479147001381288067522352763077608990588670180376243298944743942423221341962323689721832033853614233082313307330017332526239378335094625021034305835389048750667663137309777233312249186746824481033793099540816687854056878267122419373530239545033458685954419947642078111955376376124149889899680934033068342048823563123090259476173042773522901388062137739814273026185308068621281833571879866573386950792469029405401719234727055137619048903324487448207195879939042887438271514619635270163898395772609440098642663419587814280551191040424488187709022350574878924166113145215650963402807426066226689866447037228705001181368873795050348997592544031965484578164813621952008734996322731308280424252609260909028618945332036956451257779694995205307046601881125528714235658726820255667232230818123787541874582217972377670799986720213295810934573199419635258751535955045618974208103361688468639050673827930116438956046073751410919047101097833568481335505725169135840273968767217398375532790573926740972398256688077337916086151929852230889474058873580920866571384108864600789359518532845148072398570227233560178496738177284364501908985782020035436911916527881982762521620462934281941404374489764823256075950602772732694811677511739307508670177010696872626984891579331132752751349286719106485480352144586198114300926134366542454472357749749895810806893204691791232344575063006379800084607333618726027152479973590554110932195268765408725599276965870951651433812973391448880953572313474096238825280433496362167643865578226051457249823717614967202907242989420359840429204534709546094550937085723374468671315008850204847024371948281222816261208621015743940846746089283550411172174892700656885319742867020420322317431660395243115942469293819318902570548578741468089615556011905168959670452953696918791934783942795453298455723245847556361518713946548139821065121011512150545170315210431058170731560042665748416439517612787930072722018133801195056787942719789790834519502607856324477140670324383012431018652058813840947453994737154376320657327358650046194751818196568429139403757053053754595438607486467025898901996148078283113091024619800511704585462078248011677577031306798683244649783728373626951465981907730833353459024677092696030133208257654364123304499957041530982642677085459943207551803584413261085636260633747198415524246971741739551890045204199838181353846392845009671896425215977010145134035737487828880354060216037064096810221001877129247772383283954714337418289924976904554988323997225961474819133379668613756703766495205936897723737756331635063031904390414096372024281523964837996956707629863280502854070770729881374059721335327031684269393999295586402663387323672795888124842350426228715941002971088950539129966226061260963688573015198988661786647209662441040521488929543327893283846012218604519940699303559912056022732717886368025294424535277570341655999238825084579763601677651391568341762567837729254407478223996514882319733201476858771663672133186679786922999981044469159592257503746920109525443212307998118468731628932248878456938686623448966483927102004818732902250627541318738511875211174020391009258128846304166722624553778631240732296778537125757752094984765810645413014605049573123697458562090234197485406625248390286847013710678882087182329668701438494814494781816128421987605989840105471527061506551667528677988632920461999551491817735503048502948670248780095415694851546295505981710599100345914353762856836789012080532687457153572289539954566073894717795241875587153235151206698699628242383745777089201996492375603500485530398070919218398435234096793570474483848247803644118886592823379553841724538962358448543513248429240405144854976662558390648420928770125124101462351216461584338998737890203872788631196463896609407277676527850002174789444196398517047885811841937987886805051878165675483655053030473955139871717780981563584730928628271061048189065299304046217344249469847243692707943429012327122536706477601415200997027238914004377402150628184258572468106668389923621327167604335198001627525897659600425833166616017375831754008373305354133249309795091369140255451345724414030698222107921816395088157551416923367442340756641410335928199543134306611568521841596001187006825767580403847690885271104994980272064234020202409024210697600750614184890604834439634007509527439639540388065712581313875357146654489105911375326476081063600837233155823797300168010523245662947074859275657608120075919581316188478065435973240516953524916646928329380370838985568277451692884228183812392658071999194089002801313392017831157356519754680871983422517701522244294521080237138657330769311906029258827002155993361348891218785887539607910407185931487853157293848042572244850221651239812787695075938608784088725256131325408822970151175370290189430384886957387069047846711930095396171823967168345214552379211451806454547680884648912110761561282439114894118061717125826621379705396061040817049822156608755903168824003744745802940798392448290414672674201921847738291525763703823370306885204602867567456754359445354753526257799940385663114693408424613437883724964855309186908861527810069151957931883578301060601449548226089558048623972735538766785224795774696612609129532207715630451109973067430684564998875943318896493167017866866420951547583288147273016253958273216333643664023723670871934670964765595624724863514340760617419165222803441712752691113744473290729064055727894683814077941847574812678991361143940630337503260792518560230718964485478866726900574942971655903211720571283610199592009524561237907142759754453750210531689483694673891297883043127265089548904675411704490783221189431596500478532306133202815082483067738797170739276159633372041423466201712533003222338998478476268001597229115617864277751413523997320398703966667970315055758956343824552922610620741119828086782343290474136856293194938703312479605137809744475453374946875919239062330099103529268031429072427101978062621021868498452835731703618700337702665386062112534267627260918259716558937104341471054162323940359088888205813451380493591106523114414332072756484470979142891284260205300003727017305649039054920615851904791650477498266250957751692413176034577070043719919317433117674165100968252436188377260881765098939688247669414046821074748112151644725113944752186880822458500511856352006429919438616452730129679900666165533719934939761875767269537877096189029618470701625439704825818437356683953706115582644822687663148396202279207778624474516570572710254336529838304361599282370932237779423836255338358414486089468250902002425831545713041218538672065744435742749876655697291572222264499884197430424415456085409698715139125592295663455609851276394400071054110707697415876019477431937377841870882159215423830019506231636577084830675824741233549315416950361946402281035589460949898619559399384655876359299475296859982845344206536554847119780916036646467523537065225108409007438702603550238695327677601181668997144429065801954441933575418027375774268872121763728930710479925089614244635819711414865406430954755532423117334790624257782108346865343703064490929171448082569306543801668771650278112077820162003404406100719929182235086894321496411546075007395567486132389973700818817264279660202366180238843970292649037795336916555333053075690969910522130921071410454446600930013223614958011211075200959561502254039480109142417856845664658731549423030675106902310524381831554885536744093062422818028748022094852037709058165957803772960419325013096204131143342631562493277131836095247237282331539478644859748589292061433254270391731299577973386385693253602457403808252461553789471486716805153500012635094786757989836119388040826813488711162111027026604859326995767173066289520896569070196277654646814756500505832052656744644376777880161253121625082182258135688832060400901643335941258260268909895300602119233412916150418966385792996181450912265224841298666304086708342095995285319764084816653662027848548159920983547017647786825744270697681109153029853102923165714961683481253229506440125326375199125998049553669132219232205806652090768639623293027139030802382858524866310781344198821429017985478209544438179929711409337783064824483966252170242590010692794082497350993849374179580759549842054286458014165593768622557042859866025120894051843269775981527594333606026580436441509355805173565286559027451766406195731084622285653579178487592620605682558890106084176146576075355573259705930807631593852620595682295105481505596683426854917280252494070183422326833946675405322536114085052423241368693096458560940366523053308642758114330752514749740046013776807272920826124941647885379279881156461208829224605794015765854904458298053209603632240911804634849222765669166024103465530295043750725221681301730244160499902045152502236441394599122327499073355204523178601368389827368821970625445326548504487848001126303795245440870998647983214972726403902112131874730097247586837420475064232296650213140500998493501009287633585331940469969617883622189385381932786236881452634276660576543175839767162228252217072697799832229815966208297882703499845916125501162383532164016386033149452202073870487231763081409175235655571163657203166416061837942652347300905066432218969219812770699941929880681206101467487465256602594714285046863086515079492111477050531690249373128466072321737684057626645793713294938344321487520937160148365948949496740649979639029061428658828627345538904670144410893095826936005055513214892385582885579276194853092461141430125805106479680691661325829900592623431456014331559931673596022212191595650428803795507475991264148942856011042749065443355955316604102733815733509042148980868187699601994777269599858317692020591533370664593582823452004516388228556196101554605443254589093305511796794135240111149462327317652617407828007936255093599399178016300171215953870287766900145744211120017810701260274736408432884735780978322265380537138453824111353845011989895372160427328653967566145580872945051906482642094576263473709052774371085846091677975385560514402018181242431382539368161572649071018277694955288815530123196749961656545298312185076802848806718179030732362106572644943829984001212783808053868113204250534484239096165309446783080175518071857816982617584861614400897296988850168055139056060509106491964982871674220034250621974536465410918488238587524280920113905863155720874118198666092987681248444510772760449741903305877362099616669553154653249686212267322409031436510522644165443907280739696572664973450628368781423107180416960037023691570677136785330359323696748138792565989942726915856660221359805168249216319211906263590049801634542259945323096861446778186724284230042675522123035290822747830412492005585304373463190305039677865182010828847786980535775886491531361118414888320259225624682080677802603264383074568653659917855228251610502505156582743568383817124350243462350294841989825585396127555173498133154717822538193757209682553085715911876389620740218500928427479787476437735382466882550782061413134297425140421753787319991945030578590365516754022202495326546195256855336292286287788610246088978275510190127000731317575321003546612197573347740473451304710779168569802537793825939958108843288691019416298899603431851178717610727933715618126966661401619010313950435995866600242956829272815069170875131492206668295993717283777408264215865641594611296748248356300083643859510981603014524825118900725213578040289218266500396420476044382985176779194059189573837708459158043426272000305297571853868485983595260631323543008221542983919528739100643666201449847331694047278405144314310995886764758186346604656519067894504827147422788289779123897151095797231836958433162323476058149073696436494054186111285438877982019558068318221491175791746381351597415003352302045880099830720027864560116525007316371399987768381129985501803203469590386982249287834573022513842084148543910715685853169841845020993458600250939096295842611597730327299633650399454391613330118658631111548102091830771918581646861832784590757141452737911964582742071432999478475622057533081155461009206133941929741775598292438014308224736574157571377305129825103353517406842709782864177829044922313170546356390074236178297239795012754688678101126259809612882304799806819073942526733700514245729859396179513258510201320264641973568198365593531954426088413097549792182506465157245211788267027261317477338350501622170655003397117259288392503668431825885343348309025526213750607587851340499029309622883617268782903283907744410229215507096776432071236229646602081048900887469898606089398282640947636019355473441975961619799065050172116795654973636766509268214720129691055636091827494018163115031268643852577023433253146395219287621896735750400584075667470941231453054493092786158153389159521244888538565572582095457775478183764678759272472192859966014349722891421711017278248442802883978040041269177198237642498203698571253346675273952712523298369263546897508536776465747275407195996825277676022771648288532493783104543146716571995506156326008058175189853941754113431522801778914775693563210502856343846194457276482096748916036593198278760253261165299842943224124062151111442066489766249588130799587789156158510937654088545408872265486870693927485350250551407978510149200440524619319783391972493004462403332899247069200754325457403753223668167218707862534888643093668590457133400263893248885110871476247932450107801486618187143719805234227033892853365787726344302446999447559384390507023417389063539590525279264108770351341312231345529488934632971533137743740485953118537794666683006814736156798997697390641617165753560233058913928948360440477501606486427140205808257459412751055189156620737445921659490892595225750862560331291769396272617167262999892070007161587951913548352474568978385987133572502638535374139947293500400147090076432670042937094367044467670425671614171955935497889788700605907836489073981220982026680619336140944324230909456530920479866335901162617678970304094775318033754229793750494032416300895918200617069827247426005360764566917839225306266270571681076617898875442913617427534344571946007975578511064728022212760071764455238007553383505200772123781485845314407108061554630810492255740057987749348184963242433197376919897023820780768843468935784713709636216860828593401049336814050695407446219857067846201488605554538618934811389403901730681168262924031773838284402849967085410390935482600731902564182960138666596997355226032024674595659844367727778314693837216015701979223102962399292561209320255098320435722107643090483765746821853942250183384643682799924950915785494184773750788915056653212999147380244175080123543048591473016432922089396319838812105163793601447426030290870090194411854706747490388198564725498756241545747488765982297236997180059072940988562220245060539554388981714877375312021904041522503148942889188949227974911800268557324698258813224624632822247314964129670396493100055279590797762093258593637585375263553198011130804114310049186115399259494682827114868728702165674173203787250245389285024492632956092672806531326540677800493127569627484888372010904454837115314494127504147883574283667319586916406248027257298742436965585027912517678697084299918894613101107042560949749261113607470219419918997014564722589764178547942721452285358380879739240030179799930948293392253996174229240070701770713567865594714233098653047162892060466616963237659040403316531163083126281190687181078566233915493577770225992059506921482442402368882650342880721646443996406350934318780293193108044767549909523760434869230582448781472891526094659037675538734329304211426373731364010321348542905216102034441068889662879805864964188704427494449675763531957454060092773299458219830959999106453968443666566644984322789726278758110490897391312644319148120314812550769225159321310402618585975592904779655995293770946986407265238899647691556843676270586501292436865716826713450783419861674388291870259609916478401891433795970859562495492598184739401386489687428008726193159954170628379580597469187515023110251416283404017266723360109316111623866078445957524104958976677173065215274370290377901451548144994608967216807229438424954927872648645194057642621849429772109277366984898230847322528912277026867245009708921502534400370640524748073804973805183214220551443414368699926896650981331409185458666353003756650245138644821926495220662843756451405368744789890221634727920803396800769083876219497816561911720637738924876439819318637590321520386707568178405137315706081629304496471351307543312765414748549932009386036672698801636537071550213149319225533538454693032980909158812801727424383174633164627530255588996826577143811050963578946497257256491904334033244894806243655683317729128674670201395165012101151446628778800941034680981998937915308499711592327123146561681971430188350541065932651657091727177535373038888846614591090369949830505065036661580134651388196516716458942581875891114192367476616991812294412854884879502184248170011114627603616530665079130316146377187427454046025113529159781370383680839337193736082392125853963415192528762734625297909326604416112459130180676271839754873203077516496159356552640992324259410107785140887511371664596896791803453787768915305762735321192748231967102092857581831976862160671323994351613214444418442599580682332800773257140309810291954406931498185409587888695159629524441821279200946902252924839002536230697008358593031152023035956641209789704640677292617837146961593810991981931849172059720584790205119083311646148827801872142791938487318881398486715679167425146520278371089307184502962771273851670696379896255591277322971632090476337388341222276031139209027432068612402633473157477703544870997273397280715882541303128493139327534666871146102211936333913480009513974556452331369384072764288635188879369721422522278688265218675162067284679282781721110455879155779921097458656061985836973248080960604651862855846502388150778052254787387384745072201811290788282914125464305909068389272621330394211129247754540702760043140466780463899385062150015028998574245132734932579804895317119357853864272186959226338243847641895159321673310406203813021729975868895197860334158936691903205526341131959406607852843748124704451993354429235432497315130795922392369259035213680548172863526585935240631262273894983704307511923012569118779845973330519244619529963519488516208566866936092685816283541538740606816507236835525314288929254786647360446188810318392841791623357902431512011096988535755468880096368299504022225885531868105574818381618003231085695063143762036561690318893881056220895060566791073417398182841233216301921420239526908264653283665682850073025271714756959494892634667288069289984217502184451269223161479720770828350797870368565334404425077763115564211750135153955599946801768961100120053973349115008483317563829675197911941036154120937828225237320128443048295967620024812832062056031304838799037398409379137024403962651004061467100332162411282122247326553013890711081084425177362505381063583242992439811696983273187932299532851420895959169263536084642563375433075191801710469998448602489954772156626769922850063845883375076159763193109089331960615566030780286140780280476951808259557520411301618493521655908608684686658815978655973987776739887669815457037680013593030342976748878177175671737229393403548229437176755304699002944984470586293111398633838358186708812719636652849809129558583856668923028007476881875025338230243729666628027013466930074467715529482344834820076191396065331659507111676550322763856629822464175296844834580987172268715120265596504314163490366589266211179098407417201945312627659263758999947339324180753771888181804674193698300534984087385981276701815290582105251253392057022298188175260279521075278755193186069283688789344309299073120017833955314946576236394815046154360230839532470622046690150135175216021429763404261707698216058217429821668955865492697296986610965691854254020853584717677469142044847429966151794367970673476000767286374007743947902755769202399989624464362754707266447584758127221798311969956413140489697948979400436778320411061155439570670467792620551763293484012213864505182035921035545728401617774234980011040399542522882878083673334767128013743812313614384584805028455607568368130250987349933859098755034611577887273678471591479939594967568959829179804058755601808518131265407503833629979435189580750975866009860946208528708449639465780536444905047217864756826279593106179237715076146123273898089073320676249572204705678182609124128691925177355919898788881252733733817391397248578993217334879019638120125755336258902476575891437462547341047716248419895383013284183140281725295647619958191074092077608956718902871631717321949411192484433689688285647356633387480949941467574215045853189155727118721572408754959022538701243281053555321119979912867052817726313177814862583678798687518569974006901983101217989395689425959450083598289320216996492148690518759642715517976277897689609814194550640038003533746165344249384178926815316497560363042445191549216330416796878786267933937835450159809843690776649051926092541466972221187115942345968090929905349350770243189296572527282284316944832030011315938293932180439991893511625609660592042959431064719089847868131825118304422545534089895298128015437013355412483822626195560453389560638434299981432333129185323043362947375494392508535953939447424120902629946443346196746291736082747584842951759198824910159204644554138254862674112513129250120840845459486161932806680981451853090802928734387582108794173519157703436878321039472038936563648572932579643760257573011991856515051229123828192214927777511484149583221224687053206918607380971980378617674785733222389545102915796571227014089007078584168777165167171706614067783830101594403619233336010366665437120283951287139730132290393081851418511796884506797129471046371852295217683317931080138845622658610020942569437751075519488811915051455356368741138190185954980586094552986269680462568485553155722845936852324435012826746280182529866496391265445482992004290418546506254745235934194370306769901762397528534194528439495471449627592717214071168270698429906888022513215786933949251039922800712360422070763466150302687797850561082624388410562966660785265728950131529498710854255036305946552911072567797767653112482014356096756908868215915454536873524473810276964728198183213427155318706222258186011185755120719136019325387037669784801011545613055446477164896812564137832154927149649912544529117600486664532099176601746883325790203083326215703549889615537987196575341721879510405851058050847470012345161502342985724962737714153037115614671348158083173552692485207343197012336808813013601587688780572158326503884340285602123946918610604577378580171235154099760383859187430088373880117516414299917914503938743726497139341257233049700180331330098319515507348009362228061449173013111506360187599492577135363735686128281937705104924517088920680500447524156978377375676915630578940785384915392470609941375218842627027873106782985896988729056694818206788392866293907329858848603740298269075406492104979094255362365484887563443249606299718334812277095167164546597382590198473479795352252866908485473296403187262071960272656283384417020113217460152418348675048535109937743406691330008887186143860910421535847573941054431244046754239497187234426811196939551625936760113827725094348193407192730902640192655227183771432357629654012436081171643704789718333276613607292921477343591586983718333685125184171108062566020519809432534148486289539699989400928257666367555867683101574125067856147169974159459933145934040391581632621930687222872180683192732119599316436328687791153525178284998167485742816705641765281999364407170730121078138864903534731152309497688798526220787120053499360207102701193906767519349338151610850047459950089414884500498392441948580300875593412423598006000384773667996309498050118249841351242626542784380689676821148863247319748559431925434059312506926119708182522488893193643982528921260335201992149727356457756566613373125586412603105280987283028829736652188474696565032777122112789351144004638570826463315780911922439380786237354255198118022757104098336347899221132536524797481087975077096260818746778563719921915586810606281507150703641361775722509517157036255164982468310631419443671117968350705991895507527272369729734402924417562653114507171402425738025807202302858651233362320351813220918630755572233414043604509409136223997788514172017266195786005512042998610256926557071536546475366380542795514809293509995769293458252506610250551674702581909890896871182313604416235576102617677689748289811549604694236294404756284786399382371087066712343611726208026141194637037790282121378095671098074329993874689172214774616852094874792179119967665351670442513545661543541373138623445654968185430080364019518201174615331763856405439243899971883804772438553598693883491566446254847786748574890264547710114320638077716996014103738924285495979898563307480746850650777386334378765080506587501526604037236985728198002286489039884482632619939310130509489351425253312351966992587079254525384370959472899289361382726937539090060978071080694688573926811497592693287496492925461255607330561284396774748410437939785953618048880895960409449707488948340883569111043277079257082832785147363657620294612203985133025899709327928598656586415441815569771884872476280753614303199937995993679142593243875491703934823131125279709096321778910945866822435990517261673587887644487324765265931709132343209327310684579882236448031728582806471228148202201093780183067927623646921815976083780718541264867135441601609039825111680986767258149797303062465802836088070564116173209641776276730443456527925659779997660950195289804718207895705184430880472743280126402878616488448245773835927566057336915251242171646429068071859917732996851667493768172530706211817382202541571495201670178649093354467303386324658242464359112177782158005189208588516913087583073755902444581252604533165748996188711022973993520282756163306360749448754153579253275345067262025266382983097030241510743595208000341578151211547859601665711888630524697495031564693987345061914355264397971049942901783506826555139786889199760369025064345469034566012835740108044918004465628433644169260568304982006962610342570049996648461946073715669038759527246582347179689802714175309499084332779487474242849303815419894999612119203175609134450017410297616954452520686820580077169806319465949619341278992004855582927236633836846881967048222039412075474697174544087128226591671336056776992551471849230373437091541299712352138259870311774158625729933334523691554534008193176502367745154887924892674236662841595200644051109015755359938007100008727097662019986239595441740265365568527254091219484034966467868167755802424178483687921421614779663792213212689779502534794626119108948751313635484067582145747972391044020425167495560926751264787071240528499277994074926343172142850618751340578955399543123328969781151182624235829286076677390571781203486919977853714821719513088358426411589374656264908857436989941430894086515947199019932418703763627384357508151414744708924906200557264719842503670455305281068871196733103320334302198583010137519969494554254775802949518369437786903150752077971232736272350163692718307701545711980607858099312961416837072908495769216396172316502165884202441352265460306479977848609483041412742847683519259659834132098101909656840864622518763059268581014195709867613494961571761684051613306208782338883173087072037178826714000133580029151788249577945461370233685687691748734018487613262576294176457029889803074632231151067127970793999683551453612994442221996862039605758204234434466161599988094033575780250592098077975979763993559886615748672146681566757914107009656632709759641920407980435202963318228512585390332109444367645047057210736185446041469012800496262760275912372067227945419504301621502167741631095276766749325859972019189240428367889995659991884396086076168407343520920084017472703022859871951451063771729860345318715837544511884355298960900026040770705083941776218260969577195212192122531600796937651265074188138328386962653246715614142189479814342897307173762706096864972751279732082513813412938067994082762605713795720138651895824914795405573454232556472608114708311506336514420591508390015590220187346262039979790580083488168549891216364735476620803941822249684550208041325403428236982030414039677495774636845950786934156592365992703691397840167284772243209449523397620365404230328441226840553789202380865730213755398425700605918289555474870513799383095887865363310526746111845589373700786545399751784569613683991845035445806027295075594725254684808025855661636208471451980156382373295511995081915165516972295373282272911871310443085045024817230394436645389764101259615517107842000962935987642402478758382132832737754649411825656794481229316301043218621682169349392412505417065484295183757620028931427340482721689761895568263065663062571997054285541039605341888265548452003040245166822342375916840586792376120617288846094673054289841159617325310869650324572738313625707499866453765628667422303118834205956013733953370336004959838926029452900250499755375173866506045082999278255099296861394777481088650133413291090599470547750414928257930028393167140157995175015182237074754190559376881000513235127863093398290264085932410692615869700794783163849393967521374976708865344887866133839663277108214747795299723773985558874889293863582872998223732834336475913465215700350056504380826581604353538933440777234318875223571986080571335932615322383464212411961477548405702383744467631435163168196114294728045215775204704467247324266130032903908568063666040278643338159974171865514749682687835305774175244078909330063560321145019459076449447786504812072923115019461216625376058328398108194633313907525839518461386851690686374130046130690485172324429879124671998432532211207540255046606557687543285113520926531747241354114398555964004687440062930212806984151742638370854183619727960434173413197727364492646515634689962128496002999730898021978170712728939328538648402425675204693128126014265455290616517919514553376777411087520158905375941225124938166459374826990499827757216108009643690503528039051681277271505286425605279765159962672585512450848980177540307555928611370023689984906354603756314683708990028432757873907011756245521319316049743690568536852843803317061215973638769538893785060601356987894462419728329814197021499101065399634882641939553386412219711266060866595310779273270793399772280116480831108628223856457661158772443504576981548377973940175093325378898467983229519646142885300575074497046438266447467287180136785588191365420682407203441384741866194432475249481305158510148689715758809158460606391973622313849405713829142258986683976632991153667233513032428933708671840168815646691951863069765830431193221949309551330221874575188009218942209134846644337999750780098154771272487470123698697764590088671113924055854434703037107790984620704185692204480467488841127600450292456925642883209250144194319864168494364135961727600787656882165514458181538290352998066121313888406748074382608305599976002889095099279386745452342751923153279783476455956111689801566249989576593869078129462774417897675254006916975435026361774370886229911865302898068107045240999695221989051828060581825889688204901759622282525545961574106475013456305346147515952919628639588572653455563671067778895176321977538974584902857263467460173198724105876469803057616076603386303487381903635971952639145266186499965334815111835254688479320398774184365947988086299516655043626432629343031719630119853171526660489026367516313608427549601574195552556974060505375108154776975507507109999805840387496127740954237227869147450429661821667767793710646692581030247532592013128760525869285868852998549423146394641918835456417274734826270784056157509304223013934519916960710711775679735173136303030292978230347175090798645852051549757205823576312930071612590520423068805068657066393909292370030151323190323116921844829706134380536384678545131819947743752477879353759981671072224780071733741734750979772491376198664990601301579056956639707659505962289135687081252758771969479765342388478941457891810793526867580362092607981649164978628684078469567947793785379063883500343054551471918396147400202878353458321914623702853973029918972762513699984320495232037356448433102235758056064119571151963570453079404675877397025522132557970129758314805169043297152867929565270504898233532260846710520291055584732498196521832203607147295852074126183827197259556696947046023158675056300573519315841735035170626820563710411825121020218180678299966515950312584435674562501294855950025170492076272367193825355176338902846585790580977610978443811354170898389877248909360432587967311765339221800542451719438859943033667781352334180845772007968695493779107813916679115850701974186418261846556233951411301974683079331964440791875260666926783792368925364532765319143372437335070396710161462539486940499574088975704815242267784966306168617053499070882026583178010775784725223104198800822255868030380135919954739728560363958533239149018582129091944773311787929435313079697255141794078367047389199883253002630149035264418760191458736736341101626583114553173028438744817067554675207180407905460837343767545789686585856351222125367517531393646749977964147205541026939164663075745338045700579079362919369890398356590456255979156054272760971656849570717799340273582360695116761427182937664881802208202028275388307434975218744279161286624662015086803376783900705790680944740639639068455240071442371294169720516233740282454180487272993519030714401911102217482810566732033885807036984429599855426891427235735901572048569873896092202191149830411874493471352174484417135184566804057356973727398437170482118687344612662060944282610890939399840329537517646406684076410706435306647627007454240063629945744220040394552672939806483381153237567873610726590040041066294383131295865675192495733236058872729259231347724685960803265219461504767358661625375886427149207118052513939487244641920693017780166653957397595422522541539460344910363030447109243200004206620933103630806037004701667698259262046091745303164096036350994489023859646186508509256531857613068001840171935275409086120349391756437157325026173981856459963214513176397441693432603085410257140355907692633364857345886922602285329436757459035151735864899213473033278573686217146381277320596219859092370626802445084967513723222846392273819517016625179704762982358836433312113495882135936759701877626000871484166385585442436275115170395854355467600049839373758181449910231092038643822091066709580450762653688693858076307683498310887042889602925247939477346790497692824478016241148827443079919705485457393623357701318614333842511572818613133623444405988480248722241115718115825540707195949129971230090489305994032444726762474596083799630061730668744981471472920510793800001176359632690632671560606539888110931536090178047796219286980170857530967779887013513880487711867116861805890659441149391329704045643325645982368560265573944322383665712816232922716746818417406987650266835769403965651508329769129654729690342518484972066232453672998766867726475658020638854911222407167696131929170125352424209368663336284057904650170683134091527381340381651027798769734702134995610289372747009990902514682338767780674088062974729407153295012480742795264074341311507301711545366822333541611311776606362172535888099468337018043700996723358165449015480838413501548702651000531084036855235983709606024680704431500577477744185471147334638315779156610264249309195624932420122398507703509847663846511513561290543834086762372932334043412397272690610183299092354774379254624136693912190122584156177197582008964589053786954300959659545122388784993567467465292126050607601165365006577831464992630049416045187706897092484592057853270535222016104756539345498996078988113174017505881704187071957425615206337060983321010731754539732369356836267141133562201259096320561724676232858706303709359091449578273865981290379459062651917167438279867685716533845340200134259251867779082458217160240182746390088851849610855859256773521485005898693788520177461427309098913199709577095980533457576970418555777429520687355898510460376355245862637422121466803099731266579057070596793040508076873747921011302565092591474067228262556130129166656354052228232339185289221270602337383970314850770964992645454780064542006965469245569737970503769478188477902961352001985016097789889645816552606902232813836256167208667158905636215975503545752014081022551023209358482650383413794003199311403966569362284134655824601793986271482788747389814691008215555635958402890702174410291320473398521712601861018438181566321701576416478326943849001614760317241390605105553711995710492287057410219359940085001656131414520326131096174394133323452791632608603442782030529896330204930206875934591669002988266265500994416996522830664260416625606202550367290007112991111013437899110327502728228498697972582208013679176053860454943324710389500326503702758430400148488403124933601348277291842983770255268742300263697383349255424397111236352556663816719142630928429043635357427319169155561820892476278923255222204117116672752537305351082055470790768314949301927333844020787322245748962525146792161691468423297680341981905319258910280109407341669061762430044788625338536451686169260070969417366994400941058285227839268784472059909417492138945193495368257591392560369894197986239280587611712178905793543739445870219441093765361998647012475905857449041132626727316393052726607767688938752536666515694150298767424843892654820503152532981893768200684901969839837946137406426646330460009206496419605266678086805050281463739178571115940558346390574467410705658048155190849204870983256893135661728993607117923437918378217350085276959761717063409152736259737010725026205789639721796883865931191721651343775673098474974506688894703136614371230568976714872797450769844762309711953704163441434855510797277774851613987408531205941267984477642947177168432204670578872375174124554836687212494080303778107143903579218340307407067727844535747026005204650055662148050594884848384210045511614888437830379333984921326182220378599405738007754016413465578020810763247904738586049788617388268086592876355664035433865620976431178580672410142962791674631489388203711245465356555235207677722028655115628855804178471236160347924452073426015867186627159226152180064010934258931507095831751994200618024508992464307330327222465283757091032255426149031495559940752721546961347178568344879559577204412100745004802558090344104625788141770116985986509099956176980428801852634538848462998621454179327167827618073242463060738591068984630322305852868018797274317186634218066553072779543704389875075194645524144978749387239168287881845926845169925982447910248651245694587269444895770854269300354826233764648237026655400641726334356611116733123800917001147155188670861092446409870675328524164658611029497900182703026735209647501031154839902404478235757334997526654323557240869630849137728232756525183454567062843629583828567624624383505915842978164900873358354110270417361397443525836026052329608302082575082419333211233452335255292126075703278340986133022001701512723279006769300931402857360175992921189531960037866334730356883837052826740527612821350914456326022212403463886547955260527305979410734295276043753944977343457809738261218227676799940840574890400909518255688057542274345498771395212731642286809987339271264864593069875409017150826001539704326214879221532549476556544153885019017687636952883993909749779610460564712008338239108265570778464797295766536197685905505682184207276246736447890361396355749430534059589286604359735188550865411864070418027852429025425441468034451701136662384045071531061171987058651173392960074774454121576789460347679570123262740725620221331105132833135502239724400300568790411677497204380214695578082780729235876155411074746876693012265938488340118621701856261572954363525405023018213768554745039158999525130390609006068462362630272841481079483365518727875091364732354172382527268486689191113151401906106214579804564401022004618753143274661060974919281468157578468133264840977572437246905515000787944282187472486903351212474064520064555908321055696202006735482874208587581288783962054336166455999979411151311091708537691118348410836985096458699315493534855593667456886561781136438128194919341177003612993626299412627719791576555362427331218180237329484326027091198669251850541265184186963416038442751735350436508084827256167740839892501353730831019561239453149057672199946071884282446448283773074255432539082076885899682439553821617782593373765961271746762889875065381977572926879180534373203129786299055617249083991422178686486750169487354690072062230648900667355851874514116779349406848837637974024656403526796899264359280514320999404364588588193134242309286979134553939301617809575080742720544084588991284393778583308085671059188672371996426109826179014596248554783309221056622406351656512504709232161896638273899113811550298584175523062729344894056150688089778295528642890188048608838134313137596069644676563486090809181645361225803278632145662989212921490412026842067393094694725010333435000353337701345721949254356614306769722429985605373932683974524757817182783946743463069109752881781004470996816064548399740544117556761880897650903888021003126391459143261031256856422292060115676767578688053449408880372303868416024674732011008011121928010285462909759423216537256193351944798318769560465874076181957480292397569605230504734327399152252000406237203281421137622320086995984063558450505101392023385622234743693718774886675071750962706662475837024612141174555238463791314080527164218814324977612886377344613016573013924456100929223195955190487687695118927229501909294247243600090928159836431030664831339696407857315848293638120867304835285050784794092144193515328016825100506015664558572337430066348841345009387853847233072067413635713626813158531245998182105993707465714065899007147060439663327355684815342042368278867952717242602252507328011446437235105633660416159710593900029791187879006180708156699353799430439257698662189670295148958394932678985726162511937013000260604688896042462833368921100273748464489807416568883258502815433165560809943678363723693472764363242776499473738744858398097802988486091197072115326154841227183517271051170501875850968458440977179041849135127980144313269221240880808309593670859947593565535834026214216594608078576725235255660378377924919539552733020384268736957126974943180271696068100197583938525876150721788671430635542800991027913391570888808424623948181242988167155608877548194796976952796596687513549098822769611224120416200724607751278051806884343175404873322256518007116153471134192365288668696855927796795210493833254403839872084701827620116215099675089377522098862065409543731434575539308572622597021505346188804660944577948126902149937813068485538020745769357016565726277529985576249257925989871369349276474395686271606572433194956031718219739312532630039143391694126366308741138177757565581957199815295609859312738761115698034979335076017502404713885496043233528451882340917239470815838478235918505020809977470082353925462008762894868239267216211136167607437019143812265244384693578785823612283983874998899421696025044763235457734904711411269488081849074356405199785559643435808839940892952904900979918387848803259679540825710598974731665779766742013380360649343856628728789333551125858820642812277249471908738490832301339957369323106988009497992257578111507681087605463049665869771027833088289766801719193971370802766645397121659195303403556607167367531922559514139143462406840684409195976230994447047201361643561930704828999346655784442571866714248810826991684759192333717726609278347343813219307383533182403571365293482526934388928334638533584031523895040551996797478416207197328312280972317234039410653845888154813396518613964623628386834078288768783474742853060839148073833493709955394263363806025404116444372049126269434495856793838959383707098640367450512144678193019080108133931942113625730022439796891832348796529805256372493645930403683524363840568275792788383555619478793583796767221022555850180426843598768133226832345058462540918532000607467604053287553131936221543652260851328259219561954228365367815703417953515079830741176120969115976713962301838954800690277837790012054334353768881112165430273059844922024020178295272847519903577308705041873188175866466365814251752943116301022186956324591635533654623277056698128654005278127422802013985974646021232412654982040384680801222952554148764098886300193990797553456955825456740067219623640350756775593818981389384753705363787628965741954580081778531055250531658963114591062599237299547059362076635983777942096738112207795360133802327180624016170044129619444885529246360105378611857677380236991390252234893214344888560813798343385528335847836351578280875019148412605892188061000660672535938067242962001356729094130726698443706257274535300265107022893972389674181628757584786124354877158724798949511906376136208487932001943046954603135512568925547094707351288530010848447999945965868414195504251071655313808044855270579620372803139396605422618947989667775040681505318989550689334761475344205218841569259922831772640181016431687986675092157562365258581749107093694571252893440189438330330919497760453049433340448820211563196722028415248748674245689752494531030719382039351254541122293371761554971735497863072637946168883123377310496875238856758891386885625814069413665152872258475126201194327122288689372592544562673686765708987050193945632756077439750148325273236853342239841925747855993539746875778340013899426073798764431611068358875847543062833543856214829696533147083344114706923772907373531114004273585317851762227036305097555081446532962770670534765244999094443072126353573494410046280125651091755779615475093355376316190905695804076275507002292025051902055338344929011002011421885096494327961221218118984400729637151573555073596871697718607719983627648087997707810600070661937827757103963773896808068258476414201607736911413347171932421316565683286912163934313359326205202312357535106856085385635023412386399069918339121329504315801972711343468839749914099188102645536622922127826921098380140049774942967424352286912058884475344892650022776338254414142542703571877755832683657475216925577425140585909133778523335203647993960204431350246309353960689398566248796652529371356275947396856466758887219172594343216962799788994147188038877170369589556242930361626969158915276085271993338281158678289643309945112619628133221446972913921737915481511752098905388992722626226808679913782261047343105334806515498720316290240785201364090705343810156275824225229662751121550980164874876917161618066385738742901741629789870557224146999353516645298238533637013630465736747326696612388230607704583979665694255537867460215438309319778091915573875698609023327346198537355817712460100312488601014610424302984580613478616136764886328092733900601455292594883289238088149398091954867820922784178285134812061849990675617222476239458349778774333893447877413428070089176021105654244969275045360238769403355999151638262687505948836343618865331379361789624200444662019442148382718872480955209300745366736796607854926114634763169102018145990362907382644695575560840992215327772000716812072820304195576902425952204387734625557711193325031644523336169966242398173086388394375727402345613074687228805401155088061969073672431466737410295640785432355337691058361138612441826296522426878099746156113003519797035927612663585141274101511209330380463452644325833631699557907084917248696800859999464831000196512872756094614300429201452744601923606163907840174039830595556195427280759946397069745301282257107351298098961111207882055123819237605777753790302686851686466835000601791512899080673843332568550618075071182788110585482308000116542623167943354350077060409666753309511218117838147184653592593762085188977070436394546376240112721856592423314026864567318639215119433606323928564193488011211261881569927215486384013654675268330208660113710184963235607369676284357106123433945492028553486662057869479973850443614295730671160203215267821041284824541893498407334960853804723509996045323284678109487236867698077132249321054901500439722873931629363198303760317402348081451173781133612409250142699724192978319914369011172583056516403773834173542220040520316030143269778150711960468712134067548567468593998969148359604630173328017009199937048896573982794696668489142235413273002238949201793465744526437882483170903209266525568496895686198340920326291788125619049969528282416000126015007162973539280170659534542804802569183972009691155060801042095406264483524924603093424957914613472333089951521531992517741664549055892548251147881826139703467437997248925817600492634657388136616538323007490202299853050809926351012397934407805501303912097774270739880496656439450185511821442827103492853441248757866983913385112015617393488143539799169726039416977227366477060610544257119304950189716132124473107122227082504069432268705412837616848122369807124517365667233620753185535731017830773568056942645194994339014146104106654031154077075852439978375609725130595061383134680028821666348568291507205474401034961494407356780601364979277940464231801043856949131879312773690969270598810203355789702633548424959964027504094785495568917461787441800373936517885586107192500076625615527160606090177904670312623839474666358573353378758615832339091876392433259936981790934773371596996077558429487915460822200961717843843831707977606620349410883037206880388655873333149959947714416007544905488304632186113918413264169202315883393402742636536754696506383678689904842314173359092189525442004759914626061036318235592896621742975609835999539247025435554923150387093140373316888419179568268662577738921100580495662298723625105684415615231606024115214803665727153278156095113990213927235178137854368617654225123081939844783765795540909744876754994563233078828901430071876269474968762516092714751863275360995958049822298253833260575015722926542498223476554981705934830611759067343426715456716473860907048519173762283862482936509431345178253642712683590324934783783722842639919444227913188675791825554925015646714085724867383693025701517150630873566627082892553245564075817441368869595336790509527950527072834145204826206920960591012221501919459461689872096692073127761205607609674418919870588563086193573128342095638729589940854037544444819489548691354980421952469868335713679386938428543816688692079459083936755946195141355048901318662897194760433434213841701506351606958483089106319065968325783776282978976864986972435488304552200629977950692160798989951077020457155059865763483775188726761380709950066357138311783758646306469523841153320260538251546041035903961229655932020523707858075511112243473805983841775702543988074431480745749707356785052685887495127553417598809499936485564587535528464850419601389025551271524442547479327739294794810871442523330797386702045904114262106643960928155895644887077646670731902671455793997587767985385574941268929466698597685503758093833332321609494059780172526686436770865067106457316441368785269737112851845619940517912005050478361534000757967556574975293084328932920985897834322987115138980187392351135114263457600180915738702312023724773034192145624361087921122248100279292597774245870207712776419636422632058952098411421070302396122883707067128347731129623830152939686469301305318366083652271293889444366563044355706867222920652615006968511542446509234314184509913670827359390764183666389871641471289987888021104812580592774355824907616110565002523652844303918577701335048146547055976285276037057171809630101891613205662518902259256235090682375556963731829258043593009163599195197328854364672985357634043307805236883777659607632227833570379183783136852537875727290349451786090706649584014552034337261803008912995494500387738503533596842294780166910993111375059695886088769285901734703806727428348769404277085401690795910198478918883418656451145819509836771549276173015021561395732673102160121972531250853188450411251913006859711118087333164311673123226062147736029413798499394750230157647526712782434384203126941080863555622264608439909823407016861138240733991741006986049446686262219736110118147327321330520509618670723949432620761988619558305638733329158262133137010932238306006856459443978296803874388089627027459954201462015416123652442922199222288548102947779816612322609357689493940090156072594825602657602809486529767507041702541372649475169101513083271726790309060730383998743582589748886451975366897847925592450197168530756226972220978720420379962359616066331492752060626583152291493776735696409549230496109540416457798151159010056141990470976361509790687614893325971552929682141539567726806546839359643694381763324279232186003835425955204454375998591062571184067047334446840523519538635583205589461862859280069592557322747310604730097331324140239983568997729138721135518166591651128620572794090818293804173105917812615399392394696946139204906154158569212185126851432137223905175838150045251988211713422178996752245336142730611701453085860593942299981012947517419332772263845193134614512127956083330511585484609955529393561636038908820827433460796590495833339180341508300110363994913449673467150469008548707840966744332359052767018907198640599605971458934228395976506553795047957176592066805533032776227962654208181114264502132267489281061193697393745394398230288876751940295849200194210557090595714093956203376796347217662168564599588789019027596124288428905120948484338252060417651279422009845266699669544208212031597828174915485382840770023747777940813587768034393582277477352756136242920762104827791252826780726353208164434572508854727588878705609054116679987641290101647331169159552470821784459507183211481599469559257468651914156729650737500116400710388314416103122370690274446565868874696497221368843787531270460442041864585797702354617732837778818380146537661834468606522875003251163166350589207174887041282086024564404447164723929037357485102684477706014787901957955511671434771106843012820785061342432934703854057097198858603539817353083125744916510852653849744716765814297445765868778914216103824652988599224376925744318695564393912880200539612317709434885153616537308775670887950896555762089956343170895920317027802672452540062232049461850205793323615012970369919139539176113292031396693180589105513658833436580924099039838780410436058884408105257662689158144079837805271126917507796239476849763229966934731241829210536590168716422447788171047336669714424071558511045127424355605306926308499543292401670607743107995696777881654856184448701960809611552190744907777658964487924074834615711502367173747247227218494098201298022494906211343817926591258454992950029350144744733349154280667098383680282729878978240229973119694578771152719617355020764520049224356964328480304101074707843399487500365565569902740343195916923200336573950439988635197558081261180942017040243578100466044227401284417354729744420117448570382402535794694349423221953711806904264072234638249553824084102713846346095502586416133688272556589817437787962847112558194512591518934329889383865523029794831614803527172702199101222162741296032774899511032428402311609897681728841769659146836857534541855479388685133459865147481515964060949819198810863209936300881896502554409738064733989685783309623814262221238991549100037281813868179858226347095523522812555934383294021916487097072881698063828246711432468910042242405230234780385349855649621390481082248445310177858483307276592484297069665109207417609748352543755384863028844780733429324675025145514259163766133068969660654574292286289967733657951995015235032548238588661119476513627571857394384227671925834935411565530535362013557311839489804195934739640279516302921395689933389714536624312891309617288124893569420213596820390790496005952498330341121847537016401072670938338577955503197555862554796519545030242966326967315141561478735097139651518073801704927458609276584017767842932340237008323695862612343743667392074710408654165688118222348214702523881089284562007101770690465766561589016417551169469511510904640273886079349324604009501416290999190790118410815091780106213716253906008223644679387837511549860473632745987792712158153350439776848704616459101726589024031359200499803075523107736447790102836041985586110512325238774456576297934109385987066503819317881718470438563524436667040326042769496279464616115700087981340107768941068029333812112789624513194203040251725439787093020184137362076651867709232530649889111792795234351824124878719899915860863671295890055433202616968240696153572275019375925034564722706951489423455587388308367342137501057589451915751217887127563552211701034563039194181945519338163657988795531654120689969182444858014958613022568333406957492230471273402361395318651717511928804223700675250383553132103416062322502420279176491507680264336240538383787264483657136606510785847320856576823150353485152004853422559042580448741820656686324275692535646951722332141872232110291176832879280770153502278377076707174886932975554652134349338680516355637754821285063760570563957735128177309146450956415037699682147610016281006300353257113245622372468485341815564570005963534018653702934215664987545661998065649241598332707994986035573403911708621385306749263644041628186861138124810893393332760514758474123469167690326153864278030094277246924915154130928957983050187793054774159198046838210555855415602564639677313690695566272264427586400831206075033897437079013931758755979543203297239728149476244158929992703605759103607576494292127398573127707478873196089024468008432264697998890945130069741037875703901878258279117710169651125972009690687028983904225104166696012255268627862618453047707577298795818071528557142031356819214715084610771688965948665614011056008589711294693657907709405269062821698907624479335934993465233483298775023517075864651704838303409530189170109021304640761822320769746841066138451242074723947217604440387394558947893509882623544727992998590406244202639908497090758860995346248685290766377148345739610953444303727289801219852081697722949316725075542883909016655693297340463658918278267106268282181858918120970299066656493148601014552959139340876145544226651020510285815884898991875217316117683361367254262153239195872293466640038528625915535363929135716370716314025666359143385607865929806827822710794946327474914149452824353333656826507022935055138178949847265155654460985696700362559906744955386578963901448221746792950620831888693767222616285736609880893947560843619763696888901738566948782105892721547399175951447283528116901016201815447204226796608085926503039500220005920371274882183772114554108767768960221433169522021002541659526136377641334928331725677541091352988229718029143547252764474504185085204735778084036870668353275180315788184446103137532879060061505079512959003896180264151078872274848005099920146220628498237353027346280195802074691457445493866748098645777885149445413486846627949979246232841404516048613833167759747979769321375342879259043465049237178455198523840502557086918310753674917314556246230767249605215492320156649639446012942995636861624235992468014656881569675358827233557443633094150082648491428675983244774991145296378156493144152384239646191363182457583446872275810971835688762741663921163791473298168093654940693831353866698594209372762030405719335652345871404631056890741247741887926915308646463443419358847277922938595652896258543054301576216623655943743158126890527494898719482308912110767759745597868583093119651898625913891204031613381796458841297670775127571069777157134223994311331407112198145338608443452915913240794950258827772689836128230555106141777480683736732182516381464979497358739743301324126122715447020710976208089628607760549129199148711329938180933552111883736320961223555483497580280351909544915594876956181142134213713364074394989918204190172896120864738252479014746797039845303002339189118833117227866706825211452046126207531764971349150564508220904975888532795725198136448824986947130977755164721885129806392141969484972258881830123861131556170093916621336324806941373384657041012513158501181620085136618404359748943577234670219383862918485224918703352277731948564091899340222356329656348458462220824684746994925517959533523542394542814851615533321851494904561903245820943699373534175146172604724690607777873571206755586445249782767901495627982756326396220024910092014957210718028764197829877380355589799188659581151189757215365772820498995065980364475697848628938405239313011708784002186579190360902890732168218889023660516888785153163082833753080691683774237637733056331547979352907245220121219771080730938710575889276705717068402196016706771492248265179053153152480736740674417541217581788293738133105632945881719847973374689878830722365989039478543355009436642478142457574230301422170067103658625520749154953845460644423124013142357966239246513718134964634810657793173774114597225118436547752835139977721625214918174899132805785403087490414211900462010190377699830132542155293988682944310713165563677257370779874192015295201828790627452266407512221858375484054797206335142516975987214308963491665658547763213995341533738652576205647119810061897779663738738318813769196828547086471760302877584577251257817508989954526003188093389231927495318200544421635857735634305325432393209631268446411845472631163062415083811143935708175865127349171689976918221813475656769737130045592882217334722361343760214840941455748845429199646120846147745364182433947495919318210712209058838515377518635781887050630486800968354749353277912036576711687586827121452232903047026197992888449413212667181496481458089709724266803320703869593210001767123237133247763735555885338236524728765315529010442807760323589196816500042983476568520681098554762697069122232722917218227287383116817568036662070825494151976899105395901163821899330239612619657452000860073682821249521803446172443107431185927309292764310838551228245182930808518788312920295617283087677114750816205606913360262928475654326820382083741266092338625327030916956538908934708288892077051273461042907360633823571805274225633244599526760727961898263681838896377164669449437105003874179867280325468886941544152287455963251414871479040645941318857638763002698020968839327311200056422295865579176951415265858280298539963591856950440110838826065074958762731099579502493040349300000227662866859223460221608089997014665845562021776797787397987099130163348442890552445210357500805829559366889115412780067135619017734795728025734413870615141757807068948644369451343410051065930767816327088180722600891716293348983640762412834694235927596130289750536155859689072345702636822396486187221006977130583116286055358047530932857850260468728548108813426520413550909310075433330506629406184981212701829664748004071245801674596651719512658002286772393131518705533265456629196547706546167663314656497070532027976820535641257736394353239228736002269646547590469046423267287582458263219831034376330908613700342503413384777757450813838890392644377195873654643247186835618338871243284842164649223567408677789014312931180964092560535457269552032361166282694897662799279736077324489246729747547066981691370604462970979710722948017288299103774509087081838067081816535722018890804180422616234852641939329301024082882997701161238723451640724435209738102815038073740467526941984598622925321786476515851650278194407976945807694745577588476990693301812571400211229808013240787174540722600937932262230487438788989699594568798968627515561965203416999286522087670889999511649685254316227900654121906996993723357731709468314951573240523228890866562642446053131967264010073402016740947873060611522891406053329834779895327971520168844398445923983041188198458907387556922741190415187446134687634855558870375197256934608633895745001857020179980817197161107559814912363623670189202226442971466044145214334499887355165541391259153438978156793656332935211397141661626980186534770293887177040382959318907407403533715329253097525400213825936313398280006179100757835294675935062223181527620856669301964737396487435706993886968641608136358570502508324121116221906533876600805667407033598210471984814899287659923877743648382795250338507801736886009378857178999813869216750908164972655210875761379769086910862429737397624760053441133218992533776611648056248646637855392136134817990326232913916766064112920984528016230262500775636934560778639410830573368550894160084236032859958452615890343778194432454441306128145422941594571834040990242555274354458014597791348533832999692528155964247503276017976374745469762612285574083835693819364055561537150511249529113810729588039915243162308839839528609717908917478074341487472503011041635002278795974925557683800178020357666964880363558057989890543762798097253707656898886908606759482341247516142889657185035678317589578058225486778593804081485711286491975105302048280879819105078101784157331735470473753021044063912078405132053329443816719760058402830093367851584321974067989620814486291760633147318370038810191256300509464981754327842024594488656484602764921715848190163561450883341108316276086509361207956285660093838826189414681135028318478787839732894294161996330930907102666884626284107587444292314267158598643093233096022251706432128548844322512898395395439090972940189539980799841972960491782108161164157201932818694951344682472540296301932458095859037406611805644689400720897014857510417322800199434718947072774353028576121248501003339268684100908622663416549407726276556113099181967878830851303482123543827675697630308362654423541491406561864400803715738272185267787278615513279748536446126739477809248375138251238266844155443173439426720514162364306254097907577616538539500832226503574064505442842646998637569395223421999538903991199950068329267098624392453704592033738074522011020056097884254955929113069870039575419642985082984762964060752600195405398722824292488624158724963522346040485193706890584131033043318900933318649744943725684140261229774970989288574563813535627024759597458755054990044302303007071605304121973887345023503497063842162815914743821200411479927103334864021904595487435355197158338798293196206764193435886010282721504157040599007655876737851061564002946810743603928812998957615050049535149685554997845557037508457914294060679828453686329739864660620523739776969020142264713050833111337465611491821817524752345374397587028485640325481479659148634590987632090686636942307541829759600998220981724267303383935572844244209105079104852116403468127115178799037207334454063322868194905629870091304265112204406112825785104046025581043680339046330085415473254593671253442676759751630484859524244881133288183620516906037197104334583212095615309363173903967552368981098278141786797324127629736908240341419285412805639931784132325146008906497463905181921435343339533571501016616357273692453155506718075973684655102363105740935759623218028206851306207473947160971507717742321743365828835337970354525245320308187275570086581875816986224277510150321183821704953419379140339393682967620579951911569503966354692001532451415558185164781004971998767109259078298073435966475601478085078054241120498879648349422360408203363674135958635449642356736597180551921975222170844469772541161221481689768499059950587821187776295867193947647843399582202648277141901325220436014123745361503156617080492557116747827831471175505466609444324579733643168657651049834112634976243136112906577232751888331726482038581555573326419380769084278945066646176250326952923313148343855697102545187134381718527346883850106182103943269128932760638145242023700770689854976584021377671546750798792738773258550013504178099501282505984306743421799783278857552857416461971677903551903362999458342993033493434993117757079027747234234624799786707436085262500878920214455458989978213163236194606339531154353474503450127457380264223163329364006246669437177777727226458509082508481136321706907384108559927577220901980542149195457558997759589175360135031063564000427586248306324674013282211284400825956487400581105326676033238700147783770791046181618630941822526695013847901734560824249060591137192810806289267073748249742864251781188249520851951102329700133286458605386538350131186292828336647905470205573211629405437376062358370087591693176019119748339852178017420542517034666494116320649444470307045208040480495088103290341962815606326848172668809436316400321834097154094250579055819777863914202481513598266881804725049379586619777564943719964964197885515328182257326423488380381131020422332170932354500947049853525983608657721111890092572495814538171511406255903976195093570215592253106577818368995734482425765238569015410870128225857990534144958768790168963546635473192069751412625392478977492886003409853944286010094369235299014218941480166754933449007813280961637053252869866182042644405383148721822721976015995975200674843921958045477782329914838206191458814383829191678024297047387622925498440530701720540002980639603893636521719001693485229236163146492905195416092195356537328410838603311578563064688647429164301613194268505021155263392990035599056050018324357146821420313560776196565220298601277046163567659050995840312023405334731603756032574467369843460051828746101373391615318208208575309725854509389324776417602597968631130433119731965225263160897217212184649191446062850270506391863332559395969215148529125699151927327443336108219456639824135307293173983658080004558714492873031284972670680150075452579517483464590248474319413246287094400288929904702569744417168721021957083170164699530856125105222465156520349136166693113225939658480878426195028676390507332770352945959340413405100302271089979453783367245200652381108277065858482245278019800226773067376322076164393114902069258501137847060906101282532133383386173315111336572368357438933231216365951300560053536900510681953410742379380232744073959054072879948400218794478983329792551863912675330570294831374071241597073126960706091556607217056143588828562976923930385376900181548569804019054651188337137511317839993093008806857248217954745635975664355916024699786451881417283522124873877564778256630037064014756022357118039183146919176960085499412435724311789195620966377106802993699882470847895582672431565093993914831031036039943965476830236673880121156455905931836773302901486177032312344993890192827045888685830696439625625241449231941921080974646042898968697626524667497094011302806200368661079825694899676769151755872654570479828639040108172058652977828302763385294480113949194848773819390876074372623641290003740833442882725619863195525176996263924558782330496137568847254210094477371706363792756724414772106090748695137945154485596205655190960031545777143917782736152623703087086453684029023492595446992172176728586350807165860514480587489935483487286086408652151266541333943764642456268467550017918931582774534874043139366954941705429028171396959143515097981128771550832037652796280508147805757702172056507488282892409249317650881777902470638388176439532563372608207702163122567670667081758851095729244064569102851700218963559046948834460354961358482753838842713854716029734008123755091400861270512599147434386986409158784239723413416990678726435120538982016355160923647051511723093525869822872133513621052851475073164168746479237564171331987642785084323384206686985611127619451285435932117066351977349394805457442603717997564458144408610154310579631808037983540721818994225086436624543483498817511731577808918480441946437776517681648480470452898462161423773921784727519349624350011815551614667705703518747748997651757299287790818283182325163425463746149819542225808102032290538526207452583106529637640810615706535112148754135255544900662188354134533356392342555422970844523440068577944076408326707577603681895036464438747078436823670296574108426804325219573439468523740208813342930321696044892908650577177500465230008234126670405972619374827457307841204298488013785395017912019525318153879363853979252636990454741728995259723219890910476568955430808674117917801121288645544667398393487885941319326936773504106908286447643940732316581138158446018785413270427893812578593047082029976903068053522994116578443265317125089274822784110189899339270799103500585001157545935873121491468733702281436268201528002901904090728039520002920856399443448799553943230575269274738219424795912121858529435825721461079727415273012405026225088497317509210504030255779650218315651308748681313061505107751777511980384241602391505409999243573497196836156596446542782678233833174890796707503168448133880126033692279008567181120364247019346164510345640512792789518704861918332694224894227225213760312232459598306196578147690688591913919161882099094435101051949912717787052063555581395610868042738981740135850322543759290223295287250667104997499956206347388906659085676259472713308633125979058713288445700905541950689879328695652863810361842816489348524460243901990091213534484148913685744192857070523770831200963530139727300877313982872893305785774323608576173447765976897440721982718621237863274941446412833663714917542594275877713173073656942062773654420185902929726941806782904392905215636620565611485026790587988197980519213672197227662730601002917206742903827295780074507355114947079067321054274314863677903363725145676901272675305163074782378807468298447263846688852072807422917132441237839524792909442552459987609001973120157741863144262963826554998329522271933087346011623552386638273245829144051509989537468508106530346581046977975941722388266207467355137260021854375378550349332874526718950170690139280694958843847838693235690585636796129202318161557212418932232387816679736320047063813342424063197374167453012984692187825907937419550875975970423725899272231812622448989208473658478017756348814862408480963008882229709737430754736943120017932006683203351735320412623908647326914705528974278541145181471414418779878091108274714591115838675424764436897868070476370889988076744064745575223129954135728758797452986653224824594755403857318298718119531010736049929181428815609410690246270868549264535699566767485210141403166095222738245650080602982626112010995748556160895542223033389068679050001554946272181071996132561848134438779335912562326421789489323139153643845632173652286331621582490700202852219645479953566144174146093723722694274106120330226258609472610735691338665511147427848324864460668966303700924076889149815413986953869232387999515658408680934469477057653100788645064992622761116769771323650355935535157866437992929398208671858745090387961640572620990156193527896642688012773539169312452118868260854370393101935357978324390711775615470541669191359818646877753172987001753711447515172602911595489863075765308924460021048099932539267383786039626226587743910090790567379761370545339788274491237721985733455757270377749701659614383162225380531315878595274740043128549648449741966900708411765923836918539828182669673853525452129628290991460532532045858696930168931407673293345209479324475328289623527733774690881734454716918278189956327347134224446728969261252474684756679925702371948328464392558252639794448738072122437581876228976621465249982030347844935019697161765469817221696632352127242511423957596268614606239435030539364064331766859149991524546687979963805822106857655344494712279670342568384518920746986892577455209793685072829328351136684781470064674372167932882921795919370460496191765972711180820733328532843134487970938464046614682679604012529588799240908921565112342276759209456328720068683757050004173913068945424279081332015392070084311269991499694808711321737124246971440325335356247555636293329679237674043470101597128578859030805041452480837105993341695425888748702523238129958968575287453944536541508916299640864106980528051866308221574551383060287571372643078054345272424134897283907615986622353739473132176212788522444562492958209132155034140967425760558179044398723930662229219586242124648533176595541331249626846508514978847781841168112805248523600823310865080437072635617277926452230786926639330001737552017400648022558973044048896628431650431029727226659424605235225165926795680991900582727887218693428608140895672874383143077890797090089354621279550096914881427048135610610084213383273227111499943960189912560786490629011176544459537707557667228508547161658066256675366672608618117814215216651599243330809963484200112419414151190079310052840799820935680767811534233927961589687347605443879385409679854422242777303776039755659740790084735543961039341277933759699929372427048953736329928334062522524317046268305976545316647378359088394945055403124316159752910547272467044186462432882413300252051677615606980077608131131976240492675354948688912272715513600148843442160666416947009578079658344821896097563676133220210310323426168227438400669219369487652727166894228898420833619970743302555249091120139326454196627736445135694616621305431690016680971615073515002027145370883594811890409243320729117441438202506402942190147996340438527748196060981299391952503411856014114574907040059965951244296769867820790559320459719425629447159053811082991355052117931252734292091222507015985340729285019522164989831226560388711997085043374112145802965904675678798434107164399773702210188829306448511791820000901228368209392304838859295434383461056850718934312988442902744713210226399165506592266055036300703117091018536499564440833101363127457421961578885998127838414020530699933290485674226834542471675575302635191379083800520785288185138868401123786717540914330727042613190783555220935750300738785820532733398781298922714008237485476878836545281730451714582005548922762015123845764631400046972569092935847649086518439589248643288570329663101059764938938270280508287170411583541407412287983635543220430098396022140152041271847976027232488398112899850516974570744376795907363818321041907896499722269563054046324878276830069372524945292862265882814944066815502378992548807889440981730392937545490108067189838512965867471478838739627339083478973444069273838150521485097533648209190757161003256611859027686750259457090948487456321908906674282463052553975195113765697572230334554312640650768879672061043694669516866661870576707621726954517519330006373800201272696578485981486511379005632249356015473123042690699982462962062266035529544311370571572412815651926111041888585844297589424513058399361840428167497810620337948918728057053539793956298438586102695664631246614666266565220077531029661939914992107433068829990656635273394002406827779079732896386378554216700577729706792201944366960096445575255839753597599557687928627829023299300914799178655256124183254480242083433397240449173185989192316376518595440546272935543525406907943950887939329215631915763187713256666077250518014889854151441125073762593261291765619930778504970643988484132375721954795044681783961300805090186824224633279588974868038112471020173712441034444324541510522387785405327863930476774614933017438506942884179941249819730768091331455915126425106597819723195749152428053066705208603566754159648885335910691328731199333095682333469128419812087461285488221494666719155994055157754428892106955665835051931200861148117424996806519844707049768549388701182962577470681183135022138434980239397318451399496634251576733300960494108431849179711708373646875768502873096883446466995723109502228723094310762733835801261340428703716047918394295302689075350047376489441117059293174623383518564026539354166137103123390828268961435589515626368933263517180351003177593237377030535891333989285800692583300932589364173603562238503201069432764124934093133442587086399389138990069086126760716014417836642034935659627063560022653598497678026096436770142286278714060708091970343679215497495377775151333734487148071455944086444486088865903540149247712492034130595907724061950387319209747509972113740648477114510998378396570747782978184651671103075128207351883128546232398821039151656378432969214837540868011139473426366371166391238694828985567402348314858027788905894555846873153553294246501827532329468170321936592060851690513486216619485050430707815064389786153885732898793672221326910691374040462578195815902598556765006861353231750886352992177911449809788561798705765464767992019500075059574497858692296064445487600577946494717706459860032001099732646280775289414669716223050761231259430615027557960259665305406014003983438720395604904860886098192241371854967639045648229204806986267404736205285075818120548850633247797210213982282720202295315540943831275594627995698252572804415247668150689411708031116688760164595783674459073719973000588123468878934104386652489969818009384026217301980662170556140915055978556545391524631561293219340967345893941651919453616028870346642367810168859608097252356103416557119529619892271190399625841402690755911205990560518130004567340518935047029193339097469720027020676730397028563567981008678028063014594616531891037195985948824317866715217545270916057110872143086624869293959430676791623501565496915833812153299250202011945666496328708064558495442650990926629890487044689815679374757788155536727186318807550094109533421100454602699315854406835414026538340350726175717223165073495618636855019442924011034589488836729684316491680407693422920844584136395905683839585119889383465730294227934877401116067001676363033069891860347509562334705191103667512258289029175878175718937974025315596472606156376788543011514057351553920739457196973260566572673007916300797231855936876988400917723210039335327362960182522446871208011620250520397283475071401334004088803867674043894903710014042625208658956207202792550070451423012375866339382771089415110985258551653310801620298073266600838637602829695358060527310555245857786412030411139618401149497383073753534242968093260829933030895540875649916229711499586522812183040504304667101732068435755113268879117894270600756818442831542747719551943350422715802052600453523701536655050406984294665683828092856349755638567649141216200226700889617242306778699424322246781200544523126435703761410933725107216651427390528920925950420053571825308304675366382783711075155425978798878777311235376067492640006354060653674203521520167616232047638584475431730234899310485721945431825337560460036274189444102924018552892364431143223177928092505322483105835433448902034040625215839881875203245581299118170736421384470479392141717413567043816853547700014704044370625612082720498572300103166825350387626060341484353601915630779805644939672801774520653679441336934892715347127788119122859722830264150272490411863357562959385049572080444315884532475266979847234153996696445753297935858107993584350308738480273264286083766300697960193645432855862193377230569808933562655981806696958072935449547807399007020709074434751092908258185954615047474754365003045187953858478801799001743740523908980926739344560308536547263556866707174928771962134251820728839210361486179493340065102363917711415845702324927860507078908084839895341651957173385475708828478784166525522950136196216783832901530803438233657442842521567961583196973322448588253989481567153749027455702586991067539217500051214296845263176185426001378416091277102332261753722000817697161493309337894575643894526910100203624911622425172854255877372263582037286732353409155813397414531821199216759703297597758068720318936313557936199140527570017536160019096882992528989354160347181002317717641285861291963222283292958624465613579753726026188013100309482324049063885214943942709399439353249183340099015053193960908477570347895984621957566064503257481002697165960319992423143796095409170079274612487805351236194768611155316449221991487862813562341907639683133631777008920690177913257175709201177418823398125534210834112369510299522573128038452027039294675651057832686025302498905319246907285682426835081763141930778294370234189233806122059460434426132093708212643402057868344884765225346760435935701732829173492730681015466353525878770971118508507316455149374273916752048701028030675878198839248240798142295538864015936771295104810966285637610821611094286450460107161859370521362222924685884361834184234018194293187721819162824390582445510699907343450529812847736719674510243890292188999446336505011432728035559393581075976147986936080532205986331354892477941014551317463189940654431229869180553170030153579065556137878173028134019929551649185946826920218542912542386105642259654437941356989396618658691908578650119469375638722851865537784671887959339665483880586356685121324945697343700123369091565487103586406818199020602412876723695821328444687563439063227140146900786703296325318686779008927117276026048707779184421835822809086048275809649024064147255838679281051018154433062310739678078808515206736651091679154497107558738208751342345166545516549497067356203873164905807145952111001064733812033595270367299812152980916559201660751115557631733818031112736004436794526026895055616279204275422159193396714311150145471053521082550299896922918911302357745611602611140114616062712343115409324551234558721838088526495117181531641170375010135246057404894336154500953959195270563252759243739739814312191661963085119340471169021556326638815150818637612007932500302160502134782499873859359330776699895816697694512187972920630686574287092824775822461281521845961485121357474174886315575065739079103869935305651820942912948499404054522108355868887258580268406413016510944595483905470298901709269648144708024125596764051883927415673086172629226645939280894658143152121313568578703664856907097776578814670540960832806537557107668947169506674294455082640082406130276532294860601151272802712475612365218614198436378527146796886227812715589612337079392294870995686890185391796006977453151489850608721416754537048677363090729584444958909738270411573890354131115690662140419403874918949337257363242731144585348687681328911276685493270724883450109697640590139586663104332459825736427911351294892514445625174397804380239843599604604019983750815417416653399301401567015352499193381751031488301819421084111465525054662255636937111144719934733883561234751198084001661316953359553677665594148602181807208980464158469004209907277988202338465949077331781269485830979446887076939775288654719644450595771021489605049966112932620242241795067990443117194846408283641252936112227209474731682820215813420244540716302341596160882977233352027195449625241994012033789178486903253557459607297314682472276600203289059456429606027947581524741774959560528867416568509242361918876563265493948010316115566153685684350875854120258621096590353364196046274006635330250767436787499628384463206075450198609232776800684943552461062320981781738921689182933369037700542748457350683261250820823415680069707188083840197393348507521756794928102343134539971488145777297265675771473381786704169247927617391874808222498188404626697658790601221637589830284273055585068383024517156226010448237096873769697343206787499238068673964660335289829882320267916323890296769969740380706007206567610033684546940910641914245432086578289494274775919870391230728567319740932348943184421929188190556355007041724639983563073480362607465437836885321627228179202506732437611528630185478942493098558200555693574077744892662292987678780630819799955496746457269210173419445706215781123466754331695217045248844112808365752613795234528583753899353497162264900014674560251165422501349559340870365397445249598024249815849591535320785195092105848193662966572533277524173946532973924264783425696060693577121804068020167916675718077608276893162607774054813320534855589238231151409081994027427718585099727412138808036368682410179788495844580357965471029867120726767496619157461657613257491293647737460061137814600015246259240520622875283605894921987667482250561936575845041794435136609794534255545771975162680921712294724936212125996538487573001522558153183078317586192277412203922380663867475139206926315461751919509582480325042003944323346017748712965070606712843305004900606238966709261954788839911338693458632612065047014735397197440022443247494948935391916100720402507897321250710954759616925269250908951845523888612210185506023044819913714675988238498521273015101040878479121150441401446583184203931076165880596284896154066463987768997661301361640356248261718441326602214751719003513848217325394377315883562442361509664006478269018948433403677402180349205112499059926544212997302839354284824910310717943095946177335716949827680959639950967314974210728974405027592086852357569867704763447632314492314232675180258490441986307457593903529163380118255988288937168248927931218071517624599727286027655893904476720501737665494525114878052852724288278200760286885996226907556667536199107064913025287636989292167406914485530944039561660982945516337049995245562279292842604581670057563254134842857958301274638697586357228647876230553034915285936580989945735052001167705297677165387773200520114166808048537164765381003138442732076543678807420283513072687739027324907677389346945190757116618534122891818378921527188377514854472350825704516714981085813732052522680278175591470786645262287151673880896101532794857089186528010100712080885660915141928021639643172167368674869808496271366115954055207258788355136633413788721219767603083113618518025838813671702332826879932545732105018413728236527565093114500804560460245640338037133461229475347660012306564265458035555823415338084858808621901482975187702593233651873858569822360969244802819740204587773112915155960703066122361955412871259570469846445967546613390373131470086089965830840678686595616322462023729763102557865665921981130810783011809349036865154337950629106632073284985502073535219580674754385696155398354865019009776176066714969388580263359596496790727801487026110919665315738120370851592472421093807895731870119406709099970265883309063062286552703996255797800910093653959772941237050563002620411026385924580651945640128157772861746872692736923024656503125292413788393008505214947682912357294072153521393560859175802816614699655163396289254751838848831071269940027173471457932470728402712734482242056642933409580760804571551473079167508269312097226992566841025701978697350375401883154917810872268139944271713539749467182256811613706886775531055074181862722806596858776194752628524791259176323465262516551957024553589140949627754211787404972185781892471425832822868397737224613599355062711906106250382849667378219725474851080704216217574022588866172583769130219892132441007516826569705860807630891699953131369509794492940218982793443901388406707844661703062152656781864491086255595205597262546553626980495216693949111783089292498606974472090601173474519439637092226924599033758313501472998128786817053818955679659274563878226687103223295723756293285167719554526641782286592390762323457612577800278966403905595598849559931858199455973506718642004452467054536906698729135915808272669333296359140002023769173960610110180942893900123402346376171879395938049011062296159429118942259329582675174676714344624424052592590033098164345078010302576816210005535527525521413501890458397350888701368346271599701695859079798681516510838581029091067975506636992031092775896979631937736323159513894251178943531396790598114776937849956598674610994254229450457562577854623096864717154841691193544991104566954952727315540302985822326888043654935642493547779262717470730870424644412673506020694866344365400038142786183284184907998284365701516749142620226867674179954711486007949274515001963855042374912384150702513853374185196467951322769376981766164588193620985340721175004014915813750502366512227083136005391019820337839641781083981119225059197970295187661770226744801212423550750229022895218243616990047084689681776892642729358362202179229234149095793624729864227282372134455836633818467912438048114892150669261404838627740754753284697322652442953695512866568876836170513983855651023651649349707435322721043238853131937671309033935250457783195522813831762491480208472772607980901984781617531270789269388933351102095746276935237026643882273850472055590466162231125434376627107183037112070380427803559530618208247398072765669119941884496159839242661203595462524457441404189814416398692758510799470375629996269224180524293893761013490913683455674591557610564698168058343668845984680018849164724353855405478097504269527823636887715726076438301751443213037535397522257894889104187833735804825410651216162317689539328868712755187388691079793364974747870744770725167213191795438487618818375701845970816245454141532221580667513677346086204739646653623817308832618420234314098837846967420643083695348946966537891375845557528002668145556356830267942673610151815718946634872484333876332214680451676180682738235091359054263185221357277211699090221906778379671143868192185861482936763713998181962412956283700677639093089671965696450409083818848851214259532605725100571313042300511858878018947664625359097743578209699160563447778164942192455147301763578926228736155269376759614454946715737097684252988196831396726265497989764848060421568534510215494780401398604614082454882102253289176316158041051083294080645777980566729110320744397047352000617161657942581246981262690049436657017367530247826382358038540363141895017311818298857628466574956883984938350126413001518192093327356745859592344057739175494139801934984257000226423838489464721975200457749787271121541080172455719517891128712276498474190438797213745120428861989763853490601895434998836839135872922348507969200342101980554754526032556657042158830200648004297681770777132795748140829960615430362565080616346922686195314023812599628042181358258910543573578653621426029273053284634819154998309816663509255340468225913463776667390336268868306451295294294981565692343205213634635435179036860074528911816095906743647753067271330577344684009479854368373213732380074400895298800789113407617894820401472159698607445311854949114116331594631218284199257415769080934188764241988344578942963352868398597811519980274996693205854516604888591030497862580931190803641322111077261407937512940094589109230998913963313753901074696829483122001364248777836025905035603725688990824076677249445775329915091907088583524388421549274262273616970869448820261534434335484508938710110138155300350884176523589144607858656522171188260037103681801126880086558670656694813144686485804109640354134144210272740696960166629739616834728013097654779225073487517475594444290506319466849398401856856123066502364720832481849921261000589083743716811268743486071308904853398497432664303721373833065285325384846992616817870941142526220320351109637694176612163082342851449687317349165146714341291281051386300498969999626859685771195582858175483288584455539527385688224394788799741617483865718405718401312637587863513235541631340720768937105183531614779435410257243843408277554313338142445284146009586786462134977922260147072496135932813434861891303440036973905572861356001865935051445849220277979662091707882298206720734611006359962105267301753357674512840165661020874803428363252483467298211017057043605116127109432843676324544125165698493713759297534893125507731210902098098293387318303830052565532017495591925580899429026559645064681172156464605329041079219642033207643389354794672018227904814411865828905336372196542226775867869617108964848345338676873234276422336650973647253244405567428197510943281673309707604749351001949409021217735274274495996765225124954606524588867284077399382850373767367159493734532189049529287768088201497284333327521078353353234786236299889246945538991578863802198750523202634876473267182284126872411181736777011439601379064775454406946527233536166838006253552511747144277234319106795199784170108256227226870038116773657144178265586307836510737474368770969015846400299929888284843089018523744398234293091386952389606956812294837430556061150897013452189460449659978752191787232043649545375355937195028424655385568624317848230682417259230064135052919486495438229119181686444128755123704338733775716289009647408862609395511028838874513444656922109887221199904500751853453648370827962979082620437750789123730737626636862489063586397851783287774462813724695753992090419764243241042527008288753707609069581346739298608091958495761763494795261546208537063027419383749167726748268925548169766601698171549888378200386568426990898436418003831572593092670392292804628025213434362642906716408611363605858921517686606720106371056748825087581433924253285082267265120531817992045395417591036994990250851761168700893640809909349435712572505821046980504303275059313101809578757754296166025631222586898076994105942330004675446037542213403744346039593453644904263565586608971627770202287350568945775817569294815543398621441372928382327672993684197567914003540136369888374527716103723361299410972858342159914109937975009040792956126499559151778809911488512518309639143707080300746161049300983799672699687282447263121598388334902674462899766046404487732227801733126655771801785419039964912150269544122358821502694826440822950557664162354877070479665292978878822207821602791672424882490026361320701966354511829154631071463665346167371238206179948491778340958315902080314540910167798949155664062276479221386829150252125664267413913242485250207209465577370849804319649000554154987544217234829316349701059084793708513901713638587982633124336902024925727655642334749183132193928494293381935143486973431623760535837080873489277447782817397956065155200939192262792782518259564677201867374386089126214620680267673851893413346752816678344626521415892856230796506347756190318271504378423863870838450980203136005840856201727233945976439161708412530158786162573228548044387072827814161511881033883667971122119790132890879898180513613842677349666379641924566152311333403615570863102099542935990252288140148361038691997037739196285446937480196163909079676683528304454395804153274257789899385109054310830263272456993634168430005163396747584018696238163702196897526311859719875592906818228025585253968617520431570030537040932072127367613720869432755505945794338320434824735132258455037255330714609477011453141241268734171723427630007097373172080203552743856293870003708527900202810411558165077367226645851761630852549244049390970228085042224647444419552653200286221709821258799871125183767949698503027180901867163132396475982917630852351851469774427760787477905874948634862691954198952421859624213358830153583669785559274127597981714796747115847789106666506234803043275387639950088156588289633773678718042634490268024273197478690269559113898573409497073911995585300377737050641593971934100070348812509981017787689828487846012484507550959316214306262017505244952514756251035178311391946380133742636011368744940433634516587529675638849867907094948812882903624460727433001785131269101871205676944935804974985070449772286677313036039787770081312418823737855031088172817004984522215022143838172969032287740986693864051620987625777895043850287284581507578247087610921047274326327425537418782937876308397668452908834170642074200077564202932945964177802903623412589491357803226282188013101943519649665384262958169143165322393900937129351316670587040464927726095662077165944387631935580738898071239443786581757592414106757301191050433992729454761920114479490893818745232411238721681048296532770716400869489689054612338888575508800911182798259112843907056829992307581663765120156174551262961808120197545003467281525753012920638799742716943440544622377824124069873079242312115918964179511752799166166888792590415862706601685132708344144789784583804839104877468512844233846879896075100853115643852112865755141607658278970360394570571655826251453077213256817927913303150956873416806634047005929066466550788271462211046915570511962758012795320135071852257667180456038857646920635694304986297224606818939696023688505464826677104613329673151234993028936111405876974515233788610191172690776446967619520275133324743877836694574540396474983001449084310337229820157461793381738754838369601932974692029835543575853468129702230993276557906189964346386495257553835257728323251730192922311526992800589457710001105656694218475246471744490339774963793319700937102076743817482568087370114625106436094392211667431987800696753850426631729372756656200132244304008468590765859674693438868262142604868283886920551907588005218873430949034578930399294139862230429189815327542861548780939619836855895683539577092871960342167153860027097430448790079736150375543986250720820309383012417792131821136937815257519073746034245860143743473652102176331441572603080459408282466002857820004624118974465016058349908196619296062362498094023159726173428463312347561310074490437173834499880181877579378519656883300385743622741783858141583689716072149877620106253906338654213785693714339502509105453248087071940769540022696054479432100299954809241519485158197535847338024595872404102947590730766158955866397647018331940088273167004219316099846016285174691630157911349149903797118432051327120608915596706701904491816916999704957427871466003950317935282068861109081141458056862742840051560581241040619564399141791737972573036103020044040229209357524055410558227023543606800952556996079865487000836874138457761363631568662709659125483284240442719711920733368078844748913481311442568081753290758969417524676224495406409520822088665131922784991562148275588636302719876106900915706474085893310445144797389665746194998993586507368319375772787035316017368885590756122528119236283894050990536642665864088413719742090708119548075761902341191711521382371345764966095153795954211930761890234897373592869676454267505926424294119203767488921119217172712307211961463212440042896212880518638230421136961604587715153913894057927006080831993040882669129202066432870985845444942053101268685010622929473410535100971378964751508590391822715015752311734845787565284016255464577769941418519840054994303688539347524599081748889842480909530931406245584263364026300691575421860826410920056003449485234884349534086619411414276142653597984129040551714011278578495569911481886416600727862953453726799007476488814151297850658352110774488932202673402972861182536788438985750873532703055098310635019056115256093367670799353326876546519549180303188484025973877335189709969707865738337758283753528612876916677861108703265124396713874655435926881157867048769867461647580721059603254803278968022632068030363109846644489085330648883566789678373862753634848931378851977462216161190483029535226364537440610716645852934105617989648038836921350967860314772046685706199071463099232521405417024878564651759601928720563971002575354448990575056703074798989473581625999085221382508733401379885303067873798459569531826641949894443014564593276885429715076217471209496168790893235651853487015643006912426903130675285185139022147665528428179214833699689714963546804768927683420418431990128709026750305473673593666447133972018023309641882912298582048322972485656584639927579892399835884926496645235093927539327798082836187584485841413980237403334692807466831215526664365187900757197993832918826741692447312384988610334427994470374513896835850084074310405426086989369631432247935595504814813522971127517159862659132995697701021032873841529158089014932433474733854563627013197849177743967011688812226473486460619850327918026820891126821082863934821459615820059235671624616174274724650578801918618177511293691691803684423668655310485240184709008749501921350353911190366050732925004066366660090541617290190018407239947995896406770108170516194838774795357861181475412177023539004311897013863553610618827130032143375914230269753969166457321066757206838487999857590235405356250878151893615890147451561531032216800447309918184861159780940546221241386513648069193319809208045843004889359165298876043952145087525995390030615474793522417698854633705021430466779572116964990454841527992048074392881187159321209579489857827222151108541732984652679511087818409075574929494159978995735700022020196375715457041662957651868692779819456687581107664104985719360535759153484675828946011270094045123182922694423449593484421194060522138009187745984858293059072447009106777458017351416920802994508009953287851239343165651710296952007066807059517160395154682166123508350251483985547145061664064693108019525358362255911803941585556971188181385569824920398541233285707835835737689852678328999821858645176461011176813924296216215125617520651349903688357666282148278334688825649628046391924985767617900845182592310516277552473454680086772674442684451929818446585747608049120110912650083229151284856272745217296296677255058515022092295813122667410214808284521545055386917851664319198882913274380291878380461852343270190410651154618176205294079226133034042511460408486111262528697194813246416971576030899734972960615240785975653878407381770799872600985661438885294027788711502602514164653392629946163413376230233298676081193981757167054878407771315929813943592275986023556817006686747853021988681474688531442304915204273815868143614264591236488233038425915940287753973153977807479469811910892673554811921196671885368726016629170342664163335018513820623414000198569323212968815816870867310507948575001814045861379792724767212900566775701011196864400530088151759033653493396034812695509415922103618914789289431756233224242575582048605889101124300596311904989209372051581094006145284901230750482726477152291135606452644855398615692533643356619397553024480853443593030482919413106992778706274917061781396779296581520501695988122635809333306551823826455397433154973163554126056908948124489651249490180073724985802481547968066125543038447660180008760886437057320335165649331973911083210305574797797971842270773994320692371446043435159141443275136339336376075895920827402325860435244727290450017018683345080236914563439487455138260416485701264752199657226491958361572216395445011193256076954831048498670125903564255947875253729097210009497004113183859111255048506274541750762139693964564644859394201420361169458444589395976910627396494004409251916756559633911937608177727601857207865544803266011826074467284465948919598816432327371787226747077590903830794906932604458374448439760293189687359078122406337362007504340540644318202617550632722741666266868502509076407427456412368114018971224194456025059731951451388743057186176595806837279491931857098509779491662910315788625848699808130412614196459031714699273425638859403241922923994090969177257663614338569337990226612781065800331142802973251697787400081125478640458723294278899437949116114160776264867100460693866898467622040960079279534290795783064485791112427919234429148273806069412668785518850736417591228513412272171554828056700126445676743087834490341764453278325581384016839873180674394557653349915546596207051267614841402778784397989801103071576447143907802006145976932537022443814752620800706571191286795749190081939138084434526500775630558285390340585976940386117212534150053484962165685070108285156443210125959003686063034497686292468735233338674972656315793448434951699747570484743173375896613202208350347727879380455000689178966737551739410217461075885377056015532477158379585817150879957239918272372024508536926922544474011902535054761552300491582014457898044748320006738323713694592084180678676458726692841376818676182111481212483712431460200959635436782619717439839569720148457613483908953270572292092629514336661337121069918186663377005644386892586122772578075915532961249761505392443282155319436783728896574442160293261536341527661301712884789205485414074516319134391343770007468349435288939634298675298933709120369574682443429155046137850264570421280346943206275024637595915957077583935002193204390516784970646265469370395188969336204528888869685791344164593000055761464746774133662938881243725593618995376164470064479918762285394891410822476354738618052523021091493434954141245854436152392474218362824290836518447024374858743682252845107695967739038259800341039641536592662208861092868590566387423077516916127847621502772335011729504694294472504817081337067740560170956850679083807088792964395572736616640336178623867747834502563341360054500757522962789997578129837093951687630151895882126152698705665031394731286550052106976689816080023638888626363783738540831034103997664791318636995002409300624754617457050974434511748964506725064663267434103073440270566824753449321462657013499637303639485973001505789773240659475109035806454585044707196388172703187496393053566222084799259905499605417124934261345097070815026773711013238184072622139589370415213172911487946503866210947601785901207555318305758847819926789440292920323667465992185491621678751954164181079007670680565544074908137669806611130317137579712952105866139825662887861322957863117807437832117218380365980789369265057795263062942997100278010537873606124399156210581010289978382316512618118595913477468192088491747739871268848029785559812131079210942618744647509429814971894019264141965835097686431794348650656782811887850638908203581434713143128824814040138753916192973466482287193971610833421412099033033047759438818888469563897199392726513938143448405621163734544753730790031942208442702291631082752326794521804673812500454330924782158029048374746311652347162323279267721198819608228278182199115825912208478812933272625862689235914301240249561484985102166264689917818295530002189445321606701557613544744911951626869647858984173600768994744993344534557955334155308439198232482489409961591185892834234027832231272322140709158928753972592001046147757017322453140123848584163364150281519795230233622708417722255671458113670798552043843994793341393893997256896652480198151398499856003520953798033006346311288056237676085920328960161195326503626622949836913341960801042029255296923991020919375162730738814550217610107638075996898026361778931144743373020578830605950288295332726585283729053112650027554619482653611628623675255675758051297356318230920782361651773300109084466681922204182315456476860369809813648770503397548715278614967646407512895096188933783054077958367516853303642100285466190193825774273529469152649583645048252222512215483410345831670884925397874616424801723264801872637968677444261721205221038808431540440524539011487018280592154560806926168013733174657063230888157927868879316626804588418476502193351508099877701771758525132243365470935402097411011352256458926829604875465709117652160859824601759616987183497494288380165271443874343465449800025593747847528642725338054413181533892627053742345996387232525235412690832910618677728175785602942281098885920046646893983726375162678297798040936368729150163638025872381290505100146596780623002546091147868447777534178889094139206153458664196246332884138139504778773096586503441571913724327370486761386796159855616276891346671113513922694589942863435818250978398966862060138827811762445876481696191669349058072012435327915126601597743703391507911043728507145787603687144890949521303014635325650384954780727656705823070388280115844818669030224952101517105961088763630653614145468512285310370152511659943230467034460988046703088686383219924325961163056800618513982627443046249510125613737831762243225145763880499783563588152400457585377713731854188107982387829127340165688936415269322165997026176576982423785776179276926189975242592600609464125797254022698109791754929794242955714488520165963429353466910431952434051438512713414258814298587995076560151946275865151265056281687400117159516157878109422571899839343667856593804919991028582165590148100259723625838506674386169572481557605595243833504503506761394627644779439840058313438598590715893796488813643898977665618198984498323804526798044775537757513851426259164052215075184333237100780156597030107890203138895146910943959454752461581449134484469019457774467637330526347651038509283240664661194581197760147328163994586281876921865691521828829433470742245263370810063521611724259752392631278434856129379670218974924788079535911384350779537316625625327095926653042994706001436560117592621361148330695432693717132685880394392571865477306932983567543434910646353349318278456075610809459786453561572144688214830730305900799362665071070059379212174226444616430058455162952167403587095261548674401589815890348844405853096162831423905885184747108856457729782978221608052278666296672026579932496692295370350348910517737478025821716900246170828209091840951029533958156035755619283067676566701894360393784817349395958887002669775066323248013598902353428859276987517731871688188090113461263888561180244585291895971453219841003309118828885063033301230999992893136451405468497344233901926155040782744445269548356705871742207239574323670532861200945154562150631487578413046935510156669056603127645964688285470751856272889761479656620284939090395199685333735969850465879911984054215018700542085681621797669173540242893682960682048603195851378170108555355016787194259903391688193917914425890974737450198850567273451292392828622364716651768470907941518202058307942226186395256393926381296199428058945714801222239862943585551833992033883447025231433586384552533870256506671481346308999393121739304148934559245210422303420817156678607628089164753461047898234389546868530307215712081068117459258885556493396450175113242641273607440439533918856589622907968289418862424879492128911214130534700691174862170394801635068569268243861517943564075383410784033375425081820529950916175743698748705920114548805238924791690808223026514888686581881042550703482583557082702575581389226685247024896745169621628350148724783367220622967773971440885506692200957896249212385058844943565611055495169800748581609068869345880017393301955343874854589827167362133530430172223931581720419912531154814478200461976062643582914585915743199167632888681208574061784437781381049036517384672442163726977610148628303338366084250849535774745568849559133432760265456484984487536035095452494282689977195669856209540282465500417919500011203107846666109654420850981660679364522423988893368285370913766728568277640240308339793591493270162686023811092028797105974146072780624118350426581802270111312534686100185399233061121918685632559587192469630461293782535460366941644495502904281812039698668698546524352284976209370533162013813076059455798726014435191380280219452895950689293257009490267261518907971244111755647643837464933833162437735448701394549767145860834628658312420439051604940446658673700905737355103038391960297931516725734263063450741704622510940809550818446239128558821872774945619780189330319788683361249209861712662110474176697952635993028982064732544395870525011671834276490539768322609805481214339941287427247402852708402304813337678531099021305889843914896747307804508635544845816019425805303074636197118101853678047273552060413019149840707860552017028576828830168167376445775539032215014281234451726989946277664591313688111809177959631813191973039265185489908155876889582489289337584685684466798239358555788325460837314792297425841423913958116098150258919627228446546524725442713479265712583999782116135181635671616487066036566613194368818161894103898758211338487264002755999110335121737958231817141002262268980246142871913748606386500470058448001342143622545125221444249407070898887586434293526670547266699037163343655214918517230911449994816602526030929572112290570720649445433286609978618285242659975029284383318545946843638037451754704044034693591378728627926398267207848047358717152800369477975489498714660252991298603659642353644117521436160175554692972786042016173382851435040490846502312760955112064579773900474914189502664098764366199550474694862322150427180387757612065021103435387394812500048154909281319071731068673118824164246883751624382052467347160132321013712417080111380873910589138756093660799597462456451220553592938658242764956749911261613832091538178477561989585188085194607132455345779757116598103779200122066895986299976240224560441504068373444144422453964117102092070462211866571676668803515370893407257154150344167059486465555308052078719884783074769230885597717452907668402558069736127252863876641624583292471895369722231254304358383483552897530243804075113611794575222727189084694706264186015493823367027334066819312602794902006991864653180187315252280697617510084083561404896861788707226667383245156900709286314636941177700210718049842502792837751709731133776752942847710635577536839998693410682057256403203342847347176971904266013903911173842291044104846738214366501056805859524880944225461486335942345327606555588895604170375689421246555995636235562609415880106629143427167420344526180872685804782592443497859849286990106365694467592040213937042676605731328549931368666947111183125673137612405803124690178706658417773836564783171606188710144633943805921772790828708871808805392853642432983793507301026788907385073593566906270110637644518336774232364134994176766339140865077765251280533690211043663500163617551995610742109731067907736365565899411254000033136205638187955726728827851933827611995507837283835508495551075899837706190369738250246406193075735447550895362886494789461256256968664888201104283621330798801283654606985746729805632541130000856043207092104164534596087957064628182805469217677190637257856461003889117436501010461370892168060030173757423924949797340033943445887631888432601200678410104659015905807306301397965167897291002223594140469817417981162810875919989466158885693637403868265042631332615353638040356008897923370557215434787458011504719132454874258183812791042398170512349006316000422274614826118185453720989093038004489911794205932171053814618381194095129474182101183575065781614894304584666265637809691097448192685099289857959937860242195648307547967217291570017249474789334591770995748532501910975335860333227861112632820098612403126705998804379217560559278197226472111547024427764988735622410729394425715877072710329124603290541723007076507004530458333525814525794553563541260562885451357001109870908953467695802082399447932738681238061461765219636543667820707026956464681914005606783754250042801071274446606863148933114541803226847104582261354059955777791769204447440187295986663978507287288175654461741042261980937488341141701741101637529276182985184640673975856635896794752632882806872879804753298290888711191920700756099452199284568946521189481746548052372384682258681453047964765316887672630035485111328092011059422469915965608555819771368177324657797336548869901381028917544675166092657048069284342192016851260249149856362277921060958266488128297325678456086600737691553240914818389894179426981064707394597968882749507841749910765757370646547160865429618661201316873477091369031538556588169890867391902042824298150307208170576757449143843400389032008235245651913480495569645825846374704111870744122025210507384477092828454776756412965903953029682871094355447649752327552803330770547609248543518231286989329383743940774269722992437320234663220961674143151952186505254986472709204233270025007859140733630590994776894047742508579969440265403933991069615345926046982059066034778162268454467785843541528294758534182547658893327616165986666082751771115835462406116160341376569920827260173915451140986969183867140283374877944883309458780300141724482671703154866639103592581803565886285265655029577462850927825171126785950206912121060157712795129968117238081076483169595766319302301746719602195233566280209073596815999143502374915782399658968254229451111943592096359235122935288964148568974503890746324320037195712358477851129535635182942901555216870569872218275465490443760309053425987662394371444684772441953586810523832182818887705649282892195463831455932165262854951274762386780980597552172948483035409288606645823933795324729511652365020790228374020317186238544028961621355556533590559574027741258751038324303810141644935455028657905003013489647837387979883219220038869246539240703667515485530447964223896130804191932526586766672659355792369022440981753976229984594622914408137725090174915985296420312548654440655572568321399560550407982839420897988519239165983098957881199347982234755287679382537781360726218261052781239095909346257629719414213294313810630267536250351047689656209431247419415879809671367427970107479220770839733063903792636194901230254820520581452013920413184382783869848824452648744319185459276400003236232755663426718286141103665138376475602625194343082953257242251176458813733315242647976269488918398460216324429151196375935458334442739888663571774884240407271893840371870046253523394428632327176907187101133778547868716678649192078770537897970970151706383891079701823331564132360585061487630832029992110054369752841238181341743213309831663292051029135924285205588446244754246694225863004815901861870187333155205712627943094320563390360092335037425359173533910039876085705735885380182124600029324830314343502288188221373839071052111457962333937769403349242842355622518891867531159263477112999779108408397657099688268235466728440064828370549771216899318091442957149428890278876949585715371917987394996440135013371948628348862555998574653839073021126844258955573529194105825619862848433488726008129130533230084756843822250670444761475459148445717429742687394737077521239332546937805231875768227855909145093963148641206590240814707232316859118376767701729307268980431519213791116870937587838666023375729914356446115137804389908965368397722033690988796589129829542385098652304984633336489299840036974373050578593486550952838419045815166949747341892469660324866066294714094091328348491391963698523183322225430092290588070809492355524887426002755985310527899157422124764597370092378150014726131681404364674559861109316511918463737398924720771673437581269526365507647752067786799913350473229524436346916705976668704960256623371361500993903120411772254598152974944630266074868554831010122607092171523152614530291411554064948538969907896507767992965266462651591106019027765101320657996319292966898194942021789311139772049098988466367318871510895224612636806135199318463202164563919068946959187594205241299858042143390375314062463091784120048042154541156146268068256773731061800250537109065092408128587690025305108634976658283921289189167693118220453941397257347493105846952294147926037567097851863518346537399287250461587155857414690056744785341539168182367440061113513842783947711637325366231614698157605060044193037255150724757798537321544289850012855210066820135354255121088242296431988710561509278712728324770094750852191558838594110185052210753435268570224099973620180334986993260827838603158514441059054778091560769598250479469270340688840705869622170827654774043494185020323053282931983593362832729485006714257070730616834207303023421792180400202432971935619771249312188884953665603960017244333754941789924176493280770201224062657345339568753879336331477471337178466428553847736894398992781199378004713085844265585760297120573525681013892121468903205305761887476441561982679153256066221451300344965892479310462638920132859147792302163327812389762608096638578367124875505451157796789514257029914894467263758963828884825403906150332809157286437959741985679176127236628599587531774424059795057300046547901052482883813070632398959746449034740147279832449869372321895233838751053911584513770383278434638440400883774268657834432263612660375741360657340058719170096641421939657145494660508292459212729230759869370574728690976820944789368502215968001723441389564433909262316601790518253997312665622456734350093564509655779247547193669337740366281501169722042357649569598328813985053431481503009734956674707453720013948459085800583131902260336039348365449792657370810949508288447824357266565089221853005893349376145863184594610334704612294350005872197359025619045526685775007792671915751335251886061787635903161048445818976504124727163940000129180650466534571771920266779856028091091187535664493545117770336252959924266513686104340724032182779032781562497874396001155748615997408176756769303735048022036665285155523778643124896802243657498275443710930351416606270678393398486994353146148144161641360931914317655528998175013654609140150547275985987253166291084102347106151501436413114581327394721550275917043507053259646573292678647112899618348810845168774971853233360235194510955259181547924158596721070987022300712170386596259520871576807712171406586379943861874040388564177453621186473667976674958272674083364490010051617343325680176134774763515369259184986383675946746991447348008619174100887993195289094684925959387493308998100573565163441708484723916769812573540589762936941324523379073105155351955753190415452984228149636847971967160978242319341221147035680293629316830577629138455392367213574683610918748881115517377222873817738551772738708410051209294423021671867830667821651973436941554391540830832735818446605483603239729620798348532179543576243575157004166623857509169694976339884834142275638622432608807398981865453771348401170180003113046301446745549133569431684239866321304670432579078559743658018437907773221709757110898048827568661853894798723262389042550758043838641629974684128434517543605879925922193606623676403801034007634190403985735349498775986686776290314232743334906770369647468006979705097760142248472487075261885201430880544576390369590252887050828432533543769036626051273765033621690646139089954175271220373454711276964345099786234060779175862162439382730770126899001167935850036803813938026655749725714078988579781123378932261959886421937918492884837391209958942939065965035954289660806197058826661132693695790513162253149629835165049653109166544300922494452433832098897767528462755000699273428701367048670241865055784978201572033994253992190958577093185937281509731433874331517465233389108705385109163896973979761678578788133992028975863625646451463228624449218841982068941752735846561303466136853500220451686484909664856550385962902700419084755286140589515423902629686156641970843097751144608625829802262675542702926840754177604551882742826753796706149251496929308355133216051615348609426529772967058111824886818066408715172498519224137114618033893912417119471412067699701019478642662289597771734075703884601356712964486718110566839315180217505839739031555504414445068183831706850165728059163934977195373293091597851644349718824904587688766233079944365301347787378440754365650318381740994574749313280740878855952726165643527753178549686702672841964017935877400346495151846148897763972449620122389004925470946833719483799236747330544606487481909141646487627202787986471334131887017201413883039014287576631365820990665875123120157313724032676092559922833493165649918787304710171932799958884295682067021531745330176763601639530164302455934268143008658429863060848007261598152137348439068942502799630948995813258794606660751144769301862279148878738176883652355703115204450256344248244943428714750371766133644587381605837623667517058256860996008164443341314055634304833967298255358378941968909405043699821023335984217722752761378391275232058448594757738634173047743531771403169358806414517505179033576321630589743781956716263822575067918238694462180590406671753271234872487781100885638614223925942311963420738681484564172122993790650200002626275992403170228129145215424613251656057378496623782459569830963538209889205370413514889833440722308122318216995835276141476411475119017058156524505672859937471059127814591372989002069477886554540700242529762422551363634446331180859782743991396206786668744222691250359193619655779080432759514153444566576857629495207621027507521809774807320124941084364791959571771796603353472903152507729953217533993172926039302884041546384732793836073503402082237761505555201280405882605893218004980667826962378738378686922139168363660352050437614564793513407463342900198641948292899610163206640761780934359888034298120112294939149390615260759327421886842331946638951348821950629908358227517920223755383629875874977156967857364993332549740809366139535249364673490777132044846400374125944917491070927924493057591185937859826749174926399599723019056067379114730471695714474868257313790906486582076777540654240192076786564698356648524366015843209264055724962468520055947012869229163417443691341056206472880922250643006242106968762283462954195081023329283044363522064386612780232077004246493032524182405685304014068474113516985650953866033197013494908010768318430379263018983552639546394540383712154479377997167584101945754230332092755120189376528301554903619023814602557931463509822411065288151325021418182862651311142633881338151450564077766040523703317242390727594997241396311335290997069129782742442057729480619878952825397995357806302717608170557786113906684016718944225675075923651196484566961780237322931820607474776586683827531867847346119223244277518874551120640827030865977099123332179144735614483446147545744280062867269879185498817168288892176618574080403080217010598728672572735766677495553903784179144291337913725549407781001648831975549005253879881683155698909590920089609691956808571244896997020735806059581790615098307034823524775693295261281748693370671176617610966630523072642984545331836726330092366982489436664738143565186298406294011346404292214376876747433408396985817537434935035666441985782680631097183688690375636070855931924978641088620791407530249472562015916854111511627634875564073488834975432602610367334165433888660727168092469028966869730639146889901755104824969953880915333358801955922054381876393424189920503185654689030095799059840931060644806113188908263331454802950136143708119746194111162138696905536028931612078298099806838335756239149491452469851244491981513118762778123597322216972708094369940217532568899400134761946600749849041717117387340615088759538175685708556486770816235324382081403649200703299670283039400186827637634062645949366561091182332001839016501223704730908073976144759798045539568241255727701306336293931355565558142973233737486306438615713688871265646270240246661782228883350117796948531336165046744003678221604873075395849298468494868243975737381549385874775735837141086430684795851821759782899492924477335368080829313845712785349982430408649825773250153864383524147600448056166527561178579823182923763336068083285513487930817974501004790282726331855038455672906132862765275212717901088275688665722422484491645733006624437076637343675899818905530668014163073905463542486536372361541044408639016505375793617863068591630549391204895616306875796106311531326867417540175061602725329919157569629981572350474308969799810232659199366892697394130737422467771904430993092358434339126478964021166838388787679063923653248041140291654335869790664653138692361107542499042593472330494368291507114982878540419152501673262096543122845297142710978800651535971282454522964748705140443452064135121874927415040637934050786288809114333031818715658488305094452025029977186625702514194442813708742427427741897709866152416437700167793369970315216187448259873591942669075224844074273227475488734476369616563038525823839482624774216778441720941869732305209807278599798974457211441895203455957108751647873205652086855095487980542048086633243230659435810337915409499028307964437312267191002739635698335236436296313736690240425096674825276305174350327893830618097960596533832639557906093376402151487304233570258673850896854900171471519384216280189588434455898166667819929857892016339552299943120553444149129043925855802364288887102731075040162976521945753579923231052682219834282485576578506888939385177660456262367913085658116236131840280567190170619481192507949507083494262510203314738463957373894815672798727325604221917179696428094795538901253656930709406440212651648792557304949184554603449403404728025536237812903836501227811918253315685425461143185157261841534362134268935458832233537936398464631831899592567251093693904133524177834302549002697105024906435396684495897225430773896769571364515646891966853608192554509523223101052763610435350096782884164519446536954495360541706017941898692484877738779822509560929036044532673771110306567225117124716993007022823486430580249755475140421551354546665226306445085065223611907098603424072326022336508221172600931029131746304985317015819538805320881784511022098040932389233945117239741391178448360766972171825456338326141698882058488541613888555216232971139005974582285908028134441270977975671429542800267341282672246280390750099765578960893822111480810329548127307413090190324854795405253969519097483646997467484199459640549553727246474175259072585207818007154972648459730844549330303186352430933405348871058453806949571148405367871425424988572926889439739060327279577739247956891876773137003376470708406466906347352421300292599321917147465283417788456661666900943532606048787025732525225811281722752757159029991613686395202912272661252410735275827298414065144625528068853829701174512430006111712530549702128546336670395928016563840598455416812199282499531165375448505091295631897344681310212819271974220302527712609506008421809486843469863100992838755438297021329199520509778641798090267877731978452818768740817612890550809288352708435921276096596854691688215890039157987243976305643088136304725860102705228494008098470344752408568240029918778573359387132382576673432318602199069519355142924523157912328885976257554591121310136502996127527139677287169166167984238204496671650450653153294368623201852473127474219313680810256335059439609173544533267390771750789429797471742415963902639340354180952781840703448770216964961954720634036090424408416400981041716115623490553249315580291466473134168123548522642461633853749837455699366055927121453206130143311536703977179474721126922641436976631314205644607720642481052506409083608350686300749613376065198307217647247977396940974857924957169940866678160643530491948905095406228136482128473650469613658159836723338863331426471937408148965612667636686580909723752255993440658393674022375402597409678920812764923849168599864248117086016904767566552891516772091150885093902024001758833338673248701083841608746297103997951494583559504726206470534279684332961960736401137251072017002319146073001524782175146353637351285045484850742618744196132116037083103343229939037553468886002254438070144671913795291734431458613478222621348349097274172987802110937837243308015113434828065208219655630781434411166937450102351896868293917430277351683948607303684258701513770890610075456625152354625303734770242020019074959034965476900647309184357625719135867727659002926344966694459134464043200440299730469402186478036181971308953530298303407156635590780684697535079876410477675890248222926602245210456221747156441697480435970693807743354634833938111382984448925840871703796021136307574316567117302334977337690005656729959984668671871826704551845866925161820629838828068279685607683335589387860890947659720119775553544707361382600422135105577295792146653112842645975618466088997709524172569026211655758026791229670250189834818084662070072569989062936637319892632771314694007814977888083796951604955566897179468034045403118643329951327285602077040332143254003109420666813362867271968471829245503180879945255716978613351509877633545164319320811711386030548373774890388291230573758264448489903654459350990153776068482116898239229710978046935521162753770889022999769733997657275705501748854980895995352195021952893248793733164923588877718132990893997112178364520727900409149840416667243287016316778867445628776163650954395251971542005220833720800989450432519034927451167868792619833093970801791201870850004928155629566880560654925837135900099727196843646507063360034559822958282532294495652766479773059427813152890550134220697971439541164339597443012203321710224354485520358264676978720299655030628381376168320191327594758163457554924104735661670995899008250144372919939189092923224701769319084964931032799100059730181892680320920046546564245297970814567635129783183371392607650586868336560593993089843331395839983182235769762085840824677540856175511870009686253749941598694872079750309807892104357694097424261086431367025603497082009284629034930121577475729663891364675776121626792099652410835290432633654584768517288686044096833237285928839399138889536867187519740094361822592798637853561010042848905046013080863468191526722615048293172067255637372851781614036312066820911898383228256517669093081485636738138413606860788817855668758332768405549300284016067809305230503152516499079774480308301923286495006623665815075231646531110947575877899600271481733506357213645763174504553611267415776685240089757018194136146319925949518893996927687686415060605235862571484022793497092739391818132025587155843552799146600093264729578835218657997180979054389980508727461968032081522995593386180893833674108582893594530781313503091992914739429260654732212698047144102985779076645263618040245981774684071285425051911959136591402941081561429899495541631102450625199729422914725065128224941519138399924513515669575348549182523299694489751974262927061388167576185926807116468358991355703887295608351618805030944502918872183523139447278226691991399875807791970268378195307904259207442856165006224902655901999523482909438796531344840856884152605219704856600178337119042787592779299582021218338131776492228424010504146465687717354799596426376071447527570832406497771822455190317015604901201783972665321210312605566252886469375409249844752189841205897740113541874314325379498706433245710616080430722696638461410385861276897930727357627424383730155597114683110830339296425269700325405785261021524812761969902652620373173796140070376202174311484475361547411398990731053793093647133626590927071662661473454263966429185987126390237530679489748743686320196237877696944209551068801545135212882549506245868365905050507049458179034414887086928772428908437556305793926165339276700772052541024101450809639272565372678196795800770284438875209229464163162761148423242682209889664649018102008207388533239240101659906276550764421365911884953959035629486925960402223577080828451113117951431142861221888293149510969801093508855861031418242974819864601753844913732760534086041619005225345303294592427319763760183082113323079894336882573721567484030946469428038785087573739021775390477602010459849145722007234181963476195991061462530583692679625766502360109387834903499023900551954462532839291400028931542790078154102891940037942320664442716350033782357247894563057576429301908862951288913551663246335940439919881795503381145099746328762918398701851974551485024773678686880624640900308628786391374160870690183243997081101269788520388943766850629640367788841471202492800298596944226878423237463527125025008200246463903174959382123264773835002124932767136035848956417311296967828946892624840517009490294385768742452841202985425146079596462000185561068037932643497690136445698063119384478933818850536095502335120277206576404813595637903359663386250227782041812328003658307733248661483428173801085978943004422174547305966662525096931348176380361832624513013622563460109111319184663202091307703998711519606846066776168060270335353895641101439622476032966989344990411645118584538468621621664031438791651572421145704041315000541794016711959435719560298826934146371996260316045660032894545072336893259407248084747632182432811378318524830114522486944181376115237942049562187192579363209149319930085413056289955913770686129540345588367684082086156833685003711777547830253482321209668225166895798874639591949489420670724494654381555063206979179983268678269245936628394200683471643448553658477025470370122675743478800503156276052042001703659204050713386114390714003466096187728940104334863461305272566183452281255337474205302780739729197443184589836482337591328647733578973366489741371139109196882774316089878606383664865071537656284389439612527854270483467870554121225046822722765741706348307003336621215110698568739556360506207016755220189215419290554627179397455920406338024815097185602130019418662439458431081756727457208974124524281889047427500440357480251330400956623639104826718435143395343168265148447515499622610725826158614926174730544654161958955592398430011646958710663056460560111096289506689799184941044743106812471911883209171523465488657654879580499479260264576950947565331013314770632340468683723144214398826304803635698027143056970519135798612412185271366910899535798662571519718402345017842833912615681469991419678109774068912940333126941856205561572984851984318804405716690102366954174857458864798055116234443999050156023127441551623534690957683956374607738973108576263229880793283590982629170780642305860728375598706173107561765049506540667979329899835611559408791326757641590313920871506687965222471313212266404275012891476204976325399162849427556984721897219002615695930347110629708487995188014558127460435772572539454970062031278890852366619872946079914089416319007561189508901447391385024171583768632163107323051975724984440794666943419358614898559605456818132056091230199198432179996579975154295784016716074565395264420739294427369003557365091918739610346022481483924206894148405372091054686555468813485629648387335312458275734368971853781477443882681878805690453463306083833608155884141467749617834953571745540506256233634433850579651283406647371342664854455720583605823975694946608404780453074058145049767132779542521729780641183230837222465453883300612961137494055928762083933119763946325087621956101787541445993458286669220432292939232139756701733219342500136406079690092015127542241275848327745823518709270740487949113822941289642301145886045907662598186490916121913004762517714600308523813768731964477443385481969136302925875252140638541439179783711135729085402755930241131791730107688398075622398177504833185398773281564670966566792286108149632428792536922746499660368416547723185502233385569748056990222367327212620141984167740328457261135480300374738503238906156182902967927622281628053483548059522124176675492476996316980537441463245419823003932231400215535859107899562258703757542302551450822951827675546973418184299068312734643249665052032713310844591790914281338040813849996769187508221324761606712867224045757833814942022522417925413887476793545320563530217258879487947114039925828257013418611969407465385785225805957618433534721563924509176599900353200107008463827790383280420048906545193764901916010868298242287004926002242380599518907731100573779937865718606131592637330217131316133595065653324465320910112481923954863248211898888821950886335043278821506667255549483687052225865204867823416809953240403514435053559228275839118832026421367856354577741975741541272008058896180906048521654619004083713614768033411034189014592906511144272329472023010614823905281926133796326780516716538756960824081369488622210775127467032845858923374914666379463086697562697376096930130434379203102296391530599617107505150685069276427184433559790964579320234638868705092269542114252694519447932913427552083063061649999325730100536587370344431146275992496737203959953134539265126747628924886665429983721992287426109458959301184508221194994271830367767372148057080007496751238946871585842223471506157670681322032281900073764835976563971514938105704978622349722391188320302909312157845073975853616592118743104260175717338323670486457721912577306518772938674246246826666482057451126361954373262960072984750722542425584857412800535234628326794873090444617551312784059850466607495739135471234112501960189889198425312243215717881170032872721822515480918296025397856645179132202643193387863561329278719656992969010701850381511627475022217477794653160888964619889818688028665928702837202968164558316922049364797476302694930785605243102108433679838937734588078949722781660972161687412533946309695061345179485590545445957852530244002096436724462011055904179527988818376824811642754701866467411193367408815792561965375796721698952125654519853578558599092623180645247819069073413826519860963502741714210878195684594046236678919095651316060109499406577233763198340597790060993712787267981723828110187025847637403977713960190285911148068311491449830439083087594367923952314016437211850769461592545155003383226272653988602912876709978140702287515490815811988225073787276259414316582428778883514778213580726898275177411991395788746241305891673760666187028370379478300330149479961213486868014817362223262331843072542057216800411353258069458607233160136326601367494638291565631946701854795677841313772276375095443765130642866823712266282787302532153231701326676620891114980069941742151740433156224325696876275496162223839777792020408740699165316407567570987974480029912992218131415915819325066786248464990308330207266866255128539931775514791200715011105337613286307479346157602266597619802511527091375938823084065615651341231245058330326688753022726447059244853775474709435696320378026577682524931958400451716055780777551482271287144886971068153954587577532126126400319168321480091070309930599756916515875499624244014674237840210457015313739402802081908833214700212233892158877648962568284803967602451766446291771158248877002753497389898659871565844507148887289104547140457557770248829249948170812018451807776093883867400478223461821724598540223167421555568987729720654945081619195538602458105570286517357100265314980876373042877552832542884630644856881621726079713575960264557226394826960020695556606876743060819335500832591354415790726542358019029255859477193829668389714312604986577846200677539205464800072449677888983953120021366095700166904978126340069159061026496421225135721618199422472280121499524308273812757784421540322752427300056115372457633405386633473952147689803534080935514556367467743027899050344430002109322255484014338988557230361908254309536349569856221210123838342499453975507395424101853842176717377846407166554790706994697684200698198824182858761717262205830353412550848459744553105057204450900910388804425196978791916112240703357166303713700554134512890129913027555805036129543159953378971858334294794025550006795153703581636166145659703674446059866455721616572358539250094763349137713903102287025127007611198042717221647033121462919973733781968495066109138870130623740381550909510023730299217801264582495800583948087319699059959164472175101583407940275905647731385923920842468970922388271312428216177182442401453097775670366831856803160678626564872169620237397115463840748855093702106696239938476191290546000117027403723959905538315514783781244759731096794107294908961807851747432092742829624542745009176881542783381380229192419651485996889712473479060070094616419914667635089122608177704184467477023147251246255093767003921430342473305414763634119084659171702923115652995847261406643549275950089936596084340459571964972485845007829757891497551102293467790236051528798476575023315481548974396977565114132713090348236275949790632747289387855611031607363903340547463316780083976374442782106351019527049541435699221518208901605101535898103824463703374363607867552351370264915830102066892914751219421352037353412369550146594270304816899309807716854325768728308886341522690102853890977419939957020772701669578607462843040541977781846391347528873004700314219897332047465264659211385226170032059735815574719188639376046771274699406496820061614749180813867061271303856776312035810915353054064127430052793895717753493719679401383705636706249877850771103547463092116823687761527580840592057423845309836540631404519123764305638573288703927103175703428479046632796616862517889482643405592405053363066517917532452524590115505368482818204470170076419303211378380392426070470445481895754690349348730605481291465497180112097095734411029763064992228831694681263310827333257071361436623903219092401118577995244574451946217273527802300664628694702099792394014958817420944974572987209352455646722303941058425191661826385806030878156585661752170699946700038134909247082306564682503617306283012721665796484522790170928476062119114982852570009139978428806215110307208846579907958415621773719041265794520623280762862770914248258807440103473948815152507947472808000245722428563952677882306773836053556503667948759003044646337021223820953137743349289361982938974497759811143996105384749565438951599225915656809315709404709012480040048359350209857779473121864991095001878993817151587249852198328328969563549871469785850521155284964192606860779529375040388527115559936689495978838216929136395203573881935136589559109000209648643769281512425117500886569441817587269010298161615126000473307994322862799208303033235097029119431297225081570855631589688057336511761095895802748917195530095744015697367105524439112098286659659562503715479037799090997714386151579658645038581114604481639838808339153836001655135859184539119164505309714644256697858293671424722943497780499649733024851942956218953158351306417558906669511886478304147852521277898147415038731825675056547469155798088381920292883642742820853401742192547398567838977847516662378516881148254863262186669900821158576443917925273764454401560052544151976413251791195103273380314374592219126164660618415874475816271422828481412706530625129347569344074214432231256641561706636556192956148050427526050715650999925376251426546356387682233454074964793049521239238935371619117883815094867741606365315546985635476035388656029022083958805375607749355352834594155613436029771672394114649488391458842564033863743711681163051548848672631752253704739421593386758077629145524853296035343992474296849537536557300022711416533196345867731704169277444497711961780073152925278122150241472202819715254445350454898261875308473986923499313024581595678133804472560829586664084149735189058992250420556558239793672559943094686596385500167501920711796730376452403326321762699289852895860871961078538734712728103643441828143424665786934368886516453818021009429066938986081134229073652118199009632074608195524145377632935723792766867849689899758036667628853500597065937104659797868383209236270334311729444198033409311453269943253515400129508036729461829454277725870357645621498851094754844996487121254082428685029296249089516415693302068741329625947205778097784017744936690141696162559338458856234602779134180724563316048512045426481139606616825172395862255281224890169283166620685032839403929473386402786372999211362109384719705531978135836834752474206419209547127213835392088317100541460765153688056072397717554157942250015746834749315091231511031222173262216473999998012074264949792147723719271569393696501159807500120243697301477617706907013155823785125329789132153575644270626143510887843375377044481479106443146595734761866025890762580740661360786844464435450670307443024483440079012796225300398933893465397635609108044326498821707322577234814051360315275787815590407402402868753410723687734474602453121280947352190311202855924866286466578884922575281584053918641688784651696616806092740824552373499368334096089281066690274726065413658440207567167304868131086329420709014398995483240515542398025253574860768299091745866549116992234580307673841513055693559079051671533450110909419405709675434741843188565694072304021369452178701178051978645447083653845870512773719476651297230216886120196711964864924827753519254005647938851693127564754079242801693579445021790653730953218656719741930975496344308136211066826751313214134294775895138061313918023411750976574173404091962867251439102683384014427025972426990228598751210314642985780298539375663225828668877764675894784719185063635700939904113377428662633650267684742200462464728728233164827825740263537708339268131715410060464831254353032435921437304037385681770776925079285318024298361388313252928930595763864582558926127218758570251917279229667729454424401558954467829847462544551577524224250879817900760098757689247984796534334234852746182587453377973735250658716643359421166826302937683538373249735182794889579872888712287241698408934787510022869743515051337199019637875355136436463909626889113460934678008199620700686169663080834941047115350683763786011551888900086847278642387609042240669657875394262599418558011025666509886109440214240293773541746617728786797376270880960622728135311426080414202758078469521096648356941933780507116002281078145063638382520525175136984648474844192476364027906839954626460618938441729072525683307238057696203471964900946994916965968861071763540742840877269280631762224202546794987144512513172176237215753738065738336238497741803039428343729370326267071234627091591213794820945303371627272231696288847530418502297713627519207071988266728509712628755325915214076752159017307877023268149346353670103025164646962043663714533488143689555606777775016034294204337515082890927173517722377311490897565157245209471783909830530782750083711230617745568323472221864974187474789748708245503842973565715382737843261869813653010962436374259857189494240044876066730205809153449055237088112219100178040591488982873703190666468002979463173881686910500145036274442568810438827373279252675280607721317278584590626747221560186887378681757381768968182663838051895772782789150967377891631427633458154797808331062877459582924520835776699092460221278584434534026330931219986971145788831465329793451092685357066662362209970282885427156775592613247456001221653649793590272860742526184268859489553785438408862389208886300665112327651649602042593268497982208245327901849323655854906812804328331883631249296400321095949559526460301097746552632341489905277775776862947952750887836878780248583504506873060301855034660563983045914810351673160392319103348940790869043682639340442479855689038375981629921862034561342890266083065693328340130421991696252026815836365947086182653594978938253437642400324895715762358887702211893878400765837296286367569186985311949800021843878231934926970937423740613516610206597381235643735211336157906479908348352831822154394598670721575478604228489659112427898234052140900008224572061868746283424130119967292574446777706251785775579249754157462199170483274618159559018781307522171480632848688299075523315663290825700716200842490148264325989775178895123250377645399020847272152609582072960081704932814555207828379795935310646879043710852467744228139387502436534713997195633499841037023503237642626282885423001738344856267176323671950807455550308813000047301323955867021937196987478263908779608038920480876343162865350912159442023043390655647934826934630087462732735621848963339446555186596816143267977661828010354379858184709215946137153186605320479363292943635090672541813550328040948701309052257934260669570564418357096743181713497052045851210383296828311739845932546624238949634250681065023668604131695414218334567479854276568309331709646479380439931264436491507898039033041089000138147342003959236333327441198998300530662946704128878381395764203822608829502701323233717164377500308301491037743017352469180704940701975397658011528717519085752584388814144472574567751159663364032398805734302813612857712276682722900056407607610232346631943066234092224986186403070147256841570599880609553833705781570321799128805809625589799934769423394370329758080440422965860520705351852262200155109663977328957173448980847762714731103320822382387507543205895329857610914774436780510276354149136246588275298782311751130201952989891408360991909021905716295247148658362792983903766868749532418830962288167398964008083691696496803900232523226332357456377562672792033277676838593121810861926741633750022905624379931462154413916171820356655022655148007634875734442773282738686842916920295166509953341134688692930515134033636882220938798012102771916981866852495251622765731616076653493105690028383789705387558826862211497864223597077292228013613411324600171080264206029179146522694288465068135089009442943938933993214680951221180627651966479789423467591602546039410355900196887541973939479399742883420761430257958352228191436456249082545700644987174390039471502084234530093543544255804866412273741072911551620731519442322407672046653008896569134085802847853829767107509850079883533716956075224746754993251707908504178861721106829605338950046419636418561286824484151106482865775449834508738892825862669114159146745925811836978772690858379200004224057011789867271541195924405796396794684836189472756524467107487180170928381264466704581582862240569882562390100540063996958445004639611384391376236999671290462755741371430180152391000415012132091458138869446606882633930878330444072668353798675162145205792205135673225438570598051807134813567360933698209899574314261457967381897216630975713783757307546157266825697157674531389768506114246084368085809869596540066762862051420630683575786743340165320975181979273479312275360671177010624817273690866767751798381740224533354038040844256699644587137180171059188304246621303688781433162799545533546347960187192215249613435300469942293786012856074337653806341029806768959220174637648805314726946321643227932216754951035066696563801435197037092937731067359503946430799671552766663910410328434945252442193704376449305527747907261961369718295065588724567713796106466375386622015445954015881185905542905903116427687210261442214671957748427521467852335402598874157152140625481123379364554268492249399108783068708343336429614400685789096194885540971616254143277881468280943299044919549500907302419645817376073248268153514354478227179180467685286367735092867426732145331204629387778074446872027767404096094669340545710426399792745201926373221413874811028224371950753826805531149642254231344131677429672220885188890669933908055263176401741840830414178177669057692547398646334446878528086477579601688357141756952386988053907436831374835606315418163739923832704917384238087703153473125722133135766698764746953623055233673408163327506142153819875517168725578394385683312987595155512227452431944262155664458664791071083406915448134039981634073383524031085875360642195906170989733079462426908250731688551479532015234604670142678976491498029367527367793607621963306315901497128882810059818224818336287910374558692067699606839058222964310347212248273528544838730286553494121728412460385067143088275926164806710840978740734313637488994785115006295330280765170191598472630203561870455424223480476210320320017377500809583740616700833594075734900649864546400994190812879777263712167521792292382796475352298453309415312558788693007688769822995130318508349511866036293744011733230103094965627619960762103764220045602692794633893081729733060951789059937685206644777240442535528274453547064705188995630638046499264837297149918714610668452656825286207702294831122190182707656978621614274978783331216247228305685130209517092262991062717786075423125275880807935699047311910942036628668922375755309694779223468948242614526306498763065483346993578463797142345147945719487663735154185017790425542149602456810381281967469612327775297899328159884963831242101352349160102573914505057311736603834619516158441963429705702723901783619224925618360741319830893161024554657048897481022965667205936155563436727627019737190060786099591497191927435832008985080948273069526441119604939018887032096980394112801761342200487556020947894576831609940211046348120464445107699692147235508991573361761017046438631632760577330952416643901769795299179768441158623572950357376264416316500315409335723949587496238200260640577786035148935779342545129624092028044298915206020567054989432977299158759960921630458860653336713076763392382640257725373525295840663026520202669805258952478230754014075734178089311063477459904472807825004827996576943613601940616032318532837880998693873099298207663772946715673132636764248831393022753694065403040395353742298319954751955501866786712020142046207741856246630384789812814803731805280925316023512867266548222638694880063066261537900353149108188847633978459658966572286817130039782289144339278483488337592198013216486322302358634623463195403793642683532272259768290786705036719877477200540490454078579652044525026311155678730406582529980691989378876433839658207090888015297155271653122389947156321762008689149136116228216010701864195472702733635692360189695364788233120948673935726995300379733544615236335844598324451998383954887750699795059591364400667387021768684634421840943761706703397162292756720336142785814557934486864719690775556314359648570770387117014566422258060302342381105093598823699225269636465464191688247767706730626651824540817912063680432250767804781017926228466656275796020286207853965843268590915321864933118032348951712217456377322879591128022349764382531745811889012140400255482060006754949510631474987651724462865262057550647863838106333232952901627868235476586287506388000463891629663744890439242766061622059679535006565632013517296122262207457805464765992935241361849403715556287961844251080715899761565802095405927370549927417415418083165760517158002361173473084755394270633832464737749581155796276167923631266244979198702886125893990203555088940742662289532247906193433452787927566825886528118980954848755374051944965084523756310210238975986135569723788073346362186677304091585827855661219111357417386618109502254572426606096367765328965650948805776337269289616844975512844906139259505465223421239057559720915130818102806534703995223704772769757938281204158818351351377218631588931317610369092891164348582376547987990359006068054251509630701757923166616425916152939385154645154076628204850001069409494628057450655002948376094673928593861423937822219660268113314595948534282485279425378252358368861409750412842360924405759753520548621810690496432799882611373086978480421513421087037610849388760785110061500695704728874623926996646913209306233277529725662321496685947408952152385583963913899226430590149529244932295679164503117460957720884935944577123239458078492743940681894201635179289148787109944651050493205723585635641775078248736919117421627843889482020794034139835356277523410224839278094748692015510213385838071653650073963058265499046413723432453142202558791834062959043161954341452023542398066359364866613389623562235807475159723068568239400928909525561916420790327095294626838236558223033223556557220308991383882212246668961019805896880727162173880072211447135426790982748083421951467259766482628645932932864311465826292388035805055780450157490348711808577491660236167072915790019445372926351558854977771609436897156290793107214799310853838070185833358301696171920848540444622541529578878264933822175711826933168913025920515931401763871660841727537639290476027312216204574213459332578353607276257944459962350989065742159508592909374844783745946403505477234772849796130250037845756847141126596087141773278583970312167390992505502682781609872129120032474633377654444915025543524883813045562007769502744790689960809751476077924004882110337727496547087581612522210296604243900414450443377114268542864676200354241616225972760887976941924212178934290024752805586735037572621617963817726858516168471637619592067316679966594829623828825887080681627170111678623919602633452776542076772134599635617370368648668835356100410582665315679195443995490136355453335811845893992253131775799725932266381949413474160511307822202382495892865355851577398560077156611517912376162384533303995186438627937652259940521269016818300997973736171033722230081824569562967933821175950213555357177897185790612919196360826036459068168154557254101918582687172828604918924947358007956887953557746658775024323195904589367460015818670940555044891814438489613852284448311721171528317861949209639742533510531081651311730005521944996962122179262739278693782797624296845748103357069451304841329977979450919169151499838743399128434903810595588723504789117170034475264556338921219300895323017593498006292069255843135472774322876744011248474290777307213852363658688047205722389430189242795822842763412542078088638894627767290058672643689355563447068436487856091620904485284425810436252849619387480945169768740157820519260627912034623469146909848597138557076092985165402183984667313791374825752550323839656193916011556090573253490168799900176148620054729714665641622523721332742970770014975544357641650515532429214397761129163518623833400385801877934154336075710767595478500124874692915420612615506528410458684554001174796588489448048098633747600512572144231582881645149066887823681971099780491069493719308689954173666410955037738998045760352286291391823812071407355622241088591909258312936253637441027174353922101838463093324352196188444913248555134262775101527599241621659687883598412435043946137968000936682279066518650297117187288514476696897843765791128937712326057864304411827306863538738575242027103828352581356177794030040515453202696019501593846492053287326125440181064180577705513097759417773706037225208325071247410996610865342773063525139256487544964333154606605584154083203181637768657576057963721244104312644211518175851469276119218261634524974126436679950783106357451756222938754854832346140203715212636485247656868921715158460577595864642915012133784607665725942473465963961683866374039586176478402181090256357461410276986598112184484653431694889325659857852044467617681302808359216696206807910931583126417515780905988006766992384750258716401425700610779713140996812850822149771969831603912897844793934142456122030001629568395207772937790993480716076644098499602632896724762736845684623922276294467760790236258980889957373434181155606871124075747820038930322790481943927635524597008092673226435982340813228141598686891237724592285495566832638894345153885609927761445266785441855169706536476753960226928119165677941995940117335288485537670816066886358521596466198888553386821978724046643592081677504921650842975179845406895108237333815320157059326944241738593439151451142898093185469332888025559688562591418507514202486554191071919481744964278254592244405447707092696499109398424472526161685842349882610656683465686468621082341068227930003371334124922717204091498710391257571155583716243891380813595409195991851487661244524006517038720511740121905290849465108206429877896790551038787187808231276462197991575408196576279940284519765868923077465074562763507041718012541155372549587439999119491515324041563005764629974729198468944664596002158844575245250699593550622845041148234905756855008065921001927440701387068904824973853454941693173882199882472801936581539189646998960926988594429434268084215614872405739344453369798502624481568819478838186082212051308811077060246917511709541127996894130238901283056973808828449704325303414050275708063096776598858980868834689056277514159060727585486737253327455782199888793799634337431775225564224876382876719113124822741315849313735822899552637234526872835501957105518582442421145849258127684272642558226264367287282488327522205169635345387041915569190981578737699199870967562117920394831429272986817768681142966476801620462890694897081957896565537364787128382618737204008712189601334561267218465481651339489432807131569762408417390909777292287006080229316558013310887273113349147964112746276006502232540661257433293956783180240561007082573729444774378249079279809664318778765149780224915810692305810922119757329219737776500167251456047199555760683620818291246997543227991563300205843271276419704833986828045436520330720331872902463825306482119081391566080001487088259660784565182486810272276641539891377909021786660959586894883741180956551862575662891204473135675086797729543578973222544611435897657490284087901594417182295098838792288432902908570994476034772604422598927644721467663674014646429928472256209065788571870742283682556961934247840369960474902468345375170412218316928211158741036030110332731125749971510149630081402138956086656948009046148960559440644224307326060682638484883677529877091729274944007834278219059019175017225835426152436456740136011149458278750867503541377759054519732109745304762796192774368325490534992102024060389767473244140349695027994138591760389180304859454089543706460239968908760028196140055608826714805718739697168123064943258693837696244067180922033404655437531311364457283000674891498244475793067005212032979868450915578058889433025910108487763514483379672497753481702689087671300948282969822221992732145039780187140905888167966540260007726990513035310730355796999714082301529573872065657604569609113499840895856680213669595952027206962523907940054340527002296054654491031740976954598001433527851782129390629368018519046984891593500189366108805825963190593023664500813101098382724089267941890633759955980050604937296276779077256412832730835592248389046819337586340483011552913805209465536200919576232362745946351960954537753505433622962544208396890025453174548548708420908217527219425530124540023105830661764992303706531213329085658748357181543493124357631853940166588416377374477936250056145615060640809644258828199054347437078375461752552491869755072878024445221349644765386300166833840946940506950848871521271563771802788876871675304235928844889342840406620167280169514665317486309783902227541652406106440067937980284527988760789686283068323791738749703832407756550310222709004930067087617162402293609704626326969406868312698223384075462674829025482288373349101332831257773050835585244332079613120624520017042251441136434866457989420617300118843631986443902540815639183644435718292703487219662226552716114299014891070956228698660452083218102748027205477169706761159612805163245303861921084266664898302032502621727939776657534431286122793566184466929393967885248841142322845549271540215748176514555990415687940095396779859347823988729686807995284843157944059600977317636872666604480936632202364637113202252749564888635977975479880807611120350131942834421475611673519631440584718817452874813391837237208038804966361888823572510432923174782224278674000661418201299090968881163061280395575509608069318874128929270333435726457997873007822507600554900130830156381111956268844013342291838166173648665060685939383874293648650456621710958164458016482187741358917705815393952631180708541850944173226174944013319604506174497121966730748966693980068024380222550067129415125343056750418559199563245615077493815327184538919991160850009159980962200346465116017260276511518727337941668925465086750082009467947293944274219740613981522081843224516333631647647640043183195354717919175677291924594677021716636818943134595013496574394277062896069629833426694540911496995395950401492110861266035145002064322890729979860968756241321993264146348122854716728510383429276622789516346240854666843081119638188984573327053265228702838857949895118908742026895632331541081580887745369116006578692320585314467052984929567569923608803227715956198165260233758410489049408926590747428588766412452237286701943378758958863184577722753386319163959857879114894626245185018294833045041878957587485722013899384806145760194155099588706352810964946526556644881040826441386723997244819598161439337944633537116560554444062945150517559165909027013669425653590371075487573995841848798232108417507496078130820797873228816653757683999700898479921437634253795250693317394260747893372126640683186110111751232855851527796858799997990495466133840091602210960592866359711853156072035217468534967362461669137670704721526572397240323635477370998948882844237286667865163438674266434576742215380550597729617175233543022391603475797860815249146131667474343900540782835027899216571949626614929773374697509681096102936103313798419520584480162287698343672648722506144900022298693108476324731304114292674169363596332605382699439064769978564180710895942661257376082072288060144534703243195370398933709743083645212145314195247638219640326295100087716572727004069144344826002350261744763452660372327066995688360945423590887499568000303950200805689019726406622228223699248045985206102457683736834562410611243520157843139001052242299066679994017661323542874244862298682543126798172670073879360916835915959942852428386288733998858592822843155037891003998574446059866645128964058621830747677543420996882323770319751785032434820954502300242061149360121906098123461789226180298889095174338129228717346253890130867531455191885544968729064466589979259961571962767604650921687138450782925164582923770297236523014822651137993275086928529703918799244941453746968394727705873048425025345491450911010093149070581806569667252742663981525929449103456594697935020202280171604871689293965826925340065281718368409929367475562263785093031788304754131051546169560000526663906964769510249269683633527203607908419421078196994009248681788724494242698185269787415331163994663487654070803351201184318519931363111821964636128770848715258961996722616796875363234008083735949377724818577765114342511048283654363826342693573238520759684886294392993953524136823312159121696069516707459612460741592872728202634550656190938870349287038000193983592002219479639046467908859745121191647011218172496571146450553328072783725432614859928348766025417851338431123885508457323443472328000445205491567753828174904339403524669981977562900781626906620118107015662990128614670321090580234998113270154229846979899511179170589604818456755674916465758488267124917581538295222978214697401840633167007194626983658655735652118964939954041225959293545928855951726285068523143018619641461896059969402082138379035332147701980129887683273849327599543643313418725234335029215083817011146242406202490098398988258453334728861365945563427765681981103116251848481219566131688612521727892120406050626003060321926707669457960480492722024172168678615833852084530686765959883032246195584690730740323255933026950793223108212448573987231390245537964231970424626302597228053605615507620198276067498506656259603823658498659110883753949869186264091525328123735559541509372468734548908812953263991189791186927688350967520083178293768348284425383445039522985588470493880917644399343125036806203774476955719543654414008777324774875187483291290653099509281101033640903100162706757813859365819136197888803177992037788159205988616668091367496135993320680905817113956466334739610157940304217505266528538307744170590893209134166986623506803792381603132280282910944382148106979095999003948880995823726361927077463267054425022146840170852322932379391618636930253608266449858840368513623174199221068171197203539056274239911111836669274256003160032096444578575614415908929863876811098437776438203130816637599833331947458675091544406878571663287758367149926138721807895326194896823776269934685593766414718756428668333346439480822173696062099861282687003046918510912771567933804880167215665302677428753886403555963115432416788603331868082565070764353315482375527655789352346148555918739313334657269856874684721855169822744727707718887953666245737245840002760040028878163173243282644578261887093372827578477001138548354731618831921324194662148117753159971598456101287070965785504885909313129720029620815817572816761827143871269813372323250281963660241402315731822971399841133713998198967198947675379517021403150342997669254957837102219343238219887189773286970175391032943733407183351393321039499149523476965508621566119615453852554656681318425348941862770817052029735548987895881627276414711347686407593331044172464878085084729083982106030273341908497820301396205923341280962935126197264470287499838324187616730552528903707665945046822190940546370420729040212469440104557064960827078946793103046963233301580205233164035303193958433266414674752504187279947290216530790426244614743919331582779870919641979248416399751400772466863191369848461645913222821589918101393540827968215573411128720542321998182049874169380509507992414154455637138901301992982592903826309173575914916139281775055677549679425770719726958257349519804979636886900511145377487273554925009745666865321044166622160693243265444385450687334420079183598804845544218888662171661641866587801190936554886224994647983127887666688109423648911338263655840765602823638945365834690658706192263612721172045027184509480729538389611818748709571938992746032582836509471144530422578464508871648121110230807240268826337125463973388852474010013273561899684020821393266409284304281358264623700065784941926182903392913366817208334198087068301770738860486289583558912931646882115435136028905216305853111465643419868396620701228373474844176313317502733013655237769451553030166921273133986704066770423016605675763386042666301424995990463015484373521591772090023521392293282508420383447497093523390020753660521877707806807704004128558893014702304225308039306627579560624271462412200690085483507458173716475527325469158270045043190785076094480647068544310061214862006140538928460067257164098289989045093573799803219497464905605743466105784002356251930732129794986777999129802502205206285048112508187874391635780542353136184755656116871900158829930280168078969182613516130974672422618335303945883705203000076332795040812044704364363760898354930341052030568239307641615534954832016305027508948600807655527969256044451870227260182286658289566970491552154868209425616588100105742464086185265030064868782106304377199267920643061051349261121844205468896340911634832397049886868452676176693137132294927998872202801683872334035772786229999603509940286489310811455072065840688601435628493624540905665434812250771154231914065479766864033484807980110169839574206688352301070722796382366946947398014778674258184216233207046054738378670414638498113697330611490666042760940232576934295686766013424914253333705537901779375356361829965798435902967691150900466144226147307307621893931476806005064853089165929149104436602955545317682831385061201642792544431694684407520126566746298425963035188508587473968318944540182613660524226901787617766284314969731956995200233401864579432726344343253861606181360547286482587720524726460485772854952335148229618119782945869997447615172327495178067490418412786137712253347725380788342507257508234821131626276406941595381372492399824169084651388762043791779657654042876897908564757190387637934960666933187597517472354323148190791135633622776013244377310186615656900270817989212958523832695336381179496996853348537953833678153014927773271492277580348477412301818592620770404287206435945553605658120480060388106765732541914223368573842116193656322873541431884809888103099593093375798260054088403863763264363371265695732846650637427411864815188910573742013662667498458747389341398950928668187772304645177376907088040502441447007979999572208401779543116450800113806594195086630914558929791582954229988334068734860885446222709914250197832466181124681744918953860113242095932256978573932244514231979198327345954258633625712612228742162223261156203500625912159485775367228659152605517155917690518909283064378103881704364116684978010969175609339932354326511628927941923348500299125798759871360324810424395920569050793879347508549881787366019875144049774847202115209665178426480700435345757517523486340462824036894132203830521427184511910482300157458161368877875824438716348679955205259407392144088529576220247411574582548777512586688860842561843160689923213417945920101211045617703086257511606837573365088678217508404661011689890619485381910116652540835352676092989272044262538191562345201777976864767026854988059418195802449878409531123536824714606518953030251248488661698706409437375115723838016718034323290229046862400878313061327896351936586248553134196149329562467210042105510459491030000401918587156045465314312021543303389100227094570484141625211880840843142201008227967183425854271839304486706406529075605512514274300968618597386146436444971366666661229586325848177242935799564453248030857432351090881184275895432151453565730780787906234961467172015571030778185301061225876059205996057448952221832140741550200298373973462228198894049011070081859687380255777462137469917378900538312627887702219281506884545974255313179729355386446841772467646257300210429361189545276695128139054176646628766490667281041009446348673601520913929150853097315410726415384788570173841671290558316071948872643811146617286043117375365014198307915239827873439010402491872489612901087440419464971110084643559503268738576299209093187829555926225868021470915548139192693664021512014548374788898494925417510376349451415759913624242915942288384271218065979908300782996275033348590504454150916981683013074234439237939498237848517079877562857406527870517620684266889175126552635315140157507777315323181944974103433049144175267395581460526003855897827158661078745459862598371454782459689728780493300900666372673413622209541999620890945658053727522034154286691647014253805488771988879434026779921834336079234987723318141857119403219593574183320152965447201800263831316982708974646843930301443635388665567248007634317081728561295292139098756662228936101398499310094778391321355006021674941522163437091764824163445762755499379499347731844767199473885325047595243955981417259118625847103892726804842148557427618823678072827151984376288792926339517876505966989595130556817324981703916040500152064827336830499108873831694682508147634736241966055799942106031381757657413270552241489703138723745890677940229029902165226225564473044332990426855366680298079930691696293560404903912131539234214684327000525326895685948301668560952108576218067430647187979175367702120161465848436822069628661517604714614888242912668245346718581623339899019937261447789286389232301701005712586908613892037604102821669453662394562645600321006793125661886022059895527742196617760716402216973562785616899932606524861919654441785885835144040545202345955926726119103530663638395654987964527820278687298570815360850886676735489924653670320166471407193458941101621687388980881064369172113593161553661957991327485221857848631250717358370335315587830203335132961440321583199523752367919921933578297176356666881877733110950419479800524355915344848500320873710152415560324025048660084265340247300023030983526573542082610419642856338052705175589684955411847790294490309119441682467999501169349858772303409853995757350683347105579284098800023871536664223462699501200957097120569607890037080248918822584430184229220806255178871925391134411025786548396534040033873726857213709315885162154347012630069487935150959339563401875720300906643347364681270032832352191281336316645920174013360539212332415509120505758634558456808308776310998117654495422603830356364618221122533251738180092026690998010844316094397333990447645551205750133579356237074999282420079910915903250484165806556883863567322071870538940963062978899561905599961771479250028570888170893423309558701078603876456130763164360973132024860032069964284906879836131621164935861643648509874815461254994164930453279109871167462207763511588999713900190025771560835744964870256679643958873005107844991630357032863929790626604613886460602228854714486638396655373027267401574662441965786873607918404092238120120121622896423737419666403041432235555516777439440415916335012522983351904482161276739489535363678071308488629718822512999882553865882168102359164744353499124495992556479189471880260057178013648701080786504545647825009657679170599956822118078307889686218494846084198424063455986285246500275958257341495769424037363169375987811881375457905725245449808408711216199610750327557204036121059884245773008971660237759306046474099017841794597874299567588992762341485203174397097315494709690378907215618464396907204563503746839320609955584284743531210417785721657047139860752164329025746763872725176327126279353431691576643422513752375394979000628419540572403562591163785550873821024796135417206238166098786755948493929954829391841031700040708476949642430625654333883898776197307006575340975702168396798878386067272541591379205879876841707239628309545317718283172119646464846961880986830864239935501936668668147300215323395298148920884799951220339665474552672441734554793011980630641533592148451699427837675813062695319550025451226560892155046325513612125440330997080550588092218606198193077559592423636857457820211148348416126642573385480778477315067409084374078209316896764614222368864805307320332441263191178895744141186804001212389288694710287774028306337129130965343925733175717669459377569125427663221518716061399067875948562029828075228724686451161694767643751699665525145706290290447048497066147058819203257319767671964462592525780303436997928104324814946110897195332360422579172047139108648292436731425161665150773149953232743116078829767872727661823012430188234710652347471874088177232024997074828331184524532881769824856132573417081628901038915313338440738273640421126610118800233620662499210472794091843350747800484449860733548771345132231120455493676350567212341677287521850383466757359327041975824441340718499162610544537680532990247093111576129718416771365324937578472281166440863798010460343265280747892888458768140819162509792214842986925349686367919879283062322513718929483061903339028046339981114002764639626020878734380986563597614923005995144999173497985123296949331021422048289242847317925769668677685620882248875587643817852715233186173647685662174305059851407755866604158641133644304660931471441323126084205704210117314894725640088791451617448279413453937264008048004330203610011181227878097261720525238215634244959761380626263744798371382521828678445073079168774635442804107743990173382699188212197565728407067148549185055607270016602665577106241010413718989932375485468870487800701579481308743685250670460183924893036325674506702231952819194224686170788696750671441189977048572373404189357005335909823276970595982634843439197394837204370338146337534000539292301913828928030446931826618535809252040035024627843115307159380883117738549728911091200217545045977233690558038630942887949331831468555999411554032324993980943562247088419996879960021326254929766731557863218943068885543611125095218881052311339573316959680154541352354573020754226915523525895616400693021929607307848827185564314843420041324765047083751976390732868403319427438995684836848392313036256550129815914247433535601736861499183893424602066382504566963543877594960051892832873119710654626644746781534218103097632080301880561486575683166842976363110659390143321368325166507754658946377040582798741423396182456774944705077737587031766489157070448549497829532794510308868915764948346676786594415898972594547441363120736519830358015414998120165161661273452023624086232058286511728466494288486019239104695966223345040126098686123502359341379049079250515708048892500818281131335966239677348763013646285815182927550616539983795066454057837313738901323176380879994146542785953832032046674569706668230452526972120269503167122633170262030390154042928137178900301469207371168731117560864043060558457529238847602177144499776644592269152144499402283126212815890109415513310497179254525002698419246183836992247093899202626007770606013146895598148345875709857254257463204114012814643779672578531679992233075603502865783834631770948583070053391444345596325518792622984546211053776402837442732533633448765099740920703014522447572272216609606942209391509265500457871195893849520502735195423740943227430375051500486040001537149008224663846615905237512703104349968151881298948377006902509347109638210821277560554398205092913327085310413390908646152395567406546415447268326504548551790298753382898341191738980625173674998679691551365288456466096714244347308968610985306500353723956181870914810864571747285331447465434295218805251334220644295312481020722992956000219461641629402826057149245868888447876555045597897036200856079547537947781832240241023298656653858265494536091836454027933542428362763153821766244787000542210864339544644588684058965516728656431857062853874192301029405837370739107172845392863862049187431149134336721254400404453351487507465300133808692193887921073293426018789605192068011776438850186317699377764338648200634154210155599417150344813811343617223007964870578251206477345133573352014210333756274924659807690055604820906116421866152364057647488506994640378487068695516411178056141332084640849345927742328375277006591985188714230213112139964025254824606621148501034974612957712684953404291637080422170553480250319747210204961305772739175642405328943505177151756539594006430781982994712274912223083347615079416024584706006050543903007511693302941507651876932315113356479993111920960118518132092444161463807279383031458673733488972880035423579932601470692973579351404210052474049618659716876740870249390737697019858066025836906809304029791005635138643711291724625936245250361368835644012883197042558559269409880343777215433555594014929953960516171892899309425852394637539746670499717728468714808327895129600206789725339487571049274185794971621342195039523408437198728233061160022586509641855440826261038567174597228852540049600819101996144938808547852214263386299232383136794753189709157106222929770080261539095919493438775169200825953358174174899161161007862151124545020345926875713609252513370942091950038028423685043691220780267204845720108796155312227739779017476427858001806286941595807282233081045735771874219265089427664930844888667769609754860359677394132075179105408268440233863193102965345952818545276261795123720214164836902279040120114665778854589549929906537209057556426822655777418755355841806137125162700063489140206951370630042219638744911681264622375009385448625134822559069153188669656019383612721810308991390423041927580796970150197165716868224111451071749254182504607974960127027617580662690869167643938517131136803390858984433356059740434249546891618532040414399909043483995517214176978445377403995516237289868328660407312082177012862957984854842740641244369916455476705633210785380126279006374723345838222329629106867428520265164923536404094660712933474118106155791341328970030752902415070708974158256027033545629559128841570658396555519698002534271331809382566453828979551028478402130675054281769742151230230615213887631844402604238753098032289997271799846536250048822941411550907659238338521487793561090575874897669855965408614588416710553346528616820494797019898505087517203753784140159911817461768555215797408763172415711508581223998557718737814540225314792744437093378220468804187754063602760480477312161769694884918851894622978204943821894546366238525733914488726103223531716762959664297987889589900668645917222024923415168449589772546102052020577961243754593762976391534631270353390753055427578408178401677383483433743987748216329593338676807994661835164681982427112563343759891324054585018391505565750406733891137463106365229617429912741039932133465790018593393182955102970277836283809221524195319348003239250875942433890912212283380719776359747986396806369303585121761240866373107035256357720335010051600805394158029447968960843513722482788035988552089632368081488056351462184379809164714065398130880805093919715237489847816871767705686034420300224451959898657271589633068532547796490245543984290725558877612492511377509029756424557385440370734846215194937489927079739431426019320134270198903720873776527636056642599069494084021102687455342963279027775843381296722385073039560429656771068484928149827938304706087423373363697035490019805799401965782347934640214231055032513150121591226229959248136499123160762864322832403369141335917067913043380059020241132746878532111009294203659683260369789542175080987372974619137409078914091822627258499358482925449995969911696668250001130861021427232781628918818914378966408222056415497425750561227741708913245254458743126690621043307594923542923420010036734257304531944334833763639283635985010546273682574218627436340214346520622066802186861662822964886512643577748234986848001808254907390898241014177438495351424853372717653426796918533986429378832843114473112850678563769815202845261434800030641574452215503046387248946032267248547191458173159513902830319858074064555777698673295420852687182491395678357273549859053263912805382199335495130326250482220991011811697576233162740927615601381044201231559593913298636889047396317849050360429727519662832175966050792301089127371590056065849244428224337818978863878968377790959519520372967053801933585340609083157113322348617934779991366810696420384632416687071575952175255931830670923564613910915511509766912880464500683707788686653989645004480621933593976561857073556344307952482850646263102262353853059780250301285775201448036949846668864789932322510860845327435258712710527845864278726261577999965831186355217351963827461899090351163453863795753319343131088943217081182940776064382426183395763519956258867527461157454766083534375025396760888574015984175518370688304227146501642219609641837212340000889877660945648965369964532622597002098652886755923181776222319195778097488168137158637634001002311518275063640948906807666076923829405355754800045015106732293861730034959813030502093354518527519227035062295456280292139698092457307920468333784241080741829695999656528933348224482375755498335382763310512911587079609612713384466384271267906934730522315095445586625955229205914518623372275934892494855967304504464880853223703015536106477063416340542722846608327342830760236259962831707708177492019297416926179514156849116009654067263813259052334151499579670167893570286531720918562776300275745976848694287457502962361777317483319938890249345331662525873795929076678524577010042924572948072703883458758837623680777894427365020114024574914798326151796323347949449869368444987186626148999635966736639536602324342034209169155461457147672259952592865098851186004793097664647351916414197275733915931010643998565136566122210760873586816725910813649745558471567552951153688608475653231707435834611628272017360334405423533569946487138213062149726387306811740570199774435750431323667856727475967971663386520103469905485057467095587983019084231165863307988415538068465358849845614726755385870134936708939306648740607155586409151133231915686427250326111046201643964533680768807297370217388373945419008002985597229768984979180418688303709153523245632614705226604123344332460870945618540813931712979328821384766536646792166753422324863817406076180929866874741608826111407437104157388512206305252371379859220535388096687746902510362240051907626097082633368783618088377834965678910042517052204365459711102288294760042695127087637744420963635217918161819013461555869622171678335288888979211937902575022367387881939639209050807382875545234759989029774302575964077888817640796119975709226638531355991510590388657481818593613179683539339227108780529892365359344538650425200990405467593497257762938105468433383281781275679022570717002924923510450964718886388297410646323688226090988453227958978103566964716763428587026217528970126840960944414671635279016409229580801604729682952955223325985080448561285856502449330851770557141544474883646786964098054170197719866798786945375537187742336363500272163460552100563270969377491377269828028161124338374779142998000546057716402232814014960554515644013665566911619154947910193186013983344776811465648913257157093099781505273836981135409273068561349931789059283006520400507598033607299445813646886277345162313993761549749514552235816179066726153070951472201421630774467364863116918290115785406495343003617523811431741660675241355338359949072942581893844983153847934624260849676008785902065043623977926085413079591181274150103185207027453047542421211864346858005807004430538074932836615426736979787662954940917587828100355228705009271977669340567413581478893862224052990611383482881416637672802163602430679953440753132862817850421367607366615027141124067731002091229161179848763917784588353090303153409080715046909340718031067363410676654870095448866490161855823675994125564576959051122519126802782329879691938214380667806926873888828225452504796371545251952220916175204062429717509142200184947769533616392016587665732809079396832613382793309535521995379828739153815933096843987696051192044652599316015388477833044343442002661882475712963817781111332560109194709768749806353876975947018079082067170081379338319824107564448948218505808725605723343797232255119340677871224150931015000300359335608890101642713141330277797963218988168331887879707219659265698067303305994033564013322621531805148443521644040995295725002291261908135292177533424518154273699813723305237833076737839678324104940223016761015426022492042492431433447282605082165166303274196121599777441017118945934819316166891234997834975232074319158302709095676971170915772347704046656926964310445153299854015269315261058384300675126028584282046236211168533981741042003898580351292408137911548679166017350556603116616233500643236239274319225093011541692452725363347024478012765607383783332419950235461957307507308263652233793531654232748289748691269468405148851962786728914683034198714783965522375354075489847888137627058979177113297012685710789528095500571339984712920319127315049639654071172125983303317503390869151603468657616881747487997716626547144367694103325745853119107653302732812372026258242619274721224314176760028688528729581447733040160313231904727177083670929141613890984244048900611325893112249021759780743896743443010952918129743835195844796298743329961883146726571204709450184991173442605973001928182590359843876191533451982362424118023143280832778596478342934472110036297938367330902347127762403850793727604128857848478072115897419469610337841378934472989315666089829313350398708541602720612767907016252409100458776805779455011286776459987841392128030600446607751409304789457341026878482249540728277359028292844701530466550247743587034533269044028007680442515717257538775077223067415612673375755903990689904043819052243797652451232535162787220877653076476560568059786126005313932359569566902391853478128057998457450112855782941596656958551986323529715681389543330316783342622590999960329558040486770478146784602787059255067043527813680787021605000640114801366128041065282042104389455072153749085087094693326475116180036337224713690523168108416687903338919402981639055360009670015967035452991982900244711055646731932226673482101554052070299202292074550222400114979385092721774110009011627095119241484020218918161807499583965571078483495555688490922453087213146502832227101807020294218042093064177447245151426365815705380446810331579478462280656904623830315011161151055081833781404418426144708453147220303974492916736467851385909309023920975948023391919723895321349437587324698462100530955092092910173097921190999020616499568738774687005133895399155922374508361327798226807024629570803839400372894371261827083107854829549474022467950987657399876429315799735258499294755855402424446808590397925171844717224942886152959221117807223185471069540803092446470803408419819326037311494763396991006406696223405148406723907269996321222500229170609425526233117484114766845499328733152281476300262139085334403675535930679226689633486245580124153122931825339247501744364791779064522691126040276120989786324350244764214025505542506690378368476787696236883424155931214960020052597221839138448830563011561435508226235598228164591828407181972197322897264791077317449111643168683306966908465681694311159416154362908331067744424032127911009988507319369055681802063457437632453875472108740165640634906092958690240031927602502401592690908098212043511597261922567803467615249220121965892557545952049539100351986198493350406443460808392268702234617900260713408319095961316573879644153190306284259899680378233957991117404311179851362558796172694503450772792282698774029589061885700259074921744532442808944558537328401325984694083184809160788592414959257343131740726551863764344853255028321836272550319048021594269119460875519652670653731055308181278980706099340479141609833373454483372711116738418573780414755030591979254829098065839473644578867422164773865316487551622856719936800805877155574542337070977801940871440330643343470948391904426887806742492131436140249129276678360655208587849612045003367973719615577874535787490398731716658168627264067086692880292908349632113170043969096650494056734192389261670871319231650901797530403719560582781482019211450856613534213568471415708807733851311710225335422733571738519875234235990205111531723786940320139660519635061454737174028627968719753761110550506762230939111072962239597587963556299040852113518715942325025914107931412311978715768006012900788620854011360255022116149229533286576816056686267664718005522691696332902251505729934843229684364539166952258493126368041510193544671867936472764290927478487583346658361914386223285229894775654598991658311392964345312106405174910451541464352409772425675130809530467821592608135669859167503645583336599738524809960581695698587093093718939330954947238658568297238345686593609536864582779453138144305914036979148017545758973358652864187906965912848475614496878006811964145099552954914289695119421728078054332648281177563245382079555775034785121439239219018818433803833679325125455013200716800661829233364258954623070567735881151415416073831800487339889390354950436192830706018090407298926977198232839608662208805927762875366695209973140431803451086641717101043600836879894523809243652921428771489510382054779283371584656337916214288477548102881685234106037555825364296992816145550264394097635931499036280029364014330799189646477722843288415198812448946219422560184247703041135692213340045811027049070858411619398232551313772177336945117829253401835108955243792410632100651614065249669248406584838642707104363635106436137868248952634144160021670613277934522602686633996682060135848515728690889806862111266452267792115004578786022435360267145980606651342770216690395061043552637214948717651574864944534895746313174327948526672900618237519703490813372715949904953796825961270837249879771950044880301481023217782139205289843551264992283998657149141753985965693500606628292282422097048820497219999677190078944578628540491582625366050364891032873690824693870584582713143634844527526354494288912402634282557471705999916874947795811053227006516267731750649734625408274291840302837543604386748753109722713538200064951076946218315288902341475185933322494126191698475669263069658329172870916697881276166998189897165458411541347542534483770082771196022904766130654418854172997697177779337814999266549281441742460106014029472002362212666576977381858188414289926666976209661262025531601204960552327404858248644682885126552336677334854844167942168153558732551469161049793035802692142948251609593227060368285789186042785350668877954446920007938088709690550859055911008910522709118869816873151247002106641941236271466164039186545815081739256655385704317604440781195329948266768612403757557968787107291596787966172178142715720783657533842430230676848772545360735428590275035435420054200179449959329305923470788472080048018404494141120411379794119137207003449335038834166637460620528227043213837751289738087754201424488852086512615673540143302883960849169228228808690704886343661748249324308784568700206807318692465367162514116567856996163679623629819578194991440137594766905799001591637432653592942107077569577626639544059213550760345389991052177376704148806582625773547289464391847346727940511367472099714291003144681492363815233343361160170903884955182231131239788479945930799381852625713948509182903351281354192317940075027734253277992803727633610454850625833233964842504992723477480708246248353776038306936844788000576776034481315758517270204527404399410476146641104015149564900880431183333844173775203930576729393495656198775864693377663228776594689932106341889469370095619252071036293790502673090487356286399371116931590439861289752015747720096444251103217437541067074981682211149619604290704964523427324631325932451492301283544518980042173345902504040464806392270688469491265857641120222697410690961151615132634430002304801015029135247659778450580933887162763254959904067969552327371981618000697910005016877165234496701695717416996959343164863061673600658569592241217453235684696062673135583552948866033531103107906163228273152503857879760232750659738218445418966423763541356164187402542194983073167056562791526756181967844706450084928581341826511995364174075506255312137279240133198950839412053154570702392016601369603503964731645180143196657680094460191746478565476428455051440426928247635294145660378826165731415664165787150444789319350462861987840722600960535907178181781239181300736155781100638536513281031036564178536162256616901559207991256760851044201268700376944828992218420433091274236482366481991379745526740758627189077310405276710406616339709489287463088064994466019542144850987438424106687350641548154006752539170480148868342976564419611707228895654901656299784307953784280019641546172568717372725049753358169413239854635702563833123803155274611074366587836103403662302661095270552260935259480202137193164768152909678618971468781911076402374737962787862974085420646844095449439663978454858883123144205569199052468620913255097120276526822664179347278333725723198342863404378364050012366798032325537229502899952952567251483616053144989047810643368859878140805345779102928771947591858251525446962048551949545793687406220056505620567237006561826152183677882552444723602719464615580321546506164176719496055099833467887646298473478492595046955405111029349731153778924023583500766350680629747431166301494645103884642039087644744443133849784756838684548495539673245434397813354330778158545310974295222069587711011431431577614328380653385578512695455600927667081846289016889667788008591825371377368229960955481066884382354118338003839835585325962181587613538642288302688979943654556057363116106515990174828710997069505543648470655474561550499393655744839107016835727888941735801300270669349897793431808383401413874526423593440887293046830937592716112983352756143767466944191786657531389935699404951218497485371051913928123753602884817472339971134296055070331770021907325082194935543137836478621751339820810345781723021845084858352583496688774566939940531540931810131696497471910067321863019565640914779419443495628859916678664443848299278185727389692777365176525551371637024371462349964306423512871185967287980319122098662662173995179203332194417738277513517438927716063884673498992461112466942537805814857364955340618363220316310316049384353540602800584373229965749965093274394632944883734632596770314821352851877951972061977788130548260225487162226036192454400193262465355732768926946659773539961359489799199586684215436270676584762231670952784020036223792709321899214732300566093161904267197675275559080483197559308659615943648645560320767695624670661388942220730901553256459478845715593375812751872348974132996499097934798838848156214247941419903170188741376075926414653367556766391251400433715387120873836767532654188637272435356429218723268536002802184967997902587104103489373812957321053495484259283473368034373531302800971230642838810512649213447305768577095541924590601876762707070514579180935765173730182781530906224913556128484859762410035857516470909890565676931017773297408693468711982998536109572114264682475034681849337939683248024413563285404394765956072260979970282780167535754083149261897878806202521821596686502803839303282266319184242578869763426444767271152225626390594512656821265831775242083481123753048101207796141166293807121787958911240963100799074112531466927255116236605011917544953180539105601966736707573483729595143234545770102449419726600664806365837105164989042268748506136438050532343677340408934378382776760642172338753320312602509090522440189514947750820039650393121725231168170193471238814169661288485923100851695409454068212565425725168792183517445182398573380332840845887923348927820601992780019290795537287159630394916949143033156912544803493003898155261340506083645036150879562645696986853936684295368718385781013281995988572646355619660679893556847453917489332639126935173188633645668326475541661342291444913674296367326274880620343128595435851433606729833989978584250232381841783809775321288243244932193575292928631529777438702090513594512099109695479491842041347721630839097317103599674854658775451135639447767081052369918451679258061300932203448874652498743244705528305296481653327414137797858571390492626936268080209755596012436146873727642578193318441747051455708681596788547645620228409250617606694449212312626850002612524743167976788200114917749205080544753216489504847318674094493580854891592748056218307553372867071780524961639318472288145516196486673116697277117584335709110033242026137143149057150259997052852210618782425078310471518509584896390672311136710994747307639046022116074874637792829812430225595615243019715047531137161971545211448885082111521827544336879869295784674783411670143212513668481427509945958818013573238895186385981047285785089560886525360929850642205384878813107844383673109006908348501083049379148516285647609070142694840983060419731186001724897567906326459665629053337032838384650113685277616639626565584342463453331859413215856779373458798712267323921282919136230597277733410241967720203948325428254721210904099320939305280480735844651847912802019686594793058254342969995963401360466556260452095456342295459752806142650004184759969554964316983252407792363322181536179987035721299459387083263989367503213084436456187886895832174413326112095678848878065766280260087138857191505612811156651933044742890440244004779477763831102658944717101081427466930641873787428912463571493600740181922074483312745230605090097006138427617211799120447359730777416025462750728391734727244673863447175094434590074914236823877252296592316319462388337690942959367811495697572374335802296289209061836300767603080271211181387854375748836621231428432197274685409523020034578682266777597244555984381468750374346838512845851929258395784712477941479331400760023653803219503641698686466012960440987335147472897319723653847357842470626625527922474644423873587498985824925353727588003644250137311000433392005865717509968475114392599233019629300058745139939088952932027198335742830917284435318078628124328105151570538921546748656282396724340564403351416773583516622950717628434266980583969192890041949562835505034743108035052210189049080690158212754757358944590624959076662500424281702644307711677489110815007035024145873994059472116500106525403198290717774105527528326506228715637074852103902186636386091886880795500088244327544036426552816390745084348734949924170357317283474533484675167447869541354842221346694652433705895790244838904083892420973610288424993503649354922186039527714498287133670404479424909016516186312527453392663472023730572357738404368537741394621759216658047436648791479053008930985911084077876441409964685559406492669687312822545276316772490291568680510021784620533458990333548813013911908569038380347186073047379408934927589774066721184477882575835902731739629383760605408295799564487464618643411407781178245872811779903660653957515581171780843973552499465516912989708072629865940620116863270256164180061730217545715287547004174504383503126669180664517593255939666590299959473157347987459555601235195847130268302775246225429519840568711131633809331456072090608485607921841439516419575815155635936432629278443868759913472483561300573919856413383494925552302259003584770648157067835073375309097876869301511530207199547817574322205110538919504219808821894996194564602987091295936086374470637290658567948130762445608922682729722121059475374228686563633863722094540404316301635276689582254560047550496036739170261495029186102675673237459942565820794375823978286231300972937865979305751372685282136028130373791756731435752184876340700584397435157534003890878325062328354429491221164871850389034723749281269781128263864880081017742303038344095173552997369036027948247612269578057468719103688988336680216876926157714671541536814832172895460816440389659341747320172206807096219670473349230430566655020107408457938928503868761547380279796855633625500136995083853557119994591150460822967679711041837766879411017992577926534743035766270123214360454581927811103123513957653636545329690366247897896936500846237185897532872035407540173911250305074808508152690391362398752431425835734187372301463636807558458970792377329399500448326756555063944151852481663133468350487984985982747874555518772847678149251423184278042702020084012873156528233857276836577259999707170963375283413938697333131131493586334496274067075705989640419637037573923667946752146340705029061993251715709940982433667832761628959937995161495269806133041003470077392801758623810398863646426437472928569290939357034461626410836234487803331435474703585835841375962290239642642310673507338149311056487045196266690495386360453104654042669574316846857388844495048459512526836821216291103627307678315870440991302569231357172314978819095233907409791021763311605517317911626935818638790647896361446167063665147575321332317127710188309918314204716231209648971580482371357081283740014360747994966292843871882017781222017874414302783837171781372040426243481415389475363109323138618444039843538356184481648369650490711166089209193287303214427387487894277877166891621605723389038742942182031970959418203796535298243119768172493826944858204627135588518112552795819895356896207452238841859747529921365269674570404548503409967348266945759797555685259892865433229863165048796171333569581567256411098023684468338479260551031334262640929513475014844645292005666644646671969479314053571988772043875962101736419517136964928592026559421729523415108141223146248057909407312962518209668712692422085476386779339819860919041214031759015301561106273966418373103017558989763987386811901041551412865539825618674514400499831879277896602806771876713681098474004752645703091676396544394910789416273430673188033469548984012928652607271746546971975057143936763436352613861908203497752984836481581110176080016999729947034483324773799875286109797581837698590660294115512181261094737920036777006288864113363699770709197704306191102608567144533033177405044094640529286507959436133157746692767193060844098668896800138646693606203479446333828518125791177793326187070750624231948603549954276523774121171705167560047290338638164703258611942116741449185734453836626239188983486038948592944150616852937525212674706794645941808601503612589333292340826904779874900683788140766515074088031007261714098737315634159111851227607882209476502908513463693066656665855434543135936274207402529142708018685639481107940957900273313611174898414018319880502353744496930239438307885508265012909430064656024840894875286732138337430151615956861979612768375496194860272229589777538467597972891707964501697910295379990895327493199021787308270770827529374466186051189219813012622886302596991688797408725542087150815439571586458305363415152709068225106131946811400482122379257482272605507169948539020140071966386260361927933587187325466456511015628565114901627523712641508229618944411286453522223275382032429528192434685850081052077254879717972647348963450739531772587436657626551325750245404559545757233804808763005015336063786498525515959517688667266915618335593516813165503731580356229307822754009455120897141400377337651475860411961377450211641718348909355339525759385830705551146363014394771985701946448480950539894523176336577902493232286625432719295947110787168422655774109896222908104988433608664626260786761986440806682101308041183534082938336265119881485683332525661443951200568918495469204644424859053289035423740911592807359126009616064075972111935920606817820588076491194282320396682627546670457969096150183690878006853862470322228351823179561494257227689448691844944627711218763990878279750260504078450159369136126246236738614868252468963908157125279312486424283736808182992998304814829118792732685323373394766552131797519508938576038379469684665858817170319511217017368562410049942989713604313756790517620032937094958717585676362771839066383621746737877324071294796537735993795948031549102629012521007878589324138377948142614266100698854681555685541439481743219217545799791356561074779059345805884853112358189787316177504379886965962399744904558840129718410855174982666548186890319563573926477923742970060872406221965526452493867052757048007164323167741894626858668708440458310082059377981199409947139455590712465382844623065310395044967273715783754990508070995069834839033890363324503629312559302538359885774913419336491829665916025626739863637788440996094561788295465107963063440765597605930301215376524279960094920318635503720723145678444682146320012686478480946207601903880055881788053601235798265289087157662883102615654467750792509053372679442615457363271763263666361127699365996841234482601842385730732909289047491094103179429129201561170877779699053393669723588920578547009216112247529511903105189160374974379571823734060071079390867031260968837247262524001251356841796807780481150364965576440462645263870502760145745934659257318938692258707813111298222213887523171886828082106189313200681277885354883922839650747859858147976614102542797662889505251935996153731779811471578353288316064659742028676501609041010468948426878613874492742824489949595907646346646839510691623665631735060767288977428273085283518887695485432378003284432440519539905662885323777830341534660693546263840194382937515632631391397583335618681843991483049341690495203249986802492347073760530877831326084510656535612886495991788725944265963463246968127719461891415819686939544803154183478032695800698541511262893063888539347175732935120174728091884169801276226921575030860029902192521417715115798782724968073253310687946370555131387906768672264744725321538642433780709907735106533427823564981405347402750046341387773645575084222962737933076785538761116668971536443707827814781604098873343281770917579084959015139414973846420404562031294390076838982609643273087313613675633026838434972679451139146576792369500829893926353292108261962510950775840706997050658818382118086030641733496308155408505337766319798293769538494352996782377935304157156503413072591714963231467293560827701142226162043588882687164344985131705211128827490965634573965972829089629112963529927456555930093837537447527329973393373535856951229142441837024597631673008030773003007204333143784231032073104012426724320804681914358271622030450577063237146219857982832422577852715306995581255981486601297250250667321859703158081081785384433506061270837930974838378007274465795850539716947961867387159493950797704448908139932733425755343055196651287872141451739178065944355189279286160313121877634610007952412494166973652544411291259941001840067974247864868004677473549628808559560727045659738492610057100905024003007374375288130347502211553777051925167269911444613035005550090605021529921229812236168194890576419662012258348883626978053935984060948134751671067588670373168010620479815394230524088854565776247787483326443245559579200044070724907229753228090977151147223790623880630367406198953029903244003786144086925731716569270342057842642884876244035975779606182212247882812770760071916657553247871690875936491646402976854642507685605096132351427132437653294051079165080903699950006193210548099835998917593021103704889055975585076220242690546517167710647493502475297050360126642002699638020894327434808565033178704460408645109085427196944940212799387442831456426991133740853092666509826712723312526143697570775142765482039187552100725749128722570706068463537950775376235199988117981045998957256699948241683853693053454603781244651605212414647876339395196941164049769857054866767607353025632197355321777081110859259841106504904948810917050896472696987486931471438373305632318963884246462997909351674667620029265352069009568727076845717826995080925596212633575998291497211720957353413694688623295711115228245196115857257480515430116439948501451693313064267385583181525756124716709485743815891344366898604374149774351452217992074331184021051741245837544135776245865488211712646512119051701038436649638526539842927835588931084716233527852198862177927115932554727169383282106776980855876526515751183153055737903483329807456451930387904534108661369045695921260320870140523222751791170572858413399606179899469858192429826845580339045171661244254266603563807586964978861209964936733383888921049108712744597241558303914740588752589751626294436921742784380619171643324599859738026679387329864511387701278333634626185101782824739970700267746534306358617725586073158951532134332608233994694648703559041592404621346652027347957910807806762388125205361300049249724460089819014769287573254218987245664951064489971943201366136273364327609912907941165491671195228736855322455232013558042891410315099340974790178523477096142564631170305510821783841913986382206129650970063132154046866403449336433988810881302437205155538568078239275784661663114047357619567636525569751107860209767720809904667528066771057362450153007986573913214434833222793914729158801638680241973135210840439139111990660224724537180061598849716238043611048416769954441490327775219358318745912837953788728633336352203397001122438700475657004150653295449742574684121846556826325703337166462808459086422382457311126373176236094013993314579595784714924919683009968319412786889837514042546594482248315145500121174293350641466542399723166176035357061553955396814720740379854851950175493164420605100297961446129980366912347864664457380317881233982838155661881090297804840685652275724955905531701409921852552408048665447824912484374967491361081267527332004950674560032667597871396725392075571461734314456723421886831667361328671479066501850169180250566690469323504023060410965139324138252178554389474770629412884798394920534070623328402473411337830386565079807374036360958437627286081039891411797893726549128033605352456620857708578301787992675745954819431063676572127836694617249993228058379346076485952201396955903957601762484674557144835171452316579054194539080287064706412351241424131207149465593773534870852855267736735834221949892539282075909243378538212437990584122215115593718285638469892924157365497756959593722509655016814127252689612401349621605912161608558126620842866330486187996581386657786999460726219449633968904941291251371265983708140634083357548038716337295182006835835501522396888209243082265871606474717576451342497920742138887819474520013387520445388075927295669851381999997546845080637615941203133460451269022580715102680166276498954269625285726486799036200834835882720161765808173869958725945038784132937467502076221445552154980053940961407963807672205629544837608729833615229239827905489152641647427918494949373497679932612025331106426599059431881775610564666499118525143027436861577904433890146292504546866240403917359678946584373534543213444406971434581413683877007270028018173741625715558285462412922920983794396263831880512497445754955463932933630361872399531073987109078814403869623947164240189040702217111548312717525123083183178775994732518324225834821748412009228269480961383181850513303056921643914516341278372857590587419804966669885339604205155297695124430752967498309385625491474717887551839724480536605012657470438764117938632169826299225479639037835983886179680008929394663214699616972682338468367729888130092993667097445319620535609780268835041901378147498936769034322952141535639158289060656783196499598457798486537046928591796989820513538616588169360489933206677200377786929355249052839545426853736877429996364314563884192488863570047484309730300457428947332041698513065047276834042703988286517020375601879887643045048267488330610184484370079752209171124211978497383301851491487241234585524308171550600384745469074491257808036765382595953093916313883176486147927015452642267665672086545790730527445778839199428860107826675446376144791536125027109786136306622113643990907525346770415640800911488419958081781915010710882192482802501504069529705626407529294476657146816745130966482043698222063789846058723203246483178381649779307750927118676503470364895676741533034315037153305622827116714448591414853732889841956181118444424243727486597224522787344588297966126581245843526050332032561170490691582669947090521859724502995614037253587228621493041925465018066983892510925847708315510472746097647080331555196950606664932296366857537102238267455004521866700447966556556653423300841638581450276893256748057214550270283769284531093863574692943610578653590206613953215188847916431453599595268087677217792400134685738030651560148396100640676035310064753712725395505600319643484018534065538054535229891175654325315365710884715892209423916148842722145714253628848334900013865892032064568338015745226125478399926942816088394203579610416642020723726380354781615016568473193428881761494791368911918337912678309065838002417877129486308827893313913480435415894991511602049463314646601054364361971820411069476233917338631506956888807074386289160796827180150280660350464836641902488532050715387225062367267919393973673447238850420835783798160555754685564551773110896235061913714313131968539367614144500548381015890723871367010552421231157916260124787166286712478684310067964241075403373789045124308202533708744385969956677196613171285655186211548159022441555327371769132394662675452555631347183635581314634399119965684938253101397691300680495846533491741140930961619300843294437430043540573456083393054821754309389824642643614149559818250827158448406690430069542299363195632262501135806964877246788240170553945916775467141747979821932725574569193643154812772282467328691080561937079272688733202508348405608674661724357679489338733397175743534581163324324496793923735971506262461291809356019542062957885456554881968749258754460956707374203446471366642385782358390285877809379221105148372683943882420807738641622475289933938468695085791748073099658084874234797792037591441959604868489736532988863602545522021629196518679457269764391520906001109951183486570490385579802585289428965713200283828243436297374652603689129332488292116879350344665756984086658788845629892455709574581895418260465180044129433354315480983044293907797108392632065100017965833150462979812351626502365166844899537548349775273892711115541742771044554619306071602749048400202727891572236897975829547630763179304644511681652423983968283460766923619827347147436811556354548108607856958629198333245708047812805083666672773049817085014307986904848486606422086855094999252126695304448870193377970141789971671573274382466692262081713177507024551736112628753285107339190059455282504953945225696378093358774226275657180241165291731131347085734521517713727685686187807937606314487707201453809817453670748889533760622803776256014254296475947747862629847527840449460563219532511694343058042914275198086158975665927685457635418469964993450500638456836967035923752916144757008464273533594623008024033287300140094706949698350479450159306297125199268934507734247750435361488266498488139199988984505478144138196470411728968165802910827464653979155349287723838031918513881765086237552466729770850609713965017895853101469606188882497829140050485420846648090386411744081813364090365634107358639428683074821736270822447774496354278000535971490386149413649644490452356294482863299536105722715416673678631702780117897196382568700833489332874125564243667620695127423159359153475739931278567150237963471841567533108129286089838950660175281327589895741567745017744396502781195761166823153061959632729796881520377129514257391464528761196317943147126565692366051834251999616453768096185794120953929330406945743473161868456327661345767688448294250836120074300640284600945193451647373546391082593691136356685018280244422180345436291320410876560873067953812458709332222528120444754935328599154804721281607484677176639768421750869108867077626333600538652225562821276008130522792931642959887898840480390311921756767064643689677544749675751268042291543271545718929720490508778540832543734337726542469145600127421289263305713319632395256280774106692144156037143639284553888617999647667149504400341903900063589892473790000440682656480550623805586978008974048840250271630310066948044231065133891243336646361408131449231498677104851127891485583181122134816791569887820237139071375630255117824046850368865904619308863509414752510521155013766389769697987352681217774364884383383528178941701352694136941271609733387644076369199033627543747521137978730619892946955934494729625971200188259876759998954777393999460390582185403527746541921181036683667520830723975097533346650909457738845843699959788483654537473032201727690471545439024390037137500591927735803444698366073288698156233319436490212371077636638074944599901242463068802789353310698296342356739738864111692481681929603514838131444572345882071824968398117783770189825950168070963913944345779880535954016897904819172202471888897253919004718503569154556961814460199915802032005550563750205142541954458329556749052096824908468805583136395706187891377270109609094408823761659070351496912312050458023551889369526197140960182956024746958069981204317247699860068031108809286481687853968629153136761790932052250964725048533077698535815392768313015841254021922963987306665013856931089965494290634810937890794452884145530037096964768014088370626839781207833612865714219787260702974992651031644702253818229334347078190793919409106554062062240910615965620278909232032342313735929304596120996191048667843506469870849179502143476445638883757673403598214949935931797524368077854069859823910726315904496534320452097779711771152380827087281667729324432595838132583882734516122445258332446906323558547786110922272741430105985640507062678430432122797390770202943891846170516874498874396622041804486676532516077228061025417619714173113329895019946650617817506864749848215667200021961507594670621133058979211037229801056132716236882181118195899645279441727109964108519010071741884960441197927710135642336619555666115343400785735778399780504561026182305363581299319832989458438110774808896764482667349107845682956880154292524799002642009069420144874470840022212996979890129936098166046886158007388149701598768610036906588516158644668318497044362650759249168415732616133857051111038617916978924991981859524570852774328371125556481104327231007705906506561042096855471682407677841689663209078136779723462831143567160424668171691044828824636453619465226790163206237209130727892066643860810266732647797958026669302511362664181319813739328196595359125043555512257278517800426099841339012141983726207471261487806568372758284666976809797669566375669609482691888273097457440104381016892250346847890124912966356117148793000250545587774120997411064463308111867708398306359065033489240525973512288536119635374680303564566797294684450830203583961227800276997937269931611940972806120994086875371175137074504708647257849675846391245674491150086779938151742462608623052381150051645329054097228140137937460263107489256685274744693605257238070625295523073281973056652669425103792176587864271113623994697685168236777763944573273943055154124120266629713804979588489350381228721599545397750744194092436873172515392785007365529917639824951622581356488466918115090340808461846822439980455734214602583852220531835770562563467378387515921070549738848180003482595962174753586433961597387242664237698535474063763750157182720926240455049803556593001492723946095416492134774361670472444490715971162741369898111102244699457060849069001309890248228862755027302112794508003499092073932618965781582342042555404335007791209750835445664439685892739658962597607585478627223715578658650277921550478554753589399708670939625767145162205857169578903655513034168242717311250509289664674255797846363539915025669694059915504321026405025606244385837909034699491760459544741878787069802091960359703247507235726204102986447535739561064254083405488661150008731838780201260354221440701337384593766123224902917228498713654842800510888498947795042480171888730061473517308496515687333754876016366388701442890599051413716974336446473973812061453813856534883472773016242248502519795304949181403956982342290474149259238748081119675929576130066951894404185422215806151807090620896984118483841299473713739226612858156969682095670392062290774948203775915115497960127607326169865505830883455861526512764479116392014318738119885434931478529773763660701180388272955491763982867143080623853575972017046524135916110050316709108237808155360254120812091255133483752014843505686487175833861751749599928129089063490640912682617525983413595749624893204984216173502685826323711695904457795129229828777076923420788081331856674493675387821087206965293960859908242169298925514684362637192170659978608493065474633003841238369336943122008514336184768517828921123413882352997250198099319734564315485138393226204637596379999175939784080531121751439883912385623834458252180694099514466550462896625792688679029874135074964919226155662391982757150553129406623676479476471426682732370458485700579714479984954194369311389626529722728426911680880370867551080102827962707587108542314957646961076825221165754657159548226897584776579605256414190126780895145590727231894070278430447630924262946493555400663135366742978826486156230191675922735779699544994547310857081975683287129868041463445123537095172432844071784206500360304557752071919604875170260326425866022317298789735255000836689790008255080880137422789898946793343964003257638103141198758704912166347707376201802545901266014554582739017003352639841279145475166978970673430433731936981957359877969740542448715014698643221956521094191137512693562797139468378280301843075462621675434464209450178883158541746098717292339774345823177083312042384946543869390830347361007027837041050668160098662840638412954219164971174662462982398978781952926635794494228355249425816706547726631545985820592843040076511619702850265082805563526713938071639688406369252873123545089338252258927715581063448351558252178875136233294094396525930736677701603702593912523502491453010962992766487136858275184395315938890631584143153051937576851955551245041725815965799373180880017673855639237217739021505937384513144937815093331788296974406692209391309791950694704452150878239314062597914824178542138200187067261791929549721893789857768621136804067612005000014982849366216034008541982653925188256677606726632475210622566741137917682801090980102155049795433340448967671034828939412582808762314850361130967712082179711610824710600691404162926966485686974339414300616080930348739015001133815941524414633568093612313883995635345607941220919180190690005782045777360338943016933540752033665832936732939733775525537132615707527885286298683070392257910323476182851148964796228790075894907447900289956388366716399458477513501843188123534901829793486411336935978682199325059402846312009066333112529088366535249801954266219471868627718823595372537420539333654902263386280998611230274236032575538616385435304688926084331405247412193850793841171580542284255342443235325530225897112461945265617169118825953559691197323275498662859984717477212416124841263221401034508688325466014183369863436492022492877388825314840503079309550438805041269954385462915153086820523997254040697534048667152809956750634800155601443332603294540815257566081761024305437102330789670764168498016971999398090302965499486642008576047525222952706485906670840979819811598852517789269272035450931411564921937360038562939407434545725840229598773017977625927150068287052617036615862705964174287441664483364199310158109778869069583693070054937208370181903542699189601518446329056640494201533266832799365247049909350072906670327445100194401503553461703877476139799438690919008428080450519034049091348508479964895545768413382850918374313183570702709164593907911608516686489346731729441358004899691859468069517946084558506783474885840262839010588461840636856700849540511173801511420318712450862104303190154636508892434284001893452579146312589564268825612002022348169437936609598028173788598062533761774420575126950309864745734660192895475400478774636946967683100860754248423158274638806789943709276827042433128042967599800959201836189319477641159417656895652437718129582765959070164944333771955933773498607141991491130362211347277493782582199152347804840494372852862664501626472919771988083817512360314592489191281517109078596682247330347740456576152435129578570554929152577084504389549782230919467339888262266575131856779766337089420465798593632312850392310341889989357937488100958784481287222836393367894396357226575283740471109941025090996732757962656789748404763511295463620164115009137904451825765192528762800293146961893885959444559012580290041393431258440958358437219823347062725620948705465048663374363041760873846273207405807102692920261009025720132226529020241623022445459011857107331496545679267101243662399511834856273120261883674383134857437599377870324828948580502142423786847885956292569065933899125413669123575699039418659284940121897188298215335032320522540675366455457824910602577223381529035931054418876441262132154349028716144724989662666454364590109403401040607837896647449074722450379047077143886877104669825055923654658503475540945243297426562764026113870114710112966111134735911703714231288915692579743688869243798573825908277577003175257113446360565472817308553895952030801843326671303597774763005191906834046613781032035945209821615933550923020805866291989830398666447753905731275344513246235343113557052669167674607796618892069728774714131404322622413348377456554241550532012357810860003440882603620513182728575121980865604052116960049164900248566977581826856587348585290451262159256970574061780628435664075389927562025133134427089010359950576565761976579875877031270891467228040694829207987893012699347092226776884258419455112488909081771777430978981408723594475687861950186421634196416561471667650055600857343314013912349823834452914427624758510913263979326776818778317928362445623704802496890141769355302510452412703216766440660013425278147218499949958134321420686831825192688462165119735092720689054586152382657959855490575206813284202606883012630159727054260637137817861576585754455684745246627766351697489189632857856980152095960031371554195791580832328014644565067778916870867213741184705378553006919951180221535874389529878579062689512455559680214024048780380946591888300181478073645356167611540344669015802208249126196093102584731229364990117716190708822543152516581897857390496655433015533846029173380907422953873811187520664328240988667407300518185391174110119185311855739714191149104974310644175472479336346915344278493623544325489494901358193549815267991815516388836131903127886653621462071191030121826694808346714480202349338777835616964541510091274701089918757315798991083751095049083890901111585066186612878596437022701467167765993912697802645837149997630141475500065878018310817747513816821287804662765042669201634749487266187051412479489751350503289208984314207753232640003757438418074838623339713316681534540304493087437006087165908628112481155338931363456532345115793717414110738731682892034674529692113409669899199165030096740350338657302239721739604091934563985519997420163144777373950826355075298848352171728329740700555753134133552946286221212558782683242970785451013666211720902944663755430515444355945617172565623102858381466377304369100001568485081875156619348349239086039617121948997509132385788474916876498249573400299961924710871197542064512860319651566777123174603521719196826359777504519003825716269504681958779818192777308940050031111847010206490159335250694879646370478970954434770862752959383935686770013972750869616615282914807845417308416593486186902735364753683889921456502609107058945610525034927823823699061814743487979021834032524296664476266147962654539055402288608196851952628110388159923344232951794298010992736730976643297981906485988536215369333419509378812229330746076198122497215017960437437471793337807420212103887766625942734139000233004400891260743271091819652731093286339034449421877546280237183883312109293150938261880108271538370648267031715725839569331601863492717128601482419863022800325876475805440953128034493411659076076563344795854386514208017959570798458698963958974569942819134027892843967492572106657014795295535777469157945184223207375575468741034680078122360405483244944337802432812539422423601152694457477472798993072288116223826086811934884149096299685956919290446250227001991716536580687773323268798418862969412852715981698922780316107611402740829043297996115787199392960154463099844001118010805696395540028218694099301496754392079841781688937765798588108405523454292241406372821072185768974962591673036524677849002377815235244635607879032288292876260218033069807176178840297110906610505005330580757138293170660228961477335335670730506482653727091379484546744804269314569568891211319472247809071332474190679711187508932221935839809006426576033782629078964793527787843452693761337244943194091155479619995295606683714609184256697992560395102982409616817978810232702226629066495598274717207922437003456794954418785240608343284155971249357802918528763964509430320843327963099312611064332325943773089942360278229017344983317877901190199810060626829481842752802795623840928155602277466743604312608368568309089755383291383642081418855043945665930379625028798241032205339998026279045072717925036467224749446923797151899045646863598381405322426996345853740511116272855983999366885978656689112718527202489125884020108496670585738033426611182135249166969171081378864527505265675273292195987806421008181068859732039353135597914884913967069992639804207435764066347774444848088237463089337411617976177174237052616563062586419509596961287885242594279940571159354428759762606097479304587129872823866095587113448375186362725019706891618792397444323222115861256001691917191914724499328056082782066555276750243625597409182684399219689743160201994109872282368860506715553151147458112731744959607498309786912990910263621130132584237581316515993357766492347725746080168676103774117538789289955531534429613686441186074646065404644821609855946814300199340038825491590725333612721344845888025829745435258087996814319910671779721635016111542906841924991407695105771290401035706166722643034408062072467973656579391417441448998039318199210320678899458725916777736191173536448061638580089965400306714992454864883980953637535395509715429784079563068922609249688084008206485932990082599656418174015795149237804210898401448191706778036620725106205874966278509971524331979319214711790847645774598731105112939412918988699095499715559951577828397259851861876876955784408207020081817641680522561131872237617274301997674017392799154966062381662321102907791157852672248188969324931030949939513221180712778207601139433529531347568283495622297363686924934400688512296733442917969537378276796601254031808045277495400533424001521948642790487881071170842814766874745333006497171455887757079939383258435742484832212899962720426270064321803552518894493175501683752595136641659278413783426762802642553499920120922007012550434074771092447858016476115107737197690806091546488850675392426503387379607845325467896381249576235818793037628691646365907666730325319379471628968087019155665632548359264303819446412581997429443119989427969784703523197151364706485410039707051167762486040339049852338969149102413419967391331370253213045728996247737515280522652971942434653255971955071818180672412238123025779949709816051611411131292246070377572188313592558212891784029003373823585283988152281227490075442976171421774016424037948267036954032153695764700491013526064684896628396358560482555146579039103231683723998276408821319498085042717058212669641730379349658886200042785504420606269846574760342946126341096433048906023535480650916334389051937053943490905069509971690751562640931507498011916282868401452211458583728849759432260469816871268578762989117842826419525241355998262892570920176456553119151989875628855149510896763656695108510277479940250662389625193291340239950451982691698598534696470933770291969524955549254550808849001097929393040616601694883555017692968970953930823730799148429394990372742446594721594099059170929097133207656958810007371601945744522116927350969436355290364105309896068617298409505928284973244707753397067662565497700834163169552722693144304475019796651677152065662648786868609633904143887021638933176014755815441824991787301841309506810319560849143618006958827968855612723348143464683677335755612762953030695274881410151102647013636950337789610661440050625850696706882276085322623639265549167886210471240579286129244401094133305675587708694137397924727713568913747785087316334761194743863303135360836414126919347849325247381644336021426375306181875306381682942377468742722815687159012712008852142120569972653497730975952148587732580092445590193560608729074980935620420964666126163861519873579331620283727830118895784661134264961581435120112083361752710611267403190369573913696053204106409071052475523400007216837657795018174046303638982362937329997513265910729420918116332999276682398463026635917363096835923721185355985953143796993752262986483963675952835247467883474902209866546323648145813058287397853189586107621553229748675483043706743757508712964425195476938744391240425106479699791794864200031352706072252451359830010691628593367358189787411778267760337082275232041158328369354025349739198422975439257592368335156239474094305176426495128818866154086623032414984490397011100389796554065877022375772390026021623468468697062169348940605221487640036107237872683212073303740600757894905499755812103693561327028086036774089924370953883581651052608246576669181512526979937036334527394189742248062678057607827657566233999887677567553033722422534980178644780007000365741044433021321697691223719589604647867076615460005315111410845324815614380631198692946453193042467891295124265289974569304650535640590717896473635250264831142570187663157502097061633522859876661763355707417696700292434442553983504573115388986188703070019628866907875677641041062124219851114902163093644320096581752453807871415316509908497542803234915309763781179680361458098864372569491158441359764818285025989086578965096652725575804861015819789603182931737455786923247738860247894084233973604487591013685937642201034024302789815359487706895166992424506881996881490915124860287587732321388973518468361477416628160866953312523067852317619940601570273605592822791598781342592622674789573606139125609193262185815782940749375616402799629182106431588635063186223109606546449397253359342762053770545423498766265830618581475971622360115620389822841207048935265920617858941961627828182933408327040701754849219306724580962607842023255116928767010040134653273218949737120340539462953375321068836164556575559428752027446572987287334472338505440414852145718152828941310441917646445292951456676336266951038082197204032305729269615553667087371421954947250623233418896706055768667777112896033860325604472818579188287023617153324849247707953450771019352487272085501513213357609707499271285446235919297864417380595301700173177841232120837321035494822452385670369653325228043354984610233782234618776095834011832860271083624517948192276186951764256404689957380359830382781985229518938736203992639533867192029928926263898528745582444441888248377236610197024677929864910985500616479888690198595148272697215906135017855286422493808809020701990339614080845146829837338838255324910329747063410689786914341951225017549849020876288993241919622015825216650510851502762434395839231604078565696323016650530973197031706415043955816160852714781413240578164225090776514089985979557260505044750260099141252441170918007057558550322699099946283456458365162612756680103869020413107805149036846618417204098343946009704569524476194598347150967682630411819593495494978488933145463537283523611740396073098211373645118378107115371598283243496117536368743965455966249783616629482736075193919037669216733801631550639297352734976810992755328683621675092870550598068617083074633426160800734874023990669677087150077742053124496061523783551726204079374638021331481371084591955186791790920331546559039174282391088796182182972833965761948760526770822471731035761102854637685805984012771049556368596212841446174151366533669504671852270908081251899421542551434926585790109323955731408272637809572782518771286158574311671674532589208583640499967226831788549380534107111942542542070822563718670453278286268745741143233864107363465168100229276695205409118764327345360491583378176065670499202282052517244551453585749447694504744211239901639656883251463395578901535804072116342585560896649347750235448171988360039601467111367942733935772759739096660065675079458359449632708094204546493003434698895526355703328760877815193052919918922568730252993538105134071524616164854807860750733235023137998637450808535553031219109949388153452325709679458966419572062929823774710856767759757799519046162555806059056975304031711517740159970480949427541030383833977697342892697500704450367567639878354291927463919932739265538894097114034521931998752533619122913235865317069310715029277038028331131821069923729419007044173967064989011802294399717730419109330681772013530465485907972423576023939401201618978529187722570446505737857748739440455956465677830632669110706509935806695952838755433121998547937232039563250905354455878606139176072325793960673508473424581148762042136460372523877909402375176921906223944521719804324802557540443698004126843484243266608734385535041602268445095863443295753625856060525140292317337488994592319858286040476981794884322666761137195851494307816391935037946935695491085056200743789697346319254275731617035268790423219086527439718008378649793621293337640320472190697998043918327641034753615338951861998158270701166713658628972602384174343341414559840951062930434240288595079532143745999262752145535048227174953580809847432967178219634837690141424710808558818590633351501191746822730556679889952074251561909690124583829211098715367859546216610665531644737227882894695298231597687528277698225325094362500574528025712857229299360410222522678225795740894218966204924073404235546502851600330054847994703715520917083206801280725126596210426634679732815417054214260786764161439419493704152626318553376341745003665727821470214299002305689981316264886789722348629777112982620835011662305818558916059499664995526717382109841691913307152060286348707369012131161843667726369078330797105017854789247183211593659759586980782130035124658832949504524356887326901287234126914571914704190720215007169719537352087185432165352115511902852533173313779574788186907433323790223820220230353223506782570829199635994940290602044322120395476881865542674061003761989008495017482395373272506603718078882417747554048887287484546698139300094840704429603214497508245427122286020237967880110360640115474141601332523777410888830297626076256016100974073978941286627806839030108096289786335173939821328349740354825801183548483812511628664357239904069192287490411411669632693442270024192796705128240324028212189297875924696759544847475286907763030848707341635867770992082999510404536842080118436702243808224813891898294801374940527845916154362032312711424596383240575361822465031791290895862304655599445616865656135785434076177368280402446531951781932962771580027372755567306988170135168690441110598872631052305966412994426911105873296132316404744862157657480975661995958417881310157255243541515009971467419093532170680920769080692043758210340633441783560922659927388840743331275641194631111319353929236175409481753550703084110942343934431686985276910602391232837311962071243991055494538135088501606572715377073749866291536076455627984446378409819519982523651252657147843584858328084867379168916529376893045777366958521281098478788073762164275635508350344515197288455691999265556121413380652489905901232374647662111756364234483563172009567597341163664448807802819321279671274467893075346364342849468697251624753090405175495246572928262827096092317978831107587822179063242633052853461825152569845982895698483298845305446198777041928369802971686004991084368727326285897672031791486896183337217345278394924656566464373182905137812427441957581511750718388685592852094766164681502531885486281754522607174172077997215955856579371421170832993274479468128823362889747581201554229968785559430118553292060801607073128589346179828202196019276636646990904710401683527428805626962368573671708158199245313806814491903435654612283266287298822232555380872765455224587361817602485289107522395474908075476807937327440291742456167442417253356708069954494498325194852817045191932915219698741189187116189360700403862860842281585185194491048195147093634147963716279048237038539368863565254877326139132980780896702797479873858098235699784946526332018603692636736893132538813794443456402435839415984185285610223873232904715634082618383506535823104870731061162353474385238637113069849115583126528051641475935083473786245407337402319312892426663161382276028029414637829394532656378879092421910997069250300190162572179813690228508296730474714340982203794932153956839208373862579638051449154858706700167785690574300281941609055824583612026955353481381449399172823942306455632760082204397068373239167451406501122468791091408183292740633879088053695677234883691736987620120253069812058875029423867037986597543473480893120975763733250427824582167353250908537889870996689088973640518358913214625619564399737449768692841372473269122678884783345479460662654900752162601733804295341159259060933625373386741529108024150436378839673269485807925506872691933074589549371104467280188492922552738572394127510042521527372225971379281009694239556474819062500441890896053072147541185799879562071065630689551483207022166317698691425336929379671808763257743783632189250068941820426976406976133602871464099405835948895211507112639338826089682832039478548588084407681919301902578751489350035915124269030594890343166587494569776668109705540099096472118137500113069004307650683518073656277272863917836680892377871829970488738029014330849246715761941110599406077397607225006792501992123949704777415651234233270727828048230492230409105382023348184327013636411301016424203816873981841476619054031100427852795448317186830862179762645797131693315093919739455038913088306327366372269545679102243388364616873266512473825566902038965443183815163657948080428086123739170368557711585820179288477660164387420800459923290405137915179725061115486019939605417054380601891128406414959955649419463235606720893030681415360720695606124488935034478394768449429969221554602499851370595347585193424156856686887681688499637815174206750569852541163377510919763250654079652131593616667223095792596191496109452581970295250005088154095102414211887245080657142921619433250611017694388439765005052541358692474199867268901550634228357744284138058194883958130114366258882012332995525191928662658266018643096384047200383998266911775783824477189769078039909253694650692647104289712992838086136839711181099859786730995282363297231364218860061623003005136479529692153901352284316765677133310871419160269119629840998349267289329447423075560981509053223796765723442305734441868965654049719258512286200066102483907813043000148653959207116274327771899946830096372448797815450308808674896229451304300181882567128238383808099806412494808092259015645817378674991127497321642990003368834840223922315384618961848078875546807014595614039517125064450334667334387011982073828145056068121750749711147717424694496235616655706551264545156052019391395197096134337500666581336129115644341865202585943849540655007480689970285984994396400241812752269220057944418723731466529308615103176444733794188118311066824595443220679690112919642127227001305197392885406950097910283868176984332594338909788199388639153619000661657345732747221989911919288005209546973546980505169372344777488689628148341494156263939971657405319918967068088071759531080992364401363527485199132631669371240342718912152644116682829906656969354893324513128302544525293711297979912316675528117486611213912146052961457922244080561286861447477770099414095709415454680335948780486984446920419556399833829955418147848519006193866730353888623765874331010087262670624646921353498308185316365902574531852890037755728168743145790437272363889230897757636874314530691231048839218466587550664594303125224178529143704537977898048758158400079211554919674206999485073868590109111484902817532497881322903914851554178889341727325546665001174587594376752368310870825369306844454289443515928357972314194651454454505251127540405122453428224547667744517937802674553544500420815619596913247677919661341952668652274575306205023467844805205672154720092266396961539549154034845974491136569415095333242608910668050791740515681553148173800499553325128416398415342435386207937408509646882938735587539568426200279056350838808123269435114705497780623805547708021618698734751682370559908956613139511143562907046519980930044413145436138827041604727213944143815045742292061790441981280235449476828866122805794097998055767321247509630173439215760942694676664283301891423621039764669416374872554916360203313900768824697226955593278603852435075835129020478789121306193957097727790207389284362078112466704067340295923880233022659833563600355894002449870731295660328330058080129033361403005727278594281891577420342977016085521400186621872082006197231815469009886067367847302595414711914979467196779595421891984480220040489009882017530558756951405578860102437580144478357632905139436770620829030910008322599462361512711335894201317526108430220778968026645840590106082558446145084763052011064094343508093488190295451142903545525400686419599562668803027038287589985720192888647368416871512967392980004693745082603261056695242206816178138195404506380870803272170316289845265992742644637806559049981594112211265102222734099204456724850393613988519441477510142656527765152209611125420995350029457316483717685261232386601169193828222050501737018910820202144403273093094260467390560365169490811228056340334141473469720549139069825470371845640933441905903175657643960494135116385337991861783309146250715975029464775908642607930583429063345124506929552962682301995871549653799251164873522531156123891390500160603082477539206990618144664103887849953170136057585732751239110182392649260696540007607619060375081345015222874520764604539692842166455475863142707239722737862629220573375017879679311300351535874348528873525571889469233601443383340335646548740142058621536498074306867965760777483279124265738033691759131345018666535745845820605196046842622405844737406765793369700781413957296785402975122194929314640889576308315775982282854527986026989257026433706852123857085183431733912074788310640020714530430380777006575290018032192702933471691471598030281274083197448439252280593955668980903948158289234366786761134970517467260625812259481728501987788019899857378426662861004194357022097584413412574330897274587041033257101999709924057526228048481357264972928039714267037051766683684387565991091111331774006745367350333401662729234116180612543131925209122794985149532632922479393691427967739974360385942075791552893699643229924246937945386618385784105549168965341286261577489715644562139162757270874330436646857054652323518310081485333226846019046005331871431879556977465617193032688587774811575607380792495526939166615176194565261583984462552158156329987644629569394307480754564435406070050027440300909148791519293416951197939959697392651625676779917691107270400343718473131773911493062803072306331561882385256575930719870756851534186405664551826836446992041829060698400894660129417469545117436718481967792667068958006092896313811197062339915796999978715292918421405250494554024029485538499917816392640526027003167268306788295552308804689766941994333520975641184406191913257397643995324544560902889023774705566371881522566842233671362231766638598572710420381493225131832479030775228939693882041238819834090794219499743661352236581571551388158787184438592223870063939642729471677382516555507832438891250189064803063578117739073680440358536117729497629446873996039898262905622067062881123508329097923874272688694134948131253922346834314521012108743375173273252326926493265500681756274024267877422475839175084594858896609015968965786367064799821355779088700216840327454926664341754137975415886289632735208256380097646520935455095524801073521385092745132282982797410839441169399646619144076594880048482798916230993987751133968695263088886525657450644442057733333068478936874936818227532543486593200799366804778931394001771132850140256137599711387927831273062881369195709002286457288606286907594509069933060375723955221292104246976677170781470963543804395073538027608313542452569114074472920238517453558923431803327949009417470848203987545667018174889480432912625790022759630949878628381637279225601845652590930530300130469243288731332158975234600860597769259848083985555942406532451077990889186277646598733172837770817188169014830183562597305012305067821342084821769046376618756461649352354665259866529004076630864196313086873911865053179883800877211360960013533965804085576024699670760154446550982467024455477948812858938060223144691840730193830560443490249535833413765070312617171749912217158323101532957414520465659856239529273907282355022387903983642581102771296764696922295369330866394809700872078453567095717156230837769468338562576411011419332167319173805628034649308755308241839170909028536958592125484513945760102635954386315754053186380140018332136246133779631296821044280486088063686749028445185210231785799373818118265427657977274510514722833599879400547640880218597177105882545892774559870735305755262194319675192870942014123386112894873048082012635282866017938474998582757482836146923822424208840119768452195365590263324742720670679294184608874393318649598087160200456365395291473038181040996405927657596105693584911850653143727746264794660630178294186660464391861678152271570874807653420197861156613187404049373895280920733744966699556591997690300003636741925003423034589588851923581797538450380898872109072864695495114989909377147871077244127659127783675322040758416258503796675471204241883011767574398012909399943274605862126099476338516090515447796197849639077990581505618950122990438968459466330400139647021007421075519170730376266941664030539628206431117602276245734156702741307318782762604030872618885631462251653238530776797507713307872996954963878462203383860581905486957377600782071629576281373745675282797771715567639094535715186377567498423315272284495657646374507246911861618780015794364217136644477065630700775163919472542538330739793174020953613503342779346134657636093282372408964876091412393826979536590533474867076470905074642866785810018837038413023234780524255616166613844876964133041383989587226826993415919888169940067357247781000901198870435046546450443529659198146216912373988987093429025135274659369824680709920737247258273276016894397758569911085496125272203409138167027474458395787018430517680266531118921443818539463365967953545991685510350804100183567320158398320377413590844438238375879955864796918778089931647604532391523530811782321743921856733623175990255717927257724348974694818698897833530504785435280485985487983323236556673584365658354775205891907528910419145605183688216440307504614634133397245038094107623070255966102598671597757301181423712899358051825643831299642441024211747014695052240166165961682222069760029773364423435868701212967064218490688666782182307280686724381436434539366031009599682407288162843586465002470574111951183484776909226581215551607874083662643313451853506387039517585578620760197607727547907679476631325742549597798040325553819148929908107711967526991418891637089725934921851459103377771239557001996448320739286627837715476732547362431285669796996037558528030721325390886757964076013153436630177942131631541333646233293304393049416982748100893933332596161636978557961094432902375088679644157601654051475040076350463982523520816714997719388144836750866231264382815279712524023910678002087993466492997346776678917461510717920377061521399203410381119769329303442811859691971539139892300186211313384638774053572876907754225609544344781214467738096101197018124749990230489413130513586094790945092228314883357107315633280985816622678649657027216090448564899963044470799478308315363148056329350074844043185051067264958590259540446643717054009698070526657162715064713160851867020293191008187105016720380206285724741996362680242130535811697229397481832058436757584960180416174333723718911629662109758503928319039971779086070934340160935838074182438071592977249175825148751734479833878667588237893983437066017765292402071504253233144186936119954706831117969826136614165987851591290318831592141103229701418154135003540648402242640531172592464069659978035483215747296048651093630481638269059234042368140335034903894112397615024548510003713766911910526313914566965126906490588739888561227353089656152145562972006466456992434990289826288115014281232485948511251659070331493584827641513863360724020309689883665254971168243568603658760673348609201710775081221437569175130698176015457123556862091121877213938699757636474149301465721729993548726635741111275384720803267097502109328466798093448675194493385552244369415289681336747028067715248201433204521716943760471397686128245935582795036507443257615240118822336277741943958468953260694008439040169054131668652239709579524900868840261863208083107677157409972049246740083104770668204674204577301463786850145481322702600017105208174733703197489605794570363296262638750055901513872224056975184063104117737427500921131235460714816906619796840569442639802364885771329184268979937026895784565461859510252002909300464775039463491410190722146174805742387433974597583414883592935091137270493671797279141528233968615674080270937114677913513610597491346012973147677031980043434867715076157330791659413309884712810074445838480343481445865039707708884066048785030621895897905983015672320632681623632266118875488257445241783808125062749921462153737765407709337815940869810870919202277621419257931347763816492435470936272731969027474504945284148097741783964437377088031216558440231833183949624707136399727511887817066597813270209466278476844187053736777435126689285114338612053683658869631525878660650303286674336371040556654413365185186783531543786599816884101944171233281800575266369013293874726594876931280451871053622417878074491770867009946305515846100988314475614036685486543681705801068887142545526675324711378974916170291102767206637654106144538837739926168567506532723713149723554272832323988840012274626413978937165046599846816334326177219196209448711817728289910362209615215988265024653728122678816141479387386938043317403333791599579714995682368190319568233639046974390987934033619350110836913252466478646398007694576745877476840132568017228811657109443690681441121167485156357730618609496274789402216152955494872066877136022313270354711270920038639152107431203269463656423021531922288569664820359586674330085944862935104970453177621606304889574149435289562693078185349493684590471650131898836305354831587718315833220507748658388459549713468154806338846760133353021396362668708101977075398820688352268443920910261738203394438235484350562182297030892743429948877075297697691938464961195392717492458467157499020900848039008338109812636885161030124175229938102881653538178705813281270180078197517638544493144422570745903494466640044978571825153965960503221013022462521545690768486145573385099689523715436301505659575320963960666652113021962287189927613795726591751762394398425638981730869682345458908621777010349900547653171374973075220948367178497697971496282502482638203785105393671648172460878006079761647933515577501879455700597075699740772000288115619742861311189876839288493235161965635400061981599689460685740742008483078898213036050563119228731199499353224255479479872452833359540761903639240091548828361947175266050198029967543761505732769568640854587625204615333588430674733429615994935614267688652522223861474621283332864191022381730515619328376798452970932733652703927619154736394358331483466711385790303439495560363679859492908007859127198511646088894467224103049817397666361481543765110785505850632661777077878819193475798025346516974363799850210996359956975959754380568619510166887449554201412477110985644967685365688976901805720045208003613199541456236638424335336552802557149133057116144893032150115768947260942335228855981043125292522285829802276977031967119590697850417348103463878545988620533527873208419354106173391051388820085066917307887579996603511731073617476288553044210334047929393191414548097315682185228779765607149439751815932228605199115567884875010917978394259374397512514679970188009837065735366514126065286500099321662870177715446024826874773449973152292188050307111375665743269199600643905311279840013494407236091030383114471558327266663333990725144601981492909440578163636769210118320592185381827044115963928874398677134816611248781362116164653182282638122454684060632993387028676434533696893507665982319960067511787901188190422071012674191563201971022869552968101795238815184286844504951136761149171242866120051324926511914775585133560805813041550358542158269128352162110129935274317904456721049493742548894095207927069414941367208614802228240602235543329733431386444605033728394600101610635799192107990686285961314845707425648406053276741869662040546933161524457799063482188292735371660830367264691346362101523553356364576228065730239883507978737195843604877318029353343482630559605308408538349031500396862296464544902404489543202844670713663332386090530530493536288577075933489899843875322148739081899333188226055266945829256993574068018811483029124099079343433179094855300945738886821242973227543762322957268400612970018913579858980848245888086687334103862401016455417219074397607331028680007828514020989928304441613923622213887500944354507426206637039509464809591089391437810727689012583305064551433773227937943655531066698552580035098823991177835745283672266762387728333199603340268536633516958249421655374121236428519226493491811861624038595204265290531837668138244570458620436890729784501668045251595540229691529058053387560177592936595149699559591816240521807485457462149163266738815370522536269853236776380252715690375034108762656743205799336545616956428650032104185993034627073169238240348102513683238287136389322232590395437798827156097179476732367822095895048535650631677334049186894672711882731055712764247020340830447476225625516211760545930681279931983916199512906995640845376745133952961947399557070100361387389818406902372220881902747668513823803976619931617981060230705372339648371104589684143265159148456534950072505271355154620440176877161071601453035406491589882440243759590196650429249096736674938176378693580222494011141015896736995178983879156282081606077962408890762721892968792860888610011600326110785813560663947328111402307392095892394354125847969832465037216099334663677757718781173007622452119390588660019846341201205393095560682899309204653332821647441224003668034095439917226783883372856181645897423178668302591597566761624705615477983907298083457501385959234008802980118405203620222106562654620761274088886557352730767177774119625700804905642969525024500980676011215841637370727733754999519444271180554392357605180900899703274415065962501081194491423630175743614628110874606062085887738935726016800160895325697384278458838688730760262350627406842203267535144621696508671844341411763235329171320819749606976972461126769649549329847837111641099632565215517763167012687842969618548379019973930270514975606727530691955288000138587401144541897993183085668842209155827764130263350962855607796139187297747821951070697601785074561390547488811951931479851842082568083675293369627854214580055886557953193425876858666697076666968197603228107351712801972244158703451759193882979427318071264116500762026721578006400014993686254473528413333206701674027102723773007928860621845902527154946999267253372107992581274001024171110344754556957293265030129857027660437263150235609523719115215563689124357351011160367262322316457943887143285952607056312772415715411509538813386438524758372449079707839793956483604415941070223828456050012209331682723829869300648471982715518940154581128587612993775447707740380566837630347935028076671829362717769289570505889872179530211140844051758655684009048944312103483328243164006508657370379635292692689299017036471021075816548287300775818524560298512984086086617170761805464910365149743995009027065828258605473769657121621970435664912803558954067912073765386006914707261507445809669802513697592977223864085105492015454288827296153286790687449498263000125702154933750198995451025510516326665759703614951764974467065711635089114026809694676081149646135935075584957266386590003643199967333461003513584908399383695165316968226841330936972557037696567867991169131302807441402973453748212910163176535861150604097428033371653752533900533560256603790978075738461464329760338886292903029484936848664079470579633763528385986595696676655262359883434483920336524723265861369705595939353560917411312660040329153572751049665179835330983550876825717426696990937521014063931917790544961656811658663725739355289086807277883419521075990547455002012620095658517346915155396042181742668693496963883293236609227475550674038562907903699939491068066598863887909118074623612807131659663480394599313522555467426305233629124929518169878186147506071667098412964953768440672741465481828845952090349697065252563030032585943047511540091880148793886324238311761489180681285672204984308874506145250159304752476630877649149511229500556181838321858933302869597906215520928860458084956570615213323370825953904212913148560525636804267011781006901119967535465049278117729803593887416148526587126688795120228804520044957783509672093258523963707936598620191712768751754321091337452787505796054313717473910604639036751518828117470676973412587797646267988293083550374459762716683534572696402507452598149560250330718563766574602344671952510620510305569910599903959119939423987708579854928862380132569332807076307424204929886965704777220021827449963118148613065967606369088909698503883993132003679179528383822718467369780142554206635013733332113097865129738531830436378210616470893135664122177666421999839633903562189633920254146621723304414319322083956815292039484164385704434408565599285615917885863846057964532543298792990738272456413980789208840958547097049831942577194155962832609129750802534133223308842876691634754319442575076128055074234252342852523292647174535732992051139626385585076308962399664498437248193748343563736195533346995393509140236321993577401591763149952419961445444125781986686588994790827218439715141817509310936223679111521818261361775651007351009882485060533748650782088682368958656479089344777229692006885753038430532716961941859151723010396455165061542803087749371237106505903561689499392698240585171762140235188032143555161423442346703826792130437052388198514478682665583105254245801059298344431253272254895759053131679107689367616474522456992791064857802189224462011508577412230860210333426255346288942029741909157425206841733372453247331674395775032747515096945716741721016565286541603258659974611699220126751475769226875500891312283199967443218259507774513615953315354400566584266140576735823868752538616065032437285344287663157052003173330854079917788875147392000368445402202815017170162093994561455419916488365023135651472862404589895361406968162685369749907075656895160521907039416278188046086832606610894852221438848921341323379681094781072107383473417838983986593997387655919703542412048535471430944443153956684111825452591324318839821334589827316166499953685252880246979179483852990194077095420556781835292637755377635710326534999650794011992941316073944618398397836812280588082831295547877893791617313504726307065535534101404001348932751026819263229691403263496789601885536523670618608106052964349660040934182114294971452167239748817428088105703638636548899687882751808745634056476632081138583443865265046509337931990327077911449253495808444153254175624735738827582589162341080046269619135342179557171748324926563016002521399629572511309690946153107362806893607989304751033996575969515448219211966909425794187811841557499043363951155859391612658003259139845324735947210837770682983706381662643850275704877596768254161003995750946480003754517523817742376846349493977656699853514832621443015043989180084146441857352095383176849287279411136009011393358828884835293650976907178735186916260007854261559708331529843045954882768400832957099730377794782474048007150826122114748800105406140591783273679250659274347746042895672132787222017736730398632223001732348745863543305512434611422814366177717407279348701489107549028753937652998690521247799523179430610940370744965457552540089099147157336759996257731128302166207999724225706506440516044928555185676832889140961279019423517685209428605638559794410504346343464008791874861619426500400784015671926081537978723021678700382645626469196647530933194938615192074271043954937765630863311886109742378762233610817961197881315959566848169783096113355739857351056513534708384187943935640364186661254378743994577361186031360656240402861483950740252566383358843203940238438735807563370656205777217173145652550431780366686036078574477635085721701358756686497503947347813519812995616562255306062817168736171028572795105738320308250302898379680951016152603032972036036127142393161494017637842517628266612091400112028294174766047193588102974893795735130480058206013587888889750821611256380656521583267045000670144245330518861414993641850039285543537274759616283042166558372293412288064872168139149590169635344323770015117955608497071794208577058043786701338798687917420711851061323072287136171630388210922094062783037971600802929205956292993634121040348884234197030166603500971797456736531516435634390346507657839882122728669767301637934280212967775718431840636620337137136957619633542047426325322199878953627982821340715376782926793934186284508237372505745009758601278461915098659602197845623058246151280802625490647833422661373945102539585889731059602568353144743476999629399556301347882774672622065452485539905952609101433685494615987149489460255604767097666376825684124753388612532645701697693941088237726677599727126067214220061261213418533418250679730525257758821747123655502945645925212730924670548502092231981997223940155462169420364636780965580108565509894239221271805711016330722705548105601022883934095206567625951637688897390408322890036530850578485915672409878358454756937367733938870495331620646988776606714780284663878580481202559246508340824165747483252154615914241896014894681916883306047384696504138821153879163558112153847357605492711467350844276672335001171708291633678983206320366980001635856936249298718328028719617357433615374149889956898962321872499727756074008921236287399358907928654901675852681189658718298629904880209763244197156656981957857049442661197425647360793257398078275258808380889117349437145969528448608492735145436362896547262470289896803303020928655767629335000337050044386555082444855139749686923080696688309588876857390359774625901319831521982442653619749655347571679919854871390209490323096056246557644258654034624950526815216220518876021704316655693180195784235475681939406119416746880033223990886448580489702736470319418049661875483730536922354704725311377306098300301867008580357975415477218243575556512149914985325218456148081524088952576271924593645474722384175275388870299576148598392008179043127861958106221000062103686069090728013858908645618940590770208716868538337483311336257455907460808172525888521352114864932177016197825056113817663393947103271381721312620566718968584612419064264854105232911557216152155673632450001399977197415321843936095813502522243003734352121407180075620943813525962318810552541835858258742321911333937149313118269074581746459495238145413329948933715448905490304936810398255712814754150946299825183056793317348336850608732749952265507269348358758722507034456633883989252633484426435811966120744147124508542576837224549307901040692334831199123543486911591632036528252065651914308772141345952795146793006222191244582435193552580787948647022312384441764557906854181060618098856600761858297935628936409099130932632046616058813523425255392243930611772924741825500439199136906808524705140774579419268380562108432263082204542126174758400028740322336261532175154057056508801631819669653975856813062137061378514147515988893380717610122038060394289502758236314670116022615579017649589845178669765064974605910249914676065656108657762945265513005610460194879704539281251150997150055408392559963088223446065784934050651377991782669291937183127105999183379599312076778360873740736651353865082126284736966720148002618098898987573753285977055989403313775543418029345159761262747174984464195786682728319613826095774434830881525418215700994004979837153638870651719001296884714731815395338186346472926036011435935272405267903124997218498551185339733852375631675590384920307900548476063348469708856789491180747312408286790335473314016580757642901225825754660374582697689014116957446619222991440135299215307695474516506538329070389834252946345349009246598971997735830568346208676606567273163213175079118201840771400487998490710767203753896528288883304997544119727387656287625573932193927319871221173481241285570549941859488306045014810564723457512183737484296615537736393164945966029380753593005397018174986753611631850364994447463788741873929790435779839148949738775824322902212858766303937225945389097118337976565156994098295561065135687867852966852099330651547156672539724646037353637552300995040440360746837009636632640991140565074457029396520833721906119796632389223257593992571191972912414998510771995519206368323112642849446970568700490240993768839313820924558568303342949655005908705952903888631862304307732274000458555279055613546494600444945506360792234600342480776041546823783039304847220785207667589388182806319882811728415225269257734842331091227714104584278415250059889543979820668884559932388284520614622873219270154632757076711713667339311008057304060061885326757591694519478880406044922169505928183884465337375863078636587477200139155649502551126910709130501550189090918947817679737017296337998805896031463898825545708117315402882606371910816428262811978641180581411651955885603597076121447498937235282811912890529108880291210233176514213661763010494349669728100185930072269988718122185146914288080280382291608235663667781344940705223151031192321711177941318403062455767081854118052833571103709296870668783589208603446407684965290833281889747976016180325742902963387527615152693771834189500881525163245780620173988344102662946972575147997499479511374102907907411618038153957656143772029089155957066695209939436893098583177745280479061375807757228296249508892893669091332132513573777622514896842771744385893866916388683905567530581891498775608811288936707101982852798207233209554565478692092280435993121553597031428734568830409316342221302378439121792285280473618491142665349938883769743184284983621452938511661998583373592536026276260509980315540689367860938340622691121163201032253560279978657710885059475602257623061484217888484216419084319844164408223364641039071317366401738862936662773888706720949387273057232822186573212211886405378820620932050058450923032137683504707034581998535877129371584672213905831122065924143185998412163645925607044788349136497434527093816435286567694306655550011482121351128161440497499838963271334417980465878492635592745492036236592118812172969910285393869094484259670635136924411054918379645034286905517494973783364199131755771360896537899194954429002103421024673272984108850378501391307627882869024911269029421557069906324360404292442991804790392332491632948172014467600523940604678524103664667085547485064885434326843727774997335937332962549650255052869639624515569041516800540865001104124106091754273953492713183819748799129522033350527934618502781511258056603556583083404734713711592726131576594220576937833725674651468379654799617249837131717362020988140800373946787217395061696204464645493639116972432808552453192624179059980785127592697727614889030272553128082308095116272858097181763315370598862139578825377659380663783283282005006888031016361967238889134062758015212701464678750941514241536661703944663924120354521354922603602649750675690012099469361057670491271994048290649396327437155577938347205861892020959805992200480800273663827034717328551106855330658936451747973621353687264217118677942620875855016851512927494224604116367325712149507563841973012580972763100560213048709591042650236502673038032109981387786571157799928458049038690789331445152331316840195212372444329796562297945519795476713494081041760888265482541697386798844547944384501562133097650205365062141933344634852953630941398737457829484219944032397695587174608445231469450940825800332862955607569594088674044089040590534175416917815117784228829005469104223585285236329373413609253349095982454547404743039843987887434325082917359595366311293894462056281054987522060369007455001432477146092659974729276185044098405304446423331498985089437116176832234270803502220174342408827803061175189930442157290671671511703844006638383134083684088634743341467412663928440052810077130882385487445448996002418693197285177303234272104702030046038426390589115484026180219872605206069881909364384242498094817246006941152292695561664411257040238370841983475492279358614918268865227485163286545762228255537022000414154682316544508062365494957945184192810644031809113835534063403087928958145941050942023952469341508434455910515694801172872267399933310443922049608728902521416363039859771376795191465222789785187924000567310912497124666407225467378601499090208974195887449652225534163331456269844577929709310514013865267183594494437171885661767782936605711158441113453793585029766356350631206230457340024719616148450787090211725701481679989716067371871632819651621676702429802986736580646307952799489668706470727515672195319790904099980224497979275653412449915287366688652687444913627853631342282800177245845235733484622774698308836433272782540101254307087437633909198686639715666815902873360613738496661876862447877750330371745884046542927535010701730100156318140114593032717900872513497265929150828613123425214439436395202108668762978298534562937132090407365189263628258341550298196054040584367060351577634187137930585636457754491955604318705969317886861359606534388395708551492464557849540213908862141315850045959359225768985922921562523133789606999553845013020824944650633991539710077885977573497178363044228455054960475545260148440872403946528497959762304665018424121357647726262898313384989375368979324300723486660982994098110637968078513928050047826492595416047221403078376328648944276174951975543378477405097024014781790287436547295543217729467663161292585131606024428836530555566188498100936219484710599127326104647340994605271583997805500208185693343421660264240930979135970382318620068788404430403924708966272049758087968230762283973868269307962919519365326109283376739637946278934407758282558357805923128900096033409787348219131008396276817062886418740264097496219237872222325220766646342202287687283103610671679914124828826319604637222035639277078736678782963004909815190379004810256458276014252618979353270857373146880047724169082465092167954244888835782326267423682888166659308216723573902187300468005435655776102621510878557680523832794282078461458271516383530963226380412179938785430347748051210683008544000713612708312893324987498114110081359822759580010870987223443859492362352198274156565439349275026042495059834455904861639349211255925771474066768244957380031585164571694349281270311505935704433811866796959171794841872668314147659935906764541715902994364832817888110469879954193902236222707080541337919073137337698555902145846121624906320083147196063809044107842428889640049206550491538381652168647589588930138160254368049602762058695862316404943581370721958685752805315995409502033391448111865500036944146373529409571359827515286837186620130533178763944781792173099554456882798862691784366946114603899915108836069535898671961423348904065022827582880083696197597499167918821330508078541671403686903133710754523354061083906542303000847312214786831150044402227074168413583837581998876755872263197954996550290004822353367174819213005121689996462580634305126193829373228691334856989722101954294937792805996275432430315558507238194252679112216055930343011623163593383194135246439295417708416564595168811725330187048646241202442218248555818526526604357209922616697550118598858829299860218634332555892698599111096234163541160160559740830275009846613313835702795016839726243356216382316291896291276458664405995706337946427259210254475901836657432118463010056733031856378611695301519264910815131815398010728264926517466646517183931474140132635009844424777819329528659187786133534210675849549332581737638990539069921923796274675351265405610373193872599349883074914533443859661095663557815808013763662794222437068630676897635427841401533306588010939623005884606988749418345622348098568901297863547022995687602463842012496620837434252482630314718460646326435982985069547749354255026832623023310938909124573337766580996162964462088426114936442745527192737948291288598447105625389092082997298911365359904926872252375143400000281335168263417752260806575946647345421043989695604963954899738470970826842844444701282363177697698554453660833283449640605172280656362533179538853834337600990087925930499689735892656206276599183808915791044067244800522774599916930911617066814259359457545794940724058988185015941843227478832058820472334507027390951029450803084653217931014846735715874958453945410775035366960216435003194196741852291876626190542888514832015736817206221485197926766389246868232486463580283801024590483785597556861839462879124926292603471217570698334836849213562073073927857273467213322773820985505487699126757642480492410304246394457256879212195352807054450670265346313205722505149292492611051319781561703326555306709222635091804476180816645014157900329290660921047918563489873811715402132191541399545552972924620972097376899421149005417967102682850693386305347873481814994527354061844925274338683943163016664880496060759788308712088959140515470917477418575987170668380538597357872495837762169536932312888641826508502956882044067042991410631596349799332085339682486745540622861739061701013846057980586044558556236821056456332837915933760627805194782669525920682196623188913597033064329240197015801456871211004491040747982901220255256627080214469169001571342494254636373915284046713381935114316122127273814874231203058068484845434702244533617008369903050987386268986958610383325843497480795195554534425810349315290958944799944988703193170976860901920753649539692330068182380457054241653568806258421693318658876824212643703474429512490287996713724993202003300859286693944257389609495585673528234617211633126041715265650995978383817890891420965928479395032874399366673337071682417334776934183551243546587759019075277243905268156506853910018299466523572324822668202154560409479451717018330532813191597471713900541482667087664966392640140039483658717468010050529659366588419433040456413500216677001098452876993223028234581846332689132714369554150398482744393312813239960854294947352705863584132339428675560566331601256355782811403487172192443335324111082290540268739178115067215928436620178235489244752839845536781404818342562218353350113560325999635763174545476737161129973064899942338460037549344392030713901999257928096239094707282818768500492063637136530971682745825144562369818826030715055656705210018529369848069150316545109814820574864268371318527706692505678618342350997487082905215535167513096668437372888465303591729527989808462466994666357266051370019459108760955349535612345828425534436394315200833297738073342858633250493744498792217492704538811160820462008057650482308834649415524803714055161544511880725035395230695677954126393596175693216958339772540383861420448517411855960029029730390502059396763121955666026285309774372085802375089105146077316400307181632846446766882716701845988585155736266179167990421221361556240360473397265901826628687191344811277339080098442205752498165855490807115046712144418860359890805634494483039885850670430865624282356256985761972661099479236541143483609126185930772533184578119770846920927475112457100363027964202593743504468389732650264339089766468221079833796223557169946701871136329238294142002056516861989963108389195564826875234865416907433086990972590799783183156308486388238005998889874562313287915318422481694037429860030648109499777283771718342101570692921247430766878349956138474370341876026720576238885575707893499282603389915950786908615431326705853770325249688842349146972520783586701266814810433770672723729061506642557526862168154144819080523068182871867371359695869213448979625008088583904719854521162916110283676949538202609128885051156324026728523965552160299295567225856215614975579255124679114110469875999848455710718594798063423492998194712780934664612621694683354265705955141926609192062564993844997996919241010531659012836128424682881917764564032925672543578954784338377474140037642862888882962710802632987843619629928364426749668175925972224572134556462131995290496235821584647365821933796519288609559885774158141699523625268399311038911224151282109002004479233113334639527000178461454439459941217004484202031775054801227492109809326655331442411782266937543991457274394352224275001135081680053589585365831821110806440069145203504856544440471425715912051805538973912131113420148211781631712284043083973937136081473501669869767006707262351472409211613605405034240172655178619515283837669497637965739994863389463813563257337890892293073421098008834904827476975503955200783727277350636279667458714843716080055185722667925304007946549444599387565121982363425398795078248671176721133773019800476653454256607869166561356655963632393966970835021404470855711300387411428405472671436824614731478895689901603461856642325868066067116455497711186593290574215814114536242604985293358321127595050919453868377903641814581948953826608504458703213310004748417811478187487632918299989224967959867132900132462573549155998315081534844121253159819443947662038132991002035282157523678016136601260024171793200408390607423545478361178450609214489260598721610330677049420189161674905633683225144576233249762488748328724419854267129480711361514139462024771128635831152584452792710684034021263650423733831403639679949672095497117135446889196052758717532833777267598214318832436784313953883240282595363697827840980586686907980195493480071597261396741449335106877505216927242347482804963358208378580794095757239639809773897156113703352268276230725866540056379802555168986826623077476750896945132833667446828448947081196608898309063262530020770256390557023465759027278361095871130978167216711902149426838060282014978591424816093967866967332273368235119899080877709125662240697490526059951897477232346723622207385181498972066152766768860147739745026724524452852597064329244876349824104956886891653980276568466321238543726484529080108295756652701982767195756123398056494402762073396595426085298795642509188571280458368871272881131253168140278252555880128616474010890753203832210465520403015097873465068010114686610035035471716515783284939655612299043099712059246407946704686827100897577758464003817367804799013966839097434791792995661236243891281086760162055827313979316371538654775722224154313878170359909021746474041587929555764206636766975595234494798750213913996402941728961248089162689957463464175911280126883381558781659861740408551099112464402520678817167507655051944368472582564360869266724457793107515374545752985207955394071787980905829546337208852371275355006573994614652599111859424307131663282168736642283311538806140508244226837685252761455457156735746023846811027289335016019360814895231777973152803970004666476115568635646884218997496190027478160945368644763614634532924976417069000697638329673490010210756925655220519802171055185588009933298923314631481078799923975567059027728508877041773403388592636878608039953506165801829513888258217456196751815731031682107394722111753989392230531101904373513762040667118129511528825515883103119922905940105565845426592247101368365419461554958800530131734629070823165809225815293058254191028203555016527456723324859010694702850508763542137930566543535792739941585182760688811608850012559675388156100179860619749577158509307696530496191683849907932663761230826713179742047275459356665743987283951201044074446679121200849124896978209087286560524994594004797624830823559109242175967838136491780430292422917708548247217387763636642015307651642275944370816383212637072154443409073850303612337497445626056944459115831405108822541319965135964011720268579244844415496554322049235303066424806719003515852680469312988472082558078056012633705575249579681683140793905999709804058135463969517503170754051966519777392261325559837730598478382335466780602648770321942106645629353689829772137664408637836957103119465179508770812993782231401157396532094503970898539431904212329237155075575575642217625201857977133686371239300463501991161149961650596990842992958543222492806062852856778066868712219053465902597203587929564134981882901036786008596599782804863314112619372385304331228844070813466723237578665859017363295811506299642367035397036808485395478887334266974009893055421279998274226439444683873052200074244242277197226255239667091165525637609731229836146860382045161748033581941908881236767080399772751278019128684224209966253681124733091630159458181413534914936372141849384545378382399055306796473504170808295271451313579326253138627737789709499920324683832469952901317075494948296565922384065685427863939546997512800055595768727353207274622317314960140048331672621165833774385942762987759427840602555012849515596071202771769383779563765352980207735132427854729748765391928988387456854300694692371936557336495740779601679023126174568249335334553090790702531041467085616603763432536866331923924867702981125639208978487910428158087565476319829003971492762331472804146975447976184640073741489112256232750498166865183146483264350808334442949372095110122261063518185545896655272047176693076314370988550694392903805760505208527888346095564702070745019470936881555814110006332032457691503455209313503374190401081660958137322484144012495468092327839318807799925061947476566597487040953485359864732692463401577432472273185809656000532582690326091369688233366062993619913931842068333284393997678107096597830682834087879533722707603434465064007404628086054651592915273317650600828865288740079784067516663762989484714054810373780145390823828271968784816032113009962555609474613361371677465493855981705646572502240716946363762420541877986684076042120509818242465148963962737900411947042815583370229647451428483613349966086540068064306639930611879991542269805080179468547753902576991817769962651656179867506758314140278138302130522159892061103060704171849606465391830862793481218792084189927399214381176617276604785623712609829090232098532988321625011778870082700315707171805599929078441653159141272504792265914313044692474630914739597776209424739547275522952657379591457761582680584923088603309555755577368203417885792245697805165518663557106342070019960415367754131824095443412070370869241532429509560818960156763187134859487022380272678916830320404126488193647845455454737291513771361885530204579553591156480991104199976900610660566713717194494775108854846994467223997783509574378042690023142112156550332193967219792374508783427344743830736121657629534154145768638156320195375344425699669575428358024801005407667090619072323579715062507556593626085547435706518290476924533130122470451745657662642885253815327612813832677077490042741866757554153875524845507764664490452523187555068661766583219441102659284591105377106088427390955364318664401791706173757453152362863755818022925175854391874135951005033558096886329666870409293655147154564594994358406803615276422251329086976916084633855970814329101876330935487879495977975647258518946055674610420925473038559939867739196105165847901611707825230426435555360431170848480115993859992984098718759496799164464025986503461471191004734723558372782698928728846213146183719443117392731619926538399913029457063334641276739997363045236128117252215620110182323906309315279606858329661089786184301745652803643281820157240336915501641722906456501175761544847030346132121095073580279271104295330581737614286540247470365284892791852053330543983445779135922000205577464107723362459823726829381756307810332735469152978931279388860619824201426877182084299268759031999378620172543529424032976232437709021061217395973773804490048143845123394027157175753901311325800785811292214033279732449825246085345211611798981988082019249971889520130731772501526851779798531631216722167363729468323469798121198271784087920444380560194808862462932874902457895453221951502824842068598503290614501770199690602076282835241047459019433322241908816267516515197687204525187141786289780322874643060824639046490786207241540482340412899954201297782552995737439708906710434709468475073798500973014444622258919899242417227277382688977887416145578064907981958872883996527989903573894281707313081939511579237935426594799843999941768270426165578515570968214932170152321354825559269633505680869695550350937130479441545254411619857327641569844658334894230456583217200020368988377045943060091772774920230269648943196074417509957325028984060552661900235838622053828107101141987775713906402964181882672835728145511932633881247008486572962485691303760663645422874065260596946977762838704441185683106033388499393786651871176381519046242064435949553251384430918024823307441110997925385931088981730969034360272255394128290096701269826378456810389557617780215517637651787792621019252440949464109876678044930152287893095285663776119405579316857139236741799604823886731239948890602629961000246444384782455691534147801475625189963683571153918112885648449985837326223531750084803788117750733380870466491669090154350288882816460702038197112670723884385192340612957670146716514183146578247491928435413749869229155327245291596535985837582776942091821060269241446798016319262942808893771403396323586179671450196406782800237059438725371644751425159003842904129982040099959686683410501613071919328951475864629222525805797050260106297402395984372492905980676189132252897923941936858642160528068260410905009516281267411987029226099666970085338215425091758274898799835963707243599024824259532185288529966158084985788607228004793826474504232251619575621714640344860699190247761507505247857985347584861073924321247224614797479064014304436175394008987220919900870782293917800599511727359707483783941253975146314601266534871436354647874906289638371873564625910598843746472187723539928642462948797137326067186399754556199223620396011318559241108465084873463882521639599830357851110169952962084958317502378801975820219462421738988065942335520291100018332901004301546731613259290904322205661316516294086064322330293361655433787191419939577913735666809499522224630395474268029500065300070276553489521917356380661958488762035302044259140687940943716613854062401372464931461963590957807862802238513601018771965297025258820424994096412053903812099553691701302424432317883601907035324299761415763659696866699439019211646546839284615067573629542007411516276751355264453190072936463710575872224212443471994338338723145545630696573885721880421225711282203313145082198754976866211361417598609945962079455526119067987359400415647316700326075261338508213497634380695197016638379528514655866833469606525461053924000646890836723438990818111081423063912841028015654967406278254582872636669508502769722717408401035244893174525827665308484230804723013106322956853015874180082170944431306809708855961829236676891152384746263680288435332591663288793739784364175694117718669035451896843018324064124764883494642465974331174477694162448487281906858239082400903441926843718527040019863379608444366913421857283675868745483858020815242892246034298635070509878210853703773072443740336190336287936193905804754027289161906206756778584231883418995819962209395435320642814564875964191316873920046503066087077981358745260776446067854607245820326638111551460011220968040915597144002079655570228500177921458682273049163322225369815276454603678450170290412517756265367550449488330541398487200801582152147336766517850355579097074372968095376198569471808129478285527456368316465748809118078688073158779826669619909801360990153441401655024727419305876955785957730123012110370619989297925178469187740212638905155502824270578689210887903588511793948855552416962796164320223583098114412951781182062323895201622088534286469317230017959428809060223312094992007165925671488428167328725091324029035678470807728028301317737853195408119940774625443890183038768012284769900099593771620136743891140434646938497177358115745887804981926752579943868306452356465951161019325410963077729338033467916876378782833670256695983412504140233976944261308882290483303062507044280816703921383961007296393049277841235993067465311359392586568760341603764904241271156270652056743386172375954432244492394313030793109655994199481756433986893313239726263069536611415761128765003305775307228891961206229341545118166088842171694810940354921894618153872343094447446565337445405914469379911108217197198704808786938356325168652876763097069331879189467738807444923005175647923989408916472918265407025958668621904601898074499890309556002574795931521374791358328627971986428437710176954014847024217528260013651933663125849917933238917980534865009916902468649901545709153779347559471426599813216537759759486092140539412530824423853274818914573549497711732123466663157027463547853853547209825735181582063766891166113250736176014714232522716979026288812017068177032381335387121013911300349138352760213659021442835775594481361006919103436415002222076521430521519413623392216743931643042247630946813029607160217624583500736559287841415734147953357196104847142772178973974194480044418348658826951688566729306293795947009768012384641194315428119698942657105779837926054329133792884218191363340444636371566101523700288031239802262120927933244352022606654363212517282598775395102742094914994707603428520914244644666374082414344084512055817745102929462749277751349147789912980980954444695018381586140868435205390950178573277927082349678157486251101036468091791268030505149686440823195578191975223129272265713369993989894377260721672701971884151511694347330150051864440042563972945411120313558538919045867071957391890853779683603479017985787183171421142303831303835094520132832986127319559204945783525047599095177051836506965904018135344611293840401687270937862688907615879407695122167784760690179051762727887603770298105334075973510094490252347961236341037675307770663487252490219297770618779408282045190835312933379222638302851413128435444511098369331757726310491601305523738120140434219296786833704620543263032953595835238997352660090505318032983937036737550130536186314111224787959773660477530818662172801611676169955590887663433874156545658759976458523911161911932655575035531250417048750668315927858113267108794895902000345864948635329538005917290125387206426574850350681292193962988405254400143985420488795293532250596089433935468085256984232145122390391287767384669503814261465333396147415127803098921972242336738644511526061769360484299061690428863248634102249139438208058043658959718036469548183631069878621098163412439933642890529703658432766035010420854392560578048384097487793175965498506566953924066261301805065521368005975628391806555955614808978091811044709262461686353311118546052422869173648837883672242201207558074547886129727028163017911140292004414610187571723565660030720769122839292095678009806479783349334366752036034029346221346009487614897635773006776973777976075203632712367323552881090465017195140760296035411038063378795938329275533914081244280989600436040267341011350626726157887788725161089195857275723976783415109160203718051750452776758446313620340499177029108644559253620372156104484289317112448419527226464893162775837173460258791571384483681601990080450577059656040890197135874530471982158465886576980137812944652530688458844969282219134957864026123821054727350144018766512105348215723512368388510837514454518276341268701398815463450716245619192167402585805194479017742212372062642626050556026937518160816370279048362677502934081411066948623688398866095810004006837956499153930614318887008759184256465916037399931193514459221397304436977089854460101470005552124013845586082411265305880309080943763015598165052312989542021619549135156716506433695766425376569395666171211759039301051165237673982995759967839047128458873696174463546899792953141257825680366760107130785722823321676517547874911160312148845683980220914400952886022719238674837968455272380653984238553509995287714459980502268269795628265596069949637241358155452201480008791506370337336803261532397054888889009396619571620298416908461375890888445660051001546472772754182480326253821137947545960112043528389793559490362109725947617283151098207220615194246337837899574081928887603369044918310934947890294808431676788009072642334770906481456385647495502009632034707203077408511015572581085914473726133709112041023843870074972219230184562586819449549080884620587679604365294080892043981463618026357521704766576004286445517510158545714237542865318030548694161807493214464784152848820900326717835145233637087061858618397933467605529131738546922291609105334614223678508551074960003818536310485473846641045521924712247297477115924681315804314389987366507375668401580973343650121024166404968672350727512408440285590666894230121398316574971926633076563605268243355012763228073958616610203499425868877732816287689159325613935196691277630957190606700114825850360069539429675360589288902687567859928232183964323634900131930642573650646921518276605476622040066508856778871467399193549563850231764155531217741107268188207106864632291869337046866865299338563705348109679483997017225866359742865709290164825634893762819859282979659209339180673273086561809142352491072787457056720006030164612178530448604206685602691619346464028501023645415719057146548250195006496867638783909331872309262220509956579980744392194445462536995936455458197046732557461951553350521040631448650930960291748443309882942814807977451516673207598683225058040201053656575089901475032145399185560711759515554443927437116633979385026780588331171849702438342958248696314594104705862823917759977521463274520901712829797589018683611311346552393407115020808058093979607006161187860600266194255031145414160147057376008413254575203091952277904029047163744745530275213066580594447951340544151731539540874858632700901313824142194609631424741600468840849441875578672479921151848603769949482268369324122800564400830933692896029179993667395039400098465011038222426547373246822991785554322313058475316997639537670579896226716128795528069137655095079636669116245063922646829231074840856305901379680664371033682999079069310285233722564470301589162720832885583172713774016924943013251822337671653384718096568863168718799447346942342787862146729953359824573379191482113906513384799867073707723550905257694965409002179226165934496503615476904094927359051350511711472674637844375284459480959829530907037848157146905264584048575706896355137574836733096914526699440024670807122139025706403210216564897926505636596686994868458904808754473568566570779109493316052612682130479267342811075924196093115208738772870619323976948111463808905517752789467332176805016787992633509712632869043126456602530799903070817860730580742089858215378084227739241416570294785188710683783181120361996297584528630357252905945984585339678453663071029270979546090373175262348515924607876420383466068660827195356660005653194399584931005578619990371696641182248567354265884577402842972419250873214863646590294539159160821985854069924904653618994747751446481343750554254192582171159605485245622782714555966181440712754594953027139720525033454035890937737336306105640323490039828501087622092213267390934060019365029028179428962728366201409353570892088056804415514056553501332017759276030704599213508878335917235441088749653535948115295245791972975154542189028202730180626203204218449560391667108850765759526404097280095390030590546238493353693956200435151177305523862855267974189418840718996853214989994734926928331519465758156420910516484324029914916474268565915121279447252352613864947109338757333028679552769155075190119071904318917835164569745321205542759888302735666427501713365023184488304038030143265730963203088047293308356869145609292541204049136559328188288606600689350792558525434264532434973871001689450007077500924699680323100164301624671371667090043426502738025530401751048669858938073912859585757833603952586740563521027587473024966491741195299060516658328721955074157218924793629816556751767880122292126963017093188862545915674210409630022111345871764530825672385502073762545921151837698790468439421075089869826772799938072659842168072417404397676718903857140004021863675757846534816350245825068778294188655257002354111722540826330532002784336929703573204879747323544070849804340021340515529441622808878407942836285965946175747927451469428741638356306354646974162505054009504336832826038146435712975903426622428388809029566182495209110745258494940951114039699289610486195726939631118100756531972522414045245477926835747495171414862648093188199348799135188595663721071154827473635659020608214477746171102057710306393519917979806059097626778751084161474195718642679633863197302989044761273859985401791153901080807657896381352365213243537681271578500658747141178861796952550961352268053195528774911612572011992037237850892282663203451742292101796122351588197687121153804605971069902393156226190090472286596556795395431339942480639080087451705427966732707145425171578376006892820502414943654131500405504516268660623775435887929944662960064880397552813025541042126595205446283061707665335186408377640372651460785331783814093792402245719605084165381150532873494477262843880418522684474034299926050944101321981541137752578130984204195134287145866020748912199583434793136923488871799837296044100552701339909727162464602237577687283128757986112312808104374434168407558094747062162026882575339350652590957868363579614334163703290304285114474907815965928224652634271235228922491268740669478766768954953306024096899537328140183607332501641753262275202029988819418988862625733208561846342409146086216884754973282834428366861511173840377682588377236406590998867537256951739166922824620324469834210105568193039851329538785420888037604086109998788175986461869183060342698263186105245889476794827617327551509987320753315890047569249302367564892368868822338817460335478479480353208136793909696388676458320082520751623027435771956994128930844791813140166795274918976308957491621829260387582453295858647938505214714589684108751905743874000072813767593395590202466387022652481448426783184937028920750719129922517992322644063888856740472455349917605100297108799632638795515857658874125850783656194608753243840658464656086032750252612896882816132037162395971713439871265187095134044722551114148131793810921028747537082633702460752449802447338028168085606675494283616836126914023422584677308598809858399783656424760177839320491155345430012425556579008484554490559581234579326896135768082889582920721643585351301158095608263315343308489125827979264693113886947281395884123111969992444516948826057481345299768501102066829959492496749668622316363025768842331812300842984380147582284528621858495204443939652335514701081937411198124924413300143674419219369877489073022885250189206182840100279161094783861998472626860711255071299504067390191281964896434777945826506861646883593529332703809058953518072840394870431282055215952681521443995966807504223464545758610186101893502681165246529692065753495645055428496302751138655562449720499233281213328693653892671774950451712835891938809337148431323551964476098095626587032571416260030598126403031622321217611886446205014177932709019439398996930186889233157884640425920343824830552780144272100139582774942825679534951923490984177599631403502105242574142595690715554071315156946451810053447583526039419300519220277371259188407588766857960112141759642606704128790570436025184916953275836171286133755071759176013295684460932287600617254904570199182930346444086036566445243611717736080636341524301392749721063629729130459483531676467841864351600803201739825150866652150665353116383006969491724549885021463518952663900879024767798463900070331441195437639984437271685175588021602992507984082286923264727688654685178518470133456803903115973167460626817531151493054487497897636238744584298906822712463367090746333395662070002002101396766204170731781584916589164879091334952915401237531859755007356466275345912933600752461957448324062810674854529877728308501679611674548975755786702411750448302307973935750860994776323109461283892749388292974385205073518297115789154935336770035932277093910689975670122565386589725039737751450838056083966140648142627451341297821188754123124625445853826045534120155908063896652497884179494064782779647289007849815700985655096889717617751659498234170365392275966620154373932526285304900292056995034699875495882802342175894517236132643892473166526423720826399566162227933198430391996007016266397939085320212220872825932939834599708475370266482700298450752711577366627769723334441997836395329028847849670595282260947841730507069773400690494484436604683965872806335750411818604067986032198560120124399037415901451352626412935623833171168111804939791727799332349677142650599654498197395304515813547675048385064933769696772852903217760466309353989744955103238331314389313636451436146808591006905717751742094066856094072918542168517781445447547492118166882334996822586765220067707076093969199648179642154938447855451267095070085381828624492731720415689696681059298149704745624418378172939524082415675489578630756611694052825468610958774341704576379083523751090502035978886078640028462364796990712050335697823439137110094990926499101613965832983307737391152018311059053297303083162113575689064518447843651974476349081330249406641019946249703982069949216300835477616240435709949280575312311027172408468438305137748998730749343148652870547912153548795926834722506504246144046721591874864636280464520964501879575012033808850245751816709990634883444044721057357703790900099908534137892066043095357975424686485720841930270197737891791701185509796529573648245695007533940503719819385860849433541720618482484532891646338176906226465311931761491708548292451885103082745378598603399525526645544299055106364690780773930721203331627124639469041198892455757095185986179879786951898779222501207605714041963470579972632033830384521080157669748374911035893942420906292800873269899980921520790254789152092572578052146874456867524340084398925219449334874379768393933353340440974917496919753962488488751479390429427181220354742026506825023713588501510303803315226018255941023080657276565495144298268294124428768093450873246435823954724117999724103372858621769602328958909745480703899042176609337702037489493537511101983817850674007374821112556469484354369565226611647361253741692444777829901315654628309175334808304700902139535839591842491859784048819762958675688751781529152021995255072357256758055019317909260029577664175350083392119326659664800638227463503204972005454346050144322433388872927342251847393200201080721165829529949615469871530243086904473923883214993683647654454104694398609936735908157843441233621586227674097829231344498883778457342181444468861877657706803835627171195038322180446482428959154866592172783136874776510072775739289812112278921289982196698003489345288351161524177176081958442110321249465335818713397382992882877956286762911000732466009863876233382171329530236112616063132116416570214431699157142966880507204863091507124170386413589933044819466559613046012724017851604123366271170909640352599042379878726515307818821654035302428333911114080340669524641554299524633066519019220358265738934546287571036463903053938392938361047784913383203219415358284997606182831016892911805936471030983435943849159555643932839715693090377280396962313667015852075251830916025610591918480636178677250959279680686822757655513629429066337052185138689616255276809310698930198223113268689719530432029897640421160653148703581831877349155753450614063722148618416652279900226135125353591309947040095458465676333210008094425662690938236809746340064367555121538299030662765998443153926321821425011452800054850478943849257974192344144397799216756391583011122063073726598157843724194154457472610890629773887991658921862254095766977702967360326711995444039773243578838569162808151780483238163676516524707433745860360014730338384048011072477353686805990868748407980303923690138936707595578764549261405205990408737015772137225601524614372898987980958681320098505034705068643659961708229325129028706194386460350331786633463377401764986329715960833898583190787688534172107548878907102829861653913656481007751001319829331108487292066507083464321365648194752977108742207586459634295989125022329344798405662578181092249702867323552035483174738725588942481469328376363638686416726568770225483991994943490386466128789605365268266858286130258409673859735130389626342799834414090553163348512779063931960089031281392860154350936719002865334723326331391930205541342917746894605252695236672913051739854303312521112969943857219991272879890927329610640678284320528639350089649981458025644867036675957525772174757317900931237671827072964086569181668333256770146895609002835494792397128478226001984324447139127276142867942311211204011181547749411557397034663975551359688244677508167976151105712272587442285236341290316937960485086529701453874692873593651867397790201741178361404399841519154463253627279393035466719093053029518111235387564077847481770846541019941393202700493559736333268340023839754022647202539946135119691571877149141785255785510315662157075567581504891455917229294742336421452363089322591814978341395413904155650308424775855313326751950788493590943567234363927814993704265483836000289676967677682890013634576455101332363515837469317220282692355755681862884644350116006511030197798901299404965564294709778833243611575650751369732392032951572254572017577290327958191031838341161567428359692847387090124289224322990264232525808992460724167882172947780458587699594756583954009590843486859388858018836802927207858505469217603001807311125105917356343241849356293451746435051509266727679334822968450153454370956522309294988178540422439402080603545153628259569589068829598270853721282990983597478031132964639627141549013870339098335280060607559656010365274876994969850371454619398860331045207554851159208343284086953041761216565468857038843728288678726356298469496245285050874233785089431651596396526909122423970448297601422435074496982906972769129537723423982653404746512768483907887964312794766952832989735508025163923526200477848761380850503711091627354586248700728748971875094340662459777597849467761959014384209862521149300334993867001942784151592218710225439592054413353859276143962083602965412393749767986037757504019037991339817320456894179343624452579780384379062403785023636317572176494248118693160494225557872707895814649116652888730536894906610176226543132744457796888409483102922943034726223641263247776097123409056325204285162304617439691241344211174445373472154351880825884606022927204667974929870015947467116857349349562168765352939774195262434965093839187114643998459626699379405845057869383066034603019662345070326721776343209460043836040997733798422933515636512781151835344901510758860536640969100749323849540506291146231457086852466906819597831776025891074603812835078806570409374102905721395643333079180448539078197863569968454089273757750375618479310412700881408711481780304424724995569791107262857290652972537729151682274299636040766494413741885306012991610058794366661894016081699039426323434123784253020404806335798712668114681521069455914350379133649068894879861208431225548445521353083576594254883994428433672460970320985276698985024980355504674858943050839671151779029679370535086971173456233609166515886569036908449371681555238098834655419687880065915778465659679296735540571766111000999161136679013567544393410639557708412456360520002999787832952661362737487783792051714706013653925310097970757878902645507314680087009683487072580412184775203319241442310471498976373255990081194313024447641299377991468327748433198565140009766113450799898727785312160812992407584400207295075225425078836323925792200253961988962186173539327083372526301969788271236608736102263995773605823092506060533826920095803387878319019083806606133343960332333156208722574313458704607019192175149177850001499990819089423707060467345369204995517620489213567618126597841223118334623897882661976567771101436022450816555937078515697119742391589527521521007494894698125031452973174106587981475363854022814412121777712028297538001966986853371265931292997029346710621899615555954932491055458795341067073931191520859967384663371532567050334466146841834585442822706039132609529826829725609626617844277856819117478410473598630134704673022127074851141572020476797656961332573393422136320157186629574714543482992604498785854089085185558035154819221287335397195736930437968645026374826116009325841224632120772869792308393232063146233305722433604443685681890010494889393885264473893693218898848723473252221326785632028172192602842037680463584282067049831344101570058180740569512816977950555291747407400634584295183083726829813414592616931029881102980790612351365284833892894484233562728384901389136682141390158642802194065117355978776625569076883005832628049076905669319478717746559255408997705137160847727885579142322126192928942847992607723968456071564947475661134886331242416270100953105504013658043354848640137144168412431378519897970087276704216686779215405466485566224580984862534074078934686443448293875371196838337086079830018353626130549287163073642546935270050758667928344311468876010152983160721331279563435539164422772998985023009894792301380906752697373378455359809414402901323842756681898040821270018272960195720200865476176965184033581902029836939777085470038839908545846121548931480702529904412896778308090126552343924161771833891565035650101267964643816617181860724596729287558960641430668036551014725637214266507712192916267072052361806059762211700159613654989593030576991470964496885705967124808796197226232601205282815401523504358268954374399391596074908279784622826024367284271750563037388944736580695864224604808935727102155743088039379375037650868806225076049113117777871275999651441485973242863840058018505340276908682375228310669596508745838620033946716949534443281021865993762277873806208372267855014417961642112408577691532733295870218965107807857498836401698533938866269073046541030437689516829352695254397469813058420979422804554886262992863117340976409427315561355296623824821839773237113042657623574889268057724599754615485342561743829039046821842412429948522802103752918984974941770592102940403653772891027058404538110548869925041700828882330324859652313402527068358644159354863224322939739710512456632811447479772314383090838066246224665149487783955396696732057711940068579528929739778516934467105646889918286359367068683400340105059017110133902965514791109535592676626365702183217857600879975627499607316779868406335600285739018596427034140849186851008626006340701260954419356389739514056782722834766842234666297750638478124260367862131754746814232036583128607805267674236399063092373598111686339961789259196437530334143144370365587363536180801113321142778494231668882186008432561202111414829865730095759781794239950519126151444255023371349526994745274955249221662567213409182778260815427091345011428795827153338655660491498641177355007649230584732249419050771728533916722930643462181264351827023425586385669714766658213943324917368827922822619592056496845877774343830878193251313031374824882918422138313362123086033836326987052364828076526728841218285778620773259815017222545723262413074755711192987335956819037613900192514514807676266332880781082115995611588906037472941486743811690011572468266969400752881293981413517141839133003711065621504586611964448309256991540532979804731847254774341260468153798428262624429804120095583334632927093912886183895889238733328599720705088325150793073801936765931705537736553510064634558417856354721733583151874776193213857790821016867317129444635010649505307895862935806605582028070839747129705339740543746410668084698477396849219568321900427613697023156449835266994806143823267013674713143284549848666231675009931525367176139290895227237031046371955720850996367225323739193557229105424991844966633798743694086341253785433878835623984406093063189854331069008244811329920767057855947110505176915268162356490837267449319718670273131578973513085877109340808888113611827560690969909550688103424342850596239079862048639491857593565078382968544571706967754151214117586413756526157014001409233134006560193014231604249643707591003376029198682280277885937903386069565015614624939110714888851298192050378690359827508982295620317550899221945002146616003998901897501487437059596421038142572233830852623583319606602882181303436772168549335340068748320066866210129171378737426210400102578868864270188619264421033557663970471291778358050678544775781274080731504646836161245016270190607407259599217900507980114570978534753050221144912096700534666291540654526781899894276462267599490598091176112314467016835912261833409615652898864703632529542158315562763739659778028665210285398438160178080645617537083278244251803501636384923575246898179235974499386582314299037043401008748692742661464346517410025609679583164185961800647022275695716791101429159816315151390166270528444415172252175641420708486852661556668609332264708103473812327520743973582047856056079636116979938382556186286189894698736825715360601608751963507907192082529013238464947200798545471443948923746623509465225362935540831823357777773608543435764884420082417979162690930165609727876198810736983521406862858401387544052371480792326381871717108380583968608012165545906630578309179233002239677034826998393068833769565365846282420739569807910824316151778906732626525523799110917127924059852272946094742527179765848422078641135536226611391420455302734387569134847888646453367039843319594020481996233148028364141506231553068673126733683469337626291588251946675818792230183990647363665512339264822988739883138118615109583515170859571257882426330195576736273403982573290166906207857390711103626844572219700056834239674927771513843627066937804973637198042037782191398745436245573011857571752299040198890414875410351770335473976359887561201651941932681981038866468255558019784493370707936072511878520784380642170823685363214180145923963905497990592321131244344199259033011359130485998001803453708382168265719777774046173472504886033035895994792746441052456195756239514406994833129554220514510003854975911065771156485708770728565068119046746280360404707041741649812498417491161864581000694012286327910087948164031720144732876021498916338414617118368543016595159604735122577600454234984114024350451140397417129724814776158122346914474163363788560888742428455991048350438670780348705751709410415477227362098811900319392025158396472112879569137197367390170677885070018054330800397034266455319712853907803212605855841330771454539521112693439130469144013422346736593019212657542175467515290050640953517095150801620680948986048036542221772818299834450865460810519991867208079150599876003412266723092772985815744153185031186151680864113857541819484232628775121951972779493568998238499263545602005321369713011408134904422891883452964511671336069161729675741971256576859665768183681103217906147150443621430323247705590264045614892876806280767830267481715049899121534384256713928491509043758045649795470545282565198164212445434112230133214389281617127929892045815106870524694192243811682781054088499179975155266749909020464458166513306615512294938807744620332700486832896078724682641153189654422452014958097475653025676904400093789425924424598095753167468445070496520732052455173908630997190256127623678749583003255058095680224931659297879582727557571481816648381947441706791142828054814561158120011118265289480027110539598714414228724421331812587697127178597740385311844615502874167455316791312364719820683458583787136880067653026900503353785373264306292026504000151979326715060935928991292620072719821482411189403698835194896941488682750019080010585421180416731320078105519998179619889701883301257704491980591735248622766283517838325207695291902860207563538841317368929126436111613052769616297824084467013297619800995115856353972826984684259059799530755121317382783732190421288837137790421105663297682832119816865533740935546523183687751783423438471338022569393581609583849479344248245409113623970510408201645382088525072097943610372322981179740306329090396405055218340962859086261536981617992917137893489826004580137896095744342096058189176429749048557872755883110709831988856453358889671034708378551749357528412060516769340905222687609989038098403336025770512287631714059545784845463658557364648409124907268210386380460038839116969022819407822749732781452524154632059888958243330970096205407005389235111561327314398485837642758886510790690537473910162073841410382493570695776014563702089492594479169050810353499860920904110474560602508849979021769243678228629248020392608743722223010547667197748557450591950808241389971207618489627316455064872299895875093723503620230903042868003243114541718081236669549385931157106179764496185406268048280792643969892139375360798795708947724756534805999784215436094160854751025386673042415545856926160535908187462079939630791216805030132367243712492004028979647449117558133503451965341900026643842388987147370380596996439232476509618885464994774292803920784425906228977611425838218873102106863551019797299908805524090310434092852279884069091261937954964616554801472272667114680820178949074906879777057015003184202507916769563531527240993331441012048584031740331427256920546162629656749262796512161770295054962146918123030261067997295059978665957970074853079052811818251169482806965430825658963704892184921863262575930680684834836125955034811336180271035560356272831235780793093807825461692762470163267091180553188274641771700585925243861560444409744822587276729882639217133270362345428013026693959571849075964201362129263235666615262297288671891291294178186998655800721801317549271673618906131220250147997136306972031626165376559451179354529769303970338276558608907380686803647616499528468615233116929092439606491251803402773426451326070984355051574606421132838598067602675769637494070359802843281797961565784032686814070420234146863733574137567996909385527914463435038613756951893743994645189290415247554321980002951398552532935496798699533088506117310364606452991115059704706012898051450914235894040858237494323282580570498048664394980878685566691340231196020699888663630153295089158826328274223659312389939775294136836449022318516624791144790983263311840588609356935303184581600977006017176147233232433585074681918485840970882718260934015970831456144537906355456152301130200820029591874806132224508692555218121142228734004590595176746854716104996433458646539523372560914638208365394845604779028657649007730774441495053110706550845010411329908567696546264354132563820557103355716940013585485180405303011000220288097136593614148089369206445609909880195248577260128304181723827029495200276075211058815266007985427517262643516794644722561178273309910567836175587177387825835722006172907903997368417376208987861336188653884561243498985874558439702326551860817242004809872870280407938778656779108262466135765615607821100230872695831050546255480296301029994370993468368958328288391353353244190293458456248681531234918577478029388718805164308123352891554979201528263580031647686656046002807792478770014022123034757749409824893351310480675760535804393984331487966075263437741685229334200922396264433582409690915082136406992913266059802809469616783555257571062484026608979792505676751721458845369193910669218422010561623100893936157265488511602641777104586603237413817965193923041307962855293005478282089000007323536450114033345056054278559549961359752243336415145189197324859699541246751312447704399628846518189804175214942426076856129275085381352614341633121548025142388131852611521020796337444643384797987971986086600095832088554046831322278794961150332025225404299685662611077562474027998662876861360423447555202124293999568219679556485960540974780689782383038911235682600117281567026925755531100650988430502744148816930228808371662598883523870110062816193185406074604574854398278362061532510124236531273427278671706305826559281769455865868390376243220202713381258993075248227822591562791342230419805648483554815392305265434202622035552501275781282337071563687263886592471013808225880921789248294374990063870749352560732438378330304456187079446898016508641325659843663766839160710965792364495344782411648679403335877127461134386647006035166934908370734807711656614227702019361181826323367665421237404511452327759056488094197901805804011627974543787686366444044850570722269515546866271047930115413663639079511021788191157493885131789379124318910867487646075541670677232521980123902503252738563421968242759856493933420739612791360345192623788769147867348359843803083103108930827844680951296532537581040751617569435057094190320233275734766167737411161318971336837690377143870894871703205120794741590517938567300904316443193040209536032588783478070516366258922122136949838531853247860090207285166514350325876164085400271524590525385809268154651738989636619274582219877638706432547746595273046172178600842622218618327633016960810820458384783519394230753930209553340236777586758734075827460945043180979005197501716057387536350787374561405539808163630023437343280252851650816539116357554366882528980899210794216035381488317492593152019744476422554405408153529858974595633241914800483898116725386368499068188146511291250574760725165256767700370496628532265013240525459490681647907051598629532825849467339362826607911314249404597550390760298876827527007631739061355645328187601720221520628467641044992833806162898757816893173387593678853450234447743392375758132474613260068806841973251413468048448255787339588454420887957174391868394697919662961673484566794237401266860928332461413907880368678176135619917029577175142897509463755877411351078172562386836289379287849080281506836134330540233457057157133212607323560533478733587549657529771213087406309942472507694295881617727500260330320577248097900097745039442380065295876476410447902652487053832445601684313526036995576178104910790167161780199755363010039060940429729026353480165429118570704763106364214858169617151393146479218271643826261688754728594751017549293932440611733917178065132870221588296500110106736195266589856042533549995908458322873029358795606156606543510729782850379956052604727718034982951401914350543340368211693368180261904551106668926562222892123070561542196222869996002650340409263329998295150004062612612237928907781945533590042165149347264773402995786267594081821049624762791164662765165187665293205297433228942523609112319258384182626947780864385830953812398925735420374255324736811112101185991318297435196200035005399188894488850372337366575728744219200550832396063296636993537514130612651622163234227692965097204809533752439139024775411591757329627630764858186588610253529497097411045899784299164488067063758384850683715246859002564220448711788577691250103415729421971678652608685826494420844221892606951394656479453420521377912722528756194204658122946609668275260913656135242562828244588235061178791466167506474201054473683963800032710762127875506143644963995927151352290511222049325770639543947342758265241642249352707880007525766812283890405539432288852869438827027522375419543668850803037903200641057742749056555398960809812270681428239542363712671091779490388359720080526197462934099952586122850349834515678027177821453863972711161488459595601711077573615681128548371975129309791657447391531069597789893176562883630196226663118822430344460328520832914805837449527654077216594882220000212053250960076864462577290042399505372594232392582950717042836490675235704064213926261642578852313227797186644270925233076872651631132540566407236505494302995624618439833264101843759031746411630465253571407916411356209658051921099917654118415493767117013078938057994107281148949896325235378528847014245721801003819473995827269913795064728318228457941057897283965301661395716477221593463695554434690328566502819776480083233237228304452652392367411432271528343930669576322391433959882075449842936687592821787346799735719941252861924463577388058467609440735391755795088923384804842077095371971999984323781594457505652847716559736131398969734684475544492697182515090841593367612325785599710462861705255593308465095208501453444378466765524358187113973658583648275152971980060246014770844962877478231366600141661713287381523244498130990659046268325242765579188808893515410160734170922823715150155015193538645534977794393327136306644269994953564159444777905648996078529337865720052731549203639741557629571478793305407377129112314121649698387755847129593199722689469811333382376125061658746717236318813575837977158376667812578607694657292020433402698870663723229036298897610483326764475798405741521887010194353525674038567070399663511677757642942077203878525273563720137514003601164558569982942643047452039154689884196202610641245038049479292678904716576929410148841672616110537339596282308434176238761956832072547736084309014779372778739721905332021610459907456363014136982096806246392330251607150901503508976421432025550249106445476155910731403110695823984104439551698003945342778678497975233665063657269969148095561880960910448468648089053746389230720765971801132915565924892701119605611065757020989053825034848575873935002742215377582865877799698311834121488028876078866377542920043248137841866001256877921281242676751758649530099364828441053960826335140679416346107723409982510851100404984100580622660573028331483228598691560401605162821424885295391703778804693306462693856309350657358652861297598377769901098170794893085714209201455870455883117413336008737441038035311139508594572458305766996327702215969339104002298776502259214889127908025458059868989729783668457711770520058257018313452677223950890812695484770056763967571176672248803604458836829453732407812979082621757832092264070024460272905206366658252281382482130760928656548558097566498044229152544031332145073553270845728955710428348848658567072533453294712567490880061941396486021092576999290861644725028589273294225376431709385165825414782014596746790086079823184126386901576127648494044425740979635102605650818480777395203489177679361673615573049735282356249555218181187425679315896177736141393022385039022176316073695002728133255550223739515449340518254251473420181653188740325480217873916986983142465866481487816742782778715091204467838701086043021952366349570669595767551199535664020884136758163769246930186012430715025382481331965546959480734370232176471604937640043635609991105234684179190674796396784270927389622819392903229180776341307702746549213047780517946036259661376711592320023508351791815450957079680345965720111400067116010630222457049205562240689423884209701053937139110908010509515002598928300047868077934988476564420739831084766213356127022246921765167760445202897531594027553615111181068088812410116085019268800697978790216529887414029996418409001581814244035694268372550325453791478945518353476940166179414218598163467787823387941677417849656832308870969506009338519688271167720447603605501316483043693676065835813362551304025446541599723349966894578164029516625430656586488437465197526715156483640621822354982902327425618738820939324444781191528913532189023282659254161210191271167147689008537757901925117030705141832719014481221035401162788505435583838977771363643481263102394366323240307985977155866866679623101847501939286769069708372565344969019438222040795794999195966927236279722961818069607803527370167605480202958815465136321564339395211367020898796619489259517204926876309779501739185439748640368399848750608797871823601178538941174418159125472889731100011296310599388545553986746341140147127483734970512178904078431018521762413428200691217281904263320145854286684323060744430605861418964514120801306391037388685411089757987767430434647431761419390638083974508651702561455055222782695165066117128115137602409853193991641359696486723387010298128237088118832677432464646293387607921787043160203547571006019134128438893932955275513727701320957121677608739833197922867708214550110167209816434653210774991917178690413551241681864242026531096769815515725263793757047629377173427723753166716350930011877801675559614242609666185599882696361027395733657424310977758477388740399379786892803154196709126930641058588432207774521916738039402610467877099983092839076563910555944326596346128786673128929439241107085249530760023453747701671102075606170854475944735660762177897397772523449814118472193943797104050186272429969906709672974965968749256406317004367268699190746090279746781752806844413883883303536375664262506399638114443033140385418945235010285182057493320126343347838688632675732450366803532328779970465748782727823602732614813546143595736911628689267238587412192125626173589228567843897762487873476067249948804432131554275363370325171449937031852814299081659802355400423305898441193734227473538923409331913123880252988955739493186344444870276984509706702054928713209730894981596314499185856544651499031328495062775346092560446613368211339795170696847255997326255653660256544841665240848817683266003832311946034491830549201813955369720835712946563380268182624952601602505867036454089745456230501789559802930771555878636306907694681981422851974904571328031632000984712931738204622329408211823896144776995441537661151172182090917730284609264659584349555247998512742816510548089551027603840271354016786697986933939582166096149587476148637694682259138839699779149163687238966773659908595141951084304831581621678989539919253791162205832330122353525938337917328207084319398698048873782866970388350111654081606700973451583309731072077970085853321326389605439513697196335516707867398230987902600731721878457726795175671067980337087240208724554922136924503422515619092885053228970674026424238621461475218936259667648239442921901325706296690888018780030092157694373659414818551452709910689560340120022229540402253734394974710770504272619097261075287187719806275859295275906614500679676447566128763860512286956038567369108377413551372305095055067978324499954908728083553063701693898582252865235445603698354145122698702188699442163790407625771627223435500736847165548595087619640123475187488928425893009675272278096014965084356645839010782525544768257231579296293681927831802321464249595919437864229472316766571753124898979538410538698383111790032300316372196387641255645984463723423297527650636907355389814812839579623556462617555525049123757880768783282682336044947997295527701774946494322972494500857294121645072791947851061094411708881866850337408216246805524177907717296206042989867110708084591307114430850915407489843417605543199863804650937791201960028069887300270092025185833047193414229514658736606560248774381059771853770318360036099584877352601488402009472787676254779378002520205433987054257626554114048442272204893537088798710069948651119362403651234097506711741644086033940854395593320664432737402315404168272458854857391176823032789546616912028253993069267384560166826982542806887261545862397231489661082861083401943423018605231467214052869114445117265000222049985550190369220368093345130719660864480275671824371239374559194498469469019946896567070271945668250320494110970358381669246323317454698537854866357967835679646621169269729537834864603244202805251771589398317442220989971280031014992030156079750079088486983185159183416652371508448187773485339016987685343012653645154320675031843867218728196587775371032239029297810757169732298815140930494708311113070559854277086274287967275263330845476034540898194913921524501508025517315732040337086281091131098835085427026626637055901095982146937428048873346444732840052702019841425335584946504632460101539301213773913902531682657887349636812099760142473669722028498689537619431845015107822650797375603150230630405563578534136315185718041828234204354717220242087739034982805241139926869228452844835907174733897796223894647179102905822066780845037709810476086842506684796020276938053982816026553739490603844071171608046665008634259126442702600165628591196197093371046568163488702182595748237649623435419527402233435974860383246770663579741648470289112498173835016880519364296015442567369231818377904410410279893162184994751263462491025755639349636458972549077850187358751484710467631761931339027946533413120170547269484576539859072952221113928667727094278764435481466460244988811276785409066675270189155419041338340594592434505145866803654929303019165293487512246735401804803866379856341851378199054757556391822297290810646082782952561592591433570512461466860172648747103716990181172324343539985495139926017721253653232748213661909343620695819226331392632612969048747955235617704633396755206922216901940692331773134838393817463837616547860718937325652480121708536705189930831070144054514733860803041482986810633878955407827398901448778433714237222581722208748241806749544329395365588314028520995049917016088529607517543676258674712992278314818430009169644230299050915924716895416796079885423002019175541135822014882378920516480742708396343493121371977796150503455136208212526359963626981482403158279655641433288538761824238323727991354739633106507127806178934130325619676255908552307780095406066618297461765018411148930982060872094336014432246610414744441546076723941857816286811274255099696988901451007233684832971109544282909844419523743557305671343150157153002781402594326054278725241192939508560834998720642221778032533616196140993428186765193671449898681761343608033696288599264672336755875296388730144645189604212743996100107357753436382340903491512467187554609956444454928690914848507501670694665531441394902664056040812941261311665004399209176191568380593444501969506170347027043601418918420554070684813338323700750605449367765468339155385783631444671649197524118647213458155934079988885003651917801448330372208996474377805315659982111447762513832083928092328792121273633113240191902043399857975640590061369352561425086651979430960570535015402032732236757897922350303258334045983084241340037438523046518370867764402494405061097422779527058433892234883558137527863707188340269891735164538052503303875562385942140310971643414956213408954620129071693866670893653126193077807454202513464915890636801131137960766972972384553702707352074789491404672844661836458580568191160286475859297380542551033091462385822107119658324976451162535173977400080835922625291235376647135918065477428528823674937858931147526506092816820926989000767374537690206148707031401469635110665541128736223761517707219322028536426875215555389669667537033094915397026817485289191385521908449974354264441991325194117541839130077368730272179839114141602723401448220086086997544719175015252106075749538790290639408761178214708755149932939962614802794427246027604053212585334498286475126833913676780197904184140346337042654039567920060747023593843537453737608615140314048036339828802462947440796229818319659670973258160319461125097979070622356115765821341947914568166995020107353297112527891101700257174155182135785781838170360162531507964385948591113140615346330812450248748350366710479021707041499193036175594745325562743304433833776429386842212872357269587341029534753868551550117577994561947951749709700019835002469008946125032059649747496076061446375534144448884570292557121348036547314278618821943229933889265436034457435586485181027104967613062901619771393522994853703831390339811290540479259663411509773573327058665720565078984118417704757709730358097054576737579758996771466582795505124433207493614468396560256045808749416052411133463840387508535190064643139549915233130683180263119390247380194690979158138844224209791239415378309506769218648660807837360422098973635653620201046163682576503252593638021603078680368971659566548246742059930755967651523192179395585169402541313014255918227322626095197203804987179374629037937114287934978523563800638123877283085551958418691997572643787124630038160248686049089754830494060588033840164877961900827041859289492846912420432267962507489382939434166609069344533930352996412381897980257146073025095868308395032972264112282083844641208527387806383675300708211486404952574251842056332759870651791596944504025299952208664528266698183191559248062994382148671993270132141105259882591938491488481985410763304491374581551285222869192149848497747105234479897321540493382088786033169426022904273067449094147445937825118739205631375278301337302001179951334542836779453474604104298446105234547675936792545429691064555901285606306869979659926203314186990108406090698214782700079573374105123614677729501557650303930578218554395745796768863909481045660246886510451986812463673010679600643542689670962426488796464192430821667692085473708082960787464358645477840111497752256203371138628823581321988075508557631560810615459881331128379448535703597877446094844378617952613152998583005616603673062884924988721164714273923717615210779090525791398492344561226910882995648118479968224451535180902461971399257298100963726821647835407864043987049538150388854021458862761620082189398370975171336315652009911609211913340702003616966793970583770089358916729733896124512252931491845030579057435709961334245610546077807956483457661991506561500329369182781978104984674649616843481181809727985582433855460211494691556504507891623059586391027354805857744527989753031874407414605415397933223931441799494640089907982126242878151722742864108228848911115320627311842532890212073709047243500486522073537254828816038161302484823917639213210469390282614659831483742184027670171453300791505045038783374340882125553633633089359396410146270105307992542607817884136786891717466310061339371532898486031910943828608997390656102424085903219122739588402236674502336553121511017726274544588614935834205239456927953008940131956915031848799800665818931652509003197018307794297337121778420942778670275637743510138575878896434004958536458109691569279669716833134759794972452682844273362787022082138615576657486596788557841196816320481677558278091711581694878359367663706739330471809042978176087171342698706355598714303450583580765865015872734956578037726533576160968058882205117897864009247799596486427749226692863116947337969371798103352708742141416238300564330512361875464489423557046838444808480217200799290124904170338312132742317030275299296409278815267067743081100769759552594718402896054114411878873488579967120672125804078613173733665667287531650986623861902184107188347344841312308440895352873788307182586032211416766453284502289575000757487713185996454405404933286414712800203865545793578560062679279702237019574617824758572763121952126177074662780550751059477130507651203383983504566807671933127109826780473147862679062871870254226901771024234483838781108320881045722951639902452007309548378884404704867751266833836074455885903265560202779710919420916725350778246952595878862634738501358270440037698930853555989949270657348944320311014325836451018902359317764399967878080258865479213004102502569168499093874557847057438026753045186358070235991817718620322853061129128067890514487840951405122437766413583449856595262299249319756112851423101489759319327555071253884961508192474362247334518331422521852084539882669646482377028139538261785268629200712639526397791100186182618669865188957174047441442151578838138212903863712580569327314059894422614051211916139885130777942949966994223789070030613381894036995537711758506014732942878482183902412408428715729506938177554230658550551676078330479009108681841518890178454272434763060222678346697175513722702471598308167134789388719493028485650737457603846977294885833310763457873544372650871383843486525948980621458848248021697030568779626227306081445031494314751314892854253092067853515285376594116448845541036143159110041196963450796689133453158517064970079240008070132668061805903097870277379291109152736293271085244320663296081743435599494961970428229928271310482424587872724180249920475754296835917033376937759824365238101897400319566051053587855066436381110515895117062042321725687250628921084288422547541691488758219057314911139602053857921983722210036764232392002408134693121058312254952194077121378106143049803604294855990533756861616185601401872488317945077405048216321721134842707985718292827599088726024361646198579944164853944934522168779571655921576557862085566846124259141881564296780741117545799528617414049299762844039621218984750947347574203443195875534905486323035131017795517560406658746594072566096243251804400164937361439644951698055755623324642087001171993352894907903233830196716656028965923288810283659092856020764553591816930028512729852549404632776806001060353735211730907060636883341783008449427253263634688729527103522368133032662708667512767568983207597695222661399603433084965415630380857776922889176651304579803084773308407198148168223216634156939282317994195812754666173393632338705424835105987561244351062725463844053311448655784148941917554839777678434640505899955015114352023132352223580734572305402284404787114655991162661057364853384180253447418388873884315056900394328030592449123632345297555463031486692394500361874740703877704465948598645255429149178512244672435545597334889206862046086375797559590705702720522446329701194056262568111457641654160365341143250561582746657222847637685465346678909557729403038860833895695216623894188322517747427038282771126673274046001610109724838162730345954375896905752103674673322289457389708285350167433303594606518671450290240222719447801363423664846789524330839983084155289563012758223114098943477636775640596979162708778946369746466982260285965037576902394851424963551508639772485040667053575465026787920706768911769878579650515299668396763281878684011354573893585307704322694215470689087924006457407925986585021507851754041287784105546610220786001101891959927619222542763461842803237861360254411183454141724488601579354033866718183483573326853096062702418830210629288863432292260704115732105626478717114805241454813705583036275257824999386323794091727250704721995049688720312254012283245102432203883675327704634297858351324654299983247579938637337051637000392427800092532560114101573498177185911136243895465658592420954517510300873983261400771873115140967069552648308086134916478098995449707761453323617692789042778403648862796498619146529727774381725728822101005503749957750946050213518672004371628521241099215349764880499693209598539556842088888029044652011729456036597832312264120688015992436322336286607959478669890507269707324517585456995560100241218523864850883028228870013374103943157807622274832555604482131656566306439680780663515227989856039081094457397224979893036198301577050968469427728865634594794520586020101702171068817649408107891446813293014728782893968408089553158885650148623331781225464706228234013690360026114729907620520290673729904704628537334867094309256449345665591015149733856633998628132360649152367720652112450243068665836973564048510136776091622030878369811154166746451928664989179133235962866201430881096056907305677983713905486471762114971401282950295505868694291516822094517721718015113535908707595932096557503254179776863472594619112295923234951125540449330896244187993782778945250976365587545736300954016951340651066029238777591138786630532703567016806415586933194190994473368490193714344551634552826259564912057364097958170633816923569537296042058300219680892512688098515049402002670223108779063363618917714812123876175584695393558645514548771133289071491425878019810745653188720083595147206756271606187085627755921404313473205299082934489075576086875059359673896790953553085999865220270748430714334518347636895991515370140462446440507562387211652722942085667929044731247879363313643242163702455588545516043486041166556397530161118598926597970920229117773463352603211181750826884474421752430224887360810915059074865933025084540497177386739737513034266580467272505488825292416733033420007080799161358610612056027311865168975877845024191333247028894480464687788960397943292498073039191344992418455812673225305553736962680899170658141269687611682666812704511096706486415110209817921611592974030897177808858457243825942140914687540352682397266494962842563036030582329100879236617238719983595572274090560492573756802172305955203310664873733132699984807619559335922219257607013023841600675889801452072519536977004801874760561681584135603688161757083505296930523234828937808690691130382327968962872742168860855628934671550476539304079431581150514812236726936680540033547476853403471727253593937366647121409525425272608094166193726890918841135106786963418636707203209149852265341048815289438346115813982233479190592866330827121144348297349756213773653594362124570204347667396336651491647933069776099615675775303487426376797718511574922969332347444606571583228047231972344238982250161605760403650188708826199873855498206273334410846077877788402543523427405442662073437211980448818320092929230019359921616070349282452415139029633617954624301678072313130759208756006374082824223177007129237605106372864353707154733887816474451370174651564484070420643336506657633307788512517989363561960815059500526051367059191333164396999803761169040012504688149128687256198437583532218563787159576760520162486199364506111597317644282208114685518429165632872481367076141339470627063517859094687500731001330798965568392362533277760853933884823607730313437417204012168435685163955301931976169319491787108127230012361475532499087618747981889822988082374571098071686372953545426633717935176541987289286285037898625810913860116561397376784137231059332544588282902162509619274622828645178094666844678199771906844722908120093266844790719722926255874315194708296427893294237659582232581076925947923993171994852441195994730774490641790984799299418153295854896330749872801704611643940315568408219045526295415170309379381928122821720858685916025620380873910935959928255972923764369430189943090571338601940066816858706478823665814029160272248400502645711723803230896173594396392170896913226918498329810782057277148816981087859357013797142908865383332066527413425871474798750599689073905489517417604342868419318602558313423793064330072159750589358486121397501078814912231416762694830098135391555118438312624133145974467446351937044444227101839041866718858420733772713359901254678704269119733817380646001893899234985468986550561483274984420845827638062754113103723686866146865734518953422791583249133274318416562832655886826581905533805777361329308644961562976866324635230555764588727916804345489216927869094258586122395582101591103918109146315378543223739841995646137482314276758198637338398866855449479312243599341714025076169455788213443160036194401866443510162534952336495548537501457752758316669179499714434734216908872967483372468537859262913578726418434334632396033297889811998464706635651725514070840279395132376514834850788330349112930369002225141850481734459968685915534415192486951596476968877669261235235802539217448746117730943677566349246442941237025919339524834500743485533092499353735252923835949987116539111404617196296318082463337046480546374696912217283052707769002406287923239899117909310050081072580037642849829974356487271719466802083398219392193601062068019748385373444748647967352106265534620676916864699411544327945671623836989380649741782742933861405098609799320739360829651455771972463159710007762585465581751188617542383909980003960831586026157310355729149660192127169173012911585086246511323544795715152112378529053211247183046053593697275896488270251560322391890625479838557961563362146596778584547898439498124092010581290418518723089702845994814239115879349447893350977777031213025812653694814558898678513603269130948382873847453139931478319801026435888056428721364072280227011594018430650754180686191723877757070442715904699689161232172410461208083696228865506312058871555119833964428076650307398058058167538886793358705183190570724858610274300405418159958345890514827939605932384357574577177374421316083606882982601957519796820867026663701310859374306249665916690306467382062367943905714786073121138889621309919230487580540932525404708303902749822209512639707995823318820174241015944469761128593666322268444291051771059000465187805709983862173878670393202249354134410146538726290978177200373457152033490294836802606020699252615957267866000406082802206239149612559163823903485853036956494478366825482385240729550410788598438787703898233546705935039574382615035339837684836306073941320922481321128351054732379638955705231081646833344072187597894299230992695628981184236690010757189103169484319290899690863765403219808458726669089251082790842683332438777294176301727971478532424607801702622999132742507999161550433801193504150599186746843045359683276018379089351873380740598369014580509947049730546859079303892819737525847330388016185820685694440518065123231966363428894659225361666751115315583317740550018486614984428837781327103078308117670514418382701315122497457620539405939094987793385778573614112417106094846079839850679324649815215008025037531044498103796895175122001086044045351612733472363450935541725223445364788488767911828070848401616346670831596047506226131465248566893720196866611887731182128467180464430922210064846010430757587764953459881931901621023908031298195697582350656334386929199942919254155961073655592694321342349076755392041669469926800630164871876764959852716714739237366506743138682533015873878192826624689452575728911973937839120419236168200716370976893409967231444462369787897649335041255996994992183986641576808286446234055910128956677837065618275109193758955793066804878550746998995678715719749914073451014160200088538465098627082585773853036829526924616066931175326381876151778061183577947058943302472648641881457439821081760440373759680666910070482855443318347167060496058991040649654455294428298572311465844420918228649511100419321725726270074959171004966657381471717121474056536328905881606058245381010830774157056694354399897461403422921682408369334278581933761655691650122668569328305662842269552955315087118943655636630457414502874735095674602953827753055332370321623928362295117366685932623799325874369240285484631290513161516153602624550058253052353664397451089454135008204634008185334201594978992805511930330191486530222200784837676877241766304573415176659475801980736827310451193542873389644182225491471854079969844958753320628586068076832801875373204291699673950125850141394793775834971341662865859892117223257624811302509778108750637015262007550509306998375691431069615007077696412548653350670980739935889904850309330839089930241763281224490982394739811549877431903565097889466787214227213199916901094561117155909705163848578741144174365606323519294759475350089247181796292102961513884746051663664999350166551550770046213099287072737692641723861966659879562474966730929746959844870565064076799866157407882989258023363944291733500079461060883282310571215026809318745762194096354655628397645636317959711138715895795024995334129219120412701944550503141708421663107523516078755079898218778738788389722437901051142107429798927638184097597928772583577883175404976995465326493549256486931313466663351753756336817223770003347461287057287966951678698597283540834422550633106966026087680878408742557751294984005903265349983285058541043076436288929529332247597636540959267389587193953885398572204182943386084416980112714292726843671854155552469909301272463859508241691302522132780955891670225803583058091020091639403869154944041373254916150005937358979269192512123470798626882401434035552915861748321650972976490384231186363661446567653919520553411787437408116747553044125615089192211107777161495757555306602538638630941356162132510681980311791512325113591132699279918872603150962080288003043881654038669793405719546450946214809375579852068257486581909932815625109110997080389029916982959780868300204748299750061287286913899529501776809119476214793313401915730456904128133144666588331358440604309019344932241355496011003826423563010000203873564182510632613901181207774212211952041941127810873516627571936969099803404357750420740677208189562176808606623914861575954070468811421524511344801093628496881243616641243785641884816160157525103695413198430397864758578537408387866560957743519145333293727628418759722314739425670617710288474600181177515805301326256305629578303982064368836629989714910304051041111976050159517287763813844684269442546159734425051750140986193322185796323332955901590280897611501253213072646998004461851904135842577320477035607646220187741092582378060175447436247208737834618491265673226841110806177254642927822532631038320729896976024147555606866665091041572377714515450480631720697828827032318313107086200703142383375424491154001006888595574790722200501564979492235685323132707804668945477771649371214427414751841837429799144640245348749648182642635427776022185495065151994950806651021162836805557152357111586151331795324491880445174404678330593276314842982893750032121682477352291930311852698606786019306953102871170245194553184553433815994949967080333865535740418510811910997112464682296627444196160501284067128566078214133923436809091353082000226090811653433298849795963085752934464079482520574502015854332976332111479464980230312298459500613687446891777528579527068067629282342348266784109031429611366942844845751298148100161731487484012038006857958754627573149883778287404514438124306464354786469118639091352201213786905591425290481336223845146892018403278843335920911308664549588954508537501912282319926011006154207675416076869520034824601476453896102207744885588630715425474617279833948395633708955294849077020975352277146459454371853358066649307420565013468417410499556241426679715913452839890441092437333785705349290933461072848783853565978908121717309324964686831536764654474357651374078470834831191189758063105400398416318285800391275000658012488736534530657656304908114534185233518445601149359477285690372870137476032434978071736637532828238235324480942973311516792740203880429612163366055275368732562592129569004656215962815038817557674443965121805834064266577570889089320275402372968920813454612174237103226214335075274698888283608159171502081804273934470860049026107195168979811182951309913208621902600243988527633988155383113337084585209306996272712091489923060187999596514826309174188765642893932800301240759765133620218971231081014392229748940774681197967835229757677952834082784993671774313486613388021675387589895658493902076964654717616729337430849386137954588878270388169294118650464275218169290049828772783971296776608932840103260164409752150147993660085867967663960780919938890097922242883685179680500496953763210492476074023119282292411498062119962978886147235432879208307299544033483792990711841003167958779381178152111088814034241699287224706094684325953591237727472263749666124500974505810137330050557676402910350618256734564383707929309363082587270928790471595204143318689737202646526450503697431026040872604435736044649872270151797418866722422681231208167690947295968217305590137523526153292544226597188761823811279540377117639557913269963711209291707844966316449543116370533702084644909019169571571561097733221021980840194216557121665308358124534939237518046693143744791265276254938476491507557015200809958402160024454655287612793768229642827252318641188615223834911409937784000922489307679648797722169716554877293626844725766041573571016871410556996297382471450869057259127156627859222943365234860777766476503456203584116089052165258463216199885621739025665908138245088724921296949376651622163075172688371481898964358997091980914429863661009826548862892559817862448354066005530375882745803844818205447025503545077503113753794880768209826288182286376225645798906434220312876533615037193370814920754503776686135637942526341725471604734636608516144129110756178658279935673985351867509851192992551707803637527721803404405990099518957451584573308466897900741204646463318581169484961330678343428083249616563525145459034772519176488818393949313133029150694948066616339374770970669670764383898505574913474269958867003583095468449375091236845301271949404790377585161249535141785212086235227932097664858827907629562473197822268912488847765871996690226975212955420493042567808312364138870246459011708975338035865992404304540255361047796157424683840380266978872000423556976590455564492981297998321299646698841377644316207775151254498009730681278178909703613172586760664714562930955279536631199278973037202042044318354377384185626946882420571592430949775329856671147450361858011875791761016488794919031317616140840781772969567636991257512399825765256827082967445966723792040543094648019541991701659155199572003903975221635507980569122934319606899488315618817616265614906843898852158699728438322161704818514217263379488999710272866355730702762320968570177320364204035345403880654723605547671801232382104390445415912388443240382913508878860304895431469942708199146388760701726097899262525280846605095120018403887384932924166192170267731316435748785511573327573841877177917661996733024371054216865880406845874935065365335870986777895734934222022736211422529452596351899763219780280694301828378184910827803101550062732728961624937937467377225947200500142331892476237218230866468642839835419757263375616343987509739911936089429345174278106992167647286065106591634000032345218370294522725881068928710086516409637739161062309031202115440697097727158654341011681675167430392436309401000101438541185224174485230493935083474351359730317387441653291617161724310626235841260621526565796236910594225236284714840150589942832834145176565487821597130102841441965658316754499687848994768871457358850425509143843319787882058049951981835308538152865747155956633125877938383818512224526196432726916332030002208885197931724659004782414643817738148100901909619664422933588709693281424644841392653382725983272494962204228995141812816359217104128334212120020106649462067302951108169280907873670008621202629041287945234410555833753682134601871596331845363604356554570851956755098334119518551543354371168171246909725640823185770301432072395055400840321371024756405450119990169293249276834437821945350624896368359088132598223039419695034895046081620075828347018173524557501155277921832203136515330699296617680565589069209148791801471092912861211510944443535038624855968439757940975388416916958870754990052488938947901357568421894577862571848246395710662798656991357629824886973036166624768096451636285303514649858474272034067506122014300197203735604063814423294253843733056684465694127695915880471582735644800118699378724974358291160605071046003780661946759300948681463993037961514824350056695637352527545998965368373101906659043518600926468802911772087767600422866036507560242937548338951639904333393112923949959411797016422259432658662085503612297879295043302828484058938739460389499848352926946497022443427664506778768289583597637033555521259379696490927668165991768297151331469565375143574616992776462249020626045960655736874992281127627492602668630921429936899273279083565630311292105162138026169462783111699127729404410116383164124598696122940541704877272001740133768824086420403613357149777453863712504753592924447210156850688604255015845617252391134169737198323066390681007860494303284541554989030234461680628461098197369036096973365194436056857885771304781287182154849624181405444689334367256054057570911925699432316050617277390744681039607769900128659530980001704556243978390549606602600433148455728946682227528292517989413423150410896185563444103119465977494949574609187596483114487754363621723716111850577434522084724198066041189986018673706667663951239601811191163908361562036904553227042516614119622990442773220571850085351774720259469962779279985095339249212977920271614918544858186743652217280162239783403984859037534251124984170775854759642390788902458947801084344547998843280714023131218502535135621619700776875398288077215284394268415861358829384761679353654182171348543471156820806218986768798830866469026755781127583939776469249688940278133376125303716726618013201228337774045561236224795110203789798227028326856028846843028666903143069940213410161723953641887948113322185711523223183059595074473925104817336240425752041938725190283842260346108655145595417243354148882610440339812450730184165689675274620527519711938235027023120049842736413005302083058891727607174402647036038038518377593481582868328804697431236872720954633848130631037719921377862800756144414245774804783573462425667396840553633924942786248905130084628249843611276251722263276129931930090637048440532897569873648927150975880543786336422382860165275385015856555150725726426171290315043507773800739160825920982785471375659655616206597040461092823945855501739115337154753555932262976922908965068660068993638259504896011990463994154130648612585699615347483969677395844326317214229242886716679111184582895334506051932118930035218083524383460197654837110384061593519093136797802266303286190860132506032322663311454345554949366792598747079740445979861897396629082715788660619514607623749455230781153431354199059213567825564152332599047977330925684336730152055930440665271123286641318102776362332431355608596997684520301621698073044110452784822541076057266046188199931262003262845392980777472643899649066674555557819921052913120372890450547924850932771727507477558291669025159477567484550577660194803567333462517032532541282804646647032484798910924389383863448332956397181365958847250760067627637494241612351623111415710153001368060050829732651543028178735965154148682523568318054515433920258514845578761158222107782609381356740742191267149434116881032016879559748207832986902056315398922547202539947684283933188831144709235468516580224120533566995516792391350240333396456500840010214567280707843976820787203308260955324368825344480290502313247046570782246297567422802079444178053687144550933409906798861044348001951989740144000224802843884775205494274273264585505137410611381773395590956861908151142081368488602746940191917426883146585474201000417667951804892570550264569626208561932510146579560327267030381236012763602440414350773222407255884477320610696397543871692595458708823836774476503416605912581633608873548205841976083071101856272939642728256059064406705790690185312167095586310599297189843556841680737994251694547398308629688352738915803902676488217082735990188207339450498401562373743053812808703576155562284944625966285133808442376350593217974512586360899030662904632015205614928316149897606477861711438069652553329643160684407197354915915004755118801968053067623120210145331662444502652822083758959748070724817250370158733602209686230497791096124667444891533392678327319716514639980442341566810079521981582170013747454573278279402781305461107192255053537009275059418178474443266639306057980016554584670765913412146530434078077477782333166474469745373127290459241953450479828989997271298537557776651177384735406827998703632838490238012294772005700972306249032473652587711372407985525375953916463702703466746502320123997911862205796762398990239751976643499375923360966336691014740288037252205685930109968248995065369550830720650121478682697087952142450354622314520464603695820281507117408843032629300816569854611270383433626284006721938873861373869576316086789053903595001318302444900543973782137373328136739040201557617417775618672791779038724593982920612690754005774123120811280246294939435392841709072460681386505190701682822472395418149484183377152641737754696908777270558478772936728455220280488630407807187757721823075097521078138473453228434759864454521701345633717558915024558386667103336549953105548389790806876026538046214237623663277233335533117127615691332128002207340393045463879462776046442126311924293137089743633550255317128933350020285886237047860611413546976871754613241773674427933623530474585710678993209553692323100813019545388588005921009873135421211590482229882195574938047865591827530205145472717555063804555534599445171757202825818662052105756131133374080613621372643966622287692589978543299697806375753779619103579520707719951515706999193160021058805626577370259046564476197530498196577639537367246105624386285256764964782120613537148617819775839906252576296246252327418543955616171306126379090093600722251819905583243240569527744389716933235073971929374286977945373288813739565884576487840267758552300759042587100460659264338418097879292218458901550979511412039807191287120432633679413859959054319804964467434424358111159613193137539618160802894033812868894924612384603542786142759842973544143811775309777007618155425759424668063797833184207262198400438067193559120751487167819224899280700104424123302319585948567855151206861375330264393467352830328506323433113155864080982081170983524150404776679251806010638097214015801826614624147229251641151146478976284974511584909371871430928524366216210104564747194724606259882620054149441380353414845481382651584947442696337041230369788863941543493865556399997937993539481981545724528227392388453501821363541980103250480329504259585355749580034746597347983148039626857899978824753577915874098792383441995016501335137129777578303906306951644197320391289062023565144972264446666894363904562491292443234047222358450439582980853273451426657631637702817500771349095212531472654067773922905239808293242683670400600140309839819833332592169520276246654128959519291083785000691696000738073914721279471467480601334243575778758996736143248828284516538866645293401567702624628138414138426718097522158751905516234356290435311170746546792657957990392171971637157362533661034231362637556575649030101320833494817744653942829387167472416879439093417933324868228125656692138053253557871953594792373145012698571085756989919835807433113034276533176236693934759259323160437763201975978653741936888795920864295192738618385382774964994717144956647188916306716871738692752062624331562611187245464387307498333942885573856609235294715828479311353165301295608450099931349427612159882059938841503625820164795775468479475738874210875072290318828734702400925704578146825171744762156924039949560724932117217978138978911034644708999232249493722809883337658613852300647447151808704145513393048180890623211049829528720947873958192878458599991299450506314880367870173568161978940576500309268800363365811842253636299822737790837355088199341257752024531892876815329064486848393267602490112719504516472898749433425448153071443886529812103792795942134281765063415606750937986463601988837177606421192162927003208941652915503415984701544766372266610457263286683243292072401407226323136078009892687379538533488286529237159104873087101667329896630953710363885507235650862890228243364973802444372355735477642210475730954222000946796920302548333546726401305885971250186044828485583122595888714704340457114694515059040973421130711997435244854312945096122477005108935292666667649651266037989049669467144155879622225744070912500684321801044453363082802074874923824180647458587920478874442703198452882360444343008420023008316944498974696440263922147587059224908381492204041843891447528498750531314824818725983046607708616431136820793728218527745500997264307066112370664774292798731537939878482485581673150731337402226477840076438034688013275529853733015456639336517004887097239272478184112825107822784505083350432285461206212209112691060702498938264531033322246875951379455472885218214356301839736328107569510225746902974851795950919041242201922611356878518640047203808610876962622549102553399466390878607770331590016500941179107221836736620513289532725593968687419561135197157078142356259589864385860818758716889885363696662913442916422828390137841766901886211209994227853526982133193536090659739070539684852229892295410791024256121817332878052764827514652732777449423427269429761416045111013335103885795716049831393042299170739792606588204260376157184873650722690095920614922752846338604647649090761775729965788948169685447658868957133151613362432909689575461727184383205927403214665221203511358350470043621334872157766217447899563322978703587331882000930710268115471273415501471655891649762475078944614974328347978677984899460514222356887083560723898663718631954778386807906617893464705522222152421563432152972769603404909011222650332660473650524033518244005263575834260562979263210919178184354529114606548610418455267379203106023436854729739261473141716651577044188598359999226538173252256816934179286175560231791557047401197949402221094137208347431170367333645402278323556883176335604369112288117395821562483940633789140733455781434548518606681322299742936924921036814594182472179732748793138266916632047681466664501384220191947675840782249161512021570569161051339756993594904129423328903827729750177755316572885116063467069147764508086711375731044490453744961262367757752494447434888353696151741791199906552089082310132392713843956130255641246566618450246880407444533343380643309099322131603250226294251188316482328860541807767530540749846551064895914239554453275075005466953209251596431463689186980942535807978767035297578273795925009358973738185309614721231850925825053064390007093593227022680833888659496478714345794791230404936146319814021552774346052794534385395999345228153223745307716134083196388323419182752059093000289468361493084216649089095106198697329984083437785312060555087931319917235137084922659482433014674450651022410078665017455538219743266114542390239316816433403277776964269963162389721192479371831045452190910016897487995303150810546658738553912410781508327409173681468898834129354075661764162582588377126542928597298471072695187231656660404648837571018780385747859027675996328800777352682870471415545314692362960596051278841295685225746034615117207098506450304782251457241938244254613521298000795241241322936661435385181820799548005774146759081970708453956595495403842268200790209875544112537255515977437829136719029695862021521033384302221306129878733570204641059173383822004772994019068746232105475521447546114218577551178378192366206412941916750649649721429269975391055094197252068048561328152453433974040326608453675130621870105707159134669275905257369299729462756698371630653528565370658271697432138072367108768721305933375949411234429736927122045625463150183724049381805475700426436949035305405018276042207738340392733061986253974413225636862663721843212866402801959052564395087712720169137359728663436571045032143954503875405293427862259821106759217661320711570570511094131282161218157964347812255836616246104053401452264467854962365774458553881468381485486517150260367981476504190554484988866706918051568294920503841172103691218143279156481871396470591114877454987825562786125178785252211707892064030520911183304215400040084464997518893256454826209566761502855886525364334156749864555291781138919987535053054702518663070883418643797234136377583977956806108643368126538059735371191030539409532470702484830363520232551686599809214430178755100314223594893754179480339973201943028568755950019372561008239493913053959113294399458164740430726175183125202125558076592122352110844362259895318071697000603884461715016977155271800733501097722573722346039670737364940105165335067215158786416837434114705159959475162980547573292535718757763280051693301328781370456698732426511992964949012471823422763407100254528435470375993642140471155834193035768613875754284109308403184008188144589611365786447514497633577806011766597449019827868311179904779553610994619048778653441281438114677592875003802923263711151670516442956645763217764569355970841897705100297870143164885778572706933523177158115299408292890391980046692462048676702128408663708886338903238226707574787283383759730320425555336071104313280688716804583842619575875994975902638099540767980702351559589413462172697690411589076555345295682064002220924624879179953493205675683023635480404253166022770594296121361767203719451083984086104828413452327108786170940370483624320338815208948302612544650198687154328153088335357371551187854285030304151570492054977766114115913936409635501950536017260012816931596585345940757840038694240877437495489643847329882252871915322458705884011230489657419924440520483727349390313155487791299903885276744110029757173556551973875634373139604572741236354992166784943104789657664219569335775509288149050945718516867471926612907401935255253810399077682238220557340477814762710279249071827438472281688053600554009816277245169611771763218632465142361246137124080718389132661202237272648084977135857490419970666417246444524188003192338960177334617423586319728730256186736420561139094492108257057840061766784876300036291633306866617950040729621911765996706919453161409283560962397440481909594536479595250981226351792143151230510596958634129941286863092125220270049995097188584125513662851865016346322561373540340787896738396318171219514954561455885252330079259124979447405384252195779706873917578399528321789088258575524685717131468113314051124139258561309515365163306826528564369945981588284128801397212830321310263501613755881131974039039356312536355190218725991468402344672369658620392255469290838988483556454361608232855732073366130885314221605396987004455340172165640702311487233536847128665422336014711044268788745701079041123247770782085084056772511014675368885329973627324450143505523917737971425211660811147380674745776955486450104153926384553192437324650512382895798463548558229845045527112530272204955857211691915688984762837825666870449933041501194267376569348846281902367600606478869034725862460641878183760772372833073434457999179080257975228281316625316758031996112327526998655516285930374243852570064800457687461907298063556575993184966522927785654559575601788874229408303900666471653345213413115741424576023963388544482218907770079983341640330387733152507604626024000501084807609931243412398515185358501707222481535617284012290867322844440435388517361785700254105020275698476702254386945865854310581430020682735227530982263300262499118380833698161913424227535202210577593788922964417202841454028982291413436098560933974426552532831393287861029010749983149516474320737677595765807928841185561085427957872657823069257647486778156255565478172981715429436136517541402451115635008489776976557024142687326284881794080479136805823816412035822605286433010048366272476456012526481436301150831811769754513968954617743594895560994839666683571026527354820072026211216467158652286165172166501403420501888473776562224111591265776812458869813144162326189200324796478527687108630695206520716833411817265999716817494843907652286083720059286245733465616821348934839456365977435610075402636864074087116107181476701460877725532184785392584554094380641986240914221166182981112352204613052497809008845995522066146301687221402930874160173124467938339293870587558730911367788686421995089871169061794376314638609059769779225093601923351136658165798367653054619894887792498972810579013036777224300951353181209336474959816217868965043104287378107904431927548375159787712153975651518481593045353790144876975121080440928135345584029636109534476139138244796652554599858030301690258136473490108242811111512344031392604221900812662792790751374588611090099577039268992067493573371593710751404057359994890469235482369501280798475384221315184287595549552660511278064715580488471163132451627159527966076925388160493996700390146034744750929483308019299351335213543709272470459235253193426314389228309908416234714025623868982493488999253197978468778593363569771890963840383101645286189593587367574210833726104961237345686853388936836336982942345056203361846085425100602675934876432145739212184723808211405914371189350507251925929007040391552268553176316768671420388603122826869358152903367318592287888767098904487553974115765768815236692243846686190651944121292067706750458885673494334813883476329196562539288584481659685195578493732971673010017309987503472725607566916628542639040647864488886388791240925821966627241448735873307083315852908061320169507802220962940084029050349691476764380914278638390488048768738540363445240889742465731019097243781445701391133850098749846701590000944385408633270431406154700867008894002184181790896371825815957194279438887677382490985386958462390950991034920326911425379748257783273984187973164292708492286883729527383643624640297925478516368163012495939772260015707723498153777449840603671941869163053857801127287458044898974030208340897844699569364785068245574856946259669807194248956873100518288379929838957583932418031286975051347101414227608389168999988439664363314285237767249439482846770484080228082763284886043436709019062375386963853467774824095104379683137175019054496877682312871781095613745061009110571336009068709372545223099066685369940295480609257804842130863125801996908434461586911203250631201290201608488612594093600212899409944513012230069799662722220361897204261533385360504843310826426922851982944149453884243811057154330275621073362684654660948199625902966904378323481328125832124854981909706066496575887559116670161930406760246959523199094233722914914055936253734345206844341956718991299542588279456480626993002344426036463096361834220868567828883729803751034252997809875589889515315047332245041041285940682785033886712389941871215249203460050032725643744089442348826604296902148350084611275382178990891809383575690426186285401930492482632613450433918322107137371155205733766066345636833707820731993863095463886015604967511370635579900718901778594377294730852780534960983794660364403188368337749506987948667994515379574941625569672758527030405094131694406294159257644011061526609301774612161875588570138905893968206187506009800168334536286437345149393735784024703679617046829927089144280148089332919692778948527189102161249324760417241933453543488949057551956561156507628874667121334090952650966575510096011969422762021099077441933244528443648302564694327934117270190947843093438890613292617919231971094873709541091896582189209014821915467508921929689140437605926993713335865523581352648831250556125584192642521352228600460384968461947690151347842401506855295337816776734283814763352545944776396640199779260821869857518950782476474812788164180313546681036286258606118951406623960202556108552525034756933592509243410964723868971025488775974339435175636865689199743568428051431034312898680872229607702630657621650773775031868846956436498466952678795510004333451069366264998387103995331258555801008411072345393928911947912902185194739297510726671316943977387753293543729069431055329701083916241200792448301313504554381931922013115101480338309499114909828455606512050816767126565921704055913339942553943304376530706120853284650752697056448621741470137897312920634674190289307641105644293636261782635213529600685244673620289011336451664111151366352203019392548711108259777708662523225112422883381190089774093017744328248195881617263437783157769368647860097013848588085615209662927567942614462018345502614898476614797184377960266859627214956164591814529122013388193730110341821349783037897361992789123203639820925798506485973483441413594217370736460803281913055140920372910879452138960622214945485298470411014865571372903441519764297189387506819169233578043001273269411418437033281078390886093606645313903581686147804148550356836521264167374075239960145237344743388944473945523463691608711177386379552615784474849342688913581591677250578298987724130341752769588487917534547601863003081870016476772094081273868525055105127749021883262482266566856491041403748553619942133992062258671069212307868415389657944630788391129363120568927687973592256309343706652063819173283179947641579666661635196114163822361581159710222555541034654546526025815346092557824392473554006338031674497177776788977291694628847733183745222278374584730134924013365256573212187603409274313122722660702882218800434579505684222856400313329219966672733733921474810458319266284125538258760992523455940107163320169109651524752838200670524460791359566494128757424304153281778895873407389389095728578261977347330669851685112029823448941521584091396724347375485092597691684611492506316396714715601612682130004496938205599760396052840562102740185145202232574281014777725503186815810892523647460486561782859232775625049842607280011488580335235262383001312785299435116015138303663503652516153501032480257996231087432600336702156243175642176253924203603599879789434933165488581882644140377649416724516408791405063908681550850309858053169516282198176175854328509633171927006910117278899794760152695119718516264620526445295900455442877452765971261235826300761295597610166221845735325021466051256761101638365493003401237573343811438237973708461856832802713990582166990934474289648601341277765542979876239813085327857666152868386480611867553113849030356886818705533620170395978391881962640288283030309970170442926192129775368969571033350451442332331383793402779511918112637801722882602517994223431683966237376414366676510461865776210935845758628607927468503551543968336812657194582358180996920316926408886650559964313648377123833054547730149126032471094029078727943150637869050113113209377883900007866722587128391878772075766598194641962083661866174613811215067286132089148889883031833509530879178047750499839843950925007146906713875575733491176767737426534721536830618522865984026649831495559600516869949453800629440163482698808060294926860214457052986047369778448021540555979824034247537514548211531908302516936440534315083524300207286616730431947130335277887578833198262788749157103399094264005095583188734343560390919091402007169317985041778314155253050233128675990292048382114818846628166864448033606909310421474027416451507627887954656398185638200086450371264356334358341982905657032944242771211318218133883189245689430804531586278056130997344692509076295032320887484944743786762720140918132650574641623328091671684695654434591824434063171112242761222729088718329001517714813349112057724875151124742161032206275394757176798985085017891602790250032318806706251209989806717334322613513848015528811051339973299539321626771038948898273008961129310850025384816260432272858357936859120804603767060752772114118294819629048840890058693790362765874938963867484310278733352386592867185505007888145018896601402239294634674969816030997846290698738543199592109730747404701580187629773652014220021668618237410121604462563459947441564523907537943310135926057793630218363339381955115185917583628547551275483207826850948141023351508058126921823368363592729145610669699442406349361393130901697212087813987968670127662076781812265651146347929803886778339865500390026391844718183136093600095139004199552713668010269195190880404446039525273008754086567764335119508334373236639320462437982123245327715485723540059498348235041007771236474645594284908849132272676210576885489068581560098485642327606760403174421097810554374323361559144369101829124874871693480666173337610447094850533959608546498735408244732027973664548655425698721977276750567465436068049872266765006337821880162341653960508544302019528235575321169344589804938072624042281306396072466524680860946498619839270538764722013560416796588394011783261074671098441121808752597478099830832310986776671477940708449866913556534662421186052841792276047328403721951549002558480600255001695789179307870990393455684293710136575708663378129493926892561882226387577866034972743912830008570570949086084303612759491496647111728905422760832234615686496657664785571228653316008253909353488252471399686580358282629467017510262973626552574337682652235302022389532095078904729358687021150781988872011061946943032271407074046214710541057402268724206231806187100529242884647188095072769814390530336183097030994549128337848379283739150203613127738831218774619894288235182165318533198330397508182778274647254539771458723024590704145872284012903811150879986868265632915536521289714941608759851088095312556865163990798095498258489355204760087671113053922106853014682907909079216153687236462330825666870067185172942413387809464163935136706698986126681284056285768323844761121271474959321628878430398331100255054462716227176075269639036814161067149581975536433250389347133729949521073076238042186782423210609512550409487773845552780792034031109336778828521793592034084969697811992307652443403937924112088871116270839918564692204321956580136405905683171673399845875333427932594997928758102252578301098194691076363673769030149128109763630096239279607825974796305849555786395345189731735245834505811134620404523650643434450236680027988810058368146471269230372518706020772241782214325751725243145746358402008434950435963999816961284803779881260585956826746254801068221331014177816824101611480652222384155108437496325694597764003579358102060219654772924150503026611474547379853181589506319377900386939145636660389562697150167802502131579349810518686983389275415293752663775340799358319980449317204388237434071624108845479651112105958523185621812136283990978864904216516840914032093711281693781481733813929309032296822347843261933264010505839937400839544543247153803152948664733460374063499806195100906607514278442439335604795081983604473732769731264985836020387440492104571798618908902342515360317178185462433922149516389630949865558074448498909445167605896568544215578378203508038568226852960969413808713949126677406601411303203812176293924817888815090116897540040524414428332279687701173270209329256808957484308121474303989172816228048635288138602209447163091785322237238186257307013534336899680668439724490999398012009030292117810694415646207227012374761166164530361322902770315772562875567629587945445563007485924675741147992486672378398928089763036273062261602984090036369695892806425477254581547015424204473316614521919303039169342451969761538080113829116238842775748553923117383407100946533708872351414220644989390506830832392069369181215721842402113762835059951518047120703492017673929382418137163292355747263723986010885646711713266519884831255038160526715312327018952579972592424301178730918118010354597580052491011426115979365577798536745717363024502346826269106992776422056865836104787997070287473384039005439209086759062452447530541808073110530010687177018542538970922377903637568466335886524825367827757874539652850088357973351579271162057435918524910993494775726408620299915003948420144832665516449641535834629279692320243493356541258220577680417478416698322356894867546324342436790759760518904268091211108284262592389128480299072801005700059600808869529304114281219826806180616861435439404056056219396688466415035044131503486531019923402963998843768522947856419575282877496927645967501649863575570044682564285328655940681029140948547803710320116304582416829474924430268847683224995361251015417094905274217222516860514053116170394809588006684586896321059110673954639843125273335794760093989053141391358873861215932495591837124391661614270618168722978812417998400920441781920161199476465701454856981924018362220344111925560111152448232833492647233389160636694686718426540267185715438523767699857028743954636050480419553409652425990806900460805073929992886492331124976535913760256525523295580010440800473320212094890347091691964512049663187742713210965762087500904628932299607678928315333279918731456873766748021852535378133233040125800124773195180606071556752802313944750078423521027756566987515197866426601576149457636334516036084993609778432668902324222264761129426301142841605053411273036274894659732079417384627904041986679201462279772049302812905598133315112232778482341964971851689812427849688285564406335024573500844873181736307520272362089335599015228179266698744880702127290412845614068798876079072277680359423845793319038414022341162549618752215341905240663479030229615810588689381336050262284434466145443850594008556615384340396800111259018201349647597905592287134383989414241846215002659804048301585665534114885773648592255124856177581824184352765963284789585128004060501962285123652975367964818913744439746579876132078654422616582124119716506967205054067022617645608493795597973943406264997990973680936830471017806254014346082806345279970883060238990414687569575548182936587844497052663757993566957053696718593989715523917333932887899699577690817278154638785566516573307224775420698470175402576320943456819021161812634602017598280070384226801864193934657782875697520792348249444694033563855658810081704657011478943937608527935344477396615322607566222243741336534290688610452775834586922766359011570782963157613883914695699183046296643300716145711032958395625403425147112363206106575625628471896875836227666632325996998628469280245210097761895994569390797479162161012084419310929486264428819316157183483781243487720457937253846415371213184019425357854339197299253153909667441642958665580485737482955925041623633424736200405726223161389231487278953642638443931729795014017347518773343722571863315678898445499322445254676723156193699774098983801417631691061990449348690611368778926916101588644196424875845899786181135729156514881544037123945728391172989965115409638532198445495780864786066355296067909767052894321792034140585333897882404563345211895915168034318413660269913837645241047596148668352240668335913012356582270972159970565851457542277657048604562247913711806689748407493173930267241404134341139989184293579367458118004735265184893462090570502683029037082775460550133910122968654799529998344138845598271575671948059894073877072432554580962071325932033209594094768288972161538945035003133217426029532095325355035321463455834042214329634393464716026196306680042355362497588722085263394433412430682802910624240238456775784415353838333343260911808475564586342309583030493262053821531644159297184992746043075919111112176930197116773812485908766108039033406461507994631709671606715622674152994756303789584474064380235523200977982399423253453676502029269521862423267526047101925523101434860829693104290192966634169272432456478754896222087967132348630203982471258221849836037366000842561665911289187053551664163704571133178349294760777821842721054482021811240133810373935357849044177567134304136489123585620872462686256542980096496239455726427641496459268513534833901987784590745279267478486608207856248008497528878109856732197366819322625506628787481288804643530957621643065369603972855701275047706636573727433465059365408785684313779305398639230103890600417405376749318509654377121073976819006359809452816729298003834164494575315645793804487724534648849784392661015399722014500608747494019366263751735808465689996168599282153824041696505965007027091623386492547714202346724562714381660259784938943960469731048333319668597493813721453439202836174249476985701116052167990900748556857956158157319416896558841132649758182524419963956464423832857839306512441595297696450834370828998066294755600438654747691538983198834215665091228840953468953715609137730395789635069542623743401990805686776533964844964553018281623572899674712394706277682240588116366546442126495013826081529641661687727364138355501038341086760691547519054332378609618963176352867992997050682811031015526852494020585921499055175864608629539805005677814469771879115784655527926723326705348577610149537233552315726762029986504933297554796657449527690769087943543866140503357354053956754906777972629312199667857001399557806602852989944979954480227443648802948555864049359874966896582271046412257086509917956358256582977917469760805046184239850500264450904098255001672992679519981506397631150692063048128306477599237861376167385101081961954560858831376810405566959468683961294417421821867114048795429824953011134745168231216859968221133232714355234566870225830304060842486516433861078533462794157410277647747425291808978646992818081274676559165338995580285740428435277677009123593123311520744064404582166384098915175110278845389659036199448742292615731866960927629768183498555173772386243854287906571956151180725320458240516388971436746415950624434535211785219072333575679359704157366106375103545678937078890205393353543298748179490302139761337889398822768005536886506907187749316744425170411459011146528854112670927536333786520440183277921677334789779317482797023299375677624630345231516356536169227116440389171956308644955204345084612338750723804175199392941123136787382079461986011280407498806525838736220895217177326698807296772138324760802256901034772158685249236340342753969807680962318327797279614536758698153127861355994345167912232486565221394026163651959948178512489333915494886834513881860366053172397870163564290702574579309557719532187481849322889306487690145363788606456902910160774089953406616099936654998233833989088521609855429091520169732067232415623300703190257986388867161269435777276942453383969562116147159032704819253930227431049255212298877529681149101143221457295287040554874505247735592087593619156178887455494715013491473100964246375825974393883622277891565039457800655596753092042959963767094494451947275404355377758837823238421207222028815016202323812655850138716950247311888573333947098794167286873121420430975740739103873853539337312163238748260906023846665937267597477394703164568709929337466436441621733533135770951511177207085924672813467321038207244624211524155232340505542742205932574172732952433971755772476201124567811838363558776711547482122942010889548575067866081207071314195359827499041934199120337231769491015836155197772807642102089307670207029089011984721616545831530692827669457252421550642943090724702003675412305193681655492214349955473661932936764085386264010138352489233544119912114857689422064886868639041754950829380455072323677330417675591947192301100016413529667452493744892559612193621433201960469770707569443364123810294915333220224642295043775863084391060851121123242973422925038889807702029888422177815769875365382420967199572893159219630871985245808367907742212337405663770311621045416305312078236074847781709165594812054739314662392272271213862676990434251277942206580979165959728415894105007954367045335596000335481991723566243614830237231736190807543283794684685323785039913297653627807532407057628530786084926050962649159565020833460795821786304436625613366757873722733770626983864034824496837460138840539280258927978528969731913843110911455917757308625002779277014935298195990608647079825053532849111703373040678350997776730313528201841668430900626502250395989210633188439478021570481352626945678030954840605649211571632084565159542106934676817611567504612901053076138596009680707924793485581064308055594306436903081001270046752103781396095008383101165917377778511843400150776603765934319823455212118302108961076322938432720859190860421735745172527339331236181670940945619734636227080524163174936675915228214415120387723698581579492832029403056264028376058472046563533417592654768748789029361681673656093920407062153398238312218177102826503242792453488043367555769154060549949927865570811942801923061832109578183122165301597113557717916841460181281430886801801944746265939472806126419361840193044143294516125752444837282356195612168373273896227051618998258912597009968042120398213484351568205729451582083498040267290709006491354724162938871330500457138438057637299796655547438416323380000584319908614655343225635397627333520339035091258534398375328314753500635805026289105110347716002488594970820810107604096467452070397264378470583596983168193299741294134720462796835171520121560231751778298061752470478540515832260019837068065800794993629041755081429598878702874512893443366508945546392568376439597575075323052016579661757344937092750339731859621321847546780338437239984768147251950974150905322357015299903646758349571902278608796725561154538868244894372897978021325930859561205712289386625295397854647306894721561039408655854522420260189826355721045523289983401859197134208883445965933727359111008233077815853925083522547373264403817564772265976043386479474208612985592114477974914443830430343876840815064851333671594191919189528925298171769945764006911926255527962123535553599588817825616553135056480098752543140454981049896942039323583838075441560376655780364088027644281014226168772328274627517873521145578407178478505908486571312550778795513202929429846997707092804406739197577554167773943838554363130144432375494676114845277879433910763811686189857776731311913139645921550356846399456260059973869564022245084267915354617876419212718597352006324312978810755640230741225887531769784516709394620397376613373410434055676786385236445130557924254553032134784627421432877103344420879244036947141073028180911131178255762126318617509793291686739213947734189186342126656964971489666481801530539871610933767670202344062845704279928946190978345318665679680412923874052790358903346462783450089849618341307361349074650896624872320549238966226579546920189136710273674856615754967255409337204957987110911196807679715566148464618679426552451585284781397993394500359062355888087231275003155500864520919825297844268532115392284749223449660899641197898999754604621134755086232663235271445738308510762240631692043815373739305089635427972086059490578313979621523612191624799795338248722055837550949361271887944136099630127257675325707582390631055751910090523304861072422796590956204433241829949096879390880396953354501543792386888512303819508285618003333546813099784592375009961754095843578934999241106462918528004470295735912442352766631679297287576420677749419870912113590936021331919104017360781001576572809281989441015111542544765561785666096735445971576115789909063170393289067640947203251578610367518423375940568677390507984162557407733484906658229813579517021468374731496642236462944387317267189053131894091290548720733472695512548459588099445677090686420959712452300199418884639834111959647275455853267262028902183899936338329152021854772033875850572595704272746255936883327388723844594445474042503671218129436671788840635988129215819244198538385939731029426983970666728273599119361913292787406969269604705047943523478633622672037252961869180507961969833949836603846826864950425763193646797216899429277243497453236838409138613039790062803018051204799598416722214109530671058250014396151864900935556228019029883169598381687454097592387714548438443317878299526328340464335158867222724022942536431606995640664994360233858344237570236336035711207675922449562706388134790720603331809668216633855528298090281332589528060695192114851409875958713490946378121877019911350056241337248353731711999033666163181948377284758385450454418425785930686903117030098085877437307418989182141799858479249244088916346427340335521414861510285830520813393209146816958326606644552361955289672628263113999529740329717841685078056167458784355704707678209414444716368400075986647456569400999038766164681995231497654451660228751678177705886723966072765021534743219432705889356116026623050270710131263694228062664080475208400105887885189622778334801887293041970899942883392985179921707557836429408308060734082021853080479433476191324352439361307780913284416429364799404282357476713552302333885484723193139627936052524573958019135259226048471353579668376169310679314810903769442145319350968373471157726586101811926001446878934999825596892950627151187818651453218786656083866882316426742116086775292927051250221965596238046667474391222475650130875668715335715030883687203801195458770124861366167359951683510297997373037839492222542018389694595058294675732963095745800082976435179346320796505849091494302522227566488164113619080974475336770886056041821565002766115509758937775966884832800037832275047739726701593777005353182976763532104262563637028338327148313526535956760281354730447154543169815625641443437039519001273051799123815357478428221539320939545163512672718527620598550158944168286737877483115058603466291181005693067950743381500229381971904119109334656728035160758420942070768815125238948495354927551464166216847895520293731539700746603307498326338412694672514001852162133572699949758907020177589751340566814587025984798686322090309800063718768632753372636378138903841576599148100038638645513779289263220190098509385836089737649202874192366175505485727668692098289691667856323120050517300289289046256790823357385355058993349121213678280331313719801968907083612555253799646553787640610900290438886734085305237590794058448708322715673014807515946943264886382525010288316231342174988213382690900692250090295350033220365432356924131752335441937392366247097651969171272490529958612151526456279145664729522410125668285832562262542478100937844547212975756618988651195044256146641923372469147163698624722576757580853877525182484241906729705649230998733915548857050631723199110671416869411710595291830814019564726711138352978947960223910204380127981477650283371958436840524869146234892718602747829812277462523931653447210320755442256950050392771041252405874976530664715324428755894551722718593973932888041623374374420073559003689220150366288308939907508536900937333482228679067263738465173187595886465495224302673921175052165153093603499782031083504824584436513736716121609220784341465804652102378789839897025483176960667674492767093108175352233695966689614738386583571405166603436481793355629260395430726437969787691586125938324872761532242121979704208577929166270499051068178557270570950638269370411982465925426459605919916244571942249557689926402038440910922296046103994568819936295740061680587975020457903360714308905211778707656809857283075136484204478387387206467650187609599209311989428559605196482976641813960195737965912197923478897441336009095101693938534761442841709914888003268498171601005796600417372976029581829554593164626954737440112728613942690317046558251926229895782722442172407666130371033189443547992049165005922524381458023206956348031609131750491452991386116711984256256469269358562355044494332826228841003368543958602585436338564258997057588502787468684998871415441670641673321181596033599510277868949403075341712135057706131598245665140051583438049473490436908125389041017177360352548677790476222639397661115530056194910188410102551915059310203800823772116412412654431348279471504983381011012424372138954982758761481469633337105155625376745647862350625925030983284385649061276582586162906275649930468051133713692027933465586135115538816760384131989287073242885032191953181574375680573210203650685133398242721195661422526656639624873191137572024805937552636590053717773786766140158212201945371045335981355625775056789958312594794028295812710398039503050996401165130343520523479870275645480485325285300780281827357835842382935598112346228866911312976535937173437706914319590715512235590204717326833493715455339048379339544992114390071863335819406306713351757983914162408690321490403855284671544479280339358773202792386110162497671867714474072753082469504093737666459925118778969816208968903895684735620364305484893158526037892531753457149025599215570998135882963137989778526409089858424092232089930302783479169060906981166602179878711090944330229691963050050281200436486469186438443030030532479830070778080537541864856786816321441298245162773787694724555230586154028972192360650104426203725567361505766817295000782422461324984412051261758466859381399626358583410458255459450469834482570338325220148272877141667243664075818254360993163336233879927330109720798941540562527431801497311461296670536782648725662337503921081127505748979111629184354424972035928374540990284683336986746856785079156985674276949564858082351558157339204633140969843540437427024392521593799157330688847095208523996713184101378113040699662416691287743018250464948233836575191686389446843934060168679762157870092110414967874678797942387050289305477451270315652931611630262514191395729604848099101650883822252559109720160304339080045875367276731443019117753576566572789893798198034707135292607705863833463479394969061964439968920844924840709067522701735129273613545370939494411137406598207373573754053622428105487623115576806057169455378615010670940533382179924088666771749718537354326858627796395589166995595843013338607075495862347109518440076164019571966566439676891525721050294251571062578355489708256524949356532897567664600147061468710887800940977791601396721990350830198462598037622448149359038910206092599296735285208643326841903982241622819709971094423233182901205604085721908720117438988074931639770413191937087423414061595599342518417881343371589932523306626999972056567497428124070797711403467707696687596584482614210450106595046209064494060877281585400447193157725282887430026557572471010082284149945861704219822761476987088559195111206297731539771869617690720949395714650313178607828569404295707903081254310987345949802043411490905078355874202533043015925120195328959848519895344820377720890326618147261219316540150635131097677397678982166902640396567000373157992363030609548807380791669850672406892852485819476191508085458813407355911088328917633597935114300179451639061126790152729619609587294288147483668750362915160255109214016512329794407529088219183511182843878516754238350490362523101094209280779664915778946531025920863226433266271453575584591911688414574038227351388531232946047580898501914444821974768143707408920187609773662186551026857642588641468140048655581424030882822539014972301658396750094530472257088436776353975308056490478284010407525246185466993143435220519155078275324084738675394741736757095623831155098379582797809389237319757486994896737408886524576048833876213675755678789500747332953826756260315519272403844875229531971669076344539119592983706739768625659559839841894697984403898474477646473995380631303838147382674902764229840486503587455057414389834788558852061328148932660474426051605935196895232165130577405419606675648457250792493886350173556684666496100439825524181633418268024793752471194945934914599489117592229325983275949161751983757651101465345509763689527476757410194121974255334696167828783279743406451605535089297679841332195528701967756598504209623044415000730906084948587669759273960079548193967844247477560224048029794354522095311563835795624173875194916912634972979175196222308598873185470560010431215306554825422924050537820292188249237091790227227149850050797564149267501721144088364013268850678870922695689491709854489789400694511831332601365589827344637205724124670191685044167010356674817037850673361590564485652073263122183343566476040475893625197575581889504793544512019890917854052964560190968825847663462649691996242960058299025755109736442688186340913754405894290352682088217540180681795654646604503885757485168466145944709401355782219545744375275266951158719310298519729731889134299575188829088445820444114243518583356600770892839658434711936930144115613327459823103177641472588042529049715933558000112655503464922278108014229424927856017948900802402323440894469355248926270300188547455493119509196288150209666134332198020048824150953365386448721512662717630722244643013501108816345542009266462511481641642109925907575094490565776055175959366535478405168621399568266729589513660415593669251452609112031356078175399480239669857668398221579276534699292729451139835055827873476080387834972647061404788519368294313063233378534189842397650962150050103708876627384553103074955167407568497094131241721729136490503701553282220874074795196660417108647736567701259526553242996985496231836368627930619400042330517823982431039228648887369132370612803296581951065716226512422220833678924392677722981995051972057236750866259254574886037449687023684461510739176572977136769281562663020061777301420295692124324108170557677741377674728122507370466325200434552967550351687252321917856935709475232420045996176622367249341148542418361687257976993896510501208396466955894462428007223760090975768708119600168246124874790042906031646167138183042115341365776409621054582112075859830373572865918625957472733519767036574931334673173862988276832202081039918840517124081615741614994619705025582190131203106598156209250952071823651398604832047664841841500604357907982324046110489719977312473357196664924791579192509053888644280785629958708042967523803606433141868815023545333134626069241183795548666010257946806081756072529446863754486587751870369228141852928631092215984469524902798569054831188294546640801815311670307721462608919190445336801173877158727358865905013414806146361409487910764121717578941446160182073146488199837428406471684140486746132391554838137705037678075956405062217635945454767105406085563702702716205309972155049845793222759051626968686519314099842624988632008351220955755084844069577858789529264661465820372251002858724836679442883706395932448270897777690651987876220229422276343818159645635307433883260105107352677561511377380567359550266315054847341599354684882011209831610266212446708862372698816352037087617605014292168867285434860141844920760091452120522283256252375525981222100259877487216171060873624447613616333433376609116767481056457354086755994092443435956427558148945889331767175807294988795141185795288734089743910672543786176230037520266143977222755754813948134490180917670070855701001948702254580619011266503739632258448218234110915496257168260424723289634902940115296215914699996253450319046561064183562603512491849931352857365231204573181892467494387120698724605684051565281823665743983803015937152607032008699480428743746802317131413631756778858746418983420593800055970203873149009059197426864235191505821538764945960150796596019075847265379376794103693997325837925949772132846894775593074385640652649552043474428586980904545318970583910753738243434323020946248741206595130804558353094479784261001495889122334815356298012951389022845913146985671537889319526256719101741331855043967843648344853427522395282086472619373850762460434224699420171974582835902597058525971627847242837232009477080524471602761273189487982894226373273360244307498441625961276505388548284694800658949264868470736191658858909069166785846843585415466426158211917495601556706076216153116139710830615868208795658187570593992533221566470000453313252537905202300078625745346288707295488431061163778688944148227714020432047893934637133823060747626143148124810155413323156907067280625161107629046603903325981737467780349820377716419048712919016437932002566878839141485051640609253529326469065587429522416431682209651762538858943078833281163549618533804995107588108961566058929357655395778374418851572664967133110536785282195045417404569853378646450458277872737356106346048781126262025753542276511069471840290819955805726929861244722176995578712901790317917733793531667873654682011679740368355855713581136601630751103600359586921740949407611305561116840160076294723172962535141551976516384127174111381977368619038681314308864357023927972947836757575816787641690165410184348340106545600604513461004733332875448999240058774576841818853144806426465435758921801668760568251653161776889194623953751561389837018395217455133949755733155416800961138320620971352271504326666018902473701705214257512517785528184976415650787554832743614259007628217002502681407923226518801887916569414196768236693491016438720309637631666871872483595769195310201544641779808361004067461667219971164579377822055575285072561645408085834049986623836366505361042995827170018098173176918722159024209379358091381244013207570082028171444248608092793511532604077149166424533946582751983368256413183608670104095626572314153673353956505822427372037111006863680173136608116008497597083448492023284109912144317616566213343970023330042075486053950272246466368882815490475210951262990151290494877401870684755390494940456359548160394680524171569528521693193647717583643118794733196013078771255557942369274042277854491485062905425511581535341936293751931778982047472015446055947021075545714762354288656985075523462914303252597399929643261674446577002000903314569549727503097540678109479019636312460365223293043563203959915154096935163016103852349671301814430656668581428283995787301990052564463345913808530622419797317577029857968265488552901786319063737968217719756254276188226929874506848567773347250388735590785933076545477647460530164286569550821767358866791573984635009746283792232753706820340226627421836921423986208808093841446740692746642613729367170308141925194505665167775243394316924301107186154337999889891092471648487838323660707973954747550153715217557691340356087794169658015663696785791793610828235534028318598304032627202991642231590827000408043082064119939537549505429164299384984137021434684204176538096681548299544706520909204786587945571077624988789411563060350015559018720549420151913968523436501861309436120651217955737288351539193377008307280128694161408786087392146760369885942449849369613801435934551615470746086818080919836549526823683644773483346114637348654387659110900179414200761920915270853189007337901247347720733181442909818124000431940601540555248703459386258772403235273773573358967595975047078716496389938813437164494837199438105010453106614279731906300317124817891868147855725788518435293254722735019259837159096178519638795346543227941929210602171008348574614571195411591720867189229969395270762455309332859709737257952807667867838903126215733731386278794217173783069725815414913531646527236400240024506330845371938208694945673702870647852936854567086646297903465721974522621965217507428901488041590228502419610904114211529487445700897146425655114785732652696443398599649915022985431161689263949610538888204544663345401757438106589605043026579896897090403270585881680769141897265882040563141401959663024411370013060192934579408658834479527160001901334101276540270698422089928656857275338471300565485627703556819330852802892635111250860859478329270703207219185074607973656299142783794137835175922498966912373411890626062941172099413612617119578470448253537132554214562712434907839795279495347893671985809039347381988134327823063263582216568254327227960840751356128317534916846285185811284395888584933854283480117200590024770788862747639109288329964762132310589491737510329325635494849306110177924853510768083366557658698858155940939085551970284995517206633895670052123044430657636080760952187936571523482180094401542836330240007092140578916726777491704595515004810567465972703895183874644606457729691373675480773194269775434539021703067933134580717615023648289824650665149985400769404338173548140149030390909240554088604607358045934652145201381734913840195954760831105612205193437020346086215611699681165668337575896652093375807457075599576324245014524778669205438327628154267852463323551366038679993931298963602838044219715163360116860168593391538940806518926501153057854076089448541902713134089159125979378321786097222227710071090658690218422273832125368744813110219581702907147121293174183699105561473067315297532252604291163376329809354298964659640588366385776573346895936545221099651817643587880624852294483647542455230716423152631028651174088437745884832727757020328301837726951941397732937340350485628605211735131669600635745089099768878397845136390658943137357299047079033084192571722978459966760797731164336750034294601582019089380949096606518951615349122203843888065325276556667248198374425854785628677365192937367122587398769955260599432254936196477866728371907450538643461845407898157802515944034215498076933114036931745031301263495018346203469029819364594259442855802026365072754540911079861141824113351125900142355384275507769701311863776751475461833991661058453608344737856884499316199509289785114425172945717446096984820700175054529240026681460444265518404903463792212252695063775021645009873799695281216858783882853769396169742260763161061189177235577194696963254336101664463399081583791737938215506903829307059297319848985665041241839278842069777988498565939433935487657846882229537667054144285953875484254954853283080272225084429452134989552584360873717293043347431649186955965342513202156108794843523931059857168142194898305768072148753797704079760344075328120424640425419624436207161928535162717402908532613290938670975644866629939622168901238170338663189413605705610028814736409096766135400696291164420034069063558831056910495339015182575216523596805614063802153301342859450786081031523611514776093713545366229037388684117405111358600670359419615644772067150185207119228717566781582838189094124391897867637006825153030513670533553548833826875242150927101961130210624517424264354965502944531836012310197686817183593250451953070738165136005601214308219608537144254850570229375382427293971640734187240284578041307636805537800813518699042042351588292398066485396174368058663006540511995367769670098291527466278724198116791283962727657900393046877557894538879898759920014354103094471998666149324410441922185224545133469715675385962696978425746868856047446463332617875882765038519856318984666604322218418761152270102993697742249286927336280285227255868918400538809280604197203372813912049156667585596809539880145172467705529876819851628581236714638710467381962584999625180539873596130156097376192193521148553360865676859616256598591002637192454019393150995924859898051347301239567666890560544480130168132094455201316595137169678771355930501854833308239683027066737244463354735236723499210946796030237927301801097021673701587876260021900925565752676287605680539164280290976130783113022582577165284995475813990707925056942291244948123096483943456825877826167113634660374814956269570094134663299928280573897983516178219924017033662409080088199229120971867306045199465782803140967857878031748087529181618251395042168598808145902429584879449209976709644240221530278053639288363994954643063485953327126997845096784722789060820347305418754152740362679770207907400072039491336426293260369435579265496479103712447144272314546956707674869556273565600111147592620484339093356261409001205288362058792710499789716065449042873139709203214717624103277641646521994700926758753008862669780981167412342777676576556491857419042356861010701824671685150266462219597052085750066618745765927721832263248593377529510585182321385198245334259882673331587183961530359435671000497915359697482866249548398624612902861442267326025243761705335009870383761202495960148611342955802334680955256816685208418678389836547939470639996508504846951545559101019681422813715240764183866065705549163434038882648914227690543304564120987197933758778787390003400538749730994982867846895421034277380700635340319926004336740963144799517856071180729144103947285761946802149080270462838093008585386275177877686138976908458900286178821399495346361222965262483646957944768048258650355237136496061933466192798677497751365861579384133739468449308418823010324295141495364758259826213629596247777416053699265090331224844656911925407016469516600121059327518869745669052568466352921622186663012808676085009492755730277538082178293940568012941809809014550870947723517058042380597989194449650160828988366315348190843778565894729513733464666604072938854395308004825579218042786766239715834672141392197408412488997800659058067022927625704515212188838846618684600253910642291217474084450977770016048390581477882126306329525265600994816720430613370774802864440331776057773977972871931706285218695180655175651617136284612798382014022242455670457209713738445631835662402649454188388992805534871038773197730874448614278211142167269501195615770336791334196129619653562808613530812623171825989810933819526882494462443526870854126360355688363727251882540618943293865578507730596703965656080719059438973023523546757055754178679940368697584387970397808320712761751115196112607324059053470633473452587432453319010872187278060897222678828889937618323600751350627421566441616363008530201773941470871443166176552918924215781777592734418492221949047366692354341608662308412347932705969647411538477654033148658530544545109956905526016722422804111652055636437408664648600040050507987418469343395179047013013375690307577327952733667009294287896996555726540354697987362525819450166038993928939042885488629644519486760687644918600789895134546835086193959200158429070837746060652774693282358991420022806774998040007290160151745629494002239161726325277143671893600182819272859414646882742637384284978747788948213881303128151274770632328040761375643664929086966701617148107013805420576654812235483812456661622745275424866612051007886215707329186445200410967917143696391690788735340365294019612475884083535607107895992712550489982156375483242244263409269876183842889357658994706156461616143221777356813765591932586974458858965498636999013119218305983836165034345068093839871891813723624105101552739902566472782841659539412575032505977544668374261875576751818410984837494627102363411619825984952469467334034306278921789442724065793369248082612208067949024795969379464769655917548258359360053321909517677690758592869840051723278008831812646643658227652772375072092781627832670375880953706771344110161943885362222048862371812185239625637715268036363826267250856902302924131367018896393740789261370578694217471761321252457887278683548119644831543235709380716458832066215959811748782856172481658070951731479594410164882114207152647023261647915748805180365335082924382079376567821649142877989267420057982088082380897061493559265223807117551600290104778481886806167741336010791899338291316871186864778684174966956542202688381738986573095597911527074111284052507747859576365032505542849850742486340858416073419836216901731234575950514304685775248044113620755555244038557458946817399205951115013201318681150823976483274042934870047221417537434100274153978200598527645932049508380340586689330170671143709501939430642016538962244112730129875552046803769538184170515483030868878081415205276569738564555833250557404115541549115996116867045926654217827987760417184281836078993283678654837356286216602270297521671084697414836653380420342601153329051554564059958717500393824240463702978017331763198329543143916061721545171883284485797047332843970767513584417245392486623388933835071905114309188533159203089006898216730539927632640554576851386349179745335164057104440941953826525894443104068613729333776971868598913600780660297553266059244271557621455049563959221383683248400708243491906911617226572498994959851635938025027218342345661566096538954834464225746211038190408543132013737139785935793243247409273365090713667652439472672232407944685951248203720945971275185371531505919695766693511388573672555475689363763221737861608974345580425048572640772172991470608662968015481909563239814389069447914361332214728181853715004078642880804903073408794252716761747005573866394833646692864677465534196619019754879167230315080699656002239602488721637310095318559005065687343709184029869847061954816828938988423163363384714758394551616548473925613187783671208844878191212536939689496923006702908662747104128150448204210801108519758295597686310954289419933300397001946706760337472520482750161930787729821719445208997158819422897041242813011628335332797275616740932005678951294471914774971323593897919266108612158599977445292025426807244224679183756248392417208569318938006592806013209239478015278882858846954657947092589323979642010876356246749466064585756048865398139061217572131289048736184798592966049216288408296181186293084289597121350939984210663944347945244499144399715219608831448867174755768755131165849806151974960423574039568356491618827617837759799024538443154091151445327298494974325939557493137171032940285595918345315667400635093054061540026835324046825981031972758818324249778533909085652438430468207107962429178078121498190258019754529410716022063462201294693022843173967885641096931173996349746472479092348175659213018089381342473336573102207244624890129481629828224637110319346057147045010849542310213758061706922213391780187248073604315737416537268151979979867674214054313065728105597384718685408994040049926668870915763589147630417971825502227210487724058084440277679060864648706268190585255953538227402465564417121914438001407704695686940041689667357733665458188769690339078591056258486027715246644284731043162897240795373975701127612183285408016541913290799713364422376918292401750585762106406223591545531877554158994490680098475323083938984226659383646288137362198171451082676694883017622392166817960225974378005849007073342647777536613288745302151557267604253118954267419475683782824202557821202311564625902466068223554491588526628312253984200215827226988749585260955639899849786989165074304883205088988926616916864633599421682103608963054396776026837350081339840806158151971592843900188949853440134804108432425797876035272254632831539413202256875622644570267378051952035389129338676561859942353587154025745548768081446131531266360775686626704068827096742853377586548687111682957985559930468057930959739398018442848896418217333956576707684822208877754746591361166174269326392000045946853283189103855160261562772153474425162433147292561606542019599566129223963692724181655478542395171996007443827435798625074571040714809534965070394587274902221691580150791780005790612506229596737609837159174369011680301642175369416680986557031627292156521850897083411543051642269359566168703597365759376393557739645833055356602857473757182032277030059193232430412324258477177369966482298571072792829662840035933136728357523255469027382750815279552969330748107721034001441881547785892941200555614734465980035058342269085961335640702703330343311403114235139250678876984402203804692265269475252577676111833199405518641359579718260622606887786935481494985394214619888685166848407868847158128957975770455955526454940268348388937645628348953414427389118135787609283665210018375043812609109320850815717854629224643540906770148003166460692396032756993861144907790757661411711632250451075932106178637022637813877446534810529231896386029483030608079849994574918562187517172498035837969757397407675610016168280401339993868264934370958008169185388785301745162413825925008102123085875171217708574038561957807713239061609081516053193914040978368672086150339826147470187491126715719580488335170538754196037693130093836137828115568649951134854121721470897200826091635726147665928581291222986066313730997071519954958912642169225218429655729089031463331112251250608155665321849925312390584942026384069563311066519967454432356637156120787836658522946943228806707468856800856132319282033125448958489991043458827435216836059330502418706682143784741664343355070269871325385119370010774940092715714404688904372771894602751709064973096781482318909873661946731255645264669176940310799358050617359895479591401933078054265687358258186754565781887352118720506765896435436525998124776286978592434131987445506351623288945361826540266520996247077998088413764210429291318500668241948452638521948124845033316166755204549065064436098484293136745556482749885942056972094367465864415922818420989546650553973113335871359808015495041605348343600491903328532378294742133687181518757738338608714711579828625880802807930883421292709303756687206746674116585185033603958502250818343483544382627201599420074470366811904593713887292321773654017536585197209766061553102537854803018256298017833280093126065983086833939655768011949544208481834133852061279319073441828910016816352639712183890591549991436671025736441616363558973200491944471655690444327110563732778378757986019159545913492400857524756527975623672935590270477828244289048888570325663030199519791208258800099880833623472463302796392002596272383677574516580777477867576493952563765242209861421104095267767218273515745776498350568010251068709470935925719170465614033276678157037991068438231222174418376560942469289367643421314629659317868436592066151128175154141957700007172075563945810756130469592266501475716179932987351005677930762643273777502131663789386445136851113215214112768686784511853972854842673203490823105412763598967377378978112158469251770921455792825369560806447042771431117829076163262278207442377752394790165022334956981606724644836640433488099071694706181222430387328260419243856793454271109892660794220160911991359414005233590175302907379154900138852815954707665791749017941367402273335608685864855382433675612929218412889798995935689927865474019858981182122031108086960184440382552179397903970451639925132419336144972373950197032285442946930004011298479673435632022241184718277387316772370310641940677196149541827003520868284830417256745278755442514732794534195463879942230181714375718862794143394619439406211405247562799891062161414891700390918341451477484285005255070990313601553055504392252180396865195301983965099859460509669046136163739437289578082833403544828654149334479095134854064820888100308245330510209943840271268627439337097572280566383913957079757216558318584563299873269770374970742571437137876088940439126459552832188232232360207363641905527735868495741322125763058585801866829375538829379258659544949026707926826103582221747131438888132390948864548793668153739970221231651601681297681135306536095437185980058771518035823693326475265525052240359267460721472964264521591521928661294276337785657165147553693368859353776051351729348677342192536086982515440639270665989199569852147448325968395126881748075962023314473640166349342019823465308023534135296855657841493418232770648357006435840826265408544605197106428620599323752287766838635414819000984867201314850699119807346241292919250368748852132745660132565935189320757700339891063511073265710270251848585068030061877337563381862521012883252351553294800705311814301712198752526269685392067327773744230714956261380608100270717032448761621952742056162477128238184658107814498658874287827346212906189394441482658385686785713819494018742312301140990121378862800915746483183636409268228906703105835102846502540697289773337851394025431533951179118571741682715645000250965024858355974283258286359713029324980717700999910250350492450408095442271818455108722487438895654300187975447909176870294776067911563568741668162040691166969233436400120533183252901157767940481988254520412920472750616232597844371739021543649969055451535745053574862321339602527175246777513516731213386351459320573813964242289135868064111973336917515668825445976685416826183481098220836256116285114052365931357859406804338282012612923381688988888825366245904210046116916955158678929884542931723054637029253743257504258838671064685637204776375455772441651161393665066443045230691349558893095500826345952936043913203896132793140264624429411873119825776889702833066003906364533458924656650691684098625861200338496943094899200260685617911125202986354530359750727084356821057491774676098885364957498226495975256057593026323850202809483838046591822796270359810720694944210271651480599645160054233209896334590208374138537294327750734637938489775944097609179477657736124442638815565985175487311789127533426310461856535950677098614285175169612684624506195775804727945237011569919442742215139418690283319946791714892103385159640866256497418995383224115145891819721769988034917738782618304941318280025213354155696467749955109601353209117358083592211296763808073531115668959867329080396982554660563423248283097029256605613956663783929263576510605590880055185571894614639240896035078097092148615014025316623028499099063307420644244439655047662367207549580494575377004647030554051596273158143702637573574556948765272728133046798596240287199914137364102259450035305418123014791932043428310674093186895635026384794917958911074794140402093155017602425336674915575610391633054788080678084995032170445220652961579292690365827680677356664922311536736533164461904495924758166875946474032985449040976725596648029872637958864980079829450893404525758700751702130848467984324782342909515883734080228374667938673229656106407774498308002115925906621416577190735091112159488970599131579022329512214932917437993965813992499450469734417947731492461452423724297001183994092591572758911399498170930870946730547784405772937991807730688758209741843829068532000924951168692226362082929069701302516567427992404320127776976797079385353705448452549470440360540124585072570793259313818812466247133089242332346100327009891417743757728468889690658048009927767061702233938512511436290703693543429053086897503321186451491602444559306428187930226945130940644353633831438554906335890727433793260048304498461053550952613408453811413334590264123735272366306361986628503477144670113262586258540508048289870183797922112386043664668763761291754927543123779839398494845454681230268190763177938888559636960310984607286121448422794108001518327370319578185947497814930268678500357243834318185837977804128984417596235411723124288326801350730848211317748449940386108421434779189888808637872075659286730019818387386124232496805947428452397170946121512565181926033048663775282238207042849475668709392907936843066046280121843055773682598946584179769248490498922420485491533782690269757916181584459127980050404372824642861046957880559677116543925784072605618231837494470006263030444269766159111095130302132899786376800317944867401671666019391633818350223488835196898425968119929714584574660490979629076812469048939258324616706879288015768218954858361275231913610134934431389263143660008281765670616360664258390494874745903513616199225621410502341955402696756264079575936894538416419076298545789754755309391088889980360436388119393480256959987417238955673809711642930842375874517806444571940086001848804716826506203185627635113709047720224463150336884590615601997516094917103190655122420221229729206993583040327584923608233542147838488891681117051531846910366810707508286466612728153861996265672985606582844695970830356447342458803979159727546912100236835140395578214352903154121131272383937984290729605012373210725200961379084006532623979791016766065471957853417543473730551554396790751431479529251395262539604861581116315647578795756702477827959871791464760861797468085231731841776405560293809484322753801982965015899975171404180243922483304995857718452006777513315690715861982124895608100421901402840278169873853148507722154748257436676198891487443399973931041043204208085292250418006840088715320430776249014150528264299742483184285260359922120678421579979402866619122842351109372698056221547742374211247712908244242982827278505558211875585053602761173032874782795541691493818555611286271583455440229778443824114848753124499189041042782526536478880678848343686256541861913629115072846893817598780918205238249197373173435644215235921926323098227732354642965810238552400641791125300878639411840582675433662391373907310423253770843915743150724922287367685291845180685287852628675705690605980706378039654800369931914488325246551017179039514880637664877635314536775161372296524115246727005616598511177240725188477254195681989758650418059537618321418886875577732497317633488675542193223250828938838414149418154552778184452590793583966167449103961583231851384292524824888954554771377360077143740810395926662633817250077601489909172626010165568666578341888106526327069412753292787373151136322728736323010575702795084770953413013723011876337727688229210100364553192982238164614198900083555567213270413756999413720360646031928736240924533011612247760529407612039070173284925395028264510129720075398891872797783244675082089339910313013574519227770043881860798599606461547763176504701985952033308696618340005471206829754764341954233494159712104674067401170462473462639588003190915834690379345035070987603872100413805005372868545631114525312698691928347046296012215713141446339138171921094482433771781103614683671659396704616562420242250090440724474236237489601749762441648783392553820006055063368269315128657472120949749250800395984345889435052789195841825021247627997659274619901799096748039030516828489203677620853945981459178692260466215244113487625572578505535907520203833194488016108667783598158921888510239284906455323136278830202475255999042452329825467450742700081573623979957045666269904206279427836692387749664820077704842819418673857474905264159925183080191781597380712977771479962687800215033163684548217193882926546617186749159358541459711800016194907434289928114553543161919035757255488820089797482504338476481446517133853582399076675161259127761824694049294032912654969846813940557943260894912173567327150531368160829054484373540724353434197950942782895364277602038031330024297277526017432239391715184159080167551443468554223466835815096638260351395491474598011812392953397350090094750211799183452769903110179732383535811190073429538717263215191888136611044940778398288748919406301181099039779609375052356599217525547185615430905267834341630945274696035668044484185836876866469491640374101096087360607599744985702521577227894689273588176466755264659132498148704143643447307617541541108919864877019994231606582341547514915176805233303641824559496869088224787082548348770825591964637242790261699066388445104541622040800957170811185881392720652752055479696112497705275092491555655956423650738778664354794688938645692566984188483101984855723030027115787326011933862585131312577716824609318294802363795871168293019711635208068918624926989124124630028032533486687790405756539601330712552797616309174043133284019002672618073967808043356083360244763464444552772341222268946500055913748974541699565726067821772480662569975337396899985516015309961747615621062318156645894211624486558729257784433608443804951360687850646731102777324437568037542297448057886791791634953030764661278192154087541526711252847663253457778501805514965069778936647408691202588871656920688826403990486754204030260355556861814513100218606331715327491275083377467116113718102505608896081410921148164459009365840258886003101121860970418419531160752078643584136817496299442440563243280657077375541880177124869955244789914681374453890113866335674511558665085930261435297731552409832257563578598830058828854984359813689121667002619238323365402360991480074144635024557276303934981545007019239775907616426226828229966571605015012364169907671743210543295694460831626575942533479467300443676420525060041241033300732074448148753790862818137052213192944197457532626213900126267625504007905065601242769251183048713557663494022754699035694426673879072853229362432281819029218529854472891471309767092787562828217870300818079497695497055753851530527790014003166050124861878847331755466032428045051072335326729448012757004872738989257408951764700798538358265133743109911670224680150074204069439672844338552534650598918992314408633533047992406829920139582096680129810213221810954977617452902826408265060931381709373628417286670534649799235764662254913401939399840072056446890300730744560919847271457899143555603172859930103195718259360924755593396488831275844310857071306656960803377928741048483013183022382504232541852300158865150233170120392663353881583771630121827544779922596514314354275241157895193382578419633672477575512995761888071588802010184586967009858333601728410055151197340213309638134341052568629891333177924938995311314019735804883298008664473856485490844059489710714491607239189841488365953440210186218844390376198793304601283801483799704541313997501554490957357813142519037749369164369810472579652107681520154147680156373273367184899169430372256857660031604891553252963765130964428185032605497905923684962937016363565396172403302121350164903662492257833228404482533796992534828381501437665539287885176805977151552007583353535676830282357031998863106791430503580155201395317548590189436665298646706347205341072924669272712921544086066255488466944508723563207874960822794244867762782708514646275941886883375851543100227446094923477206268389138618020665454651209709077367571819519091938247259446276150915403755443452442498804954887080664208138916099061997586105939260174297467736302159783545569605237633351667392209684741320527162757460710187734642672275685288475094052209554480493681554293493507248200539867606354781923018959916820122533688345294535665970229215600850320628230859232568952643237328357611115192005491594349570786075751715672384438319190390599951025476131590597306403493541881108791076664005275953236855740775420729998562947435157973818935643857741117404381414834541258826320639133522684391953854607077833138243383044866345227547255710031263958123892791448081595436369522109154211553284042377967213547519349374056553646889757901697944319700191322335931245825634597706844119618791323708951695008507555105759325664080440939808870052150590447507675525728855398249006347085633252170234303273363213750049242204594574522288724527385007372880393542996236088848301794578978623546001612577617473424778727046546812812103207634332701932075754889887667252500705634573844214597612614471013133688769703910811126175716596508219950820176383953640062361805685060579483939983734520164779432284351917889076906712184911180185576557916071398464261059780737322723197227036367270887305291888160726219186814273111513433192981934152493408516657323826853542908474246878292951119329912107663697767348150348260742138889835702820545074421461389644419153212691124099809916852797586503350217929853622341281875454681697832959634084467113090599817193284482204710397036910786261327065820679807199801229192890026735154393405738751511123005178654321252066406869486161382475154550856047118772217481144795906468575055452482952525079292746145891437597347773207247485483895667811099961959160730986865070575816014695986096041051326040861518185997194784690808935822003438625851140713999247361985721449243160134308439831364685217953785004718593307430692660630163053136905566180500937655807523539386959801279527552888071783840013311245156628984982683031951456563629862647861511435829959584341853256352147687563781711409047454775663209927807012185723645487436001975677817094763833807079256591802109150923307691740587692085409472949827607936435999999723158782142918084699629805102090687970187809738658457144120586373623449186296257040924798629065709795270786281318993327184283283372928233250642216602770011873595144373944657124660466606323019036706671264040477324963496343779822775772712865033165755140927108865936567370480433628693593682040821658715724014953783513744103917687612414882539069052547027264080500391217121680470611463657853595991493604934927922049689690053363716605469836748614750524028409361245711070120900190329575380637824763885136261180437502666525594601873729013931030242412037563023312933568610331252110810323244663531618934822137207010019060164263030311721727371909131005527681109455343425927660274716104924836429577851907624111499195688690686288755855940464187499105170083234627109296243968697882528516918451169231177060642492611906335924048890523491690851002165242737811972483844032579478586357187065139784732079481778140551218322480506560856497518668617485182754559572022890899486056078534919525016948163723511354202854237555873788963109787037298728253030506863244662702952916678299458828748694418031638500529716013379491646474455476357335009847409539026241120304224782275079478876302336820638276670825128198223427724007809151734881925152284438025651787493853159069461710089836832512315523662467041741052342900146854245848680585427895632937833932659225869743198785023856772642745162850902231988321350857200045838926319640305185284072454583033468541776536326848592872891469870187883124522423645566489639152055392311060707298652524165367249741114562074319935746780489054867016461044382686296824439873998652529149132467879859748602732713502624054727039464432650929109038139931278780775988017105640696326000920144448118073123240868589377428595442684311057491344756636761324130100544275931562923149750798214809219564004209158929356566623068915501837355348294254924001891051547070636672321988671968485905080409903316826102207301704866471605228171283671674159604478343881624321847501258934951355402323729212301262416082212457805051062013911222290831862141645432271980731516337873668845097648767692858372946286141773397062702486147859809173266693965810180269481864954968641661863410200332768917400723271380128701442137468994870511899558775803605575439338784349803914848954958458257205877464376356597793853491119528253717056781359187428313393619803268590177408177831130155253413692724929792929689277908848960652003984757467293003578486833607307810615123499706881540614217902718285212130600109332852223050520816965177370967192150954207762490417029106842764864253372682193685701853425780723566502795378346029638714547990479447588598695435534276466920688722128185615885990796214755030223601644190681083895137564363654621733883013720763141348777731515358256505583735483076146970162032485395982121827902832858789178550489819984176398441006516782181403331602489715164011089531167405584495562115170274756392699206761677423117783057749211001317746331321137362761337430311087062394160473763670361780148120842336219317811792687342076604498073087620663876220985291038767262658938742846950675397257873750904966008049208261279543422385471677966854047847886172391768549754745982910039995999395777093018088400494130398789312558484924861496686643156712439882259747789309183488118073053837409486551649558588198401280061988161561340992894537894211634055699622056448425460870557768069929132948298310260645498651319868212040909557127129424843497192335600640495633014612466415883805148479557932654734475676746470663755583994048207415937313973156629088410011565552931513449615953590505790385811578612335385193542242463434220818434855579405017727695095128839319738147310398819595310228153565671205612450726106634713045041820533273852782768041380172470655295793115130678138867050781830436515248078872196446465683543677675347916387743900011709745398267802989646880240933984667188849685636939734005656480623001416690435350288878876347597462729741835361750372207285581670953280546057183842491833111670125032017326608984474972916613863384563977393476822997667632025909798080602492937688077675043340684773905590576761862485518807305088755278725374772942308151799911326569442787568269698338544959161031394324851604136342724869694547475474901836740949827304752865868716595887762804732557819498829611688682700279174382459359637061765796037568449639546087958507111442625842856842210280563380021761096179753371744842210003669646547924953248624745257512387950993989150636322415568760535031886073706898197966593061585578586166617921373442361556955824470601154062772740258004673954323225557976045353866456660262547718777106558932338261279273453776887830427605170508129557863180701024920507658684894902680094811481425368073611641029775367907330537429632067575968754459148259643258046585908526002851178417227765373808896388122122257019032937170668684252657748425129869720053996200928360142035178912960172462776767958995708581872542988260275302991272121139654911753742925535508583901714895791629503553124231126598896220485428490450431286393591332431901804837836694020828140222603891498578427837008606221231791181267053699647778949137266155399369748532081933867717489306572494639088844229453965619376513160595876082075429700462306340767589048271879861238596747456189207084595004626826808577330103985810063820086276837765901287527840720675675998513189847899890851563207996289678674942204665489774383602398751996164576014328457446221954811867896455291858192734368904294308574876540249818737175434985227135147790888705782709773674737828541964533437535383434401553573936185057809731831314539915674930353340644475792211347096331001024476813852657758730714095343528153664776308035221587710744163231455322906730524013635126429203377979596357967833005887355773018705237388818940508944223284985896410316086192224044874499451306845390849450059938366644341089932438958647344781996714229168606886101864498517273156450112946218182294930390617444203734597928826124969208075889074436258295583438065764535004039331508111428618280780864343294183632798962092676809166437125736722591093929179165593919635105661097355583251846116877109735701991601561352160835351558186451508041599649534650878553835775458897405619597785775652737502427110339596858685991599445154525277745028863062402039903165264450058985010395020652783713370487429932054151435661223302483026331654294777073040588740793373388512280577257951598396738487853185500239646444474852074712596941397433600530123841856938704603195744497547122803999311135424496219606133099979653784210707876538441019808446342737596856060089645148213840370865758195578206626571451858383971525856264746103159277424388274070627272717661212054106148136251132298878406150675468403481435154648893563649682417992528995007163925418708130296523010210503945002028536470961121754712081747778939395237770886977405422786731638500934038610902462625905319692602709802621799356597018581372916538552562413166937318802413434435012447382374594783962916813862274764141725251200194047976711095156776065117359436037251209452646486441506068312521032802744019422970215434232162973567324753432582264845359312185430362088907351157798956017646873627362662407489815573453339738021887319964965675971013990975886835669233760955493001871186647701128239614443026987072413524880698562666382402324151424137830037871242697368448196826275756473038280825614229460771003710300440420064901386174209676809676168822515838589063722082612054745837410793627757292609345128063040097481476810074081723432362288291008140138232419782736098509052623782510495026628034664469937547510687953898052302271510789600474063530384202776087012322372519200886887144283771290466997751900806589503469217125963766990522355660677435053505952030635934585650081828874859801519616950613759808390857690558644640374040711324824479241256572207780438959198050098510538169485445092787056466139300854803670379458268012372635210014580738204205105047330799068216495588114113118716574358313821031313039962712195659480522004512578731671594237710265133506900366966795753102202052550873452560767092428991630147385298342263272268052505226116556769296659652734926355711985883800395342482294408240922068853845337917437645979922305842354835482748841034911185630512718237339874950805509915757326068067111064397331601547718615965150052179463676948226917235309663876167196361421107232558383913921008284156258481274629001617057222573108845113764070230223195800183992424215550083134371763716452922626480763608442115652236019735496340341931281747944877422230025039139949522967305729040371952865637033067469716696541374143589729406492273826753954710033460017094544657685176699666642200257990461625366553638539020054111131756715826255668835324110016267755189307126093455170602129031140011659505950839104809437736771312491497061646220210094572633865622536450647395147622542899111872035267407361801542137296248223659855533575662386734238648438990966748326636805990650588237397081131602367214437715218409438383910539323759188870150508725884328901517643578682469839550535207667971850528301225073721208756591086183418749332129063250955692169824752619680343239072257402798538795726299896738197204835984812331857383283056736272915477143514092407402322647149409072285202992061879326182543351726242162438037169427432423494868147577175956516458153789145914065528488450303875114277701385370795914428463703896151878743159717869713272569177903390481390055686476639391044293831449969115887085846862327946146699025569232685664415848556134116127918646793385372136700809338480610909997443202118330157668236450612956361667918826737680755733572215485140014853559800919198731807610768316020391738497111555680956819131909363832789120284792987144696002977884484937853842406238425596254714803065577429855788911804544228388783302984085360977290283815883975660590147680058393617425764305975442329200626527732851439659299784286071597767499229238295364796262116344303616502505554187635349196472371603931183607272090009039199639492588654524996867662814625145745831537407684759007665123587129787969138144808676472296309054727726662561634194919581451505633224228753575037691321138877193416525368148461503980079286242645826544240977402447649390365805285125609004460160311234120981113955707896154224769712617776670132137447243507162359243708125509713354954075137350251471716184865353699516668038603204977596060077341360556971590661868639175573702707947626088428724063615240152456812524306340336485161810508731343421766754319390286011899909791190194527933190750864783500795350466922463161405316514492507017289742186775591277486060272923416471848000316181763411042607304654949118670391221929685269699937331212589017202496649898568437252308112828910931911848143581533112275958664980209217260057555535861036330631213987820664737572937944044626865698020457234440458785461581312542824030556136263723056103561810678536079296430782722251395303367874750677754316968836964994795830702869600250802137455534684573311549742727323660505230618366024695619100306161354488791367667249492346913416510667464872615577658058176364289549840197607068345024798945677901464972204295970621244503884790056679654265260434404486611357561017070043377912829003663170506106622647851020483889711762346088331511155430750876306565070722013895647684576356637331512402366105881211696345292117822754501812906219665552823436909160113406614296047085783810576487719787944316255194615568162249628195833511028898872893494020067137964914034120873094656506658235482366826988614280979010865924021720549064778079893931880674786152934560826671637583118093467901260436403071026705455256740937524662111596262082408872825395494334938884389564173075319133845973703575602624770067212778409947033056135829272246199457554832495218407666263254544363955282904362170764721869057734470976282394568278111062883204263084584047599079504241035773057008821348933852428964094207967441814604935458338981503268303039596945215046890165689818948224983380786563209063106490891256066855705519410232690307356840825867120260367141681828111403765557663256599431924342031825833873738237240902912893187001680891209816329983278847411410907898569762207090700815044260404377937163604109215914851269530284493139310572387355636323847439681874143895479240255533214139273682830269373299936001966129362652643629690720425157852405312331312335082944414560275730650858501502615552265330904060324247580507360100635577562858979042379507710971374600469107831637416329114835839659177356150543586511803637304272564440250519363689656439116271651183862571848002788725926407183547393596884745559041721044735459523034528214348680694856793411196640730981547470071991599921873873289726467476678864676875723091894119572913529207840877464553273501409503290933909744800045644438908519802986701764381974171905828629566990191545501446427153671060317188019723221154214525946243933407776726953106550032677918735437250422922106386449074143880043029408411340659206494893887534523009723879808324625364395772533342889944135567369711854013897195944741342812491486978317294133436210337759214912197860113295777163706324702285122293894810561300918195445253962175259632850438683146032616045617277335859672008392940612212911931978859395520600528779692178488628488363437219983904884298830443082157065081590042968842533096826295031779656948736464429350142067924857690367341229867584858980791796771550961127348386894600902220477366040296018465136253985947598970055915841265932430527858949587120820753438377339008247709046466734676989644293388088327292842130014251265992686378941612316797050432496433689856275776675024422273429633946276815919515892319662570192044887947370951278776311309495346299343736193178646622877427261255091117928852665342449661026932204350643485171912725298804479769415921332098050917069269136479005683826145870369182205699280247513480775267012463372280044794959033107842367484166064944413404898746006155252584420376927815360810054929120555859792890639671443389458776773125463487169067542657678702987877666042747657114068662747515374105045402336695310874358705739620654605162661993950280750072911210492672164408021328778797643626028730089963511042477941529588779551847620202775586216251742347413567360260588115630552869238613201964151468881651846316709016581368160001421306691910988750035819260876633117759916723719234833662060541654939387566890546995223036327352576455742145241779227859216596672077188122705857294666323702497855562677646508568832630503451418488878515422222856744701139156193840390520807131854198550051401201916691384123739467740222453432388243730979378139455600724375233450413183544383962756745932624661813742073117557556783950857719159981703988073829138117843342737566332749830966327919318429841573103856429074837985542480012669172869387523193405055818892184845495588402019906633460140701197905151177442071460045265276815665406516202174222732920156666775803365542723181363054462067782015634666177605204298709877013743951924423701286979190917193226658756080477961357906901930065851479046339506199045433251778471163698110082252031214386521907638394664660514722686757582778488854988704082622563777536547211360208618388635848575056722498433343677640500392501109185621011007734159204478371890314815797033469020763595649133459812398576070194610102815329925209522551829925806209873030649807838041105778757898542041709349381244072350704720367183974510560510641055194496175072033773270230108294660362231175742563107642782467202335191330125493240467733164108902646064708854261053761729594884369843815932672773771141883234851274304055782969613140251302443404396162114983763931264858193875450623237695711654385859432063337703483430733865820512004419640665374300561691053330569276815968335893208535682951631421306201515145910669322249777626110402142564445545661746518634664753600806754824358738342901116255021797315528974850537154518003248696867418329719184231190281619745727921295027563335496143043413094532046318225025921526611202295426691525078265417719099850096476155836013129969837231497576829363001215053683449744160124677543130499811665392313032553271906189735917789475479875528730413961842472833910989526619529753099028363537009070568334788587714821293823066086223355282078358760373931524930596692718385997508215082749469402273335496448836358691550108621934769685580606687711943637601797059584989606504395299160807756134909884836622185720574810820268349525903019443864416821430578907489151196994285074169338051024592806186406012518110557078206072853150694162932259072108281498682909704066396273581808055002732938605639425912082692751673743222509315588501628409311007760893811418814973041619009451170730290787504792204013803186173237761898770874042851932440203938119184276686917295738680846546666073251667266679599712911309873467651547657722650733084605384947733656314991803178474800045785170213406096864185894551585167373461002066237666972679094518130968683802953888491151496061039718232233932263425769457060690524566703222803932947708397846244682901719428365264292539755730570897626952435768949228190411358690475229866291268057829505918207311418694782798934480128852859946698703321922762333397550772685231856666960009116991298678034253766414962065485046031255844580333420243631001378199031652486493067580367032064770387417236592053004899372981746471424444909058292702502980923012981567912001087650229005955229748328412983193578564319015767769475687162356555824978740383359070424262015285859189781589347003915672200326993799784243230625670037506256021454667306752662677798942018996631675203260473736678850178127772971834266996787726108637705418175051335318442315919214637519808376100755810046410965852386555558856617784915274630157934404113744703984918760528099220623475258517815808176692966118335591232409904544272180465703191350176812016111592572382791720879603975923139691053447547852745587708311591003869656485141227856352027654305152617649733746754169288583129328984764858640091503784016640322214397707617232226504729888449980259953871995744605747505667376733522017874382946431661871031115835471413433744434063481779821496346039889501358478669651332335483446446751735274672052609015446386712178664113322794623641629371378579220519674536686724382028563409009568807887993950630921641073717245416958023773987012267037847413778565748458465446473281263201339251451431995403230041039172550100724415048397575910988617097015693096525265535520119095639853108097245519707455072161529820409460576196089509339454739427658491283570157777316005285801921101990614544226046952998434769520256944560749476669785834039064602454624312234858869639743289500195837292091077919823724763396093002851931217085733540488974260587129916966633317325024897524140764899654277443168959562836012047291218321151112825704619803527579195312188686793364011565814541587698375197677135007702836583097239148247178720406332189145716129297324652678085187780857424002102561005968105572553308866483738277831911471560519087892127969236129185775447113218286423001123439175229064543422067426050357482079852631777404807525660309475340685828608129970899310674685184410865621016725586103433079544239482422818864484983424666268621036529180733110431546308219944456073931738303827880025212107908966016507003441884596095618139072723300580518253701371237859323896971708032651218410821016460685045067297257709941139020383966255111053232381134837943769657531350307933312989901695755940758805547087888557868436837175568525182716477340438756625405344322340482748916395131317855786289961971519718416076949392528503002327616223835017825209680373277833202801064062965492730096335560971819343912222437237498703868980959091958108511272798830267974465410177494180360484297751799586948127542815434293833088022367615917908373285427618241056861644959061187435440855812326787172530905967137641893211068865183331307322380720993331992971258487614273542426774125151637888207805885580241453768000122429465850013567370939665223504657204786196971633883182856350132927096363895710004821720184421719394141495561540221637095941751178253946307543207383020680602488316579493001392541382928740225147957411600975599804007801908751581731576310554029097806501192331597448777392545202643781947936108141009101938307074295435283056542984456354966825609514916383365258556702367824869286780491647224203332281372595070842657095322515140065394147414489642234364821519973862587570712019861965992452071224057068590753242213599051430026375717080549366736203949411239280115528653772754436731538748578657275398790482029369281651682240377082838580098606288269837308750136430566036727944502749082227861944314848180417884165920406968503128137704033462366113308304939053913421610369633020055634969131447882943322773181646971896504729964127954301631853649033539124420048344251170912678449585964243599524418487437292582276262658624971490796194469681946750561716505067581410837466029649623212492506961655029845499713123971138478780477918309245270481548529775895020298469889287306665802816968278883054752607832437795652126263748742717677288523744410991460864357509118060670678998548922695960678259802902446934871045113153598332215947798825812202413839803306320165324444473072408862390241808086769569280710203174683196432245344352309283923304272797131402674848156704269542213360639780325234977937722597347575400486844474697854019468376379180217584701458708720837511441499757785301348544577486687890265129278956245962445276910865082183065613943429675830243557822634159635302340323264221304207469581982175436456065168671844810806747899893934084349135839844725246590876642746648036700465578049513233136553930766247746421981226270319649961992461749585752033259171556885047848504566609479492648571694684363290956581654828633095188851977831853150579722732494403834960090308597284728296543657416548381707168064264270646994224933601199979141035751458774297721449346720615882840372122739251858812607518290252742903279156886475623411076610237321480875393355721016692108290753937728391727463107077416447838314940386941936311750576882392884993779943918297530010615005946846658590306426264511673684597315658926389934344830034705152313751180659213676639272717930959238549882545550541049006888381652560410324664697597347597145757939336098040235980367742228711933643724229363083656688193342008194522731786044890848557760184997661314448659100256969428614889612661338278841103104068522964197671583425499160301988955585258169184346598257710772413482670836018239352707809437646010990617361847516323982089489631036054723128876763099674292259047030072338226579139889435187971990296527102572776286666354541711743195934934332877554479482478359908857077295334346188750424623684568748431154913785884014063522561616539047009133250833568119026267952745210286938811047812577651352195080778475279162947014974054942218771739333796087539609743801342010226755109650290918549780490924152395069786187861174658827058680561485258177067997709782919729878427099789631403897246462467877022200105314206359609036716819491260206815086123799423068040826319720004639016312135175635535780270733253056447753119805758327770876093916266564526165562535661165694963072779416940590500307977445595007100824420780916240561410148291833309629395429591688410559964597405473585656203987013746441582727323794786912958483183233407737930426571724949327678924742963551763702184482067198742661855874436733611193997849941961440171823452924768468037703239473508149941208257747712255453522663227399861252623931282663866958168888509475000816176048030926567400180919882427190866120071595033148002486530921010900169656293791113617190660276715615851456658040306662961114353937258176270052830721039108638464925483401361246396164440908996724191584511089294109380234743174655573171507331170549832934434932437173670783885716060519217666770507788660580480939117089939113000883039516697451150395787561336829639461340867649607545341387486921583113754421304328290194030419222648565410152570449312286376426205320356762556656534322323961182444106704774368063185459590129447020052054524681964866381624293994962933900907666247822708302009900154156121560411576720929110501016753156248649738290141294890359589544464725662494772249391513727712992691495285635337497670477100429792635658024019116507689491206950442003922158019853506295047405182947927990805561805360046352538958709502721696126791174428876104867541631715047196711914800282514010205391557990680185182084374798017684703093716527742823766411084458832938224838935212375617069647668159374799020586933289163203632993672272155510311625343524268508505798234010644738360974188082867746511641533871196937840106992300063298044163351557791084884067863286167236346206574183584247770972580596956162752384549328880207012337858450771719674902662262740099800021544840759508429401845549531684665169854889395118291899698136330274620719112747738992386884885762419425215205404510749230493093835444350856968543429391893611851954081646876138472394809085654131921978509465358023799614840684289452218711679404102316186401205036573403561990059360818450302871056592376982667138632773294122854347748047468756349400965459150130706313543295071662484848689869108893639351910489498529663136156528138974976266417543266334611056404500603875092812065193443573937331071237148125033833603149304081874338950499471416068577226428924858769932346550776775148604372909633437954986773072917537216526640854638584542555525901742842764799329555377982962944580086474814249874427521185514365009373921548432051195464472123104227023430624747544384634646081421397761964337227295593250389719410128676913542255737526291894031289775532831696067105799491391660545977734749047471974590133653487418779344379599382175443246479448191876497716378417238099336725431480603721911972622093439548665290218946708273339532638548225856092371651767621263731422680293868048500702926783967774341548836639384214767622570501737683983079189343984131521741093847572354983994841887727016702810471730776391119890704796124048214715049384315819128515192837231739542720330830417267639155887233584940386937701315077874663887539344457390873384148985926785904269611187253025467023825071243708509339588670178765660086537528821980259460320926990903341808733326663895241534119195262787582764748300665507629291449663250731683328120475628929160686812381337340113801037335961368562450524021428657951130369216501038498213350689501005538245376573089886773742483015099095891346452409806769448712845848703529564166729615041566040359573494206491268801072011208493761917994316476021294392381747857270295314248719905029363984940408791393206161067410318164373152815459987392637894942808321781696603115670320160060845445731141389991051163710871071847877246474166921773011110661103849832878413220774087333575770646472451848001376156562258954432146694220874633809564980705366413537964543039567316964508000664721542911770734733559563079563750225288938765412537996870627068585446459827628859090761617043619749486465229713600909698283836775490855623596170831144419742914887792348889571695707369178342870612558124605515499941907933698120571102417249873123239924725690210024155807126909354819258301149017142707874784578279248571042760383973056310858769284790374959002077220286548761351745538369324152224526657632534013232432093793293203657873934910633400010400717959497854629360537695911655547508412053586599096535299458010190926402472198074786238706885403418622034089081218281510157275502621042433358366903519755428984245532824212278487754201467178931130854326739362552695645142960904230569235311408986241659404698211902354176027454439559378949120899839981315225656296874903294618294997731690972574929019547809649489198774917784632944725293278122487349274099239124560010472265114163568051522347570187312156080977829168497173631450599996257748982038976583541557503135225170501948517668853503514817257757469475164527864764712091447043253745666253480279266791919345418289729874571844893254894261823453612412573528343153782515634641437061917475021682244462657384682901536318169048288324043698558968738400776416492736798718340606928772492323977700530706627813688341193008523752389743169222073745363953770123104237822802362592742583413295596571836680665682875275933865409021260175522801535829263540257590866463849791755566151714475230589210345085918958373691034197043798720187476797955125392812515847451218237943388933418432854838369215464145163313034495133118146319803717620208156577508872973539835339345112188960041931976989937746878745539718598705537031168051167644944745024727019729960193913327450211404661965797701934015530656733178510918460697983471637034017772911668507396010405750126321337291010340554363365811852380902706246116395068627858205804158887721197011544112048431687311146735507770350416906143112067625422811075323563656793590077159294434179542659426698874946733564996310281589443730310027237011583059652737110293061161606455758370799948034629650849745516038205112571976960389828018519452925468148931381350766023121731145199840528970338154152820260997049167308032419335016797850035350650615059108405626712885642515326759990358389090121455854905643565447873227958317845746934241802814085906938485009031182753495814727794096215121696181419950737646521259389270602888359374628151574922076199806168797636688650487724826806633891513211976090586861052181274822171133488920569893359657939068130860465303688139163486972003037997407766579281601904537068179688459757338407231893023650909064945786288051305545688794623187266623245760704100452444210718640723950544582190996899745695144067998809039116420656301394035390958106632528651446350954473992044980221582708293507765818115700235252422620985858933204761444418659266573168655737152853192447285198804507156343307588105956598873946671305304469290861014444577583349629647233336859343684751784515623568065318704141907460071055986286500942511316507783533679764576808368219933539860819826212031302797913269382619928672044976161397962224513735966431393259350508085995811733306902381752176111029392079912954643955236872076552889491272266962450439896121612291629943030344344566511346725908861888233827916043347524393573441624712344977817700761920731039003595198453902486164479185630730760246332147265574811511574970572430580559511908731194543998038126666781288683215632713892777334536624160499241735165914849991474022068493154348102309453131461132944816703932762534733900777787142458214193612320295837712230342618961641837332741140636638179261066956797256342497436557488184663510063208971240559673161775157811321022763140976245620870186633883221444850004354592258369688025558831069568270681934747230436750076903056422991320679564956959608904031603560034517499708996713994802317899594635336303434707659222385956278213622662051341416660764753049604762125606619279070394397899890567196051643317682448483329284613196549086701391538193374196793701282288938674148549445765868802532758338125352646151210744503151427093001811191379641451301610407124992653720062307314230573118834788804892343871476179265499567638275732766721215992949564305856150129106301668522725174314527824415258236632442804000057932545384625333727149690964182311342805732881861174800125920746792649543454842692762022990117180556048166255199930239781968356643503860846049820443080003526379623656735105886090750963828503343713576109236699667781263193241017443621270468805235080046361848721880984393951972007029730058786470318892464314710081888512186369974656689882036136999160633685382134606859483834204913460255816653796575229422039854445087676216335191862272122722451040655513341962730314152713157365192021818421670830451410200379330830157726158084730757296679303665898345110381824083278557342880977257053992401855472718863045205121209738533078030051346712987137177534208656386641712888744240142352581117106693521587687135088937347961362932859805753360311302620168655359618901480789218328009849537665213262109450897658054669004270219190050687721818280181649723661269130565965293824716326153786722888287509959417186437052224285397700924065830338830186500015880205657309183370328612341995111355437103228540289257903847028304443025940392420196875538120337905237826522752733625208669395210655507925490094643290333762497265594936512135377126029731655318934903216117338312347576006893026378130163824447158025831465070798477964522297383290333607960697622050583787701613653340994453516151035967325454915365624352115157355147665736065244607613197690987228007955331637496834390735799986077455984274094982397540968203606505656537777493512279469948028355067680129471083588333068904227340111198539642475907558506454630710455702172556685852039127448325372251008215974290202476034860923287626433712479180346907804472716281440915136182832505794726062059959495854088334517236361814287613844372564799713773714299780392338110612083991914155316777675032172614806957823214446893921766189063011736632716675703239663818200534619653382905620521528589987245434974377683847293011118643320609790031960303151756255273810949112405607967169041634173796124826231998924298863998323081458667176493803671453645914436203466751131269094882226124823697011285548843394501672349075710707465527763108863302972036879185491202965797767543630807739171713962957433196559577940900448882087355206456820023562218068168001891129482461780172290535790097463804031638171818591390880297956868797363727061586581241972624893083158914271177431882970000941074293163134869446008235151953287754190380876508863288800559302378131492476142194125560396384983920574506803061618308627997360293114687022138142783931505057109357995568357688483320673597880793344007894887895684231451365128904758247167885511829210235322603723453613314069286533082397741795038961725831758268714343230990904832127379590345830554469111519183903324769593872820262106436434867856715426962790679734797759343416008705312373702810173692914736537097842847523050555475979950637024841688825728367067569944204729513964682695004843784194771779065847112967806443572203047847974746249042158794990426077585486125890580187531382369419663956809551917216935344802835843567609325775856607127423084585102631264512402716855036948569243658019062372532830057090810596110720710894684926074351653295036387022089504675180768573361063219255381537234872254805510937220643520358230848478195180521336582206472188181901256726844514382928359531604268577499777639322113139454799692053015657552265803575815388419530541834818238224637210155683749211466370395287427170799143701858704092245784244370023572104550521749363637853143767625260303924878961923803484412018568668219105365256779816689843467180932795160917217841824058377453277568544704440811250468919667218730853050034204231661269537934664500212628015177180773555759935014727566563893451585170587959884581522259661193308596552879469974648590565359299581757609780592624268667042758034893043577391700630808871569986812783309872680517553875961173540162113886768633540602033338598734234855136062526160139997109984359824919910195193737116283342407474212727176919770639400630173372083207162772827277333709593489886525814071114952197557594990225694327215534055053721325380609786968830873300896828642707048889641780336547739617100014602269203146248335154818743551510816120924985075669478832717129606450783230916137018162309657126956608532419834391103196563019472822157915364251442181434377149351029874253932964863228682677158831900584665580668801950065564050089208971277064111415451945507703900119627494574328104101300561014393406886805462199998105193891968190680520043157597361329821630977106511658073893086892334607310960248217001242412478332507471669296795234271383357103714923663272885176406315223788284466842789320087302636287181304130779776338556683048440573924042098819085015652324467084499355528471930909480427027916716622563436414264451439126372608457570082427503252038703386713075721016925995383077775476830756983083523665021337878078721353401850396061492266016411618368811003120853914141561332783258548622258526006015263859171123236048833759968452922597652990221947097902175569623626851600485788038949035238649410229183553072553403124873919458247211778141337371829038021578838852442929712738717498881059977439412354043889120145379091468934759323923353510433341520134680985850287076276377057788754504097169258804117954168351228680848370618083346083476657485894754669293475755937195937537012559410618067679605197726612236985212215774794423686014547599924667538140445168171650062963501516120934803682374893725851551308507762237772993068982354637107430128468351742747101418107670983868844339509568701482513713236043549088531027165149302529887722095236395435038447386003029025910414951849395608306617488788321058174423004351298050461227201466207357914107399531176543320189567323626544520441629809284697610055868317942641710878985467188197174692835255944521998133595099831508766227949776161862773226457983347624054355417705407697850758713790324708326900614585369572291160813668003540132781281000926784618686003108862314370123734382738166926224346815587913054191309545555810380946605182150464612618304988677379194990872781173821640847850745501039651626284292134400069325891267184307242243680202076671567911625184747216534572867794499228818032793405357881801587763955112526347280724305773194488669297649875229281846751059609926014261412183879525457737660629236104207315239013268158226736583222813827326813128643174174746837458225860899639811660472429685049263823774332945147917274574636851585475145208495510348566928760915218533086426462150883946164780498608895621503894883427745384312754743491413929602665352712676313660440031080004288822890276687441553424124798904965607209000057225930632074223626105497900181407248560588629157770556495002409404777739842394128601564133251829423472083441354021019462096145286606772773144282162566954888765935963847146625207169617760396372243483199099058909026693437531442440470606227256136178172893601638586826308794977003566521494038404030813719112051057214356017733118598708992590896228881071713730772735554928383471263476447499513883678915027657714597527501374961438555487773251299560642226272290882748500527357844387318905094452799835783502177959047098737718251726331410050555399883993649546889291288324068537328141327472419562196306434800311692287255902635951302937347272182290946262563801150136157021800497771160902787278254914849783707973754144586651987241844126570850207366720375284675968032360125270348538842056232012957138270097793258446624950979182542792174308944977152725975890208753862779623542517787754486672547931230528861481224692576532269957274350752148754559637057250195205322486941466999188843790363828955111351648908013520707730805040166946675434906325765904547985611661719265045447389849398624360019568809443095852475199697694254625202920747030580789405975160601055604239007459019061846276111044762405699339382103603657604273743861085983813446466662982030898566035484352749058073396272140368720133142894609984037410754810511547242507864776720874995098288051134161549559308961669899012819975324865761849635660963228265795135283255131356482241783301166277860087579166205449595548683608706199353739692470657641089223265150819896507451018888629314364928547428546043452404212924958745013436477607103135641006213261653974870531873487199191305087432784425223255136639812262373436361308397440922223852942581829228667651928436562407848226181910692392623572804272340564593898274191063079738608175697557529897726268053738130928428059095519543646602068819838010004211665254929966360119940661170228639851276090250196148210685659196616613971304861885863791973667190522677173954530674445417895334814210426522607854674762848362905339843574111818663274276644166799011214692361523237338317582964650379916076351522261589834114024042084531357169017573189067691923463214615027043678866819004195169589892929902262091319627431997171364397616505599329492988704097933650705056253112520639263688916629167364351673691696656801418273758460958178679291174060364237721738143081531977884011691883343456087856138667343503495962314465500264521444146286991957233731915419185168948504222965058899987144772030348089444271226366676058598518174737344086016841502005756865687430803807128179831066356691731309930236545530465406116988238619215858114684424096365405860752371178690417068743964368103000725434400684609692671762517048540644539300202337798222446438960772531880924475173865743849157749408001245922714204772397930665381886036783047502046955000543967193437984252201430883487384560582143901739843141310029766987793189209241629273620536205725759694158676530962982609693069722342310045721994121652281678183171943871740589864525550106291750332808232039527099019906573838764150740724850332572620568606311390152360121730258805098099658057025362996588700082241304768655333286230284942684600630152533048374823589890833044848673190493289531488070354998891369273299242160971886791752796432092702297976046853383264358991854715381111472900970992921431008178946811274195819668267378141388764773215699450829686630612655729516908823948471925659543802711554639123617933776244812583928831549790583972476551627794825511619765786886452916429484964862892306214199036143609725658335158145792092339502483145832492770975247456396171334871724979823700382038340970690886321518048318360491280137962795297148001722694470953116790565393518386283086095710484899519300317119038167540812846868416077793985709759554453573257551349477436211884631775751764669802927062274281249981574524570969640339658362085641359334181915586038043145760387757284712700379162321077022302272921165439865833011389919659869319910388151689874834619945176689857947649424300959232667327410572247689265994170233016254947472073191525250967537425412607058490671718894564741403849956005459735233563011059592618165622505814050694211027355023720101956278065547790516388728417983837014849283239489103896973137620121732903222440785996727271517796389895195735496761861708863868349283519356003342289390172014112193713829250152327541512107574560374034333630605818488759983602499846797038411208283448702090064733727760680799698628751295227407115769966908948080835063715376240965919227292042580132090727768153441177966370069729948340638612233269392591425274370198177627780747288437895020883082273070253018477488569323793057839243771080609321497302095666810973201495975157306111839656230172950425689220549411654559013570061519601741225445764080643490076316349366496021267951585532462435746674263965472213448870673244553628780953050951036702259952529133530542468772503793038333870730967492645811980220587419506125210887292846151753150884057836178482048140916134963676392925666193393404113347307774346306210862088869895066544560748978843831317474134079057726720110497773395673342042233454253947015676136028543120873209376661756087330773168563064315324029501065171021537537348526952725103381814610590149625962096925181477685908537154891391743909441515072861946957521717617710569270047617138076561043968984229518419123796924222425722023440666802998477551043606541013434944215184392896978937258988226517577119904837345768776571451950615254398857816620857450974838846120511616196967792673118457275219431656163575269430526803847049828311358595084958442138319778653268636989993747582175348806460076789641095259269093522988947888302943635822828119107008739084989442692706311953536873097742436161029217283887519320672713021532036784719106692650962378244290067605527405631564559427263970052287717462459531658845975882888575754710233533208945138233720217419428936178673266555434252552055565665055914732264925507271158217420452385637130430806212128311056562420215695013693331565865789041345549790728982162111755220722675766273554932933850249680095408812683577318875755132365341677488523576959160285500269173689254382509136824629887784848324340978724226493925573129907962396150641447198726398367285645493765761264190408998676160034911282829193683173348489936966596899166274181989281543324027251448422038693272331778174812459971268659566121362264683121074645202463274727960665624572791712303522130501200600880981395437231492722443898619501786384925137842573122849395618611244650169186202691068737557834336744869945108187144779598693465792260473443261918057755373562683909373717215933892667379945922419175310339123259641542074120694186101275545522401759874409432809780562398014171708900149963176990107970359180093434379326249365714724319055894356036311897521973895053997316513874877567911529309928675172154969987218198700474504969147928429911471698122779840642255825480325788083813171752127881928048691016306801673044006149616092860719029605982239989912150185427503171512332454006555698192062143559344794265910466204996982923711214070547323876742028826374814410645938486685114932838241079977595225364405088664191246535982409865239130531776756745340762375056396739898371036339625095204963686274719829214731820407705630239838996967827695471208762308146009371906607593929099920292571702134212984409004820102821435817307562164801130105549879664153559859089611575374638358032518948456666857338433043491176028554964615750659518053685273372682205499859880133313090427368291086034895845146324969290193581900489824345073464456685937886875500468495646113308671667564436534614561726950713860452272113113955412486491213862696103576575079600328101025570349692918699019645288612709202007425398162761609720355784193360636719381374217211226888015082251177470505936997503935682296882363905520768341607896248009480445068147478228031857977124384541232179093923816727024844514238874647120303631184131657975870782023417375747583401368709501651145581797427942423993727573568198629924651979102511476320665474936558958467163491175497724178574308360745308745234112318551775253808953553658872277398649613388213938909366652823050565609984429243862730230424966104774408971300171486318361652474370060761766220719294446879275959295122362215744345163742490482993902830840008096108047738318576539497478343456236088845342476050484269386864418066422394513513804425160038969273550443699722468230704492354444020066600969258180539209411637849562842428860060010252562847020051558203720395513932760926431637321382016562080686347467301785780474849322393186886507640610262063333515191337439891439205185864733331042595607213010231776260831074345976484207760206134930891557397087550207555716819302804833305588101184243230164029541840446865637414190710684871780780987267460940480623627732816048244337258445622408824256708629841576194082976234610541979672269325336414903278429198507408522350963883107563599804438763175801606478412351587345974905680489505917305407286408862786967182455305217943566280105197923621506783259430129697318023327760295920788279950431889824632751072941729426737294890067244632930687753181798330344262835415112773077847566279608434268893323439988692855144870646348375867440697193987822471602580117962956084437243437013641534171818782724848996641531807158583621396799790018673275876656576448647179119410613414395518150738142377763932142685788452567867137544752388286640622100500457298412486040831552720657610518098510975746087641015552083895302806517949983594857769100102873612918766503322107452672913600678345379325423193815641192647613812802332948989926947264024589114726279594137191054312949318325132800621538685113512013469879396909953699333873279738998780009817535390567168152307791523887770916664623320810009118223481810442469435449312841062399604422764289850858216066603096686885723826117408278828473291087697102671738435640233914108353579839786841824320831541822727920096441992495598163513248555212394793477952675171833614637593778375762123377739633563958063924255627379549531819520343671178526384665789011879783798548819886475490367651422441703271152374020244548108813311522452655033609275552244030912201163717498989067837437814289707206548387738414944125251958881257489107226847688075999451866003057798927028919460645304386945778008361502560718925026625166117289540798749459112198511983153448525837504186535161525214715123608039363104632388334402486534244461240728000027322979844081049782675590736300886113155521497103956730111720402098883330021690746833344492106075647629772543141185939752362110054818709715078335017460254249431184547441128538039629249413361170626056989629644481615789846106882942437567914912237534290303152929935853129056863234211608570693536178196171981189721362969242433930102545077751604856818195352791097076371403270691611889962089197042065343716269058918337206410679807877078692925861257589783073533619664239075703784760241436094734164933605715118495782243339171339209991329434232435570032361128191759635859477869884893991539318962090681607783112314034465837939036151218280101244457806565652008792246429138700502883324363095023295532475230085989048828763662169301809258119963878920315346776273506639711856379762298149291286273221396050561504439137427483119886493458556271494545937679466716119421761553418709377758131974996264074000332309315057817991604614287276164758869040165880540244181855919693500001185905049426341323900751261592609559508199445528512132182504216533754378530758166314739699175313986005974772022236478944310896369009742584842684560171031811227928906692282112801410333039071711873849972438437920537599676938044110268527367018445468955127543270761208108604487840853633581455567970367728250177202825451912099154026420027534784715625535832035799031575501730636973247999880796608071372209526947570445558855914020117237860931036230185969558927400244863014963503254531976011539734364755601268382060667666558413731543472322459494805641394976416808768071385929585723233213391088371182364386689433412945829810332126096355731107830806867539842639165238876179286695746988728443276892452876280110997429715650841486880921666803740665227921653816169873865304940098205145126640346230816620152047016715991311011840450593088794249597447508577640074232707527452630266569100433980683880757428947328416683048159661495880794926290364880622424997797322139931171959686429723160456767735659740920243516840612077474580182308314820438002456962820829710908048945197637842058843606950445930221998909929271048584871277094029903585782450763302327528009747295945391278360403024032018583166450962495677366915861862423213678256512371184617776757910752560776167429846182904587925176995259206806194141333514443538447294351365197806359705859731488038073680794041375745955595490842564626539617283360041445899836635039039217949230995819430364746221552563603905425475114916505815598151421094694386957892934520727128151979682552363368701618679012022178832091484991290369247687362094122106977868232062459075997253396897937122256967950775361508699916800948411025839033816581636198131618189998094678985134981645253157731492994526556756850427191540706414844391717690622361367171248319025404089583401650699956276210683399177932475021605372464168829315823294720282398129869803834970075848105132988768691208516890774937695792624610877114313677870072879198012530042048386422987270257514526215862139284866381493211431757421726548066495869213190533819161653534664111368303482024864916364757996541062070522251171408940000247847435425474380965282587969507201307991912440508670383963099826860658431802821670165388441469069812977236391920881293017867837651983507585551797152695296774883252257667752120573295691308117511878874881865164474912718434229038203650165738459355354884747797802291937280633045905217315437471456283629735485156879688613232558247094245078258176054411923339116708307763840977395719214757960490998669731763934020553809822382264622683859920885814340225594327269121774510624974344649016076293585342181654893392559693977149869370863605945038109057679342532415809356364907779854278428078497101946509678046605301273537201208885514303129430160018727169158298959264875349047197066515377642057864756176376642105016818305713105443217244404185914063378835876134577645959368930545907508366460062021773901257194972834353416331416698861682255471611632086177883244034303191013228902736030975407830694600675700474779686931150510793669349546668567054965871075493966858085427773524300581743800825352425965646677486749171116409816356098724028766392689643313043934571156106286968044536488057673977293240424882996965087049894559121597590614447509232840478020201470859592976054271616777927348441715898534519732913335439198626806565904980555230729628605180507667775874966485786871037216483022269801792580096399443861435614944242626442327611520388752896757009679504855453185785970089230834526084577821986708740750218115816589224257201556400539539699388026067771161777933712907883895336943483927075437156563561309650836546272135256974436028366222403172135630109783166440701395448689521874931134615585650340764618148679202767168053399436610059536876164328238718068262031895834671920414539344484118748377861308461898137456869041730761063424802191915961729241340753742758958930833829728695896498751591136769747206776551348980217869762316742291575910488329465167137542178147466031473682336521490855689197343511807861485002761400367118735548586659695751304546876463733726393892762603239747141657923565108429587809891893436971869850847782911072525351793624685360507948917367804760893421652505709590524705061326424635196017981841424109698892590896765479927314497337659907331169728807636987912653540887421386490336861277944839438919492819511850061361724648026247206457673032773476971165573425370512161859477561614041297101076223182064068456738758953691822049515611124455046927960043474662312916227391763087175368321250089452967968005459936569243312365800867746720711047548953333685454253153625553606240267804954635596566261732510057856155147016426642072421806857016669680499389758740023336566676461852960814161815600178721653339630333274558231944593558350547750683857618143109389738836291934887058617836374106667655657614382425983698514720147648706001784450793093814538350787245879327829863149499948374489297702313372342648792169297710425281580007899454095467599554120155804334738639199106487365615227025346947040102604660864711921461994467276848661699278822071335107708799944985060108827451443207993815910848147973060997735932727263303741060300330399134519684077665518959238719192730827362330524022663557761811278032444100977536139528332262915607813821168921233117732351737221294784259850442403872198783786913704891125032046963919919742863485911824207393820843958005339749610913188052717435105340542726930403058590260237487112396498306095085668824423412250405978218655078647949941622347367083532943808321991342899013377240425963104422066894844814716291231703986521958256572672737557128191985830684993131351448876101718119806645431565580817939664168713821324433859563439875306641764815570269994997193505043560863047881921693835439309214918513670591353659361938029035024803427843958036481298567009592120276555652534656130689455855737038085498684930066863895902999646071617873945893233650554757982627434555558593948429454086298108808454425985466990026453982655642983565962573734266016421587321261528269454068479309288217696886118333222939405031124674675288377260699833256447160112771300186003273047426332053675190727612336659211206073567534543296361410840464701665700936125994945236791752910982242651514786357920713603055320357627710345590074354361227844215810374868982778761930204404436581947195362729512720449462380478285588439404074171991276499784726398536851504794953696221551444327835222530278899676275857299868102038200558666227445430040025363576629259543029591222708408119700465396439194608329188106770694931293576273337652817366832151055417027621029136084270460131310843915970715379437436628165427079835939635789742001706594670779365003200703684287385351382881021086484130685720826161748197200271370727673822490256690844729597208068591484455888548156020312954894951303413751323716171382110871317209688205848559932875751154045871620424991273278299102671034633600013702809899196120163468146380901314019840972966262871490932519579597027845097592218643586088714544150010674787792403562591467269894658347753385141513216734096076727708668082572014970509407188440819388866563606384514707441816797266967395673991364698571182401671005456364437792181605989576579556429375248993374272094583342495969927714731595964409986148074188831372423973798657952232370533684484418049505978207275527355654035520569833972875882754144040527425272393990353778604471833770966439955257723768259615005352981381006401404774061195642876326904815632305645023754812109410261289572726504793153983036523230207265480607891463485092087869693803718693147826867949560326403234316647342624154988711396242212847054482208917580278229736536728811461297757398052823112407609944275810727925414311214261169279411480379728771617543989755901055252663895797976958184768666114949285078424590552037424498422732958472515017980821442737921391818331928500779649571176205079672863780963780152869083078106680970146088780257006804482690293012610345011509158607780795229431545008532832482766770860411858143167622591486818584278601901548766233912899780479100100047125096572304461704694961913801299865767816593271285794492890426739604885519968133575684088893221954005522808899310466357274618981259615244586598944525172179878815312433786943287875362255882669720622235704981710253701422620421222960532860258147691913765516549019815411641394238284131073467938029975880308791017590678541272172467298660606982750098539729867027992798095412703008683195358146881292949686446241553061944208564706324577182325789644307308630453632994288673509779937014572851471881551912671250511701317329496304085817949477951770716117927217398937676488007561549271441601093154942132645708835517085470109994279198777930024036344709474935267909076931086572645242361985455004865582110172661804656276334489327042698807517730486433251885759305871828234033881726807682366273765763748333834150153655048580832186250926971038508034008968088389244494496842694526624237719995712843562989829024246408690289319604952676772065990915301975747178119661659062006992402270179745970349031371636101212588423948757956881885540864934276953783164194885840809426780206315251758654749563056966046444546448866288709248401794529708230991153735511196982676145250120829730563393765660238054617934419826130355836164020266967225693949182433515843968025411496404489375069037411761920148036553926900082921411295050098036823319044981277507289494712984778207434769208743102460446692094992205562126142965958394020190498731693108761832480150765045008353390010660805004166944358423824883996753994414682966179958945333210910170078624840867835963954650821865587505339688018734987050249953334723048097705002877085388043511939496628015137930551041628182370347997666763852045230392523986131750671393580686624966676979195173611249736511802383161946148723992141179375430110749151817953367503709696331162399236476885098252021025865611008022794765597332863209295936689330381269641117870824180438590401310442408742058293366045550608287288287404694393445467623288581604436510797430215481424015969438649358050754004499672184817453243023283060629350550700682723112531648702160128914661981897097770871634378403205274542987207960871954513968771765524083062933977193052719656784170921069401738188810053110074149798608476700220670208455929618532222432016169256465544884764129006789448695502970988257953724976198452763759095436946418175950806856824070194932655475688785917768466003388338573406585813977085361271334909476916790336374480727980378691302535441419128137957499216478159221635049706137115407650762046954315863023552689301538143397896854302810202461631791923139482118198605812859283322533898703027018811762158883941509447404540734335952481208741203066537351263057565182195225088424708037680636732975138530545474920154084066291154526194320787366762126785719150645582991541119687637412146650032863401009139604869838711149852814854779819953359900400163072668462737139777303891229889603911279229268065008725333432331994548784000151356191109377561236250117332488078459223879366688716571518092056608938155125292061684602741368306918481916327470051350460487449017046771120196258224874789621153790359741723729197187165418939600646599133864040085880852783632971318323503585646687352005832702315330448426056397286793312580634161072618942747327078283560336826352565559486262325305143208357122563463056126197281463840658772941380015897524692849896778862136393721279721501130732542861359925687816505945773124909311579949809003039343667548863369097595746144317922226775724058219656780801251628339486836692821686405891552405678204587644824585490336465988753130354469260584151081857639305546570851572209552286570956102166394903255878919895386635820639018864853803549543705965972962493082294463225659095329178864500758000519138677229550267213822636406741968722153221943242027418772984768530922211389335519319757600185121594785317586330264264436485962199448274645733170345988772980999546295888571968225771298867912764627812358483838615659642198866135401612616012040872239697420191229728158758769592549549095968571465545083711544051727397914326309104682013607086454543343851649670188343933164570363627495016181014636947401893702689253353700290918634541438432268459649766683725117020324171818192255807457679419007671835525917318972009334090548745417368907060406353665503351385953049211628458019054639921345080511783813060829781269477874187838300905030656781418990149686472485752919779703493650281058030638392163754550193014265685748060554538301123137597885546679304187199177440759714422950590638250052409937750884711967106746201639731632074572316343535488288586272898937103996910009894456195514778168177888245204075411837162012285769804949612471464715296707645721170657620944191716776610845231960958684331692609195215841804955475115535974968239728652626975503554565551012157568735023045478025009167084231193041310458627640320799943914039477261694879031532869265028445696473343478893835698062227756476161910484667165753088989992844574579546286979047647189617011647723413001670455460590046597530101742295843463002763390599480772660985359968381692367633521983147504777883788606465814783213349681003083782404487808498425182453396437767302258042288002200606611645718142517805324277523249084952471902434029847450502023873723700227469033426766989558770626043811597292304405705184047454019579964886936675937227048694568430412642967587895157543048109121698753459247755032216900752316769694450965495718679254806050697701138793975917149209019922909819829077600955946043610573873049698427895850694838035576011658935349677227473193640096623944627784580293587737678810180710393037880529865867365148371641869321969326420165484230266962574203847337586193036482819210312942409206025053371281107425012662522343236325615280529620606991957927473457515332675370969132161365189047685548037355513858072318717202621235891896218045138718926999682568383250026397958770894554388663488039624377107832493592953919001018980967302938542895729772741674727409346566280159003422403047585328496568684734065450483121650830348311009066962334782087678565950787192325135344435270284231185517448761197207978091866679198918175780742545627043174559892875313835263689164405930175891113410554141158716506452288355772506992115076063980888320922896795251568093038556770524620703880913776650018505430337481176899065618182049138201378223036572745334616136925824457016994743012756864216616340254750233127066884768140810433084511631000269074377287221074728240388737686421446651608191386390596571537664790982506031822321027578161293800275219442543540925075538163942410882328399093294021935788493219223469258694260852800955940182636854862595099804097320259292403729963926919845399158626773636169670123444686093298607642810521028030647618977709044420023818148038263424953292746659851975885068212364285328699146476835916886773140144181439614673917390862404180576713720976930189604941402421589123296863407773911674416019567796256700656745855274261468053363439145464232207053309730502180176972503869630358190900228487983867134118746778648962604406353086142363938309484706897741636347808026728570949598835062383687264882133822293920016323107545997697792742811530511254262413766037051695465990014492437843775635922775305093779264607538823047074741583208725256252580575517818366798513342971845195328295232204187518083735680044770704640351328288023760149171520332126526446789362283278841207068448378466286704019459128851253754739931083069581175995512027718037009693003251008505291901101107322585439434588817499500825361198749322955865085203036390843813037422449362452774329846417458203406061795253264751133835782956213828671244858048874488764192896850348703415568340630257578011164512711798877051108672952315029626868033603742952825613944912209859458588721701171107793801536233713320512421046703704922163038846689968945621321977748503017374234971969771815502016263561889591312168310981310395172588242030068547859512075238100431415731724553759720110435377773939442533220893825289005802208702123530936807199357329494199347049025257204595271178173161636621314771387311673255588150262815936073019662111620513462900121531675742706464680630576087771381894489150152295832327337314977457721187555804973051764735564548745032701410987165819959801799920943413679827699578417961438539308039165837379746456330961126864547032577332458742613124286266799361869652586138125910899404521982852934094046549002321858906327310503821475000140598763711197560965564312199709561828497092208197309885017999276170733189613949820963410280576159742400224733735967666198945273821726340605776513290320565198044948152721183072790596733735778470738867313569401435785190028479835271109380511699340889524868278298759448365463446193875083838076863169185988745629645580851792554626433558195484895647423690563670350980534722475694984199078012935035195260499540992117236044582597430185840492829380815058078926284074494676038264776545845230930083300249646889144186127976561924189430495540091941803290540700204847929086445110938894599962139300470674587837104968067862172798758613853933041351310764709345138482055783317125050508176567068077116147498773351058528907701043748835111469270778229514173586290207207563608286459826481345269039248256826570639664198660215414513895205245479026744463974038028088498104997764228185244965499377503559851430528421729184764638554627982030333736185307241428303373954857052434946926061084241678229482350402308467542641178431837293655629381126883569942462088273128093692321363438529346208961981269630252213530852634728943159396498490916705121474286790116432045987614415955183333249888130608628256890482542690379543724910492674249071970674280880196919898378482771272497171445457301267672815814638638594379013126886659338679736719853263575699744021942466599417291062732150671361368401250184581913415598379353659887513469468021109807288220278991272925639558395003523620205884080359997503180130325790603127896785469111072548313055983393594071969965882792875463165102781655390879271035797659897706134432635589662009124613543062765163678924354487354084109912502125580816408881681405055446420073322423065137434734147576258813917724299117564762403945660016529208567357563188624378257102610719983464776354093057183846373781888563219480597620027914443260418246648455835998201321844413584896003535489367319381986533360736578366798318857248312296807218736467326504011077308044712357533247431856274400100140271004642490555447638888851653091861974299855304118152382564300428334712219976547084261047174420065439319477769538330756996794757101352271710772238197989357515311123449296056035192681150878141848604603222748233195959844216021008219582118506096232165335794126479753385542403012032068078314354456892668792170116094374794755501907940420549508526843375255873143946043235724340041143159310617658575746267955649308500947983043570769068732359315953581385153309021608655363747333173174999727146516436334604670638998813830024318505311313326102795766801737709914145747592395482703060116436487232641277947792795990363445443445238974445280404391562794878240393321530001326776568344792126087768378453274157462788960455168236097633135523574062342188544062150045965321550418771655712166698330030314633513658629002970489625928591566342474132900968002083287034544471095738132392135646959343824179426520667846281965654843699921922144565971491133963748350945156566896689497945820290317366323014811392043932228012114668360410619037905852931205374145469075834135258645837886161986516750386516175000613702733157834575299478781416333715502438912795646843181380081699525056424130144267705232949373480081089725780754412148808958713284375751068483046745504857345839608940825588506177851984054683642842545955220657052296806674943890756908763993262864604255030781422301506063457673469443188641644679011116152594360320880364638003339412062711895607883237888823150018481995704430138181264024271083071503445141336006501802838381694077874902914286471942552118086481627521043643802729989899723328006463477780757109065740709928035826663559739668885502382475216685142058545398342551399764477116388070146922453708135302349002196365095093710546137944420986675126795180200552622996553144334005616703168142906671917564094764495116759468169913176151604248082679917053069517696166109800514929329565148274373278768124150265422981862826378922558640866496311583423777245388278378953221813390004379019604396449821073361627260065734056125906466072625572968248598631794094062432259677897754554255129580790028766530498622655857193467266049650273305543558901516367112058013243258231518436766825867625600099421715232397003206720623403585296756991889361472045691613266653530821632488583051304155957875113302979279105524167055162999133530969497071985675889831972819595549610931601239168548018797342026078961830261433395428196405244591455753437331045879722317686185598697670527188565938733597946907405095731844415492971295771564652907497842222534716632062850243321541311896228413134969615397702772320972716940386041188609408794292111466385086941773575037646727062651649792526089691283070194258073621575216589894857121660227800786535541792795531077844647706229430249526702087581747653690627339802585952585711380638207681232886823703990980715569088188325692309181695383619416753449074491037125978366279878542176710315664438969058384700635386215768678148041777072494633002457611457528663004913183747833662459017594766736760902077862903423548375403678785105929998755858120290192330815544344816534263155496813834576519407796879813390548166255810888629185534796614777734356290530210032011844077120216537194483592914205709087679090976329716667500404122370710432352179023940527631123377063097504375717023268922729447295423724277315199148117393148811178114794506455198332032873960804690588765750752968301569756845515222654212738404168997985672457597060231576263687671433383607427580070858980689804943064141766561410720491316315916002019402054365219066869309019346777028610089739245418086254808442187629556392637544323716792192430014835919159560892907418572234745519406231410311105866458167552049020188197999908924810246148049730797458392202126285042065358977659389789313308969436389819974106303201283914763114388745153439488076363964569804545729749246669708498185430864368022304057655139757988589107025092314301022456136153547547779016028944584242793868833871637601653545887173552739461287119367925253406939760858696259856279338113882839605940424371893727250689306130660680130324567753286799814898310719430815659721408132783672413177608120685933216834644680607729317389293016132870185535215042551434175706906513231173183724544350134172216233854428043693579290514155876193062506614261600408411287292692850586230746695722058564097780112144252024101373282045458044660733325007362015461420121819423231861832611689114786305945872472886057330021354668656204830278893486998336901815555962583588699433858485328625341775744069565612863299136557588336651548495791719230741899640904978617109145776741586615296691996360889269502728350557844612882172742533783570319563350126361051835516757590653618803561474209305663793544005307488863305677055004164359388639317655631647771040926282354685782863231793503960968478282798312962765889812428466269827126345513599103656681136039976208602862805822502719027713246151146449306697833461882161999964561242959405517666472428963676558331937285554212469709618677222836333757293258505703922757362916523974249671804605112721427194722963955646681904603004439392180983891658352262017571248665300626416359469916600742239035246225683845160302254751216666172697288201397504821359571410953683011138048045437953196152543778482534659615847850150214419536549547705326915958017172714199920745504827412998244171183313698517525816022724495584012711253934058418821784654639539760308551255755324025119677233789383019835357755645883471158115313775582735247622333571924282836817231668372698417041360149602711224336629887228838461325897695761491526257372207131922987859455674074266848388119862979034586695046265409483183256838016323385826350677271035138643577577606390454045519419196516562178169870691914064649575405821609030536320871596985419372413575385716607839313012740808395921581749625735113211515802276770390470599494241912275778521991837640346676550735673120800279396507745891442348189394345574589153440131618281014616284704335509261580094214154096240044667691029310543856598942195385420956058886599362588276483765430309297685155465919630481297060391053240246782521597844670758146541337808521974009145486149854362256898097106812939628110274631893617938483362315608400360425790096306585233626627852612155822693217597766075783466690468974256793987210291736100136582579977125105983926362472088051008063863443059891055732156795410021516827858940091236009422535913563532638864214236959489395020985529500757896364778435975571563313849043792769328190611606590973126593735781040222543122945997540902715213985624138246073267401725197163841868574758927857989784240250360509531828581467917227475597602604106903486519542881424035916359953203602366071757945197624201035140782013569454594205620500822530786957488958246824913661602831155553813680238365215825792749124462146525929074990993237843492956222799678744104923254329104820810015058510351250141170527217004136064324674951405047424598818222285833898231461998544502706396847531853998528590258470420945982624245292844793418247596203311124513561410817368378724568423286204739980964937945388201112910264323882866318871344744803661595965661508146676654383808424563582737199412942953960819613003132243918236281407699571316790557060487089368637947647205298030741852070183238095587817815884475657965927692963241734987267170149417750237852879066891275245921883860348055688684216330100971601844896563144516844353927844096248201346702018108739005080441608698398064044603522250793024425973998961957967067115572098944353460567848919949931027732919498746208192748019974097369503672567128842688674765360569501926767147760681084439394864750906259430982307341450623513564659480058018382270534335748112280313497396157360891758023273509731762140307098900229693245168342253225330410318663932886766291362920028508558049608918377456551059802162184931044033797032917794255001093063016053881428398518535483792395371987426131748045794002559718214915133573209435733128804384937651997042778559846181014064262970836938425092869059190159633743126989563139953528114359328897854771563120371097258134418640132466563269204689634992430933462275521610588186048945562984552718740961967608790129570937099831122810842798644764133831895066256107839233818914458837192899594422885690171240886337286909101948070255258503246402449381126448835274663509346398970067679242930135212728124220058072779040452392665101859499306424267187700011793055318966709851923041120627986978375201131698039438048663897781321322452659334533472762460734449748677642796384888177110676493094299144410878338107147117215755249569933005587908607538224501682757590197272398909467687805451301294821405312747691258627195038356442804722675363405544428255130734670221113757607310589114077067772119780027849862737655218622090455709851145990970708654734855622185768016373430679415894157652808152337892147727963018414197568904138039755113901680828679329398288816490107594463540357711789598160611457566662189915641807085573874544071342147861534926156299595308685544965539440685609909914887088374701028690089291180773742141110724355062283464963883316530096973388846669826105360199068970526446541609734195126320876322767524826840320725556971135880285003778202265333842692971135222642821354106372026479396021232541645631869436535431697991193584810738586814400359414266409950646636243661097933862069373097432004143915998973318602163001921624362748657227907116508626862087161145573233488934230033556391159009107110161034664223250116904570049998374238847947014442163735671568380149627699968254766906702101932533454129972450244198402839138440060346908345474634942924419947919520729498118781808158297053667303688922584854107459991702660113838846874795896780202517540089104281515030069998945326150642586479815077281002401768893737496559546484414436641855424399734823748416186591696940640123912612541984675850361197268997564536400758028505390758091389423683752751598531734428997887210565862896918097025138525428864811963838071565843043373761945216546700057924607201241942891401330197788755730814790169125825096083590235350734881472819827505143691869863487154407532499348786236237776110445166349204336990200469812436634834099656532206117368299193245639821463292002723610002270106063356594806215783761739575386475455387566475430970516480129340875261073141103341249330495577878207411509671964825642730912169513777728240492634875110378960449617129288930449175991391697622863156638465360463017628685434168141662550492567810550429927853335223685572950781074731884210958318533145665319827516361470460711714439323446674777842939060788975129880499231328171277766287307016348819253924503739422960500879081917250714811735554213006001064309596109866869577744154157261004793456660090904245087419338640359883800366681076442054339239168709576739060059338685130103209506741692572198728954592041986928555407845412926690689325689966521447720823086986666918287985989898034794898177785358806694557343916080369469246816258154558039778044403034918330673608726355730369085683175548429693842284275363393284647687899372348888904405104799039015643361772301722425691805718824036594766897898561799914458009216062084807774854575694476714050787362917352824651253278189486120540728337464862628046704207396195706713846725105532677293485004673814116877784898309936565822242852322834145312648240475441404982990564095465214843965998271948166431714349798594487774564664954280097040536410053611694530847191918516777539835404414191419859545260311648798464230863460968412359142474842504498113005235857177440094022935457797570759585290733077413551427118923018329166034832649211181582588366716842068800833606152907430263652091023512925635514907317341431872432426257600082617985190912020001460250934475479479531481286916842728064138576162599115190587183238313876829723439383636926290768225048704148880721131895606298917662807159336237741132986052724589364037681763672834847290185650912150243983491898395661013833928530879889449744177556601015210534423522754542391564386106198038493291435859961532959567388374769823015148381938043638514665697036292600681069172471386107442110351426720522084185045304852604709859188002349342378198018209325396724276256382642118993392822964936759690900103498989070049895385817471557777448547733279415914544707543553038739752899693966956581908449060870549777253239822951464613756805213584614065993394904816165151295120184071772281398770085944410918420059917069510029949180388734405442949481811666417089020655246249815738369029826207666999804931170224103417406808883451505859106606554979059839885905150750067412585127119942131383591071638780161413278113427245846142832548092129038466684771748779985463464872671852639823113618707020121927819703620007634730438738191908740835172730469261758147096759884355668746122407558026851939813237449955886411046665266125507865778465967033557808105935630359128708548379798451737188587175960121938852504617246452005822749504353826452169752496313517045648777936179431671056143884601056909984896097014138889871057072216065693557184576261740387680442440651038967552205786274685954802371248792873568867884166423328687056694810154785797510823712160780796941400377676938318942134224311054012362496273816690361591262313968081938349046979226619682593187234333479362493239511928323451968852278620566841666172608854314126397429945391829233823387278995185209162287036357147188407589440500668678416630333634253653155853796363994905912149869138398446847923975390821794996742333939397509077293278884775776149974562923399422615429614895617400870233043081385513479672626501311914995893656857852869858179658293296222946288340264059444750562908095021912774710521487745371154084878454176263647771016121050689790080020102197542338727293454540194109280031857553221519786787191183532984885960548839830592895674988671825862000762371457644691136406973780373620893320052415690509808205830482317477400154009744998054069789786298837851597750980912449036399591963794641472173361160250412687703842441521772206659245893508195792767750835866845404396851975900876106887000357917785531573708412862885670662041610120442652803876145018029136680468173811789177930938074407899023785800596502977586252351227068509089537305762323783336446057282492827219346785972246614838378059525949780403307071490616273641509557829874698552062757846857839938591791916277166363151318320853443275831495992693322856704110763486560396411179898104475199163649214733989742830293546274703670904108799670111505792191000485331441663626145653092848057343722297583238058284602437657191782623182423943350766808778499627250968095144147471089484833756067184132560380004168397490399150031227867326577784052828453090710843646586797723728526364555737884938207656483690433107772249797780055208932056981401511720917161029379781124828175182218401260665684745199967141098663089483371439156117629868576632629523764470092783084633892712107847251299338750462763231840893934129193610006666226791105071560509479980102233972560447859383701792834632620639806647222187091483695299093620361740718869847474540947434007075239321451510869100680312218221403127325610342184458948304654274016966245672302041229271758737555002469951153946601074469032847752825065992712587334746576653606013946140821153665704778116413131319527120014460471425419025014574876604684398285135382399646890350237359991420956021215392368669944311746193023699723801332779158482147431173527696832891307533584574206910168482348504713949900059407886127829837330320903457449455715555442557946546151268825034805738635809529993806966380618089600468778281012128111584072505113774108751759894905250529415249933277772129970571507757270025694886489084523423035697201152336949520081778014817794112859953903165357966119222977176366241320259209471723687866362372710777490380368727870577660714518821179512981266122599301513516947408351003108825972114684784407039003057243727514251491479899278868560004779315124251468294178533176399903751842084548030209966048986695700004352921416898510062379900009656116020971686784838496561389603300165632624150975263792045385915825889573046524789900779837412778665118149281086340595326452529833591741206011961423106136817059756871559810492509003400200716363202635173467567410223711850506576629395048228979962735111588949654652963688611434492432098386372114656194642249869169618111443609274565566005038547495556080470472824901187540244272809068337345501400588014529499624746362347776741436997071590638359657187356166265809939522143526328940005162404898514739074621441261793854497882326918302494186272805876742273164394469482055819336421375627799997758015655894500747467083442108598881437027016090559221877617139082576510599414839490992907607127537111284659842720780791246484108495064235983752807694618571180760268871329597907512303996094289123996499996059740210594537651601589841935376533803792207373676447817557386905186355083174610425411742019440380380557447746849532638876012501945852437296455291848740316151470117637180566039676444093117205516318130807543272087556435832417658888807520232889485556282803014463330170791386295656254637370017994480803256105082317262655389689783126200340773090704052996463243990464900205243738552334545987657678175274798485634673796482966129645865887331681639781147950466494059352101803921169925641656972040066879800919268394219696099766435796995714055101251328183985108407993647770016390161900992649658074582879955108640949133294041932091065542369525848780399145264910101923346473326053655064284625735983381699745723814215385493823213162084539968704109074335962730538672716941306790980262985344967777353377292013720673476330235860671923004820984843500366728706079356697936823274564085688059215942752535382641791146666437854833528298780778016014435964883916138479044791994422805083170375053966169335722862726364540565234243428601827723306864738045089117528378471569155011385318805603230900496230878673015474968571945118705554501030193582095570961055622517265766170554106850079244406477139661043373762698096167327058313026867957718461438752412687648090620518596977458308175478782770416873453435587769309682140132547491763002083602710363454934571572622657599701845573994838960277324501203095435095314568265080766227135917843444588596731352769380335094303394662083586385896629359086601781347828519813381073376809723541326359786563562292718453086318493126481973227738101293434701325791691250048647925611042892024391767197677341598740950003225127352708371032080542978902966662005786028828360643807908467648948586993950791238790144112927675621945775523259762266209698314789014259762658369473384094594112523341732208607964632763386299237740174255261028140590112539846941491252997715513992120508032088021660285904987938029094544741667167686467063000297150612320925724207901903628573127336869348358245306974193592109515630788981685818948915734117478484396851415703750816796376488025045865690422571255980646087727974371040505613916196639999352609211136543270159922399462707200937343025502717199861593356309736555554760248432937225317016947260975379487725547034515575996210251018371011879638171857166450756656222136155029393765998894833513768538345632643250912509002641567819972460233073115909249580362115517204097646428731020039756475298900423468218008958714417609355656786681635705818847628944908168108138029619710802077903824348845413899199976964398381478384773347979733931102009784529427863248182604800768605130306244574648692850079093628035995690376126534289304024724261222614123408398671452608456131384226267105911917780955790565292638550731650600664043868976659583390962321030472160976964904911558261750468175439640561766687339276598381394372241438312775060735130029231848923016909266148301498327325018777487829923167697077563364393371547377593798032140124645745085131333398372298201868513560269000453176674188338800885061895524424499560033399402820260608943233964361638448387000452277176187194059190097953262434249688084774719549594868229051892405309125749262922843574156914539523060571764140212176433224992593528343959832294491150004011571538634044855382216831849242123687192321850291898654377284652029097386984808359922540298670651647459755014107988509621158229209074506225938697312357976675456592463566531247090347513431234426632212606712374258034011290667380973003984928315153208321268888760646918709770451704498704982051315568586096952697437614178936517617519735710329158890260485119143938800726831362526966648562978814479395409135393734366525493611151169378993178320336320540339294470721578883359099061469600020704053545253617105507801353362963131918597796837094931272214612309710486003158559677856991524086744787848795735718770219655142942166688205639535655795905566235723049351448922052059369257332143253388724277459005016667100344039213409026516390568938705015905874217567418516053281781268563069088937548330154916810325862233030534285764217217835473530857265848527722412407445982719860411340169974120666004144092854969390803433713202435252753939410979959489965121857515606426990428815312596776541603548695656160456385151428955793879592042594932584015505979291184082598689022503779971336991693690818732867462734711140734025144544301956469840958731185071870687813835867253524748499650949434860870271645953161010077356818593288641752133708182584688022037293920377412026970047981997199167114868942601203929172520951925850351333568883684630336495223753104587621462104070975321657383785053013150022465839136037217941002764132153591602457665021007807248182333962038540838449833727449410668670932104243515068210532377713615617024245918831622220110154006356365180595794763393911182672822169361462871014940770261875199537525215791228565231299816552160582311858738515833041985346796406105303862458044469426143754214194006413097970872979159858643836314242094845869299206803908628361423754104523505685339088466531875519777125287158609110795477255381212234701557446605568592649782580270114720831883268362927434753394423321460925057215317381078193964533542715270306929257286210112358544251192841019672532724714989603691882173602992137013306497985856663101665141423350268823010459672282345681302532066271320595503200931440064238451444126706980812768453718286985601680816783877243491518619033014002812134158181607424716653485377805643733593080834866114574415394422986593930658427193602988966396019838613492587638843728665331161110852976772932701358039091991641346477598199871505387416611265743171774299407676064414941108636610494394735921221685884309356301800255949308966471960930706016348281550084680268564339202709197632279733305838424559241010150962477773612953864534823123683520095751829336596748860811591723901932129967777313587914450680653546765018649796650783547097755732660991557275434448275045367869235472947726556848907680944530146062917373906750896121123100267739875246838847334795565382092130166517413386593493723032220684357479444540024056551646148915415830055417621892574649143569691837842121207301655155424366849970856757456364664358153253590218380009168297348535983126487905828980375046575453384992678230632158062398913954641957433578957143950761425473034194235312983605653936159043002088115691059432529129218073307562103414055457742870321067551970280215058947518900266451461844943837405380617533335134724188621991257592033317240167993214789735733997792970987637765953292498166629930947435530772327495489830023158217006030558484613235409337579208701111645613925028106316252364404780604260127510407665535279429094718977093100095715934016421170397153054129899694904904988868933418130519396744492732927836407157665202650951539805813817318926887009560762877911275570539241169545536730088316530349498232680957542025869019868567199076290115340980296978921485040340643262403272027818065041238599086973153581414589617167972277695114156778944071525492295777190615142192767028386776552636423300984826798851270368304712910248441080104503536720991331149987451030258373832578635788081808962895638110411141058690462991317324600616833960171644262510724426355913449739934045686298713850719748262422790132458525555192584550031864853472940582754333673137586740115607176692854966028726363145603415774851385833215871820959216730337370201688276286707517726800300484442488104159153525589082955760492458230983317282914315572105015712999487524391538527765647375997096055678138990678595387489523458807703213022377746272905585209900972109642616993738406785840146544225001759292391213469768450581732654192999042059837042992376360905021746196732002390213293064334041958879608447427029328336030599508825824860928055675991939939128769379677738352282604851249487580557152626288519487043219371225461570088316794925815186003247456211399630117622039936021260066495111722115899796085724017286934108989530922467578716765266498203396114052943731802468153224279616795802172689162818253225982558571642816051160995286440213212205660979839109114211425632169013207628693964052606838951087339659567203787680576275336112167734764437097737681208562724499021582766007229830740437496852843913027050410948576452541131903572808400876222612849745098343479647031467295869798477280340326398776935882889511282422801751355532422162018988646255799887169628326460423076197260441094604555579549639801527885494126672281237894195750817384711074274559083782575695673420513785420815006021981895598051241517240878501327258524555335533103055886766689496143290042721840307136375372846605986574297355929388313998578803207883318649706667694342719556481017484824309194472482738608834193114851373904165602494485705056737141918026567072877987012203429376116841968078913320053116846396458174148013319094853491211598673497423224454178876429328202718035043930923504002561040196859212967941948227577697217464953079972518804370038665196513934323512094898656508199626949813919277766681247434898161024146939564907434893129702188702351498067864247060203648866046010316677057976575196905474521112804828041869180315605231205772795068124770780358437777421173269941581895861563160225658458830113511740574898400069402937779471922878134350423428615159287420340034161756549610816080896407375318860858510803375695310072330472043436875431270942826004201204312446127436309338988396988256212293718389587716282897570833211960678872127368849947413720319967478135977927660511980300777520641817711453371296274502665511940847226649267745517926006575083017707704825473310352173558701827918646217497046862915871452699861976867257856123814259866591108421354093461047349114454929081284094132669520655104960878503966877479807915170310238350165929513619083509636996861471766584817468328501173582028527787824018019882382126776894950804457449916998452399282841423917083783315414787955023779528705620026180162995801703393922345360399292507794005329948137222122724361625171717593015844056881240487383301332537357531632993632352067664459196970581400124024368652695491074891199204332367454283696837402604842641825146664793947303499439987451232181479747869934606456543537372552768356541135290926675284734278304009564148905837730392152794556228515807924483223816576530781704411492674477684469971887932865525711632667388906325682711247089326049966384558876972647450124261321743880902917489886015276687251308978819598859231946125126782652826426286260690079396416977780938033970413878385279410217736088361333411878466400761205669412334323794261288492488150308666178773383657808159710535670249442238378031273110841462126724210868146606326408139479698871975702841349089354909042094349967910247283038950423178145985563740539543000707560757601066780155257379832037055157997233805345242058672219028195396019498409497994408663289654417671091423668213776559967382600489849507078683419033783061218548068290220072208860142590025724397029021687804644699297985649260357780041920817272396728138879943551566045136938487321191202362891532787128099476137739947766336422287570477576475660753222738851206561388030017713958060602295990124591984167750971960945265109691547485096769033955686514615636637063521361641287101170565905434462713839992317856714996821247856800569145764427494477004187449969510549453111185611496883384801067075927144463478583725909264428440842026954022103540830866793638731301396579470499409080297071372805326983762894375597195536839471621782382648017794569557814953531469026490248236312454732650424626099439133160413911938312394077963098983632451299594910563512626406604483071184847050202668116485510329732569946751431321344544301570409345254315129292387332303978290418783099569892719766857069540912254944973974030786879393658653348454280630519849369844249548908530443000073603235685689678036137067220731752044868638144665242616303103723891139626509651664531276808578541715625049118542630506800749475231720282088876342160332595161675549926841831508333363545834251846083838235090785702393413854591681472450379038207454678760207890922683185456127977202664003501239636327725940412678838433764287197978643088803465678432752894438541640098997285564971758372418953983458186993578102162995838696354635417025932649702617600901279499473192820651241264303164726103559735079643191961248671867385934832916004573406258557173365230109360108078293424630346034519319072550304849402074195633646470055952884668142211311085880210912879307776465475740874970376645575037374659887726808581081422187715163791734975882799901284060439999218733163863708114260690301627563004355616357435522709111754474645275230892640427410321205082063935995938126008810155316394777100857024466606591424249706462121923384181547413578377750760937494768372334284958553822236866032536702680427975609717786897994194872296075880792707054367047236789487183102449415732879426989245907073688892905314967719276207059951855069828905891460974057913612660483151941771054106496576802163407142275777063863103256978625657743472984582484630559552804937030689772099989636813876555095233715950618918997325338730006361865921601288960300600141750196471056415760218579846223026702841192957061242781123501502375598748708052463161237310743311694294434363360890666695236232260370809564832389867591777972070365325838062064595867730006661349686102908656617013779514274591613978715674542400080443413077279513910783041406746436492205281874796689406309621423970228658017049201651424890490664246871650829400112363888738976803351571333908880150915552566885238527157010335697086817426303281723463675727840756023934963991670152185060377580084809740351206047088972911921610693027604974565116545067674864254576508997002978623469876428190747297586363297401458451118244585006966339783725712140149719651490218514267470457976315864667991789082948410714419070942645185754856233479272046813045035967072616087230243211857355451758580239947475406203843110298491993156958826649715569938317861418365328252136573691665652847674031515573290626864612788627504960374191096010031404028447716382630124044724464819706032922919916787763737197862260530021373284135308515725265225269006441322481514444144871125501056825351023695588515564798480827663786888511572910728374634107740831906205404267090704988151563832107420225918967915171472137236878334214797545273131360404774053827528661036790825840402483158499963785705579559226473018519795011014469702462893615505403909970567703340827828457402284171975416795125800979415692137403681825872816432420585733986815046604974913537813967644416925680761582685405072062093656846197922551044370807332944613639825530188196518607400628488322540718453648912131227271779424140274953491006374995198892725952768340258434807262977614443578512682362988110509696906685358333983523124480604448856256428231023263113686189831052545527747470674293553424635217688181518292654027418946345850654132913171120001589233402262096052188466318760222448033255174898337764863888717664601072641632866021285186633101935461107460883837321340746795078292997488688138930386294448475279394923333612310683220636500078899643130814419671553126956884259082926233662031091387432186759812899522627728653038109894909314379191428166269669349004178017914749564760407539745083739873157131929806060277962810070957559186759441220314047203485557203759251527216080300154466336720891547436205719917475620795260154084719151217711330387857945148402886169039451632288144683589236439443704316499729992155849528514514716309648177861162920347143854054686794256863653270401704377839439832653925286360546371135288866048060113889380942955876820904143356000728985170779124340311218225263913202445611275917742198496580746898900316722051765900574529873759022176554827648817810470389568021109761298360804941952996027161302479410478245916062749575188689010671094271269428710874711128571424783439612114328128513215155543665825232251433123471019722979018535601334831797394267848724050447341886516522752171848549437247996649590872230130320723538876675110312747841658879996790167888659470505348699481498218654837110091161209615835296482367364274322068571410693591963925628147815223104378140254468094878622377740720312695641011951148007240347818490355261269679719448806880249882912086263131114166959818306494357397957879248298007673914775425311974625016559174420184799193194387216377657444494200801245605978403767030203341914978955596786040123283615069551382160103584166884178915149682209059393885848387057491660757821627447688880938478035831457290033557601768194493421337662022204126074976136313310762950514494283466983171400652586854143163614789096612698397296451660401278248817084613396265406729081022171051148380806427343336463015226077782876886407487372841969380767867541047240668814401924395825030551525495753366345418740091682342164163939641241586351306203682324190542628608364359578763774073946484276740320588546688468838835178022504415391144952971181339746717372259123083756217589038249845226583059702079043892203295095307914189898526873662830157447377055052236670678870163421820143448869612872143233617375777928955360655121575135866938254205050839479911128874998410556942899345319861921063348940022722563905669922195644321456962203824345728093362292744212614781543237845285968815297612260232229372012184920334128528682142451914271713892006095021670917101062336849336059418631934507055605862493180060837429980426662625754878538662601562542412092944584081627860514528353893787021003507801703163486937181819975855405216523956626085716073718477143762531253995721164093083800174951291709313278594577544195501414899583532425784369072580931557619643236392628085693187482708053715766033856066532919602513675644682575968436914427922803822798473683863603502162105677890064628912463026360908811285492689158213346105218554607909324548947620616276671308823308119923273798031741710340352514118540843335695822666548440943679326692920466270147086273287007801343814533530775884074134843873339255937859802089474465840716140765763856164201421674802481345723185072193709725645419874515734507475523235644910217328834127134188925425672186395080034043369766587730552242224334680758865252597669019051608555752189897806616399424348893521308638328387293148922155554168176525476489343353790991738146960969600167369001330857997459519833378990721170050706130262410799832636839211503434639524363946741964975163217421903043404132505407901682126987499064063554775823625829220630501172319185885847520071707081420062671857829682005108798396001479932968721088344637767322118672549766841832503189888159894273154594201192789050306939652485407347447767395797215904867958809559789069581940474218573538886683808516310350065213686588596072597223619830052402555242911381771877470383419237798503037574543860790652246178873331192569118019185410211363946450016026196615868996753962490775371500479302240231368234826827586882110497492628681279637181607673155782958116651718628937079374162465106657842787121512445399137678405404115261701574343871791838489495707879342252242929741090971720968939528109210640972817915013833153251603963190638156170442450590087794805355281646700269771123866126747912621771986645797757516033866495041164179333152393362754209890383323121006263177429869946067825085643786207281363614816602617569807690150972664162385831336410005890747802078763589163777795780570869466582822312208698134853722733182243697627272664076713307889000169701772664401189725426148727516039200540930293099381852350544879659747680748212895438869531254040799619742885367447494899738575237192155185752413365472672779235169327198621667076383146604547151673738474382636101494945301602564439285417694617811841330162800217001003198615689690739664751609651854434565085061275251323322547585116602772749999115821710488751519014603699920192855285421138774588716084598852164587043792320152749554487631028249208824444877552205239224314802635005788028436468862671582268831958606274963571521451551809643592515856847701243931057883331788441710524149035718719972913137251475764806068074515526722604001777402824949554636372359537424064340762650889380712640863287092082437247699347101106439929463766173547907629024501828098114878003178337339308575232479452328336492423783406126848310715620524804633777870167605856094426451017174703779375833514142285280188943256649598107790630616638171296205868474964305218625992980724845321192589111486589834893361326052706718564424682172240251693484656055893182243685042195559685264702693834620620303632112884964117695329579244306438871205335420838477043973947006177112738700471803718437686871635469436185418164722457346663699445301733433877970824360346990346746344730518064707701376296250841717778361518157514117430825316760128386074858316783512368525477159820751746201502084447787294660925345714479975432584498385782066127639732260234672490015012845682716842996317938215871744441928325145256922239706271692231062264511441297809996706464257112591808314297490575334502756634253413216226073936181985551004545495276290641826984040763625595585401915749164232631014985638764957389381872661954541557493035873679626759644200534164434547816905815178526063138308502571421211000592613257970404272699749031853875002522886038485664178408069927912655223381276157294703772323383176322941786671431502888947495836441950372238458249088954351744487358974829032884087340281021786104539571996626131629174489533926790079369815063139465310681392727494615624817278972698510840624498934528011645358907706119859553398640786181672700581815405094227571740997316266360486810092826146031080871216645744392059754028631090227405129039611635982111209535504201527545758606043188361313019422323978675294589765300580532670619686352024996777237289606840301212438924813348700477590025611896605218415035597134001661458423795234068694385342643546927769852437446097291702033916342243914364302184210864506569991492993256526879376298944158884349070356988498531787182888883351528179350967342495895496082508961723769974257057582316931064154801957315029056711151131414121018902702193187086674154640699990985194046562659551405854328333895367006492802187593766694351003903830685513286937281666778632600804260539703199799076999647634707432490624855257839694378655932140672145524217827112214420752040767470441152644533297359164589717892413914849610689247350164548684291665306770599835775707146016217227415087728786896861370590201126781010323497947427647817306340469160610090959017597161406371853444448340406269399225664881870707766757928255842634778150472408552550789849146135414966140154219468514906677791248926326363071728349810799732861553344862987577799215058527568475180721819336087834470517937844993492662511662737180977011815948117602536428778266793490689373283610755180409811982403625897513498367684963928079210303914531072604440302339916785680820364925948749060453736366077642287620386172065510638691459665282852495116768640939433608761293503770330687530802330280734575517220155728112560187258984137890730575893814318039724125441109688919569003200503588606135042534284596652857459048892416838739972387011037103776096759797783024871498842655038049108475774266935075789279724169044612584867302096139081341048287034440771371212331271099787355185593050316612688926978187501745327944369067662229881985201390789627688746288761683918004232696516597430133931173346199408796136986503871057384152055071516807883851246022031314448946542379870113661551333670737008878708443032608233094611286447859079288574146877663184614438533900161659386328700434347272727627306506612882873721697937811174758586967255291285270413476979954056393996115409780191514142565830499813288783510987635535861391871185036286674937067641033747558874533771752030958971223952203765446874698700415060095425368508383862301827888094592743333898979556395089810189155573322986701214092172838152359251970610168454003834398742928728801827862137263665262369688602224507422043157363920052090158471815186459302193388055114517583157351856041503761057515427002506031620356546295575901969411771706306630641934978767821658076715419775697704907339683383855228390843807655306056549282612172615672182624584489033143118570091975858571032091379280013830158404547842674080909122390171518274838984672711805597375946098045151758357758993077347331982892328007215447951753081349432737538041655197790241490789086572927614135671561741223989176269410889881528066861977818716720078620636132044529506572231908295849945634473146528966431780086088753279326417228535684766003462147764725416642405776561570160037119169103623590448666351121789432969854696209776721458170717583416285748334400726987845034057350894020373053538593943206631375862307563954839819863977154604110161056301332588833265643766019944934563990083103318971035886271616508402792099758546004674692332125168074516828866502214490917442118302321708494553281419788997268353225878876408906929812353178309171181898909289623532382605620023748865978151332290946347636198613297329811464739844405339284213479685121569692618305249300787249995748826141966743335415294056568943110619462021703927287715216614879947899491732890932452856728097382014560542565021981972594618521421922332903674510117501932695125445986538820283065107958884138370624207726868333859243008427275426443123496430324181490567617191268325038688837929751183018327698320458502279774275959464006619823222222805411280572258606321430052769563634717320492639711709293593740713530097967547794696802994089840714533175651928360160851633906393778030031624142921008335697872661472834855522344655742132088703693116589505947940300463381681958824287271926351643247577663030926541143305300167434063267227142158910006506726322389762751451704396647110968942231435275126165471464518491717217818663769960201017481043720986779280433291036253869123580126574669417099945952507162314945167465366097901637569046311346592810820408203887626795250386865524325982250029105321160983521950621137028748457069781872055504552609390193124134993055768725288246870657408057177217786235023167237849822636296714369906943297299730860761659396740865122239823693588934562685078973388554074988998360355179526529383012940617922317925362980381409070032605991977089023999416171878336053579774523825278124330042526837019919477059214176319108053487112743581225134774102430308183460540812238986145435466122608355875224110748977362733431735547330943490419061652251466047515572290502298281983576380090885203516773205964745911310311281882963266412861661644041031190894659645750072442350484673260167877024008404735283200759490379714805368712327158485838651521579705238583881090296306760918169242205586383094936905318467455165557234861251943261688488684993493297146216700634841719295702004533635368197695266563602503151245766528731562874768091666286480956282132955062158990374541991635421835844291016628517404500924582474883218207626176348775896777404855974967944801644222665995068815826400167106272459076713306567110429541111809184124543362568244995034386208284039990513304610850318212863801846112860647618480697467439716544664771706582395404163856956194591626909936582902504416486772712466996637562683976675081954043658179857666189056632030905476140073334483155388916062157455590808994081178181468562627418270822427454630060685274360159605419160444824418208827866645357754400536272650163811248722608444990887475792533149774510236313728657260119893003784625476306345551071324640358863333944479095339513081784088382110008784599824596186558791748562815753739895904297104008714192278095540062550494616396466027601558210816865249759696450908205148943596734521069923111111427467436739715168067606180542134234244168724158472395226250727594038678483297693538046160562596929427235220472430324775274563732970435868825726909478427036512302692223360789299817965488642321188950942093824870151546188122464182835681615453225951349776642247658339467499895711070396315352877325998396584769531419347817938677148765440940207905634439289511755532941812919807381510305538380062441198751894463238615973321697500370798615998002747334620072532016864004240230782684342517354091764740369355723207354322847325721255130458467708170507888493670993376564353826695676356925485348111099756606346192496338637852542769410002853443784268962573491985714273722010520154456114645866014450088206534619703903791258429374739483599509302356777825338245348758874969653270973749658054040555239676583134634163875998908729246959233979322027828615792736159220342714785405850143040180802239924681522678955284698271584719290120773711737808459716896775121223604021182357442317642951472424938784053507400746045916739438122191306060260500612381351585055547581670588208977384537945086743607876491514902525556450365380501126979075904270232793553046550630040247667243226229422475992947330377711338690243918751793977209092080531393949027307237058325354403803673876868371789514943842666070745262417230780414907779835284911583813954218309790933510352327099785373997491650575386259600501563079653579906578033319375121747395845264609104084637313674804454570772173710110554937676283714156930055774197919995730121952513857663152490778511078206201978621026779268229052717126075268551596597692680014862501616650606938658705086186721610282479982438724360340398585727420575841606976523789634878039684876299992101340553817661481750988206188630406498320679870115000123646792030918058538157987978926941210551944632193853510577284308748363626820273854328649296527416472845744249232259530215586240640660201443558789644079449010980069089437374007078281374685128100103777733769228010525205833107292618265650816210855981286814068988611225454860671496420367854746083101898859807671022077471807876979039930159974879704309274670558663447665166775308519262989639958178007387924471730850885231395188505110958404007905938306222065964071086348266827552252925223523171820910211306919728447121780493028038952201079350880266746704636975697213849198364764580163285313018414072884045161115752779935031920711332611545997459238309620357128554820882239602515152200993238023125296991225333644290110793839409440100049496852992435320511094046429170006055728057248202662880788721951233348931329561232012534107805945222582467307136337911880462533292702430922714283387940526654558982284246034612381964979985585680397952414301867853762772541213513939285265448885192822036795804211007129067167784378093783587490160063220882394775034353753225427655112145613034078386937432776673892419764344067798911972554086685300860644653544640407860312050404515292039337397263635198380814459169113801632087319583551371967895313878918184199639133223056477260436193063402972313241506865619811484648566925569125917449725233438151271602487121857835715514346282992970465738310776068726913357033453190476576815761347642448803285602639854801577256298342133313844071937785273236305095766619258662188226075170589982238114462874792159254057014066960916364054151094066335781472929215510688253205509903093929024065704857262144071930278511736682941629391791990322417888882557786821372081466876226194123308986658369170987066190940983546359904064112363895227570522213338214494489439104537374752480279087418055890692942227971028227386881411555484538780731549187481685390580702615098142769615625437909963901604993910116726557926641204971555130946915314669147980280640657327185228573317901747524321231734189433365662032553029730867889212881005934606028513126213655257297278405155369032912219656067349667192317561775901394379005901848998171414640966865205781268605277951959811414340953679730238340034739038255858621033927272385601581764261247470799721084791131615653641094166504254880118604171721529100444398876415283615870040078521044126067823559653024128597379458555450395860494192570284563270722630280646875023353441377697289886015104237885130371797180555527296358144419603513040245579149953752847831218313340501721354861970246329804320250949663618650443909277631910183038806391109403580129402706615442457747542372691513427377177829639397019768018340145139257736877603164992201699668672091162159789625706765395801794731690718796353225542269737906756051892342496025098832877706244764586671859256281142923208932196385742833823677722524849052250850974861130582651161102528694321067170485812178618960329104098368850738482641141397754821637454564529598235634010142100924226558998524833482657039692788475361860475300931807558271861045585439632712778557049563260743108744761611143524441158367876454527860142339668526370221675194758039880160063929261593447242327549230734142817506154543002380526884239505677934461240805479149260162696566058702676051440653197610848737734186274371427541625513967396896012395801020905522547682391100740149069891762569158131367477110626599583376840118961350458514563226043490162273014775367182443883363817799098039444233165918817298271505065676197637757791126226127226653517118052522506042107606094176202258138488616674543740210525628317594479769278168940418784600313204965516635067635208057691489470791657736031426933341210198774761770322824882055838463168706468807366378614350508152273775162445607110949374641770950606852913373660453746477144765066384379437867047243040456534960625036940841968008880667326787309536467797139591146946328802449353009516420512644941515997841116955274584731902472971561887957858060631272008055860645310053907404349767586483814940132762235948667425507081396044509498401127068408497239384411522898752635326088156439226170675945465859182679322125473388497500695619852675652693182205110673584832139617599994614815977758639709316225960610346082590409410336922439791830040740295090125695464534319576676075539150445547143016201614771237781609640569550820346500839085656035736906073122327573041697664370260268220687042387921931627809551396811705114639531520617663461193173645427302623848094524042308741366046009447103735112160853587197140605721466867275869311177986004500757946039134703180268162117874039313564819648004055412931482630927972007876968223991693597325310927261888085319223027368800831774770361013772206100970467457738647940483600218116085960625141719192757707080031217125793252639787715980907269388529099928537467509841607824957609591758014942096201279640835441040477007609915269994117867268676738310942444663672549388338879660378426806358222030139430090367018755423667561701522797361027622796332878462633621418556586380556423986875303930130271602447045562506717073164917133733542559084179233602120561335676696684992822929334025227184177439792481543065489975849032668133131729738840598844198792870230266117999302297882215564366896546258174100055391125618100181176825433899853628668629522513748217484941822358670516476736892348535462019888822535682495975843305894767669696390779799551370702050162095199269783920393732917497832079938127031507399940200900226656691442307548313231743214767194941903935879600210836850613998744474811015291747511480839077426262188116979412448426184162256624715692678607749092003089721421339144132476119479181851358517610958800103005348150171976710082171269079240655756401400987858803572642631514254484123507551576979816284970319700078910445271078011646110770277364203407955117149279636066903405807537363654522275106413921297318384122637421970747913331849971719966803013661851986265100987172839297040678565188548006517402338243296202875174753514066898911168003737901816792950036289289021200036681210438033632328649819338155077542641219381148441610162298597910697263114557634628766411923264087451375687879439070068600279831449149298944157673323518470894577111070069377916819653308642467094995224009878697558822465111266400099918096478826887791346243461098059231482258897610296731997797589387542843434028869885346721271808948222794982183771876828772212155972639245714864524019813619878609167789034494929460493153678105144459773424768060961123045644310176746597227119746578871265170107651161605113073074817290928285110256446566916352135169472413922037474991255651047631716740955221732277188448122223079868005458948951927164061971669154067854974167184771730149769923466442765119897104559919361172999515818558794969993500697761039126029633606528007044628959387645205532831870290675116465056544018368070978116418698632477997414599834025043965223219312517190274483913610506033736287149719517617276309531280598587040001420189149716049159926297078834097902845819619120474546439744316402323227898872350482239988501959733053009804147823443839534587571971591196899299909153309906482101831757545235110513541010952141132108102585672980587640079651083654187256779829852348134169483303751205842235963640234564256892839725037614794680472491309004909683488781929882720323324369942428674895781675670279645626434755122245295395199279627804670179826189247779652235099495940502617453601788953627796307110451448352427014043615283170537226177340335980947999313165955099339003530116794705526517646104990251108234408738380988463779920649094126292782911140616154290727726028283811602774432803075710748813112737393294635265282433917268745711239390386896854892726327867607927759912665297988621392774023791980399909068566145553644816279461275602928363365798016752822113459581269219188990139067511875000545378349571362314120283614504030177928079099019811265799497865598696440369920970984323602699112013013478812847947506125092764902205927445230227210344977461716173668044719950898965624662980441923053503894307578564458566717766823230966810996145518736335969875906598557664841920904171449140051102808412398047498938743281185743560916326910218948315544835660545597055021095278979524028410781784454712671512676702762230833646502166563908212192217282889969901059342815366282451533680706557678171058857323981675810735470472747020552541974153495779984614094364476255782994048803591104181160853693982428562429280441555674099165138525523596372841020332535216954559011552530711551123974360208840008492410351809886322594266787949923196910270899675149408965385630442617389367807981637320408559075510138324551828433462800694247906925934496198304555611214103204776942542151467788725796798488990537351368887345899456364216067403647504775574908447916705393482980557970178809555352641313635139271663222271358884764611967197467010777700818345411500370844384705110382242890632298778790627750499613119106109895537617122588102669062256089107955480925755109691716444697829476593515307491045632353373817362202184994116850354219013989729889364869365345229974578678159384272619556830327160704116447819648976006238940703284332825759687916822599882088824281015176705945737803854866317679556099269798775951627978920401889972052433586386397731037449138322039925501818473092987491006675197872828548309287653081501426900144158022292633259849434960811870785285999373486183720064377788513655878619069287509637177810966283843682408314744287647674290387222098925267845650395586186495192495352492642043843432432333368396269808769626561735147887566980023828111948276037221453868461900467913503555791343107566923031173185468439294465597925602302938329117471179007312163450436497573931330026452943665933437040526700444078502473610300572608615451638744155484646877448865098663733889824346116374976951815227127253651816946980653787934458162928704196114762228921238273213009032111380140788359781085923679754036339306537455586747968308313094228962599533750575561690921149013360289198822909265200678670629299066782706987098825912366335846733854221597555930637632123524144418945256049518513261644077393377020479787534970356241365023813542511788687196112136996222770612342760481446165659440122896172905785720573715846251112425815084719389702009918244869045769732081548255632852324182277852452415803856840569453860896503814618417118074357035070701126440450352443086785558530938489368545452086439083460948527356965207050282718391922897045940387247842052097745329212244446128062316901448241510984799487360695838002894276138157646387474018909641607799999021646773137100217661281115325085905448169454507248265300547544003755033855655366150157414642935100841508333583456264309393825232920665059127981774874288327922186340849972971430072787410993146707007055120387776511489029552471010938091404584277034192739287624758678709494432691283486414236290218105504685122833077079267305335543422236711521609162732291682781648042985584921019593765741627899477390156136561981912859261134276193502302376669076112953107204177170734545284768537174989624887550761566763832144397593979188888731186590201295456960773785709808196811717791429332721581072515791548023403035966873557073782364073709921485243129782795322588722632064481998752352156878656837576375899006922247609593079267486967658802970152321893834629677753781530705626926415349536112953402487123230384856044455645452661956675877110946550729877483496167918867158775261114505107586678121375896350686030430544856426622474383081212289462455383417352869689504742243375678893760922545692977965773498652331020129073006780458296918635807768897786023088944528251384564596228740641935258473812582227008135115815403811415786848039647002760936296252693764581208440537989667446066639523212895391209418933034504741099503981306419264856570655924220329818904500913805075627357518674666816916610705529515211171418839723683594840071003577023704063507422326143571635692335024032938983047525637048258050214244521287881931013202203259632375796394707048010607070941990797746646116483555205897347778730175648902668658190024497923501910362631357398994010037507585807839207561531033428268663398368397658227461595370492869001751438352489177161709717185178750566320301240109898917220059264686454729833924494091229980870951020524324486909520983091382313876856095392683327939105461034784196408638468005606058228070375097945754564709822500261325940950358323258338538379771816963966778586975123907653288132414271761773291609975789738464705898926833377784787338287199078837692225318037672585571564804448916334120672681229679809614995734506802889718258613407459462220746055307081308852704501935446865637935294082241826694119499302771353231425393620869208394562486459692881573814302083714965122458682186095795522467647729305359057102883667199589206503415751656154304012239259663925016367126511477293023910448108202984099298428949108040913999438460268078198366183689211480482723621896718345598211441021214459443976061781538763276545609293727386894957528254029955841286289627775176745096352780564556031224846484025609646206290506704037672363294967769560159473078806636266219447221646449322306317194166660448758077430613171964741503363447281183332915924455806911430089958117934067861843133398313322512758173265764596329250037834538722962892930455616943724147176549633118882225764604266975705394494534191595377337018409852317257157856577192152124606719792596664525620932661130080975094092977280468689579252067528569991395600020681302578616748107304903365459264659969632477813595993277155990298583654633492024306119814921882383429192213378711690438657842893011093525943809065179365357524902859912939972239580717618170530651644065126861444394407977816554342906651277647141174022775619000536186859839756168559629064868751585208433849752600886543059256181880966986586240585599351786816477301915614962428965582459635648080999934588024663924344050371287951406527618733810739696998064679844749983508222632733737155706977053891371271701017842815970646984339399018463236062780827956167054383368539591710363530717950456735300498358158294274228802754981320453581953813991163722514701137699735048957659960128349975656200004107250782333510856011184673886017454866108956107653823048404226251797539691837130843891139521418596201059506383624016919047862877183662944173066079471869914042496096229082227080586337567032649620289157913999500193259133695176585601727464244037186068176015567500579654444403583003388720354324404419299479595534089859685725045917607793537457479875598578189512352535718268202541340245785226448572013288607967813515573755951902913633494559591288460721948954263569404837948311164476626373918323313038685281562222879773036749414420426661578557799222751154926304246512511057703420703538212323554593643953916576585994719751723767042807289503681619751195071071457486231274151456386014856460218922251231664184258043444052039050237262884058229039671452389815799862584925163086899674167981531611472932735703228065981447977511635020399038762852513938489604606105232730862798945921139466065092267887073492045572038085801303746675954691752603131615319189806347127124118366892302016291393791456999674885307679815785975835960193223959948849766192630125646870871707815496733423501101724023419961505261909456946841255155449706959370262696484806118302269415615059529473554651369785587295807464533411187615561318782441200003181303249165595810460014402943796254643352660286282930850109511034474158455551211934329718078867172043320673631496909211967782767564206274375805572783697588931379843033767521807051469304292921922925122922443313739434434407826574048448416841888589449952437397207898414720181055103887208093035261053576329968845687399527332349023116851010535734962056287522820701273774888728438657055172080759340678254102758915694062529310364880225881184592572185160462011439741894584479015816687210635778066416626790476903462402637964116189518594094270300014439651451106432992634601674558291055121480621272773706137752440051434656850660940450818258433151808469641673350614669665481860513158346188910641716621697594930895016559610437017380555806689787828892186012531020961837017320096163786986344204794170990917120620205405342030945140436588071497324571681234527488861098770940601057267431977410010591159640576477961683757538433177401884890925055007912736836238698380368255985332247222360476141198274566195092744385329227842214296925999351039542412162914232061224365316765471081920368467709560998346640009197783322851242212574194234296628520838598705160394209053063753208673799683104075047632963283707034607557405725217046460188479153086218805788648209795382675344475094446757468964230336745616114157502123007064358050523818880231923306485960019989401008214015189873835631610719863734278961788096664536637912673128104461591724597085840000027044512615793919936596974157091861633881359382396034265770579181887903323179573442235215119254064899324585075497891280425517137071362951705506601065581900269218932520686175372365393922036790778858000439895626037400471334656814759745745298562775373242556004400290754992552638943952068678503439405583570199562273893389165394115087423837260573050979368384037979073974414632227701095801071684044724217275422431741383382503971335732824323689411599018493651429308776167825801711135837547837621326926548588590523638923491662481543614035154409048923628229409182332416844664551233435882768904735864273599569536789793365501399806235019129124791839480144072156365297384247962556967653202858577893745124762461902106051337085312558273905604537931051870174306043011567289275017303319867464483595075591345269568247014879518336013324350370745211624455284349035585998381590882061920906269951231890284461173690308810481536925825762385844828241890278544104098334955820080594746233845839981256567233173234388795200873669290747301177536449152885380820342757900734129244321594244896622711741834926508620748241127771891835081962459382681456589858881236397559580927373838077579014344575275370990458630273307360034381303480160770301271805192641448733679751835567522944574765357943451530394314229331460941846619577582782320193455195621361901086198530989538135641539982499216730002723698416474185373508951832317725820522209527593637697122736246830182105515577443348752343803090555982990429113505674218634106393210752897253625261160424878774754189254486544999039028356522662674583120537536721596678846772511504718549218166009528291289706732585397290407550779217183965163297852714617479597712305121617403248805308147822052862899604304199929084141395492281465576181252952109457116815386218320446582096163888048062942011972715221365118483058703029081633430365224899176054433623767318018407092796488498230014943158451833774867114219748524479876402021955989604670578936932995471625216937951270006967823426195103196637405675919807609511555175023917012305397448424916630868295712258508317696085320084813105855385977732998060503257812778208032348763310991624756612311335212509956263711818899988542027983470773866266518671268752721597003658378748357758605938995742465357333643427673010008268033229853833255063246894262700239780992182303981037211537604393533981499616343161900447433713549400920996434414993597959950518657159337209345601301217600242781707549776102512138417630705674715069581129530669140255411682896025475176183618018408301549000421695592298316364545685939311593884287384518283266068446475528350251725518177903825558479380743499768143974826110556141685186283622679208161941685236977049256257903021836141569256032616498854349055964037065586452194953688344227705758134778011025460677578413616448741580475627865877510503773942294861075444578643867046123593850330170818213351423617870464187994250339396093345758714146920946905727480662266700396610422864727678767217213266435133983037915057708923710941045133387015474122393290008533306498213256068163224526838857706315598721164412300734127121896428879003873308019253067609177911132295838257555185659105586930499976073407518321214766243798192324694870640693247336233245191747045015414707465764824749003365138911114479768186412230449442978808542308557756052810384062546344586253547804666424013644264190480817822578135782502733879656413641430395964232397424031771060494102920401571045165225811006067966524949930998684469341668070986653755526640090538205241230653982809456353345481613769171827315452716168613239319385118384967337427886223552601634584955700547192511037552738685810091303345180489498426283680827173782574629756508483892178773573823549571921214888116884326517196408068087729852445204786973585100528652499438894799042152857011774268819683177644480484495621095976025331064337056065070535153840913736443836156122892327920029533438741563536661676640503047700357771514921997181536187801013774684886336399699774169696601424103949994992776654123945849711160916535167058365738426529467113524647277127766079689022416459898161415585373904630221594780415420194663587910793772762884458042366024358084298246423699490385942410501420506118098470381724289914918353174939011695950762934514740799888492783909886421919582567260896648186518231466579603152589336053809921955048190795610789655810306768256632334301079569025380042945063399903549093902225510599056552139679108392116770746393673790124471137301248926643226166237752363117238126734194125879706989970203997777038372471602444941244626423543563111063171371015354709103213683970984526821487481982956352685473948471983268077384088340261993183604700123761631233168674384204510808923157710799321998038742382806009509810595731718443505019013365148217155692744363530955804193878824203584561584909289565611892019097077251220402204300146007979406971200287334526900030882309529098704955181502894305672620800460762585402118352232905184478694311057806618609623634258726621223741519709775303141144895034696365060947168428544623372995312849095899134040154025046238731985560948218601278765804990384890482540341936734455517313136736221372545646972690837367752408344220356565521683490145261388383941201054345962846555160543651536928000647449629460414808454499403866534945584730772334284387372932724698849324539891181997096478211067947154133608421210164903776707842758316051260533538162501180983350512315795293089276172846919657921735252494933731310467379491250277215214914164268874091243105499733566265123389471203767013605732824414802107830395743914387168207717914124835698016419274551077636358177221889673743422848560134522247345326031708461728725882030036716305785193715315327690905476197144847755632421403808351127472562555368676159034454036834224356322349839332472100533762190846543225585455116694017621719371266951087567741709220566915611687105935299323607347883139657396994696622381026959646918921533885141005946967841887838664782164593375720457415007753453710977476402388085683749232855734582660637009317821678178707096220636276121145141856122400009266367802834684070811697615204157890349711997788242393954226211206409064397819374197868377655473069770059529363200608430035622048220807538256280382511067129375314522040740005969216188547333899914210807767096542946666190091272131922752302929030167302839745250082945464270721476684284810354128685643116351519545658650571299891698273570797375913762031612656061462449480627013075140715492814450298715704034384445962879738250240466136657450471365717784874368738713047985010598115696963617114602690497443975667369752887277628624817364645925755173195951315372918011676210672055184491860239264599204235512433555078143239243068774853985176970410927029901803193985807411459083911604429462053727630916729873203969235503101927018376774565868434930924425993683232151227920013629962331892451100138637108117037739189366216804119076933496847180296464089280751252681922467636583050610383364752746936113359725862048497958566051811121427174312602716548873238393052304721709499724359993358300121617518981036677348079735736116903154130582590951332546219480450260281757201651750809062617163854935165202577148404026819656514847364426127732187712295996796035319271860107320130166874205553781301983536200295725262156709703370734615068042496646956496415150376524097519946329551362853653682596651053447277429076275730321606646833179229785555466150321020506753046774024076426243695893784091331782385477510204349463774253057193512087255220639361422461899452426451738285727391546588010544650014804888500544666052441290396096364024547404553796067557479727304615073870589927789636484691825345460535159458235487960503211548398583472518071530377205604411068589936754032121402218861915685648379578333083096661155169039895601357835362345105557734613563224414290416750528511875339395581020214960851521479076645519455120568512984754847203906414710672059495860236596888072915729283616513623765910756590842423188129314897045580805427528583634338369952962978455236822265570461337759980784591000460129047541737131666097999337236328340209198870756251517817552461398231288142348184443249409388186247282082690136493240354328343255351077821860349484613877225888530406155933445866585370006095495408935010991354828651666990580715976763579508192452272189949786960025483567770892222566764962126721693569476504980446966990002897032145571717482177256280580254412319767188232873958769190727692270619279370243988989445963205855539733434564437657889693095651336933144190692428995519363443121736561171365235880819045585491871778119133249748811811540990956031446434747470041327319688179557383280946286417772590415416643684843456365868500241240864267587656244007382630848170874035577240367342848607618296409184522143668159930133704804445057077360299916232731619290312137065115919580731648969622096473976599872404212691000147890626745563341495106846431037680047860444497485609623042577458796986826851676290239567300180633733299131608600264632471219487579312517791092995042190700047705459723492595956001783985707855565054153975207006575801424951197425577131929327937691739914009570155112335961851348707264494471530168894258138356737001516167687214171702631516986815985034832093650271943046164555418536772438738500824316460568212339947725616533946568646561251887051057376377039473041309942609227103191543327799388556861227483899353505100658296596837297783967861664000729123972875507148100162222291141189028723159637900057564657682925850239084167274515844063823566094046979857957747217425738356382852913746949542235949662971581859760786743896377441691410575828805729143311897077141385962374371168516439004921760028080436114576810734038309899806102262270731177470288284185932043654004965845014286655832988744301544672176946732310001337428849720612445418415930429664257914601496750931323109017252809155698254967286138809830985293677656834182179704749840604926571617735494059902000182158718532154353539910399227148704319754841700450309804901462043991485815161461583498479215870624374857497120470588380109759548340069747610044114003510297157433405694860447810842321943971263343424837058455744865233470216414231319014946489111934131923107861120960870217930732163342580819415595487856423658775354569490453393461014763654310320148461406272062418373234728197319670779580165835481271144331463666870128855244020355184345686540582656899264177378493503237141358657331857074012526081990248004634131974405370150153963291270515016526613124529072860318659631011258579874895588662931508713571185541413490004063955165563978737103703661421326478029068754044681440831274395950032321858899533011022422651250930812310804886445116441616470350403610747072027968721469561376956147824628034585615795657743880032256325236130279370162172771672766845377882280738918170274858473946627488610523006476324591344864644203944918943587939934218693030081382573564072745751179720673291617463584396323919436202360666559152270598672186299566612827986541505097148732436445577730790300452116806100956125631818691350892833293230829796135129899760193864073580952080451472426563432510188620586872482454251158471108888360074067271690580018202949713803320869955677476678613710974227654511218872961876240225385589204036294014961049788286833440546528325791793465712016539835295550591614522810675037843524067921330943215318590366687134272876479349542514205754415499590269544795791608281544904212389535908117873250907005290908909249061210802140704457802714649845549609794092342718154898682522340663113647703861555631759335560205820693064607778518057262721688849764235529740334524331087109137374877845010296962691290258581293626782594615148159772461980633482696397740222546239764129344287878280750093744992009920386462069799356888395808717533117051309926704068778600898064674775410844680310409052966171705059488727987723613360771230224461786661588145213817035681695989968177309569835108060571490867737593884058094567625567913120997378833254462217120182325953282968431065769626144047193679074167536144024496565123143993695985160009041540064148509647930909037786936826329638642597903942752236089926731202453188597885406192187118751066440275583247273235368240823965102200310929341712433363620356274210417903524659624810829582677075551498417968900141784880765220723128263164592098110594865321244534988591214446512122532947357149630908511120435140844907425196591833801368922488997924857039305101891947559833842304682512262981618656534099233340062555660746637810986153536719338394723212451567483998340396431531801276241526646830525577017349631586777264764139307141809947648890314351483168650211857786133617155808389371234114735029009392349019302765248874652229292701124542122260484053377546469423616675885707955264616406190321685812408220718731107834969036726449995797289367744885548658088819760249932006870416619815280286786281172074259016398312645588920382387250014816774580320764150520320032222947695272398273741570042474277891316263283014173153500352180025595597039399984626781839213442868344728587403335929750187629883500103108848046525383587719108339588578680021582669091119766509700210850122623146622930552427031548957088280378103826758674544975484134740423202459736718737146241837839411083391801856558306089478627823451316918351424989005761512762933999328180862685913847798550736271339756152074025261641264009566249882105947605329308858159114990459931330353108702601655455581916975976170849945358831892848716009905061134918869936240740695370985679973129428224978772788379582889983670281429168343502790647658523220328556368416851261891596085981709895277661162202581812545809553188845292148130861564559086842314030243831152121518946511463811299751864676916017244813826792715355430225147451655424538397587583924768182490364359537436284380054109611216227694972308982183205421883184362040621115981725162445733784792803095858506977295140206068862766170366487700026426413055032119278183426184691782994264196505319671753769523905253821813951266452273551516982605999038915364120378116361788934277589802234702871049716313728016177201960786784544695004443192724011441555212954835722808087607910675588432868796161384818657337959579865228384687705287542136994187068831811410194522569732938975453026376201776058802120063902090092087465751263688420147676085450920096941249534426786987476159965734449491085069190891057678753035090228153798240978870304084929782827916816428966139425389856709800875571058769490048888785984181171745273829758175247083416438597433298656751742365029761186910295014710810407772800673847188568876941615868113247678886314781458576898994428627443640145541600451684393798747079202159570851692603375770012575121194990216609842373086962285443889371869403370855259330615032064596048635324213903994124827862027183481354898196016587314928567652725000942363358246307488823857541738909083384193893844213846658694113680299273093476055332216087316260452931664645344448741790635774845041623153628784962427274179345403979997331537586440940642315670603862697443398200216393130252300957974245810472612188860456366689825707147685312013091276050675191908448839732533572047057261096440581153001037601760601267450693311540205123174646987577740754820692211497288740280676988185394995743264961169431634483528889886810387385619812685577886343654103189154046104266237966028982139751249822026975622032780670813696001516265828988454011311127892462629456934388124375829713496157784478031796147183000820410000527471338418970383201329961842062162725032373105369495790080191150222696433696234185030020109178323876859014903101005418503973178971537939184737833165448042482721170134351286418016527605660615888403886780760698831045761507707639400754763475630953713169663551755545004244567556735494121506820495951153253580669868081177435728624851622964385215288764835488190074424051515172020564543164966069878333133521732018815966792051460804617523418380817674350678929377430696670830005693274790379630454800262484621369066808931378758734652516013148353894158131611033927242410105998750221465452375444550836971292642748891800390526330323941617442038855663447129209617198368151337969577102689608508491262647019568098239542006707530046561716308372232205199151330758651872503264709723961299692704171034875613079916963042206824600803019832159756219763941521431472930161674191467357406235052668521964593781971289258630639534865038964033679097806140743990682558374995359286171712982924935573916842208347617947461937660210107179514430774844596071605562577180655166041749503064384252709088180148270999389237206690798671244571781751728784917159140603590683895593124098676412913243488581862986126767794274812007839672599877152817113681730611726591947942032270635505955680087419736319011037718067393410076200384396607946180286782188287168508739743730848654003774212968824361385453405418116554043056684847718579424131933618153476277074592064431640018018161297158714171363938369732915732357540050323147901848149258978412251909050420129440795153729916841189017617544428058350081413617820682120323799488477634714990453560054979275682495607097154896869395922692005194959414924754562934192233583882524986854699392226921679592742656229401172646468179967027532432669388605006283481680290349448940089910328739594773055219421249686375617653098940311469011702938292323548821978799484300632039999740743917677818556072865795534818676365710858470945904104790326234412722456784790897315452746230146432098138708218363571913073911819847442143932316486670486056200924932745828882965134927030998310279027683835065969141130564949227709088745083213022149821555623611537580744487979015360287320580094887139359532848716624387040005251171766424109651931116949277057033594302773059904526526871314415214424299531763340840425485109756957505031452528035488165360086917932847918755179567617213344752485578873719352135824102677171807710064484791266987517669742437655167724492995417824131087885403568409235861295637816548726823545944734762290290721882871423898129575806544256496424080430904346800491999863076947858840106573333181581329266173259546428780315434226713700094591329327430109908423998472999434708657531236361386525300913358061962055054182284134778584807177075488082856395786086445894916881298489314426247573430025364481865859419266704620085078317772297546636066370281450001520581016796532514898801691903803904797426138641812960277452613600795621287466517617172516493200287822796837840212101806417640190099593103802122572513696069852319693039626840287108969346635316246202500861289154292139095411352425362092733355807809554434051192747251808576607515955925176487571963897504586111880282963798894906672337696551679760752944450941477037745355495040195978976599551208537476547632524647354896649480143995385358473259772765876257067710999499199593744990228126857326422632716677879868511833042439263433328216303736794294100992396278737263719763541332983393495332401853312073897617312598782066074942515336819355851480364130571495000692508074800156972874945104661113592702058992635687901934598758987124451988551125189082759727213385670324061226393600568356574557845568167326869828940640796685716678303828332518784238134895673767415032845530655616207620012124197110403859954413258310170445581849312376592112864957572728931203927493858899871653067085312550494358034079950329201956243442563098084724415515425001963072042561036719921678829875830749767815718179057849332959919925814771831713090795701983384898764254777948641302795290938462519646859966100267493851377292228418479235553991083483477332365776258859263809797042481841171825366775287245523908980817885784757757690063995877776648309719889045100860307854896438615025311858044473903389950245917073543088950694174538149151210829388065438318600028611617382428932593631939539266117837373090914685900659923021771216735197054657391880626519910871017651522880130574914902724001751265302737945782104513542105211618514067300458856234741295289243288659752589287173219496588947803182870304274657285217928285287727292607108403757226089409405966712186675202166842573438197655693842449588658276937370136801748108609751896622557847040038978434864546083455941375653727324586712436918042845729889530251369737927364249752439207520008580252281922231457096358583404070044617768373320584461175202444128628124601648302560632824799290240575862137731340805770062583823408019510524548082188675575396333864294010438122843416621535909575328291836262404137337124976943366131166652401949141206077528164341202512185784693285662635562942510000053739988121104812046970506481380436709268992367485951446606506458060946569934441934458929238703493397310054953111943690773651734491925770811285306746987394701406161965234312555010555059912104685979018545525207174473302786573847783026922996170647709691007925403059042305311175672578874504593985354195180915388956057708609556294429069127721009744545565519528684614045733261667801203585836186362436828122716270154586200013898939776997291283788065386069571656480998467341383858357218653850115193731556417795114365456778934584608049122564645174702081464963803830131807720166293277689533458641941124074094223779052625270772713191096183786874167369282063931697606936809487010752476122905855057054475547353205057096956722312539670855786991082677507514173979338281876344682006505198254741291487168401773045526038637445869866834717734468522423836653478783456072077442568260630929294961452610082741102101048360403302631219062011260289666338964665359132015291685515420381793941834730443205634934887864683544593773491646578006701295539502680358018266760426953112257676808654922226128766901775029026236483991020705512988266801467232978136156643890397510109353141907074086111817239918247231206428854308747307087220439456217867005653865080742542745998573221631752531487084704011005713539673040544480121914188806035621655522021899582972135965595091311947176020913933195982301492446739397425950486299665496308294466729969225538407568976860149331341174068156477933846437019115714025894085633497607992846072180638933521383204437421887268206852588490371358588894098386939862057893385190007390613132267163738012083786614241781942328666022973324579332858072649452287384219049995945463604765036868561112811117886035091845070624188452961345296448730191744189296743357096771544604116068246777163769698767056166833820198547861536346658542077168079767035026955229932500658793104685745668930936321801645477356565311825139728291370159380632496512213964758294646927647227601015270922243286758145013318653164848149889253005279267216622814181238673642780746628586818803181262319439286116365392664062059254439815721204540866096808096780951878797176720864252066866118085340497335354122605851284374470133313498645293565933539113839828804505108444296306395280371928603826537799798085201823729985509762509184751326924727137378094028675798520528971078373844914439916710549718396962663639242685074269969064526992256889717255755355748295624244937289554842992700733125683241954621509507182981325590308413135152231914367966146345531748216173829270828523662077747963218786142950037338825580588243587635263984105822551933958651281692656241583214981902404964388137142506010328535742501711629834713418292287413160140583214327684658187538803381793186275757247081641463037282342344011998258680980810993179209866475150409069142811502207774005532871994105280355078358923262310534269491575037783943181392402885778643854582547752061754404774053059663902536140024245079145833864704003097314542483057191735964351846292769661230639726615751154352474692765811940232166096545403456453209505887821106646836519127975796817267525376347250426973833997253505474278004689004214269040167747426088304980941453654569756479067293392022621422139640424119899871542684345259193739124262336300135699839699234940016221591643374597030152903177295529468876434426386312344940645501888971950675406939569925552608723155398818961289632423499219985615939714765809742480445701127586346078368137691205005303437574540332108359187652954438717143043548085643364643217818198182290305887033012811402122024035774308484230304869002396543811093192448247914860796028020586661981282563611624945459812977020748113228951413422060720325286341102061680072766629348405811098289346752442680045777006650112064485679825953751086466363682984167207481139726744545502258698508965004983151174611779814375938437627513411324550233694350791736520215988756170874912949939656912608032590125303575979612552481350561256348950129601881191731391385452901519229416430915071962160795856216314772563126757068857578877926279148673109746381940898980488475621563090914585552584742826938833513967214746777400869336453325237184608592772070243875836009169437738767129508000658852280762692354210506187205267786556903501934159264918924380319666964949008003347752219974655048592643473773690588705785781087505171029222046117201797035010302040260023038541038877470906072587791817420851055156564234464113348746518168813924421842842351417983671354459420894803678990253593544917192989822808247334429283830143367231193221016455021851877051635571222741722615014083539589353595205254735131908432817341903384158900135671244417328599503947910942390786777822498131889202272841323319379467269375194860952403090178989755168240276761362379390951920835749112569496154038543301649681513788670474006490285282548576827413750943005329142953856736049441664277988510620234595867079704703815077864900712900307297956772302519856016518994477239523946305679738775443497299449933727875076504501860221926827688015979865286698482744473267756628092223454106307419564602490880124112065379254698708881531541549230092988453333821144079993215719442939715769168944976622001369243144975130549528953215653670178045224546682961033087201641472847398882433706208889817712692227619564228279634616512162998418884183509725114288153585775707552661728891828994083350103909783836487143971430074954726787568711797884908488129539036839639315548487220268057141962793930809905595931336654565133909788649140632088006896136072167959611765362019636001436530315389836330079472001506087326101727360634101369242386933198422974541695426249645234954995422872957754753609088535725104254292148917948518851821992658366879946424079072090107781626047651293135547589809996875907537648467821462004241115705665124764016384027623619889455535085120488026149904054915103241577203174257055300357377108604648179346817603029164525599955967888057001191441794130503309808056789912890934041509759308642033857534330124774819462096414493388887707165934305475608852810228637936532381526131697740112278532936394900438633974282141793076525624915636935651330092854652986316314353713649370487308391255530601027942379940643617396872676212924393494657939767996945790577768565200741424358486043988703049608573476830845339996200542081729317681277902581420804954525452337883500267054239166159661906637378839572249154556084739065557808346145032186524472005550928016364594297302694327208198992013102050714258035147264099786835734030987509667649904079043592496711419672681119997152139730636392403005883748146727289585843159129948882026857462377535889282926451393692331186791689247895442902423643018538879621788192411209900004411121560999344077098255453586179281118401274130094689258895716571088892448429880850258689406863844778778786392692727832951737875800191455407267867876004846474931591245945585782125340668123758549170250861397472815604950330511217274941865030045678017557101998605689819449036877311171097960553602579611939642753835196843107179784930088966810198828126934693872473453131733094598325416918232240605369372065462352248672164083823171860185745911875899470458470342507958531025833062123608763522006699268195679933970390129036865763835086622745944505646381174736943127362867269100743318249415634613789698892165578732576190655640873655120012905276246123659872236661890773550064295237895832786961766639131136948705686539161666039479737046637160707235655729571453285866102766983445621110513210448528104621787029287605240986657010497633174860112810238887004602025786537761656819942578963323135626685455872025379336877132739879244339499190288735955593981310653525580635008476303741116432586988953464030886640894177896253414990720282699536573800224012746934405859105053150036204206292273677975269584654773974334222413788330621348708766044240440798552124322145973653405211490492027676807558384047035550105858871037108005486237852981205952541008425014370415406537146743625066658410381276447536460890114822235152249018832012116530807876057188995709883140880378225355922726542733906053796355611941455780060135963397452742427718132580202690571962490780444341981623718795771769044843508705537759176907339035552581208717391768439621778274223881753588723467101385085468431315153841975389526625075295982003725189348212187690224896508577866448742458269826638081321436417131908368110845319240549180370803877717723182046103094171705223989429649856926749694639870133867804502396492029598104777264580382733984473489739223264138192950083078311412528912916737623532554302569920090766241256246330213851453567069032862128542377389261809744077134271099297022347094396354172869001900735871955925400348113312419876367385824399202312584965648757230375150765170741024133611927339010799126648002242899198430855312259040737568404731801243242271874112297924351068643419750286494765211643920830529699348240282686131566215619658290152938954868070487099118404959946993720792689042651119129636713005960755019937871188398497615201405301119396832275175269856072672182873053795204464901565985152622981801449456094340097831258204246090607628023013834155923824228050573434676008721118849745357649173420461636724037658707368402976492686094132610827930949280244131566243874247092178716254489477754530945076123089521807928231168443016396462139838931342398640989071785600539206978509562151234469532075633452546953037657511339391571445297634916799723380674558449191177311245583465003582606947784585479453360740971825066045400590012317772462287997973338600558450532181469362313157382651279361372117416833029382941552644985649353431740792414998465498018866123513492832642697384428379541000827828549625497665173999060449215725807164563874237330100182782072433494467378216646799441997839350421160713981581612328774742405684978915430508102476088478577640253103435433998732675142403794831263802501680796883942585994422075865463338086252104600759898789715449332402740162779616251558580839114940122574349517971090049882455708793968939359571360931112079430648730512780022089839251745411173118934974527743855577684881987731151500366841341353945803402448092811649753036938704548854606468136765078459344521257247985004679787465125829320128311490196044450051835748898988888528774576368269889462160237800114610608478812728147236952514151565746467177697450842334525516054348838766038522859439933063395998749983691725308053373796271812097679932239491066171033037096657078550401348526362213912697720621904910071789136770817907058513396404121904563053477180729911426675432787329096341594175206067704527310967927279602206614234584555263450796848330735883861113602741721319119233679599572022867484132270633315033996154424337714968341721424590217655274750987530364662336871398353789591052870744333671510688004599891590238201791238193345136249664184390022237181194993702134243584149771743889167072833444522575032893915490721497214829572461495447793947356069471996898470580850912255183636378825865768789761738995998465879195159464560429286424368761708368316951962062564987763793096990719039153096894300395716346296213446826656702138134134486176772801079217905089302859330537876780747604158001090964420143789404328631770023142226072386430842177530280666642166026394562516786889412428522521891443824011862470843030796862958980344974147796186415358262216688168977559681440582405171393844143658371922614546034197302422602436642535511881965691203092556588516946242732097927964512419658368941576325742971603354995201730917900356284031501224372356031210990009762430952242611606455879053358886355309912854560695661433003837852978159296821371831964762069091842854254291572543097158491169918507200117834004553113115851108583779566800893373965777948479075353052286252103239829065097890053082617621493513477204935039894546343887731787340642337362857358614648403087132995806124533558924944327323243190315489749597090635772611130024120806195768136357949603658214929640597983684765478060271466442113108205265970615652500843582382321155959902131590228279366828354500921639688788154321347201268432079605213448502492162586101333729653251783594651515293371207134186286234712659223267750893902293824337795809335102145684204966874545659095724963195140216125856796045857546017751984877019429356363543139667000548043670911915298307061797583792434376824849537202727144741060181347618594993352047517983563647446949680073886059432943255954258030594259331729297735989261245072904937541245588633881793078069488520365070738331086251666610374576227839253859726494680152388201167720337663235020870240446858198961324762413302162598652831101385715860947761299275149252820462508134870974950040435494449202466994110775146360342689923440409877796206929845868896259723735358398446973519926324698239060346863591022685442401151269393152448486296276126641843569196088735438916499766989685866768780998706595064369080611038280987563056222745559100246809732906074907560631629875707184962153663250393540383529376710433649516422607420807093569282239555378865628717864267846807804220954686910186374121559641790285906796724692551972252751924862429614232215979096214843071883616629885800633886870675164370313233271355903933790646730600278824873150588675958517167261126845493442645361346799801281170167527102190702131172459400349325752464784225237003685420477563530709625102206499727341472780935215037957522516831538049819340539028317849494064777676221226159831953700743004796093047188853779773779273668066419671111428968824078669941799893574950363930576468128594413366270922678389225601358020078310134853646474399425928106499586017773472061545300032711268890377948175153954094000002070421206412180021188652338497313223368369460363146204055864837576575389565950186480493892727399575219605012432045855953858798482795084631372084667370867690862322173551482552097953053660810629193724147594030366416102041202595077311969273421468348298809246603717920129124991659038721274036222634977822119817396770210543955479168941123362170378250538393148899978014266197951759313081645923502040599112909259620674549861119660868411785411801619928373720507243712187339390674528684752092150070106786054683870848441364363838916638874727525868794884211476600007403667773076904791674997242431288603897500556916227303114218382496324232067662649579786627083500503340939818946227115231557408149885209523891108319978318192386505151423898737892846002860510927643624708725709882472200982923643142515458566370763335202139049816673578335185315005274347273616408897165778832933253516798782701092814146043043739395085463984525955349262134858483426260135096163658799389238582350667538028877398143630768620775383615419096647215622351676020625174822561766484071949473710081016745843298208768071901884938309773730156115867015784144554123712580173615016016726832978625496600032588409792004143615980878603719963765195366197828854773585912729896184537415048914840948409260899551411286341574403206511543568288051999151587427171164020304114150811166987603503726483041552979566742602612146658695175242420070224422753568391533087721174561120208983590104737749774977238266505978522788085903600090229988634204835445851478633147481770174410628701419571436842997105380804072960579677155571838127100867370074654889625085025086155010371708916033460125495206457061936501634129546117226958484830275800938983656956264737739029177781923895994266981606500469407927577025576014974701551761886856218308257336279566829511443302394902222173181627199821466498069132418038819657478122896486870977126816238976627160743125393631978571120868588368214775628847399599674194270350055821542647230732022630683879606553031728856908303335817630789289186072716473817768682239066916437989388981806332242667515573482363545581821715489698938063204377037428189116647461769040413563575427010846146926865226156819919394102322096853102196443727716644425869753677282673501119839719475163996410172462247466533979613026991001137402492367160818589756971310372894907491056289673199541673760971891149051254559472461498386540641268823110269654151102575321432636587761475487024704603257301820417157682907146006660717092327215562702510813175723651166360831782443570837854296089645597711740493636307064923517561752826256341686584909374026582090084920922198078862419676348316562517457851436538374838273540840931551346131798374600583911112624149077006748789235784072745555715687749887730549715879503599084608970114594625184209415119500752833356156426204751853768579118425508473421257724815446390572263504196734978779734340563066415533397270985127464778956363077152337182622973289322773975902354498353660341772380130372669931149784588275504931825456682935099477251728364916646273418163385520904037970860690146358808109637852057759064889906281646832625700481644548752620683385357223749198869460626928395007896413231425944188597679018680885029370551292407295732344309595240918640161270151589053082987211276619934820300996308739084956940401957391766092686623540501276326549719190614855028015448075687081684099827196483198574583937566364736175077213009604967296510275184709648698137485504351117576348842437856440001114978981145478995147476399623165907744986820203716134799404248976511445590962512375226810692563258237538936553182119888841311319799003943502402952892181914980567924495596977916078832443527428781030650231036219379471316420414463871741596660676477777513377480752803863307354475110357734830014609845416249818483427371659978276704394050142586860295981009990021278350684158384087864771617895735420704885178466665658608916626127026420831245798120870239203930631380967423264193671248672779596827448071342582570875845943342957314668586740210757270758888988422460231722708094635924415433114027525012760295837597888247861761522854505626787093713515864505061707613234762606719117341908522676176159784088720713547250639162802447013804847766200968416403291240208714830848071060865703444520576964833557568075962444658687610147624200442864858358945242242686496504156470480089716144724156610462210546965193924665694586903521248650467860903129113057219378962118821390504444773902219565591581135877045821211840632911048608052471547540494913219531949339432139495906076459446886795973683359288205655382321576527053077291361707885247050923605884613249297106290901029279471243189789668147299586671902113036886840689648745579033290521114039828887805348702092793243617006347114670497050192822373520136711181121019573982016032856769320183062380929192653873530813539477487167258224297171746562820009648226292692310452007264007985027398292714998934298189159994321119987124888764790186571498833094310524971763984437137270826338382039718336039603448372716980239130039368103855994416221547750759717980853628505053211602166123345324097475573075004887931363802509588723588851162756753047621834380132009992492924793593281998855153644545310017513406106190365196078687309948005693075652130828207972192312804126417235979866369455557106511329546826261054130957488103624401830590657940013686867719712857123526916719171108006571034952864524809585511357606406788755651514889093653574284366109781925367871915646045955433703255461738828347260165840812048099543766365833052907624495359706820895826124936749748188073058121065192797388760704429948198457709832665113377160003877997918102130359045341511940602838866468481781936636758721253782588863923439354978689940766132900367976037103500657553967144788608483129141677803726073288262280187206271441636946675327322235815346720949800869663599829383876823994466538108568411927501251990856710658526747898780288174519117545318415438941527593060720693764151486334476648858942799257520996150860424955309087403821523859001674937222233070627767798174911040233057813656281822481444163637302744403198509557349052257979362400009746088260888682345110567096935571092265859689790458238442037516892039017928312779688702406038633626543372350121729789427570209260790825895627026493708515960364517989194912943776162993065357430014887912720804981242194205566264158723102347987202393634873234556420581631126139889852666748465097272470971045049322774822718992669555109924121434931686821315698379462685201953500651180553133397261367314149026258942410848647078281900660539350295134208862671859735859931797810658644773915467858901882253101415140212332891810635266471283645874125611360415331357034894085577534492652943753572750190120017245302440301497756727809283164020371144716154470560391966192157817399394203436451876173430720129589763749531906129861715035591444570244347641961788585037807086158214601939600108814928236955018098472375860881150578297757950648854350020653619807942462208230029161725474446086426637119220792607649850334196629460495528721233352248999566377731963645931143089851390768777995581313456607494320959400985294612615871937860017085155277728847681407204437739332797694264798926948204203888443773558402777604689228596297628430681597998774982671421178308365540386918792651779639310310569921588419997201361985486181976762825670880357563157319302883940428570042379757677257049386111190472160689945725309461524767312026572145416912958640367837228883795812362263028529710578571144397270950907247307906574233812908276141643444792833140667160908624093355050304602638490032838503764961443084025145987756484593993340500225045895983798667809952458834832421409868823311494198037639068124863898642208519985359269659500591529788622468902187390447469557462921998819359512375619670886525044203423334828969598020442746952864000271064962326280240260894421176647970724567570574319332979266696867728580307788330253303083701420843687101259377865795248035434123756333924184848946457569022991083895828517290868538867373288354901685581270587922420549224783418163620935431517238093929692772576490526664523612805283650037634216213360541286746582356079337977158227589086743862447243707967997338671235237614940600438517178336418520077748511871504418663700011242749750445871726066742721355359429625710917736020419979453229224868310830633403344175365115838558714673780339939019032107524927147971566137154788432438913373900435984502682334459978530480011077805466427782203553759329564591935905952397090337842160759597954110336276970333467763446313800747064852589235586258403726658220137836320029779288580650134336845854998672077374670224331143430654000803357062094478048202470133519439511127691096544848778346475346864106130883129424712974700675245945720300613738561087963245909729692891330660042607554890599462566439503879489236524527818135918462093550791046159502729791081841698856651401154911586192905629423104286860035048329357896998491304115303255793722922315065260560554876333410692753802135008693200846254133345820954259228472820129932438736302804988608015008316824820397208126198575703735264447539548105709418360722037300946771991391524657766372406266859605826504899889225055820814937809692297632514372958118037834300516239837750332891160731692961191054215777987379976464250189683094971708619640106803819042103219478574222816434077612161790122361289410820536613711131639941694802804550790436633643297883928341331515182235439676936450536906208354986139068791849469968371531731999786255702084951816792390694636389409213474142366407734659865481172147965653874009487444659316325837453609639141610418309075054865198146372249063564890406100123853861858485104449524158363443479413662170357570062018120867204597797415744899911456490545755686817509898221769983513452470651834058264273998970473857475256309231918799042778763980011429090747712483104560338867317293298477021161084173359256719350387672533782851928434825664098065768165640903209493556643110587425917576313298029205657995117282756497797844959442877906373319657764237294469712984543834155517440704143501740594743804880130669806545750937237464154088770036851200619552586133818016410003734531820146730030330171081590818998246850165841594686264438005577447221203182864195919859424289265813058233343046384363523610315119295337741065245200160354094522607142661246200743777847980577343357250784240451468617293271368454116308280958406287177628876367437233338455419988123639867773987047600166167721676935577392357687505326012384114871814114432302975206025018999661995099492830845212209732984283916118324618235584347900615442093005513350699539873711125538851282018663047662150129775990296471266830764894241137900656862299126479766711452136485721485337762063957500084633556395072156083004640697272925172691689015191773496927092811745373913590877603674617693972444595590491083637801724620461522274120388826139069459656328947387685071369989006719943862422572380050191132211972233150526447145358049310030594443362867853089833231633839142414998853752527640176244362387436495371963300471386986713360798652504786994061090510170888759544477486059126926540258275241592397601114297348037671467840757555623087819354623522477974942625097567374889270914968626403895213183914229302466386236632085630288152978051388135475622034571589079830158178165568474024255744867743802064274969139629363928040945484893062854570020476006983149837900752877344929249993792978283618274552198922210154176170179501652905346574624702936243713357894047506753287086040345871286660006369874674712371877992574141076913938204400202965587523480599424326143530880792841928159661855385465464015383954261440628285218286905883629070843643735882635336747012636373214031386725463241217875074381786638339087409964162770975206392730799859656139704628323602364494306201993466740227325277579703475652037776795790498652796381423215820880895963169966341844271428355441644866926187565501247227641675400788242627037783089618612077456561622470558030604180279970333131630828925700029771881329477400525456752851747592087528012915252374152008360545111171981542102403291106058587970439473933361660032105938593818609882126721323633060327475568407766275375581479111821122688677488245296845798499059791891480587326033135105896483718583932248677206375440873347077707722975992184856622389424060782537506601368841455698243528437835895000908906542602367271128503641942987189290240871682029196833633934315485959292724672044082050233623698747054300850032035694757294721659513564372651342207490466510268913072575017384905539845416738182795078018065700290908941251442517840386584592983826058554364937359206885263472006839722294251127846816608539389931257759991212825922698713475568527188468899437347492115732286223070194656262414772372036391064720282456157204496025932231647507545221761743779138147088841223140598509915944787764763110032423619679631419537598608494196744393623325337967241451158240242785418266434085593275461171465171393009844825816244142118409250091935984287541551215223853778578503936503324459735002720224920299535899415442737900921891902205672989308736776815433907253964657262023752892936753052042332855063973514951357589195800002684864264856100757316075849507507291787829107094593171257479294275474693038085060215880741422087405782751248726859625859072171265949415598653035901071378150733363300534417761115590802238983480244544197848185135799243474423566975810340333158469634897128852058644425997531432398072320858939083247723728587048940282684357453096924118005847818752439479190979659476094356781111820906426760991272868519160506422756215675665320819153363280096666276443913843182442359460942088561698484442940814795462831683513630606225907019331508812699778797815890688306628575314097937773766400371612877189821046597149053324215479952114296006163237312526738887466842616003958484343532113135583695999444694380934218912659389317642884424860382294557473986703038538027338132286218374350488535722423893347140344833500929842102204037854658666518120767601221392897439954021525915625103987566035573146805568265137042948117650432251454460737493019840333365777756223593225221663791504113927859945314010472737211999014620509654725775195001320640635693647894985915389241567535056245914341334573961964226781734273399228291917946298648580309270300151583973562444320056810974027308442414953120857097660119930075105771692934714717617467967035894267367712159316283865707495967482538713594171764266226982367052799150833420405843182915536979526571762147718158638283954567402158444413978845800247737919728937318070315612375020479862511315638078377618152291637364971780768010894295564972287098535200860758690636073827845206517362646982383852145489143474462477054289525549140619452188735880669798305411779052105754072338204180607964652396594304288240788745025545772727637517192060398690081558412932345097036867794310321052233606910558530809877327557646187090895379400141061579479834797037527404028795096976416915700352812588488075522904545455108826076738465479783755082525345905287927608790288174695106208153732992850883546232595022456879363885817494892746874009378605211611904807281784743759848056792288596644150775883383359443120817120420364419120797522331438982744284920734517996676994196315920603886263728128771532450066540428541437945979043009645255321389332782393029790505654673166792703466376821968127044427164965194009240128891140124520793194368039888749093619862742873433639849721261381612447156189107354513636650148766719743186794491812510051261114308953577664314259921684599053992178523421079666404285449676945462262481103496327424592324172934006072346351515957495267856574331226166112612641364470564929750181239447643588671067547886950295318213915477119955642886864690008186803627537388734788443199415864487444593888873136631021517571222335810975458095566761655492471122020720959961712235391920265672950981532960095436340037281711497699767644546143753837685853909802107412072420374038410616635896227677570606588577780126333937167599157333877531576716166709485194645329465012807079387501071684630221316755592286614872834257753890747095309063392201280771687507625470378761631786469526234258413042315542139201877733277059231733755565971291518516375539283772911911215783363385209148032995650161914745783373353765961472067563367682797296292409595400746502262684503040714478439417108653029476502129747353987970223309462287714396738696105373332418466242623352993872366574855412780592724406095354437087568946357428398616443236270392261233466940793916341635506541123138680853372386839693778231416926587126947016413209923064819451314348038161709480421093823275549538005527733712320112009786117785157668176839894555279288202206639567152142014110470729761283233282203575187464292379266068646171050136299109278315117371682998516767251280527799522597873149529054224072192560771193460316396193533272427562547063586806069164290230044276680258619449436615721566830314547609255970842008361723285468487498120762105432648202185973273789737379575053544512157404951133326073933902606946859793381076393247819422375510630628229406056210616311572949257861232590386704683766643432883864669161755328593139110090384911885515587936500137446088361973499698256025507651424629307226107221459012864850646178749859829941285484102549669916705276545373473806640248614159177503984131496732052281949662003731719937802007455486437652063353305418113724920055876838088336810668265353531173543077970256959457407860768668405667929444452073544155057742353275721568412522121622054171568112495373440052865232234052894642271980251225414230818140440904840801830869780469323531740137008664755030249986874596635836499965006116766814810391951661665050739180254650926524383378329308127680668356118036767880365411486730468028530597953583056200569225507109671342161057015395235855548648513444571380482733957653087719558197875096872698428418448208113666775709988263897037631007148632839864071374325407630527343007804629276926526823821281416893710298015744367638016832999325442662532985030625613156837905464510310705108480918093651209090560783264085883607814525003806422702005993381538268805381115168738483326126385672035955252615030029471287390151848152161764716516467463627102859265214438878008341745601401614370120289172827183563161302998412828278409260296026757632391609597281595293267143111115335745195237145708582421910931558948045103812643924874450534650364914887693841953481068132349924943827276088793626641445060098279233827041892785336756785763230900509686574942807902415528373774242553184057827133876672468865456771860713053639947305888525982267423569978366467130817086926189091589748002334394729917559068449167939667518938238463874559163598990950298682439561103444013193087033932542564094523672041315237987197901305010013187443206746760828605280909007192224069046340703651451535123261511721595788410543984042830512765381347349903768018299278388549692114327905880070872101244651193901641238623177536174632141145941024563238570413711144381638977732071933312317748179383208723181247923192499223704056110608785696167530145636565783525212806058312430334123030240358742043005840944449275553211805600452531401593672560213836262214811097057597678954928796504503523369936592407269898362179137558714715792924260297374924276487778699094035681280250358636246092532150379799617675559626477672724840222415678843557519683198370363287959135574151194179118382995761374472218877239040176904340486755421488685953663182798230512095999661478934374572708193218998757547409207174717334985561669946315349659213749561677446640204728774935398085424123456648366141149951830377360223289787252163846024208767352338379632523240984690656114311042142457661383588180900011849718285209039910403945502252527000823480689135008200082258768177939963000837188601785689296617651178288156358680891495439793652524650445161251131840363478833497236133507532538545816653069943119963535827964223302493731663314323677255011006357671055375693825322894325790693997114806236982510427212143473356301128066875074593877377529006445627559700566894690883257989049790683498638163390129727401389805418113865828935939837190075959246551707653130196087335015090546216068226053286015327009431944738471500930007005559263000122887365863421226502760311139936018090147320289267626058226283649462871195013487466306023326405370499692748097420301446562641047006726371389579014658521173289921974179033913030798631978917478646314074290842231881292957141738793192846062275690230029777656829184223181639849727057506946566346703922862068880149620358045787273024352722252727936950352378292853511113881379102587882883629514631560166711310787333677219868900450456414651268379369122817785523885600280807386167048765475419216065452709239394185562176054462105345305269251478890873600278976110586535043542430020305543601481211387319725827707842436605770255071725330777179304487826450904142293776959068315207225569293786570690048685760953221913684610319497566284293929227638814474360953020915532591739338198451230524678799994608471604614873939543631215536353596363156044837902172950214047143992279877968862167594984226558865817091815085461016282295076955790770795881500105221113300666000931883248570845695507530271546719483706953582781832575906446039326328842686282140174389763685379276184336120429842807149616115750431600503072795026075491499228936592114368680022659894680269181493888442337915018768924224149109748909565872932207064158894194119500768120250193787834912378042273147903719727592932506621153377140347440618402990653277230078251514526078358318634026249891653325691076886821895908806137358436901953919638865965445848769251091643485506727176499509906108597884908973321377762319247594067148870769279301081589902255751624129328582941423032952408428099605178933572179151030715687400367905936426193936146662240916534130324700539242998893870468715767392226558951149712925274114659700638475598067804711634584668998975548404500880335681119510404012850597798550512031590007687578956339752631927810813317520580631913935144101473827328840398042145000283670186039319082971101023087972620986539338142356595149737411188572538470670638899491536586391510529460300685682566822793551742737940736828975996943316777429678679030571915563767386387790150907825773430562032459656026339766966654926923181351736241905667364581493901083411231596062608181890693099434854532595620147635907282295128363619402563664288183346770372009246174854121195678643306185700231818316703970361054585816328724590472618850323540046947904072599250414033342804615262902859697121281907321295893349455628345040876156889053429535282754965740549274077693064482762599449876549783135778070567719817809412530765863638740328397668616247636342206834879606396359544488884217619004517522408175206776408679046365263906961704024613529164967517682944062572654501372765402619845098607241471511254586179693013879293448334930486871930241981705469115167353805321033003005703768842977965290150444533840013294144065755169927494240398481171499111460659252880004351663559000552797668977779556753749749804397769174833746022824405990712679879910121240039731305570424003257642739163228521294353761726248247317240217106302554227249125845009066890066117372477537969373586028272651568244493317049812493276536585179161021281287538855229503324601366407399563707933052155579241117440056898334416725196785355248835715373507618568585843096785502970383130570557370315358209148439472621656721420896611680352348687465998136428937219276712274843262489348556518037962164615390309869988853691277985020779322061169192053119049897558134499125296405311001180278527655637503546188512332892044782202086673472598328945777632579634723995317223655057865980654874363485179300929968156631450210172457012370685132088455573803962715950474386192967548354099978156849532187274448817257810129091349978311905914528718025399302212236893663472646305555527260035449886865883233398728009603204763485570441356260533575410026910088850073370259715790289160764082767534977390269261069734834954337384088492372120687994617252316971683098088303823710644022377191276303823389153553194176289129554609719425067285297067207024560965825788308214751746875245222615249108127455174078326517291360380789372775618241759734478684645894711782263339040887552090378725349884636251229226101165372125625908450588215752453551124146933325876996248058720757560440990405064745848592838060076698907763896418216521939247754400854292127723451600282465356359795115042015391005974770503091380913559296131360551001341468265318965653683944730149080307503216409495730229959233704270415011040333409638899771105796439465915091772402629864169183153117013190109331043169854677893457218629938438650634310929700694023464641697417036878009077747867249431692116671561529343944117605304928639973323712371725020291541872909316024480685830448343033939023232288683933999302833651361811998856219185080615828005049639328957183403673937301612974366585145247178831816344395162913024491992943935495016411371879170114016526807401349212586762576718440563177332438603707318802853496651155511011609378947897132641567155098573208810808581697648583381849273881306572784834880057954633501777738445468918273654179776951824023858488182505535148951932576491565795074220570986167087013604914956810088925502033675413118699345247764273148458746463005656648273172712639140367783581644981615310828682686968491526510847564911795028188500533199404324478172154991358566904787539064381719768006171765495567320153067986130942303219944008761574941456702542112090060520566005268910936984646880106197753182201436974178203216681610697268607421900752378670919757837546347540706396549420634001293334277272447222377437786518992879564495864639048043526924242648140927067857974160195687354178455107552533523158660393809274420910714516458300477757108696553256488534223630436458936864718227875782357344409264305282405914884314687012281032714075490678985664797914994132399483374190830624207279449539324274444615769000568808377978220733472446280456120715091512218358581857578140072664919377434500463289407170629096349023045781557573754581052266749380073974824910911373787556113651019216425171670263121678453118820853403159805169758706600439107295562849505093346407630552969094628160134219936504470462080185955733034241058603811380759373685315940163386251995473680493115019051727352382691285483418002847990234193938802319861084923368202664730948886967953430514446050600373826973632365219564314978431926959877230579213369336746337788764929213576572724138455868987145732069926453157887472957774079981555911574135720522723082710845131018832029615457811400826125632279663517730565756199849093254946581087737823886963516606895590239734396668265065246627120705960682527824237023333217233546058074764574706553885237658660803489793223992129349990531104075907794173016890272105801136022706578537803178421954574393758114443281427220106908543449897489407065880148151606855305542326194075998978310947699227338803307607144206530417031995706120908299247157414500585867254103671179924009224810215942386665635036887649620083844545318881741121978809827394954411583021807515485395964007382094694011375474678242093159921141300474530157231206047135922356282835005314835311225565227261711141634232982691847338721355994954703224666484271120486716204547349409895551238127378024443644502472939615650250613108667756336314096916318404329904925428356449084197547964384329641455692429176911675556754994815518648931723898873905176930301605401847604643664191410259946198166562064501348223470504576393136952369598178183724259232610937733670576181347940244790303469248147899172277239687482942104496757189320169351811101551098162488660257561819044800922936443760138010793327653919737137676400684959973409703709354659222486367364269396572067897113417011152818470214248135932330969021723304664685016043948538452030406175225291282285078818090172577369354821715277639071121271669899605291117708945331531299615484528245627411089948921999178396885536531203058144064293842066826383824534418087327369967954958742804729431164181857758177726276563529042675919197568368827335841733875201761060694850200496006883655491302481353163977705791336460430506833273293421589481511269231088267720076745090291167144424457203917735879007905760637903523878625471458474751983484552817015090817763872457818976159447805475544312534019670425347693289192823075337590889281508086939133228749209769796157441927193107949322127149994505913671469528281565092686868682152517014244866880615336646305261611075439393466111763672120996383769978688078998927541965236163159399567803271458011351489711261723730312917713183871061270237580287261306280311029538834785757213462400271097481981535246718271152821656109324527134231058328562538230997860543692473073746742777708024992901469031170025183852459718804560705327164984651723081387010281424824043895490743557372846771133445006226647351153297424496658515664630820640410756637040739246519386303888199580908272685198750681062285158119304487513023160384655908819983412592088377891299563364060450415433050879785590500266678774674762441866019036798770782012671916318687316643305433862803961426030273122952358771004355274719371360843637516619752935811896179589351674995311225313827243513864485932077085660582972299866899931042233790424728872857511905579356331057118761912956937373432417567080105847306054844583799977988683112599773421540673582981647824715295857453781298531234631204724950598691166979822794503441157013867442654438084104187471628801735800679745096772582085055792107868172245285880801501207466323849620704848729922084849121118829847160178623626442339681277901180566577736267917819201299715054141451518610425141298246349924458516859635366143116336976782162849113434948366571234638433997266438159537669479422125067358072063311084015867593847011748403477203443247627226696907490261737616280597407494294966761717244035896866845788583419892465649525255862820092160280286052961341167241830525409524284688911089716550500951368650624197163478741672570987542662554737048679281819506056377886282869201876430033939097985841049555989272839956572761581561954130142212188635082881833416947938127737505269562430827086919955509251552344820843505746058059742221642631713879626686641436683582991184988611951034272815962074762327991580666144817171071239898611081636939379629866185530451136408263338911284562351796070087716007049465562759610308617972301416632579518243894778097577810292901330058017000763597829918811993152015388295045977256126736555769632258669067075908607025412185006901201181443177773107230391810733688012428092222579989725173184820306418426563582388330279456240170013148032287236604493409495704940266327086220238016526109200691397427312301307896348284733124953134938083621191725978004119673664204131490823857045428769099761551306314221319953307783714554932492033991690942776672942010701473007681391236305577271152268096844897918330984454942650744382941444481955146518684747536911915443356288679699059032168248396918057533627278979566764616915492039862918507560051827165202322828885684979219010205184276442777372679325607095442497368197197888473960254138876558304041259580727486932519615702825637106014578279423228971616739389455094930157032178684808920367735962026063163000483065913563847002439636025734228708046280109353299724101616231169816230925368530246988483675501185631917167197240845105233899264903854741391344820926230285258618595564548178656503039435168685255327254821343973333114455011765388203255383504995136128221630802901890775105699360903539729012697406330142915619930139442390043328815278878958205629178565427270726492251588639601178374093731661576098935621452403235373783725270528177736569489511748361817142705807234417065782637499078195467645206917284442664040258747341645366057675522114657168482385730557530951801900561338932131043908834339976856589277299947567772979058527620994718952728955929673890642761211991412943222834915082368732536574080619778103711987112336696536684325323303221814152278630697150817359756539929659219674664437616902268195113430972043661365790532313522685327311474454988571816600145688556118979535403258136634802810385899004343103356337524144511572833302227592317081134845444695509192135816207766563325323353609645336879711061194178964515222495971333624764267792971860325665991370236640891920766063930052856965120760348536090764806218490389464669012109879586102177353330332536253461175694513459399248105342921759430980163261351192648054843949620200351525733639992241967612435771705190089665405070372353511865221699716563781129922192954511431891910505040964231090816336370136759960112697025959460207181465408946986071552442031521828135516266586807809721212381142837668259545669036093068825662123915798560606113047459046316622604676677639496590851501225805965968363208313941237149383363156994526415935622087127604505217347262780294642626752412366940639624676087655556016760803795463161509048689114526777158098250188564843297684899956212243202851175967461863439508704078568721415786098315952472811140264921093289398969412067352559480071888851932973554150366133153406632453981416883184871854718684469847758353351378397432045401372158845943990070875940484467649755868716819248053887205948490609010841288657022893269009010168314255941864491799677310009654853517527826522906743981349728137790414747203970485409068527923439541376846100111026870645692315437372352219297874868466976204237568070166693847787277109351490823146147317350051014964555742891746314079032348471557422822993412437588902439128209275131898208648057587576113246424813906130255482784658851650917367903901561113715969716137883214152968637561606588360446807235779768702309762000431785196344405322667655624267065656448909971277584364866170912587179975037957547583840703385124895272778288523197007791513981095613396796117210028230644282512752993596200866624029932749303100509036601040345041285030534354300464657098680234607144107683869440457655328287845148158185163804456610914693725856034829405030623304953292944505863812886790914616681531074631258758874569297136339145860465864861780663932476896541900994863941109102918790218177638923518585288687254627044499639856013826573377695678720916552861344956545217011085154254560169794707602742977476113730605548998752886520529834993752677628220659629166858646303362018946177921240082451113153427352511928288523193664422793643099339964406032399020759296956266564343475968408770140884182397198799889232109000653628607549943812351536629422556960546793326784975350025509486201635169735397986757740821722375868011721016141495625524017601648095948471066757749290795573289814421661959696309342700966469075623906456081222210203761310018098681997310916275316077832991596122747465085994720942236610409297667566555841579727789764284651308656695223622744738685423439146806384359293787994842368481200144973389335036875156642065584610648637292757086901837018662866906251880524844730720534922448862440770362886794678315547408946240905415544953853356830366704008053360542676028907552058198855428871567880253782532890326441966141744889833633076776543588230926585473023830885344520097071080317881911150621814384730512879285128146219700561693951692392115750151189604452680582555225183070995249376709565861056322462781126649646159237339641627006435713279736450751319523504018046487887060514062124905432312160291485816828077442411361049843554836190762877426239793181316347694767598796363293251930726513110946538466517544848918699133515905222433566178451803784766786018525682550277373468692286456313627813052111574383744590241790681921294915656410485947248415048946697083850345362509713994958454054911257966191422962484870566312476777945319647887525772251038186638808930201255900985492411710201174907745454708143795717160195604527415930050535076910656946577298863191692855296164116276270268342421295793305875667661841249060826798848636563014938506477269142805744528319724189023727759927658699489813297944783091272969076628350729772457888332777541117716299886988263380501456259820568685727741171820418247342832576509602325612522709488852831579014574404173502760284969220263144436328905771488145628317648292589880993493413068638375898787448191689818516685715725365876854674903502586462117384338572505939758007045849848195043881486548288723836504366874103380831569357071085353459943438007289429245621261139784184044923933447193213930244570359938428121819145929743851065754318230973042128492857696216197555783823751176973201301967458417187456444102381369051096825746113173450698753523158263649647338812506048160149558322350089701272892178307476998891752063650661383518864876962561645313257418279730085695408170541269628280500288682383902209898370104755518485113072527886716730329304016911564211735832102562827943162196286345014535379450903718583906229829716626595396754947548427047773641347344924089713719520781115494459900407201540047970205621168934736199049369326869476586175903366303216965765793588455531745140723258430981064912326129202936352105157020751955091160563081901085202812798197628340454834156436438193524268683024650260148289975604513655596441509664613688484105165757455166143268915040748804824372381010969119878978435224503848930791748415857063597543795113272656855926998683704648930017044388032649360572488568767777022133934002656067144680037594788402521667342178890485102217727237010388063738045072309020207658589581340061270830890316013166861542308532188105354753941108286721095066123824351103663762210120713955062672892000408743153961540798930195471985759928445922832480435748097719027272440103144597292001276763279845430177281320147864226589720790831602569383614253519636126435832383153959187695335149933386800050617022730306526256691522858983459288926254696292235718676764005489327664720791388477465289791101506323104280628215401100139485604524850616051877507430650312543913935242770835393112885294109330825535726489914123577815333435996219590298034978638879900517395111519442970386783584579799731156062176755757680387388547212145677839924876731455756169444361567802955463948379525136400007361754319000391691918691972010515878449148569465766523908114218242890917446049771925614328783239156107236591848348871588257824722461505233855665571195648569592618566143508647536226920931268287225034471464261883149982395513928506136266086013707952421867145360800704363545539767608188642923209972356951734628723086986513237851241380917533483517373233053565767236540308750445327964692791779844172223461308538700576654722868285268130081730098503497928136039022182072967011465072746245412534615838981697144033319542248582566526513670674441437340310481881920050543878265005639391502430311755307399482686442911963932039639397505683478043737607255464525097013390062799369910151876355653585217793019355203776688638962069660325552657932880060049161030927068134240729729657776424755660769317472221641572854676003807022384710625354950282380039391927442448741470066448966467388405965057422257296939217528976267579326131696661462406479829071327259675660065203359591278101359801215712693416366100115454956617472093447318268143759472773685156068223041581179472111810995061587026344086899322148894469474159191713029494962724264489130706430316689354714481196099411407471950038741762470440950895876723204678098823543853925975938149447687327777069273976970475560306515407919046872555779848053280088497974194634246001156687980034619913280396248609775334737246217693337733405105337792303711688914961249600283591941019203480463881493926022864207435365336478022608644290505135163673173887451079847164016944632137046619976857718061001179330173092196003269402082238412929828890517091472953892410165179689460074927145722059555196050907569941609321853733441766459066175099201446599574315451646613799057095070185845224013029076252264685220071176602377981118590502065461142996719685894180627879612830409867980648386531353017245507260736984534024131115555663361593250800157759313325775901523714964267381241058927256634690557440441232354435637041659025356119012841582570547973845775315637687696625839009518865754527636060866821768165228203076415251585129615339027677447569401279727638132016809545388277374903787688910549212058507929014674115582264135183663616100935471367020142368816376797127561129745926774090360875641025507934054966253635124842482762575816152341391106599430603086272232233875435926548022357320862130869645801171537237049389936244467279152205524123974950380282330334116717620464878080954474937343643255346050529022628426757198574971064820197031357800761743008703912549439531325804574582505492915471567712603222141895632768896996428165429497819129175884819640579368031697212641828204948342880773217547688171045886189620153444501678049454361668602901264453936450287836750277561043203535372481321693550094679943230339571101761748020490810386292565184526947406460830903453695891294025925215010479815557859623053194623770467591119301712887751882954652015675630372371929859296465869088779573526421348507643467893412045138340708019681253094946662583307187382047023719059669963557654861863150943871724449200921730444935675873540785273557501042272383270318225671006979776609487302500232828841908846585043335743225322224541650873369491545052900606746382566591460075668994876003567397946120257764542858686122344053032449172888738737102839417508382873231996086470173548375752256915312305701953123627490681732526763570836460238134570159753781550885889279845557305234600373630089797607146583114889119364313149060349960457076503506025086303529834583372957449454286151699178275107968687447205356150342475132779972909135227856912868643558626490380653515359720440733490378933022792087409719758569540922703967490010746014697685259937393432452157431798469220304578435192876620596844687433295046398484173887877005782459706388709563447831186551051734960358531990670754300585384952627921870542352977694380420706763032349392536914861169001390222239589850905472982512391199517149901124059313880111918016201044525614722084026410147641523278524051888560779359267564359603017757577698602267175211995405790035359790546561051054194648994997872813823469585482315379637648905955687879710922560241810804097337299347135757709460646091707594563494083408882596675414735715291894825023750638498738993941348636231726153232052649724959244436889470070245712534693180006395766127857762725914347467001895680563711344514485639731754906019354373445146123226256412182586971493775740860651686215598108136826601736759570886642023391619279051649472465119608926481192889962482725509624005993830105078651554742157322843811187860172935625796373059581367900821244504370693867367788827309042914946652245000129570662075390032693089285829741165694422238373304116580600423168149503758227286950154114056722353163251013121441726391399660289303741871795028444205144275458992074778114023526913537975196416347574464270452166550996601825655328114989513749698001821683940458386821647426805542119287051321138521258931130785416767988493530087573330658234079700131467371585958133950451698199856409168691736462488014130838570663926139151823559890207349879912041535895233600073241601540162730711585743220508214441111359010311816799709648133165973974967224621866727310932255421001897347927970256458133577689291169867447399909827545619148678599223322581315952851963932069090658109626973803856128719447289935344393082111574564788347646228566548933533820480035303878328381821830151423806883090771952139432124886045910790555591957134560913258181717699207179786823857963798622907733791771295339484693789099009966335396636567662340742938814617404494802404552730298814459959712928642291773908570520381747365314562498998421010443665854546921752135801611177156881348805831267527293629244996477636655106910799919484153022411210516340938372540833916117111524737691911559227675054063723510418969960847832582048530846655323007652949536299307458413625735458274759103609303659018086436172161648373156228644274376270662281063346622737621451721544342074967550076832964864793834013147055669444426975847983536136210329566622025600636166740884884201487796299916027587814855752008298821704521287962757246351592348011512555680297214021400093280734652061320168423309286099010612395164612957594209623237820359442721215840115646049298367935408227230480006611203220954189526140174544409410231226365450668517802054946511559880556979487138354783647853517566200337897024570589165757509434588055163271364436065246668432031065793870475907808384714777844469590865604960979560085359057628436054562360820683834372060372176906045413434175099407226252236744200553337223951397508932407228729000386441571775111553847060016439171937994933840387200592295077263334137077653127620857894622302955679768404219116471584862285047106373767636787825028165240484110447858940435288968587726809128764491896530248609111239744970584917557219438621373375469176815589657961698328956823579471400426664946361999392570873938259308597954246780047049778513221253374341700033862581451342318512615673561533494740000527549834205731860594645041556576190486634593138802865888384550474624627789848118577394244834945883000448256804969296204100008430531140250597816253174232168517239165149818069629482910905515016055269437153366179412699301639645586601112510923164280263011297262569837585603354062020220791720248530748490264169308566586812363167803209461272292166094891539758691360721511131839426088589305024649262742609508086827773230406402911657403237174923792996226806985411193208091857522759290285871653978215722580109646836206448675938396104687536235059442674586368470849360065441728411421759846337420565070868507671860589318724325786639600113236092589178481118431884426445978248191522288985299138292381749957234037938724012897107686454136108618134535008806801803832026787163839640203769521429190536477979447804117332223018556231568628807046457009821099458791226825538648032177321331587865932250115021043765137760546918301628730691151358772690440146772787626670158093015430684030846603199283674093203013242119676646228022255336825388003309626636007987318776124724084604441874296514760501130175206551664929882492084844767863442354782607706026620328596902655090031122711253629093624598583209316740466872373406877226539103810518315419009493521271286623585200899102986694781514421459641229103883902923548424424583617711165959714900779716470695915937231327575340422268424449770942810192549829857686464108154876439262394828884875800360892519657902088833770279473325848332948310005741069227761537362412117942657370690444835206830285131704266004958603322807377018983112831548903727230344479225493256735418461804774981881190075160256851590291509195841037726830285340326165005340241491036990020127594405201756774300208120806941508787826140797693526842139436467533361339918721881054292036016113437653812804086944619382262948229156710166555124493382085354451300555851784818984316090332009026190359849416968778240689598902038311754781964740710452985949363254202593470221780039833838196667976325076372302700525172220816054498008614451404153308637673428639916377551890158189134356724972883429036515524293049363112187216577829878516024397492468763529329848153806802594535437040611785092462902879484010850130588578750951070084325827926894296209429304566272312249983849794255913746465676149936478037984210487723821115775299500106070831510460800929160645108720326523398574308677049893065734460185125232923205484207095086225088738591571918122085353578525894187282926332224832060144135708363856550585112685527909359912682984651185369922108839479632315217309005844514899325384782676995321182601619496440126130893948117551218516896628472735424823728628235091510512339511141652509794766916997674549821357280986203700511759160920599768920344425524069277316185072191421882205831763201893382275149255730508861665393780018922584601285372407341369683068733131595332960660048581915567644430413552276962045135702172976135501973557365068257101427947448700687102670830145015194745695039705131440712172914856131474035489841407183973176251668775211134915176655984908548686660045908332045617681849019281754331566727197232712307333311361371930555555210511984851473550307570281577384057978630285309809790281923668043012588993893580673998644790437707394530612930797057052809907676321176638899015279945653563820686301216955648146707524285049592925033191197632028907432867828252564439034492851127449170391715627376865396926887488060166209483563306525464562476253303438638642814413775046728322194764812052639502208038329492970477605627913185154468471789659641287251436826447605255481812038456593669453573221811530847979253917069637394973919100328220836854655567279643726098788674133872080486591349523008572472987464967734522862142202795427348392162909944175754226812441621059880800267379054820088316509171812460819682032767280640171697675742989479971629471696553971552465083767557301340062037519070743997796048396185780638408830079695119954951981742978316297130630637631143381359392578298579644223700776159473156892437256174704946278189583381450143076649405517385109609079068429511555282166800451757322982756496598852168973331376017458479972920816585491278854875142967599171454897861548514386734777179387327112752471831515813949587378448689199231338958917222192066168390752015725208797244434205631761102288793551166388660808111973621520865588127514260548867737293086297453850664769163169916276912815439122281193361484768957590322634184302966586496058233687483965163301660725764307773536378452366809066095191967927898896721733837526292043910514710091728459628140358486355570963149959419915868629516039661316291215694591709323163518580870229828232837803961746105145382133927203119722289002111625807902885774663332975138071266773677441962920855251449532757452979965034765196168441878410092882875419528951022787533080428574347423202205316235863152626715558568910683874364821572599571766193067622198090814480752217383819710589736142453426500968632238891625985452700467335914885931280304134693466543153759977028473183532405111092935664047088748056982194307330529288864970178203829009283376157768062267785476110685140559281276040278919417452707246244922876563356894803885354794377681093963921665649133156056654336964343798963195251167187086974038002070913655748690591065968905558999795568264723825873138003343688573443223215969818919733407993840930499511434684545453865883477810129893774044969129222621876280723274146282165289512163681105041585618924611530662028104739507424920856116070578466253751183470381704014845681799959282596187179987965203807906842601636635360620607066154588810333271105760132210756771054808511325117692773738775778918285986048467575356201984008335113952169848322139323275602101645082334252990437392377018931871539765063495811379151315885682414477724656883798512516875674847726278164314907058133878821153337009497744398752888115090347709329955177519722004793283793745759669421547590212700068473652729338115124929830352488739735510358835855605301241588111562604714417743844111795739960598136777925051443641777407307129932243440268133402214215072250353343595056372212720846868501984276001719365945315812126408503765251709134041563957334372782008301506716499687728273802002450221066668113108451785027132924313243501605628823282838776206964419309537101069540362989765757960158556284353364977806113842671429433584904160219056417660745076505289180280283502764967407318280021132149191165906326136675690170431290130495549167026682843614939125470236478645584163223406037447398239199233859076452746900497477925675048494608687621751621521988737864826209131867198102654981799258859925858220960643413460307345467715357523668795560131715007058093399686620173669380504873502325619401650974867856520902669901018843271169157426955247779793754101870777029833217066951809692366092091810621138818802383255177938686920506192184908585678202896601319397200950460716503377397429671123575137513968708220574867856258723486957811804557560545005081788575437476416379949402869599906317636906039288148947098127265910501973238580930193648033223366058872857451505754083637358870844921593820374765865774086046097464499284577996878048712477992646444414161923433190718565180542346448727854335958292498385997387629198426571079279838231752774803546078549226822949977215348223526678136060773198386311729660497819838269247342166674794259326354207563092161393950578031652996016451307690120885522028386089786371959472139623798988900059115171276131886399396784698924540702019714189004505120869292304080925099222070516612339177456823844926803534396989996651298906892312448412901010201155269716429657111990965438531556921865554234190806561502029573781002054770195862024586377919197349026900103326652334880809476129623748185271201440655356417405308475735919920403026236751305736026982751369434198778343311334764958774200430218706676023153424501270374507267201837860275848960519219979940204995459311547878874042493269681872092432211647438797276249852532490356023732790033093372460577448615145660513158521126631308244463808691226552530205300114631917646834034330114763764302064833770985564672090835905535086566171529694706726313034037768157868787218912409474962830952792788308677096044343122483973040060718312249021544208759231128867371680242724662430971227252428575058044849358298057638341621454032876202934630146348789253070771908816164556924615876575674418998117522587289231903864852900977239851755845334657784475961111091510623868768921202075087340841485745841515061121425795604015407019392898013706545964148640552884704174867926151649620551625800129221249288089922142114116421791655749812734813511311547076559175234551459606684109742454872826473330823396156349752394374264579169730436882664645272967866788602156600073013242144387829005163483756215397469281276291944890693815558463758816109819433119598749470236157278550066178984303954376005057492275447578158639755735892070752850033695031031053760948808139700624031118240344797528108313130234017180895270898731165631949118811422070068420641748459454796267320543529308461999963745134038007020683328164917472304684282230904867144884449436615642576592432430261455712993067780286822065041679699567252446883592029809764312388612202674775503321257690477822316353901592556357288088409192187571087223317631336972127447624271647087256723759740056466446229768887674325529210159010168712769963950311786299423727611566998580365178975654599840312842649778651480738576688047097496493530139177492143421403448893825527547524884532994503762572625353834969458882665300798766894136406584906498681851256441439096530714765367159033958504623180819422173255048221635084839631622810216480830069340580116463426906467427084523668603573769819251591031191388366044464184344397264572182674816676219116390052591000586585505000996990356201329581891944275228330011188617099124172729143519856509261301023431810121142894187339476327118827635311329429641742457587750418418941167656718289020510064936246410483623344869763865675004481546677417130653296816234533777090370901845617515482197371336809928495955322966574187309367219463234476128000057445926688332683233794889047869983736037006122413517371672824881836257130245142509191915113620795053500268708573568369302868260633004137449369281737710649722669250230013324327011065997149054953991527315969368301247122950438053223006155083464649461801246528695358829727000934483269102829397538309600506455813275092563234060421593024091610528444779847139594584174829074254454568960319072665727183295362950056894751425169624111211636863226133249661764549937168350847125895726212515769384585494436636259423851338509417533051252337310446430213701132056388096371563984203386512381690941588766449708453104869200599702691549689058317026508997294311990278346723953119385904228587105124235013323220178283250027242636351118408236710597078617220242310278651461797613670265184733911747104602686385365028346309136509938837930381441846463641179695933651197579866690293487087919046794018249486083773690983052738523606354340111308146278468405978855088251422306958558839492465523547323663297567697773394416626361899150149741139962042788618531285781177621498328941361543854274282523266157722741155429841569540903719655055765251807927818664452123273118767589392970160770380169407892463397916806646872605318438561502200546157659432200346649020724712016347473819553041434531659341418561899308540726738486639277193342503203029057603634211195754122295512283098576169057563305822622861607241993378448305447760905262675463179676321770535994804724447863987674804861687124367485306694506788971482980225297145391174558265187059291282247689358723037770397938855966273441438804451778985934197486532452559606657561052124055376553977965476554461082688061399609123536413006871915091467937616064763324212964942647297860309702354188976959505447458365046816166156715847341371779962568360686830371337147457251276988483449242077091236219426444447448748071892646934634159212845983404064907665462949554889175962546517898466519595659630052114758571341413148121546115794028162310146567482609337172004511407232458384584262898166375897314452881113491629541503805532964138878984073773730167946903459265819040408153653125615855548287587342528197398511962909952115277887100421001861284492304376061119782442234727409486875032922488604354710607126170734872234486377593952328832715852521582140279206552286626767007683496827227012456514723803342116817904987969126295713575422662040685590774197932526583656227624546435555835891632978240584855682081394243622104909057027157999597618828963643854897263451559785853532641260355591677713814214493151020658522770088545756475761759233556312595437090972290160775644948372774716428883612037462895841414554079240118995335526325141142188804579671757516080534462492018262669469048521090103452402111264210647941823356882107797812997744254135307914242324402905659692960939843221161331575027466026379496951086359105809637989205363592974364671211339626838300215738058263687555659235910814439412268189475339892558758443791759444371210936115763221156633985041027557485980101120608212359655524092251740946998929464524635349946899372051529085425631999094208737565654666488686945178814314216375899037866688697682028264169952404350907821061089401082061194726242484079124650834065988141759205894670734108482582679246916561512780663945527062014191288210559363863390783283063004683748619643788144479708136369582453342664034032327424872989075668968729277727243760140751274281478198868979340916970142608210527645975539375460975093314929855110669561839441702579617031783548311597917891203803788198903152257215753313624957091505212526905579948797335857434821721723986165856110763157509502631765275246505950199160072055611749732838675324004898670107305264096066010624819460405085183373458797980901107783493482615136517514821009707761540807364645556962959058263836816781867770234992066766930973944987454404586393913074749654408416503563614522193533354208770619499261700951602218108860796201117885899390732481793740790420274962901534220555262990049601217681445067882391027115528643748725756661637022435785156143871386292071176687623991092787571442374472098209096185015439578934329691124350126426576539666509732951225496942788766761774996196022262689058397684159597461020627232439633108572173029293033737286998799921851983713327044974365588091885548997093495824746208477396281278344161968603612531155300420281480566114329865791775787113523312480442206574383891956849889904804835202271842019885197733650727965254385712908729100458093553743110779774907182999700518255593353483922226071000154035738766250858894205132141713425827022667447298993103102843290780496115574464459964024730320475889318278027733240365171115523917564975937183689254099098263499660072977460980326537764954492889899205750851340503285339575439961267007523222320487360559569379926273835242298524470780355102928940511090928004312683021919192529834202269181525994562143497038618360942233758592602764139323099721590689476985069873143379358528493494739635344170827327768233772432512457477439472179864098805517128660631009088342456180878654594458599553165901950303457967245261346830834274997634221994379781219989558470188394182166076392267745380913964788887307493233210047106641755071219236389072055364764041984925591434400643354060532419384124020924380278249166992916819487008384754539937747021299964478461455466328389997306276029278074381800443200533544451875179354842729114066366112725474547296464988273315333938296592384926800255320563864629905857145046405767401168279174059544428835746053900727987932556804224506423704446513664563497978447594242237475697391181075376479690245148244352602062559983856236844318055394074993802431821011572057450408977039766398024629361478565333137355061144089398871838855605743974295059021170013030977305404796620050152100442501116326577274512009100312545815933373760398800427418813887987031188244606296499818296656078149178246673816675205326789505347363032405777881608783231570330461716816571535544859455081192983274716215951094165292189080917490987423099926561302964095866606581252743562012686277595686563802930366893804663747430120458965715340223055502389113369648189413627837972296273578446094438373662341901979893089514471795336783949024945711088784605280420782122243094141711923633688272183890666046463094838184912717424270109078155917180860408239807958426619299879394359099131479045032673480783967726242331061576597257283557327917622846642796142652744442122550874224909739846258484591034152914157127566251266410315010744697075671186319523376188711575017579314479701164185980969266677158927338537978149549822590945053836376492656100775417610711754800630686349264431203831905905677869652763656278011752769235037520378332718051050174832454172475313682842511437318392227130036157451495068123769707621399968959828659393812106687392398760092712645865567780749272649897609929043526605563719239499823526144882346747064921608233868205415803366155463662644478265381149685114125207054719821849755754450964538150742512205316823195234556913369815690152772825349965972330985296653992204796924446366312682030821516661147225194612538175934429067257855310929213205710050150072165448638697540065058882666162978280671481531934482653380309674449348215877688581372646329623797056288953515077198791778210592423903264620294678413034375697455310818283424558304182289075672956032861224673045397086592738865595200030265418935609977646006520818590664936559645117787660610436543483419492962976308947771919806342240221458282368106458017156488987804834218062315503165318319593881063023332885070714801351733050124126437848180280419049020496995764165147171845687692386724250725052586562102978677984212960126419549041737271806493681298907578818546345634918374940132300664992335774900920828707191771213073534363690897689013922427547567416515122537283164298554065743528363062701129440951811091264319749882967249654655285751084311639768474098808562147586018650983077946664672538929234107945436378130214758280960866170506273568825679175578245838997815136009317013612739781853180606995416552322389371575892307258201279730358304691076530770132935111045697041142167529923835858705802223029658240979940206383897883903287310408490946850181644234406463256326912365295990873783872392017915403200693792479431858802167102213361298436426386056337379850099190269590280754334707719031478803188823796515352685466272706598210918221088932964468042661369344350092522347605064879967143485197834670953580865779494018630241184569634673925037796644046682509718357111484224726919846239864737354569044818045833595167161565512161418038305779458801053961698524885536690024732683052831146373196355210028275305451945680449729422226950497650761749727782823834912923914684021684093802965727486285484026721941977049179332916227008512519593270527599646823512200197320190551160529929204830490547107541960766421253138137801296946088113033575448340469175659813032042915754593579779457292484422752125428411209708636535767902884859572436748005949586157719287322203442778829521042095623507919685801049739191821640823438323799548649509456875088043406528619161436456513045902417297836745858970535305946277379263461782995262113672207532608963554697020675863876910507438559143824646674423745635677167244344234428278286235317439626535070781433647856029515238116458157023934436520547372580252301106344387887976137586582422066309860376376646135197482422399793254287484064318370968677210173218308135873743636394468216992222655205891415514124174147960564537306788821083774900464270600031561705015965935598854869832439313477996547312707844268061236181551626603946296800220549294137291660588282625501663770032502275631993733274629408906605221063783230197207947626999653750121785806761965936422745098063813798053916656325251400979110563469452290222208272887253978454931442984336324811977718000717744673910477066091510402229969073860280363610975409383382920225217625342899134095636045298975996844570911106717419973468113092916391689845857377430255736752468516654789902786634423975936876234346664476597389301828833072371518690584578244917814017652383840875905354856635615266055241034098652331541246252855283614339751041553173613472262588455863919573561885026981257518094716319010731702579298810838912914961549336480083343433785683484353359544676156775408381486727390598023877476782712428388122542047663841102755535873245826933111598308948818890422352193431574560480367420922844789121057783688888838829973287147461316928166584842587924644579673348513787554349099366833857086214892211888234819369827309241932736406811073336637883900998686247940505493816470251481080738296393250101277066101622807874774701609694928568758522133756506547398340267839804887271003258705303123365987955253928887434352031077421923581598501053614831838695222664015605249452286914599606575741948804071888348009679885813746026700044561403803470055286493025952697871756397544006577072206418459775488460806406534689538210571500324560405909727462648578558040674300325528137338179044811112668218891192093595805178288684763340013808978288494868785556545806139850153262505476131807414086904766799298367796881561428697016961600104949646450244022227128935953427206013868569905629119856803915742231488052431553175799879475936680348937340425502699924040260509662643081911557130271070951301345875952371111765036563167344500889161016490472882896429391289867122914851561782044590723890582430207231931016907039851978930819679986668586866776363051544835380893343476824731591411314714991862147224309026970912736683711706237959637260408213586463662161588704342722433636415614920610859599688981907467353969951632366315120709586091523576748746727004345772651586287970811188566366902588322474279140392650542228751096065760683606412793601151087071100169427471867969942171965005195255152517376632336067504978963121257870112085510192296763237564664250073322014139025679238618751990554467146590480325103198910820618584518691697075564270091368418664597792079520823233337134273132738918967553029579839975149071404768474224292690016946131557598828609390113269031362890401739563935165770215555882728617648165909900636160713334582886767341088191787132860854795219891132365898582930156545357592109908765459255931203714839098200832675376579894934076174315785333547217377925790049192729149711913363218671701282807881394040895228718292610169275836281554961198942251903128460204596850358806710327818729594135316463252901603423825757987479278476388671043509302056890935149647259515085158031815780547921645828804409364860754252162441022287169107614277336518719802826456501962073218520791975924164548933813760219945435495968499378340424252731289551088824824459904582316129522067467593941170889000118777278165173323201381836467184615884246907315601349524114869633763988821581392095409459646544880575740876087044930571024614141505871452819552796129846199182300181001646206826318904450621909755056140546752343428654237105594864430913574123694956354086615749687068871348743765539692095423590058794470605195378315976372785566432616032087421809647580290369299126350143378531765230969100588354528204461049633437685850284933832882705937477403694359900030821074372852427180294615122293806845887505921102925302265856430809919082068613347871300727015972202267334103423127796323962586040216668526379669047106752219776671334822256337596680642085825944150006291247588755565420237218752530520961209417610566722989021919919568654241797275314745645059276906542585635524494973911551717649560689133348805872166574183028660548678249376436905151561288961374488923338377343329890453472339192732298629361616731878228324772292807903137417908554324177152653242026264508779252318926280810703851957651244372698850820281929115533692254785232082379534283382577144733186493627258046424892022507714620031342974153541759954357512642404487164926127230303972045040694146695989845551207084468416404132937803353419141844844247735774779981836713701847513252226785968268775645761906590945938829008670187735661035630715644689851020466234395538970248201325088951877241070913023504897645286607301009784453642323715194674317851646986984697866059986208995572117166041158131955641847954632618408296562940213251448510318741956066472076060636615166331451129289484497182561416802552708798511422333712356006287360133901166264210350596751463748677007104412873217280230118396691902216001146891429372831594833195194047090807273514490418876052804614432404044780678416754704473149869522962640462938908523898163371463716548114189489600848131120878112748823327588681181445009560349203090995453494590345132459220196343802126032539533821213337842393963881796632911517458112053373226203712323669106561631814108488698295555965837754269556901898554068498118737362552999039115120283806562688625022922527613674534814547168051648701911968651761446355775430142308256375584299244835207827270620301284305218371326052446261173731137820936960595246436621792623438894005735505610268113813149097348674655339026058257423771457654885172644005708930174558206347276316349899777608022893631068868779916102145838888477938044947301137990782261709371265452292375076218842247189236914047136887377415560364706114174207783584001275030037372716618867020137289621535830844210911888661053079628630223644401106966178526850311533737667688879582925749502031784107280545981229158806703249032151162915712564170235823689215576499814524502285228802732744321949588141620390147206308901135471314414705028598241063158742831223025941350604694371372757604331955744156242425203054231257881861189888428519618250421814802766880415234543038385249185486982242993908681892949522417101903104869112471710394821730689512526002453869972972347527283928211337057741567397120002063565650524959872509803810045098097324527926318299063878081286604490553840237032109452881383434275781914710573230667346975978895361549636499467490596134748189408439822583735958590678748264313435763516907188443965839367882106553394849539247110892639726905541015066103638930963073085433708003784509013613540341333489852937364791758035141581705481204730301018577101116120172371234250232075740541801063540081163154253797126803196250283166146363282462023230082554696013231540346411592599102043404897351100345537042568119850620154359269686109383421962290906901524101910213272521515905632103806090161824951846226719448338709345613568893691232964083602126129691820786919046557457932422298609384573774459736682111830341423990689194614535674262562743055045128906702967246840884117884248886068368055599074120785900732179485270677854419830158022864695996536029232789264955862081029118261596923396278849153150807151607963715941695374704426926035820733183564562804100309120960282098076564573230045121893572084190730673312272569345739086209507219617407581754874148632427690666378519641672069420620920489173048985976475922272249213931479278205028794019536838360987065108937618369089370211890740473532905863434446331661638430702329047650548573482706351663210654397348182012644620489601092938253003041376308944027573208353681834227950272780261080253607585964580353859506318588236811128139548269713441089008984418626529510519017928097894419971375686280267271689955203366456872247076569487971455972003109686310663220665891445288937626785651079667029468300740819592111000487642263484733165612855142945189639746914160511373757070078945195329699192791791635338968098038485488015699264841440025784361367649969626267714563043339220390748785383973992585522561185854725728216238410442255189326731478389336292879696427945858256126977716957369445554399463875080976624786690409440469856753720573620080321699083416587463686993741288982738455640267476184911490379565622659642722742823300205384132196646679615906821847670949386921144091540396763157200146905201021266440526957883830546926444583258623502283843618274990219508835222868079788552671602952949129034079928741763835895106409562416094010052280367232085332907759391458191749840759606029608714474941679086886981902639331376216167204103149165186546318571247438754488067275448772931497011279972349800965675632424374087775888904281257540800617671010816563522320404760858755727828065028452001648888083937031950848091647789466919596784173291248557387424346876615159357069688954750741455839544062731826655789655327703010380548893779688501717201634059938362281180073987398176341402048126133390269722825006350381155856224254428138477581663428343046989156257355506853184728029823964557687819880886737800676388313717702733493248589520332187333510650676226428881470949937439971066418848878408919827170769730635888534014398271626354023769120955272820438727535615106118228970659256480032422127603172568921476658895344641214916605234504625344544302591825034313507486097441874655905909114203479475826447456799762932237241472364535459634934511990853700099332271992767739978912544085661053234380531220072437036332037758899220153468207954179082618954829447059106996417880295866218643586314928989123064369033112586392247243269994530271526626336185176438014033067379480061249773421924580208815661421772272741150347286571201948070357404418591330288992579355856567942522623383211628948531181607328841063104810705006164386985012766373914991027394267789477879431002121479477843086788530838215942487558539532675484309050330946518837650757385966404431590705880028936895453040013100701943403511966603482919610047034100921309369724391960954509652740816522235285570043013896507862201341691108991959518278843315231533682550880610584777758837173163371996778927742643970875269586085500010900838323225812222503496614016484952389755035595526548492278436050017755606870909475397338772092612429762852224178504327431055643700887827344950527918148115384156436436414982444123592682229165324272852154600091237094542561546888062489543102777121823468326900133488595894304650423926981411979923594964202000891258431976538529070124985861436473977968179168556470409838990670368393934708407827778435092059093058779545971846975997168941606265559160526122078747365560695401595325715007891839986461739209652188472623463985619012911147627165146696213421235456242794094638523759142835637584500207526225312448273682276050545564034979674619568111607933437393290299033409650141974043731977308738150242205110046322573763229853617809959651418795013085262249112795864721884513456392267623822029741542736663982960304111765862519907411892295361526739118119656665978747245343442366831430490332839726638089806373839252263467444589069674482405940372899875000814207155135731293434959560365614471249692457156959497990977839633406397090249765353504048548171952928263165305411961901135272519033561017704290925849975893443230710510828697349326403441069168871765476152037087853189570489171134306337050693236760984407219020730213597176992665392014116092742453193181172354036737785089026021668743567612623481216072507808068014893758244740220445492851282648087036191762538960939974116356131657283486832134545714562898700420349968800977399614369020928203727504882188076580479384315029506386653390292137416327401266376343911563430895802164202257554795029994923520901847683765925316265430658422204707361233051129382988836350250756718299532344224263655868136173131418450206231444615752538799820616363916731931401800954103621367730416122860392778330290799358426886496728537704441666402068839931656711752393377402793339529550175043009388777921986713188592784814878017778576607474852048260842048780328838376822120930574397840492511788436528178727102144639955884875724544650383423079147933449449606228013134125845867093124325452277542710098737687906634842506832660976898122189593794206551409964553092694584413073431067793903466589849169423568395708440796319182024588440524801402389063469722016483985584499800812706771738648224601881556615904054279894494535855545176314249846266133939603412375068913312286168480124904526494652071070446632469570497861551874318389228133582653561361297023193761967966878729863307567721837957540347722066317069714406895136036029145872764061303150598901678177028784746985326486535993806679280539676253009823435167642265659222368115973923567100697928013434297014266046512993323532480784088752609086751049257734221394875091836528783723078065602823396502121315514580676040337025722783163562750791060419638398685643376680339643012427549162086891811188129652557691173198741220815680634076656336879971948299767681241749535959626404177339140326342227005755563851615400883346582341945413986812983646719625433980767088321918285903321640032271314205355529887908074753295033493624630959593203570945346123705341274831901252116002523156002968718326287294276165607150015970231152448608127732483819026297658238976635586125589773887678457996915466603404316349947877492152735956493825598404214962556166920916053051116423968864707002868843891586649339073044543133593985055019480513770490747580877063067840757118193726757749205451742481961873322245237360122150006523407553260294839732476218046340867933066510917422966575208551457357753414443455102342932226538022961451090831049920114840023873497847553811735242627894337772504713394719301269044581687665204753324695225631588644095457485297577862555957688803625783088432818704263355579623526249659725082563980996941317886904710999569448781492422328328104970868422279179206054641665449224351221209640434493930368285518709788052634716616360767800178948004676273132636180969988246961371561366093014944466284010826203526760131382315365742185269928652374041447934161874302544127597716695646581403939336069431827085879756062440437734680277613025943679466259059549568895085989842885574072963057596973145614014602389013620752004982309534240900255083285881944365584287916296964192193987717814887689383404899098915911183269587072304891487389220952043209804108028981861996435938210583351873036168865582991198028680412215588607596388589854641411406021680950172272333047609951470531530368774994849368586228176774023226333940491131343022073817457046523237753738046264500225957985020838700278065271239149599850902993285312416363961034881044841506181753377165337410920450816241077536933627014553897484908160533415020982076586041340174588638088788567718243229363078501656306884588550678133376470266761072942270269302777182297975677258424679653027595266753767415342158817618023510037447738261965856372676856987083849523725411002641893443034380066121785849573525578220891892645441336113929592623325871423786839158136682394845655352955318995538872204614338560353217474053015025415720724821106895692589623471404620680930967002450083031013068914509383377686229507905672542439377594892389547950115019226805559873179573457731916170506629981216728738834666036242469782506476258673364120235179732143873834081452020108209460898804021934001310884728870564554964525215836035885569779584826841414514366352802621957406755061311252313217219052990799924685444061286573579262810518120898812326551924786534253573510339632139826467792114553062597121397687794958369466615859035298871308678459380373986037927873164874201269231155804502113865979848053856735227015490045640771010164395893322363923969627866601469201647477110915135620019115015770992392262830731919618853849977877979400548899493837711757853818764874756332218111508901047779004190145438279693459283757095136049991036808269817189503345186142291396705462174105645080808326899338313021524358455596077735696187635293190426702301375340807272578537482672989130163826450730511636815603015501074242065532317181067366161623401847424607132275879141171279979803967110975257039091574138914026624343943644983598922927185841434892465864035364656575036923255991729061956808206032754613850893291123208227815423160170990185823469649185238567365845432279110497621724371170356159487827514897611420111824419227343585129665270329522448367316213284784258008175426790523673308076162246470081408988059073571568679650528937176874771826714928952506585715032556691191128795977503028052379242857844212472236274952968646267988597074538279483453729830333898636988529885206692325037472793842636322155822756730349368406444465059366343018813349432262027384334803372314567319425065983462350266681443580102386975734868547640420581828131712537816056929630901535625764986610652455702428719702957201698908665827124961743369782546572280540238538766177544381907541281307071339684647370789814046586650799257345561229016037920422371999074500397645880711176941606519419822382399039583837910465100117585794945670003177125515732982067382588861400974734999040576161996817966005883474477205017091067264622940972948756500690705651657816459555767326569280657760791602825848283800298834437495604554772943657405540612317959132909830813246291269241905664090191348066773485661910510486270178863659312520282427031028331531232440424124737167214933170136686364013392836625047216126145454959668776645028312273219059268118379504759353486949927071865259381876382910833864488072704148241774028787085606914135392602266329951186592204368045815687268441409570015746362768116454512231736364477493867429527470981844388690898496501798849076559251381236973185215833917459137343839320234977345033241624169876700497904077739914254209813859059935295055457455769873221404815822456731477900107626243787823938073172705438576777742390774479245093837998505467055540494918422670763836576038200888140209001671731209234062902645624657376609490982118706961869425241610863264036027790781248031121250719528328593663503784388365738494711498371298982620030742186363425072196906944790348698273517490672799437835219645455482846971900034101982914042495200409093442109572659116111216151470753156013016590307911589943360812356592049380389496940729741074668160911785309038217761431644918215961067489793494102100364856987114977259979780873454483424987885874919466107282561123462939229267372121746632323587296208359133515632227586137405472653420165958352611376180493775176300505067504999634887788674729633880728383740026197175233512150748507924231605252546372455718699933341593400507175769753616694787083279033616900921178792443960825576922859451528506122250484850134634817441814137672001397383758507420451803737747782336937629362082453346534999336471540001146997450303664748807981364601542409221465787514026715707420550293271831331390784412484512767286231283236454549017123817643235659989036263414234317140424657278522316093051642278628745528828038157848835926932958708614974107680302633118942532118520104127275949645851021696410145372908748041729916997898772574167652601193493834012608025577211390892594930018929892446821568283263478427841078002509682749037787291188761970367877619043318521990349643485790862736434009940964754750352556576346627589037311032497296655573164026175567406019734583234430977065934653184610749323784419037801935998957283176199480341194162771914699921364333497137953878186434826481498557712476620266886426808862557606938369634096531136681212154605635599469249990283072673269496357869052662198261439440049638540097796404424260740184338013917445385860401468521899490986080331340214324770356265913768020784982588758033962334800402052980957719608656090874875223865157285832582290956223509064771733961855403814206665828357404637067440488318524920892542054920130205948839963771528947933708270058714944102584340872380260950749546545045484616482503943233777160152556067009631272560156248118108573222885488215663471802983396344595672321203558264367172522928450013203865162450300214088472667400946776326227766423816142275921407865641630304970799166935029771763394738302651154591488598927934538372870123826406699571398921197482030594365816672290153779195395590828061372267117183504413650093093532874082944220406740713180684032568873045001947008460411108458692676429039747982864655273304947517132228448018396085138257253794103944010060623811928010967149086848910948589689109627122207145681062511662361495008751254192436052382689000036686964703629070086361755924028615054942711275328628154832495252549565595450203878429073126986482739479924254837814034906367022419827994884550625701734877507411719916667398681109888861894439989826518259767187127644256643828238081631837638934044396419418624465376166523602952293471893453766743152480018759721312710133759543924497089223665429507791078868649214036422392553251079896316185596356215550421210513707627926245743368499951592244460815209453302269166184142598207032128600973470064982815008085626007504740518381793954808223904939423253583471229899521955914025296699077799849051332017773356467952223283180646689200469990855835185760294229794891262574983574217304761446396856429884837894749657643051364220490931965942656303490852185240192715585006095953641811918158534474594407194618280210553263722532713397942246105651430354915988890501801992693253569063920476925997903993892687869391541290572737261785979298613319549223576302111142010478196705901132522666691940006067985878024300279640234722647107025664394799286574884975494168846603691570518055511460757589130475725806565554994937933543460806968561131164704295712988887078330965738316571876352393309280427479710067403114189161720215335954269766578014065609316419588913216469956019671016036344535055229493402860453125868953842230328906676528971033712058744452087032534420122119663725635822289464510266025189357278056153895568805873050846698463358469546861391962007757376500214776446724531676101482366598287167670446848155988181431617412293692737261556363750204320344548168807981180036351709805369722171994689665446916618313563733557408553259804911053639206795201825858285014330093931362132275743239700158616149896867723847914839039322007174162331807300317531212494756520423635406422576630152437800752334545736138407152216885666754160536160800560936296867346125781354931803471394774172321084559731994366170705282259409859198794725505218505462611569213889353247323161503387739518561462942214076588841365878472826939343988472923452792546393677213145111488377402890200583309399247311139335524546323900498376601468413150126199113898661492927680663312642903790072984921095739054980311747172047299112674793286548854417686564182447589345010628474216788448365393011227246503711358378763974013227211815174951866891304778406369164389421909356173579207740882399104151875609419975013956096098400301389924211971967413043623513492178761290278829244349791681676776992810272568207856536211021212551413251626742202807967896401965990415775440208969047600968466821523887788357487226191262826294100031706980050356363081502698088777414919264860628736897195059021065637317182716180580949050119560198141993469145584980096134205385292784455495320534872297130688260982274249348768434845166507221347674574416276998514373755390595042543778778282845916756753197222640732135956264172016512940746515791492229433131896507933343385814008853141649575924858194202263433647859893729042139948398592114240550681208759811587840723465362630340035609029421805917609430536675170002326366977445988472887872920680769103462352685228934653929733746671287724985667278363275591524299063937471594579267104754480224643687188391681433388831822598660320093935552623373769552110984670730987009091885683904031016792380099073747972627208991710819639217109699463601120406671708483148956674259641209494346411508311430708366695677128719237238498259982482966393093576344917506127675067226873807858996394013344726659823219905026482316873793938239821299929710842934062329141185030138116171170610706287535168774931844348548965058994802855589725987305509026188227679807483983862446819806950263976044345259848824367066292310605185747958961156595679602228329048506281415568970314098110219445262054307606903718461542595246374332102376336816516589065171799044564506454124900718099335555299249560039064369052839152386702830727821133646859312110524272946110809329951124542052114084960013028761414322880168638983610239890430198518845749352141178391582073519142069051476622551921484478834373291548090662907307444551940845335428754190619679201436029988925542950786975130955846095778113092075916444128848286426924021299395862216081170487095084265777240591012950301669244524726785218701820384144205890035970115707284043656702660447985585625386455457376485792521205950062382240316925302037053804232071180412889479241508332308093565427347085607274473252555971785059312937870628543131528305205889713613400937934883157624928405065194111702044534878564441586844126814475461120181484761836640073151479503187038175493542965193490434147166024982880805001119800058107998485740768226233702391961564737101922102578312068223323510842074020844626261796090886326495017377272480405302955206966550976272713019779288441598217761385941206788518497784268265295241344895164663116017066778348953422690707087350609383859947391140355003224636591770027199986199496084965850961179226162419450737433400653369186737842975219632249977899427702154936495080468834717602604673826597770948303561071560913985494634358732547631581216825767544869559392837150354188617745711585121329521530212478907069703624288909976506531865135780847902934128369788285126099973260415970604470091302053327028332405113395208256298083736278658650527511548307716642779138690653082847516108215370973547269059686112327166279283846532224686866640357443627447792862113591937294491363315197305420396336855509475428334964292121418678975627642997692633417497526871767453128494014148149077328075092357836136845865374927903937036426577253885983661686544148099793077667966707720172668645901183442775576238147991262574367993053127995050017586867164547374795735309927991743661772295513073328990759236126786829025670418460458169891286108498239135584308698090118414723722217135821960689388969535654061692165555793517697925097404577741990120935163741541168531632767721817677028945837965349254011662020530258973845813396533472818155547817747593236019903293572956314340787489474728079790631921304901680688370639152156287605449229240383931050476207367575111397756818521568795879705555206852883576353694151032320749835076347542814432339598062761925571762302008407313617686012943850234828127170157116585530379250539854752606976750628696731223506587682993587169809533928301681454699331178144109107883385634204972029134166980085804847915988684510749693697035461949831706563671287147653006250173547136015389547421210433970366577033355008783728760034342911882828338464247157434109148312213236646851499638676679569600943926540412894613622532764044491836711214414547025717613647379657932115694757298333138143690804543481723678909765858249508020668817871986509601980966067075207299878267355425928124078476669914251200112822619356806161140288572010849008973685192765920056427653763179675251778644686454666310540526141789209956210009490055915102628315598940573409415784773009060513210344408614440982541563299749827885294999899665181485812114394694853694258981462578393897892583685161475117535624283289051268245796607451926396322932442179051566788462349469028314046502324108969053866728398584828596775986125981884570220164216443845095467438162775579687201714696760273464423328375962483750049822293611165344179526622273819039927693404124890555650806058297860828913952123610312751438218938472227490748243666635086807614339878807842574690544841210986770599442440360393074599173331005625644570386247913114097066231926081142435562717435266830708406354864339393910108734234775485044470807567921804278044996467120264502292673996591051459333572504077384886696637148299576347352806404961832389246062226104538220540376688095628731746636526313407775115501539725415099699274604316623223538383810379696561281638785009817479399906218407162297146076837347517193014605301803311882545281799668601400548004718040074973602027813123724794051329129383960539135040457589398806700860775689533356172308923356218384687606297090478338655774694912421413143673229525415090472741503015777103264726915541257329076839132641039206504141785118042338986896150693090708383078628127119376225136642056821542360816030835507461757660251100123840589668764229434327308263567169994000566026698152624337822241175742806382842121764684998614717642654801477410833865664370095135724572141597556857286433235557508454262108224225536629938766371466068980945304699885414487749982763895845736885625168972572221446764616067974987713446904751753070703245819550910864111829943376740420260778153567213618167817665882222886548026425707630955895904794786304979095256851808339011010551999079775038638479277156272382492164275334417312219802914091286039721282502343658972746325151556836609458644444633900795764797607942766959043045922613678189912384512629589244439235786157407051488936351983871388385408902640884740400590289297259526277850507414033934427363584121218719509881795306097814168869366402470200565385937081594211996768364380420314255240533448730219409528702543176063350912855221175683505969109749019222424739559967056488156469316308672476133928128122577996332085145799747942408123432741057973691074677573831931529261429012383394377997948119617777650889707695326356568889151082803540562222604199515863497624228370977019173464338587072848510532177576797586628766877483549159061871900626288350884947636299631122478428782807116258319907470131786988984531600771465839982311120890714806974106995894470567369922056925228971976185483416342329814757862806778939776605854552990495140708949552125857278304115300248978462246346202273424097736247757406612684393006274886249416206172771498088014073265908831894540739761507306518801651251556317984020534766380505350632416453399126241432797828867095220864700084213729094631098086364689276502470813303862203091599827547997631118047695101889205920881389963128946410709461193679538496497777644701605946494595481296530747904941308480073085141435450777873082329872958342913930667584682026202679441608278715895362654504055539833891327193935569294433998908109141139983357771582040799496604593506851030322433502182944240556220448304754025072195914005305399091932684858640824009084790731051315146578430344587821702220869854304080872185778915708892499519070489503112637751118367829933416201458739792054626660065691508517192433912121162334018710094310558955981661865164644734018607856774512255838456676202638753561600202407474031108224849518421357289534348413179129130097818187513568433870441826263423934082141672560781142646368879476041295865561534080793739004123558793673319509671208486825374175112516318303748377971322144352588200270929127092669811523953741278753213296577650524993948307108681164903968538049498672821101661895625463139712486648420714010760489012796091383878122172682174071105388268095569044609616843280322139049486499757179341383954326770834537119706869401536961280230140357805994189170993900070741098760432744121600867643190463236545323394630532923322850362751796026378966213747853106429935472921903043746971713710398073337742667269735816572723239721981265700468836162208954039704412908923893866054592344825871881853130784652859825883155060125638989727872947005728952527529863352053939444531424714548162823199955536577180681814778925109956313606274531057576173998436822552045854630429203302233275095972121666040864856564438840627323410039573160949987292190597258330025113530695922859915175106028542533157823468291853868572886574652571900290549772425786693448966897190993134293940675367618761375679128366981601533367910135048695851017422218229257832586559710119100290778704484061069702266405035774320082914536809912463501010072032475411818212196810121277809739015688192985159270239719055593769051650507205194308830434535802634898931864127729287327728005412872917559503812562430599505609822419319338748842434671877101683083713957037234325636539016230107663867116823894755148730083019593632256903516515404096180492583200765361047385483993333471954131471246391391637520181995527922611040469095864686733841172783622381129091466494476985421948793736835457723015565823258439678133709069610931760680094865091319926233987526171285146182079135405716801121746594676385839802477676246857774918005759698869602133002932844108876151267205505931827773314540159384350585949031260324797491899043766175732402279904659342291878982181417372598277682352304188874088151715818935744212617256328974350505244929142260581029134095693402882138867875105287883795058667112394538881531660956002118177145110491277495023922380008099866877066084760201680697444518622063363612773845438076305419682044145258617909900311609884617011194235070430197944860588304214236676702230010638065017453148998871754508622446435136348797798473658318792437714205274499174184878678349321711152787574713650854778860106679921267806579160100384044465495134237248290494363681361254382534768381643393714193956970532516430841794694845874669861423139681022029783103401158377814003254554223983831533954169074680992901183680687219162976358402482860676723745650706744503919447358451741717650372895016321073951955944050845531475661453296501542102099207761471253539332657839588903227348211238978891685375053380055375774525942970669512559734832677155984901396202401153662716194291788374646409561577100207098752786621291891873199050567367221043243519777391320409543197701589962642476474083972422392734409304646152609985233054289866039468547404272941798562282677693862584733902219033618278882898986341838269907633752769291560675662643709262509619731924086683654423253914594006284322036931056167260225818008409864173597521529332861048632620305262263617047311463088932396124528179126814153806729866373069008186306480701129360049505635243154091336337363509309087240571148950876520085296718518861858370723168214563635095723155179185338538928595345039016608875093967786008953691857131021406120418792185294316064087410728795385925375207995622676563989471514886977472457419748233581139547994192199141180152035775723229011570806805416791554924778159868075698998992487911843246047885579692918200579304271408964520749927687705278045594329422719536589076539705732126510186510073330601341460878679836319009570311648534611862600479779785457326709408905937971526292748893318429449880636563296769614966840937909341006236551896758236815977914048602675726601276277410837053638610768119720685871114108804159915964664813463538588196166220871053660799146111947515919708487555432018581929989030747262330837993970310947265896617039253473347469950446475629559114517973258591917699728818044059222160594852290600485819926346861187304000278605709700338587009440955682147817414813572353493879868603147148904776516042941851983237570750710780761878122950801459852282436553546559386058774857127801216206852301293337505651084231860380907048320984864666315052211087179307022126237933689902154893604301214189358029712671302702561482555734415207349557432194677379046355802969838471278287464876960394349654745897118297498404636929423909029186919440180426121197362636001020188302859042646193296123079649621615243567872885255192290113705466101521962283799675250091447165618515705320621367033439770098520515501812019186651761672681349306498262739517311922025428113338083252223976994793385338055206081327498295203326161705368567067363116684968232687593135702145021975713389039375274796488698492232061138751333567487640080969121878898715847655396910915505565313417275907119991915352363487339627786899314599508939958116618498989723575641622553687315529208543833098580873137718193232637043590680890008745596658922516891034323075790216970043016346112330863190961768554352888109415201208716396228414347025924790731987990287969955945966206036252767849977061383345198489919501949561595550890675231301635906136678657446652905401958251206597472445026187097090754880760773019747523546577955590720809343683122184869275295309358410118538283680803660076130409018733012254597765006817813830041303925796363329236080821610391531453790050750194979051130125781949934036105148390573438653380658300212328428266122325331186941247032745414030922109547395081662349600242543568420816480334268879543365720729475004258061160541447828466512027554733707134262720933301880473053564403473610698820605027039726162588810004812137402908299875093134442099694931548862915668486924941624142715603120476249305000458052567099675892365874825897208528873385740271497013845900419189608185568976870707148285891770294615397328829020591193417984609433278001114357830534341203751796988310173114674337613507236814368215677264116819859322623638657740640450103194387221029233804208298753474439327091962072529027327399185093405252779905268910148652287378718577218276601527807048163302843571175477098191266986953641425227069672596900548233820313100013589599897569338138019179640570267187160399694539681377597991799819262116285565581996664595418068015692826401010061332089673761800464791139602307680815016886573539424463253786277636735678398010444479855210793038466579187940149082362511113775435879335331473979547510655692078338662341505189564734327827856576572405317119407074183208744083930077407114131041350741340253579156326079538429396745446964161046706004921267470735663154306899990886397432321273909631580650490798113968796999257208822608548064829459484569618010119858178098952770104520797729532577776407275893684137498247485916472949667095802505321386387852862971009251971896126847318002219338195397542570083523590744973654173841193039293868287666166921668441662924220760915793103202273672866035437913570998184570230282811209253965754521240607971115623121825895381972170526570215019859827717742783847528633124457588605809681592902842558493810036743638302249152553520921952857754471848011855057076256631481928679784512885084130638982992539687810954766511409771046944320898570098678083817409931961161985571059378478652059943771221802657608807569120104395388820827018488305756620246492394760231659106244047659453762336736834128830741883871723302358099045913520498675014960605707257270298933634961052432482848907582303646407218319790057121724934491423234811000614279984088540052619397137194778395287918934408159039051817924576755818021781886507543981490436151806009606485147308168598765698703832963859139562642203914054776764146085017458668735391449045907289870462833884337613893226521271234257308135187236728797493753182297549664257100190579640721996503005914698505605831187352945267004339049254632189661909866881951272825230732660944315534290072753522694325997597257543892578224611933133340210013768145774846347244988383463659975968857449854355757935079285127137698535229885575050365713361230761766262336963166139558106589483399097072902751117442083977750435189647496865010585943415763281613086087028747792016028178055162959519567087751341062346833959167507169260653165984853287892221380891298033211081683601279639420801558839264761276544190715563286308551088310523009093388110234601538289276902258793122984588518817618561894776619268285377817349959652096369310518229820053150827909939922033641736327564683107864261666070552523130300896196831207112961904851962977127183388562305116767472733907612818843907335199629537197615657566895422714765546744621436114877094828792500012639578171464115003457246247639350808819151444951125586475102822239855589828782847952941369327197163128118058708075736720329235379946591314628503656881649697609071776042297265841721451331648068464862696869889847124044738348181460387850692009534512740567187935162288775713909649882665592232073906990808720499401747563593964367578243241243994608281608029860708904990314310852814651015298968964877218235464474322028759332232285513411085391262871529477574565543835603011186931693743630380844010041960177053494493174842307718971470669917790399634147443369341628808869546208057697809325516912944388622228269630668457661669663676499159851124710475026622451043523443679985908610910559960691789614360524620571969780326141565014539843106561212245292239318123155756842919013548458251505863104318857251286059592405596576270397962047162450795202813054037091227815218468187005872567881962856319309134427407157884898285781929766537903746191750855642178537824961546428205007535630380761848706692995901208894577680615902320411839634654222117034755796076383203142099823232729630648486118905758023450667976556351737157171931454567622605952504311961525861549051733226254346139524812346310461972175389666777354641294164032462557717007548676511337744522684120533452049789831213138255813888800411837170787981788173831506333592593639675032444317089888105874942719637191573711307410351461559978254904136883195798573864962572474307645653735477913975265603440129514743699649042345963205244695154859249586616972243262340460212885470799281312789730593891230332783901468421818582970142392411037386340724451600741619499701482089396379076828831842971423276776076134240422217391355403225089784371076970282254458786071081536986316518462197612123046977538934053203665119749137513456356236408612583017065347282896594956189746907476974981671634318050406474193677134505773962479800874012164546588159517610993631161777913388991208675820458929409891204099702107996177039616862210610191342422850073200199927467320976762811711820038102436040714889419630422546702633815372330474388314910717778616335329915385408507387429629880385598202227510102222512202038266146922489032070945325239763291969359682697318262565855371488500640179923812349863160431773547605947631407265852457744072994442192009969760362744994221626748541280457844518447368283627020954383461096606884328170209712770161576348643702275105379028508599297577407229622662332639608928818109947004916995065053387167715418378362854306054598865019522522568418372414564542919352597892278273331886962033868993388035606781641854644778467586591095539103154611304359415246195723717410679650809874310104624389836624997777809578636472880359695586604381425336909235981811785980130479666593005534092952058957378306656166389791480598765226047531989512570913619119702528347698044344918352312060541458199754829135243033774015100026210084771217279210959860105373170563336480515006744865633809401923301749264621203937752490928612006107564918104312173816786527281410786748539759540329647193300370821944821476292224921281218561503370913658793280285793231367407041637691305477362482765882806228183565041275448434250539971529523522399627720128931614771327856906310634327968592993686168426683943452211202415834647568825705405966410892490580613855970121203447992166952742140259837621237901378728999582292997730464403913784542207713422127500539963619315171664345844977963470472638336054788434050259180987065612316033832999717864149901647299920763330175748897251666649959394570378901435033958071235302218826738940044102644417218207450670894058037725006678980056781029759679916717130481695751825111855917844340132366590172334241759954563875641658458769968038206565786581715681066703431286965739649049235865855732007383158223349699543731673381298633564117304287842737236040011746833402261856886789711113027450535195445158035557654239919254475098373712201915536243517313709834281427373348234090271781013639984073446164108049836486926419071813856242568282947655615297227832238191138373390819100887728973839040134568395338321938250481843978852882831602129938730230186784963765147799485340248509338773538030467545097423976877350945701355094983233152984019933387839632423581407207167598004958151006062401116427308668094713255754306179148264795826036220611496980705737171689088848699158851517375729651170682218286158763236307338137287255691961526067573497021920744986515257739429721762165210209117831612334181801175317377101951087993421099292642864804756685942305227866125115959050247172491682088946312455051608482003273942495505341932048275323206963088572126433046169304735212087818689580994367343933207347911795710190333166327731047229023098332673764084056899892671883680306511881320688795597657395044157442341151360943708653669003264663289926348900360439265011674315178642683708457458214303511880736040188816548165198745264291751245057699503349189456085739574062069605299407416410593036831076536621656819440637219511208321122281475585743335077418042940420107229619451441649420918051658105899617913202209925332919191853937610368735658059154683094942436454229727776621599129982976901842665238099240856489707082345445698954357272197578475238953468753887482278781753392125451280738365862839362530956337938532771177038838070988091090329373691163936379978236573382197885159003038635691832865010449511621600951039639734988787827383651043689752636050203308064769978681154467533305360897226363178679773906930444155962494784140034570133502962508811079793526803203111829899525538417819740468358406334724498895533567030519993739241202636221415059939067313674182190820267473871577217758240537832821004122746066442442706901408620613497766948665532041357946201465416811133443304407456519881981480483161907603539723951329480356140405817980981246772847876845588026524662733595335189267014932847255738729618374932923880779218020978959366660682721416145115207542299089634939469766156638151942225809521469396277484485459265422420119522180972729697021513059809577413843740120743743431414194564207375850030415936507982011848095649538005944511402898220006956877440366873352309896271538225738423803478595440271606597235074636095757877470349063540603144610171312461033046391650923490679010860279222542044621244067049155300493071786575691394620358018296491822546650675881000378053366443458803833013971793205145335841494128347709277502666712563162252094279707422010142615246639438658902069126153491419600221246463488056332669570252673982630531606629563173486504797427476749771651986881260708594050477913424403448970714153987297201650449764660659501639605516134176420061203710007254154465699834706434847206482042291333588816875493669977378555614414178583010138953229881071511326508972993584382743048920846612385457363798987861678120750111158794884621887555235506199599467429155950158583952690553277461843954108000061900004305720880318796423521871441635894521741968042866167551451242315185008560524897303910453838852978471606122198914587866355568526141119064353515878644488101384750744236616208733687798531501312173246948968393226122951504464604471658134320724938146833826892729670212365778219039161253494939800404071813717977531732205126814296850009657417374441790253260184288497828674531302015210373158442697983444543652680226831105502027454692819286421138947716178358059094426131529636550218652794316257642402460419661816700624114516503827002155275977619792190109178315980682577225182581057858807911867056761622228212215628144200401019087745318577456597130206270042058547784143055159396604831251839659307767732967866969913532034202060309960246063441299774561882342647493844517634160644153767127512234046261607216431508047928137138040780889840227657324428878722742853913131024357599510691474443163089407957789866877589905268411233701130742130071607754988229465413330832871117476935871009842301631623451751337644442950247823781624202405391338945409780988812498080244211314301664186291559155050523330667180734262300594723087528288982262947712265586841834737902196706784490050628265435765078190025597063413033150442258976832069099819142244931940503475577520526756484191547642021979946158055424579222324856720030628325249246111731015574832547603019671832348006062234115566084765610527222939726258353177430494530299309364808589864149145044797381109575913484159016902639777258194061344394898883037009445038310064778517840926138193668620760125467610679845599432459339697533222626386558844872928255938867428212060267959710048950557704393383090597506239438938726738655195164451289803688024967041199144872992081396769902125513244485679689113959529705126443559883145328131888673049395432087502460524230317882905998644825065365686211996040410633455587855770777928865182963975528204037097299452581756993444054704776820345091456479176395563670111209490663281099224573772701679892394397928513968114306102713746350099716349238284037200456596861946468761754896073968634213384253557777060238111301925634355663053429769474341876040580407942889270504115654769650917316285059247732283258563485183871105508114919295131732433476157142604131151609682269624711844275634237862757015719435295535302665084906263384371121552482798798062160474468743099213303949113731727047364600896164640168372064320649876280803433715948472983539763392747494894877507527505651491600792652714691442001952259101458982290599357708456484347206452727726597748042809104143375490823372276065138480545633090302844069905622869315479998801942217712635882922482765280196357731919165916032411724654349883816159664877146174229213278724144867394450583138939290182581063658643546453816590768537817826421112755195788240052707535096194178702568499220038947158754420727122399823334946672696605917975170337133368693246201868804575973820101931392837699547522295723310083369091451802068852685474155191430448537682927742431130147515181873002498095467555235558892630204676058689636222872428630130684537699574788099499330130711724562069719686540891085726977802697243800571565261490766004953157874160718372611789020213686452876021885164629335043881235888892070975789987249892043701823519382121419799931142099013236332974401107030644971782714816697716278096581805371344587313013888192100482029663936513386957860534319514543279146685192026770924172416419499691768464852938199350409955943220150152779717215234913379220627785786224012276308492241781653951652515187383133150798326627815779985105428333015742400374840056173110235511643533624678310622051154261241371780990676067473396188116886689501062778274702136396084262340407653525342971698077858939967275358469731130930071995341081311927899489487039027290072533440235303391142787805649971741424360465603827324301586116482305024413039088274858200104475763318858091640820737606395861948917991320687085599676844822831377854718432256283877448886566328986474455584997686029424341297291562005287174442848357689289334558347711030500387741756361974981890480410155627863138160946624812740036998938054511552388334277899399203904145669967101706444356452384533069567949264152592357324263291652013420293954885056677361018926176577812895215256784674046916896988367236405907686599381100067390195465555372181823626513278723368406119266068200898834238173173556323758480361677508331169862814363503462606987246454457641849730416328802211720915562253084693630868211510377011060800178028503548732911127591434860845056718946636906650215371632630179763586206156173164650059701674927557801292082305654465679977954456846083346794979023590838503279727095984740154157108137962154000533287194310547798520443689025614623812550114045363504765296728546936125740910867497681742119396243500875112375401828039244648703771743502403602684454798338319024345838204766790812927486394876814894561077928514902430682385467745185908223869723203967366364819527849986564690963233780704365221031503499985470518943449681053701712060014805623086350307042790524884898362224310051157739823599738148747806311303038439724604038545992043766094038529748959862743084282843752309113769884721113476119613591785606977224799212222931422472382556645960905616474257170696397289151406365371814205267984736421450426867559952925836487274772709072046076476520508500479580071857676099799250968402817716370211344441271994317234737278444587070418812843375076981201607394772032077043285478226202156438674061706358203430409138718508447087677907421165436065206857738107176746047749810627322603284687537453112907406414491669732876289340952933352855116895295857392468889571084422310488393102623052079177498579357950478673442597643483986482154711621268731003291259293875525260377254277132253114343167040705800212579704010640099508662516155761057325307220151463132057104753362722047668017864030573703537114109107935859743699557251248584668604594846642055655028411353525646046635462429590661631406584007499744704450554106939694488654020370617810270193324334642805521749560442213060381705382896592028127136982180958412314470200493668007544245468545811937618457355836986447939063887099320054057232973139334654690575067632618395441254469801247351330380767657145278947593013517533647064306877901112884863285411808834536295293112032277387301346343300011944419845380656628359740373964889687249806128046897706826773502651303973977515291874974311600681422853507138073409807482531829369403396578889436820692574488601257591282530862499278500180635615104162963056034069243384064454168842153530734784705382215318176299264931096531211595375772012771364412245799815415863793897998143320236476513211565315789536663801808885204492748785868110648188858944659709439690664665022131239760305225079944340392366256936665881499802686751311097627647060078361613305050613151284209357676276867401253809465308831513194885281210469027712063066215724871234291790215484978013696979223262230690723630344712570269023419748645502619196630413204499734306974848599531881214983602340931620070455346379848809923224714573573635537421021677222766798955700929362166557825728298857999367534413108448108098519267875945305538761342555664539044007971366037151947723769148172501273829932987703952953274993060719882186034187439191052768809862053845469391437429659894140630430971684159900304752234236185084755257017968313289061399687584641598770607751994177686012611012750397959006343571196647225561901660749444055672439442399181852127911366609853153966045643111059049235223948021892180625601167710235566541581517261421533775146464684633204756333402293722961552358888462633729047692401736652588077635971868912837663433117139649858897460606586021731675102456490287862287473172038107423792434830011702334994317656482229287209110806694772825417488534349412859306032377494739928745091413608283274688023151299177766114893356340305247929581648568808568629670177870467985370831987450169132012218534767614470486813558017014863012893156668528721203997878109827986816479613658750339459389265348162116401510668590985817800028836932259078757897774813396589712648404263121810450292113064809686155044193419907059005546206726232315302826458231754611132784325850547834891133219393583107768194011658229792313555870407355714118103842703715919619604329206209823396398189869417154572920455362926622272366720725051042711306075762721598137407238551185364577926099936218367739380697165474191096430053580201355970325932919987916494082873154516383294992766206160172915157112026223379018316938138901240278963183944842214576085891857851368084472157474198713173664854199559267775769976343416873256199330557812208406080825610598601912813843368238729067510802772244978450081000713003980752826157879806503923602978220134118547146127755578028979369481892574523404044724971896125914770733351367181576177654080535012774486918418317448626695682461014541693778999219364610620742208286821038534073248271195029857160608025857176691580403382583256917665933206692940230657072315875570692847453020232940506958427642622251693816654466530444377381268640443339358677958814405093573000966425584074634776567783435969672106264842197447734939761525046463372756444449872984484657772030515197525459514374767458287633137528627586064780651125993671191348281793179084183156153944959908964861105792544438771852038921208038566214718915106908101978115347057513952075468486766981148183240391261240171716975193268964343612386004921557476492098743211748689118172729996110791831036045081791958498139274091505083040920743483312219851249627827790707080382773784602761618288830894935266804051760205933090808438468588029520808164393286021367877117817176861037526362985860078250337139917381721743393386378561992833829997643602256421954115394809527092860594245635713599202008228321687342267453095617160295988725508343914751715656363607134635098631246546843401103189364446432302053243108845922798714232101043232532669741439170679243402740905188967524437154600897040288807213138430527093775536660533472896848959003043870362660217301837838346804104558851510134760704931224036352705180013570233083446876663815487939758079516303931252101231379452312779553603822678124569459011405918986468484085221179828934694369936378039027142857936665877894912594488133305024802148658385035699042071653676505422490891419924584605788443950780580909389337950657293757365551642708497913896947277344803355812040116489274867497035780896938669733522496801984403812675184602019026178909039764914931982963739209140384992857470967038768683288967110238876759333044127760061204304880164929905239830996648426666861842826906472958903132811095274848488452199981828123956412327170080107596623781792530752010607984203265345748476317024111329005822140116012712057686936747763574947547407381343925884612553931968751874605645420373376752822528037654254030439066349347359680054741677214318996537628236100660873324865638603290274803353850477174733418433033383222135887299226029917329720021451509252716977771032884004811246193024299369132117710313875621181321023564516985618022310250887692139518594827306900901794407411790910215474243734218221401263378336344997301456190887014494754534269549087443382314089642737699048604603383454166811648667124594872479338899378023568458854586668336812031065437262684537024881476557972910878710250897346873716751404627752259122517292705347811051903514403674606068470760841995054543944279032528841076221215332865266906861494289182009994736041481063425529302989448889589592515407853570739642545428085396890082529590375602285389438894349668533648117507381056713314570843157124119155841933249701272387089185171135736693115859304234160978258538659310392028037199165948660502268580346498736940039962522306712614181713923859729957839536823191415628520042888068496350359760643801994213537438280504860566598304145111767634426114036020396730284222154678211045119963379981428790063567570466535865688827801562826400967031019064381344881900411503216854068710152164441573705867582845155087013472588199212945181517121603281016718944304588211870778327478532256958835147863452983024857389061373076643809115211035277292184361488177609917454594369752801728706247268217938591786305634245529967313689507030309498733308497803500412146471612707280460885656176521579083932913485609997250542528300640825726473529650054006923953711928726213072240208830844331742119326668910299698719740091705297509272831820182459201409620559763084727480448629934167368975283151357360492320478690638604882668420295402797086864604939841815677645975502169933017053846588865683772182824481807760542399769125820528075492947819097186665242750590977667259652891803934761817721430538116712382396310428110240369449258422402530122329985131209451641111159686487454281209578927749302912924138018222452981234791125244850094515013034811698188820940702350474269190464608982479770591428853851928228881091771770653182228791270763098516009664342025258432536898664305699749574543352228397028769325906526113300684346356837491229365012749350963559416899454767997211141095948430073359032983182613846029218133756901097404443234426276194716329318667411125793559965628551926899186437793146747398941587863472643617533604178242238614453462523527917304584802484508598459086625588358170068920977882614898049471783752999614884446907508683758890960681045765434784509614346476500755680579175686578406774143379258538951925757180649245756802519439382763685801843637945510066573505458039305153817868509501017033447224697117279507947151711236043643482767612633865723122818914873850656617859438176517379889811297534342725461242458330556507311623468155845285937491252984977898292424808385392523109905165946756996612841206950040565171285962740343570977953982866785304514127845324078083547333021648556701242578760110843924925020552150929928296046194855022523895450670241220345710261340282270925761688632145945196201771041654440396041248721361697540860555856959416489472549678472794458365005608046264106955473794178673762504914795139280399952455637021445209789700254968736396658265061180526140618968245427953912331648000846094765138577796327425867099007558064247948682871822813946172900466775928573015875456784659665329675648928888845338377185907040379689459639474756765796242225279717076119527453393609699423199924743296523584432950775815667129831417571936763749207725151888431750470072515462673650245745590387561372405040525034663284434567504407327580898246988933087573256881920126391094135755236768231123514256831242235404415397461427143794219005054259258248103618571138268086257652762576547459455787920874697002840489344346866460453214466872490979494894890084706272617537732489973426064099151227443365780120343125617651552644373204253653632263661047352821003725411729341360878455731109321598007839377547139835502075364225822394183776660648381166982170883607967491346705537531751252820307243255075111855091076325374040679330171277058454215038387765869920396107606933502137966884574062284372003118656715746301356465219611468277293015870427625735797907189963305079879011985373844244965069021536655755574544950255538166230622858923998969460469879291930797871173922651533598003998315858953456476195322664715692281573274897190421457649801411856976239253242126708426555236147469421650328251656307016586990334002245455017154147300760458618209000858361205717301302786115819850029382353914508108875721086696795760693677248166689671793376795405422305868749552736928261038303737825736917305702172994606330521635121154889486255963508858802138550507778146347005226279253427527782482668547039429135893955498174100113957943400243193211557858155441250337533031337921670273990124814249381399420443191134731373503588809802037192434336876889164037759607243132369618649911644016901289065897770640271674228462640012957370295407410503554070845171316275782493602966549203168440766188191570162309962129489324611089906899561329981858686848964926938413911949264749900906173848591675532127065669617538360475343135269105177588604861650760612926308723834616887901967575335259121164958851953791398293578902502040106840820566046755559961450727649948216914255034826459497913290035609347776208703270386809362887812574333831687517425447297977038601704869420861927897394492361702024513776467837136891835940191931263204542268170881549693809650932628704570651184658970026521929902716835602897921006289660235385611186177152497563605363936758742451636206654901230024344694253588181856516614343152068203454379441687665118599478904948580823379159077857080024985029586213001422435679329982065410432409601858439847797101617223556128124802753960074844583948899021683286228966552840182773028617938335186018962710698312194929767211959370967301531314993954234725991762933359873077150391461972930927382935588364723768613292597695772748634080979566066345933685172169508295496545724713243723243955202251929322598982932660383427883730579115356226755887297074726763934326893975126846182090442524538807145190397116304888394650776636188603812593794263297878098283598774507483734930257207664027580315503762083308305196885501520019768084700395812915270311922709414978102421219207311416906157913240400331691508229373260263346853340398374889582349400618947278816769074865129112067338844285638676822286554362454466994090578888304192564548711105443278780644874841884755220798071059016865364410459223471066051889465455948579028638145923497065087138925231255099288244726110495998961332107702113970099276967828408959483259213590193624678562024473146037085311232954204374712699919029134432165328580811780935053929154889236052139829071599827612988358835830610615815913072022310809704399135726170008437429256824531001309123078510985937837501388918948913492212355225623831269817182140253771089571434889262690228562999820194268294187519794909322377723596671431952676510519862613857272965858588141268254288597936554815668858288674759054367709655430367748394478917070865056220415987529838724887130317503538625485810628150038768358584688344529773449469114295875258828055869962403208337635212043272687249868235370017373134101294172993179641005402856174394287686466885012835304422428565170233373347737422179068700762020357882402919819584326875239633447093279906422481324182602387943624492851978746188264158831593186346849771284971813613269498755600079732534344611776605574723859373192010215088104484059205511706804269535001006239047794416544780073089219494540059671899312748962108097496984632351431943066654660740439063673698999084148102816833553710781435717361363557751739093362842764007917123883908505554651082687173146354428844080900651789625118590268674493524900491535167656539057315958948889879839420147297782528974376063417767211906055278815641877598634337019532268885988415550556652950343995970884985052352234704882970579463255290229463957730473058031619972383514187409222531794247300165136900665633228442847114686828762697711154194969295804242220394502011791911582582776063757777639124412457272301534726199223863740632056680357401648544104992340492128500265420568325848547916140188286908832333425545650025678084766574108624475067868152663967465312118413348715003602407488122286631610083751263616254722286296053462854845108200154750212223908699304661355338640213428685609113606711076284465229339343472055361830928407612014293118447795062666285114079971909295756485913957229159513898926776544770835693529848722398520159200013769965043225980525766395778356408144645585973685351816287784650758568161591903726272612634979495298170388065684905835390632114841397101332584742521233887732106276696619750656148887201829173389226261720641320079597051481937596325112877211261338909221884997291497977560798363798527391389226904692234290240820831421827456523023947434976075423515916367410270664010898438824162013987485490302727206200639212326974750338489229692608996958608170347170747843573486469184106241624303702647972816259963912523983071057485430123304975618269490700707946864084318010157549888489937047928327533956737820495685317668446700647407676186019052061612859133676974047364956072342727580397791678197708087000925456070854677811923352226366089262925737865574533768833871082049699249580303248200355191320509044171735743166446053325791825030885347332021184552359905672431572747197240337544514942467830275525322796403371416894496298391266265269085050657030570712586525783769752138227679690094375420229433518340615640966552724043409486200489978284171453994993639347369390602789289861643199621577396401461422112712547026828746893518286778414529614418607628546259633031102929846775880151297036693774056051580663823038066398762966543716707673258254525468673950649594723581180769228617812995054793033730946081153739956018565321814243075110558098897227667584706833424905109714382818305571378314273238505536899108232442045609637455204042097215833607898667137666784678199985012428452963908424040715736562170806333608453664085929787604763999224317214694137672811383505064790040130929418339390907555250285847451092559557907587900521805381883234542509985634630885123866054647588173955122010628422245051637612595036951026904713904165054211424721497983282480082645815934273218643545355364573820645071689662193637403259972179749891581045629084270935874864992316198000456129220121359878913256499086732427214262123067993471455517292468661750501366789726776981649578638257811772373857252250159113967605431944442601459523797536630196617467867893487528376838716381631787102719457744702122294500070043454903009581095883415935335257596787670674103864597671133448587237881232725801420983725192014996308007263489601349704809852813972364995403785365926527165340359486669981274929855557504918990861469089208066732519413380354053007719996759056684456671962513531053410875155574836462529714246695856640271844523388224029619244052659279762492203658360709340814171302421012807049413882001480745922293177114349080135357162603854194522835251237935481166584144013828106284190893125864542783324464888778338614237270266037250283430169592259875713905595366642327236881866133415525907134104052933830645319999917358071453530544372474518472571023711079046645538330450753840373226066022974546808468791551193508765993583618474328626587464343914729282326360736329647359702763565801274858347363422090359085836301879358842345708276309814615256302573668960832179638099344200666538837610265825572502919634977631345197440528307908322884188111098103621489976856797746204042824556568916365437720346936953008133978955474997002476222322320448749303996156237545290742364030701912626463945599765130884639624319555574134266233177572172222911684829341885278484757150510522494378124110638427793650601794563178892033018226034514940868712575637539048664961735466743041882173728729149251949731474636193774903772781057925047181010763022277919874620900857700253918624641626605946972637926091876557014793112873295922516278372563296823082019849325546719695064180571763720870470376679357025930652891102543436741723577552615528243538971102153630563160304955185086872806445339990656351104719598947559918313981924013115005510718895372791005054450716837651514273359933760003518189641393917238314371563990032995133408138735799620863998236143499282621948820190010219480403995936673376575573094260044170501171327556757771508225829470510066570306458771731469489975554544253387142825102882119849419497350878105343750799088143577290654817230652822649257540482386370799269213356980873656917505829178002463276369663187821999121536751739376483652442107999950214181487275523550591348187956636298933380674803707580132099444311036859147051083160555482244196273776497498349452687295709704388880321644651368791835857162056437660836844969276079947490558724234995619089623909349079431310734924425519505155734345875085752039434292035508615732351718604250260373285734275692358082981047276845381654120400549866817276355971866767156978053960730504373507959635586763277509065955857187413076214307619328365068696657036600115579791648088427069382054294967101220663927174617348825847771448243639152345003652996854617020106742782315659503920132895633704150140523840453183955542405179061888965217686759552745781908992165381945199046530385271872072874140295338247064297889534691737717913426208626359670588429661848187139736534977226937447496000168340163497752056734238653358579650290711577769151333862262567883929380487779295728681813773841171351351571557630208728439565498094980309490878546472126173967351798351832808683982875337247240546231525838085477060526553156268277120156654008711691542376151333897754733638663292223535622134033144550661150838958822920924901027411854158969682993119443297914733005760115031292486866934273004350148194508725938318608892851177153325150620112601964778151328813996224461841049447950244634108451923179812942064901951975355928740458760364765593964610617202005331027629569436830190842191935653995490287722990032070798185373646592625014896518029264652875014189988215964101922431569253391631598562184238897863535795477498094740200736550658517822067383700529291952713939945518957272293299144826816494045734927706762579807438567872419436755750508478618932910529624135417314489013929358802076365015823933887934332267561508882635680032027869182147781221784396729371186806436031146278403887232910290701773042529427691445505118315900538829912551627197898273128911447221848705913641538307867718594689752336534605314333884165994145600803595757874858488670159179416010877016381508816552590051359898318034627497021546779029701854203581326272972961233671519248214808317481231372383083309603501271019832532975710408865126986754252062340877374086593749332124319297752511989909349636987117744920237945897423548482682947747759491486353205346619584713514754424167479475860056373413218587259422983932822150567483662495521670184926224915992245912911655558420246818432449080769171933201555391713455006079427665824010244649398312531265720473786444271446873066261720787498932050953129387799585073206545628613839973350723839733095125326705183811905362361541000538232570510899901327013887880995990392489564611661180278410657366087067541391636604192570144366831994810451660545183220507062590687000643784261844128917032335440781764279080323135658058249593168067521707559337679940442617403040291165977410675464170509984471817829061803174888667291805905193671681773384856680089704312860528674201042735215579526140680609400805787445144637714812526710923360080686645280701587200795553046974698946572608625116677792904943867648570162679298911933755460798971231430252300228345857550081176069975080502064909348827527964477979667764802625014038588214994119053928544874860242991635662835697473369079751520451702068889584648025424250895706789298362344538306271679214673757564865944694645043064492708632975725367781235348749872420129641479270907819295828282044473922176411849841913851754804176832787032355777997358466573790081275277751616023407760575481011747536774539893968327379017615810985741344085515487763732861639571405724543037341319436808489755864378475122484097483701065385026250079408703065093819355264902444670190558052002840576260230095989196086440576996920222900723957745950511473581237084214142248762999324485838352111539113123301740129286622685314151660462969448723385103963032422286604727997991573093602351644393325584815532950115796185957411490371852845636318851100577662159452290453738327565539518978503199157131692715069342446336695524720566477123031227849884167166854836983695263369628332507472508338008943473744001227167386237815690143541023797142839768142172729680522847468564656955356805095881766628997223121112346718375456414532936582023003784577408524063626058902283775025591368688166552874416682914347279648611030704408059807089944686905602307480342769004934951972782307051586348773179344121526564045782203240333667445463722638006548288427380647407572690823332722064831196674080491025237590201209972568810867058338881560070841157410610992624797454980607849851474257399439171306063724487343610488608838325433267299490126146895247550077635715936667803805545251121678648001783280895392750497083321978604546207925404039279468861406449410977217369216584577988437115491473694591492651748499095599265335787879480075123256285782838556066773298872026827209959140166214025632662116944990188891028970785360973216161982325389031987362155662107505642786531150521803136809557370855311858808483288522683022207104192551214364243277402933253862401813458683150423780942518211719315997359592197240695092940452434168861383512884444552907395830330567916545661386773792395931824102101955671679932594469323427375846767774214811784580179196098426175245283037849211102241394291003682638638324509065453222359519912620501321876020211381136312674392837873428443758247054027561130298077276063311171458628248996713620499443267924332966725498444065893068781115819376551792635572220259006297821308323297289201347912081344508542550016056281824216381655450050137471622738370666061087613195219453433102887237198237991867765229302133002954167719654761094028460084212331671618546815293719554447942830651615305885945422281937112377764237201769142289778030067628538084211889740966128201255921159521991843948100869951470053502376654717706197276777218004080288094656927407456398217764369908997085635225864065934456642374265708997652605724898049838022165545699450867972392517794324280370672989840430207270057082919975674607438351145922251349623644180840132851335482632946171713179284438082709971231730880867279454164827185040547984206006497659641707621127044880135552815579647146360076631687622173022960776278034764999856316923154425824081965992853968436716536718728619664183178806067005175920682315753606850368701643278641918463716804911698653886229994697394589128877502644572505049598988242628348899179985756832510986061609633247561012784711766196629138256170803570771532281341807159820932112975302174589635497019127605787400877563935333834986938574939688940761188071852513629605061048962818794423845893028722702769477691259505226717044842304646721424535435428883143102043045210166859239832032858427072362918080712952318141733964128032103636858056857008951262589362515181230620746439832507472254772610553122241192070439048915640896101891956360543732376891085979716321582896718692949900818168137573387264309755937491723162555920436206413313555036312769090833378268266340417375075711882728671847449072600438217679389370179394874716630182689256425596778685853539138923170759587790045821089775565299127480243681804145595778390705028013944450699942121336762216412622250102726229973548369662584545269611866114664786627002763677765982412126774251289133928653846940800249025833144878405724698249771845772559982576774205724488851688909531138437375946106966988467846525872348438636386325775718787357737278623040118647709864433851413106972571489376855564621378342872418595387984403740607239381127811464254727842476799887682016442781588542988728958031997709166024248477321103685784075774917261626092154090675337049168401270890362841984759986389536430004036891401762018343937694935236710955498168749064512560960245121224537990186766396949352860408462012944811892942339480255161626685547981089667259303247345033265049050603033919027460606514557386751047789747588071071435790261566557491034903028314801096275391608508857844278416328721463161337582866081730754346371831292965804131581255637171253332384896314077064293104710615327900670732979843263828082471272498521439325464856165150946473897576544057347941562794243135272017318840966761900091441273166695262478563513250778126303928281688715015863534526804102857094244637098616755170074093483370847087576578126937270179947907933037934193373719297146008456501734397492479859717873030005202044155203536988126305429442225873387909428791580258391170931918221294764486475610837878306215499686784941219925123894379934201580967945195183603920610153373098862074895142774027157175063187434031167861805135096903861020418241026154125597904795829083031560926898800005075211945949795592084558627676419861523522848005597916432299720842605998930889295601147917841995592115238797937953561529159089061532609687915653897955307597161457278438838582532043532313136451589357597549704261478559844920606360998567973029800350708586676299077348988490125231482442489176751870200012830239901616805437811614548263407313278446803155087450450848746037979615524320704439779483752869914472949916709824610682324164829097978132477095174097738678077050548720293124178143201685751468584915117785714710594963388533249734416549927521584484841572294296952640228605442723330019403068888824219758546149254618299771971609256633116684997966658949457635068015105156922579312278879686791193592332734017819978432853833520477579302998316404737006711038723020599724928763507803390932050429560433269818870577844455290735194980306206484943440358044132256465632301829823929801979245904819841468335006631441269331204821140381115797138886148237537248613490597081186936446825553991637419398657755123523321587752405008381402319327291728755302764768933659746318065435446157928007959157506190655696112554916399779449418807534198707564365468913408174534340572750431723053560203706817361215680148423897989983027292719752938910349989350986233746710027417563274660274897522816744134510136943644252152007454202814078638039539883157222375904010840737312333036338217474602889281141303787873328219390127592595881570386130788896713148613605085257637617792388469244557410646976364407550389409076974143306902580633024919775634258569382491129445665592643518568216819900279129476713003605049984315745319903623507138697688283295172183936186371755837230051986748025672303209970434636858569695499647163192926682114233419909465045633931233831186778971446337221553646725336885615850872927359011675373172819929331523642670770740975527067326766364040812224996639422951713936049109606926908226997655519412784660652323921680161272402684575944716364126002014189332178866925643128158714527318676006207442454724085900184585912435167905873223645425555465150628703656298826565979174028420979341063543301944851362958458835095648306144819220835645647047742505321263416139293874630120564762521423387956162362882699835960167563837758843304553186400082876025043839250185446762973437798163068805387143187077693909842702411472573190566937511680723219634454596930220800176602740966093261810048413814791149510454717057446875606472159777363048073216170310213219631728264202166900125097691175665756751419844068709475863791199715676757560190156701755338458515312402656820293290190169629719608087292382856268022060809287575922293976680631179759275814487060034336170982729026456101166753102165813826636734937922267483313118048934154182486629533701687821389462061397619947989663461750382103936953738741800707853788666172613413614571373700193096209992349791152520798343748606931373074844665998152405405217972969033961645196845410378539908516748396189711390202050411544677177734321486651398228817511477866210805769356589118185587727919483000728583284970867484104918735786191165544124138151403456785430231962966986184047482005445065475169349837431009307366298423411492343985505760038679065367871158532403466425118220591898059943044970575396191457186946227891630708283571518221023218426554064615650310465456953080804114803997572666192418124937862217381413348310374639420763134019951231129148753672950775174753657990823013043566177403479943506947025211109306153032116583880614243380722095954060432219031215209614422194201410157545474164610656756955296894462948445861986393033074558771120107421120865774516623347659495391812717204656863939493129505938178262378354307867988743993474786468903213422529832386004850397542915359128511418798026016837883280686688670373622935194947113487363375811244740381471743257929679172491440614564238796628182677938343312346747419318178600606601900100363968862002387710597638795768193833860538227313824958202486902090938404693210549459626443516814784492431944511237755516828687407442596760419165752529216020021732361538270474149829779423960484682466594833636328949726263048041064265359232308829863823834189827504323520906818584669709607460803476067342572230501852559791838827892519355298107584029404687779308931414838449586310439627019724989958495705335580032535897917451549060630037139720369417181610786932566858560100874134479414774313221728445290673862339094047484603760388377084611291408201966346742491678771808903581757632979870004495783583558090473962991845513017708684296766679851198669017527104035566079461263986094775727747138144029935099046957194578885194948214425756646705007113364096193199126063340163757363237855141427092358148194337174024467492654346746256129333517763655628019121152813813608973335423445958021648645299558295864995280286473771822046473431647953325202736750841819279430523128583985984394539980503848373654072028419292583070817782879063939551424279589952813012119656319752932084003526261297813180786489312426266308280739960663086265799381471753682651857257285622464569892138856621327753586828129038368637719474145446614078771107312320509113592455155017989717936653775054270635184013121899102698113145408995449322073179440136553256498131559168952710311178540342438464406553065520030644970600958198886786900439669758924437651286437938581331227713127268740208798848474697342442858031936874580254641179519124140119374385313312678598985025895360196119957290120712299837999200582586952172024939804133836659719842718888125678836934890923595875188758682112292225345320459674391597735170876410950192746445505014149809472264825675427484200751167577000360083162589793458067839602954332324936297649999637407064332781539113370116295438144302893287147973220524042355399363326039286940797058500894469429025199876200434900556674694132704160097503052786811758798322807892658041611505698776763162331873926744538585468394907651708206499768044654381871518500756908273073266883593124629577338603125958736429431795481204360931952581278937376190931096015163112464551767724585778318673033710413496518523087705092292755956125716735887053681610509602989575005617738331974053539256867165685010634774266448532999045737463946759583617922654283216406552465841700466825887607481741953024226191694445990685326780027634676962298972171495934653711501824260707176052864444967499426156137363316902025872850480531873421895479781620678754206060443276356713491675694884141340316878677593548352585797530700108152960669005802809727885389534491633612770899760027852625281755305112474642482133749492975548656769829077792634796238698579112838955662626776498315215836876543111766839209601978754277628328810590562244129820048563639967777832468410483654170375822716887480981749857688583688771713957224726614932235069538101638851434862896883985231551774626676897882880878554680734560413163638219934826819370504185900204230774280730474186475135440355789367310145717673179792029059445448000417053196803291292207423940828135492884732989670280340119084146128627660468966349260296223030380212041140810102782240889703895176039375255277734911961300496143779843381111121195149995759435314242264238511771988630424159610459753337085194824919856815310690033728730022330565577845467617418946530917067801007775663781816861068595617967305656942504399580750734263082722259465965823517120886930767406244754741672387165707693591133392953609064338959622213430692138345694386065261231176975857743098384030920957258284875772393477298614662119934177660613671783961985997735708077733938625800427141018716471461692086235519310165417263158215200519858677493001452347265063041009170281614046846306588691926946144720556133124137202913152837689546033019659541546001083861050770818434419703226068277842218765772983000604953071780369459204668234167537106032108870629538779059145662321248051850425429125200627910575407056492628901990291992734530610304061775280077238502551024967945353372771541207893259810040390669502564884638047900774411916906383598348043069978895151117673574305462235339033667015671984036185412374488508036785594330515790983286672494631271269811544302788426039651666614234982635438049472251423835350294669751719297776260760525717565107408305592661818326940481935490406078777949534835785801210262876905808739318430653146882491311543756740047949484009069618343138625100777485086429322921288058613857610704769214265816110790639607181909434956448859494323155702404802996490380057198146711150121644181254173199168219297703596994233530772977587969426876787177937886259058909577665875078125536362480224983388360175212388468884009515504438741518887162487680869027547500310008958813610188603928067043054413924532211424659687304162550187819187290250310163575879541372244686607916757883882032760280380841779547016278623122352750635616391970596964339364502084009366833061797374949656975341511085173102208509693927530661330076232618865915701219833687446040664968781580759409051637307565671210935618671217949755551537402912315761436761371847535664031914090519756075120881022278017532557939620840954571277279931505925399705304902570588885287216931944718934931640838757139857111651564711393122753784709496092999350591993319669087019595850086249756545626765035657565431580344587588943034566827964194937640215156333770244195394862893712190748209407252624160581478800735815357973196062429151433470581909887388773502086452930216933795371828671274506043871933043346227025065235886180256037833663954082156451347947047723730004368294652680541355050570384636464528609424536786039525482662381991179636171491794811191545306488922831212028606986002140449049639686808514298828929512667508826946239896394142837452701472698184703320893044217042219534954151004222521122720228397206583435419244516491287865025104253004661855039568019518451427989890322134089210679077048611698874261768590158305569374552723017234158445147570083302277353398202390240443395334221293458980151519272299158903634784728018136902755531122362968563171596174990376794415269286496760573652116330253898165650830577214133532221162832156862354320089127896008319632865835916175546717671363772453898570469967768339154966077768757993302379624844201412491284112658531415714752796209335050356069852081296834392108917915526830416898784897518010542575399086798344731839776071808799514434232439360119914439384599299261855674956628615969254530196010080056963006700771434798231237419298724771866811544659819772727995289596835934531845628730025020823702235144441579769677011521172771268612104890726291072807106629900834767581898583092321340230245407121661177121331748640120916839902093275751029376169783535294738811659939429457171288064553684315565677950443737834295071495732948748966655045879420827418954017775926619725585895059186083167254380004739591840373414244859334940701151754133725805044198898773715308877100581429897117842332337872833868420970753555844127954773162529451847647312551954983567538996800583377267014362420141881007400248162235693581096682333462839771172663999262062068915157030479851316704397301001034728716294710838946089488392955894187093124157276804428362411952003753852283336084745046177897909528663177352034266789616322180255328362492709645550645724809840032049570071988616057934394539423532921729778917130654420942479874121668813003356856830679774517467809874805443593906154394868451660666150478630061013392311372171845437404300779038942183496561358461845952964786053657471513930962986094164634904402931326697364595375776824462866973293428985930956217693160524238847706530536922899688320896288708935616969656057358792228266850413630174483938772202544052373382093348933423338523651255366522346106910367015708807628237399853780571287540338852103941059754966931986605333582671883238037564504839948918978764344217911691456026411565792695749901097878247304104695319462927078277721761722935238169512071084765588863235198032051165642257841278546133057426964721337814666309181531751243337335065253939128466677635665603317952886251228383267703916434080881222407282409611975132295312591796732887113142698816567386789541828872139994546810716943740124228673670722309161276825041980708650064151326024193584006543701546211550667900610297822283439420170226248776226467538352531973279208527752704276258985675753420426737780271934369755347589032371981087134242863878194003511086869622031095144834264018506828720276904943959609692525527239716043105335043520280180251169127375528399173954031905460384726246529569519717353664677791232686462440024657914517082601853413909730126840084312642470354196144385421147762140652153471001146770801733443953208249544904259146337092331315512769937221359500431671387395052908360548650574913369394629156430337808835728075601864123650790210295917869187959083912603401017830174768258317492184717876197581811800574730064320465855176032502508593812966725044196641156779674173224661698365772824627443326736205841930776977777210175930689186658885721332515565835748656758940171878658444454545610666478658037239353303275997916169024801542780873116126103884603974058801647566731452206807013807772650256176620088253534905058858945497547194268708510011159345585424717424122323018049621859470445159824987411244853843351042481643799024518115818821956800478521321434960244975670126008008360885225091304723743096359271055849960632379887523008755921617781020304726786788087937594399182230974761339839436821153568204440732637532313498526117158661827453752137906047943262892029752414560115347218046170471798516033632222613129356990503292199911630025148695452368303153912183487356790404844895314513289395263573606389427479878278433784034989835080038451547737240022578917553611082206903810169456438538396658102713745834731947402002506139584260770576292618630172014342296094805563254221521154041062928493947380594266186450987935549025247013006922874743525122377813087535009082042755864300385725529707607080611283076263961655908345737762583984016080545699213335327418503901053954656977671998144196663264936759212334188745962234111394078157013255883063602227389007095030817234730689711400264504516873151914613644238721026882887834645460461994665949690638619083281180387414497816852979690398264511701266228087578755755329272539483743126735728769483209928574934700137547686521836430692934974902932452510954016547531055631786017072050756181139893259903889249566767089769303525095328774392754119340344765423603798438342810707588315384014868341043065760196745994035280139111313505867169623245548411660031225181905044748717714036009846156991792377670616959862099166489598954926096288069285053548292538617667347554303529079020570411462216501228264033224777092873921029981772531758771585241003978171197878587227476588334656940757798858981817841939545230295923914857653373395188252078923841481500130662618857385817269537020054169150032601581825343903685488971524538026496599520271049887088800816492295490846247159826825890835818527814554512161085305417369650407756001830732163884836753402506782499086194244297286559341728994364309088994383617015694335808679869294910189666922462813070061656365246834802021572176758248757140811988215079751784695411114048611464159787001092970329253693217906583266736091403641337518557787609772278384485248272494363295757025735537778260137010890141594916759423794627152785672240085431222462709251990209464354518539146168628105848665434046290614813271921408907382385636098800478047571667382803742436271385534157422159366774946709491066805047586122358314280914100525782385383655270020795045826779127411053481006415005923656209498465423345154424820909415464632837734037752378106796567865327782062758898492612629443103772098992276262640760901440074252417509309716081178709852927733776551211801163154585806125560388208672113877118708291346999018806055375941430801342613846743568376487340112518934374350179409864872641481539740431975900607217522075877957671178681905905419061429393808844162980004490976993140348242234326019710181409026596749820040170065408375893299459336703281520417175861949661672607925240638919519524709858656549155538710418529412582082856625873143607047905579067038043597369901062473305532258438927248499760075441062247337486876912815268365747339988096616890344018705581665923544662889251550983889359248921192778391789707232190202736282118088231802295321776658513930540177017029950803207174748518803992912411587344996346532765811546894222054016017811743573432995603562937638521366437250146988771854093487090658555627101808022572701480645696647238722250765690527421565340533881602401445477877090697579960211514709063220898472402388491816688966566009597625304672698019468880949610712972538020391716041818158052734587358732381527364446145730243556913697564799291550602540649598019708670645887915338187871942261122415948376022351765277943316651641623451674844731825396572749525848690605418870356166490013818854987652451305104359359227633276202879795556455792590371691207593257767054783988512308680423857951345094189302645471579734474756039608416357345992153878442888363818682305863064836134553275649094124657844091926642251457543760269577944980335191378701341901488416600019733049601038962930963765885061478261131872681277824227854221432916179957776285630049420195280302603266243711750297073978363691300155493189227078698037271205189916936247064930422398287117391126444285799918772647818363360224578960212189676796110358901361604583061613144725028247665654987401883909971860617741760580144475917739899102493649671084168219518939530434137215155187393173882955018362001870406203996712262434229374400427268694484010645695798406492709099989308985556512231530931480621009469741235421124430792272193616815119429352413697590066651010779671750823630674161283065046122608309467047318749946001079755215948649703241269517442835439575708357249459441000049938654513682360135866203708808132124854487206170285758860558211614394415225389075700601303939644071399246896117455364478940917340745372555971657466586632468053957636742787512177527282641975467446474463254511022260563071681825173730781037824919971807961923204671839889738896252275264666114034973712145768214865235845406189952464867917111952955350405614233940831381444070578120082023893294433263585216807178710693359318885742947059620826062058356082979942582007634141922798332551353795609096128587165685163749437318051425727418726577799657303378312883889606661278150143876994222114225118687192602836083339932252937798854659389240046760406214296461464720613548627825785539390565171871770991254025436024817854036018779284899283387672251717533851104225426136670294563418296681795700149184611414308408941120976674873765494502483464674652906572424561331726607004824006626866060596465477084390002347493577653304937051222640791149379287196321691667180789538913232963525682308828769928814825141023741278512919380864882085663357008497662287238028576959583820569800321272671412577490808412206223439205051345132362340473993238873749744649380900207741109369543106064246195074800889398361363220993458136480042460766078602007826218282496640279224900925458494693883491381325640901642335492786611494738482357120348128939575333341440164564198012239341152786108113792640432753855635930675191867195532592095618513212933922769228953179245599328073746892334953019150527809137413916683177181840392064576894424376781455711194814380879137079437901021460416174964732329237331301883102720961640991341828793312855519518276779646708463492933322934727987093718746956343380071730879788135266693078170967957571226608100363333099689939155239027642538363490411480282751674826305688598078146858343967200186327896724417456930357188151993227528774295094091949386406631819266041086254238389049062293981730195734941642312659496796938193956827066287591498375997497537798847210956966805187698450344250063175122135480239681230814381694334067516141913621109628987384637959487848145133355996896327271111270552252956010383871611827869242794012473307596521540536774896974264871130777019954516258576127909722098601319424350526856833178629057253745263451884157034406923989991992132235561844388086898516340329769328054035119613129037038720917980167540329913311829847231034948128551982056473603463046403850034717809938403350279101127982336756544152928910777512568442685840937826127197769787229737459413885024095201567844947924028029373602259498931328897752952879594470803225116308323223153715330314122598252851246465285191102273666051503156597639921604523131018056606090614826442645616370093144261926368729393205625840844680298865340550732295490403452413544953528562044235027053087684033606298298640282048036906502997228249038133384354794223338132493810816950567712270873168429162779715694309950358442897448866022312929911008184449367407528473180325961471123031362471381374321499556790126527936588318111307931929631888465595867375421432432904987694587446103088348718646027698551108658515809111140731336531863585025511705069083275155009375025795205445622513407961754269796836380749962749656970836819455824496639544475674428710520309664705944429093752992806259819101369294688079531624618464203331407620343244388979124121957855444117474205415997517971894174695636263392623346794361054949716303061856109488881538451837805234104600789097046886151679416758110118145526084436352306290825014340859684419780467657919466477685655905853037787029458059686384115440803067532346724568413934980925936916120493161716076123336978967963439079497090862560096946994393822182677269812506414802464005389952933901230969052396957021493788592105947157918409715602872397180129366655351453079591413061843877118980751591664709901624436709856401849466135882253448388955587733333176621144561604210739915873582107743024645007924380623023563206018960115339227382603954857979803353428809429513819340981826647743322180786952536609371255999884755815492243022363229334727010797799992965531476978314864586625222129067259812238235230102835733328992211606100164657112697153888590823605486000829217866006786062951177323308464174968654988684428337515342991869551631781734372313312099327748532396503052409481625626123162206925019170133281538000160555229214980258916848965999258132285660020500220683848866392746022374117396883596819007964660714426782603115220909780448172207122269755361312878524057849458209761553143607029193074117553130660630853985199383882739917302356554758159387201992916693450030276301768180087278720444923710316828764910887287483528383413635483110431544528695262110478365220723649376989343616797790467223919839222695038867892887100549713402188293569277727955899382256836056333882691097244385712108806300153352563935133012829572052764059160863838866866081103461886947281422784841406104040948216576643480987342622261285217818332234822021231090390768794677394518311199510578213366599563296329384490265405472924605547113646727435323923907188842647805545509454491603063778719517332558486891388656686657546752020255183046297225531764252952296753813145955808008765853189037347612353910885535083225018894247234338507723971381311844730964354184145629560509801707612747976400262751769260571174245644321184620395671980887757371703192441538421627513113533547314031453043493797932422789683938177156399170516995203413499096134160806012731769879472153594091872830754615874581905160528826730039755126934634344778641250369402019225872653658587026721974935423423613814508610201993588462430674816786317911538529708608792071849522256987361374015888829171251290094431471947959770014941682713169111880651986543409966562611282385438137470123515459604625109082117809980609148865921536009725261745399996257336767517506266378536316694133732628770827453249239684389737409591563357892105900917474614320507431187991890334707633628673874881689567473391401100119385847616018137598983378631465318848497843751125239156340204811535421766254759640210618924488757755372382937537216989972260037096061623220738131253855970803190371398162926951930094290735717809010808032710000610034513312929153471893195510356325218316172610791880006751578174068839716038430994852263180205199299668564614779148617059582833907511269625695576972587238293230613862081177396371413079452094548852794848552939601809939853059945056674110635167097664383689126179730201036431853250382654261245104558153263809911978403115665681549061367376014558608881921735422590507113108341954605517239235818662522382801159554726801106313071018363184015216471865730556051247637505438785507712480363476131210762308401580356704620704494497091192937606902595820995550242581947637659176683060134372045686353158232202315070727121116756887888279649072126028444490302380303168014746104389298297144777093649797754342337341801672969076383406501748621930073743277499760823514927802279650956048309668374172488645263067416377128455147050654764444505619319754397874213002627527038822888436056632554836100837981366643823729426983242742352224386542166318670643710683667902079578008394090811201720411489920801869036895481772073059746869723870572211728493718939876196099802731596972567766678695028488968080544861309322961302029132795827988780456663760745673134683659464686100688606479451562901738456580400228896804575390246035227261108686791454138857500420159319910962774066856717840231981517531187338079109957661559862413810825421145442022265868631558348634023366940991651022958993666688005492978606037886334763931829259183565033981700056302116127786452500702339599699543780573729471517184096899071610305464517665311680998696604954966522273566185989125177608699475814011136450059123832565876957296107721296615446424098597068326207146890209127426005738517797740333837568481879817208820591576251883031445353292288146499858435049317387826587572783426406666982957050508584008027998956196549583232447118173515626779012024991495506321946598754914038731272932758553192566154680094677922726912745748382793314916171088994090266262305551567613167954645598207554579741107754187672620815260802768982781528787800312837335643973428522639593911452515138905833092662321800925829344985512649636157473039320326239724468467551629743217182200781736125565104658117280415564163163203135777988312058804523950093428032996506667788773985064921966206279437343093057700457824364045568555305257141629936686305330613150838811018516312966307237456070107366181108903862461459699473897445125145153058843956514249864755994656725571385663302291101487169309420827718151245652168756099815148013078234051924472278916085432000770929845323096838982400591056521959133948410142329818194849079969511246922751001607370644514254872919146759520324375604799076534761219162001452090628918199994352379235796717330896045854045563831866296537499327617844231027244267554488867801628198718815676397982546335594177957839936935659167349239420945117815244653868455416207360084831528501419890231463616119764562687524739980807096348282750215302091411740603818170338144080190198977659848810496376906678185285059170715089848915992087300143527061705942976724477181421452794248185637372129881219956438484220576714981421128468437088671353254159094582169006219730075803870533929287956352322147758787982653755959293364726091294305386098298384673847479315059492923526724857746683640679771503785875546292553934734651856680372360849375950096050854465513468999620117188574462295738175031217514719985142272176920984176666133489165450939109413797801206099215526481592711021222272657894627924018768186664023705150650212319703331250706074132693004880548843759346851832636891133973525305719927735592309832423047488191451503865721211437467323556175393996116809983008515945157260679878578148725110277888071335258536980788257129343943808727775337449258768978867570214842392356631744059407097840998539209604709199631467441890509638311615548066718979306482176245892751851362112459499466681739604129353680505637951713095368461770940120901522311888457146930308926440191677977888382270903850164116043288893178470832620273549907785641557009836181073907130262187834343686792592529427549328880159687957699628775064557795848863189585202864426485983896595299043130709437566503969303396264461024457363189247980698819090462327256252978258414351268357508485779695019072357889458316768683537548458894266940500532512483926801101372111808120493427396100375913295374088389118487787487036186901156767003558900912912488011849096565757834533924136600950637093191193034664752108780383210453844971350614747135684226370041891817422947183365362998979617956207816539099853917987720406935015667540062103418601117963791890505290088505834033929396312917759683042368596307172447711133073148676915017646546099863283842516353107680869194402416853238303340653298763525411406351622602183921570155331036276466602353887979300015152658699379602572657863880443620704036608492310781251928546490770484993571613320633437234610692867905532067145858617454597072159771449997146463901684359247200656839034792284388532227865230552630939621639680667320079077583735032891115255151113543606890438814717971231411925564836009231905170471396211596845187914153516226340305716167719762367510223971969042307961756245331336423560009899469364782969740117644211346876042686020463154579379263876302166232002666031743381770438092747442842524377348008943340421872379890233770402088579780177505140003754165355997354516954929925347199339601759856048729206565294588109861862284073678248871335432397837176452566582657615771749650360335303068532088261762141508878420832845039311434163151082409918263116049061491032068392801157954204605156491410601502493123061852221365473406130313437981353752715061989646647872617933797109020022558354869891475095146051186291336343393562349723035312532442247972207509968001663691881720495077644811522883676574838859279160107418678735595102221496078696484445958148192348216561994817354792848086621165900691933450185463225254241677836043393913682452459708505554065789537270483372034735514094969518745412382115377549459808274810036515991724567907903062611953377491700515838001492166891043432392641982483285415172264832788470831495696071087424317209779510583827917804411077985825599938452914296090493504266494020312338361689716783816738609782780025399104917676412180137638827860391237921344758745540344781998768553651197673982219320033885009626471353415722598210064712455773758698507659985282565767141907166100736755096936813218207472847203439144489438866359855975413935330760771490411290425476372315378577935802525861104109063240599763569098866809309338067923587612933614270395455987911914862000211417973184404277648091762194567347709122606866583887496891145655717288956497123730193762162439594585011705613704998256313497693704217626006801428883438748470231996164175732563285649918366395159039079477515983891340160918900661335609975643792083246142167666933697243816881884492938180512309037739746892988136734177310256750765098914842462043697693659151533130645082043641522636321014790327201274701047988555150612871055701141772348409422232745579267588138924059530606095726078183910655005616580747898352067865250190881747519569988455840916571495857041994673452566418601431958027593148616020873645069933610339603962168038277263663742146870701457953043516883841163297326126307814966001883684482091110107527172312222689116868734854998770604585688784299083028054615746276225770250438279248709978502625126122784581391418577055893679603551916661259464264340397085278542966286033782031050523451924517019021333991267659817048959753481773007241181971899621037622423582563479837037488502465404777630330619243728154912598280518988303527127561235854717221593675686616608610154049006228416786055474160901567594333263949974875585488058868358615417981892695410581332448834704103124152326455366914223973090277722727979543847710107817594915989288423296432461706012090994113022974061301656407919419285844526936589698894429384356993158365936677560046983009278670908028075755191017898111642829531717763862879178967696764146717583988811706485108775249619712909851972421178660385021787316639802359589208264244988324700059044940755042566661800246715581431937850057074837803321524445962537432017679785338429743666336808389895092173792405011173419257532331190870993474232592335895834944150519774898174254950569973666629946319824659870001284147961898700283802066577078278013208172507715316643958334972070439563994659772830197816066342581542478549866451730196117495861925698412959216223709415973280389008086836630530078176495437503642676663292353982645160402400616577639395432081942784663463702254189455741957738568178633229161909337307746820048554574495369193845689314530975788290938077880716220582695998629953717587227429432330917301017588015632432873560524824532024755775455741335706878422436648364280197884557351249822702837570867365980535060398479039404663108451868111253638294056634460457491959354854440650210255952880521485957598009692430186501650943114541675798357163019874019354713133459955673536521331950735138692700488657458831093999574385526718872212787808851914692134451293298722770780151990614215251003660228421955653072900360219044269514450341050870397743433949074557968604983218427486717007872109260817759711828753576589656883472466952279268935348843868241608787158390924046140172229693979886948707215497393626094561478381891227286808388523912584318394042287264069605371279890673215727910387589862932544822984810315585914967776185831416779581936630421233121707700331023178010993810082432173701897493068611886130687310527176642801589545083597678549034885411496525300892481697938356114785566135055035995805173119952161663877816774134213551097433001668415491144970893222017302831246432912878601109498338468447192946562925656392622921223728327583108132440814709893266054803440072184329794067453459411404963056961352266074363371507639329236008721439374956037856887370835143008013738787914812154851093580177369281314438946795050748546150362703765231305246674655920792728734899507731039967397915307245800784201750377617385811879728462976315289987463961075820865054783326044304375394394195433370148234204963090822364983696660895251694980102126209719413189508527786475915649865427304543270685463530312680728100656349152784552022863859478005891136979509435836153755893202421897761322204535350136613411765674266238347195798110305273471186031693572006320854195026024238412575062780051340947398473881863557402373006082695577469714390252320540006514194430278474910530178899329202980619588415507755348725180017591048016989846041122734456571722731459556706417118606659426905585179757637662682841758908028667202233358314005514077506432228990216703734606476650924344312051080480045286352144584862801701846266014057422546740456526469966753677522231390210152955424829013579511334952672678476728721715115479436663292833428530830858780967683932004850490207851902140089949047461277828196545320143217313521816567375039054646638394582173302594701528556810191579569630411520034391065700177997480820180701618828508490630681833263166776447582578239179214489025777682914620861040482567062301154042802379310970376321243717696876951787145332872030504883137322701871523856427706260844921023512051342778189692884059547107258587629677770231245118365108920092976470944349401340743524366549753341337667169428037144704351665343893109736419863111423468643741763169330971348370301891663508136765684102664654484207313237730113088141861881993607110216905302829872143667619542049102135655297561792292916022873074339297125332804876503190257693027551072204456989331562068945603271797212646128664436503630546837029095205445930317230493010903359277078270996187654711531386264597611010665515221738660543329105367314196787092899121607409083392677265135677508773373563799153858465428264343496257586734388467033759911797378174111511411682503144340986313290915909503657078453077465083947983957020718331939173104028976648589598181902536116845768993113060681334518246951046337443667367267573328116772916129308134638873870941374221521260931735326194714794803706728974420652268834316591167995465787697188911226074960803275428517624719316565298923217643588551214217962411955203673086679239317792922251905093567932610634726898204400219827563575309466351951984433276141823306205066515808675937560056694229497997740218573195445413136840720874408072839768238488125872067301137610247610544052678948433980218070175204030907066375335996112926027733768726795142365237023491016778908478248905948697018343192521342367705851597943885384900358165831473652046861480096983419467358722146923867274799465548066062114451906987012624924831280965165518445969558558891172297080730523807259943165332312581952038318287491418866086113749450686918388564576518291773135794549924694375122713340855606252233235678000052113083855375148436003460976203920697322555982903393434817319152653092500858730989063703224265299361279530558685769103942358125868361385106333310929058272169426725829843177550710744989538383221208197479833940136725360047502001679986765140721309270190715536063465127860662783421752392793058737906426073995979945372314896367570137589006381323541444501355428820661581011791137449285154144852076691555090339523601637243009375919445562753291880685412249755000104708781031178933133475292391863622702846405216157341689986812665518548253729613026684104215464206186028753626809195124876227904133273564545886049367813133636467950839363283931466806095949762709060845476191957931758496728040277831184164843857691724159314808652672469234274157839036957464520226025115811476107908000048153730564884453390433798984245162760237426652957322356553245050919462508690200935904677748222725973509721851430121235220811473183012695124981696709518395684526137017899592264645299069160626275854064475818720010318382643024976054457120855707648248778513001870790599349681976949988350607432194794020373434158631467082383667882625916388672449246356103643875459886322407907443828325509408702930331243538785870827749897772849453345440718483162159231148983646084113439349263287909505878617415275146897886370803982718728438379061699704850096981156156644044811186714219503247847266314505285546144052842369414321915887285168762418693507771271638037730450337844692232825278146421206978983977924646428074657811755578475342355122927709782732199734350858092345468635014079653325214382843330583399437019830696401477414556682165516991080648464227256074100138542690839334439841689144997260905535106492028857676712179157910143304926887452161525685760409985691131671855330829568595118708460638431926684861840506402028630222278544211218701934061748474609232492817665319556651651594263003385396238223138017466234577177487903998053225068500740048341226813257553321548828683093654304867483021091558292775304487985185828647271887120228682832485557592262821609335804239267997213094849098586730033221994183984457354973087433716360007498850547886170966088372877873086577922365611308876091941700443322838464186928427884502279173623855414949961765798046382375741721068303111841277012282089893701959375373894326635857242633715601917573049734082237809567761360205116135832897054079079159038588795685792556752886017624252836374480481930909131263629927414080888313000826414875655303045027061398199785719435754934256938654426490723478392240439902594098326515284726342363509823432654174445813953160815485988088246787746311578477467706524063819592774233972627966924661148280094088583705152036773642248199525203414102066286526558334726865024870520373282219474140656628279528575153564427971820095776574310346996818414984326633453286280347571513850789206803350005973040509390131049378705146217721875456372657626454258226792201364996104887307966592332925995679816285364660478988895951019478851557406154467841717218153018591008347487474451757385483052914618174943259988146391034410905497761349295310413461967298218691258730632514011568726148669736438883034746977343018067555442052569298117867081204770920403062266281116305515315809020323696010215401257980745007727715403951379506785293959275256031904833106088121267200424528461651822844002411252638921426250531911065103635135721889129688351982145363591293124244930287459199562801039007782619289682405441333422365138198179885092417617283796001652620584721091439373596880162414608332623704304593184364573203352619169722548554099076685946743576180708425915423446139389394700225346539388476016799574994823165960140598099904355253671639534084450697537629277820357747140780962614307789795482427729279268710790269559620998426546861663948689327313755403673253830759073521794704133556165957259627709017639805198355674921751149202458312245745000870260269555908136442285164481374591097706626247717814671174248243160410514829036992237431444892783916904083901910493078801777214365827321796983057246099238078448071787349342906353316970046816610834265111171580385303161561518964035284779929014048204147628474834014324122579163958260817922335498809098356271129944978607963516123577207255802863713286193209231565768506982607560237731399799755164182962272152970203994392433363739567167188092953095443171162000220731943482796817598645433697314126456867124363851327100533395989726190912754897577375861322582749760915996266973350933112857849200571370653426465089676015406714398324027330795148701378104806373721011484172872342956394899668679785735470507624023216492147473683527536862622814319913222994615120311185273022568305222219984243725032794400723150905633383516690951032435833496495856971106113230259616462358809984911243865251937723459929348115002245905763650229201459732151412817271982800450638064292437127201392087656657964453162608796059153286044995302661601255709038240329571297617062077533935374759665775278201895765252177386277014889243400108638320700889132677073127161732302119948586823944107281709113607234464712974589029208254824797348914034481643467714127367766939790645699334728925834183472263372636275952769492663000005065975113083401892396414999330713437000781470927461447282221748669092927900709522384906079948369482963570015959981544550331628426170066639840433578945829135361220406464613758182889709267403012953957379555299669741228316628048827655095326978631606852265238632132443071490563713894699739879289493146181110211118850727769669375291415281283504478738615997199331138082141528871340295908016378552121012842895023526543633856109402912069527024353962124860905176404860769531296908878959107791355216123505734725315901607621274591563546686496666278005751308731921424705246476300232699581854592792353393341270203635043551753148502816911347456429087303673053817081774013157184632322660823066522319812843035590726188071398210658099870618824084059609539377436048491371173315438225021111482156165099152081168252046080277091500113637528188214689038809637521842586396118769495339244538817840300345407607979580068530527443629048752955164195480312060255381328693999744182915031755197511940735496565121459072070919819664053795912241646527831098132202164534498540759673564970931202696510911766378172935081577552982900130346938261857537371881452700153955719498787090644981771970860649094745516067689494040822518028348672012193948854231173598693472149079727663365686447037996241031114214022516425169722229226491161549871108260561500644698135928619885882891452218793501860049278690554541189806220175448066251321442693331777972386637243426912731221532132993570973027734838957694165228139890327186769712709596641549837150086372705754499619030003718212943368684101596019018345841443098136594766067011558790699073613614849209687155110376286051528648574884088946609064881917770843720101524505827391583941922228096941377782015840762616158889893501252568265368539773674689169979887728286783042238170668137614058614269985710204278641444806597739372421635135838818026825969815173437077857538223564018539993684674733704062197381596480560059964345544508461355815397212682993864289751473713865817644965904018709675226301257116504604861505144385381843296243137786721218838249569719077565844458943741970047002961217503674427258342489927237864870852036964696687769186249771695242743924615167398109659936194115460632928268865900875464759832296789110744266799765592666774117262359609823650229298304230634997100354917480436117957612275827943693749852531442394645083917139719209886881028774912829432044284903179147396797111314137706546614961252532177401498300630786460751463226453648320616115182140206257849379324906398072715232889246017644146711918892046749348233064454097349133359651491839588363447934725248843781955111800694723171420119879095881373529325482467793633177932985245354695541273971673139263277629543504211638309123259715621445466242330043534467358179378222718769337709720894474623559978265911033579223300301923094410873044796905546874805627698086261997869134102856547402715818967639161836886803433182176689574982444088403400392311225007395559133424207315668164455474775694831384858316957810125638276901551305603485382873981499720456285252265000566824202087558519180945399276295173182755970871374816105521888077254156036637878739796288234842636722825375259908968935939061950190356774048901842549484430433143177410168309700568032615348587045894724334690389059282585968316764094109266676346586334609838318781801809037404441769885912115908521536348882289586995311689582639805771925165715487213552416178041161932934402639634338863955010799711778263025888405919337511943056980399452714461806089267132293384007497583831075740790931304201833877216155851293909727211472819010324967853828394222005823472094888810504508806736198229870252339601781250939168675451764679383649195324532180117230781308154668213339054963275020036904558724732006168625653091989781934849869071703612090119520738687699583519304583358315406918280507023397812880287438865570085987565690429653701247774035749155371328935586544912340834756763834356572798929888924958436052403061347058929801854076768610770438483709547391857259423830434905964886738063962053117009092561055453137932404059435818401280664343150222382746124232716845168228520178148920227602341562446102356261704129703108504201951730199936125288391810518455516009712070148466600692913606007840105418052153497104867083658311643539165193626434148036697918584636498352103786808102160907047361958248692047972856176169918100911136748949887751469742048083792422846558890824643025567044573665401966909033102260688695684943842808635724968253995162005725092818720528675375237539382468380945463678883649433729951798302828867787375317443606903659178216305498748261087651613646708159557316653258037984042906147363449009852812375074023749225735990282580366691297818457662598820023207716976148194508659812799963214585519189366101447381355440860699306480369745496661400897898002753293083867014392146079112190645761996776144152891895073555127265082529878708180103807456156642099319288786974024281674292884046514040918638357836302028658922560332859482472192787143314939267983899997427143619301419392670034349920941166851019590793795142486147671381384304093331962825379917152750341771258778475856946964614637983070591060488842668182825858002288125516825362377526765806099657740705296720024262444304926547726460975738570339482335193848719006388200727830510366256883927264924799486669502286302155108579017390598592176945839749279178931927882730831183153026879717604310425747542293108216486878654278291806458641997274319545861792725872696838785127258319561278255257000267937053230526754037700663009667291278910971734526485655993303233435536751536386790821747810899463210743770806253205697718871877642779858843452443600516551819889251645143309907553082692877677144310990840908051108313945104287228422723126232848260047026492109621577988783308170008169208861840444068716698057900407831444758081056171526973756449659840525732221322118573246174010183260784632363649715714824381758653969990973069667839263392800022408968135990243384056357052782189216222701201146211706083100401886843846351480078898949058461632608084066713003521234363747909502244941804045603578213921635069975712244547593702727286640845822755049650737999499438789847357922102049022277809946581875381041658559642751427567210084919019763427385208452770396362915789242541451911576833429181279901513105514058529019576264180618783170092833242925493919376650331020966118337130042114304364215900019604141276488928070690392306392132280253229883978384240049393053713211515630252665278069348746428080200983919214472007131079654300312292976451308286603288778774738291855694601488391539805769264735148434952802431713784058731328011670053771891172369810780852591647400746099572213377147102586798307578673172377682892980583044496979687373422886388914630530297278870896344101492024514767079097629553329630064543127692552907829685122336038205281188561354917395607949452178399580223546136753543455313755177160481826209632149545429898902514783579361120634102023345449429553934737535761780901151643182834169830751221131763536217285075918735663477337492975997399909389098042587456947515153265531966743294025502835350129571592610111946157973271843673998127560169711914341993462249583858027157669181710058319383562035361268468415752640289730555924698970706626453951192468380351879535905196376728514667067851126320940948085358899407822932356251065608222791524321227282572655235032923820220041224579243374967761072037640338455088502541547788558186797346528645288573921648276188608799107574704881343414269997043869911292075770553135942300438217049509963932585538590489342943022991578661732561502899726015109093563976483738633127131106674390837730581154079131193898827021472537129754475842462142293711146462408464404375918561247453083517032654733959733642155142405049068654630623230622322976424593629679523346478790003146057664209791305245788722318608428103264255311323338493922193595795466429228295498151554680905829039893996053353994517903962419908610480420651892762976212359239370800024369984493027534872817240283432644869342384922572147980407979171875370669802261452644286971475588829838381770957870195440494537375419396002847770741335082262092876142917955449033557452332567972497641895495520886364828398985018617737764914510274003076742870809265649110410170912211931580840946185562554710660866898303553296274691584076445834488031612916589903759739499654201289808423668623127042032250960971327327234789051395051170678001730374969217505139122485055705823562840758241457748927639050857634549977511547387969937082315577365873075899309309634529306948013550305896577312981764382296840401451392214155000608466896503711116547311514157870476040269381399592120953005492139507209562761108209523760247333384824346649350558229305869667788696609931872874820149576276198785205083910548006362413723374059841264869312382877410475393758018968204609691708024423140781460459040518723808788257034155095198037099542700604107802631319204201400422669730151552176031027293301828761505537005502594985912908827339271939100579871955236224339317337332096105108473506918574655135834010469853782913385622569910261571915499879031254933917978465406154342059566569046025392053604982877823263951196988422989855513268419630368867408880261102500127380817204138748044824270999332021536586683559398640514848111060837323202248623702186548696123923530615147428085709432877018036971417548707691061468798297553709786821430360555006076429959949658783680195207757923838383579170240175650468968914231153373306025303902360066208328164286595088527863862931695642686808751699561725084006654859343315092529245792907468610657283130672287900447767706245641230546167898791722076362921740837336740735222493424554693095774395190656894626254054001862544528851767993786194140886951914530375233803429209150034620605051055950410146475686494933446681566285639480886443255584798702113977135466194364724332016895744161333083863031281396630125957189496139768122151922018733689412522850786876842926287419570700267396860114609342777098290968418373222284141092867096852871904347273905681961755212544489802640405307607001220439069431810781958022494152156481199809842882828759032652573013804298690438387505381356085263582400449681385955655281300974721423248111411779740587783957499500749415172596881184791088499993269074087336373589463132697981438011311352944989148922102985877286822094404448211140445630539844967939700534253551269622369862456891876517304674116424583411765199748868814248971460647642172691284673044579551015086931982340699817854988937471992830581235204348856183953216324254015516223815473049082586999126610819361773729352315233060268659945674032190023383440178044748849942675204937369336074654941838953556242151966735661788566666012018252853216028714481593677900678751523908143210954334872083570056545457728396289791258599086795764319310951687373314314009177003434598916450881798954668688835930411546431390015346599034453033622266751587515267512302052800268719689094576983160924036056674709257647063250024631552562152949930739177335232623109289385037776808474803798739493272367306100291645212896966979696576691837074306907105410887427199616926174488531081361749716841926941694347460996326788683715469727300998636424684026575262186820795240337315181299528585733895808540742331323630310634337235337170202533117778363384292401309190877403767327160591381185431061237505831162544617643484614545256041869931958848076150243283790264166841314925129990345466238811186033415923081280820273238103399165287467377926417025202671416246641816122723018291731080775147989068487912519441599546991110549689255293218336885035778600269663851019471024360945486663562075460106664516238812066182701793792213440912506371900564682057281569599869708980888891480050262173050384435642219193755789639597850992069155431306512159328601275193950370166531044401517800157011533428412839597384234656942762911867666548660463663693958101166465413041506089115823647708252117302775095585802531971453028994549593766938280881494213179881880766290476993882986416747659152732801656792297671192938610083137442314860950810716719163635802307765528746020702491373387107644280681970341132007126507953549236628310054352123085405115566348479512435358763502415731063644030422243003922563020295540979634391696855862851387507045008931918164404427466795132232159258667787129128576854037512975735096589642152659896289490160799973955710225732999272619971501922690050934683803701105964187598349353968990001507036533883661130112433279797074169566624275644640134914710657704560666684207693420722257817069196377595506070500477359503513855169989304581017827665435599603234957481754201778562242783434521508131804532146835041848426888440791591693500379523173330907543089192740671470507837829644010789578492274780637255665708750652379168655284185652059327380528544385573876112259510193079339204685340154717067842004557088809796603324319871787750576257148517999572393576017877367887393601590222360583539238126098224374654326584458348854346664825542244171290903416918312844187000870452863354414570655778724463788910272214869123011852987742571258420845268326560453586220901635810045623247878671722782243317346225374152151564011759752534551595944755586816932865366056862137209887239124513147298718576679990422523574812514772014510939280691413475774800560651410901748598660232849130417502796864245736297631129611156653414921486248609452190163134726733562204320150235101936643463011787524127027999683084436318837283677883343955423208672422043213889477142206806472269750365215614837772247961266468692912097850134170438911228085647250574557588839369773513346543127683605042600334163794236326598394440978980940507015813816815425218748471832852270205449567651370442338984272002083256664823771299605458979699387163893011389485437524991373375118305744556956476022087521390835503119688927482959100733416438623637537444873279438441152546527708674237706165243509303069607935289231405581710813241343704933117166059370096384189719386838219966571613962955385621108728090922310336443465540779812269858402023718070457996298638927523748025040571457248411770182220334497115260196290011126711454648007072138159874077325211315088094489802869765719697474466647669313433289465079354307470949176508693973465171764644126827678925729541540544246940548462336689639493567489479861450078021985554453342431435674059820227583268916940881471719453843851611424897987702963120892207006729556930897444113955971181329190147790800944112830345713750788787643891344738928979080494913924422815944778991635979737829405180720199920267362671193224151519153980197756565551759434438573751164944564442795598739368067059559467737340933145409287516729081830489963593882215998760168854259441864592564571345095643792357164620128811864575921790672571792714512068340889041141865558912171284274926016767757399612228610087647341365851057267028155082660965205859076619263474823302933908003684419439126869943814333739924419680794846512255463879456071357996587904142215490260382936506896974670756361755861416540993829450877384339372725183957319707083658758922801814677332733263174501634142740027375508505990286159145232732327929861662600692436085990728764114363582251902632868605155682327564226165358281075207160504689213801127268752690247579359868059701336544694213188182912484902360996624134309152318575633272362337953577041888006824082838591449900456822009718650481744681450798804217073672927584119635913488101598711532069130425344171321437138859207728580849440023871875202672495363807767529328585531232842561659666962100031371297579840650926911336502906512106828574579715477215852178080122643361523514681880967373662414988013782398484629058759125306389213712101409714727650262418849634178508673868214682768200946517805231478784197538088149902437916873191524296637238014911572840803108524514887664597666197747035718238228477685897533140012806423194107138914485864507778802183642190080686189647621770114291458630033894911214937635104641691599794221043926072930381053234860223344687831217298333603422670943726837546159933899825082044095729640976488743669838856591211100194956928092254112359734595429359682151250581607327061584494966318247801496456251146773250087329485160424600146326713742221651687623777744573469816010744985473532157386427544299015531039735999550297132647890800558465222841985627940780360495124856334057732138699615243342782293182693586885421098643982825817682145672109508024891706936936787893713575423890857001896846262413245705573226977944612469669936620632670815295512241030024833458177003502558058224124663801935932402243988632217433560790659539117157404248440356189142272937393078656514324238205941758358647112003618033426420896102472693663592822807692681771788811708281984584626151883020485625418939138148520978377193572910208143695966897928910237275778750046564913863568386254597972157601952401556002307972986472358344314047206206987976302186191769651622403889732585330242123795477112117198765431638214276073547980484482457004101974515998383828077802198176464772776578891334811832613494780075409364991602797101708241028861470094562138664266950827613673034729346271690395923066910983013017963424155688546410453538530141104068370764811588179752843016724435629893076927184116607285479919803912527402408353232990176386147255953442827648075942266699931076807485864983065037881502792242860732154133995238019322084412738993932930806669158833491776122874565786351518032926212807139417377890628222432628508472992524415474141331001031617170093033562160562842244350627074527896724284817407989981891797894669302205315090307535996058338376667268936484457294812463200734689266634363190423747348782710400988474272257183207564838013831449746620710864408681265798533769793732246164382403754475062392693713447298300747274339834217275827518933260077567457219945803958822219547756064112389910360636794239314195148155230695015967897640588040319657134321002254750081142509054876888999169802766613929322992341297651800878779384354928766870193691089870099057898215666226073910308139625019867388497268114936011802172023265396688750640533257177852742208658224067044682434573034939116876008798857173735381944363857271594699945388207841479902067184613653273984574956468720031544961297974325793630373429899360882794837114942206379714816950670742125429052181688802589617257296848134687293885848912044105101931083048229385222775103753732651789192375245069188447155082083566450884611697774370368988393161704000814891866858792371059097491004415354823464831253648580371654970927011052351040035009310446036811526331172257171387514494466094104039693996198928375514030818365271763075844975693698706655152669897759615997830631713111791361413746466745899795674016814356317281008841748629899562270880247633918260944788729834163114877474139585507828558174165887695152399929173994722116814041625887694084945842495797383029725348919294829239233698975818537529575090057551988088447633407802517956201731286761174809247332476241414100685514274538972063260009236643725018689777682575739424393449293904699442725898064919066618960174272571277764651424575621727412494839013598221785942983650784355691052650768961105437277158416405036474667139942283483446593074152755862373275088204530585685194112010681045003607769236549750133144690235978244021789348355901574349148211063268810828774711682799789180992904941954370043716525074439495735178107813354275975764608997639246174277644684593902501975727400494083476765780628941978531005662738149634122041929968389532698486188680533970655198786504140860115205100634290418600827821920037190257704128430927177159824642044147277882961634399398173987376014343429974636131020716407503100515562529723784151649411721316150098605548197342956853247732188747259219054301070792395788799149032034113051671775508662958836153545529313501077179521228442706602791686723003206117552904727842222047137504772229701527945780700459694483405894309602916225848329861512904698284683070920236303736242185788125523309360817583123924548078105096497545260281264706687187875081202628716093602694083306632384351135214742654050163441023573326658252656124437216492813861172785041466541934928080478566541366430287392829207848670002165163003001562359591611579579667075100787813030919103445410048228955663918700515822247596513343530428132694873805298041300005878511048405842435464621616083762522600794998142791007724448169651053166247184334299564989325729845145698452500576389970538803928174915888403187344140050257517635854249468026205833967114822684237516794129991545894127177025004731826792343203554379222909315435407183276419264821713227901346716587362027021050184540192857022100431367648609879689369011455515182430413944991215152164118229987294637242455831069243583662629517957825402839523030035553037995353973701021992307868433041373737641724630798818745021332477678154536133777041190524970640598249763654543823760494331570086406820669335011400637315028080175071610358748398424929976186951953742806490670716368495916258367450703609525175086662288856027036320318545213184611127751729704834929679962921489775461803514048552205734506211493022300575119276445676539690356770073413579121588390824892981942462707527284420227844397136353427309357152922915325958721690101643774838097637743867326381175631615261069142790901995086504048166312650609318211140886314270927656322284913148821439631501861814695590347699649405765824904447572675569632318890235628378711761634577265426298251289531383167893935159021200562636238473481424932847829885848513721882096436366542405543423079687242794071193546486970264910434897846639850639683257466739979048251974693043251654884918674715948723112778515248968374674439258113183949913001864020915093843219483586155022408685363900707085428824086896578125758534225982445105742205533078827842887333761585005222859176134684047931254130741098612512579672838487262871289611922973553735090517805087511811512092010939650257501298257964710911599004596305735504272234446810199334737210660315628218992437748063627947679031058911843215573925129607657815614509813502917202194806826085846054950728048608922359615746217887964775813907590239736430924804388854595586568307522876197807757717938820179778978523199110971845496598557055088438865310921751150942802746584405649445678249723516312925481559602832281596377983061211454994325635662506645998540811797066537397026749889311750662193842401476298881820661503996791256938662609269418494678435298712798726793463619081233045812834732789766120458657876977261911364794101941030976128714365870472294245611210638583169744026033081349140338065681871209872645919096858022720052194121065812269365693823613684872991049710583333261484275799685087504165666730919361513941599248528146361225771799602260391741775905950444183707369889271881093745756903280252941099440985442627044137920742894559979834393947251802406074229683074395392965592894414681656471557538434620888778631937264970466578415831491539067318757774182783197885292627033415785251592904749304797017435115850277212993266124326914362924619807870211443736580123137816629644691513681154313493238342499276985006849678555583850873247783015491083567355827812220521796037224826159901039323872539233922901167292022347700771066307531401621214876443154626589527212103390438474241688786964482663332243005629828341136762439316901719319573500140262409194411111229824385296617245491562236811572897244362944248155042271809039671346008700885443912889153960888297724738870178851921055334072503571233045363652298264025451240700885754723175938943224645877196993032931998695808631684025191040020892660684329466930107274363872370985216148710359177927167173506411864951321572416302885238280815694424245977440332672775527666575821040099550661530696339193404527789908024832570492447419110056278929236945085279282073308368483279200215231007672056755283366647194282166061496860022366713938094936153602283080945887256095349911025309855867286377789487617246213760344474069805016924081472778363350918309225022643871521348458309468843234330875701043785559992451445087651434781770574516011178680812032388911764966205943825655505277640877324165255216755077402309438068521411323937293449972602368968941231332010325598176138723656086984416408729813646836904434740363868675577866137313543408144193974761668911177706203580942877983040428120304475489825266222078813106822313826382676176543130986580326853006277738108315796274002476988465698179542203890850905542275149699684995844540255699195530304140244499607716703582722313367756274397048887003826438412507629966371505471308769221209587527974000764653523864853591686468228533561107665403078882260769088248338103675634360203393767851889581054247940333076715595455895261029042065359306035414631439205770126574642364203618361338939822305830739398147930501114803930759971096621255025436210058712357774230312305506908005626440195426863533214511370822771020397391364160457386135658700943512191863446228690182168519214465583405499601199436902282939916247107057563497048762874574256892531754788178991834795522318694374751438946006959500627193092916811680663973582673505968386451072545460408650847579552698358847896483531626107204680278241105404222857767686207358256115442980526829448660560013637349439087052407760886723952588190929540708455499741319935530809572554430754441769617209144397703795912064128919775145828622539284665519954314670335642130122750105567447005749517797854893866380508635339090770819518313171194236245966201889461560288876466779905424033585441690358300563946824705116191171722703074435159091395436741451903939134326650203472546255477348318063519427038447341539729277460155648770256704523092226233094797854547053158520331825734080564303144886708074262248857890998135951176775177619140134098721804050320453373497262410862419675982940562762546083681824966249247542327505566726782876711581288489490069226603980457319202196087729790523428123747814549200476291109380599815664622150959218957866435106953046763167346912909373329067766295428672776011112238453005192702913342898346201299194302985459519728273856982030552558069164636804353244438065975122400584515082311402045203052168639423101937214525161372695292502452916199972662203385377254138459354333439641414353194583452886778407214686919179927368411507427420782783301459518990193059082310294939006149340883053356304534512465369493357750641334230041496770386943058189444056749006353341660152801919432393413330044400548262805276155855643175698601331446786223431597912449103368853360000224854805606145657253919178450453970697986486242192542027396542712791947736079774602393640150710077473036234107326744827765727825236581330770450782625714055723552877871248945991396460437351411259838530674960722337502198132769046271604785665966939064043939777334431437617153907138220091601593952378168671297405032156031092839213828933922028497123920742950692947924718777595751355566915199387947173547010115910466289572249175395997184570034438389198718751031701889274540521077397882418530986459280890851845804180499344259190154090916306240728045695550185322813953122341828743860212564629420870148646145399694592892386408369412496271954402038187244282296955820109643590549706975334240685954582084143938616195681726352628435621839774722116565243379121605168677759104460817287898610331620455840472013828687672281363877711823929566957627060345327464670576970316051781232776628231127833415147140952795679215717437847514977495920973096280468450737312804283737480788787074252145687156729256634594124020443603490618816751556850500754067389355991708614490380621031310386720647798114099658496603225647372335117790059432371508134678151776333324584206250869567707212770528605206856013372356889447074017963192655795617683500764611854669955114775769896090024719585706493737811102824350322632297934380616249315613356322264114936916425014601302871158904267220944263664604335423504802572447786432293416849656100113433759379902220794200831604900862955937472068763785249228771005012050780561378594882323658202577729283445034533798239979223655519567896981508025050577972314819317041195610326405438179869142238933961155587031419814352623570203444892382379029455670335497967486118285362618877032995082146445394576449673390137374984518349662945763082558779050968781793830403902538081994891342769554688789865462638873177709478021303789731167140049326012794394241974272281829724760116978600696001077521375778227334343008746208358296934474399076174302371497502384626542333114237524325399015679823637118021660266253475812598506583008410921164898242312329510807848045509629692116119508836922599185644519640596053453197233217115405785354465630508007531198239614926434836247714796881927178527806319250076822977539498089204860496572181679442107415368012305540175619701585293703186875443945622040675608696219769086867099733719452024210864525917318106098749070847345806601998239943261519559338499604826744883784961981351630627572393393642486315816104017357508165770174302379540152842817940344455988975058740332179061590572599565660180990934370249726047877095772848337487402947558315879815757583866151726120985285378613969501096817345278724328458813934373505240185275421591093804287456716021811663147478193238132423496984981657723339176271923924407884977204440954451602254066650731992944049869792166900576358866393852888363348188425450139533938070263881124359789023898179290714710541668731530817346583438124508287157345325985188526663019178628002957257429050781468955260278120985613477659199125835282199624687665965575017800408279892449212911963381517702013647824179938860038548217099782867375548331597385220513871585381761490147302608440198064453936923719434917993691982881257122083125835337901992216290673915274906097099507207301449663742142207865050412990073996039161059766273265925329623597842287613623646775034267237325208985295931941999530331900550381502717704661942223715107572750742872832215481344239267148641145717177358859741822738364686800565110428222396331039022510261796710703457110920139557664474797453750827163433676285814821888820355104757435636481921785152527811930086547101547727497745501535020922694734742428495579304265609131417449505476004010929359636372894451670343673636744820924975536253345424883121114709861461320108889935535111307604287657643391840908117243273820791771141378308984948313047620277752398411339487242592335578351446930872123425917736786817083265545950865035980231220424949460228475630724538035715464944575714501629375424992398005863144832169979222102170481711648078412328389071997303719300069427963178180624324087333340227676378582751885399408626471307494697770099370856195312836085845281116848860137727611199202628763432410982446965482385458925163725005669540379347242127066689469758226807159088768538543553957140945022437265215081982481406682340021457235385697323318967156636268835630560726310170178119048160071422137660899694940717250820222451825256871941136822972763769669407570265969665931798048165525836479957430164747610038711859270026623027045073571548253056701746264548354622944926081847447811433457338192783195059474532558874541799134282072217349494059418850422459371353822629480059369891465844441876429313787922331714149570276520333181084203415512975446258590720117921409857945539396303915786752549373923122370873123181131328155017806459718908270470386647442960591613445119576164463165019731738272300335454697075771255212991971576661824175799746175842183476269007426778793277753131731711267964953502758489724947733648003515395813019618216063962922813045219649248240166315872362495006169169418178959488509570658107764625849888607071641408528289368307268926280577442585581717905082071415334505855118635887242437480602073835676836861108865903873143073515220396384542319991483940180894643359111609829172583451652528961054574513764479772559764378785790982027458820959874916150418365468653360817496916142399089446175847577352719191761862846771144935045455359599400241031118348815015064080207242974378751979100936043971761311468911555835413992258865973686594944973452308668371863651074880060075795704016769289412352312086202275752271942200990265155648566261830353837924750578724450567769908692919368122612000659202321861652181509693034776751273763910511070071524382164525386961163976215354451592100563237845483208271196487232560489775612925205759547593802710905017637454060503058291963301824093958813001734810326619322224481162703618021682365445103992153062642804861180484626860917813150607061806281645376306378563570821863372021010240147859612173762198231842454687598946378075363460956659531967778770127675115736051731612998808163203674765735605778051693714872871701068560780474088707679010973701174612098956071620805996269373289506362718372946586748383474167672495416704169829211755500794521934434302885510522769171192908961740154406973207090202996197530324976476190267970331987977340904651405395852199225825771952506560752141607813607407154347317906355308993019689630932485825455148194118538266162611042950693630339209917194863807077396243240446118287444584521404100551147864800627867614503741913363303795202677800592411732819970821537384236396052291983014190911697311307910262276333939619816090384803557169380246993758308078933900995802076369323105368886763656881358192267622169200916810009008875204656028225337965833179135628007090488460353078200291705950730935502336416857234267469897996277291735811297844281283968625640295288354045240148666648421205024297708227482030379605901177822608712752204967091676909061339849305422192054316811969692883510918251185907460981644994973651739932366548564182739362531062357654824869835486162051097326881066194434018963862614253006790419771343028611389334946982525866036646502205063254170792629379222528556989870866905339950578552602391701737427715687814933034062681598680621662354186582032301177556037374477050177478458268016981758214607208145998222237628923426844718744395221014711428271945875974703176744488970501178297631393187305606221164805969155402105366410661664491121268871854952797375336726115331689976762661192392136620401368400738341351083283342384044186390219551119309219866084492328101789677164955823484256460061835795714685834440633264820778760628626537088409433335804262169261067207077759279878764707681381723711280410994474383353506099316813572195858621745917134113084770427646562500414594862581501758104179769558524312648116110386529026737050581294402388876884073520797261488819137120217056093425163045608099027190125071335369539369666327376552336877748629081166498217772673998840554828055088855110798126446424435791479960441631599256196145560552444666837671255078061882153873035046458875154855431879382190564627256644255514426980809248237669924609275397108180279669207182612853171146946436387578660873050470469158139909003487754444933751784586579515507532048366528808075568400308605863741819369144356427774963633744196240295572331936435716578712360588570275666535063171393056627940612599209964331041559283780169475116488203018464263787329698108320884140963739068809665780305271894135033795321222760541398848834331929153309216423410954602614530717434474003993352876652833557082157470341523602714007210805383384987271747100139714745509568106603286436244204017679401885148377646439398831786139698793672684684049385092776674562081785795865676605486764611406149126505210484672627403475430755697001770039126486600862771121403315392818662195114505886328981419349228197368906224830557332714860701501721737345853426130432409480388478598492081046117707185436965316777784662749540416315640875699932860474120187318494084505259964487541479080361347689195821419895111196172241892926081995703423640485553287072032012181860736905941028921438044279203833253285855116221046490562864136513662557316291967140229467088817389151156147897417051347761331167700622230622139181121337503196862033373447743414380209513982350198336936243714432457365374905296935085851194731297311339172468009701551528362621683123960271355192867306125749411622302536924219801924762144969345622443356643092005506555081170540745873701177382012641115451291865582148471888116239803700618001547312192608923826032234722858339260269164078466305352384960235777981776584210092908491018767439038877447872349300573428016887625469365470549867898552663145199903970188597171682169893872202721426040958389088461678295681935923909520973065179386661739497929408745980567561110431957103356190879375008196228172780599730746902710372552901357797145010364322835948460930345508002163040636266047072131149513113754734573911815776223380748564774692685050769265061251561789790607469851068518202221601169764308344373250703422202963054684441038913704032815477359694615863466941070017920176433862034664061104741274647790356030609993232894673937699017376564042743753831948810782380021316302320291765805985709704314291943585269104844693843632882263185295024524368903253113969354695814822045238271199452658647439169113709896685674620266388411057364860180320501849915691907653957046208528479005214537979372616260789878742689275532105891826616877711726773472077059761652481971406978966224409198829283606933018057476844106847334898862925969767167961565179109400352815378600519450076050299678870066509566422587619127409828208912923912101269573899858937626171798650947567233724762069747009217991692471447341894635602235172940578179555544435715162259990819977155341350543801687685319710916469164513043737015615641707568546593670826612114139114583576635041475186272852429660214936207773368132348214917261951086827532755760928248766265395416764628973026772574556517087574220132445177446631860440281074033060601909739112220179084705733950493308075180010540964539398624836592817219957042012849117485516734594471756909430882688535630220024768739303482908062622378154809661658851037285463495061258068497978757841021478309187482428043838626099657749323316074573296041099772196302548180121331073890887708540814571631678762238793457212421320321119144277296874460093714937352757506997646612459502229095496788227605161989796991197337786879430377391377523290890179226733146865774269004583858266864747574135557742363916275787618248439430079684994121967669832956560680988893310327424874107065489355246680431435287769146756069604845701029771188108430942603418375740312488103635374543400504842589800709271889872739925447957810001144860018887931816586980678317423924165764829741287939875114206437503984573453813558073855266622790231046029148320079918378781708411138510699475175672795212659699530461421676660395510360392531520966558845520265815855958210986972743494079453886404016810872482333094446097634157511517620367093265220187132286426632702325268687003681622738333393963111336720059831609081489528722029868981235222675823763194468764959895134477635415887729211092953685359306089589202672793702784398492585257200460169765729209209594328075750749566890516735868703868613844023339271909320297604392708494339049472913982803734248893322347527283900226220455790975216805794045933946570949535782967637370333255358905229990099300619254429176121693833470953294845687180622402095349618989991438470584326567628931333604003781613825934881274665487825897642417478928551985706104409143055761682640989882008539932499469450498584343679556047164399271329043859778524137786645790268649580704345885814156974606592558232800695027203059596021408611265852092287192927864909204668102464201235395003630457694899467121263203791322930240675432487456885279581944097946135640470393553553189484592886836686008844407321533384446121289745398363721958846811380587207089602490277227809852637828407790028975794424462537482335566759909705291121933869718085756623784990159078487520687513336492056476672000437003051387875897766589957355021773857719784101606946946859664333006399483178103615995114933688415448059720135543251370780846252745866084070678664069694005716693214135499233446448060124850077802228295344056417826153341135351605177878726309394675562919051222981916303403576944637064830569188048467828712469783985360758438325543512565369212105706434208141789473150995854942374758040469227667348925671888088580712535295409625566625088694685220626276427893454593474960473977556981733097869120311565321313912431848564241453848575611150822093890198778465069943733250576653709955500177189050001180819244923108341487945609516377363718682331162642808277278981713844702067867359914606963643456666794575950676174191234565871948642684625780908647679066695299707561477510246112102786681482508836252915677375735723507355828605406957563656704818331524494506816318861280052313962721324131075216891114865947061390896324569993464485518566203344211303567196003311304316830192916507095860238861904885850340868355258562906186024740745760903485908848988584148286858617872824737364909437084720373345347873993602152365748889683854666765984230676956930016528720373232709237221909210954379750855154794499330013736680489646795132572177094613955896632696171033120919370441026935900361560921486138713742146798540272974937726745536245376681865148921422336638184714039105484224463699187066103506456478067649953467096587177094793682159802567740638836441093922709195598257560455870448690715551414286293100248334638601951407509791944774195882401764081979080645059822905739574403101532921227095720953953317904398256586973128895569515860116206615115440782686663804044546404564500676760656601020276717080957403486957067964756766351596176999607665532878084181924712425029384601308948028578352765146783455478832617279354934100188983073566161459811834760662976502094563324894254549661354260670725143102059358450375436691137090388383709974414266336594002550493925454947129278234909912373471666673595297452661140181790751187040441887351106638777009572422989746854360072055645753671977955398018359859449361723525188831017858483080274323983794284394074211267908513131883501648473588486044300830632740724050886428377632166695931645612094241745870076393572390188107278255011490580589294883251224085521436791826139028420740350463433400439729608175812078185777589674381403634551993592803383917633581495650287966431458166360926785447818860418851619768583724072682550780098377111380270644846136655598637796384020893371372410526289098248745707102022559552790367743328637779083470708881663266179581841401232485680945351420173779277244167379608451648227127928384056982952532261493820136142008280373266132139748551730133981249820470567708027990440225009136645077074174910338722738344790000148472658789230870349250492160125798548485272822035087164741972502524899432785275576999386843008279081104232813437258236956904810779965909914399804807167492065357223107312295482428583559163338984628244190272432415193317484212675878790236789678833862552276667238321392886604918511705715138143004434701737951371523458922961408782122124079196460337335785931770305308189998419201790286432529693791940862878683418712415103964063648479751191451194921046002776775352759462095150438998300541188991071148898089068940418620558824292252506516845748655263399627389451709985466441118449824947233605824146718552336527337026560147908301137211053299729105522170633059642143892797114952091767336946797558345543306034878279629627071016225521857552863364812245970261098585750759814033947648616042366483510268908636752519333005234689208950436586348722404204996579569633588355431809086563131776372732325772133709210653005991985858369719166313728223836213581374312533482631870447849737649019340792741766923054364110746785544852518286156751449014340450144186284459351305009723714611551894967335934543521380156065616069901103479011090293520580714980781092700284616851931011507552686860006879357571079526673699553262588236424171145495155804693014605186076291020659289561106345827174874612754366670694808533952948537279630208193000709421392191453263926077770001228205504286333011577401981584897245210700098082569088568134387285580817635261153087743941468335947210320733123149468200116718067675993619551693261925580104962214095826358659508628914028282772605372009403775537912363304639772503209782504292223263630669594787556487087747163741888390112960397080398662546796547989191692899367108675933106072762040463246155792726876103601007208855340935285363775266954700601299317220791190041146275649346950640160561760457358383446556102059770784656429218663558802709547096529478688801440988494299215902415687577188519567897940909882660167074173272553939871765134603258949663838631489294375914537322556211813375965441612192099692260288344567159690781779821776820988983758495495036268530718567932063418864207908296771411458568601996748584943292175721362314348604800760668757909808138781393375849742104282207559272713685913137317706767620052326184751957601315589453096087507483274659102985905296927699919401950228387433830240299524725780783285520476651520030956511442985802121475761399461032298495141213474073416825514629568376047965794024912939582636790667253652148880714914467292636729151539146867461681906471208644653420309462483274281112523438670619440289410187370892391963794319757017738158169156459468892137338497359953980269974597899174318533548191822188157536713402954479412012399263737501592587306599682545275100822494610418760887405891018860219107388895316501700954037238952726677267479145895945896873795307656043090832099096778111902408016291531765459663634331264146594344295497125176267749650427427206896340937299495945184124467910111810331587493037200502895978520937054013697096627398743011078476890799221809224027230246458828913215872936286907524930655260998970059324935954113956690481230686264508814224547527551937375797335077358632914649209420244793693205407144556124111077674960512134548701933153454608889879137651729249960120888741733176686967560085088476815737062886803332242694802728757883305212442151841388669193880911822504397432433983511036287939520055667849961597710878209652728686080532275447567081250556780883975975093679220134803305998993509482533746505915337283745779075170130066433050474039349848661650633281714707458912987021167849239654629764044325850376796930567928627362916661447884544213129081853995850421976017368901422131525986048097449121051364595571435780138277409304274393691708660198822271900552711089048266552858397385438401418095211627480380079376665457359215598478360611668296556813218035488954171376681443644809586357388655613489107889246644113440513811631144148727395806499824990133367192360712618243073046795180013272679823052667512050151935114438963455186815578576978941439194594670274164017840237086117613677980085960470345203898702312645745434711902134793748526499800241706314061300088542289525783907044090058738747025246097992818680590005471130848373475901103495995610565863264738303604480677021024828460544474672268526318124752038022631216909173992488943868512514592399372947492973585696505260930102390290279655778995046049641044507511341999230232692730613056890826430772371530254114357656775790235648890832634817865126504312985375548864178413003858251487250017784128475815008045151001731925108546087613747484506249186783533993884154514687761837778566947314944577239003204594449543866594901249066812277014855386689704202404277893130817147166450725087270797000770741829594270191658381322319908640664161107913979653401412617519290487517754003321011205180563723543439829384962086363725621919167202913633785553301076259466816648773839125858556441152739172748563702420196674962221594978262110528878117085403132290273151078647563787319621791329998258924204128544084123246540349294095371116984717921103815467950194486519435451308601082695595436905555518692275854232471885888167331753474728730573836564075035560776905543081731652398612237061511306541722616470584245643563461459366282403218070103230394951850655855590416961489787261384619945300554903208915854798002672836862315041746616055023976583976803850601627833029382340689853741086482408299264943279304619417957038892640004562914766510916866979785199130199382850277087286325472543522323639096991542495226465362322718734080483836593088145946579300171811797313511789473613865098576876623524976185417767195127635151389536496998971047576330889406388351635450183789049371934648505530343916350997455652072768434548783650944716591199621331093033148610820683868947623858507715631864351208739890906438090923756273731223370456100117164112449394770818322084136284641438016302310362413707576923014797969653406578844454213807429699012068550384674476389075819689038557864028361588332695427452283206662703658185550197889132165670589671154666640909293887499589921194571935474883449948321292701066134178187925351208809477547233293875038458713630451459897168092496639515430144524043250827364634405871649539304672830591843203830368367157392477267422439438294384553154500819939098391922664103974996872175199928455732135053758446840761150552023852110466416183122210920725734740572596250267928561729163396649617593547204369950341079452457798113730441993786238444326973900864850946506476229751931121697558014004884744609233927580763940005965675890299924540337160679060072473954401814434934315236920315210980241201524956939973983518171334266424716747044344906032925498448230188025164102454441245584769413060922364146931466750610037865725187026864060883850918491949032056742795427480727356272087999860551294302609755323103970795456535633243330074239559621728737215357128072747446918520479600528435323976835270859538627647469210895555631583000498284802556709877724310819899960992884073713120070366272247557086914513162010584755743867094273147571084394569801769173131190506162005010382604368803674168522485337389708242447937775870744574429083872123146915455371364073530101154099407916844037479800229243128102962482957951129321205208791546138307690419230962485922375739724237629556279908696460508448206760090888960795823703241928179659881049164608373005576487851279309097350484816035718287346009615979830876387642479267770596738527996796773384800287166838101471383876997766436178262090890504527610173105502501309560043766489214634988245981329828559997759454947455065452315555717139601870752696419036820617092838682983593059230221660202417847355349635177632291831114835799085995948351519954336685643146263344208947491646621413855914213468805561554198431090751531417381250225690089954831900647839049278788649989053047570651770225196262145183489898136541370583638794718932986602013384061880325755127193803408773518890449026215619335414025428481163764579755359412383702369597043087276444827452572465709244007697284423245266798620698084587933023869466088807677036198007256968758418966950261766261297652995344169948875305419438971945638670116802933761418433656441395076170276590318280071844739134051716818960663143564832959805299357844157361953336508115343012617011884119500285370718237190893773058404511369060380748969472273101778150139610845647509986169463397681520377339000751044972749000787652116194367446598997661984205410076097572228882326471788530567875785721312507122870324297221959621977073974882716810946499833837686045500656585526724019586232436549417287551758172494770404840026679468747462147759539113287609329508186635574836852476978711495010746053825186337213040573754131703258100826183357794671485246049501571171163863480476489477088648498638922908969738491059730608373400977080449273312182169760385360530777753625567939221145715123884754619035435502310040554505753373975993450342815239757303583057655990383117589424842259800040260782072085148488592238057391184844493619191315986131772362845070190153789482242993000170272317479757782505785102028738003586438483680260710705509355974466471979359204263490145371355574591025448706274954646272094306045745504356884673492585012308499546357707987425984942765904280534836742539017738692530614012848290474571856546616583566772246459467641368594449300253209991844208725706613821486470433693966839116142684700600056003528267690547480157431162290758334019523071362973959689091025151011355785167909757903680332669625717738195259904957220560785955962389334145533317949995604778252369419207956745613369257736575355771235903553586452874447791684663552047069852433712271364366633108701188794116841349743934361075133888639468791139169157560080509754608052795078182182949025991008338096879749419415047761316068310544833306884921070462327036234510343665258395071184882480164906129517854042626679674727243539296595250661391938229261176053909795258316974796261533256814841513618298412724777055714706626693857288867109603078455631017332450509943368159539550267566037235628042626272081766016317432651718940270854602405130103681074813150572799678151450089405000430686180310795142178672482949055930212001736060082041056343975305671736500659937942327363510927583171181119216661379799121879415934360671440169905144867602564744113957188493192702701515152246848702582857334944164424199714589337052471946545370394312741217084379367226672278095555803440881300803304143903870068815182313679016745953785347809613841481964349532084089084515869156319758208576937436228792835669886166987009766746140797406063568926385934239586657725113610927822136548740929796593868646558972769514639428290743172167014642595166286806364951219481561734171661098885134477378239694857849251552301577752795508786017112262264013222235799393394002559282809546583075319290500468923254176153459412768708954261653234716533870141712013554544001657221641160133383395309040640836546432728556067942250862631152397066785457585931849192549014380777673903903136399750586207000790449816251615222420468438035967517485635859802651008301983682970378671936078281546426368580316036677398899833367079260543855590268022005310805068467903530624087203441811192429756265015464513124061650854349653170769473208768273254194198049721711517238631311575151433933821598631202169333991781857382386515944491413174910709737478683725323858760206531507822709002023140640496922485855697222284658991216822533070484524571878369273520993030571492682079974279366752762140858413395157458473543964634407120420335741598420716706267867709301350996875431536195525384279498015724832716660836588319193592837573799637433567694684878153640099066794206538977231716489808911607030951887257914085212310293187268816803633188588481439079221473770315123118588606818332669612467977216197676836446946826876796475163240699363695151655358724776832039011767137760514297830190550912633183366238195583533723734714030052681724413185481746312745983199783275642665349478220130593240875675956379693873539753565049066894119128431614421424608669287560977267924734473148527617735470622095713954905917063743013471059757996168284998218675181791800600692898513538475605525559749567954394620812854702000244450325991302580539098855433118216080171663848824874437675010422791442391187337511786132068173146858113244315604245985393291271848991266865962520727760067293211036031042072557028463006659366745489624404277959663369070914285108906374801841512773722577952527880397528456588548209454494965202812530323585741611505294968242005890394528572666414240967591922128628704065955156911279382511592152969540383538478723024003713641205178080567760989856134787504574083774717640995530336417326776284548987746645554884408911121189871814147981539541726839246871415061273074355995869872250133806655312467092828740257891429305675143486088512841530955087586769224518991417781372101840756908954169841386467253771689636296853446259206556632079734299176788766770378065058963467034613880903217261810174086067476663455127305725297816996319626990058308303791782665819035820208394114999521879340459673868363816539168917544347968916749421836207722225325175983542586527200164564641029360846794980269783846517505314562222627552504058277736655906725291323161184099506989889660376204440779657703735785261404549603795562273186393968562777554802501263194285195750037474851277299270721949157603451783892458270826945986774461579867171878063369027982509322195332187088177003534220149864980973748206054264219913797240323411929798607545280536273477669585579320202507361264803026315434126488487206123729321579890141497098468102053626274576166697396395072281427819387081810777683014485339440397081670038542091569617663835264150371984069925669856826072029103218928404935540327091366668372285741082950581683677318626351759625369965796486822907615523914288227195524922478113603252878916662905869172451003439203405629398435394883213354446950086150415066048495377563054023946762534141747622513788301753252746012655606301910485280000054638554434449693029975620988609129137057710410488538960978562101269646512738517307806266770384955047615088389474788953236688694214713137304243797009898362712224835424875101250473002865245572521947609617543492008807401025223875884126644895569325049178451241243935231099762610708751809348259176936467119703860041798534347904620672206671091616121913824897706254983193980838966830299266641193796884269997888741507611796032984425805205039196870182757733246897889075808638064400691813330924936741392445614988142060122412350166557477036310257815140115605808392803147233484816518763810339050381349993399658469047163897576486508329186109555634501791657039293830293534958718101888776267761129660869820917575878644221932662804950852326308325766921954450274213612810490450485907204351803064509234046280053159564754868083741963807669138444207498515003359422442790004950774485501507801207832329616937848321054900264195945431222906769245078750186981472476268339434781227835221424274412087043061123510810040580869919089986895394815492232255232353514467767142828423654989796714936123648131239044523291301434098548700115443658723457240022420660790618431752992189517553787271916230776433018473722266242837140465848235260702575806235438916783936748526027004112248080655041764811933358433713980058393051425825720575412507268427906829950597634659001649134010855811007663516835241857967005161876354887225786977096477578808201441676057951793008541729949134159860491363865669870605494390603273129465708495077248774514631727348878341332593950844667798239094815157119464371007572411326882179033724478824657280287273906171733070949825670269186537656388438356283407028681653850753294137254339969611900372656120054577636328212778739951459733105415731134468066537320408237797656645352187412528796139399771141727855089115227226016352273573938071953906601096510296023911702273789968448283709498778504510944029343324939787339590606274330339541741875333391525788857841659326661628897766044727608627716400499810027565982634311044443324575471558404854844445846163381502350017766494504404024063974152490065971416246586503248007464158075682254419081002247763132808588760738554359373526809981719552386667489986302939640076591401705878666839290978744269203867976824059538532372205575828716054546369135503071205224134872471307097609234635173807128534325346546398154804584259350044368920745961524500513441906798667413742587386179910290149063858286686586333911429265667927481436017009355411115819183553448962056855935852353096129674024032555486267378700219996650970910129432304828476496207476024160646726591750935564883984731507965419579934218123685174012521543575926342432799853280469498802859727243278453008161282783672974463726030122391550048322348483639246354607521158261902438663676128660977262674062118853377681475515455299296719186258451998913872799766929889168775678142448845418999818302455769776745962595339961817188296943988369591553086924356317747880515203950631188851944958353474312504550155744519677116397358513885001277974780233185583940343094086595296722321771339109554283599316317947960038286742785024708108075937623901760726779694325951132662757164190360624956183873056130849126082495229948499211175844172088044004352501224733208372251782145752800333473659113403048189002409829287838817509396964470342191815592151059899176310867610947420236139127149196720920655047386472027315241123615193268217430026908544749181186037135025787688870620133278565797187969720828564785753671543676703133827616701432311602626619022476389101438038782049191816762759370344602235435466597793701562153940777231456659812488302010390043445282006546234796720181497458317246435137663287288497651121581145841823148370276847961006884530848202456440366074196945261437688699087399725093014159690360257552456499753995923936047687247749258801652723221257012459329734509207116703645561459335932109734505796637566846753058299307676606157822439332977589522993745617067736356006281857644700003221993601109997772824135165740615699602282566750699589600168155580471341320391053313001887688590114926748740952493658738464670186742097751768297168422555181446162668950907554959234804114789022096955185914532976441012563570655492637748245185813233181034764426239955174621796331462124321414390669786022313939349000621780990812806198010757301413027648066568964956648894041499847899918248442203584019453755114414582400940335211084859104562207400965126016543171553231464856504751338595790674593502206971627841505727829591603926714257498565929743643502992855540370906151245868696245012573424291884635779161088353212613427023104714586275074468135472119974563751297576055085957379332084107391493989276874369100740442092023608792230707082484909889047076620343324411901330215773278986913656812476515736168685124787679499238156494627366192908972918748236992929551684376227626548276841577457691747897725161700894361578266176151650387378446632045888650057783774295857569470554340768059987058037702871966493650320699368136311499310216641835864789892798731611236201175464182942001440273515515849409378408659065493337664328061803943704754723498714652625759855790946753074309812194392061042030887309574439458069829610628742334422534706838778852357266774319171940033691169661355307062336587895113332299033699497530038721119418401854996325426432649341137039760842812845432723398691465889624859505596334184617910488340667297412126176685128975098199452168625789643115737475843117795778414437410180233372353875859976638172509750329327652990313274161965994873564613157167235296930942689971786962550646466022349440262934650535330279568317381624793913981297849681567240263638017914467920452985266981875271691315959405257087400413261614685469331163080206363844622283219824072316117458364559215377807892110213927992739689059215926719255991184869213556718583255488746910032067583704024473162646203883656352249086760848308454582851258176992495050499062997135490992459934620604826314244756488567607500629612587968087196017347985720019266230999553079323243256148399447071289543065767311373014693520776185655823171642912631996775457157884527310436673848068143692515121338981127516263038681097472424207099344437103205308641232198482499020106355181970773192051935176907414679246025844537634939061185909308357132819031263238329512870831674811799977755123117264325914010753075523558556443406966481468613585702021325815538478468484281052175781980745428622952640369721926381543122730363855671154122390647285215019181888448728201969187270897882259550001714721551672934949176612078750158622082513381554144635552623336360498662630694749385370353133901165351445135150696763795126601993006815157038554851073362967990057340007879486283931954891744505267576233433120668987127104738514696952041648372620521774103460440340801398046270778596790493254300465114363777299692157478748606733478646604389014615268777877261569217356745809417074831871312728945546613726718491025317674524311776902316103376775007431731528391260665794565281544368622013001309140374068771412209525661936159236282364994250408549856430228427092695311471010306407178667070718092630846005188363867674289964320471874569548741342018356126283838098217138280582003648623454722615483538345894172387391486316658000151981524944524879783012288465430892166753545183708330650314090459221012394209375893760805909481020303892708889382501073543967292716465008096940016397558189319840746250141349689931970693956602916356843359420412163891831161072569969755934504594139393752743052152294517705423261822477855315069609583755008399851065086705383317800595232414853040185035305809475073063004641191245694692947355916343897637200742390071147057137210823374257386204544136311744965509360667474742499602251195852246103909085302310864475725946555071195238054061419082192411491609937603925660546858978573381501004124872882920019915721840635384194891334320083218044740949368411644706908746809914319238779382996853580002354683966984511131066912961571338691816117541845674146640086897980597222501833497845243270727331347513953268528863563306142797644838811752659543137092511809910912777584329768508934039232202254717858341937738051177148622536022358780751368759824701677880130041284230335479989779029625400774520304433877461802155935885403654628018623515478496525215799166193371925153488392214721861516651287815949762159428361025204375019713971740590718433370028167505398542674570165662866806133983835861357325986855137715325876454695477117496979962611666380413489692073545076716284363984928245857927799316358691273999753131521038061203917692947862240053333655877367868028188733574010614135517131245038648067830189096118590914972897254443193815262991858025112827426405544866064539551901821741135143484682457116733855083235888967420789410107145365813610215184028052428592540433643552833684196044840802993041465685895399213439450343018137457776029632552132723140120745440791717446567570824397528073152162884657767293553361151377882260166874625553217135990917916144494839874238806775465975441468021950054765798458696516742933028030995584594890038279766942862997685611433462888485100730801296842589357777740537698932542271912169463953600907184276941455573132824081034719369473088143763699931650532315953001159305393901066809078517545709760697973562405181995246847127780582062030758486550078940468579879096639630145380936945232572497372655289769973244592077488588145390782311234918215791774017661241624077310996009926404939122509368193299742198882957598310766818540244804279907484947420291295443387156518190077064119418804795246337365913630235143624308165150930136696159953969143958166386928922609117094607535291536840270459063065225372109323563941603732817785593624796360514938648894628129838766922050625225535898865359259140388574356733984729658792054828234276782383217789605204318614976817891261674404920658228066870292172839184789304314244970827576300337599439703815943473718065071722889656659648490556555880259177964774279047060240336450112531590818262391749470828845536493852749050828436335832555888239424015013426452133997999902993680515751559706379345686316957697811533306509278059470237375416151819250607561793389340100795918263289600659211570866398462028850788489035467800462820527645689063969286770837587737993720636722353260978742038550824884689067361441152008416881633430440067875098653243696321922425010901229191190950136149548145263128184863043869264540818373249473084081279218805810604346875152638021393089245010404290420264091252487831335562297936174604496437791654321150202380631284307931810748189394103005579168447765069128489979177489474758920677496879413098669731070870834803460891830517238904675680931913181504927327565187723701184859605678163939367003303486758725211200492761255037598878894210580448916485616851180710497253003441436273337723416890065140976787233706366375618926285130564748262902586833216731197298940466177085421896136492287124934661088057284191847596245253503386092880538795681226619477435921187834831489967890274361405174928389224900044232920239057442581924074986388965510041231344853750952690404225837367110369930868249204428830011832437859448799159763667052292186036927884613311069527255343405806258780453548084686623930803831630956856365918846347812504412330208426474999377678817523837126953125892878148758842983777721210678151524529365360625826931175110987074282911901343322320821450400511704837109763715144188517300797045045395522851872021283726256204677866738304864969687457916468695035566650286771156317997324933771125544836807483229940487446785263968288371834394791510182218362193751613280164434527831753922029034952664375584319699281347449504274259885678483575493172089682499717059479761705095392889409146625181188444984462313140247813722282640335385143104577746408415183507651291429833212765860054462137882365255832131984876777624769883731554535231838639090688568813136302978415601699506391015127090698343151626612093880740069783553384113484295688286235425718881166201746959595284791087750325390278620611992101504625237333158011301622527432098416139283911051103283754516935548870968508337689077002285338740437635872617260636187455796403679558942256706176311389253925767492982260665011488825706872166067308547841423625661040518715832077597234737091573296926336089714034672746632594685328087397271445671356322918610782858341200890999174977405587242641509163738710814762619702947292554968138020468025105673903481936449847699196093672798588678660238657068765683364753023079114396094799472090714468736751816641311148441880377607348093162222492968424722963235013381574424472928606957191282421705074820370727170987122008355207126875698122605932175170828399617215321556986627699841617712373616291733079170567616689251037935563224530278196919708983088620516562927399115364478880574125736489448231978861874733792788930004788791430433066501712776805658717005387538448355763663581688827947125489429316593485943278363960757145036863464369645481734843608577426963060393896307844893667773939182011882905252245126344216312346380517738465348311152007412052903362233352668646721334601280982453282583408588684613308610378563993988156718110171306281835860552167725846795959780434170552109548435004844737568008693636508430399233618958201213025185823100076318804750603117448179909265153955304195471083583123128190642218888287973074512330449042625855552893665337859381651339750283773381739449093893325137920512643018338195550888815743567772146945291373953803639791295657974806506086013276557460750273853211486358443312522019972173812358683952439857144036409157948723756735970578498194212319899917309443720226585206986451722211708535377580992436407964896274169280603224118509083461200058625120497160161790227098695956304585120051025582943856176173599918402972205762890145528389286249362305830370145097489827754573372269122656022807741046832311734521578434906863823517977061174641209402132140253370777182193325594065739301921031243036944492483125271614224448006612230779735133162380915534109656473348908089390048126257134916127917565817873606944365622043651646852468280958192294962707518375970926804964913480814153031391594959771822165525056979158546332555688019190815926719645298955517822687489094373043347196017256142311289866754173955713899631984189922815216660168741219858154005639725099895442003382286839587609838025699750758439008466759608273268764101277969062551324817287121755493560403268650251956367874458317585030571400128133177920729197693343200490878694841379093957797556067757964045162479705773539069099881489076996965547684756253323510108593732996108122813572026828144380930768452031707882818702991278094787977084197774304064453162752272782705381269020956343216852867788277114398470361316639554801040003453501915829523073494117274622376177494779653119049531410380649399252685179738327412633566106495186963533239332573229559867101608022075255388483594596812519283832458569314786394104808748405187134755199527950845876645064026250404434260661412174409828689672153711249777624324043134005979958394937042804799348136567118729150318677588451763340086389380298153750761792553109666574322706236062887948151439607315978494990291777024680927783854034202162015372625341770573752452808129480276552124174396172338939537211354527493940021894157475562084999188499424718019247559091487026355580097358844660763890195021619040854476492047348011271642269075440212693736363110183342854193050141135562552611911172604425599941138810130748173640367730655446760743767532996328516369550416790398022810637595343358770853104492445743486171878927225298633087918790489544902840336449585772670599248217985275701997645300809260157951807395530079919275132085826206224811790990043616657190272300706529151293335781771691012848714651062132240841623043500028061140562383782381934079667043523163676809858175219565629715564740935965903407334319103409549871674614318398204380848074509508969892973178775675792167426738720269013216505564691071542640234634345009508231081034698506279043552597737900347507901316147564389034890075685621655767997709952937184415370885558903082916108940506062466940608513344541989857358216489950531713336422125165850013280476097813341931243586504008587826978139906808872079276413795080451412696634855643506582243389936309009218976731664999767823102297430514942447817726318445936953931304384254487846340243792855737929642676184029264819467519015639117507264535462258734966672916533376990145005095285573457853749852548400524578255504101062398857108542997413323464234622822382148735983485967291930215149391964669995065005761611576574219624772824933309138388172460360867792504761742372279213351155412017111037017178715263533317108263099324120384770567907906550486432133493514559751692710650349765378771725116616695059895680311272224993612524819361363815949170787393164589154848643813430273884285744695958580452167756077282369607577878789994768683427097390835667782720706647043646988142185653612641216766124255784450439983214223435121308591996627441462513951534771239308635562620766816704731963715086782586992762770419904249303512402392289980973368343116149305996880799891443993247395314922749053460801960141265998056727650680988119792351031475609698362295144947216238835509895776735153067123288041389090086106914491430675694516006611553499419184313143696915197466431828415248260274463048476916467196126391763828153799253303487717435425000424495475846009057035937722029764544811061235744913187925974760332319949555330312361315752242074517535413060541496998233414846959471173633243896132546262293838650884476309088179016349974222440581346969936343273565132091463234300711291069433546957312281275389019122362023392674973861059038499586504266050505698538277393857198722113850467582785432948958100157449257961400522270750642512320772179613461204280987471079075873570630361021498596639089102723731425659559041022440657270781792512358559336184917671517433824203566968324272348824141300964916362223042267887022761016779881603221723698633894882186447867026177914950479312591977316941162161022339719533386137781747438291569661579218402821847832871816501090910471749050620472079154851732559564334218729948339431159954565551839646804454658986017054681637436337111359273130710651065954896817311177530893253477644095834496489282620319039046232920091662695164667287469952146947592399392888387752364885380886598273691232928471153778534461454943199893046401817892889377189421123062199019577928870929057906012649136619079808090750173845032234755704878130299828364044291871193016006176491762837145257419233580619157199902639891894724965661507246525657097714691019451868216748227688456821073370001380711435367258527682367904346447238064431012732614486799333199175243591963097351989176143958120336029871497108955288165860255993267384976053408886112652154637003979563170608055044136052845652729051093203011715110886556751171525662526059473466881780987717135583724851769622480484318934852085502622385573734098186038505840212239346071665206279878160585908869718684676171849097099895252625820940689607382446764419856230266085388890684692631510863556836102783441576001901793835745078437293361535325158597928001752690106589784560112274161025269020073797382345130662861150067170363821072430287810543623708299214013039211448720297530857234913191171574226710278180382134482555753077665475500803930259148279580690395420526509195614201375726694120575096989878836601345132650447699219977686790915635716898958907132951575556446038876002017798833559578706767235444497312655270447076008904719065522446835264128035963989917013571607733871337285765158723888707905309284862688299339604817849754091897193625249129805350270767856023269801075204416191596505208429122315393112644386903250412803059376779099586521550280874356268573656463537841554849127750577958776937886881032888956157689879496572128067775212639459449536386891672530882493586511252225690555808857115663897331202822410323724705152345646603470764974698125201556633477760192342011566504089578558373428822375938601510705880334382872410789169682928971258856382611645973210057191380741728010425381234744949941767252034843753395103927193028082314448073959455286217039793976100091338488290397940480914266600347985059887010944496918583148956936316325921656757475765606147756295647061120771375836595476669387105093122880144098745089263452755868056451019771424559855782989214817392355153908220164592056301220864047555345224550863111373786115468316132906542124783714379017647448475722308299298091464672943240361689958124881081270786250115612050598427420973196498227587328474951172682797458784215179332465955621359539398301980140360578118827595476738118777583464449126395992635964779083969413172089291566757079523224229094537982036941099203668543401550203007303866496647762943856869973663934655295351802411636087432173605080307759084715718211687211740145408644567817435669383743247835669240466613011759570490479455470274358445589231725457925480535073618753024215624731505080490606022539645242967636959043471126955712265758674149620030970330117654377393591661901628077973509579779371769247267766044528780875205075151284814442042032871348758875161489379049816354158895000909868818383428338780918953667405705913461156918288492029662838794450926071777471934281653387031577901778884194641036452322429045004838649329693321487384365225222303047104255216481263052392297103319108054400831818551086042291244105623881439395387582409867440566786411343081026097058097389581158747964119321727307488295985373706237700443114624044690794092310418786897108878127165640643073581847047821546769253924141882322105968579149578821830938522310904544078096426121122505547224369544360166593155079278568773870718067908905853335238054414664894452909335856993129180670254686835006840418869985685654105564507001732338464925602224790134494425518616218073627833524761803369272425688515364561193210220979274850494129122401269833369975802930717932524558978599552102257696205819229546465740944308716109729596377550226582173525228893578485607775799841541706795434160646914289350401040386219684790878844394407550860922489038074530148955119743043414124382012729682171921960991456400152857691444829915362688287068041441495967653161260110521930683205466425265060329066254939144365512979851666191232808947637950668598848564493766499478157417596250091004451501249010556655197615689111915955443395808147535998119769655890213831131705242770617561983148751339102319345018700809388722035562600830024698195447943496058697709949355282189632160639333597198539294008504764561641983052368997053718597926734106156406429751247508599152967672484341474409312846955039989952632042605467867814023596113510577305064574837184923147788396501906712054219117256492211015424347704596713483603194906629345185763963938506540606716315850199356179051188856123593909548695594115888755395728324922275357804423752471966980449747625640263935289539322763216620329364617264846556903485955758383278960424240239039146990919041675604068218248930638628324760001427945087258160018701430926855563262715600982575529694452318123547460540657156391722772526599532433311142783754559151407511749486408744864601074853310478804317185455451140941076193649515858881413588553817682589691931161603432891645242177472454111821910965643970941044713591657822434052584809835103425304071976154876402095163245129743796409792670722170581021916523223508262909818836746051180706798463463121428324756497191419547875783670436392650469423526477885929684362898459671511330046986968028946567707593830644919864485791247684190210533916315876320541283541849893297979776566281085003724111780310788895932547728681525748581267197232337899765243204129324001991716837901874267653969076639314428276027405775784938800243944855011110650451670899073316566186741374275702524423906539885743272378923577414136538415146400719796757129320996998183476099042349355215942779100488103054053495771091838621106826096943291905603082910492072142554271433441187946065326278248191576601739939928985944404364378509258332314471318244019194078454439228688584571479261871723666757498122399924994254903281564461793132194710278655867278142888052122577690306342290095729308612050976947211691502822473748299008825127915827462776220017111123541316745175501311028637553559782382121586207413050469155206985275704675656208603992700740308650533812479647570123120482472554625367659895062137613481971611781793666614664263601395088942509062811786088559244580937481507162203154489157855118272947233629668432880575806053539805082904760960256698990425771206321353855796523696057917828487596921426785716573543076527679714438321077547231393778131882432732511013495484315175658477006346488902113907446583022910064956676825076716171185747589928043589549420281060484148734070656584389894959578336917272858265366196082778327523018763395797486904476202699143402421134732418498510001463672208552034520632715228517952704501433407146603732134364309916732370908753489293176794207646816566139246360316390183646838473437503056504173943303219587330350911913426610477045726847404623871870443252245899129438948029821986612265470135308335035554868503582853061167125626799977966017512573200200099000002730998871799714269966698781308063122165080399829999973716112668080670656983849116100898874463088351060923770330045745856966553241295730382020823363922443264031248762648736082808459827850414598856851381027903845844730525140606007140051968817755449198072239057401641336623500708122291666753252689940704703340323924580817849449854679959243748143619653463400655130351224444278848913918744559724205572062159918496557664797388499546681002592660663833832555836677431132518997669599895321363895281697726887970342680584403101008740991855391968219691779166252673253922420145256181096968316855802611630547845983362837089601763679277136808854929202475523116194008113742984770202959546754353378830786159891099000692009863868034911483222486255044652495086020058148800663192459103896114222470546037622208401862560855840645112406370547639315795482657573829238943300466427834334104113671564426829124567663703411690904313358441586422287918345112343951638401926588171308022933343286561491187774109284807320411030641335569475964759105769193306402280149576766181473954558762241091769295366971366132175784552631367769979377941291866249468757556167899469192855307093689901830676884052556644804857435135076274797463614785305814288139342102711303477586282007848809687176265277786906108867930923042719010539334727635779179191599942282940395536823580324675583679234349403070452196287623596243482482821073596361539103962516890666650708238583073120658467263173485505553113024809025186044596324259098629410986034147238032498898717692074286330991525406539768916768793452929493890817683511726840678301054229027652046627053531350150788116138002000899274687459357598712888843616669478566689116627825008948491117149353327763141350467840837827849658492094922636072924893288216895620962426944762189174236756109364866246386151432519625052654463418867643666824589991079269274411431128225876716749563876530857050923867540610151239863054337083699484327049596994949104751824281631043534291356278408936306185453128307158904733676339017149688584435736201148007174255121493323035270378499727557073343049925507573227181343054879129517451861598108172745284134815799560851535266652010457368738751301598256113390236117370247735339411880805473384785637781026101970285393233741727068622342264466951821958273575790057483539462573266757377169937405877102556183131098033610151435933206766142048504655291823939914871667763055164765053100090825598516320986808467550330676558539039150069900338933362769764390619051038497497030687820762126608132075299892649274515396204400580022425039738659513694140555772299789142787152418659572433543484740543555891014854790055512661032165080358825022231740058543766175082090079613807448410272461513552237271135252844724769980816910161885869759989744492369298385024027836575523814605544152929211386849358342887343329856129163081831584156828253404008873044262334884530091559130566738842141198164257143526715107695675472286320473279486753046826450710784042650339069706733038172346235241575705001638576362356074863339187755316734223699234001517500477239515491231855384939905269580438698749216320814352237511986265475982150976532301085874004791529133727619153454501439275335488015412456045655168285973624878718576448530398800872155459650488480017070979775650254187069658301130821344313643312856461970818203432330344334666646705924784300413531504923027235911509225420638022583807652777740360879925264744474823262850700776680291963615632936323849130332284025452050554796312929954650916905956716793704231692764703564154161342245373253584313143619653164391820452226500932669037676598389372266312626310267646665495805913370978145576049586595948760027953799473523675528128675951829509773956311879535079095019448417374892152131067290494664568118537023551308537940096946764750008612704886197551112028968169378410820783333138706212044429545682618840752064203261833322128348463528695011107547566030551879078110474147350004921441543054508331780998874021775034814582047512469987864104913487314738297060621254350521217074495215567407975272443164018477571880663609437373999169258655233007501222617069314301687357158531127754305960784812963246083610476135309110415032221297100838951058033581373256094878017905003113857131999290150056899587529371662010434334004496243039419611954359052876970832675985110824314224582900391175464858319978974678173797956489396663874269595039225070702245524885578443745121842275080694025925828447987334787884816592783479049380501548836693566253435048464598766786889331186011871497803986669645524935870027526460257593564486543902934739496292920096470970297469502051683642191187214368530487935483892357327640651039691718801416171067478581723178157807498123738622943924037060406185678976977743134701674519103829562563407670025830133323602708360461725837733375460425734720860394364950077427611813262936795099748899837072373374080664249369860614989328605327803105948805404961166628232164004415186350734837009751369479197892352753973979985812732950135954930788593897069770534263130441311997855470892539810560101877995529751870442620489764965635261841549200371786197991397296714841817147520865354482412078334952374823098892235083043098895735327256545502589279025631104878615439683278054490154244744985256529509839608974784231200252070836691485737039965202723591618774768570068350629603460595802419245734072255855485369506332762270319323421182060954835928506742959607484210609300319969055735081921988055455842182544524511356212976767548813741183458381037326347026744590772938986371975007674572057816838439201908728645628009013818285035920275510264423476853355919974387277675724624024507280947347947552346380755663448658149564992200846543861353224594586729403669397259641069176846621693046580115229918096253357765078126130304725728731081254354818712337476541104458654846220291841214241062469183696005711831726824132901758026140381437306950626958252743009287073939140262620072494374127590724783735339199596302191852795057411802966461281860243227495791937377525122444296092548419308691044018063194819923227889151831132299442758254865045949502467188222691196251534703657897155705878343972791130109614367283584991299047518845439337180366395692713874705739453128571874729157861921432203993765568845185033481372732646106179498631327089056385692647502958617823387386149945992224370189709868983973714286025146690995392066337363261093705588686832284448620967029323727855214116529232033435051259907476602180890823407143395002759261350664961037167417959767374926993369817375552662283009577885202282750352953796122057031323108511286908284916957123980216535301569617300782898147407476333591502976298223098461399849009044959562611537776324360134146601038917931265510634474625945750249595699819745198129732989950621354376586713028508498767767962935703537854671901672510717402277475801121595267886901490877833534741371493342054326480732309647650662391353211348787938007617128971311129207258930692027276524517773422446934416274240976326049118213005226908712592122027151620646361608005659153602303951651792658720706097460635175480111957757465889242185217098030900418657872915449090058697707233553588948669356897486626286777680416586342808075971773368631805852772690823749558043782547431667494233097881750829599263013489232194101455113710616415356963063314000977215478401944503066721761332312272448221968080236038764949399980414805961055610650779869521572066302283765218715155185022878747828285436609818380200640022310342338581292841912925143959589262150256888343713097589518197243066388024771100615333514823980239730258623437529659669213487973811796143710384597248423227525296525356695226047749072798375398244438191990555073166572933831998170075469879188279081730379623204133539258736751191226816365521927594896925817736062057907712845460651356836390661311427251986754061435068596313425870873786742845200231925173781748617102854791254348222222764572475737356213800581825426557726255795909959359981993190863817601932677391509337489839874083412413847654411919316256418671340812709994575137966324110657279811469532573690678768727855065426536719555284304988582744404846722772783131232366571225034890204857987072010214505910064314750875419352166863283384145777109425448566383279248611823290007223427041967774926294859279526153091286585731798116990375608115859686509758650241173995408089357716925272414045913087227017587948503884842289125812558915169423010151173265005006418603942331081802569982137888636544397715182225090482687361562435221819735190131346182689608390935847635015409348611175988067858860033434013550724036162232643213142695098569389590167500282277039218131123474137360469688113476323272629064215302428641038951006912519306267697367606366154485641647120430128222868467693608763515916301865637274441353462611420431712911505870934391964318371525737991383381256093065091462130136506474927179394243319168418185271377514394248697516947314912558048198186613192819861390097616696267467167243135800271901715724628962673664163544630837365433745011789690807160334121112884987693261763266075947462542516323877176186008862378888327088320583696904093856688107680823621767625274404320212456406596270322763258468717310588831020167313284617531091883843622149249909769501880561871409046285227433251311843454142735212836498254670296055104180611582928979096510045734182722673673357590859779824250859723018966080333434713441549665228000840305034247288421164940036133657051396631547580075039826305941105614997876488652443064212302739825903426412256656432326727950812675307227236624042170291816368411020496114767774082963609844200710694264573937410396517292528565411006337470710675778816591194197487041763537628912051918946387939777493113608577056879899330302037379970430758406086866502246889719914878225527455590519734761185366342565212431618768864903253212061058128627386112501996227806611307282399733650469334258548518743971666211637571652541953684518734524710832399131499051269018314665926730753438038586341042705457638017729001324800183141025406208997055225603798285760702761857223371828436034488357427630906649735785407721908422666567035879388743726604654175081369212831160022532316227643784132882918168619518149043130782320254371639559767897363519869879706377803359419089280627755043720775311623321009643630246072253788851690977140335919747104999771631500724409792610760678641546410113726697473741581402879039650814772535348412656306315605274842988115728868111127244843120175370468429683778865167799443760098368422008476150713884382069447891904614850338990611657056397944465106471065067076280598458345012547718479677901673084260476500271386481433804646376162300961073790379322268621222772521922646930006254159896358840931253944955487194807151848179464772367904959787184630693504356790541284219271595842909368565237493304602265354206832492322182841632710406268433064901934157918566415419213488145795401674369086995015725882023936849319967751446469583379728726141225732201053288151445685769504570084200238205225260225091642900597514879561374734820744601452191996688304312543270616375301918288534694074321307739163782970529750726666360062286248621823821572649565096782344059498278716611249322397175288493205201851048048246966329156533429008837669150711168637053136789807155800254646840663521869025991000890890268132271357811823245461640997314492445867629268963448893309530340682571388082700719136919497621512103400570474370041202819043287751807378074985171344304837858069552624487555141840585397512893341761445751219755057917766445198402215844520092291059472614212263712871028350750226126486104236407749489254781855977864582325232150501646838814984555369214156963235105121800197116794259187734882107479318918516515076008376660635064575527383779949993921430300711327309494392930058326905143530186302040927778550174351517245949122128223073738682618133563669024199169792199264714333721774030338280664364739782467524255418923340373442116008756263152591420770342352175864377833504171389540184551204300880292453683888526908958281180219576891740564212262649969526622692453606183297545906314873497817850440900279650025934153538262678216600354452591059350763458293680792827403658560588352037344369924818805021909482931130957209168288712353243674842967113942197975436141428261950830078784696825639837374829878947659307147991389096584463041471388410498036030294620844884169595990608856307287636504578938977562920940593319940429723731761569402129385291553498881057409150705247537196349372949216288407791290594620707919515509905945865230802762364243418426251649909459634684837078451311061100912030727156718078302512616030749475844999670530363728767550055277705104328414030018046042828925488321066187322016916310803498829068188659360171522368667719514277121128956804323547905911847029664592644853158271516049662449965202034366126691186397559991007777755660715780988768090105767603513223763193784767419912403617345739466700725945869506869738778426712309390194785028675070682819381243627349080843941626347005933385196138025941984311588472120985939260761178037798907860861193435871784993638816060508865377821419536024769940070278421758028815930191409956353444265950214065043458960141948855020193232432767790984340116782545209912332383338203589442753563143727457992267859190882489033804239939259803511367559194873834681441534331235537733200937847865586364215769418540570838528669799340295742128286131410447319167469737607248186769374226178781245612921344760553423466828609747666619097259613247939633224890452783071612843014650348396562412863275686123855970193020746540560096322139963121098524511836251681593700965767904606735676287600366722320111294981644842729252858674227661014730914302043794968123440605617325688227310017651672406112977329427955922789734739376899283766282702102063047312348872531407202294412061354794734735889193934060435909898292353863385414356105246974898616596938216117418541076447258706330883422071526890604980688104374496812478633469752774815044899421020214027222626382217538978684625880864370578376272623471954026346291739942151456277817019524169200793393567453995028284082865354306458766982904628538404159707301525478408536012943647463643610328782697803353257102346300124987069470044717926053150165159839300507139084487268063960486403686266989677984764682535589784989570162862053389604276731363824113539244675744874209972606120842822223506838207259933539877872582746353235535728913060129600499470865495558634473243364640330200105106310037160803408771352641547505734915649782894867172269725532101060135859765946047047476218542356703175812248832991162862623605100015108756014599220249792012749969002323741724031785235893032694229775028709231874383018916916262031883114475578633598145066642915215636681023752217566036365799022246507841844306578796165809309274096674197279288055179668446931543966718421457133609415076147949518077437117247108356576060665715109115237920755975918789710633092142245224528068931413847059751526681233513069332014966240637677085280128883767027226638587193873103952484470546501991269378477674748966270310932996402329628705923054211138164547514690744759606690739942923588851451606745276252223366882605278724936630724093790921051172530372542612595961180218430022897581325507291886633535494451953883871107912361347467202220502976908447778296593120377600126472486304464289047492255459038652644331818192075991244769005746337601634825527308542187714129339646547221438357097815705442730120525411549196844765814371006687765667296069211951648182193330999729231027809022186714012116497577006434571674876517375779379169027920545611174455529093597106004757253281056137459494611469012395694880127194828944928150806501278350796533876930132611389069576713452872251834880730949847328974147977123521675935389816741062259160009671629349870776650717929142233522233432032396973579211740029089501837053476678938950273340714431916675952431966526194676558853500744099820126101492591844803201715355914931410868343545735288943646632497936579096438254976654656014459173071745965366047079318133421870287417628773359746112067433501380534462100566567094176042184428999758343096015641167456067445539820781290182783058116595677738888786695737383800850629682608765153595391524870186690787142382344994751816996262419558097402633677197129877793831320687678700587258815346158398104163339336421874302175308109746952168389413903355233788983076905407088096772808616042552532643832125885068528180375214463733003714597056942338958065873034218222513361337554072533019496095118369974228987472335165638835171991540780563021958715235060541291291374856795140741887220670362142688871301669930047131785694749637411314745820494217356555472169531161025573941619496009993634101023827861506515434601227118293087728044299209723814743079255478196337382128490314677474610341135448251199674211821488465397856034416321196138513971915945421515998002753839127204930633847858205743695926171053197999143107448796605515144749155162991789833239994415847321165136076839532219588914186917546262147188678707079537174084479007191295046574360692674993359724711857448660268317483005010975820208531704062279967051291266029985842624563551427445098279552773989323468990506237163343945992681815442610933124925302651058906173882991478191262772560674918350988010462024809110264288151420667606974600112072051132405853591434106906073568301154185238330311652878204614437249364577811541319242911682168299777755373687757954550178715276193498300720972785752898369421142139028389856960113411778932187263147970819103551493982946612470198939282092678763836608566827280872244887168390707159412441479497728327463466351122320065707184364852010232404811652214917213222754345441892939553926686285593357302178036581633310936735442114706539241659328689547801947518656340130214183283873072385895007421184374887854422410367517904479718336693271736836885106417344548999340884201026357232810628591697301875668876440003188098724371691826292725028943131532555308444295797356194238586868659379247228932137231860984325731402948866309197907248399112230415265416817894131987900608562072747689748189578794915336438349698216003356462070856286591296152648018575731252339941292238270748868729075412633347162584161936503488520944417163554706923476383571174865558618491104524922803051458799850438638149491718905927346551138387724397965786817753801725421938017644753133487770430225981940621267913285461941146392668714971493018349021462852219250975022156264353908332184171184155505761967020383512259111143368718369732352795100944761237129662772052764827363360707699012991966273718120500872151537710495906710865452473964710564978842613026594154300934516192194393915619779022656471559083977748481767108731134608323738317026276889123075329615513542747846417153048773377418807858868075968587314724385833082957512288896271832700258493147086779496086507154799766340438066591669710155387047449579832121314731551184113094062519985444046404468897209717332488264165314330223604830881692080007012409870781383831262413990335442132939787284499601622002469771886033267610375978273361199007351539699066440485522510129019950680756332887233911530876448801315193881983800302358138011627674859902046373485719870385803486618940524084613090728960973523980813202275165905005785330118262723921974637071841849707023272472981512649266921755804614305784270698420787807440672777996883943313077256913719587427931781802854375265551526888986530972184986282195615507971370191098453190139278841963275636624027634165464113781295953469588390716621251263011825245201586405029176774311906714047657765901644243588913010552035464205548770987272825314746312322523095508737766129813638337432873029037219907562596837427049574210089558022044909727985554237852684629278522251506684381309432478504761653896651125980886431713829585085777518395756145983278932763485938485461408372745118418966864254584634029367673525064952776750785245014302681201578829030396220664204601274290275766098188076552017266915390620547616518574271024934169072477823164675105984044863691728590624649821928618711476737182428357207947827458207530742347410029519382287932017578203748156043050821928060041375604176217329204816229805880588240617116799647742737570120516336702515498106337576267541726196685685126852589742251281814966238052353547463406639596892592584690037022277346774325628000423257783118133483250791983595723894825832237218941516774311519762632187542332166120262418134516130427678192655045212325860003073270636889404320497262738386784319797005062477142620258927369762854155473025959563954795493016457259316036064915309076523487845694249000363776712895562495101592131647658592720170352668143593634313024343988244237525230623354988443416749791487093436210319432266239588983309384147150129342201457495357437796217464297702835056619471292649724558738264347866233698147478445492383346368972915913662331540733605679606719437517519804542837227984265598054432588937587034866426264478628619723695474281872504364972114005684100244813748581528275952559180114076648888495840336142163662471888032444790882374221853903618124200970368104339963379105564844585287028654866867216708558497043190056184488230030121204748384831899704538423963291006420653563559205828315053301108666211993376183981721141738276434530492962066180516474026144557433286298240335696632062306640005202415122477860757784662006326539922235293870054148603277146392325628769204832126841107858436393934685978890138076765820405277515716449859598907750282364480685321225994280100246499608004301028632747124058608903590410430678267207179351417205431406353147667547745832797417502525952451008885596229241866239035403636673434052891921678250170669623788836770122331223011305494923468192485440817860894887351118191929497486966311327549299603166351708171216869144039523094736073568333126413637251046577175257856527039467894955396471831780963309876159349957097042521907647829567311859993145539693703646659686760091039402605305476958127033848969460528696923353311603493783273949331423150445627370073762887285699671204555013676700432568423969830844419872230196909449903817503290749223047188090683304529405315806489415193542019724207405329050133955478576186319529063326224500262477553824039201158358041292453353606624460248703300024396317152297825251446617520377225393302551117441375859500354736275007718441485400030103358350238720473166835588689410173537559565102889296958568448660796802844723274540326929845775265059861674783239712629891221489105807427655794188750921755707551751235604469303552312558212343561545358262991841945423169400140196543679603963105349808065571802376012759996360835310750197429687478762955621049811876826955529434958567653348427350326465415347943979614605168761588800306911036811551245674721293047304238444920313282484793926944057735108748022632639045920417671612470491477375212904716860834931263128831261562108482196615624788532973055036583072535045832443323002248338115603144760578475815776992682021547991243107165745931054443366195373456304990183531118023680829862724321125764461357604228738698075087393330692347848489551366153129879927419339456255349483043654666726633543876786140565682299023097168075555662592987837860916503517270452764796685151538971119452119717590426473192635188270356574339990557944556097005458696930146624539261639094688577661486818367805034014323313513919110076949444020382448872998378546108587966648492234723409377063827801716038828621179079005086431427123097605682022147244911348187291792644258297304242106030722043298481444980564035956484506449295228112143816204756762579535701159689493787730011324953422007276580574397657118309444841878404418820710227357288139128293689287685744991966556616555983905773907833943197259966480785208280399634432137399609687036346718668016637750783911837381556403486338844607650118737723279580733445708161862668744108316696312344878575919038488685642429103783699603726877674973427558510484683202603124615515889312031814335133839282975861270431652883754956477294670250557283546123336169311693029663073906342896851503600718003473377541081524660536149711299958720880090450122410785058024848741535164969620047901604152456575343367936499390092899249081908983614779453709172238712718852602273969444033694545329695840181298067795427392873457605213731837817427615371983723249001394036052192736463864039107503425505789916976623848585474229629494163766953104344854030418224999835469484676057625247742186017178035730149258008995882607569198688835863407093592117534411205666678377395138998891591129057354933588542812547056848426494668552850171237607032885306264740747858715827694532356653198012494401277736515410801103640057957762392598916896474383343184082536283499307039493505549332803152066780483382835526503233127266777247853875283771355340976182951698671807463199646946927208814896422511988894031657911415717017129662843409389763477709867597704704732970696595762614038533701743383345763477711338594165481901427757116909796905751454436132682584010313529779887561568558635187413672714933196541646527090146097984146721807356750423322269585314724962144797704334516821073665186550845030990312287821230360981611108432852169836110481390752637463501902546488409946242788368621730825927910330876050246170252361268330540493902234918151815347339755522129504391521014671126727110355591492913939946027789254574682327076441256896777821520550600129367687927840858913607370965934330659434229821743309776761842491640552896667587565236090435475713871418061217029380859239974878806415577234369914650179857134845866812722724068645889931376660586400504286152001562402828969747463539750487386968157422239723462106129484220459545574011872515840212092834851110636758908699095479362432531298603230414850263248034199031405038328786971974474921759621724301103573748267434093374865734817147787248727261875932755408007260154266314942091713283630825438744525211010765360491040805995888287100440947818117136768404899855055159236767489061537432520685008624314544768345418437601667452102810893507797503685560419436751896766932265643348597457714390134384626513824508284383322481850910875376895973036629622885663268173838025156926905238962048238161963344135396307104591889182094569685181868724057975026147318223759710740710741687084982526147100270315571826020702195999400320472584945238606721636735342958589497733142057857079847256476640429847244731616116174812141585953541074859650306927542470163515476687789045052679139917892684997006297872273288159714372220234828379361237661768447000400979545885276540861508706110778289486376250085386633167933196054324949022207852132187553809219204586902183166776405378612156423682544729498612723666641428387484636790576085056205565192453234958319074757167337256768152799323013505019479569060709572013602055174695313287035888957476400560498890334280382389092436192931245563372945378747956880215673565094143739954035402182707261454560655406742267192891879354719606487864564695643050435944416672956329031511520823103864949229942111044669919612214775875835856368348305330668441802132965611726138271999563783641589903416333828542473510418930594918065249680517331172155613392917417654237703488529990845576775609846897442034978515808566098175880036650340990862122000410845878679234837236837694988071933319280653255056838110084645602327665858311974497101892633890071150021856110387831831115686599293399245657395696597415895400679737771547717899117529364085766336231872374330367895685903337017704106565949648680871518560699845522812017510164396921044293305325893966088398321254293786999554767051769569839730541034124158292282141476315153383587843168662271821623486424845582194049580602691247822838367809255905846503409652657278460048963128502180051677957318204867081259588717929248260301202937808960511297262130061428591787433091861610696489914817654342006312213911714049121853575961586925623098480951240918010967782707006046249766264234930073088667688582352234563779940595464658977383409856719724760663219171501727620228085755618777111100907477832385799769325472790864696876604859271452514382209667891880866910573467453756357445515964680848112936178026873300008473896074936327742423286625359410748216537638357591800867608779331046750478677333095966841130894810904333536478922097605346730499694399207498903725533812081650994474685500693070896865805437723670770986233819450358426389214731410124257999370672466243937315294728198736365552424839178876496968945259875116216693453131211416122981630132004134061118672779009418475308958310318854659678792968391633339737669721362879220085373517807820433813228385171238877601879910536351499868246753336922626083943030015875696795448948943657875841247733289198382200709239225664562251142379810939520667864371950369972945695846643232086620112541412191796051971182093098403622798623916297676193755025393688388979456832009885265447803104978161560610596900794026961863214132604982439362369746394580966604263859540230955592432252215271492869016570399408159815454082392153385831641734800981461522385983628348742913943273916647082623926891283294986538053000885442538600794119050411273797054270386265463919231224339308289890515463816213769024714690582367732978119611952014060454253308513863967598546101433810771298673830168192945322056550223129168135012607669896183852541907680744698631451848845082015724129477528380640107915078616179626202068804323164841309879002531740861420155248261501937019726559282335576864076911469943667732097459214076511021668479936122435779720195564678310706249673762398853117622998639755094757193834086059527096753979840927555802633447222513164366110645618381364440295659494107603758130018872457312366880108831841345404685076318485975776511325841583348294977145061523945847791156997343070143507893562103443078464919800119972605824811330292281082142322400403735010235397818410731016698921273080064162939923709021903909973751044412307319598452682001929495474540033367259144933308347305235260580044146532300345631685349963334028575638341341798676494970426155973400009245355098506613317651381842022521384048249500304642215809661861337018381369240262796264752743951197560024967441916577398476920797102075944608408401251469948610363759288157558958123312093443955171009463006192293767885128401440677012630989831604477035955071006597689727306621671728198742021548606924470599191780559917465454356190604152700300279151678507144503472991127853239013366706479115672165014407948035680131845981329142885222566646169628478214277316822716166423351826334872389219840689310767536009561034666197398851770130538171933431978154443012848738484535426750967073001042191893820010972080730952409875235811535549863399000022645117483134724604763067986861937073991142253167556829144967091641525158767392551814760904337151624105829738811350451103503145554373182869131343893994027659823292976367884121048177620294628331692464653131917628692791460884868660103416201056810472423714385284530998546810193052018080117339089761417133765353308597346639639921928537544483094661492292622434107465785139300964519261186876996693758780924751359222248098357201139510551246518684133825468511858423671926403141881940296096262668467934974233287883653261867079539270937662110629756561272581982739812947127208903170873036173615889393843347143591632486301281489139616257706048228076900524023986917051429742007748930157659924927775043580213702765483182931594427343601442747507383891607597132427263123794059108112388519479415558744577372162335205185986189338094710492677721768241290034010986520293196276231865790401304598083103397289731182063471239673122827751332128892646886797170584347378820552817244563982894377767801343454571395901638751310750259091872038594651202308242517657129162656449356697119360087338337844534948370075302408204335534300182114225544725154790953987027290356405277089735210870641347308558182984495900538377877399311757629610484465096760769735906245101613669519342012030684736298766121048206049009184406792409802964395046129950057609442055410492287647760805626425974580678694657646402165383696660539939886259117058165508981798976456042883499039572882178391753317376448448945182183443417280861504275389902976445146919729785563472163892574798066567606822397692947271701673204923012717403610127086630501644195359710649097638035898176500019556594634145666505410272415195387019855486217440719438833343866303867047076238671654922328517786147545276525468823245275628950342013540185781805636946703541394352536280691290230580372787816381673060116387465618320995975841542698502086178028329935961851600860138433840105158895445363197480296604576776921866722897354551891332328062791891818360850862665750728557405778579224707435808568129370135880353654011586966921840084952106207173201414157842777499373094523591169997004382815301791539010259994216993649633615706217344084545175945133646597929792994313335762462290389912202732902286433119704203794545218305020624305118562625673492977496328046935299826871333383869973796783350599851127980831105351291801687090620336355934839251160730980841856434261801169595680913927833696292832554867597736500308376415322439213867109743319645455122003768616271681026321676428596364822559594940593208007754377305543866106644659412228265233494916912417987636961644872866183853572810241585504823360500005957785288571811717535751373291771087038373636912739794615169695321584528941891100938217362093936530370393378385154298865253725759431885667769961363888793483701479430165731476762940264557282389260837450094205521847481657012779571253706582878242368262258608449744113655697639224877041964109900885959155014940278929548753235295221670818144708965645752897409182758535409500041473054243949771898768883375009097566895066548643498255415549926017581007197006127094596705934469216068865158201999188670478683980754552792092921440232963466290236219990413450407828778131484120991596516117769247317951722383937794595490949299899743661030761410471526794412586124779863388025779570948795663881393699194929028242347270592084744289255952921335088730262616384284557112994930550641381451448733052899256546728918193866894914049581241490953045672659267851443956818159208758346602455978585260233747113125635397072460470326031840336126823592175609724194296571879696235230146297706932188826950334217418625192789765409142437130512099410055216248327259717034752650424407279969245945693306950866843697795247581018913406054937172555451893347975429709964852084189698927311814888455498157916056318875875806531864554913738481426090279235048205214615145015554921359762085076235226148507630254722027806662701903045897034622267167197784100421711801822227798548457194430193610002414276491009196749200849614950141854245709401690311457708784688533802709793685533568285527069061043876998842610978576998007740868612504765718868492043931484615506865756704557790276392659151263866284220879919411372934947743267193924091433011770428149689453527682214932351140584711105157849754864853389014470475913892499830797434494902562380946592701299253962834393243962923436358964224148011583559911871816779553399927254668669150452013630108343699318883279002679268256445005487767749155813604842044887278017724148141927814460584552668309076657623067478951628668651462710488106787849754131844157745287645149381572456248418922933899741295806755154273366623251492471508202298076206159746892070072537314639745922885900651355210837625647667210663253709308153501151606260702259260935687916930516552216761804056895962572822215085922598373945744953652094685962780228173538888840507108118684172866820075357427041564404439213752496246863003138951277336368661991556477456638634076111426077968369732579228484566785543320126644235960751547556635548434083250376306494951099474850355943181334883188180322843637781608565770739791481473466178600223789187360817118692229082855506425877525031613486459609045269851195882736638035353263845797307840041311487064772881368860261048733149306596518066342452683849757600375025654756009259304510515773676883604314631692418996222399754036598193662874666177859441097662998788783396045014114476490815258736119775158666259122994517717160787269207660990767242104957291463368747131393250976793462835157595021100074608972420752519822672708586816019785438584958017432264264535416784450843621847090170359170973782266215845583600560424241687122224860846924467137389086894368351927584142705385183566480520961096566888474206625761711041940986867307920342264418293892578696093108817283102137429457733296699195045236545706760269215166966827447783328950019950081226638010729411819813797324296977870606345969359037331951019897900833400146057284645485699410625590784852025567087543841421488273187972218592294544546228289081956170313902835519823107607543523067962975309382332286000426415922156732705623387677343850727161164732620126636824118211446110588601663825777152322455026392604988573922689450972683242624680566512817860932487339726480309837283449636396704705195558969718241465685354958667322615794266928177508733959490505627267563222613009875518237132618857683865352704525947502576959336489700811227070097377187208795834259507435349884117709553704940903798791659008139245715376962275541839932541814855927239313794907826579349064673531769776224715145813748485321106967294772216331570186128162613887598038963266974070173704999083743315800697996735154930206198384612047486519777385334413536598630744244616719438984742346082268842480356299865607878417854458618572913505176691174464660398753366116213317489606389269016509123644639443248530574206392929650984795589807882574530986951802974178615968091539776496025918243742313167534569985666690654104293720107897004581330471832272105442269815056305849546250253874245272096541567154076511792203611284963937448545708584454942986150215051978422079167094586594204212055528220569076732847488661906037147505712338734229876945444729322036745607446597382908539473838448180947701148094242985677473267934791015975898883115103781906200981100217597397351467238319162919048716363629475244475881458056479379129252421306974376264202416001873927249486516145024273489651187414244616612154173829132901569525032732985617661805539802974311988596536685547238283082814737985720885358445728706341195812545852206087792262356919951087020970570271846449406030535958407365089388070923604772034576584218514056320256825555802260990025025550331325685234179968623027923232227323087776919588035569191589956061248545854988148334840960714469786714062438586346599617651015748321114362532144596146345458079372043982460230665406085007252506536892921896165693961560532375836613029501173775965979319814664630941739962753562631963041659426167907242944992819611595053316605678086462462643377342200562027630433493388252070067902199419347859613785634126448762037391248238462816689475986086423349391291643951770352418788257325748421804648343631744110485259486803265068840853358565003763121055207495396768871185931668252310213108141092294036145643266644550379797529905216890781202301433809302376205535745361793966928786322158677015426471420496262085296042139331850213127016104514561088118313765244351445846518147779980828172932376321113360993235646856196719025518439720726230376058152329676297666728211317952154197715539560528115687879801166757552119703332666964748112869009940906132513622911019859306002952424206861640943784368117511497988698317726191663115204736154766176417500567124044683635633189130644220086738077339527028196799184933009231508334750001171111040846095504046647730185583275350650837732693796395873309156282260307601953460944334230012096009622918845489689403083484691696554982022540049328178748453691727408456991218520931762486148091213810720733823031331378262064673027507831301036124930009717657014021280729202381345904933423930330577558688531827438931921613419585193663477695059731647137684981863271537326109979429083917766682787288405852794232903742614011390047442116795936622717308340354293105626689950187399252422660704456198459215838421625446319944788563142613184580895466686068519677186614297261695006868473117995510609464280477132039583916073144211552456840791616629644403603029687371972658615501158972273908065796534238153707313700243730670393000523306003712446690311946860679950856894683095052012030268613407110280752840955273070912204317477017209291698933616735194321370699706930290725845137551210423911718405297659527291457946250477831548554461164447923615971509976550587943302892240088483426158586013826208110625476103456372688097804882546192003277174764867668442415931636694258925133903691335785130987835359677718515447052293033186369978036519712827211344106107639990407116121005629552157370119994738341518673894954895375420173791377745274196362033854381425257881024032753454761260554461874583622342249961289145031062561399009830963286978448951750428201935765037477290242186417528204283412551120958036272799117339229745116782411517796594628821057118144708387414247531288376201047046314617415857860292195560449729112543819847379869914439905116637852080895691155817175963110212716861177867426593333317001318654307665298975996613261612717191657938399423745926507500529537679282684903576833273813654763774093939885818758647974950070387695074975490093629602045829729544332099289427086948823101271384542456043066294717089486545682435308142527610568192669723556459833269105133513818279225541929463246923934479117602542592341225413020209315722891111959789476905141860477683557353235067185073457929464254864224515508494585578013927897466466268323692104490626621980586043823954324614851984035779803277685896766810254293929707052757426883644597584209445140072179295514753103378619461811920276491442838930415665706556203615312111077025475267008851728570113380328314061317724434050593495160554013288293874279836008262097937962745509670300031584337629926356705344125543804619634223394693368371520144265618489570100353621078415019921773438582560881250359517891274068963679228359055044948596842773994292528052611653001730229207762934019897177227439170320045555257523532503857080114974204460769262987784567360140306606742135748080919234257364629937288834375496341482044536239787561338376478344726207664615412324526981094769072582065726123224218000484112524234692209119815250550997951634066695072822125034856564207859554939452218970845491689809116604600004206424113675630195653354555894307782899713226053048760473076436004453126956687052729635239900482412735099681835684345192805315106992391866017375942860653138701742531237679448019896134745169446437240216693572907678851683258214168403508199720024334285548852509191768214476597291906686066696006710030639707904942001773398675543011034916417532685963807296888982934825719437033004047195065035966298697347583314123887583181137757827246505052975893195005174522242933032948869442927568307168423282612134264137912695803114318168550855642468007747366385264136653318670444767871486094015191620291880456068410215821423012503163769693173440383765282883112809356065501536367263180363589437474420121247169023538219084332046862505776856476047971536518469088854611464057053949436359955069570954688950734792391196289751608949515121520085782148928254501196374562900840287244210375233981734772843874313622925188187440313181996874880477573490284711470700099925152936434866834186303136121289096582494945390427692821906032119239260155353499195253787107990397239487138318410631244164198918481577158429467119242110502040718382079366526478392010657550159523080348666936948925833743974416303244177832219285779503730947763311066167986430994744168734882141528280872960295043952345389491825948586198826588943542489157484344720374757475797148161663703232308696535974973613478382364725889035695522268165016344820078484455071643176010948033595218527431331983339465777178855941886104194153882052938033107026546077167624285969508398381281522373859164258116223418765432390310363477416149288106877947454039110954705060446331985244121542508218777549544995601926598253930989814767902822639917535427190801406689569027416095671602000393065019767296796920326970767568779882054711039842001822171192422706183270664098233017932989198495112517679303164953703997441193290161344714858287821004729205368921792408049569626503303858623404200538962029303922609939722816349068320047637013895961710541000204198841062825564160188028328046568048039949667547464862438657261921815089479588811792517767975590122446427781791847715843588137437634539841786083673853371475643750205749721139688139814936071625096619007455371685363046057397983528993415253888109587120500953807937270992347036916102195750422776772884078540008014694017353490570059624998056240169019565632903459175626790009404000882453682761842096090693087232375382031076441124338115163661098437135983471092269127749900181500285389816490090993250436030921772457418026592152321507334233514745219762746258798421708874729783233306822010527830915186395724655299875187572071813270197746548496721586671901530424322224068074012984564765064379013899343652795824321971058171873003562727098412202537371594176187452747473100755833229752496950820516741020937456170262172369375800901260193403321384941488044592112646507041192280221724678871767865509624344528287963893509703838200528379079713878473610251295530800164654272313838462532392555254404210971139410165750550898649878921705852127164129292090516549107414779251122324021346269743708013631489045728773916350049126998527995012757589082985377788141075449812805325759139575633435270971176146634303381513834179405115324443167692034120780271483376197603469248411288999131177488415238217437204557171726175183574017810142518739735203328742762656142951033020230960591941007079209244404448540364578265394462551660136183850208006740793915816744755671765269736766000839787763406514551460685347185406446819145952510887443828990991535739526943073384375730171924786269367235977898538811061146778085594060987026138248218833410156666027172234356576087318322638988612210781411307544422098923420054792564641647948752411819779704470154173828262665746581391714646093977692567427461494689464300662350465529939519483612040726729521861584525278095425335041497061297553161456128415755229725476338666618656855433538247191964796684012905451241374176281956561787828791564340284856185972981521839132030606431985559709830401161864809287462180220865287920787134967297270743789669774316107323644497697589606909806789655880212069729692225271471133470668486984199249065908959948299519039332730302915778320432116402990266696980692414917072235992183076275825294568018311562074208650141416858573592064021422533334576398254984057809342955191923216687614859984622347425039400294816171361769579706043857415656293946249151789016738279051513879355780500891924811883063001565676815783849231252752874910619709719126481923802573798526084525389773117163614147137692255037996904416609913391227862301651137547470329705844982723949264936626925491298727452176329550578582468021760435207177903855334497139683294260341032631823361014192140690145650433276178357589665900795498318442555422411355043181889275330911381025071042465674885054380424367797119011928675002139714543941312738473188205363022628981428801973779692140616367566075136217499363912541535931883001041348036627107381943568388415823300810095966835329495848490094256534387088150770051454145094702401024974237826058422192351369507239039608293620153279837454572794677916873133345558929084894388266435555100716965027391645898827916009627754854359261311015324863882051563179465772460541147449050666337897668855041881249934749872204880297873056452093111284533025005448106904978748036461877301685041629245927875989311004348855382005206555543999208985822398745331345260890460050032521149169944263595845677729636847109010724549477829199280146724715088875242651626134624015270240210108078275844909504994715877772612442136412165148272203920357064681360578203861437111509074294304494613730886908004385069876544306460605566413614601026686361634302179854313961838551022756047853116016026579504986609162209074465949255294981085202695993981060237397112020436471209992153741960458272848914301296261496965745342110425872662153815263256499632447377363628602434236286094662245190648558307156834817535387880222648684417950739676894886946823114262645426563374579147093365554710113884533542211423482714152953707573117734474411027248116454882383122032947368822040163727053672865691677891587687190857733236403835238465245157178922002575751062131942442317285320175936088788498636031527885988176226373739696104602150306100560430529860801203420453013170515658928188435311870692287687684210463642236651727634806096587433090688607509390011975160100590538010495422872731880018560998775893748837913691775028608536817319711836486886113698237648297421509431593674194816824389106349334555048768666203584340286839206629990027972915945698579506085694173489504006087621939094778859568933965661377878211491228157405286832192407736502033648488450167108656109438786250491693070684226142946022051479421798481730046856692148578350178173515118226261454377297202390883761627498182754268027004224095371290305988043831446111403683148012389556085051094137963433537398678702595985202487170569842363642583731723150124802452698837030240855932754423112999038999781674777710201872073855470580775805599913161503620385672801905675637231069433010283120412763993589859969158570852191290458913224184376297000478781092180931525142320701256326962630050946743240407549657430441873961915494784972640589221425882579394134642940789281812277854151290671876095615139060239462029247093693175906827065513926658163632712430740769663120416085345579439055133218941965996109378272352495496689069432501510582545268780262674950277602416940361661113806507519125821464452360860431263272718872803763195492583742295684351667017822332175650984175839589039409309082782240645843977268684290318690161493578524935850010310809446595351631559611125795271022054185526726725473158966427400025236040370244013298372761309661917197359250987344733177307138862079886997904764966906913962015215403349229295150682834233032089341704570631745291628210175107716121679766722731041554637514016041289444008418412511179300333657566849237932771827427587626497476174840054229577225433652077305349624839062874804332632973546762039295293904517659164311245146775337595406639456012479816045319000562918623098083613564461547473778773663991186183288860072873649087612106033661644861833493103813183865900418443313951740760946512208427764273647137107029543904332241213068145205240334375784118245664736616401310427280700015617977519030160120339712066331120938857219962618975791533274667180282970528190311349960398472738366981902093085511990168239470583537134154281138589291124658317308978426331422251208777116296157254557670428552881024226325747002054821114221665707527091591084636523557785377310096777090656658527553097411709693746656165828860549064257625632423616361052799000239200338672389341270078016337675525571077576141167949019153173375314995817804593571210953580568693662900685108823919978546292062442110347701496304739571156851361984602982886253808669980302705114247926281840005760503558410350449850373818464831042473202292960115353631105670927056676344103231896997783031202705835691103356780670564859712141422442506860962728412181739184268261795422679137600818683991728406993415948815715743238595275757532912461575097489588656778933410474043619731878394886999017025452595408693516821002849905390058891977726130403375173887379032802394728840705603314529314047967597765016047966296221396842565940459892104580170299482644475967092903011492767164245532493413536210351613298148122483487848943926745679666620227253710894263657653605460348931463941259642507738624539325020442277125224340002560430630154287177575765247365427984851437129653304056403145255796222215539667569698048801362357262630820373508082302325579889991089415168606291587285961628993960957472395911723480104231325522871064546231775169692514932903874284778285677920700782766121770835606464662794685347823181005065480952386059024789412704560535062552958932327638838444435353321120569769088435928673319740971687106389476720044672017823595633573961725946131527877505075492755318699810538935153970336611755600334613038985728162959147178098205915512413225801464560711383182389483783607882279912626430615939218237317303339731299197509790644484560146110153688697239440761168746485880349812079667673140508353445028280238365717527481014722778401375000533242884307059077124616732508014204838271923490395411641439668187170340563242051166276278686464417904400164706142101766382694863365572699658466715565823394185304476169330102838110604086087930957888947873583382035171986132990415341732741621640531432077758995029462603515979839255733488983094004536110712375316354555513667991187757109294874561367727556224567426791820436035867295487911177649456912734460574905510346459673063729717256891271267736348063723863055198455375852947444845162688663330728841126314659682047063348947516310222719941056931880240567352853028092253796607872561996825543532408864068857799275872606057717966762960782558370185451562521035054533273213747321275658732924476210225223687811565137517130245090098819361389860314023979237769412813671881456833989820030643229999993080049827196656792215231809960197101616217327580257599346052427019314531293724986842707503739510121583890406369833600708098480743426882583957105429655384948675917257720588950020318473955753418626984520570372199889880014279705097455388182741687639216036989838649020432700455553981650862117502442350156979053974849716369456087261254636938488062188503628857883846099592009262638517676702127036787953003240634384820286809483647918878848757450092362221257262561107913284474889015774273768601393795553149316464675360054287820814941539673220078185097497795710773146467485913918836194498478289560629092135321243213157726541715258940016729580034403042541813302318455270317351272795770437641662104157094381563643486911383762550580907856325300206994095527177748828555214784398799209601919780955088038321821790857138172393127702937677668769667684867313273168661631429820232797377257809823701399260927049971809736090413737616443256175513558994627712322478565994416570245633358732288399833574143667540485064320308728931125264902607725443268069280145601406712684738917611825751016809605388289375515233718726700092902285561850477938667820848876038264975635625412779497265573467637729398843018717742623040689737966370358798840355552121463014884094674302315188317770439291411032643464263619027601856405124140233397141231768937829751656213436892731382836139941015059075352864712109489194621349861046400881075151140172695318814571867195352853361148090834030188583743474756732676922930210396861804793038625861088761768090879252243520522454811053245248644840001078263181895740231034944645666933825052019567351391958911169541862208883752067180517579334200771660986018757265965738041196555457928755185041072764184355064814556857060561404798617157883824257755251773885989561365382545294897584353967324148751844769135725737991452954418432340171768219662406963657902106800477722407696435390177917390193065029415989425623559894181539008909196647431601417307776259673131187814314276112572865451859887655692033080520855380395006993725537123682278530636636565703983102832088813476977535403676928123017020232152071987609726109595505450334957386810496897506491904152809787415850358965103006624846777372103404487805241294292738909851043675229345113924237326480639048269675510449006643540152083113213542218979021627901630762914418242889999219634658119210272171458640971118986710686429070292182589592780785990539143841264849697950110445057000640120989368578353084200600171428920638134921652068654668408191504477250217539534075642704141148484734151581054537448578896417802213475127303389051625341034115862908018913482919303423821317860232040941264641915459439747401797515892554357344354789888859903646469369543265694060122990587537368455738185365887580044124848280008158936549513111181383207530366823165001220974680483430578835758710685522889768173029797248294934953661037892199518436978386969268692232265055718593227237840412629807069356405233297157761524067050370264917717082820006671359494785183275997121931687819933094664100430187507436925730542131448577708884540646330472578440899728441182764078377602941740915538199454849624527487181278205142772482908143325891581635235025074586926192606863145974895590458695599550268047796378137430411028848148690086103721354815901878138582487241546229881241211431800000508321497021750022049954934714985278249561430519363418872345713242328637327742403597630316608193180740249935842978729683140145499858278506442360913969690879712220487886571081473760955835942213962818166723145161645676074386545100716762930579328024009176865862568551996351267876541618659999584279798953862248248342837840235430500405469896214077270709036137540550707788971480729420725211699107133669985408312681732928838914016225100798594302200458003373939537757116882422497892129249098551966490826232131229425471939291925713049270186693722213653467189871578144845241805665030455139830363290822126342056287074821659620713409061679468756687844129124834650768126191315973023351873102264190381403366028569385749461108087295281858114431512990508057008426984531659390511082959213741453439300610120081937834525303896996284495947573884862290717532311495967197513268538082420574280746379604194991379344027145133184036625526310148299488760008279025663585326810367418789353110768423566664148847064975970406831471670901763846029973171880041486116845208538576814821650593803786680506565520464150369867346815875889308207812185892390746079658946676954625644304704980726059388862659193650934142724778786523647045090034481506914674411926266631846081118735131049337954109037941721303772457801589947070453064335295766796267602957725967905698838756034261011932362535805084581941683246760510592290063745342797221447676114106871787143925382269315535796579586425502886180899293713749127002763131839341487163982946827435551753768821203340187328456677152381077798067467651871445449323874297622995284430557405842163656540293079608901569156715522576871081965645699146513466500537435347104795980285442783768648946451386520982817792171024136905685031940043796016314782210981215533018310884103098408762512317521192663540558598709973605013087678631324603475604411148788197091939062371696159170882593702514872147531345084236279626989091978393782313397301207052164669840120175198658772874466494493606364955036488034279102152320898910487971708963394419825484110631577775528499097212171657312808632876933879257280564206437059153586245524340469860228010428530474932729033146057673864747645290337507950899332543137597388443227964837836175099253810535199885206081957844569306492462679000064009670097643461002611009172632970306300281043070240671144335602257022231969603689275553968295534684946509789390970291399146416729866672889744616672809838485889193958853706114203534483774797441191461183735091369893399612402175200344629815284497873423046345931781849580984069106263321423327199365198404063845362334488546621091480387808267553136271342730355631755976611272618731072711690150195959879654772962212594936835917470521889165176844235817057692201623022748211278791859047985192085885110828630917503205510232227283242612365154510461277392656991257272314816583292434091457375613132462335895343899335613083212319146061456386654874210977333330014738178419372750403413300553004916750079880682513555899780210531177099817452088327127167764936623134915201616372963468282010392873628899658039926669922043618238471363310911771471458951356073532472936618792486278780883437440202877900582966536420246154655389245343802575870649813533662078779093343259166113901639064465633458448439725749849309796674591414043510977527077252335651077551661749464010457586047056386742330084190717401429970775383822597520111014955931650035882294956511985108942592327161469110998580655804631855490232817454872622970495635143982256952387422312143654891882252719839867878125837927298818642987982383483279463222500388363469532170362233820300667762290657787256852163120128212490134362826722622611244256343829289376214500909191734056090597067010235017829051611739033857203930529621145412172246433805698601319973969801114011131436410508009389735645061616045573031826641412713770100903804196185968854716770123858508800482062449508709530462724328758709992158579184408599458997798640235752797653338853896223098511649383200665764832920402978589715034708028862509169684240429688463878046020469811627658163617826737833151321677215484326560937327529830048030357581772976039095064235390311254224449919880421776400052416829654325299858410195459675158099823832635662948668040384537343329100432125382754408266612575532920540345770788029436805143683091402286697821704131844176519598749055029225241451466446991580030606086963365657987142269078113296030508615553962202574375111271532530544144901240318477976466126432376126232465069170877278185677403694911269350663589119047409469073624072746665210068022489402091424328291559934227436345441097616307777408246029378729839034296678970659303407066683551327099491261285405021708841901048720348688115828406988514268200181965660013158568791859917562853770526144827004616728879544407063017607184302813752318912788816402743393570304221944543709171534662981218211160180840871739138304333535047843152930301112991491996756997068076486785945997857200012844456695381630902370270075929494857681327775598545780539065748598242641340397515790573386486358188987622261455923742053903096945254924732475593784181526145862847132274164773026989638921581931265852444505553711822289930819047738864401889110092653594787298540480493552525302388770931802354540630849750761400810466205424635847448097858696912848511817585670692402475861157692769528902367335695616023129640021600897308551057254895523503260007756790801179251666102390051260495835590601756702696152570734395061070417918261948104581771986468469999890926718591209519308566941531257075640389054802199293158547634996394950670147858093815569928749061070506631869863033241913390427372353361740244435694691140634098863404371948172425939466854040243613047637244334552155402404427979821805409829652413189898766710792398549147571974772710007835601736453244007974089298481817870358263325692310302950808319463847854600436698909361829928856204036842471334665190155453641368844803096557985490163903291300578906255148096853376282987489654237166817713953947835428522763501759801498274121040461379030763100838407927210816563493171667152885530732712493621941532398484331697649143272171064392019560066290029823227598276939692842001769496362196926862457171164715501733574558859088451915237457892830183161844788797131772778850856870582529675495876498883457151970856345815431386267342409775064169226237713492954158968208273610199572845241267664312204584959353686747884736694579812373492500948297165167830817031177403196480838118251521639323097167371371529651672606948721762655647005886934893614812405367671610894191904402305292660854474549830591963246835985945665677637649882401833232865344155283198584297453572326802967226748755299610240769471498529269804770068071577130822018792950059902561889765236667029726080809958687526691360892214329825138690427451337285910738493692043941687169056493344305046727918350518220007511350755623374040974487814313171242832725305995001243582668598841640173892956039540717670841615273143048003278886355355307809937712430811440348463362367905757020018069643720564996222706563173202548671116621359979491734912973478863750792520224119033875248128391566858366472024351023614576676636967333378461049012736049811062078125721113007778289372503738649274043490516739041895637851963685016523302006212974372111185905118518736289678323025802249797789311189404244332725443084984359674650456287292233793186449837315981801307467136420456478311283395453927298015085475078034718374396161574621043490086272130777450304088371482387821919405520998035330990066605483552633513465354454548822989570363854427506279670521157938355802443242932841908693749670111886575022510693085390635775151402492516468707803438838723606053540353053097290880271270372093823223825056379383441232087216774731903380907290309956913372260636569203096232432185917518491245634271711448741127451800260712141470049768450483099674743509587177969528758990587433494209467232109457192192984475651691661325420025037363383505072035984397217117638278010057378291417457278436341648573944256350290775973344838879392920340702009181127401905440587591591305798341482541792982735559228509487692029219066759242742583950720471571815776074423216381022890352769785188119184009396696760003909437705691215843960403744067488714661981728658764544710479351230078451105485271829470582006506887319793257356703151336571414712177921012476700036376370648496496877016096868248416753651644525617916110011027506553235490236974539494784160965622907930874083001752249240366530095942303488315233594815222152488861083465395527531161757882536433209223243528484243659856878005057370391158357043349540274007972507444697232245354464600202914210769559803595518513081493039011516090443562831855207301502510805720818017603302132115540941015101381125275536365750816709691383173678422572479180071464456613058491151583693666479211451507203536145823014415009843822648392790792671008897987065353604056976893480029653375536429510565634618692261541413572422400259065839908366547145330430744570591526515613119142574478351753470794449221243881756426489937236470742133383268673184913215848618982681672177495880256522214273939043092994747430542782691375552865708387953201601659369476074951101031228046337552561123497282857540756277848264597620404168688755679634921548635853104066350647535295921812543064184095821414939053830770312221620353345865312248666514037711906212091775297340627571531714341675401431162121899817792314779914953041093186922695542283507282722289684790796605620109750921658225887025969878340496943884595684500992779104226343319854786872732990708062416624137338533365979312431926124938622138935426665888477371311437094845627947872643518613298343572676483723744165363370709834063353298472729659438085642097987925398897619137027578400517759101803655291617996557529319808925492939670673843813126524586781775093297940228135343531670990190537279651199558223115657779297782439235398477791693095980939889753589385176417748439469067063899053205917076608670090422094439610279264245436802304873668716309069749128195895319784560578423120701820252963536017430694739467991167197396000098713972247103055781331784118627349294566593131935415613822283063356836004546999568324872623675452654224593143330171702558771856769034340184432097603286726233538422931673944769822661804865072577572622672037682125346917171871680468115509618076246391262497916406316035131798347766104202968991473535103380997898281965872399538353931697256181150483437787043882192054882868260460370312942382923952395549600748946865889762247567425520961880468213465443729415859273403251265164824235560180288029758939050879631304064645689047418285591271494396361816356644127762319192309346400494567306324648226634638463835191798486296529858616534690402119336956487724247588588542082033591509822088664465140970302484457806837858011455562193922868342426947463341411340628007613274433476142733928415339280008767242560241283889331836855539748245418072588950300079750368356004310425868708555502095808462568406369465247564313899183018002863615721811889378787911732397057506252352552233474335112443043208813730672849595717956644331574450103753044750549442135593096362863355877472017748262610199765619824287650149672124968793383665316602743566675023351675878203409214160335977492095633396074650890043489981566715383804667803060999858788132079093801179079718089525159597036967452477686601930670141114307158650630731749065642616649198789234646876946647122172780733909746628793669474981171106202093118171045355365674463894773041356601633796651067798769806259745092096212129050178836212341293474222088229410658384284994590812531974347438177793366158774320857055152298968987358463774326604608922994580588512403374855590621525801645890421508014693153404232784961630349574849782554355182171486929707833030623471830899688354634545421738429752685392315930289633710326896096396320295395402634247278050770646846947490304227390922065927046418449589701335553847886757618859058471808992029527516260185753984537959813371568725242017172184814286835656022377535400928076968270746353515756590818364145240351199223094384984832844518478597313973586224337330681671405011182605574479997610899711685990955293320166992816349112602027645889958183890226004666657672556153883410923018565006800023044076297938391392032729728324656235027272522274473736072905725539339072914059770013106046231515323895388178472567951000291768837170973159958079798020257937972306914914243310865736674913340297572534552427787015683593996843916136154515593336484832484685995681334554688160290264040564670518292619314908191010341426995768002756614916836528039154773411638120965210517377379828198186256395451968630824846488783631869230930202212846445625833728103145695270423716620945411848625702184602848171564916346361785809464181733015226406472469497258008069971196203677145174607406666690017906664301464591530652752463238307900681902162202807652409926903710631917803718316918136276354799706962064053937255037992369059858182020244292214961560198440457612050709863678862520723151206478478616907777240545892055339910382484420759896212375825670473693893435257224198152415292961383010542512347356075391551013213874184787537861943320376192635834226666199128271042773035099505413280066000977053540794067322382718466787079860968574100062590675213160428933179028100898092513418345023949308813523459511666529611728933246583331762219663121420466340651756680950615765172570222217451111907276752349597613253236886243672509317129986013811335411774191166561192441042646689134868897807683404570926190267314694388529687739498612705582149008142371820645273962920341784710470388070203708420596646509841465967831064706061251456841054561999869684209100899048492585211600736896348750212998111367352333911841525116863286855557947089729700277713195827520075252001449667383113938533272453172430021320699757961885462181775861924210356874316870811043423558815623655550142167095383923487666248462838864860554848805854227100996091437323261075858359991184706675520029480952217121719238653787156446743609896247415812864423952034718308923335733776136094872668475419772085010402172359864662980674536154243210617171130547665007591994557212430098332361195799932723437304253096583917488992301061811250452952444440234072553015652523065939577169232209441475247488899169285036811490012785073110505123388100848977830913401925710817984493250509124726855516090498829445943776763361025473459943815842018344848978737057713621038610177418751440334884942282240694526074439619884231386266705039276531344625154855712793453146594421636630505086603098245202773492562857261630539331050219787959611851963007881572043866474691584888542140853197790993288223233798004738554310547442229619462042674446019003525088684609520688038647523316160067601919111231355764029859588793031251198795318963282772503670931924794686336820063225848164379225266842930182358306568956099519502362588274233727259494488861726812849087029302506730789216973984719295414675782691081122201210451334096847626539138096141722455522262667161923044201571902424025901373847675995285338498477216457171561863325205678586537372982747679105131080990183131886536064800442207537186070232513381473694307969131972526847335375742721957505854974354210764267738617208977143014975421236167672329919259127401025051214547887425397527715225451384952743198228129500625699822968024615223247134501077969019420041231826346169736246365606169536334944857774873719408856810936262901701054481113425497686926424679130497362977537497386435952694759188664017742151312447379304156499123805807759886232796478768793050089236310559812104127503285478071656532206969514159785500594933381036473308303004723239381400498991228814523113661514535067166734795288215301906783631271118372759008082387409548758182074377641058938959203916320519929175961421074709219863330963390208130296753746799908572258508842259241799235523511926649562196032796484956439258834659256166977392059869081134836039063100805463346141713102760345854294754580023318635437589824567263649413568932701982506512866453802566265631992272904571981609145547105633324592016080383903684096624203182682403470373194481189734832769451077519923504777518446639124467250227237216531718122496836144411837099529784496326203565846336897236461343596256387719116547583975053779851607115734973602122370212408026455130857504572747410334986136616713688069892102012758129114428882643020749241620918136853923430898952585104632083496980820383670259926498825334345134968985142057148525096024618233506896937677956978445441509625836154660252167099482297933517990024744052705743003025539148776407823207650396360677278787768225227967532838387801080562545310946437985026972804956461845681280627559995609486586333960644087612958882626591171161004818411522327769918765977284604392790068857495924916037924382084672952553313176024317650675842144395570646860794742348665624058804461513725410388579804080691917354386887883805475782580292982593916438822885415783174434569494594650993642530604592993290586137765251788017735820866850807888119756367912906183184138132901168555656287455499103746836604373343002006825103430911477085313208590234038005256955578463441131768390277963935772428786139664530765069282632816884075911961454579168926355406754898149230259068866155176507307063738607668671006569111756864683697367286812521335368556269240324950224800768764833711702130622512857754505123135507460724113175258628270602158107561452822595107458231233362215452933070238504914645094972234023630021738318447386882745261552650716384515410864810769203286184749499101699613093154156645475106184362297754482571402909904646822179777280329365698200905403058376898462630486478060174082555527708097030788305475723432327944167409773026847403273206852562006869162711865401580693516353970859670527030188720372893430492172435513690286214297711896848152610734813622789392802643369740773754280689602288821246357033930335727565292319663999386955827234627918705172724997312605224601639327863269456758760328736447729522634084704015133286306016835166646750042743441346266155708090493447174177915732905162519062717155024475727741860316084337504971378325463466997584722522453234391044985341199827844085487048647143098088233995486352219926880512106344599819330581679313165865998117094730207918864949582024612922155360949770426262526655723712142298680009823104551669492433205378758889956772884252069981591271320487734273080809934184822146856579876036867820823024057634673069012244328063225847891453617204468671920575853162719138212318834094552356208323832119580480378123780765480422261530274543004814425154378870147136982512082560100300975275323880802419105876413960578085364518758504514129846386838458750933254418087718261937883717727013763386521456090665427174157398084430366968351679996288608352269626089879239560551707473244388810174670913397116079909926124562734737259537719732954672677301770664310745473078404373798871448092278430092478447661888295650993761730551879967793524269887480163206474433126967858635802968105662101007721469973646233792354178651483159154280229791506503542403066767481293269343012458748689478972020849902557343238493387701253076245330324457962979093680603208842379254028626635985933542044900396038547971815712625429828260869644512217110622266273160109007509246560436855481842485214183884651031266405201794671452578174414691906777273694198663756070673638178347706216843600464997763725697061038800211242453742024996319604341376626823032599349346919180346631619350282650381310917902541784572259299498082048735324836470955255836878915956255787205672286056268816908205641222981680517727789650119103694057921809909393710352439401507413640177540614512954933603443365049751184360460448958280094452156287324953797651944998391758947418607759480746939645405748752556112808435704120174035427163203680438435296751028712058021284944160032684071336550515610101820977240532376366218870420458380959137068778106128621477263254962000743875307226743764147561061720864813731290985529445066119457264815830366554854351896022630564071911089016147485843452413656544581569191263981673209426614605656557673701585988649885255528327500890759880303486367435281209267639629738574700967576592389370471466812167733130598167595537781266778301820209123013723386374845052066717080909370867424872872698106523895942221779222537084284758292404549640614592278162601134192082011902990418309554361310669587415184080676014831133982714605765108028359111067879767393088307152653150520765847021097964017592341501898850516591111047015058568941230535627469699278946900357542492706606091140073928145586366768275480550153272873840982077199895149269837085603070154975388407130144361542689361039697244356225199032806749110415812179072746629365987030870486946782993531835032461287788606750097392851202546438350639110879317918882972059034485317953807022555004369423147814798473256494675986496618298642487523902074103608900062648229396549608460607069061688380686819671785482559473926538463639739316546472785617709551041472994058510975950546477012629109580817607817374885057949682848364241620051568730030466544830758840356073601330561189562093204743610077657153393516182039887733049234497614567370776821913701944939698260565906510172998476021121973884754565093689986511917551350320354292448342741924296554684615118698175572406994826957464687351771076326624169422581319331611676843680523039323390902737512311085821803366721457119713838733958442604836872447771231731748679752835575869412828188055383757470985804199539245200733099771406306808619012561494670788209207188014476064269332045561457119352449123568965855692627100411530782333859662997700034197081311358470878833853033539473466072716902731943151959528312761361489893117821411934506301637870147723757158529995001915897548164736607955946502022425289320981172226294848820633238642499673606529292661916169609536585094658732655018286714790316909425898302329227819314408632814040466209833002283960548512094911571566706491085855501394013543878018457420350664448177241641418684918653029062875379858695240298034280012099909637553178789690074356727112829119242458765384390593978995362429851090969209807200350730141006641360428308174726287880313755054118312159643846395637248425917273621816829246847826596201406975196170246706382861070062171792072624621636913301507824712175290007063019649624428277910785058233122302149978158603945391796006119251675515855413355996701991783964939229232347494140728436527753087585422219687025451102494228488012629820108289782530121429654864539318814915938574524803708545028823592312007440891059104132868794709192531468632048958460729045280192288658017267175045461064009990134877177811390320703139059752783381793484235573863862284720464683379417918513255043677095009890533578014164761162724125151435512585163783562303740448151733861378734573801370207638731003681382411232455171681188852499980495777231057666516228879470768383119640833848458026168412421363763816381516281964715253190171775939490442435763951215633489978129786127278971882262898138020548825470709180960219391434379044638980450854534931086927112102673176934698968175390979573275414496405264455349948011160195982624486808690496190839480777929749620725943387868583260044296356941692171022871581250059170683050849263404609813856870395811438782890536661601041243592834323266484006902482508273823345203793524887816735784020806955972445692847424671062211180847340814054877504650869398964759440061749212564377181730077755877008608707563381474164615801111167806460852220762580615810001813427229364916658485972992344373490038542284066620698215465529698424830588364786683439535417634165339721747209902756980202594898747447041353194352586347845995928711142609737105002071778307994301529973770491572552077961360138067396294699996640600153748987506631002389756637375668966931441727717464013610934629452180136852200377595070186828571364339917165405471926601374743079945128732010344033231412057851884502058717003857195048830896454007046547499262516156514224442736559936889856979228720490385689206266943228722573492527999988950338136188437342858112888301358175038709010373145703445877955538475029822761584540160721560675454981186597475481239781239135989471165677442053805487526437334800974913377756868590975293777170501326447561699925956037314774070766983054406290370778652340439896831915464266378817599928948914331765726126950866851653245975881660181670390511987351753128955289348026774663350085498972054505229458592073465697232880846580771183908211721840526606774311256382837416388738980332101602820260690537188184384611770336797241794438346217296153798069767462105065974556953743613411770284210393075047408221155755007772353307947900471996644457584118468822816082522086320653558864410751848507447003548062673238394164900838239706445431497346747575919654154262514985610549472757606514222735498957221744708842227748374193862755876218238606641191691845343847887841673853978828107616986290349785914488527759647608960651424073925810090323876730604695918789257497423189075765562782991440344987077613165440722394477393684102352521641605867573233528718162664697728485015020690119755742045060809034113964846686437514032767436790158198994837012863936165426299276623938285414837210712126370775024662427787188157136422897929684211288013676015806018611369719629882225436533009868007981763460738803330059535787976200572756015628704970721251971798516152816883592207638774152019324706523597308407864061207743812270241346813179787181932662913725667462659385039105737544641146812336505983512871903544002747953681200320202849196368254157798328845116150503845677154161372095553440223825800165257424797751980808832913383076364453124473059037175656321638462333010952871359941055196467110337879860360178431870308200850087241569604299650987088640333964718612385919424754541271399594230400585887139225617855524204528621818719869585417745443274270471378202624165794254492936117323897890706377942548235343717895372230298763145008350933626141445751975331044126604842492784735780018025210416523640745486052936378215821183589059089657432387809265189481034133284270943117478119785395209011477743865614629981920574493627379648583683627351654702252127849150778397943678458031084293430059982968868583908150577706227831079671292400707711406633062120687213788391597202498725900729162106895620924344484558367386375072125576038765333530956319215877180903367248722204018273533792272515213912012086570265427899353964725460956381545529253465374676354411960968204309643905837303701438762875259610899640732411530101266855447065892791584812932705643596199603534998247184306568847396449485452676911132182344035234008407844966032962883546602230531194160756159923115875391616746751478419161812981188094235952953267908677894558046243981573586913572673684173684604586537489200935890110473035878129751047660642376828456028215631963732153242101896943976617220026913827423593133379326858980147054568227520837122350688858035624619530762169018894193586058594855247756919974708288130683435925813611545291614012573538878075912857095687526052989241920072332124545984805700119592505203147478229593842878677266395963327414879797016764213644632663939503984281733113924392642722866050077854972366581345021550890688213459162112738935173416298398040018530121397747340723949039274410940498776310994970748486575045227478067620285876550279687950064661981305281430779510452033520636365174920011700456830446076928003593248936754666897939064521980050095095614790946191272239022828754400525522385019342792728352035486969907794997175784748917619861182741590934405862100132785710433173015170804070626871428314663871035911235279623403915477245941998977633202108320799877958530667687616310486299087522825879473066060570494641928164871652075512163733068425424599056821092743356503357609659650890735906693813332312370168317391625132671672759233751418493991164379094178115554820346996045842990976628303785163423294228375672300570191138376436165809605597405906215304509526550656633503779913317208075938584472231218351082674093028125410781750292449707336021204136508509995603531126825372248605993344240567229656291526415228001758919504362512657653299068465406926376145607871060257310997889823204040241980820545209195570322604661771036361350772024093447189158718409706886142945448963563820994383697190727043982143501487251389176027516613979363100017147784419323510066158246525173487117054686329286678246764659962971231740988950187660031473746858461711135387841032934974937501843991005173463109640451745703252873299655675505233076896972387910857960734292785161447682695232105639262756106689874972050466633157028490078017304591938997758696865193822553660917446635509753304007042572606438225833311164192280085647093872547108840734538996914319150302462652292107262426643713834970968216658511952381079717927567184218207915819406103994302474725341522919886992861634530211228707604868602268403963564800627855793370117412292934592456774648925875987392327624645384550713749909013339183690608281112135223111580954381828813676837637899371145953031854480650972003137333066693506282262069606406855831803670026814627599505121193507207578095703152440106763369311952636865632256403134122274975577115059021188201139750971434767824731679520239027403460954868526503321895491812983771935241772532653091297467276171065524354640993078701212419590997039873601374347724301377867874818086527208196053307981607973253685436627391725640101696453571114421117712611377980770727584074266888434441633864141443711898954507289841986940793902355887354530503520545485699929264757570924428807362447135661771062058150613839382215856315011097274878735271331241350957618638312040177332762844840606648977789555383031406450768800067173657809989639675181314714405602224636252102441873238995599775025444039955814880487394518094026927269869385098942440496449746582232873444930317742342260576546742879664910386777582582575892632617510008401643471215022851955589227454809415191562011320381366538177643139667921429322275544978063621663309401983130558012600104372288659302831428707674644644597795573596593506239501075547844155210432565472150569919317822403640196879740224504704243315572033892543577485440995732462963246382010633016457800005548762393759212296061938421376943179489258416139130284611654350222229951924655453257328265465974328222450055308011695188174292126036002026332774937998694221410002561201967661370137363846844043854240044953274059552355773425380877819199542955573735078062616392574287594131029623901930383235736535688273919807630385558034743040225960144258095878269994897545332757524998286763218456067780290597008257246686261517474162692403821314685764611160197078601002372136102174451579717384097637080198216748350609305311110718100918330932184922568223251814765286625443066544509463584137467318193025935711503890732900051583454316890252763079278544718326598140845641925533718886347968153401461230880333114627129684429665288580801593251417347604256043331897937775935333830145041378593667824422639684983061770297755820203074919602917463342409774464536606902683683768343855333055831342426020892373996995138364406480251192178335933688668667631827503819158411456594050922294360482188763329399713924131559611009394721912154351417881697121340163091312381147177150365637969055485225667146539507334706457336515580542065245318755499313244178925380228728734144502869458534315410510247383527432006224860258859415107123161711287492946974604221503307020062674248060788236931917227795959986585367877231460896962853020828833587002432090333998753400561529255056408010786773385641360630677453367582088057196954235548593827375798675866086849149136225963560904799337211840834355340024408209688114334307432709348905082107458183567071442442296646194377535978421144256775481657833952690678106976946623281722314695461774082886758651169735488559753285470757800992522669359832582462847986955744755833622468231085240220011001147829046757309965494664796866845225976821144789202651054873679878136051564183601002254060788200317987001758922793068295772664538603853112315086963610734778190335318805765908936061463086656907676452379175472688946533747144053958272644443547148248929259591777178998349912572016644480139260524593564008021678769729679365456231756068730326653602616472168263386773088755191703422201392219796496206563379241345648818311516656310428170880070752574646736275175748753979120560729781747849086669201533156875557571398835388782055352373954343401190981128636577821605430636194172933812314035194283124246303570861317192973015324924007098449024509510343978184912257380002730782449539391319302988713022419259761110864610381442309359798467520542963322091557230331515051806438766859281861055187399931636193974677894127290431094840175706911534663657067574314141588705035747025863139393814590340075486864989704453007472428247813654223863190301524909471329799806752306937653430625082238528281216855924338462179674807388424434501157958799473218550580263620325768434560310569949050504539312693588153435092098491235359702416125368385652624715818670726815913642110944364266218788655264083941104601537784083454204178024752239823443118120952107335792618199954973045952672485780189369137051298543959785971185739732305907003436878290556942478633911175595930635876643188934949465610872991536316134409343335420295389645323450671865033771293105926994851845602043418255621453284886794480511910572419094398830050125082235431954564370561763773459961115664030433146664553829460617330010943002838392952361284240242560315666171689698147201941889057993509403802857749326011429509829159696366374601445417600886677747793954972017992897738324743625150907434574365389970664210862169374722793065271370392491944996888174739404480063958047472170197402523361783671297155586091496149712004053878645581945510373404560376558061992660224903466528248870708977508021332423086684629894826165269031190323322940739300011617122604295764747161668684912669229750170635609641298701060163092536943387988123722209505022995298550548685138447655101554375670096242047904162733647154586386013918021535556447837137251573972182884791284302913786002580555006169557555730832821237655133859794798582194197393462685979741820923183578556809133347424476704930417557602267520752712553017619735528311230573467182731035158948889678045551171649583811972668541215450817759641858527830338356147367013601734266120355016916273775658986972269345033653203519272086493821806708189597611410899778431665521883193183620336748452482421890407859465294766763210105347659592163473546178470614887951103481421247350883413392208101650166923600587874807666237459575279357526708249897047680702550681990434946526215664106705037168678677250462658645458823417458794355663952363546067359537853631213677921980038891149503023316910410946253598902122890655307806616607785576550630062968816852228432118608581451371486238999558526503432383778231706960960335976642725474170516718620871871470406730933413655400192608722446173560761514416729000430661088919080996132036291260107065210088645129174478055093897556711448730810027922941484694822677796199330222838307376871564225519830887471280643536693320717834266927079008679044632657269343366039456273871299904740774270097103850204955130781054336294247012131988906136581022643156428838053842800465590709857006401091627475777541461440216089584065941645886054722835232164858694449522422323335165374624955183787903279042002989184390838326107155834929871599796989908223646737529687715846878782797149036768578747596109234106946889047694198180933996720644369466014773403052602606561323939653936992892359001315357598022773891421419025280399072957873660334450124212361710257901914146310398899962907816936507107658051559351496327831524353430261769836626817779709855907690778127279758357264731066504885568301816420688445903275556094612666509299437458858267914775247211262419550347326389525413698586144274680765932000981418020511696610045382617044461011579752041085082405500509477630704956381044520163045782086418314294815889460698252245266011859366258555565200342282940884423174131090208628011004310850658408088074186905402529449360398889477854531794675685893957072067416013407720031916944471983078032337911248265656093841476760732536778715917513816599198081266769070982252954013824791175293258914300458716403090517701699307095912720083691564959687820214601213719859049827586050522463132235044173185976296302074899861251125325890037179218630524455288860241949669473909472042349720580836697448006825327639283220162789360815145111221541695433732306705785583881390825425300531010561264161252979538112417776123816135345469649651021101228821883828231341750253873332448681909654458202578583560776852827912959081713979779871294667067884874946302131984912898550593506260425497478664059391406889947624969712853206507623783914762650453821719646036160242688997437430977332347134937409540620834161933217876716030197077459260637303912071743202617863601464223040185161242642878979960665475557800960922102061484222857554974481587161797487510388970252715787078819355384367634555682732049849609762771783483651483875207249506405094984993242066708671006715119259120264434264066264399945260589727440692438928278518927024099378113493404820704671983814976891361751305432320901302888604039003444095864251638133635191567834729563474665110255917682162226438225499501290246195397101230782540200289472742113668963544554684843599797046959757101829493055621010879658961942164650234038724132066987808123758604370717695974781052956105544673954430054081426228300154527261543615711949793906045554802941817601687264637138052332365097631707731661405471565365658670731464910527710446605524571275161735669218348883559151540912187835055221128571460122499673283861673840273575116587208029888656560506008734840844624116080619605916793797123119887551642648669499130025765004991666439185355445159394254243239366846940870234851396557848146517606417932173287281221641172569306913795935062759334263954769528621357779836176070005270603571009987258908552618592994066902819955399452470107847617558728083221938925410469912733440416691828563678304570136207713005608396213370413464046138840133542170222115551636562848429501478274690934036698179346291961665719246079606700732501352239454823882161330753763090645138280561988438759873816177816656883405638151746165179326158989942247211227849726802751504935021840109684705575079512383947082636063714986616826946830456918230924082343176771542669907456520666340337337592395935391993502850989378939572714766371046459164190936443968072016872021731307431276832008915936916681681096231719068268993444464268311569388489451766696072328318471904322759210222621970706496168518120018345273685476521482805446893828835117082001161878565725302209121754014173341876903265099389873381720761490189479033782390802675560911847772573045707704934469159830083337490391628947380419575287113787112933482077383104017454418606096840941479605725494789128888031710646413939000582044703500271105434012789751860463966183848738113468290753568899930655582008793157958809745781346908203166967054841986748739344600352801740570917020793582988096666143030679604642676579288025259343820422029168219210561290753663424554465152330501941958061380096411947492767876331794007057569177721545306487289593043111227366301018296284174002680438534172088093429835850524782038805009151435335799829825421397917742968843089971034258380574441231066218118608307931731095222018539591270359598827416423115301558561821898699326079841215992253717654546778738657681359405351791290299847420542846170083261238065740913361938807317090154625153631126865449201641985044117487452055901436816053331037143074985014492922870962854592482378535057807640946761576784547992225230186979126974244565998057629541442852358054503647243770887732878676980271344730516871671494043276225480036312898969380764723113550939423055871140894018440319409815372317312379664825866083329634975956687461566546423030348634397831658865840173194367924571072227264822452659537631945434165250516162346367834351743755856787907417689975249914032872301298067544313586149621902414455252489491661777166014227576719043607889775553482873471636689756930550293523131077287827574315285055290927973899518524955622619319373937712661053529592371796901884376067424259653436137042768961147101148634862124606447524800763447275769794050861464915697691622852840368007107186353472328737639057288015027989632692227947547707737495000016826929160783831851697727479571445800452790294190047399505324375656890098776928848849826472242923894833771207406573070074705970251817900770744580284589657342607771029288889112763845336940019902937725479605051569115806168761424805143335295178978297981304077650065805802191909968351478446299722291215053492422210436387646078714448015539663377046884769666021181716194430845459929560682810364357660179441899703785628520820839420909770015670043689375061763983366173377809476395443035791888456102213793044944712819718619958187593388536091538815756339613904065312329973939448975699667098213919393205466842556313774696525212104582621494694282510856903635217265654797101831661312799610922620925146581802941348641188906967181023209930117035600768236804389174060193407246846817036215436514123908572068588530001675386276872424897893173402254328029015771900695754565600437474841478250793065407160610119695019505484382395754355056244922002862844187895391923679625782968382823615005893329744861880911949747135856169852534302825931129337526412393721202339080138895696216100791061482498144446738792190622824253878674407424877940411579581736699172712789338539274680348938019561484372218941711129113002267674131443492219418223295711327497516978559528185907460828387129177030457631480347372825766524010920182944908316038727274565408073682432301499221008160966716176361788720049558328414320969139589988453607427486160222394203426402206685324738493250922360238803364307504697493022572224103527395159363400549641804867414277973290079980948611984377523410413937202196225950175268207392436466595727101198238423337282937233540098772971998215768911097726840278006794962260294103775626867868378285186429900037148621446421328474840825215114838413003213118090091975492096830449709836123705523703779483094028804098871710393714409610491058978201869357217521640156183450838886512619134288160951036829485390653865606430936903713243426208594911063858776968912928124320448505788539282841940424009127426176752590158287771722176318667232848024609442892665079225208026711436771306293697138893859942557504966289897881000155007952224924652688363205026679232991061266831891207225102227608754990526201228272357744401712247452183928250621588994069931027759470895354483429575000631336262040019500450287890121724147204646299481799056501267040608170680055922445350441766304583598159598469567714017451238150701861991034858442144001065766846732768657152690370994025016464342214687130404414738684493077833504093367925320973859446548275347366081413365449407908498919755535002937620696774925146956167875856391340887464221917012564140768920156479760832358952847513869689125748857584497073856265159498246687057041461410439692400304759639109003054956045233289342243262010460237144611587959054295433062118770361898506361698325299129318132184949514270568538385530087991953700063383803129829390453081368628293583963528475024730469808037540069795525360892720567895722678125559921811737569776669688761929121053040927841208466646543893102073311663002693531530350802820825724583875914892653785214278225603012046752177501679406740646279443693191702261055147661395790296233081870326899130938684428311267375450992349743729881964727650803787568950802719587351586823971714507248140319799533906538013981278718316200213178808867759797561551519420284640461388597079991190252566990268973567671841840719627561988523201962947394729825160614002832837022266410940672625441842984774975058403514777976487593813696143021071077850325819210186081564364128458427730605544907982165788153146667710750597210286869983026119113214776410922881329329234293534917635116891337128697310842794965117014934819164186030144800831844713597527244675137025072028062618011634547031740092471287388240775499156038874999824103006675726819941246988424429723194884211296312647804446977278835376028099685664443102116357124315882911990084825540065496051666698593851742018844875555300737119545341780514064937001152985169290467484713214174225522622029809387655058190283044892518420267655936758672508012702755252699782747220237209009859456786398476635164604268122016987317818642933401326892231566716703047189448002872857323282777663490864443475396148995644774174436330565993136620263167385878860103608458646642189901756904507601008961972187766908227795060360400017587517797560524144725823484684235003821461427168609083685626728677340216425657935335958530112037206682943845228866048837729934121762326995109679222529815374146696869079188457795644157502911718743966201279714729594133255408811117698876910155581415276219901547512935843148143528524346180055600057094243290561579745361482873935682129832459458363066411921543032019442184138697213265514804677598865629768659706070856739086979250603944468688942768766700064886730209543657401260491117566374138766562446425966487271097124346430550765612617646632398086206589642540575130904598104311415065986533593619012057407737092792054770924776411113131825938722889072501234177110144035948661064090602796653523854869281253214295464512555824598573257686913671848497017140608805541637479577684029375117136543844403416248951269445346105831444504771896195610611266150434402242335758095379340457029950088194154285930721958432858819338006780127943817821356962485319831716472045294622485651433195798961938768894649618229021471183767295088642233495751045007168600497166776384201538249703423854908224642693249547687654208849252639561804576789868525974381451716092956575135896639301960593991301771619333092425288821766252862039267708772775882233180180453494816652448107468271132343224324836127495738771961687968398852106065203248268740658358891035575005942752851362484590241912509624015706259017653222017081607061044044634364172635219930003109842360847095015776178521393019368192829089799173139617791011570947535113404530459488631634905250895518206079839041984437149959687158512570423557407530727268125162267113815859824621586725434390734097300373148756200135451322196762442737690311701650023318204798663493466485626398964260574486147636741479814035459587885425309194074831888798568777946014452494932427845183024549981796883526906331196287937342405860124870336522701728146782272397710329421847430388025751417675379005862768626216356553540123063478719485973615088621706833145812617357227997644172130500071611311440592067193491569872752506887465201975997695844987566581355030109425668778825843918987379933538601902573636085857928732061084367532603707102741155684742673366332932930718134854118160894390081118473565471268032621503094407205332430239262754635014636797204029625882895414279238458030064925653790701359313420265866215774381833842578806364649419810519164919317931174385969727094875450414478618813850358627482914199660755363401242162048740917022636667706455297545588885068095568446181458333715016692195369758177865713647589584605490612605844104253993092529835167918178704653980316461581153118961010434178991678852260261284428847825410610190602482793570361452635981014001926778450940967451114288596482987601734511671152761211152372240937881471610320747156883434753470976592495538837757109492733855279090860033978023351483272825575861896567214811451801370819974701700035507953817968368353190605084181621342934174770094080507891239195237815864569354130762074708249921891345854122003959786728434992665071842916062505381437930068857900053612596795070411286496316397708871890724249861255243464980460826334040823449190258537546821862472608563806518797333959933561772316416719445067997786392410815451800270240244285779859141769256945699760765808449465399523773176183798628402622925054261433931555688246766041777229196763795972359507195757019556111462799700039722418660180906174817842007075686460683712101982464613896919723548731801599148625593678237757376679213789355965537208853280198602825898692781725006069292653905002310695410237646745949303431809967237003859046805757923626039083134149014455626764385810845327991349490003866860204242872219539113786375219702863292577479408768026048988281583268524692534721507042815647085573349069351661672377459592328803589751519412458348217665087436074454452612601082390303150516936720044217211715153665355204320788011207986418817361181669031714338213240545663944685429970923073634709537647478029603857972724852996172050863088772235320291769737585146525469789745239909090490941471681579289690723958820143559487222455373235250877226499929173436385620671478321893680986050928760088628014866219283455067473178987103499217646392094062380718502176213759658004797695225437343612389704470381564637332248081268595795503652412748553732066826857478895387185539408818385128975032504338450882723591130721843311909484286511405783877473434154091461671754940610470031478701165246666636704927092497618077674148303405765000176757626433570768096417594652958096962542415955163345561069723397432546055499674101843610129289813064284417114019292779399454831421515798787021272778479101864090527131024168127407510428855703765286413325960670137517034353285532680940108165878460255303743156984804591348331541005979758096724946164938394577837221055074405805141475303543000153556896776951284515604905352452159019093744064817068174288037373673282628441333884922685787757458076272523463048965375434218434522553368260754409099127416853406980389762762288179493730062898508953610148705837358245353581406033239072199115949481284474199188424499853565369394795222312308565143592553750326348599988796812689759075854179761101293947564896126272215333313927254877946707276926402441320128905267472183670963886909861097411875790264340426174032811465382757847427346762761050652327379798762547769854726727848686964600034204334571933083532234594582068942495679385685136405130678235307123394735876853199341631769140307509547136408681047163733214796738307987283141532085548232469228357723975612504509442754095662956458474304203652491805106619318339880182512178764067839823617297000138002199577480923491520796815412639686628142575348508616937841249603226360140755668695491101225073681393328167423887426245784179803079417503393060413791962063489636797351426990161507788049857053697347382190628790393754474848997249582093581934519782493125539947824378075680665363868403703111469451707456772502812965430950707874992935470550950214702165624501801027551619784742665610925858215491997409879320175695470246595007244287466473424754660544492760916369060359987952410772304298156607327797418353699410438927232718687398473282570112163788448824036265202709042043082912995795836480528344768183019699131344452680600090861213963084352187775007371213747096414773539571076582402831040368690679375068045958443858075320253960940606160252292271895032126477307422501510725430927337550581399812343013957634783255055273290949833339921709318602587955637529133861113773955426400319876144158594669385091966526418722096444775851526206146806414578348691194284790684125112212459819961362170189769893018844990909762867471032052546799389767147528946328455859908580727726704161568668495687899832948261284282892833385953884158036642473646487084500002581773131731889331493257823679565816476055113049159580558501443629260321164279882992155077133858425093596383690637906555283921872039292123234128754448174530871721247992239647796574874440650183852195912057646310058922270303785435316735271937173031189568199923963809947978885399826494879756296790767364208691376643087283022641797227984304433398166874606566493827643152307523680172426020487994945660408637427904974388555687756791100148133442458406577480700391763284974749437998499431941701295018095069504147873791068454854766885122660435655984243381298325184568617498064533654275841496671442161897144752851161717531490977513596544908961872650408260283973267871320683933520637261949465098318991611647297195138270613706157329160349481426690027320300243053923466154172018852791496837218168837039768425624810093347983866996468250677383492859226553437399589269804766916351866072264394008567383110441466794863239961219077356525178994860993042721891563049373841718070385977601500243729125336133942685201737145840773704812993368011647623967649161930547287625150562640610617641311912946478769559040274972514808993026745849917122110833909210923486768028575934118605435387841139855901112685607193235520253675809118500111251276163074767375783491704672664887569547961839713991304153269053761041606059672047210162192930016393825305907591030563107111147466233979139283124850304569097057659538116756504374606800486049377102423782185158585963896765556469772069494011880030091020650926274038799967855287209385435423820624630699529121364309156670274998668420481703231486533823189260962652744068451933284021136428794751398241078444220315464923289975752397643692033647759977653063198311892699759630684160251480246785295447267394141991177800894913442567078299834757870368115375506329192833703734539170214477702840524582005382838468821657143343691193836905105620296492295853984127248631607859369492142566190978432134969346703489090657672308545430087035325821269081227250505044572254073315252938393427866189318636929788554527203466249663374717382745643811389350567981447291976511073526904924284324633395315333077200340161960633783882536112988689111917242094082872792648148145288832247855036333667404023097533488842833632771556397668534546356956271362398346456074972535884618627442189706126774395276894984658569550912401259929550413456873836773712691485654096255990706298736340152154971170361364784192880258953085857344151381559369923359341041574228451848147932498942576563865563165963826742459375599785960493586217724759042083863620961136339777831093311588981081020712458185028143033258966527921747433855442117083549772818031770600352003867656126685669526339088738781966941275533175098931286485602110469391330050441371702594553223371840607064231233868334991168996256007646986686179846737936297129959614659543908121402528702676040911631315533333030068342174491451204902291962504698560269138912775041619936380640319854785109561869874000711568257465309545473506974786366732480058770582255274321328479675098889860192006058754961232815492928272581437296690609452044396111748188584651516536023257270894705677868636301664551370731979729538590341337831555716370095803287646531316067135352924219772389183321062488553879507892131742437218601772058274982442991815988733018111821505679683870275097232005655368042472043937930609917308882628250699329404940075186122126231963586006322469970572849071288852445608863026861672709540819196079231053992981026589226876834080248678956006833612381317363413468475635523131058079975533910867332112170172024847748894779886849693201784654214994942084315834826856076546052091559092742415159096845877565681824509542014595895859606186301442209474973961473657082680947987109866989257637497630703513240219103883724527752972993795085933837076586197062807459169965954195192557484950596493109587253579376525978935458957718609170611697316591753123530867383685071793131290255646605335215067319624455670451339984453020582482438315895883488590509780711985150727851051614781635900620559052931985718451432729275006463052743480621854647502764165369360919454326498880489103520978345534109218714571949892790803925758131304855788088289862850388955275161348053139259714094599845500733726280300608113918100952542884031416934547902290168360375390604522162626394803015638356543692473056589516849908275482986864860192738480739747534683453488661676105251763272688527446637486149829279697533187523497026839818328625351809443103043187109663687851547300651887011339574712652322738873599146005668394719068817347918891301808050907438658195816851502022830701913342145608600060808980329114170808509303250964845432451430380085726526920881395260443397505741390050662393695329046910979410178986660697751092814734410058018132841837024940955329640423544105049378517766416041380225550571281522779672211904477984941637044623139151864113222971655727025785729757875419110260733319206290342971760695879440015512278785176749470667581361519184887140876535605482340271485867488744637094409397401828408384934536812696827198071838057091663758404536345852027892332656738521346392812949788688918744032999374384358022654782550880317732848376570962997551162208898039824287482833452570796613528998850604933092859546831364901964529173315554708577470992738730538301182872879705861525118488665216061810729336951317743836144375125468091044123335054123064774025719368735042558780922749088234145508445837194317410398289288492872173954627486776970574789896839850525727935087287609733968562387330851581113705504041424808034503669425927731069156696703517112225347511376466908353405967536562311452912084984953272300388092768964300943100482803187887191189405040260711436579816668203307741633407263423864377530330541016042575529146339508775372509624683827663501663424715735918866374399710493770467563875772674282388301133316090292086606598892162686500606783489884392873284772697492527231579332854489431394809974101461613610159079207263115944516870013029020114524101225294614980642043459539893716810658312006739154305726671007790001216620821464494344375930835878983358307105187142442999960477749752521829757135409968893183382903631013745246972071576601972111430465435289454792049706470362386556096159695388969213578651428168868768507837716578207984985084730878703723252384606886093388896692383487273520784499672237748658742283194492110119418588243216560140613919655095138882696184237616041014187791933155848965607160529631762247540609399161699370300658774865442350840278118816783866966316143013165221411229389470767236394541008966872002893063799456085819778790850958597374458910741548319914283161291301547764610801565887412422113588268033273900632422617674061207387263431043450331978610925775823941509877569255314512183204430410887980968487061491962298481984023001608531343962188975412764341130470532104793022965563688423498960846153834198289916890200177814169849011993144568068545088605585356808752025284773907626839832199578977624579421103258422341461564438921408397937512583628961603623404114264067718284743745349348503012832250875117623515845788005451346434348959412235215456046372471501431966183124142313254124017540667721892068943193257549483586676686578566630963998025274904590106687872619880194742991065538791947063052919107135701766062581043939576610112547509719978481571596242128134287409704581182905162977426237127643929085154065043550904342471033170702797715522339592847503572058633555555727054928973043828330893799569740875171754083078495808054024045431337790076133268055202029875559623599621898489893162824372259398336037115580733633007250742661488480023094302507738542363459218040152436456589533985523604973997467614009255299465807340829834804992968285138799028584832874527147569688337164163852351345547671650909076457807148508078173939097273461077932128371550654823795619456806527355495675111440700205927773793783313242576826989701368153193622934725944450612919426467585957173258202239401226210982143037326076598892727316663074435607096585768873560710980700259683818958247830185006232088314776975724068223472593421393260577461483517419517949101890015032617864548852538998711481365421758533018864870304615838165432668395409424991296534127237502445254202011227909261183387006728970257680304326094118395663296645571255187356526906569782404226135473929901653328211664753033897326028654146945894602797971406219192970961370497364649360295625181307809762251649215824337094361459299751428125363264064232046932067405135561156937817817498976230203473508067359738057489090578324447124109301802812796935795473130510989871645418781356621634855457693377386267091694968656291780696216005538722497861414864151130500773143481317204789014350881108380867188793151332469739302096846211194798157391401525748799350390870171796382977412150088010286216352150647814170060336817599873764783357396246787385436063909332690287739875095322710641982250185765594758495497616853394500996288336576850019159717429585799932626781010284957141657937988341814784274512150043177093098885021309670839978520214581712509276074462356000464450581781447979428188390530693869915542851163253170810162115599092571901246095550355534601325946080992032695697529318827605512768951737792074494426960315610426345729551997103006750661134366058631722152310599330525309649301017881688381101692422011648316950954444244134842800043780442602039255251154871087395243382746947592405668760823674092628533692505817096158912154948629551002652783164466654136895219029723583489411750576069818747300951660133279265517472447931564877694127964890823820492352266741023673724869008422874454632939728437495349751646198288801656975166633126645356845151501348678962824136321058702238749437881228950477849813627661020393641992120744628889810134945967079481772924241436567275517703233527921880869959243748996477796146271682184160990513660331561444045795380472759659049535339806661694634106399429210823981483380998119260548278102385737169829682017841508764909051092181793159670943328181659132201572237080010125365620930561518735364846503242321114636244378849656329356916241590369529809272595077805050590164525297806532191124704723762452359483290827529807707051453056670631204842975329097345121067281733134480840659092697764102423854280129813461436579991926095286021372448994157558709473558100088341738942205886297115237411000557054701125825671038803373229126610649968111562412721501381128691610977972842131637316687968548133112085673449160600223517175557082548662840170830690899260994632150489888706517392156295746877062198938070868642730527209303952139334887751425332278545093051916569618363690138448131068388371002554700820879613408384993052956499848351509859093397595626506196785306894113360138114538282027766120772109422027662321317876745740515813420250545450208504052780232057872153714102428173709320663819003862103088295199442498182708258617622986981682164792102003306663666151338486045664884786127458647817414718832177729272719304254712515921735800311521534540532560623805472607240701963482227505113463924554512279288221699539798050072304313800629809921519774210264163106810256775919614936576584240621601598142843400473422052178668110402589504663718134236882741759912040160109921815487194000945970441184622251218781620953430994018844658152033449989109428735616097089349043087116422301715917599240535651668088987466654306676439156411345015268516139862223232988436456889622094160746562976989832823743822300363510353954579110812596106652170491696871622802659035949283281089467883768733986435957138868593991913436411199462716932917211760608181421483513431011542548370907512638487998296235940035079060819063554257898113500587513263592564451360835026886419080561859069690477329676383369900725279319608541040007381168983145446173024375237890667203706011262608875321040403167478832219910207768660403927792630271279963408752268918493235452828188143509140262699165452989598021377048534317203056540607861918331561712233247400887105468495640782646241116413480880598564158599610731269541387846621810545994700389755104853676282134727852147173798091991810309871542238822257055721743450278562642918449294444039103391273548490702582381039781873686005879988773533059797492910387180395365902119502679878685939478609949537096615278861785528978749941533171554579670217199485559420759140604598419724567178377003607844452738707520950268105246737859733854400323608551156085956856406427063478274847871377658443547357761671198658565719791003686828648755848135245981848456885208905157732357339309617233772455048739272812548743429844673479564661967982797845223865784929282022082559263561030685650994162575103373880382043907063242671213873746938260153314627593996027401304475503032318147585783779414035605580330480768413712046229480095753207333380603914431965212149534460330102331058782122621468966764317954453688603177776914560229078696979201661632415431858176843971514152332002012539828197694603730591488955780162087713921317225070120435286778211015452715804970398291682296431127133372021342143061936130227525912966478271225869203571928832104415172067303621441017996618878016372409843649852870661519108136075873013651435915834271760890902301913176974887444261725339447339301068521418652887951910017326023116934475264038342267189436710852281600470373888555360992718139542899361761780578591989897409004436084021609672229087339259793686855235531499523766858549339144049575303035480589350546407157466590874675934769012947231067060520464096460681255028717002759811769344244796409406341637150092921517966236147431165954252678961261981842025175215395512133498538460364501739056670771333729421896880830964343765856787888136907403404822569331790482524007796061963400689769754784627852515370673637027385761992017131457933068499109463984766180426599870922949880909691807761705934812037917722780719739611111928425975853234983074018459202550666704624027772114582979778472990318731097102453553812007450567431551985609538217953793343178568805128795009773791248874099353805776923626569249957286383319904243823587902144211021815749331924639047227179498081713808420800286322787379919524382074033490609835908834937236770890541786189082742411739918680415372162089829107867924489550116911946889507956821772882666537350307809830349203707387202823026425780505147197441761698713700359229116465454278248788317833390399233872803485718263843243130097460961904907044446596444185174139868478409115143673542704844922771490549986463816443304870750600856591387804044755007708738168955452788351231829375034711825179662037932500738881319101935668503154356467504539385761092704597779258378885523347298139156751127652825916087484138503223865131925213456392194785078118626105781799708716396396457006377899998603218401656113245055554424029956050712154446867007135655982177896715625800798541733280046005118799529649392569670927246387467853047926720198206802679327750650748498606630440336298526803845629709351056928687355264101923719484028853979769855979868907586916390878777167655547990637967000528347891600053454890381248688835555994316270690661172675683718012450126057826877238408447804175432455275410747471747391349280182324525149431747353329767380743183393556654843242034467976506248607106152715474005083695753638506917076921319593845263410015740857146287914788874415400834115392583092441597267699106350917616960097399141673761544273635264739021118768141774390749956367645643314785069247875792691250677234680463852145425895576571299276252436366983851473870453136867769952243690614736142417402043713151770553771492458314115841295699771890815357801312095542501486143765779992765103715418617518808773072829069913438776347117436904704477718988980948665542224025717490285269312477954814171656779288421530664314307858714828768315471758279669825626659391599163887839516970585871596787947400283094977841483687385208498652022128971903866657107963914560553062728171144313697236083467915637113663616099451386915391626764532735261884399789697233808996371913537867549820962847730990894533237210313801197840136987537573076803338483843956989482225436796328618076202038935931151416634897258620828376564504366809504031120820939929270117542201911251384944507022069623447116543450936959346960604942070256234448814080977728189382709678269999872898628577339220362913793110158638343059104654996181022629044882351318496205289152247429030315256410080750583270738275933090127569064177823917113207325335040362259816827928911220923823091236818139691235021381019893805339376146768985790810670787132470435116619838297330787077194361493675442791200013679822138087631374735707484456597919949163857097672881247897260690010785479841922205227520592623228377720675122289582147635020136102915593708491178188893640777360978856069066816752555567103406261796725367892617977495398676505295955034461194737298541294446264302075456731726796402545466198287588416301135581861572377061180234545505812901149655357466215608297938653436112937918086140060820269448672078368212606361983643922543504503848563324256859595021972265364421010456727674852113976606513771566130128587109176725131251860340214065780903428858167535511594708705644081942769068996864885343163786693369052244918697528629349118339691996331043601994690612752759906315528661805007830625008297435862097200481992110922471030555794188246782170595522331957660162876190239362360446925014348886246938320764480610055254468035354078778081842809170575530357038222682082788048940702416633545398585506838493675144097865969477072347004369569906670025924932347466161616687786472992865310950124590280491280400239990076681941899728805904010391572199551777452517116935316199623412255545948036249053395589733683930349923846419322269456051998366993630351474912881859860555863884562202654161533814544578297355251185666722898020772693439786723442869101358099022818621073481971947012681711046920547233708047971690650330758481106655135570444226644780140622581772240300119165204404149432585652049866781896645245005213815559769484436969023123332794097152888519412893342883948327732095144751083067699811833052980048775017056377091523383149413829950038662907088559923417492643138837910982295680937602598726738566274686391752101637971630948715879610135338116306853785073113519160286465187642648235150907981901458497974556942533412178732443187218923088806292162678385881675275367127911605442902668954722867174586229483885765579497643702244218823962463520151439270809676284683429683548722907067986944999709446960511538758157913064452786136296944466550548251561353359816442229127322114092496362469784813424328143277552075539363923661184895758483370093734337036525116663543769559504277385150883052927905195502219308207021386367720831596934511385942879422587629205786099155471285342348668250674800133292843980902397015564223067665647629838383112788963859189542824946010414203986066440226764327509134026670406459337092914325313059673727518752089609325675263930489011844280849742110526586339012861663336103533594711830360437256861927401575221159530715950791016949170431421557893131301808126305321190333560272585711811414276881004012018903536794684670556853005508438420735049953564621854399609629643019658881421182025685025051111557032925847031641777921077030026900955698592127057905158224424925802346924950475332526157772729994457496222469146105681316657851798184716388872972151466967845062788136284275529124850832584332879419946714799115043717158842415661842317927053745464834572321841064746141034413603968104556455105869183188316840224461658347234087437842810356987970361013332601517095831513934934681859239947283988605186095809061719585176856368695463023250761337074945116285404871384988570317643861415583838198550320249754606278304736464518517792751559151695995239566998505789535146876581634878296039853266573722729848501118452477559939458563204120650937797980032396329478185973127425236096670622383530634429379223919778056579772088583600829941318932751516331432813141399847951855927342439305943729121458226357193307411868887496896328574315554065562834472174386286983820992510594926065581673605088339933198823996175723878987641849977475040895004027150311600983090698696600896438263435341038834332314942163022074663968491307079726582529964844389539710705607481824377237082302386873578670884735320141491382928240017606475420436686403228825330456892380008789232293189653172111009283312873305320512164856844864722311845765068710368584397973852635076373932337927915040942784271469970411320592910321642032474876231601729388452863763537012401084858392126712251930638946734765354235795589404298589446565100947403245697307387489556578876851979769556268070367078146077395403916153507009736282289161048872566678942534902467572810925428969240057809870734830233341823068796521134334583933505305342667801837358821943664361926707299363008568900076424414823246649926302389006934559407726214053153331661236110809510401911824036232192331876536033038796797369063268617777867797317005940577401526447133341464739305911297236587665934040055621864002104700491407725743994656879802797170302405445051260438283729507712901465083037340263828446412807157793469110101327752856517969048287631634807323656198155850459627675778083248559657561313137111493719345760637372203650249146967448492874283291009052913542505427737962002446022189446212796446713861693525930796271994987196708265268947929725510338985490623200023326207827813319711277206299705037994632684043507000999949001853287974808206931869385320530965995797206421614845485531109764392764926268844083792006764253741890645108268836751189915086425326751666583638224885846601081917004020773129946908372337408939745411170497772313675592831056341074854398705123311009539468298709551193528416295472457328069207683017134321132956866640821457615931759960622298726377249540600706849208392539792139065068722720051470184470382913619267787036491461702266162757645679091565341078232444986074517682962897359306483611024684430519280345073586969251132052973078211027217802697275000520153185319713959250234556631152966913287418610311589939404919539140254841809516161378319069435736726628989448681846555117611774886179662029385060518748840931272902797570205239605518883205058505511713504384213677607202586153501375455810909295262732661535401134959209704681268061775395105997467447751834063426693094841002622267732052301796248370010061413544026604283330492234260336189878399557273516377916447286326725676025343796850540882071927453587419427762732145073693247947192179521237698035815568240381467175741094513690254400065740464637475904282076630726800628577099723180500527912856482484461298573767334415984505428458490512266681129794114764787794493158106412332470997460373112717613273341915407439243227078091424125427340770932683802302128415531315491195088787960759948027159087886502655983335137645620389547987073196294612383781508181858781884045716810213592675651262784825570541359138428463800990596562421560724334345420740072929543925511945495327019446282510053191622617689060584646182959668205522559023930593560034238913628143332900139020842869101197388136102326794490109386881501698434474784346688842028363982829693968835030917032491283032863528822366782542756043244863221176893609970734765392516334005183676733895460778143530549064296016642973731924287729334786268473456183799107295161195781328000227866804394308700248149449997700341006745384338888014306955887865842899196515520549764592938303728423746532778075550202386476567266547997466766400380203163342524998987268125998261768493228927538495634569230422983733803431036199044353276536683958538691267804669576797325819172036793882858388241196530470041977849429145670697541559280154705315863212720476415944702405608284052415574472349800447590566113237725751640630580311123135153131485091362522819446165848830714251040287407200373751418614959021348741537638220006505104858647988124576346359462935516002226712171505608393581901480322145480399829795102196508031447652374784797009028670111621841741854027426191970208851171105128496285073947758259590184915324167049444579906656086696845174140941920850452113215332994600470771205621499079725195559245889553635637315363755421575000315876970317234586303452039196714923849056666609556478035575186522880943564776565181355045912610077721503687896632136278319532386589068291144900296270759104405267134082098283989060880737686331082170182553105957908327733779264038809078120016957293226912163978456073448182086198682322116241612249148828927607875966635693667533426780893910467621701550777657326991596772419798620472734217873744282258554700931629915722425939563702175646478902730398588479540128795358437024856421073130707679442844969890948744743114212526124285745642673033501311363393035211240929886466339879247365618740930803218032731766276839797044692219706288876185223000980552584665935404019604124826382530101482777947346917306346822132960876048646902783151105933423474673717898335956277388980713778611231399657393906306388640252608087304773760466248977443539445765332730188997582752778665034434228423234288330419644708327129649977872613970054436897161085812294485269478107547056358571914915751018859438464010486005595581107778999854530339951189424674423859399120377999012888089687522370277885350649859005103667696272501912790500417743266344619236804134264902692587925677554404856478239493529504147037684318840018545651563823741508622185003089468119983326734354498786758672584591399040259170187388187114731055832674039618150800012423917374184349308648668416259016084576880258150902223487177319852606473096574619613976774085237812075260718488033017497994816868764254880448468398078287709453460556133952783559235574146679069808369415842656637991819984021948873026960289935531457245686514898065693794558741645676750595395233041129542143609605939917885039344764900791043940425392516181175088987684743886671408730836949400490661755401390174985219033870977063128897353119583895337472396975336995934417648439578229398596192641778775360506861559018308499326802031532085643384281612630898744810901951490311066781255776680724270710425331028730717059424103539112719805111486531235452682009301627465292056349722435498009704664022746161510315385924164648197749309889453562525852657514477189931252481558777206611464462461023843403926185094058666416214184229650344500526722212941643942995368951410812750335255063404116069223910809232368778410589691512227147974551797893525559523909765603710153488992980282017225673719814322497786761750577373358417998862413935581867148809878948760900812928848184019861221715553892007510481877541238594254815298300383834589230227193762476301009466801408952216423937672668501433074229287962805331617308845079454019624043504751152695686783775385145624673933493106096447976999809478312389410886592145439260530396539084326565848268391965121207811707879343045797459856030208026931738882362670258009139090566198797009639025545369439370334769186857424724716048974931001280572939996028285772624569007632699462246707299924927937747910930393284306464230967317370501995041022143756144825632335423606419812742519647408648254496855203405723128918847978647028960277286322361746875009955280520512731853728511369037711315895504623707858486732510338147990244555099539907137444220663358366086218634080816657626576275028616163410166967627392858077395844614683358834022042928638809610326234887974609171375160673092563289590039636163053177520348516027773867960869509605579291025985895044867839876766504567296248564975658835107326011086544515612665398077488281624313497616410529652497120416919704895711923509554689434921683898496001054268657267106188851299727306723784876788219967018925822693550621829513585984070598801795845766474551434809646694859823002187308287344501997685750326885546586936385868268931910133460444833206415858095163656418836972522564850544083497864176127479716033680745374503165053323646588434175954994614376436297089073539439470621100234338382598494014331379510976156491118227965114261616366274884299637747614761083846045263418543798936754792531475860590583862115738322821199770569205281084198745154396172554944036689382587686702117393258904714715892708602320215310645841782061355831177252958105941611340163506559190454648342560698197277987663091964633645450823180598614771606628946835258256029325786361084352764337388687026585714448751425784055869812274250702722590051427264632596512286415235936217782449482951628488283135355092381392372072870179657466134502720714260318679210581527724314671805174713710083590068055994548974344552937517676550916876888045352581319600065511950737094429330730673714434987207769279499223006302801959496237571408877448996103560024156540300988060751113636133367263534242619580189308918637204558075191569332459555606680649059665017449678009459556913010157298665079436539343023276622790576103363022806624488638638550662271343652633313526520895041301469578516938240795830504298236374106533567563649017596773268804192695185008896600176860331578981216977390751047900090413448558590503777852527070304428859413236054296376499990867750150014701044756220401202806820845352329375441512713390262128391411514194958696174879169494676521738452698532968129446006898391826527521280470292470407493323517430598643095194136098714545774755615679392881997356766558393935537716301989033081528607062777607825154654456196903292342603285031186482905256922211406554551194127001739668924033976885802582599432665770653178203845333693249121005434232602391024042638595666220740575297993946900454095979235832404160701976802008521755943518455632428491090865872045512456809013755347759017899617423650698950116604836134516191917445724429770672918193821539397365539879188039778909812673057402432110486038286131524303079036826200843218961948707852709654361399627895552493940194906577087710559003099109619508357407420422894223559245926730223452544433662890454157853320021053974215223831443879917892986334843738927255959989064133809389953726355420574075589632383302070573035732770351273594703943110537861178700160598573254762550693052550559874717820631704110568788653846691360035915479143442660364262711247911326998469851793223311204274383846974549864834070901751624004602708235041532030304907710512634782847578990744561461912846155813855799998274155458319239741102310245696097262468127385218445690029371062966128492935124364507307571327289108892659841617641049054194266910829185559689399922036601091844014480158325786955267931209455620310386826110295323439712299508929907774893449932472711436260139174433944606460098812386473916264029295842583117458224435592298359576741058956692398098316094064049382872224130281139204966237933531197555478773240743031157679271250740806198353324627903419815511280582576615758576043731653259664065178367528071915971577408515471500039840166736833588938147275488140192415132324408460018917855894417942474090769783882155784824606293621039792533159974884140371527770027137692612065018771408208004082836803505446428434526161610128849166734186641345021716122212958789869761795747141785762627218940045037144792201993952742283763417087069788575596223041801578995793264168714413527479656523023738286128838626687832990134594739330252255434332763424920638976658368287824884676510254242817364096788936262268894389973093905247963007820916273390110208598692706421963202196262486958055868014667711025198933675261874829440794762799793542261507300020319394032661034409276783582856348406184129398659469069076672200231421918924214802107174160916063278771862668736701258799766900240004574744111139230467308887724218876938569527330188304969753895755196238027724474483651706721107458868084763982511686678564026583134347067325659115130809203226930601210200071342523069715260860391451764815930430893663092895465452648564664605054663974597843932704693240856220196165242179691705033694632162132419128323535899760077646065075263753575117204422521111443194923834721779530569435515460317595237961039695035535193973138316569142685640713738149741319604241811871563342508731914975760516298807246521881892318433107041527988482083592618238907614726155758313282318318110853618433914154798380471135076593795628989272257251201058690103408336951228578789917130989888438783521856919941460540454144766128652318855189576342175733006166381605108497988127927586803230890822719647985627489241110533335063643001786578451389325087621754287828054846685230064263082400901067714349089152814738044785134815139866575174285664482824270520096032749915085403586188044760374456166591868491784583679736030813323720622972242640432545937019682976264834835772448955088075377857910456411171798964961050378174631236927930360458869104725414766539418600554304967890495989674187953305602184604716907195222832998152396464687198678280993038936395225625164444460951593882101180835901781009348941357841655700694811962869126403737225473750677854798164336244124757701319222556020040877483798334233869342633183450357781271537858766797683550195886417019610670278332196802482118922342807185977046131139796868858304646338517368035265284476967050157687168982398474943056078994868527663522438111034815696404663956938011493078909497652214805157236574412556291379657046868831368079155302070788063680319270765418900635644545528497523967207107532993522339433707108205820790678882029777150401250025236779526751630084724523518808010377062745238681245346263534339588476278534108273600790158139441956616279255987914235853494881103932945713241532872576491548408466425941511803701220024604795708837336372007421849255494920447459315687259198611941974011511456969107708165555278375366339911381975355661981291112351456526042039067899481697560781851512504411571833786254081293802174953734960019684031400125657178324551949929164549481933627308155579111577869252822384150273848213466941212183721870360797161742809795757184282430536671290096944742060780576059883900808267075303124410153239984764811658779753294188731995019803906349098376253761885693680193880813328068279934731940663716064894706631154444312483461247914731665752159069142305373706729133998158622032519004137499090307797861565983647703171038927582624706610364827749610364465511270766571228565272513044546697160099649802244283774115469778554256243795508822600680548688889518490959806528344987124816602235758009037885837867368777333017104669740194692045357201818230041176253118266104986679953473048705035028224480349603812401389764816513794828114642100207394765863278372058928534445412381826151909761015649650799656590358498984319484579451134503928839481099310949420306703298553683604454034820898970618266459160826989613628443612230244431731747453521074401020782877406697487177734769944047391450491612628973485098750511005098498160340508069499473420015646528155642334958636079213506297762089264714288618639137376619722339181680703149390513649308402470955468460058624543044510144078522239703225605429449451009228054682342661731060014423821437395605896075720064461170965371131840789748453181156010892690660215808152678501542861133882039052826601811435443043752721198247037249378985583707771008074235027599668139380422655860350768197138467122968286483123128819571809634487653216129459938128039118709873781408349457833796944552552767090817471636785701072238841851769320006768508160788123033337899699121866193871625460002737352464175679529157063155198072777703858273822415571871689482407898070488151790677579277388595145043773168293345872752264570341920183473061995940859684542486064915900097019192638965384031755905828819988435613710464156816163980459932080215842721229214902791488619610973184036420268407322233832248990334483140968977910038923316357313973812486921945516700346731375011691489557578715850154681944857783007468018986024769534722876415089247050616106301755785027756877454011437687916597423468805959754261188293121529421187964158158036869549247265016521416661661792060241360953882679201130001369070682868973368956522050605662688320027566179797465488946978310630877513362901380406571081775618348097719792065984474815080371893488159491234872017920914366639056693777508150152948510144091502042179802216305610470715006867249066126633071975336072871880625993452458811448194210556998898046621070312871686503259298916823064104283558726423364527591911755812917548910538979546277734321365207627242654316343882696280687280650553512329380439274774974932114724565018561232201754410200964184067097311850846448255917016675944151265279936666755657062486828719163018857446651020648140572762084319005812878676878620796981744505137871854286897748929174677740396911762186759453820056604460759169206509359901493268237257596651885088255367954040843015736580385170946040578984149854115394146914196343047165644954952444955494914867809591973684420233062806011588791032976574504567200872968564156153994821339850288206954153111828545837536412700763809063057973753565609731955975265934363725605141144898465469331517001481629315919113887546706813203615747922525547170018984479892027663552723410339869785809757387363427858459854629342248351734221061313021829068529156229343736981978252505594209517825539473897675835833225393449746919968916990552280209934074879731737559297231670040539712861798009230589437041779863083363949732720800689704580514302439624043523760168028024216220455337709637343432920022704072750183863853707228449722090938643441713115388548704710944250192896704528138277398576050371929037009157355334961733123833520902957599055651770718141951274410960345517394636782557143127708955171675637513017701931382247748241349089704312155964508278171011656284790106036655202355743934171294907992189119502307317036159565719419447074897552360465467688970018037848762941846544359569035737504864332982563273159632270338736508626289662813318852311624351522435409912852578565126722494515130511136359178199585007465307886904916592849530429111800949721603886537370762499386904214553555591565161384355255664748419627892562685109669494476434704780651594068154355187929665248764655963261049191645852373554299253544613578457585820605648896166613518473231394001874052558488648248331859579244900967100414549634025324891292664907761882254070317237983130955942278755919803469752268825193395525094816388757923599263990446187404218553650113939272743985377190164067295417803405467387687632807418072989096335306448806288668756661928644379958088815835489380124640110007852668324608879289165083308397620596842575483878265473929704593569567736137760081604329247515218488204283611134901433921829974127307711459063070000682021201493073238739093177659813440621091306990913170550072356622617098183505073009364784657801234889130830729625047460087577158380831705122051544877520723603774668281844463846238119344827727029923393837779456872431885689354226886771225909718308498358760808263195308633931071173538800498574788241777218652423365020546520771519116665270610677296322336470879951736874636517024766370960029358621604952347291349092805836322997715283810404126322177548046796219409858799292965287507612562641304489959629399864415030421030123614754635694467471411520846300726269952118856407143317162070406910169947093571142926095454647174335325554662914837293256878336414174328729003692234688157063402152200889248425707841029069807185177244617213066087664950796775933700242372914621629841358979443513037369429306255720274343388568514796811339444078758179222639531664191070162205178983121233692884846737825556722333110317347469818914111398793101596043077246503723795476974494277355410707864281049440227766389074920977351208421531707781683565758140992790348891748352723260240873343623989701962933802473362271242908256079082140816762352796873644922291594219698860057179454247100350421226784689250497778058629975072008804526579907135090332953635195531049083732384744177015319242480055765004772003685262932156647352957653386410446182553065460882099312435964080916562153920330202008802786451155478195804547830829915558460451138463447631604273566703618587019744211013505934636353622979408391344044472134896212086964468217864941428492701047267347837832512855072354839988071129430691378267542666482377842603736990980335096361602035631822920066277719041743813870612518457378068064396622611330818749377632433097895233465404739955717287155359786210879625793030945396685016299009771409474166844410002495232589118834962113936775025941859890787494487835004871652265134045791249908655610256494403005687837732686722274342441457294475070454267907200982087302997664201970084210566006554973001463196812878395820575999036292062381393582575958275239525262195189373981016418267511683330036567050606946842902799882351219347587830949786549622166820770321859134150549737214327112332580215123671376954853530696868871792135302558738613599935225312129705007670043782411395856477056257123683084199979668333242792855628859690363991524910700783204331890397818574970721143677089842095767308025317720511280520879930075014039165081681145000911622833401980022611869042717304041526198791578349061628832710210966357246291424204030104425221884589683925633360605563669513909513879982519338398962777591551898496940677311893486957144267613503379962152862193197422615535227158405647984224441515054214896858495964342099218086120361800724630870237825138377738536461614861989825890385898775219165490031930658886569025321880815418148092682364660683435735423710955874043761220932336543867431646436629475157994538655126841831985635600211177860268903419889283457159563364829728187391610160824219013142415937042975341692087803335859418534727322066270089782394869320042008137569896583359596697584810362095187054361322685382241456164841194376838179242008391307713217032979023391416192922080621927074735311156913887826246684457373701851432335540248670896952321278772260559348250599799379180442706309587377338549540434669777074577076489546521668914460969990654636893668516887240331543122633140905525394246144009034177260737183222862936069262772066545632313811648865113931142188392621225309130881634259844694271041658493187613670756627115541310914142563286697456448316281945637647538070317451880181200429356091683875993916173245086091150368414059576697626560839105720762088372258792248261301400542221467008102283316834543817205905095971183677792441026074795325181380073964520520539018561184872555078517971590625069171587370160372938145207207241882916277232400889957135197145357163431942747388404723282889876181155936131342007743840125458865264147108674477869058827047790291151849075096000538380825005788420801217717905144925061237401706620126249001792202317552863361008083138562436713100728612695660869715566563990840177933174133836891372645801446305173996571058864475971656138814811948852930900699032037666380854825789273462618156792486192125170789700348337696299717433250285909154964675785932787613846834705255481675531393910722799913798619718626355320779319616444199581295127640559791803030542764127529119025459993297233688449019024626296035017610276252671875447433031244340350864451216956741611192207014762146145925763230792635056976954554591352053870476002654210978034985311596210076790302982851692017242335334756306116694361396438873491920028750206106717855562220618542357633138130660747199656040148091837755334297182191804225182769968354880977849523366241575426320640810223928829123708433071428633646680430233790502889442985406719843362689290579532594390718676772262688769035267498486979051820503488221977241611254525202028664084957525317880460984862917975097863380277455748322164907050778504625431424349578439040576167883457975987105999160736004511282625075413331980787790047900683293481716607899113249773994469317076428406872696351431389817232306610251019883564982019160814195740759452712154282625746674792140623089872884523342015499787931073385702119998300957084945526221370147099824539333952081659353619376896906269970751984721455463516621215218746287333735323371797620079543852216116724430732455062515568225758065332728623755530604128791829086640028244441235917704744534219985922370980180705734103525209818589390152631738741205302225111255708486748838901701472750940688564353253841358648392089337824176628049783780362604403699045332682561359838947300823547045505357680992630072658033681133861910983890933840290117463154682658327179552722733403789970731814253399728926751226586094507083276686440837727552250291021269991710446799690136370808686817513037510072656094556108981272190888468309829302233158269650281340517993609594029606636665044848659776478331612181988836775583345978145108249185234261892185454357336554175926177386546028928311265942952472909304344849114652508555005787452278168939563585839164441990798491334694984287544978256686479033147754099323921479924645991479411184890238920400708133005022460038694346221296720316908542033413796498395652531386798564765834650595945766258446722306753470777459291568559959779583828704392241331850635460868846024303963435344491338243365352506845634447223892304902452903684383237066964189248382881636932163466220357452084712460678223453967429903686906663404665789659602982162114475617345686838544208184492004308783118476388543370194354215558291604283238028677547364800877386720241484503206606301494301691710165666295485999655145480704162889930005040725675014784511510521627612734595452875063320959317409607890698040555527491286259213918450775951308579716479585902284810851600401850827667946055972430560884938866238695469555285640410771460484941067702425217474798361315605739761500934768332366448433368321464324203484193691970838887790773303914322776393147131383633337511435224700065086583418213298756820135157216193282020565824484380735717775663977043397521049766216753305013456067300015944943756858541940575811052288613609387088881729330401212348604912928518127675004850010845994878064550037934960215744423808645619385955386728469220190882022722529727514294823640466847971776550296421968559056546791853051271436971063036099940844666554489722221495121259944008744045335380393527674654349119666368846725175223337420463747596749671513851996978718598666632970843139355706486352847486597710437451844033661540573817588640546172801691872514664833464134735780133991252827383277871527886119418522294125591049556808214877305189153037216473419517181618681511935155330902609786577089927311578073964805062550377080035144068523836316467176168055589986169274887224159708823276125976880720548717461264262596527067596319246506623277011027131412034238776828199753662546020409163892949393138266053363664548383368563245036694888917792721130860259493765958334984803184774134220211624955118484889836530518769292927326500990373220594420841567320256286264291955141516076190391162323634362940007711810891705735337684733061492596962603187231978465800780073726324886410935324916426358121787822682321838850951976775430824044858979044072164702786849000197247919195563947442709779739986927184133986746277340278510980418384275059819548019609883274670748502421494162953922227832086527399657403789799182216881241403200764276892087914980632590628142677325417455161753047476541768694232145056938702228104071900213682323726002491980402017050726999667718271189635497401547421126962937536319285900650092659566253178986651922353963878579902144965873093815832428053048517283938410087009919613676451441080743629500137833211198776151166904248928770100105931395223825940253381813938029710590162109838180536038402873731323423642702743988818657454104031189960429128161025628994968505105056417524666726822584744256883320189635254889855334077619470890912174814929104925588761885163747401469714925383945880950494023430402176089987934921586355231285457213251239895694029039447904800128664506912267812891382337410496305758712241891657955489288806567601977762037309444839211952384213062435237053627123974779823156571500360036867333906175695690475430506740680090460568215762698464415479291326862596516010764426716061688800580942947453922872383287791223910947547172000038154809577331302731385959574186624895299831711497454735361911458749843733343881203763393547589223971568382070482028832717948363252870707360974811697098435652308146750704152855315200790872375720774131986564593713749483690404178470977141432615576269122652310054928789607967049558525158707602670236294559331099778825465626186770223317146800404878617367161830774530924317218535328141776101222948845316228679730040376572869576171140581431890512677730446663694675072505873880319361545981207216107832458533581678176883694048299712942456779826959295399831052518467690443275025255252227682357135684132277326598271834464724244205679125269261320713129749773301572462109845163069683423799877354662460983931678862646396060420008746157675002362470919595207283773459965585168230571373301029571658744861996983150422540991202353010091366680734889161153248129563539394215509721217119446579797480021401969505942027049703392209935864024222265254019972308314742106950111416312961112851966775958532589406702720280968837332803352373855523688507127239018418856994497983632523304123480894654691681709503226781755954697523475460565870204296578411997251055694286399492242904013431843736388690605347459565603626001092012774168001960502074356271414490949303614092926444916431029023736154716235690527044300172894177915661151431223581819634466740585455177846613114081604121972217584302142350179612442174311036479852490602677720158271188232767046678357138728800835041895323269318297108392153178564733699553557417441848789176263658200642971221213997210076103123774016462202030619692962231372315857996151724119173602482444635028342904980677127566061793683430187627091750191206890791525597483550756235103264375609221274540445765794920325802957526811514973200860334987175638860693094272484104258323963848123186210098264371967390942753830106478200918848453999592505666184371274344831700494162271868302711912672232126633102424908585527627674416366818719449307996072618564267399652423083794718717258878472902999474530112924078245701214742769087662209972432428646417613051555090882945660674276364700094641731866636396392022613625263295890647001887236197320426301498903090267810831840430335068672845291537550598599658152309200222931969928757369858174794801987395600001616443986918482482687928751060891557274402350804062571721678238762216105154881274021220127967274003095376265093047292274768223117256172473273655757460788147885225203829645324929899264437984286761842093872914552345273243037250803077470423145978963637894987050499798562605692964810588817156190779641042065955542120202656728445510564935146522838398898788110373907581995512335858847881521101168020546927431513765349791945757182515665146048471933362600106848058552196466415089075138708848875616915191312928459558104247184352917428641909248113918321192860355431066972155648668803036234646732034364447899063820008062252694029523805940923377568346087681803114356172506034062477051772933366755073660374877523289163785332910690005080591407710567704054620044833976863416679166094935087998099319562512287312882396462188852505313030622957457681290902797168419428781142444597723311400010470202196171017181613094952147931458730823884261796799123292180334986778171543727521246547640472509344323386194878669282944539100849135991332235982143148339039466518975975918726532098914009887045842419543220905039108388388198224557428444806655159802050896214231674867669113555115406414727781739403420137169851510645791449502370454782038769528005417558885047782581642058491478432525098003774346025436452148177859027740584449550063701390446786201645429401911544829393086883194135068453623368507955950209440074967063983045194043574066991966889255310026814851661332005287913284023821468772291015687727318532277992423207495821878606591238829322679755829440896180027797476006867489642241109663589550554847543362451853788358497626438262157796888976066593499554270271324968780224811318813720554343212452089384386263957135767486994680164841520758714935437853554753644751351143421517514572548375944452837562385995252386487962582465354331135363115039945071058737381500524710074775049733252328262680446957455560849941905837867288842727294922241703466498287435321311242142378212674503731190959110337870484883304025777340739826980489353823890906715252268149799215764569869016301973382613698086428051045750322792399213972427261530577625229927784622502102299719146804689326857034434315378965476078771263651767164353537304889612363169196051349574154052465649011686492212781641570681582075640603472275748751315475106791412560461325045600631373054669404422565083510004142683084155070062659345933149679449965557112551992732203807101333197424249905590553776743866224979756004359389764544535435375925894461069906308768229594854201848128581565688779397772912747399641427628262247225942540650306935137714244080058295991852207917650098453242252143129951896057411781042348034453323159220265592388789837914488569173881729732684111661020164292697839023908153862385528921089936376098385220321182816518269409193163604278541555309547729204520076369930931106984194420281828585901634569521793828132045095763714355925257090935082200972698109299369430398636973575476658383803373947093677258070377975847347588150058108831640398584498708933228822050055387204422026746138046657381923407030090784091078447135613439757953702896370997655774788585434646575010918355931073747023014054841318682146313678361398604755060118150985094302106227302146122748620279181275139969699897018190910186695821753733514978786959511714737279400785186940325096637677918306690926063844581426426278196432391626903080920701311072202149114660007241053854686159900305077173323199393722681265438241897427458544223394633861370396407116891390455946023626203130265523118509312361265488976537127469359133392622645422762956372580897225995108602113710868224479469692217978078095711923264584610872153191209617610199488632609129077017941886790294875085016546004854729039135823991795864882547597372765889579489262943832396678223592809374628535875081681707656548301700377277087515366103924726230220704208999146714671281840777283644463254250870738944415874420461642041923739561871672756026402364613281297448113563874121632230069255802396474568128695324025779253471186650591121457176541717970914003817800144876575838926253778227450011488332936384168043733604577071181280461891663466452590881768395038817669256483730207299018518589755315466213070814826853566472514144890937331233487902892583210857167252475828842350130294888958930299850962328359791839644020692282677014300569540962376354266865296976829414095861166798881537690376793251312423017708606927684023535314821954269043126054927888226479966504170945776910794867262710136037615446035815975123147523082431449655095413493571845290838696535885654388315144169611953979513969099083242323624467302254525629567219024049409284971019772278937569616443328768767567489558058081131145204837960602045495222884840264597600418201511205562084784097222859400400819371133177625433140868677485926957929386296731636575292728648808849824461080805036670852337161973879351137090814139871524161228262547205654811045210116886241216314342418712338322402031460613068921191116224241465874055589803091703203612748573804051219074749365685854015746541707606928982359364591486837535663724792024766298359442766649975314647879271413732185112746487488074862162307811038375488794675670919492180784851932762396499648945888392117652308036070441599568685578154453551555654076912911269143109276931874854928583923985922204556557457892387435879326784328573099870390836357028274206876769759312516267422303674655886490918847890130106058630114269350808873068056333116902004531407142676001576853299893030761162826879338032918706169287269060207285169937321354512315534141298043852684747311429975739941757167355867754236821471222698380143128725792137047558063292579521646087770425874808933869064000727105525403126219898906581515738193215742122684266816461146484519749760889644456726287429926077221289062192090813220962711873929705432434390579809796328310337641637462204953302808584662082755208156957944502265958348008353187388800350231411739582365335570646476880974902932988636516509302339462231293717251867135132121637293616191580526107349505116926993213259453909441666326013405116604271072795462606893880861854559278330686537688731651130371147977404594346308753982643154488393811701764488905591881913813492854790789699600701954873388269855351792792782621724898480568980230167546494883636863492413802218723370314795120533311385938644362981290590963918301422061774064169412601303934823972774861865749846456993645182392885986550339388217430590781085863598829168313131123618110502181853272946705432174160921933452073361985429300334040383918324195495231600106677011149330856546911504417917306602115249150305434625810791528526130899973305761486147526811587792655264063792081729123292629992840845245930571104585153668904745694622753345342676944929865372792803105937509825185080649722270136952507704920035577636972082959725517929550992671615391848679988601899319290253451654549432519670602896251441905286133204942902259405115639947426816068470690584748435452654666022599426841774045823891726640865817231194745869515112492982135416810069538092615192738571847696791717000151309528174547397024919987115300862245649677768383988360788627636536087587636859399384263181641262245364084441110337256046693047194119357288096161734176577649276884391357709633022219301215585120362041754998139172098975440486718443115725823600433819875291830282949470202448103045385986202943798594318792727221738314946536457556345956386184077121577061346905561906553278166211740235790100731675994656616033251178834121418262861683031010236034897833070550917503222747123623820773404804108436352697105049011926317991607124529182180768189054068071999672893159737124386323175495450027927853056249485441215875315694842109359026958052795516141105091020492425150494729870499039056317796771202876265063057602925696366672681822446528364018229619616786074721143217308585840636197350621613159283665272851148045824490578534699976599202738128276770333644697446408889304097427958013829018054159065825265736577078580562507839362576232675514857816866303411982555530720424147411750584916259708480329294000784621499004170496509581366205002906001100987587901932753603677634114533295779506831392710833910230637058532206938375364928732861713380562371741670207108758616338604503429072013488304948540350056388949121559635081029225525488887874479873652124330511598280486379773420466748997528589047269196910444337783877984202405798889182670004355294852320538177453778583500428739779539521421333555468082209956613077527327969583641936167222675994846344958467877828032263180826702231875751248335277250488551883156604506186748486535950978310840775322294205151610973364451441763644569242198101330008765525856553638565096773227450751576700932745550953148923621994979029362004038378117326219128070365649102925843360926113107204384133049486092146412633525926514932589079329712708743185490748373237664031621427140731639819239620863442650380488187973021415177385803514145869154019040353033030360057502479943598434197638151347178511925790568761077251302751052202380182886716339260808673346188207809411728626558354493656078006754277384421932104934102457125637219137952410456590779824079084275178057456577832742839784202833784329730342936139310859358533942713738233047882861602707005671706343243424007983878273170890782267846009075531183771719661729642366712646811295659726421039257172047888436993850746406814024415278037581506230636304424004982489364804127546220270098972551550997700546806315591909930376082431542305677184633928533393588524405746988925996901291653098179331468872569030207959877524261811593562725273161554124436383400508028819221114156906258557118008530234220413505437323227955411812793312342484610592499349626625184155684012844928964236499867761633529382827786073527939941300359652815352069232149575863156235383897576571932405364133034265373996227265960589381723189066495352500450794693247763161957537758373431502053441214340618253609260522023231754339703548968153017169718309226091743114647531756651292597242469158849636500429739463256653225488010181874824191468786139676252686699779050670756346805864125532531283104511668617641174971835481765207437860767267607677268516650693809315822907232803041511164269569686504463093247783564178875436155987497084035160981731241414256597372989993360280401280039404547481636028644405567925659690110047157542372258334970883438629457874346032169691505850651618674286362031243624446951334634440695832088570977703668857005653776662814906517346861989479557805304858079020166629190900158489688261097986408599472679981622171425524541160339762625289390238015248884354610510258153343523453947573660369762756813167358144318580034746353664840118897944954031174895164942099453725200165602067465987415785590712261615148640152591207890369501207306863487863210999939556800211690952028297003661694478900932416432874458730303933477442371302537765850422358394636355556720993312642873644613835745221862176722281878633939723895058514528459407980514587250021554921382132668306685029877702067273344873025431703396756008641629376673770922453351352695401412621503729695449810630013044634738020981371118303906956959055350030786036930365524102832566565616853162757663248010212226865237273623605265126423948263863332638048187618065472893577572477490573853134143782619308730402741753792459302950102084374031663536744922550598521018303196948759436255935328431489573768402621829666511937661443137356605409451864356574233196817849045794724286346267217587825831102321299873613528163525570421940466864223404869499380204224672686247982792553599713721047059877907234073728401387819314305896810564631476762519149272322753938787323678684099924532279179534188272549503439026046024450537088291952087511141705548434808829259652946837566751286571880132304130941332908243995126929036525366904165405672130232771920357367428092778179211686636860191810412721779241322792067273818128870621867403235704686992067007842036595610754569480099285641284705806075242317401209638388786915330092134437264105384327215491732956501580611943232465351775909742349893816521105255209974771646218649948858512262126932528577465037508650343411309907681463056723702671485276467659529857996947265348974170329527330413857560168361627375559288518440747517011955927776059633070100648527863418624654836407286019639555489979770493065569035238768967884858337906014828944672977626093481826162884945915235579033381506497613016606942283983592834790210538469007544002260659398418706560233950666456253965163192160366359363052694857114550075262049191540670844133872906522034090543897329412610108427990890127264648289763255004139678793036503514511179349645857675601209295094276262446486908721690631349044074005131321375382940466008534858687717385833398172375186641985923036063245464139076315842924635945764079730330002856740578038704637451432752201911170993114831586823023266186080769315525328514122295524345512733990348337181368227267532733031601202096008517435783351887329443944808977828526155116915945547640899131104913222639642237477404359660644977496634457781036645027325159928450579395691495468795289120128156689030872299768507904473263572856286181492588219850789595617013838285986986235450838802752165364339072606374049077343383388855715836135353172201946097367102508615520878943934398324864732605456827408819347093658884419307200048890034184496434808653456685044731255295461768053462418530482485003852549176996257824734339739082288344666319793675475285321385875033541259078803146113043424539536654113911615011994139672603102878754637488181970239935346242688629729102296781457013668897421528403513804670164771735262497274138892700470326154759329044163547609253775646122452178342341015002881699155203848029319044029506973496204082498694744754790284295850252298255621798911256307057132479819390520363633557748411727075739378342256590697933234392895178875450996053427235639881187691385334068604522245633099624990386625710635748904888315545884076516906169612330345891083759587007032422802737872532966011948411726654292447946746035713416500535330298371723777933509758322754018882653065886705950168699065743199672549474753946513421749122220849560098786890081786356253883950214472781662783641842884768447564226937692186023869196884213753576928627486748716595088571848844132426262894959991547588802159854978133746969389183678460781703936710695747728280715579677718988108497965668462283989172719815209188390322275662963636150667425029651498357195772757235922829913840880817320081054332484430828570670544206388633575946349523366195042965203051545829425042346446795679985295270887631544773591428032404792567021963278690115435478032905756247390018810119883934312860656187414949171898443631266177252906890312790732677875219018225336762173674137272430119705600517842913214875213803224833559683001265214818884919314201133153344561384390083233407053949915990135377056214519401036223621014842718130571842413792710925235404758436921333305166402238940799133143761453632000353778604595964000721316195970687126491973742959142874534302926029214713512558055693136495851884257587033276227181203468897691535163796220470445883886980956870505151452503911169410891475736428060397807501830536762163817273070716877620662878204495894541370239372202375810164528325720294141716419123699656351428916566197251045383864579091532071072410930386826793343413183457103097799890297460479795400589409139987914863150532786900805131205276327592462298839002642743777567333585777457469674289601383632796985530790714907742413264729383857111065479621177739010970368818957943222406263528173621329762474617000137923113359064401230876445050161657498570502191102748477150603642021522359674714003856909316812107493048040123089319394304249694612761486268348005800575278253720070459597507515801127529940682459507790241463574876580664283643834075821815970175930724854661199235938397968555512955530333260294728348382773459178028995922895913621123913602793153274916850378973672827911119584730887494686717481667216324395069734170044217511670618486720234875644252166026974012459727586757569936073413345301368435757068792290186972703839105867143349401480791602430712495382133707815393033714118222492919276166941225349397291417091293043178723587359656530801636458471842163822180451422445060243523880285375052961164167601965595548074515195141287840724188696605552859314401562787498826737210134321847387973982245589831283798027609341620293466148560579297216949458023970656114724787047276506755589767141380897639259558395501238142764450758071790477047515139005621408671327934199525247971416506759372087556004509436312825912406772113011052194299122120860339368200582880133214027461088468942262354257335693240046535585222488624623148130256707710499116870657128742473458999342623400003613655082128230559697484369425777925802920673921374070434370170938142838243395034684648528399176489536776090385472089268189942316776812361469927823874608718204453821972274995814203538263347057655239963676037373464395539832794208674623608909087311400839314105244327128719745568252777350769165059930267079604487266802549277981801150103794429448085994251569342469192052910390424120583568666050026482869034830305399423253712870107360355607346185357639959436720655469962838067608938041731677970478016363232722410256169319194448111704745217445474817521712277238305436361179111340762760427859192219367307259550385362005497826050151858107008053836703225397603826962921084225337812323303221921016412064134501419733826413485265184086915601756843913526526905180053597848837872369947033212387502960398755628896385242843521962340104204877895712493186989654326801688211586518129461285441761590188381465615037246565891325939705704963351118649479527120053383248232420909813602806321932269337448936967355301889242312086544323495930297736514807141624091642170679584131742817560944730449589720357985137777318417680230254340710079156307851978232347439329693512412802163491225461230769921031093500900747464553050990523979873636237205821247011696162162133328282418729380096854843124944068026068270259355241670379370118984137320723096146541817018831943430565324781308904975089499447357125260241651752107571728270167520482585444096096723682337185187182666871896771112561636380859492012163884138287582867982025682260262461407217102244436636412105420085182161319813956109545267917333413008718790646661666506311405791119233128213322551604447789347901605909869674926310555137441953493866240636835437415776902886477931390793977718005672843567183136681418458212744947835684880476039704333908041307291576084663446241369937771330279024748969033962741321079343415619287343049492523324680944964829387180335195988600462431488801706813034753092346676216485592365842668723845798024680040458935798287679108067414872563412698583317570777083350160577176868224078477745347855411699579187344871959297245331419616700103369086155044019563155864006794998008574731330928872567764023748328783116516727613300505543106412504765304660283485637129431977243976792140730518101907493864828214319405080156584887660677310767580658368472271915044688043643906407760015356387525400915740775466035501121027124956262629932284464179874141174226924189992953161425795666595527215018983006932898877268563735547997682447001557678403071812320669574704817863585465973125660217601007875596696617189227735867322243643665693343294825630831579602674463107150774200620417107010705976657306458571155239453977755712115124375043387004760345016497278075396163434722871339904619986550885018987823955735161108780300282967047748458296475745707557599970471273559382608253760869038881667111256764013138148939683544567332405620808258867770973211179777215754442066461736591521072657505709217093847043184710517338655776971828256595377664414773588454159486495472612054615681532592200063396899285453353333185262663676743134110786127654169184075514237428565782303743075225418942985986431778980755811240590712256887639189372297435348190499074142973555586286996150441762589824895402991988810387810861619869527035987145946248982521545559803056897857783635378705781320465687497279415142269905400504415776399656035787707429081384633370782726362061178730046860561361131389542964361829515779080567585276136057424995140567962781498902571966144223072835930090069240416514019338805849470958920410923765291412954005608304861344952215655193317945210833468058985844968000564837533772210237721669719292894186845418856155664116383233262443273871298011515701480181000868523438275754955044717212472403130057834913125939795147009229919857958786373879692890011730153994784031379934769307229284714127573261217039070976802627890751132937522024497279789543862962698980639334976656571361520222268014269627199537023767518046966399006280654499999893215557159886018469519047022227142770715540983215929855028090279260872662215593139673620570510017196511762464906141277259353619598966447514234480826744436758946706621169692284648096890590973988672866289167542260259433179473793613666467557429117269625398943086941156091110236654552584323730549540882835949846961855673389914127630896265397267283288264190330845325810485571171272717852387676054651665229356449358979640159230226723887361625844461910796838496368888146376517435732825468298775820962141850865437508217498500882138751622927015418013452466332036003116685439448049665709832619489980912479408531141719963422629557893044437670822544736286952384664036851047550412022234442734309304931876737220575287801383458373063002884481046069848790876984143658108906252376835865683845412127397879561198830528065585053116095547472437364519260539484040491489439668382269785022453799223802668966028789274853419055210860520443984275088526762457951547181610032762892338740002139292151062525023627744430709434361183385594832433970399552518316146549368996855497943750731056001397360676493819582881477736961974909986235904869960408425338988703305874102428471884994118638685012114263451999988095218804498754155879297791496003815281076989914809822243940666991102954830766496395518720272838473697759208959314593595908380721784557826137357274158517941148699218310932242545768273498947487031858596072491352758361896666012004393603281949377819075416652174106551796376540482579588451486305632984476077162593628807805640567178574914805731639540891814612775742249842632508578253764434742709223530677544820193211630655339380653095780001656531924676005110780663117545974325767905355264643928317478165200433648372322174207313723180401454654761354848966212727369433891284539824321969317128389033980245969080314152491156295345826809999523970913730533896915034908104931355218841958705378236446363420699512874118028820814790605015893070383692863929056858465552896092267656112172124987070644547666383615870752733187267682388207436883755207707856561437354995948045835101379087719457288344307306386787877949737165174409174771253142700147435480984195397625461117035505721465980042017637847962500843181430266913006930708345019595112292104800333874918679267178252892400022547519848164340105734213944968306533057769758374418146162884487638138238346010454474794156112022492132642175829522125769537514767011275200050358331701463852235949300085150229140163094031255187652594683637016758969063320523495371005248474972076987640791379057920908680804604605018822685811058932137132801119116304895986416492557993999572128470773148947453387260299486642570070937874188930564170342281592241061075617577405814610728181221282909168978444146264234992127465361589610183411195633812889949437555604640878381029951146462049364710183733016550362800099801249239065662289237551117371013153800737297933030636362743422816007792392978848642155219214997807993764995144449403279154949216564413924296167781611141264518277011435346836796060665162582616421573541736954952584248255237716538028956163316545737130458710785613358961573811287630507367688382914433598336416965156666973417565102481310794931901487724254236856697305322967613488853922118147256169595207253532280805424134481498124780724754991169675346451737022055004998676294397219462112772371126593430982555802474689616295336804747767283529804619136619089917087849693150811061782606614381573103829588411889128352975401157781642365905293533220143467227999689893361019011670812367829267153540459831057445940771906514841884838646296631952310494226454848554626074814687986564446503732087900023984687447093681104776667421091593761592225869223133342013528553007001678462967760868438471310939715942679200314171555942308988328931809283855485791825321237643464915159636859720573175809319832424109852644033630555335255796398873146832659003190382509630841665906059094557978935969273584444210619011441792937018950312633353435221969762013447169570120607510820151047325734483961882629849141450814163261747385796058534119944127908179299935340964457135227571812021919355190222209903982288119666838635544256666019699798088995819907344536903998833389207892179308183552425549318380246104220449801172517109294400619262535442452627413351506677132593916774043158289198472129579157099378451817030412793192596456136218910642751464911022900821014458128927787826225842476772685389880468487863693907268724831680751674303121562722331836627014004087289035410979793118583164120018173575535464335791143077663847951895794392219930635384742083311571717113030036765003497019662124070851613536826082041377315104420853684183806196114152198122203794302228189964743927486363083529297101112271548230398159030700529395647605943020599790889152452183599814120261791884906167043464854481108405075632254704633974687225919049663369602484109264207519987643149362068681486871851760460130144093406505896409614437441352772118899550887129374902045667890982201983300925704844706510665171273256939476925834222788301212202977145092306878753723868700263323871949964833795918301496838138235104085254781453475820480409703819300823447435847624148507643863343761499352254875081830017838970601469149423797679335057352932064906870195908749383188333135502301294338701643870335625988081382761291812537307561023719099632137632536759429036477088420321010661600419742276339055170285374229420167164564223019313835734715736267305064475261918317779909526070810961916802095664862741336880639228470339270894015866321211338341089533717795811539082902050892075674442436270469741477841680623779398663658476202055353401177716328939119002672680991293848196813711299176463043678400027547236596915529213237984471646326984603767877904583881155143909825365869799863060286324483995437336924149409197772346409762857744962719404737270494563872924198766623916667940198929062555993089911703887750862242923884521035947971233507900452397460291073265798191470169361275021786801099025617820231826420720675784540949626246749394173972547305682898849996022426862042173952864767110935390133646077749564615289044413595743061740549646995040294033435684541173627274076927104142696118299048309664909505781769029555801253516689717424820115423585658847632984456725163281306203646009360689529342938585411020540862970406488100061262420727431735040343525620202966219210293542394304340555675379111004508645484282825336474549289056976398828194046151820060601014966298022251658069303341688626840817288625820004958888717466125151786279094718468759863328317018234049595539899119909902522998814118783156588026444064729182825542363594038531240508091673187483946964813185681926093306324173199248309742565412467601670191587029312311701558343986493462189004775488833102358752427634631632318233965105880303682361644970251671884668616827066650884779955159962229060117448698177876729405884691023610163504553642070602388842067486691673377076679151005687051052182037696412940436302574045946231693497036190705573105368132173562590597962805103263899995800794679682670026345978609143419615794740506763374123336827250115215687822646963569555058014697082905136584362776955210583943826673704553385786173134703196472535349090046091675462642316162349626865854827806969997530787307066102023896428407071356943284387953004425144737217874655291092423046771320733461588927562314180217694958493135673947587436075556960111806852984743328695938585607726958522221361401462875898646030644006715172695108846849708703311875105537094205123338862146375321528958267567665246535580622235724795467140373076251942881371626747478569146244066737329690040274799025451657983059047976906521296761919770046870450694071695152671786734119228979750188368008977284492518159368099475566890748215403987037491125917394755752267342105360782924778347932093418228143388730616866635674475127243543856332348671056252123740576771417362286080582966516713476018329394893311799707036501166909147645390055365288247243269064421319804325515960343043852014145784499751597748358277740525320974237755447446542118350462291329514909175608666976548646332424734927163280057046294455180760550427964889062589120431929860006404873934838322801491141144231209668294952359834063419009621398981287813326251919981883857163310763361288742170232829633943534928478474203922804435625795818951553243838477545452605546460259505819456998485880866034960147053101542364110788867478898790663919890982794828385371280224899954952321140856129834880960019317600970968960884802919090857892135477534350257095242940411528134969851102614692084146881600979258018472629165498797347610632723243385834300862595698488915957108820596827985430017287645691471284016899192880916726233028292891009037796212553798230310471659764622109463936399742507391931445162998980893719626535624133612962647263142897567355525434243052049388227607337121390100767311320988283703609530457844397277803456881305265125567601922745000009486673223065541325797528891827612046313497636944623564689851556750503518204226580250484642917946276779380877075179858973252421080331717429132387477992941400572875463007344950938409405147060097882216884716143690202582427863675962393581815195842431253742991605952521035691842909725495651530943204420970496013094513949951719827226381233346249072495034224948510111241248926326174994764375086530223232159998538900013378934372491111754412826008642936234999030821637470744980607208329212098563109736330278905700311483692499178033154040677758198688892043375213562198240751318124633191498279887243904855919092295407903433661855718787183308859456159668670546505394723492793015888742853123701334412422830746928722740418619788119976975553625498416302851611645622648892751864989532303370765558822930522077730192423042336445504341305870288088964673354085363549707821392810942282989075323016334709854581277885289330562189817120018179334447803163074418962922840959497268377339763017188992415442460211569507379999739803424246017341869388733178903108175754079983519946018957661482031696641523702039224542007912403949261900544092170569038600793905046457560681536481384373720372460242816170417763146290107192532296792801271866047005263033124081749499797140724402939388867259814967721969833465904910971435816591890899769449525167133628409616088707543295054735776716418174654069871047220521571915825904413846794167136645421827971942719059961316949882059948116514031891337093143512661782506896398251324954281682058969385864180662448191325008147558886519828362167432463757655806380769833553400849975824568293021658876645220150284059429782971841768999235925688115719422433008897388425116823529855103264307361746271108305320818971168925866058858693999803576514562130153564880140634679213528496636760310644968826554348644106028616198107454820844998132874820360075558955220183581951230358249899849572411175047943404538121872993322801648045398187500185905146735321857249046730678251129063449762843772949929318130758930690312732609300150476126118577588810681737542869588408869618216807156200508923903482000124118459856948400963117264551370386912629946386373602141880117990384229473969912190859623943537576243313794401383359175897575779182276571805243891596852373340692253157133852987652316572261890034349072723502622771195509021484598143592878780515700783279674132548795374031855628159197071274631754345004108126118244890572997665116726979481427549213552869675089903559473166354528759952393794655504189964472468159685194695832757650181426699710415057159544456715686726286722449464206062858435554239112360774532735343618350155714640697794322556722713788916411966615492829792461583863259285781000055988924054427681215289176111471854465475666813249403919076636062689832794965185085259091463021941195829661808217769842209186323325200575924008248872375341906811315917659153172204399339801299275421442601368614254748338104213704963323009961444157319951164879128592663643742210507109627477306160964770172103345504552187332371224093480540627768359426079350043950511668698976478385998918747269283155871199131296001584215618863294563231708803724120626879633732073166729203807979054297666192259531847647219789454211299647001268812292921063270643692361231554343873458506070302945103750586798551201974917677461712664840876097036166989180592257781949437681782618770519029479814927179670968667619122520612914961164701445255667044645159944835386440252359624872356429493207738023047170500267628238821993652782305330826634105910579139302768657191287152281267168655256840067201069431738270592910231945877703490368091953767416177399546136342428625597337357815533677709906950639313743849883451824211335682194734414681403392331890602505521975522894103078969685416098750388047396721375775717588402221000632360149781535433417338052593965418478244691455690056716577836612438659133765744958587606171780977506672733415278660534292674071078410573338255106387941877335938301894514838281686289263845073255809370586748590138959047674002596293582069632168876755920145955259965396041482898608393663233147587330690957454642078036330534559246730462443927515639763290359910488811697921746708339792555625767509723292900112298620757953000148868527901405342585331826933339152100017156732220331434210053301569218923567449867705314734588316927491795146906560550881167187543276649192258665699453883182850625031504421847669748553925285737932768771472373957210714150768729196440269537412267232562107727774227976838974438721900075457012119970725652612960473611089639603046540396330417389922061521770285133166602204813592545299417803004042362900033309752197682320060757462114402614618855159670764755022712426563433218090494403477779995580806721219019250521275209869012244982980176227801282383689014728151695981450963475987684229992034479611675663472368779348013784965586465898546112668454822022657375098730600287252760109885174514241503398431415858852719709628619170560660661103442816013427306797126509122323122329204203983039498034405966925629931239158338626720513236810191255088209005723556111938530870380266384886425593430715246579427631490397026054323954159298950162848033289971096124453661454830513826329805200303241875841028929519230192532264604036496134398424251749375652430482933867596122358926410891174118381336760123749950313769115269723881715196788770414717158770507534838386999865500222151763530467991863407884032197875205578538531390287530361819732943931997424734989623344721973756228308431900223377507648389645125582174704270011813084500309354332854572744082252619460558018574408501170051735992280000570016798208632258980392045540664038031820051513571168819299546764033363692924281580504258126945155753348889597619505551502537780464305023709264688923029912956009303620484014675694230261612277889341135406215260820477122958445724004985843740048694815690016933889645587280840933450967009151406214009766318751023407663945292104374577168053237197001130254761775043620164565846331457486282889530572441041607520696167836343264876738013008119615978067598981495069908491216307249913684477760144968130834605969791178152800752242230438317801144990637128128683537686980525856832168122867189438764825343983209249932576780420000704988952266554137497162169957667267235729440784693135528702395313960113495886508998279851557253135908298728218175584591551732613110172922050577948281498812542282970388397473873629780429975979947078333917673249488443651305150120782952726002264816303799185650597192644823048935810458063639470857883926097508698797450159252194409005616545019882850271609244748084130567443713714385153249984895426528672112351436865287765809485035802238298598069116310709411940980550271649712172320371354310740542327875289897394251251725954168411381471934673508742609947708492189028520703836101433987512117251015945636624132074136273581033657450223904551815596855498169388979182203453478458288902536919253223677494092065167803290215988244416569775288943925065992944323900934352936070123799939551324170165753418004173279961550756815738266099231059639172604503159574613125360572110306288090194773241209800082193624805831263711945061857688147995475338304541028955728225564904583951930233942337313789680547165323929205248019181083704534108846215222954549797453515447749890802123019599828587415577253161620678092405653697559450659197199918502928462196283514182283161493674108396172269884244239113161066216726141979365700650032584972379956389536481653144562088545777012205665471147748129764916034500262733588446711462680048337729546166332192460489084178944608209269120519414546994641458973949432588334418867576757441090419996588683863184606427472337173203420929210210515854182352148612004188177986561069805573197230796132637205919029264121124651020191389429299613406859945469778232509546658782365809489074123281977001223295044962188746482730988391230984424472976356936540461032953095086624281457311209880972717677746854145564421632819723444243170980000616576604775603822618763873594681912287676378682013153630057182015204977199123933678099977230989752645333335833793243791553515836014891099386657923024901761847720529560328972188030975368750835197630914372448344551410566991084748384674460857490063621832462131336333571674752244355318416746735738908397503033681071963807633069064629480099678618436246260870363240218974471235667780585553531142225420823049791478323945587756417782111383287106219591918773428893540448187955889000623205386735659542639814404547099720270300780258139355742775386144164516426804840985759448532166121283889439592154034512871827640852911310999517703977839380455230756930332098972859444886095785801587798634730222745674264170833358117021606577344469034052047168700034854064621423286637620838456011304955106561777460245953090120422611716113597590650775388682277001568597186108152887559994284093616430105678260615419899761869040374928036979034908885071211719107214259290661340336713117327215815136082260514969593050065461780236584032735912536268988023699587170490471762051755309678775723299691004027520818372277863152953183070409558895446012059972814512106249226976750193245545544721406019581505478155096461709419210911438781234948520752382531565869424343649325667105756000418072353637530967254877500240693826795523414527199004072182956571286664026229026889790462847492357233425621921148401744395395992090109809571515322986274885440489315050525966242311106586351013851456882378600982420395806678791763934652857538624775794667619429629035156015251778498860025280119076455606796774025455141082489084498617178216128210669673284355321568612277696862268665086064332288282501029815857060215260865286243467343656635425717478767911246390965298787931145958313831647366635896909028208948558235179614705683705691335226754575802100295308446126413065859813577677450656421181221662289547231742222796791074989245388555120050612472652439974486957538123209943846790602823177214256491677162529977807711868032050884937978935515129166852737508813724669159130007530256625410607526344141648958233426454150323057237973821303463174050865207978078899337974024523168347905881781176284408341960573106092008771487311508073893208987021386834339051687836618539901521589820795048857300635034751493103612267013611873712266599087328462133980177662634853232630766134049063254980257982645843820160758269724577765669462332289480589189228855421737270637157206594097194225026514173348003532520561812253462771272942975238546359174676468269797609040730191361598177245037345722428993106267537177721768039050917363290297728110744272618174759479179156058291430707754708286799894648607075142870216314249538106094850543456061697187372146341386533247641489158917974067884446545926382255491505023708016909490070983989236336924640053039706468233514005278327365424955251461839146940386324397335610534316052942463314283096656103746153410872418893917829055172923402400208039083546390020944779165818558461387123306662930793837355046786966189551887375807198395655334566062573228230416677457800715533090879546497090560583883038029884686585573942028627735963765134969727358631897176649165888273968135457599837401912136893640528819181415447504472829428571174273762525236153352878222384492020079136139175552360941705335994096853699959041308391153440824677480690761067772675636263376211017368737073537784388493108154003797528201687587645604350670412954119707382570263202950859096533843224487224877332007474704551850062772464961935087169928977394468031548556056842540408118756892808128269425500425895806172818966041805418694982376050149353418473524061972948416570155367893829029721058594378623238945119015345404686484352011656369889230332520393930886397786476390121659592699782922066531863737352157521189482752336631338008392359318649335852020936416806682284940198837545622666621258367879372255113832579991175622693015997093539182651333891747452719487037304915783313309090957298915203228519543654309275195000897530353630873771853278577039163616986105514405746210557528096690379098577870481891177506727011530222468909857388376198349670178631633552426277857281986775657125551808833551429871147951078061230915523908431809629022101413157491099623539393527760674369880532083293329484709402967387663490826216087307479768806442146357592964265805839328771173079822835845516210379478094003214268253972525365942238431111431901884222201209582228446224213691497667063396665400605489388753075843778168079762674995249382831595405828982014614772402923999675441782516990226037289328396497266299495031734202260738608841162347685060575623627760825016660916390393521038246392716890974826136640102884005834316600485945830186498156623246746100921399351742897626190077174835046096430992420842165790609099090576891664701590308948868874319491745045269923854509057654018935200129444397986220588977959965088394810964655054631057204783311300957029041382404827082398746208091916322835274601922318573965278148129395535976743905392672162571431883905772348859963204565485303146064353220433705337331570797865732803520675629688943020743900034610258204384923829454864287078737251429225925284889157959758984185952810167900214248629107653789566456491461298404897936338522944845775426437196181413058297122904709206976761506865457698395509105271858212745837434365901719039080960012109999721072910593260920991328585233679941872539670328732960564956442131171662918253228309829557528278432088251637623367966017989047389794389819434108484202963513892768044895404599039284029194149351636439610659499519750094281176514184625053637833760576410787789941943644252673554399104099614329317247099907191494911307945164927948738698908354056571673587214787424937716834627427326633681368833708312274027616370759970688787152948794953724393739603011819951745323605022396722914184180257718357092723239152431614141834697928693282943960081863921681011207409119608751484023132313877424760699782076975932109590114560944537207649048592415044625553427037448764704404373886469518616250193222199936116150434253953707904648609744567844714498136381945806814406479840554685375604761657138997146990202930478011889034001253658959972225956877533185705492952440382005091340178670609693350794935802501170953533274701474877335958019604255359097765149173398564765935843102982139755771212612610748423871861374193418588241486075814533941713462357109912873635661556940039374705568576918069322956070202796104856027447602109286364172501780063955160950721332717568122378518218050422499822550065186275971532703784013107471573164093356802084039289806524165835603591879788199411800535489577258030882514793791316333136777586819242828172231371990091337694242952305756416325552328714707631521185420203257930989146308675548942444993663744483424098663072925345442021311668427468251800491669156095165633840016764115280506291778065454037299449742215344898936531496653031849071719955488525839015451399775910550695849253875077696963909609847249571936974947073627832182502696755991493653247233461626614695555261948267042768172017440212509254215657445795641511600870519282854535958636625131413764778307425446133487343757408201142243731228119425744335821341067033179236849670576601144008142649996313019258126839604696456996036967916091669409625874904447558359685103230071708318756899573508374604496459785279238436452318114464081936461103406105172054432298734882215531376562970055132449886181088020859673215729858998309089078698931837863089285931029510464087413833730830186251156912953277737471769881498086206921779179687281237538745178518478376469454562457001365770552799122706060826942935128106842218350440774649889657723032695405718284597761800291069177849060829469409037253960058548657451930255373481630463580793151089225487771305914136082918851421576156230723633755863813461042158988054906136851623431733856239184997176677785268697097059732499079238726131962648353309678338808873436042468941075139518306354760488396412248812222739417443491840643719913296932469449365470387617174980226375568633080320658634453368140631026955988728660983194692321029303206256864714425363950299994766021877023640596857057782286503517269249746388267914023265094592745093301117768549914980312764359838634402116311115309251666443373504251527158808125410908857225450473576081019523806175361316090859492091535055622769348416588630934923546165924432344618560854906905708783945939454374322005187416535976096965452650356736049832156799456424417660322531057619671593786897238023249235337226208248265404423580732105202062320214321994774335869400720369040478255638428865870160136012383997515029123187193299870650866286857981600651501035894439893118107262958675049002117763520316858002200527840863556258407907985891133469456019647273769304197611291794256573359810226123598741851710418197017211725288357164455200251708509131243497211435384612862514925012935169102744898558507585699707941556961390914858084508892273458245131558115616741781217743646521163228036293785312046529880139531283322080810470310985818918226112042940427495269784745442503382361056579037284382918717898921906844631632185932044658017901823991166613452849745921363147273233131853605181981349470285724461118766348074966029001196132380556631348092335968475250014972762179271354325587618837745519970283702324703691076836516333348250108083703315723334788584594126369143413839959524097975158680122895203097587886918545223596009993330779491456130605098099147468069027365209798329860798110004625290392566917344959255219367696532286498048822237622504854394751976602255754186931657666245475921846283638820729386939836359323624421301491381710294239649887828003884493724249499296936638803153958064541340889548973524783423407146244076344590905209193604468015013092645148318493226330380104537997558072953388386156723835850584357240125572980922468318875211042220184823046229464135616459467419777174384578165807119150347118890959469654635998268173830975335959432842373787481708003402111965955653174754241558866257717870074255873469797966037085874280006364082273559224860824619281748241476829968265507246084645918887271304859394028090183836685956785511095299815853518548178552116327942145833843237874211537454412210084863193398665524010354333996046607440112585487935211363559503221415468479286396837099635213193952797921397707171985229892252921810543197531440381489655030991629023219906497980315674951502387072975916658520549996383752567449931417612469383720638738076709361109618199924770142193873818647682776586606339834607552018861682756181613226206137459286584216857095389118677832928159829810006331223866705996961465906782841927126477752867684914054992931622864937617348920110394446509357680013743032446569945717178225900630030579072028672044950706932779089906713383743620170415077092838816414098719288116432995581096536460928424200890547832391555610076731304450519822145255767352611892165858878997483785159779012014074853162317499653017338347335389834602269646674202992655462210922356733446374260508398507935587807072292862723958001194950226048392794416022979215711288938636300089612497537350939109162097191631348794780682617518351466924839933006267401557356838268124664319664018807850460490144956432191885103142682400619433435864970977593411159915539824469317967801731610029075402998112844714594729618253170900284771988699675623384341537102400101402475252524206916863488596619842606891403649386491939215399036170211550513880583082692481150949095606609544907233954262665780497741672348181619738022715124354495807586213107815401826603974781491876725657288383674042062178500153649535848984264083800359991581105046339538116957271950829214923902460194583158845505987970790912061363793829831348890458081417202617215726831141822837998445135571918603729523745488789443045506476843918759221704532320959235783895825200239224196390659225259082620401658714204311343878111442984116264948856712658076050623659300246458584382862778437385799772641286907001810138295656638033312532166101652404941002636860865593512261063691026393430109330872793768851000947292120223621674827538289366942471597207079263488391972557322463456832310619721749371403304636868018847159005970098733257106054592652000459294122092520638747694038308884874159080912548609236556996657853123839580444451329569254077656699598836991658147175220331969490446943084205693676135227543227036891998220394097479431038312399740764720067312671136267962382145677059132540015203245657058853933683644195841255539541059114891671164887486290000098709340325370337528438277792238520835748810078626950683606884790881453314658460991767213338291807788979788429291463725036554306794080756305767457731123940269282168717244168079686977462116319476407934970974019169473922777120069295495063544048781707132167705247216943004687885975866120503559955518234391025898527552578547741905611483238657914418455239830637383967732773575387887644488342985490095175958246655158159531067710538829924064702345240126578658736020715338601515884592837170797203055705569374082895129627663224935991173835222312551034987644379687525692674175052930891360553231979552766218056498374276637469661606848328877857524683717648872647637498632832107814351766233429957179276814925476308253266190170138175549707825725811005049581258048403986643976737546632729702809279234718059165135943735247114509596381146195878598580195263918276341101885420288403801275231956117525969584025630231320825152879713574495924028463255472841054288667545092842411650650748429111641877347935638458432225967766375411747615119922399689784966410752627260204052327739683210872156960853291905403894149882859301868171462139804185559406991568926717830543443158631753722897656784608395148686325229629992395685031038322429210226638255971594042885404809562387527482315195811925351973630989149570550996974771770484805350998780477014736730644939953241732537629516745683650369676003889801533571908239614344338502394436657186817947060343204964249365644109240741167302929145177783474371473616346318532077355492412341471680750813298104263956140046271473689339730675563842188530524656839653299199490144388418276386421278675741910519495858037286253623164415708297066549590675824627490620331159176255394796861671269398414729728256698916446187029702613268151171468761000396064269101250368719632369491820586962591370613847039192847645034907761788353979606762356456429793271919686959604880279221711418693314449633982595707254774857623129368883572562292928943942813282345838089270265073300895349597483380317167510862343404635315493727620010904741785544018745312456274802881617298387960474165623889199009793229777432813010622541922043893646917927554156288972308478126854709714129604610056044056210386913958020479396175359497895314525728233022934724363109443831576765701427226881806230098656550536138596318878088657758237099589105773361397668492905863235482523295195209659871320274811793791169728274025308052664951943792906322872109348247850731145724203200130118939261402830740099248958487486833758119870310510291660112256602200798067320535005349643522916098875696964552036738984882801177901704360925778778430422487755312067880958887575789489414272592661600227815881118229048356337629880842761831200921665316675000396101240497616180867839590407679531555854094119725938088658461139396220416964092614539727484841303543809205541635531338095904844463014179143531561814100064533722002154211905546438397461866628555239024383557430977076174166300256579667414256840659686005890948903380385730117801098467866228838271175229652632564128992265888597708784696267427583026629180367179265259873832836280684093534409362036865350538672268497121774850020929738166595944346769894093124250168437337845440173495320119452409856170121622354292802193268244330526635374465160613227145398146527601975532222355013541949081661248584627877225404840138643750506648158561235428899156880604021043703669823209706592704368618705427854582584276080251950647980547730754730630293515728669752000738104126289694262420248438153733800877652389396422398484072730267221224300825361066548343176908637542746891115886677297867560016423609862951596359446422616654416248588821169592145535245981720591599252952975473978945575997280049081932158464261262226673670994768727892660080599140934168042036542539255588209271906347737432836014314393375917754302591905795322416882731718512214130783686244011281826182969986265973270519722002604842225778137120716554006354598011229640456701230852031100925560286342202428639887969509872229182869758933597913512574549441981217403519243556666498437699441097073658446182939224886498493629476092072766707907033707240537792194889167358129301934845310227371179763906323576724555739518918871272702217081658494802931358217572722470164242103884643005009615770460634916681616756691198808886454205354037204211808992265712968198356050368915614310471504395495991770334302924438948212624633828955860408073715959534559346193602926254659611541405318055371073062273970304512375477321224654789955523916491351074588507507901522632994889219767690528566073919759642938941902381439678118007601446170245758299271311926983148577140280376282517541787073739265694171866203566314541652998689361808680105262103856907744643046794258296065698507902744024072618665457333907723755822846200392098926483817712583433866212900688605677240771020905040244853000333680774939155496054391406873768164712074968237362306774906024044901899105416151615720178892475082236039365496406485838045634969450459124172609734987772330788378907924878796547993446093337898917235330958041252568656158025105462839138834031642400183748928293540156322369948834525446825074926012930082384725724804984625097033100365191296417818825068876464871542555934992992713497779805570695518999726205945295195994471259359796464097183295736558402300322844747467854103845268659962926880123688590365518715150483242903738683345918335247709795756842611932950923721224323620880075051255044332989915239098657960596687388746947181487033486279883855945479140536127377870969831468211762965105824896419307484828415807044802564063491778564747157382791572308459367753948472646579385655015861777024540998456873330621533805337753179558054562080340761342753568355493724243494893634852396594182834897382035650216121792078597327920684818088490882478508560256226897178760799238448960708611763998882148076147365422933272390790140275733192895268570609769770813545764190314138912899195605962808514787068127662809062923520325151630760463601431675982917556994880273920809938935695514831490009655972969682314010892256400319485128941512909583576110711072945662911231552744150386149307164636547153805485524850709058759996898242234647924974191604900383827421277056387706525545404081465629878478329428178596093352163414927586927840512104235408175527141908674581726345676733110023816272608874956104016822049694588428479793880949424681410050071301099249488233545270588091735198801264517514034791224451893309697875600667238448807327493055338595844704338580391237899648387106849696895272090809133887543421813924251160787574125711641621657844830461128736168686315718251413559399861303621558072966471872800142902313952913118405051424333100164450168473868713107229643395541251519051104620829979977632603485171977465799228306025377688590448453531816681008276641563314080427756245383338072160159864493572519846055738928245416776070341597520338839776173721314942362680906586832006880481532047155165651439389613707286701093517778355385639542696504514683337449746485748829721098572271723745152510274635119268235746835118611777329579968222700279802396717491588604285462776622700458593399619549110570296893370764803333665714410623892997536799519996750484819924832783293051035622489593424072543676695552796338712438280665081853173746230553192165425832023145957846743051473649415810605936144410203145428154979669078491546948506031099513698520272496374432174754387397816503538590671748710617615144106210245199069563490882412055765559485445447428526870456863676373715223500160217890780677340657058772971838943949951271363893291380591155738388034427809202451699409555653243122635209297139595184288853594154394186827112740645464652839805377769131993232535718021945393840061725463800946490961096137054688864942941523949420930383590597406075136950207620267546389716802533045078651236030533902375218670963980071779693568470295274483059431915937949546619052011141984359895424346953633139364430597834152575561581577847483145358763961210435844448689503821350314380203909027964357553776092105214072872252841744843717013727750360060177106720492872613496197725458754198514869665607089698117785098027465602409742385579660332896433699622435355132807401238120332218799120632173251681919089191430381843383642595078898814704609277732394244119332339522117087329846366002501968639052164991635768440253656940090377166319873359302405305396808304967541565569806451751841980183086861321614141421068123725744258135427045916424459083601611725173466428468779755971133534744996775271656499491882534601625659010285006926823381362267235729934447016635336126583091513000277652876867435709647633840778828199351284538677378282562461462568928146236804187919201950633968764732777452804610661559293418042566174637474323342093131782557766610720560909649017048668767062625729210959625068518017417785870460297159698365535653779776628756892422181201479862372273043889794206355002645840010955279375246643181398925343575338051378583298203682065524518475571275112288570046994888288609682095830778598695541692581710285841201694904479929234651964285440038644333718289749384131922077386883422148966039473325827775931859760179631059984201505437311180662093886731920168043747800691302822891138004905818998238533462292840360562400493972767661178828155560478747688460069827470703769737112945248089959327972852507581429753667376836039994867016632831434600507754807658056544964871960289439938740581763654632644672130074169501025433889505488727328836137397808094058429678032318875103090868651662675406061003614050278170276260601513965953882122251933043809893239412712916897411986897732778897350970073632323501223110180976757146378852086886797620603959927768081333087656097745334950332526901713613325831732088065409104331548977954122515500163691797828872341620214347189515598725866546729157342955784663769373629941054644869905815456710226110574748951715120154676346058866274855012653244970824260668798214580495027316403160367226136968588403310976610056556581017991101340261060476056124317801641267482948127919026470669960308896913865430217032128164630621644753900521931068971804814638426351156599856245746874921119855043641320658815947866559636413096185719749274292864698243554045311272343727182253371138647295744407324622513747592368538881478191090545644209683250981253230109514265977445876619879571138075160943844013021808654391729729104356322788443159238645659146426160942025783850348405250323591591368499866845849447695125667792395761160998192919814666443626595061368255106005069912376912219705610483643238335042763832798203660567519607168812168676530558924815939884643180216380519383363198216770499658909627663357178153252125695564728402668297265160628491815575966528765168595044595458554624153033844693513414968785085753153259403395510402398357749756345807402143887564377799094173995499344290205378125267389275724160922528353174268003030907271549954374054061848241896517862947266506930480541570848393251092386784091339009510177084115526556981838352956841912423152549895819768555132569368113423287669076995833478844934322673840420704056009320454247372426161167885173313858469810820449542819158268143032962342643858845912690102978035360503594967417028543626457724742613083019175148434419103665161382890655892287562715102266780056221802829296205446323658784616911295167831561452624980784470027164560937397949454048133905906447324943315956512309111060983657318943693161219952140087004539376277532665225870239090052207424803699544040685004244199131339169478187996514306224035737724614434019789141788036925027936046248221390518596655053938264993982607981730438253579739932075964812873532121491621881213321688317052744088393928802944181034116565358191001767351457498994145005092633025187436312246200663657980900354733628374558004672556549444485227262899397807042546053544180404040996333971351115948173373903283313114228540539055121544762346018930109192107852692800519311637040152102943537014946877403082177188631099048903287655289282466638340853305951178697842111669712465270397083429427236994943433176205648718925984747739998896762152524240380548467950125755627946769423727659855814586997639146969663287973977762510178153128253911303231432386195365868048957989123926335063992203299946939815198396023427850898230414751473662308022727143547155054661805598947270421655199728206092565164560038820516129181823127725016345441651923012779966800357506380785874351959849904833386445279601616869896024056558085157975117864566953650527826815084362516326179920781269854515299190815361253185075994003394381056990325042512220614682319000413027323262609989476607825253321160651552237645659999852530574025532123094873758192068782051288307279338648330258147599411029806614841422252608283711456793834676613469130835533287457600373696606443546506969331905431178919819129170463128904326565363368243495927717475202176003397740973285010310198237123124959231142804647947603185311792178799826519285787734407562890749883693954850007820497769702000092405893962860165553473548986808347818819705708643991055559947532658891445818372688523781155811216689140414479614841601288492006383548089341297665512436356905113528446921305748001640416545249850318135813529739554943163322657006520978349454804132399876382926609156503324236978165546571201208836144071110555482702682125824274241484053619303660983152963049344117198613795487165340806325666732776738425910465384517446641583085349086919350005746846633333195643264296679311839454793753458131541389913993865477736556700042134670436682645672632232842985021411282051362303438596636753358764628384095242018615003600704493976458751891325071476832122449679603349148235047424992271702108181771574387739701655464265651841518770760608512672282590632888716404242213045559089161167352662003860415652149216216860166682254574307862598944891382276292143901841211260187584339310367824026688056641626771730284961928007498089261325436553260763050794822369715442045209870676815527703823865989086820161315995111860949798310313707158679400485915669816078601683781755974688921850807550999471752824912768068226511794418526704610793070619935516099830719895296299864355187683923808783538879536582822703319435358224944540066185878059076764374069013130817339550636042202941396010126374587391878652513441441710324141730506498013978643151949141272451621964545646307546609013567693885932532776338399150679964579177913616951069083506595908200796826223995087995283532156368556970004938008981116947482505831784904593519696116160386953602819844087022633981633130575028363863921424136468520698738259117379621378354191783896526552454455882686733098720982264780842536542373136706141571275190754680949796589295038374556475390083860249866286042654396796258364379358898041743166017093112333994191485180332169179226443123000132153445353330307263833950933053034840134536319857672330809189418139052858228634062361469586344900741846162901896299849206991888222735352802994831097292851342847463945224096529926195440965480786703628787621311007198294413660655005205900418290908271178777234870306017953942440688101976072071759169697089969951033376008024594987617460442738310697070494811482828533008149055446656027731105274550031742487879438700003595286092290230147540751146764364542993006286299720821168008985579823704649410145840936666222755377378815081839777803264738973334527181280699085914178999935525842337783798876840244514492299413252588837027315979400456672282628462833695874688722107109229250358781941857663250405365345470331979640490630092612570362273424192535242454206292087052004748611500889520713316373226447880850762246420300052749605905104383872052946424207399403439470760153345514392716232639952648886253430797243533319362726521575907830036796877796758214965195021726612456086223432401519453093729275073707691575983889490956511141418241753387556499566915011803380457032569549635411980108808804288936164470560054487118589475107611795933978869108086321976795045864089762908092124992343374151060657432161322084984549991479774565461265919677184882114816745067576557376016488747520124702460556206985907093893720032635301354774094279136507149830952805436936530433654247087877656673239086728792214836982289633994827092287218201887603091855127492143262425456707818524028050626587674663061955528209767006507711701802339700448313936731424738485594305510006495161804126269136578163915589844876820722298431206814088315632174323708452084644989335001423335423043649243182948820222304709249676438402398343675572648265843943391927296036127010737622623893656203140077740160928541100780559559893523221972175263246899199315143420519644558610276324387879189594591360740132279228548285198936015911015638899176910318272941168562888556587896740622181480805893977151325998904441463213543517982818549622228289948334081601130648051964329461655708898289181673790280995448187114600010391942771013156184232659843820747407930608204272309591532800914977789117769865164387867293936607032535167110801275690565594996775334967810264920566527658883037982931758341402438245452253247956750913880517581337651620799615293818382615989569153735032323622349229522259820478078423292215965902728089807432647499458861735625056309598478967221334082154640416041417921582919537931644420687342385477475263749606501537359721461989889248878102513536253232282977513735627890199981874853837592155780653870001051030440082106890388325101078242579971914203945693795403937802781467898522084014808646597962862333880934063081139397424671653108711446196908895602211605826423703345633494993419354591970955407279654692922278714805295180217497611590316242005963638799776849459960385903861386045431193304960663827036198804969697486937085469842457899358102203187882484297078142272191468617513139569021294212921585884089997604716944072361357977635411283450854361614530800733263645636087526323865170833957584186597870139887114194448591225847752380575227579136360902626785792931986141594092114632174562187359120419507957918303806154006748772712362811107166463316119103126350743364865393962061212247536101354041321671549635766208005779210767802909334811035430682083571589698430712795516220028429936216491203885680638000520426067130168053204529936856700276355536238552236862823917835891107056931207848496894234361115441095602718213628053952036071881393922236714554459868735272146497889089471858675364655185776886080990819531080418861273732282097821138301268689615003492915473513785528995841635952596367450223357512487302327698779175135648011908238608445742607686232856227544053191363676851290031248874058672159195128841790706967513165784106374822016311573839361773988403461199295635495971832024051426176225770232154215430506237595210739253140083568785552901427726684773310959525287108555131848063373121574825088589776535394087678454258630627120266983903490331181583586086132806413690717653270650599485981596908368479142726655967777407217136162114614558804779050653912808801130402259513593112227484379906799304609262793286458481423639502113079333359455123347728800746949731325268570686825429735022297323267097880223835422289561202263083413550613131273256600316082095693443061672893953041786982758478986911290053215519073248643895633920746677874655746121139894611586985790425390658805017330349767625961168243498028960321200561894553764625081014314343248083136183578439849990866982554796476875770008425113308818538119833336651649730939347423311776267175682126893920162290707203405878952110145847955489687550423520375225753136372523268812072913166895017429775209544554754798231781711981838514995327665217602234067302783499245104517698327922219570519922909347478019259885381435052436393942373354570235290237065353960490443855133755261509219367104097738654857487244670497563437629890227260331521828875752018642778125840534991021479595065685294982674068362376667488516506211462584982112055833084826928987923369142753773908219327999194815725957474109868633263772289871845093195795358285253491704718243217533391622972362252431768151855104830584623043497587176084152284351347180732568712603950085362846457205123517816164369653341827263399907091382948566992973096283544405350640892779441602705343677211521995504009374135858326577227217637008952263417281837281141815798519382995562750788850476393302193929852130537149712064808601709732457084728224979215484770442696513324384979271916505155816632223399838818845256630840347150908347083027422350691204367348596686240056625242197342896051480462251666719629917785910504316879332918824253058803027702984269030778304109473682555601956996117656357155130202576039139684521635967320662200659824383764115804346256590628510475142160169156174964955825329508909405776011873320170508487189819570576970390106694453590132107852209559294587615004081132586763370626389398964375265520329486653559904415412838153447535991817143372947983626441587782048931681697933822885780825028577048429645334729607228788537867993441115390983828499406430795894822297370848810584050713437526248979826097477389772820642822743409411273040488521656010073963259186566054957705228955664329943777409363100345551801575429115383458128917947261810793667455436088318954112669884721112358090015878677905837625284193769817580385295862330356508875882029577980057649869302666960042057088135858681976157284536144861214611200551184031053485387567901363472783480394289913253803663736604199259404111000240475777748167924333678834858642043478515465636040700945302525866242774194202877342729878081463421681452100638968716054316890916906068606017737425804113446012769407925645815202930627087543867400753473444292393296050954046603827356155802591141349710957960198215017340992836307768889157519497471480564530723910191658233051590123246739310460824242881402567589710284809752346382301387222878097028058785360785933760560361256432754756050171865891636754203185823527240306616918228247357242458146307024222128277678563882787093313587843264056047421649566587863832073578143840854284049848909008856814322176653364944002796291215613819692795218556474003054507476386848630427669154438584344790885177277637430036374662213742077626378419717128437057482678548731119191683993430410693763830127006169614980486699178514424517795040011695720667014965910274861470807186556597072295428284112233449380713832505190422288633662037146880566283268935541576077793187798684232644615787297084023732083901747376875309790377657463935576740205402214606696273457920237056501201993932116070181674716230468323767194495727974323553780498935247377176704475964432844350333086488869699225196715299254371817531845476420249003249936216424950987768387012836156210276367553681633555746577176957043970567773506870319758706530937330122908044148703367792882794747092971181646296269861860620150044806805049062872196105288673090056785246374895314469375596052341029879407818077214965798186651608703729894924343915947107979849837951609010571129551051704493465030717784781767157529057823157238502219099266027995245662981590499208605113370402158794641006542706161167012033875446280750510522812837552084671624771035502040805081530264917934895526944840849616727504141374299226739789878791893575436125527743818439415171226759165688439283815606910673644800076679481064264425508006525217379331773813936974609254732843668577816187555117510629811055414549575453898527103617674187758991218000629583355520797294545557068036816777467737119642216753256062261190337296334774629296757935254961976766158428842623372450100196454989868513631873168734489715716016773061778393811520112635617152757005202045583149635005421116761633870603343776387913486603632675848265637174529715972248110627051449801621640617596282427389578065454163172458561820518468195313972905161722035195668354198783048289223794483218692392123794801786600050099702211528664779498605646199550525885011714257312704728404759913702497815068836079080524715152870871473000261939073099694276968243826753938670520843135832189277971128193307088211570439472666413519189341611300493534024728858850421779843866464511862554728206373490684114671789865668004317247292764996585415303428328684201859869263100092699919236718283170741680109751474312721856046055271908837166487667233840775462935493375307785406769018431451211398064796573833212886567397246324842154780732330141605156361879942913829191445234115247891831028831325892924643564893370401883075901651374894362419892042487131207932269714098101253722556413598871058267145667374984051916693185111210171414613211856275411625012039197246083069775229025160872666650529148080872524390030492594767584467020187452933696862930516867353732376607892303073080286311401474507156159158862724733433429203642689188594103535045178286872530452783771479749904423390874919116078479064017191097047314522871405077243062120917293605653523968553229403283267425825403250486852128656373019923942891425405254733900936359892582851367397091714872161011080506216538723504403391823987427758996919922514517706736203541276411473632197664469923256962541486362689529341233254964900244249351228789885538191991655504676568178331621947926761279122818753785026110428328795314020497019974009536180738683418576278869665202711384008728035161140707514228992299210955023376183894507052783050774201364375374782195869009752356326324006927488775768969503602201672649464120761296097265003583530813379530498546387952886313114687622327232128774811762552182710580950554589803917870861379014855676232253949883305182083379944549598948938983040922562678337583936773282850606764824847751535776536008858327773597004920868277324361800161201375298175665050667355236810382036302783821324691642714292892067633232769396231094337748684045832974379338271843849533508772997171082531970760778484085608850566370163329148726444464177690209348133336751529610961723643777648158329267865714300533712751516204282956072751669252405177702473997322794511552066114558498425422891835036297120212416490295520135169150923047389173902219068743502663114129087635911050927295412223022154163494568233776424025469810746460318097842518056647062244689416829886920524086879636029065677087239771972675101725615288196556231877724030170241535171119629756311007244147181439647586593532240117878841081104675466858211029649944010573286853676784484419063743286964497063589603531543569353000407224736990078562901196573394196231968563797195827647156768417418078801809822573334774356402699795007119752296668748586355341243326722774559043938399870179691940329829764229557415925643579223310089619622649221536558196290462222807633643301039470415049070596546209158997703331736238936500970552185456490250218139195770710076738205175327487460108198264658196267150600911417798830374622817681065569801449581555913752877132532538978901393135080044354055032405263733447343552119778311542161368810160934179786321872923752506150719962689556833578581114717940524401221273696981798401746782079649725265511988320091771838672376291912569763024710683836568899855072040973727718328244412665200474851488113437155508145303023111231222925124653503427575502739340813889405267332272890933678144228659368474084004484774050285932633522983232385688517193726685221250322241455974399581808122632611145514653833254202652131283480649832964654060725824701486962378157063839017722067049390459200056949711839520019836056889027846356509587154036249824991963881565019644762652445034338433315166750109964103415222944652214756614627779980853007763933892137137571513281025614068030474715745060571003476401012996144263480589090384443167358417305466855203356742886550064422209696991604928374313945102974542467519349660361469023350035091424378987985018495128059420637202358212508598558344015286304125119572514877768637870543918048863900195245773694930504818393403571355132983956295215517707358382117881481998845320044294742988549062980861203526775748152761190570849252592208352594302699107741758690082575283334008862832663885074272800734120001878687867934737856744935634654737148678531504834783104737354696960943529752134115793101278091783499416783277730019317041080057586564059205138763918316935652428827563766843805265425321206683809933400786412927062956795701608085638506293241524687292762778888801810877764492242282556828467399656784380566397177672968074630812899639530390143335862737596427743908647947316613267514521372047662495936818975797043865957509313642287905648243559214425551052320141158632326156699142499160642090945341381370158364178805218950325907636869152806743680566104841957853057686759354810082147719605959659995017956889887480295390409980692135943785469484196586394487527425290249358644196222973405208656221541261217412795966459149201348068335121273917465582582466705783692686407881825505307726761648657136189100614359937953564791122604525324069490694042430417921644778700104683856508059007728878068871210201548767292556691871096658904429232872408543950880071850368167666266443562666447659756992798170049546925070784557325642817242300105046020053749278807513088905337711183306091705001346177314420203946937810322207474300079770207591131928837565085330611311644015763898980305250687330137454755305803994573970007687236792970398889902122843007989846140474498672705092294094739910994916782903852430189383801144063545381516763866323173392182128421474097599409963274960985871140558550416674442759965415802983370943558275490146151049291055345633892003870073420941880368641803999146950921164460908602785909269292185744215719548129244530643820026021811072949488394928894224141114170159233579059850068373963548815900247586108430584406045199021913958539630877370443554705693992530369679755017788660918541693883841094762852821396543927094659304145270132930169784982746527409988569928863682042541922917874913809381244507088507110893566471218020768052378726991465148312769086198959628502506270312515698438811702475156525299116625159317825600354426484650849697740824293086744744613394426178684633287222832295607624381731255134475002324182899640584734133542527731472552321840639614439994539225079637655264227741895682859174008787724831580366228582533289599414301878385764536185970677491695472956914102290258255559256278298092541528576890218822541385842125536941025937847147065023378846714030937670360569344038158942508730093148340054389542283168567800892219720315571564750397460726831067772485029938965090756159980080291839693616749374619476140516621157026275082299373094825688936000644095981769660661238383530941067040306121546300916894457212857377148304977450638584366125561770096893916720988721400098665283634282693657009861791290028971067037267003974217521086947177461908227190480793136752518119818226101962771656306991992053235412982650091032007410274223503359534289247729654564770509991112449295132716175966948176380324011291841964986101306233054498787995802712291695625447984904612305727566765873770259910596628598931487863026944347589279126623767807443168031452484088252360747331753300749592182564169314114374751012128042439092787612562840849408074585266222788106869896279424532180752504134188492674506618366108399557391202436022733102890079824937455179381946636263225469281990167400155843782782010628798254913418042586341045192597911895982226418131762163812465401773143221061781021697254592943827594292238487709990185256201084096014521424248006555054854270258841789692189840100054724216336172812413084765294641976271325133173375741489829235307395031524045455570287923317627769728537200012905066959510518584608946269718178893804075227210770769813207461222733096310196136612307792060152822135442533791860382267825295768730891306314245219824936561483553684344357604241369599403759324902494224026169302911386432387705692422304443594441577650553387587010085840878672286880655305705528664665982662624532325257371583098564947222244324011735539133637006274525298715983591654753636657401623607032517541367973028047623180589301692855455077903264453058567002700588938007624166882765128484966173940245077262417278824955762374921833342638181911000079938695931088448491279194940981288542103750455274359062505913446389091406570790737212003311688183492276900280834718594885936564365217227183094712826141085946129092053772967504026057890065656693076380436411220762428833755269046864833272510249634947471681995213939616474184396378069953646512847585442389259939485552985752655258854280652649073191466466948881881901252769855918960080762310610186984597558985673540322175870787787736835738895452625424121656683739333160860113419534610031360556761125556801269468046627991991839924421218707011487373641657503962090343510689213755012307069016790222492879178506078213110400113505078709830525614374058874094292736476649422523710394322104398282187482839225156462009793915146328331440036577609938999575056836141316063149059602549779996937413657070145399517646035613125693301434213220546194293133446197808387935202437652881241370665827774758564909784075809020324091581111972086352911572451564806433935404764915786771071319573492458050185403048168562969770551789232132934173058807894457055278152494690254014947731435458669826076974261997877560437113554837213276082998433189829540236224721445614911783847597675161155986774633843388349477210921159158775966870172513294040411470459724455464006076184796323548759685934423051036649696263485911516709599963960708030428583329348476134644264565851560471221283302386722361121995022764660420107757842760126773200841887609386255418767269841563627739917155245496426037541010765139457403578718082620803778410258044811956337936448644079441391467368265196503274099663459548089785709638794704173121279703717771509019236626235053242085557840543970508280843647861120427141483690518882868806631801460906902088904114485708446584228207119471589036421068784141885515906904144339581174844219847664428148802535081886832415021785935202371347243304429271299970503111206826721749547842261245596790320778918256403990889391860277127248439201637821444279678034718025833221637129078213844628341990377907080247725792375253923685217703327995759679090281141328447657712309481273334214329668556238738232379056335047074407477560319216605301734410322055987940628546611384985891053038777003219135397886580913630714587327748167096543687629381414622875441726279875481916259146528743669901114319634627268279854925820402977306131446985386775675114163004726159333253726516140180180654549537705240014540090712734561007363156793423493882603836128151462150892158398106297167853532497295647412734863459946895451875298334702844197481001417043002639389298126838960648532903495297361421613380694816686446173961110497016545196019270429874400239894960752879023130226395638880893104414592815494530987855151960398035246617471282828952997232996461573873770530695693678997055151040670494031097838235777081686372961515805327143136155889567714943966140766497692405595031634068655056699856168546143269347859503860645504809462809267905953851876480198450544824375116283185923781505706896136943549367589559135674955609333252818538132013683125074298465183726433505478483159083197580909904145100421046409996119621898864331365021063062630803079085177927242942469913260057746988272826984448239206642656470667356864869466975585734296138759089667745035654401135500173212318847651050316199444160764022594499603680551311594444724306616140976634412115948646376468582000530732843787151630764108528183068498061137005542928529242723185631370765907636670627166315495372466422988158241068304483394764732895258290252585146858729387084152010983063539244361537557727422342067009960571468557358430737087744688990922262254191802352929026347973916548889780979847170511870892846852294134110890809720902404953314970293074905049658085893322019728774100448372219113818015759080373437987054030602618842400501578500541920638109264279638244915590638208817010775768508146560899771399010055158026987788727250824215091313335595844889140698215440706880512939921068005838048613805618262459826846488598656847731558890874302824063087983113869819381715802626877088732030784446958534386188283835802753077383967481019867371810934995089822990261772149317254005046255205355869092440769040496981575043489519637203705009706003825004745650543640893064172793774815834903171228769228103390318942843067853760013533631752601882539161414881491084964831854490169831044808094797118729268261169061003733374629412605827661716355362155095900956420303859056531704985413789047303497768456764483951284167917400639525514468190021141343293356576921604267148247658429481616663432999480998581336972595187077988470127270713284290403110624437598457947299111007792664774412768936757447760186281612353839867612422309625020133719668976380625763877892866393470661305754433707141459103996754593762170375603540841463230460724500753235201410885570552455467123784081776832313498493543205186161889671400114976612467751301596874616269084483170640966640022083645818221293509289518458877081671787567440723970928700229601566937763584293291527181438514852842815299262370381377367941255376616434664448742087010645368459119414737062100559978693256856250467501733455104167075570766666198589032324024604762414680718564526351943729163696503986007625103332090616433210217474215144061135063654842141859080462717281257693818504843829551967607098402998479789078152720357116892581319009959878440675273201217139305924087697106179099746745744072507043328111159650198923894563734717761196864304834997461939091798706678683308015305150262236133930556084783125157929486309693567576177766313949022827028703618778263746272536858290659304482338954832371766834486610597697508433050482977692663710109365439574463464716351973588598500824043861558719538289919942439284415836837797490075144655099262829689715395869223995882147235326554742875580999119547095355964940858370715687696981657758784753567392634432727903804384271094339354837292944360322024462936426869867693481730158525703727395981410176469197939613475898403418622539010817377486502402345629084662722129587027353949469272407076999572856274819273915253619621169475908582266101355481791454769647985936742109614283776776036220936391030576635644477786778875870576251481473240774182526702523969692077334178326460250996979024977265142338695276582743051562352421981994192897087489088410523338908825512757550058799539986460739567379415811363765894438639705290481423691076485034012616205426996497557034636515084050169462869447510546848150127238520764223604569724100717298793812679531620206700691208696629571616715067344794924413786198991971712049790222055879396117542713531492648447106780558004329812143417982438470344457213206308116210937284389471245065752637558533738014351692768266958280388757255811240071523591024948237067850902606125607957815439891539511745685145613010287418732462501465511362914286162900185341720452732044695781788780617055583584552799864966068756883066721991403884348976512118692556580128914517709567499367878120101906439787917279796965640805541760518334383512902205472015746085704749208898917253259449910412286816327694162450495269153629402957691243383489228830818911632824442960556018989053187587399319047544540475468776453382254782198048074577551294699215930429900999777227728239092761328462930055915850079873004167033529293510193331091270769128942137616474742172005284376134290602835579360606586132754656197767785027083041765712165332658766393271512562195863251474488726322377395975566907763531006216705839432350827774815779455229485420504032800197283847218265240643009154963740134565713090889330007082808565346986577423525261286776133491190057192238577460578086062068597387443366951316397500115389531499417125082257619265288791804399900626703512780376076142717833629138686750852982970228822768855375736947306015106918453291719835742340234952433674851708491551324030144017391367018671564123713641860416023240289208959624996111446491681939244411408124435577675670519702229994734714582060863217718585630361169606779055078165109181718558281840241038786818434091313629331093036462822691843786366024227312631024396315852585368828051621121476935440734190853862690999556201708444478602136488284969016879511114617327647927358559187904110653133275830749622394506457806913616301456745732550982620135351584087389214908330643287765013598399480179004236733105089393039999235457880364023664919523598212045780508381836022493846281706043648276376458118119107688989174046707799346113553961546239996255736745592326399444330412104428321323915512258167709612750297599832866674428944158077641896514839943851621391806243365884895941225219842151999257589321116829665709147481598083633844133372341787255445257434469305757932755481567851093492019055264304229827377252532193192190776644817393819882273674140819259806066107450968968968001292238145046992970094140283848325314971351628917938826555630090855881675198422063805642140569371991495655582679177940210456625669673494643906151469436368312567762248355063359818780296104995259611919745348867959561523684092302708410046361291457568975326171180422361745819263078395782611622497650723733000283735914555334662915414766091374879670860572073641404932427878998491660378904976791566842468739511786853658003572375967400461079404212360675022501019477093507619861058740354076965164355146734597359731196022270904534962840145030183980119947697840073373358553968061043188933928091969109797681092867373349499448151002578755522575762734927766678149927662951159196050772690874656092573406655831587927324817305885539779023101300265595009790841864685478801903464910710674642254879181474133133178124565788867823927795726799917325805445031616199425795234671784773715015362536078700807419719061780713899759977006890225965054583133378657118561120195720450843087097176729106549190792633675403269917975308062000401155855201916199565956919026692096723818969122732485978564629609832123760192480188539810609464216705562170526595706696968320164300346220187674688950180787193841439126860949292754428965463741059420431972033997895762004480075063673520979862171006528233265849972950761133920570980787862801704498764201818668479037062003003434398031534268957080711914743532408820136110916293150784293684494104565023420246992250523462276376874363043690540053505298234334753820575280199294533536635370633018806640108657751480538531127283162062730476863548250147307464565161696876116658109407676674776108212542117395624036456970801042916901297970053982740710089717396746208624874986493278965277913113401969069858318437928407669013901158018377803447330181752217402215967862652953679015269989920511282387164550504820990216551500593845854996003836215111572423645037792194610292255584676119308616213022263849621634974744081997717214076883238829335253654784268816066384395372950191411113072562448232422917061001650278558098821797968184993489937524985176372875500093474422053195423226586714192309114122672735400239062457720394332028202966598520775538247627671739289303527016630884860889086684190867675214095294374247067763716159118042908622319519975272357738280633629349010967178750246810814116161604267593686250770914731984121597139558278667144935498223002584501589688672016524597707270609909323681704065022270084896386681543271871078889782978478298680660020200541228464146669123306948650128066358935641124810376178517393809562209044110508947832697408725657899972851921286669395506522750986128503786472391620219551220933399810016179325391232849572580057726625825682286069166149433776966801344107652935551704347651411600362832602426534003094502788164111115915780183961731283084816565956416954130422800127321240524017242268386701146749958278569151733185846598942800884009867398801299439304299490619604290782138232643098814689225106593825087954290020657727084283208922764626575776460170901158818923658574103533053895197964844755471087531184845950660024913856959529271310070220554714800761130320261200103818482880455658294319726549596282053855432333789425026995054968497145065458304635061866277552623475171064909955445824617518568896397495846005121656991121644829407848365423373141632016274288035064795672921968699092390667878783724705116350956316604242546518547022409423450292323437308265254562271081123478778398900557573642681604372782073747107817058938583274990531934924453145316520502803458854053421216947107463058213085524259217512010418651291725761930157601714222698320507368387737016014819952006631335933215562794054602614428481363089942336294704524058110175829088176628149766077800099841975093669275615350570438513481047790020449669968742188691502133016323650017489094059026414686771955422880370732260024725850296725493061282635567197310646455466885413382865787019694158583633725073065188720643288036192873560838296819598712235057663459219903831096015063368393627737688240713390664092324630234896576757410574967123715309629298363210251974295344350495452504083064342094845614703344050007549523004209172513562086377657946323221450709439510365094740540222589992433170874961287732253998396135106607741350945281878864079400615035002970242305604805464916178219125441613743767827335124966049182259681147614620787554407090707219438341514483410956439170365348211861736137242114045003179040765767988532918279353017383550711118109744430458271400509870823340425606038271099527845081608548398109835063158405615442372201765507598565336261149538095977195241731746051565546039758613807844943360596708565132122106409239041094256712394499967484937369511710350002071224096900013190782867845567352684073527069216674994077616856020482195090332364110869267358925720196111644331918070252178569197108330924792972828544874335796516491275654277648625880629099953666482060743667076758623167695958285003780729555612531673642074991169995773705512318945852892239010785456583913462052569205101442740900901147993447802147662039095168967176659913534133071758214231663261857232852152664132802831399617114794489148430379750993752774731996574578177622958404337487860449649405944011652484113262942916368832096982956253969545205901065084906508889220830232257828028551880780674452283283365614881670264300253279518346230114033404468319756277541413390712947445845147935067502111831529586962417942337257966032649743875075268365099855656846380200031081861760614305827100613575036267580856331456142292802657413282508036606347569357610398495269478598594410277533666538500470137217325624253102464202544126614669901104821927553036470771665153470014000233774354331849966741403639942279630186614161390172980414135846469128247996575257666263715309065616944121952842074021029536276120887349642272480595466764941942537551702510555455287133178853335333708976803590800172100906679842424571542078539574114001241185597313617854985240803807042061376933526231081204333270175516951616208713017505356024411940501733441006153248851053118663623177174270173631813189614470098249614294744077987288787727360621340807410650241844770310769383886528596347115631208972687762782597333125289624855074023017864015550622190776175964419353706591801864313408456670550939267145204351558450831245620662934873124820055934350982310150291434162733545139660678946001160596252308977445521363231779395850400985772425518007995945272497557461943062953571729400446683424882378741653537738362664374189912687098986126779073876053387656413319628699094604198406608834778444008370995885779321807876100014452770485055573380084187664571434589554544465291492085864522921122280204184485857404062427100205274975666496747416780217539304319728900633689460362711262627624398825650802547186984649425726438870249779203026339082820002894796044245533342969071093560941445289255880205021849848154988929913500141960097611773305645656215416583764431103271334814039724397318182496818076847032722570022060289065894793886138073516518832796384011647241922631616275933700234010373863472663772876286912890640067169598139251631447263054668609029488429743492864032828635844901480787774974232594627102878666143963362143511672353949555980308133607191161345800083355048503537016607414188117315833188930858084750272891454610102297880389901028043611189580941447911817685678875491314764417743401828206491042177270640585205757926810756855294669295355289834658970135457704526837539397217997048193149353049974444981218526872751981635161559613426535157812824438524799675485599868191454801646118713484875692360976284803898183493472865902971143979929564041999378844495446797589648966336098208578515900813170175662581920397472349979720803818761223322310201447236189137761936996194845864808517259751391174665773542507750182666423467432674802930493244336290972858870331493804151626619491982794658685504357550772107251737094442053167031593234256585297801601804006416190575348983985713218480767232082183125673567921860036236109958136670601220889797709832807792312657119881178077537233118803913755540093740667617656776361795865027853707547463535000375040555868129895533827325226974409141843575276966281218813015882099912903155001556548559367923214302005975008128395029634837672244372831098900124758107155058175096687820200007617839313338652655888717715338535826921241415316604746607175125089082752839298558088883595960786937178868930093758973575467576585482937940477221790629741339141858854886579288173997776420310036395131949104017519586173582031765213346861075895417108669188907956149152155954099909564827660406658314714143693548133664704505990399888130674495339703198237112514369151950058961955676772820439931577226312366801325198009850827279719209672640033258221645399277245039898654122566106575620702349224313448914333307244112042534324605960991720710923607197721752836729224936406995846852618929785663798812624316968404254455426813673851311680794634268693964680350305301783217898735595478747178169920301574052207665737707191565974171756968910985083451316968468647075489989794240723253478786936277689450159097002280412036508999693660993047439588627881874835725771642587043483224505566616131988583463274811926047094083770507140082984806120823308688889778487157762957391368059005047005232161488273666606190371959324010523837139197355062547325047604432218430937053142154944554299118729275378320341011247026235995941397012230881531017779485705187856256398635247937662408390796617111716408902142274881003239908173872070906922393408745310396565433161045561427416511701257641896423657266230235636312083391033198368888209042612168407546463796231770817290502489159735918000361326195453248081254743056602240728008848172811850599652878062579100817922894105284204275118855938663686072095920579072266595988405484394365281019578831293298595376833173926619836576760502147383885058639441610278416685559139647388965504084421693698364274499618037352107414281297594837020561755429852673712971858352667697225496893676711390402879101061822746508413955893169236496200152519592243566905038425175289798729677377437324733129001322152365448872045149051381019295729533218209617663731287948766484155784576069030009776841146428157903857416712829640927821652912366419012796348085848336511191975356905911159106217231889454649221128342881539006244690335052388282826938595688689647975972022632428109571135575653258257270919755583188467878124104260421625869566090119128144680562220313782858592045499476021973901126917986680733619795039248587083402835591341737647516938021878004506327151394664924919004954195895501649227613083961795593187233199029514946693714580944632826122698430116682271206421380601764967636683816655420257685319634688188318876392300309454517616400570390852938364873305318448792328410740492322117656329275663214607403378486936742821811350086277302120478351827218030637538578169571241288989745881675911634504330720725243207913378258406737309972935296892242005885931866412698166511128862669761606224338798927269141182214726117112624952886722680330145214974752543777044113494644053680405928149291662665706515688570920197203194309600352669165401647532241591387877514001199077943338339195353311793284468597166955741974007669988804262548649303015614447951589809979759175607881768274860336646603872018979387994590573116331941940562176119103171446728491881290161283443060549771838183483833441554222988396136151376332312540370013106010388507242189245189563070219400211429179356339707230006917152536438203341228834134065315967346650058522410909496176363101528134430363366184124285966498778118388714313936147864049182573859761534013528344667315792763914578155051853882955655768226134948299577911376663377759562601464550494104538996050033642486972774510235319049724885631288968238348592913487556163777297869077307806968335374588115365616489399984050489018827242076557084342491478959329277586488963605861598583760578112308866166680888831054961732185987844320424041656424408194109127881331764076674577484292541171226150030103903191181569193951319371420834870750718721520204018350807126582695657667181664709295402587507176513329947865329966282536867140741783848711776726189279854206161386828851763256036237070250106861474756214822890278096591674231748403027591574089658708086506301357638000290911223205375208595773748030443145931768255082738990963403790525705097658449724146590829495314826252325841478719386983989048554717237840019386627621942942928040221933971869921208803158111635275740948288588710853642017183174456041393907248686327364946794067133762933697054851111029670118209014228510739284029185379024317051777481145314686469505354861425912005235834154438493778395744966573551195920557853325749589159221982405389331935377425418409344897183037275141784726805761026674679082859618456504679362178967806681234514025221347443824570793359958768839603392508895400440778456702042592728621639060133027537628226623772602440073560566529440072650027704149032531466299605508224790313068779550265200352001193085631418601510808634865183701259740590421107045065009578767127640399403800311122362660604183321749233288132102553064495164380527839348395245230868626360365893041551294693602952375348235833350595739150469615009876376095790685228465055854320334994406799281451476475360417325717542353082949551305797706986454157069574411650663895951275786651797599748761647159373546065226636219643574308278244226875651699285856060783321673496075324629797707859252604756529698450912122482541133202779143489038431173606297382588785073059372752591378162077178428617076220661739324132650786527767240311207973035893626840773661164350017480105393925558337053760067004083454778494567456775150594992336366443592319774903548385531374252093666664660100268240688742631263482502842217564372306499402640574268008628162414467555625136886157259098070838630733211483937003934531219748873822472368453094998843996818659777291106234181082220260341651360351638536582728130932990408935208548842794690585172455448799682072084380536282791429579754841572175793931855274741363643510497118048372159351474482885358745621898022172012868484454440952820865773156725272684393486870069052177486858802831182158821883037522505706381621721050506038626904232804029716061952547316433161132346612784386647627490016958776230264627563622713363085345214013087158707625147524953908408544779512792998157399499641543014082079365486673222299522528524153231868305233314730532001933102737831721989707526631367827039366284936640315661574297094826784776540712823982053160384471026107114663575424820044547817515339120351207763545501686573274827479518350071243837966824851179075745237315511544053409968606837608309676739545197979220529240897752590823995168149384170295143260761219648748812849691737369658328888101674060638270465514726613203869903850421358684981628216367653357326069660550491198942048179825647428124000169397766032520283416767578275171140728751666913409077521257015335169718762161018327904443353309316558009865411069804929522557571176542197376761001715676941063125851287099115333508226704256456284481048972845250250016346441649701545277420365993732128944365582945566281211732090595188995166706096968073416061725633812610510480935920845562395266336921430307234438414002060218861765873581268496611619120208086714508676439502541239091978204065708118938782232491794645562244243737809024828007682661877747458601184221487243460161681963688666814945838520484387529321482127464964834498772080653022073057882237358513186241492841241853168891620837040801795016089024211984528193724201981537629660259591451354948868678717820366854890450877374451974731264404360446039965468318523858255032256566901400130378554275289226977318220599949883502938942113878289305207645291552165029125803370890353475768829605005832876772013466941512187011819547067145343761425732302039036135597175639881436476329944768675393874508917639248885586095065995630760763567313784584743759930475574066119021922796440901781280521424769252756349794523994614705541628573102718441724738449756072258383039973615830022675356575417679084150326557063925115187881627183595919880600840327750781495000618651698459397174222445571134471200045953739506680037466549186812491806431493646982617984559378372939145158972910840694545738886967232711549853556655450385102206968740732613268009222931385438057171632896322399636994281472225152749033906355696699047200736905785731633612699449232248354649161332542298138453539030210095466808748185221141199387232799702087558079972999398564301745046590470104964794679208377055343363777883536727865910644351519875685592748823607908594260230425576140129789141097188959969594458457785722493006584039724399231536604442140559058288316882445843917369934046853614772931271610712317714378921340802910377452996440244762270732903457530487817716474551101326496065099495347858489222566484536168968643192866171305828103275552011953432601199883569623864230447047968375568331862352511952712390031435831905434153461410481699973781234319687912547154870095559096594563098616539228005979216417617684847867289604250758371789383675659273887864381157740943105016842822475856309064017341610663459182710933318698331045275835968706997075611193768302106232809705267579261300306013287475099730908636375844641295546490165439764985016802940528335851408294707571961624811016402570595818546884732402058841228134959878417385582292858745001201943247306822270407822254087014212336201216099663439116287768484695163400156007459656786361229352509203489140451248945789871949028013316748205539884036334785246090954286261790605082704617702395715038267288121739773891482173178958692757762509231114327178268354258352510464664743659063835627095785820572003140692897267944276449078622187572698323983904253564735441804477436440817763888771282798855184080554798305723925742763981057691004474390895519010994979684122686784579452428772769457381197024341611550590426910556685471039182274808834151776135840362404444125730089732268446063221190955266382097693510225793304445413772867036844564501009638179575975021787244842058037386523067590117884614891358317074423940842173859863534427715202154084443714213443544398319634614889813889070285059786833861326532516606187398817201489249713718601148500276700484720592231186560796086294348210656106877506012789522769944070125129005210592742740419574366916922180555982500911179567113354340646054670708497523854937216351354632940915808038499932369733833125869325069573076607136011593378534688892018042323120887843388493686491590645484931033906882319073140279427396101711199469516896323612988401212387209660163174841086265888120027254667639113357855013141404809901502614410580611627366653947679851421874482330476829405143434636075861562018618905300469298120029650648252566638699408019464766169801106995872960769897945230536914988204210052462530104715873809841793867659780473494823436703578712876533646739888278800757681087544223441125459895080171508499874314073382931031679775403825392707958092362414401603759846415701918867751730968452281613623773229062742637510816133492198324858772096557678687085829260209290685403509077776710963163980876638363301914433346848025063947276989651749660225635746839367338118204754154619930116168512376261532792720941162957823150244660487386345420838632123663332927757565236887792109296688127773452410025264158469914859027666358834198353341829390912917194412252237516198151767931641929917245205592221698840161624210174845458439335394240173712055167538061993153643850252844900157171057380456211955861191628260980516145809966236500983467628643535891261910125777111443370626932929181393332521270279371802428544856338680949427563412892437888398994180386011071743711638286136938023972630064934117507706777927930251828891581554973935920017958348518838314686543327328344500704514981674543751323258134607751882793642739399957106087159874084362873268104058889409816268158484483559292851992350592683365852972318812131458093184183289051468280965632837129252360881773497008833622184512793916595321725082697839917771519402175992666656892404311053930851556453533529457047444782753353886899553677253984946437928962486933674392813227574379150436457546322012844302743387900082670683594517280860350632443116349433804384619926915703774818528318176980778655519863432151525096335153444731621089655233917607328100165552542091459701571740852458941004408385722300850778924598499778932077276628566798084806045657999649367851067708860045591902690985070347718046513434118192379779103060711245078150133288570266291785670135978836022877643430957125264138555638141928797472655555307189818468392655927562463160254487040920018082528306649677370359202044031992849253306957701183791651155805680998116891045024671337647589725500130127484143465934000708632626957209426476102618567504765193342890841501040522618938095985943441205237978818916264633042644775474925628496962654328045744334932744824239343847205706537731295467792103280205808284533184763042188872120985506797526909808694453697694388407030122907635863647296992980988366617603510639314915295275948988420218850605908542352063284271985700816055443528939239752547644188219925147059677821893096422739953766043079671276286716376193466651035448247818407272801805596027311638683688443539955272012268291277374694142903470344721486205903981603604825806461877111494223457051804920366303675916319842176008630911504193323388350165592207817611249676722499653963449445862977869806281363235695152182029379185766713722066321474387910947260096755820696531582855829463009081462293239893906601226414500853046587148301074673743105387380355726168519616482934478157662786573065395731854989539811871633053123201548421743558595730959350631753713716637604186730082260919116935240058045429985824343658814995945890862294276025194262366152109062326500135183694877914132724278389604836926637696707742757668365353576784463248552700357476972290481849942069603808603601170159556678277906799656439722176708838658536632978352837743899487143489475553429631606474731103860605117203481635690856801706062106862069002022097018004412356140975989077285606868138618010762482139820894551070305701059744935584215880589608835546139884744744929475104086369658844652495882544966642161300615894539014486359889402283473167243728150331872737312047968978747151742529887616442618827123753899138098188167403250273081447811835151463244360220950651430299987170354511135564366547300013392245284259821226236658996563973379072518824226234446947786409248493550080072657445291294092619515405903219029913473979289381338261800108842959836225256196414296619316424712391633231137794358558404243364931202206725635360509878264103776699885030107538972580995482062939611636606309792757895435564659817113351924106375560028535852292819167279410444891772158591433119231169743935735351494425131027677411395139620513015498796435986385763696186244196910454585233078575986996607418369277994962019687460949242185641438862841442168872362246168262672433138396845331246756259585193761088803648635123682564699471439223721301126265642546109208210024154942903718386566759457095801454741458571192781424255343941178987612759531557839546851587263217647728792023546351330569723580198485315834891996978085021726088181403047293543224636641286227655546237554012933212299100208368910595061121181632245751715758896147900445833798246430662481686203763332031252009805990667361773619646302879790151897819683282221321988683704780427504910717253006088148453964352908868031328870385942082828011471176305806609476957546762374642694092623586876305745888063148996268974934577676946330723395855706868428333522032211762150176097661989654503357007574449020609856177945327786566006367885685034507451275234159411771096493772695272102233872991717865611181733021928271496766310312131644921104569342047021627149719785146257494865761743853226704018060068499270220096470326187245412766568880841163531127250492844702697123363451527456126496498952849640931187828242000946038990313250096375705033365866782071307180766799854529499863909935487977268012162630663348300431257798067318967131235972122656802531121239236376775289724695987658465699166103138415628803130104467170131695446814643262113670869533602550456059911822527150494698420772116887707497903224659531602255821363111450168722953085273243298784834593492253094039658309146174734804215622830761788118509776822302352766670518964049722827233657444979692329974915620021672296869122943172325198590658818704359402863853888058871622358621191307044017452650587419133587170047028218276544090128631053525425687958526932892321725635229772293242758090252641275181242654403602828005293597368882338493316528816114797961248244620143946134303470662884990642053889276836346793211848883859333555183083107124292551146874548766144179102486719578231300013537132274793658373468937760963301354088335889093811849943327956560229288810524799051044719735129982930464288071779912168026424144966839329062426346778108668039759600512875869191639124700056896454840714898775503157109593798358844027980137445520736678730870420715770676629580885964795846041420315431270991229681051792484877571094193089838850999507247438413513915961031031545785453099256578066078959331618357035704789806979726044342172992264471144945985162468302580687784038286565352699937564945039955534065292565562635602324311232998283000190441109672489518723044803412431462382359765555467325929915453833723950002403593170968594605334882947151001159260916189953125235343189470607862131770239048629061305158760410864719193044661530707440051427862526609389490148877685118958464335587668181245930709939899027603612779671979717451317626366292461663040898448347606208338713948646763109923674294124368536347047047871555517034511049531530867718316139643164210192573673605214073566990866037484155347144476219978317762095592474453220822584594982009342389982450545508636173861168921213632314396841522207339539581650346665559405878209309025888343849006253173202789629634688384633060354390873590163834126790922530538778611281368391022686482229209966977819586725208153655737968251702798021070838395915863642418424711331329607813093406263105790143902813885962251842900469774711942450039678342676240450579749795639647406091775504708757495951416016411586159663012391978966946305103830576932806704559078795132995060977543372965753381505009121394483582616028239488391399255788519134968505783369502301254252445383699644993808440536645944159765204000774529910961772947415818758611869275218516669555181939812363421134971566292398732877750738876224021287212444095168306188413450743450828586483031514735849187771358168131816994670697266894434245254897233038968837901713201079859762850126426445461689632501540817424881790163736226860409055062190830786854191377354843793210599057173918018103115590948958311729601670712893250271111798408538267739197334856379735386714866079692130085323127186250281809541098458550808228430534486315447892396045546166792899589145093393207536498392693313795120023680599852266802710136176304176443472626835824607645471528934252891472973646640970455339546215190327901562700190529057472448138922831223798856847748700990605476103949606045294803476464275730539425174219166194843250123996220775502239345579798456559559551358317278256565803176854734208597607879866535467088813314751281510860937988002842864607568298784514167768544568203389092234187905643107428657370785612436141710115029858718511348648490497976931411925462730113863775739554001234410469822473691212839960010299179119616014988899222417296214402005723607940842790240510844579005366510373465463081221583530448936326853297930877690468991617916511367655974776572198481495277406041393451297934374823250634326282026507783936996492058420824535855826736231242641236618066705887988079812102237996581190371795419727851034015054284221070629470251322313165729037548814153139604504628786771153510156816222278327684437193736010344810746830971566920452632594370663151175965834963870827331969441326860363327193174004043336095919356201721012697273191905673583833882266820068937405715410412456301144665456797648725991763116622748577044198753716151854633027382195337490435618601947245338042319784510233033582946128711615711689876540951666043372545982858576525850784454557435204707319966480994101223185568561505717421661113474095443063529719076126812783672504217859601805367067417843226512812553637562845420056979233572492630073189821267843690003786476565121437197134142372309169351918109262309115499692647181800259657048970265009740130426137963815164085164306872834393412157606404483895558225984187670512380260364819587278168258175651630286050579085612553540610501245668565443991705830915565268615752495697607191857905445310910482292313075161879450219580032794535078485664441174366614257881334310569362345444329436634578024745932507010276920679482571351446576080482803563015781998436186520776963435212874254781878554202325988579971773384133885235879738635496725389824168821959756906676568552626360343011733243213914985127591776843174187826535363186496744121174514718672909223021069538175535307699920140019330030805037399423650877896301956262565694811344833231198392679184446428040231829794939901393609876986777087712870197217869545737844713411541806524990191776009788895939707687818660569067593614410772179668482903938245828080268504742057167756449576955168849560841911237510314036070794152233755764862283939279969793082450869022225871059568159070010773406320244853558968299753360723344746273631354874573692769721225913481542749269853642293702763901892793222840795161528073465984336407955469225910487281884476973618255085316310512977555020518269113219748021188314603448066727428470480353243175107585443103668702985717022697671541522585101592240821609036890681273049858080422713392946495381111614653037656951236564044461580747615771851710090943984272697453354789076172885518710496656891280884726704504021815706292473173100458851675436470501518451804409895080754793199472056821208449043195438471752541535300338136610061590905914369543806625517561842130842890964173783598535465527441143596610273073559186370424562488622782451831018848233441084803084017942131753323486899678720854598233653177543495413592691413164906153555775818809025756282487996887084905056371838889908780594196434207407438515492621885291180838311427379376022443655437544141280177294796602436019440302866006918568736239594774288245990308757234727759278070871975948085966044232444212107049838886425382964748455397243137686154939495743652655162943064554669118937053007796727489358875184964294689088548587463699922313930441790270154247511285902661951168547336812929517475760408140653803453006897969355273455571382430999819012677162247956427814666573492863210276938527769787864704842233233339705037141958700811196692253657104257050819002559450443501918260295954059529393047765237345390900249280505712876950919302019871655904031338981719149353119626175239609234770018577108782915962080713377343981472742267492621434723388135553274137395211486389197512223573234937205297241083734561692869266888264828457417656216876197552222793370908012408718982857764994371992876542467985223074251174799153149474309059831889721753647697759425757305363203366360204913396433194297112498317352959458534680179611940864462458079547191359873535243718315990927046568827667147475310818263157078456142080356270375835042704966459773553140506505065720613213884732950237849471018225139326156523599439480828565022539073402946304694604428218994286161621577044219506486465602758811099447717274122638144301020651677681156747317131556262914999724713108575117718534567164199826892168671936443825098031964771779108523009470696332629181999420573081378796330127963751108611683913017753578899381771451881574263295367538839804588383857635353063862865219764613225615722335872504509600129645127253544520130041102417438307085309993169328684347855361925461968440683647896882826702713698800157125132039682999482405219626873163232412321764863538042943837894431099602557724009030347489933245102338163685585912939732172382087151627405674363388477657999950759186458899936389780337389297683383184072754594052210968706411854712837238564026845261682878195675653936137530441937063849107710663816002475257965805527332939225270966464174198019755619709898493460392421080610384506695204402116992795712473137487904921599826462407191526354362502461464782093922703461188843756180950575636529473448784500501525094134059822924575981038577657027555378860823108742636466784860273408860061510595922644413498128057442286588211880909436556773347304256811755686002000356702108723469444414486131599306622562020449961050545664910909909195477777842366506126588671532242334582835954069198876737324663167262372234071383413025084944296144612850716329380936168714670629082296035843503494478631760852328316197891503362405553339583017195315915335449656498829951576501327670489621135646204588170434859044759687957369432779751858390169428623648889294956206959460884216127981171578390859124388419498984987797999117193142193659907917684992664020579545763503972721674600487519997433640559112080260508743978315386001105150450846642109180089815447248903997639663857171127377727874551511916143881022532121993847429269024532231681636382152075761588615305629500092169675381920299616954629173095268621101758256423642367748158365116755848854225477868395628603944830328742083042510224612536377486864510645197419139587018750972413143651520238761049809083020605821274931461444008619879458447801311571544017493613729392118582006052670787654668843425471052125592769378708115658993087445139513131870047557215050386637195688535585527149701677699012399127212944899420145931074051010672231882884841599359429493017776324812753966344370945014434658083171498474752454236544962527731734042410496052553775343776581375278691370881487252150210600458897757541520217055617676649327858880973306285345718601908945246449262342197948013939406085298911204440051874170349061068517023118958738780001789099418240402052592460428547223198456177047530338070228329936930764737557141433873942053024055858195391519919256728560762526815176159169209284489594521827493098710722048536526479173788733041760928365117221487270205030231421378853279949214881424345839953698022168450400549137104632817125033718522681107985863027379945689811732453922342890783347375802044739911006490335763010120782870744420053386729513997232293833930045932441181215941116169349434638574920518210575776251785285037308956005327522604660322463829338389610584436159711520715510314058258651418126157003825180488881583057537506694691530089032587574806423464321202250834578454806546962727038800599529832427615338644263570949999849543229649071118414025899722987535903958191217416557915399518436380902956298980610293417839583099683500816673831064504023734587636407334674962192956536779472693940372163420128738587257716758973107325778400684039435433650830444800880691103248375008290342952148286012425938349077356209179392443042833503237118302445419234005020494811910196155318601424966012451723447086120265677780830009277716469956711075661262849823461337090761522509052521559409472182226787616391573693326416641032989443123456827376275804211463200732796035912766695650603362206784611774058652692924435743933075817757272559177991515223701899260214116597349744251372647578089287080107410505226356717800540760614074878644214917824228308427694143681828294590338734300292115161328197968103224706201154206911853812971760111009812666637554644244887190924125425885080041534347452148539301631265322936664971183488227256912705159341328626143774087308450650722247454152119214091558329275761484478593349016517152406902049991339311304424147853035888918747942901575384955842316302420330703688843538484518967652090975994890020965327668382145937552143696999428713706221908288324566865484956225064752251756375864908210357891673879782274516560890910914899925020797857393491925205051259315255143723701044702247294958088807548035193940918938958088352382241054607584944267566825940802390046712561822315607953532805995528628167540190606338224011776521029369582264557373460513183503514270918949929625016351431682944054870035289963304734130002050602485164547008027372753771385576721048949353394905445783733437297658922858054410840540500825468983662221790669797534990994990057487489694063762829613258362334626924726062044423050379390563645079015473088007857373215346135986277109292252019596973633821393562106743672546429679452858086031851935627595491850611785150748478397827864803866618125936886622055366407080577856702757826516862758934516310533326036949410662057450787002705733773827284210541899752846751685202960209593565754492348439198721085037775096014712849783157123313195969070775580749722517901193173466709123052603327044050144702112526052839770863048142795076572912573513505647872848837814519132315420358963104524047368412606261772600440631899435742344663210811259453276447045003312677602259045820942049739874695783831824448357875426521371655141615973684791184189932449297701011819153163713505226433346948357110104265690406964430991618539111965412495280862768558394169855882647645980116384142513370327152980905211306765848894733291334261629962874058589437641737749867962188287336790020912781580427556836387061070831702003749067616580781649003990506834027651235838280669510503211378512678637110053208039157155198267888561700175685055962460296068944919019677004369790085761245468217695234668780732542376224809794510026487997853508956501902523706575530979472184225150967989047268123385740227876662910070669580022557978658503622439115094220205055249029811921577027843802125318485662397319856473684349297498611187688643761390238004776148462007021590415557659357578894743990570599424667633632587448237965625337605449635402295751348367923036899045488212624713135530761213678894305686057887401134605722921252322389084617451575064078196186660853547115569744473240695475623759063732064026106711679679326207877599557498158122909031480448257685915020762849240860911495276365433436242384337125254810259393317990053012645101464617649744466817344509420865801527462675769002684990007511822619321906238221572260779970606612974193790503170566082675452109865840385643380135218022873265866582946587740956014665436330231211089686694906252945104343183837298394461045005263007817905155058857202424318449906415634415905298713573120405194949247187371600750307687422746933125736372953487744371063122659604630302168528089900812406558441790839406727366515916635578890729491171146937208133931455188337169989047414653634385568055945184128086733746440855830726973977753798125973440691748893618774825417095642698573393965999685955290507039214941265251202178247831533686241095605793575841557352596534103173305896080719828876482440510055171372140443573866490675477425741723237722400540591251399888014574026768660852272279546895832724106470738600587976067999510018031621697126654962573128652704581766173154059451296192994969019188861495586584426024258926581897226742110466627526847861927176190133417572547848278555419461463926784103608696156936107124806223385018587797711284661807342671945293843743554821001200221254779481226862646670420466541655891836441533724716587512658353117447684116637868435867959908634119901558846530385025394678588388800887799715816381915586154354742692096681555655159361055600336377346298216292604655166849079965284263174505311048339157366145123700118034620548525641942217716513273079614973005618789780356509555292046922454719293853517623021219930606426635606307698635184542680043542039021755806271001702788248201477141066459351847187703768768720965945103125852140050729922576353107433184226794624286253157561145726638450879933363351603042653345226580959598406295007758108938008456111865465913507021966864733926085718521179215371459486716558043282907719393688080428774864987855597727629601379331013306860598834338800818211754376924292386754980413808188079849938848696662612580976016873333151499721771391136215306897836324254212876456794969394707447458385061417963193491406134810516624464795785510176662047659328398974417141262530878958114731031058552087525177927456030109990627666923204800484032533109468822180068785257037370811536668820373365380478891962492406008039368562106506715816312283188857411552816024363555703630316086884337274175296838008147596904630064167598215860109439905897492432591029759189157108255366036105193648171068974762306733039683069358965968754797956786635565796512085058521265937553770662185002852604048150004777632424495636573572895687922236610104898504649790288050957571781850197465090681948084316961349255849536017927329303922456336666955225380738828254657376952190905191679881384972181760991772386430097228229525154791436788898820877171803484229592133007142529785038268204469622865346589535852134034454783165044230850997358619816774085259881246754010517193951494574250914937667123890377899552287089978818110515631566442239557595238162657509946154550751742311499528993286531563433447294108741173574399260687122383906249461995750888096666898378507818590548142266905345679379736833093575029024440856128866558852539736488967834596595707022556324697451228741374242331853985286659496778103072614088602041352213606511608229907334130367426257971307195840650325538075497390561664183932954405794562481583356898825267974614699965932896040143420330947150052957818673350022699982772980449528643532714129360201590951525991318652115607006310702250952037122345303992207889473557304759547585226511852031863742936341648425961311197550672410553397361280943875158844076656692367391109477377993633508916447299023745567350977871373113363037857224642161931373593306849159147515931009512943425632517878526838129115267425264269122568860901942685108434761463369649325266324632879647855245000944343991791672358825453297878523411933741238603695456472620584504616953137677232628452316271164395072445608758970769858250502169575963896724127410712277075006772452641572961575219255176347053824007322547711983316546451265154877570469254387689675049400937314369808799018726862373419771525963420094399452487502952598007135854107718348271083846849549202186387336156829233763707386530958718073547401978605349086726690838535104143153038861708285208210119926221190760651571283051045886787727102328059453648316544484869785413601730812849184862480413250309828472400305650786620198228711854104782820778299736662051037374558224132956561177204361152919781202712310998330620663872357044755811412689367318130541368467936298584388149395155923008403090600678530644769385595494076068732071758378296862717054745939539442874265439606958619224814415512126488324748900091221466741409467821796726532867137523108313002730692474753265949760147406770509929989597741853731992343042816331556952937433112501321397913868015187130427175638330147587999944310893957532379853169576148536462422829381199090687082611099400550332148653486045243219816427920615348247349767422183555328731695248501717095862342787179395582664896385481161281721083655470613639729212548526155014370743217843374404075216781497341900162972814844971480656543875178932575708609659680817422806083023806634136420507479182401086863919508145672356670553320818146331006281529741490679104811068938588259289472122555109736118099835593328061365721624222771751544878689002863785442092996531625199434417920333437040411755487242875448388398338095147149512039730629729299551882401867734967086097874391541936842140396066610585091508019178715326822279065491052656179284908451489199868161074728195861413076925871366807577931447628248716174166996954206460008443951422601584603186702486759168590194044257227541667086444259730677523074838847052257278476470146371085434977126360521875276101308983851483464247623064707732068426936534523935065104448052364604451346731926612942401352166023196459833932783479491206833921426994360863979615094135585803844817562451846232011438554039113372387588607587540501310760393736875612503894394483869109533742416977063972135321269372689594061910139173470393889580928209240869824850125197393687406442522996038746516659069677306564572687692920552971100684888158685096816239636340788237686871854248379877834005626104636587643356183646540853101853070617187826866600612568403610410155043394140788833988349753682958934233459763553242269600555193370453432809208117967777657932166921990753971184889355611465410067263050382576228836469940395061874399401860479460371879344980130336036455611218537117493883081992573336219277671781206967444223875243769994648609894098882380629195286667259197452646968152753527418424934945762466597450592718778535416573189146111441908225945424174734783827829354787869001508079270868782338088652556416869881936562037872337736815806307740750152417711753675727244313445942495340306425754139074752786872184079041364114759811522256277801797283514458157889427519882452523850526968486522330934567036005558485261724538126865129388829972534921035158737356420687982814972325179698720732948227991635533192815492760633718180834268211130117128241309222261736045797526058670107408474530415657940123924078317120578516161238102821821757030824423323166850728570830541106146497381198628771625810231515887606614748184268214286180010497070447260179215805827767755689757698594733366503757920327874728747264056764428900426345379781767199463725354975420913617669671009997271424560404892632940030972077098440116161024590176324434842572516489157517011320812148726728647870791215610762429829180616799646597949372679664778947334559043315880968880247636141378416136204178427630703276766099997417337163830590840221801286395731861490783411702784322767024783051875087113970690674443162877170528767369763470550305566760256996264842439139719483061623391303222924091369347587895234493160794953824453596141583571058209829038461480963671748831726820774079668634167259010988239972670639460952332262175348199528629496121393882018134632403997751950950041991360360211837451208844362371638000261732593953299580908024541153360264401196012245270103048535043526899164374830382701439548599999866777000737830755388401614698669381226367528230789496901431673007290213438492431585643483358357124471902416715008540373911208590192193502104522891513901949574250002449295854358249366649608245694191921103160670281220715038693437229065925706479836752469123332370727911854247857897790365498854113928712981797070506264007285210441831035282659502915163984824774048683222083920827624800433399879780846393229931479273430909777388032658910909551888151776428236507713593918612650792847623266505097108333251699817363163432836530754508322056700870854587158811093866817109341198273097143740310801825774827331276062987302995690659840898694806094091784996942882020263872060544232262786669535922587773677963141398656575353284344267810698567817494807336238347158262908433265519581627999233122048923290426828835269351358989543184472111600302303295863770850213570352827553228679536093342853241164826040598343569664742527801273006294762048899620981193537268699799572543863054146451903604743207678871952171469075907395996225521935733418962887345676494151809299948342812673321690444910549849991655576516470815224941001229334038145885435475670442183984173148350683181583745870013174757181958738916728644899581485073796434220972650574534722240951069126220876503877012718458638110229572074194870475741143220079920242838803121801793965565923924883910670270982312541908185446731187574366466885105569307431431336450609641954027478063857525708548826465191850133868170318547214727329541646943820722793337725815272267853595890484561467679525814501319407652416951869506996413000830555044454126683569128281576793730613293847736802683886472696083500511074047518036572211616002098279829201746389081001341068331834162473848720431842610961031975705735975196952238386911883317844291285803672936006868808522636610003102114705603046994364114319913441707666742560306122481509262230409881982713728025110895697602746277067557497197926152565747878714549959324720865351218236600406579937965136279350024166126227383130843762176539377522468607092837457883821393572336442745938152843928504125975900290173874770961997390410547795847189315802782002064364000965197008897701517526718551431000069267460659346284736326061245310349771471632437705326723916025896716013376775926473807717564848486934273562891519331916024849292149563310882540190405657555801927923200346206898968659517907202993935181276473670787955829539898770501112821655938645154477438681540881345954912239012653158809443745898870456895371318289532020320526552560307130665604073236260438758267360541065902812028848416667436271695535532204683533279050967918747007982037397408704139012985484529833234226472204379545820973154190996242950683724773778269130085646576151043989957843093949521996424686685262097802923264633342595266079128062028976344641762976511146808570505030566917534704410124826592793248987661474425676207965452653127368690030200218363789937079654998318230842397151887959151833240718707070299602425022408948683538047079880135322595592687741785648893867134664153105913409875503777644156719151786432449939389885313756146194122787281715172844498280919493898994408985132323521394707994829271987043897475534265330466023904214880112263769041432139015553106645805149658678560590448182870996060137315667183095462498252828503549249578845000048597790956669929303279488623079120385783289558947595487423809250960614237779932534194499319470876080019724992944531431704073086188716330071187823885921836431002822505132213710223183167096154263322686340542345264459629097896198964172101300430483436770296680434957955236487183867569189094067442372826936803925307893429374225191393829910950725218268341327980252879680189042125454880253340301872417136280099625169589663587041264031838753257044753950941776418694262191940511330838542053243602014522571224442289143719332262230111931170817065836348686672334133869287062180750748844359747351006784357759712965425895453182360394145729887168653925653489278610618041773469382540818510992422026910577255495526490801461858780928637175320736883896482487640138198632172610021954525641563021093993610753425538955339436039951219753627256227484847415525906479963911582206074847740540787493015126833742148548067617989303362290233122364422378738436494584889831218119930457097953876551871627276592709298924870391295924347501720430282693203747786510573832562856590929902581399628348117195280511308947172803483958717383854880813240989424248663047064428786870491311909470255877451800518338317738168319808985144252757004724480981128624536896043776587202453456800895169061680666360684171504983139026372958617163575550497155910701501016688797140005352159207410812010656512937669811739513792778373751799878823523297271910645892694767796949552443650225342547014218850219140567751661517207567639339024647013307659792874004168947653792202302607561262105568537048055356822852093855125824043992027105126898130372509076857789620338578329596749738648725334226045270888974370876652976596051122152462942197528382532726785460178652446800847835166068833303548832404969037291822045118591338270225785173578133350122514505008784403648970232200804938642878377710261709094979008270644180986110239559157817609830476879203818223167893767981608692480510734230397703707281226742213764101668932515084852759729609154247451249675306691741761903668766051770338556035210620876578131126061420662221994162807668470849279209018215834481146659531376441285063696721578333633541015040693283170201943727861415616575531729554024836267342493531567090090765005221742014997153490928163579119219308559699687366353207527647689398796508925581950295591704696468452588972172819508538038954844223696377886342490545324751979545299764914693381993944352123752491755515131964943870567339735943730481629400992337058425444209733731763344819702728890867858942989523839788607278268859558481479916674357154377488297191192650572191845902276419000206920410366835566581357441990193753484779545596259193818778794889844153722083341286365806490041578245244646779719295936368758899861380820925511921870475369221354391766176434248434429474407348989183866751060246357874790606628441817690393552983155205428992095072773329732044857523495250228807299148218236644258707928049208831538405205000792855728652480606824305098952589364359619329386160093060157096574723326116340355180245227455066779510496092162584702114008321045024875843046039082202725755933590318316855735270953684129224424906064288313967170346749721425734550566076045353594240447566764933026627303657505318638194222847583787493126431220852458942109792899639831030879189708677960419397834816576236852963605709464455169635826030102382518891947799582556345584163438777987385834174746518114510180157473049855699728683769186671596150855668148991100456482701216418965477081976825956232920959209912863516910047310458936673478362271172654612877700582130066832786656693644608763274575110241776113620446302654686714212620520996625263693317357215592166009032274750772124813152720145547469218220299687516879434006640962027891361417374875729744688040009750111480585945380314638422094812129860758161161753700593282097512757101034193170586159779956266935078493259447175039193815723881468479507039641672281146921877998548109435015572523776644860793121570603889981848151428142588638709001615135581848953878164657343258363514403316724453972896651734394837352383906768805612527382575807964310890514770645324501975190999066170115089205042219200499738980283970819541481955285490771986427774896634428555584152702445832216901575531320765603799421943876755528196812183804701209374760475751856313267936421617789114209317177896938972638502162878493823015859096897779965197144276972193220376559297980984843526421034065373971244050592266484917295817913628223442870523331556753596070627295976283866132009012850673063014364630039626433316439202038619789603491103570741150272209551806601070953450661628027523878205614382151353299975622104712322014689308018488355275037547890830954121542303918000256182021342432778899938918216804231421900301591561272279701059354500440622044345487812117397940983057035606785707790692761145028877325879223454114934934040690029811394453697134997128113260505685085824917083727418787278998208685096496772255178427826289706663198311472833936528868436991812651348342230296685533151074462527141603462547999815995923311968309942007263300717741955288470542288687532725520286989505770980222494470548400117121527711559559286796041169190910461843728164412996446710193276548406602863052049389284464987945122845581445431202565047756075717262651998169713794556257035163447895924280963149199399845188677394213362453555125823317973842373660378665419335827861394837505224322428598433150431596871271182720402146047062066779958694830011149181812530475278143569531968577227226737811327237468017369486608131271195672695222874258477137902482946046804158755651303367278219917624484802599332236097619158444310357792551370908706601589432339303167915540384226693191392007440622610958928773231878658520741293357605933629192415625858746940962841260330098106324385390133100514457961299412171730836953371238309739978462172845471803699465194024111369055031408217902015560596100011180043753278006117024106675938187466776571141864746174394389307148510423762040955025411821913223609298165551902142879731830698752110936944381480473641118992283494820548807789214088869367655175000400502489530927153493248136979306138563196547616948468027549105832848884380188195354349564915919926666663803341989338028471978506610606797288558929288629980898820973180434231793945418051557725895620590788272215937496206521336034686253033757372772739191687175361643524536301909726448912545836569539250216794481103209152657304079613554220381234911910310226842224544776097925927049171012577050616885255394220876995190034937001215770684299247337752090821495096709078824985178818452589474526736153906393246625048150240587730371857261355282636503370247614408269659828274215874226011554214778904816009802980206399268636370288856630680571461949510662652128321708169622742265590425974340659034979558411880039440597707808520005010374504960450259300327403841362324947754445000441049457107005355469857361428389965575910865822100798618130211412709665583662090470593394314533819178085977346136289148128752019341960977144927887820367612234200031645013622983397018163500226331069398061201520096424424047541442380339884944665578092394829066196705172828140307676459414725760742602461764890040907115651478658910643333177746991054927049366249602883175040732527865638079654347176108083464296839889271587097441461303290301356033667954001728975403698868588100280702009566257825391771580411420508034137741271997011978432625371156816215263143809107370928810094506235089550810876669904731388104761564755932221990616590498571430856058993760378834636871615834995208263452703508430352798284611469124807657212635707821931171259607419047090599945430124766964935976949939567500792002597103004444782506582417780871177825009936025387243243690213454035233920084601180483918783579634117550897619295366983501582380203139934146088499041465807096919586061453374464554961965669527755248260238117529149766742300317121914450600592996139815017244924161855252354149667693657675121743921771486552305078389594493983923841284745279451073133300157180309863557946277530412141550859201681191396883887422735635045858610887334414523316329169319468592692640188933555275624797391900740133890119301620787060199080124584656253776543245637513398595313620996450102393663347508613084933099723555738129300424203683816192867632043013265285074684177127081777991806941278786295869421378570497580110253882007951857191328550496997308019066615089032055260216289637621842074321410983760065105836464405378885852482662075847323231020519685435578858956344878723404098740640269055706600826964563616567174741469573298514668560104857139748838141535031882218537270219948744090153108521550105525835621158607325855020637948575042991444378357586345520160685606835547297329982323248024758482896953312194963727407595472739545120981924844361047908609182333480461675259930944453674354087093525993555236250505063930198989566437310002460137982495983993040877037298721975079234924910227777449509459262610134096062833689034843803250317952409291995399866826860571897961117551562254926919966322690123926610597938409923048337578834467638966667901041154077817876460917199050249243246905450359145763429752656555578394508999385760310298843555953901308071228554595656458593860546963147084700442906544749411375584935358891913067612062982175090665691567491492504508225482325202906854695704907057480430704752373491228334333480684410864605018487937411080343079033915843062744191025005760446096019856020613764296766982611846537710852546016505586760361436482400448019375496199903131951010157307249346346956252859158974029622861944753048321392306377474097909516505233003772821747092789405259007922966193072604803099344620670242847193772359409671123347082486238384344988207063407329863525919290105692411108458007313031742513441046611314075182090434068276857260796662741057810985760034025888459998328214573010118861239639476255618328044259563083307385981604170371617281932246745549094654972327860518385252345710301101588645528277569244720898915523099198858176478831069500489612992791609230073873963376502372185225613437334464625301424688676033994495940161517591756574569275869056407919627250876808558665161681386478409793644099663556358476048672761135912595400807577245420794011048434315430202723732113950248024968380631648487412436858876985394366655109276402049348567597520356039236530517131589452209828651391382324311966473642170954246341142746856155806283663628961060102517447769707299669202878106415826329912172176801371652148218658356462971657731173164582074964778058273024140826220528320559251386173735156974499420959298564851262252648989114661181872624633581092365920720833905535695580321431056360731549813453619969259994275380013914283554470676572923880087987809515910183122119946189869463576747713923029215664999463795412311575631761821241727538467169324585811759549896150560286055853624463688329924748878422864319780625956086139833457557392777289537206160900248091048767588956061861904759433412009559249421650942093355127536297166755039143082308128631368317543227358967837603471271979926084609903087081953712162180969133811409641754332827224388657662360882224814181829346248065319583990916229282614779732403027124651075704728285166111196488081619785349135141160476960029347485091402395915075841137646215161966868146498652268300848392313186506345483692298214368747336097649458451323017189599702675075180720922105804216368099970083986390519849408953052944919883340537712863624197608525660053995179988903157832059524318237555963584668338638800004189095726394829140027204614442618098314489157867628601681312976358137161657866242871059606409860444909541407825688848451793420458149545017289618901001970818914755789666285668458776371462533182763575789635682932382355830568669220108482774964288384811194469428243243886560698390096309175306072086149620747287136417804407014187197392997113430187225189407397164395326714049388939162637747493008377512548966563001489265938339476413147406436343631094266630134713920885013914957311167079829182485191151396379946938824936305463848082695301581949625527786525496272570182155399053817731883651323593051945505740079780869715352662154183558464878243963567967603648187128429966228843796067700517848570930300993136971850798071627439024174244961977861933793443476378129718128335164408822478329310865545991247802320862936237679679718638432992889008919048769096242042669375547920521042419736302930000484851503414011889123805731296738999769169299212824626776825010540879940804452837222258490734873635748224928590833022988652279391326623253491628203322617739163104627403798767210346276241818256030124578252079757702648760455718336961543387369284522783321167133606424013566873940713903999204421387804265315899137995909695142335098235063805115153048724247215735665217209559058017997831026644568887509229929773698363063000946674633134561589472280150395617496220840158568691082135430477386422682830858054434181659172238799496220089848338782481481052650007537450802712429787472783201961262098745839289681697222233679897232103814943881495465052576197496217528440834464391479583920782019290855295653170822970657861988963137465481288932984631697525196675597789028663742784646883844053848168075059088317796141296294128683789844356476944830827478512584042878364274705925548788716020788659733840852739860106370459482636218188635060373318830058866502086321383644345184751569827791410974312216039382893739860501964519384786318879899884700344612780204012499439813679880839807779365282353208276976724764688262543909363377414719239901521689184461805760893387736054180798827319267961488173517430350897529027028173011731969840668119349586258379306246964695242278076936681278287735828213437713709185943182260250468362601981608160597150347352638081488277382675302109297905856065639584589291514445767393155463526279792638200050329835179118802180589647949491145221472677457441299985968419278268101722541924353560710877284406717513539517344045561562408042624341129223757092476717302645128708717457133887662461860411460411105525201393082946671077984288705342615540034403788775310566820717109501054867621579531675697043103373090518797413814593855558889794107796932863846343548445184695581310704024955926063706430998047319525978372172207141336343208771944089067607593953692517073024399694146965896789866084950902239392407366723504461767532855440121812342307263625198748646682368607620111940383583704294067904127774265900126919036699990784003583233770569189031624391431508352641714058370428661002321438537839403955315929602494043818724286661926943870843507952244665807035020761127141954029468450616319051682983944311208478009884765358338058835319544582617759410445132202625450439037515829803859943732883908812074224383933994998045315101617059941915950172368012961683604157151614232549163474234754997820991698938463309169721064047631030085834011952015961923019456196945158269160792653289504767910406622474044062184126124384296789250954852280046585227423187074689939069181130527336126576193898859227842662939566555965634519101399962265410300549791738347712210696410453062803959028974297798396654136606315515020200315858114578426925125482423360443989396404511573848795897376861647775883460234200800440572329660203421893910871049274502869739285292717423810780798928967716478636021080556746559438106888620588560694146961838978367207176876580426007269721793380062374036896199826990457527663279971658427899692570519379093714285063808345370075257060415224785632809369965027548690669954893054761666931192388998393382957039126244338927507719046838083266802157078111431748007936785712784053285052191718374926949264433871557738363400545764257055688051254800627851340236128310847079787589822794530799385046978676620022558188761839566641361304200014374059763231669380294853529347535362497403592764853814902672166326728027839949810011506224566835657692399485791856177021164882552345871173498887084624455124344688156811944209909752500451731574673797932070797083540342921109871429043517326536139827718043633485314510607520974155886743300692762189336545187823140715745552055518129822750760149421330863001519020763717231366292433126258426246579970343295252204689202829743280986459750308844969207015846784711054627990983382883909742268352714272184257338366262922833723241540299047696306871894860122312092829960931402072614967227305366204952207362771265938252848946404250891522353355932113150978797272568290746329951755318107129664808825558140193956683367288168246383409081447104494790547109893028198036473026982459270791560551600670367676800186654748138134022521322276971845404033835103758500743401020590004542410636217907598187011323656502745706043682548308414674219621258258434409806294677747143903731250224517275881973983419304221363783781519369114617016460649245170195049051225566625981013249163924873656581938831015176072326338355527800653747820094660942490057317454576330738226793438274874403869863397901468141447003951462765307009160567474453521766119174405305949976302817918420260943668651840807204526750687542733569858943864564660633092018468763115119683662804411430376637567226986117156427557304670636754192956865635568555763688100447836863552458125467182302804635958626747356782254250238307560874862832653527515059747374386762577907437945739685211415903834923961797831684311767434947416314663027507939061228625275232819881598612986778898316837126668948213262280812121636470850039974055122497542688713532603042939138057131765459041879007341237719707928985983621100469281396587154240218695104214188881548994224030625934345655811030240739842547230013708342579655686984766798679875497583523055513897914836214403497704297815176982381004406727891068155257045508667301525873099443497819800894703139709321802771484355674313535332678026849267023631971532557547556613363232983123351004036204279756258853536698692776578592425647890663498152717172391559703464800103881845449057964972690719528212300429877512953416500021149222205340619938880457472076635529349602445129465141443661207694749323961732828594858364688757587043606464481211900186214023997668113829447798302265215269699967058154929481232083851573805707135243057404010911733610836752825762080922813514661838008846259052497689604899118530569966879838483636252421180113728034050960844032338461422909011502957065065327856766790218216420239827510512123037609408313628545331182822702566268135407916390649173707051720425610613745386674708665463653820795611047986420675805414897848676445514179127885802302023385779679434072048204532644383712295031224134552041768096655952365247647692933147856972175612373005730668085440223801779666885608421611515770453679851186054071653202341963305620516081483461009293524097580339140053960765550237750886800138902406802032393550747302285004142054689957674948929402472110858338421046947737177832979098750636667159231215810699403115257616366988443900652968111482209347644417054570736189591491092731862848068643863651173527134834639258349800230496163111449688414060061040445309749998053361310636472311309306670546327977642450576020719341461404436937969618925739137353734343836569378546737208512517051837966781098210062968573794312428655646613312829926893054218837473647141259199128071110168011963368153473045692707369653180404077204705972554594782067245173785607562599804019134630724053295028655183386802496339540523554371046957854612307495120369712121804733157449058207192936381474446315778471964205523720361063844951287974566299518905316940371980058719043190445026063894598813911330533855334381544382618939794136589932658767017475135375143200865777652101955647464192511661847416173514556042758693219469863907021094758532042751190073066990533589393275384853904987379061543592385146819701987990961517991718370873125437680369202641920474185636218239687560451254600905209717850641499687825761809446201491983120383661968189938735989115031502363370748772161986022705783265317258907637094169778540493194548504625393148352995334150721405678243719084621255500533591531305321805269454130838592244640587616048641179006197097042093298522515804217333406055344315574483494671844675992094950079233344667586373151458752397517430144418384387892400186565876494444925552764307819913305470008044150035506692382260717438592383710287201566826194419781971707579362572960452574105110923645537928840895417611185738051498178040128943248281059019603716568095303446430985959162973875178744066669953849472601259335385440488517989802053573650237237131587093358468147488865613852992207152617534231476052441951331220137128133376908337745590893052228157630322835097174676071825992861110007405233347103645089848559331143554179148391837598197574891919544304550312890734907693943013522492925771874888146961934357238193831711129200817997920397411163495388131816646418974316632564795786380061748180739561450051656504523900599889578302043576972379240468548880286196100279248534552681755846229350484567086667783417972203353163503881879810056328434409664547620635429359848145007288076386944307764028740975004423755159545327353093134112365223397331869745101891898464576330617992484793009657565082673092254982564313430870265488636825403748179339250732738676900235087181366121594383849625923371228490251896519974373020798897335017751124242053040612834792435674339848548588295656266923207370020725024206228631576152162660942139773536454389851827185051227914463218711072653189103324736105569147117148169200824727931776216567788412317647140791727435550529282628596870417423903013471623381692615523503435064987777463705292222524900011157888816342401922908314722482744640428771278533777018887247052913730456175342370472803220984931459288762500766953687536761706393972910851246086192087176499935891480724286404396420184291880782607155639566608591062423629296040897303113253960121554029098246760746203138825581072793838154435889999071027270749243651274491334435473491157593255864151923163352190287069488710039236972708454162959617733013505756185629737076751004821909322659488251165355196976215685479750354559711138221170476455253259823188438197969283860779769368005180439151130802312338498165527035874877847888154746084864418271805175496476245216001795797153891079324777898297087965757335660888574749904693932389811387778784877447756018156910024247758178176348641888995570883878363835550799487331296656450136237067265855660575967203274138989877854780391780376553690430506782191293713355309796208976399269925456844446064629648598673955217551519437531253967182375127931223915807465512119907229595185978941217184847370068828093788409007552958199168306868310940126801074320482240466003019884902566815120066025591577639587137520377456108483898887532066225969962133223983252701032777347410412738297120507729653113256063296571557635774846521955674094011839421138887473985690038987677756336216959359753014093335753383452466551314017983164535983361294579585752798249710702319557025964070475194610504541617539997028804649934818495271651681598127185169930585032677833540608179917373446481625023330517987472449871673454937494037802104129790020842984874738491171155871826233159498298724376571213555895488823573887086704227508364072193292816442781182759505518442794404692320255182595092895426815953666544706575340092818166743517600840819935925182061040049333468948107912823481931683438547789443836475814918850313118426947620740882198492240520867003450523886394014364668810975459612429355948027711476466207413351797736608363372204563093606638335287808160724697981381260276783790260707062236644040561384584812474131417313476126541158104322901760204722855881868203006180521435706342753144840920918793638681836099505759481884358944651712843600440938394661996200083242835473689009863140020750046405350665562383491474110620845029204564742580442708233001224930539215545299101136769968425411603135683206651477280487942505726926028166195400582039334723991691130467070897360993124172336901967685572570850212841920587314049334416339257634696417315672947864427317662326618778230707521053774930081800573710998893914206642471025813063350267483750091574364611352298346205091089071250749497766363361131478916732391397451214300273509217295137802968360170158124755303687514362989583877750661025727392560614908768656456575878164234593641625406972713179789196950296864074852592206176777422232704112799573061948497174265250809460736298619401551705130068363316294373612918183411264644353793906451077592571007656856748149227263980140808582158452231418119943651941207127939800148171702774621703669633893258941155215486016954956436739801782102909801619086054496511109282552187448118700445820212366148993628197093015406151243876418169013265401637163042291148793686343478483780699097695169813468394937621747535341506396942075274275483016821486911674004088345348586297599173624875752920061224592073682476565791868923628804524154925665320544768551866044721113707118488346782683578211453697681537437310759367428616639267183520257205146842835723852164767338285320264580136480098556009071831620799931887971280517289214563811021018499992441855303638734847170611514461409540951263627450993093904132369875943963531400260990791654623763452118009163214577922358769226390508575514424456994184298043248156667200498111311631153371056878245723820274438514613048111804618769358539611382702361650170161548947767997708308974369183763214687980492866579596341857596396425377087009852876182481924278399424799426997277057661614795106528150424793005726500904665699298516607573439136236653303450911735733111433326269215744709985470348818296926010133166182949035589487955852128830494833209481027276499462348761154001583315901955347018314133783271421488136943475569696910640269978679365482662941325313840492135846704902708920881910455499890510910356071103476133785288670932642077888852779684532972369102204607668925829294414262527630941071287327664851668173638102788849973960543369652630162717254413786462494275187156757116619042266112610056927981473711772236212008719847706853624250470532020689058800118200270093596316049050148221273286939396275576290248857960916228791545220995014976841135908939731871534350582403638702025579513127046619393847068340701231991053576171477938763412756184870866436533513740418034460727190907856340221878254484047038616467592144511516060219986511270272369116474868243681642879430582116880249036546154200960997203118785696088074606483132371820134689840716258695610303124674774415210768368961232389423217506001110723708757520585181817705755806112793966648177038743146071412705351984960088285143086996586379279460122246452269936089736913553358720981370053080556509577382330405691327445724788975667724007097210994088125777509198400102688772276054976710789527790776982976428208973126649293991660178158873570665525144177929174716970586703804783379331232960618000238541158890453862462632820285709361197765761343716576121697780214359051562730404062947212328965528035499671201449017954134908015542543955455277874710760380346338190953183920227579764399699130212969202574580465875615838544691099481489342180984925201245064988940881008750750654889318022646094518993413684570792300644959971286188070444163715454521546541742664171045015163588137992674226956529328395927318129018347217250385625064944378514299906410936147290836927363145141400851318316472472116826142823979133954321546314719014844973729503999195626385125058570050581331019117195830177876643875654597126004860375539923532573930794178267039950137145795128168697366648093143901003345299172367347857292442692804918683879281674502601747494169323776207270673168521514789172938823211273386054738789170135189994141398560765095529928789963197782149960304449275934854226162431390770420427652066678189758270407415347991832678341398605786914143979880603076088679739227626918173184694895771369956922060311573566684783340625643732927422422881551117405758569804999362123484133190425062498654180161736244198101696625881274274360869944166558516904759946099921685680351732082818637414859330024581240913018802248146376686084454333759356963468275053549570090011897781138380925268094729767770278287928245964629111189684120516863856722634716895958098505911153675015637612850453217936931791693859232871541464770481995335152598904041257520380156446752857329710733310291617970942079693051519097752828817002151855281124815165520222879956295906433878846702423023694365445091834999194237621772398022392097928040625106192842955439621519983319804707600576866199289498167080479467924308572750898877550454219698820043310428130117767959815463266529894700223655430228767113531551941910067300536563887897871955315558682568316791107873308229456525213584647193738943100477159423949507195680842611469280494849137884583559054766992415866651134601496408241802003162879973970060021858639926055890332086392971331877207678060919943017019688310737615816574971419375791004809536243370854394948869291985143861867450538007144174563321446713792579616267219124539271986809233996391455254348017901615341966309070357777243393979671381951762147630228764178210648625622798098843649556110394910474306348080069589746563747137803397230754807525433184474971540826353691729034927898814724864368155814184148111527961719952249428122398890680661508757138900683535022831161837497536420676748093542045492550106231263611765139818042447653367485104530104295725496428126612472804145293616936226200472653971003148298449687143053231825621460072397622432374991383802466067862191523226713679839702499352460301000653448729581857975548073610525531804850472250522194232563615992230376675389148067240983518342769694290108301890609439801967760347796361239079795706321688400000325205381964033897337927589859745170291259139765733838412620060321339986108093436404012046785322360181996379318151764131679269544079945304894583993358747547863576333156898947984409963477024404396094087012113060750762040487731367627814028872196168505804536188799146971292972328387285941390224436680512410202165672461619841688639469624828795589874461776844030586861415154414471193225268830763931173006569000276363599119345085322466840020355511170748568648628382266896144853064573216281489677787545268073840233216746238941739974134087644981343698196266494196805664744202512727074341716010602923516181942383522037664766572688457692863555028598409628166021785575773130400170927837736270098840804584877595714807468229350624156737180094960025566546761139783729196780357676097769229114209444687084826714545554891833800983545541607207920258141605139895540575589968613105365193423634968786621605252068967365199538819940893657975878079879270694439477231120079270554116342347741457234320527771715268022928504028575558191211301453162137411249457780920450094843653711596296781486560619701223516138589149178726542105832460343564979605785298566886560898160890475067429118828591866712766389691359730504262322353000887679407402146598716352529830625738256921530015636164352407850025479246841163380666630442745896047347083113164964392079079994484347202073323337142170997610531415926756814221430187205335527909507346954030667945628524463614249284786025961043080230756035679768597651588570882603339232486883637512891111636526796455983746307831131529517375852475293772081406812258857432622000893966679082632831949159505191933412919897991699466209224133949766395755103640603886411012314699810033990314544545858641443152036144573821454885219280888185369861782165273485363779962924888538049495777488788663685760198903299149075156978979585303550242952921400298351858558163388206043198697656919721604581580854600813987650846454649693780156106290761180873304896393416969686899263943981498343475680218571845413237314259127104178155859185549354259970967853973367439943196851090462701176617974607872858198179480313158122417358156834063822000489550044744293564442113369587851685054990850016048352309859209705134732841279593791775679316054903971672068283082322212208122928163633620697643154975296833092628746177915975728047784109630909553974518491646164306444016629860096443762675944346287760866047011986074399007255016737423399316485200683150596905299521460939925192829242124421710739847993566653637070165376175438772685728947007961306355140072800411988445597631659568269164331973397134383335802936309717023870915007823243969400582793822122534693304086782856454353769378525615590858846683591038801112776620203418208298885038140709896160662392268535796610385160472753568832392150347844547375331279011514097988408035927342047506319359890228361081802675634613516116957601915175166173815693648665742318144061907432734750279872500524667747473395586221753973830670438841422710579856353141936966710335869380705108990335869607015668370095858843897412567287989433673810938664498048723330575302134193847095017999805135554062139083531689106190884673557987195265417076946247225536798259109042884689017739372197944182145179794023918922152298497846823206003813620884657852344355532173526051885699599924279757415434019699490662471800494677142175794540099916843248888184003973291787810117296766269821158399097385118416098402515765463175837622446916393432836830487427827584153680404032142484116386325792913453216986223940304757884315159075313154892942624589809748672262567030347601156681999911402672813972387143228474859015847580013211319858123454174832810391865953493992910831141090547512780157350083240032988219529492852934091175168347607824181616465888203363675772778244080046671136990193664351858780710676067248913151184889128354835210274737414032550237497062134310863048222398566865659143718117542178364522400610234614891925188326547029467377923102405684112950025646415113093306855389973290463034900698039364222620883997647280593353408359135209975646364743268716034769216534166583440964065767818145187503325103267796354039158255240409004049588303366015564644791760848927071217374748941944518662885267213726612880639268593323577399264878696832339907787762850218441401571143264871500809525270259863561722624749682777772164117208351246082238041261444109259978699889063983428298420958091835855223112737645219220635012359381623674414412282699255644984142101425021525552235824581121318409076187269997803526857771932582241666647752182743633338888332530722879006368988734238027174617762056890922813500608409501571277371702083490141199677352371941028297144454034134274469987656455549191643490879551816437003565289902862761089769089714219595509972288190839322589171786383183976040311870476417388164336430158257606194149938495176077726658345393890358946489232233055152063027087963157911539164646644947920450863905808849041619257122318990419422268124206140408191058117178015266348347577891560744894295418604375790468973227795349822445692519920683771780551067685034783695133944948695556297404075597376074175672490237722548099114318457687970074252130961880216953839084102915984411541919784216552735087875420452649672397733040949768364636175650732658875789510500582238202150704570897931817733723410614515027060117841174411341180969772373329730543435099346388222981742964412230780618322822125590681300877921060412000509779800739807395394085310559181083169183783291105300776662896119597454296475351848248967718618817117530988536056921412431224448849235081849892122126330540008857253232669826921882699747353751868500256866928146501072158263770820140223114856649209460298489571057506783879393053596049923243762500140242422593794504485926040106851068336840012871094923144917528939994324794556346551196084559100328790841961217699933555505666893260127775762605867636356923224485176631801381364030270516595322241208180761952935038394125756923916801725627720149290673757431993145711611371796465160062791884463362085629616340235689987329423602194517313170389852362500996633684013577399460798730348436210235152280859333364068995286349895865878442641197362345167961725997345959456584056831919345538535234869094727625889374074975274975430748137990429361293869676139149096609421260023685365978184651599891939516613257555004040160200462660090553407217320144815411083354552426964552809912222151817474926783990140164248503143971603894746118505980624839371906181216763621266628192206067140092792316857597379988743782318119198979019436823645278335083808987188169657229200780214968918192953158788605790488383057455504186337764779089811280702165281677349939793630179734995081822640112050371456021646005011519822741922514114188945076965542812710759067231701176171659148523949787312078983514237576453499927142180526698488144384347522504295147482572446740357565486208861125689937721932705419393382015474685854771669687351429042613070982861213606239319129824898933110728708252688946283801716951739628946095989070035679830717252081168739046451941951226282378142111932774907311818013702481597635994210980211980655908975857570387844761236122964095223578250519585794021829173068936014534986590789004508746067077570362359260732097902588146417106816459036588417767548712750386622672661562900706303431409675101943525728945272871387013749809931483840057976682448757539205379761481834523889862249564941517531282211771919733706082727189221903844313264552965893708769385747448103178447324149731354495546920301636645754455608529364527480620125330300424317152148246670096048926735347114745032250878689280739899056263463138072836189744097248290895306988833040219956731626337442232012660925055010231732149185566065808632324274728820841134356377747778626174003513061984203217360038014229795884548499601054445541517723813428817149792460401960692174165301181459180935926150988902906845541800590083239651013316399641470085225063971127809412268135659287313619572129902728285787115364460484699627231197695138530674681422825065049174001300757764591818909000112425060731649097536247662483410765538968790044956007836216567461282373514786340455624389487827844647243067925809261132440179053251384391939346365711995671618211584737275679130273205634367454089603536671594758787538152357642189228346066144297091920200194192024946642231590661688497798749830768235318187449728653296598862465410757984599292920947132069328948583063193221025559888367077098597180081750981535213078880175387142023552469049672414180396397190366021902711803981013402925564212142942673582126679122434485280271440624135507512287224890887688264444907751968586367671954664063449026334175407084043970823829736206667200752439825935269924218437967964275091341006486427631812792651413713790784791832418520299748932585554348769883288085541530165378788288165057730772941953533781283178054584716032102731065676858678024174151681323818591792994860037786266711972042109843666917328648732813166291761287932716842138274015981427534751688687269580914205144218666556600821198886050844244293636060030375837503762618688042368814244417935840557417086291870475302005487180628518700192951123453554475162002789812216261526353019934016312743169121427017685084774588549556072574471199308712796633661126514230093582559843445805987870115729113438279833601392368844968221895010132064595000904557637898231245981412187354434637474949563430505766941123761566926581798179013226815360034270669927581121105077348822274408933609772293403685883240625481087489172739383215371250186554255414740412164728698380207104171222039264738575197218624947589909398360078194114716229058120557143526676204630784340846249468021388904967620759304915243862841588843964636501064431073488002582851688946133086375295448835570833500754565760048855816116824128122210557520696658826382243228875174792169552619790970107279825004389619341432087230284163841454611171003056107153909305381671760108366183103062874691514181669330004514676208768945707324493953141153903516950196936609210927567300779016072530625878235808834365402925360642395059028730610969684080814089693890754227148604868469194936640902085915916777544885668698767828491661416813452629034990264872255642922506093436511916855911341809261530103484634101891020698412314119808196810817464121226153881722610579835889390892371557960697873537981481397388567222021496334132510549821634883935031063331253872539016872068398540846284267485229865734569816306222712976335511943444973499688902967962715323712058339578919294226708168631196073279020757281797167473961663821842441555229094872748780849846776195782515653664534438341965743218334650706751758118229952965558884996103379189450381608085040857668841877374934475419752181238712482609985915628081774656265714001094271046227040638034633917854569570679970875041016768137179230160740591416205956338068400445292304473791835416422276195658580459047430854346078254289396775857848649781102924268464563946221551651785195113269641509665205191798379251010445059356694572212326667023524551090855060897989511117212015676891881652879620910531493960492948866324776063608018717201093090660592211229099807457129669315224472453814355465046360769989016358517746792745346662984978371785984145384536168576297539189187122040076570245470645038221513309475009959269474917752946738214550433674208727830109641097032469089995712643302703167767128789880857028543651475084134828082295385508447535068280506678070431618709223432391981849402723771327538926315950658538992571811260794435264686431904369950460463232241037916443060131902955587481061495280397790753356580894589587553939725326220582437789903586186305081757890712541780112003682546982214953882050089475690397146139999004031640466226806280499273527635129561050941210098453944266261321330487878398237389154280733694306177855250736523018703759703308481688339814909936981207112203409543603881671588828325641635488092673669502569739397506040899144134890984655121658465803492523933181218554285362719887798491865987274647865063116712608648707034970270168918607399092870120019948626648921871371867989069356940329359538000677869265175882413867106407397601849666997296123080009120324731324518680123804788927460222925028904786774367660214429687361490575473841493276910325160750403891338223324290782937840187856102411076272882664564680644036474713283768491671637734759206459442965831880809475775306445822029274214528920831923065268220070561798468217196280069089320248865500580752429499347447592036088643412484145610616836048227631975723096769232662567562577838934256354646371750415195150774674709755973395026170731935926724887732581746236830690905467359494869912677529972639545254990786310590611277479855400607653931411098823189920713784875375415896835490393009679964047548812586286225472179254072036387109049133865901449937597656584032095105971234303941277598807504083775297951006074594999103462281311698702796500443006013261717393160758395517399824671353643867830215287207579731946167686181197768058160766334296382419437330104290458148103918181102460762814949683461382091341637379451973801663764221730561639984687363703212203596999295499016065555347436034477245235972751913832382488995128863488036532385944184934421862190534512008879466935370641980538749589868896918127275790361840949235303063994297179973680820667560593329541667061610740062746115595795145977393173246526318405552716132343946352696852635563236685443865963839600744184809612830135472166669204979613159738210830586284113678729224515815500486465842959180643430613660899698400815248548833319989486368624963819592229622322896499561563716282636667184621797433123153824907678138381213025792895636500560544326946330170737183312299103129500499560738405600940185685251949288981813483426323455504579101904391739779521580736384099978416582990975300252594783605766605502546691377493481270165893790299686439642026359810801538874238542797806016200273914724090633234764680097929495968458281041506903816549515369561293490101784319553428971658703161184687340967137735377608571541161059089022367700885821539078804367935762439591279279540460361864596393685902377376560252703241744890646571424227765282062607076091688800799437462836956444786056329911849799070673821809946807289556580087539057775047672984418902955178306705796182158564747557562540908318574740143048041347636760834102007334880819634051469750276385823562180329788098721219219994898026096522876561175586130184668177463329847264111646837829062787808354186250112918549400710797986003023363301144684291036442392768190126195238989008847442605978484733809597966956579495276370610248576609760750128051162875482665685389112887020876483087510288916790878379490945441252879376342887350085642481022212457471224207604344684771739188892780614655936690294398034105064298890701742810150919867863244012353584190013020007031971100408054519447291369624060168075492492135562918453013000658591793057322643561937794213424004531357382944712832094785579587890684749786790276260046473683108917903609504442067524804504566237971237789146591669291926991113506328760174507490184912598753076054651693033744167040927693461006298812936847983216989741784375024406398534241277832209412248983558660413092415721768722799041096995333077610674650917671971695286151348453823499746239060987177247077028616217613218159058068337159816213384345005723009474763091374572525219704812153707570724641639638038723189432728968147657982776865980902163733785290047747275769139172108103778681945716666260347513151630000545465428896374604403141944986191377750483557294585071490824592498512093353134184128706736419826191620652694908701747220551576679430351131190749213828612744023236957369347228234458500926241192438252966271979187329994410553148964014965055019222567178879976628845107296346557198784265664786986161976772252466700758845221569940047433412015397384746785231720036590975519535677415526223477196743776836955347254124422446211188569556216989240498699980485034813602952718872756983926831545379563771190451373223189243581636483836752663260400981234097638520146282035840789860648240537948711488707109218884712406960328346504424453617304874328618576009048081229674999883730981667066716588223242924275214380307796010423453747603810508983485219024151776291385282090252624981084921804657656789786827945666424311506011099845144670968189459913887153943507695084086050346999581644061108625782735131357555683471985822937114964275472957189971197166684804484042365003047681898064215630077420749799002272669374193518656481082761644648942302266874835861170141015327420287225152664656831053864306084041842812683722500642647190066707757045868178052319292226757619369146533828481774570948840838283937087980319954357736589821064772136696730603682372748211091658151775640396580088654531599567277931385999148886108408437176477126652338437727356150023765228840099719145823656482554428787354506169663503031166848370346265727043485287216876230919366194098783540696651315906243788756153369643452678735222370067025268674553942583166879510715669092973023649597609962049527020971036809518858891628456956488737172035836906670398416050990226710699699047861913226788535624216754195181432166873390538995665418734852641414867817180819995309679069921980103163551248247240198821894793858650708819953301137648083802905435695582656305376452466682818439491225671600188588711826458207200616184876869847821038278418997861297903919795584371191037238004703217708792275875132852636677101408948180541763263077268680292413331799858056696015407791052373564040813615063992137825302988292288991934838190971538754601552117588925116811244440689815115577266735868898171341571691239980932695952760984629982326216582412763449151295823083929209802617489318048912690735320786793573775030861818063905366656419059169093365298530747825804008130095549592731387978301162733059459299386913298624033246148269924673288992913704326027710115401674056714327115855065842562656704328341963654041483627279040601881287116414183430361877002747466073342329606179566395981983952977056619826932095681057069412668447827440797611769741813376326696453644966957747433303646414375346492544160257929507247685719437513737823398634911059236198329466171678666597854958241364291790217689656533723821577564826542530553460933979045275835004919488139720409764994431594640942323395378759935843889430964947768366225828023623068107968141095695439673071445598688322768307807040545744143630696005383996778416249514207853423975140998290058783741412794328899129124726754978633929819401661455471231572609287000604137503793584679974706915863581992976028865926125770417277109629299777616382289919118979486229964924518493754631378204883188088676241635601796758996822614596711579417480970858996725695363118087751162997921632908456131940079260636942849952476971197070963145282373540714185255716202451663096929243307846975243136604886545967513253596183963142105268183891942404248372180080702187131894580785953361757494735576639036704209312287627514869728243369455445790208370242777719238465624158448923951575159541125184723829143932563760941935567195177445860702243057345642442114957051508777530157753800467884399753235191743412666742471697836971643468326383994947433302274001689603873205323639905897551260703846648168442589695681847776589352431045242529444009468818241415227001003208121407553504995326522234810665607851060373064965625076161462736636892311663185038608696629603919648060928508865827921249449045929870424810445379220454015944587446229897790337564885137339504676300659758757743880679136139548481018619360936447506019935180457557767536307080373140968384959413452601964476342930432943215626544431594151265055244868347054974210043913378313445123674778952773971754184169343812460152074891323126365915927351301532118173846034224798141048959183886536964330946747353843455359242503172056886137019704847563911743204671226123703193938859127736711527916655897352764015849453093947671911606493520307061496585399028803013634370929617379846493872370499342114826721582675563616066790174955110936228336162354489751774872463215936678665637600592284073128085182984592737790711535877987291134965130952208059241220118036456235862682068314954801127469419170261612302356954056621514761560861802730089277315678496398074441286113606125100979416780561901156005720538150522527747804231247316518098225134175226418408270673317176288836993773281254289296813053496895385692348768178827412780405510720162824663511980863248684499973936756199603931719167511008199373813300413262144636131214747068750544730420166580323397752913174382598767992804719121736289518983911155882860973073283765611624727177613898196267550175283377848851741811668622628444232416655496684376464142320439457493016543073685445906817411906833150406677775862973767858225126106534985051832997386422576528735972520138370345637034969079424831030787681247131569897326543876552425842766031028402495806314420363261362070871135822744596752464454787348749568561167494799273940225783946835260291516045186241973633737326631696071679059825183756616884535364018638537741742115286386786658611926431583354627132489578968320494142869146296269378831128202613523068949241891708432611071005590725003287279582441172250673417211787464066539442099744971533964176226127008712100415086863492786142807423578087311124223471072685152961131111854216889578273691496770799283347758861731372811324420752257868989641705502622701765274631258242703905950050197202841836438668451335758384866800199459168664477827105164070522565944393227596969097004410569709056728858965192170295237755309427378654060872876952324829064099939082695248414578077672081960145232947707091218279196086232358145181367463174983288416124832422188737286269358458018218431940492908735695394269966742563555936723320246058109448454474720715275611890812460788051438843957642110448251103239168366181458286156670921903571567989707704175291746894493298442217593237459170446016969844623990765750446650572903279686932457620963852035828002768379554077880903081283632194311329565730300015342251716657919484723574435075509387610629863858393270586578662105767135371852422736611814399684451969395064793753075528979740626698188795298769280318984721152363049631907986589130125301747132434414066580627112241802223110850068015228218373338508675444909951760189345977910987052519763763865824470994432560552093751527431235594734039165389510974981803868942053532285927511215063383040905755563002429514320643242906441253657629948409989700803526388445596757518388208557941326192465042635317972931095204152526476191855823488068595392345722248516636385622970035143217708857940451493000743989541038489216178272762507333892649267463999511814418149117531697042885071570695701200180980257643325251515928442451434207252934258539783863435881381596150287873990214065745759222225926396465081508584023667195676105544831773166034061285610498396654826105257087405087151636834947587160218032554060601592898001172948828037709655913778537121283954526615297268353243439322919426807330261583979469553008908009651296423524518267085756365771688509772943420328949260520820229051766253385789665123135675693122286873417070503291002658395945951801031256536077101010504645969979539317654134633391010099130547879914719068964942344222003222844353199652702235407054983787832857307104460097364843419973152816998079958054277626582988711208261065748285168846769459472658353801187876320970640592896668364111907437319596343867477392941564039051605732502340100620728331123352474418503585747387661411430236182623952705385553143963148968386246498483025392222471779598661867316942615922104843080341366878070865524216990818751587051669016893936378851658741895503338556596729838882604951508278344010371026398242479911915353518008093391246828468277601845571252032979634143668059355542584994952292696449660213153862803388847418866478955362413654124287865900925844951606869310842272768021780711854082720878972546895716383278794176691506119716588739012113100199477852747941747110149032397008217614775715619493051279702387931002883302250465300768913636155503658298215420354962837911564551160163615855726197128030538050417918799484959957698879422691340819732186053415834857558269946024442653046550855587378317259781822888879456473642662390382386225170545811355195831804633742527722856421565284834370874087880479251430037220801178686666939529697772696124685611331992216754649188105395904640938769654957327225743141115811834899242078705769901699590533228890653049139366627572066184895801590300282300670591707465703260282705221149781778510669974717783277772058958159898186008704503792149170969769855333295406257422264522462896767056183973994974197307293072966545120068407853556719397004727433057226256751842330841523911896871142588691382636853496136903612227088778715108364462315702892440137967032688064416976089080449671625279183236857266133311646379928054081834767120179115214947345821348722371340668381102462666429437931438509450378352460167380632437415836512967283605837522386446980317167235484466384326152677567418449404319083843554418420242905118062098098093932341524939228328957307175678508881231337630212677678280577426814761283856735064614243164519095907786296439828929092808251879092347578167893100152241018580136236185365995241132891815594274796627496471898516965219517260042319274117206819228945950141601148568333592129983459306217147515126568189470838138225815836461352749129481211444787270472681671464942599037169566642163807231164374940763483620968228024600580336301735736807928163158898252083412109712554273186937916572620851930754645559813519836542347166205128340090319007818685058679839228967338828864135192891768309855543470863392876764136502870453278962142705397521724818718121022205204023266524815104566376006473814876004533166079789721649402912826815289818481671539289100559393454558350281139887964811499002929712486722766173672421859687971897436795836530740222204298063857367525999852325828170679530923045277989639791774489015385324332811922993351454799439958743340113390697288609914171234702276966823482792395006408102910406193861076635401089897404539883877982436471131483992467897183610602180862313031157614357464408048127630774881613998888630564519371221319266320230481318007116916531899240670367173083025365175824531801692196498227645967697482078428805699208162734939441202223194731816942449411993032787548963998841594512238658550954168740112053889906283096562929221893588317837205694915304136601880826477173600534695079197839857203198334697708195890517449251840272115678414521001026115376454554702947917668386700508233880043060441130328599535300773221365945695362886605958280528469081271918369960201812909470239958534841520082324053595925037414759354367988588252929239799692024481649572395099350457391425853501271016225014887063094878365532135063939157269981232632380244456449956020264564722993859587787593753651544135102772767213980621831762957856882943586981300472542691725613281288608774129604896648555978830759284030844386401362236231287692389295866858676355356809482967073137096009825062816558946331562038180735844576312780170373095437385415534625174493751403341459807522254248566866465902018284882622833376292824953487029127158730818248947866262610513979986992238812311073041787901211153726115517332254321938339155918106866314019566522410203220914563246422197231354052928932314547192052508891063128912939231800597288657927911842295414140389788026075992969996959191357505672900518011152110253144985413027665724572120170369049721955996686719438435057487034518254842009421108337420161483147727603239148822384868928838118346259914101178146368517609212950747526808407608248900885903063918015953490600948054361405140634013531594456661239033486128902758935484115288779197882503629267899412879212419349110356585377295265179559658032887123640171165204391192622784520842156292654382218375066017439746495576557123560053728822312050950943831978110022691515984279834979522028256396535861404170785637270545997443790390538327294252933533952033844610849333786429543620880136411398838228808891500121983650838368788796652877071804897000062599056626727545552349661510178837131986189184825976440740040562812211522857018223416905685827910517861620596400785321854334531274316949892936719226169796301969918894751963737500938994462952875524702396636938030266944045983842808183664190632229767399835235260169142636401828869856023571612622837402159232030556032295036233541933022105275648205726666554565152927571619521581708857437506409302256805024960757508336061248419965734623098773960763094858751781120297602385083532663256351676689518978727324948826209788863770262264857589966519893550983126128498571486114421624278434621116763152305658718257870608855509615136838820056687734141947866683575495546081276522443050891068396562148698843285157043540617532189261256984340938841426163517201584708921005011896961065147469063513159497340171481635554112824229494516641416886892484889755837933978922321130850042164599415796225202030467029573916121129264879902011973790463696737654477634973146953316313966796309335076185554999303502189090368244170880512278117147017644877878299541228869383177191612156670480022802381405028297970335214378116727046343550356173019468065677352673421440420289907443901708101057660488878601584257882751142986504460657695578859855241252379841597259400722626516685526355928895520851903834709544218252251561494269964167108815122798797098010234157285163417594754540775258674765603247818906311975440872097566806141540580012708129338712492771443343976558798192434632171603398416876617889870083118577026400636017100088570214030887143987584177285746578074227589078171462475978009831340734481734820140176174026534748924388375594598675898224994726554479645254138363171640016538510412532633625828664617529855095859800171925233439900135655506834807342284906206527733086213580109159332029452310249165184635421613593187169810480238042022060474939455174690574797099798350763173542587950715277366260914825456253898589838121492931572858937006765085696364305098086503995072427761528297431297149533386434983626035709103469571871779929888398077433103063706591438840191507946403102799333359426404125760716832777319928608780367971650688195123202188571763512991181149174854581977444893295034803357262657957099043036197773141289189465780311716642667314699774303278877456977499475164672308057195795393702576305734591771299649981458324097781146563100631383982947764173235571761571085300279860173148970173805540357966319115740652784195057404693684610539072372613324907166296014037709899470623735047754718646167448204573885800066519687750277357024806465885616484052623696940544585772291878822678205896747334390505582379538710573560651169887987887195086794995740494880293547852527824383201034335433064981623374336859956901885228909314101739143331659056022981236991004613346818510678439510853136263400994083209380606545159171330615860374789435296587189243224490580903906099106065985151525032853096439962049383163466976615532754084932608263854186092885254914916580964826069225932094804401200509372356550243089636013068046331764760769554004815203457920666014460369077785001761706060437563951454029214826774153370874191853384838962129407259541440087135913594259118178106887519664821651619328788230219116559991629206631696308938581051324973624032979749796651107919890760791941745825625357330609098438676321203586238684218753889425099986109743923637614386500323856347348369547784857566194077519327944922055684335122874300236828117796808069967958755159769894272105322025155742282179192952601286741394026213554536333202690308611128183611592608490007250955705248200286494333074702406831297722700054998578336093102191339420405844049651043553317783309456204782993105768599909373203304146936774738168081299576299025595622512400926509768509435693532199967115345573318740438473871616436322413884584465860233439579140550769977863896636159510606142349877333456565525354197089959120021273801560491237639791312119384133666090518144725360348587516784167995357867328388645381543131238015601427018527887622259740613231992419029905632857545224554317272005306585420183925373385054936723546576752560896387136816295805241025402819060857954773118833494228528705595751707441118147950302319227209120613887704840349691718347870119324819885178581294681519846246092914476825430186794170910459046493906531690990081160928823594318560356939397193312277224810416740857767446290368978074899404387214253058347030110351873564577772621537917975050941357171569244598642480761190759578782192770183621903250620433299740007661795969036402382211097847647764996833019912852553180280558584348258376709014695964485806336753648075911346346029499084664287558796542136385924345058713416415683290644148074510133728894437477190652239502772037521029117775101723832000881700537399826983822585325915243453994580884275495862237084978247749680820347380848260940741806605848376529264044770628657153558167103331901930083835166322836945735237800506813901998000622455622424987347438159023730816263309281928500063342200758609763324061842428306169064844173296958815147379995970113200703845541503607616774164343040315671797851836066830370968155198228403841239097556056729446481817834532212952227274664385982930892715770626133304725842724049223235548923638163515411100760275778190488116980397629204432395546505493289472130331344299050739546353241237744403165024622819584128714453157607598776311989951811640928983911166765757969232684747691745960199140621079959447246601819371390269034823975073598590741827553656038858937661725444716734270817487445040338549934944404624863116523141042245846929741864293204940329864371083312037381496315408439940832144357837915965392467867421109165501813806002999706862773315267357642217626194243566285761688897008673116753873554475126411689224866467405015303618957690572852291318927700008517136612578233951129857314339593467757408473169199170226099446730000522264031687076694139878177995469625031441903058167887741675575471795371636392197939594507754996784626080131511708801093351837066017914470370455244981100101807773241739178702708540128064012205846834826121583431166854944198805424555725386995270884636796974974075313322414462571696793684426859819257466607571046205753579139135746093287900793789919446395266708826283441810230726846042037078687589177409769627148712135263724559212950101521556690650834019660849878637440696492530777686652548379369471418377592788923903466301134905330215844844593618243223236262743216385090216711785004395932951383943125682509441020272385687186331412649208313613463612694166772478325449929131644241404019807802467741376255325897965519195728701069364545950220832590191166599981921585911333167288501863503901551867131772877564604631287490329014815544700115098581964179078748728732392195307328399493251519819845231699422214605338147727976001688735175392134312543429534449652282172290906670455608499155804636188958769158516371442272925406756476037618794072948338102118722738137726330819824193548837782468961689783392305916618244979012471733664621093988159403327263829450709091805136132486659981385105513561050365106352880853293412242772282715527890279879781359241221836576893169361056120922030019031042981165598271959470471098103446273578820789576090262431425723050880679193687098587192343152353768680607401519819132829293276689662366052709943514777074900363422524271702046907345368384803243529202020368354898528935070418568232200958769503163104411555856336248206374796262957346589198542417914939697002064685810837638107560148680718069739351453676961553913356856414754784778469553863464155515954692341965065591828246871214386379521486667222077936828495701145504574822359100697440162981688858810866081312785189224864790365878427303542315500546642858863437806371086019014263560992133206507773615344460368362996558859202492421564919831397638440199298544752513643584464833134165740038389764281548968969490990332607632083210584802543170467459436468951754637683066949178531511901765226481591660774841870476567850056794854167776137484604966939320612145097550802289533413048924314088344628844834523336763577882561399390541847081513712912036561772578094064769809762791075944171058432766417271848471552597103902797085084163910321859196259433975392954767863808531516025166728087058537088352339355296223923082715150405600670798546303792222203211653671332080463182753780106192447610826733881188071009964441721341176363254462183585649701967954079953001652233683743655534685381967700390385274114415847707233584749243149744967367504234575899345655735432072886396545790099017655317270937583316577133691556785997408408215354130017100311093438076110120759476088845327603063819105041023702606722977947332106024958889901869088009157965563062249050837322941467309536821614053245962258094724166313311944987368469051575567834177650645221013606130807096541056972232158432688818179608339587160943745628368412400194770419185071965873993993744210854418893784484508242029108930796767603193199911858988798601727564053133021523674983532681222939232467256005665125981362492126493263027763879068822135164880904035509771091487428171458534758195415016970080917855851488772636474597867441893581911508138549895906670897508432803917788233244055048681466095293579543400485321655998762431941865841597922315753534080478087519447420442093908247982222790904492913450702904208311046235146774408698827560584872257374475710367027501857265673849790821556880455268988620317523320196868811068514519494762560004878226437816029865909046268125264331545333307523485455619498309880871642852653896925747903010697462158928593235084445207245054720681036503840113779143582895150784026440177060633151048498805350223307168114143770601248049126176704886277250045683590430236491071215263781814455080313100436525642904665884550543761093434505104394977312309390634743081743738848290426266762936153916892847774796551042567372100439389663308807913563417950957286122768018509368034126230210014869321176461907978384560394320449502328845351629429022218912817981335411645471531998687858341654908111036378525483842859206905952253568527239660721867614957389878415216572871483312646725151126178762496108537912037913483011652435726481079160444362033638042942288784058572113384972376360932421525887581615830894136524006765557614671091444778664762375079266519686174738132168569860652345969583834483101177063720345307198211707050713908801372741290405951441781958449872462786683703653488719977425555089802838622298479429197021191585868861305074300974385036033520935255901481692305720582607669431748139217477557513798119099751089081457972886659114836751925839263674617031759377945489159285731295422935157517006234995312879168980938519678588224985345064202898041070876518468855553598567448641416885392850713443163888221957721976140162942364131003453194676474977177549844408654457354119721458037649848826421276780472334794752537756688213843148957175183798120668074480982442616987226268129243819183049116475057677650740500692141539909021513183267289173268825830080224153171575218923594032041829680472826125776675070852259962274486098361957870126617395652543185667530138249768116585356070559978169959102506962509799489669254164202470487489710554924394538259372990401703045278107120264604459603134017708462555889463060221716163755702056196011364099733716084003535205306819818729930199338836647818205018190382369201802693759004171388896555218342355404932760898134001619768632691486451201871243519071190235867406130404245451048082775665950299716123481459707266459671584060410063495842070828226968530436960686133034235635390502767299398867539074923557329322526694134834493622547213434835977212995168178511150635919742403624220347011376938377211695685841467849479137967558299667044432398787051258178135087542973117709346209475355381000133111108735722287701239234763944855926557429733553182532733467828659224179347477630359293889146994988742099542637671242126419254415649557042776895558272392953813874190166448007004947100962618731276265581597956484694572473368749817004288969206873146612042153727798943067083404722223220988702375791946024210945176773433572685971930393703668973141326068345334080268101630451442230507975212892612236916565650395587250956392374884681472784783622725559120919625572015452571747399683165264829920514221891118893621158061042068741189196595193594886865384509998325601813164643502921329925700622023045858914085805330770740056173877127409851945200993859633248966109693322983727644578027311728433090455101419847529680980680309633904403535374281446802502297343503363107169702093368159015667401087947683020681835662731635719681996804607099702622948969441461369872233882944922250362488236408033760303962453476784084605029197572093704876176352965193687838976418922891748789956394047995075162047198269190069554190625699122643978770119530954401392229591138626720988060631668356256756535413638281718280987711851391190171140083079863978559221665786761254003460500589597895213520063018388007849535179068278866941795301072387390403969709826107994296690752022423482882541510979287827314159246489334539925767242883737500548971516240658021339734610698154501454417632201102811002675882900523630527836303994055969150136011687518441751345593017197431572827548549183067233387033988687753868860766991335587234185113062150572358242489948205707986821134767067425899347886909906429469542895575183694244607982944520850454620370121291703120014354020901503159710941875729195456122481593990684978735061278852498069464254534130538081633727625170090039642041669212031059337956706953579045008529164832783827626511732542960375225225456933028475134047140001749185635126934534685522281656597256571056442376446498114918588097335731497987874500658022227431251812992320302580736832826817650355990497824022294712124034271645350714873745046807727985084790596250806817566208135048811444430776879007894216830976626215556955038086875846580903737393565924428853092859442130248550524419505729862091632758275000452526365008584233214390021100871633990460015331107367568340461714533974736768518000766918261118629899771372937991108978093266959310942889297122981808679757199293150935290654421290486255418287951358551797622629959867487544544072831722077679203004167732931384212494697397403809796478803970232396842782068722612372189611796846984938970405691155921318881579412661154643366829394107932406057796152625275221839017403178562141790956128900177312099065888685467625432199727052062690281410996016280642261356139531499162933352685659320251964174092497117928520348222010879203534499756787731730786999715263293364463572114566068431996881989575133015435186408626480123828025189388843292743086571605370544092253657442795483118769744178270495893444727793286426587946773986363763567416478875864019177220715439314337214430891566256220392081354876700751016693569281000409058753776344287338617625900723712730784946859051220712955007790386100055621503602101124165284658574412034839405117994314159485277059035836527678228038098702624694920201549668771172561895986150788466482913599302334865641622330527481677131954122248416596617753580519589929283177921328545273160824153854624722578885500128349321382839164978037568126994865503353287633125893885898382186962005997299360556190967742128563136802357881099565711171593672413265042967281541523467478899211352874621597909341167214002170145076341334994694099005846440532627116551803318689408304977667681411320778487139106607731334698028164506362387976635440734033464220608477406472302935926861927288240653239608946415485270447979275371046117362059962276735636933793679754532640056411824326224623298318108870559238885375526568417280822708548999100773195860131077834338180652535887393718808137515531288354918352821856700048586986106155091065681208310222020877557874201171868435940244055330239001032636927985388851546149913421735510536778078058870972523235874350036176083410014369284251979226463946742611238949529982921411361921216104289695111294968614987074623552931068082639530720094924146617419883779140186656670213654483162709553479982446750016600034677679512747901370633711745995332654075076153768484464514601631067271739602285231956721738823240960234048695709355168583764413969034075633052867780455000252616956956984846972104984842268745160342092699773712389081772208725596775488054104949030668345223301543601874845156251355962263557822707227850575006754101106035452268566537935209328465651577780385582537072510011055911760776976705272933501805784879426780594871418220478713156945120618226131779093486117002240273438165758893338501734625397570319856949786288748506889875477357181295720014600057047563404412472509611332389799448861161634271206608660100693224996279321332136579339204887004015949618708344494918260428143971965465541941926320865655237712105301580864614240968923097316455952076639042881254770619454726482204175153359570126768780120480457334216489953623273076752344475514437877168930239899113530744320502581788178215549557985723061422099875008455107136808732594812082607507477527716659454764915328580316210183374154301146953475941092180912219247704613911376448706281669267157698028595469307471447575795244740910693158224915941525931873237708165706408134640585052961985627816339268707723710418089891184927057858430841008196415067047797611179400375524605229301487057647093335034560547144613914676373284538372532943885083216870540263340590192653481474477697824485539948029064302274545728600857394709371593316078055785630267852846746912533943801325458991827887976989363902451437542194444240612513165453557692808915007412148520600716157749289948038917381119715690965657028393651921586447191327905328554037071788807422629520044748696507647796873306360795826070170659706736826657340618206864979006974272157807714207694756494120487001504106818089994787309091978745815719957220586878861857100100751803413102812769879740600319957900553299580709976759139808140339797221910722101542464889846415889880697497515057130484059282272230376046010303836991876295844283043527469740358702901465067890356658754983782149276143408357594822060605853801421300028753801409818436112984987806197768311378928127525887442106544371510932397162411679771882809742811721036269763343417900637716263075905038449794601942503983759973706076714172113115323873271248906156882909056437520463531797572355810060855625649164996269754819197144251194859386197528640728621363616880745171516018642453949626695630523055433981764485273943302841331099524015847962624153965334585255765726122691725737939686002488095868515710585127298347175599693103711811017817919147510388964585578803990284543473406236145048047474000441725404184242789452490649271322746816229223552829248266002716062773288889076012373425658985618161228673699019851090680840157718486451395859426828642413192461393841411694968051241142286511379752207861413609968151682107321301628423553550722294908921989325446153455585277749106903125438460285078192989969399928825318537024853082643800975026261560540266357707995131340179264573339264997474006819882277343546521438282759377386468022567591032603649017393974402580474222084933469802072566198080168581972123460342377928801857001248843435820000269946472548744160087669427454631380710784017497279458879871102786278309582554414059326687562872035185020663025922429619103093453170191200553488444603909939380793794887553692801799614570721120133102535309362965810142682714596556748776678910985656558522622599828890923055544654293422823904100851747673481436728624715323731232603720736295811992720476073271015814315414008091840910949270070451410435986437542837650692839663543336540367744524607754880007360299271864279268616527988834097688230858181601248716299680370362636925227200745589975696757611460383109233694149751630908917949736149969854569668298485344697031290144702136880365581105666981199476305796566267514513167851184278143597225849220906597609696295832787573447178014343335831434355854966248718948469704945899907790096676599744486989561895456188976146146213919483434628934693689738578141684690571362630591030252271299180297428204768897732032832167592199973803970980690904147899648822271579133616781561229554989869290856224314184498278612094900464996271941670903090127332235929717609124278760475182799330850083362947242247454590680689184309152300462049299535226743188415681517046610070554736757447798633299433241830501212631709838688242814491920573082172970870752626111818898171818774352725652249658030431429111007133154061037684937374117878915510028517386191194047303350868672955693960125650979996547135410912864549795040395929412227302168294102031235061298834606680141854614502971949109800933245926953108008468871653637863120539024588743292986965565236224824982284718376218189895271306999263981873285718435667841300506859340657111009138242334014509784874635126541289679727214816234020341994519922533951847430661295833981246267490982113006433346390725961513806968124585888633364314565759516829704102057709264087314673685274336933333112116336992792785065896277426570766664450158330887648472518593216034134400289654788400539733390549387931888655486120353222439440964133822531286404339350204546476654872167688391152840830748217163650466893724488482108508233993041285892389334523137183735786337845701155785998620646989496329184940453773374155801904922458903039232881642603832657400102888028375658027157255761098232350950775768727480062575591234186939439971985573546578315316224380520492458123675726256955669643331977039578108709337791051684884970948666066118862343299907598559309342353435379782154607372023830540392801664466575149984662805354686536560343698771269107222084451287045363336935071818997751373197066768019547441981258923142556934039440302912063247952373861617769913280897386599509672943252126274582805624497775622910661258397955409367173450141333799527220117488010085480986483610639367227840068825062359744045328338115631543271077978759667245942634719166746852919347592673809610988106997936398761734741908805232850466323256306838357980984022412822425659364120631815660704433051003735489250658567322427212267429706769669664991742867768809759900743892219384536944583904589337453695000145081777488169593967094752979202117175671376331355602246770046847346782081211205038964607434067333141360950395542821220270927124198572552826103129960515614023796019905027173878282898441187080342433576308826226101605767534377273545269055755533389063076404092402031310179933925317667226807566155165096598392211822511023101061358205915891170594821211235744194103880993085756943814739744786808764146034007042740361277634887173868623855218290821492725515317327710058508183204605837123857890343717868836377527446513039208432966527481031860890564162655551908379288515748068125802022484516558646686782688051260777857127078702832521281144254591240416348405692899325477646422841744697445907224304352441314711052084001844378749787370219709840776724405055136284719671664367656016587811981956120707912674470827336240181158019430218342214699217703716336770518432262898614393510562912641751781127417551441562806565779811480147948211469699387462752416314958079619814640702205612576731317866374636329553982587103149109101746100971506517198876269631889284511812024340059822462927585871127457525795073111253832737592752466412125247899248725470681145802639777544458490305087832343584027294156852974507826242714446290531033392594752891308195719877125449626133724720347346590080368164892274360446253142712568768732255962582010541173476412081920839164901740578039553595267837513935317628988329517986364400569266985186560073828658602152153280642378235256685461451417857918197377440954257948264983663006584103552970605163856742810596159661071881431872699507268392537806713771323487608126508276695224822780575437714867630420696211192485091627303547388481218410881187249681650620199131648177094544063829088044769875929849928005894983655842214799884563462276733532629764785000473350913978448278352478289320134736716498578218892724615409597169757339526171630724661285848300726342664851329981040001132156245264726734132402651364423990638045469177276822277972942997694592757502219778287393895848148289127947858670202624742315678936192953935843113322686374253956976591168092361554226099827845279206446520164775532259081718756556621441212445590558414087276715820535041954800465502744585652206184057134056494743643553404385277155246679432995851271106666014370451782916272144182729769358161300594541596887490268147537760842257417578614058134872808646835646874866098846611117723294718437609747550193171315078047074273651418753723467872713415547085990674063457096182889136408970743165035959806085629012171847292935583618175787665060682338797902958921963036859631517573516380846940277330726273421273463575890794927250864058851381208958588493657492596126760934079693239352710542931845082993816658437976583126132103239293035432776979577825051054407575904277984514206387461364188594361366086607350108272230316775842738438513659451684591082194133369905026874980567304152732553743038731960672117437311219507462064650075207937759817176473780214735222854036561714265871203931059625615442036751984385572816513394146015509134066200380236054023903252750053761793806586652342110022305129677594257702734369113191663123806994562475558125456113685013274995051536562328057740979694766774206967829087646176720392547173742573805486850463446573338290136419849934453877501426841015148582511246583412235661699510206935290443355774669256763399295361115981290530244896277413725559088373439854795702260311571618764077382208549509323057726404126878314215221025881020583012312485256922498395085189121938731112266500370080917967369212623766067179411808095031238616122914182095259384312328663908777616044979581645494068931651887921384310034094520153058986087050558704832468630537288414886033028110851172604989023062091943593234635762025472539325229511713655874995103521423409148634112177632303523539031566759898585939401248602382902047799260491923924321830169140730621834916233807627043030315258469140618588088384424129488510255851142543735653649838674223590494589158540573526132528637139402615976903136883880982937262734885580694329543852059378418232992380987403840285712079282447367494721116701596784585585808045560960203745586898809490817472585867368206836803771778857249104091990751605528672846927254041647874251562424221571753998142936927405362706499194204717176185660259229439461256933091125331233271718576871473418979527176711263045986199578766246027910910216671101890500458087859376722491627643579903103475212549995043745349430214976126442122904450774598788450240612581473888502661036896899088803750053926837873362975550973370338624480182689752266042001676530944272736242705452930959512020007318746792638781853258790915144342018657767849657877642637286592377875395934820132485131234482509796444218798618601414898918508991263410452023355708306438404341520628983459041174984298465079362307418268078061916829891810101396601806949685974703123585745301822654415298161574560984750929655567439216542823459653183419255014581976263367240284207439512658291217597396199421623948553088629223662473229780600581421795317504873758240436366732102234179944130714636306709678721977112947536786714089037351613540117690880581655200397067681228598621836052752658486715476181804042853463042585822325437367452386680321871996705977917822986609629090250907020054007469532693075425279165030016991297838957656321403149799604117974302145376475398319228366559927752209663617952995920630493489447456440723521667872556350390815636239272191378155701609750094122159148850487721849170559051990094013487121633986845515345118877271806620720113827567091021753422584732962730717197368116230863313508634715568215774184839346113024265643272576549568952138462573696291091448548510642665569861051023378190478338807788566095352969513977625490379304867277912416369378613145705145027904822082445024880181381005860153504982723904525945420208778615015869031634600806542371306669030675740069689964607019230502100848487586991305296945735968589703837239756922719283694709548010116486021281715569750065564140574441840841386124921985214586398362529939181480786867887733602384316158428372114597139769217469252477088674019182161649809850777322588721704943101694058689478223019795593392888582425556942914849521117714944723116451966791160533304191758987906503132048183188239173767161254623464509548882181218509684370822928921990450405237512611346013829576002894193417001452545383049449810127444108227123273908939675758932576126509526614507839171066011808684586700914427592424753754188815527545152013606845826389550868695223274883032794239887927075261419051749333426106499790539081590744124060887945159618288454138153327733885514989039787823263763649163066811414456192169440063068543371146449585058114309061481859145667909954804405860488199106153333661029762531344372069534045716005036247874102179414443953201602773400334803319176388321217896825794793408868710111245458552158664534667711606839378854679552898519974516057562429195722402300654655045903929503516425564611393040554210693811179784423774211244312781698447307558762578205912178795673656556515519917516195920133344466534118343369141535376485736611478602761444076015407900539494250990972086729720185632948560705702796097729656004297514757698780754174905611537293748136915603496425584587789180808464976228774554667820786924663698800015197797359538072773823286900298701832201645441173606776928783455310049143531967849690200475069283388154480564316702779235861802561917653281977711830205846389043454661000818792921323709216605894986302194602665793575155448682109486213391594616679106641785531773127696517961888577014844750881089486789058913623914850840938582292335511485556285853144055835677348811767712901761188400954253040143935343592107175376777309604779582590256448264238677022056005905202477949890878570390966644637435136196643941898912430622149564484415837261562746912167811410543775287865775869590896182598372585451691548568960445756823419483822296090381336508084314674949154615768621622086125655004208669169067464249460677013576297668241443640486658720469301546533816974684939480140792454042861715986833929990644975324015410696569727356588195068209727871196461035950919370893752706677471509198288058267001013756943810889295296439097961851544472411174003259138541524651069716111645718360791834075488849741279811977460498918293980017814032132444963248512669025904823551148962456344171356904965160783832238497235059898921856179858007530375233063832950988221946625583002472699957022841722834559979150212812212707978441256501530073772043607857367018693195398081418789807256997226952364374415125512580937264718035246301745220097823435604706403212988726450993126505493090052258030927032568674708535343268589039963764116720234395367729197642740558412564054135835279910661600124677084645530815154181495824813619238025522462212638055146565877830034425250616176420189062601358306775562066650712752661669165966463301645274018828995055617126558492263506065867855286538246394216286542177351237316093611649034692005342836622394911653662984637795604256864731449084449354772758797591604856866194753434241022615369237676379574073764569734489796614327372869379186954569372757550284753482997142407831472809694207361814552751581889237203419785795248196986206928510384314203508048961256216259087910180603015498227793021942422609482461236238552054977254182720636760575073705250580871288022680291394600697130502224633889307387863205405626008008770118048353187526757732719596966961850167383495820263961999992246131838728506055644804181182174818148784555709265794829955179350001416095523742803897642837742433604353011579072483206860509042088780755738030370954901138948880133976451940117364032062001982355372798011785169765797697993203796249571797077997981015552698165667605848653523903531504860385300298116932371518359702270297575561171114796775617006665726705862382929886252596603460009845457681450416983426435862341193184153458253933374096706773209472503766070648572978769207220231354928329045633895272797710339766703886344096115019892448692950323748002856064607905428633055186239154554895336683654389859245181031248998695525582934195399696031863120171018549268573557940841977950944456059377822953407689538955789052669442573545252173490276221671010550566151520587325206701818435989851273914421634691962075006344024043094141456460508395469864378510612532290968994385320009141498058164432989968952510706086327755644011039607907634275365942010364923194278910910577919543678294736213619840881727322642585542043824286794876727527725974639744775322068029506542357931611264124100967392058027263397463625242803536489187106447470614888019084742590097462051153911570984052015470770226109695697185812718739201906080889205958879071448792314108061506148734358214998570420728059153289613919381251740922094728288029802778375404781372783428214238164299070184972265248032530832145678584057388776163706213572238879255912587195855989820278451381805944650194213135621204302072231977639992052889998134148048247338682538967953187876097443594106791289990088806335737619572575042389519912979610365874795410280944867197884188909836445086379402962693430547219621605624540102206279071808230443766585863307175144876806720453140702983293718931129158256059755538973100010539337647148229579611665685010207105973492101847358146616423749465141656587168961878477485549507015957749054991264596548628622743635789750094687124036996906766690058875595867041051836179228940380792280364181438128036667840774447635514144607883664657301095200348046793045864753531533596825335871867572381527937407845251492236024735768758539377399458158149831492412009458710827558368306642310874685511891512102891613636421583929618957911494571597144338215789212662410659843627059050466603861820358747041946115744581056638439519645662549881857606240198889566786806053433813979893544437121752658784655810890438980134213415986315563097827008702507973484437148072226139938795528650338443956562267264883523449993725157433771427836139180735340409458034919717220129441486343152122763592178218379304463112755008440427767462401698087204766597788949891547910699883347036651942561146663289868414162579258521614900156577611813991463380084297363783352728258337598644947770173084478702740465325818121110987945121658347160005817463849409154371861568203643001155277891340813590573261157864272392519807466254560831839338383032712407543254201769611293089035704941280289295359513033139943399014423957058984570994362149514638634267645242733696390236696997901308999919376627097155687684834748335521162880603121121978826760800651548095199177413999223666535044530893033554635886474286230539394895626117988202439318942600010763576995211837731977660683677792654162674500335510004241710495915404586937492222075825302046927949974462893560340622731869433514195718563243503777275482005715987006626302817406325630694118003548345495566175919403290688668252289588942906450443841249647194486487555758848975418188270471888923736888930725279005583493133601214512612186109190574105751295942525845007323216160540369466285736982874940300968503661109674279587387690294784574711655240054951078974195780378961119945626947648797842539886631046104291986063718663486692148268118161873866491826756798223074850385528965788810989952074793219339823275851342905993520351444276087310087896725728566484528925878580434474931543598157697753799893566358106150388733675486373794877414004184495875822746715192944197760572016152150006099477015931634362884324749988262708728862949197035738347081106186143907830957949501315983254981103467245689976073510966302294613648076110262102603800652732182348971720377750122917030754424748050200100248972467406626984928097208935016581780213477932597815069425230829560797343410854653214086831986389544864122819714765292152977121093178246902638774370138118726829574749881150006392209531900616889991751029919186334142152518646909740349300943454600383599073325715757273082780635392055098949767988496501180686199352706072638775560424333269808342144791744636181812542088348011650662764125236186972625666977069386263007487717088657407929129666118858223593139344383888788767831603945638392709273285816673763817097912641055621410016760270301350624102076605145347126275087059210149400303376633447007856644700661134186052760700964244271032239626883482016639883915172892394935839585561572516304878219281846326756294647147153148683734910391956964416086174195490521871516452955502019150465866282765426677243338303266914504827437561711760120327797852118427086814673232535609079147549445776513197171905446977375267884034277833749599800105708449504945697426745285227164617330154552172866311494890061703209186196323628886738598916630309712569628562130427180606069501448282837292350989953706179445493207504381949823767731409988430561599869979053371208591872046354866936199923934142978754628577798207876992326426875312752336317725590198632442546867561679400303044381138685874346245583235179697219904239693249361967032132992537123283645767803888381344596211576565534467113226964823366707227264765979100118131302590018289945754311250470840822018159079791006015377808005477540168121544004458504329656173653267619778562893476809010794646678657834699755841087391268203508590183678852296681380314783998601741178000201979413825372999761926434277099135342864380422220780223568867173720244416851950120953425281978759108990033729495056236104939864920979846172094142614952386197827502698448470772825623717764935088309433872744400967997882419227007663129270383720258113514857092858364738161263539460173968342636407237161379871862515298036254906162013383360008392201847753403050354855235495374050474190585964462040709776516443951692940867532522516564356753436798723391552606696893917339163048483978943693945756287714895356250821442634233717705997192948883935861343049777619202975023522153799971852039695913159201736917015851088376561418584138959806970897654577713529107602386477964538994478368073715210623352382423244244815201293673928769567581415475970879880362323820856154973622385196031110474992360807081747829953208119127885297437588743311278629897035307330631586372996725598888986021707141731708818899513035668376432684753005788028387998468940749355231365145963754796185672061144688316568796593344294059593514473092771173403166227414410577789591891655599358371747138575946109446554118217182360544297933380827362756913002680361856463118554111296899011773140571530463862546562708425364683872201464363716694139563476124684362624202273589035372235119370130176051363430900505356021086277670663668028607074958348162573403336835892246654576600926519279008484494168020835341802634400567615710346158540013862803755376401599905003827203897686925699447048223326112061523530754134138924624953108023856593084696848025539422110161448016584804617165588614408533574392759127261880901191882680259861365906680429707564719643788616255390750523910039517126357534405444509392831209248021647373489671306655876307041167664301541040410916717727437977290041649632214462102219323925886971336940255812083458614059697579802850479463496610556874255584533785081663037871767207338692209833341729509598484461615391004690916103274737092791454242701524720070733742208534434215355052110427181511398879623839379308239816716935099708970845409742065055905244552376634130497353374011930659595196977569130832820883344390060268663274208509789899341622296168045731870646174023314397240813628013758113366216535105013352722871071915404997897436450772441687958600458240141139345402854228482485447163211447804508974169403905424818980564127465658674692290284351152076951511004785597462764323048402927137764615595434840283490770546662907691083617111697016279580456235723006615530720909838860170499010395131634877438674064411327575665676781450949744508639858177995572902961785105722808249353004392406491044387928432873610892918067543649551629010225676185820007860708882489537589107535002130265748288299438987707750337599812400898000564433691941885991408928405128128657107739029504453276324657055899338339857599228330599183158402295559469800973148164583282917307163920848777257809488795856762407875184184954659026089095810386461054968259401040484465546299870985413006663222357434326517101531849390391934554787081182007000131257876873340242244149674706638668977582123400566394591334947316454864569875671448740318336275276824414971597235209044471102439582601162821051037101756133738323256640127912937013852569296968300949046018578792857432695054142431206184494448749544825703160747399631941408608995692442770440069009938441404938076170743714209455506071250520089564115981057924529319813225294573854699708949232679801467132978438394507110377431877278261258241079117281832368578484850719055547936516636959789643041985473266290035415597257078863650581235071350176050844465503722800090013095725797320908418394742826302221275315360987770801576045853605149595607492793160269898791654061704788145804235097467326103274816887610875500027134251731791485687184609626304815796245442899519375813890072696245086008841463797567958053490246372518385897253822094896683634120387717450481255794248260145481375842047748000348855012971865163075526625593574505123439423628702452160393560367683137913242249208655591662217578301430249221566083158851303876926679067894671213545881901455933646215837874524919652936651834337260078937811530884072284529007382228543787100558105803011486956773062790742409302274403049031072859886838794282827333239189690875263342497116610443546702320414697227139605579407441069380675263691109536264396401383268254105686670897043385418042015637985200391724457635051031068559289604855059064726425679175595878659334925104498832484540597038898045684241141242007364526115952231938353702068149901507526691045484565372164884099510336171712834981475696801540133970602014463617284647412182747810161825880376972191185866838330589489744074801510171315834014014590573086670690245487302162183062703310216261688872614723604927659568228612305668466744127164796684763232415361955723264846119209320272878671257354090327165186459799100933691916474809090468667584577758602552517876419605112268257540216901293431038060005053917278604558425579586848678513971251454948487670996294632528498236124333062598592974728461673107484092575806391114656687783514161783686863858331013218865685207933715762145105394308428407507573514164748931632776494706760593817774203034642945529427299631542264174009286466442360734969963841717991993638403124310024742879950464592066211990617457698149886578722362288247953898888506957179259976329261258974341339776166782765744962127175748890660389969669526610532202593995539328704176763224906608563115298018548059559545349300696368432556542782872151127681486156267282883647196389730608100867974071472767223828764670882917865117252457573734689790720476426575518830983340232477640971049994855949436361116134218278999618010988472031893566544128888468799938087685883455920369601747849176415166984657284270230407698865120177458020185253380897061530038581131794387154026439083952421224384197694789096771506484986965278849053474994756197198339077034994689668705284306822803040387254399410336477538829112464987483434868376039529323808365605740241128133073604024253638340502480240597486582264882403252730841037769687322604523540077404191369832006532927110543253418270402267386556820015603523321309709583428409417654360982358042052714795430488017636711888884306387185230408290567533844537105924790345920680908589746556193876921416092608057620240004416863910404094435914199988330914849183272391367922064796480284074594204393357706597531914158835666544717986465231084497627839257106261150439165417739954559965770625792101840718853352379021702421998435798855487396585861336393498742812785601094873638694263955854946272907310660239369952426006954888421076794763498384018042926524607211111661434982350557064872403226822259957613627407069114960676919417935463494550526687726267203552775384313300713830274509141748689273341671463552084600815308631045806846436816680835513119434402460381273675385040109524106465448704302377412685774902638506819582195291974038046978915114520832392851886363641985747629557360085808463657150066488375478768190966208322925372519596629299389435786102896559247706027581457367187927960053704624149186104328937905535308911939211980035935665755803298411302261037628623020000896456952276151151539697173026889937047216547514145169049238462637608272596321521752035680375237495731475987605791070898234801647622348698836660336874075682081437505320102966732609834827173474214246250259860510805745341484024298396450693347032729610982722125580078094813580704015679340642505123368176927551564733525450559709225130938880622893771694059673961556861564117550418218429326715528414663854579465053536410693594950705219429438789742327550381564208209786951323071491643391965892291197719599192938125468851770501553208983858830357837323404394206810839838146849882866383979494592270791861545236579375307017628573200863899518058164392409242468264808257143934443329992512051426307131261461786952162935336151245924786331631723276092686928906769554723614936636654995141196631028375711169036587073996242341453765629898998942020094015123512854038776342236414747723261245103376669742454377618290449085375659612214039289716856947078750411159664121782931500128528333358158721717476970913368532976587745852723385947420009912443674894330827057829060165405930393131074970269578846572665230227421639765486799231946698702565436939789613177988256113930516371669961518661215268807332729043078536664690139233517726990881895595082483637810092439638019666435376340919908291821303634275209600635701325051991252460362285490334319131520064908236416528376373192315243137693139913709650011407274464488489836421079865296422347420357140778691170432781923580127017137150243270171378647716068453103544670243252117186819188656396759300995503368094923398962973981984959636883358978084908410515153253342365788550243587312961926780368527289365311636715071082857170456869264309420895377572888980068300849719401464551672851275826220948812798928518041297318759243168004690020903895003516319928342348292685044893278147846271064590454819684293362812298669432605914370912781199455276370592261363453745419526409655599974681695080907343364746407963526261819740850388737424376320862811774703632186518973383379938938275335797087032158877575609159637686717169367888915190992627154828594556450861345355726479096883070835242048189961483867548663442657667683200194315926693800359347210948548705096365927588893150889903478898239630192922889453862006770136711325126203579457791556199152952715591746684283175342283488798766199366252045056354658599991636924120170107416695996699868567813829028737398462219324672776850842785192663974748369902340372055315079996888592467261263630603171097171791051578291786658901475472455004567136165464607156347152854778642068370167312941313703732309340745798893056025513410949196590181163192147633980386184840328298525942534714611985717945041384840618532621968212744030182067338498961797989948648827357214923567164356447739153368933096285774556730931245536641928675510284429614911802674775522806718611465813924500675347117174517131224389247091813552028348395590404428787271709822598086397796139180045396724172036570137036676137127632709369704270421216550756891705036818613868577412815798811086647688873982079067173090645825161935580545613095848628873652513526991947270158532152603306702246183483977827722226004412115138067292415270699903033260244823414019565081049245459173482727769084261445654142064462323713960360310222002710835306036030125464298086389199619336784642490582203051487987671970467233452340982995554410541925199008835583879201990280611973954089913679692606125312776747355707413260430552476587627975089532033936972247952098561334434266894702838724010768027541061119225779573312276838028079913412815164426272987645393275655656187070914420837089873174104948481893373890508040805739144313770821818642593032944963941361690298311501809005187536771085743669316171675373567783176189477188573014518393892034459311655473064746314576736741067240039769038848219092783950839380803051674504701504509840624643650607566943420704623892253942270704808923611548542989960753146026665733477062374930191044143223055606316578814835640846793438594104466322689744332164769810425032415162057359754312884052277618685743083591938786910468595085088148283374506868854760967846937770932402857950663328197839981534402793028340474817257097340394698177888688025040945722363992568756232715456731468766803851958860876047960947701836091616716002183074260227488008536040985157057903713764549741956391430464655887116233277495544453157444124807305595365877301502702720103259952279639288275515355352415962645922021797296632120061087849919648712614854711468243123643216013265627686817795066850151045223135753705856937066236089270064113877496005109528398977081898201709122509180059858514515042776854725880080190986489735369011165925565363749093793613503886004401337890693990956387837438416586344493332665500866507530861358232635314289524618660173687747068370991899328616677567926935165648276578486974050108822444175544355575625236273519169197441873379305459077362071830844105180127476684104526498440028067808040049777307841322844900045661673324527298687676720730807646927934935989797899059584014169909555214966263599155826929791410973298343514365072790523436303404234601251202187142986076648592708144507263425354687416127906493675534749868235525977776219357930139818564858450241155603338795889170225466968287170738565189442076329101781119893134459609538457554541970347852755983953051451607921901239451321600693968608325124433062177441892219121660570174947533248966375866401513976599995828630060364103086569130307467285757220371540178129799153007069093918788506819663119058066472222770837801387432139005297924491877126512034858814003531830235439825680205168227006828211116099047074752525679336865928665993476447012420282269529652203074030033939656215993168461193255971504089001346383965103227255674583232894061945973718291524119449749897127909915755388216381686581615899390864461988421173336076947697365689661456802864223786868586650420118597495201559284563452317516882794750925184353207121670412860927312512342851749089246716567789868637970460599459658739893006939208133041412755073662239685428536362185753848977169814520315819322834011093325723901182707841426263118245032976123499246108636121135386557400252723226970434149455597400596797996281831282200170285039353782131586995192218179914940559281666776081455327057684585244228019907459220333654851928615982739886700016118028700882539331372733118555138192336351860358205435127985388163915454469888650448243230785244012786279751490912812376343118871469029061358697583214115059638255397948856409649377426522616872458566356554616947497402600619006644546837111424502422894358647013037946224797459551594001449727019519239793719380206303809277243381799048592674450610722690223280103223721346649826515250063514497909362284151364160159926745857452674734674297870415383548048444730776847383498318745357386215048219475395200777356304355518461285290437621020696679466537636526537888118944332383595447176840019842854951510101099802428897200879007101506297833753785096781778136757282616337654214645078207904781594566418838302911381266388168870911888063579492092914995481151167526632807230630281500094644797099218931261060321377143213313027566237780398769918540926289648650097612001006905910608324609496981666002317047110307579317272693807535875853873357554152953728278596208072669709747079276385303827350792542130338229964782480657583369464572253245782636702902537313814003687647741670731408590341403946474425493505548838123974816916954970342135445108249137254997831537893300825451772742628184381816864686424900924770122006056062442413616047965523273520064262152879582313208134518192976547511940386352949941658120026880481032815598481940344539376415601757327917379815764337833261274988047587892306292602452248717841886973120858751769788713539019846209067722039243874260523779077425566357664623718623548001807144103168786780868952788192033707161745893815126550053822607472969989793377843324137327505463586514672155521884606497161694705890753930685586727080371348950943875320010341721511706427921806176485539046900198959097366619318479019619270682254326943314187474428058535706858702907035550195763355457885094115797611842967885966276619867199354190590332883521647744346819669481087181569936313490121204716214536724488390909024160269131143514484454033753702883714195461969219366483220035424048500828571371219631180181172970192718273441082106653935889397716979790520997470668275798224673524113478157165184255421836272672955160898306183462802557942463836147500842943257180655572037553468173965658121636159228392587978190032628308007303042801534622201815240010367918743813920051163053947214313854373313184680913715515923161931091887345232875985929975559312250004679866274309699612410089550412421785330490095840091367588613951022651109158708635191854010705914293858921916325043762928959959615289859291249206196872859290209584793739021173493212087220110695046592286123088484578834163563700943097489319822451120497887609060250559924623214872788415576965380472410071159820976685864508234665841548280092668700946759003068701601021186271758108149041749469551193596819910267164535162625511645197047232729237440795734365044771365287373941808261353715320795409480995025137783049857184973471636263332996647340317609547015254143488958408982084497876474416859204103529808119846144912523108797055906676459770393960018477821209761490902707610753376284897687126517925279439473278501639202394923540159956403187539632165448447898847072084612921854912432901682494522515564760717863560101086693047586037112216929955489178374768194272044400186159432780141942450742146628752415565919680197384228992960107967269797493735210691673261298744106312518542039043862317855660620066423627837961659877732767703150422858118587402132987518937385963949961651892169600155055186368884074279926438945890754818522361416579795210303371098566859185151956010668652869290780152915054195321268647680055605894034874141603802528303915293135852366306228401176921397468753154414737311750822147666528679337701672685884101869007505151794795376935267687662446671561017296539480831866682295344776466669056275705112798088216204503358045457542073977033170742577243105165928495172023596961713009735642330821132861634343499881095848044506381591510389519758293596145216617719654516623689544999519186948268677327634461525980644843259566461446168605927516692121283730014897889322099124973453967814630656832201421366050121363228301211107473323951581360732851374899223366991186145830972103832431226351132877235505740257170158563639999936803173974600755180332641762189659882889866539594644430466096443562659758275442054914434699762418197070408680346454853828056186856412776935664566204785966063812714157262148638633574140689951453649015018932175937280017902988706878759165354232828839054328922859462730226497615510449784893504342545756787481377478152806681326613513030135921496732599677158025397362126579764068956975546039037569850802777456751830489624764454716447198943808122254740692493831122914859582071957236329522346048523222399134630485997944060897962778184752270396984786055997234517359947100396932926891702954302835170008238799088076274076075285377528963706371515014365086101624176589448263152014336985043203563228193538546700828272346599493525417057701558084380217261238189417901431138633144066711695585770011244987677236855777518822844083543669708970909439552555426942411579086424831680736972753808172459165597833947272091305166107649826076837206009061772970357087307754985594634507355221230408408081295044853331359011793808646513820961699559380196175043608585942483323152714245334446042395972748340752934044022187296744697581411020763262290592832946752568613306513006710074193133755305232025265325385958726379967136476793998321418996168434922669894742155231664158287096865913021609207708993285294690201234074173385268190370601765388427402311694331551853478228272992713452419234189799716553047661666571199765243799474808145486940165583201520909539766729563500834862018167379244810730757418464984028724428645142977851937155965753793036392243399941815029305862499680385985577249421714543944512675664893601125588935392246412754444983517928010269834438906544781549142506905677304117656042180032890318352120665749718351809654659005860724215440692288136670308155196309609620772129955933244185917188812524769570646257207908033064389748809024556850982015742117556691595163161506915852666221235161959310156057852016370001058332325354294381343130528737898993426516950479753643611849913622841258165934894265307472762005705958273144482547727072402583336797401957634474500793333327945067100449607367930159673996827997302505195360162576095503948022543796350315127987335563758878040958047430850216689850247999653985347230405230938944068741164259845473314567922984802649191988602237976488285120593613339025336317417007673911462542316019948401361422425596582791654419199659568276117427921105203598727863181230265652877155029310231148735670075165192430555852413633986094901824619877913105041490455922376952890331794591612597338738559295593866282169507312746384313077050388122805035794452929910684522366344994758635291010593461874881603284405906358509822319776411247014394411208372395153911057658546228184876993375206988206357392407683616408340677660300290050290287933926614038908048234493000344588629970683069542092511836735786261872932418985269296381633936874168505213187782344191687348596202414948591177374226422674014694560918533769231120985841054248804374674351253148590418416124871920694142112113800039386817486285454104626345235399434889840413814065416216564505177895203358599781787090419527786579383511541836754379912310736614926698888613457105066457460190737089254380484323774925516434721194299449648739092942988409151505976742768025221274502724288942198982168678101489560529830423034399867151263878609097962986977537287528086392481371957620740324950228121344255863960710210897309563229622810100211175559819303568448911265702753090047690239746042076998030937644246123801089388208710347086361029506335384596584091840486492719295644752768371155163744742020744094331877138309604881930999668713521427531225826770425950198328642689255901566040653000467932322164588251954734603852692229499314396320878763566608832907160330069272881106021838857031686598184363408807044878727190665085223317295685157590455950479522147114291545898542561585277042968678102904145643541832737589748071076608835516261304746761326194123574829565424464186752852958478606479780858489219592384871136275852760592883666326744970090681085075507067891462454169709648171109308236689873766313403323753288610143114652094623565412635402658724854937121225283901537555692508510258571125853013129138898800815405559231984005794035316595683800650227915783092088646440279400562527108321382502442313059877664071853261204993403444176724128630189839597921460813704265074351685391323657073688989722823137172010146100448837271947112331972119612055885440399126164584104656903347215072456691894760216702864229673430178549384331027697312136949455040781971746326492194153954652163985648757120138650479991360494315112718417628938811913678128164350713562635324285323258079960708984839709557638143520106513450043457009047888924010971669498917816263105088505770787468067665307834409262017740649737880765727588306648106854359086412799382165083783760786738875423366669639276642638035182967307110273007947415556068500018196718992506999431555300657403867599050161167653078830546942548826388660384776327850144414517930541186597130346701319408070374459837751666559467473237037969564852426567164909891040228767130310526954772240774638468276501099193207571899746727386999803923269964196983505585904765357511506935128502370604638892590331732170038897864323735485270983803710889641703656234349663599055051674587051623218677180208726876096309773322892007410134729503318162403903387161607522394336092738512351861736229388380115338551669584249003353175748854246994701839159038147545170008197145104224422538213446208615768319594005847555284800172204367867416066276886711706208252727788883952310471374535881690409561798383128389657675859736644504590318713500176621162789908691582552035403052274165935837925187387267817567334450201278751228030932355267074947727231676555684325480790454196225217141162895572940109862541033268293947763583133041839468937572791971734846602790762294031870361566317665067706311769493398249632036650548291294269526121490476945740721364516630556895587539945703942529943479137269770214100813299109092220627045402839042786438280157302189776884958568644162461996776841672864896194624457692388105164220925048740372815396086679873989351085659801246130660233743738216791934843552827141544763780409816738122206782265621569571796595174566498794177421237638066608017458120614056687184794311054029344102878736310946592095849198775332901971302898663705521299892082229726740821925638743024508882160593755407039455500949661825094391467029250109830411130194637136022061692483661719661946825810735279405904703856667883447252717091288022365452230303612403388779828550113354541460657077304996054004799848809640092461598846373658276594567128689667962372579837087817565917188308772350683483550139437852355343059119504639037464155534954759190701586405544434418633182731220547707584829775114050382237200097676229795096844812955505731834023731214955051081541968386208128437575949716519475845520438145841874951514317906143262450464025296831451924315371877711909090203740283492592240890524926569757364000268095513790044454960089792975046883106637463262910586289263104012815777770638370779062572571828677912667648627173418966610575440841902082491889476283305982861991839302383024788148606248329048334767091769145546464093557708022341622171787852334117085613272970310866633333414116307699358389438968083083922639154116061474244932285069076238852321450998453597792513181015702950563790775501885158339100573915135981726292917765300074857953872889955669713110766653407838701895013192396835910885631456305870120547680897662069499446578536868180696100994103326878895083058534090156913766785658455920558860282802039002866068246053087725574751100416331773626192159512096533683473179933749049027073965462869555251222871796285824554195268017725555985779770054829325433168482005359763749984387925061111354498664211030729926089125047941251945325162291863547191127052546081790146415099656772984797581681064081735164402044536767984181688959207526555148926489395673183468876674362145939668219537395861025747184751449598749745558236303812093110415723686219292305187162422573519678525483281539911660421024075117682497970126128982677822067987672441054560002713667399183649458811795107566848309680394576760675914306442341154646678238683884202757356650274982803982266774076322722037107199215896008856356253868425489343954547947672583435589751960284138432775362347354076785713087522435626765275695604867036571517454689120965723305216455156665513038790317200914074271720181677124896717815058124120103022609950948763067228121699731716653520576590807158837870942327504637131095663141511025660805751571786048877230140192012812102283491762131830790586686177342971166771627834008507037376487880101535682212721652795038897950483557684724987458036243854728258363430124386271765404223390057919391258518737396875448632339380031537870327183503801923937827946686774817841836128828969544258674251462380673053201594638858466935751708277593999679067257675985929265916541218400953826980369528320650961858323798533248553255442064906485332446325954535610143364385477494640912628917945476122051069597145525797549847492423527484629938386358483005829935589939291154701078908472742216033149704327056039171672259611483472688231828679181807058408504278310105978792789032788585655736916108479979521839965463888702355195960211377252918399368833581666159208031065545469382826421277825662763031103370306339825273242028361820068541442667484872014859801060864273517509675963726080851281313627763869197467874281001985850883300543773223854486303930293731736683235950972000403001690350984111632792400731809723759311225654257667314360785486711034407599617769168399246606314195602142140606347928304731074395923891394332825959704046114217846408366755219483678959800971670978413930936940053463276019816440260282756901869271918028701169865546140953790551005279082245366516661844643789528090238723689547736598958704925720461796451029496675117385188057644752919563815304903954561706454774391573071176120611974088707760967259108243314525563958369655063842781311406269700036177386007426797619224855287122663491151241553340314853580653452432741152363043433149304076860188977057042137072878900728370235646019296222765746664699158343166923096538786779019871020033174929488429292952219765929205401742879868294891867337293424484897910535967274000290864026225193037002120965787510229946094357712309506727433557532109618118267113850313044408656209641423902384894119921778283093103189282372985945717671793712110639281445770905720543142778240686192587837038493170366659736350545515793882509184689082386667648177587352944567953668626757540440520271336341207733802575225577213620936229455763787155137276402394627958649480601064112905749313596024280036351359890627521400359028862354821666166539789275909248453327178447697488629209529606117686426121005821255615677106206903506518039242540574890478204527979160062293499453058202559400270164554147733006428830258164079688992140496882366540964767090301458338104356580967823749658285718475343707468500880279655260769654606660986363503161516096382209743042673174702878192426989663399417776481584357591059734658716479366543396192837980294722973928829400742848088368515089684294483015256809422687550296113077868617888770866452160742121436365913750861891970483505625852289592975863204714197336790599034153277294757644503985404925045552680092686232578834169546762955161241664536046157954895346089186364483747393653334111351095845871842757506685552888756852366618109542062096776554380530262103128133078092060799185651528744061069698289590531446288902238641237131119142181082294787642269240790882167996961022122896553654030483539604757630793970822829293533262714910046263929972048681655429757982216589282879260132348456826496475642671562000899309914499986243095461041703642720888054677038108666823197414608191119274461142812766371923139737691962541844362900608271614779758294150567180217611319588215314319051347657187241602724155862257544114746829476372297385471211103162825990149783644059665564994829878522916172864964615855886057728685904639376833726359760859075594123601222498916935819937461709692170107718888837248209566570724569035571009309952885365556566463812452439097207821783577132514487082605535743042652425474345495087201072506744741381790126599210917821130361999625045370039991224685664410182900886309960742783621079454519047296296624229176131161681706366162878848092612266480048794739691278902986911738765535656391936215282716598906171381936938271188546370074886514950618186805120160732994257853934518039067990460477911118154399104838261223823245063303769820182883051512508173592857646546271395509228018551649983827328122587989029818930670062747757061085836231509220583331872734915858781133016511185108807226051214161700902580878446937502352113465083539094748867774528246154103830173853315719056713928152176209136219857711776195293873980776770315993691084328610379990796341405226033293234199008527989976995144480963518884621633300040781512125082829383120065095400145430479778628661247565380802382597031408781896809006235371782884470059916267513207947232687668554341781347776457979400751169774688962790020602062025415208846514774078324785561059129320277007542322585518835746871448381364899212728067159467811920933665351125555381334879418575343235673501310821042113193057554847260534634260808849332275509732254597459152645066803323533281539927827495449026042408510428542237237629474148361941560496619687360070445083958384345011858145172120658448391522250825232228209645682896314423000457614685528459114515580344727720525916816657208076604388438156164565490379422034873194712467617805000500959439835781422835325100382716782021531081121830169601736712291646095636974176112297788138917133819832903279894597224741645278970597197846993909914788038236169209805019783769383306418900225192628853189044058683998281782258648249560320426514580535857218692208968510659765556722113318998600402849053516763004555738591560630569687942967656644497240724876441225325173791141117245141364740192347839069931164776645102257981440389123569864732145842832960179022345185854409257494408029503281210103854359976688890916714314640887632576631931663663217987873649698087831197681723041206664182667361726719062121099331749335793684781907380319251915249500068676612310560555953485023788790735428962854302173923722895430298851563248638324231160827270207906541756161597389034050011693569114987783433721962600744550284765104730662277113308984807946239028996162003886074165763736512478528720793239907959196992530289410312938204040947231662777464690576809523579040642974913297531537212593303825695520885210931976555717202228639686799864197468700796705847887005990100028257534008083752335159307537749486197780536433469791360149611706277527409690061425497331308317361815810938083766339273381351748914907310887080850916864639346012648063637826287181639245268789474682003574051682830277149626232702341299098021168338368684449229513292172452984147223977510913767072393139732421150510043610171273510527100380274007568429450161340345682076793834884288038137582055734494099162460452965007273816307903607163392918857339370445457653952340002838770679745766324924779712756243167651224445816645700784833058998436296859708359604121478027823393555633945575715520985610708540398383046791511354223437131486421532949999003357298107667468898252430710479500442312850941020800643606099836732849801165172566102204047667846926633682486891827299084480077949377434714097940425428468568178953338974895040376448217157243873204999590666286361137202453525214309941576000083316609989244521132250564050650759810964948495151250233502195575602756263543588814700759610903471169789975512622330628597089752094049369012758912425121318836527556874873373112973201104638141116510527220160411958603733125745490818763934046947196802924288758125635030228857587443584172739345944658073324718574514143736252494431125041956019591257396242943868414841583166401087431282417996581256227721574776608103769441876337205867449708633505528130472604899632283791062585794870556889710102010812412742924206550297892797865028559302442800960782292366331478125252362359261201655166221787045498331881424977602923794604126142842476782819789148416314741808359911740219845241592564229072893914260024898574084467718416857877273219344139455820009140762774084365642636521855141276687149220816581832846661681288578479861893638779359883651339255515982183527149271570249499916405589123099257343149587368311122268288601739961902651948392970243512524310933084838284664951158232276473991598718736023223382639811589595626892828486145591257584967671146491387056170045953047827226321513800659968775712247315922001123305975852611220382414989327803320333122548139246430986388707085976546748037913850823454525636960387143154241910647823118886605933424992516597914260819887794518682254779033813192089114556911215590087208489566776013241290457778065509353204569819612156455582565703489225329206506371003084027285381468974657958561495694886556502355160474817055310746189461869550687540904150749969759326131842474991240170461874288741619693765001640746178234873070292944926887745175088628572567753613315759867781316273175131154519165737220211604133518954776777463001731631871923434886915100076343930620026750409346324371340783596771981611133536646174390828774633207667047511463762145581586190279296498595194771346392773334933353185855288340575219514218442593506711526463041546185514238214149299137935945843014158963037928149780830146368900836953988313548748061991197585504492062423369168560371247625629758217652682573969617298854425975899506147458020699691846145191737695222299928907723627405356293196474656653218380109605969438785182873074294766322741431304261942278302080449075679033093393231182788320010660498958050787255954857823516066596121517537398312221197983428160042904996954855256641719295000696358239592114842082031085856802511740317920516455846919641616739170223165291167865275846481414300837834640211275338127282352155984187574107210098894928701124025594805620230282541672792596210707261225330689251379905073997934517767696410462317999708126043050983967899300360998010167990660161878191071586076820019388477087651157989472004192223343693979548464016387028170025191399616949474770252868137961864426573936708216750451552299653014833067479575152256641975038600251922351444014935052936402593773125757311445645829246498906689881533257973248420963439809292614548299713003193947924367678889046921781330308317047773099763641758085223671615783141542319470595886342645909415776519767994470677841847156226226705645361577831028638976324637679861702246435501026411690659460068943300614407698856246581652053426438955412384954807033554023242832602695041643346664591706249577327552097490145912277921630576203899543889237257063146618701726231558269650563770037969331950267703320363748151278104082807081842813883558621361333270874557519544609740391992904317010023988295285592809034659212499737978987771423538921532167053965101282382998044701281200040223446423341933211534451008986258362412930381436362017404133624704170482746657265782298946676929109789561342308667472095950658780792839923606137642126394487067028930543767234401194865210115769310809091408728769495910493225571947733189377485942372495247684011814122543167074364377468828509392284209698504184085913051965243633012549123140213835123056326299160419706204269898010391567161752232704161646122654770622121949922251105520015313322556797202418110495288353881691697811840861254831925846765128724361156906908219289150967483689179349907786361183976509287156369982319680762287853885948162119211745819348611407065623812305132236527447983861007969073576443860735515271860927094033691376322613363031444082026323840390396699319248410555595834625320317303142963876389700694310958394838396199437602399134309931417885386931127394212250792753698577341148432649587177309346119379677348414530416372204097350681005709456293668712308525733361104095581612960283687189466928198978368867966119278711435028949362830881506315530151710885457311526406365568196015018340126436588593516500958008055729573721835901346975710392621571119689687157742302364870602489012898836088574461894902723841877613605147277882074965182765684285111643596761488038818167997698808326977317925931195866679694956420670345159772472710430840481050224301245220969571938278054873931619079604955113055279480748352299536310900860033925237934090059020444966757367833038751160560738550889785826300110298374093832458207105465805542231937450218433018520081470914103405635349432080899286846013497928656052630961531152763640916264172476774642218035755069686827990404072318348953754725395907914910644429340434439067270171213231590269006105737296566842271973203574717496365328677622749239520610037300063832598380250522463903172654250105511451154442351510645937550862618216839027972941373577187116723269964316077271140588692504304711178598110873558943586740369347239562813236753589689410269729482762637806993990507129203811019960745549588238069895825796981016351815615518273293398480062410378617511100369515803593403348864375079206893984884255591252240390738542680178008040224305964717742527106977126142312785512891344693118725871877930418908185688471003746728425602149564123948808450582268772385057139635020366146746923373803966865053019616192142585472318998887849500895858619920515184142876275344147493258256485786467254305489236044615297169835489925693379272956835465802862268665103978706402440072471949526336737160325245658660650581256054482041865658187903919885580245355147842349567391273299014383973588408715290333190843479253098868085231969040063339169874952079996440049876732334080810728385771141203716912788773187798427348168756098453321090957983797908426463094753312372636935548710892416211034302563202055946155436077549929924868806171677155366348049346327492743270288320946445210983463176958467735705688353211577013937592649926210466142752407047877888758224668949556243242322557161768586712488850408185308887963329959925481970087470632357321024197483790109077237065392665776655005869899165885127509799534676954605760019824638390678136029885309925020371895179693802621726875570306353521243623953711842153247429272062663614041060590290841183577628359881447858995253077399551131864267043382173204966126660935646183392247685690549873747553147910844032049845741678443439435015582144025342969569530528226075660737902079070535395290508814803546288086732411686305113207091916373401461605439464874117833488740526497914228740138786717024727657702368471570153719448671021589210591660303495125531466391322167345310813890317428329748609518857807177633734365595128284103078038353411051560909598944523785784188840334918104068640923710770401295262423013089791447772848168890845225996732455073836120986260821335385050938278529912765222767199539270335634149331847120334734162823818391230343635464911457275308832918500783740736874502967417912991158480860723880823579106095551632527033134126812167768039165486427591681380873719737329301016038653254031522790377566173055816621196032760620233950965570268661155842597787083909194228337677821057803919896979401280771781311030433918182735436951549784431060940639122674537914609488494907700848854356439542195505179651476705738889122221864224951910136621149942851347341752437190036567085925219612772780104664065521317627034371831104815274638013417637858346006478051984546796551493446953598425454505684189242626256503139216284248628465671042771730520304486696299100836658011472930425816568522997327688741545621109853155239591792475064951857247368637864785294420076827599000443956901483632631213921880539655333929529388279893586619878840471785612773557789440426455364209533787847129790922727334931484056594808983374767752982689102713655396333761308155728913582905794003029489677779827657300843868997511017501512623860518463506071490148889788418947110451638506009027367939959482932793234836676514396023569188993079640532437664445129652862296976386587201433434153383365484649212397273054818001950255236671176360305409817277683384203167089732644016800755888699452323009693235690257887054729022488326589791491122911788325610528570831633998621129753833244580789484458267807956964115702665387363326796380189613826827229500337842142419714449209661381918685197980483953958181393588382811598118882015014697395014453886104601550860905580969078981625159202610767398975640019396230588255636217676013188478897667096549600738988612038800966164556839396684915782015070975473250548657946771925413048724039770916666232173239276878728877352836095295082331914271929347099749552733698505188673193852235042896904861187076089831934185779241536451374913728379942873183473789737869637832427678158247977445682968653661449523294101503177896627654258103447295362575400198160557778669472702557381172666342375610701051475857139050307824388196905529706964469597292256425767304594490608691705552082911150792442852437171664700649689174321559314601387020500670707194580860943438973777037993249767294777370781887845542267169122203817084398702443856290243808368764514351449328051314168236019165103084721501622745378735576467679337632309552240340303260447906828983576060438210608217415874866525297028512810119265441847406007371856293592637132180749435028070529795790332156927546465472558392435929653379438849729489207925719842233064476743777943061196497190612257385011253212638607514336847062055241779993341572854920933158338720051165422325381573937579087428749527828873671169755364807612701078020899940706604099141815401985338173835964355823896329136383166549636133771827253160828663769622813793582477638386327858963684057501373145208974875653985598343776596439729421127875271803580533209820461471686219261457067089445031902955557939821051398640030387990404092503027658017784573654369141500714608918652456863330417422002111381487072507530464337078549401907894746160962088696751326863365684619975296127781902338504754633572216716105718472106018974101031212210848698868434036604505563687594817062349001532480797438615980632866695705389501520658674007848781372570519000857551426604672073565938300503734970422633761642310651441148196949985665547445171265848791325912347221081096771277202250606995956754885806586729626218876885597094140802059060074130702286698386247829090079634758980893007835992177074910960169460449443354559924578231439371548362314941223832309211191897319244508790721984297418011609269134113246461856183906448495760299615758876684636178619311189673235789919564174551442241696778901241337219000607577895252480951239140195620102993470586044972925014729216672542981673205551164797692998065229941915393061403007201212323681533244120461702538873709424959214785246882182298743452095630223471471123359802687277146531928806948727209430563806419544758212259920381743345764243107722157544387758735719860011362056590084591099999341645666490737266611330065481000989223419847921899955473314356912013431540171251796302632072498222012967159079547858017823199477760818800972065019284771269854633182964303162541399453942243075592059263219155157040891351816203219317226345062708078676835604930734148052319950909321200741261867437523453107010109502098203278867561172285444955241170705638697927927779648358531002826045088302675281500150414943596755834816635582297273463775122465069216212766171595028500940172767693048460506051796677105032059223305442636446353126384342427155867913544123113667540369177335620512290394861666789880044061980993270184177955594162774259558777127218844635022311407257746972350509956127232461376758657137906353027004699583519691114898656896797109578880148886129577740831850940627395664531185563707645749655515541949267522788497520255564567153219233472474605137988047273298978279443910237910987888749225670518168984405213171466537294995626241866526376195532097282291185437451201301888661658731679866048198925965230212582970825120351415870563455140041676699907900098982919310445872882949737543086540596229392144077271287792539055723241416677711168222178409968412018904894900071540409624994301077421255214380073265298033035223159935769704057327461617991927013624428746885463493835087263967204392641223128010872845595956145571894568840444855840584249600184939192284778214296933548604435865025802200043479325040797654923656045014543416427039469869890199045371065511170488957226656289920457187139435795946858383129236943448964448481184568522819015669518274608532938033471294826502582420163089356254461365600500344381696765618541629409888622917475274554353153650959892279042825950220852502353681266505700296130487080418669723380855150456881014218381362772121038595447840886976534653648076203002048080142030578149016723226220881207405917969108866853304035524310668691396439794441941278298900612048902983100649423211455939955371386451438661345335112710997395417443097180061992203910102777159313537275896216157801335888113982172091205666398943615155667176950947728646338581220386105241574711271577885615829040560573472315434783473026466998739384470532656257722078623161519208989224399990391802481560260864703845035240913169666477135753750353111439687990721073431237977508872921218699518386584876603133534260296055042652817996519369380929135890787357273422424977117113989288350504318372202652035639160458830516825538420623031126742849980592655864605028674340464346042468904812452321603824758847272401319142305456185568574419960392894604680525401171278625639470378079625615228527205075706369730365664508953217100648178771041642820078736877703592620987987031466987637976629663445808924254540836879543789513696078851816580795105251247319050389602548560111077989641845673607115116891941951821553339756340581171448372277109475303887748912417843384530218606857242354616910592731020888943197835233885816925335588720337494073693443952649057928448518551756024965318187876422771709921097378215999655151450673849229303737998443176549854408135363854658003146244914815964777953351327990820393590705292035740791926356596164086347685825280230262039186773876763591598071171407550933235377706409130361986734900073525712318470841200068966491636852017655915796529682850252084832283933607794629153165324083163156080256819152604911788584871743031550436549827433014401455745967235096393185337601783099616637073523921798336617170785746740415631609539964090003587097071395850288833124431627585872748940535722055552909770523776656931438686113434089035936330881263686517984969290909960451230466857312567063714580433017227078380974777819623570305903790859122604869697389724030510918869802906615105350253085040805545808419957604242254794898620639224301078134907888563659834465478631244821136748134499852221566819728095839042955996901643372962547354913546883941718041386070673103766029962124135403486725940875173790776909801928353678290632866842506279779424650121216289887539172140896595500934705835024256533686121031279151876662252263471002141084613996317226323142499939021033075234921475047354427434471268417653075248725545080047094839475944906106406436908872572712566024109867616054623513873126738452032151068342148692663805271604838454583045655029797034451415658651186069385445013447360410042040262257757282919347461848711855241147983565885510870680410637452177380498577027891218751396341595132446834906333300088122112704747586329467921193526892888128557652864230131072748875454840613535851319907191522049930263888542169961845141595628746195830744821217283851647425209825240660149826577762135821124827827917554894699483305875558817814403141697965674712175827509526475331935170221149247769795691068559332070323834911505767379228464069780329271221172365782678370224677049429115241796293836680626490675743753687110916959967016615863047323933694251819291161079302100760043175093780455003328028316086831338874988473474186954949697069985114922647696810181096638170504537168962132900453250878358874816490493808423005058816965750185933729204777431358493749925621787607011203856524727565877730043110881350555838053694792908261783730788069781384418669343234553037092441584674455558267658879252911424444938159997655881976912492942069791614981867381193400437420164784888211849842235940369596680291053896278465282385350650045115444001608043508531611369723675038885132263561366773798369450156222727473173178570112880969870691520274959955249706298511886580775859363040522097679658615294857130333119944903483690184800700708133597960074806561564075702041841266921329015967570915699258219700230561947064974158988376759308142166362051826330965231004398795060680931370919705572776930626464231165228542715971391955149136833370907496237213423439408188350397727615413513940605743207943923979799646365029004455460009472910162989889606590629777961690685241589612518669893877248385689830774874505249012124818763619585743620246288537384131224635439083387774458125807963528342332294694781948765904116869877644597422765653657637259842992066886362716645113451993058250478741239427219261407663302881425625266905025496716170697223113098355789920009514516273424749972024248821357276893139236549806026717176270134448638276533028242413282847743220194408927052986854485828575420833243461250789791586820191022083370048328032455787567869242346353724289107681668315418395151270103580132014831239319470341156991062403439359495155299110161773477453222331027972287218900915574217107478419599186396296362831474981113324730636437611699646924767807117971310270184421476746749241564413846820359514610570878815888869907562859559298834089496272778354431800968611181311716227546174817944870263412273738452790084221512395340775005928749493401668261444317577009476460400905575802162660785669940017229404817572877672006942081811070261904924247940842021149485231777735549067455015068344725387750337812368804900776111895712953713409196151365325654040299307052162421044316307216342816491548087801698546695533482151543519113184513015018911922800651341897010681149669063428202560661709896672822823967691746220981718608875479099388924577376131299386965937743768022990527478951373509970968686391747020939460361125378430004693285019704030399421703474299418731438659827991080475547793227791265811100696998690716249467365396311089027338376864230649607423612462673549750746901097364022063066986464965226092166750648842984950275513559475533582092526716629440162155139048238656955083196574233750765418638357509516059480490604191010928588901249012495940771374542150048776995331884751828657721879175222455421194628249824444565086960084809874228253947642923025653459326619149594305381121475793904371980038673869602276815018868324006229099838043451427743130851383694037583027636067579304494273296709622034685308056750465087295989307920295933269972823702800647466257353551018232198158620386497538918230554547155289879429042839217646447748258778566575140295000970235816995402052442190244843821574422461460574352907258940801799369747810456295646856036778856465966950258334286418661160819322211819545379998578310980094450333810919020565956510777616823532648859857511977791599982206610311840915064907062526567307437070623475220711470135979697695406727451912938324420827503763051308107134355960243656396363463417242268583901818737167225877138015329655290826480485630745163731056923237012677187423177444622094298956596382210023690279786473678378520340614540499225023191514210138556957661448279954210173942653963400498013929664719345173208342747304692773702121266625677161940077917195884317145623514338571321499463289858229333850772482694139504846252265155456718189245169779408637268342398291265190176344606869473407133696818502075261536540059160531550504817086827350559057975438584551975747948338967981951988451900732478957104514040657843695183527888281992578754333993106466974824519098426098372987032578649344738936335037396078804640246825364551181115477557926266105424302374789667049808282215491930915806738528661471407901615721176319191640288512362002186548661324568091958328910451002067583727113094667024055602772699299603303125007537326309270430521862397348784985102207526220440727249100119736932444774689600596948080247491429665436622216935930997825128495741846887038553010001521404675121441190786526988567762382825533675418819458545980755750405226058881138494814572413071887483099028662617044114253233426322926240083025010912989456060081116594857987791353551617730262712681461593474389605035967418763475849764508857884965304621378161710254119259240354092523577075668841606602811149484828806917575857188634465899565621889265398997775442353918100853092177838224515147680205913044573903853987736316307584593383064873082937641934603977261475506554253300277277394003611524235430554957355061724260554844365740669480555203088493728997465991280229596851707474678400329630983445188492311034853654699511735303829237223050491857516732065227207247655913477615464642559528598202838647486163697616840896980452302181121175251569571034455258010717928993308957290663815294826841024352367705992582235632975031628653575790466625879494828381150957078188150161381261681757362757210791736927745682442217407662778229333174296488533821957229439970730280566900023440756377062645874224717196084057018174721755085959769008506272460024574061511642295683724205780757849351090051983303729691580934610385095911676968088386933243486370075693267575306836766796314368702488966312565905637439661307090510735880117177076993758376868176757409095932954305394094232697630576627833835896868408259962639116161344806233278233355731668892194547357317840126603220484632375643454927867446322462338922715349849804944254500435515645860396562415780025061489776310704100376782160085682740375779794884982784538785613667148119785852168514076639136814668480453550119249437172955056560254557099965857221357041756416593267387243030462408307431661167497694341493156311224916182604068861652201202466803528159936899408095449036509296155350732080120272510118788285065696453823685265507565993770261249226241502553293710966515298708719917829973506642274538079254804774697493870388470637100185162559301000181516572141724851013825644444929706698631312858406823521271596966826518854945293497721725631376733527316045654216631546256321033102828272994417040866453408224864460692329279704579805915291582284040266458773343072965267376645882695073544626207313417536817310957477382829819363062576848235613906309298496096297184981020143701326901329694043384415660704139041995507489406341431376182001110309589300489706313360589481579093260842113962252390985715307621944068490542233002731929511939183490802670579924515795891685020833433093918407030324278499490616181511571391024553233637080947819376030933299249522680281658229455726197633064584523529246602116798182885176921743505119536722307752025467341426088576037516069964427450046922415810343862662700868164828437988843347114433890424610513211168110089115877470617057344578466066483684089651374633926793509775207840927862148397964043036325243968985683504514789617766192136048517505144765799337338671716790945144138049156560849406031538423152971100400607314314176023000103054676175442467359693942313226666746400566328615996275228432796768794085245173051052644998652567952751378170347016989523499100521515535345890224657321917275149358318901116363004874801405030771221860870857721820832194835439596294286239116353829336920156166048613640689729544665546857943756385176381892046531401901319334579881117506717314941202051563911652296348857088848028661262889910870360742679348452783927658088104356941506283551115250568292028603979897511743750146679812157894059621011066102276064424883772737500597595051623441241228170828969884688989717907884578038952079811649891280168080898958281098325058452121944961523579168880625073032011184214541815242194289416166193041776353339554333963061104162241586615457778380094501821248563205674132784390045402021153816031089656651093258770906862841530392817624938875668871946164776420413990773538642441857138473905905098342622181259599873439532622101690478661791748774660146084165420685921670770015762151687865545693018396315919987363824753763031675505844855417214328170570780677264022905922131088620534956468189323170038685919439239375469830782761291176806020424608889731747386006337979502731902581286297443310971012943640768144801075171423901273851359261889979051682977045007464008625906075352662688321522058078382313668435981748080251450323895463182407937002589933518258412654880026411421952798505524877610462788680167128646003678017561335368950143702817710670263594109421310496833650407354986754739317945175912976818205699174023393662270876048871632992204177417018811718096088221345392339360766349547952976344812435412330112231493887048669761208575257613858775085248174569341686424612773831995274572547942578863383077419625573075973730578123468566056461620956178391578098501057262662114437365031914497309478691172491028336455465563286198214385765300252058642010165835931502257471845990609560057312797354458042467578144589614901711992807651755875511978507101241891354797073932263720371446794086036345881549743057907023320557109575864902570452442624271918622928812224486723701139757559424409327881366962712354861528211611707571898790685145429287188904576109304151791286331679055176357926460323040441894754250235095429776959085478216688041916589321488259632384671020817351539064942714719020446281705294626680302758375916794784138205646515986655631806756073887205677456178067400136986608014513267091299925927630320142793121854988283057737810621650762403247704896568411229848659310717420898418144337788419336963177098483777151071919273251159251988014909232666042897278889965993048495257250189889392436898146026333761786448916365865406105162332199262736018520184496313304159498338636206930997201203867838296904762718431609125696645540483149746733645236200244563368021538321527076063408183873290012578238100340556043182628704576286782653966634705767969231642152495213429070105606616808364530389443895638214139942632072429347091794939058438423036764060996683754347838374303894202227341109293514913440452099501738400367360694614647156593787439582010303544864912112570076054920588829644706828584236276484108646700471167216017386713741224016319258587285242347404778968749787568569372599126845950946261299974928903924821490243664729535258223424392717170234175913110942967432580172395753603069197187789569701867536275092044005197906534928463138023798044567732638795997979668979240480597262370665542821376717347489566480943488305470191853058608912999935495900571315808925355771021921902781175452413173474122641540723215514952785044460178236429373135064691224137725162713746347229462664670458433841663424998133864580061540618262639239607992218751171418274817024015512296214014201296528122694125219759826512871678897716133122594665534913764018104254460997339642924749918588703205023468669868833794929986103893803988761861206843039876135780252160545124773090796626349389746217525215667977758428308778765714478376897888075941360628720798243780927958031377572816657866944155417077905100590724095385177271723181609703872851100600245028662550964440137870966817312996479164942750399776925329233357165137872273169625727009764339841354959230412805609308781459801817556424504873145272182202016257017692205919268183527573572532955119393973230692383266769893362256905585468829268444381448796994690430727442893546394959311009228869411716003568610516110359216625060773219589055946345708962571612506442022665455641952650342449276773247296770556080520749685575031973268980724373749862769356779513279765983959086325042144231152817756329110852251183365684306716284519868208840338578032844569604309417118847036779058697382324172466309708622750772474912525653730029529755598441396320345692386141423332705866957075609561819509699026030689358419776653813003784882682548513201112753659474695866660253035190169766459095562994814977989367504444169438922645370417863313045325222101361906781472121344551972210301076433122237121395563150976103718508662497547095365122188713840182959521241735035903767886721244078065347803701518362591284869544003636892691410873517413967874639780504195941365131009699611715770177391422463688621359939120557448576590144376355332862933834496320635051940393933991810607715557856177601634165787755518632628388093271689463298376764565446181242540850512350017211584399628958464038516503244646556957519136182705637056422708122140103173064630953880618312087164201270525353983221406878528984074659853780784975685908688684236515315131523594638634987628247879077220559968240071115316777223432127745143386726625947121391923960877420646817736031972919133248284990411926749097999523136369767918124629590359341981807307024476414101942282247028881903362502346015576705535086776914935321634473029385934850338853955612133238180630117190887863083704275615549582366446366306733119007059797007796098152583998919379477617977565038789438315286017173759934292525397241552693201747100464987825458495857997536480497152908808841985954639393191864351239086496030109119939995986044345251632811325129926422387775921706370215814652941315996677339690479697071453110416637692099330843257832375402125041815929649096589801042050261701267719185126114416695931506421830716942987048842018423474614870729763388399365046928784133099887412284487698281118961056144525285092794242692638370743515655379920142131904442077092865254749949572355033452303620315624073162220363686095484919729508420970386022141478187651812185182913228952653968617470315645006029493576949374163233764486801623454102834415725215241948756295400414145861523757422035172368352595425835649334583132574395354022915883430525428244403908623198377070546385388810083143110260101481060295011129523480019285734392680912534849199403946216027780365243111089829118796933533461054527260490126183442750669537932398313960589441884572123421951326537928749397667917631936583032385471263917625866955808521412652344771029598080484632790204716810301311208240121525725582415599600903334895179633270909140233674656152463002295930399622001580102786587575334052241550541189713046530616326077324437507839706554974618729305421342500792671447174894595127592548866130716599779098528183099071240503108992124169398119201535405584404948333414144369464777690615370917822581588009211417933837880446927939570959051074607900871325403990161042270862375431186829052451568549632397693025324635060527836024469236661504911540569705478527849418790121896221243347731833125429949141034988465248106571660139452410742361224868077218489979648126951133471177871822202476919628706705592615350215009700770528367226871492336430816183008654957311956868162352781783942172380595426225748312825681114030944455294118033213219333172688275723478884551958225283293603199814216816457623583340046511576976868738246453565253663432661196194861925541748316452037588635198631164432771316019277106894462265240125685615766660967231901023200846671900757584469874461845456846987973401852230902053509704789599220764448683478942108074349696389832490179255638746135996685334146641569826828282141783124303295405239264594493307261917201715114094565060914918305392853734249254677013328917162532958965545423230317371116700527214595442388846681132218974854009571649410257701877784536426877742898015265067407882950954421957108634962847252160276196122775265307501869426423786753474839397557029378119608490757577904651600260036151373725252013010905119066144597676815168118421434689623982400539382271764200498771716375031939557863592743788847291950966122853111099035942839204612175968551461348009828941413304456836208649594902145855884727024588646318991645107851357420060532088638049826987436129330746158531555424862166288075304223443900224261479783045608217169402089670239912877112826113365320679892067942994458437572211835365418761523797343196078135379057315242369130567481380356846874242371525744916038129420191600496127399652341265496982558109634600597401813244708059120824135455936119301759090580169272095125490429704113961974194647408603352001676361777655448586721361201223479347314860544966190955817168740293282950810276371292282854729785514707649554020517472729296310118396621987829680565309248144917875674852282423119416250879144555594972215647874980982907229139206092289982629510009033126192680156368370203805300112431041793881185685032258225810330880985024433329127098654762043824581858435267546270518494078357660076289830679649658303000740794449631907734198949848751632411309860760948812198440162496122821809672734374846289739745866094699658224872044610065704338076013376241695682297650411646757607422673341494216312237010497990854985379154667197752755681442994452636967278174743253319889258153762059971807472462055323286292602498188036153860335620833246969361874894225265266302567942615369140296244981832333328478271629734326084827176563472529180243066837134377909797614670466524333774002779413005179419549854967440655987812402794766111281402812779517769338556568267141287976027605889333568525193796524278849042759481510169040173346670246297538930746821058576032748606209023485506417542635731268250694329519037475814067365918771366021811231260496980640238399138160068213514703614847988522749908076292869083085679607542328567742412185611793416580175163311182591175201486288383372199081973354744767631939664433984746338786781044972170777220614789621936638455648555111582970968123982152174590606091132839223725699046497570215363388376591890861807492665020655773776564250155159328003168728893987879655088691982943181955591541898662062685902355281598047500996494220513605563801406546323787732874319752210796045682449389472921766599596128924478140933308879271257584229568419745241788226738596177583146329960342371861755357492414371567725283873997506135090112601067803963237731024396243730585015880465417993105315541692605110784765718133561181838709680299631999333799502280025932286647260728256617376768150277846069505930715015413684893298710221469517291826899298809390963626910930613389929398142565351277339918759581351170347543554037055482042253670707233813049822403555775184168545814494509179165070931207156942866832561823168993069373771301827526272500484903428135175007297402777054317494973380411872512806679033244843027544584238975782266198301573503647118012085699089152286038514422746897118449912757658184332424685482058170362480556056794701356599524530951934049368931790853107278943561756357387445902172437732652223043303777953694924669664670365275553383818785944626165181441864919456188078994043978062138587191525575271310751312117299603368960914544944664546515529821339170429744691311783416014139172572382182877118475608092588956197970701037327743855749541066914405155845037686297815703854093484951282538225045764252491587665033787620356630356063251087994767747204554736720797561000460591562523753950216320700364926241081281475479470379221039956751753259967419214946175887552150456538672714594868843976729903595586001960934332444968355721085338670152122660492271837475808331085976311794792934350510057872504132295593716886843567126837488689504469638847881512383993284441733986297180587162067509076178163316233644782461681451364793918452557283483475345622026677143856880980254665060288663441023947940611391141567215816191087997193069938857150816887001756146137201475844299736303494844123903229092106832035881847423448450174229775870843644227615399748113886126806456097644797615956278413461449127796136329293147458513681575628227642090219465062880930473122249848988456394589286764234018688729865328941458089478142691161723318950804445747772965505459623353959577508236259021835592344268322905013526135253273938878966536437036475985765891279070538918435701845962404217635526116510026007942037482904944929509968664071808342371604240862574133340523709986617902077146999811878703865526026046124539013082218580098399291945126677424833121770513529696449252235484469901196859758616319403503618088458249245507915574041482130615387460891673591765526207554006937747336131384813148575445889629827158329711665858258967942841609892329206778333437845242047491703886144235311057949501549263111470652423542358155597651096166151353902965761343567871075634620585790433126327844377920373466474815401836094172426316439266463645674487563587882911105084250740836672752287936446734457762837071160095521791378427552634143904927099749765980610934188196140463352083698449335084335509441104209336464271297271714025696057212882772832282377359639751726969725590651226174111681745635637696957229314421463725377708507162799014963407437935487366706282887797138487968429993901486731557996595537963162022808226071056530263731613425932525855366365840064382287009288273841558509678983396387128679292689686943828688956723048963642570682654988108833447000149999380659040612749078315010302337250137543396447379738718965121858248334860257633655577603797174730837702206883658858763221725168799943392924058401700007359156991363748854217102150826322668169115999034714009362549863041175394685438981165059085908688718794438765909582629020794840123929690812857446974749565925257190492519351793905552032226991932164822028881258008332648140821554113723394526022507234122823366969810005103982968883953403245801621764206586155310608215852725551823910375775371964218213916474506000002453481301374652217544256242753930266028627954846719190166030735486011078640613760292578000618349351958167466056499073305684488648479645549250464010998029436009168409257010588573082713031354464012561210017428648584550126656123405383623569580047079079259402752037665988570225469620774086382120404304030773755244641958129625294287310198736635297310886409949166592968505436811918486152685741046241617529649490602690279297481042706747151192840175557049925491062444508934073845780420944541451463622903271090759564944000226418453524003588247237196158514110803816855730819084465068946902102739985683472690183984684335252176601430797557597132540086859188722505885400318451776941997710681356973342751497444947894333267654675689275927892797199697685412466000715878983768547004174622896575912891550945918915496128419390167644619507189981797966013885790994213539767461346222489832081152287518616644301323892775661028182453108250568877994661800932547980326277638349134154308389910394564232376018506278520413110857776933380695751556027041032852213951527294674818939001615473852712302324980783094551391800778834701789100365444400254346511932224683484637406175184454825136349456619065395509920109598686644971173011675562463873393353745604076431842676989888800456408104993310833929872369117137744253700616894590183174227975615274747693674531857154721288119617502811995666661755638258577966165146297643865357832046057082014494340267455127063255408896616517429379529074649734793244073454201440985815030845203283705732513686543472850515327623474731188336674488093294056255191016932544003500598676315129387298698357596247097068893862525973458334431228004072496881064322648872276148658171501168930904933015157034592438509286768650804568997075004516999887133231179912426763150304851478808230305007431482761674046507563105795934013133424581243359043369381669104330318548702012734260031115942502538363352216507253307788136204320407112401648334048472012925059229626509715013357484182680734631803390515739301639526840128692147241761736988272466535440510732970400957159236447550876796571327218566627634525007728296678837483414631499358407674263409441312496258332787604428407020233552089793653496351856963029829347959817812499629107460691375238388631298012720509873066131062433201719714191902711589159219530089741891912305072281389130772535656993770474383692917086225505715803763105165562525896545644067114242488805226391351564139582284742421187687327393600332740416489792165067361090667926567607829245841922946602050079825763552638027617183949146068145819058946489826529731149372650347534453904797062212170988163456449936407104801279409152540166897785087386396076277306563437424551867011154883308126975040355538345505807966261639221212169207324706885389522971221293562515498304678094446992390011175687998733336582399490912353202590072730340678929061205906731436816386616459758555476806816230602178427550874916267916600908919446474476730952938282846930766294484510296204382080601883414170614055682479861141897474109327212224778857520496577847136234079238726819799939331533525117321883460460384581432848887601752446461442514204464847894914238317803784060404705329331033769608067508240058245605291380811822709802839158619210015405587339866496666789696265721702770610583823304312416805124031997996995328707325571807800874354055729467765069014970924562760450241057294351699237381250846874791865215811957135743997996614498984839273367644046832578580126967777067263933229305157487279280120382744869326100918019449969606751156146389904438675852887125249516434335667808491540692157823769719198855613837276602191283603637266145608203628355129213106409223066500419129095139641058271061519703214460180282332319391559736381037603281367733672081180429842349152548852892266530011199619187149480376008186737438308987521353591672209131865446575088830478117892020030243879708037399088155905036452381867120816251413954924801839321807445423267750613208554853882322330830529460826293742108671498908758968521060739237309827589167129716371700769371714792592126561139096553300911256910825528293853692417805548667512052262869620345187019324732492482036261678040064470604793418290325652695130022029656722379574279553029007341028015869874998041895130603436929479335450532676947254885653488392662095960656810388467171114256740178993557204914009735225173680253963398403099220669314884512609190142952404289630136451166862383481737838283524942120650600077289801568176607940666494048304881937847230282321376649201186363300466988880952977578165900505405794170805748128255416895425452830325273023820559762338480372513949284567057110744774746733954827865315315451453427830423749583384243091033901888571774832508819068596605758598355171662777073194541788769224217709593137604364026825223724334872739034747042997644978139248106009206896314141098435842195840912365754684027010949525008580675156034648048430829516426597449744561322716703318671977114704418661172805764498210124790449337518457404950970418396164331760392976442358337325051562273800036647659667215795175754541155224646853199936997125103655185006911642754234429610577688070377485541176535069161407357972615379757733171228102721673445771408220362265511944759776506671331241958663541431509170668121795689683496453302139819982085575775997825619977691961566041469205614652276044040314631192500428436133081556157243457108690377904513932133071220522148413755783015232294568018898172034987848514883077227722042035565215895080906629196536268135934125211704203293989232508027341000702878179901981566939905544876073585999952922020267655365522877902945800358560840689898398472487717727452888266660746141988430276483548553219002936709561575341990653504085492996740715540902630187145685813611905292155471377993912016212918606448605812917262562071581553923634943444531804501996885699966750492461099614900448540290497836727346231588535351737811343985558823281237041363727097918848232724486823849253452996164451662733620070924394856863852155339103590902142159857261409850218935135149813033591309318476429610185047877229343065122423164712845046589564011179785222911136242293479985942286128738646486913007384904669140578173973404028215269779462421561430484879615876391192909610186491353981482953340012314343811991810340609034367685454617177344530093574140054528286409133501485779202742529420862530560909052138012143118678989378036864162758666705226009680476563174666434273688773770462778576252966804184869733195734262660368231703759050028491076919965863001038507961871358073410913812147329566047142984410512577241754736101085951251935429395090298895808651052395541988968735969987379901808787481796943530184930520108057001942703650284453077161383342793426090722832058056500917979011842216120728735222018544629379378043963655607056725503589371708887116714143824975912112318891424194231823467920438962804568741293177898037479691695126361541969308424223814577121348471531860692253295403603124574370648777966547063028474924089283941187770874005674516439148688909750892198646023989571479234159339453820758777526033394608530324567520397684467424584062794225251354826647362687670211011579977932298493855778190106480166388601695041682146675995360066456042493612652492711586407993544020505866522804786647312125787767317863983992911844524918870640321881638220071844730707621245285930386271952753940478682371544151306001779372674305184577020624568288010226632385606495220907797503465773336658620044403040235483425174893240744123880288102301590771051278899418049907639288716168825395597413141355797975220549471987025191216136177208552675972261175366926051918592155623684581043690134894248909927221299288905496771406127300033397067586721011365232622253765637330363886207608283344129024905851197156476597001673831008528668789850431247572550910241051020004996007720223001927014347499165221700482294866942924479901870388275700970839219530038173139866208449974250016593353402997150026732759895744007469476307705532091402057648890472272496179453146967905859065930335799220714404182693434552579014811693790752645669204219306807770183818624972994458168282778916959893284794064695986869141293698545627326114023726517850717536916493110044563496962926867787294298709035275890792066103261464532372131906079218736900860644633595852902439195880891789254035507824356056425436496238265640471746782266897377577777110417147436223937729194212023241563538964979725201487389477685350379848154308696125677047787922261239541530148349649112315994682031170805890370622124874708695648770796024848589721943610393239422690053954565384302411700525552594287626181383907608852369184984966060112158241179834498003429858483295132676998015429869314477065500811413799187756478019695032769751245354611553033296279558403319973019010993214343897959747040226423429665420062190138086773817877722338509450780288455038628677933899441789076154064015518696821706723943998783352394570047657510061693508026938326435469364632112144334652503767861283933493177325432803845019035490825850578491934566162800239617093472823287514811441824302430098851406393611145847978233254529388601492161270682844948583467904128883385386451861194014224269028527208862213049793228574290868058068518779618892734270379669383465349433383219558509520749553390417604422251314215947197897036228569463643348526982635173379931453061491614054680799905959496124185081635489755174961219647552153321426489683359067958903830995141196804001437182550047413623088404255783441352766746801290547721893301826431491150640042940668808804658213153992359325956327000434702333350621326794897843858313323401753745957324156892253855546195739556137416892996271797445175559346812999553313213801011618857765599981008254813677999806467927359728236425835096039960217291146176328991124645649982542087299662005000845493384213713460140036225748420539126231255069434941124952165730818610275721107454281061916354077279312574141539490452576590801674827542656209272347928607860012875688375297005250370220572644814842336132437556655256817574405496953071772947464962789009669447427382231586544720543915610211125296271211542472899441872404083398287968242597060533512951995781340356442017539053012823132467813857700008836351283309239055396452426814305837550659931994036441764281350445558775788825996532378161325601769073827419935601274772795692319481053277290002061082003781601073641076430389449024385160508705362393424072763189535265130771087858596029147347749499478195343162811256934974324638498136383580264992895890116905842205799631149444025604562833108084568483522184317644766207683979669653096678136808899547240697291341103245446766576501100852177664552804674590448864925172773599367882531866562857286619957170190622695984435374944405432057577543441120250788040244670728256905843028972622139665190820584501778707642820325488492356544574291881713098031660978672900326675665636127739517785397099266960354582959894706053989397848656787737486998641553605384768365241901174637893276701135266532543293144424386885127534904858181095392287543292235677353702113981327643748282113049955535686340183426691517529598131983739376847916771743008209657616963622940569514892884715360832690410697202082730153881509709892638097099808320907134915867567244999293769314378182158164633064444714152287654828177250563369042072321429845833868693692312356655237868926857897870092295198567830303329544949580757409750671374070437001316427587404022668309721689632926603358508362560118873759294309760564558541839988575213144575076826900200485638518636397714216818419884050111691138480348036955386616803887570606310427084443464793662475431231589759234662468724590740723269241244239899399225658845655616626420770221409517638362025987285497325558551138700406627561252434835326368040240399032535788338778823562696898600263655137982710140206756890910292812787208671490979842685104626978749580525932304506675573605805217363327979299879093783941238296672153306240299625927144149604594906415338369031151416172041270757631140992094024372377839455082286778569826576069815313837314025414501739942260481903304390580053374598529960857697378906458280999442602775647788861426710190543952308175827260715475024341396912978072851238073980376325536572646425174766786373241361785569022368971935766371297402052880981604974459882721989883246466749657451254894981382786836552209635991382774261238835296128878426406102614589742028263442016996128784323136081835154967849117973539082879120961870081199457636783560030845393882032828275940975028075020445021974676818232634472564816351670524062579775191981291287594852777336815148062611427315960234409943771171728966365223136803053184568069632569832833764743521964784113838573739758920744460707136103533231557698604820542944542417460403390031665564964764000726173571823933639106019493675225341653107561774683800594891940569204298678610778353602565477840403776239308432278619319559554166560117261525134427880612704923932810286629740942857836027518343634771607749807303350650684035750329398550164974948685379546912445709493151777590510535633407409399268489627247078890054606952955011535687431317566358649376131616239517746173525075544087261748532274345746653336866647801913345706637200337355510020225963910628485702298886790464427886198034137190451039892687380831851924814382778602808315206284197495274919185005721407748363499611815227262170088012970606365648407896534699497700303936706933210296031590339467238007598369576412062273702100826429805342426285162616432855751472314421384430230605832869147443744389037114542076270340720251720464870431112254905145112032697978230818013124684312029094201853390880571978051929843774810656257260533531584302265621527332641760593586879410556948807271563247236238395646911241343874887186727327762818376125593817700228039770987112259966940290013671481840464524359780999089386675857537409923596240941108288513677933775439342699016747574586260750582239676473715023682731534085487945590597057557753249710544939807452943118169587233532960461487588721722455039337840146573434387315774329372122454914143583428714251683365006362352987528512540809822787617137695618213658110988498557962225102875895664534980649556968559211842513892883261995279604937507493294710616903723800429513703012756882813975474955897773710755907072118319591387801182951958511469826524763397236642635146538230772818579002025927420561910084229962434436447663388515922508006879742230973828030426609387941787068033574740695614524442676292751380903463041499230211820158262045541210467043600643463581891333694915580250326896459391646665435565019847833721107207643881212421720273178658991034822981079088368976683248260204553298628656086837093763257739586015857710832454756669856929429799711667406728087985138981728080347027361669844221880139622269044229841451824926712553809180771939996353577620521450333693303726401986157704650488902326607913037492377162773071186231995547790157027204028808639166694008414039871689016992810603473452850997302231882598987166120959255066328402384543805116978257284483376390361453608663125673158123831105816162920469408521202770758459208320556494847552908149901187476956544379306199114298887779013506022828899524329912943851022277194451270286483874941563511116395781362228834942841463588401725320547989279059201247354481227783011735745475670137462398830081695906230624440140550982655108462388473413814759413783328980764339605574515749654748759334717285829556546647535070443685221803511445810032607315958327922592138391864987533603026571779141631540639291342390078685053905294762707589259927964876060732638688346423454385637107723683538638769076293644912439477681284509826144442154058165539397091740757922939356354408435704391724738756454356587782735849043967862027868043424029046684036844164067372286890296852560591069740076795403022132756552785882530467341375230547102316266664709083249008620561316510862635160657299264195748502563017282001844884578048768629028500088326808897548832220348630662924936259038133852169789737859057415530367597801427731581437101572781110160737977108532088896445523917378454758940746464087762065759215178853274562132969077288431807193852884344582006269159309897741905435812235271398398736422527334600103899294657197056613266429913909933043338277205397160055815999391959299127140425611439692304780077458994158479170348888040084891249461268318511914227979865979834671436459775496377840670226344746356953230520046132968215879517429857944828839734957479157555489256204742255476489810771543316413848607774012901770072504162736043829130085583091952399938505130680014895614343086040020530690377899461918551999614292463717423388089818868729957833418548297607360312371998648239440224377103976723204554586192242415463284738713963125773025656291196267153299257454718943058014650081544942227585665529042522178597070455488712380370553284578010910219949015455231613695953084737544581418612813995846818175283788917464622201782367138773048263441134677723490894702662311820938012575695960977111072805291364102354998869426236240972057815669105812518856354924176918232535114511864537780859139181925887572670932800333529028359729222169544969951776931893861266433997205992074427189737893430345808910957313002528227950654817375419096216263547459177882289767769596560548090584570652445542308747672430341685798668503896265572276730753792889530071962610066795679908672604967949878860813571489968637641476445806648824876952610233742307641729975994327728743468926553799394926888455770856651030652731696211903305167642171334269654362064803691510342188093935390672645737553003320655920467849496641128149019675361450056251775837716330904718735945097619306422457726148993784759153853324496316664770788673927199109537577533508202108978071426495682772586744198985640671683490774761245293773557402818763927278677784589004097204604551501866713034777019387673424679709099923049402699632698981848417609721931808895265378378967830257306123015902331895322294698826118884871720118530356559312159913592049771420662594301541231121935104546237828396031650273908224870977271202226713671269240242718670561628474432739250186828384563747705882758953499358223892002632572956710927221875105876395081152930539453148162620423467525247829420253873857400418925671819357652966617303398512682188600076119097370916504669920425686593862400563392420976805435466168193408996026379023142625763299897239670733883518452216494450182663713251978248474062697844689820454258818284417427344148161475629725969662715610232268668130097341480993370340730106534306191508822834257194534638118912547691673669744590584845154510239917296401761210093238228729839210670503036998984374723204972168387661830985863029318639275765652825244467507873527033646227676698238388863449911671072883472172827204611747432481991669715007203824314644888127165739544776123776978452166103841471928928758677155827635358381607026276503064575911524489489515465319879136959505547978590840498980804353623817755681158536668068125445466349270663694330163541907816596078231974494822679868486871818711396190692005725785880861059439956991283027881932501353516124766399563048848834357896612415781497951287815732593180937865970558202946654287973579999556155433370921749696690454554461570312262473260297927306545238081444010501700834817922169022262780486431918315043212257287721575130194365593936046712685997286696265603379641683960048839913046930431229516207072335603298751268410093759620312781644779035898031677879809670207346844092259706840422116170596787397325125563587656668610691078225690039750741525433186732489934031248364118529331361858524866307486963000252323928082454502927501686836065081919622870267102942229087409392943958849260582853305943668695039001547936300121292428220244208220103023874253704688412165937328335394131848863465275859961225281334496639951507742383087862099236849118225546115128112575008435601175316820211500510766885043723001363695271368482063576729078299255790030660629986913479256320044037435897667554302352845449119990196688390826656762624125190088480592797614548772680409976377253255832940745702997076030018030365686127887300986091870306330292486830878825445369799949380554592146910040226390490730393361787146350955569400630522789012341384675609573504924595485087097315233639239692505014464507713224445989126902951563966829592969264232094471554796804094892952461534756916226104446198665738010606047114884372184906491792874779585536179940704593066513273578017304606466169549045360865078685407766357304773288990636923362284467329160189555215935983591349878533105436835224285995194165508060742271734885211565535156398795010754752706292623402098956624674522792458001200671595908946033832463525302649369038717108763097231748742620137437929741178473430238229174170378084898948698994647916829106103423701111912745637393719303812761115970367690518769722873423713981134673178341564364762855641704055064463863745960903104331708910309240237086502402670948078732560637600462349219234700529829695156955350650533575439890941942822614869782808095022179827689451277232404894014682131006565531442881667469648639309880051143255183671889955614041913516996860636725866434702889782288213687879861729984931314196740176231416296043370770511730150935081887272205314823044032581324235937366685005883271241018686709790356986842536367050603949381900105078906480494319101326209315608528182285500096394943082365286379338919493612482015435847687324404293370189295757491635496367461670335111307725141329918484243975481412114991851845062823089427806571157859462984287980925916425554616587465354503241300663028089430630007242987831922737544965762905469241267328670838894208515765385225770692578541400309118677336713255458065701727957994493629454030321355394035047952998749748023307354608684718043849293961286062962360293282130253590831389379770284685855091515501305358363401864161734563612998949895699801881467919903869225510157443929301017641281832557355088174746316892202086418010555647988831649980451183794399382716169713171531919322222303749749421221518837168104538242566643615185128599976593501213606427973973673995290312805170518744745959295465401001459103373828299006616029557797814319429389378312522923304107089495727764100305037503888224408684062452658578278284466160232275764125084093150643235518973408127734427652708930556907056573427323140024415695080763444396587127350683261599233560398221809886374936776349193538983346507377668253183104135620886268244442704472199163214844393089790170486392729225145420851446024232212524141452349893355847192649402419944467692850551746034793455165202734889836377221737292505326125557282264675574412105776551235213189188424634626262221569922507507998598263459064482195254287081183741890874009903533507066339876488068964341238938493630068392763724194626287522159689319626749191846291242070355260457678752658369687926364930320660117462848370378519266313135956447484863883655672742702768912486954738311489679188259028126128557675404098196492212763360394532018368596572451091849772267367963627016995595931662445744622427424118091355786394929703852073997523672107716294002837586402282081514756348324923120040721100890963738678817762027345272045994124846631060856352945478289011350999079142884916893307963574306901571597995335715820123993132230485708518307189692435480995866763746512727829159381126689721823759598946711511960500310742040794441127794578279175664463027594761772823693275741170804556993266925699806859985994957811617608004376482619249603766856575280315241743563835151787015847057524615722365031679898924832979045152560471193670803788063901894089748026322860918648767784247531778681925202050285433717694481607192447325156583955793688699944636229176683955095256436687698559389604926321124741502465736344201449376637382433923303653576524945142284608947208903515835938153378575735625746561357423565177107075240523509658034523124851482595727541042368086375590969935466561631740297406578295507793135659117327087493675443613233859809185257249451001702811494525691453184191818308232666128762670633205997776984568275133009181840287338445885885021079717212197086580987629720600561842922675936539520130486184374304920242215188908062452248610688753042712755695645835234974608886711990965778036012412269359559391752589776371878083430836462051332278544177357627603599189764680251743949088250901951504404383518126471018937584711543364621869143943741036816235114303774294222780632311906205002782858178496678855958848941006128260375764854102853621215707879056339040747089468055144248136617161160794092025428468699131007842497692817094955032035469963719321499735257791124164605564377373835078502520690540512845449448105665303912982922000094146215337009871989400430488210057702886297703538421066978197622388634256870375624752884510482955157409062476139290344218420515771303866669672018254595547682570372659974805893664942935114942117125524587348574074402326462128983789570029609589293069005128020062601341826882223295600765551000765049799708220373617580377860270173000430425255271064044450125814696572602325770021099442476449932751462272285038691304000097050735353780022216649879627784655202946763199075083000963048554593216575802696964059025240950404942855948902195657541000521114929056554912992455565234625684359637793886886637409964865954822743852103697147876746404875765894365852091475532727240940914945651673755808305615271354040349824984341084032973660188820474336945928674496961240621527731284301680589673735954015116880385211367243145316965523958904557553309051821560905377484758471650795887949412305897067924543772613931799632684940003813933141667537749001758249112021317154825344252857829970333801644970131241701391287359312605441647771878152670004623365150314553000426749593558657575444844629180432860492174462802837674680530224183061336679321201759541629281904364183412160750752979265280520850308658183664006173784701426232436158575910037739592764124581536136272976304884847082682647317662159640332153276144375859336686972235666430621297516542573389583789435182824179637707923343021378948815445819028890008341124296152529333339417259170603882042576683454787369553971731725842531239219421225685486430311456442005980593469344708379112491589440581335316352509540884068893070340403500299515632571090780891453375448632483519477936209730187683627240379421360522903386994147467045774300887275031034897912189595582393004712669341490366634252957470044090525620085025703736646458779597453052366387445647967895551345336355520608207595815063967925036390820257620049436058094336838685774905433696071662680417079452768592499918030827080388170875881536307423784891840955866553387461904741558999973566188273209236444840716564715681185598166759866545006392368170202348442695928431323572331290608277362563839672480880159282412298041707760308309405189377773883709987617124717988751120034864997910219694747029441214794547545477022643483486603920046327808017374889789471308503105215263251682556935399463865642838172432099686715275086411831961135260919551691304416693028491173333238680404802410686901205748152425359966943136740918287415515408852539918999561193952505830804442695138798049878582555697877615095547132568358375722148523227270069467020400330681529968469640374328075860281964625261374854158618415309106903767642030054322730236569085257945484891622998537842840529557842543026442831512628605828119123850941472802097293164566685374921373775567978862108087161488468436563395729214350229096561869777496995030408282125829880210357859272285570131561666326879190619813626988282222722221328825173375591912412043557237448704499648939987950722660396436125994068646218071433549191892969724830627382424959885616268549296418185240162067079917298833508031372690801086700600643718079074561339025192654586304082532021173451722256326758658182706324684533842263141019700463939733611278980190690849528405267254435772166464220386287905961200063575186507488023240131667922353701201493681458463784551495436568753863123706141653631317988139594421593968208486205469092578341063404190192784637083744438760417820076223653974295838875159794909365183439355506262074739446742621298084504333688732112486902293819085896935193534465793324645965764597391138382005384693047170218037853180201482997793681190310283324949416140179977422343822645785924873321841865105018839903957735159936541445838619813511526305092591177600524443684267660150539225676032609281866230431648674603540652259376331379576028335639226550894387365243022141294949213547190081265666439653668455172413103123422892225821948100113240779755385100948365507161577150265229788908780841840778728614706307810335078116454132435286739694109885313923259744691808018568115428233594660601054900195059023621397630681839673368108564042318748878031145292775278600159608487030597991990808613274963784128311442414086155141668293788569153096365901652257462115558369278572922031055338221889544938928191188153468465812843018699097769350944525305415490655415794241014249607034880662245443796552721507921507219461798904613144782687388497108388991417152270700669866860178042416394311996441407945006882782006424612923160454703285231228283387585456597190655074348143596652291050502798042708025881633471430187121909634700488698941430689995776868471385478979825821329417189254049204923038219825172376527166281470991098174739092876919545649133800091785351413276724701774151956310000702522912421397912560218261835437417585999330134379888223386937734789120664812793809831420206146166680168802605876993203574621603724953215800347432389511283746664591920352107812931999875117773292084278288794848143168883647289697310702424601467003129057988533764769094858676519041108853199057095689254406073736680711270566425943733548386909757808541448800298642169434198562861106998556529175429634958387690808382042525927300894137181495252022446245859022416805844754092836339348765839116553847975637809495124587477303696844423582780678487652010788990222872385332398095360439777436790784293334336149967661071789951045106309396439071416711805283429478305457617686080402164270563986648950416472407267548247494344217873759190411931039581582264408991226743643977444569241033801004468062081182228179761287500871984734757733557938064669347916946127996000615618611802756238346106800132167845416996327853632068284938327752580663852846861476263449051010208483449130334207259141804571199448892142801301421749712072258503702190250424248360963684630147508317993814619414353675744263444615657007965407729044616557109728708903833819891908173929703696020433548059665608151094944550637635471706647601820547386643903786465987088956631953423693114679508247073404860816249763681390863337517831800718741205523648501540962415810314640172223921600249692833671762502968392792178763330272613757518331930733557252669143146219229293729363022689656801490108894110035863275698670792003208134907761416664545095501689141940165584635262012031289618371245643764145680938332158985203830432431088724053621549956052691294159144123828527797240911646749638904763372600256195785667789185275370749968403083490371993040688747884528999067891072203864819731200695267148895839073390426822472030155659180928705191703093491759332853591581187874981327669313205187424882686163783753077835141801491557472546672422413812142166436515629204840660266132845977813541300371239264371100097170803842730791030746121528732826476094907917464471420925213707720311339285992402553549464658530780914695636377388269800070467152523703676870108373827534007837714290906281347371646060261789418335149068606593539389506431527904435464549135449642466959167781011585959497061415247524939098197912109671544620573001742892394863613945446713944609069931273136615562613765156491816247288773299021133852958097579448649022201964773296565746298685322052792833938139638009994845694619512377281137546095248106571123440515789988318926635227899118141896531303368566609174871590492087411057629401113436310271431239226375485289194958471019187888186181927918780239371307080466339181275643921850431261494891592858350640868731217460557545411355050430992702910704914387147795529572283575905466776826077031370910232049596142796719236934552229535515724861725410462747669219560823708740928477681489145576963742736971120871877237781204978888210912605669588776721652831315919216478833893368990068161243925713854240875057812721471430569819330830208445873861241033630166308537600728871962955878163117746629738446421154729005388531784281098142126861243458520699676235089660650341815673475376769844350892519838395986589040280799670551408300079214123823124161965491550131985648589966107151138325213786768372219380336511740310140722634669771238020210044537511558818303718762203542209826384251004221723134695390391983648170160415012360183910350388079954028641773954914120685328737604159177910528582247721312508175839243479335817046684158847131800020467776085340686529769206955124481289542923585511613220765687011787669907250570738198044613035308120226989804510268972865746087384718307517016278305110414040236782957922450615966574045123862650473324725333675094629072977771336870980296751476433926922172253860782838833370395383790039303443660802483315836617039332233620614105483575434717791324810248571414893133645551014259403242945343829969482380608677585568556107338570863652529790626432025158038941088025956264321356034655310935564830842388889995633478639004550386601514256264940611968857381181083550879257934222188962791965958302479410090554503871991279596932876568818686082623820283439946682669104451183161883083544480896697104252870581201388825231194421594786793794420324023577444964441607239885805635260181096792658163954634037560724074792365506245476520830669205363482840319103237633316147817844320761634384465360048017596277077396958716719867256222576314148979252946591017756133963158794908337838359598307209682860485646693067700039781847407959594761874857066715806996923384527079832866908874466682374253689223851230109644588045615820342516569949344905183672326672164233950649418449588507875220751224030549860076955859445080244970443357614750608965301736714837249638595975131453075536341924755395336017478911901098467193057836974133253671115093727393969481248265280532327978383320988757548445623071537188610619580607166406139143890494481859172461869875824881742107351744030962137890698890679318704447355090674238755170865776760690721636364170559427243189260568650434503787467512063823803608761813750843774180016871656541890643106731657145399706658248360213037428260026076346006437466369724511483484503464752566711462555049275550248891775320634082775708409113931662527600383821313833279806170361218405707912167066966666060909454015185686245020405871056229100955447920657038090999853050765698310428500225519497885177796713434907748167309830177724090735277131237899459883241358538816389299959064420024797308557065323244717870319998304148929921898618702036548125351916893522237937513849969860018633848160149208615930947870578598579131195512238198200268698926411936239573672023254790251749532643964600713706247302322278190624112187705879113042115584148939116418618088650008422240296801523389263946181601605944804593400786231348984279729639079871497200644810263518192563676974493377080546113130161613359547072401674118189623994169718180549236906869767846227695587034804684656292090756300083624428078600532460861631438786269084742423447256802890703929030236825992207832632951084647393131902388571337795767889166740539943339284605527170422492426116112179075416383767149567552374901803535430011463756145339667132543465038599380015285070870212609562714383761710502293161142240338779777442365274044416302680928404409546197702702954947097276333845156274321746481776064632083614792591890200411565575063458679947816755860950040605411702215463854700993168114334967570825397589002740758077137410373632783449508715561308600460317375755869684737253062602323192073080031565704097305042897200187261460570606722534171625285955007234152211828815782542915351347511871984476254871311152364504807453003410755601620102383267284532967949265628660583589780436267157455755613177955032303790288144942083208677829976387788033928783703893994048479293778287382082491601981068166606582593054718664720615904357159604757611344208086439355715968807295650491120679364705368457280684412706829043801035859750907483468325311498296877861911573828472248893380562478965627972175647470702904760636521567853399935856767939705122022249963781063261143743802203611701281476277268285163687763477498850836324610565683472946207531758668741810690167513285360152654695605472708769917393378846120986224054127871722691816530724864085747184385645170522372659896304157772095432702612827445735695038877136242176076117934182213168799501549667085747522403187768267783006653664691132056327196456161659998335978933296675666752124885738351936164454233271509025141422383401320113655355915838904612234257379231740332094408325799604626964902349939808934456722719836964949158863851304676645585648966712896641606358578522319509395572286383523765429023228967092231158459818037163447847791660152787265628169111042313095670740397452442939579453574847533992207920345472865230414177870346025218985717039259025452943197661156369698557106476597473832839178876465832375800601563456644578121501594167616933056141264685226022390694689273305324791829397789373416647700577397529345675354540121900237978641059436118823660871039251039834464237731678507713874443606062140299646333579436424576171742686427349858157271343451126079956404616994325438110545736270871419762849368696487523185079840902650116060103672179166461540559768960928229408783407582056105224854768628179137502651282631776008591772693573945220234943605589723021557423537632483602065152139614731438461215259109302747196282210683896432002855128445677273593161841682565053784048973624815960931923878279591542976587720746255672332868421033511613511348467347546196582659525651772333275550651787648720265954422363432226536243489862444435178538947119039686180178472115468378792713882582100135013430715596798740940776476282997332061086235037369097000008834168956269238463992790257392827661714651191893664593212062948625764895016406983387634007321556603184139372862631488748510752700486036843045631336207781207317220335235858762716234293473154919983121012505749079896651058424253276737868920433612736618261310783094793351593244707374103565194455305322094343383279320103058354672088355989064749458236494605607396031693104829770064654174074515275550363445330893365530104991021597164683803409607336670267491106643142986303153695962570315939514696178906643173090292267213896291340091745664637170357411102606080401611716995262820880877371658797091392795643205979457762325170431659136244959668924766878257386512432148528105384501279409528730980328551057482297560439121695120126612516506177950503971701002259354731854573362128372404642750930105242887040353456786320436847506304853207061980150452118211237388649329485157849659035370405866198806270856919512391352311765605499399551521322529268749525559534066138660123125691630021558696004156756393083436330839116347109169446313577276721832995070749440269323745862597564821957840722635440338721245214393203771548135445573828528462536930855443114475876559497215039587621451034061113540989332360355702232401499298638843974110458087807084263124134002932488469778545551510604423955799798826235339472646973126581462730108044999470915420234720582685881685218002697714994150154096521836328295523637132212867088980205041123582666595064489840970347413690566757100083595149764590852140268773528682608073881820218057491994772935376201272147776170995593155524627465906689188451676531888601379269481261250957204010098459761584000719700093272517606923155009732218038380663168418741419306493677958805803378683898314434672974224737844567127587911461286006175380586671557028899975901456797827852416312230003508485908087284469150101097986479238247577825586433450595355061299566592860358709158658645684566831333517286334310881757585885172732915639631376213441226302481443876586637418664173299497474330833594798464967149891103493362772983350001217106533367132561668767267084258521598977145236370091067054255006141659980020880122859564953149529033790603089902871589580139893368438481595773183962585655859979444060338601641785976191697078811063180728623588492859426473001422282125170424001429568125633800071798408617094839703648880651616408509322779366309151593590551897413865512929817734990464167225422361243423689275025625142212786835982331833967572081069527472576748864204000189787244800121702432987837716658958444392548475423786845151323700615789836466132281263426870663982882659600183362570436362051635690265116442759683339081708465376953400376532412393811127546380343851466666789116440058244825514506990853252649609895380433575813317374400470177697475158673347741556689187455573457727542586349416688296577405288057166213258878016824977258978613141444424320134910152276323805991593232045958712346582301122747633552932764078701168645946748833475480732177640649517590462760200964139649989762326888040911290514158597304593800597398504501034599191335548980786997013917048532190512761911177752172451663214507876629486915321594326659427273576431750570830674511318300797833422814605831537362055028173249580671440234783279062051439850944455767477847995691264116109147933909581955339174625600177718444830203082555219535071965315120747042354394597372769422852490863097755089429042801078216302399341488817838387012637193852940009247820720351474118211746018502542423898045906919257208316127435983974830523828176079693769511489157674984928925573805234494382841958482924702479499493162495398045209057552874415725882005705608526849572244075148120600768532056004559175863204356433598381528151590841862652446823340823679042846106976599555967581910378004629800393926211303355255890513183431104765294280318873189637473435273053782734131937687964459736262173692526986952275093846323320540268610398673097973058505630285527757160969851704285199662672083493816239230302557821402000362258475544454376608859936029479782010017956707250611835138691410825175269561300677340333574266489360549639617996673650141160549141785807958015822821046469959071016426747938768038402090943389074220901845208621835403470122308639989381245034868620990755243372877607464549178189765088470995531129667258525045123481468191960721401476327521568958109893709764776319742889121108570375129673522270221009284959012815397942217544012963227334187772107339493649433201486263350609275771956262254176025054485180105272008876604651250701544069731078539779073564807426490678592976240468410899904545337198311076261737742881931756816551426772015084515970365613713914050890057412464937104712525911907265110516364629936557795501353563637744931218823608681075517632375567054872031669276929514301115996832874767154665158214627963313159649410572530805843389949780241891152951167126902140353901118010772909303537411215711923858939656417654392976801487273970990355510413944745402259100229029983219271359208720825603467294217341262239399645748040987182608372550559247147425008828041975994640486590183087675953462178324456643005056850314546099509012405377244038708723694836711216465073440417070808596929967945463473664500214610106095474895013795677422073008946631408009478818026762113198504627924241229773197298445368324532143465590914649264997743909358475149286569706053714359172624235636024019608881570069575831419453509272988463348807161394551657289082180282908518255728044069448394278860669589039300914056252549248477668579662847191802024555159252804765573776531552807933675422778854650638720516027679417518124028853210446000850209986626870029860954328669885308440855344977234930894265824962517694419189519140363444333557829232304614165698927033239708014808822055773820008906057933573520813933570065568475579009952499652000592166018713516418747202128418753067271410625206868821942234686237512562146030043329816794266281198907493113216557287529010843119654900443521408551401027028144593996858337745006581313031459745179227762563881947869411054454617631464769802648917324678929439116548123762773448029598119720040764989191258994211401819552998486145094250903083666896685698500936019578461464723679859155536499988474990352142877457121821212412560920523465641777119371088966051950682669005227299355562666952207443936564175914741166139098602842064557632505676984208160255204466536670475180972975471413363456155453814008126625840447304733091709706600027037548786583141758439131666487406727350446669464226061672958472873194354091518014630112505149179965325245312525779551455695214617580988805779881336763558434683727375514434894275642608609801904451520292989100421833928543553778843156670930564916858152246471678719907234100610695149434945327189047882776914277059162492793853403761195631459034023892667866493083267812866924420204110849600006289424818841533118878624003653353997117760428266477949991528088542443842785714196287531752875928130199613721116765053490940313059172003950679095709953190124438327106324963421426699648465491197825900869125356686801584604137421024757686173813314818857702864689171980011472041746985498125005857117346410858001154408185193133468982557861988357296721936435348278597872972258788728822505253912215044148524125767458439127093528466668741399085978251112814605652460696116678996933352582998501566473903493870773190175870276061208899234372562287814899267510942925030972945253308580632465635893494482838631744452350400709473675995782986865749460082629441319139650125755123414806175605354781953978823130686656090352016347889971361939158741514903759274640559899118767810743595980332813275738433499556373445895701662234802525244485733388011178937809217586676345560074753601969978802969540884020958657235242276410245758993226773476702819028776666914080569374964513595770240051111636800503251702596787482352371542956865408318252971158208003932276979635840461199118826730817156189022396267613504632907800164603066780682168858306257770561201107249682377164649317181466303336461884028915642928948391386247064688546213682205364329624436002623132674381874827511864423829220761854702801416710855396945794884098262621395766110364471104950921504936699778875768238544641060609998493788178491040596770874143212583261516775520079382766357166538314478337679501030401953218317935356446583514477173432117077442144157189057077385157351422986667122940505560526861525398500471732894743471161478718219235660472695453436995756584162262953487126027119040202736735213298947493310671637299501591619497205133851285589309227468233889066176318972786319096463003767340228347501883332418458103697014917125498449798899533372716707926038240950094362062970659970690430348546013173869923216020267367403936381356623376552692145102765260546520888682316412863645615718491691180634708030534104826645035672762085259864928430634912965426353664870984861180023428423781640655128603929531678405680464807352899716656917807687325262359799429525117315448306262381339226642355070937413379662341776057527133693282660476399082983224730397240159385203860459034731930469345756846515884452218406548839248557890109079125159617516282779346406740745152746202431339887275788140267220384775419204142557175341301671836952363833813062504510002590752814405513586463113589139836470826989024096973974596365711665546214192506970680560453223026796252855813326178125955729891944329721670692134256159969431566597725639679341479132719307002960214294327111963964177619217678166305323746291983522816947207407746771416795412044540034367768733572355534982580341364248620080798818595089734696234133014851466239776403982116507517072986763090124713453978130370519288533044535859468718938467370021642810988624622020658743914677034143121353530693430589260642682362024474576123806252749549212044820799032175421779755915466914339109776445318526826849044652739081937707084632458732015706626875770046349253324969516000769369846246716461737293661695530330040775579180748761087438044211846446730921058799979517953548017109813424201125494657884141459903885901381049514551146055862513683967575184177011086574287519807304025348342565874571073378686113662953402993754279433689868868263761654026038400687249505735905628335469801886984649758595969671087207412244172656893230159587304559372949289166016478048686250275746659014818643699984633220761791435958178008281255938131535692530538221232322282139691480955892833887191117803897020505158472783575326498880824141955504204134456154992914946993210374740459036482871995513515048414913679709605708610265577787705032513724152004883309301248581045406339725157453633803396114175801133863757856574009381515560004898041336676291924215496888979091474472631424084260275835626562945656050892334357639254534956057795932195679461637526080804755611470738811874912812251335639170968347457054068241120283034281678023931473631724776377646766117351504571346637027139543478769724618396593226240361391297371293082228872098097962992300660563255487084088445846790311283575280556913864231244162175910238832486775550038664070389685955410379269796327518529995185689059635502340533703841761949916670040445168505000699219543041690812109594510236949037495025230312888354708227266484479468533582457130624804552324595883706106166727865472836641390102623699680123563312844611747318210321158175334456964399240612982743907640715259558404237009937186398015899407985197901306443499607575767779477117167416887510490972878159778043749794630566373374884251718232887215475824257558469125294410759291531245009707978985202569980497466150030148594621819337661658285866464366792057863219050355293872223273114601717405530643091728982719213522925940270404413959742929458409195405595965606321420607846510677892565713917858397277170145234401149169904984908872331514298842249726966173954254752743803331577863679571753965447508604984320057138840920549836583930320330501240667320047861904096770149055891770838170701981715067297652388689983440710791994260167795005266192867490825236266753559120090965836345670941864388628182851064822718539664532085697822239600816869252812375358766044272009868781842345637148037206614750771388389974907266250657695860356046455498974157083799277028389497423028455821555992814287277157466315334570468086765478661640098118024165399690206548745311490982440511092630639268089084925335773842617259816839871559142700783909084162032866753407223567940531314589786116521027530361409303119476279966279006930057012690687755044775645742957696667321717481312837844076499811419740882986055868037584318186076981571637278541436526471136035898417541803383477132205303290781863107617269609148988621972368049963808855214247740146479760859656588166843383361756494429054480658459559288882332941755946391234673432970524369032889916115247929696189327142891922586690868243351198528323071317296922876675546990358084104856523775365240362486291025323729330832802431769904477555239171305972281669508346832448577220969240828845751807146207914755985530748537684001164760141971783640600377512087463577650302449054320349791430753474777941494939847348817477241377175703171017571531631001850425238884450836130661182450167281702364182670080911938754512275923979061564374653334147621415839637131489662632149634354277651059692542625497608870512311745565560090263395878465457636404940302704862578744538370756441280795797929249976524013570859782935567604217740578398786895550404903982338328082849572550506239546306477446564528686774702955829895168833393465618336723465700910184733691197886840298961118867351662671771835410871131013934971349936009544727479149162052959885585283357277538543801916655644823077108561801758029985294352164725668582299803168365522836232079127620917197987965546348237462669820276549043585700166430686508271513841240819802204793899569011956431624752711631278066933210893838125362372549163225278991452293349450488287243104596864366018158076405641012518704345040386756937080261847757562511448544781959203727857113724039566597483945458598636450848461568489582229276934571711457345759954851105887058161992246810376282480638922537591169806274725398372486333210927771343989271078404798519562085420632542581568265890210890172136136790843181864150911716579251732459591478879481778205348391712735720497495339139562073605064736009229495659381663920338999648672097364633399524711376590716864490885492589498655615896980902288246925566867033200544810406114243651079401476321308026466524029581618270396090862460394004488661278683314374373163318830452471424301985655938510597742448584188595453606800922826677905535430818403012347599189124412205475493636872928879324265124582170315205060371254174305236646008574707085640476230407085586213927250671325089629776854114208022781010925859829975762618021484495353570472107323754678399049890465063019174962667629148729658718551942214799213463074518175168908086863000775854534668522408084299707748195386757908238153064466859426987381757250244696035621394002551585121965660120375107795717395860132000008609461089951677637303703095588616121281187173442135203517558367779514561642932272308637851965514644893858716078218761789203934465751171616240065390921901611493929500585121054809891974991050039234798822108823471991684575361705042621932872948171953269955464364679264565418927924739596591295036789636624407906075377913215915869719340231275763329625045876275134507143696863840567275150122679278215522630047913332011289876696430878384372601559242495698891419393397100722644824587525691047113652622704912171659346073303974244479282584194752994540775253698801747769980159029561961790185106637477316466966366713690776713307000111556076186768400629047293619440514703092963300803737961618371017849605938418356409511433709490895877777058451651277353225153012257584603397270940122629454135503841678999217222857890206438424028807944651848145679311222449204305849220905100068245047227733619209372434659527585367636466223911541534340073709677164081460520832284312197594559005092118763126047958674821892979534917860666107685244123418722936312735229313059823221492091444444542368406294947452556608128078969498238829853498837452454520376916727126513171886609349297043346470747136937659171746887663265566398707174259615050544575062604690655955240694241479710515296703590465934541873689876319484246935944398377782383730725292762406104301818985618545679838708241810643097857516430523921795274203954075299604859672279375823427149988485678049997101801803441617726312705174880193533940824824300342332230578943354539452592077044188242374115670099326851571331087474860729584554856153914766868149138424547210677240450697548292292560176812579550610707215202147705742795881255751840948774122422581765029240666400831930374677363301083144041157740634995526439985099298122517360586645827241964612820760591040469470788370860852183593582343192570325006636815360868759291824978653204299801020753371941228784595710932505689769461376406015199808572488205589702759946620762340784611007252805978156750449238146859743318996923007109652340381620857969811703375428160706205678719679214337431004757285375880969323161215163552932397315219056509271237308539581886768071248304586053562482010242467811153179757238509551966046458377722193711128379896079907668798243848888206881815127813331751287765561185075187469920086628626731681133845729236174296881101683577579690562615331211570195487577712866714059843059533785925179946465401226433007746159447750219135175520324912305053146753658515103170092224393416916669884258105347324622385654652354347387437785884784517718187754620573924812724899847911986302588528031219636590295415778786262981132873301006191608329417508387265906469989564021056647480316608080949951507183571417811105186476685954775931562554391401903506432750021248996731876907820359890755911184226538822266974526387137266959817163157363542646965656193848897713558762802041474119597551356260038133218300882437133301172748212127390610367385609411199814945012170275653928157327160160289808746534134727730140475688284577781276917177179085982950386783064128879220284417605543208361279323534660098406820841450051865812095064687397155708902292091783200758174549656623909690724365730612140807168938250525924964099866632841296290867725331323455788438928380331533465671888629417387930275584407470178922926427138770114729556254477019605954889468336413671398248521190696455279391524132266219904322193500399754342622621838343628316150625822321486381939183584433458461947750208125569371837046875344450039179112869987698496705826065011990150388369105634449041310369217229675097529767292000536118815718971308396826136125992386973062802597781302622778813403716612288040627550190494612535603651281140910796768386242940599699706138777040948864408027742988345306144731912095738394107733913982887887587588274689508216060125985479824968220621363450401427679371667380151545966708037151738023891953699279091558014951344553060264698939478190067772188496473410413204090709509082575228449730013674186122492332475721992411755264473622573270911689336127388294463873282303783508530441638559334284698997680579120345270102825486369677193419475818044224904722703106249534266956803871536288096389239392369016317780402609390980341002289165755607672312891781230593068149114335333841028233213726397305215771615862702953241763358179670782824078294095872697370398410603317121844042468013441206859921543207975160372473413132728799727743935897455848768506700142023426197684937720606967622760900531317578884502123859288405018363496244822016214532664205947430165263955799239567311659833415543563644684025289384811499100881036504106076350812331714543189054289751668202649390155988845677143498703934286511649708413113180619226277116061632027092644012377783016736872015880948966392672714875546216747790554056292697313905763739754483480561413437174796518295644102487537059014967342742300811466056642051308769232758552520715337031036435487846594975927256648537622905580953335764881161130670287060942396784180928218272701189948631968548453794948393546148492748102198105682164709732622551176462187092924938265645207952638793802131179652199415009740265202051571357286774947985351783840032137282590572609273450982877157846151639454230645690788798444885071569953553670611147114865188652058309913967587030309691011984509173920182628124057210943408618682080109889790372676871114735643910497988529520884497550018687323125226616587375805709975965050994393835669715289572374965626234497825054128709208515986153562543674009082009697423766513474027165553843149246227204990625425359774970227244733936900107450508564321386910786680934174936750243397568568849806773753108588578625345737349608300127318783407973519860746845170951997503441246179914919634089359354612172297293873458348040258556176206669425012542508145604592667295442196169770144725536806899011157077683617614283997059434025456688541632291232543914777795574204652971349812402776515139301657703771338796577564188282571278590636103758989798444393778077400843250706289642298648798081359069112862682700597132123817240198383611135482761044643792746101583231071698541708711205258662290106349848762412455519906640375684638159125025882804972215271503954681571365911799437968692068107338887569369279237283020386519094076770201136023178188021970124021315594454185991462337406901959288837952847287618600921980832788363418672599588503025406065263786929217250717166851333037722943093616659085155502551809022151103862856222751550344182011272247250384952606176854991319447470722854540249960571415450695857487812427149447592447903754216142548984668085685840965824636761986768491512978851795961514666273255420927238829423460298707577892989973399707496984195268567681931885861483691862647919205607838025057319478916030050808963320257945962143315245814046934273178205161602821883554639516359278554657866846643521782620504656015548758630869473320807032985268232439234080646174939484509264273388146273348675114317728418196124904440387409271523915315741621140215080156061450815353946646832511476353988844476206359709419834178238277462082787629564014191383075046268809003051011216088388105726247165013305993967935009568229972568940406886651552690148752104757874914573136984518103599127970812202758268092005635817403239124961203487697030836837430355330339057837953212460535117153486032973455445995162409837023848383061905037432578276059420913974177427028761550547328376128083641367081411718586236977643680784779109131200373451244111151644708431399907204263337136680399543067973495686538104762952249173601954932521368319399576072379309968405326447653078840907581912540741988753433760088815233129633847281509134418530843292799580115299156853339771665651710688858033360699731716669119470671793842983706782822978304034109393975065498931563041814377451150827886181121026388222905076677973157050258231438732391124144548024556610019957895975172575186841996541004875425415135900488006201840680563819050749778274347212522126326577800102338286881753172860632380574192591051779087886462411020341386570679520499252066368005647568168222222560207969998532970984548693645985190473180046055550174725182957109242602402158367786553176834580151456061163685731559524551166990078996717073877640484254459496372524231292720110629950195945630727855775861527780794592617407474063887527935839728080318701785345398059987084727495163484935034134257689014528482816309562376752399213757299040029444487072197001590100346351974725576400391950729107457428472670477455263470544883774845402905318818362557417951024652683937806050582050070328773272896474973829860531680841317900991143784646830315311744158258908410620418937063373510657864560159914196794525545558318208349975608691194583877317433138224812822204338788846722890912221440076545606416695308247588593901335446076453396556513764046999544502984116710689856640654604895708160190340812801998582325721467097936865222645064231448391507815221052986128554570667002852300958124962831851134334812692156260995512274457632393753561565264796028248433378933420478477844761050774142091014812874415017485397654764911549250232449137026323864252378737173993787930465461106051001031802576689538033461300274689992550395502062738371049624014994782513829333906085983964264337077817609384922898597050905932438782506141286831505321149902588505820743087761441129416719987820893927120200877297191937931034648446801941433310156167654440133399825284118494875998860782988697673698387602157749117940069823635292685898781437096566415926956529257166249528201183710772785084616143487354763638442177072412222635048609487514232777879893562921056711840109029210912268772681300457439765856622097794399702480017680245582598651012570944923157071729208392802987046499930249085073873745587180850137055142416063912621545083791648872031913001454632079882815039867489065385664368828544209707559280703592008614057905541081151209605818808948061514284931929092161081739226927743758943779719330466751749577591041457463201791820556783087255771574871710466461007723901744015396230836000067481076676338894246486027500323023743484932281927749509445892367556223559002822570970573308921626831914656222903253565455893616805369787025108012979502131636703011706723130005324712965477799293656051648993507324319559361478902480854117443840863745213124563424865780347720142679491147947871864043629982189330538783139376867537057863886481100828569018184339153091229155760324659419399764211940250653629057652698832337227890326227543178661835306222610143243463261791783081685820079584207944489095638338926790483965122799482322039951631270431510342851329492823126882075754850801592304706425735318009533511709091214923425569064007973133052358883137659308401152017982878383875702725644709888992733541517112629460565822282445971360440853404853904053567246590499399543213311412340292957132986471366715515427321686266837173502452646760017490103204371309531995278657135371968809683330561445061769639711140901564977598606458527917323508318849271317495330323131948407141816858088976360787691433395448729034468927233881740358877989131573270987060717307723326775705845698679640682784911590062943565035684010509043006175208505848874271951907890903246673608267864797932394221137644021279838004308802971988731705084498580401993392934685000148811210456449020582869018819059266327494846552820029471591380031054447531120555160946795613702774455357047569644864430768200910264424256259827255133731875000175723888649624602498969610529386859307816160927572820777940897718573673025075715797145690137481559172194288144394072535668327126746047809804259813051772746944265571088363333468348734437848645583881377476130702835145771582529221956047764543959780981070978603903175839074120877986480095743574431703799311318262154981571022557099412193191746208100304007645092436295881183266541536077638562513695569965006434027790522401401701752673005375207853407533741000569399583048739074092520093362632951327810735230745971419928669979685893234065075979766982116935896179929056237695786190493117209310937400837445396419597687506560260648218303508978437605357647622269774283233287714796001103674034546224833266453958596273867997987776853197815153039438798131828693229748917479046723138395986635878676195042530002320527401248580247483408877265696467121425614287919611647980109283298400957985840766384953219877993802933819278817005924141089097474628882775392180412281172934828905597301155017430258320991386390682543348368423930377890280169604677448247116297972247462479329504826413809121779615066112587261074737692729816200872326134607737310571203316627018896867751182099044971177346439042123107835731930980335782017062797425312752135860020288877824004871402087602107217868567156472643364606206770374518400320682146555095485258025164189920037730674784935301921931890544880584393542625565886887982196522654030132138563756476929358500322226247745849550644381528802428541879108688467123147951987928111414935236803747199764650836442130600492921912235861556956970227219938274487867224161852334618226605471029170114569579380313872904099246387126332624721637591769955378218875266004214526203780690338924835162261955451037925713315362969151779109480427141131641185382021635859870826800550513520275394840398829603353134059438021690215086999567012616519125573599047314113499273984916871213480810476472701222089083162004881204031095866486976124561580614712593604287925020901650750988407843491218747045338638933847789688529299411802483399792900077705070524725067236493082816170668195161590898632627495890257711883872764529758495698047773185594670462604920029626566178281816710145285990215766721756251499786463622083005252785298199255325520298281958234888319563743345996074970076865601080129712109783078286807245277355457595591545496324853043213743715586927703746300835429831998988509286744340650824224086692606464138677304974381922212069288622808803894790776057430006461720950993111407996929287246311181750103687147951964221353593292899576039849086622805367123084157064220379932743798054464287048549370088406714598453732046912260761122250084878220771895151166113258079346879176000802210002599605601744285469907893601370570565371074738584748036842026100702523146185389283826074022806153902989493191508028344572970744629581550163165750815796120380015153586053946043518562749833852273357515524718516401569535582763132334981610500568438709246245492093764732572163732049608515802011676398803337792372141016487553637068787660268618687080984629543678809369407619801325202085477834466144282457606010901284424180947665420566294728934635940715071013152822820047551123846770593886631455314854522315754108670715959127090969985569107477184031828431952125071692851968286374811879066788626092633308358497861118217768495708064440263773535749597414198706064726582890911551994333882183112290329660398353611533346406998152135336886550729973281035657664275989559428168304010375044573651164000364467641157822007578862475148707017195633310651046868440219879771815727601671652321892898096706659385722199039105249812415148508662882678147152266947983281972176400693457571089709068123527129878257284979384266151250252951302905257602086013666209619221362628313018628897028212150216085211205656452315460721184146410517628100884727581391273153265905698700637724096668843874068475721768628945124394717023036597597848840802328921536209785739845246663598894080014643712003306274448923918703210621528776820504785114381362227037468416973923709679058833372423855198165657878928417344232006697594319577030706535836191303757027285290177064488361592385093893631694806770840540179873888793384506767358938091200130016929847744558994817401702177727808496680308828971877900101123490438008002529433896086507284171151872804001652193218953247267676725183733115509071043025818683594883762942653565928180604642992372283266943343442213158598919221886038249934627726866226118256804164825872284285814955752868292028666472637585853634179714560297402564731299836848421504598303134452031047794708585587537938793350169719780899492218626518781186739206946106351339279661441725660129614263610367022580010067357372153310732703313503379603540496580176786744083559734838909940208650158536505890976309128751314455622066473822660576768939758094665779032912492866253503076618170647504106561051680943719526466589455162880005513269271760953136951389619593496215911193153430136387119219932338272906779692123315821269231564139869477428013088418687335942305142602120068145007325239068944922010383788686783478787352463031705386734449714089454538511543492438204287984831521125866547685120770307382679714346060325676162881398749243315456683735188089713889778631560260145301606583516506272591906956598450572694668498048127717443502382210120774901504896559673683657472260624798051718831089472865834035389261185829761021455464619696513837861484377307915262625761363477113855726953374483608162861513292424173934705626439353531626750006637537816249886739700309170143631372294571154429367916484001465990346359803494746383491717588360389520592871200757316413582340890286185153685663909051523612762000224122671720348833941344301431830976352397145870063692413081742719512942431855534271515352398177079564682693061652568955513291727775270003729308351093584501471559669651075345529699297907578500488480054876912533548596717022575831920664574559680854672435899219493137579014292144764910048885329130318836294528389703449733237834771396266567578433416381769179834435127681992831616045231445342760411489041366308385793503195508573036921946585880873133223485267286957566474364311131486442787329019026669502684983391497520617891451782677605493215751266843165876023540569639507858962542677751843083558728872954931016563133648476131668492961317465383148789788849763816982511405293510578953566897282855052503320859279242025456523340493953065769197818338845496669496369931321220914913502959607656098226897916231938988560759009323732790136182860127050114523451526875504070497571178628835357868783887323807208516210974196682135659906182943374360962660405212581767455076284334466853652841158613753710921383239786636403713802308411747318944129496746371982087613691998239491379319020003823652769968654786773545001592055377730726688696830456710170607188668740339599751937420942988881147260785319354221741665931509316332946133028401282024396624176566191829296903971488814288904394489552913420086262745714435073457795378458378181358602520226619309216110199170798061090004960943388633334884153981539251623149596946237602186435867749224293534088545403972179240767414533724490070582956408919810628319650604223520732458219196810964761084017581409459802945331172417326255586340662506492288426365535950313751464237154202983434700477855789065965038688659948084179066296270254810150192749739615652421692464111635617844202764672240533097902472076308687695543212209405676701594185906296733742802819589467345091287092471163813526720279771354339678096703970218758519012977720438677864742714666179849772890055603406997816339411494541335863526495616110790192059594718882444542572688981946014290860394976649175243237432802765678315178853546034630936397684854658062200234411943390098017327909306213651846893546141627940879569266444351702020478113711708609363576250110729267209244277675252145196711535309243235641112121968097317662018392143228587351840552369077901258865500389239959685202224436435693089282938342149962659200272376865285423660168557845349943876407172939485090390285499865898739762661980028933072890928160759227409703736526473115897204228071974012263086389885194055219178117947206784768566856504540536762172801110692593932303447385385679397639757810238596713162262117030877186156206031047054287580983906833373311912086052460905692795392837956832929971569570374142506038297919180349618530815498976216788064952962778366542399805860982955153735883854793973750982710459614204114736757527776403348755014784005213405709197470302294030325953632756497478403509373682885690441477812777733554677687253003326920677445715087666888000381166799918391081794623073502320892843196222519750384685265439864767454582214398317822755732923713686335974158109005019978586623571228843216692366641010868697847139567113249427207781721963572862095039632462664962323587731762037355022070651268655830964269474801348222523367974572370794165445874326007713444401604927706069707671083544018353346859967753125601853491817422633932568968288958104227256578675487629806726399892475008500982649042104096175112915035852279713804956505499285397795428836758566562089898483069951414971767084198221179316233141895667206149994836198192977085762781466730705812299541663220746228781983829494739749000978376026544565836021959152867275076065908052401147508986322688976635866187474309069275495385122622860841561720637486560527521089523024563064257007584990830470385211149551842843785813013391507698525800954347649131781554423976868216340104341484664905950234867497483901425518566968922165762662862292364773267069200907475994115601754318037064578455104012993650275669306263386969221660169742349839635462982810312262704989360567941126709314753753224400039246644483315448928213342764779052945105378489160547116004844889557154831209419904319947468123194930303761055434570659623748767369358503534341796475888572519778035779410469028141232989370092388261853086743574238296704396080985865221509872321916869242291246534498153418823733423046405512123781633051456452323167557335401554904834577317150389573541225811370505666515742380385348216955323579960608963899843773505778185641015063393037357948646734899751919630324991002813835764602866025463837805162515012185706514498670256012922009812665269036793849339822376827828116681008884794244232141425697995713106759100939116061561431652315627345768345606207121627055542481889052258335103241173185365133538238415108959707725976177199441943344692585879821708898957213242489336525254470243149693429528904465852626146748650648733004644278977306947895240573864001446370547985788210094836213246714852862941417528561161725793698464652834920942478947290755287668426922192917056963555234165636584201329547655526075374940089351984138107029447566712009553980414290795043361532180669240914311783568598225699333830048876397272726016213281382383587644765854636938289304505564799773449084088450799373426706154869445560529460030443210346270641523903743314110959524207695582269987059387956996580591393648447448180317386171288765326780353335871950226353006459475517964810445441591144535365889067059001575133434641860828469529554173434955555030626817750301984955841385121316316596696631265214397018073449903270414274566210495331745276298340785700062705869459317342014496970021478851203407435525595231593444185134048990230140457453920134530500783754642217039321791477506519105463529422690826714158265338811582645477367698807572901100660772827001979930153475552556088630030777888191189325199911951917120075819757670345594553714739381358683720477353048927096666258882655956553553947973223793102156268504595470243410417202411460370668419262026658352354747785224101123660398814007951127810434592597169187880799642512108039659924555576241491899337486456327257078475244778290050456533365587596100576078879278924625778955596663072849631229935921612106583621629717744614115595451322049434443238148111740952149618194855168555140598844912748691553299791644743356069713845514996316806530588909524348207630115054348587912067134603764541747919651715682905497741377367163290372382867578728692603790092203708779898314866639443688469718929424013157038274594088161161493133071457899085946774107786739309353716307758678067061793755452740182447488786836836567563868933174608098940207556544055465260482773430256964440450149122473225948253847392471395763905431085580552379833791550139200075471812570320388240937248548793766346328961310444292016699972963540599699160394570625398386299399368542905781508976563589833257815838571176706933401149105455481469426771896428819352521540213117859475096768592915282307600799698176284567902457393104650897578591049151138804735977413696500494853042509546028995930942551607834928970917133672238328037386131349193945453819044105166648208710068586170219599521929474259073731572997351425087151108157309194866427090605605047784927774898390661353552919481242495300348628688682338259566039938071904819629196628223427108661370358715429944079547633729168443750840892833807449077568227134354492246372951886673633181428572504354678955939422821607890358857069598499378667380976281460673647271348615407105154962706613529596002101000839128840234889271213876687176601201358131839813284982919124201255653487738701193047361433690457160989733717666773929469495846028785507117572997134704639689118304371355287011558504221822359808554296775127438453364443589501202360418621180855625061788364962757099598606308923350097921649666178842567373628429922740012290739821602813827985582876483206120518550764001310674089382264178445554873737582205720881514330827042956861319867810103382935453856911387284276027119901704724161302657523044968139601834445784848178375655262793332151129548220567864279470765852913556259837828640194130576097797143654520575502080570431801778693272283839066311982737854883534777072652935181288659486552914629080082156409324176391384859426748311348174572154753030971977292830351719892686066438575446803994498515373302004467359916757005726620986119999777220143206365341765138240769831600616374801226700612022041304402126687520306336277804083540817173703409791067883506750112601596276623987198466659155254252347228514106446130989329739111612397703071824816350482016284878368510944465772480587396646749754035163230223029608044207151313188757086516548831791508152091280123365832824525592461862797065462818011693898044598300362848705377528012670825049373797036568546818945479339647180325023129669715436818840165552734634933546771071714358682758373283909449689376681499264331582047263253379437095116027083149744341463638567028685221434000126745033436691838390998920434029109720335627481978129929028624268397267242489268177830332950562505488618389075582409103792389089647947233172569219619998352426688513837543593780978689085310583978626417378273837176918475135872895503816652877668895158842169168844049855153557091159986629276557172110269551078791499370958279079920728989340902167355053485939622663288141955549548279740620153132573876207102429795228399839772112074580006275292261093252279674563704826510309026545324156349443113062349733885646094776739610933040499575580434735942337253449534293420769462790426544847513234921087188282352468779296718789019063809127284851680081424926575400264547281653574195311944499697925690184540007907645424074442891183110768967332374824119654126331050119340213660877644445936134631928971265828264024695900890378547261452453407760240066310968034164794045856000188737159995655275175877283246714015002184841470388277600384733428735157198268445031505724918175640243062865999189715942326764806248875949314394430156781056547243372905913013007840960995787314297756345744594792577165870033062770808111750611936270105232409754778146143296212044594952768428946567277683801210459286756960787488537008770622873500692583764327742741078788752183943452737912310195967003801122708219837860655966479737182934746260066510317115449394042467068524314163850976468366536689492068829917210705869217958466498770144945087972929533922935351760874580973537917080700760146611081373942002307814026748440892965258545072576178750097347593460080739315280780407590384117535231020267036420996236391262360132534677723684200489544206726962247694547689932697089850475946467599715144999651871442666660374190978293470807641400826330792324102873497042488495039763405143461436369303970899759979151548909968688554440337297505008827366824815116007007876717228328852956202687823387115529277684458012292409643405085934994915544452024473782758740234408148952504561224962280405031674636104152617075478881588251155598568093048724024153588294150606930361052941086681220497958222574947843693964240626416967238540864734979616432380244235441554596424014531049004181001611733243121960768751047220020111135206772587697547225745886037212688190088231985969837145290112186521575813971532576569599654602791280286337735836113532895577247736353643478581352141951174783711171483234939982734079819415279713625252926136120148588781587313931036082344494278887605496662113656727330207252331483402556117549801412534845344532021486169203313638911480327955194303431362214067166321613182120066627575590463408440495972845905376251168236624016220634631156051940567853380901154260492059651408885029418064375449744166140501679651411151874820412887916535224786218653656110711690801259183945232713741921145526234838825535921246738686673789695053577350683555384333234035583124800230192093116881493431045070549398370391890153559120256878048306704570715179884321209538041779246055947088262344536448637515060280419830199723875783102701214502410329942115077938135412284929417009414047393272936516482428272390916691848093539234248473378549947576402709914397639931718265843939666974372626750544892205827661929253256032807802873235863232291156856057040026508943404419410625434757749882205250892651729767764275440658867142458944811876428847546620887921500253752961860692886257436139848907580860134208791599600077420897623402887275954602794546465838111025675542976755806828493935978502535528223455211913914602741892559911303642582616059107160233463757593673098485511705766111896421056387682160045301185205224778888064961316721928908769123093753710718366306422344907355110468220015983428588747889933602752341079016982703007557010980691477544024904179474396062622566332505380247634706017761343086544342355745649875100479961118207802065313139941670654122952038117022700583417914051176174051994572650157589562308261151170553084798748919347587256839630394825372717302576223773412695332621017917257557987580832733898463572156167252982357142188991742809322897983969328043204312924632882054636286534276054869061605000040641945424927967722633886199204076311656617029109423202009141476378184535502482050100722713105720566165730336727653641983049559944538949123630997902938105451414015138408543843292144894163447303428851056953520855215248707827938999615993256203611565079616752358715025787905010789766418634964650282692089332071576320319871282997597903738185479284944384080413242324949052496237563662825375687318447958646227038958338083264450364589703039998329580860852232852241550390691532552948972077360332253608779675269362554519395296929229190124011136765998964908995650167869953465011131057234277098197181598516433487066089851938538112861033862654270762413519019680711556741980930432837962325723983284694447835695931799627257098215190405758423835797085857734480680204174175928968824641895660435172751375363641682601521115286438702731878065223964312491662555283911446220427135882353808780914969194009089421974900127939429260043588637268655351627422235602967003850638064714044984757471806255881400224774400923166779776779817596501871284429767816186714431104892064462196984614782810069385926375279089002166818651005965825253579432441250142119137164309948762243895775041423813811907454611179685116634768171187276711568679208766605955402427839798321454695089261032535910626400951725899341193045379756478744140177563506066752325741436869361419377817179605373103124409161534721636215360695057502271994540774308218305455980090207466473867809751930385347410847284301603767306429963474539423806431080299815508734042242207548658947101867830162137010126906860431898041423718324611336887273904767724204724460653181803035740625694036873847216860420989899581219706405944095759868003845439463792850530806212680137506385871697230028027098717247682518844602240941385407854092874542306592326467898925499462353797132065717092777185340834304567090997377778733322214489062821698932779061393829248421265177273529809234631355563723113838981605689588022812340536670353036416776997723926696617089328108830661545842934069126286571945864364321923236421840222650966336116290134559905391298544782129115589779288867750616679356983175372103493702612208328873799539504581446873948335895028027037937263187500763877664028935024012021089673413212640078533186454192426064656006588065961231373358204163403258357259469233366132036510906181498236270863377447902484768881011944146993740636161574429385019310489512012854398565979576405731811081032839790432445855461009793327353046197941872570317178110663248792354454679780169306561490849018391496556969478695457885918352369768105558862636752415341238872680994264893470738996053253419180823773969040104193301272827975423202535352048601187510727121795565508168116290765761012803194968916462112042941538923227881032465254216381066922511137116531203789130865481782835409145305362125039923640660256958021915219359427511766895696187917354980519353835415313586693832731593280178295846412785905860224201063934438146807450594157050145651659978327623915507105928390949218326421059233204282672238721694128122120165196282213037362835489459734763591376059956544251481381626636266194740739767850256984820939381353403448498116244579481105813546862241512957300557820827820390420247143688354779773744431253208454653042429113281559693786341621745617235646455332137678011802856460607194054730402148451154502225720070704304659075841673234660964288972266499983535242583878439807003650534492282514737420616439888977880683244024960127989546622277982783781762179327520561274100435442140764578615939628873557818481988869249943725815950326620931806719884012083955003305046695690273192789214297903531588303064031184026586037871709374427366198552213564933985168323875528515177220885500877503247138057698208208587685105582815122066292385643034757296425667990480920904602267579153590872209843738731166412279956780261172909023872754140328675515381401798013631020072247704671184306134289897988934963658102627726184267798087449350009888601335069644295979474969105021672182808703940229059363401010273783431277702200673348861352870924250736664301911950934793404582863379841252398033652799396709693336124073031253696700366976423253456363607689546428273659470157728064423548620289440884543644134401610168096084038072646958721532542680400659800513442373473831613101858420613004513625819012468168961963837203379021559643497665768448784332565658797573342737707985402830280496613716235200397558209416487372303436631639878681854208986524461167404229496812296306917187924724752100226096917822318357120101049171578772613785161294840250990971207867896887845059433507995088104843073322756553970844930898227881647127172918245457971695359017054937046292839938775739292408689419181925670897498941655715696357348644088301183984279807641446779117510406301770636220058266582155442720525005341497019631475517331840987598440593772471529837425703778302870037646098686553334141756984202610570798974753424300912078984310423669625453757280492457521476399320808458249538765352052690012370681298120862752975755364234149609960225946121316240651524092165324787212017167861686994132701484978878784034155174119866597951731907987980607884008085666027110396390907468659526543971137078502389709888245766140345858962022951703985227926176975025078661200466064545005847884988849078523313362707995994464690675473194428895444964590169981169566553575220477653731786612882945552363206522293168185821579292163158973840488616286415542064857758705548344690943585351502949968436963717971001195089007653220873604208506398195802306505764550133332732517184364595065442358811468227099568817546417606235108680754797347693315002948523545054849222209096703402622072207870432698235538833843884625205287510889491699447315123014707685947317398990525390016773988060354858290709156333956142220336319501001999915802338880381717537486228964529922737370298543084345480391107057866086875048418221423323292289087097448484859523563736467570066193995781948949909543940853960920345619419912931156858336594196362519211476287573702216368955168822020852037832490733380808637991163992987100108110924273868705314373803678779798704554375925516091604790551425066412122415524294762481707875393114265256091748055002885414801418584764143637569468410087370670426438575759149446797254358212735517468008454203280526199395852780266712805562286536699392151905268242721289193582438436403785635067723576521199546974787966438600142205062844581714877642993102131122863480281397727676839855517727278416521766862312363271649719126766222424393590776582199359732581520970671819541098994174237817033877088715420091063751509133785930004391894193324615470160793148845024796702187826423335818055489869988241672483739288941614777466636866294177503625904660580261181612032754821971028862355761164445493903772787448238834411252326866547149277246078319737972298772129781737524875639005809162755168901699210066878487325672352384105292284770947540163684567549701554179595912911893633728107412326864464964031404438619569317176961466156029409185768815291402479362044691897097491517888205674861388425599685134763185500747747395955490543098063123652670672609303971373280599497629718470158672026455781716483184763941673599075258342808416268606469931720045821532885372016750640881175770041988128610667016702832374866145553568732588051457946831094708812215438447120470280040871806266260846644399239837252347454144308827948332574098318784093149199539563999889778316149555240372712664818490817400095757318853523836149670671050803945863459598093879108160791569280640856018468876050271072632612656027174925921560173471647274578472972713508075256757627006830623754279510710118494873755127933097895661108163540517591439015459727433621095313040455938765828760659017221558514077116994849112017826388775560735432195189267191638486958452601616217427467355347619668027402597605613507823351959304791060299915271197007985487655161467165884832765945475371858555600305890649423085809568060273024786940619157695142713186388953250950390802562094079349558258786748934730287289488345713239234355505023294695511240774942539965109662194431731624615346977162413523691078931395190113517841313001573965418039750475756872376520567730986202688432441408135797802286540846687605854194644136822081501718184244662654456258261473004462153147972406410743298675320572438630634113205092521440492149444139376916402309163958578314274348942850113347505355064985368903749313818241843716223083713360253504454392000472421074892133064070379134406917752286577325792982291434641025714775406778291040427675002481160367535677806399381779844470788787212725737024364591036897411985843804351651286295579311609609723480072265454983583165637324933683315624388810676033437781540268121250400961585076618247612734836455717547739060437478862384829693589201654508393359480571558128728646359796357751432043046101760135152926778832261907580554063659360405870110231991867963065922214735986343538945815038542655114188737409965337935851271867364878787173924256462439947673009043930331236249376295484124746364310475124698484740742990947280000231306219547149848136177215982570140976908435227251169670172814848166181047099498526008515261168920704109040244152836851172966376041810662334001603724828966955905614395606499801502131954473749045946741158105463523398804198080605902959649029312362725601930169371043717302368312560465766641931098294182056095363942139580911906936679586878022707618474199615711912349492505779995945182569099187855045542837766000049283311744987882329442348887969307727194295077462446478542051783997793906226261487543934680929903920224695417634192462015661325317151582356578194351843149902263338662724528312939905817770873485790422490050675380774076796481869615682011381234330901587024896689091613839370960558574780922673059686467701206049689244336013642867151158876717931612720687041825867981871639897909883589825857624081257288107135566470298087841396276943484436970108634957562698897230689261938414006912776633405417791040331564099745678265957692295632870642708874201636243625875308734129051565347766655612977888583095910134664406933083410584767795571244824810877129628404719343401983946747519527031767795811836116102019445444411603867280351126713847987481919626442601825722072144299308092907210454813379192667485798396671191022020885257319463705983284328982978446244101277015530799492181331749701010624945258716049518074791284547754592894600992189948786134849293570047551071097794033800637472537118204536092696164654708617855994337211849619672880272894430910641760776808279091882946137954629765470311509982981934606583293498492616148568404367067142241981225904159809599282257636495372569876840041952671199478430408138396057214152581696755855146706753045333033029899066278491331099630817452955853805118797526381765666386284019665183229697019228751033505807269898993058211437729969527134890529386539353141246031589109161572064456467785577804994608154606054582317851275418282177496167848289098579461952695352741906445167114856228987939779434716188647078789766958630387657149630374048981894158996794647093601645626716587806190960394104635260186389322054886455421215397150122923861139484669794576222730017794580811955405693141326561592904685142584695662872635256498483016459119672107442385431095878990139363478641482040376567090425180453954846021927084130483160710981291612147363674500641925420307658677437471109588159986441004340741143825787078480067191821045188089492126884869867340567923146426409076405338747419310828922523960977616641421751875873683726449622071648826175124954443012392726625360103705715050644757765558682054166089746599437968044356428197628802432990670176827490873627121293242175478096487526501580137336985216373109010027376323896790320906650489290288819514851904188873791758606999357616808181653527934767174621692475917619564536553921183336857251525540892912436585676942788216804894309770660017422875622973989071890957466279454377459308993872001433247401090728857847034093624358746790335646271327544322075625717230891650007712932111213575974286302707250719451109106062291097193160879305317497310550719401725908944350891502303737931961554915736800323344676728500306441373471915293657826169794391221388993162411592246850048805379137150262004238491706713499807238500367651176087325891091466531771906494253524271671293805909129100300293908627134656846987521370367293603656812884856145238912828630430881623718690826574371008513511745630325004146469591117471711906444607935448656406647083792382894232129334313212954108763808665327381575793852709679409325747970801939175414853641348919786856659149003853854527970154853281045960763926508234296977900678853089165724383961908917883363235972222626796131486623205257386105205209238166343523448343521964659640520822688587928347472691116500159306112917068736174588290437264160114282780811431011928010652207588355441811140592453210243618424174630985974109076697907432354785904940290736903659083888502631528793678523027312778261129191481998943435751496246125572120473293503087793266171202154254660319098158595163924424287869737811496277431716253664314484919587748425566511484854666908837672956507956784061340468498947748084168044269629027047878559126523544689011017332614632564925963274388098722838199839788398758107369216753181186800456266776048746049411653092610945281002918114707957217605456027911322740692334428032807026143015439439352802092531868030168929792502998747576491407787158495208661021405758126454452869848478789880616156854037255495500705722043847282198748408000664099554901981173723042045314917546294713325684346167586049666266925197479133881577295997094095648819999181634861753400177729605611353921718605371857804099498173394434041626345312894625205217010614810939089944316687691902340758921011332658508832366364013639135921984171925250036633526634027564915214159309926953638491409757183702537866854185503144947053432212377253523997744605982151328828942903849885027426379139882837724237356423571430250937435799853465550373357905804378702867129685412400268722977865077120831790050112681118361119571432235008399452621196612655097352247261117161796695430816041418872933175727001801045488197447281217983200664842436756324727820257541439515229493204193150011283646625294481272527953581044855232640409172578422976319911266118009954311571044179776286993491517109178221931107993731375460214502463016920211827645482448250625720509725486109295895211517291129931270736040457085905796122803743956786842433410869190370351742295119292456011540736097978421758618853515900837405724684623684276153932065428760731387801731484917493695817001568877785080361816058712615037657675555559994103986925141687442847448444331486136960318029465437244525973093939944020675215501152054052445578810699147795002598018886544169070323531791154008436545212242840483985937333647556504291471696733051742401787743114705277815760268508229222281656079658498982116592755910452049277781386302902379343323058974373643805598238975211435390805411466762795753917733810017921180063980128845546840360215558547919552580210590378150910656226433095448512843739572590335712336935819018024644549252240835450895935941995666268645207255822218523544449515011376112448041141802193115837078838548712919855335342923335024344935517157006057000597300793364734774992862830981869951615637887894519233233257869661063595695851553851563690541305442053643061407200620188258806615843688005914024634795804864999679677158011440015903485227715997412779503340296950690596727593829516686773194711459294829795432774727303497348289046647053199034260497197710289786430843386324029013580892657984097893285787708971007381750260210396202348847449066736986153824324222264349877844912605769790296533746039577427259814608827562576411046898308811169884611261239864930359061154674755162762901487101601110847939260645460589657578386713094678512551557025993076806846012556218387972126347762559259674417595997659984804216525831789854797782389128939759616346482644048040860673456437913797787044920431324004964894124578074211255263120133533353148447084687429377204098798910314139241695972503474067373366586115227673811402765629946404824557231952934229913828852996577308066544871958996512685063860060510843888046797532840289280165774807306516827840264099278160468087087969626078235777496221612377260379741243433403642733784276470064482687282112608560889312997305381985058398711001673522786970371557226189037745576213564005839790885437220046957573952118003099721562545570745976884312180857371191346028606980538272418880540002787280410129939317225752043395843986400012717836086733220781015760123955340572718243658127751937666933517923607840429773132456489953192472036398837277722641148745772944310582630642345241566889591647377834742395964960199867987017756948725695973548328167507373811886684296083774926790530275054215232948376160027081561916511147303900134702919498157710535268607256231667982647206161925554063215439107150094310831497828526265841773161237472897119689510170959751648568811289711628753903867484376015915785444647545478355134566062229988258816439508228103898273119264756821715590080741373319505343636378252369423438216647680804240624702394217302505500209302775382788184665324632661247966433510554189878129997477902055708292411796950716969588485360881281621954132141476632734106072653481754894325522145997374123065372692859218007569252439112607228861115147309857335964759388597454798159602205608112522921225452477083786466984135193442187774917954787768362059962823886988444772354691457460141135624284018468937538434971685672888930573605716548534569398916726790284475938383970635458469560768666214282246171307185511614237664494311681509584163733918891791331489020679486157230898636603032579855839874259623833109375940325817555917652386275652718792074497203083167881132569629877324433541666566409466146788724816370688153842408763946594852250551479760254853907247966997153442668323775373365843501740027765073147120213816136956589094238414481792733945930902027932849745085890286946782040663951458583763822242117751890216918930131052694363200754428727177445279528601051423288690054781804375101890704195343221102196230688525551695233638937469151235598803958371444469321883208042896380655618754131155142316461467284175953246850235953170197346936449632255722451430419729868962500634173018305019011524715737530267489865927780281588287442756875882566842243810300660920842064889844718867201802386309577579619862667612671343601337269974979717028372531814962407042303352782155536410334148892356584414292632031036842443930255130689614641363730743294865497783631879789533474219998889086049968996007050954971764308378573886173087933733741360035437543934397436441820846948751558205534450020813707157278431499862519162855392168097203059807031209816378367398820866937449759840733248528779653223392892494221647543841605487848229927938291264327766099502709497638324858027632788920205245092688337158361814919226810760543279322264412272524982606744675787866454551031119059723237831488091617559997512246105078717505902782763021071718775981850093323196250370311952332071663981923541653353329915409175351822317350512386152569907373065933403009632467372623409602551456761958300494202465361762742230326796610342473077425376926563634622219443282488251285229999222210804761056538954729420192944589670350324842429204320640575683993232750611228043442143144875443367530392287341621527708745285554245471695363840276558626576702255668159835847815072956138792287662873109586725598761039708095846882842519542267678596931445181406379022105484308300513929312427111210680336464401874974921544290459994492621185104151214047639479920416450344293305552912503207727408428077946477638936711447168343776600279600216335766136071671940328329108933220282402910050873122219460114709441192829367894119186562519615171116746276921582941800908733632794922490768131376353343122223266485560001993398017239391105694155486160136346425640973317405683982133662440879347663813241174540491463175899652483756323589448453406469624909309967704272977284667874059915585636356827072219700272235257936884051354080819535652064900269940322112518589508293904515692741494346968444883404282270188888527842407821652339988507599883382831644467063738147250206071206509002447334650009981257852415869698050289739509588699009628601043165234050308708688423802997801996855730672019437194665804995144162438956891425174557027762010099798866717258494957489192634190815825953493152689419687502470576597535977444125974487185384636226554497664874877665784786579140028513132274873893024963874739380454340389983965766958646339421556386280342564949567851245697289410766224620238860912329977645393116546963884627484102592249370556174556314368166207780589953654203518409327304032527483162885577377802999086581694439223384552761304830148653192390904647230006415590012615632747904607405071078322209817064753306449649449631928305384983634993120103598869897412872924460412446427951264405007544564974728394029557729020494294864605487639524027746187445295137975020137596220962981779426556805304589521799624075809513570103935661128520588346257770886191120697720371491883653502662180209166432659505470203431934292497112776506053906135352113712074666318169225129596130759832797625997247026833852601868411925798044187132763340368221627904170644323351226905539401645445343168560742792593960092612066784230387226674582503316132450643551166411092667323771928829788534087901999332947554559940034080442679372030986635242423513824874464631673526676375726037906797167507562167416024200997084680716816783662620300022398498119022334490647804018416776834630671591158015293302532391863723133732561406709420696049374344418846675211088883025031587465373306053434722504033337054986490811081154245043172999022790746805226571289758590557979653850924343755901944051755254338177795759499207281724436034705391915505852563694833881261658289568663734429094592427772887601824891577431297922360734465308788997161749792991157193156237948351307346706268178508770572089768035539123984466452824004838109612693697788983750119779581277333196579630610777147084789554575593524675925585861625302973434000133939607403453745730134072537382354076542303470280085313034949195665701289108822794174591758727805123049289115066636076013109953361062830659345835867957819683766088867881397636682173880577130592354315439092304989438287657060594975696445394951415728407003771399405855482262303842550182765935505146278420629729063792298132846701368881827438012950564601713358246901714946350129942077562517508719786192026052920476576722475462043564673909132347625429134888102476797061596049605668813349034562023169235874932966603685758033595463697170748430145742809158599684605652028246715876674658528566596796215740863117447481994079765814264035716703776332629840437434487076770802089385022153686475941624103003055195347268033606691792741577345298734972086888085913244677345391115945992140082310509576447173821313877832679135039187438500771223649857569747370574078420443997731711012605139601688912578557395934859001401956019391618060271399641401324829516778339882365150432290360638303873165548368587498063057357683027467861376551504610122129860710438833333389201634213128539803671815909667025302462684612388841313180312003371744974958835309066676258147685345190620260169739452556154927312556750158085238344022914176241846883683404656957179952081791796195156308049589856550183924597562344368764159589843179938849230938203648674175030672430372847284638041894582883569856291129716722721788726084429987554338252197916404268202212617518587729232574211289724462362183596634045383680416320724161934879603701910361417519502104282389290648496830226723369426899712883498316118199283365736519176206087016784781930604049874148775354314196428141804331587578746521255375343962146661609726917124602622285160068222104537965478221271653108223694066406326914402282019750208956033121450468744601623997866600508052253325019681339576209299031280440641282208636871920519389696207352932554242929106519639296803224394298704514424378559371021470572621302980508928052827366384434250228571263202173253826458562962869546796953282847538567848707504691508295984752491571326541220645047782465314658951079372965272781314314021417138471502182729555198441477419138139798259776409261295934909709242578826570356487248566533859337253426839499049404939256122266660837941827753067562795884482954728712160184498657760828305386867624012917690079366230413710248829105864423014865780669080790380671734927798741554126597697699927329457991631747108458748449802019980744853816293074822484171855466411802478527700155074474063904042289511539132305464432270691358283665247092554095907738210148263564294203236705920118069278663295168834368244075575441431099167575625406325634181014954532371833148077186124666025649224865740532111473134322899699397136153822384487101959789346790011120287317146168629925758624035474164298619965339151020827160681678873491362429981732316686291679694424441841902456028296545690348150261760688361603630415510390734665772302394057378025249366591700575318343956081640818138670518195671394548998155079970925904983948550226976791150597711126624119192181463520304136818785723633014774341935480994589635658345825385718855853284233429626331562797620996349932685632364783807450804701637683760947778530014410004874662939540100776360581146927774428828002686134633026028207963032450580984198835468766245037867420033845074819224673616019857878110306250691168256023258464220767303294975380895031524122775298645165060789172163254538043310546073614832273990519833232265558124091883741843128011324700974314341725553560886298437589068644310392149175780527620131692936257312133797077203525766362840332243596643058298637853987985376188027664419026084184810318893748939873535207045781056929549693967307680002639407629978672907353804449492171691954613230932088065460406102492735338660837514640636257056855407387468093714902403761155264891791714956103271066343144460282200211936946538585602998787712574040017565770750610179609187109597551374250995874326824077610803649910898019861994434672181673097972118431327479226236911343055035056152497451895934176490525732955726104105923841185024266605236515356114702320016642095347651400473641665861122553408227245468665922375937943473156102761213372995854736019052723922594483422399401976139715555544847259219735626695570807929579405542341436601991305700161624569956792361531434823119827278774067251787834704404203876886246283286568668513371936513515759721044062971416025818730996432757192084518649608370865695164426103249388389706758985050753844932342452954892131518324630306918690947671642892623539987335275484667444844463206107377476202164156221888607824357565372916000875925745828771331192861341261010886923949531902932611198665026755726801596159380125534613383644244786984804653500667729688566936990953266561739884684551587852253636843558999047088847041114505735342296798435196258137235476857216782595027347081141596988301825307244257056952540806641548704283327741700862582971526190967128621197813678307563054217861732338638503508244455169634130727235622439283910882540954550666623361363059144931821489068623318722384780392660838868654650123122383833777404863920553532637981227713188985282716505467661598844640539264055831896083773108011470526792208767916384072031951282171342985634482807672001427136520447093884830540065274868143637105454162877254866919099265660820207679454187574994337519695634147756145854496312472170347035852092859190108442092243126593360232572867861018535242484652085623163101773816292771717115219378861237415808200452826375754448939167511981015194840883789405493623056324652272833657033498410164896251340967389091248879581212599290838061550470295025207154243256332104443887163957416527242805595725799298724611151821717466981839104698715522604965145834786315032201357206479197200056895038439230715814244039849997236036584085421683569271384241870575318376828547349547744397475023763809873509145102599963299235077666161876852054763206987092525102186097041299199869912245017405248285569402696263835012543081758662649294481054831180073834411427978097405660748281803324888416808765650528514386720644003128846788239239875668102506988339275296969313918849571490999724561502939331368741543769364116917948030801913819559748868166438394852203408074267114746084230240975065720936186790494085626101379392274589495918458807189981343642203322177938092694877163394302136179227727040588888454324335160892504543698881988232320349774358889020898749405326198970280692305118046074336295611973439841953671658047054215455567828565277450010816995665680601115050240590208917731843340895026414579863925541085329501308807182704741806842921550005359937629235694272524953256318746083148782488259042072931045898965041203594502362133155590697056787903738614172298558533618006352282377151860815389663938503145736539986815878198508063031708493572599059991262284362202968991396397978001996042893305846486512228896309305586379558401688885546108972145908374212603257959749563399498251535330015645158668559633477613067894070176016635969309741688387295160751920321745057575176440069809412718866056343909026401152471591564655558938339559745029974884415837850026321103034313341982055861157595710372173639980853266567092496815199952534321708396524260057390258398104006589968606307037558141037341960913686536728045093725189596040193968782946746763589846443911724156727419497342760898903477178097190593046569263209883689877664444153652410465625712453989832448567562757392709539937580356035390036314595338657453625644081456573934181286113688341690490108752831107045462113738901732779722039857304157693079728496335247222801694019078365042858701429930277975879598367326261618690535649251077911176431208228980575462295221569856183657460211891283809799495520428738066398914955167055060749216765839805293177132691373822451821074766611625818911773853831511208795072960611155300810180054103791572245523695277150159943322681545383438647624495693283489045719969996934739681641027302512437156151778877939216521662940640299632895534494612450966013027256895226110776804428768597698047718048774852756626850912072550205183989091693959890545997434794972417307313570633610819312708324113318315585856478841390194183590733202688308446191782634547526030722003598977463557185127779861133820348830736217674278727203142709047159283474355658484783757553336049049817055736963682318283648747587626492753109092071453231510771542253853442959066045756007081634068895467049535494237232365691273864478567300505495933310829122440881115465336273848079304015645270242733490851519850350731917685920694581973196764410857777005785031110491464459544158510022339967714021125593707646716140526982336281529928232167709998113132171175821526934195962274492984148951938928492053208871100973437434490733901069314407405684540497864158949256173985700601622319664657316373171970291363854449898510591665911746118349430135473035274862595430549923227748606693404093536135319658924381639287358302274931955262076660916459437466879999187404102240116674071561990026925004882098165572970124591344867904062509562532952414787675866719292510663823838216448157182032051755192685131674651995420785772114915628989149299912168364720770344761984981777352787188884927571375426919780831711270410910605556298734464652489818520486630628297586506054562789237886266636466071515332158157244339971143347704849926185172686797024290528833805128323549276166571984057679416581302374237588715798041689037466586115374977626626370977982120176702472451270381502343433948166787299696987770247873291402001764494385377913355093807438564243331108678851525160348671375105040240793041021439066319027469696176844614260952535469659311068114610266651478919873111005590890947928664791175236231379502899172378621122319126662109128050777477532338064821916486896807860226050278905480992748427070467808435923712672478820998085434496760265750268177928806968951343746365025786729504371585413503210634012579483202009669997127494765853490150727040341440649372763751765321584180761670834419726042138849964526861937829021583407540127665979162162473930471639798694841016140456321602802565745878972122178190968906200942996700823818470598452206934681404898987529552441856832210686332136431509843613215182986347450054812631133641813324751158250136203686188119093843983027245197678782544857021005982952298065623878694676964859420902761941507964786978677054576800243920523723488486214098527195042805625642386429165718238209370977154423584741428137303328395602233625043115490129840548801540943109154911587596360227177016739068447547190227335279077432036985120430195066537881468795142016480002344682329540872214188449059141280585125871670130799345833174725678038870030231932733181078058280180000413709432496388157247246119977105886790866105399545281478792144561041924692421895630317983207064248010025900996315019751391131385866567407618235406096387189131111788625695930913265771228577130257811026715467028844757486685557089908760530670319784192350786397591134599884553107596634306412015428349750995662018178170624375031098212408882437538856111912248190180938167635447893157842079905535334568534906255806931416192185011267568643275494739534008816349587802275317318061074938765705307630516959192699078762066731193092117619208826167146397169993502966841264327280702727627960815037857738396905921026438176069370178487570735077006602549351362647700832802031096093610058378768027424397570894353802239192116397742014608565330942225958977458962791010277765845013464356598253216062633901886918585402526979952671083501386231298086768053800115350489059722838215384110287886927791834649407325689419360890365133303139938986437386847435969609440346137257964679596869471092091168426360373897437932380937204461838006807303156189892792550906388718069671622430937127533038867452411346161570706621809427084527699494275645157100900681679989049583772753420597594407771344583166124714503744150387157479256369976735042257772180683034461176277085455770423362072814002785709780593156676833118843191292551313162067513725847446911010329434904573413875640229956186958802175748147849812087314990523784298384777726362351750932499809562830587825910152339027850142345858891249306555902439035659368113598623144920820248558352493558043036954420346126863729570295841095809864306192364601512080722878521403854188731335549308768274427430638647788812487143153082164745442881166927608199918687316085973943993954419209696029647058225175583139775446113095953098203130378923622968827673360413307015960778024190465757921092083106611118955770222622945518584489121263744180719872480247535502346355817773030887989493173202109984804719765554360122914489088548043847514912810790402756937149099281065988680158973299431893308991999271340928180843489111918946614391345515115550025672791880737856881023525832330258783069796090932183621820531892878081407067985761466344331293705836035968544052000626915257164480398175814381289882669097301029232546700010648085000314643693620406781005914656358923442608340201386289256799929880155294299249635775792050078801622107513686978964305821866349638243301925287096896566989706789719296014444766147639653834282608799278963867856173609371133839415342278290499224306059279686292231410881411413208553852448823931474101029223677664105004927987551777805739788267730976843736892374281934676121356063103446068139314083347725369702967518693950795376737313421565627572980801335328325816161589366281449864462203412497578733902182035489718094708616186083913431505083949973808531644607055515187477630798939863499265628916931376900638518213086901854037128376540712232895689572680096015829116220611097344935158233155222399178247081778286271162091733369950221912785373130504956788295555010845097629982046645465759714225662876455474850382092207462659175965302923017245238844262393742987368624690454810146539670612969630547554100659606389736662230924346383343476459717643135571111697388246460521310247797444154810908839220289178983743111656518166626245654666234779548460458648382993324092312967072618103979595567269765509283276619391867002819210703747511489162964561311601168166631613974717865590912003346164093311599907224011755027261448800980010105510213272171405831431985489533111662586996679970106157914408152800903353630220349910012521360033542629289666254088077267248325518128772674670755131382375125214758298618018966429665508011397868226849434615425687392141253230815013564171178975125618740991673498795718404678610757247111264333535597553588884720430103292279191543311467144546821493160264794547952433167711587483695109753363527716398383176989165547123593469706498877366774085821713929313882347008942049158110510310949073228965755133513297265946156240793982526610480007559163485015592251109380416088226601615981910538215351304984695558991824675433082045123855329221211844520142403570024425574176804405669745568999455844204787061452573726671425603768656650855723815394377310629655580503351420251795313752093358808933204280208068387296915778962786022948470687232150761223454340308496049334452416892666230782052183742626063998632807057643167629146504496470757449165062333338360328896829530124743466423867725806391660800217182518819721542805452971862817935069787534120848201158402229045193208379801322200518758829618778822389640091194690668456828326416587273853078706596603674029393405373595092968234764555508737280870489979650003858342274449242216987432176476060662545630130747930999889095510682162770785044733185299459176628455459344868163777604739743478000042813288202876673297431380263046767715721986874223317939964752485350782825030335867257178957132188093428521796558575809868058477072202991645574793853084972320049727468519557681866067450473508660768183967685013997419547938975375838563483559125385999715291227129863643085347917237933433713129574474239877905037991234641260435728300333980005309813230273177584837519389215193071460384177445103846189295147433831412860362649458451326063758059072614981886727294932960399301883447342825891613672986942472048041111656554533953712234646237298911425556261897468578283391513226622732319027044940580862995919704343957901732896822853885613454133967451999869848984602353405927153306570367433435260456980376649422605907144998027421708984255594885985553339455284964541733698409005952034954172416526493393499977742110831924483950713713466180791989283274307624530927768887509575585739269690142299139569352723868137109840637900006251572286717948719237652874390352965102047347078643597230333112535967518447344827806596917599265946620576525382773333088108662949665437554308322060375803384269836961562662722926978532226715617164042631880247731624045007426690306540978712748552302487518191174645494651474305691244096945686730256388745352359554104635001269429734422896192655394804608617214219986507350312345712120603851280471759441285128187669727196368801420612236502122632162214441524947678254513214239902209090429385701479985896838005076362879155643091526087842215166075289117360705049856305625972624614314680807651928591879377508214113720798600215164191605866426693058207055619898127064117490943771876711486259359945679637096928424257838406602136674443635589720026963587752223792842948607071315603168960042783122742558551925936464729059913583555109306562505742920886848445193868959208899819290872034133912098334946420737648437302134453659809126217747450385742097301529009952823281301739061535140696362626520936856391338691782362178544133035561329825449469496296220778202805824998211879132322165946903838812176397632338148062388808846806378910012193828144398627359272604612566412615344816375379547287419031771878344928255936702300030088130309621680807474507481679071457861500390458930227858927905464807954709096277495043329942192031480443383767968525998152905317062916183689963790003324051242070608703970180750465243886882089899059697070968218522254954575905287683041287342209358693671126162684513598724520185876238639021596691506984088964424488238404362088912731150191942904216735101218571809788150181911678708467214203944341598681073954941782133961372420697940318682589891578551887236229609219602872933051837889138249712646825045400645501673180923827544362524771326433303788526173143839277628759562688818838867488236564633381422587466880873749667679344164887146628054141139087025387755004941228081876947338286195709959482948934696881875642396043719288763962847457790479785653053700834845959214415874684837671213656616053364420457087688801845186283953306047345717278588190399717432252734621566921377152974309887487216605816535261362986068129688333342191256013990200646919246983021729655740091561970792518240326773593395119140592290892459694212448994366158524083995030890575787793791261108283855189461631572220090879703146964387725733509725600133952766112238563574011344739886290781168445385199437929569932219942222205468957437735189167579452045084291452041243071849241034022727624490547384212996964993944227272019548425720680991969712659876187075014172307369097340770488560334618691505881126463721221182967263831400252151297818744600990051622708047052857759694957689801298737752921956168534086400801247333472157988893915462833209863346957622129525536888936516650581426397869690172541569706238490273392516518650044919080080691194030599527512868107838767831081048871986800381128949937173851867560626520282130831053496359868029314388101434431345523750791891748667620172855670249811192663536146422671835469979939172339987813712501084782893058343216396059645409248436869022105459702161681863104962325809393844947574880390228618168576947463287499309040161920165092283871471425051970969111691535496179092798684296668529683834186383190809117107961168073431745309172257921547749589977132345524693295183994354410567803363755639235688386488343227973293463489840679384347102841562721780988136673195444345782522649659412691985833179113737509492024373251684126355942843638541910616738126507194628516622672558092058527312761557085905782926502243918702366055489053770337364719588450615809404530235770524373447520818170059053695450015405140291169374300416939758616987151886707001141795690697983454132329622150764064328430134294779445659449827729074284215834232344555652630749083026800274281741911705280190156968062009571148840658769780393318564466689688743532589819286898437682984495058900403377950373054517840587016320427879052102103708333350730860052462526476960434752733328373263646328935183584401850651553232853747854961352034162139463947172649923926148071962081166651944406852251643656662350541648486241066525683494886224314676396189601013966896125622244630874534113957351962965152810372340176520834661052248289135495808879131428928590623725497470220900438578736242993591248626142945911843301566181213555287182027205150478314378549644933653915447448813243406521933889682813135533007422337576245619042730739994006615508535097527739555444450732325096782777463948748776043561186794074239444993692253408689658903694641717802758841387470445972290025721684367673824988361381720017895407056959278571723790239470140053318268136954213953686682377370150239288021048628448212734267809546568020274224309195397069118292191593212714854551529778355367868885870288027418037406301896687718291829216600143694120882629343878538677406147638285461375160126276425530486833710480475803653415665002313211355097876077597193400678001125067830263101575025137492807783606682394765336386414055188186443180748877056016645934942242497146293723728819841054735064222494093663015321352665210808221655874910346652564496573122200907878154912304673999149029300660204599446441712695758603673718562366856796090838063886234101577270307494404000954639806714849510876179152210929666295729758501601100159309973636307137248866226549233878352359942514763757297102329570401043527426416718378081947912856695928899740873239647938130112122705156599240005856055909306225765165822823687031347331645807418084811846785362358047438806969614169975344334747740064916960923646133224424470827475695833689699781608842479524513201472731012862956299427661195536481215450726979296238711713103178413687889625511928478499053882192466955619350031239026875482100428663332921281280308986481711188857163072675189442952660308719840093040857003125095156058033209439847256829831679360309255816512261381455907617710684763606244918298349635625735214623135717677292472395395720270492312888623725349077840503379033295972711572750322948614270212060568667966909670184606706223511995636603427433999215836238476762903881809316144910564981515855445156453993919566165149124474127694079247623548159567583915701669780834456028903014854073312774281494220194795553835146863435397961159238993601582344780964978916223673493072644897780324977410859779239180400863326140011318676930698902647474943820718697641761865563641235227981444840294104507683149388712523412948677493585274384986856327949259419914682717722586441494310777386622237197943830847900673230911107403874151525381873103348634565746029318563384015937340062413434530777786313678750574265629359539063448441115431912050564115475076948120558317603688497866571090832364504663636769264966050310737325452511605279789238990714583266894685834805595419047022012682273719785897105627346273482560466428784093737078085869869600217471364445566765128341627886021529849373617228748649514148648002795272755115181194942247533531499161168524080757252412572269038403334364210559490616841482527325037112358376882969749345055963073073064835309116768664817089570987255474195645473692829283845524577853629282003119202127850225615950455635165670585853986204918207000899299921507907314010441147138359953004237372477011888783703503180591226556001652535997694017934067962569732130681180210407584243347076202055619497931096548913387985142926638805585685622111257380802064485776732800012523787836627256144744576810233418764341086965824985929498542799453974120113434688975799799722115331972033134469951527472680420813564319655843974258504041462034480161973514400528608144460922534204562979092025903783843951570578732823521826437488739428736654477850854155582901000066355994509643252553214075926525901205464985077033789522837752598291221844623007678720007172008253956259506172054780362248511438172888736352935412583360441099280907920833150156119838358305975881661954642052885690714344043226420382310728595646449136258399904765604839297558283196289081917359728444872854601261049555244493280447098591887501197994244115697896472519575635886385230696202180656542752634056300271291629340025934186262555504473501822713406085886049341739862446183673485943668681497893026420582858832181853348247632854207948459063102435190719213546304170881282990057100692314455733191618783440416070792294525625904990820271280125870018230452778835117769940005872826493250617551121006377340765034264250442319596493236433104080228018057255214797004119636394557831097661974756738264566826597073397156024030806318885900547049938964054140678963133198607457450812421968175537987096453946770225560175755322791431001935003691298523814096789721221102584984355052947882362211210288450595663119540750991005547063248675965450362943608335533421852644561710362178596556514675071608231790650652969248578859043427452238342630605647130803996794269451442157536243048644769818425039004635128419751960447136570629767570049103726526145854835328251399554140863492223903507005498019712362312095003347750745262561981667027210954454603687964080164629663271596786466267066398622735046388111429059139568478341061162120178519389387621320323818859022170242777828801794549773755235904125421463450543192948226271100299302041570715164765630228088069267065917321680725265007277221253548453985365361261918009659764788174141073472929375374782894384346439813636450307858554753077650393415379951330447036874530533136963630883999206793591209918758296507366703060050760610974136563175908266424942322883290405805178209456716956311216930795271858375757583625954156584165567857689256115672911068270886796146113438740692696043564550010711796709665897448796509302834692962434439782613329921337360572604517824389280563391133872648024274825151327931000394580428985675546361844632477166360959080942488350595217924811170993496551595877452023842043995313971773219148986027946155968694377592567365280747741291521345711225266244705698831830031136618010959527309771130744411633593895566203887156116326692667882494552514604439972979088883079198517933465156699638989082222683239199499466885278747679160598890328788328330564653839867375154931987759712290641823364028220473374075705804602427673562032800702054561946954249000174389747619143512558139100991722521364138132978974735068806600055087217839051907629504362562940265808546874116613683119176264060947125271920347489544839172414004490989549416026201948181111813643038252940107601195285073013941572995417327888619891828175569211862177950314812983957118397853199290262615541099522284077017081341556624994457028205126979474837281993589525974534172738859368359813441588699229366455453083041149641548853833692452837257981184592118182836308857703671154460415340729947050960896247052089036536043835150178893422755967585925373762959901866371318833996095260184497185389857010607342286937508863037629104972915882150358437458689341198685091066369740091031515515446190614463562787684074674249486788082918946605947475951868023573068521328974118252642439415238414787741387588915388595361458879313218061920495692119507574732714567673193928919092505434222732344511464301205078923258939312528181993960036702004299598564615391773649457650227755226136221773231014199045020023974835995860673863928379064474046829955885137240828480003531968817962226223312865119049556414306856596848978898825575324715839976868885879060824749085657601510400391285965276322784532749756988254963870055198853344486608797255999492729760450825620908054810737693071745812676754852846886675122004409793221126294691132635197776749619170663401981982138723378773852178143729526136102444080515169598848086650097145586423844920547462327567327816707047606390931721343701044904710162261553793247180108901470918441327242875176586408770400051066397553263317631624877904173422490072227773633265482640787357180258706009142620649989014367643183710588003273917181126709723096295009716665694017673961923847010826571938629785473758894588139710116853855657668735269462956547705039976220841807695822811160488995268323159768589959940578931889255097008350638120937814829689680969126697904604211212431996815085294979292031097925800220756065810723811955332180803497770621486112630749362936281190004185987904390945045756046454764712869083583291678916440288277103171473283875266292622572284566954834881405297642136011173986079525667316668368066230280418923310016332213894227548150323800928225927774841182915701963757008279195284117218003842011057595976189035421585414852830017295727160931047174489821275992077938014687029965882443817807344593768190278971663752231548072177014620209277178844426552234892066884407334862123230698357612506932576995206573636325454446959804017902656667552784054219828646459245276782313372476996817024212968819800379141654201075523808331399784488704818192326765423119902578918071169430151564222145238475301632160253538486044532839086537994807964593785465174065253257480062858086348802654681557862533916464888916934526092678123215293837135930238392051879532675277193894543564858576248246787424381229729011104525610103563816476635688379656290883360768677935519171581512830329585547666438090870539436561679775555475932489263753175864222284077953897298626931899421458254680202292280042923936475221528317424576702496376056015045999950683123988438631108647326027034790507702846506315571639371539754270202756637711978820140518287122890797003726020434930362321769148032840180732021322394167337123742227276272335319904377932348318473595196610512200617116592324472987290803266809294198945028685019117567214198883065765157152149948578658386955295143708749271269054092318476719029628574193502414014439858644423561760120924234207676551920601749548727796808684624902379032529638623873871284938946286135486446554968548903709954016079778310364922124315977444399232197496780064847788977903392679874831916642582672802471510582241270765170186722026096881634941315661434695487184483636547188588877965715633767366955605514094015264631965671683814114751106501642794002721711110639726835044869531943382337404230554862252615915883937595524737881040947504637939729326708395128735068634932233665251251436121853123899302914467770362187084268217526942520350532926574366699678285117650275012828671688540265515437954318490491957517710960641074317050269750989330387039396895530451058584796870193874103906773428765110001087012901356602181627196071395096610961046164612115933564318915164584144130070708936835791226156926762764382608647083477695402116148856774461110110994746223100781389135698783703490505171253914087207302885706804909507080115089670748516303457530376844517960966967419821099975431732544646183275884288961705365136090007042140971996339462353166013755508112052719832070338487236678277114276134158206541093140613620389891534050720187529458567389629540157131387859071134179142741154965955408017702022015424847803974680262931771952405764816595465305804393008478262613987679049055867564054637434485751126292541574811628264383461301280631554150745837560406754271980981726384574979932518466566018593012677130510638325613909641643119386853955209154100298977151965195105525479667650017130118258083164536654516114949735760770945463011173013355050132864684609417867715444727478798912405395321932977281791098373939066099639055488570290514346044506428467332952450001642308181353644643420387814568515647895752794145882269512941766695073669071543162239265877746235792738285132781055755798801402007957168736417446952564108275580505783975454850107771889781142134709690995096237086680296036535703600942209536287299495055262227561003858006048889185703406771743524110904789363769817876846601751075250417899743530800769951057285534670943025126104574681733092752468589555738087344784923823271489842695625091608371498716295884641895790709073748756638904925809141712756007766760899684158209484011002442289325781926219569751711949788441344520109755253128111599988315793686030533034533343672150398401847283122664654397372129186589474540912386281340703221876182790550161957061616459341749609793741222716752985729057142849170674569030261883953438625969574686217559954736414948185930937832743218973886210720555419437396619603426047040213125065933299913021591397462240531285972570806350128572953310315831651048564973561145104471652779272524484910603667399368614915156678201037365871901168014778936645057088074648919586516589585312453891196962673187388197820709060051200393962730559962701758332882330151557081304185089894374252295421781612687231255557840395277604058659231991275769237337960496744924281846098867099278396106663626261413227005205028370689535400693759425786130016944371022777844580200103179020735529275163104992701205501902562754097203975487728902251987069739887503115164237093086089487297460120676545433249121038930089950284830589011732009423322455223641138524116696114230744853305301175063757085270108660774496476136112744894182885536600834784657123382605283070685232446634638769330959855329151537844704561919264825507207631988538435075959890946114197224239020882700727130746639934066266547190456748515699343429898790889130527424755786243481514098840854108184774008084941016504183722976349089655983801034530380311126509984524610631604289422947282986643949433016876358552138585636111378158542239817035485039574894482710345097628666682613538433023223086890303408298949132527145361530844814080197068944091365115300557504165925226572117412731042944701378308455695233173409140554186210483944182249594182852811522890129773448539705155061669322306470708590128656662356106462266382146673496755282539618668448850389767400162569720611394296485002839381133499334494950028021663209472587663087561492553930046210112397065962638839700276267357875075240072375415558472339469410083652740951967411095497093823659073690163545891158776942105830035575340808900086261755568192282592497921044403794046984071791305344739638435829974621177472092543330352549032425551928630119131995568273953778974356257356118921059463767097533241906337650180488972071891786360194866574272096580230370933988678928601334518138820037260549133796080040397824938996988162060727755380996824301795849258526940355903180145362554349750184527457007896716617723342105754268868218398814432717154512729993895307904895291085510291025873286627962884348478669972282664683768323773274459117634702329122766857442746389353327681963297428363408133227342104000396852769213122570566483530417990159887557125362389744137132252928754517096177748068073016018183498203254674151753366055535214091021000828721911695676581213391905254596020956207502528368359057596648577899490043217754176421455581406103850869151894235672345507902315573667167594049115509256023732126368696738495450634955550342362249197765981137120228004641005891248329169644724796087434919120113329217559883198265291611129361233661941891762701784127813025072261624558989805792558159296601154836239422517744866565453502942989621047865797598810426436610484711869347567563667437518704502899193872966984689895128009925805011981323422909323578049155336654069542972417112273922027112829893079743123608118362723603355349328318450148797495709666996643024898109893383571090361266119128717325670914814378069687474026502507048882758820649050837406753294697067449904325354314049678308053711474000546268712227407694148981245552466269568490336536939955878571504437675070223614230159152128779178471711372439977353980920683852375436446694438753318411187015948956438757726581020187733630760670503726911478996273701069050913842540216132705498102213372370729786888350685321727020101641017982292698564387469817055700670061884707251647184099368413404316977242392827738641784736705220323417314064659556730983074372963313695194539747169040242563207581004976708952894327900850295867049240584870592546003502550809193854659115756176338748697311215417538677205689729871749111634380864802340385297133092689340696381941896833949017592916670623996846740783032827259644285302838109796500123184033901178849827531067274435680501232423716968915930552348129152459516136537674109018497932525080286288747616118001386146843331310239198494193202960010111232662393232608358776111682576103233854880814380804736701218772215101375342012735616631889887622434765514495911882038756249240179564996265891256035173123978940212342225221808507996460851158412008824410811034171178930891375337385234250292027700164419433234117202996720836712380950649698281473929730170711718232346863229357131712482300940805594230250189815121805503416954756812959624416414960989698428161741782323845794183091128154494243482678824894859312479477322089864223392458613521721174701263988996404504539218321537056780790397513814620450952143163197528427899807889719179772236054953255110376461612879147117122180640611841195318777170249360727313866262930752924521055574707452490221535888750289215032233450002685527773938435140490927431575351240229093902871777570293986995088442240242074188992900007701449164870845309575984356857650876955347128830864167478407470126430965895624466030666577087392425516013475482721953262642744083627097556234142883920058584302754128843735093259882398851208761192371180350938097485539376708063959343484836106833958988545023181429540321546945713600074665371647279016439259030213329179053446431815966270719307180309731671935570170628901956608270699180615725581438649568357917522286804319047642647347983846625739352074765680457867133716837405622130214113980985629424052151979229994571124929368324285505544655159185053873192348235821077689022002162107045478402192958434918667777623702558738145522800797331499113585956731993269132491180185371071452315331397571258631975274898363451197781306167023956744634223842697646691062639877212869941203507960786956032576296809701086125270721613870755633331363450591552748404777739394119143507358575973864668511669151301373600114373573373407722574950081148835035338414107489569986668379907928601429922786245065371832976156237146707621329840230706972860445726193053681976028654794181636740594201232090635712527232549631781208117558707228606240289134657072787058275265031609702518655853273646615140716291431257023341047717190751285715167916558719116386526801959442650827373797748048896971209626219439048266001349381938521414849251876056798790581714961698002605769703686169581574230420358236361621083158001657251500353581444744787712997320247214624788590981320214748537880661543275302827750271811533571393029265942025543248223613939248958889302546572564334513687558775997184046625684452305593551456668664303510950721665870442399755581878954523509488100987480339025292471617097379350119008665216693361571663586245020679491709432743769883312128246234845199932516119757703281333133317114926225351922374819673408593740083465146665344411276137914288285011868401174853722105057067549322786575449865854006821969515406829398107904106869580157071183162775073093375699412016815683481789488691341159519070636287732315092398840841388969836549862351219193193213205512217767698600514778643822057673517098283086473683744112250435268758011074625253799228830668438050627698655033346250309200963296376612012822519453672629484414479199368318379113846906806946854029664441721161456457029077813967701366300069889099412470765736931728180879873257552751227128517610900283017706064539782824372954594332575951384998748494656989133573855592140994010508984017115316707655349889242498952160640517973146357566508972285897129763069992752926043297660697171627295972140412566080289679073612553460581238309152573681345705408753724207744388941506215952442756246979923254888645367638729688739031197597304898141591704175943955580416979747137047371167315938995094188992685671325180338409822937946687856833183923877596279595809896193278383205948671255961271257024361734673201876773165987581293630080477692304708018187192471634766520936245308278125450649111036060056152609477459787895236340222931243654086999876840307920461159674605356031238778406978357243749217046503002887734733976997812280984401700241522313540270676794353009090642261059693455708767078049741428585445963292055464219384899999715262128389798506925007207026922756412073443832987892279446883959443342888921744321551873810811902616459350220063300353202244064480674259073751929689819405305002192292874998629396646948768633840072467189252351529776110441225253721769135661240632790475821230873807875545197311401994916105156590203608240386827822496062196873070210764624063592209744471696061735346882539908087977606639497637247544879145319035370305142780451638924723887774616008451981776368219439347243871308719716862569269199502083128373556970143857890677284159945003628557490948819453190959783333724695395648834423249145399878982670468820020051089399288659324906842123128311256995121168304805022895949673680495506449964561274916808259913005019910710055205050013902620134133914358980726203148978577360948588134780190025440681074797268771526597068038826883907614031326774061812437745237694011641265535124924443265283603384880863747586436988724615283014840129861295798164169952268143885700536468818884299631083086759084665557448185917110648530723928988035320461495228234986554638352626322738062787159371132035985659353654987310201112863517047170833274461778217089538618650797070008457722252785141817008455926699850390770337237237956738422222633427732503395476792768690483624520348283544709380116672536490626031950102095121745308812708991510295321718488678297650378117988267995169204575916358154235024257902081002453430187431993771701867935315718318544785477087322332324087726904958436260328738281573953289946104889734054807143483679834169431212397782902389670938491550662927186314793917396444833351146294205261582260340878831629941354104370267199610127944440962969610791951697843079854701932144757696920247750202564863781154375040449547934805071877975870177018016160871569737861763604004407242931042782370988251422493249328976544800154588022944130602893594889864825492529740140382728496867449108817791391612260569232067166405271017139741679322085749128145634542289465442134562522200323279827603604499548098067736413653920856560594942037782471673503199547562075426733693442313678613023302841151940973709130235455706934478760274836386487008851407926633987699700389257241034786992782153641941406195231595212847321423133605353145625530159953068975078468183059199150350851208158364601632457548147593164845904848203374053469130308556776798661765662540864867037531842888086204472996860612339124016940532903209875347396654962848471196561843038813802866471366537261341192581695610663113430527430768196091939342818062705626999856429863449115749450853935962304816818298402166433398990987295547801310978365898653113101652106654383624126252251155775813273974746934076623551293900977286109893401615707993078076596094971688387021675585243959612645123459650517034470338931271242106809198868977263285930367834134048486981880272096825491999602466334192055176478433634370407470744099536521121536152206320163023540001161528811167151585049430430611010352954315172103205978882850432278098265522678685637506776465399331276537711504967204393364369432203706835313390448421212909762284271416849558633641707862402831878719142607816077541993492160059929922791349455330627942591437618219092463130632144664231445956879241492792166486350658563680929659111695658373021837053726632278978562022642958573990067703601062774551302504188468012569780101054154704761575506906033238678466060944949224412536304250640731170980060811577761889417290498143357991948645127909250964298365350663059352468808755416086177902981182217681251036437309078025885734593797230512151548827364136479894962625208023173083420673368703067594735236066952157333578919136148769277970340071214122500099703845301602144301402960839913288398425854094586171087805632937712579145454854462064360641065992295888595130850834197268234465519200663943441487566088319830646345338107895299331296954553112287345237648956932812157037284530047772697285531438338350062115986003984123623941556037750203960071395567788118130371383542553268408256331328408915324227895491143766845258848885436730381832519279549277242700176381271723069642779407159378526256408275530694740110058584416016902265729914779005344770812395594432662804558262146875687200402123238456204378415700554880786186318079478683609600185166099098209713983942956595203211048056974667571472820301082822352961916744726160997153923501987531059651653410232214208664773737133968784981024971853559650045357408052326553125809287990054970746043477189998881741483077460911719521385126254181081050784585653923395091912772405643286618816653009356930121576693306605812098410495181606596113938472356663162853177046639343832238216614135186877752879837217172372216887012255080626472795859461923063359030991310777883666097788334047812155972734797134054154429262585978957141379299179041033250636649784100393615128855644592350271942235490314075774019508137668086657485795618940371955343390555384279752236238106308909011068895565504069387004053379476531790126945307428739976014380402614465996859727422119573526802680174506187469020587805185790369447884314111514631038913963376817425092363226445034651113099785346484258701248582461580816125989117369703060528478427206938206362093877413420203306192517362205599790241318943737129557593549439805694943843652744238500100062717596281765875932802995472449914509868095666093455684739453661305675478593539850107550723526398755885464822700697588393741744053723490210836978196202604296137093481662125895967951799424198735160739604720576897019227289609357612375287734224796209825441862175200976635096250576409974525866242378379106316374443107809600375303270852030555874136529658999173391867542014290070320811740591001357035193329628650913765331004756518124459412962422386341994390217310818709171445966409810075124944766136239190473942920234984628443078767058584427791291319731180186012166406859945924577927329594304046913415983735338601288223383994917217790878095542060179361223192960797188786215172496974417822277964448912854326038723531333002564823029978798561580012127042545718108618487665082495855133630296134738338928614066962556159362138820682687380255780823380502681039768708938292410885377621569483941963113315909224113577623762551320218315829490235866767218037479020574484055080450285968728454470658287969097450748429426318405369553748239047215713757977100520851161163088938657534489183359037888915686263979213478916020270232839955563177709108031245167917891354151834976533515034403936966083098941137492384251182492931533753055481572125268112843364555265815980548965358088772676905010111482767329695590584341888596698761116259706636801600686708896379564619740063942848916010248041929647743622720916643621391456507883150582991267898251721554894656641343269975396015852698282032716827782242588752750867068109671370169209275306865229980856488567711376546649931814601029167781026049886831671626211419251662405902714707764712628218892722782193081554409539990243004610495813221441906765794122571889915819157332230275514863363111135155370433297800970816416215873900013293396917943702941257042758258800202387144158897009360856431552319756928133476599903650992873186670873156483001158956949503252601443755415138111400165556991559832422814829901979602043585620268626331672595863560636361126929832843697173805250407833615847470805029896776319057277877766987366919082207096000848144766456625006055106022731092623587726443011219422754613960478046449724545275019156748979397475446651422050247291238447991395365596543205681102723058899620535214615716299488772541068245862571408807157315573019233108900615092846881423638299957191857336367596574577208410550455221782760867149488169050689932610055503274436963660539364641881775831129247040924250878460386218462541704415324709989412408070613697308972841065518655240992461180340561419568206964890006281001537081983642148968909916722661041820061975179029838005037453382667034220574514243482195770678530784007059416857817437406091855370645968876171700779472609246289716511993746812028269349476349614848698145682221018063680064075255718123172738942736094064388891193244739393789332466461062731514669127526461768797317779922246083840595641724918844243150017099481992640409357444608847739595022657324373202684285213663593428509971450984309402685684807022991578616046460872485872314762403635373218484483548126160047685369793411031484113493206284282977714029019794906192401568617486234178779639603730327261154602471810304689974961412267880765443957663717040509105456445081679640670645338420703944749879685512419102965642947670726104502771619129174678916131470760511775382979342078605886038856475654776851900522340939026625525403389888262723111066665695468910514369389608259226335208644022902819977425690549858363119002074893984875688865032261597239981453431199386408204353808155570473532589538844664650589970294734207373677496143595492963123917901189036481513125444280490590167761128115029652902498057211359914799957549678052485094280520463876970363290197726838917232653079103862145742535009493326372074843514217982782775027907298483302915237391668796551117398022066345056511860128347731492073789526728266274290198713550760790372625804769239131390914518417517244742441261127411953304246256488817023493974204038781643659515118555331459635589889376413408273501432551325834752286201956345741917680998055709813764686623033232178524698568914354255021865707939542597808409333693963488812042171818034562491515117622937843187174348420179633129028265310536076607067328693878638445763577812169788502973642105569628873648303125298284655162076012025315109760160349934589364146880579360510323008557151434440030409094105325009611944981026004596351558259824221101932526402200345670958249296430302820782252245507784611933098069536787718371795438346364693701929732434225217416562344081650142021131004567183182840925130974540434700728703917494083785793307992749776417542964951048960960405632065086641931196618435735297935620392817356775561250003092943846980185042879895295137790935998769795909501049822039224684613521824157214454418884252775197567408266597324167299852364374100704351302926544412320439525807106657423693228781458202635332483024934627232522028431145721352361653858557233391986756530639415249031967593971635320300614500208798870617811318393536672308342945117111464309455477978142307995851651724494028270729967709204009275971439636251475998972935519249338852480046903441815004735676984573081613118463606085099639870278966344846730814975782526764266940059010955067945578317633468406571773879072575046019052060717274039022160015986056621887283712676334671261860116834268820329658549390941259605703531449296101738658132825893333755378675231550237622544745086444622106656728891785828211163066464686645911585736911740145766359385884088108604995577588688142073751068849387320738847525296656023185738427069418418729650246901983512091513880207459646962762371609779966741789821185932883612236558619859333196019433848323885761740879178991074947727795505042127314371234300409939982080028790803043369662596377105194146908384710222394801251282373296485053121095346115237987374009320173217227862791713889721083838216874249853625545623629465333956921836678410872718899954784918167357546605477504446626172274056595366299095779403592947251114865546167844899456896725610543872365229862135064097055246242337736601139040420885690390202357109126600542390351917508511411446304834306169706028836074340598258222480311358152131919743836551765143846824604920724725318482191326414141468285171826726724358241056682663325899629069150230128161740799929058490285006179523751563782245869930130094377393846382446613716815561791037849811530859738622121640312448136837611336401428299765870593803482503432195254145895785094147361437332527031292348789029012845649838718186147316367312810121822220966466827256276985393829363428625275180443281350450149136025066751335741127898990977144908728171338579750618200129743797474231099277269204253447683814711390261298596800430518893425037728080232893556666863804733925379162206454856789697387349313077385452598669238953854091660848712627701919809779090781839142226308655034992671904191870978364611107540859405530284846776221362539918855045692134397509043309538800454725154372671125959110509832631658786905877111302767085331573366177087592419124243962619480652651833605128113173001799289649037159653174055616662479473498686791478775534788618709289046953838191787469092235131497220671571730016902321520515357323015599240156794970088048768109973149645536883849053772010838358127016244201602917033385623181740192706643968135457294891072442027193377935328738747146932919253236401475111524774180995296658554742989598670930277522938691696261677315607313863803306501628726224043235670196181535514721659046418671121382751545570457641879803873663935594091735601270672746756645497447914230924402937956784801975975097423123532956391140778146106435634760365945670041891418549654771417141875799966597121598503527213974277515856498824590240458790514984478244241752142914776110915853879663415476038926910951844744125009966901305571053626661481854497951393654791557556492211405382537445444839586059221777697613077995311261737472603933271395028037844618039205075838212227732774507363730039029579278326104312982202192028777990303326445725678441835254843876431240211023209541222476851920288021540931957161156394559731644825332591721353242652009181670873974091776492339603830473528190439397991652083538969285737964102354835464305572191773515995960811287856695672352191608088655503805558265805553610925870426700034297846947548642261176032496669686121082082140667803843881661709986875735042524824121577693371032488896153723821026122265359612530031176209349596975227614154889288432286623161985329427855318242860288993937520104938983529479429112786392467370971522998629849521660729647536245114678101754691979733155640797248099912443066312417178727133770729562650115378485454030671223479803629700051487877755114451009335807795406398734491188657215669425221222355523160341604643246482067108323662521502145791851418831510476448141925105338769423857227085982500139610175922628833127254191726333876328010355189136370801858751598683129308797395316652521375260843806778566286812899089528712482742794462464890315280475347570663360949244673726859493617427775196761783556567964992624873070898892920332693295395115074273768537840680425491147194869184015770053567943956114211597905597088573826953518116097646067653766876304865757931154484037939635641416510388764860201212911837984338586254786086086040105307676364404440716228370779825418659459454469934721632539668376811197717778395285325603586936404539541158967369524526244655778672043871548368651442902942809217812209455274785898125003625242351915557987028848009242498656075668177567376961277310645466937184520092213591950161914453537153931531992965042204968769269361743541250505583279662511105351434931599649305739277117935698657809580832652157820418511238517319386041999890036083948509369024573743219305734741919849168209410537286713638681659873442145972907644346616100640413177688547900753329705368430089831972355548780111720742419507169897354568941847698733994250616072793796196951490444089368871992200257321072284748171092121962881506191588541746247819996022229197344183004818578490042176808816438249892536561144006222445575030945078990038706406929679503288097283591323929834112374183814522019491250625067659168886282127187016475087371258277770383189226470184805013223942854567647550378256060237159460458108885426154110266873749971383624895026032848924754038227322047029238443893107199253571888099574357248205657121930193351215173032488306585639872928757649498527255227122696988346268847560441724936232890370660663161059273652304866045617562367885093688119242553793848191540380552149830308806956432034600242737591675201321566429571941580560978814922275771760981420592655035363844539068774133062577876167645219857034997413044372396863391040432137912328583348036319318872123988066440474898599245123866633290597112821517103495133793069523530591434182454486865949040800572945481884237456244965297505304184303590314225151373379507781774021153927204405360970356708101112352955770071031703362394345191039985947987317735023600195868299872692713485327470150357656938225032028812281635072893081597648512161884002774832065719688070044440704293664063942078082568084435668985497595811099343236410106665311300560791957638566205709043523104387554078243614434869054642869890280458406127155724513550590785623965231404873398884423488246259237076540658354873341399140007492466615447957236605436828145425308591252699901681965125182954176979781649781949220162061689270047281829916379359010874582597818984724936044114002697645248566823362630909402667556503102212727516814584161676468343746810325988834246153251442303848214963792971965950366691989249789971902268613075845731767195987602679154570231188384013806852491042285498574387988096882686860042689245255396026368623162613245234414283866663302389784380319169557060594004357533352565625865847072602231918048254914097355138700527787294734945311976763767255770976006598172721147421375418023975120009886855535606975447387520653954322801962097083196395760765362565220810718421224951789433455240014806457463924608837260005521095310291237081729647064734434036835736589364486251720164254846016988385509085600239153821113853311214751519924825569732771936466245152014504621985687902615114377468462053686080508804637979448976315011002761612065738357802466034175749231227579648103664525254153465098051491592320763221150485800259602443598415572311036051147697250502182018760729076199433432889532039869804641696711518402693753061805767159818415101820609743766387076425363765132873669174641044994938440932991309143387503780153021503625807154423265293549734382203822565542188905645571722707940163979536580694931754822547950750710331263170122165497495088871884702245431021559931918233695427200676139772374750788685208149442292061185739962027493883725543435223140292216476491293768333102485966886199883323365913168968611397921907141125602150611116182327581165314861575493342617453114362758064820528517282941530341270629667132371146184911718317496365310424964012277609012695438716585831148378048679183366378323227051200998400095277230771183836765365658628439181639007973771277402177505279306142584262243124197923730039066542631383893952122128677931002270645006453844578345404189961980475670937563712311792343998425497348087202413755751979272444024812723705978685433216611367170986599144286605938959154414747361773976481125881904577908446429765660817370999993684929022806057629066496696022294636141123455998454016710984843182815014065486098771682365093939816468865989205040225255070314449728137670889170057248618982838919709098256352690875921830520770353705616888461169201593721898873514901078763471596667156535254918031380310407581592176979804420299958514117578299883334258002981626408152618011110618024608333603259314558645884646125994761086994792975063230043846779999764149820700424086926536424930992693777915011709083884591971918626669895379552619015650247702534574637027472379546171246674142658879279985117088504171461176628911996438322342943962928619187219533103218912046826109423347323720271238741713611785072931145609657081970531039400211762422133566911742708602679764943148890531772344301319516886094245764332410393674084001763741135183775473397794483473305680011394671441206700357040033104404812579904260265702925264919509978074524426449973543761177841593280233048449516342788561288549653677386525812388235587959516029358372070749322939204238834163339799675400551445899982981914964714687985406035972464282497401150550571982972892764359067469053793565998912457621830784550483063164535364408415035602029770734349591041403318406799513267088025870274873773198669391740032888557374654685076855517878882429873949425658746242417911361277123709855331347950616068129197757921865002806819913181048997637042975336037250344098122944443533931734278260621245882623264145892845416700775318090386046370542142282476751331591177772827731881377654297002101980490694748644124329150665170723424652009253545239724552322823433785225145044507845940850238055036323482293593291746274893393104838997272635456141861823275455741637067708454723947857487944288781779446641578241301097249465601163596746909426626323560346255855681445919639443468729664734432770491779405084104830637067368301370279273014251578203454970883693242628118372613611500575784898755434477315104327430790243064725795852443705943673545983041018053108711413112024944134920639858433036599738915605334470441654400140701902453168998216834373163480169728649397655008573258320896194351941592055735291145709574636617161086728995558537061421447964467866393709094822116747352753653507338525948330799191991254215613412452111605624263980637248252851055290540180862551998152487497083954707588194178953943485515425719959457866080365097531572168408992784124878708100733082317903221127085279135456924097837586543428585466014631763622682309643055555366580156778933438246026100647510346528742131438064661498097540784965346945531890891081916579250038944194085026700678791705317474097835076000919954221821709632018788691581747960094162044221065877854582173343415207312998855415832424708189975111053044083876880113323167133137860367972891992671570452809837322750541130870914855107467164171089789936177112732831856263088169817556687394393619172973642185352819920631523786587136391381441666077177151036701860572961889157921363768396217668292391580370717759160113815400900079633662107595327670858439282026837430161184350894075237332352579274026664978409961481617559584435342188536339942519395462848578388315870775835937124588088961855736337213258645298246107736694686996474386058889988862918717493944712903849276332913387472418251570667590438876181214637147381154550752635930826006964209270001605713491260329767580551431205838317725354308884782947976385493118262185998736434672586697553207918517979917701814848590583336468319248338671933058386950821031780526705631879742076904503682160165406416477725745568718539442030549607171657129844596200303091940116689079626637114861149799079767238736091632097769794818159515459714634856605119959097639751157001280173921506550787105120780094830530125224125974848179390403374016932132316683878952297641538970067570821553095440798322694887464280191618482866435656648795196416098694950553433582609939233668226595219709912772832988930738245145269187106586142966929406955167688102903163224389154946179060816590283822716864030354673354936978043767323358356204698420746440067679122341250399098773692013562890557080023142410866905270131359937518804157177737234021349821609110297457141391516050638013315854717797503497814070325181098831466417023011548930001563751962900476492649798498294228711525078120428835319234088075430102779073731866050592597274762672478959622871334013075107952616206418969141804666383832557305916781243515121427828345060246193293554963429434731545323987307187857854323669032138564405164273674400078988942283015147468675984852747042082675957363627897442098309891656833802555515107342459362033360767115370684659769327325107639277423687071166370040448314737644601619086516537938058365464626558452549836157577393472941120402227101893111305150177500733529432255740045289705006645637888822379672867061354245788114776864957989668829214059366816725729461200095530375147186655586930366506778695954823991300702584275385282849586663558753792746875606186699117557038444270348167302801012238193576855630953338044720488103052258776494160045097892585264435989337960594610435861975290087818823547981581766451992136055946314425511081774393794150932854698965733771554237650045487290092113758839616474611027820155980557074846391997750154484292535875591899034673579385049753336476007197598423503595106733238798842408407027445260814447815986325675937385373238956087512130204788084958688927806379226241221923804782099682469223534556373201192474642019438397939706411173572672539637500079065584710341312499254192975171513842809387345371874325075613711779777644671319704345274726144108201889134962887581040922061472654951649701230326700416359216592482178169732638660354315472992300206631847056167325027474046520848263798716367159734969888202158713932846800741278286045115126552861446222844668171713683615476108848719035053083254536931459186175674792000570645929227850204302719219284838291529360272798486201714562618626063832492395016028918566485312619255993170740190214829507506115730012524526029572816477958501118591518409412756890334434443453998693760406696040155139709344078830175983457500664771705367719878804592481369365150864555548823284877221584479024347275314021945250834469417810324183670840551775577410905688271178971801762267106640614864270725093420558002107190727430503879883499175601788748910088361651915977450021693042691684518128882377329979473377996810143073659405153674089149735631950519191125102037677643528048927566687079123568433392883396231328241955488865549476557435622673010462797674167851661587965417944542751678883856677482030740024926406039141762751066589165720860778109230904785115071671001933623432420792102345915622656560305928633126193536052012483339641408185065599211012337274087158979194350242360931813777093602059083651212833950310906162574298994157709379328366781201526115812622258239669306361447117953905786286245020950033149797251687384640073432404302150669071710521459763595423525415815429830578849660990736173561388596134267689593143963313036971824094828978288747911360912679531961816642439864219219767949862224640761632221967819118215071068930463467656264830091473960331234707309237371068324171183310327299432404335183093098060678867740670923730576255250027475979188563705568342125486349672054508584021197574443233461126246417626279997090503695448622642300213324507826110959199034628868319188181947610200458995836204438175571398551246633562824711772415498259629571719568974291825518201130944294123858632685044158129645364777586350847654815447690444207877409223505331647530948923497139621788448923324964990228594784115000526482486275527315613123048421367423681276853409151564933259885010385695995742096219408399260815415115903936989313707623008133297197925303904989081809798361038916326873191420830030979014906102221894375956851125183349434810912081489544913091416397102292905251993767394496091117102189458801687481969287670110834534754061586392735236362121079521427424021008915461591836275940771891360391354765229497332706966491039532844782037266829035968963896174151845905616093201126441543674383941706929065556515059758843490275620734658084188717408562784699185683956084994670121750168093368480858780758821450567370466678223598638067196767005353096596022134259998550342160429166317944741871388317972020600074578424998586758334026403420356431371022112973911470891588178994783616648360067441742769107259549510162213525743304813814103396879488438862795836353080114078603610725165945589274118494507234018883174691692869189937476917950553092520917553662938905926128509580858613855132829031091765276916417842855669217347414743444536290757212947194626473344528335788798512166687103679879565859612070116054909363434143829956185577424531212553751564735748436030285630580196633525353410211821503666802200895462799810469218408980074169925670264861966557273398396399878751345870275661878551930051855852017354447589602379975843225205171141128914411788703139033182929058957995896854529505431139374148015288182808899193335542170342687037292647506354086281531296639531744055506147079929279948198134075544715478025850625834539698315786772411226043190530745767127289328067371494159313885488933186899297208295900991740553805664933013452992602591627110489852240915471946496316147202247438915713786685080931884637207471793566269849391664328714250195161225196174789401888310703429451153979551355972482869119580844052164287689449553519709221600361133000849554734770373278136506261034393873624704233957417612621788365048345199777715975297187692228240869648659453291448150336325390027318414700915138799986279185221580183980764993427774322082506802556449620993630392390671755328004280611861841754447244366817443054704914216377750631770159610437238019743744137440554227873870366264402102177843008077273726034599999756774088247918503425644328347810421540677211299117775552297217226976337352175466508528131917668104495723490761176862514461181047950478675913863195967660341372622024092215885360083387363897694784045051785858838902216730603741042687860571737868831583062033319670576121140304988354998853084993927156007479996985632036498292623455712916688052914305768217425174347660214119599231890652617412958162727190395377446505812632523391617760588523897667428151320711382005324915916728035325142973076017095221984381940117522736452303701027840248580221434513249707568311785968293708101446771554082235228661219747920764647865831228735852085055963426717394852139947618731679747059575025740220280964695812164345386760388543687809274595852821802795028170964006572086248560370900361384981344037461466093520746912693855060779407914167372341451733096765795262277271232993166367552584896698971614727070764945937685826479533442016550647458788191287940747867794695174546757521582021891470206287172851955096467953539991897245368241841518597479394083381991067110970034834855053268581556217891481519552647836497175901694588961168597561623970894112174313963000624812086208751353930353940966969358166757355638250857117895890088305775792811768883746303546907213601628395163929969328731782241943593800714883453439073019743690915339214372972369579761258785938279638379424495044180498537764843804598946071747186599439694382932291679043245216096865489473192823437055263494519919417922104738361964646362098770974208046122252124991308449469333336507154495540666817381640268387398288628501908689228848857543347706775212455694897947856282491078899627959726769362616418255831729033920431797204554826691859291868372550124403146659030165366014214702461670605434590307994320433290486764644394084487745637652331551371453215087254712259819653892545200647455107918026009938375972475144174810068408007036808607390579327922555148577209977284871775018175894331617153687248652772467242072894778492126910812326013344942744625807842168412465864340647840302213915794819217077529222000636979485402674939163806101417790781555596448262605005433402870737145291826483316264556886548475452601730203579167557030223770769462570033312605925382547661861883846838760337061112881379870788892296139395782800578681750954690024401575444363016506017640473528728307555405790223499927088305161651590558583276273653213770011751775111269202665362837750367220088318160353046013108739902571198398667392367680123260857061006804983390397116567436811947587534511278720171557423894166897044357116295023192256865848870709970318182563742506285384459908364620061630368832796254994823773012805944674126705024041595457190835695894879964745867256048034832955118793740763689938679749171191461288246319846090771464832732546776086086287660804760790098833083185873552490966834906941328391211772912936215066903283228678366903264778146472979390315076031084690724156218984772331900136868687501752033790963245622256844056306548550863562585819550859537264302670507647213472949029727434630866330961986858375403308511923615870674234362308867204494747312643972508073845550352875419075581890815190139994929373773964340842961415769104651652087531870744102490968117504483647456467248377686248543150393075343374576705081938772081712972487238468837271474663417108933536125357935476782322513277814865369035058359877754073385302408997429984137290554610166550501030181399303525631999828549425959726210299375913462376956432853108995678680716244546243396888959831483349465091024594945509229347029545551615600897100502860172820765352564201167755514188227069850827034834317366153691252418257777727265396203889408471734339797632162038709007256893882120299248297330302574879546280812339955415377686529318776083795660940442368216094121715946440110601861902844713299807317554381111027323822784691165032243893241761812299567796806910776289420143256320080832037838147581262525907139023102478218674758189833352728745527881230977265026704116378657654008025908396626000247138277783919104263839865357163877078655650369707679070453411468919685117253262519383850042756258730746034189550100398830041763355518482263440228920961163984569214610156411609035373154707149262847333576053589321742620521779183088315851646729518766655740162200714723841882387802937446436020326954648757791633878248920941783576696376884972901248989459472004710919987100660242144725227392257458091472455082891708503628116848270045603545286950266111124190536781456592081734007993960678958430072640624567981605854689369853839420521115044518978823341885834162103429420487520221341683046862768113716090945052228531283452276732998766377078636422521928931159577197438243076449358874736153519977378363313463233642635081359975277061222015997771894472080353434927252768743893825788133488289144036432900295218759233960611845251587962227123469892468892725221093667100587491478547947842369186608756752160646540417626292770326286683949087235420058064492131090488460120572548272030114117103079537000781214511341277894662220752567127223046155287558481188440904256378138427683992890928480136391515594543567412098697289588389209306912659664610900247780092079174130099788763476531431509589493364355176248018741458500493528233264470048800639772157240228128670940367006372730044322299190873960416082056659687006888838606939997566245070102495203160933603041713920301897947208478260598303709033003774935611980283540483874376671531204698106574140326116651911738516258573446780912521842591343387751236216048373248462901558728374509912508502532364719373146136386278147056545003594596695272686551673473725762165213135864113841649843242897284888244059969200525835581318639578437992076647392549651184075447088022366445622357810353465496292416809324719076011798614533151745280987167564121432271990935036698770902764777445854829654857191661114744199274956721459761776527060639358910520975805195092355105493206505448373533247241283748673763774094688197597087917869532783172279218728422639115746726451850553542196213363903773219495245495265368341114938152170814996204589710926322729419477674734745681057495453579483457289895650220017692732706320901401878296277531852519610604811457651663607026268616319532248961388769683325304581148561470162903520563189160560429180485856649109085132209284603859355592796328556392869700624260829321440775591600896545810207513720627127379884852973116492669043837283109041394066484575822710893236822415456478273585857269439232276557166520789201341371796204395696305895194781416373910198736888438729829526585691077895333512119294820442787837422171369713698848022675154657442364326407518542110160399351823771134608428764958630882734392227432846395283666027496964221003911122629927851989586292950738159110910263581016615291436492870414960885621726090769413551524730944331371121224089673536124792350305517766757996053839801539550640822970643809189187299510030482643511829630449024328651508993563702581426354805039989380567026109563010573042072207244712218267750974156509371054490857886495289949869717067228377947422188861087015921510449146018275300244591943924415360186715632048563898665658855966378484685644360043259684641912708888856933547780441388368697185664712500434863749650512807306388604561772452685602190888495768296237538924287876704331404725973345782313206608201382138732682143810187157360424094777290778062409407961780065449298097799556821520941878572295890594426000667170113911302251883663651855949269822525256774230709497430221252770895158226285736754033255266361827346577365925741586887700109185570397652334189080895849090570512024010696168813740832073756981903823052118906864105998120480899908780745543035486546958242226700498892909879397817243965690659530140645455618491433126622310229212577969829351190890321548951396223842878459013480590327673872207373382632309749314464543113999282211314435494604901193245771920087752672852919554801715488766773902121516864089106205266322225601649388086786869516591483430353418579506615328807973651043244082629118860405945902986632774838427468306639049363388531107550328839048932521473456004281956233988378323458281712885423567886649143214500900704094804123196205034933312187304223320631784759330234177237794138586375064564647120715158240694475462391752720305253997517516883106282705709544660055856354116739191808919460569848502704789800480365987954966930146865657727424439432016099269913883704441584950652860570434475501379683211069435364629820338593260352233786291927808534692734654285993587538010999376240576088719428904786713554035344545780212970917499179656573440356489733390793540816689285323878493083236232333262993386453539097784361850269335437010186277198354673388755150144434295190429280511474183383265308124290629202579588987892638136302060894821535601127904139816733025285141307222595320805793800454835346794720859633881052664935187717651295612550431027918954467515072982709730928650707871920657205852485853532093389369078761467235888553091054063881780131700543687298190781992726996984971823906458650366662390540943339853622151735923217037735388918911688115167774494361921996657860171986961517996709219638425769571017473794575011475064059423435846299826022606440107420364631196943453082113836124954659093727208746097757481519308983061448400611787717475290493948805460233478290095799462787504838817187403991117355551039630955471208295040869258264069333197805870257141440058742093578118576659919676052189049647948862479012847380034027686153282743389426865354472524495767553147938067251385467237698963458551506155992991758293387864640905074467757438545382052409095219261234683447450257511355456785044137543172521192467471497952315869807593399798797941664264539603544528638278726076407658850960547276663980519199627387557538842522835107735840954583445781952467658595494196612581370682348137256356363261979715581572835395155271735111991188311106299727035730372588427113371882107603711926197591855937681914409351688418126500199131636940855735905200457588171726712053710569192118689470649363146948146659752461989939272567048975333021539443702324144522581837639103533947888061214312078723795195536895711018611328408687127584504249545057241551746695061690790997659708591099197809277273748901864648037822535084168538269612956795369832440741275813803800704283269976244453351599389464216782270970016030578291502874200171087067964017234153606164830554042846400087988580659867024406189795392751893093224763189142659902139033333442321520745411246163461529029486943278286910920500150059704848617938182614406725649146690029265795573208196492012245101951104732751147390806746385632016357893133633572233736346311497889014943963399482484165932976538062603017530536025208098033616226556603731866749388299042043754445631177971017163035335822111984728367691953035612276165318118314475769998263143008378294337054094311294216296101632757700085544014372756719625975993075031383140430672101892652249044759917371578003650771880359947653778844698646966490587058328429672057071936686124216116165446530867634024201106836478995411473095820584497067198971928960421653377665452627938585072252634091673463309425939133193622146534954697760993888938927524358262817767303194363502146512075695593390159964812789427659981916178090366268566834578754628017756789353875522344008622306127358834884761733778280392536600901821466861228289431157502897913999739553028628337579425269403894153411046302133118961177958114005637307036084250253955251728700089864708709156560252007042915125771410755180264348545620565179311093727240699219323626078406965525935024584792159543722157068652530054493971975603311147571604238887424944961174916381981090536882813473699762251326984039945306250755885552299308482578850304828648574006309770898612018893125801543989761502912690965986157743598000115219503101198447022202491431680181400969653418952981769737007720757711394602777870080214312493858242215825900290966946777831487920789174405952092703210835101151881036768826466230237257710584713665534538869433061380022171615144094443114480288042734402327178133767831428281130070905013393810846034499816038440842605385900183573793968856049930935838462013505124730388073595191003394428447452664359657390619867904103024084992638242051975133664338232347519500203105778234172721033405531957760453455421169544526160789320454367724943126702755925734630521333012674019698458306814154938747298252641199958710088785915133705653231496299700880159097381946961422684359373465007636596526404401794659337037001894778268116501245429585382533659804171184665031352336957557097166635807067002791537169131441574312065960191394252208829197168069079166301587505204350026353869807080353075043355135046314681503091161306242317140904205686072645136923729979111839249532295907409347436547319783216281245546022962271114287383060747099169233461679680714971676704578830601174472499312894587572374331475982701839326315176367960153114394710067994086611287942058668009656666752601398909811996367894159431098779216106979344496287567481002836967203736173136248318794831679913284759215660985785455348282783131208763360020934588507189220951670849610472419554246072289800576803738020111465371033778274874195029826199337115757226616816835063919090417222487928560161139236115606593933984005467143322714537842404902713484484829007701925982187805072168197569190589008947701569914550921781274139444358162559291601943149348569699109654983893672953227867734994395585292567470617870943932620798379721550846350147635350341117059357414230318260248605079467725468885028120098001424714559852537534702643083767579433279397942856213058497031204444124306531373194739517992051838104565417742798772034738279979179001401086321386683031807403580670863925520526204893203418004526941912240356134295101739564381005977299599393544928789798282797410696149499914222833859463972997749497197427071681089829051441195822542401505481592569023000664657341442442456722440359762600158575423264199487845244311332407785328502239801708535138532002853256491738689258597938370531865273325866723195780837188882842943365845185900454299508345387875637058550687188989972604844176328776885604199970527412970004967109687073573421706006045014765705202170185764134602590387892926864695703642878962764305981792927846081893882758679835425560071022969158311307222407664163239875618719838177415581956878548473338541070662804816425700334018559501350622678609473032185770814740207179914828987560278944676294014046755450711491791868567639262468550282493743578509826579427233901736359105013812924282494827904716189056247798191008463555226199318350406027875195991290511876290389784691637211694022959579025819244994342707031268861981818498980915540391769594709163761030812704796245431382706500493164431221955229159046755430135525893606638075935992496180948109625312735262341202681623989856709173726133258650320082984576726166835852639774056616265931851525024495291879771635852916861008063383440216612216771189495253946637009430885424974280345884566732017634934163350222163433528559777409920769599755474982140516710575792334543380162239514304519443912065512559590699781701340214958520142347213406213986422345029224491038480366025544236703037232950294431191068673395791267287553488524112594311396950719497611191875640384763382257398899548019010974682775055441744055905755745370064056970932864000989029512989900093996850687278709731422460185308119807509793731650767771573562098343049822633100321982257169500550570551415932864184365538386264489970402899191948884770425799796325720632985471295750953752567762940717443670385512729966782597650193475085824692097667850403689407178527450677063680855873050591667044881788613482002694441338518929223427845431560603114708988387912219502168556305353716925365319868223882361169226720633342654151783343980155626632697921448816237476540055103874278675263738914783336044261867266197726166459197398031897597848674130275276786952240153613612733317458498490853917916129295126292694050475649679558656333852238202607256817091511420919466386377965164746076564186488700984288858163827725553720917176157614373487859489767544655453059119344298971544518092260698484596314461040585080510097452312526298776290867098509794774309511556344616781552306039543365606672082317604213988846269271031944905067532341475484308283504141084381961476089059829052680978077274668073659083554918543923464625210054489227498307845258181081829786059145709175691862394662897707563184004793775334654462818008181324353111736847406936181842672787665098878739361619116438292751499735035313773669248791850252563488935997399350968842906344874557695302894229516775933504493607463897142563486721232236052734019985064647230923842356520342645922149206287910677701741948283772032528184010545990083326195531095998555922778445600859379879719359224189776283646103761544505616648068137216527504238633547483447887195960701994118056952193246192598480982716076950213732856824846094139394942884905625971232161079051250524351290760956231193371641450481396158816626001561761891452165367925743893056811544470653536818145305400085740816686102800619853225143423208612646826700696523183962056901941069713062183138648765797821362824757873540576915882909876549764765273228476446864780355609002102419610942313602484665325088250523052274230097374525690557266985488475608995047925249811638370763485066611766329727571254106340160487282778483429138875680267105741502035656161837741323940355521313714266944223819873759460209492616947952214992866294568841116872282326239741346241811532566606409379137593543418408185112195848030364537277683943463273344583313219407937887323029159389945238200744717729024224816748410837601655297689830840587921555669204901940116009819081149846234787298952997912062825169416200930350649318393832525890652358473359013752432620724858593686056821567265695647224902362523512289649600320413219262769658758264506984773102124679949635206275210835879635963518402931392085218062830159848368492192784450861773694902255500367124387012656407387008476174444852920520110242853520358873134787753112322590872352696736422028811799669466041629902934017830351055590287085239126234570939890848381636728514373726770768777114712742662131117449539933746579793496913003186868337697526862029544528562357752475217288393832496801841645051822726868890342322307457082646440525102621052716207336757135798321547794533955799646729357417370588843844024412009469559150076573479186691245984715770386971908488407509537538667315907972005613229257519624660429535179107623393105291934722288632030699230162799150263642023120290109825356229067535932689544909265753844247364365525482034898694340844641251949336837644304323862685666234183000691389134093520992735194173878145069530260098267849785898701581713758521319047577137997056509472667331337401927728757739856474149376311276460408482043824005638061069902925789481484612209841544661265653422524417251161595352103630321676732345121369682486363817521929874502969643247617639390944791589420944424627498863950633776462306367035042275698755675967941313763992919653277449060973422884637143471108470368212232428985437368843199360924917205511040916592101781605492507625711040793798528944854175660635180997265353510146493583090930841216738492005935145099172069359937800408858411047358205712265537703617660379781797959227706771295240466391799535948798480295104055911121587581143963406365241586282730452074538217155076739189724226474819472681587079355218345048075404512556697078947647632989158489533648927558967045691389517154900617000586700400389424578697340693787913834645605822636007888778699622001634691697325434527910278668550211787601766324455369518759726587101956121080049445874692363390053041128869971614601945910176437091163001420033398613106511788736956616701358365267689176081856959172434747800988097706390427863422224683598119895949278347718554339229807009366671300275560037666692033019577055107977396667637469312982108869893981371543194703979242126841009950114925682697518018211701723456588454782033879523315919924341563923623548540509683019751507834173146351666888304788304822775595024377260761050208161433712344398377719903862092643978102442423597858599475515148455860549392778689127632017017306516664087702793200195309546807990552236571273766355878041976087942639686028486480021061320998479054637426718605563032937016134639843695134885188104583550931145065652033775320398241923008707668308743106846023053694563236752623097676978371109883791708053658104706994736353462915826854929047971242616871784801031490004811878891400021463816344713088698405757719551961335817045576621659759429226875115323083343883657124008950023833426984269590963898569426027340716102727721499604925816230732182445436570548617377770455100514848569847021258969267800225806252332785794603701740559259282087838508709806906681178354624321654471640675966258790822146308735859726700486397220180796454023705153968302801641926129737763685362374388701032797832450620919654987123701354992711865321860141579827930417366096219768037034220707629084276000558400647940399660642798343650036185367606063233257274965966657332139358459198693904754825313338437502862523356814263814846768114672903949136890014057129301972855497206660306263078996116195135708328048781362826211909399747710765953628001470848885580433200182187918444918075998112846754786329683973247006254469138914033784651549717013755731489416191676229510399332118959172680948761847363585938588851771892220289341273790470444848157700724255969973885092798517520856996004641632712406435030433266561857549782377874151929308958673611167295187697318476414903031101572612890499556899322365333044727726450741783548451547677786259283258245863918030786566035783984753990794537399733707474614336616949734345621546426902341584406350236811196857382189241947546982355598935031698119690312492005790181945041687530908739967349691719152529136433889362241671675072505785378932797535282434553140915112872273083447260126326510201263804010810318633182200936118452331789354015939152111551383174027785435822155635861725877287588214735096691290813541862997964208428517971822801533772922260623178945990872704315764893448564520892036938580362685872567443642130028772673944001399590017275672177783811580063075399830517840370086124037015157422185866887935661154316550062524434976463415066148956571295369959215626303715998626822930216236536078358796723616606094319838821339318286371266099889324837947524563361265793165035115722600894362794709925448222179025724700042160102057651568187535751688126938704141514038823162607619351696027294227411896980869803007137884694050064653084588697338126246674187458983125837966475255304454963291953701056199228717362358223088281953868483877864926250962515583679818360333742925447299064542402010397709951648714181442922460765062756710684938648700756174764671264205876273435359430030290573837094255652156030940821908930592767336699264133054640447939076585698495417756061782854352756153922490376041201235783749425840435834802866050567048822195162974203872536421057832048892444199617510993748985883864155667550915539850115678143472143185351938933498043436186436390461599833706034552925886260724823866071040010360798679954602336526178405531375188173308950865020333544974928945849005299717617966231699549009067149032793157854116926798494814177178905879411763663210423194877069681627702805759085166868275721628248658046311171799744403975432514603974828273830815880534725328855725290287446773755957020590436633957773437009164793093813724443639082160350255423269826807355196632876347634664877923915459881684766698486680428850994810718638394001739059033706495805638874431372663551276766790148073007473801301621416745158326957253340956783810944222878202073807532704801090848138788033887380647709750922662742271387941271456965558310701234296945611755665986456105921624681816164044430525100920808290781782757630406997947851609924344192039948304330437581967117351446469484634610931150987959578893685435147446249569786489382990664046271929608595394318420190343210896501389923097789442733920715076888438036910838844835137123675594839974889886900799338982936809771470038940689026734185684842611819175991685055180572448043685790694113900167387604520568331107374105240874067156823114791580968742976126173728000181841502657464816172960118776529801769846686073239926195141034928049967634304968290850246983631463191738233953903602202394164411089206144313603338064548015425391698567463908045556353229076730840152790203168970626608618382525587547086855890248326257059351907678942374634752022698446211896888447405598920477915342913017250384581455661564978757420016564499507316974979878784293582174637564960726921228335506256312352781717796890668285221231823217522252762040944282937168303242204657025756417419130780833453511979537381943530009538872027482807342077405952724701922031970175674365376968632187369551423816211993719184234414447509574534574930412769641674951484188070674913448438518049310695402778486017588885760670097006490590021100580699789468576921240646657353918771544207270240272831949502163798025403936760302671642464065835437486160110951591038482614803738587965069080320073137865545614294907253586688462006842853562682849592944592773483174815961227457835330169766580827768700328942012426637105673799419382459819435523999927845738843708563307596679071922646445377486848361664705319668972671132874887685831331591591174159372463998734131058072249985788205777505402083677444634519511805487183355127555710505832524297421483425827357403368107321948667774561073321051605645896590265325726901673438614110990530314521097336402531404714217753902333869812676698944168627527691739721776195064120809695349172841699667935790120705438414320494395888881600143375526946983270281142331764992239901604854535568097955573106835125799308432587842326215229558319849474873230338831600717683544294149949390238334516744936743533596666350163764845214137340055431820473601095849740048865310695610520549167047361368991053284903957899252246974406515155585168180305809092576141937598692166727018729853657781928471975846319914923487565393359895529630420923247338515692662823640097339632627525203063410231344879718987214308687133867474849295574458982299228012296329036156919291635129025207358900424052842566904845703621581666539261985660611828029605580766379329254393633974285809809078980272340345552505548350112171133286291301674007669850619365153565108597827966789468248577564098280873580607729270299271873596738556699323520079199634986491752037326570819096933071769179483467121405446924503938489654122192140420549484629030509869422866907931776358650599099325264186457046030001491053687271406836589180312058634288195200688704168457813683726048574487698119396775662343393451475483830674655510349881128254520871946571264226933951040461083089103429751109363562816060267396154796948036155697966936999468635823304120289326050813883665970947543039687952459231444310587692271660077117179358832676614501317465489739135834895654979399141009874873943067056878181568860838138313544498245053050043811751159007050464319858781587302493088453545050553307495777765049006492571280385162690121392569168404408621263053318421330130599204495944082026631406417386464891104812596132638655229482798698419652786910640250552122498590769219996291558618418052384782487231589240193057498460674750347532977119252664839470798187806570144404937887544842671599231616589400396858752536257700665402619955530876120702239109270961969916112927288234678849004611277073625297827725136681671988311871220451038602603443363343067210902903869192740471237471078360754130058300630646000404808652227440871872585754999032342841115479014674806107890543628286374470215434611761511458683356721415188973700447073797927580389093082192449563819501330428596539637465259183177781278783210979537973475532495732271136417401606879899025495956946698447362426723532971025969918385968819722578152684360728451922358438183941842406143175590738308293629027638830158195424280018368496882450574891710295361035279661073821819692922186386099323362730989956572098283540831600743700422504799648396019553658481226312373177841487289416481040295571957644571266865614982465799901185022844088822463886422381193775910875785172823521490328093654835314604941888689345619716969551672322331886426037635831047761776584628123634918745655729211322468553654633617113469367439491632716675477274096136441905898164417788610113205973394179737530409236182639832246256714049259842842193866279930929386632004971410081484607144966893751615276525525441450949891924014159610571228468189650124284761806138452343441466037730452348798599887445096123976404021429734262880496358993898198782507586610018561551188795725249025353719654778230846356382525548777699062412991810207097864538369129092349204298794126879754263520206719898817027039067596365988893982087479945807342511221898121863675842887400415500658266271072022590607617893684323173031513822998745064665529333467790309166132167547063964551571759870333681822495405121893496364010952810460539002426872885075562934475051344527213613442743927581228519531555286567457036882235806232926618474678850548563024023581292025086285667823281513753103460611564595439181324660005716641639698746722773685847958588935969250043417817322124625474419987803818939781098622190011923960147244376935040574952299790690868282635219019942905443038308684587309485896835709560648497049961166240095661047229971116209237646533160101590670006694561610039949161577262991459714758945801569118502688199583801909755704837948280742639407948786921553263317242214894345560376775728737943222941121936558709163351863222359315919854190180003295374637613016173764844502780204432621065211655484568981789708699800416271658944413157621082379325925174120112128557164905385367992112912345016647737820947423841862463893482496397578525415916140949736376103728804403082369339440115058048950863003935728313242412859433737023907617240477791872345050274369654796781960882948303145673127585906731495509243354753347494353625678693645735177958619806092786266406285332069736284267725693433508005941249417045708080384934888014191139390179379459542979539413774472101646327525206372614212567122323566582479329059531525807363080866260296464252353198018003701601562629191204892313857715031925425887611124101721456042718767845444037842522272013653807142662410173380632347118112581809067202845912793901903435312352337254250625363121116464359554570695483505864047051911856609903251502497854156132739261680188812568723445685159037827780547325835127023512857918310667459101973322392617003770112668483046646677180143140035903893167455259024486112506393336883290609463772541160397011106260015765489109893117180415429366668901012827739030638807334053869341477039253981369419263369686204589952674745977853093768480039084966463425737231315296712602438750324176380779245783337773770111268954319199808792118496159902695088999199805650720231490467606631846430241837613771256109114813727254738471716612564989295856650742207143659764398528667725295292550049385100394343597620856256412545512519234976084973108421933510840617152601160287819247246044062022515510898351814953146776237263933423776520577100468643084988796378146739794140835770534044887381127367644915626555382910762622416072425701374367571706130259676703488468507736198429290008815798380930808012995878143207826973106792262533133666094198474509705529721172358949683576588857555672850176345658806779963436999002106615504400182583317458459697732707391841283586428040542088602237446333994444005861842757613500587477180352946552357894747359761466518725552306892323518338710125301352835385461409922090017040553576287533883317609607253182301510645494044963116927167277966627951653463052381783325567672435907819721209076951827709519243628392272459125256499057896285561288693798880214971272832276981740319176449532955741650760282479626041495162597192864032017751493969115373633031426291373234692589670993159448150372445544228337390677745885858733070369063563097314083143197248755665411673235838272224244698800022318379459998356848186908789740613923669965364697743401107365947649418514429976700412446333191747381677548702626799627969392755946811689023259270000950641435885903913565579881210558604462969360105687721746801327201768492228463106971511501910023749213603391921214123046521246548989031287098527912766369385516418021684939298113068232709081788944824812511437281230384062448172145134560290950434739319731684214530186205878579107090946783252583227921655527164290308926957925618710902211877508573549663996809426413969373804759020467654898192013635351638467177138176425193834291004581895526931244006722104550776881608284763129217669944973502342780640802166059813365715388068336366732261664128596819145437987907504340740671159936425206265807957494449001839962732795670693315849753987301956330264862374356031103810501807425245890253922710428409566309302748148075623358627317591779911181836380062325063907080860447201992814545425095208796039498862584113743704208882546654728332140921031072748098163782044879102073542526951977778049964564515282564272159195962129811775253801543677009884643084614199396312090482784796206462135112552522325071392984565467608612064799336474642575746591856468603661534058745530054770154891991577137377408130657017915310774655570546688462501357734924238191516951334059659674595667129307059558359409411581585272091131640947681451659270003682675540590758104954615089247568797361596103421905662698204685638789908185506997286983123938771113924715359013909651198092304897921928092796961962581491645673963554935477097672759767700132851640413734305098691429312422210742002676941832185475565027379757345407004683052474563999280920027872114556038923794312630549571510357083295671733492980563517402971247100659953473508645584745762215180162204605869483508023223852827914261272573991352557652453427364169655594348500722434601535152823433964795418014860651565421373861817135636763611919417014596919967716537478660475030525355664128036176703037160263490045476155316906119819986727905671588298334450991346191129099294026536866082265880670313957778678599731730245710849933783216144834335515900625475028648930722897577365300146947106398350633081609132932250738559386664049637041984821545061022191163473541849610092823977190044551235077887154441088102886906150517428416369010666226494049326846885730834718187490452760450647583826459503655335323945114623221886396887385715693477113583484848453575351695674514469578659645473168772807472335387149192039546464298863490361041054727874269557020233283299847224404908555706194727732646596906978047504334809914268195050394215994118187255101712403444535628068524878807657927969874468975637702149627331614642796260015885534858909501565149562594187369788527050345601691834513536171122692220148556766173523421136644563430259934937415083824312969020357872528083411563442248677703349425002783116022070816385652231009613002151980915762001694439478357487367078956261355836280342128309066534320372412830686287568848679124639962009048312846499278054683196121783151845435489729850712004270200697190877939424614996552971293971257013892446427047701439019831412880848293280029877186066788724749423485880565862890287851102344690294861664318723338351512511175243502835965011092531047536161159427624589825242142439374686266938836083246625127687299980664498586118165027210564176827374434619130529666095173212093872005303905535268907583262905670177566039246325288425330582274595944513531227177334064545970712875399155031449472088342450942487351782050014314746836128535371346043960745991690509951808108788613017390124753350103642042909954824306008986420128615506433042474742445041971561705194132848017556271629874144757793184660527465289721909000782859565173089408410349674758260669302358256444647192755704688436754677210332036534929557751862252261088040985703936325936461541177102170262917811100448084957488086326462830482894979883884840443089746518099779878936505764087012378762344042208083810598046391362412889451202994456017172078884222846705634747342393706965402233865744024584706131912832734061828605477799881852531217367337859664175909894527897135158999064701376649702927236683351999014196846258970497307733534800339306462984424553553377347189007313704894042077741271728753458410862243338376200473188273976415504507459862121495454229218304178354015510239238285483461333096071461341603245569118800122367062983955841649030861898040111114424786573941743903659239092302056065427959823905225229256428455602478687777638891372644421773342357882042951583010771243766532866616149819464179887067519245880017844053983205849860632737011839828023182923158288401439839655276266048940320195953962117778231003093882779754441199666746969815249949588128674213147215520213646384039149573374516479147293762997359688260631087083899485074358899319792714201755945261336692535404137933132801629234171144649983343266438978305323802533981783549575098381204582543626609747255171631984277038083914245437427324557051535014175662524861343211269684473151555276107662131421342665541175426154634297292243232238230191798659590861171301832429887293655462373327986834094936764643187919999392044540400395227748847567171642986954066092337328294389736417565142671667665103857340911270205031289581065388721788329971918403394097344966162172882966345127698763042396831900102716207615587191344990358326688717107926405240100385933662960550937638827200648658221159430263811648603005900008112140356784072289610687415803831061891992134964118295266822096145632011595055436510055072662589225111693796217794059543232878732872987317005593616896538170535063756794222737832286250189689699586136165220068949552325146054876559448986102873989658157687929045504581373392500911969488590953991443501846463703085380859391333110421887354658866948045361597253671039295922017802094565069034713601234287281271803721309869753373509028840369237990906812824447212120239923985424855646880614754423836954159108438060504354630217742389346931019082496128905670065378927930789797768330169945794579644719429178187801970800450698237246519461118856879628330344816507720434189450923909448737554349218433875124509054389698154611377862390487837956464876935357631230366814717536252967068304691773197236478248905600105462891951094400145728026757042715766955313900410416675188868013464807194184751306803101941860233671314425744064846533616066542288774539998291231984701065407202515565020738800225021430144645133992690684540358633473361893632769859684841950534683179253567803355237064825139469696678889292966978442516146693866117937022227001583627835841334063605860929244293609666777480583250507648459833139010294553996403704984356516165667821385404495019300733830098339600188592758012455803091164057900268870803181316748591130449291744948194632304926338607179108728326795482464963148738377882416000694991580667407250461602303941651546570999527028951910805607931192644186564403534244834565280240251224743562309910719794380616004834561228092411002576749517350318506296405058529772131809012627906493195213641650561518535447724297916374666216794357456838004921192694392597540894348711143350721483800519125550710086922991987261329252748824855732153495516280119935472649604592679253590729646747740591047632770518019937787389505490956496050821733091938947266922298219284096635117865858012964352478989191921250819434490227243436513777091428420813778135106972632858474499408195356787274320699508782642914062145930401457854645931509354257128532217913957905976267182018789283653127899457295052394309945158168365300978925661627174964343550330277580017863933212411034721968919909057590148079202962200499981773084621977749735804148752945576090405027504160602153277851639826527595544882716042045380075053957826929774325873838287715513574236935212315460230437284340485857274417251996998062465164610421923497447685357530990803843626499965062405680289956930187078602314882707326444677440202289058226587708322881184669588869381553554333199138217735847102256713733042095439645765704297946425362751878077393979366832310633702614517820149088421423167986341669241016669329002770586480382605781045012457527619983251029949464946617574361600625806615448512674557388142195515244378947461472710467643945877179714591961233426623401234854773366104635409091475287785660825058013775041609910912037607333474322404059586358293683632603598869856027773254267977216544649476861369504177776133303581093824111204228294481737271532274517048136760767784389718819573745953768088397124137671151192501251595844436002993022541930129698073420455575618927039018713349639300810163053417618459610699041595443099111858500775297652494403321685535421524277262696061437394740531633681121767434048192260918334183799835896608251986767534588417965382635866761559272044999796830444174666767679316742301963386896925456784231559152518631491731471348753614677520626505029098558272368971069411846335935902173987984364176583858851717663570081611579895941617572215214503578835632987484230358952877620033475653950739100446469000039563902482997112588601587896247977538369713601369516501065897053475844894153196608109246163487454759207844906769370387840798585686536142168795993565918624804613765908962743283023645294640901408145574155460059058874611316139769977148796119117752630413928541391713196696491585143663043044041868713833859681255621280272548822328652991427841865929674684794781604176202554774181011505550379575734477448411715620731472126614161276987873289462276031854507732964927071498356333585358595920171832133820518716147485217536059867887342075759003501018449654429077124157120454999855585461703567329736554511147346159604187794254729709059450264649823544670169051793976980747044190308859497394343835448337515175545614015095435426146117522265709989647935776266074433024370267087000024478601700912394364247764630009842879916391454514163022692235366521174310775583238647380979490186152004691657407292749968385641582435216601530554114440647254057076538938823018971662387086417438511227903256996694382813744799610239853651132921121624118382336859259922928165210788553459427669121760355527245544572437496959680761364948117755363504669320307528011025468855966583677534129506501526935718700827287697902039935292360291127484149577370305505978682009066919917627298122217860293546511564239821226549481401663507700803417895843941544357011468806659637896968789573180634011167527334610646366039517116161761639829217039542226827250668898124420697200021134365303274735634177782899648442510953895611067633109880578062120307502232437283302554396881012232411084971583338364852565264044683449504565034973292506751149371981208055281269216803216496279880901268094661063806842112840124122786866769514249326605707443267136664203930674130018612590577627458577073800699514908407565194891491973280533707377146625617821517232787129600718002815750195607444976113839182200740099042118150854822321381261139965302781807467513557886232005933628582129621900674195839257426408921370408363467236712772915233224141869672939397475893324858367255552688743110850150154673661117545661275702900806120686864682382063530940289687085404116343569685894571477895342812010872171062346444667633816620101885314906203407741879837339238704588346558381532805374368172019810965616039801216052381706141182822162078620730806079489441941511623359749982962519663424868005920977974523685975046592896796590381802967903915091271142874553258248885790948934613416463079450269869114939514825222179634636909726070825265893959870454054177089732381703950436992334045647896585259911077642496321538487991325181121382153682797378002315274247200331709209084883596495165711016748614974002953156658483960815171844302342139670204512341565841725223820400161456007575785107383658062876268777331061081963481709832279927480387523523749518515981647797725410084337280691177701881944527277255275709578382949929746739127632927123999201465614851651107601337641600117103152131946885894371336762379835367782449273002410935202951444752992843262900108870439064798326312539152678645349490437127729302901853949198514372338236622362799937208706430195457049628933358938682102054141813465760689379274256997364143426249112965166432294726672038659073999975150863730224515323430095668688420342359843001788309382510797712327838929712294605815811518708961443012013535019431945028241714423504545385472159254362402175559327862374757374888555481794917353081687167203161286272830451563408960186236448975913390982224729772730398754611499513001115374659057624835205892609390780733751727639661212221284511989070832744432795586948199700931186858066003443647964357292420855430802952467709195938662059180913357179943121193250914228141809937127589328992443006005155675492746773036583431348932220415343485218489640208934959465563695991438790639603339167792164786960929328955820544238761050471909490570225854528308731066739042618849092021154379673289787050827210860655167537254788992288454769255298846861506859104677826401012698635590320700528816802818884412664084467975164306134282115111586208077811952891133827635950418355942102909807437585079149647342248935614984963585227695816123765782322494920026512692020054590586934285926549530504721185317690397052717718484338448684830242781188892292233363718992943153127006229384128456853961476564421735606333971585470413946153086808040839975885048700239400815512267286532506737579549985600588669367126464870360699754100226083465523590710329685127403178270768869877940411786108767163939691553900446865247299306511597366156078927576537288083572843472507340270104745000458018280508548871776880369582186223463761305586103235473910357789875613357993071269341688614560768577038167360542719554979119426408441581694083000390060688851441600190136528997835762359047504599517787222942391221246718328503001208976857377660491875667110235607001057930909689747893540003359557825030150585158646295871219323638093406752574110198934142148761579394791826089793801396224145901062624146863884949858711004775545529237978726339343082181041843276035480650684277334437620697421934325610560497451914700589674843838879423349736276097308427527857400719672154635298752858628278279452790996550137098530019804308251394336294271528422325506278420217179651263523293097894508451769675486545545842172984049949060578932302291489134837677459385302646289978506937650994249029352875113018186015421261562493772667389835806929019408030634886317449098743265367812315066422970469664216963776569899118599106807371589903996630423899349163352724640532130086495781173072875673540697413799742177604752359795924405720118974205623911425253279071265698461268822889162068532256327549263607244627600703691174436285920787088098642699317892456821123339422838613143712685746427657876397397729547512984765213806457235575822025796991216689814615158686466087255943126609436561641584001576751308564860906864136098783982445539832043280548716661294737811118162636939464026226857862115516427935801022009176616577252521115169353778300332737348492457305198307724020223487391125523466731036484663395249536379717094533739889483190707427564460135059867064382420748254588157509411691172934821231324332495956405210433134452928052303024816797590689401067064034299412353206047299982992716711796922247316861669504414294094822780315244361150866306138862194360274009685080199172212807951585113356712765901150677645830634947707198626987307780973092815640710706470988548753657722277592807463281686702492290925821154984133753308973919078753781117467989506795107530610406371250204851453997963163747233147940755658016547442575157557296113766498740719206894242610056563804512764947386416863270501359493976889578662682169729747109881725461930284201924194032755500863776958071395972950743053880728275440282946440779697450921327332451272097408945751186921985248529554208502526816485211711150328525535066982220451288418767657925297305033831985003008739798545244116327012948740242579288060529341603944620855472299268232688753314847968804567716478747850690532452611841092377692849163646599986367580877518459730084274860265088669952083634177672519906901161585572168799344567427589072101135565525048346904658360702117946283204791365409181680088079767422946562403034560626604022055226900814962554959687057830999946984430035437332028287282540753862121659908477577492796744435845130411913880931656773828569507925735403555430745327870341622996769962531344263768413478481060412731552201309055217117224499014506712751370792619454231468973577592875012688813978141986737972537967154134513752886862421855605648770620050135889593025600248688446375789826624287959289364524433682507298799966132018613394391491889953528469142649787133091412576785613830713094291661956050475318348885353414522822874563176645613376724532238378947897193702059383383684569485714911449907551159251991558546803129333095062722489884241686636801046743148978328861633325868945255435455445938937250431862482885198159240909717281641856734549627634849049159907846413875645971339789300099248559109010477599369569176201392768416404808271066534862771567893234947839204848346525254450006485638808733274041265611930388170857259208186385847035334497996015745500008537036032854777183760507317796636913689830627814674086356987649699932411149643777720105788402535554629208576732479333295975843706585746045346666838182057109013529503175850667844393969343239629793656349093992868376641905998072187614666409981266155027912299285583919500917185665866142532798131982638656169340573614530841207261546294914961278266680069672116626997586410646306885322803425927682905434906529128584223321119643768477661152851915734121825324674463449991484824403650753461778555153216488263482595511015410345587243920490737394386934007023071154392473530350131629220251885844190474250287300162848711305112214595219784799720840141939206861041974611461548478474549920122718415792276316635066441800097958153512428526838046533641043400943468728568494275942403847013749439336076188845041144072945317769108103695692818964989818034201554988450624123763621215610720821851575994069304899998120595926085097033211956969459721115094293365992734744602354575296004741095737134184186954419853484186409455342056648364763841156389223816525863298855862214973671520210716443286254530674719790791237352049835134511171814208662655912613837361200752357415007921942403543037481130211421665290994810468210000409723099671864889854504855142282346834141243723583217928631871921609959816651083233164714608798531131239018842722693987999329723404557992181535405614484299970088922788297704155008054353827406459330140326716176527992072531336047846355807512014378881812432166098993573561705842094587295301967052730141491935859678147393158799981862490787323015036858338762943808928227842986697177145758472100686041779079140414764985640680204642982902857985753725804710753832922438063666332601577346005755169259959414703911980636151413556929174055568574522218476779551346544559013815716748441267339609675915626826990113383153547396642358500311000950183541526004410221273015198750222428084513088541042695110779310233582737326143385470307106834686050910956149608432714079789643311640766761721043630956763291590118741344015780152772161734738433323593907398363324822490169543851318211216121217868016273714667173655701841677714825141798697432524982189115740268924947568598776007383667144568641543181282910920813136981331480129168400175088148751115799342789699285472080843143302016002099893662837859390022712382062697632250486129275355401494701285953828384556526884301018163312469137624092327741528020712286551511104761536720463850977844208788691230226570936191922674474113574628547894900639917700444692935189941672599076535192676558672413440246446852350013068278476774216987904353253615365990597806827754458496915703939028933237408321932475429153996316252781963313317957587259194384980433676871366488500656825235974565017748297850891322653927717108641920949864756160679918279886550849708934183367309989261101319135074860795956900173143030278696463386052316402028748944850114517207709265033189870046454901141995368677862847238043090324534007017812274235755556078720354966851880766475644684630497847405146032398784384719707659804379377533047698831160690873076359183466877645810116108442090360654912350683632634469687409814901841392525162305752573705244818553121760791822713342222564534808062875376917726470458869691471757399022328575350143792650379447879467981991300941408318791705111588303526239579341605969601818047349502470609459851633554344404904344483910947596125864979655378445364267037446079666110681908039245015334163464976971715642349796929982803667275459542299348573039087539394563427329024863342155458862448538157632862714118277651529054804502342548068478733838412306048634963637611099322778282863391601764732444554997496135879979046641947041423878779993916809012263422920255391034423748460436944196471886570546936061714467192203584520894786886816475523212899885508454730847438203724441460653257182617356753720757079759997366706990925567803705016696574883842849681389313085505010602317038851761140076187012711077543263269920373520419921944677110611999831439892291096101785972574201107759734586667687442077938090759912678226157188807359549015313919742393344077955035527131345861079657753200551164865248119758306020043810415318685414044277616146307474032434347843238282613203362393175436470968122642196604362780380496103178899354996639199951558809038139848286721867500590861976368644602965059811086300842040614475994062584849123715239715555270768434797444398433722225927726270660581726172952902213743689842184684115168018744713962174936070309554998809710648489897152818450254712992594442973275859976173785431640249609029838255069104990375438437944070621889160017146633228264043730488663577591374130972760147329093194626032893462526545686803908284548728779480908858190905136938186972923859783278582817431591984292174261564989590709380423981785056783249512122503632052254044683961079389710347923365575406957430796070682240673644619347072604035555674606037647635118362811586603464754967970303980825508131698738272909076490313215188934127366365086646566238021295603245188767317696272733237832101423712570142769822902128732112210062646382744368530251367884340717230664084916351032655990078542827158771733822707581920440990631608094939784593143237570520305979128987444183275384848204323055079368614956749053129392769190999078022487324928955862231221314398785188662171610280797914477691698684477070877554031574188316355805527125554014606960329300684949594427865800342711134419256662066604835146695217525722070296644235198057626715425465105660983616317661391195920214608481178205177239898315928401646393463272921681183777594130597787064808560420523946484867363859516204824460371585187721018501298578469735786820333524800611623522898463348399270349465341829791145342983318348960207430386414167522272409086957417243373943082172219615190010475401024836480575650706406515212332143258229530188825746879462796655831614077305211717914260917643941737005375683855252246486263504739963472205690500735435158553942336318350025459163963852899524443543820170415029860695215252396240836670363385652375324358742214370666909730040802399557122309973611603477074795752137520436100860241002102839873738818492585498426328261247417494781149516936401824264608818629394650152874789189633004618697136090764360739581527025532854516413495302744535410280985984395175407796842383357760407109346452962875052227998390275007429725166170320563147910179268138700140255663198103538537762065089411925870398680418933433649935148878989714006527825049105295445403338077298138401703002528625353083530454535827622219193997564577922253365668043104596155829354636571490985867299432175686772954423687183407297955298162367814935916451656649848651767710624391030569860095145387623667940612741355719580994943941595444150709493766486798822436979728782551837349898108290629535306754244138488877698010546290743481253092242142576421438989555986697553115793544704210541986242865173524041418374992985949263565646169269355081482643601730225857399735104502562234874156780932846357345282243530709033364958571460124327360663151765265386168414209195024868804969408398253686351713011799594503183707285533303840792853176835497952595358364855953518999091923122770776847527173529153946605413702364519172726132449298464351897392577213316302367818636618678170557242752807619284609969618723870838099731700041525263649688652947856421406616260926035735301159281258422326452875880250882050652629195116460697473506509734143772154774988292273675794551891493824205773994963278498107902900765916413237010526733447319534131693214594744830583488979266465615391052190646720827517689407088161343873455677325161885930033892018198205388283374556110975632424836000071278375100800730438878402812411061351750844444470790157346856429832585255678910001611991019029287592397427115809326245359469078840274317906378343644533234845638656683955779697900066165094393990616549642054139777743853400336111277298301831017944902029106561407635546944010856988763883813788211604766936617285026016536587098939714182671529308153540933579471373649244343215875616609377344187462779329435414887575800935254725539276602813573879183794123150480476776352003295099802195506086425703848396160683388748124674476437906973633818063847806054554482817759377077166800669376378853298646837289909748545608609497573161270847155345336337935348466256588151813500747903069091782541379118576576861754067244964153257096626588238755756927891465062183852764951110228621677183847834629742524222888463410091151102862029928585705205312845296750384090398967953997710950782896856430583450460262712572469116806463778366967232522183021503682557479130168414935973740946527938822304920211197465737770520424215356352376509195678408901736203549498452371536603520637677355256029013584680610770902796849466689914721141529188368969621160922858438532614859371021749454752921989505608668204642866729804091404089895740697258043209202722325799557409042372728490422770994763696445376518242376242771424414001551074094611151745310961301013215337898821281496817055167133999559981144663927288030969185915394519712183361793626303400041474342808572750242003876802566793221518961881506222994263485701053393541475508807910186269748472182818860387975152257308335603287383519206134771818954280896060180333070003713949828005226788925166942486293371165722680804863934821764351115408818191095828577083350758344951931132126968292111782813780009053151397017182116948775166580933412741898797989930509669777460677004982479594221297746170824136537940868308485470814319082507322400330113553742694177353220896361198176269341799762251444457600030546982016918943420463643522574226632070923781843718299422135390936656735330803018651556133271023876538935991754145511274218092288890867463830706993627137728520614515602508518981534879485757258067995487905219063810351043615446381618314244272378686032092693462970906252830943746138272837463999882801604839817605968294521895156106967686872095374590842626757544043571961815211715813684566118427464331148667190239678834016089619477032318481216148481857348680999783763609573196657226648227701481828395757526093375565468479025104345127603948838202845261157508348641904095718745769050609521309202328477784357178581869674873656185194235810482862930757555417584142588673646609171347056601172320978923203309838139612839654947814847332443004958483398116523971499213109060569995847189629091864694955944267020720464281000389152124749852450794403451655397690317624702329915830998380535670436187143265835562949979488704786609542741294381113500701312529996609814143886003607666521477543456517401896127160957035931130099527097969515909413429526828349428433377010785527603574644874172305647768833292170673994034544543986555202329893002268858195151351098622374269469124813821592647723793548021077529594263255852433580489589987404345252705642498830494023114885368499523201164482410719337992575742206208086816719390414136836279020701911341407693983762536563560366514509268644376348948597019055743351006207066576573326784861244440333297021556187464765847849576705178261705346694293218814359254523045442291327097899921794432954345981455076033679430280210772715204055899032308898171054610691160517094001392285888262313432419786359027688382056410356293560688141415631430926849015828714934248066167497873531956263861392171816492972041484782954986955735186484795458055569883210632189554345763182263263832739715219701395183609728841146553030504800197425765959495846319235860357385055760630241039915244439841034794453193337210615892902066366163564022044391855717738102279325767965462203277979179792047893132081573975084208235028643914476963611317292532414774573560668786669650759112934298881509694353151229641168193924004275466278892675812512749143458707381990334326736771741614076119365290539355496722946528003399126026544874864630426777075350518425942026444168024921106993435119594033111366648968656682490553059149851784466944448874617208955037740834266734944444692068890810211063672935295595589447374672213170179629067423441032459872571455932142289856487813892097826605459173282760851373848290756993570080977330458970615849515676894074221263382096247734457733056488601849212746220354127376190064952916016266896278668629498081560417906777664809355367984546365419111629333478927838323031272634621764601322057868218378097918363494018036627208909734670379213529280206420677699447625303118412097757045563087831666242493512380298320390058492889610953269901402922861216621412608584893187498280468433287811745255408539079627889477482718777511747914165370378794222895739934951156243032516619309893613721129099439973767695196508884440808508873328323971344053363277444681489020244950309486732460847827281831575703498105535134969064542757438382474532421113699385804834064310963834244304508923679630498881334009737230655654584356752655563065106587331983710572522434058447762716953317330574999884045081792014926997620628021578062093913517536335377270829498551796597650600722486380667081933541026493164078248693283186602963492564386535838122308962247536540652522746137953416860294444653875394086049954133627364089112283640424259221432570120070714199871789595991451701219284025832320805405661497584554203312849116981640873531169734429509484153356937860111934746903697743442923647541038311843440438765942521723419636252594116375451564497893818993625045594018332787998703517317257765583233874945578433146830486320889781769071826059445503396375406632635287110623087348662204819345585972894278711744754944358339069439611386016454489594230985840854249038411547715435153760143539158284982548917689150958009539708338513101137043755562073764192290300407901061123158434238774670450954159540182942145708058283319697241444304546804193078194203615027285698425994430038225458135791913540214409212492551854574302064438105310707043165820827746701763877430383664264900882222679757596806408399647512578607769528786219915972758722987616009891337051189794788442622283833708409296651458813429011492542652376396906660776618191427681617182182713858856937595308923382611370577634576049715370558664214575859174682264756292906770287165346192111676948390883059996796368034545895505383091460977935221302640476399644853676602507758886584750089047432103705748384971415574184769605416619851368158762538682604720930380785798195957396645360634884845731453161248657375225996335374247301220842107715163930755200707125916501873652364028737040909138816338828930834780328733192802830617113984430440360859871888589718987221394515843779389238269374018174916011295533427175575098718651768611107147886369015568989958783381225576446622406997618692668213797244128943976914435571951023132508777700228370474651276820655956474819354640777577720248974163705428936221447272834000785173048975867746666872876003858979116155765308287847529890010944248088262490343198522955050017674057114747591204297439687406362814711782298510187947481849817449315437723142081080195891788198836440926573532911168563907721248569083861981325017562893253799352662005928993237398101278402028687471457188211358151124826863040862695951284700087218875872739865908617523154556669682215505438175915174496196643953599429584371951600549713849593054685678344520476275817034259703905467069931641604371384695994085344236549180302821997883788652942997046028583645678352430488600226884216519438904405130117364613506325177546483708040492743893041918276594747022753181252293019298137250557047108678859487984690340908668845120687249120180494309220197875342511919168653279242752771992472738180279978820472590485699476797159577449276765577352765634161540109271226960958841426591627358035762886876129288408105675695836314676607238749274920556461435258633519147055636240084766802932717693753845053965410094105772982117351583928923537768088320296540873020551970921290974122525222382904510729673123680450749533346677630125792298591246147397974074957960844038944704744594864883758450439355879945463265056750354511374960921893196918408580698237465766101198262864806053793192479253815272242125115411539931623753686566297949649368674992289133903067963311746816692278591050085474517445281013064937049486421322096916525968393303949212934236083156126842557204000266046543767084324253690730736020344244629361556903448720184846075588333802825231545329792766188165012930009782832283057694241577933336830962414474919600139485148746572682378643463591680047162841483612430819068514299647609965815386449266124853202007011347895234684675675111244657431618489265201745837764169308311321821216858752670121133189992434346509254643936913634419711692369099797792997413618668912568310559034948979246727853929369938700650922810900577278257078246071858325484290753183157749130127294239706610227048818579473014855026266368746969211339722123814747949968862816105350989238498116639710901969225977757171544087076521350664272775911366686182296630743140971149824534727966932563135824827990768190296307251506927051541738951440388903500626340871630623798289726137064252457332405746632717345339283588156279369588323283339787941047237795060918255729958444315180479925415691894394438453908980173253429862679698287238388700330082433652862996122402737961441035293035416230610886286269336585799209115263516267156741971850585897048061508259678126859438505220111335370449327982652119592632226054789387144527362252978449895054140335884571989470957390074518910536067628905223488856623886992389044074707394170198231256795553356246300980753586773104884877399136470992838175987330733180365152399875766384187262967502922267412449886194325732277620039894154908720221911643541486739535956943852254153502950639436979245445976565246676639554205550084715340076440875924367570640249570642585622488773858197105978829970401726215291266820903117566060462877690894014037490256768900558085876617948987311049983778760569244681898516313124374817585534767174070567807556421528546478970868718114445163645441431123021068410990756320353353590575049084191445345654764921047516478885789869655885905128513592449471711006155937359494378110570497053070807100413775468833483083225286348893506574897257710885417854920965390866932450145804463552883859608503291813228596226318225563077946386367653758211677786250893114513922070019620643438020304833058531460693293509375968077899772634546780896966157895025020843047392471626164650584461028408593863454062054518927937181591436160306153950658077227858890682940124399956923640836769509928426709632761568963408962997025166564339664845508455038789160803780539608955765108503923534342744888957992448878936121529439034382876940912465188150192981493557941630359471157578211382113522314124434790976838463896010541391912479912877900754499651327355786248951977605674271319026669522814658589045377849811041805915380095601355706027655491584627931170968916196620864813980336780329565945293379600614848534796995060388487731281556843085849764041075872510948389764849700458552911866101407630364234725638084383152148000811853100308404147309084019446757921288653848010656018915146245715533550143165731524782805064505939182428039098926218933573670869503905087086960272977726017325359486969376221788548807980721635290489967905666126784835960309313667441401282614955615917765234865941869064748385713044051849674434579201038323658290032512360949084401908093343932208767435321566162698262907508712947256565653321701980047074055386561612231604742301775178891079091956095636064896853329798942348495708268974240885194575987372241668365533157344506710116092791091040765747022598564140995514980842656702626561521786474965587280314606785548400726441887181988262247834706021735660946770945953186417041742792223231451091330596809076337997644298012311290201228932869554645876506020306710718810478512630240240818817257248860233101892753489144472550403368059043935658677854576919996260109643076517650659739263930795734458412044755748650147611008581163638546425959118405173921345323002733960253674962954204006235974779347226957683853383225472589470364930391880187481196198518363238823661707281010266543336547801316666540011178821641280183991425449441008068089135012389915203803049752304211093018294236414344005206178205714235200986198820157226007973830657359598299228479867781995283118722211079207064021371022739167181616619504484795779705440272778264921426127661353333698556469801357212890548614753423594814193947673819102903656695563832443537027994128030335424946362493197781132951994684200442421109715212199589277979803903841899906860769546960214083348450133555776321735852230063189200962819669878966930345877987460842580308361239909341642060058759160125843322435372921760320303365196308119186236004980653979740381868503086736067672281371488257212963917611683161780316464424820417377686164473909279558171916490823300369530121266164349155933001438346874392361105149281579044599176230759112815368276227340353988902093577682543835658291374058942283078212120137119056349733497235074469177353927126665403167583786779963764011299833160902864726917287107743409968533225074025495242920590806749628806232214447881129827856070196901117882567717556501657196428001379503020953628105229959644835516327307027789224347341873983428525650030600954606543578666702915824704573535963992774488365840971380204073296586086240082900779110869319526961528332273496752017437827438738542036470183170069101436727091760720940527947987105478225161920419549632504125963170933212132197004969389443016021215242742442349183126163695687246372869338407190773420875619880773018329070602501791498935199847866292704228839051737858084232396620682745328630210431595580213804183045262198880271810840306446198039612277825272904260304001271406310873381805284400226864720722151394306560349553555942738473623282835075418719357212117613545089110449929125868811646261966140920203445774240826647283970228909702208238126148090145732740746472278258376496842306748475758395476321132267942616410773752262186387214310105705273546804020428374721853978893603703073530612331409659225057515740884683630488926245184830329830296399587018312974646259360066686715446532003986452326045468340496886913770120333766367101945913723765565719701357071142289020200417865023208777864413527434311240675148856872060643903805831765822421245716068611657561973442726864275881662982899068780655980612388875877093463906932306708986745207411642686519905390388358245477452206073287773713584671097603648313446202729998974429301478834185670834161517039176782697914404384251241034306051960657617634706253240156991065204991060562877531964109991707714847545266842983935138150943643506649282133519758887031948626338278821810259163425717815778924680260948427959617551397646048038595470922026058049965131159547922071077977980484749257688276701877451338423618837655516008681075733201407427859890222937098562077288101618763018982957951627580176012129879482836756608256119038732607889932328612587328684272716343341840105314663349318876697842053354559471548854306217553377111555913582688584666219053847852978864945872540754268483352826681031370540492220392557440901984957037041693266862118592257711824961777942346226042352564189459896150294639963348868691229797316967072368166259379598813718611125966980625191637111458000169875639619738456772587358164621271650246224809772280681875313834047408668179379937831359148925052016212520788193051775719961068072529710002930508117258583841448015301295502748680174075824135188631159799977088761150661000690917102928571283929071875874391609910115930626690290084583529515303154275917314374950723305791808220141185274355061638328945094855962028959254447172174429084318479791773550147515918682072605331647336238080967478550300263840014967979637586540364443290209906731086007688952061560905012550845952362023847726814304205486028466938261412417319532506635790540074661367402498261047960571243510494661714344332439910858089111415782793579842313294245294888701906541915073828050923396870173941002926107526294720351316929581836456084520261508839762986137829361589500579451954683446615801874864590870870060121550944031918429798184036155565508770931853170912073920017057624537868689680193039096153504657942500722594436779552396393203770203083965948076132615908008901564194023250954623242394857331307946197349991407865839854967583578358372525467743122359694157178993006089783603510155195014727276524334767370439092862243631012006084211721637293380946774056499274928072521290721155649463347624566025474004682566575855946320551333048472880809273486162320381531107687258892117950251933714691051195439643128146114860417895466634491396907456803370459559572473263852511330472455119067360575573225370152699840418194686919227480391552617311588797165452494703447674121417400405092460651039818176371803360666003746488826904428334225634893679178274316891170222392081512491331297505653206526627905215634921565647107852088006632205216714202044923836641621622328375733987959774533846246524281367953601189457592347272199064006433590449328396718071514860681328247882151570841276156681563717444284059214840192115186125785374283422897846295918518271533170984007789477613834997510508341125213640741404418472048706117663313310821246830271398617780248206988223818069891119112693309161016613911238983710797439474906825933868339380179479842969865140754610637268845162129215359605623591438398313871792574381376374762705923872745647015614995330923367162737629900240409257501873618255482007361146690972378653379418369245973353665911047285319758509335161402259228258944485695867791307585448009666141437055943322617878229586392863230095203775681175794173891856220400055572377657409997238434386134380714505819159038491405100337736994357762283432482003113037024002402263547299147846262164520036601308220347372077283761290867762513714888712129338921739703771987764162374722650316235829786218313568204018481922946573621583792997204397869659776527891824000174805870477785546736020447318153357811186268112099279370372503286417768839724316359564247309565472923026830917911956303966276117948332709358678828509946826666283476721851145245920188914263445922465469764857462936178734501838899362961004855352079756848463875491414972408974447642386037360214232176917605738137522072762744212010593441793225226469850150866303986929921345312507069048330618041481608626197881953821048781298135038878901667878588712689527091526478256975265015819565030147254765197486969800410655172442416842699779692012940722588344979164522998393978176785861498537845417148102849964496178698261047960690893363996850083171201030009666984870802331877234591589933237961371902337488028751568699099505750699918846215789904881328409554900250722924604414222566331835794875054151446328371932425852297607347133217534479430716925073469027753578050213308800160924402941399280410382577307887131209280474592748943923769056575693316568536271616192403961999646198720678770127540382151306370356893015085252117351473398547096333515101718390439048328250219211605470578703439130571932269739406954752666252106723287909761010159246915814298007654810036630088815119450645463023599538092229162992418936012825640665508651309128579780865278748110608536411917023928180107196616788853647197216181452529236915125763455319240921208591203363692507627772219548860642456610097156284508237034801383312134390687630737013442918182925765745873576360184345903581723512252099342015928878767787521530095733392646822342191093304366123476059119744727128711237166117201494692439077813850058894624660520827784400435856267766206777720321198838216655882601501545089358267424325904018342183185726536803801132885525282249447402812212750312181935095144487041220070223856693619497412480723054192137652681363487043381441223693543361906579754546660487973775175110414858293846522032772627715047642782861025041283697254247440858734370051087416718397860647569863774173632136154657318292955685319584969651742553590345122258544989142635847479112519217952805942746650815452979871185527708321473230920993711586678691983167106136278680347096815145440035344078911889055255146765098059615599936315352126924716051831833488722727325660475133386339116095706371185442908698182163240752565369228441793787010876719883409844923880438164005370391337959275144581058618113104429104790154535332202293905130364834753663623395919280517374186703294770773408104540235468298305410797826034242668909150265126548944925593773667329490026902609363080352637511441640915301829333026937635847725254014038610876663666680170309933273781362557048253331276126700650807822295209367126460402548771123037979710265705978979592842881628068230820846188615697333510366344531597057662777298281748402567950446215154618206687608082002199296718850687129643062775056570628424359801449450632122973287428917842239626849824890973209860645935735504735646894414315085931868205574640780540278895218298992895638655387017625843124606725656031627354868213797443719554066963235013900718310493276147813817329413369916855629420179627056205532686255664586789305976411120470181819512669403965299557533639593548714367724344757721158493562368720928633061887723210002962842351168273587761507135760338954873754909154697060615721720999001703933492009764588630771678832596876284557722585719521700485141731973833982254235254362209585557549065158525155046824602675652472620223101844230357049452115900692244144791908213036370645481934161519630905024063955142317079987409515790135026154788942947179265697614020889419760593289383649555175065176304083887185521255597173441975094657614500030406024313069156313894371204896409453895022080546709038875780850133967935823172579822713392874808921068813031361228217516829494477876577137857427816287294070468137701809130252156746267757861629248411881462677577610910721464034779343851422960644887242047205024250991620632974648932350437965353384801835556574656711257486919994812374933308959725793032593299519760384995568685182963569017134093522385905846443420821520221753950318076777299113509641427322312801722571986911996752654068354312313293163967485054096559816024776453106927501318821729015135519790037083451904031052087378282096295368823768135502432551372071513967534052793130164032771873179539537394981056453742965125483258167441987638218337143057275581230379982690120167998179986831063523097128853854108204425477670699706486538287802207545774025980332550079928661663972237482656296190314469352647446996520169895947636955591485052790064161348344117141012502793018705184873506043889864729037675547101908853857421299552614587740538109507910534625516270372680029961876120678740598773632861484348817481302703994644519025093639753102191458684368313642851189417559133328784222105809469256277587124103332113495546326137167717834334904900380558247095239720810941609219564975397926446844051469334372331395345762243919393599201810884609080866760406104277221450261047696451386337114957077838361636350476821585273103310528842720486110124898801615789462478339758425486404852682768623544477081915837778920573440538640618623773547648723422833180098114460502102402417640551672065969617292275012665465177467079146104857992866278482416009489943089372263680115162362854064623542502801980007874257019371675792855652920660108858268451619841592459884938283321173109778482394166836305150315243395884475428880795789185953094795448486736956799774877230335695971322287066886422215584251001610095592434198135782017135356038193413390824333101275104901083274242693268079201836279446201833430130266119910965842599460543949035970194050667191268002516279063412250926601298694548371752900862866381183250314860396876081143313203486032309814419499888976607488300007223762094396500748932799835201103324271798726536955024254582392803960108587990519126595466667160784064803390221402670029777126119447948349036151197275632247189093746456584356612849455154135860911079268441450593233507365598796460805568947331060829104989995571363997377514681715335168092403451251194340694443032763182058353696549314758586233297702224470575628430812204808296156058532309849517089089275494945290065430066277145928557138481123487419416321581801630113994781162243081300890403147015172441925391128703897363789454427335755154500680606264408297871757879372650004771116066629672567978833026421363249625213291936177396647799825643304047950764371120075130426076016176980725205247563974719215496500242341045630573232091525491252252398820134171733711194551530908383091999182752163711319477497544407965663039929109284281971552619416539547516831705563901485013491150274609332718160367314698978442709271619560458380183982431728472424393870665134550489223554031412804442814688313687815295686934042416236821107203989257912358606964579767630443808511076923574611410796612495385023248746813219313907856100258465289480318429305908553717742857640122220280939954759756045320436177526397473535273720654349842042102144772049844798957491066318156533298470298289831233403071375270384642738436947327638497667813594803908965052430723953495161013069897563728863620024429821474357048888058185986676770400320513580910680496039951900902339013012997673596076761325463113604772931218620266485794139763804918257667114295404106499837317133297528670653891178773613368616157709376682151250594701333034393892742207185699437755458089909240901292147598528187380047466787223305623755814031698114419158372674939973046744818290449234139603748722967848572863986829322617375906627236657794018981071613326948950785965379616993349226693931085106156452870223030999094486837940929013484930442368986301693291246924724333680092660803761749991509058529386888325862135579753019302718446922378055369872241829179664339913570587402077874987636227237103547155826372137666335570879751375345383892192520825109924492362928824238803993507764889926449937038741447436641967080704660022157625492558903438833841068842756969326607221855079705790594405262948708936102441746862798894396421127691613719025670529481857245984537724436249486153709174695473802126014985923478491365546777844694552962349535547743451123312216783570076238534425515247646986178111937499079805729008848097355142442430965580119280175409460685915739668532881263391229037734280588819057891380815833684671127946230570744604096903248470295643201932011517175762353428679715609998570779786317979862504477210084706546183255410989549511834717086195692331620350221149928237821245290797881370269760248631589915809341856190088721943923590553350725973893329528619384924315530909739146930763509172045262459176135518701225005793764405265716627412988994720911943234509365505094190018111770359129105752319019500718491924501372874307570785934022325674215386984973511317783918231921767268713104631636747586295585924947560885585553274577248963189183671820622979858746570496346988183984891168360942321714231319538959207461760262614199980755214720218588635701973132535593058991396256971788944060820320418598578169805542977040598005408786949464686362060949262762224451959573386703542749539857166411621152853689679990748059082102361399191554895042647175995297764304028418098785806884944781540514756298672132411989930757291439516471012771947065704374054296248387732046684794410229773248104677693036990105567934873006409817136364475890514809167647650764551495945633552261884361535236663811678144970863688189437222775504393093865617910413858176256959428177642835823153105693794932859553381070769354512487753065787320367015339627412925094769727478471607779841343456574795547990571175403610923414222264231597505115257190168554175261027647184392244101916245696928398773630375619048888816866618874102281606468250390109185656545205477456711622196719191179509190317397410658471108561514514622392262520018586294533835377461743736758894870368922782796554805193896603983588817375152318244549363715630416971104125519886683301623640783298695423402044156923182866478481919475719249767248290456098981975559318760298322110079865889932655393216420963382106335649041288823026805870932408657468509436577070998590118304695782307324136456735537256491725573302532631749727201805128626576696993197212929570785361505496536902115097653251762695766289960259336419411546535549663763734406498900770268406928426075669655688616931664111794086709283084841228288426783264616791306928172265728761762776518622811594991062246034930667168774235742636017484380296927830444794662723230834773271205165249662170968791599455431137771129192910019955057971423763430707088161521810162200349063260361972287999749619915047893943002830919189361602395833019966319181844129225036469179370237870681959280910410500239674183616988613776866118467704106305306217372213903064439063466333023006874736661523813265696969998435949602487093137207213201053520526277146590512957095941107282215066529059052655535551648321994645838271250691517660418584554634328689620451996814770593803013705038641380114689536618180798662598366762248259813321485265364371873702086517880972581532675658931770517077171768076056526610832413002840930537237741474428089880898132330214935707970126576456075144117538516302362738108590388036199187103466853702089866944450798187436167205030744245629619366104316550521614460114652742058521498256436577800171572736969656650803943446067877994383322528993874800710946011144222963379161844109774043322052240529544934313047606483435471628809763625140075548887243792972342263669647094509261791186797088346423789935271921050563245320773819343328551456795869351444818729496235311792211191257769059597758541628281825589392307605772632676616078413922372594915026158707638397434930304864965059090827034102765127656652571468019935059225757258719278532830570774556811279770098114146421725436245143483019809016537680183003990451257435123182170456923925945245923139859291492530873726806402015909533366714521066676316984239400447093887036945036638847558574050867672270613763490389901122814186999328528360367009508195389145791316042329846904101602350581133996609175058074971070419181519322513516684710594776676089279194419091446571919160987640308186853389829933760771044849402060811759587399766510585733025725701067686826398314519006311684520204216475071883893638184309706382491772272328629807876429352597615681566820098264147234845219421437612423754686442836627284167770856199172009893042832377600812644695767573807290762940650104376790139066495846635688428295840106939809606187157288525280996380386534427702900996605875241317852872708864687770413760271435879775062505070365686826777893522910067284672717437121635886692967677783627904232528006301399223970916606552907793695057546685514490475452250063437585108867976402062722810368765946394360822375210816331376360072409829372037494531842738818639325615506595601131250774245981603959252279499297700814153126943042047596900672213848161480873793763585287630100463177298491370217120847566743394289709290939887513628355699301639094741056018451725561996269374065506718640274401956524923243070649467686547318907220570228015804912932248697590076305365517073954148923373271208436642362127968232087815147298763437097040334819304866329836984870272492384146993743552500584134837541417530325706613755115395294593639908941349189094369959964112902120505199453424198854708726465381590307978686046089577531355537142973966383027274317177447580178801386096277166594299624779353912723290598617786277257419580014800858851125275397007136612421458295052356763219995383208534249562422006247832959108120065238366853518067779851023976375294620016907077863224069889418078413763135549614828515013572202633811784761872092755249000500302028152004483525390803756899541499611912326860299257439262620293704363961760406499559515167919659608759276257121356943160972942237047186529584044686485960351546305017352636160907873411306491435947118274209469714531557737577604198455923987847899327859003767221039554237177518673787895850567064912316299994691979562721445387670101536264750140030903336466454989315649489109308630083596212284843300905056969196910056942232838024916001262638217323809601060705583357733807725900281876974590928233029275594956041614406009074764345845683696888136556103160393079911051979683021351312961728955054342113151746182875443009818110215009337265154347524178649618406782346109441125433520242591263847095463297586505249402244689320630632777439472282948364796990797115931236216252240182136093406027245136166552602755331241187238079998842595922212078305676147530055457951832514004438917485746021664192737011942251469401272368041970769534167736381284247635105566330135046029012634627402978265186140270880565479362665745451121618113776496923036623924929113336034955821947036209390138611926300048226714063412012143416777462669268521601444750175841388787542089541483017053088627404687184754518661438109197547704188497207893672899363794141366701662838219823676653205275527414615764635381885804106575363876299877118066316327563948532256533701548190936442152745366110001605849942101424940158749761671488466295025052663383081701532847383028058170410169320897183585954356438059095037081704109037533752125920844218561084628538235643574835084206805070338891658464809380424272230375387217821022764521213588062203043186581993887533471839851151689465095083224643014990553479395933276069108711571096197515733544893761848040038207147835259399974826047517071305600193634344249307447247210846530478698020612154722277584966209433089950306332544076625057153250194365507076546757156340595879740023900969667163448042880622963273421346589166259996732249683698218356289790408168686074128381244939185827014268910742388495458501937399947612344429230239542808975049919250134192118337755051946806744438398727753118869146042790107638835918516326529659777053807364262231714771542041742369898893636327731490516914688363298865935516088658594456622285462988279285148419796626813503766572249505636945783367824028801629952218834991660775588218772127995593504816384929927975307895034657519426473779480021500271346295988255530560543538888449611102234694782503224121161922037037487163113991502108765079599161915604121130753341132383816236449202642838653689987132127026117430212456767390441674559681605455246973867611147183458023671969299314915915669920543414619288542776942597745649252785020732814957304389446629847626375818772619776597898841652365140104321726919781838212760614547208887711583094932310742583938019619062800671672430143386272704462254863663296270260328996213087993016128731428837059687121939278944332636164943864064201454296102707976921694836820479421351539165244530616906101088794382993062666079909788624119851434454410198146456231168967779634889265240691044532276093844486568821425105158482306961668713661456672374673570647004560359453632031928080581871281746330270252197153858572422708793177636204640966070090621812504907106210529602122176933815686619611370315558669284910056714585906303794666694997748296884596960128402408010184133778912135369253260396735472193349644718433093119030737110109951160987671550988741651318230924741140255292092485264719751752726881346219653298081023416001875059164924772288665969907836099735740209298182710291287727759733928454171132031369958943853702955567861241758396230353826266113756857963639246462199492849197691033803344383404818491791574681222942341567958995856237175538095965538123228665880028130530501905825298448820338726334881655890744787812594930158247888952278436443937137125855769448544482045391939479884425171886443020165741695486198282598562412599790256893519734126128298629522371783952418425052863380599027000243993773655368449554428660902939726937020701994034258466621873598994710537698436194598360487138534582024026228165421759843079103394919788869626609143240351139073151224852299415490284451715376385355154145771902077822870369178247925156292026409493634476961020876636255875336137173092419440648250707754821941415754803679578163048421855718661086211098599426707047493092019230491706972671220870170905371510888490585999802260529761507583743585113863751932672068480051223375032615900821330487487822853381397243182081410661998064106835822036320443457537674238649328364354416901745566357090343911935930918522051290129588627284672278126833026038544254618753905549269592685792009450145265121386236301976547722766644900219672542793968157605038609476215166871452767410863864123252841074643770941932200076452943827356735292370842986902953242875290058458474162563245094720773397213509480622232642470427830652276480449536152100721062315028977170340101853027897695832071921466631295843565386891403953702593597610821252712181102596522507897572604075630825432315373297750343238416850461686979718505582139586283073350324056933418272279418346999780160859378592132965103691390176441124772177502853561632813860183958522139591876919924786062398463051350777845229060266058659600338961512638869583128506741754361372869060550026057011237213901569359716099393772503015899907386776953902127895921942223217472965242530379167143190235745053742326344339160811147882726627755668524099702636832413621397587809417096578425657817079044632923932271922796472162988179008584204601146989022928860380832286062261696325770828576903325776099148526130216979580850693610657796037106483261332022649218820887802853934493713206259792218906036510880883015179765963257115362246056912181399238341430718049656038750059625428339141176173527943034282585108730500181292766815437562157717817290276116137974619678351662809130416204724464644453612885011027421570709854524229610402990240847273269245459001350096389774219473260994624488336251486365214707320380633507337338693879196011624681533165508433110033642034486761411660040831132794460718467988949358916784355876148052752564217918361564401369059821606172590188975376672382287269900972714012636837593965726627147599626408250472056655178721427887405850463094845261400057308683668109788567883524416812418611678749209906694198163393619449493394598926140183844016307491883553893052437011345196103106103407206730952487170729910601719969356528413505219747816523129051402840554123250204054621320489220796173868333837310407591932396305963447823832513816010487082546148501140822586238971745573829614658036045784219675049695220787384050932885397185262542130402865224986137940397835658872917134753184043472233719519279064446599528798483810873425724826269521679854865882382012884002005209968727417447852962374472874551754310020607371730565161488907943875346550649901524187029951945756483220090096109554140968880199015545254284112389191799291237509584117796874443236039243937087362916785200782700901144888607798104029901740730615942700909514948545255774756344897148575844351945038019216200597068587363948531800225250692967263567903916501260496584868561444861607384306065369688715300920617500271100594498382459313398560724722325430138502819638666561180323231083836535816894879521131730126517739463387246777976727726270896144494210312007586335956304215194089787329320196694239507713046309400818634700980075491541779526816671450024011803705906370646219454787089830729626032670531020774066941065857420973475616016389784055437627171582294360183327593912519703747344124170348297920217102025306713566316956702344863420471428710567804652127201963405335696014814178424870873142821045656777290641858729221445060798334383004307396079009927075200367832095572106791091299439564427512324004052196264982747175771398934209339650781823569842091954809129135295536571521557498342819984659760013657826902415973884840898513410214465698913317330151312198873003054032408205873160166042470091546036316827051981252576130038977573846327510476323277565658050091004843338351486367831887559199870222725954470450711057625880884657046975336051295124388281875344771159898350797879404593238312308979967228207745873049802764768224733154971346365231026065578569458541899486359739418256399456749792867648082168997961470578666857813419199768458616087255947187562536380767685522796253528909503875370444135381839710808642727576669215197513514445659388809952913562841772084210444018207837565020439516539987073442018864350916805563488144345136309120510017296644597622355220556764758719791184661103145310494553660041551008709978387264294883388992237116217619780455237181085644681474221386429431264659810331901620385980411723258239377628910706704282686439742504291633818435329801919831603081577221198462584993208702169197397795822024696136114118023603484305973409249091827980050862626058040618208140323104496717111492673485470957710546401857778268802916159070984519132084973076021242487496636157483903541865147088048297398844020975336135019633087749032136146333621251633772080673925128096426328514861424263882669190594513596212256563988834156841907425927079212526413085136235305933004121214603168378421142906603055509780486848432421158844103263689825035891967936436348489069729827674021295792141253503672772305080200807035580849500495743595323352672416633547272327974715434904070053922335961874797268250053298592596499156510616624565963933949615013808035055015248125951444315863696574526388035341385724919230711744716944430519205340961970327088269422800183190321986857565129119169278624569310121014733639578960754564676360857006164913512651717208037556872715050497204759553811341729510673288162127811589771931834759305502323884866106368239574087366469904973168518593533923695933380792380484398384464546835752408240691029083722840158805845838876381625238932094765081118669528799548057829504274795434150378593055606236493826373279946708492516918442342245812481783350233944757807459244826283457318660832931747609437998646119183765998096448661554207064415879986760729376812292491254460761270352634143849288009844231719047587484812461823035110043212724921731910056566928898355534988207050289508899008735190575587736509213551717238421717370173780160233795198098444575095797042651000097204548491806818249942372467052157969469803756629290693611406235954613017916717974472595412864762112597350957778364506436062588645606976709867828859819169673152446509486913641657806634824424075349962438627322727519579388821404767422169580288544305509233537564342415151091490882560451405948584649489324733745545044918159621499270012568857810366611273364180804164720566561054798133181295045767572267814304868544370255301119203783008817235575943715886802753942802345282872865680212303927148022628040166658321325917102806375118770662382816939391715662747750817030124642755878931210387466782528260153456159280919933698025540060526609522443622328921079275052528691745143123636329756671527296661083471333644562775980476208567270543507903044938002963237558792439352993899295539771637881624018934205336752239365902042768273038635063803913183159919871939338318149833115595229355867393861857818066260436241515553188709437492968905325761524287937016805292351920871580709218425068906037398990609047446276084489467262856626443484939166507481786391351581536608083116430552449379902701287748434538053638585738322764042137409041587340033891540727709514681214900659457602923775226496233226695531457490844405534768461728303141872704125566876887217596888214549837635974839826617443237001992842641740279050279880709168480866266561437640635537177496745745338139512446915308849186933914908259378707979121335350012004721280446121520505101929857257525834006242912320614487404456996425182733217474158640994537180100635625099542616377705765386113441069478356022272838455291024523225039520449018058211667640393572156049017409537611660316475012270193791205649667140751990332644994687284214080664251811773087906887503498216474675757777955380186247345388273477857739012179079213605467730293204550282417521246000460856288301246110300265659842276590801325712482609201333384845368874902064209271127671029459240144270757139906161092227467948104449645901646971349265499629469305091088475166974861249858488824536712575435787854784614057784194782577107544384635816086877533926352513580760243885692400608557465465146104574902999199540615225394321602432540702215383446572718603105759258999716405080770052199385230804319228626241305143590489909044765419431207024143959683825375163701953011817122275028429635490686520966096486679282504239337336612440863181340963851571548666708395220114985616318538462008396315633891113603053875190159610240892723554613458522930921296915300063459259371886231765572938708043182804744421003049157808145562744453654034400827738533479744546869765555161622828661327347475571787727240172162124687884319789031076267545209481437241830240171267844081158836105506360449548202620175003608486661152127372065543490816250153109234539765858665816394994205006366475890562021440099334494909373095201701066481062710323267595399935167715734004898725005778984832639520278886087756344389745475850514757983748912879518269666029152854165752366122200513680463007908766493363736652244562490835631224140169577106859422385338795898904173869271200984721274670656248295617561731650852858704205857481813613599635127378240036311816764167024122701115394840638887334048008137739838550106688352063218066669594160711526548083035197450009423416847044324280574615771250764668121227402385176127424749545742860516938018933442122072457978084979112484758672302898844223751357367528660379193372076107765086681497795011902172222214113523245471053871942796272146601359042199109094350272039347521841839079027093647686906738371178338822037912405770913836521417830002294073977545669844509701275194013462710790810508601003424368174070760219491095487794785072305416843373462215953202395701480208274727396787597600126120800796014339947401527149680120666791757233500142844062309455051084890161402509717974229112322896482015799759769767404393007287979347000565261608262562855612689530465910113163789148996289704599173743973797777266698700214439160064677661238462086546679519804764228716915129697153306970337866163826475088119518955871934106243407239228292059565814644527800359628671992089233785105785577225668137333111998200253717354822560526685936486303351976295896428130542013331921110281733754148796943132330393111077022033564511039727950889377790471627249890396172062284473932955764240348037584030507217511289944237946377645406494008878203374059802822728344580520030931153898257308690887000663880611682617292192465035872524921750192685940739554328344248471053575403962505163707880319389378342889933865933377759499915055563413230580464326403609453590348000855878482934009015742435992075872579346211972285552053830683705782311440039036910183882473824536915384373725313706837623816572964695908215815867191240549175458815593586014533988377310816633063039676912673755862685412076758731399621788578442602644898520945085628555713960675792979849689540907645872759072793493875820217783684816873330545054477941543905901403410688295620800613368574880008359230850758923319577786596432094536349900441691785618019534505549777536966198331007669363569940751112247603010411020141525907494436119615254428557493949187093858624505041632319439603256312105856625997644621711968460715477269063405844257211998045097489183362810939881335920870996491142078544691209948235793070739541146129169501635680565974210823249303249898805195451388672268877656518466521522803516415784281488268921313016378520079875019693350187348778937548900547784797075206555489476745088752264251632381718348780606788551018322911824247791653017019796244026035308772741367164877192041258958199852828799324632688758246861209513767813342144219566677520163799657185456073740777798898585001750340045510696028129841687531017905157277373389306211414162207003998918689410191495279012299746281409616824093103261304012780872544287448149579001935142861956282705362957212258578586061881203704169093476891338019531188598782124143907356801755920979591789209937478722654531416046767299885413494732322629309721797861631269086676183950530048015910943086828325673867457736794147512702414051406829919525610731454926555381151420195925376974916440489217920114463746487463935126971769720481649884144824329279953686823891115241421710610759554810368514344481781874886295408909955470958432965004708943084380524049516025082031844381974097171479029092873101423614646569476832369032318381633678071882917465852964398143109878400612366124386542618828280479147477651846227508317027382364832557094335195960827329316222520608276995147278126139164777017884105431152537126644247052294459801668883685550573634137643087513738765905501987436199750287127053504929391852899125690476886946953059893794216472781541214162042287373426467685314352975500151746260282253705098015139356184656373269003648106462620406865570599196883032425378873473579581658082606660418759186168200096373549781520392145264576347636411797980606785209823099655102696791213243872028908429036241336225882255293062624147897993948753907007730956846548244914713275037012828899526449258988397064518604259199934267571937035428001494603294250286596607216277691301619301513097932414236075314229190724695805308281659818225592917737844367826703187467380830789934888131486553680428491759959111445272229640259612929888217842109482427711311162348793927791353796257265263480360025760300925067222281716832599515825200055008968829812022119770052107816072156013496598098985856129744756527460400196701659298326914969901294680468560358980726663628229410720797587374816800166943280529492058860359731548742818430599545900123227639414938818512569675358409004954825358882277450538617011463072157395730201315102433068901259021761158993819907988569500696868445192798642022264216547288685771184814136735933414637244550306206042010712260499201762460413574249959707946286355249331047257169021432919898663153120489520939840325209729733798109867338964150494877344389459363162191439936005050800355090274515188238001286622904401231293040673427650499986676590538869843069216844092124397096178486880546799417527055479180912644386915870402959076750099098925088266332785016595346360233549690196336036211992948575913083041421780942932011753963473497483638858758722480509685953662081539499945095718635661508859398521213029933838987773550051696567239082342984988501684326798599452630161643470320875777895579754892458125599674480586930929705315466166571130833459942394391191653731659528958778110990021287136501134606182068575824009453910169833321897397530074460792543122609153944236597406251049729938772794081103725712819829002726596483317719255073922365040253483799438590088811006077085179751036022985500865614309955389773202949247275403074829141452659445982916139647777006429743090129973292900970364484773148327005527734949742212364969217746538947402898987268250198591014722158750736164306766965791289189953507180823584034968597896223713203698439350485285233455553931984579450925160147688854544400028730176703215409918195442135302097351114045929420770283806175557292945989493924298157964140892740039844846966304649747169835047564197695615064301139623271258345395956158843947085602232310483835137554982895635388199845295119306323466689618296038657147136602011848095424997327147163826684008341718509750440550486406038159701514019652432081979512645510560740132681226050375038415840509507673185578943994052584295447708469892003635601241009862821775823447752366019312079388322958334104901377215436371922122856176850560790451844057572271465407425414178906945944168242105341356400335318658082690192620190677902868860013737896735062247647797073136146292285133511025895309696550449511923509373362707579880987996268528424663293508094449090665409965991086102847146621415317492932461742278110893225706242614636153811760732478283016709410451101698110253438821668220912373277705807679647778157461675919320003128379564954704372527533980428078201128058204146752375294536695449637423055520195414932419596562259669290716951596390111200459248032028064630027775879553749985560945624274097352101268103500377456714480184784432705410878354207859132570754923974004696720851939840999483040263378929183503770726118591427967179995066754382621997092094858810925391187908644964300372074960720620607929801915239170963408534031318816767172970026100518245356652822251678730454595725530481785863866959121224963748679384368253588529488187624723323022548189830669386196404606099179545645138487721349617736867932153818432934658359376210849551066655525790531522684650367856894514206538301893895709180096762899966838870229044336091858760934574879985487048364566320108521379920899880322006802704204637537203168566012100495239443550644804715274577981338062949775450534150076946043881116672298505695292856983853010954360615828799697111361724766877830369514149382896559897935949230288655005185808559461064481198791805980276692049149223550350796368325088027002052189462682096072607475131875742507587833963423223893878779336625381361564088562147782886841012802613871096168055290103373134072280901558425551104482775674142097712953765365044299570692645370175618065047130865527682354407911852823682217037758665510557586667217094731854430267616372627990159235276175225460895470405282731684506571355867418841580170165408622320585924821741763314891234533951818438685626989223387276666546826127020773660734029528307571783076411838441115098192720328780277299675974903632225939971006933261326396174440493350343159448887428282518403525467321157915899318081481943871849651581711372983122103165098421171370570718598539817691611829248426661270013423423037567363017297563522218757584406522086887163768679494239158347628686642012074813411245325740031701923125245736460042343093719803921638930807268325927233059576280839331758001506396792996872540457299328884423394130146244030114361353857355804875343195966021872090690245481216554746901913702683947875655270039410007186958193116851821363682947545812421050249089421854242739564321183867657525743896135268945926109464589129075405998110201349106316735242486217903048598265149745888441186231662246306076084236436873968593781883556978481126241675135642194300989985675822966771781762270121292198255229017701888448345469718596731028877556565583967952606932271969536417426819606774192762861166844019909054443097053707708209848878318470997540354083411960285376672975040173011630701477265215699458441968118396732254696281522161522544202505055644116896953384026503466811259407902825359084459820142817511976672398010249023622192320903856309724741657633077929820753154670505072554298422406500660292679663723565931678037558435733062030068357442305211257427101546543665347444346720354446004213432984734226595208509180568633361642312153669854410723036084560502506165331875826736689545453926322791168486129873697508924782560863240804379732748081685064356050030006718637636517713245931269995494391938026113018094789407068758114459728968290405208071281009762654599802237787629264787694008920630321919812444208773671647224845855314699818589939183613364689094224539973070511790503196853318367792007296834282600248047940716842867352063437187099958323828090676302617486833939607385441788025760918901867078471857513910595853370351548531935702150131785511989162792747300072451099548068221763244781762901509433480718587831672283969661345524667279377390931621167649200511052926722079641194111027125737166693213241188520148256679750760027540634811164624160766043506988519505788390443551154960015112874212581380469176198715293413988044661240733866123743862994025618371746423891372460196502054611750143935803831330533465205677320956700156782313576949527472041544832332460675917048048964980046962345235671718991369881467424029438227619168478641382132095341415254632554468841875429974327912783711698505899957830234750553572353774119271557233950609852208160213919208741929506824996608976269983955116783346106738893600407809542746848095112037274283372142812248915241578184456948336945235444293151807549416220167930868754259523780190009890516297453933177247708692675222421906664517034166265533232136950224230743701359535747968328875672425526966534388567916173369437641284634884708556622286821095253308964595282854333414488400670022632315555590211461458876449488287765667642589563524575758272218304075970473935344740616719746060662884020833142810813942659823146870362328809112215833458383985601630997258884630642804278914286035656301145083552399399397290813360134775915202193991495558775822080363979596635882978214652140096506672938039442266593680258822067178829203285968035390950358612305908670798363200978223104128066880046131721966454258898308306574906469975404869700275643172780753945153400666422727501276448910603134725389576042935745766395232571183220642749107687083440987974692258868016715334240818538280941781331939036956206478754624835128437959018030244795426902105629358395743638585530529412124796716971259634680089724935098836968402987806648981517610256546858032869960782514220865646219600225522315917995093879298810654226243112995950834328422308839400428979137316085673919079860075278668736848883673283933116643173881163962797740518757414747938074397980086519568012750239977284611357850933725293239762353277804968817859776507076633676104296770379021282133506204229895242323685415249858384743514873124726942026285941287509596582745510885900439522414218042561765293485979505793521393015386477504354117340569485292898812367638427807325601947864072883601918619528142652883482239211675918109748130570109642736496551929687361781318065753376725148409373587583604201573520662622338668720104007712018370178854372250660372779893452321663463568317615067868267271714536706200149906060688184559141619069764437506790871330195829624227223536585191658575711102710890213172654504973756692471975469808355590369953448562909212183197721821954872703957043432892972467666026701831668068712296031737481611557283698887699060905979021127502987304457356235491889329637672703511222391645076859082740747162782786349040527603926199382707485397268638070478471330817866437908477003171164602542655646222981482774249088299393480380260506448878377290499452931046107436485686091112632240047749261727186526796445345102507511883383234012892152869221194114622142792630371241670510664246362621898300033187367238930663505010387121762183019619689419024450506058877140312515258872066673317702341989833615417298778901003836022020368032235678979378589460041706584092454642641205623292581880851294454123089382994808362104957077346525345833909118787849209251820330215814431152679683302925404446490421907051604380587230161376267504633885227412776439042813993499031762633319552892006523485804038505080341211150877913404026047983214855997816907927323347178205454696905666348368893065420998036224782917575777039034219163198554866012117460157203315404062980675361961566831047105477814076267981556847345023952829614974531929987076502228998860286596576614795258700734740677131545813097816431604877720658479936830619421025395659273685678794221483848008314094831066989088187942966618532040271689752690914220906762941352800071784846368118973076441082962099308821274491066600892155024883094406894408856176191872582030770436671850353160667825432957417354484103756977164839445174630474123297479734826708824171194341148940490927067306763702018823759502747649724215595702775737243644308047977927743222810671679687213465416125385648942884982609558276160566665312522863572004584003564705198233977600352971440307484228500536207391972716416020533588137020181711487063804325436426132820623181760333587277667382447312848482430559008331931223306298195867929351322578581679949279340481793891408823543756489869961595687451921378990215330890992298882839163650208803010890351707986189395951581971686091729605527932091465004216112435209618901750863015346304184350407871392800567258001140684717941237537543448757235626044556118485559368946993012936280688347616982847727022504523622107980287776570228121791131542543022122732027139867200129933765163788959322160545115663812048118657582109312867780378293382832715348136620369257063216237496580919555619986552720517418847893335873181820446555550853510946289915715148754285966390759404593744107787784157629639606321977676154029120570309702383041903526673338506959791627451433868183697161714654204677795736644066196549203224258522149960570536226102151623822046279463909895725723163636918526003887257674662791546878012175801187619359661866255062171017081004423066599463869702393338223731911908781690014115232806526861152017760951209933208333893072628176440524619409900075479469661621523093150109539012251526575295575186876717852674372588577382164604252617943871041320930731409236492676324000898035179975535138392296194544771993227966075905596788296848269972577621177569971696079882242277424587030709384187234324575100402008957938823596165100646418725782429873648713776892705859107972974297306749545047829594188204831473852951235528128591352212332149868872014144827892177925864429153162413461437321287689340054290702428763376947779301431510869236149604111530091847132119066362268059939112729304173369268352249776024698798309219734391488132365184530003334622933942021460309108533191715045703353718168946140308151983791115930543439462725069983589017126739895844066005175600536381728658986170857715856507685928400808981830858378345160192461457589091027394680083078842781499544120638193422954955521844356405111828099735336370843052959376521765403334506095780763244084023043314855267594694189772229221877093980391521308054642338149013525721569461723707118043983960529290272883640440988618413760481653408141458529184755083161364813537953479504163196388318015035525079351539328235156508976719399635586605356498153073676251225455291718008237807331615477015279902584642252779359805972001727186268661771134841206478473490094774864104044157918564279864674192468667947134748223877602672479659932129507966692662393825267714021016108655286312787524614389874412280255104229396220725694825816515232701283503483556922124278213798203231719937329649578350964724432700308031007109499868611168630782436519858510644035568298497502967236256051819188641347451681896893506894645399895957353268866272211642023575076912524418508813647403747774992445812666791664492147542280210718733336508838437370894525341155495978084625585929786475483210779444086364691611749732069024892703855531110049256778060831831210791896461238267641214005511357872197215729252183275332772906312072747983125111673736164702534322921006586255663288216337299623959668949496656098930400912832248441696771333488072941651560126889976080503901484194268214083718473512385808843541545835882797332985809094343901782725627683486535666686107843642874414099102192888805080223793326487609529662066420485081196373858607877145947789514382790900381769171065196532140212317720636704613979346658436448695727180473278295191408130298650865000149614681191498298754734157918653433378032197147878862135248382098391213162302879963720253649846663532493129441106543676565937480468822551799516975425305953246353659877251609462069520689533499495311986346245399968937087660980942453593772166613289596410064120760472518502535567581546997590065933325763885930549330386249186907029427103209829377345987069535118339307600510019323417338743961736501689429306708143171831288202411169411920273828633575744617348757193093489897541356915620016580675564163699190973429103051466440264438242676697525192245916867497927944458007980254150480502120425013535393589801779215120188250328591969258551021718427721696338870403077208008486714892493386410476192859703593415444103439950990968576881074991074708092106986214747708774371459025449503694288797629256723475232976692291067905928387082873481385174514778042868638584373565759027225196406530928050115219429817146922070374541642329954779609827525003767984095961651294435648203470834194733216000248217441132133525419424040340542781308335546897005686623429266850698230786673829017068225819486249465142791431017840178801223323127326917247415305038440010010059463628960207497339914559396838159446568677661254885486401591152832040091675924549017823719394220750105194777509568890944871538785416977039369524443674932918743816344446924125906984173161107552714003177311467620943679024286020896237305796905976348875034158687904400537668657399817146980339920527311707711403206475810243274585712053335892533916404694814560749799125059377932340715369440538710794312067802934937427118603641092267109179422208196313529170882254447400575839683276101738353057015227873299814915694906888229291897273652461538858597795478967570490869844611991899466913127010961811212500771926463163271692880427451289334017371971969807456752914613439821465105700718648583306120634559907817308932176112306267653544242094616672775901727483039556318687906552528073139172048843853327972394312933007653844832591558811888053957203816460723371339391023014100909916891364909751470257240811185118538837879513043145968487432192922376427525336965049380765802163155046763212933256541469840971027976534967709845526295661524285235710220023381409690613874937767436081245563290515658451633839166337404385492856129911480982189638261040868932528733437567604778704947460639325535407203344229169998203690014781517403939727819032729045141672644116905076343757150963519390612447711303379358726848508790405583215266319399038606627217620405276862214857957470351844825225571093997000962813939905461294407284633317766639031089099180957061388752010557760436999823406123430808342729152277513128648030669840684257576370293892218805485106592757512121523990461383383170837428689301837320492026293768208831014410842013194472677090969579705335286054830963086605723052391038820810740106099100315847238658088676272048023598202202574555916263341242725002243001222817912779551989711371067559920397776987668960619090310778673672346989911469153734629419339331603426776658713616354396558153152501261478050177454391143333284821492733746547646390432762685491457099636670832418188149178476369435194715595605008553265740019942201985253481158145654726314104886408461508670825296310368192009685536040915902163623900147204978678067400103968180330628482703199648683528471040920088132409388480534107827573508656423319538529515533642335307807581488632659972208479280890440230923077510455952699195540915037848412383819756566020396869746278073585472228170682319478302089258726030766070443531102800914400109643293595261966800307109522284777944748795549661379087057214485520969130337900372202279809054051401703039886146585252678694550333010280945293281829309829323994134566903134903205705981766312267789994456576076623559976124196953854894804134728617263551319847385508130791006653068727662782659781912954644974747733787423930698770521955084617610219091412731018388626136091279082389271194401394234026553522861865950565431954527383450494191724851624430913535209471506498936984530861103552451043599683331666431946901550648601763311693789460122878736029220251101020697324875410921560550627813701425148740780745946759822684403037037558013956984153479054705441380385532857762615032112576582192128313888486537659598522334319208835740108032351792799681190925439617171296709477261161733417953169825510021219775745725829668298509073643907886108885710938304112063128508888361735332258438144343994626945573828095233867572626601149662680414474669933347341522255878034352674333966222973670556650048678082667254074637775266359939637978559328502340244659172391042846960543460954836587672677028574339693246274870168934685098663138097973408009815815638912970414116034329312426732860198798171084606348806067761225914325932459506035659967416007882245251651621926183878639961590377838827962571749092473791208687160960271211402476322054719780321091371792247231669017139501880582818664999633216239380188973063909949537318043205807020485371815768265207207017594080660374253542560203811096386624479336135944391632644317506872670569541919514674531700036595762031284457682006172575610074258311331616950013143048408624536175728601747886643258766424863223049813484190571701621716950440754672733565371538926729792246723234442669306620396518276443839979871160581277009085238148355604440902699248034887112619626798610248523449743447207386375917721342092909439530534409905973228542980174576220615900278874101490920209558886662203667847622143592242321427338964510991263719228700396477446831613373448387996094745471820352284092081409992351667623463035503000710592026043119595749472626963430266470363606908532650785171957697046037853600753481567195342780827480245571055700685689865102695273748452567880769510825833549540172557483794755709877482012777778969864098555012476377785139594750464461020390889719491114349459843613973120200435183159573044051230930256781391522580382889504715688611127945372185188752069231798303107944382034917333486805513485181965796159520568517364791334237059722467917701181678709020187453679590011181365516694925759113173766996024370842610269932109825437940817840197526064821452055569190550214531492423852347623729791522576471046153221903279456605538123808796563244303925262837395598506371602729599859511681633483834780843087721578832040700730294337597131594246693986203407836301692563041291839104685721349395333891359922173502079882389973541909205063855865654312949175216657885211559470239085057088929665700031737818163047817027547976501748944589219324239787760492326462932126065275798155821737578664856100422939469281606727358600547997994002861541569846410790099613378604293505195193986008048546428946813642418550980697757310537463284853366654542640267579917522178394847810848902784050985651744231095752207586341759395429584145409883106790556565213648070762156797759122363708862058345651617749207400028147600819589907620598297287728830394611209277159996932328511308329444012263545468141050575460787049633235756373746881195287147061973255431114663231179458484636287468433556244789100695806536077302370533368624173931434358391446536720390400284700298057429179149802288571901732756486669801533857445665962892712108670464087214047458932924071166898865952669797242960445685741704760740347372097746992369838751521350766033312540072346446360951185300484934707590320083407150936904173705566644995910533077536136843186431931226159280040419037459609208150420882723588416750628853958621737848640220135891009955674048520152416363124819734893095313968392909758963862308128498018314357833385885743517802590340620256451001305577753075952407331295060278366104915719039976100871153662040880975854209263120451424235350988953919397956931753781088666584843577886225829615083625255174685758664619681193446692425241410073943942838480630912215602604811268997304609411319321146124918659119884910228794259354457611167058005106518102456167626980623435753164289344858574689038439727346026558787753877827629116729323732316060838933289754397917088473577287845575630294082297767076052935678929447777183240538530614635335863415208415764295446543651173084801769446650936299736419932745136964271424366398665745991221576844647214179748104766353444110189773629448584960891709928100217622295336241635045115383916129985936018667782355317070430920016292795649933637436467065051387050069094406048129198051622709937659485515529326721671493525756936012474039008671390144640958815469835580228689940211134128125134099801755772482852052698536715729692608264074784253112794216742647770213222350065430187965066944247319735822904751059088518244841710472998072090836031009350931422167393347605437514238582685168606197801545897671421570678912971996217088336853851303199154017252738737669506830352663139345396340091867978583119830709552242002357015171007365075408455049996647300636808856618000694729929619101388596689201635654592084527609023005488211328872173958041708948185319699703750395811568497298444005479612767619068219454441968247929412321086948594600220245633050394069610824419369502211646615243906476117647523992775115565319304939970654354339240870894415445206973703929397907393164586331868006115113489991362762251962442053808545246574823409109699472385176302945638670712604895819589869545179320715736190585974353105794208150411536053448041888053463398650492223637226434364709971106910539027728879882252786720880314765258224944599872433476819364405765350323714794978238627790115046686569067030277035838137513449943227827304810604181908884407377600109794422546087758357180165685848858846991864850361839823165789910326375677230953321141784399134345951770781191622212340880236967904602459453498688973682730301356171602823820548369100248083797818759998416709781274790496651866368778170505990819473463851932701740507825633582838352908755773353496206966142132835863912717291315251564679589663383169435312697506798650264229351005660205810202453226268287689528730925483513638058187508177374484777904476396505403120037122145047733850305095450180760918464878230547575410194838522489898070198395370229208019163518561427537803198818829658573164049575852093154310519604399498396704555301809569407673379201593937374674522982195089445568826697210199222310848885634252068561686633509604672530953084913244328892220374702871218388431455225972958023446222344631743130841221818656025406998713867946809031807226154510270833724191682965573229657118830535623828087931928876004585163062749690175091322911804725626044256877629640917529941083217411435352904599007505448262463257874614293239231433607331786829132402886008658399346402911307470957767297107224201665871368513092770620475974977261612192508370670112249327015841513505650832042299637419042587139506459196251568173447684782956183035107496936654756548792266771009170677857739322522253042875734997158002854630714890051169858635044417801684120852051853618076207120992781579935082312882374166274076185718746870028559455629171263389716383222029323983616448825591870081815257043422637839674844200549769486413997253307205724416342243990064251501195546218160064293367094007190355188434843090679539179903311694788423186078335525618330980211560865184023501717167868443494391200512837640794535185531055175640438129916731704151704691660721959775600734836974008200513361293400804761420121502981661437580667435137468006775901567038582794155579337983697106157841978811255652676176519082100912793917353555015276630720557281405160624610573495744317479404796186889052572934384005076490554178754031149563879237002967194901532736543922219849949420765294005824307134324472779175819848940631647153453349232134590544658094319916471578405167485806136045817388311133459640404418909419889867020893447476612809610837325975896191023930229618992607399271576971028017301378417126671204086650969901281234433294193574280686476932875307462360224060227343963783854056421775421269103989181264072157273230954227700254337108583791654243470843589866748148277122338872995037966013956695465552923846408834721291724817153761168888117046275313720525128430519527438660437625153591944633131808156133148167356549159431948886384021440981519114145862465359696547281120358811539820998314736337615702814284312942513328377173242494515195101048395541684461973479408588222049919787900132881179233617710488303184732236435695697193993078166071782585515407849108416567708770446390413920701873242873619152281001333343978932131769065702732651995509984893094341250636363274554302928721207903188056071079290105719366696316787848091633149419543224095153639311143773978711699011415775870579240310393083750258878960538331869304432022491575256724503367922931558073680974099011097004478535830260147009258695188198830940658736258085376637854212050659936094358647567102904235215135053867286379690694944700312199774265855569795127369640469892341011239851242937625621061322059039031121576012335854290963762320961757695550528763909815375114097173217998581921311482842267175522332237067099087619960518609107908047241448653234899075814045026131320602069080047875698409185280844353095384892811311185113249847126448124730944419149884908665963013004237420412549632790659139147975288612185973994822302314414045896611663271581410731382531641693807892172488643764590675178246804887097989833566244325149130804048229975356007529164832082022933889456136269580377062319727868214854467312235876402538063550119884055778955031830547591539373110156980263504184243890290224226942926680488226551348952353646016678484648215710142210957969825714098081192120317374570346202891376268813531918573450764459784520012522413729225630522398783208944885845486380950192473863519470433773999380880545798099044617530407769803050588060614050054918102977799334670551449833366671913082092712040970680824257437955254584016874755736148305356871695043189313420252106584239614493898701866606577841482433238437566956850449238754855444774730694487939011567862599198283411730693141400190565488834072982695330353448511983115123756570228288150681806125032563298448817231030964780162804803503742034814770444057096895807884781184497650364564898470853265471658517249653343357980099228690700477330014631379270440554033273355822907807775350578511500760180086858301299100925040865647492495370768202928135744005534246991444641661912433493902923061574121557548593098064037326452779653551128165947104230178719077805211992255332750785300610447115077456535651460741786939772720662505914196647000951384428262341673813488260880742441903675947845404561381335631983276107818950053953982167039880445472369551594797616842022377030959407114442286851248320243199193133149104985807253332816453253025793020984873064349257832415243657524807546327897263605505112461406982834229027571387126549072123461743549288383595744231550814504330685741372889739129869402972401941721590674100675425026727195063514102773898872401647390698277948965428439797882831593130593097690077722908025186496724359355934345267908219289284409232141954425574508155505518723805135420687656529775941476779273354494698193083806625052960053646309525666706048328147265021985877567046529897469868543646749710576252762339762177545537755308348232771619737332253008193898181870506663781476496502805090869341644818967418839493222517309957127846503305109524552903320090471949306544076871283424257969659825652730266811515267091227825235558637091878377222178749704630299367784211993752160818505706811788823555534572623551441331308804717823462074420357155045030525700054268400692255936846871093210664627608638643580674793400436161337838757392773814119789569375551084418450278257384178970065727662229141805955667558709429862568178065868563308738195073751009721075147126364168409199727708886697608527397052679070228448488025287813484938321884924869130970713937785559058327644192280816122735038237042579383250034985477781494629324867340313587023445041993394382170872413313829924987771520072465933546229399835138415971939511908290383922819851318546902741640216781922384460407210542707081973453754847940339040984414256209319694113128558803693479969081232024263993198505901476144734718430218689006073381339726425642839651858040962267627625193043764372312234897105459611284234380203505710302162707331553874712953734589847335851826175405582845178537293627306299122614724475216145550111680172028019958601432671203669574383085449123319875252323787188299720136857570542518352049287138779416873911693687726751490248267019081748848352726201686353123545954439791305320155052499053926330730258505669956696530318272349077404722880790960142643183432921534975032240212275921384138656026919773928377845988963744759656611552612485894944083477791627554739667302217956695832223765703513375408097038157563481931230332142111938492258972341886106326216488018832988199821434191262600274342728281374109492944759471606434448572466901457676770384585357073623631879926142057022596852949437019292176122659967953229916923490035812073351685079972238337381780746074470060781674984718725004532999934039825713692415799254432057154174226585544130900712170374219031034851979594369341227405334436154388981064158901759006037011059302883125445813356518830828477894298044516826692647054760231441146349622530852951707018462468012065980077407314332381466887528550373221176656035298697323292609144247797013071808103295920810499724370115435599978629773396540723755807759412782734509322809649505902478316625021645007558745372611602669286282839732105865720017592798591994842562562112018251697062492129324536420489089307222745258182901386838472627944400810085371423095670063458986396283399666560677413508763693035205673007368100274638782951032029099469267036189926449426090036008904143786268898742642424098230923144014398915878923604668244212764512919284551535039407144327493823158295756353747385747880577454352297602657867848793930824954218359779386842514893125012450224580724432855256454010736199024485107792058627259518809879712916361091211686570749130560220610598720850448241761730615916581667427827550232589690430894153063509221242702620127474867887884712999705657129022803062278123558961900331616855411081056317712097241519779686583297848597958878103556333321134704827984947781049441573885385362307076488302588864978661231071379178302164945443550771628603975204737346922768794025766931659208398536173004813882899035532153182256466846712098795055927188398997999447937853937584482739426100102518737559105919353722286172477247727453247650407627874736326695215055613499549927216212902882445479307669679018540272709470170344744977065622817399637484052283530226151003745362963928257200370619590565198791478601830660890269668552683222479237027178849272684536621432664104165445846218284521507356701802235133685748449729971260315370774326068410108909367382243131321347255749176245637334963305491673456034411215908856367551458842999736378265227797560931217461464807159192585251853763985694396454195686601931073083155246246887825435406139890863406936551670592432259572932939339136264979286289537767358530371501622515035866161227887717662052116617794409554352372846156620129607437268633027766643661856036995548531486606713776047088819384433853548213522542568207012686769233881529514212282622449032503494046380108655088994523785345571818447276236002580283603612145013717436151057394074881095381051055214039517504685947821526658436846074761526011058577539558353453392181097954824724943506210441984188045600665647713918021175324977549751926638091000591578509212906124476519125604378805097760342482569385687000772416580711532792833627792807063695966652971202957262469978866231184974751101868299684992832570787198448228197185002409333625143511907558251614147834542544669344451655004455406516381571766882004235496551852609979050636069868104475770664672491509959164925403158973047401398139539193974009383147222573216335513453143051594933742386324545781568056468109229109473825905961776237676514432053791859849139629448351117575591986967276762896965406742930808829715217988995752487157419383549580118213129111458394549429398705242844734536457180610774152431166437068083642801985074875284175255572645686546664440400506473128302863156546625481898388067424923284605116014808905981263949881351541001615759753777121691166957962592643228547193978067663831722418329195340696620194022043115037013705528918949186297741012418942741981374459186316709400175843909516058925813675936367867231551640592613725867933265808182701448042438421991362755853541940642316310122341379216819690931809187963450668920516244100872146021139840487391885860129868982185174343282961108940386398994616126479771395897634087143462366698198580581887680704023608017362931803311592574526811404581302007206830350940346614665755654622510486129227230692280004037919088992047308569634489487081306050677212811092055181471321444470617309810939532329591427598595741568138903992055809593250737292900679513870446607644769357184770414704155098889538539154706317643560134793690555487679206551197873756507246146888964518327104983651551451936828686535013244732464656623279232636212070902316007022808178609678247711099207693552749989588721523119042639995955921773665415196619578616350024774499173583461788648589113212334859354667717064252357316927264693629074419481038989968008036334560916567394819193798913722938376358616969617707316056348931542834244861644371883670403328407774009262208730513269604902603934860232679377433880582538673875306614623429650906404826129173442866024822041399514480870352352751988894778525287876380469704960674379755685529241557177898857319161159490516539600496078659143730779756925454360683701426593617923605769514502366552308659949398468092332102285077053120268492732669083631727250730952765289830781471075787249733643281607853026674802362367241593052069456504598136277559215646578940650380919752535606607501059388810692385668406700731489617751607548742431515189484638741278502273469932418300951393265172871444260325449856555516307729404919525193611787259645312939878436720085018601927601322791037830360067231747165037092506434788830594407202813314711901619228363668296813243363290764142588065861378176543177553614022913835544473132500181650259029797495460405482765322652781270612595182747156551273903871641323955897362417722257322380705832475140560173548729909246588612398686151460089707179744311167680100665185962401894936173064645405180263845684596424227485157784678331640626922364091215536548448425055507714296324736317763840476335784006041448405596777732772708582771019026577067251865222171387065937393843378498859731252701646433664071763103296124517999198520645148991907344221988273430452701987850250123152683435031940304955058887698595883995772804847143791344017301205421384669559988887369160670924526844485734742934329565653458097848428467715788116066669654784304762338300377370273926396832166190583766026561891675391314749828302231919007859481824919345453216272186664440926457149967801086945579586053324085734904052470255723140999254247256424389403117518827684355344368887812423912492324134776296112747611033456531939267365898927387929182845471608396385678503603161991208029099586596606342190237624215883341010089054192111740931731090978420339185136550561732627826301833585884676460725112022566041208966012656147177454021680915709817778809288090602931545821932715301920291761149454680833178460777318456857586515785623671074618543078074644538880321242078493288556570928576366587607011844654316132913567891093786250913852813149457740514829224685718126949515761581588510312151548050372675188737090874020044888277704977566575024260335522956588291639128633786516337150719572552082213509776934874744225570393887701229231860219842571795514360598605301059556852148942375876521481694181149805182898274952563107396770236738403499995312503556791818737954950067486626745733523633775498385516258168373044800746640460793296322600174527695621717380364577861291905432182496334279110915539150651203480372611069588540405641688899925677898519095782670821512615513280132531287700166503765363111394747039429361278945904135087175406574443625551747371067800598044898337792057257124871344334963005004487778420133747259169356069898642945613383434327897062024716503556421212950967786534906141398677960656497305469642699554643813996286257562229590961275319777121858087458496740867848460052631114113535885667045455354558661422250953527326281805646893102198384230648407904252072196511666119296706968679167338066537906108263143693046688071757242824888041639716507691207684108361386283704488291285750661657759247542497796918426145771374183498025003694988299962669887367536592233545096129512544534811770056231935637273424011998065655531510594356615454967455372284496248662855990580466592929338081070489057757344704295011731818388371026851262508082183982512710287459207693439984152327268795398471765268804574346159320460039922256558448768118024471419186561242030368379030958729925398640558249258170261765470010691357472987897673187076562738736093928201991108984245984229410777539460618085986613023531571401658701385256416261557687306925375814720460845279562072007608148728018102235747877240558917557334027287280319159261702961535336353168834453148457028391850377847599603415160034377100706585944005960553495211153869863020558441506642718678150589801733296537893177164003578971131934434298333825375197661307030125167898464073511187046708336794467813260275648144692847103178018432980555129397361384410178006437023405091796223263473713039204049410952308793769752784656933568914965424809157380246517710462085450129237386352921281099469035629289382590948367098314486147839021334544930560308235299823710122819087309532768706474400605202087752444737097979813225347726249317380937422326244545246026516496529157794991777440546005915407503280861902460697223390161124252454424345160667802221974370403920133650282595371344835445039823724233515061106858914247448024212548321813188374239459004605202668997333409905091977098738995144045655437805675351983513621845620140559071493876521276368507959471195705016598813607301567697521917840344392754635432759529712457303759628423302379894290674342170486613404912693643134538998502249531532598020022979797114637635704348461090174218272186649101416781358828721564407487122567770337836785706097821534039497134923394368978977329644970319402671263617545569757273969088095849761976560820127017753228143246887162474235428526840282117550457302717320681333545117110348863854923312919985144837940140327539081365573755911203530868730264146514617832425786976821613941099760402752962981177264865020193304472809365912885139347008471931755383967786653094970071196368741158722220776099148852103174107340042073941951737392719238846011111713174332648972581794733310119999729881153704607048339190254345780344715382548279684580778229083106916102506260309867925263934222992965989610245052966506453298839748186626955565539073191828678268277924921592312067704703219030997362553704545257236916638947960833004675569008251041855947026444392030972907783604545260404343445623823477822444865533467178886859527401803426248313123315949021587857701751556550849175597270196864144317568861510682686781162455517172797305061373375398589980822951712942632263077180843798569573287275567367257644469300669577408513959532095760217637656721204269223649490901772736505818004888579294829040483135989863732753992958261905593829552933442451849348018138657403429721191918956707992719991026389988046630041489743255143330889813441182315466533520382651050062773666286494864804380831452828986457320902057592676849346009455663192437411062459653303258114358014452122968105329636041762346761873493557738366179526731954966138040793114247575344185437950615240257638128940746352146918824225695034599619223373428613314135141490739662647889103943679977887232530436801396052167669377189964072391007258589909912565145526538456307144909938648832354323764210842413956465481388621503267063925378632573462639238023662173826689848444459245784789915123771529635700492551085201943337713019151739526801381228090069319957594602542053354907456474097578164115267917842373632842335263154831455935191436855430390917564663042262029470607598230793388967558307560413825961692502263827366389800636906430670979659921296040125884710404517685216558091909118285104412499914837067677171330168482436581628014046332628154876513554739552857220548477590592792229133204379774736093880206477529351099462588159887384193053009150668203462803092188235161680689252606080580084655907658799197193630025852102302032279709129960196683952700712513369158838982428004284288260250851793938138021070577983913383760424187225689220149705877939831318198506599867014436241523167266984162119859094504684993515524257967460140035596404067137938766520498808421687018662562092597493134923940028853029217358269240820825148616679272179178473592600118432466711640444045318230165506081512704232461459565087372468004143123783769534625004209624308004455892461770459042789223315513354932245859013759695688908860563155735345561648677922360032093500944032760426233450395441910488686371113137465340851784431465178905711801903534703023819230095075500244825462080457078758361396447037563368439431580326161673444313821075809015609267967146799858318947324392113533117531194012238900931797135342641668774356820668493717659170919122877171597994729585232064061502883996283037046604401336296479548422914311498386240436525118377009743687738825490437879790492076689528585177274042767859489519106062721245140121914900136928048368608398621965324946200879069672293091248484299213687487993848879703902396679410599191823281635676451776184858677095758648824820953044803269015554089383187181764088236384103599572698015562947489431682906355207824587134427588009578569067521204639628638023813661044875614736560073589614797720968978966420406551893150427295912371065996347097167355250414308665729836143740510980023854397499382759548464305006995488222871706707715870187937117326793990094536902100880787100018823557175346706330062201293577211050608564675543869063867998983085525552237265732630938457783584218200450655288718748608119938589000556028715132189044918588802492284300292132551609842466570597464504338842044690263506853730462438640058248022667895199079447383918226368017060121261352774163121340929202047346393500336274458373569003317637722402720377373639772219853025538852725891763497378695439368059221111135882239661036839035118214342655883167202855976747231707312312218553536731853852616600962039350765185474875849984194392160197686830634109529376371469950570957668479809272914071178480806518773986355700965194892885613587255230227891397160614171129469593682538060723880504212141496691792239931575497606321947168746587100250459288533628607408917617920890891585938974635628239213421164492842399720037772883508285736388546029562512087845457567510326925771285583287761496287106582330212551152035113876657782786145161299633630777982055936300445625796259542188918944386397978772012126563679437669756305059571289308036525550811719006065761778523189506492238284530847773965023283968033332582871191232831685056137374662509852130505887588696693057903846466846123962033648586449828632490361642860005146999369635524602877987275337269046234215263435672564026187107760304472781498590423089252418813941993214825227036110507814477348330609110689627741884642427686529278095016234037119448220743496476116562048866470275808108739355952188656612758770208716663639078703122981473983724439219941154337151221499969224487403780573110970467969801085752476516166805066263309537081341634248149600001598970529037632112868535732668073159935525055601259662683659251164093233587911666673355645516904463192342953518947272425556178894153322845822106520716066886565461952223469078960616204827544220341866834041025539711139513316659344888271074944234106767588593038931484003654165950938761225690769920582682316457558511429512606592676258958026403923417053898150864362804379772191740541338343508400372797048784452620394614252152550107128889047011254982272351270686255826333842748098986106577864873390377552787945675929683016230059737839935627674991076203264378172582610829034978246422347297242164999039465388708654223009814377938522101367202241856519070829260036841337987767352011120923052511010213897980841949677310838441114306820380246236405773574381395953961020397306828536848915834770058303021500711845957645078487348722599777182934099036968438989203483503880231383695382308381978266165850742822423560109406828187309508817712602793727988244686079183372251036278723762955640801696835812219458840774698335972756043540204007270883456669231715235017741823924885944554400061214253871333713685893999384421422331230729782577616930985129837002299856132751908854841335566153196347272733098953209413399070281497919950880851057130540057366687812738256972565493857751881040855960011683640198034326315350873978047224348415574730477355801160490153719033888981154380338982486294074250176578984285819443858643257200350203224517426014351168480678655899532697817018043757307810699423554366313162122126589382241101265896276070821041609573869274341753686955492972368896090981794530000305181751804285555282411224447991977701692357693639837381807921368854939024800491187837947549716772258973750593743232789518107232355330058182281936729501115734173259715357187450313285967434189704001541432824593590347914285090202908866852555425705381981885056354405106186764888834123515341029723483967153842234700582262161213702442897975414419427349697299277930757074520783934467909171716587278619916538117900961166321652498133691612746154695339423234353304522493737286434371728519329828938306920365005725391427453451843017249592044612282287864460036597926866798502994344665643430455999191925271875197598372721237411863151017518068151507086207589988143836615439808111532737762277568363025340249557284511703076235396471997070470301562810422535286386259093078548316575228464329536287706817282785150520514551535375962139677306587863732314142974582940882815218265682215671171798469680096371071027065043031442021791013893665676449666665206589081117175374126021588243892043909879195977826702431452096499452205436701452520523810931501394582184953412308112856201408478770193362714150312233381510180955708721497784826976273606985777129349834570635258420618997964824349628631964646341292988025342891814045493911115916153830871173342036001945156652318546237082914837543301454146865544274016061783782855672535460031481204432138493586865881330272243228680453014487812723187999390222099322828376267537794197981585362145314928168755877274310224697312112465349782394638094511145264391467168994118120650844158930727479047464121457699910489128842413650633505529482054931452310155614759616236796446978343649661971259779636390229837126075307770201799290203727279056028929556284749692040655071587525660941388425664301440021093789163583035459388485934205887983224339333762760545473249619198905159593982634002441435574845580826831323591643752913693440846762164891700683408542679720581829655417104049974319747827949109821520079488781320385268640630388471568051255363826811650365951295729300303540601543401745639945271860726355102066721593067310891113207334896629385808622080823599301760091416596453958546641196494199003980367536298428475259460070891290779281369599241163852347568904644540171412739925863999182302491502870711924775271075675763162208815859220669415101741275960717261223141987369282633530058320160575451004970512123585070181986924872546563551794328703619150375034767927845843809006280202316040530779562408788560927881253095789736300290091816180385285644999818537514644020687841494204392704817721844649369191056217376929038087023176312231442856074861492271951203944928967092085873134213503822404816706075005603436426964724567163287854408753369503855184268956649398655785807333790621688320513688679770178427911497872410032006325600640969711959254181037411115137136915438948121927844771436788753099962854294566036696073823583891884685265972392690815736411365772766289771447794544035690852709235968353382250224896113723307051231890653552180555289173233019871202246050202512815913080133017972445832031106970643337628033410564832233385167080369913695374924712317562347816899093870101301390260805844570827395634373961802064955691518227393681170151360578540944253367264852561511276159271930682038668247142778425079665536929902224777290282799797698298877397137511222636669828056751371296384751243439888377209788206071458599226502203031651216423623883765925290556358197137052697529612274080757931228243650190056930392962214402285658097427802170864202854692685653331956384066221865018094733045782051709818287439398019262268999128438899013215867458250752917398495205544826324536139348315562455899194546573127546844471838906154007837041056871139391226019844000080205935936421467370086590564284151557635645672126710611736403268039878783886109637748047834064178831739419485213667101952637688840148819054013981151216379510879960385615947255858321214392075810269529938501091134615804665557726579913085793062063082062090288128831554479551813488113139150366414253198774863593411453627756420196109516753435158529881236685106205560455597966491625551880550257754458204902927752007960023771222149071690745198802814573737672415467055868228196965782277569202682069123664585645901527382756286308216361873847726602923488731540966507563327239547120222452220123816453034937011448430802816499895252009396022192912706941813546765553274339049522620486679598017672616605233422609626996646252707532849672213899561574327946214456667012137596260555245369144093350588236722960645523638482881569293882578253417827765840480261287487467448158422484463670978757273063609689869625206373779893413827445811317052061533199261069535262297725153665217153007175418569745269911474331862080222774640800632015720658823740220150064326422839106502327672859136529063046725645771007294293752523215406013084548816950376921407368639564240607935715508267028771187907512404603497032985802808401040151394069659234306521650379273882827059520765846571630337053796476599218130360582564285805088849466413715532716006109606286339303325460696334135754276449887567094345287981185108602918554699231175540402418346384951705594473755400715625579104011517388856762025789588050470592076722846794978537436038794025530395725702810125867029338611212458898331662927736893289958564773745471286430646961545337869334224656076266902990302917170323369295263235300604074838648017511502766259488887199663013830746603327872555669675157877458685704039887660461424171611607831203140760216872256021550945170100727821465859715913449895016060766870515705447500942159209182696006529132441361266848841554973102319978596643751543417072844320985912428267671659913991879296288648148870246537011978696494822789638875398905390425726854593823702354397568891286187509410235436741192007237109376880843918202750254195902462812103768166387516023933066892858447549150691438985224285262453067838444741223793015365193994084180888168578313031658424150522159183802131539917378326881692135426751186429370827999022497965871363097504259347702452524665651753278895234371054962721999045785740795395866911080383420089461023283080526776655953827792979621516772790129202602242943742580232098938287787234017990737939476825491300712405914954261364997876408297413479299797152831122631359212645856619005745028676110548809598490044940771763691911728831231562731958817812607673159633163040926088655209820357975176795982102881559999287967840161398494985406447684683596327719228391024083999577425550836668115230934995208704956924459726554077567681315181121067006905109760360841367942151165668890516102211741434931240023607556878010202145340367566340797124290181450368250918872027424686678177808493027549746761870848900853025329694288541794660350523465468171772231292018548646071822790961197539252087206181782254892773777630350698374200526941220394461280893310167742495066441760730297282558320636390024110067198700045338970595261897764664341751478422202793974481244924331189211119698851653935735741163794549494288387620057755071229666111600907455057337493263471693763301869469018457252808439240609999319372706347060370729812170298706099707093459690323686295237071876495979691977544220854991862014466833777345322485677791674639548968525839880327365302019626958531328291649489835408785647183750622609634497400207057924065121446724923717662718073728394349777531774900844752247037018667326392011206735032744554684616513188530543423675911224200171003003151473948689007298002944869572057317538792105303906962244222570055967039907550341994286713578325121318527197426302604917576998249295923195217433323056928502537414347863100662925452042252484337904224931447664386745559750436903361118781853214303235125408245584448017424159379094643884480204337958435845075569179636336605207778110445087412945897467038841149364484185276679670008977916288601649371525564777876375611668521650862685190477842125515875463475462984767394683894920279087997967536871799607275066670297345182022423119033630376960126576526047688217204861560382075076893433303239629448861273556543314807296395438969298040995274836518928207882486836376802595598928403018284197441655889802657226170596369292135243381992350982330277955820740206233248695989923366309561425137716260160445780879244515022779537049042483618198033856379186559815756262444199309190787045821107675075894036757677000845009707085345533099162518679478140461204254155076214366518289055487935481732033846659112156818529738618916218453442364101104892422263661176721798080382856398557084763445771984105751834105958163103472748583305744186919748313720518969073131271177966010512802115603949636964663249031083761162614012184357996982778084526940226696658825682402649045985818621041816043223120504854999108906322592893451568840017616634432056708950738677043839257280701120475378026559572313916816103136462582889004854503366013936591189897906176416382804627618343033541485605077437068815244356088484041408552008330330172817247371403370876973183608099561725231298656588959188015972718940033769295348294537010862018252014340943809815983288239709580970125650687991068652990913939840466355331880197958800161162009174073274210878300960169256070974087879756932457497740715621714822679901968268058752328276696178819957125770701288296060869835776061171080885416912430261575189758056907670005028589709535521271386636063417199466150521514733645416948578963723350370398810201780400459766797659261342077499332611059466026306765416230182840344533565700401173311810581501244900928867517953706416831647872511828030796968991797771761486372184907805289121133387688638387550725806028629212351801564774345330604034441426341703495557181060758267668638561019825851419764397577465615675494598990933439302591914346409429878519309311351100381458632401135416725450800884281686399613110701066405744310875977975470111183045093678692534111153059217012255699425752796367628287570595807710199638761251745737858100519257004469452381767440165920103610775545594618176734431584777304849125556132428589404189992642636515536535094069318987582950886305619953470632338652989858657879999154589009413906742041920380548440265811384115377868673956102214493347216770371858632806120205092430728101942068752102797868221331288023445925923210599948951398492890055086225633661272839960279881494228573912963036088916245898699331560232316449136332980676382397682917001975937503040647623490050750621269838355391832091011289775013546903040390305837405632625578031340978069228901220642188092602438213100331393062505645184610591282737578242383755020468516451240531033628402754511778794978094035838974203858198772694930844380434674427768710859648913132893340676001716905139222450124900948346654216029592163278204067607669641443578259289504238000417261537319169565097606996471336788768098660362688027681486094922079834869989111182350816420352798012225861388191031598395829401458727533795622255733591654066055463128396161906605005670023868600866204644159722358819530044169160818724635964901891838409376337622732173495644900246498608979300348736130862574409421806164726617391340619685010469142617925890578021838359220264866945741405361247654766825541783077507462492200862197980633230905059872962328747195886086799853658695147243397145227309807186906491192333536724949309811577242617743638863323317560157803518490059909490066106955712488521746293537108168458637826986640891962773047053258658284250034915992504897006577104809277629287872299779682769082641905960272172128494646429338285743719955799471894774341904101771925249144986968621506742707668102293503803832288789938230916704366762859703370762226301964800084451509693815172697639816425437610275192662761187809061070489761158608967683723881784007390123511088768638555128563052104590569978400188380368886882851599925888968362745520702088824570236501576035492832806648244660480059425335489713509921483438272829889020527519526553277678130867457031591851723040457176788551918623528017673133075395327711615221792381716373465295666696581024492493780448906985685637960414506572451362289276577050961012235721730492820834674000015505634922103110988801536669880984211983843105416201486283052246982065911828035291422634647116463611751602733710480417361356046059004731430026481696313439931652099109697486707492374045862661660425855384087595255895295748604776621984251422869238725334473018119164088442218418956481550529173670073086633638212826473869081295393560314607650015530978482746498898818484970977598245261551238853815319928604144927574469936457425461494707331516738491362366481750238811292392617018489205534540370677610890642877808647344539789014927891917994042009074772752757875451349885278500856541807712610790116193471023255917049919362214525564808940329239788353573413853412326220518950267449431862497033489854898803476951376321279375469044398129449117832078849229191897692737148041158120482505428623735358271386191414517637157934132754751909675749172686475782139773424783232315623372635538411579480803724729213660147793115167093516770954007016017797492477114750267887740223667260475132751811267805742074442419200401076774433145988167912879772854040012509580533779539629136732568224336960493566278064818236999001130821976958855112290647398720242694633167084697258371164883289146050135609233943539414521864865592009569725207889724314387181578161642079520464786861658469194410987485841436655606088278577000323468395970315539105930076083479359786532029465723852435204098823202897856405529657308428264060781545879042359752000516691813817356008740986841902700357454726959803905598373551256547811051928278879686713052959644736659360106668170388164216745368499877835760993392438184382550207214700062294721813985702459704931356628141728969287881486750686941166350615533187486645066065064143477397112817197890914117167478801114543256089759345525123099409973584961988091910631844511918822121293942330356695661102083150953783927545119113785006177157279638276857349020519786197745958011923176669982210902781805706195416882215719906265193373136454146765665233295362444406712397131723725982715909336042504605092054038436882198224453937298567012372265396225629338805296143797217369151770780000949443430448209473019698400058781091746601981279787668630628462997678286942818633222096100511831289094116233650947353863676738790447468514498897582617715468106213719345541986065595476625833471256489110363426003618474087912787746304687592290811640778152316341501631701090958118761059449929561253642382604730776809795272840968445258234230233001421355896755480216333520599720989778608491011548596750888185483257487949746060196218468973251459737053656742503187022421972785320364378347512628233060671445832144344036086748717640547227663952779275621824669751008555295741745820074829020335937720488288658872251768430920990434248116556060089355332163464716129038738947510179615120858502736836020238626117681575099767633582820619468697750049434751046654696174630492876205038845816186511788423515757423108237172546906477138736036718743182415117195434459412662856374365249117600804960213176728528812913823228080824196486932805349252855550751958233577860169394766116948085162231798340855231493467571462332070323403161192224508460281493565365149988148110277298952938187437205931954058094286913244227584050846901318500975240581912338139036010935266824129908917090290047132646046712112455565049853590277174949104746705999676419616549652522580223341772795636752692698919691031029872514023643035774227957895961906900761246317988051513687361308902357521963440613840401280780880924177914828151716622996753364948170210671504113054664522460575085482406295622387852910347747349674180138007058461689628317585365845087170968484620620320931799113856940688008980818662970849011922216319754530784491275295760373705550313720021946461286260099149326466826016145051950828511557377592372620138064610348038822143728504701288602975257598862461367936807285748593180699061259249083455301341289789241655325139209065305677025922862674187494676794319264598321447487413793138419177387877496352974021886309409747365062531374380053192842273013199727759017819108017728385293811061940465349854576867817103529207608774541021950269702118253334198923443257791251563732621264449593696738507032844004872584716993249124350215313673906210971747052970641183677960168371101753259071730710047889097918545090523785688659616440729468530345122339791175804536558644438139814045456041387714300131902672971805115330067968273996984021491890630775348794981065804056789725561114841186310699244620838003587764481030486316371542865505345719997661071312539015298223021122735544839845016019361742134945434044531785356358853969123262922452633021772105898440586153509887975050004744532052174682192769144659532045066804182378368925807970818015632338126823181308667465539290028482100390090751644972209897276666492861136747782041133844844154731228738253048130035055037371994783829516005461885846117567558900934689627791769163221447385622707596653533219926990973543168769787522830576170534922697253263662076017004415980980821594816668083632465935286906988717891803233411947734122178103246899308827722363918162790735682708219288671417685503577232597016545271107859104021454034976300198875840580590826742027106501602677352207405139500776381211569063006861636246668289424348123065358521353214721021812861067546208593400376289636156647769863566438783649742353920790628202430593629179180251063860781495305047673931515539048232881680034796148277393339047098952182049202819293482518930511246157762842847188167611896892681157219590624511574982847580340541979933119484742953491035837561649346753488960254456864587151002225910162644505134967431402433381883158517312377480891711479813343919406381058882638445108856019610971162392474989030158172010653236087657982137363735651595647797878742911463106914191695328152558700581887079333003200465113727283103337918928344683916763991208968012233331942296787515236762884183430509113627000432768361472353701706986909340650430247993089388135292523926139094043900944518558344000361917946732225481954157587609873904382427729943395916086572638510263938031271965517891231023060250608921691956132262564214526306820263302378022073178662564645128800224930761561595108655677264679127122028300754776954157280986843311718924883100590885384299274001172227542831976602539449258951702164377017215360110472130715754700205286033374983946881352949878236210096854469834563194299352262226706735057785801552390638874483943006813299393345372331314898146549614078872559688806374003432730855859321465044286916161079790318657882153143375028512865032856059897287550541058820854725223216380082343731030310607488171235308227519269014393934057133023902857466342328600551574151685730012567695614776488759076811160814075397489045255781234096462631430121265343509172116171953953292181801534158586695404357508495265613019724804173631958912647339797421734812213881403395905617841928888358538719395547544514665067548104678804201751346159862746642384374936072322448591291760755836548470887192548858811610427897492638924340778104776244180039712118388031578391773442720214305417546553603368197998712901048446805751041084597509526701847557448766006843431071150844059011926776817620289243261905832458869378575689351590855148107831098446649106399121430294822681992977578720719743971414564857108321177148680801208698567072846767382675528807865152404359916676667396564446977884567109305665934594982761576308396594637791471680011437649485513181448718568259725545911625987393952241610957959786952750522762657306343758164413710638202759770705341645288739446963350470652777822066983781344471398891023115479961610985883587906829275724771704016381667652292694478216223868823149520564421039940140586908583099929291027976445777681257423469956508463794788447166687636187445646007628191538883934225138492837319571422114700572619082251557615271327300946227040991946011483314433031391511182555643624360117620336681531269235756942624184739514029001471141611834208175149927958954020995842675503961260478963761201231683614745501391931560438892830440615782292253517545861053065378952114883336645139247709135349716718408344607574375923611223844545039382974105743333662768819307281050230124486362048688686912875757188908778647454481431868211273067964807960144250970764704864754057029955372648991041921802746316605126906877712359915944324876520950340076677802493962209741916687190649764643862029109013330047773036702862844337591917461679790092621895866236038720394354766597929760148847487736409149927249503016273738847381168231042200168498780595304136209758212990813838019620024735610093125140225695123579350744511560749863364297597774713040575316381949097666302485803762756637626953617077944071893872770282109600968318853634956533547592693713529375688199595291677836580524119764985216773639688056240435572465115109962792258576553618473507565780576919610271426988875637729088883534785901921024286058581949049792032786530343843440244891182085050943203225943318459601965283687292723203619975857583146423893709178512239455981319486434300032679845290964045970267666319923124731749208898993761289192959456098684845337619157739816563611315974511278528842928145042949674886380138511604870833928921780925176135954848300475228022657898884123041636013887854539445896150159972503743135184751667289843225868079008962907231476525747758814580518258945610259414717166311040481228347278001558396706971747943721787168626052627934612016836621893308066695956443573999263512827006269971567422138136332273320412022476162009686644710796449048678780899449701219531553506528944132559586539115455282172141254988302643277393638093491660488574670743547925794257436539890662872743656655298287070128418821575462310625459196621463692895625830346222009613615759762275665370690946402631262824719019363268163210787085888238955052203393554662338372478848427844053761413465637329588565102037229629431754671596431435690141075937294663039787943184927177451312760913864209046578491932677956691169550565719414664212455119964393979011085222054771928798331358747892528383418642372897235886488911802348895480090328292762222505840913212791102673874931774599752084106510970768072317474203351781485731353163521568932594268467856259788021228239983996679834554946217584912216517699355352419239833198921419921847034178509089858909342150050722052397024977035965468599144075312420068724903523300729327703561337464099790383923515420019665992511147245144785812517286562356417845378209229662360070288387926462929614518942474325314925193341122811264852898861600052910633389384317861004628506250448125007464599437595625455205334725460515541295027489667217848859519339104059341625794130657512266582201704055179061993708518502598197332901384703750288002595274484231201433650333282988812906301613427739379241106953397857612492318901894703668900472789515778873970648397988454614594418574325032310320542560908123241611678267903332917246682835573150831963997761397142232157767953159731721252243437067734589913112526785628453237917979874192059084817925345806314099245147331525595949233337387736863072085527962568605009951106024002663451227672214800757993472903113826264620656768001400897100595842309409418646679531268904805239826239606817502450696432005044958385012600548652342493790616503495838325081684827111033936705557494153661085212804254156766729337059469316584240252122020764053717071297997613399558995040833278760504345079320628018841164897091551741894972860225457809871919444866247983787990371669923737023183975616875271305285177386979016637801704397283450223944815578028308630599692272129994363010398370211484565585402419640992992534114994716689086921142789804136289568433516557194792854294140858141534334210985111410251036835020692676394584203563171637783265835510221472642733493714621262768490104142890913382006186285815226048969432775076306664921350228662743060718895367243594775286114022584300467718550495957159405903956560610362383844028883193751341574074779762332865021631764624798298949514844560556724927581912563017809126086654572029952407042479722531852195590389075003528554824845974883243569222909526141005027922721192199395582369994065457953300742261001399683796709712035537873682399466668007856836189135887501021097948928364676163328355884386270123349193131355390671338705699603496317498435278807327310103158335625996874761372850600651765025513252497526569707194898875190580859629398167613369824631607918689956226488912169195860009967814373932782086162240821247990155220109421673940447805063617219830207279804964934076951848570606971462122474480519378310269913298540530174517861066027320486498683886626391127757218279550020696553876105591317587105878707632243427355870024729446599137801829619354794158520977147290212160738366516252538621010604294711578836681537169908557635064490776618879953859121998523848176103695418850383386639069895264727577467127132788681575518540123286451461163212091783871295311502801317740676582466758182122270942827882825564966191429892494785585077319177613551579549458157570082772020943379276702820817323889478062032996161635350871302937630966104621677046076200726435260749725245062769827923334595835293711459692052648711458412672069446364391770529164612551377409096590482369555159524760843205751041809876528954813832300073038073999860484209114975936426534270105471928564591137357789710820092491975347463573582536304011549066264929785399120634994614623881646085501192239287306222677429692261134212990152409099378408638068853778266326268875161916677695109547560818149302078704674654670151377968620970305831062674148741480926612562365287818153283850142524000868797784495334755126229262382359592044766917322436313821317787296280371708589765283407366620921543640259707510941626427984513894058356021416756995294137548275105636844399223909775062178608231491259306792126072445897768172699622317735426089596262523467223034000409472025904903006479739171054224287430858418084543408690049791420120021845922966074142638970258388864414361662143776938465482497443215878804461988994847415681850649731344889882744806902049023761238581424915210570893230990214289336794308057499176056288310332093690099787151602668938021833293557985654062749579197752500581904791195124247550208441401079524583363007377956562418787334606423863902660888492043463663842435008048583121629676787681849945493650085373119518104898764029376343580387430173142805403699086841362327933606874534325848450479616391734884277878939449602976235264148716789781077499625239083439927181496048797810798548152023560096804213888343966062282351044652057580175998233006936492329992632391250816862832775550177242287021143750403117045480434904402066835580915146271942696548255317915751222907001748043423359754608523049956027391354313485301612298016492352224295048162700761458503205521883989956682620809241175638413496382603942487626017314540780431744656850852265247130565408581838073254197427986671754346940202827696466426165304021299641952812071626267078931170977605011344963410651257969944679959168224586371462742199108030291154056086166980810024096981654354610953633456264246067689953781133027099571938697195944307970927392127751120829097011999881580173681728331582832078413457820536827738409190545344281570431404960825762375422779602108870548423544112491214541947878004607761088706547541816976925570329653738854974499571918001781803666225217411349459649948341749361277461779951055313591149154311337275430977332122729610079238214503278294120259124277920340314463359730762009409673800331021436247010772731750984384802529807963790742694295851802835887321440556944409571575063903807709975128469875420216153006156327678918898597447848304258857316436837540511013061746031589646102200090843545596835743291139586096898954722634438776901057898315080375490823203050343251180083983133191018793373501409926521354266626464221794491040782944819590903768279885973823280311525746732518591137634877551569537332367659451475728395757969222536513498749803965273594197186875306946594578981091265121588608969718195763582251768572411657476237391088885584098963449191145034484799411318865287181611265906781145173963646042039922709108622486504018081860579186649151936904462944158856153900102560927381051288747108323328813898344824393794741941959245504047203785425414844924862405915592990407003117898486705294240107371584452292111122433571458796928797228162102303952250134832913471425115491735186632656762244213501687755631972091693405585482471514754600702409753070814699824031590028867341098090515153621456275401167539203444051840754892044267958924095639908056458230818191098899245900812247830274165315006884839410337009671129967928632072693040222143232687249526640240745289447421130540560995247024035167682190425981452059718893178093584312515545837939949036798382989657505203604165477975115783316605198681626809958610097004634745816617268838628678513758188934266535169548476355012028296156843763975244432008525597814936074961734652449424666781106778029655886804433068033271336333629267993818319077081442294619337646558633025761542110108534564378611419908944350249826374704897100977763364466939177789049370176783508738167978710702035251104675806915361922322897149659549809924127834432685991401950164456911107029931976148532143564038447959759724779817014230109610746703327760436267055274902478862901725535157927761544987849045327941900211538297959062965980494980803479791965863118241002447474683944643162756218855954839844110937382372223376616406860873915988790403373241388398660582106321718859463149028140178821251604317473096283524554430862446619757087318185189387155945248693225714245345773337989256141016141676941131870670748375685081701147133974173734057181117014195919986949092522938840645627061604780342696220798269560638265045399125595372486920905601612087270490834968805919698797363807975249503185186541187008662208900123926764858042292390130006544847744557443495345847412692012609821431038553381136774596221627003423412992672241016554420461598987118788049122249074576979729195983209764305958493524807902066260002915763235955007054592747887386732626601181099739374705408162103767591349107920250067030522386063134611712819564941476851421714810240336802899402622031961980324746064887933340251966462208122161018220056400052626916402365166177093967082033018560884192285155401919602534097079388565442322474406759286186906707298591883157811073740328649324230993470007586713097460279482344893084023062219985701697759349947658612529394591409319855369025884059817010589197509263268780911074871945044793028393648571381846518213395631637324318548910365165514443239769130467372201755192518112488722440179318205093873697233527986431576469157040526861516682718314278138161402268021453966823508382499278590152512457568055777414681601810653138773252852413207811908030483563876021121349851055174480892761454916167790193625848814765741340454229144994831501338588648590428344271650459057208931335422696858897484314401800957410159763467785256949101254813408307916163350621836528504800730913283362278923029433759719480125029665933500859622681552666561423425486037887707611440665707480901219571966735420666571897760742405036976739237473138239799923642940781396015125636503654801884052602160478754801974690819469124068914692506505654741237210304952426408522523797339901809106746244103907142988684886212076864625964657945842677582885221967337818979686917874692970238918250743131200429301338705191968760491061611838408624379040058645066821006867581495501990833815106349944747896416540330746812694205575245239130510716053159086616551055662805792386244029161129173985424022337882745174133145235033046874149464688522198583300162938296788305000205521149172266820276825329138721480427193697873290903885432678846288447265072362110641192497566731276713633835816086406773375246777435556008810433044730452167835932114242624898605035344744412831853454860784018910482954982567352318995595653893580712155155224557214512167581267318162843106468022624323264724888461330809542727923364476434932395960448013113833022382639450423542472928094051870555648633763989643368247885283254097338319268869354068724397820907363539839257611264027571813890366004873374345997053452012304152993477556383609659060955849344476137202802056006902989126521235213315432747039302479099397740817057126235753172364802221188303647925797803796431796411312747219182897023940151179770964046269844602017421374626416338039415368124504427766132951580731603348789666275105868962571959483551858972086206104766416980532325417196361979667987552481639297455522411467291398426522276524458771398904798925062939149339386700288608024478279143028209929469784234504231382276410986845092791146252822442524183421543002591770578779621992678322942074892120060271158028387217426145622548641829642845236654168146995452614691977295864683141422706337700158685376839669109603602746704344700708004816894566859368861070527382011587403269440903752646443697761863587506667613139426000101672401903463255136649244688342393649277168979846216556990235934888854970712747645732310601163324916195436127837055750821734904317443463357837330971975187943408412374099987397249900087344499514009476258089048570860314659398884959130685536572994370531139110563447956049534731612873555065396703357872176279091744845435096282386332785805971727815395283036934903734836196382273560040699712594816907011887076116305393958057793572776435564411455234598198541463254716755522209249602953724555089301970523708281104220502585628589944835391537348876551857607542665631760580483583232241824075484803059619832544239124295210451030158461294095974683810002614019055769454512514395226680591476733532666701964860129191508849687348629719446595815608551013187838263808408746093320082611464375709054778458724840591060038646085865474181095994659097079025053034401889278497525316093708749557361644382191204449718517952379721446249863571534841427596201237894023546034479100874790752786923098734521817364947709398563623615326396223288646765879485177909430387438938483948794476691394754300999017465756971884881880857529506026469031067890999382746373998467906404345639410501493518060504816568824411059855697906895363323887574901953302582090483957835240306755403441277168264153850888330604594837404748872337905880254385882108336684370791696768902909949424303183476388506303127179718718520280896342339470812472978468856464761048078220079901246057416954955959118366887248225828356855603319547202298485744394191685430270335957709133104303577017924756529437463640358051538817921899509324271166350106439082540074236232670835254885356278069816567915620428978568535492760770871398002695022979858967140635611636635770793823372075945539350222395577495291691448312996050665674475386659485092734671717327635216823255370451568181223236480450256825176466432735618307810663203669935325001642496464063021380276130219528310522535521406342246631282425859709710668840645207847152410739657146711714312137740169646065490657429793756011981066172477252679195976436075290927978117155793786125220671107292698576349143957771800089313187230144341100590497869589330940365367765802882255400729713768861351217829716838856712249304289349308440535697496205961703122093177118370450112113034178318408328485743635061184205965095421975046383313303195007283656364232479020431977297002941906860002808864020248137305219937142175398039497450657304299432700427472274460970651018109515195814852057794258287301227134854615168433494053320759055180938406528696798225334718010613034526099140838051626731923379428643214477549843703311921588108015715206920750374578425413050978777930886868204299152264082778094863622519690220063110596039236372454730644659267623805546989991972389204022830962956888907014639126901020746875438755640238066296328514524468314493389550884463500823905167433122319933310418566036117851496299440425362327584258088200311055254267063156053222975064986823335848726723708281151254887424229313309066745847814669923784637910904581595749108264893778106215464876232067305866062808371248017627785414290871613156236866720833907455967007065914055614718861133327041864169965886036822468570045933946190311607798242117933023337347116882690396932500015168722754321396364255048901789089747739089645457543097962484879151942105816717204851285862315195921414276870824155780003304955559841369914091735794046358890606491387129336841830217775655249619027151269027395000465473454693972902823439287043831521584963297143739605607311826244250506556128448882606084977321163053637082080796105010647026043672751129467308783232037655734396911602375962891153644387360131020249429598099381515563814636343190840121591557298516476021489733240734321610102921850544979417784671687434746999734520889103034138109741247208361476150884334241185042184784775482490333874735414921769934460415302109347053700598263227397183142924872469793046500807795478834430257243667672452590648591356771349930899270090851211893333681332587496050056606671936639767170287774940955656393651666827877923395255097408345517775836648458874154991412012050592036283835458066145114721635027661640661153470867297023043500975935087511342611191406577335553296068844342176577305018542599989734651962200213334967892207057777155601039125365382749060690414177911659463339549588458577949809609157639370773132703451353510393186905503339637006979913903861031869786210517972415739761509339496409412555133506628687033845951390185271234309617408775879218916346543562695116339495588553836518245345652860387491450774486533691080115912384975887279941025062576129129558579416798576613074457307953630833768532966115654825055727876102481205628436846013247665850456754295461843237351999086492689601944060075332016316797229394083115836827538667318676292254075620801761908737704699188827791222822819892160647412260956738425349707158784624016760395992835146307343976748748282541874238817191031411955269437165900897513267306255101605932186194650010328533408273722482768310148009468271896743913490308062847237524630262856194403393841265333613827707148063249758638785245921535957112007556385901762619369144483515038772033186664589462339872956796181122390499626110712922824617520631015731466711088042728938939727589289198879610219016524960004834561170827375659340104031052179031077199863000662461018918091545753280717365762599882825113914880005774508659361564011790897042872089631397604502420876804746160924349229238238609809303510359874344142491642756578870747397104664474796567576256667087554252593495347495697645981205293425686200284150577974128404074368861876050952203180149948733622859784319306328030164723250683231440224020829832738500931978289891303792626122934338906079571115488414223129163552334824048307541529164288841400708823857500055340901806994869850014753813870726329288365756422375625852582279380695303675701703270351651372039930676986793506406280057467687556324535462969183935008524130252346817503174082737205885300620288252691201457017695971923714563571860604989839304203623611384458997115998627129302019488243840576554391375372389112278012773573891503324635198155038304365541022845218388325027894679711827169801718119035263430944804277713280052356636281814968610587712575705745029295794581843177295706253456084345407914166792788780674644803131852445190214181339725883873898046121057677562646211309343399550066910637392609182672988563322851195857906526483094707593481129741880457177235003523538480559899539745369291264267479957994678485993332941245965790978769335942097881542432561020741031714109699932643243033156446314226651970766932028281630953514631395014054528388620242156836032194965884872108258190653976380417575004237430812172640288510170511182500743324726791191623222192810347017054207675282786943856187597371511555448210623207906155804713227280250570615581131379683998772165879717454820457156918922582494689592776509282368781233208285909826710315651417501308219206432936236601102124944933828617764613249266340943245023008242844882138995405737698114046220386918810422388503251388713909546769620454019246024089359568658589258983405783918925572672714603987036148579076124354352371275629645327208859656860515727634760250771720697446999102270889979943069696919788971829267906113801818832219038326322479504797896639236484014249820665038128927247547001066677865823314496458297996397067315602509749335310358577459804675994463691687819259429213518110603276212930803108643949756140117589048841647705999113682952943473120460424725833824401144419748510336580444937016832861034666672174858099277340963308480810300173862322077492818282465518289917684518450050176196360372805587598400585581564572232202327040814686802303150448902439903070287178195818604256515849860062529393591584244076702681985579391286799670546524415393583258031524987375412980399080826608846636937792137660241256753639337226195336785844631435959154667570307978638936671550706257031450666536593523527707423265824485433134537148371444783490733914493988876509028837172210573545902578229947272374695229046254202677428855094161367850164740024220527452581163055571721636488378851983848730306871875372905795812362289949889648703560244052556494689961399408384030389860510978647655862473076478936897093767974989324220773034177720786455425589967588898335064050316743551260406404791413529713663726572255293097327514602819764373296508750060335204056612897163163271338756636887384379905307540313015854594088452311572418486274486693785236634833571315787007436928482101795007864067858930448863451066833835352181590480933232964287645975292195267957607726152067561715992063134078240377082748003889090440201221569788784138122669094716975842032610756281049011703575614939786383576847272040521688262714123768944435774513042991599328215762896362474196696975190259809005417792914258074272497889389429750845042044484281327428203676267332776742719468178345372838093659691069699950837264780317058440559723109586180324319505808736360326184324965334871169506009162687074552177168298839443806468817343189055182291484182496929561956785620447544894331888367117720692319760929381480722915081163507779954287331651886849822743552974158236957168099500755213839284999736526423926669595574339477239590232526685005943357821464861939875077461142961805780688964248146649808814540274987277989717303576970256464785586305261379276069433844443542471419709065238291436197662230858905845987382409688179910130244454313305169770390571114490265848574394223007931687315022809087460919637399925239638682208257543321862130222737784735908337764885160102684214355806713140362175261154395833100132067452823322850303863834518370984780038549549443151229703874940752707286142223141952653108109683765783581957957115829531528058403692256745817841987924074769900824926027699445653782367062673180297127332833212291925289810436590911450131184984222684780745097273023479519704800161138627489087235764537500645691769594785797279034995884707926207545622218603171030328022995253505703307269082757815267157226471154668880773858846739922724052392759183411564610994630324622276600036429839194034792350509258321237165450316729053425215207477701177507520139814174113163486939079266743818874108158000379058339952088060653412930515553377538051748992419067995913873829915436392118437764432350127001445478943135057113862831092914435984019391936755975561807855838126691492839949936269732563980430503498427102337760527019696813612763100408164029400037790751351211438340384769655063783078026978946466342461665254296955299500248249589701493126597238822374930427801035550786574104177198802027570682055916679149477192579347261578284289387266369500475854732151817117997855791011114853949276053381706029006176121704852199306218065266063952556592847418002137774277437560619978072576640777817887278409398109917323178555549264068197104714010369947193186118590926426981148841958919098721695558774623114232934477867100272743489556703749397166886302735447993386912880366336114113532216644070408542598947212097017483078499427403506606017418820115642405564903601925795839750488687375207582796613148806373982270386795436437859920647532745455743841983754660643786194665936800591435036357583848295424669609587873827237969042151923417218183582312466695811157954464488663609898448647503765107044717909747057123233911876683052257424541645107410132530549005984838477769132216788022128702365028595314636321892312871750674363659336370989898297812264445529277788574438049623175149760745179548700765728717396688708868189092787488637876365646755764307279333115712381529716870052762175974229271322402852991765154965108068199636511848444985546068047481996432674882167315656592386567374939470153376767465451203727589421636322852856332188553399386526673394521299411401400644833342621786958658771831183727239505667701846473881717132060117391276814722650809458247057546543760206348933448809903115285433951228584506650347151735051445587252599949806695588674941372200313547938308183538439069277895895405062841092307036324994348171094665300855787089387047682611986564310457658636218822801954768290600846417975982408296244397225476065967634533445170429274502877546768058298601116549099495277835881391384616321208770463306985525523405162663594933771965543177505685832797059903464581366005355102267976473168584500489023170578451269829470975208507270475740453260453627708305403740664583583284586585406568600786350772929746250188387886159754982754306493163477731883347685388235386495511717317564488596061243175606680290511545640100132420269120565500817002036529208763363956161598784884078895056250395697402335967171422325351968310276499617690097410310814520907137467243712038787090584822404375357086789658000867444948814121003368503629981852539135709837629209793286542316350073922285094176496531332031064801405878190272704645537307158602363355469834745712712326072762771761648914095615873644250622481722098460939204950650876271286035668076529157863009217030949677749419607202200963677505701390158955915376165752540555456768149709762234848898207983560051388712849330394058547285651505172851494654641942094748926142927266932427706733388251190031878553610725470682025348201789350858077265513908912905561682983531546442017236377880778410734976143072324461134716096754210101699435463423063608381275839675126819295069890743593440671040438221820007698458791972219150112991271691204450164863205042660364430545910718829686144879925371999953262888121484020102754407498777311364223716254172891661008017300960945599035899750751514587158204840770734724454515000651212969383642206862084315148604962723198682124065128765243720475712777866224213363289422033326041752977178418478459876106094637414883156070622440983832596112425020606441407996049850548855659857101713168327307471110779147689680255346481339492692423809564796070662475732122735395338562848642905065417307683081456276498329287472754784854100598322233644043599895328477840661754362971950390292823515330574116649905179775118862991204116018671598948283106092548402631408983644242748859804324941678798069948821844510816606167285494926071330039074694789038784056336686333348761547673592065508993802192730585492248158198329980447904230730593326323228150126813901899052464770834800349480003504025263545428943070565251560890664712466653115857895031682847100335184895495625136119836937394957878401714045031416763618248164309184155403388460509958081706635945676335552623987911013088125587480236791075553058127470833577981332472537605073567721794337125628139182358351897762210660465379144506594244645624427394711790482074533669035984428828164299820059560452017927924212791473347976686341572514996489999455146996997794462194325831536053411930584743132346452173137026004774127507797958791558026194621907519755361821880063643505306895208585901625832113178028723654913170927546572619828139855193425410916292013168777552406361034797678328239988652351463435673965386543978610843579457883433885664818719821149967042375194644256600729508291153748471228314908184976288087679359091530008593228054635291063305598661688850426312433172670222748985518447405949099634844032593626091217989965161946310922553549673014427171646224916706906175344724466557251656889152029845320638678122819295264554669783371156451554431888937159825153836494070847623900605674194276098954194984526212085968806932993527276575658658564639521592540141898230140274898380047206472522926028723651061942581948223805251798624311512443376774274301926449947276097944497487362119985216766143786838663347404857123424259703733190546783056481540558283539661009149510921387580765385327283716985746181246355635757354124081174029564580874593511229232426132345430820750735045966202911931450192898234584829519529906013068072454535726753180876600743433663968994133882372437426923753618856559366928043463589450473117514602562975006381431664191539873067702788433920813598941848671633588642548949021192533516848681208877653147163646734679615575416402521626815535338650823263277665402950388557422138110658646850907935033319861227931138364048719849888858956056176739067864013576576088629917155431746589575920780622933804123677362769725390027804892160786720906597114121816876636247404793499494937103687079711421005064697096320013514209507471491832963671521601940968203921235060117582332402657487356162767500445467000358908633538126419908127893278044143357411085178273313331816985723873958032211873426695153883382378476116162740527314215092599302050798981237832783882145774202936960890758616482912459809981624019501233073799997673374276847182005081781618540301802619851627178909625170148145900215881513279306360319092493218508833240696235901172941581643111008072730730498444415432579884618063983179276850516117944247492145048258346377920284143808194059367281766086757275281963272716688854075214952530288538680506971227196154734776536650661542635141899260503695734805983006843624092096006209090841605478914819365249070154101926774857076039966187831691495773281515550319986149012681877199185524785489930921246523580117600296533043851011828102269688985587956962698572303825802057469163946832127777987720960790870821542048519708227949501050839177867859218438012218562624774220672997284395654000688841430689896869750036281303151791821570310775166858954025659537746200831728598024674561551423405777376614053161498262139206320266660418048326142594514301966534083866488520674265342493324242723741937608638331238977375421560836942067188145369772060193459964100323889020536960002629776696096214864927797028102130603902669505111023076740099397063698267682668404345200873132976845621401612569195931216710401597546770578926307040539341530543037234146214774334989950102972018162167126322805248889139438109587813029119895727390772784068902685233252422390715618029195432906623203091531587238399257545222626095312312216273531104933425408630338932376683292009708127106202610791862840760098720719237265822726288717724622553295891646619242157086608228838205486055164193752653116540217385688983544519979772314530897354950241981546095263997640124047583639732868294672850099193741902664244794228688442940114957959220203896284546488931196940105164763434603851125200388004266963375893965388217640114681958359192480955338984288975432266895108826182660757488106173867608233996200591106400176300943080228418311666159361519065460131935620199802530415058741555685305160082916180583430432640607174056753930853362761025455101716821469624022285147342519039489446616248399640064133055244209650868105703361434014375678733118410262041787768164482197691872598647092949981089958442613629849729746988760267320884893593900562322000763313205737023329369950039624831958539813573908090684973317925245060325488926581581007720649512289661470027289208723434058792738750194514732792760843949409964423903477159217080742303910130829345592700980540668173938589716199568147064822165099490956635728209308768521061466950312475227347688248310353863097868461087192686651576364511146591411865348229385655150544522657477068627432839628911105099543236914654997566578089295439980190991946025399473784249377871685635696126187605450852392906666470484137878483267573605404455010615270164354814655166563071337036002154417776663450207482259559069082607421882232142182363732274117195040057887594944947893472492601212719105767559690772807066881517979307019004335039573108686348416392498233230580273904480187515663632188904413609054683627726073151090615435486629810931186429077819603778175916523351751938032759190597244394039017122546062890475254638224578666492987323149626517868132024854615858429003484656532894973696157545595145179917676871401956520904878385215300916771466313499889249484628954936314378345794893488444974034314780017729628649974539221115981416548289268313720837260322354317299050641340683593597912598256356215920901341676790833456961518252746973220198992738056280116065627031829432462573085775447134558189604564637451936869133235976214449627217790788949624423347209655409644772904124945038959386945833097067904404194225507307674912222378212741631176524552397801294413294463841373297631112277757794548213729455070990596184510948105795493207216187545721865614027045729256642174442183534122278031490219287307686537772407567081728333395474300749866347547252959986178612614860612606982052407928658691781615874517051371861113423455350232233771850432780514067138779010355867091586890638105753704358826474889779608820119168239310194745451136994537741509413485099420862943801063489574111538654701255042325529528407136362339754050773914235055794346453321201344986635239370044915268818153065957333020486435397844890641441537691987242463534951866642072773123094055871983818379056001008355531145827344543739374454096774049854084758588704201377144349414697709611156005133432832397025980535359864571206211658951436814870000328388237307567447829669278054516091399657735179369172566231655519229324785838547352671062462488287832417722204992427767005443810041745783445902696497935511209713811225940694026384394437561375499744937890095982380020875054505879176225996995433062982924540543784646516222006567419522364146776296487448230874405194369631214515374936028291694849443669846354148693243881380599478138571418658476149002061209730897502108217914240686556587318682722124015207439075893685955437750232048098730531615848969079823953032556762512198172089561481543704822834199546640546859327075811509336769427035853094920208194535428492252698327156873923773971766737472685656236677612254169214667706379750619514907791412710517721213229358173498041625236039752572679642811901213707385325639759676849958004402807346781011338156905972286082180182693952410989766045255513541725327660228325136155815995256793397973464530718745488989703243200610130519174936771771771249974652673979647822274933673692810201438649681702638480075934511179367424472359777545716222152920887269545526434369936413858980035011366142945016783875852400912028663340590650669255405721004921990594880026571601218271604483191484968963673463132666676519357576376807035871537395944552229287087374129336725777782356796229329045910822270427231354406576655620005842694334010467743993926797835402601368874725202687235314786903038148799784497062777411455223089469670454188507344383082509244836086592571050895628938319756734529912791378676458481033988657622914204803080771458768622363127889392559120718613940682121033582659642860055791540973449245644888814226242791852936899096640536053194291676660551328969459440314083105617236188170852076097077592295623733118678018015359183214154185524234456719790342392786010031459146764606563886443612433926011411663256103882330536529048124829671065849829787500643817781341744263608944488919825243053081667302787311594894666710664458923455113806782166121648285112748302130252380526144674502986063823263732334855039128301837517130145622737240663782833232285901415389450809024661497895740157749171411399763456526897842418246080161165225082949179769392379026938354578904874277648508786994297481643975573599672944500147642992119130076676646057583933934368018339430150187722914679312140009287346977197630475816698465039144042781604739590797964481279224563314215957052763368700074763152755545483897386254206857129438255076840722898431834716250813929289596173455006583176868637372221995040247494949466377597000772837409564038110707814248545349280122362315057702326262539484066679491709832534892473097961905905661957275257087549370310739980769158776825169093310275840537696425397540482886255548284654789421076868598095444617696892674680261506473768456769553418986519886758293034958949231092233960582704613454358626041576817201425727386440359258435263956709977683426987068886730500149608908408011913314317046708623367854593434295414670318260070979433131441532791881920158968059454690782119133025863193758237108662828229133602817667717506795958750171034599375405458883492826049347141388693313374226291813750419364813142130330107030460086730191030041338711624859435853942098107061244846572271982156004241004684638576944319403962943170241363985399306035691086623980044918777433674944166202657095910210123873091249729938062228109055212249204871639868589601575497606417168400990543842197489003751548690796068243739106614535759059058020727262422921043364760891737181414081763613828414996854485710897633591712490648632138130803018808594160145511746950601646893872637139226651276894355629155631433515255790003369848691672809991071533095805499632457475570218842642839427565269403972043263487372289201053176910269851705058671489775920662545407085366280653526811706665757820093364301183679864071198400311185393883435164438605731176466178409125178637902152442219088579782150963766284293031319862695565092786785401951803785314898840332055896467563564109461138527439360406934867274734239290329621514909288113100665057205237436509282190880484626257347543903070418051321431451313663246764463593055593762556527353501429670270280047054318180357804505108203353886094045144086178152280071951942916494039044120024945951532711200442223632413912093829354080443969218463482700655231837731412713879308043682400956494761728087788738636828868835703399599720531818731193588206914978194652705712819758724699816218498816381350638274674660793436219629031436992990074039808380922470152199259828443578194717170844027486981542747591932387546709960475572834755093975905174683719264774891306313968680447554710169856035502398941017402373449635851317190496853540675930875789760501141221074984997322578289068174112702805167059587817731026042192744522327964912035962263422517033767806656630028667901622013689586470190938613205173226026185962989806990088332685146003058589189843317021318281950990065894494873027203519400618088688446397391485964990260193720169976962569065957579567996785752768821011757933994607124806887592825923364726870384415293930253281197681633795543700922857602974113853535902750224259335425693724129344847410197469597231921564083671474702562318476153183502627975315002422169487388959856014035578160827865010917137483646608852926995938771082461024702745636621296946541551844385706694952019488172368210765366845525028567287512312983497989521244194785559166601859108257553396729592094038706052011461219132024923945861515934848943271373407044951508830932494892697784238724145764978493976439343376114972532032614281560619440215064565160617435836329922435802543482313732619687345669728321520361197049017037104038492331234291721579177421390744622015181593205845574919085459899897404021449437021890267659622012349327748131833638142181913037334413674376953778494180496496443427607862625491219478455527956213971361625091088870336046429127508351592666118925865525463862118928178140630368978710281515614450757167513498411243557670470109731490540425719831335893011073984826583586152926016657178556003286982506617346525436089293150972850047758141806137308020146913623691458201297307053948501163580511456272502602146749843174515809204485477316680799251829180132676617677633000034687095497679034781458002333344363628805207447635557312929693575221626073134336977534150736282378397687863542849814806668935806191687937415539705827223096881188738103239507806734250197186881461929408966869223205501233557335858968221927307716711453485042106360564021815998136643885183255517270283765756307254939415472620500497436971122789440424718860923828161700557479486203718309716029249821624944284544460296877863687649878829843210148622581732811603900796275363992075207044035900708227562696605811744660123737775244186716671979429865939590564271582883036847372539421161724690212586572554408329035947380611056315990863695928167748914860128711864997064829224667082955085983475992954369170917942311712101597733955219676723500118962067765444831518928967242662572629947601175847626862996128774854345978058043879494691529315976773808610541687977741640388167188134501352835113707142854344564504285091692444133342256279700796554356585335849137509256461603113504477921754985497376322430919983526743087947558963875140876333613006895416941251401943267415032281851637295141453262085507617620354962122145621000302891559860160306009073024149168308249213861756422618444072308666724093169045404980136516742697363401418486644464492073556138628959737794597081179445627521667585617291153915094860377811676642744474639541544281786753056921691505343318004691247386200082133382192913647740199095927508607215249045821098257907317203801863379624705020658102855218527194449053104755254663914897693856710956724610397038229774497232805223605004764613140776332018674990556745991334477980704941472415268743001869578341662369070421750313456769310006413471614619562042273177764349884513516741211930743231519913113675209621013335440645174902527505971606914196855900402103981557806190772194363512954371283208309359196165668252405601179096478144701666095298801173848706883686383823482258849099174539128904488895892479413780468662964602879774834041802374170064485091043045923987615276207999779021238649866684739994789517581906935641851718259032334599674819757665622466560651857176453110833207506187177584056464954046071584999070151827017305595522346006184881276886656051654637988304280580556839892732662288026312039176474107300312213606708034263201013920580903523221781632190948975624112281127963099028859698066157239760821650012174168230008365929734920528835575828068953454026752168417843413987693730260017050646756851431536353860573999469532656400198294081010732588054322805332598998718635580632231835196751637823356405406662306028652797815012369568072185171169435263440071993037523048802888494331071547118168771829538093776008721853619752622088895114333392160353936088419627433961029610721092889776548090911199646722757115482197250419471669877689173859246348198542581494889545526216220403974036751930610639863342961559678585333895015764962605560513928705532246539771424307899186045081349073447880459167123794242623318666670696274455327777674668426654465559736929965374266610285550500789172976028738385012459851039591458985816835331178207221002238263556102767529460882472670053805284979021552483978979366617339638753859407319302878833072282048540310462194026659154196409265104101367799897426562956590384505934505505575248737266674118542209259111618925125915577020969801192557446433207030909453191296005185170471716253913093956434607440262468801186909588840881363631250121228912235353441275619842811801745422471293811962655532862234543490599536186101528080698272396290654452654744578240731492170079184893721629977640697738741851804986869892438006189877185234716012280391256586880847431745232391878500125877136505852438416429130538719145193999908941764135574116226518166684265998622291459587403034903653464346478223792271944565738304137063827666046531935442111858674719455760054792216947606172018354336626825009621956013096881969798484233922879480753702542256442025381371773548482124461800113590573317651750744660687394026502924202037262810835486117199763467397875389228016641969959297444507847146209066536225904477774246927161028569994189635404579482122501186171672795165308593806628145537113309218654143144152801431298886216053165202911877007284378477286118736045951526678220998851004360605924419170867386788562752351262681620415429782083812251737970929945931980927557490626708753976196043339833075086563311861473929209815452303202653595670235109239698419589524666612432140417648661641331114568184754177007977294505552792179957627267441091056330637600403214002681727463056071627204046000219911577854849874675797813173695962989518950150051636462973841519922853692000757591915442949692110693020357655830635415168095201804489425137274977160865516561397528425822918700985627542814920543396133760690946646301000434749580794601007347890767421240744748526284086619808394905057750927033312438961152102968990679755957042271651063094798317691005366839823488014770320746248083416983288336028015789066578437148804073079642971616059382313012042297257654269911550356924601960166371705058220101972647465933964690627643696319210665335469387309334077131927092653157618439598516735008531596573876346461927760406049583257620170805653737947621262189944387455848560846191542036542183606275437122592679141474534647436761965636876738804009049464418719536676913369391149684123085060505003466781675995311840720370869096281043612633801957662288723521267774252712789984234319036212147018489862015490156733615657544351901484637730795548885102562326221783615083471629495402827458586026005323687162908632558193231615080976817742776720062509158220171020577818020219929390570237342424510388883479102479574732666318826031224722767136227931796347016321614206442985531137287834126745390603999215821999119149874521032130437368714883489847411208109086424935130627641409501654854746672915555464216791195414555008257968087483553912505785890641910807412697586721158883723359474507237039530841277715431967199899649506554204678549984861944382580679429095592929740560425184035810369394586733360649970923468158798075451689214335020668190443431620844226629742254695597776342559275031978724875935384214021367101080360463719376945734808051157955696589511498636250099772885093834270374087562848262762231579273905095201300773756370612459751925735430621819568873835146847447793684455335110103091070842459075183716543891558613598434885601763747420340286342916124572354281573009441111270962695978987300327425214385322503389301425339479581802675672053086250777204404946435715482832453363339719577517623627578457137678791152790702196367317508636606787082802729124181003586378646077758282163601063261788757491665586243999477879613552510128488996340865544795922730449881039798014125729813917514232239311008276440360732114207179604065181057771050695336184711509100393735395642721306911740013576575840451080544474944741691118038202408524377892140573118132153213324436900647550285114726628699168285059239122691346732314000788227790517574049372896799890771264712276931976099373115341430059751572140171715818334559843839275491328863197375286288247082581774723198928964574163226644054061563085227155669339600366487844453701856502931080696935127518907742608745561340279938114962868680143166125046614233840773823293676804652187096956917868085241276329383694663761711570501438141986921385158306588172893515103328993973159774544084228169979876949583136845622559822503757691282488965100470032937901113226917332208879618774645835154261452049327818688132564029789124524697727292856372740088680405262723832814916589386882382756924094353202091417204439723592587374719840552363958681343000873653922006504840359135461867557084538792436168926005211268843410347667152605984288248480218429481332516024284262703329740446763557438971586418046006709916194356901805352831344461546423306230095073324681297549862067598467929459085740843233379901977227268083227514167698736024375795632416109264933605834356770098001487781565246106937002990705590728203769007241785627380873061616973334427665934888650591786290929265626371195567202942820233476665192753070778452226798231403637030317559251488415173493769829244182283465161952907351380164787141140547920830123779780149890109502714288746344643627691387712251195309151739760603483928199203617834453263839644169646728304370402860098784899171454854556791871476044535519867659685668030494011637196124063049555520927106137022655624923290103798690361411733171315869063044855751902456247456880401205428833165747735724700144120678180281158887037332899367427358798938267691506579907111580197932554993897998614346210719472176420340568542965363448806861691413764124248049358725638087311297825488751654330181576211302536498982219624517388359906631846930569386113557237697305745384100646193378968417293107317929689129555507047881038240990914379610371931551359875768508815535690566056978347573474020719162756677336901859566924164254145841507895672275055465193401540025204270479444988711118526557866353701922499616019838989751951953745999333720397849156133223491256399130670383028704870961356592881755462571686814343433873847465564541028394895510791505081925853357843792878038316620050654812814036042126599496004615181266286604253820097713488213699743190805735669414104573532621866386820438181679742446156027099385394241523161517459042797525241405511448646890813310229553093934161716995619645507885715107767148019590389853607608539115903763030756415558042151295538860266247657139050499583369012412955316397193182386228301723166468448093329073032199248610180039786609839263142176675368547538235066292617583403259851261188722365495025963123721979536382456684769415246807592591973372312719819692845353103562444769053212484139382120391824846530996701093695428603749083309780631398027112208115442591956382415197938949005725608452975297115927686401054042546244476796292151597137048715182052036873356141076662561556437409928781101740720708476221392051343099680239172374241340640916362217615691010159779889126056472885083013534973223140228979816830544553956464993571717446347365755248462221370830774992835852177953359034072663285133434003555056611355163127437368169717379714225539564060935951383193664907755244630631720765313416979701407630077897620859709515415482578971450148308364935342346726155840560637832737842369439195850644004701123452434167641810923923805398830471232627582497585850520447810095774371888165620413689750432629511844506172533302559196273351568564068026757973258266862765874851959064844614067505952426460324175269391429128431401057290475250955706990121426528519758504902557853580942351280132100369414703205173813675552326211686150790808405072209419803650965469517242962772456236260339273848111315051523691105454292822027251295920232171155142263718276142683829945519923451513086647091454360021720848346535730066846898048660985890918452865582779845033520760230273199600383817321564635906587169764751644241762286275114314803496931800005781024799736052953714441580375723210742799680392953439219966443184101740857519728794465469879060194192231832525890331662315832283224640406858070068924734605871642213225196923447315601302129540696712524074195184217354330038384473260297632687666038099120050140410589321775574440569382343441938798954500064302397035129469557334946665738121744209167809219101081306056925558679727816031217500447119170460871108952421211319652467945729817498331858500490039805181285449256020252282389522662462920253706076396987769542678423493816956443961412112311070441019330572034934001956762738347347726017978282610309480237257392205922051167869597777478057420649026936723576017229177551993831245001279540502606148028367163272666437892172802898760890709665458270183801688191573295453031249549566550053395870506380968421237413943581082591817068898071695819121967747205489385216091954576340631584727299865366942354651950095894539431750933483883349626852231323550126915832059652203481876314151529997536780073666116437490711543382691061416922475350391660621637584548736314176141785638057185018881775285333559056649377991595978014672836849592985095109125130232468263762772272758301511559149477631499382621271990068500784892663285567333117480952158557482500009045445676437178680360423562158813491815350175806498820723667459254033324473163203747124354207923838315438167084187301702308475310153978021243780267201621767579058730855718443045533051527691740954190603949980015197796821814058702973593759871482240683145695678602176969565868550000640566993563911764069320465044795492960653734319622833705292748943656719931150308328260828582863183477316931613201626794144308112819107944554053131910796741448179735975383371062429075230441636622357310125257427660655415203999034699578613881071348674852252824602259330005799989897897887464742801091839566319842632954341887484260179937336027552219300848459023458583269021979154521829443201228328302002783960997543305956812059421744049423536957594686338470094345154973283405960111097794202912623569180873574754453691510693621115644328052308577376147571332696039936777718251539411426127804972457481521829316657577550327194974829928969247005831309004122801468633210830656900716548126455433014763274184291352584729686567039843862194660788761952141014351204961469464632990939696143104041885532710993367523856288407355783295067579225579822488237965238681099158329347156711786832632396094626227498856751958984027868353417009432056397757693658293466668469127920389924677951972334676098093238193230031233153385380473419146356893528101107512077764884911566666931612160484936809200602935049938235305127325955910283345398819113026832652733981933467291690589355357736958658813126456087437849627657666645115347734249190443361917154934066635239438587504912810573315414171292120497082079478315525633631239969876031746862988554128919168441596033462353421336696963145585184686560002116531365986604563218436310528714787434738978273667259098099711702899444836912352414856967535996091463052100255358412359152799699486420736682339023938132717223607874900175907501838330491603684181782596626238705657705494233803495362284688434341260646742650266818919533666137816923371046132242197536572980225243589002525137287264129082526056575205013857515723188211821417319552555420925994018459666836543510385411357635571717080971491943632045125378994155102261321376101306259699927075737971298077339044456480363980861453402905002448635684307021177462583058252991285936063399623201665501361578739692641389675013869778324497822083928326504676738378678744759831642647194315010726965280890528027912876855254596654231844425308681396028010618183997387179269487053918652021011076236085224403530467517995937803383866458695845183786128814782978340572245810381666257239746405453920032603764702653809585042477117303992352435910279030368043065633241862227526290394751151207446135540169125614884736140717975523463535819460702722916007537815384923364044442291926206221361131795695916681704007356452514573891336041928272352277958274142304822417321256562076241371371145628607893077393988027951407996153570558308606178622920304071884220358128043412543637356792465391704371498969396260920689452723581307532969410515947642803368289414399539367543813598366368471227780494785693712855420405747286837772776833470426301411826005031922054711296514411119254638207413930591072392305417954005670994009496599891717553443686056181245649258722111117427791833173368006628546895567624839036414026728431501078097754166591821545388646384492677677986635073858454833216103862557514914405983389376320676096060369772847706298510708031871653159088313981807552493840302538982748768078908244240361894973949803842463790708035377892851367769439407475588376019054240899463332170719364656849056402051536815534622903959792341802347647141942358739808252298128639849959232701302626165295051230694534477956633249275010084983363512111710669664869221536060915553608719158104871912935089744623871365382562414920116514664793726760465365514877153006169222677114210868254395416167662439530844338264302483527001386388275524576852177731836344295454703381126729096121276091803192148099195785277745598276547393432383968404308337984057056137159454890898455024970266039184886003888298432913794538584432624035592217270418856892311158868594169511166466496818336853601558457950272523832177726985768165947902387060420279781935463808767187275442059149490181432951514718697426591948930221075700274934510658703894642994352432923209960844835657921941044841260853743085135029683443025395035262155095206236207941043234569926833215112741075033708429863503047655434185932562093133990103815728530053106450356965901466989787265874569283655584894100289246751380335477578210646634574038572839069712555910316211099508858850873281218618990562317456882472507675656024981727767172173214991943690449817205484699010938895033635756958784467055212220971229292067505516672610743815124195499687113209729037492803787269972251879071320426380607797758037449837602085359807683316069563335846335436501610998999834791225048097859986272243492390426225630393820637236659094209731306628645198516122961719259084748466752746558676986990185730045820038330064205968433785422803104978713794940832725202339483600601649374481456214097963597332705389149745127970077164854025266593896724958623393717137092968067045059535253672584697261487309880226904679921750153924113293611136643715794379409884745209051878082971551661745964814440498935359842663232828929606963375708171040004181753989989167591353386990493583299669868452367339611017096157825538491371932581756048843618879662142954258511519676904411839275039779453056845503761121485904961628648966450762034474015645487532692533485039919475275572802738869445804014896788313345783082269243853375494004698444513758023439458285418843727091779409993769458752164110339318182484489517140958390799945652883548080835350677096414303831978194875115451828868721214252764931304496969110980686479782666302498205551758413899688341672207813953433208587073446096615800615177635506375544015891132760659755434180617279550959499248694101988186943925520702130920324983187631916179339512692756115469863615538136807568418876929288546782721917250176241957415870329130224630162329602431895026102228790822057276874352535243403948292793152589731125314216529869584219122323146261856908851112592921961342418411441640415038903011713956068426886911969399768198865139369983258375142422478598013181047620327291128468080355802491067393118217545518977572814251350956313189173261707218955456517009104658036249669962100955700358946753538457583916896395854795804713107429419754526590219318277541709231082656627326492275070939673981704801584647323005753624789338995475826621801946698771199136246080439192558422519276757409824932106586573773418343171701589647398048912626039605308882138249979935037461562863121488689020589109874533575039561559622572552792423572162299652206852531765079000598580136323911772971841160649769964487443757296532788721144692901593303959755144149253529103648240740886226943013352636067236191089051268872119886479828085510025874535281581726332744234002914295589290573232859670720277685293983233568643940616202280774054811131876959013508161050087791127309071693032927236455270289852516257933923291163033660041709687666264109751508377769828855601677294673986466430046725313939222227949029279986738814500986286966976346948506659246511137346343354846008532755488986579018503113740105213325324591559458154763081055005179532243024183376489397189317776965780996011311523080602447967337049075481702689794860252237997734925851491132188862086207948615911165491604610829285224816019090122407313868211489401820455263654625625542002320208857550541340607973749557200254152695340571701600431421936525854383613515689963996987693107606726921168731995128333036561524052424589303620022448384204690271179298228681997421217873446515958205422388479230095233795823377191126923923315171314686066682602737945616081343128049461568329963557543189517901354059089633122154951839021258081719515348934069013764191973182341734007680913236144068236740515486371314528681320081329872783574035764613941153554131657615043632244725196620829203256207626135650867703176440190170327336271566828222424440228808814453476874820841437199201811134860564153576483786265271994404415209810841253455375144036933884642941578466414711839126890050250855065226919629878001690891982321660313099061485608575384453112891622195053813223924762298672298883731412067491177326016709192964194307048676575066749127772827496659908108632168795188847100819642192693537594494868889287164394096336119782375228585367842080883915159044333135613123127524849389942186666381320358541393026841137571285557554588562214250902471171631653140073459353470484261056474178412740164719642146990962236292784502113191139383013098251917956482140880298010165933082215925939106569346712669027791711260159214104368563432940171811658974110148136426732643833053332480276200935333574912053501119991250640697435374267919366233425940125078040597378114793021160378697695323491028075655349152630553195638027531674290070002957179003687123187009182443031079210724517193948249890893511506526265404168221228593820140813932558844782575660741490434995336976995413121596236851092863327786430068660678378647508530047988318711829441935128499736506662876488914371518388123214905908449636934503585605312193101790992427986597533473350768220535904758419306711827547186107803385608828336989659159938481298273984676136157860864913333240400968059110668490846130275103850043660574663537265918557980224314055967612803987313747865971449264092141069471689158566544205336302923751937375998092657779206402769761815035091876677609176303926906761707300426642787841773270520429530790409551135754815314406404956949137129849690179500748691932384185767915890135214575630678503450430653743932585226106339492935572699376051845279912494269313702065111218367620518321366527729792619613997354282678230794120113560720221020907136240771005584756075655809720457269601803223929916490667141142266673801310948078660277831596683174486852391025887965570313608464444316743712917338210596367520984169554929149407377072964390504410102837998922935385594710960580870522664847848380864173095243473951894346586729955923409580325652770632216091332518367483818510614346943339782259388333580873898774640388261383060564721761359160893227236285047220674191811489859006690157097861059280553931615873651273885743445523090570243440771136143384316997634062726781945285699991412593105518982976109299911598314342813213002803984324907992464011380758076033763517326422328020952372764793647461707230577705983347537429856635927829477108364427569846122660013414771232644482382602118908099287373008792134230487173138659665064436757987730575932867798645330101480927778039289177272638598180796675792645357171702499668360806512049454831706742086828324682914285298629714329146290862998442365341520354871673268549142821710644356397053153225808696969693775261564325845567452279990498111942425789585950688810805410485854331383174685858731065627161779046268666614368263849049698504721623164113946414397952552799748093779328555634323563672074041910632032718121306886996448089919154088767497198659252819836863973784114604367453363775872881594613250128823861317358923540128463113918160573799303228714584944671501587500665304926773418228490220833984780622141736742568433589764178816888711115870986637043364544023251975517976800089949774245319297847176373635121533517275426163695192146201406136294223719114058425174573226337794658818859427935557517195881687798655375237041543732516153777613748500854515627293275413624472752629902118635388381975698172955761431152343792834160621807702359263892691597711291953485050429178146340767539464128490191004183393547858415974999957771049219421160962396139741507258879856201060036759065003296692408344530397050337531290891618001122271137126675471560048767407951326547517942338896629654089425057712469731095601864251643873478789318076818799360571660070990795630791323392882927321074976893350205334850073450264621296971213432475490999685860296773881544776242630795927948210662620795704245714072847989586173459888202560366473054716918291948351786411658977250336479048924176446052172830267838058577658315502405303893158297131665027998710848070638336984249515417358641360030278053304882394688188929958082831228685666114827762223861135176546467196548295064939353245349013436214107668411757089182762337193765573763693020280564689080054019176427120976465827042912948002159402541119394982566826619246686017444869940095450845597421121130418848421665733356535281088619678635589814690427791217179818572132734884316021776978434145145077928159512841869813990753213167058076722537454574862650877933012676789586633226828218172460074826133387126358686022850613286266360986328729053791040981073880403539043543299165098309012948286746814360467928257768570373685393458041449515357388795608915633093281280497773630342856000426971228871208114351945940050858705037539500789423384702011683751374640941167224115692989400733826697405080582264789851433951864028643009513508768881621069404832224766792531316949631931000956923612859535516752662243622739129806029137067668695937889946494354605800958899249162354164911719368684137716218612861275094052534686685766617793941168000285029842946448753755446744023199879768426909487685483393424631686512513370990272260159623189928847601665002488967577523051805533455396041870554036411190796860253235512657313628314838824761173229620314328929638174236311544239636887258061825967559957845049346784977463736684716887629020996958311193241720004695973853814537239397025595691842678220177065445487677522621813642639428631687654469745561035467028269832917279808426361443659600899746959868780344181392343635032585611825452616895325086634457308400449061844414585260395249281440917965352191748550167648916454418971551123028906881972837640976922584134563615899829917747205487485479180145418533276442890269080482119106944073603510378861929506909416202204681023324969436783201573673663270715789983281773700266293861909721176974843193482728065932664154384124088465906182295177561458975264277762094169840111339852841803033287123144950522365746968177390860372953663095917247722715339661083252807378615438415562999869771857363677459114412050895044145058086415643969905520268086767784640395833604373337549599943070717386155689783141403248588668723187815241390300880658929606806454625852594595958934276798961333385965586571709129964746764285708064666924598353671286447433004438224790218455948612469698790168864576856145199915124935259418966262233794537013750627018469966128760537455418648022821393808124119095932127458688075748840328885028729208646782896314208376898631696882383607726738420881079570975110078501097264747461057556283848424472683243429592177669576748904818295530427708522756996690583190870288811001956164127511581233542952987029957883679420756971277341702781314364478423133938011876526472470094246559124146579395661540189058494906763510170556593674236766452142593709975530621972281924295532455334418691747718234194380487415275829349056709500075290604780105312367475489800533294792853374383535038566211250271324162047764327925671588502223311966572129378934032771870613183712105253378659323860885928432172472153441181280824853218033192585970840807440269688553568901320068949597009558155754286556747715169471062139950633216522608809560798433592630240716635378798628750946332102837087268044977983033850747624706582256781322552541376093176085182476306989674060312292775153960857061111039136402987755939696382898052408117595818480730242383626557255617346348201307900015061688199014835006839286006861753051121215516810916624749439834614403550722530129158448079384579396838295607232199316871371893419069535199543790574167582556712336603850705422579286977548001103615181159799405475824289909497309952537023343727760954782592737796926636067873508019617441191158521370362417419091710159694592488240287246728390301377748601811022429422517840606972204134211643025850317049101467789822451955409627402200559705629877301993964916804548829682461966480783494819924207314671403857938220731115258957769758508858781528697736384905504398405361468739430304014063417819465262737558167372408113086876654343166089752053870421117825588355518232742085979074335058787428271051182810324231077803108793320991482825101256204503389724579393726175765518768035162986529112367779521660703048207058413034214767058792825293572917527755910102119473711937778536388092663296107730861122104286711691828076888641773125909631316398171498650748104102277000470214992226292732967285676225080227243372513653971333364767412269156400564863638635053553738737168709909201413372238095592526079306922774730132941843131233103820709335328979098528829589238389949439111310870184124787238204693925192697136697066902285906880706943236992527803481223688538932407998919270695679620146932871345712277261956692184190274689737368361339411090256718264210241731879444120253199100197898735003712256332252665501983314664382078059554211138771117100434590138901953301061838902290377237230093358778459245994250529743006944244594075254259110530348229229512077693014265613550742602395620515734524560488341873578408738031848579985546195147908208963232065402362849392415279497488130130014701012225206191578924698417992234990003894410052572964610944539706670440550791319715509413999252543563893682251259941837545299142777188151796011523944688382616511011658887427240415798467131368648113268777430800391753978195922487023722383261061657139662175317730472904988794075214634338261285404253887000837089669039420752765076243858591041723531863633911691417534499289956359330779328870068146857410259351732637766935001413694192162958718897908183890025498806073540976303075535892357407713151762567747258459343411713023302097563120782391350679684053721990349966418003908889520872823782081300613333424567073782159156371088023158067525515886918026027497545575255152176048422175100438962345444186852746966922679390958325687157913059606329869767894978599200698742888219970498717205222958275052568213394534083360674415023860071950730566649887191527269929236778947635190172112887933071450012730688062344910408731243358194822364092543863247083495767125206068206134698740350768868790898926482714997747394030303828729040297049939753126187880092997716094002801201432978305850007106751335222373838349002220689167820480969855238544330033105913242851296946828547008650917879270603898615554469969173845327067435901390707700704068999882387189197962480984160007208435720318233227858723498259866837754310714105092684647008722877869302201570165830568645999247528379110248419950037786921389983805400474537726389162282532744288092415558229010726693446128600786787576941618660037099612758172352224296358596671949303603907432973463091550836953230070106410327385541835094581548942881868113153633795683765005542619593030831213074365034198293871695414772938761898670305119345996310694571835849169048091579654121905198703148402757960313787908883913417739467574018263425072139631239543663968874220460697075991764269805168086560094691617153124825449315458770097011927118224995477432831718164379687544319122568473252765344813148398991256939305729147099194861966295023126892458486038468768774833666734037476243762750575356333142062511505666682941415141340487865906790427387193812111413698790930633371496706280290899354072875117875365281732912420653886539964355730100247565738160593063809923233882830613904619208791908406309997546822745613692609268735573562618708424907538899988756030236789586576053395670099297876632094160317168187995190005474222012102322221891880019959110819734499916971866664204291811887350756928527432707569361903344562642063859139658836034326776700607599766578337838516233463055133925184742061217466621803839559391477949280214041557151594185485722502069023289183356099247687796103078573763631484874603651394769057944585740266980549947859186853185634563167114118959160697593762363283969806448652057466800575179339328885153130381373953248037310972365432497070485820259393776540038923104925244850973124898473796128435040905617886146889809901849238707387959199471034721390640783764749921860805159679434485921938864320175256088552336686873879128809301376589986165587318793028899059547944348693283043777173148639749940462164614046045679419366529875168801230816467222005768916897845544339960499977317073604143908761806349431755167562341805617432537504698092453820592187335020681501945567434073693661427947197909808313727563265006390392289102835659872458956562760631321864534704287036379381143770061722704815759011159485669487725264233433632911042129053202778097087515531844267654544192422832678711431344281858025257305301011293892912538984685262157844904654515091190724958074759466883858552557428717897914407405674382188698306048088836292315547748008394020733106939471892166167119770612548234784140115659149426746551585867008820440959773414185217841069553010567591352287243775331314427776560083081720109838839023987333372099263300634685295967516284556034445143451528654349714467543353081984250060273655131869712412538838299969252873190144968016255440202200140208102275292540685724371863474560592832714508238663394047315850158684784159863952833367236844416600035436298011662566896139862375747815688452011333025839068622674408805307118667581942091997470817472557311177495475812956747360811649059735374388533636348014781063474845662585587879740394699764890853152471467831745950346433759889037505509586367208538266816384296646614638751565395987851164070084431044978055550442666188736215962222902831692477726755923169217522717808113515079226053674266336865864844794818355716987599930968937806136703605689845078453744110968398435372274026500527879603686919176950635002021743251040909053241161978673724173424071896457151317947935419612092411359288897701658259714685900319511607385071145112192783387560849598248779912363337179934490477401730444690419199541099818858936927965385415311365521481421589648954772533329149305612659579465748036366498567956059043272748435574520237192087286149587123273706074912524146249775990788044666970250936486231619228339248159455205326131287174038658563034822817327981693219989645092920411208987304970820170476209309004617500936422720005354902866436896109534998567620951209380514982937552421500943197618520125419134636598719597210054977399807097785769608892446806979069370856297639128238888925393464474784243528606585878481788227643062453743453150916565176397814930438815714807474753148221063460746319958353262152729125954610800980193979243950195565663792662824273270249293751116604784875403356307032341151049091520169812413286624341270990293528447152071359768958023301363608316501393358283235523960726887642965123192728769309525266295089626391154150387613654799737918426522222678572631454432283232054816803000743537444256551355110991768966490690292325637877068715194177015536026814939786954970494835182986674065935216564761619584803474003624662885140411369246565565602397862194890130122293580861163023711084559768245203681794404695268066997048264953031389118269317184566953790816724017064795187400396805222180137403047577062224254228266689305665596488550774196514412332404346999015038022054350171910636328033142200585143274528298025837226326437331278549745227943209012451606073155971443831572664135787202562133154620943058385861997102658230233115486078852574803260110128835454004296781526074034319116276726374185095896257907761380671744494330832487126595868556798548000306980412417746832269816748269383177774914738192553321690425522218418649798984393172650521977023702694201785265377098279293038082843623840514395160126280657819554807276140843708305231194287402473942971460484717708117980359217339973203941814856545359820848025999047722456316055246758010210826495041704649059567453826232869508584555907465411098182596638173230601149102469096549819597048494308109450361894812615900367190449874393200772574087677434006081832288974134420810076547699939753485700007063084138840905908585475256138979148320450028668919863203537614809331914248302462205148052335379415958588678782326934921650741073193422276738895721203396308803665385759344542673664495018843122276251771383737709146888968241467462252959310452901766239667387004301919199368652680730518700012465261730140316643507528799500638802198264720690865229476920287485453851461687856643417373750589951340041512421317916872790528412627940309863695354360274327329196147058828502284809977624109744217719259658823915433826155359069808270991174219337381957005725250876608806084607562896399562599180095710052424473984461775594148561164117771060162889225212322315174694620954482870724664132137109296024049921407605369425195323129222020067003632879595601652247655728971594760856832027233775404189341374952670129680061396646906866600976558460374330608907835269971498088463223977841438024335047839864061760175467511880463530943308474544614054718619231993700993925427449694249726115088972952473160784319735361191746847714177748925765306855240962836332079793682734674817725242800103645275688713960769101697974034015627395426748047976595929558675469964806015978350249378150933053692381180854725363596719560896241472255644844566949177663162052377765160893753697628767820605634830482389854591007786144488751718219488610313176064521654836487314922474183274326255986892728967334345705880620230394404046888975791798476993979740302968709295911946662169227266437432004554600197058301042274800182109090523439347941338651607907987577535209548844575796161889854833524424792807108709218902314547429670670846264477971129893009144478382211167526244063167346764373003269200489279864155876992533080125825011967555547014893165707819936221614751191319340920352629668042859431611843655044658337402764608746225742572184752986285028739032554642138762989041899287412129639880910722276440412288974822905642876545778012140533587675474627562634265696215487948069645332875474405299361653129002941935383043025903741851708421502544769865812354478668430359160040914676538563637760529074355215688691290758574458414786541094463323868888854266240765576670681382988646916325174996729232014561985710582624714031378927877925718092504260202248175407869258472031516067804966443367962566885230341015600574277706780978495942805859063848183510230231673723092780505670663211843145823159081735726452133172961337323943286851282756222378567468494192166093082560737456149157817715597921173314365587394356768284845135843883135617759689866189287697114558687025677532487467838518044877451282605458955658027806706712718912684333809303684386223997772807500537067387142084361182241590154069052062059760516233648516958459531364151795369367388149596663867138350904265934558364629008969577817699101021621240032505025894455123444057886808416978057759853377692904873253169004659750230746878338140016082512746559561877106562272991927010601908001479594705856222367999277687836614332152348386905034130438809320571681454558573698998705457291402878170727894267127527231281885977956659573289367749628354465422323801971198154973565920905351388969554116175534701059147802660181490001755261832793881281297843583116836835941954902980052650894836500432630363199503510678687894150229962495113358533986878861858732956920162162776568573299906856251959991431735594586999385374320874498642325432446894528680495695868837644359391928540278867509146977811029167240426867416057438099667428284107026331881144609947071950718724845049356616998078844383122187592402238486705516567852438048824635658215798355482802899108931792716934323329871178505000317697158298881919989321469745203137915026588259339177889435253100074847279530667653281493564876467614475756952591947673233109556894415511819404003760224559239395917327069149539787445808238439530020303022801619492072081463700651735837979707544974136378458620450915028666709699542094549905589878825389429581827726484371689854887507244596990306345923151292070298670209484451674621197882996672521489996078947178345402658200358385333727306923017291939058901652524832910460623729140573091012881622532300626420412257077303817116524385096574469607155346786697231765186180359815577977821568512517590069028800990428649641636830044492896968827673561482939031926513356438922389925654250267320737025994498867585113776161136726650817055857996059698429565444248662188763740582946814185548183549645637166085901862416301882404293974244383678314362980384014441564826304589876272430058511122874934780660560166217466400063347714835472924762449701693345183775463728010978385649764952959194067402631077495068849854227325085440349586370943891955635880453227748735068833496157142441421385138914354839543613076512059705070348597328227815279843166834289034997837611255514630788705396814531905945850964356730599513956512784671036338412676569237125506936433810101501140184426777768385928367277203078855473253978064446574328616346147488308178137501745948433328028294180832478052432966180125115591475364658028605258193766318977595501819874338246762419245620496373024682555191833929666455977832227385792626925468377342648654199498220291731135478356788938706621373484609860365211342269550652147302253390101410375516549778395372232344967573868347830597948425744460618801334493126755073441000629843211304397383655525746410985129139498180645533832486234604680399974809281602296558633806038788672698632159863830816560199918661320307265927804286583515366742532027439536929967511651371816993542510938748545332008701361618481282114903111195871367320117998711133567995142448611685575179146755472211239399530637947501652698566306255618409203721495867291310878548316753705945507182368783629619381535325473333514654546319604137445402451408478527126839515282390710078786472454392541729626542388996998452531521794444082550364186135337573151603364944336264899277141568575445535716653969836208089049108005309861849019335694630806006917317822411702139221016537972937654545317062522450162872487495235471553827514137192584799653919356220294330931327681031505276008416502635966032427742175927090070266747817023245186273773994211048163400889580893943581351194794510269095208953190074066836034807441507361322867679395971570895787064632596295007200934872052588217948636494897037414991731631879948802792257048906388832997244892859400367617635278666795736173898148196757675758409727989414058688222014944270151477988464911535247660419383443700707713737260600386519533255914942513237219980532864952225747082636037509641677213294621538392601217944784796279223941771345059515696752573076777788894538656488990207048977393137062186247241147905615029907137020085074968564118107245985559481240610834019518790719969857586715823302069686415430732156901618530765284233283918896333695677021159989061710012337043414968905830700052278897157589258630340079757235209247467740125148127720611280017443051366184616605077398511897375303446002674413654030453352158796530889144830652155377251012594730720258860975887683301116301298744594521890636728950581438215712210466579064427813003566976612354940360022361609008783403625064719747846885105905870814187831820603492019568933696517689926925911564679896504987335121515530475095451272636520501966790825624370847732527037163778047061246412707837251861399807652334423132800415122031402302067231539253327201633494558322795415953504527779084545785442143366456396573346020723011720066243977409591800443363416542704834272300413689914534596154790626848569455659909909310381074145878931469033810089021987321765114593287842879539357034419806071005900730972405334209639536613486215647939940018174644808444979693438796106601034918628918204438841278150982150871124744695198119582464899893796492375333402008168787843796045208407046074519156619278762646655150912404869045057613178604639143482447869762915416712474047165942921469291321675907991538542380240209439916630424091953538830645937669233668725070562714750682329167839437210792429833098768417915145287468272891973988253588178999388511941724975774158387424217694797279258124414442953174226450780650322515878188444718086777945817145532977306694951590737095253947467655902602736294966309773926894504491659016152808342986106907559357093565595812572792944930980020328519080207955600612388948799405827684428337271327435931047192380876493380129974635527246471880541945935469795803516785198868250592896457834793799141614430793604005898048486667459670589203428233571444278944889065170067233490362771801148514088757411959904167272910771929346812559117879595536542440354297189775325383213043210728448431440130107495988988787224414792027255684981189737886617865639287600010954021523558270789122415779567083466180321259673348183707083953499782669109741780024209387871383105804236274146880892724417279527723554678573784090070915051651922733202204573385757926259153806629842385202930990292010729528544322202106445071036199465483690995065310104552386250781155519129284179359030734300178138581819145978744463974081270624333669181262251191820111154951384714428746826294247036808269077694732963551511324674415836004005049895325973547287518735359199494027706940238662619252218994794516189596414005917738731525139394083109897440527849038404770819328284421737499399214610747074100528700076198342178944105378973555456814258023388259896763291770995419824157531420770878650395017929465778968121447261880340338576372910458457442799246447626711295153780713772025034508832857421391889445760101654246956109322178739368881553496827052089531330879997113817763377132352947079789025020954590667341429777006771416968447975314961716725301822211728237867292350139767595448721013529471453513035674206744953343805500136715608576353340014881182036313699221774924099259647495409743926056256463852744069815996013232424996223414807076664622160220653942726736462319394211490047663312479958774260269902850042067648950681311625745443539731512200462855458723939196193634228926456822672097614519960785553294729483568642584649157863010876943252344378731777676496027291414739122629927170995122789646209621254712951672437891721013132946871381804220836561391771667536639041877533109023180988500331582862681719547188215689281636641204351666998228277963135104144421052309667925953669037122252917669350761905427510908087310578483253393205882440693558475070164348480036142034421568497381629705943146940439505368592360701731041331049102218043013636336690078786809728810525141097894865715506714998869920794391045764661057823238665995764320243967239867478849164769061322441427721078721116068974414680628283421953514998853540166014127739260656032104467357786807879885023712774549005404693199724306896995233352072570843491635641543777520381477767067943202779500707216538282996262576261595868043433268803697854736734505973481720304135110027621487172292016745950714916686147751104165595249851394498901235193491767439419335094573018481786645057856624158017747948892939689699463105193056775034218355365552054453358751656185675580591454889517274864492196465671031574029059154641858928307439603059638435488352014107573548044183825685879395780081365203842177135244627831122235640817727508929469451896881515078631198230821637018973633666981318242902417449248213165050076717362900809302116981875520612311674466735258843087293565315695233292152705293197298574588805923400874051132800642406911737731967882081585385074576035702167320547115948531613313857700222029060635322458618263210432481239239265095260440364365115702006600604813516148754579279977174608397132553958974829511625564389798856460047696888369427432198256495792414394025559229036304114075222470475100651767302128813724428235332780165964803757485040003694078552574621130016247150412154769283562006482920625483846602026860161176341289013676023363659754303726318619727618620312481922647860660348927956232769882996369824235721322007500679808562616031183329897428120441704681199638619049179272529053080077883766458532753045105371707990083119675263258508343365990422400650356258083727575510827767985632393973215452291943106131235445264458075810399991523182503255621925729908598775832862236545751010047625013304486161276627772562063283906040958828890873207655553704489297985770773977378408667079875919068505230791936572245413523474456555072807931815752345985832550013726479696803428216532347841764384097295134382514086099944899670992278857506418540509021861157995070058862121294170491314636332485990521866837401788331854289206822774830581390503688746845518960127637845918828067199262303223958348255866335059820133743735633719654872703288938350096906503742796818237092920644726369592298080037766420702344730951189425223128048769233987928394416928727450691167577079384409505500468997297601967154583887225125079026228677163703096666294660599333373870350777940611109206853971438643454068079764729443364514417766423679758059291589866125875435003842285666193924479803255887945963200472725704925636993478506382010756668667034531869840541180236218289381886720172408059071966645243474132570872449601980484806470538336222219949437185464027301057332934297833367208589406427700323008356779554542440868493858416970858976180243244681932964249843424977832558328469510458492378055631977986300287849491135388555394432618704652943022149048060094671861692861234529863894336814201417216195699552780938332709655928826013058242145238090916685819820074221376091399203212401074415453597075468393208930168931104039147727512103259788870227736156125929594255027571686004935401548437285195851475489270331705749242845567231642630188094194105821299253995265455929861048944386619298824610829099364583207317308640362663636680540139981331671302353632470688292345252937729185838965034585263169251784600845046461837703067746379742411197088990868976102947157834166078806400860796496080083086844090829845191205067774813596023014389666707762200673513260132653454834487629202272681627109166915225452604196723865465521636195571628577050563026736134019672539701038516875531660995555896281401458028523216585279510811275600991933054589635152028323355810305141239981702639287431891390185496407295507565445557882578517195665203491088946159025600114716677687475073818271353913837983895635973356875793129580116031390890490024088179282424547483403527467014992385114434343155973785529218223789881059675883612052655465757149634288837581955186089870438872102281753235947593446485338098987201898783390004619101178417576936503769859409741529988912353202919570523020163872451438448876082291597977036080256309117359712705395760177150260278961805013948236893493253665834321522993097155963961389362857500330887485924081665809348918621122538435600000480753229696078039365366725321766135421366188072512770843156206197360006259637872757510449794014809477575439003113327827082312829636622239636985071316258262575604043653944968503555050245929311574377542908102620377763420369451112590512712906688538353753844325639569339899751529452011845709368252858830847913486568597875842853853009000884855840008348379028710619382248033665428838772446531514221758976770554827941778674102783013748090815172218457809361723649694228691098299519291539834695279799899719781431520921799000299421738996854382230782100780097964692714493986154586354628890420396749053028759840878650167012891272018321684039297734739535193485566150716884212385274885290291392682801661555400380871078563355559573217821036610359742365196618248621668984351847016681690373480444245195608136416000792588200556621039776050480669447162760592962411296790504706857262600861526399844856862946008281746458764914467819929273457066610089949972450998268552308073848486565292610083603805931245480889439608518559524746712521426896636495823160727155640640824427558419805812671760804226726740408110914267985013112761857743095863727077580798667997239704828721878131328569830068351524095373227199940362750497089066691961247960953530014859410549427352840730005703289645988630055812590753086914435500157439734092213379657955889492717902037299419284405598866342320394186468829685551770137583530351136195555744764978902295723628223329302505629476485090945175165232618514302205725320751548383574492914963710055465388925221538536337987029955644865127657332117804188128633916708997848450325084558596496591020469455770459618772586731524690593434101513400448216044448244068826599811291554355407506362026206197675430696944918297652525063869777920639674910921797313213084448760661801609350175188145175890299655422649225000158809030685010284700640899183287599370216521182466261282068390666922616095588073034898081868367421455120609302537684673407257134088121072252293469981207734029010467391483319798171438637150644929836169855044477491690962736177963279416705713876297393096406252738441475363421356206204334740087531122909260425816192504881388121734469551577699125742346129255736307110790797717157764688774286395162717847804243379066168652672662375073126469597842093423975674511331307950363012826304487746784857988238953257442500314399721926486413363634887726304793625057369969814967688659603477044897262911679494685768138827123708448892304856626427393882661299297922021912275210868640954639802085125456840078334523627833652506115473666708988042489459335790286393187685710105779491880337373270723115540122731632322433720715547288059604131505625450227460074535436948246746434191745112595308337202670373378639380524056325698447282996904532099054978556793521632715619542224289708553851490418799741249658630455694622375111303049012163459164131776027571128564233612563286016108739414830128574152201165422920779321636813671984218477736759619818001316062748859743925677323111583723125147776509727100060939843764049454773729014470841153397460155311867946923440498823177958735447129590211013288085532896918176976880735189677729740298463235285590953001754070092496919961360162041974060881090578348379854921055701246384413703153009141521003752127575982731714064951573052083950495305936390706025505643971701771161600209851101609894320890881784062194309963204475964458470768682698699799887155274322925558040177776802570196584435269755860712470943191521683885519822016873265255702323004612192217772986248620332226623350660089683837141789395671127000025652988194149920603332341765136418902490791378920341061118472606133373534640315110634832024657389953244386835456848589270118029114068541403386813737745396795424291683230328198672398011881625036961659272880668449457671508823429013891382290410986688020958576170697417708364772179693284628414540974678601158601686526861124481404533683507616224378701856280192498102930892483444552065212981199919588872209433250764836376252787702727751784112114338190047210697310592035524229784353945476211485893042521003742730148466637992348200008252218112999107886275459211227692181375873533911560972974636078050713145771546838012160515505374833009180595738485971740052918785833410270519796030004368620531453588572233070597667149875646642435527746911578597921695339201320845874611676413179498099379619605908446754245065367410352638853730376973274240573436278619642661150257002794611083721607036520180752712370972015485759463673588803030438493022985848343225342196442159010842719663872759411492722085081783030289728128281422743681996872627453135665622464735180752565928087783022683225161985666431529405112388261261392249661901829957966672036570950406204328656602071692477262221406930524448666053404838819779535081386498913777679580869185427345901113228100033857280426028790472083084204728655689425199712369119609330832877927082168732383542205655709056569400132338794739885118487461335789716593006173197207834243503913714712002578204615084020818668276518101318718505253574907284847257877241201572308455068304344014848817571643118138169069178916465301619980059341551885886467552223121520425439619595533425405744329878146581788277208028938844840245869354294359755781908333557712724465279908884177819712036304477008393080765948168912730398690242158766193318481271268485996424883507740464338512943003004497335314683378735800557816607892755078140445431787856365030371789151514027968017766847048149649366387654460638866145502022821880233145712025811798886774763550635206580538208387554252273882505752438643334272646349936850413620165203467203910734633198529788895918259993432096782477936913723155142913289968897750895346038458242650274921429635979738132159716271448513496335260454142570569382272561511355324182394418040773966487574332630610157860198054283262650767343200411329114977592827907271608277646369684728096033969192026939896116836884937011895291241522491929433602700871332608843836240837411751723858611241139809154287506295983552728166848525908489114876203791457987109764153604079017217581242961422185909574932955723587152528072575806125247418558816533266482396398209149779337028067122224141696215300632345251689863473649945348051404117820360470269053504823532523090643702189149226029509463574983199365261914478231936916541763929514003262674138485350019790810894299811073560822675256157241159436945652373225533251965834058735399257842729281435904263176700124909562974408625187314607224295886141813556065437140831318693246713635712194930608280209739323466401460953808364734684817288284171892306021016350919717433391027774378741911768379474252046979739684496807401799742062931434079364985674343113969903982325419105289482831462815824496989925125858258053997270911161784933132267255711963167194525953941285254281417238637545677889131044982825597869210374915184331560361695000952566183855524160072579414055706925930579163533021034803577634530031434143018946842590903252698146574334204165582054017987946637243918011124099380086839992951364331963802751110573505538374569616069700194680932400924887013224204248961191174689245272347607273278852848292018610211212821469313674913973691488271977981170892926537409159847041079615455952582418846514869000923234458586832462924451499807753256630738388206945188115860800388115228346740438365857868008977725998610689470669571410252665459962445948319967388974240762439125061638131092763893209847663109781284882917086041679984404247040255810233403892379143153228838633101636832605924859837406950114510061844582690935650143095298707291893351889286986862926870168582173409642107925599999240822319807916662541382293064780951929243828589347157402349443071182600228522457977455932961193359478620097786385435247593838768155865092685822982813462556273457165985690771413033122578847476587372913283147958203912367248876853825208190767656170556566020703931657681434877358160513202104698293904030492458762088470444059651748734587882941225090026009061342633854751951573285999118834014642139296002323448742833650403010611899596215285738752176896016933862040507254482267030143428514488492939960449283256501487477680794287628621169642272167064264443776994772426259649657072646326500537212363143542252981836583900155928319204083619668440690471352089956894343077454829331990698529083115646623763732362316280013482477340467074457028782480441918453215381718861482553243658794335333045582960670298449092019680240604768037244214086368686749475745421534844833719928872289295572612311879966598696558420508695503884997216701647996890051872505698358479521354652021557970074292325850001441188826801738086828620736396214104477739828043255771091191385644204345490008661499163025793973272241425201239776991514504591756390876656874048216561718764195240921194408243778803847203094789372344762347470014387543951056934357749552384142969887405455704193858001148768689977067668135697208249264553480833083414568046324833509381762698385105162001431275657049859079158435931629970550203536612483446384271097799670238188381906396407021765820687240709107493173873141669684825565957392131180984373192661006688599336407298515213244969776812712370573166865508777089142727317960628830435212547179592770189705242960567826252614987607497131119203575752233115814375434575116585750354754532534062005685219894335662854656044472140362636833988333073935026250732394355420061338220790585223482842901395184441972229534989412553351105602020376396321180413115101890005937785439051636215081737635103468977709704157241445765229788131439066661673214505456026244932943111381059506738438760069197895704662103626858510231144763008429945004201765551607839420901848173542569838840507875490470068648395317893019092355358308215170052777851092024883371688357965991113961048823173480643065910610705576490722934215295619523304465480157358024754775034018831676478941002330395302903771089482974316522935552899051418502802714609927478058548365566026886400445697858562686365229397894243219586997177716339676905979606733878873560706150855184330251473558042580962844146044797963793677471197608164012831921683955133540249981446976945436357184151013579883646626297075931341255297291386169360183906885006588988066444026299459606475479384012584954689068932511186210857520313007835450657586828124265009089728517640732336077623838105763040317388937374967096733970491825168213786841989965134194170023789651488673614943592177053968630994683743101799392973949087665722293363542531137197910365384012227257578277790408053451844733964898082029876708224373458499312415641120532438688292529629380216550418083906281220657037577122183779825788686989895498414438863416729920876990702441387755422358792222824832947185767944741044938142210562161787976017602726244451007338826800113356788944098688219972052830706733169979146145094586643854058919907450071384378714188354088975406804783542956588632392684979014602360192431578545537279666191595497703187130099049450620366117781424380183756678130769274311989171855769783612011066458679503315312026541412628812460937213765365841204800691205170939762085858770030327121339693541612152644430310215884478821501423464247619673006874448773143850906946373027339880526029617250836612773980152571381581799472529530035119218159090078219647525549658494197738877550115370215672341769840130392089583555910109260611098344594955545322246973628444008865581778260567181621916732945120134928693221517578166666449899017119015641074484199253824970496534233758799976421143399936832184153660491464538678855500115844212808037786779780661899967365489000241427615701510891165534258741430918253441913533687106434156163287359630492776617290783381836920205208979280505451291111177723159196042043142273740737462930895375365157959383255619491160249969482309389620608341129817232188126993861417964386219326557459330583061190489950072355342811609579161361887813690740130802500915629093559196020110242972341258173940225341524862063311723395044892737605481685485358983794206769763655970634977706460266480508002155467844869118476208713566309305860641058902128866792740710085190078115004162902494414932767868450897936753318924065540114440944243639002249555102516607722283047798446769527281532543140630670221521190307860789105570297326223651673422587152319074930224168828652509511259119431368183869081099092222075924497167018083520718758772892644151458295400066362674720265455731936062224543784654773479654535699583099138108971372149050729339274640135324300701393495602131022634587289979762879101249614194826668181389246760558643832593807173632470975022373340848150161234877193478933176591165380659577690156497388781009272664336206150900488669903698298313503277642718626813015937019690261952064837553638179880155398476045380650446588474321812811961183872280505262765950749401180348414657398393175977762596077828417218912271834742112370059045852111757370257144590140845019883905979906946295084987603961839124040303895641464112627653158348917994188014334927722853275760345793542774316360302509070448604186543860645353914323207374236093329855843434241436821057485204003053867745091078696167736387088034622535612995804919171187072488259844969338903315308812153936821377662652158475177793973463647698784457078692115003723008286925692043072315015471605933246248236679251120777390294600194567739791924597448211744285937221251981427933852191062452644639616660565207028846037136855349494443987358194457363249293808725205577292059521487646435434987905874343017068693158680203612923936241522752605463222661365325603287008151033989567755051809526631249509829155179863385847221623423580213520638961190899733935426914617935263593076945537957016063766337466215112806757480125252357493989651611676399795482816765871008225918432490565227719727322334564199782752021329161353700853229681052811905649931589690673151407950584212195078735555136038169498036783473200281486286808408623095998531551333570753256342727624370090178705610845044993568011859982492066869641840109298230540971730964023767293263863965540779467737717711198758587873897158533543900039825719215044686762794820595879553588374503335002977211891399935315475639627983642711847348902744343276144149597640494091738251606288646977783069635274786089009888661065724877886468090520150037210986195400090071938588824967376141711608014754906786810805892810653962703762787644479646713154069150074357187376706156234874794186874825405083760013947842303982601195371553831507417436598772090713642123952740505932384097516012477107130739680494222688014964474942916647373757732121489903142411842300510580137200934742645125802541765360014357210744804524006574498034064491290740187532148887602782708557850658278571591933589899915003729360491902264305901643019146423468224937451732684669512645070996866676949591210207528978447346400592501166045563478260623271499004720457016821951532457188459328750978539949730510272702259003633753993286394299469370864054789363475852633730368701507667292878367817800282584074480926235040854421380873917287977720938203191731876019435695263925882675308219220496723630273734952268401879620293579486555175565649413829316109393966933795164661004415337611642469722579039886834464811444684530518450341591806700316388095047447673027070241939899725543706313004321488953110274322701406933448533525698077444707808122828119101643832569781335569596843900287938420697982280518129248101921328541745377307433492196133109908364631538792416700149622193934636033365774514467009297065320351045922663990203271177120943718217159656971025927381975996193487714992229403840444505272541472272093310060464392318755220308361283475730193216767451088360062551878731964786868231543760110650985618973404764494832587438322858676148663150555614648632749394865531511735224790113175995103912265239134052260424893399652545729177771417069563689509751123381909167563660372135049029928030532866380807496725162154563034470879683034470457871940377232772674114559619350855177178133339740374918259658045228584178167033564058656018718012811663447405087983187380536699795147048275096952512276827617069268938573980522312330520539552008521499265075797082986682496364078584892837317739915516039040974792773561990909094914890492490987581803262172466693753804986216402883103656894293406101408073791267562833045876820231635535128905772744675104124790164595539106009035132533336464802245102800889820646156979078235179955532624901688541983822987052271673081588404978572639015308560349773719157458746320901785047758876988512997838069514404337095570151012363381242506918462701019706595027630297290467306315709921833975302074846512720602346473685172191145237837089430711436855509318470495856715771695414973218096157620759769197504015919206548588367453150423367973544589954938900732044291235536350175688849017334677386056005318774508286521484419528924859291861886721287728749733645038805579660492412014981096552933411076694613572823964388468229706273361724724103976786427680322644034644074225538523100438791607944419739367939489370374328583633265646550118059701048287425009202920403294440606119349659057328268872541963888364031298192477368315182051791096271055871934080747892114202832572474517165899846393758445846964469547307009083770174772718421541934873390183032228574190632896988189786756733483616092882415973990310503246235950921420389481494497949786217436679813637253937164704679287983186772164518958399601227768309887265853175222459112482583396058759551671193689356820146560458501931806625501763155422943693511629688185121327335263606307732334984978016381519767733458607270050893073258103633156444336194074893630129383318593605412923849945547356281844798758629961444877928440830852531786982278824672412469198679725410928740621660263174785990878095888392111133524614529215178951003816161651010157968707531625439625514677581446117998179165007818226729525307520465789542920870630366444061628627773602125811877877711606269589589178656491988125309785190075845275930201912673303542560851881581252961660394812785974747073297785819418224096037140035581224024440304732840741303242560150949314223916554940944128337718820341248919892189754622615966902737057542832912510054834680380252247439596138410509354554848135785573623219909634198934732959095971357753373449235017728368988683258908920390225524506262618569215804431680104729256558870498772622240847218346547166888570421534415994947720988244474113601929360089188226413443839750133668904424381279286257394694986516275100598195721659564248830715613884969426542676415174898276651500751101296662249342256701442363401245405790101776340318740833060642712199946212420963309212779945414143056768665180718331354796138964332722966002124535736691910985332722185212451157418735923140395367518306392037756222508611557313279504673136749333058735329710102866784788443305223416522163819953835424747136234610037743051793008009625451694965364467954006520857495064108971560393166486933867399126919211260787229242390343574950663860987368046087752582921807738009864582892484821206568088482291565573041293639848088538041256132359370103082713446273947206453725891272440147092002076871503624617359020231448085576566928929679532240689099174137647512630973196173218813620357965045892880461611621386386755227348528450388180987574552525647977082778382574646843997801545016468364908391856500289023078936901818742519516484040135476270078504134806841080021623859148580363888905849580565771233668777958811619233301021622044910855119563043657287184913079004143830865461228297783862260488913100706809572920237160336193679202254647687466641327794522360922882025573686305114880434794170005938236447976413699475476729991165981594818994022730205848271947477518428118557753919264506207933036227333745201998034251226837448243843763434797835192184943973579793066019721112037526493610450775509558502185271486033703439110381756422695536085667414549784238458437529742420653063369828470754047113413945399655235401626936113735255208270478353559507584256630142232191164444008071270171246429348508231421868165842404976638510437884033566507371908684671792753394053569284175152842940402177859848420481569122872785342343945266514426429843758206236071543649110333577992831039516640252718695530645319150570983255528656319439961450358660441116665840155238619654200304947927147599671573228545435424967016879261850331577414541806428435152608238018966678341905050353059028915702714599661795122684878028411188116453675121988887503543948834727548198138333508968825676957013612888919099846113755080039054534034298970545303337834080821292273774747909030173715926297191881641439129342701325865705559634619253999025265673906384537056995028209016292602099553685396433485283948831219035659373825062522885253654238811687536834587280026125411026194279828051672832423417606779754347083479434202676558421753727933644697044126172662767331810648481885411804208069967896211489062274629872328840417999887178111575832735260343148540199518273140081000794319768634227217715383649400627410979045089709877239403558264979448962171357040060356425809449918266144720215068090391549861622516420798274194675638511835561382264472907319134165361720449815726855467799754777799550144774276248046880008345650743510875543683243477003208665019216676083507634862418686938761234155577944963537669141707029031368471007719703244844451460421632943243179819385473346157564288385928136392537270838879842375825885155448274220514921402395368708256708887947341563678016031978056704866314507900913043305406525097018330194083291449910679008647530105505641600380516407947264128515826756583277547286472934309993819418162077840709341874600254479240068481859304635810990385435425011000094366117974010267413944795608268056290870483746348856298878920963735960509888879414298064919645563628944308153377683214732292483911106760717676275681705774735823244974566308843563529698298694118008047546051060139988040888792161183516332190195694476793504354031125033489101438928614638563654063691680447184207154167461914737936147900994610090812181286094519580531059876050358683126818002349468384857646122287139488042852418936792544142001318357554611920901655615759904918744431842596487813635494736631293683190474056055695170667309728651598199201954645574326471337084895231077532463579037862242232929547859738474367536117261621047995512402562174561246796549706217768149831226398863996229370367652173504764170664169912059177190914706735246462107861646667749237389726724340971220053257071957303917437200266917219024382042992569536585979784519753277850604077218417128159965674850207228549391489996604205403569004292787341566848916978508425361544017136648227632013746157999955104282648867284712501937721320661732505358715928019881297770666706168785307314093190870663216662282331277663256331793593855254908476400647597893197524589446690848259031477777312454856742027951501277777781083555352102047930464495531713903225489874798804840693243685184089459148151195226342193229417850757454259146766229644367267825753641885568599196264283305271546219529472099588398106049951722788604792335251904055310544273350190328129289432880590999964811376755750683738426856394387222011169220288580099470068508996898365710150211280736502173185373254059542766057258410697661972307228774174634799019692939371073028034074406891278009314939583185985331641170171070287760783091274263007555533906726586179623806867904689191119528542380151390833243600106608518058038561254316452890288310607837495373236027307313699178553322086659801590236584985491748212659379750515857972142983042918368905528893382124602855872919786413254619385389461269119819028873878415779540733864247270279121246324740794406079829204149390827379998038835311943916970036677087096127504045035247901606181629626279624249728958175848606814307138583860606136414462212265402393353611735328435479023522875098460697884800664618739016064320130282899996958294265680718467503407910611135996729507788943915120982908152443514529347856989180529386561910951042265568576703314675029086191461813317581472047932306290027883582919000115982849576987977082881417902271594078886171130910807797835520559417567454326710593988470446483674833072685586581001353747146689823698764382737083278103927893758956749676972571133181498144621801348018530120835108251344356742488614931803518702075961284437302549732116019668726455655525867543364390277264653881464875961774499936883317196353132605416186383903245140883622532295350801543367594312681862507221059329688173950781363939915177167630805271257878422631313425417380690166833935612765590373924320626802159271718252458199693446053526678748705880851013625303501824212827229885278998375223906401061394543795944788819081083795726437721942973208925331953072979729850227700450245107756966259076239146577446426030385145887044921776324819485923290162184448835749311580126482056130202911903335731493793416977277063829723599082273923508511966593894764536145896927669392802153372888953359281666206772495582214211923642990082949722691374835852435385022070038972630161739544762774457761409163250036541793068591731618317897170144827890607438448758138257516686077401269102127031490211892529810453041539357457227607934436044731960204539295206902175730268734756390354372712457120996980581658501592774955140519162335053821827535152021005999376337927060987493749418301623361864877302766630203277903199367577556331863846541700197774071265563821259014371301056466061395035818408322244123047691710904718413257551638227319827335938311519783053637780950881477958580660777256856571989809613788233521064988795004640479259276298157147989541310595403762754325651219177581570440664534529873230111978055461012616902710332036661868882463548881747728450408716715737947081679880760761567465586548650786081239213850562511786923466219079661223183511681610503399642573880750487028384438026678736179338249581815323588320460117617142336851828811017245565498290584727252209005439629380904215213295468929724120596996844534872087179246078154191351991914453376585087782219499204758910129114242308750217313599980078797084569435446804084328756425126979366279444727209796733492696084850322997632177518772701346590799875894611759264670535176224104982598722301872736712198076090306871619545288692602751376513190108358958725199165057613633795330717963243059447313848400214160035123454441813140016610960444407805898160901934317983139776739434871621770588095031727453161622472056850563204954240974732961345837778631940782611083729410809756104127547123386828646572214236227366233799629791344816572696881250372415898564306548030042983071265970064561417573063768586270803159411097681690478613839985257464400518751709032983313984557425949821416111524487868035748342309116528231580630646632764776320615938743296370459346107482644129545370410405273588127243143208424856011751948351183517278666934607140740937539502334894143821371554783058235762241746631708627013660766337727672326089813041983566549954217791224846721764537848246352482999035684061271040378842768855230705793474233095772616672466994903032564027867509518020400899375847980130545728246103709087609320646388057422964178646116297592530543262206140476999863129661068890953792342301699518962845558158998973602421358797144604556752143865090591373294278325555079181484748506307453299048218634520075334565917892212820311789412659071948777940633996181648057144421881748004271701677333718188360216164039777017014229497274537066318611756559714971160530955306867053438130470425474057059226527652832648297215848552681841271921259227875270334885468621342967491115604600351022811763205438378414587969894002148947539066215978666611348725707665315748830381045749796683037425831115475039562636379666319585733111169840863133012507724966431448796295760835831462046993942859010396589673817572592802766221326476072208790177430749077127359907389609525710139926161853737993567661854861572310555154540642777015382281826818031313238047097191514798550712388224143913696272758815123297177011389185579150468977102080025926713923972687920883748883346344283889896630875086116395053531208950393321243217642521353915393909464684106718394895594524613163108494330685755854005667518409048334801387183374830319651561985639810842524420670742515140344850918131139523042879946395401236874117934609730068853506574906744124397834314167180552302100031716426016349578596921492594749602340272932639209073713559589072958450695815705817720677976193334974802741311131430099123983784123489529132349124823049441996684294547515134687607060021419616591731169106094159446361172890935340697549473524163804773782970918594837396290570788653638073153006693979104864015845475989292628414928760950692878099974990623926992592122743634283364726274817906426018503237436198490564728999504175838849431845697106710328511194709235441539892271200413704845485350473515552406606528991293833104918886775399487467963528558913127837420929830090043687053689951391416765917449284349523220302564348714195829945198620205166008030367063159388116121193424375191756827739851172823406642064184186896688769168847164112742105920949214296731640281951483836462741690379099026681300213784756586417931416532013627880516005294690569005678156809077648539270326939864820798225757480398105215253459830449223915782030216740189634498094162274662753145486696599217315759780204200789161957065785336065111713255919314246271945771850113241002486062230880767231487349760991549332042902094922722596350794639016362645153837106905323217450297931298488595412339138354899818043549292120894580837712879753472380881311427300895644697668769023770955272243639176216528428127366137694343896899972150669988724381502996047522102513693755162253349624462713409759652657142516556626073565414324308163467788426919800108844548002185604489058717014447149627397240794797825416405241968417550026716309579876849256722252442999224223638941445223966951609265003349689431119096450027249246390327780822745800052378323596417287486808349224295922182976171948315776994943202803979800519996642354451973515614830145293306095188619322023358372784584143118538220132006862748731872633700753388042357647891840876831397127271769535039094155542070044978769005820000091677724530675106561235042942935886248661753434916628921925731145943758864270152818577263457814737074211628417491178265116999390580508915997703692324418753431865799480161376892182426524917259572255034357271997173227440088244609504337320225527280640663745484862406534805343409337337178890774042814051477693698933797764252551437521337544048277688567347697967324141374624225467873187294794790930627383572203076756357734720600084383522210715274371056930735804711738554873867412281189338311742496670527636771645638202270825625105104201509665434902400952955174745883767710801985444542350970385986938582651631590160359555413839198714489371185289756946130895178819889421096546040812178748707464049201674578811360461239394682574137325592318235294287318244769907962973394276446008010137004033598694356570200856707849992195720502059263855496755829067460749862312110510686888994523171256036437478122220007861498521973546854197963606211638671365186234887305119696663691902640856282730529252159710098211189113038265861187855298082995679009592807800889482535442897704645571896680612532736141278805554966907456653391496549477270718734125562570752066641090559766362661601443951202878456678698473801091777016393769677943743880887241295828148657488159627344891321143869679180058450759794084516659380572822219739753537927736789355748657677016211254952920119472728076394325315791999166850960050642081716587371853364278796100577474664267283025542204625551175096647791521466652063694928569440478946853376308730638426670950113949949952439668798227763304599296397667719985283395199749871431446143463347312298981009520213721947836716935153106803721118668758740946452103960416261265411224064156487098346778611638288020970692484859835603353995569212303829965025301636903350584742276200429675084800618210836737878584906310047039313683311173672183484731780305648426643939185240059039721206220512647065913566475527096374727835613807134525115657288129302703741375923009619189069825424825242591254748033874863902400822435919545980021249365780181962355112884095536702595212652113422367547008946319098346627789530125576584231074250591723091983327267766340593790883238423831969500236954485286975384620632974099054650871060063551210293281869665997131017106143755163872580737399888778832396823839089662282976621271642354823380661304836997535852596240793568018055352781559356240868515601230912134739782463957059220987934261717035564329781549023706623166325121726760325795523385515238692706003119141334898620118890296531336765892464986274709345526159098332239454639814009607090258811968411980567760626646362410087919605222506959286426252136053485815905619158765525188091988013581261383059605640140156362329821765398398941033626705623200228703254662408298658801388441261543701339561952864433026056964443822595449405913802508193347700997133446611988811348527186887835718676614360123619792023985451493946680964231180976424800140835266155225050815622507501529991537639880736614439184998165171073259323484977211177453145160231995155230606101907470414279927917971292023932738095874587980574420443729326312499075387054936345508953960259993770113651028147953152626160797251738466216528797588824920228184962025284226646733787711341841475189062708645715635847384121308021073679064634121598981013704495914048306668086435123685566566231370782527327861841778970445298138727694763685989683393005293452939021507011759918361990620481259151740469445245247962288807874695761684188848498352176582911025931647770097558055372906713919384328415498717124043153549661917985180840354059356621678841542910347025868156368764924613135842889541704837157370828885819400860269835316641361235706737427040981795676887423196203555797383020980259631600945711139119767763873532961424319995332063881799123754332105024246611517028716712226375820386831252147184185344064248878963642464222122773613178994417410316299342075153273157023582211369023507237993340400770022718925951331003151673056395498572873085816838093952470747330253819685145691375090357121208072308322053118660123544340942301393587935930396044536878438167755636743389963984302300385934514441806932222935533343932894844603884649840622735507869658210867705389361412218208865715722328368966447653193170434449920996502823157760168526516317751522440809811781094995695919033311796956113067895958331642462727665742459020333224152714491482658748884145077594764299932842477875167382928001722029363913772533079404501668405165416446026383346893443164855020305827533936001421845194095043492598518704278050973913063525206817525149247200462659163225520924577533078376750102918344691409551089984611438609068717514258505163523081277085419871720053792726258158262964211202204546218114330110077046748128308026655100016384338877507771959421688812397221579962946345571503777138240139181646144266376565031005475447908989882744361421803618408986463592736422138176181625656768326640974734645392855934921340331151689545679237928016090496883263115637781874463131119900172403390974337520757233878847969434038189297458544850144162826718472027013408589047934086146282613119451595062445689891551125923958268302357899964146244316756181184234296019559992114989603759536011519707603245228622734516784884768693236850896535425483455980053470457121721661280912426524455654175679971917642155659449112281721729400911601639798468988935728948000720827328109679502761293927946865302530932638020175342634231644201920284402999207124065018624431426360466800687527863757592077747534502679433975725074474083350290305194248269766784163160709680768554498545518842760778461484189449915153479488643374853914481745378693648171921267994964813725970585573126226315620377512209061507979757905361194249936763557159623484937394777001784709145320687923799582525464752594803639708498694469524220470603690618299171719364833530526015572466863209545591210717110239058374779650836928922002262420662001184233608594659096259940618300808893395401321062254746970364367187413674790927225687437640504580998085447973823205394141062937309304389360798738184708955858651707248069098092028721827574352666277129912599677066946403928690202876076116942159699866895599066866855864518085261373200318954751036792598911580727539581874325650167637425195127721582035468770021733784651286675433483246396777355083098829451829228140865015262136773680560512106208905464155295309092279613480183951356348662107185006929901830342046202595801287868155751529878094790377675025821813740204410540361633967864894886137972821686760088332244419647436247234006275330747770586352278701950364679001522731927604595324883931566475621453970385302152975094382254761388516149523394214937185861110906004076438298899150048069091571389475415463946467186935151016164592798054661950243568021459085484224893465317686624324890522340248220625763116794721732884551728205963488869353020422236727082935396005016735456453640392579594724013970810245111966750715183704004473480102767867824516076595683396905947991792513088098599228346791543672986189345477669593264719383929615990729885432252091391126840062893121601088334329561008735111246437118294371293923057449087781079374890242054649415762616357070217247305119045646061742340168198822077207332597492111134318699203931251823893713145141440369360359575140069728115155024792140154038001371348606608781010439115587598158115657217207036251874759639624380306608012069112166503981890576415885451243786749350396282728009687455206062159377686807526693941973087990890364773814288239997969349837022012550619149506614488642838444918058395424633778168249024155761571690985418585716779914672351779465699179156329483907767579724273472914743209604379734054566885406933508982787389876807120807629672715552760478523594187730118989566802069513134693456485619654885229316359342788415285176749753802097249152815989458698818177505714394500179554274339752723360502620389622357132553975887310902570148171343041408556692730697819286184572364061245003792335973677611455214486762036431482269814496044241958023137225961086695912647695519045182464854768207484746130161084270847102984142657183206028696276799665049877716483116625072381335157932121705521017294351900448772158245677473014046990249483094184383974853256405315921774927976234311902352940033451446320663034010605209044022863168390436947605081956649287087756078254718708859479459979858547288876891418847883267459153553590826207610446790450153817751937100947497123273748444982580017332157763879040520251748621467265862939247889706937767355733346869043648240716187697829279091143490176361997204832329838290370699890938666090101554793375785314981682845694316604945157486928218616268813188781872873196150971368440771084481731487194351889185886655611252741182760277745211219781368179879133069443282085391953105479955380861376627873556555103084486738573569576865816096070515893315011560334230301573588171760755597049014419123263132799712519876861320801782119852285556499975534293165833462792944299550109328105629535227820208926880249445839240256507779052184150370426699674643259939894985314240655685254231443626199160409724947587032282582466053202677830558087443898939747308327931492750685579842148119329895459444694689854696700489307601036816970133315668793639936035231837384433667251340529240758971997522302637196321652591152713420528971164159586991113693680307858572624080417405286735059201080321119752301392353461339917700680363361832936240035850872553218130821073147568209950880241433172846571206151708689976254163874725471691032245754341140107332983041856490281730192819520027292136123166403319121220987524593598015800647123671789603887658587469505129366329559147494621765223400273820330248291353500812227758541322783082337254210163708316802467623439610043597329728272640205100723160534677886078294627258483402564156534833550327512299653118115125974839719711161248344262863674516061935638506400283454693182271211235352779007230538029887958462358703915841010370690992758991548069940270530596532710021001714373467958453136835158074787416127658506362891290357689780886352606595108053271371591709020447646838195793444172092861630016265540054916679227340154246757800509227724176698276110452338689854782360681906624849884891693529203779975928439642117852823009542372288186623327900395288268269964234201300702424745194212721109478068131315400722644756930845405689246644113397587270707929666929476816011600640890934858917552002593835411830069755695773929910909645704015038590866342466363692938144544783962313475977124164207017208217820106120329284898279833508307606650619569934392645312834053114029255420797625644847365345131924874094633360843314675482748803353771239529791205066866253173923126381581759728312222905886322814234491881068553926913892146264719172769333407306886256924264201817712497809785168424410505259421925906630983486120388890536361014067521279925592572115627603756524337342424848687256641323210102502168905205205396429223406972617183081822566107547637760624163423101293988739898596587537402552971550515939197780795767129897686790287395761565714911973830606786149728803055817782826752955777664467268736501848195884823577379822943194201748032105875355065503307876186862848727341975716396275145421318098737827582212677559477318621233099487954958694315306266676705421478041541777220056656004108993150090893297143774872454764617175386292638888015326442411535487543124916449655264248920929566414498584641172339634079190397059962300462674523992725954279733629859326535630240733645463217281139596291070243103950723497716143082310804210582251765354154741989962878523776490222801638855303239949855369436029363429235774393338171271928546729760554707213233725008729936705401330571969531783214632560593147081539477474205529398774195275467258449593450022827296711105323139653142702235300116073387492494417941305694088318536944758512776210225387951943372219471520805137033524594243835831318377097990879862861039032198789200631351818300274731215979740183993593269608963645713731253832711066019749999269293332754797352716576465549226576233326574184001549066970535294913319118808588920360415112448853892785400439450360983886111809997937117083869223564369005488828701287816695078894713059924206103785792535687609307265788609464735121616252603005766211455491738011639241277142557715511154595481201741378488021194305436558412979405268035453410468948497462090417405357531659310202430189843843812823135943483520012831313649501528774246203636917273435356856979951505228793252503467643519603245977180029906645386214437101182656607598159035010204983419418678415945155674726317073202871486039968863609611754909154871488902538082334217912280639446873632967172470402218765548718287697744210056865986042856774997736743185648164026450338210262600393905425283967264992783056767950752491634679768450665116737413483593589126275335939339427903216621168133081464856006789028259800862229247575825713141110428869359328734837927663549321810082212174407914645988819849815414299403245950256585660627153034340468563700340052370026312245848819354703794903890893056507944952482176206371670915578461386078233116453347150895929460081331205116407632962658976223144542859449645610996308777215869047294640234082413648743849317826954404815263467057358663211170404842973810075828280020064685663181061644545246442429860021631312493906010851125069401274727382381895465695867908377963012920832442061178604875520504038746346940473024452920720814393268890491188551200194224914115786704062894775096897750957884411834160300840036671537375617208892402633698797517391156685549213986862380243795226332204166185358203040336032129265430378811722463242475506219071466769903651863704247516068829008865243803752444421197899769105955597501661630770340961370684380251802662596489414053250110450470552966266058465109532772762712359066812617617666063133764747646018722477064955619301327573059097837442921296488531776509226060257322191459006931741767814406347550634422355890604614880760271627552368620130789873572607945443417546018236335576907199915980088252515130172796731990828713463496747745488841585998200166118695531439538363401910826026381032099585774380627310947948322838169875470938918170788814059851404332330941377968901242525281961389453199904518980386340254612057480009404371227708287504116554725855222102347040259426215960369688352377600900163007135707547745491682695650699889152043315698239907873375158645138376632051167434708458114464476005006130151301485078628046803758535072110913094139078025656321186590410518792090461318365006827378330649459400074414737617263080830634575319702823408503566472181894610529251439994734270059571816480448645323416073289218637491939331775713134170040019818617699215791225705115572633205857149030842097431120215381315295591892440496502926777029003147398249240067305122755293783401088770511859370276641989199302592099841727739600468026611566368498443805873384324119663416997196851091827386877301085626389131279559151894153239497840585493334134512243827849164775529756926812426427894113284634898900017983078525348779981276993565271641310447514585750293097610931621221538220676299085810221917527839898089401506531626575109213716675974742721939001468826403571099850589330100590939932586555919301187444428638526469241585253450190073691717790733089591704170314690696121809735866608327883557465522882179732418546550515824870608322239146707817255105194968492489812321704599277485449044914292735886340553043897297121382894797976085985770134696799244952540383758676556294915290782479480519202601020910748421438883024506585742339656474571343488837490209996292050687650506029056439899669192254845150448454950273328379006414611105740740342509126303242183300369872315087189693612804855029115337308917522448627684793619730069784825200812419683018040010745907535770065943153188635218471169876971707730547344106365574566475834602334787538767075915949941735213979861673459355978302898817720517724654405451738375201471355222708861642235206676942087946031199554869370600843619154999794431785441653397722671901234133926954140441834931536678525570327986299536098586785564595094745560814632868734778090697335378293661301135017308735920249937167731722726770051203313383075902130573030278746588471303107329437864038352658275759538549252809802848369962456777657397180547863002709756552244443721426113121847534116785981161877799920563350511623215093016010805698803588095581395703619155112439896687000706548701016485633170101791463556365588905392097123079089638579409210060165433446904682368169194577463179981457689385764479829600799524367286571167190392504619998694761139650883160131574025270397288022688656557334327376235198960614583546373610789693658827474867999692269837486459264111029565336153659258025939910852045894986509199091912179432215982435199105062115001683094076267882385048903776875756430169822364541381766182299019645486367881593030640093374894649997872192480211711523287563918745457981532617399512795348040070913992497986115689391378022479312914066420616184018234939540793108812116139114084056336846556588446698607044879209088144218854277238903445682454930184596459735916092852232936394657191259430454863343069652304878025195452823851086629864508044883505481001605527931674827186766159224664111651094732328145301126708641178365970909512663804780312102941507855535264873912599609850829820335154698973155544055434248781815974886522967753442489930739288282830844011623952887935067232764622789155116577537810917427749777074233402811423418082635352837290020031092803106292731488578562259672120545279857584864633774949682194169085758462402074771443435733900092958351693913662665974190075627156860523458032538373101427029412299429160729419340949667452881847924564343306144615981177827616258295746595976383786511362571531054305143538159386514485116155970128185140877781822595361007804321648869403471870467041631384222027491690655399039325722816307818608039044578511968466002401810164368907998225713212548465891540206944638144765554549942432932177739952025011733498112540270954636933388135114911417431037110124740228831664209132477500117465426643207210587712039330929977896833820047722242770119462311083788079670223219121359435597613039965811253083984879745602785746832792434353607020415888400141263969636717796959387036143388681700784177001316478015342249457813474777747885703990424286273587163051971460002716228286750209449378952482513688513501662853983190165599190802849615271311322579453537178152162943907174900168253615591872233115031944817134899022866963203184321723702254278258102634224179817152953893741436132171403094644378084220494564342401849357701549313179531308615867905759497744570583141848711742268243665419547675433615541326107821267672141737916792931820536574178269664371280412937527727354729553187486299863874561199603117862859776563766744553821274810698104835454025832341665605321292108756826134384432435971275060199486182521123657997949261147613545338489012486274840129277700666219324808674978965171359425575391309458609957374249779908086023496170928034403361987837686632660734603096005527292233093046485545283517222839958158124966144743266515794926877671083005242814648649305493928763275298484387373672933785606008097133943827498754075546334310594077148316207507205545018698676690060843568289088976054668961252506012223691148166374456708010069851524792656786709441588345918519260621780046883862788320286845289283106489136921812999342197526128169099072950671743574888241506174520221075828091710902724049256434262710825530675602107693045807234260492118121397897630397829506959211659058528501276970341709054635658769725133794863572531451275400483416390062718834585012109523983856334411223675006880888699273483703687990063572225098707830275333024037437291926474289165798993643080839389100300589088609105204823622917313765660284402387459887441490345604226884683968790484866058364607839372295219133135670379515278422775018519105361458545137109058293994274437546302590381053998570287105781052854117911557549271822355948394335986837374698924824005976360667710774664471824360213489366751131345341049816160920275658572515666327861729825770819235299728368186769194821347585474160459169397890874998154471092101338986367589846111650522628353288765048909247547556986354522478026846973674303074840931521715203055921416129896459010776882356038565237279618583544304545144526395453057424377899650883596206582802739072407683526210603094559510919879421721162459627549509384835943352022241626264721167203047289749641450369710776699372661860319315794454046271315079954708191901988923338982275978549530910233839024012058155626222530674895876009197052728161694381502066000521078945682576590914641880117721358165635376697318976112144813374741430086785646302363173414742916431684588419645488361257960420395056321991271258525857487110423310203279902272117333573157939210422448146747146186595557418475551993920444757229749769489824743652732462485933121205489818892064452456512804758309534625549593873677319753742648030061948038491857124191709468375076501394327621704368797805638117912584262685611614990960513959394958883092051735813466887460651436428244550727190884303778753467288502660308622772712639963698130300552821250595760364272818735212605671526323554765015853755508529742421477440589136972181612834327040840737421515840075758523824847279299141269706123861231481710549563476603531861043239681845894756336505617211359608871736150131041374192201591246842025277899702115019536978587379471241817111395819023179103299555408130518177991972869719428024507405051623933026460205750660330049714784045664988605164161816723610106166248338171295751122293156287140792989183038120065634542837775712732279923923128796724716568302302957592311592881033529719419266820685249001740728020363238501200506425929449316476161354007025071559850568491391091991045194122967171523150066390991499643048130888969435233426710644851001741737169785769080890889789296878999506405958127586772470143783545879876119347602464489812954323207479564189785043952594560886397841884646483015135306977829443796588856999298261607078469408255818797336144072158650050793609459507468401575845435405081157297666295821578067466309829013886147575955274177910133919005522815603813861428425809451320142707477378771681001238158814420736555565845106203784674983126458121570822542301125128034303542034138884149698232432717083270600460728056652320808471667543383737589178411862053952162707683965435948346764288542794887446899371597651389035767867047639137671382642260585203533442869728705114974653942076844235176341480770837301611881742028096133451909689666757733561069885840592948718335533746402222630936658877953281430529454983924541630654406384466828508793944199405613353574543103897563969102958651425830548678144331673064454454996149298003630434242385893235032793028477213171418509206492509699663088689549674508867020250082908050253558604955487002154731728330465102868945543187077668269525498085063379219783847321168945724691088740426505637508669943146743179861468326815573689709254801341834697710918428208431647537642520933851434716506431252384551691498584744686440959644955053268813902626930471641752122029367166433828492043846119921376635376878348531008098994123383596828608999878403535322930282222392169650939754960928427533067263311298906037414250290234565332637988720762811477652834770330673787125951748023565031767677505852260715654164303503227075706078776103696770956292781079360967865428590125690809785638596439840280728093664850021892748836852396604057543546906107350217654188606182293523380709587525333741311792080123379168999673801379034583274528170105744957146517031262119311535478402690824772887135873072562811276954074659617322498241964713543109645389294849136981283975501494102894910186750707300491266728364045048556017998548182681949771335737685550039639581833359917141926338155161427138113106005692999442503194531555615084506191633782016056972198083428678798887648409014137685293885128602143509188645457577365886912406821107613903270193054121223512654308339172678668530202614874184380845842510531852296235487932948299882080471587723388527329811005040070728917132401725028685843407958166644409602679047865770705260675893629009414693056662217313075522587841130758222339225731267433215208131732815545600587719821335278802973479092184211641612034431044945599768828135385300225639343888201182809893936898487958301506194711150088112049655663186871901301530118896977439737638291002465299969659800107363485429859341265276783455056568511362506110467440773460823237098806504999213154208476566737717651142857736036775670378212114572639538328992769501102186421698696596651649020191694676854700211026956891013631626282326881027836162417768325070907705691156435391196197694553336477364304116616382980424519082246918026293825150499893301668765126505633837226916730444065632232215823081353777842370397755398144359386214717096304884572171862701414073526107054131942205978648445617744468355284647000820996312261348490988510168900855839056062053321554973608005751036701081604965249094569909220357540497353340981647807005992591294442188936317379069764789411697114728511053172778089118531853539482543809518691579979956973343690758745332380945464373097736858693738162204555871048000912251934433307581489965173917530188688458392994138980932775198242492671763081371288850823922291424156474664800302715351102126121750668662179360002146233155418339245026657145321948085854165818346598004063182073488726933064981070279437420999125913105919841206935347362226304685294407017807214446089761740349773310187794971201440885982701395258977267003864048264067343173239364658245965675900403930502215347628981800881915550452289470968793865250922062807669771829800612631491652782675023092791933658897732616941466583806270491488057925862878400169689810640988223495973177240131919233851088174416613376506619394455023607886928478271314674751160387984342344456149945730446551004110822339180427047405489056243413738289907807723239965042150929668750039768192621124751988330269154090081246253599170615163283092184371326699334191302071294180935001736180153240188822765895327650186890425640328873358919733010586619099450080903308549897963551035586911161279267324589579700947974250932239468290446353661576820704032748690225498925595684208969162974322991731071970561461106186929849850553330419210997676155458242437761945123075950660675781935855793729490098832680482546039856198015929254979907325913215572294824995966661473325387012844603968383981302915440102804229686464031504055077328078413354497663094932460424968265511688923868123900723965392790938126295150263217947404578771752792137041613362464227111172636626333385109116317773080282234834820995891150424887470033184232966478310501169168511088000965780862313925923317029996055578260564136960097409970503717908567169113151125974443987407911290471043514954864893604281174759259268403239115678177262470801546242361446499286966710380519511171491495035518219465283876314899369369935836113508028897266275510964688948545900199023394646615875131490753409263274837034057902739730210784035817646510781531116964138152064656818990740186078021162808449101379291389572732195348849574700848766313520758099205615793450512755903840245299307750006639381779139456180849411460405716443786460065812943839000275896671723407433223079674650568944791035410882726571890922650378362647023577714290048366799079394866626294655781171512683229291841601182585082683379481528625797774576107801129469351669634886420480902318247219713322945349226409134792840431799502656704463395561283425385654034333171853491007901613381922805781699490130458027621709744400372254469971175150227092573788621097290550746900912090994361879996891911241725077697957099949509792685860829314104911418732596487918662599831718609145098069637652962249166202712072999843210443523278761711687859908130249045683780340819992863213651348998079493848219041959257429655276140205567761959722953836467857079211017919515586010543099629405682322283474233438387685599238288872665368657750677153935894598302611617822484810794344718426992247284227137398766671193413019039963630694903794895583654823879632802849372176266996655931628673655278355145870821932782069312956323939475843899508634634537331472441334488765101706752059967673664146330267510307048726139591709195093498352549786717310265690683110778289620138097479470901939811310185723891623167099580896642622998721281859173027151683901044712301296603300120179016176090733747110194780322773487768853977796646238049969724771944319409030541933200677644001704560613075849811583326665056619612296458378603913075559879095499004899241871285450402620166433497089954957959160740402471083799707612896413675525424701744006865644736634157837382153196690908692535865844182561735560199731611090251762605406409848842284667376272592119840902842384192038795209551714197076310516061648456051544137432641718664008304554551748791201343520391017301752709875007917021329758912062997639935161479155408295356711553301229570724890707325826158652064821252153247649630932795487562370419102457067074019274491740142655067514873177587147635440393765414534833465105198401810242707814603797781933591841730874952984520317210827656504015659786608919117316601888064688506749335749938978512946914733953061665994360515757678716725076197170347574315910586026423365408455929319296118629612954276720960502275736022106714616792701958364540980696901958606824009947341324967978804047355848644295807664840229810305964213521070412279976944076633865161140737298490980081875674830332724905969868846436245686130803866243812679800067704079209280862373883993227677358688903454672306491023047529968267617745109866929106051026762714185732178065486264697440156272102805452519084775474542738644089174286170384474481020153049907015224356733048249260371994426772069976643019821575200588730500765452037232101143663169635191927235304327637063918281558543272657693523841522193390278337472697297064155262885799054430853443040245509878309725546847294278060661938477900300433571662688452851628970482329574682911078322347300313552913857655937000092940594902195679223365752440705616806360868069128276199715464744422156896672875237162655752485452344221553941621258772063495886278959688580055257083326384791714306151328911237045581726400178109084308664543655258917939791101891321632419012291212755965249953089785972909316044938694976456869192141016658984981961956270855649974478637184108056490062935465978561653085163200267003042176046240937588930408510020960980477198402949297700573838775305048646708792333116390847622487353110932156028738714943476891111170839180306403927462257724707685835764004795095720986853850953729158767700756452107516609119491385902886006740532580652280796082326844747035507073611077645596896897517641031941315950307811555304836825830776580399424399193780399881522936082179976436165464339322455403349807539515523013714299034212933783474212147252365022638954694394863446153840814316641788415870852889414915773985720571095224497347897141366156788782643580903075478885219346484251431425264208679233411529996260809820001942736129934764204748773302509373539025240960896550152871933939285859425290343813231536987866797776093072313067442951210680682200377081775803213942223688118093870067721685083422236548006324780194897724621362264849549127953304264783394000730572959954015696474420284766567221613546892746061166803261901772015710722450136600357902226923474259244192435051646803337096718193863726608969601529373953582255734213819912378086734155271031898313274923346456386810591300476701810045156506687942167191680358827749422613984368937545281782059883365062309806402502672640997891840085238880436068404518496780586246263853370554296383515402411770247140284765322030255963421134808064071525751910314593473082067159104283809786398688385537359795232558254018347759699274240852125540499071326959877938525185475547065123131383725668538013945062528242154924682444068665264481815618279237226220516356166186313953378730874376513027311806992077476180656559150529743119992588266433091490943100066377006314949603238732481026144358101518141025241137437836591800464683252915447204285037313673787029987593793734198713523250717707177494530440742444620647408123958645404794223301790059646501144054989056128370714653281041289280568484890056796164936080279215234095533059318180742681142509089602688317879920411018916544382099124235717753647580558150748980897668062358121411608887713273963585139846371927030785216212819978018995984264051281892563106379264527119854464143896056706854461594087411252269353361535785260630820737946438064202750283701911005654257916895204606358271628311028317456045737500095729355771171112669146011294464290049720811625346113898091192549422857230431694514108237115963829357750571607687654834323249070011517036361095151822707366356076172396869008744680535233857908372442155757054333163860579785183086876384966341302890443483419238710640720285259305443967197352916409338063999252730203298698876157259127009833526367321039016321697861282811848292247697726154875426960574699739125877666362927613775921806163025755312576804859564620852001940451691163324474100474095023942809200252019725069875698695026452259725974079757126581240963663316678047265340644218622495728830380357179692112651102904421683029029709542334795525215028568074777123661249594546842561277940872254221175837500482682199107829400415041211532960075862776225014830743967429666284737924565652353553127526541593623596214791021888119969288455648581088160800944768566243790316908842053957408995685589308909403238250108529152331632467911169989553027296173117396850764605470809429527196186283368396272465883876627180690637932430332197200736697772508232411095816486847783088905085810782321250128607450620429042769482887548238337074710049767152386095021692692856441485254019810012802531083858484113697703614767724196639437984931595169473604777403808749945085943393245344712976574559886965954234442788901753265761985622863257265342506235368734841971919887189999381705921065689722440532609322474444790892027797441988677940446387642320200156191395494374871584011373796606626870704754542307385781747712653093274915624052316402995746419244274777444109459191366789234402918081804173652626182435008698420400895783600226926120713087595469932312079426124800630454520921283394139039533879130425310315532945439395689800835743819403986035033947996269020099994608625289202811038859196441813890671884726516591107233231410301549869889842074986171027707585859707924675467161823466859513954522342721700012183821777024552901916200376117245223531253542986529748604566683189421773618644982600099477406867190476440585210376499078075605332935539649660793803570058109138954692865389956262332617372689822583392702261621022462935182974923468627958597297017944661901732991484747023427808029523870306806960132738826019079759313490850554721025294569736013094016519631166970272624649589757144943459817766686120804619284630029818883105195546884011401082424280823273575162810706183636336032083095778945940603443593612730258418909153179078995621735600970397521445574021368720956986116771044277072951960088731287148218337166862870325772354790684030144032520428446771679513518081273405385175107354744098366833158596377284023591247162824593372926717731993828464888197022745923097060944275613537748271763121906210188656206207564240391741716965151494637053270589275548630248563252413853810486986921495809599234633086745705862449567767413246812972962298848112307967034984974169561434897985244081999261033078714422021258212368073252067795549209658320240905626572104842706048457943494705466605930793633220130697173603811322947793312958347693787622062323048693909738165440499499962056526345051983997527978598059529402369945343753290209687026780278218894068383326781243533794301839740675796043431782226838369029153651423405780537662101546194668205267443074612814956246702019400582749401748942584394955083949716346693259439531765465770245395856864389054348898588300675694727063013830298955241166026982297583308596194054571255161398634638991662783545681556497930260190043408946756255803988687410417239580396114957286077244562931748295337592077805475651781107093280979910277368283011613295548827964650005054278215404086049421494162823663317893540986924715735214854325802188618772311155146693881540852881575524309021110193250743523199788708650658504664972890631420254156623075686001015829860745902037046570761084229706685829532043785149469728145096876700669192150213413657527322166594849588544967848443679274286112064502321392745096608302040960756541913393504081423280695183799886208048620055271512591686286293361935495235433554237180474570430410207295375402267192320349512271641480229096178076071187646134466509568032448194184607438662548705907461065539847923877741011443896036655224398402991243584463780752522762401871767572917309522165750407213732904179640642110115315937512448757263154259492658560400223925621917119707242451438814906529036954912232063815428973954306817222616379910617594254693289477091906980072555017105711236232967940793984538376975180752568396579857923388589104104182118759518588954291590318458686882789425392583957077892910791700083338707503389232520532728144395384536058093972566840954983378429171575925108775378595823402419140141537494564308224089098989211545162801797224147161110938343678627129242768475588361443884376751795772669087941161031923216771136137187698841305294639923787579714199860881513804347574896384902979392032268113279512836359602097163117385230276824422384942635753804144313738645013038109797296439459604044748424691645621315796592920264182361880071640738175026144596187508370364718832335462054118379781389286132536299425688021331777486477038764516995299204360057183009194668711962078712434010383485569432609324803815916395976516684982487408815768867959891431507838473036937456268712224615751330860377798743322188593957657658952161371177979064125918152978326566102422796431090692059201158550191576564771112088984645758238034658506690861676710752881537041362195667526358809013320951068153829183653947966023084196297421277936178057659749702323158371140786776299480011442326483615184290647623254084510137264689668548431109973517772687465421439682427020865265711238689672847491380267394746982203509183517508351494282149633367883073438733695304169037550218151538730258990165191214429601355777052966524978558177862963899970620392543000066677040683988358821910456748192785980153391109266678029836503112515550240128217599118232203300338080791621199328167583063218936128335641355573500248507993832641886790697687736502720634912523057854658503118790870194269939740253395614426138963387939726242485272167002738491128740793653840099967611969274837360633054459716752076222659283371305983605054794332181376530292884027012510598195531041723067483049797816612197906357746911530281549407539187511916397059536571859528129742481298563647782850525273931779684438366843872278854622045843593795041838429214893528582434581319289108255409880026060942143114578153721029447766729452000701686506175893199684871053201917414300859268913035874338416809701432913148330225608028198232468901841224241757257836753595575221080141818105931802968056999914332449607577048998885860587908174214596527664236191141292257445986427591964055042131067620556279198423758246052766310152492901206501677387001669712365230236945694744066480210573734994655953838175362680992319239533319060054585874471137166479873595366227055641866300723565861048997906141911106528811654951441425377801859098302326948839870357452003773604496216409424823340195723481398764554072258890972248976905592088393564921149403626249971355207108315401057344245689450985272279050764932304350922717196361623425311327276266930445604889700878461202886670571489410086608476625674556499643931389795200853633601474136396579272262796391797203067114535309409216569126663631219817491894494338124166099076195427445654671584332468506083441302794525864701512800417520541552047125686192253741555907472935461141573770519311720282551003087091082277659321885687452503007295144049616258351328310184409733496670363548128939403335553523124683487320321561706293584123757988263863884764884544995599836174962737865269081179499684797702733405201948385947779033372357683173521359791678677808699692128617532968281282186048532229322311466178434055474445840907913406297299573846880607887216626502438861981129871537470108668548106424827040932859000794311388293303216295426753928306196936578360293027495567821265568866445841321671756218549034058606091049501508092997090446386680441340592003952108768041947357231335995358540807255633489360668972865625097058566519813676082096161610618661084954892182307960291321521413804622737501041099329606050321856248995691745528530450811947535418145027439727966296926311847971337134404053800590757525944002158394264178461808349061906732306674219369065357773448726044205213949996907621850657470977876850520689404396830058678866600740035876889953611301482764259314799077157885647259085863143123135074533107671970193557117107499272658714455368556268795334382439502749732289806502857289329458577242268941313676750285717861930819738599864888543651224081044758991214889321943924345978217772300302239075131828244753062274958299492109909448963037776101599383277781558190064880139493503258437138163787633002658917133117232177523484720428282251388784025075803964117977137376198986055287118045741448830097854586605381016173973222766684077408589372676858118761898214071817185930093090765394700501946161777812319971497746266733039069181473654468729626347747280825703005901729410780634747497491690576366910812559383848445754848229573902035524532766347579350368347644097173231239563274614946942369220083458803503974795560968328157163201296203782914911479015864264441391588463693586979826408146054082418498044352447151298997588852953185945559054849147890919168132330026690922098408164519824972152902953075503424116454734028534378757881613561639823553459092763135067949294837454182053116298879365940750706928469213263149069407459774205214521184434446649536372437397725935067991554714015484898547433167822407885008392097389757655269553697755488933769431436640747202875980015303071301862247432364285510542256076553269963031135118716897710043610477604898815018546096320308057179910005932299239774615472311693502024293560074209649405114119446402739702535323039974065723292284375629500622512553967664603311291846658277394370536081646210964564686673505745494592675605670143389333463926192557650837725302930153621029204233088361014330130239534737834800340507076839619071614315956764532947664834931687090889914279506718519666150722565613035917622058512923433199177268119258929769664073730752170497221435232143212331550951310812644744887760886637790334828239614810410166575512748123780576060383254380630273366776063546715189080903096721510984224078728541304901909507530570994068588694096695966823747304010196565770393424180172729837766936771840282217743009970764312512559121645155539003839283432788016007033941767128045755888040009972068699522373827698434904133465261105916324095552959097855677423048567988356940954348206099663426934839989350491286194775033959554651672974311664208118119198762272295941862176111894543258343053812664076009841209645012871336127760986728945176562042166462827664516960179702134995157442287068928848994533952897749835962668506424144670457564011035304509630856838246907931929090403073012131194786815255686582307102832105052988767203249396613222618062557627823741794542949522220946061759896127226742936062966284092641257400819235617737242764707216010763964283757965540130551437247927394715051184087146596049575705415398560690251058642915740315074554342502675829465689846986461589778171941225132550562964263916919580305039193617170030009995798353978572773288605404035205395157229373633235733184568352013245066319905047757435944243547818693544902875097038364156665288073416991604564695081628437104851479608472414835616329624616475168996562545163346908592065423168217933230773256454899241138501936399641387924615100409787154058607062068094202248484593735644422760669084028256524791534264120105428802573090544319736779955685040567965979066882582395534490300152375988148038099403143214533145608778020290648665806557204140676287102522078952237896428211680698123012715348569711491852969417964939052135375659014174036011329457712977210419340614199253987620156983131524489133703659511607831079774948932378435519785606153514344361908207093857914598373341275014673296364353481728587182064806326831576639168329539535584892201036502005619714669955953736087378742656608115473680003919918937196785029828687532790671621867907573783412761662148824300158486194346744155756698305717662174482619033278127872519126157416579782479339147715053615694713576458075381353392081469667364773208214237999987772047656603180297929950476522216150373018802365647221724517656210805697753095009327027118511330915484121985166438328149168318864722374651310220747750276114012211642740256000234333717769915249751939428839388082611007505535753474732496030329976314099650563780049461940155416705273986146720460298561240321623794179619198486592488798812666462933256747291980430254547653748762133976471398357781137792494891958453086632793027936665876956156752180879502312669342735974676767101412154991988940768789814811545630134158600745273483974556494339256671737799098485517252138049460741744829551165223665290257945657581677468280481361823949451490295193120936919790193580178790529484948370713873212361769280707331776139526607300274485034590886622602468552080956447476268933843695706362865666259512172054264244480887123075252412956056858882979240839926114951011420148821059124005802857649554499353865675908700416469932653515035938539466886849271675992792088915113229495998231758680698545469687878438026202513672476337118768448842892566730330660208749426847189808136223001104354381600969285270906348301927136792964000255227285339664933364306023951199143936674160610799366459164124961983311045493103953853098445909853859738605307155037441401510424873619506285616596877028975692740594385616651738543812186405552821446051889861831514807571364007793354976856166849680925161283238580156131088335046705320388651067977895614177990883617390460961738888739162200076216267672107067595333912764187425945073561069457191338601920078042336641968678007864346597097030317234349876012454753694987120641182354800741895282339743857178597492390159300608857405366804610218035790190851573147328662798289768671743007943492975741153300459957340418397866054727774212120475314928343148852239106584296654349939242336380802736877487181184827223275530174100181215036950484823455934510303273403975946428486581519749960192355751248270747098607739269417712767760118022095657270563094599905873113070690139574257102464738447205491439381520682555261443505282065927520937685324834480796562626089522807890283997853719903228634244481490943313217451266821298767331640053292779318731618083218371690201489856155460528349664836223835855404771230245955019866746894618903347970863078036283707790993411661521115956005404858845218769067109278272356084220460813753524523972425626964501617478386856700566081117705537469507482561619593355084942976957773338998233081334207640633690196695394577679217565624864593181504759642521248738742144852528238326945705523856178006467347022347889986598690469308649526106553966926169522723085151152430960659293411653914862943526136980455694828131258172786706068927306324897992658655646329297688947902606151475555144571845745644191844434223760083419235543389190810764360091454503952845409977924967364207041773243333308482739148190976760193698421893778284687251925323712114773105634125951224244902065654563635202371144718535108894694829516050491953894540777709130393119758753135862115682791736590049569544720520905881167945467211365957539964919394737625802795093396331834476014787996855944153392923011787045013493420074539825320749229902744202549979065776179090338472542078275702415687531043231685931333737186853906893032622074109893310248273189916486268515187172101161864708771786493162956630619678098629911829829324916382548823719938643314903394777370688579139909297597679979066986560067880569482676405247039819470277968300022565721363949837761345539770733655807296234405835799369715629906277357251335328044817778529844550857167680752283098733136191373850520258086936164563084382482354633597168012942675142696943677009389685464860701599934970958486363335319553124469066294158321675900905647993963844822024120988633680617840393872379340640552846303676084570648024243011422298816042274526448729557858342639281418834975868204510983307093584444984074419927448944561574828636413417339196584366953182472297336863530488938197325293999560479376916597337461513939412909025574869787694164412337217474243739379265704199397813744202415577173021361828133880008492831472184921669345418368101734125709030122256614309056943946311883906448958964860110249055571914149456995549112449346970978779451598243963893831596398270879816676928020142229438518116355787298977015302000975542607428904600069651265602124823725860343561995567932892367617362444663236038605500004470209685633684076396916272755576201586921248779668576248034455192683004219860913678894497129337175031126257171883781498909514112965272794026510392478480744744798518373298037725349737378917405858140852783922594580500917542590884015300089423442850501305415400270306081475797419893336132814994303701263836340240795835586547499868538282554442098387730747698951879364096284470462131693766563702162955725327993923069241633272534034588594356634326068026316870107251443148108577709496996361059270453163315140115720435704385963380262079070579404577765937014709656377865785938350904174870924092948054621905339196107637071332186487108865289881814469746821624943096957769267508854001913542393368385808788138390289772411472330994364446989841616734169786000491520244838406099202109552122343286549696777410530177230082049134078940833970561637601738641600212690562534713796437008511780164617943711068545083410572020895882303960150560362375334683209005954125677707430903100760835979719296982173506749686151471020289158318824010920860647981679583648777533303933556037888168692941159371211083990506616298767018537684128334666592842061620937545248533158334685356097095480781869185907441323699776321076529888480237674421235216249290316450264064504388918975224491448193501861957942141482066749709927495934483292143317245093919456494345516566187657189339940188574444184146350884685765542203860394942533796026599270986201248557060361020161898911438438727985156583979327301102032590893733695748933955007792152693326810416523156346441192208489068587938453179044173926718406586116142354095227958588823813250767109824376568401265370687775579056932772101960586212772581865920484372753446288706916274907158375464306529448419604203514854269164479968749509289864132393563065691754914418263691023902496133799154880579494681037768292858686027513820909356211977453936238037610817647176572431319518600383998526112277333520711727107897424295057567430334797752802509062946820371832957975470043827701275625415206879970861899562510079390340169766981872118290782196266330543755777620310885997569776850933682981503999996562885579672613814086092917252142251173207766968445367650709768785504263113347873880063223786428561468775990932319639320768036282266130760843535607410690961013868307747442274171454134985392886153413648357623677160107370495914757141395434897890184776272455363199204019515240730440817178680275761147106978275458879503315406170530162506363025942302396432653690332394078995230004440633539059612205005965521606034425476948413726643845329081197156323612002400580607917731457932172739585576803618242572889116798661703500147047860264988714867095032287945158990503169269321865084004186672764521294364452131297053439584038979303583420158294575120539463969167930944868865182639077281611930289003405489995593282701611995942244503499991490365702464811188310204107367792232300404520999202542795871047705774733885401365015475124747934398218703797265266634137904711057652485091693918382977930028651520118826454678991765900201675318302981824584340373075330242795508805898440442632895939228806628636748851772747481346934374598282032272158193570792264689525216536231139184541054725973610741079698340699645937238452020121239849222832496511443137422250649334616753045718124160779995419852998145449743893751467055525180858810031161189927978166114806572860124332013570130463736185977844550135570748644935611049826613007895502825563731703093960696046007055172695473610615449932579378264712724645207238196497557807089310641075418447435925852312513289043574574752178165603260270836777811319588283062169930563655287584271172133389544721704830037567172758725358939479715980467161588175511718547885872785723887113437684929056271392711249152881907217692784924657237337548059207337925511071847835597139961106003724274292616350649911584135321253178568987713074731944167405400083277170578003467949989276833222290541245310926177500080664720390671575673245748926289074112087105855111377666286483678747652260266530438924109692709525537826414856692284977063328322192025467074474178468134313496872519236475374262023225128093473783607126908526219695652322319125287629868385596580377160688229045241159634446105824346345543443879148358607746933418167255028327360191107052293202565874762063231405837457856468121606729712198027001042958410663605365998015497809026526244970369325255867508825077280611866321838439159973911205482428413863104114126774006548034368140861451979447263587654973136913119871742483610366992566809577821039697461651798707805863241037126654545016978560041568754895943863119900100622165820828194374083514309901879919993275953770088006355752858983059394552510127030612413724697507226200505460872124619126346407519238923548820800472319206834870655035841893954400430439502205178296197730439430979813993380447305490332546840153595954105623871451669037668477568479158048059235414256445627942914777952988881352704719030775481435992107172667425070562491732179848985512571841927696365063380423999767695575239527568994244376015151793893256576003892017853572839364408588393472330771728743956041514533442230152380912800464923944480315269953271421649519618105044368320805920662595411434238085559966809184667537722161699778627819185940304034629160090267277905004566331975634110386079326527258192202687866829881887529179668012594810220000310704491047465550155521928121468745925296681959955511816009083384890480760414386424215821381333677590659276926157829887630795855538460204429861491517051719315136875092106075813611854665282700421277093538585762121407501557506180785815096256285616736707716193529869041856965332909817391705096455457937396876010055330432408055541851887651333412776647468069364465007394205567475738664969084771022902273780805543244902673831070591156196468845739707462391166108697056895912653301394364063354520732714391677547694032360791231903769001612225949068832618873018519472919953458591878964285200514581158732378114562355244205595088663883311119398233489432239814909583434970175425046703692708084332523946759296354713729149011981663934471274732987355991847944729400036756199601427338266092268349134468575992687118324689015555666417128803057559700811679766970206155439983494371032631382134666031337268912209464929475097575072793065374239681307086161746519385032336747232767989001692666136898908053961811916432336989713345190555219322949385158101659659366269435396260011043553816666942506822691692856577571164722146258518419706981389728986480146069301252994150194238142681062320930382784749318477301957793977902523189248703179865060827501387215529918188547706129722124119020374262814607751481377232897757556243364219680603900137867466625061252086151800183095563141874765691509416125062230602151684809551224707234696214044001974715657434829563644146974675984745620187624917651437919771390535747808780598762194896262727146056034108031552141449909562948371659122017915538601832752769763055230315939599832746644263725733652761422636598207028097336356698469826038653150475738696838319661265310661202833223889113616307761030924614839570705313900686588256239492570322320218166898146299887816614035553910068963523056902036176566107745414648150878875276324403307905988633312760245564984298984953233689400111212088448403611033173562842214885500775920641501130654698438439012702825007962945673290238240391903864983729699403449358523075667656465713550749517633626858220076473124790070427142597429351305423177337068185016824444904921848130952827770262418322254554229068446333397978290486754769464681223183437289616252629722976971482948842497626763238678062671059940843395926585134566876876165717080023443813520995231352627574323516244603963495291455444948473481159593569571006636049656808543143010850156199360522117095026865244357493000872816124764827127541627904201845689904609971532583619995243879906848529887894938362518193179049489038225601952783917274397181165715905171597948394400956687847760660005609112827653507147793901063644529543616155078226154784155902093567845830803863416218372937813820052393112505709117390841072899731140400454489263303574685521012100046374104001068050928972000884582752830177867373435936995300942915127026309231371292511443061526551642713298285789313955770933330686309821093505392616436605228522896892086203097537143375368391362269221927219884580959219269761458279861526594553028547648587430579502971656154175546196643531319197251601987857070565059041424353318194865617193529766461268737403992131879522340062937121527719041856264599793866512239359920001158231426693944565432872719827521312609936877939453653676853996497174974202297845719858958995182327140471207684113341431479560513586660145139790075255421097065255341378448617679491234167301361545328836321162551789230382064917462119088755098375445105672160659725268837489848503495339299529924308120352543364431385289741889231205020515952455087399688224125762522522294993717034317443306966063652486159277359804607481826388543998861979703990944143462838827909716464015227769011287469183403775827317896619522625808014342359716225126493951852221757395239963875904794175218255144529903184752013367101512570589166521916710073396719039821266143765968030193486423401600299984733497541973198318597533360840281136261167317713706504497691584948216306743703481044628370129825579135092155853233762054955559632449806043768749272825159483352455033983945308246629777524355208829547419029881142762047768440236063979083588790075253293156016039332522069858937925607205452649513433068906154302342333929895841725278102615232473861958183065541276069673861006404205156948508874783923981590833069723264709957607911621447531297447845592361035687105539218358198776671725453045236125916883567294195974116075481848896207261925928466610087790699569390000176445623588343327754976756997497667757645900997851203305484597476838914924125405107927410101782435689788077329363843245556823037504114905403811029757096936179584096653379884039056907545658167961282655221664373079720063113822599881709726857887663448822961723820382352249691787802279937456996118841089133403682970323155515448527243723840708706068834841692374478733142248117639087404384766954235907054134042376877603813756532612311109697404343161876141673542041785656713048694510460128507204760758545595091897633521221707237987398877862004724321248219405617561652639375072277667825323639373462763077363592178150220357140885104634551881998935160932035398929065617340126386654040952214294568308832983987481056285260232129229169603239574002300406757639853390670742959141585288505994880086661670684819588225278858854404823281856232559247526284772245938596566629360506282985963260559097654031526352533103854089965313530230952105084018046117046826204150771617428526198860352130352185989940713844333601651577856721485871209408955406448857658763703406457557650334993708407439493051427129091791468885951691250441554774102190742033495060550176803888364088720991370464995246400569780949340051021649839625437795785571064618941417215996856717263870590388003473994673679921015080562491538377203950542530249077843772424161516282200438177966208900712527842059932659951900841456280913954284562880290287242128116716429778994421230390580642676828741369697891699882175815205896383728193887851309694109268340422438164101771722382705347171987146702143278838973492028883061718341709613493892998534446102907425336439743275455319252379182398875605848432126164683782438082032832647332881079257730484158847028458652843704270304632575582962320898088042192134687309797417400811673128541053654367448517825272700349067176348978294107072204571714057971843687929578842604696790752149071224486733422282202182744676402726664453588470981332515461178357210209376081871183164069490885565300800927790261244466124863492079159840409465361912705594075134506614845586397041671658242207867735635553180956010785719213881178622822024767420211375452856603309259678128499453213999185287538296284997769943743754940074527539281331673195987002518218226615711692065517851244699448918012254922897847565184308052063374260775230330133785744700030159728177837278034210294888472101466053591225298185886654232454117410147239143761995357672047834022921003414582292829387079346181151856425544438274979385022900216778395500727208514252047215452469698888149677087554689504084321588681234600610106254052986973990597357401464881195911026050576918232837014827246060176249654884273653652230095879850676132446126757394928841576008540706462036523560721509946684235870096859992537411771832254914313296410509698984580116610049890487917626565973111570176738928947582317121274072461053120638649954856884026821498054163858314698605632370327502495924720167144518555501564393930190109525432014562258690414951953431897007647368475299252523673725246144169739731021936131454164789413377350399921400551216150222973149058763103027058410131565454993363962980314492256822450487748310499809227961370856462865571647616561159220259221317234308185652307787795976682987715014852777742211889072523480701308450110604480104538429498471357344262668812614007775893017074143464470582386476487168664324038495373569043317818562957231713463659104918713611838409713493643486048019719015715920648408374182963194996384806537503773497215466663820081139555186269015245581967980938975828102847219798052851058579152098450118950457901028237871295372105589194877939948911816942987156261688243208912352168918933674884220525639982297124474860996002957399086475227370470355693402570568716843847934010705846575985342309415520078275727301434025138271038903552063238864718412638135205498368376764797981226040341330625043001347580601413362505745103078515008416070002564955917947806165595298417872409376992546591027286260203057541464361849244782190435237406123852386289939309456083909475328937585512694770238773302354418574944881581315540807752573678307725814383741976046799891886705635139712182614497285051107069497651351937123494233313237847157150287907406959173378208128914575392837309013928576709073158198830787361398776623783179490794984927329896368991943063226894620156770121174937097838934856580200996218399749657938236265081100399286821021889754346496843221578657987017961633068207830966436027761590959311738987062949567010981869986471408094458694191415158203179211121948286443034751358410602862668244184667838516377016257401559324820582458093570850632633214331022187892501877125466786041783981741086172481835896196620695817443858393459709771358449416822224161991542437707000530639012741079309966108177065907027212988620428209587852532160054300239693049111146556903622137503102537619615167463154478306132204734371769447896065558235469786205452339488207070073362125185933910137169344752163849411471043931471130056275653497988126010457773662703110114293021069920434233492693178318097005234595692345852040634135677971517452192639665213409207367826916878715005570147185131821478878719687572293713681781597942418080773953167359247246644967437977078712761662146395918878628748882793805063258631428755065707660615754802314527419085952059898912739581289144906023767129978457596423277985895212443835874485034099892842618917938078887937448762244589702338003014960956342904480257243992951669705007533633093517703334575828072704194223440059741131315881860217044089773391069192175060674582863901848736363769089587088895970858907329978340271332078009194423970767249682566789378446618637506399607516748207177686916583335349434603932560124894233326178724813814461766027879567219740880842048556531941146422602804325340753690368489426989453054769788974139142699943937878653296294482775632902258803797817458409450334847019361448815744329709891534976865030685972553275787367552631456468691594947995195663591959510839094670931161285670110221451186506673400943845096068186273504745392389839263529619759328918231066221107485385758455823884939707120581881978422334462183038750020096686697483422297073700875033472162507472447700786346370042922111017954304030193583382965790848042738854558093641243000841057031945120475057177605687928168866755014336048827129432352694725353620890420349232635143957516299944561490227540265644075769634929460115995127516384872210519549234776916604370821302884782057441484597325397123949205400032924146366595947261285673491947239480057377389174728882432381519889800647167597272538818741774853989436673212641732608961192320898283094952054382784302729305420516855815182115869274896350556102949908890678542611021919517114130432603221924528778289275102791659741964591586988794345733607606542131387972634916613095806201362717900121126215264330404991097848349558810248993257181504644791472374724478304328733258461780523579837731956369243337223221482288895329816107071650096520274713157747674720015271438731346878159728518271172219482273911765602176273226079719385871544530940671717140482520202899623970668014107203329547722960804506482789296352106601188211869370779557552311253630745580761284596341639024786058774773215422301831562013632593004211670720972381774106052159165177283550327353036214800348464522772453960302125659264546275862732434276092170210181792395969567106747375264151827669945850296028770121160302302324628135236233973089903323573318877046719887784006198872907429328745613872935931712232371523112101959245195134306761374354197834834545380723579243703057675411062238882002127918593669212524180627601737356736912721647331704172587808660239344370941402310726736168651822635732221042546725657842325167083559296322726058536480262241801283627283075708899619223191238140385198146240598630515405231129007884088857469549364226607135380228732953152567126773188172226078283588565616799559175243774459539563946239817836821094293504114552503308814388697413559825192957781305270825845917641554805964467248510115492105945806129487039829257417696208990572315460746420698743372993803947233973014391676027657958169285743146017235061836976818294228537296543756579445958941581868681035688641916786557080791191539652832576036785597506744283933301555915185112204642238280036371698492065336383608387676650948527801632830651747822835914010516554439969657722964513949947078182855845144081162451064169833132163030059237315986335794931815083465712545852969136180186034106939279581517584675300518107062307199077507597838098344134915782365098390417043686881018983783412172189078815920432496435587337944521359017126380124829512602399161986427516784023695570043696622771579442201174823956976171778101121991721567314664141687033341351422895458536718944398094527587279050352436570517869339935925616807612685082146096768886361071528941419968354762924174583396049890420475897013004846229359054639982468925479822127285703501185710611561541014890113839215634025822467838653417404192185813366910031991888812425564374011364296298307208911902837845685332657538063249119437083704046097220027798205023333760710590123414652486749425153236686833447350230802535981029171759511308701234714233476966474573618461324659774705326632159631829788339105124931268738259814721156443394231149622868864182127184949448306800351448249773872904366586425960353862905673883941591680752244551797217842118536513155486680935498842698117746054066253503979115373833746876243368613264659189478235566682409782139679741961513309916172518672879653970104793240085950944613003998032277665184073426114569762113410117986537184405538135139715063481940810256156435589435619310936301114236263763761780518133083897323614065313742017001475808267791744715493845162856145306978441908541864043879101467013852484190660116525353076848865523167917409316009935984625413265445587013214942200915231859467850406869160559647878361884244080961573945168531720700194831149858372200735099704586173791820868206821709522309823996845292414517162241231727210163254090906225535789073274623655268789306450728297881004027921039467233856192283639748344141328861273628842552358386770208977434578382340539529176544508778259457130592677543465009814452464647486979612491804909661110581848328931791841486205223359603265695887318410806801315797486246362047245800940066531924672505264568578185777991175967140524693954841832243790982217049339150488671828432945480681555742904312775532827829516673106537968391189970399461446117892755602299889774570335746788050547554356905468309061493765835575628978218681208976093937381081715015271413838554602922167233841445080436910501059573095163925808668293224619211560544071174927712728889340108778297973254844945499865513817850227002483387607201428455619141966572462298724505783259189712559368210813836576656599226530927950360998225099856423410333302250118464244199180247562608298190333972184907879561669123667463542594706358232424086357851465509218409140627406453963613104971838835347680474941212482550525410530753768061994165027486296551105775592846673919471142991317053370580331892756979861966435814163057658351405087816777382256430690564312155426081525875035073202461460862162281740127884254909851041223661414750942988274884208338257892044014899115776460836144970785467570386734636492319063915275776613855239896123575195013516147053114064408031804811871090740831701045397589224946680862463654526334574714513312713243133945805602244539252677424659734511624859788607359831730608099606386807996125446749623839174530434465442324581723616079831286238708794689252544459083504296386780731905023360997027633710193482971283753269336988366234773278097787636244521310419135239909958516301122741918619874775729039460876246735174399995105367439015063080937047953270183024708509519328263823009964211230840455105163216521391912988711920204293217336450058887995128170832753755164033349829672595685929453782330899275152251957961277129392404502271547510685205438079072025938774236820335821436745553211004438599043243785863437706485343601928336692239424793462165919993481981053637947355908152238413148733559372510522284563759125092089128494321503839129974152714803813095363249710643882187053984033324453772130789173042555279783705640016915418087743194109061086147894713322311839215325435707793074722840573968049240199506425905424271607131259136245116985974847084614458933120033359522668039635821656722104876641022004895388123713701362631618295632762079870724471894299545978049228043357818031726181632538868916207993988938166881277577033882594859201672829074002892792422919114492852356722042263191788559127031100926102998439067859169288470985506314558426657502750013637528255019009181419416234348695890379781191035124609559414947266281557071600013614495809320815769650300036883728453927091188172167981391659253493030374392544302137813281692530818284297990818406337873009994506207375404029596214020927065150543075022207779748617877665984352747138764854414656614966384339162082521552929802484746515371226887002623119295140335141724304298879163492214112815271602459876692313992403145288818402665944974670780307841175240106675863518817001821016273304078482553429573602681382629607996006852229020131860879563983551337728158695815078801025075267471571220694620124645217826202147614417721913120885452203522735663375316095217660022584277778016878096264439855747402340138238967846726983133298197034914575498891095446383201557676383990365578514013432336694645343589604400017293853864373817240100324083043956412174114862126183059815952609090131396537111816872313220093532562666865138775866879095497170157101340826870069187885102913875682644142088579984527984305456573463501244147036651723410947045554131698520682840638013252648586004766940661575986045671703447246805817129721483545163059199891612889542174851551907841406777426461274785927738877855540405556321734131939158627977911313662724316724669385155243844241465262027849096415936394306682215466315347158498903365652038322092231765322882914714055221942065477877225468920756574119471373147231295902602110464775265226324085489368503248653418448758753430079824368518716285620840661431977797590150661507734775260138961094615076853320654140338579753419794682935328140432488554479952560788208031272791275334383761183623089443134282985364097758146112425736368429744602116237643172417284241354815722489646502483916814594308057593319216249251890574935169864947654388026246854885098172605333094966064968209103938490286231805256774255484140309394880349421527900669861221380755780059816371783304774899822586192934634088061649314257212664893761690940277121354624459388862608397619640421016134849006003607461785991562382168727007850387817316778024038913287419589312351316577588186279487593252986621196390903384075657367188563905864205008063120629154533143679320086520712732833606781970540557507007258143671402509047467887147200240442272921034030635425578966601230145392796613401478033606122962816245142276991394141255444994575504941458774593273037394864491476747826797448649640340972010324565363209816027809248771235011358091447204848646138667659808557167111589332769585657511798624285696668461909409182833216474349539765947983863136157874801459283347782518118857651299776067206929188052655703414850369038997967234895318505067585278505548614651935538599625151619487164921965938006590188113630466566117476551591784143819945894777637174401190071234041853918692490458555489690827666346463733041280949237413643415456697159236684128857418954048763267620456697230747490914842646354883606840030504781657218159569320569342180201900492723090677449056385427809153504202249671603995956459771219758377895995496433130423458485182254458269600558416235166003789013031652646799445539878049627155998663466545639650892418894104257125695087750122916178841423592251946855163286651539129933932140082694637977995075040001666370036494355199411610776333284223846868644307929262953994438287464826836813342688535148887613875631485739852693126621582142900063446148835974632000691990189603802903428149643892532570440617618808204753756359398666289434644107133590544815483219545042406683949293454017434368020608442589287322458429468565373125900527556066318284113296529770174313434576552110584730986242574065648142708833118498589597800998126248693774583289147670544352624931936788297702599437401331549952754042122718787876792668201103416922910909894598079689079019822589690544767388527344277386422814501813588437005306070699805844305495880960367397950346524632467324476810550254515959478086549042903170074530490233299349816827242021718286638163956089972219808407870580867638014360904627170080153918399659909633335133696038724750322657775398240434284914378206927572699683764089573924841586563987387794898234878568895275535413501903871892664752972851818767967368490476808917070921446571249706182705404150995077961857424453399566491699772700346420607653575516368147614185974035316537756722899504147026600774679248024442820206354080555558159490855324674116946173321097303856994565398655706291723690671957255925876902097525944619142079345635118742167925853740603485338174118769917983082176150180303791919730676673806656190602701365069274423676858036372022959679899152843749341296952031013692169717961553367347436084265184317572472932114954241332243397426673737914918653015976923564478248948934170618299543044635424772008769001197449045368971901535303810872900713071725815229701146453812918350477454072569260575625110468575189868434600450011912068513261354080813109928107665283305693696030137414663521517923225838283200986959708645206891263895046124170656015599975381404222558393179398987029953676769868668546654891446733251808312587069632243865323272111280859839568037879929725357118833610363837298859677938371171453685841034476589491787167462803640823845042617175405130443643521951453948511848988640077559256423146688438495903216081759120604202572350691839959308791693790062629152183122138937083616616452529364570366005654737597121221034380643141495844093545736731036741392873219680723819214823625439354826557140207574995982348076942479852821557529136760745701924613652462832518330611032605022289848319457658701953490508073783180314949789760839764059375725468779814619915356627188738542836327623072990774350991790449488829823536392338323293159979472935891446608257837972146711427890666789907065902077157478667675590328213339076429385353941928200101733735733927635497753493260345526773992755067013864598233631704955658183535208364190681569277798730030289969101053687729678398883648128243192592133703435479352558631403856889055080857090951663863256212764370356756964031897917689370212237673860190267678982627684732962030725443480057231257541023679343462129188382053788744764259167213568139055757215141965926528237557691387170424624835913903220627202617144216209378955195054050953476984602540398012851387866298025200517855502480917256828681899284429362624705161588829265930974657045816990463131523968995987201136722882956247743260491119592246181062193006096174555192358707487471727585034769916875585496669720385368311248078083221456518029985576038914196602967043760839243060283244577064992681549842104831165879696410387864382781996815864821602213773793861686640666512321570359861610574975210858314505636424821952326693722957712540196327724694378834984171866604723597431339568366995560871465159416639420515684192108033535934521891291830704916342932461008746870341036298660639221739257486302170611224174202599583033570533327773886936007968783558805794246094817482958746538295467591535281857307104529972609890161166798422821982826286477547698684955861013013473172107519368912578798528355658146297216603910988435004777564759190451571067179062292579354172885543461728319638832614724526956805133995330743565394454178394749481652039239702885362726750813211301503197879997306261884461140523843431183234259381298656595117941188976764976924859580993595642382448332101445983696184662450236467120790003611987134772076325474056662765318836831034640890675753861909370617304765151723086747694883229599381681882945724157830113439464700892815608522953028788302743635829337820314286487323125592011135866312777485549617277986787017530630535075117631894857054916918326310181856782866055892127124183481370402588334558230993971503293848284824970941649859808395575266919499952353549476788979241397087409051244881433784945115691667025052432620655310383012945709845140720376650264921862253394653533063013455033910954266850732366447461138509163861192923692779600527784904407062998437509863259503224544759787500465811861433974782145982474038100203472555423008761759778825788268938819025738764195829130939516194574723818533575170218224755258456454268446473693646086390509070404598688471998403050222227616572844639008295545822736087628632335480334337517474850722545057828954100548413297561248611447154483344556798386373685107766870986831338968637783914351176497117488147023526447884639457887992603665177034007521351665199609319750029240337899369004767963835751049942803032325834539281100270872557895104025483805007950040368253296239230088686948560403327981579748994683247817368864401829536768350115912940427593089600869549323107781196918557366787587610899863188843192261769163062366919728436051181420495130646417557800643305995258040666398863167349107795063454209935326494889843801670424654915508793900348888792038928558752826138780205986037780537865278601275409134800421769695561919020532970749409771276839277931961197290191158511783256343778473095889830545322989052679111910826938794073188926635456230042464821740587531786756471224993765572637949773290712755075607393719885139019252749753912907748827262349548563200100696617787581571154125098732503465755503500448859210431597545923916692173518598500084037609389150442447292516247414319590834248344792327225758993661723059584292222567754640063966543545797688184351234390426162354790310713696901916125143224665217200910927011421480697077767186994927676224861259023518551833099862145288713799044472186968016995856923521923482848955227279088803563595700037841743901826631973750698405995545464831928886821464205891567235643302297014241594858730418419041564036511217639779463635635660046976016449223791268094502608526978665128857173580282978437322188258085934839712822490282233143644191144222158821560893909353317540203286214535563209590206922057805694252146383418059516358765083693171293056711462964013083807477982794663621921110881027325556030092280952295322207432630322590661947873911103509771981575130607918857491384934019690059115210292661066229574072897521359462819733499841027477768056068061039668202280291490140865789299758372671697908665546378952458110753438283987223065676423537337529730917579334211825030755176066038355910206207991346185819678730151625204882595218496019826533084103765534002978956342814056442989328518480253092642835011669836881541221552215295733450668704635941830308809815631871090983113926582219561519086791332671799920078576713361061361513322498085945759651996414931885733211827972685770803200393937129338745535616058316737051747742692621528746139233498865393888134719334593644188654020334251672951048037264154042592659947667420339836211384594155832472867554973280797249656160136448218068673204395499270246482707344510401153371901333507513994485423910472664558693202147915804898798737445330364027739235534792814023128581942189326737678008728707390145932569561311171660854440522195187264237410961276934334752532662354763717457630376790316616788474927065903515787738845965934036189204899110168041282355444911126006766709764301157077142275602938313941449808475423614512093463751747798046046346386452663699941645866301711984936899584703428193768796701332578227647506918372782193152958611406977899302691418791108627178434573049604415358115358765618415892334327965375572894819735510535225066779317008699899280556368077691987595782613082481560028719336732198629876560654322853932787706604808579454941255301313454302619870720070928476371382546694633740466100793502948496543312628236596226636967591469638407361420186680903812676501670935278327057718917436588586080005708268509920869610208728670362191851889759660291101908260770326287811357615747244344768548927147150008536935082874455906671805574565094113690885636118026479028823978539313712627890993150308545429282896192096760054250537918779317189869686608640037219701240441442060321866661168831599590240516776367355037659107428273810785692215933218844127434106644381643417733093271802530902271345507573198835643999504104662504222696637428449236912380771579205071470808752731982197027784524909606512919057510435612265202236749962207337424833136421796749352504368788690138473861174305869292940088429211885994621183129594258874352349205351937845730815230352351411852776538482312984940041804489552959942108563891804423769734098663044060959559318363856743398741421377704018756574345941439711781582463550770433772347041398464783247736193212887974653097645752352370455372313542311822170670831192468663224061199161453629937876325633252933708438359472065386146581150820818234985405632113879024181050476272883254914513741992111099902180651722632485366017685790119025408064483263561585979610349627472169086823558549313676419958789321121620448177145237572893613900281304225939418978576561203436805982856575918707000375743666833064390239625871077294973870407271596782690770553609681788451725125571691124279146317920737749828326426653945460716484437386055792580032542908371669951155376097473224795778799894041578330572558675236744591185292710413372346566324433809154459054812578945006088008296956723547530560697581468403364848981303813172812755495792317762751465877004680153140383594640526505232010571381424314004613482346937296272143431621332917957583717352030112053567100891693212849538566282541133570194394563870835790788118412540164686653833722490745923293408137516570638603787309839620973544249741034923599054879911563097677249130162148084260758463378888568108983266818482728541499068803182895576481102889985227450593238538622995745935365413552690134058720556370342508168003581847876638204360066787172109883954911767521199137146163236545183913964448192498209894361088537455836557324693148801122549976447347208935218603537339393301068318106650363278158094285394862425950467204972036541995836986899320903691125793873714977879814648920453040099751212161271002298773529448198657631138710213634000736059200750523324264826989824006634690989682315058045480644482160755164372172408013985391938587787875980429061906619003192375294396459603922118969336398491598603765406519388056331549613697103363828754670302045200345106068901482444908434746128944347899244095587673311310311197484757654269799112738180955797699173617301595513717536062891280621204560833293759531199688606965713804789899550691893609005656907286658752199348871940874131694551716873630967182259579209926509576267338746773808378953136089141852215341938453703346084338449042863199455097985757682346376047535916225685165261786464005062842922030383054647808843799810662445147201699031689911985684614386622401372144565880160507246534946318600302796851308925988210829825139136908856929719574192532460548737641907593578316806675515110911445783205617335572375253196016064198616339628177466637138932440381323907914686598562443429860857103347116491788508525384468366305567932125863450771789356076785528406771726308701265311483517073230971544696567105270440108654568599824374610503093826679714021355124762429284376171078433017860502324276312470035598640255815538625084542835816573940077589223054849129637060019781152513700707266427913827191251778047878764329847082064248258694169053490818395614975609508469956443208929770855039877374487536725536315320145177391319659352854660069850081913389002466235925071999458753686632333694765265839351358011951974034093358570859859090136020778674540568304367696830644419740860677697646887602301668820374589415206302586810047909681875377945873592047178772706764241433472093501716559963181072373294302735171068923582098415974684703525934977532616967365486640130933252436175674306227279195012316921883075738268959335899940809047707678709214590368205913182218130283509966938371113585597130080492492108788457378470165078775356428168251801009451378400265578154104689178678590971229820608755660330149868520440744946721890435656096973154724306936590458460748228929723637269310185836536670596605541606232478429629872745434127704331003139297744430648349230713613859085180844777655418339998599531877013895244013220002531000309567292641244615517158796930492438746908594147503343477910118644842452074761179326810164784655800241073986886182403854768716000043916059540930750400852435953437044395759701076465750670618904504077552283401429194387380149668176907761108810635142048811553209921771958506206189511381760717423083331473472619981723003716827749450466291900568218358016797905363692089149611974422738928527672678436097820890967943589553858540854163436100146989487152132356707595221859455203923778848421393746959045166299546394876298951665652451498205562792124510408746726123385072618660868715500814304266520420952615339719644914786494646275627094811718982390885615365909079482037069678269234638450592638463987485465758327698810174706683784182582912535981379955221789247890845240210972552915624890405779272989658935791878205554131588927415101843198622156895184640948206217267628671751809924736498178759672187410709276573692000379295442229138296035027250038284161246023165686046716275864292342445658164013468717451970150175219536172307106602811473773816421263387265031881265695649306443929207471999956233196893998390352249617551668816937402886311367129475485800281931973564888633109487037285539797652408188375879634349902882000964136032371832885575162915832819832898452706953188218042328397822795607719599539699813490198830989014707897263269856194223961957522994682875152923375605437415448099464501613124932003208494183571128980223332324386694614492039993617388097098399509319743452035227239193094628967087767281671406267217055992541092251724268778675970194811182628918423440565032486512225891291133794912908358891490450347630213180685397248302033052486304378508875534807002651626628769085329141034103118154870414075789846040957070224411287359406298327749449432191242662336142387557757574462029724910111396211863503440212808631063925585172575954815623348056706784628131340766133361098076798208322098913433661573903174598907114260712522239547921967178750349904656166435269592027902840560574055398034092992641180002768237723756061342540771822943368214458045687879825101785203266846274394036726775796345403635210171781161658160770376260237898204926182610898619742386302718229561716029092306560510615149699408556681191220987526201191901882876611362954560163569917372474847642852092348615475022193400523267482671908123144065323620916574575569752195895938694268272130807493309262129665777272619875927936248070029825821284426707594801305082317263646130051074353098755744061484529762688807953435538234657726169864964185283377285447468493954865173398710541939350580569175376506540557463868976189805999773433035695942681329813911167251963095617281635981324819994691566306607752613649476551610288351841443315596627850476254472132733971425326101747495341431214801722128732791331123454240596416310277627201831760383946747312722399677217948313393210902228455916853221247818394278970498242995205071887400468824673543748240943626719874262603003945466293945048304133065441080281607063377101892761270151611690709359164396796608142594320467124547517287326497320575508945513382427527161698598656695414950666875328483997515687705144544826429767363280617552333682601748216752911791735045140313892256289126604704044078602295196968145999751607796578085173767688478590124981551241258704361628073234852981952085705991637867792599394515098241739702987533589203837387982323474715599500939385762117754620786539918748203103292653325112497401741782982319827276293165183118122267163370601637354274276851599834673504225126742572001797329521281996578928856662215004128078054627373060674579036684464243536112814836515294389408590059814875633325255077437505417379739856005251731897427193537119696428774577442372956047831598417605719812989042718772061664880955848163789043996722062520044652727503877811446565280176774868269780357617610990739007596911798263898458467286922118813696487767990271938989215644255444904107365013779751914081990820446407313924226485307530585956093605875222060216591548721598691868632176737199872524849407486858633683665257822384746352283975670385464468910684565979283879071495398178675350221709313586018735816216438248191830142506391788024230462140353846006758225370585313931602271055438444333706589133094989652257433678184232629220447032854307349585165720026583246190988892533711723838119067469026838731173455515714665793171659491532235111541420182003650276541357269903037015180888944286966165465664418312226522599124198214930893839128098892224350447823043762685552530051338300406013597557442487114539957331806620818907740469676594406664752889806019657831612300943821770302948052758171429515690340097792404822519909637095458606621181446413445632271993390472016481387483426484025588122567914950441470550502057811012840018158826409143514731546616195261477446264303952194515425444466654003529484409228750107259583809148058034460621074342482266595635628659663442002955936559386255879391085482246087870516907971451504701158041003746015126287731740868086280180535768401589507864390819980634675898292717321349709658581116522668552054368954083882387659094012999958357641139691443060266563394132754093358994158859366912438941977138325914997974590913556091240842112602181204459539180343198239079702741265997733544844409683872948737954525035318131989718885502667651839710829126046014403358976289591157806755127998803986447873464330321087115426326723780031268097787147443028858806868475850883473659145789733857602423801609189905031073174242751118542477612264404164427834439885287473009003504750854935269255336014025833756863178523106485427477518894844282355117714963530155086588771370330440282567875122408355875871547989393240131848987779198381781052347693624696351908027130027012824244698769262200172583203987269618145041328173460504091967865159285485279726841722365965840105888106721024131564936355700842334619526664404469822947921750714427172941415117430122000369572437073922584999434504575803761681848234438340043017159411439834593060517167884281918569142454201606115034975242763753276577490152669566040550204177013692331701095639298009219793970995865474218749082744149445722451664806508463775006980909694560854410233880242604192159238403886755543735006338099007647041243579677690566492930535437389938062176785075497915568006640215630178310149697505058321772881979865416631605477251966016824330173642019875084050307680026870245364036139538960817151494976079340938355948908703077364656962348011582777659960273912781936721290684937178373632128182652510593685009096602726911411442139854697268736997040103827099067149195229656999110931068621544264412833634677899321507781773171995684028773307177450788705042064222442934619356844649553012348256089002238104295612696712160145485802531391467124099034499748338505933829445557101457604154298949496994618539772389075024126135556209083777232578589341620746312303979858884008237350887096946598242921625209681671349309475822481859524633599059504256271563984808930984056893550269716731393423418759098703672010671464570857893662031048537405278582397281735796090400458132795994486614867972677741845921816021750880012329792052999980182407136927861033119101460586236807919816376743980350400906441363192556060892938720259003369824397547644392248290949785004063907576228087605491948789903760613625041886450744474119930312418883654279941304057674422829967253637790755206370888739761331338411435388959352650181212664147597117941855235438735107773120317172766048369787863387039630174391930737974260539209056673937594635675480524236774368425972532773929362402068057794044956792177258931201694635324407833278626265050953172702724994654932713812293199194554450949545786881329148794714708199977110044785268638947230732963351307173824101784825817116773397655765046218615176042384672829136497117556925266646175307089859113980437871761370160488877699959495255418977459082868419202137236563835401849171802710655996927517523129105189437320920525435568302407765778823763975953164836545532726548683353231251578725065126432258285671775207903888625622597449251439377776917616350143476273421733417686088835882414363889436505771334109683424952481347213712965220688866530907836433921499597773614009137694092902941539708532565542662207080887640021844203645662002120911198925329825438718680739254848976213176392160422129940549395422391839297091030676217394212693007845069072443977972534094988557942740581254579495338203122422124262099033982115898809433589414020094797453883853651448533930697199239089483268624989127562389536085667307629678668462094802475931709062162409303319719731197481984223215287102060000598916638837031523476659394351319755058332842245504917446018558910823576260712504838422587305533040104133346552714591839739810052608295128600058250712366349193384883798897190889797303096137151709557637014684543145033908309179203008643296759084851756309178412865290278667469381908211688086133914530024649821129545385270337326126607016546125345418473631031446702150775330354386629509744238406192155114112083269929785038775415109874165238748027193987697200006590146252913107807704047041088665609926840451509387122239336693995480847292130633870368921616311259507648993123666075764721512505447981739592374191632633323220692276024949209927806394234603176975548286639211355091785276683339882970965835037012240053279571528708705416512409878544269270790951155306932517510078640185353120500346252996584022096420871014152068776558956125898453920778766957084340239287234168038316159008677856692167235295371781957534542978951611136926976278196749837291310765021110713152960789115321823120459742443965523799246339062510993730486682187407868391244431237855419827017045553110345557065887936093308144838023657739728677387079370110134703977877086413745817532974716159130449447634993738615140244340132804538741511028829944836787564373294514948372373496484969360448592313394539765677337754641889009778670078841992554802336597750945027869772692512166035837608593326898881281782143076313092767048994716272721683299989160299673417341347054013765834312893719882551593711509118111810806670664020948706859439583178802104941351376730732404557528699982678391485289287909773211789934249383165334889534578443755511064722804581260960869067495929748675331684567626041813871638297289401419318444867853809524173559680779787457980038484118031928662349291757603432072690827925789212407451665821976838408335950474244757531746517355024978695091080568994396989938389837959911346416837316477029961652169249631770778977352459280393495208624563441197728459592050861551848884911983533943795242519758110093320458792209758973568284686912883242691069569186754302661179598694393501551100462250326223355734125825926283165304699319933291159895933716133595996910527071467608978537321335950606413490812291086198769768319046331849262809639687713004910682928376102353953064765579132301480306135503299942015765336368967095821435574190941381070178948440835339797925458976976643713734479600309241703858782391777862831301044503817868888945957688841503550431048412035147398441733097972624439966458736819004586455735632086935691201533642567475041400812362348199225776154117651722663063191802364454712147445379329063408925326918807300005648855428430992874583739313426263313688334772066158113995691002499217123611873379623327211211576848138846067774273097580236153894602124683323500641962069623274544751514343523769205733259604768392359889738023224069705127826195232970814681109836057424584217247649989332249297820107794362483810642451369748441479482939523946215708209333635417130807033529608762708608644523120679249078990403261021152552487355939385944661623411055170609265183933783607494039203548989705742610382203396322318703786406722087563656738077386734486349692454926397519586043483315453693818380659562623194514384770754478672383395783566637558537582661915462548052157656219793957652335906040965335500147340175219256837914164821931116073423644133922259138462039522963141070247305820359232488606708255858193503214727883745855471253622015504657782428707933428941065156794350521820923125140869895574921856415363153622212803429010804750905151554919599443464995987101869935654461000773844047713821465310562255164803298823913666365863717342520548167551038146692337932554403060516085068109671543197929472356634340764832460221023649240694677956927985711127024536809435562607368821807190980188831988139861620026339407407991226871274691264820884934867097129892751582700668447226588083295336318837657366324946380856446213085121912236448385709852162732631120238692384358102508616446783554800299678850014997390044894367087072251169503757979301567169833373016854366606022508633439678791726990101276039713242775500453375409247775500969512744734978919939227597709690222689180273620994118976500098714198970369791422554208020196547036676968799291553137541291044097811595335879522920127878935705161697687909022620779081252074567555211608534654628810273943468273745377118575366809861887405247663310574095852986950590864942326038836152612910179782730252906025602439959522905759404304894254858875984166558882692897172549521662666089195716058056203190799460416920574826494078433531962436995545897952195991368381948005342631932942183382609289336704164836315212272229787554363917876036818680831567497144175686377434185251012567315230751538587931977387838053511135492541562244806579140693486502347059349014547519083117147410887048652578623458987288117675611207665874698826658057938431353208551661924818070321667279200621424071292823280209805627560412256248784322558531394916754365562874395226436753788536676015718808046131422420497116542882134175071265974349903551370870738323039986309701345662309295557631302437276548658640023473415760366433160535068523939845987695002187285724565869173074627875906035229361207260012472699495948854717551203070529243177753956150260401598891994175155377970733158029120564450674636391662532943357842351550325794081448256547092013116240798129720964052316555889943872060538031846297009185657005185588743185718094614703715571261214404728268082023120308499639243446750536915253157710082759186693422217765707947491512304525711747724996422100572586340125800135044796245027789731995964058142705674608509368906548677622174081604558665265677598546137552948534088471106216248378862755438855227375751245077361631263087297531177247491550352563730916411143823040684481334436154604877236079278908345381807912112058644020717196210965263677813035101599957880593420847094084104864497861533991997932421903970112896597494946690625512431693915712245301615803192584573432891329451404276325029037647166671688531972901214977725297924241260274747567659351110360871067254628649954771795041341206384897747967300271614818509824464138996296724303905045667092924804619381971386916928656376833928700525505648140839003560034716091269623918347043426453036901962533649595557744468450589273987178162057544062435792788731669085117173921511617930563825735737622648596815958162083005651451259303142094340309674381246817194609190530064148626645996152309054853096343688772369682993783601889784772104407598896385681687295002528634197233644419694436318210657601942803378214974374053901367824524530387769814426269008881786288995773873403025540717988345372869335875770073878098665131366832770914361282430214943422894221492607784158808906522508733681029592216899742669209690514596273412143764957088578886809205168564093787670324275939040957283177045531300818185179019512361763903586485365590305324014707487812018281334252285762532806471888077687283248576882169305557411530953311526006656950811036152934012663486787419988618959674833678106454331576021438325675410040087761587378949404949328763144343808137090431293485267636265025548544766069260454342516832396960127843163905899764825508741123824714472509523213816524743025130969302573690760060790883381690236821336465216018286714190435042123107988038561944082247200843942474096304610076607104863098305144885527029600530682578104059302933399424819451181529899361343944421974469322832999406570230351088764807850007778834928880585263178974379514860888486220715527967946012325006264470999798183761396821377754556051629877394435381978896393920636418120166389206127387805273569108897211826343974967906771457634254657040661972689000465129557313358583089148026299275242143451902167896259640607925121616391343213481404821782019546751616215599564740513334364340387849378510938980999787682789466246627248510484621478347488774247236305066682646840378803513027625005752822620154761872503411177069827062234024313062413045618866266261549030608388308360865831268231391100113514802949519197440987410529841298501480277516021942465041526772870698333001139633806072130524329385720370199211721087198311703371462178239802145201596837769073936038906419867323753700869486391821035481064115603680950827271319935386198038221462127845387049826292878448620669376634553377654218426176685409277717969597806888219455562447573058202104007169734063462503810213967788122513091925558820530604848636973915586126254155256773089473385135563801118304957446045061896790892834515153578952700651220511508184617789245506500026112654571781439867811224446617665023458959193325269409419678942884906906164509984827153163806050426534750304874296406139610136661613334962146466231796392132553778689861559515000705487160752711433087797931869647550070202794831000423005965330641618492377234605765558595095092908323533171541013838049124422844276021959268510649621499129310334131040888010512757302200534619804256410221984959126364223153492785169579879822652587060313290370887148913727100528209729878332370646439568463866011354793991007870738308429568016351885152877176325752936844056300224603186860190730178965167346636412857484259220891246121436222969971107460364937096776579997395944872704302767114977127901726610384144527296945790156381647872846561217859615251315755133478735289543953277295821869858970361663290696517798518434879609933035476501934340514481560318410173530655314994110938882591150718720124602224957278907798426573449856685702846603645149727263442622641682230391251540988282727209974151458463796922216689614794770478150537126434227296480490090530464683987491155701918355390541348111931181843808607484368172292129692860971696711632009155010464774004198684070988705901533915807566995823773229764954965236728016753285017371061882279154062360083447723490383646419236915857067807847775576722750446320329103659767699644515652642265860128528976303474206930414159018659706811563934442907124668768225207901225603912594809687822051188330133411528764985870217775008555445642706103838250329767839440143971776022499178688858464055701995127010261980707759948449381980187001806301282929940449618299088681207023179553485003044575649417813764138265814431455198488056525851402183187480435617780234009493905642284544638603826309007666529739699918035111512739804009041618751085657099754203593044667210147536995777141874857438482670221104757992656791188366767724572283568631161252846739979827113579689346688911943912265082445679254703957089722679990947625428198286100753893406695994282359226454981362696064907336533669304729279894882994659015773639813609159432460875405095778684204895562161582679005560284675053544742125840194649651930989947409441337438713306013772639490759011263835588025879297297499006454850168221477708082434229194442457688054499188484167892990840101341007653878693573687830066750733661883643349195603015615083559948888925786023467072452002155378158226027276143979857263648459127535779124237662789606804105029066033356536173669876394169250133070654708717940556868885999592279484842855681689819514994357362106682833384163996200656864296066494724913168948574118722505668558757948421917914110385534755524391316881184967482307018544505508283471304229649549802722164451787090924693357467533417778769198237962151489554015010755864261994660577883056591605218066365648907326080955187543243356845308152603949773803443902730334405237847733676073808898858852800109866519753484822150633217019223447534317182395558397631846450960998429106229016034284710886300185476110291186381152411972269234614089771490836685670423880150581965342285000702579071059776067115301440333439966112139477566916062315827914341028728767456492056797101818163398105591505911664122151028677181905628064529097508725021771411137012587146384284206376723511568657264361885042700979026482932702646482121288525182293583768031025726588202083519128191892492272941343081265723654460860329767496682304800282116311520279006495226057282891516587665340245369125591744848460957290298949187434926907837757693967492477505198169476612799275654759518498078384773688309163306072055448522595443385868785840388474238008323897582201833746720323136736643317316994663281727603689530448742593705373578774244634485774033137680358295332978679052656068722133980957413851883574731824913602188760726928377350138238912127228390839987127387481506530374410251699602866246030844196905977023033233930425669275644432653863884855467460370161502347678015328208370943184157626853009415379640172623931065494078933821306482538772948204769021767811762901801398160973425775512351545674812845694282687989097065597450441838509349827307496885886614003767062129566310415555479075779551538657500500694444372619310055258737010940003904923466842963742283402317679576002886380787269908606084526433294936470787634210715948306239186214346995530210844701654796970201690229454718204167605027860977470945531215235592827997572825664723004062475244137689629692334415871330231265689529523263041735500825955345880754560447209901504337899431041411532704660563411458067196909761884173899642832174248703335028197086842873516208028376052786129252950993609594099472568291498277573885780317218312539987556813972686534015418938280221981563636582513588834458122078419986855147238590204427389878757312412949953242252019345504048520336649621975971160686364177704047895435465818891995153122288315053290399765831846697848788563607167254244024885579862520668280735678196457119264146596093805625279188929163521246224026622356448387613207529341611462703812891993456015766005189759445512817699911885644770989979594801550444732902107083579782047726018380582696171272798343390887033910845420370738096939259307447080379817507347971468130826929961913137849183179479045338074941118576865466403428642919234121317475225680890809287737027388592510176846882965406010831804765189111763566419651212069825943131413340179298952387217064058168908693748686341897594731499032992719002334377160698037622318996898867351407741724582832261776960112543092500026800981889936375763278260384287338715493367932901876795228646659355935013120668123763641359091242081647618122857646331548713403364711311941989470140252246199061136191514655981445530138279311789535564841677062657716082028263600274503110659693676987171170940314556390745409623216362368558905583300069349448100069061546821527030204033508972295076176102460098711508772343510964099274937312632068643841989341635577867906294454502672038068374728273772822045659014788210179253530989101018200412932753677440006825459018448648711733986400455007443471046779322743206992218441674622450148105573855952590250100289557306473523759164628114437975503541090973855970670040471944538397823342491856369925979676944856524409631541172016721749878082227234310636592726165018294222641527197489730159578431547603083166360222536944191304471332585675568258933146844242874521444670402271695004468573307147010451139422222918476247753377441758919136693170940057947759723433056900614801208865143834266123614347879926798931972855222084510821912682715623235750601897543758657823181873647634244508079936370815099374984626449787467967556185080208163213450781189302076494364334683760008489022894642075392629671758506174360789878534786971038395589523916403009651584609006933592386646546920823805285160978078328365338567697359552367300599284937065599749729791879033750904505321697969071360386532197954978918936535985939008057718377671676158489147461429307463936091851935477077442601213990144935664366742587005161006833410589904655836095134189962094628071894920466964336314698698859635711038094027228459709663101376996632876155593981687737719197853624197903557226224032652436899730180971177543567523679456589476206423552027325500744972059610734162805726704055058256297133093827344735446637882692328181862976422031557700103277572400756548913922501821860469727590185532406439496103849178917115482815684030196210899806120398613525961219098375803344254240047805797311474694850276542733554656077178590499495577758089506864836077044932506714526945016920600509963765286509682210121721460147351190306296996950314976809503471201036212250485731148586822983962906597636240271993953180759855806329742828513419259160900474824184494175344394949324590387143983204468065922079567016175557277196014384987321427729876390810701362125375238881927550096549842683741854503362148606395203795027536082919069123282373517386058600437493826666353239295252689731790889342269243981012535476424093086732215756155867375676530716794008541571725050400195247935556217131045387164156365053314650205438229659864248026853895338138438507831469318260096943575288591292488218805063834160933777742908943154063566795042349170590282868584328814645979894168248712725484477424953350054554066675381915453548694440116961902998505098388509827166109424083464240585825957432596472783322580231205061543612611125581853753175089270599961175998556667970099742242957877751048407913234169013630648418301376037855610909792694918912761224029704892214900617688385616311655912841515552603838569014847474297375143464136207832718158716297392677444015254333572344670731531439991913620510433519114487906802143784697813076237284528784867303041719999116681566077155015520747473005651199291690062790101543105402553284505410009965848827799819079705719277268626930196946829113037336659094400852703714601785558035177498360979410316975354834541018501865207689342509448990970135827151391966937459292135840070224156793020546494381870487405878792276670898611545763288429788142234907538059679121207519858079244428087588256970567859530186479542294736862214743101038889024991268462490329044457532047742078893176031940808851447856859187962681123814158586225660263304675876781282989260500948422345882354379107078028045690224634893626850193252470604924647068146724038526499969956176305931187336999098845501789365981625262548508964240653651624753380315486970442749283664557236579111752211147129902573740767575094810017909122641871850060442268849293313431263567459301533802374943414027155236545112486893145676427839019763159654788348518906021790884110140311639010331739684515062537962262107651952655680586681718418713423081973014754048212784162755808160705930729647560884251258759831894184892122867321061447464593742760791701421291511734171142110259554627320671699161408459181356939460664714012235240910051187223921811273961177101426326148286488188194041135315590921011694148179514511004775349861447128514977035879421058256498252618642832887922103156632788016932049253018194471233021510459683933863763408073467859436118792433576422879503167100020076922893397226218452210084786960260489053248558409198453656307927443695483591652429212366120761897996191749127699013828942074762996551211768350412313713701998266192306082045057314966572771480105116811200235425206787501985919796077461864632370206295787978276473721066238095979002417112018092660974245211995312193200710708306189551141119959685741816864657544812131019552467051166986236843338913556885429474517010010057924022201187805082192070805076397792456680548910496304992440185556496553996548920647685877677827141184861963870695579167155691220087083155476190426304726410681648166571483666891296627857893037527271421774066322617990130373137350985586613690883420726979532302062605367862143699204849023096256435417380498531219035148741994856276892460053246672196705708733020784046071193520343609327594830792272576746977621736637676771808503571569471043895212166031155704012181575933176610590621374827261670867203847451615620139065402120550552776097722750067482843720122292270910413284307669581786091965413010920349529092213961298918095625762650227805525015359979132257194032854534443882339121719034273087937348025374853284443969945849811552128354688209891745111823971952197783504689741062750540562669637109856395616323910571173775504474370800533634327551545916523118818188383269329475095762765524398508117318073856627010562809350140463408468855533309286066846447172793613712378346918725610659945687464904806439172979800910173655757946630299638413352220796891977471393707303066831837113739121375841418745378894523554832158839736657676696834881842095632719192150248092043143237193588551415353701966593869181439134366886448206471809266717099804979702470369206568839907633266279566684395951931146233933546170232540235741137235234847352193699108074981559199260638988393989682941327770881790717678929210702616372959764324421742681124533486345983809185513140940241266225114295922667030051534999430177690765114556844183337862215634457043842250995778383493189957368375864586150848810345792721993234221008017813343759865483812365367856606561415560370560833514083230257831426752001468513637248254641497353760308825575239317101560921408759874909330524505733900120906808905648111599135306891778859713185057911950388101815054786298153026512795247374658849949193220428214591742597386570014256367050717756937817758149042023086178466444337534056179005870952907431912540210264595264980634596153983704390370415958633958303706530409560957633038472685066028994017411248263010948589531712116551610733872169873809559792457101483307918504994890657972400067852089252110416884468891805544835193449484713635888412644615027311689272060694034196859397462964030643926681766581279513243817170540496959966204970169459347233900920002536559466164187054387226650141137336364033651646837408176145450811330131057438434374278033157657109551718761064841941226543674621380402800963800741013577159808452572735773815290747732700901634158826597104171273069630521062455727440653156103094523696878538443673061954037067779567091246954402101025409525345148071415214113613453982749155072440806175204706612897650472070421536034602418336715912293108182184731305977526408206836292296773052430191403195241575600244785565640271450645339585659263235460084699812570629960932027011098181257447261695841923342414908466804801356929110734296474736125079824940921292478273645089076125995507375169879817737871431491717166743647944022972562847438329855712409536036772037210095739684333678499012091791689061782828597891335990608858453553987907671432240100043422710374974707180820015691339630851618239526178032351825442331753681186456130517182509371371483124721144562734202667873377831489308082676676004302707645077322473359023052354487536319699934785220171205410434333378193449375666091995357812156881638057009230746266824402737470613888518369782249886706535401254229447494328591441582737895783433245754424908389634054759901452095595321460836421058411825378448975902039771744633555844241517284238888151669854206164568054361790622421663189487653000921759542275657024994901427417246559689832528810827177408665789120688809175971311334825028817823229578002484221127815914648352606670259818051470150871538878641954790147428632083126468230954292103336800080898427316005255789185293205144655453593453143840341995500171391017632059761672723852043360299649708402086553384804867986660270375787155217902408348295157984319744188850244644188065930350277382740872982942647392118695703966781891513720829127128993691934949832812463028615727088721092695443962629641129447877244336448708901725608562327073387680046871909104034778207763143814233373297417875158360008610259642597391156953165609557182678359733338962909991439939902231665818044608810274783490639252141971529097514339292264581931124876928058126759096303934403080749153387899643518777245560604369705209404112648906572635294747462229669857278825140188096908738825747801515179360345257970042059705397183569490193797114479835913210917633506061637258462924386631128033160329085063436254548400145128646378664773024777383707694263999644721206451547118851571139139644441053989972572100161791782786336062172483158917614494873596085383234166942376260184818755826819159633911667652361417166060270989937456029231643477254267114600547192427284374954821238841885328136690868792144247001172263700815829631339346745338929864964657425992668500897409475123765849680245807702952173909927217299340643699531069909514535032702474614222837555471285497998191703475092378376484064827342609828016598998714391218027181987170671781296421795863293174931245716060210966049113452683677391561025127194796588997174831946061381708185923954275331219986190601548160215339975724591420955481769782509582189227048536774243672660979930555527860107841901943738460120767333740496295009751557151016613508924667019695844102172867997717359498291557666310199918735038295821588619681518512478414985719071967273190287036179332619895247616622520105317804882233847303664477265552164586619454008537614018999590366269407342114555059054587422499394163401224875750228099172489192718486058884785391199951354244332839389771244852625659541278212612416879324463247175480764931816913013957887550554032548422847494837865385810978993863144051624963887294847437155629263507299965964019557605686252841192967977087265103137126920678482880234552088007375135723185980529668318954146425866636610847294577908288691538087841742342453892129012316130548614118261726801495007053348930846778036151876269981178115576026033422744378313696528016609746216046874192785070302316484057240186201632671469852728769577822582122150729495542340264995613732750884427161019505749190595563840790288718200564031625010263787461560629695845100059552960329435746238812353454195509730156101007211009027387039799441734086443494844848250522365491782446673268729473815794318439552584373514306900532497595145921131260699945103488947031622534208842931319164716486884970881206415624088018795457893608714053067382438383704436100030794299213458633291879311622706915367203982048174867463235336957033913683575058098049947625430316603706916823202560418639248297267859494793668707870458369618936522771912737756910447131415570854354689643544752460380278208465850805236441703879203237889301389507150301760859472663807573463926220150301592259192480136067421584261924226861668660904175215755008824011643264403362807845075066988805895083426846868847838304644691733413697799287577810267208553637335453990972649844126911904938916971546949311883942741222386914359952430151776096196935415721838102241378071661385768758755209984517867385624273134105416677906023811730062065412305034634783800449802854882043712059715687390144920607871038174435360166542056261889517331019458342860625233747198286571320056267962992266988015565205693975761200879939366490317018587555101073352409362746066336616217086572656445938808011980218861054056120354677911149178701560160421112306508194904261544966153986197840470962868421615919367515764247019003133011021412153270771104739020154602580066526326223162869091157795076346244859241592854511642907533631261593356021561781959298897446881467213651853598013449338237968482847769047366153990199698478373530507882756937495197561682055549671362011567498839526831026331323901235500031578451956155079197734291718724720906166111102129318193970941525365078865711267305856777761006438501630190898914488949150021005710101550861167213405522124667022599619675084526676589227011956803672199669551996798020133507249170991749104184081386737152983931335735409876425231915035969716007391624156300865393391952873824603745678391219289871189001353923722935772973604599075042122075260309104418011708813087128931792457039494611532977786754707864000168458618133469914056192714485589920831834701032816887826497739535222532380593676552792608899261338723872864704497291536202989856265712524777456723505901482412841733635816901065272515808555240459169339063756346959917986519804254135979975589614255685932693574926571725357249436149853215261102596274449080148153424305831958049335827263314566618088760705430718796212867468709115561078546289946482486320575668335652414955671921927312971112393518392877253894784202202967988448391553672211407349702878175445535067677183219863567351179897966321815404987263288616838570659483112435522916375875463578407229568784452582607436461965664777226959527619663839230025636436134678820333063423827686249969460084819311999007407077195069093993549184065194788247565301592859105671688666586002449603989794715030939482833685048343502128937740950323382014349309201387911817245215100955385720267866052989122662438472508078320393570298673647104413693477415573884676495288795173106075728515526815273313826476887609898649092357512524625330492515245375107480468588326262429947003196737174933839393454245517174372856684416268148749306037015267369078564898166843406262715035126121545536410090388916056469839937326385074969257224767322356375000122934656249708626957520343623209349201506969096643826321405436569127060623266654473934499333943922606777232971785867406870454021654718979997987415469428550982415437382432365881660264599213243635916514003826260583041925323794371877994440614704696651095537795900460598128217986753291597002208075668939754572491689775239393555460650898140973790766511957574678595955605078025419267887973662171181276484468518485493345076568484141928246950501287388062316408495240998622660589693763668963326400283142621120193714740070737264067479012631382522123220711171318248114147147503678234624470331322205251845904232420163353604614899342873562528336475566400401384078536477633495853068090518785405893658325952578142312749543248925880464438344263927672363580416638730606138403215518000370411075160985749024345679729704222326295731782453944838003954529643049517748264907344611202557900525951643443057744455255330402041001751291874205137670166027158754704723354875758161391533138868161671302231939390697204478547539820926982443010335276772114482169280689198037231870653872865476091759605921977061779390843613892581090309416228121424318802962475215496405363275822323697656319678752147127210986975566438280951742285238967671915531719251465221245854241307465554246250290810730180913363077151265670782093074026494024163977542309519345507080619580528341299708462506530880190602085871877248188490766187452084495941973875065724500881280850643196607171187889125933644315229129047754972353057431017234258694098432755380610360167079171199139710387533966038115248505810955681067690095445353270822462072352342294676663201676681484909458464257344616525463635880396472278895997009794915970653648955570140369837097588327999859626633064994515046678571475754127240358593668243242996711306170389578841978448719528952002758861597746447758089634030655046436835577282970879702951025240787981371681398613364736637497951455272226841593719518593569407679076334513196732850131365259314320824635159258243945887154463022839719997821977701966475389719192694272003354055364380204043682788941052427009990230817041379277953627810807763954644721250632724019547245033274673858475785041562974100429261819781952419505898660642209856381375741277004917693062605804482306202762183725358926365121458538759474162186437161626136652299223958212265254980434873705075637138819119040029525349479662986535231498051721219798781394050957270255389879278756556018002094110815229042846047164689425399231680588390090729589076896817318371187364180682687597943399769733073393673599643063462353918688024108571962544926348917825938184399687510544734017544729289110743121298063430985851759572900665731982722775059097619536553438747148746624679855487444870185200659685369249779005251209681018539415580203842783642013952469461666723887236434002168528467686434942983018897524407024394363890881018602210239363429234216396555951610539112208657647653658137434199586238291495840412593508765041151272807239800042444370958403220397998394238604954213400811308151377649957018033022195250506333489847604021841639059450323847020750229452454578180697484052096109274148482680185868118095635461184344530416550833351126041141297302457285202367212148078006744875652277075647531646827910092420524028060828989011815313354988692210766741512366900138808801405006263350064820603491601710795452593873609352452180096431348031607747116512289892805809396762876926094018074932533114941273013376689429309887408514320578589986617785277974341023268322659154138057232141368233390507136871191252360224957261540113734344287415198451543942178963136754127213422061561754196995011225506085955804746453816517860702471940163816121378592911926472145983650875352558283315619470136412753526660066646740958379528134629331433188451074773920666135595689247673733421556939532681921607497212879507338392512240871340803656510525576014608247260082685987668504789165622968722671344316501033203964699649683062096856555780032213559865707285980706942500917128341040312787389047441366577478800071921349404937399802186479662906672426424390341420982296122508868895084624988919914434782553405228393871624323123947898858549516926546484107143007153032659261832646655738846268851000755490200418862045393925746697636747023583855534639635345326607960516041967272519344177749663705637453055574252671267282535174478396324566282999092858941971076714121365656474791612550160401368214782517977666167868544884675913503879654256574455388299672495221205520473267269426854262112174769770463129678041196342099960547104598439953120607032479533191005796652136557055905650755535837619800052252168579697235855431375916819526837608432438583168458121373289990766568499352534986230068507268453575609095981454676069136682008021291057344900801878159605610540811891983357481104624470705038330679642838019924146603735901505084327632640767935625462433743451917952857327771286272015261949444442988073305157832690538028568681958861166907513783206580885046878831891083721871186046774655118693432286818947688613882490885284765984387563014329129417871091392671822967074717962117963157320031150282549870234202308023816034169974519861966603666030337291882736545788605291571486654303785870144927463143185253861406649832525652870627507486118558608392918939908293551357063719728639939865682469872862850199280981101677831241516139923031071677940984620659619770879879366327547504552556200129538447420900238360282343944076963888511599403508975772359838622668113864342442161213207959510925861687758043897982616640376869401658249196948106529009106004086469440553360052630928164377650499407781235742090745330584193106661082225359793630312188152083612332530181474816772584311734783234042357207479468277054993209923937906001537583288860302642940991902766481005233556406966714627396042721004556676305600637287071432687505113373480431492832101695768540738067172007912024525142745313880940925768642357837389785821899853021168245271763705202353351238832709086518146046539523958485258799939040443125998691108349735768803654611622806885050021917850656142920825611424635635106938065912159297995860182657297838956357805253953524356379887803686980231286316529519777949133896502971747629751011267932646886002994304575315485962786629016007362737104745010032676375194666120569423311051319891651111898821278996207700143753772337506404903738417838321522384146572846738176984052895059142878219508357242459171702100828537837447039591273767260430911161184400450025776539733414930323948331114932080927506140394474636544535485765965161839828822129377898934889406706368175412019449976592431106015237554804123708981919510365175391155178748047916094328722494839560680778554465837551610162948365310700032988300339441625061066528375488899267122545842588260113989509553783306007877309896197956198393920517974546772219057526814540758146666699139314834685611396093509385502093136184790020447088444464625603489695464610261242680666777781178877499403714616009224381754226617271433775009672520505196079043620287398952386867865127930197584350531065055870520960544876565458617961371545097978078896592628911387326378703585443800927240792172217200246337897761089316097243394560098345991803196736016814999185949223886140383102273678385481173826921637148129471627445335699434550493280149243804410235135543710959251665356832058222521827906457102521743135242865657326397510602937461420890995255828551413425408488358760410210858487658652256818079571509978411930418058398248182992165251721215913780278674614688557219465282568596655398669286991243981053650655112588355534466339928617606762187867495686460874492386147528053075218460107477752413530026202112940847237987376509289599276133837090935591850550557677741772264314875162936391606273976190653316130124364981782044271268341872096299020230318971391732285881837958242663322553076445297783867207486981664391139688810970047217476520002633009156188701051009401132763274667045047449175689921179363010253847200619823419196798854386344973748224399576175881865848444431222005947956518559280609789267893579841931518922281819770175034847690143659053888378652973268398871891664881881056526653837620405713602074702219242999531574659398437662504658398368759602779382818284339228211513792124286114184454497710607736014182793722020919367460750123926934195922134211995484277337564671451451831980440962059825259981213421219099586194620602074849619920448699326736378148593572293955278337526780135622787375676006350420182394847399906993419950570735624499523026479087996949557749072102937813416593352981865471279579610333225661442782383793868251812393151584817646400737111812927120625699865416603834387462368232840339483194970595906118183908412185131169875035902649718644147590580017195251946769693338343663642631699925310505155864133858032265986101636023671152194050473392809293297697605810592180497211254981099979593420887113673835842790053301219469695649509437294922489262045866837950536186292862762027059729030260349004646773164815658879745616576579757378129783775178392617523550282545247592199357017090103654259209669938544915677365054835280067360729431546107183109901757122369264174935192112170731781934559980258342071537665358629852142258170179725467709061190283553962237602883898274251616557232202170900423916183604721255120834416027201329043463187832722313726644422718707615947183239217996235446643921300734086266237430020373527612557148440012140657438055191816032456859703458377984663306778585919342536409535616175606102478552926264501405101264984203519627111120959431936224194624674243992684308184897634819223798199776460204772394474217674165234944347737171496163324607406867751402882873204899785308926646310480518946265214573358824216428457612414727271924195751428840729640131359268419939429687481884402963548224282073764276675670782823427651904897637256197983933128533502544333644702799830457761931750397218632265545905076945018073509762534474113634915388524012957301532603712801521083949584799186391120195819128639324801178915446022542471700633459540852358988771395068467809414196616167011375122998171823628249195718013921134299216194556168110630208888936486383998386798229254013288773258735778927564163597097171334073253580739357503656452107886537502315744375413847588828329078792014352509105996204028222920427610675166455157257279171656021522409360406184395451995698175081667464973976894795787353594707838161847216492254012837531369065863569750031931579311222728918436151599854157215079599624030087397599966603787666453803599953988713198520890731985752770476348856194722321430722923594209573842739439457892629521125387798960270883946445538141580796630918554221623220046521660072273127215701978363516559006450167390744771300444625221894110224739338900285203946500614756642914037811079911347970248531581140975811068988189288464467173723005917519737059037536071025610600471492506663522353649149676254739722400815181690400347598169407326974939526852496996260545864245134413760997246646497264332967985834609830785831805796653365099388463535096348849424510177872108976104888831443568737662525768647126083275645737493830478243416644467697648382373648231121573545397706076147213388070612859300138470052302701951863587741256274942752707496467682331604080348577836365879243718513279966433125640673641342403272547707662371474437758610221247383251620846398878394696723473328005837721775731626774034505847849942394073346891950119470652940586600809007486328320814882461169599697867899125714091433850077871933295059625143037637384093259498301435813927171529563380156349540197936671917088811053891819609040476933969860555863137647974802838359694076990272010361030488514453984186641140980588756551502246067429244993357311395154546125493089878777212334548226210797498870985926838368604644611315752639985127532193279928998946491257829363598499682943663877918983661211866705930687566527822220791192626570959685867470173731063591065062747449401963981534295643515216594258172045936196782133051979044473380554005964260090040993040167238697813387349500146843317732617980463901320933789028739032149338824801726559261605641830468127862559045284505915484838266887291338285921528652450896176609338905225373412966021239136512795447945840790817565194199339702143298490353168547659383038223962309062254898413438503631455518396170295985353170343671725459584787285423860259111802399590366133873793607407982441701670674773260823717811738760720654265560437104676686213470794322308470066954935976673651632077359365053964550198986171089243188882336681863496331928917921175726835089157146631534948380466882297110120588897014888064519428164665279876464334575890947560506119338519412579397555662387947834882903371207720202350784350616345940905164541907901788147966545035944209941926567851221680414236532712539366533542926861929119092438316436404161996869531948472243426617561258762064770857608698602479640695629942513480643206738650551155892522286257093948148842126961474627354211788900754365638299973405011195204186386878167088276598512920202444153626034302077819361880892214717487058165581181814400264296321753014147803660650533717129472970541376229153667688644398987932033940139309210786322750155606275567183024677115155247157933268946630994478043617106461986992847205598581527277938872004828708219274385009190335229606744832505546015011392677472480789429319967427199107436749407373847377269955109960986693827032673915503387323886862382156456793004242281928461234997186326563126814212757382804000293557294134561302272995307171092613089846968749822947515887949442099485097689066361117570781329107205413062384904246115806000046834081732591016635912402937916639655419371166448290731651020319505269007146193618713292020888093815027133583735887587105926779261306702309012752592889252282376087018205388830950360485254729138140792133760842347243944629636090520500245836694902686202615236849146973073487049553970946585320229207523455044775107623226933503444253802415473757091547627531728358102428881222477483169158261141316961522755282388462900258929128992627507811343804553682712888970992555371205151890080144106489432816971935731563148242395527162391385647514881883604855712209857416398122612905745003513550128716121660059615240877247718529543067997002210180638665114818690933507025472101492586886351816137731095957901606769775368166214732771002234823691313039416372027119633167447612542367496153877207978460232878337086317830050669289946506433340137179760013158756170248116668909698011008279607342151895228258959396501077994960796176637215971219121588630310875343122888114657531816274864774205562966959652173948353780455940255819033342766999302538997952136820092815279151141514101783665905340704567975553243284304780021530319184609066672998152860073587001475863746864611771587274671497848982329989677690303776956412778060622294245213663459684034407123380734256860859039289649151047486168261124636265519827931747674644933639868122184435910581836928558424835268352157221437797742378998215257765827072924155699361626217743371342389951341657202313265433417012703023210514945716494487107566148298276334219772451899445204858719892449835472877876719612395082335060209942692114629386073896230032579226166186820118529759103941149801128028580006830734165360036660166375588913806507507629884015400750268956856639587264307709573385031223492366482106275479060340679952174806577054330336225741543294240093861471977849012338491220207865134168978365592540133404694318784146065012563406997890179860835697139015737029624768975705498426330677951592969074340391680361752996753131265884264182865241585188635322386528782831610995469054350779706634402052263706485140970546761605795296341303741133040607767668562371358939437973057806920739460209462972745423021199904546071146684688261418769729072887698658726316345649157200644254495610564578832802711378577620786436580342312259457428407854216411124491006063401902589052842621580860249052722566185001984344098083975834964638995539476038779928948144909969832982890942091424138241198781560871622651305166399779910473203754411555461140525151552413871845122955008620367735601656685219111626353237040505606737779959712223290446986099089005443341975218477684691272429563202474452432213959865465290631883583671005799607903224744767584365776293021934695800898342571371197469966653209863162560984631981570224888473767817247751177222250013434415065260799426607150151286260561060080464600015230069648905403378747369901504936928395837560171509103483542913511153766209126815624695357836700046206090456823201494570568627458504189619996214041978396280340328206430197992542438611378721646919246294275676875374342820982442917523390811385641231114907169162766695236095292728897638786559164456798500086293384856856961137820772022596732275569013686485391296679411021280219433244575394266396636012962305364103326261692965304865799097235771330044006738087119423203976293974686724652739952953250916445780056056978519541313009465551899819885794063898734405082597849078529282780327353399487567238565007443888517283359938693800986934895643380244328826958480714127421757945970109079164599823295521702465562101293354207211016268543940941008489833969700479395713080068762389957729160252920897951834655181505427327142756117419404705129887778642135142248278618524808985927799107059377563164227210913250975708889424805259927120523627240410261704844157270796242198491168673520007496284338531044679428377108678797333262078945720530236390057163122664311605379884647002937754673439508393952818267407850668703521709353819291043701309381064631079385221677634642487758471916160745689772758071962354310308172631793363207008554375365716286257592593799525700087058305264119088171631047053859016225555742865688671090043164250250035289426452807812108241601860453386141654475268594690044890246773425645632648872829915733317220710463434444969526647365341927191988286956932046877932814767610423255443032291850561773868037985919256220349534295106054688226526914171265594709355022785368011939242616556294369362381935380615353742808160796545543365541516435090688979857102983174496108219455155043224242187279297458252493945549178580016890166468031815014930146041100297045104974481027446126626060106642446292131019633726998612617407481426480602731246076686426778143808584375103947303593967087065912679641150050460562242287348361099090068573739506105281543528088814259095738964674749090872356115888123537004462851900923608775879347344636341452951233890181032249055881200844814943709492116039995443401709666146585974423894307889790854338776263936773200395793196798916655204588165282264712142108230627410379692769522144748174737813514887884969256438156110604740954168971501221737116565906179514413134879535462682919827505859276561343204584099917993700107404615859996144986141254825092651371601925336415642724108407781178048280651407518841444764744313042734273354789377275787769943669070257211441979765230362750029133506360976909685928325455068594193224676047889235064769448985793408930503513368866621523841832112678885558968047533357084122373812030978798456167554214606223635964593427064771135157325516108063331577317264753241712703417525640128172501478135528134929492838777153286820476726758424407128478711537254796068475260773830679108647329121600420736355950924680301475039790120932650123162098163758807767056589557536380590726619968039407980011035336616742167403652285093731028735872201391564526821132048982482687917484052206755309220192019857505900716840291043224010237837161277557802365547356109689421357421368012949711090366986524990503013871955386926796449448847173683035391182620040094247256181735333839926865838796742176450567440764679732338789896340790528025175752567633012669801770303346427542487977499982884024381151619871653646455505163975299943122863578128965861769534004103953408063579095623011345801014795401714975976516396915666211097348426672726025542280106285423464317717472648023601079598524186191995521691444993754195169644541719271745065242691820601552432520460226998049695606652285232484338299720336087030824506720703171457180388685988282832666386969817695700489406322022284599479857810584363431173379243252395872536246914611763962028194433814878059119904403463960199416543036007710882848663872521815306413530689261796979974821031331354663967379458915816113129702324459728657888851260605532503239262372511616154691642056511693202501567639104518880124221426325251971051263018701064128329048575481451546482035036229866408674177983325650967745694126549520216137716385773468503994772284679414200413003877549001966557839906495737602889058855915728666774213330933870723877235412260538406324818864577046915005739087987947568712696436223927766291211526318545105898611238675060196020042311462946043238617925855166173619451417378676317573055449189165298434062760490221161143888507096941774822760421799565603479345815357504873569486079230575586332687580916532951395843010228998256039684992090969168975413904513296381385975757942728354207187820122627422037353072953323032730330595668263178856129191737244360151747421620255398850886079741816732642403679901201251780020609724020494820792368479265237216511103584382221251462014822335474099062500727092300188492147927974819018852659140305809402643103807121103405004057504005165223179709261562556037616794959173915157367499070304634468195102560134165861515712830228468911531027209190739444763811370762753591816286831595801203385282493943972495522759353702091130385726005041562522907361336166797184514383914305081468731709680252711583625278050063431381805814305795408616210256403086662374352775494131698526333729883459331280428502805864342990856413832299775068227902881476655499687811338528461554831045080066267008209822078473011544272442716983142885159653924762652146643539781948100207726831203753191166647663265333796880830687598890232117360202309343449124590257237351600150299807586156620642277581240156946607968272333620963244122563672241709018553250879241042865431779053889711631128430732957053862936517392073336368023801430510835826842444315836444339507890557090471449354447367161809641166107654272149248174612936597096208589529733209242434752269704378907161544310688645830021448350879764301035650486534189458877594772672675392816970771125885902962155766875355002897847161677617567087580636051537855196195139997953567588857233432376867400651160341881737316597171107161447775364824878699120908247769636465984664647456675418649283224501582998791566953608623003050692872180456659120099731556204664666515723309153851347855665499245564441584327603299071235091822201345661156567320801004122451359876028293553404783171127967492640846880918481500211809346344651848810267565191482259755297340329630042368984307647450140606769965608124906127591181757131925524058421112816869057833038563413155387886199345289582809838035713318320966967104402580743029507413877455647734389482570597375068105797622261541411128382541469461029435296043916785218404120608438466768150805894129260075011838759913023055018087645596267015156929793406018837852426936303979965888714822273371130014870253857249189576357306876350728272917049136737847208090709096896384646143246048561294662059332540476836261238259066986813436292399960930965188526887879364423429697600387388416699315295131733043008178755099885412544705976121493204759073187427335365578082450790697728441737454882218002014837609535419713590249134202113050480214406059944814054263876015042076649627964158579084973252358236438518676612947915986287781675230197159747190792298945843799289116824816852165177409302112301156644161731922464484503109019193865359168917336566359933460592309231042994654992807170404708730833543928479296706617455308996186659066836523176813691712164957460935665979549844145757307605588872057546909192416379500750367508926307540832020669982830765097979852426980886016771622545170231965324671770124603816833788812689390500276492568480200978554110047111376973493320801241461282660722762180096855089440945163268403755202404485590795207446814196656543937118878125327445248604189748900901503650189584554237044236149145039319902559586487809970242455122392332140184374463045411419060460120313887882116635708250061252157766711085255852023338505565683721696760789562934930568438090792235021127948610159393836814304950541069620396857359490102928083658953622776816233541739815238015835057844640189912815981128887130674099896209055261440372410881783829784535171983881301147248126102996898831181309617133713423615670429755897900286249513137946822655292964020192577954083916303772139590188864948000911497908033608465979690914217460788665096037809368567140919075729113562802633056059329711516871172101435663667917033549071487838532791860904055188195842954753720952706784638672504102361654627918756127218898648834146019254081537916744380288525117925257270120620610413686676126584958620175682608954675826055277815547158246353538773235265951197201834878651652243894475913724837378086273977873720296980568349453592015218422841778358486064956431012965099503500071587844538135248112501326532219610578086373200298825713433580574964047893972180851120984114767756600034007046058875207754912397990780358929388626839443913046689500896911042041455145369527799631544268365577946603774363647146469351635893847231642795678868517225856110040407326783806558020361175507966058083524845465382380026174415196311311535913177385080307909446724070528753000313829240669393914969766857643920368751907140575308137343466790523031207215912531398655884349154491598325035833448164475280944890201048115341945255394886836975922415305219025288448171352819499178468111840890849442363925488757365782051862224597639118525764739696005400928300440720708846424138155342388799597233486506888626331336130973128104597803549469114177765728741427770686643706329589481436943152890424317359885149114234678023148269259703927435127231346605041552145634977745364430487331211906760343492654655730390942294710309196949851175820535008817609272521753033841046896331722883942314215480581433035962207154919722832171149491239821237192600018541226599205696117551904244701423769216934820994644096010037956893747424662196788887610157403503133816332163357500402258295900150632178322736458710332099045134332383503215649534137400935460772196532354255494905890853325062347859150894996664775928739238613672540031216266468278494738748751769029690698595544407807124902438696393843249796789097584038323227683892336290133865583238280742693146014770695206999613891837124865369954443865595841112462274672587719329255541058897622750309723568301467850354481156255031441242749576535722268371650244417814197723758771607354930773149053941053757070057005805113539219304360974229732244532094459566747115222483549546877623043980475307511002296832657097062967482824129126649248619177695308250244314484002281412874207506195744506163327425278826912870352331977849400488117110713542047294618804645942599498674466205976013454440955084071781989629072057966065328150959302808529048172186655178892704927153731188410543756104249367720164719736559781411169925663856342961663961340441455557695015903204270314036094930191681652440870984964864347783657742411897412065424086719307272531082950296711968010375356186598900128264285554924354026057403781026694458768313836693637816712785521231100347864238047618377258916495578411418942850965418016904799681584721405461023218228318665109691195466491236815650044531780238734978551066909693228450421949135254582619870170998667977358164700080941883487144363251549751276358676838455910733301713618476940982823125000672028345039466660278323164211136093345623669061387502723909487762997262720724493776341559580974623993667234872952422902311047613140432287242761332938359947272206318234075444785966555601818155323297573349745753815964347341256830987305661905302767999764315283153283607111072748249423531656217386523563168022498039163615774400990715536221946708660788720914751269041670669613447558995107958060948084928549118334663547657190115425688492711603526517719202464989635074053897788939650227878878788718355444067151330616310032154164280537844191244760190797012907243511162572759083556362817472710209989862463151621204863677710999694321626103644166732166469176009747912137425465055704753201228152810762102157373749822016594999879669018656070858659312558146025907092838887379298024619805214015664967681792976321607550306948585938102317768785741073434576718580718043366000771421923638164163803187949000488119131188900114614078314967251095151533321619091214233270855681471793532627890657735709839529387489124590003157825560499151455490193604198265604045882356352376258287247788308153744268103738436701334247504238880741586997928552982770841917952089304433683303368275104336944563811583700763693462819036479563525909099295685666051035507863875483341605557157369408592303071986976699181798345529477385926207675860061914514506010187780388804629774689026563986488764640124014217951287270390291414125558365887518688753280452667595598963491759452760913049541612424899482432755144473947666443485314094912262723886158079482828873704202132146121838527223519937985611093926527597780380284363376416754363619895616522538853278286827650741590076245380323072315818540817507938618121817241105065288007500111544467572026957404292718148851340958285352987817116798543371001297770673033042711074295764050469038336442354553525810022403181232845350601737927472125087970612990279578421921684283742867580823838618192249336140187918924523472706801087965696894518407970552162906631202428054283254683941753247242364134780541102000001540879859701524722791173976527583386735019186075817344402235862985639014105018672809227602381189577709024664117816017555485052281739077126400794470500529775094420750059183064428161960092212971091072959112725108710489157200764802417342049956046443940361129590527927768929657096655155146353090216316453787685797728551710256515049477485192856798918817997603587969022140208446266174012820606549130584979565490617471478425816166482927707279495064325329398609342836562032281505740261991680625659625859456617752185797075909393028939896885745505328695789119294821823563198013984666720630138676620174042606127100573899681423803919217507457087968462078753884560189192685298454488215930613945368448570389427587825358539869234546503063482566794981462425268358678078936744846476447471770394098646749969209667110552136978414722369046844560841596162946441430963879222240437534668758763655905099109991071827870143466202838795674909584038639433478333121339545966417533201150028580867095297733695867598675067274885222073812355424867926888819466394203109519125508985389036541993170060201476819840961064359907460855307367060606161361208498101325952067937301732819828980465165638613872709666738194901782604718287844465747666398557256204933181554630531525406778682122570115651302702570813146089512623304160114284092139893745890654678741335427563102278661168846284197356310390182745045176441968669426463431731864013265413609336484903917027913411642290545122328266908342178178746443381258401124066612414582558376814914669582278996903503334189691448677031562067312434742243969757826280058472534256344986409965631431682586773186467274971887300900395869478802048846559204861185113251204582175966023869531994586994570502894920936335424518191444305332303497327148258968538739149878091108841477754163817489613083886041158331868936714655436366333028198827249420639461431708052422636456163575700118914906116493047271243795830104691360528075261821288939897151579984879816272270957328579140512457356738906894973587369303977840903956163356863037387741806066162337576505631950528560759821349144060459205088158746074366648255161117308502281863745486329098216796411208890858877861013575372368805651950448102589321696705768411438311888685948475332586450544468824016399235722957536200699214234317377845068637152272881313800198078723936617361849166086046853580350244957713596603441750489046382773803661037684749548042668428578012746327879247635847348927913700924359319689554325756923537470483051134850766940643718698699517068071335063792102533490215595870997236166490814312294761269076748237478239756213221455329033051558481163301198194275608194243613867043352430859850449373920304247703425756765090124940256168479922480212784107310598042978702956630459708637621800107378816377163171414700971386177397594686946527851680486931568094468157366683270679314847467968566359648735606353352486180510091733596398296413351500722052416185201461088416199425915064714461682492671261296772372808009325245555963836468919795343331484938975073544933143731430502363097135399862544611862449985696613049895536669143103198476415318581606673229636380465199029532033602114854903343135445566467192409666127214592874826232964473059224930975856061391156974804993753792403753490864739174039365761833889870523648050516492983232411246512547825146360145341909864890959646144236021201262030335498286454324466230066008592471118065103938795987119623910446536657426968609084191351271075079161930929293859476810022103239337842019734112725505603732687004736036176352242493783419665893948226519111540181795684671796721028014921209755088720331119339591901464894703483635653966156733515630071181581223628914266585426854284020443984463464274681900916752935793354678498350355314897768399527624871634876172582781668747787601800248263137856166097061095451993500920656273680248641541746650561508000583393144870782122355635927624063739102862971460357925945431565690375357207009276515602325119995753841047379578917923943371535784602523866401215992800462453224927733513007741411687371386529562733853958988042627407964368132564416600547260130397904699894246076327769689369377420930002557349206611396089747160031404546371011620986915414783670562479241736715752318372187966022509155718055444725238273043957932376357970272755575666307101203311442221677844184657504634254598999728488692421511035445079593995627775867165644410454145926736729908815487080967277363788897754965318633353867289774296082461510202150347679814068883801461922392856585071936915466612820450539466252371722884340299186881755934309369711906237546182861286472256686631514782886321191830717787261351906264528572151493245368926425771483538111249068028888548295269606128566121292986563551081542389672055114020535800182828635891539183956816374756188834396978847030054271179602254348232137273891370864698271576710585698137999385786581321812809344317855778238436695495960299740459255108124968814177545394467287614684577626069666563609626699536830201634466890273714557494440051057865739245029196340886748453782689295126324987845816559625714491900115741299833525378767213373080373436123289057315118883320744813028835154828452598586411859853240698210481939383201185462376252553035482674074381799136226529958192741216510954513332277011380710844942229559366912405444860324859232764259597377313156788941621281469132116017067048039102451653700042389286250143827627448606944867047681936352345745336048340034297554211443990205048175047642348882455976386999895644082718048361503843239904776575929623505329196055557203914008075085290022967320174978611109858462444100636835852933661708325587792247635133647352501291652011848905491604861224919070735017625350513009535727781989044443604164186017300328967492937756255760495985858844369692252955271052076929259587849246611106919057941532598785545562115948796601932349463462553388032014751344135420846014217599442387209874298861875535014829175334375851688337797141655582058931716546308106571055752792266799404283075849058916024520902600310111209784138606690384477746719676505348288675164438930744867829772708961077718998327348797107258497153615083267244655145290527443270941809631896660721533419246980738726969513748520529380283423140680234048784430267210171912944446086521981894253882583810556566103267431667057862649526846763065789464770401324206546613471436150225141992458795376356378378157702637235524935664972152682114024966147502165425303496273077323716211873658408066638123759620269959527954229292419515770465810270465352394692519443926390520700720100737391435329139152742179593552162920799976987889618981108309441058984295404641032023053969850618601509149491073465356025834936642601259096294474637446063927003176743355007613734297454985668328298671821943136987470340718427657107540503823732168986160866980351636778389803668384825202399798664745774895878527622202584242597407824304459897097440074369232491824757669956891143180760352607301246112116295305646243560251604504160796335154857532639986854259526810863003781595487594522219905191812871039753543645246000757465331550519942763429855078228357074707223000412126530460701106459139324357392447130643615694116522254770931738667672774685923842225236328614492359624689546764955323101260142173800482911300805839507341185334464609311724439883820831675615386735936383629577872464975108699069894477384148692517996416942117082203540322757093026708136836442508326559563678176449280920051268976565592695212283037998679488854780677914786664466994752139345053989452345566888578331994119621619317775245183914016238503801150401070640626190490469902717946283946687598829918728728880215665462995873510473480375784777105431558486119854725295677628463841542598098412524072584564645940445390524324737185367505072061218325261121458055553804297592921710246465245910614282836358613751384780922878465537006840439863056602991201246659428133603749955056315119638329587301077933266701527955450125313903582386624581261037691981384635284615398603790813347936907541602781092675400104090339923023037197017549420435008648132667106480464268638629711942289885064258078058826645872136285305841214387416225967446915007043667607655720954515393954993536263851338505460537526674766220250937003764814330565253034586845491608098904462776219818820064415467792719970595529403186318473260228361932801951642040270512636682974591651443503262878862280975882340846621030965868463499658055099400877361140769291537801054237566288110291083364125281385192410691825809853329062082368413170905403602342549623496297699513064508588112958697037050592539564736757378631696746936914734749412850780911218005930822287639964559624279706190756619269077244604854099333009928640927207307659796819213335534792179175045295438383717090842494134104023398158099460627605020089929770211028354263005277818482919585999555709309239435651241620322493509946074060354505964531385316643836690658810358270435355675323183793596401643356079562525248613873826390706067325175942974917915601160185839866417743577027526281683415492885141960236820168943167823031551895754626248768503770613749964426209999954908313918886163011123097804477505596277025823383040538636049168932222295813993891580507543171012012371982659477599368545078755343749108438294597400945020831484352099248550828861271584087457018127439298150786690378854102398972670754487975028533678201455648689187323586346699993003181382472266891190982016046919160558430098861965790198965255619676664063490798295818987029601059097883617676011914920825309831076010274291288238601115316507171612575054659036980542717169092408951276176887158140495722067033935010917563081529889004039564582735016031164364651881588217060674794832173147820884258411609914905655667795661693670262789932708355850827260257042228269802086293083486576124758664967346338750577008217672642651421111110281691701739254443080942589014238684725561328740018352150465217495902940101866988760037140726865890466471389500933731143277234257318948719289004993201506841206556937159084838394324625345937505735303692304402799324781080219180214808617254385040124688003806784698912685663664307170696390171914214516216446418887435077181637964312551536171263257338118483759906960818095175285110779393620359052804094963187506465881202825097710507061596517076768163999029087365730723037640400294726170848801024897957892991687186867845384468672856481212118995170143845209939844486186178599133390446159939463978663805137046098499598269402462074687473451028884326183547370692939637103662922057330571119907616453668961692652797763280748611940679589907554016993708464651580299627231504969008577121046004840040088808730135751193252365708251167446223636913910133302193976961186936992160464729649771476936102391546454844083183489809137735152602548704296013452523465682976720474829026427486874798690640119838041418104442103817032518858992514181673381658600974607192165899702927638918850126512289849053222727590843051151526414641434035720502575464540374983675323216613017013484320158615729960666703361069003602432031285320717773757083271235324962961066182868599489927519731038693756169836922602271635387398096008856096176589424461193771698201249857173850931493678547024818935084245165959668747448680217320486189428233586025378139182901442740416762994552828612886246269741416129711109745730449692561005103745342781858498602843143526075779775446315757924151621510242087324907896802386496974491208985928423818844328613684140731496173694217651275723306825152321572886754758502861213104840357362192296347499849703563626957249356081485654689992762370592356008767655943707982952573237019368210547446153884215464203644136185500747927976068683702690913064410602306261225924322942540879129260579383627104161984168117033898500355476282454078161992047899026369779576404617611143139279901702056464189054061277262460359481755091707937296529478570557209548705113432079338496705766675176807925169572243281536725657007887689624268210779439358345094487069238258096387628460446385740721545249597575220457502330654414741576305511435823159659162482118274836642724071794351722732031386183599321875372292955109541357412864679606232007684967247656137082711962334500780173910662067656028305750723438137520038713905915013510473355607750574345020746235100606185271007320591566403509320674620257395461404372645562699904583684129540129052742917485011184488087127684594558142503236154868334796204140473839548862196170483312802215550282262994350711795275155408808436921444390051824087328104008086631951761297754134280686258891664307818204351070928183928562940904397756944642262059664730411557296064824750989955785642831032346846536785769487448405103676646884401602434286419131864470315924694135584057336568140723068841363883527600176711823642693367777083536075110282725197151057379043466516996129630711227763401171254011150277136950842119902006889884941160684148595995324013588212686221596286520433085342547318398261601159154360376588283334267470461626005306249054219257350834457846906320334734681270802507734553402196966402564377546618947986411034587563684343212369294629000615805228351706583425675539181729517794487212862733011436992160706339088666941025390125972585419954839814404539412524253577093728007944738353099347535575510536724352108127493358468481319128370988630178844757764384545037346369734788621721201082977241819731454639158451423148681837275277952934680094233471225350751884073667814968400124126845658973664930058418430997150882914728011470518608843991849477683846117188898072830159953668661756131642616326395119108036899389162845249156316709643862631520846988620882541456153445830242393590085413653667252827686380928462978526233317301146221567139956901489994234692181350636016850727308138287325222333281345178189478708771333347118006288470594971995099902464974151999321735775628832996043364585300483737250383236968701560677793276010230832137688703890025356020876010691868537192140279138365452899082237282279137743934523265118446231876721647739119595429595193627931558309731801720395643586103131586656662316331517262486271879907001905293749968363587985816036236648179548975389756028898969754780322851331895364316058296292432517438372577932880715211209159388703469391652114267091417650450494754346709325982988080107609191561422506232518838630338131827942358569022242945472160254349908797339160069051845853607671465586339853304119222718257284610610592585454535588674527614825115434174875979919928157574330076485929526571114023014250332775649895711677340714704003240772969520514877629553133147739722748791372308767799210118647581429953441808038475604943107815024359395039988062286158414452897549726890673080016863223458690875957089917503893948650409703740054711388286529324173002738278680010196954981879958752937903847912042036186058542534859854784039624049867180291211231430476209659013510837514207341371648931545727820912473804670223287001880333176958272833064905091085632883092417237552590328334840243178491139360186472937317557469986514114259862750554197264026298712447715097215379949930326792181407447790794189560893843520174219876115569621135058426125378734113256679222240553987399483794879564461509569277371908725811906391087120317522665371838492528303757574257891889849858860695738414733804988654149169242882021688950500057582196550283668412690754708478917404964088678628620468300739546970794638673751305332760791664266704756047823625259184655039890433157593398076642982590145230929530968157074623474412676458985575671405238669038780637035533631750391353493387122194968799075712360784472342007954328212340913583146947941876845052356649243628385006440522682140755452487448199922968690363314712261364450607704032836988736489474494430295856057250653402603001753553362229053611976245832950603059346829514663864207505942754871413620614456701458836642570925627246412342744928475336890621161443356138204856414805888890586157806572357513742843030432379899527729199199315688360524184906342773814354445681060310441273564061678130847374171225956956784948898084594778685984895228337343580281281999645838333489540968722215038355355807340618696377885255011918962272045056500603726085127586742095127324012573717611972328670733321122353369588535117632419242933183354292109424092907341819553861667446402869787577524068889737548395422618851818262018549064731719129534849367600896011955297406368361475533844181080897619451494385746727915736943771315024328661965028773750440950136901214907829070751545452731008373701543242815916484825737488104615479004482457313128208783296728986909395979243925587142066472231593945375396758614504121232349161811577805087899008609328915390224766912491203633501112592060618839764836546739382037541958665821913296909593753472421839056771570601957888390768808669585644705624398043300755750203241939538927446235558036887777869893810027293766623811846367985101390393180590410973992347563747832984829749344497793713503353930684228715280655286588299718672045729965569551879816752181755312569472457824736247226609172644063689459958027621764900803611028620209987277528229323197823471208770411981326144514171945805172534176067213846490447997243747427839950554705013268573842758746089744899264130319884534059539032451399476346069627275855870399456209113577723009063157839177661674371499993038814240493679650118864854259268736714043716828834013240887594586255675707208102508096381967960927197810533376594758665424175763455452106584779733583784547530118930186389688381166711283779454849413644478043359226084933116259954703766945681510192504983058646471262037432047533996648721766556852130077570479272523528088581015616261727760540196879491238082013045653213660236804796836664501294134099949744057490781982557584736187397562034210042378591863710600692424494316210608328376278699395859288157718484368076154571927026170753273011255865714333904542732735770660117637149772127529123930613387094571039325278075905465513875283376639373653431442286593360345921429857422842865244608367591268772904205584572893250173744239637204874809840133563151159675060843896649508504614791002672682133854400658677979158863339542386296371288632338453263154536059110038984739173248193638806490193806851963512417963541115709097186970300146577412462286817738597246209862060292294335545196247833331111302382944515159597823329844740122117283689687447670921764731253447830074024600590538264665356600620062653963627385698431169519069371919525244018038530588283270586247298051676928296738460020539234048861085042360379587340968945660145463251992720538809229278595029103159542999342165735399723066944407846878244587746147807944956518244665375793261282281121959324849432274593439035156790766778710470391470100327602741812132828482902393950447473977910584052544429256507947195825704378221283678159571532111263509195819180469323857791790672365245704872283053702449291836726715370156953255189469112157483743235043231735625124027581762288387767261652420305920168011921095143624890598292658358355457286643695042322605325206216935885530304335826873667717630133638315640603759818223733814188816874589384105566841125455667344074241401259601480257772384625626466806334444685838395315026876469184817500240637222708309523567099480159925738654440707688000686996848672353517196740829903778834653287270166470321762010307641820846759016257069950042409855161026714643341011421090095695108674888413757259293440827665898286336499382105787014284964973133765228890312281754675923633360458796666824422536015837327110236933481759976071746602305098631955923799280725379291867945656906017574766721313372197197001142639870878001138599951172180456776692798197483902228761496138521702927801363374052219506011134569137534439431767592724202467011092210579819823019274144823983985696751651169426869223700468484331208256053892582816849938934690005748410168099767360950825072105547566471238421064125128674032845830227701236050277220839810499264198654317680842036118443005026862775039952168873901628895867513290859185982379987451188229558168259299867951527022717013247694060974007992649313852709394972652137286061507029336999371587539845726530939763001597436124891211393196137913614164761632832880833357307602849862088941073868577958805332726255105830483776868928867460424642370141379128353666862647205570675225606740515965274158130957032896997554610995028802575349615673012095293369097681998002487935694184698372669258512018471634126864316576254192286067633387170731862210909978908497114463273596442404570660262087504732606640164059510633462604963293891593840144037468083491988270380519770001290937226515112113335319860530419449072102850099852640716891731113670765171232814059089326354261181637840755070927141269290639933181864998517473035596475008485612502037928233186539693093660349639538991001552682333267532916205698291913296362272547197398849090003486491780679457037029406016974981006128512043133636555311281459628718665769211612231681430450944714100375334820428544176809118191562075709897981238517602879771843134460388033379236348731734156487204138762508068962809137213997876157635628919371823282377434580386935534111763453990720974059490158855496380504840309275938534479881586249336413152225873809436219576606972301056722091775276252990931550567109553284677816545696837659619834735915074795622914131656373558259368990742411338881583431520120686631595738834780200336483545842983593714025902067683429070368705891149300326206533554987117970815612590141608835082366313905055863553231126824221898122880760404627876338091302193408517876588243347561851659546664433076206429018321082868533518505415197022912219696585946167084849027811306087155580901750079637523518143736804811819133700626400936627910256013614505605567025529074852696994780275256243163521516855656904074681365925303322039626994602248723485476981163819974295342220907132191488435857599116553236700156764060358133888634723781012444921846039958663790874036393390108748312557254618108423989975948429090217738465541489363312646945735004819360707457492394639670302000628282591017465786214378456402654833261349235986316149440341717769742628031613439401212130078885952629141094497610127364812401170162140550569077629923846851199368701057651793471882211658122844026881533573672700052317039832166678088750942287728688810768887405674859330183761179379987597519835830628552714105085459178391160801170374435587204690813307250538778203222675032223808294911633500385644082827539104496242305404306452326873708195039610365582286707505708932649967952862039299619904037279405491653128794365051613499062393844294201967312049304729642168438559107790923949654663871189254651030289653443403087727869732941868674864734250246256741836170065613250984734584060764002858218170274380253043470243260576378634875922421468508388900479380932892124389443998486627782009131849844043654600679253044437582137266542441041079758110224547820428846977814174004294303080568674874608289584511376850652871013418520224347202676295619178107281850435373546375982915300737997738215208654717469472108896555469303225758813228868991322626927588927145353896929233887787138289692210106304173412164792912027155028714050954249547797450681377880783783835417104751700561925340745894091054405678719632739261130642639623077131540484059133009159012455551979741085194254707511269593323192786906737490174458538652674735498862185748224206402979945465723379195714888673262167245739196262406886532432337726113109845141399650486735476115082523643134191022427116983405156509416333971110000178246933820440571712187164320903946934533082484504024759750665435627646116711079484760663715215476576566743649741631251329702019380565996056760266521683444874284522924216456704779030012747696925026047714554507999304842331315085161713467194073828080395160745969253633601365261832568779233620671361266039718434251141924679021568455169994761471264747440318449470099191398588482994736700101430063357617498516466983280442273665324907740588853528105003176356646357147959171561287399400625660326581955168494548929800310841781026910166761106064999697644535796614662150486853143652441306982276147753916631891408974140295930656454105227938287293370664205867213097648957201031340488833631690046292532510078098516418326672649466924116199172581031634133953697273341503695275880709452216132061779090394914611859421092905689593896133552840805996769447789241739987373249888612171707595766869242807478148276687048877135664499611896731596359773559666626510273402186005937502606914802990857671638535688744569913159658172695879972785333587683925296301582317260922928737984842417514741083147438360191994267168266539972043836362413294149232370802479274951337251110706143146843524019047010293895613190119099347059140508042888521791716461233079862883657518263208757527526533723972895191086998311764630893556807348446886435676767382605202550676242376639016106549416465304813469153730042951552155436547416542941372435876374048905837729004336957431137439732457959880834765563478010528560322070901313882040812775106618720773955457135204025995323349784947952945749324084741504817478652891656181947297106178772771210057528363451286354263458338793644651494117666193301067043879803974463730045017464372294961649153309253203559853827585575557625610749311776597799083714139368437291067029999052664594034677064505147719846131464056820275976153380653480968102035873524078187359177715135995751269243533047271515656518286975712141842661534636088197094717395809786043260864245121764586748560714951398368979056093423297876170763799638383260107053393453685178050385646111878195291391653596165418952553490893410392619366735373556923798662928985133399576887018304402866847554241407370019211333008989489447626815678601462178287271834360031317270712073276048589506290565847200867814710276301303944617594794892641105005885503554416381241010467188250117092779113392228800915977062518723987530399661339080116580740626626181628913512034358918540011137405725412847285114795830675880427743412320048226266900900657270853163794162829947243185718292977618142767325481289539394908371689767799030512873157169637342645766748948701556392936125577298280684802345005482315870580887399877775541932316325084176462304914315513531672420037563582994065253192811422524349352419598476434988851414523379686991395074220943227387421877223681762082822884660631668073216942919458819131549171894449565962696917809904161084687255670051122727700495147927143422296879424402581196830808631047800398063609963446380590186553261633539054481481109117227578044442077023345256793111760504176319826490852684382447302897853159291685289283655301913776210728086207051405242719667759027717688443012267401796957638365209742930967558299208824797343238256112149711633290286249804463449237537672199996290719419009077396762774703992675689159554406915752650435463725759002150577094858941119062294676944178686371250105265389233005749192430318412918237804636784667664291566293725079200000863367980566417454306770870851847499159830811932475206693174941405258303089041665219431032696963519232422842467192768326016645465577009692278754083409019234825972430171332250338776688618879259875515400496770836249981891178485916954079221386482267027945504214106962158571968620737186074756958344084606807640356428535471940105540284438806188206160832012371198682503439081710832378632941945709416887980276485898187382941845744836829274226640628065815921974713105454013664151018301160913015076939052687267585543842225961692222848312501449210170667331834925671895536794065879017667357844323553357620285736227489752682762160834494839688616876159849315270188327769089229259682917135447286608889630724525083746080057725151618168289147671535512234712572439446882957369371368117164854242043290742434208633631249896784422763022099735880552343476795434652687909239446691644011499964435465881085127149361564160711814168946578117992460893595034122331891929298495499772368734960281970013083667168642116560573121582365514662017500270532632817664446937614286086683085915695267598093938776133275019562366621970154727534184290461073972363418723389380736450965602870401009176789883074938686099877895484512110493290933200918236213204677246057240769836990843322390526217566385573603291053621312464920041835524860542501233488992051575892793392254954858474159668756895017059693726942665762757509048318873515868509045848533188255110460973692984046274163736177152071565870594427806755741585355610448943586263380597778986535801524577876618787606989834839051633975619238008296709661413306587730587983806625806019369410018551834549187410350765737748560064541919186422396746929795831661464741637936843834031361289329460273886285299880774648056945531711904432108676457794482755683112149247199970456475421694595086327500552023276545354377238822780537972688962876558445890948705178117141860776177656775826831146167116728143202093872251341975678793838691109982298272778779457045307708378400926487772602100680753601652693965759676306932872500045267101140072984956533478075174073399432504007003623847700909006197660630485139305604567214834642826882045428513901481478678187693625801651210281947870071680166708454171407011744200173459353003994789125770962034042911377458383568651494985868938162171162428435291327265375198683698564843689191789973215324733259914878035660510950083930092469117521628796233644071375460754645742120922913782225682223355195549844159795128168748348648860511795936242243584158117407077238204246205387289020307115512017164956893263032567803507908199816529925781238495808786594258574698230711503584690988076195395100708495904021098077226567689988656691005840591539640497184393771038579049117859491079608979136229687744895359877612303100408170610561790298223907118123381851633983307240228151431553641352686177138134568118554068758861964418326691482445721139186324193152493229339536294604205958754375102457571787690497605373196222810765484326892549154017329873426475757289981461729554642525954517208412232486794599827436303321702656049221993796171143592378161213268523245892838298204484557681077140403186051522533574400567996306796925570899681766571199970743229886296080869188278545029916875953860774735188313545805071187955365114836308984873671928384646445426770888972761818596993752530670167635554000525029337876042820341260933018694902115307762260796792297582829582283971646750262124552793153475240953585136684787301535619005309290880115727759414616668158900657552721126982165491831054588736048537888885421724421418049861281856732048163455316474772273076853390760805491289063895317126501265367244472183306687073299236144492688273208796204904853321058287293255647988616391757047106908518618693477367855085113570506690242591842469799470741027075916051029196711448170535933429889107320839618792965602433560253443782823624723115806608586762773991576063884957912541314095054258790603126707513169051677371918515763775094195070848220643197047667546093207378727863018544864384227314182835915018694621800688596046106835112018994138788310478172310437407350321256103763663824659149952216984272444215007131497265612283296291067540341707774739534512536764670322101926196550210207536433691682819497085327099185099332986609443673532205941973111828377811016033188727389726328566865445685066814417235154928227187838803553832709631980807185950463787185584688071597829848347699017538113192880149378431359122563244969626019120817104997884425983890442793190783306952940552881303283863397550579729610488977995347664872874867780203939230373544373593551581796257773271885088027751856458248688593906670831950703553014087709648317111884860360480841254277653976198574699930396304960920451841698745004232886815019953009486154324326724603199927093284147678546892532349101758703105740190132395118358134937617234786299945912669667574059863788488137232355521656090522667001056363145110880250029677802616656353064351691726418404759560749046666813650425117921879574980108909578419940421167566931820557364088106261501837249868756149128611558746820873217041996941148656922207966990401888651333511037764808568786664185481691655292766764769660774861304154350460649399455926018139090847194830330148829160874910455733734642172780812218414332130450572641041226330387991652814356713639772223169128130776068078619562233783841614808121825900841371853548099495663517318292033613602892063316059824167793483910464505462343810272411013864143220965973560704457219777211090741010090123932263458924247785732309859225038058920921851131001128154642105286169387812109192125460033137980263798282267128446024474496169890346912021272180947666406392673877894544321936530864272470621964359944948438083735804870762528759552265315151353561337595347898254204740240724788524107104399733250977424530539324856313376396075312605288971610615097717171257442382675392351728807715588492306649701568374522617619930830756922606460598395939908881324824279010876955852782984762853620170667658977307368381910790504419260161853801110556635492917805486877700705299112888394564857236350640645133798237327312050277542808424348887721904885074966466805840945043643164270776049114131899979116382041806029397267312726136686723843870459604765262892189835309667788867134564756444764013008029442930067429739511805012444300818576053199882485677971867632692917529465798012019098696198797616902258304422913764052672414343610823617898992948866025754661621263217197495858552642633260006656426668152451462050462257352781525351337688942317340850324431473951665886607444265165023619527609267433105568839646043789445691039947094690259399934058064805956057803333922356183454089250371046667295196776404423945876104895285973303367979954980720921823710591254654602519060532018689171871348987898055895543026207340620078949820947660566598421540726870733911122036857743019033752194734398292257940789759906216762480118704880377375200887141526640826057597187388803389093547131101671050902819123419894254613928489342124611439833995642885039465936505945538067343072675244415657734663349000300239327453083598450473051270404080338961369685334438679481502907582513161652683053643969538875073906921224129019466558359375339415321949657340434477286073346784899020095222343446270155384927565532227966823848202027981830767074134891483122293183779613257737907283684617517146943223298715300482997575378079767938044704100045423954393655857323102635778422979716174879188463948231167911717993672923229860744374017635351662213752894145658762832727584007557595930193542522395749693682978702759053829781433447248493319662695581059092912134009074304002326745219379448024536070221011003122217399943152007556022164915747307326794128663869131979904432680981063433928910441653534392355754632563050567926304776045240396071877529878597749439102585568031991131651286105438680942669214352879350600164259246721770652296418800019994207076623859083377911152181390820998862644339802772836487256902219132270046769869284298232710413751582780964838006220020387864299067683596078337994082732876266892805949268435475415853326345278518862925496615739356075440689618839835694913107813775220886017246734950482784288266738116636937062062884025200725989733821037553268285176062595372117604134799821237699566661379322092757740962569499982622360139014024390198916663840389060166381532158838896106001912572618167302893825236229694770495644693815087894563481485094403308289130684006513247694751730900157062070507791055960173164904138241450067535614522777142360535238070849537803453200951361765945480050880831407435001331624245964084632110229583943224536127915634652498976642807984374424000363533565623411776222224381323540124763453291230473144258703040271193212028323728493038142194911596834065804276754035702855258840157716967003324004517271106981668388394846925459364339163213401667126348595620723838376790705958970591178844022679179486071052004745232196361083359312375725697042284263333560644194917067769111100151486761555629776820966831445151758201392689889995919821830741680583988898719845006677165407408843001066929804951216059501650608882217332307092093822213217729004266416462804544463150519034676471817510433458063601040857110747785366201925134926458588435677535953847221638443815446090599249406312258077090001971500426420870858448856131147869283008168840937806334819537941647483964841342294108820840936218313640258311902759318288979470443642217054284506525005877931640846534393703965955994537356030445491223729475078099691349038578596972747851506105951775102985714034753688656270270150171205011849890662126382503323048021916055968368787176989067660719379711749663426640316831574764143205066426135952859073275145284027778682380405353543059318768364134639716800640627908698177870935938968736982158253091695380724210813436729654035112155480696091007854695876062005826591413560035406471530676914210692720554438249019610082601575135245206652309748274296151490931002074552669252136297669256899886873006283690377436719117481215631747608194856811127181546035537592864482341887587966529281076535802177604083805315983234442197766801653530976473821610576565772624584996247142714156827200298955344117483263349748167180139541256891266718473335313091678970452326036020173421109716790779249563013475944690865238363470690834890861176333427440444681119113065338177054305285438256210719026887501608855584224606929562870140363110419994399364341271331552301736674041974755943569455264448044885862502245431007438544348900423575485108420508058482850502139188767960507811008476147374169370772052925039622969226931945611348151132391336865777359564989802076836871588887489035168859599716233678212921803316583922288428851018938633732327551586826081109682119901469938762171586759963512056524195736818019727123046796850601600136253785939521803781763752909284358903363665772492359613945679857417429104059350193551383835647748103730787911732954115219762161864083159176330486210268787963373997739293788128655499440676887169394203182217385871836048375631229583127689683551205897940359697585561541946226986456702817378020131235320003401707017534239665004885744884614489210143746060321728034860993477780002126578707929797353035715523400516451531719627515070608536287852667352050016477791528752365867701809352206432072686053847227215209406560854708944186646417514658789248763788445360557998369627569120731506726148815345978311304541549100920323248291685435990847213412096606760690783904841070272351838721891171524931416430740775549184711328571492222566638910401336282591395434190159968927209005878900314860191777491969323821664774875016460813499921999748901067470327173078255456575990791034075773609355174546126500037322091202225886006376108901002896157476305706934865603891874871455196803661933308111412564420056488039261981205397233308351894484009262829560296905703386287922215083864192993932845156701277313956234729917521757806615198461131795118243650637540036566412737533656846863636380230184081910940066185377630131702403485815587588355078936982931276801105636043823293146920087464259610253918813217752697058401063043829342013533785635570548336468635642647227967044550809964868556494298676591116619685780416222467331736244229878209185542545547785410890446349316560559037151902600013974730075666777230408346054771835895495847481586173511681291505803606999558484771174293627625889108155071751678441897637034451440740684543916910794908364378505676138772631701725627769778020019420697445919545857540043696930920585308905635323013210827604550007798742524931387161731757189155259322008973586319703804192556836854911992414873601049232828281583364337440744448070824062020904083557869435899151015891392074920563174931417967384913298986237364359566507955292743036858824773986236163338342463904102703989442391222422821434840790275938194670504702206152973836929626111062477423169862262724378404081470283016336842468951160950924433487009562811559597101160177446055603364706578571624180577412852796823296978138657739501930766536032501297414525544714533029718636699841539124459469088540612947115695614212847702862753031612183908181911772990879761798776174508113540276959579621073091277461040114383470959558040804353846090505019717886730380725110078248366363427103227490732205038024937044344746237852947248436514015146665508170578535485391376116477294230885878302025337574056617846620058176277762328354672019068417718072539304636200018838447455169145788082045107432334227769147827994136989763562100032188302671424503751427006156457146721758911825369929994067016630083942057418741182661644365138877954519096303812989200557623746277572204624663675999763513903197080020908338400475837116905281209224768249336331863612429914672796229509867216570718884608403392951408519473407880497146236777452361884370775223466001047959413852115062520537728809226632966575600781410267927652196981249383254643386589769726084109771863664632086914242409776962407486650496820338782815613135687636363044950855905088758605052092468098678692677681405626480386331213149161509600941537855393805285601441101838574976640123790666245715031785657281865018137802984026476411104980658820318237638366426209981737139484490658984745281561677932424613614156197136454487295592809838428641749367962093618659144493939620893065989430606325481308562026400815160833295679409421747150472493912537502615801733474329483808157228894481122808305801199583556589499692098401924897022320696934174850743681445515267085747409717086595822389045201572789906435339089297289308589719409657820675371809476230270158447874912041377589478382310543695155477474573552423057540786147972227708859347732960953330317739027949251303358510647248788620098898112707921420032513052702155915199815099447655063829054091028738198570076223482650893775597523662529896881049479875097057251820408882099355711545047674339223492337544602960171407425252013671535247278656722178958902818342655207644703096595322063134988184618912984091016471979854026859438796413116669551636769960065774338598751903862517773074955086420675074001008970428441290679474009437223447070330246701543927945920357699749562315256024002582517229523647285553054802345997866183063162321013985189051227868115497220020373683189587116837686918244164287238306903928636999025853113856059092326058368168968378858376758377744185953391681576116811182663631775556737979852575015904356589007699701847943386335627867267129004726497349716528279766282302212285299567749296839563206347427747918885729124371826804803541912129063779972596623695800056037045455798520264716883820519732241389997761209005229657058602261159460694881076804624223165716230891869604789036740164021804929607833165675613597083804167496425877888579702495100454769741848467427002042058991631819711626457871203456097134082878877097129509260837263870660484458876690750628151428702904250832719099236956805183493823565894192684652716177977984222134605720386580484206962157760843842528662785920580533778093543438675674926830300666040411124912020588450062857517212559813399191113083626795781412695513640563511857788514902034179478039431986588273815654728832347916107597684712344492342271026581375507349368305034414025797868156098912477504275289440027696105271723960186311801100222053940166469476063955689230710309071113944538563649274491710165529340810912325591400021196655040033497605908252995583408554761442078751489282074492367100558162209549793533350536030481558798938659672141169567248671142948638853899674424745315079648136362082303685657263802541179921412007560083798446611533947347389366184279768922972872961207666804099642424600610193338338231539078937915367004510298171592951179811115102391004444187920197979077290005542697744332307876142551042275341609719300637545065158611854815659394689691014405750977787939076592858756425902072352166362594434989516346072900120570572456985882949762035963755126855781779590457845468333617596605003325623746550398206775835167556797683420233888824676542560094507877377747813554150925848122565679599302078443348897989991824541789613091643406546909957351125953260322263206755100925267577520187150837517242278128846133712280961634755893142951646410671735708758563372393415224424278487861022022416126950467413823272555130994759091781868628249762692174154329339837736749702712507775915906171885386885404922047834383200185994630024525390933340692943453042836276674505874078889913804850129500769941589094489977769529110172493025543843939860525634432029243222589190818045273181982528069400344476285259321034003570916716978461982797986191785297624584779720396412874253095676570124084851592322894047583315454541684283594256697143186824475276798429983834896999512510678051559059429666919204866770748441975297652427041085250579531055310603545475716504035155654941837630117143193582674692514145166862648064665863720852981311381733845477548931160779885694092760529753146871158549607280756460332739621718229045664364721017692536002542129710405891060957122035975089123748846636482932362061905160938946054392188305307406995598992247124590203292944266312164614103192714634247020744170273369583000298272061308939761647022439352214697697505531008157221348496209419888762850988948635082600286601820203739461466122502019637668893393123208917492002997474970944872640243411421172814607064402219439645536270678288257285984953561285457600694529089442295907882622084806170766101384723780567140255981681172238049731235948677675895265145964363346430632055445598310934865090432222864458859481062561395261510772034558501250141205342914439236939974004566602119150059350280390358601162812818417825322668957402200594170501101335709311427674071631526876444287908003479096054170395640415616512416971994846803261559338614778601741166262204851734543088152597839890657677164250200767912834803582879900256867463177628173502194297715271348558085425304514918226613357297480871161650950980409873038201816703674340283068388277848847833261391917532234620150041718316777171407398199609623918972320254143779764909550686641501776388649141687175453577853861878882962824752061572232055664446208810292960243841868751258490121489517166041678272782039432273522534386231245204493209286047949362349015290157897101139763600809617488508158255917215923195763642410180130668470149808996063093461316751575293933634817416803293294454865549979863411101958736182929856766540604853647798337891001354303320508924261452917561622416249809739708158900813875023610688362529410091792267885363418495441339591698924929844356914975268417694162601705791854842497511651306233048388491686019990951812627559469150902980670249855572483829954663860011042978383909749007413854796062803612969905608421935569237441306480649322138379940053381199595506395918983855515993225662229215544921674723619938545185479098190023764321901604477583142219366584466029656841633028194193710767637105048349896084535109445744291676195430274426406634870329784269928227053409411302198706560000012340018070953499836173239426375912157197009658179415914334974340865463681431788986245418318085587728599403537928837194628059473802465667045736838811579336126855212399650642529295687016866285340758455636833068144361435616062725526678712966179240954275733795844062906602621027993332210223444293107152202861452468635534053691344231728580573999368914412882805178940821314939105798475756866866184270282527945612572226594356767353855859477999200471661528706450111400251991614759681941690931805119440148960910048154684987686335561213398393901112018218980259118081857713345293696262091366997918887670767195817582504709461145959923913499719013366906096120183072050746607078202236057503895539531329102800388410093017903645634064754079049253568745693978371211736725170559014374343081949759573508464829062946698756822598888583216682317876137649567865459688819739746454266689846783555009820727250044857298320644678419961133480978885930411601501398214973414148349916536312639344882231262163012299372751313116878248553398665239402903938331873861684893073872522072691473848025719725303389499361998341779824764093827363465998848672211323285515249760699173898704470003174605525685002386248012698619409511261023644926418365203912526101894197024638468775499396682826001663018624100577484829452611556978676151010821795515442957605085613265686679432276558363166712907978553946076127872674494233648469292213001613570588334662006584879167807998419623012372906303875597097581491375777898164895966823887433009502707085713950091592343998445305153488364202896117412118301309117295738861754753511152275758272158313961264998828079016323656437662043709251332270827596404317226899896276843179254850111424326568538093144780615071906831922859038584290313582660094130735543758499435816064917322695914684436737858983935718715755047055843270668132672558248202203995079049033991003471689627953910734284869048644468387980904613878494168864706466372247259365050583998514005372450594718611213931002248288929500867677963062765529030195163653201473278780852248782348781503313227801545383081936222894552766841321777176323981539221288810037907229664651355665994258253406279425514074594651404114697475804156101401802625575046319409267204562598043355884714553069453088593413583715958810001760880429883676845611289267209326484968489049335422211952251358178887028984793708524630380284403236385115357625514593103492775808652579426352112689098936247830616262168436668052026936718739916504374019111830893395740794973737213596601465238470311904549788838088451897194600152672729314181360626527385967412582145417844482289424710483465828189676249746712560240198404693085621036939529372697979975291593102244424636320259150190563074347020809283152198112123132096648245105525288597531233765348592967243486068005047160175838172574112472043208082591428763827714665005093793249614996012329600477949627133757262768842726811354275293497420135630552973686512941434879131929810942237225381555378069869797617184151798497755188020570401322753747235090747573959423955200381822520848274335737248854360861789695750770990770337350835923577279287710967629578765219125678476618280243644283275636104285754066295254319756388213712458902320779987717065407526165620443542530300348163975539975506978115289170326973838287899418298577986694533043412056740791946163901336009919208353421320507039007866101903578838259787564573127184847822528364476215466777661631239446323112039935495239182814987025647101713839583372731391898255433715752893228080286613537171366522229531449564119156772010212908155793864458053828401066836650794476401396029934607844403697215323557341368314541341801434992460563720547780479340568233573999497207571964260373654173083297348102940330251163753031026155023134022903954242740800177052988415183833433965403547439237840458767070516165928182301084989724344095111993748968968848034021897453045475661342499714238936403167001285908182132589181010322793336831614018006469495932143974853347747990670011114054147239893829212967956833870180868206095012458376152899378503144163635561766417014821969615437377286601717380028820006216507906445625818000004035552992823712311079455494158461763815350630394128675929027909087338195110767947759391105923181589815427897126944106526625247905350520427775284545419758613726016660522775159151675796608035686663820721258360225836852027259871768337622539533422548079055283247989469561661693083859540053115890123715638096120290923849591408880334125391666442524102099785609416253956432886981620954593372650517751515966645327584902705027819311822624265044026484165050069987933122799116262143609136877371692402223758535614999235182029268908559752668923951501534967234606188491234148834986406496055849741502652548368861220177026612849199269865749988412147368931925623331830573972180461062214697397819602543461660528887474458329071309723447059814797034058018780887508653863522694947830131395628891891927161373378482417948050999704059859878601164206328953553437362311629512769432808550926257046412409922232229829885916792249467287333663280303282471113429629729884929576638921993234457467723515143956755124642097934063566364169971285450192109827560515348720330026960672152763337815184222591502418302008388442349166255296491084934077807326370928647141551371354082370320143703831957609787706629463939699015454304715967239290289762242655322035948684459412217520535400010284236031159705304316015134794308906510154246709142948527394764346257895546548789825254901028658628265047876532246318451933878876157473637497389990362567018755146549961164894512804239701952553705395990583376481913874687418875548732582700001959569424648825491866000856165434959905468832494799774070421497122042548143069137437004776898099564138205484621096036214462001388598662186445988706180897463439367037384672212722766262908516811829835755657441401493382978024566847260853570325843526629008090632709910134609680426186085001332924517906537811610361799990405036570886598605211690455790949185529922149763538652446465751154902622611595478079386652519931389782310360769661600980290766597306404609650736465116656484772089144852553321171054255604069401222869055019297888973550008690608636880220949868741144173829313565719592858458089924865111838584101504508149164441418200308506342179229913461313727784719694332077211932414665245415338256475759970221696795874143687771115930615898910364672271236240297244093772896825110063193362219122684290957736672837119666627619131797807555108984222903142172487569712986391921009286571876489527822936357913439741867508389308824012754461158782084260677513916825021034560486976099167456184716715928444007883722309152631891032374393325367222241678372040948958628317089075359581837508669207535025420465411135263610935620817622354914445225904863333240216215648026729406990607084225601343078729331504721850556886453122039281308706325423974523155285233739996811344463347045125298839666877663555018810213402094563119769182046515144253858223242015106388779330244428637473819907543567085084282470836544360350923594951475856703927099394228467834446486779756525629057367041060742651295184877903407228060344524122974247497791934796707802516686871654853092039352254941163523660488902440181294359126962871792841597379975276178519353495242023198066608687952074208273392302339286520734284626604346400568277542872497748557485097079634986509769089489895877351971659208277348489918559113129922232741209351222363121522095414150476518653525243715676139036508299366051303898982147273424362846695851869638519335288026660183701434202720785252901481580665633347450154032987830755243714059277513339663132746248326216291972219134041930975822598430870607447894242513753501648199479083985674887971679877680654496740967346837934800980618693188017104010315501780400139749545456819091650945806574150471141916970044563805822887269412841418331900966501024895631008161253800145216583519082090674273609525229763507798350139867472320999240480227698579655904370447480231317625441374820682164276944584437856764898133710491112705616430539020604546087482087031830026994951464272618070214819092178192185892984186903028092910111747048060284665153615550105255548434612829590458853851858604685057303554082666133258296024228563915071895605991908191780209229638985099418995438317039525105306056914641625876361913890200906494453218451224076230003538480841357561621472149242836212322767282264690616898245082230333259313454141295140689076712348543241470523159399265719185082492299599982007442396468548556494513066936799440089822952289926774985823111213751247005856349933539899622806667606709372237482355923095174892482255712575479963815395691586824806430064216822733597538823554968968405576278030612988364781239934165196807392150305879104966939747569484732765700784198546044220381405273057221647953372251787864063216278909284890936180617708954348473579338140994301565145711810641803985816045075888948590968607023102477317514727872760993107275112367074235188894963751315856958970836288273417483641182845057433307363503351337215902930280799055859104922698857544490319458174094739559857407033012756217636150773672309822734114967639906996633029662355101815919530340714421493096369946333379031916419855747358572668308635141258548603900345494317525218434331443561404825577015979893803029582630174820787501524817367088594727860721123547414197913422592106240219614993515761366587550120576030798447154288650350966241621670810267540401744845104472707376400068741711355367106480257576866118788908339751387454983496599101493031656401118190144641989649484412949111305609709909789707553344139961217164715044611950605927516937376741056290189175720527249655920597054577547475065743765980284999845850631979210670526609612045422076153342384235760500341895976672454509436144855535493220473291549020820076761341242997607940561418192501663086281522243649111001431544334044033570368211069003952209693321933751855400686491492992297184813670459785298587595122801303913524892913730260470072007776046932704628012692773153321508602825621370587512309974014049874619540183579910554976556893640185708750298766563864230969369670070255493943719212135985138352257553595323854031318552599842726850058040238685128370653562643367456469918405268067606409261400094947717803891409122012033497235624457839920479781831117089105029993641378378365005318170275270534225318133623193229643891935251808748892858496641116146023216835129665011948483610728710536461902746530474900740590136489674244135592367950548506051134361160800332053418060605646111527863635052207716675713687404307074385668491102664870390377320787905480524410734335616055837257539257898464115256385779906548150318600203933579850305660670943171017260953547124864289804393419248190829493421463962953152832565844383008164392879980229359129773996804447212077429486645868060283705669453257793838527267521182004070806613025137944545912836917644064599638256001474826719796955690564956813998131123147532620895964085981228752830919032537721189661288211067874048211928172907488196760826781372281952159479795088670141855039640785004413072873433857295525931727548680190356356891399809104291145796054661621593951119681063758327989436997156466110090490982452572976255040270195647517890138713593964371576058197849139736962611953084340587352697500168798426126570826822288736866769666135649883273310218543857808000817709112176263970899343690758696954819337470009769818505241292072772735381157331058527036182493254233189672851545807793235201466189211309393615242484453792162569795013721012352171997332837076448733532406757308386350109665465315924826440277942584509675901318145107689453553153363925597678361892474897805792684389104100693565654337997258162825840587393917355451920919787482410666751649414492304024766328846304634297247152738302648630371888581933454176122696536172404864888388539477382514097028546778934138934543025491610095049166820351884821348899270674262118403329539093920267398761547759429568716727021181629336340647557476668431315689176993159657442890302126001305420817077912704216384231749547296503814765309174982650804337072779023699697280868287636503615561088988020048267994706131760905799424591107874793458597990425612183408928378435924976744375072227675152468658795215405352409549836006192647272816633322166975532970120955416545361015643844081316387908958512323700966719500682716073304737109003860518486501514800796895616831147862065429770159881311963222438971601633930074172944333535924210513207420532058591332437238767312944082836351392532966381796653093782171651513847464080216353454266975407804603983317524260886894818035984603235597320500580492376373140162513493797654834098555415708630341136590084231881986148301981819522082953484310944998371670745697280373595338763415243450447159667309142088046692674687188162629044746085775590863161183252017864879954576106514659479566965999314295791603191767213638100933419411034989031269330479488669329438174756035930547420732639974702530107206118398965508252112144420137191857446514786095121041296386851026904677750348389224861030660384112270969273921557293817305574914893745866522533733531483352152926739718538761903260767182648976128088367675642345560418394406589060358326578435948692026706517708220522354798073982132715317253293378061006496627563366240303527446596086907746420939946289200659291343770846493701970138791482434058504945001862723399126699394755847861278848745339568506035073164818651706207025504378119316064228263102100894415302834396713669371527242559401385634437225443966295587902201702319933826173874654336347317261793847323323507929743228558435842377085624562215628071484577154253116566782605323017098346999748680965575522015893123950285263125557761109381796338051855748111400456453269030749107788676368696352297286326559269894113694067448650893913887828463311766670323580189990793931506644521424479552078864664738445329728584799706894652225331057658908713207121315797133970495717296503140684714686173586664362109435660988122246954001216485980172872440221051414334222793076207564103371934923645656222131972293133382323986934702363280640100911710480984684928469687516392540881276486284470744053057552774380937993820236977357135150951487632363086883218721103978870880251869684962660471977707370244978551668410312468900671245688232234310832334112563199611587870847945505409837326586412763399804875812113844791184495971668902475591120680743145292988163139283359650826097615786503858087438455587442141273191626471587457149384591512213652243878307626507996561037587757236484683825712394448045082955164730429402607734954468065611463981117916617112866720098324843324890537443958298246144890121342455533106626062270245822189962111259994610928676141939228817942602123685359975630709609384169067522253877177975998932505805744636291784351562496355289198180321996351798076543272107537019188959918282312599003752606990258903304958293156323308147038291090652371869427010038188452584572887278559697582748083965148265076104870326084865734016013696282622973354263857104223741254069965182795902411818289699701588392493651349058149570394641928498486427390580465695735513805132092400210722393550862476519922959238834605861171060485908423479595103020904910640873926343737797527049775662081638839555552291860575038416268215466035585729775003565281275207221116413409284750879013073711811673344195700637750460654242573877183758527424523970184677584860632761513185293220545039867785645884196280531619290362185840371223226328159946082130165503647871523221881453072916729120514736066406633653073043145334461339722521012415606647158478901363278460213230115560166732033663777644037321505173218888189341820364403811973511623775769921261647748897697439728583398802417559766128086961639372703839020793375497348329001839370559698806145186414460947753432414163654220933529414430755196738586978653076982543402816888617443563116947253571050763749646454137785234926921311995352151357436844798492654552711591692633421620297481347739454825293159782161837200627000588242659181512132730233532756425618868022167314341711575510465593496500747724513998901557522473410988294516010221708716921171161092734646591525994763275484968271641431698254578441584616838976792484664922810363702177607447106433915205849726699379446207783077206527222952879015082568769935233390221451569345726542681500099200808671074387798964484127557317142853358388860175498523880661809604318407844395511790202811773886552187797389566374059403775002908501088033226164616534541032591893583600587932935088803361942841957972520093652507921440168144595968678976704208906769826772146613284740955584280732455396455128850568568665084583181353960883437521935356261637888389605214418586151427216058112847918696116612404032464688929938877295866352335195542636614191197229858033621496355003972861824235307048446526895967135413919499980989747835389071859003009790915919865575195937057877632591084003851764430399671077897619310506615271253211488207164099987941239654914672402067154322518417949705421843379251654994175786712613845292231261198318418868028696497170062065002455112629281540563578828047755246821733095307946048632000302401922428750157305057586236465274370883890186357891996350393563739064748298682963021102494970276378029198364300187916848151867725125286373436552596499058107295262237558549523548046184215922043681330328543352707395038403245786283037225829657086597377246307647846323563239622407058982992785596243997107453452708797689703647175455261925083982790146571847091545235406923630035805437605951585617031178274278646716591966643128994477254866198365454884526721442835510458248780320304639593989885705645446123691067826685780663000840854356384221729480141238832777067263885485376202920736416234624317477456219800754705801536731247396820486061018797929631887792914197834459268580328071673961320226666120436732091394880146934232668770143845796753979763275457845255947326900763922167733175557754792488847945379292712206551425237502321900862083517021445847322582981898780299457149413396636055541842661206275937372913304571913991236265343515629692742892233985243453995393368034369030666334840169693483779862477530021891235390253312169041196885035635941805593507982051264538127286219490544962678872920209405049006737755486866936893069699960538122247204560312571224614154932432041023402621111603904119622919268299660649004299793032062324521924954587803329587881651034020438384693064682102752993805177972212653140394895233206392639675947400700968447916616783669757245170210626788001621236664488348767458220644744271086886345375903065320259103595934238384545801771082423180612972609427540489882018689291751997459604684911579161570607697849753242830346973198378230175376369682967801214767071891244208907574298596204587371997235016613057785054743392511618951749881105492506293748781147661636362778973292593727697448546501800666766877739724422110386604920796381387060372891174911915744537721705815282170759320621993840647398275088648754441984485047691563627196296085795337562293013059991896708083301506848724145986581593431751723156871183556567341894926518535012394526887874296854490453366947376019103785266231428222943883290544337912369490368482366230271014769927440557537153683418986884200957508665416837070235883703169734806760114476679850164879994784408076824728145261397966131835865754467187412052248538965745901669022232104354003277078619354245905784087244047024657737056972579703033817606513461335221741513433777961203167144102723810308585416680971699527755424247397027186568324194889497797730431933691097174662481422576882873177700859261472551727695660506154384142902440447404301246852491646000023490827309692494443114256364142428946716391657916799529259684850125327686204958687993559435785719412248158349783686110934822869201564665961320136799593280030553767775441420677127553519180749246704021001816918987224982607749758751882561301550795606747099352689590091419553719693101404225919919142512071215473862739307801427445132107883125693413455305367296795998000673924817795501680469506040205226445233705423831150603867429942597163193961245430808180324376497655891745150296292957075549145198640994758234157624952206804679252437296596360432643421809142992080921809112905348652522538248252469329240795012299534238643320116424379906722843727379864696445368554305771207883493260905596508864282449175353492013905427007807593438214137813792215004718317018501173412378780115463435524011286482602375726196855172044956330290302259811154162044863101579709599713593771448203332428140483114117541510201283702147482390988020605939546111280203265951516125431505965136252791686325765615605985591095645366300337130744153632989014307789599825580092099078527981124300786429470651425891667694439054473246818128864405227185953523646456619000426299137270735941667691249342626303985315061551415377282709655224351860775808063955971724548055706702177493063199928710225657336760239055674981668819027137415207363719810697576077092622917090161680647811183424141776899494108880089263480728430414403033713816444815886769894253030757958616424309716422739850396494447473059923441257254408337982665180647631936246213925708073322929595475454062039297583653947449931135827794103475860367249605488189234012943897734671000051126263018210227897589137244322496909885670482739524077864744510031403562270502087430731022667330349483456419794237886159329625262280981083033284755618111250626867574503235069405639870205156028105029320105497901121353054742688222275543257990622271866895918498068612498431158331734156767225470627457118307796423444111379351286032930822237328288983174212508609182211164392348879820655318577096796099701458252101945545210661754385702033374273436219722061568446457112633199511822107944127616924183379709799657372426456862449440727631742132360583876062848158524929490922419055422168174463993768937399921779433417570779102863278518730471201028565638770788716981946680729071251545292716341083772267504745566685726704041114968934404214349406398097043355412858012936170761174912650879269828114921634744207622871838399825963733619740123647073387560915033279862684274179282682732530606017442913475543232083302748712054078289485449437549665203730715426015687266990753844390214771633780386296977905034907114546663256851225561913234566881731165916659852800864778545674739118054393996429841214142504317507672256150622748477026951250601386620211265510889828082200453635943771813097632330969841052188456367531770226581845997123970767304547499354480527488015143954350846998014012991884693646898979748098774355083892814701065722772874862818648496789308536703834701806681836550223273401981069800320881319746127492527409518216302792771524716293778270315429418672937523813712456231079939349271954648712755683666669283606697687262672013605818080435827492086580931163349902647275186752539811902385294938609311837824253845250454231368303607420813062086742438751982147322875975577365986165025475478595504907960579516133867634418154253371631723360085461485387379826633788239835428390607648557193080686611155561937079247107783792453399264357084785453696795775265655829479145378948916545667515516749457760751295207408448387269516083137121353057133604124370831871450415407574516116591435289317298958387418853162823998242528162202255221065166944180621088772736160616604662422970139152047946624258666422976626030233076514940385041341488151643614964239669457568694412270546663689116422980200955950544725684704551160084614426344915161918959001654738562907406753905203349938513249150652769303920106357988091304622138713066987391581418967766384633473297036916495091827071020867769999134255941758562082812966224501729131199107752342089538554568697697451621410830966224584322611786152322469830216769294283725159758733563164143066185668309878644216565493367828473827264030513096111419679948576115244422808273482332271181049302954499834230020791986148471208607577844954872229550851398081443785928223810736619468751133828843323104917943683867394577758691083056295927609143208786488696327641779078265839406343230493520400167003615947187821027119416753767644111874909001795190672495970251737111925280226942428339814796964598714163454473883470549708987411721762471704401800827636740954922120867182192443991215123331566689622874277038058538141777871317337513232851874720097177228914200692704858067583939491735271445196775873154348274681440220891128793403022055719213064526093784905272482562931823729577185968835747911647587219613147382043973991901187804093056591112871639767653289877708945763125473493551997312086875399513561768446964917284683058322169124344391067872072247533034864459881969068025494437235131400068092000263357903123365061747377451053973316192183791006060277032742489238501815855105911847455079217600427848121095723960740474919138630498581646481956266496324865069977666445201952504269141975178394529934822421607466169198168514393419500001783519357093504512879701622424876089209178179115686110297214740976561078872401491594683034400953097497537877671905126554435100092697782812130461485654328587921470067168505435347263764563495688976167161427666308847679349105639136184019341199847685266379024787890718293324610043955930241138275571485365781816414801370399613388087590209544715014363613772227104553550251242054096784900220757861146173989990797011004349071781766738422297521060620898273335639731622783936104065501650723712688403106178787496389502597898864976462486733309469180583945495950323233288861415218977302226297709420748716096950319864800833246259784052087417795574091260374522132117454127112815546207615548780145044432475093784214023091377878104520586892192003322989597782952123401488078461523255840361975323529785029334774342792789042072227962073568573799593522410475288719133454733622772138145010516026406626036588385402335760987414551626228005776879667952406552201052445661449346210099421628435528163244252982421815205911550756709909575429298366933014778294669739899772415972806662117371266358169660022484048029773726773650233651527689623281410104713930944128268942210049687081020222503372690209856177551543455129560230658661515426697721920024060624589397483588309021280417955376993844706267034776914949022247464905569283926417964919343212593768413935042154681572470176308675370181657503600950113828525955579916421341024899895443893895257122804633695046607327922614024420718882531403458913372731333192857751115737573377962191983776099617100240884005919679002558750707660713584460875820734592325618720334774808011834121515506170940419472363421811924150541096382358490015750446051443833086473648119267948984374482910666258874397961146659710618341121299465819614993307568121539186441136335856349479826225390411476640629326804754059093987867518742405331990089385237804888214310849856240649491336579443797418069471589453169966578151439777120227365359752478788776147541704289170390425212874049803005168284467574330039285991318720155930621022584910759410921090284776020673364364406408128677244911545506544056858903724033307013659975951093935554444541291691389242402233424353565421497933041510250981149578925444879260123107943944531880075646155460295270600034004303581985936739272613383020094649547689175722640763151713608308721983476479569210575767824892008022509876959733646680655233900709137176943675323470543933173171353919506744625682580681166647441215401979054437232279174738604010924272505681789469570614151435176140025318859742806840314303236887817602991747494794350578467851630047595378954917954493728426105328102039349953689618854459510561354494464698671092326944866822580584332742671351323465206248417524500558384834319126908718146478078244393554520342629198646164425731758865287455173608046373671103915446184609313942715828398185038277521130406120566736132725642915226649142497242416059972292407658105852890444234579724256828799943020166113174054328101278794332097510482857053437966302733535570995521998836330187281796727613647412967919909466967419724444003139632553565895531658262808228426313218528013127022006013221804850095707626472516002032734094281737986537688486181624989651472799002735534326451201086185014144569888785810827467352009531089350208088260661707875501142657700741304828790801836649749853471129696580844424200507295907470416388195448432495319228234294667927256875284544417584193024041237666947542684345124105139938237796650647392720251577112987230222375600632352714800683558868792229298788046646052380274990519982890949768118913843270144012154355455675437898216060009847229387611067999969048711609144863654749427439111726648180706430550967222146436703041547669483105897361573780510908959799464760043006351498690100626670947438492499925820987248886818311715742962184839848124837126239173416755969990634225136883319043024017610145092906298640579026327326694183201822665482812612960923476514525331513939591645383199064954366876440588827590084713000179041241032876250156669783621479350063122078473872148952115514990998000457359736188200004548617261934906846913825963962686382346194838225145119357016037117710472180282165576800148940806772198204326746905339718568454458658133830470063015468119418164988399008081064542712260171867110749715545199240158533473517407288730286359982291542294623058689232747607555838872491490893526973408038412016206247560247509409460810596082300390948736770578017661387625808827004360285555244541707328988790560121872141824835027949183705473936746784912388576628558221154419243443490148377638127912226094485979818522715456090987071841220173412803977052310243932716058849133957316458783815956335999067582120408278476140382402129751527007343673760958398787643687424874834946377774326767288467839156242640536199653017394201416238974316447468758363451911684807878789925370608813884664396214017101981559020285480791436933242546826326868756119363078354568871614300401870960702951778251604287898087524413135338933186765936536474459387343718725014297059760513936571418309656875888171617826436730988305895898137227565903894196909340726035706463510080181113010886532084795639547823226472297538337209138544994595470969932819153538235909155861258055998782584881933917450178165445922579372821381322846879228488150846703774691513660103379943626653860284385885863212811301140355228879325503865312005492906018032953642981824115418383163479864473526178442602616085231486253189108315645652302642521017391757259564273133126623475475334353114689175932883629144939686773132878221912471851451548454454937862626844556180845359512647492129656395168633576485568886042273073649919569576744957391499133620188328130006989276754204304898326838997320723328579395101006367936435400582860244767681434553259677789520076904805308645107513249695841702277009048557909142192515180920294092010529840288499525741650890902864757410851951021190416034939442406989139740247660418804971257514280440116110466858688690686270022661441342878282876003886242300097537317199579265783792982401367684853183706319973510001026386279069433553372698204542295226961833828675005555899450235168271735740371537976913315442591586044973808515408766193546913278510513565536565889293931048560462592832471789466254806141406331984998301026603969638059860259100065009598675999947882286269017317934318774478070176197187147892862080273406343035826156327082569500302373079892884566028505127080293006372099434431745671832963533129133481175957863190452947494703620883605717931709352825211957196872140245161519900238424762698758782484677353572713682966291637092050931405566867674783953881161396125229264887657468116206375681931221063414125457200113955379761254071116635222664696311278539641955260814548717675583596617082078223470426299072671118005243086204062088689152504323435007254310849051432687219223941709852356776464201781746074490550504308143389994013314049482507291866341942908851222734473010282585385128310459038098252161424336293482093661573113224605810117875010359852980211482837900326321746518341940280213278145879263262413309522267153642037599450668896458974451874903179979634461660449299745258826978850448978524018181011327824439788366950562476789588023078650607548580142036114400669271373797091696004358995150506401006969815630609049221522325065050108358394913115189354367258781587686593163098995488920799895170883398644635312025172532251419435455124538079714679819121700581320851513278320446614421946284755025345710629196075690480942438466510783573988085041915984208978491118661480297056664149237997007285441659563363508184169332994703950052727313029259180324378958472535924451816602510219298045788746812723908952813601832374226521299269488354336773747256578106525531433749255998770854454028041084229324260247670267514003520657646836489378193168549184176448309414390444624769564958165353394850444689558138662102398036126731157996148004456782261436648576443786783393816443223558401294545223740374026535548671859856582826249322290127118791734739748495671253846032916825562175376181572274376242622682275475342162446563302770512080692919470873326392486874413960098593039572808887465656356743999750508492665299959686912536214609615583779902352491242999888635417154096783772968030397032010162407945604395395845452668581794790969095911352074702687733756380416522707629570142896192371561908825535414708810899533947382974958423841385793501440772817488138574983948976392296572843127478058905453278020488240363409992173695838205131074571112735338084981421245598265486885804594460266389688035369694832693024083243848943692221395416699000376585683275401325081717819816099023293995072427654073353056126249976035958836699942837584127578828573903950458020054857843095689398974688718090644935922316769708158563905368043950733978420326954028807174236521121709686550793954027172254618620959073151920254598739725435358216958460796249980355750654830021487446868247086748120905352853191025180055387521502971757348093131379695564485344982662344575662560232548649967289095002375771176227134384438781995925512111257863271834130134249432008216120209929396654983982967144817926409291349952472083313676434161957611605270355113750394825288026615935592059236456849816017653193183917821837423072769662803477063926499347148255317003485754955146993650224375061553466405084635732281398619287791666351082647981028474450799964036779620522725178395881953218470997769748932780309988345848591737469041292263555613710604978203000741442414140702853221868136873261879991015479314003493879732542497614093490080098175507629910543360850230782319737392027335153835073811045463610772376639910215746857709678469739741767501494632500257451499549962795667058604755579364573594745113125287234388340542887625981112463278257941817079328639089124787978181398839223492336174461524981429602583164119121035279819431194485469908585881913940113378710386348730687916739662307905984532112648792125841832068289799378331099842181217218028939372341936998389130894179119240887098726815490274174806348089015576514668818931909405096622642802644099210088882367409280804773483323562189910004726881388808316837699092144951097712039685607739212137686770316604737268083114778724567292703122869110393899023247910537148047521207767595559726788286652495452158105619208770292250558303487444652221542537481400227857431230962021991040453040476360618482322432696438543870703538400580083474779249875995077709404692586273880915641764464688630934299428776969253405268193459751440695521544877271285319893044485849333691546890226760435516787479120058853470793653555279043893881043350214993620218399889575817015364571461102031961133069808473698169088784600429145657278962829102429514734241771784779017351457253352047582528117537715739882255082105617742389590652449541434432226987245784521454362789003385284368748973589657079296035703316447880132776761824062561984418462054662100663369099757573510457050320019208599210170235765939950102022662012983201913986375623353595523302183801495921568867652965980977413960002777987397063700501396884740449088225861278665309182399127487519021734018886846500054212801676471357941433121724526630993640621343992916221142874536811005370190443485278473070991594984134757677520060897993256739662573594281872367001416696857708148665787927208203289728323399127681513489252808626438978834578420786433945501969267929412448968103904095493577336570671111499183433467032970544003111080210045241059385803141742907631481450868677350714993959503570561346383790511350507046559671437655096446366552454164555671098023685228437074782818812625299927053426469331012013686390155209988083831764952835268879266115326424015397131691893334774050012148984089225868934510678584144999219916320026610143721745820646667904378098843562194199392088162317336624052441899002457743109950310028490677345714196818347817184960134906191904336033250534029728096584617518748066825486836582095723261976746132865131646559281375329802869158157830346130533618926106649305863195468137155806597541579663917317800778537669700600616303785028564591150548324251907724075209275489277276862159493174958983616643077530615373883347252206809641553349745501566459010647605226081618202546291112641628829660712305187465670388380517486800667146332623451313105548082829602056846712058349562492356492210687455068066016046129475662536567447571932408639661002999557818499596299130484999199633250363260140213884391909245253634072164670059406335586627452007907994756403061840873610839636672549802639048565618701950538981891135987788763072825697011347561866096879214098251349774157223084961304292078802726474148319801223311857117828158011187884058279173454297391641135521827001910815000784601332814187375398012414189529818430117197618695042652322293020697066457883272477986792484600523764889486933253352293593785778725296934419342443002892391181901934333921281974863788807064173244670764732118854164768092313279237027491786698534999722173640387679619265125876293278738262898419368718985041963974601740552248322623480586959953301716529801703466065141916730894098199871168148744642081125304483658538937212552341681039839816281657515371219273928871157234174875213192675409979508652306863452751077994850060502752811256619497866620087829586951136497960590976364453806892758569833595014399127540742347880254861285860628536466498283853970773187800995972447997189955818381287962956093504080832058225261737983442941621983041952748930139073834583082820882615169431973159379108978875784123569934739914705493950203765646215938745777817796209404151345525743319565970634796620262109747738843405512455655391833431503236198128509645164206755412944686750937192104320688239328449409965593888492873562054372894376599174453639303990699489788829923018842558321905569667775734276692948470072552587412316026944913132414396923530788427949505583802065726466930232934853596705835193390571183290405596802198351409862606189298808915828773406343276761756375911569300557302260437779149692973433189292742393731001279884731167800145432823806332711668288456053457254151375626793235839237413519333036572276393656853006386872239870514410724754956027383453356965914748907259572152708522565818495922797125499772278446279747226939082094591072514999561010376628195635597693132989565030730416040182907249978335271915658661747766309470324390095418530640656852099196342065593695650834141033980715375198117101370430417473089704292573181197518667243747313648505476494367059302463635049283456951891829197873074600272294180142665693140049961413001202456568528322154490733524490308252742589191563502547824929259839488072342771111263316973857778522091550333334692018372059713223352362918895948348687637204339412762910776093178098875932573720784221240500843672283326465230093589926843284428341747791413981139399489280490206600670918896579410864266337569277478087034844114485891372012532440383807410235127499410909470355760906704548161655418996438791726653147000919690005502780133850838646069806803159812662221575449772738514978765218666219936778471552819392785552471134963999258755377436433490335557113172589267932950463795821859542878580335844570051933013520599853917643518622770214139756818717701125622946654132766311690772365329974204267888111917794164799137693521831169041258980784752774578910377285338798178987451667688672377440323361267630635514987144341464870214502638055618185483189377725405326288296035443893593400574333335776788349158141881313091353133158424419939887469827531430916189271037643580615406536824493845120209855436780878944425864088741124058882019744165352866120395193926830725371249149317045407454495713948687262137108841300207451903571756845887669103395263662250089774698154484370970726760377421908492566246649842048638478707179278043131011111651558063923612878463189353667322823974366639465938192521021535333956953595879135406920889397919819601140490053124723362550792908738060196349402304720230661039425155119629918210080482352737225918624847392302331125692473029762275729625301740385501576440294655046966792487709519376271270681106993065900689750180367905442414565884258343114934022282087363517501451112859759482746166074887971492762758920919335732307057643159038919361701318733931924688240677433034595385302132165198835505626890022792514724448757942852039421606144061262309867463531160202875363339459675813445683229228222007026365794420832092052727207679071467034210886242158119885136622905378533710677077688057128714098551541758001064751532013374388878475747779083593581756074894817631029898079213354871440418266170194568945304783259283743482096260914690468575340922961303213147861115579463317230548634284300066535483240446428455703287356158226853628720376413217691124042465299051487733747379454020430342479451377747438180537491325266150088784224887656405965658317759191689605369829315865492866429842017713356107119739733633016351965796058076061413276281533246088199442543799294649781380624926028598330092842412700227191869466289955211283042833226823564319898221136999496798921725324492189811567834509236396197753963442294733861714498474359114766217189549606093158564553769237039663591545486669850519109178269760569009796265028810805442112789313451459116959232328050484847134266511417221620606351643253591484514896284699906522024725598281164627929810498915097915687151427692036545288965108816883371070325951766429529628458826966852190712009276233190343005426863642121106858884368851766771650199028993896475562452528811371022495984954354141168431109387086561138502506193619706970832380302911262859571108136813506104928630040962221982024609697278751955614860681383562130828567431547427087564770722451183163433329992036576496447653741793455138757296570807325313301913296396917837514607619264546475576329400569838280892314869761009063969011057502207493483030368496310868466089299004328874059335591790177680228556690161320192771632121027793956697256722257635228041994584854460410311478429484528234856121097097515919363860323495093499873434888130883617145946734768544333240573155944796560354163648126799797186638924976727137613959169279095747801081901974833331115928963328347263933055796898994411909146290818145064332093530704916402396411143994951173973906398591200762229855605078098368446058938999781709444896579362949091803476310172908146146399237562273764537290238269703956333047439274910249182878921788818823536084499053002650435575042701714081385959817874173383135557708243688420710963958150072378668561411166523494057596159328028635975885945289830312652668076592284782360949977311404458231605684906326490116987876771473082197240761658424193607737768820491205472296182550199624299930577565382254896775610492479578671501890400774748091426290331267483548467290863517658118721424728017230078202855298446274609606342239884680966994088519762586079349066361523922798293230903515681658085993838580401051966162002629216352776538683722524689965940064294901665374182046536446481346279890878062707018530586128883316207890061683847551028783458247681930137194775227112194705253668166250435013553346451176031705017127366793486254212238154616938693682293073792008501502474735336184628344805737946725677476253936596422725735365862020011803884065678051026082839990454728713840049395032052609428482857961270420820552511478262304596378824545626013334052787532590820314857887633245785831497401213453523267953022041066153060940319357339256598366598296468875026053234008544519571689145380507541112969642739512795828948923648868701176975524437334711292302236586347280114248472638752610308550166454208881466878091622762806214558220183895098335500204164392512261837947421968873578699688641947292666435137663424981420781320176679722773502801548347980781406063689778168453220836924486162928821790659938573607751707667489139527462769128598017804035813397375653896550063039073377234741273824263500025531621652464932882628288608649583144910072626367987216722455786858783592449614720575925496643272579817671862445563053138973222117923456929179911625103001963201795328757331687068202140668297306498934702533321070849289441431364311737515400640289633770906651814494717599094896242708735430073472599768884964318547909152780073797024359231651061457675727990312870668918292477788529731145607170030521617924296658940032571325787754170802415578881563306855578729526710505721284897695082174259791393354724615493658802517873335241519050598124347660711828993072490205034238481348259803450057527146547573344592317660089416992662574714007946308637973504965081901595649728368388975490508279441187136108755682725255929775001860921512962222663087552981077130900047010883626910558514483651574724598518167240893189036063693285083702489631716780686771192972485534896883020446995074699623164897642788283524375475496463667629505354892974214802571750261596835565036971527390014948247191033976963371461398848848990780996582450540964326419969574388080792019904051222343372202731405320608529823383822916043184036771620616215059863338669632172141578085698581900050229906802855456156531715960849549341088459642211702789662338234236304634976141332772727487937571444371651611655342767467175067482526366325691328099238562512502487760965161382370088519350455774412298887201168332736398215725454331220178644271767876022930839629289877390480347254345415320590335970143319842093751671851774366981773516524682397522512318265375908791756054991505276583200367001355501214393818463410871446839357145471253231579963230127935549471968492067173168605505621906141180224007393282882665437686603777013034022031269525473511865904549961931632893750458063160370604460405676138198555897272209143194711024128220393773752390654514049843796069613361995484037817427589494431987721146177480905052805026688719483758723012766980377721147037418804115694565659843600827529130533735232266325357334868583559336105504933516433404836610128998099140558302298419593455168689270787541597653738166451088761723625850205505545278901274827318254748144786673369318484187861887704194392997885605880409546395494793069775830756000219476694082607605619833855969329410522018084084542456425868244654731140184622286213785787471183638434110918653103845435881314073474904869709671594097227442687170119724157243195027005206293788998180639776550225388839979437385354201731405912553889843629293004479236396206365978570385169641342413109924047111337547900084680525493194511212985654561269461150624711555369403987716337986546036070529196016990107996057886133484267295159995309575530132502578117005118813400968352654856597621278211042036473663214627964420579060720523120286034981235750764595223817859410505002783332504060359653618055305671510148403091074897288531731400964756626617474074535564141980171913210110868104101695320150666636549721997859097650749981958118404307873252752764366650241312378440544295448674499980989206615993489397176798497315569268752010427855707131660925131346571382081032650115782482120756198042946114843385762103945086196492736831217703595478475395517445215844764565412565996278056944331771636886071598326501859009650513190976649423820027767115056949954695083729885013041246229404420518972017142946156239017470897743049675542514666584406874287753064319321582787885091325982231200670494913881210782198669629531353628651045687114070142484130776015213365733054274155595590332585915056521748256690586644948943225762988746426882447082076716122712184973409399732519513999425423446825754189903001246543890728672632165035919253011927350660584523895576800944448241630333162421104116588568243916353081491925105797708757337075607400938296312632050888788137683241850746127799493533969561331152657396171100829490467665321764733928580180703350566290415229851678351637468034456113062687751408344971916823002735929550374787860972389446585363287052633114233780031233037507947483955399041853417928232321949854342338011240308857354758168324028675912626747343256224402808857378817761675357439496870630288726014958256976817678140844501853260566160741511009852138128699380726156875049062068620879679672487267520663083251887109471932952207318856118842718487180806126019764021490408075824654249193425793102299705560804342566117112679815367313577261617857279679262639322742498888553987653821160525634987941540820428529292497296478518400476306246042465095225904990160353535829438818788088464353960655918786044443326508376359358192046026520541619935014310111312464199381357534925338221821715987425205452739393920294648532876634784137014893730918347180634069823683374468461019980988272696027571468909084035597066759122465789511413872950874539245019031899121138972277575775392952083026186195255943717889555504585571898911285290028711221702437089303685308294084472587390470109644222248979228719054867669695444076421423716282708279898898454135863059209116366249808894279578443723188755165159663473191920536595568598443992192922812114077600735421654256597005678310435148025328220991590870495146621089501918655223155262388408984195703652765993037601728901500968745011362880319158799311329569352521081883761902035726274134293319672286375892185404051965839220057046660207051386152225716391352366910338217642623365418420998625831619373818357117982430119486461856199381403143674110923947024683532430649019190774607976520674535334429811121014047261791161860501535601169056299286846112455872581480806562460075906182213094807658317559755765584208507707345995492769090091388264711608084703319306044262622300718689974692410321665991918834221684031541344561297539615890435788300675421011671263277619628764511743701533139472914724700997253979919516911340318731340293457201971834524623342125561805581851403939025385927539752807023710389599388726550494948553463098914059991031323334229705350089025022033276024024485192886851753733094935520289170193387449796818420876558508226922688332978200827640750001413231689552620227230231513155068233273764214348363353188311855810473117191389634206221781895488600794454145442338436630789309370955754387349564866265682032542153572782100121718889311907023712439222781982322058161286458802003193631594227446491997273803663366977739368191259084906070778503988972864632025493410897721206962626245435509404878330703597338450171673398975201000239618077822707098019829531143087935630444690080741171770006335030068966758495892791013731248470514315741374748989505565076209194003034167938388018491304254350233927580250708050511780384896248388890951230720717823280099270257979223502803739745804861675242361449607426599703283392832973610197133954886199195261656936319209162232876604695695105618028110903515961939340660682525834255521024892275973797422506310820674797262657141994319968572864136785152838503990620003831346484386267172788026134569333421255680325272508286046325501014252427271742496907421122621616650131349044920372166369172270133832357721729366636555752134209216414638955286654991236218566920941559197703194710867881228718353513762404977725871521448693158708344872203388252440290102598700197004525541751612434631159041351233591116332159090171930422941124168619220975277790881968689291327218554976552001144762727633811381312501200726429494077601789019970659516997203392636618883613810776719807592185974616459750289175665959585876426197770702961929885579117224061674485487571429875202936196330833403645523844673246293388267794535318989450502288012063842721775518777623469670124775694216698129420282927104669378846300182102640964490960672461139690582238629651214026526203374583808560164177339772204192599403543339013118056034828224894162189900208052670433014477567161349983276648449441428854980387319844231051854447429140922750632654177414947060029993949637722417444766529143948610264147239380300274274121892816420937576190673342099937902535324195443769122510047542760976804111035403019334367817061729513001898338416967518339104251964164313258518387707820633396376167704525317574358479260483386709315422633596915825804107632344748272666398347391823742211117798388565200587658171092993425980674744025562662041854303065718861493951017517468251489956650411078681584223468042695232982832996617353414616342004805834371676973031503749362768177979431922040873793358016525203652476387717357041558437087930185924761209371155924488162431090349352854514348376435691821479650732932866024327537185599961716730530375464141398131429928982775973244255086439198960184970047177076969988478753604058346795196412032457813363828021290301580480479908247538616051565629877432270931153000756008782043616306881476105381877763719679270275092548023378264385578662582381216777664331395859078709563769715689345234558008516169754640551872342036132315662183320924799412956144927103851610906050980359949009950636977522679544483245413427299721340850342535054439683604782511098646893920843538502409649593433204621321948739865409704303474553674461092270754795428541045075046655106075420459407418826008689530218605763372875922274688440744282445479797813180276052822753833576970802372454430883980869286131894609850959258291904322472824649790183424047851548136381519030223375839305398128583526857495829230533861019534288291918380234555551449597504052894453980928165380869464063597630857083315107967988206405595681730300408967886050593996416744848056246060215031278253034115026690876963041657666113122249421106084407559367084863765111837355304251047750834756970271468940742147719596091659410036240343752616986841299457813904523230236606558846940306105240522765309169377296290417821567893455747593263610353124791924721291240727899817608086390695694732584202988642403687560641329582696306071711862817053148306063933541884723527781362440617980831434792894294986486197821522628781944049354937723359992388379141925393758756863683770977521553247754454775364457126159873852049041713916332687555194784094411525319177134537404328979189305617294149135499445704931741893209356731807938385164148733057593460774940596839334394941875677168330877733475151074591184929135967270256852140728113408634748000484352876755595158910382479123965628877324560035933463890137348980755707416302395764819896006109560384231251846384992744463136959879775688462342657186983905662895725915547590087091718975775530239535904364887522683269010487213213920287999806423573201307551768627722477148010754787732454445273904276183638133910147683415375851227647901761589026073922241582619662663472224960589843386246482077074219037370683088779818633175135035321846879339968435081215997835498716710496490142062673720469242392548325243811740801414628958649379541694391796353452377922624438184263410877441565311179479419138603802879454222015723448577699306583988718392160597784199802859264036192867856898066487138886388681382401395638919067236673613311781409875674904580086379271689524558280014600034837469712903155956413741587174917135101484755706964592668751025592700510627029073370153479672956014090773920864622511271301361750486074697663632867282346712837355589280842370556007730287733286147301357237596515478307154915928156798753942580227081457751226067225221574491136759611904051362264630447390145647892999566959108625812751883457480030617022524157919957881595811842231153420563326080391121418925298608663537012767959104584124111285715395318736570034311415186645796100668073337020218207696651700138482677821478093822993681330733911706300091854654346363674948563015360644360121499299009803679808920627288433248413634097937322908171215285057839306783774564846573958936269501914829383525706569056574914568101239745806907438462465673008450821630527882843726697891613791200202631104485635253138125773434372224320627837605934445285709525262743636832091486824690896675001358212300072802865217927032808056051186894572275061153813524145773945505254527863769740905567617782045914828450563519633438388400798890897790644127446405841201725245593340857234046338422822037643548484896090294252936130226504673614114490459640761846065847013712824271124311471900269592670632143486546167409649568785377196006713250059714636161922602893043554081720319774198786850703981504094668913284730913808400316369306467490770543138972378035234130363813992774654978691781395839919644927187507304165452946016928139163222242346971936378116237158346731433394360137580469451073844639536853946595262912601018419279950360459026944797876944873897263364737642062121676278093388066993918034079452629110374501468233656963222902481096186875370357955106799821195255604045262747913777515272935774883334039883359161528475957508692210870009764176277300203542540499776501842822576292731286165072589830639834467802357232606263371638366315587927294637807006465421586591211586787217630828507169861507013364331210709835220511917155114975811257254786834477478998177334697392710812758733604348382712280482508858310286449818664702608976190347487069217568345838202954794710249378243026595004187356707352951694658942587557803915160794174745766476190588770130822510130455997424370164922161732543904370026848113776484716190106555776415531958409989607779149463446011458679680757714376885221901921123495479813819828223372136934841838025727741642209425400023583463014074893792599511953166009476420802063809092723260692396763404611915161070342687396106374758172244696890976944281569289227671681660185942858083523776777931520903377589656971704470578895082791316302043301880217235723957701078967424576990958164018602111010353216578650787695727390071462145044488594745384015142130070108897021766414746344314544975651331544494208756577104482694984624735017666991720799406711857626556292872669873826083552774135777951575947020185640061082515958511018116806777099600173174601636797006805920911993585579749049781280078069029977936519832061920516375581804462557930869387787423217741270467580142559498169376251715441233633443692450268452611369149848142401382301243307457609900377856903769602079325104870151301173842194434069398768598683123300019820449714282691912482366072346578325136365257203686630486475869065955532514888138887873341689648459700873088760034262732025001708634626600383539283396859581236845370150960492340712573688417664914443727044617475404359261301242413105412512317424425459639732798270823207951134249441665941135381336660447151894978469153065995496955401212197103943906064411421622047535563520918846613752523556879487536734473741335506983576649580583147554350061670381404575943990953140140458291565427815364691077432975658955190481960614545959247614646194274143026066590881630771845426428364853772916301186198530883484799129074226021651801755388913209098673493517199419623186448925313345087167043812129996256967152787613607581601325769681202281043674304476519372049137283618176482558007924324293411126646056884069081889913290444059217771076108422559737706203363515673675666110545342164030377330480259480819829091053151340098507137673661293341006069750195931405645669917388321333764248065732111908639459507247022669360929439178691025943968831367783288636187015469342582579021368217351992697857432433561119067063823507152070226757619344717755388362854106370339812257237835581979580190621821306163019408591433924328156033256280864572502551915652105117803097444900896197963752637326900616820550258005084630435199006479409179223843817025316070698397017645976804974911526162181614322922312145258481368006156428887202965852248321399905200083576034755968646393135516615237876502157009388309941444091522261573253537969924431453826809467591412699914144054453039306088563537463865187005687925171618110152320308436085819347643427865140888584698164414838234353071512652058198103520315903579801917439216531658593133326160450546621962127506169423980195563628624440115852183198906690278983321813027902024473869012054691680961500280628344675922903065575074280771888105794074329038780549522293416232724444048502875953621697407790889659720441542416051557637223387984476199154544927751195236961330902312310744485202070777720346032484306892354916235364205877280680117955012960823533208737132957274479148941838698416186903793729231291870153989348004052880316595500940795138850086485945820840623138729392462960205177169631447011267258152473404917692642298227472706783755576198610811351017631396319241627001102888634576102208691923514569250723137567652911123352913067008220996393622170514356251304222756978869810693813910968876869544747623810463979128594886620949359823424045556394869426474131658475418014753425331665325945453323826444767713704454846083932629228279693824062519298404112836096994069259129028368978410795039723344594318421186651045868463042282924370563494881348496799076280560871133114043204792091288219020118340099036375810376280621521537220256851654000225552464811414496709306471717456265440386535860834226039296791568215079931429397878585104157807760534201960123600486239721263112742041566710012683124459672785835373352689181638990740434269197661170865868071838816431857998503231592510372714874292616678176598233824635785664463592705559400222370569814580982261041404678313578543621445814528698099800101479151698714952639680782878261285550066271804488086731272975822774734087438994821398306814532660051380972774225304306828873940351505440310126558381054081294384617558169140464161403786959610075298049830402723883938783452887666276915477652894117989030778344174404752661663415852384508842560674282294206511662817813645241205275864441830655380679338589695112985453151317335290528554208651297193970124546407740406521594094020340944615331953365825183714258344610547477130167678009123571660918696955160006279813999556523925530764359795861250389593705076403384128763757756335839649607817786927370376315640486483651982298678881278957496610310220341650306321055688472493931640370858198149883598108192726233252929138229335647586751841964512988312941450520835241299070771549077909056113032098833488022253894137385214402320286513985763541973914747203716986421846189937766144929992918570280086495394783493753803840013164313773290035114086221182621786211524337043707297453667901388826767009356775440878538436663337378257160511994454108463376198860740370007819325114496519914250251837484885597729960638746856920706808924094705558253473487891337035987256221007812594815996677036813502846410978142459329906642883732042007830396556543779042645318148745424471300186041164683094056570549026660220923182113234508800957022865402318908350014967322678757910970772487311663924975477414588660593557132364262929616300385841260168053562713728937511913557061319217123920384865171212843463500133920424829069733707128596357963634405626127743055255548412816955625483430078434786446223096326622061753382604324720848447781240373660677627944489261830289455191643861153492000276767449307010218304632977516132002020548202367795057646258827500312302777494159719590825282026509959271285750233585375595218983980122152693525873022341144005070625102777084651065666688599584732681713417869660369116459048283138608741717922393724832808092720123538737400357507495538760720094355101049589521211880749627853864352887598590313639869723591181604090817538523277140504064516656326640404720738237114754533885204111091043281519826165844820024319038931461633376546981520366565513640787896634199747506819300935282422115818820273397289530489440712991390400399036271493654056854676311363709615561157065397165303620657047239744860860469825445953656847524801818466408174490884304268253223734249498162109562353868458082462532695963490157233896390197879965230446484582270516189568471433407320412348728354284222372530825028420164186580547294602716929357406732315868313982828325850170833892857209093798027514640244158718279614231588467480031749290194448699002350258315029116196094339868220755059078331984587900750598688099253670886120190398321926876651584512357388944114758677104706905827517836876096301817344265365568497180371118678793842453135681843248631208377286580313761500285533909585513134767449713619381942789706085149442940788096373784612382961845150396317589163663785569045462371000869670818276474876343565979371624418778991409431607258412520209289295395253100783850611241409162600075580326125840691654898409244276055145077041314714636552809016863407475963903043091142612557620139146748622586802922579087313484595644338058853192824952868033234486611654957115533540448745022013067465618499889184749837680778948617634366921228108220645651337675756020502837678040022535064973786311401240890269562437928681069701308774187741150588252863689014031265773180370715554248503528763709312751361655462946291606891217545229331428339489231657065586736020118937251382995947219823077524333716446939652297630167680376041564934435369212559037017996028962492616409137177396486928773763424266234302742887307498403246312393209598335698892014804426875616900458227596785617108289406384540713256598910503816579443334428223357083434640013566265619316100918141516246618276014518726196711492962638100021001586426627812445787324293320325166238900042235075421303970829028944418735263628377789962456213175241262134872040861632552408219303594733001979224867574988865737141885956340000342762072076525929875790702822426434556585424482295757590702987098841257421954042995995382080955215196958108273476821917102842316199941096721347374398393205802067765429253725202518706963646078908637514705612006492293831464249746553773018236174222651381754145808214878980982642302747248781753645470487978639447391412704309949262400048977711998430392042884446552382246809980578381974609552310560597441692730440840863544705521281304584078149010379244456149112649082427479177827288676366453245828834053929158705479177103566729817345479267756055749455912213331109506556322526315409342448841789781528756531978188373200450815470170166510539855614235923485470695083907280298821429956624222515189158675189891832607859358077928657113661453464391195231366136158109076355876192651727519584585090755220554244330569381856608214543042538926547162468137248482404128180491645000540047431582568655080119938441518387715523914695805509756944865193950906003618090268326228545296875782435212986820979002915292362812684112356642006528656428905229422941609318925926343158063546888244481713514928762939414776908084635495229979063850348302263302428467854792126180843794748643004589995679034075007703650437399649051356760776071906329574865768140867102642340776527705616932873423861509357761387335083592635407262085961633960992095088395992041426807464737065920385886743546081002924132553793639090296000227703990443080720630480567682923879943356903884908462355710749459654544463811295404230909595599447954740684015280918847036115996066528076569522384982130661868864900436595664594209433971063081689881132165345351639570448095530943490621048363247610644096898720448903670822604946768693674983143373836088926545759913972815719621128491114867377163567481055460855694980853847584035949660242022013371130492468083429019929572647716495212501459079638707858594358420200008368464275387538506414081973442065453069444499486605890762700187421725496808118368223700404185099654045245595649092759374341934598643134108803363849204832978462731772549969531269589820387237020495086032492594786843234288814600185166186135269677411922940390653521626336515566362938941115718940562977916143133266271419885140411130727453401516442886679840890121029854786099717952649882678783405300254726145724352560009117330706160341126995460102219397153861136080079425951890712428539030092578529283610428209763249983963584697103961745543471591108695346948227507237635387789231956506880669231077227573379819528464201861876505608199863954554446898267311527924675508132121141098798648915738918329591203621694483061192533947505516246266665415199250198026472463516792528426550315276185045565947980665261838708700271542490155092259635068319521324124852994434883029846194294689771675833819839967904474547382464004675319781537469349811850042456940389926174280295512868691402717176612998936653498753344609478684673505283122463021755524144106029000742772887684962070348608163765422616232585600125407963886280646512553510263332486585947863893085850139363258220809932750382299103495890281535592052821685056129694063635055953699152970735390090102425723157289298306742092390886016669925415337854428391852709122700407740500989520282826199752692283586034575124176444043518082566554673030711539806473231830189319884151070870213277588501584529291029081453074669146170330309734642083628958151952145086278968196990205369285805144140124389918048327476852519674646989284330964994340311001796768682089496499144218512019117834907956655485554594975513692335933756476257531248167626908485581808207266925169388529387126769696693305152944541482231873816911871048574673569829416503622980294049675443927092097374233956979236666651873549521998613373215205841444462598059983760246872378047730668595667184338764785769324379529851736002260828753801452191893245486429694536506951593683480065595414106542616568696926701247295555184955332419382373161410520276652647552198978469909190296860172074625344468055617307811300229024399657071389666134806379620069390004024434246074213527908017286379548559599801969106750322529709688657068938478848542732705419156922014761528308931288337613673028036263438362752492136490121056450295258790333894580756620004001368374409001849435187842797667735594045279034128676458220573384005643648770296338993621920082434506816887095432754134346875741760156996918901969061555828413805350170331533638753018861905010690394397056071793904498128358698416694368618980613181045517025306836763973818457384876901021759378707523999891768127412381957450510201760117395047808768314865987958652992383693818608425460685577044169420645695704629966647675577648294150715784080404035801813259103018286460669873223769503915040241723433995721311459616815292192660727127677774188528668948046324264756391553802045704955700859961841652137917845529710421570390127651841199800929633280381438702388744630332468226052260311162256941095552881871812315192932331042912262754074142578115318981864341560264673050038341680445740444261057235513650489285494715861239200863654254712648164773008161891856373280631025448352885287445761353117575591681120263008938910411958472146321794855293315306256635219169121924890509632808254462380637514813385921174338443145965258454551189358360798444189000554509985811998176052285936520883406375237806882932957641934152537627223895009638698082396179381555788299037751267972367370173740092781663263024127106171935142518720841751580717801332854383840683508300813518323696126289964956559674869832745868891997636364584514495040316047434633602564997538213401616518055392177891461919328946711629546139113031275253612683986459838388628545403108076003725133754466012486634528646401534816126062892724415124360551377788553778747071101273552756293288386185242878829269106829970708010502537194912484802996197427623922206657559584291284473242481816653567179930220326675386751141554379867164621471333528003028543974309509010417405119779885509195273196795515162977234189673216348902248826456256482148659890882043014304494648258249229329123619805037132034946494733694653283589081426750169034388611679014694788956286084569596658831812341342682934027934624426877181780817536173666587543966167077780520419472063485169192610447911895595179183160750837962109554987704288588230640643582407877469034223955128331910018319495951983691499553761180818559645996118135098119576243151274514504425920269747374985228138322455874751843060088444033496725744931009343976038086625472202952610991681375229389268686640265676571466690390917524096955998492559602955397204688314386964949909269349928721349388670716427517373935591037624586645965527787657346358216317183121779406104932198827474906201773523476637201105475105653293439230371815299115032277221105325219030420326570441574668404836589735617425629660497657982216255026064769993833259286232033698661382836991832704273034541403504950143066381455161964844928989108890167204384947384140990907842025742446064845209570097342574559059913342827423073197432213102736585006186703381493770289170560129280203915741596246987235529861718760751105792876872345765915039676071889767843837748846881354159136332203165888269563082187345920669351526705740968724685110832733799517072645587990963893601442630830015288903830436969014351014055370964189683526577811773236285828912980111041431040732951117196969513331487070071742274055444315215066693186072271630069464266813711400111770712361660807732107064648343035500033998771795952137589913182603503828871660069052316122236785534188104020286090907604068810909131641423957063315259786337203228633619358406184190329724303750236708456504529931491177368179399415983986576024355576485644949615947846509109064527281778656397943209671248084915211204546961583646298399042162546105512008072010525837077585490544163250087952952412702455915315481646315482050303656260887162423482887737579164820828708731448954650561756296504859725824484114382034885506208993373207596274404680002736239912497467010674529260777866833589429917267298531161112138319103145256892657449955264375704663313973495002109499961995087167772973041867159358869991496629135378249693975380836945434777467873593188399697159337478783622167497820056012031064461693494387940409793337807980566006629826358304661322242120553492523140833908546657502953311716730150857900232049735292059190680192197136312594798848799750315590606209028104077764112909159178342226506268255880577984802130598910811070436289379707817334711575083595537605348063029871976943712882346236214964596779841713470854696759379645553278039030008604936201711806169813934616672634094938182092651995252061919948970322112177737798568290565226548724573795048677394854333956367545096290552203628784956345482152492527428836978177788100219553192275805039158900989587906999324701836162592195882848779898020226214662993819403344871830237322048877775376840312469873361882565761746219255251444703052556049185282345320679274445421934559158057176555902087707706376240492401784611291604521992716085647602294013585510951810515758869790803708612971038553340706333341307518404514543701524247569640484610161995140104267366232626433559812598559642901208314464540759526982420152182577415511738397864036466859239172653615946755564622716183223531573883219677275917646011671477070313057966431337024544502992100930273766320683720771491528387640536616785971172152786200979386854218157669074621120825961220100062999687188629959034882270444029337193179051685692584208487585746008936342477657552290663661521731875650048923722253591366728288094136788725781196640469917283950303511465625296238390986847594417951655150124908189142810127090014728384844080754278458136805920511997563130897345564143494502396856983527514327406829288555457344443910892804717334602006597543557415814161838874323631192521519350800233994822995222959124122673431740539751738653347902720901470086846735302824446556632380086794995690785779957082768016112158836631144606122608592776958609064417528290205752075802906363353417780323944264922832195065710788015792724812094276192190659593868445197607751372526766974814883553047588532155028523716815296229690688061629525217472709458859598039136092866036552219770242816007289408924442685617921538026972199791898988457000460423701003751866974699695071178012541987703990254822260988544621326797271190363882705634267179938679402670759717855227339095846863454541940863779816980625695490260736789196232054049194982160514539935307942321171782516134959314060886942557681402994396617863999602647808075598762011616786144199742724630421594474103480586763376602206706229057267020125470885885743859794036609144384702759675024794788392976097656548260874168236716152934492255803904068486263558069339940553846620862841918383223421261528575621546075123066910632402854045538950408089897945571035627778952785572048068636977413568710446140820504615824958655202668072852135845762043046411643259937756251987422555432208328124589894000675396245323863018838394153833049883809665809023440419654098993330495590505159639281338846603560311464661707697591400227563209611644048845307305432448363166299502472084422078179295706005615244757249682755293439143345412517874196836550464840580346562170276644374871441425944210940057977713132725564084776545170311091176202839197136996535869657423571903781784424430409612711963080882822316527245462737222104377414357512339396770084712847320359072682998432622447152005042297799198395034817415126137930974823780610601758317133489262006222329689030881498282058837958724335788321675550056540107472164965498789550351105384155960596296768214509756819909979922361831629035537293190601765440122795501721361898645523081968757821763561002066220558927698766960254888961398054772830880115493828095332900926478322230560476298005768527321454644967810534520017407464914943952416852125285075448427147402496507855078376437248387435388159851917962259692146265975429461824997981137933726660200462176753217302688875495507876855309599997138810394585875451507845638786848461981509069777409352332858654291990143946912398176292112371904493216201254914991125198772872799899729720441126256120721245428162868238422887510527693277321593719669228470782843778803386494888719761421792484891429305367071884900103295983827926470192878685007092687757005155867486337771321839045552025595352174024444134099769682034659511498152078111740249343038567625250642881084585240043011135486687307713124756705372672616175058179862194334355806399856477676490359547578608011128390112514773279614936588455327743610348961669013931736213050305749972142788669829562247752157226666703724242980985491293007224548954004917716623725559307004227632227767539374638815420087387505937251117714981165140462079884991753933855141005491890845424374166037415736374975125742088311927493628815505173976612280375405623889653108693922433437249918072602588902231711236518833704485405812772828180327981890379767549295108054053150787739318998396580174492622581699129621429733257415358423232158013852836556151599163525800039105146921210790416793280564945999982482932671098492948949764943260138560567857416562291324176268466552173716679536195194341719596009171691581010895024409998177694119868831493569847606235192443181374481134812995741726216270981805136712949878254561721786468885457992717193468546548510610383028571355738095065367434496891779942837824583266100287910060141350399469644576323131812713296543431582305482418442654254582802317708877231887496238597665859001606498565882836184264959451155947635927049892274623040864642803943702999910291850344776383319945306726515384812168145768910529139200071629214247169371669232683620650923244799836397990923094052574103434712129744783337712299053215161572895362098679136377181032198666844809648111318941162433080589576013859829069204202468441673133798009005776546363328824762397490080758948085507261404871389513565318037316936029258860293090661445229171212086232314052855509017366946363189494625396827822051325015887235400838862243359280231373608352199635492016922170352071382182271908677793410055970288914496392087535146384612646057647032350162461572820645399354587979420889060097287438400102751594968283090680309679555201625932416808665107482148918941654101508768574733841526885065824481459362874968056867960362728259824522973183686633211220508063234730470010910290165504938340513707595655881790635793529957343905436903836710944529363767151441628366949212984295102062428354928207071777422543048650210536924762771880303387511763285702993162402244865812478881185724525596635405840382875009075097958139740470222934859800695229991584584432978368541668564834812917219323635554202841126923471122698439026812697838587931385600495151901068322792312596896814547055999277089040451981341679556152353277761652399027842384970827660040602910250409643664906773629945063141123321312879489399740761952473875872547839573287954581897111473536899539065078485160165999447023921111257156944994306760913055369612794552139929891593027358777574311450063529906167268092067604946521884204723912626872052246012872022350720581360504084958888136816928293011372199214104828633532044649484496653655257979638712602586732541697978083695394046134625135213612289445962718696714172241269192546739836561009001056115133940308056148988376406031714698828638520991846317369835087569461596815662705740906833147505111762075275870855546380173384423135287542978842313903707463473824347904195201777033579689593157918263624504962655417593128759405513180119159716384779925623697741949564164618840373254241792290456455774367086120031778884073628018884779351372174858376524529588941145363779058744467675079812081395237553715408979011501064753453387596925965064913367910103282350133612824460332118207778734153229569771593085958027098593479378445642548318156407996025329964001364435123773773349664500559932141343144403744598521122381026499218272928838746356565648092060471642008020869724946222425557826194859871419697032316867221260392054324743219930453437842822782757094075131076280783073309710236232938870740139422891808889076198536835783146171696261641593643062819370180968997390322298931792684747273241643724188574666034065031639246697418296054406769341094428992169645018290215420980707525879616864089254843336896022448845593289338101984967598907674155380547560438095965708811710075350737492374593459218111607702969236247451202182074380701117750007427524128966910016167673940825413616892074544686899812329504672659587000835380571984148060868752570379053293278789927349232747246514899200954445713159938046523780366708073122575359313793896863580108910892759788481425941442539131675020754292721488826120328419730658645617791587596529664163027426414884833687800081390929483213851556839142617976909101719929130801660731173387530037324285569182988001156712604764076456210958653230750465975243529473722748127973884543718772602379824133542205238019227809283787123077098547470550183205672243891705527196948351310490721423396955397251779199732360661753482956616144059312367933676810746684946754805039058873701347767498312141857932612026579922559471852231091871297990672400675762672822628181765966531480675343993003316900621426854703684915138376228949939532000136997170901768804121575952856843275399415020923899804472700644302584875991749068070395776538535938740324520362373848517851379801475171199212768910670216251608636203284155886987700314587513575250743909382555887441169027574568226215596754393303454291151166568867879675084637996345377210688984752170861639875674263671589242669852882224171814463734993605397454912862908395764392731002351934227503188521395420909633673593516337043444718344508096488443701924943424470884074691242318763697989490829950207514316580120469352710226754314139907447932362184506934430541710584412633999136591041822931494039467714353897159125977310707834712295653741750395565636792299231495195203284451758815817603893808249808265469431956365950470764713376818454459871972815324892048436484936223095137046170888180429593214401697485232604800138220916567355457314761524594971830593340066269362717621308080081788170498884341530631002442500691130969200108709777938030173946381097150878040187246697639773728333163486507906706445361595453657350575391371068718661428276090675124994095714334570959788111773559178456691551525278345110254317503744718426026248971910842176555057018632012627900077429871825069549409766420449510888528363345660593021477008147267578409756858936949854227017684247381783422878285141924707155246849917994748996167583035824053790835905449087831826984254875810345297133336759821631414817368166249291887178010794815556090379697485544943448306321728969235968194638686973025806367107729897739797447329508518672710880635952472048041036272011763441582798699838902510226520639953850406186872315411567584932802558002315764091275882710523245124670587167655223064147889553478187319343364861169210560202848751000756386086981827098122756768675293577946661633910663704348334738763479190017557717484448312068263354317345071518978256538242989688325272332156020814907930139188997596405002018562594006568649276570324169819217025422880963508900821672620479430398459513938983907826168741629434514539595565637143424228026038798690751729874528260472095847973157049487923686936065113740372818039205021493712228331260310016232698501140212857072973035496091388818504452429748686906779405897900715827847509865607924663943916552085289411001199736989774239046227513337761386902731897721280662188108800121210982261293200514846222211571389039728531673715324981525508239776010559374636868933969998367363932898038731639429314213963257963491320947994628546361893035506569869781960780507716255828950990800260047930461549553993002582360574558486604895643550705335221928051492683943779041217485021723424149635690484777971260121232666215515047903643956105067775557930333314834019300990711727081894679223500445798285742507766857746277464418875832775113070236707336206988823531657555212594558617349712883038163848379581006210766425992151763730976593512626083852822048916510422289377004915616634966502189897892116130696661617194529831191695135317400397705741673459928316376786498104945316229560021703230590682070460021784837936568050371754698833072868459816581198269510903335718703701435764475389109206427653987212824603938253096925930793329346650195621830057734515232920021592033457399749494535098955780992295735825368308957744550016744313906430543015485542783137433395891758992973365548197503767452907533241217070769050393662837366580294831356939160086179183394902399804300773909354992750098435905495434668860696238877963184911310788841481185249689146785138256086459881038075695929762713732590473142346238724006603195732605646975834252675512501587887551300266598395481113855256450030996132517079323569787164982491674409360765901443105417282401046526612451244988159819467318748531784186286767055005019305883683540840010312554072273003105678231343941336644151361668974334153966166804734716654543619624993321669092980974418976967908630394097448354481936087071734471230185386681270882240007527473494366649573162875794233550195952582265708252079607518826746320657311802350605609656253677626955894976111526126621609482299613721078906713788365691908936144887233477608494267748867144272210105354911109830902588028796953027639229980918148403087506615830635532530746331941342585692243301218519196152859781052250279917672881345440662151048069774729483053635242236379291730939525443877042600376569748077483863530266474196058002820873119293553770043884420593514642806865350477706171295543932817006231284120135629111436868999994108908149837712160332130375703615618668340150140386826502979468832763004537313196576438107652985937118688560617519245872391617264759521789133959951249305756090799910264198695777279898271271813245891128974794318209792931632385133204298930651248613842383698827106166868270347004418757477721672757102510920280520038375740416064682757675391030961129877585192324068186838266499711219442683938556102528741001300638606691081775374561228385372805800346676738116961527854790079946004857819067543741502894427393580929118772964005519539627641011583524443920404480647019881868414952361130874405053800400470246404565333330197762940068801356864781628431568522222655291941350156635288566562182276991496577080257125912837250244128516590548181956741207410429549978284737696222089456469383907745616053341708299427013829056157529318191846892634219548882875321743448908644663359111150042527374226310368566176836921847317213279524781739789009603905804993341051296376589867428050375754124559358654492515006705320843614614602004604665076236796015733898800984507363938409629497871981773603461782652894682055236929165426729715051728465290201750275943986861192176349532673372467532525995882721824597851423509882800959959243923732336073592586029063133582192624303348168674645629231431834968871759664260515345881971335989790536552939974312349044255469207138127316660230198735675827421770163358871181922868160380815410916389690475300563838926774315718587569311423341730055802244098233936687230947057342554291799933001558495293847647148711072292410450768810135686443457361737542938872980582383123438887545743611639563637984642615616998251137496358309180411129518909965052319131435587040284257054266608666271622933732585035872814549653290343958262557548972346082793496831234481990697657667225783344841138239967584042251510556518368309653025605948948689906512376322336992163226504933567047808237664919614666659018715382318419293731812768363113233203922530557655354056325131926198600221233382377644564447030308539130427961916948125877763616227476548220119359336565395315572808247184251122648413382617582267914954254854152439637809083664282279338059919059963074927553852535564889642180631293767300514268755220032768908194940958442151786179486847341016346721493386341266573993362475324587352494784067615516127359673487097444384849959106104529480261988854166047675724782623630552923569341410758646729591353236921546983626861307521442036189508847449953597763620637894099754565388115109231497160653078892580739360091426922245824395441115045639695874430573904774411990524865306986447444974449132608280669226328881633006424987915217023231489244303989016085829735425193890754892023016185155941930650543377589878427184125983279649011751068502637587994959252620798011258449698028833340865949293727377181456732661162479737407133680008810517716021224851787508754221845005135873171480236259198291467835932793053437812901665723449340649757160976386959064924464585529387586317539313384196028592288202244002298429056422104520163589580158794449951974423396761491026467716857088772156267742990499927540556411318930100520025123253164216437726497414886545232483875748800757440348954023528732356391536686868590094538220999130910815355766794300245431042440872580012672685841383596674766106265742738198286852833494931951279007866356083975186582858503788585087745063081304215392988631403925261229365225810859470722813853565407740645226428791242021318433506974801493369816170663427764152995013123431846159308986407812597358065700080194537245024737755900012830003465452977814992022935261057228159764123301545819349776585432587727361555838272259747649858818550500800898796953854483804783585700883144368982742284849223980254267126617104009282631511791236307528417234276484448699817653687786349541938153591483274347601819606512697239086446403901291165193837397494205317191099469751058029559436938578250133556902507253995539845501717139166270293241698969705677318278502634583707253264592125672204935432759740556071587230967981929688623275880863419940341869687496989360038264948465094452548749902968759425933356919324473357022239098250233894937158750147031459834283989527572597397009610760363998081514030311619350106773355356859619063830074149136634484286241857197552331298867050258444273594423743451046368899830302880599771058485631239624756438196617894137917912602357018507622801924419781460961204296551424529753499746477225649712576796157660032598463673743668384687534830249129570698021447124285404731494998237519811389515801583820642457302149183957671479124112474870175207000384792365487752329530083197502087885716010127771603323706973144413081821943614062042415586348465100427816031809401483453166991806465316543024679810259657457984323509841052297358480913563907764130485292511546659860897972886146309812569236618288440982694155905189477107811188570900162122066545064366564169586421517997384591929526785733887517430639250270916137854434301320333741440282339861682574251657940195133578394765711367390804498705756611761870937399752862063843696440775244576265683695738961587100896832803281657181516434973466545908202310140931335847449548474947591799038715875174052831422323466690032454983868609750076535926944062852200882432644638265349965946282931570019383131486775280696712151775985276662694725851239893777891287765926753476951031037278287470259309536107744814606797621897290281057466997131343170710820680476884714318143352103462966915888007594922402403326668622569866913718172386350657640475078012306274157354985576750425488603961751018002500675141777728112603045654218121204379373200067070944507654778638649641623037846878419949144916613909180628944764112194023153112423372481792706880716414756831997686128154005936411843180978125084590340160799710552968021743320070118546142727965761784473009053688430160571091902855806896290729700480018368352816650369643836310149396499600451232721211964545210995195524209151295551859036672794984191636904602866799574722082729119846094755115903258827461784651940141467224242126017057304338748015344013214848228207298574356483446097738149358431862896811803471802930443277156899671944746405720546474741591105152090281855030834973503222453890024614822145259086912410342223288552685667795665603462319317012133468614935228331923766641699443809389157302771776763325340542644039879882359757862035534179482369016088466638797694428911673447595149025421771325975782030777771445545888620458879229719745824668757222989135166445325359369531784997605079165214973568817213607462665045819221846092857617621196019576201719640911261998527286541408364981239949810400545771398258717096709591745260282535830472825950705120293907240192336518064261619420230784149216908025506554368304159032785158736385326881945109016448167338833054967680402763828658407190086930855561518116872024019380365507157500579946002582136580471787169248255846365393906261187951465236558390803496274211845294590385100798968486356775391917644190777620892915498222266355888361718406737547497842889532544022512304046083145107942447528971961017900010746143601651362616731871989363491923552527146453428319877707177923212874846243887942866138807392110510353281103211367153905552030055958960075375295092236809009674844855581911074096546624134530110576722168285277719582139327863569024339144240358926478978480788784461668487041829888869608906743554834510265964983869997401787256057907663030957921207629649725759084754095444079874174820811848501640244537118301298165629452579272333264090214257201368128491287854303019174834679325908889924797957310597127772958941035524302850369141483276633036950644025066593118365371665482771531940371698116774807515357482950789611428132416641663603470360097915843134886517592325973367486627121330359957060592639884629447811699560599286914584416204152045677566710346215999468624610465215877034423927505490160300604389182193891217055863994679469274924692502160214414431008448465132409500321573729922443328933411306505846417778599012114463472057006146279370809481505964130642634976096580570259867531043363595977206834188250048439636222469829026594875527747221630444291079835046221179334521459903239961719590000451385454558842462715456522784000620331259682442070899060153942681381465620388343462541812141089712058934630795093581351545536201791699023952125125004511350280656460178869150641243842161964266408167714099166110370299329247262063248165935949776883345766247752701550218141618141387114741900782647925159340196151677445373711360188201825584727034562472636348304718117481995651989937507517807977010222198255337138727117815875551443139107709833927543110884527800949273263473494459166650934625068661931048513068962983025525591973100588660907188622754996720253660500305096719826463569171074382208367766222557273947002745891918024022393761658900249106574718157453499186407137545736361580897553505383476431535580893384694663838436351603226559699477129144701808151227697782268061783424432359112175924143819062969122206079325528363159020667364298111942011898171817967187162334917122813079330231025973661148029270476908907557168005663591880153956161979901786226180553444911338970329963178238959849390562962244343791040946466367855632628688807294999492102619534395559346333626284825023321878464974015085917666300059837394013359207058263774803660196821297414085407707786137019483783684401851949887735196127440659272006528991668431108133695264067659448878855609561648392123036593536640405124707505506865112144638297591185883198193181416404830127706132933048340976813835408758630974049254638458278153968332694201966943332758504526077047627649230219775645545504795833410396575573677618876844741615539938131520299212457158079803351066473548224174730198852188514103173508093951267075218626941774327140418785218568012659224385314509329912287300669277189046217790064161461459752101225637993035705582723102521110297153638520097981543623131829457389601334029577161316526574128509829594560390568339201546979392437301670502728530110602913347717120553674070678934444061883808951616292974897647369898023676204068332185555944390307800697731563223369772685950592765932726676070719848847288935506851629513293788084779212951916700283966630059848993505908933152671055263868035640008391104668020352968450014900638232088632322818168775156093834054251273117209999791353312126421875533696840108158103000781494963957074773698203626144264630043972939319336576730613604662708417040693705715511272809350332022574102460590283187351302306113694478623906267922125801884606485950006490878918257247221759482140827932045514549298377667695207498593883132155290547368207413737163822192355384324968466168912961819198226117817290834110969272856335050590103214497700900174987305642971989625033501479939683310294754039369278737405264632376884406230939333535670281942045351211133401786333932652980720938273502080478140051557998640326757641175162923353133000244702378089295411100279221832628608802597975842918587641569032952780764601033814421564266404039332204167097025404769153937888427632152741389014280536661512498801797568844351841606888001670147587615648767685710877452768966386955796511863609814106818710559867219033807824612703547241960827164752228523591949115071663833914763510345055688701816590166918787397111227669676075587950425404892959482862970043190250926740475527718256136004387601659857982816286154485157222365189426519012081622198757857052629101083343056339047513035028302646438590342642946598434201788737677178869558939029232269608770298148033951725462891571573300140259411603594121720276074514070969354452416117097618713388209247236502755737145007726269427348041735133321818432896727696672395236678860625902015175064167046358994586867666837552329842434041217508657731046484677053811121916703601427556658894372512559888663864279246564442938057861945353625743910947170898719610978456892863347803416044103132939072762695527575198981039885780554376662210214433059208100218543665746234608946252054803825908779351476712211542313571343153048724419615137210311216999120213926193398212622270080458157794048095156964192389331858559935279396012561847839754463523122883644329972360936355903762245904199367288710436204408256804880561188343520425163954920149870709082573746091901737134135765986466245773981560506134918497617920170549638526302328298644827320860996626273759594013344095553670555013462231363698982421777078212964630479064647670416580207161408995126917109180050294169317649810354297269337266460666235908119078829576060654900340670797756682631509576148028743028601231400487423540499331217225520190380661186194129618787987997830854641104938889947904016895728880274558654003251452344678146073399506209745902736626263282846893678391428162271209107250782031618738537584711316109759588532291265526813478561539744703463588802579903561836902907341197927841494051072989263311273713379832976732656575178280207904357532450055362664594456288427454404750770628842683042633138716701081305453812507606372735761161992246322586022079456989438697835410605053246938805705668124695028874329348766417437537028595438140777456703035288873264366608859071119072310649370869797751940070106909131294128264014523332351913752922041325334916663902297144671987265321328109698502047830163083873554914584530487851737849767121490597425658142413025838012486516767636200245802749942496701782612465741047193533282417461927516270995046253219773867869658452901086072127810297428151432849302371784677014536920716612975640445071643355742005746835228547572999274494061342523968862427566778619850147146849532628188614906695029922829303426446825791094548346981283311112166477270491728106392956606771555890608605698627584477490662857760331765229275456490456549062226886270969943548349805922875694207519549237706582521026818458316887328858772334433811512492373438528146164509611881816907282749132364107846789771634152335457087176748342928868592216205428315166503079266086591507571201567359092456064066688952332194435404185741707314697125836953647632308953291763627096139754904362529574471373310386495008088682688859465029839780340361429474603497521736824429945658449260242790893221563101460357360413957689207010448823356079383107404378511118752097037613060437791238105750854527164154948003737600706141153087047684746067581158293923725716281869791408302583513670370211024511806867446843682621320322709556339962380467681730619407427461572088179008708909450352254022805907048213470992969160941790638537422171672103219957176647450841195764781711068180560924365823599110427431253392127511961579873991991252809837690195829565504033033894209636986037684105892711841966033234200685516960586421152902236282975349076831361218104788772032559432847203226475928494715262774868107281576606962933105412560397006488889298583927850263733404256820313273559737596165324953026732165789346127489406926763991901913673464240783652899987746818990432731692548248714685558320156001133084811740962708515277049231364518462691585100427144338250751206077173175449381884888397597287624513784001621682017473523586127056412998714222473998310214630746211339911541415057571193797800794448320997497977371217622199729009295617511334273542153136421759423975873061375235839477822619410652731407878179854492746551970504458402896644775442438121107727021978078933297896767279416764905018535875455092070265564274784971693238888408268834341185598824067055488374092147448121761433481615610408902349833204178361157594649796126664901199149922734658729505732773938362507338676846230794017286387662875324241838776280081675809812009792957136973597773045698748649360980563356435086784597668414425437566462852574677361497091024003436832134831586354405065568364203919908620388996458638174767801488150600786287771889505204077732532827510781934002063481630316844171100664381153334468155666784223407668557872723395404685067144885472932161635229222113455673221809943590761037256773621545753930488421421759499030643339369988600209043282532963639892764441014923266192845135202134826266721902523335529485895174322868870990593675256825570805244915421662789053978686404420337682998304455072712436408167417897302424558705883649633955125206970999122150521930671754231925464271685676410753468242873944170206530793125452430166033441063016032672285670416019214166436262003272174545840102826509747166071521171409570364819772345739310782446838255651785175020428821292534252486300190048330808970718557721613578814855107605104884534129766039763962582996549416602046342354422081666005438568318378183756713862616034080157940529434198379389982321022043326767233773300880779729230645355363069741359237912814437288350366327522652661399795574737258362013264889805197478816181270147287645753002932791218883824449718551248772030108256808922537015123574057306423924057945598920561460013486418693590437111810700750283164505266654385522089220471894534746626642205210241548815679073084698249987623555152891104410790282778491184553027709882908711859397133552852616665010489290232147873338590205842108173159522699195436015449846390450566032434215145730117859528848319251703413450375203070465158808296374758342542034993601232780613768974119045246435581713340272067415008286310770258208216868183340197463449959716215574828442843891170530639526561592585353382775068177337613786771369555736180089312239705026878415606832398404747434246453906887452443870831468331306817964967633905867438310234384815366478276827167441366128063226134706166779773456997788141603101772158207966860671233880206059849133634228641474251993301930584395923495741198046250575559006379353774127189338660264862685560454526980690316056398493809440809180704654521572587166741982708652919041508474452773374628294665443169234805401381664777447787797649657827776611928949934660687548257601866557339753083638276928777669236426721140268844172976226367556163581988679406943107547913290264381927416902703969673703832066203433177625822960566930368361152175308870536433714019611781941582596796179319447357282542229111493712539709131193150902333755018922595455840625710080205837901390085468218170345504953911596647296715499031557110600404887314735079351526161908622845400850787919373167338286127529743431951301850905146908935989493200578889734654980350965728637101906169758521699947319181741304304714700105370139569073579300911130755850977095553676524551656329241348719249417197238044624163857554632690487063757233669322154776747496879741823055379279866403025569103262183553969407597041573405379549398344386839959707235436688423492881272677125216178909249076436817613055355750618811824611387236498520799504734997069981122008224834815091261852553379481345984859904966925622002936370532317562678636592787680999899670082421818259096604882275060809217192393663032485940804920522042533193847865232620317059905368365505986862775743466023681136387229651517431848361007558865548420810261937042210460121424917490227015875776540633154068124038927274631254715128019936736475335715730913571528328697347120405372180860558690240055879709214875839122342094359175647284178183277946417666049281972491556957393134605847309867656186043508640385946724137489893277837762574995514281744042966468229692110030542540892106424144679457293187123325392461509221889489336627275520146011153168946406117771302459761240620058670614266232341936991879932692285202109849086372463254792969744677086870463093585649347416820178889023321589082279210903736396763560221122943936412948701824507833060391773611106434041856537282625879600768993241676082629277620162495175546559992244936730852547797191718832904270771661006431784954487493848980058912944175303179402157851153260360718083615533071368873610631461507673751610578991999942590757172031443741102860435708770253894819122780633768491280459661013720807076999626506642603895211974151004240195277275452896273545556653508000048488919931435864684174748889471026675118127782671733454889544202028001574350511244599824980857541784979446224931494641360306837719317056491030714034253748879379634613186369616183330191018493828232606779862403610146161507013520029925719027483702813211366201666153639402402285481633345986832135555336219072461411383890086704176071782632358822753843656487647363688776978541093835902076755602027696588300871761169443622892184002194553953430203418293059869658168523491125719094915793367839878651309084220453257337382618832695281915079311714793887130462685408981352671305751137923258744279892034849013168488798930067380712290481538048222246241676721933886439901749462644400807272526148282478512116115363984900779388783452519209020963637235266914850679113386522010203368134184155844010887879489721098802223868038914302676913073706604523321427536428144109303900235567350991286887590886613440858512924610057614083646548694194602666628111623480077395925714219836418873021730562119690003293788820779813752543509883962693317811241480907414941930844342370521421002684001432642759213321096814597602280798096742934400468494187602949020676331327716004894358613616982854075390570983788102994825027647549713213928620231089201399220644684448206482385369574519867379027943043253962053640894237927826130268698292875545244301702897506371010851387431751093569401292945838000199580066941835265317773859043468200560242536759226047888307649118191161572065100150715154020247529650592504500744941005313324034002614241377764779777686631809085926030776003404961160690753923190155499415827988650884021973732375929417514878672934599267155525597625219399716809971144241288499038070501396351968887403960182281187258109794468564118875923728159308601970497135717087277949407525932073713754688929674950660623365122071314656913920477897964914429075093758153425467064898022988817988633609192039305713281412066291005443883700417700325284920423999300073746993323061727573567633352840212646611415326068213748360503049749825391984058309888271945641335109320027398245555388205926941406585940426905572167309842954096183174920612798631600883612527411123963755362203997099275461694098986777872287673132769594061616985870449707087651986256230670224915364644829495276677490678499740359517354620189909522773496831349408141762477720296300746723021213294404106039191137489745412108311158314795148344967432038158076929814072713829964370331794629388826951612008909466688535094150721622074593076959882949707947281017537233078253839394526709187945012687185904398212518530631599324527426684621544427860727183449006344975569425640554008929397654795951251119432108267938754730229672852331044034467613437143753721603636743230993242828859933438603026645552438976290704410238091761837205293437197003643575734851050632429192228181373827176227001840648698186612001736390651450991358546834035779989402190220796396913468544075516014194774569693925877854167541293945585023021173997968552505108469579928945513168942136131377380835973478777406525747395736574562422620073558587777490826224592922655633074968272087571998564301869260583276184698052383652394332216523984109790105873019027181591904177306321958835307922386084831469537378168441923678241926049554212347769384685738767351948826929553901479196294309632317492046087562573173186769044303080234043585803096629095603816024344931522906424914252075662505137289268669480819801849615018636682705054281490107900695264687518558343178510611237250855621227534218548903776106358481294108119423781939792908727089487494804072188405215964778846275385189570787335401873539513139537494652566008642954147175582248383131629019796447287249936268686249068651415028171579198409921909321653962566311402710843537539221412425178598813267308566451266814442907367222887032651486160216841432697204107062201865436944176380603829263230378648046674650878043256185141512452714271127683872105771870387565439935076791022459868561505181693439674307023932110359834903028919346370007683233961221039952361811275572708878784821725552722545498837148123477643229906103070369476824933113940104378052826754694605629971281752638429104849710818267012217602801664868686599640332567694014209817230752350566886207249980029149275851785931199882466511367468121698695584422021242866530461546571302758142653042899708408632939515614173841638084941210098799658912570517839925121448831795565979788665297143567714675719119164212887378080741551267986188984373395720517748222022377738193207766497692960129248944033587926567325936750828081846896905338596797940524523531452431219319049690289208758285918014302925748377182177131964698734771450112114286989041205080762959489343020912085416398428033993598395954540083902842654067629589703578703807702211801782982384441152231953047571205320859907961160152487372330228223415683500313962874325492454941246736543301528355812204797694635208436918571183470355037053946477904562757446351184529969178058546397169006970380871660991764223095971109892938444417915811127673893027724223549187957162506236552467363146350183389166449172542021945671059586291258065078045234257652226321109765414632693215894019836076099989857468473849031580962380443837957671263343088006265127935321030948948004139196081917573362677838453193495594644867748000614847987134714331233512889214823087824703764331309619685801463642988268231167270395799619380257648252679434115813256710702015346532699986184166878194168007609048296876352831637883857625313549133334214840310752458833689111195785323860435571873385707887820073120866510637570655067472555616143757712809214284060541782828781756234272709903878553376027708863051701750779549080528126459972295171578974904344797135279380687092415834022764575173158058752220198307107555118790151833343361178273652594893041535638993577666662297000597041865767097710180453698315956987690022850890755187036808498386370715664482992463614735036057467768134945504059428356268265800775658694156995606324835619331912839032269969937078684948265886715240482381670713094664057337508508547779822128008903485731660852671076363608506384124339889149020812017053653611642463497191659974641488678369374988225022401274168872899471903864098943405919641649871897793504696018304851741520008071751004847260268679168633191693249247436062536742290336997544613629796541596627859295090936421526074440586369242301340840125787255926437698084366617604029624977828993979845504075840791382795695147044341169760624777545279918107952408850403979742667308627489994209736541406438120374909182117527771644507083950001278593468724248333879802948673680506691412168200466206609328214415249774535208260879730504712385366116157285627031059759572984481479154290400332241277967496979702656454925891798107976977831737912802019619402915497515201897764145370730020624768029980824441288282903031071644202742031391719176679371502825714767544867163639369389575438558514967352972704254234108392207019808923592531925311556731214223011688976853249969458268222849136349436580690215189667537390664321898718341571321645666222882365750565597446144614337815599318371833868100243901574818701210445939202114403541360272360620020792821603718755313210635397569452307713993701925169331913020636548199000286271712896186305638726877640464212460828941334197007327801698252634671744869929720645716143259974218510843185407385165231742504892696788063655864292081059755687806390617080911058370400361247203908603359263649902531546949206670373035345582294161569983855763198748743120493598107024607784748806543332545530601547402774026660819110220604379330012557772088983984016828166372225110388088089345397153405111316571972535976694973460709205057471695923934103720303187509131167777865648011758752616503944870939433492360000183606500092461773044653000674552217203023702080515440306687940044791868258002502868700490749105338674750673521220439315801981264747772151750268187056306476311110841808511361940763576819588841219424779530358697580845378424357861832304677205033676650241260327348810019898615923431925187810733397852637271394340548231551861119558008686922065514239087886788965155249203408072036358662616775214728761144532465935136356673995309130557942959655738285742893769427512149598891674898062187229287060709052205132510907986878605292214103182414891767324100843015335079432065606855488959948005718911197474659440158786722291433088429283266181130372212175722120025092327350423067490125783063390207197495861137430099081683369643620665733323373434039513388667069603745005499384028325123653333888519781497337508516699112828172876038360707570565897270339186182215651421832983465828752088513187409763846715820373460797245112999097474470265912224014449653423879065351103350783933431626783627050111363326307570129981327398869473029913176752090940489956973172264764261551606875914665304185233606133446051428077269362693633221603005729610336999813954140893305361101552821820332646071660180247815155500654375874188210964785557135488387041690082644885495877095985557600844018154833111489307482178736155168716379075126352511593797645526624486499488543985071616166986615845325250244206542356102609144617060783586414157030912377946533065883617220723650774297139883113035636200363023317959440147157131099934753935963108439717843645487483542519169351049341262462737668606549223683404499755646969578827052015556217279488525736765961432915975803362052074493853963295356349767497695360049815279623834693536000875925672114928025541912094207779192898051070806393871077115703458633541526135697539018474836488951545204761138961712746479372057146362944959336305875406234946207017060159858522609844999842764593239642464074881354147495852514476173244455391389144346585937630985907251004652308978464402625740781041433640111268176729359870267151000716020336981254335901300996184021609346811560450622656055653282605401746182460687890145737235049979755192300892786548145327846020784365447254532683091833558315825857879482560380380329834534416349166056328496377305668451908540323291501139959684513464483660932578026328274926381277624358931165144455877110729882464671366610541569228435724251620652746796738462678093471323489576349432453843802984892342838382452748561414488312057537278993888502525092048855979015224272231051884221119536419213320649322438999735418042038927143434143045724579101988508259613251964316374361939663353433094518094809590611305847373778189295819013802442455215203390775506448829806488283866813761289573220317978064424199644535280866471035922378621162655580530266965383572764132298225488582896781547692372427830590319153439395711552144112045739854837634234537375020987524420352230953374574439531100720038055122392499062256786904157210672280335402584784197072749769565740246154569251377268163377334512903826200986461211032612106280177607494201684445951078442543928782463222202979824132284373411773051722935671852173743718832182375948647238651349635064900288039048674921355743150633250063307673145365168637578298724686540835615359011230397461451902697709141848490662721348215994896065138625645596908693898748270699905544671726020272930904068508404002284673402976014304351141108875130184319584391288692398128965508471998708312259124588324209163464815960982356399366386873568949520985915878847016132994122267476396402637584550211827132495317724854992497516188831332327648398193002812672201277268003876401616701146432402369916917755168959387049769892020035797068435903575653806130839812247679999522124878901163918366490722779326567685867608573859482278437400100560399993454335703405920431254656940780589128344565469003280450102938592220631618382344257531144584261086715178359585104566006502926753344318083875123007546854956771920053195414102268117113232441649266304063885351220214808784537035253832442438011718809845096545618899783074653237514187801464216506203281340045550195012795027598928398475377298788885372829539714052906577073277620624169753528647064918382601277475113428792961958795734674420204643467187243293981926148388740213805296865996199024883747318102276488284331633314559827227867375187973067853604790970271294459167725128569468880080925668262807092791166357815082040041951021328365148262479965958524245058897103452176150389548095442806766066851340867839152549442936902466361105253359511686997420685008595177127359878982526619883786822394102595659940695033074178806056563195742962440396753749872474713123008802786578519474947790871010634678069299312712894479295936664008655728143708953693376640723561840725062193777886783622095569339431048942717058229897578813165017458135522069214025785105255205177959969610814593886122361618253408123921871996400052686978668934697967868183455304862636271763164563816299207478603927139935959130546578788255807364357302316403875924466122260004511089144944229759974389251516373809837246792812137179583873801693134150150783916364225525039326092559773540715761158932285333538262143729619068534214893074092319602968294740302911206877238722523156077763000641985785525103743771365738986648977918605459703782253475953775231408345108259648827376137789046578825461780246287378971976344476085758443370973471050185356091456843021748249935932398833967799302260859659867508075535171734676079298489791487953115281183341413855705393626090625960507162513044907260144903108770498096467097411221857854827812962369275297640303427605753016388167976606270267416215368660852951819629784514567550675186435788823156839118602802540348139340176174009094952360387023787808792016841773223019151259856227058475464900576117610763688439864273328825033610852318428827718053577461574492013710498404476083553192445266774926929062309315804235549120773924885126496056079929537744599410214762642784682425638343995146996877739219454094490958178730055140629724582168049957048661852988566973495988780830766984113153604381131570659922700625693427249550328297144663394186848719695815673254418951893902909992983864299484895836819711723686623580915849393924797037599785535717633838018581050273444073556999929548117216858922665802050399906356468035257881161575624523251019111422252798373130868029685036003372885590055287562190094566442570304315086917194176858651923533469809605689718385832593359544573807922579146416638411725409631250407867182329285517109121416808957367827504420019007304972309083348496014002087835963122638991926274741374112536686507359351883409076336963778706514422003379128496710504334794639654023225286406018309419772524539711116675912719946546762895654314356999546060937525338629056254208685690760665612292506521804497520653947520389830822790062928647133768188250712657295128538386587871539197446149559231354086575884145395853288744022061096263438586780205744362984452412342062850193380266103182131233049598617788128026478809490861299501996908641353863499120071802606410330327323647062949206528046937613640781629607032186161780592211246782380954468150140510104565132137628163890379313405745570540462685729345023261323206769650087970736069103111736628715028881334109318521029143671336270477940691865240116768758437150812963492708131002251726166360050024252428904145411692364341927547609158436464163104035315794637340301097934852209912642989139358172983908743181600622939187316446555573535248536306874967575051727885221967918509537357088515105376822109826728290895465337272594373368821810856778443720563750005591545861085359096933710659117653677514331627278636375972982022765177013805774867592504590790080789206850073886546587287962035000404120706794379959571308737651241726323649081159052536924995435084318991602157943451596700590756796597864325570645209598383548397618388298889847307016935987257391683639502487231918115604658363949756312263463133384547299373113745364963036479489653245435929262412053076962670809860839129646896181453408329379055949191810373646090538845994711189282604118601975612406045808455505078745623507378008207617158790255218456690506896960750927476589584013425570190035906280660353820918926752338889736393758768658088671124118181587256112902949517950513297489269218427963260450947686956462965087662928807853919010433631549424607568456496237127799852249112758009843258189349631796824492392384478869281964737723279545365055829528739519466977235474695249151334968188486954324510382015909607608051014953294178384071627902898558391200764862015670544008997249205073952630158982048783195471394918819911706248287009356400234395692506266553475292637175301697088350512232076906095119790616365127050006150310780236593044772631931080527044926680326452056067473958537742060426354352179308124452709257534531073378751368647169658732671909093809858635595978013150499561167131596887560858673549117914471892241597839052045905527921463581022180996021674649487102945442175909643320371477712015473791943609133448267676867520668473592182203830976824990667496929658707312555933755786197604607087630200544164309210303527799469978075466296508556183572696627519117581002325209433202253777123884758484374839901287884345421917423457617804748050220520345768950600465297453679567560584593946567076270023142436405638911846686774637847960290465604594031573865850527327621948712597152225898197836321463266575177600878438314229448640628663071687715368038754129394908326775484207124425234431355351623940055691993399194463915707369252255961386853660930789768332744601237228592758496191921105726854068755597014121276872239395309980665981836719937816623951410220551961863309545973227017972574497576393173553750232699033022694633675779135319785366618865643376625070722004256454595486532869886860909003818214773612714343169296925121418920945648352843539189278415151241722434816362563183458870433635126926548190819786994228759817778199884253474799102124147817472207657590113374626414423362049827661285121736805246543100341226101687929105667616121867729698012762767799106542386239278571406460219137727083685262289355083619511897564517305614447997610564230890209884075468592018153051301573324628959504302728667005227244637522240760336682635782460546416224498014887446384894309623690101542224973382676506151383041575160338375509589935203275269074913619227996882501382590561729911667068217751767694615511437045636724612118784122303249402368161455630767696693348077901517558292741390199116210121654741883152117323516250379264726176555855794266952358646748626200749368328373898303213512742740969820555076202160137148084731419174220698103852698452089743045329539032917346405646023367435180731554214865135560020134243683059744028917801507985022176652275147502348717336368726134974018228247093783702790558045571401511519081587856554016617199292326463413134845153571976891620883219125360755128345884877829260849849742056498239935259606694879303787124797756672515406055506852471999492960959116678673523481479049658767634960631243215521881071054500052663077958596288243630240468289789717366522294600706019520785067523794709772671555586248983385989254544621351065783018229117231480863178981750685559156443464075068985364115576573763963219218310950342094208162905797513821712615529723629058252085637329913042280854721515467248196502031452151985200466254900679823530732632287670927621783300159839706589227832269136974635759389282499543707449498011238464807350365455315396687422265281666356382427052303713727021322443154574793716494609592620745624490280810184242439666820726953260213008894395737895802744943855355111759453286786735314623936730553609941620338081709064947097513533305003318958392164687738529984860413473010454153949770390413262265771335824361796049572398615562082301781294724806914747900634661396443156233371538681252185998014735220605291994170644539069942537463271325911225649173686637087773875462134689004993994618314468704251829004706377472473264120011781172913183583451627863413162852052343867133626029873796937656332420124656083815114994314853563429699040428627674954541128855214385606394134902438577193458835129953403485826545352584347036983325012472932652298669180286455709842759255968722698814990069019596248158081613727055916526203433311970467873049358805836577413421546706537298190769263533805969453587181955159211534167871671561666534689196288224081835965890806191604207932210278679306950939832052302369911947547529930502586698120671619392658707805715402854736606368528550078016665529513487286892098253699626277233380243059577593740564042088732532951958867058620994558624253783962140604857075054164974919118498382218046255830058469462627613999334622745596535005578691523241298540384145561831128886932460982827956607849078076554926250205693269925235952521561762478612857434813709136768074977612047509747687956725340119282424311502776151008904400040694357742468288287099146125664662765943758179468635749372339126235082356720908741925025060853746835340963785434546235321541137948551689530424725109534277427124375326401850384118020279232617666537828184886614882293720317204000966315010641059252066823687475874484626879658954101722201815044429679636134641535715577327843460239714763085985505199139086849911132190046930427509674142475893690985549319880337917892985191808420019342480578487353755364086998787906281127256182321901915940590821821416028027710241347622822423103765428124412296130025559632881562532470836101526806221560394831708085559358837350729431516403504784307883057204996864967413041135959934452358353625858576226393405105303214116649895506429239403704783260040835000433147936378208940887333136828687725470211039384240787697628052751833639742199865005617496501384623860814414388426371367835048229233882978861783812796503544784273046565046428529284142041370095751388510140412021172074867585442717061014945089422885408011235862527506088299740020345873093755320397933000427934297604223341334949000008642023682235064124528876348420352487923874293860019099069642172741119839720833691644665260962894615363655911362372111744742425644076805392681952027566417254583431200897301489968254219229396933331788368822726227155325621160925638188517469212658269055183198405683040431693773510063729666362176625997323318229063479968687763613344242447101915264680716020992986396331337126021369536899043957657067881858848778735467931074684800094651519251848370337372710837724593294884377525444238743960938716306887862761358797376356100290425659800755478657672555096810379728260775672601832139789448998082788837264110200333424550282679958557071679202008984366159513221620622984113688260841080319923248635931523433786218371311890118750371670493300965359838848535331278895507505553611981911217151373202159929982164068694985832314629707157683153174660680378292331881699392396356250656721061422723891749674008061048995324173132566000065695351902217514764870640893689044883079124272613927752299392069894856425718233064036292719537713778505387896279920421756986562651557625232017422340097035976157205431940927578969417519867711958393859812988131666579713278618732228916732251632323029862766319141053363992751177360394611747583942914028018634072856831947168913491016482216638868157365492279064961402991177159666572152552832553402799119023637534141262996497374142933297596487630665082028578352726986587254458703151918483789067036180943884788500024332346179037328299648695499789560205772155136737654387117375860934023927161710786091373387263412694111013252427948211047329256700100177083535746232826568665188496079277952082879814425177657136663290829085476798271423931436203777263173512699172760306702488741650980738143353798824236755417287532211118107068672020865499121651279144791676679036722921801163121164570247424629048317466259665338142474850650090880367264938862834079340372590505924109994301143094413231207487775781283627023641147728521969572299119430915833567129133016497293151001160262932216037728258312140454459644392305494904047673927615522600215209252251289858588065961717795013478499314634861025626470744504582502912597360307663676769467423915700998636628130625326577814022056671297538318442686422408717855453074569460814514021032538913525392442926464651405411508226347008174834719204975524944944580238843094453507523981290506612903494512010562432647694795334223228300699284394021860960836545599945962017734103127106998530256133284471781013770533212163122708938422376839955642393945623448490809765617520485293155187834816000140054866594463561694638481153834411714877788497600327183234905428145337685503514930671863464536027213856679333927599321595736832492112079539132131949309227145501168521435027855953990216363182965821187670548515025441235136066227248190853600953969320908371232925568205547437513181342044094008385270953015121638266900106783266723137567965112926140188139713390511965529369468318942349669041982784059908949192374369762047895214417437054206763510541104835865139800212083904778215548535910096089634537582108038908608875349674738639525785817023025243070192785077997620511027203152830385487063433480492014189318851123205585428657161260785895153321991054192233049579854082068409178233463557410856378718105622784967892132102204449937390545710701411225763509429462978291228449601559107067490671149404790880451033089501227911573060233127902853150006440424481410858175489304881555831488063128733851897332034038578878884102206682797142397248749492112645236971468992933647341097200354932452884690433033937035605618005433035166413207928763386173249019147040347454949935916840236168036099213339514791168656438736729977573956435199963976165623302440411918937844939908618083891061629894004827958155507279283208755748264817232514302232689619018569071546522477737132839854557191065097565278707631742475023223363984511488472231763613485676089698833186238499232992997037506869462706996456538464488178015706608318041028056210931778799649634087378472808258910956972660163941295975389476579773344669110805060508114258404015525408019079461504377841316711843919889796839757995628173250951276817082176932125412867809819157551217541174917763241341220075337495048950405744424832696373689176878571548540286587943548470728636838898774200535519991036030708621691200511846504779752591130313343912207380902668582464229304765979755492798516434349647354476502490042962361587366807977856203708390448096925634251848584388033623102520339619689114107109730896678264518340850618555999606160356577208017223253191957679810865546047564381303967924506239161670601842524432455054376942688815220826013513507149687342156263745453311921573255912260751751506346697070918058528248715109082819563830968257106366618394570313673572054964804192909470855001566462668305183213859910034663079262914115106656484675690616270065683020134637426818341485957894469355492376586749359706798334683525751178975351427654077229170657469584143858472250563098587188192600091723794098797014445708069566664953275769369217285251225154343228973666734807355464639772993921445782139874646696540669167656533675322028242302462556682116315194413957219907904638795198506159290626801919058469931504461473492859764955512253439347596635109299853958188169344081354490821630448128476966594804687628836502212097635331679616322882490073144038356312229657914026931552034483602508518368246371683604214741452021973716075657704158453957226060684728332348306874529056073496689285969021555732434587577757857813450762285995090197710169994949523819136437968668675293162241823116462216597606733138389066911352909064265031815731136688538311882053878630615210899273525806480435864323945052865872770801454133462629742672086391465716820091509513144747861196151160865500193741105071423736709864992618756843152040514929869807833148294826898228213912881274072597958386242813907574722798700240271078745548096694509356655711512939728990352296345163505363264175975085119861902770088940996047345777807840042423268531301547512374407650835656048126931997349091196871758656514745393848036895907477575742712951290835732672715963819433772054591534589033954564936926527811290891507790133556009004541716380305664564789066849646345591468292451003363315929461013922383025088743811986609263983434961385324741849145981211427241339526957842445673564203072721116572072487731400423888194994620925214688990233562467710553693396499577886100843888605715899550313422302353584947585611557027216513807663527591022875991702111677558462790762779017902994820213095785889622299669270760898072991365691274370116382037160078970650603583104323045651928302442706811604501989225697597188337223495269877977356583084891612480436317315599304358919784881597336126621713573306836968392035904965349021154050696613063527569676018363044639154740328679339872976007054584245547389768973747274569168624781958620697446302068352438897123314508597236176680332981767220409987018503066642149459706247071940148910461793414358956908670974759473727176696649739195342705545989648298586617638877178251413949937604375343253908948949467246679399159055054008011558962211706651930750744617969944280457758712469797426313747174014329986422839940183010234709721725180900345603022792189222310822028130949499875057096969712873703358257447169296850782904159470029444146430760896304723107819308864793065116282095461579502141166359837370797959139196801869992337072600548652814001427590787708503266934997163385418186025834436656715050754191558591156632351749008360625451213393533412988760842210150724825687941110996325512321937901260734155445338201397715426846620723909978602504093157901693159653472443347367737054619752811603107737492071110016833977817584457383546066296798042086474729048233987298162339869308453743354614456853265679582320645461164588229618571750250138226285836802844835444655179462302111424038650169007791740349591263738934376015069940272109237531121671989260029087643679912146371629809536179912807698178837379684850063070488259675089038453469995166964846978553636188612762732158109937803898422970295988669422357734190933080863824813353544673699458104936133259305770933133382767411868319249785384672090316598645641454381840170075126112303655364150673818539187488614788537710760451005168161486649219641140063358873545928538090940729448673668551262513059955087329771592551559263833733414363795504163229516959540077399872353857851167203540657002560936678592261973327174888054221368841394276844883646293139990771730361294736193215643571786650922233120464843784708772828545687702301817868582929918855858021696521938506997418445126431526037860915310501212781401143940824373329350795042050737273998982080514174285587176447714963670537663230946221545703211322304065672928162494762022881332169075235816978282766754556491065249912292238129826967647087410076720468261461446154055126622490308037289897167688830819968948462942468784307087253056845480274268227121941760721915373656507312857324732391697477936760603142734768536955442388570317448468587842674642621261910749131796879026518064941900248209810698689709273976224321826849259582530201331894242727847291721887253844706581438585107066174243139601280550473332485196136488602529983580449609655606951986180827012145513464207450147383760232492937428858643646632072912615878113436064287160770488302723038898208632685427682792135224851008295694845195141875691032043199910980268197515733856575521305335430525198654221013890741227059001716609572506983228871175815453884577595085519936716439098619802192444923406812116321467776951735836946170518911312909053819529259099090862333325286790575544831144615082885565206000976147381622109946126009277260519178738025047860663022474896077251532294062200291704258359556691060400857304847786519569630402238596387768516199798656426794423858200512003184593979839932411963849197764691265571754028907552835173293463595357196793233313206690701120318299551120029641761529419413316133990854449782727159511968201382571393620107394877404704078964069919425630086036828186974143120244914001804929982440049001712916192013361604439603080232583532536645311018828616126931653707585025278949566225526021313434564214391890252906321520745530171877853793956352111435035204004689165546119044786003632964028764379461231625625466695126481751076261457120296943162895101748302889291213423525204713852635393607212699500712810459681970023287665705436313688399808185955602254832727361498174522545044120271559602778979008475739247711989957063156234586474887747225775565331869230453429742770283808010824174552794650894399909484109424242562724382125106797908557239677363733607415230949946203880926838749519694562188694207129892299121923212694662805891129539704995593470261849280479215413203592298201430822401293661597136198479388806545551205911935782873819358160707150488934849101654088281207431069959696758262571109726253851289790229559814353030288310275771015300914306460698058218493631711477572510110720631432249859997866025218930489426241126505730963294483190932280538458090814166379315749991743985324229696132283484403557127708383238008525819900498515489300799024733745801650658730738133525850455143491328216186480286075414733176893859110986420053034652231563606795753846233555443648639995831543415570052097775185473443489837951626562143753724855805083802208268879612854075362194816562295788605220188608569404955684045591924863452047258289834754527227092007865978839837247030499067114049755358114263797285158289094954944408289787275524293194006587853429519236499183701889256240839705151249070028972309418991903380292853072980035557219777087528315419580377564872440345558212175012758359820730548041838079016844187702887777200417988627462949491096409248630968409035649704803969868348189081104662422357751288222409480163149923035391350596186208178424643722062500172902300707468115246856671114365680934510849083505020990225725448439821579540808226060719624688720011001939508400561542771445244725193666010106040254705504056988014080206554546158342149078215098960120060634303813882308935083514396356253408116511574498144197685702601180119489319666835963082661529175480117830119104002916373234139536946857217039974596070025528880784768758520347228172847614269650453602381443585522338828838434996136432023813835430667195709333072011007690262211643328011272705221977303576271295529033109413034240422836014317625023979597335625645284585537351953453379054125083634523589446986575954273370547730950983468692887842726342427223353555738093300700063962094649792964311174533187263862287472384899318972861091646708582163976647698482264659458111743893679585272986776162075615761043127591427200209049291524221144253379607437879694834649799067001367835678647701425170868873640168820155131548114428339461046050865718787589644861678948297660955256848429608893687135793265358565753616684690536739393199156111760060911040056264361932995008105577606454172798928922018160713312304684953163874975647098588411404862509521815564825200043937390546593956455847619390000805723884046377877045192333270926234858548765354822306704093113545689410825175566330712757458334892061694764636657608292807140140360311475495100861882032377608425459607403990773922127188221154163184795144638059155830620199238377951825479276469366948404678005319190409075033959301042985007372134057624126610432398155488182860569159527368607724036164613536585004301257436077197978233622740874097601598653015273055893890888036833626040732089002392311286763627933886407920779488542128345570581595304806259658731982023552042949436307961543319350001869202810370001919032249517504839455404783194641388476040161721512571098946893331257794680931256485542525624409299193889497853440810142362020532415908869239528410191826307167530631800398630895867760571775023460754625790433323557379238124151270154839930996646441142127883744398485632956005548148909551013781801800645826294436359584082595888947956012838636429124543589981938452740402118392429685688612139695647237461745340568572951080640328736765061539253461631934040003486542587374949464952575379147494838090315118478657559637934631472263880053603086904639151324277287857505411931955094118177627667898112679808957164892045561390144929681903350965820971752070746208778067295703495173399929183141510542232446831526506663034662308355996581141689624210767340995730533375713753707226729470273419569262495853994202877280135314039692714989106009240028647394212427835039984455258369540093824684603839523155288724841260408865946650267570241889011440550666327696638817704915783722419377325881644467994611397041102086508271811234625837027612939784708299321592959971626114171565155045976577248519667381367321417887226081984410987248253946676686850803299854451838389265214348068947672675100592152788098568392460848408806889408232706533773667488727149364260621025158040887604983286879449040625903098686463434711480932721447118659039508436980208481673583116589830456033419954432201764420877419702002536703165340470647728385533561777757921919080682979938155605160935070247601272319844524158707031926739098034533605479064429280034549166937723041286387802075533913063717978530778629854113753211789316161644138722187728946488173252659969748482507068168278849961730234635562157146644186237276001346101160425297817112597894714102151589722855341658240541429548820044500514318936832573641828361384350006526611672772018899367190303892004736834632804669007968639588187377212681034609584937234667467299894790342192117596065108667160618440705083630880580085280098428012964531130111430537815599430478873419927324869793955182636950205830061122523935451201491978986001677806182883069534093787276240973900346934994782388110616034801850469885556008560627132969527499169672098089577199600073606835023550218737387625618159281593316016788050224037573290949588837098820875781348711763165371124335589385516448055280135114761063099898570928107859255523016215456703596829525887575779647092092893209754665121743379007361049057958918013753161964522927969264079896882484007905561865248790559237211398967572103107095993595030031182372664400019075815128947468345398264044563536888891482823619180387192328583597460007904107796927545316146284029624178176314117624098290840433245387881033125351051903933210510813492027733797943521133830651507033597794464941333413797701409667135238594496782114707114537788997390296205606557512578332331823664991521652615820640329298914737492296273519397098357951434586505533262811108671072911029584909601641713481715146860172717971063981349135687488310385504928366667602596164679687369911861258628851041813069465823067791048396671869886272009181031144499005552487843031688741738627238026928524279496306589667910922740675780332701417289414358913497718749022315886901144247025619022720971443718026807520907397060946691836520277844073878333887360766209457902269648109921117588898832127352379801787159796038404152525193153404244842099051156195332038467933577059796620821373669934491600814745212132738639612938171644833660190191429409019520692972285558658732255488488266092633338542547118379302607240119268405657823984999423251958880239835602724275983566091345000011594844737199208379875749235864412462427515071782689873979371502247537086989962708824114311244988607802967449062406077834559261087531698424716196637916198550144899985950888207918641016340116009519356169594148464523339766724751673296283730775507613795668482680895700091974039320283141814719290636051323017581226111472476934692674916294394202426160360378305985006587596120492657187723063794014683339324426822406850581914585439946592591814247235721744008861281072164686129612013951893548376742050414583835801661342352054812856591296002782953071068343451272327535472862657411133723317360215333610989838050187401868922908598309672835572580382757919349836934649464579088281940814306253054216153635166105754222122678680807614037592578047566545876368177429091541926022484997259669837050649885044245555686423640684677318321923558647131861896062853760376901578146605374259497438529144713915862654573423370547973726993098366232812688196793473047774195999638723454736706898014186967070293871476905532378430078654483246472592154140043722723102668652956736074603453611008746994082905822431560321338105936253913266371640627830015249240508047167537889200432143195010704453751528296648981726692687066110008354445576348066314043740903283293253928192707384634647430143656230767163331924651982395587390209896552187919746477238602459735546809129571252551991876987712505535530555633659277792736276833108865176366150575115260955979779208888242336248191351101795287217992018725959092886421377786459565055962338020617112262954017869860495183413487544456740221920841654840501111283595985228845783051208248973725725421458241191872879494116835837654319554854784947894203214014064387891781566387313678410587386825306199583194681094541464492648627017061283074397649778091603170010331213427853916652061293171747494613657871949184175588240289931291898117330619940175029994727585833513549935648755883905583662339035892837554043673399225356233015641461236364365338046542167391787200903937535676645426713245336918032480722297747157314935695711048937624859953631565541248163002690853848261581243323904686303903267112576425353560721383114502974327203067795234805552316510201469255869928101854690883259610827382236618800428055527253201166683635570183660989420613745401053425756741667659854700982164585425669773766388855936364502385172452765476826957113742954516980234219381904592260539651784081338846927916452799165879125985272618926573174372804298329620946485032438105800378860132814110178689231844137696845824068200840237244615974670784468576320267878508157683149419083170243269895348372973106820593517351104959414256734840058259795972617039297295974711363590592498430040304543798336247758165659839995248908942379690439720156166857174633795172463411944994813630670192551710756531334867301424520420637324339702325415382765090209453076739684130433600089620435674047133294510672955062297066679361874120136869970534443648435513832986763434957894581927913496678859306359067765313349301569017751340743356151441025929874203967814279316637500046009202422901352236490872951665212659957608887587426344687908835086800968216540055374616510882104397636592933656515500239640993691746415325809066137435854384518582781552665161459705492145602600374403855862759405289204440343722426790450559836847168887934657914594437573698669000541579549826928524829789006176670278879858377557948311314888273705288528377015634171155831536243922684080779345035754914191128913823727720262097281449677988555599410517918806062756380195298637159848572786668950516311755419402187435353022623769901244284537057865774109613048657156278794721664942552510199419172795441188175214882493363803858894885613465686322048797270601245254469405817684531771684283321858559554268149410555158534425793655845488202218275754654385941586634496542005831148111927327347975815010446053667121013536321783782464918011833458820686149311058467219747854352829222269550122950189547134238970680170385388787109208930549727212323955753877907584604798902809044824126369609496304067854230474569764292535417490773786340559281699886762188207646352357056251382903065056148591467110493470771863645015477917895210771091983253255140999744373905872223136630368742159627905757025262359142485316238469788059443367366051546206945383076380065588268432344730996054269045491717352381024534373296680211223873561489769147405910809305077102098858017518325715549023668938024624907078991996808120867760463686745186347290795079688930159782547292921995950765676837445081744701655515046726014090450734966424883856914836303177797461595125047396046946418272733379250030847028179910071115095953512036658859351207189078149043462542700213867124219512189448981241132726094450956175759564238676995763979134124158346400607297642418337447559253981386898070927855880463480264180516329258021900263801049355762395540272754460607008427236233456824436123907196713125891043164757975896725559061615938399249650526381586807679480968274894910446901426448422487476700535280553541231737369551694748435826901148827852927807512386394837756088467999547370441613398958949902717964535836828429159898678320049827124778092951068477025777901436943121361574547849992523817458399020804632389466568964918750667542077646641435465388243545014151047709148575498024383931292426022776959074947843937375706803070842512589768560147598856432096196516812961876166178063263150766235666038868829212109479422051645558284298064344116258640885412366121696498417006369839996976182611985741286784102311916867172270291143256857125343032411223109024758650042169801268599627023747103353299583840997441360023123425250442878937046003017635222377337795775073396838413465504324580283241430328131083755136014046738665084012541105001752886717537412662348203600401116310372951762927449609233709305556927628014288449053454310849526285982786118695495873180749514135657989428186029462119780221774871363172360581897153459269261205794916494457100048971253742486147239163229588428427855903515485974869180626490368675590757297222151290945248692886473556036012448645628806407907791504555590624346564156051229772243937082036590664759374933203171752327447729792128671418601736333752795771614574124901385919850875064198417263090144938859017923838494155035440705732650905583951443736124356943139730704484303150107838303716078175572432442819267617619633780565248831008470293998282165837026890680678898024710051748740228767476675167816437415847966567592692940085777299954416418688741261232089436880101236617221048576109604139106197561366114511117794636923004109344811832426065966611309995205052713759562396810203672785746170608534701330148428893294439723389951223224710161633295291164789030899694364207463485259256033968415335052933364123035353318273608441629941692764844471900308555754262872570317342246430621902987495639957708689386529666151780481375329776175221627685857379875609071561642418186675320520571058659745478643040202459336472796486375452047928793655618364717705613533462607672819535821908038264539521816238906275416413414703452789619464209371417258238478144827478938967582262271580230765341879799010786230445771403520249592426302358187041350627407067127840615481502091259105027804715357764695837672549186161999237971881779000251852392606999456127280945553380747671006306500873267538668719698709890955910627874684675208064479097049349928891263189896933362477423744379190030959128315502084001570801573582128443819486478767061569938236751585311867620606067843927665663931985973936898553099809936287078997968086991654625475461420522006006692058063558168739852053142798145540419968981596149741948091310625426676834111339901505886985257952784242522378402714215122522810725067162465275959153816320379837734841990015229409720793657173024001124631093247337669447785881623288301444101930214257489068726518005360988609930401419204253807313964984311741407331981506300235419939657278602549475846075809254145811037036066505334816226914361927719558930119603918759878326382565515088673118417547982428600807313904113565594734100117261416389814935521500141705744092179941187953964607962347996953247324127139052856373694252047596291448554258352875712181268123770570529729062796427810996792071033379843370471157044591063516673563945821572898631224812281052649164638149921661371921181846804788841106209310556669839969422156110018246804897499550799251840289947590100229168169863170277528477609698065307769694529328278957250446285190078389802389533922517841881434803467459890789190867804030434420852938609126409553543652185933822180507520699080299339563526312429617235046487203714663320196747759448487748948393460879093185064919766650092587837891912456744448853519513637638204211101341713045717880632448307219022654458804391223098062073733072171221217274506053194936290841765489167640964606742419448776585879247735594482599822540340665671970492948819348615013006633090503201682078396877343426201480641726498506303865765908267215830991552373854189633170792197320348643755789060753432040585526215186009080044333125998929270337925516320868954498628816706552554431183808670289926497416264058538066075300605586484809152496604120388669863629624210102405569388026379106714729998820223077195394457933896407926925407326566104076160800183930879661040053518215732666848409719659570150146070662061992873899303614485856850948114266579097603666644876673115912211156572567868467573904794922118806453264685657847525480415857908353024902491225171784976366520963062086040481725824151095645539699082975669402834175697789405568482512462173572141289563693267955288151996582340609126995535142796152075343469677416768694233912829009200263102448463984522547321357549084966320083883771488842467054139860278936008826853152059420083394162849305517913116439375141740845004502775832875053093498949563753744128523478046520233127819480377161520351027457884401079420468882201884235532594940963358743337098328338755906761496721910433604970113106482272576198510848762006070066760537620538004575713937119280574319194689327108859584486935203869550926129460750574165058467840935893163058153639691336242698003477228117178429340474527604640928463448796512018712449459138855209475919897897420279964726690597058178613856526789579867591163772867163976982746285605174309640196527358831881901371751417906461643729418655270479884045987398075077302114884102732446234828844677204153764419258457658278817270706656505149309738873072487739158994902267724932671903272636999986762795710749986145288325312001754926206298964925155678281463345438475199902088237855252103055519033803936217073547929533332257508142376396592788051674744214500055362460602682865405502353317268844427552362468606885778087846106735882576461592417020041358861867723820346669164921432392994962286427487467237184534928339916457675572475319100555368763693175004208109093101853280572662186295564564046293081790232539986016843158743904112024524826444031935612271989994305077146920328397769464251226812646564386378078786859478076185354229386898149632185920305469115200278209785306759117035489153810361432172743076867452490754912563291848165863025871119123683706337279760366818460946217685948774517150118444893391607883051010308279119973730520882227808422562339507566685130273015038542894830829967672689799547040229484176443847008602110695325278076093086047950972731061438907857717470024624540311551743776571842897143649226689860183820933941596197112306671524113466908271484387001791641020073665207393205122001448906569177385935216212850310803603763555558613350479582950895259565354039340916956511494772528026555153520171011409043703913534175477421778429701107604559051928102800775602412972149600233873211407162903297177399865042526046699904359938537618068912951513807569528607562768351859179118600049076416560096164753355107183636419793461915023849382878252446205908065895793941531398351476014433693792717479858346962239454260263521867972112349784731666913966526896709707683598813222539646132729240517616122390198280394084492003722860539321206517883562497033513991499586643637062964954863674138368241818358291991410021539576495745245388514888340322943501897197577122101657184979856472397242993619306295442597763316660322894254453711401794966672738083845209784169855434599502909209794496770808566263277077726765860982305435546088983877591438047219111263805526996804146322130419833493372753112406921101697772593077895402601537024415904650628944088996313806722630000557315520346610214838093662399275575170890191408193947873617813852102032283452426406142255256146992949363293405408402821758555910366611654435804167032750500743024897721458661378500939106421939399650312017696869923804241010635801959263544037774024675162344064296254108895084189001897417966391837823805795074575131825371991248692335184089941779255597340656760688913087460282140404890475425955211180311486659331932297766313422295598307035582724537666866868757852710403995068117740601664919383330235606296678854288594500439624499073193389306734056065195755705251801506714274017520693441664348583820115431879627044410592390582876348607197011384704713351711536542985050475157355715102937187571328424560924249674601976803023722806852115438363931645138557615170456193749271343585257902784828592585437229121254226315625400144823692690103726090405031924236161699720627716480009442223816904016761332236874423885039050346886457216657042785852639287153385457072066752347870563382051824384031529956281770078954314910357993703311900672822213980967935319839337993030980723195591013042167208998339412113787777499523126871016263772457971226800928946887023013294728002540713685491587705595602041640785816126117520478116610122341598493692969914740952820621894485465589984828486229541230094247179230730280111743003153925952173214168880800333924867053698507944768266519490899529657268155284104568512772370274203877130976234492158697097458358114555831849463189038444480589303207021662398861065338954837762447809979211031664937407003152846888112036521104165320517229793232351486987434218241642186267601208084532928250625884733848068161505241197479718769630716469823653527885670380026203446188194169452357846734895878640562422951130162001355449675017020017139953492132459303585856559698597470830708167306979443013993410339490485201985621410886752069478693263911529339669326758444562303943000633079788915835571906618303972736214212852327353971796065511071567448083685414042344178595996091870327661441285283192043461779166842579712262779281724676481808982220015512925626413709866756598426028796280287762222048214266792902485588066780351666235940771101493323553030912850645004143839794805908904526358019628439315892355004575100178128463518971750268292945665299918671033439412871748642169940415172064521244629850746279210608398045860459824349210898671632438014149823537052758047096470535564357552380213883274835297465380203835768616230994349758027701058444628427892404633443613907915140932536983843424751447949779687692164403648592348665732790526055855732398047824975800124398593266320779020371640706307815338585764438283406134570118581323903764128236338804700174792300938282580069437962398098730994459667905395618584515641845276666140309065431819551515605226624864863743863494835996293989586805467609084407737298511719810561898742793160955823690407304386620760736980750940281278193093778134591441228685307646059352580287745391787314062601905890616119735143399103896152299120621581114325195923277623942129406212972051690148093526338739112270435905980061744039184892704872591552388789163172592192941922802403881409306524380978741905815299410377341424134683552035160958287287345760989080802197771114430147802942078850513761911881134839341674871929058303073180477046491381954922623118437718633309765841116505109513390208632136295865629344316586507876873392000593830584238773151240584221738652272658047542640141811755106659045856005586089268730916446488888131359007570972401430354635188180404746850383245095642399756333786000076080464376900620887868501069037365293718597223852704526020977205540293254623379858103788206733420868282242773872046462179147775813869758629641488218885616087018462396752149581042931610370271164443451469900715520922268594817941296538302048877303457461310936630127943716929453958810983392435355971551016199208580758712084217540687470988627315416016479493853898510729555322823713287257286289991217531588945272210903124317375691549503736553592307875023645735480055450137639445224456283521478379570248199532420213152875163652220899446501351919269056366035143201940493353668445306186090857733942161424826775440332744229630755310993284380872178554207066712907870583640804543103502521382239604549424012906543949897112352672866661015591718172457753497173131902532254391142753790436852033257114820609018607111917095836456108912912308685204128494627706892868348825904046382472901653206275574933835587567471708374616412692621698140532227209181341600691305135209533689960234279864828487113438824779836371235403039319048017999674744421398023226116794203882373353355944564212017080413272534467683853092784007809240532363235388009710271436088316393553770005776826207180357234913654529529216965342068546064433119426599625986199174827470986287611305473080110509984604977754242613956181519104145316232134878945067425097420341158702489283156423716709855786539381965235974820868423531677153492232689154179744098575818417096716991174040431634953659033790889441887475741372147685536262359286125933681931819062089030824538121646747502132785708285910962624014248188748601820201223711517425375883467568919036073159521386085491476043757204660183941529923188125627873037292051783305838353558983071607824953681045727819570290172084962778786590332846243434505573866879607351670499020542979017872427988733249331683828953651066296502124676106991728168538393894083784917562349651599575321245725135856274661996980623870404383699003415175618258177776138022389560409041834736231656824105254369828502815275463303838338890390891890330560005155595931194766914616486657485890726575257468601100731794972142714088147635498898726821137265273260617966319469039257398458443655073337781390085805460853947916831268237922477974077415223159225126060174877810934585342557750057187206706058827288093488755698427277414975474346620435886974220057413178260247911700896882499915096659566026485366465792625946087220640762664717087719639780004429156813740554670604290946004544431160066472387566894174266092120956699217151945568920732360003584937486521673790881642899825272001552412403789320680045330974756167967017256829186302635898413606465209961879040031201132810298099770448937132656028720690931315845862915560526060349171584470117941886818380478847278526095626342953699007649880304349073935593114707784122370626633190731271883692416519473252814868258526955615425526647033473339176765954982679935548499320172143512095136125119211780703850256276081320953921209954735095185176037110222634916858361835514968247972370704322843892591959274086365194229294689665853245954082447084788595799939778061379626470250920750497760010874571762528497688341728508110349038340461117627033248118733128042870912465728793563311155395390102354780720324840365343792647875875788313856048231967214592186687893318202248483942958681349494187854255306521338865412696790789038593064179843613238099237535859423954591338071516200626591479202549376759451048803742472159665876570408179348512442628835951111751902201635401048018770026168447424118581924505554171813658991213042407850220918505010794775756399674051187241924873240975578864263916918852791539527900193518595100712356012432439127291080628172116199522044530527141987923255845610381658217903870862307057740228488505483238405973360357417323039039274498788260489725022477520607623532334834531038960621937457158326896448112718838744470042291866199716472431841422676269842224788973458828354694441038552745062279199390537086309139923218656586791056323676328063130638753942288195899611223790330246053569153283288663471382455183525282005158654179164658638775448577232314984397737196988850292487825186019728351783892872710680804636270711572535020090194003036346559073462284343587306263834173380224662833171985828429873337047922392583313924740882164881787691051820013440775573363054253400174452678364018559965585775728019829720126602613398522445141291111183731566981498068343348927820772903110334160425513909536243642402900229078791623764928349233639478089972322261382062500764487756497380147636175871816552263573862803982110238207648047554122989781084050929648859411653058244242450150440300337710826296945988948767752674251756230311926069673538855295227779620238548100196271752394449403890363827421078901584897551725327429525321615290471647188265743986701318542496689775780846891952787013288163001731423634668857070532712993631569335864867293337572949730579100485067234287890729627476919207993237879440791123021986596501684724934902731669508153189533973390871056159772943366207221232740268056222280118673103605693196517936324668047936838666295563990293453741868383418444743463063767308651622418432348633949385858334478929988524562648868098456160582566246780510407514658457854309436236474491746664732873348874739953796413515241518509713970962094405583703461823570386153461881132934955708135369041006502633471706705377244968150234723386792629662268293608292474564325006414664741636971106836159725214277424215726477653068407442567998983016668091013735290228471066446458494287561316351375337830492011140045416690812503326707466041477723082571280380738514883343287571895491910519582578018822099531578184065169196730638692074376892044624892940011613313211790166733261693249652456330163804517622392228336312226707775300258642699460764555281804327373651273422458983532654058842221665058650590806272505830445225120406231008617202894534255023480037051495404490886583523796918716324090007813617944346863783125820484461780151499800312485522995051988801876263570907790355484424918391470967994015869174964242204602908393870581270145065135255158020691429530153461667600250976203198364514269836039580252375082777630903336473456877793188150089960755042886162330504883722873462900258450287083030827174182675297184215719848777107782928111419205359316299490502275345672775222585874937903004953046408066836928723706956848228562034346267785439617873397957939922585097635250012125043937994157611787838552015023131318234552812381339738511073857673870869639249706981690759609927250058008416682672212981402809364519343596339189805153844056682429859646379926425248225133188737467321598186248652796656070844783512881036619178115120420078561911885186585691688834095892009763401936797339942478557371176651759245625936531438415626588740735438156063280114574657973901360321344758473513871547693191198483240452305361241523196101532798756828843861143089328889643552964752649459659030197013355672803924581136644347587190742485666218620522925670360202560324719328797994603460936609558133330566961364372523873325316207162958984056866304083512864430210785549516840210632874312132934191275891392014709592665033514825391880529157529701091425182761423383091990523021815231774714777868163942600888781958485725029570927793730920256576464882327810861365197353704881761333174241116225248201152066321457950880485243278689068617292886986306092154573999963093296929227221847963077867248423620108997141536599579872677749173226826991661822848905337310745162826543456213833601087118871280950936046422990865324163822827721417579594480337620384285729365743222790930551330369984900450226764046631629531624839388449773267788926116913169198499328461981916350935453769281487680408219459567516553975951495201005082256785389343955625903837746091257354294008836278035788672997922509395408847985613112946393612348720766511439306830140201609454013305981088477378456077290755317748504154428200364217745692241521442071765902084516989821657727343779508383641176253851328114449646802582663911463895934242131530439951099561023112648382591805478704176800555918293209729100883860663699698395792843935129205959959465135482764550833779556077452440366764337238103815932668560013234258598363495925989855430344953258363735905174697886999906830297061701409460259138175786673934557084903153079521065252131079311170168806012550434284879654279117908113960250678360502668793887522565746704283230224592873412742196121493442055099804318223570575665488519987946913565391177681612466485816507168947689528615398218312201960238856280615746176001065120808060150759633813939040628539435662616048579507917370189979039635720540689208351886009109126790546508627456005308134511952460330187452924131361434703876016883631469775824290668462999117877804260893347494349019328047149125526172844892828857402820408364275903216240409931587901313216670229134542144137676146475188623800404853950061162035895529822615042768979426538203880876066478461917495003468720625726797485577114160424363963772565108622381901132487980717878635626432897032489189243053027454156222229554211588114092326528477742266464318473190508637908234982244085405096588537082029750890065965780916990198418328579278924057615748968757374709405120218090905418417325704373637396447691445708432117153048239571911244104620675422395164946652087590262611336547113371160132655911136386569448993476060678649502473593191548293047033561707716741778541467830618459919944109277423902986915569800907270786422572155815315335022736235275770890498483378311827378938438572880254566313532977349313183720219891398016930477925624516753546172971925531509702696325720337274894500151287788739819830384709421407272442102140340839342947939676412053938729143057855959766110830921639268065967545660780341247709541433075851631443088869110513400844720218254794667553844973166405657843157320558572313656923646155831170375406315364818893589515619868037795577271976648839682027539626341483498851275337008780548853602365459965017689439495154270222997324519843753718726023726397537219969675993435793631933682782733002228097833786551401538973192142403062642528288450918232628974072574512465660402364779939003841088456455337771833399524358847322269813648260909436126763236664738409064510042121390074509110918357954331546509469865593646832210955280838979997067087842279272111381711485369802781597405233216889731807743336681184992791193777148681624517707011323121293739697766100733121529513649612074269230225588083879463489746990761082093337669206970417402448912785998788810006735469092868306831460126101348438210500639599312419699211524732610902992260707380966804880129741545352152375205881683512675815204808268149451749990639501893816172249017774655793879673006780687067117450724127877117786282605788393500680559654666371482805895562972978700776381341523687791821326926717163247631449270855450111894469837634884168710263234202554400433754753048858986485288877808899058842171362051677146809324326635665342516656720352067819463786584582233313838442013730454528485692647575272386709672744256094042515158038527054746342449129912906763164378102146327498342912162001142762103433738504448015542890896914866960681254494993018305389335913981810536260631412009952524504684225211125526792464027392811124021670660971382676031183307344279578862031507394698181525876550276843616967283918949277218237143656537436717724082501699195753094039528880971154657994863485228126116799283854253431601754529214140404801845248800412103162424790950764407987473916777140562373428911943261856228704823055413072654142005152450582603874085001644521434938101320441209995482072796465020263347479740665163423373598497867210779561145885460548141976852110159567401025042110747439864118058448570089324104918960294891094318306706203401053336055038237823752931433824697762616904291531213017252546431558316606566368584192837987252127026540207716997389812106643788753023032399221781275737732299125809800854617103215070247610898761770777100561744302680328180669955691287106240094058033582099602322168370371963226454405095585584059256229953061369668593619666516473329263686141688393499991096404861172156797396075814975825874954528221887403274057178812238902135991663644126950325821353614930373583001573420616638301482074330337043915571083613733479408594609737201353708356679106576316013356118769955066978391692445269560397345735159651627458912208797830273950422191649519618144550909738354599185636059330058261961560880799304214965058480391777782817383842430294324753499821948344008735079282581566757902474629634050088933765965602733981666605851840663666773087836040068026714682738747061433585080780565756724550405867827313848387530485171044048859827852430868347434071450145877431717428457403435942204759329958733521669020680687671369624446451142934885408645950402434544061656672060154988232565901545735526491887847613145787928554579798354435137918218362026228174907001448051590134275615104557571809302370712986624379511106364532854810767200317947928667389024192917469344756554166440899233665910334533817917139244744016148106380747398889025776359310008349755276393434542725656559023007992150988678071135370783887471316205739743323692731638736666478934259403567474643177190800471734850793692955638288325258921592874645516255100149081949217719101517949411089808252453128433755341705900157295863374275654504703526989362444705672724253627322915141315106865271673088098284244927315493753220760782333494484921192500606076654076152748542833224333159539892117663407287123343130764976222158333156956735875393040279223438992852281965146922906312657118432289629528668861742660995700068986477837905995470175817545760426000470182677365891868933656033386378140693058900216970464453366675069879519403551387398998030994474666440729320408269692607216304120435953930140653408127243312934730491324159704186575161892608979287203182691842660563690076116370780886101114551493434943486645705174913229793442243522559021185547430173705001362281595556813428462620564436349709448996011856511848554798224909654414647124848117184339962354213513887354967478336805806983073144990687094196548832089948620830533540896818511333959025081500905301307864285898431201516695343194031106245012582291256596479367203102531186730406596665083676709950329566216518302347722487903085816996431082892081408149039127691666401753265321199393012406159900386188164829249645053047423378506663986780077984607199944949854825132776001846337504539691978078378928623105143902896381437080980920752883780809849059944987467532400944638620522953531131139414361187305751006686254306979475564050894370706118421643294724092104547197717951845848544863185676930306343357671380562960719666875773415887118825030420219648032294859418723833189775401362548265844095075672293632175440072688964528933274959249808624191687564356202626066433452066468718802257957773761570324986490215079693571682122103952005653273433633250864324693537750142819617508614357528869764066970695703868439136075675828550350947439756675173951970329108785314525389830870144473192706733293391410196361220143542749485220186534534032547796413696325860135941568459223921920941804363914760013315742043025784823174831383191134865883494214365373096045422448074834955301320535219462808039727154780863387515447555121691260898304556375689234809395052683732631839083214023830711999927336224319323936673088570240143770864303990857110809153806324180601587444476902275009791756582132641227924311568825447251311941290671125825746096560250694652161132658837706847595240751648250596108150173827551358289409494033352472938713959099662358867857083275208129158321432286753192964957649537263405355794641892944149401147189689562890047130523349570122751720657503226222427688542034653354628535732741062377427492205599416524076718394240256830323353261570594662087469808954719095056677981258038934130261643359763397298447809363383353931521117066228882670163560403202455326449783685856042028210124483436666073829157955140932732944445650585534028519200755640196735811723917571078498766899666017884521009625318358744271971134356538151587566816432550647067804884641290231692823169318875231007794088369850917169600636987821466509714341854093845524700546307384781943485773799653811424876325082881352325513375338833516993573990864214213272909544256154148015214388581224061252339241836607846537634432759014386893162026957165178697462480777257893786933995983460801322478049240055707666776014762834212434247626160232741169579204457706390667082684976246158615318148020216012093770247783386077472714736444862155933787222148377361240930895767586107146653317819183988930675896682065202952446872921097513917918112321281572394664645503217827096851065765270413127011066139320709835273100512447336589925468208558660020580060729015861460523370302330514193835086998861866012292479501836472360208104388038158402997522923727174209700727856372948105377456928337977784380141937516540214518213755539984895671604083176345984657823455120865258751614393591566127644774626479845915340376899427211760450170941913450360236391903186893813921320194162325816821373822105771367561135216966005248342042418582051646021907015839313719569669725750349780938905301018494309934419596741423248886825736912735569032410622819037599758930835481423990859365542496233120703818321608150379154555601214863348534829500319819854982273046975343114904782518976422154848906007478566014340712056718890510908548368926930279512490458376714749768541885358480422815685550626063991027165789415508377713957910047599855036209638349381418677067656348307626777123811337625051027577635089125698378070423908919325298958426955443216864842143060291117264248313135283997412296072396889293806233550232089005126156194094527889626385922463832871030886931480664942115853479208025811276924926507503850612698039093616242787975272296550004474227718984956746144549336878873143751097253940077361570867471532560790550738252056104823879020210088302382842893874839811628538464601583750776035825820236391555869680207584717117271947924141324220818013282269305436843220647155471710778369319089721215792559433906838439638048176530452553602745471327245566998122432406829416310024715324260898154952072213659056429743055144451129065045899181400600862600789945591779010093712856701529248832361259495966462295818306339899864875743640854029976576410946427423188360162974681419127807693079093000431770355468343799272191223120433992777035133366268493249249677116721383024373093128273373291072096086979413160252263632927773012413523489016376169253283265981930085147247459054432146596773378514806696194735070990587390396832241858240319893732716160906307145460744460211425354987289045138825626510051065859469130757355091563256810240623959586508531784988608079529030695228169469326443073915153021675773212991313984198136830449360327385409549223141465802752491767213811396039002562340739341675413841739671872081113117574922594667581811493821251503298286698326253061912633484517374881733686269471795409679032391093224293309028692091701204134537867926343041892208462050789015424839554194463407490942732479672431947483231868343108374852325477627580420867180082201486872297235283976550002564949924464884028705124053902307216038793742114248798979850531793358592754056733733347731885016276982968989641934744230954794532574629721764104436595239440998093060302301165656290526505294556624418808288075753311414841143096018068501495221332565076757654327812317411054442048041294286928908219660244733292951188668274532453271958334049505177471082734217471239761120823288463880308244512224386973730447670245260532718233563612346398900451944915876975561198314125626500017262569164234414979707343572806125367447036220413148800100728944266938610902528250785062505836580432603809445233217788888383327899497555475995120987104210690670935287737112057453687716555914053163365236956311502117142630967170000471107887794635800112303038293822334518475236237394703391745366482019557961398888357061895296509346213402025660854108385671820274083665485561608133114019738268509608735219971894083761093406523596979126169050196175634932321468355535474663494201679268434176639035374923045785577739744624123174550945148864385613940057322387276751528587283562815582108681826898664850071520617995140142148303506728485575871001863006696904470889510368769911090524992546071773294634024034366132828833756998139072497138188297811132286123872711901775881814220283674945216881356365666402141111646097955848652790947495292141248729587764234423906214419795755691158800916198498626503722818422311070819725292198088761007236098773421714707770896233155353800153608827914402187515079106663733831725558321585469810191162872869425678250278773725663112304159086503175159636221529215128946804020874437681091113744959851633507170999726165957983287726415748048843498830522893740822811101291671090599149025688168345945622350276392212734043865533963839282762691646678340310840958559144858918604138089852545118506510233938367888650179691145483715467186636516707640301953819406891164930878343194860713103821266437618924630208310783457728053790621557177391691095545945617471550119907322926981638928526434717649936453337435884015111651311084601632769615136325966019615205930622122248417859846539979931360341357475011408518168276938590249580288131871114189651629469800774783524784212679676725044957081164540516209394070077456782493631702749462062676300205484480018239529478439747854890801072259623020551207295818759141998497390106868543670283126545463248817936433648339709055999094574787121007684139916670307465421755330198695853849506911347256772122402422410492276799194060259858416327233475147032350578729290142226034975944485688910331217284883879746992988001068589428401255343224197646935008244648040755980958613258178125914546105141425743632408678041646858219970417998704507388487098913559018164360493959076912094702062493245088376379423781684750979585832479724916946970632910648972335615210621315692210834512709474131063667720030413679645466781439625438058066574999239673754740321921460027535470115623039564395046511134239077132892754611643215986656236101846233460984540087332842505742853652139657128476371909177372627162834721137479553045993980053122487776078862183081967236560556741632301837738709572236390138559496110066017475175067540760728909820461613791867355402768641888654630105008138145091288123573782286364964445265432839665793018333594132835126135461413034050175990884449966042300170796075445566329206344328273447459906168442745364120205254018687566847140083482407139023174865619166081707603585469394761121242053258101905394793440702706426142221111627981763245355516869759698680125152328947184213710627655097336997592464648950057995838229880810704016620215542716721127738062505017748339614201702628966384459797674518135342229306031013800167379259577131407291861475081081136441006571801270817805844690649125766605454532433866423199141649700383630378328179558361195062122179025394065524861614406859677944419029671514912347361273009659685827091876760858181418958771139340437680741454091191493624190054543431054212803495572742445193106699664483204959815331920610720264708364452888604404972723655315912063721703400681739301890971141461451575281023658744441692429027221898266707911057426955587166240386789980012782662579010153490967546290970277955725810590847383002954046837028184671731131767181228991483167827855868216952289849783167525443613811562122203588509619745788909610978347283994603013246304633527105938583085921799259870084366787910882313249535984636417532918592061342125552806504534876466960110984622869944867809529015074199271527326857835545261365804440323287965319409350680210192193796245485240410148937493051937488430986175916835056126079748337430905539523031481095156861331432900838734452451400259271015726847197356239405294421161374993653380303073039358725162545930100213379693609547494902216837156679613217929256928015027883788913642196670125588478663011021071541893590303210457949776137803371730602476165627224491384962982997379351604743900938595497018034535276500522431327602511146591491096401420216733177928289822419545089947537199628726796398850850605144116023063744587136372541495378508942107992974770218833780918451914542457489303029536841987840656879193170528841054297569815161154394260277817944024689095868753073390090899363225099195075304754298303112276576208807386922987712982832311414998033033068624699486321454922564755474331205787782763665087442428600553797530451285298647958461564434030241351949404550906914298230227347186378616247301991653752478048659288175581063702476332090571166729329137407670968832238071828406699167110053083478236688420200622314269180624640044222455932754915702077179777095521445903823080049308129003030343975432850902219453487283624882761850022369223642796511008201355883919759710214702753866205522912575464193555199928992338950169459702155634556197503701001636453962110501311368588545348137549336562883888751315704380388451433299352301796156360144009758526632300332327030940238358502836949839767221084613146525813377362889324074780070392206955775817543091530029338830996888184912351626728369581155759051088169829482915689101302886354332769197772749293431534477230958110987997740593671530115215225882534069900418289800276340761424726724167952102853733658289310468512121157061058405024505521283191971020572683338216559242040271262701984171524591767874451738015509148767041742235840530781522427069380801319277459593311133044410642263583030821363145667747314049518075770552083401591389381997480468803742060479587298016908265019322603593373978829428509803291973298532567746234021212037485394493268909102676702423623791517896186738355986202351199572884592905577308555536784931083738858893711502143686082275027428679961957504870553308563672684776983596073683816417975762039095070537668482058517966560595669515677130288680747475938530105200660378734739028450786571250104846009414117787788531131219855469645354132968149646692570924834236751446392828095230186955967054835420912339028942676012943906903883496252524812674211600572034001803697410136084863227612310499939161385916602423861414126169805929087305047806496462129168945486376148935072924258460015242519184995627871626382233645240249079603783918117634773825027276344569912907583374238503007929474920409314611876748943942497614364917115907032920220751322003520565788714739215003668832609843106648094127606489485434883874668998394789722514435844783337235416963760840055920907282088668158669390603862583937795078070086110023995948964938694119556893151668943216368488141029875084857375133414830949463827166139941197927178006041792889657555167847168837325429793979333012001263072921989152873125945427916690533107448479980189714791913863465690276304209411979393268531869191455437011076218688320765698773738710689774082257910615203850772091456883675680823985152965264539995187712355612814317139263795867638732563108666289264968567064357201500987949775522305034724604326578741788082393658508643520865008257493619663767560858465447433842374442240053204575332243618671167428967940173151627066139945835035647951292174254582892584319277109800558899637691548778819335463421133270211641865305707715835672981476675711216480900294208065090920012765338375199287258227247610077462655612633491447432626293003498839221187314967262487698423591162206904658177419185494668933924511074343705626404393024060214757200891332736040718544365465741538355192295904584712878864676085350866313096242252761353860766400321310165423071683017025018770550408509778382206042811037421001913302178731281564225937332344759216500383390090296309415935979364741679931984353782269637786755064351713404734450092291162886954032984203883548733838152714175604676444771174186123355069100125928086545991351407472471953049564629567130301189874501489911220880646442522217682219437402394004688557455410287326694677101053780371075260330190718528911878930090154448894007884227746092887615070459633201611604327864816456259276062565753632846631756824032513870362328783375080841564558251454619318061187051092227071585682238452301666449320994909459033756465862818409944952564509160792420590022277874018988332332179725008943586681554631824004455542000634775596477654926504670614806295997128004915511767730018084628764410303221429017002661706864932418862013147054823329900211583199262378862846576912462703874915764577540953757710516470300628915136052770952900511128070937617838708320549906566516895295554144005217873378148296472033516718623380237692761465440653343424237759647462575889082857334921095837173768189998423111038325611575132259681666056228722682601542074273734179593358492717050045884462789682293875468010785397106318685239485116855760375586660047328323545216254832648196331819262948228975190069020402885867640335409878419978538522689709136485242671728663424324876625054553025587741230338578137265474910597930942685831825614213411043817351066335736192022401663721022851214970335720976436277213816198087837619128431588220895463028139566888351689234994160528657922310394961135029443173251211126015513829761459209772461162370660225625510393690716669187676349858150479069020241428696608202325018815842578592635569145162158946729387760440278322290614282078280821965318679680477843661974617633720377892064556693544555809889879494509758311013583555188466351667029194353737860812565881988941767376462586636167174878983803280924985830051241066953139335879186082978368109166957113819848908580293150967252175169472842539135259621566602663362921475926394330671552449486120412158172432068047271690189137337136141147303705997465815939183718488514901327191695571799196468230553831315141862945967588702121727247149650818099147754481314067486106415298334552893265661980615142995649683563230372853534193747607999021667372327557175364575799800319823713875936034874529048199060007416819996918084789388365754902229755030431355274960573010804028276353997491311589533912451653548092085422941718764672861776597389256367861018900146510580330730894078538969775818487789855270436091687947533195334085467338818436862592833517918818633248396248530395777547770915388691223214447964992793244146665118965670389816768212432698117163609176508533368679061782792218762691932913854925140347465278938515534674071465951601817846795204650556561664898593990551111382154579704254448393407549703225319707623453718289025454093863576634812767820968619610043063706689872191660348833469350437840144927588424366870070770521675146718756858675979744592236821965168021316500796321123782738894811674065468232100262756437566576817639091139980917181929507313619588376748712831199614277725119774698730560239293342361805798608914448345015940596333733686309066456809356781420349515682644454232059278511922198965229969591414799846379182764301486731112532447287062742205324928599761293385101939432183186653509422573101122707702687142530538240166665920192611199682227099559303569961439655131137620380127479545817749658748804250889800269904777468980556707537232046022359977111154805012926071975685441289567615201374439690749173944299073938839424198528749061085487839758390264569737688897450279332966203648669911456824813805917068743258212690433396351780383338059627001924503087379556215610496728994121793139686802747245698374873912699096446805874893591566152355926387198648049958533878312926314982853176056007512297604273380691604269599831540918850157867599178123586915733116427006298272995697964362846952217072972539844466190876190369086485231810894546954055068218015790276991037331296331557897401868470074849279200615380651960276007564322801519203168705299195421292143110886881591641049428214310512830817990650769847252501137997185821110278041886729937372096989935125088066844337196209022811269393397400702833603141651388766061913401912826054911320704984276335334416292235145215526316826447129528027523754380584046641760003812800305055868179873800176889416300239118836396374593785813703577948523854269415456963842133333205985873908538994810063120197302837389788787658592415023487852366284470471078096896181994617456474784274505920960448122061137599616505033330755815458995986476141928342046991825762639019090630353407923713609498365779818545528484680180803990394480456923904734701759147788281848976211496991471628642365986082888457465475361080875233781106232918525212583975824643790051908395600737237773063285919479644851602776515893045781051553740524169412408875823682279364207834901094021349845106456832862041103470800355704797308108446956807546284411662255505146331014108249513013675900849089840867151477539679364181436304398972275744517158775884151439035186756840483799600030274257499068274116894478697459333488803500328261501422867755380774190780086299965279806989309440500789339970005756219968366170119565575147898759743305268593445477166656095914390846136723788023799085081136290881149712560546615988934903987444298074808673971220012243720926672945856320765101370792430168511775780346412690980088409779295177526989366055870292872057639264162203876831089980698369039138135243331406363013627897741564910338941498973368485553483543011082525242356134254568998095585473950038691981793296680552532571940562621496908339802965064149186522684111314767250735823038992447932669699335245246515017882308219213592167659316764596565473063229104279842720351835050097307559178284322070555963033311709753083195487101885083368658601400287903599126522231764237315692345090411849475936185714833993392072651566992353246304284247621575376477521989369215917961601288920903599448896441191561876685648462818163142242111823455992700697548014789704182952817906868007590900217033853100840097699064066035725831600065123043004513356612488361258451862400750809285252865709609798864839456575451126521920810411971684074652666022521489028074212399489283532353303780867717619291951880901475364698898792113544979243515739346803850535256621743935129925815855464122718245355599592762609543255441474880145282522396786199506490555335620901087274905215513740327352074128441053553210955059695672923618454290263358687447127368154378712115249142669078088273574854848446034821251522283617388026375228458798543982829331318875975819170913045207671915438819427285196783436718694416044147602711985117713960925082302189248643768690441921868302979881602751861510179482790134324125249812826269027455694509690161827702425045938239125620612352404052990985951172039734375222961614555368143638269812456904623305424735160172388996176142654955371161599721946876171455986287631329837348260310811974080369120506444421521814235487680422515616134310976457154532582610110328038709837735284738017103529669516248164096550994865591637901162516671301047849634915600393352696780550217520112315119239609967703723717753296555740612547297841779703265479137390257905073031686508824889279142743150307897282261385361750259102692388210778862081957589844266089361957119566794452098236095797965008162485238441257204263028431624986929812034665727487639688169288464702570636177700517133653634607856203258689501128521266930306695132479885985916537715949440846547082039780104235695651452399261486205533349450609364128514451142374294706339273672062019822825106239246624288703683419020435896453968678099048322704164121514075571601692130568917429483720612233802454921020409857604383318666065834997239774493021979252645022732196561920072250129191870899201870737333037361255500467639404081588798146394205464833422596950877203339124290508507571911552839337672502523787723845905859979075766358242770855143313667163204026101021410306306827584444677458674393590823635012050153788703749004093119808901392541053150791497763097556051182160832944060466199688775759251013967675052342120262526705460372933106029903918102776229484948559406701172214830136991912048077280894745055791561979074284158158514213887935446253052695104874396142099642991294478811681541227986856072547355004635678706857081406644843661500912405739772258338462220261630262476125085390226255896881655857113846127451240867754471066889639570695635302095608519118978189500073109157004775176394300954428205543901993556186169602841925862297944978413346411911027587658433656685831108553119242523053415330129815231087032955927016224051423409207286391901877568757991518992727636774841193854974553563055843745913363230588457790355801546489961260532961147315995746870598323395889504323226324827452968267036720589352443763654017624696129617714614868930228332961946289115852561305385515266356795664748598378531651951501070372351686438666137441066552716735535595113218304421938704461128645263715920020911911242300240184950656921709673665686848540237547028853313849177854748234098832509978927707915008169080631961224911991410087614572381507123526259864918300417098458326765238647588392935405199828431621627331422674018211132493424312330596391501889149421155043886901975491088792765893335245909805468703062496062166738263528222215339621715530353407887008236678458454143776479781349335740293518968795778141920140759334420258345212366434768076293072083089867460712943180384001082237842765126307097715135849836759456496598076225733914245399441790710980657018750305061850565677637610390406172617027584571273533548320995164142507709229512023333144824745098168475117168590880467265153243435808463323492551144503225406601730494941606939527118949648761391581460383334569553068040642473271920811453663769204854460322607312578335658814651304592668179895037209673364747848909657341670442335316029765413166937183638940365948858932637207826994041771463415385550134543045985867360839132903343863523361403409462023108762143044386977975005257834364182580079599383527674961455612573770499765510442695208530152596836191833809296861952970555335096620352375845990692982280435069534438633953125820188667135339186304325042517071633324548353127316846492528023938233949950564499766877664565428670944754802871255204719623937835747447853428540851910636319760798080090537428958676628036130632474495609715215149960804317093909113218678322091221384824225529551943892615772084930212467743423626018072138745176573543687494123999223126841528705451938825686158767571793252702201704030050073353032278760825333876880193132664857400233784578404066822738741314059812312233623905158661452567898690138331112499683423104587266247198476904448569131912477451534487826983971306097108830917701472454454363585755978070557062570727967813115988676416446319088647499435147914597694822028315358078337198938389199165259151469199806993571676320043934072014666463028051647364514630115674943409849442399188476316225762048581335094188308884192041362526431762371489131417949271071261730962655636413164572833818870772744841514607285135351302491911217650863921590917847669550719213426074529904653075648867295020215192544623419745139798916886271847793569371748494620103836823287034971121682026697288985931620879045534353159249730077094550645993966983420319494855393422477045178384945871866314978253447645831666303357747115894000288034283103205464023957821143680993835297366412804650206969303004260017570637417552548745515630932410448569445999025336289258735371107164418896114079814330447780748151079033661099519130426627947773469192903433389432397350931485983326096080757930111534007380338903481825930182858469512001778673751199852961931813879693736787035916737889477357277006964468236807319554747885421784545463108230112758206003467269042906710848284775490416954648473891421934991076520501568624431384492041048459923367856210239175800381175370221527835329684960149528088955687014338891872232375028483731893639361181095972417332078289518110065594190521030096908518671068840168116175057164964913792893526473303770400117680945457735490909507091182299617958231973396244447140582692387588907787779147984929437014220327020972253597315174270124209414454485500492713844320250236658445407716965862905585552548333763956490187385503976046859960838033354960726773710763876379503843194924065561122759051922164832346874751801023369867187919719161289714027715983741489902127564417382151163255465761342413254806028473576751364580367661170981476772086315828481500565484235762812219166731031907422713498490495038390031794299598953240677092958871940297497522654374029450815155392074785336925987254147060501416840995935961089581043599589779096368082292227555142310993419249834409745541763671199275538395350409271513580328352119262809878483998181455888728483176223348099957020267711037439757043831120307387213121356084721227488796752986940308211780178010278849526896919820495211892401097905380988012189878325314981436015498686277216682764285612481977016350459215900392527869787839447883941304007089734266861226114172382289700717907683681112870856310300997266371875393709521302812842748233521177975175919224346166957930693449364088784108326246581239718706662815373099871680351652403302423668983021834414485982890924019370792206047985091759979282785308200166202891457952312023960190997683024727262808032242465589707812280340625766981146031803311818942743981657399902606968704765336756683622055868947759090884273259270624864344484892980176327460445372651612935370287111764423305705404556406021185806717401237514450745964513424306248469381950222070266027844300555337635930192376136565144101728493076988777173142944481517507286413177931207474978521061198174143044277631556302828138479147230809004300100634097304774566367885451823162558195700222162502597771249171971604402234695689001841449356948940803934168703405569853819517145616424392674866503908259588346438034432536549871559575847860887895526302847130209203963172264416686415913844387296025584045885992426227722409324878136402651031710439308713391598933608143869505542196630193620150159093855205820511687123943187639373584901079848959447550115890871215206958932375544989415068696237733406267655377587670528512939467380317025837279625001669333173733098068724919840075819644224671830666708225793691023572733286125354189998547915380233312343256406174327036629168825002045933556740447077889956056685333858865091324111940404293997410542321102728861687889099223571472144330068251416848980583993617669809576102672385459237851884815139554505086723048891846582808377941151964970961369541111475417011637495440707412066119335501282181099816945558493267980996537549294789406678301393228149474523087605047922724004850108433002469853863289188946267391005412604659391274892654961524793243549109985560864283802087450934928965425239492398439094210679053254304108714755848660538604559865576132812534521597398153875500667170036896293513974374931555808363387312492229142184740092677164700095275565272372112154552771740081664624034360863068217412079400277405483152351532877514879274237712926231793890313297416475148125040219497333835147998093329338520705861884686192748539846792528233806186694699622028205536140615487351734178970826930530140587926480704160085624941013602909377356245258960523150290004964951029409778401101718112601093402548235634907650855158019685450620594974083032992152905161310920798021136093706032753374410683362585399266522244905383228241761481199965244144805575143578406240864894701379578035750556893492867577648769130866485226920742885355473325713779416961740450805466634590206526957864837642104801095015120321013798983047320920972733449782949136255454947001277656963797757979877426285911695614451560112281917254490883383732341843932281218449476688363632843430199784532998155746520088536604244107908740887340223247054108362066879610523300738128218778714614524164497512891116915654374135401899744555363168501129873062346777582593632479588729234310188829831139333555314262565750276059104916192371370212285783457462722603135296677662654622709248752496697872189880324603347736321797683819265781794622845476161940629047683804933129619815118444051051946226338479542683137754181294502800517985200843953607795832867750747812122993428693659266484123952462102099673199383609599031816441485461802622692730831329210088035466171191992262145014221013466407149228632498926177033017498713089814865556015517121165875488559971674763342866417106015190626545036954320117331781379017210266719336912614542670284029980955445787636951558853926159467532767089545125050438484571396808320618754624242303690943134171894270900801859132198371644464386082235742321385609369073017591225482716247750757065879217635838454791816435436041717980223846654273479154308568467969138546670210337028283940598151256499275373269132461276329167787205928625033911300587136456253567576403775514569445717803885308285182903290885395735423781751615857339665524406097763428342994322156445525152329424805767660941016633767505143080945772012345236143700827691553784157988750105385492588967193388040532159580024995401831910676328932480401444704134289106892255246076817355731582896041413706745146420028717644735695411760269154133347695710329133516106095036699645637507002478037812884542296647675576768760950108663097740758645426624100178573471555299312853871369766592791540703969076985485126697997229253799633681051374980774317342979311474373640396165354784886189940398709350677790199255105848337362953262223265718133062016509408329679951554984894878821842575939544316411807821541459214297741580310222388367501740666766480594425934496524832229184626731552592470699482769801545685590474360249958250625972391336152567110426060094026785363870039307499724201781642800484017153492596388342137267529503126592339373984650352377175471634074586287520543278480052227866699704192600411688879099917434703018726097523786801122733954097414496446239129711492310458169675751319321120494058376569939130234665691190319923334141879367698964436649876874045610325102799808954876499901356984086139926701448990776632753691421434023654610158983565726658977408251128631265182513294453035288946253902461984978474098906427123805411656352369450572653261433596096866811967555827236302058552694221518169009157240112415453176028247361893488130014913362909436069426356840522498840032215027282737153842453671428904853248552537581287800794314706702862255982049801441975289316523648828237367832557197998194513252020019161186220355283647756070486341089617413704121305002515003521779143524742080908830989823947927824135007327769445652770926713600151768749039287328125960982468322121494591552491785465995390632769420584314661731837755620553283418798772137521006296203369207552148726261629743872888743139934141142829732585444990873424114925846014462036382547202727836108158501789098657600997380500537939112322757812262723111259586854375294269341285298846784849281578548729435532953272551675595059403689112244129533852863682539481371588309550298537287161885987249903038839821403907771659527939096050923801987602611121880499906680990144059735365040377319661569053913731969035936831470087897882829570958546873317326887150416575508286041767911546121823504388217135186026550486423481432484768052766991679488478465663738215893997651023424430747380833567109681038019717955449858115275926091547907963700141178757437810885425789902134338691161483729630907356682185757182461784349925873415970502918744129503261847999299487607437799688791068503700375362457098587916393801151120915769725430387277173506944626847670136186824280022182849179345455157514750460709259074456104547304344073877453235470070607883713783991591825090152774268488001570228037854631496657607458009935720559471376977844639732911043088425715797967134343338719166044591830207902157819495673011814040057144446321269916237540098448802293975797723522877441000586388417872973784721665450120587866064506282762662493742651904019427748625642371568013332168175633709937394589979226571844411760019574237581746472187155271022204449688519106455932458875527501543387043753211584808566639328559701901926469745282343734215367932058447072928926607085552036470473347396066403155328185165456291766187458757226368482973601550409154647871913988574869950449748206418308362401868763401606167841230626009890415353030697367541729650425812838265864987615133070884107620862664482278209642970414539750003424044553171014282185614531891074423544560000021093704856870134551017741781977398819501565488090230773100474498645961696696555439297654088135580032636204505091404867767708251480370139441867189850599673407592375242240676955486900797966930486620760783660980461233804615769176914675376477512211671944345532873237209592292980935278780967018680295983348370628161946547656635011738754463463399370331955836590446651518301387394961689309232511854781369572599279575238151853939326857776070966695941803325865681728271132056659580123707464256325952880697576337708815717765228102597419365117792814757773025362448732146196501473331154057991561961911299256176729160292099015588807432868059942445810825604907169823873535808104471965452365396641035253159872665469880830843943931188118656252444148142539274713431655507530361809269322586175323435447302487331557631907244822104927844029284096396541350727694130957630808496870612044052623708257041161024015316476697225584003365587301520172402857706485153360550629737945720701755021408708161870622996169566017771847221247842095074494481782224183404975934246807278363103735721887426274206653307069233504711167751403094127550743922936660396121488036278864334320749549891284533726972710783942842185131086533451722176536315509004085754741533652188342441952253127223345855674812963325139243190718403808232957134320841579199180042847666907291227824196522344284096441253418772442266015653909290364082350561999912447750259838828896497080708315578892858604347420578051987170691264805731391599589754010792932591991814261663265166457157207332287535407976747329886607416110566117521623133848127606509626840161607193810541190792800344394072990092793558124873572695953371771867320611858939249813852004707781281908042373541840080987242625225410857420165275867808854326945039219158444964191376434575455927810716710272155805347974391785996155976416583309896963773641123946264333483876482107408119875699874077073674426972259045756192042292747365748002957599507533649288806010701067932707584868053463312600858230491303674684577961563412966188347097030765718749572853692945535868018324425966367104545211844706845198456019979261877977295712698971753240446032574736388182099260262596325056572837474320299808866574831241980567702485586865811836260700569467762546116648610120365841778965286089444277994101363515065721626429465182566634863681853768315113367688249157143715852960104104070850399966472599394826091891232311226013177020338097971925085791815789586674979890302172184246899470816154480663002667814334711629165864718603304492755534690162693261190375838185337245277027320319904433425656179591290999807861441813189381979414159761968231455134594122003863835574815190110239637298652644596966744468994806936468943605994588890574821258315220185616501553502991517309069971866782203578350497889918236769723137591843803042522017682837656132589789053585048291753823053188890577274234271079576279400088418583339393766592893095910605767066508402817533196467222135950088405133020760232121900044983194731812494814021539139679217558560409081521044912943888318778898372313283896625155124749548771790792165326339697700738046947320562673558471038962490702526320031419676235385416062492813783129802211435001658800565472811795043111802398713551288897375535448579167657573729328222430393688368529676691667010323843326732960084402203059334158751400027876674699071724399421903892828094499169312574521483884820484425549212750468996165401346360443611437479286058749816925739935132745691595450438962172531971047306805726192271198374121752061306729598785160176506580151430267925560177759986946214361671883011029635979958696397074224601217543614001409904481532380243255362432947748965965207844903384739556478085946902171023845957488604146780697641062860719953917737378883428250506157821281926174089790807239798073444172125278469852999380879601112721007094255076074385434306080725992703867006299449605600079908031894318399507697746365194924427190259926844533484338236178161464992551311747550800957139771370376960137967221506977942654616117386168562394865041286483153297894448290228264524355116967975876401917331467174589342680567357638175080388246090972656442877661323106235577193491448099899709110339908763088660264094888113572872221117422621274861007888891142410336193328551675028128091790873476602144014151298760007505457823067163385689211048295475747084852321842747833147557845358551647418667451879783280302886620556920171040696710630828084033160749283514137538271411645884086074539808899144033152035463948925827165614792550804436363230854375027772242108389025894283599749124596543698343045475713006156857637900932708176926930578399792035103711417790260335010136689886315753710872911475050916971778209206219267808020731146914073197753726795993578480741471007644686799453463639305400452434707939003724237078958266131402625551685832858525123743006015138398970704768225153985684097310957072124282560815238117316261025583651527814762500380147349958891789730490676852122531619281608499648714636955019607071139630864877918643781384720233538027491633944243760705457984912894186672468323954213242965838430735654449349680858508479505869811209991864207250410653754407898097439567615871147272313984989375152232665449331594007133124165069280573613354277187331080098062561922431421101308723515629054933517590670625103789593704763451896892791267540997180481472254752504876512639428819778450903201372192208895063675395506347431925383282620016939173877182742720122634087246777754931324115335438219186329121876259908982036674832817324372974765570345914582583183174662052089856616109512978134957100311151649404772078736810176902507718130295639602162513493838828164688391136228578339125312434731560804101597342244309997588960277972029001521798349915609046776423612670404669391178689251604384320127237462286595273064589659237118169887509835227185676962825771697167774139447840448927151680399002741396589680992072048649862545521110175361429415349145435076934095429975793445737633029755211178901438198848530742864675879029463662821354049738020463430810949830393273103208311306770371423640829783560856052489397793087808516713501796626322814259365098535761917444335928150345821610543463626307956058036750507244482541213023049837843096514790120273504035297036647018902388030963553995648350596009778861950996488917348859175555560238023191287647991358281967916317449988177110549853680031674193010381376578894918544256124581988801006976030155070468420345037715186442723642418723220524650922134158119665843316167522982253669168742359270048848138112383362726368343380992618331190757976009834585903407809922306680836214475356708221332614889283240905204310671190462868967039024992146058801512651437546999634287145256671084420358260760672457579011380257498429852898413136649946667528110612007755483357644187404789786644655176766139748101211426739322690052475172259466387514140295451387245171039453434134251702576301304429337791259624370334613942346879678399715071697967234040960476181739076797095197794945563652990510386076078543052331535643502883346751133111523876449549798816945898749054418829375203617750729642030709332059737147083905653987171616356710713388028125257568478537072445460638824048691368608020087189890231398901319364431022464320234349858035742707997078442712659117487271689847241241922587276311553399585665665743211123788350900317986926207567855649837875736488192323683457414843313588611755745235859018564608939252472574893621965811874207614850002955847919727414673112722060155216613475752826292995645919380919736300326104498509157573539142949817565045970028116617387209342401667941575656783208255138471978535382808464094198451133502182302667434749953708565482077313301979289674506166049633680935583350372179403160237429235953279684838198172012904722112176930605106622173266600750673713775619788607623286827300612572558263100614235471320891700646374409138326828649934204993460688726492023125250126423407851514424534643693671392880744151965007344926936773477951202248776152274048410031052010757252155480786765765923064866963429151194172214688883686760063632182903629375300726120612110316271530830222860454504462536248082519919339186313016013484383149237575282966546460740212973360971454885177921465933056569494337016109816082668902852219582452697145148460891962270838382376213861468804903773393191350237850728297403316567586912711131211645627200990767975067171681535801458115201118954533948089879956949115384806617043524610734554529565429923819872042070929641036834170736069960424018060516621388764510546617359808849039816050411165249373894308551407365316734872867154895190617276365383570312801016651046588259664095933861006816015424991190945661740578290153277340136758836984274067130117945507948022180738197746502908329709728081684258279079984098237739678263272096698516133099283702741935130890606161674267371219466052090446008666667300416793063522965537847304438926869108847918317062274409627010492168139420858307163991588813832843637808056931229194209336438344766763896540934047874196923813915909605938584706618373715559410268270807571382743074565006667751264429538644078414172165958589195113361950466536008334491821672931906207176974500948256181124477133173253300666520972619473373130983278228571944681674684554219121898262920656308498982255994943804860889110669861856723613928966796268077942274823893610113898186769207395756292569877568069847225909961340308669275580466047640944320295657401316381828508730730580256932059941786220320310346755049988271703026486273544415727593297402639490096084836319741232619171367904054294936063000371320356178856198462827250683960810222107924068653411516114673056633852693600992101580818464360256779130946655338796267202073585508485415508706572397049694580667721192852831111460753664154888384045489861271056456625231443038606680306060042974199532018186562255126956521432377441423750038206478535325163938879721194602554874530280655726501563798795305679610773460561922240370485414833219853148942267281086145994530020116850773980253252804737528473226856334187485521230946313039451963232905103339564440127144962523613063469831505103187412137391879443554755656907880168145117791772163975681056486677615204905183315590555242754531742559792574235021373313436563972016895644419987596619837901878640457914500598305641934090505374284183887882423584396641385014818920273104141605689440749407126648404768701669693672475672629081836547148979863687078170218083434146529398992667296260759433788741491683434169756412415670668540923090447972129896173286823294604038306803916156665416031212170582033157903355552500307654653269716077887623259045850664241650631326126131577595704913147511725355877649529105740485512682056731037474232196621861534302572480936951535815912491296507286662298520653301347775652457964208283398900944113442514835941659117781209173936644571190367456029623617633131561702111567920724424860305609438343873863770741271800419344736845204196484866447129565671314998637021506979622942633922044014454978635396367904359799457947014857502369499657571618611257825981038577495435354445532376376892862261921903477052354087036838495774749959579621176733409403392947707968162792567214061100598898882195815170029152469583860907898519315291353146983263427345641007208334429839133852588293108374202504498303090520184571124788406627169097903465269963597002335583278492386268893929870166093242064513571535778527860152997541067760455178156610569358116247032289027366223081260036578791900680366376927650514808624849299640718574586033383091244811890413154512234159890093850283921381791716466139408176443756780421450630990443931289050505162193686258710372924662875706072687926289602411845319488481273839776196361149313006048020801796005411674720081119690833970584452588584098297040260543301112217665052838598845415200823825408808095831602808907052966749861164573696190219549254175854231359055436839015040193195027701424191721039271511042138144319099088122889401933853424757302475972826198996668479174961905991500815493313538864962197183772763732859616547174857998990367042405396595186743520879087183730777898553443396802566195004401967759676028801279292168410056330573180612028644077457172428717423957938765463638340509834768139642901820706742329045788479795800459501564251211315720182930499421183240877753741133356648705056504029293557937967479945246535712312453379930473716764071734212133694037960832317631495143963582808617255618289631113448854548772451811285416309152784407230925870469608178973515735378558333984274958030406922105510107075130822569878676649247822780195047221657245775224375980219580003947578854735684979179565699650711218163071763909887150372920534928710249523632748460044954504587686715849415652777512600586237666025141232288442030989031418383709373257451972314913110270026999306959234308036860633756804159659324199859947141510786159053231272589518878503580929157865168569180285884210901138376724148217382688214536221931969537902322599014816069815620281071133407995078459692435266246985378228948478036059551754863926596025080520001480658537315383551165582581001180253647108565078553582345368492528264084506127490887014241199146007817332191266494406008629555099197252910494367997629082979547439358062013905355371759961699452696112981309349754470927454592739818658630601093055690954971980648534717702320983606769218462591815676959924509693644829257071570123924370540557292086206994339976154729909296364417524959180357204122190694196725818837838055284153616078311461316172880008593246144424381703380518991956546158668815743342785087653315257182172356761201682445793983185964632704916909475250324718031687616505814810504619172337672073967312615356013017127150557493889287700755189244519185471699745795836847636942435578928529536001486688626300318408476095870011050875654491480252166491704756103129620684622912325848144669021247263651619472351775653712777331614015988820053022792764785049564699913459054371578987251402308346053208798555958680947719751800771289991645780094801400747942059804176469289000266382426090835248306310626305028929749105622724382655671765492916076865623281182758175376869109180196079553271150296186917947582729880811267392594678580890212960028515592047159000568071756663782383457911620801366268371760517556035165152193129508537580469649046100262989836970807395825718298310722176423250053773321614506619606104754813467984824444925418907569406583986725666920289870850492054601149147415810290275785616477789614305085123751015130082948727090879893086446691549987784589319245362972248147203134590336694608215428708421025539433689969048111332510199784253551134437829000246519622512349081286529944498332315566030117512677967383910857568519908342887916445042545994679413720992502007156840861656713570601456601689900911241742390598876808361660142871766770256842022064653648907560219748753061352087842032497510182767999235481669630893197986832018678337702335116405955319800961234210638784537452803468271116315332948260841862223308811322736616147213039839602697229577834164428242384293877943232038655608843012488377856512792295084753231789559161730988086696384325130278823525557923773075453160552451697366799944850446567664060494184342327830712962318281625944637123862949519243108262647267480651844455691111641798242724671449475144080196820738301228114509867830821322138211033171822405898911670977555335878520612472156302098189810783221501289270950765268386388655100978303241196939719562331003667268928822099983035895266890398250493132975461920984395847326524661471171950857431333483026379995119416433464059497395144517040414212920834841523074305520836848934391994869036055106198354512981095383999864852635414501233308299025245113030051997587586743662682927172609647744858129181463371337134198905877582847080587245728080422947503208965557765873604987797740067429466578378197002341198334932197845169088754153897232276968593472951388023550558532142431783418939838057776834820474061644584785147443017227199318861989598719733864300024325510349398909666627846188460350349118162813209816418905326614929450437820249732343281243092375607168769300049372425525299554770756172069478750161748900206935860271316338157673122704945574152515930364406468158763735454845356950941805250513613359384388244876425446564320031063999679525065995599362367996353531482990603280944378468993151567852965191890189983469298269019803615341158786883150681517761959834618808506146126303040833460899443110065274484599667299740549355216205077041512783457199176316547418789591768778439854329768614764323011538161063024811516161170573916491357298004301234444671197495484003880252750261406446936664115175048908222528247087891208273569818065126209774156705912801871010779522037808574560228715305853032013009423379898142566078612574228377376903452335912740178035137696769497615163029062968734980442515693458118098472482773975689655070846443725059056432726941616733327411583355129030538988235525896590886768754017884372321636128040895017529554046484240674333554641354322401536664446719592777115880607212598239558938801491962243840575473868478687193081746863670739754992254722853768984817939111584003641826639527189894322314192340057356661459827114957910541796924138523853144369112807694455100247939524934065681616050248007393209256224546413743962110284135686902880070954349287703320883612831605275923461625292538753261532574244170613783313456793745743934112432746569658933091635610503243249040993776931894229828546175647275346976033123491446381081357664183878476345724041758403453362732978846097999664443699316116554890447953974660160586500338366459114962287096645872546651074154654862304892783299885374585274458210500644637744103499047907920733849467432146737427376414474567372582748700202144590094477250549159216086222541673754625492976824377354915044129325460671228810563492839335595935964780833592412051018859861794022570672135306501093471621347910602236807371607348601661530156387575069981439569788639818287754715737969426025336577553247142063814101682163331881580836823403752708899961184831296780264324491733162292723689492814916411616110213010789235524207999423378118628643651783268544297631696717520553811097832353810261647506255562900683907555839677058904596735643408759711714415470201560009487345139736914178075503778096581613464498103173471396397559722435878357261875524504240886648327506666817782946503527381575393436429184572025208790760445300536270666138527132395081966534101357573204336029813983379174690791540729248334951648734071917643598641381887772556058858219866863363625935491494692860920655694886078735017373527436750964915450263578341653360606338426476049143168930344311363527348182625938373552759651219220274405446340110774127850420197182437255220076216972464170181990969138438910943231995514351552871755904135300338553967872993364239492388500021198140540876253242030295249306749731595874369052983111346155036615076473601872559277318320541225391238036806002181949631914871100979572668375635665529418430261515348052554436887588859612671392396260481969619816099878141388606369361924968097379732690314245698584303291345552725303058160855680532100427328712236493625603037983670853244183666055865793048469778047898623257025107403329666624219370149192565206985136960950129098413164532477019003936025118359414412607338869715429525445705370481846058607939824417126645094528693630122668902716281303135758600624812051863768548024570437717858499084236018205023189519845617328868622757082052597102028877817334940089324467455244615950338143868286520148088592965216359969909982918090592023047023356871255621894960392556708304638309535321682256344190460811672713715601184925126444582911575352074695742963149104066484861407957927694861877569120856945826074909318646667684276535422199866621726701452822503468029006590797720207427693990318520496455710261714191951008864173873025097013329997924673387307279766103279868190560219261533989525306992821710627681980211879074513890054377704358261991074702351263872766367969966767931403129679164180583183415198313758438283568268155539800495745163461458665005193899534149410689688105507493867074150066004840952508810628433400665639679439616034182412442651711478143680436854580812898266789122247251092020583889509855248028402885923334122274488859178905044325203097861475448575965465742263117130934546678602728587940483211631274851182064987255340447141681077797191728273551221656456732961056010539435984550006849103382448667634447592643332941253385234452764096691361570924434982161483401552913495528806860740756263678147282982454952814263070554028616051530393838759751469117467056513453385918630364699821691015081242968513182629672856000544390321598000156028597882061355175563155069650453629474067310951079829357910381220383154998136391881071227338291780367370216663846104695009366187922472431605257178951196436208112248380980498202753769430213173259677913144234998593611082398316620613136109604972401053376975867643639243325144911390367238934724230792047716537023597914704786468980176491691275415330699667841808081585491569277868687404612191178511132194930039485869489237909233312698391714605868355236909596911759458942215461921811623302723605449376920916166969620653339645291575540016298058305793356090642683892663295657649849244316403162513340211187160431158843596210003848160948267108991189381851711431802795720832551959416467259802418546386693653341024118680558871676982435761952479912015456660968026799693010596570089220454104055792371037742461280934917631900177478894237758083258318232694706884507316548641100213341989970764398330910653678961402516145309588417610115896532480011544645776643601061351046446317689101903148073301072767016617073805397019208923187571779479363516797905234634505510332182843728707933933906078905576137563402795476854761713623909426953692263314913481756431288328916141071805176395360166306063985664420902555871109827691719919096010712719664361086361037906931623982955966874109576443105387605642974037207150657883391709338936060627092001255323241643721416722656721197825294846315958456756430671924750915488202742251564664023291543000577850328146986975379127808319221983559225122774520266420369911616360903868870105650988109009849432492847802129602366351931001999045666446592993930836289494509188553265878041264581712351702617794759711760475329785342641420379779244521872411247793724213801049523753185657238174249631676663547792798151231254463295514311725857264428476110906303726800801411179449967720626178424060004936304527377491213460506809533824016143277941835000014266393151812048402880463757860759159167912481864860606235797710533668844644783049442346030482902994754237387310041613039383549573246660967366261077620329618419900200600763037371282662698772091361666451619226016131498540569547112653914449639948246042745912774834962771538353367355155834104859158961217219200453465650735142220157118489689491533537651626742674959254390086658508148796422696745719149406845800235502866474108944172660221939505074726847466969821431387194232380915442781537273942840024217218081250500905768184179639593496933460405520292642948438805489398700554979868778540699617587108574762738535914724338063250048477695119013609401009154682166666279227635626154544627356340984025383711372808989991914836592968920610609662325530270070773254597856084118808270882520711386512162143400223083239831671350576459466273932736394995311118046731354528568014703963676964165407514328091802452966487735550098857329963995053969148807885254081956993344825288983161581947655334174229923162114676820192442435195664186104253194759866465065125005182766322176148303378443033430068127291085560561737139374918989567525839108985160236492225954361084507653318017824820648627338971256809177773960369153444027967949900222014592564631761596510777653296416937933833731522195766712326221632812954614371409163881600085500528977754886777257406346270821835368690014079067338744014021060004037186272893085443217898152963861086783652251950936723776158120303588453142214646437214547660624428141935779475903122501449269043994622003375938493188812995883255787502302250595573130287202119569131168193063063901857829362448935925969343038983598930020950145963958315184675637626871792198743000927979047867522813884214062372850361819590707586075209505724946429057146730397263921826853340839709174802706835984600201856437727234173290071960745859500711925056621297613715566294253077172462629986645057886920506838710203171111542584890543703013630847285336933222518778550264976289387166149183347411102509868478606973578955968690835152877682669822189495990122343735179657116927533561820983973850774519178490512368545260273548783483801829426130146427689473194004136432307571658856351130364604149706440170895448387780983022587604329274027900995185985423663753287781484634645966147884674582930468564325655194475046757478384171139508219294892535413572030106492627872232823950985689966230171267598605038502633374907748959948817257900940321603963045296847959607009634985284382929785457862843522105953780360443786481710738546793387694687855851618352022912467666339050340751594038716932353121549871626339320448477057224913961173330545888931189843005448894170601783620036869689324005610261668453168943375080029616714578826419416025344503068491617598290681851054254872525200368357971178232175714198563693165479952900713968714703146448878212171339033909070729049147591488554582688479321709962235216903967869352590128527097627409497270373865876405891703959358927880188876417227669784763525079771758208022032217486381284024557174554138648610536732484015345202647943493669999526229717858881338292741299932367906488921978403560764679653479305429141168354829840779559270306952299043309593929522186373639441592192887247071878148800117533819665435234396537151792045122915028512781716118879714344775617074276749108308777613879003096013267483769738218218637601290344188631303593290868009019062253582747080096585475326881494958836362471176117994280864238835306366920444736771905266368826570560929497819365595589820330062939426246374647251154513929040395007320597488096439867657551472084067045241279985210544753567685975809357731867381522530510105210322641823933042258491992054734909758367692822153558551716183161886515099742299563779131182771805179631838799849537396400199979554772027139181315219393676698401904419235848819424885469049378834250885063874572617764107039639944109553132918289086490458069208293087819831973958022843564130237252603820641125745135051243277852985335282199363353658528534648501566640175570885244389453613417018462810988950651421180006112993323019615332476312287677265369119365075654266081051215018159170175008509374861387752170170852354685489730548030175284695812781328097039046423761675040418831757963650767581141807852755001215109351865443693684832127711617876429581970619845560317006074020091981842465800737373516632550219575659160287672589300804323366064037369353280290634577566341780306536628679721351822438394597613718148213359634641738485856649515184857189949904016871602460066793314839620609212218969144506339284133429860310784782116524074861097143988619549696853039692558942331535231079465427471588218103049643449763502568377411306107737342695851925269161627938728298477194864306033279136750566069397560330321669812680941357444130241197491568997070214721967930759497787490367496834932548643854695851614282701455777280725569634146118079290186007831971838854272902465484104128171230059356436642088906279079031076217887229422432503673127333542287338978857810885231042641357345117069603404052302062326829649384338593614667067691961587061890071418116092398587871854846504654666359402925901724244486388960866401415092899317687289449452905470588169422695611409520022419912503579768394779770038937094515649671891339340520676954779881362402375107550241667718137972073587989123718848947138469890320541461366186403154186127109013835477067427501354747121576066345354787039790605582921275567200694094398985362698252000698446414219520750829385069847507335115337788530238386741646139626173243221169200321415570959702551862283405275731325569392870245172577510268078179197935140595777300123808309217864942513307076449567739721580008797280440584906334628585361035054823984081591470063405947008206384484109984885145415274706974192611153903639571343682897863565114399466329561819015012855841343238019467956452221000089318380146067296235061491836424723858990932107255363910549413009659992186338198902054882307184395837569041648330540408583149443225402582942645313216965378444819663205504383400202623553585262644015596386523598708504764827728005499549936388081520607587372364126452628126161501749102957734093472851627595826326428054944400139849558190331064276381465552559224898205328012496324578323997844815266512672392708324080534203794824686880090167654898341280364497139027699362430985609388617902246683708767723488215185447526020216480791209508121109825754067827715500622771659384320306726015920397906023852469390425748506911343874066917857958088727274080068826236434071783866525135569262762456140217685669429623713648725394317627133652924280016231038046127296517961806723897204695454688924510853514612602040753083203521739056748495690042965638273655579239766752013921637331471185369128053402999879141009550163216357541656580472342588421527659058175515883517428013844040617833615880607172052288998228202877843715192440816699804821961085663981904595791767062530901669547655434119432431055403799011102091026332359118934912415655698463810730986307671528893373160145431998417916473737140851778180822861422096262764244262012883095944213350284375921726881262739873354896244599628333645483718417913211503028931083332996252252653184213687769901246200607304601658470176414586013586037616568165055122970071451937443112271597612768837950577218380936563213433669265674121419232104704448075672228746405350574772113317888184448315421348672491295665958586966974994177913079463556536854627943541624441661503120973984350201255392758053204465644059805488494169582710182719324427927076899928553679506451756063624187887977955949961589269222756506227624421765823059116327896987554062457852557342883835047356920576468176716757090028302801718460528557323177378007208100972581580741348049705288051498107036616670826608073715205611165048864256330365765224083009993922580241849922481249131016660284740888135696023544652300957239534597911209832672656708232839781925660927360283545068300165458073368734569890871345875461116839013623412846903675519342811150284589166784394519674921681629054734553207038303357408382609442817950545787881629598718429768623729567657824532252865937579760120468346599871699146433474455513894686461006077066203218737963156249041330771390622731986875452569731248202792325112210291564117292028296858285745616002664471106609226055456225373872915982546033427368969471867907629195626702468459395346151212764478804798339867262542093705471703006782988727122750307128166390099612855491445852771067689399714570630751449369123947092843554402771265800487730061154579006166569446433518942291693574783241836311548118207627923565191765149726078778637975926596094404668392852770040583678353870658559636048955453216000603304292222913859538418443483466003841189371418384605097075980784714102690312668945140398058122456778433238038230528852476357344783839255312445304521530689402866846678484112777067567369543804357748135722108601291647942458041042799137199777397036910958059237634274825987536973121633987376689762032253180877048855204910208471014297619725268701177442170820320027406350540576496586053612993844005755736392441306057219418202601029621437570720788974517065476029367127821436507748556005884684980834173606514711052148158201276048763988763494595026235440806007516042372560054609841651299321868626361480624781076422630382151800170975676506418608989153486349770282756677517400700385804892005750533985174956932192141898755825631934559619132965653801630494577346196148417064806400074783632356543706075415912186663748139031131652954543895186193084445414694452932496992465453272989657961629951345336948804886199587010428034760172937813406030681403317222419991174096798619505851286964633624022432350043146842622588240228482572566879713220082206686313084474905685630795673352835614412076282344566383324254513914990369435099593922586623462679510860988946225966695943042612145707452415043284796937216875525511588413780451883998553421470347386565575597315568916141784000098297975921947659698694555816710454894337167695555349782775348205354539897144639640787192190265919095194057242694197654225952372806546045628790247314149355549165085066011948171469293836604992076785737556337142692105730895307205030819285937109950723558363985612812872646226453175463469109809843719453175933080692427375375984335262169550320815013177552631299253953148480347136661219704391164660176808316360893478489481934934321898215296068878002732661162400301606473078202293814401327217816587162454678020219629656955467195674553793213528189863209635629702730061756678065820229228911685804471847254405091443903856045876438874068422146505336076254543423547726867017631414320369750300687807678828645415599474105255348895420804223566411381039490691847607419412063135829950457036432443358802974827505228121119800545289574552834657420521970350447713096011567358791429439556818998927443658387986267845263680249347394692061653345337428884535651495635988685021418703686397253453371674511939102084595406086305077238033105165961435824792017984965551762363743304771747398391943752763655824780818589400766726299165163054209013688802300257834045699256239081775942860139603830467116577407184569591356585853400949365167775193989832034164370508283404919239380450292681262044336059552501894549183993230920764017985754782484977466548146917850851826533836394205467415392147035776152021297091223349744196580094443741283896895897510551903585722882809186873520831643883217411572433536473395104562325883720861229422165366461951092481805907770000210025869987054033790003602989383454329380811439595637694608866513628252034816810834941683049282942603150506740973758415061281022909991999848826516611635121413429375703949885726990533355086112467916138370080828522770848228317168705682525274091158622791869708856745806090793323269917524933438979988868239249550223522116260241556418578912100655218482866810536364041727566626326611841125958464535284957235650447664574022182464455317933310226193426412392376843190908905917914976429172086650344118855307146690509665217093081051070915612365770152522009556586144238377276310298167222804535447888317011258317692326782805022167340062813895667053911925158749645239626290690646625921457366813612227324908448246890461410788529020964577807543736293299140898538672834812689808122625394314593423924012318116183827036334364433324747120109216147360414653392749548344977588229691191586335850084776252909134812923761006490332522507114212634402255750497874812003892903302326374475833494166967600801865601626073362261788697224439679867925234931989229033980047213395324596046485882374807398270787432093473373667462390507349117496718750809753656499633186599216951773491671761500145180963536063882091725517431056918501932815278942288605174953597639094997053062490814540565519536455263967490218242987008001274581596238632885068857065728822042021074753002606261364553231267177430643845140271672265746425228516642973614691424226392090100054494688694595828169253069556749282149277880935750721260037584023974759286837450812993125619766146213247922903060761483962534801547108699850964809372939645407972452532047247553216243565960030682682888154962555775960740878014093848776182526618799892112397870625120472808677915625267953401887012074733584092581426403093809149947231298397187138227583530736230390453462139203764215594997634026728134799560213885930668351617988060692396872350289096007635533487350341762639582265334838311904650936179141897729163014807753405068803137022705544870938874011679047428223523428024563785800523668625574048721014510509313472906317023782818029539741274595248016236707637854832539055649084148472319803063909297276800775645202951142768108063707827958852298769419899997318979173756815529831230779181129023679745595222740263617742120924752992172438275268824485682564456833993923231481142343550062132283347979689066507399866219673549466877475837462168008814604899133496490299615479602343903198447447693269778411653183327020032838419644715270331940535373321325742034177695693691027715058419355773608717286974091379699177655123552669426949067562236196699472000760452246823541235721004316879132917420496912261484108410195472166044447989088077301575073599065134941938650703253259727155665518345455638247639901712254050358840562604794278989110504692057387285685349057947583216542141840973864598597446973564320437098985107159334729794210603906725156576793641055442325561380605502556792204487015254098257411323352389242073195029197538694428128599122159575741792429147503687147904253433559532603748774382403663743291516679171464903864437039104859834457737916494536244154897122904504919465091328825945384672273835223658880596238415219234408540002282430689092883807926985922169989232869826161848135870112047939103151676366714615797371001631764989822186499826960329164235102732825750300391041687465713828560644890407704754609659188710121539124935028455936531051658775215700860014520864190898499306201321886795036652288865844215604912336321020136107553814573024836445207490855537355252722400098714015018819313956933876454688243312659946132507781081065303148095049585586333991972406017253881646845435990085549074641234033104955378341857777366117753608472644403495791153396546213461032567646227282237090634958169079356338438524160133243509220647781920056969634200784898178990531745568080517434262637795267516345473813672172893137411920192985033767663573177927667434642034022322105247495526779386114747518474110266812383398975352501353160148460504018936035502491834521217396440251183410483366675067037904332327854919101081729126588856965273234957501436607342843154483474411717773421371505247513653718674994186259521979319149941834022169979435132074722615735137493104905165895430743767897170114153209613764507608169262111333598227756652674785746732088251095402556213473599089781514694903039015751929720705987202326905896067183106408657785902290860825295047538257642931911638092794592324969105845089990363152001778076439058813923349777396892040116172541626795973513596662960500886788427451208270336330540561503431457184759911294677655752393497642949493532717077522028451081712953013290791051152761935538238537713213457880227600554547506618948154557078378428466467083012858704801446863992490027944035250214546788477717795484058956861590587353293408010451727962704312028952019812241491706820561330866855906825513823369792365913328807442583800741766903145714936174148541488705617333188173863756388268149669637880813506354115439341794793045394431311856609529205659085142983673128925638626793334799638626710201274534322120116363221678022232253937763139104025887543000542823405278245189001990478087126604992057621941552981992312268914461767906796254685984338664928277523987190225712981372791411748368163728911457907932789977647328138392067241219621593470859510128112482859200272048100555540868081470178184778266281791128880129625022451807647589636189796772937749366087493811789952473532892390171138450226866557591937922985487763646472166821190840964735382864999496432974281931461843634903094271128746661369818509262347518071099870104579119737405386130748863592179488592888194905702002010377231124637008971463853355513589070003757598093470284439334434668791674643448142364635177219197105481909332047166362933577798357913903964813168412612152235187543519016046890445588590628036023953396795427472702724357310486352633726776071546165414952271821642935869275098609362641493320225507468158310545961712383733696731718742572095494786438093230719207936411482685592470459039364182689525736857350840334751134696529040577071020196750819839958715759916450117490401564775277374063037151898369165075840860372455182087195197697335297982927341939251143766821743271424994341288881785111032508471804255633929298756281258772442493672081944517952488972492089900529582307394064845249291324887735694727843416387766968181817884262188710330216925884647673089302404738676732302693839676178324103999879827547960545715440494658504253981707999799783374070916701875850634156276361166069752696798489525914588876027461105254085293765051146557866369383615883423593174677405636135397965957613340349119220317461262569773172932506553312735308390279572521958337248248723498474724712442227837423843867614632349035804667987170546510705353428036331704782691024282887173126693804420860620932433653790254564055604138082769421514378601331706028528297199537605761111219673491868917066784042147320531426380548732355814481681919827905541413910216939396550055447134345109338649374811867171987303326012950575554572737119733762338031178918179861949833398498660149559834088106187848329981019090639494548374442300153662050587537357330847388756665240684192734988890745376287381228079181996376219913159427040249073940628243675593955592457948588421216261277705084874837036583156059906202001638656610109693716746855225770490389847562899157651319645106983444837722361302789719472941004966467918261634660495777679104034518639450843632550942880465093540604022912382745163791844136065168618452051183064981010048804015344009459019064684786520084675487392608684955878129421895482859805826301366796938231482895286317759709907691092547651479170421237160185098888207148734558089841322609822290844949779444441492849453617562220842044191045770887869428045527216293330977594823295869038873582527657742671007154416216197027904784541127987956558154974449737951259027072778955021260765839148016460379328554715480111186086512137183030763635813168301997192430774685721171149425774355186564128312549784600348254891909756117749422761009510162206655640667277412385983999408027356510503382535215437938934671734070462566396584949337791383223334335629311347358476382500149423151992834398143110873182333843644905725267479688624975592586220283022348396684657186447723896165654959886899417509822911557476020633726068075518339953972988328004193957695368417615731947374400702383599721389876448889828976408479452379885988718576222473465347626313397907152027035098996958129478832070694724244301089796378314726174110294555569730009877519343698798506868936734008014636839688026344299242248473484067796243537876512147148247887390925002754511826081235105378870007224770174897766506043815054828291474583470303392523936080097523518430829378654600580200030252883251250786257287962565578492390533092112477791268335910297752299825992297274073749753007904648900596179517786078872806860482164529962442130882882728407013058085983390702017624424395142835424755844659182043596301105293668017765495194492534218269909604734087365930760296171669014203266155770218850602132483370645337579091526857424161044695227079043610970014757705631289598459162654277934721356231211040166716889876168435906563076907735308481631012522989270218343678033414472728853783785769272550265830748504485165751381798549033674228766340422743526103652832199424169051183362929366313439447714205494396109665842564322389668182370044958392179841771178739734660036180412908587331151409884084607169692519748752055032834543244640422192868547685386731514517643506660161156070817587503814169897911563712638101290669761302479869930888229463590820648997589219521890220919862839154835057206517651124537267067394759417345623944098360713700292133141096698000047379596713400214315534612734540406199996199085727015349721362666451790865064041604878874830724533321897046515629351193625714206775520309343969228509761836665480226385048848026943913243374962473454608712967531950293828515779514336387775736089400477321142802688469605183174806171752638432588938467991052751185823054459973655033756693903646417155022804194077643710317539158880206393071403262334227243134745166740916308269794672306255664321248679095197584645096718302057265422416589729804103949371874624118526194069525721551607315681946440190815834773556476206636067295217299588056082625441026450165734295149536494511784862152950747525251256995442710859742145189720008960139302446104956702107564566766841572746850105477341463262269262754027486609616910781010001475789352815827625062921182953195335899793704192390829874677788763660725210711055823074898793359461690600413084298638858903831170255491794940854267403965046342533335574943401567877494433909212319463633440972483072879518571938806809943911155441278789203036223199658974515837180711984835867744037717985093601803120350125634503058148825356816790791566003173287316660518538530639105770924314972863479238372560727566269892771359287650675531327827373169792948264720581194879442907961654318458264475180930602752843618920541993434005458093356076141791115178019018134022875501346332951209071561661539495000989088739851537014490615524451560353495308837564099378927383311298295470774300853732460805419064516727395744692191784514836506063866790803670872662583283805914623929118666118347482470136981436078924672381585093959509346437220004416736260898496634286319583269255383510126815411914662494403634286263333854754565618451954057362150165701199284137568322141747768439136034161588041790464644929477725436562778335227571908822502825613365047836854146565335875024912335422486747208985929169038801028584392485476099175443642739321391871428388511619266860018560578114428947504028321627348578669623007485817999787237858190928021904337260857485193296783132345736167088446169646961231193719665966470114729495069200016939371661219475756832819736074905386100456667440290352553663772422287881441952746779209821491558686983221091847088874802777003606221707541543561654835634470064649066243275760718505846440945386495771924068715022851586459456365933339173723292017757787960564401686430418700191026525683426555011171825181698662179174793902859215954007226631465119729781941705122804580712269504061373701475838615928766501259782503620494312037572996718302868265573449990323720906462477944236300160156922334838858683639510205568608082620342530262266138988956038163998109644862211201726910652622036293031576067511651340598931742948683669707378236887445748653740342977511297033751932757721668915760198581158871704850001750917925484785135921181652349259654643110834251138540473167423657758553887998990895069042969982991489491729121265282387796555170287543677190951483099430243711008395050881376436396093391102254470925832857646458523989155879450123799386021590915062524467840661346150595684144731362599231399294351835964374276746113286640906356739093337804309861606829920762941733525714604766326740306316208510279197688398727478577646805072107490126860948674058565511797863917668224447605719641279494439175521266102463417034221985895158606567087740045170407451395199449839580870261085310514167734591313177189217529725024052265491579076096849113672526519572137359356572042624594643512706424919165923093770032908612769642390891974255738897392213769923665803881878945147703296213783922731877009723266420206831785066546257641508556201460904685810865522262935717423183787947559245923866388617533190486446317339919287794284171915659673800206047692724486959342784424101310266744158148885854291341267429180594210765459796246859212329720302428704665681380071018645706668049309642292633389035963553859147445387045764536239341464254442512347224459440970359585672487788702741480075745723660359491329883569577071315278209543035370726934226952288993517975295026222221690426304216591186475460849705034122158338625871199594589494702893380062622476490206773347045425411136350384917868145751536926368339332050408100563428525226570419977278524365106381177214387033227244937506715330823730129235306863780261822523902623201431137835033259376350380855860960079367000550307605068409567165150336997127144036043329587618691030152091810526802894029729395533613769827217822044673821972599011351276932321959263992353532093524477606194855523677912718715033901306396228072044249228715192645136353600177721992283649274689392298105356068110512221831035458349778741921136016617788027762535536174996326282651413639520296216339708603939757001165492422690096558412972126448514239818571042708581558806556413299123067811326244667583930900083025160984758336961054616937453337636768080373642391960261411217462054954285802331765311996950173417486579007879096642097053287320332219535630563397050133378589477927439016101115511957461898893955895057099548292176762433564856106064556948882501448124854416681868232527023098783677225091590442163655196100078758471827142858935183015610413812035193618323995163633357703307224664606998126857837678946768194667256744624914441983143609324966464912186799928894131603294591104463310107154345250000257350767580964454541023432607136824188789500841734148282183373229842414530592321913986849612408852527176535588814354620119187400289402681874189188136180988465188218770971026286592777547600533125542763186506167596532840575573241972598453947957985231320141856801439398394822458858510572607066958491555274925323336269754282944518244051445589000330821258104655557510736916745557875028797168699142106606693953890534258764598888418448115512101974783573479759577921771762178167850628212481443905748879666347768048191361977370149470846992996532495760360175260465914744758462319823773479115916300869454525990774776797124122755215247920182778478012642103151640810011698785620464397802615479581519474017500092091091495406366424881038036108304878839761912816019541093427253909380480652238585876125258816967668592720394666118753228647689597716863388376404628052898866970692377267241949614520240317274627090119020411712539406520029327940572417681700009214491043522465779256203551835215325203219529003405331454096705388370353904916608625394928378691599832209486090095756779211523464419470374845697714345631518073928966173840580258307460392103474133911824592542946275060607523663137045866973862240948730513165019116826531973473342160236752741005745862923133280052545365290983852719427857554020487439255795769871713735918613531331512363745579358605969260152375148758757419383769304000366541847663624878515402336316565402857021702297145294369787198938329723526430117562846919306089775462552999000293179276462710440710909314004993690929046312984834686302522402971713015299648556284216675932354075312785407534496578559912815747300277298650368016620634809621148495840712374178825889289755064838312037925548685484068006545995050406593033180690039685780583543666913865689443852113738623647204209758343462190986054241270973682626915120548361844048081692034631792967158000905524187565235641902760591687759688975220088566605801637713749201274616759550692696610456968833464815456231813434915718829736612305545964061845568695580799219451169814089059729496921546194866389733072550385738006058094656356052364130914381182235376974182537080993624051199332610348864967183494139417179382281158189027492153541438706666317386855989264514554342942275282675891652841916637829519509786643891255986756680276934188134347208600833112472701793364873253295391075150567630601816131776042664113535994795202526937336643327896938113266597988908212925894120976839917774429937699041755352529735408567889317624876964703538116005543918571662573735057193293612274399799720426945896919686167508708126140271463135771262871037715150330907671687666668169546565667279013978471555115679253220438425003188418971839762462495546011389551545104331479098950341714689481641901859796198039524269650561134111409244323330389324324256338858608874299061839792368272369044818332376261663904657022134798665463236643268049062371374899707801684787490999623602951844076144817881824346349450773087135155422669061581464827346079893894065408904852606540458258540603998090242426741540845548285453558769153697939804802756377032375194807394714648076717640585674640750831192539902962444621981386766853830249318196494223274971749878921940187949208770343464847622333215681601288004301964009258902239032166571324686367749399353400199532744468908235742159224587911596675186629238548672527027069373964145337858976381843015668549401166811863248800743322727236634064177734335500465238133363548036254440828157921480764149140972932516539132139718211641942877993196131768713596406893948942506672712559911839118696936052685296763218642665540574697648882783036813159287716849710842029248029273675727529102224530170285012227647448836292849388291886296106578649780178438677272237196237161165384575195218242877525421202909800437814132184215963837823035775805859600151008287601802692011515749225272116858300376150046170266943865429336356773557545024654196372707636029601987130204823931331324503023348845889230318193175723358901928219532104100933121558364086052032065678264548338351514334639256243246057598096620350126974879696355918286594367821560855349081170818255118840966984224419779937711309144661879601188436829573081779811533301517866347246101187596493998713643613337825000281872848944142855246213583438439436608685171954602992562278880178018921087969765603962944105368193668873756276069649206009321128812131044178188730211041300513493878722521236960323023507789581695410751917437697398165963882057402721486388919542890539491807129836566025458416107302116761931655875513530703499776442348834496102114826298698765472438763533998023488459015701479697183806602901850317185201353054115346928745180036358767571984220582954874400716503366438875395210561300697753449455180913651544720725978015451256826054942497859544936610030095345470319557817032425683516257745263764372786386551713552215058594792639192896109160992954026589196089616952787894657071405394800733504119029898448475113350329974264088967943698385389993353497926956138993440771201439510660400195834232107345076681185458293577120894404449940353688581815140711660927280331050370367195092077097399181837243514813607825927437472021761725662788137618083697219500464037225584847610331301789323476729078203299260968471725683821388584134979322709815096922433177549127422593977121060548784165809286749546205866222226120759357961440427824216924901548256525027725640124576997462568277376578459643270876887061683925671344996996899291254549648043313210874065477568345280132184216448535558753182261577425946295628539122058049110025630186364118865202251461934866857709606516374131473720628042558265975558557905614445621843101608483458806510496037741830228952826230793245068400049244784668587046800212816116252670222624993305806209084191605461431775960384807429921565901269998800844639987850585178091960619161706637132761143937315537737712540788242517968338051356836687760048655513453238531892015972114800267701669828428226681341050428293604659807556976599688654484839978484340131315603400130386196067741607832209998668456590161070651060130463012523193947713878237696193299890648118906263773522508961621230894664162517108425826755494395967392063044098620884226276584045589016417056545867894925765069331824553556053420558360498163968045657640990146714423128320717362965633151434193092911604820200777430613968526377155396994654056733085430462565894470506259467742653029432348622585272842629673564982960983506264047864501324672247198123871123074915031010404079895993115220016392561832382941003045319090241325060417837869677987151214063841845378979128048087784789338154694153980430262224515820661932836901915164077455176046325344439351636328754259372833738596169297903723292775816453331015000871516261659237420614993599952731726478337847555564319731760408504357141424722764068658858632659963455047519795491310267441525168671491949192957318144793932195591844169895873800733730957870727853348385435848397950992054711902659716845739602497631770879364375344975351459331233676257271852457151369045033605529303350874191000266808463201691123542771549252928497009544131358712943396529105083021510155696227205215629771417642234259909039504632197028344830320229533519968645121515297118188295534457587729796779851108951534706132320595420001325442776310921081923952836367236426159240191197970142332101714936938389062678112804258192632424482141846259100822883717046318770258866578591465689446678960375568486705222865621745128463057069587369775723045234748233732931434662121831958040467356176090663384184104078330870821874548882405761169152909976865398049711828284562534734515731584436631411442997330059479604715363105643607700067796247460450568104167819517246237130846002050194013312926813425214338276047879516685544049462731332769091629422374159177506085729913764138783702400524220844652850742455184099021993826507914200817590785032939503918471901990781830028586738965933064712883486515107296221538379685495895921041325468809224486744447305948692735481364991436205723200893526174364463485956889258161658855688543777984648177705938445614916917499729633024732023794636989760341802526050489426483991331077689361875592571405386941250316876382447279127253330524154579742449216746320359659458475627372809939225310787888134852906754378511738824850509065917929763929761153400900144666969817731343643411034434720413602582016798163959176411588599064847231666451970683534403303656801491184521326765677251361069742068148494876609730258892811915961716458314496465882757192950178325780891978876520349791776833603689098476268004040724691012273671790837520233126198398154655292236859665942898556078087594150372522083933086340348349738781957773667143000205966124530322907500460869610710527556870126179027819270996241964764063296979026546118504482438454802581715913195724540656579608070250089998755098131322780129621754314122798965261334240477785531539570908122977554622659423011442028235121731542142863392478293231700678703408200325451922045193521768480658642574809111201822706061331707688435727569732112121381760988833852208439439036310150861284543442562165301489368077948918969189256749697453085586152914554605765728166954069512753576559213423521759568766802417958998099996063299108444334832534382040997214773597783686376652273433889822852603129353037765627184168776029281115918753711846737479832166300537974417336676006705759956639521984960712606710192169029295635843490752165930788097763473383025688546806917276996705238940772173873046285229149351073851080275508521136806160416046960148629645327903522145650991225304457992015801145668861749088091498321950583378210737950296035819664834531702506836982242145062038481536133554486081734834304861272666342365994435767250762402792241442266176712144153138677456715010083635238182955807015236298931637923673727387215290641641662031301848029886657752585467501424470689553061676995307981775447846616944798962669983392090335335666154488887583444440368513945181317632953192307086627985548951654394371466133565944220348663204354085715362679200339652359853495225445378268260523906965879673822210847386360658014808305283260507066529277580980722960608359831632022811372400531812175595741431646541694377865310637470950541030056502871455558394038862210339049843259570943556746054736881016134236813016428181065500176363179223319335968400702350431193018925176963321259930075670301622350904920115595485394073236059920830907244899735232119542183146655357416103838695546918627256668721005502603032334534306475254279036423232898666086524238935982830276820331936032978106510711506135711955506379219142765024034925341702961652763977384560564349050841409164396039937057137133236609420463362867771776982229790968574313652573193924088122780493909279407439344785454435008555200236022933150993032666632968884924901041049409927371086707882581057777254391277407940245399375841463101738149414040592560554923275550100641706446661085026217484168659960364821863507218224501590747473883620451214088955575612056534127669821149968101946734123436878859148821375454682176848475189516231771770693999047259060709309663064823882230090591858834419341601331107007313224479938796143052855836444397597914426994586839997713499362120469777656532095747091228447341166050373924289753327298692094377341370676753183382531627106036992734287935037455030386249034437132824382414616208989070536258994243090175528206399319212454032747990918728865966108181800960786331098785593678639580244866689129321365497947216023102331869418345292765494042784251883473186204174273640351034088766414495829982931169815460340623083312501449822472887427003661064529966776817828515193837302641592152572132556868945395770766462976678660598225041642961027401661787968496521080894916239782547794447132221802236613462570653144343229431244130534770288081479050812672787670673974655907605781311812947862045078818677080451772791866622709946363811223667366672041161311041943688231859224753482947942900636370010373597079300615195536810677670301013914473286660193942002810458785347382514737938409789611597329903319307120257066188731317809083662278387429780793568159189255063787530469037038714576764688986664891401523665254972181816273162049065145751300127760855019613710410970978410004614574210787049174855718014025518754191878407449156057303321431920437400741463015473290476646522960942253612255138441524623226180340023649350070595672099039610006850601264291181972914656812797628813404097932425256859682416468759514930813151733413801735722616916234233675995232388008089771147593171622188467682652192532593229755136762841578440520866725802930638133615603607236230781767665711731270663679186959075631018205459540467345844232458165020303579346113289961883840105087317968770668820945580689638397859272724070522503395156784639382719634754986545500890277913879927431939028147527643041351743705451603582088729968378351387684999338955102456116776708913239023792792225518320531899101458105322267644325100772139762014566357106059707338629162590904801461842852377455083363866459657003796040368661566598331388234553184073403067667561202434223697614840470272492020309021808543881118252475977619756281891249220974375170648585380678948912370978807209702558134107698328802195595580587874577766096847046504753275778229812921478390447494822148497271419512703488061094993164228174263754559950159822665754931201561575523747854461764468218643317671877063930981219599219319272288575829110572883866190996195837549167205848863583525277417909747447809927546471494996279564653114052672976546658330531158416302880777105096903452197801178875227204697557810983377257232355706655465570017173690386188214219266480710383508935641871941268085075648764993072083546434690942664080602185087894584842127997681140532526107635568492328616324255616817596859375330729756725912840824900177249998869999789999145415325871705481567990446698763484122200260379276669032918098592914392286850244639212081607469141968909585865152318173269139616130346071452416764126868323715874841119506307772817555876629638226814748509800684281835134630876526522818634746043989314686829630088489622812357460652162431861049040750752711920905144901127779939613034505009001647490185455132985044565981415503138810127430735578624438459025969945787014555496908842094779445639746972032377885091303545330107501090349744472038445432986422578918577545557531618788001681994203591572606272115830739106448460499200637974550768923881427178372558226148579188579441157833585386410489636465142551667376744242678232998979651379382138019104049605843538227177001592758980265256346521248158533321545136347212669350040259906777151513851436050390146717013464461730113877906238035799051708778050663971490579272251556098323793706454357206571297735305572786498104749557644433720042254414396019130207328104592388174518185480388718829214517495082984491293087511496384428639122776427245577472469982402314323695314930791511906838625828343618968057999999629274927237419464916494074720691610284681668573511225726609496092023363639922502250114624808501722842319692874639115559112386192343133010465065981298756409258357910450220457296004118250830429266756154485676508417594601064588126403595420650913749379468533613861040832894608576550584957555959057187363963280644308392932287780371660929855371035664851427973765081565001445861336204448142665244674214517967135765753919872930389541842273971292315066142518709468558233923468053207888897520938215401737035904760926023187807039727681948384259252140490300352611878337659233571582570045050458181810952888949922722542357648681920673958829798283736175914566521741690606865100432344500864409226921272166412793532482990277064928996614952785906598390119106605668676917627261000532859596225201699741603778008927317466594158339556777067710745664874149003212376998555058186397893700226308485234467005028733813143882083755309670254278974808233425936887053575802325943293525195544772209604963797702488216283738694106560273042042246575877806238002390865762629145309104459109091091429609718402541054168852420687657807145691541697575412836800957271233725990103429429527914611473475818281409257414658765201993856964206191648960639698866572690883684155208822095334437083775124894530563573313017693040572904761158993409472916928218504301091403006364589316928448202046972601159780561052814426128652832783978384847757977408883543977996522036629548357392548828822665674948353894559970065005116666120283414962759376336997472715637500641716386811247967355960667184948595428898873562465183879192376470086054052412075091813475599875330396543479204149618193517303543663219733424762387093926460771219031656508773158079060380287865604454975846439350879441556409785279077387338914640097333399693209667027292426899384136770187075116275702173001971570576274030478842416046575985426290831708975054513741868087125527899512963057007414551655426024758324408069911415403643220665158152956064607024299501749945951399218814294915068268921561218537058224541835312598911557972216147238870121645891665266737070877277493358853512901304828885271005069392976348288752088984350637818390804839142466189335431951755908522108705304564347428154935018901800877584588110286596669187881291712660137060348497189023640842240985991786436507300779535275202581171344464415227611453928776083544917260812745561468622022618384651149745458792906823972787822071222746913160767026774863472794110016563283427393469749125039187998118938711674187769567535680420789844282884622242379574337769385903796982288492354074116320180178288561724552834117309107888171645611718393797767725649759918112750621919260809312747311445093967342664618333714324011226061012516184496098410426958251749314454740676564152426432082311007290653261158608667637964122929867638082187263664338123150398796623110571558646007287802236488917303795808388716423245457731981097776350007827714850795956884812454559224936811957897323880072659340573041859606336777642364563811878990830608180169079832869766726291678298501487464144016961467803761131791775640630757315554668827649348388446005640463565247164305683922751973087549204248465193656180400407296245043171139938333020019157042597356415182835210104206979633792679553316269127676286540838715413445403237732764433985809745148034958016542906274061691249756773071124115379818789464404597693715146899141546094369676439119888484953206567307612618039443445872545234421394773140765032055403140285088704018127806436100608040119594388116552862673392129361460290946542386823678080800144845039108747093102530035907438956392147624479408367976187375494394265029572827232733812193127946694177585764564317754924606158596595611302774762875700274837588634141764282936926868920247561764039141849927031266371454812688850770452491401798494771729784122034535117981279660105665381446384693058954576193911167177162620324041927414770079402395388161426507786854815614496280091847829865287007163727732742960605698389547907523180333750372677794067860846796114677128598164969799909062023907643819738543650367642474632574833597797915554499994836647600043542116247072507412716056910309209653161776333500470295460093862492845898661509313026367658673813172483452278620491125094149253505143574530158665047087722011051833815302944010230478955109584283369241206230315262969684052876469162851486034093764614905141474713035417361181903880199793564986200376209748775270564514836090728068854900795040299259120630416601332522659778496357789537830706874825679288595340378887771222869590036297233448508646800789459801505037027925367609174541159584249964802499275827841970606224997427794140810142748990651191605056027387545901327204869534387652131133608387960159959455414857721202342674063445945241802966731493503555065721410548877397257549150887838144483813709180423049924210275862096924516407011229811356138526999566057324848655774740256100879116286547609769205025511851341196373912423443243717767658956142011186686432943430284817634330771146265064904426957345264551822450121060573248372020448406604488492859275634634492191191645933655644338226582805369815225562097457299788611492992211534995146502391393551457989718748922342083926996661334729414695119653841259664503916945723450249194066411176469893079082803471993737342581953096159692308920337166555190183480380776916951332470477427438386469925086446970772924874949849621501423817776818014131887806342633575518884628386860091666558332320029827501972792212343228563994269833991649805703433420819017625689097493279303613816982015081346599865822710283947983467266528718882699134229447033808771931852748913101558621076109080406347802678948765852829041260352459301712538647015261757734492068315714393258135961033101903261191271571811590732871423414285545589668576064451120916582200687686339684399204836816278467041173374005313212427316923417318367098346968667017733699040869127446943656711133582108042565299315901535807885308945530820259922670081877027118087153228545865278889566551336486629357323626469077874046336268030890710526905940417944240375957031101947869784971460962739427002761594849679996263017075832392513146590628855912268694067170959484870239970579068333773348679526014618262709243183065833108728775074561147459752429738310975667742402359833081439491376506530940154464196165345426659804334487349469215564693308423157621870022836879730391786474940188345887736964423015220215292904524546023845527261644203359157771446832347631482415901912677196455760086702650741970447336540431231269520765747042873798384018051562746660595980196532761844892818392115591990035707314980986657818750291802384657978781897727821661228583154083779506909575097511288813198600217755637425190500138284875739742686855004306049220890324201529101573736160330821519530743069022816098000670541028690039412253694277896253097515790356864450807191147258131680422834857873139432262204368102003994301974578003713738842837551747206017147994398296444474663686928890093245869184441077457692849889371359284590675748642397255493989118499943485652941632750972763428329452173570860597599147546016563061900739871988031683737903642461625638884335533405160725477999308974943388071817267547535354958507584069010341031476833488293443256525913068841776684130940232896961747594087173478843325504982781741841652753050732023059494671006637695847702719025534597095137779308192982556493806763374046216042934659679033346849007517561800607132728985500133955470189731822666119706263592429033101464463692231710287348514200912735846663373329849934422639296139170401439300899968941471133393462704031531530492541096845813061072431127177719455454229663285542562301594258409145596489043991957891721632666201594970107081627264502662985471619345967301627760280051284581732017615115689459524888533048027048241866624488564256970592482304196011847453176484328172596050006862091184811449964902153367116559247725528272389395615942446897733107170118499680429900370713085451137998140433287018211710411087625404788741804902407026368972885955909928460241969320570304994991134530479985724653500354293144623818392409780483731767983625919905760197203348283994733842573922162450004029573160243760504747847815214451134786451826696498179198551645064934564828490623213163584510213695945497373889822421237513434679998788251156614056624348877233718729583822405381382903521239447177258708813372497915923335995493373104147070276048100923147474832669544579020308211670352782520554666665212310954906731686211858524491162553551808776179176071574981876411517360530872393622848756849278041822970093789186709906910143933286658139975573908155006278481363518216108370113022698430585827972734559340407697895482447270185474179636915904513995231318506845147213633046927710258981056343769518028504600664887583168795395611451335402760923486945881985174826021143540437115196535490151216291241526651066383119859347660724378176334407533325262634261510917643733263759718727463842056659248787218541385581341605799075609239344829263721601960554400311708034027531826849231126058076991618380736338200122949547990709248413994377045434079959062489056929387082503275022627623467747224947548735160686905533492779781894680922956926872089340751004599044701336615200148170959193271418598871506800421280034924280084750346996314328008231119384890811500746833198568506639636289844951565129457416799093941392599658841942332184219862048632372637887101919524584924144151890760402606293919483405942625161277418112952792565475724709506370318097054334560838411642205158417774980835367082600434375722958912318940908026080189893117365165930501932454952250531110690169804918723501747203333580166278098615761257061479641048470415218940075296957347059722661388090751791825580519310258865787465669187309464272113400007917309844019633252007694276308746465767670015773513745340502799785429717728991504785239492200681632097239308286049115100571731573770928735640589543963136785094955429829523969866961462891362317239777745311932139160524086523498691980069218151565803708707083346394781070967204763539544100551244949253417661811678243267924779146227495215863859657380910549239876198516212388894247964591364772613628815864571339755698270325846847731702333250723584695723296412907255562558782607426778750847109066730723141459012071158970267377600222530535920951255953524294055208847582185374584442838664524999467238535309150505924743986635004640081081654784159888491147077389813407724319846904955566529113620483824505661867878396484959249180153486380668984374435039820776827972979859702927984589188759274998657101580616502627245172391464680748797705959671733466208028251465053690681680117750506079317267660109920455566744623765331612345678038410019017874054410269117695143819533404832485511507254042917688836130563161925791375635769337559399583342879398594869838483670100263890122888264956174057010226064825076570401078337700033353832707026434892126282681534144774897510350836253875643104452808057523902354531549722353953687696942092345982384820471626221729257509137782491477789538795506601979240112637870165227950066461304068280446111603802671113322746587383703773829954177082122803002037693811613656952009748067669699616148970402041676989007008555317625875109403752514890653562596777251876715448573163004743776285548342925042252255659762276512132223936815145055729239655826772412548936233845549654816075094838198584493270843462020464152639023715485830987910019481997450232176578225827651046769262561800094070732290527614027921580880006915963006351610703235473841297549520194688095503530211077966876944308184171089496473596595093468362244916884821392326979381830935345907741579337919205877622658980969407113855841047049962712581232526472856340867688243303626785554258815185578201135847804525427210246950439662394984322180141428917282991181157856209988496772653673642360850340329918277651779004196816209443846502207415292034600985637621090365122824380650075233441718846905959559655012835107912689888403002581488998070561741568171274714680825284776987837493475969926214330649935680875342960365827118759819532215174754903678173655822871731706826904954527724000390405882570222684970137973395543176568848957681178201794077806164575030279834629874208062815075182478928511871660656863444136084072977971230319970941155622475060788236222992068152351967863756546618622459306652387596669437417736140750994096928200420384093847484735746489848001872190948967935157096617223660105897257536661129526888956148088719016955491226021711231158099359636042338933715911288361087910618827978244770382926353523584366249675859502298857038901418986535926786614486983500772337041581028616722433720956094765652194954694280863283074938111811723509642625058210031408880142745322765457222803111472789614221439506343911644210389717446546331230243974811967737622386579081596746408973818767222652455423188619499165043565288245298942382871713474108860219662525542978290200407027808145523905497133512294590463926330834220721858556338369512047906750577554185946119495347669555557477946861653298274193498496924337324444768684995615535847757211073481282804276375925697757785419523694149510211634653951027225922802096632650096856796485598961923209182111190217314278598692424212698296700522898689053531599654807016469040480428720882894082555194285237675472273840663619895785805609768104646288175414177660340666512211640240252093042225952217892899338101339279648451243161588140940059669633493184616568914275071316198055528738473707900618303788956159783316924640294863255026945183260902268763369106117754295771526687271410053576266604283505933820393515395452137189782155694731916298180519294745188233491619320935054410251704705233902449110435816153828378120001919995961899468655641002933827333473313479435512382442752132347399309094608751853352577702054779646165354523178946957714873663838335745036667374102483299063048906336760566937136963040610353418288350827496244402716705949534800809239340125571291148809041604557215324050523877095959980738817893756462665594732862471390015652618623022517566480510002813983250589950369660213552744400883281440035102854929349472801552246535393115686988112837298035184278935387537158777469764095335388383125520318956466519564354295040120428091363048404739977733447551724992005308974446189593163659354022523275781944706507455147589758490788125639892204876222207704502220760386962712748431064629845003581546720905983608639190225624715615944085421483107156139435886433458120181789506708520590275662127872497207872371387412680201172069753709738411864257244734349165509874085041818915889673550537192927561939269770660141301851986123792649823507274374466847105533659597289148388163298518587263385894628123536082935723255003530219326235330901657679776417999862445550079092569960931012530544833796484698415967742521385080240237896767653085870249410305544406203507319145380749372182635889536757395554883970192826102877235200428028967110640911887928741865783549238749153773708397673655694873484883196093508288262512197056157256103313896239023651159829954463334861397412497325775785325613797195018893999946397211091758607871144850114255441219298563998710999151939985415933579407677947493978799963019165981978809026322089060665974433557633282159061535168485651929155248660570813514530179426771460490275624047400276120846036531618254069321610887366574859040362347394368792879134018134658858853455721299632055586257294133017319888264161193606619746264786908198150598427553779423829307147374105781710019985309593156399343947195192921267208740708632469724066685455541054119137730382938394699104118190761867642121785904410107925716126985092409352141007078689816318599369148222417818243941448739550876845139752109709990295134175769189539694626758855693875171194334527120583741347996615316085216376863996676133366574692773069872932459476380088344062594734338038191500306967904481184617384873443496038513538086685900880291579588013808664072888046421526611383711044277016042826186817387362367764297651745704811366219582133771140312925175858859560458584257283055501526915956496597482843428400948209892733543928741807218907691176857336846180551408335976169903204547903470124282579833763170613090263454800060139247905002250376755040056670330358157548259453152046895615834053846810229764274872421304941694124781726594269470324129525392148241140554307220494786203926687409475200517061312902444955139134512785995317198449730974944269227266508123112006810336909785980499856128484108021124499698317760640622108172044114667690321727866774748481580200716995805505628740350162335157607122561119755442007748973035142781943988987454863554744222307341781059792495250596660403731016945008004296188808951582315547234336208177846186261328718742590859631089904983801676725121279850798661089868850798665014789713083072898386666978094264380981680231448521175662356986273087166996018662782729227009905139203697834520658771241483413781034158730804761217130582418416875632181075887823471961472323299581739016233814467029961905818278415123548808729800015808572276022466877202955508910629082899687348481367313917669522783602067815077556835881483080932530322781448642222968639012866442172094940026182463631034265561430809421394260095650508020245603844198231889749278981991300805280519033183869430522642396194157215083755543640665733775639615119797384223011564134795635478271417702629387632683191204211459603202045442373106539821885910822625963604358487757032324321428544010868303682205874292369691198872406350211012130714070650916996445604338835271323073724375882678072159625721493252882830363106358614197328004281315378959638281986330524216723527913389051984415679965154418483426997349321548591480084379558390042359574876055951334716234828121167183854286727281081560096125951706496196575981333633498327891585912225201552936253500869056993440289651163325003441814246056107341441496648994632490444067799205338509144133718516907501581991461687063250147406293135483837763919324807955271857016583983617810960106208974157472693951525665686776688778620278700686795408269722622409404620381904100172759376480638863312459039576279790804736911695502386172026522460933277792039359994646807170783587415791482062334677249074927467003719812385436272220479751100268385694465634754621752426055741603430232385934468672856876549125643183273485127815550301175081239361253994947980746879229213282236064951199168942545962050417260337025952659397275525768844785633650757068374440432530751749361000787940547976928964169113380739773186578344603744485692303845713923510417698999086064915274851136660251272344269719377564590958339670893987264478395176908783810134612600405721243841030046768750974742698140750660195501832685531545522637519540076559697087002652786806553560298796377016825528217995929531328369633561237486961667874949026132839528811620567014442353541679924476403804202510133204404331427924192258303432784142437798628506074703013115685411594923211691929264934269952830068579403835672878858860503046251538136019777574733217112392413187864641518910994819612866994678325316895316534069385605826138924044613622817592544926669459347971211448116006006492116838237043264570424190571799217178605361643230948203483771379102613565132680214097422386585123888792867975530426349059924034687644448436406760032274646675250266713730531498830491629442126731843335442518237756380097049709045137090929623818923531302754440071227196335907539775658120276212468346356524088224953648952500245681864501550904184961621121574581331178252564202887265876850473806184374113673255875570905527929074420065515162681424054456013611108637930354588492915108657753406603888949954648692613819787380587724552914724953336813643653020062124287257141872014844388427132178300718767207987007017275102296486710558436917316468863111959499661729399448230071892791758952595984803753509689869093251027521170128493047879666106896269047348054857201409750663011951010816510231141916616529872757393776323736184447841306898263122354241520464523853700240692440176043089491772143083200718501703190072584613216043252780502292924710887663012824572136457315786002888037045507625127433011125555163213904125019821244127970890440178391354286804420504432968027958965146346299326541593080045137302897931928199268696571612514667244938251093325872423025940719726281834094799756483989239863721335899132557877971373791741375896573844909916644149748512165120132798289603625989405814635441966170681472503844258603755678446600526510236639217087639602264903171719927597966154913099992653440047723972280446088425202375539248534557588992293199677495157486690116095033364559061744299523787231742171933151024070404151909524043545660524848034288664101540894164743604656268701561625392164474236841690092604910381118347216343947626037627617629734857142855310864776396774722659859112355609359659070080459029361572992539737767027198000390134129798642594692089671913256727619497971039608088705361232092384153325029446429843208419967540139813233567271774489557180521320372240682082707648645275949564820655503087104894093101816048603607655015653797641182487449636892903463944654261074992319375123353319448966415440242787676043583451726580670126780613534819969765605944483502943644679490298382149414577829773571512954728563995348071695109364835677333572459215616406954251428458908621558705142128203141415264191490520771152820094557185072510549795680851114711924645628769478616614049537531335415465041373962106815997048595146173436255024117597695129165538094896800199950676317941648436728141734143046486968016826499440486679420024354688043820995831592955792267161824952340376652309264075164200906992198718820245490351767634981431758772315320393596649858836812286195522842231197689673879424090401750062101899400592553451522679266234287788151798948745771225997851690672335735129665233259782761253779310072128502925735922845281904701710202761219853529606459233622560178875792486458046572904177946478006329630815545238519197969711196260214157550395569021218257769388300556589316825778929061072717905699428236213507014104891149977441396422624514508816205423559957015333641839276662939899866345858896493712510704575880843578750339704276877174764692458579194791003739707740634258033672796837114400135025484836743860984930549739494930841197675511714917257022797124430078789495348422915348895983754556364520329375749241275292981070515226907365264972695533958512523529713896561614991972963409182993321235158651091577034879207120708752623370709756867912159618134895849230057582451747219612053647195559908387736817272861169959859331610419223662397955620344426359980087288047152257218010617077491522547279723576568167206584831908589801846221864040883585534965905382186222917603482655342073221181012849682546481299315107166228155412313381105047703597780227705596877442330131543383981709134450069617245430120709697353216958190943818089373761788711270641545861449109066251666030888792185753394158779619283188788745156468075245459249764293469611646144576209313425547941164769486386849738571510822138754694017773491466985694427653274940492667111998364786842464892905587031499839155306660981904706954050733665731953180021343090059011535809790662392433811295876865024355178497570894692008519019464589408701349695724430705539920310591578045310466912528088658714192959251828586588123180045495932351975275527648611781744522569175364585379087928249342621444185382686360009047062485080535518561065912904310167095442948057892646314482735938534420690693848450550771639061197148959554289041503338350968827050002738273924414242146202529183413058410323401729848086486944125958520577258020175288670794040142019875754893063711671136951856086816164720721104113377166363483099397622019524342126665483795206321870267278291831542648564925413177710025504965324333511371982708215926589021100716574852513392052006675200457579462436710197060333993912578887478154231471413513792275768592863384110054159914862695512004613325165582370032516935990376329566550201772216997408985581481343600560365601353036986878996265939766146389433141732243631765390572192425421401809412914373015472420126726463357983137645067953772014710747335843859242730998506088293613512499405050491650875205039602407306268226368860244770815959833501327094655426718434128870816324576321959304324580221720791394726360892227784549283240951104606736291247391518168841618070787825193931442048382188957304414667192963715405755519274034214619850908963620730249692263688586550806962375198451248657274039004652250946885938244021225301599768115116697937322751530942389686051366104776293299743607333768720172892711620043945796767688262598819302003864596183674836935433618462306588978690719894971684230441218509547406691692500559020477573525826752603810310036966996191432204385657706357585881095374405262821205120242184404296293992198731434645219111468173356388466216416869000505915335415234194076952316007747706157340208926854078080530971108823364725869199506710207902632500948994739687697322549870990850866692092829497454596187013160328345926926016675135365037975804276963846414511397943519744451135948212130787220097387081145161025146254453659592002516137399542672427070088661858319549909843692973541027321062761089134055101287091204286029108012873320290905341324895016327677563791240441631312819496286305674153509676471312639038317165755610606102558902135795658911403763518194016665202550597887427589636436495831257540883846044205447055944299050183879368510586485485610904712823772065629457401273531217447287694637695305080198846636642498776286850495033622752551897600378434152392647205651098914033775383998040871330198542540161384480491265081704231957306628894362041178157166821471100352116728180374115591570485931120820444695178161148129466567802204615469582399931055507675476700679670438515579875197387099556445255246471721972805794929454742614005751861780330402231682297137515897000358798975881556572388869529852985278968712195335200031788732507578328390143140265574230655517030160570553494577376513378090919727468596574414317161855263672098498615322805165731140997633738633995080977432936463508660183550053023549465910932357593067002765142808898237575515440132065706075114256331996946909729385488249370231636773550286646690845883256950831833137835329032218311594510317095489328240724359984874645938582704593484643233743909326962065310577179983222307020783115347705894149688187158228831025760108485401236059409267975256945706524944084728868906824072492802096257266388637991630734610185445894859827922478419134958842554436502954954131779778224520451673661033394967701966341709677344988486063728818531874692265702992436984000464557672602310477521525371116746996401401147597164398928811655155929777926282227105162106628636867478047068998833234287710805917741301889946428673053793131070498800885340561880049849234378020326297550159557186764313303016313068082678650476769901381450502649798136024466052816110506744921667275655585253476226531890489620492269031757159610910639809309833743750216317696464945809144151134109168449596910424630143335023182624070700261104083505055162452357969835847369497761631654144545979856956129368660159896434985148018718120398761827858855396385463221284575050838132746212424383503660295642427505525707734728609491388522626957757188827789641893260721680352296586039294002403908104032948109375875234065205416502344275366759439933990967887656067791683572485011991110932376505576856623450726767654215002099079379105303439812112197714647881131806941884154973598874279848458714105472811238024074621485970633308421075300524956404337613411897545638539761396871613751425725352392423975059512952670422404195651987960903758303613934604562428923227233725883781008084627400012125287152563093395318503783473343800436479206238547561525941072409865221525196209674545294967944851283495572888303882398750386305037094781977895514515546324201433561250534442153738488825913755941671745333004432818788737830142563684641727716755577418017252845246551780943269269805087804775923191234079416863625801112241841643761923059961541332738733476112865394828324645909495980000515847559024483232724932306940757494226019951337156738528640652198589296075068284039710930395323654719366728123188033313410956160897527082573563675088861830107713636234294240017223438226030792689254303335981030625829662916933093977981421515917786700909478684042120292027289556775257469573713326103634282798415582995813448772238237356573765278713944921953006563844485672271668902261229905677666158322063931857732539526616859301587272961753995952275547962223317071871271168350241543064591982121773652769550919576213200380114027434412199856183290767805281793878151486006819476447773116969476336047435671243686020358872534178411704706470121908548969188256055874170064229895736433857144699853857146178328531849928933707701325534978854859784322431507047967123253735132714838724702263959131643860955744346480942509285002010965402175333920939648571123305092596701070041636605753331546211183088274690875907992045320507744985343456640397413110053499425655910695170674383770322464202066471473144082995027322306495887669174444589849519127839062040091736081425863337942370982413523354356114963490982309602397816526973333616475726173528857671690253912289042870603569670381947974244720517742539116549651233487702999618011368385024093876910857593194980540452765029306814889078400937592832205131823744215160025458731828106020073158878583820512501167396108345510228404601213288127843892736629666532505974065518805425665724394386762560154055027868200717662656681357043854316361919127478476909791979646377496067581314824326944386553493748764231793942834984920384889687923790451800948965291379077377115304378211165162264430319060471730631699926530141999240950909289838555365062644493562577435911131574093859766988139008811287648813356039540012460407081614477890189521808539675858171563802464813000595259933671513116748842977523715271158240781077814146598007728065949370014254565543254433036363624333180956893750376978116711996303654136696094190142826026890940247631377947610119790151578807441283109595263059785244660053170622417863075556424212766910737905368947655449780610495353356253459567384931319366381092611965466611771326963280546202764414705026891106483302272972206329980630465239687073701496112804109463735308661075371684830999219089209894936180592225001708059704895266071382146294168520854462496101779762923908900141730295850994674441527489712069915798841759518848143374473910405504076419214830424295555929952515582041007542354374613680393057271878955131483518788187706095199336958507142069135890981218772560569060109064732308151421144613798218750767449366770441155559638512917380894016693180986026097638587677270467926881139623910812786969463813609368033999084188518595123568834224990788986238677455654513212568709759751819216651605772003547961403816257354330770255809358210668127158659118171881756187805439120835445284238155963839080014227834101834115667778441561189469507801264713883776163900486477233407160743287436368976375329031975147899625036509492719087618454713949901770836533944137430458212069493528975371672351141106459339291774553485835552754855112703328053934513697539122031910446108693379219796828387665319101618914953250840471709380952615136850781812912256567620229270429392554051351772617895938248950418712629291115411398305931861310721809209182973472259454752380821236987944357119637944669698165172056715345441228189006410756066338173971369291968540149137494977767380797491467648356962751852611317915739032055730259302850307713834051916408424210433042912008537757309526551424039522937114744123152086289681074167145848530671564171498438145271807267765652491661633740386183717642384030168913342299756444051143797070660513786760692984666685473160340431688605945676598316798644107555473195689970609003575123702031372002542142089384459478441419144857554863024483770270637987773609869330398210538793421479119113382331168083045835849969589477428847796250094539321546927165153626582425500312096940248589259440533390399564717833769638301947226756888367933029280872311806263453215226890996475486261608886075745967364480863672828503250973094796490346253635670248019277833294474446802198901794030644750917792264499979569892949363504385315940906264589022657635921428651760273094684734828037576586076504774980208838882860312089889868678575488797403405699274497307405950636328026524187990708667090794862502921382375000726424120806813401700264611496137188019152584472832181618768681709552825382109987842885170444956392070025831621912731358764023991893489536132049551103568887316935612337077028145069820038490454681032324901563154847949252017225912903190817408614476122728802126172174297092070605936015243808786060386391386855524591617702639342490261469004306775151407082172018656420277300964593270477357168682321716327905764648057641919897455281182852300711421001309525570847104591501480324055745995928410948527619772772526013687890691480389645643362717429680479988440259104877168164661848599486925280108760999387628854497290544471416311826591994796457685813647491657423229040805634017152128327776910636069123031240872602608546850581421344594745281052937458226288090577961462906027318934610302907510819503229790281194566976054234097463757925822881501149072724038472025121339412366236732332565327062506307018378135355322093177276196194835232613085556985185869288250356635608866429482213161794160490986508734036538138493713602004117894523666864757199403403940511720498328207988452841681147579407145238143998831121980835518334282453215134408139379694825920374514542088895921237466393862358861082108816641454803068796808667663261609933426447932935677340289576388845835238992223107124608756568955971643985873726861531207636066545377380080207412157378085197505930967711944326710829306625885008686978432971339365309330830923792856364802104991779533978291400060019737523547559843244950659237676326102120987357976766254628317082451423089274681492915889298377332028432955417320191701095878425773672441754396096533568996187673200887421971210986023929765729241549130778062082220742496153518923259905159381234484389518049878321661858190012182212033696058318135649640606746051768398271938272441365152803166100832804740944509228518003980732688253893877543255730937401671816599348576775725861382394593478838023194957543314971556522689977842254341759715305977342381643003501504562271454720459107277657022439368520478758079071849853875513073052094249840076435833177167070038636282905132805082831538302872387025137663891712400430873155580464751989857074392276420475846951265558750443553785916143220019277206872190206979646569485259749375497516998270706459795913148368794127684405916725846711541092728735571570999941699948906871944752109388133079270992726476550189059961415972428561885843597286297956683333723971692429840546671542664554226741876905643231308300407144506741552629723088932319578606979090369148145407353521429413098667881041714584319034283185544721033171530567382988627393664201467961631230484448612997192798193335447203072375673402577717163372103509834464466822861616344593416625383974397525294384122266148220330917284497878688854618028344539003478974736012812975303942259072995401259771078973261067107485419650033335849309516540359367142205697484873700689889402360035134254207739570788720008295608891065976582362842710059368634155981957520934680437276743150959395397633664980215488256130831785043754097264271707632188331140516430119061400478043729615537815843280011255388378168715167667586417907789588828302932001586818013289292224155329924997199465780604440898768292502174735014947875559680531285856137115264991508107265713959370017160523073880709628132992577638533074822692856530620642687494363059904301171478891270924280700903127060927433955297972070837366257834868703217395233505877317502886270797600330638314142931117777065901209111236320866510413421632924889749046310886320503690709971434165407853424746342211706844391232739851505359989951926237833900279492037266452992930072789090839963400996863547455881554038316373137180385343018365649067605454887652513473123438257523365466177845082134950482640143908516858099237507839878491345173397081920714222004278245503200670409931926704825140719152583910932139371796162994366043443884956304772396693716316702597412847874146988288182039841820082148470118811270868474924105337309307940961943053720963499619369123879427612314330837937900438840978430950725027639065514938597241733082760030909138434650708368664151210513970904299089916247307888812258751529436032411130357975418410040059650514628719121074719077482098598310979213762023210798222033108116327211510817793738119813659376257907106905566871722181858732064176689855678768045041527596766866657327718614733106137985130924475815021927512733055065623928581501233083470734226449421141757145990321422085672609489257606390198605428557981376475114925970244087605066568503287120927986220478381367139292123818103166256487919209813870823628728319679181370290515889892565546856859348200985070616184147372887167096924025690721606518044961854177546503424271435765590232024093544584530099006575290043719293074338581480896468359882795610188925461945856920139205556831387034749890819738367372261431626679022385588976992596035234730596890180171722383390848843439270838503128403696805894087344590437752833117411004926812922693967015260198935301712038989896778678317844148231769137587066382192918249703345609501699988750147259250316159766126693298661557772541928419825935041841628727392211085638047699161480955275601748237136823676469132518688550712451995065133648071578081806749594231928561113389417682564420225723851272132681206890474052705218973007809044112186411145494114209505998758898166175925882459067430346208317540994084202986429721662230944198172990709081135231901478191553847903752413522197450041660299331566433365974393468362529477056959526535368749353102882008922329520677052051468679211276609101103389286431652056943497012724051733047588097362584948796294466407325970726013952240472599902608899506764359910403938416397464529396336505501402778319718494243576563725236156024838121028184138317820506363211913646693454665656609676718556251405856977835221787393204693820910597238809445914058853144214866399831054839776835579718760310996782782769591017433110238888467163777040659553280217985036360908413825024171389693766243123737192992981085466375031157167592325055374369031938341309829725400248554428226663168776129634454659788522017903914142615220576023839588055211623536750245916785915744089752411875952426711745068480949468862468353833782494287055089170281703246218269378059498012419363344006871498129536691328304935340528409647506547574849817983984938775756820723543515807311506123752781126514851802178750159611022937966180720974551067452177412561484609470555086329642274908448800846681152117684711744028829594205456794359196624158526431918598111103097983767840185101834421761117590316064652600727296692012007832436700615750629414002335880307322579685653878714670022075760633096955899982010315467812266255863461694179907638611053079863944535588203520464972007350190218828726499227927838224504278023790629145982252384830620457753547330088121346115807115335091316951087342452095036767097101813144631833697730905201558330270254197749650398563121927077851134336513787157212939826525183782739245883955072828744797619059995938805363127729392170986930342895368670831069075355039256386208187457186914005752024389400608602209512342474499080106720192325019522839903680424839271678147389530213000946380074820635064677889984924401922626037139603628045216774092002182296164706781220924119869298978628606641197933896006248304444051124671158977431460484757545586575968660379625980062658714245921419712299645243583457055319397661890267017063359034715699568418620648764848853775040629938276937506939932312775378072321291911545896889004104618774407844055504419923927693975300160071828523463192730884405141291511992511849909523832090531077393263790057554568930932824272319155175672008373427961661034247123386713953320631404164770019243985248800258529477157886083010826613991401647172171914934391580691208531383517518616112186086513304926357952145321303842254233684423189651833575466380627612631110227493590891103247358781775539974314610030444584961844076645779199654435164889739121725840323264079799078906720700452859833625888026504546582233509656005047006602984798677375780784136022066180106129737646422209925639753465301502584580029605124204255884831682927421992847112057795872670300836686402181322533377100864001589774461467153987387019357793257116107209279417759673927368794901359483774094090544560003068645482141466009794216032876350195282338368685133944867817942292446231359887671998313290896611590496727511583392602255021669907634702809074508777505232905561405783941141513909899318149104923005452202904836293765189381533412994802097549480129010438063255954240923914577584261626896431896272452726147558974651057668011773996799642796652752621147998760089153901470607980076252110749151049891166256072894096193608699316282162606790068064221395534184603889197873395696807864290794026703903700778215289450115080314830155111513379026565783005404250888151697140033876683848472392605997133727014012917841624327530055878742545980989570018235521867919917136750624909254131325469891246979461939664831770458077075699348531491503071143415311915851229939945907162710716397808304728641338350842464541466687537296178618345947333241905078484679117023805453056324607935259551932333516033828479917520528886161577672581309874151540466750824714012770303507095191211956614176830314752657573332392733960452489166080493130378344198122554115721408800342206875540959626412938866331602445503315051095025416242901377885114951482620561560185395461367888318823583503945959455400360310455878582928744942455023395121184921440123075562494338269312117800100715132848648853021342279161263555762697538413852901274206638948450281698458571482796758907774203550078555873385327659035341147398089584162967021822362897999487098859252769491794256023030406694624925889667166450750881872143870089572496026278321888798866168590560399858952517462021667967635600739731745349873600246741640335874214894228400090807340554063930688956265066439472678552438455045700203195140104911105602786972357543761198704512943813168208076592971361687927278667693230947496893296288248134882881159880007584765349987479867737523664642425829068096798752124549047469581229959302792651312098866943921034414195261611530486943558157815592712385157702545473368216031396009974653461791323382452964033711417991985000932696797884555786750243063149520283467331100245904361659818360372315298355296131715874402035378350622510436759131922229245095641353105168636417616669755695569194188625735721259432909909772870608387802345572377313056439911931579306361778770170783164614776596136527281677428959529870157308472976399387565406077127905034519406327534947052963219724237617955578293566235573414007198044718906762768051464947722987514267788032510390934408647603485957622616079625776892200135099806449638395620398933995836490569438942879440637065773659065827444394558470454265253838951993992644932507195446180839519237378312971278192132846125680813034061212379192799928543384533041899485363161063231367093283136445428360624630801485723467738874210771306449084580592586500720244130921689287181869898389748172709862414854947254155391165617462268684999803337219219353706699585621113306637527235121299163392874371482358216362365504994548610043303378129182531785986508414906109112497830046714971948456148154666249358525514463225862452311373079339409031029803604946749960813171865314289283275905747791169464491986241991671513997075201877856847885755999467437607214516855658643437140356379481377710107981906575724322717130704062918208040686870018313650413275766360825012570410709164925354824324752545526973864283742772035988806189360193907338510518863236684266370627137569163900614792284478104310684043106601310493326692890276113445909288946134788589156146264149388421004547183328964980722136900183259328851561975079473514162608989429703594943927614305268001802449551283431119182000474959706356831224063505377279978037910882624001703242004539651234838236664800662912221680267830808073496890078382368232297805124252304243161261871485290090148844399644030730775613730064940431141340831043633173758116974653517394104709483183976261996282069944732952113270207852234068605556689428941755192196669192815741669714585839781520538268388136864111581533702537244179525387249719826048472402487556610099456255821291546294510023475840490849493324335710592007883464322847426605354045019629834093643217995942862618465444150645972248773983600043547408929182152700603189167026955615896082098704965596745072517152143915548385427776494428205638680547798683097147126630436131391073514596315712172979133631452210067880538352152764645683710699932498048805200862732371426452877557147372761769592183658249087280335036423843472678293749646658325090429472707787757627267347706985561195523679413203011581279802067375403752191495039664855553050651452203118823825841086876463680412407892666054401937129060018376848825966256093146960190546677461317853252436711964238790065619173437413931119913200288332660873078250624949957612739222812154471740355034189097060484381758328463143786253405233817190839964676690203977822125041471342516020572972916087721685141724366712892960367766590675312872822303961814536746615149479955135519533760770814493108242383153072469044421310652442314376872935487515008092998628206582633016918222497481474509440428555534576464180018248925887784002637934638943729744025378511928425496035028768933009748175492562874855259280684087497169243865234134620883863691252642462466504409174684275152768235639616577414885026745398251069841326170205400423329704279691732328962035013399942718447840293398454874030506380404502107185657687684091959321939877997532684092942380080495018440779958444699410940731185598279585827214681225810803777285217986931137255196327474380457410015796561653692077483365452112732945987785106043574744138598027734043334488772769269993661577366516328261640844771378358349720779007337679828737860350828445058558520335889353942205850942421841130520102072335610180488990186190176434169923891126712900328314761678897334195603641204271207172368280859719992758166889951243681572905186494451402868227032250851737063818906194403840502499007149225283074708655263566058227980198268712706906899377184935453449115371403499497171907557286875957312564775528121487208421724532388756274728899486202580210963875539958303695009508904219549847789773816667602497821471078478058075419068532437136895447844169474472655172814471829468753921733877986113786059813596517813016083978494484450634205732311266276058128559645474388557424595486588218467566294676061709578067471232516977119559075798066076592661375640324487348870142232314133046462134755979444290144747389845872434045308573494254330273193899624935174923805753652715306184983515234260792638669094168044368150992948884502954802046434709832699514842560530997975654152507277719986070294181945890712427122906741875770185269598842144528697226928643236181498362688112784922908091511515784666702297483650806285766760310138961167267418605096862362111633397412828811169798247450960466158207093067778061263523001342544277978192768451624111787552353409434688433491791691282118195623102564698631202761923261888600410349739157224565759996725966090401616250193137160159986110064675943650161742220158536884225381371003035928272029051308536111498668816936201426171731487306674473855192204794509872152751405542090303244605071903793877313539987156877425809836730690277879494594202591328467811944276899508382925021847873958942205905726154780438744080731755342499970315224435141510987596431736919603124199993528553141632900477507690189955967877980740149556064155846520913864213886424608676757103216407990690352404382671286715372904660594798512698498463130506980213784967122391783436944855324947130966079120059493528736499561155934138288274044234345496671251160121512738932153008737346378216291051033879250163349597500674493077924427791183813050533070405155451116654592513471401746261241204758669082047761317854079526592386774889460342878878467488006962556732760451446936198250952236205765974730514313682490139930578693169407748634525684342132161675159317489185797970971401162842399640374374481627404702362667483835028553293285071373752845056621402766495916656472968717079307329648961461268944727528929228813429521970326840882631749944357512407825162756942862946383286296476153294572977783327552357631312788959387228431786854243907825791246136869871313283847617139663439246691049521038044309539584492605436798553288903650987270805153191177940476194318962139217725435463484339589994691522444668982019511014845324659319378666567677429608842873188990642145069703568737243885873196791431864845847090776297609924583779550863183401845459530966413239266856957393429771758938218771076851190807442235414384538343423211096297198424801802269509138124772807401776679489721388712906099311602542978062303062383928787924178691033327938272116774332118104112429365006810912653583366219033947218082300830035362045241205340566880114514354248667297966688153051534565244103134874718928681770110701287309097533983028606706195637433783257346272701027950660316843135882967591012898897960673783857007682789542358318363868505502516992384439961354905916209567811913706950970789191648770778616687888086143844472708055816189381803020577672137039819471800951267256484666344300656192489445551276262817686783048811476035696851752473254012985487318207823709703311318455291404522452924027401799146104864281430722581306221481830239407284851629069060739295699825695327336301382990013003745143770404519700719795199559518953554182848993417449123298207823575339724173436322740734790786454420950488413018783331733546881217234757522876015342855153109211355515947728163417020431861535427476061888314039066615512417030148210410512292661832681379412515250840893399822063635593976263235307500553779225842549387893622122871013763294980090307633019292469413959864620077764677450256309922072477787770522071522563993915364444986368788549148676921404912069930371185731887701341307661155586729765632351412052526057953258336557635323051257010531107125930537544111014930117828099396529577398269223048301841156489354415611470694268593064253572842630003953262049056318012891258071531696493352433382809342551686005414759528657200778529644535250025803204821677156298623907160693816731079524069302903861725915981047558659415547527693454158845190668286743502502770839377280173675273622810490317883754043428792284903832127425565031651770828208775183720845489483865485322006426399443294856264819765721233525865941702867782118726693765052486928453286174726144796803582480688162777671585215066506175191645264716608678718242173970204722786290838206900411780429218892094820270544662883582685321240952545650518516835307446566576985234988831387655081659619795231552715425308999567076508614828576577717581603222848592352693901947713789465440500475573280177656329398706922118787501585200855187352127465948763148070497224379279332239173874468610023318840886587130497446837660185165106211822055951327587824922018032138800985933169154644553951328371826029551485826308282138029326908622798133174497644076205996590057889914347780336470110169578861864519812122641324731303605339167955450017778959440995369094181192079761021296981056736250755621018283104605679970266242964771081354554609916455185423172273773027423979778753352169421885652607880905922449025205872571100370317896411015979140189393891413083924401445928124631817698261896111006890008445779408093214870215246000124687205214485357344659069058255133179785473757179173598452021220972982796078962482658851919915930073744261149353330092003047476042309323229180890838975502240630018921756440106942311535503568517802620560592994320324306357311778164253927802612052136404804226227017650211921511147601325805523239283975386852981059251247207828299214419128166976551258606752997824160162953104231120134063594803603350093284267268310257716666674180803408518206037437946329301539398120059687291915671263281511689432735692501438634638046503818392199476150547642530961810886992748742011797734259116634025194133029239536956228118692250327876169615868551704184141335201933833805467825938447488152230249501322095686165407504165995469746406195365874650515912058699737800488828468937689440689742522038458145914192840121667322162633458066900986946552936136920272019731935799626681427047134397550238051525507382174985635021380403304048392358628350180335747229897796823605752231597099145420354963956704387447378694109486186550867876134158189732413110781369437419496389708211861208789197925789608112988220671109988100996304967652575226136918379401334809361508808375222953733770280250589843125758952407441267522305032628815389239569772914340253538669739399551547841931912274782969944634994770342052909914721864071572356885034686710433047715102961807836390064918523230462797032205194170829159468016306097040504726161468506264891651239499936396370304971871456609402816356210084227904475210816460355025342835136113903611324665740420898193014747809408738820634782549020804439606800654862348412205860465080344103972723852903493838025650165653587025588967485972062183327021089700928250377169291905801124543886940376396849366942825161472133086718290226274128692446518483356971248822588131247296672196989160577193810634187816956949873612826177264187808580836473829754208027651479693205863428308331594330977744349933287524397901169467420503510980262447594800813853289521473594683307609433200040041059130943776573082141566778822096138656792533087197001143980292551913966527027539282879556323010647642709863079256301498868975641440315761573225591643213315448208030425903769771252653017880485131693354039331243514069837938626788053063415677720557664323047312609996944867993518949777128358648830636707490294218652411692451969074884850632748389253084370023526001794209925918763650728924333130397231309529223046084851607672122569535599975671217794176207946390083181854384877439664721470783068028302697655430721755107101426569490623764014766485146765954260107703616025462943557750726292374399391381710757083121700868283116557331428114098005831663073465329833221368537845621175455372084952100510527074003244851728421538305714730275148293102954597229871680111042919326776611265792521190252035596938635500804533471622626140395522081154205575022321043770370228477299573200561030906651406681774693064360048087835204627682799542330247613036062149023970628713813217612187746504572055578008796076029558373867337163702189305745711818520851910746840625442047309365961412124520080452131125991510933980766974730871869746673085178903053503144491460534080968233468396940725726386144092971418355478442028983769010111354689720726363439026410672088384613573689998839561046186418216022841329030410582631688408799286618134410779368529089340165788414119316306075041036479444160699441241889735926782149316870525790253862340442808267909270823224527218003946143633843621520816306550363366335681993186397413043024431039598735360293471954771998361765369081958055503149048896736421689968080391509628067142116053088648154666340381811775166455454002009594682165066585618821734881202754343350683855907536510493181011572133239287135302667545259837961417049891709389834109983194724047281953452293539458177567103300088495116670235029976002975996709338746845613279928318389840548030862598673082684093417626813062639130988087823349325289819472501954813615356764181623204222890594024254918715567055200490762116837640904040210639687586138743179592443236797291186084351723633891703458749983933715544015814270288171643281677789443638278599403581761469740727958956675846447258278469439385976887934850237344622089084436289590276418825942541560011250629854962501226205959835732190122323866431304196573788786078608842777704221774302031309903773463529374621531441736912465808052545194816943187456762388279096411490522484869431563339731878118095250195928533579579720097620265901888322657717973666835063841047020033902059671624262542853676867926352453024275960608444173520320424770358961099195241992115293387117835384437090925492818797556946512459542181858548357752437443088154672199881331629694159284600511794001732055391684212028992097828027589769041812785750624097416888748168798879800860873614997603094942518457081360634621415802617944048937079956387619816176859248659222872749026153340243711195030816677035930982092613363010432193043486831017594728378900560318430600739576232513493849232939401788214847332525778926363099325696997704915509625254554926006234831165881485965214875815459037722747003697652611355548678373756453714226370044504120191181354415698847904134338767343253382008418082625106857034254241075487584933369363280369184069037771644614874606775326036933477118459585771123801597547113768768581108510475427084687554012184905397010344291054078166317846487262498580550568735113490149594290739873995030127124419045591084416581134196109633920872989605220002896775255999185254414872769234259596264291965758343034454683953323165296044304589957214945768180369091211543805108290179820093007495931754901118666880181114022500864853393636815973415924557808804797835607652222030210604327231123465930992078705797425936740387986441359641427393908783347942230439079947058913121628564477725336918469346532360586222206159094984073139145611336235286746532726776389018679032564954633394212454362572048230043194337035263535196451278689172937855102562437412568734126392347157697756368352330834469824157198449858848589935115297686963623894160093044090295619242232855144243023453634473047960825539622092942560580447491606698183254352780093504688847159958417195092419972056633109035803671889484527409068519716981258031442924022929059644648357374407735756583530245707127203260048826866281655397455728867106303621967391460216816437469479544121864917738234239808910700486676567856550095486524079513193714449091871439721851459785458843291913321607938745270196588458574380423367311937151808799201345416414629129181597729583256960393149194360227473314627498543616244901618136198827888638989176405822617705824820387526396292240531775573799505736896631428660592567759102161125792141390318511306972327506028017801803351883785809578469129298128940561764414318755646343129915451056958073669781850915271970443432882924755073357971816073112941696789881856739259094829747645988222746886737337450048812853642764700661535056455797811895537881328380284548418403861468443002040338829636647810439978420331833327133905750831373867915738560641028464630148094700226497376434049212243937303849310089637048168464555422276965194911519449190457787222870932688728748716158803858914452940210960955570574729970811364249343613297081113562872980157870922173022301289070573597637788734421287219718760643488695167915900389052555788220932651753618796699675177345702260165538282660055506668679593916462339503245972578011290838500785595017861431372826246044489459311014169036849692646416635380854093731618527824938395303499294830292025493351938784367361290725898789777125228085870200564146826619951555559969070014844297049803495825949334496860222967821620668545477558906970198359215591653973721821095622371209901670036112270619118123059578211943515961661978367333279355634737813615299901857153755080767966788502661120001981821178645745506090627022383320879229533049242471131679495044762709934845301737667234410557705113631142082373606894853259351748005089530719206033067605940710793508436545139596910049882649769109610513841375327416756968582740090184144710547555133543211794479960157004687628707076194132958574706187200762318375349200816696592643613107496878040066232272032820897356717078109975190330090855153374013068521331368746009803086192084843932716404223010743076187342377607172124866379489273741566053772913705382688845599760296464519662062150815397214031109732902420809531353799201804639380348020015535479252099790516067499473686737814243050614928925664953144695292576446001849098655086880512259440002748110209387698235619876676574431523134152106614999676331765908984311764927263129049492020091385422849448472104322673603206621865701846255639145773681450051909840645528842182579099776450702171915733606838706065184341124143549286169284094788736471781993093910882086374543340887458045189731131991558376305318873961841003314037396721551318408974747214686152773408949173709532616367981693607386248158134242495743220549826931070283524478954824444058725762107006594179742059386904052338048290790346156495469795431195642407146085516673005978354565228535107334283425761890772000668978067130996089270355970385381109911715289409074304335968034376801509841844882143813735810559575066817948504467083431178570752005851158823651865122758789421238235651260154523402900132524146157107161127060689076703071522014929820679278866741111388481453260840798340412542966415619983226881950432961376527761828272457699741928267944228032573599395396311814348288859096107876847296038388376664254784158223813919405335899289579563307699982428643115939323723393563065141096328913960140483581784740927711184693577162374731825242947335906616645388051093805400090780539693972063951296811546944511941012176045451136452335740257410772985521868896550088041710258108638725581480220723673662287522778367602254236336326343226251915790562780689549058862957965876553314135768063983838106917421580975658014026953615012434324406560421839688556839352295414693964727209613137410872516239737395521419561499884478442285316889645159702985236849903911382795512617131623713482418976223372399312387704734367295756425759544644819242696292269728118496417585679137461748778779363042229028276017146192419590293831222409493219921410879900508163130932957887062392739136160229370020759909267593626929232205872015772753132884749282810666399634072715182031169385512687042561295453254844515932578915223826976069649883128751482196314902401422478223031686077263968414483280041500528435448576784267424640874096262563289483701593069683950105639069594241427535663601103175708576058411862044755291542982530073614013770601736977310099404307848404901632891567395770063680558078331755443527359340214130045807088515260531226268074766699862933440753851582970398891724372802182177977981176397226773173443825277492698954632501933469454145992441999403391088975705521270948483080974524369713795501358217470567938116472040987691999055288811547996424407936190220994798893107857172228896559925672472468357035829582192247503299837180356204686443629509266867458510291826136151115460040704018684479244364455860897114014445253512389714934796994342279400299230228176139563386378376833735252161016297314216138604446136792004206626172727383522906188971024842254768664910889514751396782106797709893736781666162804670785774247020837647164789183348542381415456989764812302142098251376197304141453282601173343632950135826870816233485739799725757742446022665370916013396471488377635492726900858719668296001667783505957509763687068150420456186697166693766223982190888198299219740532005657659604639036244145921591395341933118332556689893705123385832539319063046024968259452436611203812439334590705467974327165914425137842080102789139151361780667253044843354712470128630098225818342774453447626420735368320693995877535962896705287881076329397883676449730377792791606510158010540685938101368528744533165603278214940452273065597514950219350629178931480562061327718234339014820321099911180716733277484443359915561627507699246881720647770141043448472453967319207303383291297354820861858773901892504237345595708180271964208542987320600938903987206220269441244586201250167824657198393563807086015365813956878051336967803914962419116717917458075085939881491533668805016196857131065964518176549747538979964069812168293769615946303495904054575081830407198783305378944329135701972574112016040026426663666658104482969558837730377793964239639563868975811613106542382209602964607817282072040602205125138442827209567420945708943581739421274152462670742438628431186767186553881475445562238067583387409317032147730781595299162179475438879011564960432397597012573848083077132071761268196614784611241127847987374934335584505764243155311993854510115891570065683698491517944628788594194262421258954221243935090489188195812215493817792831796187112496615864894049630518556771095308803950666539777638191875653185112627396805070758072850428066796764250069971231229737077001030191895075477725343097621419877613536767877607351949891570061089230031492665186432518533824554716707865511756530244846710836621229224213891804999748213922569015800949585302281851808781547796889846478158509934568932498209344626734670898759712433946999382082044451741651995970844555912435631113207896256348396411436747415126445885372883360014445295527681284356482589209849069929916180366523525654301445620645441360494218832059638785976480416335420456133553952106327294552776569068099710386646542752027965528826027951126103857436576614832796755128636553386942584261072812428075085891412244768733886848090598509344252564686306109282601319153082516409581783165263807772595717024223238110625217927201155146495024921551750492160619496870082940093154064532949286612077239431187553168739198698952229121127133636647059415829354036140179668924636249798216531734179264734371536606325379807515780913098512387025121749043480147412228879196028256616753187039366635823579313721607882210667580731874079116482342642126568949700144876230185906157988366625251574324805349696635646221861061684540661550970056907859075614435750091225809373642099310870095811598675823546660823271068668363853184406165975028284072752051387777462769417920688497214619485516158617528975469377327119998389016681042657642029826802861475163155118668748630635980810809746949524128296439141125783195178581980324496139562833868716263684833165441543738898194969029350986215908990792171380601072623322609905551728771421805325355906465948377654910322065268851015467027434171083822668178655655463338216560040838748778247493289852947807707002955051364689439378538009770614173294635621802267173986496828025588145950575125526259506344975054765200379607264241584038723850740394956344088709182064831293949325785990146642860680174947563969535184456891307416021808047085414088776298517848821837186747223768918106338529670254895290820088233883541330003956674047595184701797584668281767336492668701400478484838543730582855241629236291949697393265433375425869895069517723993687803554629913799803278557816431998758033590110710352315163284496134910315690753049760849032041842995186136950917478597467300137892755850508171681585242178710933571556121425349694906647680295167683281603231524795587351077320996794407127248432787131415870074294380254076981311472175224329593661817479525780918503423701192657404027108953215118906484486169875157226947974643042505400987872659884457998057541157409079299418101294535146958571992287489801640996444823558014986193098625621806889545084183524437362248618805407894789157688512907508411975872956655084083349336147799059202505634568642464686654627244381649806872881442018887032898931836759501375593021801890909065838112391934028040280858638578355702528906853527845041142288794013916022755874639864745322586638244365449795019652470083696761738257317194313651732602009062543643809288228778520967396377694167617065243832690472753978562819534672289833268353129543018867865840838517238561321376805325597772635767467605524134234512547408441204577779511310152381833742399600072953874963325209374678808358450341385099257172000986762260182413800321917655998725433469672382378982330790769438495299305390086160963460577907367959522207629475699263031997029066181187245175845230578901382500103464600882493778478398570352706634834283597186351544309646371725553468047287454953608895753141559863736727944002795530146849392411742449936219177412974209166517721180931436564768647553276172168225951519489056038524505820184182067268845918292079714258520349009242053967433758204343464414499438306243484251185354539519865004473453028364589100268339151090129385352806947142191073299115122146477865436914360415051076688824260772874035372976562399294057856548476481268742793412937480975778173513723018302673164151761977897779864279116851801169322754032527652288038323289743772818323505601402927208617555657136419178494655593278148705967256512391549333838502008025695750354360486148476953916238326834907747873836135566842187780113108819139787281877396410165171298711284878478860434258069135928277339874117981332069170526654802656048688061885381930515855548010449144335777583220853082648341857141019805566032517839591185135634833579279764681609250794453566157356612516145701458344244838217182571331277073619757205009832747499355810118630879997773791500191169590368870127791916156118873268320658603868424541952656808937533143054521748999886831063881180959263995132274264423351885091556758667698973204475095854129506242837017858454958451932449231594263731669500316443082001667452596767865645687832627052116054464483776774559577881419736937093373664977022525980815098165379836790624347013256422229423817583838959401083410428394460232538156034151033420941343973197394732700520541350637172645129902260792492681154230769500467555147976241947009168908421833264369705844454943896848575465934034453570017336865823126689620248108943317981124008932167523432121443174034793495069356777571347388034551403196686800641961591460636315681712901892798890205599467112573938052522020378283494415249496163722893227997541229081206206727700168902175647089585084427818545566833670819903454715604659100431983375091647454323355434008007350030984320003250912747585392220527638976090099509430522714049918496506949245776917269948760569145729624495641851897402470840533420586890934205914177124618987276124717798535808817883243813319608007534753512024803635429149292536674742449883019621998711128873030907041249217040697891882464584843224272142939433298887751898923146330947060000214870279877820179180601108490767955830426228502848314881449459468912769380659884462601871652541554373676362181375548068808609479113427335082742457447336573788940135297338301150852074458517035912634787582825289141203944804968231074151123627477211079569011188493083262817722121407827139085067289673769459692401031623320248315284254173644590564725919575566056868081770893788266529071679791989173737038954044635452422018621165306435617027638622151957529133731380256568788934726774427983957362471817098546398235312417913695936893388617478980593261706184260817760726761561934724349363452093528519188951264480618804285234596649115754935202633408406690300416168498244390594606866508185504127907866772677980540895173039485165073050276488454117722368153343518474961847334843481660061390371783992099918566011762928584711034101322480218306451450540833309997552704476660979637024161890565846594016600560420543498840150359553819440306929953071771381548011842133662204308451097685266623074765126961806378999476371148549853974627973448334241380880427416774689888781834007558196666812754343972461415531581348163789706253898529988475494572328753768197077259303630204225357891991983344278668438381846572389436494157600608747738338084457773585253674250716292833371000312228963233616945723881046552494644252537754465833493307261421887259410632440979473780645862441075569015421724000261108833844605020537079179140603553018746991257821169122449285116046490646760773150505890312928546819205705847146233448949603662479044016630503938286666385001943486691204922555616078188215714535029839719473568474494324841963845325929159498984079721041408299988479317273914777669196312162580996607424239315851430493201803573392736558634226164141137411209631194838443700888727727648758632293415395156826291672925075467737738154490065815864182664065732769953286632762987115014437582265139347980577878514001927154669663871968540531853413576644103567483334496127798713265551864236262467408160592512614254178719634748428410063001010205335915197720155813838146613917928504874542730643500070214602029235896516537490825294587465731775294125953595212464045591571133934826041588048389581220949613349253574033423801882647970532525479017379317724717968753363917286410571274448532263065819040532289768283156145624548826957775728918060769976130635757052283073230847884339725166070223306431988019641853845527148937202138974982150881459932638285905496762516358075352545808110712681343250256379002797341514964153381527861540437093528483986960807936524125497882223124170489775961529746149710727662264138919346515592832937056288527840190857313111374128517258083751003817000412855961945641198343038665215225111345949376748421515243889361932885493855496203811078138216360940580283351741057898273033346374480817915678906576895953371692262120172942536554583499628221531817653930880675560854929410569082757062359677214813120840827968123282787872216135210231462623918421733178733143498634683334533505335775876888004859569195200025433707136960678614099509977682683514822616944769312079026886055483560717466507945217806405803034006302081715685622212292724028489845170330446279696056124852515756958650665885057360205709176364297012585225862210017183837585601323473223420027668939931531111448121027397697247379297559391899026010809206173865003500006415824251264472292605683302796865487378425237943009418997581075471472582777633685471904728848980709947365998283346278057981179928991220098664551298349662861213550536205380590115188368454845833383907315445810773478235568870061691087859818200638468857704674429098918468691355954668524592596678347950035539949759154418639360292888123573988152127423375433396309851923967437516731356674174996101796212676428949402795636499707573849982488395509487766097123847518217703622543989531695860221024697157911153321856709635959176538885528299446339341431091982109688879251576165774998217282996742468743998993224939894826179504059255701901556591947791260095884841867303553747910345634303178309792660115395529528922054544730091043685787456378834301585021653536416271549798494867857942288052894272160272447754474530690736837154077216652620716807047568893811346178942437559062059408343345077443104170118637659187665742986323298487081901326082155502447810228681956170602232851017056165294096562333883633194979464747768972603752382930672229980594879239415392418218403973551953559879174627066367425439055511104164173881430165896958622979055793886876034433322141379111573383515175930964438761268791606815227444867780721030197542563918234529036123757398176223503424106872454982115700298234816154529274432105449893599128424766186580398587292946319696879574049531818854577674300700820704803466476025600909989258261465167993610221317046684923001005612236064356748596652373199005857805293253128193409731459191601099998243344666601308923821181332487613864223366720905689075179126860811167591637110235623673490746716900315915412897067583211376651723433376258884606052496512614498868500983612079707199632168710850843782656713960396368396574928049703882378901575617812984610797707041977053791679313095745534677525757615677020921536303353426523444383644177296470118227107302979343396065049212255805556076865847052642159990207241227235026541498828164917346035196943241174516836105164667339887743180924290730786155483698476289848746631635010638897011874041970392603739039380376105064151855158982299166436621167871084009051325811189723967126855066264089301749572281981898369694916946088661825091891622741478425080603554931018477942210732560517094449369467255639777823576074774008883501206652306626286089730145638727549254681115501058710601613343306653467732834999792477800915543254700079013122016741894268527606993687329769480963863596377141469126249119651375956460084487777224168580540536253049444625608919700932074570397098584462511987020723720366892427785728242903060885266892608438350715391563860724999959956495751838173420322215515098145715675339823364162809742150674752396389505664103762298947182408229600429310114752556394927604581997549839733653343587190703938626855956529847244581684057882539674963488565389230327920415282273158879928422537846092760818971837317114299484775900723981183924854321554688513911150566458445000739898633850261888306223620432020309168788903359295907894241004024637947736469660793092208654713649223616119331657885752515847697419950326207556555359486316772995870006404862833571062580400187528683771249175697766688650807808116697358360693514451844227730033404333508206777664249867634386259666711012665750593402025169431425823371023561005595906708035708618982028109266297504464773213457875085870711881651935985679127371390213268590305915097995804435018548997520026883491248531426152073080641228481270343457426788854037093943551775881706641182546389383833905664178753375436191029315002746623287475764189122976972521142791291979113149663411287383797829576225402614412401132011391996363507386378929825720612373175715679995153289245266918825650595944574536811834965389716048609587099746485550577451453980150751604204585049710346213408963655636617377518371754933835504762187826589600757589850548112626727795140602394268515867156849008316533084479744212251269685063856421707503589919412421340036790919852365604227130652903036756820714708379495790657620723458516322536716723566149819693412530035257938039803925741077870194115017109933953106034168146353434400987218035315760716558445748206497079917002310512539603442709726770725093834488009586848937834369460586131887751580944795427872431303175623081960580084539983125776594198873825503342628369326688673785966134627057537680964289345808916709519207586908742615652409503434361252470438238120843507126335302528004937827527733102193382666658837474425397815700631483343907862322183160038254012267337935158707184227165435262153457214814876752999842804355581464746950989721138113256406390551879186875337443486290369374586287463991108946533435315924462794340059941165144496191946050255508463055248079499051089500726967161475072446844599894459379099774689790155764737794548034740387216424420401848817617724303087291913271947504566281244927429322447750030330156131629114786202463414303595527277932577643911984605345908992352825470246450007395251321275226352387863420835261726439778617703700862684563051158473769841128029271606283190844917381234544699096678039565253830960701415276643032867759899911610980640383283655478422342804360339295634154265585122436896918034037659521332106638704554399449778396649351957715084753699360390177436970467327123330172914398742464014558613037532537601689417816689643525803950390771987430355761211975430454397343891690715026971192857076188685346968948436400147279533551364487389397131760425553587172550193326429932918308268778778149923827425206153757076077753367583852603983505400026026613655352009236444915633505903790169828228659165994007276451181670263300156630545788871890760758745323163559667004903354325422797385389913509278694093181147078067066971837016012421102556000499043429520603431650619623083562974698881677825125185540750660752057720332079073541592940374152398306892861385524698810652841827509408332527448272403036275283808087509763044935646358373867277368353661151402032859459645979247497033960949848865998315290938489472572935334540274303690389940877177784036770049488273725074821655023790622309172280938517909075006172384298210226588479415412467245516809090776363019770130982657081919817805047932508815732942040419201965665277395334490075878106172997655989289493534106985212186172571365503902247752291445294299435901728041369186016002580795335907601636627143359504838764898269930518780140634230260143172069642199762031607922681141158379823609278278683081971566055323713057469500654057626574560576735191536049525362680981879340593224809924790081777788500947677380590005832695763671523280313239600659858166162379186718701495727473073163695556982121418599600790885529850877769684867883011491688138996736677830296975100490671780762602855380770439067070280569740293421149805360719090826926521484833268280769146112300643433222426290005059975238781576938948064544435326381582675695595481893197568654890959552979993642713296732533342015773665042844054116332643247013542002769250244254428857098405303091054130813456668792182888180103230647545455648133985538242852800270853031362251121595475269090630842294572483878433432822836097176389453005348657565653427226571846353444466196859081464166694300471965451864384370743896617805656424833163267759288158237159498858462430490042413879616128384606036256696439657544734608612397110310746273548778242525345454324914538224439252567849490188809340764929880617340432035881491564971936506619702313968831494186947889646699584301203178094096593546225949965363241506018502566745105330269483901568493623290645338883581659918979777284246215309830723603325528362469169691831242298698052546110031344836877177020651409461481143616379648726761972288966460145928064486483098537478703185932085313936750412631332149630426772609328678085673981142005067779206505658302281164279287441812088915912541832886170936220325359745576480862163988585477985940378844403909477018250455798099628292403014858947182619006908386018617164077001016539826556645560631710914565091812530919231675590014445152888534326531980977252830118083113926904670180995125517542704277143488741020725225700078005082114245193997682225024650514182046813498682012436110515929290519909772223848873887306559740595751707004260520485619732787196428124628147248311722587261497751390258530824164319314253094487694584634240632112323069258243983894617927359920586719098451865323446336994620092957837844948715279368589444233099358740963408403172186811712395553784271384742376164061148144161770901855245216495067456240694780103687407722748410231629777823997425051036238254589981222630769954283982396987520133165803012522499712266287150626477622148836705008613476975610517150691422172837873660657778347203845733692138803018151157281784963259910471612130497501552018107143072580182375684923442862760325203009518105832674952687701043874110436818735329457332228771030787838261757298036894225259322509358587198389815908197690065749049448085758487606919324166672709668971031298029202417199186484926136970371028849903280939821707551674497963836075442684988042407382798892128524216856756153013734689640967781696921934078472011968180022463335893713048234320963391996100439091717528828999310578775169241668715718867425797534381328967374944794298845834655982752786668526706489985200467030280179894102142605040619070127338240325384514428693501342459939063014236780460810201564944254549528539193504089651399416731321172346900810722043216589646352264043723953014585756279042718055873029205136418217450685287016627369450444283598496300598741595280416677234814694042097880098854524830641328785396264645215829263635456171422103781737233549989124655875215052082003507179229013057017772517571044762993288979482579795830280893266638673417654816374127306536423843694799127353875297615877069739409623051384937988984603386374235753601936404233101035555541032329261614623583930209115553232916562171621749977556758407053933974825580252269621076177613930684205653094498872307288783189232515188222483476119948365374035178343002981067832803927451494158335376093715010680373811043756358271846781996707525863499508795162001128158576851554495424787696369538091186073474038120154329980833023190625628580557463916249699458079787259166234494308940594881731632834811210058105250301256156185878491117057740812520737021229677595784783157616162743270045614731756327181049266240331260522337976253973002644544921447999175714555077283816524683942479771054601997051455949351054657793129222920482797483807784166133746581643507417555880129503876052417036639520626659879613882382813806097104886691395965174951314499349180238800651910950846642593387504042105119928257987503887016292289224141347769850026011544494829233722385461261132788556343805383542217088638640777651984650622615058611130163650285409135972501077651869564552341705989949910355722448802982971807230068792684328866419838286152143894540024614914594739156072616079880672460740727293748729335704735415369876478824558032012292479616357264106414955597274969264023587578855193047177975261304577780345901860117595590230500191526636060176902151574731397662431122468714218045355147503680337367225394655239338724966098856652596275584501620394323676729103542525499109111400359766911839091768925138645715791504534188825744521778472664099399700926349790082625191850282777967401954298776803212234016364632350010504795528613930338467395027644956180119705938741261868683936194041538170202932619272237333117102582671241899964591949866679297212017963416234871217811964640440897189811933411696437937756546713090652884459374490003138246809144029257127269971534724793432115563220859479430897917851783002564539809897025181452131167072239755429713929175808605921143206737930047661230111041293210390615652331851601377757180548603657876723483210988368413449619996255020440064067634986199572779111642787769005273669147989027387736350659823484995860626713531613301593370538718999657357668837576673411108844873144287710363546253473961267937932097969053778529873284527077354982636493896986760042134500914738176517440733777684710879756951767155276494588231999020438314598449846683879160035957026549197164488372441455213632503713797354967644237889943833937043568666135929904817815912056911516656072952277889500639849246320569701481749429443766741923153008187797400165412122205821025594680564710294516130956284954632259032359961481055325719949500150962497839243501618494954647780323767731829212200997163898319231866729503653947687382690227892346663135042237829603303292190806319286886551123271587657326976082369994430479176204544080937473091564611933540824331976269628347431207690222178059357215532577391860675565714722211756475888730482176730750448346188665322000514150179574846803078044392089401985363076371200142047130862994599870926715784340543851363464359997368929447466441393491701181695013834342848831102584982132857737077191458495451318724056470572511595041185773660036003060122866849696946462107195414273435636859510165530897530985290187137260809849865367636033963449457822891924212699301792540484647575906904556536225863330152707041224671557662125030781982416849462047493589890993971127600389757153151667071316112060342428713610878596168913453945115106743567978178062674905831435859484360671497034034361089144810072078929236499011817621240169965598581113236198805417995113678852734444285515634463386043926840451672093551756748018918663679345116085421294583133874907531973648352316173468205001640179981223512318141904993163451503236545135779355016892455336972744670799897257616705590716549167546706143472681049661010400877009053619394110217256743774408601877940476850916987867014219702300461326378574152400946500530471866706265135864710675343253128599019842933804065418375171651458483671678937526988977652438710742276305726310732095249282052114783987228157730729419156447098328492069657734134597894502914245960845881378995944197325861865165492345471153667352615353568539774728231457358904056164743412481038126526105532591724111029150357832679499116130897206342489063126240445297905299391428715005434929029479955556225690559196127303991712634240999280065851366799047946555067986370838125583875442625480876254596669051848620401760826729299086648582872487404069247904104206006478338491596554999052129010395899770960929149055643991566378765191404133664997739429497185694948279569558114603963910017300603626214561606502300925567011378284630597033545734392279708165638914497166506016486140255196794802555120391321334564795491353110995885983964449806667152513753052402921734249128207740853969146506464184246792352334059873008243602102961562534791372547324624391467803247002145003389602318822874031742647753106196048257649019788083258373425645215226119013819703545765332128614446554366791155861100510421228604737714707098891061878350597566757722713978740958221846166865020844662521889307230455412980961449015708385057005561243718718865108780493203872975559844369188225379464349578822052211530395514021333390018286319411988892556104448150674107959928397493181632691158570080971381798841245094966341302231291078314934939831406983738226793896001571860250800885806879986107034571413906477043773687866807903151564179917439336670204533315009269143681997250476190572928004223405855385511804113286189496262121773498834422936175785258399656179896792752790582877779529406010956493914918104217388338097650372501710659588988123776697780674154866304769991375475228586951952461138047394148160850496024187793429177468353859428885155560277762117813139891685451137350934179603296834949025222415824821160025059808296889132133173277757143252558978514833831046323014177975517017605759541261959175924879316168042320255070754537594688318353663503739691392914320211765662588201181316372095231019756223209311918276936878230013543670207396753789078555939474648132311686119931407829600959417416842446671448727459037701251080457168572788693104332667101460454280004151358589818545933251219996426723301834787931067938114403751187313386779742670907140366176169102756500308729507101392813100989883686232608479225105734952730422315864230734091969489521487460211242169625663454005950176794809353577219805077122849801575401868072467486188545641702274720226196740419147355485155110405721877393964820172434034133045952843651251460717539868057007083028023755721090415371264702854995033677855194005794887785698662521012944977524592336033065071949817919209314917444492340338828029287102041522926143062577692889152346614779530055102882309086197002839153756030444851635891577364447477870159826001719761919943943900561389115252608048266502595522712716852466938135772856485688033224124264820603936712341792734168461991643800451028925417210802652257600842573034538730457986954143139880956599910190936908692172609006767226765210927203605855989448788253978046266952824489888082792155279439409220129329072470688789663291038740694333687066156660918213430068646096853181887528771013314574770775044837655480430874801543154160226757286286394451165560499908161487988173393047407807671665269496564052293009059594586788603256973199783355204661090076597528939494440677606650995670349371291990790858698244125219570590294174189203627126093835751246908211247536018107784739197605316796581386265685112893653024411942481042307074594710258953545464679763274587151351299114037726089502917061547986877955946212959229499260736935535515046612952363325466282154450147146284409277034303705822226963945543474123593598498965028765444470397451339764112653983217714967084889794799167337034482995714839976633125109947532717106653502733354771885788456931762445895858081917235825846595867410887630690733117653730464924467624940950012184419346299739438751640857703158908709577122250780317494340086459438353740689583712744327345659365879567811741754814701113214626603235250967643793886527721672188824599466767149690880533378341897260438952647831813328540432017407746034606011655549511524456999361277130639712152537930187186362989908325434678128061398999302601029186581486673685209623501693297900306329680290008294834075524101123943948684550153558151878336428491933965425312140274088516103954697312056416092885374300444977873879128406528626832881072264714024746678832915629966241135416768420968483499129533633903834730155658781110722952909971023420450691679068950320254153923261527476969162452183981548331208391985085551165877578424027528366396430757015179321820433624631119036741306416319401403269745585577690066857052744251607122149924421412383520719374876920413027672369777800340182569043408235064505658603513599520746132107328310516549988744241771364743091183485742568966383905442289425411052292911971056729866580094176610669820955394400446394870495257943943696645497389538951320506083915872239818100981945553318364693794350087262380412380181691432960010842924204039338564550051668741455671868744212765539335802456235473266834020516831419170929161929176329092909284206796152305129650974326114744915420696031575776586760575781790711739642822646055161937322814718427163076478680783691205879360653377459829223434788455723319271950684546191750206380737594775875375218727352194216303939200367985981599956343505975842444279137983937888062225151086337585946580557392418820400155992329112248562297263817096561148085037637577816267830194346602518630770863172585396466537446046914648922068631049172643295865128340312667302812980580266195162908276485373504233806387019829448286379144646814639056309693751138515179462284276641534500201225061556219515357101357206296210759823677144009321351622003278395397865156616645742911282717921780143761707309301392265432460323272742962402927577704667590539513527730164442393858131153583695403251228939171743743216585587057429245270334579596838507243276314099829632812686935926861013501410108299862491201034846905583280290733105768200439895398448140648207637318832267872092653089749859284577475839936778369227756283300719201373614897964790553093597335549245129664544585555326166668199483566822130837514483375501341541979832666973559551920573317241358527746610010374705049959953399341848864224112966044290403599326798769675681772256428816106821212584308913009429183166900019152261944226994464524970443435107691356340493548954190352878125558063223247386467193099253436203493311537110422696782696448717421172294141815871235649632958362436317920113875462180685274274256756338761674787279236140640306881529993752942802506053380448695201050162216381680710363623214249083257534679495345742184293380889572718987768083311520267488242433868186347881975920567750732528070874643810435555446015191812360411997579120846580916990307602893580874464482641568265082913954216362751860351307560392045659026650805783890621892449327348241266355401958054551628961267266656940246868484985067608047986493150265722297509354889796434261374531613479902584349113237355380166893462175644154240405608996956410324735479495195592883115419552923382236315999570564435458227352808754166250818431177751778879985373263863874669952863500490471781999863635913978651778339098533187206078733766059625724409987055001732396998090166251668190332917042751804956843394914690486507174516679821887778486904901940365599175957314196045909286261672462259393724919437606963206117663793304183633343297221301167811289141944909419130277427686311935659773659415170051685870059362227390547221628887766561562122741097656512323013574032671921604307977391765146007160875204819286525878994765628831116241218046899939474088470823010297543490405219123639650291622015112941902416737448393429382597206499973514850885064196691518907057975038561912482467442501464476569191029105095641796962989928626149988487529908791930670950543602525019644537473937719257133189834927637679812817078003155417881730949244103275215371182182227974460277881785583942267668804760930584871082505941554348602423381651500693978163610973739889212591703747702290038655581861966864683620767822142811993601072914205751563769472035726817090745383355516315565402756127300206392579690195638899464706491308979130774197818958920002313412222432984321501194461442880855900755987660414871003414603347946800461224683985050953422822026266459812792064099568276796219591804598872619820079968848939195373891873032181435095490006302735545708985991082555510001047447769044733643456910050131552519967385815230441034509689824076585851254058048363011873674869586890558849821531779738132254286714220761260249762643786976976375725512121499970510180249915015299418757666975357630060277317807800005215884248351419436083208487335159452669121249816603363987720806443757848626227631443939223578681498136381087489405472152280330464022724811731485829609422967546899752871789467774842816831220194704541674338692416544041530640482750963379535449893850913944142270099437878396915348329070634265199076392981553938026463424855044438549339481894463203411004094095752168221286791090886769496996705108858771751370819033129020744422462834106496299125416427470271672316236474163110779735929095934681013221033138044923257234367405509834117111354864381275585352052375392087803746163726052287201663798100541305747093897706373808177449685956462205094589481171941292280014551241843505692153589961598474168009278229793811355647553005295868686950743572454144036793448729796028212217475714725656564381909167143746435243002631325878262470930787496786604969558886049045677792618843148479261845816241926220796728476178062149645138433640743732740593927668324476416143855442319033207518019371483365519315305828244513111982534057618510716210404480293783172250231720023432658872993435487923140370591554149448655934761188435078010059020120342069218603175607473825398458586587640096548472608817073178182836069881599219719392470951892946038164388099590768734737350574381147151400545560375006421117802769302657280618866850777065425131039058538563789030995480987207334331051458152927099265217557025073292049436330393614263163421929286491076542155964406115836858589196124676765827292330116993801870553733838215025072229565554547178532317336742862953097236436863493753319752668202916090542062600607481344495370154374993708958509844253849219425725815931017150433886253495815657269127538933309325435702500717963611973875430231911279904037243221610336636550555448254357941773690937094101647282403271198055437020642653340221644784226512880445656809490531122202845135754664543664729570063039497454499425895960493417314193126769622924343297809840240273897422940047567479260817627738613524878008288470656344048018804526255973945093677294179393628799983335289019952573383126440887217361537185711549491995413178568334243366552964189119171192722916939513794074920208818144877244666331061657625478335245913221553588332006536142189728425826877714078128350578319342917098088922208110053674981130083065651401690919266527686144865777848500820394133465719861015993792219610885212755828393902856229075247307081107485815740595380639126964640924253159557453251422066169356928888831277889547650739575007234367900876567620824903248851364721648729751201830800276952084572110342442384845509490983275605130147532230603005426575491124736634565048285785396209069946445689403234834840318072981678703918591177842620572439378926223607206431613993213500948643771468791196659436678821253405780479658807110135104990199866120641163134115643688147258173086878942390238487907754656085778746467768048336448598600984557764863997478832544303513953507857508776986746741475867280268100190749231059983402451867931159195236560740667292453574150471262259640960348471718854253276771696285649181628681046761890516713678643444446009824286681010957987240106052344674292260772023287440317850179201409351526769497318900334877743781677993288764572348709047400988648183847323144976128299923792838424414982569770646220497215040678967957603793996656633568126178948020989356863794589497140984158679345516524457174156923536535133613175391189900680038957452564896172919411603454552491598113800527621869393739169785751451160158796249346351551492831457539610696356922837466239423625440606845098361315294633412671336996743865768521649198081631134173228334215225091206641574913219562543792876747813374487986708538030595844497500777555858006162796991465587177970417088767217074141319607117454307887766256791849812909745027803917222294297599022357588416733964625660734193276349773208627469527250377041927130948972596999176262099920198326414619509968138811537899578672743706885145780809421688640982495176887352446633772455042862476748809481189506311879721452294961960916524917610089095489189995596669511117617280664436346080189457967497046184135482732874436914319179681628147601774129249359430556793956503310822455116998851172630318970623630048929253326538648209923368516289998260602342642087928202396116969098495727138816260340732448105109178190644555422057692950935543144703202015306841713771368148661297714778045546011715309298438532798191069125707944206016212559946755818393960649859938627226009635775589105110535992218498079913973968276039456283662736898883174839873755713110930946200789945166322856477034377675333204918057446672853285754209679595378778744926631326403818716764009117708844661110541109741057309472023006769548847474210113631862696525460182613629973960396231148800178515728349535716481150888312455989528792658501866933843483701370499410202976515394808638370260731196595838841951170328501504588361010895609348639685782109422096706059801544742290289377982483560558479303488947101527702962350944227467172502928500406251494968365800472025713645825278716860572445821723444907056697822364207294100142897532485242950994538412296155281359864118325462536671001423903525865331853653215926543959425811485889313561121077655472419259638413128286273656333549081758457743307153609971609003547422665965290135031142758971423681552941295749053916606306246047994066390999803413364823021924190025837983600979036911748337562292094463536058365399220511159760640113732613309149289206130932156403139693213863771404712099318469784539151852359684239443320498492685784651691759905696404063305731655009905103147052951219575418521186035087993794682186293682785744110206161823116587916721799231544409401754123627095991401786619010982987189060200745578522171927457531523148922614628399538588700215331164277823947448280799626545195522050064789611416393447444732167307856124642021179683690801210397775918367718982921745422423141570844403430114533695179720647040384109230993714503636000411649482530933778290005650687856725545001769553520689209543355144901596301889219872840974579215232361324808617152866655360339992771258877743817722731491274237904288609027030111347663120310834006685838358924829402772246737106619427907011531907724023524972814693577513330491572627938672909156861846337216460629982259802403665567280557369014897143645952615596254346461194746540206803974027776083126788621248250079408049022705462977917818992722010158210827758191574851890090858925364028729688197340994982645999271415660397022409986375358356090982444750392307554740788758911964039896675669322148514414256808367790858309507407635361714287544126371090809830528750612971879761324842403265749633337499223304155490612469991793076554481823161257288414537982655854851423715394885772730276372334815960581184009552846113694957022917035988615441413690106362631087323503619536299470685621588061882353254153752557573869114899694461474551319220707071276487501043815505328260212609301822282875707435701718649339314819752178381225799305875829660325823007516092679996993935996907419803607791467871163963250056698042701652849164605406353845259562947686579625309774034688042006371430418019182902912322882146107377986265189804319018826102548004705371194595144466676796122278710223329898612447800481098772030745938513177366489126051647258097974368509325662599547517601669855874793924392286813170302515452671361740423806742083450710752487789223796669507035129259568216297916120968611661360498813605768138280732603284828073818547152535422929856445030843268987428458624982803950463173251399227367030974914435774611832753766882207533979445087413374433872639355890194806403077063070798474585498068939183331744163198836340890489765143146843385830593008192575265330723230776983467222985991264686847156727318640645227868689407067131352720854792507683173444981000687303409837023224836463923375366273773727222397547846536173064243896450336593567789395675850396726157941697290081295833107620684780984277756918867824164531452138829108732221003808204067701860198529737396641082681383726978982387451016763505444028635737700844327230062775804002658502419783012356741893305183160924059231783508890217397197386890728778025417743149603314547559915979127596089093461963305042974608271203015774342911626783149276105331201824680416390250680928425497254549211509396343676987905992472907076806859390911618989695262313375478814954120667022698455498914988031684596301319471111923817069079639993784133401708001276710805670240583798112395352559292831556426593874251453822352449201854345175167828402150790428315361783245771205546570323325710571366862985365423575370120387232932727094205136086298293663436943226837948093331125296732240408076009860083394238090914780966571775221935448048938778499586228305720175446861543323916138701582675930364109484601337845440422636005092294714554000050235432976201795777524031898253968866282821521575917018113181504692005723268704078575955037988005274953864713803771888212241903052888604240472987814590066105783815396287762542982892728864670026860522412865817913989021008234990067164502475126285212548992355771055751244554124249200631882200013212715742794065976597704560216356610011110884446509597523731980508806919601716641061526067945820549757672948527518129196239731622551471676059654865736348105503710690913151766117890826251665828895598775761097372893918286416192500366579405091001147265503595535862271015793934489924933492556289656609828868923797288436549241441851788955656022216951356324919965254630456931622270320800377192318357321664628582855188780580119820162484777061570979345157675054769003590228870403643282917346275695654729531060173811601449798778471275962069613257357635440175478212346920843117192972856548473307169900634572979702081966507962705215764564232317675012055539805255243982923985740348043738350939981240293348761892516001848275148632955376699297202571850600129740839542794320751740616817942020629106134652999402597615425432383888822204170854522353807452271444313673437632355867775066439444856535236116654780446065051742551161529603157874607234057781474780228219342919712935031513162818914029695250226760102889661364528780286949027209654839320557616606778417814683039454361642653925328583480136543379628164873125237710408118579714801280720586609597709891287711751194515967862068713400388619915201593185854630025398192867421620561715181345145387155168744215448616760914637045310334523421690313038511076232831943355070022629884449342849902825607072029894767068926171319906835219757509562443302217057174137804628486002235520555813757940123555145997712179051016189171124159704645937949071899895909551335935879360482854703079034161960879021880366722208047942796032012349723937175559732927157693422384232966167070429012371976811284027736051749676895666757221668859655952584248000113462871529240875861768588835056852336234963572547151702141739995945671763604353853432689865057628681282976153798894860817202607322750182596066060919986118413131314793325047399439715389385598475608389279916942289628756438124940034634534559140743076538148658232073427513757471166554423029961159066123522736835698446135579299087839672650685266488762339186260447848359137593589017482066470920674514335730599137819459423737262232795264465566723953482246558540763088513203956389537341002551162552876134449942266773293890096211179982007185623432154837590976512548282933134140697089383841855249618686885520263528471945867678828400616238694465741686743965065521230665523354861565955638790568777320849560491638375568512116358986255412267962989790117358177964284933534505962670743910414345904378385782995062635528491483093420884086929066448583848477651228378514155249954413277804866942238523669481565960787023768248973633533541340920344764900324867944483590151843793357367627480112191772614643583433248192792164160289446833291676014383726390042683065108294524151823984184582701354565705566660850552534838932198869602581263448225476341377034021812893288532685753512613599650503476216278400094091244290971956087790461786845738422952152396254072191346648847095770796345110677485674260374738834710938468083030738352708406104243905104866713062579401268229556494962012293983014559765948400082237262494878830898923975287305749227062825128220195704308259850210491438025953941771777299279659374951847067054543987813515252986327728495945082366903902094037692834697237687642127989167350313614291245955390792062414647643356276521411858419223652883046702871064103462783228824334151390992259930180722719502270023977059907641270105436407130116607754587432300960601757053695628732555929832463875315822864758376307893442142170437236538944257589825588606738249254733572858702927031150026605973632532891713602110089868579307715863406994555080871222512416777040806309254664143023284534415918424756079721098346354597361254141511236405145135616048183701050169257907067078792055814511582512473032489283794239120115296362062764790203996054026581619724316979747463740208839011167567686263623639214849759925654529088813552456480909361441409947560331770385060150787702054964204187827755855912143149353288646483714801641135670273661892394392030395250372806397357785701700131853201372087135406315000407437806568011937084203322438429616498054093459317533086246829945461341269891691263542334656478288254776840343033146777806362879925117482864383032570565537505609088271853834855525263564659289866453043472631027987163989659715183529537922724520848806996018247526275593731440041264517751223963752995439164616271806480614139451407106987155632330040100694804120020970073455539753406410477237164269756954732869251253247094940322678047366076284156397055108778206773555429973368837062941172407373588572689997749198223209940265169059260377814322790090931855736047742096625235635995693452714761680732679740195171745308102991264357336431716829716549821512160593399555355789608624820271911433371505289862750871425125862098697376858745030720304930273199878431881677105575191951608194704808822445709228053331397409650342559503876945712351942123982279108494581887764957907479311310140212183462236172656871286038117902693006556257490430596807630557398381827853410026933598134662188844235782919452648848445760409539593545661879576642545444974712843137779241535618733246303511302987748009483475709050092104993671231189939748664862076963734916413501666873168992956299171044150688504202914194021803988212174948628471663910367524030497777001284076409956991414068245583559152492932741963947613857626701595605035888473611816687976028583828531289588916789288726712593651622355517542726460227179741728545412450697505067647254847449082022098395162006444435380281327987060786678609231496623966651671816657904297157979747474391144150335137526791294191440608875212554859752843300368677984830112968312529966231995520675085076920239596283893152247859431964489339008291110461757794107453004295655456169332195202827021044837809250699838684831996363145592968506876985511610363128356997435953453216759508184551668136395833947150819285152791131292512784760604439816422739061123100280650943623759188183658516276084118960580439119863809954869700901607996860000803675319447397393608037970553460720123719316939997542635200980546162177388694624622660786596938715189714686796874103700068162781576354322693100929411995455607691842505791102127513598118144113645732078969850566911612146176814640500099421538157159037464390494825591933319400230223543714637286354631970835461776698762943601650019476952818821085304445942154828287571855119676033354150366079933468197315763087459622226179159071052614182981623909924698802672602203069956906623709820397191837593513607962050403464199833217775114124751800485066997381855419880323266765367668987236726332018501675515675137961512377234584023445273088585520663412163919493671220594199467191298957981774513951305707880759348589254694765399149739011353749931178748369743394813468615421658171069135074283441926518215446075325855700692437722468100462196327980353965482168323996816698983582533582710609099895788844976017687510309126880877499791065832792127673482408028050733890927888185084614680184834604752593810955304950208365884841624452380707388656809698949909266962058601628549871154547043222535066997504185015248960539440997480131457865367575726703628889052959553701739410275618789625607971891838335537591283748768597396565583330606956914535625285248563230086677496263466773625669927206140661154716466042656728650873234548543962869278953147302442071060661056040764738740483908690691415019378396255354943925728011899492083853266864997980553320415667373575947093024464519153504971127095703543133379948903699183558184081763165175097657015464775986504543935806803981351209010917488391908482893725319641145480770555000441345256214288645139454451881030587836987783724380006126805913534274645255004043670523018322740985282057479168183878673310669721120209021027533581495927540072165822094967510340043837748222429236298483911082931620864802070705427540375396077161536542428100860260202946133773304208048833763364266776649260869360236873191819107021434912261486446098331230491988911742383899688329809064530957318592501042416818027519831570575104707939450701132078132150506504865216224237732183162190164395213948038178553151636525654519928194198919844652270182871596032370694697629230781388760227404564082717712569753899410583123689228016410887178820774935373718028129222925007523235246510114276670929579939387211930912598004058434006981721310923223078446443320198153589919013818196415543008299189863028229813458933434302724029094288918620237639785160056013647662282134935019176878110818030005889895039972099767581261988097381725334166834672746564264276485248722833748036103377971214794823206290754115965927727779586429197303375514878022827057769417904737558030395312083514321067324168534621975655443223280982254476549748622664697986558327084256713354773269242395142811251542309225674378259529766611483517113544114577176274075766957578263695363713420143909169149896647036408009392051168055907179745788471831595490646388392495636467523368324032106370390775505254760526871041202064978789022844047906199205943456612058262882743448003666238597228633612305118937262936337602505150343333682347629515870278098306747902949421482497380453478038442003605737720737539527033159713250578254027977530740658111375417294680669026604399977946038730867047549845671452438645965930529670023476084859663297053293465442191815318826920265306955739426470582413063062686666559583162984272963970697788583522268300180980332360605848848157082321414283406707184283263777567409017137663874814850021539932435205674150854662808838857447411675944460860405900598067252081198753592644757128539184772511884868960944944340510741746864661741046706297978697390672803780736009967953681831489643668453968176169906798658586538697432936859032912971761470907674270277999378194391470506277856251417212596707491191343771809851309381041239903302302379102758826188993231426172418129668298449355215749969607402477067984265249260054514489364121857634817852576298513985160866847326733436038863650826377864711878333026540041918902441450528497927157120681383387174858710483132391137895774792182157711739221488017889332565041094109063929603900006403247960105964713130226635792585081905700766778213164782318226586405014902267491437167210886010302131502319723101024742559692780292096928736231843799548888248324821144573891361422758368171805153804645267241108821856996109143101493658779787089969552506362179373617562658999874090603708714559325323256173933255384056181732567636541707827523226859723324822036673896592310401873392435914140815526427073241472597777418859643723081771389747045466889180657323909277379703658019006705171016640141699700464961663660061478388008126140852157680722054397150834940126830454043633730346788479327404318927796089536228370967042834229061690633738782978938156298483964848760436021102489013033269182237341565889813712198188492194245667736755918985963299904977863107557526588069429719738172763076022342445030887005959576353556269308403834881505161569178863977266299110764944851636926821671998889797881503914182052820467606542019469014648808828608384400650369954443775360210946085977166681654474279956925999405357012867587466325278544234502889274939429585885006922818847350789377859374170572910582479476361450275519613457933822380043444924836449797304283319804771092280607154638816845180214018055859330570691807222473625062157981190963309620165552551210858797150791284643662507165711470654099849041459796568329821566262049781033607904424252697567551578498076574788888800458740676582953428910350133266977443022252623134899403721899394016802082186341558546789979663697545825168204359704699120238156435606948806553600845910366693409718234647080880477253004198454346450352186563102033391580150572479491831308411674172227324142416439327223344866047695214335639698132273479908938388120178556692978675410603686426137798986108184131980964932715111223753838092465953787486976284447253901794703367576243522057279599594324964651411482137343222490778305386518216140897384517703688354655499116905747403155627953466666228907037806973346438610036475762396979238279088509483562727192784053061457944223457969136389486669149265546737325261302946589583597270373684627777581695532794506481964354525796094100395436098499529578211004299725209115461319611180435853702673489392340466098369043976695671521490080180289956562654442242799480668273574831049572672562214122145030003442531637101469864568576983301418363731364939111874702073152441466926482220413671633236618260895774570760487335951630720873968827917601967575901070063049073012456330089570274799886801780075249071233823178501924838311768676577645752801348662698595138750457454184695245943635924413243285814773468829892460474177431865743916092808359953269198245136252110464096864697978824474871527288510243147465471611393912395025742655898419234261244482416277750518557949439916375805461034738369143762017527462825558152188392552133232541702926654483261094027717551973125342604206229568816115368731927515057968924417749358312643144180228305020572040733781016161770545776787754144659687393699078966437584429035766293027276570291302404212307146456934718465340091278060645695008816347752608918398132847555450588140580248843801242234617974289465655786155204182804832316666917538616070121263173316814072498367223554901103507510131493985301781092883216705617067792950895064594334910704107856538097521347936644910079104542382835720619624563417070850435767675978178050885698981285599376635112265533765720034085189334089017586604856270809127640237846786531767664894523497000639820040071594023611793019052546883251880532163201745898466967218002532099584874100240827783779539704767592097653476877753076073807196092426363574996972466274944445144866079964867191640927621235888180904349998288639133516746044246841934660736326542152038759733605235710554477258668071938916501135995809043396699624305092781786855491260589125668307910991939679507331527359662510357664671348398680696715209110840586467399756494452958683982536028570128578446082001592052416793240883525435569487441163991872459910413183480689192237868718897522548545836928409361652513547772306369231347039401390235597630557671275015622691972779427593127492353983741500047749275485327924865979662971466057671185992847881926142945467335324900060762185810048660725988060481454800034642946602861928264915961023468341230566591270653252963633304053222661378171268490408659966598981860262483763928037717389646183567047772442737934757785441371475350127322838589563411077830469991317948187836780148181755699878941189776276275233837373847099885498586373798193477469149447166155307895184831547062630616576486185169835258445241261793218259449229626014484840313574986468137089860249317091173216921131164983565076738614843836824219554821992125482359983467741145640102145006051993869519117759484563877686773019193647986830844823240278162593252265340385887806421662468461699933599008199724336564315676135696400226871357122250554952342377713887869412678595047500853662063101474504730950129647031630449735357069811729257655391829184094068933404777348394633241100415029215736769206118015967424031212575245299168637108186939959486637771171208459179167360356414772658529328602066593328388895913268853877421563255169065357973204439440080499980079545158193069546291899028805247654257813569137007048235758161211008778663635081602311756371267169600123060757904764801999560435931705632368462829783038462805891935725509782848500079577454757329062966338811741380264928930293676377909880434205359114779559853569729878546987223174454904283984455724460605168981033113838878228713472511703475462742367182415516878808841078926945680401468711091115979187100237360574407648461571460952067247486144191448616765265670969597021646996315093358704666679458191341882087195315376952408966288634204938217962835800407465156641583575241179261431138170443177084626174529083712558643531126012486194365848313434709148095188245932751782212648714451174277348372648606041954118371992565521434688910919298328214738094220617861461648260452229631657639908014427719892244429448060167824864222836608719294528742335130035716840884212679474444474553378973322868120458440931173003574836081046223553134411641118019202030548584849338646943029991787051111371303232534805730212969631126824191596711250481806806421033192064288979570453756755853668546212180034910340126776618159360415722659420499875093945543685486034852453590338603489841711371368925816304812865235198025121707445853837564097231819775603150650307959607657415543166430548603245649178831150184426668208544346895935952941310039450594133624834929944729982518355667322998188723368426084810025934625047115958188206188372759688157693050905829682401319407861647277177497338109906699233141365191970086988588294353214997427719891054779132588909182803739607058592984613636837380596509066032696047170455666374920008340927665878775764397358141731767268504593052000517907658474647173381120201490580953447980675039604103125018673042852112163193926764874818937131465635103260170369089654822531973273437186812076391657522228805954511920395621494871328033320227565832388217271377672938508708006602809301324713325265958896271992126286899413531545595756968371501932771668411313042613795700726192503689315757449625386206818775092045748354244456595239510267288934091925612754965915969348757381265202625276727395727448131873928725926568902071396959161556871995988138358891479193536775189102037105650223029327620933331953473057038796291139301377561606478486381528447372037557469654344773439067057618358499892663969147567588943629740123041846166383959407976430503117838914478257850453555641570325311778413374159220188753788453033375391360459139771790748388100972542590772083319528584193006815824611741655096437341302250577857102550542560798673375567649594110615050083917389562246586716802816980919483544250615211874762285655123924928780996741186491429847675608949700851159474897291758654209600002794128667971141577264469497679265917417598720932884685999133030363177964695583884234473235137114219913915417793668901261099001841311986568803846761960833887736911972504806873403018366451815041245856831121404604700830182506289635146741316716255400462309601298469321680569548789227963097710122724925070084266815430431138890995493990593450443096970016436872022293608682503365160985727473396938357156186022008435639066090223230703722172239393098694599120157895111485256752691640947651484725786060487049948115036901910478112520421059404255098420979198675082856748164996395323670035973644825779709283368185954128691976511168201453980020269407893878546710737303368930698906816406719985589109984036842869919155520545343036576186824843614116985506314376723261849837901790162741609935001696844363391282958985656097782842525120581545971086382928698627370921544368355671468037192520111349654114542052277939550264569725087915831148278831746648671459839880200465090947117202964609580171522297544356591604281419512853329871918998008706436583346315180134662857108468564676726751647383708648097584335272832460798701724190239714934112733012247665755476295937679146139438785305062247779946633012311786351351538728160008524125545493680932960893930268801109290815783772107354149710289710780929937435343998788190492838657422398562445890434335548931208216102116995909631649144136226672288664863027184851114841469809120745924188940132753617388571989282176301179645986245526493806359503811352585088694469555142092159906272256141422772990740418148843291592026149527660585779723773571582150639073589924098024457187383379961949574636953609466199720227746629759288929071032550510572831574205866785275084449569786749576493702179613557293761395824310423750643820705337611162141386888175810717217726345081910537074412232226936215233469390623198650269539253018147908125254774088167847344280946099488810168696714575542477658261339817035400176508297034623090142518254960853338001080664955822278516824322219737938279223449208686233250483440985349969992963150424086809569485304465532916753583134796580660638262279410311412750172467823700371327017909926627941688707652365247507876895706523503378513843087634125622615329959206105913687757854606231845874876251273848553757951458247125544880837732282263648156719521017711323077030851095319682372926467314342661603866460517238233304311187784040905791473230589372861029532894590018906102493199864826356000668737102046897354903245325050136747547068575287592244390808405518815229204571899358523057065786884450150326660928599077222765591680331552889421732381772432275517592648367935293803600519368556664639317208530570044923684986224752746094202751736972324015860676827974411820044999222660304801519968381031443629348273836853724666206978535903952413951597210570179240751872488542595611536664489320688271546615709965635915356076267732230627728280476873665384011976319599842279126877991795640431472341890717591538318249928271231115327586455809183983016932321851265244281242670600350401822898802110904276719068403985304558139176481592762545248143786186311959990373878835347136614936256287061294729307914744939300016611373961846997302228513249847189679603460346196044399909859688986253624863121688074582101225549525504777196749571315046448005014869928167351957140595770116133001066113950061897138955862041347148882163861069942770988310400073928960091920743874703437883911089569513541046385109387163343121705407633113765113404828304012939845009481572461369607769342029882865775497869129069371929465585097980179707385022719759055263071691370624983178361017668928130403350474600414161542427565161412469819255179646874188904673563221716100225056537478193004155602132200204867868902304905981707102225376113780723603914474406182600977066888538959520412536099665679035879937973279284910265632585103671133297840166820343441596348993167299521331429576805027175777483592918488976702220852500152792363860313465455395205588349034885983748222533670820656808026459546069926557792599907845565809131118253121372176071935872480642023697806527942493419171236741364256442233245723896787853678645305739799381259462127809577722495041862159545177804858961001790058797872124835553445012299413157265339430419023778048176838083070748692402388140844333576235975392282915796094768866040003189272938274976153480436184674751067467006444488642577795830239488521143256641464288753132800112642971042670105932138905984558382240071692787294030135145330751136602398978954295512484536268590011230178203377168035527030426144364943683449305590960928305013372408169959345752850060979738014484756838992198877986595512351346722317097531142643018126452330407573070060306684476390361008021226938570503474248998550574051799050179884847650685689193267567175011410725888493291372368160404871900808468954172365001508883437712910394929079157198796981392428898623339016849135796027398689103840670193053908688927577527395816353553732005979875280070882018693040314598743670956272452487256142569224077055464915839149515647180191652108948730349314594741926961932529598633036500982261935999294175334927927568972191537537764281696316251973793776649191390400138056814211516245792786071747132492076454802166626946565216767769944580822429772047803698028267620779679806335279711383684894441830695415212407390882189612078521194271138476648262036581335878988158240805026933629840472859626291974519763653870896322394230326300055978618915433037536249362228523575619011811572843814876216457605544851872031965320603338830268493581213717625594238567144481136773418802834250587929733250390210699514451245668073005908212066912899446942915624153878001328667174725219597071065291434636326154982853938324288148885488012541099407570534584679496189703835772178485882485383752978415018871182560735837086301952869763870082756692628306237235471076628199316845640951855365469462255489961744387018779412807665202797618043363359070938479415970282953809994652800375560557137887213090568530294987126795348888048862180457872115473522924872883105078307751206723810996327400007933097981699399021665444086487713079786787462109703852565624911057839601752670884740767016255616672386551001090548062487208019051132947402888548872064928853383553490485826756344305790615926497397562709273049944189478383344910153893551616119724874417871657251391462716056369916161715483851654449222188483132075018545896483299888730701662936897923049697943423959968540158560223605791430965465015330481860969504412424020144549615116367496939583706853825071368616578162511489564812238304571044097614848389693242448949596201513253172788834509140184966719562165324791308284099028225831580677664268508215764930221276852655021459668885284242157996354852276118578079008786728125378749608761983899438714700328019746537913861136932031010694521960470704035547042988111007338910397112893650244134577559283383499296970579582441588168298947728735598009786939869314625895963730916017236765993338976891184798422190719303943156722157833362118203884491635071296377873574769219059736071406153268936253533965074127980693455170757212757975313634914556627622534826913500750016438303329918076881808955647794707210311773066116699321862184009709113232958646894893553299469196508303990485183254466580238898318353892256206632524859467409916895594259753507069476429243012881081906418060933240293787796946905350217255563671066477352217092761516103830878604261121187952622808418986170846015825723504603769597627465513248111889377382971519887743425288900836598171634154830731075394559174492043598816000772228067247686376034737070477917884465790664083127550086314007770525016282837517721020329036647566591893143542384546767939615634321197223817759829745620170017250223560360882241738309306612544344708720633112770887007718950573373418440099762479436520046108333632927848654944744515494820402695012638729804120226928789650708224921965403030294967098978360721248069409656914868551425936978710096993924615728881983247331121894953363749288349592876176876386657953500193219924137527838314583775569355162609830987979240550427865482078371373909073694389967135467327530409831232683283254276397045736453773490543824551844060192653707931899038108931431261139828704239662951399347474227235896896224961247612003770386306351576574101063712416142014823888367633821713449513297003436051182926500554532177312159683310207021526463461673480841458969292148602837217212988340639397899399257474073281331322766214124020348295602004864849084938165848215633413002951842992346697689683386068765928876271597485715762126227034907527107000606358456102399531425402033365865719060265678557272738209627178422366443578391570217134458170625022758981566537599420096247542648573405836032574542717064259284436526892405934113860447758517438404113850110301146139329224743543937711957590493162120206118726453266112329203246647337443537116673787292441389755167113756613332872568069946350441597054783131485897420560975703988100659673982394334269493349929342830134708588092218196597769039541327226642791358260498782721806806109893824493992135914021219117115773096493041174521778567091988822491851359146605239878608549772784060635642601903700992062444178453348372659453788509608788435534971967164669242387457731266384331742453304720055315116004218363541033551668517763890460342535884229099682246018836050303345641808053772836534483145602684718366049862632435571727603104598428071175598261376712753631828400290340034264499617089302489954698308395640747051119829418275885914471569155551875274154713764780312092299577889509670128457552461604835522379172274807901940726096344117937032549043757993875618983245359005366361773028312091242103646917486408922137763204432883121060235258224996024672123531204436000970813252591578681727178534609189303813123507273791722016434375072181066332438464267176828823570166985287824440733545502725706031049279928004917926696373877347039400835571776589009667597806567666081523552715786916144483086184077280048240032230513578298475858134933462914780705204178378485481453026122513325140119018517491335201908021237607899117717120459697313306500699065998401143340037479089554539579533236435187440947340715481835334159836201477099559595493526829869995030647195948452124278192910014917961836240799677144446466457139567380733404109817108269100866543845285652473358866138909119370980467719260303977618555353354097101704990851467895704768507717050563296459437570860610756806890730973410657200915538476464833490709129902969505366469937810225151642830561522429118599025338999059476382669548001568171351431956010435329700720547803169206757632782220782401620842735476711552863665593002064134929894183552700105314135881817275779445794414641467217554462876608244992155026895166300814849867585648887686561950225863890734767394365107814848303428763427200716733943921617975067467166556062086145463237414522889969119755273709179468874450044288672533506946610350505972964458053909718812002279297806540101086054928897266412066659615567209228525583693542961759843967887626467103763673463404724388269590411055000916625659688805481652088561053552103224013035741775291710295280576031861085691225540790068635229759174894801438094884178141581244097879933627214902221955879252044838234290240926225459346492812179238402132859089531622015752130406094396949348805847051427232992485504885783678277491048353154111015215795023388399737282443286773456528106010340231215872920675592197487300588450224845480576220135379959468092097932140055457352947296241574847567970540973215787228592623916600589625096399460743879452648453324109757328288410004668743648199402099679141272519764698466050305790904006763908294672233716017155386699235848726613461015742914514337207900868336810792763907248364206162670897424074854612930608074679493752997643886818134244667141535442985058522738013738107745011197642472111431183380541166811065987491709732596134153492359605737026043489830706870868759098058710428971646526385833950652515274172710890524827224782035567802036359403075566595143407235706862007884495111806074583280315042602341962083404655771336788165412137311399660720253049722151244623882217067519944890226533644651048095232441939836557896560120604170839909980111939924870431088896099623716847936154960164358216062223139622380794439895371813603096945070854401698992447521640742307747006159138618063133311736128377234796849533159252984995324506648856048072467436371597521237608881518416625453113573552793908952152118705828616567221514583093031796251030853007479718768896488487460736678762184459183481464893740577729667028913786689174093910780312894458895182196228173422148325646446797701998490115004717430257244626522012407935133963427897816411062831307703911507633017375718490262142953563501488119557255439706655672054527305497740481561065700046789952850607509671091054161237524417665013054909353390887179102584279308563677034061030447300843623768195151438429221108500558404748876863034829138002717415738630579560999718521335118804964122617764073230189636399161592815765011263616824430181197521013638421287775536486589597485468974211937970107301511987986107727706691694113777298441251656270458936206726598520970263496343829462997960238026327894420669329715771049278914218837876165018081611652206127570368165122454041505192204888942431919423388039619922041281723808142756382739507512619819841337719992768103351344420450479646557972498877655502798881106933525261002900900058435764207150640918783717646194758572506440865232942052443817872845774295705545250413985456232284070633972628912878458650702493030290474776569777202391590387048343251990253763937179548016532267505819902483183921122100986285883338519452976846285786408469994597926628561456369877657837643570294710648861549086712442906382224632652314986837718025074527745688598247900296189598996543463638184745695755933728893468611865842712471576132771676550096277885026802244604976771799534950585056628121325002437888569934396315122049087897612888494065738977867361856908464019408977314688032350842773185762096068689573170140683068822299273153377290984865981376103563267995110763309882933935559932197512752969721178583208019313337746226607499018909508749707106327504374877170385976293498432226671757044930856339163935826599205060707706679155057913982801911650272162584165467023449376980380434905220360873912171082473544686867317751975076356817904999733577680714745470702981763512867665462339156476230557197192654130612287155266741310542086594103656240758406038014256110170743303194503467417830200170253773806320961726862653301982647272369662446877285146822143910355418592943224838172288014483936244193486613971235738833154456208839238057903215138742574655636449478566276530734162236777665728300885729526815701762803911566277559062798127703173434119534205937925057492903382835458097145382889264545498017445641851288115201815552488781101879134886247544187697502758739680480327473785770770117823051919150822386061591739362268406154539056998843854273202001657755422793360130477801628696201406137183721790455816007756049222168227799213683553899949014344741927395404628685243725384845606045405718919700927244791907383624982655489757608256646838398762347302552662742349144358033859383971421538982379216219625094367945595442079109878195404452440295796896294853529007417025364247791661650198438605412765538877263319278971538622741215683701835778946491027923845883822316365237621248026761623623561306078028842980682881814289095448979603921226894318816805793286368248725999563089793230120620988166641782627200752229083281009876675724212417060979947437736170306101075470208447270108760906063416132690174185246848444875721047295516276723412666538296451204205465789698610212240104425574020245585748400111242754850877807563515939395735786503038470684440524236199747355401017978389198979539633293623580878446888882680718988692247459535344038247363055337154949258126838723878565130470656127831412727668738620201924427900112351856510068986046852254299385880731927757741789068203726959622426520633578312687386949883553310935599553831050303491939126439331982260469565575718617218322411498485039546594786623975383596735915892199443300529972774239965528233282014822703891059741584002883706313842493549219129055068423618295032864109725825799832333434305228054443094142801701138506603874398003795677137088547305140447721778768002591256659491257873376123357231664536461386090304377710866078557146144916933912257565397051207690906202913241317975884519259516012995476838077685547095586274018320526946266203930427901717562774384695317835535780333753010245770556483506909019417000125233784150829599968257706366569778088607028988496537645648738511299970145522500262740711508077067182819114690146055842855132155284289928684660281194204949214195905061432348094065236683807836429065983020023289350230158915497300638383621668252036103877492950274382943329587388717250822577873624218501579559758851923454739456680341504104328740797435069945268397129451629026761386856101033033052747238997739185243215878693863218616945987838813694424601113390795356978660194804933063424663316052744233787628401258598789737646581472297541463212797208836111322190181752743245722211113494197956537687946142848486924422892894494405533817576755379975777826521651021628762010329581901543526576950608944714053019454320918239139290852038332203669675293740771775251145439274875289592923473180894620390238206643592539567403839773700543828581415126709504837851944154674921925937765442524373202935305932466239056513669772200286708988380659152255677502633864523853901200532159932642079093383938452935038926898710986910830329865422539949450957581974996853371519891259869238245267955360463343052626272842432349082526224374221380093909868956905335161882852408505188272906278259982429903506960779996757677284092828968060268189728473788653564473790070689366050687623096219616260827614914513942606007401482161887242539746953970553036339628874521171438836255501947157453713465001355875621619858662533594253907314427783770709668260477142704289875810835136227925196022040423276259206033353024724394813570633145527650356405760967154332166132994548366764270265968259370147846646609324095828749711357330804725645324470360619684983369635258884473984900998516100026000570189757502293604771152275332667625411658962029680872669132613897080662840623518297771807726764726471648600915917022044281025323242728185568555873753782320018111987377409550921898422453023135104748219665163460281221379520164931236154834505920458676371136147931379127144579357070384167983706593163521047406647403532394536548615673127565620127671094416339703393626698787250051598370812366825876473720359202315327682136390595212735147110894634504902686004292347122761959511712468109528602115420113811528621903225286921314373644487477886629151044373146856737013333952589353444218242719244251876823820675653359254434374248939852970814108131224990227286053809000027219295995971351802210114928234981231090096146714604120568136006588869893520548999076926200691729496934181338345708227377217974776855832134304729413834701639894074128234063979044136929738741129464785055294722992380728971392440858671125670300337745872180215141003616880517690416184047970347134120072289391145852410074039123561156901587056803541548315097027100169103616241134370941680345843933488410070396334549884547025458231913572959018167798059090209132998426191306026974773812395768826382789572553021625068353233840395737434036925014539682436099688025442231316873634907379453049920505846261961620086662836832581339955756214129952707030557738687080764068331697066775092728712307334379720432752074050879673758304022660994426699078797286286709906205108700310225151940966236634232874477583381062349028060465202071687632734202005647869817124055330281788734603079186561380151188335391313060207880475467545142866172450338641392110040109306077542373286859511051848650570123419709260617767618011918839345013059644108442828443527328322383530276124408185808344680989860508890849322869593108345553781390666513571501680203519613598539645436527063652160250387109385930258309887946484756513334932147441697457771864612821094345833928396471510201776665823838294071651661416564191825104840081262033103382994711040135636218508685167951731797314478011437686094833069173880642205350668508451982812482236588862087287772742633393032198955969453777240716197717083913256297027645376386213866590589235421260207426040817277181425318641732770074591549451688117784483225346523319832317682363939924535356551326377738091107610519578104574717840386000141679333735254183329405579599984657956587197405137137098313343995601746312248177633943744675432930813339664875931353629635740580252759689183355336048558538243717713399715301641526255600162282768700177473056867354295502076741360777824856697060728566450544601251048349415706740042891946285596440660777316298287559405069116575223847890044410996951457264169709007710181492735205411625378822996064831174733096489709570627016103342821832110475033023819063278231376966155771721867184939200208791411219699450332490577818282474290988669096041889519850707994837840908752400792458840932650448482795375305089189498033063476749192603378914302316891537131538525705243709240670114653818121153643932188492370199044021620180228519428701325771559261283535486257464126666345343001148880236587501579237737401180082083064806805142643916985205821219954432962934387336822585784987996731361273173939528816667633388538717415931883277149413899810934937490593890010950876604990668441649392371122841900507121542796322557494735534232517186792852288709918499032442489074372063644029679918975991162248053857258613303053071217584476871734395058726093024142187788750947026761915638795826455759641767906288645071201222346096412230253636729747868084379680503664439789926941747184252688922865204770167654677433700831754775282216471459384175495140748513310899669347945434556544561685232314293280196544402476256577003673938970183500864817933182567188570505477266361852720908185320690651925692989310227169382867480864397495301196804090795034373687071798957512956018548712951131433857921191962087092949784268770937950708967371463919510178919105335748392404970553032683470641495489688204161445434466898574011715884938079264635746917653129828495554615856599623579536566959844820789366716156550599639685066100554464805482922980092838950188526749313548788699063244317974102161455184578381427254313079853481621175132466850654345071101510379390144973292161814306602657975095824826591920932253905439485270995716120228359533858866068436196838997929621726885718383269280939580926343070198324628442275280262812014601170807682049946060580319303889994434117258961800658686869165293122447529222317498447154043873582860517457940835693136323420539050862452960420014566244553250718775862875661816462441712397020545380105728785666852275616584004344936695959462716304106343794391214465397716522842226208322320016264863305056074967776209263709991248216847493707568308446034513962278818722091481226948003181234487302826129006090695585443299554000559745602904222254376640156674185055178232171933335116308728434307478424614000827044063392140723095693681251191201967073701598402990081634427653403557861481542960979008751767437557244672104832335701874269410192371885079509764279750875000907764250091700295322432302790422157624217478308955393797746473851850259878925910573271452175977344145788024767554224753459814899530310521756298746593443329728105036349513628510245682834316396701077597297580995615904924238511800577373313406773826593253969754800786753030404646985618766422993286026836075679707466992571724170926292220471715045805986116458713708830180259164598476716046857634170716492345828878326719961665137246157660771384401652034696840198592431211623927211520863718970353781092744310280055131290987010800852946651323167275330235473361061735906710680201810765010576090507038414739474079797290164361365196495973220875753895464254335981939830088037510595227517466158004466366233108784681766705359523611218246250491917837932607394477436451054151304389635779092610040792772815097877029272152896557555576312780594280269783107932522568236036169602001558750150288331993824122349426641275147064964330795139750605258368225711858917718110367246420431062594384485163793973505039109644201339426152926747252776600470620434143621258884965855313650143134802245435619857447141568140564947399313186422749957165468178573249758715646908395376999807353493449377363244048350856451091865960804268789547542737221553234160997971628299238989985891195027709000951856667067654343329150268693362890518772766822556827073684837651212177555389965708139051134064457322096791489517914432555603130972814740468962479364730346189058341756962858688483665040016058551116194071018743772586514018836182452734775239839521578131988629246921216735962417521694627419652159316989071966058921126630447428823995957424649368058940990988930546280242099980829583788013064325825290080053918442183129130809871590282090887922227410579355738722970264975708847909468267952929168630856942258088156265320823244195454069415625755755191007759873074436696227678961013315026326197733576248506719109013707024147829972380307275926093170376652280137111459498166737303369239522352209237491376044757337698759606907222782771440541162070058236585204236794665954916137502484633166675043206459228620226536356653236239643637566292407155622826828032901919252070301589193355039889231805900622822286243706382378930329652105107697390977545760003337381090211306423976067367026940872841093262839840857606425449624067529158488973621724416036150274618549828226644706153549605797729913130161949731211055405116068980974820805238061562725834242246506621063904846403818217768472269861118322455133701940570361235767473997211248075926004953664717856673191921210656104185275308657669076341374139938931224227027298908538591230953629426124208556821438021323114981566031315864724749781458489479957827004475643684619935185521394327107171204935365984503730908167089835437921581491087567093752306057474987089277921049068523140527963681106266259585916525287894375467597334886884397013246896914905076314590374591927663847465610384869186597265802199406178834653232175646836636277596501114549175551566257931764736655742247174202342849716236522245457128137318733627714724343629370820141953961445041069304858941812307955025305324783129750017052626160927262069799060390559869914244832257245343993147630436874213841391608861568395281772344239693937080603085160968865896102185660753607567433077914391072893644200200703132387705388078393640650650009214626120002033985101825897372314110860256066639107022716401077092944787830419762042923798949008238504399684151909437545551555504603317478333839917536297420044864419652168257990263970302614286799158960808379122926124172806731599894771198662487093784889506588406395259029552181722549841203737608184905011506247844437419707482306273492848042970174168790948240509723771976660039482035005669368511166608588218342628562423602779594996848540091562930723447346017454963984715078756040221359212894518323670790354831914303878304764860856050981411084440291426861183597555821754502781913205759052882027167962341449069281033632874048719335902317888795812634805101884389241775343950256172038225715067538530468689267267401072042969645686161846476375939162490643234803025830167652641573232661544691554077655558060078922866497413638202912030923915248886776094865994512292849974601898143122826210039794828534601013437083467069014970396839798425775984103447285064176198127341917109703219742246066831291428388191659384835166328436770862739594148760877226495691089635485920533411029099271993903616097356081768559755344003030049030363067182582681830863329166664875588985024384899983476135500271203280410818301921835753089147282546498316900890623667843115192732859926529488468811440327533039630007361921381126960436129898089652282364271622045527601992553162378090109699031334575265865861466711459924843697481300338080165859709050623876906992720386390428785773661718695091666817864795618181938973243931421063383142448489222421942715647386889218345291812128282561781260818511282863025336972708994785376654908871746186580156042113866438751482945452430335957852584183123989056491846499414235548903633611227174037111599428191085912873478469925549302073138874539077966157346405134367950124880694410293889760778961556059648404945063876473909819847431232661216015845078586218813870299263462843122991320263387792714130228877046498917076409973334498113793576122014240844619651244521391415659251692496520104200651242075519942850221908687132618596956366105696158134797310031606263312856996300551104267480907258828261659721302704209059998936635036483197683468013979502454805996200989536862785297180697950437716442092037040171098479167666212551586144158723085201280974536496668733093083964151026272574671811002644589786444370357725837153953157153292506648963516016007991711966095123700254700773326764518425723291390019101176904969921517931207100443575342409028890985913592708305250894960109750666504607908959437250889351247892318507950767169745706021248496937396298667913212687480962233240052081024328508608548261717413640713236884246760773070299139043203348369503529159142891768906882400907051116424429637070123074718196572888428917489652134450314029147153068775188932289231174891587825859431004801332829563380824305620413670320855435157140375002515823810392672547559981322558533823650797303425232089546048844774281424716749711032316318473685912073885395721274916924055952233952895870169899927326562492694058735808362948879779028994639862977826194776871339016503519164338000710906317904358523342103501591666856802636795143016546317837906321348904293100029745778064694973301530399367173263844582780693890197026168213276918516470148706701987478780113119167877649172740820113537691969786587492986317362086518570975543088968971337766178815826201986952259856731558012654210685414826118851709662974062354475912767070849847409472648435062192093256455324719524095648163092452819937534651052050993126143760719348797017647676598125182730266187298067484669593618119194246443134859860094280716148061584514616871447123843480307971444659789696792110471071665790340881275893452797684004220157323337343780244335263717255914995947699737440512450636574079887481780470005648612916000878348742809523845330062418410331391837131829057095156705111088098376993228719837564278813109573340052209209909330908457352424103739196002185856762213790344181632028215039096364074666154478159627601282678011603266505176856777531785085426996240676194679075577153094753063889465897472753301120702369828411972487472256199901911842859897523918050772843008375733121575011979807823365999119082031912875064747486650872052663604197338998841406362533018514413949272828970317043116906005851277292831574964746300123307497885493391949510313443408593318853396953484084627023539793529632696446140886920448900979032344121150592389989197574745139017811479774914693172270600112000131641195877317813918656136355200170732898060787111365649917047149449608784866941709930760744818964833929039142333238151547267794546436013089723754651267582258531750787020498639922370145288501464053509807875514784317758253583919614893831806459077458492332988194520740604258980914696168504537342441645038277767156591540220020005835623257533553414356185533438285040375168480018205436734896541068826492866235638366312708486835748305407868166820903527484457552988417031708038329965571805389028918444152697632962165527964742880184252476989508722385118553338200565175835574545721601028387756456499890742659223990577193644919196519200855670530403216461823962775831248555609036205005792170062848544698408869390276744438849437877759198384011268733326962826278592364479451048289481680810866473939715055140325477491798835272251996012516846559909023426821884076284201829736501906650756445188304822639955678323217463472995837918644457712843624541712846970198919575940737665914636902871449761915066001837475013666587141583128570013599099281988918245597325328378902434125832121190410715498088655743893877816224742079473551111663645145267269932031624550765839127776233790946664563238621207416623875870968519918499957999329338228344031113939896973606245145968371610676892587919105808366337171612066789605358850691829539875748983747572315945609974988389648894021629487049240856113125728659664445548663964824623892386517161787760551198927413172370150417941053583772933811157719410441875429406058183438659941837916395749280587539943970889517227107092918887125671914905395113711946636098644371320541911793306316916816751808832048538783148498131138332719861169591995610467752593799489504526756155983652548784214646003559244363171399807250275584067691401200392795856846198588775218802649904205250666204668027084819203280622153077198118152283664882060938433049793405632477228637319812649379762698687304516563097679837591322362239025751972260771933916230159948698189672631581485908304406490914572534451098988984904001792722300702447123024719137069203276849309367341624305333277123783052470335623106204709978583859467917003484432680895093730907869276435415977950830428161900884586450045479156785653125182305149614308385629262156605554748086350260035224437805136079898771159183178754171513620067925962050280336219386135370620591164523173397023548254672195999691081062417179358395959830749872096150572450691732670563544584398753040758846263655036112230439705868151728268689762695427561381030926902251434326383825823462906485724361543100502707536319166339395996882756390145635480815589766405033789022819883351531587103082244972952652379474205590022614059437923018989200848001846079040239771524117718483621525920073511840745669569013763588806081233974311912042183813388223024062754000034905330854822894869342465191003207981698418696485014969624948402654894482006392978811314999652260330965526771030583950159430663986220127133305512184983601756673901996001443936146257649390135800699078523285781528820289826949327904971503791924722920459389097358542586215152889690593710287959642627546236704441357273010049928831491552359734031616076473055450759813744936379975501313163074024161726971486648370908990382827727412019321531060885755369074240730364472766944948833118992849362097851487539944602197729510311302099064679635472114197945095344166493500191053545867128474488703549808617820784314154770823298195729598250268699049979900765974565511231414352895311521152681445512208400183076651703959128397602990771494285838082209857531271469033733897797502844614709903212530336542814103994452070825658784570660954277999712114913853472509417764718659431599463005518614191477472952071016182059973538993470790005047468037313665757843922467244191076491794970227333032728148299368362116648450787239399284713295383906223714907262885369964693968801797936615369380059054766120435458678663106111506551370778212397185376801168349019334778929798720416491995559204255110620972773936503662614888648202062507273615762929399062916121709180781660673586517365610811755911295242918953600906061619720400929796049024048365041473992555271973136985267494259355879860668615199707579917253840877593103032566742037298574181608984697366120783585724320494456455464133525924121835316103031085421483052466818310978871048701418273454317874855811297454221049942934521427496545197394381784904800967262564498687062716289381206929505259101293886054743885697731319245574899984060588636962781388836940578691106958064515519970444571161359387658956989241089726562391363257028478560308767334541087960655780384257578552639678521259432180876992476655674396439915947843320137776486693412700899160485380885717560546215310529041098330631580839642468410478127176481657221230106245703596715593253254557620664700602644217751276679242731104054465445079627181143051421222136848074439948012946439460401053032803925831588696464483245173326220345031327392673997731516952097220599705086428909202618732508840557484352097084816749945515640866877692490088159646577626919927439825253868885311790743476158428297739415994393565843169245408052066896755518274729009431253172224075935575011999078672831483315941515278514970605210035057455814406337458713353015937657927533984396750854136747377506932115594978669625094834015773366898647718642444056882159677162724967450759440037743497861017007990352491910853861836333804628023383530196784340218711739961219538118566162155551399776607512284808900199182879717630899847632454385305315814105940519006041727191795514914819622112426703411805192770624376600940658027654572213919676011580748200515517603738451319762379524331485756670549668310377017749345077287092017134167660612677858036732150444363212624349608838392187455687701114322025553680900555108140534567656475358799768698055201246745867684977499653396678971780100122857099031186796705976046880144887262020390824594545570028569262214379199797805735421427661177311265516373589906604807778868081545008462245264566773004009377040532732143158242370790897028561492303996606449245159790202584583511006748019469520310583694460767969051472245459259041623213921285553489064575388235510344135196904276833833963081557254658460864443817062296230569750870562069511447431752893039580551120750420960436148773570621210617712275805787129688761196041331886948545367158660414759342509873349384018995874703576588416037454559852772545333821705222979510144473167019086446178376212834345479136516944213674594787567793561609360929160883978451685420480315912809798196200092294175018115307093914943539853096951906864484628217692611258201444626032275145859607420045571431703750519818766450800963729896630767179576601668932315918219010685776935242158073968915080559007298280196685592162628846763015047315254008524769549655455845473637424223179591292468340730408360729248372559050970932263207533637001329873834321626870510568754549753343631253767085385319623777936349137993759684772323726880704425454084411724844962857767157040602605841318193426491871683827291686852419152788441739543895841512977340867972611828351617686528250399629302941975008701472506234501632668873604187182050140315914999947013237043004499932767433700931687050277889334722202017588227285145178524373494954510402864727389482257253312269993130443913295058285054444522100125204727271619394005648026821627836746226685580833670712015930623834838806468465526950139485486331366030016785419865480689039350137946988450230331403505481695586484059741229252490425051526201225119462339220843624194665856802319670370434799224287337028308517760002498149722729227766210474721332221309582927377696536974443774727835644575613761237591352834289642097743573266585289414340370480299884080333851662367562788847435812457094702073431766796012855813378989061676404161969154922323791092360570437289848989849971954016305214625409697035986784122073830766549729236824456152532428917629799429207456708669517709160983968854108959370151478475772887063369194745513114251196655863531959099638368166578940928031306330975544591475453618124591541473618279883825206245346970980977382931373830451625609409787492189132839656807045508925141376402545170613016784175111737933439203302486637512013446656869400851307423887061244790960318395892599834753935041901648679310504414389037602445962662553076391517804372650559201825679855880254651132195167350003731872248415482948579871959852842604921190389663012246986031808822409499232167857713437118472512972786382044533514505882245692307847802195211133209460172472274203076823289045413633618028302909135189862457903720210664108854426322750712488998653202013917584345392268091870600717308319176897792715715260413083832163374751949857009681471101865465650485719489886078521225859901571388122807881148243417124756579766858535734274207317549808989446781454805007374332935548124796103117855206538691246549926558243873371388855656114420457229280500809953567011174443877993852773361107870791175690702386217181292019638149158470177317072748805154623774607594492049026406450860486537814554623016448060903699923112423145931870385517344500133808755226232463929808770978508731647276734445539730707855641728175072723878428807059301437992068828340002162278358060183706828895746978929743252186440266220772351927431629321234042322008588943463159419199905011443536312269797381625382046628501991822956927149413308323229041923756643104555962845087802276484347054411190460616464206630712813802439040386635717669340455757074831295764504093687211130587170769225912647346238383862806656675017080879337782273500963892455168345893224574970689994226458253539361776817419191550642739985232118264899277753868686673176751248309348547808042180846308229417314002421013183406878958279494497880917453962254391406971610896587384253830182534995091441823446066196532584010427608459609189008806366494480432303369963869007050549332634661357688552153891723971284200785407739965436809808523446223663281869507670268319659808417911108554835422207005771217939881069194629332840151705073923129906523486643890471387011571863626568405720165195045330950633905087349730439257465157778119981265688167717179509620497834628169319205882662127622103073398955460644270976965767430621781046428797482428789072317940411830614462331853933783554807929727629841209876283255281706502817677219463749598482999157372625482962698525880261144321478942655606642151116380848029508440003184343417360326841893178738909191629432527726484076847952902739552030559617738737739000558895788283447936930318728541467004799760130370437961265640706885968412046262396047273048272488240190960033237451774614105048844450529971747689239727511334484108944988576244625804100843372606578283065603095666430762921556941026070200534678205739972684525049910469142290618201195907774521132600620241645637720060928920281331106721980103619535103992700615026869705846036477240139474447959581748809240388399538992407890532254020381316056632242685677909056294334035635284156320847587934124656890157222224002454185230366996886439371770180257724728684847169647080427651874333655305663450392963639640727217593654231974664878448544687482606170358330816430277026522715393381236720826328215125541016643186160367420802051993062520486660173030869555844293389901622391903865058835663469397097827139767199518594517861480238621842892009452991660717134756660555679842476751676998751120380732816691645508525701103911992241832717437131865403799585985891966526009047493080215634156282459257136146444236944514639476826458365115914145706478271903129801524075438368350160385739727979270259064650985059474818876454256708489875574088701774592071719492221315712080562529025453284934342672893255194352723598642576902786349788925664745065566956698323006301915803868235575915624132837918555872693099034518733198561829592163715578089966561136279798941826607204981215663902785022541670237117800322294801778626202170019518578253663091159204554926709733203337885832961609243347178501394040850498444766264551863781276473575225231785914579352320351041946769784207774805575049938112792405067126606053002887880949164583758964330407692954729744387333692197120125539184080180285870494923665910279118394881185139644221155961827507457289077272462932373343462125458370585589195228485403983459428339476234405816702086023176284790516729087657397397129346406826091168508353965559726380073969412927951222114906539624254583299001121990866392033781889863973583208272904184408808299840549638587278828363419394868774135043421683461860913881882674011105954104682928317636542004156458315338277086631796970599332843799063431050307811957175072094452839773860215328971782018575779708518287969750502822383597305350418799326706103911807917833021748952376569083485136449060782086161868736726349007972745973635048185570874334526495168694284488335209741045367049212040423146326012137892387009477840119219754090637368539558330672963327337895914398406283875428673247340485462692407312670265928846617483434920906028309312784992870941042804985597724657114667494274491225462824402386086826908651537227026021889497567304862204842033302115146482615129118676271489708249391077303575460581393272795202899835153940111469079399069160242275999596853846707575448141662687110392700650698890792157599010069479363017068007259146492250214949724586483756102130365829563967518171784574041954518079683957879466155354641113417780509473758934099163736344785382305602300526769964114773672509092840724204192322389557990878421523869564550109652119074485973656583573060523244118264834364769347720827975262401283917235791939059880905872057453614508317499421194808980373233538877257205673306632314847413153063904558911280835961497592121038179597018845869625404247080727836818200370993650034580570483529928400155628275338015604399393285517812456373617497872973867166949182955138716046009509700402360866902248616743050095925843252010559245716135016984230757486716698753147462895193051238974350241438556840629417235762435519333097388252086228876812544012134050610818192844657876768139027329193860225957239313915293166989212161333926176271390707915270859129954954287823749175341007979723768079151689859215217149177284414807669447019818772020251984141897968418882597686444357858912873329763621509530467097665829605931027169567241588994884684698762731449995504196022924061881763784839435958758274943095558629392501214097628059448692193181745664546153695893680457741928793970445547619684188724229534680158775974256697064839353679442556160077297018602680672989386213313617348198214904194304779152497617331286205955671994667522014066180600991865789606141967448114875506738487251060653116161200328332563903430024437380997394934060195240480163842329477128622220250154932960828653190835033724274217329662617092989832221341711676238669122037922646629309423786538241505029311217136970271448316253509887104408664220883273830326977745665643675742696669104747736446354830233072994843969784203875654661389725784809538100610543924150586811801117313499849309741511328599912301001100020607550369658730779809766913823475312893551192056675411049664284776944054886946057331110999601629769113848291124081176042838781559718429423367502245759637563212735872958250286941748597084666665527080984702450301368296027527511513175210542423452138532674258543417477000584704287220091461739083910674198645395143571332736399530138613745775627826565746775252067264102415065700924075319231764903245031393522804152345638736272761031831966232190437620216596049797749450387984583006075537099662858640515340611463952665491537642126860108214191747428928176709373239581958258971440619972291263466541181818825486087291240036259600354898417237738543031906193349422946575551553549207036720064476125863969824771714723907971573667226290985032394581410309027140704512570498431917511951871644849534849008382492529363928286000965023232098980687521053446347931674710290053847277918428022368043423360805299367788831449169893740535877504647954432654916804624304680199144956146879731595372901544452909264992705525552186271411482842845344327411313664041374437020883704730303226684029714625339105050734893442718483392902765271268194758489890187623139062767231020616072470140795218647680321138172984266444687591885071414379418232293945466802191018904775691648517420161169086392158462485528047906756574234317684090762964169217749692195113468282053385106558582911478837159132062610672484013534547879022273770990738336026890432332694416273667976406136094313257846910749503472343612148433659781056299970988730141637000807549602166600449701107612796220218063402219961126566685432801684203171333448872681881549023756510934420403749720058106915431834608078154884549001778283147508188517593539983585181559767981517354091185733148573745482797354432991367959627772264691365538402019619256972480220599577995731551812524740820404951320842836494296231695123097812666088394165349563421821432468064943697584802841089904234039408226930190811484655790852756650814805196054986816776253229777691331629867339959333992732885335236812897021158742573240991971195208649927914323339987004921109242135778617669862210110396470381671502528644615795193946557724918805420110602602921790344515057429438739046841301082812617120371072959004393837799283789252236090191246584816493341863949075732811764247734190723589039550867704776127306954843251464394215374013738227212052767340359256397345599349802077051113431624309538346465501019430456997368622658344952081667555185369374829182235349259965606937839080382754470295012648449948519457549137550319306210922560798356711729426246336743981695983658692312354147281250728521770735747573636731678368311456364979204508831769279634545362732130925832162323938043328434868571082848725215293128348692490319338525021402470755144059581488228584784373924290720718868329490996384641781362859505230912198565442277259469570071959015200670143769946577859428130084565540621637777139849697856790097791539159708586256422050997288970505219380673974130747169641476106760085088268345336038611619468360929739902103875412987990392696409034855337112354995916191278110959467377812250338926333257091727627776931071252051715690713810395120829128554327215199331587980068882430560194214475834832873083333389140443880432236315097362717894476028092493664817388299008109084726208327268104080865032822952209863007664933875662207301637348395619535772036793064777603158981497726342626434458347182126541975512766250874062768187509660536712321624777443144637618823529078988461329093692504359924883256928017430754834950681827002556134430402992829744864531474214405646101515566064323559422094878302202677095184104135969427866821345307774968574351479395719554838165122625213593028575905585288609835895056749831804259449765283443080692958741767991304561998104689447633678713588722593450297860175696039885062627860149506258895424315839955244974925663426985226639536849444277421409942064149929626301822176653870920358823742132553255675081489688023101687178412153037665588259993608181737754117153275493624721432638083901449333086991626100836636625474182216673580184770894761735979318834905231714108048518099040268790596622864904259250109818208898389477286374675258669297400672479926925379464708213227276228001544296993278650930852194390672371690263090508344664493582583278176747748303596140020183182269880836709196744884437858417468595139929823020316692099259030488814706877019371974942281714886472968173295087927096149661998854163821342907692292273942076290413088095819058978749023389848825014447884402888745364691028501241494475615155686583109949143126713939169408255046886736422297058468591727756451874638330892497489271362582366353868344089212618473816099893330298059603663854392216147256071955434322897245862172689076035852367214703236145709687141641598451244211923805821522855411115178486019715039282736280516433079905901455203799093245736684585184321328015228981657812250193621537669099704276029897915261021853621678006122737991062219508165496083567978035409236166986164245164717711487812908061524796480381520371727832123348529794574809711170478515375784525784556611077448224107867295673601345256254585114016106558885113614530935879541532751368371789848058464052387278064397414772894285623826788284305668185961125999709920284234003052754239310905151209991964310634541523600289840522275021087890215072745400420478596817308248726994983148414540654069968218265729658578182499558035961876519947131533303198174797164217909862498452253981286240765429533847496353363290362628994593952344627809309730629252738490815330572612689862576644928295045219349879956362300537120891855532767292636385633675855644325686861141649228624463971287929491020553513157677324392478963859460422133662050828380811822556913363839635665961125464472642524794534654911172622245441080659864046526207083934374376897962006465353274751696494897610265415156591315575227425299148029761024864021422168841721679896835880380317130782084970384205062107987569983650071621154271201126267611749230151095780299269592153965819984172608887873607391692434109774117184430909277076390163874927109295869556119763301606611628168114949452158725855596552491949853880207914410936484468354873660646976525657400778614774027881859430759724259188786641662334865840153867356528194534580562263301048823261908665338219004098867912323246913490292061427390309023302480021614628680070317600115282434711365221508200519727788507678595358899507066172683190207564118965618649755472155926208318542642053951323207795809344464410636163142437337014297072706340575151785903887454632613143531191110631350898167008164130268786535826739632369164140485711127668949411181273911893755048941283729403509140073255518436424784660228324018568549896600665686639711371264167938054947373034672277074667279497795003448579177138888062582523243091947430143729671784674383984296524865316102802728184366721113759413831439286993487811747452627322549592736601953048646874270101774701746603011147951298403531973053577297026796676291543204243293638657122589321083124733164431193506049540562663396718797278671721845413268640129538893627031812405283483056191139241065685792782222962656279803451794222832397335516443965863373380162104879904046912273103643358109341952291230589412405041408805611845420288522932263077548379416779409328464764378029762036321789788372070412748754093452032398700406210037118829251884097255136650587751362671809390845714199164229561332525970886433776467779394264114721556241177074317071887518718538348878748308472833467925808390055503292539715200949149392070268111296622592171117895672750638297246115903026857786131649722879852563797902807335132126706375110582270804845451280491079281908485991799386830195823025168769480776816654497792601790931797944998491468138131962328882520072043406306373007073040884088554054994117386918381074150041723364286560063132584644217237746933135012189382443025211472684365748796164994607250377301682717295971241541263272123485569822429312827298404402308723676266414803931163229597493598072507034848588794401405636442062816824087040004974708321038548856427698968686925058926874989302622484510787438820792704684276807220158067860376706146949045836068325279348185578639833107114220516776412559655819505494368609001287606675050782773764829010985522178841764890687700897436768393271741019211635820676993943379939228436645581788320315972463832261404845185340045749998299725187687189436036579462138876069962940486629834937458806085391514202003774290030767863387635662196536323444875874637318883230829416380073402993909320302810301882686086143344274919100944466227444929744315169833509093133206847214366890895091228496281998602999769855108941155144536023160596063473808007088362484891578416476700558334463422095162130208674736305826204992569047810983090950719654792805625132014567436725174032905019234588931364506771996766111410465949686267962797458168035961952797545138570893912206938641911832848843641266965288471223098945832217513192660693798433886074392395072015187466729218053872875287870892123538503283915314186109143787915241418660251893415524134530835430029083576591705305023893481475951540777317764849408103664206483028644519630409445659416526167708285982659457690859391557924818060794851348162432036050470808819942332107319480214327940807359574887080524595934861994184150542678426558328553530759381389031780830834337467781053728604194326828970744390247450169792710589867715797757915384735231939640645420536150029461042032635418416737968509634460659924837025561232388541720732150769418400409067764732108003438772512962925591420559903633853425638372353341412105194614552079669447886843027212322988274356557329540995978899285502664166920091293938144676271285074189606534368869065196141273234563513412896419283957200267374615960576339798802313747252338611856028220756219215395591121113068204367633496984277173993371992518469885594199333294147698317124119873698215929235218285088215282702553442468848277830988778459343825460297554765844558832583162526777953195118656292853374491383373093899049746038782338888512518975183294667463558287147973550089718726478773044976040583570225321512072370389649185775392079781991437519993122597524071872636699292375757469473048102598813876615498911637002235755510424757753710890576029079492052695753077368309389785523594274437223170450942848199527919736848378932369529421987205696041342875046517416186413782824757338095536078258520827584942180416193350404027095103528175362181420387724330393614652719033131088367666531315522370680483327454100640397652031981151043305060195004983461528972943055669637405082714397138486910831715187548658523417981257583728425463113755330437765204736621878801701005252559958989751712498225473091956968828387862785107856446678281129999413295333316894213728956676489549045508152809282618335590089108025137381307411437399400382223174943061158624315422474247148913526481862086397254630396475255267040319564410630345962320066479347617708875164840415541147623930036215052600759579954276277850811813846627228354350325834053900227395457230279947710044077912381424988697099051592976174226490156997898323011625775860572266614467063439120045316000047852441416280793274565055173813455144417414888723467850715419889054104027074151682039455227516911516878660981904809091738764355142099287001441896803166155753109913388014347122331267042497334042804735582762440750619510205031197169962703731507510720448332017027467496375808870400603464071089211460162561260253549748904583864874996939838473207002037099037300421674301922792589296469514009601075958119856832646109298767381285807995597435398249698612374228055268896374096141562675573174395642474405905033418109554294100442970315950136284051974329218493077804137823095670609722501012449804904228628821418524814858181502730254221058196798824714474152048859473347891154008693915921862963777237569865974868363731381750311432641688875860477280199510984538415782176421370105055889089123625505168734452380331996046758963260074720169457007700800521306289353661524293436995906066749366547430518835935671910576278586454856137384503058840428544469658647779603558435252504150523564253690694279332904391806391369650292372972496651308490637902048060640914655077532518299659319525676662576843391525966264022739936485897624758780440470230102956275149916793531787869114436710571116581012915445549943576183682504618752614502263141501899972868448186860077038783041658984175070829924362729202924898773312752299863921928983669696218986312435594827887530115449975270646460790809202800319352028721224566174859402999236199648500068056216436836719342903111793794200693909013871890998023534650241776216336003866291158524800493357126257319804167588963913999903110488118272326128691696090294059540741354783001536777221967081946751522895101710638183637993291871355308984533848763719950825058263555309270288124419898548014256016428785970955850335340410411618112179837929731280366725873123148591706519527813335052462496152516554436373310486900296835601179378999034256569285212415385491516970787361628487555588040083418704404603690610486604833823989925413470135039018094925659349394586653799056842624047085287246564212268864500124042998477539752070176139317153207420120178649417670896406182208170953571399456929584261430309054685596347843295174828547392223276446592254485954210412953849165577311955060266840476884147869820613585187650784431885626402986072927507651812203583697677584447372850351440356418500591140236288055194756527729630874257699571626521248380505691496222098641106703427628863166329079427456564271730503171841675001084852389637124103983560666192276472926064777840609617435218232490231018632289717739134736145538076300278809540720233107768805300132612265301377236291622651145099721973159654532471439431165932495220665240833553229600359888114942903899933789153331021566272810987305495538851582832870510211518987384292141537664872597144738933440503798220051929683068212507577817490103260630630526703571343854258032670478950580693320430356639119660920442662021588482221889973448455085742019107807740425019751179168656421762154660050418600080666643330245543644849862679398507493283961292620794778057535763108034400976826237582301156361145939553137486201913588609352721297614879966232079922104366644737256549438750874339001701888133044767737361302730390707034979127893724831069962908218973967635548040122983791413072542234463870337687568801987433311517106300930997833382280069447237285753005018693424493045767232134683494273844482314182943413203413936787110727365508271397359291161702384767999995943839449172777326917089660950040171359443350805723648808549986034681338979244584116682457457033296621155650990607581387457766332241437996165939037637798643197429640352819840541448295610657733287477005157835308173113725113233398703006289721812459025140757009303487815348493462263902987067375489653607434247708803783023652603313516648944531157211482795366392720518697507887587592951487082949599231593488347058495025134312211760799470725347797940638987897570036269312972892297949411416003517461487626556160729956120998221679057855319655963768323264438721520820919715202892094941562192484182662021320539069247242711772892917643978082612038478188601148109748909817049316155830773681518321775865027579120171086114580744816313021159742729392980252549974772485949545610273982184419479872243227613416601549965007394304254763705603506678042588631624526200355279733871542065778770086030015448071442646555290332768480050789390019568688791241645352042868430151898806177359046735275615437621969832838672688479393821198845552848926890487695201496966062900966797529588014880763821731047346355346156194822229722169873374998476777442666446553773542096397364829554352714185825778771176993450693173405476311485627536820136880838514546064109233881144065517006298391048217968597058012441866665396288908739245229123310810458615501486200556162490538930422672395460882215029389316040294382498015132469548579364168341505079885307160742113494177992488196820739589198239810248248964381994367365073134870788907262003763218032121028433896382951407138892012932944156222186354388579910623840769479292797581681163577599277277133516771252206870334341534584976943412858468680213473368027637508655163916146485955270952581061867555966984530937309937870185526087796423532970740003431718197443102676102147083417545920359918377963310653096549117841419457127952386674531644276975201813774697266895295631353074157837802828945500671777387431814099754839042356763467570126233356253605474140120455220807948494636369754068224852836915011497090429600108467458057383032352721726410582001104378868113938825330225663537487334948728382709764893601859314079380233689315758737431794573031240461438992135668193503815044133606773202785609091382515390287321903854664228689717875967240916671313907560893605295574757581338008965532367098343664049536203575361650667648282915665489458468465147423841679415716550932397383764698727941728244189341012888845881547938978377978747246225195950991485766238333966326375937184187734816068308717518808966451342252305333231029765377283264300726755404452978997565582682156079303813913220437241007737897132246579562568556190003347617547357423050513251672419164108250113012324498100885125998675050255917080391965459956857937204325612233150623036438072295437857535577594285592990496063854154413773291500807834721664255098893015205329749893367432003158743969268756350876551276553409363744369265746623319123880885058596327967605354108785111424473055047015010037113328464970308294404090186267869520341110564675789673863091479312075874326129000949102737738184157999593061607659699619271534257864931782829535241837201405893210860629251752276017512245748833778305478020619273677025039286645066633052347433160431935312056634342980039439050933300039402113739222852564798001124771106959977099259913995633703044806898848562203587765776411441847135729821984588414584709400532484099619053494713793799427394450895629279270232557375866432546205584184431110595863522075711018703592638752351168865041611985240981263947605325062906910905701352059978169786324600121194894685016029454343557051491261398399681947691977608584374590058161610396061417018427826679898356916168974776358607128681063490302401829063286264967418756987680090355986120564164712190310787442551235398032314026341963798236386644254482775323437656871777883108547383881581866305535180258934390911384832070180720964572776441249699501625249700422099180308785343002997276812891992811446307865019444873005723576365047664948458740578570848453373746176003553774009984566255732264061587833565058171256488269208189542665557292124970069254766237168460680978934951712510968609613941700209330868933919285770037764524803916041794353056481928712718989261065666377967534844852187913239777094938946717605223841674145270646645325810885108958857821781320488327679472899260594404890365116268937572690691967097893094065831903263162447743440350250310953678023440902699156296475455942203018648308957739997799619596906294220154241105505557683315637803039541534113709379921465792669619333519341179827358039780496498838919917918247678027842861846895741583009412872412518510975409198242740993406262662417333873733851952547409381215584350786910896395268264920953290257082150516811010917466170240603910442901163372314396978488555485620811500396331699971052422735108957680138299558240443872460571781309534686833349629564718735201244664974754256869344138801750436783392214093873556269444746161011086816345798780074815950203187709250981663960670170128686940195565383572856556989289034258848064624256926635345807495496525830856921648966020782645779802614118309289330465226588762279262634344240662303012701235441724694681069326377252354848008121096648799027992524257097501494799994379539125201251275072058265832789831932019311514774449150737206369319098319551305497598044092966791696619969229145836801611577657695007386053491796090682337479544394278315935103845413520317245230951729338065739367752564950412896059677851025782007921384530366255339029652560646666925428754066816388579064179166067822659130866878410977864321172347904224589832541390612950965843382123660983911949261820976578089497451149151716881358315778762492574388091663324435073210052960117166697844033144795720526079227095113758709066541448943174924096635911856571634468110493850606159570839180195073544891166078624455753582552287517692919011448109315866904797382962009656793881333620867148350034542102167784591997590838534752438318648354965598763060259343129958633518052142631074984445627122400016358311623089444981811927276179351434727730435377570543731862303984310159752242172555182363597826367194530450247690000578627392044383459821059876163069978498433345329514775399040803145839831299891491472672602590934692838983192437289247481150869182345731964053030300231258364224780960639025647943936242685694604629265986465530695255651039402176178340661582749901626638389571464315886591755109814251424820409264310625011714203035300443501905949567840729107135799885593441746908785442115529093421591120971313001542234639967718431808878639871870968527217680576096233035770994507345415984623001706720520799485771142885211348075252671027903521653430432726891931088850656391797497305415089464392697782141557284501064998406384535385599210153889257757029356123800120803052374287967942000035759290701730496192762012089035185386525378130743047710270871195775096926944630741069427457642416702762956816775005454208150709829214827915966192138734181162212712805051423931588305760666309998506676039639032273253228082077230831188741770752852313088124001831573729875467292081107210646970364515756051565005603078940970921633080482883889145507489126128709116883554787407560843100036982998343054863187647835289950722953919052397760504474680756747411142402434411250785186780401372973670400869274788751259703511228377004960897437497326895165697551194948768079389957841086909441937673179041039063625558528683179419671457473964458171679764497843575143678166156249751692086460420835154309941238976295787565709392141748323499636606161069237166366836569597670720872850751774532625598080714571447390937552308387489907585570998623613143856518797904661832517429442861328545576537988526277162249369014613283719863835763998062726838450868785057605656805473101058273565749162756474780256273450812033868581809598089296958680921213667102033707564807160861939454723261522136756559106812018526221371269401704219242846142320659114678450590710049658615704935027030493895057142170247428400311598315672440070643788861476916030341879773569724145147996018087644434828615330888220015655184417426327834804951014549079400452668328120185078047636551011575192090410656881664184251935472924578987546771194526045968845031728783633556181329570096060641227297731252401399065225405192023978233196327259537907364187586196920235896159115686472696635656730210902954520414946487759648808605897820698905929543437390359686628969908513032865819335928353437953962810505149062378054395056648607568861731676697159518001834533152375194711206784411577327710004278819081292471915509797636027061878511035946816822082424665966324536516762866511159595342634025517810010252626960432428247845052142735139640496254510882701341624609780141897418834164126486725920785157149030018311140314981751835381037417552713938905856576524627141635241320044451164023974770814667636983819561700664537854819836564797240314352982342447748143918728827583977275395770054423010957513685788008296705723059526475606337786805695771800385215860405069338211499057930031071590734173279227337800015757954954138557752351094105285055889590915253097291724516877483157942260299647847295972590001814845782321553429736572320549234276611213895921997535155251106654654983982873427509630149676890832292925600672156316124825821761347462448606153145333041185202099902863799575565535936449389139193719058328847736201634646989740013150270012738622429725356947475417978118433639114084370283805667324276007052375595196527450133219289429633339539076907833472690115331312314509159675010061908518793675772700741516732865666420451339349200233539686559985586702235958124999096067920581469745531467688899012251816643344242033115683298014741606551711092910278957275333421071156875385239389722277438829350092268354618851452874225079475239854248399136145989947267716931329361646948135016044640766951593246362086821277494397849288376193269878117209082419873462504722855267345105101273905672798296518864803728496947289144354675475780412877274120430859191618725083565465720673602187434609313756802527322302386827773527011177368020948666697485640809186634454926018902072978343288615287311290546366484368133192599496314834959928623852794246670689448495138487713838604291112069517971442724238826602552384914185723173827395089791417293876168929309603759942007494555412733887073766126276020776504774205354845143467984261556782273850405919085625611627192946062009110625075947837561494139603284870988569291414775538662958490709280896507324373171435385596985887511128741131800819304961209722741113769338593383805778673901083305387486793230686578769673215264567815866866638231751453900168535154500674255021088094473817810306382966448021300877509585206165965169775582593124967431031190823465983465003686073359816722270432086737000808957174285553314177537622665344756284763629726553249078186172220161197954755815747762450389592287521251254278128687843710924050651183278139174549946181658417659524677574681530658341479913132028320751511892783276626252728543259490053264873272731077466069609901568057193113384835985073902374818115645547543053082468574627851141079809722184114839748950192349276296135151725905655136467389713841448567883422302541383272241204631106885808724583278950670452176495741801399294767944095164866408618702090371423818223141762304726070642981833156697940727644351290985428427136091994121647545633577001852568379789464371365282960220389657116513514126019719763569066372093502810567443866259634610067260128698482627314349352389268981487101203570485165934237511421519967005337673204853599029562397667040115858294098603288962289239376842938491089353378665287656338409644482698659035473335012056946372913766400939932702483123683240261830017709857410452236136971806111234566036546722273374533256391757264474585523361192988452413640770479815779923608639051393219133429810327016063666198759369360093087709876956557441977688239833839437233637753066667124058518785321316943059797683792866049210724549387691012506012357847298150332838018085612073519800088322683230324001142684186406924434565453071870917968485722366935566803137315275913522441164283751659328540812351838552542273642523360273780941424094684220274838446670187294876181490564516370946540861649689979528301854366381937404175954276140587405421490951328260422364915126101175231055583160742565801320411245841896290844065713697323715619285546140522486869827636607355904615816989440081023315525834693983975684076152755418893458951866917925921196646462158229927502535708252410791341397337624110523737692749809161050008058232085838506685891479092461270792204925710094233159571854408853548076337920055647122392712341400315289375181328838342335359761835954131487579832569802602535454370623803638637387463850822504092160613412589068707887305162427049365820362061083298763388685217624198425410267819895244392264421383791933949012709105964042434501369003676086534433464344072018627950457055490722253732165946135684241071488690469813041278060090836390072778162563008500319241201303898282909667936116477039575547852789100905677528930186874525343833495049878632743352837914292541958356031601356090915462433784592059720586082754547328742399149470325940746911591979712831786619863736442784359319199723040243268822727605348722531837264102156857550978997389236214341745393941163160399307871595036603242417023746078871694630944953111832045416394998260725995628368934638219225762673581840166704739167876309741213222082751470560480047863815506751351981233484375315284101301905030184194538365317330432321841561081940604625147146385076132089909304112015922841348955651828021181026846959156322086205121412856762888656355712978616963831753347094418160814710876624712483160333444389687065306875264089004355227818314064855688657185567028374901194184583037062427665299356917285023503972365522001370387111986312751273350472755330178983348198056893664356228857144760619191147830711980730170880660885025906455976419476093310795579794871416625002920707827319356646256794831373865713144964339180777912887790879470510573327822426063371177717371441634822975465983773844845194927047873115484222849257337588234552040159206508539764469547400711689835735440842498188137655444357089518226878760278199465070554944348400077226536653746942906024237736585389473111805401798774723296524334032632693153215061895109118163419395350798745571679716101680160722543050476115368285304230606390237210349452042970477115370122419587597643789367955242952246854866489551113819947289237915587946298107870553203419908846736385251537740501671916246613035420323806732671600397012955677819321863571115788686004437983466187053000158876001331930787740441730222817455539165346116141194378292869175054161998920428621034560814939434384865506456703162996486032899582145388120708769852152725601238954273452851970451786565072407431784062660117131868764368029881978506140739599380845833583050509816889097161284901441288032502116625463392977909795304282804519013889813845358035392985504288129118606730548951997406635265648684269331603364783209169010101605868208762823367496377366927080772077645071791832479907555727896601951006002421343368277449881611593433651915713372459608323294667749470339163328435187591040715240577952787810224172071180941803981818074402410455223330406250016498953353220999983126413592906222089600803853500415578843112781901459674499500527194021133592083565464977868916551648163320172715687248267347601940256011388182123817349177958847196654606703227153425276095610373394127628246416654160214218653362147267026009307526940866721765459032956300338976924278153082680403981177053468745147816369858000301157021032180585922239151381756869367637678351108319589561178358923421223642024558660852150021000732969978192411937510654165405141957213819916070466467649472712839563152075285659740862693293509861529182101182727375441788792621070320145494185711919385909072557761733031349170708479916399117921623828931977343233450308738045526060146630378729179474725711518181343279059829385326668852886545875983022161062842067278050440080626028676765355976044987455113502696515795981249309322016999137133880525412902714598730117672659391929181802801121677900485433679887793549444714380578027221317842623239713841718117144938379192535632177285645512094292485123745054191392558138403301666575647109377539652447784849821233396554972105491137271508115353506109452295815080294151372517892337814146037201164649946173260546762950908168682340666389406226803428374114065149365578413876953994752624739516932916461098486191599071188404427961440385412262900200081527529875036411759963004386868134784919904475579820840761033817472258244858688135287038890770817005810999187238060755611686433356321076189242161857073554038136845274769697848656978684548596488669243356188724477820380357414328120073820852050029881090329997712631787773088364962199870956737321365706632194518174165885377438431135852976513004553035806633398118569112524988574132607529322383614263467363485188935797797566616104692989089554957125681328170739305210509280202093737304988722865863933415508542170252062290874236636382093091950966762354034959956419161915637184918402863271903250462789135565764602311617772345928898638880754833648655226890016099264124387271088230171979131598025960500875605520513847045097547492173264378143373616613058315543048092612032802669409605592116081124783038557417453018310535652691701494347219468014408976444976449986762777445609680573391029280211760566474661666280396866088988298096997425472433201622941255156150857397847725879833525355483117530347017576859601701200469332705055706456659024053635398783927628740107704047171176789454148860631426072205718113178028570160896878195527523236479219433838274919822187747644357368418014841183477644502355982265733728931206071067650454159112891162827079933480672607641439634124687812797959515801014837658625490680573596683625370683318647519484380551431605256151674055229751806130351458164173302307734088739764813708616020636009163097651577099553753942160124995307838434236753274340680163241899219027619028585981280740298056465541659947645940994944730964572839967284705957260176151597189565281841052106300384413277292412222735387771021536892825534336906636300634697295880777898693703498572580239867038642971055243317747190046777386149876373928067599882256501378511642267356118896678649763499883853261736785853218179708551464374722333049743759584514029668204991253510945683437924067096870500630208778277432046928780155289065856763171916673270289832352819031942899653185549770526582071571829220031519339395553078712998767088689409958580674080731732939368310170430025735461866730827078688817934070288661301229770662873879926966195161423676850785072160799463649587220483193730715777744861125594619664830398883372987381112674105810476413410217246835398701156375725274269956684368006385052933892347529971987767005632359589457018729857528269329769037489255180507496450411103713283450685775396365330626958643813199361076432550214415822251221647133091882975296579295498937055463922111486755193593288014584417939152931941116031478100618082360245010607064718363808555424220732315349619834334356402116229084009920400664808015445326768412617334921743530539071947155944140969838898307160385123370595758541520214525420052314506025918738764113549390223184331880998743701691360094265038352583583006320272569668281216869162022859556595404128071042172146458434004819972341257318242660370464808288566783372975956346500434578912097764249829132828042990690608591787411636104032696810148231149364376470189750369576073323335068975025793616024930927892771059070843206521408633667017304471428741849766203388816185980432323222292706452188640352008121228618562869502342570762475872790319811705731108330823091637874102891307602826213142734137162876467211323666625955150484489310617477654038317625473111123892582119610306260763201760627381712371796059962250047208957789415205089692601755767884294099574226575091728089935313702793101824162264304456769245926946854133490204567458340073498410181954113536591774262648278425848248671402818832502591509421630440564803275066372826862785590027964990415045641411219927374844195591538994623171083553103673132624088323315642546447352405195183965352577350914428500703694277224036637144138700759069307685678717151768024818537410581647911654709858812895224036316794457111861428754602522171699314652800184853881925245768419128190928166758512878100617694806625093971411530377954862909014967295897297248771612187240355202483504703519668326112408046130667061587592929887997494505955503162386595905056354911162622346126817762902321702193971754352311967738095244949625011604293954044325165954730106017543209542807280081336514047112951646188591377667964976595694584475274897307270581115307881805375710219487966648303958561475452762945022271579356946543668246832144619914051803710721687081713034027274483537011568205282053416721508486731206477432989169740631812904397414568291594048136514065378276050637038803948839230176951007896619533136910430639209665422269454870720227104442624923323642520425647700423980452909977586130789104345040028632839879559309419310936193659135898746355178321113063159016723507067548344139139075280178603188980079568035131933353959984578414336465945333345913351646148544526327987487936592917636589756113103284651704032701276838916144790883213945980054430100466546406188528949235318729189173767820531758618243898145159061360657801981935387208335319089481016657352922735707084014467071760626543368763186224405957246797132641133648539608049687038429619323709189074064664692271876112521549565813557014949734668360827205922174276131130639453209660209398381583090781545350899492816988880417593641076464819497780117231639801964730970675351254310965360094517241547814959227877618744557676116015252068977986750575955234825457694482242333497616177519391796106928385520024132046221175908176110538606678815017176430212037438116026169084097308305657180496001678774542512164519340727233543153510858924260140520800898632620068811444944030381698983365733657256681122854487367924882612022822553418679081658924732909423147496644152135267210207123868529975813136648513475081474730992137398662454261608798862123454284733490688496502270871793433289098255451667261693167998413254083886718541965676751117999537476428184220361811560645321208611969145900195928443230551617380252911394338568323868968663815463124160029161759772051470958193228879411986214290965640530102006956631250072790611409616101511124273736686363506224475278667361643623822022936121798535420563056481591917936267694129383147905134879578497665878387841345227211900374482497287704911770222675871955973249438252598744872411720775640983848327009531741921660467264411767453464358693420824328281047079737294681659930238014024016854840988916479959807945474755787873898377544360126499641175396315670416009120894880927075586229305902571891875335304767988314284546042475367092198125808108692397552358675200784493988944120631715795482938561460646398082625486698496844835490928870436516991927411268862357531499412920605280923115218395535144337753511417525141780751068907387637258262716604113685604328407208287395937913532087992261364867645341145810609755483059336654854290345295327858085332225358894772890847003853099433554655295957832371904699190354618905321099922682082628789248983981675944222443247487101385515779799655631240737293733557726535908873688795501122577209856819811667211252693230573449310854139523021297682436639174490698995104068184474837619697740519442990751795205173912724968233581494511146210414495648379758307867805774984627681305572434483497143519295174357968272830409609825906641521660206786130634215663014055564206387191032256968062856432505218664461297039530680222657290327593363351909854678886665973813954436697680291986834709169048613275378413674880603417298089151569336925725774806000680312314298336715659447494101338906733528193562211092644006427487717390058485799628016816856692349808308989121113601865011651685374322321427237975802459807590585513325651938044532541166615879027627781988694802526577991805902486549392894296539356970342335533172675866363216805794524146950621878147172259695796682134367254209885850148841689428327962647277243340179927322836760406752775948748663101327825009405055151905873966177985662076861189577190565376756330845227178753043020745856949005628815938191885399241341506633153068832770237256543527910084038718857733444128047079817602124439225849740045350444593678281106811490674500689093798687811248285259825741697104368346390901258974271127543188097189640320067805015501116123862604695500822745972177629344038522868286503309973473771653395131379831432294691875326298546831438912049758647959141643685740180346684646129053818794006483320662787385910562988171893171692319774326315902465552769782546419036449401969236119639721660729470227930384339114151547747096922707743422407245854696784455181122733843618531935056358760272120266655103192242521084768903535130446192078105796044880038587440438703138131086662466997098263654263407253556152561603682777443472575247329820227666827978238575537257143796501521777454521166299135668207298688446301350346702714158457488410066306423290056192331605867913350402808881094571882396772911346835813759338825264161422847750988966044887247490250968096219060214666175735059985191232509649503422925221745037386561391093874254372809614211038384078134709903579284029370161610808005838854820608357313610136357022688714023914283971168851993382191845944779732658006038209090134323749361918414445121953020626664942568849780883550747501827259158886191835404799465033538750346464380805367203999652422109093459976517628908440012072810740032062392464913225030881239886559159615627017197916513170263157697249764640979827960953617969531728664208867640818423530978178130018256429561848372738215258908952042463316071979215406389802948284277430226042618308434950807427716853070648164774198521472903885468096747801540788741984043940638357558414561403263606954615220245581849126264056104149815197970833785731766656706778325417815648143061892586541905904037278292331084811133660746489194453483454260135312397137688472252816437720373447537159883379578161034087271478102330236188071505249202841871217879486609428370946351092602240457142618992593233751332619373886023221162501198268873363981728718097675711474501874440404418956098622193753084523950427264976328723791598922389652964967531906801380855517067111986982167124208825817482776315545426416239117170110392775445197944494634312231431594035730302503864686137804009861873860887473573143082240392627685584226439370475435628097947872455635815040366009099960947980042579590402928011484898642319100340092341288386669470532062102943702766842634574331358187742155492303652587197808558383262616967561939193743871492308899293370390175410010698209954160911274472189626775898824164647560427964985600764204544081932159546558712686163567763431739959197347646866250391419626358228220505598102722442198177023459825992160014016166453457654948381103879820437260905126069885038920538693516488008335187321867547237145514959530484904650112244828187577026125217877403647865856918726081285857712075008724045225259282297562860511039703262665516289187514731810700700868105652782972535689380445281790596536287868537899982848882158796034937023690940162093093872732966529035239650030219386284776709076765069382608206102424879896347982728819748018244450603936540090355324701218990234139102618977755175080383271285679725328208833634305981482258878018001373189383808081660794599401248126363727412716004155843483303262842247399941734624265941039473464192294636085786988789401838166501539138443995359682803899693516271352105208169284860604924478594965813273975582909426281462530364125747599932053034095986343329724430558759070688357273941380170832467896616744444687022404143235335773631534693173046205685997524764335724874242906941363969521976581280619262318796161246228077467533800549339354648249657005370440877448371786676206640989769216330128879473032621096945145469858325812578440070878625414418609051559228145912125400458650187357690475972218328931552532359994635770039759798585365200634438748884461585333650001500628459448472196928604497323009673829581816699202522453092294201912032454550723394627124711318514978798319996242275227691999999312472119623595650544784935707793864263475677777989605374077232289552110951658315393086629824046504521490887785153367697777606200513120341771979869658509257240451712301988326347205843811977163706182632161455480498146808494122550315517589077998645667097986964235849409795282842060972764482264895535128526840428499612864442313265615205934460797089583762363905969644405867526206417381317198586117310245707429548681928592862071409351267093055427307656120676336982839419262869176888349825855799897104160118051538286451252044185139478387818819002849248114667510326085420109012756402445964457183815910127186987841869360928999868992087830846677812694364320269533409000972922629902362744229931769230405028865709487144353222536654505641492676279356391985786407876356294508828838278489822092532532481669871623494173538272861246968390319564331950156902807488398047868262442514283689214791850602840001683702955738754679593881746056784208056048558410306070509803710691972873187016423864245429606731557597243613525568845585842388969639387061582505353108885538559770675576467050176548652508239296016579925786785171087224870312113031688349334505537884889204330373443050629964104998419615811928829849723357929058882035621464536720919825525454026902190215263768651840733457597046264269171764968830821620774429003322975796446755882228603183989529417417535492496901223794467036515638384625552954432523149467842877851577311073399668105341904252869877290671525558066220068147627202586822998379494530774359858582058776965168110101627685186370701644648373513888509838740736497935148044189487417802678293081573072132705703474342495506538502599740263665706487606008660407962165230304115868389937875728292684695116141176289416587219431040801515378436663586766849477845332311018867935945116481352060737901702434016636762617677108427850235157519343860627049171803848516152295747308112270763048565931598669821273787721202405329495955878328320789703917853091234269133507924642609101446835434879445209771639471319192999627115362735021396800331094255173602892923362925544477209941803778365240885007912175595875497304500340743941173851199409868368873270606522061352704335300274863132309449733553769153049639095061576637988400339385230349604078152428770717812613462479082496279687926604672351418898465352461612018365914700933573596729436735464951590110103774977644933231222422946291920711111491233395246394263180688018639942108321233478366711313984509967477800474429983632753173779202807915990356767186242790389382093400220576616343777903656050352813870458407059952911426149823492213334190526030601651358890327373394317174773377448561483541789514365386016965829455210801464224070816515836483936779688661630791698379748728118821668540859178974161419146649101962387345279718774764778447291552818335741409824047725782139039535738111266828740632925251539900430090137420428054769020441957256437256640281266397849760777522344897698767066317542501739122142985395068011103695528269662761613877611508829088938982420991947483936339561355294659241842138956861588852362327182480276742863768475979958327978520927608417226708190548768115467679290294396634494964065278348482510773061897834799841371150888214930322282156132215816500390705660454789604446297384570604032066122289533248916956485452358939062546550873727573140655843171855682724713977586616693305768982025694814857283470936381201268585414956083375252753113301818352891444513404216183186216643434810196164116968499412149120222958834352490442072790542102657609992954899605518577268617378492261261589362755653540997017112902708531194034535245357268768196426701803278641021698434541438048587124391782266452986635982789348887998435928852082025765484904183862569531824213094311823672582181215166810811394911727037502845272810946381278129539989167944633337952835511551952750562466843145163868519587054294731725952032557007886458587534315508421250008940114378937883271376618870911204741933807012689861047675280779564827028671661994151333908135364452984616045266301773707583175542456731593110404567511773868640044755700147912257510356223939351794118383042262972863595997760908448441625299263237465251702507216090524146741645371746526733927952426191779310593941575367710876999545799682866846688935250730051399668182095158441817727902129450497699855786401123146457296592314160380246255750219772985703196167507036065031242813738135633661713736217116913060108437120766489690561475131124955832772123784617931130885774625189318631958412970954163918858275214004404533370989109241527529453183112626866662990891713334380694593108311812110415216625861878842035578320053269028025954291503262833419386399964537180806789737967619478610774345915721544061209643096065920155826605413157071130503894894924445082359538221638951308763109895941802000059704580834822463141877192703321450428906949311192380457158014985765674655442469365386291142548955631299526531672389062282779685833401486762756875966977645085350622171356087681765202540360212448864512861694068829724167423310677296040446497541004110308057831148135596820583652100269021931599940009800414480305642835042801911635520525037546578625885856823352782194170908502783899722717181436257955316019063884287145783452138897575937493069727234727278199419752384842721539634152006185958928123745337320920000838195278892358217201845977600721719642987900730015107889846262669517809499590517544835255252662512067896888548382046812828789646445349108231394555707955249538301995458137328327420754962503336671065816700978390889569771820372229532141004616604723172011523651388482134431351720105279798211414657311020653719612623112891292052072461401558786219614608168224581202722818945047303913326352309220628016886314219217825123743655934322020709042084206096322655969376773466024657521693442459056015928316262508537770904131980034145011371557702853552455483259114439839539292607689089543019012267316565807206462134845422238811295884136371144091429200293896704303499376478465246795314201558616405757906270604096096908680252181401950693813177457445931496750960975960872178074448472097090726315891007475384735222503477115373772370544007604065866403014530953523518393591393929186466104776022993478932664396008116301351797702218143299606686227262931940463709608711185573000263346863742318913325413181393954719458201117632590869490242894348274092505495633088376064768395080188658616314127100461461437875940837494253195388848853372645793880922002167581576841891863156676802105885413184159835183094468894912841207959413298578098498278302207734829951498227044278887911691235207768399941993050037754190361818846878387309622062174463591401650132571622691329292127005224521299226315670261183876762587516611957021258491845569986261496619716328190248773983685406338047038114661006647948441307265318235555454366199506600914412159517839835443004324213361976100592697551594392165096096600580371390220794975803744041664838046651369489813619146683917270638465437701175402192596538123823821489203062890439772603811594799320281429147857554668658074934167721951027871759805445594830957446779452507187787901287930679989051733407888731743104802084681446656409644396442157077252390564609311393234138318569779480054441684612252900958608874435194208660366408723560481313638871514938850775595547275802198637102077877782774849878999184558468580134593279951206168487289186406579848008515739251209178446336929653930810916173205515891528476008124879145279352362744018224422913492148847558344783847279924724732831322798935681379168546958853569510577327094753316895272483973093863345124466328877696424091629095319030784106360276169550202421698590254105013330131346906181154748564917246770990924456045176319343207511073364882106630192132481173516064173692998638601528497539874203458517207443104951083750059999366529789446712970756518259144713859538893321525682196126496576101569040828493376550389303635625548562164874269827491000552208904959100255687699459637635724077605622932731567495029191029713285036043938972807998133761139801509756346535169123030849598973428793886801096186699338312222977585675019093905407141289891660897580797224885882922581178751814200761913671128180028078844187737345572827314064796413383096818544833063566833290120364966468484252536536991208941717746359084494084830103026630524312168087450044402128298760454156966172834687944309453695563032529663445832704570679690385134184907714873716304567993127905802062697997877676091046825514850788784875782029195309553403361606891603462598758790052708386101911193726323558282761662963474344290758824255113544030523069365416994462527815315387535007138358143403764269284765161487919346340189051654050914039032414067746004568164629208323444429538737382453594270772738523612983201087694859393285316072325863713577830977060616662341604985248621640055757992841840155393869389826918756850075585516277128681254269935751001060716636605988156815757030333049283080689142206287441029585172771253028691928527043405105335415474892327015055013886185139421119888461792207362645451446758054612484488339277107207142696511786261884002349133734954873113495541402317368641573782842804342729061053506961441525931691808148028915201527904264143053323470216041659179676313088939807010124959482300189243898019152302058085559187664053705063406188347129080583219716684455982683069622641366003873545424911488811269894155768810006866717044674955978754386697156551856287120187450065592130979734599186674798963835224158139153381623639032589231806172009237182401845653679454495732560286888269398783322569004212823442208924713989878983557785085183317964778407737646422751831961284759608810005626551464531627682985198282793992047117654569984028541944543461260765291057151842807333769268531753672623473150480068572151437889468898550760708619783009019430705312021566605783402923531310715300608822425911055235479085424540810412860806267028560893505704570827858296616214474947113168602729160883098223482874916921791715854042219686683175270348397296833414569248558417640635410010169089548658820703898277478146779610016157685587206070647811729556458153255894381110515527254145975405244751301504512680263397658532192238087174108741068561936990518854519959824766348481300911990872011266685274273141050186239199226452445163416985303744831805963989171329082269855073047637912937401357430061227551385634266588247748773598795927386234196141174736338185847979735193592386421186032391309611577914876135442301237317998551702431995774710232228349660516157027140723229914663038792387076556543629882412798483828072671180164393796568459010253637242540762549164894753057962206741460066491291850763774042891474065113267926179337370600896297475538875264772586368663114176605061025405411067941537382377353619283121995700584978060003503706036466831651401862618530483226142843197245351240413279397716536818208330543294997567811108182362323122525028428529650779976243520047439399006064734608176072274278794105376032660716462546463917100268396355952883172210158397988693057725720683205825883056998121374608636131900259730962351011564218466751978377453958273985722837353587631899749750072139823626545628125166493182398364649304918717989071053676282462830247467077454749759695982581197944447327914281367710867591378160867087427506371086332464905936807118857053599609929156703512971771529982745473355004713078965759301600946927362424955689888525352172481011333177569280754267813552527300469369607398410058959763626999103395319899202928859781309567852505113386932817544724018050751898451599544410661769953253673278887996473895301431711953932639718562721239360324191805999432326119822990106288504539597173062660608469274086745960207481131802480029020437875004581991009236092992066695513609940059045734016266240508649745212214933215019521944980777124718648693973002339729078681699378966906282131541644527285829632047377287658928191662436016595516197469531964897125170564480246830984133023937229695484308786978128991101520352596010901626108340693193686181851058217047523228120132297504278541550484331284477432155518451272388008935090847098904512302618728515907027236582277440924896360470975848525051559832965541270093971297979309156406491034496427357101368760032362770160882267473375693712892608009457841598578831745450785082171465328376608016023805679959654190129799506874290371378734880444981608444940407551060799997800834092266076224765867754827088378974872460042956091585420977039559132240133945047399492105686253938351325352854922319748612907673247562345538634878763398869262205126070976383916702985983245062117574809248682019899775379897120132081335674896393115643518669193019072894917529669927674186108207091993568217927404025940761945999749691581662804761146248169051763189209992793559856968025269257339698630662884019616567261935821162889440683775315048535222659050005592154100877133274292459961675322265266383344833322170280171987853666067288453574753572505759255416738912615220673612505499373793537015895872898260043223941635219993996654349037714304815883332995959485926099907674034342332664855788009175140121577435198750499412961612622554041180588580465811158386132170135983115277872936503419872920424187850259201061081425560727083799711069257776513666583800066499327448555213701636673741731731267147266954619368689509565725550931598119327955207998674439152506818260969867047791955126650629629017178656790111201635669097576792314333547112438930999159109963804162821379822618239391524131754930775523440321118507082046127775486847659005908514792451584752345131656512778958137353742249432724919898402612890463627953600289471778374276263324083449919930814533295316730377544730005698230060233837680961680092200643619821928512199431259377678463753141024840907485237836179700123389713262852891808114446023149650571860324947780401533956259999126795873784051624490392642159357363492858193131722367565466940687520024878050091149913759899767237975344538668770324629571877749301950304798999889052191337099601988310474963002795608696863024402652361470776125067399117466916674720671235055466673871564679171403431035967068416736685469737458820701787026115907452016581233480277891682521576389525483726891659358874368887253732350411149889865639621710546321656616212871418813627178426679363176728427014794243180577994733185821850796401789544751109019317130772907579176132027611085367858065624516566113371240611737726790158875403096602575737526692036586495155228835273565857210710283653169668684962684751629079513541349533917287305421319542783682364408716538326988045545699897861366801017734749894855383065362715200104733592549627962420236073607626587427896341316673514136150306784064479669333301397098172542739325932034632679738008521253014620754875969831470876261642569373397024608001334801978716439587913685856124787482763291228209665659683528247786780615912956502919215184946253929003849728930053489185256692758353163769777175192374555582469133061730842591187019307173304010221026712396155911185605778488821998623938269536903220810549217798947414306631878349693529708643562954341729453524948969217196896363481224388041023038116805425023093268481671606662726885536011867501460395554633214596289965602053773075438871496312812358753628780448867051961429344480806805906256215132889019690964343435916943450105139451738854615603970138409584629772980409612119440434414015682018992138161770124087223974388118662512226301403670959070913083201893354876379881558227177302225955758217589572149436983431484024082688964597030385309773088038486678661612754330750817630072578365695328572588639075345359651005901800733276462695546675139273174710028841253170827505383054586828304721200828859278106550065756270229940219314251551063566520425625056328673966592690192043513283977607650055300541962655338090700018559151020703960558677894681700413316718764478736299753330361579794558907259448140133250296760198161303824804677744910255123528719796420715234846921771863682852592561358661241306067748395686674529979061533387087984091228284432226484897497152558397610803971240018414782229335805581611837998440159137663055428824453897548478871681675960514699954686083785945994693145824416623618469544348399793684091620231739255354904552427173244772147374547003848590647871591978871428733765653132652260932383026447175806298274073602799463011084519522838793938204181112577686369784754438103560228686661860167438300449537734663490661915628604090924213196220488601840924736842429108780702424050320561667506291168581962967859149082929787696398833916414757470454981127716886596408523261031495269463742842746186198519063898532656581991299323247336014836164748787251739844397551557645638018062395877002816575372590318563509503012950290469043688392829105209653612456876057472044887574434955549258739377228020838745959570479765006295569358514513193006561466314850247001833307065308364450376483654682343749949958157565204162217289035119405949728197225071812855446906167662833187319205507854752049013708223065477744381029234667757258161682335450953424511037610635457739598918281665802250131061131572714692238729322499571546266800101708149044469966962390780261313938242823495911537155676623674532092385431817138358798454774119755431023694974750143986871643449356840460557981028343710930742493938039802067083592734595747984447436532931583090335313921040801044494391512092035639413319645532717438723642152007052327085494351966072019690492583815102568487355464295670803892674915601534572964945324176044723862486044603596575071121009502108827482503620701687733372464872824141673367374175988664839579157652791559996391506024484542394061347040678873557904577848806130161248037712588122717405195911415994618242781321278419630581514784035289300834228647375178152797996223623142928075129343322284576519601338138467676638832217383650945299580308483016035746559933155766207870397605430607782903094275092864134912236445643638115059114113326248081441823679003366575796585856733024103763218285563226269743813129862641899359228369015791089858777772400071228742846337018455438132204641828082374536533800425234035195485214846404365084353080868563861514901826398482810201279628492358428545823720796771797789905857602118510726146846246151500949503687614200914183592072047593240603388776257196203390070118105853058457447502119747202295948960867971664500390464463832251859039988483440324587569647494435877463176480295160479248202447038079905482853026493881934336276445033956345304960317465894970732327839223724270131405186086261721971968178013934730406489310865275688975892210827112014708091647120558355715012015040976903225203367799440935188762488977903902567385957427905924046993419436584911765991049441284349305777554167984352314040847503267135122779074265619302846579405216823250276828524310659447390886229003946820828880145225736699762341839643037639022081793728747691372828991800862875357533796299016216719096774558488310755527810385309557123542549347448424156249816278805850286706265556218913918188226721499287549486173859791970183088814627202405296546564713014527058031078756744096442304895491256052025629695680095245457008250697139436416136544999996575014630634810979293217661039151169003736150860169725050055704254851303989355729894582772295633473930091982171643998532511744024300532245361638830967578899780760973944684495330451407189333973726890992781313802844846073357927061367832986375843054829387315474580694110829416515328805165957922035923564348147558546253721736167198045990667818941061935269926800939945256405929230428725377253148044448568259568530407895732585322657824293530624443319553281876449769304378568787335316287617123906592921844509968477377156369986010801459409377703376377706206141197009696888347777802645070726552386738211383078912647698548333085755692286292360180020321604453376980836601889418353901228951712749804756320175074570270647170603519905592270287197603197019530248406819189284207894895058024282838455121622726877438724414505756741112176456827464184855539821736282573188042967536321766385250917187747291480598416580312116376778448259298913535308464654530927432797474915689173143495093192381281597108972513895594040333848728486250643357248637938792110427051642397084951863453862931694438570562428093285877437126727071538038090239646703447948949011572470006019838284171304882670002662189696138161799679764710816049978936910507396122615232985449827588546224815570576101612994472358320080859355295357825995438569168677421011959192821019201496145269201209380763513789867383079080621002127900651576121968276971843862747630456001464532698034364828938900749609642008842894235160093035374241456997940012302364881569650029591139478255137933641568869340812535752807861575378152654083368689549127344871948678141262192478774980239662233028459499577902782846362186978486089543602345278124679084853594864036576985038264345771802117892076619022356928109095673248727237982023748260917256308311855706216036894440851661141597214197862925439720988588908343979069978570695530170644536954230990104214709936819940688465652242297965508537037187801286934727046187954485440064755324770804054919549314033080240141930867429971014713715896445432287363364657406151437161622881587069773092158832903940054552465588407888354108802115453620189516745298292259718514434290859306057652739442202214121834933314576667253282516561972607803993031235837309358431824977536249434020848437328223499242897124203773967575504933861546898660807143165913236622380657101691555420907011743340208921699596996137771755473312147328792294710190566573205863836333783975497764608570592690099496255094478996011882118761470045393756483270914351193056633680515328880018800720074122429133924011788748197627716112517381002489997042637123079266073936065138337741962221060785855818109631075281677285601482240203683112772470170778491610713524415465948567270938356505649183360958485368429127507914069913160134594365339553023323151467622362673626670293215649448980908425301607141038271638220646514064194959925945911173689218585668568157172059000079575739248033448668791082934769557167940214738536616002065583219200026277183242754627811045518181443032960799004367117939479896448913611143470244374779192456882404148996173273961757253730959756386099872282871843366624798954942000712583548236947840647502064337359006619251964717777289266366700278383940376189896683057951147300428249264644014463699690990802982015407877519528799045227467122120301054635370310186835495013596850785677469283621706157055158865617200030384509661664020898716828788238194872200975465334310420683911102889407136787600216512085353863032144134830892036170179130280890558786859955028868561953375912835730450692146190275083393896486986408901964149653202164763059592293194784089809939575421657534784366103019185885160669305163320999364567421265870586076613056313633200338337344205673581649913184920078967200177524287592998394823873552464580331535853196246301284080725171646394706795636364460027890873747643689626936387576009136106945698355610091770324779540256965564828577314613127228860357105482277706644564677582151878190008689145647047459499291515280472085419015406708362343836228196129488813066545110417941725283413948928091541784714872402475246873081523307528061414207343816672104180624445387866264267950811501217682492510206157241592174817549632979254172487314694917780116855038224351097710979647522612259071744140299946447921385163321670698503369495382974610129426435999996622384013284918564597000661994344358783573449687774550065299009626624647087203291510718580868782787421560579784700110677147424671572499740164537900783972052985651004855979871155280142843422352699515531676794361500196283247235678072918272742030166778930250898480784989270385543309826552478131766571887768779887998213655896365999500580744835404696937453498886228876050135109252433110663483287303274547044462068469277877300516376719655111072604984452788951265385436891017390106251281352505794396829631213572757996858499461245905824013417510890034902286452628429945890688943409813695374856591766669046518987896769678097036916121850527410599025506876708245613144629586946630934635270659733422795465508647870496786037874258503197646495355836790722676512311780014158920790964069266190939636729583908799134115503545620647837640070124806840030030216784000068194929133466938429709903162193960799963194593677633281343966500557069021244359180583349026085849679461281564030725761686746985427196697995833593677287651662960152062762439242463399753913405771120579703065326978108553841285077070314549314014838989481936360503386471265409908973726717965558710595596905748762122686002822800997080098320686401458303237883132290923184415372550331074416570094826897801678549500528281623820851828023471992068283593424782586503574537684821483984675131888430323645169371525535341221841679381496931761391648171917193478610969131064738275356641097273029983267388128551294167388936403008467865267394894144978343765299131596141743300327874914125222111655852889084335396105913548230932577577028196766278567704176187647605023782913634023713140361701040304790369885906967298520254577259435467564534176040642367531871118624652536633893985904602949190522235955437961469217322944248584805253652870557860738614756372362099788503819607074858117485756076448227503432679763794506077212416734744618737634255072446863042101814246186052831376428768952311753925208376659690098971017995109901588931057120024130341794546885691470187643031655470540052195517594348636454351994441876280188856981500168118942403648595864745792692782639584882565811814469714573173878238742543032375947943806669446326532307967148406308374720045546033677067847930609715074099068382560234353145613978527526407481834796409590060192167041612456750414263048960599517022432224579050425272208548530997726436083756459111554192170183548208936931626074416780052066769043968419675817284460495411028208667744535637734227388943842502507249058149307866297006145514340796972981477019602875211264715731078226676423352725594875076930694494986034467001984855523249609376345097853682688486411983143049510520820875974003699308071541379182937949065790657433744949682025500674874584339594278667414586367083774191152421896665068746186637579743046876967867585764144629670598445291111611328408236980543192498063896485988816885830487743806105096044013252058888318743022360877760379670807721208078972905702715741862669304320793883171188991485852401207946797940253316849549628264417042890639775965472754800675876452887110164806311489835256971659811619289929393284970094068776771671149640734328054484533451321811625149679530280555137820404135239551806897496054797788656214324519558519999368414174538587222413299896177053615024165313377080538472825451917644869187807035098720273555320353867258420777026636106115232332313506867466059797639861225078145828730580761473908935471644860729948893887369050868354804106166363338660860417640770874885517679079891239974635823167575989087943356513187772324106684444839819130030381438803917171534339208095811665451946748211521463511928059486044608816689983042530577275000082860303191703848025889387897089197746020214162752033739387266630657836993491193405071006971304541198632985812435965491079827231788105082187296356934849316427618277162686145699100337906188208865600455244299505790482307509477688336845219086332915909318277084044644875659334144769266535096190730245869704225734566299482134338624825559623031459179874997673949937055203164061406349139623759070254703285440887191676578980572041217454867652540070259614858026356825162340446290115787508959884992251992862975075218181174827529276347802924886989749060579286467872928382841059375483186620599877440777973050422539741905652308385332177986031867703210589619653412023278363600516002217041365996441226593393730494259525597595841526628196691222395018200397839813350782544280778589691738587221075887625229151031631384533175528947856013970533714793366337374710786133720517632114600725727847641842179141070300209255984208194212152515134645555326392513457893593969223418926526637957238493577934442259783030760916291191420206395160176011480504466388735514086926247280059954309646597063444296387466384820031280586373020922218289292667561383026114713579676532726109636736441479930943019582342206913389085670620791639165804648577561626045989192924681693797912915293598076780516026622573357117241586603798883806067548669663347589793364913777239066473536643204559888116480703861739621853204536028762930942979934174257678667485168768135910777532617556390414996937816344393147734462990864984647386237020963032331652435339127843408396250451210091556286002456028094304685836738354203840394411568295415829508342742047216190514585928951993473359306839963250547471911585032113951490623797100591063584146429755805173610703484396354482276995282966936217795936044715674701602308415767019414164156022391572681772365973385317445869888529803361481742225106985928201191979320216298280798193001143023013114561980046584208874479658260270555013549377109673680431712561898802480990024584579944272367131285752725182240893826030562839755869471165053901027908918963612218172003908297770142257481165554589043498944067734601011774035926316336504568552998567532055804355887188412217211842047515064222539945555157404184724559654265690573183255826683894274841929103897522658067275145856042562247244165141722732505506375533542597794708774108229806043547026893802693080067362795853391235283957491044783461642487243921599696234965109538048758992006241704262809954160530019884206424481658992785920078501952304165166348266697271460242467093131892549353512459335268406399550076894090133714243849368569772574189238991882377004762843147620830462867006992689625108318043450485249319175585121600331762403548947814502621541285485023802603786795213660817796976324798264325932050678019167424665657891739182849949597531386905030932820661226599411635373754103116780274469405196077068779785400955871708710282851395566311780355554165464243782148552577978844638731471256750085461556417108511899508318809761919261096200742127299112695406562770034882370975227757752366103002395323462548921496158180937773511163393312959826422332472212555248572447338631961274535005435303088342955775283306884274456609690805373857439930571274031568289124171605983072793168600066863524515895803752701297159031166619175531782188205018062190224961366903750619864080877811253016587433181295478431017892983539252873549731047872101775476087684754108998685886427130481077839777373062544921489577227334462547999566328520554151766383106674853193282324797056771992769135735013531791763765355394091162854930350002969822757973243902351470542855901363309882142882558188977924998789787764888034779515094822022566242737934910006168929905335909699493492950487203675594165048871352082699986083441898566062309065114703769004852377461592722750505261186921263508066617674756387510251767156288818287295781152252564723428397062219118644557211990992896075678819022173005776655502866762365838931212891180609803747177721319503180346356758340243135155463906737145124631054258702717309846972857381996759642911161818930938156117179430881557949893001424883042065002371899509707633794412912409610422044910038398008037777353125204845360604643131350880167068481307423661698018022600137650670978891133462077166184132965035443242572040287487187555420243927271919906033558156139915862072809414244666105835893954021088356689351554610470516670441032527716398201997525551859917542816552035283926915065135722638273991399374714416329383581925311904819816427884111884014448102844415868590710858057081985228435807470476357207872973213429240022717279520832740964373626702177762580832589259517025761241418983549312292469764734282998690467221157074396437622482150488914014871057066289100219874793864410623726110919722760705080052372497357447653287392433926984967909698170826552026439024250295466534517801777149502323018879304353845213699568326323690871655985666105136920819116453755097331550682388225004406067744357038546385161517861783655064609730015443892045783794032604157518230959351991406386357848565573504362086500581564040638330509826016732295469434828736645980928001514846580948732633069424410663228910832416103222518419373304376727253745800451266503716411836129128377243917370290986889448406255311053207848223390059057372004919267164890624017557436341016570065634044552480173264182765341003407178578984633695214304188940314196077639969392776028172360506102374513229984733879223890694122299407913308416446287191290499174649932417868881349577224379330342557247588484499629744591471720401098296766785097678661182670538548818543271014817130506788604159563804198199258679324182693531082384550461676212112637990611786639841152333226954708083688543930536588971451390052199745007407067630458588680944268444928269935727525308449510399593102379342491928876274401615046159093444662809699511886998386840314568126448137563254704827838392038252689522862773829594278318883129565044194163524639965396062656715822514059290569044253394968826313649841190184750460256634835266348047404804434137456970768981627743638713558432226968251335577402382265505505000043841127388366670544538419535215485346269927711487386510588006416580355145390580057202568522584099394337943888510961997916729192143634702435796910005062939465563819180325075945897596275387355018709452915370140852393400182731527290744099825297169438603792180018617296090009086692938848537981147624152716391595308538772491210249602276647521018257479903781698638836128929334769219882783969711211122287461067336406548497944362024565534035186773979717500581103863058470451702713749860635520966607059575391433406282074971338968142486848729001427286188348270931574365070748053543376158249341741520305333403701649397409644108090827903823364589652862558664495489572121154992863225026070245148933186162397522666657912828330992017582378504277045301895658731840651003601545909270672112886613946686597621055537610275007631952975148702782278614542570161626787317905161424703067028609266215334012651822545394288640735382714469025320364207266163298110444155984746195502526907172720223496335482973613722145803192209474532470373344349040616118498005068938790719303932441288948701454819749381797826990513294684555357583085473423827931112262676779139342502588841604583380498792394433819563841150548248217804849550109698554000753620919830598374750325993601565390976319277032654112291831331820267821168632510518057386850198083762765741056199119127743621852109733398206951842283222083983325426899960120336706513268544785462945817782670415330961244774301274352587604340284296804425557691387567135766078492201789165178942926973740620708956919576775792276620451098540075625463612615889099531549567539775434513626690953067349949455878003445984220700711357990237851058500932406445710122420405437463376194250410743296777585661223177714369971192682165943864718817329277695318322635700927864359788849756314022818438893798041774851165451922200778776588955397941271866565543975170727129894160805110930739038389677345951639556886623751409134782299155104562971494106879010640707076135554502873034295041268547406798709069106037599733991129272766063720339147673931247120681418582364212972610785713232869588479367409406068439537489742759623359583846439531622670328700540461201530472003124978336493445461327145411457762193725197388701639943667570725072050104542959058119319457648313496479716272311561450588890579489045806534169306960884176780403743660117314698855910528672117078239663186642512820087409953903430585265536781070085812786867527695547545188044404552851228660783973366150411910080740107206909161271201443610094700347886168751943985273644135522577998771494357006826631586492337953285488171712446801088805585794135260018386776137260836593013564276618290766540671340534584444652518051855967850767959877056310166934008317549552502702366403018287002817598541112844359971921382451540295537494983265236088191166907607701771160980650047164418877497098921443325922665814704036917810127086223372543580774007121458742632252460065283265269790819696716272568793168938370938989710641093389841096337265645602358167264552882536072724394927008562366276607728670410675724386734326306577489025065050182100421259016676433313485301813701871249600597074938756422611735370367228762683067899909209906474377017436360246286504898117371588682953885533149996305346653212263574966643393988170492495702219674825595338761610458806151509111706786821824910253936580470883951056417399763295722078606048075240747774054814064493975387456429649925402814951304212688404420968410125026960347103218822838310677303097025266141717429413623830634130597078203510023807593845940638268819624313756640270357531899037193567371916015012894499946101839611784004859112352225268895454215385928925714118233354888410640225332845962088234433940840928761339201175101834727073704996791868138154773418311179648197210901918043573798880184927102490034281153865443325679925641405682756502309479101615019113398013786085963863743252410510807961486856018116884462088278713175159367859456623293077179376521854572400887608574367686763114053720331463050480123053741270865773045162856591110118898110850507457968154279099073730668791857616116452884326694941899876289060631467669534142121463619842236707499602337125883018369944184648316777422475332210712249644334385956407842318839889542977753493952414573813940232115364593094516057924098846002443744392578384029013450510612743954508320607490864813451074892219255831435581371762428358544129379543370531257335372559161899905333189799332065509168140173906677319557807419105769678028186541857309670971692424182795084836296377526393264045870905114568011340755116623574302885856872345233093344587130332869390281136991645615800954014284965291613248822609252677742590742526805623542541415064539677750389383782369730154853180811388500279862318029823209303636396417014507737282865280936950835582392521368109395721006597706608457647946869150658848635987828181588873576030622170702080912318140780693344709161720921810786053846628624069914079605634587668525506388838791190778563761230622231110083140568679593620397965168403890201158646801313361993819319978261352271110602759296382083460970526313552836704383943544718946139849200376289199391549613314095322214778763329658684245759392495276369811069646288395561360033189616677442581163387584125694197584742362045512164721911946883808362837195297456182912149519386900210892681698338887547710978239834044465314136041342973513727569002103508300035209570741134296572112113536589124656078297631942155207858323836997204319194944658947233474472129079674704148877696518319647453240141842128668052191046409492174670302317208996453224937444156948383268882845104642463446312008953446509986200901806975526343275033955475064569751443343816415558613712626814173483749446814516078934990037725705692673506973235766759879858845439059327834228991326497357899403447119664226657894740908476875620466136780750844854984415291571651054542141805290697701075484962453427081411027053962750772336533013249729379353850595525516656427479454087959713145270301331315099024796071111367889513594987508635155952971156450617796233394689730480392516672419402924655632627217048345812790868159301502503628078970996836802743443491524644314066070680429018400810199165765698754517902110832424492509048498040498665648347488741215861967811125433036819925868132779214977386150535637872638343278554307888790911349044183035506619734017489149114200120611389594573781690396655876277794355926326753033004783636433276233758185868542406407597459491825055927705208222389237334185110601789898632106422957890488965935787043090701710219892829499777431412930414096623299551552734420068149251503010416138822670351140188935306440663868413907518724651571391140021201130640385428247298142335282112054711469238449853013380773379789634584409483044253306481699697991624674051603165113422955427391474153647857737373113510390013023792971220182648597495009755163446179387251541604691274166750561826844921414495515105108244800661173101850234324479627357356355343514139967544392820932854799614616828582386720653879046464946832744348231992605370149779230857927085085324340273496735390740699200815966596807290665066154230197105403042166637753179106146059075021857585613286912132599496052254349641912659817515503150598309599666585637494091497365325465158141479957814341064758882002037844250524554381951286432839415235696807604583148591134244086418819314830989617596603994062381644932906445029793688868392792880322110801291091470504945657063255809155418064863418963444932661288109037709167927890019059998576115294664331574678914152454179521500501331648633102049002340211108871599240751517485099092098134211265610535632615525864609224357071029415187261191650990810880692876341994659904230721515632096527032867759094381540264112490191293130221420977947393713355688565073164090819901414690475888333629405082297721378168112486805510598447168272725039590466094808982903458856622398194492187433303301789067850086504021855501130727874794429133532278600463051921575762258047156306417256537434069080152716730980969704217581413596021672040947322750066187908413283432539841557481324261832353699401317986681602386239901107089235220957791924646817331965192830024958151245138434715100575608048934906296472596572189737569391471229104788107975251780416179613213289105776711040709744231830200313995621771223366161628986957823735591353223317870511381124998699246466208321758994677897633315955938953174754847206451972607123880537224114113312224082263100804159714034514753439557095941431584212238143074095695673482606152327359790682411064023610368287182138166619890490812310838336983406025735148328005130528683482942085311839297129935159229444511556334653566445501828229661997011068253015785660055170522420167705092754832978041488609502017668391438887446776635034049409418229164211268556525027803252248446843228901558328006875848274181305409348380172276061679132517186828162117662174150115666575990573097836851797247020408645196752680041464659571458317198153225901701931221852676657982221494817046220088057563383804782044904177003749753347306173952960965518690161103625513035465101740136789991869400716652357301624183389746062672839900459981922513064812368169344643480389188781394149850849113477775390391872865612642357877406995872046636457415978715847552312446062008484098684607553433303296774750355910677155148892147241910230200809911154117693677093439309481335506162657511308921563151032079490518901642866224961787496261229649311402759872009022357017569926860667820907339603633782516597620481755619167930383526901365395694140255512374114008752743428571505140751746780148787548827733322265791220899044179743651760384341794664995910651881537062250552127985350716123416881406582231517654873629439780955553019296257517556998874835524615937851756317000471027679962468588710299644836485603604354935359854895760760042621509580611125713055399630239063690303955230394304163481060842684481641533346825247288361671620690140167283246025180764005017536557066126524158534740485339201009841764846487500777310193367085643886494413740925979541196656757153395376039095362154212212890530870039617684984756487970929136390732796086941220615199777944709980045403746268857504709698206930942426556610038363651211993814429090439516961947204547999595683944391170719230839014407844713489221821978948179512126749885612463877328471291444845175041089129635124345213695385888526592444352017529001166265658955172125702540064785938568586575279258135243232659349808470011711377931005223735831922255536936021266943864616665528982338704578875871646083042160050357329558413098919309555140339273775176893846872091030681904914968882667757123963590863780308931097363869095398915601264260475532047553305260709612892911698707841013003666343487833331573862574518916480603687122794240282955261012568680221303445405428407179890119020953912184039669379581969479094892093716787809705219463282852561203096851111732130986183186393774708649671506964215807610303783587474161497769101259450964173994777234915911028144884492380738022281428617613135196245662869832545271757628463135370659446632698054548988108779498031160068794966895606937786856339995501150755757947603819617537545518699003777066594273471351563773167186245530187146893729431743574747456342775816166404776207874988384568512219430130356825533617477291903758867510022216796703222917039280918030761986502936039595976684308158605649949099296668579571738196142517453980820245441285072601302986222358468406635923127118434164766797619015425312389783676683695010680869763257433602473563455738802662448226370309643602174576389458137950148314277540800291229349308329567528469832729702800975695029335273321134246874629192145284892809109237037574201095426327723937150841038248057661967142816326544178150047174437050813544512183312147439000825671307962539041566506390639121842500866454115611555728187210859440186028886343419069007249912446424587469352465602348175633884084739731431514436412479299760554633519296882221751421610749834055095871605608636081242085213858862964636335338505507221649663885427671812060735441867509538315445899684294960418800468220535892394836695334921865778400283705225270449259821693648928218020482846837643544630233392111928337818448401503772865328008566533485345245944154116473564463711459143922598020753396066947529116192841544617740783520804635530557829538950478738504456807984679790693511705775755630057443652510363275528495059974839602115847474206537972651660108299203773503156619576274819182807302339297534055568795157681752253323359943670682785126903258794304112569048269060344702663316604015329306831991844089917522252230902784186239333553654123280842332805196414877462339193943671180567656499142139138166310727795775738960774052206739132400457341509535876754878637819203974391088554707468742528430649392714540567021013299794348941392765938186406612713981001511342554126107326201266260624104780381420335480487593350820261716556309775487441855351621888649587929008473800087720877875650154339762910134765965771238990021654887379238489983823946456808924465963348206553068894621472290716841946888754705421064413528155052947462948705462082667290135479784700953877043958623000152993965384467585624219415969589038336248797234747127652739404961401885202253338188825141957214964033568062049379978341062420100616013290460661084185110607337599340974849986515060891692593577432180282053067395075800194539076139078920313664585501864303167813732619256108877520082456599337011736417858796917914006528048070212626532607958210759586427543400482707809619832801443681728825870796207996814458092569025966235216947336449783944539392221215392152999566277591477514189067489914372842808144627596206778401520123004320961658742825501888593407839661919573957354583672555992019564570277490646064488801019524693394703949650654534736162456962004373573470468319423127219161212136861800267821572867814290286868675966376759749354050003819142680303220158700646446016051673360669099747808218427796676363952007737355403536197051815481250028827935176199158065255408341041652778879112174488519415075544282673009456511022446890703477485867768902344727827414652681648304439869800298988020464612629382121839427826884537361202049696754351290534295635810599006429187477054949037328614795311879755817493888932475204419178476252331091846790032319735076090221600486381588623823934222530891552432499650553876226615814108866884398195165295649908105994203450977936223986612774308208176037342340746704840792975074309088889217013354457427425187312126298572164947727039384958364293895675116196140180169316205162637615073262280116221770066614654818471935335741359674502355185152486499864363721950431492828242392387342081320275928148028729570246278322154145487732377448888924407208928472546934838867886330882801602911318562348501814020232836330129502294156732368444326374400918974590063427256354782211082263554949434571783384129739328023312114072892128061329103599266999653821037131961835349340390983359390414974706695348877882999846545390600386947157302546418862987040719306239756767934012366600622554837202812870288606137599620991923748036146876394261815998936847711308219651769811516380027686955162342162833395145950629973567746695297376327481382241009074743770768588701520283029727976752697909777131441938614525918327157033054918487430981384165905007802492383816656463686607182272651910751730598643921386535235406236524288702795075365408754893545331934637687701631176859960249799163616618815460217204533606888675073034937999900492238172500888983394464394890678147815800348049640027294637252722595840314998224760744943372908764073963943126252822148974485582775034595550034944927726050846924420700757228719442523568240627245218266945593877909250098775490893749037950709535712151476966761114038404514837603663663179478453484012455186107967710667965253224821865384318058758949324869430648252098409430600556526673066040733591282565928835783380195774780683988294603140304513791613360319011228350090931620636910946806793490687020208337642006961336863646368915700302257618690748014110835833599692950805718711703740964366861133400142544508481282143886919616192532638214466813827421125412855471878043561467097045529530823690933907985678476884141955449144981527153833199258178788507391278700793406314525704414450940595997141040304726971252037187840312002134676943969867260128046460823634799427540310478441396076214108842230367206615045422382263428804370349133362749698365115035631079158245448671954558405298558340710698331675583429245596656116477387935503626164240276947760727175772072387263908883285295799388124709588599375556917168264558415042846863707466867524295470851102783320561343210596141523427353709526834627012079247842706868026153270983099206679162386816599586047802285358342143589448084895240421280217952065831710227049950016275349313516403568079859587846510187720022433351944887589132388664723046259692836905326531767604240958444917792576843566852701527053757766662744337077441876408798766848314439139734904868667028646584988153061941244392996593017432570303688891363171202249547918465456151141246381326849380874110697580505031512395079757341215083318221712478528329663153092318243274507930244626171629749865598425744805226511293711281128700848542250314198487156281097715412672769761813557057734466538817712243562022041227036468385333100716836422539683747509903394154900419298856965082387675325868693654488464486958666564272389553565510053192033001869358928294347306476273869647308424344296466137973615435005974272613052618755678582499575725393291115793036518224597902325767278495467635265741065566419202568917757652682346303529971677112614486245067830020105648626433237906008475354412988077702409853293131025411718463244501948535736262885943860762484658329558247563823705042930212532206308414538032997242940657711969962471692386999593459542125680693996971745555269943013948931702061137397111107536196226466304303790594041999733923498794467709454655478747098370821484240831843673809017446672099065357361353080255154245050678120229181405513453943300142777680497003800532510600659111416997890100557222111216651289792394303985155967810864739080119112644355987329717398677227729927791915377212330526238010110726942936978586957165008088281086535679320696198842889932525545519985338450118590305571712600299646025961293440597919242603998003362513268410360587535192421583586176188704689896646466997928610439645328311881657330072189605784916867025158378940219778005431663837091113038741998285445386966241455120566571077618623392948092112874123649824734494249111654271865527657516941242609284629291228000567883979291125488267835751243716578491549851399497071436632735469622854376626531622973277148768053408287155301537908488963666899830950873517441073715096448068197934806092003636307620972870491518315170045695030657620385494320762711037504900662877138768420176198779314838318830600729102211280082223623827664993443530365849842046179217509796306469586869220608949707532344359038850619159435791458795320443443469997532209941002872727133808834721095131086067501371250961118387391874535418438683629833666679893322012798462451792201434788308058524772240864747745574055332048159210213547265039386341895516711424152516748072422042508023860932514932109558747972407373446658568915375505715081013134116739356467434242328003647478929492056097661190277314513076042011856887054506329011124022377286113842163027456295902832741288774847646550149660296712064706981793464169236614681873723369680721975958062019870478833489917458337961616818178588238740700631498578111459795405236902434878803440937543444764933747971203752187443113586285679366929465788887415067260348908982827316552322626603832397137394614449142768136844188063114532500561611601410287030470402416954837571373745986791166399944547474545078693946283441415570258539485883511386628021010629323098595824200396902710281162896373010218459996041579043367913416167948371015477323306844880160634000761790724338900164941149420090435763830227601099608371897367514636976431903607353538588714496836848715195875773713007520568762637667885586628042643400635598507220939446949902549906423026794369436084116644876448560034427099697827959224782702440282423657316667905410250226880407372247754514257694277598792815400362109063974495616081642571299754437352302030124225835222250027812977623825647609372770314061976247066932433038197851930972042936122890133259377234785963827007108199953398335231530850296455229879209228039799009384874781710056061387810432611794953748541497794912338046853869028460189669286907099131380970098680204911258681034517272767822571195875206638905756727693714881375381886957395838558120246184153655650666240538655337094503016446063567101147186106485734904869069039165903182212371093826454951353266904810327344310063799330419803115096253347694573787136034373636894105972850392653315850036441178588493554795638913937854590666613881355099315110208700500773230988093131305433512558603396546910194811495483989514317083224129328666856309369529373041460527455376199185328608016829578798966606404178352331062246410352921912299786745068576798159323293395532189822315164957340957767645485705895506586480449776193346256863085541764320345108486535013846712981350769939131365225517741197873004577367185596656505270019105639421861779935614776217020487154189622009128210044393079789239717432155511463018795058082581397614225208928489048898486074840734167325932792345557061374167336917557598479948551598134819829176312489814534756027807976060245415422738965474752917537033356439153728115957123143923719248288244769450393924011259144043484615650070371832806040464683524294726869531123250738522474486423924591845160974282663809249913084663028406729965796099115132732628190944293498702485358096211307077104088959062463857421417238904689819342044310521297193006419626753362202157245721187708504539660101979117150252193871108641770040274499046715256422569646143798309032831103608745047301638853046020926166446062320421547735549173517742954110085180160263169490879705872540410503323948931044764635346936443214250093361194141681060689861519920494651405428263085229343823936832334471960072842908159601108332551330823011318014149616556077095189404285548684337129075754674864418307012334016683516150546112274452356037936915924087456721201549555107288328443410121517089316860630158397420643196620081346659272555674081701583146801095321706378515042519707150650702714218627685476408108571578552607016122068414650226278922850547275888297857913096004332957433191573165760422134891573503865839917498534015245295824235190796992516473746628785141405264129188325619416705824621318907458374865130344683157888817041995312622481905943384602660127425111726432740061217635329153276241741859657269946834050877540537332279558615647513432364361640480772366952504899782273391555044882495004401709272481041356565990173526784610614385549527091823222623971158355268395603111622354541061949041469389108889129745811855206230075557509285647969043089559483735955811825290667949813285100741340159683310602674514535294787299904028006151825388745019475608462848295281126888060481405174403534705395780257042102761531336186971985280445088555070806079835143902884299668223061031449120353873846900315232501712058399854243393594060903905155146197544842979111935737228972430069660734425678769302840514873582154450368419820751102801497875465699658785713517762020040150197442404661896716107260252901632819659591707675414155640781955238170741680393790242333097749364843201481225928719130379045829879837783615635036656602302392633084803711097696950185779108948018005369499076562156073909662368882515761858938450681059151430210325758714371766223274231757755390101758249195286537843480443366421327252815869405442139152081596463807530392208199064409856660946992554067377960595911101100475416135029216525947685680689170036971808353284334077135798933872770992759642899690284217113307801156575152702181712763986605070865042102576585449109090942612186610918697388735998702499305010149953409328007183590623384653527480000826710803576469154584408860839179665992439341450153488958621489857788176403522585324254468575346118807254875255211392486084181987719218348887836666287895954471039060590400871034729880699873432973652607157827094166215669331448141487641249261514847902381069426975240597819088692001662210172474927252092957851283016174599188071805207324029247288581414883152191404788948805048545599694524160288449785385159832654159690768269520533245201990906883125399478936300985357094546709913612970563379638735211271932244182164410535910099076325217815652541618779731287438787613145404277869960602799699002241135366001984831195303093763265125035072236547057712497814263723271806753283342619421977762636089582473075596942791189933961258031022610503596532861652471069647631391369814444178689498100520747224979554981433290750790336881409842490338172038833623206609716826523951334280599444641210630870250980645727111760955152875850950044067601376390025625029503220296693918438506108948421051667708811276492474054859797305939525115894279149828884350805039743456712382513528268436760057294724748220504405030112699828399919804785209354738144296839076283946653049372626804119573948043015066283668687662379834767664705380429236101257695519188459060794422209112440527967888125162406081583090425671893684580552213758194328060367570979089977254382488517173614304984567230469214656553165395064377475093464215933707667818005578469921063571345658060431302614261450616861578445201372322689514886211642349916782573299073384091184760356459819853983958878918090473396089602461288302241247285474514613945294257043735545872008798781990223206712854714132441423816807005841757578065640682204610470759397565869805746156777132023698732963105338422617399294231231718738978357796054051745835125887908909796394159415627320253474488001061884226358077066818419704330472151513764235990479433032189311308564959238884780008917404582289197217670044489242073605754440480660941570203272313297621480082733724416319980358586941330452057696520894920305985277304004552001319048468606032527862614255200872699113629273049783351132315515732752465283678771148078019090521117048140111642027695490014177772131256970026593748952595346055757550683691794448271345342921491926568519408664859579052787275035152098364759441927197504095928403492265096069774101089552924724558805939931007636797641190517060166847576541638929265523366299727164550172258322126376403076032694912269192675026334195891476425006877337939473963003011260473064864309714591902646461107985424738471208217371617577601366967339560793424686571903302569097660353297201206297447545798404417846553146334565726054093583540582361460822988243556236186365743752245068222008554801713090942207114604750513112299797514617844272855750231314286615755194409199069315179671838984796963762971878118950372694281828935120246705075695527176619326323052374037203466798081963704352316469768457581675651900335431766469102007719516950023531544679016663161167125566959500316045461670773329063012362885591284476483710453076818456310120301503699045240280002887850242945873909585899833799467971393381198226185318983288059505005319883583658255427085112443276383663845270898662934247659610420697164582194786885997638145746794681826414763977649071164828016190712187076182495134590452282558475055357461738400734293829833409005972142141973621203601619813514826144249680710709256327185103673120180829826245825555479145465687908885079338250562900240803061111805628985276719404393091992072547957242475036529357980083113040597735778371068554095219577245245691487842576547787737765522390710746051896774493605472443532703653622827708937258716887117935760004608656306560577685282854798006218578181010820296407016944196223211641094673937184878764495426335287275311343282791517285201254488153023534313822818895668683770128010284075999423185889947262834690978644980120107116545628529184657191631008795614340959362566344292148023010622855190816197511576104204045593226635671925254233291401996846018908264108943328598352937020214151694634117041332831090111094515127634316057422280285346012990591957249620754476179982394246814022093237440654176845349048017048445190676582341122249044211643588514157460944358249154551022563669774404888337245533026015552862890011857439710804422791346754707060746574812633224786420687507819385890851008374119968980533600450940733793161312834012913789162965015261329325812686300344462595682419267377276498038887971131895638482508208566538379540735027075739195543966419405050455261518987032043610239537409998695936231427131353418548846608256126740703292449691627603834715496598434316954588169778144321300273740059661954597704558222588230273303084958748520791729759213342372231553340643243534081832210909945805590479147992071897371923054161525650264150511935737877712509091264690542546492897315006190470890407862222952789832771369184663111036537940397124474309483633477917154909945496584371422970565969162024742566705156069552909263320674449517950030954348932506235538063361603741236344178840982869267929646717351889074508392790624323008798547732701519490252325779348074061334104099199190836528510398199579912057980936746883015306900697305546245875481720707119706994224038440602219747499931068937515736382223948606133174824590859990166500083593168283615162585981578787502069601272550546376850990547679399682538040664364101842788306788453291060378713814780754863331198401019800084553695252979844298800141287722596039076733443393885850416052797771007984347311978212337466969184414121151379150767705373608133749132976238533023469202495276157180978235920001769158602844333055041951304646329420848921791696458507834047591662644488706581863197415118366507066565429913936414051875922517533535498181110091581243570180150790857882053896463977021294296170868469426053357220504946271901579373283014176769783900891030222389512997238315607651503527296193904417695693265028828726346078501393446089097352157758554913925278611613148725210383600196144506353138495881624848270122419998441120238056161365344796176217629776797209311815681337581314027919822049360863898756423096762412901737758078578773797100484729016846667990396319320717936083717377747445907600243254643149572171034752111161145759052359933417065019325527835518843671281762068190050776614558385274097710978350073328142600435031626166937683267164118348740417097190051606071006045290604927902598708330529543124658607651667687007673034755710070664187655458253375987385519952085607677052214690630302628513147924992398928484458538673360309520983647929910797375637981838861233339494312911369343648368086884877849846685229076910684407961314394770210831306549670565973067922332768915149584526956817955616037544203906069365494626533414798440024522877038165281618808305175352678431874016471714371373458523172358194601638921903972650651876201979592324503784219403150528547845466451946362438869640929700194677396521063053248420700733272210736348790286475183098183868847950552463542521496468617453065050306614654865667252137951580728138490310161501799147809642958979617458036729837213101063129857300104961406509330461171251230183055805609631055483993678633700257353129815069536824608321970032589153324125293511142214558788560623563654643315687133716032712083172433464270608964466061663879356248221528530957119362230833114338950765837564379085253169652438245513948378598562024783143563972357330573209363228164104950772300149494723676291274715152234223516996778561176984791905227765337648156851600918060573382324929571916373559991072349446371285298619102880291162614682347173106684942700064631972631771543491464137140202460995947267367095886430524619295275152365073347836323294683925622391431736650617397044385152073754438078196344785213491579201910497887017467371764028189880688598485573506373540536365628191457789618776362732718025671872345595427281726852580020206005037776610555093539224890394666503371617213487389899755166993550752998912606290453298993328142457812873981158936235221705219518068261691318702062241112115284448783834538762694455238945115227208130864605469346407742944503023029858970596432347691160836366112611860550786810723420509924061867833846585610745158359719582515624168500692466685776932718481535724372326622953823988638595775087399650533052431757706261883371554349142140001734097178870805286322583851649481003563190520981452632926863673178656891863935708548799643277850143291846843473980970566257901946036099564598431207397884526520447220452177723189297491375586898575009241904537592587362560252053138820009421580681001473134463324347229466180409427846602971403759395856682663917282708785313033501042612464280982289768174909852695882957800914531024630942586159784551151116392467857626607116414534878570208357514974347727883058506626706972827116286225769731979268104548657011027229782381987983570703747334667525704538005855858804363633949147747777466998547918234142518000067808588114837613023633498623463851474050514201644662703040853447439879106672614018483933401679344152355212553506809185713895095903875569603178089444459265686569271149683779545939861933127826041628107998509151894094536072314423778531899448177752280587109998505863390513691131546252311136208066870424222156131500930000976286936894853789411762477699832232700099643979840998777073520558460041589487205552566355171657562094353328143297804810731630302005486387779278581632507321123523610054220864269611752630638558153704889296528444195769233450950769565353868369708579691340654385863313761897043229070627570551144332373710953710756117514325408847500936197285590637741817795017524215480105837993565530283426156523041454626007349163529164323943973266119286788646859326634626992477897877945897875833931512252851261485502088649293191309991578498394294640337717167667633206072161591175362541550369718766269818097451897429985400207971705640437592807320132269713069169373168042709515100945205407963648825628712290774891311725684510867271675570658632885969790368462979408164380339124006019977356437228735615714933557563520043819345644994395113747493266522702293739615657005553226406812878624763455262398517735777451337094336387937653903878133365820706639847206451459705786560978905734959688706061014971583941745406131723727812728073720602009326973066147549883083000524674014469751950002408760732527149971801773320853541506493714005417186170886345681447139278157944291686042163098865550116055338813150404853553316666434755423163479435484630726613444977535244411996978860973505971468331468752875214588724074453939043348777001384065434646199904434430663651458089001419315476162443528644144697246374990594916123915429256674341492018840204011553657667303608968007808577336074165651759338695720290259077385677874554256040899407573368234283067063650063726004770616354337928108568049159342429258415427916195180490512744694508088951049033465545472385585130594763602262610709005394349977611701143705369383799311046750116742358167676745191178435842246292567049558804403362839472461522083486942248849773988633147229879712052653371279237089301484318005765875606923637084283294220753446870021239855622410602487428090885802826849923171812961931151448653567280680616596183016486889950339205372361790359386277957616631969310316965112196359818263522693753249677546195550088792178821293240341401276273204615723219885909237249331813607339688732093098618982489169938350084930586326969222042843272341331934399280596293263051831293312275392222635046394653840671169524322845498113303855737040662218072119480220157420207816975812056742433501436854321164411349860308128080131348208298116814249153614654275831526682718518392698086732800832267945715976643996220273890752242623045886578374534580257121588801079687711611039002628442190880917560974654257179455440627344234024148084919930531226029563658478123660643429971775034105248236556310645453288083511372163298830503070238017255905156577658638974665181548704360750868160574878087296495437279359132754123721014501749141421916216079800615125933834471566911485985004870476612269896711126391996468343413938716433015360058312826396317833598882628674814817711408594241170158643809030672022045266167205212988168332553488937710759580827806003236623988933234639575565302231646179620470473929343903564507452584445357661432730443113230501486703393715067776523324848927178536509503839881935866361614485893623254273336546509564196910561143580460324050783928153164133023461095613299700347793710618108801558622725779010397658535334019958680428111872216528491934759605872940782031952544245451908903531153532905773272690094615367038247046921978424853123442222243842281931458427424863167330884090959558428910710000382585659302685242167277274798971462234726465895336567764045193913741245155608733772098554548110945100963250082418696949151955418418115148733538357570614651589333310434656887921038538612851554032850982931588960343864312218417802228160698003302782625713551348043009311824862493744402021447605585846666913450942879126091369130552279049911118119532243279118027636661754218139934792541464522476514245433951273763604697500529093262828949900752116122307901099121669297040228626972561950436498706907970646153583903082910737294312524815136429748670911175667834398764649243805725066968296869748937055489264551674882843886646102755108351467843342030925459876350830120470328658054539902716167740913684706206867829797202847380637706660543150576150199704104810026375520736036680302190344248212955450597830657476308125376438386906638098626701936888979764551604147442760030990050132140907596366696743612045756712838316510795790251504722342441099217319038481481113876666219335501182268609536180274934064670554830101224974965363976321404008866970904954616345516034057117684338432249825451577865814349958136130014130968591860522380296349081197486682108352221192271414824033432438856871297301739059085251188238685305493952590524891995895652386085395089897550934313254127431048677403489566614139795757660441799332075289022453293355295909406899268060419369252644652622781364190553983583687139510918735564438406494325746909885727882035967737002844097405441740091772096810478521645082206377661858163292740254278838698426619548871389936879355427631027113845984109225085071125157381033286297402330434541679533945731853435465632437423530734692593315212356037812012123140990387050684481354649129350302715817058749781201187486021552836494940808553109807412738592351611870308516561709800864165276894201218237872871551571479524819833753861739713371481641331293406803397856526567544705136844669263686211288134032569348490794389188057260921797475065292308249131443920499419349802200873695294107759669737567660090827532435205814444210468188972639043494072604137849669163415509114289900140501794201547404797770103006942026610452115301885426841506216763519157119348104078549601246815808473157160011342943275270291659361489026671976713866412810774862920795920710540067504904830652580580612936508158123650907070565317670902203323935731930962483549147015075534385517309538209005728545642964195633376530560805664556606885247901887633011523956762951135159902540102600929832230659112582664560744908540382368154973395639870725235080076413382913330999386855951422733162656164074511475205631668433230442780915765209726202841970986305558029531714664893652223976165203215080673667845558277853895911878604258019891307790197231125735080858159267535946007027551341753355385393008442858254806892708103446301074281662854992872188952587658507463162840869279830868081958882376774654152831006919630322286131729065818107570585630142646862732245855410133197149538927358091200955465496890723217668490556002416856394914696401214181644506324087247171528720260948931134565013816730542281798259018881716448961506588341750920134174979077535818185295403752186627866091310642147923862304661305928169412727580347963604077847653705436382104434942478082700925896884842743853611377984118299264143279562484249582568576821686158113659458814617284346521738600397526345051467612354248637096203355913566430429432361835415695465499610521334437253574608962230049860342626918408841984108769275326371891958284378716892181598440393094706666235498150695952881953846962358976017445238904809492737708295195594343818540622224467414000346910539282010709373707436452917104218610639352543523836180525005277862700715236660449406987033909563955739361180780048126952977510465007876901428898959451560326605964907950596072308152537970746640729501113447774681062902500633330862042192105667648190682760690733588979096206482494037590665154280364306475515671562023230439319516618209547195972794965822953926386329167046481283532422597733214975031196652664822867840583754420514818956485015392531026499142134014746880475391030719531673798970299955539180295218482918662041566438225243845554361622312294628787645523320306942192593889695328343464696971396009194844702586550392198775677700375946716703706873230104522917450830077792942638386147032067960703493991389697073434421977958265701392501964856286478034291808487776150206979292421157401248123681700627470643956193875749537778107958848933828909035333347299332816615290268967218254543318404598412969503713413024110905308969444584716181245659800266946535219972086593249855717699773104761477397320635641858562162919651297562131966844879908587625569577038105126757524187772253216461339682202259328160948155561164607306036415246587265100740344265361665652605353253567551518642335379509716975492820939802170745965894366782827403198177811503738304173618078616134080922768237295167811747402437884236912420006453633181804640855803894548695052819869279863651033220873786581492990641313234804162961063557764913918680826903213500058293429230145920928121031689369662879373378837666723808038529109849852193686459210008387648797474181548100394505137223988849971261086580431895290840000654406105039493032414927526736469998701178565560253393150487397773752408523511489860119102542659647157115185865587845817967172554538778185885674840827304192557054073596537499021296701357516702016059608406000091220331783254720214598307615689409641421330314513692788583470834116988782825094347341216838537927163465457409099815913328019606346846910211854744017377304943176587217215731151579999267580133971291063401366742444268726306644387302947883150370049760052498892702180987128506269587918580887469638942037065341182844429496997142503759950695455122302389417138400663308814083044746200163996981232939070770665846186606079994778985090101960095364087143483882299445876820267433433486033624907701865089368232725446233853307616718299690291137227880439043313623034479836996682123569118634192217502958613272164512737314637349545835066416778094679504159060224718974469852328845555233587879458411617860935355459920421615027627737570515439903763540731228255045102220300137231634155947803856089756802021644133456331857343584397772635199735519411024286587132939838089928937907357367953136857256175837848451017756906384837147874314971220344895266221217227405782943831216351586128748708430266393664295453631911966811527097783288655286748426019266566644567959759891558483586119206589982928268116119072556452277499894801865316269289296759131421104136944021114131153579207815594939278321340055188729407625812514681631856784946105384438950744620029692905113440376010009225833145510369710216958010845602881652673169846137866827651406428619480773123171801081810285949025555140651728754841000793448361163489828638377276449852425981320100453201778221292721274380504167583299869022633536895191120538972597683347143885942191868781068767579427420148545620669467409551882897803152088188657767502901698363557961065048420698579522731262198965686233653459144758440486488159600904580709081019148459246829592834717790502222926521961111852910383662557346260952772767899756019335694433607800499961900776195592161803803784941335412837735976085297483423306893751087270174571578760021548383600218680304883432258252783430239780145957656330831618372080772476183731453068856713642458979496851317060820506992521463911181336026681967384722820669373529883794890514329223566515073104271553908734804886734274242820591823081478395619495164716627279237582989320402454272394906647699397237503648316708761328673211468528657820642606520908264633790117812634030007515189489443679390710211916587741966182016244404198114104661854465456701601423572937398653825441541724122395085840770639455404613842073287508201479653946375814937992847669811148712643535079660599026722590579055128114643298148381493052748727301393098062954569510062489400586892418813978558935465046802806257728661713996978076012690749006235046687422163198500433419987544435197726866231080159214533462402034153163832903747287572137460377571552087747630872241454199733144949626679346085241970151374997493090995993479932127678142644672785466682094937673064251304036096971711718755868818705408451302178365864603702267141597854132500312250423528575546078202480586421618188014418933502075255354469109102323788233177137309136914908634077926324078680033578815306879725325923644027337476276093490780266283204892192535973684754002894159559868530427608214782572066236102330933086431805010421029805900602526228646566186523661066204555992604929941303301832122041735699347599589463396017481699955896360413147849869772752412160433745341956172209512636872393566859416982400895109256033171421054198068378695947399468940611415410787055220978989039788342962426532632907339778557952214233779533511244170965338045053214855226714538100096576857418389781322925108544695541901549843627101330643790589287571675586052945667129899501373560601657527889524311561576852141850790433729490488841172017449958859200636647241588782450784031844283605168181926964538560143048495908360279513163341966527387994372816879140892599308204900843811168632473245919452702736310787041268779694525118950448245502921893971801624595246841622654429250832538004537759913837850496812119880459650841898242298109589407002629392600257611575884817966978368653689558224997265845319502669216915792616660595363578511052955895977388029486811287970575606520358096177698584552320644959557982721009864641871608902394626458331578440500480573774532845058862844096744389872799383431916089154606774957376959599576841440245709410070999014526367263333309653834047483946801485003112517749925383107501066773096284673191588159922848344684289756549937173981931084292234149194951688225463384641581460710084746219612398849833852032825939247659028897240029758203639433128495677412158729156362992850178834606509612780312954008131792165622800067121602057294933474243475412220408156174222907118027960593912227266164359622832574937826864546677491774548370218731613310260087888818356517992235799820589331421531596094449239023452006943051619681787877521174844140299423897489164488444441150788308310743995228070321210862100435314272378529286251979419594180165281927785110617612836361739114852699603325886543297625901368042456076402421189658477486929003542669646672605767148826863506051997255925137585635826344452860760224588905003047018208240338547003710662593349981307294498374144037822684710960731672443338963550781353919287126776851346752302599299415828882731313036676699498484437210642291581318315867670136350929839811085340578816973569176367560125155204746691906952449608171284248159581262211503555179658600502847894467605174280329791356940839078882166315412132548545407738246200121993263087797239584371009919817031883977658890267179354129474976947239961034852277012224241340967379832497539201098943180486802918570356732154350126636692548234201825833975176907481143484143829591364913931575171342499036939169694784676037394598426908227723955962850143252470328319920274243865621465199300102011512679454546355208732458223916568244992065201568920434728092427676997340232328472796643836743319563933076622435111784936299894281547602533277730533493605210412616195870534600112301121982842905956881803373509030510309330332011474339552922536940484775721448566747691606686285332583814672920260136682756869615067997224891761849941355775492572256035509742294763658539648592022194657323231443272154686152400355111300798103646040647652059846935509984146886101925937011699317605256322854549629015480413084116265587598111632486406979235026690570543953099917026563640443774107634599344275460940999784490026033216623121777236106138816141664889723453441002694868856479817842692673842334755412665255831439676911055091626646924488214428867897519331676503411795766902884488436464151910843771553907087381154059687199547065428513471843926363749815397197632549345755394139730183380516179154003904665998117529232796370501635387819634743314862144756063006987756315039727654968695561564649504871349083901574237783936675837561129110823167649729962246523833296631367425962490826260395077955775851355008735931616238217792671332074825860398101037958851700442272686423014157542442408423047951858943528278928902713596980472829762401861546257285436502930631784626811319925731624083387726411721808107247000160755934114817418544385492439380561310974307701610542100869457602145413286150582750875180509285214156214863403585621730556930101366824324031892043799009788540214073670125846891043894720130153940885789297263156332652051299590630270974870361266261301721921619748604320714294249382268481214855149562716452492895894850172537384872426228704776481085118881483124109070857329821237601422125892993161990785505700400357847095951823138762253032385922741257352805461540298300328469851745440628207679804065493491344063646262864033371290380196307799054148300993767188835029141906008593050657192354835758383055339204490139733456821949029080216193920455484013271363344159274216176985452753932793422622438368468319472757617151487128938941212506194262618301768916050680857933781326056477649250212064455151645025206517960671844089623965996098144532915530617165133328852078765088891107288845323770548399272204195070953452391074491214746767942338783485436813164771796232303938837638845591320135322565111703494373229370987601566646803101469043203392901859039964603043374541240664633745067798188771942075294023909548765211564357610239506893622684812583445870543572019509318797475648289656243866344856235079515966460101604361940161973463516160046347237013131913471698588138237667499197457621724786715725198742224940435962758646110821103482778587985079992123581377933126327295805745903005936425133197263788610672043283445478185181194882515884534123654824127548540531531111906175156560483098143777838408633754559828184049892830552742963501319394429246637471375249060859272379845151443750833714348846939102810279048728443081953401663648106423592860890334188465156728452069505954536395998324060990907252476238226950167011352137682273518373806210876818626241190431178774736564733663353672161111293685651274478256530806137095325095298584798146688657608588346276293423633580915156885895766022994325704052134438996943230940516075844836366540608229907914364594476104746116087392487292482611562523706823187876200148209333989638527622832818323066085758483428635350683186402417779955628614663268105079563181267534650173769619705307048572479461739068205440479035540250727412389287805509241180738348886652336736732258889644497938229584502583533559180572718246326331632478649068813207973556502261509203686527403694074814131253824403699914386906754725638733101225553993030441947091550942189753547046090824995141521890171666906319550262798738852029655149463241869393632515753972553816337197457762184640963492107352143361129142352956960383550698438515133421932849333723807594494755540325968880632787893739249946289414660091968828870072663587895704259379410549589108024566135136325738861246478830103040960575375423651786379512191062529978686865748552627402607456354071987070774318225158773244476098772007707311173616804363033234908551807792077101804074216124331619069739804323804316394665914502567023185871495990514971360598134943579312940190717788991491992257360218045071603985301005813824174135356852017595797944791963204376567749016048668471409712608904518841802084287703068128994218976487496462306636533455302854280425109205064938089599938284651319622771859046767192130835350794856523721005557531285633671158023316827675940173707788457969117481938635155881120610245388729070377539928746106321976427820355981684661249866201664919708779431643461684360779186165383701002352461284706015117330628421365386832050255076247690144257958040873079420392421249040448747753229477753061935219842486519031001168216724158006679511169212832741692272760484601981237373290206868578206173378243301411963554960275668831090033662443894038759911132210638413123191507934958619997612614280331519065820512676569918599568777509283254398487545486216938121172338656072258785571119124817545285855021867974097213191414473174254408736920768409389814340765541045830404264105081650785978737549067911521940610321706746965031495884138094142570075405484270050821979990926335571586626573378925084019355964326102709725434215137080030748048218118613247385030523492296420456641610385575857809065301071697351474914681899309069508276784382105015798835186397335687047696851242050897693921137956722050044425562073262999673151911752190301324185165773346855262254680855193307809471393906612082052128235333698749114578197600839763289945806298976710271875299283425514522524247852667057302424521818539235434399221244688338601402139463421741648049462729070188303508315810806774279959716046034980384276990107877205304310553465356865658534326158383730466274914732631081163693205670856177100058904772138603166178957830759013761273675292256805009887336354995447351078343472616599376865984562586604806963825338565623134613392819655957708460165732977839008722920856292151846330778777406725866446040842835640061213655297887592138109668807629841979514155170030160490165213446304383931839773792234659744550123192739084004727445503875602790103047541242547725592080681309915573043142631643379363548676639574751995583539082569998570544690443970020105018993818024848888781707456348621890685074446158732767209637124265819698215437270131693219945771166858475979579792812520806467611460249779419871590761041882679778629740269577986895177136560309108665477391251615132118848109892302682213381494037888258209319600126286541225339330806768061809651594478294875178331985726409203614125597715560182024160425051608743923668992683715089597307932124253116544725009689289975653253941508123740742228702639909147455540583690072541687783386874802395075622867058050381235416359969565327509093730740782412055246928482035784110551444665512266675814629902524743042575859003649444040817219122729859512133128244157672718521340232433654053794573247829233687295805040655618212253218909178641571461941983838168758447650634374032343093438755196387095908897015450617372095715591535798102026142373868817157594470914280720827195091248213780159889143949130979855087477504306669396182416768894266341819119131285462456939345058057638498281652458103501406403379665729185645290159505284774996865912396566587513612339739376990710437154360869485150296989772957858555944361417301428515015791462598777531440556316972760020704799025818356039745389169463205125787917542234439006736488240896992791618707744501123859731302989112631738250328999082531021550675720247699288004829003833752619763077740614618379328334555788159612864140841862893970179083109686635885316297327161767335764616249171459976870908337926525888633247862781610332586506389795751572293157213695198399010645283692952582912537213387841372545301886195213813713464527897265726705337561474947198918763283917261381815897551532880287539711221935244511385263145030757055355377453263177708119904540676516329972142721443939159884187344086099392296165064334142132112933151968956102226675713119301126290488559869137609129709244817507437844731961854792469278884648398700654417512535623502106112993292219152374402973426066874027302568850443851390053052764493514574640711160018759948315469319870598473762864247084787856813948409608587352497505224020244822493106779283448687932924618672995894843373476987391154629665483373874768295149710264131849871530061591690297137648491517003266099531147531286954640685496191414933205115462366096079295735030676342246579264962175456009042902284963663020370597806253815592463796839197298271691484704256953912550172222503609202759742854403238035704792975405243841079932417184866398864283792084481096867025735457184458179779423626467849413603475898649360075900314212657802635497093307976559248221428343660420651819438899616150875296716280362005402205419486079564244241026057953406753860586089562811824323216034948382264638487416688144365895974436154537171036674576330742137838589741185262696834387950581622129794345069997360805168933323667079778851153846827665551066810407670947594479934283579704873094218736817940033927614220922589263971452656258507450803600219713859528307491438564153761990165480053240246674253030006347330413842764417042502648398304829576290633896950650899434105182560772242418374160721281288791428871537067189957560169442390511862911859145576079623480536322572859586531034870426645968516825099027452750699690894697938171837054228388793061009478945719239896434073131143102693120243159624254660348450038163806936907151485847956185936669708864077142971294420397113935442320985310029050280253711788596293719961037616145190094344805674903776454030894764899386658702123338352346372306352794561412454931406155570792433826089695515446887885129626030324576900118231445599401285367245053817074579219462635833238243880338309996080168370712312208775318819887301988903579747406206673270897901277402665838011143579806088893968368787004176658514325764753485175197319427198791256792386043616648994428833058389499732550630070845351141775163633392351873721250433455513320940090405988358490267216714087512434420444550988359657144225783863875413689172219215798319071960843050461183739692305588822925846477706357325342600697855936817645326973273937769857209757614887208363466593204454272759165426496325989937107679429249121230250888892430636085127272690859547834457777640457892876918772661396213525261861456560565815473043852410639553075642164152188042535149961681362585941739430503564183213721536269961155168847798994337880145224128226937730271915741231625592888536688255015058684762504001692876070455022544996423264363418514220987891842484227290602921367643194217454926472869927283688783190228629343675679111592821424286602119363467968780398848734723182085256920888452427912710291390602341858510186342098764599842955951166358693624216355772741571729808178378274223651026118293926546409779656591629997531344166598221285331012887935673629648526159901424686048044483697075233052868508009463660306994721208316693844340288153903692617222358357172996265158451699250502066267320239071983323223061375623653759007779236327137868442593246787168951595339964863555175151254101580004782520857561735355856483866122338811906389763690257731715191999243424930953430829939735825073083279740453468144335406915125531659929459836167059876978004416855751005413798962051608977407312730263392383714981319836078469361608602635954252777083022822349360125662838263092594528486708733816616838288482498444940402899314666975537159891838478804824375116102509944585739666902745166090204843775068350125251968134526305275516127938760988467835860623984600668430351047543240245910010943422272302991150911594671863038925352664406848659844827183240493952250006676932363466641931675973901397013169991853738901143189756361852107163606862946436252489636310363303683031401875087847790582412277061176366162657239680769756620086999307268860140589141716364837408931539382393253031122816138483839422375848370419370817395056506289925616692042466199616519770371300710866143800853859658181724058672903174593382523133535847466719137353118513578691441519855722919736300941514779086956401216012651566113433757120770055377808840243591913007838429454484036450298064416594952050995795163148243744282227960947742330715583762636596214258940858140043766447872750919921100568024504064123407803564928903423600719294704199042962906782849138617468798991501281575744953960711926949593896424378002394037363807387365899618434519530160506539625136572198558493308387046982440138619235168463274207413420068029861628237112726010995844003331029628638048928597712830702943870447673798313254424862271584240522979259648015161770760935077591658733906398150280142673081768311863585436381947692752754874397099229141424359572240625235633396611720518200151051310144349282918007496352968528474339603475225142356951661152060495559075935861076190015306252033768236428991238998186292069466216973065696783885970141786473010043719265600061045622295185884756970235418708766390072598250929822168668782175366776969330109083855071607993844158354189503917336154648668595129854940733917876174748375548084309116946859524121437052586612516245130085408419052871648510419329593468401769160477489393941006805149446111493508138386118992432623628842639115116982154337070858249785569985872644802659331538157992735377879453293927656149504283999572540285598293178037707112098411186717531021368120309915478773320160199932685929034203276195987400063160656743775620231246453928927733089027508660520350212429284903223396994300245777803320984263519139935716804639543344365178813279275599833741476455835500687304186525807272231371491807836789024124018043408485441067567943699348543863254345757778623518522754248039839484025814658698040709258511401769574963400173685639873480493704623208983868810858697309518232329821666312383543029576289986993048364742524463227309782797164083210399834904342716123245284138776597871259023782878522899001276125992448692145570980647614767333203444212453484738422989448706229766003057223882873130734285823291688231803426213338474118400131924884135314260616512830244364198858270316019162258175029937678843955509770602003093453171436567718219367394350071019371045469201576564821601212864299960921584436555391548057560263680565009536189897128576847215585125715945364243358794302088001198566032295770668198648721502336944358743680934547831624699246332763684103215564092035116951107547473724274840465255568447297883449392006404298236999212888439456054829473289375970133648788672048846761196214418460614507527906437510869545100493568114967044606194244055229302626071038169771515883698817651102696162915469123588423725221970978731846572689799610512334681413538890866309359498704125600395773009193450140578770475452730237603535912108802623798875117498035567095686677059903635531399434131420296672969389967030890660286695094723365209840841269410138891963782789796960826783164918573475445282914556424455339982182347160124624240218634780327760939572347678007412636151700942679090344599058598044676779659788734302217336720601714619901148874408025452649822471920524495653995330340962471895543707988061123123117830011186151182649334135305382492910573589229558358457153273569302724388179915781551259229951000446127494232443423899285890055252968166670514688050004332466152537766229793652691704506304615386934102839725769325335319445964004821035793426117916799506507849402216074013316611316408215329134531222257348611621959687477804919379227961090066390389020672860329992614072637943150262227942836635234910268964504179327286612441366453147848591087966426651858694843287248702432843419349975186637260068316867343244428730304475444037810107409787891803576450517728895234899703118315609853220635819130783908148755503087188009881623279546737219649466489518257750221007870143312931540306998304543314545116052523490598503875453507268200276248008320349879491872507879179821193904235234935135558141733933717821879676379041444614631408939614252010785737026957648111580176775922667475825075495025190162455024593547910397168885844023341786397306552696892190389964687574645644338019957154124069590344048440399294022776562752118611709850940120726943853972704761681870518359633783502011497864528929925659466854724440425427874761831470386515636098009229479181783113524126568393816168354666067643054703136371072193824433378895811772071001685036826671067449673641016928998094967891306681326304138281726061483321922747709219198187210699613870077024293287005423767828652680581536247346770674450909122748041600343057616330874446298130291486578733745611504825964936116299544792095189592142213406416125610920599002722180062056704999584528878777552362627062980000760644077189105207554613158193899150963767384962610669193568744284151641384813630780671023025437341659672068553150290257784229835627802756707265239196724371327024316572836320833314484823392224091416754256022010375602172594710103997478740720271286215582695128247264948528069756759643664775721523714214827489877803816526836395703877315781949619610758098238886487476833371145410133985663176763201440529616873816902148626476825987873369702907177611557991199879387872556166286358483742046431613178005404670079976954510212310363446263384339328775183260221546799970567580462536771988328466208596823633142728612979780418894003903364604913910000852471353658915528571159778627130602644480453959845913361360109744230643382295032604254831128437816992292710341507449106162810076278455582280577792357051914366238713135740626511560072965921236869408605393607152472659684100274543574057827006151464926379658086416620408316343914887196592112519454743265607704480609466000522610715091660907196527768082852150803743996533676980334158213562840774554751002436057847030038443009072698340774563402393465765661628431644396847584840566885513436560044563694913862977077159602691403960075349138638459003401063010278432714025253966732758737986230321919185650285956020181286609257429483102035493768174542737413068530506227558289044267709190430788836055009893121550329417018432350230523570311327379341849291482108109914466618312728052013566553872611089571264166269494626003126343981490479495367649588106841648684375509786026738963758496474033015163509167120613501426448585749840297301280505450267835673287661756596283149175401707644575443603941319528805002376123617787888841040875250441145817927999647597613708091920756509192224199889371935655280877438432686973308079456264617854619820595786413829143571635210713469728232197634846745787609230193780528708897261684371320506460474085318558942648484331081772263911006035839776159336391176245702616888933481761602517053625438037257111057209441611071881806727539112933666468795559905627691275620951920605576346421518527744606374263600972368138170417567386456595339782514628094415157333101418011346906525611745319675431348077208481024422562347642999661822962322973202319049592653565463660921143395677177964057160295588262980555853106853064681274826354217472003999894381955377668460129616083694392258875989098461632419591224578133299923599522663833758591997582005311938885258861536034767045159100693456153130479319177996566740095003781934554190477631510779466003124850563928763909567486923313506009331717966177420174059757665308047187898538281696314197490642853403980094062389982460444164718776267190432199948175275252400196973425198659601214801388479844989514578725281000699977200679275085905681176856417254791061457374235633444736013044000598278523166195276474685184066142499505784300918337830801961982400538626646990224751449046699213797908417969634433551692094728714499553293363299261725721561972151936458518758045323067099304141877512217863119827036069383440295367345778991127673562632475333311597048164945321854769547933652215764690556055462254690907759616021113171470165067688389676466176328222479858623848297317345727648930520961811475447173927301001113621627197263517574301773754035546158194248132713367114784566601929305340201173412610157978874056577413778155730565289735473846303941270543150995420152795021791528640635909838424816568944056611066443775309441812157034158945193513985210383825310566015382253148403631769346751000950347568764240934018533465456670230510187761746083285603691374732938401353543749549807270847028302505076587089646967158422571478451183290498092649974020359084366099129525368296524381802953719643092655327037564480486449251346178207789184538636907609292900259346677479798202679894033388567766579547177775827108211989057387390313585077337672708771642442826831951031510268619888605249980936867990588114752873524640679879334475470636412186154497074640718821200294950973857336287309842887256853993114350725816475938865173673497651264699203407223041032076228446374540149716937281104988749025510853260100119802677729536085504632117415740038853306137984851188531238596334962145277288929558958074775463035284967849627018339805401067696972445229281055786978989881904330413455217611971584980229930611295445259403448211515335319329657447727823692464197322889229368359597183673516550575733443694068367739582775283280637321243774529253601855540414507940049133846945142441975036622994567610321449947393251719045402199983183370311736586107486158479435571477763981552937275328204930618200196195426769961955664256764985141699868107461425485488203066186934688194033347268310571011745548510570053618707942879467390213519190367936541104021843707926079603600381971697236305745164353553515176870775100052372593154236094538383618163920369588361121763445597250613916524170471228522239565262069018000213635540374619259019526381810747523910101058052213215447786088301158640391129185772836850318054074144202664965558713306192368284157144754597808725560536128950602504762011733719445017789738524670932835935960125186888414561751848011916421691891093762098412561598924871676123215929402114183869318276121092708077347767206233302845233181826004223750176572913974526766281375975894819658752464491896931331820812997590011982347441248691192006605146076804560335859089400107663334656323835443484435163147303217525056241310705229686993991208825427039762201444646324500351968453601366357889261805875293761827897378191962765376537234161559447559586958997119029070719919185769093734637001394137436377591834105288497532632327073654611014674475140415967712835554148854875939561958605128313749622604240408000589397361927805669452768721442824174468010112939427874914508369073358746892724802788866420792656037823576919957884129323952340736066625643680701188508188473317983701075755135144459235796969550236599846602884608142696181438660648698333529693253201971193672248682041653223499924821736829136101998786983304545539219912075577312463504402039536654388874697915289397476314456115139036591064492869488813053207320380386288393339195743067855771250693652434779434692537197902609246533802524972228591876328454331508458636087753140909533627768646152036064113917089402970195987235145507230927401710425906727490453658439683767445665486989325947105734924504099881540711463855992762080077656533965184559200168888401257052141125331368757566048732442057411310658243201709717048964084642627514511821688145055881823966216622967959545350639248875997785673309564976198305798278915848076413237935198588717144137186354287981201417619715506893272815716194624833109548593196645061469855428597685931107991097838680103764968591169189226106279236754613238673596559299391451885193167482856685339012465783681661649269563288624813638399526461819750297990223372083286118306112699010145872665297311383429669189431425531499954597943783299348922195393918819555161800730954695333686174400693661297013125743888252227992470213973942036759887772004083348107461311919699677109461162562662458013355145842138865250483838489654821526270772763073895708201178897557917710117079360154627659758467011904498738224971835492729213076231279092358661235285989765565756499748047791906863287514765962688657149179796315603216228521989155594303695262889781342650573316196706199326775441515704749362698710439387789677226602623454430142788133321807806024676488302327181411383594570179158188723629099689953825965932380440044275221036468715174007483857791058539759718336121537162055623378564335219116274199035848382628416821344685197085884350642655432392749580615236685508844386800579990786676704430535405934544186413440231771093419072627504940519035609321651523114836489948267104181202114016422326694600917022156221109668602480603876685083928784313865638385467505120629933993703408436467159763243242631152653312205387222233576101008089230324919899723687301686231071990410128266345176243007686277198141057045849826393708760678261734148360790234006033000268059432391546323018137100365921794574836658810988822926966972477201450730055840307504041146293589775555079478638042530971696657664842890724645193604858775877748399692804395049718591331916911816270578490306262772203556974444678046575554640808611503194021900328934882135430744515957549133628577348965836801671676491936972302517009453338671243337522015950794035588607476562151917682576127658745691065286766717225362556178028407070290501949944417940499221378015857402660461729663168175499515987430368136409290453838502508936796658392099452257741583614328961219071642613950790013128585950171186392587068963810989631711720305864192749137195683688615949645812825350353179228858275569987637877609001457141083398776726591408738831309208604780743525736978344369171017084148056876776847893325297121330758886796043470498978552452396486975912051804145111112043983852647477792496771082458591264571964401818961411539015967744041848548203640817118960515346605899622866597842789073413945261606622965451970576260234063971360136233455018755470359992373139068376755047540109557242471711507687900274701566788270242375527863301320874283442129827935792665441847442978005061880436372065390229754168427165600388327207541485085020707294216691393218624366347370908049149968735598175127400518493196633798550463680310957575426921597452122851965067793584704133066929922480171786009976052326055895919506925097187158008574926731008250451884295044179482663427161498237575710017697393956711124378201205256444476742506276085007176775894274781622391094290694504253307066749656656591831077983721362608900611094667930582632797977492164072826193936360033574124566160331481225380025771357368503287387377057244410709126260895223118037510289952996325144875849983001087164934319038054002843193216084523945699535826684479521558739151081396885383042103526153101067630959860704996967293083089906078939655543788760160740650089374708214700951141518137307415412282339411498326023941259373623334777918985404493415774261198107734877824767464577065735461165699371696397701202881818761462464398306619543017768713922749448853940710951260116529393368943300753863696685684310683982156544389382964705300714745374646709258989675745913904899864124636348303286567945968395045240921248287830480170084875955319647660066205950806793810654284345100629241681358424215893477754324981005562211889420482968919648093919513878839645316234331841236140532552073802739130755326339146997179309881857855438406134557439618697105778964821441370121131469460581350821967639811973134470428422764742366704611798541709814168396665682230027316935403394949617158116783900789074843040032879075592828235173264718820971932047804630250012189463781683333481222300694299270539680431706064689899740494317511653739044712807590726156986635968233603897180092377712392699269527950100705404204223636674466197179218859602216260738601367502586957886044465132863819727637963840200781934814395977419297710327503672562886133301099522196527436070029348278452718864705501785385787195672375381805829333779848585333537420825355308632580697641248556244374947146188313574147759075702549028953336243038466221229510446352587549517030547751408801358280061521984575707238300036712322788374002506558954140466896538418888610741535318254756092987102009252201793189342434455586194252214607603375796537788922703700548833657981524473205891603629724882483726113260899464177901745856090317255566910963657445806319910792709527135165878888354783464919549760562880023321549152334079342791900715030309516991749024229825776582369305738600818568882135479709239339424329380886469939559911696492446645386494177836514375561496812716497104960157373459700883511063887232412062862794592433746689859265864988176442013293696636270175181324661306761058583956337574401096012839975912764705744687904655242497874341541866606386707202970641771686085485394565668423180648198876071959450976068105184022642533481511619362780364203215188671786989119337069361341629099819700558910385705758320587986432727186118758374465719285029314679042454692791275236894371965610704193163304458155691472233683420640735222239408097697035826136073395007440473406755559895325970374715063010794960425243003965687005267336597370620116809317850001282961164045804819908146896243310366558059702356684139351225880290350228436238177090396854784986844788935740493469766698074983180095575194470646057821198540518843042984591770356418062842654980141532932209786038409138204655610029938306060139769687475885585907209348084029673561289569619397894894525827762763829883628339205595737819467781373874397130125734447171194883884779689598255938143524532807146583835110389434350346622887339838831602368992474426347694542090717783234004474816544431866583155475851429940133172359248287544907715175301818743823791773837988472439421448404281207323321508228986155398733872435197323966656598169779456718558517718115190611871278807880231698939650820167493643748210726734688621318266221332530306172784021419399734310982409079718290636577609870793063231940514780010975207867357701511270044044060381784484935940155983013014951199928805676920141003321010002731740531533807849061364565314426966876137178016832500351988215510997239380452882290106694798648621872851815898284696240221270708999165090937958660646208248887953523373250206950219501646360254006342205284564685240222227341726414933310729416156910722418798838440100810579049133699347520359338295525545944892044683439763695817780774954890751322015743902177542003882636912378598785404902541838805977242977262859572460480203767453929837434790487281242898059950169254513047879549103867052435523344946152762474936194519954405315622615244480970052810322723635271361692951609439547995311634300670253755572001890842091517312664418818690596948935688739015165840442165548453375458817743951346816387120277269203671520112880521053415656693164195131621577166700951727050029645942145598768551913689271840182687717569486339030482883365996141034154241927160581896368401745186179895704431656555157636238839356819675727108362950684467970755041858053288591261759225179307081866992486886266046634677805464852086276939307364761673911771252754593367317879796825527972466547915374130672787475243537439917022039806964203557392510965883876456408489634737873288880357365411619993188196012730199952160996584034885566934437067438246088268686852509215953242752880102202334140029626911002459332472263550321950096558605938518743110309120875289384684207130232267707461861602859214648703152526621479307085320707223511484283953717391935993794994595284943017509741998277768213933823050194356061558155259397484588390897887836469450740869486703777707233047893621594949786113628624875462724184410814471220293854602110040169139733390376398919059297738724289803126601487689636692428227410986733187627199426143065710044796562517559859375242112578161720926154864941872629020133198777167530053874548544830389530151004738473482915008062700460301672158327552645364542680363855845951453301447596945544692264549577776004087390661374363362783194844740004988237082458164358621747666373529682650216832690584084248322148490551025479882164917707959584444783184689737492172524412901706547490253376664618400216471858368056834910726781671255837863343280283063891258216653768864103846582884028426826400073689209752575707479017606372603309080392509767388488385131360266306177789535932097453602479642486644770813479422307245346638274900681237505318489727048121944009885580041203232846455371095274625550575210400761426058256646700391999467640896008694514672636807807570473351717289766463090857379947520829132991666870227438998146852232149903146620926089381282293360637416282179140640333331713836669228125079152006981490480691315213698478267875093990839490899502506840134377234307280237968168238591154769263135254316301351987556583511421065335931114074279611854567795138186522065718192639694414204684860615388529344338916636720872211646746357622199859263404745103916347255782030482339876569325727180418844468331599028906556188676547443120152563048351346916723817741086604981006550992907746536526972136047355209339546491635333107024850272811049789206897320973425787430041779945632420639108699035830014014435975257923067993734769129451788162691349364140862089118541418500812974399363503974522366019529432909042693400311148197670603930030464331178031314690961916176944748031984041740439360468955378178251210155052852219225213366733120351292691708148942272958364042492270189725599210056922093886711634731270285304444369412128159724190261428477087788321540972550648286723110911313100371859943493256970426730493039726948652418697345461804760537117075698076251774185779749129937342869002061149371804593428608499831470585854379877767544111194584612380481437843524370646544842192441820809514866392164836239958350926882248405554170031727725897420982854561404733977450070323374476281866026264699933162805856548602893452899524026206350905643725782998652065740619478354338523134008380798999976830518552337623394820333972313426188221120486855142217341709255905308447277223575659991156541766117305290618159041812194804129345213503460826089182462241441497274076313598760583828455415317202971067383099311809167637653358989054871323128736224167683512146913117021940153539743717165156914031834443765597429663258885382480531920517909026883462938448040529320693496494972298518727503056027931287846568911577176295377351769489107251153617778998443716673085189067175804800903126578438949386384199951617616398819285855453778850290978306000368322545169361040184925831819742090025100290113313800153036428092327299567522384032322128716603955225376217359005502145754604272947378932551205510374059408244245166180950749688690983341553489522089842578990059786652428319361437460355887570280889032493089308573662910067868535728221990369076654428025937865144054769370958206761439158003008083570004815692338849943027990075179853237997461041267063365965108797936561913838722087890316339604579959112235912997223465001962428906550904286694909768609468745798504355724584721618253552288282073737678581138264376648999226610187497223402315225976848235702439229309149704372919532698247158408453544783403605254055987014500218556249276699308161254668779642826787118777298480257744031757299552268254146357348981396730586878703863285785040430918319448675575390468715589756160334653839489027123047554758570320167760112448272478104713694245687367709571467923452648182900551252075355701422955784419356187379068112866448893716861116301236403984918451505093239722517665993614904668622653515261751072215766385981165019037688579493078414879920289327976514501483258326649762381246878947468106310967665265761364532909226927797161903925276466758355080880564323839488400004990644977369953268243547891768049531786407496888934439252588757043514715397572535129376757278044211724322256059784626914374175548571070009920702984645893203553583781397701523207622954252941171293264370579884971247449957269152394400901100359668321456236769996522370314038969450473746861265760281992898439419178463108896117350602749874222115635057286024301092628081314906425506077554108633000632315171715593805410172196276258145841733163967212842888109341788237382637633836369401957986315884597407497445853175125340681168872400918939844317607510400487370626051903891160182646943633126323352922946452135202495763632183818294221971384388225097473653304511775276084611351562479796740692951801247178298089416037368598373146786485336854198067362904563926851022655337567091567091123504611076575514726255699273662651279118929557242583634045319740008276739957803182034462449829185712867701891541236577155881862911830575830029753154394430595074437999577574155847413245899358282647163276473276690415986057671774859054843864524460911512404634240346239257977280152161088536338551723334423127578381590374680632896567842721542577560280825352111325903297665565178268410686380010972433417727490326198484999937559362962657128433389988494055364438092701577512121381468006687391952646893880468489263338093527755948811803981190639731251403779643872676348082531179091062592580183106592824989612182878936936980456299694542435862578609049940945664546388536774402338403004100236048226110162222388649924554242662241487781431395494229203296598750326555155554948143262186561837710879626236333873389802756903937330632739669738517018553200066755621464124074774519293429132066526461685599437867508624596522448207545513796255373357941516770669822002336501382615932460889343732060978301406972340563238515097875077577328611352020847032769410215537151294102476381286859707482957591666457511539963695848748735991473003240685925206172222584364939146198195148693445614356144714523013915314844302243730561983091216718780873703732954600331140183912820608410542942160408571918927040537080188919575391689895279239837612551411336347602240504605749562695800021444061556416765293732679279269051792367878242889773621840580573110229723220430960235109274975456022579520926515991004260768206877493515287226007827265386288087158435150623166052929337360788094900721929336689937504777218515500226997787090393254164389205493783851808426622957501569453826602191280191103768161764335810600483519158008131754086134539126109803413354003587941902419482366399900927657623427019758824617067067956463297126851827919786978899521736542582703837612770983848711684750534999615203516521542804622182313380986669329614776048382287770192267779274734994017700866789970720383396361842072617319527516590602862429944533211622605543623067763839381784361693128237516583712047062830619227266501538051175506006109685446623405512440321843140985530882622149001210799565014488674269291624514351135660808973167850980266890651738775293694065502800424968076534107024477183739239273572098685956076973988600722712064308471547636618441051432471241819240436874313217066532603762645470286912584388617118714585133614456381330568406256316398819482612385971109052207559110355564113800812059251054314310846802880555674237602627540569032215030153659915774432755137253010336793793311655306024572851456768323075716984770677534207524181170784173132661783299971786851907710200106320501698853753513395231546454048971185820113702310178462363276997362704076506176747563027519152187384234449329955303773272901388570351290942164110905883956275205994825373532780295648701548735130848755130824063960022657176988519939918181912964483480266862330751221933995869243115822501106881356218665513261099370775655608070270881870775930691896502058981367753665493540702516078275497743058880412659452565257687213706687535329641909601314562709995877300210755350559306337489650905794628917776159785499409773770360726969850366838577449102038916133083048663414481555289149067868387050256001812445529844016755194888806301840333411495562006078328420673720544970467101842643627705674347155859767961727426173907137704288326142774272057181926224600086723397975836345171177134842245140654327550044274929605221284991123993106414114621895419085480909571151085607344472768611494913881900862644712349809937368415367217406625314707089993685309016788490659280364314491027588040614120449890247950504215606093087649315694711145110685593006387128783046157966648579706003209723107200292615194301266417300777397071969303621436702748765642786278848631656022447656159046674691179558282993538766485744256163527923842844530230188252897102051897266782981812608736309375811962856843267019886167274283556346245736980873807571346454340347152005569915749660404472920361943369791616174069273247939818770267562581667345819333124957892314226201938413746411183851182767231388032338170320942342529171808973265165665434888420273369088993025771025901794380537169288144987037190242401671679223015363953828086249889205474396307287482283328575620406204193990972126036057232099115193891595365893265419004546796118333347555271244770092271880654545874730398524599161384233918184139935138972713764107468738944275685947022340262828183094404822199491405184164514784738397772126738382227391916023354694543987058430011893482293342241391629320218502999857618447425702639517166745990474342340694697431409815478235196915136608459178133037306322322834990554480556814464628193721780180443993688337435656395230573572091483241058304062663478687833560602974147087160028279770383277467520860935940964068079585369041563763602809971254191117613121306968497313085021115856947927990447252249564300210153281199598987364133844309038593037896444133017068529997091759550869150000215555830665796483980784007733356523819016057305258154590628254296762310422177304228131184858071980596461633772132109611868457437619015143617990997196524990339421179096224539660558088074260474330144834597572043162225602815599266356732503165085982379210302478591743440893637690832215074146717419388081351870507470355218511577654828828160691623407354696177492756629432359076641275838148914247553621460692554645699571748573322927941602001492823317176232142628188283791345800485903268120505377646083137053320497360767390264984497546081837866854028790758006204003969198820463093305645543643210343029709941653571318363743013448989263109760659663032887960706846645437610990692015497513406845798851543408310519665358399501685610416987843183645879541662429189365994095081154700015947600863975377581047457850907742391383377639772075198511068236429403775565665198381337232843122024240481043385868098970007691455956990887051351790637089670745166539594111044767070205065207088442301569787813333622149146166583187087853075848405468711310744480445225720214454501399157065972350488564531229119346381400792168621402330903574330776472060500453436907595725435443583941920246288402350489666322846541975257429558445623379594889394523071422992784114015479817730344591067530032470186423366194974912826328946758069436071784031390301584640823042543069795498066775294135691341700509887983222375668087259079908246997629870507239997544240225673953848841737950273955608970820001305168826074983894323388548994051647190020300316754325448840938319582853729388072794313372958024188542025904724968287673971925558024352296889522718428289948889828276193810212950899698330023565491842743328049567675905197293140514464331810323018794185233102840542548424505538433006480574231223369844541292091905545567672039291778241074086915852592268709304878082630465054358184281248317260202084110163213247524859280142416808489458243391615844370121565612292521826660205513699768159951060320591335801494817246087669449750031527114651794318400655031537991424130712519020769779736335397181992328381076728189843385075316095393224416033574626612906841864587124884907802185877065789332164277871691094229046167474227197479798107661803357361749952958813925463495869773099007910250795435656680768747401131366010394705574377050582554399628628711677701332295673646226689199515931261992625319123226203902629380980159895103934786929009348755646323120672522538158909115326420176378851179358039250430033282701913627859220847043950619019730353386915481564612325591631289141211087595840269753109535849948038720080290898315961030730651095209970838791234262111144679864239235423923925592415833037069282723024900156651591548698949415455893250946732700108543950736714658632511723896097684201714421443825085217051000213571755579829186245411928398203416457224160504480194567335019392262669805030248394680677321799269417116040273943593113123272869357472434839752209687072091118825149413382149279396164846318310896431589203015517227305738113617629263270828344400949388825344846922159288469286941168652518318065620362311182726097952166036609312792892420717065735221449066441891316972033513884590806200205810597756012692403696661948263944126216987464943660614482161087578281643752531904417833910503618676548432732561111936823569704352554452257597592501433288724784480850663010561151832827570351938775768844206634364205242135782790255933518684911802442211289779326185458938463169876771614148545197943602223475762072969036227894019827567524425622759886426122273722239967545710124081372529535520177908183602753485360129322145661019980216034297428748252733641616818290282633708711382482608013832932207068175179213379211899362588876792531219313074585715254768319218576328249523648502052840430988255269806909678336548423349206587734277370258362007821068749590051466320135617269599422006231350823124201143587390504835350163910328466436792612310565477552445885718138939699117260439718007624834829828656674295081371571445367078895015756748846151041996037124644271967605930276901813809366437740341224443225490009845345795627929109959780674840219281919508727491897639637056550496216304194941581976819498575046857013789686040155906709074137018397763271363788092560944666940971657946954640210480830408591025883239320386807522005914816842558408494745565881716479762707442759611927406698572125928741463604869528372821738831109175476178713331339308406541982227675768707552534881306167380167550195238152601642286227660566114994065473847872349670727182980707942142594089788702017903278533050580382635548125731032142320751465799792541598956198913267253583177406817603383721051873466614726774441578626661652537787435428077066463171257265776828790688953053022342812529793243133534456555885552127443389160502482107815205917645942105487550639420133583538779158851603920798958561971333243078923924383548036197737466403655811837477158737324316940215283963828241785880831427675498398413043754686648760880992349855901065861621802688130139297138832308761850669736612693000610547885919598507532373547626475626166634807575909740085198530643609684441525037825252737817116673384993443120946329017797243341684026291311976793775183097106191469619841856650629701153604887758665908107482745211097665855207909677293782232851299912893625157015172675423823172133289765529711922447852089326581193790687919067179826916250902803635583771298594230569633853393773745597147980225232698484117362045846391272134624165309814106233909302449414079338584051911337628352946159670475967965269983356117811428291921489357702538627727253296824520497790470793698160995871184046576231504265194818985085765577743690231213132001161338860246521699312357244208840019998844793680176107256560296449378004337512885142330377874478727135080584828224190101850219226039676400101207172580165239057870356252137550359566737166286952002978074150185577284728737299565476024209920707947459379196001782950850550975578312924341190105129754278590695549985469895107233443906653072288057897999346160904167603721875594204199850158822832076307090515840797976713106975990806603476605189236862561754599595468577057361253979204676342088833805418948725971231451484142446696563999067906799579108593883230780499603039668456364444875619570247524892676078120323853675620266888701454192222920232775799514710244887621036468559715212982215702122432703264595623234148368810616113033096582615037274220942118977464762776342042216645538796082732777615367247692446681755247843843778312302545208663012695392582434229113849951280572289457796113202554666108898246672102954830226130170464045038057012268649020614261323538985287094151133742937771945689438342617279262843716621894889786225662347465320080235749652598908849303127992547894595065926258647201951593786422007136343397509051068180718139342337020067779188815241680073727095448112289996767472477686914138643207003768975510636734176690155165338745986396123528058098245469790514396666157310228453792201926748273256929295673271412098586359243886175898769876360860701659660197681838204276655735513526041829485502213794539582121397058512818837613871503931233773999630637325732081459877501751097057681792275079860607652471769400644673187028948646606850271543920497493139569935681483960628641098574891756090420683362832981978412355932910354596549309658838477630192740488048456995829662190367963343381684430438036669952991587110332096692845507840382814777159659746447428663466752281185658811529579501600775458510393453819583260108822434165013214839821072491059033501316908482605513869772749192651626680922785547601465131192645962131359226330057667156411675283112786607536450869261123835707702422430116151318218726262190431692391366245058576001827010570268837507940767710665954070742095455863896153928310743352981328803231992275970886721462557840273192583847364300718489142189771875945582317402169351050183348819067968288011931074835640930904205684731473434831914397698543648553352781584145990163400951881838842670994635134478002434206617493643489485580570197557608025565129214106004120552860430798671152665290917361825029965741918879696497121539892780862644321082346175977039742341093887673253621043793729489722706948493317850259450560394400427358830271339332356442963441202243595874198250005004612345128579909912049360932846563178592008128974172085532701498291420387857695493844108945770968698162613054364570116983242046729336168931170784034605021129153538584852563892257918681998858533988124867273484300925118285810755136564859584263257601527478688972814918204947735843316826678138279626753340353140697815383002259051305931618200680193675809305888410260942274502942958661508180890247281612702789126630719975186274989414927438496856904908744278354858309433568808395048415013389700779567595935404407629792591629380352665628458600487251444908077718679709276029423382926350843975082509270851447489169718650819259891628540216331877835150645777010245688547002772764327897482437526707745289510090916319268371266535058910573330402893925019273055619940774038353270503475696412673414747942171436086337764872288766429976639938698066063841625390337751235453045537129899655044916458041219796435984143521177722064974315563951573405043485625495733486808837405127070994793077037659606655257574613228127141057648719905058729854453543283840082165150467398977185372088314114355981504229470697305282031610982495978299276088656575491348845300798482933446203424422729578594807369807684036741802026752216460330104277745816628510220493501243749372526290790241018296630582567953489167880084239981504016080238803779501769982579418762573862921550753837948224167017527948386051133369163444904889000592761273436258036908435225685040949413323298976410675233569315901000262072627272862002292196933833650789079799690934386852554518444169339874307727900474552751198014573446388692810138322336123336127669738611377668877211488964581029073905075360630353681628119553713223368740337194801351332459112654672944865742497642979194198639957276899173605440607205910173605686793979282366450172083602837926205114114809380329848885680610719474418908826179832510594380006466732611933693801807912492222550647021832453692373371926770523971249370713284131515674806806998995718616257303974730679341751075965886284891976905597335462995360428579872536991839737215509599191121366719506443067290232217048501907010789807433134426686643267228767377537461200927690466509958960463524033516785301361414234248032770092525699517866114370934273113766650439249625665411920784849256347575968808584860487138022722099073285364802192499510249997917601137879725560244879587136170595856079426734308705698460284319702906255142309744261726045294047354864816850872743621865069946293842908215413653488853132476253241116366125730663202654595544445087226919459291635235888943497931445851830955884465435531430046422545162649459872731817218334007886765984999386801106344778535262058001244220962150143303249427166958545729026101021064353015526232927523551119957371917170571752878419979200591577928109271541050072643931696387066249236083193415744158163218675340118026634544273692045523502721442213877198913224338863230794978699507849138739606505656060195941108573571189213386708284573243706859437756064905150342929207081293470745061470422096204591270537688078889711940144509646980832158018832052203289071111798684867360833777064309442022298876023075347992872979696703724260248586664342353379322415320555476528309148276712831552030694714129654738030143059095851931310329231945051430407880591980693683635049227744780623327742315357583459994771261933083171814298962851564113238620749393766779603357338307583316344101826549602585298980556174194785626745427845459942487904749414128294630543822851440184350862528321845494900806993439897547895785181625047564179579366469902076131852131625936448524464163436587471990128697806066755220336288184715703918741745229403783816267938868720685475179022646633233742645566479899987951652776643272265025062530257137651024085196086101794267673346349500107163247709585810338244125816754633970072419179246970974131168446075877519712644934861265956158673010616379469360229590189931260257153378056187000849585055787645968872283205594233284953622135615239815057187663400637905935008791840997229286986674898562336507723541573351910654475218775372933184543501902340258185345838732232443969296569228814241714882518405043290897431865431417399624314473204045170284577966057653654474905763810219906223284020565700540593188065156253489091041820846993750665850498785848650942605210721938678883485593929695214511068430868098418951987751773263419690515954555782395850680276919593251672909982893183580071968383015183438635799406408637074244344823120435066823263439803061969868232826787182081307188543416955018980819051233083871149173516758215069943319549642611162872492202510142422213183030040709534388759474892919585083385859724261800453226585728981836761380654568573717640861993111255809374282204514449812629665550764420845522283302355318433875104412311967939663152740162880387935971663600187380916165754537144249793624183493430594161319604397117621938086647134560721270158076360694702055591392565277783766169560885518311666299717657683026547962991627615346746097486160946473865063356789722278816643668933494834713393514100586923957676141688011354810134630909714419741893855715240308033886821118679980638840778755642906334221297202085343939550449079464039574131697605027407206908284993957711520776632075246121609722221629486878608269763430914617881212916733335360137003402716561842058436161596168470339273364516781345931136821209518418426378591680414758384730696966572674800087680291970599336356849362812300227755847686483813233954466465619787231247933224632810889241102119554155123786745611850479952657239103486239053249743335151457834282538753781808813721099875854237865310622171948235205510289565783627157167124803679598591402261188649575418713299042186731358312296070794726395881945822138751650185591784439908838218044567232536260332497415402288382239422924591303841650775049438920765966370055680838533156418983417973704212340545956803210546103727195091789074687476290546636687138165935870208419594069226300390537393869508757734985466368843443957460681085948782211228360924749218833557104890389998680728358471633856003290615519282358280538124699278818181402954641370301246876446002975742266546834411232310089071935825584060506060569877621479120182093010703341786861210336794396410333775388461558999895503686777088693541433897576337129775137745727335658768135429437295496554405003700651705211272483315918800264033747504318377970634659834500797712887331471876800840567868669388995383647213960460286258577524130802103045746915996322270228847684964906149065779716447156013829983008596623549314682134304665659079004577996936737310091201345118937819087674823258729839221115879231538621879160496314263382455247883326704114661203221748941564214143006385674357472777448113404060006274837794605693120269920944234101216680909277298810132386585803498600229263259372631384321228721355356813269587179983473928941952979499722790114298366099841905891200979111205880482122061893959549235540694536837500982930010888572373149988312410448883486178168177384157244691755329721982736923821603264574392993046180358116957616800795251148588136408025498761078303561487498546604989050906327059502121336541988622173281406814694549203913899773063948136588936700600443303799136131947127622258471932694949344538294426962875262876170126926307808628309296649088185125861374920024313915469229918024205033740284531627930836453022007471964379874362316164448192351441960859510642507332401704051112513089065093711856939742098245381723450378463342287125542335896520068338048158249731517722793094121345141839101878292640523132314854049060566868925031206548493303873061676170645423077290589907804955995676823553414145637497702814441332564449863130924044390486219595602425755919678345284461275102737145351224097437052330737922593861782907558914510088622583026491934342860256415709711970235173596174562074109346844172514073289755330245581239111160772008911987417796691045568571073499137985694451403857036781973406871670463774301662567754598494080326437445206294330128116048759212317394139188219435462247259051473261912535998795998024181100446413086545895378943214129184707050890528735101106619568601871721054868650049037516279345732948129701300612746280498828644599321532237732179914556519174766278237506893106766703583939388177447853204324854980860714105151509973023424054085105961068600798092298410266903994273169511295835121167313633591272929485020456312195242159986970183860312595420921789309950558169011358775767465907464332886942157810244179835302013863655580308993248246431938301361466841645447179670346423872404805144561320865459351729628739327466861702884831852726128952598812859721908084948290580093874999082577791121761797283977204298035982299065099566556924018462652645956555446826562663745523468324794674219402321900068160996905569505623775721795390955321036971936366165222169005199431284070858828396639959924476477071934093941505687515241820838018081967023099453262828334512595454432553572661975969030817482163492432316353170084409310906243212716455334220749227629670104391772757348659735025063247011115276054192653417068343288855007373779002713178298776440202704453689332946493113864048906066650592527990169475630293536015120578981261547046949920299072739463177899680274501870733661275529558733917941665349267273039613712419990737137190139845554133625864610959768905223708290265735883709375059124225669656131733204651309317214076447382729723459853479027738243406129545353094354915822627191226366210550052098364472446729119390166750255047799339258950143384335729565302012298137072328170330999748605847178122215097895628394045904395318093287916023925831004865521434821549540672262399101804531969677555248617714556494080579064741578363125725108045454216952310364138557418199743292794182598288280191754424237075930490660843466389364093428303681419703046333848120606283567598774915825849192639314000150396900651650655690315241192021247695036881837744133260499376182538039343690621975050523352835421362205890103823222411448496277308289152008136336531754500658741665593540096829717158916150007121125764783875068102032394599447614134322139393517591737063826733308449040581839371980417217270442620860920553947596879647040668616113596117752289332593895326532117085866315750243990530309275437153437043210442227034811995722453325844257670893865076018307883122775074925223581905970805926712564212004566126620811164947830781053473431027414952434715615455999748233234200785767791865177569166620571567281332568779896631042475215622883020232226832606985287229641796088850965762772626329204921519826654854703713359820741797121104543479246401051107729699679885298750584478551888401880723570469656203352649572045354922630816396976290626404723516052110004474251433113530377099832482648259971797793465005170286662038641014817031722332439377390373398375468543916808165732625328812643002333852308281571617148120029324483248724468228578394266439174536692821680792967703457452888724507424691820604661941366606617058308761369373916320573199748196061170592542616003234953901005674978440666545274388070787488311538938161764864374417891370327974654688092735928271872812019519408192141222662495642243660227170760254473111060425285348410072880461381186107149468428219844324365986984763459873076015522830719546711127840298478455791306871844598912391211332579333786427519375320109538336035497481846299524075518984023991558742453926892807937369077794861343839368205363480791042692960828777820820490474888104108882152075457148949470037786749094448360053200891836839298725264640507622320287069009078441067119667468449739529029126990797936960862047387027482596055673356637287107058779588677860146359769600095486201317727320676632971532850343021854541483436832329524349908484461461228830844957738565049063617203209059994688718897507993521099454033617383896783588894622994297138870866152466526008436999385878408826029136816474434160794075658047843812317415879119654939149568258419480298832756536087016455468764866569410578508425058260092301481747099497404130995289107492822329415486332572762227049942239253209706621741381350313543757163326483270843463590720345579237444729516509733001675207515634936094449077355709848146796933485898944163760080119897943531544780911081031134288866115239277887062214999477951094977857615938000403267565846915541071712400350485468505578256378019645811495991619103672963342087203180372560675346969018690608423105891799661202241485269823652776657183522716619172133145917025577651147029534034183750211651294549450357817911032219828546567360423641641391016841615665268494217984166963795603233416184167803656658355066401063117017162555816375785885918793579019304247375027604425437555642102298480423830937911459432575889123464179094913203809872938546171716704115946123032191781805856504170426767307102828161929685414507004612309796165331404191261252280628522322305246116687311301438938793195940264378777299533817227131844744376952963660776801109486480070729108456460715443362524798750496208853535268685401480248359184468381145621698417254774694784220762728145078408024348641456609277993794906058748138196773992568201822357321246690960356134671727785510381560291323331952793980737135762985038070309821180298379113856482397054766632550998992652348361493767006027780690768440053079396802726887043315272329470036015222230658744196999028168877924351693288843504541998591477177724236026065679839949607354683129716148491940228147076813860690433254441789327925598742670160279866711837433007622276088814487501531737085078754174033280589938879526056938243812342924966229509581523221615229529620462539775577093426524901856020678206595459177177546287761142977221480280851331238300937661335061571768837667836733234584966442218161411851245287916707273625112093004832203505380886611131916281279616984980705367186121252302761160141417231629228633317207543619607531716118168565068517708761679757403332073335163999374397956081097989800727189706188502929656078118884441432243646913823708048062740417897100960880728279271874764028063964928155698014687498107969855779913134968023620478818995643040840585816859184437852511433738058706014760716965941098259196940500345567947348070346851557728715145249996221124905977906013340420741874252921612242395086531476525011231349015742361033931462342526147126381269988533688094008063637199749608615503620055310278228280711197819214109281260996217899993937191874243597119295594442711098054698352518688585229903233755610375724815069335264567709003147209567570989705484324957842321509756764337753693111091155940534220319418475471876609488031478253970105712062982275318213183788707581367936996644598709889433727352998455863527147403782439618382574798298088716318082323842687580654058549899720323738765541150806785219334489077016709515950503893345635771843288423974629381836728411534786972768684972873645760781197397527060242092261175324035253804227981394581496219086611837404367835156155550529333656298104259651767648682164403953005448000364749116317580954059731567189010770917567773469251033096856105754356176634510152275692549380254929605542857707263414072344126427241791561107308131782284207613524602929535353402931118550637197312411905959550383784130854281353905548762161799116680244950425019785357242262334682859147168813268275465969925362366146235110634779463333432445901860043386383451800466204858284075759778700102249885068509863687960671885823153608562652751915621284294553025697965848602380348634795324922897885640465487049183242018403220716241255098809199326197544265297329950288465961568075492516489208303876491388785897847297112600271246525383958588500326360527560230338517651384090495217589402120999405604846461887399843075975601811986254836764792554448922997670256160993347903459638657528234937334705409960138762749500807191323658025953285101435232927773881935560397041670362604672200219467611129084201927321338599466907197534180061915407500474252404910169413906362767449894074523271521095532381416204674276355728182333867098322802017799915135963467201311821587341802644779119705403423925747813871938157093326791215625657558372992268260941000475203123291961187412674287221431655402352431224504403596424598421714955885055937444391154871318021515666797426994496189496762032050208637637355865042810395249668071477012998826739870560318253958549308854786641114572916034055076566118876745897056534192297889232531452871433843525528232397377754645419101249650351391203299879478528671326910701249541338100294134991326064548499698606196455558673033636784960160170015948968242892204161288746084174317025329668492932428913568832898854104181428570179920529035977534884779445946435484062961381794040752673052788972980075654866132743257480334357979361817882691644393590357401130760549657209842787412785670811294030810591154570104363233790823418587167865876553989843849621342628903200031066867356189624936297719816619638994302889734949570008564189631812124028147771827652837640386884469031616473721068852660303431262270586648466106968195637407212756016251258993305318353891680725504315087819877230076523173461731706304216486442505047904427031798602170582073741795032629717059837532320751591335129195793759089623749333032543333905521911358487837651301906998034843256487137997113655414458568394164545314450778709049131660418100908711681478276406463740206151413577996015245888262283326227780597627088349918062804139344003219351555445217589873673552094691742999482679340146952336577629214091341305520149482089130348359814166701325885243355079834680309012433468862891969365135818449635244399748450633676316448174095335484625970674062820587910554856683912032051265899140823544522423157209575055805761461235660400986021983553089070578354384952160205533006757268258753666722667391542750512664384351222848011395955024780171834007632819707916523973606499777006589060982141607658834087132018878595378015436574840447724697880400791433520841709570322592027147403131735550986813880484546818117343539574050570073287000649688147404833533277276858410715303159992563008642740412877136990370603766791903669324650645286052711772875873838516966365395529505631692503578552898931152552860870796777754988404816146555637345480226894895086649129324664586420093765856728941135690722992024947531889610154775380629220491004639809149689976312656744518692485099564925889437668691989826131311335657485031759397485605529985645925599103651493838824651205151222489604135747491437484089909122055212033335660355372098892132089637107770989775024944431104061169738862025550867307446426834901162043911987960860012726152862909299429040684835621172874376266729723613566186985684636250472204177720745355611096697953483094249595972028974978894667515223572705985338872642114555629860826026895100900876164854495015947709997811445950641238406110922194361906220267973274882238397047411062769059361768148498380709236726270483016647036691042662336737315289598202477790131714591470255394001407890457150270934140266979811935186189198216031595841726791785872044192764068451896947448977738097765826505964308279345925505454967088651857638545377346363684724506522987941814339588808319726792168944322850531681435348428531452868814521777183578239032174297102465535063608971802440160928133872980382392910971414536608023995957169505822979960766062777245164689971330903382264865608489634951583957102841563720630680245483825741002460032967500756633852995507834745789842797407078502658509738100144741899532047895595027498273733603130753450353182577511246738988356835919062951610616941024009592608038370666136459227575562227353685278050621044691833288464271508013892583441114416090460916075341177354816478396353376216894825919573496729771750182093222556868687289164624065028399743785919320575909554688565693814488180310710155509621039864348456471092168318433959557826978091671934151220986754223287121132871770945941528857239687840503457021801538270660497074974577799352995967988370186076614649944011828660954953959590236525196466775899470006961654508640312691852857703197551867161042966910893142588422805649660522397757566916822932355776923924876611582995516712966583157703573199861259334657008105025703763433448829002517807775275402246129175097532299177017169449314315784817887031765305100033874038668084459952499217801020871248542610484143120714886757554661393148714505364966395061836566926973190850777478721666985524855459455765170152386955610873971761869311993196144297046061314321988934573685341868513034117638779427713831127918344948808184083392962451649094412484384822558729234504269627982255137563026419961024108375342670496678439142185273139635969467806409159610659470006487883503290031612179201404657786459793714415121723988995528895665259556737464060537303336121111533191343511763773428914612570664566260062699115552166142032880934052538792848483056677400076237111432989220912182091230214349085987853300839509540573721233286833629911200300357661511460030002281084957230621237007474715094371156034383708847924504084863485310327830566409908190893915363693325274800376740166581150634406810246517676400305156361395509912503052303139048574683610563221615004403063979206630723957002641061671615768902269195794223111048462042377948211997973580118523343261942764041868557008681460966567541777366517720650604771064136474584489590582679866299560731322774650377487021031213488726372679696675112636714404177982352415974711175475124560552475510010750435817046456386153651369136207197388434384994817674372637504509556303225298885416949741276517809638761675081414337647603726992159864964306276026442868925729712574541067378422213964195395226314707516231518461885922386391963896143185894293761681114031870802127750209284431554082435280335649063889518914593217299088099385721110050634110855712262108733090893210504267065027608646459832825366008691236930208661796563973535841683255786220483264827267928132638410345528281046530122102860303400898695119119223052539052388785308996890668776372609897999143941541477444490595767412344913066442442992967671479640273522352026044197308073375796368761266864952585273947290239934114678600772052773366640281315674641604541050336337337697394014387253341986152898535958409854198026395081574630726324180587704830953653948069696276736800662386674151360667316872219095028102046634734529190784180336947852043306674136102862644965876745823637884134239539504106922860239067685394321852098309848321910359517490494819194278547019764120315800553860915995132005221697429928383175441181281389992760836893120469912896541944320516778815072386804880179895316192078140133211281555599318764757993666286905247071138454346702770860204703565643518849611743136142537739690410627995568029898614054952908980046395975931532912995937960157673843370645992386003341881611285443641526284067461826020061432656202814047137167669944500539181698795086337202398856511507753720917253653361404087140660788379098767333573148209589896386869203158994421995941477036302273312695992323443899170926723612593992912057803579957369372197219316971020500544890261104834054305208669284160470190737517410511405568400941385914164569644407585178935954226590456237468060727233889992517626538643311250428819633628894633513611094384927468810132305810066959628159252500497707540561008410451937242279719731772224269893127623629348343248324653609148656306482014393074165289631136987486959618422743775589248465407540529971133568291558733029933326563692214547173633068514771332903792138840009456270497516606313769557975189572656423249566248413633685657876156952281615841107450720886828025002718979837535433182900888950420109403544179877005374965073891498477156649006216907907867358113696323733980541103762669453656122071635606321760688677836468804423661121726456569495775356569440854033537554763769014025719765675484574016546963250459690550956817286810018422849398109216150925469357416442826285248883104019856824261997150825929335995389913876541999818115756719141435921035783030228702968502949395138852302085199645895535068952448813822183484269174138843202095718611695967655690435752671547623479111861648918291785173324898225940449825461949632367261421858346252043025193717797862351721262455423825791486416677957577615819053982717676706037578961180438742616170032030600249836473794306465531283571401539011964458046428007326916925187032709239710504986722274816316857793062412757009382694700697718702158962784961408298234666028000514515392582480873703364536886369056573630457685120155618131388510238637406399074654233412634320174095022499319434134128116986640250918995871613291374578675729225142191390059582540170254557691904375972251791978531685446003591514585983719420585157673042233641078436518916795052748270160175750481592080077058643295989520452389520854640990525328801824988031329059544539052760420084174873365534091323960209112650227260981731818134238417319640562028972243933888596522353978867383164335729656021390581921972414246119502763844548519662439422111076860120933134124785112467072876250327872401713296998304355365739444113836280180412978170937807272026219392316725156758976577268643642096240519056355785324862924686039478268198290139388777857784734955378838022702915610349199473584236079485604647233950217875767148187689731529766206393842148050137778714958070887990485530432235866276315304340106858205733281118510016927006738182129132692831927406227831524441225029340264517294086263164388003397869403957414190789777144230911240447945433073905985471121242157399311561830551551988588329044350422336684979283142527382230028498276266697314512786240141925799122594030582967551282935850151256977723920386323570504007643931480552916696792579302227768284492037238423242345304538771725050909457142056841933911446640346467223437995670220192122079821280836196846692411977571960835643943385453464799687606781087432744982707814577793930883301627813308629457509434388120012291282723160191274903342319417815906850228234598144122143194280952296246287889712146851643546930315912845804267775631137899568558215271185156468410584023094485734059956447793581188278623562498126328635664712825810474966343520497931060007858925215637672665161122836393057312734714312894712076720496904345478164048725246321190953169245179884389212272051653749391151960282393019920742664702295655095604241653033395340441859755219520995060948733649553366802259514712578741345958286489904611049411101946514643820318689803670340566152170421305810704731031404959388428119266269765265087498374527503088532987297224177607052742600978542689619043460468118541333605747144443006840532241754639124822258093345164081096751553837684115718258797788612554806453619800686912586796899224522094476089981626673300746003987333483137117661152135652550192814561277784617398704818440644809284290870656296965143351443893660741242023140026911505322380067342073271682833689091936755288910268199217296307077227469078158432094044019315508822888915089248799922108169643101019353037130325812362502696977768391960628981795718270884265525950987449062695930894981182467275256785379655432687526078612315273905645490921153895218438661205422350960450016697035656863417535225813303056234851930179037473392058356744548399336908956191220771396342036905510758938191742831612508192272985565228720237385131692415473600664312005790565252823420977714032758186242014708800480629542256081873339308206203659147261679774003710970888724633505038959500084473973291165921511050416557394952812865369880453600244356088608478102386230790188484928497752776893287415045967121013415588380394344592977781693059265538469815354953799115474538250741816803821611199316773448415675843635526020541003753513123828221156047447505275182306799761272667210383944968264838864110182898009897745035608608367512078769272312388818041965955208389434937053266333596222220150809493663963302980782730527644045177177397969549244397423577137766714340490103808663414863410208514548059550199351880499009775064752037324445412484240114983183939632718930739561051422157526485899863042797046478822901933188961835323664458303197944168543019363335622634117878948386213648335242065005832226248881889245177091113839295013151314099928521770468074471861578235209673852206490850854312846524579856348833898529713498509193773903465958543317858547075453578613074605116840667575699397086100779226373212842793115630132193116819708364919118991659989160335038513962560925232531776382980001690247374397373862970833568660152507416144944377875499743940406071597982134731093645512464407377261074664321658047738425415053892960590103233419907866367583349385860686023553084653624187793071191823157928017341938857651099819595427549569268043643730287120693668260142541434990698577739223887587959424143273989419710541061392127057713665315471468149835015822274663585883308369052522732639866068228427493957638384886030594762747524142937453460120936091118512922560020500122403521985182689565988478075354957808890498223060137591038969271316299879757788866732657444939430839549484635263095108284852098216142329242337779335848250343236448176123911133052060986090199683824427496719026664457152437797794887163133654075076376523078749047025731354409328409614195747961436999547903345049975165031132777165220019048717051698959541702421895303589226801606088825097442218943876710261793142644625943837208030803929700702257020690969392675698920934651508535426270097915857392148206327833746419489162453319018186613162030319759218300472917685145067608143868758422657386628969757028354898869064496218989586518293116050499150935395951991900226947776938842657293898310913928390719267593118843714572774238415411773478294548949526703484815812819629429171724180862422266469713682595739819491384994395562827289291307191385365909542042958954119624789060924942123682417201133495750824159074260272435635207324814227842319941627910603577508431593281104706214990183159389442284983753244881866143585411674469974419787248686281597242205931512479491190940729449527397485461032833325902465084264532524685981323812764269531206505786505036681400189033391472341068107972420567167096299426325703799886100280202375239493775977347245801553886693890974229484439396850586473590343820641398302783851974824256352616834587272439977190424666357650964490910731416916489925026197881143752911546256471226397887872441030061331166077771086850440203075374449285930960608160843922917270725924312234365891183397332525354500443896403861317104280191534442691760965560801297276102943648758649932720378230829558113640639368819539314476795326398162272398960444601543015905651182656492724482730884506901290164170323533015412057144019161879009386614328800133784957694892287174556977030813261061035207635484684407196371292268604677515891321773543293714478820098540090729891765764759326835572121410071796623594830455404201290492099920474286976046818190993351439031011563662794610732154977039468151171490345951886582274378669667876974645627476462731857392258547183221863080738415581925177724967523936432963473162172436904420188454964497431509882083969014695437854686620937963176269997350512233303099195863518149564252723836637309639548749759840292260830773155513355304413419529651903849141173950554794935389887276340517437024104067141845363023417892159181533585219375859537582325020177613972016603145818024379629634169435793872808118762905805393285652172714457970392579641089765267164621296163789253428305064830017792565016633428121837305865647896198106303029646968830027486849660847707700498733098388572193273851592337207955191621277507753564197623688815121004619083176916164259401882054315762497188761628509566016540838381352188025243563882079195310802764421399909943755483009039205457716995224528178245608076838974293532165590168616908230348481327189258597163403466230712913346735996059761297004733168911900473001245608324228856577601460724434573507990680341964663704970350326883027002658402903560518468061800279784865220253199960091630800814832267956357667283113098022376838710941862064765661173387089476013617791622244675707689510670643572748188245561941399804763075454735338267572585624868092229487557782541460144558322361583838539383883821354660918155304177537286628677072785918687865402991926613643567668579430329176363065019295609238588328792378231786231597197886552980907468941086200237954607632724829297367303913288483783875637516430322147824552301793595144148867262538565945491523155843725640043421853000922339738996566509353448883755064414403098902289486310313426407996593132161656593954181840606269258357873462999435991798484286314067219959404736091516727080462919308831890408859172319317079021179964908836044226349314362668898764574771626956529776298828278132070083891558403989321922109848881213464578988113075728732952877034915932199617526268503243396067008524610181913107832273361308932363415794176428133350541580812052096801854386178273615159328607948403681824357034983078443511049102635910877463044287705663735722278907265570493874198695943550183416198597109777397554472482574426027662964307064869863177557160510309849679490593495647627350149864349552106305703015671685038238250744809799788291389688364149424912125413469926167843419274113091107838809908015724199684810458206705196386254931391302093515952139022500732977520156781823117165157385220474016112227046045069060072799761138294424719610799523023386967863283376268147745086311086162892536611771662401419299534064106560312347799760845390112316523882976900257049063979161980950076732951444649955415274934093890394733903993747687289703982010115861833862433979681975295251849185798144401650257037259959754823648583429271327576077428622215508667774097173600905206314141898835214836851724164904049795698124505642686360779752497391356225864601269673649750613281210678054005641110340540603129338374395195577036244374295915165465625878667633911035573185869537086491367497260766415850415699662377015633899982176810153044164112924916907422695789441834710218327480255384764673359955051193248398921841394076336336253463139712865558545399535575396084215280349976433028253199160355506819530865728007511952256059585436770373457186375047658009269869966320727223211781279127408643054241667224307602389858076259814348900617642954223762918326525861201725048327748057042524263987920339008625734375824666577624055029883120211040380025186200184710302176446799425809088836639225255705523559582382430665576272704963796923723345741916103912994923686176055427004730291779662349127637168229667566275315534627055898133540101960019236540159858424908019907630153420242069219092594878072121299201104438967946894000009771411889895709343302612428052852135126050916067830786616929076287303677887513338206001886699169115345830140580162070732255961024098229211184121509948111646650782741622342145583816740199638392591807085985631870994482761086370180415247205534371595150543801353297801277204664330926030234099594629428635318240440717914708489874189713124642965086838459640608130261485086484941125759922377963712214622187942441333252086061507396641237729323117118587534261932296107269347386261370060385237394161230008104259162089299054860640961115090717251061979820682624658178709242442706793232188442502013780641951033396843721893197364733402945285969053972819170289984445078947464880168671054089600805825908116809012361434040519191913542124088468085975160167028252026144313626361432853809423894707368898643813365733552268581285094999750319123167698124984937248683112742669817308758341747500258726025366637105669458310335690485325259320742329921771756725004046504443106894469322910440110331318089119825795459563194676167130628158802309904925410437120737821193447423435857302289510461271569160620310264544583259675014114203245634459661439913133375370481556259807681400415975858840366823909126734223051793542735105823595897487372401632523199668017511409903327708864065608190107148335069345929494789171028314461999270020841357391171511358423758693274518908562286913069398604657681478263235181976681813195090285928224821493518824481901775178903951936841630282340102309445192197745462943570297683098202731860133246392500117602297906752956479896428278890173781943767685965723431896282847974116077641125868237251555079357865808069731003313652130846939782859246103462514942523019831992015568843184767629512993962537791930592217934323743522669355603969409681462337357130238471223263784961001457207436825116740499469389333510618135292750794663406490332291126454113096554975790435198570143995863066511682125633094632716516011280311739111386870114327991623010212859393847020073351946453541768474992987162746618837694399483578571880581158877730211368821896327545020788303978860776070830652904314340517782504138221558218032172297392720762835125783689922046632121576292120984358371547484153866363760523832924967625084217489877282454502687279037702555960585310441809836867900053234188627798236386410814976516781080994800758196763214399634862238060053789167675417704584109749252888874370483969064278719455092219193288652762045306317795870054658030546485301123646175907434088610562552880022607997872854547125135197679189758046817200465710492739366888554487141571911749702202454105381613632930572481836157864798458149489492580374113927736643329292018300914815538719577847616341023872599647028054188679254444198029936829924258842194559845522192126170252345643752027639796579411059727964441056095844046724794285756136365424361115434657160532721645542304170799393092259019011640626540847023726992694285152342752682492596928849337484149246807355270870164794651890842986678430591389689239482194306875635683494273452819255150589560720175953145930167501377974504135878729550709828503691795930095865188999153674503169326255754326832689354713226880386844591064896569966960221382505343638288650902031389753956057374311956530862511305543024101346585605682066907842974720812538924031039823036666274205998537367000118019713396884968643691385669888427535761098126703968985679486030831345520996743669084537701983025200930471836681384986895373454460157964627356248475761617662922608263887640419105855475487496343499536275285338452243885365199830650166653771285136329549294119852847412823351986577905375621641154852189564606818086735724846028920097036352920998826633274787110523281927540146976935628995553345914649186381332443117809054708790175623293200947893675179154427891395923254404850148009757730874029151822344541712937949531996855549770315264438188696904447710134403771770699023343889933524230959355019181738290980809609155577553686275642012252889681508323590095187273169480075892516056975663218740235851889262582007703074331486191262179263817677817334920912480352586758902166543173411863940754977536306029200133806650244357520573892652693289366918554038556896415640452765184104158892281518968477138043605007412637590476794071150865465895220491400989421347367033482715700044817325052250197866406475230433371569068737979992708073326068465572914784113634495839015844688271623781573055827518817535153136406763387692959196193652469618419535346870254645750370725244218811181220958584266593815323041750859653758410408661472138268731480872561224105985028299598530530444745558333503999862243744462991080173014166508826545953954593139217578567149903899390839062624678431196208835278016952932523831623273834673156131229965449329409551679567657016463680471973194653388621120449979686121161420865054474741233818026415105732160169675020783150889479782122450792231194440113349285180769126395276496026766135837634377711963296734543553924609566960242429410476199710092642653630734147762872105686380408381631725273110044529580518206725490679602514143291986219137052988321426821289889445511420716433506840295099733224216044953561616405975688922171412827729391111183305166514312527163678695212837962417563561894553199737076568937821224927565399530113298571497817801382251439045872002361813906640768939659512973571873136769930018981013862614404253354540564055048357723404430063158331233808657119612146493919166147477013708152961774426963492237129023610134247781201874852685501852935292496672033598846038215494143092363574749049962229613159421445807528779211592995448250157375952753959872557403217720537599144049035356322629994408390821980513666254033867259660520945504367114054472060848079838750391747259833330910089077276943703061198050800333175865563983799549548507667056548776238999851873149259458338818876826585455112149158284272984421541417969120316695532953811297622796893736557982497411657317090415772750344851456657113981854706594742463136567502271646760124751334646769134038089044106910461447922666305572947980774140884187113824606965415894639639630952615927393765374324251734986638925189337465298797284777534037153024619300233319224979011148451327824995746373980403512875453675659819700374647175538303986199907645229879550026260174683529069851941822348749940151822302031208455633237736059690938222923581420531236573006833324819562363827958032192574562804774596941438073105956862072050624567451025397263565269189656960925751315348101097770221975594284395541578376071496289616252153694703602049794338443273060801196815880812198135746688658249475412675746719969956093752750018924194329779224668984454351729000086260843632224858394678427808964656103961752005605674442685511420280324660560412815813318631135562661119965085451503885883343968330333214506020050831933881967709957282696602981759829585031969029643198819427035416844599288179566526022370524523654563018730595129898363467110224558638703742584397141514822411693561336918226626956766962098401438119634895847588063012140315465600128069782421025147080988084799455140744287824740771900683606592871522057282292141704024400633620355202066523479783281540724904784642183601054382673382192066923539795550311075846659169114202367762246513513835644557648638121867120401114761694512597133569601189073054917299267759827135544407863740494811931150592477214060529357919672436196859208060135729326449115823471233746327843187976752267524252638016284867257275389660802028512707043778927937723200103321381905799959805059439710676059483889705980336181504674632612227407284455037361221323642031228610735045533458664450599247897005061870278554072621752143052148157018714352071674345769032730528834315857974989459334015329138886448621439536785128880979616657309977429843123554476308994024620555096829285968154887615138139876171612661204799446809499962425748685144139862556412596225679905213049534074895549836575709914280630461040383352979141291341709300981382283864448159352887893377874841813080641995445713858745977571885979066360075200930077101440016912829884499683577998010949345908563848181931827346295115604215371105154093636755240606966067507226169833214423668098902895046233478536293363178180294508759074515298530346629714350342016336303754118753158374121739787441607695393672911080026649640727704102076429358986468261326668955805140983126832593926539649277327679701128390585457093296511696325234545833067007676871599695575620427429458069363987670328220231755159385557551155045603853419648241999760954039879590902131533251080536660782450161784891681274745587824686917236751433261124782646019344629567201390680259086618071377773248700142507438624545819009067394867707652325674240185899569715103245894116666524170625445739682531548843414283722422604773450020454694472084755225976816129990432536395381684245461276921601981005271969274510312974813405322929580463232202282365261216113519076411677815324450667087392776450761043973901692055815690003444901266341386030468131922623720792354744773090580158322111468854202084095797867390492794886580121966191988773021117700750012600258128045445843714364265369621220727036864503130308522076612463897787165960978652948744188793885067859548247221066399469804238792573161600549564413707956288309167439448121418030556451732475108392658187115410760086984204562260758969433645025300797796216550860432555601619746613385524753592139161724633795462483137922792825798828209917165546039545473060270777408108261820042290837026084400251780673611836304792827412764521598534622970017122445968239107090002635671524409134173816308875990217336419484108506667507006987720125094669223606859790067011553913943255418196767018813489905527645866920471244812479884141075758261449983509716349927661830634684458733182514422795138114684741325602315173868544668618073127081955843631655392832416596380237477031886928354604755999594861378878284694308424039133668435798911975910690454795850787991867900104733705130135693079617593486731129265872778183920354007354202302367670685660327972764555568377029168798443966472065300568492886275812095884002173181373808883176460077195578555146102069143212792174664170621204760995803204643440553027462257430206128567358146052685578606423685950070329410610861845334830748656059681826422483836617943336992498611213629544270231649228040037801111599565329632464932385573289605241111303589929255233755367978057734393315329353430577086949611999333728726327495424173662626172177703693426856040439786236861019279597560117825411343853638418784468516647406323739344745947320797802025771339470949555292577099839444016612933502865138246193133354964251302624049998101176484381414684354981114069998224139421486660214299964974856935324974399507476703137032616165659725600419006750305702106800750027895200485544414457132252373414769215626758041527754070166783047645376241772043916211475650439980710177817666971686090288348313898842479214397377041032083924885658669581148479337220027994664646116854051312764903936570327103668664478764101487465466329477408925165911003858818551728205968439461753982283948963910396914944503150398755341165337254553100625297833348167670809750617667995972408561770008090764186457417333418142817781409152621222050072079454042274141428857461565457589971566579480796423346409737808477641722352276900888059206400354973584945940651356791987692978477721959038735686818506104319330609103882251370192669082583468364082007884292418227095889512221003625493005707616404714279855988704406357812782614494163471254148136065004189004473254568374531055592946811580301454477126256964163932699427127804492156676752723578051822870447957785836500899937549392941013792331077437676187216900957190204527152885439681509342539333679934880668389667084371369513694689884436906693301002539575213336088782440318601505604462543363133989276176635613916153073166650847422210176947277810988321344896731604791806486579316399364984075938528456391032329670631220349885314535953565974686000650016112683473172816430113774369011272731417577858213749074569388568191719729034673971338905693578381312336982103273681598509027152677206502558944351286816815926413353738962750807944786235105006098180888939591844209179766564998217921892369068505121067785591434641339908511092484809746634896887524469874971037243488866013033238038764537244425724174241334864903357305953367314499457071170919017490863342399541084270793067547002905607544778423588696517901163968109346328939480888557723953837077299705429604016816247692662416909540226071974038710652372759221957238575649555362816048947438872915287393275477688916494428914311190112355676037659387245696625984748117138604683527641347102060932332634187988755968341122927536379626821341850911826738536556046958420240884510495921602078270082973026941893664211775202644869723092832575541360714099749072939520870434923315749834336186419415788389646932356982059717245949659516709697485598856102951810943245455322061402075773944467605171605765896960599296155621915118111025683516989908291216012137938022078719332403066042190402645116647477542653115775183368998923665554017057214985967466681393012542038572989684072506191950922924631466277669811991955647493089978814980911344816697444707456903007016520050300387835158412334557278820576688731922102493099947246954008663434459035956110058171585023686347077891299571076218362652433277388914323491847959898003737108118986425531639793811558555682505468398573779192255384221041996334162754807087706093031674531356945926262726102884339872672735581932109930771721017971624173308221047943059013633543702369667713833511963579703569874524830367662604987212807485862048877450117304921682557962347798685748477514512507200872067091710039068070723257106200186394914029056612641267523836699007158549062878124095039987627643077928061519148558588536131854353104338342724289504791958080494156423472358465230018974231964504166797322034401452472365610056414254141586144545017620860014338114390805703865512205912152884292615837009352147147012975876326962897622597702306204581052447435371936655253135291851818135935126248669686343332601610292910909431214938837423347084390383954894271309233443299839007962504311999177773112237723690434583162665473851337243953670495920213479948477500421801334048218264494628478636043090901449180317000455535027319307795956717243608011604956601183090745518501645239189603870597667283415437171836323324406278036162348348646202970333791702615867987774091965952910353779989225313330633383513506029132976976586999296624363664279685368092422565207203725087099854696573976041657677927716302833730681028821815319146531693953750899041058196839477178586657942357372606600424882776312789531062542377472498721652411300984225713352472399133578048718885912959491668314134823297509520405395223698329506744946035124318045901611370131813141298560191112931908958074589233785478082357860354606668968163964109199623290607956313471281379627358021828227376209632103245186270923921611479290871268988172758115244136441894091430612153888119923005294917500633381078270696387295065378715742968003011573587258878566680699364861145052838942847129755605705966588004007390599030973782760600536270907183078513105375215496845508801922537679975629373332491315195330963575982214028007842074469683761948006546607925246136832851478168865873229154662037490709090849253763011095452710578633220546774965858608245022511401270727513195967654791341130039459353499076976779960103353881430774966087736564084218754781144455912379761552607910076447051975475658326449015107428852401060519235822622636077100423387606679585811572388857790453820751848683704310970564568909431066539867673147767956822812986096651900576056252949186096326994677079412734759489970096442861928406868397762690747952181532088621842385182827698818960005586534206024175647281689580124730780115285121444686640316451004377237011935014033097913976352332379576216702568083390454898564704423203798662422061613009742016140978275483086245243327488831428158105191711922246177060940380248666036161800142207234768254350814606241144592894618610546646004229446584923362814060527529924477062825350781875639958578523715703434824824443425718640791987194145950446525158351443674934529365551812179417583450443081362017099292623786512596147514925777488500781578810003904290809620997634487138857002890480734694754048273188232157609892032711134171278135877211033224915416645507369594028130384177095389093398243806826320744149404792814366312025697871954388608994676497310137395771757193448844350548888903438135373525881276141446983980597744681769605122749368289183273386786225424462367187103009954130802206340850733808045281000146675790525577698270606275299812910462796019253381056595531210152970913419531930396836227355346756038123189562281497643054235913889005768461035290008489943744829781582355615071715004815216712581241142691410454875265343394593670415812808729342652172392411596116238283008815117701445094530622482736408727556968259176461385568787363105588146000468204590391703997870940785828848635551202731622875080549214093664336723080043586593073262384500990536929111252600313591043608790085801065349411486829427643859358728712031349303428261574337149100006729992495529107009284109401231054354425770006489660635859062219306346842535723821084184422574948563977594650276819613335123032852833829779030068449705109681208818647723352357775132250698386553000056898663558834484178215155348374766443521985480816530469047669511408177273462517689807220833868094604589110598970481812051888223363529316481045345441166991217974966820552283134148569930152548840130185252657101642926959117879464031291835967201840794556034284816103017200854203316103814552801972628676136431627269976612104019386255531655668906236901116867320225304360272609281825128132287435172325541692750089570652168909981186123636507102599888077012479394379851698067486961695917917556288868962405861681967386184439196938136672844698712067122013660077957341835984720635141992818799501187449402880373593515278317909959959788933241724816974044787144978528931321565997551913465521755046286193394931772265211669127514914705898784623772643478824641625597978438964360590117165286169460093958509536195040298440488449993751694614166415522923258192951135463903261593982963708647242299627444701238384911790252307873096295197517443270017556700242494028840891248025629325257488400846394551086290209931044379416328001020011329545125022246886802735986707736418533500218201040276483826410519663828426657265256212522883666084062795186688244955873769842824001869950271317386015398785680963812773664297402438261113758209748468165685753287291310880751031151350810492261437460324399960007574253383709975901771542300068796469779150274645743739359326292115204211966618422121416888793627411297291850688920125296209748425394653562799400920569287714412794201869840909888122990503190865439422224818410787875858434086116481454306612709841043566002535206179530435496201732361942516563194345234310971464467048550038750712408456731269811012832068731764388140141814318343252113057667141560870738044470126594424993824312415211236092644257595439399496564444461893066714602277636563820359006777037047842015751045099220181924569469183731024400037445240757076620792559513834141908393989640884071478383655859778165393365195462705488401189858206822838129786615157309351364395372213278059841722418467083673184344266968955378609740066952509680691727679396063216774021442053570810025787766337896224635176361458566151971028943681979828864274217750238322786432982409623230490684286323016192014682463836065524355366643225924740997459381762740846217824523892476729550396861359189658977927578146598491212800060112110076780137055123700047547122268994322375082857568804372136991281808205050092044344538394865187546300531856105690336272799948160817191947478949010232099416751318472985494580665607218701800547605099953506969919611524420258231037465729131240279133740114080209435973989520689055901146601066785644087311070847714993483671314765896569444575742370775312729932938925575661552346654765649131835128448546360806303472964480968669260918488354897234902165024423931428919006262837567234180618309836155389155700876695577937014499378197933497808695451009190696206232122038880472905551974874362655401126829890398170441223351348570728483027855620978210317031751111244639094615673102267226752916949713860303326385718520676415042815076180854329108065293541303731600452299891212536330293764264804538905177015665627023352123459945854283183326428309857460202143357622707525195884689465733248346542879675921271506137167241841532122949547258528304705877587251855039144521790093249132451177501580354950544911217811990049693331036655532805554934591858426207813466955105193489728190256786171888450095055331564375944710970071713561182064724083555692388332136888808777897021846432288815195599853325323280466103419797218048980897754115519965509482119614544688084915320687546165375395132287742666864295073106817225875411494393023134943455368503056844836526047477763454422353734761952504039831984764669108516503036892278394321888832079643396272684630031524282814885920833933554870613275482676020217963028116456144270967062394164326694405087339727960252442053459925751204270548699615016588721544772729952800410690594628438947933568418399699746453324242853506416778676460245973362489795595150465053832463921741494218056487158944948339301724052583849922884724496085218155263821103406360330485380967045676000519985579969512978589151043368215229457604141146103478675366110529091654263896653384403094934042541363618776878247218446318296067057309720536883704998033919839046422855185653840883271569381865818572150986629329261699109708411976838035437155548708429910349348166375038598492988806809917866891437426812875709697854326636353486353132598915524824292825441146420532846380790090031447321768591396129247581988934922519658722938969833262938791039298832065834846775791713105069709306271331690232418346537417152462162688553218581565287217713266474998578095713912831819751976125444494457008829442818413983410282299515661997808150902491055561572829363844784911742581263457210264704969365921494211424331213332738000810454366555024397624790778849792053720102416396760162797957612249305442037655045917632786608123559244999621525640635572849853180651482764843271965636258396280997940989303930467958668171023523284029165389762731774137405354451015676195980878023485444650035177591761562325050800871761599581644038508587425489604437938810571407228571578738209515972404208941169197777923404868544108564038843376160836060629819256066463322797495265899284845448048939320154586240776077324644195202923476098468910821564130978921236528967887947515109940126198771234011010277335860316109687257162615639281858955453777732318848426037459768062662185680091008953635517968580359165808511222047412117347879592144223500920524602237974724644648534607462623541439786328455216744123555669769367730486509985199886382313968851986898825226019693356881135363961851209752171723345793408355926922339405722994263629683385690145513407968882904413184047566341723375275818445954274492719940284073430484374312209757462574759317742012399348959559454406935846927909878959691763774883561190840544100994455083790603641125637163758894217196941094671799968027340039216720190739167609394644245802547474994488547646089170223039103851779495612461996756047153829637844840375327263353012953398311274140008007661819125086540605751878838894472137336796199838065902180650453880292411468671753881277096357756436274860592346032206524769891918368864196362516334509209749961228459590897496086177521839497596913277460677690949108285022040623837587567681913789127900937031027568767681758122571600803980101964217300963528613154130066788427889448400820560511505782434664355394666817521333562621525385040898880419523903324724089136051734918555337099878658894084261869964643759146693085223507038485515916360789206067127606796221834253579807729189831504915564302315921412915825082865255466877397488004383412244299099611934698206168095476083526514473987474953798817266439913467586624593481691578886667877602413556635907572230630652220405045990280051521949901601427698452074497271769448781737814490470065982599929431450000863983082861122206764034371817342444254678076353329933344565146329255917369209301044344925842033266324974253652377939273423262305470837297172155440819324855630339373892147279032576102683926554298362956037489106156360699177494220215536382128723156837572490034026237971011070607036521819041019013490967245370542417842861310750968490902446292316783413380452804605114513766245196529301627295881042078601436857104693636302284260992958068209943653945155584090784119998608639878432629455294418215942821740789889276493520663393914028474785527103474053545558516993734135318568502117902978091450284094522891637088177227645094415679421690108564961548164554943065477012223915829408837734382639353287080886993926412997973290248968333031476847720851286064257406446333477337073748318778685633344694500797432974205210716032221563452339518765357493326403294084092722123455428249483078860583456291283670831485147698394545024987023304700557710456647486811052773335569354514196942666042478702636655232919799089330634979750662472328873724171886313395003936363647265212215656349131350401062305881220457896211233329441427524355718018795678426666982575002567784447587969457426800771899146680486580558770945088484201532494681551448504138271827631190163182053401552874623041063852174957335693446046905181506101776485493194912691741353578278834399973916366127240407973881604685605190047931735693798028570348729243607518758284668806574057700123554815031473012678561835327560917574391906834702078569606803552446990438145988741811165951435314517564141946905328801855031983858297297716408475883519751312522990530846909309430186904902037366005165497543761541393866433449088073950710793666580179796256262575425719541840239013814701379084550979294335896744329346448124782428245993424188076415806632678001593823040901052528297477730820814950761646626542882408240657753390252402451311562633583631909824429791351942263066038533202907712275338960057207352269663104473014136599041384124809643427380030863251932997905021748036002254163408654228192232676666067536304173793578877669004761585365451356771911740451338138856925594131814536897428601818459831847443873991018893576505514890308750314876471004028767717131170914548799849586358083597681553752916964812452114890428698781816400540128081267258562787662993211861609452833683027319691955106097681536669656082962797288481960635462483883004371073731037943373188956238847464140321933547251496236244026675831346224657661667595981221564151588272428345560462327913372715907887085659251711126400983684505177966623257786734425053494787457396057272273886997394374710746275466262097432819729177401937721313257322195750646282042383701210558192885922986142615347732480078976953353876429103292911362196733609725056562146535573305437952013773903444041320510392278978997932155398486030101170895057693403771401627541752039747854248299200032870142042316121738061416574313228463192828150536054940586452406153140867255742101344938143150811391616555605166078087611883816884536398582172159590924692711483526843454707442254503008567705096646288903919468023194324682097002084707784540826578670397026750677808509888640917235920130251048755640332012825369912373992749539067148714097889115165233023088278735718178293276526917742926984094491357731299898437871026173080872064570991761910071830310848476619414072354408208130593641971498592448595796024100187405095620109494811847244895769760653712246409343980954387592975081772068489886412092293022266715768348146166957260207511591042538380945435356968753093263398505538357876595224420372275799633459294290991582415379198818440273574688028117464078741900408405371091366340629814203935838023921029241664894997539048272089901546992630227037005959879956413707696302375962947632864479192993234223301996367042168829323211352409766266918301660554686550704721505788926789968246712576351856726492185201746528016803116373767774666123279165532333805545589888543121368380593338437496567761699441829840616873746594224107810313875095740255483696945570884024726688327282376889530889796576682201496535235695821181610914936068797064576700788223703199412610842854670394101377167087775278223456080048676362214049939858646195940073945234930105579749339383904318816079534707452902185889175952506129381654447426427433032489250620725393684091682218219391268259872649245146035295253729225744033533536433464944969919708170933156301420210537528179488543458900399220485623880933447678725771307688246787941556711955302557993224582908290595180588941372953749759972857600542525148011158005299092283583341120993086991913763860724321373833824229562027146314227850142795356696412722870205620028562229297054880267858043864776774258454002498426574978547412864825103801195874242370578886548427865984386769898804538378249702479053692433104485651238084005820470184973847448475231611440869935802908183694240994427572805468751294872132984929029179582309463799890302565781762849404781169493224421432966890361363059221555115122927790312554274119555250250202583343305895584113013623832575052330993734214449552233730920590119134340581390615127301828518488846612539557534689440211570447698248477307561498068944346857461622115251773046941477630087113735058196545065488980082592878559505340740166541133056925190940790749267053786106401969224497639398033184452855640294955497743074567541203151947911527163874722614842781558442720103203226362815884146718132961274216984884289373879428843584047880847438440005687077677897362999780354466748349166832150439775252728313768097785051930735919754022654962822654942817300085604368559712131927066841330618869003692005143017086764400885509860700377873410466148824559610532315962002700649130036681795910103070011963950446187778698850444394782600061049151456089170751876805959457579361525162860024233151462777645886505284504669666243295064296667108573604171991383387131706249330085018470084096608127369777809255522400027846839009813236675667565142219429186813947808098985978452639309523859150063764988255173311565396756273196156935942697705264828608776891766537548259226729185502848180826887429131425152063433864587324516492076007235485119362129917357304048583325667818431235946476183489590796038741358766692064506474465607782882760785699197354140991082866830832958610587185808168568167526534205638470321086028898394977506906753106041845066852444403809022217414624092373761400635832334708928668520103588673762450685040349729893013883039493959431102765415560797211347032447043888637507605523919569919572789163143492136456889487363070171358234284406210102352509549262790919993615103612997251068494522492857034616310494925736266133045160176619418910765692425852351592145363138612714325909403794154482594575348830981019519931569215724378898394657770664102325881161333307971822314084345488135025940730313651116369853483869726179670808114191703915036399112623775155216935448870065542751909177258987312076250212806786033039477432700763922418112373364822031199863625659265268889275402485402879815851917632758632062952275336279581026527627167963820463760688103138796628002715998991778847271241329726586093233317937512718908588256982157094734095222079324964369588218956182990323236285086849042846505242037069210860905286458546379212147575195092751413302897635078369159933660840696788853075706667324398527800119414598214579885273858216102105418882994728753576046301994623772911246326952596694564519500270271184466171064672656609229010847744324403743088299448219012862954464957226178928804246316263015842842248175908583018968544348050542307062698966818378856154762680462396676702606256578584653584669845258110448772624759981055963391489957590805083676548672123965486635898442714576493464700422071734892082330706418168602065370215393148322743550694354891669395560311085205012652242596372148504682549109475262624601466434441030750435788447122350421856570972746348346110021765634999052705687469434605582293843307860444899165801067961442959630497452006991259307937057362703240830490601883037166160865063507592872904422907651922484869722910949110995406736797424459985612573776990781736287227977633402232102586076757001812732054623540557009561255634885335544109999574930327660170029410559008890791410657869936723515873881779614911464200410970113157507347927821129302875824247678566200515840295030645290832817447529844602487566960269125010593199818626088057616923857849385389053832309987044325370801598851139966162712550503083087143943985367896909917746546956588556031524277007700411600704125904285388202771196821390268830860381681041269397888683930934432059877014355029824624017252564266403837411874945828836261361688452202207679574364832140139272213057815760172642658106359888351515435098866283285997364525908402163468085927188885820925374338475043498691984177788469944946729433649295041463541717615244533178019349234721136953953284400100178864801754764502815878673482255989238440675728700272155020067328424101939569796064826701168304765984642242557650949625777158140411609034529246191230316826693225795538968171444807130720855077729582006391234530878681324232388088963080037448627004103881032045538702059955667692869308005445640430868003948731669566302850956556485204120951199302516862174465951924725947775547085830393857523220165490610341343895300417638280271379191316566217914647309849312445711962071302512739383160035925542147195832738536000076504034203357671715146844049590765372012377538184218979492603443053818314315329178331207269555269803296218875501604257510436497912499883718777864099709862641831807852051329935080510253316139419953676016234499516188216383735589644719135510692652048386511328632392278226069358125231677580786839568508969549047572880789597581287260686621870718468197841921982997983568762791248923493092446733087326313107125142442987417659568822357706786648814394216708141212784061774110061559312496605401700262850184901035146321553602978585945752637999118763820289394393146842804384433676653451798029826189401444301175791650957548253263837542302233066758367864374752033749676620504932781175224156522580586861819537093925228644486577476464663653149511047718879711471641527366971039736720101602275450893339733371897406593978469730525049725403560826741782390279394393480043625085841583623912671264314310228056783999527673771250442909335474743942062177127105151930765294525500856884605081797798986378405890840594468337029418600679397933844356541544352156443485268886828057951860731269629334618162393601122292462315395246936080870451499181205124323146130558874210519558391274843481506897978364304811384900485485104984173834578973379458053314898408170750574688009561310550402686876293590603614740307374035786816821424460744026827523687297920625552180378785609895806819404570011175477825069396233896016272233901554585839222316281229161552374982184383338835978532132079088919293643809651018707530250194412643366956441175873640050807997498125089235953809455284995528004509469407487660660802028249101866337962596925021572281147695924078371950091408959090495359189702448063072101101395034554421221470063719837783910010422494115204180489079016647531057010919189851100709195883313759913995164927388300111443736742345067234653455511606557495401121662745794223897048449473259435294883152974621318016905015128879625523078688015540613258691807012007048305589737717667781580132661399963722380183419065035017064159450178607923229703671682442934610281414087908546658062209821810636220994939185092771882997902221289771862894700730556697310550928392530757465326155973592370423402750323550998031427094284771365964041402312541752368814731844720401342082467211568051865333523297763340393638089771472519095162180204382950797494386899558342414647335226933388758079060444018617120669081031503980533962318715326272420773909541931656143906253712474933907111718457114347029108770855527260591491448670059188951561607711601001367968339948406662945788373615820964933826593728529437332629813086799404902423069733964243654563494588735161171728662167776015135940711101846279270168940789277652097789270502920845763682377927485737375582925766581608900005361142437081189885229965550429549447556580084362858690452620035479864950838582025748566348406643522267264957641198249842805510160066099733838678044046455955682353897814404127210793757257604655272052973300196333144476212953670270993358541634730891383982640579954030334242528463526970258587270411470541292476358080549895452566998719268727001500333468696006953000575493546085879318141799468975085625689667880563643447519091554474211465873814136899529199652742788396913345469147897090270027535690678822069762032691479563755223548758811687395675801607774354193904288254700213191729616478305566438957788453396862174618430486647523272614593991110799182312820546964957532556183941645801307134305536195779982742226055974734173860136675175244283928708661324585883065276938552792208444963864515173733373095215273291311419795875182967629007539265703683933112377634288433947035948855610851265942437722339429407584685953331155873021184741563190922390031522869022603404507847622895101043324187939578820044426021640808776188255648815488569315891269279158402563792640429543280067044498956586006596246086433803535813100824573981566922163571649156943834821581602619400367489859382659731337884835258268477098753588857098659603655503270024016026281671525256159885848276028486604093007906696472551330700907912475988897179302807791776582441804027581596341991592558173571898165756837983959833550370534608356374314843901321707388397483286328022234775568628890334771220521288214111839145735005516689106161776283741398784418632159540521290736729042487570390523725045236766732778087049109754894439840761998003349979967406901961778449743725083274495928536504261561116638421172749939069418356258225924017808833070810420750305212301878469544729755906867418630666832201612666475725304987327545810161019768070626666468943590296658130735865442939874647344385369521370528547477469476840349801595248446466880088967113777494417198588116183329791930693785743244243916974830989751702792861351538154800135564295276785175047781472374210953901663622531503026059921355842475127352121898938690561375299047275879598101446480073637184606060829331074994886452532988293431345721686133207569601806000777570641668980111628679457434500801657217811824708659152071556758576131756976402158395280383989349180732784393802347843702652548048298180320324993864070174209888905365873477658027594227815480618895910809733175016029355313236057777357510110831681292350244234799280957260483575874551723799119856656536511543311838470069790455108165527318560989414610576829871985042904961536441538709405579430853160426434513646057649000686988555591438489410497596568734765216926540903455026459778070204410024845076269963877641927006065862496364937758967531463732417673039888075323420260274514972516074014348416539042843351554626261053325630176164959720627356504900709983267043809278792636072488591491950728989847351636650373860381038801688240069541471070493464651859500301300976381954252680893483163096425220769389677216582719142678936768360404253039093340917159916639421614486110326319386050216604482302873779143297303414497823096063438799571716951543585840183746432872553404936401494850680768863851982977035690344269846349624500092911408869761335160347679596115584783644920157068892614189644814508484126040894618844200291333401185952722044866823922917519426898310141572839780298440429982075142771881484373995446318148006202359417879146269863468165022486188483581062712469800535178923473247878822510727141834317653922318445220006632432940233965647871004157799042720140306306778991788542745139354641608242805170292509843272942198058932906161145214693818840034002777639550641976419864436676254424502501920177063844418322107064681064978549080825187399325906419159390238758816582297052960122756519684479756414747155716293261330679199273486196247418508516523911359696529269831074906687370883918630910135199309885838337885627051138770449771334673379996278220613618426431041021818459543797415692801626989315270116684629625820688932464987495858541783003060378141567762315315746745790542889666523494612257949276824682568386647090132227924375029798070344362382501436757303691334646410728447105886795226341755531652989714122469542292583058491732100009187804999584399028320467547293892772754260367374234935121717939961562220372419627234004316438896372041887427796638927917511232345500428238942660115986976238116848228734602910908636902207153388533875332663099978187903133169818201443233786688062661205521604154237043583759844228696602080369580582683299095677483956005732459101363227250053495950287290628099287241240191688959966686310913492519217081762741837459032578682416528023076048889836499578681601439383676772397240581133497614482982172412969457506893483823193971939683725869857833307042995068368155499780855064363421438150312229985490596015214326150587708558446882095411270242957739105490778529913178016395618187995723475254690274580650663607718181340455319256330436574312344963272080295441214877377110893046169760357314298497014138657532589253932763116771255705058383274639601746784128283579650687596959950918820341998474408884210667959226040130443099698259507016249384337969470501068384463984243878006974559557054171093580087342235796388471539722813449528237072866735921665177596685338442354957539135946699579805195156882871937637903195202265591514911406697174543337935524588995778116199886380123148590191209577424965486967835566990119718453687657029947048897608148164115361069159519702194161497466292007152416620306461066778018658243314979268252699070540596635427242660706892838767618325064152267925866759017574905358035666830500459108070558367741049806501746577072899356531894105404805956344941480341957354145891920285059525351145726286336020899807201989263066788106443791796337483587270255161571028658985902484339429650342225084443377519445017306843264531358803920198837213049500753875881642957546207945706669998182340830389018692644052336456108905934329580071076742904152826256586758730002118641062727059090071466576403261135888910449249115070677475480969071757749682656708301819730032892629557029127237886322886705820084206035671587158540774522942096583144263122393047885781325613005788261025643017505036640498603229208435225196259279458837614558312526617003276427645522700991219779997920167010482026459176960915246968699788795334283594674750413200502116107226072599031379498480332221488179422548103905730922687942445985004968892980018815011307368757972765877199461461428605273881670655690916527167240529897192381604566564794997593548508192936870606483740513749697485904702860756868186190577942549694746966504613822388345632749072871117631810916410104907235467811664846854390687383196069915610930325150824718957672860815275435070918359017973199294923898494530894410543211486088378021626337391956638386474019179164996949490319169091044088995907677112125050861409696702092437436971810898666890480422632481542884320497019408162500582288622895436960791424293274953610366336450733936888553964835300548038674803602308584588741067873513564350861531431543688882763930616994452409301237791784846033530922366780781179037379154829355184282282070301420050475956411765658623971341159532358727370328328425164667591059588331740194969980665541163460486916613724950808483237364920206363234290923448091776696591488094539560228577021413975417124373553000535386490847395666685911794210563883004850508000369637226947626143995136786390164102562306825581359817289326962933166063190585256937149736937428751380053058216650875537938267958339475532024728889035984767239739433695761865731221006897251201832405409035257156375889918204200340514957521820119197142349300580415656181447043799223884066657597498884931361836710615640687267050071004182753872730333040905091383743462220518289571246146611074495047477570879828679748699134583853226764086895967243788113041484961212183093496204121492254134496458974163785718768274383913425806268135025556112989084022643209518740225004291876512527053349438216291691218805352223851352290644283814670597486972469164928153331040416940380359479455616526120325367966954961081315162345278924138751281936089321533529549095804426889358541422450541456198973960784898999724311097101674159621992393989471571411657643551207847766410355300161065786220804603955144310618980249359029514825414163627990807220316543293664363924519169671128588889477791572272926809178597239176112486354420582217952964052328502281812738734767594551300305029949069054675882209773170954303411028333873991402811850167524087889775462842292795503988645236315242018539676808221447833541145462715980209564314830790709014477062100335585516709290929210091683818895071655793030552060343292842279356086658139653702443638552313890307997461514349221206911816178671753507505279323327914465432330838031227825203923691397502120391615464506504486787618651985180142456296866994727247860993074088850543891540947039039255070854357908245858317795554744738466801222552547403453267447487645450863880471602488936209735557959375969962040247810758874879434415173713645006816685126207530279138454974069176722757728141159700872386604471365628776724622747675930284563863208097098077203725192732669386522129624357400094342356544506875443529821205203081326344185129969942202923970962495523102901548499118725535778292729187619915741324516502947604425488604889223988747402245958338835664413777454685210114220881546693233581526345898170559701856057281947044749733160019889621340256618550875605279552863525149875947877336420883858580230026921733695828374235605026051574933198865143155803828161296956057957856237808182997412061419394481154039325560033474700507564964682994027003606917992420605738805453278634867161971310758460261443444088541662808436154608328645286269914647768508320963265557191902050123028815373829788056058467414495694040059989489020010684696445170443527401015732542924618039613398253099751969798156180278419159646600918680746380463899424040649993152867060262141226805825355319685196127656891869288371372851378218003111014852470358674314069001383754677868122153357284694109024274248761968322251493339254172680457962471850020955866066305345900529559121681514335799328855246177778809386855190429266633634160403478638656838776805324383255031576036000082080916693230599834488805943491661276372886686066079554051792936157800260638012060474684357680797799753677286506405243716543690581732914151200065224325315403099652912707532491192243689544163078394089453525206006712841225565409841592937357445619365395685794157837351020544252120715469981905795412157125989614448622865504144445622831126031815623256088899792310229705766833822432784506624843839323108987503547095873211603990398617841812343493219926731723423908935101297713271888175055372821689934226153989051479724754731743790152255225791816801641623846584871672105826529427888537486134985035037326861718392860887076388619869294370106659073790763059338649931577591729681852093848313880993389381147271132999008765257547106766257511400547267959346069681671563891038452178643580697220033208547379890706407220884698597985814176664502819134895788145875931793000370015886454264854758976353083987100007147879009488850878119574500627541331477687012579087922163841408087442174560867920886762481017905591045727184596867133585541077955649003609987566484203569202748831350019253943389346053391241836277394850741003221987354805819575586181538560151605697917162582486310900870799438727212426936599242554473076598111188780739175487700622068610240531469517608752185410677753371133889017289208013441038690427311595477757865892827578351162302845627727962916543931898263619186462203816519887064227507285547740428291440919383916710856531603950733512897276515418013299014419458506871539073345168245323407192578133533276853610157954640522993066995949235672560623830422386768814928608583344304769909162583106631165372822707143596400431174859052818316879627005249729483878131637856775945840743888294578021234327089272761891593113028473393879013706660668260491562730691586813659712677306473061193495443855444023526360812364774275813516188646128598083042267572835285116904080225117801783929496709798213947684285512648555002826660755958063592255549426146115640164517051531763343960366748941221283779719879688817040423045308353182886998010692557275248027563698864386743656411341789351129372418208271728660309475839419642803223378360024047888117601920127275521822414441698873066730595048752200848112197331967495463048522406787570938967748061361260972782482196223013746229530128008480856672621805517484833777267785005684005233248747063125727013584778027727102054493971703689386398460877904955242065892766295353411313847780356646437408294246359401578320031886332340424520983520537576508226680243429006737376757620141353356405849116550719974874010838006067228045175538971518569330405190846488696673552017792482987024902930531632876064459499309668474562678915387156599589340080157564232862403804231777653853281439778958628141768420125808316791277599631368184253055281815038555301350379484009688654793267957726191431966912276135436703957305105367283839125193043077117513697891415121993474324141189749560094548776276530383155122481776509335512664799674057190029774906993042609040959532104840905886206905788628530850523526218443209275919405029814330464958849627296974501605013323054322882209092404967148104182459518672558764388024179405067336326901697719229340999015665298537724579552230915266174208520178608867847831829862556876511750643046871829770955848364445614276117066839406242842375666216320539676272676539784255048261260577209397878251043439176057472341408861842878240654497855407685523540018348377199759485606867617202857400725346648340571345064640687946797141962210228404379252340573323343893223632360926998688340563040710312177070242467187371357655517314099553191629298731985258357003619770565167169794338001511043193228712182561157736494086608762001492640236362802408565860625225287770003038407135787945330810152168870772267973837591853617030504920058122229645839835489540886250251460228040133954560916164595602179212053923773231412960546957104245301387144369367476364191848684259851712869456449519892485736773487824909646903948691710082043186883530869572079990226480871220726998231364843900974392582727160925386864332610020989424730172926138684155948648771755669900116249055369312799100285590213634574585830338133168396250680114185633576685392448901216340453627954743220607105791850889945961683673214683966543879726188024056263078512676618062301082589282475331230907193826466813742819068468148507182732975726265129888458927946991568647527736022350474999893554533954031747370146774195874928096264777951816614887078289148377306050026276408000093611225980358788238410666397695714930777381153198221429715411098323955011004400390735711924324178008652345737995406790937318718635839060287044909724138406083513640547153208446466529088460301441266611849265658257730295019155809415249360700102280216113519492064579487820105610539726380550547079987683611094029357469745824334324998519470048223244615410543415091259299295149531593582070595586108967785598148726927920619672896054562410724657646543672550642815805789227912565607356565981733985347828206721685817417551543179198314260263938299927934787734572619422446994948333582490314695330328619498697813154467928374796993682039355306689939208362384499293087792611042620813169125348333191352912343187782245339761603646372427541722156006332223529922734536815954491837073836077176754488895136404645218306024115616046329599066844914681102632497596194551930269079342569276777548689924713110993386178138990774389876373669364955519416551754843732012189220282755068123142044936343244610610644994387501314236882632596516270919699073945860714245336211088122493501303527532062725826455688545477986743629329627072044558340341308098115215664453019283356637454953576819314079939592355467597925483942753494541253489149329999793476743900822640386831667925551742238902092940068241080443940252139285578118724494856113899330846860946000722088953195649302888007701082848760623080508414093288621550136941648659514856505197713957625442395752352256148390478591057221443068218318750466688236400883380258017072940166110450163084445699557063870373830216213965337675977174465346507954062100697940199392168263740952143848118816319022244890063746590932755650198508017692652429137786109874331971016651061129369486912313517747065704609150540125230905469794173775980860510058551625431598651676657982825197427250817014707080010313058526874671183602802210837551808530282490662135298394023988989139763385938422602456944375174652640956404964530958855419894495063905405249273498466805039933111281618594337504130010664496762667970169893438416283336261033142923219270932179320506501559662529934569602202715023578316160885493352099064815507744659170705713251440036583269229483085850939431009787431926396211127423611426084357757081934832302821263606640988916434799712873780475431725647896552564720203698472318094955316967099721548590691286167709818604667411272181477150387886371926382952631572082077545554759715432372755053926888467792721614416127845013962208684816084575086752786915813728623012836752131823183818699900683387365072398070995311062857699969563355583205749284605526488503191913070547866902641040736077240642783496143559694558528543965829970299371623166510613216456650083600135131954119292766869250094138984026904116065220370475362500508199610054514882707522736941216483840028289405934270270757534668971136403329644268447924273425744670365259260737748459361783398734024076378911574523230013366674729082509924887215608254405043045112227732303295797688845419808363475929102415778966403906717831136176176432335329394193617266855372835463959826607106878431319444587117760096336627509605900004079773081571265626341257776358218089410071026234822379616227524940100990169103359865641599142009145712445676881077299423319161020217619891071496629543351638108149927674925907888642597222124006538727565793330735978199864126262093360182141598476151364121717681960247181939183780955395501718431628975389153342088015808154069963361066442326173697161358040995042189560067751162521495660984123240300100681846164581626872071884677689029635249585945228080599388808212582392663001948307693007103860373250484237236569354440140246813986556825622771047631179872766243381790205913663177436158310680148836879145750117775851126977306796690115068765497804273334688406609102004385161097049248341430737668604141872826503631308535239920157839087965151805600976388963855445638532774427566325663194407503342538973594698146441148702518855850552261146370079537634555416782902275960486695721416788468209604792230872618000277114628477136206392206045378094259394916585035133603222460971577400270865765810019789604114211010140606415946070027725424265278346568724337467761652044090459365358425986250685108363717030278055862047772075890369327369122656202196307456518789470583021772051856481792980463318116406863871411421577234185200060137508603899744594712234084155178597021599845660917185968642235560786076678263457650589467403957327750937714443917784731156991216351097230909621465452154765918248327552117089593627154990777201064762062365627649666131950568890026459822243396283026418861492300399988205797302386406736834051942623549201391122857412055834417975711405842119703334244736082187605704666673705605861825968184687726188375799509031123532075716849444149175084218046985102433471821536141574291173621796452744563161165525587718153238110144958140653846408422891206946497790632916541091955118193011443854306201271132932182835100099609232346469359871769858192824455330984889559116340058739114162137993928203185875115540358352661259323640433189063736029670565313568723326211837770540858944166696336306895449433457323169809022012008807499301197230791523537372742301718357995586546060196589416099597198830325757324729336941146781976566323391689318822821163482975459284460742131890041659324854510184046682048185457624060604213648176235587789221498275009321395574507032418279057740187788382212712732646761310398808036971491669689398800428875652251991954918895837188514554080121654549269539707200729847130946494242495500887000243576268152479319808562836337120312358652825029412297978910544388341579515141116263913445949614349287320815017525104940881125965847484981210828144789596416269283314147775270714973900246499559370469825221367375266343841950403614243294175477770340249878057951264752905730599849321294758510895765040353794033553686212031688508138616096631266646510473409885193964851718177646054195331005214204117980239122486006925222991961259833054076801324283356344521641405733852047673179843017580047738982405555023688874225770834228133399628651544242608212941288299040095079897534429920109915995719074850127549610815988477668912136983807152521629055847312679742745005955340262739631116821805819639686899923531587247731033240636355201477577412155742302974370133157935201284022092399757462578887408026109736530546125303675357302721274961760564522322433607325468890541825865468098711042669910395821891004330743960031916816056904158539680800890050460017581439119504433212856098578624094682143937354953283597729146328077400899016100392317105739076596979123449836145767516685320602907529733026410804360904691819813178832627775199477051718547221348502665008320152627747909264550937828941116006189183777564722647521318824045996967583223139644568865697862643421134430343835904691207066625915840525815367661794466736116370077224203064322259494340778413607672722792592170251938069158142510992241728562805513519842053065102420540403216176335614888695423297487806745050117636550028260851925890567478400313599567250146499596937902733065184824981768867301716102940771455180461094656758437238992472266619802932328677574971759882044937636398542713445427203536852442515483922381995060329775981346667238598066494828864435604765550025880272430476936310563985646283832696159603783776866915309709382083525801405842286653368486221511228393848078318682142152361019141479444675785176912968320113395316913158395435704356345354260942191438086622929592867176036292797399732236525251748279366157650266620564843883330813930366276651011840863502768503028735250469967725024896031876751421229468631170201281696598129862881281616195426729313673902086423338799641383485327275560758280498242477616020350141309159612306170044044449808354886363724130401517076655398422622640872149441689004550731614549159195581059612180383368882823800370777408355340907371583857671985577010344422769736832628879116752309283670752457898615124620780688909666623673755465202839217758724539938139462154413051735808451466680621114753293130265284409022350825221155231417447176844248076921357137056737948075941803919675008132907326299932119209034913141807375311343584536044750529644817423251316700778424647720642820132944312713251199411468793326710090575236672382555377271808336321245652446578326966461289623029827185219772667489683089337644868630042130961500749733216302670670458622275858783983794971177743537041482374221531495614238640662411689901850841095451955293578512674032959323622972686340280701451141980843770764630844702368016409801817533056947700591259930996780026040936376222901090103247026561167786998819969366864690434285094111470500844998493989894567198511713167555099804722223394871996186065926838627248048107168207956842914914790745240673190741584405807780591579092552712771480082053218287230734765249093213965799720603059498976437472065741759634343088178240705738997137097076598972203240989838796226965857273384178247941675713462851544747668534885665614262601023781155409485719683017426847481492422394358206837268854100843061704980424240016513494460934845821310241565251870838992000489363869704641793343352612808082300092902688922920111096038601234585100463843187444317153510053231982417333926008016485212774047079089691833536046660737582408951417889030576428806257265749764833982283369894633533866848330856676440005107610585325552211336646831896901390724554949242068616349617514637182975257454076866096777385884982290475155167342601998952602973583025527845956264960085103115880088098607956052650284512960019054024710205161874266646783259830971012744235893793336670706798369471214844211212806318842951147854704065515342297834128193357166540320120073103993506361839654938970332334054222808348374413962714819538610770054893367610157420513151099772055767874370630318104701450063744617178773103565420993605046692009973507664601533769700538813368892985570692720611842112402056406224021299599053739187223364878444662656705887398976831350718878198997726872942306951986477118204816090866178148917833498535036145965733177402999785313440532216312914935795217817440523088924433753391221367847920541268834091273125679608180753838895779088548333850290523802576103532274721050123530061535025402491285071245504499756284060720885892009356799036746891748663300509667980462925371571819182638609607443997269283423161481118881227036808055238183121784629057228308776761500157116856944260835254922719713804077327667933704382838009861672805563403644671207968574512775823277042028520795380988416894536758187086916933511547730537525708981191172902959517934964913509453987960915579328989132369133719726453355866829371969669948513100718952169242133423821870334876880661953234090361208451203878143670004310252653710510071360626687351179344487256978772712634968219600153299432933665704631118564601464466701970943724751530966727272937355768828383100074629010278347407745267476506910260134858529072623230673213206695202803466584643047886243189478221284577725219015745247274119530287278982351672442490700535964805208574144015065925873792083315154759538156445366118949046792284373980701236118638561770008787357244388542318169906489076143923285983243071359433213924325379580679737048480404719522067550499914048922874437161090451427325002832322767961576368024658118455087700655928052583515594224820349209360881395965943678233410288697098180883050605012849206870056727359212155925195046922856602180309900251855755735728974787930723124977063418318262911882171914395103322537277385960098180194897821297243543491846103210052090500055120203778533647665615281073257304493693383585742772391857046434427456967653289855170324964060391538706430544471516155129254818844173404956352083041842366627624447509900630759498549422570394408220260141984941389136279453595964722792275567565048242632351337290946601046326763514395183001853402628912718223737552140663809610602283346087690951193558551636921932320336903118368656833867935693462942976048959804721881071206277305553684241651738158035196819885360314442292634308908116992268413873417613231172939200612731252422792146366715503364722644210070541235590561475168169631102658977083730160895064053208847487979399532035736550730210203292356116665332583860260486240526364469211608374091435273033377921564257307660120239851625290539127766175611598441719134883284102590128104207417347894652467612342335327031214674438826656485499670036836894641072395282568458783699498983430771774297883975106392214722744944359185970950859913740493426755042746940314412937661904871737464163279720119692138721841469355935177143783873481250681476204899986959283828853034057700102225822438406127539406613794642742495518814679201487421788158306678277184230498903583507263425119328651221032362240554430716554893262479405114763874917119321213537682671554019030171746811355921388389502020127764064143009395420524940477138669750954940161442042794478755277100425224238629099072313976951104455041861796712450663328055194023360891745477080430494640098058506814947896917161870860384757847980393531576732230064396206030971404651228849560410043526424856364256654283796180525784302682324014762649575697022591285987039828054682478066939789299310930578425100191087906580723194010700981150884910086917611530305556831763986938647265502714582311647932803578773162891227743632382421034124535262960550150954240476160864506406244986366256307807734810805722623054772946564848424725386661458972029213678251549480511293444921195708794840749724012421465029323476698043170281680693900766980420019226911260773066799838416522406345511292829288380544673740020636735514208877125777065503074275835824867986476031473303602559208287521201627623126291619351979500017971138461212493609920276288064529916494497998120068055158822988699438502209453244770479919240021422408332120603001353136867797411581609694585934194317156505577052673791158400096366424550050924421473669517117336316003655497978411244907625867389508016264337296189297340749882883597018929880793068896426308703201114299103808178528205391236234652890751114984616978680696051545152241241808605264076339935724742852783430789435220841270359832177466506626176418470252313440325768825554640167255083601723477396821541288098439821747619942548585561215244567606502585720345067696420676844840732379003973115751854184108462681748905531626270316915659832872220581716755931639411731283332258570812949144480693817256249843521564979247032530129865260364034047927802319261247841594323994187527078704758312426097122927952151839482311229142764262258817697680982595162270252474471175218015420181550098719069059212134286338065135548800803412348766367830353472901766497163720352468394810428951528519997851995257772445037861725443806592884666800679889875986500667456032128790242883091713324270310621672256566487486810889190125835895734809439591101939596677390095393939104210749296224274193065603370856698241758928185521480708517196637506940116767791103257170912156472319241047172238740600738219496163127252952277016385883962297637107592918974759256728153714923535254583909990977453717496036505527526627652194155771842468452286865193479168055466953152056042922447518321620297331247151499959224525093428780977782691248462793443513244355951055200737393492691414192912724327818573914691086575362613673679652216833909580403620541811100060539046722398190209498145749143071167325434207076496628302766459449151481323864261932137696829051984525413664399851594059603616233612861513609141772772716193370738289520909016020708420387116769733688084576701100052340663018185262320445930825419415603638639083888035771353189749484452294177948007631620310852991750081769152258907679164995353133105150316208212987276627339157211486235199128014604715964283339847459947485019218444739758565091123947345711850775186420463859069757721240137483033369533699060932478906440452482114574039109704422542096441106268158814560488144935713020300481781493223360144151064504520439244670004192347561597760961228937535615065453957557494753300866867787549116487706498013322395790024303497288638811723702103227593042141854001815984507660888573403372922237660028598771048793361379973937887034892745054644695916711651855665241165786732752109192916715963466940792076976441276334076879796198214206596024958130458997540889123812488056967699232600595336193299444539930240685175111786932662620732743719920317966738281181767998466482502110677349302681113437946648958975400466439583928439496998211841784052339783770169783967430689005464558699866425095622281408445221733596170802471032168354681510681762106107790089459118650220195813566329376031103100605345059985615263336926191850540418963967622312808775885443506859081755545200439629078888695381551912251518831397531713216248361833210426572278862880999548212552660727130207248838407463436762206973801251691626992048792411307445571705753385350938365114100446830077786603991396444793532047940149551026063165480294111979616689667290177143455105299413673275129983933327560973478103159545516635078894207911971797506408091598867289373947225296717708148536649127094603761115228337641204673259856985036516854753814212982491746147219995328049149195354891094561422461576405062376966676552734739534592371466995783634588047105922961272497983101971090403072676017917581491081732972921761789535648746172230779656224515529752414931541418949470494941542219687605174166323216881999582465242216779163666088508859951343079112974408359687347233964333278403390240075795237445539883249692968709516440435269687763983033243172616320405980077209654643246828994007136680416375111241958953460931310989400896241864649066947768181682098181703224981900217961398782937863086378336686760603277929686256230009174141683432819623648707663657438065353791684634060982790855693070024298398290540556335738547972482292411562458678062208568072904053419004099943727189453514194879013072814424058264332023855982829496859875978744032117058967074181803885151291187057894582056462845000426394710936502053225510180665022920003341757846335537462997154455863512554908598094459306376810206828182605541203640314512762885364030613471883202421067117510647734983931673433233916742349141170453189749137890156502394089467110270501358885381163882627698024073897833185050488716504369352181690018982483866142592528276316672231359656903198066159566926233133629148898433130744893410501327545567373948655825534812576890642716432761419999157381614402423826395124093738232045814030704483462557491872615759872464729441868033948589784685301132312523335536898369563523442574935427921857439708130137651535399176415805882083919102977359909317247945709980826974111393246527346794552463774236433767879092145200850163289484589712776591969639220164186615518980319371108857256581844782233565772899830673212151989729462824825727919108576037306814319916097646966708692788244254111529756436020283876484999713556419913863340222146003659700156128681305236257461274046609041963541099229203223236888187467345147528305821381809667289639462746859860021959242069382359353754519970069263214940877871736923404873993659246706149191884070257712179429481008759357498555101183449539806540037224772203027986349755993318759513525982353728384514460646962904430328047867973459188391735816629442211693064249854102929480948514780685986911936565492938773247245187499022050544547236516959984156746471663643389138086202130743936654051099573262221482620027457065700251125700565734546712904100073280130063757325321647395242577684823701392140853907989632361906541549428196619534725754608143639489501585703585017878659022476605510321773802190441334859223248295075483625115878012489417256744913393216313720771190901200710534977244853674409776486271641245079492838171675561146221314694409717295416042465515281475459930781605717903081968148554219635609076250327036932232691885562156074297804703663963289371508131877064964272596885447730745890848581517572929640275758613664951165564985991146888372929341447595529518873121535837967588592406024587087178777203428345731506368335986595667882706085570175337245780219750308929702629658829548850854361685789666138499979407115152860991657860302068680160507514319577632040366284357142101946774713945037624852031984098697967364192511117808708711021229106381160757445777711128681346956438489404527207353350427925856659173034721111167419002351269170823463293098887930809320935671624089260300201395967895830889030507122284645174985294367817283291562434962452007890063890729883192121648838778741454151270699487789075699859355523059105812344403587245755392131161356542372025293651230955759190113325266296591155934696696370639985162391970519788059236755999859134498084722636228478270523068843774628322460420767606267785409027587896713311783682268792504472796005096739376058918649422047877259910495061399324664665114789766945066841230176205030977218845234439539124449155647435227670294530289744248120910597582144656897095524479577786677158928186263916884573671706313879727063814252450111562543316885721813650499883743915553942667014601421511327857724922007086626821404248053417365225762045075453973325337102009120806354440322920637487240784875816777616731362728983130354725218262162932879265524650090096150601682620639444247532585516792161063857460153489276963790067051455975888417417461079278671366230268236758584422690018861362802038685278776669867555913941712940610244909464940221603224181777348948241406669429285588392437720650469558761709391979755968811240144247131967291414950912090797697276237010414049928328384675877474300734431393512612772200320319528052827404838330312892008960506138798941512355971638429333786059822436977345531106321745960653661928861897830673695350932614475348017202858639111422530589659143191380321445762676805416478662785095635287385260928064490954328743863967374003016048734253367459572847325471142709437824289791606326356442819750497006845177018762549073133296960626768970677432588784278310873951727490724562778737733902776686827503583856271003961423584387652557310952035827620079559124388863683162030277663992437362514978324990212403787071771302102536243718112706701559802171557569644486773207361101166010737346541762529008268631382344050223708918271617581007048772589332442137058974819151216637033813767406487516410258554043056187379946107794813525391979076252873977779855002501528689404720478582761583797180827510660296056225301445184693837621268106341786675480515955453409044000184471535594546999368087189966477912291077486521300313658418321329578465950741971318269026731426861104629720876207449218678256028893737197227097347239978125242479851444795607492521693008180354470694358499246375106987446902715464993882149527054822327086341797075497828103166559881454063841413905883231412290035323232719389975427551469522484173915713049483234552242262623525264205898059678948749066790273449554969803641982397223974969412824724258947792889248720704559862677902956414043821124908422203707939246427342159596208393212364938946607305244657769282074285052335423520523504877285381745498162082225587944818906475295946594104519606071814836188596107997984159360383366028067628069941268374013254575376221061873801117317888725971644341644374032644733596285391897831186247679383165272072054968969709463386822571652051438156023778009342034709457482150876463039650034430260261546060250664468689503942561284818627548347386238267525159414707057467121287872420793669139821036801803897275401748884185086122090303957206498847919044168691688291413045301185200089634794917224388585584647535422369055116820882364059314801485224325395274265413280728778317278292272725758651443679731761300280847521684990487677962079325564913989800038397272826066826064143949365562237540867483246299531608422660823542416657004298614300271150639043754268575738925985553097476768446141159384551195970053235021303407582798823405330778171953538829909883026426158692535926212399402991670871284054326693487916327374350384265643679774748284646484560190894725064910148360046692599770954978039561715223032131479082169775900197097025978178037853349868217752463478088334053889856664373955713229086890302598037823005141478742178263023122163774017745081025641744445720170592058098645514082620510717931799271260633938272363618686532392142999434343180745773771421056788547285061355220449162914281330548196976830801718810942703730257920398803796302830947354690517438299952362751438290055042568730426940448262708450763069321981736481207246404658718203584825126508289499879916161057013981222442159985382306445472192195364878227419027901152877097054871363897858718286629873425511077849886748233145417699253572349384553033818565456650279868993624105538489961323011999791042579055416075293818336188481655845868906849335975491440931224814728751149194487877537564552074755310673702729873313852794435585217512004404901072078718642001134552568294726099604690177885913812398319242390963409256367759134792362888214615266425736015832305086958948120878676722789663453046459186798974893485600923367433592228055397952321409134654056816234670359714450603906478279470511170695919452425473267545764155921158971765072922888632728736163610096478843346688642397162615805973751047898752866928545953163397177192353360503638677032125916176924909058934506254844602788754429344068570697111104111604019031327505242961897750748687466565824926850893234180940804332488773810005473842851319024930032518504602821192796460404213298347395894519162528916996789365254219375972525317313930346601116039729326492092684696038041848581674377792860300985408891472759002954855011723600866847829530434599381381030533062962211877915765975084441378300194637613794044487038371086444663582315359522834617039824219984022074199375783328463874976031502891192350284139888228841186830668891223975015298811661385887626398664104373554007420429863506742742914780349663729975260260322176853002862568058793780059949796613988865910770424040873807908079687137125130529208982050242741656110624094736698363319934788249162910798386426384551771564095243355401061113182281084941868632839480306663258596330247690414514176861647711690192955502885270017199510998513204911007794735134405434312048001357682293779601610401371389002414515045478928492095556657754512458842717876332027361602636867883602083581404553811440731890476550187898901181983959563588349706444098776075772237851339640965393172951388854581818947508798810308607179083822744954494822351031872628468266216190926397166277568049740041223120751788770563586897366037570701275294348984666997034087764265435475626152975553378362143916158556544988856313194413556131086247597002317514592730932657366670647589476960083358054663792863102041726229731390261555959001273453991846473104673637793531485993482198386211053453693353216036054126029691604177188778387571563463081045318039927952769298041897433545026001220992860499685312071407976022574370949204667224380624016932983915968925352297150087388345555975609144682347787848808912537722197510115304443633774178918131554106349752643469807587008219673399731006346281238651379044765150404903558848277739694267094873750794677307985444878120037250758110653201838726127532552442049959384912027005624339747725357655143076720504077372815320179711640339128978780432714100828475794241759481786926490148267567157666749908459111813399000580272403501117157848034290244177642310803454858808559048396924344048790395726933985692071828060260982187257770963651107264803356191477887933605813858311407858345908408494884660810352281798353286565739294477258326758361592353141122080874067940071384224654268451288452828026043769940497414425723976792103557994973162949269918640731915409213336550996294751226288977701285505577284467083529741307483457405277108876574047024992237000765367465739257092750989516011489621526253728857728617349693370577650818746249895092189093420112977614167444535930895254344811424243418397778798576043291415323809021014788037395125346336703956255291164428959182255898991489564744630325728296404743644395012472270108371241555033104318336402942338046557249768277341875469315701279092659146701249159107172835450160190234093356809193546566142497642812874675643059012510068747281893451085222687854543644966205883988096001223717870295067636868278221541026468475870516421808844002294745435646051685431304171866299217404300488331422800331134217612536925925552390479369053899762252954161365332922101880024372653240035408622995095876722017568503631233349858484295545634553369849972550752097407088455054331250595191602327641878851490312066422465486775082121333719556806303108163907358926864352042306868174912029668069610787217611369204645151437269376699664902906818065271633095352601161199172444351614961548251797712513654835885838666766452088421352747495148987570359025306421620070687526205126529335247135820257179738346468113049364903327101377147287391821760194441096010242419737897115879382343591755383554799826592951252240466346432746502872657519800195806874040791816209300390664514352316563417394303504957338560326902204261626778010877742545804883747519622938080048156828418569842322949511775920403279425431242060828556006582482608376806318440063540205528974298155682516845567366640336126037908980839490711989382919761667338733877659195416013403354950081264238433379721962477889631227752477199348764304168734250698508707300797970908577015996129859953860922922813229191422966540456739285193309050056463130418155720993039667195580212762732675896775740944871212315000811063061298463217058376419826092400326929427589274573675591649080767952928706794433110526368839112914003800144288403008797655235233825967791085113550126267309668003031438782611877493175557057941487184351948140028302006104435045601649759013362467517925523435596648949572359224922480177354735393945401366884647172125464230406472613435757060555750714895307773709301775855449650326264807685097921111254173543206151534984196012491686786544717014824783615895912975827896987303579481264909979593260133598231973628285580027026264123951003333100948279455573105581937512403373876266331608905567738414873511244108569802790982730038463370102543350373517956833711360742491233781637973164985051099891788418521127083707378635937009998495381967216727769654493885819507016544160470993770326102697940661071882576603099531675691692103279150085255937060286877517809215479096640717166391734940645504575827283506680978722520383582500357899939400360075304004722885087290925399094098702876317113237677319266229462504459022908339582922964221157122321615362963082443932840358318023376904401634767035383463146555165060673644512823917307206647340881952199823816581081948441499727780146606865255921601397954728405843414971403702768422458317089039294932027002343801256698018882982211497241064257409306527943005590988438972552275071992349950410183987206642533549808042692793096859619015775252593107444811319897490417941598638527568216036320192756741674124452513888442910527083594275142839425907009403640283570491809550159055272757722526601851222497349592598593323083585919630145828410922310080057307994222899149408923628089177731450537190314203455806832669379323215686212323712396719232152848512287047729842701473338832701376679853465199120565014173001558391943338593186607363914558651864252009659343443642601839152827233680013802964647141189376011274946542284508285519839891455686410001788856728709328533373651637658444974466790264392238129247591504261847470261046426917793608634909856701742253480265279914431009054074322695850177508206245871724117533007434240898492408399484260594535962305200434385493026027536506452836601537603348288812840517628110693022110574202542489128327016767185418036836956369430658998912139846449412360330912478958266550879765714280747522603817302529900932467719250640867253379140593643484874330998855276413853720782330380585412147287039396916564323273628503566225908658564759209340637282745674396322031690406039753536046341221240688070134888789073114909042369356327228871692769735736365432165814915102391657722548400611939046342750909925333007416833711952117328851403629141494384093228439217702186861566507611390489983005069358902504266163347397750844140556866502651837261754882535092794714002851844480586788883419077006634138278908393471762640682128243381362505792916204555536149169397167903415735977061665608525620483256376260439567779441079425118627317881352179512643841151333194625990880064774728123870533585179929771260931528076890740031162587212022710566917228915613336380098074886775716342913980103689682975182935806893661687780461343315232444185743874405465127623100347686841009716372033021365190049975041703598589330247326372259188728374434335664852271757845110669554540028462634401287486032262464315273045541966434529196789800690647812270737325113612718875054678906683991802024320832642772938462417889344245389433622407029828792552055771647449952108751068463943917859478130251772657722592046752880615877879558807158646881361323596313369357089930531060916750078135188802229920176186353031511036109464406061189410391671426190546859086673035947604431493095269286198671378588721685813598543077745312695579050900057416205416784673021171499107888632442069321511900413358867596880847387130129825368531585860820721877203903627496338936643353148054737972649471644783479586971480620245845931293893944805345051858433907002381341041242341011145485078849346139166056867183617017567288094581748145744658422153133153991710510792270149387491434731604751396647422181313939780621601309128564371889120113185091364133762660963902758034263023332453351739308854381179128970371559495942344647339460111172782255727452766666616132383149049816327432675325445715639484853983590311449322262968983919605044987966292878033435957302574586041035152592078453675590847259592140539840686505987115519127156893053884400963116213411705273224992864269247625810534333724350711834203214221307161292950433857001645701001333543112949780763529955825364920127635229577801012211019439409597554507481545984415974842544718613643915197257106703330971437030160527348262723683002472574281123599944246066701624358341725358886798147511186253886498614622379688567006878367031591737883818753403437013891540969989496630023178760704500245335730464562422271035675454840727495549131975131257489838772256790498237779487291395869101888030742350353184403521160626197256124043890392122883805515065583927053423656598183472478847038907021071996248015268874970575791847187092774264155826152023750648872398636093449853543776438481461152591894423048682021893935579029408091715718997138413207931975577361384302140506966940874608462076896132094095853027827696152999472252442186159234638930334716463812084343669818365596507861987182394344047975717302079596133440626165030704275853361695974467774154484439961215732208011456285970439161154557677251388262242754087028600859436050808579003968485184686123532257401218041708913019055065843256370080907384795111339575191634543642359615470402162098169381151318603354423605010561558411953482552317663097954230804279622439554073360877522695514666452678989501590440174108754122125646208358976047060507534640522786249351478907462286623159284333255076339806442622180951625315883846764780313084719606713151068606322464600091916603261044433268129229220799224882965434359178091168420380736735864662219165978502493218723871351081714169629573060677178660736975656217223132640609614002603197350376701373168246152213712040932845782037519665775881332788885419944391655936637995162316847521670980880133760134467936850934135938379015897001646064743238549850912871929907259909386971360590025518336710503031351472538126255332199782666437177808405143548345810395112125485252851695688839129428808067744522142732822052201152438971648491397903260272085213527319303052792282338711208849139404651905891738422946183521927283493588867441945754340128283161393127468910614383587967360080289044338293287247807801990891663899824596272544827767395906458740204795269370789425868369727396629533668596430476105113649860779348038487716976786298070621734613255054448234399970004882722015245435985050777722049288537269795873269758773590199657532845736327363673132235523939473145056755327930072117004831793963014052327854780112033620991582838470712357136486103243504655734409532203268777068042801638879622692946574821140309109468283635869352080540555366185011945369839349065709202280058186863959304460610635553428837002270712690188003216797211622501024212412888982924728455567965670279393227514118559581986462924197992032884268844606416584517204458788740262223501048851458989084903361856630692431893662007810544911218162959919787444507133437250655946707514102078881076170702582124682880907443777152324898498401866445763578734852345753356889253582818201710371736432492495831333622819943208834315562257119025671937865062966474126311518722821592464660681591709116404277071735099738462819017218707543878590116061743049343897694620272209160763956817980445681177601895608171812174457552334666115441701197421274068467912431068360015387088052387176141938573357575095480382545139696910611728193072196148680835945664193481773636211637775803485418465692597386683073572613444210576454804640872188359683461340746129157893830018323286266667649801647751034701266903987215917172150401241837799508597319949750800028715646455358732041780760519798218912846371506305963724439638047078560937151521428086807303496391833379438033789703725573906297341488860470255238867063659026522649274103698164295263969332372477670992368630053557505232541408767468679396063827888551469900141506434357669183250942682461024803340090940772782701700282405698066584382101875806864323596470267419521694476609621207106071622105317304821953717838939584094686102828497076215160595362474746846747408770086457017956193753167703302286648755456036299230461841349137978378195603041151619981916959938677773236988480074745339886854202667102053077024001642068484395867242144409621216041261341335305857441510972383612277656430490044537617823123218430915742149881915992277564708015531457022197804725570044493773774789431970206929244964294112313363059218425981144065709263622243997279544054342406018137768995499014404088223113553351258922665198448179627428503801885473740556357262917476743217265846418417468252360065440308047770702010625381542639946510345995073568197714546783611382356584487597821753579457887133067625699959358265381000998435349404609536371973814658205531919977564262903750416583179831026882089007758047825533309041761798895668696896724182778509721517070977441854966444697319349097409426153204474544323833881485127627218072456519115808920655569696757026677709435177308771076157788780987940530007401884169469607782696815298344222673361493587831999055197053952693625147938729927470703993530329815911142536884959890482484118328585371806718581223776460840214062582800585487225432055641188332624513999978153246542567931468101148252608068480358312736588085294085297815563027612684042032491983209067264952611576480561060658330280973188350249000546287299170257854251770766913427396960926534409008432903575719091004560949929606944639201840548307052865367105900471961523731341803546616195001711188604629435145154407830736520341316318294509329316005414089364389263607803397531231668131560689099817485357259183743334678907496222636947559090854896372885843779793300873320337981243090186609426731999363301466105613092725080361156193256001179549675054601651752340674229774866264350421856206046532929343715906594218279234595259043588098312245891285730837330780549698689265625084006544527565023511817927756822719815268988586776257266189786716348717129511866351299762564571676602338563124284863239603292889702097672565183746420539751637811082376344339692465981658927129429716039550457345088797441265792268955432524765959457029337060726112827216519393343441031383887838527477385667437934966859338203506983263785210885919539017026410757759055114754535654885948391969519108232584219623736170424839340145408752524092608857363327466753721741669961419527546182002496346462990465908387749577866448443670626535301087846848293677715275048642144401928201985155123846897969955411454885341376655469929569310214042017260373262606309036785506106006736703177798246010216585179943801483327611384982655468493094918610243871751983535972361832516656152303897429331957351736130202478091245530936775469982797377332519978087056214363215149096666792467174526580395179355702362658635483941865587429236866966769999911127796190297819044818376943323799164388606609592550145752582567194639038578011512414464227198106537738529134831292573900371051497840632476153660454410499681637420180258352279897740220800364410784016304392171012560556940801563452265215851279105222674215217871245789637519583903682981286471944009769913461408280773279091897170076203471954585682181874461136501653742022653549217628308140899668992429497356249109359090672060510455504472127863365367856430970052945140564911741855152830184392777292666474399006007190276764469900558407624153314557717428227428452409332610246025456114071521125559396379125892796632976105704705652689839473216344179481196843618182926667995963247962158544847956998758327931251586663050195307187554913000480898544504328296653256799626881706547164698207091723267158697954177071201180135870571482488695465333765845360834259491724936356821053166282650823546978807419235403023998995999526899781384434678648121542783348637382857645636340466702332528658670040347081937215037850145327314402825414315615567310146000836539199512927690366169173234022814030134537490472848234528492785993284466259203206296186553801666770111917963241322643990338532765422431455432925479632128611184122995145751552594177953261926797706023193928785325513994503070290173448388042337190329005334066538106559808581933810580109818386524907477705113728095534049012514348942172225792847173370118628249274525546821180464687846643275919947847723753264875607543363701623505614387699606334694801608765074597046363371888363348448565848781856800395540426295633445030641369812222942488206352835784136579524112440844813740563747673753415176931096646531706338148279064947400613742129102002280457062567052680997525618703239157865392587977082553985843216958561740678621415343216818862056699209833723730810095232653488703198981545677827656215166441175532694482869518771056512593900596603787630551526897682957247664162943595989295240710455547632027265299152303350949665634234734282426557563464608758532091456384724405404859307512502771306363266142560011797310454796970754163306389256442439124721856943616708251815971252905822315936438312506868873140726744688604430343407573988174256430785950110764927116581783796644786237437285236364179731451530142576961946414780568760982195261797259172349841325430358342378499267562775016608070230260730966932704645608236197063717145140447135663717660405556499984978202419403583257455067133166256867128506417019901379467659067774768060806137115719397267695999319043137393320968446904907058996259611063347293986488454537472849376594167309586633405593956383223823368717583226043736074115302705792980477775459990482692046663784497393181189907881176757308087855920594812672091845022332958161382950276968849306896055701926135074709385625684799573775915771957809556059275862061811479229933209455631313212201384598499999994817979680330088667654214729613510769140599843386041089638967516107188035245721769166720566413132847373965599453086417246136165128518698053252857172872953119875466863447883402647707802428664918603215570154827130943962434849556991517670908744378485421464309902305791034028488345595832207311647679357980924609745692644296626639363179760287495311223186103824937913247095144879296710213972027218691860218638753963221414822036524895246697995886683484717800764070255676769397894454927544539281236961272898615826562481788170625852690857894986890558261205868642512230013921153386746977896576182422781713725637355490988272195700813729294836518081158160936849423908948229447139356985935440428738092514639554300577209066708442033895071538442538128580365740919724330199136612758316795222529648240123995355837964874958032177525471053895941729139414246680815548621190528808669341553058896738651004334306377875117730756198680592113529017591772527646735253037785133494020644614861745541589790696567000563314233166199816644660297450569474984932024974162401374442563875165553175404359622156687207980595099997425768496420959065639508261647602609121465885699954918193149030734508142479839032853309156962252858018074701989190878400023927730625444958301410960367122562751376672706912097824670874765974568826004682440682974616979432668742622393811039370235751981805750978809758109927227175914816117700793302488857728105981267756047377840405691557565287089228391985914051257399686224865583227372281533113189334398332801245127083107701712456540293705204311179446141920969046685287418566007693524437035533825558273441303133378817121737294281929390662464465693104995571309654438620812853523110158255045711573021116791976663482897785246476470897610720227161638688381346439990648932750673396336753638667810684402854294408270005329927321505434442378137860215553538381478016377281331703268493344020090032406548443953631719611487790622429864184691469898331070306160189451656190470737346304221670009684910618686096215615619065146101333807111030617073066982747362886087153662443612260786336010321146235674922417566818075282204056977343754659137988899836323599033132173427674945174165139885676596841087544240944435175049707093906627148090771473795967617919631509467736639857353372296041408157603941015427135161090508615543791227427296814113788931321981400160537825952702435571598733791679832443213066443779971266380432591550329963318971669742220108011698853322860197368128963541076821623339408545195973177170579060621699269139073075685514290274628355190481861069009778108638660851942645884170326859416207792876508724344034120477210666050069389157237075964076753308449124601596839717764713101100560801450348472635631761095999480916942270501725532261282375121008036940968160959852422897620546695668679575855614098144569216773094839181122148081238252107039440975797222020668423788818273163671852454154766918230873584485484449796894686709589550254058029726031889091372159254865170767108714004572192428244992824054670970269924852325257844856146604191644267927264916114944528681819070051594172722690052969415729256989316680724264070113982281459770027019863952139795813198083821163199339611306374717626867906123154800749300718467850293388036875405668225449969338770857668783011959887564597833085251857583681842177986607647610526199934723115136555952177582761144448983747631161537317356809123044349500863993945208174937551005771933929244469919691129481288810168803767865846591088784608348412533904601418718585101486825870073268267830880450252495398772616851952449953404706836141124460344494162692116889645452668761259092548965946871640138486712506412653272551214844117185581674429402799822292030318975111148979170539355528983427201785230437793914226248848351144866344069832794106542262479853515360224998342221491684146693076973397368756723003451989968181840014415566867785735757012852348038251099121835314745118267755388569575956233963754146511881383577816218038891378657381109086628088708459151804747099068189065757397228203274133273822754226176518723205563498431171507393000483082277648597847028456470622015874967849146444592646005668222003402487889708877295089309072135030474048012397194385260590585984815915178082817498604142205006654105825839992174106038009061945826233269793452152244657946014261420426428831025101301647511342205953580555406454253580185180040748301081108605835734910923530260674168225401117339868027588798820621167754023443226639533216281585242635504216181905037313986105605120612384731612445239096552039097540311046469251291850802618007397435248296449747791762847946281005321918825333749105341960503809749153938735982356546605537184238523666096842962890536901585320710475855622482739179936886977326583917550593378613372541243778071599360668930009901374791328213934661070673644357005711325156101127724344903822972555667867250884593883939663884673573500119475818341839702079421219421621617527420714352995863932640365099500411759874833810249767446764072051262216295268572744640331265461738902598228985075569797926427639518765827544048542364312459055702297326745746408103061716998159710585284234729585444002383312603656146668970691575597261458856234995403743120965980651233357470314498904377791294248335764943929647455044632619142549455334786890707172564419789536989447178404837625977187933989147922606709444622147266069790196999705214331733123602737984616169494587007641383696965067205173621027653664434286121589178914970505151238332885834653704887585218566035525659483270008896838727279907488791435822694709131636122104320015919847519037658205862710007381485954287814149843211121504074176529489631351271166724984567556383711754121933817595883141064512456523133238949757411662632468343706650993165687501006770375524925957487925611666826416340097460893778687187252693729475967972698332509905697489307459873314189998585483063335545900868786865594232021086096466770995566775214293542832584739119538531588345894775677519909740039731290130054645262701951429997351329286736355008298813131421910744117123698058275376106762961848251606271846347103426951798291465309064180978452274639280973794847433525828798671986449821613586040061034339397135111713058010723481794099593165275344633811635834192027846489928491062816247989005380565395364914460251350435902616503558530709134639493925252391619155950622583460821959082460058294331113405748650557319219850402975153480370632965866165716899399979813939047351223220605435937394618758509790226056779810814901226727956352006900692626350333570489622801345805725158773184999430090824871060896649146968418035373443868017331428918437324372808446946623016829676392898544664490558847912420184509423912290419685726736834686709556691980880026690992895361081521485526022583250644883897341693345901227111726902737228126630776853656752290717599941349070498692146886039111746379854211772210969492954205120323147761742811442193492805930043242161080275998540109620995361515106851543762390872620312122185739952431660269343744887046352304852767032715502347523412370926655140024576331795771419337317371688102048795577497647304813341957799618420613188649235897727319041704471394962178718277193005486838014711491416533323986758859617725683887220110531628459528496123823909490719139405867640244060082184576265899582646117475545699182744313999758062811610607410657581904217526069670458348692017280718190835399827550921419843926272723607218782992097006940373131486496653665901954831281291152517456957688218940516427433323779146760653928984401585912464723082110442360293614093943394485750500712360376022287275819064830205076472738430696863865882509387356356830474948731854287402224284527532276988783373649480770645067947706618431209807175490084015106894201969756883648007566057743991226365393214134069617633276334126116015602644943725467474483955544803316796740591601793820708394650856783861720030107608825149239625368034441015121181347366840151169831389902337851479137552243957500060942141528961714589452290936600783403148596312503878991485399732128740846570351652256749202783302147774906821864933993888961624711272013757027487132032174673056507885140255192203670970662758571891725052156307893692403034600170734428399779171395732266745750779635824784093666283247803819891517330464573558911884369132747424577068098888200609316982525068824676887249914000773248592831629075839928202052740470957616400709542253864309449946209704829621268349610007535120409454305331633490201589902424357750060344146919424634875098663167694575740916014516173593851285432351652458435038407787052215084429820089635134187636809343729682048579723951244103402162524267591010157812491573213312223976835165523403010855069816337367140264262575163839159573833035339633105377263514615810458201553162238275214936338434932536394413199881294704251399112794960780804602511602950412446657612973030216700619864168660376917901973758839343715928020332819005999994248024414194319737157873382067403578574287330119144343973288584597323771979682262217732304032265191047901339751687948831828655648804021457561569744484401708441709842430204305770163372259238406981090103788391682149058841568404468047450700520410284607192227534259169030754832821735790475088015084846754007651853110156180635128268654553429602618876093972669506664984904210214298869182016710725036494349163399839805054844394214121910253764136451124179346906681283762483971862908585071130567401284226908143620514140621811166223544423581810719887586635283231224500196447649919619287549557461464927220107351329211791165856133938829501314850149768471963937699506558776895607108226271557698802720257788240852930536243358218925787348717485198770645813230917113366312594833436714904232285917642125820273003211556930559883517384764557315901409928635806014989070108218653543275253504565430976257685377806792290165217064644272332936396592132207634008044341690199799687519206814443626539936422841039240945961807373970102820880722301014182120885490165111328626913280972336712243858885068759888735155198392555618398637812147186563943153264452525390727426307835103203616159122326924530169315861252977761528794145796960892341141833332099542116205131102041853984973791961467222706390029464498642263882831147039000477417100814311767725600600604299618107033924355913903949596808569260598784173941548265957545481603125747125356755375578989670469528652753586353580647972330276206670489213391851834307420657168916169645131428803398411537864796212301961164427347349337504676029664796271060894548450424057757271070730104606999757762178485061727831888376208558933410743336350866145814353604856345392863920614639565216474048847812787795417643768677231620332141372286061230794069204461101920244003448672905525876824480847998060793648714474306764301790763029712896124353423163273452413211338557796049525794243187942300379493813917216891213352908086272132474411594413958530646677395628048756151244833830672177567469491545327839150133945220499666322678194356431185280569708992943743788203147440817581623885336272519649224748811815489850735932208748029601524349776931356642004105514212472016254090004521534809664723792608021606717799539758386606051741595007536979775230751393546148300138478162885946386403560549105555225765816923173798001538345279647384123271066482036730761481604476570862395974282374537661839583151045712461160520803102871325196751436490146154883445136170069339977863301778365371756711466356386661709922002845364620961099821374946580531667181189265835256358955175549629842559585651951060595926959522296572153000757313647459481688734017343533088086926824343003374152882135319337382964610907738315173884152579308864656288232001402217222978512097542551669905853876821659096008654808953299824477326446453765572930357721288962366127369370835652827874411801829857351814606748776128631848324585926729902312511681321283212762907432188122857310908066589743787567903502382781832882988905213995395423549892432304323653261475021332937528824319327209353466166400976941641942673497519166730133772073420346751003805031156543947299147704765923464620435259101522884695269777340291959382817229293270544093233765626905395545697373529073444668244835584443542691924263388116791143307579193388311267099065899726251985821603039903411167323978059110176343596410913614202021103216241489980831162031738173097347708756158417311351385377770623094793034581565791277829543967987140630902268227275766229858031601209090461669280090704017430880287098324317332792453033642825348971724258122563212925271580500157134314774874620209759022665571847944306704308749513309060417584817088299916087183149649141602289607502561893058024587266017421673693743327551266628551136253654508437037081157051899857277566967649607320545224584837031546722123735465049302252214046213511816398941003696353949089422487091351105006142290120244361646700780541282016558748691893728234114031777887505240204111315288431066457229404601563852040064237480361672505342254041686789230203402592900372247229653103346674492637908058603805070006642414074995061758253427250519383793005264950950293786020762241580795555134168155695011122294009110914906232992930277119184740519903004850275296679701414750791622471332835552574897801933526993771053899502788104738960368104422564840774810070095569642409531532675087117920955126606045599727802122987758249342823706496926261094670467628631659291410611513980616881070650355771558509491502146754939740654727404138354352537974250325840165819985139343933170392651642503342190672886250578938401338889846528909583584627286354023841611281831953299632089059141738973855856144012468894074175914318202176179784749792145447925154979706542695254246189506134305572103004004226472026204409718351311280236652951413951087869087907025382085789730213395471349532041140544853926662981428281330622363722876249988520988726104727925731738949054588637751715035799921488908956235220422026777785350825555677151167149538295092492795555260225776223619564679467345423264174995939475219635159367779287208026464717933053850032429132198187305358537409628099124002064433001826047564330869210053814105803482825903199996867790076935795142031943722329638621086974756916881328661236221593594904925927638745887411226144297118380395740503846381802115183214583264110909808843377783520151173116055737176256670673791171188750202338278928790083723198215916054490428470430494679412349125972740957410831750595904548003836020599158404048040608003315290850276113143762753035400700635458426527059458247947835282837721002035725804296647678928513097455512389330752592494180269577852555821049090942750276300135641841956868650485024595918724683760267991150283909272675252797765005127427844725080402817659435125733672443585354340257091739315718129269306203302414204544890925910894309743642978165169594333260518447038767516952227304132325184614597657978610299575736347244674096202158824741195119113652425528717583147533986424929046849127593972917174426561636425456300836988460986883215458240852953229922248548552257716589997426296391236925930270498058960404376607932526960373478480876846031793576433083637955376481314287505589537777590910935109246641438551467738821237116412488482050279962405623408794078391484954799584250912001600524717505015611595144653857294680632090099355292735208062762526316534092512143474992184552788770191595808624227802274559979072894807049627852108464779835492248417837813086162778437152626269960996735047898615640690662913817002851370221299818340544808671984199541255642694232600993280627080752495766800941277821173577892774006208453753978525376106129539818563398262654172514484116537499253427346725836081573988867490677747324161669674892999427185547431194621081574696372515747113542883189123672357986029195218173631602819413468257992545002255750275534691970540919696788810054907994405856764792072929912872398070771315760742956821980347817235842091997432001734571983442718440982740529973374969398552439832973042991161440154095909522261831645923888613914004178488065539618607828419891269133178149202378733598916406437565050579511334757825087897393128804488419184862287310360824703612282104877947350675286233814773046381843335827655746204506322041702656524595873898319577125365935266032939335615482629701610980551395234402464612281269603589139608323891381315298431780523546635202752276827845796479013381424775369796515934098613341113529520481600891562454709085177241196787342089452994619978745958270732994613696123117850725508707031188499535967259737170443848506723045748010163385175858382345268585601785106127523849929684600778029509717545580763296340398622234673176809719992395947532690497084473561644407206709940109385867201453046704488373984998963546056237913514502916479863024548272613630313716781657989878118749101222039460322814820010023989727619276031934801660227786369019198066019784796974077424029177797380801283738016489539512712892879510346770727354567565975528498481820203876662350124645256810589616693844312965631666338174933221177456545295326331317785951441081627483771815601483957774691464089234229722260998030730050301353986383696791605001525495426905133831882765789089221912166224186236796342207285559129711241012817935842302327725138211166680509357576827096401601624610774643563155053705519525830124111726008044428254839692223323629013309956730869522120169407901701274119092530176884191761760985772555558420036897314471541648383997559986007016487892706006879315720764269214775858534804100924153021602463069854380019924033465509775693588823709930350609101628455778711138361942353962356035680250718338511692737331960063790702115342343569580994002503859555053265243421708140509442427433113664316166187896542255421663678902210629228141244654278804591211320193060592149549875420243343469692828504880582871063000332492235037251140878810434390183564179779300486065682220722848912973872214685854226342130258767541706361851084758554589924953120080652516969395796382490870455522595748714379365103629258982548756331032115524307700021898096499863968729462039492218577435310912336498903219599030721795485542798283140910398782103140594898749537915540777035040037515273269817481425813622575306147461612377237364300640862587947594219433662599983797228687122332462405313725109674195875110434828809910767251324383168856080572184760897883861962302104268171864395703670568199407988671470623156292309971526968329140762147745947441206027816164995732683753511702228590153831045741071840017794526816970604574506887837981524005393450876721236722713440399533239260554046972863025268842175712066034652793187148913694372685320505712625292193174717956890023202700277804529247818006269454688375454204403323110699207490983632978825084497519344964764214327060843282698253686044157823759864055610193177455901894300545930974536248010598110718598561485814139756901786797197597987220360825760329211452808255417146056676902674345689048918788815025727723407480425662114957909783643435408009151876020017862054702774451191714895087521412948607371943306570906892749177101111798550723447474378249111775095224101513373414335303623868723159023492519586430003329229746360596993144202399344746570760032521860603613097472721925622803170639748256013811286953828113367996550129913951703223501220793239313490602862108049715747436009185358938878041994061806424146967047212494703027157542698025961771139243797275057495857146941517234750432505710023364948153971510185942456546697800138067608107732964049285203903683443255110418356428918438831866722739830842196935950462075447067894976824636745245097889900644500799872332523838290313981851666972595817221767375213292644180435792848164809561089237986497480764748483880558590977535220712993316164926065529740071459013792150244335149868852311749946896936759746785768893776285952031172644082253742717376407617580318497652972064091187210767907940634841167622261273234343327023775748414522605478529014870916509447893897168447467030438815124544781469731892228876570558506478608614483368925389198175513193423328963114845236831165491307983359183064248858036472889167692524980848554691652838590209248899409112329102761306990695419176680862605738571714127845546688408858331947307857848158485164062092374921796938534812855401695461121192964831200028586566370010069400657372237810851145626806468488078698809442626848281566548099580478714739772875539170703721198554251156400889788014104115511648162145929115008120760675090899473722987793410527625826046557589741697989135160560440730785348668267377655499773222245462310470377768375552919132940433048514004892631816434546420759324377138263964657847918518401107029389461763878787605236699370836504500924960683220700354641204829473341743884538655898320149980069114685450726996439334395825006614744168061710596891068991174702280865776580597488816448950279958366898813050415797276412828278094236731812659782165190018330706918681633904538599617017748101213677437215200423978619490142354318337839472093257784799051931094332297839440209432812005805994720358201060971364810235951583865646891669788097787933747681167948901880984552000464733049483054945171505329938634172072990452172055600033829227277732468464743110531510636168265513509127407125683128531420144852678539703295580819024958949453972922186526515042467771303895935307984528481765283803003056811500378669409913924788680297350317126172628390782261028502320772346798257899172551191700896358711474142832927666342373507801363616538471189711773754698546579077499734409186306311646499018686329655221561697510632024765943285624413340540354321082364963833411600879842458208579898431237757073321126253422576181258626218157234428326607969856080591608086832685271311468308896573645855619175163346798841601248292823291457996637162685052808580186147379237156117222406748331570956222090868699969325253312365068221633610727149108844620367207548435797604880406754722659024339801989263810667732879360187235064626519421593887748945280976244140745040184678267281581144568205500326049435853733009370933310124535821357675844444501537392153236289407944400786181387201252986808106015660992730631289749479542838750192285733238293731755706859639970095409286808928845179752186350630838680033600343240789804169817620141636043211403676855280551017157958035732239896931304447385068404562354540362824960275382432525568947644112366487386480168319048710184044566509144387250806454312063461035299526288656495400193319834828110418053408861377836182588508679979100682752335242311518502635304884484886382894793618418866899968449481814186694665986602831265083210025139486708535383433067506027072354529139286422432003399938929043337825028601308546654551789949705453994679756942831010022034153226574832639812459836919387022845911814639184332313248833355385444203860394974484483533008144937344884386110094925303538652532841777179387947499359132537511423699209566040814818961480412448086751180490175793025259761863499733571140161088011561824575203012706777031703307391659210809239588380336589334512288150196224468778216043060592602283082506453578822261151378315986891088647927740736312339363194040532543026451641221139278485848012761795560201377685165228811162210798709205568044997295637114134232061098936928639982711078401449461820078369085721079215599522661836156177378547327543133199156041657553139250906920245339859753667184022723199556379487049663811384926033192277002095766431235388217831513919672237675131431264011170417651824270941613953543125949160109121420081390429065478021519947214393583974319480291481664745569238913229223281550459709854422696774753222556404539618158234472249435458824078770585888045920987730676684149071195600439446776998806165360545263073013286017956167709314401312700114505918271123968546436297475119207034920147371343775427050643056940567213439141966624299707894879117989694529291327782212232653794514701558724892960068970984215909771692962623615059498047233195898958300387682722743643035206068318170202191749267531699651374833982712213899432480643860864646426798121294958609827894334840148111688939508797571005527767764457469026189955005821332109382399498839823927911932455149827133566336626659734846338068291790804218948226657225202029747793183169315234696102597276593001685556932294351509291371618027970129002522616863744755978347037838325857733739370669360889770058783794062966943441736659260755999478445325508870511302423064636690922139030596905152807987042578404529930573851575205313908890746305235832099747452575553990888590002782876228419105890152845162032261527722171086218954621880540432473886798712809687577190851544050756358209274229164525456277181298225759436859893462136942837561501942642411182624671746764175930890506069664638239297843138711544134458686972776053401733340047395495893920671001037904558878315124977971132537374940216968599727542795693900134607020794087532693937939501189155449457277769016849022685395004141454179691713089118228173634679228019074891677221954729226842826612684526922871745404736794047911492992146541875348176811024167700353552638402731247001527880210552980703751340593255700964893132419835823894637314432177641614556789994015344083449906889349504950369711865080943748857466148939617854351331737961175515369263360023391446086525418470149337042442673178699051552687263247311269125390771742907073257269479541737736088501498535069628040441886029712768266141957836845793793760310029716346737786528124426914625107197903053381283979758980389244041190801878246754538780830666849068120548588794436220859265232846352067209483294963320458710207586146745400909364402349052164125702941943010093243913372614749606365615922892016197925649601841596840101244571869159256522910755900890997396315770871369225890288243011662639061540825903364644248725708307162073075652554609840083978193831879828863115780445558709597496318676522106867234784252212109983191025458310274434104756054347172089382651622621631351209229887102926522212238844275129121295229495034558985866867662519394611051068716648767451428462320973157536630666849656749033365675007869426659889353787911677551722545056135412953503274734638414863855955583397773668367299986517262397030124497558247165916512157882220446990199787419606026825324725377732131540861543636617182569658555129233289513104313444755286752378471133311585551591658908543147839007918130946553384783988038932292390005329864501525536572219165561083205982751522908126632599383919709900081644319243439408133123051125143444513808462453531058972858917680074185591876200327639812520836749541996316059123230025511853348510238239865153436871984004561891459272292813067524549810445931121310575873495782378710353053700209638585412395958821449913035841812863753888839688608023211828949897263888680019275364970438022074424771453865226201608371257783241870943543775479351904820416873666912624330803931365513898054855047623324355563896454760545796276303085907277307029811456477654814522812635975959348860841644981694418929501837518633772487994171432215941717458954653015573320577403793577190593585721007837992758711479516309738570948025837639052078251673070289488277874290802435820766287232229231664476613481940370456730994872613204091521470893444196111784408650127330964902983083966080293692986401419398797423199776508113424609019323250106670100274894257253250431150706733161820924546227983528422473577188249193462478709410679267583803856118016076137615947533241712630120814117207707682175779034296497182073388843721703017908654138417429021550519556854480885718645572811897853566469018346706281194300065564575878879644460647165475026864594976361556511113703776046988155963071814338965500930002926313455339383305444233686687924838922534917302678015405335721365549868225602754038453639700199457358903226925637456372410581803405661018612890486950641004448505431914654120507085722523598898327044048196179982528610813308878644416933073482710718214275328725284404604453778129826336245977774575653782597317972671922569476345232922917227714695430061256393738301063147419437507757182048458254257372339764248409081553875009840956595467946338325053653427522663002641642812699469546495731836879067760228929277962553435740406010842123314944540150757002386381460478970151152909645679424499439076024671264326074333173373843650401411734207645153889974452308216585461998983594122992296618343664674553059795254621702855522915077697410488595507982150484842219583875128920265431778389822577487041312050175466347461567894738584853036323209504359825988773034359471466631248190331514809759165066017913473597590887832689616147485809337962155218172691985547771767408035292795575056548796095767020689645427567485011382098752624884297477549298215418935197550307514484690581432053533004772954186379744098877200854566262771102588240144091898644659529406700774247210597698052949397689722406281776980447630210289393270135254166109219026866267603365582752846781823619989660953011721350325349429815057051659195454808529897857538435479845235487003624762428450812912747859913174538423094588761857136559696396539778146391147584326749512993262473470630393774747605072689963890886990048335700668810137276740684837410418460513924668228821920851769840095717731657320263292888397281879640480576618472260175103300082497175539808370898393057077905288291344847124254867300663751307322145851882522940587264627028742613623282427593389222684659614153454655234353402034135210925376836522606519785285758894951385463842852477375780612009048907434835383625283756877808286039147204101740584281398597542570455655616774376216122976070060769678300210138858046041811919943908105200594948707811086394759461692062489507879600864964918917647190476757677946709103718852418226599634546720750507975504959951285147545314522622523501035663053362809020313643766466955003323971419335298614173631134422293729047163129998042529943132575370435994004502717589958237218127557223991474372034584670932283507369235144702587370262139098720650091178177094183464114826993444591197690797952943996817662802531669800503848673253803525122173481149252341452169059601266787845700260811855667410783455843377016239915849391989668322550807232709676056767086748852019275443602447909078246604361319286001129665181416451623957164125248389146472583992150176615044791456606726296279647798353417378644593108280239302631947811494651454453697490035333982725674949245671343625182497723856369635981859828338352369928662463590360420968798426323407656727226159887579550187086309213219775938405030535167310087451299452999185834607707095115807128750136380321528352739324794144538942477837899569117240933091861779236331262668586920321832873948655013167104119296024066183446392991472716863889175783352852983397097895323505874691246706224106067953024121711835172123523116078518575408835104844343127874409271750839988781137783575942826559047158194050846285554294447445268403400187704694556867688916431070216558513055396985930274021918831345569208929059984848033821346787559735951607955315187119913447886004233695134021694366105493668097916551230401382763569665943154708964126836799701801193742022639375447367761169390651783170659988509725608649668261475728971857927313231472091892650852390800592646367850964834634252842798871422758068720198387317058705379938288757065192191609537982595706918793382645646453261403329679099544683990064819034326296621828559693315933136804613582426971364212247568680620805679600603400947508581191994054354951429546853931025371120117948080591987251921786541046450069194650299206095383589273588287272400881511507400063182516193535644874031956495178183641165084307159047192169805630417281411475327124218760253135484659341645454549242659574449741528018383614439563368345732064008113353779811265495766327469757493593013966053702562241404114744380147762426403578397316159442163892507557222778282342901030802583313114981141529348336745126945831905674027545459923212498177895794991708154965125207073081570202068599770749188347694850279291079970963128694380376254464437608049779718971918149174932287658151162516333896645565849100577402504302842910550879193229104474245927322898890422891624166532713271992005925010388525090186945654476881936519464484615957001036048343304335950052090624366881166443216344891461891480109694044716755278198142417477275444563374108130390222687674910370868068006390166354909519661573643688931053601014297031453061226317158861846489185278812835401574290962004761263748407744580387226930862838237386199218037870998342107711172870426365663153620906153939203554728635793959072047544538833930646101154144337845104918487006563014295878090075816434798711463257806459998455892636873285653596710541397847384625510524582718955120877923336364998733042400046709440133394301870881446998836709395377305108944647774233797946107016336993239804676391344939978908924023411231123913662639090799554405441031644880423539842483358467077352644064228350272808162772558388539790431716977847890244849279648362959755387986706024421674187671452809929823489407150863633176419141836861322666979478475629051581844765956702577818677473360058823829615045420053626737036680762626482437209904067074738900438087350360597213768615866362342954190559831835181404217518881870943703869014081448389216718974159323722568527804597955603256049949662400937714676714620841774471241525559679151144532378981232523802599208900491668499296480263680825727068001896715345729044647753051803485944582118645622775019231286429036471128515343878949703439058949825806071573534039541070499600039949777964566716652989384737391437749498223717457639381283154356324525039894637396387780079060445688800841972366949021067146336377083880321903267001117670563035740956576190669613202744892819187455483398071431583595028583958455619992380801656109007518238558579076307080496033473785106299230012318168609978226134433242002575835144202020609141855367666776213197824144307400137423164043588380356655565612075904138728734517669699175206292407096256174513123343106251938497297067550250909660810839602273495880566418298947983949694370420790155622649938057335237069932223600038278076054040628856229747512635098928752605340299678997025971144094424176646964493624105114727118865773002349111539186161861902606822787974024058493269697162160531972059752121803053462123757576152902925873188294837428983471615807083065576851433055185313898488030103181355813077554063751103992202553868167065801871187953957889907819398300480177516984980604409878625221755138449045536926112334852673776675835564641966021289601478181921586388805169219355310555584561717017527327178085557816475664914589611195731441635214511821468749794501708518052583432983038930036143675411165295152174425692725678094902979834883062338900790553848878246598089561045804863949240459824906443539948858602279613739842563301962227850439487405782465007777818957400096431313564722795920557677641900526038101509594238036661730677567375055655044146490151582728795744503961459541867651358665711229276240723422026867078704375617293391150436321057227784132679981065721290377239118389406230873823840777671283957848975381334028727868281504951359679551242591116148947021906094937851711490354222952095547528957693126887613639678705681963935366612268633312974563985842736372090890180617815311501701632981321515432484471849699672775476719081050251980225040193875433699206601073412625250872808698076544674738463035355454456121841626045107584918065591153817913408517890082472737080540223878321762992972410570866528836025105244012209935563965916253623055211303285168847073613808114369411535203501861693693382080231660832816686974478652940632036664064009820827787700378682447066582991251049171070743033418779485869004195074450587815269669791279983024866553429863894886104921735369139083483382066294588526891045582049613755256052131231649514654972966178548929895510020575000489756773183647410471120791133019413324505132916073078671286531755800876121922486946348321832933190103949298275357935030005421491785793046152341508650638094516984932187801618292854498359378341203337611191603977721152951873742834194848018977353087919315196922207360157120244931954676449537615472200211663895751183219105553251781498303774691179048935356647706262138479171125982837732029487220289929050361115052019524448204492723806394476377889386330673878717736069059520163714119404600790656990632504552032535012523822305486318523370513635621060235542745287527797119024615315524776557021959772641140638025544956864984107620279729208611154772037786277129571419787245784299822601110705352672303743026981190009391886359080441446758512490500172260475515620144017245628984382871911086739135251344881616181586394294970094807420230944736301253115490636058408786947270833879401256606829167341167319599069990231984371453868751398961617952711700908841856593846776879099191883703044103030270990751328482064483028243025735495407556953014947005824733659462289825481655560843804043824769952091727949261552893631131171402345203398876399973703512323298509781936927529344983243649920045181081854630302000442828557200620175112403055925668882411488199533039662576484166391626880356131200131735902935185364263931013837802288902409759359355499335152062107676356613853552900521437366408607164123925123106931716525179506105719947521708763964290232166296587076190970533267520967492793955901667479585543234258273010952729807871208793258036194812843604890749893106832654021698538963331252797544959727196665404869215063482397918903867272965571023483642159125926476912176699639857225809690716016078379481795740570449803692595930999255872885710136268910999464227430877724847308823758694601754857562701110155528772391387262999010311212322225267052601365308261705639577043427364702940193850161066780554607622313267333959237090638131314759132309216120177908737745884162504702360217864073377848697013930478493456788561878288479194979055253755037648829029500544912599341660891091665483424777671735375816068573926801456962846825368008989702854021800075916280392048348193461354046207322314210633505463360467578298773774435790405399157281786721234943293791368008041722928278664777691157305956505785383947905100057302890579587302166342120358974372754372872541217331557287653474210021726975445177189727276819815657222903264985808012707684839667081772833868715438802709153022728705105031244259935146760880298882794445860658475575792324258790551862571641690663806292430622208686693332888784958761724456381003260710312077815435297538518242564929172334577854881396825591167963357004600883948003137119678083070500257211641152781200192766767895568319892352804805932283161018131925673494690882772074650242464999738629816925072808586006182538167614200789785035629596087474144466761482553428284142588218791494641062490622032137298842264947199186374873177029501381708611613677302806136035480441388282036552132138841716628509467499447975577589530442289033762275299710613961403637626340807155794757950708121682872725408959131608221961728101059848750127739236899402796258466675233864321707643169553792932018783310818033346134964143322093442939400667515603481899003835162585233915188122824792167635143651924799372586505332221074914934514760797749216896978941206642416095331576672865008789443585794000211742301298327183940806852090191762824254853056309139551970429111972354520405645209054366777862700804146585864371987907749278935777965701110306832386751859371479255613418512485765760555871309298784560212032194923003907496897018433075836965323581412154783166946346744428279105100655378903272285763944720996885909936089654024299100644263331327767244943122817996772543361279180966064672912362534045025486554741312988904547772914442786976424495117178253987458386655306723919834463886880821301419776603785745252755557038551620859459068645698573911331539260016305778620547340443196907747402984262652685037387689975202222334958842377444064761082544811610247427879760506562947893478261966266562088390087592289218332744305736462697807939901096192985743011295580736815521583060446384820462326584788364022272993072162900837983643836790945732716915292067804976862168832502077423913443763380086198056715556194332164228952220671316740066474218313460471036762395019671708948679220464598892047775188314989831520601300383430346852539225658383660513340242790528861381994505603942251766193585796324387023299819901150746431701473489428761347288225703471935374827659244160818813968485433822586173617877093528294838237729248443030151347304407024424602246851909843278270112431533547183701442723817013556863017225393316190954439740004176401118456120470695482475145751480293292924381004825608676466271230628127137012962529793060628288706941086491894954469338533267334984762318300961538322278632163353072209511164975907696608971493168718351773027905848122556318380404476416679791368233930500708607898585182251273732403943782282217707180705457202364581394231049299711359989241116127417863608988453036206819504793409312094770827877527831438329210844958013156191516642557496194344662967934527508734165694986834505037582371083926682117708402083362758455833163247471019804075134471684301590971054088201392243291105627895037723472487700384384142442600932436377754061783237853958654971935644435099537461333877617923266719477992012358971737026797738961282057526654532979867650688831407697483208373350805102675789913913370857150436930310955199979682920251779715295323383234242159521858944421561728611493448281784849708903069228539652358806508758883901294888311731898066362633808599155718804065357104633240322586676876492098872286492069122095347083849388803610848178708537727347409727713729758311174420442204814997056161625063522226028834413537214757795106693725756976796016872804245918674152535343219388678315833863151173307705462521847505142623023135860123548468189169364228319406465571824677625459577931586309105070326976023814457843647579244726326274217409886803234209460432717883681250823213894138001742393647663884328007985442375261798156886354777560581788409451906041644213611347222839437476743989946771688189779947613380830985313503452241539809629551138450343487231621412402730867918623024730351871913009359012065272099587066556464350102844586646576269962420962843375185255282480760530300273350905771143846321760021340783851726040870865611301179213265010668549531813137622712712471654459823172974998830193949501086811043425873229201001357309519686809307712937850658512976858600218854269006778302182101804680783098790243606248369074694923040780750148982242568917935538607817500358501809915759153570083307435399778675000028069389791765230172882916437340719729688945916768000740662751715260799579416264328592773552338263453232989706550225583267654453238061388961817918948042978013808323912671850193394214507838934754090238826539396920578288785777566233074104665920776431035606002630387760558540272014968248008205774164247588730958230435891182025437347503861396906790511253236112412093129069999159325686537116170282694254276368451213122321754740014020684665696428870313676841698777585675123309588259802216401223005063699381336946694592020521453188081045616443987223659610560998343665957951740779920449364421573897533825829877124872526510862886875709249100536055688697754984721180300598314124296425501160726179929954673485808882923505490281148016787825903174551851579956331160005895305929944850023897401625660377838255878271148824916726088937826947600378419825196329257399717435669043740003508073312970032069615907136968929767552820124206153385656440985241715216888481688803430983199197905196623287321721135098277206211939162684535980409970102923978276363020167113959457885246021431168023130563126006094788636457495721258629057909645184021970023056306088865973025361653871853453668466131771701036990015772708402194246594253709915760360162967679851809397265209704404945866175524275135631866869451733667173811560984776637607032127648316135488630313567311614319370080322670989720128493312538276453825484922967849244178613611799004423479267653336411966847447993581611385163470916123673550475488461996894737048986825820823483834917031153219671981694781658604727474838281095177436039178327843452093971244234422938508619347801229500426091530853271877079581043192047713980075679607783871263506853423125371622968085705327808811073273414497068217496959506130828244747101975344644955717745784679510871578463687816847949632549637836832109634038683216845600829859764224207606572357513493886602965141063823310436494437178239397126759062774342305858493490639646924960982507399716418412027391675356371211788726174163879476396280206644730394820688013164282476218680961426033484517357646773224158964531843734394573495073931584569761327727971156390797470502971711684412985185189402303102920933495266696435626572255802588629175547491762157411023531595474171002613894275434829735766177620381429817072640018383574508088003217366330790847663648835052962657865145969197601887972401448511930412428897395686765634515135390332946829319321410030173140253972628424270124748869455964180235501385061157554217185880587053516918561014041929309237078871864540219971461995521363129900491218744748043153582027428533752293059081759664145691765379824062696086848813896632305457778879356756109661787023899153831719765405501763907486782694632578397143208506174951644649973250645219838125540861267477666168421019783917380690102342905790147389204900443775055531078761938794101603342049334184682491513825677637027059609923578768146131872891244338967253886055975105947665169833480987640423589619946060167887477773138891527330642482709927311531797969170022000048082249279397138030904469237091382342940507807925680771784882970091721894097870194403402340752384107280643557176639293217428295589691246132221966998703784190665547486396385495411986891741946764584300868409884981323977071622595170758260841220472599053516305115324538909015491336032930050680142347511852218516430404234007050218340036734248318232125438849875722680702377411519274326434224798394036065799737550885409584542959485731199778738462304426676805468263775681678832551806524871428187790503621532588639014196960751416369643381677125098398945755309012769810680789839185159456701777865637827529251640379107592620879998685698514547345046929779118880315698032106757210547976710874143317654586102743630035754840827727422196833312900471066368731855416605582507508795081068078998698515617172017375041136713588586046693737649738980798334961810100399311750624331691115670938035023018365662938481352504135985250639614269429986496996718848724674735282727109073224703665808541538172357113481911145262545196232350042006750788772217888669692506275996281071801914667209745855974348539737561097358435151905099116852180162807309332663620920109448967243757969835380710126920088007847471624235002201096333724573771672195599818888864779898744718243734816479114911321790358177453752887026174831283599888477077458832933866751381515998670321840723489769634078478503936198465014858900030578851308531754622282229060156684587236838611468139536590248862605889855837269406356981674735231116967126809692235603563747463643496448279534996215042575024479536589679224745293788364475101684640280740485261936782892504152189718229793996009272069747102212720315517535420309579179742634011024778041085362740863148592689210581549681769702009837803160176843680912168607186980248966563229520614794718860247648368111376405018764796512912522569274052257117001163421123800339984322889231234600181994575012326009655278678643605201712419414526883127051399041902179775067330600651180356643352314358400728234752928847816791445981128749156365764261568763111230193395566198580804291052355383912535790517276142623306586028232161790513841266296335550976171697551580647794204531679239893755610126769189428289421100709565078470204737075495507630086913780612631508971015551160126754591116595499643738055166337347258993777924203092323049512443742223521111379652840286660042515169726162817409475095173132721212956454229001084157372318308615586739999866901001603856782899854845058607990412519820947906290269773558935158578288993526799498213535833114304707778875200421915920770594801207593830135008045623089634924568229494965850932214232338566093345695445278616915829954102291560937676219748153172766894790419880692787654134055187826101156586659711490072660055851373586360970436257669840598291106337635894892238826479905878179746805004099334063163971107336513218475722198032988635610916823057667809964546839293012674392687516839904042672765103458412277186946436653839864326677906381881463445938173574948423702655605567220865347785703054381778023756168682428342772067740054447446510823198292208518836884895164298300891893417053853321004791307808012617654066135316982677080216859692531834293790376946223347748273223162670594147337356865942945611494078564156950453315283320878596743174724923237813837515735033583224875877059291255954293281837863513461125038206590946602879191004573958121813053840379822305313724367871453853976891931358941501995408213631279802415614660566511109798459367942842719353346874452662327470759378979698893126986916462620433016284564899100161196573207646479705148343597077462975779447074346545857825007114752254835103293974794614654151668845832106198758968352549703648843221236893358724443432701564178546215744381311838291419791927582452419597154674784647315919350741015026584964714723304222362796854518961934942838900956196369697819830869680732888915253807455427901057985779096335122476320353275682421900438368067799553270862434455013352933969000366927786485732774787710952229780361630197395556872737194798371206154432653146335458993750728189747587858824806041531935438764595639987885573258149005387572856744274541941428183751864686347001483051535013500616278218163487348347809881887154501807785174434802517263357798023275197778219458474161297078577283230173677314955550590831794296663307655268442792333378070022318692363992437864820356394807320906440371933497729895017515497306665823513299371955518932442619586978482023114689988109236103606331440445305196783904524768492132970220989578803755505440514606752064526918359745791816448990120823522999824053603953660742559602010671676427004872800806787534638537475854368593593293358329221162269591529167755159493571210194149710824856979825652214920412228971571397805744559546172059974494058635418658936389729881182190461765378391090442489048412771714596840621867065085639841210049201012031183073319453529553081378527181492281773990826432274902339114481894319605124872993173037177693054977981789625922261411514203394332702311230917209681339480061949157891615539923707552202396399286878949439612028891965584109614991101417351488921064450463716768436139369949070679084072785167734988836424334028147532902296534205890828834420160506902513249900050078102315752202702279631075657584922474704796789563869278630549361532591987886150300616721320238901550590538295528216798427546045085771144474617032662079635441896836257112464471020330376943920775247518605329553693805311225205523842608906027471010137529026809116846756620569847747306571577759892447580496841536846077335748001420516001106471847420571510007845219271711461956369314284956030523014112983032825301114613691071961745918932779098444822155409916135509052658562934112539831874455060294046839670075828580019185767444804488666734962458397660893315595858525533302575384558505633248156058030313272701596230909669847836792632917006832916256777900368447756644005256357565225576260304007147532908250289532518907515739594675872093249783822764916668620799015563378938316039001181057719998883177411909447397479406536163309234569939320474454575458768546075797503328493699135935773499080952504258422167200045788588218683388854680672016797686618254173199943354019470805190985426685983295386460663981765112245459708295372008623685599884338791647947103798953706849459337117501296744481946387801438171543384746118874396749076586317246102220925806115072593036356698764757769072609082336478127763540021311997743206566949332274961803928163493779893445194445661854907442618602172639548856894891665759144601943451334485081718386954981551214336059634342735987455851149547684042721971563673301983036294911390106025976968445679510627455876095509014814158713321571977826650219039798584681088011399908804987091645560625021091549609963810013126570023625244867784998216090616257499881694207491355030733371832054225671070265569162813242316841968757726392228519516714959782751433812878789273677786233943364664284905996775359586067101388325672921385395842858894723477867131824457939811436479850100617619432658195744987110186247211840138536310362306660992120846701706960815622698649052210762518148269378587386635182503629726489632407942748095877684865487309903048563114469255327703343997805418422297261063619653251938393352465592979966590582126544799240455450597730461001108906812030081573824016343201934036024293337408132524690136703186641949549810051883524326293492787193654189285002164155179818175789887745219384484408769154356361083535642633744765241368389044759433267330453996121059773286126426493707932376981898932050363580827655867361963965024811462538469677749317940516238044990451329103122315193394282324939945289216116267511962741243727455370535831839848389668556519083198865940399502832784399489151176715303330734764896742080958100602033871777848215642376981262848858815894907675528385894414217499594690596387020066273067092688170866097735852982964170818441729887999286007071694581932455094986278630668124077577990428504491522856048015538204285133289983064949485870028330117171643089989587103102038279402405674268873532006898169989121064679929904864601534186767036952097705810564958629408175575941850201273567726752380375264485268564057686070911789415604655054590145499214576504550837092756389032334344012877189849877989177049609008698575046595963382783791830562173898335312577797816603927079680949184422930808378222646198332417675233651858222388598163860584518764205446072459036902504431243183716912172417977181386760158824373715276465436707957146870013731331537781405986750289344152464332371290656882394347237853991200330947716311931311933248258578940625777134167322977292109084753842711696348111755831713121864447057980103230765913548608879610524448566245259651392722838145916484579635485429265128982916736952896769071911291017703001569275734713497886002225324636047793419682186756805437273090353767774161275366971047621816805148835400903410578322125373399699206462153298328760451994650329094482325503993862927650408860218899909949626005814960182119916062056583452162601388809373729417137565886799057410827593599102866858513977791423908562124616467589364163082230813008305839116382406042882722744202943342589496163618086458932730542049612387872507806624857883024952830664568936687323136120033376239710749502364166268061342924088019068667031730046485635231875003985482341504788145212562270109663164948436018417167048099218178235496173664213162358906483570369220837795666881703382250806590998333440583928446818763792558198841508785816064393313271830252395347685024856814381947319113313395078229360328816953568675093755956682156318725495165038387505866569107604009053043107188733291292093567563557500272544661577656381697391970370871331189394754810660301077581381112016974493399131267187903258608153334113538930979310592447505823846214699599084253809666804710590908818674225505802874268249568276696942777773527711787124041012316049650069958242300599463971855121454268534618804317219046241274347801887496285661070402908922748095084947016351739982427972313791361907554765688548769139264009375669168832683723524879547263366100959852458294078947735091468257950181899465790069703825660505653206890489459516940851320923499998680146579438858108418292421085740609488534132029645627740859804425661736406541882713730724174127876039054813849463857391678788424733254672830712675884642439146962696989545841755890568803718412494920943633491791088393753058887543925482208645348153444260343559091705958672109674655804613233131552051399926079648728872646007952494510102245552868733952151601325681841907443683219418259010173385037476015868536439006552720876956671107948649616918331787762172435307121079769276009338463990500070910035808226736800387708151682048748981659214693095272076442173838518864916615630960524832267709953799060745165208246223881598601161260880316038838252845461381698026083508295951787838189489055851446744597032598137068991519766324199407198026656752261859379498992388804671847182396429123901099305278169307216448323354649147067180888850885233576935135056657725428028231484882104647716448312053963889343704463055547731371393481862802682863191318985984762370273648175809149088255404936888036289588760622453476093667439582526381887763714619716609923220427682332494199580388733285513854914948592429368100641829095228270916247263244859622286796521421495753701041722032434812550506809109584996351165882139262764939137588085687696971420124883245560553023908901400138427403394783957053204813961338533753070404098130171371912187075443471071554710487550889868711018547804711287692809072223623013624708699036685780164929719713886399848814963050495648010385363460574283621391706630893921484843931269720601677027800910606638189260829208975348169598672475875425277574048132397658779758946612955786416706281421102961041731163233845211849307355933368454612419388410444541426174830319530496014821222454904229219130807523003497215223477971880632864869368138930534599344601497272652240163410121882657884208720183867355268597971034253003691369177742194904919330603560951977680800109416574175399303040330751702765778502948989913239912266043130604815892373275983802106519656165521045031715037155303321705975760748933989792442933305175482049803306796171733696833749982940940845296821477424435376195614155966510763298001646243544814746583316552886179437837705229818455298742405708188324048862250199716957305855894775789259921409029270186675866782032572213397770213570688933031536370939050636507890871745610692182477493584820911198831098606533922269337949903311414197210525246422107928485451073171237172266173465780239080012142271954572621430047170999451049873434345010862762973020477760623108856270160170402849163625347473720594131091320293959891178297451318606792538278584174044410202175303619373667570924393402937328407117343541046854477233513224113378266975337254376931932966282455528971934858717570111704822355493385778250014381767743351870902325032849247965244373421595625848123972329992953936604439059050267929839280813124079556700320674616410958397669060641901207796351796751271124296827165414625166561984790344901196182574922534604364791139935989869946186933768145489419654897828899953856761056047896783442415993704055716782777815371149614192186590968809510374141000517531600716309785565871896535745680841187823391449439928825647907423254781344070447607493614414138594882020041751755936804078626519755605179610344585620038458067066215541723559013001260811295735208448768114979812818419307534541017482876820340829916886174248099439806941164503224830855466253599140526996109609379284145768694775553478815504627660170811366102811607450068453882171045885197340249976806034761730694271615421348848782789972116655231753271604865510548266523488005941902960374237508107229354479657802044422747955432682731917878028780985466814220466325552961436216005299172859552094922308739637460813799735444268048474930479007045644255858829956080095442592009128179034810822758554196122751640112635048859238663515873454834107690236829249669693001044234694289473439748049816567677580078623970784909277146413210552834213174121869608274748715234250777270314051403563140787114560366652257592901439766797855940928893735070717864021497551714314283694688802372085809294118834892076764065864341117145917964262974295663385243434468857037664601988852832579364252225308435112465141663036773029649333941608805567509460907570170401257219133479164913503959353426022506314701897182329598903575951687574049092776116418440469359171517914634750564991528492852366675103883927311616809408351547370397715563752677291751920537033434622746593272677817448925125175128699747966670695760273537962035339372665103193244106985406870905945730829449967777475744990041730040838560978104252529206076461983937832063137068661799536290787455295603193796909349894697443503078929868977588894632474096973165546109007952704410992682346693568794432692141576248759486256337228003294130437360494425125518861289564774609932221702084629088081815290538935504028851352218786384360637524568901850821397394019790036580502656713374063778231218328597326710595916349406527900556761153500074140412685007605759384544781563942328086137751640893041513964262520998452870436795897678024527360164861499861576056668569365850249815492841478423219172245871891554846876073439613034716030637772035140990374085537537737410127953980838830292006911118515680504943431320468544384073137605465662850748041063323462614847044911390541415677628047861277126453708554422507295611117346604948794750727885907727792747496221005112551651842486505836939486567864656353384957375482518508427577509216722277468766845338716849591913079646368481785337210176984489687295301522677702138603408373673740779693256376111309246997789414925852007204357469300893050893128234044456328416523497285967708298205514695219551778131869187222530802053767905061807734087735214269589236795123248553711503087724442820985287913254857315228314267530254452736937888761234248737837009568474571797595413920918630647365792871333466643980914694928477608602627564430264225064286060857089774242271891719401560824189585969995227559751540491552733439077616972244402455965867542918572459934023328811071861194140459266831053186226094825653560651920727713879939201530473416981006186064594888071779104294095688509412798747251406369003916373507512308023980184706721571175635090403826345293546217162148967719143398092461767412281876658931538505946887135984598477909499432226949668574779915865096068451265285292908978736419007898838660714657611960250776896033685752838561763534890822189309930944703756964650518635446161445763548319913423538649192379834633839202014556460193872736766887400044150563263122419147974148479670373765747578562529476129052249781172331074659598234597395724090510814249150084067391544550922084755557880293871807015546899819617008832270703983900683501124880245042350459296565056341030859687222037155396532259851015810323180674313181594673903754259919054362717215283656394566198822314172484237263473933950008138324021851036504442579080426192567875248309222892634562237124265869652929928625638525937265543975983045944383468660324072097935329937695631829024876708237013292731461301540545139927185007058291622067110290583050969081309974104848958548970711203684508395312792613611428130564439085415285112889735822603054796636678866614340144065127865623524689592226459633930645560432746920689714632304304484516819618093010699007779060751538076187686249850317141512202438135754192020399875574937775002399648605874422060150512410130460154390819821262477853165647102308947194497748716452609332241925794139100352137434334996059576219967866691792796220548604867863990635682852016146838101426397824984958394083386808073210867762060057199554283237160344291190381116322603722348536049039192329285166840546215102370989069792451987660259105353271089082484531058366815721871486052797042423691737670648689662050882550706013850117111184141952244061256365395984421560098268531638114950314927329878817806814127241545053469481020731192178496888139167195987690931092592816316477887603789340420853001823439737370461724137782107823068511889237582658098608407048988440521848230858592817450863233640882772673248925168102328648818313542678477334525938366775000198595045447647134465880156373509609845312948534152180216353669824094193088220711122029299118033279702281305870226038916172579445356981047903639768456033788070396126186184280392920426150842374489082148215082609096889028973546607377174586737077507397516730188144612021261071596837323749517402654794187549291967082062755253053050413027781766321564437192606011648914747693541718203196722915316202564232221759500338054649744988074546241053325250171046931886466092664216164362855533589281841794136534158649869674668568973725037350356333640064731856961869738454305599788407281767957595549964869306700819412454082310684563151861705493014594054237652926104616785030473132380624974605660446627241155826118044270920115867778707153395350291878605018807379851575430430496338755390653854756787687609576428520463261007965120934041864432148866227314239923639208021481383372183047390764299468900790891857453558296270407589537936412029484000845419849102853748389488260622845353943227727453704553278246510981290289970015118814813122639065284312169919740844997065478944112952561313766318220897180264292692273687675671488199048612759178376460639661501917345918849470471487749652733917918881707207216855454256620405042508086918325010830840493228283082359705233259916727662609178648725879209387954989949463939029568458696584218309972189504555248978972439863696384370221243620087869877494348119419244502657340038402319757119178401874620568975270298414934931492891768130894852927914714954700777454972708504802592326631673892191734015522647861077656536882021873885176264413939401049041504634798637923425367369899815514875089097943606554586108470866288669461636510929352750193776020814397925101386815958696950057096971138863001908112533572872593547202398413237888727021813765372009558657656067957341137494091471498776598059820444789568425746711544784420232262112616732729319992148216587184758312674787137763371412653788294920360205845050857800126234485849663423026717269197173049019859551577539338487680523445098849490189229765129573067120722152464381047735868001257035036392601872048544724569017868053684092418943813493336285748738725880050996025510019494551493010176555366645453607614956017353668912851302937878979076761034769498415024654392018009638748671882624095215319362852341500353557027657851328017315368965674339697912274880285024925723873029539430654658073679879472565422132505616652006406744994113262094183439852855749773104617845143254501654448220827803919938613808443048506691556855619410673525437389642378844628016555808677922469581857299442970887168938199667050014063296291298842117045037046060859259753926289616825118496298809551172764749944287016477406639433425416326235117330422223481653911137660536524934803354540536339271709687863868483767229813765830899068445338319351022318424085479546692840553222496124253326596292102253301793691508799593487318268803886834211895999387369465775711524084238044117087905310632578415602936187050996394995372776979008285408187611543356929162700561459855211656755732096876373849110947378187501158654539643087760459198111877851943278519683246568803903737520116894782577677034926297656818189379701645161226077945012255875336068882664494574213050052103269951676482050271014787178603937723194359600840006928047024785391357811628347166561999319141878023444925634106048689435137611797067175050525872673843452839392890568941712605350870855353532306556900178456881748560314769022053355640952006343051513062310668729932849203547026951636992471072402475153860890595062933302164958199137738547728775305093760508053660750333562032212033425982979599996268644138301342573375776386621802672151920957001176057568323729587817128194570930016692508775204869427218357083534142295932421738902722088614589689019667915283350312423359880623536271124686235319869712601318913337521109799114027616223510591234311384436269297549566042698214120834192557285321009193723743289133829461123269533179480395495147284429592111361890448720004522196304133775685825865408953878994379152583662463207990831280980987651342839834509942739383302238998533291200403601303333144655097781279983344683022075890953290244922881798412227506623843930164246878497632187710874343914748563259945475830174654026982175303037030365933613209843529038119086582115497251110762532303698080820344163956999253240414892897726983692806504076225689547217840718382383364292927190886357025608479294195475410982661764506431649251061151361315837468113269246873578372113178200922676431078175083796998877892928470124651600247950577816237717935594773698347278364871171719822489029219071549419443089551531868457749703473708897400613319092395664244393722119323588549464709285198485155972659742959433445109607501095289410731184133447665887978316387258083848858779343332526544960080404349342958606188769600036831242856568261334206343241250207864470341564854108748960717989994145408950324606927337810094904153240217291535260094895130877914546677486083190422163192536889539842767502685009349992573163758465676803728940534772909387363510758734215720393091520159148528355273810643875845285150518083589927236057531884140638992881525193805123444927452564054413129405243205501504315545255966703875150659769286714155025244824044972257457644887793795596545005585965503778696376103967451116623021823192002392289929120703417646534415996507894641118002633606050969328654807937732816679862310898427362440815267974334012647379351337431753627977996424165134885062328358616672471488268873186728338846331494187882343656273054177364793651907006284255587701882741570063447604757855025426915565168265181264631873815127895675385179855965740260472784525670172324719917779426644364410373533164172717927941743290974671066080235085119663607142001363383489344692997825159073141027491321196102317915338459891931255456276876169939516533566179130045294710268425197576294136851621406253192509463949906972850803892283876140931264916393923620017315392750845203289897716110837831531778527906290690595905106334609334815320503889326277845462572246754903104223835821437756928271262727662569270503918162760403991506351556146184473996819505054938925308231299929547345138071322241774959843093727780281180944781125339656611035473210414590976670790912980881492679940509328729984305329320809451411875958907489676987100535966311725618919873119864453230092324573109310637791984637419772776413484031030688041826022212163559238125703915123553327933293771463630995580932970011901450364018557842869758147238391542736440968069052046148306942801478999061964939641870752171571252452458115277054951555097211248188583684679244470300995756028035952273543890253850862160609809270750391389192357407199358444499663154825204157589500463979706223614179803166193082206712037644275857249578501599957070432223270817697670222667590310189165170186498142891071395256848128616954676712470440187074624375196520432092838719541010535412737373484669967021858364694477703696129778844006032001592621983889835159177626368030613480898199335522213286430325524176186953594380137835456902282460172154430137720547680664308528247250134598705538214621586616210481318388057816245596193430633378589341780888030852352344165399612793216866802085232761070716786400040196576845039854619835854848795856364998625002146282399284359605489014109845075425484088751997063913630295458607556359247286200100206828788697556657716350940790638473918368253684844124663218942486177485135494139561912334297561821990443357386654368184853795872752601634360837704508910824662810133758102276645481050638470707351832418889415921966382716273233264060252191598640955840783337468020393811958904566306142588553687599099620257907120320473206190813093174404773344313048659424150079578390994398523165735601913731651135264302193534942950704582833384232176803840617058794686463074599420599881671283330823538258958864844484422091204645549237634317584351203406871485732561078092348365277842502723034772274581165486077757121194311884740446903771176831465533788942440505098170287292753576052412361059315074178225709895450379223615922158508573676062148344499918168460726825518232709643827452169536535198678665698823832791214157030484375012779263771667861626170737544725050662172526158041700361139207999408302248424367040428113564030533175799846291420395861618895636386688321763699037848981665464475466449047361732578777936178250197138867556124665436730319039074855434076771610310101537488947266180854429101060661436553447387655126385553143730703388468071627873510882274012138045259445160322840010648149995420085605314361456745784169544458478598917148259922516957107314000839789611250114449139533074891717913589370790706553029628580899491821233990414837146944863587482700363646586495883402373321339962724406204068833423260518289643162566650992779101665365664336492991064121639785908812907625765036804390929146180959591605374541074508082341273619745485798388895694676036806079975918427994085223180347002430746417349420513034401061868992743030906940698474645921371532485189883108657232909325144238815679388585363804261128603447198857768347511062786201452271244707737954257268674975334891474561960002824266680147364977649024437768522725176773717181514434731449604391981048106689157465936975314392892104087482987209225809778327724909996038654983211869112087218930748145936037341282248029786127521155302271229977453626399947712546582918733047124302901828882068428241740077002751018390097924991385116954993521416212497117137547811275217647577284563913398980479812960398728092895253491552386169192538532852765336989331549662419491794692530021837331799949925029195114769708627534742501583721400628598655921426374566691752133280295672909882579234588408800661763768988538755411468501055372687484503038978849645960896316361600732029305931193290938006464378336337230467535223041211151450166386656325755002634764478271432408703244600642246885354053497060981388708555441694437996094650550811408187712789092216919719251667160112668783852392195306475914162147104287802189941937696023506667826874956759419575564292055399557653402448219132726832925065428468390510195722163138201202284399815969928527491210125680475256229913650007354103363128663908658909285341186523508236460647962999089961310039752370406128857620592091940334041574121978244372994497063342465034527047134464469994783328717858431633109902409049821741501045233791484312768773683078009583671755218083580835768239134527321084735518256948377046621725678771662009435802443366328359799335775312245558398729507356753311388989044767103900658599003041681182160694021428563836454366361095260775182944155953988723096188711924644436493441220890963896670252378152870536454932429458702714189529778989221652922395888174809341745126603551461975355715790653015072434957999054880930525613338563908545497268637000513209673551926883034862999898232937032770313427564277599050606925648307900280722415315688730663047019539057212774604682973862189175818215619413185227252383851203765036871216177321286827822266974937786690360626652853171711321621687322061015921670451977698350887589634286503598309348507993849981051350631259300240518571622290379892751024654319351400552247399084659930793365600843991472694545301276505623459455112550676669167144840612001847883193779219548540411247692447482924333899952364499936358982423480778946613386875493559766831302057370742553369105025908570715159714277673405710596724440631201680534096242462706166085314160836877678027453441578498596392641839997747802997272350159559592439547777735308951469285317073283946423202655382942385043079310858160161594906530552020790687119394227176302329915906003919604447482690688800083284345146770000542501721182041778846036677449830374132881690524096202216229596127505530233715535601962257819618052302826378384562126408698368890880245361062438593833332607792456371698080591397820554948350337254140508633441943640432390387124056473357643512408432442217261277894389369411554236130928650247277794200039984253967200873841313478419723471230885680854971951626049226145859112073829240806926278743063444423449500506975102101960193640950647223011779835336010454456595198955341042729462321800794562515568511181306304818388799664859622911338508510656493273385744511438981160688021889023377374968242302755747967006900473889389731813235181776635003494815206014119478619960024146100411932217783593769952048691954953045127995892560329330590929586330259088948877333168800205356784598334050265761264665023075935011567734385600835944392713181005328657052723844544669758649697867492858904022962221260695947739744830925446664223794597644103862666443871442393873402882528861103591040024779659442126006437166687900302068157382905068761194971545785554490974165657712675398652301921080790661180637737000662614721551258240293991223642345455013162198284403562955243074629517706482212796870387479061486694229829871190837068242695944528527640067670724994476020036259770084973986566749234010711504523773141254937969318776123977335494706754337775006943588358221757251436253444997543200815229147341186014076701280016110193092769877962847625064309486644248748085606870150142112419007036277802613256780576059097367482136832680935195703998758712785313614248750237331298047495730445240898758100134891611511949364953768704647428954709089649629626413166178357515860877582966554125042556794024106848139849662473984296770352398095418933022208391960119770734091615202993000341107297034623199409710984836421599868095773065907434756815328365581441320007444853213135867474297381400257978729546002489104522906279674633628923190002244080470417824107662626519360966671116384582577539235681071900055701046524025620209760770574729945425875440508164092963822812790314739071698190564655518575800234814896076890489218302469929806253462974261993596486506226939974549908331516437604530874016940728564471587083426059746484253327113993463652918341012025662969444897664854068835419590790623931674524285420646052169853074068665879847397983505768005493432105379684819359451980502774779014619512918324189678568555767457279974461445060879659982016324983189464676601983133802612943366416586786104692542597837720352717008539906228389207883059801322888371700168349870764720126247707754489537262923226947988216038099749978238800064811603054803613290360010076448972573514386748195312165060647363824679934770275633985005281362535398672179486266405758608029519092157302306055506517139383733492979733091034595657865802581439272339879514044623332964230212295031260407554709016414076902611261252315060643016860034603852555102716682031000494128791029616629469783963628163641353004135778211070669365656840745255535070277941754055327662633852095467797498588779802131118178236539016766707393051745761518221679724747139744041282398643983928559156253838201847606687634223368212704669678187784546648937969243723556311898167672711655728494157860790712415015358433675961551204076599129325267535609425997327557740824543667508660841392997521938385734906135551449878272350352602868861871574693899918901830265388015879665489653890693603532447242689479193485130639298935432685398767180806724387824191868447386423698723929287980113406143506440670263689465180426445634295633606161835388368553209289101797277935481053976905314355922437925621451988488855823689916165464396231321041339584012558910093289149542251789198497231562089840538870058990612074398862342210168816745722195530968389866823531556234560656360211068832959622856835630081019258065637235962348805317185369716754712511524465260118664495116678019265781058145148805618422679672407972728613160528364889715248169264438668681035164952458455210156293033617738797895057036437330422620073182765826938954685065892326367040554271754735643939679195086513912298142144543072340342963223881240850687047063083836824027738192251770871328290137284537122047476614948204615320105691011274630494612289937457865319191611399262605188048784833991480917124321292208671261728963257737637907247148658802570089803044372090693265650139846563535282985017919818298666628365888123023615468122577848816995688104834611966797770600205528913448313384770271224938788219837876026076794933413099859446308152379657855993275023843996158121056675904548033735972009548294124523150767796552621345754856871243156047866528016500127845604652318246266367378025197030546349931662565490272660494452959488900147440702285956761802631721124573872076907117374212700854058027508965980477623073569185619516278721701534134013049969717256906565846534475174673679770896628642760440655291115034293543264203720569885892043432935628976576580151470887050639393599351018141563381674671197360929007525590648593794394245084930978227105708974037391314057272964089814671127479735697181031020845689039687945746098871047779819083322601948226157953192827217664326881829344900949776173444782751126815341501381659263289537187580708518498371746784238826140601192180734326223738312548119709330849132683799662346480567513961150860147909701132668076160322531007092212408370903713621239134700967190690957067491555747733284247437388316544603714905000338317850151992506351233482731721284859942835005635065337157311340807614867281421960972406851966679983781447289080370380125002956468539191890732647944390027190347321135171694505670611725907512562905716563474776763896794891587341214699216765327739908444666466282936626989087240637445995489693795969616905165924283007337202589356414992783975303966911372549793827551793948252930620212438771279577028485493865821157567017929745407029091006214970994385539916234061185900915783978074637290267663348302776991131783763665924915648363140583580357597167817610786014537759419511849975898226739553759820296934545388423753838980325513007655474226100972272325007738245070276375097668395632535924552165576512659796295776783155552954359994407263181192161686998665374263945044268188245598320379672238225436517031866763792979093499582612382774976504610483224750554648222165601597695341451236854415173055945051207903125119767870956317446542320448442581283321482693515722191219421304441950764598638560395034143004285584863839545761580580999116733988240412071073489048733893618812071502952839813031628604046080185818755910009421812703200923826506409741345048640496896716179194942085170992652497615838712837588186277174391853347873842501255450408576089183481223283401634051239350430220925585202036382169155111755099760646029878927470648850052660731277270115136130595659785617345925998570357210227615433982250188713243524060962696044878375458702808879924164466197869306432923296299970211998612423423085813345366421174093863930654930291391483078951037746475486788948504835909124061857960695885556517320975717827302382767860579012771531885769735595180184768160406579928167181591687374041132894015818787221060895469825105193831064343894035483878777644075418292060323306759374687134672093651079808782822549630906369755063485235954799439104794951344782533389767404858052867559318426908025667152833813324465816977832460210196774185676658088080191912071655644022456164801758027239318105160912710456136447258686262051279623688256961352286479121846263374414110096735678677953143010634114524896516307478833890527456906303182053862678280715013472662446358829123800652211320719645373566365438599860278852517335807025406000473391848809672048645643689468408336723962260254748548230987597887087479939104392458730552790728580657316702974866879215353106934457187629432648594142065800187105631750832930124285891478196921174245356186203945007406722895191071267287280438716366734651429669790915022449627310254384864358422858474861252748381178331971271703366934375207655098830903204366475051921095832738280468234340739076190531694138666066782146074532414042091248566008516243655197083233762677510424990236711445533406530212663631190171429411003118795039384598348870136437050078647139364570932998046071492459984198831104461734091243599173979926579735338339795045347775020820940477050099961484400883157340632629040587554876872606145081440190441717434505613085226954722352311402094027073024924875136222048925108989463337735860128998347398725017582569684277881364174727546079124036127747154366473571786026903430636153353454416261476237541199166524685194924172221168512864944011310213405119984004109631466772245832008741903436028275945814878758286421063957800835204811214944772973983946546946800180134597652864819089367359710790876375703379739960499954631146959775845533323537717724715225592091183131216265023560169521640956374008872286244658685983997741993430610907079005218139012314198112552182120824464382588253829765451112643027025585552547190777448722518550596621159425423937835233156640930586759804436928026584709478907345866721979942406452915985333056782701827433988212116400097609280491237569082003298493305024129823567534325342285436002215479274871177510572349646836959875174248074895121270388259383907098811202439507718202611278473736922212908330909348961295122961449420943299683253614992574271028010128274305279538870253236367117336497088948285912114768207979415473305963794874829285790763352183536449872230862139196061998954548861882959757663491279407188348024784615056908837271690492676458837219259021814324680887208969168044049070225027711132657419520625695685398349101334168587587496356704853949007994325046807393694204579116788335733936372462474287238876364316138781306329585717648653152833663423405190422292912831928694224822392142280873344718312525996497302788542049068980303643997947884245817070801698226780039871415560954949333932368055650537569114891898355112870145269364146749162099848630032598046116834695608471085905303104954908757301672849885639467303568753530104355219611502050233374885853096328766597019441506148119608069989615716121509079485848899925569496206821665744624448592833166429697569259644029898979562085132871302143280243801401857398892661081621213487528823222899055484077315655721047440914084099250518502369448495595885617128250377034148553941617585850751709607596500966333074420744828677223781223794927034079188816633087757532364904702049631696859354308486850289008532964044693810731711671859726692697463323683393873792832487459652437214535884162733385954474572339599778847963056172631945569736986988178183781735685251013697650980793193663169764433107071714571527056285369313436079047481957267766863785734975621865900486675297725498880843220623079914605205522174380386819214397897267153165428833630467248361855682578256851071214392991132741489692804754633360080458153347386746497866881046119260311753887516542071942090106393040747133912486737840416909808091810840680838026740628609355915853470080978190128189244859244611806181203170792259705203046502421261894487793348648559257961420332757129173496145833344413215787576319915783053246076085574623233908141535374567063040508947679343759693248964798454770160153162633386022546499070767664062208984863355882732039319088761046399363155076540178715723667775924013371316566869474198505865149691893827758601486784997093089642425871959630358343078761763193418375008496829477507192572393310915512258783509200470371900382331876885213615034568346377292322206007399286782931593969683325217561538112938151660581411474412890723509585232534400713775611954045471056404892565101054066163427833576620167930739773782445363682800649768163796575573408564539302574161200367074265874325080429190435502824953416978682406887061063984851422891945528045204731562089771970989813694214947226051905373739142427737092054082648487822645970784728605588535356343461503220257919301471096722038975705208355231542663229483060894824419485370449408394198873801522326559847660934596072047372876944493158879992455541259559566958616656547218843895802114593079256472425377153192491657500164017854192932400534917259259611209149114901852155337602426532668861276903594749381290459217195221520931997584715503476111724755227751719731751366974703070354092214437598583494769900508228313405030044880715854034264402488645887325979639988294390251534054986962630782794675981360835510348326289517258401913080165756886966739732700382678330982461653656651999788557597148951252188661737943996576213483036956311869435590055004793992421050388100190279118221962010314615225852171842794801639489089893589946707996194591402931609616217826058999206179295946525745624758808107476787635675872483769857998656379025237113212166747449150047942914509273699523499568535760605723534856477004848394839068677163719853236895615550741816744549649526022199962608660544919641830380283174702121124458720176265992594528787011456991006673781090880641843530969346554089649672618011336294409588164074156690001632696153377816432775974718500578508001006753852863091098927884650019955876031587080404546902200112751623256397543390600867459603747353835642889322273899596962082583100238156770742207945000673256404910360985993908844969201861649468601240791254850983943258790426629545864604927486167302177842847574319180015471040562143103997195461565934003385477251830144859044371433436360240052987027252192083496164597871557047363191591476934491450234930922103721327894599056414723883662409221118891481245307109565750434110923597520309523817176584559320247171118214525068571717359620231648762374749368007624198167475771334952802260154043547230446866703222760971633881324224980543970709284161072308641584746341320633481540549420167932088465048704037071387736466307609712507831000014079752977633608751195222723742118962708426769287227287188440365384470698991219529550314264765409974764811385109985359257147695063565425085341885114155349081152961934606010139957659795381306486702635642150841546161528325818826301212538491458885133789132759636885278225480234008671411280111429632725998285308419357752914340557096703725781825144552033829403661694374105340602691401897518787492825988383630306717537072412122616223039887878411649708482961502350822204186020524459465672834002576489988893174396852510500013040199310031372751306827984826078186119932644139580356736591521970727779564578995316998875886757632730811264407950869362697973021487333038747600293039842266625260479218452477011532293995680297007251356110882947560665707792979247661271930255388469200643430411608388418242690073604117090318660454278428299044562256858604609431226353429396057013988677558402247511544651381461038326877403647836672479669632029649313938839603748699526559424082423164081863484060726393972057045409980719746151609067317096024115354659221672651499653082085587784775941055126076766911366267124294732292957352716870959593623594041266217945202144212228339677373963517670932756230148348563939745827175740827510000514066444484374425614349658308602982292256515651901929257949522395476573291734382954316286811128039142726204266599958105898964361425579453229819565478177505450530888127999324065960658987037266921059000753571107568547982262370938394635276611059563629434698503345854366763640508153840685094444964872452178676995745958181801229791133572553456472347450806975456390824571713256865956953374249026446733280705666887068175425182764797724494499170460214223748180940040174312268882069032621499404110310062727242026451625212534061773935089410409467638374152510435949685617225415801697474150587255385664568346712036552789858723581767314596565078459593944923928596468868655048858853359024420101142965408624928787227449154862214517740978814444381716980876782183790993555590005575389559099399180206472382305493178504138060111683436841279115496310653703167187385991333353417601000700260668781305752227156347366981293234779417221650322610096152286716375041462063867012658122086421076506883472267165986250054075447343015645758095720337170771562812448293589776720294920171355910629166580666473653380442612669260499808517129974250251099542062034806796408173930398085594539767710127520112735679033658975132283243748066954109682639247441232561144463028199099566818576144498018847263023824681336441534940956592632078890502171821437973174878695140230617181412714660731061795158967398934957196257041387338247012000419789926582734932699605084938935719662840552580101630836128105915782080159495613130768658899828324856370686109258872016652129048217237183025278595435062717058360165725284919298398131496138646065965276081222227046670875170364751358055299743631851115122759164418311414424825904449131588067830261070110408885504815962289732889174068061502887778915917311719141294502372402291679037367615562483613077399293716022230324928039903656662554216687568832691765120396968405606609760039662609943568762704272341705860600120286588718573119498786493210783704627737847429629821585063581089766623198519202824711842238941596533336541815184398366712884425465903817727605944463953713056010773721797991241939278885183539997898793498418507015105353855584068728733040672880929965844504407465676834782585477419092697829862310998965403079330589669105749201188936298335219483701712145289698382632301552254669112107101188142445530146312442062820463645563624782806026909423906338032710122570078328109528296198372784905455333675021100005338115461696131613582640405129674549316588000718500251860285711060781946713967657923323842166541866559976003300448720283063569980913907708879213316436722242422062413039839362116340557674967877681892584682329561519141707878198266758417419810750675428520261182962804631025135847260609052769437443078969542056398724505828414134442269578848377529212445832851767722572470113535553556697663138522203493539412630449337643213449125472829953065670990580849918324507766113672023255700668262790245670678148176492103159880878093682787726993833998580655499830372200461961255766669631538675500938442734973665210753501400712401685334495609059586802097446889213487357056232283156863455819921863119916502033270680622975573698559661518294222340867765797975642100130756375746769624613517917333334205729768193842075789371387491725966535688974989792316634077746996435611223381786940355797911753391592942034802563819098192819558812029054600543494340005205866711016570021462454863611075993330253363669927377631062588617075624512769961969208350627624464489477056052928752781703140026434172014060856394152758771634120365762742338362224158282190409326065532601700933682601967908931184894697660070955974567727714497772892113036233619517478386514300085226192867758267673423861784673105616339133744929560911265308393340106245600471083450363486768420655472525189537065471535271614550547863520231587177622934182065644820710407315534233542224085147601573076000217900744391137330375461827293087736733024157083386439715387863785635355207441652356624025006687512640981449989833296445954146772961719059367280829558749509637053127263709224047110420243389510727544853209879946460660388505184853279629369536576733082289902965936950680828000983620723051208048457946496375019077575573953466962305730421227406775385952893925887151549950589950345068312634947240062392285792268922621498984726674170057999035356391987919420845715935117137946457629655192293865895456943421722606780838071256016200038230638448544672603737874601843992014011283782175154940755958471399920160973195622772486397512174893853766795028023486963673774471367047722487521385788682608499261109836648226449078059592221808739486388144102275866290388473774389504939660257084357135501851151033820643345576358863251622487238594339018533743831421992230342986743481893284516597291984984374402381421065039990257946199536907711653287111189085545683326935548306680708473025584039083882558488468282731498430393165574586013135520705982766474453059054500564056632219274502023604467154966345973358016373917067023936859606535048109614165197015057967110519835177523403000654483350176679158592669612791785109585660847514716719911889596472525130197475990722051160595808714412038805635344683221754601589577302750465685553760345439373818176486249053076356738164603484706954518614739760914844380160210396418107605522547492573339947423669331768489351812826276939652446969992244280682263074660565849102136889622537651474399703653026194112158149729284396504207240197695118624957688102472431378630851604335083046250481822722095702707789432732502773121700702931460436668384599601033852525389456866101425060099684438674682511527419360160082565543326833686630915703169699464075967804322530525192543688523705132080791181529165070819546100772809442271884199282126018119905361135812463417735261304185596200548930842018127195241792480681000514386592264792673569347955254470910671591687444415908023066256918152026232609241061785252839036866545682404180163454087825810778785620091567378131356164350186467521389295558589297241483034878562815932311983095730466772614126909963390846032337286414760478933640482714573777857797970983673700386344347579078745444001101390258927726156941824295876347039059601232244748367993734214653357996299751643135663447907202794406790620311765365985488525058691755681249170577328924022811382230030435926029761303803664611915461205120025237135324468195150033753020492751093543515421069575973041563423906078427291644908943307611714537084837587973944844687434557303991067567128166484199810319908356191823490004967945655485921407676577810138684498131303509505984281148368987820987659387518365771014695646939941672779273830175529031591859624646834836967036778536079329483371804217311085938309558853738653273958263695798029951486533602816778348915903040827973144311273088028737051809458878335098196042009026711907954137353296816012548772396194131996292342502237867850630664461926878330443049263070392882051310769841404381434726246807583914138861142317649575502883133642675673495417414239433949699832398278248221432225618425851963267250807673054525092439293031435971465712823568338292689105500732251031708826010382960625143782242370949964970859328161811974639181140279552304335495229880358880168204389303126589760035191136328755116165631427606329646121724952238402438060766724313553376221724265485452161653472233857777474295356131582272152455555517975471171837069484612936407271400893458493757700519520199588803622092224167272922312109833479316967249715057294857838856635638619454231728349960431429345677915916193829806045060122170754752825392521533526530041568868449285727870826114089338842314845168641179483795657863402196883176872695188062327495881684875130326639396513918693919722586972837205694011713291112466241145738783143254600887332674442333262896025507418652790986297214064285021699630024574085311476534403216541361601344491311681219438868865539354716363577526222150501406441324847196916814498617124154830673348379720740452945738486283836689762621574764445586669879681768971136717125018096515664821636940313255533785281692857232944985497673427517004762926349252679874489210380675541790652192372594301640058887525677252075571901232399436852976211794062526275031038843196371163808876902193823197955385669843371186547074899497719069505401867946263077660476489763709052403898045009700486644267236703384352687220147184056943845580330625828007620762786456320478771274435069320631692240225860110068393549129690571501035411093031888823405519534834505563536041859558204062474528795897474978485921071778180016444397102420565086406484633949529131583533083538313283312289002552967197776913127992703647064723687344733450447357455842038611523000423635598132488906325148544179173957561640223060756516469098755842851906377311158845083524175866820768443573253568124881057825658019280713667487343561366473821172013151797772441368937170472062869505316059881556533730148653209439045250736199981343365010715447104050128692289760133393454478494881903585743889424226720464570655422281071981839384132406274831576991292613203077533729410156894995887787845267052673696004319654713169718885111067075508974981954043378547615304599700622876633021473265685065125257013134170246625474869998710978663270523151550204667162314643338647081136008586625574949571727742276008818332820204870704460224578202156690019185544897808303478600399454404015518927325853822502681859561014322312103702128255593736020876662212064140495189801079265561246684220123337502530049855641728599134955579189541494304579993155178653624995559151872666583978710381031520591598213269645110507827308055962700656015488666118646381946853559187815684253604020326752052691967218232419337971805387813708979352164697112395928694930348309034920561007792695260656858628801094417985543851338852009768810460736595024329591220001665200358137541642796816374073233957769576264759069720556749083949359296453251849354351112353953115544582113711527484775887041930766623264187307385725262719206046617023318477816267295636084623609183206912988508284479691427100191172644412489939643704741586253409756000602128254706285523858899352096862328180642912582379745221238861916173591119848147200355440682621130804044907707560927814145852924914568238380786520209527914704976948240747471113614239375092232690016802889765686262103452241775034306793012014109395806442672709943081792641832020753132971220050901506961331008677936330553705092742800095821210423391245766999100745799298300117453932396718301501026611792107318358416559150983045967284336127394134814101276766548160366198268997194188211040011586822286483449863392507854769873395666204051389338663572697644360667092439786645360315343217114798682291043928496144546964841637780748322370952868989498568345852293158616103331105954883425277736803411166515230816009355383766025012301562690892479854300355251237942457619414030929148570167655540739498674955028864571635493227972123676669625831047817374790793060910598970113059263468235026602295627429646490279504084750401476114428502436491243993339839181984530051444034434788251966804196813560749032751962046536980582195472278685696629282000541241409287349784815014644614776324916035564738619378370883299172443176130312771353131041067239746650722998830406498901597040649598261018591677063480176530689028949704297841626196595594216690478451781920673749709101628250692542852151008747363666044129334321006437516109955885618463032615972711511347382975999553304356271551485356678671982201953710718036046030836513754257990193616405055426694896724078039031754434965671428397624623448888587355001140418671746843134869881509480320629299062748666484737893047614808037358786263090233301442412610693119775213965715607546546589262263399342369062471448267112790833821562407366449687520156352930904096987801272294609167793239337861962560477635842048891316742765666856236674921114862927994670810611910691456743719760505865020657079101745896515518676419778801087179692191432709275258821665964238850462708513866563354251329504063386245119058274177586341806809314988214117195622061329006063462297807484464443066265004044111527058502571808884771758314731918999688144729059965588108419503531864341327382337275740652024434866038428042788027819697558082068699119592543026523450848716293894095035716749971136961371039070668003728145562780064342008033796028329826467655060936081349543723538950144340322535503165670458725253036608231955086615950456485300109718017198474990339935264674778974918210787888220965269938499796398085998534094831500557343671217461013419926078733124276711039903651780651747749716293696978760091327314079676143762467608771735184367142207266634127015810757987637525326502316040712228885657031309053283817262165604691529605877867986467146936962450610725738042920176253277247181963324464898359913894803547166667075510989940802492810846744728713623355337946301129533894454209896413178541037167014504179122281868773205678068210446885598917403977334630139209321199030152963383495556764103668496778659432383678718952083599131594040772057787217843371269104484291245999127334007557358157544907849289763799681407018663227978101823313765662399782227184842039685448491218903605736042294996518547101748752601474064068370586382651509590764943017512790417982119073676986243309995721003637676471044276013713012044707520093018766334472175289124069839514518458932337478576737495479682838859808489522535778716141338219978262526078162090821719062098958439219814469987295292135007241077588833055295020462474408530122610322596587379192056456432759075438757040680047257942546868699613607373743205954559651557579097402815242915773774558372926240880643323128006179690656593818618227129936200092171120964133808542818314031251732645800983748683857351595020605394294107380935106253463386697090816963406628764621806746838429222048031133114876698257398199412014127219626303433993899930552638760650723462900318198403795369035062840992136169181053062197974708145035810425857163536813499315980034005387319010575674492219999594559492780281286216894616804899154291777455311887940432715538629237442811678009868440889911955613692370516232521301347097969869464306592708552679654339668240732830036306652552533049546272550620500086848354602296861215239631723210061860303699888004389972098259356130985575093497972613752122503469106761803009350440452656087082847037880941414472290471478591069990903220608324404696970843678873941129131544842879166929236360422984300301456651902693211871863049741470195346311657591457570396845502615590138064133596504353530029325317532708982710111492861062492386696017671229993619891982352075450819410727277872229042877175795433242915667858869896406541094617129997574341754139029037244621509265315874606426237395584859016501069138492887528386494302805119543381964096110193764849384335522279938110250844453642825615706085287794654965514197542805420292127852247629518518572245056494523770599975325415792819112982879631572205129432519844406995378711264425753334312468439941930485803745825962679909069726235261675141605668864058954822299542611030141033818059241226445102571811929435714059959006650906532789202385351763983584815189606557796928237078008432444254061133181557491041094991734053563988919817726864698243574671928338137249123871258177868684132773559598563101681276488885127392701113481022542362178692998546824139035351543431024696394377392690160225190205909404694607757569101130368192633083310587030173244195436524216068078152553026145290689960036788706058259526507922555723667733948409709786476498239789895860431907081136699241270701959483521097209755361095857685950671613388842192547191318170992955741056808655407405824099166726538969985332591407845446096666228496522182341928392766597493473094879151582445727722578372684677398164083227006034218995076459193817544417895414986102452296928755929888769338764816735799167903775061754755656931387061366866468083114907958170645001761640718629520390250820953414952215597242588706210084502738414077133591509667254295257145900950893300922425352372821962674419222086970025632246967084188492132309693037683463021028848718142057904933237854252611424346932367977744703228201000358878246301180463030887402223026282008082472917465468007886215163809934686771247092730245808721781483213084681870668290067960113971171646095971411342304163127747754263230673628588835933191348227727691382355458879951759248032256473768680206877816939406491769989467371732361409329746840919332078467816908258861025031985473787773445141469387856387986593996120670750553357241527501052961483301627963698979962693938141676310093390838501008103580223308920390492475079547868436237209775464594239254642391975527347566507696251784022676099374279518913191086201147075260096624016350647954383180602010068989107223392961056546969712469185018692720529602480862810608990849263162989913343639553162119430283950950237540500061090661417136362643970670227228585670224891697891758233887897244470376901595877082562570856342892700893460721072092067563790583391502067832167629552321761737441409369688560997284979955757128244846911532401760818787966565740027781893619294019961787382054152614453285334587758407460066899455180523634915359049809813985382442680274245565181187488386476896243686453909383302539020204583617564757482196037728390632172006529987509799489773091709296596586817305057832968396933134457231478811487761683778359104523027030252267022316440327302410753175847625003601304349034876420651289251916731248766785915251168856993557806022083696370671708546067514161609795829669028404475974304296644507945416257297265876346635299548061396257633819443860240932883080959652926174707563977195002189599477970524731019919378157875135054082766722716800461043474348245353524853892802061647478707076211047009390815235912474635783317693513727419812943931945066443684025066060063489716265519584684306930699507680026826005672319875161999132531269534016670613506995642399540792763351623615749470908309610273843707397238725566899820877430822725209399493771342167669462335220997954603548311991921066318061942726845792822887682575028949827860764934101228721865264227263351928869982827162465527842717175660259492214137976695355388559374903642066184462775548585383329163898311359558302255374360763837627555812373351189165371012802654276111131247352361828960115206933886748907275523243665382860479741627742766554167493689075999392357969218691848477533393116308463352683566445547001680055323794487317489448729823690796107259614504476720254706697151536832747151125829165172052534325286733289552665027604095129826605761380127276352751974254811111653968440902119650851200643906311857173266418203220648390564089055081250961568915746438490958773308111303260181890602306281180089539874733259863857600031332589536355938230940482697530327198020916360786757674782880216779190224595296188648922454173124465181354822958720511596864862268486791878142194972424523353739192091042597053925827392997470179777346079895543527788965247969056723425630926794934919763608109422245820879966775329065685550674057596044315128203203422761668449667887282143091108372970750781839268380893939795172900063435308584536489826754582799513334604875484285344763527914453440681295254711327154480291332274174324447139236795639684471458700447513952608072574502380617358511656440368662956581985935743500085250216893571863233984001516801413732760233191987050386171945335882215524567300425534437046235835632664553478952371896011003500977923916575481326126018818000443013852539392752787833454577262006331807024662263141287798986043489981727289280851270438015625615821695936960819017410342019839761182342511772813313304885597149507449049768836394543244902433698867577198472425335803336356590739999980673273285021930654141599608288233783107759497077962851558499289483535461624484320575987789489820086513616143444031801373053441202873578013600381054059180383783563837424485079741224634799764813958366247707269979905847199055134221478130533957977239149059599029259303876726890358678150863549527592489725173465647674161713339393209396044939927206590969155558963634107786190571858445390309446377711743351245838998800054931115167685330007218743688695146372003704170297760633812268018763812236654382460401833625959788687112047350173652452236851990626370011069291946976952910891807758091377516773970955740868514062064417924931423305667305537910855719787052195892570046594444716738692370549559000933898804487320913843722244836491011688467547277621494890626981968890448016436846110804905919376871592845811330783871394780193156462643582090044634069894988838804079520811624493062827312904185176437816437891857878562614236050107341287421229448533607458101937506713203824095056993855610153248991332580484958726068754901353365404202401073096982794483113106045178749872447691625282502966250674569771737935369847629727760278626152580791948749121914540143680380428330763368206164268585579115329669824143051556513345172588847805139526180744201759257639616002795896014635959455193738911549774972624459550305288313944710350166485997378302969444635125143146135870382718580172563967172875891910882939821618780785814649580476436936475237384650461425263159773666610559493832402815731121647618483994241845659226439183268769498721976600396413303181181556530658355563686532602333182519738331893068302542051718526021573726805681485336348510215124623935677169377671232089080582207728715725706467026214958226264011640852979425831644766361016950753263941658492588666983783290317461810192952635959452856168668576790662779250971359868407233485859629995814262724039733450274449526677574582608487383974420971166583540708008261030280964143690363845504090528845529207087830986123936481795673022289883780020007512125164730377968665971478875957962259710702776244504193334995039121415327689574266671997822522191058370846764363875950638753296916699864287014981201518404518801913423738286572622346577252573929892160583282729029760515994252213228669713600745823561146696747293851982646706762669345888277143967397005084397986934371315580225790947978800678062424582629965218656524529987400618376203126126713657634445577546413639602102841284062128084125132681511428521554163470261757239813166100612438277665944038912989923757858006315532481712292125613382817139190659384241238547602696888634767310858053227887139542630011024908701307702275220294027086058091837935595069098188229603381887300652476758175723113010765518499894015781296269067666543400206531750759672872313414251582397683016154185189522738972885226429775870178662747172500744805029524332823848327670692103972616629297445406786003587075716399374239353888109513844223449976459891855395634182654375506977555520001502321614753401908210763035494345427922679693482322413672760995832544700245022383124387618868792250003786313467872532829394319115659192949978300247814415903256565547780183439716577097791866934868953258614557837633774679402390558001719038236952178440829806605810874990975487741879334149932852759199542367848769912728958552253981345655901156129939710732393329071842371557785312886222755064283501423215435408682707086254602145846159472208505074713995337961382509997550752401818882740905802858430453015537487831591643459950058986005609053192914161296196003182595357159077263309087807859213846233567596338882371244206406993506525805410693269902724024720336003463027782674971643373886195516611102989122105940481461213771323930495176680633253005923554047253434034635723652001557162726276754421227600802852279779983060254276884758216084433277459747986439005852461413137648660401749300968681479236786456661835477271714337285996326436646635026302694979353337283370868816675667250890845521964811791642203134414949233110707520317618649241963139248071398032463122337519981109093833828009095284571212265746024018365464000105847955488358443926062970266010889636562027699004928694192526338751241945126568724800677632242929057858014712064055500402589118027721490496463397840401665597792325430051109893943257793823732254670597283187675645968770322080966890852232912924515543773016260750186704080231927907361107834686469118524640411982190403469234776777803878814109904148037105023082553865434013812875067565297234187182501862476826393447660418706234533978333443172552176804599357793254219096851770999337386919073538067702298727913870194127554919602205875086025287690315824671520558512001809685385462822173574215926051213331738058577342908103751605960144933729226846824998472510982617612744876285163252973159296338102988888677385817623538504200063598060242455132916486013269024057731066440382037693617152617651662591713943235520649128249412684554286884510398278640346604127305499368845149142696912254707411166810249416109447864802214322027182717596763430113459095519885827189410586239643865888095741636696617503980161082339676241272342405342213399663791425153286140139823750038918912981038523864619899983738619435164441313698236115805303159642884583667576878437622780878667676212346178953327031302710041286608246660335003704376903590359131457758698248081035904822269475236277259570738720549510978401715515862664570210941961835578056929466106226340640911673664713413186631296838748706807833101891337866713532476421270213709203829422720173797589001424337519908763149523506632553859221817242509549050674926826429696703316417118558512887131561773852557003740918701162947676965116329360326755975323773306481996544582537369243962558514486556192751598959734090256884307120167173333411723240122787397047163251830224428378035105486360332132370931760266836128267087961873391869955456486612828247574010363635992309493278038003240600138635212836781710665754792241792411002514095237405190444280361158721346304922226351179157017892699333130811498743854800463249256112185826324612436861657036773921042615499569960364523726753456045294033688825322308615555844552043584807770975590878861805005597584521490799882918161379361507185201044901476697660712931854964230912105584057109081066185169227049970153971833440719699294091352728246025360275630250341231479681415125711782622710772514011839574683228505326120082569749406307657285504991406612187314854165428127621245117181085984102092820985975202399407299418449358302797580089309079088611702105777554038563142740249274872699950805100844046655393764829339055608124821225517895027178154639508451211619878324014753029610822840746900464336316750039999360924497696590413567773187053626892528198897730009010298170706523543493550430544480085150107535516818108620670087545637642212858419893224113458250836145634958466867555338952011000711601171252414807451481052544802670449670394475255803304325668543657540484741092046095276761221578110167629032783853749876755563316413400955560531321595123065535074989103403321922457918182830818072041028818717453532218316537157633302948457519357596638953812818852819963132503074628964687189886793909589616557651155082767443200390417876235416225426958237818153999607784290615793575367728191533309167745862510917919979468212081217941982800577804222673075634472662919709933949065117671394160465269694486403901974205546665237890540227557127060274649053676837162285798517970574633847926624433478790386942465736877886743570368377819799135706985604953986604185088625849000515263567884358843571800665832716341724048981741468288309814671542257801787498839858781533261367051109899339480263750594335595824433331219321689825180894175773510390618335627114780134682453997708344234775638349944126058659057540857132603953826699503505936579245848732037724913985704012105954453541146709183589233174844098656686672221341407001830005615845642345497180089668173286833872089713625617191909967589432301026381708328143353497034449484622082860350715564431768108314074938558210744787002538693606100965007630571739696111558168649770233264463495977748162736965500323271840610357070279523333072295921268279353396380117467796985759013919696445538511179487540266107339118219852046251668193912384333365559135816356085997772671527374981591360130015797924539612604464719182974482587375257079690884944170140914268055389549998563266852975553883885851333067697399213873629614772617280384618970399302125876074061930681015146884587717758965738264077032383371350478811899246365900270948373245037125833050330002905844435214089198119755267242295689863911878835735909051721748431162084541482204273015117869506543224270041628831364093826810504183244194377121541495334711165536102447201923026563396603192960154725781910621382168069004275689681517750493528779309003168593319402654527501598026748021641402068765229197255758270784199368408237748302768549979811676536021952405799327574804959704157164635469542023792523922598211824850919842443656171454726897162411620730293323087778056047736671293964523296252090315482002673781678858101756645535834375451773030017646801543550462406451956711840606585339393631432241609224411024582290831512007666113643095903619313251106087767833731750115741559598899895844969314556926632616922985343738198010220697675471372643456761767411318069564107072617951556150920992109408428913706068573728610607355736563901063657949533629578965507155797629626569094115338115006603232699565848410579383341175767226593618247030258146784414134902133508721592752177682050709649059633325022910741073321194319469959412592787063045104196306861282807400140194982375876004880412020584204385894199177738182712397331894925637774206247449410442589512790153574766276604045356151334891731278612391354835738663427505081653217818112789804201486703089444075782449860112381839256300372667168746247544644830029710859810419304297316686094860193493284529194416500409393864053337257120671295546579651522142857636090158221149518458102004997127880390914502728836169681430911208018342323304486866997788385261966554193175214556205780852037979367608664497368646090108176419180486191410494459942507623726239562489014456552005019293974249992657583001701721499776251584093603050363365128554554898909782631159338277539742213482754573020214083835161858095928052116101820872838356253342120400049173793851025293995027700155500973800336193909223794412906430695742912382012383299397916501386570059307506612254526999619529426009217397896216654859935984202269668845310093824402795493201613164070930282959652719960618425448973747057228726122276577685303625860580097247412122270918652701952701392167851542814796812378200916113299861413128815106518038806575687312112430239167380243232216940596451068865013507538555996861570725018502537997085251240079042148573443753224671976744763591518175323674809778795206673626684442017135396243932301074446527981557006601127943553248593312027815110242977569372246425600115651206709593448877656607842047151307552184346287535368941903203935714081224457720483573413501668072152321008170328696798300404300810319022041571530181304423675727764209293740089394735090673236086967786766998134747687367946326583275936017024039436899346904025014955868212917799021871083835461443103438761104076692185918897732327155411114005122202533545519474806635195493156388590859999453097230064805368150161409545400884414549342313697704685479540240505442854375423158747768146465962577704452114964800520196856340530694956154317498339276599584829211744196321120033318152221859566750011754464689633313915387994620773715787330010878553662742918449372192294361412895923711113376501771495187596832621354703726995611652227798942366938743023356434596289851936458137635628843970539300845892731811122870852741871378178075520853115785520188833568313059045105603280947321857864941731113436823699523827719088903990271653872038732373482885327740691679766399757747180779225126505530846129611380401411729263010017530290670286098201915254449876048853867325560102691782940108325482517835777765337883086087736466831337012819595562005691896951020258912930004042359858131486871536739585994483051642119478472388783202367061407979444272153034702725809338842925929755059028240525582307720132712936304331999701016733296209035879446153331889315377031211199120604014466552896769192286224749777861811197549380954799149581042764149308046399108159567769269621872138418457488826615332305941215642694063055016077876611529310418738824620960941382748974929694756134907280938469378800489404309166367403225023685441362279390004455905666129069669716806684612324198305782635621275239010426651375061290768580150600704729750492731899984345184684197640538942032837464202589922446341866280055444408658886237192495982421000126683108322061955937586477973077465774841513737340208793458883124102802274438912449498074817645918071440886187148766898076990016580316702622741980889395131091228847734899426831473476057477329695380937174806697146778795958938145746244167241382772433681594136125777072887323291538902065951387983120039822222449314010007273192850165318358908100304345251248435436322442249136758660867233783569564080188377145426369111367268864048362879937513871920722566210957547554769259027894797955025168605399270572144394718073028375323945464255821839115395752669110106091655228220726767699521419420094456000693206646603102156853536985522967142797361293371498638273736478737498619365964262376126338005876490506644050573817702122613623647660528988619893229360046819057852709006344719314830493065204956897811778153842401329264218459261400815086608183522412928039074701371628068461497495686607656362169972976404141205982453195967183434935761252548369545634161825611331929817063603467517087167489503053072220157418524549439156917228367210937235462431996255747009745863674957541608512623824763281560592015727556865249063538277604836464924500091228424235392499624016862653470172980954123458571220334182321749537719758545402226278675898540433692973031190021295774946711721285316346077472500498451009017640215046016811996053384474806176950131166735585521395610014077088994620774915566530192455378782114770039342990820978576678646179920726584099042485063881074711651747774433594813336936368391051733242831531600414359044334802882473518227477337973486865909795798918900858618642373134150977692705048104493081825121010373214338322297455752420377324185057739474715893735977055852998882352389921984647347309748147928046274128738378373628459250880943209669387661223717713984076265588474237089500392057187296402262695890479960934183855814710499609505261856943857807938801369658103389804090691747306049198273768900666344413882988144716204465261187115315063287125384186875673479763216058761645610597132841485364780063021193146768157360958025492682905352847238225803201793821699489490380126079337769069528701522665302993383459878971832607482001606500592854690750519556763543887061969170392698810892440696177926894757802217499690928191179295863624372670222696409290807975540650951908137369608013272715956481134315268252917313725905464202312691571423881606786132258108092899022883549657928082563545294976162031103185176217117824376474380025868242029563147717661349585554005635616003948912046471807330548325331542827705103344822350916511857952738605756070776332679955109211831721620887609981004051830679378362382831182942924820640013219890700319308513425786463174494223410878626178995803364484342719511888274762313632022659547391470024497275744733315689941436956119371500523027528677936356875000129926425625810888567925563730814624355940388549965247930050823616081406238172004373901027892368917007327278745991350439740557970071792090674504825542743529967355729890239452441806265995737622086661262828169266111702431727811882067095905756457661328827534699902834110811702647248868014974994976715515095601201158278496433516671624377668662465012699183639138471926152794349928126958111761748627845229647851444650805296369446932945587563926817458489024405517166006138434089703982875175970178826515316507874974499865494476577254422782207815733566235089034830670593688802420707786017856759584073846254496162804651550445529785952169797691901972505814366983398412938378469658154361892939233271284054514644950603586245035475589458249065210553839854257270126530641349985852960688944466383821225161052756891975254805451263933060450213226224151539967453480073656538904492375455044200348532179550076679205387470132554436859505067828108513848693149216194480824421000045037999434941197881033368895236905142356759857613784631108245370010759889305650312153568045493763269978060087019036838956372630365479155614785493169943691360551059684102963883350893962168778712993955434910750367339348276405930369579018120824088578271041739265153513880156980948141541242979186488366648255342972679203753255639949218362902855842425707883447601157109062277872232721125144535228844980600404369988449566226687022819353169842727435442570991221161354833400547503692748366947910542966246211298347430555864280325409655890372323679167095335526105308694241520282164261841149997735427925606298184676077986716876116606922574460049689612608220376955849530997124593405300638251768396662302894057156556621909340615025986662593936046025686757102299765526455684334314293764028640849644700434973088795010588805594053656960745455703079543321037132847714782862856659461702674470760793697470426539512493915005775939489680470229219400631133623946686603985036876144023078991698348661482768586982615242900774154806439510578827721742270495073198462867598067160427691973125783795912579895986833150215165718019232796709123266371520192453784635317723767922759336501582231500525296486657624494023177475292477923171454918965285376101477366473427542261381371767881020228676459799071156078086174822923926629495695513539831576161528775335080845864869930308958300658005121705793878778417901006029141189134544069102141291244716822565083778440976697562278922281193235479349844416443146827982082747448743472313648327337305138948509315268131826088924586051946503575844901622228902790508541810442587675999930084275186052720625608372587587784608434163244955483919876473846589592013929462471813513580871371325412219799830167472339074189576457626646215006611490569866301416257537380913839692796503883643466054639802444257215355205421443531818794008220080575876981274345950570707380281712494259127681422490721961384076051476475718006340950330588645356406041881655305073579845959962010860812353151218508593155033806937168473718861205114907020878884480245187410328665756572227808520531547065137593800947010863781435013455114760183520887408887253205691937273346288920887877729300478756901112332194049642152750444797341109022656878507873981944495847473705763862295608988844820594235511064732225763963519810524053562628164626658214407685415090415552868143327307014533839049873001240450771968650493919293239569521813171785456098644594950483140158101091796863893609434125438743887168903504415662196093978383473489194173084618994715631186605580408796184880270765326294865935079088662235104445573032943494764221346519476596979353848378560004222738820814864540182553417337645518912636067176031823320368458230553243428815763617464236817548220180643295056147846435708536448130937467381737136637624750240655120475453642281270751059526198548230789871829167161921879092542293952881731771355389022508990177435677191964747391299866633480857115266368727911070094126439305660141757344942218208605706577606905455994949953483811881517317496831241736747959765202019431497476967447079427816519099401010928474378502057576863581091458728616199131864030394111794003032467362901922465231593629843637911633681419511909391362196855671377423331563715985604304868479351202625706030239542150741912075035524901913348031140392201601038996654802013569435581363396360361833383663587523724980746209689506535511549190203614264267640791374751116328961401988585311478859056190437617797480053356052891370583650458331102259761775217879078832972646092142079296840936894117962702647763648009014865870414428158771024778022906834284132880737361902746037632151277448009964955809432704324574886563751507695582283390784990084042085194199022544920549054974103725380035887784917789493750680571361813367578753345513021154480770693212891691799781899899587552524527528801653159029654164400656926696948347273756019879246618969853779122202821778403515463000604674393942436078622428392009600592901589816907976990927293089896169407344395863739318941825674737753497294869734280581429551874356106241930030433080955955354181099310970295144477212120375442113900096835542068744165411890296337930184522526730142040231582768138434636344121337494478018207841441345756704562121856135530298066349807769557649005305616136033522529977861107892252153234358279078086641020892262481133784172746253113026942583577779356458995189341598292399606415005275008496413258882134714691466236233046955610706081915421215797238714931794338716105943192761178115227007559376780878862878666981216072253536278295141795431108666888602211689103146566316666605428348122705639532187877336903333908453733161392253747320143451556751140500357937143281516152902163872393374032429602804063967660080445194451118853426856260833198037055510813056863000891283204962757552939237501341929849885871021380740250113219091669620778283673008661742765914712640343653075055534810831763436599193072992175577334088962807824108280991069101227094627018381296576364813816475880396222444087041922289821749818809138526022421371968955463776556727026846842827357308031864197347698470665131036304565749647298293183130543637492875982080285833004714926871080358455526204757263677721674664970157840405813880053467049707350755763938264185322134905750464516307823838724537551126935738639890353541511209657737351133291714287107684301602472155289369137462130351713440701423143049173715646898661800551365253516199904931956745050499993836797485435121330302773723090222117806048069469931372627549277655922347748012639277492024064967823863780586654312394120624399110321856999276216474688878729754692143448761669006508786985138552802244425309409617881158468084888539949839924795961333443707443233186379875746268767750032162530471466296193408427231472668309407464491216848427489996020563039117322768710450267056873259423263187239751722701239233095740050709269200751232013550821289096913197027603788968833211147474018155456040559132722130486402511006289929811397024777620965607628338908781913260750065751896060895465161407210017703947587684224115479093181762909940162226382153850692320514334158653636015862112582044548247242099424974419515829365990855321321649962066044835981779758206319636522815139089957366740702403426298830233765723974516977585432170036913017065723490797111983865185631309489629488524850635637426803223045565918397146692185984953432036002593815722267668099972057730223298396091712780974417779287268240990238846627225981995471664276798828698237861752806022374233485980080787755672713276882241411786463055669833370572160626506792577437557972665927626639147832298161486099499171487577495730081727502118588924638552592194530029775059593137423796638655453569365616076933925723086077193414000618319741744979235176094676052837505280066856674911433587397633740256266549555361345984514107116840925455510006517896403975570002558445956639224054776190369640319585131171581432513199248659804495533442503080822381355485259708696450001879520313867761831453099686815275047531414557013839644012976121857069290368117102490868838042191694042939107792581776940947513769105674328552255057884959850303138984525930969939025366040047499351157150658064015045335854165042183897688222658985940566413928202907509877514901646885630249649143589162442869129046321110594265655265046141421148563705881169795700076483094707075109208705781533250183235232118833585874271395618703484233566765204577493239087049305686003419440107545930153687642182640862380329379158186494899123568783864211067742458329578464735619531568849297204177664273935861503823201807473174651615829164987138069129989973192935978579869771878674292157650975453181713200271866506752834793852938899281906776049852256636410173230883159054584369224469341357371630049560340000831914592827633520912220753113792970761168663281503148510456255285721447344421454690822249970764553144386477424503201474668108683656903508812376793989006911612682912194836234994952608608264425676954695718018351089755888832790150326064485282667724099491828737338240619407707991349462709554018207850445352388720763292125413864196693118904059840364991714464348657147748913905903941958757128730288602737165511836371785314068314579415174933611751184751683618048332712338028988047523983426604662023380447370310414100944331388533925933820275846132848266718957347031735521348386034735900237158276108406846751926488619931668699963439533763508419081740864485254601358695308582839566700439276582849611742650692978069850912816314654310012034279066884934353727410316713805997565935193213963433114719400514391118142068399500572921398187623802682626309638616183506627972555172075910247548346351644706346985137117998521972615569472520492334413112823825427389227624312670766954321837246532219478758339129926864276789933620955673435108450758071832008495649635111589712403567951647615825085617548889753090268045956462781973826791470490451249511232956861110209744669505149351026567776903587758024513473647345752813717109157941203043050035781787801719179321071318108964994238980335805679713324831659176836027746993416043707616501672247643827805167400663281253378295495183927356997459406843385458653956570478451194386605593911325322066284614166805868205925569866409751820489195468516926314584733139607989238865453313656420052359340103778664388962799955032041518078905183799664441275098535532310734014214944305195216543091502289005382014246172762524135368169139258648212247439676586925220069453188707721661428652967275892865754835145694661243459316450392802870049702350685376728369154021931452542909446280942029855476609899173026091872318571413517247459687420973895577185744139144616818779711193445647064718730238383789301523318542400401033525183748898861312479759820301212952035044410215998934343641588679718084454595321276884848311486207138917654879166587114670548526497268542763336458429136998496056569752578984639655765597900613121809028095438708625416712656629274945502531385667384719852598397933336529609048894901913639394421852991679335821125451393946602947623382897911577998316264841098565073931169215516743022380437978105838661101816073324432645231953476316738106727375384849109882753776055365860966921645885104411769046197695051940089994947945002937997409547229125505734146286139075262864359243803938488890489215387035905378304614776876123554988139062135068396434845759716670018605569750558430107917571358063717712990528591236450019328899540190218121890566232748719846311702067743027221554941657559429543556124741606085698440423315334470685681644552651646155427213209927594276549327940182035606247486207414696454354481051977378892914955855110516139925093139625588730207047608374697262846329118680593696774421956400773715171030598165766791791416521356078881664141269562337536131568385343997456114496184818852797094867409334600241899821346870003040094246700288271888994116184922998286316528295795262788431826325722657223129369211713525527205539119907901129356055491724175468659286664819389798148929538074570154467980387992911484216594503953626153218022400981429017561890113360627980507775616862910678703167178935325648965075028560721893433212867059189629978879905576659033450148782590873782862187217192199647835263087719218209394964577332789563094900808136253199843903571611552930701760067892298052482566949105871607027244522024460126512922041956877750504518295733402616551634178287322992484009019393925100485328434714063590553999924598927254343194163064605647951671070077119527100487905605443193171822079406083268800451959006768188934888805755681231573468479182439535509500762549877214592478272394842707191149180166371175041669894735691412303980054257320376280716296524723215732499486212518189806505861952000812030462791693679403013511229079056347935075695222828684052355959537135356687059547744871714363766886594513999832034741911477189594456940453861500774909993442973166641929009403568829876700810972104474240675950616173236323340517914310562273873744293253647892898039490089075294560619616584094926281919629114034404586989295605162198979428605192367969826611247337977388177498913397222417378210527575396288153079513977793790422341349024216164786034786545866081127654472833766105534362591567556462608624657025557827793255024381372665143182166844591526230573996167311421608111645283288215711296720449465341898773362417245119180635048705818572404352237838177360559487395067242870677064321304730580993799494758137868764346319383844256337195532261540431132944587002704942713103210715007560535629455612644931390788401928152325325753538785643011235746962934860137818197689256951086315295426444427138061048180731219207477364888378681843296644998006222313691448324369275643226382244763238467342234003016469345350598937828246344092566165330732344400764119114799181233174903684129209069703841723874540960269997938943654195282471512562430864809240758417933133638628584311279361242760136438735755638623454530601771363901531024754371797901126955082805740521565872969591286554089447213120806802613704317677431028210248687262859328549410342721079945874625342916887832067651934427068596090579690765580584585402001147556888257738509561414478784479385308071478316222308073732576019466670824023676613421076905021979243790328332390823377879152404528950807268382563780339402367344515920339883555307204479354949657834741442264380315448040351625865050227362070141170960775379144559489886380481975421128762356820832651681051923226970903484537191311178686906328747322254942699847542483428215531791731434155172179332992480386382700212123763871110647520467054518509305438492256653919787715200383628806056855727597933689971563529713204514547291765354903175528908406006826911945144790274018160598676149640007694412191746120684797987153186190642095459999048636637290323840766869424039872340441227200431819423728592016409561497224785472836247039529554290512303588051419773893437533749495619585027392528299568523834926243887833811050298215153726445801717022380717681874561329044149473994896131359493759139160501131995538942166963421325058463769310834082540342829206932959997133578460374708573155407794498356165464911379231392018610592177920679743965155512210051665187227486421500010794704950549917777041852692970447973359920794002275067259072976667959330167564236528390500229641372831313798659956724494019961148991037373617184806222857760559290259087395155131933786745263686704114837923999221641182626710017882534240886724815979100737482722031421435592961659879856160662618183481016037437814298958205697832531899861692415164863212057166954380407538830692488778226930971477179033006029084116496897846446525588795123349619769332005120056254261343564790940162104884398896516079906779367982463217418975806927590941003047582827499516175909807608840313459477758531538683638555476743447919492720009572891060953766488818237872665959723343130765565568909426615326848486558706330080174092897114362401201831999663040067274271654660726532030968961890128336730103896078701830205757622715580539418484255840259259268231658133847527124734245051657590387428022743687896079220757980791257513482806040522462116460541237247665980184819387290563754514953347904027256980366908525837924016172353634667684470158745921014882411778448699511823268730952590612485814741963859634511759521368696379625818125311226867640462820064757926280971961611315159534122683387848500742261949074649223041658524945828740428403360435029263293919098645521136210775869975691708436423668417266532847187576757440791579993009131645735786297732727525540579151404244815612897757255325076217374442860865474209485466036324896301355720854580619627170620863369090477037516061950545063151618826578077137575802427200442409997713326773578091089981932775885340101295742920065119661552786364657698685912643145438501124864567953310214091748662811436319600612572736997341527454300615045237902139743491420809139770519019559655603027439163115181935880649828405752639846754809112634625781027566942308508468435979971252455753937311217829317607222639931065651736015206377154659039853792792715014348449249786086569166733116938941430829818263346221231660238756037321979459900136284310820857880108352556399292657080046253967280969279863646786182928992308423529643938589849552182695365751366791338162934797065663669573212500257564232081975744575991331039665485753246898385577521393131758511809419559982900916666630984172078414350739877504314103811351799114638214676544173103905928360216812459989798992939986199416121185047472765811911920937975351268729086391407635418170655581917237437391974945987242168265138223706855567607404792236997720006253319052369846139729651762922337068382311060151349934572501951852759405064118083835330676838494529512482996668937812726910505408681484415764209384153444338796189354890982147226988705659412250793173416086809513873876148516174502433219106124350903137238552370684104196016450470958408643935785455245031690301484661173622295112824063913632775691009244018602209160236051865032444441921635593011321752451570194210004163857224041217645395066113591419084858493554832070027403703444794504717361814626875305572477031532246097756498984874169081494992403698321879569047045344919145676480282970576928701038606747195711108036132346348626951441415420921544659096289442781397153729005539045275031556771843249716226361977252056068026195090286718780140954818231354084251233284807973760990965801976044658705009089601570422563096509966162688818846284299683041237500887742630833723314669160380737096686557050682936443133979717714236853460480309652547258455828970869434300862483911183197805730979483857417492439307529526128279469741191850345719858556885387923044859227908724661326497430015938623735581195665029736725971905887590564560728312500210797298479390733306605632761002963143195107683523679666857405156081305415713745079349582686871463762287662028914543181849642851177144777945983149835642892719250599137350520287373706164200907225389455926979460149757150957871260393206535992175157496304292929966495494902394852913163573995960505927898019665758622175658107018182895418578282081260075486389022306019846764961078444115873536173225855565430182675688653203998850191551724810677376062578017954248384754566452122899707826836507710308009300853197611146727238841423515464471253254058690535906117826270764269053497766832640233491643164826949034290878128926321520196440215925145954335619912968173686688517079351854449874197216023425873717502930143521078624851039685281786982498526261609187445411636611183493017606255745947228523954739118945226494824332461372631296221092676139313362852782310062857564060599817923000082209968552962630542895577751008428131408390323838440872597482246300614410215276751504943725091316985479305847704343508692237523597756391615168851612605943819379706183104054332185825558513048684303329726908688945576386570241855330253680478726732760136117468652458067590581973183631607590541185226850431567196465676883521954548747045591723571953733079693951218198554801438064679594116712422535412163846847961725545746481153994458832942064566703221827847324665410015339828730741020600858036960578548752103561571853096466570945010628890014634688962758739746529101966234185503518605239884519676970902897191481678589621753233070167168948916553988975061582580986467735648861631166585012076942279734524100438567218370665163285093450620355023813488607870967190748977496865803624833795327038558086776232407789461009731745146370473971938888191061730604643238299651160570043458687583181676267668454803668255005275905860510254645245981132046087498578438806471384893358509925510095721876968157918608129732301506575783301459718132415223661042979399655299737363156907826428146160536979348301319926235673501505391664526619370521936850611971226131478157005730943720023158742048459495368108553246310549947091515574258160430076167270802074832383653365516366412400519825216793312473377744705655421736318716735107469255532291583267146916871971521027654820149753201535889481406538275377885062089055821975645051306140575432851564610106066644415748420070601924654795785494842921423431556796276187913062252110784530299164985159206333772387329298447959135076692562532881164049877692304435148702853172612822800588217929648790966825878300821362836210124425654566687144575004092307358767571407694076520594347538741495656838732463641497862495465633986712860143077756364474774173573547580715187490752300014612699124543401588886666063296097003589819801652920826669442483802581836893572489657561546522406525894451631513972790824380257877886569614918310254858629145931025265051093512214239829354444660714813081254871814417767086551548023240650040325924237455431372521871773256622112714103384538266967658371210920458146428259983343432198386657183516125740889946824720806542923805866570432353088511075821601821944614854071903320603591320567621582350116037231373189631035746863369468907042239949692294775016640910960884983799156363630446987422817269630955351419532577927142978548353386502884573749176070727060910067589038197136217086244220098339926359685460643423170653462134804267629502061430213146117938845543329113996999992241826782066237907898874749686777267132771666190988121021839882157354204348893203128457197853918231445373907431885836231764205528349666045953431185099054069459527825225004422123012683500225635931425208535658580794841056559347540019883645801995656072198484895158707422099976939093166700225687272493785662415508059283071705609517991504458888241984771019663794424215829578658029772838046199129735574801909530199656131118364957470528051795291236194963135061525089630460220566965821849136770703789586906073438110794532010603876630286826689508232191222984152641920172625613613739263874649036067235894214821752600715651320478583295806028877237679396848208327284985332286270253597836589439975918761458032242222672915754829257829828329124340390700482812638794781208733303258166245549985608370167790311377183873496568775691569335674211755474348904668677220398098229466370126260312843724588772804461213905918604464740127376215662283522022236420283397906062050929976859675616837638566197555872721734165678697222119527920041759319218635536106237569119952530337152107808902823074563855898057483212022726496394625549902786775876333758259181507963272187162557986899482242176357557829837305425984876708799258724876373535328763914280566606109766295547841348910212207346039588398068797304278302570291261792474050043108870202256699007362272915346316398875127267797731180275591190584512692011365397353158068078789086111503041654366540128920336905397261531234742137166393375912317075338797540872665751479918279227221873094103778992652533343131283844222371866347249659025707796069523964530654315371972063936220868112953731088153603612104100935883175413440240750787780211124983005960355090117592745897310263874209647466014666225761401443579336657396412429458548904887552754982980117165084478874522530168993157680908918881970677957299042297123291669884110526541855929115539177048836015417107988847281049198987723032307881678103052088904046756656325414200707277456176907700376374493168725358142249330729568421291765898468078435271687168717824783415172820042627314498338627401707385999681182745940592810189129245847598294626685661050959904882561604898009377213856449079834433325005775235195538716602463469881002975124031386720387898398788237710161884307962542391019355051779082442562688099465711797313048427438470175432856067182391523893079640178570965706760284718522145928177097919172792983457039783978319830409100771790458512450429698001114820358558482980449625186035987117129317862327995145971029817488526819282079550627753137118970925535838860331064780853242111257742342310290686833830451401322220729545622288078785117977928211180393368293780287418288399487685742181967985524947230781114055349372010631967078519484321739909495269287801025152909338118954427274690695608433304375594962943262011585974481349543649820109050155071749612656008220372149014751935634598501194306506104334344859445264764793302829825868611565277090263324111316106586148806785925745827823430663039999403993695042346529076059636798338492366098820853984321503924473269892865030153660403066015941697392370978521785435203761605152344343984487488103865934424854786127163845090898859554599741746900810273470728936264151583325238404109613927508157613670160462934240844753590793436613176352783678084972071830932940747070036089283232774038150622496712357454121183404125787859144046845860893091316150496066080106859695193625831286866493848475372351777228271911372195984293342778321590455770350189343921472796231982559831494749899900525046361838778492768895086808105626710828666173402657764364062226408060149914632918416853274209496109774579115822822241774417633722955091318542811589022534102625814079707694168644631009317826734668171987605720814329220811007831703583225190680506890691168358783945966816529275345221175892238925489592837727175318788610851345136683500068322422312856886593404958613308306455165154616848230343233744361281583852825114577475695260732112244290570737956503855569423649203435731738873749791069377108754764714869759144332892046398030399411914214170067628677290580039205766053783997962560460502542412021663462962433099524122147924202814319535281553710815457345221515521872849780353099174089284177840965393726209674565230382631027294907487508849388070365330226979004794588760396520396348432295183812513936279417706900616716382072313070201275157199291955210434268179427375907620025112276989715742723596915591846628881326283945212582849553393106000150566468710123746368300026914325410227686184333059399277169454608543389864128954863618041770595066833927874294171494370871657513320632629603017836658928428022026850144677019347807615389701637663184998796081718290158598351010044095848772455494570511864826474870852004249271566729690067445607202837360728541198444941467983231534048122294187023800517495113367919908418134472961885992262783916143734893915557444189893499833122476060037310202890046296344207670384331375434941970228258552896667724081493426240006246176835789710992577191461188328134792278940038320506909136781518991381679480623127009054560391268917493246433510691587217001769677702724091034702528911336313858078677032023171033885607376949514414964421247661154002013494429531319842135065503954055221761681835178007409250337049218328099341734022358659084336780997459335040079765836812201937657565148240017182277349297352931694783929657555524477379779658512573128160951446562957918861363757652562300215280126502773031478277444350045879369017174672838853426772651088458676009296847769572823967932162322440930552137215455163179514425127759371401254835813759636473556268899095580374225490938407488198172090077017458396881790169407386581664164259332866862734193221414626108768159633743270093579747305314920382482640709415232301930917100581863016416934402278028813454567213233561370173449046437026727099247352693369882719065667228507649432472128777967947165689557978787685255263683727527936000909235766097707531960301470352990466664312434695434389149226935689922440197310193281677342968712243272795029332921580815364845160391171227596504606160071067809502918445305689992839594663120945622402338451125092727912233481101688890021837850200851428586770986421368523359688721238378051706565676329059796501566341603330947574409121365179174215786737224062855906375898256800647643318587524992200116210519495908040473287265598857881529330544793620079052765440329476536511378183297968210815532744342959369686219538143800612552847581636097383491097728296647271760374848150398165162487169053616771203092605080723588101192300403720617666501943118792240854458399499452274742861551252705308420867975633935441081053538518026120376167863726330968678534575540491506068477145595521397855988651269774288495543713948291303249327674263192422307726790107726451166195036650822710681515364875827086817696917349656334070340338095082396773487882750549603080681605735522048012314984506813172736665868930482096184518610092423218125305789539161495437019441638798893004250378755836349427785732100990258005990583099705798353648060547011743782373977516233198349658173734809132238466873916942206424761911470690801213992675583118954367423780977541266779389582971452915026730594207455790509768093501789582136010858548103133769599554793666780119017182726870923249033519099234804064202215554169155642132620086887638354919225630871508195923847789652115714378403270089199358785881309555028615886495120533071397198943803569730557491238329059659216813851865897995627989423541971970016340290290363816238755534260786432552816745540280101966362794102165490815761377981385242587618445926929773763573168302803039883222750291686547780028530248250701707847131844941671519176440030226583129635623503984512663705007202706805526202174053862908293352804576333603926745985219311191086588781340069836242476994112010148881417733285704117334173343540700330753791580591761701450056832515589632665797483205375555188937318925496513593933997899068774507490657597877052851800434612493886064093543051317569406223247335961209775541117534263535088704312002110112407476150376894269717831497375187238936665650985085471888260486703490332461548647086178143222878388702267951985382619249534138776081056425209288368790177685700938804613054015962784543878072060061927696599871842389575427689174573102502929359853990862183128062463140758183769608952013095735352740648543740741095146585163318105196427214858508511764202338000600743219507486421083009448636906840936631440214537841559057472164249024849064329155437518171143144152555556495673021175120456320975537641528711109547663675603428322475344542988841339958659497498130273641565811038165176952986093349529248320143526340780056502893272861438867116370347938068726528496253593199678912441895522089917802040728498383802478098189693294268056134653623052203515301737374967664145004140733188328606406013150044636347934663288064768911568997540725495688652126763793352030476502748758632638460291615894819723742070409033974974645116958930302725992135574809261037198908810853665421973535897418353767963863654873892154580088258776625437691367134391831198817337732256200053962431097621729334419673866979455639670174642017220280375937958070257773291310525275247504157509138463003963866746293617040540583476169650496951275571633191935699543601361127033414174509314116680966024174312339718954932312224849652781710508329785189503497734398911317869470058702098584743515683257395989202928145035659688536398893778177400394597698584340774738713888795085483585738633830719491794487169741820711336761135361208671937824977203451462219183173996455653738730838555278491161587373481113300657200956906380312845886611939949000971697583863766835929338542551390245485185642858412784692625350282627702595253190540082555955533184559254183467351054078521441537784768203236986602575235583266266712676600480872241475504685002248856948395379715871973281649033833992988585982462517666276265498247915166806071756188145497504309762216932380526006322121458384819306845445956720715343643510649469894575146317640183584904016601518832267657980917206396087857494325069438436878228220151929081917697697163194511715624861619234720583065976337891052516686411288203534024675882379461950786673432938151808678364882280129788041591535048272720440671888742637237164533754070815763203415811838493691478059638540625167737247297565990747287068672050479474945248053555090361836680477206119409838070846935154787231288394713908450733961993122030632888410066549171860667453361889159803294253216601269971080363389425757590692583073789604220923173215350373905897767664820512312665752672877112482650057976325424348631742089543022617389706065726160964696126194718960527885896555327307649170626473968927749585345169877191138814367625988674499646462994672437216126841150079652841801594228879681322201786860512745774322165527359538052213884624124740596146116287012037841837101990964524197740298737959388285250635740808192224518883824417956128903304220198057245307632192410977865984832899263798377917191830065879520215801262174516850547902179943295721259701885784516731287572150500587057653442721749672286960940917004128668183091086921683983173451103271581746228847465072848875083277063978072305684519529907000502284431846199878999459699718839124528682713889626872724216965242828607799237442233149188707481212474946492804111771103808204927469126294963968557961658177302044933579456510432459921548484144980479882877636398233026631407301168714626431889371556594215171575159675076338827054572937037866491262587950409246684632730233337466057587029781826022681143056094066566675079175589571177360807196326804944848183533247195433452454011554740146181555416820681517038730230015778470386978501962195705733639292434808599888750906233718834266372851938363142078081455247096260803222223092251878825436553518965661266450111406988007719138051208274771576778014672742814367227796509615506692281007363438017247676622392944783827008511819101236991740491935637538541865323897570142558728502430587833757889920949569047385392314278557000774090338872696232228332301980332895007435004890747883318892801279737003216783846969446594778205995576349375348434752603268816443686925805505803139492894962665813661488639431916649220694230193555534550370498042004153302282187056352637394075452003812566722010565627368799928132356421453468581056614994381308866988487640177276272748419923346526779576666431073086155828688756973183017346969169939075061827437892538490515785626749876930616034447680885993357890048565234498555647297232080457755253509013296328538435706026521919893738803538278269629492595441246721799396992746063469217136820915744189743751578861232107221841529378136074635234992447190922467438029826470580249151527989910638986470422553651925682026988865881511301800578191248023782385023178837933774396413939700975673154358225841054880946321244269018677719933361297985812742704639814424519237740583569910538027158932141985629662297197186711953810603788925136264629480445445951005522981431978748975266628218843008005575653749025532478692913730069608514556756214699950492290137905332292575049752863420041615579399705644091490277841000493815998989268892504527677333421074606127504428428005560292354019166664017879852507334860258077125341982056974165618648272401624398672463969875939599111083813157307466598608301672379045063483931892033194525938607407284001863016503732463622195583746728488657156709949559203149277697133040320264301421670623896098506210710359984335586803049121206731205252298161034616786516283294637284268730067230637751873780793092165820345295369583857763546744615057150989928416008732257697527027193864418547028235912819227168811882316086952722563176871998798247566605921368846449612760395083796897918956760466096102716244243875241737899562751816393261488583995989682655658380855821471199054217131529747254154803251694034953537218868990242217760475324273957540355772350453781140916460887139173024127526616582845093849879009230194024523174261338549621792262844727836893142303803397101011379429243470037380000607909584600504947280866691396248921740731380928021902128679076071057033498841288289636016022069239276510249767786274312760743201313498503579354184324418207329515062749629071022593057495368638886092812344265898755830229531186328322612558791256779202398289185686643402932481811831067225227109526279158225795861298450365204586687454621001906793928002776172428274641306014863897929825077954391083334938361803158625410880722104738433375637787568188149299706088551577791808463304090322893642621211953847242083517282175385283602692088030805721463734848862787744223572459186552086591893716055605128319494898634778539283059722139141406853758890129530858437979320188457175021795279351199108106504575158241817931413534724847430600247651845415867979005464943050123504847652941388716385259299018727963910004916155295906374229585782091231353000230219045113173206005727495299734228243652278976382933776772145648250949487086751159764539375570167572763558956102369760916585022070876841366304789721955288753939479344675570331248638630314927267082152733263195229291083581821641474692556996237554929045754472003545358060957122512346177405178994898137699082724184792915604039279451973241113354737028756630922042259376019063466109303593545530897270846190397713784300688271946566208253848808460784010647917301619713273262782831364774843787725980235256419405221333037820227633122202647317811458320045356386731692044584330477522212854129542200900848171813910773473293384867032923982033365508275265938503968133789722954830924797737760118617566918809955766569021841851866139976481777921007828824679747546755069822205092629489434387739896388018116813803385481916605522755400893573997096446351843810885681663364004404588518599964052729652775137291593200725466913897687950245086425302343527280078435348221838929594280378298506393619033502391553852860054881889888807427763932575106325502615017329964379236693975523601151281592605845019422870642452489007707678283155668630369028614355042510565024701988003636956499112904718285435272010040036804800334392686385592010790219850333032424686066760136501129185333906433774297013044888178958045497925497433455425726138770806530551981640198835955538694667099534816769024426662098328940388164251225393983144568528020734450147977415668857289209387274714612278846887056740706320639836702382367226742687458244513959724711154285246829993605675895120549132655863456170569638200796100501243328663649091313196276274673673831083261729517013677009118853525307610992765196494799016301536413223741522474058007924807600226066084779135810244856612886775249390031182010797260020855905489216387347912219073161947557158920480907120043559470572333302899412141354949357428607505102831335084202060525378598131452156788991977155632637452404787707688506132780623632034962289830057941325129954363581179157267010432986644527255452097301140036727671248427820061769247911585308402723513576375527158430713347761924457599543523775672140022750405978314763349309899673919965136992695412929254793613371949925999628333333031867643311323709321033231470663302598139217040496304974424939305084756585652262503007821703386222097403046593641307051165468276253633178621859701937843676939054417075344748451300023773182633325619720415594332064989508123854056913460209156771791375730116909426755066704003445402366194069515880154099382135775525978731442892174485018137552840457408740234588048263644731540116503897588337378033165438677988880593751790177685655424811898806390162319565266299386061933743034969872854865234368678089708639141436313238882083458691092921915451916748092852723201503520626071843542383969270070631901558478296869892623062120824137049720197449931717630616150238574399958659081542664101973173976379898994146842245402067797084839625083701102141789035967213897408607083479729107050259666773388168374883529273114402036873482013154574319578780776471623396638408223754205895410146771997190610671206113029470844637490502489593124292712390730969932139211535732205204279839003771738044922672871153543240854208341967251550190761744463089886311746011997528532449385812380296475206012636983743827788524664767809282895290946553294886186530750392163352325353794304609704597668590163935768951354181681053111934915692157982961981166567338470219067581201815442125366302684193426576253499981040173498454688912467415679001212847737879293939776119372003132865110553474740794479501582765167736904413395680704228174645986993090712845025874110838588002173730247184750715968698743861966397797647837543282817345072432889433068915779424475384519881435811380023908508475971985524361237387966541096299068389605346635186506969762816210390061053983860092111111211765801864817581589774632489860397399123842772007746432463811911582751693631303277958067452909453574227773492994760770771343410093555461547701945098148789603768383886797353949072267856108959116571653174757543432246396105707491438648652342636816147360983644784514454539423714047787665842882213018685352819754432396660982059553475094286394638763410037406262183277462252298948706519659887487688284763725359361326593283243615346762269410188386598465965563031344776990601398140539360008990592288274551788975176590044429424914772852441362417969532146661692008648366541045381999040276428870002069966703493637458057863154650649465651855026740118445055784811668673289436471406566757841167209448550847438250743581536908119035951554274626319677916727484873791020689317884618685179117888130022309624325555885019012103766091188432965258706580576756422259283574296716387387892178359878088128267640454060063225212656723788632025371593667092490175303978574908692441961175349280820509343333419281139875287076893404780853421376364076278943361135170212848832292882234139956702599842960804466975952798201480911166867553792493964285063248602570548776905454665421826742730644569946629149482794461437263360648063235901383062811112888461275584690381326445862955108338705104927903499640628552709148649280909135261190172224106038198968661783454081614964559383835838156442733542672711483766629977399036774749587259282523272619343661607457893772653258926948122897134996864522600117937809639605126271197131432858943972479165357694533818922665186518754144387557903798943336291184079194863468614162739045464794161125974981881933556063852944815555268303995908213004144596370492810767331515169705497050277754348633532227267069803488648718102557271197225096462483869791582363082120514473187209353606642793810020452546828731518125918925353070401510304325347123255055862609561768612759281717767180742693447486587872509772482740833468427773948063450166840007699648409501808343551042375512091852905992806466041566280753153666654604698864311666840817085180298235075319872833154550800992342313016821908972859031304318641206102016672917602256400689065991826547524879690803388363411391070080606199807013589567911565247387454633834267253899203853244766493933787805271994748074004165842849505382424011651273976818099598371075110011908388961856542951248067758115391677423054653354787343723959633222928184906501136599450357078747808101503882388223248888693732692995118623998205445665109194804632541747972839064552343378957305305911168624980315594242085605224528250102016628597154139933664259053191509255446328813341262484940815015769771716613816945751542507221653996158119733884924092445530800484263072051263774097551177165138714418534995580062725155351251132525436886810199099444631247810106575323765170838757337599305945983764798897784754237494230586978913501395951905881268412884427568760017809021913232127580562880278117172452942111503842238523604574893914575208886989274758557711424498996261648024645591799686323155528781794902583120474181945048976247710824695214131949607497789378576091472425146988021157621895043901043546277832283643706982254699885445719138847139725491091515602428431365079751269277551537156426411495842741891433807362127387455613894465962656638733761271470054361411053370692000952851338445746525799140351976159974401362541531091253183013976108062982794413245025781647602667373854222897972038411020686456696431748823735216317299345482105204551034962666313612167818119601464927831707133549623745123717657867038062702271901234642250896687315928668005397036073989706172288051721197360579355038608262950687628312863350802989120445169780843849775291367247810929138905315091080167935973953491974175806887473183493480852954971581856775188562231241392120107957378762989602681066692521648521327517717107759393630622664545064020440134210899153046942593810093488900777835689629328462757931954885006451886755974275546110295578756273703420710732267248949852963521968178500007281152434534881905626675703796594509499881347454191114328113843855132905691345417770212950708013103428517909086721208917657012616451961502369257390286193568818120997456796657166641011998608076171144272021019656284403565630797219833315132920389577712906134580190773400235339122267847550836574524097467020114896744761111886881819044233374616710741319404331430084246993866535981246652909423950170234916322048336755305798716063598729132891495162414633427176991401193095291536136517820339505763209753105031623103635623705563079549934734878978503910667904019771512800302451989094637725029938150744716819230866755621666422318356822188546014743685910594806552200595352905424044179980009950859115195889082352663700881617549505476011214653909729481723450225469671454146577396429156328064629719946670748056054459998080575388917196082309011233983334099952501505698703416989209932250138675382665513717993637089396491845467139266737660823029319569650309298859682917326486139394795925616628709497142690166374064070581926530229733177078361766977832896723755995500967743494528872591532736191974272794080421139199890477082498768377290182139980308056206346374101021134821137596814111623789166587649273543156115400188115839002768692330133298006421546172189637393676183578925464720616579584658443724906881783698506280219016685919376498067421962524210386337268483799436505075504480681377322420745284519604656382849050913916895105562056051432016959824844254623849274645926129327852335421776745399459537656586673685295983740311464912361272633492132306014543053916585361046118959450821458384209181805984643232611840174059680825319757045406592987303134787991678366640478028448276641566162668545270104347386699967903842887559915496661125637050930440285570692853498169242577392411035281317242311666975798261403888444168790763115455160607104516722547556405159463044628599640476172660208043638258955225891489088044298419058248173268722547945312414284876748446975513357296110252126558999609468055463641476485100618193913286573689501996145151184275118068905289153219526897556623410371084921035229449473078866998203143000553444547419669591919496106711676559766101681701472788166543401192000157070597584085211550135672832091793583070072159222788681005268051368774165850426177025035259978856738976864858672546903718073911245974411402542866614467291847408290982934118647032332134050991716976495618418374706274770921150143571305947050719060086148841608827120313480278141586269172654727054053478537511413204404093857461538600924463526358678813452392923222479523060354791799163647032235033730460099810657346717739089056019017839531115848306651074025989703147073618565928702772932971650500727428769528013413083614540842296271719148407635254986165930183689314354308043877383548554972274262909804503590471773325351586658106401897203920650651413338824938003342307647911095462658453993194975276574933114944260191907344182357042757997051947424839985767360163091565254782682708680940874540763300458938611179582721393133936943723099687425641150477823079108016423948790146640490683707211997460942665397361959751916413088759280789478756521495450690818776650974927195257263962370781378067151919478881704971625186491643770953740349511871284044805387166224795752632498275026421405928662926177390492289147324833904818300627018593586396882582557100261140441005347262504509925265363137018613387623076192378759622576957204568832765773179053204762536728702723445487595746922715241207031131428633228627008790804784896387489587898115043408410733402087634306759705990083621154693191289265210128340804123589284395600210098305574990881697441928990182662427028471039715079497779428107915719412320591612874933251252321308177468007658914835745259736581093651711631384607840031007241476246375821115304256673015909007079594710523464178688664633441642323366562182136640606818728609319639055893482736143869244070444760275403707141510480488208772392550421260523809455588500771615323911045075424599140376169060946963357040932726496527770846070121079167421148099347411372034642231454859203026361360685904393352384352758673046163929505213350038644851843235858130306572660991840704620227378299663297834118713116334327559300917840168181045484786113273886009346081072465349763507094430537582051869136635741615803416384006813139688764900884530176166014917030947524480874226413416795777516063395151551568328556438612194853200066645146535140661066259166311183163201999620751183989758847767403161021699852901872401511673749468615803329090840185099699160685278202129969253201560698869463191748702852254496333049734807216234139006127986618663414401043346287380536259878004367402865704293334454098603294341185911072278316084449189589331250927272963368929028796797797800372221601633666842155712979097730875293230063709620037442648589306358868120462787997389280007504738925724017517451293195471375618103337296965975949759784538331760744759743784540696947137370442516386708424119982517966564706567671410675851333296836516934922210021012223312725627753166271657295841321799841691480324176671115756534736103886937028713840198473102404004453284228230625072549980413417263853484584314024102057966485570061183931761739399887617362452127887015976899083271339644301599858673570102676439196132530652839621796861822226055237661630705602679230621572773093706565868106341785043166905239701836542668855608887407965882910370453450001357079336995653920634690167726191229319331718610426426547102352748071972003209995601537580746867845141946269922875261011573898814245039828734787678808085490002087012435438152640627973918228003683714637465595236571193284116910429971351279493374177881994252338351470204652422935566385572102355637641680259660091664668240794616462474828774802564803159232098808516069740392965273808960339785097750049431263878766511759560607976744739773772766174460813774393465635007969396572242935687293374722356815163858307078372131443728920436159939404552337037813862022342554347529096637783447688954331545602232194155495431466605280916636366170978288496106869047819279842468615584331574632607790739694532752649469576269274744323509988420397173008344705431184318680617998938939285078885853502244539109598850699103866206268557594507732250511508268644790013661181847229568425323580066089856805475200243227279925200420353888236379064879525336633521203614174586905364571912603156881608089875129022770876645047639974969189402882013938642547474860785428201577732539103532078185059020036260840566526395338606991800752978623670338311368332105788012426648435710850518988349860818477413472925265787804370726464645148788711319496272391251214987838647775696608710051269459913976494862424051449434816758008485159473269047175622057934153020182383160161725408360656928497630710438631233766848144376261618129173736454656323067203438382340621323944023678701386145831405981626277662204455841183088435884642856287465415346601411095910236168472202340048251106706586993971293831658049236235297597291425366592396420467605059326090709270608570283428868806917279650088315014512603291533791247992266788553470840870441651447554026671214907584517882824822109261188085748256628114180775880839126910524604773147297100188707172006174283208085874639154874003826800782256174470622906746668163051658034690938032934888526777943073313889133764926228204248733866205417444348879584458848601566920779239845670088998419852472735510237503119408253823341294981062298667580579734175379996835812048616084374501635130455438233143471211543787610978870932257716648123414662917964458110637563684522174234565710462783322804553420846200138664142687610039375791738330667687287257803974110148964637972604041456511796012448467114719713923926269032106392046302909897325619658679992829630246706493900738306876238910670933029963781955072235900119425077984486010473695889991725041077958193918664962650232694052595654214173654105007833453992430107494130465230452009948889405631756541812925201513688128856755084406422579362328441676584170339310788406117631719485980008865864252867990833537951063669915822794099771684087679553745772788427882223483102999002629256472827643749146709708239730267867589463059061634541532421701651450161677805733512299471272940748831633767359696108172785801046900999649444678529524724486054749205940025150784227318858493271841040399201842215315412932562487857044980072548303892938238905677923608261654893192235837169917871251436440991621685451871709608984270941098266032038439473637609392269460785743254847168310827686386588909784494491777154302675206138622011964608154566460611679350024638766398071276217493236534940864056507073427413502864989401991998050305746905266425739942058117436380379517749713624196424297030515548416625589921581856228433953442046586660555834857344925029364653444269999039051804491788357955885094628462905087915569995634242530151613468831950382361544910813606259984945498375154120517860000606126100347373178620620843247336316277277847031969899706949598181692161349308167403334602955636303117460798193931767034603697678013457681527230197695190546263884447562499120475792316707959708621859005547730451227770506647739666963340890603058711232802082548216322755079856195869526835009099579458640354283206754500034803184885449639010522480009432684680647022082441091434326681284184656730626727302073826261219035368403715862827949902173598414586407711785475012565702606514576623675967505815229252368689648239320272698903142577803882961809754289130106318984847330371489432341971334926673518808182040684644051408233015674714174063465292516371110462186157422606359364218375085204363596716369857954590099131463819721242456321512482688047239490952838613953805518302226419728281631365432402383718603712384449948683464120583063713518044848043329270214971942601593961517823502963365751607286422440378471767790566845230996218204788275327706608855068170824146609808521675070727594573064662845380962821181138370198953715372584441995539167313798967528398399638710743856162060137177087834848072575192046792168780168001467530528566569658312458180428306553918263963694063271430851303880883061487416044189281853964965038421164453818897139895565943622347337809092119360854479668303113098972637231132814786112166548000447882360114983642122982578909034232454052523958683207517849883897716975323208768741908725739085184474279627185650235744029714710619209519846132523482338979750431419171391663815639595678994617610630026579188826966668918775835392210858506012395109530365998918906619731501201066405806372896013451083834104133444137810419955879984322739797178126012627841778123096779281136342284646469046547241302769376451846408912665563168799649213953962869405659093374598142603557535895180271780096095804867241192954215300507069343489596387587222415541249541033089158367971384416207369865927880022702335029662686116870793093392645894083621545082407018282788093061988843672807917448337631456262655693484698065353819008587336553328645144368688651043676320885820809157415326407499930938840575442511326507373636587899648483369259335570441478993001538063365799440109909606613344516037732939209268648848361201310322598221639158562773988823212824920609496494270072351366394501475138449681825215997683970913340093652550018355256072402275061389271140404381519268489147037359463121141309826636580768958386662770416040699205258277551605103837721817869119670437719765721580233719257813140519928232045251332502691517205904350030480589051613935834936083698672254568969403571998622249465530223256965260141068203810261553637839198484740751604228912698219542122289664373483217607728265000949739819129764223356824031869873572293429369859729504263859457416080286707336546625706487067374458770873431269872764113304626533311015436679001599366094603548998522685979318908073798694253735949722606453793737551067771986468746207541127883589002766644942115178713065240586451538148818866612990068615499900740858670969935406344064871421029597379804543561213189669180403710125568759954408887934201997019267415921180269788747835703150542323234566207049160138128266987044221667010912444295224321792468855319513379563225125296223269216177352061903957249748513884022707979001737867189817843628610046822217058572414750182711302627922087326234504393423052263674666093589079396619307699605681104645764302620448078183409550894322485946773856624468794644257482800681044178437958005160313846849351338893956974084804044822744126898843298439121577453494410227371205083928946619191156794716059283631467519031170559440111267273347301448062297666974523649240923209195246485273810896422493192778929463203511989976319231957038949189641068607792191508396757621817492616829868925170012271466783818175054417741333934194779571017958304613537168262607061415053212269844696622463145873962270535861401939575202213122585360537517320507004339501789437221724368115293489725468093000423206773284391048849042564903931008814967942916736236431366648587741909185944369830242391819809798569737187543581954867095464754881002901770049528882412747117696425168231061751912025929313171397776269196852733990788681151236134939378304120708222675990955612316476071167497520163443412243349856099661302468818085273293523004047697361235532964519114874127060624956687363335300312409130363150255813844100868175413565756654037586404771640826900491854527039945650393070988788500804413723436144685026679014093300757397229351896004621806636309848057763656503630754585498026017178789000852979255090330545538699024005548267169032708251326085165670043075909685208629010374653536535794627439807239972995319452681606738486689191844893109190757496406043530794565842494447771762710468746787053284149908790248401696909604403897298540043138940029452916066842681925249439792286033753506750709350085084563352750108787590860267601658008548144787619741444322494564866397543389042114286428714181244952787912242276307087549760848283597423694095434790459945644479396411148764906849456293331961354081042948883929376720257828564217288180552780819497082690545673034404473367681993059062900156639264619612873041124287794614626168857951773821545729784793499729620997142473723694447663177052957584039831755518060741168542487756981341790453211204099578746959188274694471246949893466268355939287362030764555793422214016583908279926234963255445777609716768173454981869453958486676742068773721893642615993615196428882222255237528595222257446810431899951316464352791218581331202829473036676324726127093156327300415647885418360236656919777452159434415387946112075103195390845183732278534468790465742993863401030470738127380203392306785130305556060047141987409131945896008382154209341962456161824679777273961846365115996269893237968262711158268845722743860752039703645312639369457448713168127031666940903775414809295087308642138658147309661582520097690013425507741933526148594612807613755491894331657775984741767268595146425254989491549104455193459145763339494743706870063102152065982343514385871158854156931260944426008557458709139323714023411666069979721673249111534841996028209870113380509044480809049572094770724220854662072457064475788665756249947332804607276180003746408813357825119776270870118330079883585830376935233355711139850034721653044899757703135790001027991874004057773964245195987122652260007824589686325415926033345368652347031611803167815775382582243118640427451668713626506121266190977869555021317864086650063719284610832624181941354541146820130922728570476829904209884288482093846410630521170376090582872884970801432779552115986091297649916213909106531174649629318746475858763881471530403241468074457020459278439643394882157674824692709067584263908418995431981687868135764556377192222778125697828803811109827696805751804359678696575371008661712011295787268088914914707133178821149961630307100044829751166693360764253056890972444927313893467204981154100152751964094074919313579040919045981624547588228661420849244608000331802941306675847461500177634772501537936614343638302746921347569141669221116064730498375245814414814125475771724214096752138163077675876690613876607329043318052414492345164523809112371056273865424941341781287366618133965847525436342241474127506434075256830280951295055425206858832344517087106094186852490759156956659456604416577318408618273188698301821373850829529024527127096497743713831089215103156133408696514255423926010475795106758911941208043445875492096512664474636029119296496870854824741714217632283211328228983720286286679440364209632155438473579825096383882991882003429644489593508247083104127676042948160391189052432866287483040108142309903089374398627262991126160946865457223884078212519198063372125865478872064931778319700701932978762976786104041687841703588595284836903739546745756818863071844120528428924040006921228557672183758297975978148462500385329791791864583171778009060119975336787584253651355640507942998879224261317107924777650177925193273451243904444072002071633136225878331647962224632824935625175413900449101981245572263757965893812193796591096409712408707964700166259416403141903903673801051849917426124189568752822691163448695549998338847976881430872660618377335294766561888534193114581257119375637656846509607941904028069754989502074486422970205131119709728711314927580159576471561847899474926711752879566247772531033314803338431730750923325196775793595986206679636904210724727040924373595371660512118226990346964680127466825289841517383302662923131165700737494645087913812923337105892466861095342462502816999794202660503569881304704595577442190645811442550754726919338070923375668806785577072116999726119642518444094197355518939030354604810512685862025304913130403616934224657803346295491810015056171555616276542720376011531640232332838748813556923827086151712828618140268167957871566931940299014800165668656960145158463572472250365684590082545755656290097712899788028493941267671590029164953282505168616926508474779355162522638172544151055130859367009274955118654007957614817974664120381071183081175928740490933927263613337186449149538366148724204524028158121000196299657199471344758788637230858146333934035416372148332465941428053226733425673487021496712304685902964012402133967156496941210150847887476994079154304455301433069686610001753927555223377936408093493892515839662475668675678413220098564352228909931405157526666439903231457018345139496035474805452440051595483840428496476563433917887723458759632370904660465920274926843974894098226880362623141634661229660109320089641349136026259110670204249068125474880488353168292345946529701889999736712568956798492469934809570478568992855683044833061195608173317989116461581937473781323054087299199466016287927269932746808578885768794812399914368415582894939460386599313576854165322691184677926350942477487064852878898584869247233700283882278670152810432581429343589362168405391502805758903383438845427931231096634862988297146736570875706074159049270423216028747520207541411087258157805917068680076202471527214823907652708200487075079980181970222635768705406634911696281780382836123133694664739326748983493606547603276691610848469146318083018330603515180481126889156279159544318871825554222796654491322795555252986537178885498342605777059900373350820577294853469737407059439931741536509641813233633480647543423303144803581086955264704439881404147137693178036878165489108859747432518278845703931772080548345344418045391714140966993265759156422066622373515436969950831450075050471066233109358189197871521187842244352507865991398452150919910527372751599365227903753267734401224520556763157394728640933535328871390173239603251043823954232941325152359801180442805998121423250461675664371399156043768352614341097750715569042719358283613920790347513288019013389515532106753446726815961316422113295573925496181828746025333451654410775745731982398468227465109670394870922633584042277973197694851832127748087510815705463576211467682384136911051700970457614964613738597856492738501488176136225931794632807010554294556021569262914026016264136131014638380278548047659532612970092262769421284071496093147078817923889510654825173477782559624233099155190941008099846350537769037559753725115001855641621524461095150606296629984849701582829230075616371541816900938912846364317138050151821033060359934265556046811352116845452936677026265581269510900079690835781768831012646149591979497805798357311469084532297849597063768409559955141222191317425242376044688776652513185198095773342931767652092361349479980814326810137282737822132533304457072821708124487750296034164067505992979852392631147273386689574333074681250149335648317761290528512008761772341728668063061552985714932845806541350915595498198314427078068911248918175599614218693459550023619513949108213535743805922507652004351012929568351553122056076119330267124538221649903007106701599835876230999063460085801958291734668642920482182283495221041064044528209677079125314118534541925704825286904437939965125664817116025467816620173151140633839835131559113873867789197089790767754675842399746210087717265820277049401545589259527355338105611164330106335203881865406581720719886212838309545421832698702822997122269659669415775846767095551126148789385871116285700682898295679643885456400789877288185769220185854049790093567459174997972127387322123746219093404293356047787029537650361411847072042026050032092457265916485863078147846116907481701470916599164083574898224633811084589792259171281451603853206588365681133933576281559710745396486206678511966843825149566909887751859707108903578661667820457454978744647287145806293382775082752842025453151457657072153604740328083321524162153335710336850970483675932564513533897566336869843798482527312256572771392987506661044521723818801943325365807003118369145387401674885678886378285234609654966517591820644469198308300994282982486161678946697038561649422720391244300425022918688467949287237524073311611015244294135206134092847445470067620257445900377211913467666033876657345266597537272534471034211510337696209673567418984880427706803662431624472410618801199541944335574758695845612684697067830104573275181288721674207644054547668593708322311863518038958502316657442078907895806937107677413585425623403078767859409898520133377968203659061552468949059204033906872460925796458739452505748518238789929685596904215712447153808016370829484089099593701916346350343677728354970270467763461035431526872994822037125059159427394628944024234463052251587763931260664863606182308870971069155471837091785891004003474884523728635145385289940906751362884412952095554548208597896228451663617619830820920773130281459072698691668592355551180838856077747832698349542661165247425392326514229381736735299806491644453667492976408048210595006586825735333799220113589649722176540890442897549366147474291310087073006452453076870502450350950652206972680136269482821514681664772714649504064785393602048462028104303198292307946565033506377968549285808873941360717603716003400395968385676319190360766633504198461529531711964388799256504041550220934242375161195629214519437192489435728386931320490168495481312193947152909989332135943310890873126684582692389316360221652127312316901778150874032420693406001713646543725133827641837600638048653653389484435175072504455249741686722013718895058410727495517076474564441364715520998006799820873912852481135613141492056812970716179821478758076830102897796006716233664343530208074014743237763352209003664750968142275720663132224703106683129155475724870823026683945854813132444609781757836201667208285741755447498384665411435574067593485341069462594586907870439226757723173590550164616435076256463916581891937549271944954336260706432649210513303684639242639891579060589291744513154684116609142285776841291280064070623951244818541012182663818087377675691122550433632025567920197858556697142712024326262703503158578574363974333573609924777754720687658412172124554474811426411233574151500469307379673997610654633753683013586866449889109161950854120901187407494315348396271653396673545075530832756446514482807423513267299721575036210034306368248966380858605710674796991370512160444003847054322757806231233892640857627023532512725328145469124076222187549831754138651186233924433260865189040028456344770037740894801890037214338035220313971960008254575737443306388107785577869508312556416705597574509339714707839345184856309588768558816870515972617430248642005541181239690201556536194472102267513050501608496636559963952134313910076784705966083538746115877233905735661560702135468489121949658806563800617197261861933781396652822956459146132306054668087679033197918738790560324154024444436179631665987910913564068579143514327545867952122177397719855659899468628380122060219385699068852387250747417277313718484260673518288865218946691883728148221051796097596362440865936766949182162576478145490283249518914597989720517494870552675950263699463569208405227610407470654168689176506282177682325488819820300470083930857889055616248670996930126098523384282587334739021442767939383476952935783017560487663034823243984249227638690051959373846944395701469462338618136165590010096375089367024856755914373939160109329375329036935030001985938709750743780514697470614237940421326286416973196666444817688447960545211492921501664000842566340947426935774226011941808387311913660756601969385259219072980947348588736446592728382325718891579932095645233672266693962370234927616494548379887415491858896192948466037048372162303664443881994117867392169824685945930731155679659279459748587552784468645234519698348040512610853402092012811981244350276599265662790660629922149202901630741772581393001422595816459332785583578428185240734395711952540914593505329057736796863564302484967044956799227753881401479953917496106444256697640387748354310007174266289129319041430881286614775511321442165778904359545483808601560727154376871370666117340729838038143979562422483600563321002662915855242210182984250876818429865749992513181377049218499055182440933855103110084975564127324389388543503343134578985603872244077150292107001716912890010303435121169332637067012537271422983120307028112687710453619064152978396459081549665799993464359764832430794942698105613543324293269501647982604443712592964040719885835481738827477615523492855678091332584684376902959072379272474481276088305069870997986205151401012358652400734065761061464191838305861680856337055114803926074075637736256084795953573951328798749435927688707958843709433237805545811438728349079259723119666828856941218047254456054445228868013646176882318771936979046829791330329838242679681834863967769318137439115945334634654776619150445777570907559320365923642066765240468984900426552556869385921221680078030751021534347069008487501195357480872488115270866809689640119555457839569788403702437032103844780169963027658493002137080905644054042990276071478473792291290115359867486763815306782864563142855082534512580695007212388731216373548745027070421204575393699122953613374707890749949047377625767622302759271015906326874933566616538025011311127422923352021141950064017347097545726019944050725916690630570218103943262297417822650708882617525282247136944387230731748214654360514148066913039749711432086194933734116009523436883693089583501861592946665685478048947136822849035634732633679150784158435394836728593187304846018434493969960858283211553156909584448822658615790995736423746709360703289898206011729201560052289190842187199172381873445068465027595131445956557410892008526684951174877548691199521395156139028216482905721458005141991158689837272175427670341722799489650362851384390251754593825688626326795763457084987660702088905704417942270831676996740178115202154333444587026361153108441645785830673766974691043603110718138464141257367100964425369155326940459549085560851282354348123082736163942138785782643705733038136740214141526496520582785853763732324421260224480269845620736938243133424814008274322643425466986475008845863388960654640976521742749193057403554857665503156948243223814627308396443838175930130836292426211570839976435807237653316466015547951308619275854858262741658463385905926205978497431508569462998792664962403658700003831907013296513682915259294394598410831501710091310366585444677462010921175507418629904394529215538165481861676431665547302849496624635640410867325708789253706767149325550203646710046782039175742014857107150322647051385800218624654972225919048264347063750929470042047251579661604330981810526064096647203559235675253036671138102840077686337180221617083604702978381128710736550307977836773749155314401845912854815922916555500198989099368340478520470017843280439384941937081797003169002250545017125313355107821843320384566533081891777885730943441431366197540615023656408221901315073853487786887864753575039382089211005798374550568092007075092066234072396295275773873147155744096966086412965883012830776123306306691720215522567538150769852497316354920619408012591775097865536959695826759777351938558262273579717640803918319237481473025967814405061666142383728060819316460181566389251628830361105203495180186680717169824207188482797400554319702882965970216568533483886162137559036001334077692024008013279952947143385746979555373393814377515142777537743977790605713812413087069303253434548874919819108317993607791260487254235400453609518312119210603557787460247841414562175240524716078810075197319094076449055997258360924533845952299965206268656603373777190927445620943337026784415075676430228767291418154857794294270985027314795434377914216023675682662490701996622487994427665626735075770819049131747790490683619034286653805673375624641974505549591982616659949781647255936415270798200262184035356019052438878105945725634431567208875990362145322220430226601956685870815966905839150587772109963461115575679885996507517905687274668818176667684621112500504506197223648366211492536083213395291411092137113429302796672533299694509505802295321433645626672978805682719479365969442543203123513698030377904414152058520337910294227456040253345747722934494755674482703988029417875120051802836712145948024038408440995670384480469058548804346430713533791918733396691358513899792910128153897304684551288377714484018098832945232419426915984281001784180980059373122427863608250404909410180404097750801674784509654815518153980025156217653363835658461574131985674269452527648572058309547907763615876400219774019424518547970963173304796017375973294672938148068694084418107352889371585334904429946442511682331453649160456249489212123199891626342229287985647112229057792838035107055245128297111797363882370909926851683210075397035007005266630269042185631277652031387059247198461391221236067612577066981733281478235239354289489845016472190722176493867166604011923078670834104496075031590309757471076687083529151358161336381968770214265449916582864881250645308654499094261531507903265709592261942367024708809187149903959678693666392704167378221905361602559684069330595156674003520745583308108783072945004042223389549119077408826804401914005847426370477831794975341401235894795660041075876915715442576032053838395536896841125345062146155222025658215450596589866231082027862968380993842668204673924942770651441221003849079197873582261064277641178828399544523510914365561646534387492599050530435153354183971136073465296220445183981166319101904412452988169705354443891995759519666623231905541207519799073828730056665119698489653004536936246900003626579494614479035976636310565488024748296481501999587959409882996484107895734736166672245587981905211747889377441595258290577359925137435624961198238228327855423636189322642924010714297863403738580345492807631290420803370876022665793502172049870227264798807107938173058888655711999082330623128197822358416435585760759515217536986627877090674116160481915892869905293046509306148033314446302888704088654417517227120459007726512224845831063145378378160644653385130002259059692009848305125319342804386016720142162286968872398983200470592786576317972123926336108989181343165093064956157810727451529370215955632772849286933712542315354212038325299087403338788571362544485985858142648300187402016275258814616611733559727013022133027990374830698069973715333881233158689106077720155760997551793243002728477195652893891469941123238199652917794555658968452019142901279651708645702846952264493458107116257362697304911489961625317851216857974506243981528063091345039779078535396826369334141218787118493871247675544123984602994331454624725197236297047984860878834776321324583238031420644204802130392506250037061179384541983016100984151752651172869526066976663798829756782561152433106053169563984999970630806685850039746838007895224838187942778746751716251047710435629508808699483377945137383078525165909135085394884139004768068405745820398397012217176820044237408828368718878851453356904149338147962411277852907021809384984713144780497521357179400988178018242515838677297165024829821846437543261727482501278811584425844119366139262489048580563712986863892536079150734328396956188865267402040406847722466518244369548121341375415036152473792379760708893823526980902296594526894445227103481266599780718901299990927037238679166973311230013370260045197243099549520361496240855572126969665181363415326120596780754479053596702546479896811400820159895212652900955280915237605056570069763984558327335421942476049554189949540505051353840688851690774194269879437449283451032549722380769349046783420475604699743841066033554032995167247184174282717607011598362138744753054287230519604569636873234160612023356606256721432576929842633255823405906912764575298749679573797969406817766444071892170126466246004000059287476731508087390759934939202945814686435998365260208784690242859997396433750096919494529916153673531105868044887710964166942773220417783921920241242800996190701621985961344943891327278994799824795415811758809299419882483372731426611601493946924198859156453525310713513784172123398834638906983584723130832450394064667693808728904248526229082830850794164984691628540635705129138763769010394871114407998449569250600009042853291474713929641768092590540048415761980067895934503741422320280426989305854651882741032590252780330059802076090502883231731753465254261607506192464128832033926365802687974836035064742409602524481046108644273036076375285485164452200065400599048915000565139955816352002333692520547142614809352153854032250019908389528505877078752137216215845214615783314921668015206271383869919932368331052500382023720061717052468515445667128815562072524929550587157488346439851298733957980347785643132213612536674397882060670769450152978555701383083956255674977237292652523939870747019297807969693252310541648471492373676093721330932796220409038866587978555431199740351584474766608370982363849614176929234471507251411420045830529863983432128899227353894141632294406159927462955351300382057460900444080420222592158513994175123387367219859633590859741107167597879981164224507841129124987890448943013123023269706794601939365688990130100422262619387858363672194186772945017511381743785292629087259239375961113497344935254270568754557100308067018389853060800160051765794392696988680247921760044316119439096023804776811659274577347111162674986396336544091299571312340071000820154137280486690518970010773864282666357147067454335468769968141790747012849391352719039593355661288182669597386124326229910953670803435697055503081655394178075007865093090236410198196871289774568675759826757535531160566085649942339872523699967840884506605160117958733832499144942502335780630086576679483813468907182556298170598599076812084194346343809559589881904207117712262763349377124270794692338149223977750173448657829347357907747826400356959092724045366246711530395505507097592002820610542277922497888541721620543608178740383867710317534338982735473378568826821473077075580776559712876282193541934112507663366180595117123111097699090278602252110157178049320954407748933074806395185195530314114253070408014877404503868236670154584146017420572311358056257056692019368854627997549418990470852787127567712894432349326414954645758556923237610786867833390649643509293030461038081455637605706972045805777981953497914312155044749985222099532420059063001056348073914292094548627042860031838248412541817334164960228186955198298204020544676458755653024967842221518740499891096872455659707657300570736573519517157658058537970471309182551800223043034072891200887663291955090290995435106438330452416091043099235747447831111049710664766372850004807542263476588723003326831683532261452754855774610104994402934001387912951507692805418871473376683062962457889597863075658633078283998350175102730561235444558902545937091106815271046681398701832301407677609430086751168904117412114911019106356989752691422781287766040653539596563301094019773599562373294793273393794987925314635863128328753869817828511892130162069883662207990184699264929304387714415834746289870509493390751970426422125970124491429092973439666279445173743117503430849483742747343096894442039026803558016403832607382523082284357447643324050579919301210334038343089540405614426971048520598376361469483405807893837654280062312342767369485267463105676372917835935227614293712063353626750908302091481906337834670454303509407860773666119116134147088525908196541105238391512440351164373313344089906812463607473990175680142011686336809987205211865071720960330313608868039794611106557560784889089256748985794045357589660839719270738719133421088427388250534545123735466687984144708984023437451847960848862149220748837777099804097684572598387595283960756576667020746799264279324251292874543253509603762270264051615957372314850684528693883819594548101173820009089581775091415410794771702324735080160904367984652441994012624929869064881146947383734613067901345642216521392417118212771247084136093008700523629891404288311180701398154550051502895700812730900377243091494275372386267170188932498654331627034058302635023861032010636341405506853604531717365879830980073427060146949894183020382147863501935057022565900602353054076498276080693750473815782273897204906450739766117160480923729337656343298610580868815732548745113399863244962315840911471409788250311075073126222286712948558952645316316872978128890822433931157935063801735290263356882113240691645789525712363188913265212626673992536624933045451266668821602281465495733155677032662049531231180636400250347902838688358701858774981013673609941824304928745372799244837637813846047594587937859801520366350265299728077543091169070336608460350354946559277813999871030836545527959450324030538176033381352330227011247450922855994153726950391692895668355796687336087899289751134834763041729652876325949313484003142515416088616011586239436677688088496459937422745295134900945763328548466149264279360169393049731253450128535198132699924960158662995709015858650767424531333315488319149081837387027311412183678393552971816542159875898039801686359482698591043160359148427273056000202211415845792904349359611491627988619509042605500977686149337012420996191376856602176818408900646041236928017799454925023193087818943960277874970027698871414812634794541972246922021610711729437032232420004603868344314935238038971410118070990407332083349031951114838477039239654068884814462647419797034711154419186464580062278619093545577131206319822838422979226068683181834052639549287296581434817750517300953174260237506604509784693645067990251121628919042150830675441138815948466748516643361846740156243380415520122507176393303023858880047639378346693937368558349040994422452080033192782323619695223119592953404080909879584501899247967152740870365154975770904660335222614944737217383399883630333230947587438759714446057258737915814890311561283972930623200176338136647339638937776976701679535306032517247360828112185816505655782376933873474733702336116838806747870797093541796348239851945674805742051728289815206516062254627941313854067603042022855039679801496505412375703901853215889377739975264726721149396659353621657416328666397430285629458663569094511602797215143840797094752608076743990024655595600261439613691830053553990855749989742651755609203869012530444600471581967091706497624145754682931188577498243603587514579924097057998957210525238692945791606261003137957748862584599433106036251585076892013964715558960567437018040411232796952044018357490154303783017531502595920752981168494684037697308756778229423060654119464008752243184316281024911014158679438571335588692985676503713318277487293122057839491678381997595528906491644122302720627011842299457621771731324337521222587270774688656909693081924443481294787090818202317537586232005907159791302443179574308574771373046650681641998989115687075027566389559112211548273933908453005075532367674320530072515103624784602450043982644990745517509878500351577215231858894022575323124478206987692054859295712903616932757038598077625611566663222659164835734445741068138190421409939853565088354985043038350149905442172619445550727704449272360282721937874762552413036222158780739755917961450003711665712088650529579576756679562445623513301570716922569734054361720150228904721029400652758415518219750863819409258572057318230287342574919032668844151889850985303498334571212963714592941062263327370716002179329700433842515086489564279001122742904920994722857061322326771718618773109917739130537442723606875059457208762152130653419963093101056808196552540696496210135641506198814402432480959312183181948754441839212731138285721287592654028447402424594363312029921810862407825754281391697986157924308312729069339808597170134972454347632950148127396093284088893945130429648066188558529595492227959796852862500634862973134245864089587149527907774187580133153201710899454051146099529430572630715905732501277059716916152645490989668585040009460268811864489068877467136961569839102475202086691488906024541296877237847134096661506383284557008974423194375014799962605074035697762265932951391366787270338081510377325806553485644615515149029444565713985183859764925931808545334245279783756793277927057716651806501853309759951720195343279993841154587746363534883038604630854184685087079009343973032365654321258664753387934732752048744074757881907105052919028676116499861079080376714336267252211240154397303644490976440912926639361722596276129412572127027108950408117283414188457197449618994266470304416782265788891424676537803091542287467704220540326581665621925508080668715031158344188470666331833980184367792194833659589060414018816920912525635723874460314226470030571854414846167589104762172589123465666454245769847620357430293486145253136406804018763002263571669588854384879901766397276819522947553893702976480896296783095870327659607990413429441006816474563900030708300942419217876524750426149773968022342184680752734924324813517372709710569434816504822223368069796237660040343694557184285302791355493623220384262678731051310777987082272512732356157885494918448321898179833533582300589801434267861773257593593153309900070021703132669663848050900068361969802115178476468581165123479117187252669174718001185637631930386647480508395691373429154300819116752744159785106061040486830684140411537628957257751631159820304783384063313059650303791899479160317612031273401583033782986788188592511901119491950388826305061163602822288275154796990538085469623058760738549561258958034494530475447538599632825933117876619371524114227946813140699910310597148180191656576357010012913317555679735728348834551232991428137019259588101406643169007731811685617047421405747395578658851149834918680017318209657479782870652260064984391631377558946647673140999851348625798942876772511072932951518077815156340899259505322670269213530895036032557773301192882024116325876082071710447487965049600246894959570089726047276847503255701553637976415832976985278570311024938968847385053116694285438500048307004343801474777248759179138970447075705280748694725592326210719930846639670961535502693336491908245571780631453819813305523072189962238934622744552863040725843669832786354163414016008167927359272687465788208665721830819768987491896246489772900427422726980123606252257274609469659547210126663380746203472399358775447786490673316097906276506604999032770905275906640036460910267032161255749333396070266031907602824043525110584935700245779936192905058948011879088523077192689895662077639892146316835441393552355544149108237762714061844733024398619833847789648428111431264876650237790955355937145804865463584870258127453518364138539331356924053252292701426959731317496679984671009329866268751272978397292391550855357714001802952869769753242804459644475448187451043974701503248463007720584398264656404048131280961611697750754249182494464309703284646498293303615881334934765403430564935366964866563076351424569074457711135592117765387423636764021269316608290868245673529626546591287624656552407198899330143450274763672335117382880563090618205505873214099525503872498535527542682566142190637097928413056669752928429397215695937090970874868424625019360564899394324151299053461964822734098830888013959661868291231374238942772759541579371842347163656758736762253097767355758066941146943213716102493720133373503676906576465483723807550244133195938270518108255942687604096592053351446432576356565979803078948851227271910925844443273480424344032267857926931865307159102042921138377020679919524485302115589631245349662337447927312418661358100417583751983644926432090670882352872877590786387390056266254601641446988518046767814689667998928420507198541056097122417739198508175733441633401618507966076285841602339827679761133753762989816302285369236499907872422265551442324087141698091629329947365761819309107725212628424372936541063329897367986628522906882207124898244343806266720924582807298679770669549937688589342437005883552610759401420917253360627802764427390477851760076857090742920537732711628183567102471081770052547574082149544940660131919160560690269361384454831180185469925132032019009009854183565432241954289385464799779572067064332043666744871164115274867853719073832343329703252002109805605304874221362969606913609298291110582762504196707935788631450049166876610416576867011894981309023129116811247325199145276686793557051845629376785827131263386929631702404972158860173362400630075411324838487268129848692596841349012845812190510760163346965269804665824599147720646951764213020485618485094038258086262586661344173376235295330271596103014696148779577222694716844623902560432508492350802372028763969134452141485478539472255387849368536679784585402206791464623747219125416397386649195017247334853740951484952338287942960451739322358916353652498925727804917742520653691622731790498422802859684648177151792131729287967210693780367836731828130135297206762303564966228264944029302446632944699886551058535460066669158442156260406034463081324856064333933619641599906528674620563718974155385170350170526039381345036747900881218382870373449349434531954810908060174843575672716258443677739397574202097485568070423806752341807712225000518687010234810400333621637035908899274758460864856391670856147232825205109365877907973307192826334914553724385390772124486438572370256364022239454418271014871576007710362625623985411809013970621213501861027872820473111374916510101611533301219139762578066584462920802045905113090520984118561479771749147361496890375370106491857087919063382580604668160986545512133545802592010098505176417305164665662572190798494918390102022420096394974662524205966255874417371245828553832688663172083881956600915313833440950783565992299935473556714862719608206062578635287865930977928989386716802038240723739056688434841502085856321850453375007976660509745064750267968025570571952111739898876172245187791665246901934657082826009888075065175963897036679196311457764548847494642347474581336122698242955954202373587428780136626611721411676218648290513677535295297968015470717796773273529084267604974888043011688759749518116159798372325655659867919608664347815270480529366476271669332852236236553554186491049603784253996797610882446957492944610852996807456195928546646538734099959256824859339251763516298906137648012849110493458340441823641852817903652795892158916057191039239303504408190990110857751653759381040984686109394089244113191601008168810410260564958383431365503993471646417070671169717681874943916665054239412127384879908691207259092936403629062162601191589058213726889339771570563749697254353739137772674601340896942104201219201901683016884633611586033612563826606220935172888474966144722904547028877153078274018194728072308243400567706551904629587713451913857975442586091565145969294826905285349687283868048311203091037799299559114335640445374914290652606484296439643346540015777653649663079404874543573075773613292325210041393583184700990640737576088659866209752392757955132668214797606767306457057088674508907335632408430748116153991669338907767249792481076800167642320494543172306662197009792875682423330284721818962731057733560194723395612429051656389760394338690852479971655430971621053076032870722102703482833285340014864867657614025323383369471359163447754652485898688808975230843241115404117204680874689274120351859861128219226467158514023740286055632004050172436817472139963398008484623179125704796998209077497994401954884921116240094362381702230489639183493360609854510501713392574155404408201191383270389948573808627204282902247131152983575114730699407148356719445250440371344954521168244389052684440000787174165378568762449024459599382939494082924848210702593066615713588562394003152840546394000433710864104742405853458769001237847130317614174507051549205685430585550476166689568173615950971031767862583167485297292484328481898224444266335812102897905851690475209358140048058875318543352180385195422531598138449930748543215874334583517361905220361155109696706163017472194502966547871897345886645533548284204474000152949934348389765671609228722296177891579160044244198484366359882738188691875688746549082043665236613850222325965564910487670339355860038934926446170151086691770805605166730819078347375738236235261063677985902939537710540988991823323705813647562238951810288365787794279974791704807750107720744622993877193015685620436662164320518400774986029076546685274505384013873726868355423734997603063927187497773076283004598316844313430254546614333530909175759215471492774336181282923058796832041072847003711285539999262722916098980374910782971983733550604533055219454268061992853081839838792067546197656893047423780850798257048028816144238517255258623469313484374646742167722363990993856374634412431791470262278913898008414152494370872111601511628478866798905831113366291603331514980374552208319534108573087550187855225167772539877441534587933080202711573152282576852180296645849517071915364313536853917454500868943988017510646255854011338733178116955220371981641724371310521137629583856489716428842147011304720967536193680653053916574897507545001780917266375466747506856176118793917018221685586000677634211426100907821406467244730028712962413994636371764888412340406152940482988646084670208716931641159910936860439285107910535946379346968214435282304812660053606328844210981376894061324874979796363955304538007493431211940943405754570409426887484512342466984513834321675310153092610787670987973613074170824770452318443034817275097908374304404556765662960653259548015354843349379299735705696374732397095787518642928537169427571482558793108173336412748048735679922682176965607591552292817041753792267086027049116952573687759924416209356433804403795946419614171236886941989614283376005599295581501647533054229905305592814958451352818252908030297708972943802720913732096419745616676210254918514173465469889291776883122639762372167667945804857265420678162080691874591846050224347040472790473642141423959106339634250012193678817107502289878025544412661887978708042260320696161975832513168466176143335641172751854253708171564554048265985452715890043711995439348270044450241246538089785829719594558895030276992377832766631847312369531145662328296065053940641773373490725977214867451892118655245529525723177739199353340288293046892756867256712819636213841105020679914846422462042837236314995378556713338187505714675481669117404795853734715519357360326023031273815266124911337983803492772629342062786923964870026736943050802523690905904993233025347355530166315410740607489185397426541992806850006800868227467768964476953909894321210819368932744764145807030393055438139453768905559109794311159693840859605215994956688598134713904974778276951420784994487620346004394711156112389892230733891747075920146225599053624727047521529958160895508638213208990670353973260045433872560237450476932423683795552249699995739749838559237652814534642219135317757045280951072167325752232956543689770448284869887165233119278737485228135244223714115565289618987075195414299710708927484100003060196104068284895096308137621002634635013018997771361086739884663147366377110939681900520343017895476622673925111713723114467563509768893111157660948642739354913039746958556638429304156356003376803388556824701070843950352384470307090465062600456711610292127367062743042514217994996909151254687878797112065206112872124793393825667708459605819539851813587834357876558365895884540887601391326408697308866462440080098689642830394577950646171418937213784906924101743702521422267934900112567854505226630130941144438695601269939424583501505295222750961022982487098464066157580938372185144862162958164199413297787768519627109517227754547826764034011479777848883953905068504762924541793158899629421099144391292741098712700180230973250230334380641471183275957875796907042199920564132187510961736779068126637815102232936206361912894183979238733195941187375101843017675199839872825444112597361834883665576007215982188530944585626993716273245969840891121931341087576507685738497541477247099514738731937987727030517138436294921063501750313047333022475256609871638516744032502643340947443885278454377045857467895238398259157971804646791918494960050397633481849599567593627104401446436597056546487795014430289275559238677453632985445263891445923350447157331663132029126392028808976787566262279082556247309575163495780972883819843727869794193274029253728878568185782968079638476715923481533141468906693654152445465651091800307695380262352740132846129553947030324762977222285882040614148198332493162477778059687361150893563211113741198834685912889335945174094791704417539297531644114377710693914628626350848294285513242942302539784875823081571358857197485332307812609068915434308654019627791958035742623199988922625858474385758757830077323138492646296136512168077205970814786138905443757786628431254353981643947905668997439163965176983464507546353038050373469222173066193569565932700033685291209805302146809005452686664583308817534078875620792951950973532636305547634940613388631520870109420708488797353374141213346593814552517966877469686110277705492824797468059696150131261669679216091397953010903407549664281796505937993246392619875109534883090898218168171318094439644668833395621265672511516028906018512316565486410178236794630980475625549509174535024099986313918791325098933357099467095258088904092530810843541561959019211091744025356588186597863014076884757697282817606210765349126341097290460835559893079590379567738705108331955984609337307513175077197842974701130445924903852487940678352114123879114477401070391356173060587659767746555567715767546271287845131808794029592877762901431055919881072269275110249999927563144235791261854295605377477195035135892587135566759282291732711680328311696608388560576066629434700116919549750230347987604281587007755753913064233371163723580678403980612230680742942654383938548745997038524152679685705496956041403637861249336013745486018696955256694676328602338530341612327371633428101446421451915155500903044673385986324417261884882101146000647753647901749267585305464347756157571088337779676231561079786940994384102909156094532536405470625365195078338929778478989548314670954791416116617827138130494112628579904645963571504539246706076349472168807230842179232465445174500845983006673615944740943615593744082151094392612089996435917254734343185803587304272913896504496107068454478724619474775869591611254330452041443444481073922902972906582811417748954164550609529168350340736817180193653368364221389005417084895332609317615691029439774040845071664937868867861261272038460426143312692566067422040329730687939310804093011909305165768167959331946476030605721419234426339400060830367835928673169510535096338324635577172024193467032232342840109653617788456615978299044988758027749831445535355228826717727141262650764660767089565660821723410821762178751173294525696736857830706945508499220235578400954925383866284014236875480142311188332757098714049020789303961228109513287583114417318589868450457269336489821477657193946950272344008827358513568176223054585061530658790100116431732215768850601905788983818573455158881178695461073401895746712341599393293005679020149472088085656262599658662168370791153210701945017046426743133012194083178377425203435154560487551905944962038065043173464531767178306660822001444641663392866320990090687161944187550403343687510481856146015537762452851613913374764880801769211465039170709312159163021672980944778241938920164096873276450787017605176691159374224912734372234813635918026935641890144066753093517356145757576652581204557214427139167150862425413232502694047293954241989341142455341548920231872323246191551368363378501696382750810768427842420661487291012316819487239498054469078152217284337114017970212779969792954856765821676754903848830345055263373079922398497363816063389372931374593536612019369057966479920416959446536133963448780225662463038997727018553366046006736817967364117364462173147341113126618733896094187837494166918766815872706017782062127147996128488386713680744396043853724757952126541918749658305561375733117966507953286039095724163014139785700935326164173513779467178134080378825080485205027756173376561150445272702339494412434321651868565383358037882309091092072631971533727665991244696911497388758558768682539962213131252693975076100607780202533546898740921268599860405488182598994003808892928325718513709749370293709357649692671703277613178330047042574070503562366482159684487196477348335826227293369528369884236651605141517887626600601527533676489343725148437238607410863035327225962351632436757986205453845918483242100156904981765066039546218641476365821323218434060145987373902493868138026389390298384223246159451107733924265958624001308870437968666599536666080676911160355481292485520891803122242863310683640362766576330437043496258648552687891061758954448015759136810345898642907792689024387367456434140755082328016612785513646699186829051548984213681210890412754742758924898524712232673830898859694022537663855855544781397047025983958863167102094242970461883680111259982961514783760570711620218006091144194721811746204982425123138229633954903964879457402457227727805523805784050210819271006944193193138661535049868680438877139342703286683132417197039130473291000104982248636024781672977552552309827357365890660772179772494930488975911372173051646452071634148742104424336786338003855927234244190762024428886214527901201954188317940004709845075617956673709792576939522346501183184080790584393911024793285470877219808248291814983386762150573047300215663686854928500089021198686706040679400060759357825819916143514668035252907106229236223415215557199626465195132948324423747578284520072110652110936198924341478955642248297668899858365377886148241053380266273810358119655708028945170182427910306817640554104925559184879170367329291300907425725015835383138682790383235246988928397074138428967269958775023487750391871596125427128562521399951894535173388454164841425835902599593102588447092167282587256238264207601629237636029993096876229028921690382103815422167563979611410091289443802414376486192875262187609263427249726632987487123186157076596944830186713880312091159028775358213110330123571952434487258506365582121189683992566684709739288402674563565333795438457931757936864928480665105410970055931222453368279649656278418089689880929829460969977101202416042283812951225373647119910687199668260547645450899859679227395026055529474970877401252810315513439774583049700373959334920205563729564674979414654896388639333471905093791516245138260504933579448678313883056545742813713461871458486194099547271403915398578557939808373892156638791703375977715676668767709892063746126350541925473460951911246616812224080082075543576840152415701317314521842322234029681295157727072089914880850072456490656842932934021881520872128288479288776501015853355675546984998009410512728898101211026477260665595224726862857347204482624745515442386133398499786962230683803691595988015279196443906347508511430664844953812332425723950871304896586224089180751566819666790073904625577201283528594637292334198374963228085226935007235527409012106582426531612432093242578540832569715998680905309657461124982504524802323840419140852036939221878036672031145734692056057575718507358519552218966638236379409084181874621775462138974444314190669912537194416177443592185704569390771952887607321091135784837179082285221214469448158167796682208441692199331068774502111274488203492098603344347744978575149452069337304128530872624157698962410221730697615178695957301161420423232091148593540767704480681802342495464896890434407321258257919693147449935985931117573172885664041323352173780898692728360400481626968947429655364067794174738280638904863354616107860965772118990444797124442548869073004072200529958306105267242289118101884548954830205277356051205114400161550176523534260757239748228103748106155686626055227837141282085932645373119076601833641630845047351907605757587374741036911864640934654808641634889203859646295172326822253851618738801316165474903482354538388296591765143721018178323973321115197053404392210997810066437582013719078288472945112961954903216798394631574743644463008082134244364631597019258040321213306450509469224112618240694662279088526963847559266019011779278220495814366950140757731037136809314341265147302098777701031131012913338127597657701704716179885606436951832952969395426469809803148993779890552411405929115027554843255294452004332974938565890409994768486719656682110703235583433143989769607195634260550368119869959244302637157549998525468883351313829609871055530285993544138001127160583651981307803736472428004185699597431769759918989478986998165653955378340877745303618830166147196309099023989665353503897789462212841276630905244484974769462269424900262446220040292547985736410593034608949651183650175815382654310835254334112888413897226758302300183756641599984761198488352669270624944885484406321071484957372093969713562630014844640497948786883436126270219435496091174308255490005035417481011393600005871618078788143267204136754274833908846326847358447305091887471009733843197882041115962160175581503967578606351247797398078534039008751288096388542102732955037489791978075097669506159116056538985662288718999334448365798742799301993802987987281297356316620705291209074082932930088933095282282625055254880598900026703928419713078333849892880388629280073481830299132708330740027787953061271758976838828092878552453234172433387992888951862605704244137607486072573997376709795642919989755997323410608556459485844787133722438878739719108947312503417096231758813811145638829893553021982349284792838475226204139078096538394200696688926193826609207932946735155647205247741121354853000844418570294388719218305492603794304291502714734457759212629014441617962216900753398043480537996991039481691891244398950414789364506983720749589866155952010671784612898111666211632470754701728006680833666345265337290886104175601362554271585031983429705983389956731332596412213077882351634449628371069303930067066046061491360881811040983487322592631682083623388748293029433753769935870533161955778745982846473306172018400239826280561856974342242947068810201410072247722839221318645564586045761864678644936451047942351423508019989201402471082522923854418457300413698711258753735781583619832562181351861718797031859422010032495976372649802877934493558303333384211385261553003412074817557791259468376009602091362852155163969306488023656299661348289489275940033709701705832863809861024485495426486051371628127885107873561204698217541532707465863770936717350571678447683888135741743630530119444847254428969017120048703527922616822394723007253331336205741331771572255808926317059263078705965342194395806384256860900532526532810341519445791240763858582957721170832225484106962909895410510534298002869763416505681026326548083625915901174206195124166118676166217853993816041205905942957308699304786284970001181227668571575812218416143039205045282372763168410951310040929145509642460682846056357300607962670452108026959084793192713592827528734554236461786062870107527756832970551481530097201900725313109023402248810830619754897521577844418068731014423517642636662848007349636870419027529083095287845949529002809409233272442861368883828335032193665642936188936513672204510388287795798452768886621274840953251836395488264432561413824637344177270703462605285631714215848110011009068908265576829339049202417397107662220324662922082253735796822321991261970110393853874610255816047391581672932627128106465635683516575738800362373895044243867619771155975500841069137341400809946832381095954799031390911267553864757752343068450722622258785472392988222990219094417044602748519190448729575510146101964916183196968774434121793132003751120272949074390259215029980836533620624139046202873021966409197825177670881616477681122396558231813416333430856756454576053138945095557303860787223161012785684107025710554297090614320992826389484782809589582181249570313543812507199557711999376453860864248701186400169931206480325615027771764923233956932212891465768959631091576242893845689190885078761330948389224921852293085631697211498703713332189784250805745156200909324817407974511234477116135293334732930557294182486546716683659129331508624206340561386252100163995777390023977932586310430869033956937356988336485905279628144798664160604907412067801988247452881906532598928349051973186063837181519545010029250206003745104757546502175583439496608084445375060185922005671727474726151803202982949019019490103869644825177419031626097430398167693617150078960916854615708997112936382497372702944487332241369554760301511242552478213767893083987675964982421588457681779448305715888230428765644391517777746817361617446904460459895226423389402252812617477600451011165675305434959015293948747777888936138442888084087853312697952719154173728765718313183077724228726452274426498676142839014948867245795153927195349978990410909425491236313409794519935695387524570350040222643480486589451355863139182774750656743802268654788954315922589140380282037504656726486559485302080402311797776875425509540529159522486850283367754059599507263310651341045087191209115934999343016622316598939441630336829762674723288944680828962895494595958877897930827134414969057206350426007879712126510468448449481356209201438440920129933287340771066714017660671014478856314722718452515234336222386505254636499987737946719710587810086254717329884507801182644704375221528123560740515067238167227736766046440076323263506059495695266141027539001951579176005552303280571954589779588710335498804624671754004322770633741348789730836083305257775009936602605778262647067688637278817065032189520442834777933327985578314916129461978479775436330516898917947221469273640632849842296801840856342485835209312058680648043899531158208598487280664927932929381540644229244984016682008971430453048547485864870171012347033764326425925907044897162183254810466880403976756188044394578335772370174186790354910531581952911100105586762792596005382266131829620603539255544556845540803216640179764018970053518691319231944683355672553149913974143374964746659263090710609826765852119449491456303029159023849996366112323177836497280993124104368993276131991516836092817804516519981422820680697813349129338759492108540762187263658767386062251446809807061493629953600446503423013416715160555942017005762432498134713277845223029445815004439286151857474751526051670790601096003673557715104496980951354910570578814447276074261976872053927118068908632351343870278170802182028768661174216433472082016601262365111861572838106087722557981035820014811053101195664008383180927246668137957633393225577327930818815577543671757360328207615179207472646573442121950030730881816085628767980511826443549198791621443526980385964937369428467906641890794861354979392099154363509785038120798922312169796734721397500574939993288408946064303541469511768487711051978702022390955148590344565867078710571540125919947562490342506365352983528772365767452704126701010144896998597340629160320150768949339345606571595943219354892844841226068898427469024347516154580329869175396382765704022535091905994105561982492395530327394012117649317911749466971713599650111543188040899920287684704118370627724093922947808602253062101155558710237901452728211495886527488481071495062084249923456299513277680063948078684395719405042002322183950224085848346080640000847140437331161059919113814723458654068849585161610997826128400737510065974303342956792726471922148372197993859784524384028726705248603281940737259206501198673170908846084993265010908583722027313434376151000057576771996500727470230834837614473507303287207256221497978341792947528742827450633296479395898064168651674237966099073293025124412806486267525832526131767296088494633196443928323975003387021171972019243606791852743950515235009354263058352210169901116752348679827986669409187598704331196514701653632657680295140920162291279227159343244865915249327574660983554858152747545294678106978314853978888797641686537658115774465042824547051465228979017280968916752642547760764097032112949443582365164515892914656475226041588420861448281753518011244385037184310045305671854459596789134549629626382342564086019622711111171130484332798025304729089683051288709708550408958786756690594067790253026254620683949290890955507761492581813306628958280880929997128893262748482612793538313105405154818100179334422699646505410703617414143345341551205799496503512836142907278998802189128152827719710881256680762886199972218429039029709739903339291485759222515913329044569711918489665628495142205507446563317012740935357357728152911575755419596092028875960911400785691263979707364105811362133865692608937362581504068783879203060383519017981988124472575131784570986273974316770205013003609608944542625503603294517993066025613359435716941627589102802412895080423977850965141328110263850298756459265991164964153596338407610009208919122345692746399451242412703622289414600972740177378802199158715506279819888404075652581058458939655135561047975644565110086177388241195564032628129635531248006774053007901206123772663625484520711413420702440362238928722044959132362824852507486099016892221474304646968651955892293440195045158355214070593148473075567458464756036011017563179480013452879417659051061448892353216414740025539259386736049835743463787594643950780745962517752062212635828722456847262618953126545779833259279714015785338341224275445155111706085159067308260795949283545835308878329215599235435619556526869594086179077630300194295815896284269703752425673729583728493920059175757152454728885291155902422056928248621598189445912673391956366623677234367290833667427368037984557803945122031530293071717931868232322437099439470271541170135553211615172786822792160731768971017881452063821729870472592347076960006083708871676418013414837463949010704616701785958806036922669542930577722293047654715476241459957449531547276431230631611570556246193922579478083402873590699656791497386763938150431552768459040379321685867415948447190998581389805331023679877616425399781339210629656820516532015882932668914590187853528235270480397570419245704276143087146295077452689554443762873982809505622174669309728241365681904066565064142424827317245494501358818404102241543351671653352897518027616851503784051331835375959991672189614997498900218739408441737364038245481714590525569416017076841877351923840509566316351867514936976042892664029823952781232133779632037703481441509959524267405851262199501745744087453502945231427825258580032670708657848464688976087566428803902000230664147278874171322646324927333176708139224907715190616244979345045132997791746504353654391982593025595902161750566484322824432242988795952743865580087355564799906905602878054372135030955891115797603192488890959952060002354041702629237813960657917676574602946422111214965889607853476797851338227067530954661747460239896935895565524400365489057817855132147606200683033698242754173028651194138710508601274709379538230553665158001517341143478787509303753132700535278875148595307855157198211107914462879586603752283261218966801980160244963597485413499428146055856491836650062770159165034186348328685134833797731005996514812309352124213121395230025043177446613402131687096641561426462528915290732644952971167421860372462566747577314367014419852753509958333109869919103461310475513064476189882773426150850745749940989923015172685958522370791292691049471504086964873378145441326003864594187715906452638722834560726641370573637267606491703337451947992223329042737980391686478518942886168690758573432225076935878505681361015860845700659530923239609479019274015900059746590727120459334070548605560180512493747542941081124012999466305822817560582601269050986989045944462968405915733211782024766294108280311137254272423852518926111304243627951784879324419395812867019777889248343054820087691552157105265774225933243959622610027709045049348941229241882854519648958991444567286785826396042905725274081054319959906555977618495881462630385177669330597276769679918237628013797236742438125189672952766250045385558772609822835507088350514745529747953915642684314076052585542369264179313947047739849930770817305344133579070258977537353007462028300560289301604610839986884696054457839256554434279098461726144440623620616839469481665584245761699758736617422745882885039352684878505558774230558624470762097246239618515302924928691086865355884705479671194715950286617189877041742266863120651335084403322659377287795912574573848147672012847981991273487324789963814559120587526711995535903837452805734310110445719974859587779872617704430128195123308051891022341993394555109207513344820863917992507597473719240812989745675848908122439411785738810519799376343657006122149307286127262648968830925934147430458170112765873037923018121495904803490943656351000384234264290138230192280221411390400148868246820347817213023830935568167183236704723640385508399415644076734677138859214145144152296302666314719308137254835978489357193301905916162680661489835795804338298980803749049588864718413825084378803386754019566408228914743446009633032523157550886149468356398135348115136577202701606925825783190575206785125037935290955990914589299072439617513238854203356611363189460229994835735815749570215704192522043948844880646805051628043399713973724274884806500883318605406733428762086856234963862570218287408956479938188075810488634558383270814556899846718308212422948851877674707873734625616995483912611362359362155978792375333554427648835780114551289119739170327452954708997205286687997408734909360734518225459118160049361295881482953867410003306454705120812125337821081567082592064964535952056283180357102539966978611648458489167872797237232331607936454424076954586086386200909628448993935802552678758544799408233984025617423336341032100027145530637547274293242506783312638489103998871614660823327322811581903921945268384192109164523493066364333065972505592318412786689752120926963141225233178927247255194242347809162551373477508124234838472072276415543120123704671004463046810635612387195928442377063184824899204985516038283471777728519968667348398019045569247480019866985360005023746278504177532648030197012994060321540591214485421553253230862175752963316323658316013166615787173055397796003957256959496813449866806455686357143018065559777189984057090735389255270470540019048756317044775901046071866254976819632295772671540485626348943569608465792717401278329803955620304072819904358995595663852406270356919121408081162990957208267188321209631097282231122633996245422510573973641235770600450329345115634185883766820008103656819683993408476046442776708110411366251065026342266358522833522987421300935266918161829772986682944776669740831186602499223082701501513962300582291059062387504137931712084644020792386980806457373330238256487440919949716324660358436637662444236110297206427803408942604990686016389224058157792594714564011832790904500295814946490437946401165456245058639410369323305830545205972358144868329183158587006944537271264510006060654631043577800561645251476593253827260072754990458572957242174667084278978704649823504624537857308463367636862591877808543453117318927548397572076701557018438273455723287800978751361378460573211831373369791612003365856903882490107155814790925055522289632107128584465305227234577141793163020881904627015070624339945790167603936404012918041251617098443347995921229912327301040754859823782205022327535894215961667579598464728158446620702269480395608576176209238305147879959639469698083066209859840070873607590924919766167839692219658897384318179707289450173527500559380115617324344665152676989694785627145047730815966283690930930045736781593685183576680245423774657068179149775231552569322996132267802769851133804302481550409905869669221439704974114229192085488032267000642904863158720229328096396905445354496278517430871625170467866248973457028890532693534013395888967079872751520088372882297532469549436061453161721018052787288576703754607419536915302005149417629501710230509546672544990966021599379240457340077998654880491105342219609965216323846564788547455979210156781971570742836728306315643761852308112724399372682217460678848981049751943834366192328608751472713393327924517875064712785091772623119828521523573241086839890697103061639232330510698790088764693314029575756394105064885186526460005814028475183297718181781865884316246424973874258837308400944141771647934908219091200295104209428119833382957652810069366794325090904358299428659449038882288749063847303178881015233293477209659379108275713147711942616596183199405330840531943506882340828840782416564170447187261434116945974788323001722991415346440651521826011415626346788324086707824436141578632472878010511571794043409452538305450672728740565183327487148726519970986736705068175554878599297803428572545657622313353698282870004798686820892779842021837143230737694447558457445068248706217510315677695723421862206439690868890912012051342103378424505836740184767266025706131709111164775351055516998758503841627433238809199159194266573752269991504250166046890330911156497196763895129117653947400614607104528208236116608058360390476999801908149593483980526791204337519407446455327961336258675745508596581717004776415114829255640552777707304920639080325493826881819273481090138808454640015739444903245730211444440573010745622307646468989268780024933136773848225626620643659268006363569014168761934294244369553123991175894574873849880417609466957062510009498373749325669975839490775936131784225506691183072288929253444240233167856864713623805715968920471597874870865250101476759420149058335946073634507464313670927916081410280288209137349540657629876974249807561342276186763837469962676824705675903410079234613410959226937619683149164078924321995275821503532597152973269632349777862957673694996955502951357005548722978647684533214444100113408485679404980945967807349914236893449458915849673465844843673798408420409203920136385546149970946653668915621720217788471042409109252517744324936267646886190863079106552683594655717275118223886491568089163466600776866345003216548012245582097235605342836170954895771960543252029429374015309274481571538639862447145778830219912483611257395612967190539807393334939508861174272340658139896380317745333079173038349119198330921249178572463488785170105869146497250202756324284428591731589807958072892779368632905228354970619338244220296303482390842548926995454334197449034833215149220699436791146552422522876208312703592438939368182619762860929250208299319506358453582135227920633514532984720491712538706304737515734998065050616967218272870040398990592340457031303402349553384170359343653076814394691928490530816457048929608848515886563321370477335097536090478927379772986076364929516586813429939095080912896174433080825509121631017679280034411321937106769255647806791933740833005691149650399442743486414625937293177726509340629522274663084971974110281899070878508712156902083218469904999246864691129701416494947608111017781900830012246937036823700210253980383924898785583519162667378036159018030138158101642992796393861200531147506441198963534715390519555176471362357096037111363109575827942209836633878021951559845739558629945169352014058849477142007041045168157875131740376885328040227500976285714437200397418110936280311209299487425971789141196471589498937083010455600292255112462890937698508914466326263613970134195218759877392524416740559948901818142646530499701675792081388661358935461484795072053595336273930950453918208276949315189409839502335764022515993614903697113014162916273522091044965901133007131891737190675441936981421112610864955909541254688429421949937451186597867869903865929970664734492788939737376232458169418192835912316389739590871875505586808559298602504346917176303137508312046088505377859648454444675032315192659851842713178618723256767025960521451465635586508923952398218740986484824002162582830382120136014659241747487564211759205169116925599705035177314867531251961296405855820419847349414753760649170060099827807317958253383032226907219239288629450100784384466043942209314853325207554586666107515467055882474545352963132509766283763695936713116804340618355045456649712071906276813491800006590203206605094885308812181493076603062643764490304098551847993575351340388868994304622443008118650029682354384726081810366268752230220363154045711462826715960438376764196528601550932930515938405330470107997027072721223091834904817890580433366577200391979034460019212505734899758091796882182497491032392334081921142288679567797912297591621969177253618635424940546896507852401226621943595815757322608397808094111817714492523334061586287896676622930972102954429612930768066847649460947241654523533852701693483077425965815683520569926091834694368335941212943961730542994831243921706863285201795674074851870895881265357671277634410768895200102015937674862253670147404763954054527247931906707259725041341173567020250686737266643024039545170924767943332966695105478853154086867588278066556332957854575169791941575642336691761223889676779622054676267678274783799623424234055143737866826171673632990309676360069247304044863218681428031886867661582861679110162137280859739350549040479615917179896881114516802495861056411053910859992054452643035659968506443294284236072602231342650609281410004040628314113779721598553696905951259289068156226346672071074904148727340567303115227551261267949878887733594823837704227650180050282880225857253368570532616393981260254204117225255416173374787088617081289633308356868443375003658417613158746817801377266696395742879798086337703642396388474623177700732752608731615817812458689230234658907250965260986334432344507313426480683753199576562083518454573668237782965661798729190495666855778361117184675443108611017843814066053628510755544285813644070945088112231606175851467392418456180263592141688301257085410091075247581200281888190166143567250737061537356191162186425354528011798806834710276658700392922763653699461330592880260309360452572265503900632530017155134360789110866261869427560112040997479441591122894917927414333129224104299282458264193994826358880326414508547584752201581200658746530663367665029056668185605889032721645632601328290790655207627599670712879712568781420112852441600694948139568304922455381105744768735335993255753369052532129041777382270249350982256860441952497066592117670027982851832115415632044990523632012140432327193698770596399338396296657876591480986490895083751734461856981321547784522044849986854684363660208998960646348894021700311640799761260821320080268635546830884149699927949444967134024876690301181733152272369909195763350257112820698304475457131853929203166266902521796558741758807121411651591276360570231792600603715399631217003474513240452833582798076129934623102503784852677355339201898902793765472645450009036725450534165377706818670454359766810770043136719506599940167367620879840682079990393775740897889155869806282975025826956812457767747595216859353876096932592679915668324239468959379114798438568279673282614282928543759850837938098172290612997703892490087184121204261127272875437279120600647009448681694649412804828656489157767045750162907966223381480234209246992461103941917373372083499085735816628094408962930857120013825536389871267591621742813105552898701797974993629700402218236060966772242684021845066082696318867238162538637595340119963660116877248799730090562939798621569906600368028905670567520831504073540560715958190883011095449415975991860884717677021505539815549435248947808039024460251949269786826774529719762130742582643190072271743627421867567689689592383270972449398978401084213547205295072352527792272861488477646151370223564750213199674048960088020321923177103493855957744818047369754912901799727988576493963532147005433905638667454743189006305181531301744850537161074279899344477346722121330526344384618223861218722371595074994987867162120334969479847792652202489969441278995195290657200929609155579633846632326162771675406594065150632661138652815412439785404825809627898364643708907155756424651073736433961297658447652001054735461517292073086274459182214986908443380093857151592012133890009834026655705547048189630737245072495102817985204594641780711528124622759722497553458640902550179649389270078903489912121302585062095771857107875500300712412615058469234519336469722222845340463673993449319970065505044420457528478280574572018873245042121073763644130457775994300295006039907572678015427935750771856578682169432263227162687785423931159471697179153563619848742330838363220039996805066970888092939310009813965988693319325418811134600261912240883969318936545822525914466127488330452136945955057452517571602743218792672783159299563155225331842119068098024311275449018826219524854951484484257037753280586726873384128440546421715575449240870584985332894475274408507013125428374882146272917663416483779766177763830703963165244415446353099651578708025194016408314420165553335693563431068898406356433687771293283370273746804685151209218523257407353161258375971919532137835710036148957150213644673581021708207496196789426816010009395216326360401671145892341764431408830297762013011743585498308429177075147104885901190000227475581042101665209605449337467020408274628321163395623687833838981388947070995795942485160887407064309737676024833052720915458851023244443486781946861713669147220574459509281828723929153101828949737564629777026039920107944427407322346959107252624928415117922029874016523244947009062826197086889696750192780257477711237788849287947109528050121037731626122068285612055159895951585478305251807081651594111079725036406643857357639862649181497753029028620210575770522196938988042043059924218095936540709826837128808910660614003977927614716222929300357797064540230651562287832419879651281547450140058314459952940533723407697890103329667567020811480790182685064838121794314476633399492365589460861895848606760545775577750274120849946385718386827200337853816428383865382138486957818705355727192104871498341042277606915253490390621583593046730954014035759429322044727284801435776481969405726350549042964845035975893818400324111490609443448056166073560012005675983486563182332089235689405523816602765537494435196045908158207328552603719574850158177610227680389654478890763960774111513075873559768595868932431342613042632819840584656120224165297430877327834545459862816898286190232212937089672692780894837031193688262400444131676087382264262573718779955071243479294853012754259051221102720057365283139610959128910577935919336538291667755095396673858577241679023752298922877785096794688903045684144398618572610373949509718110815934547936219500725179040102766779438621903776936085703681036012786966227944940061110667592654339996798529889245178259117983904107610545731591931153782072177322652605772580016138436754038636759008522307742485486106888729152150464402061248297728807235865447965472358857387829450846689954442494340545229633879754454160196510831355709731602186117278921213111393060080677823556651088520975347405649763693855505008071826996086468471161128933334593383062477748041830254759476928208432357328816578445801776746267719367128987224345913870361733371524291821407013404077809353419139488776707497407933031514956915686481396478239570865538772478278322517675707475954759219149388012313379464141676821031117288711352225221918805041959151826208992998878873746432493219328673227372749445161778753803662369184352477491556046785214990417025805553625254220768710711376937141882062862806041607065498550399454205804311544317176498190748176390657499388659971326315674572577998403043387723406888855337706283338416963550338290257290424019956725178872685444807097708454129509167693070372914241693160359143577630279959031168101969380927617278346334578150883696639908699602794953526771209143474725282238657276504325453080053081641221732805648557007060098866992733150931891544169611146809231102567601162247008063769072315193096525363905536017192739711632677136662687094026306508762063101204534066977496643052446790372254965602210121965619524650803652801156547022537158508919147650725931527097260059173345834945448909727692677508255097343307347862061461995454180405140266401882898084578199330629784690232302979523974455451960070152650011105375660492307335836292194518034454255536511488618055046412274015443084122926788264687677726181201905586424083353268116100180852209641260626138585390185145689219225986697086715144603793262386703201428500033515595666700763706125551676784372673169224865934894432843828858136011030905747405163597882292484388719450844932450062509685759945428848779748519481070850419331858038905259646723774059250559087208647495957506584002891314149113765267979758030657304459998989566892553804181238761806505932100719618871154032898302027273912992277949727086289156083765405312236553270752782600820894657874647499619051930561224842625697552702544873910596677517865806286145803215689026910577547549774413972079628576875991198246045497915351776455870801034797597953164259818009502949918581662313756735093974789822289420588005964228319701077292753927947553633872652871810567553372398993016242687850264801243363237528115028059910880045888409485964217603182827325716748977888892077559743042122121673187158358079042267387015834971530165893280383089148605896064123422723356976805861760119801318092093039568012222830718258650877688292510913314108290613636378614735666948254733941283215502056540480073845432927303315703534181076017607457687283396280942377973785011385392812398257370202740147072152613845709804116379960209846399627827993840556078086947736905308321986597249559512292155051513069679685741413896787799551095699257050245203434223575129865645173894502454689863254355452088794887074681865109961113130252804555410454944114264280876452686879134441540354290675779992420080399895891511754431371512038034071865180741692052891484983496357627609855563609538350585457168435773799181361799698776326579043814902036194667627784224173139687382493209337232827647784501928760729778063298868815932305706295036490400148871492819738721682885242124955641377224381194252705379312580248208804168504445360780394884381674233634271523125798581172024207208745584687494945475764330456144629962393294710099066439167848009304398718340978029425339292711638463888339773279886443775276357724701058095557154652810286492017100499176303160013430521583977132978009074624604161942100626981797044578691118115447927459533306682683329035694984733851336144887037135173300237768279826351956638907736876496218993204019405626586457758592266170382155975051965067066500354160453198511135532010877372574250542486186097985532830394611383604963404262273474447490448928527423394669093844946901408518265709566030615280782593236929390785260777455040120234921727394566541944530124607604212437646639871141458048030358432053735524977684814557751346894630749461775829514120499242255128580430072312172114475389484807462889878762915162757157220531323271888557914625130601152476501763493568743399800535276326818606122501977223436856768345316785188178078705085039766665609427268778966186811018058091496158070719090698928635826072755075388506273241673594833546664839485460159587369747361730382096933661987210867751251518256767119436212414139962790577031039934259271703201541879050480361454079128729044057459498925187631614553000233336534608692704677908436714088414644226229605423154912098610986399787293896889111142078381828436419890975998176249642964852275484060097994746468567685202104882070611530130973374653087479920877338434951993994911468575907038611789147917669686369738874918070133330348746244476335407587060282751196919226359947661298639723103936996207640185468847194847409291354088157471189664730903574247949286126247260018442379372714858351545951091459041720759898760088447430745332562106558986952164286628941368654723499086445786909051466791859638307017062981746292364153700700557555424734786480327621400698298016733544824042474539079446871180998132655042766365510964326212624053987135587120594597175519563844529479296323484129874625679696406326319292934860278060746180296265178238250685998792671288502002002950764033876333427481757122624821881720384597927772061883589493701866856596518734220057519360839079002186587276468592646312824937366946771882379778114205935759536015858759453131122558917501100293811838917200777450205468424450273131933786749846945093608701894838958285188817052992562652054947116617116062669991445545183942267387259262874880893622740422542357026016233665996461214483321737278375538209223385148612117674942118993920342074304035020906347637638082253464706295453500601165001879593237979359978696400742246145410696586164407609265404599035497940818524010066183707688824870613730171275969445065542614025683963164254389024637336994741304713588243924136535877744264511389051850364857408448422640417304080909772044256590313256394593483310069929098564560947789993318897766284418026082077700266802992321543052992455460772109166202009087365645923296370277103785548007432055251181606299062752285530098381893643402683526845907075449167212967737008439030085466862111527036432946794504926912057037299407930776943822506522976017437713411469353778624432625044077371910998616710024321836477049999095416349569276572738305969483707332914427827291219305825843834907562635884589014619014747462638812375876533701254910578763913873948387169631104469359593937190945300861243581896730016173160323352586242728691364853061819603799644538381843494602240889809710073254631560527252511303926940762695077399400707641025534534209956429424076857559374554746082706931858153218724462020681917928720320205669764714848511591140527056858971323581379620600375437024751214978999149104608365441111705236021332076290595839614812375702766522519400472123179182631406676038542158402076845712500851650957739400661271801031763110519566114269610749667835584251338087413598916645755529510588646504896391373378267801688282914149906348124176814746129477206714176195745726522478857282245972734781416743116443582950567419007013308914782994401679667397513231488720743120533437319048100437702489998091198296368071276177498487313201995300807588169604141444534140174677334684992488408701940988104769321541140709708074955017092145676873706780049148722753937044449420595897365369031180981692709385652095247617933059038143812299548564997025076872641760567950180362956128024354086980893012696481918399958315729256662251781779126911718977426247097227518589207205199831064209406117209177216116670803056695640096455605245526310154137853624437448858345062222829668773893408816963645953100794789980390050027435749683691208768238297549683493586025586721875723943807758882444373797266506278655567984097880379400414498046104883458259616146403832293743835115364720517882850396423733803052104689625608081049996406187201719137891447819153603178495296600544738207901558257289401187403126926554169333597087081970349837282408346149185637943680803072369607384334745953094868887726763037081131482341522647602583306682955701880314063956300396289165626953257569743841861617873660358996663646418635706432963913414588999884361031458537112747415894278487422198621850755561399152920536842871614863724782033557738545659266072208732481478999818510216556227985164285949768457628302888124934241332894604084912507281564577223022863177030402253827293496076032584720101086270548551419590652383583875709327031609899051961257235260459731416086044096056734692011060772267740338448540578124648619322697093616075322221765761510524920057242901595085946442331243253736601205066267337705111384565562982292440919945779531194218863519633731564300723226280090135373016779553140630900704858962557522768910258392066909736177578649610990921012051953488911975422240237970850546398424996230819786906764356337732839805420457913342150098232884537904241117307688408388187264158720172549204674900991749587336528704350131150700404909764749233226347184282456353992090432614966537693164174898767444853119841106491916623173586603559548538585003241745476087197911441770435032865425661122507861032878945257904400991754090431639880390695676647807025723102177164637275620306114365367425413143120947038853384130441742844750960513994951450895747118466598491196645410926786553515553152466242545240069340959852840432183048881452737245885863968986228462636824426733330246912419771448905310381811351851518526475034484414466811623510219571161137849215444646296775974965238783808183449574515684749129039769911916564679483901010197877028758267264515010696850471749960439909642634478434479451608996054892667419018385303424392924612856577714995944864068323922573938271949258227299636046309428177465666594797517671650169167070840183968340915011499496244463335643019498683781779953624190948557875516651247897024683319342064439891847151925196885600412937794963245502921703472715446327949181591761542807967075643350981863330747297056036624065241288506412890553997968324695994295951638568572570413880915465540906638407378160783488310654700927511053831067808280488015780469857750417143798423861571330045674048218501976498609353044960289988180478500916817504642589746583076010594392381066083795096851055200809150797317293004878380177469637834520116953516875601983608191580233327227120031917291271497628951769448861266695550515951208506792727050486827809463715690225838228872189680249649932856324472057427431422581626732601592487946464923980036102490627997545493440503795404015477175275275274090026925413804081345229828537031212795518048990401533545356825397151799574922822482056484978626926056963061260530512091823284371636785604308278121741610187629829091010269404714133718133809407489619753853060566702719824006945373228617456369380166657059633652505402220199615657693923110631060925582176018760920828926428713073898829956922375407453898411764959704545223289904138063118692394349072810112879191051509494935358112167950337659545063025517170073540200585619593096434514340202534587618728475468006783207329641930826456707882639234654007354469134748237666253414608209819502593405857438184969358319034064126021481709042631420558623245957416960302754075404729078616268967308950251186865653644199633605862151328236478587142898144320483280683823446164703798939190386290921468783483835717860890456428726487981460597291209167167698449781882230688895576820541829568196603909220510349705665055497163717612704955629850757742200173380515404193687334961269560655112079150117505711490387077553301637795590692162444042565170393293150352190459428852658670511859196431595795957398714014536618785773204549573942374423734844209236183633195119280558298262605719590498185572758194716670439988978072869568627454264163140095226693410815151302849564169327333212391283140189513710112379365442844007656140023558391946704634942485350545932859986532305283935979023785037868783486645489691901291706486136666801322768951968189624446534928140188232934784417501327500879689912205353332091282263977358349424645940729532720793043966312841999424479816605545301686962959398013018371288870807948073527490590217067852614866316646893014724811275963217923500324369435711209155705430863792840630047804695132025675937869004123701271831155534654199624194893983448725330195205667024036371039364909472785480730583813963693171220211378120937589112374095705444458286874393852324054067091475722289625035596173166281669765259376694889014907275531959423616714228879302772778670077830123340896679529935254608704942788497976022618134757359663773578933195745199265882565200357377689688073847730172605722138894738283334376414086585262305616381992655214204543858437767437483148466242402929613319219691042243686570407411981556454472802174796767125288042994746015151677392385276160680278628496510812877840991690255372787766000305669519696074292875708116844341138083749896838786630338580458878167952532433277714330723625316805535331919243029028667590133900803068173149229877056889958321161455955909426120483316136474334305296424798203225183724640807709434715663248098671756664142262624220950942247456358285391318455438262391431764044651001019236095762899835453182072542676768901986013654808518164622703406470659822081133850038443604472005818394177031931234517278708072769944554644110770392665684443526955608025954783658129099520168710110200330976784743093787158051306230805536111965112256451202320708463074189120469219564165839548432752543168893914312859937323352366640187141564792284331434145130124282732743535486475082765211072359740403524595161798644405588662178744646348079122926152486632092115205439119596784756184136821852579100652083587721399177826649427903495006241655556791546622768406568856266068786654263736165467717464920157444601810468236055922634773732093027730418174342909757637561485697971486518076862147999004116041972132092692814303440894960624082545251496114500843335744986930338856041580796296158808844867278598794395474587058350236524150830194769209602742235831701527780528124082714497004568856447050979553794389970627076477594292242434526964033842356920726535721614332746114835442696198723390437865649414420599443565655020638170236047226146528334111525937337360394137729404208310458531141556585569841237065022937021895960832143647510102866737397717652602199127817169140279528779029362549143148052023513351785197550603492304914800209583070151060919411418601312308028026829218350318053595254240553403000291933422216096614294914075640928470984741560497863096484117552306358354978967576656206490646120378112054346232951152572058286127481730410695936159032493581897101307723685621999883667624005840426257224820476985111639385778913192169242780415410590709236998756674245542074502715536502745968944593887702576282288204636297292560612259552762741253464205680199522627864767167739005724078819823351633850991633485072430482748515436089527236615397813926723379291651630714945852817713887808845469128867319723887553063549746212243575502849841781369031581123110346795746807352476043286595168614348333950664880978938193367411264158381753268645982222125044052261110252399058293463092452299171140745820113382846620715921172552633984780547897008678419862276264482815047778025618757452861184874717093715518758668582010719786280666598650457098449910917886569129324157606567774818826452435249635538751343860218259046841823623331663552825271508529368022948091811782154943260905264728523856224417458950299962385059743348471199190003057872084449935428659219866257712190825949476837379898001614215310119933020255304414487523458475389280353558402149152251144360303534373105425983885622787798339129722740451151779775209957237668752718132535331774530905654667078864875590059342409533526443292929344872915382345520383232157541747288721197998091497616382181336062406975381675010772349796785126930703277531261532606113483829563079280317290170298989386718561683348739549909716632936755472642811929410766950436658642006482604332858124731831685025739497594044145052868187264583249838973474810040073782903432261691282378226265268689905365359670631861953040015511965763836432987834479494737825828700553503511177975239210452803055080770756225444213354422441465196700935762888350331169791362290928007770644448306615062598544193571834588614676379153996886415890734309565511355260473196579747901775324405030259219182641265625820022322608960656832632262815223472887662662098901858745161645638570213078079806073347848608574563936873101155860636772043581320750316919753797076248248314786784307041756594789249595614938283591590319817817998504414590088273614983352953585041772342408676045645851006424874307342758296192048212312463281174039316393013404621976441931845784407575121749011573615305469854004166586440004740412135919614517910207470761481781739616717725348480761070300068368057034742645489115143125100583794112405653975853562934407648794316264580321820506060360306868625282563990998063246770767466397903342994292478582680411682482699013936115022130569210186726822541176418763733418916738337243085105732258098428604634090952090699906388675455565986193865892428927338070946239858876683056772493803780638900267297719976683569397674631292082462148494612792549361397107061789730953691070827704303243870980865785493684771756186302499366179892952826990971550087804930808323762702092790273342564562962233893068879809468661621664042858891815315820173564007368648982412427490494920249482369107158332670531392311161152524082346221080330082487708009205354906160234292717025937600837206226639101032561015723233795734137266590762435868744820644317970021853167905176407796246167058227812920397626026126149570908265724754835797007936791784858095497548354314124225252628954246453921018504373594578056953098436416300096466122397762206951920510359941111364729499309427056739462943517575311304695230872376353379970881760685295172597869986397612094121126196886051955145372404209200238210250272460739681535389422589526316976364683784085540702319929185975029614269925723665888252458319033406885031613774713131943704288422241528036905052372179645257700646963322291381133887358808095569580213033398546140199192840643502143835086449434258683076149629651295668618330653797445341586333479542917875128159717590166178362977686200672385930092750938758140481027533822435071481943540158780855240249723456246093680959120702335752215422116704417848646891042395371837110895283086442119639676257679086115640067739174160845438962610710895060100937192288526087560586982284561286590102261700773231474048197431506917432668906026823820882703287607500738821680360745241983134946894554651659920612433565514113915696054402414013297083036876442556942659128502203585355286842397035955694336944908078163395752411313835409510288867294677223656883863268451322224629740900589769965886972752337102365968418743899480431837673198849096056344987453061573693297438936171623282112258164467273879942899517384046715229616991578838280798153795087471457373762413689071857760378709641896024617907899231136046774680530451751115128197269464532229077199387870477129674003197517509538944471103184764153214507164544423721128537336324278100294426981707849411123371098331115203370260120608086141417898876356309534305635159641157918786768596902209329603617135844220033556445954798017492211348241647355028823055970602864340028026423208416056059310972162902850234493223086223300686772156881938754170329612369219471016492738558152205575054683384772270821105049767004332395217049340401655075572438107429160196835894983760943948561080597014506169289703751871973236105934748158518578870203887762605364624021127999035971818626502764098946514204731068222419719578625146255027140389329276885618597158809225003611958805169484125303578992392286457663946450486439530455402126808944044944762754104498424198389317103797914852921034207311390657808396968018908216758137538133625866969209637101644520017425503714685484132200957092454523462260101440198649929321876502349230494480803016860790675096502366386705475903278694746421574959772567860101277972392345882909566120437926354552671093618131031956666781435858364421314057527083809320946043827106107523087963554660655063949872597363158106922566507310817593481034041838578188651012257432812134008974698775573184140429728140578546447451701981914207386744039049580639010746348791813874788869224502726097186294785211613723265952722535941412349104736625285215040154720918965259918799651906760136101503066494121434304630449645112170676189516068319995736421221756725599618071994138284620012587006765431242449376324276760924708922594556823752161451007055109618420268028863598704907441641985314528681463111990419489052880708837356987174509363177115254366313147051571821348729981272726998599267350133622206447493087690748854633143686353838049178206954108660325925112978188386021586317399341929583323067206765467156698008945815442510871176217778289225207089966848006548011356528413744115340791442214641513981908029275624315319896490127433763949625021037837280686248152095593742570483251693855996743686982869077290815822399136805943006297497356941145102758047246333402456657766845113477913132894900906451930647770262110368439698395497055155148113386385190896830787817168674607397727914242303904280878332203281319364962517590097904860868258452300249630259872723195672281086306312986791495755107811120987478811738137001436122076452712890720805881198752761811258579786051458386027489777890441819620710144034198247243436419492630091548003693051199519381896496564517634487238016590695540740770758091504866307261563486776374324789990530943289318021303541734602008110989301563888328541600025957254016304389210283638098315673925638273351451955682652787030884000629744679029746566054943403638929150744607768127871716293312173006317649976241744585718491236682110360106161474157426216938247478098776384920135821408117269333133522583178557609374333937847036162214655347583452765755465261390452011655330098197213857426613649224988234397484301666167807128996571122189189969196161014765062600873673924730242113061514007121452076931207651279578561987772478013723770078267927492151489287683361285634281479560444406674943460690051991962025360009838088832550090132233903509394595642454332097010144446684397213224193099497097234874377584558140944546488789588999468925172735594649032625969934198062102406285103653864039198244120614682803234426295558975234386215526417639067128004743598386162147843752740669107711759770175583713741220763550067001807384212574007508169772208090413251816472958066252860733542267704833201113912741777742280687055168444303481196853869400514250844636383115011672942288611416582515985548179707350729611100388236873525258972554397492302535306663261129772371223938826453791215229855767776891138548412014768985198409555506564731425277440876468031605059003602564999823829235743702617516688512139142789168551448101630852036635790166954669344180858621041841388802021022425961588863516027911165492142582052397260286599775203618845160747913230594445395789291950359250251004729019199690379093645295973076108547010965090639239938712025523686401218671975929800292056588871852046961624197122043104491786579651708751165119437267309159640555112063628690113344655448049082006838619369837416123502289573026497374752554887343527038366037348135477424263029343739109749483768059423673446840571435613429090341731889518770720407018045747997252608641993520101885699786113185644754573235816809819830707705317533552577979304235634426426995398253282119255003684552613274404476872093253592628787749144177376787903674412336517813054640790904822086501382129844560091305071824246496813762282261460337392814581885580832276565307056530566961014477318771915336517105946793954736864102587068110345964583685996204118578755502511225617039938530386548440988842203145284713299202720920655404837407083614306658897088156279335492214945079038436627299159327374936164067132454135655845090841511781486271126693943926343220876163373925418549697307821305958357853916804808471167705295643266527334868195203475374910372521076371492206244458246474920447681104436474305551154291622912368385092428359178291395891270397497481835732277992489876833040365606982494438322983458845311058293981808840009884503748016310816925168562885347266358654242542972044768648876004594390950585341330407620172175537783292856872407742087645630899188089129550865218053139070366945948594911623115385607886606661976635907670087349267108309570232096516127537099373170052753932443838564947927944073555017893418289495935558683356890533032216033314767631569163038975602759255357910017894874090313632662660725611206913144718430964086496534620481054667247634055805549062682069141775570775885869613019442991489608177011130348545608125956263762982678203299125228149517380426070933696080649407182547140956989665069054119524690671117691499130626246491014234014243234334189772478165149544992309220599847685950164567198242607395706885083507384416087407769223113149249266911426031317484379125441874099179991904912504939073975090348513822360281222586830294796119911417903893176842841139248911833964277751103018467011935537643030145084698327555244642671401253456011701638019152014688574872453369134248727693755877691477049252567650975479309530551878710835115716092799878158038939289505863852430717171752512640205507985585587369320640930173091113983620333250555060626268942358052647190499898293922682506480069229413401762642577507345138899091645416182435480269591314846442251408834048609417364120036948630833635071209072880943987795101783058851779870356075364709529016136415242965884018568608711616499899932304281719029358250937198728894264432721969221271875773093204949092525855601714369487196657944642551826353791842098148558798195820926114042864502930858448843037033599760378930699090949677784038306311498967544996927175318411085141430331744455512498854513511024462758669730081297547805866122753221566095901249292636423287935634433882412136624866359236369853169267260494351972059462840853388155222785500982452305627741137848308334163955962352854495717807893635212114336085468072490272278979284675782644096310482894604003451555683797646285367447573372635574031307606756274895537543559452170887446473847487440180291701027832743812179254957200946056964612871326620906583158519638067245154828486770916787645963962217317538431865379873055700950580431313582062008688892904603371650477684012300415023744230394313627275966277882940166225253718138841871019728033503089310868850507346443980454417296697298651550810074669546871985617026205502878074844630209392401016555971184696169236032583982330387243103180493632018797297716967129608302631222360229340194887140074155315688208075771370066956651013023870782358439466247649339179356757920308595170233921203212155263376754112761017957524125543559116194177668992719891376417230753928604986987372952145419541425713229188890750512571962668330289991830815004155024898013905193520809054007605234671266559974734658315927427943263259312741296282263842339464603546962939597765021097096485558604947329259333538403535725440631219172611478107116645255105552683464072770566121743140402674686433173383184122148000409855880684717593949504482664367846659814022379100317377152029418103952001295889076944735157831993051143968940360358669092962263579138522504715493732303793605998253951819797204455904998613252137339904159242966290078263709575845186454973875610398070038150079198748554850471188223491461526200604664366739341680446679521096429805116141658454527154694335173882647498633801071446207104889315665100158676006674460358632485276307053092176449170779687897480302374373206021740261757979979891109501153261685423332829924573066508658025264051620234433889488786849848952882895492278382926613168991798402073861055995796697638125507903773479034073776150263977444823087514198116168367811393767132023974846756262464821098754378052060716584494651278761806673952848094089373179547000919088783960459499714354028024560261872222769702700265662838235984379181077736169217792653854246193083818334707036274248760786039947958566688559102156978635360690826073421529081804702607385884854970150102432737423165147031371657872082221069963145518364412920958746678315696058358874426923968128598857017413927386666751480591346386870876293338966886042765450020634346127821648126246475162735056600782598529559779778749283310682650264424851610661329385311387303273761424363892274021455169904945826934776095291898023669618674505951928972306973006044382650762659415621496315836262101544200138926512715537403939496339030694684769233574308493269373651335035948802334341734309642368031042689686122257767022811719668558844108221003704898446975789473790035447721553729658250520721629181310345909489074131734942046945663462643653098987284342907505272416865379787023250280605049793944283834557082016298719230090747211775898914291085889528788057667301133801937584571912459301243322125589262047193966593771300320907409392137713312454364939307699946535979737925911692804556366845446689734458680012226917754670440121099667821134653602967597901252032922036901630512267676575528719923342526317595432677417366786020844197019215426897196914075914542201083869110557212776950835900753498806065935253182282709765127265390206704275934361054300634164347532348702534510959278209886042577313147036997843614195748620996834966158906548680224841774908654845407309235352805912668201806152703113682763879009728866796373223201147429663743582030193450111935992386181221095583363983722594827745826061143136139398966080901376653185045744427538013649648387871854866605455705548000194577987634935803501342687724896523946478884245107556420028673119029626788897106262539063694623289908513546135460677535573761136792502625510090854783369274715758897139353905020213001778414557434782567821256870892651603944877792880052220291539466656545497043919556509679818774208179095279581393247869921482434161363525610129533012958963575819887173828570193134785553956695580844841507570380139960494396671523233376835212427998995392348703645564109673464787607181951873510041139812693046199733256523082244851765184462554685863333216795259385821756559707052768725797699401822826201974671101910561553456470007595798298581981132476494747573540388896019401578698878878888944216977501861702769118327921488315871347033054940674286708432403406160800948371318315263329495662537990709466640868041680071496560604481042617733591486578586982135985139207473994291419699453404084503787306269688237331433636510119145838305213971926268334223835130938691243546878186301335956498301292888255155512674568161901343323415677711547540213202234182615595713819977544435276721324367657002658200739509267543900938110844834831817203273007903758521365437260478803229746079770736291616731765737214839634397913091642948778376398340243842198051174723300130766356619005430132458262905923544611949985215274680718107735479558035947851462752053697416461870531989608851084426293915095743389224171706254650571990916450133817486799043841625563589492295058226961118212596710676389428368224125809069674627322271494733662340476277431099833108812345358842249031399573373576892152899374575753628191993826969972610796929790759074235705775492356098944931760767348512647903418725325507552534617237331276706770248209950512398137884830332263464760674619393743400625306256206467788145288766321710637387961630238522146644624029490158796963977490201077796573514258530063413178871696399339130840924509498347436241394457755100151484860927964261984592737598748828154745105482035376544839138776729581321102677653147781498275954876273390237260631858661931232202634038582989275118737172844431305898871853546821555490022312685952850538108206256602707652456737956442232591812411234367755814728407540613755607426303441599041827853486697214925741760206413149462731188649062936422000634479430025150182923880972477324136947798372294487528840200789054820212283173611329456700035375231504471863357477834391618473414998775541115844081880880441198878439786595983548559648431524922963335904537332914418997594233099749618551911737158161334858614984261814988318033051706055625381723852044593980624651560282759413623423455725545779197771397830281053273006110220723492611890255988114765125621791489774654199751972387850870631066938763560674438802149616486400951835343796117749795269537033794578639364283200896481240734330042347120259751095793095210868435828607304628884789017498018501377057803887047729009832867430973156651542353176479509059142202153544906466713708405005293140635975158769813363025678077434515588414704499670496793496167576278256380152875569260470943097661236245511269045655802292969546952971938626106824402860809681111838473111133736660753315156806659238153129579736950645682903572570301334810361831189518128158198897898146995034828358139768942006004813752754392059347599891328267898481319600740419420625520796339936957507111320300610625595891570645295716335159344676498690464744923383371154924170579385327472781653053035233843434559986187757101852552578462852588693723331607327076465907888880192368113379372488956636122200890410114103107502706026179372263098737660175279763283505760554416675533203064266344619488488830445592433270346350944700713529784023613873150348256086287956604578259102302217982301664263672737007750422066658326827544644157549860012786835579909380572211873316637292076045310936872356087518744261689150925382388783584021221089063180392098778342718754987222875725723659653795612354077375065395198659068569156479021922506642356436979250415996604067652930498142694164231750814665485171574649111419446212800125933924629775093907097216640818398843999188377579060714006239178262805112034159901407233605542100165462495744508351548582693303794121169192321465998809235654954829650308379351756605504478587630421337740449177864215988019902365779073411990429138419303946075809392541550079483611249261870027980986757844091255851537382883169901257094088698586195270585036751690342675715570130424685167141112356667775862047465863652024859883995049641370463084939360307916820425614876582809972116002858687173015276679184946955277153808542680115821519935787202495450421653451139451306668293620791178427110925512883031928883643698335629189887866687351196701658465290696076441348526445466483781739510545994838964095797859151099996767618598873790255362382565444275264363759409959830121822029509775608045021375548036235541115278607872727743726411141530522924867333909324751592721541480300190548918559445049540987989448727708683778488813072374429413340698641111858600492188943706909872906543816653396995409158502565237375805281413380846018805430155105240964430259777070516943097204963575001396853746221162691969992302857450865929529961318856052788652635107656210129294047661939593672087159883701480811442269682728983670968229971142780131903438367405467536564997749022481119696917346274275870322324713087428901775115968051065640756401174182786044497545551736158562726289716840390353779187864437328888680986211323939879853871321078676490125282099486586260228362021972476236473950006884267734943237682187189495655585387165340459964894747901247593304820844597506729090407016729139395604118919920854177935065519587617400469967449812350552098187544090418803894228567145528559457787372406463815728236910863169548793094725661348395970896950450688871429353079325537890350612995324126509108412700468946518653884575134778869256423590112752669834305931906762567261110822271544997531144135858188539716134316894474727619473638249515512893510415243941786002108909802495485504137585503673057794448819188992923268977389164669637083860055383081240251812708948182653241632402842089423271375580252704445518190674397278071907187975640214842017372874624765211350267602013515861180524219331787403878434377897320279732419977423107856370422735598744887395227221887505670120199033507455072939782456922928163114771202685623684062894822061335588637204094224162710538069699454923878280106321481538839867513002617565729424943907913481056315796099790069524037972120601358553665460420308745682306189140539272171270489989340206162506257834176064087501691798232912270399789144499333413126969125694448563465976319049334538426579852783038257613556645575550574135792931144267902426657890083052374370614212667762518239798677429727899454340256728253269807477991142122443289678096001918439954363147721342859108507376471596023441780759990710603205974650047568011262229500665982997197362837014079669278086767909537275731121545634866753050848529807087088764889056782590394949815846458090268584372255493000190899480998140671127437135042368763212030753593421661814520620458206232193294394930005060030410342582569158671640370363383248358032376267056979833045581309675127086070593927691265073556741850713460312966867740888936613936528331139067264871872765734330137831684068331786444544126705396034464208065907533460567125830996671185202056577973484868011292736675314764219153343220998234578464959535606187915709326397091854651710540152145648300059533947462083627099358481480781347518798534266163981325078381212223076922193087227144140565368232854960631455932802941600606515593603571617047847098952841886960686528375876109148203714323348496103707351884556472674163254838235251359913855598682848619866168427093644354838489912528718054415604605409679876458445496316968613131244435141358076030587046697797805161954887632605074780051646778857851217143877724396642595665506658032641078228859366676785152039958431007578509934814762755420438677214699500109527326468069699610478986000747029654185773656685520462398095975121634034944210008437030044142129216440578232287106202073016082392825120388262175845789976280390081757821370903826825050800118041451694440372199238876741403462203011314769322803032009382116854460958438230508853919332741056529278885261993413384074185656991583420958203403055789585658066383986095867739015904503177433519593262464090844347572847801222795935278901435082863255098760747904711540691381269861880106256020179397413806744214688640238988063941847663800868160961527593805645808874302039163846136622818341438070594633212590252094687988886417237584465475478583480256091079492110776353469680675033652970007237052697521605800428691482714947126618759158229991445967814803165401981234226554834368632954898033665679422093126828169686278923397919636465993134021646361733975493460583431589484731413273894489894586950403617049283427261016933729350521485928213432804370407242357043489463469287608742450140271009714532251120829443908400865949899205548783863435479434446497959182845504338373900549296990367200545971418275479796853320157849832150305298589355991313871465432050323633889733723225162160711576093420320049771789073919074654067821042649691592387810634840708309097116028014376739811815727601268068859140547792744754155047496108846249264988164335409920532166875483613365331309336262055740735134242641046898149884823242738430456564588594267781302404194442823181317703542730209003853886606643592769589133350582071823760034134543113833345999829627497850262852427883108537998706399833643261679566425923559047948367188174166473212462798109703355674854456979504764105021858820728985448308808103356769169574334010922052712255939674370216032097150806943555964713633223669288780613817408926328300940712680435786513235411121893836604127767502930894738059448458871703139601408197132600538782049949299157663923365276194545189708802004848687551238792854374689261550126796517951337950732373467294889088868054262620062232633596488198520928367122430002615256377872788286918690116938309173480710469530331690769423042882513899140290234370786874324761552332335290495530758540206241687090106765491664725205955809447564610155379092306329867237530455258265040328795457998504084215788501382100417115426289981545506817351569099501316212187828255189580818637242788288058259607169442708254431773516018294958781221636048217169413138278895186120597527055321858528885058361639805022565125342966972845523935451965758908285892953195073931696229503656321968493301330748421797551296925111358145080754729382531176114951311397055303671831759013150192111480397922196103086766851051721384083565234869978201434667221717071065985654342177664796671713311623740809131424705568610299682261251970864730419383653956894432261100195147603723814603031565046063798850901327212438735817406363283235290295136052916361916211228027235125419108408896359635157679778557424206314197774251753224361753963022683061261290506553620350375078847044646884555060174396207338632401768136285107491105331918466478625128377683436058872053134528016159415597972784337009702040307270665040967587527595710819058028393840540852635606167207205449835726871081159896752045922235565747490279887797974088753503336760008000691711773947442394200083326330818252350554925848394868112773578206378381595907871801939140933442722621759309609786836867354996808500415575770227881692375812137698583956626808407336443474756525025042243100879601289101691541844117229582543370294940782259778938899890274012150852264825668494090130828914679150027335057932294301798794064966882319991564943538166300621947796864054806978813377941580230556451192944164866585833923399922070831437881317962607214559100677481398436316035264622739951281379166736950217912328558960797742456046036656978151027232663564683018798126912662797143760335737937997405340964709714930076650359427419582455249208143769527208109889599665631860990769056939115297166457238956608418233881575686367764320880115651650945690065126813524067241876675539637072287532814651560874490163076512077221329077757503065976839723664655019878765457040980437578684795294583976940674702038912772421931522578460573670829630282692185224962361215136012567456234754873376814654414397088651687766270429281710582468643878085264753218637576893170255229538238138797163463492839505141949789957886697364715241030161831559433840745014979418966251424758150432518156775903186798456851462374045561900423894174830110069118613876017292794455156201918932670120133445710463034777118909071265477883949258962355569849449514781823950316456654205262524482308231078680487340351437780888845494941107974756592544669401011042165572207314413086836279623374010258758194257272304020034665814492098028325676572142334624120518717852813505145771725731025211725770803030091504534481797458244314622961568155642619331465625013731704097939759850723268699954322020760591237302235511913634450240297301406512296983915753875202371493728661614623791514345947350644226375622065845028046460334374996379961228382566392893003374673683303975685546253359519181220685251573395316347822883701787459310599480125544229640213417335979195856325342778236489806609704589755353294041099742832453649909031203383678721666454664043567091020331071246543632385147512745103137918986996239596235173076995857892908436806611747584597522371575912668875603010102175823138509663712553545455442409503920504983758261979455439245957138650328403792091403170916714774116926296571974083633029519045506700665977085836712949633231468960228824907097477804371279540388237760409008902190809632699743719011538632187805489160166125117980008557107688773416719414331532217423130975062229806542097028675048498279081922494370360676940186148356133145739426371556555571544981170172945991743301159351831825198384663911470666268677904927603640268709557001598617774101574107653119420237680311842502869944784863119758482167913278675997992081105150289570404748933942292160196068659687506182466807327159239671119475053680571969862325761143322930246531617724731595154922289268180482033929079466704188111544835560773437206815614863404715667662276942356506418203168831282801644196682734833164942827096108141558025458331839622109626055843198763691735082241028872925419994031354883178603702314878751210247477423873306527048299748954910434737854646983180822660314198525998363507516162958694531370062253641683572754888296188357473895468925839115460467337147402560091495157104673050341544015817584683004908888449031986168756075036965884856990764016467382830242986367111821477357563399568713487456297157093385201400994672546322061894291221507836226187433532160520878755131052418634428395209711324519170277757696859349615778034886572407413108839735504068444921683257865411379337943443196918145375054645863423834750173959338154026117113874279866645296036659429880357767703319667436666461968624065035586041914376007092296969252007444692085018150299980298156870937089027342792143630709799257981590801412091944299748699288333825861627217927205834513636422788752163490217187224881785581690483202963907856770010718282579364329906454365096265025365049775225201086684921225919016654611412864233445624129688232076599944516775522448880068991813462527754362684705615507388598841343270740920898289152854687226879028621505794097903000747669685419220694446643275084885687728609769408338375349149582907946886793343575680855380083685735877128634523113947577532347249272330778498003088490986564436008153228498542146039604292910456517526710274389763524133378108194129440047256872549298530381664402047410267150904541325292041517774985366261796724623459777543930383994999047498203114909764144502906911983615948451749993796858499051130712946316040481422905710691739865521488718522903273433629773777484600885952646962755315040624761334272524101975862862404290264924274686070205576889806064476220380741232184461404237810145992180193962014709302405165146738823941893686782223027341391268884543021740461144098886193163759921246219546372175018706593972377668327083366678610578428302112807371876043729556922564799937835048523393152980773470413415844831260976659835294201760954843628614036645293491719251237420260403008252593787167049418964975069632753623927805897768176366964587697693494361182222827266085629882684720245650938519642359232135679970646332439182785396360427226914381301779070616902469351419309630008632033209367856312544225393072097855997996444180097361502200068117923042935070466619626724778220527093891924225054216738018106543636744758862999922981771361262232127325337906202102023089500979727107884104094321712275928757769524598908194042707972223783297195553715494705401370849860979569172011945198648091784560708173016894428432710639024495218143058461531811257336788759967157139053624625657095844327763351598137526899951779981091384551841272696050628068314552577240223214925697562384994377375359662718603095994181202433014977993793229288226763337210203151364437061288448514818993088534797297421941916129487014146217837041859577520872222048448649958009254826229589860936972572141412965918278274603690877613991183677433669156669597883069956574412443390511196634698083459529170138826310321552565539797588161098375965635180714577272608696700604748690863990990768146838703011031687821409001860487721212087741760624811486461028672194024613544604156350041295243310450394869163766699219581056051590846913238962204837290860365513427422879352037961559653973542742123497961617897526982842441362880475342355597783242743168314861384360113686844384696866968166965516151159020446867164547354311936520763987259069324938958812848680083924200388520018506621983153015974421353320295368554917006324698836879066765555998242689788085934787457642339271677728869027407005948162853965663822613217477367882720269021404411894371350465451142571468086097105997885384457010921717634260757251912174504540027848553559743030779090969098390100541957321457413650752750097496163251558285834736345599342963062951557433131413869235389048543424298525496136964827424264622190414836686750367860308752348753039288846097890616804442967677965275487756716344286569196517047819746560490405774388117623435513805990290087701365166982745636846828465699017681434114768066751920886987941653889972340621080620346686501633765197973869921990107329311724461322367563554710218752326102110204768165338374030160293859833937038820957260369104127830033433461328206810826705858866535476296813202873405841433870073027734181910034602062664781663273225358988918281146660125570376036898982919199394603307878171370525063078647422665917466725284177250243973147327008438263115865334074009782386658310934406329602257135090498964535664017213084613078439601220934322535620303106926336572935932293031381484294350929473969486877665048328073517540367875245318431045639025585364726234778243048369025495902076349439575303466739147126401088264849597561902734511412267501120055501960010683504008063783645710595608312417292423900097352528772206383230651030684106399711062011735350777314858905918893355263042139920863894216051549559184776926414106638174296729796727826601827738393057620287514590777131485097674109006301030039104107944078622757223916384413668998538243768137167696249437957025550333744411566657706624608612996832696800715744087897210065378653763744493896086668495057705988052847996848661929211103387715535518384688503858194499749982338560378613794745879474789289010773392998232542884866276250387571410079965732448718802770918101807724873285848069596098589242544762724422988113265969901519172034932390254786427116823149652118243191224343343610297215922269142282538300560195470730694495874711826848920960045539356100684292378591516318846991786884127994946143978804064818883289901400658054927491288024455184138738753160524504783446505482185274862268310809448427221579594878155200837812855222355757128338241019415288824562134584584976233627622772760390046723091487450162676603496591975751431322885298948209587806742134113322713141521633055624743563177057558394904638667463544444399484990666167676778795104049071974803561065560465363250189128170258502172728080931782556116247125796808002382239768356655721243124329128755190787614287816337323369751793270739441701108683692981438248348413587609068184957195526218378289178973651165094814091716520449997956093108417675024749343637050612055016065360903701406825960416086552536339866070524041935453932075204608476230554779748303536334156046590194629160189125372294245114277753802009240508629101509181996813328928990389341467656845836555449187015237821383506692445788810844745425552253319099534743194050866238994832208632258590015107012208556213454525036199756828405237455422161597031626807973905989380356317626707022321526456352645026904534545970551643504676541656835869949902975392302330288552918415944794574099868347237283909833847800694338909106775177177102992343526671919595316253073663722931172837520325388313077868541653481505946542754805228188603310085499358723899593796242808059899600462872094636072984381276288064914115875728267947137438938753953117516908942124720878284489287908805384994190402267341611066981712970101810954816225683606166860438767002142349140737901297647077524483716725467099819493245965009751999599619870839523951893885140655049946330343465408100614993359189198196166774079897427482080824971484779679417933020519702090193338337839784480147672867611416067703069473196597365689292106189152885930404433114266993680558981747670808789123697179566805236848098794787679638223463219327412667531836569376355803345678233106310220986988601133303876805884066571009753259851607861414597773665950038167409178180908225730865317007669943937091506656370262479496416895391282014001911152273742029251459075030042922922603606166245756626310350330281930307997737622908331949143750530068136605019449175936449418842570587697560860818758207545394975824841236317661000955041948472624355408477497180601170486551516285452466957132916151990214245627520051209650001784420415156726378714420284040201762689559969036758401848764565335345331043287805802210809085125559589427059460194456686842238360075489846336592925641202022535854061192625096166540000835052943805655450939771764465362147847844713262378981681234501317665864315090545427326033547669904686713562221729550319707330957946516674183574584846049228897631031163967168822171888740921650781857357024880326307774808742349587592775296758918582517003830707151860153363199223014824096273395291515091818650461160584076732279241177939273418209092754142332963669758443256869079039089240728325101023297125489854587382019797846260826666072971340443091993542951937008968049489214023771164415876228562634920672276637489423671407690130967902108784714998120433645248621313757240169006519336590558826140488928544156941763820325743339040053469607448265748525955938335728571263250032614424525547550249165976840858339179290819577194327775966434381312552033372966334360599721377561955809875630819538774754417112949049116212781615950646529207418123021611640703021701593878783847609056496460628568018283123754735649032644492833146114636479164668620219041574303595558807056680641689791529751021221422341116746227216993732596987222953030061550944174727053273950197689740125528036627664453520867246615679662431967357920576973144854910706200880206327397636531424018529128758144671631405756433306612453448714985165262509543840024001622421288889184524152206539316463098669146643756976606516228060434916996386595041669214883451144058189679628267196990484293999660084450980130185146296223408209259304323056562943778566914287391123410003580942484572233238244609308619810848949743472793572638639764391605378866881125053878602478887120090867705621571435086560973219417617980328589119911710318932357545093587703728863911968169797110836673667088013224865662569249488244438764412335945414765009734340603393708673580326083166408596623905126175026974595531580602243816653135859373744201356527054136188747211779034295624958042106214110545939471840517719510493865397770595372809445059036757597685672152009657890938094966601428345785230254834425103260565863508787292926698282946223158434265396986178052858261851919798871084543643973446820935721252621562005861519069370818055892037525350231084313988216118561701783269237399137404438022971781066058092364252116278548988048043716994839484511569417322801757619341504644268716130286178029707195198058888868710878660453794722676093726348449903028928641330425057711042092358269817904458837074470593098293734082632019914417705597986431756978590052106852552955757928371422007007855077019331069912407301605992310602518662246169240627722089490005369102809936490380410080929380548193525554703717374239611023422968366673703691667630388990088922401475980158464577633895304566077633962081081832978978684881153610492523079958868184654104450990387258260926489105727750116865931048340238376510396643575883410053445768117903853298555176798937435178823323424163200042129298035337838643287809299249724537626677885939443022033681062581422441756815159792483813239112618563535337923901037665110057031237064085935655175922118712791798082367786595133914701348778130717656617265886015895561798457493331825659928048128457176254990228183904251509130386085589978661121729917697708930776755490507958781069262211122269026322053946921105997361573787642619112377791297159782552604062579147698416367984670520241163159169006518601517406623129596029270119830561035536775568888490417690875203149106194200051653151519795558527741661768838433454223005787461725256343486932658619425285473883227012171760761112189237211578921184134747439990999171227271825569137902808847132148572048646748732657197241888320141937409131259914495627249111406920140281644797993436726567674849237449082758752387929366475587601971294295850522207471803553874192757433235766599123389305044333998036371858834060008358710169661398414357378160222377900814415739534639015885867022691985857422344806315167934780044778752374168235861766255038498341382746474804337996673708548748052841148339914656837259782404527115572788824338991891359559944134412470622123399258607103703135281747043328579322720772935177666122016783191310436471265441471671802741864880091965543612323916779110037113716829941228028588219340586370679070570052746175392180467777557660871258858820678200025521083455581032192656013767399592546310213842202990316617863091577600816582133511620212489191627268634609846134264852243300762908092189036045492016572118725216545249815194109135819221430871054767346696307408938134572920421801085263851419162739931150467468667035398319331220469374990726014409521063770470029876879883332325649165540828005083248366382264755622823413274777853340038339875600700955694154474294805905348944306283554462064966261474652765127968877680633958348821433503628207414729860416118817262522140198740087946739864322109791472007127650801098693266790422211004173951872534039005373616848955401336382389534226139463532282723964107098739751647233608554394381541555975646693433603267100736835060097581588053081279382958341275365568645494469559949396185457868835465572394516044746410535787221280904166138064832853752827656864551389170259642517198999608033892387147298058157506633698777240364021310227419013679431168608728389639367359292709919436237652653354467903055356059095188530455277214181762638599218161461635997825340615249242282615211891995827799098139568491994247449270140845799109287267406687986395329418331490008135638078976506657468450372490213077159549396835680093738280857638309090737648979487328777529312437006522921920678306047884494085138641116446392252160324483312487993056918599815566842470575385013515529456333755671384218276353279669229170621112920913571285124926353894363631089037726787872638592251518071528517355932596340832507174458847845794649412915250330592829727905368604701572679496934084165552302458412778722191282943063332953186036433606198498462866748551952869496754211008091587241013020046035780445762337306173006087996264002178059031026114255118397164386828343967130367441047811735031002499947224832309891619811767113128256648370342697880167634968259922800015256118953616367718626165803523759591632752814040376392506473232824116828616981730520802962870034159736540158875440337272195200114798830978992256199962247960029181004742363604203035231955016450659011684395619243166789769662493787725257253577819626936776038761794098431133559533439447731512129856671242013535514951063157294967649101240217096423526417804520888688283068727320785764149923620178143152816571890513838544992454132424759810787047340621759082176362788103619879275030687389216039163943397398353205444536567385678553444003670059496512624907478944133321135415600716125557303475354154347213224886775712608489981824728491927520257075059476656529217707924065064601297657482811681391112265692672735564806362409974823091764130703338670205064088734940212477053384035627112920199230584340588982269641794120541806609809998196554825709046081088838701395825771604530231480439476556510841384367638847535703098745938216435213988097144468361394511816496226199314572088267642466614178555374696662325521390572349677754403602908015515644583610972067466660832105070258747767404739951427156846098341411066261875266117653940279419144110323246150065964621280402435879356748814720809518869307521169969039423299049799704853236288179313782573637290794663919059900499080964399772462030938169002064022101629338885300172357671540187951585497791557000324950341937957625373481752400396343794663010157015006936522887719546695277750139795498096943360700919323220841777901501108728993210808175187993887075211485978062113355099582142838374469035582379173999792979902239005413523569981097660774631305364957155780926973552253337095721527008159625422845169840968744293177932943286276040672008805073722796822057492396663037118760368095740870543878318647345147907450231432304109849600263650809068535823625829317554579595467524451390176351458196068783018996378681458351510945346104837157857820966889535727162744357603695473919022345289438330065869833490603313163148434325045343360039933739919642157047430514046913589900599849710538318561302194760571255972861926684488164989894998913364426659252404121653083592271807849966621144028528329484488736904320182133239180578817855235312713709369864881703320379704353594163100606254627469185753100866387233839934226318606381506235661957444003627878381412226670393664832366764563983254397294258677810734655539234984714332834564173942966891464035847300030159052466390086051244525671987289171282904405224009337020830893723244851801367910450584406408962023871712797836207052371297936063513454831463157938098542350219314679653449165233053267159055478131958724052742504116449461716277536203775214646157526899643715417341754896582636375748230955344230221841449901853190868629812141784624178764604477749453953157111240815769026684122281604318079453284271048522450120819395848455049845621953828379161856522424619815874167614080734113490314455628337439669070515065809491143728066074964735626826179810006292347911228385532771434635540114138099851681357533954784810235399372085564854803657066898522802430331941297400805554021445306712806055695994918511243080671061848590848812420569782789419674938756282293643575787936954648852727494483408789221556430940660941035053090638706923232982270550733336564471150651201827114110458178362065062036124088396815024110194119691797137939377819666581670955511834960264832087035056418166115687904469569612539808124905912263958324131532483564753953608840068153377041567979590019400849695491082520379794174637569689612240861787685712293415208054718838218851602854499363219107137985652716301722167119365574877344923474272126840752777502762626114416416866739571951619392700545083843993709434490242059028507842212831014265366646474665935986616637499119781219147036211008266652068421605105379465906777116953431569585513624955602463667692226784181544454452353612598504033063798023165161267636227388152800021405126725368503854010786576765362640110159121906800649683839681927796521065220375924595288045359614188508161087227631712177249855878440944393307154690940903470968096156532637667495643166332020204498477842044434503440634437660115738975344779933089055232121396575344129306412447639147302287280906897315428308962500292026370477605838890824188237082158084155118319429697560400377090936601591017006211836111759578014509461380617437546396722067843325628774233808575897148760989862713922008216052558894790692145543905729254405378841072662800168193152488330778817458933476792980486231329707693256428330924535159567544619024994244299288866908570058871797865048331059800604385502838642716247998373489764738573840420154711078677571525486791852454277954894611906073452691451978548311691093841264175378923408233100670819362604401148378271420085859039159197843680399694782093061603145220644985673740308476601999424483157065811650657041694443683600136694955949248024534106084799472550434982830675317425086715953419983307010579002363930416127588732703201084927053839694262193967288749324384513768872668140383596520409752980474576246238268811026989004805449892639679991012377998761105462964588345035466383116278715625653203974743965298943644827030505362444391740535420000859598758050217115712214776009864951235516044418297694051423416670240121966553333535797217498185480699176870602249381092961228910129418699789078228451296300073576979103880552742710933836953814779382089644311179547742738892207460018745532607675910505164421987188352592211438010660299274551906924749367793367346007281461387533466191795180352184207813715987623834508248478199906083688003095897355553877914302059636534077057165867555283617467961039808692378823887977343021783060986899419511585447826410302739240931478080906580549700892004214287967381670638656581460018898728248011359504258772425101065093465221660035649244277442601656411689962159431766006090736949336347062104615459372442007453951871098710339599383077297511463047340148864394737861859326722526863686760120752508113850232165899900398109060458073795310595553995776238991638441012494401442086761740928015888902879952991762781323620214170604059532308570616747340173738052679665504734174625791552343845111088003506192883478831446991144198275570780160872379754465768807309864976111178698264545947542098913191438407959282002234605668212564429197371372531071385581191400791752132771990852479388758307975702954559288192647377589667098831543972992931196165353118004372492133058399241149214085926527316768611486139731481461443753650785995540939989994555915253958209244274660992482471818410940550872872700303062819096134472126134854444092753847621275063840286572441532371630362987468888680645098992804791691625848674568174644728466915037171954018555496698999671411259681474163195454070267112244238459323876998407160163473365335027039354240086388939482378243490360957572815396824336789090762356061698754145517924727227020752180465695291495609120059300953044808863728242672587433540486043211771065499898658098793373199933183066259365197970708899814609771434734832476261464858570884288690059460665201832716645980534830334936909647613275955207918919718517048098298676091968588783424021878787353895996928350933587279457835367748019782336681062689861362811209700696505224792753701124934771067963765262559427625893092713200090192179999949711440684348049842182816505467458264371614085152630260988734035505744709716032494014467422146515755458851250469601121527096881426977622674438827110451511811096445021896276324807945069547247565137987901577588513859164474910557365422624427905439667150394432932119473987416756302913547400290367961462645832223292065878653803041397304276717432851579396634447845566063155214005349060932053178201326397443282050764592083786715712320761994336516033205142068340070389442351247690751618369611701139561928904452505160863193606289095799015002791025041693111250301839434347032790765886249536551279104700434100963589056690365178680067225708524179782595102994480393937417763609287219999477803832478515843559768552984520193646473438590659719617839431932043000319576059221487289375151478408628402142288377373160853049749863988232627409227850093456635140046726877120605023637235869456441314150935079060475007991746649151712885349756915642140942813728839130860502472241116043469453433582469245642439677157885319562209968885572458338978242972672601396153624395424096825468090534021856285086025695631715775271045703717565183375531854953899620025646288699306219248924028520820899032151988505647331354112582885676625977231271506917063609902490305831147380085729829666113261947434538106343341228155606322493865620278019181264719037193181669960616767007725848670721293988451932611360580557449432166864063369419674894312974255230414677469767055122359934456094583310220229068454167395463639561702568435637544736625475637631413280113722708091979232747436436032362004432241125794252504412951158842289263558249453297720322707319485468911273086550512951437046077042531701477291518451929848355866899344745254570047614106996607315614339396483509670095566249003928922835925320828388101679169749883432831894216324603164980088120237284339493051179380714393851760674831031740585094049543032646356125782136786436659294389504059829474141695508446956840064592943986977159723054110803407003819983806995462119279815519015110278303289554834327139429995368258045656383979904424378420853377223782971673059136505573734035405978946487204880577843000153579248750670237200724351078135294148303775429941715888377500165130241008107502192176210854646238799121889155250054139094367504876581569918295812479950584937955426920268653430938976562772110693312161617662305106049349092560256060352295257628562306619947598789045384419840759736856284757136366513195344416045681707000127892175148313413393533716254915313126992570588305298013079713018223878731412515493967171323838824491084243471796420903472343654170890311763349378606183151663334748710695732075232626984431171658112333938108207797401191136341665480846179924856586204382588873773326814741165118985045209762182167166037035534162669215191752119972802026788143882015794627413715903756483619916224208908529016926041110296158334216811153705805474554258147923988539022010773425143828730118956531778208413222717136689188932563279316155621032909239192380337275806337278221514710617105677497454012911723591660926355386558092077443097014974088883960957245283183387236890717311966820899593530469532971733001364913348361249637591965543885033910040085353392468900211404794957052305976367833157021806865239233102480652532147371548526077597438215140883042709191293899972796155458749491923244990358602317210247771711146711152441240230332202295056897688078256589868348481703245990687106694966895116958204583112866527448379217754556445741341563881744807657623522231677341781288592238051035801448373560546062139961282439983929486518120148817492235416801272540002510356561463543504366848409805951314875555175582871171300084126870586366791973928859873841794409827407848741394993910774113652901565083031348708757351538871868935291467728444609048636879692190859863963769932304786405798555397599250754280770405354607739745158677169516614248832029414022533824639286214091254770211694009464880156028602687871960474313652264099112465011400736058847450170392136867991323603375498982354160268904162113803227690421346185700153100471157519820274488567271851537391882514020882959424642997184040721645138254320614314396379253075190448580688266624046857943932808220489082178942882401786404205504050660903963295295314118764576971347346544974130800213943145876243796838678236566449804870395963561303458400502970099371881133317478613690462094269580392168151945806936293715489036785227703794633336087225213660597996433789297748732751841729520798388134365370654860549351196943062346343165582940920100161779279664191059677676854236074818119637767156788654499730621241283828018512896315797225530651950649416747976484946733976535206876301178453038001135139318979649970547488743967277055112308206408117689711009095184962273946489135407213229622491051057939825002816674572279883258431414704087651085211137899782742680754319805027819225462672833894569762957230681900870302184918627757586283482451768699148021724927506686014567019343521574781652806570025364618981534864279428666136276433699447061470782523469958215020333753472858670500619587183258939409091892581968468202305269878359374101199529467174950062082201680499299569988284368240534905001079109581631073917372385611704385810413254300907732435836495654148100460946509138016148336637625230567584956524983386733933850014316783389601872172143031849886340689227586398848987489101663689143544530975896872994224385461042518239080817692924811787745010133213748376893482235346117071430719320346286357003408607190678283965202243468223816983267858598126830949664847526620222598319842308511070438891560318938899856046030830239751438509210849382685117191363764795692306930709862916247326429528799180574451502880992718711956565055169360933884419323784175398064826199789160356028288583292403123846371157695725490219547668984521317203427982649945446107230636389458997848921821220548878580565170860667973708117148139680850460445702440983879654219307473215920237185668507330170632028738769695446589665364611354580393287193722736542567200097406566387331177367419902631480040826420973403932150375102746391594608018152089127272661327925572495200494672970573630789944659211790032141479409303352202491495624514556124361067588484702816267849979911883129358567573976525122653205148034860397871315662945053059939747964548079017480665741873486097868003046792268405888684341076325570951960090172387367389533600272322390179948790936608826953469549987665675519417510943887174409614604225624229138930099869834298131887282535487144961549581191031422729063124255390202369144287345902291160184664508724881289066295668702635818802908769627473880159204931269508750986736622094841356508988697759842886698645263939179407203688387960690225491160836277953557362345849575632021005923335800131134646921139999534984305421504634908748606515689617680598644730091564989575515790777402962328470231809221208539147067383291572929415547074567846361917796928931318467513606042637212804935736289293479491409494667435209814655836831537116146037438449008628043098462876264214588553533249292654210151377636462735317489391355691951921434596355244563035762264877755016167762411425071006198600569657904572016200974097383715527163679844385111832052843603581940685749772112812388924005448352685616808643071861286946979254749172100798003610640333613895047053379894995392220093248917828535742112550544898817525993852364738759106853505258703950834328825157116938205470541398839098792801306614063851675901468489437972967185240200689325486361352339256675452086271462397787166179181081984726816756940965101672474794354714684312409614636066409358514376046939117075669128133296693808713796788786403711677491523670634208308195467578043148937037860807577394890754145161710849619621161381475917988234513428540418665968794516298417574137925349986107845322885990162563538959506438393436662465369787924376195290588320389484088200179215436870562392198483653317410912889007826188687978157217537441393115986595463401711480752912328874042675100468948983206749833342849801322310502965596133626879554305049263352555033989669082800291278179425987965214214447795390667650587518982401181054903586328303601830762089184595666546726546433236883533000568492348952276912255496154997077048927770276074591141943138972207040002888755637296164436649778514757248581985136304817798803089305405138429150711284678322707767685733884282055019199000493886281590162707286654702880279374953118962063729012104303240538391393264059307534241357215357255377418486388163023916203041062926200424650612415296088924630804065604777524639088742455041621289240263704300957083895303404871303037733543681337190196826543366276995570578909556150382186210755424371302890862368936751448694989479827932947456362119550517066401715657658652470490799133654215498073833005320378376156351004325724256699154503649161077637816118525357863459646228536327802140934511171690096392977355949702192104307260775844567971351368560132536953749898739263777639581918359028901015390134649716278460226853074282511678681217613919298877886924723840111916352769010817998689066209449839928876363030448328640739203116517401403604236728664826460318181899553025224276136552556487916104038181328651072303319643354021605664784616270945699303597584099451411205237247501620483910808330322202787903156732747847711143003729577924088207262532871763873388749282655448842443047616884181975359742813961085356504803068980573223908094495306217589198352103142860701828917020051833289791364032762907368770260162300354284867975675938767485976546423148764451082582698548030875127625191844213683283079378574022747923782943605939527158001801083208989197000327375719280738289160441781090246576176719829908090958839735158078422227358348085086917549696674752016284963946187151069354231960012844850631500709967707243140666868669854361997281522378761689465320170149525599308544974513173267225613371748888665630694745736037937984385457829118249382157598494365499874877598972227395678699257068472777668718239874003922740082997387575645846212644196489921353343396902771067474149707345560820881556019232405380912476355471860537981811065745108175681546595360385747550732631058941577130258710098345361649009012386493089804614461654237317405117386499140081834127947895693410789240700225072947524926935175046501558453508269638125506961935918732568578685221631806444764775550798638962184815512089190653711212346911484222587143217182359685649236639228438601241944845473897052440760605711691878436334411269083267676472688423883320941042986320837855919880007052382704484406789733544257901500566780285824503456464315769014896723776992451216701088290137607188586026062490460846468808461395372247828884783596236115752309787067607388939211516713074061938774831193900774177008182472602158090311889582364866944143686892142589260800770753380759677543330469166978098280690470844485253866549615815114912254865070167435271975291321351891553629508319423973082570962594455076757941915561420187632158523163818090081784257635406540431295798854680997923460527789109455442301231189991380650714164244935718365712398131297166041084903784939117165626938737313182857944993056206517087809153246415306677927510423639016623390386996288159290855178202287426870198698915455954646500610269935037037492677433585184762065861429497659379757172167760223961202860964835728431008082021324086171201724065973447863148262337800204245480289495773983884658154344416440796979092301646860927697675357358111445868597403392786534737455279463384066606044533774673943211130127357511054473215287562928135417873343344554750480426648914901198090101960958904054498507284107827790708604858508430529110274559443982934864313010627145254866063365335680431072784920389351281472708641845192288462319005187517416093832261499607404888320269097196369882688676772129151974423983524237433207317257578440678125836596279302205670011711789565746118577396447562451409522323898519444031633035415754980566192483185499077532574739698355872377032967161485962330958693212506884374410505809018891936388169927149040861119017751092830538329265153854449340968794057381481015757398808349501550966961932723945029924557883705010525256191518184754241062620169942031895989867097147942274519511604773910919921163104950472932539632495945533660596658844907617891861526246147679212714286354480716966028127606738999845250522373368037883050380985612019301462075659749485789180916007829681824875751430281432330139556356663876423875765349141009501649170734337147769417177188519089479470248314683366798677408386305445873179607205424083182021097757736785320889739441680400176563175592757881672578364308153822102289072547318835214832343788179954755731032783601206808438940038266622571111874565895214914291296618108552202988685387135789262945561310547007923652325054501837055240425744194770876530818388654730458439373963403946329505214941162677872483766091917643992000224896967211589600233968987570501697615710229160409726209097199475955816289443080343185279056434090386052239689628093167798880118122454804892041842393722771006039238356796224747508822648783447605710486947300905127932112445774761580376587696916663970942326720977186216357598945448784527012197368914727050804468661454965480287279554189149724468268281804737419091149209154162581612259690082725541035029398910165674858812769419171212944940694505107339354523442365114430997840351659123657657421880524492083556640171450703428216717925897676151436465538770062455387980619254142795536355785077092632206990023228694288490461277496393785374309905258657259292464969809420584250954615290480341678894481155399038149169558715538215863234828969279701260966525058671721901392425633898486263545681893079725532415049919028033618275520463257182006171402318867772486991483193954973325819630498992300410596224632318726327189181657766910674875928582994229085766046473208644282304569279778771985158315460049921554161392310075746640607598274892267908670555407866151664380463781240780089762400901076612214153062599900670199789144730128913148258282464348913845905914100227489751487815258376009186591221873312569006857592294558531915282770917388386344866791373226657177298353165045727727157679826894114504826358785905129080194064494566446032849689676839365122415949927832744989217178780273558093460711388251415753496798498242361859982648587397417717064339077270670463898074940943623688819925955176345409001456719127034174474904963421441578969286917032719472601472530367218410677861789216368886631066556856008072634904333406319613403222498839099081459147140357610794653417080565484938603265116500611001738316656359868601468259313544094899478147273615931184677549861902036998155295188166812152277910214397404895131935371556174320432975439668703417166368875804075619948836453047770697707172325020016367542278524193325860097904568599958584303714906891370953736275539540220558189998675109895223700253658121961842841676697967716030910506422437421745965925374554249596649105231046567674437734117289830137097548575008896780330036035199079916295200069017519627786043799931345037137509716663629805740893788441999146808345220972135448580908182486958886427309025336419313874832894926061956075969285845890233616444649646142842867508078475095086425552607301126792587324056062146016164181443064241246342243265469342027608605001060512124888016499423757331072740167575453030597283673900439961371047666436344641311373631264262843770501662388092140468232308859298695224781334539772269984031508604792918740402479643350766030610645002666373528368256682728735273473744982608048318844796765425091212061226763740087570700770754475683367379993316650454477254885831397098914835482219380041907255999734252830627251466052670915900257865472469319680984317602322024384317163702724564604266545564831740043116415658479675428289041909254613945309004452808467060105068547094494859228865388542015347811581397359019921276167550126331734661124933735902477758792153736808833127682717661312411519026718349476943705392662047886619536610076922219179460953096817325684017511251165123945303141634576154970443135823635802224474877593720758655007309234975809543661282366390343289551604153272934496736876930726467448117709279498545492140137496326389247603694220250413902386683295107089119578214304290961213473505740181390223535920376576773370870349721004318281788443520782043896426888886494687171728788603745679111603533670833313250273011346438578520278070648603993596265523594104581988857166081390134035304791011862705090921382429481594800350871706866316852858339427545265602014564379985075143362780362451963302589743266121383064987639687132309549850593589128432352917925814117482508599480232171317519947733939325633789979208123088198245921853473443049991630175848522249524769267876352905591167298862794562745381525139615427048570019490272978577698800917279093576666837832120080040139445619984773399307153878825527292922544816288424454218434528811888639414663040939129178462127631559964242818013396449446762995804888340431708795585943794030282749201552040155545324901332785680953529826945611037424693847643310494772248098808428156836713505645166808007761243018598156756972291740405540493388735995588078817872239841233967779709942868009312207999835045167984167782207423277606700453511641582428046085295999068591300468597915087316125495128025017782599284141433006078627607752008889849680196387287655413412431698138734212906406274654795097752283833047781306265135662300993848975570160173465839701051790023390832450638185007845312952559716977872817947381390905263015174486416145842304086972895590809553917850635267427820980486267407235853911608591172256590009243742934167960672162380250866113176862885895683007034104539330787535584724172809259531910935722503189981706357742577761733344150722150128070328613008322212576110653319914786771433389757232400569929700691763458358506152982993696327964508041514649416587657873935184712917520771565991224655505842859096420026786332184635877905502060799789512679682744024457976412783829565131395869255682183689366316487134588103909867807458645667396787650002970258319977790222349506613149082786800097184872180419369680096448467389953951542184589350197151929357575046714773953168134342753864223826839941610290415082951548371685615022193279037450620697914552111429261211897974549235139433353200509759291371667182567155303480909149299245304758287819770292667414525231819102161004168438931170068102557916867493793885212033769203944567750298564986860884143463107581545351384460819698982641800148501943753019739933678458256455549931787472713829349208131836189082406871629956637652661215579878823064628782631150801127257213726337853935114788358536769463546527986486277571448780505001178379568451959534446043382325053876121160836880077305012250961522665531547883843972837125891877002494062928688768435613935348311594497933887475610124569778606195837979289896698437760136248029663478286127251679577155536697352054769076916939288762084108583957652486286326856928986719863769698042793728111490985105217253487698617623191248470768646417423355929946034096258401887579389051012083570634760114817984249773929769624239384172309614863222180312582579098103159880860983028158342672970623574055743776864731324356544862463264124134482958048535671391856164671568755850472678058547550018778051197069161400085259616016263541982020909278613663884677645523227308175936453245200301055280500568879521482334192111979441666829665514592097509964405880534683890311788015974505645280974179904217450347018674395505489794761635717455853883480401499405309114775205230387708939513921903985135763716479337525642523778635579394500445397187900638805604107939981759673461702030638634220395730168271041620287601971470026517199620420170443590979484109331937577626047248209996124516982355453768422842247499620373766164703377805254609692186995715275204919528495649797930152676911818975146133761628110948380851434353120164203047921774170555100192102792629134859827689161722665159637224552800091023686188752664736025360358675090798530418927236423412405337343683160343289797092157010101706351194698907197418430171242138489950694697531046505227560892413857992736599972961204952850667731192533347120775976276770219880247720049569974451114435881156395662720760082693225196380932137139120509924937566061746386469509898928717359230562077470229297763023258503691624309839821815624440442704548910990655173728739030345592411421891933472744085962260960558202176736671538093446405236903699477875636880004089745327424380600083647799869786149753019065256812662913351379013616478248116375294377684781260215551658199494561221465336702196579447879987810871352052428495288870339965722514476360582235452304204617175512735646665184657505432634188029608362672275642577306783003960253968761824451848123303408796864457086592474472320966930175151400339824215919397511725411171556284860406152343068007355227224290021426574568324483973415582314177089307541943786063908147779184718732035759233546987997219778095716102983950702269957213206176502445849752043124103726870828035222872680888885233418888417155637474900140989287035239233103734517560951602245768160857786506004357893060731711244156141962169982294585196999752292790102473145861559969997613923422391649340401090578308316300338297798834309000967563021202925734699248274114975508532225871071356078988579950013361317866117927902474274227007276383542324467944181632371242142042527818925987354192712585522083357349020239678659721406648742388658215553118113009729987693354385507214345763337534570978078481158976481401386673683920038006138396304997896054074650846873372970384311529424981583420903680196530352310481455001479156421026027049005252851916529980244841083403907141341797454421151837544212434996534869324541548065059012575553552844625291168877927359991916525145538719436035439335966194761961654049615106679333435811795491798500371305348929543262216541125266808914275943126816067275694303528876873605633715030554399038922164688633179603798443595915455722194862185295414370566749467383074018434767118972355838995139835710919855099514134281927392769830323277827004270865974639747896430736735665120460052740363618829479697413251833001466032645771403779993790824474064268966234803736003612255794300104513307961011817088550412843923770523026123216048938200791167541421062872568078580288640067297631033812348783553463303645539754714654557817299790871963387087360687056949873578562764926074676482785683693032111726228811497301914271197814346471743522295799274591018558829616344191145624987338347760379809987748932975726727563030540994289243679200087972156780543171272166863432421355705034968664400869654739944805829940646902834935908498162934596606226755151057081781897352781349805614821802175931576949245385069999350095437471485733769673643842616329733336312846481104850312859681285915704513789100236042404079020180686562705940218698209449311808530351317435338754313390093285133194181706387431982524130797468207869321957783367807902401673710162588017790449324260394153910147380743103141595753092597426200860404296891069108274156577629601961206275191259514836500372876287367306191684884108174686740262982600241962805519198511588589524059318450626454369648637403028651561464686105088360403316733584960089153435116547754088091090247475718720454998469417200034861048868711614844642701922797285172580088462542787877582157726579003721368256430026171946446393494211402876754965709686522683530880060039084166439262704116602362659204734171334038698014674392930760004634966376360658904266063709844332019754118361905493421316083374606617994687023474976626143461832958778442634541286168082574451224862901681947575300398917063068089582165396963948798209270557582539583204586204468529335462498378890318309584026789021153329381421893852392942582363387012292491344695211710834134693137736284712209389943890895331946909956024554103484620225884172684662717389835432082727691519796365459939006941176550492205219474706199256691119035306171448156843843759682105824619044981238609498248756705481908651695746271600562155660768144986763469236891737087418476197332226008908011645459915074058628241277830224945016589491817531562752385533852602888943099363581638868372898178019532898557624009879052754409009230118283877665636875381482681870149385395572641615067567325046955953479981097717821837960187712758383882949900321600272194828226806373896249020948685836712272863338528577186273161918208002566243450183108142486317177409203975176370746735917939759494929420157843995702387053648177814099516366594075748054941491572335532395532389995224178156937395760013648370355039542445317855912713758797212382020519899197359912504379700152495794504634428874068290680516282875158809385624720410807468601802672655061898965376341830433847029305421986302284077918139314968681236542338182344206358028502879039422339368806846583900616095168754226898774502938158766682603359440860046823016320727932450195653607946342714319430133795546717336042378764278090882087500025995817467352786967472306757077968892627921993060835591920726021857356988925330107612534996555714596595137308193094412743903491020142167795780113310106335220068014400190634690067784454284350509020570748937666603588648119749829088360300047362869937516700115970082490392438198792754396033108552450449077740690122274866709497753526362585191687178289015081833647766176612573604000898013351114474017118962284071249376912881389633592307818997332012631647708741536895043246796845611853832525169571842728339628652142798218633841002738455806504721529119144962310073390259769646460746780179402775826185931418929023280654652803013287190852267028548978595803388427465142902802455033035078023736026175407147656241348048955803803554553485390044261553410375110860349529890016727035505880334421120474060250737077783194876175664404693468551832152684098550614658053430903756741887693207782227112836735129262395425044384636681409893118693882905890967763273303616496813415478352670357038840956179001226791040985609077445958410412778177519413807587966444446355338614226089740083996976009558997857258269633437834464586732783127208022070825381463070320828637349053790502475469723890633620169301859833252717007962685355732750113654219348785408012796294149284349317343644922479955131684517383173983904705637830896564127199480887722706438115406308413447963416210077781176385952564543319484719989760095522607324570542988338099211732895290838674804797290888313108292794693903546368797427814652667279386153101487687762349177481680089399751892557694368061088939943045652687557392101777822318547598798615907843300406829377393372419453556268376250658501088358778577586211215098215948055112410509235952471950288134358794144853865762432551677009811663805362777748609887288691286717052410147117193944100150413096106243229322190185830072189315035938542044956855799217225610811847561670308885624206625348517870213516115762179126206372761156195849683044935084066918318232333137402208322939843847692963692088163176120142131624099145667675265778833162007366790975876985091812085379285131719452687841661179096593443880239421247052106208686184835572447450364154246096742248838145797206227539509024367696133215395689133558667432455682887353581805052043152814703070953781798725797841426612165665758524039435781476101996268896690826579744259916666811083277122610333825269163161908384562334253016437699916455881925045378541564143162946978075096893164433417096554279228106490643599841466215096012863420516791691249465822679631510226588624484717102703681415165772031290076442193650446174317074627443408750900725175694298878387679924772141142480806977413945482137740491381202790081398574084268673108701949705801038793825251245434170631324663031388155087621741099149965017334526738008707252865003074574784971508686832418582290038845814321138683350389462680870065772634450956311725121858295594134448059183288640845904931362780881790069823252248989862873285643918753308240509334780106999346156337362273543287114229749825070822632505151866884245489105853093275278871215045908512545936785620329894569920697623240120447610287962901298831367961193667556460005046343204605093924824898000997010922410033224739747124324680233275185170946766723275322166594289876547859668972716853431256407781212709458016692394514074920886724749658995408220870049137367977777123862654482376986878284990012713675975178436196933135983647984043781527416050243025717805104327152712481575044743819049989547791926017435830434371692088885048882198352948723064413149365941245254211442806701332910789821153677567077363325664858498953734558560373510318094380417783126561334477195367345864683076761961921966020770961448446458432508886621469708279320694479603367954866609543929327312556714949868328270239740800508543644053825861816198159437021570048995402358497823666815719671879285079741091069922591196295782655091349608511093049364226685975803189803622865195483212872349693671599672591728837396685579461943771377379683591965513940194310055631079889026196496280327058650988404514492803856265177146324718499737313000399108916800478509697366518934719013956355015675769180340801472375403092745120836219872477158916986592365678889389103362362351372516799764109167272550844295741850904747315863229750197286355585593516768575665625308488569411974022218547764748257913679610210842799841491397177589276534553960616510432073271825504404949147412610675234176174823125505731573324366936776168379749244352067455917237924715533094552472825927063481210615522956464744567759716739261170397949399052147180954770919369165980684399900326334098376259703613915218688302889185481770890159088377907510528434294478215704075756792755299216270816631116531500233319502628114426062265681024373202736448081437128888309800860665928827897915878896346503959687519330864400445952956689797155798904011969015349270704437587224324395169715084957142598540236743215086578541038059484542022556589555529530838272628317919696949706249343732438091880389353477251355654695310613255819360205501377002510648135795609327796331476782834837215342842111178250227555059790266075575200521327057238582036615461626526593117981124307257369952914182841153673891527589849486334239810959642604030414394222944219307178655938981225084559271816772758224224704473853621208978852625188498413311200418096510740477092924933795344236034256351079336703204819801667646845283557723426545211819987801168228922296381635643135128159847968302704605832187841327552970427009418359194231050369330077325046238252996726845089338694416433752023019436938322961706253690908109353192408628518815399882632558217544808803140255060484548632610784244574743880097878942240659492135965426885323494389069604436214663059863791302055530175452212021628427441052763949850582358713031999991822788986211350900050597465329971219674959722566114699869410424677765786491734985401828724104420110372918806054899347823635943395209371709794474892348962252043280742388771313583162835660390694925292061739179578118095651636783073548371789275712606691473681790089233306937866923531984001100752994653638882095992055272962799760935413919142262941950883208370173693015914940205116650818577797587429698538518175809977146465031129188706548021827799423595072606342096450107135538592947262464524384311997619151708274093282756560865948151921899679723548249853577494550980997951360948866390476061692054598002138304674804461970979020140467833170803509043378196565243652950999902468111343184161506236177472541037774464768662126142665410117130004439401699996982419308054619589913277517296680619490357661192050622901164836829004205066045957431931721421078241464369666209934314002599911740187531301653946944789774064364761667502877036466420810715061473247635589990154762854548705419799304014110935322473187472587706104516134491959167446501967986742128237912497907042778141572525833583177878622500893649602359361764897306859513109140883026122306497284832889786847703660913426760635472690970004363233950284814524921275806335662757371752744831705020404793617694720983102747215213381252576325004625145414328438120087193351963382979066304098518628904645306329985735686446644458948677740709994685749133615336721920589547717796928399629234111150069249019057596969020533840593546007010519945505454100991198045882127497254132369874815773275171806443988370586391499545389717749210756454271177843109441816483854041191796546750882393050692312765924280320776877972587219237543878515652924045983233089204896889152865773780908469470012468319651541534107345398133826075857406786891617373421464416237181627430156669583816516580239961854572260780518187661871280215599490766891524864437010671823210780722326751350346003062513952592169424920390244393509423592786153533005566757604937861729704210074721096031793359808769144167111094868538291572985660796731731277759429088942819736514453412737105540069071103609311353556279638465182321752652801117452882402058001325101061014110765270212294442282376742205375811318950816365821553652030331679795367670001945278040301501985553875138121872691313669163574390397117440966766717578078392948160775178203865379073991043835684416514362652181101555593936398276301851503932469902828055764098926591937355104493818806545587004222626804991072122042059686832164706583609454444337480702361734883018142300972733241946627426840851448937741800060195833415943902082553112853612537166017928072592626566959064310597860344427135604056406019342384451646411717614157890936240638470115879698329485614919238028154492773596873920027317616664130418669549419964522355862176427981363022854856781618599042293281342536585023213293609574575361992322306163527926646743425404017602265124238291417768172166208102870327743898853808375850464384124889525937058005144869546979239330146345689772943009336807577155062006153926292499935945278817944638304251639155287743573522673949488426650100615663642996118275973107911292055708041250675914693375039901988192105513460369346451947433214775070275426878768341711919673305532710930672750187083555121522869297915459804127168874672288148233962083511626464330575148802377581394558839195293097692768599812199081085031860665178265625960415531508100873268271235783414521212519399164719400786996243666422791206551406357228830232768414346573633903805692493959208088558987782580127459124987407996715332319564008608766172491916933269100627716064801698240514888562947736618040635445854482113456306155360186393134870855400221989959225150606503958936730481989362967707992620498074004508608217219660461840020529784770255993594905130573444148134764014579808902068432723290554619610532706099396332922535234695396979232758853865464044346184775848842312091789475726793695692757038456985481353851524964081311995314011001846694705538121099872409291230345869647937535609529625750674450819316458028364904940544749486687536981537823166261647030811771761973255985992579533883257561081606416679655046937114528722054133346485160148246703537155388806637237789852528182940197058757392336981751262556667544617933394544983451227436923904043298484281735879414202327372357807436516304466552164209536003255749894903095302492167136817061005056415015388993984699340226703790906147676243969905080651613422362073743752080089443560300165870652999817000702173723107421417777817887126450182576812497591047452094744240264179563502753500016462066815609427946251766472529996433559288024000785743571682298932985625670083538976213036076790183520885336639692966189635036815591844611531167856158441963747798610115313319184453241546898200161130505627299817023163278639898130147311697299749055694382643379972570646991057436720714706781019378582056057089406295636731506944517826627511576783716450559616883655676538636484275113822021506552359037939848041373591675517078043037665707372556621944864814970303655551781216968031128571380034782539069913941867286673412495004138397210486909188768721046881378697767112248864194507472498757816936767643694366801817554577594676354260207798104648722563582289659762983052165731664729420108751648846674663257439369152639184089712301537501072948064494723866635831383619809175921266888650061928804815029470485334614456095698190618045837735622522811058197825105341711179186041032473602760631635716232839670637993427649159400929058170639105337087559560819815378330160651726376720548629688123364879993464469830364295182963452524474648329899990525143371899702350160722381346782930616217872084187388074699605045509226347899526254233538586604795058398053080375906403021407932062317079865485598283688854786873734396333536509682640228895643741853078671463176729095846564144111961134948955366219204699327760724787028064198673940328243890487908297321085144576631580711752521010413272318319668502122388443114204336836532232498352415405082983818165427952804006035138940217379745145539741184969883235014326246127938233470272090398389206970532141763621828096370004966457340947595649420105493789504392892328644806563296158558875373314907610186027044801221028406723402416992643041898821312710302616094434250699549478855364559778790320094210338434013802169825722822440574861882605759654993595873412884889446649159970339644159489652220780557629358464913732761919335393793194084491592390046852583041828074671828290381808637782192052029783917294903140952084192893836114594051478031212796300848246288424889341051428044848376172820905724958781241329251031762193977660264874669509800041225479331370271330908535948237252368995865642631752601189178564356775230533474075814593130331249405079064154141866719953526391873379785393143771940167727460702487017066595670423691033975919828022525395672074247358789330069380816353254270361525022989720409194344806165131654188006337943812554880770857661350877543926371726608453021182653259380461550339812672098141325034845925733403940233050988145150862756718095685347036689791045079841069930755791823752461953983240645211156088474900256313194680698729714109257864590678060431717902489012943202131320413424168812416475740807846622483744897639577031687758429356410629872704938031753263857103926231491370149951852316705175190209565358905973489805630815923888050978381031863881229912107159538442413231534056093894768496495302636975498915290648574056064701004325688807297983664755863365869650629224980056836388957152658721472271574815505372271868833375714413729777637118296535786364384509440551402445536404492804489735984305626768209793427177076009199057894533776530717563415484960451799229965607435415538229994847205422709164810540612159943975896573171012725034517832048796003629731996676046668774985925783990410725733858998633836921946929538153612718334623869777083964967990959321642784301934468033556542816825136500922506899296537109639347180733521738990725821118319042973560968275975090315756663733100531287369335132052408744533079002348736076000035849112276910347589475124551087176277406911188588262228557637383646696482553801654614080088932158749703713411307339487681211235556667854916891613556041847576787471649094814027060796525587446856292699613439649350479658066455606645251093058267772606526837218821304385817428701098395892285417128540947722559763449054619435534718126396060566449607501378156033215122615633123754322306701602207385804794617810011110924356550566048300741255861616945312176750665745104274859980410993989843027783226581987813652051304167725402965901765092432545953000598029953241027030127455841875965155239150703124649418875736158653705396220122899559490376033722171270054744365075736276016698458512143013243263877056549968171866888443776012014567257083254943799575652810754996063052329782271201526715033450955269233044298097997984153801600660121433563545523524325781302917315449495417782275730771447617841192534775608322746282407306948651422563973926989342862684561837367984429440391785207566911449873749747996013895410096540861013687901111637354096827378130884675043623613371679637583643266960692586663741112982004368912986123613732971384660351043970516000611884051766131352713173159415056291033774939945148268365900599509375579520897485453418295588687066022711610284655230925270530147351976015904548729011481396467370921442946018026718506329270892658239485443050572745104472765309290109574934162448620880490530376430297060148095781959117320520310587230678284150938009708371935911381303183334168136512749904226599468314621082571663714211348590646542804978166117615995556457396136377944457059227333695273603087088220305873173998528420135679436252464420726389114096797644512052030741432860003721602709768369815533874811973023352971721057392904396606482773994696562106515936853895508484702945802904525148170653943390360095192221283329888596660683281466320364326299404239914545698449757281329532048954727276164160225501924445018006629900365216134506188589592690414429211711194458630257983176098471838942748605524932313986621645530080294025513136910840557026790152942652129040330052694701985259769847557516245947193949636792428698156060587718745431011382753288461130364278284518416028450630535803143388165704954760060349044959756241920812132343258612110968937694582700658987032376306215586394548226510470752413053940151962700399656808903488432344888956819853920087828017593800710554686794491397879177015691982382296134238723011113861291306050723289767680826570927011641602603323348090285946074978495913938447636073856665733053546446836876478940933482244411514302498932289745228294855640783723717671585619104421208627736700541023336523267440867963631006839809010715136540421475241803754093192446880498238335856226225488932638553942748470162082923129916750702392933792576541402856146824529950310919519931968728424015380641051360750933041645601716163204413890759856096544368083228319939786340179316768817146311104698761745072974790052646497557077086893754559300436385489994550117249526941263619973541262181567908011380316337001493584581049073839496491706928603022611966209531579412290626997424798606939611397402153673971394470446057542160055095049826312042589042452350869725998574328733461351636485008323624136675933004323262203208215472762838773820599771516733770717965800877844132680438945895935342415662370181576767645040817799624443316666661597125297154070411606993845514746342661493330405339326584557979521887744376403908543608670794931694298443793896544886712968419307058677961656270395738547757536612878037280223991166474686924645474988400819524172919489468721899711215289543815678700562712349200321441553263476927175653470153719408209635562239860009675609305003564277811990308192126471830688401884770270918797058688906642954616591043423238763592100549327837337090242885907105028899858330217321374169711819531506646491416342009950987788839008543654689865269659985552864041495014690253294006203069833160861718091643472221073008498528054783837350950657177859669142797007086928005200080110304234154196127274156983327842603499645141412487986373050418800688154615015081924636000938590201827712109063512946575638837607141746281794715069802201677650752540077506983738032295921305514345151857840921903155626738159411541821098273475909606125664432850845852530061551083375231516951319012569835615531784754726181567634748259479734769588956987092456402188479619881024223699679272321228835900203479266731378202463590647754743826980922379277433461762016242090890011699391871458201629725108755147391640719956286401880296627492332680705862592532674938602666401869306212755815376108168787791912329606962957160702062864247266413913452836672766367716563151565964663564992283953866970075231072299912601328612262467886223550559458712857425261781869579777566237019571693698775242378881074755792647951055685046026288555127696864808137163023184483600479893053815171552827295897376136839235370160454837508717818383002423845418184081043721794251115748584937996439952196153564688814011249301941285529168983487445228428204038352097525594178472976286235076051219996192023620000293278402285338962872826760455646076429599803119929028116473315007328060866155805545389728706210477903858376366355641680664983614679317320073016207361966724542063352251919643990885089088044473620700796338503526780557819546343424301453138362579119943851151504638635416568126375336639470623318115011304760213804348663579798597026058658318278120621084102329776305492876047095721881837648896495150685247100913976716971887546558816860776183753812680654650079340389787257873827709476826532303204404218991906131372900314500710473185126921926537636192407248743673339130682220110915550236017008389147812543198950438991913736815335928867193955905078618166623740120849740415940215620758871269495882276180880848646176440510476799237591045067147020148081732923104747630038217292804065367505284627021542288234365698127563098532505332743577594835854866676900933470682600507095085056529672751802186940301616354708408093871439781701374907217530084332148780834223371732397522228465017373690457204147686717528507772332308678914257244073911171025426455430413188987744426720327442485378362908178398871315130472670580240752170025703011985947241401537093287566655170241370492881275769636249496294189656639134368409189297365506688410684445877872680968188339356707762079627894254431937803411737287901658392582306504091808795187256229047822986142978400925243072396686303368675360917673243040390640548331764166294608578277006187865588805524895924953704585758824258349760389761313585810340030215847850074015695962513062651134845399659367884757348136891049250670410552624464023422409713407858879123923192465679354901613854314559625502044784557625868968120511814597341427905303511482845696399890241281437675643478483771760618311670544808781750073974985820809574058717529972613144292495447715424148104066052710202296724121256769001727898613026934932680466661169798279577078902089589016892803101198576971845866746176650624659173537698061348161829314609355560283051757698151541488490456082873005398075421707876686292795708293291914988460584254838737200883983863047791545044147573122260374189891777150524704093729865411281507102609845592100149488324308360953384727981540738049722041138306992073625037364558413391311310708967112418780293057858274220656960615950213796192617923191495731799226462688773679518342703228727632843333500425124607229051174550245094054366490421656680555375359614402327279126823100297223864339986482262351715834128677730654070125778211805867906544864583799448961360761043603925207895055333558797473749982605711965714153303073981332293545612993209861780333289814251484370105019191154479585518736681679380415494495749453895731384494573868450453020483419622392481428530036194406931304582818989613114696112614499783281681097426642243677082977999739988933472775783840302695421982445332072193731704864048999618443313292406834962835449662223808081116907737367262583713718191024565498602378690389686506767731723665907374029256169480477574823330956963804175767906783020097168569216933636456520358063723695385838282812791410936802798026974917553877304938735452174533359643615944003356946044942520084721606366202639702049877211416228976745830682832921287588440046673375009363891169231102216644437885500322559874957931657164062727227113152904171167079192498113565979997779116279766078533137825930464731293432598429303868261351378667381588414016239979587426568792400033956258670032669112352007261459490577084421452428869665142656548899096221126818496193692134023448069125950618265626904762843629735850698822559565902378634751110046571491012663203545546016556316976972868497501930142350237643513271399960834842480176193917147412967446975077109282116766809929201220695750814455856208085980318876351093869891264133783930221592102471052698182982505342721218498996690011570436072289577175351073774112634410785486816353728539254445346691200701680215452285577014414965063350650710557979635792263426656282011537080923282654315907908910825572446931975214646427584258358468435855797398404390825361223291559685306323371085478859988449988216332486189488428088819441049092357792258415872333057884509565859179461525144241825664877727892771074489548415651355210623332551611550829765126251510824334252698212888943280462374058510056411317295168945941299391954978858766243792750522131442333630396377816692991290613442793092678409910552882749696630648844989034796409714864990562550345723723051957263595012181247571402176676028369665917320467438098610323009773257306757626158950377656322978491112682312592952710886029284190465922786651486135147262630993624732138918817998984658260392042270691940012428765763593391838989117669880381363999290231457754669986336809468673067072757483429402760317752939948633058571784283215962588610528053589559966418830247258474485829481745446465876939600556136998214665771076621006695819564052453828223993761604221698987898737241271412809427061482666234949543533491817984306583352035805198863498329505807907231543534691497920673166765942727896722129134133297737200000012116432383417801906677872340996311171357951922008882555926389247088296090723917082341279800825426382481480426743977850801154821303283012522543702213588982866775498417832300860057430349773446004959089302002057513895584633286959497980895085109748495773242639496866143490745454442552290065355187081046695554581725435541580187178384090002690547201838397610912336200943476444358557896585734019683875589867465071866884252674134712640913929647389925187699534552054968061092231858685640168980415130288863369989801519721660041923863246268050861765907831288323051262912250351127557026369309153420667428601911969043688958894649658338440660355040761227021427950763146987693940929073208662195490636776015440211117257558177499621545923966379186860122955673253400920435336542527024216633018640135945383897627504577461292078192812054510542411426907068558420208671509866972202321281458855009407582588464516457334244011706630795845622241465966054403881641443216272139750929065505516100618388898387840480468612407760842470497107812945216267943295958602227131750227158912726654206375580033298104228276052949306329466650685625803589472102956030773915523076334993501020521284216850946496907031236500429754549527975971055903732712634913089438236392967940902183627083729716265626532042591167963288155017954528236731151685765450117464043402904607350764828640590859719303442839918334069629618037586808060487266472884306198620832753131084622829177629586366265043528854656755109111640385742892251867013616319540874466963014330768983858903712649674481858136629542459682453849659544267594472413825476296647386924732425492266742234389631952896628604307225114605483684925294937249532361696596621109290327168269569759314259294311972275845082501472723659341247144546256975190549933062625698505645603201415780217266787174387721546394955244049580396734032495239693759442950355886359161266956004827342826548538050849569867590435923534571874878705722830616682357350399219817747989662253004672299058806128705467081058559049931811006434189376213701700128357120009283911755456857541096029179474928983596505450079869562803430801702446287892256053735292722098490738388694846269362173347861340723002467971129439460601220329714124884333301949209680226495183060690232870357877662953578766811261566052376202389913494303041439185258319472834174194711480945058095976202106855428939407856300786538436664801857263338933115422858898075241015972568748121529325631813620274717973148124912626385301540580343042584424401695805953253971110262650073120419497713934315826850861175180714683005439154356488298737949007946360136667657183833453311227929001353047975506407971281694171809391291670295233073552033625743125501767977964264138288620233276933896232405558413301639677260152466824213323252917256674441403585097067775906754146879521444373211151818047866332148655726571681890762542624887295101247126195756678792433615127025338972853162209407322598864652738735623620812395867755751598384623193878620497612188233969040450497854202628917984333228357737160466404381814908635443436130028646630569047496000769945914669120794979816474403850014610663382253136206531774786888449205992894572161825815242311715072063215663594957917037609913654949432063892809334800534493751511948794604208984795823685761654229950326030345986852980055637743384641323379609154676051913888547951073609607070590957081363107957095091471920355452711042160199503848009756869104885806486177103916082060344494123093601190729388467601681035624805553801829352713365092939963727611529975966221811790728797480852864499426521248309078513505583168611767820412381248168244522710153848465743066326270173452916723445267456355411746170038279178106705131309839517040999175714086096361268077308764319135194642649297384465210309365407720667261113439515968404465027928023574177601241918773863849673040878645599672311217251150013805021717412492370785779563384069810571122120554620779157241154949322747045003192072317730426677653516113939067981345566184242003357995370469357979440598527484542511996303899644548898650668516602348956832983913265462909261639248024883851331933141016177785010501270443171012139133892704446591547941846187400247786554916575600706202373192609182438959397083735445409310269083163219973918435548665284151354268468615659535839223777480559784365062504764874617197994027916629308483396440746006938837139153298186168015437401055401414698504737846068133982482959203898295580047626014176513663084028213900003920912226981392955184866916459272871713203551117886751105146905770023146584010031537815084382232831665549499872589682840305265315725870397449954814414923057209854860884977232563474409081811026796379421543448855824966130610508124044810627493222171924917467563054276410651362960880902733555652612474300142748558855302047316827722105450475936803044661329402803789139384110325313793655202091524283605704698717081491055821858810113961703193188248982411622988116848430002581833168488325809063304392059526536704807749330128445234604918634124710614288481353562680257878004095888610869636624426186059833989363014349643362223788397640315529682081290968638326428314079406110297617119001664332254637506265465105233726996304515602630902936423532742079634484209602764664099353579663401866471305235739563513349026342190824348421552208494797264180793343401077014928680598570679170095270912497646872334815626401429959376247931825307802645992809160432236304510398065909329787027079612583561109908123501686961327608472977538875256361451264749912400498000562374201257867912274138113532693451456162890221428787690836703272370909402314192804673053083500658375847400781087061825198568073499437439335967132337483380234322167789362021848590243627525285599099159532741079213672656166850359613744917842594380942066274281794779261230287010246386168653102173776190314886924594174553486933684300119125277091093047828818092459929651825036453627626113158858746750959667842591178694842622100143463268166571129800451260425320865919155154536852127782804138561560479032731873189701059299974407042411404049296189772610416217984132511193011196609367482506333175914303344191404029727122648151310831272343199090579859391688396535900313686876993942082069173462466248431107454152459502777825346119708783576373034109461924668928902992767211953458010939987616199768556694013631327496506425502968621509245831003224481674838278371494475465786960158148493748134473380461927680648753141562074195527282332673044845065031727907384822131636725917835382456787633950522190889780125545517853630445723356813006571476506511695408537388831368856179414360440186651856628365864055859514321064700356634257119394155811645326852012929563985008425550702644828581097727088905427258859396709828378174396684173292453255378597923099027981161963833276529766578974458201324919965705041298102303109907104037120490142753462051742842179374828607145740859329197370368516832301205726110896857385395265384151045586442879734170843115978725406654220384069005403118561553943897616793348191964829789339344327456601126405165159264583104634810291591504976727550144772588435779669691879928512358399603749109893430606508976538780710729241165847993411569003900703243188793928535586837915110086803571841984304331833787276141961639537066406294573463328955493044847759137872784404267912619430378363962080217771621706719826400320171312169342251912886043857333789984929803934347875283372990048013459599128647735098926744251886482688327665276340223286804143878812615948844438421016045017490598459722632465141076665324747063943113785966601464580655112731692734834478375005968474687589092992825735182482429907486010163004387253640776572728653220417376378502223287948963774353449203032344971905074196718735885854120444272539315781679083205751341316806337631237008443330470493707870875953959134971610204167054852374543671680044257191405406543909371653229621368169833934091958491451726760658422878626369265729222325045544832166164424261088444427573135943127117307750570100381150445479335181931626308791631438512871585432993406532963271980488457889777755397312628097481547265721095101012612054335003935540029470639058820278045360316179869902704234182054983329541088225638033338835824157056010311968363789531273616526918647101825566206650887448178518829854449155027221618415538119485342051026025757201625664703644352882407682345287216893432139573465631305217187440333091011157592480296197524209993238498118537503051784203721518346270674304102166268711828908745500343240570635444460309202137976341646531827354074610038398566186812912215499257126124397859602502314785895211292517088366109994095089015641504150584946631898026135247282806477196747754694529405324592219950430247005702152733742578050682904498138611052887792600980765995080517570594488945994335670174248584860508474466423187717756822576164490430214900167207543948407824406475422526710520084435838105720712977108564844529335123448360132993087905979154438445147949411869666573185288785931170449162903162528052656198012337093015487925755458180902939988765936248944808658463105875455049600864608925282121516273593714983354359077021250658936622551850524632697420251358901734127039071507147739416998650743391670678868640284818690413102511896597042347214586355027731132849901717831691239724729033014338226855878147648574207016230167526382757067993525841483643210419764852633252086461795343098960920105031857834571836395969943098537501568103654714435186885127588184723802295252173352194680521824046344302938217141722602672447931989211227532115604478050163761147304688017881759353915744055919240175971930529310236605316729167118794541931727848728538826798539075343320306161879222325065899816793568473328616942265941357760888856137183386797382866220114645903467637449349163199965984907210297013120811402874735500894072094553633087526110263887629011748004332552358092857596362074620747309774204757432055875935169195357485198279567957444119695288237321684379200054605336277452801368446011351551503190506926792179558603695235928578153110948205219774126696151147286719810620252115826151818527722309657455299495584284013439799017060825446313127978451952576633824262390718474450514972148328690676764945498572952555416060054679328451144977908234900517390454199621895238993737385053849291226762009424374038418801487954973904572262252300481361437358288395337945154968850316492204005020226946652467950952536844656522315334337184776216433618392633524199073895484918862515844517065268822845460949342955542600343690164632829001263828516601429800764677506708817013668311094501186133666069869094646870153827684248695142512850380681617174112668363213782165761257866515909085133837980251455993254931649820912005767121825865818407243789451093128760071402126712465373788718945136562970467213431440558895962441004128482605374798212460119332959243407817536792728076586281064375784710282899876672833519489021012838406584770630067917636627463582843429099393579489661169545072290742649878365404795277688851626621695007154725121540888841930201482897889705902854570388821470383174590928856794835483003157683100047537638534748337323516930159737792589026452213445371061045083444362048554906098911805148724486977619912847419131475715868740207455914324852103163908442512977861446010396832041442604229386130951837837083370597954374253872978326835604221513843827898270167696290478269464737696899363984271426468524951365987846563996162521289804940953104958227523536954157050343110426207851613849998880377301476075191684788749521302921032053634310076083110236456107757215883429451028424859514053320106731607440840055987496699198317123319261923907348770358986908260882840900123557650741450180234303683081032727628922618403102561607308304958118995396066788918901740371391585589824108152255569683554766659913826323373353265278644661914914866403729760229604706511106126007885908620457969504947568029484221396847536599066147404357716635187618673982306337653903913747584436583718463343322163410962093761158932322227234686451350180991966758960473393696610685607824571458792547628549998705928461314686935071591248784509089855605678068347506060554594307322399390678795358577118520846409941667085673631962623090559234697859781992896447947133254119340545013148089755235576625217997388312737742288599470574212625563913915280899801921243570274350301683249605627396926015599094710440790094034639505128265022119066809802454306832500447207641503526753313972094097349133837538185530828392597305219886622426454408274314586122812169789082716197676889406839201200129590359252627269560973448644249159470394495477754825756187901396551281736206783597535047082062725411722529787448236751934847267456151346765359333071469565754035284805058429860143413095409392283455642682275619156222817012029219241498888572040066754948885810657088803949278988052575842240818918204679269775800301274080674736292731398741170494104941647052773100349861476352139959973283501479691150854098926505156784088937388787654816327004135587689068043340970205864601626115988047030585593127374816561617699961485267408941740156067743206827589930828020415876309111908066111056890651925110563425221805763185098111336480550885937252397629648676893886741045007584204580369288841144713818756609486327173591810183512750009050317400977447187916734929649045157308684138575176356428406812735878954042221970778761948030063891306620073017135262374482010520816705949600700313063067816007400297381932862915791286331332247499110308643794015675150496565906786628011337097294255820204969032773037330634153179582886879805384413972578458479615955755685943125667709201952711125000193461796414058280958024275799981810249471012013028321315602082980357961523127990848139707834623048913779772391407464619112350665503183270095517816436366516022588057175261641911944038930618724541255137493904508186088804590144180681120149531249646183410220348775768373008051137903571253074154261682486749884257997996215948225286624900934864872382523516284615779795315508768615493638769310871484897044012572947474998305617163053906991548159080053906436315351913428489678641912856329901031327147352010139287672258347815089682215654177580523049453895804013694769366664802544697674803699908239308194193253509386699398210325575022365772613214497865444177269844093687438205958381991401356463920521710911559588799215595858844616982506887858941423347545756464857503592577857542629759426594052887674907820345860489914400206580252736082974450643264418739590487737935414579771046412071478537667608361606407382848370255560989916709737830582783151709021277122288086580877774813109401007062777181169540955565737228646228221625794072076051344244532639598836072171519467338644901290117314545560501995538836854213301919845273710650742975335518607145820925285576935450099799522285950592828759340716121319612020475419296391651842717997125950662002173210325583148351216701422922600538473972048196949914376946902528571001295197648275255488771727025186781425040530381523424943725929881551492950282345900263920337836330767946647210011585991056050717938867045161456543146530551445905819350020986528928815636718249349618766920952883706813633471026267305400396760100553772394123656253649539789358858867495077669924220438192689825472822787995380634954024190177236712523051399825653034928195776479262930802194487210927528558933927638650344038552109673422601726059189310568875276460995819290412563051163248835928124755641211038603994767505109839154944449529414315331655199574694885898686025286025475215043437168584805796405708173758992803059042745359991660873350455313957999444019847313438339201682377165900307391808405366786465809040839385586308701983107948568794658001429384899134569406254569934877232942859926742869742116231612709187014490366184717605637287208176280891652452177440346580971181003854889065811578206329314292450061788853919129305738745272705213336945723725943496266163004613873130727305906960152951435500959799135204089497650015372755807306272264649113262446397767653557885012917191775005620382184062956309125588412165524352919036308253615939709575204120147639196370593898686630747464651008989918214098481076572951983966312206084734672974693179108098210421063007111557214151151794126417354032234202857868517340152798805290264114776635975294928672332299700181218717780326873835764891458455849666618599963033675356131198759548124834305653524166958666306893730321263706058473377007770921978573723372716152319555911021507842449776487625680634982296392695000768665418955504673645436482568563930529131475915005506204430627681154982293695342807936380857357418549365737885133029423844835638910840938754477945428589337882262034444369626646484587332665401647818771528015161403441769741095730561072187172181111751283080505747584133100980682908226108151181104537477714698651655037476156114950318264946263868404498163082769667600128292963306316973246654519832372692509533799214114314268183984177746906431323692924032760873035219652700947702464083743061150242225731695947224979066558357270064561054110091246967844124940326628962544780248539685331466067035417224540658801057706836802224491679007565876494703920617240246235361664499808525414491247225873943633592336367555630769346687803347778369859362197739697005624543065410248263399929097319352130455666623822864633257930412145461008407716450464642507953362587846282501985302579033992838656419440215507505933336235624461139870615246836960365055826472965582758838520941550870453709979778991427220869572516450422485490039447221805911394779496720081408886000940157796912012050711766050233218071301195024985757131957658402897295831339284227193080480337311764641480990161456733493419523493232237154769910625053698553784653251824885410835714280309312645257687539414595062018686205504656065249722512639224453597551098949511653805703689712982434025874860500159352519028347822952108297081204782030180133311110842624995996673456736954263527301329059331355675384375359616474294676319470293017678952805620666268695084921610913866607373611276151612630133680972603548004461693321268133139829552528143224076575614021611463766274899512379919974364814008385284902909419818621100729678932600253598874964504195090245734182331803481260051795966043635749078808310685058430681048857538109994604659804780091707470246020812937506556797179695352984080791541430435390301076459528704718202307347472404433943715184015155566174247014494125024208239121822757352502844423406696993092278385537942455684406420409910394224649479387818274439763125931956108977706004856014676880162489827906901701857948669247940555225170725136672339872680704042409724975285948817446976102303880310877269336335251472489027278145308906343888652902312149993911477776674428414992430066501639408847120037252617210541261153778555563868451864898483388578289449746762119687173082308427686019144085170334894822117577653569480644387926460300760074822132043759045089394876433243813855974311933828572932143254609727002185303796275904367838243131154646732881415961107849155939391182842542161561154476539669531950393486405542359578487449074992976997381156012890503974873011059859152369221761199337022007077301888024205300476768549729841925274380824967742628164770143927770559230070199231571847519107901851055841304089874200603498537917232540415310457703478557635684673301612549845474161012719536680461287626387767904674629931412894849463768084284589295807300398998064858290111483712389913291610870827475754591518651897436610594487346359059237653915665836956441585101985429427266375852245909791905936009150935010547223284084050649863434497549757213220765186857051301719516485273051404471097297864227333321899902523067548467394264290800566125364399126875759343296359665812287046266400544652493045541915670086420737369051818835839152043057698097379235407416781833210358516184757907281641778309518725419346663122151369516960066769538198214703801466044298367127607098276122785320653925701330541696274011904644322534924205143060384824239391880226052880507681697649207286692898035791363725583125795765106904017716988993321818260362683619288288293136695908752510596624322474900647721187377103722072599461159596331164063079545695069935719762392712218426684174586742759787299704791984421420086406101679718825747397215584674519527214575890759601499614967524399713111592574404504106627033589503244727843485407484175749497974409307370168849390929866406261058228231801382528145829066121863242945901648003421639646551644746339966739469151259265552641866295805363886758480115642499269875991305480718833294183463932909287457051009018872778432902177283200645029580885707420464107580944948366733760130945470348503520666558481972967933464543824993529747474842031120764538858350433781993493432471348235595679049594809163130626106234536439519063428497305160469514843370817067786428325270938797770088601369568219444746312877537358540801352905706717724355765879099858435308630251734587502122466766938415385951506336510004528986973477787146849910173182485695112285168216706456884022930294050237507219118018384666398551783981036694317435954905602002313119169909697219222640267790341818903244162897825723399162833550472787683322277876713398858657731073250041467451530115420186791448430432423571433713388366223447327590115195886239935742946054962221713683858445097441369161447381627481424654436605754000644740484471696897703490780341857811480868281989581853409489544157567438807589640930203308455627848371730534092613055945971719645379355167803725389281309865058271398194014224255361640695092804158546009420028920422733819698939799230598235102756330268495803401424321713855825459402865499061208466384205050427495535910428368409724325702956812455703020537790232461149210733499428307301877726485074373409522820233036868890610315719457646426073264057701655326096089325228172835033973134441807868389497630583677067244061326214568986814131197931679193843113449657697204279179462160729451275871457473933574236511884062071871993562107788784915780988565067533676416657470721580642097289106777086932805069490246354452090950522748271938840623305353701091540051351400937735576956215864308526058452463772856598707684103786410011104074384771252645172123754387908990082145053542672095363734596547478096055738723141915778976339989428528647674463903064411005029671143165627547026398946720725173759769442121218310045996614909117196269227108962338578321920850088671501335776453886206068421564366199723403358913125857671354429502687394848400656620571398885275246388278593474124947314670492632358187875405820577965659600186869311036889106929529208181111868057096756211722828428180434925293880818982478668475673935943507937931765621008227769168874503345682899009510646090090706069227665624250596206279874965359295238987200096847774953404245331621981008602596589863019246136582145243516977198912550400252403812541524116099439332811647784095925174837786728129149826718942423946123906427720943608334271563806657346035015314456908701583527550207111905414980293423274380312116579935632266657942841103736273386736688367390339723535988411923430090056679420688653509459919376918062955695940718299944193294115387230023289920511821963341925562644020656686286630542210395575114904957228840114278071295064676129202241111353563075202011429949429994713823753954965257019085927674886571730082046262111078630581331429438063154750789753483450841964013799129623449397161790554265166495843932000909607920773077001257815002669084850134635006644388145641155004778224034597501632523277866228049391370851778499474571822897575386579131792764045608471739852495504850394936033562636268492609540403775087859253854085436128174634452650715467913733994664728068019496825373807490553931770668317666782962839368098504307151862415054429502345849677513465287400159938278612480907507732837429048712060323314786908482169371258797215920562159632560531732699346445451755467771859493505650594163599399199943160285564895918276345839035701042431093221761129114745128260354609684747417503730393868117329345547706906448926470605119109054839920171259898844069525942965238919178263456621556203239931782653157223589927648647710634503129638098059340074783521519575116032530614739170483300684487010041174369939316117108116906830241773569564080565051464835502009829202584038209486447611600367673698422218403322950638048735382404306058135936174524286702734433764624965972559702740531779260616629917331114831187333892620409516541191902561841560162505658456327776903383700987531430568391754453823366575696977708974636682183370858373408632574359943395615122280640001765180578220317363198215148720753436793650753375131662481914762363385266399681793168280413636950301128909081476307176324895566090474274958118047844801326393928697155256564602608841540970755473310085921240529053950781594953320155780111470022096144707170492568645261781150572088575615137051226908648378713849537496559944722175115424616981927508507365933087302765550683418842814106160810748546507248718985907292504307022080851846540881368324866072946308443506508478890855028026844398428807687134887972741477173948442098822794966244830181328175048327938633618101176913458181231170709161211298202538365674697664201662826018979455116372953996544670847402059218994816202328928398089625161749572871240103112486015000181336355070676986491389785176796029765467045988312044806333171205999467669557220212313141348003374920947224216967680551407013277780640686853365798808862749559158932886207362760637800177947959922082056799609125118029529653280558562858303501543172981087649974186634454713140243238537693563826491275197212163209573884318610495259326624397835994036973746787899188759570721216291589722572893887235263318706117569844806527844043361163413838892097889340588671472851551027775074491042289319559998873324130936849372011102986505340598921882217447034638713795762461623077518907610938622934099511877205350093503087343254611003158878070035172819222444009914787303942571663176770974983528742530904832131608382735879709964791355731751283968027624464551940139250547431492696789506342828147668035786947588793654363093904565863110825882668900393844083944604585754131633906656099790089376861001138670375181453732546476226663602333524565327064545980407045222421991410485984626407744617143762491067447378529437314626525274479340364272634327594886027687741738169358626496526077894125855706209832203974858917215216342154696573718237035355193526185366624987296822763880685165680604230696637197490584810796278942010260413674919015659560997740187739970724174002759693691802462594100038211248096723196847498691800677404263340241312570582675355031639586729899752953785453862798916608388490706268762725347289178342292783401431753716759448030079660401252789159928824702411038560435723582226128199105290884515897013831387218963375485486919646518770808995260400698238117798124081848427436554154823555819130100329694230379209797927946408947070418870149262608301365881495478479945382317744591204859470911277892381597890863868148532042161255069785993249218152931953463479053536597936979536892665598767203467344799205597120975802063060873444748680397030526172989565828466020394568452666192164586017047584746148497325232152046583695334935539267461908834534634794036073409971939020630404326788248276406213069922656294115306226202458990987303686606951403137536402419386815166550029590004479232246799873889026518848268915975802057117293261577904765380553414333984209906890440141635007485973700015597143942022809971485119845659529023675274636133137852432710652894313605279903674071345671391281156807929032199310973282299915231664426339884158549894953756797037047506178200780868178065331944031880315670760857991762150405461144483289373461096239247953928983996459825418932747988503608122054055113985202067646657029130498016972830919981144406550813275863273450279517550628479624781758279775371962538718328238831035844561755055688710761288512460843066209533036094026898289642612542786522370859635995001202490762786046808280540349261193577427005832573370909049504359290020689316012704639852977936070220576712005341325400101176751551029859379284706470180411387169669030398948905510555572268810608144210906580218291463240966940121098550921211991333338425966079389917717792996668884344076889666554620580840802669018543615142210332292860583271366882415439594958728479666780753533098599009195943672766552707029531977483153468293736485456174124768995908572769666398434486178643975477480965730132394967485460513827406466527793997813336459299474087249652426516231638415359268339471532887634724089140725585955101356293156070906267593606353434861680877249500891243484093144749214950603698096808333493807504635943343921984553852288014435024040118170131485037390690455838637374849650389267523166726921427073565086254249904791556343958212075780563220331173328625967872043562988699314671801729344897497629505666006799641355957397386791516319323561624445802510323591820874224740983060382760919375821928583075422001825469505443347391682075616521472898723822807322502037635339659805187421699764546015685192359742247684739544318699227376578323821761048845144965029355114183361508278120981466535168604401482803191097561861120136300073431001617541079756319674925917495351405775143467028795051964403444452195529618941595732985545304871535085172221616415009160119332956552117540252523150372111002308566280929074990191018560423178474769270988916024774056958021559067040457293841348513465275203605799329186594283267548534121498028142589870945628144505000387642530085908197061123743604869829900747810263739116130474921543663681128258718746099432750874172062618947007966376651924038458485263690549164801884425404457421204487540457099091656215717114901683264551819001109080028031360440886809310112091266900500319473472989160250423647571293895825526453495687115685734743760027519015586156090207027950598801716939859893011668144555515659904489700435252573502721818609043942523416060762647494678371798763764211691882194422712469744341028086838107699126203470266221885795049569903021889039524691011665973890547562037421357251257285482187863384171337623211322175799755934389096146195437157976189434880647272765903873527833517360708055928563343492060329921965078065024657196946072651513613823649019532893001994590709927067018188205797800536337047836122383888650328230484318475075370557401936816200768183038689642893205641695830902671929432541460534230189833047727467084933586732055865315601336797946689833791255872744982138653302803919692508364065423326542885844910955818489868581272962526201961845790425742136552621588044222581135382449305260394663465377988371729987457353100337510212757972686825065048290824677488758344006771159131718929627225030922050621218522376152749201283314524886868012636727134770819421599842214522387034114113924998464454582652181638858019650918207506904327453437056653033790919096726233293992864257203397235747701791222258492641889186046836213622552663623124622568670496883536291353018859217197020526773721301040547556430734703461851046294928916400167256737001960816855192302782628001738091079283016220943529886749195566542734580703390088474102511415913512644562745649825963486897932576308897583205348029776359062199373874665376055685790698118057560704049252583861941713359282004695671608385636550513843764318009720222648329940752931658516727441756660392875827258753229876505217777249147006823222618370765672063479655160281517765301634187571131136791338376110705390486634917425779613698317375040105165056507028421254352821925560452820327595384229479343489605900020977235038527196935904350348558375945551564571122718303920900132305698118811809583010244812311681170331236001486304929210245633345418344375272403055006543858780655773196347623231300924779966285001634302886845336922912996720848099300419210291986730450049400526100899135978512725553925108158845398361549710921419358453136582657105844270931108976801390174366519888473942829481114648624822624233334437935999914686661258413997695972472896811696827972372265139812222217707196988239651998339490891518975267282828432351970967475498911874929964279745834985244431482885845398572536287836842702817482493127425819346752653442971539363471959845797031513523815659051881086300708041346877203591766305590720359314218966168165567985659606876283029793262594511555901399468634553787549918206435450366418969271423257837843156570313964205776609944321201235961167954304037165531848636110695477074574984787646545822910589060480321997356691847743576104436322326885685920411257297398498679962910495091234570744733452216958211509071997193108432527772585944384334775806389508526363337490686505959324466806529492254816646964003877937909702879701194584844211879418647135544158349249104608798114126032763309526937013660784965495768030199456397148650118072922132620057030111859480254336303065044075215195757818175223702158129856564073618904287654024675988188650241915252241120583896512376621158573687531296825558471872796670190367972817009992165867621157911034748036197601203168391987807999587806461016015405266289987098815058389273092216642079646300834982493436644965026261137361939553631590911572070062070163128383353491241010036631600483648011539352461781651738833006328700961852881066932201921922242753577320932742204145789403655857902584166719082257420736701668437797337798549084639346508311964804315022815739029497243785501090743016404634079639769843051753048514931042554128140613662069347343983229255674652802564302935756372478085705224653069343909545933615950662817728184840480798000168435566691896407508953172086459716378047278691292209284112832821081219513160003966472019572240770292691755870343313366946243156453068908151224514172535474978277531304395538480939577933516955882351828483835355708943850098520600097775062398684165452892684622126200418649895710727799735551014928801731260522546011483951784613318172305416371616360449486943926816355898165702398280844215095180142450380558512305502803783655992095121806354206862388745857791786257634724759860749836184533892174628234426508078485644773169307936890853532408529651939804401761248784395546971146543819588630653600885324481203450258448121663803010720114016458531530359471805116717437757346703889745079723200332548607814022591090140735566438701310710291290702390388885164723906239702632949185868507550597921481113865126294156685999567953815720854690318585392586780928393291847884429857524385955991414388080457662599362765385515415579605912067889203386895759143562172952017003969364060399473884794560555190127608358534669884514946414437319788072708810056106052408087831886559167428766647383350534096493569607558372935853659853833463793542447611459834263064033937193593884589331893180841844733197149383242663465471988903007173317937272946679680935514250497297377648815779032330810345243261532086841519035762230355283842072632239084931814527251897153170846971017173478982789148614476990760351670937656335879792110129347428638484978846754571009325709050764127427695336767501584026770991282597164542474897289823610935921120180790974780993449810369233821008273553099967095229851461199534077644050941650545708468179283494885460906159006731287916953507854391804033654684321277085297143800235286108851476742442680301267085132765051528580499822263040165060280907730332903820600688532523068799106351825916212589285215468091731435655935796522772355089543283850023289127497799143365347482840412119287752073753907486624536121891831016195872720053851047357182662439480145353592708461975782565179987221247469223375260936013347460595899754189173344659427223448093833049028056163462974139986034455629498042846640571478117636972496411570120419086748384773153758384667980180198558435041534636344170351156682198448749845358235811848809134915308852956344494386955874092430997618919119856182890370584105228760359879145356744137939154038143982949830391188629333379487821554852438002243426388472739057423662785048712577441605335603796562157547625260003274471221983069083296296466836491360103931446570949663524094996985951433681099800981121588853309741412463965297263672933959774225463810499744366892190255877535161108536435133837104326544288168349097321868904942435261567093261975266057197492249932887902284923004827514951878507281535103069727713159599729992745732185134541646109867384503796608154877506988327513128281270708118613086146952960009483005535254656284879680430489650619221088105269186640254663807229255011375231274978335847531056796499007178310126275016842160033654463856219228577566655062465503866793819489485407435484689524169923025704950665525916455386286047042971564827164631892441040486714425152121799444346780524990884960438218038711645085373921411536686971876955892765743550142350701647671664903354546167491022931113130556553895426685111951163460199144695920835302007298376947479562845317491609417208605030559689875468915127770655419500336764600951326816953173270918409771414807993618141410689917030961764032569548931711164388035747739036996515759737729550947085838597328871270465670727588113327499279767709545775911452331618474083496247263706741846490779146560340284935226312135035227479489514614061934974634352411682401237265604560808397403414348708343402807098993753505362382793677496515084074320125110693430763243695274742641661557914529609783120270585405506780229770661684057090718868408998843163748780523000017097548320719729185385980096823861313236193676735679616197022239542812461621552886947382933939046272407132014422967068338701922195242600804167631299141232336559806200700629898884571301433278548862504059473264539338882353157274449541585214160412850635928599882806437939374339601451428758856777437361836796274761114851549679044123170626368078229856898116135745178208196838290825017768987345157301603795685543567575931013357207744608941070776844824512279151123816492456044336733237691036193761914733374604577059491983718118071134622878002046782131276043478189286100321072148239524273531613580322109103006352267031170671081387965857388046570679681915594206628990503497071498241181781858794678976312317465312123369487256302508170960529245938083649939755134413142552428149255301641325739773500986534135438748773140160427360476938696451665254628712849468186213970943124746937305590034742814708540623922198522220710695424031456312939531538957358624273885753095534003594913379455542982836827607350812922802338329601145884548060539866082721442678917960055418981250467860844964063605364671703024119241287423784119717847401554168563001906212588582569396516504411161457528897389679547153460302199205326378773619986255146517446885035120995541015914210849120310262706363296648587646171108232348556033125818025718756776298927225121314950661345905326085304695981813098188477397879319242176524177427624528237612564030421733140036175608320481329753276174417757528471766752587412396501736181148713211171188329485784671086933667121424751536094341972799294946550984515093210980869706693712500525142093711209844782333584429690031367982446420304963861293426798142720875726365822847075189168252378867939324277090166051725508159053383134792417355171869576115385834604531341000397369262858336137287522830512189932302891074264738349803458816759270159721931769969659275533836884096447696906232104530555657750167330487312892722059692730092297173486433527295293756127933892955162237135673485885474428916052589036510226511623713491194471635764566649461278300747500104386906461615556113281384688611433235669180432868910963396676735421876358574537003017644306569836537268170337618364563796219355822545064030384318789326193383153714985515753423896398720917677352653805637210627674658978772905335474226864366733726510257190807881549123154358671886584202696409708101617944768498951763106003848441277993944316017463050567364443200467629754469344081391680795782160446014600498692882686547133008115267659418513845416778054148730571152588865304718644045035694279099771081354575793661377353168772288611455433417057791434586581041967465666319880867620993500019375065988092994762590803082850835301184164734221220501111071226783528545211844959100395313349406936941419945222210787712601316890561331440075731693468497182579420907655253975888437532897021925556998248819748969653461987705971089874529195467895800573743670428677138441825947558167767890245015835612039575824852948607718716663065545050714074608745207150661771444170314428725606497304972065317699610772420368195220923589654039247787843016720079616181899303877380014746285620147335204052128169116904562781171954738364060076753332009013316153269585113281179287486609454513282864286055860388576995630537757910518738035985932422456045139289172039188154970752071586763151170177844955299766241852263732605315298918977062471247877308017658026783491334992034043853071196561010159083047088330796985857924685551025414578808183135102697349962151699056711222313959384505098000755687382383268988354083651378663165258998772603357602702800934621091717414060706337829507629000075215788206572528305785981110917044361592582202361092480880546110223642175345957562977233673753664836468495981610247079904306821758507523882302824006127139030957953482641815433839180270673493222959875521294052752103127143165130399092239666640598767462046153590414076693387481702357575793142924201319302974673518603412060838654103973331039256206606126411394244717077665241674769921449002418144357337838026472135763822792843795330617176251099159363233648851976495295150768466294154221761779278464345487005551148095587171116973761961711611683357869159914147341000229040446775963589620313175997275493660656536869699975422815405988178983505253848590556527078830672725312429422436936832075651945128884796451452273326999228818794740275721498942181592942250641159346795591135754098331745498522708134632973148353696930687049780041112852973495903482083517518797927993151314977915791825162769764435079719049169267523585687254538704400815183097295871073617930528359674334669969947582707653724310525265028887908009870634335305937079427361126547495642955607413969837805674624667902314536879034076676997460853273910302186335840838626755397485689807757101171710028736401039041530851120747165651600581685321464660743780794366737337639060715769105193018831557572585430577614338340265284622455754401428556731034745157699181615717727799213862203035902824127696214532238803067153244714585405379845567299403456012456087818629896758626424977083135398397729982792776216803822411357457188200319726236669142086506268494402851764732144638905263526476899684964371588201702903797214893524611619786817336953961000914108071047176732847127146861099701787625196154972221888258856622840135598608330640775112143222434491012127547949812249496270041374002347148698913390995183368345206663993653032598111508020304837829670576823974907737962512889881317445211446895163739324714897931392609634971741693651648150297171643688722827365998310904443402946516971793834509202139979710191110255705111462407054574658922707216079479711185937059428488673426872086650039633120721965720917689287197091154442472305782488472157246710528863147969337099890915165124426300815669285554257167356753607106728824779782148788506808433134888442145068028871894299146258848046151818774716362185241123368747136677475194106188263902129590742679072278447642482994911485505626462618146420206698996949942570763082542871136825761588966261778390299115252499468365189754810795978017121632213882316044968769198504212451570128427839349950422812393660978113889746447752261073132916675072513257026651035085562291476938235825816761226303104418499056333767984021373278495237725787580503483923061652792993891542813791362881934027862228366056000825859737020874026444544896564228703266135429853278566609720673720536331231050347281722642836232143838731723902070118917909979350137270576820120368067068289633782642807160968661837187271017135149646746879238218176868847167652464076638295152560791766591397321469072892225113511946698092730173082170611392856812276249393356832958911879224833558376574064339317560444567299347777633037090107032567815629415878938108861476879147424748559449944380039798185558978236557328877606982516732119740498491585818249194354314143457934854454962924253846743107553076850268073602698010952767324974208827142580854170923844195005247252872930305758123819732660945078145390954903382944601046816706907796012516759004368279660047908506447182171824138842126559311126087146910417965831216717009108142761515395686910332780264328653839747633798832898278726296790065491685474537528629829279243415585066034661151619384433060545889295129489243537406464858591615597982656206338153687578411954396296189247736847335217451037421931852736235632793330007417665054067348665162908090011625024791782394342757554774985172075558337550586319210136135570662960368863022859911371964254890291616334632125803165335911547343152330729000607490277084586088527659627725063471646977595478749822613300848858146666720293035622111760132182666834267331710305595434050181808550330592034501461928138962155644793851165741688069151679338271348211848318174461010566890060537988881636420371720794364881244906853787479266618185812766282105966732496318658887983654505692208673833937217280317876114430859829371841735271594558220248440487362660154890026064808764100123894402379700223517754638279215437140482895707349516143344888646149330546879277529798369518967910611475241683007821175813931192306656442741237151909033097481415033702149639319712321717280989202427414427852107553686699750592791310259322179924107312951720223231141963241801514750310273107844852291965821162048123823589252291428217529714085827009438019146660675239113949159903574288130958900403078287386532986176785182711231836176198442312800133497210862988580612758419319951748775538848313015536515751720644463692174651103933443461053520311324717141179388043164942361584617373587269367185361046492653725746501872404784998189607150741634110731311275686566735257978846809259845427130607345960642608978670797492716398723392639153084792442222202715068408280853317007158356714913079409622988140743429140746258221931466361439339166614982476964691349235778604216200021983545428449449701858644756200635658080517415855842724049166008817257467032635549809219742268253697694270918661142334126604773873152743882580544539821362024208957761580942514962116013358804256958852385518474282200198054288534831620024846179146766843103740319785779957548570896749415998960021472216815005550519920849058571477203028300654268500652831066035826780106869265296880810236754608760483893126025966364858834950339553411892680147299606904856386790500569745993860544981768597598493713139533361713354399069978018869943329220983859866799614526512177375435935820323376396782073637178772179758739379055253022731869092118339760054559226138516342894224271671091358458424000652514191401891545961909971929678514543238736302430978029569055340821469404155411381328878042949606463665501082066131108212921935810355977250054978355638767941750710366232173052506863900395445805591885720703831226556265663631852418054991991809741867567657170227603876338033658928385093102391273160439243714044790336261091093259642656718580408721196659370248417029336141852594147607468090612209515911695652932493044686709674720719823076161802887034531122603223360394771682331984221965937106919523686717681214983467511519574875158251647450271957543038240932332454458129358172102638538995441027202270633569909709935523688896941081024780511364017116481843858908549716636005650965646773799994115762886046552712812878303612437050059635047585105256353979547088156504788255706489133655364545013547468733585884115302074955030629280599141382185169376740878625912578906758005518867359257637185054856375343726512292140010110710047214659104256077920998065014998116349646408216687676417712172100333817115577737513965333996075474308766948716029579196951317719735189081197172105097701928374729247831079454710243997037651746937532655579355552546122851935324969252493453279221606990916426186276188362945457598505219403394772383636475340939657737799994794485842568771777591703997407838888430079943187328149116882018970463256877671161691913941512721921836250611414202722661482973904233370090857027928180949031858547168960073692357364800801897974405336010675035942091555633551499608432204885072011970208376270671153442182948371717807467189942030384987957304295850666383179454190598247930365442076434553358810074910975946154523187172781713471990326472938836980626082793849220805535613965128541895458322982983507475493396440815318328925493971883857315784182740998607569004668727563221309336995091759843030356376322620700215049686084586573272590687948919595792781037223183241554272500936569863832310475886038987191825546187891683065645490785527964089167932252641645028020989053068391143194122786617421297179965094459741493291174226273795459199575346998215533996247823304547799061229556034234286889242709894673663123516963014515842460304372820273540262805370595427860168284761269683931067353014227069418468316033078346847391789747720341847820861211463695510805659697203789807854184782932282791761494588871505021514022497981220686041145400618113449439063322479177651160340705204510861821977938264694915901698225302024281303085670078144137292918037020937798987116761459129886093100036533344651952540443961038624908143126211880460182791588037903129119212968661207702753935090376077243106722001407189114331054374065037712270207824080038883802419939616183495381635525487431977683872247728747470728774541295631617406077672200174168795207377461278216882484802103786244348607457109938293653303544317541592034668290190662311357057174508010856941813983494929389775929422621959431788900424127544146715257705121172958179191464344314987686478641629353649990562526395481079737770502083268122681605173322729025816692257529771989548879852775805867167425085401181465471624159175367012924089215159946028117457880124975143698007699063110160053815549781027098126870514318560775950093181893729552806871705587516559013387279113950273281723815883087292801168786662976768533242435339231831321403373980000558950558110226397369629636003107657465482143180668253763328908876517117517847615806323581900482958808998616193889423795738974979770294708891603412803709551276481013852422593598557397070297338048047891680854217857039355056041518815633281257317084548506760681759826091395835397420443505230682967279433227394678586663161098043210340210179079870276057782242718753166282927142113902185272144827059320710461483877216116724116647967885898657751806723341563618044235573138798761998392783218728629314915450557718173045114976424224647629405688088087944018308640848370632389092286494610965339478610708431631438372739952465480927444607592460232545268545396536775132199759374807584752808166161630781566942787187996955529165701251926641096136093300852920988483736768974677605007964850665296975852526310827895968808840367894893178096409410739835294225471222831447007663624002980460770723693318904906879947454044753123251141720537819004738339967291606734096756634460507669298276718054394873420586805050411329529074416238917582220530962235490353708729423588411926218749228999424334747437877751226221127629206777553706221113306286571360948432936277883248904820553557865990278512381589317941166010388544765686947468114391552657538143328567916777364835005130570939398068299134537934977463116755151235411914092726628181770476000796966759917830941598936839761509311534128213110180000832844559312163012487354258464298047323492177521483122513930947515412315860389634122706489239151466242696911801862589750631971478106867113052468546574641801798771749536987835532670733629367520405329714914591627958932333217835759608236045353886032132917902440937853848002619337182221099968869640150213543298806447564249790590563121272608988958847333097628531922818101476979961502548765391858156118445903667690412707436371966173986729876443961121005566361482707382336918237379655522104093333443864595521630764203745229815715615132488853705411185888709065275473579425914221546823901459863210503420634220705500549421488942756402552024742555007095986730558411979552036702159939742244880528379203110362887665380377249973404430789055714223793989799361652720782086814625635952704336939239008224470079979018318775021322746012552392023746363555250924525274125222636539487939093049833475791922056893289508779628109825273860332778405644446145916190659258189641464296937938703221506247471663473833108458579189134249394953669095738161685173816221040196361810163935784553728020259434536013424699173344809134324556333406385111513793582105822380542994371572939229438318335044301385494751831692999267932702829748707985609737719678867605267198668079396942306060571817942931889789119770960837175743452229979724124398487045659305726009939352085346491244792728584644298788292233808765823097382610599675961757611458683249224341868328427755347564349434791688025123576142924039228435365444319978128197676655105727376781449816518862848615928886972634033449651842165813825463392359588798192642437215633087975497669729776602982606790581875637126301969509901866058303293522593258396315329312912721160359472302404927145819683677417644694370728202847773655422350358351050289554399320628306295093603865668896072085386681189259277669359869701287733170508917395034079167305449523392811592342243730804871227079823495193588481510423139364739782761750547743923441976201764093627456809059013558870593018595342361526212935365057139178943710416615424953407332182822387781356413863033714233630283070338294992343713178875754559438039593251469938436930742443411653382022343282619091419281498415160928320771673576771583956663626486476779735198769224621774027354108997421096334430346870296606705538721732142773847351873247292251501162955597258741049214155991530304156973511232866697546884948353100025922878873188297144702739960922297240703286296042190854834938164878207866515873956973856059130139694827363716469471753020863333210364410896098156118826823273421584234552575538830193088587874799221220521693643039982881143200173938776915325028063314447972354613724672007365027936930829317574694536460253396919372746777960710517660773307616964393689567364270602770796958904736993973756757669409877376391449044491592101667142942482013493469643083876247089066499699775401729657164738139396724444712406268515442318664602647027525749488963945137909491263171234494858356597205920209216574939488200567432138943932766164550267215987079656801338087369082953343404597212795664158505033857147041143852040440612704209053917418719561445127947203141639990447840102927118100224471122510980063215575974380280924839745479105881092931414648829058753248111229341864840068554096825201745048495037756314812822034561078452197168715453546179612195051229246009927757985888123709614939518019202181764152480046720712268994570037202626350876361697115708809971049569521892391867048797687169183657277456085667234173792075824348581492796729427738689249222180065985467781596667491397738201402259199639565852699588262525141188402765210990195804622065756675503729547604715719153384517281008496577710716599520154971036145311571759615348313666891808000780005590586650904211998013209299189867119177931254305034015927029491898288944604418974939187946604085455669373424079886624732417119486130773850294000459790496348641256268310945592376646685925427202546130068513938789729634979219052480595845844755185437922682336917921583063497178507965441383014828844644246278808980304204899494049217347915373957609197406091433376131640529702965493811364099943166109500628724488615443470076220296301869050691685633204158974969077264040527566231266272898425437905640777026618624790247830428544028568134163933256802180649881759151313070703027709669358845465853941714949687242074289901769703445159507538181532090443026025118683294363452255498564040212988605564797232271519538618390539832991209829334867763530785367772989123048209097129253543904297579756533205956329475454799496896717421947829450756998989265280189145154244850405058594492323914433649927481519362117085453687616323978569709296442490793335243754849685782612473681043122732074509792882034226557558468788690916564843819147063227038952134664932609373276027285438231750508996913553367029404104673761017440008648282888169453900379998094403096837247284639231365785733811648023764674441021697263170425778222932014273868933850516135150266104194526513035092355288339274585319441819184732230856180079647898472023428546053596283205657350058997601562468835123939037422796988576081721827196343170385622771199418504028398554504433840065008726855429361031097903662039653900750983208784695038482902385298457112178249379652483731386347098934877810724747652202497752309715050992524665907220478136929746885973030857105418939746386684904927930973699939602108617726866826369059460529975859264699574629641252732338607207563201646878490628967002511473697463197491876130452012396113048055058767500921479111060546752114753115120898288404810119072461628376447327194949581137458633782139617534226305155170458198722605349150666348812648706309970184783783463890029614084950638411907485280438689815965637951573086725910113714204287501519098236317572219182586588937290540486086167647608618736435973318554797272397221752977277248718765563291131893365683144926962966008298527718077258924862483885383697398534422211977057411675788784158411815042433886498078601802574690812633944481681348389308222228239094887810111690729280879192085067568264064706418902819516179794006176755509705281667692209478208760334323489854576663542281833506921641473591670899466142768301074494023512962227762742583821208452699931522963690629445234509486112235877628935093492372340893526730006583841825716690599883095376701308668570016725575715535355115573457480994450514347458273039620418066958819237145603495676450569389795009145357527168353438986126929342112941852882852730143116182672011405461088113550662511100748699219152453607587520235446582338265102812413042550174880751651465608815103645779487545449767831086178978575298331168184846793003845970799716645030035586654939913144589331017197811283062500336679877808065219770124058458623381653259421733170677649221279793420053520929712049987965102227814899458720034223377002597381057730828200352042873209802348780831266263314509904815374455837809028995881635666485136437387911197900909605305696512380568010355772009817575204371123084803562671959001379367798836305286557361617729781902313369980728074082904470225636531581969110819015403064766078528329867015710575644317072120362299534455883490296328083737914463832709285627060511016885013537621832613649479201984918075373257969826530382536748833154062038930868887884016921836203142993919107630911843250262520840388286103076412364791744412967444007169081185833104867672081669712682501318065113036206346447843158722870886181648743664117761031649425808043697279885038261123479260761100041356064486047102944627548093732636773322276086350760630157513663336754336542844951682465869810776981166276395095115425139650566841939053899707573142362322872794701474260920332966767728515108128508748824000100354030315584684241133829924985331287126669626217267252982088671596640096810161654056473708362902799509266108615605585647550899928542182279115171776094930767140877793296132987600155095714826101025104821220255859358927846279316699917071780077937385311881730337870484040985486264690448296179830658944653340796407599209473871595457583923449694189118982888321485327179895950812567947001686537801246028164459112335962314152264519909834396660539566721724697476087777243275145399999205733106694686747409225836259884485224843954551480041714182365516007393177327625665710512666512490252996013582033037921852047610104256248954918478866384999285528184822481488333911424708328957813651453583634241487513605130642107214935081866458750840938362926210288899501758402888294717531834256626576634091482233737050105442154231066685344267522301355394686796341216571050536040890455375451283827661746723553910878779557261252451690642702594696252286460706273328300455947345826266722484190618132989676598735040738774243349204013361812123037607340620019549811067518772961130824354123963738181740136854831044038231398766922387666761265918927261583072789784039566883513946870967499418236366921675352054578161399592761065410368748722736216336649871241935061165370529237106697950759092675553389915183678273156352605115984578724998022849380031607091457485827090921362217211467825592490926346622589795357589829652265765684973789553277854004793604314065263809670896533535954881024038434776423207707749585247415185387744805270150542210334553452303613423399165509734447844939563177924896821425161347249775303931686511528828560302596850381642112381784797719409513320289101264601667291944254649941868670550773996517538776992730187238701067993341924760719256840698487037080660429595968481412258393971859365031339033473364106343121631192056935889244256337586144096580602363014945743861767993774460935641011936445839496119290332884925523604951224008453672484732754869861256184826671666426677632506073524110735577663606397820493804928188354642386176646931829757187212020230387923131836889168672510058198036737702419700894331114087465398778094813155010277326157267125683669782874633575704594849956252050509718065074816420497779918066107833487170853266304148417526883459320739789550927413536245079730545512842391455793894776275780225687288839455922963158576494320504420167090652032641331687482962052463183509189032859083926492034928105405522540491767250338681713088030582270480923315245659169689615637753741972462582266360814243154621333335162972728797022565324600877138321265004103771123608758717817668691697961642936427810269626907446157505163232430327096323050023358354849572699539690311854268490211987083346068014467373351038055841517394662842658054648483275137678531192310069421964986221721216047431478098814597935329463907572095515195897794382463053360529196543806288588106000886986138241794784779313737781981761927631876596856007697860067057008245664112321244934075460124001842089383562566008672682697826713953512173113258302274139036819422586479594850097139206682241926586830592978716703450362476704184140341404125934245334371227263809526089414723902178180251474218897115624547399700712282474199000301132530222460365482272314173443521647523468467774692198664719866274600973363714029969601280000400264386478664524102205564308992314934896973670699600585078998735149222397762131754893156484787130875963029100020779015856778025630891868112182870291986011426457477886555424581640061220528859311188518985441456140724220497214599523315294821921498487584099902220464316053847090222218327604204012012285683357181819087297194218445917709359096180719899231724221772952926846458587306282003644648364269663711916276302287785184953552936615558610231716613595735310707104704144994810287581363176228172971583723626429551827417760738222087419208871272922845510341749746074991874093363837729169164310420715073534318430023673014206451942675235895261475861393071272220015362807842203161799942649149572616699264951431029396428552242818547296473349950157936191281240929396660511455716954390807772943061685051743046049694862884299731884891818669639239874370229681173800456595208715491424195320711136764092709780234321706685680285245163638437707401656780012567677210111919959535883968283365046509703917972183700834669066601614070176836298312192038712884941187057536607487650296001017251493769421303046167999359792674594976591453635081824705812982288737229486867934034730828205771880773862021457611041590756147415120287821310141136449802383261786414905526517708086318234457402762675013746296024673919059744634202565351038096332162027626634739115009182204292193104000576338801277786864287773345325396549289876120961472456125861530746124360219907071982556981840059390473166255240095470669575843511831272734809487493470579705035170629028190949149164717622788037565416959314019926573424630544873988197370544535026420774091079097539827979968040937816511668817019936843082188987885342357742590274117904632438949633000777369667780813770366901399215061671749509543327109776016904450754678721690899392733438689150460483312620102697976978227726772127283786057625416097886825642096309928487338724754088018230851732810277769779199258927299908470643561579179866000773529732991449935957566396422159908965803673123719398238696351678638843392708641176793089701638294297963991932140247405320557214922671323942062247897303601942862508662144504727636577496368222060073535208921062262215092780575894930945391550249615860952037555578079272487124390411386643781497134452664317949323064026719572384353410380600700283144748428891802169095160480195151373275447217487155676758323808814575488981360467014638127317674005283845853156403347017358050486450225106089879788574820457674783395115243323879880736713383579083809346662201113691969517943180894160987901135351379726774667641456714222804677425102321688713014719900326454989788390163890042286181784888967826651548641316633250653498708962998698787197574326653771189148303140206893473425962085559699303774833591315204936424875215878167152058182030543026929539423468401314049303424969926561211687943684824947729237819925458741157336262055687588421919452661257718055260557369411271429790640528831656239447914307196999173446840469007067485060268892152978789332100924813336731628421580925786812773958380593772438800506053788449357276841373728229475953421132706696918929898036720323095399366397187543480805959747643214142484768584109446225322067189796891937487986678589230839129672262634823904569549974263200403183649650107924614545730236818415919195567525903303180656455509944038335227585329989218876999677743401333128644374225076292134515779606896685122039408731746738413580075348517032019958158663886709309626329609381479126823992500409379907033033184626825239288674989568233916252924695639876348693387942843862632707260687175584482781438894902562604387537192142894218579465374691005021216171067921965804598784622683887958534410754210112536390251145627744917786687965597859333262257710314930601791707860521451615817406436075856601142323371484991375539474890140512512147079862498782272599968153522387902130566966771620257828038481321814458360223406100354840582656863674849076968063427663493238649542879800128128386747638103088814683020262010152859921666894589787759333481121557190378083348814080904232645372035625015370056049401682155850841210392955280387397135499599722934806678193029342720926909187630643485579881485205372360893509211470856456010310263409483272865462876651346503612706332052183683568968589831219465081579156972640818757724017325263809675056002982823519905976804751319547335357159156494920160804285377510922076996711134122180233579137901755652372965620552739551769891409553139469682656766908003396106137185090063690959073277536391178029607291532509042312644950520360488442244534281581757264883705566108336323604905638097526489465612666863100609600571377281602594927729162174616699265100973998875917109253217323089564155100541420703272088144136236311652481534886031410205583194941610791083150310245604428779422250850707693534223148971800931188674624140906517267002585977233734273141902222540244370473575826228319441240711794062676911729037553469228963828964836080141058074730234647403487746789050123849609655627994612322772626744350783966866254378358604289660298034931891879284713781395248922876739428344829953104881004730850879624261853712509160288774770004134080415878418922807636219309654057746655091819931514662897253679045862045690541090610897101572199146845387605451385778588622139794953390137521426484798822472009945557762084506823848498013253827685241617862742309656776685426564590154838727189188026490590483612240409399697637107802734970081301386278718924659271284544400464393560753084934458677651029765123105304877691193295697110550095282676176050677419222690779679573671424404928870861316969039777552860750013253609280294721312268181407948267719284251329995740078235983656575797794177860875650181149218876298284107668475896384860932639176368168691603535484452964830125431336319688367470886355247665605934559237726859910090632301250126115276423377493034648842980844946999572139128021324508281832727405894776869651183398298509799179241564179464522328720464720352451176662372945562141151321636608648138206852199270884357020051965002994086071739462507781150075610553006755762044185000662776457633364271576173367407743051344220260629211738355640698542485018170039220230526534857834081184192973643627822504942427602790386948516959782398903622850680438450070650922646791537273327010914024092620121328963797723546524125446288178189163861491186999037226124185827622268611571662517501519801729971607418875442035232054547621771282608748363602405533941604329042010163328928410455681605163804283783983183542361884823558918900210978131396671527237110261043023275244851256621707404457496859094582388388072862432184455332758811356133070361001326365935243360031387809360793085815097113320929746878652184278494585030971602144234572858754760522698606494455339579262854401076012736839633494738515465751316743429315685063052998430603178098900080824532190399071287047361067449171909445343585133874718597278946812991887933087406800439202235521534724924263275255081681278312133510458220147259455972783057587916168662034061842001247459605150824292860837571266495605604446312635992683005561923050511127880364088343483230428310259638103394490474982328118445103492910370572073854104744078310849825377569743989646920138116468744235659708562904267158210225043356342941511434346942217205001357047623995203486522663481681500797620810346704202527944881799930448635037129816307695404122167969411038420299928592810154881066865470360153550107913392225559183040306447557270726560552881198846366663681476835369416401027918255041551616340790330581893008877655079745576400615220677034478737516934132744319236850675869068912805606128920256745063841935306756868188513263483329833969817107270522436855525906520416509714021800882592680244112094339211986851367970445618598576890301435185922287945826776960339546841864316950567072489142306316408014598369438701132928492731094058845654418007618011436805195996183872192185807823349411911985531420551907759064943750542278204245174133948388378697137922400656938493234793029253052489540214526934353028999102048412683254841625042210224328954991183491850318213017427174987308936921294948370130668183882130872756747581229389179689985506010594792951516804416018728222583663923758759034802295251600339725068115603710074450453333771821852787794814244511780564643375504844383953467368694847719255862856637083952874481454925073965479497172267888633190253709361492607806086489323519815863652558262767411201167482861398390651644518773233754343934968805082461386219430693453222329029276801294559605823582258647687032626948307944034274843175883475353627370335311991645573315314377894402729581030952798785635063574067184571448790958111033019165286826677137063713958578425203541923966040326290364855303953533287047982757049816496656342327623584778194139767898686517457758690073491029579285910659674807421913407716017254078923762223995724787326890607318566778289394207521718261643197805925592849079810430744989508641916513830587084557823053473672828474032361175711330066702405247038613460516463461923323009612399620435113992893952464643519058172467277193895366388530516817642721479749475835769333847489294307358526940230031865280618250615112676840212339324360916517764641761495879808652044272418178896875605484199412246440286209277688464970895025954406407770487946131663835195720974344692756581536321388135858997563076281183676103894759082562637641087191200720542364697383935128709201185609092688270056860600659438487477991040662246418272212619172304368531051352133313431287758779146754758232406060598123775099773405861656086955578650197685421342781000638037761380580112376261060652779457176303569356315033878328942620106998665571341231418258645228242718473191562842240612023953030971744982200258783951768804473474559819878332110466261271266216315496511742579739353401540961444687006320117467147014171319584680418524468730922946663671050564411018269299827961550193599235136301161287952757379945790489851815729143471356304244169881450358377131323588272597655725406036814679630886483022447957055680201102924442760467940550851385493322894726601082773237120464754391538088340429219465438441620068219527200565234182625481695970839438971816302645073596608099344609026578573147243608290632689013328703634295610205597777278515847723845796887529984920689526006149336537611107760378651365217028008440300883906432273032673044215754418635611882320487950861862129312101443704522367139737761228067617263102522088534765821184103097431716601525261976439418581150539085461709803375592310938207444089064551371000961777163547300545534045414223476050155609993306477079604163027084590566743684364649853032093544964314284975448686301018463139287070134339037565408186788716988043388515405059947771824035642216168667645533870488346322830515018177971194201409824012400411661171096659267815604463330175118711120053931454882085015636236113247989957978521505688054761035802895390663479775385192674677590772332642990136434563816575816636811145297641966408690339175459843512555906061055507920140301767883683662042486055405168359913036791934717242229801300200449483372591590829155381441034646843620169742569596821368599706579731465147032834957203958452954066482736892930512823824860137735566463311177375693819744617975683090074308038639501553549770582240340168240138074274981989048341956666235404467124768533368212594104374417913031266320258648416452111235852912699530343089044041235791869616501412968454627941616240424574887644943559324197812246655457537572496591239885166239350578730737697423453361710981746112065165855331711899115609008690792344913488051713391031537554805287642256786438101914982711558062396886201440985938812836843134685538134226602431006583418773596507612656785055615615359130825890234739303772644144671649997557320965469894498854061535910818674882205765079656019804357551776761217859524430990131181677429249977025790765512855384726839019602140535964532890026376134150988873811992115730105664079602588675603147305605610386536118667543218061568868937049043948836146100000990620673151888444082604287378279983281675867471088634599797355617932145425832484942622529349822704077738981595831528147008768048479294274392660374910308081266372259151752279525135990782140029034819648950991429819975686562994567442582342159201231746528411354746893888987490908439047643242214601371672153811986228579076988860796067655055945788649083451823149290107609356735426338352244025956140258953781898046635839122156103077558427797625092069376756776882391749159607591540622931412647441014770668679128914121106227956932789504926835002673817432880821261548235954618404854059523642679233055986896705351443621929270024301930688524144703662645947338119681320034275244377980810657717704827592983988207150815775997070795763535899244967528239863067684608195548294570817367297583180907647856020976269049770820220556905595373759542877573325475001681175452975509069109762991558352048202172269159018004176383820409007317021322361726429708999270996197926458069898725854724892505028259689373974456358148419304600008868919549897131854097698569314922233017379555567656129612580464478327284461032527772410624859026075854993377101873113082358524395342137547387759780080104833568081903512616655649905833680073668139278539272883884274233944431466110676685687735487077669502195152801362600970800147210233959777397943826983329342214734019817685265348942158166404394350221175316412055244883353364066852257458337137227464747947929520060536733965717896895689361769956249295001933877634326419079808519826128535517231162839481245280869800040561411186685840089383163547466327352327064687708017834619084959512692043689481704075756233222972618589641164535651612691376242255614825116130500356443225833462728110249902295693189749514738810141251486108841763854899090397658486750267841130975782365029380517343125848921608640692138670321975844791254488326188610953680968416354865904385922409699879437691904301699428133775409193131500087435605255152676297603753130805928780559660512750879666373981314535350050404987952813331748574999839402455267469307343528693603942324168225639764400341189182352162464412786371393804700152709549372173734320419497398291390687779742985463577782044611286386643879224681392370083390673418771290385898540544128611647028998979709594303767626560361410322312799474622946801802464589884687350163477374127048639861578071201558334270760944086680624327932685982146267362626534396236533629832991107118561422870176970942577379895016233842915744682307016061439802174498739757903884135351819486602266708298144653235296775298585873590478917043811276045389912909258510927393921384325508450683719616825145673742954295866937322866214390516205055429913475867730066963097361646140512306271271093074567884098837744749489082422651998112459879285352056724642758024766389962816280061952509382415458960198629740643340367320071337494911581736807298906887950085718382910587094312988092305507611028059763465727507337499046166338869794518722678995832857098091031066857554731899993200210572351000291045007317546895572034730886315615362483761943655373418770845475019561617881229198629295340326397865718761407026045583762873421818797258583556439208140893888092127695299858822637222635964652535719660768050692866248355368689896511589958370096739515498099994079889730440109998098488651905145842435359456241281126443441052427100824568410347931119535924932692171042250015149493109135052490171056426769675456590873027397064955122110254261623553633024608125090533607223035897420963796262310787085075408201703791226594292134313323482088311819942809165730413212990281229927403172721776616533414954826257017673669148051847765043997028501185538028198591268799037210214030627620204387026255453389338322540601215353681896547828690471985441384941657051700236280314206860910564272570128515153013056163910049061933981103429037017525813477925266621888385997162145277403380912390342554085650023303706107411479408988819772268693410762889581918724395342626635498799558492092429538330663031165682166922996119452623745343093213682451536423919150109718752436267096948773014621517165535489195619874756560149483627506870324703528797219579715814013401780525292143227148839274314900519254188687013523920737348085772758180595329422445549910809282019818075117750909282481680463564071461113095147760992632539729083136357394067208841160037369897469672604972933844932115966149590968681245622243279113442517838730644460705463531141808003511817305951462958476870852851849708554948754738760120844220596701979319525488763209362484500272029301913175078449821521924760278422054828849162033102436426570661958586027006219228183688255130929817402615027987847980696242086719152910107707373796445194351515943336550971382223277463941867298733614082033450067534955744830288273022547382903122486504270276619601410324401847363784684479788552587057008119113056491753895690620445432821821590698706647188855089610358297517924237163112949405023581036442093321253021918830334524571947200433120071535569685020868629046491177774597807292450703698463318577248943473913445429570737740310906430432683040526623509299761135099249966420631359263338965294338552498490404122909463884088805692129454832790481579731803509039682401823588069721853094148546416658842700158860466980562836897226857530993697723304242880327222356967409561764450323653237502620518234838484436411507267783950492507916906345475537336860206675009634924541299278216715058727279791039074642934191334312324110339413714361499033110374015822498829634101886562420874592712773685589073484119547139178684761390705339482026455373784505478512467683352574923956704450637906777879161321717846215253430052051679604414622990405111689196825709978967316811970971162189930184669366332812777444124201879800889577766777256156246278992186812692170882088185810635586407955756495185238089535367364899639543761212974624435020804426819427748275522177712945395212660787354349727651356214313904355620687197294199744820665894981055749309438909746252748600321261821492822205784422509708622064370797360305019453448596481671485080189273780365861954341073872288328742543410574659873180366129020831307540623502246256913429909895375545475056983107625628131495347803672219080442092263645426877906616307616327225203009487699668202633861530552336965533185204114984038629179549886171148231830157203740461672761347785784606323030892907451727017848939151996176905692623698002899003822678459458389656714098443268329287700459355331616950462429427394269817050128687294014730050134379679428074046738390018178749191725960774333645033500595838744231142132539634068281885061076169146628845568395664899922067961607499351656560513623962405743632626579043605744333063802912813806221474902546244557866322056891996160667331657308227211719674931481597813379113930647465514125091230303466707250401365360062847481210232551550427203499163718627533808932953245476601581895344014532077349603716370360849291170750760836111245319505630665374494450908496688944608060489456111831186074476947288068749140939892914879417980206361751694297149393261812033449848907448865690382891204255442866142225046786677793263545732141277366518059656206515609489894582028877822781247383256781708618741054738659718727225902287351842395805450533303263992097661908772384220154879107273880734050694187912526918943982717575915941449099724146799879843186577061361490779713780155920949072441633186370724386378379566145021110144938132094053294909499906897587704941318550282005598232129829670866622008049143278590382862972595765384206315758013579291237713807162817748949707873311432871358326197389771923912487341035018543950281864221324644043821968795219194628954920916239060555017775665119273660285169542780165034881104708264901108794475191576178087207793759747915403616357282243894884310943050030642720693332473302834866208902737233247332295991642208784122389251850080428596404706995257917828889524413854203441169157082204716531393140844140395233265663910149731251870927300802769266855783462210695316516718838189524013816292310614957054972651018839199916359975155191261401421598108375986712713873194903672433022071376505490724197176451807203335163056939793908987837491935845789665575303715455287868661855702421129971115713194881054290347744077573822942088140575810891686531308741475980840875002156690083261239588096473610745679143045453059501978323783242594505020872681052469164434046649516908169797888298000935692727047688104636233387785143917878415997918937948356268774481209012796334206517897988767279448450734346277040652654409152638961344773303627196632523192297441559033669779328671389116820631095807273662969217278384609494452889632677925217890200916977560920294529125537131829145647905853852209620628208997363680828747591285708296612851426814155389763872849652260762877207689468739671403613299875001430209051336066700509188787049876475436901399590752827283021786450267251012707453338935766181644664369869917837842153369955158769184971371887069015855916373723959309054076420280481614625929381976908465683314342059420023215949147827787651367629792863671597463457017787369315742629703777166642055437549373996854512382328367774337633633939809977746323887229617364994018272110061898794816405439723832510536746913204431769234545041029842892543647164488405278688513686183489930535220824070628763835218298076074591369810145567264668241566922656170180628289497658217903301286427234444961970775064086605155640951323922291520885538460279215899782897466561178515510904067450540685628697936561046207681032725097181057095196973283610312926061422954202426551591963412224064823589465989793789452119182981728503657576477420723191639081740323506645756915690990674568161762043571154411326076188281478964693097160170431835684825940292917224218724037638985823873484782914373795642009203497663111094590308860340468108291300868333795106058924655768678500614183920264358337639683972237711175178608599908069468350656058855872381777288578949651821046320150062214857058527953600336255894358790069555105657888887272556471310954026683327505115539968076710399447685446831016423163841842359238609396394459287810959233904430044597273309919806178945578205984411628620228033808149852396656781091440207535317598783714720573068484304455321218111341373281483477428333172495214125015172451671945333838321558680768609704607400118801844229615693362655264970108561351449230780779823282011338067725859689935109452418267769551942061804393990655394467521082831511235274030703819076735870938267417146859865345118532541050585461675396799032526609854214163484046850945393715738598728717598426867550517910093676749087727999352391129899850945341776119083093930102901812857823795461118429991645187467357500520990522564104391638191214355618516036627509455628112656800667113609797658349597136869879465193922200528628390631223156972935232388552065429199755444985130543599675039058062915787491875440379874738210768086817839811898348889079035296119902313392572773756355666800417452739884039373612912182744954122509002475020066528938050036318104093244573368492486291889228839849039776361842939757927551348785089966681931498757403722674520001777202290298359750183440742036800189148898163925823923517921526253897281531427315784737225057447410384298484993083510674810065292379293201277630198983255325809164104888727590957279898423040466382652217790926765055868686803224190330484788657299174404255297374323571834212846534655472621227370592652079384431469251472448459981342724585902859096171266175372967935213932965482944901603424769412594978398196651074794555787475557103341803468501161064672652910804686970095223996666084041795380133127764888734464889318807436568331319569315433011598823025135782199597461918659181839113825760724865180948570339073096315324134705284939120091026642481003237410434388493251433528668456764943797421215780971933529058061637146406637534840174292626524670981075220616444402562188373579352744480196182158591062539352853032683056422769967286422335299627598522821756397526453020338535052656681384371791081657953920173003297483733456720756564084932109228334150315976454878251837858032914717395373849647059778459883578713145259127197504980449101980205410266281440400165034003880143610041335997399917986518597475953822567934115420209479017967776628128031963863662114967122410116143069760509920699092406915256290805938342959607337059942836047499082833872916477273813603260263018230147509326110388597110355126722622999063005742064517699557356921466061132597032065804865110169318806828418738545174574288660305111000499950980634409398623049871896047998035785798985706849058460876818325779429427188586571356754847066941980310461832097509787489434893931642896045923242396483137189700859530111280696606551206450823530768646811007387564901940698629095490565861073590359918851578424084584517810321074151337690223050372852133019722716909612973347060497351329987591763412037610372307546133102252184749665307623116407680138908709932126845083664418315202344503905412399727436911640354189024877920214366508027075499128366748567860310208916597673339117417278862153016909720382361806041036340888738185609050752496474701294967096797361748938852224493724204172611241999622003687160942980214405852427712474279519786401110934679319985989379559074066171872487226356742366773725178916487258554308969693753637203900852663097038132750628232913190132697126331870161657125336835322844612495436649571035784946892088397731863218139728045532373344944577048956965747009922404406776923218607829278141606331935583180820552721634669387190776054845290054067706419749193074587964840362494478941844473622703991864768644904750016468788462585499625657806883804833428838926070769375728370466927931707863992762772791713728079454862395774749229530730768521506298798330760238979689865758436075811356803174298070964258634937537370030260015768039144658524032321357203226138800593760164951211481803067833525143098542271152885371367140150627105593958255480529532783388504770543331836753232648326292112924465113033744803642722407946849577154340339388322366173297103780233080355173285462255808839157342490207931882141400374813974503585703604907032706041319113823398633278767832396008239423577459322258709960540632609084789482278218402230760349152907329023614735019228084004452100141040048813540102843603523679649660216219290247034941696413744581946393919346552308897484710563150917878895376000510551805816611083922058628613448739720193333433361806166932836408325163765455363263151758176751543937044595787957466949657762739260865184159517162738928454912771480558746080818250533417540438860350303078794753687960694464069963489931218791901409457759886092875199160037143157146387571640779752250826786581423273387829354601928786490550854313097142907942366050039880977178504031012433110462983596211929658352278120750337754049123706016736671742839433412283500466525594821822073862853326839905877085033599799121829744934072586660382660802705255073391753654635783021114034227879985530170846124712770440673169850732903396845952489884133991676965816577641183478801249001829803266133648024212673897177814280395336103383633852390453037323482981843709265676615000644221555130922078626123492500577973558595608150829039691137914319981010784819901945897996234432920971701871767652765394938795879163626694322563967953775087807086982060834773745865947113729509865253802074817112772117650201538040100549922032740453555433987410623720219280808944268550105514673845218591459658179695576035060204663660894490699345892174189088234914669136128284112219179465142098670627975177225651345275689085661053511189640252314122941853841532165800474138828448845224903471334567652855210110405585658694885556739394006613964338088177746833172008434688045442004685374663205869620260014387532143701534036211805339960411982610664423066523601371600602522367388626507136181310307848896502909081081738449491599352722310341503574684861662823992633886313875434668292581830405670449879279457239300369312573392594910982697749023387285024843530981261477457478523604204057983792873250370248872692995185034810971898677103480449114189311702081528588319093920421490303968871580795835958928615481256446769116834030620170754745330638239523322893898724425759886296105336619286132792069830250668554566030727728078705920078787063624090647578499991044733055587264000674902939620568250529943284627959619716167374989554973244985262919609352082198393381018217656475145950114195203068862386860492839808176177102350485526273288985896432249931153862013416839985563284486418723560973367863944828500440966941790942553975037391534819217523332240405539301340574884628686435116906670561804519286935039561835733636447934240857556113072609331192795334863778838516183029047833241683477400861765968299713182003902190331212738988499680512413369089619229185469142454171456617203732832645240211940929493647058711518538780031436276576845051946916191581499752498990264760598142533924775042835830130285701895740168316732254318676231536125204102633790289944108527455210686313365039859440602955330018156336362634120709591349870894203787787147117204370551578684220338893208574684692024800593608029786764507681785920745241728553916898956470091843940307651641314325776542803867976510127277096562243562085183054215930016907888093580645589422029456174956072174274333814973934364413334937640041514904929239469583301913947977443395381358307423547029980849353472963810610038894705274175456259772299895428165352251500760025321470400659265568416467109007354157928984406348255564475167121747371622734849189097784201872647861873320905653467264227737283754648930265281464493269801951402679092649207671644161886146301054798094424887053836118521171779609227260819372329533322333796377661332444984215293721555404511694903506009870443546472434968919083055052017128251765131762470966182323459791121615495409028141535933519562988555692118042690300950885455083126091144771269737429830505690360403003512210820298362518728041524152852257027702036796098567107520831765631375725684783049438787007900427553781884198488044938472013873247647924135349157209533328197814497648895796111211966771074488839137093271478256059302146052112090118562680672824902472944776681569360374896185892837644886121909169309476560479744013716474660415143713098834266934325372418909154292756907925079042892852888963964484166298462273262832074553190275793420173692235152069650396417768966280451669551567934638166001015224093381505701960437325413394600792722220429005159152865079960710789880689790638662743308725310660325535231800109861220478570723530002108785775601647098693516854434858395969125320246310534757229856018813066269391420584565278878636762534000324930824952696196857493095740937335748752677924901200561836490286309496805190411276009800915178860927490328898525939675474240828928161050610145975486849399591361573126755667409901997254623608673898597181752232647310449149199720477973816299126078634553640225711466239846116359085393808769399760900401449706732915128049547754287122945556503154470786292366915967180413018792330587398321558149702350943766053559970979732579959511697054470290545396556693586014603745600330993971725695111055493733032188651787314732172890620756862152535285247819966749905385944866517009058736147196834318002938010871598808016736263681779257711786960157703269340472698060845185790552236201764561402020390206215387266784289003898700932868565105352809104916445381933951841990041232828233963638623596961556053600245258314622433845557929512086803691369625741968542958352607188956307601729547990677867523286619287987771236455786138002028026917533932838156828949946032451039431171705312354347174591885298176150273354621821993759395884236059240868528292429659101623626534235680861749222571920537405711743871302416088122654262500513862609194861839017516320405864742171544061505936259245955317035374964029237265311779058427741232105605117938209786832962579973113539365937319210054015482549621095348249037292828899921838593574978308253786529259217716251498496233978094363568151534659049486966485362334880698611723783067058783849371363401730316219633704270404438902314334173305230476471581760060875117160856218260238748277204365248421361043420423417085464731402500459449682928920861430085770897078129241160734398349923948441034364810855593118807990660461490594558511450641829488452624751335003624445647578211547009228551085452287021973552805745740072106341633206175033352278137119128699282132481202473758110521933318304530441750529773578866007112152187149247434353834327785910929680447777371597037893315011928489118376434367176298171272396050109662973308545144908868141820075673596285463872622054715184136398928086607091307938582198509950429131163167949081924010725517405077883355292190160208525109740408214062709441540971994163766107281784172948063561576765107284335046331031002592581282859754209216927092175235849393130071727250944971730802967227421045071447731671811657601964144014858198074650512460335565385074641052926434232465804845304053867301710071795435621700250354703343687923804116676336293509269927582242166317131957508891851249555414494274414187305457792166385632786431113029985737607402492250465326929574076449833317908341851764204693002778383216966666448307508992090407801840843467560555599363405085355196568656692522967310608982756945260100905496722969610807233420371181585637499777018460284390551802479077852584255101610873139685725686728441149967163975955575714610407821518753665425248545783866665247509506714522137043176137839643698429864793294156417344295269255440221395935863117962355014874756335629535143039767409561925688456923789934730658825490076374842809391224627416001168943276623909729003429208396446112022302977075337543905298697240345616749344413272754679967172482463947274354005903247968275782422026469517037231276944698086816373025127063104078935877060347366544729856172776057563845356478996660967692503711283852328598265279926335869090406716662308614718207397424132428863896314971094075421763803862447389944011279882054954074301103987728540937613817670046020803982943603894712299481072628286931800737794682038465104684627094387013143881238017021087376257682167822384899083444645408685602065323471049704510242300642427986057712892530287435310393211478699867816533367435580788412821798866688451714275522432702546323674369922689786286458772928200547212949205318760927826789896477661353704534918312900095226885917942404862985750286412142632342266178277516312410652759739099821732009458097794012188222124828440553123952571814381466070481104187605098600323568006840370548160158381458681129535767950146702292912008076139121807972814997520467097439881307502183972545887571186286997873580664011627998037385303962463199719653413837862575854912101815790991406637803978483460035612424673618005868168679349384625372647706719823427179456318683571796599317565011354115830581696911540161051853183746708252159396560476010480294598241091694845878285388451900650300309599614189611517488997488260817307738502209234721113167128719825526058403959682638778015269142614719615310244257377683514250497612690010718540313766590430516937913581559920317147145301928468662898901454174002628822512458000434218724181120043940568230420593450229493638574966726054732037193621839117662507543390194696397690371250048594715341687806901228024850873527250138493612696457132103779157006640201866030414403588626182637037919751644263290020316107063981495357466971597178006590504444197371613134431361593967193305314287896442501342333625882372818306391843816580463527913075860487288791948718291993612964593685436877712485066560891616588833400687978613230956952989199126065816515249127770127429118224507807236525247280540396928074520630889055621485276574665426929623278087977435627299405027303561073706755841918546880206462454974930535228726214260164366865933505047834824045408937873657906824657106259553798034409587463142358703566056790297125708666194615477821761644749840968555137688872881861101265607960194840283827326959898176629923657565928841869660772036216722883967859830976917015869707360584918857125788708859838945811222328778039420819690995521808697051585214631268601376347488578138345181745322413490137949474478875772515501882210445850144182724027242601313266789397925930665816349513271822507272262756420037960087118775947080698499673959386502049795536910335472317777751672724670864756825743532527279082866547817303033989447726765157724529029117665210570407397841216128945257810644387141040185032501422817627564270445839143935527288243409794281775039294884970146712230284792735628093432023134768388820020874738892364463134944450952703348536096976537122250787177701420663338417670525293352206973199149336214820414263256867730099488284122140469079162201640043856377444308716669698685747762020115687600842264533993959449273984327813673937858081436966494063267854136947318426215920068228021410519637435135413502034239478792856309694433468515157633656890664808454145145123980876248184688062179422137106128615189145244877505043393685087776418865788889185078804926406153254342268148213652991432826749538445355441536683961052563425029430822796065335481464293312219298250218377326370714967041994938849135872134294151117628739765789805196278167390072628923820601670681021388072261785593392605529519340565400180482799352190305515294743334791542833446566931110441986968055700358907999234787687401918262978353800196606310478440059302802947828564936375949083343183890765416848742346706519017695734896996921780518626057561882997686427123532372623649569013775316828038465186936172349645982078401819126669223302884352163662536268687511968780948246773336375146811365049165746390226837761854365056106126805607174945132985631573773905396665482150386560159427741156966102504265539494796670086951324144921011331439913588559790675661658305309719712765151690834218156552194670389865898923087166654312295172275747443734977511119448671864035078001474831349862139455014027040907188364575338753961491253444518937616925375562668897799512548408150237991147630055234004253819253648688017892375464898706151542553433304515158980749028951235696535467351671729597924922249535440471595535150250382502582601096248442426206713006221134328921593280054083614371453129778278433631508385381033219817091163581394539338312018078359101952777056823033013106369971829920045229782740839554373361761676903593197491293513499446059284193458695825349493509233054417432156778904665548101567299486370704668843381273843464188872134561817293303730885865245951945622101862983418771682223625913943631584436946365231119005575689624220473265525963475686158498415603684542086262021134258789471751292310242851602183104149802724414401258043410739200814267342551734564509953475064759212702799208459052873727069433384233740229540773262878772000053388498583116112412245109221052441135699204692179796179699640054712878275649920260133059046190387209600528016264148312691613301344132366478455465947263406691029659118597740181743007948143178232965706778212877614283756852575514349577013291575034186896139874221671675117486130980867289712195932465233976482523620239527187445169142042776840070998065689912882052611207353708340199410019787686918866584571857196677652302301771333462431283564141190366321364185614911594060370428770767582277310138604404459875029669022478677501741304078474000895872293751277052342298844823875543125920861929342586538425105124681009103434549935852922282493689594670241975386210477464051818585198036312624927046962738941922877872711271246781964856628020741642083993475640572052954832808698547018924599733170377316187475051275822734688136285900582472783878191649763454258297029911256824942817157717075262185170231838446679881836464393083301208818558085452137183942833101659883877182468230938723806893630101337998537514880235748084405037734735860039289302842440235565913742134800881131919750907447641212225575049662609839404002648178010514513347893586804145291976622023896914488124441097972473361553997048343732291690822153857123980258754129721911571909714183959061135426702241610134600074472715428665840267922939128348045908915364372847946048021348516469679547245477147805535467625921666508232709208529061737104087496930225648920023765876434095592982944099685511560451291713748779618945685707738365080656146496665670448205852754864349053747822720017716723214929427280055831406081877338150682502290043356311205032959452850198087088163663090544506643942579357048714581570547868164534407171987386201831819744302472292589084451697638676348231612250699180690044874361494352183224311402116842624804693742553282937841021543446649809984846241790722829917250110862913999643398535372208505927758245898214008131367903744689017302545804964405659916451443193507414650943080943435520022161774604751766814101928532461934001597962678645553477465496195432694773449594062380451197532819191379608435162590397206224194535433818231418533540818217028901310797462122881793957422690428904849638219032214543993599556354126012418765340713838499316071975019104881050834198168306454673706225964557313071885845520696258513964194386361095894346268178830063184793260326669134722475156414482528894048902048328039256857371812818817010343195109399511694978951228474429044860765460313857319802550044372528176918606141510641099163911659250217979322970180603294275335326089043174389929030548665423320958562949104621561328028978636954651510192959080110759163161273472545976047534389736992075081096387328682374008215867078542032913233797798002786002609949835006807815312118303086515170036624655164088387066209248310646366983806932502957389293386562552946518321532560040769424321064829807376571860951621294612791812316954720402183811487603462893960612507399702499003777569419158951945353023837597333381329870261993588993679612574131460832603763523314440914695209419983260992524903514281278113290728286054613826932736239957447848785348169643665840804515716612214042067903940695437779284121781783353238783136276192490441225044758930785248413271456810746020829899682902143698995750051042504231174665984577953224129096045880313694705780066610880466154254969766270433029785611748859166022023118516589566243850738592399045202592026919973214576406911126449982582030680984866333699724914820261585196866705236330256336647265558777300537016514890925145203239225043167424673799104614322714307553636605923760233877902641398539504743817878569265184240495654935672126552164740367574169286280664880460005319603949506892647498172763038623286802726333776849780752584358806861149415757827607783776573355952971208301102287305130966520675087849293905344912055975307573604233237029532717412857314587715994263605051587428271328133727184933372472104459066000946186922757273715629904223212276703355445502941362386815647077709632273506872889409306762351442775987328477181207332931022384636442520212824634062415118157223833451490775768008074744996876657045623590294168443184962154629855060044188702945621852963027039579613848700737377229550649807533130750444169007815096702660706009665068262835505317511404613525229842825839174922014588150490994463456066852297163256965271431902323750844706665949744969285294471711023936880454443641950714950756444555830717435668393607324076020171311253978443764347049257002455385854788838623273228713285233395041534035178008791250770901465079382041331234883284955239027931592751405254185692577435320702917034855875763772487137231245242659699866957894853464702339037701544889301223595101126409272095171560371894927502604899210460195705390412449810543631199423399463658960590713488195121068348522858429483372266913680106946521417654006634480953366110093211350876208218017919209666524305317242263398509569573620188363751729345640475742736296975807097769963048994729329154753014648545240803031680997120671015832712163994459794172473838274536912929256575561948530241099921364472113008030399976027464947130583951714658197335785057786874212612062731803037190732249161283288908735549922106496395332750886211655870920421774691609663728894923973127777697029288826911620133313027013192454817416016190252105262928196618863536786495604680891960657509466459465247398643147560015002437140973989089350700685780519560217927596238871293670390216921206675266032624978202350717732850304142663152346337052527242654570890719208660390379942236639525903919440565099920059366754717593344727068770670945018098211892302867101939324935773358180729301275966243238712505970500476682772916741006654606881555470536658455696156840014053653930966567027269184335101653368436003296664887094384181869463669101676831446415824507003462118571285918829714176215422398393207563808906099334301466010978089227070699373721868400124098385277968476948691871305650281874616185802134579333466494762729623533829143824037901448286623146141508317238363489528236120344307950620470903843866210116367494367746312240136324519454928166050105051974554461468228916707082588699951954336945960400792961951426548648316613977190271529867909216970991230949348838409023840579695977197604450096884230810280787801456538422027332261389019269256181511043959532761833670924454263164014909577570835627803520191636901820819455046082589111691313293218313514615542667236323753877872063992814301295055486740480335780504651823728369640379525969801588331154472080616600570432051468561385069456097751758814974455979585411923179420063476842724843197184928762736561395323153275982416801365957079183778524101331627730959978430845399396064321469091581893879393377146728032567674977348171811846902248594636075616223037710497921996997531599904367542633675815339670810116047275384794145533033877116164611360922486174902030861499587215783885577224785643491713827489438850944136531354656467118514335233573520338034388141741541751407615594958548897614573862920450627546184175404795632248302299534956872918337638869615148114239669840944106687954059724661911093944448713721509675655069362571110348898879847434329151099688669006556710762009047553307134476894561265352917462353992591810806854074404283301537317165131791171547175279956931322664433103160391586344010676076234398463345032339360453344409693248513479746204498375521859933965623642771198154622451557969890642154093370416138975707461401962837428181137471016272451775634256532776157322996216317999085767884270456311395869006862542055957743886672157109790639017798186717544704041596302272891573030448429465266739720896005367614822904125248032573965498232328673158075391413371954109363408783742372252806810501474457155299503387792507247818369563193597026469134156669976410267483541127831484002883863113181027040976523180080133356129318985479008227167276962433745935542191021224460563969823424861501348747307988077846134108895534509459288427444354761773310216336999199545559377088482290613930202908303881942143792469794384662750891590588647350692003347478574808366660448578073531697138187024009414367328787317269745346418736695121809193708555584644827134877321460910243387649205324752929168687517310925447186696055682542652834271290220063554111278670780838910089223075149647954279967210639750980500049172552433273500933234946782276508188888167066955510820944030184496953612135558213588446944349616235270363262114761889172655837845441409653115641917642171570411869153985513289921961570329205967114034887596987774590754668248717178040011133421110680952146987012229425134647048613104886473254844997899647382516152251342559621636173534729779628324933269189718295350697179676713904998233963611517374910194205769205018922176017753808708255771210335443330180437506985005592982651129792649894008978067226513558286897498250195619035691372079049380647552543630992518781502211230797942373984881179694211792813105089905392054445823241529946386319985390768699538800466592874291189649444436267875335838589763044331402656595797844956775848296588165625962167126405301017240693713997094032413603452853620901355882529255010104978582939346074425837223381618312776495583699326074223098290026759660051336808952040442589396265433400214078872066997173352935115413802540254927314213264374845714132725411742313713683200678807360794668894209230519817132429801752041363060917775608227678697760371350487909181017613555129224330960174270665328582375880610598670230302427501671821264130591581371329580256467727918798713271488861118323181596897327887276331175023642609052645856952735149397827958935251812620607317644967539521709193601790961488208017793249156237505143369515012127714374486993259008070752280491302500386759138538834389146095133291212610821322456632848717619167546278631361519281038135315453337672692033456481943274829873905373023727529500138766330757752668091166236918684746062053915164823884757387006967467749277884169904590983096611527607491010542541295239266650910054058865365374435432372657490770682815870971545877927857028901090763302179822579200680232132376615131591551656530711644909099308528036889585447800936555741702622929956022595555409565550159178690452819502975544166597667748274208247332583385966195894537049934973821876729051721411073950032771902264826774483241914020163042664820467544284623993949724307742066523757401067016044227730638260445914807345418620108276881173774698117453341054627595661596079906434133514931509943214263406064935852658668086332026542674381216567689764208246234216097674957743899360173523471374520589911501942365474430428155477037670161038717945935311699335951860775158126263544995699776637233298178181360032667710821784627511188641798633863419855880305662225418501078870641480709679272644038778201262385035812405522895412936209173162429794099669619127528983384039201223871167025459121015180421570550869675344287433225479835513628789801804251387752398979962780238334363964151273846097392932977842990409882590425769821702872642513505788688783608381885476725816500586556799994443236732227524480721684049893071458082414442243209314850252753320156737423070384965840834717179841205851881617553844704532641814014255159235366988929593035106505282912179466243543048710560743101031222619942478932276371064664688737149573755880366012710545260580968339427884792510342801354038904741846580693653644192844549402005957728606037474195894099286585616824576054449623987419432955391521768517302412634624053479389251947333621144684297322337660694801286788932269188354134634770127185325469150447322157613161919077031257361934161675731760978483079145282536364161104390861466045508516278963450509460449691137000216817171741738179427375069155190389707959007427413967025673959515879991383863364620366404252774887215842703178084703469273479384339638288360041887606024897012098523041578647341307844060332194459203806577426790549941418174670535084730053748612590814641899540891077281525591380732351996571021641073207445791125728922055025982628057244359018601930073284865155065956772867096564033097147051193468875403479294041756793971464580546309911316424863850952898423095799020597713978017810218239458402617519191048522347534502648820734869788340193270503873036106245996506446405543275743532204794078409807317104845246600428544464187556517027255587392459001044889419175398353672605766828224017272964659438010877160525488326563736758006412733835109967004392295929858549989527957613487528985819681330170194480560305480774141581217105830636274706733133638456999068178148601480271422973218663060027022687999229378643134376385560204306271102820497396498302289601830480377239783262146041699521511691157962100652450554545609860571253638923538533190994729664099103554372138618202207443883537181248953333229504074366472936925239452664935223679381006438732635452574714628218508396677896747672701589576016577342457304915431606060392922648640921749904753867579239367788233660305851465571636814449253277067182692484444290262900169349456695087764294647117716593566159815088946903670213725572519275857507318773259017160236341909543660051295953824159451405069386699924752792150667571651057844883146803417973829629545314620111119363994539488624694856626244816774568204957770382171984502350002639636684612257065408531677779671150913769222313410362590561461205292774523700412203773933526554440981247562167149703696672199844594307240073505826927837219612459103131174639499325953605841559204892459945050548329614757061675218885549393139711362811839715015532026329643134333308455068731258720677690055948301369996122813940990709894673051372909773055509005951232314792212996285999341215680740604612749247121594307739470998901424985117694112016670527020299003508814758975536871463273252120445940460036719671758475848012118134064767268138879958564675234560730543905234873509476661931744283957101480060712116636884030475377801370837483773627260277285708827444748617563398928443455230487571920267361108456850370012752686056370811020446551492608822916700046844040819628126303714535462230424363633760543941889058957131396216132342838518992566348905359012921828728495378000083279702332286292742410446003815851473090952167066105555423017282522844781945983165040673842634867252153351996238086411876844783152050817011082247668956309704285291298472916162678153634189858554511654444509022284302281264987561517711501026888601777433573611812020316003307747391633467105835046776023912116304205385297470208929649286854935618810218079645445571239254985596265021878127184313332307504757586781474772049121276494058085868925627018219108793804698235424303376927077704212191783337710004445028137923273018128467276602019673294002510212873606589924048999075263336755338984276457349396327928390439287626515276773364897701376861425179927214704883406718496130626168798472367841776731320392478374469024807325505558506851080033121841681439118584739871466327578449489557664439798911022438271202112342855297979714023491381606854335318651744208017171615006374796355077743976813553898031951848069079488092311710557997987693978515622317536416359640340705153717108933808424087130606990798765819306572583362652975081651488661729609826151291693925859620384522931185244685651199406225724532998092587031132194372375878932254168267337252657241753615756387155732949360034316686949746552256215974046385134990534191187470053942605850870385125059070753503636898195957924049784912648109104039790004633833664997862232558373553129842280730973523276749954183150581359745182241008987345638161501334706077256824613729372642523982575368171898809430863237338103842795736713261581392991682749707026718388072828342625902510206371946891241204107744139630398997706295950821962188615469497401404343668240539723812357892179227117456110119693841271034279935788894511123704109156881630218659379213341450244067272867063156354302408583246698059013807105993021321986865477074967209533082463069339399262902415812858196566760433745576738821107890943820340027602543518568735275691739499098242006274603691260418337217601213771344157843486101946371939630785014018934177509227449143385692754521403238854608955084352633213102192198266817218125475211110677458033591964105982882332415649153334375308063612908702486558231338364820514263057995383722333206524732051151372323363732570967407883217892983630920901308055441902904664813002648803172850040349584040168173644619940381540879129398500324511065136188418487774433649452133799658104218196957431352670913357530378386552565289368378273002465976512880345998196314400967123242525406333384107482492795032966094921640940911347851711138412115631069128955403451880883492262771527583159007658189041407151703135545244623843677926271527993011618316350191323319471323887857593068085635549534774772544052142101917790506044994795348902992197931190044055650265337443261673418789185271825128440102082296093551701404162759557469835904693202815097165116093459423579175843796286018990223780283302557008475529009730539581383515328998386399153405877354382154237767247623084931206749245186216092909556504793060408362253592069657305316939770625373238794208035065654103667403717423612159275542884284062817788062162578217925438171477642479649385832253517102640855086659786849352133056896051162924447365685098357829340525386932536406500811217944705688325351975632450542587062970067735244955432941776916533837740514984107898856985333970180637606416487876113389870082684049263966078945349893540346803002673439781771698181984797477478248103082166175649511936526441964974096820744954311762567981856124952363294063425262774813293699636844146103998610839662286682975260845878845757888394772494164547279042187868441907428167711185587679364114196682566633872470036429803874443636763260569907149095232337509858156095286137003024634515186091589549007088129989886014222662037754463272640897342374062829666702245861483647658010874316380233162325449927184477949686554542292864432473613006991404529212245402193612631294153676869702067564043192939907182900927568692753754846551610055436509255589848648033979118258707100821431392136170776941477892580129350889947325231355407171637149975147190886549247736799292530697600752965736160224792976149086700590803068403558760055636143184729956415368758471602079752347894953964476196337332317940980360484563379704246214106507454950537248001749582716008938131186983381609894157872549198221526087881255561683251036747936655587562310969932371154931375640611325932908477364296671986133582611143850992315195498889842013205201786688623018920424762195611245410268818045186452641023984766725615153259960534494043205014559330625107333135017690911946623748443931670157309991102215536700567945367307995786081621129121256797427396530718841380169536455888313343696360916133729624145602146716803036032238340572985432113715754060928403689259583250623624108018988570044951358523421321523147337146275850237733203313784511189375884331741159335155439939745778622385355227630518253105938333451269871105667959065874800397237928903014768165967966449504215803318597779739443318102134661369601884493370978695550076437946992757098663789238849868452797627636209683595569408400715096162388495813086553371855078556852642896080013604891148014205552088938543291534706524173263104899418851017179263330838949335138757202974415011306116615382217099298043508788034369313907254113172374055276468673019283508407358158211831513305122111113492575724348949639776067558809729822618047841972710337418281474962157842987808062678563918671156590103551402914876386923048342900476755773527735287162141823671642697998105849519207175073441189326265489904547272541330973619047039021054845179509777270530231439204165018884231050686963789383455322249214607319571576595118353845455490268945276185170913339238160708662258741465800851935154358123197685843962857257771390370836206574449201577497142312001415817923483828208619680350448124006764309589624260146627611424579113679921191256359728657385007572458157982708585186112524472242859056046886240422601543403736624405935866006869106279841992948398332798312625058683577665527948930815986844292343683080292264365633768039656886889899363547347828971858689461487742571291989368495222811956898272474549035879687543393531200814738343914959307962972376805474977699855326436675317004290158866350676019015061132077982641347330424994824449917896761422272462693356065711670270421025775608113571221395498109091367652518956288163492613438870746418341395644286840766164118166782990517200804249071859125767836305738455194289899029215534397521738802038897303766112816891082136404841975091578319350032160527576412725865533933170304120162864440034426081883914315719092689308665656329924316923885797953051441087132244119427572777264561202482110703134197114140208099351525024387800258478506861080885990524658084379918731612056442878292922734974616981000304454070588544118111907551660350016190240603068611013847823389950594882546062664458042091421905190770285112882474686509607499277540807487752695398276970245320002605928035715151180838767163130850266674227173177829542391140684876973668106047056653182062755393107853941222143444464130871460177410639927385061330188452522764527213993076023946460428209616794349567235460237216608271458606839357157552555010105603681272450043749357090207807174324546320042493090510578922459303042472582453267943543337302700409536189916820446700935478818626161427036648994990973818234393656614817812893939944870601551436007595766869937910925419902540200582510004805916662743864962716705476176956634524954905818098999973423541807843874716481069907895446645292162901419279786199885424514440406015278518957989294043756293140555383117915486803718555701699777021399511556627359513120458723317361002468787274183234392773207746768048746464352074207085615114401351693989922711512245713273889853075312473870789608852883985342695882125910445044341931031737614001692417344708245112955666349841969887208600588857242501085700361505458765405790234121962896294068011786945325872760244238096727514260957753527995092737513002175061305915302261583129632195188418071564421793046302941570580574942045103564236928423369835190686616072433460063435131732327608795405681228702999010219819668760782641802382008404805850058483511741243507965217844370254283618536961879680001148244323245268734380118415443351901069675179746611297839192000947217873510421508427557005301521332333737736630510612940752015958453642618818570352178195585793805562424594018855736161931396159759402984823449187763344473414429661896356275091954585485757561636633403364989842062719689141020846455772718849631759682403511401465280309987264022212233384855387504425924002556998608201102229065303029078574944047128088263542122695496505155044417437961033215748949742338912185801097385941011079792279430105233939177755505811182048195914809082594574344681670434209660227505420380431374419926896500617658406900591701454842578555522634911006083819688439871899957061651782679737513942946877807117786669767183481698057458768230380510779030630772233831122499380645676317879050290597695531929999060047784816768157067472707777393745901557450728297885866107970748363657239590692902914703232904673734057393427233974636583089209047580575081194850011398522490068295589644896562124789933313389162009388956587368866303379060011847658932147020743788684766460307676933517689957638111497426492743856932278151598377966006057859304498226266309982623851898713332084725389396571740822401798066304724093691461868859786057312781919123553112438298201958283537107891327382489141909283791159923626284011173875486611831127156502829435112661309882556564470350413067862222487085019862510057808942063634212016346663006335536254717549279788177393099040747833004892520542431782626796555224228203630176453295560297878682435464028703308466261682869074514856580953281698007104447945105154888023518017925833246618083044094171676689595873883814288393043774648087613676269433766465013559378875777826197960812712838042357874030662821018756356390618543903751497490606628029427322467254651589408874234446655526515262216161358522053488568661683629956457339087998011384399564367359872488883418941761087387691430679633042268687260247219643812020367451206308154489856037197192159558993760521371239856582019218742502185448549783494789396843556112961704641582756286499400904751567415286511777996259113320941785653380586039836465371381769087156366044062511296862047703567827225837262288358143922486662027345924636045827809121473953795827968646158429955135644510258075000109928744576691062037570324390650215719639059543966909841501759297773809449823501844634970845331617757140619028438497078719343544831628523397820817049720207388629386305765242566025219658300714964602121635691200061401997335009454671310773668742778696258724962235561638029671254427026455248395423674984656881166056865618997035041297359271924615058349412648298731309544812208529975735413369749150869862719471413151510614355881222057016097529113667918570705288951162012594188900285845773710635902851508523646347877455263868342219309392384742198146816716715166409991512661475553600968467262978887925573854756218701412804271567301560851398152443409793077056435704356520447136823161138770501146717980013116114693504938428375049028458208555892860820815513760751682802424752802849493750792258521929530112093565888611395897436536197939688793994325796075860367736175818508685130933152752516720127244889447945714504156004492002509692667590161576271726482346321829278506823454987028677837967284598591624052220800824934244293657648848369952199612223848738221272537925633589478778998147224593958060940277901413415000452329727148910943470497708639173179697081260148729478700531738109239352855368731651609983700663587254256487195819705014074657864398303495194788432487592438572774791879168368190197755459110346961320332683557297665359916776258635430499360616643050437379598480275600395600327728880493614079708254335400746702110158143872619886775861968265254741934504115451486159058040078503900083653804872085726236392453656782534303233222837388875381027217986287868170639753191394037868365266844542342596383173293675297218180944690360482062877174511381144576235245838974016819802386263536500593116845107734237363036181851651915218083128070631451529516492413724682733664997339550211173483787862006041166801598309790130179086815639037540580503813152316547648543470050280687842017719085401078953480799010774985596929584426618924069498337288406885706142285957146514450559982397525469101377346269252789294243246118623714700970991883873276322340058628845904813470773522660372668956341867033693859389242965272207171699748621327718321947660228999482568893643612535974149229445171854423629742718578405988771633875804691740350617586700485938549257534756595738969113438799280426103860116541709456379514003826193206773028797974952962250837265534766299919751532154468446809170284601701983364565648999370677167835403321267393027499632958705007235009506660083901988404031202795583661196977461902949032829369375592580797655955660757563900810021697716806921060412819778187689440794449500939292842536116960423380890484538661508456524057278250386118200015906048093836683734363001627222494221648961750190932570122892304050836001305099260330120701323169407067062105171946004540717286088462785323382488070728214453999020283465418155277353157293616510824192606227663180599566117210637032549121391716647429684858626390270071250509274983311878610010729477042440433141660360328356412517531335690468988931652681053693579417189416768435154284691979840110276250064416185600492311086329592316161711757193093910135856107334826904216560212801574354164294276191718930214293783779382847178110136490103653092985861586556196143907028908583060955269024521067184350096554842060481226545957228951197622685581806601449539062841706953977985687111698361502973011655733247763538258897041136282331392059353551381697756663711368161102606838455147398804385184540727290106687525190400559311112056015352032906884553387974718766004109523674951173170402210776114573935623724670881919985637605455072755574322352435014646867639510945108033393510658506852679151584112664830243841409249079341563359833406918421290834876812860756310862054764033554285476395668023054989259046506371440845384283377495994183511636637643033180603822801207922759737531760271388973485387279752671205067807435878540714616300773181013092396883344609742097813215867874127149731017300648263537563975405471298527422752618641493088727033315072223409482586753595625006071802721129343437908092326916947820157442357759637127446090564472122890112011900844136400016151277779732923240417311139977368836011557038723461860104684904908376426913751017653485573419491850831092247659664761653731291507503874574482597654253062856106848202591413235771425259993922206022262244988633086948866942506504355041528153103986945189315506940608538071766145173550500178833860371798359582539316257228326720629060388092789220885017302204653074318324808753898128245687153495971654754063661015015379079322591801475694142749738033837282648569366119081054333998673392065470820103257572159806117383201528591285946408965153915677849541832015495319203677347639101232608826159094795005281905827175922493312860504305370627126917732164464978965567921244462364523749476143701141119889302088523613065823058231187711162716564801811581912731150368318576315288818044598870131494348293587527851144316578051342882588300936678049297509749652204857771078104618127737173084645771857149511937889370526913462993910729092717788118298925966904098420943002609006807746548980471859173474530876501535647989229528624887854489022641059303658504698164199230919313257725687105051301164091243975346031290234195657466363722812201775198969596427849608242304709794800902444320957259913470868906585973428206817720208036694978429091437792194907919884010666128429818515027811554157550096954757360767710769520510119755881943480161276709307431283236197363953032464945754894253455569373705600940078526366636109917239280382751249781313592071896893898748838052333825138570766025497553962984358881071802359569769827715006638228288075106528767247370089854151007412877942786290890849234408546689772236933751232022403447911372495002424659557768769157831962363626999105994079962713316719728313199550965887938054206188356665738942782625921824010603877674099695272088027911196631110155388943570436887541740779607924671633495753535393410881524945979719712981968004073831825269587556137652192465773311500173596153858393522683807044551981783686696582961626124429981418486089620108523447988267728258816719955070838690736386438771814941895264332796042264183304961512448027002068550497962955329179341699270982456898220031951542984900156748706467410153488320490079113190528728195841759605605702635588406688236014392279512181605407926848237720900456260423800199316659524810650564655442628192938747268433371940990901021602764296305533344090970242393309546195353083138685207609848161427208965018301426365555788921621837905902997644589923476267633296836434107639788164149433566372660979189113734382620685879640446308642755244458993161186975429462234345807533521749203844724013236368084451441642988184628805071360034407580808100652920022071749451898861791450372407535170549900135601711381319369360600100632370011336446657996861336657572359711232623857875124051194398969348839706300782441379768551038391774530782611552288839224612281088508927507307006096490594937147702830986476308053440639629929977450311753108184136912535420667833563512375042081196259063923213366227802128423312483519587027161562206041821635319181073396254705544016435620696629793843586807759362928723868544101293898458102896691498506568517011550934941587429220628588914315915937230952575020773493593010627503692619603657138659780239387763513877374440522559034368236448532206146695518159341528878007704210284162744732633797884114534036577277418314495218499368871997537463542213606670062592653355539507704236550131778180210261796872125706342312484763568226524930550050978103524625657124636001671270765972385490729526752843501146021473574851902295909213113945091152586347899756616612298481943893455589961756454495987139284630028867453679494193865218798653929727368347366118165471628714349840513563541971204931561369910760112520916704008912925500918715580257365369687064169932118469679851409612074595145844556799148632349392889609521628473097383568606127117192452439448970587634625990896898130994169485623719738031650560945700098772047541813358390857808046941066039500103316675878452181917631226335398430123920162109538317470304570215522346481566090742063590945193912797698240683040425210615113640191580201791052744405201437201628844309218455027699161467028150988929707259122162084279112494939417392755091413486294760467661546420431003848711645935815142443615420646294041069668982325443067126205909872378005307080650276252552118842015320125662427223874506381814403981728321952148650655476109320465755987053486388107488087711240008765812847216909064488950736195399296100298371420493418019242510509514393392436676140115337744512323312468924838351625432888591405419368176018538873396607368051305695204719433731999047865320557073975367358512246001159444138175043078260643385808075093043798841870079358921145831283866752904036979219026958276280324104940105542733334224078468439888414672083892523052690879572150469687307139876125179339459896713940003754826516208431614894976251891931053174573771602486935321062466734248747750544873334380246437985256779764652562732704588056581028382673487397605307723609814528505458532941188827596148339168386596660358348789255892232428622027768667568292123153106146874996819564430813722159281335392701231296464274835290262404439530065855311964933975816498527224423630112842920547389619597396332931529390236132535787071778479656498875602010255054104438922289826005491070654867139745616037673068067840618188295579839773210838709639912021672627139894043975013443641693522628166946103239427523264196805447888608281262801479339799830806737045891756075637120418647254011584990735437069122180428463160975778363828806893547867379841383231342161091564295745845267254274989574220768755596181960577358684495817865697519657300257270405556788187315051345210820124753177969479430923975456086827858898450168629877607791537889515738970339678032407158987429396516969582286661668317512288940779030412450233595179813908494540009653191513695136670303606330336291370769204355056899762035356192427209867123634496110763067461454624671615785270627354558211853991665528762867239382362205379693887389670609573853293285896745996200846987579473921873665626865477152441038722116904607855956144715696778941601956050931493120265045276901430646819257286477223364828736608338402897464376360085466217574990678761829831389546966696196175623152587891604460158556816779248040175917805996989254858593846892716027050962087798090699355920274018914384016318646905876021587434394247002181279199622921667753900646276339443099327456706743839615176066375679199222837078660797093616664752612685891187482472110843084611599294980578963543887813673835187729404140789469120427185989269748102289781838942090847805353634287678461469741559097685937958251254386354785123063163333287197430349689579742548947311135417326314629476485663072364095189399742478747780219461495263874382315851941210606142796965443280159457131381151929738446646113590226011903069409477203344380515094527161202536806186258945126965669175921801109609653750350109883934081178595879364667917381120027255123023708669287028690884563348274983123695761853054413563060820478252429214503272385062433174591127383961421628362552871525355147380555630018406609930235236880170412999780597349890914010459364290347253973675462893119678784085664457533623307127315690281627652352354138240259650069077953949466115942306540176209835256324871113201840428175119769609588941536938376633955727431722483880238982862849320421439867715155717498866793664693713754962625531944438360068314868458280490591029606227662300773986487839198055945829190558319837466795127942402510968571914109588586347680109085896030921480990626589499380964113069017590998493649794813329805219988083925007352983547835193625790832870029401795992891485427286853138928898616561490931263887689864243227832341605984604069857931685022842564429536663441415963911719056709151100625076323437380004425065746258420169812050309169233179818422644213811088208640038419856107966134284638350716458755927458568309229107500788172072547019938537718472999956172979056014668347048426250799076469432111448532832502351222899152485016293922513469616871523473020773232513845987915395141852514916484481192522329128843831212174742952267689961135896997429071636513833250336236441412067124189916750393425441135891958886481106214741626264698599346566503864998987558230196967314618661643320915489306268147646682029957215944567927756975046505256555075727489997258218812242225730622808468755744283129045398161114013394875442597974746313583627271789161827153598411056549137350551787935189750245249331202009852543185356800957550572406440819372944361777796923175950880303191066557871606535006567910870509727133819387606012066083970313582182436199113564343468972974710825667087215718210496594612124854757223006704814336893905590818120238546936406920034869612260256084730562119424575890585335323879466841939669034262376197352896787655993722674222095229018440844393008492587889373744760970735003977886251423877660441259823657652998870219860721420877333269242643612505145130425044329330233199917314915380721785870215312315114386793306360995592439034607259276319117677692361597706911020839301544400666014829028825167131219523562804755695331622304351539969724000773172192798844377158585217471870669003393336307685466132087444226111654369814790342518625874912191139775998620326593461221496185084511157704213229187085457247831031041621636979204586633345554670569806074464732721731651276983124008671564952036223728297698604767962436211320084915362751206863137493258493065418524437109296628025682385275046248899786537307065649998542457185682057577230713342142265818007142624675947470672162732988511681677116432208669754720335536096325264341724872808161147069609516739727682837292914651254275972055333732975776539017848670989751733694469706008918210884638921289716486369442369415032289343992307611685459813811926717004357689840051928118061224619532375494282394646767230548717686098249888399860348319132116233248690109018328121812429577687399355830716447320674103007977714481510855634183954320143396904687167905552757017091111478917779916616908013113828749014820225865771887751169619051420757208381853134564289044720338371947222840244519216567232836055516198415666459111548131698580162758653526322197514395991971841084059706659444055792977336394950145664488453968543607152822278139167705316809572183464730629492948674060472598766989948949644554346888073614796589406157888703661969619184687310279958345719636277119776439019687157177590679500697115224437080725500643264986982715595471589650102876081891196950080215760124788295894196509162173226176781552785989169432436344763408092950711989922120621268242472488311676707913193545336327996177814664627650976520448541064814322534295293872322037598087353219236592691446094397472126621556403418436202256032816174744402279656094271358675180572361828234934362202818270013534137939787710559888950855549070445774417065452986705266707586884774139211223444747135597716224034184297286500243476149611448832238325104569118578267519792074858611558726442960980528894885950113674880427108236962160410221145064554914040097674780656594161272481404939046165169529442182723939591193523521031121180008204441613490237148459718938774537166056591254633636981380629404202977541664438264962419089286378306378927514697073215531170938596277883925425379137600520791450990708400787144988258328957796704165795216389906979255747858922346375837067746889400526746852982090520883788572186935910829660152863064572349649876743823270212715144501147850701880210752362234164026956700375397511845052303525982054257531474412724980255901402067345130160438004625011200573158593434522602496619905419641727315747087356276132251273710570667612013236389762745141616163335459406899312777392157388642371130434314391733967994095776441331751527701827413985210795895845729855163351267137013851981134231532447445153695036210104684022317452318069463664853912002216421801078363258951014163593459691603281102840870151464612371319755885189992722340830530585220460528833389729951246504793516481812231704972593204348514209439729482057015811169174491470275590784692454731538589022636952673475222370500548691668577517004931540375909478648592866014381341484818221764279464908411750597900321426433389034925668213750493056700634799021662177663955505711932677396276743306438566163531461458258318937825119131542704818566185388777856035914817580108595013361571295070164703858475413083556589318321936371518612360455704638783374322517929928517441483852235449838135772752994707235986883023710717624314669917063188086778022962736663784416672374260421339835641665727896545034988302300999810864642640491978691343150029933579704083696343377791397230305438155915156136451226217952885611378152432602818915673154878250372647945653949720650131386220104422001985807833963331031984074716828486599817091073832912165106181219439437071840955992488002177392560410041067966296590493959974939161162917150832293131110865834183679716136740599809870944084468170383912828693698401062644563409766850012960265568206767377558181982060590017697736833842238801211583622265328656043777129351237549002448055226446618412489899253456336161359219726833657289500684194189681670799018310914277290458133454540575689464155148264085663513711111786955058959177535499501667859155492662860451756926009489340305634894648632871734087586934419492100716704285225252240600225389922650746151451230055232901308209752364067054733060279649637524502661285403620303384750342467333728658277774263260928155021341195659986320119920947027462343909752463977574622884686639343569232245622972464153604342361250025680913416129085499671722161050627284993716122575368178883717039461074311581825475590842357715137435323523859789354441471303401453003995399222400038504357485172313574259325463994062333633736091938851780091854049802217932722722631560336756105364494410109701862153348098739438052484130840374163030820503290703026895007301276474331311065906837732334904242978860665391599562015550364222359953962224588704120479247552231135477580777638941215459100021199324667082862751010113671107688528822590475243087924867583116696981451428729913155948527404329184852392157908867573133276215387089022649264531641884316454522772282959944759365964233223735666896913296435395734611740227113366196473475243516958811985526150271879394685320546102850688430379611320775839291239808106830794032631678897438057657246276776145006466860376432632512880408695199159136726315212185445975224097227759551266728123778336008129525163172374413828108078930263405283613266541339621432385138815022139750639783545222713666184509328471170261248881367934731727030949046385717831417815558200812311378906982931576233035399787291732363938441342856338053399703188250816911421417249590253539254314903809299657168437566222345007798731483261584692878210250542165775753069346911986868902524594323616467449985879974006255788473735595550350835277060543507248066280005397374274955050333782162004874667833762702545193339356609617525936687725709436036136095323291553280303716978459711933775970808835209897250662151180239049933866914948246155809451959518587704899121825166899586620999616414386372069205449912282782999887086629050760308484745432543429996796096142503184559234293015284102124576546107505433891435595578904187250945951834498140641943815270577705168900076289611982634925302802674251466417548764339213036250964114266926831373350501245042705699638345333646444626353443076706491330086006148166331141485912598002598142847953388381084089942669840173722498384557030793318372266752511388997810217663262623741204316234549415777988481010019857242222598564727264611125784324362994801402305835052105177287559282327889967562525959110224297724862965412473511843175595212412836559045780130745819267389046384043758620020874668081172102661100356902461565575357885951934994451135197055244079657532177614794850863522137932343605700647794837145575931827636489702545149179412477511083200854132868823383392565029778612993078750196622812717424967846267939200216744038320144868764284268157905234831301568054962019797014340743116545168087877474165033740555436502509862968217986841655951122072041186612177986293304628197662837559427806917204111395870582735632349568729364397259552309383980592160742070049616635537448120179811910059142928900358434165467197707353007257154099062117365209889146042166915712359055725152214850259065969770163943158244406681896735988434434032765268355496473591496110693285583260737922034171617511439653493509119510189650294414176517358949415417019094114261913920101476475906765667115133797848161159025053619564319405420481315170902150166049006799633968257781252881904041720274873156893438821752780355926990321824680480720261364834444111933060166728983646799161170898469060468424781646308248555354758197724017103017422154098683917669847158389091120749226867796396183226867901057106628302714981655600261825629626266388518115693043902770568596174771313781529374362175188167195609284039677365759914352411513835087822226632631185777637363238193384256171604475049657571524993184954935849637353281441089287228516166285923217348134105097149276738640004490874745966705897084907250160460963465044376535475767354039928228602790123878326488270531410743275574579559982478230586180513345409586739884462526458723937685306072895315218555490635830823829582670047366460161910254593069747932713783819743950744200841329083574195481815327983471645218825578911303794008891721969524598275412790094646141704338495019756659684520628063091360404437523927371005147652857442328386270375181188241442445504999736188008966512017499709576059534343702253774270015545156195965455158204893583219114047279608584256575591879171029567035374392685709935203441811465586933286483001420542145432983710847060659292832010055745278516658245639806293706718948655786332369171853673093716073701784053732568569268173052291091781057126289719431012608749479679897101653947172102761028326124422404687101570348341778133445723422305566972414392230384248479981249461703557489317210353162397185194604443923137741707788029116112635184944010577487417058064190573032796611304849823706343843739873968090000416930551089877798083932420922161795135879425431320541314360555382975096492926192989573220007977395622839340988610592097800489646953067966464743482667012813693513658744399191524883607748790201114920733775211820800760982145869802815532696264318823592342363646824958040459974349246332885207529422559197818366157881658174889264047107392776954722112660016612981238121704944422269653000823300964287981214275926740804345850809461492666273267507114430110183640594594063691549932759763959433006279485070243624799092768007804104918925131081322995283880866657720068649004211618120547792668348564140319202531083150663585452155171520221253837197461795048221700948647234404853474758041309260402042720530167024339152264542719706353790577224367991832811690918742151044282893075695415368317163042170209017988691686387186080483495411727605034655758801461395334567072204035773452071013420344850249879269302649206217252983531034421860060072220880192994499930451959613874258900220717841299180546329187244671283688026647092689101850775005519551195959103444582589664406175086926888019519471544521620664187197391333793595421257302535778037180636734218449055527170005130447787968777511339699899721691810134440286543388407529282854450515055566623398494366434983693574981097509413937708691865341465681457213364896664441193196101117825596297802981268076267155415808678265708157743023571072119528738867310505985632153197030122486543133030045138587424573492881694665124268282488871112364963369839983887155503111252876609818948838395623317343817679611526206822599767610858998071806515578117448861008412050404079078526618870608013019824843443464339468232472020876278112547379703628503060480911105137909613116080474855097676223620021184239786941135659995042366404921317503230261941191267815903092783949417151117764661503858902351182976019855371662482130822705206321739298252507182696677574565267571294710516740249812346648193818819387656327275051521350742446750669051321713831306730881474917239040896754338161254238736805175400911976535856270121098977692697332793942243951494072055060841143926063197627355620712443931467427368915328301723980867170581228329879794016709207467812263551027021765268623885682496213948225878726059315400291865298628849101543094904326204687578000991129952210216565825910082357214627591567059652164863349136638382691781233898872701550140756441073423573676229186151877978005036923830292529966351360000562283126773950293339081084303478691766722583700849840829319480261821369830333053345652524187270349512577903793326111112458615594081343100612807978614890972502148857012790971134104928113515270155856715093096291187741829515173055186474192173394963831818013768493180893083975900361358080405616590700811473187901642162862460949654140157654876463071324913712316322291446466675030452050167452990193850111724762071157409170112034549802207998694293017541850429671752229324303613572432090140262969675027737918913938733434799297197481652910088617466564206789278050807138350718548850361622434555598952852928884460302308146944106982193544961948464604389721161037294316554438503579806109813291955038300567203882749328634245906044388195723900932537672299136992840712648614645988198532922676530845960812897183058673497895842450580660645945171607560401529446920435102414207354317109633446169539147062326190585363918290868955824376752528727221896122299941761861112224273578098085708349113842090516170278193626624087410251576765673853094343450739384173596923399323692104604807721631366117261271795689779941391169032122616753857529316856834081180145554952943580654095749546564653485571061748724741194301284981716197201926004910003084850881827252993031875443937893442039175650967980084687121464860998992645745421401050381029864903934457202428990516942111602668562857673721077605081407600028577920722631042092408763553232298381809438113482034531802653112322069797606905413830016318994972850139988400774293614676088453319076897695033464736449935175884204482440478064229592411483341617134520195805492123438269344425478917143067870618784792369601814930517563148639226569602665487413645113404321559907436625313278278608957600909533259182533219384368530379494702464957586818021241400710109985672015415563266067543932299984956732621981444093599744701030807548264227622129314650405079627849665481996267254244697893969611625934147584032513774220485621580464416496743486888640891978416668358094290635088100636118996402403201127755442749783382256767715950619142619044966752850477209910528519343186987410625875333713270368506777915680578642493299570403458269682227878183743521067955961913172317798465853968350973708840322112088716931899910057432112716649461702710578014048896047885331576782679798053430158984963423087922571005040207530303654251024928345492149316642326537534433303736368911493907898537936029154244563349762406673508735445710078286289692067303728967080479223883905973364683695898515970900974202303140110585773903029367156035930398890734815731321267971817324220504213602263641702845972644245671138444056291252811488234328295749399324666800329461426592469772808048823284880636924322702472447867084397326041589771066175034492150764909606893943362810156547659335272974381508387711345064741996811976300654765544699717397109076419732413374063815378505335131042687959430943697909698743034344344056545173943626070839492735109992605859571628043846707099227764295612762944245701037338899394896133501110202417300092357475883403147226332520111987633386947044188752706024108048288506176702506232562631826606189081123333570456509254951854268092363919501371827148256290312152581142234687262147698960437764574500236152940781907169327437095278136478642216467650849523874144276371132030582068756007100970825777090107422600641512855130719123107984944082316546424773054476094347011072725795602369007431998114059491674714665640310683072162235023307579674410064300827288622991451352818769620251794455993741448748704903598353654419462963045754187322814252126224933419981548874347287677478817673110202949575996600881759466204557693249642659129776524635794225988346720492179218291882882347513676572278710394771610527868315308509246234783063900865462869661686160425204422683832957646622314562776245331305400957368449443199212599423405762107620524943124817532660276312762367569243873078718587607860369927196744737660857384819871713351823204315793398061225803326809003146871389278138860801548701577096620080445921785916922851438193480589403714810829984846631693181007949904578571014455658758696704079794288240834502865284927041017800924941597664226715546421359083219306527943670766900117170759416415066176272595139179485254289774157879888107710718680116404534639137487284807258125136756494194878524509541886921380183245420646714129530373316763163919487423180603034635211716950083539511044589698228079084909963453149745542461448139091228980124202909734684092831654821766022961653140095498799708667549107016756796000597666426738500623820115304172382694631942881753812320833456985076133087371008065747269352687785811788840599867258509062644489110790295523303414623841134713879158866869274977976299634943724652117579194298937540386797601962580191659128212513918014787621468748740483068708505253626202088682389700101882111970930839404371524446937066744995716411906121987435761942765423511739672647211035596474903596228337944263130169852930414088133724094475674186133339149029379722884698099528321176552622599125450442186307484018278998449680624315436123321581550938612006680228270682373255686113462994813142613331928874595333094639831347245349457103895639994830422289561459770705866562434914356085589988524980392692054621913493786390564756585989076433380897754947819472526230241707201815276583140293340924247039269696951833878185726811704129708523624095712336466765343946839582422793479092569656526193247868070100240527039231355857325712860808957026521699266708221786703274098227188513729106247023647874800798086314736982002777405033802476419957071841603425473582912159915050590786783699624714522283038158639959888939800499965583569165086882555507275451505608428114051825956016466559963312026448556419994674211826125361417248625587262196346320361086063923212937960120525104554957684919054311069652613718300970683583658750046135734562028621913878421412834936399550968705861356695975926626723942555720266345430043923468814571245904962090637355459466169775146156988331548267326218298073436880235058483121285661639427142904497069480761532769617807416395308886179452668855141669741843058115591237803102880854490906814921969685267758953428224826500540762520401890826555449779231386334833563536936880825240069134998825104604209600893051123976321728674477319010720707753667117520603147827927859005144112183493244035397719184010534445926800466071542804613367977072462862174669199486119460403619733701621582634125240423092000689782088251151093509746557325154274016974351819560135609455937708475459799689687107623314393050610671727780882164579744139210286773300169234974715242407356130172824184735837981943967632976271807018594682622137802751600249404367370885010186276438727690524886131572305575100396208145031003504946906586094052203935778528430922706167234258417312911402374233156278598188457403947834182375416532338600518498395557054992296587145527114839887804048345050352283411593266721084666146544471765108355131883034554913065757452966387687570442641699941245763474837006716808812442494575614270468271241026724720386243684668538640300398086294268127275365417061743241519994494752162300424970402033743047657858568126042789887547784366886699693510977123130187221384615228427236815938727365934167082173132383732502871248968179738835639618937883525670364741705290046348361764736870251168850472739334472002076315251932211787567823667204974245597851772448768141223969693214172216779314804557622509842461027812467312656139116513043605556820463542548185938225395203680167521830337240869982019494178350719787931409684715690309709399727966464789893324356903607215892803111628277480535256372968432880983923313062583251909002986286486126005513626226772717419960791355495595313596862744914032188947981493318543838548499199154306880105071374767204775950439755564699221962924700353661381654647190812917866409975744343145474156776558525396571751973230951332696371427003318291229729935171019250057797383591544595396478289942895758776731936027970111620475812916844961150707030975683009165927823610329700928375331838806691726270517980343015001513900990991869039910888220059510018235242991570945816591106953450216999451916308203871624541533574813627538417563226264051521042067719178364096752901205458045937609536312943505106249489925960973849117229344087290981440499012235216707561312104161664831505049808462363691033037584037179285875690991252815720334768128871784232077145202494177444342554360136820468232815810120620771835309167403419354384092997165001827450350614911526217525696306319422768454728707510813954714042087784854931996241754953854519149601349414635949094105842141788990045666794923054404932216357966836666036251999487068009378825442655985829278245119103935893880651310909748455702848821762040517797700778893703044240067898641502072082782918778663057488504521821571258936733641468771551260559808501804464213586414487072882891677832100553030644490910607826812821765504853328875669169997768647937799374226955098674253433155595770284422523695281128884945659708102260970754889099337725910510566742220339484971087353791863098649000309701112420844895428348534389215254609292568686989262942105939248811627109686088197263220718895284606036638722848525333399781526195198163661996809302687922536022416378418302497357565734785636463966374460445640370998939661606247694322420357972463084563882007263152993366748637801227456838310063349151587755939407009577409168931563531422877146873257837267435877760562814246534944800225091439704968057200418878788235681190667990348877809517160894308746554512340119179921063124154643782366860184265366056618967723880797566956156597560204536615801768804158737175584173892705055985150044202441738259513701981801796558316816459215826541157415344378145758097785825553803939449795296620542230378618192761518531686879966252277671810032058672718521632954141798522541179798571089361435697695487186660934688161530140579280931152029925527152376040113145684989624057619007448374881611538599903747766032117184793395523833508834165314070601487881120650848299924653966139209947203692661105445340271598417488796505215088728025306502273972348041153166896029009487675577212738626237122594710895898551820813212053228367147139944121494222094737698279736376023461061104361885793999230240787851202308946528307649293574428396008210567438002889064755096187325422910048038510797607224211977720237218546745601860633572228776651131407630808845642787872366103109384843399811436558249530405741514080712839304311535482365506124971513631182587582090896775766806375592263072883229559732824946013891799811707250732571893711067380630872949543088152524350578232431949820669426831286686908598092815253738124057275105551399809800746263661389728996249920676936172890967077043215579992218710918469073079236692974250268178575974549463922138182046255274019137907685892812324974141572924493325780785288003857991439150677605617832107219418950029396229928318125625619471132698083048306641833403252800429169958887593529366841640462645221361308877024868022354032679445324493145751850701242245439464843280885143185088812607170388558693979033826657247347889133032038854809689308704179742303614449826452447933434933864587639609734913321313560258420550782793741283894601871588561948177174119491487121395469197258938686825727187296667073262146883772347715001558584233629063729852388491974743634112945643533770040201375048849027496648550388136774707172254655706962647925583706391909853921515843422184686444035718598675162542386517469898871819828170885333126908577552290105173558231153318469428201347836322414485945367881694947138280386834401403140751158217999156862984262112286701772317498089194235530266455257092649682189350483632567334111588867542040471789038286314386431365621932608932722820793511617124536935642965899314441330063618357091660429031263652061113014583772019156127207439211473542622039976172558791026324574947613472126699911905463828106986042962457675908937227175702140861484681303225716203426977698702723020418244693042718075630610087060386831115905477080708449365123390908072474936915213195312539550290591800354371311104919818210606881706400437412786740338688917251601618241816276186753653449710245032830074133545813857444519759892995132839199035471629000324926028625181171740094887682456679568776160985778497842455874549368704557040370958759630021985884158372907220686021133364160641096007256756393006933175311014714671362344125242523655150956399036294879506832070647466043670877764345478392971263938465474026506067836754666539725597401835752506916216741316887079308575526892488142551194011595476886608893702044692706164569486598892299995319843042073173294965120513427005968457622356395265926413378538408519525506602499863600799815788346430427784453392337380428150573624970778918827708978082192574446229846555601625691268545489336155440477765164669904268640997280169803485241212568056752008293551008793330133886862330972937779263947323566261829392739433733158021206014199446472160586904844159964435367636047840111261241596483305572891455554843786913562972875690511257443902286073466876646089722786724007384584581525600528643901039456155083047743502557884757572526821208926046152183441998934636779777727697889176136863977171653987833642753382892453801221369707062943327072157780871818860283790872105843894575104262336648252417599643402459158282493459315724020107795816976370419320958201787595820723735114939303284483779730107815765384386840982042668640536795941004171352898644935022167497121343449067120699102603863658626955654249682746406206760878938487743395158645413488872557476851902391308919786132630380391040375874034633992565623645641432540862515787781466463586103002887972158795887075649298889658525698919624531318233590001205109094070073352021655051979350862707499203166545768166494565722286450123999541602664518799798507537761853523849668356631655652278407575843472655173613411207781967499455760027566332166301101237533375724844825984985982604784883367234727940414649040950703824162469159533743525639444880261670843617324654063117421181945146973749201792062401226195188512921028934755704258508338082445307337881743854777347920887766122492380495873381974471289339482689454266626959886214868279517724734941515519852221540300089528596402182865865059917207395608280139184249621507436286329610838990309607783335485028708013612310517258707202845047651563975730499300021295890058118188813662380873265977317921356707783369625443127823411542282685233707751711254527385153810969672810679835899446110374329997144589477617360238423245799042621151748474269829742227854959772984829722595108788059648485847137692229642829676405548945127638164789538607926041925785587045137521422297565641433886575849907718321047686435946193194829161618901565371501603083230226350707127397626341510402716017777027321155982007645394968248904496769874052417999868677104144990990479961603529674373039442698950214797450543928290432616923444659518899092108540012227686919723451259888507705627805633330856519069375574414864466008439070467991883498530696699605857768945891838696365136130549342413975366115634870138428028056631259832097704355031268219470188049293435965785044419310201380399614465803352267600704766614409880851990989720439554183276129521189553432671320755860484356188658074975260846364041268467569371911526653077603831256846771524608189155210031914143853688392463709701690723959884973859627447549760804392961181351401923908487014472420997216446066427085571747551953678910374265402947059739408143336873120312457472156076998299391812821528961137189703727538756373804543223653036140891963631391576852410349314998889114403794452953939185829911303163333160154505249655662766980318682255692139284945535159183367308582768634535880246037355372416157388033632018272764118084461444194772896245999246356431317281509667485975340844959400060249019806500523553788709619323437185299688031547003252840408943080315900893463829962063098085055466503485627770402626025049174180998508624330242184149512234395308722098656321972804104526770252716466518538839132786334705291146520486873112014902046157566581382392290217634895476678587089999487641571710315154859459653691944665920636854819162726728303653199203303494138080614922416390930573839477200026581349986081318261805675548555135471424309393461129341026932878167442273406854008543669629882864102459606522849900307916370666403391352161656848253993563530893629062616918006326158371571661738316738845389412649104422628317081211445483814881720003483006066354849191365735480174490017360494180137277644178943498913998209331549640039895215994098175298608132312199407180530169222975956742412298272982318598586066016877662197958956992413657626846963134756598332814376154786134371441640095003649285802626745025757592871887096257481623543391974913210338680548265548700332300059727590761332713786620504591880582378121866160923306203785344205398287772200720062120992712903917226616403306636019031476308043494930945141187601907452673912577040546204805427427282042516472302051691339785842983034507283621128839396537665646424125353506639330469318464968593570317161475246462571848525120507825911443878394010754912378032723532436398959640232817459395908145785535071151303328572589321126611130471734550173273496696205198627614041331211378809012618593537594811693403895354675941634400356348266510670898370640922981732808930061915496233717851111092078276952826948678167286139781323362524126708972413726025690351139222731692190606936576124878617132943936990434748254009863714229313992701221507140430594137575071836867939194787357417691151659602544138379042289523425136356379556403808585105495471780583819900566346540023507223598950533881448591285958352228367864588748312006680429397710724096258778903545442691208186840235763195503650151960204409566795735668185776210434750785974321801691101443804546535108660166889285504316667811612593832940105463620641359168526543007358173239333330748922624145350195191398218064416196529523823737881791399558062104906843901034340698410596159586213150223679550933120691102505237669446402274680614619400173887391900220392391607058727492593418056709428669250996949535003226423579078256144176172038092591553201089635349406662797017557953185676257244158060391965199526550757538596219823625186477028088520014404313115673678025034120813437650963760968087690034538116196085576913583824590506395802120301805465188929447749609832941843395282580303913496006058352181930200740388649892642226226270255008452766063985820133562725675387645008551216473932378282262102169598457492222969604567169177144649912500943106418421280693703507915053208021343044176399455505469844286932444435393821369874530392209125330606051723911254196453295110350399034030379221649675531104213003155198814182185938502522967643997812163062380751124756009169752537981223133754950077773303524669798821135839542492286359173632414047266005170724890554952318227804285089953794809704358682780244325946541502557651919989007071441666631051064572806024246632899432017720872493003645279286070848161412652344862895071368244396243721404857450576616533342620015312655495993724999398740124637084501512281478764865952278261174700174598149941868381061496429154232276292446176661325493825243827024662045446718705297342726682321065153364216350619366025282448401593804647821577440666066659201761213224066568964386855921537461853174441395159220935571569864791922058560198671226308285838619545418354281122844179027470922504600829147256625267312111612078436753185170443885765378778752063770700829014952845861276702488812930260990132656930015206955693382629591534732742855015798660695027891962513077997396412687111802383269111917373136727780945140004196035870632870437055576611882154330469846050792498638036822651884100018360618818721188796637796029448544022901007306215577907953726568803575941315479268685014060908949581449024238577937365337393017656406883514651297983749793704640369798905419211055199768398262908275812678499805793838763098213656296679359180861364875445168405930516897580680346714202922803225395767747397205498967282291726087864455704113329157850447020884042027528992817175668124068763310709962269922482062966498143824284502412381318739976471166681973604252636680728019239906442007706101089280249266974308855481471037443263101334882514517969075250085931371522470417591754229766410338402448141849394403133636333060977729654839974025224191186151573408684408213024630151684488392149996533006866952839850144154371773827087433358387491916416787676998144143337314266213395511064445880111068846228572456568541184740015244832831071140767876611244834465689729465621152522514965923507075605527148446979104688226938002135872243586931207290460879849831880414993923098158615955300893625880623736948325528723117298063676791076855717891057999480692680711090719288918293081057926477740831417300260445291634602747496531881067375545883300925528916440730773408041954523179183644078002339673101332055391686551021011800870052723625832851181891913418019221703917386928470504611394866292106915591921391080324784337598033348790219222288468293495833394144745750198353854005832019558182357418029679951146364288059625845758105637359777106232037222736548894090237112953893017841772891459141472025058361809338034826021903896527586136686389576931673609967227677513209793347044337742256346731525929148107194901176910945475079017345530259509676306643484921853557558546231531095350655181181047384420302085466098361495384287096550917607187232473166094632898086353921052652470529075627607783873539532217577987209982902899527718941009430838473403175832731992299701610651889609438059997170374385112235759639941000738265603166823937526768435986416692310986251690186373079722156349354861463294036889245755068628414139734684611927642281903745852394044548315088451832053300421250632763944117482784521182143751653766365089809909981036479023483217082337866466464550885918795289709799714237317637795477372288177906645396988082252471702366094726720846899137194786540158594577464266496974750552533232014538554448610727920726904750463544297949956420297255570521936993529756124429748107498897138772146439543758392017875833369087464824578357942323697649130137515231988802610964379091498919376144141661957920200343790405764020529896750162566089094484556040851205611696425651178915583827290467511680632825787414380277412725317424935637037608543510614807825717588903733865627552020392719490884654942634437700457390290230712557841297329270262787234977145892419711196803763776169185569910659540028364818763441608470471507348538263561079168209985145186745177979852082158203057914714164766492141545997173639626137937704317375229867624855099030271562911588178590222151431462024855709456049642166719394655023168549250497302820920804972567040051539781226447184287309274826853428056329080549870279051954779436670332364838702224378608256123347720509420174878588923073938550823518321787541211956700403122506731183550241154232916519779062927655329147269202868388957470243150758192781743313246283799624037513607317959228379407273131482524422570813102040756143874390111379088317504360056945078395964828135161987062115517736047901480720545869544883787786558650781999605441425864013635531395401776981414513318764723206741959259246583629857394245572217780689417210148748165026546957378612598616998359378887575280481162378660178837611484609370489269341066129647562362629533021435204847073787649980894626872551069708229545473667919764837911715248492512786249019581499425502432006403259200573042792741648311838519126231404622904309578894909593956697354053574187423982755608822884907733053405397749497983929477909768778462486918285190815454298984206170973182705519722162058180357110045383510737627785952925447105281188512366964407999153744287982897307221678507951920044260055750797640059730439914138663024522709518972079644167606087399145219309322173060649171373553883346842318494574574883705083615939380903172649139614965476074123290058246493928555054647154469271738695947897702310381166715723431664740173562478123685758907431219416910942100109311497942925099473166038871051328555541945708086942523332890006271362171144711501485426548254473206414375481058373960064675553014887027212956194369344038584650989219379332397065673541163372588570943581911389093016345604858582599476338078395945144319598383608756629062829225910989354498741648916964701864611406391690905483975635903607988537107312806616616929777767460619809254500462198829852765221556423823010521160687305072659277017905821929120461948401046271151939302863390197273397964637574471366150121884352155435253737321500316168858508681528279331079003083365965660881810870411663927641349540332072229009617630581794463168552871659305038842846825444334588119259228749765815824367149347451396182261299554980775994284054979925846566387059924251327889015023916366519293358574037178551059310870016361830292985231890551958743320198769285599081767090909653180829842239919902515443615920965932606960425373088997528369983283516403148256196746235665231197199704382981835953990181550788744504621945246281532511684453236870820580121625598509454841699625331122121019942917061801746712310530534704811902036615585451663688298221800678313560117624387385108472250284478868714888589805204320702121310155672143436741048122026191938730053309748723941574306862726819480512308509856582880138082592715015988560413746937697568333834671851590192672744417307064945860155617456460952482330272998182503061155462240804403184206671962221800069563166673891214364444996869838826047746620650359455929498128448336716522279052339393233021912156502834654992448838045286182681437737052666936834224725931667894672463021236677724385646605567307649359901197944354386890514955260315899014247445146154321402339730757461277563081053230537505860492977342785900794454084129633129680498536468006402646882892996186951434308961184981076568777686529957172281746427924080182763239291038291351138609621278842734576938533895862457575327484427990091451377721919814276700767610663560361443801881711400447000883953441713518009570433544842241402933270594532579340282084867171322949068067827913347310894588117449154406676874868592555022641264475313093311303930418507757501545949125764985468072393859491073771207908229039817834099879094084018162514230636554007655532407112910177320091427425295560084567131362909410785906609388459648859929377996441186072189509502843246863008503846492134033261973319900296689308447651124485826049164740692776698501591473546011142209156858194378262363914282954610503518961508787080634035923979721672347127617351027867081491538732230294869558250756910306230700594796416721007301106053045820451200070061493400159992567989509486389336663307828573189499090786170918877539183037007347307628565923307083965235176541099034817578235319698370674273417284255921174073935166835654413626931229372509210473881687451267334544937066174313517620022574582663067737298633314237877385459496031347570702499768516456349808698814259296402483703568282612720690510819343667891924010519976066396138257947155161847917663779209957578843274788061056523978670479834935956753244336254483465989779224021565832888506636344594749350167716722826205998817205764935804882749446287201913745420203315272331787237951042102218167800592011897227930906991063827557983712834539964857061979969492345787085248047838130247555033171485908314613975517472404994583790987909849349138082728408380867394077156409025667732675824425508888907065341394265989040045764411677716081108921718274564408097967422262527423746895038004614088140322114132684724679467596614968736467752791275255903372158983149482937527793370501951523259750391752590166168614379105026668107745111050406512145314582707779781844501116157579494019180553557969916183029803736063392667431046073237997395389884656276624489106447988043512689363424361449120155857782930755812628521116522100647962825037593290132409170493184995644342018598017327619947488343917910389956667711376674161273317848429072897534209687998975156751315902508639272667774327444634348503938038076271807718463054286382733426090945077457435067111201113269410232261668767257642721804914111837554117393452124694177082611418665579430080952056682505213508099190611442213952445220767961356621164708802369484525258648858272629035634710737347780693123826182673153355971177842483807901094309027116349961797140790555062153761754097719583507991460144753349812726491956494044846583508528546250861668010723751981203998783256803631300176151814368182628217423162496048919672049988873563990413186788443204790918769397269156030207239653519125045412653049089417241575593330697648364931347944627565107089136889268363275844205868399177915632530976280047573097355011303565477235723303897793661930152700968512147044652556730153271198650539075465955913781441290535197117550144773585957895941719000238257692146846190641728889724337823833154129750484918675628404444046760776915427934680269316255434827100180266578241731209642163020058863992489412105734185577588987557047759404629652880663914292727990995492524406200195050766721268368866193059906606789569921587731554147701136973309677032920066102279250956416874558891503222950591635996707214083868686358733294089516156932838210690163619572058547373124406186483516367425998466779799280971377656038843049336400287880735730241327436267437107216940329108115395542692458003199209891635009389930280640025026576098336795369260012632544555776798125831145618406770692727990841072829151549504699065347692444665695140567166758562133579079041712474853417348653871204713561908652207680567395855266065075582197255692443285270396683317408215770106808310144689370195336941154409345209430595445857571834233796997343647284354397822322793510257777698652282588232676293216963868331106653960074296229402887688477816730628480710352900688106432714469702689565168698663343132282655954483083349806665740118355687995828652925146147050475621922464254300543727165723288661923701142105052403213086804774832713157727452597179515410240779878835699395675658459817548510572108954611746409578286982801492831859947187461621027551537698778752739369710687291237392129152038645480739517840087111226874029899480976576100916811934057460741443127468225711988203225192249071559291008991879877831515102097489149624165967566011377045666648012146455480116978677292561495551835869773253172409209568527330647558563400220854067994687139678788069862982560329152986278101712815479421189850852936751806504261733911917291471654165448574028644100555264245792935210780331537506060079920004067073373853876940761170625813750399167271437035070066557311394099421305313695720118351125140877129969603484205681429397999522004137029236928438637625855923874443457833200361304581374462988095040694222376333482819277272749969746652224653034033057098637719118155745138388073676284049558260647504826657420115868043045960972792169753414093322940759744151953229108233909888449524020624319525333077176375226874071973983401519397063691105262366951345563130586964722517110265433976219719156215264831102083884122600169764627956865276625461531403420400135746512387508948558757813674764732861984735226863807837598780661179541117738012163357566267728122747404600614524014333238279171834146091824242006808498566899103650518024128101462959676037356942604004598937116523833408712325229028484249856529201026558598984558022458028339932109487845421502180646955150364068706480210567511216835354752555343558379252898694607686625994917341669806189202934901697889104069998815464838444146934993244782971874224210493707688445458575364151349553939356908137079707601061533474031793266345435256698634679186855789661164221959678806757555671964740465550233938671545988627317997749540401682910085838697071087430095440357242521031424901263549599792050211413170594293603531726723595298187867073303869119495370516205938882116753468229977001804826246744285745634853599121697855900853367973679888203383777318945307144111533546026321884113425871957758631739469253199101187930383151205778615526886007468709576790742840069991185472744211601846378576255836281298181069207615010545599217136106860527248831610134953123674508030677738381160548256724062943405596826847232890792231415756758313226040548646979315494859611981894176106581947498429621378122557541848610005118114033524811429946097221805490809892833823412366606058384736889847842700598073898555794757930074741398169023347965496182266328384122327846909132280398583569252916012425830314022675569901036399188436294328460629286411144760759072957554297669829816899227359848142632827004968775105519372215225314180218021173802899437921643403318587597360864398452931745312354469801965575606008788999759472163866610749487405746404913891602434221987857906119111766507523692474023251997795204440178749410578178489373960270349615442757344781957006940177429120493791939452961103394892878710799837580266557707029724632444779426814962888106234709809198343398426496279937185588225826773130729039670838820610317987692423259353817276761932004175705609266269253375448193153862433799722954077026252101678793109843353254976693974615019894167246270457534866114887238273571606765052391117091017947856652011907069390165035108374396432295282265437694397218034649385531046827766436333221549662196594505480575107571601403576688757909510763001202101003626941447334431129328873177172351434613698883567269809498141763558297904712816159088943690111550134458178235356893699062358231767179345470653192144454211392040320650716810207419944527192227348029692197740119077812305727492770764397111205666064709954643104738027732234397525457316467581306200739820483939704819998713450616430192249570955875075975534113022204831847984845309293155976028289804037334372992026928733357991079495954974805616528208450252777803113350260224520783610635754113257171942503914374874269654339073806629208980848728043936956470271755103504590174902657215244177643346026041689390099135331854485195244311636321848419321449899887930529341101347357661925727120754520974913639194657971451337862566689963379340389229219590679497418694080904149402381780787765020753749327281572701205793747885492170185564997007499635476107075510358716457746778599612435514326788014156202528850646120404234806059546844375003940677571871355942985657117732711125292370242055389658279831801153903946835325651145014680966476767194381973359820366934665590196443239950644739710875859177533287402954375272700251632745711210285152605716748015249664947268724361257991669005011096136976546401279139151833083100685250999311430745488265117859489658617406732022489551330816929432567201773990004568080553588557580591101073056888917550784098374232368676484250439977243594753120849022061491891385854180795824126209790988660527990819895883271622276466205436599714380118373922710730853514757366498251216634437739934435014995033605555700110697797254864001644111420691826785328995179042592806961549284025140095772367318955041378668582454705650803798551133519312415289809216074125487889826393066553526139467966200581979434547481521939852665955189459381002354178947817119920887420360887396634054283383988300164630851379453560434703618725714397442761985783659316968894477837966070537726350492289530201320454204974075825863016860639793383626728156606345958857212642836838702743869450822767756156627169383182452327045419891616629623019755834043813531518864291792931971847749927367633166251096843117758326162432808633035084744934115254520312715932058456398774302984078835255211505184921643209324606824417015308213818572035627353512858368501236988965330832605355527335922239030570333283893172929301370103050504334563516574295421997107689005672210907871661992578471961380600616368041464630092917841635885583169129407691139756340642552727096318531987299885402967160225166468824466532623680483031228555073207907387396476405336703995774946677988509547417873637087324693546113209001026931251188559123416913260233369019807891958344221339417001595587611176791207965970862945817765689081358357460174008073019804196682967672046969392525651956266155340266037549276416221119622848599207489652546144902023691653881040509251690942815877651119326314915698892549386236267507210596988121367266454854812624247337898704773822067871425784682762863010806302605908056285797696594988798971917722241049689251196906934707541495137005035291058447582313190880409502322174701168520860715632050540838043498256053989754176216850554671071688315765130757019924271702803844905824889839400946590262266710235419822116443018228892369266137435103139785956414064725088123344846993364387320830874894179587163165208098612713905900391807676214037022380210374712688124285668481376999157067113844748277193315808149344625024625833199045928396222107931967777555615414358478880759882956848765124647449822065880951079948507434623095904589035763706181515251673861476619452643523138043741018273045527105591058852257735730100784669597838302734058403842592304584571640839753068592778385634097635131107318531801706632349028739155312905262579205954968290251556890517432282330907788875644430473456036376906253793173056719174232865210563625910689676701324459227714760116143968983196293220333470948864052138949006807470176325184868255369703507256215283253639175787894972860545297819892243599082444298311610303074675236839452740008290829854133948029461121581141829747805973761018010070117541026801402734640574099527238517944366445332723508376350384471277477046091441026689866510652850462691676322473049143509738572326576138288337834929665418924802749934522570640003966284038530720515326131016746478707915995976619847832841913340731068407903601336388185569273823806506021774791693416015916800215529214901285661337610229673217516358927213238869189492580545678543998983789163811485171263059398415211409372417433070166066685052857486068218929128329761590092351272619251228170539768408405870806404403834648868864477059667718955295656037417685346558143025065365667569264220709534951314889237768397192725615978254562602151024536698000538484361915370104550883438306023662478408959669963506370859590003440785834020870229934706422111261189420556013439628172228001764826484906218475134866055722131739831309970564157947392813478494556506118742375169698880200958749736206320295396131930582744081977766277121665264131337579624667897761757469972168112218835718883643061736514012985924792377518861503255915079156795535143227060627664904403596983367110939403419079053731973185181011652473589196758220557800408082873455338816718042452017461957936798017587050884586142087403589396571129441908335061336088535661361794094317436736017705979042193808236696893169690752938239512613205382473647242396807126277222980060605506406159561446831923583333220910540181192152045047359458664773883800899259493694910790538664505546857422409741432198320716220295750927533154776343436226225565205027558046178632346731977294393666431729715088224987388998420471830406665604797762051501870188979554269088696786484254953425203855197472775479596756899224252332617189849085232554346729330348169185379646775619678678697320229336300579012511043549172754164301021897975840819808900448527289307088655980453676938135651271475988471283206905675169010155747153459492489933036349737382215576703083377450985173367544875476546924084099903806490523242207226352966701063002425766758268182826943793950388432862646925755182781260875095450104914674373481047536546950467118076194425658250906322655230351993280637812825724056212036545614924758967205514399241692123809703702640150504250017778938013570475614002265024208423594629713324157190151626385929080188037494282233119778672538044218825913988219609864915782882247740424900824146923034357100472919587635292397409478384915862835064719476364071425376280247411187834444655757204911850192180492754004896418024993451083381067613861397921446708604730337388711114588293208203492808463451701642625387916266009505535069503072235862401104852237624868270027686009201537552030451983304570565046259837334593703204421107899002033539619273411083056960830494785507478345368671690227738301571078009392756744183712034203372006300319755321588761886645416505201828065528147063884820110516862412791441450245764745722214650657167295610113509614635486556628002840980673634430068771851009147729960574283721382196974433331744773947055663578847986135782123730748017235729574208210137104915534837718158685750847589890752130067538737660352357552143625369147821210021510442670939457953612564896952100714605680774489185014155978871141223133877919803411559265237173560015707119326240259054521445825804926127187869056753265848282357855205854114870687206634329164110557695253698798778847225189043068230424209724820177182712232795219041632024369773842006190139377810836090002813436524126168492903089972784902423120520100868176812635197645790347352123244854415404694584886557649167150770747204569096770751450080581901688698267358099353857530762438965775793114365087495793618031238900262507285545031972819988448960214345450365706292696690329269978977169400005648362978854380419691165507478150281481576453837458141636886473642819615468024251564346093001712398215100352926299855006921855695156288410339431902624216032335557377066329270139698880211766947481957338186052410523062229297612012796007883300952304810421193030676554246676522347177508764817889333754088229381494903952457015198215384103411792506733932894367474484906710936269155432489342610544063683773384680864113024313061124411433474605446618100743747176374888244546438334632074598579757643970876031663992214797906711936595507752542955660153501733394891891889575574723657289581551100924587365907107512563571084160681490769818723406062512612605523138526872204016785109011737940017847246876586360801438487576797526992598901055369220292124391956308363420485387708489427057079068868549320670286187675917451152993181555683071596214367588261505945774779174177374378727371413425556195982041287901993243379892033587962828054511655333789696355375133425442290420742336275812919841583900828546029522028474820451348051483547381517555809814387198225375289300722599369883854978802814714141717578417557990874793314211069862261529340622836979995382796681943132061638099768773650131812547332988597627549633684412061875593760557016696436222293475420928832167516186045938883534430622237051905301238755507575202234495255243983867136979004381903117297915396895936580744847054502403673809557801150617612247112321126853682348420782234479526788761127223286542741944881475119394792596554093718664869632875004798937404267531197323725138417117974058327608594878100200933001439877765850867942139074880687058202689739362707601468413693015423778401904628318103798069530396270489937869925627693616526951077221200936607519351552692930693589396268213302549591488796264792193513571064881916758624769904519722374828402058692975616064336469079573454407082962020841723987182827579301716414653515983933813177616838990119630879647668908268753682070701585056519499599073223892092783845532364180456977181220867244023861124785708692248841228389848226482551406041510178103772867585167255617198986650013634692695685172463098295856542311668790176971525708838505588993706553980241272563754353743236774277513629481887271114330961078645401582081740944308236436659591633047193955864096119626745164677036739777326583152738374801199026846190316807748962634065542080878342319578182179643305658882626717459229157366569936213694156185316901788946089134314024082315053148648928939474837248315664579152261193167272715899118324171125537066753901279490468003589643470460128364822446337637829381412126496811902651626408140953017785585787413233557439833056973614344850865244717179655355625135980287243634492964687009393651922075482743713342816366773721260502788789150603282295286788377092596444649362810423165438828148454027354461637225124164678237550336795585821531778559144322524966096998529863673766981863059930425102587887603592190257542468652023616157208629579924307124739462124508147364383218497473789244949569902899476067230924295980302421158473436924805105621326745211471262952663571089271883593190476216340349888982152837629844761525064394922033897477873071162390083086425943342958743737020340408370942416595906081272923788487283236379066040608706102090130485456917395365510561809708121236934634898486377551555803983981166790674707508247413850142613578638849509806874016737419140922128085098571019836708743379610894814604942649564798372920316611693317628329597902384275862083619760319586652917752214346989794355042553749533520939827353541472410113742709421488000165199465964069096823920959784813636871398941831560666265945638753842135847775235881138390389850430778925756020373414595685208680163253585552431189372605588076728781642035281370511706691195781093586401019753729162397840989078597619154563576303136443182767061002119348208036518490934559872902368887794854101594316054107834873771297467760968507907861964525192006424311252633820024005677716376929168915857806178127841372505318844215431656026268029494081519945321252181241688180417760414667775570695833719674476518319648030281376077457743213766111315004616220254608397116089392898899917577728836491876261967934281446667877302771368629014687776370638167105937604718080060103213470841499246092525257258193838191951139607425919491767229571723365761164603528404564254122153065128615584386444964855707239696267472482286360285367222871869908059457762160226541146749006899757249561513269679333525718973653274060220280312387152419198666745707121725083940056581325939705099010458022588467168975470317066142469607020360962449514840659730469956361298437893634810581167325561195489785379314233523273323609091940872945650079002712347777292228833892121267616621641867304723491960947638889712285071681771330059393544910953025967301383554987816494303711956360699675614123362797980043027820469378466507105631164750716062862756576684151450446079426111873525503519051612007638526637429050954734859030019749842558136536416171755382512694554385198199212931617583596885411205590717001042588952327811999843864202705339803805548845414036863841146387903526337197016702573709446537718393674657651602053227863813056435365624230231133248293029133392965501611218908532090641135545484174274826738141967481588450194194695594741032018182436704388336324335743173661998255697338185494017109403311678425175304878645194280037529546719482734065509621132154502998033336852789925571816604606076382852153131611200974175930391915376858749302021702802410989763019059078634336116633783008197960268095281261650615442431220143126552582722359466286792460756782892993663126085632645440498820899525691836258588398366878959076718690738678446574107870931419927502677815226272503306077358088379735330994853082689822164839056822676872474168611713463899740383855603124187524283196356277802936009183434058207742071216390435000679757506040168957447489880326131645033058034126369753387570900882344060029749202999461824270683522051869850518179951645812950966053474412074998808899850338714300256271678406723722449853394564918013795063799467816536674088918506947521534848199839043969751652150326199291325325851067814900492680698753020387433825335286695847170116409089645610342729407386302067983194204220178705704378151292573970967945716870266313411703920556894290321914298106400543331428167457190111402917053967295348386097744601052652055457469848668698678600635910154003263999775903930285807586775820119636568813899738981725891777668785340210332028392626615830976873245311248948341881066535413424124629745299888572283999174109230117676062582855373499946001511583184679824091653103575532766653213020205310504476035061206497261247318562440842924697010875482262871074180941215607679151005731979355826537692174811426440448338863461324509568674229061583325057584125928159239540264325612798803653872672063226266796165645328358359858940644976521072006042159408994185108082028683490548541025711403429513728439948025429283966579594415944963356666167958468257586678666405234568641532480161427676269355904326220137050010968192515326386621173507584256062925891737684955628371452457088900579708675291526706216576746286373705794644290920460614904080524917747678468113539429144465901949323650265119107912919197084034625278265997538109452935244345108834078915289786934936066373949522533193891899821314641584834052521426944434677774586042494250483389924363830451124817800144992005882346993527238032621233315119240241079578665180599496230916960926414313388244005177813351864175842446804427485865496201001811032113189633987056251113711402157738925213463543045970976266130938293310696084432592934416409944053992457392600726692566661997705931114061356594289725635693249500835727246245328746639502743377725139054775021907962081561858818453190006460339861580294654176309108050275051162853550049379308109445427106185437800238941702825810328676452752478584621573359934179754648226091109986329795952080685382704707887070419729570272701453293101357015942464522919407700715117820756889247539948965943949253080446929020998665417803428123411922672395018784014497516508316919359812718472186044437994820159669480226818629804125978712548278709439437433209502590712236714753906338235978069907720672477988016855377370050971489207092504755423198183657862298477610077561685269382030604676911785216638655924431739037118724193874802013985057201182497558129621723336432707872606994912633898290495470274641263232341506873889529310895183016696297243401724706211682608759040162837770892649579099926704480833351719213527078311404763693622251841071261571501966272418342305807205461368518285118101231841090359129234012595096947077531113342301302532958546270137085100745388584555803220469230802651577676364415403258147594677941185819422380811357000003329279482637847612440786009416502194529065926854204543154328365240351723932598564954330208658135034241514509196076099119738345393056962021891459101386173431025133653097797085759387868486493315642690465801726792498232008240902727488483060989174964130050970475998866422571675007651604425485783285814418518079959692413330337683154775749937098554974063839758346605892142887083384457345737843646978639601372339505771176300789754443468651973428502891422445443869984744665866767062087565267942682995288672959132430287949461836632396506509089854516320541387426362238428085897587471997900006964007954642169105217750922814588146398394842858215638414919888746797476008107110665450924195294330437320968082652033932576937688110075729126952267973197340613742536833258291217380790364163991030976232238856063071526336746090218043281880559176393500934156763029168851251136724296044799141393606731954466192465628756519624240418020095132246091009444195612469956120926262779728905289481432478109539722479339218774194271563507753112320978417638316210506258676194104975444740520203045634985832595428036858111108058071363663290090175966838071451691076541041621729847563851052979539045288917256775507638056640714821388180735564127716108860426638632954097736002555336166102363338687223352464631729898722555166480292757583139661833231925728216744858607374173872062775281894388866201742230542234004785084635096304710267097337974124487644045681366192701970995682818004086155555386248394715271405844647852234316588756967109766285343454695676795985212155550542300413044848631425328122357293050267549418214059518735969000148329550641521855632920833084422444290775271925334683249324936065559609223829297286479634326772102831543471218076808694799434938412580739863902772707445387334564840455999187967843262286379066755064740858681704525127600650907416225347129432073411856556935680778696920837128834920611117295940327266178462075330445712803570518884943017731579694205245713031500675290786879983474001270839295472930307917528116981093456191562354439317010998265034387298333049372222115051105449269811136693323647735693056096076365382183223551228284579053519405550969631487984748105466988169603349474145969581202009924754820008734673301926589672928088405683423948331627804926253764299923543655291549689266515938425390963757547636431582097215266012571039608318199817159766606298367374067925261663916913093193960693349834345721621429769787331123210447778522840530236150031644076507212255583180492360527139416191001392531219522134160607401621612098835230085057270971072243148669462832683803945777908189405921955386325488959650624830462493902288772379162917169929750783000518314467718676430256245450780029922692630063365441344413520719460800407237961470985998055221090867810175889671505592184848595502270866711434392519777885833844392703825227397339655777287347939906937352055365206058848789406141433654905088440260132702140882775590341876905553990006770066905243969805155576575253917529813351748010311428262237176591075030018797647865278467564044581390732153501446163541175563453266196868023435621717368991261471335725688601046269857617692823870301984813863004953601722870253845988622778212799767726681633263087011715132637234640184691505867906607242361226947808114064609085796370118262891506995635921773989701562718449144960092669311029127936481204776896844609088314884253486872783685111820884236254091079606214047884593364709681771787388484305307280206857125185948375738272169584242468609564709814655101083108098949978959391811636940157599876916456242648756763655529193030941048146290071025762265917416318278822140534266647833117221453138303867993273068481875253913974935609750924280811107053116951393731845372304066742602787628203344060619357773126736299296542142378442686909632895414227419279695210477060323556587724392141723211078299845958775068653093945571350127382149896677400537149785503604970048814268938441235856745805404125206534723928307371296643604567991337703260203807888423937739388211577536359047169063710656024225185218555860531898302283542014499583431295613726985954583574821318023933961827276354520673528575904948941589378620273233086072950866690536684972946097143153338595131169540348769993834139310020564050617517871791841690926824002641410740816828212229820151004209130026582480899394266168403721187924008511623431390057417252316012667002502081864355678513527715455337483930603874348672628562088015060593172019548068290586572505267585991140447851546059954042379140341298869191347448249674524808284260930099373516514218941781000747805006932020909164523497497122287469315684065259174816655990073503328317908794185719994293716203998960568464759208457200010735419948931442587399894533163104377577066740437573349261488172333128874622534445097604319350615699618848836225235102553495167771975341590671529981905475007295263135339181519245883440626318265274831745985272206656757074477677578198776298010102216359149577010455550188976369450662685171872198793956809954729121715001322537923555686269182578996819043541568215950249823350431034338840519604237453712427754346412154657155762171232831033548451537620820478863152481718649731344844539529264241658350630277049016730409964662019446231768558201855322629683547474359868519104273994426882157047666834097373858151685154489354745551101495236839729755281958755219890488326245937874218471650461044636595981448886004740202280751313654117321201529088559354806844080306871766971933467794648191151488409668055488216407050623286830968847617641728425705851782391659703674667070018331874342002063546060137775414731205900531614807915556801988477522693332728099229001013292420271629687073583041770536497992233987571672291810714195729867403505604614366537142479372448251155935723888988889907026070912924430405940361198194358851462118095191063836661229444414049471340730627357094965836670674628961536367351110486235306053184026902833616000228562580298139693175138472393472686619267401441901690033358709140894777165304902818591223689681737923429695242109315876524344807471469363322897223635978500489970421177111194684974768498751106110285870504251099625595452598715226802680888416194831440233376290277437029370823821068413382953698029479045909963726768833964276228524180687391605499465598858201106123860640234893037146396982929074274911032549957584331212240928009876648324150159677257992779719980309009373333531907398146402815891419371347578175304889650405471584976362242165023190181353741380151013675129746399841305958745560061702748110400978235299856409117640572595931954488833702044864360923289892565215727163892112556366417443287902381091383439481424467215478010858074428568432915065922042132254105896465155063389935689748031619774669019039520905446339173522858368627994415923529095835766531117820210725840883953166600581112627618337493463447649425232804087258797428941018762957551719146822953014101990623098604496854101079413536043043912294193413469723831859439532703995718503146556254962253838167658585668562582190081853138277077226514591710877269976079376653702537137068030062800524711200361321286235920217374960283609387255524360259410359716530450264681039436205404786166433038098748366452332016148343200496834270410596579393262321439939686551725198514829917679243561912004754765768507401173848041206388210513359210719732572145015167865297182372509907299917447668578329840877352731426807277344582131148844462326379280373241924967633851730936787367752972211456475414379851183928197363609883652921004836423633959825169611394948317991346389697178337184280192837990231506190941968931998628134390976369833242068289640903520411772032649180441106754125936028171583066573102674948461680804192513937424248544976336242102727875182957891389621901824498062154616376244644959169455999386908408791041266239536569149821968217954812062954422034760213779236623857144041861078112165512530349480533354069646569816464800103909046523260699740729870122225943645955542665519957933172360653772208433919456718512820680303438826820940028214856304777598682408451374446091192643878229854701517611641031377422604696624976716821780989930811442636183559625028703874887930566654451688463139343430165985307183052113714454423179590806660368225875970424868503665306958202705991370222655092474638580258706796166035010322718049132059284746502486540468267843048398478822633187444965233532465758778412791593944570670710869225474315666383997147293760789052782161068626841527002697005026680783259265314065895087813487491897519528373311010724306516262429808480275067729392471087769465186088772620176031195624581080456995255210868747098027064598972256723833635723655708593739451681525028513064398204072074470975042707285066913175853029432488267211246708807808956161894276288728673894292538293915730203891318458788917232349426484276336673001574913853967480692879271587105280308557145679405630470106035291760061354088037054938533047021619345622560211196614919144743816665439578908064311612513572736282966427568766721875563784853858691543463096456128441141444232536108673708346414959720870779190245778610360715381223753053346656732783450575141070092719395972464491009048371011500812250053739085989844616231564188960752422439582482965449917775090757626673609291958419791626798155601656042612530552607078656848538996569458610863971861695889015686052955479646965491497145712333948542603025998136322733748318862512081967355983636304509274505221677386820133715227806306034306281742159393759259393013638092113983474306032043096844500066864127811655792903563838946781219566686820978811208769140651900150477778274640589205242085121486160156913963163243354535512211952937933019454377343994578913124044989861684483436363454830359288083704257552583104027913683559492401521431508807287601933023080575813008628460006117738629335195009716973024608938110841860971700223265512738955782195062052404577128899119176612317797295237288606933182293726362461164605361966418431496052018850888297124431870983603728503487290692132830993057590651816084826600358309181359415002315386428858495443110042624397697760315165009306363191418856829757921220100676043074756814041982405619540910233430961273097103600659745017351357757112978719645053368674960775085410317724952522368610808209970649920524229948057304366863180089586774196230794040300735075310685750112696657680397369198811768292188613623124153825315352447934290266257247328111800775944649394070252434727830469708613312806147779710766954782976627199652555394753403959561050418106451588307782141359545834101459554873623832884757120608695410211954427877696929417833013241121114692966773607142360681859268233308555243007594504585383101306868878165526706643193853303498687287580831102344222916759838130890052548053441101261296310831684012501671585237057724680124819217906248911426757644574685962553975300459578739041467719225660671502384357176195133371994098565631889573100819954244010609879595741203148476083594535197723623343484279260201292630821220082037399030840002256119040234927545116257010950211319899817906065135516068345557212533170372752948235932720681040141069825603223935105042381197909873031387697317070437818486348402321180556288383349444814661419750470836590269575710790583613276775018496545392366271873324105915944902873306077866064068166777483083671322350761415790182082937007438602936630921939112399666072331902050941814574321132225897048229651235111119540482428333796005673252118147615492400372640748287735994721807877227733378449759555698384163745051328695934148030625530794485973751876163486774668967405139180831611380591438630414065136397453434277303306814259301892186213800677039488351179029568372463484832061368236495248466687550560162188608117821097394089165483498683768886848351483136594719922737419384524785556845663375535724965801965577857935986165221008247487638762458349788234648640774739729556179523208541902486220073791661430318078402565119380789810326641976207164897579467729559861879406065385426738808903593740936946787804997398787141181246189592314554088348039678012955340873510277002608417808928742076568617747095748942844816515347406790498644802125628839654136935983485479614736588493280869950448612080246037631537954230785228828045405042296229466771719462145157504983897145990569682985946885402223307259318966755613767279385575248291841341892553433440246416295997324089127231589123274911251748753777464541554920815237087247884102582434006171414863623571936310473936622484469632375930304976006939245815520754321308413489745692773735783400885678322483088796104860982635139642767444952795385378850018322913579580800764729670149525161959856254508815417401285068690500824252695822832613160763346963457906362148189567749187452542582488257550989246301349839368085706715695458026790592031631572662982708639664681510492878916838180377774988026600723236423122965947263416815346544750830787412790083934312072915104327911611983513471583929594037480686518494006817995337076987364929921694989525933867477430061806153479428572516252808769427174581927557342850402064843738422651603551277768721099513224208776156066563135159150545502162082382719633158983844531098162190435065769503142458552312310216355281783125958251570700388252311649681360295600582847873464636522849053714067025408749368610841807413331014232417026193811022250187683695286808019003890502805301104886231752204725696644232673687447314949365576398911675754685788596615714914594211091555952041579421564646578958931285193519736888799557468912934487648381062765612583549134521238254537523134884864324768254197194722014991474271901897670586813121759119895222898598349049644554752414787567748805445823296045380260799019682019404026154988475775790651853405077592759765497537643247731270605637215422085744419868829594300574619409550284699327491973224002248126700483951299919806199475338249179461048209957895089584713818124478625209975246106315866246333862553937858460671516502233396128660372348196031842017293741781563879734466790077879874884565095951350060077672862785164461714767668901814710004891208966429017524636368459709695782976387486844691297420159968587725020000476133524663938632678550148513382809426617370451075343063018332197425195082010347451403901660083027193748286685551807200202979760738029478411413831057244412404804294705890154150609445305196678621400267823078465920444089304183324450377876572959257433889816683414125747242044274080133030250276446791545889253063276490447487622405491743360034483418198364214639073739411064702975408619383285520502125197121069458420814085730147166559864983498805874466608560212853933132428618442888890523966601929384568613320660062310436002294094326707768926410311951600529058213665232877847384039764647672545431957478742317149687417653076491162001897438398819523649391226186550827463169950609782643012094672398765097032274370027104443121876923926913345157983977530896947155097368680900283779753713129322681568870264631578554634044129355375624220886036496583139628134253396196269076161175522305047858045550187009133981884811730087383377174968369427665428370589856997029616062930891843403310547115699442548901644870560265730122232504704097962374761482744549238677844728913118518743587771871846502918395778460808045491815932756994817102297389493119695109143401992693264844813964657952751650596427568394562151586378482553943075297956093214118216800762361021682200220806931234543999179184035422375761767434563012143794457878589955740010967034226032256607254804722327646693794221532683283590846922015451981167590176145760509119681596559691440786076807526508378938348565057520941678309142062740058286924985242093299462875506154132826284323956843160299737452373718792939325288397450832018381584082844539554017518186038742458657689011158541468935593998351445245379431973149311010308165210245813869236766077626567316470773160149224955315491283030964651738952204983671888916659144703094820037014207810691474501387959731067371037332720192643824935473331303880160130320141941461447982450048105828912163521992300143902494297117928850762384220822952377792822189588296886468442180956256544402263221024645347289792607609082682018648918003846915286253775984543948029059533866549242129692836967547259147973106380700347671041015086338614669562471068741947239186628739599030925277346401726137218800698719434559729829127783394491682419362304409198046914110138010837023783098134517048640208198545378376396534628399608710300937441269812665576795564841617542102350488237423967158756570301416104353203944611279173717896575609781655529878781204182587052763364116224836830018009246205015928774370889466320207410282257959194137349113701088772179775826291189011777276283079803566808258361056577283516142432199380956289732168795479930485762615827065957218956483979894517322349189331825508121824777189845899924445886083682362783018689959536318839004685625905728444956393019398646972314233122007120053464069585015644238920491533262614791111385020740941240253416617196558204588125198922833773851432846975849934245724555556854685655213433358320930965408348481407824928017552488379248492088015460795922705104583215113034379902060391528898622499766010961298577335536430294974985280281781391081445270759294682322185358386004000175635287619237340460740958552930314177603621505146503660004297873324939775435142076320630089934496480510380293745834669530516759173034607882301637500248664896644173384957093550544882034139213749033475973270291824753755768030021160826377648536639517167413572424765005304089149522769776901083226280746594745574587588907022838910144556394413882589388663237321858650959584377613825799263782443647928696432417929267029494101701753632302268405086561910677872206831072427924413763488323547988262562937188689481374092922847894955903448452737886847609592973631588650742465185743201945634149414168522291259587416380753556109339828658890674766067428797737750450433048997484721172392061062283615063611264089003987046180431225843233651643628983330462860820378127013763465455595024326061064401280420349222972030658530978395796593327669669192599742478854968815992043899636944091079988329258550646136605585609696762437818367941352206593784411679013405052842486781468417494785395998402222478182595075560580967382906822009673612679540082633100890169960111956900765442130252831509749728484222433873513939445546687102304783729272323789639246751213673898991567812639109155570864335395130628032738694885960493407434037510166616343811435430156423444252871680128832736575167347976674815069274588762381032114580475655099307203468845349799121611363576056744904580461058779520287227239238327571122868234847479251931386063604254568716228126683190645121978804266106058488794895729427564471259474487365964069476724160364818522503460117995413759741978087388353635702456740439476001385833757965727824684557854832365951879464548987496244562804607995401800526564273898059994318162128558855220023266661604714377794485638774876536209896639034852054489140603648582661740404070891469469117483859260532359093006401150786598267454954005916879259742619598733870539030941489235650273349739076264110731753715906489643997158687272655194812976360808479785349890033065694513720319416628236114741708694579416533103204458481803407707647519044377594437338851122795642810204156867579625152998995837365536998790513717249768049682057961030985424102467287312942989349763982834139190106106404916666674225556514068251510377410477466143092440744499275835909903276798915691888702594239642643619834953686363056607273644939468174765754524712138509193466152461901555331006081397024141006456404479235581614284185646560646761381026804772903314531128362601941276690557197286343972862331402903230108460660394282990470083598267984875386110077705618785850761992236428871408668723767105169777240989331206598352376866634268945917198697966683204712017984070584541971857457352388956234672841898375960922316029542366549547216689402848717148645772643799520013902411332570496470549991343350290705968818769999576329228915013726564869785644248381449270768087352678833454888758586824045080809205132977193650188034232725429209770064435462627747224352762378968222976740183964636798409360450982294159783850468294833889925854865286577025836737195334309699706360594606368893936364167284435432173774496028309743733591173475903105429929311996048612686423656141197196554579924872631715407850939415913945932085026462064611882658770800903130990708456842811732770047960359443240081125160844330384302267676706413106781187924549936256219918214779966305709037339672116422506148089215533239863666754821731260895065975703586303565826573332803154200075956070930969375773490351456985087219147284565449310781288180639309121835068897778494867250170262189894608759379858071451359002413958000831231618154787053781347920444250399757040461362755734116215930281858026439323398684952521706510004786877013698975567966666776252233058048477809558499575878436100093857839343021191205702031247846937483160084413917666807633205892576637527570152965141572017691102409620737798489287455375988300420614574081195586651392460296722352012352955197107336232195230383115100254579669517880557293217946470324068660464507020562849168380938036470028695272588813447670032739174469832156845614550070814953011878715798727734718662045154030446408633525540489317498162948109076846427208698744997075786928204084290133285139800572144794790942908505928668854708191599520394431225231459026701209677071055358574596454420253618219218743983196793668299019966447277441205115541039279863123227528925947975061784445157913671413785941588769446352609433462625292890135653632997473791866034260838205953716733453168029938292496597160090472079773921782493889289995943212728661769461923382163894448989166192327653741749361137528343730056117615748919500538007939396909726417054137868347933910196373350562803005616465105201713755136683954934800847356502167686293816526589716660277490889171936422560921716032714841934841161746750566565776953826035396536248115411364837141738418104483879485258209196736507459837805326635921923911614472315399919602723292562932521392532300000630550386303497035352372100357105366540159999754673484085635415568846169768206969061634652995508134380994899724831461355743331828661298869377445852825384225709230446918918927201219548510215966190906138966098105856461045497865150698638634129472839934322539178998004477314090774886717176154105040056852426993779663005763080007553268239664575976527569182319856620314263228593605398648571744192888377025924890390763830636465179249515893771181675725060102661813677076628243531861902727525233764621136900483228659698546566496108099825583014487620191664694951633573503088677895956929185179035643010700197325079586206969706781435986380153321726889023454990853372682663482959373092639438583598638371868799737169561470135235607495317042850571369094871312914294616945736772025715665036752427532541388545619989232615887085643147462408243899086271259838311630018433642499339368288977415990790216070263694637670072592111680058356270380754330414487741111590429373968320757540732416514018883283424772504632255595120660078862604599234745454626771927298367989101235893108144781994505191805126435221769502083469461439751352837809657572162742944814660754769817965391956909747222744556512759394549417542872085761614543107401318184409936530085670671726074374759638333888528275092743180223148451237631784555139713835883127422140273719142772383479815099892261581830020084450454592184338685376317119140404071547130200260293906068042614208883725704412369872263707730492338004077743647499428885027182222539822017855878035606047622246014692913222784902646277134975130272016794524261628145730857395135312127914495614316660452364539969885775293531338708583053985971665278905761341383954203524235458190675597718623857928477823353131765631927295220837566418964993213157196800081957492317205745883746053138008018113137039588426742446227748682916458428796739284009364634564591258792146067083739658702552485466381801262567764436818001189624644227992179148743835837423378642602822163996226176097864144128172507933783211286697110591533457912192329749747249255985703539166613308229500468816553921306950113574758323534977044107796254173261930974545764714770668071698643753225928491701934751868514758000684330363059934077679495050899745843194515313100567670125387302304782855382411469636032930874876381201587963316472668940143871548325484782924835580651735039880613456378112433023275125907472250542985939813991983635204612629552962904276300327545268109400448127793213782768696003013739274996963138867054915332216203983910177688387993341093906933515491621683066615854684657599253980487878323081843408744788759421559735269347613327206194706016901702515191714909831843541593767973836357989991747813954080794558685033488763326718715712867766665361600806943822355119388805343063492637545063539653563368910781322457107851680206076396120611449081214587815797235358187816015747692436812993260168696407473267307744116962353664700611048672118417354118011378277646795228544358311452751848195896539261056885138994942909139643024415014802090359822906296962444594946777362797366630991777044473746907824018559340117964885062771879704764162246118754458753256716970425989712658059242349130648344625013785041591479069309865644854007150989307355672709702142992083433416629460408992439502751041661771725175801941589302721014002603968427945898823281394210694769052418130584517179610675569268792558173363582788607172883046347050760330875106992564093554143812102355302960771842192433894049659951089266703726864511038999275032675700454444210939715975181191003638936550396004156346747171916163587035012695682249982539622257963164696611230498471632766939634909238456008624995534031061907217379572610302276041894289778266868344743343824136106730008720339750394611188204580575414286984217829060265417290750970140320798818556651742649526436503771264823993636650640027078676715057014839214831004659562825251958393725479980874528128149651921660742166473993125501211021347048074412679350038491508884706495552978142595306723727210288476927695757975095154279218559735010187963443656482870461641355818051361542997895178541609203119510079749168996084546542673834496385372967817430226269012128577471951125539711370104496048482707827510124808652998569139515092065605156109098440056594315601887329066831552903515627423454285987685386464486918577622214411339640297457796160224448108433343267907021472880109419542209306985226054739856337521778582159087609894043644269260378771212538757512027719683124057765128110804025949102343328986376680863350962342791818746881678922503787260557375950604472784968943378402221677629413565560513944286125865448548632518842561979191821034672944771725209718175156392556052016202325978143591376550094266823821002337258739981619905757253165845503527265014126174934513252106018617539020706371430895149504679896409541422080811196017834989330336853775526869785449246822085948726912356403642540939588468977486055329846122924569786966814293326156551814115521645338805409576928283123802151721947870627160943989742084825588151366591259957637816488413115140136451646836676897118798565267079288547197611139485998610505718544903910628673122606133779494607158856375971006906131484656675638839696365172259868220177323041796814855788972935754566618162936402595674786031835316427593647495023560866190630387676083152423154060856812055446712863008902066778772777736530595168695848018176733573946095740828603649508134434116370546755510864575314368082075098274496397448210227359576507898783820920315120856111171265898186925221936750444477818407147952784155342623887386041996325272584220575980958566245040980362115094338307491868780861411437464406082469744799732356895629424096481289266342608890687283635924808042590715877337173230337580250196908320370968161598203422899564430492544972534281347326138234557393003999719189157548091603871338902314501196378954502526444879570369078438308761437336485991504627070585110893466169370240393112263235398689762212181167245704869429940958111185972680052390053572361876921140023613924339571756162772716066265168321160989864017736289831250605532055284310293315017482491191412432399509292128085537670340733370221892217189971694029014996843905341519370215270759164869013811714802289029460742844819931789128936144895501948263849916837490468105776599574998286056783354061546696888935960508313892403662120037770759574573659867034413578709692541482797002046054937716286783212364793676412057044193795324633423440904764626270667711895209716077484667127971614753539969107753663302961072106772447815800236739529402159374872174543029973922191425060038901362210208906421405166942880054369424580897917629368579352904299228366295760369970548518941887027756660297434193470443324285239194214413301590936142406258847961029023011667687305389836507465389701814522448999950326902039881797418560346123596226806030729411597113141596205096658738086017987353981591447715807525657554595948487885483403302071951783909098029511545333738365489104927703572011249079362768993770455975238803734108771849781445432171924453749777835522431059266819032873817986113926077145887988593285591841287759193335809256613758741294455601314582911794255505942822645716553733118818412364658708556007682508541861963924009963539091964487086765797607763193959946310431593286506432601743534649164151713884677009279415658863427751414108950405052983932022303396693000996707915683238201116815766027219057385038943499270448490285796589135468860726231725303887167414128878652826280212692175251231743497785185359060966003597886467215443155165533235080625212298876990649257249688812650264978253577120578826039741413994095828812955451417685750405661335898050367210604226986872535331004687055797916401597050403165312443680684804519681959390504901597340230247056987901643434958686045302435929714982159394954540994598015948354027072625624060773087337004090548914537172198793097777216572872303016998351048926065928754917863499233103119388692421245248374732285421515826725791456192582813530073854930535525922877072840751383899264274044864363750649405158739947606524389437621409587990293575549193858163839074951566488811699868603884375413195481646668167561065848157772254898323730457487636467334103652426668286290548839895061802703576237072053051472281893891033353274351837742432704277099906593138952039941344930683685687060802995614472355335715784367390463758680734728115167222322580809269274950832849217970910685551134158574798318386876663523456837979432520094245811025693571202447950805482387944057971062942183484385111138642298562654925582985938620939322964910769398910101884714274808354581080031406574083795422103117531309303805464325710400762959465440421287105963299973097610956476660232726222904502530567047981641160669691168026746374852348496723296057045132956302953882124130814784081238019883820348848443684907494101449057860707038328852652368303599736160316449165208638315356818125598184207893381073346249740693397999348243208383893877173393679057029227924950552182934037802146793257802582779091126201906626376795086235680512544556513383564547314385479019810900959476700409880631607287870932451672316839513665735287181135861810515141816733602935905870512966594191139039875458955218044921513039566375677272392702242419858225501903749748466663130596296988640521045473534629523322257140543303713810268824094090569310191954809147278365933367177658884140921657096591551784734450427545919359281825062463922259338946455357133718908216732817721311111026944431178937684621292556970803966273246364951734901698859026817845116024589993937358598217772887879997941003105346457904744165680945288484239491063413951259822039979646018395704255801740973470544494641809785969678376481949297757642436128484754591420560116010713633983900071839837229308055659418164893872560111228631848589300270413918252383559347147577649493451363592991533813817432354953421041702250409302804995680560138341106597513784177297285590009050082935829187297178295713785300208718708465023298005917863829772280459416062610517011742429190081930248510862128561245592788142498332612030793271485605706295874576386857545793658135469992064334061857861333953444623977358918346958717654618782246801387218034878479256151408964615893021406121569663317693514395189367971436963857254604374040230546214504173753764327868345902161424390266221472350727044322572609523538113169928137039003751084607037645328567678502321268325605640355098989214374794930128496366087535392231839794929430889588664457308631757206938121325551228018473538671685635256091731681340591804880465853360410347490056589657686340232594065143183853706919261397572082471560357918563494602321300952278715605874669217050540479332892699316018263219115952386697992174612936925368392260638897184020820968365192421291208516460804735318694397160959247715882385255085790956416592145498330568235681123228344407926440286592101538693484821343078079792093842127316221331108921643155506402128830820883683186844419827297497906160452395340219205052426382518693880939259205578978329362684483255468993705092629972680864455802627881750653763132868760291258498168089234673235192841203638700437599754362064486430005836681880046066841592117787556546049790211487842386684558884508458404265003249881749334622187200113616544359263480521847570141533654202893163050486553149661331017685243144714829603457146225005612571340208249142905940603465895229686505854841788150125749187124279357248842702704470788721064341772007772147633478052249635882095732231311459408467417803411275871159909782024130756987630995940654679788085219880348406928260236028107787432763038207474644290839775858272316168748281036214069307354793398059553202881693270696358103176606839923575919877483253382240859809355873965413096661734458349067043248580707167978793963273132087304392850509535825570016467294981025189332283138925005120671067866241830092918854189360529294825146479374810937769747522374065623035185020893278882718052484801311894329630706059696846030833260384805467501100852107827465943643250467294050376269335858156867251579934791908266310198889921855033357615721527971832892175566463556259578712624574905607341025784143025066997553838745750220429347891314660524221843229068210748199100308733400892301395387792159415577442832277683748388717127700632379117886850491696983662754591965732341738603696051429097432003151378692164282529354870698145100905036666415117570055348592435134317668602285159211979957858862573740368343795196630818037820716308748012068127979766893184297760518549262349820583393091372585105946645348738420716560874036952499015536404693747613650629687396991194923560712756953187961955464955176815275296744107960261733241153552956462478513032405327317971562086000004837411880503254508902552552979464702568125190629871854401905612118428238167056798544535078361315975299232018127874870168095586371300456163459717947944871417197797592531761121854769002617272221342789725161686237869381346379908823139395037432549567662108690410453751164266663997302081729454364451546680421939374382676008410745556677608331338923196728184737304498556157059793701751332670648875989732893419263123660944741416985100289387393801689285164428531615324235427993117691367466134246780834873085131529203822694706439746587026428504403695364002619863135338936036556786125335292716713063548296844099822373556604911596827195794922265199177629284646064720890003628951267989566644824371454376425457599357733474982666406252746094864155326908924815078246683209062179301564923594138592095661141789604318329202610980775958631192713846977333282387137347256912398404983876657431411467588893905148450651730672367126119171257744628901343520299791230030283362113059941236684988068278705329596520608457049325311086230152434917318135816408134295942669745689072772857329503450680446985339408039921816503332568286001332926757063236143226306059294119515535904724964410827634176145077486664601907527476886697071483146597173100451788112626746626036432085974372188220634233341579679050595621620802889958340581934924329397435235185817912135561143738092070225661654907242249405471369176144822179916026805751455286217282790977825344600110358982913565583471065364332345861400641722937617976047455573731569499616755298487164760308652151669491319789486894102156954513126468146616805416361691517603137197690784680156363959033197474415489152899772238434846419423455938255920957080313295167494597581379030477393947059338378202376246003608941999509241610308976374999139669889306061295448977094346112617056072585177442347384935246368831028600186317604935926421334034649802157047809111278724804986822571586515738158580945026161009407747911708890281930898418381241608589591412038816923100373880095916943475897111500122849009659581551159607798048024862506924054701679081913082630890154511035989969811985247312323220351693932681042516014559680335978160256994578212682746351492432187545156501462174649537594354111568538119739953363471266476258067890743667605363382400558616539244506586990440756102126866616338833919850779152207459000199979186024473086478272332125561464929724065931280588942629539819305028316833798548343360615778744780842007716852725454659698427393983266975868327654733308655796664402655763735557290113608162040793280096972368730198888679826163170788010322681358368639836009784439923118352303652313568653065137096204395668887590871074252559669615736511137801725842061744373569787954611082787680558356758853314418998320268834100615516433907995947274643182070667924188221817582841336115980661815659352675012889394586727938940223433083025995046936321665701642576910223063768972374243710428730918077040962560802451715021671789342218343741212359180400801828166658310695164122224372322820000029478781737313478690293013221407396607418993952687407953298924948993210610563829960517189722953607091490627723783444657441953984661992950380124981356568427256371985552999945519455852898407929296054397347137047970004175156008748270914846668628466705829149756886531303070232721866987479968934737925774026453043572491695873483199396192841645344126937861910348977060232720937837862751103401965830741939110324707584419783027042903305802042741252577304768242862275657629038841634995355987539526231877798418959940429138787658777667308775251930410669591835783860739970632874288163989411911868020382709505302686138354525394606960440250728698390926660005459272914393694928779778933593302191615429261170098176571446749619461990048944377623841523434202976104030176913139494183173203537491018593406632600509004286102114445331543311991269007606843187498463604931312692397730918978494448738373895125025208107799761444821091921743464934402962529007705202662924528381607980215003286577156857160671690217874455293500591590309441769619699962929807384380841972877821610588155022048611595880996940220122989706782715643246129201911544446275351296711090527512195523341779974708152806139225998671746227315394216785973578639724027349761661256856144076110458269327005222625394984077750911366127076961256384078930578033724540093371603539124280262160796954742610691179766064882658086974576459434386468915378212419855021905468888849426360338465185443847138126124582781571319307840095070540047082718497673820243047323845802549860284145936781557139213824370969026048692483895550958389672913044112979840447400451916943084406807087278247427296122647420622063390602691719406126205268302253294251600025351617419116460351203896593327211963814133664758861375484442109012668353231085768095419093769238716345226017636451886960209594844871937397482211811199642617409548706074319833514721035262208825332235936178503495098370243219013693046553103694466914904446378980344893563492735045678580860747361019872687364599620060491034638095896249433215134270745321968987158104274580193803166794334987482330260430953214188434764338816763122874848434024972355714271280984757696470240090468261976894837630581927709610528760804024334219762118937098639131576507865895529062510543991542361699976276001113485775258360705589030123570699591558013503163055072285549340879842471748641214880490432347892596856083354188256566538799177269614782663869911389473496746018855841524142188320120674580018561383952545340537572442106590239729452811807315805758891450762971136303964923814570223161276836422134386029575694724645527016370377675705636758823864736743833327260966340366098399852768346737497741878679655707595064501648999699686060770814160115745486281861236223539156652092352959504121592365640872257776604784968405424058147696760411856191411603071472482690210360504944489119619349757906668611728091520898406341895934301732436886695042286000071609664758593387283012281183277964813923086668513268898779807909639843813966817212494471589067191661865290666474868606382306666276272209987889998873912932003945611360077257677260456844993527120879146957116383555994648740889597223340669179079203748663953369419503887696587019631874698269345392607149129692969385900160226723222310482946124441071300093333594074867500063074660603818560189668775887525574443567946715628646502284314330364806805760927465897482328140974492364432147025085209336414948999562504396734870159080668709543955656219105524060596637648929026413589498106322247864696008626129350368113392995815471686946041257697175354779944280595837309198825861023435565264704863239827185998738350652520781803521091014979512037295758830242497366797783776277783546454163145724671636629060458599028408699288467820155730870763097345328772954174806709470083399518154448770040003904554555377809508202082917974671427296787160691464494735176923079682614453329163959088071685904610575771516635851590149673490617528501045675414853852309423603897151407177986442731293783727082021745071946268385367411502254139565652279594161659088997205824856248220574065925203795136386921396928659924150939139474822305907852232065061649568808431191023476073852530986402728651361586920763481862440351481505377626523958541214250111251532389514765376553908086882826589134450390046089135373869799852124133199934763804187340866075195890874785188216066579025349969075750542403949331463802038354137461158287152879916703958084497500547370553720923784507287195588570265113372737964297772213145149921631872494349893881749393389222989937559562965620706925558173392214111044285570884452027072054043998442469116900547475201502757207508682287967476705238484345544142975997560811042352407717868016401948657732200004430828126889015257561265138167687355473138729246361962618096990416552255511668899893154408640823914758031632626626831887738592289727459025095725889531646113352934734508580872482852024935776754986185595028549262148978199061294955105194361300696702666894985573327542040449151649985754925398147540120292799800338269499878843565167281775968655465679567224689690386361477112762034920412439299330137890786417539984743542696651110910092548878468237498333265039711940756412865709300321556637066588730958462694801033725333878439482286408715508054866735951435262066677940408075515792953892147338157419079015338547695703843391797344411691046373233369433406920014079896634004360784415005714576898280412251329805852068272442453866214491638756326842937860331273752943659700168144612960249882874797718679203519697029216703137398185105608107309925079149132907901635051772499417750222306370076849174467196160706031335090108734789756563734432711495839074915245445230129320234284891612920994502516864782887986349101923115155112503854138381604360303799666614961488818235229237662521141509080310850847090018631460204889851939705551268252386944151279372471365817350395430742757630393539420140758745005396844923905874457225479122211264457778657259404714790004990457277932186415916734301291802568115502259603031439409648479431888566506589681766704935043233082516415201290958304214171505952606734467951089177766238466822348561419485547070682730843083556654291985271988949756401600795571090462512099119732629411293353866482279429169693790161564147192579557968483007507633217009129088843052445543454250813326325866100718225830879035240076191878963857188694517962096509168469418005627881779060583316136164765465348719277774308673292088369581115238957465342982286948145524438718830550953262012375672589063346140255113684539626482974317309269282084554679150577195956799805577566909944169259044835454446793611861353756209887780313211421423380908224472607400789506005049982686276025297484814153942089296216370145485653245046129360614886686983065209620174965958916387326675869143876458071350063757356750330034103201137233072412079209191808236323773433971217659758623759736068947257922511383583246882243557796728916845049580422785533184717378406241636791282030459844183045381842443572511094358316906797589067230170901393028744313916998687795130207583843781253551755359852120041509471088425110722363558337747810806430565241376193478310688972334529148692431767934083310722529380137362998480397030741778275909124107283922159237027818768094628408642080860597220250397381197040587040718591812153550476500521149251571683534744509063250033891197002430838450264140302759778088802437629801925947357680622176934720656968587749828028052511474756178738354518959099306284001335620334121231824320883344873203069640370195532605143765592861810442236977705738936397912743323901792773774968663294060613766237276838655992807815197853243752000954359304968426461583807386612313838601306099729850201261499393313078337935784371463222819911021628987525516297648549584461873897472333546908765691432022038101509776620279151812731201992779984335804858801805853482148959855347637773958090788871512527142600569042924762391383376655658279794580192161176099785333417358653069582215399739995907975340006515153175963198930815860387070981538318792700323106968191347834589491884402692411066218437612797866778726136455808366906069234668714406921912472594114368022424610932125949413480670817943837608750392732133666858337850599838576600675148718533283664793212621503304977238697989523824855315335061303580464309622407359396387281266898814870685849210257086908354755059383827363611477947448902132171798881201003709633354008843457447953826411684756059299574870657886387543901365484829140550190142787786089258092112410596955560888320449123808539214165829366762129272632500277847781072396419130424951466571367791269787446290859002930653132879445123561556159474821727598022157573073406899957103999528785003452191421703023885520368492975696829077491956881397886374407202490506444568541209093601645509525917581837766418647594174730644606607226925386744850671455858230910690571523818984058175879002528738875783239078706544108868154786790046949824168704699009646590559752051398336690917641854723880998302366826969070970003936143021483367569380436693185823368621307927037718549908683506170584688405513945016903255075848486344653107867412639338439438264121655177688544473246949238681628914107030947384625455908261514999131125567994757285866833357903874128913738925225098239992149816397314518207374296055045221906298438494859611670801981640283983713438094286137270551561650537470422646753758174955593021638316307165093188546835014748003609751707787446090197396852339618697972953537054183038973566102353347275959839260568265737717948784872202827791051884453602777298630461914611529865238158163283146099048279613830430111950378469723791126850703059925928695235327999374244586780152785440734946157061876510674143366088628355297378187126460897810281896484446999475625500582062791705659724931658225184707683793242424045499963818713223968786826353256717046406286249682496160559794359379932385525365280815556286702956652883904796513310375567473420466806930909405809693886752569806283471154926684299255010740928653701562655212008732870801199545120398651209623516112437865960363148175653069072372211868849668667754287722987885323624169620614893623084081671134885553608874341365966843927347755558499305661713098846242598371643190999508389763505083994716987644319225007564626239276574883076969637142355551852703302982841665685483348301284885994783767179681368403669240846193049409613039006277192380126261003256931018803581606014128332585199118401065016567788373728650471070279388978469155649767691854985337930585572066741619828734948464422452343524849599724646610613937276046593594021646798867251563442214344768872752162402295881033603593314127908619265806906208151671808561244002449285933972246653544643026337355465786030732404614572604255360675755368762561095334583258684584212349241260597126229398080630773728480671198071662375871353342413193164971037729812326131502813033137755728362080929407320028726360305566259925823248562393703160879588840531281730290857223750851641520224320993297334247805619961302438551873474587877306131462214316952222819366097735805053651448126295032040264812965898443977348423787655431035078046724155888841038372898904970618582403566415421257457131974570636854670916388177283174968051900873498297288447294078292940947336338415322676769425178157538241577817640656402673193283805780056139098649763473601605361075975262189710247865688228576477212732605793525031389600169029318639742403684047657828361598864406030601921124930642169612119126538415743058206659762497664999370574962804743058100964814989096053281593332189743490682691649454545865932002864311048866279896218411686112545636208038956454635919000434807811667937370822111642614399409649833577566385157175640536045805021083680197359271052473093329445195757886989929930486710085951417034048910096761530534155886844501451039029854114087556342471542747533584138688216682821486506565123601356953220897179239366813526677528570182201681377147342413819698101393650786232481596834917120659940527771603569186977625792963163930157419668335984014398734452376719974481975327946687103086036978928723747042839074963585804222722164799378126479264790458528570946041561488887429240019895083124766676999424689659757563255925430785343503087480263771423428738907861182010799150279754981340237307606971554775449642857505945848491026428780375557565943999369867476156419814174735289628025828626929199761098841011021205866194166116405984460988394980739155417510080380456569683364996500193443025567680036167724787076801675135500313590155252096506681397051917775043635940191707881704348547754982114366699652883955854042845650591677108311095529793356931945394359553244353377504740797989132454418294748836925196189130361339440872009233059476418400621521301318555135510065037113217234902898819748164873144132283923106182902424623327547877134079635510821786033405585634987837905678950758044325167754611706360593200279852943216103890946078649106999880696926474573771122191555308241679646952663251071445058746992971081310120311249325400718899607326974325265859167609981421376791485942291204721836550518235417299945421536961743316087418891630687446496717558007961458189680457456380929533326423571049220936967468295891822175282036126212751702861735307359587910218333012299889988286687244020597414743889830043571914046528733959529987589433812977343347656225578883365634330172632867865280938574054424436602811415276503521433484646454466365159229639016976799521634681759681658599870359446060157241777286763972709590426041673538045244968580749843312469534030332776729533710393665288662558266988101946222058003658404349829395550471192258583539069928079007660693175329077120159949515886953428993038520544397889571155293223120240759229031285089551892283488778680732458567675129384427193712813586884063026304824355497964821897139683597824587247045456477308062187808773171619982735037206574857293955651202858231327416882617887035769808583061226832792496198370422647776670880324703419849916546704626976046207063960333983960383896772763218673637590937443777009157104488022511724272381410097875335278795762346527001134835378314202638151287662393826404421176053674549267019950167533292093411928836101789251504867396111799322255947689346566097543647902882864214709839895593484811858063252946888979274406974353280002401515628417813343849022050079561755269272457215672763661055517109472784903178054354977869120642276532823360294184904372197588209384318994630155320527325720957722370506362226643422627456327273113893263396584754913798733084272210445393508965976192042332863350935179579045316235428804976541751566869304883699463942070591044254699576875596341945041549647106715480212385063624656587399921748614707001155470935623049181106035297553028263698966153207907105847818065073596265116609154131427230528340658974765337074847003768652924265025761714204226952122773682525513296291322499061331447245807610832329598179588514984486536131039245114989151587926161958395479687875837632496404978357666008964187790494636639029706709648785074438531310578693676401929797749610329844096447636760298063239163544816602703359204358307297215071031488866021930718669123355103332947523079134789498014173870266653586441646460635587307206366615078470426591084036191341501005942184850174814343603068214408647398240156003493244398288507538582060858976314169647446769165920957902775655908296995182125650697217155842871861665642977861142019836687060544244546624842517194746825101933739516693848742644503328902437736008681207216144920718278942650899216719680856152532427321492558386449835618874004419120032103081938598218889790553325240822956998194186035703658018067166836443690510502489425634087348658603974191411494234915149111472420269464835278161787717487626787430898027092669860059818297378471786760260022754679815877101450480274630100361766313225136545474451772144551997049748830777468269527030997236035138536812322297594495192806281505234101407053555183196622507149159071353212345833405425813588011931233792506865100937264158142684754905297763573950071456818387731330826169487298381729094452704829433123988105601696216373612570423018329312076020796318952823950836503161628192485056044073582376913164790708873513656202388594698364183676117160197934408107766472858812822782265793975688840038876888176678032856253160869249197645486150422494511289139443827294703807623018738534295446241345387753947127107862011329433701619832135389947280406807407924478226818101146656371972255366799834018389764356242860246563694464690184147505237434304036419668720477443471900291910814409383713238151581652525095554662098909597609949649120152744361474823917665587411516907903732985163232432085444365714024563126411722511870203558605510826989771795831321350969834755306927319916772700437705327734420969086967102743011841288513933902630202161421423997250996399947983632648499395724755708649994768367639557557600916302322129279010650132394622591281323790407133409108979750223331371430178615648526448272206817380441721005116883229459915081992859330341887273416897789398154213945524857845695059993842536763051501162630272750775925239582166011197354894703909033834358758890948704698996530030913497465449335383562943770787486524109542305383674250935205845510700998466700425194957006714184569025625751068361433289661471292984526520863670208899667784371655261825108344762707396038145931340859445129655824894119462075086379143419285570675075769196280984600629166170795899840465243920360129694488826890185051384167872922708206426376306499645511102256649066971566375366721917321777729395580844301466266739628613791599053004599142538507346111498094948153605754884932346469989772255793585706842367954496443893525133709941974173752167640792096119431518622988229087092370407692628516519159963900069403379005240793946206441926661947343070281669034786838940440348287059403420849300823768042660537607104232390596742161839105954850098639593533232564965916118817963148060197137165349172638227025110560095826726885116953201206289398476979265581185172004701433203543114668132640903422471272615915217308398057032540298429777256034372878329747733014958424037372718491403989344642519548928478096421076153261080362574264272557156031066069325997674189835065437781176717276022876938214152749237700551645446191357985488664120520191612548875009727270667084626970878155869856221339913205405772503850340968041636160660136885512798535678956359329703310876344341891297692174642946026810782790236612814811048452846579398554882759021045371322795338071053938545993645699864709662832460740119278657846468799200208428699609191921845192767161533299123347570868679123987277215712593745826404456677751868214005813377802211629434076085523396334849186759168634578876879671736823706873947561830217088743680130417359458648240012337564319502908134270443256601424910305840750097846558942375023035564161134683112143428657413108576212105027344163489367707151561622096097417639476258338476936211940805513555044164575425306537645580544262924265663073318675978988081053043084507354509115421839713242111167608631966908822656966100419252993363552446737923336545014003599468953278570453762161327098555559635783496446616898250065618144316012913050564360808456816389708446083783790929814350469002944715390902271960659835551286095341425393350236683207301089949940618596096281399799185167742245466709892454550267285061822593916027399551766768920813075743025846282142646080732578896753166742255436936304117994522809646223823904056109939867956041810282096486161439801077236547611538606783042261214988448132931033824792544811220520391537616740833429134686673906227478436885065231702855840444711659532748167107550724120385122939646842382503825498205483796923812782058652215844817387197636587700617682837597708565624861111943989778194056432752699509922958464813559810614318994171952825500639574678087980624608362538826394977184625233321659818637250265212811122542359019248827844086788810611643602876094955371675162770107975915213149538540405881913096573881235982067986060478852894047041435084271183806680859808562340071378250183738892650123298707108507174540597249069567853883352731754894384588759870451259836977922043703833411624870810477441217074910348593665566767182234068115370815018542373200548513346189634159583366290436540662541862307376872730813818135953415258737215305746395941446240576594770361520509585981196388570887004539020159335034525118654281342104558304244248831205630523822752787179432927672340996299927760329560431877215818681164764957650105908209601143345198988026825047335501020356559985065324118092921939481520850756354957356536344248360683525892062944839767719732493217331400626038038967391446785243946750917820423181851978992646695342303596288491695905588996251294473379250882750177213428107506801398182353218963085382825855305286630715425160356533632127354920045606039356540102299481374958907661063476530581847957451118032457293707042188645625656824915953792244904395994227575977470926831568492038495487149218975524745658243805823509739607720437516592086573848989057496377536165352147499719712035698066617619914297372488490254177208708365518917775049789404646773847333493924211386567626854893082016991570044915392719102497823237655121075253882191797406368759705721219229689113327269913248968133254390107826648449913194501693157810629333539654040993547586777919791165886658168881918851756605407666505146588251519571032619491428351336898436719115116352008710848541917249116898928945194951561175768475037154012130822415224882916066877924183428072732638294013467069643427926851725453433559581153511940740701639331624198678579839655465857565595677150390716146110625928568939108129852836915444308215556380992759900793045089473577471830344533639870196667249451482670385714952974672788122225934130206461058991138802315848492541700797900606192485137946899062264900027871560647703964325825374121407446288050511847792874623418043258619130469568702179381580075607153877559949886788325729321235849399987697496709072783430956672618773262196736957625855870414967031452586714831376940953457143584401334578984233808366985586705165053661735478923783918622943085992631915350344376912655055598138600467284739227912423129830949984756496726108960590400184733812873507687323202828665308679451745444552165835781931081954955815284973618891262590680662962503469720242485066902721897613963153858025499420902951082392815377140844005839728993046048855671813104040194833861775634275069247152000674072324739331099549690509282283833090421112082998429253571174848501636809154248821528219903111618740912326095111902406436870967570993425032776621658695608374877509218253287980156874219774099757873395404066218150822952428997899843919663629012217650866880062916996522694953528255841699987665474264240789826137490251143377990886656639035276481348085234566593175200639709707503560444255020031170916791755246927137738741688827975682825339998398111673505426120329862697776932878675561180813011565829898811280564454530245361869461628262396003089918317195110477486699946642514993443268390052625398769080469904029527621824792598893428462361360511792649638451436279086262956231205669575985780344989736484343300254735300101551219772231752465512851994913250111787113605259764053288583937922366988385537148059081085436918312236042327640745290095266987930830026011902955194719036576220122529543094488553309501374613479203984383721963371286977232473150251769929172963517436522736054308420765504349875433471717596538177404369898727800703215148532269729809327448478490168149690393068937851242573525882499627691365051511795732789858789830311083048539301612317263625019438711503258422151296545541150599011020362153872696055154943766675936475930837838779842102852202452513864828193259529386788381567453773065350156721711539849067031527354159952207141462859355993857356852335266879671978589780234044567634963011637361734095385056604601026121216478841004412155443893464392645344467296733489035543454091647707274357103954244303663043790785964638738950859797478661411423890302270396703022626166103662439687060765799703255512409324815285245860467444205093359299754052301038698043042930588512271898325366755757675106226448048508012924991493306674059607489420262300500444102443844554544531821939790467824369695047297474577921358150519565370933151741975753115921995083006620599432731418487018287252432187964861526476457050128336937252269329451624299680775183352905091391706238377739035733384005659176967742279359530543969979733039496183407794526883506473128980934263090352291208843286043626458548232419734440220942703062025094626689912400955839847282901631202621773682142432645086272804737378858031599983471043514376771501265870616403001912736367578028664481197404020832361342150780084455006798497168670530800088696350929145338716979902562836270524485857021134166356857865605773651589396894205873818329047305370598054029376506687494931581841278470051339471493196314403704110796081991710872580464486815562882023693215426898941836223687327439994175937220201041943446418913342186737586053075115567375825475593751282932507399102551666565114271291397733809535054766211175907032776181492192185996414169430915960916782430629475284404341861069708669007751095395210580538697678282954732022164600736405495184938016854908175667705654051795956151962189680312999345098927801691946551297666052221670710469356393028232878234609202551688506318390907188083838115458903820333001429012145980496618801016303466793044443574154197098038257817462800093596254307576520438291057083960007309991780573634494814131571100130745775181365003328158283489658213808458436344193003970624619481429403666394991497744737805552003096615220512582961345783981128482081342046914229303115082678882933879574086554670844937640800783283532036418439097176776755118939332840132711453957765118511606930062441802508101335936925846759400242363995502778874839773416071181225565035890625793260492353570054458195413999756914310389159361794132395518434033262547690022431144559007433796498317388133003500176542904760593166861906692146025479078883132747269031952388643518146128804054871911345718828466119842846472985413667669316215658101853390000564956731858646246445121670381419266742190937178453964973547534856775969870417237709402716540604855596047131137776469300737911900429467411177757135441544433909396971645610078640555711557705629861947582234304795062350537035639462751589608573117304605177060469292787273237954171750026081353946707185757370325525817311457745202893755610059363227956784011766497675596095393712612810102900427704062882453920750335927525114524588073302422849436491744063922801366711332117253685111177997397419367824870231844550077688611820703456419069745694009952708338952622581057792847840765511161422273426930560213791535591490931137777085957355372362481731163416273755384697472295788655360760455565004406093807624352704320673546871127294044292414940745451775424671505290976190676359608305533548446672558585900981456847161138623309186697041455620226685791729924214013101265197897622685881085793425233813187181233817253254472556295194077006946189777122382593838843772858345559724276818745068682411342470316388841225180134358410253501073690009868718648742989795301464229972632367497555944897705863339329271378597975017725228164311396741463231773471924545790486645759689910254482662965159995344246713293983308643867065092431309617965460139837496451287292289846508509616203908903518320139907112718701218621331207219330185719452522658596976385941017011309043843793787130417853507004517133455167999674311622213083802358751771127272639801486300303933032312974474075020333845653340810909893829112806221875533169856222619363734854566248244834195427485128875274752398705723223894651665236088630936200455036398553823421083012829568831830703388439986213275640262819770044497001949112036655951531303492686339910229403624939327860839345048449305889246026828420864658096537459832080413227468672264292672583427290850017511753119028748186856171219450458765467510256679534216204848204295459630011559700448910882332194149060978725165130624467806642762363607815296164789756885442969105673901091755415317721118386663334693415352990492957632396012569940284285058766233225244327421801319362403642322271408086080606171686267703178944882024597013304932578636235771829721972676430667228975877805697393763882348996230907655259465642166884432050042730781033199127683451624466443643499016063432280188076801761317330635777868690156777468941352049584573396349731768091447105878713610663663848946792298108991326229003582037976527707711017027746963199153979374691045365967747966755754641437223732031682629582681398137960012662144891609711581242028617206571942346717302646878485420540939119043424542918056875382569277781028878067669058984338037779879272998666635656539414187431364062794375513521043134551684122263656732597985241611193042080687498416697725399466915423603142663324874968100645331617693592281130018831065879370244338208416404676505445966129387835792197525921206024941681664253954469370195194447356790239864848694911269211677662061370469051813727062763740592699472713319923495211606393272396138244552220335260056850561481672316627622890124328987837437175631836470627014226926084063099675400191804074215497297991592405552101865540668162165168956518431801864451411948729969014781850345229950697786042473670307983502093311718453796614714846456866801078167627416456516672573119090637369401754670661140169147431973345419463242541317212899833118917655683771619493322195049094984791622152089882420588929017457170416325004881838068897556547372743782378265917388620454243775764967193488430743278474889724459533427614518181328290583832635352998852271941301387912042151231915394731528808192053357629042351713294422389185001164784324739551544266295188523213604487437407861032865016186659068953801598548488432302481591837878118153171953926636806696548242902122063583713165249621482203065694693718026187839475566365183891184413705263875358596374514521427038646808340989903797281649609380492149084614990321002059262660555765142733077171287662014475139197624002365902026270454660692967525066762678991375966976670391074326776801659323000935764547320081279383469223220410564638202940798541489780499016195582966944225338108183207846933263293420635390207895814763236063511052100312716065713713555221829416153403186973616395001529539644827517433853970165944854318615401373980757709368249806634539850712920085661244878323547881005343655596779642808107942750548697815796095869511610837608131845302643459827207564781454894197824019810106763432229305285173342409240411201602579601928653122748652776216034787115212170111446197974049226843197757037407884888956779693125562127315214194337218459227788023469145545185125040275875522144058683152307873415450118652226159572239013827553972422216497285141787970892348940461230223602494530527754552421356237394720916912648679428204935610101448877433176295797814337923296778970291502048651065826376022429159683376772385069063316419085081232305076265928173634883859408545969127874978517502289454707816635289981347665738994971398467447224715660165136616844684186257215887813041127917573287496229771786865370963082084415410598846562961315295122518381781676546194897541208175562928292123365099748452872120091650517643654217397518326596266049665490606786051945665536638034446965311969183234088177414830798447191317802298636764404482465141446723554655669662665854016462883073576589153394411516017337067331305818527498398760852221294290353789690368698873453890165539308333690318728917505632612722253594291831412775858187989498864544193400443125030691086950946737508410549829535163654234675084696906001835794497357036912655689686914808274355690190218789837916265775099001834861338566482692213898465854025737987364063835854388938777142851931754207199119229193907934978491718200001969285880117644030678026413233205747165266377809278634040661586858270928367429510555242415538784107341128122758265227751150416082966298069273833876777174064672103714964986774293902233400654325243858399804394691571997539613044850649803203217776440938789536594200380495959794979988895674844754980539224534085646574875736376075917049952792472653970423990219159583205680158854959941985811656329493281118246178069946874617549282343793839067994202968269011309711669014018452302283909077797598887011095115320077913332410511797344469101725336013673355316149022415360164708530423853852419780309024637633842843946190683560830846135118650327815511746380140352315031445053581397138573188159272240689933628812538586074677405393454929903308679126877094214827289338763435326097109263943356087836088128244028800647165203551958525767427514525311403807967240990257650001414201407503662162084515241057645929515470704985297982571961731376602409099587562175140332004949783765084154509835406724983685369559929871355588766235266019491758623375731295598784757920156983300547468311114788638476168140192758937507358701601119484867527366196170132328812548030838040043563756110392622899865509199730564321330608342542990016081706452463404403727425811761311252982973330549947848513004234014164761815821940482562208670415284246922933024006774507793878256196194929380321936102098850337079182391208609056092697706231713773157753815942283701931401781624484238513056767012670865501855950053989939856175132696060360552277060849605079739153972772948692280188424257603107792275343260884934534436018152844096056800214930565715784886619078682528937381522483241228982372367524683656099274329855971985070120343134939586347525010053019636661616256169586492202364359001645179093905629471378813259012500918662178851795737969576143411786220688939118591757503708828946007663145148697964477078713202845693198695340874749289300973547428272712101904444005732014297282964340221066396199132422817084064819138107230502873806449591211294599781499406016669052088775016597656761359685846839746747364559710721192091695722421308623503659383247057836763240346043530984842084384222508907630254019444039763248302483286334327814008516786229269635906936934839314159039272266445148317435194177253831498915656739069728008258641543050652760861968135328011161777499074233627245477830984762805761441216954013572349460276255222111917016185765827845124464765124097739439900504438518624703693793883383739015312147834929855664182607454915411610632699713821710073686059727678256820953616715930379283100422427440247803441822647987791568608561821902831577533626830156760799613829268511626148076729460834346689288891555910224730720056923494476009105183338846403255327561349649598667565518623178491523316554555613451306009805034925794022138003959502854057936740282860372844447271911286989363497081434879532592054078691911604237564105655440547127917220484550149465095638183535617550304809457556066980469010791928179395736757988044751784847796747612371811992772336271521568844732605564643846620247109544180107365734476052259256170277289992412201822835479892217422396651718433458513353518251932703923684087753726997983431493340399336381096750423791672883489639704922939285212832541858691845273077532205057546101294044029235250740876963439050623793965949785827544025207943921763271038480629324286133595200029147165492850111510105491219223304699612370077316510824095446205848385856270444257224265428870495907773444354747713755977208083567392932271579339209615252599027710030907411352531308634191753826753117694550544745372459377354302215668363233915220301129543729396026855448122238617961815880494451284403699341466888125171906679114071001728240787135492685741589350424027334413499597701153895405996485166224422679065541474327793438406944157583765015096035884001184016053847548399726308492468878194364574050073883496440949674373712318950964516462214667971470755475684085272129111196106842827426554143471619387431638719272200599709201657924425515255355840572429510709524690670788929131148798593655332650722397969046932540533880951067861665958392960750677236944247511038818424820903223384650961569275952845509116116942561765662136991760994212945355244358395548518998507023793739536938593017743214744629547003504239239885403976190909728276056324857326477937838548881467975420002323970883781791557538828248544143489661961946504310887837311369848567230229555702710244536753395704266354786338860785119995461865104210733465440535938486465280083767154582341826924820800169681516346125167238156219319803404917834107949851434821955397942560798612159567538983751958159524286788216718604089244347956624571413016109783774347222889193142053263896171742832373442075497514573191088786891709288475910670398401651641711984937289936108949420685558398872305648564541167020255821663176561029989452511991123882713309592099681665246589772582865574781065148290924605172105105105589975695131390771287901965068634340380087927044506147912939161945691600777439352714810798351279128878466676896050026242182769930852128825041284770801305642167670455118660887891956593605488466447597512059753932429737706833721353300115791379866251727587159323678047884159742689383811768488771329042893153767370516520535817844744595674930488820614424890596199333256956692029728398616734276464189178552693314659411516292473676946181094174441015801680270063086946803758735132484690173422874781035514062481784665247776362371401839347511456404347713879609843331494406722143163537927420505858196073113792379446759293369531020394001527515169367071122499250502667168471199442185599786809137944056334758521745306626115209775195206843291486388295159805959440133706600492970574534620088614293616796003443281521153905207477272897839667184967897123989287902415198823408944227787713909130655314177485944881685497592088984237901997111980188263058568509810388360144246817800449668615491433945784720101383586038940060417200091543095704695510231399990081297179418682723245101744736908677994557516475071422014613651823888775616837374904120040434064650775216520132688307254943256889562604525289061191752743371352312636929488559793235270760947671227666329945867742656849755357165239137055358851588864998718304985615115029132523907328686712627006197399592620402967782554428307947521827515300310413392218584787730079318406008239571165079550420319726048245252096478899434878656692337839821811772511727039544513126497329223008014879377293278539942202245854281115874035027204117539427753035128922883456105355766357345301609397305178899809137395815803445257303856726288344288824895386311013296033079965089251678015911141158974068427420858680125471590106266711201209441213675090400763507854760761322300098353178941255221507426926611327557547477506563632587301075239685297251898353579314413998030200466190659688533600281493037841223898065885919779423581263209804649175354137780142218114132014659738356030613014795370253283409903293391226898076059886470049307369964462466346194639346186967577976288584325899107324354131429666342330243987969553619082626367067998742145294778831364632699504644889334517630406626284233335850568393171356641794115581738422067514673268251364461013059562399487296952997523953868223066142577426116749767959406901143123052707145028265364164239503217468463268001401490590850411849352495572700439287180251317000202867988874997168689891454026723554213896566813164889328309939838400346801388903863021038839752622561492429371540574177203265464582098987094788738652636106456818653483183111435795735409402082578240251745044299693670890546343818517266729316270990990593389289002752991861956723623494446952433850983281789988343322174618650520104476571710806236219862294946234683227055512093401528432517015187702071681766746410676757846514618635039912006616165596855371051441662758517365836709522225605942073110486762190056038046749835323568583532299414000977507802795300883508198840490477197185993153206764312368809230944656368856384371162831668136039549639474487245181007500034086908429659200975796443499294908876115723252973917792932912902473311663366835241621022371411110342144010068782637960346049268717469553083060982697310221077345420538469464582847327157573158060217518121236463590679442952205901766576369781855539414698268848029548298312189224190358296927291987060222432864183624496144635070256977573946791456046904470237932134894519880209994770503781949255281715933071653484511817004622983098140823968354044521136812917641119432364849441841639974798493161475642353642294144117287583365767211860692101502075637954462968334684751803814137213634137182766197838988413226002548660668834650659851716014651572831694832969449644950757419422760254137233633115018336720169920472098259726062673290901376488452480244912349582216438701716057128981831041962136856821619495677513312338955835179896886994831797402952920454564685798038664534821816478122531919557650000763019060089480610097499698959891450827430892197574853436626932976310460584306434265982051623360047557485652736507928975502119381913048252054883575506880965186891498842419922435984011857053110654997412310006375674280240457242725866774585793031030199285554709267519248679612600619729972707779672512770219529042614348235351676517843202781760323905795503216990468198918198020530938765325301238793698717117975881698944452159725772070083324876196762797805152470236020434507862601187137288329377292332075813623362023642295595563813148058003804263730821113196615504629806275846840221484711173619945456926049327892753772309167818165257224853356272460205705010532370399199184640098309606940066807423299215978411703714543505001435185189364648071923380259314168830218777210085191020986330791310272171958032610863506752712465978893782827303171383744342163860319758076304860165982330324261636340483891167608224078239234713445333322603149850699997038494993123811008810727553327522694442936030859222276621036175431653236272307559263627956726035199935916168241137086921846096546397622391998602946895111558096942655071262514243903343016400299224116268544705433969808313962559206033659264999034980036737828561010642619066903329467514945230624205578715262747634759989231930277740910543635242242879491023416289985676695214349664128221523597736178742817922075759686311152167604923757489404849325545668759710702727661400013244290615830971670784456342680561402738583880111958696105018716989728533441411301517854779354795996953246811833440306274153450962260735008181200563354221627773652251045486781235605690409179523465413552684798348597981791513694496433116967848220386395810408073685246136234052243518159125021035732027349646146106820005792100177631223627168131226898732677278046842039428924196705143367681182079686297178205101542630621882564420244430844334828538171629100243181500502594717776354762717548014993958724593470862147189414728754107781538087612732092531968342822134344115023704325836601338873924040332436374239462677260455449729228976808850801482145379599223071977906794692543177315307232434707966930247480551478925131213211350803852070029813961456946095726091140537024279204544904542642802530808897753527043981110615054789087781884875295785964388098322891433112101150596055514154558473431617816925330699510582641951611265353822457156826513059443712106666073150416923637374780692125288594274310514496904632698150488554040447190158403727017898904872516634752726324473702740487616942843900770158941839522890890586207105253606900207358534072990391832533779745644214784411568406126360931450602281626874845526754700035985459209663078867999072105357652713293888026569400316004033131803633766517775602904103315350834261185467193572373198446844773030820511760946114332667644985850369411468346469607802935773118318391365179775732490054674130247442849881629011396757509186193982934171950003574365084518591640295891527707214179715376616333299174102523491495722517122651487074340123062066438313175280773511450978428822921826430518510036995197409973616221841420751860880453194517313052880546282266696214214634883078912799230625885146177084208139793082170641222929138967521042714030127913106226221112783159751031057010776792923824362002735346064633998561383087980943835730859280434272404796443818938923612726871000955006153932828224226562476922950207627157668471079093396302018743381671325543135507389052839348972724867730956636406849626359082332440552091116358671180157195573776775785137694784873352755528026178364065492725942511687791797205841450528788372256873900692357383472843561189517444212697472556457689164134846957085855779941555526632800722002306830274899065525393247194222676874850137917269539542279980344337375987083334424244262969067524317876150933151312192067617841531857098237502463196766748325400555548622486478546138940483173982445449347277815122507566204789135478482600009720173236417557682446651521837853264854893554569848273870399232314439148808733430653781957492857757179375470134646240490705518601883412769953011385476759730834299350272391200656316535546957505918983917472125770756185040222429299596896998716153054954916512712899419749863247436446987342579665312886630770297112392292953977413147722285974765175023140183294409683694246425714272251413622996540253411536786904053313789585758726528408853231518291510066271589771586928174406663707214441849013381265894048803414066517931129399773603940349580262532580227911913043195216850454223226203565157249977504020169977555628182340166366704349784286245135770204032073681457913133508132863882186771036326456952371171986295314100060591005701091930057305153425757737780273579827908567242572962587646537683119082055307415542077811400537473247133432877830010692207017575244894074048881506686001200286037718407473131446704381799463955194973901131946356810119618079122306956275811196397520999405826888837934718803406985319211048934026101772954194689585272885589091454693525314433889024828951729663554664982187025539565172293784627976215142359535138956963953791196387366805350819860374864935583976014924181351365633043942415893890808060318681156505661697219131829791496528932897434070135125537217373340849066566109200327575993598596502304482944154138349732162341379455406628139174648009727980480347213101582569678149223511552334147833849750510098246954329318161252644530230282328684971519469169233704706403156200664686822917844271112665686826841986870598126669298866673364505364089028984652982924788079937326332904611767350415935830440301066177339674633873061778402607599793754618454518599640165667575647496612091095417578960345832117547260982758916671095404637602384577641224714651180852362721123148936063974021920095844053658818892412077705744964587219391433536625858963469943848840176407611332974318231498455397685813796767275445797067799219362972431790374467697679106861322020578410534015273176714432948832835607422708108127862888599348786710731177398471680482056494875734668985403812924375344734274649333840768825319274048153859034325745089490111170430913762247431002154462165676186136155361328457153273718342947661306189944922175550219803305687506920412913178663214375612398478166135976472997193683363318273127327968611915343494791580460619549929681927370554827029456403932912047461792059429680807307997753429436334660485261300707791959010821353106588769545958053397999469081809961986875177732094574227598150281823999741057683129813255258989110604081628340160248881391130349798235266676068590518557095564154976086560995221127441215397148419969256980517763564293856005286063516691685095042456096687322338416083182228130996406730185638191249243475541828991390586178850253699449287488686786029490595067487470816084961697667280975996996619987384089977035977697267703887665978847063401245944189459962726805307057763658881971020368885523784209100368671736826131004066887981243389072207093613211781237075762259174067791546248894693162040836071276661147222096857992782854809835544082276250676078437893291195045681573324357998092541900407519672516773399366295830197785281123458298415381229847077208693598995903834035407942839916636065110625065906200625651457562460387296030131615294885546680195231652683594367889883895877675324345858664962690650182738720798436461260089533321163959679008748814795537046453594940357862467058047236752727808144723253175922874256745639204736548310534848966872136488431886507621115043820469201696319002830975373229264632488877015136457583001681800920818661693123841295038174084666042437673069640714143609673014348363719692209618209537724251679112346933695751860942100103538068632414381850205058023466696652867570977954394958224703061897612814829564013770175790941118695520647544450955539951547545865887850182252418677610353003059080121212797822512472340084814092637694325216240340193433523346977517795660609180435420256178990909066574639203426981849494911534831063777208675329395428272052172993578987693389173652800410117217502642471281202269894905193234744645374183129995800831768841427099259015159907203284075964811997168386131344262033043759884180319062331995791571654181743345454426281511366137270122846827904854239282547706048600656559379787033301296901425799135917707467714041566824974484593918778330284425666867100657659109528607503012248440861552175080219021300379979081716895340215704058762029607065032178709549031168942703215354088528670443982856287068401790849282642523104854282368798989092185221595314434667793335277100995171562347554642738826328625325328091399349976970700023390746680931231565266693963681442021523186484998250911028386475196531369729874099246132774332673239978235626342848399069890835738656376866409758550463458006989837364891608506700677469664227290950400740341220754823937944793290171973978653846171391405636219103793659199169759623620825031798519426374178330876631698783114836755900204221709143212393429814227271549807029055849406352273893087289019504661066830205410677036156257293738065239249321074337138702805444954928233189858625987627277451204443116995001792975144137716555675664800979547430542026248447848622311123409304000832305535644474964326570810197670690505632469392581409258705218687380009991153536320830903852713654680441810374788139248244237280864447846630607570521327189016243469478281167382696375204293990101884069267645014338722638871982399129289407742837263104239570692754751024116190278272078540624407301005069426768526749172113611695166924848277841617077687287946555563297005160898446394932836877722760655925820053761611051452883549925595153005766962714157155748531975323982213466174247657795326141066618384713306396170692004477092521268352118585493543323164333353437622796919640954050850189456395869243809211461296108381508782819220587483075353390206556046725684866864677057264963758495629926755224423880613012525794419747363694906529844951481575199921005899991799690657767553731228486854086710647187074035738966833403552178626730315862730957933207536973138715506323890888626311645116516896886302400013301530723850381524725608712231897362048697014917324600101445409400323672691289251320338471879780855667865441434512436627695095129750812179412262845042659589479243174732797455837504186742683556049963950239970864937366024226716492138070711230472760459085205001804194143585372358365445780817233052351920694966716558305300240287792493413997865825688975651959325930879462122479195748393606019775541460904291398118846740521883722961619551042654695674753464064778514085353010499962550245174030265883890515732119663649086766941272720628854384399850643493021700163470623345856239359376351971433374510097248875179664536671619486678488687181981304326835254577297393918358260538139146907325167195556668853219834980708618360036891718543731289161194453791182350371175815026212835735873996668854711020527300531820433130417551190572511639398211768612231643938169952719459878178806759351150428264403906122842440468746537682248234683229166941212512638112884109576128690538357579606529941192248472901413819651914932111935037951702948015865557699058866831313530119001125186991781469395069164542452786940164747036631876473267170257468010575891075164273307790220206147081246604448035449240076949773459346114244555675731927639731037444121099918367254511924915891553819099015242426586431974242558435774557509056261586489528542151947063662762745949380494027167773540031158444886200049211303992277223830564468716482767013998955923392731857177732380292213231371554044657125537762549505440145041936011267243523230276863382039193461970004799526251494227865089237092788126660181274825184041428924344183545694225943817078033795359389465609242045926088764809506203173360958665969194848732648245315941314727647282171901099714312049887005503407411598890730528479494486869867023116897007997178432396741272326550013889554014724177691010882286591488131408191470199056083254380543152700062535577505331969562838265961224267477783438225769665432767539394975344252029728703306784061045706106573826742603280472061435146668472297026871364101216221559631084212583473984620892296334977348683337985900571758019792135506024962314132040333682311172005984893981792099548467939239240953165663383778227737369235708897084602334816834736230643128188875437351087604869637199421280446905385057565494866260297131912285711291036841598151348051026894566875311313749269875642201213215287756029290826324706527963943326603371175782133593674650809423801669166121570470636446825706095222716203208737221737367554596134263862326261759534358112454498558680627294532491713101882016857322580485910160807181408354034695343172546850089856540464160341028739784832771473039525917729723140999260935097243542731784530692247208538226429058443155372482207390377804545554946412246491925383959529471024480015468377114690424992289103731742545270395561826035735686292730656017574920064581379047448268603413508111915465828492425106537303019960288464004256385903002121038373575261848017361645183526501293203575295502285771213782908810033544122313886130818890008298035420670690264285481407717758740341349846946121773660620321129407989522031970354727085761684747460400530313482962719820561796216377645651599885038104043809559163252838440747784996240633769424511807576796675283212606899169154534497389407938631381885675749698803218210745518752980453355635244409708075329222548866798065483194112323578955331632969814261425397168965471899186525209964679724620854916471906401816173474625966582585535013351261236086683145032000388187953100996630359911471552921152896338022891611572436775750852770416187034207587789519465047926813658927170345460919301053432002235546061652627412727863218534320541762585854804009722389285674381916836388058996072883737136351400928069503658526120097775946422924951749050503697527289518230378886482994369845488820769944734783849849956459160177945853605609047100398261298423749876165795323363206288485905911656761840415000183275599580615505276457255706492021794951181819442168462068152788495443213000454882262174389466831053291933421760673596703006739969572658445173784907219078776504371487341849600450116717878776021177128828416961104982114328171455769976478112956615221917818119654653215416107726825407613013188206003371899318292755399826074928604952871569261772575829956796519916600441330794970243842416357333462541739108245427762518071406011649535467248437707815315330365295105879689099904653825135557630173462801293457308024300509810039111998994055132397843037157236409009604235987170689908608564165470541380488653618191068758340691566951251528588112835576267881049785986117019412394456761277484822900191515447274706151565065580440792809984091951683602289481244760627687576930377263109236208402349659544346694499416798585135107674219605913188462596335566631112022510994316941286424542716183927784570196459041841606982456323322720912985670523577352305622207545922608482518189096182691330256370151686877381259431234571667422385684645814534946877320880150589830179350465041109940911094739093443482400400587525593503335507047698275893785499229514293590694440448148842830141787252993122905759825180935231367386634941329954262421037373039082427755902000543343303128444343867789047152603165587501699467533087830757356346253442978152092348184922442571769774462814962076739766409461871435614183234154669778942646352779741835087183878378625902732714609289486505572858479562750125988464176675986096351516565200269265514333273908933718281633409490701594185396263703266683857581441760018946836732208416237754286029705664627817001595648126534918293301374115499669329865594890042025985663325016004233096035568552705872479992863017557147873178246194476722585258585435409457294001618265795865401639539070136650907239946704271054007562029147693693482762298937441489587012440027651729617958141568100702932099482091372848215180798851395500507386649725255339074290395092938165236095153091823774265224799564218144342185721798074888576895071878473648483248677736967257246649402434558489997677204576471441357298733646248910399947018191085956965733007965276544206172056502454667608924854660585895192264210691833679966467852389619058786348721230860576312900224907507938279463931277126311510880852210890568720298155749386728128915496355707539447136695848037533186750040160108985488720000127017563543304604771460938226306486732453063041507393691253771980618506446141877919851631989004624110665838742769721121534895239657049446820700979024455627548743587562978850552916554054954338052606425521631134091458218987328613375187797529032092071072425343847180333838754782470124066842402916060146642343513851886152299451358631541353037395486145808731502737163011103846511889460921483900308761266478157642453933007249924183170188934745318041190526370826404531914128955096352287722916494250466821898825536187408039128883717190349985398849535839325301659641515360761203009620696154464798029607803940057403919967402870344404403921413176450230538955893105621742094391861714910393990152239546830352582305475813407178340036745833741337014471840988779081986519083307432085815362789662494821434390852619874809923077820921994129252620953806406088232489490733287544315403334061084706571345771703900067316120000803307610497049164132475306932271971363802401894270669496681468656261661919906283958320271580002007618878468262305576303177430305871020696753932939093013041635057327278620566624171007753193715550136120676182675461498282848482295705266255512788994777814777469530693699258782360873904355467018793301445654045598739937235942865337249672485145660819729805879896733366881111082980054213481561284234676924115204756767301280363738575645556030220290293754654857085769864283426180224168643828492173801075890052076922003026407230739073219283378632673869366262555246536322918052671276845106754921746663394729130577045219768249826405025079270842625277256116103847434370498220012597553923224983467852192957078526869329564786602552396317627419255645275236818952530649989033289095930834808069652589271409638101908493051889616501460601395876296469103225018604038332286107558429817117981651169711265863722496974684545246598097697039004581687720564409943467082065642809148832614039370000085007002448265930149898913436843612661029703388996833149316245317778480731798675375524488828575410887439403906190036887938402546639955833245865510769304053318421937073796595390113647133903748301259335303178348117175780074117442752850763013375600969217131131394774153864428252776473644428190636083877046574546285096123439663765954443337815213382180422037540627066087027515517116815150256721942408168947193739547329121257022201964879016746416087750691065491437966365585704718529003541369464745411698279210881163388379771184986913578943562938121395448008240866373760321618065378071164165112343359511956810665056962294163648789601128278390647860264562383754535828295519584041739699526718351435545099521334488625557274546860923347664442219240431580397282703333550018912337445411347363432140480293213546750846621657453732498843660813568415474977250377397048176433035437471200881409039623233875452201389302612328344321191767877299501459267745971420055758518167594072447814629112462919084632587495856404868518423071243209445003617963507338308317984035525692165371028537018597420446269465962600176151996207825570855290432993617972842896543635975044518839300475611230732125213224511076157944047493837953692224119116622624584478030963470672203168933719873907620769899708989155105084184836034386120191280845023885313436616417089770533080050300864374440558045248705257012551333935340277575146479672743888366509369248491749259439162364600169796549980314440584527969652770331597803350980574857518433610366176304118400577340610447784333610549686239665256499970673296686121670631354219605931034551525738519542703199539236589808792214422525688943516251524298733352873177017111120660622339358274141868659870624551058874052836461998866176407057335376324225855983313566596988542808737336060555779747881645404146869741748583755627925046073565822263440975131162123544976135624979044011005190461254511555530147187798114432821482654887781942190422596828242712291637663326811577350145624464005446955045923567141445083541327148432727875054397535364954078781148496839010541876111609049396870127107458336705663167513885530522227479709701768393143127230672431792470230850609711639119749420885416530573041461333378224020541564512916119763407242138854981693828049943251555738312429103824364220182147214603371282817882449978772541470099668235930402046083925731992611790580422930472459083537247416542602189235794642250902018162425061230288718144331501367761648466027423031530755184894202119117933855945216822513346167816389338554623253942822186452248828177515350072880715230066511710041015509160441791056727096699487109181354265138274077454016522154546921706349105403756340467723804220086821532099316833576387095959202746886498852749590592191345632081797685330751203179792844646118628563256987649256857359297299086314112500712187957026210063502652035366110474595518607723707374199652388043972120984765945096957053032275613501203769204226640912663843679309699749189284659578295379823207322611870074336639747215391522652586166247892020053404020645640508618293294465141722917216674491135090085142424124522851422789657121785324381031680561814313726618665298451809456624064410751001134660278223079037054797891711250407484039266508065940814058248918312324412087476463439489964059668485246667220551146332129830135152560470015013549875088504160334695551034160191387755621800747870485182545924067424241404869007897094056667791662853529371276637339076859997800788418952314597745164928338895557381871720197664213143802738873002341413129951221486631649783575172562753118303575890724474545005756261340551162267170988237633987939161262753414772550977566030893303673430783859535243518663032697116016582979306666516890766120277913794836536867340253456735474172417736319060299015657763893249104096472901134614759912330022577499906358055607764874824193860003570935259947297956157759744560597180474401611468248178648421015272216815687807276082599055751728367528708416099732533070050389900671562461157339796989391407484366534767219571314774619478541111384862367636537089704996339931994472345460373924871587453547410638247906573417660860274966409780506078214724178263968071507053508318584431971668142001963858200153837604048500500867211964218521237927779976663692783405182733006044639042352843953525727193177643189709364249704840123070186555977456056053364683875666799014484464710382754446748234592197066207633458731907784951045998538284804761406671117890390055497383494020353585290608392405744631108534473717686979849161346732962672887228824897386926382209066968827838613854615962511138293035760969673428408703286602643705739055423556029452825103477142866506604263900410677097047783326297795861857404070194157253475287649285227006772986066629963693128770268642652523311690019091221242161856902181952252673990067071801645638714030594216110178461207514878237075387414412830828491788741156090248716790899542594025128771715546008890821776833946356028815208440456521480424365035240887079907248612141002735489093699499939306555445705210862176490068082372141841428043104964726464778661352171867603476934407897819962736141595674003384452108554836941501823479486874253599737371115772363627215908416700092557826852207431710169219838690243177017614483219566924340845328847732194792439864270871181295515563821175058586943706785232478734987444293535862645109077904230829717281193357168995216270426964569064591037793674957224328769830266071786181919996314646137149198103630086186924975596977899258717555036383293127919930132478546322402423119355745099556939728179536676783855684719538550983071427329724088945284786356724425945925565487731759694860623714228548815626610803718530671423477652943551949127778128863728289503565566150476923966863065031677700188761598684883991983141559555305884341004205668127603019410012279042314198609026375485108095917110588334359928669028775347822398862590439086209488900227189264008155229991192320406392309760264215479462106458842807519007222852444775441796201461200514689213294880112676872750109481167259646144418666513343936779155690224468471661592920760668244135694357558377774655276000955023975986906710296524003049581935316494929953117433570304759549987004299812823691207268280257220039839387915447199812114411955952005068611599791099527334927996632121182739711483483329080489701158722719692873067902624433759316280649337413369809520848016617327824619870875880616646833820221470319303118937192640308666735074784775608828806781118905723324449517290922775669444935764011167329486381933439852459094021739623927657253000452613728328174244665855611979730374558077326570345192794814235683375390602583078239034084901922566396643429860505020867162299008146581142032719535904427721299104244670840280833478346735831602964647497144574667557681859638872945410792006985499343825650177775417552969112231985616039570944923155997413494358485202266110624716328881369478286877230785687998235321841032353478373095756454421640342727607662237069923370873515135799774775137810335629952234208589752741506583833919436902551801408446686071097087545666583320144571868673526995202832163777876409045347665850883915147327961847996192751393139796049010846833468475462339725628251698731464763911247440668525891740172165317427089538377212679294217431729427315610870190893770800600940246872394703266474363160636917049716903231290531847107797144302613109406313559881081845451996211872709598123536289576841689302467769146481388940423239831588176319389800088598939412420685156554061988324777863762922125311357203100245543924269102528472515250195281979383976084738349767804615349307645895929663887772985982350195791121741523590046515848732373291899663924219440264313674901408547494777512829979484979647755423510043746301486142119694969787644084932202735254251086544150980127873083591448333061878971413532148977261697701746280798748979311502498679463661515722540961854934187542109694283737365046101116428676727255480472539822146944986488760702336562304973292349940109606876304062774228856390846147489457323045898544091468166681674410476675350816458966205278930979419057293788820648950871299302347869755510521200966250130578901218784706520934041697256311360121603109118828396156874113418911481142036059334318439960498563471588419913995417182415531505236044266045504833392984609641951356547199283617363727076282664008305075670981874023182383475950363157649150908623811044547205008423360945237196003072818528722542653107697162999162533258901591151218229923285056828598060661774019559205686960550324001373315096996304979626819988147312732709824700830256061565512731919781923211354305894048151346978374899183167427766482233284044128966319705233158198679266451494024572597897502640921922957797092916777261150596081233296714936647898067306538991041850558425651756926255076163247518051197960222991205844951041596932765791162543693177823508923118501580738143935043044620504172093643897102193884512914648107277668924868891098581464200203803312070670889905432973485895902530320975117117249312008036982081547857275000434667850427136057794439805020643483444801544288030576643108909015251002677154550934488122239167748921646137931027444225271938857126587985102186708942864488568407037979968813501904133599692097029116404615851249368230282508687530497008187445298988054466254957315668894458232914222278261010747581904403314180001975119687930679760911624159929665865084342706594878602456687844788831376971170335533190412707203411422598110466132036791513870119383831055008365802410584214770232208768045062099750665299448643559405740625096116612590931599828049140198431339330273201984809244533082415093592876596267346273293453625563951718545773621573556602678593597091175082746828545174534272259639829235479737485915153299152741182079224965982355532136913957865022926601071208197541680621168333504909281849227658685619538005865741642144992302982288366980953268474817822198274619522438560959473757440662993442223379118439301786538527097725023968948439006291783882079388169478555994807897294310420320042274461132791561053195703854474718312071717584312380444504520546544282141339732742312128896771438019907475273258109601508281838608254654143581845435775808524617947914203618718438857119832762271470347473709736360043116845482065171874502822082399220499774171564556050126734353595631021753803997998645171200804318799623207706503741163995497576989714836737020207263778448818301599027568513566440273378179104457361481644183883262534687973605653821369235751164983058373396050958122348266110800065850436483856637872887033787442742564367232867599319708061848443332556996355319788020104297534811358116919952238133017114852793346728010414247216840327644056801236257057196880932926100988755022040594532797643953983318514802086411762625945738884869822013990652854197381020361300406435942580783262746092606437073048742235768728609158149022236239846258647671982484134587403116714716361765359794513755667987776126580809892479665554486730524815500035633935541084940485454672885258792171302822813088433327443178502326305363686728593728745384411398794064669220934362601837167231779105134967203578768570293896222756967323676989184934137343249780246646874728926844724799331446301793813926496094863487086090855226041354314305871123313846475611134973165639395888998645972313020644532998068931455122956831973777967548857450893077700112523898181132786250230247758120207036045815600418607696779481499836409808832598289065177306091580789853331905189716363299915182876036248366919316844945904638346656328681846610418528929610469150427728423565568097646325413294430538763243931509175858821768005031152058814945471897367712926869439570624599046735873175827837781546727705039126802172197642340126801758465427846282611850043416677888811949388892499694944319309490166013651901374266821968620960564215066530952048437605554172768897654203608134308296723787967188496038574495685365570099347090174929046787205999286488336125176350337533533694527809842731325653284468118163405874282770752139768352143103572652796252305170423100689858013402877103898109346944119566722799080832147607635692794783934734831717176234051254802373556202587058921363639744265807164022665667080487429121671150005562521417554892624281140238232518886944667335065550760775994879694578538336455822190716060174949859809179404861710316513890407665248103585338879535948539254603933571826348611270170806427213545874284845521145352517985763654016141927209194444426687748774059703423713785920086709769648580481688826169462421466478923698957671847304291329361144509174603105721154929913195514905644363506493567872725508029352066833543022551241680520958033238291962633777787949520464350116538326763301753621123456550184641103918482222254440615252459621006227149312872380448390709250443457822296582789694321620897669331767324325038284525872785434519962998350509231640644047203279748572475883665226085915246976733096809256681514994768336686273929448273832636080623622416433019522177358707435962173414973656218311338936809575299838518424349450391512056879155852832031783356820739366046132485485077882030267414204564044534484791958754341459953954175603883486760654180983132932486166307338857698717543437772131023169611988064280701927099826848708304353005057315775275884032551822016799434673201081109623692279364537788862245503241517193530794505993749658335512370821187618611432534487205498212183355691896556301009850007810143099086261876281510110815585241864512382994684323355846977106902743930666494010518776790897161507438940607568591227353078339134988308256569052826227986345628710592358364517109701098540517025468588793885606198066246391512000692380490688750971826720323040217797637515363810255565762305801833471130063947137437900949337372694662408342686888986158177106424344222477397450512039771133084398426795250427433565669289359540538718701036603148162426233569426395404642648995354494577162842398668968640957692608744453907928196743144916808873317261281525446056345777046121138175197026207613894701741994423928443462687232797015687140835203562494852574101099552617314505194208334635866144415521261442662390021209813053140686230476215338952811287265618276581547887040477711206830413089897677423039545384034314022966230988040665059680708002673130818473781562956738912128732825734077060732915150213733678632770082419386407576644274897191123924655757603417237669915425458225508157627345112131920815033832073455032486600695939141412438476511819275341036192556939597658506792920111895029425486623070977864341493619396323249581424483001606928838212368110797175689370581744946976535515250294524092590245786492109917313054902159867014669158996636507765599143139170614577983837058939507155809819237585774984489260700917878849419643368497492096159908584105662221444976460414341978916202780868880611971162799798003199736816181116553027024933347632851421138978124621659216411679927613186889633622519464620627316003461403546940685460812490698785456547551068940306122502622376686092076382110172732673089690375773182696575383562831282460180045505357869527749870497171948947554673389765210173112748165892791900669948978623590476883664892416511158360606005054161069874908513399746096406608513783029232635468785692585648801467710332816049529589292940285820675611070885304968392194188936202416286386791379699359059338718322669820836986354116919335209076637215434218138277987421061372934729072516155286644589312568924774416436618756458783020378575486901411608039674983370914028051978171865584478704172856238034930985093856503779853946259550598202610917469245915343242741992475933476346218649681945558844416780463483033127439984742546539315186920421888988504104328679361128850257935490008870528081514953157167736260952853336164144018648743381938241305271026813649284798289895943037762329096639836593342821787965004226945691039589127891535107578399858033452969462081818375563908648822943975531256990944293142996067318529039589566523501440531910114293048138164301926097869665248614268729683899909218739193330527453234676823439845477668250973494267020040564078290182897998493312725410039121634210899348192285213032641096758052087720127485091043591047895709108781633484998302964345328598560644501864915986705437166844667157201408977847603582089303541657155779678602119000626575074413837972297366197062576903343445117433682792376401896606106341841806582725143168737558796878836359223864657434363307726624291130414447541656415743722865538759555221320548128675623409673843258654655854704284556193766802698153160245093864600266955432546927243375070494579189297874916431678967647464506730841675063511761162619179637846913006960294905652264134242947809945117667097337853002782204655837383502875030784537266558559048024169288467254701323424039831358475514478391756615569696718934159382702514312938647074088068093928521035500258654388298324646044936853936360092082285926688731640149871973211978433252095239631508610983070022000286353561269659535838638946589738082063218888784461193129927889218136311483104807040452401532687438867507900579904850194648726480290362454159724003326586125256366038878495194906606996161559421913697905494782897757508660169023034357674828402650054328881673566989538451231461460334664832639744536011070755158683956556849227413360270851827245853510753688240761197793590802545690926226176607756420261272413246882932434110152051122987774270609860373881811890756354046347268245123011740450427299379554765572992523805245069244317271546006470133084467494393883086706204729316518378266916954185772193383798590729000751276352466838045113255827962605601888137883998960787277356185562352935656311208712376839922531798541015847899958666436738496000295203151762869465013153550467067042179593638735804262862020934884049370921639887004867643358412058734667861977974768574198202515985390593263360552502874102662113611530939848919884969433883127853633985985346426999536871996354327804886987598329103194486211374408339624287459472671543334553187925545326567704498133193335320571642335481773492919250797972055830879829082648420324936703162212371754905474584291502124853488049178285992839332671533750322519404398273630826638189314423919844532311121883828480706928651893835096378378806688712699700521321125786079157328665452323595420358608230672564801422509904768462483812408972332879096869248297592869571634758649927483988011071724245360016604253986221201101970940552566033092990218895058375553621403385400319432339276445558065662411240762778161807910125200062232774691303207945338594374865367443348344065797633284623457066825898112176260071233476332454051407942194663047641523335365436054915769407423238709442152566406082199235788706968471821069634114014065568553356379957796133877815493903025446347606094840576048182327793977081511480790945176939206634599340141203521861931412359639666240900541914305954208329700672408456104069824034851269870507199384540214201114055655976640445540780710840405088183623222316819851263868027493012692065311026435484148436845515987864455795704532750744455698162842473541835913808136468697820622837048199199928510538421035210675262549600750596606106770690063288609626792410454610063654184114624100922550665142575363384750811930507352524270719243080351018016934485292448126886088920882959407692655106177332878972880557426026573122427268021680443987388721762026869196394481550194704454511486485071283344994719591424829949326507983061438640468834548809644586961265772732971059082253542579715540560793105501110189047541956605196015015444262502762399461461613425845116134761975369765633901784638659011179378997602988408369707761803767289976970438167541417054771352774379135346149181647270692122028662676009123624361320591932028026525649653869902256953452936935083618056169100137635255992056935102425881979777383184036398907677014141675603170758649059613610890224925931869701254853291957236694513492081634407999196134837785506365144864564711691087762822613588637920012887072302576075379868673551407574559624800520538903176619907173946211851835803214775786325462414914945236401197779316708271380765779478269698241847521391348337969670946987923875193930499801686712946699413993601797147215392745676805677043094955823174490955124261792990468454043091782510051114793452016429036274702121219094813843995353723122936776395970022855769136911474125101147987513977466459925835809534307981506010277479567836072359056026525315681954853496639711530656965841213776683939058644761848425087644030431142756248140488668288870102411258826313014739872293003640586614012823403067219466127652545818717907957283048063017764066118648838916501332562608452370263463982223812158664640282654516277781214460304587389455156856619159359098086105868571770417529822255187603021622273997314040620173769526012547858708622980753133671342258243899914058032688025512371930942073084999186223631276015083093412938029670663364609756754709452200290415888991710695106992283125819503515707925683825681805935889976236575256970935506645904941041225463062795402925325774031080381138684631662433839593969436519028872045434788664832325776345335018179065421880471341589224682919612483693015459286993856234434969370733780525602841010902983672891604387601441963110040393148069022837596948118158277615796507504826772287901735653608221382341039321482817609432469751878298391155430049532942722396832764671459395147159283205083229924588400069490607420530447280621166589119329574263965335096086764343378147656299269838449295895174190717839076136105395187143841691353998639274846609355742571511948434192510038677518955455418880142782994480153831456034092956389727149150009510059343165859212600115782910122073152540368274530096369492953973368470610436039776028444719932377248253773917120310475798175602349801939572123387908641846025647726760454826265280993042000548805241934044167589910241807934232329674614013888514972195717814699070727449966843747576920040643142820835963299269456089782912197647496348352177313102139014728443338330702179644753795613760861658343449206500970756393935506772527958198708235978481202099197915102744210713547619556417535380514584965838538487014996906600285839418883957960151955441261519996901387147326939485752531240170190196408856555274643044332431450571457393131435776083630172459225687752050368747425052181863017291394357043330773655809020087618549536149839648293318607295191658199645507018293447872463189252357716116674259803295058346160053091082804379788566677026988474192095186349449349150037846389802284555387223667028226094304607887685806779660888743424217821865868661981966063325235205221281136946106447510365650138251278770482833447742492884612588648037680710213817230239169296747977175322992294748885274576446312387890572838073917139173502964422919400017776656537631636202034244311121967494110722236018970284317787062151197230651392304484421718831411120017892238827716769261776536346692636578382283356712466947810094009117606291076992748232672438005856630485906356686595136407678548149955920961403663208270220953751388804004006984581260784805545592132187126661348443063696283686147635782651107136724563130601001515758055731845735772954567927271577383970844318019649010510379782012968630677300389415486136532347584411462218467462483425277475861949382280205620105422792647668063058219701483334643321838955454402942772803775246928138647901458700394529156615070769101948281463503834728590122310264590201760182667522064671387226581198999959870097873236528949331010550599896913326849826946441931064416176588550228705222195418758308456014455958183269551601755238237118451361325972926970279447757673536362268466043868669891345871089736155000160245112026697860000588971253850551190602766127834500212996018768354551378995860873523913904170543435321477128883936982493344229401879068240014362551136246629207688846469241188355872126905538576827569990945698100998576100191761994612089863958159075437345988282045158509744446338727223966668513809726921817303098688512115368194868607380026224730491088490615165177632692706286656109145910971721704298247487944712191312383830422649224627458801559556884992263840085140014784995404776767962078072852022681849187667739387231473110707610370887571571312989849604399695985799515399478831068780097161897839291319214629752446929621975680889631086443681734175565327964433970332211636628606913025691344914574700595461670851550335368098534785263226273588437813890573793634404747358485848398504496727262990118676547445087922259630761267760714283364783121369575130442707933029091821154301104272765245464574330102883529744800182225054806475931173726098944727268796065624819130960536215995943652945162219960474737335302772387523955477228824172275853270441767304800442956273381338916225252613808151731670130454755743974250991472380150997621191850039962074253746594467439002373643739514706531934593758930422864720928424555024926538936106973929900919389099324124530623269868261883166673344900122268924002301474004633912543053465175808861708315493360623567470161383646146861998644944726258302629485448001676618674314558973176220012602105669730726445180449830025510895958640391228825624396090861194525710694166147154820416261903019992574416831878324649021439990580894202985371692646177921438670510109929587500085052640918834805731200874225784627702695057572235561173450977510344825920492777057545646821558011564301660804497057013416141008845726859737741764618091276978150613234892249483749462466450573879291175719872622785087006822021209203692555035307252505411007449263090529850614779372866038699200152575078041117784114844754718425021990548015970429285341702110786083517485634848205902585867507115246156162554372552014863676878802448874379269283210232665589011369417842671100482245620514121810826276356583111224732694789241400750337095523821174616733079465745964372833596222331704404968562193088224040085621479196644585074116435789581415482234104142851219800584999394491014796587918600166378060668791478125892605422720514231121523405770440824288957224038078417253724959653889216839117875951433619100536956165749887194933557565740604977500742952804308802347804588961924147313918879676621938621903472278688968671483560125501749509577641726919823705974403454450116438914194056690489153714539047838809285961687849168928107500079743203782680553128121371173464765149562190175335014122296229099606433006145823550150969204605745421285520788099273139308528284832204894595838979254265063277283130806065617434721491361706413128950187824905373551509854696172241710811268425287182894386765103345543334351686096134550098869792329575311795274970924912799108904069731497245017425048825795733845436690850552995800858545222284528666897813322667069644658956443580717594923659415374752669163459337962133061036992437145449024997972629236604189808714809263382642808480276970335682350205376023683979811705638607797719452831758268630935623832653976335213492809061993583442922103740484784768580101582605438415976006243045615347851091994730881846190453929358298623768569008529482170659070577720994680358369958945550839350227507389483019351899674996822306160001990393757043482556061866562857289913854741071148424697954018679195178823583989976786083120484627650408246947733877315216659143196384939312152741481837416686091695459742147280421559442856780689561099804742732019895332142449630499677964534105002297677268732628048750039537450203396982688467580756044128188832896120017316384773818807992584225260154986433825350425168909890034068091769489587153656599120919889558292384288806793740682977216082702088255409885346077844889196772265663291715726520054357957052236575565604961345090251840403490925081103178557104514529090606915647768609391505849167431575415201372907764932867103024952001524981495557573999658232740874708551850207043419520043256448681660679471967049664353316008917516750098708227788865306714899146684366259506761313763456267673348595660252334946268393249985237726898072751278240976510279128381954409807338668611667791112479214994723746570855173195117054404507780687968973287480160470770171781496411750971912310853485013218283342856892264937670921364035088139814832753378659966336594424076521217083848651880878289587233588327230693408954225184820924364848547732838361166279652456843195994376418115424639694050182235898060596471307035732962371333098271036704527659084347187688937303883198800450311262977113164360749779712034129689158014662283569515733453404050939104347805822809070769629633764946737772737749734929958481942341075649931852622467857610112900687178256181704942471483395296779804960994600530802666347997520456354614143784753777970708873374658190880339434552198159043192696077377491650906785984583594556230533802413275963188273440285677044025765056806484294260575491140076091242232856755229460254854192790604657643823375536858116589127440097029742368335069018913405790938698351437394092895736723385985606334013869196443433540740065617644302163908315312619730013340601563426555019358396969948358433022523866114692653344948323617447889276121773351939045134028586517065096451949950759591475302050189935783137924973526303243435052844417350848074065452722696598649429043231581422721077810588764175822731498876397308976180013112311807375683366048727066904161801371569332869604699487764546841820077751108466495844133793052622370379315742982402127842427477489733125881151237160736879541939544940143566703194448210212181209127968145619267185287626502679144600654995340852811256108486506816434774989436990159194310259644241259569939701636964884695597969042753591841242562580753113980455984430043877855831579590306380097393098542716499692743082737301052330047847204159195014804049236708466759296490096642489085962386048803805584927271542351048151421466146673037201442324049705277727186110396768410142161827755324136571125839421313186824365576653401794232281583300453434739110642348374677573461812918387451909515573137446003567216105008249885728219512489950106188671519413666355185565356717618245020612446511504653971394346516765307462259920544577306712756603898840790191444606042173258509874512398459051223272309678706032039016966879743050257008605893614089563774967558219673943471972543773637015987857589333992888058488548383642078560741705540847164754659502099177683104376730575909701701117021594708005524141296756164451846234489102204504817054127869019887748888261368261213152194028696630881730768581692732269064930556549018942978152712753404446206393897329450824457688230034665029393754256286319993728559894185895713164020252672514966888185998277245095362259557803103882525211078659248634483174305680599060260533300242618025806866409917250324349647549683491493888898806047629621715642661335134750732140090041784097957642279696705552151098493131832330789754976831098502370440287636233698162401785060413874542306235714765532372166725918081503026853216603772722231588762966263622148741827821177456749648820024137947394669388808743196188673148980243363148392390659226003267888926610745840090689843703323316333425635729211273450837741070818849230872145153279760444233691530926239202818369065394258021350790973941984196691463805504582226105784068648879737624983197041873079838990859202663576547710808598315815245736701456167202428241718077885014721874234855512413591130715193887491460500165331972784254721394722993243924299865260266556756389894848661381092686778627966685707320215950717377682696067906698270077146421177418421597898208259412635307582266733505736964630130673925810866866204348906480585806399166132812681049479696683672397342149671290912944204996576928075607100074671517205746191985979143326471352276662981986009480664804863308002628017699250073629623813868701121985283777290522709297268887949080735129413616865571279232799474247126953344639169895278438659026007392732764741043822548854860148862957973381703532828408328642492951973598277209150012064906625405400810788440838416962362942998024335452308860758091564338604377289844804501614980422454335280100098198179904971723224826297909341945253117344367387004155038600946260728985586226403341947557710892607534842742949300397443520347249613963844893146919918716757479844134506315993143170051838452965046306778288106621109919710070184527962245302828589031998844907280985316681743742888484180978395241760841063696139548272446040908257070886637617151978068559730517923858375884347140178442288071781265853939674154731115405160020159023406189315751769319076517134528052516795204167023601524748270996686110238118650746338534698163698195448591214529902549330180865014814385881948074958823044123719945665080866046793047753592760042867994111261184293954565944422742026642668529179363647111549821998844542607242416174440424182895319247238402242577477021593796828229267222440832561963308736950620394418810973834151762758695134228170478382007820041205710908612615114370842221664521536682735843176931820283309920455198557825188555433151246953977434481470468394235417950580493287309728175505779450182493516933359453849721765558853867980176613511630836985663778585896612170237130669642339298670978385865706829126999967410042490923398071305263251343019543017233485814796829845452976367124350073241737655690682566131713848120204699126384382372597758455849952823903694464109864511603228845785176114385226794130544557372031030584939602946303319718412319781266916434954908328517145067557128807435339908993309739597258129232118183971291117486562058417906583352757513148684878609382003420947904762492877621599787089613189798430201041692915782495874485347320373121563506866018407745286265233622738339004138278604965091694967082782426380927613936783508460379704399065918863657898445391977862669568247713413923061662962647830971106567527402993118789102504246119708004886690369996041911710805311550320091507259253613670091044751166698723319351634045055717714484164276353388152190965820894529523355179629236842605194822396711747896910480148853328715240545694381135953690861000958931803499313015322008150502517195534204362221105504838444932113783739372412399303473783588753615317021476565720731419879223272783744883689800148414796135439830430910690635076906157897574988338706632127689806818421388970885459073739533073943922046589906533434039840648545249494419439463627841292844030494825061589984046267470776842110800675585454842151784041080261427658564886876996821751514241616750229656071118428797730887893015532188833059743618366765801787641797355603783524824079918105585645261006188327636859391094768083167748426626027964749701654051854599641562544615266907485593914350706891584311368404353035214581974065587010395639545573117945629009031249546619520754394583618613653169891557411977588817397887366141483378986746142192652018477086506077483440204772199385437676884199955492621633964220530351239136499215547007432560009677306813771434131965917825687162175663919654715235121158750006862980284095562518628834152755443803228809613193797993211845738091666860899883493956395928494809782656446617531831196292888579026412726903901234493883295215119109430207082594893173794484232436218594183684254720618821769325895024163849406651453279725652847283406775154084004926656443277158566147090185290316988958080748527047962311333260169522376291819919666578755470995254676148500865838318001608480078232463480955555512630953450497753836450340904537418071958349088711483628667219587395644969245018488742075242442345954664175244082503998611306644771854635934869635954760493687611137261736904045432211722194703632741291561350343486683912229072732392461807318176384496584153412005136575276640157369201526607823819497302994555667087817146111409319384677666546944064315893444952692385350739013162974229960496345025718533890604084476928980659198307713829511607743861022787463604725389173532072474347529477282788462314643737421760509775510691133748858372943892924344958236029095651602354967877753725895745308927842165922012417929375479024985621040039131818585293653460822354237263393050181973199375451088687142127344571713671297360045328564134536403815322015345825467074672331665415041835108854464342716863341755597286514968782323750781041057703304901698644905060453973602415222250389290033214763403004395500986496039819984377901439581118414025037199328185606856757753394743323992933421408975371326510189799383069194010060235442112271169686382187320114423950339929438803349044171856924047468285984704109222048115661393474247984013065386114278852449785720707584406038072641150344065043671803393122707126172152103496779366242989418247466600395452375182316114416409453720729214608284205039721847109719545264621848978425325807118997471769183220601304791622038477948135539306032747270663148279562903890618264922212619205235713202505797261092083783361268892707691206035829961867318378244041156759597469128795757105173158686566038604551919381944425429318341455428678464328923148453230773464696347042879233866274368727518024397115709232251002759119839028461865833172031607813699955176146483619057451197637531014563050958452892399086726109669303343507301603697292153722274507199555767733197253667791679042603876271823802882468937186475351801680272146360438582581964287899755253177958358688384271293881928572882873347903033023712042988628894578092428738771897314560261260628380946150235688744490169320157188485626259875477798496901291794645921398105914516700589012460766179808649957340832194620402505332064669293546768133394249887082908724762714850683435300868491375684713541142532617947362945465506989088924091064161941862003960589144577420355100942828412520101960597935704959178515013267778363040006882619603271905264561213593325695823794242527883036937241377353152455901857617458323040389724670575799478895935733301511815688721851115571359781623225238738068239516859320735808415145725657581462772060327869765416299615685201784348480981513632049315112202315206038784583652872919429329136670938362213085115873621373172959013602172786150861406308084470895922964633615436917773568449402445820256208415784326426780587052881495179538279895051444150067406526903848081995235858713936211819945426283639141865056742888661287229292461592037195353713348268636851716821767194321809392617989998642687437226505729319567576747824319162594722010070754933622332715188210515185104458446241401785584757142788249335058015855050336487807653568442669322810692226185455304955824455096260373211033586542323871430356052235060737591992919634667659353867020959528675551850266492096134557386305334766935399711863834294891061523209626008845627733790456261169106642895284510911702336519079080711399331650324180067222840789621560914598650469658077033545164186086278970270578945775392845161380429508512621273932857498151044087424503286457297793951733422380865088391828563843089986423134786562864066444081401979833392288621809663090207719026263165357318480586250745577168550307558027584200422317268492073662639742107666725814154107502967276114082771906866072246474692707270141664843183198842091013468227598995698915320723084176676799254020424307945223136273430901440781351266918804411779231194096917991576125173968007311638687703999385062551799272024876122108627924387559783221639408377263844910124720339992819280859307880013553913727063725002133827176858860881477658298494634723056699861080164364600242307433508071650258276047563058046802565685167986729100934816469525260198045443777167602268668893870980211657917689463737806528190947107999380334667594083301494807841644986896396202064414782584646415522040204643822598268880312242944725896624106245958978603607453351742387987845943179047514326882095022373966923758137441718917998041024610671880002381261298693413317218517172697833001367636303070291006414276673739211901233410829560418352039952919907188843536113236138049198721432213214852473546148808714526721964147154675997750161741463540985338921556737925483230510063422192269373623803739244354905414937351788041530760773718312096108703495960290324291191682521671364025302014284765703084205827525257398565740117137318349093829601792693603254116903068091928151773376699304204009606390074282771401353928082106192644113254931661544968391248396258567053577833507960926253932465850065255415514334304021724333422302245886629445299755188139986686113180733866993810244377165934328782465020011169200240443239266310468709390301402446849771136256208879503136411579755557694149479684831076010430560498748689273012366240885267690404133754259603192772937295194580224281923189327067424585182245558415306157908402103552939747258812393016251231138458014846054454547893532939328658432052827049216135218256411285835033635068226735792359408138725309913455429041392486649758643557072902207182034180673775788601101770878186271956323281378222265337657270160315735498740694454894662141496413238984200650380561948478483369107801708080097299961226961201152234661506838850415845060801751216823214564699495791185653760316800378259458894090124774154889484376528384230225857263685363233370895814762432931119173545924037277865958795506246220854840428424921279351970415283861853678668322321625084135273029640919973187769198466979058764500504686939518012479552975166552175711166722099148992483658641201423017404177496799173492281818111131625275527454076627046443010934770783779458772673375582438300578188279286154014926130525345272967924449442486532004727047374434427037214282745759357878106866781554756245155388820571325689447570264995939571015254757335979509165265911300112896305978654812071571040016737814716816640798881663787007391661167997860357479507495981889064093459467025665659816065754004083775412039158353863445029157099878142012892214940085378905602100502128482831280943913140412321655141621015381616622290825399331596295086736836653360456420160119608520581717475450694487775800911794639210547453748330752938103030219973046103766639652997583422349996512008204972220158379427971150000874366730195462976676171784227543921748749865768087813773554745360467411260751118011827738591261524272649088092304423882238052676983414973048727205799132256306030986480178815424561826202778901293036068577744920078072751374412691036495230524943209215367420954055369388446284960104825410761286086649770183461931389529744405348676717884556691447977870114897595959500195737767812545977881709263244069903036929064049676019358000437707704117169592574834222427434487171603541300977862324438602120130575962828179019590844324389620011892274653346828374784577158060162797940328908466698372653658761821075088349096274728779961481377358180411629300264991756700210211159768560950913462100154565672255666023601452020021567994351002373634239090996339038716483253339273201756616925747848143870276087277705978152156517481074225086996231289460858325549400972132280424333211352789864924168035681589143646587085165367909222469361263768383733064149798404041049063888513518579897178329024769692993313478583966346907051991006686466466262207606212076892161751304921460739877522729293375799684196475290175031360112241211804008407486339076194969329676786743684737926342810207703958847551355289361376631609556376703870320995770549148114112806454644040738198504666889388248127674244786095405912658525041708224042288462788114740734340285273222827345829233123410267976640902216923387646554224700729105450525957670018645202887891455717673841363382180470041831492849973643879124017447639991074737236062144345488620382958118867795678859436405843190945139601773988793627555085056902976550885422596898332171202639348519212154028890123810313525053569582343946642679686848895752480300131010569860893666220689200934418518486886907492553783260396626609226181005458450320777098773282663870651970824788057954829421160478580842805873793568334923939755685466213033402359687756698896873893459272928277874154596990397725268709652790383158470659124386819470866576164600832306984282705555218017269096406792120105272930590802525881994458683753792279502581619041810438982203242072629608063811894818654408803836143243142549811592562370731766707848262915804048964951641907426692010151234016523838240823830578547228538546168217232195507016126457430487325339635210910654338810273773976563690686701686621922941846784359941157543196967549606029946478838421097499271382629070681098923871880475493379271439123711496178193599054583251601112250232338682395518453578819800205813105902064675600708266161421887601378494131987464534589326752670640115522603480678188574746710355918831335362260887983331575429164667190302832913507305817753603977680411518613348658792050997841998252561988589399368698739919838503039035070864064610997364825352683122410720942304010367337621199296910501332513882963424570812929472410003456952732538349014630011924062848390410742719752911390918030979489285720188023424872014604675648186774360806167164882853777409292730162179068192651864950828476461627977709943273230714194804577104373359502460330948335165298507511246546989355304080259795608192823676345767154678121270968650746845274771610192344246077549309762642461910759822452841839539880430631308954237117789682932954216523638499373467447305546976175015022019719645912286853480121272791427710518709266137355682013433992127584140476971172458201627873744770636019629161684459761370398229238513640326196143675213298084669701464885679144502680038212455764424704184239221304068375194677588705342624946109485425841630031806973634552709544052807211858622297732441310792530215211171500766733706399071192110612396321260940936136917921273991283372980872850720594258318080574924579591318003188852520400501216172145019630276469397001484302780915386290329016725193254432313450848178424928719166645547635198871235384900977719961104826130240353556537922235117256423655765856391474449790561308025695060576014019610810778387268059827292974354379716582755368946399680691755158037575186673267545981905998506647447704244446727979863762565258580252152314903942992548221612312273601557472264894007840003973192662675439930572224522530039405727127694406260816998331276430035890840153341328254793363546482782991263966812006621037983620588280987971418371279551199085026749168141766260460878151678923009929837341926140585870084540125261884535964598846632806859009206695956278354863211855223455513997063850104653111115120409803640504734829680345480648649467170353107573751138619571750784684651065064175715183351737644683676644011345340490226741915374226051081920228082726409857275667494948603253245051501892295966828616203086198884665870922457132401492117739331053935194658549446170514333254199858638132430625788016860997391492771261036758610531354520400784171173260704947217343349645563924879484601648809749661103010165213369214203200827208066755599863473568627199081409312521287417353535271870878210394780504775178502426745531877993096577548235251582522389000117680249285059803623705722471169282077917742116756643686252205256051283320304891649081976058385484656880922019264283244973412474834645540200607445627902452539645588636164666536155676108011431763916545565908761489296545483517434213987642723619104707454774426604223169016918693291127882842081677114529256695569520156841673593893030515961889499630994293448843091004444084649140573008513068265374001573438492767818647994227845410658634108501261208520842843280856045729560476125782017567682166422266701788919115410887311400046824315780266814737557264233860456293026508958086957193843365873948899183325224276417680551656151090190042198914017790931396075036315382960836590182263660685309638682451459140979841731374292493874848120519556380632087683403271373068826526979461343219853151776654258804743628997527930531470499072626071731765152864920599051153414883410026596596526582436478870641754279151925199876250067618145186226956766513470471511575702117031244056586262263621428406822314378007911999596630447112617893054718450333096065607743006149798243479059094008033731708112186187679490990303682727466206022936243591838104449600336039207875540324537432590729481921421201303412050372245329003453812929692868547526880822515825639378177800182238639702956392419846306349675982804124819669707429515753156856128487552927329296132678497124613727243222720756415011127334544058968290603866999992747778750045871200599868785279564175162574418934523946864811663782464310815279208639253171328977455175606763817219756488275688694982037619565518181069165127279726303612787955304653358205189538800014399063330821603254039702769876997708570036719646701579202254946772916114661309467908645194045405238442019110986589408587172739705746663858343273799832991516745073567440558099557788815534944049439572941121437120905055395978806635384369983816923392960769615465858660215971776827843040778175392027183287955213506065672896645438319628261450145556680886338462051683953875421669009787695128227562601371376238383569164452313561846164312994390089874601578401002842229170328086877977877536445650372935788982019658446914668898729138037647847266692781849117420516339416594360143139121219035322370101822927897217699573431415329432975060808968635647521894262703781871155638833411156060840378569351957016400930018388111484090642706610162585741268765009011383445525867790874518352728000548588676750582478232121616158128760250333915411202740154458913914835376541530157106857699966853061423218600816495446079948046662398739462381034600315204158212806770310347412983435888182734289951764873880160679778518662773906345475441074217626781213766797716864586214131840389802412181094960097025200611336733290545989967190477143212036228889304128401119313073845382920482642355374146259603330163778444832328134992126323039933867445018231163922517168598938286268299799577886350471677795742924773500666895140277077523122114572538482236169497099948674999299669977756593627532614828398243599105095924210719524840456933829796788862135161788923621728416190950854400343617791309284517131742553599144357046277555303472569095867343084914619316574814803337768619768979587761114374925424271789139358675271722186644921512779575463781924961358712496634280399745983939859233237364858030075010436267419859998915067582636513497950104141491029261366742631512742260119603570108850430112359454753060392715738785805744507470083752441640680400224937201235846964847953231599517803772079289233966332097985450778531606476558181723730193380062149460819703258249070099666958274898786097317329186363640947628264727977404304541081303938972891394249513859554220771703267016815959295547678815251892727222056459214496376965989422981269897836003463231741544963694277040913657322603855494996429484532425823629672343728382087670222644281686077553970015442228753447202195658572006786375782532734288561213346793574592712228467921316388858897208238717276480465022536316617053559358389004316988421887721959958352432398938112160456970130896494757695664008728004788188472977228177527186371438889200128360119990337929918345805286393011847431371383593125234319336130708175593166941735391789085141137410890261305920398232912692908521441796843506324133009559017467316450156503603302208362981359128003039083687344328611287070407204633279120683876474551438258462585052186279764904098063009967820235155777283387448522446263516013433180934413588954286870101106624649149297510359357217775952669292314190339847642964124015841550708051191290641007123586962300104555573284566751503872174986708682277526854411671116262237981007800073968765244358400157310446635390149655603609277198134368964845449004844041527641746015635075777593815247130769520218612764749052197217879420743708585615548336136743541357875519706882584772504313134620183259845026478409415910791825631191391009339287709540028501485534083376462346822858082076587053631669337057263745019588202586655475403194005323144388710103587733052282247107972657694480583571606678064068831278851789564943148315793130353573484546164776131186793654993368248468499532386231512661014625428207750144832160357378545938459791050458946059887957665878687490107446946274004305574377583227127447963489886705796221986146423949663759362561448926159420128582272954730240355433498088216808520510619429931125758878365533350603931203503902777347261255938916742752442431499475014508043748211508458686588883674917564534612699520104117598208492630382216864196206889675043326521770893629479565198945339235689033984021571970522550285255809040895828627759330513831467173170854521430582365264203039384994431438052278103332186700498598626849845947182075310235722553743760871769310884519750321289332766760377549539867758177355367286989651206066287755311177125566447728164416218815780935289019796689127634789587361373875217122557831382831543325339810609836065596373274722832123865501707154333535559189276986465536593247601335968980281203618053344131215852655262301016655523361277697678580075467760076106554284508296898720306115454861302012551403751774574139792611208083848714923574371194556058226193324881561588733205204361465504274017991956459594023559262893244593512073342162154735558610546117655427162817483664007767181457252473193108093470452586162969115858076926022646512705581773589931394316341141843570779925663705770951817428669146886789668422333522679767884109708678134845763240226465932035552697541454788099437386480392282916819232243600837223353103645664813035146845536111327526842794344478843600358163800679380005247367230325559008987654740600298638040428139619121542014555338264606612028218683681417269311108556569437522903308846273461496753153123783942081319776045330203089543892394596907158841681948217328959181249106382975729312416612441765217164039916157168576922223615919501764441673403231045224336379733802477663831997384581729138003801730843497522740136684892730059127625121445527826724505993827964146666049917896164533739155221214049533544837548702758079040472238421699471895337284863167589528598467827904887553908761674424227934933222943876001177151914930663687991858020394728009702645080248711697376217169090379638656259886647551781148767269116690915981402831074709224564187994416165604787236282932341124831000579595961970792822957507834514304985014514202487499154236178657756301843828693230969020537881677845233171567042142553622332095180171464746890831929085160799953314278994956791439589172847843306324684772640070707546628671819054800126156724638402007580168798361439229896788628835280590723757499260406043660765016572713984939274536763338984204020580268772021886191801098561859390514080113502496486820501156439130217570631693856986810553743304071784949903770382085441852948019125487823681025072916927104513370788832305745750128493272211054343545235553349404988841456684958937364704588388875727746046539997514578578065815733855453206543227867551442665739093698824730986763124722411386305536192746535587203659480691764033156620350770737001685191836582556637119757158299081386950979196174973708351230831763257795586442096225407150940902627409482339880514692752608879256786114179097906600973191895290407447180956387375150461249015499760352494339610181477558817402117216645271090689759028551418123402888949291293818099920374763115562778313486053256413810615411964904527141006698497307786047029172256143415063838044412591178562266468821068955473640751698277095678041141666286039530043363731992020955724011212387420580488089514354537390964347046015134955834221415731369293201850797981141012479862081888049813002529434258188735300691729346948790134876330374271374432150619195999169492830791456406348888755281823201272275216107926907263287845510939093066934786833306875591944999507463932266607813566554885367879968799504410666919866230783982281454241288697770019780425303236549471975595511969826294663777308701037301845336519610340970296070466272203029833272001176394496270197439819175541504236090716364241555354354221191551475657462122679148919990203074167587740374197017615568954970559603484017434908532584089696158441884532478615797470054570565713525293850601740959034357381512389688189228440427349762477795736025350638485516885390557324764543564531842512091374580760359878535075668810125409350947305352026923306786027284889437561752550323321801044024907154986954136245048210530451710554412569684122165889010481208326941301480023324459160046642036418232331479313360424929302665395441303663432523312376956004036646680946932867328977960859307121339176415241851717023443977609339454921266350579906358755109848128816506709927671216237371732156491910265630383803582840242957218643584531094903675484957297531219226502998744659589135048793680768159355571885210270713616246311259967493702953373275856595851624918976567126691610082264641511415461914189597074562173980207842458498604197994097013355235167817822061671765766141166998221388508935610731036155749779240272243819554120526033404744115099836665578300888581795874903435749747504576184379984032664634770964567054159948427581172574722653318652128526192243132531848385307828430588764932329103860404242171245266280617833686442251320027691516114783177657320082702990783844247951096439418147915115510786944733143776029858213406856916234945237399526503707836722883607040478102605915487880980960407456577424519664259322523519103814591247807746858613467218573663326416120470143319182239388678921163958257584439808160625803981955352808830321972064875262958264253441772590708712296460929574480326580584288379556882337258575830817004750908963319107053322714659864274364440186432301406127262802770700234149766233408603335293755469696128486705912132373849387791337860757710199618232745417778353622090920373252927833812845264933182677139797806905116802338954428475238456500097070435173580763051524800393569088745324196613010633627064824359677935435802341879135141966876002569859360669116128731049630155605328215584388465547977495841765054046387480051820235852445596918409505489634166187968795235394327677623739403165808523659317009854885107641192315438454175568510694954789398013243733010212227900861119990529971136416960516671417838293239975165712238054131766737950862006341286233696960549212488562694937831297907873708358369275146521107830252495184216158369418120640812141736329364803700302299596589152825279564046886402562343897915491227150152312980346283373005751988830332438377191833398091113297090446794999445306681624496887875195253517874735310725800925706622199008831382559285279615409838338479852627387074019046214447618175503127604101276097560730854788841258083130142423939413179968965611072056641733278125572687703989873983673575748831615869074843730809534262577273520565169206343230948106861197965392100019962880842312351066451559930521814867901042152441335259173489068609389905220735564164510630021190581762885401171428230211593203290239173808823984746629222977297933015884367957709489261625151127266370204506683133896563481305805930050999943023290849891436309727438206025436679538513993276638365556464892667335405722414072535109519520393206190409435701781113492058142543661439795069271307846341855192916072216454750233863481604734552092679679567596378946271222834328197697899485582374860293107203527398864882859710092394982231982377258175998131625795007015350772132940399868638951794831078338187709729653298122279219218888789055191439367258470530859608228328296382221203526816162645946079614339167185635675160219720523305986151241953486141644032775248504402117455789162761632412654773179313506099995972264903256730083627871861699217604107245010931694810429502554376795658339721359453839244556294351578262673784651600178975429738626710420179117728081729667570920442468562022790293311556491263835845434947649180678509910229493470261766655068871659405022550551915527616656100395001901628507642889720045841567952074220296499395186545940866926921180344350193854225960558067567023556623925917138861331300086373952130940747569284944713220508784922912248394302711268670182808820024024939545219452403171081137210102297403244288281366121110968745704975805038880786068284733841725193923327600958988501537227338903691323018496498625233640557298950933812015702130780954647415879662022719997523051008433661907427455616300700042121820994694355191973685598777619330499592796640856548606396439742812724066629727256641759440204071590152942794538736810603954531157775418729125859243753209645781441986194261292230961432550663160106610649438497612920918424737569650705756879719195561630754911663175003266244841263968495135635913776628287918086388487675848202190791599561453997131589743813307474241002054074495808915894987883720257147125021116497109169766135761581545483836946194935336339591849267558387874448886879605061115898447545326074057122968562223367150564646837493201309454221149921089247575983425699064527818621063571295194800046054827437302136955359582583021101178111689062273052270565237242899116299841455094967277561228851791089451270681374737178121662855250912134882672765383476434143417784195885420070754591860623631656716520329113989001701447997635577828897504865004883762508250026247915451842926862037950095379959063730460266553486940680736638208412513940625054116051738396764020825013336180012375388837856852904780279757937039832482270524531389118831240261938940649777190227961936916240954064989418144891245444032644596076950292074093827748802328736887676217130795890614452090146656442203364375786883244162199673176906116653018284118431993375603234588086761194367302469066070377676357259012904940587290844166749530248576239390080890423663386371123634459343044429279891794100939367481092061419671734299917785630715440406901659402188810712368531156603809581726575680526639201456678715198752175054837234989050759912321912439249641671320510716735571591117492101668449993518889962184474130987350435786887460855690931672665710954385860567451588899032244284658360419140274027449573331227076992315128190277309529281522131823676553670961931637453244642832607805134518996460497597630533992435747815503232558029408721492307121103033863530319097524870027970528034177289142474229179617953501747768869619859977474189722065403998222422193386582112619247891117334555674442336832661038247015977108789838453407003398615095977607954145824527484003892189538755730229603510848372540615160367791640642750743755814802268354707382720109124069649110504851506942918596706647728159270816005219260415376644886011096787800001052759738144828122051162916047252857922680749871357529415748308250121445208288148961588980924050051323302819393819999568946242600267462585455847470522908114370788612629847039758265287146853981723694788576599139974596027797273264991427257603934348141179363499003160184176346137955117156711018378302935165519700973108899609860581123310265913620276361406341201653857758663046994407083175853383015288123442054363621104426265392807887519501425516844518285153391262886663887653589197200178900702688790146334619503034241548525623619754431095714502873046398353042799014166170282898043840816841973492069778754556716223772898977150052198234482845206651357818202427010970509036329120166196293501346326519210015020502222653052018610816559393428722627763634165686629841046369025661865163578372225204005544700719369224469264571286346181348708666444264444611156794093204784658624327393146451343430687467017786160970712623960406809433327189719436264349578970245698636595879525385295592108277767636842463461804568082754940017610323361891275179281777075961094403407640433556537090043167991415609033986505636705838179742042087726562519589580265332834697484926318445203764757417515183968392130627533818080500432909433093382690712667868085424520733260351819298823877679304408773995054976270551735496750351478477086441554573414918296404686081322605100750588495894817391550864740256041780524902089945758497720493740385844161958937441811667455586639128080742831620206749534471546746095483779248830209574056142015729859889622195312659115241737935905684060149026536684870865695507120843220403622459675363568162904599681679722987022273899173489260797641050322221773091781300306830668458201612684428918121225919183638516773873636772233648828922451412335866225549351161856293477604623425839020044213578640442759227330340430984865516019891161800586755294934489943655625615107699633116436615017007033522352025614752866931312002915760411280384460329763795196814875249436096792563751089916408836224762766479551776255039367325443622970131984196351406263070275228921153130742417744946528910857710564680907076365493022719888525058459955080386696276202860601174452951068909352520279563658941516725436598142529263471249411325682883016851262069908309680617344494908494265875050742099296869795874429445273857514716278307959597438135569106805413762507195486667384820475235786729813886399208295303754145733846807734808285241856713370110992989221036017081179327776888284423406124532118995124738528702570112275053597454054872116502995200326864622748381576115075336236596733231745336381988969345748118577999755488594220315212452259124764974929649560576522960851464001479676508384212758524521458104401155611444488238034630290048868361102949788766709731345377481315836037147704845508772156141286813388621053746261880404941742146128207311849884420504942329810353425995886426829117788324322900242420000355365782280597555409656696613820500119730727171248101343760544152381887425598513229153058108840884344624632845431007648603687676857813335956562442873765701373367539776580632233228248032171686399147473006427352117628638550334561210516946396640234955847036386264999227568222465146642710230066194380111589686473882960670175055071726352758553298134895244963690833022161922031554842343097987850402932021005990144073003733713505199310944777923846907313438115309435218919030591217916026010237036617123904670831496009197570894393030877839806583493916279633446512564965347083518132002967779810833180428926125007548006992829772824644754653918392132511807206291923430725083199784347913268511750563994461823213769118268711589919319973052830302787164653275662999561651344472712718305921794264253373513104656046828032276112331919683432476873215105479396791042927535795691661103987824583488404169387101089646261237690307317846973621094333683236463093855527503279141604036850082717308402340586067971680916215305312336649400726319963019417208638696804231529583063417663801130871075849057007869038862744801700113046234130476616034006990031847889380279779662672557293527031095765999754304344118002503086555212153301423132946653999736317356271007041427644982713145444252524251018112922718757170308137778790806847246920722661359053919005833339123183070026305860157313133376036751242293337722357550774468456753935263939285939202570578138746596213636611928353404296497141004341544312186045826134586072617490191400684318171628000380677700509397890356992554413003028074014330186365806855814745235112475214882078853913749039299681873214828253288867244799627439610674435774144896431648891066091190833297856138245267033737248621637235384339942630537480215694307290505805794234157241072796009596006778269265214668982819378988923434563236014947518115908825521239480247406379734611951181525556727086395086335418766116054936372344378083385458197176862104596662604433738322982257906122396685864044925276384505448311828143348523403676010135483439458120959091173048469063933944055510559715801656091053158783861609848847760304862306068519772358870984147958513248470782375406285837133139090364696009368217629194355230188306099589295737501818078421889150821213135647839764742558385182718114675804710041244656697949453470500805640286571494432321986959169977637863093637567442389427413603753618285536725012172704795264456556353183713078961187344414428804051870164804256549927780741219035866971692654225851436389511173845428465248435804526139723804386122931083136396435836209128641805139653935599050950273039834934211938871127378726607253448182054231985117922627894495332314145629445362411801267500061513702464237236693990152792169611189047879181527738735490218041063470897000194334523618645582472429901694660419806451717949089056690162147687342966876753895876791484287927173966388881999780064339415030133827181413229830306608855508740918410970142455708847083096337790522278014163549113016737648624546012972471039557637681134037210839882647476310391010934211538241540531567878054335601539729676418637421146691193473928093007217765711358602426633056802654475405468655942940595267705533809751587357371465268965234797246618547185023297669972791096284554480286444979373783104843595691238308012396319794252410170645804866701317868993908000776702325171384926139735241652734777447416421262572099866182129404228539709250219511456035367708309858424630746186736105283434395471902733272056359509444397645817816985399257258874077995057330111558479788918325407389734886621273623807629542915832493314137826242319065699457031456909807420615046853166590628604629493234930611669190640410146645174093294422798769295148717437095159771572241687627360104278972528315456428204082060726284259086225786595029790402021591937173983918289296115273533002197583410094167263478602084929069097637640200858858321258593895935140510680724222097785361886335752523909005439162243809590465908011038474843136193850658184540733176526635813897444230242193501428106753839476222223965395495428210056927996444190241400819553307998709647740836107509651999833061780727562509652947510590559715327088878522340621648862614525474163751588049461010535406507175005943208128075348811254462409745321863522930882360492301067331654471380525827113861913975752977289454962150955042895056380760652023969878815349519486012264847823722286419924517416271898754604511048017348384419489688964099243960799616620307479405992246569384863621670883147890184561322687134779179910762974861563222744595042859743570966193939366139039864361241104324620956595060640068921627258126689257359110365294748691227649894484049029472835786710445915825063919051301122840200118191578933580342914504915152715515830950435044788524804508938043094090643036785964674228027381917424567165602420877684785920225220335265570903102935461522800907128683335902823453768648990194890733634269541740655013553286286909474337387217202697862797268041889127298422095934694875776267938693036661180154968376434907580491750776396161494386148001918032101412932797368277494661494972671594452798223839316415176427541025351196132384584624811729163713007306674457962030650064878201520860607208257782218184420930758139841739845652523230526398985005584050295606783142891446979886871625426315625980133027999331839105560495243437624104122583976768543689325303518003386202333439612714686499607303017101889862889093689377020706423224277369508961698396462266966979791381604344007346773897281602856174312885323462285053707932615553082411555962670263280633897626125165086727770870792099344921130843663603026952497398154738460680241618855458857685167279710377225063708580012536806848644917644044191513910743659811285708223416345559744790546012904369554461961032233250498957440384128279532369221217165364410068563163838481257290996340044624214754179801197306944011495618559420287357249784398339136297721532636554777020937914664739966605859488245157028903391350905457637238318784289597377898520038811671059799700209127998975332923479203526721866133611588126440038825190316599294166999067726551822322349820737208376417666626532955611230594530370852803728244091246487276321983186840980469927829507718396763892410932189097438305201482484002405621155610423240539399961683354614609106243497218733849987527260690151113101909156213969364437110160803273061778274274595964551926649127075682875839426278816684344584415395192661012182456974175929626461397712974352229279719532183586578877446196571829477604991895192698023842295748351306335411681916656043215747068582672361263136093635549522103512503124255688035000231622632605067295209654628271892195520740900415616497612490295735809817774930428395135309815241791299098930230798824020478771778115484770851502376712702556266871419992760323045823152369967064641249042236749466613691820283129700919443023437596322382316101110164454833583861623640769961281118196555572459311917749769517405573954916822712464579114209702141365155367554886562305701048697843274549730841758255832382802330282976789718100740480601306604883680599443441902851330459787913092967018213385249779270602249913413721874971031313473262592104872434389922293616739140789354006506917712804868000916019362855924136249297703167224903175701547075153121713079030243685601927212022125702939413394016525645950566715503612648275471256299369220679519817634085157910553603028594269433538488508334830160981046330412404504971787659696917331172121254047246557175861172155453460058000034496868160619514785496457067492866507978981484630497203398983590742528834058440316904186589849837850743634710190585931238936197311643868562050494709224947509609898611612730755409917316980496845822346188816672502243356430167581143044371648739086725732602148396523706122397537499369478822876312563504149031726290924229484710564186321370953764313179807453407082626360845439568736973304346956152417804129967847052749123235925563261732291348087801819231256844530242700616045360484173310478172809721940897684885359417216053486710280412752800152488508058238584614524323955502473473116475685173909822456445974744503386723145857487331895337775296380835899004956284754051681097353305747593773256035102106721657316964045715264101739781822278994284484582166765279964895160543488310782345147142785397849660599286606750610320252860321040547514363559400018412289256207956770030858984533737894451344254046706891293586995079114552191191256263349720265701883296698299107532461008651264169337940635288258073578772818789104400168224240533672424125003714998035445442924078855889991968255059183984550105543654560301114236872424219289124017655943515488408267673506114442670906252174514436716904787648888434984926501144212168313758273414051194189921267561733347570459107387745449733571653483509696550121833702945398103796422689781936029494201575361077655902760952938200693429272620131942055529918638053679615045499166129819752553315041651184907493030433671274649249606553822417231040890931720326654675192247037945146742811939165148554589953367915833501527961487384731071929020021577194087578211094350406867107225776136323931381310827738163162337406869242588458374738060156250140150000602637348742789674827260206478840631605005326896818530192399485200668784826452984956263144342737684655732504674252268276284602106415212081868661637592746573174877149755224974070652127710114870347841982213536910736157630398803657436426357548199672287249476901875783726055854946064186615393446856926856862038502757063631832852287612752263208144581698358947785206381839290543072917158548091420061786941911723512979731556408011085092136908046150264595485309979757061576435433740326887384429206659168766468190162942098733883896963756748243640613614982157361288001540827984353040470909693665624546168271531287120984608333417674293334163591105539777090172603858425130561965540386079220659987536831768945383649141139311194861800199278526831664677347198271941076947334968839394474296004447106032524556075518723531316196705415972053308875303074078294591204628786292510933892031027827501756898217550923759394849726363811538285901746956850821340455707650641906703869162129662490550021247487729289517508013099996527145482363626386455091225712351874926024721478399511391535525148251336936264724772288167799465507646787799865438946403964808301005936788910895371806243888726193142392076286484079180334683035368612202010069852675979997688767675137824930551849949501305055830927011271411033354406025489279008135611281143278194217703880305277960128226028508791152423982804589097253502210220410624686998208599705699394672677299550622632717781223774732323031363446354639616688958372160762434959510309659328757927043994222372718944813299045709194281222087405924780079408730075092636072110772620811587845599483244177547048315932660838210514989673207220048387356187670902656866839107163227144810581772857916894737284659946445129413509121076327604436056347246618774408379583920031963485340387589743855185135166895622379367665247493675496728689789475297341329409555617918096896894337725203798129994402567710149173349763692025352753093041370712830499970417056855293006579493461212108623195904840333739282128183176207911857751411143029392595947830836962031554835923578752492195079365822750822234415060458990666079596181029350859460294585622956154178844165632319277595841346933368681156349514429583614752426899383936550647581812913491575490900817372632959202874713913312976093853382615092028533071776396411380940100829836017292532232120027223038720181606309924500590323084867200995166420047715439519389756033052730186065229026411235073968584638123239606805950293885788390839888048112578725929309270104341837396472857024947605576831513744765454436709404278274737844215266894210612633007969642035066715513164708771004270723926102058749614223441293196760442818874127411906821812779950317419697636151959575560369835453717501515521026155234862339005353386439819669674960842630992040110257601585875438269473024101955425304579128337278297532804084696721718181120388494448655772044726216255318322356053554758347886362989263768681250397955950476973577407665476078301470820477997354759596076516905600572692323316425639141397333517758825577278435393582037714917478523875217807242529617116421369310992064271109430780522105996190361596611485126852168057017875927849867575169449022780171809090446419693954533906096985917031719618773024086587775076033491708180331918424749794441594433179209509044681337527975099325464018096876990953831892949641671625503134334945713888764589270928391558040695360287104420796934172299460990329095425356831599931532144367020525749064484472330685954896639272687178300420082016622017238185287834865685229466252323016497921780985949820406013182832595729934248414014832381103741341360779257586308898104708448828338674108943120705551479636852248962392115485421515382030363030276486695348952815858488635130683049667003028028557089458175319971802877114521248168485205270727593803933692615144281043801744769265011267381109381775072569094769413606676307943590778021981813182911303627798228901285685041872346601295841954233381242994379895515000413717130771132947819180468742586590666952086152994161565495842566705940827322683692414194399975381251762471662440193811768734966004218487903592470704424040985870751075209078614698045611581619593062035236044949019528549093300522144323629865563649749730740224082944895050477899884762111710310840525013775681262729450261293526747738121763428521928647271984136578982427488631887102322042699376905037055833751631706765451341822272752501541455226182967073610607931006513185393141782698243162321864177947731937016204183711853418772909732689246981551369092434908926467835238024015988220393522466409059612041067695560703970089316628196472424590590870873000164337375440239172084916287578448532041334146364436410746541326926957704364165822862356320246752297547931328748586927218346921214003337640164936796531268530623293324648696505175829956559722410873735306053009747890900265558722325591965752996434827364541604834603490685637473993790115537439069207114887401177935352228621202993871816512047188340011615516129647034774175660324686727140138453394138006326616770137222227088178771869628634693371558938881787377802584801499174118006530362702496172390885602405527987751910829605685533923791271445407931453246271513316019935349657831662882749872033107788435041849243961963612080676229594667248516555786382580083060232533647861817205111525643377624345432818664026700221534043618441011106116696846639768679766923606175880652768294571227300643675777047408765064801867267277819149327633897088443505333969466522341532409656838880849575393703276736740446229915178741973519113875204314387056201823191982217986151477302876391151532113915627265440303984518285223176142187182847666823311834745140538711982898551728545350620129766210702979678536479152074395886932008992304131362686094605110152085666718000825381986375458171337233116273488607652009762864077842987887232376980013213157079884810108794786526412428529998294821144942451309662659268502063646645986407176303397435137344462158550162065005050200279873084929868973674328540981262012913945575487393655848893055141013735661055828516794924813905483534947535380534129273433212916501298540754096902532276945608139189340703884710771518187642486104238814020948911413615743853437231207209252014225064526282091239354422270963566394918190461317126638495894888891718538256994005152490180008827944599672766405251616371953593200943395078336622833227050841530539043800649867798162499593541520491180324593135332654491101590812020904488923490161992266084792738265825971188713450810903899673396273716565838419590990518909003284087298330620516465518629099319496767776357035135226596499959685939476800560076012212551109609595164442034407568381880427340121163856438391182163255249148845417308330531293078901342418751502666915063536342086700131058212594287571234613557237098573699384534930681007475279440155482069351770759439022644340219406466625862857579150459846052196914276884984784022132639323200263968055193956825745066657264758028605944036144003692068131776213468150405330883383886797879109198876113002400959180641733558597019789960133348455391111413551906570162434254732095869774469802909982221205588028176511704186110835986957332873628418902327599735494564106416632559957682741457644387578124278405144408753013012394516290224986802212511344567332219251713197180220164640763996498938409291469578158209420124746161667030749559016525897818849968561813097528208493329742516552957538515583532846201829078314440055471489676906129284419189766219647108168800661891834365981182073531993642454920994713427854390894653887793381162304818085968915860737367349015147031992949011194612412188766186792223696845902799682392677971119015988648916729697853876908268269916222939298330061871126329581546613812568748171733530634493664884658702528022643012647749606729663192841029795136224368531756664552320497286031490618930351884345298650626633557225754283444071938763909143889863782926883310262524385872739811325076242544673225720807365207450417397178483458396391869683464258771445574506036510856365790887619403309151974145773974570645831056508049887858521569209124619211585581205159250890226343110663330213554206300757496377386100743325245396182500368235679629550922483145838581284187090899733183926215271235885976569073279165684485138640716641350859432330243912950609321127496019540354570657992886957635833835759410112922418872758340783423475054994773141163986342734738541725925139839941627519492310973779743968907554809670460350605130624089754047277531088813325230853173601006603466494924362577152498721969761402352211932435843870627129986978386006784841196885387322516282648134098299894153613205365863829013325703208045777631617329040015805205732106851670964923724700792226547927868911312685151001409517953234703228912332387855175609110754039462001186712614520339160282172641412675084729408226965692263768408262295126432783417187268755553134374560434927877926558564353674191003339280697874418864843060447794505186982548279951088189738851313174594466481439204107979162464473064040340373968456086670905687456524311280056252610671760569252114669352784473445678184286279461673623215225121975497171742167010102676423662370242068923775996504523168058465469020983319973811662274716613255718285687507689817076572582356877113278276254156912473871298912932440830451513815391794131253052910978441389369772308809550078189494603454937372262587007952999585071715199123521552901640860282860982100304831407347000861579511355110208060459625851902100328399151909877758054090564682596736985244148289611074566195318480165103128008077995253754916342506242870620261670082945669372897742655111218808437594841743758252823357402346251009920543724133328135695111850084356273149242943128251795060948898167510899976916334207191608407938254951128498635492765589940498142786202808707596631513885847664936535809532902444469365291916050467259836590306866210641217897732783073142694843269494496003872479044499337999181964161510139715948565243105348483754524253254516710929629050646022725552774377134201310608453508429656789373787490821809855790466620314566805518710486762003831245602528642835283521950505658990604324443285593482821401631510657129778752013286743899413742848571197419488105580279820875510385330770451694540055576579732167310596544050213274806905441740634639558037330704010996668899006883892853424356812521998820253566750287555229488548636420612105984931155365728330074275293385272032094954950417650801658472790740547786257586838385141278421362059677165417626218276841973052695644061349004427377878559712113561201441609377229073128873675495533540977922029470153854471936798264922735043814951282995253298067491570843773441207838063323840891646144636408963731184547873639092317446787872460496105897176973217428075912590612913390381616889745261937730467880862616597304100734890803181707129096009267389789983682644406151180965971552449768875730664092868509587990785685719773904040682680238029969922158111354479852749465681386964877244793581839961957116788848161820730679409546626222425558543152914829803657490011658830070000046254387593695750114530037570752376612669697126662686511492145160331944347063387000430828888287332080589975120652517196210517056434371985822472516294015133833035469730474491694078083142151149051575429830044174431807240327035653093336799643272249126508615552561936905777553103363332424350656611337362364174119280398247096406132166027957132436497857212819045211831107668313000764477243476321152159759060339416053514583897349836241982249152231144648987255540906078555185817394055091840018080738880419106259018458047188674826096369826064571232373041040649406051142061290442093545185710896476464242177323846378082202508897882978268126931147131726704843111228429207561021282075875950744246756008609312113471844777565627591196060648681176079369500589676919742686630544220544900326190817026797145650886531625907527254291716511907960647774873543293387776836224564993659475269132397760297383156298715681414367236661063285709567540646756360597560262857776116396615537269512666282724826534136392168520013196153900442334975080901374806865415868458100009959843058898623681302529323340243294858919911246913426710512683274501720815894913854247972101590589966067173959217293800112724850777880802007767058238928987345707377460208449133134926410586632647651934346924395204205861047351992724607197966092624425146398897592740846822729162128495526458233151921067614751739396239322425285333512061558269881499890556544682914495064160422888029557414683149284772060523040781644210249107445208234354634652468260748150084169579449531367365728315935240188656437073864716897275084091814898348511543774013578814097232374315661191115972079566215824141483965875561643673604727364649806393704782474859164036884065964594017909218448271119333703868322040295269481845823258185606483904160466115744173277419614269053598083430361636020129119150839236756055041040654578035831788261882346415935908766853575092625984832629487058344040636370455057683116117149801310775718749136235016717534037579938392018352982545755479276972031688434475533069146935395170446040810514788346308671256176172007575933046746144180876861484515239164720090231337736976988375737732534143855448938752940861467114943160617988035967296059166515831262507187804156702309392612303439288655282767467357353192185902011584139423625462587968047219440723195772684193198733355273713936656283182688495967167092140146581127030783075712957744813283621528379616867012823055485306232021442024669895925127565016347940088428486708292517725284630284207588561718928666619302238256808230995698026977771885283857966904020864050381473339840120673221989497141120292015268235749688975053561912124015606105759715581629215173681171098294747469341023677366925395520533462747290735902913409092206765494901007186602993386682895835319514721779013070727501497312645680233003965738438020466773600514217588561167410373251407891847106485422610530179114960906599717969184421081638737800404850638859282875884130431298026371614596910811695253537897518977923295330673962226063387350531131381448498993321643727552835748622810053563665727798753957126860670426096445128280930733362957069639993641197978581825007827619451911079772005963249299658774855830726263876787038542241661015085377406728152497828330397954883843314595648595913010939012268379912260726574375231208389120000315637176313956329364352759055543082998488368452859569780973420902396058721645125620953501477102373123284402985061974774803087487525820699186014724028035825567700647278025644371470995409737869966510919704850096247402073078298835199712949883948994168901187891267690793327449553321837822174858018141689712036896904210769399702011100977108476973641948937692478539030309761479278055414830225659818976160917917284848802836950367626294560882942671943051112348629930715636266891474376333346374602394463030079131487407389820537754022705977171966083792470562923416845823276592694716707045959016087579496913462837621794826869877321919186930889209107548212509589559426424230893427511031907399048884103054771653780402120790807453553633233048200587807450614206326807737898030948350724048444078278021868520299549908277170639562628983460323617120714999581523373035545662286696010760932802164612541969044762053133744096321754334523747240698543113014201251217505609864334846321338698024411304529569887758713698454692976651770621264944426789097752739915615423318098983338278241774143904219972326894128807222707528077393777801376827785063735713985113312429276233223030876805011342210168956953773804129558960317560976175223286216554323836294471550805709396012717667535608729921725032603876322660951486371752577153687355357809220589405780680499951802249185164679010569227656485842786630654612979558874558248546648539369466782369178293166008976388824610626537006423270344369464269143873633053598550035025074871808775948494191375223637123465059451990623276670167684797650011094206058824237177673606833413477283468353412945415524357051082933523508482737194559843506402374231921802458085962268535489468747147666922150193666775124677374860934875306008506942376927269693499832649288320147762842049953114951372838340773880855473905344918162925882245063828888402745961278930549493690353732900224280446407914350892534582249886842662693709243680404216277437100930056606479607385875812893640824044364324300340562551451309086944904526355621278264777631687625670783862911443163044829506598165803092712533291876996682773374417339780382099871835008656955652806390985977809188565009762488113676338226014241894689957333565932076096217225908207676784575968312892099548713766545127350062173736238924938646431142911700766161908490795138369552734286617320243630306857757746832964202580535349492472507753435067898508995808291593946857337257292715137388536725933242846012331943754238835516973243645333044543829134067352679999141857690150108376233728111867510839262358963907191214210283296726446258093832242834901933847152791554001100405628478333759381483580661620460748588699598780375600977084509021892549850659920083368900370498119627321126417861033964495042260491509633339323413745650252544918109620110302313057354363070379071895255541016628331937654045275627484478935443543271787599590573517958266728660058726118437531137165515693285103144298081768320231812322901900013543594750566547843154358198219787192909396808282283450296261559543272192909362923096245241085078584739065364807181573544097979721531344341821535927595348879433249860935792236874289549456257682153842671256184315276587745636863350629135207494288375728483388180148694887872887188916781611739186667780764295045493867946061450405669144250081138947624986612184656559578342701820032775476079606834647220246510705429966065157338763353884644726092813061397729786458614677385318194171346717237078645662788776333823895259909182112302978667731192482050990133884001314523850649538175687654147115374892579723272566263724351360586501104998386109518167198265148615607072470781529930893043572030659545577952129262031978393009340376761068454068049642736994068307033454223858594042911341797727030191109852772458418807498538136153408629123668505259002339893617045518123787931439501273390885440996797970617312911316448881776259031831209697258791196692176878021306751231221433247152675256483628912949310529052770916361079690839310711163037699928731294468997191131556058880834151184861095364403302394365298541605813037944184245825760202007305655259408278895641645354534318121957373218108609054353300530088059182445916906202013216982932288711832002038620675734172290215603930440707885110682571215887814573526254944205157534939884958774451187618915223850751346950577284094427324531080304531379701234325425348454803452493232885487625496290878812570072688779022149113404646076653914545278479456779121007669074345997286771734838960755049430809161952857276784668645687360706535811077621438564524018854872304459252391326191230283768939644730464619614008694755340035217418813922346865944816609228782180356136227331517065977227322952623357482581367604707353333160013628695738370808065692180228137277176622485989743039709622729796390485419089434241473840843972090192383657323249742013908546690878191343727915028106178169566307135256407956554149277739085663864798067744201804037541036415225091230894840011556211020342944820811397587487024693060726564134260574761692921617870685094270033226002999022265262664175886438749887175797693600671162008549005833193855774571609986400595920695017991002931416489566394337595378747358732491263937158974425777939589124666108082760397279957069206213378143443626642335551520266264286321955790935440093000252033241177007286684941940771041182069994576988899212054430032171329401591186174545212383280610593516229078434778216879848609029856464576661749791812527206243046231381445356242640935395348169246135237385084873717443781207686858727075367201839000162133959848866144498935923279255684353066839864300976478868414156979836432477715104851256395102276741532455112616419281126028467513872337047368752073414000254437676657223990357540762066440923651482607997858953342538225266221349280476999987054538962822914254529884943598134128088913511700587278068507219758814566932753031587877226597099609234793353827320184321254044695239022862643657626852797476759702482179573652136690471828351192682140225937121819221730520574897923145810516238168390796373319081017561031891668053218719595286925933160799604752681549184792224869618189660737789178341738706125026571160797513534470788417608056222848798779544495131778512649370685572826987945244491207260105978381461628616342682620996944861575721132528957763699172298956214939763113210443830794285840875026909791204882864523906134329841998735417739743834392139684939056816458997601849348298496638251493596968786361949051385192346936887928288324130373816729608762658625539412898258184595394267818353435944092748018482976557416888375130010752242461833396117254784449262721382556903577240318291926260279435578806895212363553505008373714863110132591726012744981026369121690875203396682568321452651796468130669776293788983987934761035986580643143068930550767396328404829835225524057035082430569414437666129206363990717866545597128734140152753589094270649358726385498330304934168738822762204299863114175410610391451024797462027231196434454520330169827603621888835095180915636872967878284735932331052343918271741391855914244942488287630586268937491309886790396551080106283483589773641394110376744247028988856459623560898063443668666394204002735882528139339039290139412302965703559787935904581760247032047373050997258909928758488964520689049142934512777717411512817357116582263321122741168811327890168552836866745873689897973050591949507975477810958617617130153628841928761165084590478188907203514499229275725438534500791637614532760104815357190466466970942416347824455054477811118320703928279110729685166459210836415149112260486441504898122860765522573930493024051293233330295473109682177958953087858599893581961109488776524933208171193900055022418863206582264105349460771998788528196249869391429453110991467247927863334321893417216125267353936656137042979197703347142261394483482064354800707155368267668192446092932213337816288415237374289425150301982538613556624818801416967276830978497288559651441811875526477418297019634873882804497544343495802082390113269680529585979689596871304297201057244289182084606070559535824015380746067391088110985743586470022114014550992392841792490116133794195348869976227224610061191154390101803272718579561493963022116064091123296717796801194991461623502333056305004808101129567652536203945091993330453196533123633725889428102471097189985974132249879563262954295231735298106485417894830481572703039182788893475535963514011486250983674018385330542590436512468197774602195101815121196224717163452628333370709865504605375627236438113093197366001665800579824000849844889871276144767943747192768812595956539864861019215743741713208822070934608506466940534919006408172982338994658685487041589066360765807595985661186295384045240065473254270834362480149250333532681817566874021976877716887474572274781965031845347652872840431779307210180328560288226442308248986568657705996837055020359865625509060589585766070977574530550938302981592159614418526787146067459498473249603826982715218555631045879510207612984837016936505096863350588654543316974309047225223310967772373880506198202775651391572661025754584430995590276619684819773964323875468799753354393099349078308076197359274678744024150453154996830056750692390006965600644929445572756500631218656565066485468768181168886999053567047334778891019622158918232730961892368926172100511261659191076526213384702196178711710063456998037082224470861282767042097580279805844434498502146109089249156727863031725263683359925205829467752795865674257174459231702256565494000816986978268794256316341842675141872634004738811570980607467531003332639311432532332728541302157453656763112056937591170704828542085475590349853463434108389378413903592864625401382023013050096305851535822617010451675949167529082928317503350038082912698610971628846890108164031406631571034317574406698814833630046031468726924886738768331031848915441353454413073996221523659415743877946541456269956129355379532687978727274470065781443317759042044846937937033963917751134346339967869433838661681206887538106804273772311109303508829511478778085790017888797933311685917244001770292757229027881432054471117518605753146982285960742062181908127653426709290601218594955785889117933985214978260315238186884575463943015060250627934750602484400238584729184186406187224176863874870327875849002099519268090110790394741092411531274786152310521085493750283872994489241575280510249508894082077458166933328838265437717716151698810577786841380367342496238431960262372700473146004603832135608911352861233032153750591624632812449261634159880083640728527709449775758594562284892387873563783666763696927490056678777674330429641680749004112717351739102775025412861374261527883107899911824037293951276671710477727763791050570297901299689499159955529473948761812123108401139063462460432765305944870095500065722307161668638114289725590613646696729457793883304824701579171676799895435658481691599756658234315859252570725383949964168031843584454531842450627423355148967890016815440972024007366554677790284330293715882206298431640525666088871563657219852675646083542672403828047134329844930927786191195358086285481049955986642487667881036596844903560074857733907073965018757725413785739428387865063637871280634501196038310155295986641314807991691397856966558333043465078586722872166804270907635050956337071262462440322261470216221788624722906130361727021701564692295536626818909786038027520774038893955418556796232949587585155762362912557036819901443647488686588254984211433229297494650064019938571204861579740912431051489075136493102801734620078598980668524977751408187420004908258059587585990738874819930478979884661202861132042485701695820172207026131115138851838026760733515644550149628207931914234357878489005780103674711096799101518526989099500987586698401344611657378771960334827560920109626355055207124764298949215187664841696479958030962434121365539300265544997457284611731008634657937328555836308371070394041708628532494999087446162619920109864664909411532280936930328751941544931137770035473244534382509372386660847145604242262306408439935156759289031700842637559582424727648693160381112883128871939671130345175256134338237221749663675456797873642827783189960999455534567845752941325993269540576418678549926216323224878163877103784436188758306432421802247916141782426417160624492747771122921268048153963308122753185446678735942687740341822190123008692816649989189541107024968923177358476549021314541531387866545076471086300282371962657847354117989096448892140336509501895410614789987969461401591395686884203231916291555498367359294222524831849150844137540430504280252324241606035048239136767405890677005721902372744331972376072351261727780420973133552643384286694486516568160061497526101829550086749981086587811778052161053284919808260518940836402996330367647568493511720824151166406994309633604588352000936507060219054839043611398988561711447358928077396513635274484962764987684988098392158257868333271917803172090281279243613788787946663035748327829894359785549403442103263401269403109368343208345327354619297895082280634820070374198337504875675412626610454535895602559017560935524205006708947312284386903215721517997598934525592622852146937533978558617876156337874159574970652084370698691757738981425581331914579728365894243899060606476711240701492796944088635872732607746642239597829984675701001809916958903701931540865957716656409030589604066277181976865753366172781368964931518930079091084239317008851981742745317266083776352647839642356358704013629778614034915247247149973118884340587131707500996904018555678720103441735483893716036738688960956909479591793258244510521359128626752291956640757095521524417272233000081122079025045159155812575536445062193387733833855486939916150799086245914035309640561556415423791170386270749038354801088328108171574049682092571984465288594554747572939303811671502944828463727500577347851336389929182409633379324281091428576435739930199204748485637260786414074229492318376647171352612531058475052550946869782608738450440177956510054272462215911553833865920193116025100619990538224944530319966051510055659516707110507678517643108525444002957481929932968144306798497037666197454234199269444854882502810678302331835962376609277389821712599890355511197069680295110044665062794929584999949894312525628828442606578185959143328349886250050874875871796775732792163226733218268381968454537536825288878832532665619900445625119586421626376956471867336353649257217180260508740437441391407385733072895382402328733914485157219921470682606163869131616488263176890715475853321891076278698245715856672668742138397089170788855914696866470374677487725304021568519566364070906792978230229413343812485761752426575639691938176580689241852224929571667074749050828359823273370602763853582078982960077040010706865711170653408236809564254039153661514905492643286910442306480574867726092503775036743241547908552605042494257283825550449454246996740359863323523723804836348509035314632963094552962205718012602368669391304402634683087192359199836770355144864926565717606165897158540934395947075882433962345335813223415068610103889277422085004076633328134773067915533218021283455048921167157427811663552728058115195693495811614696918892582322080862242450417572709076688658778245732947063178994368387802578896476902627663644879678134769530901662053331768585636132781592161961045268859423342248859703170264709852087245545901016673015709992871582574881698897219590540751384410467831750103135466253780432026769240672943322303279377420546099678223753760052618705577976662645252681384449600985343027099429528497698083161302447529084288773880187890479910637075587648559932437801415075426088436680866414387518105639586939894554818139220881008466363532783307829804734416099232462828022233206103563986122252879684326113313211742430352561188782863790470295246194066338489248586003340363450360356521026428427704622985064546881021155065162192629043639974142212785779688646226068146265791753087560002003138800578849600873131114145617783093925117076611837795105622938887273566388284829625444221325261921895845533867460350365580491981208372675794319610766378941709333188385208860775444074833087069516366713433339440664608094156005845005530500634655106903021850972808791380840743973767212614307096598814341199849356935979015195661505792038069362903552257959201857864316226896175139869563540564802840038831960356729954163948682566530271659424637700403226082837216298791182247162049388014642992326626411541352812813709360771369999375418903739245174047161188873459361250990034421067411699579207432605187956943287047295061920527363378069696910796962101045099174728636316044630709995638541372970480041368321120651083611838116027213720181164841906122084845658853749366323366480673319867847291926911316067604777523834323334141669872381088809893561169834802411945189216762517060763004284236406427474396261771794872979145528745769167835766423062267927865644455258829711290417132062938151345946556859574675541787120347912013597189297701015445870991898806003796141420164216049002589050301492966506026581160296951001146351532524001290428801544501774061681796653663186277453638136616815484071389391142926955307199491587861783938577569654323022771377339220421951653575485185011576000519706617453526802855205559020136515368720099048338825346305048885898656948502307466760540357872534381319578861063140728514598539753857274673930687951483505852369056511538305843370520792712732757815318585838730342559209023904527197241594804273258079954439778235245171931399382487117881111154115871032336481408627955802606441094362014815511741318554118489967823726828384480239608347854943273345835666122429903747095705258068912107137921218539467603952177648356957184220016535687905292484107236394307883293796899937646191172699159065523604825412195900327776057672765422933635464079566276533873166428934165977032528324488124135394966513384482628942142687921788780449135624855242907488664409244158314823080645364824771108262036363647403817061442320838177539233427786714625830004066184482469141683115173724232463720512026080693199254541278348558115189516819234967561860378791203999419287417091469314361671286974186508914958901839391308685990424710541696909576549158566622398578250950132896676683792961215563988183030387870829874947158181748184844309852932261226840865874532850761272777662662629239135301633699682865552993026892931297879815932287399927653959803467259223249539714395002337574403938007068244994901475784254073637007015763724922716834129738371866008590972801537692902601494817055308264274315902744526666163433181677294825751780573688449000924146681957046375499162215679888944878751917264608258574717754449355694257066793074975183846118741333891637623300695225349036227797826099554750018169597717237462516785384791098958863927284375735779513252156963197604703726656989804624653228130946805901467507244286326664869677210585705410639692449262899048221445695117215099013109462329777527575461913125286136071423863292515603199943043389122538999890968379508006655034748837305375482551050193645831269318474728565420431146296382317151669749338460637515191202981977203115670604986466603158436798410749951922653109305690297524493748221209531133350473456247353936518462372203641226094397722686520345935628365006438528412694254249495728393105757805294434495630977245290803806070080970917554791782922824280571674423060620683948628357199381073480049588066695055417036336417287912719496985892934389281513993937316221360233890606997308642034949418861982025577369189304133406343584591560011138044470878952625732923680014296449436380227207730328106929874570774753505598499845443071172052299048566679547574291572263966122676592588859268525117257174858979031143542792747516105707477756308736389220218098935736249842433749709028320077685967286551669094244410955681551332491529655955844383808305132125763379676323908208848736872322074215755075155045048711498714513736656742582986400694489503489514246722856921249809012833145671852488480957336510575036948488699836236645785413234678599258726049436877674724495457483629149436978112221894252615030366608920787889818104650951228759063665168023757167789201190575818917456166354471444074586002367556783835879078656640552093806276445103207414588846706554159073349546225082623310512833694274724893341087505034180339838250269079453149564621410726322204541240178635415446402141842150152298327986088798834744635882756767929776107225932734337032443224071087774538656030011833900487212188882511196986468492020464682310079905740861690307798865073112920573404524653516671743572691849650342445483239148423492374023676867923717278859978310372432117250601118834210019172832587316967698909578917004331225477077916833697214161347538176390357659033961156833227682343837592199462077885298258210841369372365824105567749568078145196823985742884249402083481501484829684707824204750452695739678695923659143615368942648046714054228711016874693389016333853213733576199401514213217026181387723499576763430281584419637515257129236685002706381844777305575936164828964656065170400634592023682666563729435891263149844125465975861856529874580329779128099453819779637801879042119350869506742764313661494241309324725828497553434750797072546235318155317317996473813086932659064315478256919515432236846716677671705511200806909729327020030018635893636048142238521818120505299955078500773968894247361211703765834721504864174192686913176163768413493527211652735306310512752422552192202846870928971645452621482756650037100532755751741226600928879426859081837873255141372876483762436709975115464790355513605650801997038381515250011019856431570608780561614020266852021236424141857398032161653093469932253092588781946864358928953687266774810321710239496840200207504190293109326487731974076807580892413510532785784599711931923695266089559970515337907699998865023426354933351904149851459596532975912360970875932033114057260714748461184541354619090399334440486743950439241532440464653341371170737045845406018429485965429923240443532348807167210058843837405701363466920630345346346252638106174688706981796581275829849774490981606351389473164210875512493726076185118670008829292285921734084159666775244766086462731495816082291471389690010519236653352141128930217822573323971496999552936659679435469410902372260977304937706616271752862673802285187352881413480519305662698292610782671827911413558492260553506501637620980147447333119426841582188843307067810212375443092577093025989522126148054323431115946099462414373668860718905223890559616243577740234996919610231914451786600466881944066386202645167491241025280552285216815542861514044487345830510514902707273641791664131456391061433290146189621538245645085526242485519665382983945433342799169374743364954977860090787861237643416158634509346707665656630300710556547382791137590548357832287898546686096676799977764991316744401899609153759055305542874300153762495384674133557930111163242062026158318491308731095607643263214565968357894977119744826122266506444534549101487520403078444530762211625498834861291752644238806782618263274271772246712949541819668354141851475590521227970767123564623180124575248446435363352830620737052374289564368081953247515973250381109620090405032029959011594968450338192878516525137054126494188354953885459855886359830847860557722272995024287484736553982288837419958453906507079663482975853473488134093799947220080006692820930968318040829266309060865674896362871818354751663972817334064470336636844781586423360170406354972096131577191822485295025273825806963859520179200630137257923267174425221971608787486801593280977508501594646826585938382678967068318236823794285478989431050998306403521850658990584933149027192277821082042927249359344369939684268825569051686671822441916525186477191048120210725999867322429949926760766494261913181203633028070041983172304834794260972622554141807546266318981098229452250688208060764210053353952205907989201325250696277559859394015341417247277035720728768299750523551630457070836411774109549447850659360788106000329067726833691275213290780683257849781926112887793428004698149265819699411422244690039212578855043975782498687256340578141302649805600528358883561238623410169632892135861508462938647590726915144985297034821058010452475594874869227310977108745339753158230302157648205877651501592644832590626002096352271955202026967900967232267077405256308922492046820681360727069049930725781599615333944966806195440662939027832206896056442291420497476475063836687671135248565650169814134619495565356032468659497421191338323465395322081019182923593100259176983869849408616225438192242844757719107745003921863123882656182362155953259704540008374092047326725361859698603468241227944380889223867641078521662629066294842024446987104769655566865152818919316032033624928987166607255041948077480419894814829894718369457133392415585013448033036871376862097455075633292997424372445902014318320358545963827220605813768136595180352635966154717608430888429105657674732875426222675233661361832315644144625002519499645606970480740449964012446662386158496991520542815214833102435614705053468671351639995366210476586599025358196948906207306302903710581506482595316319328123108251225284899354594074357759566941051111552022272879747836148657749663123606538711129915585561689256333053539551139373404018920739046191330951301573727152732704258259902620374937952211440652662346276692461458491386174665544374714280915538526947978746197566804715031064432538077689702838023175648365771609660172012027736651428565482661476167363322464064555443964262452916496034571450225525005944031359185328401951785836743365740661665985021979996564143541297818107315669140822985650913928298979784435803318813989612131818719151887807140189785589180399448707356971115789981957815879790546436176026118119071628203084073377825983426126459051524394816483582954651737786899220423582813064456030113243648842470408334637310401890668945034214731081699135867120583774230336897808357838508682768199789606282862890432310672534754295114806713543536677831770367615825964659081199031696311103235488710653459054567429832424685675272347415017744417578571483322913440982891618850089344241067106715983175522200752745352324759711155107324182026618928801739990470059301156669837063560412258338480119071409205014618725307381512483136129074322995914833934896006375164351636107336142450826573135816871440303023769919445140499610946107913789064811600053815413675516740452240026029482930251697854865872049812643433347275071868107414962196281155560272659742042201573919987365842888671629345123273871205095374167366493362972153632536169526056330996297687363601072683829772199727234080580258129272062813322615227641501821693213851057734882441159524461821105651879509597027112999993243260506982756401180966586875694623164519884443743718531535660247892145049240106299992592131847633086606814357401135059419212665490505909255810345582957968877486368288098225150606078424087553695349421653144484312273474038188804295142094079602787372237441483515469138712065044758711645569816021312736383428315440520904183650990339649530961234791048951856131606837789426300989064413204067531276946607518458716036634163959865009165067571101162943263438076331647436440350480477560570777705265313448235301975408454114758361198651898625356225411929034567453486540916882898867720850343264374123701237849938833436534543872811893056061402750075624118268225268013964091523049074545122931722168304331602144290655275915691949541511193949481867978611084029682915537972978181638958662195281560579218294921927279321540600054651489866371191431194779876929938578361325227360468014698988546746209728590788037105549735402650318928572635322898522746992075483561788779682479645908057227572476977845781013805156688530740491149403946268060331559844837246848103695135726506248870610225543622047772071350710141648448199628896438159471515112876425475934694800126070674636392544134738462358729046351342242310985457492923368934627578107870519887691669674197831162898488179646689242851573768440668670507702920353639574719649184412636254815854447878714111615595497923637575563601352054674791019818411052819646799468246395849665738928243045967636410861271839508642934370799168836703854481373642326322521807778190408809513305395054581014944023874210681104076039533653919266541870302609910825666305524076036195406400705990528095247188006449798451016712880872650130346539871419317319650479887428660838453265167977239294793073574182135583942184561415357655326796458015630029401405205256127144496485225371391589097720029706115834080808253006296788015977699030953640341110369890988324029037443371318417334852503369511716636881544258309742827265057622416642844190561239521536305717560888617918543364350281014002538022758907035470960773416672398549895893473818139300293250630523636673393229417717501136209589637623434045053977715559923898829502736831081861404912843685632157617179584826577720990143849613115710953316904086875483238134170900527597561606750204446675201307906418643771693761590993713942260155728202934753189492213921793832353131145681216171807965493065298208032364563605674111755602708410473015329139874931098092308570160738156130164237007938363846015519118817014676149440515838240403108851218095029129711876588465181384457270264008961104034410574680651472252738161959274862955024830316183887185977705268289761489423008855899584992285203478190956795650330748553753867201676464453781629189599685441755889052839121484903101862919241703945919593358191354109272816939734618826693238661992108239820946306521804283178398804089453414533220712495494739700865571049314319610294261241475125222440546689309802875573814081808177232740346154337496298853876040735397099523072129636901931355243240407472653897721513617791095297447499713710192252879621603775898203746471822409417126661576897143893318896747278951519927729301430991590836228968342329188826520701166165057135455072624994505955642088412198445941836544809489628581926624940248615979136507758063255092630508751331698084583413900811030625984824501167978881728990908732107199713390261516439584205676129122475874352884149758025541295436168549036154943983419055474326346815977576016114294609436732659117533740601522023738827184463256566421765956374527577387336451126864425068882961984388856278925888457465794197458174822611704079984155364944183023531434817390450603340609163376905235251831072094275660309670330219148695386167844490350637686701597475083894132393997561570514245313501443522255825345219242701160631480268619408203255133517251395988307107648022032144903192921843565923445789668818621076205750418601175553936370953987365413073623798798543044145644867319346146465177368579108479605917353339871718463512113367962811369567376246625848904749417827244238973838458655218406568627990011849315587106636973430222777170958612367519115159734599597846254153280907694327156563140171088064998127291741475502958405341804132713079789360484269734095818926326609141179830157203782548147568293041928991509590069079656539195871675028260290174848278682240539776579989305976083334563038709150871055962065768352975327222236786782642384315721000608497395631107587539307136954263175506429222035868518927560426816966055969965771809602665196037236969703406473536145013995012253253895693213135663519146975919791610427107448915885799511347222766262089650649661512989816640569642641636773768738564277059535006406672707817649209231917466855593068632176642582316507438961633286908671762758965424720831393728324233340694523255660824659490236039786722092618424350479865639648015072965168304838935163546470182267771743739984379825467648749711864238512213416034145517450778390664932450616308980896530928797918144746568748880449009207620416814455594762082048299158946086511128306595723154096704855545829156822457337173704898045649212618695121756748345649811988433617287214650763287950366135763005497162238512612912679214222337904592596379540190102762638822649773095229745272771080357607504033416731674044606972707275128119225288946826326588128692989243207730727124431434512140782186566140904522832570426992147560215668841037094145508671821771375866927783872173893037854475097517816406223280712828260459902474189878443725251467425308431855012356747442131159506689186107345248742480997543929107307531851198763378248458689429770903772335906226000495318328004830434563905574061868370705516231561725998833431601776479620073158740233598784685530100231913776088017658801232610681481320061531219067188758085632468835293598489879319006255796860778198316749188228841468357913082897038324829080039040178353328747626246013338226195031722948629917796578951011032839691774463366739608041610626529386073078142876207119093974505739740638844358162654632591706797597912760358572478223244664241853170449944447588471252961977240443352232182248535955368224076122667387656693117439509571123450724986149626820533559873814458534622567693031498151048210347977372560587159104378057561202063976811100519764249810729472083835225194997831993381368745594369057336152628424878714526762582350928623851227968842768887998555086101211392710900098096498272581770152138118292952679639386297588421324370687696234202990897995427474899226842980100833877079933372369667641790076209448461398493610490780312438379462414225411548702494095945287722722855942485703320905920009165281695832611451593643735206483016032186427207499865014879093101411614211905932292786931431042723713189252041638903015412673489946003630640707454347215586042749380560680323155811142345010101151719291447683481247708009898799363623880723861556906386687513608552858662459086747448620786250325136369054716485472908782593768207171066197328505337402131948125381135103237976445727467709578187447647547768026815966590368423625894397997665049431890299898326455228350796365401496770786538000167815713353894034134584899027298648747454518001117928915789013116907214435853948999320568161727338150437070661237498337877078446539332561819539327932344842339761548465150481308447407622222402596715762035344077606668211559599086756639117264815893858515789322252801135581401830602121704688417218290771303577216327031435568280916020157137743593867081004510506737079952164588982817794238571302942014199617017148303438181555571823671925046317313817093629517479362669010434655119033487541207521760007354660968092666160863078446678253163583893096089792020507189142350478364124018991916240516887363912893734304344762235327722221361983028240490078146690110788938600543031008700218513448246987762634973252868457005441100324552798736192754392845232934582044234921602248638869965305344794084048448854644948234038090021872602414341125959098747657131341378340733005712493861109254400839349478366423067354815494444348273017148681376045546073168725207517830565492616000621926963031753622253980647267575204290191058927474658384092489395551451974543649017348634752892746294052745817419916915983249416533162233309938516729029085259731338044043457470254899729689436325017271419739770818035829455997709325147918961664119767746469884566863565820025344251778413497231365576147023888505442692891645350943751375689097322713436075988689846211010416627976540982480070900074195955460378289768308572524437817554456500221395022901794601010658360060401959134628007964586720092256660545262024185739525289904478858898319184809330709698762059734870661431081867986194234523342234429179337187286138992372775945599290996550136057027038255352319947367476387882161891555779467125752430803327696713848315106483973749377301435556920883062721991169235587942731875182199044775952544890340355120857822150618145078000328991891990605638537021870713450262462864244683856768784301307837141509218223172915506326430813837223399065974700272563124834225485453948957522271348680067758364985470865548931175978395910474811274490089792442809807305357057336891237869972427805573927839704664313859299452799351275331726445952246209234410584134414649506762062447991828399513787204244595770785180514854454672164082168985499924298379025651956083066811617463897920865432929561334869581751615121105602073818406510163444104712281716314725166660315384712849225962113038830103473916491377475028704613258475888120420465070405192450118982126900057681593951400588421904287522756432013478538478206891429508396394740084846609105454761781353154396780423336495691919014498857691158450452035273618836947199758833227741824168409163258715124358136296431003305576689985345254049754677763764254591961156179310637176551706237136251015930137974826662616917130495032103762171652796357108328913611869563597351897342372977336899052097504251324057795368120956497892096258280915103834123214595702763230061079544200508595943552121904387032513744416121178620793693258080568087425289074156293713572800512857181446762732937235639308736207923020959432608579759295809507125973177835287188797950769161266594329723704036688559914403818800891219045406546016689034802959805488068519773640358892489096970450070328550517364097403820022813899245765533468206473821638360572009153797563689527869280707087115619712808537263456514931543938714279899053329921896939734776359144402296937968972630209879700406208267634683094852247137386493011629018819655536442743212448015872454645960154697380026881550184650042750038883987980361225513958630088936577564950630248743777478780208774641202102569183825844938905970687132368235208151622747092838986274954215855904401794856312348711876106572122545508681752579109406064146521977012421105949277913178883046389961541959439811220551553602494895992221507332530225971092401137938886836774645619116382659069703911067099650642435470410299567468381096081739779891234802854607101320727738845329146789493790391264213940956174978783172196340819852435011112431999787395714873485092412909639863514051357363297799312247462976472897610969622800684498973900435731051669603006444989353766217014883971089967967127529466912210048319600385034824385595972913280573295849219414638562377636818655380532790597607861003096159376027301739356009287663993737986622207091721051586228646200764362686555414454918924358591751264459602508470198343047352242881551373859001169893589552990537456460815883342246901132681921034173813060394756900880415577904372178844592117703738125578054382418072145216260897582546557088994841737719743090211341369122311813801133322213814280939681540741416953552403247147433776170146143944449828974278106622265376510917002451194928892799626983852664249084540300083919967403553618987030707340207622544673445908930502853289409657094283951823527921409870776104343855210241907930118381507868718323513068962878808448539086838298767698099990500661356559715770732861013244500255815389964715156286400288178988884626552190327859736557650099009373075222737128906803078924821567507818352099271222105447607366806793776045269787768217596365312425635074995656667513583421177951692531084091850591207621429272702003559381498430829342477354455332176856694161229324191559702715838270826506908974295360064851357037917667149453307368990223370051239063797642811306167165739828146548827895431442120378331962521260750627065085595228584966065750423178560695146908760820832965054525322468090722619429583615975610364417241034888204767316295326668769063137361486933858739658433007110610704846298639692729783617293967456990946338774000430890407969343729327430047731505821722936247032578293652210326874215353545384245979552028022531802492006787293210734052174822765689675616734839546844927809642302769810861287125055708105981471675854337358212371144853418302088075824830716180632179347892977568079056721842492916385411115038341413723811999537770666483994161364470538818772966716713762147760812268118141279066708353693888438869582944372345939358007251153365238711223555100898480934802348121110937153373852657104082715750581392053599097774975374318171436931328706609525028367693320152415971171066822524696884351083255026415152458672582622288342025797521125338339428919470614140450914913446777163456389358785957463839027981265496854493961751901823404858662277132838980377105115790588097729818768374782954188067186884812502055670271574637775046939233543260180769914878196715926834985708545356839331436343747532013122071346376860225295893197645191573609332228902123317488508231228618771622780947033282850972049095205516199990759448698338605436908193825387908335643359723679152195867127376192606987625771755695244819694566574900308651513052032734515478758532084300177140809175210389844582950530113614916380957124662738363801020187574599430607553050593050282388075581402828665702680830876906043571923306110675783354752720455274441259825005322989548434969688054156100914811467699381914973310339778676124811729492067481167234272323534064963821063909693730478756869464344166729760520531782225826274616156678846020303176235931313481563584145535564178611178060355564692871934136489568566424896106537538924399174520434752048529036595898286279811175297222979131255295309886239119802843685739595091110068787726370713656516544037327980375995251737392392183394592571805683770882524943087080761875769199714128542065064505347728822445742677180623819869053783383225193022364406477267560421448542841740661470582931903434869386509916276087291710306007599750516402211099707780323578028478263568536389264533429476528260216644987394677224194767669527267755727562549973535807158094788426329064571935275899453550953518386841899902853336602779313150034991140573561002538841083096304665390546485854414586226392175938632192437084879422354109909529811818132439935832080066684877143404036649303267042250371276097807032054917774605873337047490897887814365618890893904022231889986563384104280757021323780369562656542793840909418292528084889521911656010727673022077704208638985324661186065919786549269427510566038832418766958255491898750799978396257083395715093355849271038165016979028740799486898888418137276081287487051182167967055630460459928708749950888209824478737375884999301166725639905228464964642196006371122952823307164597333054281550524699665245994669810833533634919713317382840456276284803785703903602601879219014312286927798168193916557869266529763697192482878966518015449337640470705645072065128558388499350845436096167374181271832498708895847611875455676010944485704505027220498271867366196141592215476810241948693375078885928059603119647697082816865338488111518258717341262199412673079597283938165074460883959864300596889928275990892905640007217504102632492200069288996223539660392520972250684620629576194350475801602923194278863571102535074186544439513877660458440726123550600470908286477597594537148343780947792039399248189984508570393235021799469144657531543457394779086338834465554729406775344913042083832913591027590381911711953362047256249886409918518705009828000697961727091844420642721189124338153175115817893684498405352569884947693483542878178314032267712855047490059008710089800753591864363470689620849343936682305005170655208915729048928068979366084593419894980535442621641775447559587758052438875045180206919958584707830265273383568366501394285386318904582476245212259936511224126009525268340278058183002357931412924567118829755066666426784823778735000993617478130763392741087130838742365677462466063955543652784252090769518751804950129114417581765580861004967851257522476833974480447902416141849995296989544008694702086706349510116109871847429112221918308120505735433549845875392978059945900828326628891258210846639764484069434261578285384314470118126346550899828070702365813042485077547548809033553053590478355750224880388230451553607257393285526026515615524824448006053612449753683060867623497710789302053050025578873745131623336352879035141947599425263649943150913137589134229404189513156257815155395410048891769611312547472238263216859839202127940227538996785196172036464718701385757177860529020226776967654546980898373505911335621905178896203255035730149165629962720813210329270808254230422842065689135446800239395464922751452602364891708881491553836025516122201279045269646913325573457955949817613835760018542187780214496979079193425808737292057757703042214497421445125089736178881553159492399966510125989708406273705700620717168445806931680285702027326942563979023736765855756116196092181847654422529177600466952769788765137010518737411679593352677453838928740449254206196176493687003897646497102794828015454117889551513404927222448804340117684577562720169988722582205296035508316626489587913894162766895121294679261219508897305886353395596464565818085857150678296464630509480307897572600137437796665106451026810898952869326080343391972434104205182584667726970035612996700813151890488118338076557770741845608546688639468968280694562976861754828276051411741979944010301118965894118906843990251973239627866317370440287526184114847428817392408003131338938717793606199461995870593831605147231685513305146299482099115175462270686973851681671446077696970159276808648358606112123585712505019381804977904172182574702200134460757901689582101348171758539818212220075293575658455332365682409607780049929139612191453429020526447059045832865747098874737855413574845305459487265148467374756187104326740640071422022525944893060623183359602581343414619189855108273801951604900875085806825733000463543667850496025829752018090309862664687964589391609828034186185982529074774263058908989308736852235269658674980312032138428743233104206913935808726281035559739206665472266872836315067112730874346999347302947312037904400961367142577778129841438409584817162993163527530025550066722466219244883755747422461667799597016782940166954105731477129425585018772942090775640577026346781250210611282687920145471448784621979830118460086852023020522634768889805511502184789916200370264885901124545771858417057885869726242667615738660343003079307943416682131848879826390976653956790701691840618156021977754446514754326658996584527366129311118666685389827488892689276426954073687606562780512338654907512132221335379021759207831751754278611333792616394193288049123454301093482409735769486988836872668304474646888791129663013784164243202087925076278218812633653865089401518069655009520469299418087382476853288508325541616585383280966329395924201504302155091866384972921943484498057085784778418269629236966559788053150588610164435546513862608246995031957731859839632462351887862969716875452209693067090771632306641757612828139434290006547895102334068692532502732822420298196635691100505661939462006971546968110687168945023826250113603719030885438867788928163590791394774054032041115984922074397728120910579997092026601138642319672348510051322318286051100117130792790803087059346911841359740159522596719578715872900563914968461983780407481784819842222550003541732882419629714410174422858323167270298520201683178633410909652950414996189504531674698430937363422237229683603234481450907832317572234373375938119402596789260459924043228290701305533580205572260783975872478742614498998183918499391112949298541963945464771476374731757416230493751857059600589132060361822115684825172282966055875757393830829950060979339790940178042614713676575037222901598010719473997390518237244253985512874465086848660783348638658884551178952469713021735906702311058509408683034863214065646366798950831240952329148211373499488925557324959684390030912847582573028281856286413263753980937921668595739844889344583841830058409224294094457229407697636814344632240304989678490487703241350609842856518920916450818942812978787374953855275638057098522966386464536491268786812970224731300149219416464771320247801894645656283673766672873139215062322536772861413414649188545637770543166114508155912599898125592042944516355781540489329418602316342927708121921551438317987907137281036888063904593668475736980050534304679073387249682902359335890989367564371942792986201252592669072319378510448992586828306060539687756139237293064066466441573946225379859604043824251448849458308501029366318585419343058204143229084962385353792823888364456381597896839968473156821450957933210385398130909396014834307159547135722910800868351904443145867303159524859767402691254563077801845186013061159877409120012866441110274555799379969886375325858951483704061487988260014527651408523168733519162368267717794995562562269629711825878172746664085232641086690303114714315266177486125898132031297789598326313560281764467809488809214831838479444188202342620806048702628934441485997883778157132025340089449320835769102732832929263701322458197636743150643922174457876329794187820163048536056239369792735242908801388197102181147512983249270460303662295739661773473021525709272202278244014982991618774727834233047423594012937342994323517488439437777592697538457806775097647700879816261614732944926652323170387087178656196181939043191507116377186402799609291775150154499341754290441566274570080456178899423212771972045325590986244574393038390360518158345135481341089325694601479348663391846115070351019617442046595858673811599161237723513791579739855289856541916144279146770439889920737969846684380351396368718222340289619640304856842338735303806152038170395255766186634522624984894161887668502735676007196130496710162040905855856147414895218443085317214446150189401114379916790524162333673326290870643303426651688964900789934201978047659536287951392365652344788091284534312592128060233924174111825368032225322803215295517427840619073972736413962593265610602586329084852209296496726801366616676654186453503004101003800573340059668196146265658431566354293646233991011440651293068817969117323813818152954988255833184000397334278990393465056883199666826092260167735203862193821874580675925747496636116702993055383910380337905260218451876789510721277602714117084830103896807599366185788947334821242019594720616033581328796110287336729013356775775290657240030257632640198838241947862903629230518085979896062180298527080717717545959353329434911829732284539500744647344174314557318880490264216779089291301506279134347945595798286665632899095051050376690634380494080033559986171390005112986500316877506146517632723448696251409101462128839312169089210094583984595869348474619466584232361843165916052224087193269516283312962291763207415137266908778951355669674689265045817729096986700667797210902981080613797509366008378443923181461728461261683312560628922154386311003433641510991240321099195725707169697329296174247465912485422598036328591959022571204106520328418044475484202499985599109833633451494951187553396404811595768489435262562959886637034136240765307939417239128639063589281686566532970406862856257312184908885020072723337997048603684579791294703210262510295745350700383219527130463481106506684407501072295590300479511434693580855550711758592808450307677094100123195928553546528057205190694174417465140463807272500368380780341505850523370068600679853818784018512674210731612255969592467115302337698853103775944306408396982915066109358807109370367702293973769445096421062737038150293012954702162793380965294587710414665381431588149326170107002744532989978819502285062948074141577115633512234304114926344835412863146214375988081435797818827033455951145778380075977520681209225504205461669735762118656172130238924093294489468474627589142762975180011632407376943356492324817261220825773805082547246147089687843937842905089098579048026077290677693262047200441383321951550113391407870237892233268731532952352186808098514210958715510105850192656735740501367971139823745691443053077469604837967976527751227428540751605627099589171092830837892347284468721053713685452623640045604476593975873365128580598998469165598536506660082443403106031742212846313881360003498228814478913397317376152201035456411518405689947004117959440659874364929453208622819208815626858555002811690207920578048052103292495874488859311744461312025555088750153098587262806578369749785866087258037811821223818869412003447744353589619419640080333265621476643846542250350360602302683606006430453365353426695025398458158978601484441813475699571106843049347392282916564381948144554864571346483721596751629841783185984276875391328726189896229590034047618180218027807025694163067978109980094104784938204907144470154198529244750888487805845312347398702564628531108050544316369103296072437821216431457107466179779195588116054747856838308972699210223608283153435265615351449232725978176216868034533191399373641981512043509095724357927233432940196464619908550922828110192130069543079505727944639279319455990032701687831300616166707940525743135312513234865564785827093915294200634613507437503656907478147953914397005314799052356155661820486839819620476864697260780257802120976763831887938387684056544908434474595803792977043722573058934563307210875869587186362066716507891592546592213057158814524246237163904446948449827721789734673749033704965586680989776615124203892774348444850431422664032965772476993982303532439676602932540841416734251240355894955365209549483917219607465037788315050242139521713764292586813755739001949523952610436473465790079473763852722704303706708035802017392471604135547884520291332823484930487600836202107823113063444385893393808601689954455868516013695644105719043088656251093242106641523295034175127968643936086164148236825707202692915413362921674235870409713861113277560086767262885700579476106985873905405021634031089061839194615066593299276897697971221431181231637573902865533091106638804405360940911613408094670708699371900104952019437407331286847468449596841948456393100555040280728358085662224209727643936441949349401754705468675800022456602965377172876248114359341880345603976657263277263037127495560079549211391017712254840606270486211658536748919172700813775877672802750847182660087782242687255736422954966589460342808660158321708584957687936933902673494978237988052473127603284536692428951998206176761789002205949097166675310233344990666046424204304860388741608518962744033081064455228918731514993550395510293096845712709333388949124119615722074322908131094495398204853087196003063358713576875864166926912557745073355930083432791735183624229250792594582333269930491484839173333513133761396279297429201000710566846781641131277709437186006363166482254235090465150912390248482493197131831863581007221282732150269110326423858067389067721826613520805408626907992753031346564154366618048735704483405746786856541749954492945303081399378572221132643173736152106236380060923024390161478437736889320721511794378438383802574822068500498364906032317476466297906173190369142429002102333150281222104311161474118109125919164212162283697809774916624037862652807777733129722417694326052652057351145604233366052837500102068594082893437948788184409364652148604105836927025086782800517960221334302875622093866352854854712463837664166702805577327523881268515234152004207275338042331307856508152036209776913706866238394482558707324739788202702674475943057313062314758203203151486656264742951702751212696339026397634798389471358677721901911665179409017704347654464917208754620070907728956693944257092005137754726812942066928497140528357521665913807692709976553724749648864675568473792049206418288543662603492212911805138816126323739707253124722089506404371773231990834434759724933254963354770091926470224191073863749305627600641146825772772963506040259734352803492783320746228394069913224021366653063672283694249307493087945026136564582971065712376142577099673937166571649944851331685190236898452417987174232548476217595295104208104334697149256149315802685121268136366583001663772572654059863221363520136450958033781657854057454892119949075950776642051487769843591716612473068493036618851130115688854452282338586170552348566950422686838639840368402058164587118767022522603342983948717892869899759678208420443437389943741532813227144792733370975278930767516594914573303638311453837176945649713998658348120877010203792280195320992995332013275338944787812062065045073283884274096309030415632017216706387198965855199010274844803906122165875782932713048124546579214052106026797139793809583709526059035289676439077691365208365173323177821744325491038944399391775253190256931367514043342496817960270175335997432297013060254312210815097476785841800807523391201444613579385263649352811389278747731499675833785478658480126248818353660918305666641073624483291136274548728080241370888126705237335731549700470289829982268801512960811065460620354301068061604719145607318499019963375147678471457461611300876577086078949897761619413508680200251007612073550840463079606817354953582614124355074093048327964591984676440581590256532719972022045860858737244981961161696247223708426000700991928456270383400198850060718666322050283460827972857819711734948401559264891305264430471702513830160619856987206842308603229051504575470768023330582892582275320431137666670583067872120737391895308474704538734387371374764197295188376359347210137140139058445628758921828583168125967586605212383863989734247097183239647920731045110749754103857861624867414711469176262337039475294272255920771920634057341469284875598536477776943258807458330122550950053584300260175551108094033319495814459871319387037816586041115062002351712625513028544336868568946437612764180081479375400277139597775367744393978064207730801002312561061129625510029261756272749685356850523978057102301704729801137886333606558410297220503609362105353711895139552169046492426165844886683624059274278920788613395281108638297477103631565060935588007101550839927546908560531345076641812303805074796640751742579846753860005037117272564880217874737941588811359443588137506815370312053529119555462874472420769973538586436635374528827789216307985192434213077077169833903989670461196736709202710745302378897701391344801549190510180106109423125572131075693577384029919143383752805351741288243990189756340950837738190442619558901141249627682097608591847273711776659807787787520341474179550512527247215681551098647817847559624883554034812942549838834947113619991384378210188993379035366887680904293064778012654729908184770686270959165505307035810415184939752772819967748711372771329188083944367681109292410993129338305219346847025370763835869116250242739049122705610673913717591921599514392521895450661019922364898541417952412907317583469270079651399808065561822756760956842161108246308570811555870221806416425042917430101139019351098495165264960235938544227160366071210116146104540305762370600680689369952366345750910515461201016694736353274980075975715302082748749272634644409805533547683217415966718137390076250547890058646514597470865112667197045294120164866453369287709966172361740330914952609609009933923982320094490001857858266767066681487829867899612588332392150531572252615456690070307372762056657109965588393367455163287446033944259095511449014829046323982626396404374874188638134876510072510270830317580012900439369891407354772796760169405484565793960086407560030914373758944698830199445634448749883963323191531236120626849982506462426290644510406283642619369357087970625003248099718386395163818999761419931377226004320069736082249273837896864783820182859182661088352470898312215769993013526026298110830567525410316079013133225530498913968588666682847762060670160691895411153175784365733880604323042282322254722728198442641181015382541677849727320196711360632821351920695302149657661796923553930167035625752663469588836280278817109442487650703022262810511734018633747175930258468760302088482729256616006727682006341547707593059142181766106822329326159591366057363729709010626220816553657136704794886074335916968605816447086522270534254253030809407376817887634745830541274897292527085954824087960946944838663758035616124843911631257528621568809651948405180018033636971529603614296299156320870175525346270008460743403523277917173291126810484257321301757602020260531073188925060745113928371484115111068999261791506462186748438387233366752612970534113619641245500019828356266417337818823127793983327018291792364964361972694048084464675837655217587204969639380071670517994536770710132121991617118754998378592368314122526807359094315708343882732610892111297758462264226750396566087614078770166325603317016736980536692659626910472681984583661659210403879663082184777288408884754099692720831992020568876573606236242694073241365623838125109908105863336812638713343818986055907247209010313970400165664564917436002066122907182917462458241636699261898904364267520088450012631575584061817150181323712705487911562517841175746353710821633334685722902320547728886961294329418076384100900800318392404685696371911430314953195224571347031877544079761731170454805816525463076335711776148448655537422883067105849170115501810394970607862051232824764457233078853116770469402694731114381396254053211082104911791772373107615994413497910064137275494160322118917494551268789861511287142337007852511135016162705455195007448011774872037706430591417267934922316131847194321594746758230379028600500817544840801323698310599995430784400026687793770677893192888233837709125491205600564664225288861726141585387025146460420723732029501923372625821490545037561283542343617624654843599428921030556271426035618017491789569484771883057566769407228906408730894272393773059464098870289639645875424770038818540184160335386961175875697395886649536111719108488303024999192318508961416605119413012310550638172900162807288094604303411453751425446869107638351486764138924704577258872280486661034080933689980296224326455241567392179553294145457066697026941282847528620304424429180177318792943219474823678843456221925151301982031056241650316408121630077918651785489954260176917142011437535121692960483594808942447172905667171567252953836408991608681901917666910927427839308388575042221542979515501705519295413221560258827517605424542140540375927810212060513709689072057697388953487945062906117829531824513882569162476475538658951380651907105972822444362745952737443614062539851862885965272430172697395564074928663637048724682615161806267005463144393249579541920859458489385082695771088920194196551702166798884098328020105293154715530847780643304401618291460689817849529486332435973146084836854350989848178140341570118691147797175107496094791999368250926600402095043804533432463720820714184447883381331037391683786203790066935423403490015887756059216448986555412430803432726639565990404678583207680904576104527476802164041465719578449506970604912129160704452529511173755245579709186306484161688873996984131079918213190338851400328710126398360983856917971352584184605125727317697403346226825858577995689390816433849905955801876387323411225405825132063423383549313967888850624219587118258891404637825266916781905311956718423009606145110670376000750196070839713292022859728839328219053383771134550767829165803505152519170158363997402883781224749415397923811492419598125036287191447667730060629853716461978305971686967536929709671384098169325703090247362771739065628153085040326386919937135261163084133205050905276454331225146136510873701973235513756665969910843231894211983376924715311400045940369517495862729067245783673432325400527967068788534983925394270431061257245879327813924563390865732318688405595264475815584225253139411237686552010121706199557537075205141174143270765883559597330856569127290626246850306279107075580919589432060758544518194009743792465230920492763521772911369118517363999211512503902279889862121017953935042370280836990221014569696279202523643058796065170833102622649936829167206687385428477079141937286590326169909247853392024941228415707105994984796649218428539884322519450014174476286167123414941241982844928331207579190153624729169205560633228934203862626423000888947130986118367639220212576544896041537092185800605469818969475711031083147970733141685248944435170227136614831344521656739591986617220641295437365802407497418301763282332644648790629914913149798803028980297433094164171987146784454518032483287760700046333671130967368285615944985675365072733904829090909621944894914022124959772260895266612638185697896786082064216622302941100141848752495363424825005090324967736834700399722485582351353158727708262964541675113961767595400864646287586801865660582360179740874342867384476017934239163934534200919313606380934738028114550373356475809210499564022498706402390387410231779083775531737592743856953307551773662004840190331947055091458392700119416945194301414173429950661971325984259404318501753511783918658098908382690958990718785134668792045750926615708487218733290246925775712041112300306288748470095044101995225221397752991990065171589369597418576511940590234686104262816980890493225856670536599067706373527473828354591631320366986041265307459114585625652261650568429806018270204653517240199667197714782843548700974678223496320772641201328978299839119423160712298398455888536020522581490353070310968187018810414654704035212213424492069148432140353880920733460218836645986497171838469594230510445872020871904867351277709173357065706880652506307308633972582092155229017511212456607179972417415716554305004102265109720330152961186036271455974120700072078536438345403655322880126452402132726327583773074571907294545587856582685886927024074298717028218268978076587247587872609961150457555839278779887218857889784639998318915550747781608330115557418472133510763799121280000451853821839484479495331309567003717681156601796982997269284730736048279465332928319550730390292369382434272957410974978753849898344506242526359126391565972599110946986623507930319462363906166689031223438732318563023912688665216873421057497005432643923817017189927668811104687314434964170477889167233882271320539873072609306244968802727057555192594963154731417586009589646494109702213705428451805689818818084067556664702205444441993070530424106598380719403154136666300571892939328709106344789111982597392757267432321303315277966905643692223413566955293837303223311739595533994678114521139075835335090025751960797136830368798316461129850911168453951595740096297020831867862322546967039711449821745732196505096054415199239827994201368374361196262098869485658439417743021120731043107428331883993312090423553015175560257359396073436632387850497887422517277680279482267354730626190902645628086506972678919274005260820080450881756453681581681574406980880695800896787781030481965612627992645456276615881707572498858532345512708659625396470516768702323911532130983383914454112361061153440863653522653397394470253354926304430267610373771533053955336757169097125292571239153936687321717663910562327997614027200465298922628412448267793400839097471301850757316084536175781358501457984725169129683088439975657859632553717748491574412596686175525877559866953538539276992467690781476328557563768566082866780409222727263178373909798867164187806757298842068801801278120336368457649726884641983172179732405702774165293073881736624601581887931114826720561183763005064563498865161404039681592043234912185681343609711745540961714032285796729380337688861619595676849841322441420970659557488827640110633533115065532292334243939862864875837636919317981002253470897863584477412913788304658115059097939881861065494364882642719218520475484458745778124887852879934340652081122960744997571727077579715711897723704615399445570030382291818610740897821832092736816459270306326013893094054945609241302151231394379452029523600818628016926613620459491909523724890376637823682168192925706758352580229201714819192268960738226458497017918655551096572511105474177640766300025048170048765406360109950790933103416297935805814539239923962909239737348150621671519004321059259828132681261467038104795640195551577949528214299217071087039232862451596343519681116506905787915420399836153989850754776576988630646174185562512015671975964897972403426178430097989596205981067510998007482162519491210046546606146417791337650826255257435774414449886401618768544799232603865288059609641400382454299114942152885222631427691763486807926788709074528937634234480505019228459097219939950373474778709170247212475338406054973223537579042908740541976993434861725159947483541265268078838922251370167835682851385349738641406547827373220196470268963847286211147367704898076562887976132245032622672445548032602039728599772991231411753315392840486476122539433433969842233069937391899404579811847517662930001699676257803201008309400545408047358881365340768285072677607890556513909045324508548756170459980878929769424240660484697908604573760199711376983087753375979175115460183311306376749884072951825666192590426893971723191331645204623183804487298043444759694454587315432628154017488074566405363997484951833139236653286502402328627851846719192720837565353220405649020030561758925226837712534945884545035438962993192565450210413342272695327906634273431539517566848469103097964179402844161465151812795013261142683243291510866224722981113968111257337669926707065697936677277002763804509883025272903266470963029601509419646491674416943565972199046288791130627421078120113193355631274773727038216165849506154297767801074931396100106329879379650804999523537946314685961462641790695590573555940099165762511595991899589699587498120521869426579870000625193603988257207622784087976608165661692469674400844919985364171236896256466459790388242785674146383576029479595348189601801850721754904479593938340711581527963480704770427378938247191675329965102683690260751436329100149964212149411566910248541023576673433355201144839347174434342999496050347428425063008526922324414981730964626021197180245244508124469872570439245043051539393219195918515098898927094009359094886779444212884355366278221670875653376277038658964619405860604291666814512269345166326169926188772736841074218612886038040595263896268284637807884856341961992182466416548669598940683983212358672347660093959922323537695575572646977813764517159589861958728932267921334794027841163869863633222528282213170252587400426154853964382588183191680238228348398240695462312459827261262618291337171259811485237320896970196247382098317676478703382805181631128677496201312172581254229556811620844792998607087397605460147521488984972644991923276413397004257119969059845194791355992477417040656663530530942217797532250234863578558515028161558550624558165214010339318405167793904670937182773048152846239248107897831361597103760745614899273718563351345165931707176949014249056521565843418028068336296565067250612008686612095547588361353722999750671034913291901715094374090921371113555820290317211180362969881959031096152063424228528857037539667394573722246193929512623033468282292550167284189447364188797578813461462415875486377847848295093973911825758197853828043397946892698892435190515657518379809228618242447179629748605077366887478397974263630150861764197554265173271646862492488311318724768066722230952404157047835333174885743599396376287673598144498588055100514210962515056975002457273446760511678953570105123599295666290238732395901537848470100161010551862397310103175008200644306082741056045068778729705664020988083917878044311465945806000706187330778192286631969826306656042213815576959471084400593820712169074987793166793489887903346423504156787763620388194561713401213995558325100826917826375301153928974046638146909596241511778148874628953242161498807169547453561691197284141035926117346272062649018409349646080346015088138324680350597875909215958457079567818779415632237395180740807579085097208821417152904094261347948372935027317515252207621525447609957853512842793024477222653176680287306582685663610130557665946105596237281660605623496264516026387873347355022632021355839452083864836092230638349956572818174646739130470131852089411508559641868194204841776574092324528027080715158643724785637607326426706789867431863031177736686839089340613956101476811872506823096374559396363661817153831921397246530462707333756903284322737021519770097872711875412684921106399908797426371683948665220196199669292254877449299078449216757353688253698916139689775677999644702244805909872176158413655524892887554890909418012197344318168684419769626318330874695660265242315185306601058844474240975058156650082868510350890006419923617417639689099341002064531488046866799663245943185380650936271954069430981421950615832672431030242414250212806987795058502128480903101721380309936758731617955214233788563286496837361442568460183695301519761662380928616560762354686971463516983291514440608872904979753581597609053779319482672937763428257524207771485044792913695369576615498867975314938519460045214372412629396809518540766098210789738327124907753749109633248228765966619520793480030769605742800706653133687739320255425816487296214860276447894479503814763677130317872454602476656003497107150305649842870638285947140217831670351143888724588775040807732296453178366205152466294609608121044376014236470217870732730713925399314640549513007713395303558841805713611449085428082226600557990241631849093305212929041596707415887110462320706578923654989838434579453120959699997981115012959633469430183583323538362194542864230650488202115068879073758615363076471127988016219905696698488064367934469555578834626296154230162622156649554122375946037666170629070102961024454564265408690761957617156302586975358697616757970826817183510906879938935396070514380852893677379506284667710101528542873199992755862587871566662730032907219166171162490744216173443682655011876552486849223560639647107899397539721514225736893585923218975105248914846942279347861327199667451179413716802051797087395587189957159614216699384426175156503631756444516962922497136458650549281532371800854178998332630225729106867359279932045394031242954757442753685051888989600404329408217170600672027256875539726550149300393398728099494068450175893927025829397023614597562118829114746166803532040806198452465297988773106168843467914921495446420266569654782228610061181538093988401588170029077800479432532607882676106096301232135294753917099869460138516899904228043608748035873785817245464279925453542260449512568281400608613248714274661206552369776470996290239861311341857209388067823923688553332878338254194684414687511776517521359440799296077195192967227001196475162810145130310687041862032482663695325318130597953576347774819933767509842648635978065765120825083511957238363307296967077087169627814435000392178108476398246554828330053825715197819321828763374155884075855296770049929831028568179696323327419265784515595526214525226903213539811310654023880818345363007905396878800437731713724393862094207859826473249269852176972380459385412394517800524161247188882703631102417834422755223634998643001894662322865669211325382945524623652376329887050702685564390486277673032211512745216355266464784177065205205973948446579909981098444225542350283072858738121643679043916914293713617928021374327174018130326159611371139156984651510244856373127016693510685613088111372038918695759402867875364954464479028103085659761473650721353414820951458764513748123389963132535600300800681544488114845088288192233756357452015350849577387952687766454155569850009208785143175078868961690036415548119030170912609460839238565262185856643730159054589951164351073409005101934976811992110349867618381202159420037007833513652262015463943271119112861001894532782638055870159905101720520451013491066823883621487599650184191920131911259066295926833479175081676471723846589291272599186268655932070657169040787963964376199706041662170448125538039575943192013561386859048794930887969857825857724933031721908892080992645003487366198937872019116806546279571724393170614426002830050404187158960229763573303797643420338439932177309472149942080779687850010328566419138994873031371708877725877152813037436111697839169302794484381804099877366804145946149054919754808274641282670692639876883538792580000386094891646455446620222718263587375618294239500040003418101377460080910551441463310017284583585316000362063948487977006679386421189521035947053841381727338778521229866005021563653924255174400345723898998681018004123479060603724257014047777864513992919563240716488988171104277918372845439494125050120979539093006331582950164081055996138253875044745608391693691692736410829953080332506415229141547892539253111625478645276985333679073686268978141812592333997308066385921280941804743880216395139614666185596691615801220562201455402169490409453745493129563175194068494119118351332210174384057686486329563967667822067887721326244998892513090816532814365206751236367024874086691008894628109256145744953117879763102392433530802880155820256985813806164491613205823862693702144741743166778973938332777655950204220799298513301402384693842695193835761747787804711233407771151171240076402153370761526322244696488959480763545076951467218714331178442347183937525569988042901004104095551344568949726790821459378774936706661346199322528358392883425849892035320791785667424797223321414668335806057258322397632564450507116796693088130909512790350370236296975367310252349850127842382487797077454984416914683472793133825926387236329833167499162323812442827058901716885855561339316948778558702848138684137229375079249493656975892647640256289656017073925822649701949584118811562418930659396340254423044013075579910245721599776626025743339727708187536247441472507759334776872733326901557605103990729626239684760068524703367051067215997524265742393627614626478893761553205187544594097692995383151487294590344070229898501555455774474168514804012403086231024921434898349245461484348749140687344733021827137035377830929292936285339661338757577474304966602512247227477679061284743744327847565505054773047014538420732173365204953590698543246523017631188481652335847325340094376300571263058900620567770978589343615710898576429795390976151661094069487860607037367227413642038994537688557353306728148298677991891531577574659861738964838567453516927923944394565410593728973116317898442201939326333530889121417597596670673129426111135745574016498377236949113116669092980416344038958229700895518231277143756603649290188023445744420470301281019388324955470643334275930894352087282882639892900388931408137906902673956926050358529486819060349426820833541621822489670963957112288217413917183089933848744716491670286626788427042821663883848330148732278617844578311017708298406669345020393892245723515647048114632500311983590321962616710235929855706386111478676498778372944955866356271714600626468751440430489457165480457050825273496018777136372271709408644855139875166952656039526973243994541937129360175542445074339320939387241470083252877118006574081357943923237795779710970430667980210766379791790532710576927855194636170773963209985653649035992687005919706650216308973700120957606989493348401531647428181247817250461071803690604108849076984788396467824550952580941686439016551561609736409561247427775828738731420058609293612302119683705446652631060398824380761482146004425475912041977120540817265811184355233418994760348132158347932397973325424252477447800512281813931763039766540179002476291188826469913806256272361751343289745712242282603504705064679024429858180072493944945459372782493455697108289009328477486759991126301115378295697924974959311343840904744013412370427473115557638099036282455102086748074160256241848146764616234969657248528043026606509326399918997401377221550445557583177132316737819531412779972063772909808490672715837046066357694883236335872129928344974172571455735347630452270834957638563493236599304875718865747989622324398553638105563106649860961645816284505738196800761250508037634755717344305782866310874808032714169465922021086494913206015261232975479225341421765330513588022061182500091637259525137918810888179159267277663883895898720772086778613160178018005057477386255268330991968000156296204269142558731976255382322349346105728104788853757782969353024879449280505219274828569361390737606449557123915776600748347017133492836058473734539375906406891916021419489076716975210846821733268722369120686093926911760044107643858229055456731486946006390639860782743703416214486208374907114958895639323759639158511831074484592056882142515355248381706681198373782295804105561987388848296712303864431779441298104614773809632153107037933708222155014456826293790691773579240610086080260015618875498826484961290611100616329811027153201918875798397719222775882570997967414635357440278393234867755651348439126298240430733822280877691769246687992066239417742491789996996028799628633368864826536841743957037395795397150065196297763810653307046454602421956659024645381781122381919569598422787011029424792907723120541494374886354428726799971888111565785353270483134020561075702321075505224915270077563405535611348962616569144061837323033291518447732545509586891927824039604180304545602105331336090689259011359440594142525583163550192844497218752868581704264448556148589934086576263741161564283137742477931162708815741027765142222245913603479795051481251120250503591900887779221632218394770225479365978105674386135871763224275555762512900927223090535709415745667302545452967483889935063869021833076908897920049009610712034432523560488553152654378874793887103011943792162750828453444820165526378456749513220463558364847338350895319289521367597301130069097105494146358811844050134134760982045684106350085452754062704266046851526342061812048712961369752163596648434371517590226668333286493018582968527481092551433168125775668372492174151562640015568930407943946485490425405812716302231282051568112990812966750373040776490344167091995485184972695326928605054591090402911076572675883485722724798838530971207449164474629843665915306770966836765619098315102498432534516368176849006631169625354501835992461979153716486982592182150999315484706372783182879792270031412392169134664291921457599558878433483847940014684898369502553839414381303701825665737673138587267060797912968135649348652080638137651565205034755086772139591472096254183590150699639697903610773075206512820035353977467538343140641700939640359212734972010562728744028173092276377799099112816692220464510249422260928386950270381749795958014540138440972945599920021228184136423333207267386712855470933542770701078517903900383051939232010856669456357206881545955943518001282114638348763937376603173725071425522812604770798443600355778325681036587593032701084164718831842923282909241369607874864870136173996860547379458129748191781390571077351299006951395925196139659482020666606838481101146208717213128410967909704233599183687711044849302307580270763991417544155086292727058261145826571239350111626301991113981497597837991876148018781132261544636752869561836154814867571133834440356302784347504973896174667648612324602023496205096802804283567976235086372737963191864643993423154774123611520684723199110635374524961141467014080094087660764619886762036888688062343431714231971269563192964195876544997031712064661534470012768114342285270861170601929473526876332074589656616675664733362185238831108438934633617380278004762968558903895361580582128383327040751214038164969243070568309102374266812079847509850427654327572985834215771848862510959747748641600942989271304149690724142684772527474098318256491031440305409793482963709640193366889499782478967776053944533849940981723753310508594168748914281532635048656305316007816588659716621415184806871612016122256639069767120656726683955069536291611788617408339622834793990004044130055270009171918547889187006159414853269441111971699341979239843304116807484794051373938616379383722406670204063495231069870578295590262819811871237115661392754206611935143389533448796226447171774847005950177818351952472512981813716540024632974860101552832090156884932680014559822041559864132922342916075547819151007678710617197699225819775092034492316469618058412769795019036052992133081677027699061329572023627959066375811556540550566469259389525500312743277223472811266141773032149591278205818043869736995785606965709911702616491020421939373408742049294149372434962334452981819745535242599374229150262838787288045192119389755667925824204567950452547021754636380170247339908064851597796254011323243964669862246963474624283348111638232818703699984907614182755812003549369372656891270960121345411793265581488868777073977884297993986440806211609010774654514348104088995400945035036863518374632223274502877816320305871982556967382918427976781125692011970439641944808930118967743993062270859572937068711222839900982774966996286472812591729524186838716449504427434651421718385453985097739549920464538108577373089951792951872000711943714587880461918858875679035173788324860970033920384621554804619705526560284798121565905049176535615219276989283841417606400938428827329205141799439026103324183239712924368927885801592313400907379987124200546384419116856731807758152589070085210482535342193361157786307768871776612865869422496140252980345765276378972712015234483118167184905638191646404351221952349996890313731079776699570635166253187332808978306436846885240993592664932790913014582057237082295821987382539071963592640750898527477807348999964038026167535747646959635831929745463946942876721857322180576621243000779750770274501018180022631239269195290950682405192499643399245193939097479603341312684117598430866755038069060746072952671795136939767083658072311710754848002555375343313793672197658216461749984489778658259476143192206966316278323101941149265534724151933940921376829424595025865715882049798698044783936361815322326230901787069266513927802257093181548135672570424159880718544573080178512589674640556545402227367212820346228893037195205672212326614043350650817579292745691311556920241314929424435939096047222790325203682735047208137075068050168266936208163126935699354184798647916111521364361171901260589297431248962552850098108065662387789991274017452635067564990254622833645726830719968532732948431794322653237068217966194817608759857785988362978285447356335327008212717299731533334326244879370166842050145092676816223850046977159838387617089535897806169172597298066604913231541451234544917500188646347613357740830418693145272061526557354996948828529781207152837281362341508980690302903636201563261658260032587834818033832911372415265437840940188222534769519847681794865933435696951614175277621246876929869998394867375782997492539576383201131896609888077338848354946811299068019072150196254072865457572254428056345336400711481818922217809714873697223808578374336262347277705524399499267283073686668959533390696249639707017563481848231297911525018194806031600936844804414971305849459000267579157349751269794143795592470945684291869352488849146604138384388428053917602772581681120199252386714307407068441587094600169769684398587272204772317749409861366496845766840276212915522200699478905591641905395193287260396571638289476744235035305858690046835404154592894155363668802053880964299872608122839931968596434343469456778516187455589842742055577053664926405245202298439958898685322960328351851925202525643322115884288525814736330520295836341949081197546339512191168734780315464685692532114065173060294339716056864212876007825580876601338033371830588785871672109047346196019115571005555802131494491738214869993716373583969200837668059509734908264493855920821960648552755177038903815536283681637739562604075005808111132214792761496918543308446913899812013319602864283241492607762320866544552261825154399195552096795673729933124509012401356538328579908354204075370164010047407524730362682074314096559149586996920664867598127989310649842440705771569475499975422410921186773900488475601642384764814735577913889793965038870622379045699204143818637760317631446915911541839904741149849309334586813316992101705123004136642256610483871607794271096229028196558128726371748094668284347847846173738439128498295180158789858377792027357746186522097229878037725400704110461019457312924335612017890191195600339263711442501957552232562693751892833628080264412710548344075932428131900305959859255237269491917038999093247785251069292613392394798587916447966716480939906314800336943085328275594475426430302139692067282207670017331070406848978977462437046808134354373848988708353319293316129551896250174139770671708934219275803309346322869279034524667306493695058809564583112031144599320718707664462298009102633683582404502481634300919445938235126445999708773863517775956691792464604688850139732551428857976660491217989730169483632381019144556793596558945577519884832657694501605819938902096871175331853778502328542192737004797571475922430042612715642676716512252021213663599884803062146673200323817087237398101710109445851197359762678870463359010993889056959581043848963078819634120673646780623344397118373092815422438856097738118825934559147430219886322658428451243387586412336607693758883037715951076026971487016082048788340677976916038711669198127462683191361416577816625696538189073585273812502203559518781642995675798659525726592118374741813039261633564647657155200677854620365139616430454535873550265985239076296275999256995906122437213842648089668404000367779098009513409855910648057671614366342637915762217657527247273669117992083039242890325041553429585042845785592094201394145960025306154294181070023321260505042983236034364805426405707288612089081727967570953817627144254606429936841394276170343339492002939928045593360158316901933027866838014618525773859794382732600092187442848899448396719773791000035930675363438660681252150425519751736410628225841831843274991496558514390656188084636053804087937286740615601746296113040845671090866559102856524415448488496413048760909080798769459257481985814886111500825194462087355134095865823496671794285985512352666668110915723022319303669671285087322346088535060197357928563939221358462050106637649789331753860110981185811036109479789263362214767107836404390862060845465798011935885165074117804315192660935494042507438255676264027450656136570061358375536609238892236191099744009726093480401244913043381820368886225253869051394272094237102468067051646113184362429382230117412937535641708503260928223848417170357064799291468565978232881527900307708702060891621289732149521765777702491787846670522240031923774162996249002173400752377310236996330075345115736427864909234134324087500222112929137950287821062572602279575537946215170091987818057180483392976696415438203355613804003089370659773695370484297178543226498280657984788405221781915496006433902160291400776809761069498559354876159014100564632715749256481933505418610094230659674834718875124323921397013412800905027551367532615150130331910514323488862624354862632647308046981530788470510793635619136719516668074147939534310372330264527968578142224320051680748162532330172102330170919066594106030593498290432450908280375744545821049270780336123740900051132954535955839567665077070544154499580697027566117105518420804758939844765943659760273981394780847064582059180841334788917555406688684696588571200612323978398523417136934621600670588361882529170623984610772430460251487848355440931999367617513370509521437703220460407396297260938212430859953956690287687160489113808532467033099411434019201732779042029048941106417471583528536250968848109927995716244434118067685313827349245254750596001339929802753055451865992662356365041640053627563560409814692952089149877639136051518635140300489699847962488896907312417769720680841488248177810254660617806626846472584762534604349226597323926851960388196204303828357960307292285764611531458862688482683537818236640405255605653034561387919517940094717766243518026107658233282872480399734426377975946025800668112438912547615764151588812066872160863159772591804867298740066963194277888525968599146912333205769267755349209209952569495470148819066126282597640967954779702184157586287436352199598058571991067779848182881684438830857356895584581178233978243380363005576857570903039357533971515002608055589339925720866424660844675651153870322310590495559857040330628477079100548160218137136597854173284882916184600149174682183471346308756103023131426524566791664410326986618731392099117953429857514364282927005408271690073487214245981216719567129082220145567384180359008037802132058040146909291559082582362908791605936518244359143642979129721584907418661695637109048528301081624369914884932339316607511512113500039482912765491334701686527350874502583355135540748989244230712451584311071411206278592418740697388026880866391993682756896584092346484599395109775189530341684783569855702837302193599825663763063588221103601567763944733878465890798620144450018582084399777826390998611405616119882715375152516722917545093794982832797859078283180005842276666169814549349819803528450578751174429982825582657789643997566810135833333988361519950761322121604548722987293243731436220401926634748401197355113088818488238513293475476776790741122566958328971946144280179498178153008568563699976313294878326873914599497636934837223608245953586490366600932847794172791930296637578452098257020222041978716364775521635008854014507551808962595339242836567503084417541022199220191170428462933815147406750603839586273758747463848909639158225066367057550212985196610353115727745423256487974325007006738953175475540103025868026679420870142053564081113332467307614720359065147131868371079044615400694934211249530354438807027816889614107838039776474985987872105153317070893696518552258318252718202477696752789124148015310331720568149957912166286733867838932545830570462331939524094590976640580485683051907713142286549797482945120756374357523528018302459959335512110728800738011981576340969360288256839707040204831116619960276035701481752419907406574088421362348401525993071761104076191493068233163310343011830930710606124670195813199055759587705139462419353883411854333825874459657440459083556048013174196333553328892605509516678591780512504247997425176115603303233118034164460235159402142390976878389213101140382198668406755517082783669429051178123523676980263588170124958942271554448558937460338340550956047330804684073929314116004951083977435415949713181777963858368076569062573899003307701950464567280475847793640432878591483613237225589723182243943544678989266673994274606976343047140494949548431112779627567828236808494247190899521536648971159618329194699800110199594414775813772993575949522797808598726143756737750479474591291328254339578470458308182981815203174981729223025295364189888161083532716669351530234054646394212837812886453751568634535792041572924270630460920742628536306359906671654468767453079281692416968715532160154060674416129961254173359014004730460081104068223578344176531986627894303430205394032017453615178476782250663724139860670248174442847369842316913670948447550325180932840420758996845024125919285255819313737905813472824436854339415055699463327803014292842246591573413749787889329704516777188770303611893633499793134485011812722802124742057956170232569310277734795543946832866931823922829328635754958974969354301696406174554568537673673691913308153358564010300419702932007087371837475196243465104152505052677966533767694368423115580492810062300031568975886178538831043211844691772279638428686145240319298947329687766353281388091910241630674307452992996746274493712179740788804895794352703909536634270594528260839998853586645607531364453777950714436355574117351550556385188934119900657977830085148548161762859674138685390131065938238805736772249069727064216527318898051115044318057096055230408608363811608050855219854713261482482798770142528555153604758934031667356814721889723992779670482552350264095873138115919146445453557524412083942167995374712350154512755642051893760087980614299977311002107198536336132506679118451244470409379795318695375297469650279773768137827739643160051392650935170674242704534218658134592664336057028223795684206729358286383174179666782561584012952081664821554293556555508211688464156270072984033927605053594038528462566939528509978288684828134132053408139255466605917081351215161094729188214962918066631826161103481078116880354006764711335649738012449361432853926397633945849512268843419611632344947347304446843826918291520421946969731321732513293215087946556699126561271329016750437074738988564505357411262701424826447856037056445145165774266582262385683662187921454889263638340046897351439505477789178985849642897123421206223937995400950714187519879614721731614537429691038745230549973405427199428052662975636440856521065491460763125903879542130918569566622230733114219706752743996603986352924808958488369085071633493998782152043361764555024713519919609720940793478444814028226345580558038910586578900715447253606571257519509117808782237522149550402020966690487541163742025167357122425223340053124875688335408230868486301917519292486734574978450833329122883739540779758874287866261788717795318047016538582529802780698996090286923608649503578667668583871141134348009162529475757930895711312434611622363996771782546595971195857837042796209870004937793801491843095957511930292007366472625671007382367643188635445191470948584409963384593879228464136423439041261681494240059787019843192452744179482232600863346799914766925601189443897350341305965975551139552746551922526208715836252227706651349823261151585205426090120815297913339230924751028864017785415632950236694251825485002414315234035802568053974322629440105758303245831945383269040919420281176722300885446434444775191596330497891179161208733366332171947389800220416951346092697211629631024238968465163097954063220236354328785799133316416109204598157730191416715370072847907532828266345086874685370180589056817948681841905017854944948437638368061262896481963414061236194835670872149303947673096055524356025064552274755586713351022880037442409895823861993109398529583274821898734301891490804258874540757838361800330408485836367001587927289713793113764794612135905565091836016096730166705892465698231153726923413754355692913092433906132941662581528004133732670248493955856551521970549492948841336156248060903501871395732448872907576424392728693240805596150293993133658557870873771895838094602334375245801214971572264288570753056446948974916818325728260811324709094797403267682157093465054435748280192242616223434959433364671285804224977308858382863587686517371024787638318628885352533841577166725896154478187752343138830346037455555966990024001706711549033835326430668290634683319769124009173018735926839093636868504215995822347908097240299899544142905468696495265203052502410239355737089803262666826476612592964221690841835122085290563929140970757577437198200022199107621046978967059346429678869644169278304618207174071511562200671447088903510870566209708566227820367902995387127507316458300071083621216575782285099243374664190992271710035873879269008398215708347256609342219280141221898872800811973660823814131064662641674778858775409379644918380058508559059688288761637850372419053166779354514029488092621439553158906946577161876195047822676615473523465513246072885470958507356250275523568665618189614254795169094503178011703502950018332485891888744597312754635894000072403654682367790120643044355405624434483534159207215873684350767369532672085024789303735360126447928076173908189989154713166383599382482061594858928925229100330214927308302564525105447271841567942928785087930136921375209435097281404750709045483626545636383681278635139678257405154775495533012978537881340978182541681142021507482219465874301146152386299574974801564809887196489029303506319304246365998054841003178586766299785200941837408060679696457259146350539646232299063397004987966542614210945573243811087783028664570656161346765858327264778125095124120151601016414129548538387866955839440520137342768346704311739366344599434204997959916814468563944281584997790652239489518809811984454367417340927662688909576160635621378987838739212245805427025480571096378740297037563868687610018632276697107477068786669017126364241912744912897877914595582035969117601500347607466183170189761351659994868442881790539877622696456795272786255035207168746802621296961762655284411661853559644729735486580150779393412185509969793434951262578971530938909130797904051987688308120442449187121393280248441658381964915857773274984158937541707821557284198853195306151814246002416208876797302042092253418340341606598485954495420665874867316895683699984864358225887963735614589342217372233942490407832622992088463988614199211688953418986397646364149808177525614937105433826292649260384480273891141861644673510464545054376069932619770952858000490418181116382807796785698586913911422263530214294142339296028028622252437092967064438014309605444357554831925788075551598862880372379416533940759407072037805906828679445296700897880382315573078376978153127928792210390520866213826575849314274622638112334239678737780481534556687886567816423393567506188631474163287380205653270145269190972831273009325048298609525400326034055163644011484302977624400677882141382664837690515403804533930172914508702854974260242160860726546517850895422320592530817476075512807215134170875025713637145622718500223090151918844303260785915521167266765187036837178779271333794310474368823859505411641790819921140133326142167289082132790160626071489262916137007119915378868844179835011403696550171744772986456634443711631480017508305640360313262748086525174767515609400035802981794293338675739665116722720320700230364262483405513271842367270866017844687868541542457741580723038320216902759495381190851041830362429951716945462809491326639938124692467604133149819033185243394703994759833863175430994459343076706320766213906566657044118719430951956713312015656207827784998744454477879366282789082509263827364378792346159006005763882698448679545347204514580492651426529178416153416105189844980049040669182788737456524578215528972062817325174838461301595519539549179556475016281130820768119386080450690662067738506991386824569215855054817836149297521979204664150637520473583410587435416491528893213400255609742416368707856796179626763281085593971805639303509986792810387178811187332595211831873608076345482127765104205457940466339630819320294675047005935376671267062603226722229316615454460339532487027525816164195869201851538664121531734218605715680681717955071677851006962685303752196724231099519568474936861596300847766223109868556476030203144717140381168305125401324840613160657700285555144354078446195980980865649420152179965710727170748197835182784000728626043684967362077537114828109302138389279249377083330582167481374372213042911413426646161214748748930337892966470372725929953492232252134142666329882674655918239741025281844083768047298588584280609176105451304701289177493351692649313219824420664214959532326225975310148515528656839877612469200453883813122228239756618537384853194316571672926126758178197622151506044699610566502607564504057391735426255006054620562743424198387722422718368967194677826175807032780473185868939391770339151473088244479762770625075968457611901429971100497089902493476279814411455114533947670011840176033592155108727094015342081347194462110378867257000820205113430847250105593652289514627197114938224816528651485872209710428703090805466392580553681872291936853812156062899301717386944912808368980017259120387667029676148131018513705963300636182949908701578237304567002343477212921714931214242619364641124142688828275504020474694618003515030416869538411158467996139240725109195385790826818313576799347655332555294283454301694061075170030611267136629153306553247682842281367201146569487239024454971507333321244978580076260906880704222565036974914203167401932454504994457865548968497842166643489061373388667580316626341995870752701008768890255729173577087588277187521385224915428360262606549624686145725039629999885091219619484184098189928038312660738014580060554724881450968064700245013585833666128387656915402351370544176323480707174210411022255896029710469570054671479530670629442350804778840620463087603400208812986787195662383285767759418848569056042678847761002361011679443670741631369969022875562876510215442236430104818261082167268904309794316564147625685512438058647588070402254572895309177612338496830646412307189182825688237129513333423556947571653081073636513756135078635693977805990599925310388959867928518289763157391873108590547490610181747404270037514900140515594162436026514102442691700644742179303742352333514174733395651522190484344276028964235910674259734487475606957834836947371332235631743488439051327373611047092741334345916712190350440182810780303633046063012786122442071719050240606351758868090877741202962277478904854886158887682247984256630748595484994189261882622050299136553255860934482198848811305597066912796748379946577447888547377950508219838414747168468997904361001238087506482552336240828980539806760942390342127838347409773095342662210177517642371150220222330842836786714363254381071629862290745172595489712105018113858412285684566947704161474112364335856240100946825826839481897209365588599529058296267889871838542160531549354170457366128492529211222734926468226565117879573028473505727740403104434511336447941441321691348448123167250845367284521953036755884109558342678914061522477272675249746815607179699025413071742527275449045475982125884152184531375185647511323010168652038648948154989435095711593795209617188387992494890315514521020681872652581842414309730004007934235514807170172518290927713941016631799982835935360692992291176178448064020314555553591416604784476828393649770244944505610645321563383353477237973224892601276830231576371057088386267789385189355992797836191484363368981415020216959860430410332492562903819121743039064869216469324009579518274305051551526780269592626948688539893509507726140370521106747197531491691092144628381816044929815763333851709748472543246786418677430913958050642417995755738062167680784773991551382481306568417682362002893360035818337880699129022079945703365495424401128841113166711582193833681459013177656394212330491080312400510929071676403030279011870712804193957037101281783784613842474900070654816942398492517732998576184094007950897051098717740579113397465173423917971836490827152448637825056004660923460605571951197590518461737324939920016985983872749437083544278438240866816847289896333290175871195692789683968044243707402512256229890244096621881379397416400713637932704590950549814399999854193354439595733024282664375913197222390245198122151211044199074839133372183301913265250154493248663136084186551319019713459612960819969865826369159307496969074737137954557677425149568766646989021495673598228203712714655588540835146217955426468656602479217064146787456877202127787311098433137422181583965585455332225451791061031875475277225212676057647782537564649423463558746626316633625055706171588788011251730328676620348999532814356615182533631902974958389710881092939707597312175442365362880931202160550910505924216950492746017674129895400774618109161645303720480680463049606614060371340357677401671243580596352713373733024389237595811635586155076001918319048529895348583465291102987491204548752761929028564033463605430412313568496984006130335886200980314310223004107972064930488852277821663792611377668203512639168011689077263030414777044973021249058290004997885346107027821589371832531392204341038954784207589640829122262251165267600657611548789254026777450121059178355543128430031609613843626529597155904785118191332301808258766304286323216883289831928898804754985188172739326161069401652111379143625788938756442331839839785040068601130072156270436364766132807911311667780226501232540598129694435792747574191221332275100933657683811719647061144957860304463357491645462663427102004945634518330141037373080720184172985374560275311782814234786976609384019839673817098220511749345651388700277952732771175774025492214719231610088891604034376236931701448106207034577754526644071608640978221768122761616888067229551897873426947452094449202964405573800170179729471812965788532262116223160244744633658468111921048580451840456194489103133488921431293631483833720052484118238362158469016730443807619194720944108741573171169660764115648485761424528817435392030180706306730500717984414285103364157389217224175517406213737318595666950034478624466745551399702529334223037507833073420861820543722291214119285432514347423022887725651061162918315571630829646359731051330339077731611695545147154249693341759715146850407530743089208400797218393782320309798316585374772128000534425494651037639785777415169046815622248968995103921102718607897391084833762875756700042304989457656179076182397727037856759381592137986759118945702533601283997468647101908451858811628252128459063994297992973820415713020326005717225835337735300571907713534470500840132195891422628546575120244292054189762141996517509472878468388543942699430700293545787912178025312922178712513130252989601926841596105474974824147125325331299377933853688996600746784568936461142315744930349397749455327893717615051701675021944770284215684058562478340847895933489573432370812765943053892891932779372772288067634262282476573307533961043779335354619449647667011395365897451565654558816430894208914546056681096675239060692746010806733302403715580456366086326615165762302117184074478401983165133919171787130804681397431435105817854244918225158949545666124275461859439158597395183357727848434084697345407637582071922242348500649377591806969910301359421961197083795542755244720747772722970295964696177740587226535155222273447462250280167177597901162205713656327316673882544753167350811128215571866220359435755655950314794956525240060405358792753438656486466834604755764831276860619021922851371850630717511297765179811287799624641699346485700593037015513555541423093387481193679486994975922282495204391699967848746825298887980078677549526715149188689234523388567645220533111361873911275304506062035248165278245411298787049186599167485732772632706987445202294102693005726035648182077004950496205818785746302795666290821107211125564972078189095259389650860816346024886013126834433892721551270980734233362206618408184040320486365410622464546726217200457124843363063515392704534843680060196427950882967114164381255445605785033906019431296780352574307339942713274798907847717330959386830170007343173966294900888959453922543916705418124043747587094831950473000851896619219310414290341459122062823723125190654774375332773383827266501862322146906092373299801552440723700384997326856817609105849368779735938415302688243167723941458448460354543162642096994536525981049652129963209350420358364865164372727562618245413618811226999222290537962202739002569627965631734944055721321173322884912672569569183165057196686246059822078635357830145972154007798621053150244715716546058079762417000769234166209259276672045618319537034795044016748868299361796975217558715423933866570159891026326813875412477449662188657769938562395602024892601537194566106594883211972860734165100119960263442451081105872473658531314033153327883606979140387115070948930607036981262110832136655270353385783378518592264008319071586291300315081789759973029077036629565057736848666116347847595405381600978137559340094633434390480243710633709392927733819503184802433135887945037882949304593091086115168731535677139638640664402990114270570745109944266732735739995137535657194349122141228422823503035344272757774851033152888960871286666122772611061985042098289214275421479425972579085090077425211545519078805586515916172964010417630800660311552341640496800320233280170068250876863914450533579600074038472030219036305605692536220134201146695678450875840304016826575813295893966941661237622723936508578620486381799880780570194201033162798940647831172168740587019630076076257665189071158759102916209756067691396817933805829109300331952833230749783746850402457931352747189847951497808889789529148567504122877419342633298179807791079432207070086795139149605087932415415120451068065620316559162954968993235410037566678341672752372665062184257869533785900777883241753102885711112900494546705292229576112475478181102546993116682498127055765900167461996584232883566593489519407297697235087532968196824937984566481809964424663194529422978153238538691833182172609281017975428753586547506122382542613314883435670081083389147383171847100441323687377370407968983667614953351759388464781612050575842015971496895699028290007290540848820832926978911894856456271553672930601473037251286678921127549718280663122185850689005055600210560575925212158570679307183754125575778222014088401388473636219504840836474669584347948865819021728434315979596998849505031668032397384680548689865451393060958032006462772662400347213526185596067087655024535867705608837420776713691007808914509653681987523429268757408558874427603840257830071769962493476583742516448882883189059165501237204794796375150862796457310851956922200651841757618420973767040527281659276979190279958743173564769285479340806016934493627430964514611700692916635234933128559564356823870168055445818183158295509448585998984266074115333947595558799154414277458127051927687753256622407103318795966246117028163622948564321570704244710281045396873369290660904922242692021036006542007860750253501269257868716560044344787947469253848281544875454480892721212702293425347019197839125101843212331582274791906584398146760247199120887042841485468264078643997200671680829164150865103874402476838315091392780030636473766884746073345947442449200732105952987294795156207595209958306544446479363791960506585242377665733431681936227715658681997967410724265427987804430680446036170120818895271362590016912288605970464935467108356968165521754948437183697391595733011295675521687128107254485916270471065873060402295012401884181060570049725341946991617166799754339772682929437019127914283456142338604417096233123151285013401252053111269508057405012281344937946660629020655793948679197684771503525425510170825186408144853200419661800396327165893960474327609511729892344673720456860021914087263880932416574103704857595831905585370532380585130380445706163378522058050030074745598709288747184509285432259941417168626503445217740437489621334800108537038290043064317445481472922068518775527011989535725193814912160228965041180394262801214295626995985182700160544692579277374815086253209061885825296998656021536655095891036615022380932605710855877364835322988003231647919505884298961871083459506687479329346521187340523918750927524509480971103759013566617191302298664881885124387390916097428489098857701977764327946503965578688507339050446344764044926443076139279028317051896195626207940957846604977235968741738126782295675538426415851410117848252109322154585136621318719015572948490632665783154917758893855079281258629985271149149016711521375335132012509373318078059579543530657205565642171343255591290086845821246426822875313500320267874686319151356986337856710399532036541117152418508551297559053316609503164183802092720697555740275783676929846288495589270231002176309581310514466053580238217407103692685606304847682101561103100700485083116908339874696267619317984294219237422507478134889663247951266174039545334799364655943501894592390011313804794762188265239766883655406169594589252418763459118558933374369687115822540827711199632216714979340147966370119571758199693046518663856299164058248473969601582097923825994808492831388340122574494886983138800594231574056644144446953371708470388175805273864958972718588636300626041488044591503093767680726988649898922674830773633819261446392222971708026142879596027049801388178890778324207625181046207198157195237520304584851330398038052222602334925326353134702404499555418308708668970869597057379949878030399559160708560149887425589439154344528085396395212825647979177907971661957737275306340781062047792809375326825223117311565141673713569200859486439745067741837405559290216744679091616134989737783103133755283261968049858276896373947760791758231067967572046484321475825352274064965896588970152811994501050821120064661474561307940956053801751136540835894125679642825705323486013637342890312860357197758880867727143334586157214007478536272310180661047261312859250448285993191233585309308950809009603942366495366946346311152369878577744380117954589388199103366234445079002785928870895540682838354965183345468721680431424330583843972131521995051114689110922685078372551031453252141589268240670300684844590010877249414298822938322318434682134674258061337573611791559197565385367678652407945803748282242687237009231851891496252260675428289012048555829346985070788653310592796202464901066782536091875183638476541177299158030893075914687283122920905712249858648833789426137866853424434026426292987562503988045192109910219357535674529937520343761967930818596087002548998466323418204264988249112392696596494179023809320591484914207067417039418028673793276185326552217614991578634125132420014428591108167907230740456583569868147932440096908197014110863085883786295729633242632800720097824074914556211620749559137533040830111063057498028694493539974471784932846598138628951794934261845343534391955981653866577121907701580977419859124540705940503875493674905279602236262083336791153023090224829089290608046206263896953583838087669358058499424717796282713194519506091609832629287944978734632325414976583216027323453235677846512540048814254075080258099251876074158226776679056820820858964305104859884435527579302226405218344205700705040665455090365918148347734821440273326553120844066216756357563533928324960911287066051029224155054455745114543302788546860750147262835563696947842123895255798688939222534175754605310912320413468467937697532292710464691418795085685904019617898046357313215018538490415917522466217908528922596494449545149810114118209794469297322581765810458314761315028605192283533136657487631511730185246701194072971602511857756482407682612354658680968177010419687735720026921956854491881612464251429161122231801666763870486485451449287027400539986499713146554031102698952679101415323702865369477850836698918936781296205906488113844085088459513853824152530648525119235614191708548513527035110709545760807563416163457470190647197497623153743592218126110052680773516233026702515725022736630754758653426984752926241529678544387599191481848291155087363618925417309984786942349232800881511234962058313743157711362619668176548135917782856311997091824110298209068468930356568911643649294755326655781405370424049212617413132044674862071328387308809729489655227895469084684079775457324071626169660804376559562703379765728186892954385802952305975584965175573077738497148118715449402025670443608923223996680429039307723113124154670774662731332497705035053313318805187464510714821417233739913196531249949762212579944715014271225361154091998436559870338632991339259352605457913065564522860982525481839915876271845311449242936586677438935577513576823305852470838695050088274361581662182008655996343626601331594885843275240648481022652622620481106327811969890519365771623109852522326679734271867517067988762214632431935098732349399920007861022600991572409161411106867599304383923116493482430185870131005601118571860214022925908695387051110290978104396946601132882285392545825961372500670864453098205919886190653730657402657741120590590825478265752309860019095947800922634285102766300316441821214992865648947729044416657453940762616388437413350001843474637449839055648726211550385458692524076480497235861031206856078234010353551687852589015348570137501899080313486833537686674059473176966199544783824771557986629400710576136499904992550500996600627410204386695065404296013236444713074150840213478099296265941679753871190982834237422864951376234646165970199011316301766594510849081277347599007381634032049249798409774930456013408940572058319807593691553656306747434831022083522634050517674759289212800301811357603579569423238295464774705768185240030998519801683317579179418929345492759156423163178956703146442822807471591844549788426190891610792352768543917635822392194896952637437837561781201008117730748890943142198783300006571869784284644147202987219177828006083445946906992216699775260479512611776277440859661831980962225311160684375417987411486476917138037658771358607773130761375227468931466759151872389848762429863148861261062353236185536497384641347679526723688619871054293838498340378274847307254586920729277696779762573650917149051588052138130511338537494058292815989184454377452790997847127853116282292158019488704056135046737759436330323662827238045295822514499154244778579011875425597618597667725976447056731619813418556045989952694708970189537179531888314766269557845275906027688413984358196086757171752153330090628248571235011717769813043617581977622862959214843237399690548352620152516310357155010880108188862150931879828563385564043712330976205570389247069412045142730908429718627236440599906824134442112512118214195766401684922753123156791492362439919044161329658606801370642700208063032390360249452783205034240997751941793964838987544769789941538642739482633074211634144678294640142217406352910131803112829021211341018288261998828499753939748529079235813092203932792735020275519974340480754871176525111801398540070306011044168741453518912276969632992675821374731263861319655775864480051987704921733080388464476098506137954842292380045915456511124968888280949744924114272720025253280125962117353412723704264239263798746466020404406640707349145514623277001560804038260957472629641819854491529966921428741964008369589747016159334029057483324683836509742494346770975385807084551549652053342207771610361256137371069336293618773774549567607086106046413737574248563679128848178700232151925077262077396631167621802884276885473324825494503122583707816935934509287491754775674020060151415701022021072592489103353039424075576762080735795074728867212246330502286863709612415890482894252738173920502206363201818496916163262027409157016488442274454669715528172850247162513688645133420179853943675784139796027978985599809453784332594837217529092189219259307202866004398465687816801419251679705683450597954580307392801540877529369872768622533689366374507129263093889365207762488577159101320682212770213968683752130969455953046975780214485932672519156825906549052234952074603494849926978878797176389774297377209627231988440671644485810996477509259455684616672673699387618924618142182340403419146118767905768298135163207365069359896895307221130704681139714428425760354148317465642367409198636094868026615365112910180145903719323616863683000878140284512472894255573454979204371504194846928284059832673748409752775991571409730347924574738024222764558954533393735507159726552707815019573118984088786208242380498103925386040055332094521009050960831214184882477707495064773815046078498727884041942166647337988811440801191441099892291413413223639023521258887245322172131144326007366718512213630933853467899556491644542590440982563868330312169959037811489337432757725615147303862473459051335877644513716177267874801879286418305642421519907330675486500197763547803366512516584880905367888104558330277286328695833641298845411844638285969552024782579970558730162605119324540825174725414862849278386592923867623990199621772052216112541417319333600902956006990914372011424356987119878929489261952513095690213675867062085629051639185584719053624577785316721433533700923150659117134236447801170300238468750805928629766512518797159902694088435352860125514657557538161837383453801628667522351617786302863890323073217856069814700154109300738698120724410538848422409153526724948465989841566228599094822111721641662467602620863631019500200174915307790495713154861188650368918339838815271498858982435013227772729807409294695444931514755398498043884850970834346991486679212288171639539283871359310438429522758355319423324722306235684526934899823578204980216320276979179037925448724479568299150714936328558984440231094041287842865457521273127856252207915058877944816470312480363190046990583704766075566297413776303336506188709777032383508328348479854922692418778764440344553118929588854562080637826422818589544140498973573639225942573365942125134013436071248214800428413637244842527166725842328140083189373980039749661284111837448802706883150238391518429459938335119110420081588240665007565138738840127164369276062131136435116617540860751972635577096545121189891846381325953803173031222662668818246066203821253894752138615198707863530261268835462384596982640401633580035735537127002360043231090611740317907648591412100446204474523257633640551321842175497488446121815757562754774060544226295918993100196481999407525103998152841067603103061468054531891828640252843281429416875787936399814486415419665400611201632856483219637952815448539942967717765487656509321280920582223266211201294760333744033284525868097142956869897252255751106844215030172317203843371962754150288037087356579883398071170969466837003346542119116902553194267039468042249851182896837808711069114051897306935633392536713246013079945492542356255865137771535632540383070502119428202530403715014643851818968579795348018482855391641047414798383839941819873591323984871034556814882867746727330921198251284229196872086990591797447023063909049956896400863401702218693351780074675801451518442393715501609514312376734464451457031041075207455677204381147311360534671911953715846489267146766862684312351377719059736024472025405654575599763790195735434451080815339897903336201740498843170822041350100598472883424832409629864027332317173261668601686035266827533752375173829010817231147318416195684905167752664861379917539231698161668021568453977902423828351277974181911848786298445114561172712513521570398566502555923053726099670375911942418918485596162205549317933245451353490773344569308152868043603389375329264879112762074567195100244413373790206038379131890794539702362484166129852393468542274691260680986115055083950180189175087633656909541756870770611024288186755967260327292502466262618979520768604490432461278810783014968550598574228163598202018292268628497139487999572410865187291016924305516358706849911291223862456500027016375076537958662468201185728450592753195976223812164297246576267733283003932251654432464992784264072359142797609147730155366012352128266852430904078940856284263249313113806326146418084718312463119653654445697131284406217287617553539082332791141833780689700304993547598518022612680613795840508943692008540480654601847584391948690828902919377795696412594561337360647355082869180330640182808732800337261268000285640126540548086605571651419755757787170475614723951968057124842875344737070705145438243412970527447174412588754063609127697760376169186925581292749964278482126086853815790347074294971602124893711907262589829867435735573748766541483332954557095753470555840768819753220397809512224408815104840009221661016902440869542438972530267510469259496775541965689039207069894577645595507529291166601889086725560820984516934120585434569324891019846467705063945069906682349029009064661458392775610623703716143020701697357524157460872609332798301056810820285860029085621620619945548074578216267992567773732633798729800034217322462141841643941456693956062774734702717293944502855406673358748544000223295761002744155797958610527126638893265555139739774869216023362138657739667992495719191739105110855664764797226915388617203598111092127636066826150885673818933554724511050389642101953944800836624657700518141558712705537715906876539157739550772876081026449479975881223454062449550349584801778060998826943037647702723803134080834271144419616449828912766242460183262223853453099983315155446484354553817802909843058757363029815930507529383132864474722567788153680598869180823080931498620951177997333061759533917089309744827174979736691186940931770802818602191604199028904786877223553585623612480477923338714216710736935136497193316825547880423524370943645063266629999147983861614782879155102929691086016314169527719534168660998297871871652733601252295163866885794289783278217675544711791693602511710550472493298614319387751619784848334030825261626571274383321679887470916384807205735071924408585315640367807927775416027866929341903485626950094963515759003909128998383065528023183889965569149577780504106503509750203017027438230334958519460132109724746780227489807454616166785139980809618351234887177829482567660320259579560578954662685259288403823509126179367959547828789182784216799759801133153932526382789106139700003368040831615391960774069478342610384442631663168594799928028624464925821553187347903374716949576795981602821918994198594474850956411920320949008444123732699756563305581707902903363636061514303110839221336498348462200517156160455756041367482992410410311645666252164713634074259839236691647117096492832622342583302214707926153435366188216833608624961519560708659077303502329042003106341295022014950832866300394036715004775097635980357639157290728009291507349250616241100679295378502400904728719599159880711331055148452378400894890271092797227615120174586751329813524021360757339395471807986248398174583848990946841823495366004999377603561676881258188664402097456091741908115034951660053062509987705875183603794076916787897252536269708014961639464086499475937151610766286223851819674321284812824713131748175642377021116258513123741556523733228669287005041035340095839890291663829390308621745737447568832949091490572895698027695479940264698900657993510439922113669853361765173023356859456764677818001299001242574468383971110139104445815432945305800357232033850422315673175465882940153219557502133553263089842014144854331686433192757214789123844170896445991838787491702321698263059331524967520038539678239687024543150666910864187521435030268772605862218767292113006996192634657668280463935700761918416616493809327854724586618536464103596949345845030233694983072828395801401793030274006387674485742230334836943625620731554096808930984681978290751296384512892874768497814199426012011022710684076237534514651935247555741390725978071150944048678293091625675410540839278192445828481701915043253328580739592992666361614193714258823013538505940528234245913506028803704891864839721837694591785014610721884201672649934351199766674976311838449436518581926368470668738088401102715636505926840755282679524396610502730693080165121122598778942063336938685954195587651914613236464290306481246867405304027624792919377537259197899624476067615258505101284161144623492701151609096054746491616445908990659820827036048941246188490902389875143134187608976657490177047302550255327990324399067266425958932722335960534334856772149955003644351086788303160766985656193833061272484203312865548420267079998437307597910051337137713103029935724325000285155046678010644723373600172775065744514903570413293928137076102719705338506044247140655433868346005902638939747188403418022315287011253750954624554988906808759393586711305318045523389992669104240371750437220454477251797626274287601296089767508099800250106402038342516741855477367091869541083929775470449959644750967009336712219892246577685740769158390337120179958232201289717344491253871199933845926418993480167956743356721213162548526224307451906400002755877295209140325719686226059938212289491686971538779302792765973789346349345799890399535963248996038827449449400713091872739526142335277004649357916969812115500573673371320172940848247846653246563003918915114047523401610953203060297918476698244841345297988954780308693384138330114703871883286893267687362614690861456347263166935240343709681119499229494275725333622367153824199551313694034421908028707552377920145458925176862880618279570221702817641133508863574074418355303580989153499234344621434959353808889267693641438489294460203281929555193608641356576085882412033806942399801380964351687860831804148798259424467554895029868801262577827472819504575761218443148763905926872015239333326417558380712917386742064962009025720036511331869815662025629195436796123465666603023707472122073664261672880099801414014319374345003660135614514550019784599103053969077225264183586415730845325813642276097897966121578201113714149252186815647877965736764125697701879519672386086803200991669464691958377663602851054160952820384784377621338356164446040776415919923819397623886582221891004188281026618089129829786248557888160217835020400644521327055541851750174096361594772607212601082625530739186702677443414227704266940846614838303603448822518662417342916198374835327614180257467484359542358181246227487802753350752903018425474077992445921266320678719925401017482745639942132814560962003949905597102611813010905497932099705669151229994094393726922832157303516170459141143284072409521656724814246491206464823529355954740704593417195086064992677161739257684057825412745667893794520557128773162673878085803646122849951016076029445034306135931326020859006949540115286242395991399442650165322573502944213051916772260248799943598863424195124483575498709547748929240062907793495227278505483726946123685807036790250736799804048542931479711396606107896723556418973284526433241781406074016404250696378634361283417470973874060867025952486755704522209946694171176336526293160700168580509109249629457022396748493929959053687684909852995645432067469369147250373041246231847599971031298332530876004558198358823952628568446768341712642651371331892539551698088825964415892929949270319950828576484256630278807532434239602605544704723491962268858309710529578680624063087873153681020934583042249760973689495276732491121189240131565370554556090757131101701739717122342074311600590394437819401435036325246739330184045184408407994103182111514548370093378923968219288108235058319595878121003293234346647588531632366175222661173565437581812939277465285359898747575333621600122522406949632362267279306848102610902820230355292900652428383449507300876503074356942621898568738752272924504308999558821545416815302184357182400027447163300209507734047026739065725146227334540760707906407560859352970984575542971256672655730723481265684015857869589520379543701029418149944261351377788117521524481588108266679707113284643521187084590866057362829960897379762963285388581807998670494409253730897346705320074145916894308467364602864390249578003972479747845394094772328948435414813763956580811054046589205730411107913189765148888254346772904674380141837094767400131956336791384656572161482937971632009002536052950940103559209839809572494062584070089459714765832980204605782035101645437106504881698334718420024036608119808146048887124869483637928911720194489825130439291418395597101348711659581613783316810157554998694234175570202255552483592754864553949803627494404015349010322218816408965290979286678806169798894902140760791640107017674299782726447656929149244208941424643061101372705045031461167625473228286308293924003020404461925369611627453774516280365280133619281444717461069596356292792275500756631670087296700698444856803835469348752645289857987534385012031996500911059493571637751801154565071946035639436901755411642906731590974428009801239974468944269510864915150333850517304777889210919421473748994181450409333901902388159196242454067163477769610025841455248222098904747749359894026680178705236513204649896331951201063610047823140818653950195188862112706869188097348178895830267502894856490158912539994870321561357193757570007820441795051162332404164277713507918408650314231469725511410416449069625877726040561776871768191813608235781673262389592966676886339381409746718893806739050584196174251558534781329655922153222870035175194289500235851238502536462006229649367425780026178815818593284246906630109311159942138615492060588166404849279198105037141955210725636565324145495300158601609274187696629880661726960775179271124421265906475929673234235148713683032998035766608502214299164661532248271092264757069533034071490907519136255826738776166383680154431103278334677423459651257519683180990394764937415521220417120659539930850444506930105512859337541623126084096102553778077379771070878177896968328830536258446964510534532101001922549774361174464803498869439220194501964530445135608377869631865257338356949628757270284334553610823639243341977584514892536024148949021227046872007525597672836133105985967817627968846863233240800340091139180278430218296291027872986376778638239713296135988938743695084837443372747614059474432465636838770735766498849724103330975552075807880102799890602107835859329905153536173291306801196276866160563399041701862612219607449079877466838977070731808953116642434034598601448932212393968745169833069295637352056017450698066171895567358714500657014902798037971593861326055159961306566890629201703858797415941727113413315012502611404477368259299557378928654774762191277868964154378428741982840935334256131645503097983651686445659469736294221424140582072833205772476093858852135130978102911060971076015680355989723834661988615289812090489426280813329289377015181589891562296542393132534278916557344543760272589288863961222362533872804617575202107782969291417321135255588090102516682269572954974913027544485483253229760808705334136910100041299848275904803669595164227627868223340572813245783490678591520438066595909814125978437989038318958538804169570201176121961277960413300226419895324043324217818393664233828675266655896387272191290928816368417971825095557559940351738957989536767626653870335026288073142696866777338091919162383523072638182957645243392686566833981635427675504726739084630511700907743245687998700073148060698857320241627900739642031530901884602832917211936542876637442461462091518992928960455681839783082553472540343934839850343165351531056633401311032561189119729878849864160517403129119238647800594788105338076346160918229629319428474211597550552569605631256167097002091009015831023227033464620630490661488974557989914866167887707597456760661393838289233645841567119694841613429548965207886465269383668999977243864633697084862164691197624126391199526350121861301034307514563744420239862598658463115575455280073288099201177038672356985008139632166259262894118315812448177168632759902467403868767236399179618892312729288874328762543888809285672268935968948847478434141486107583891898634609559874434241306255498206263794726286051539666820531805389884830874224115090833521167318336645606932323323969771160303762518490422743083780355553055409424461755752210894950827875064781383298947054375386954192188290583029826917702791297596491282852909555787457495969874377204036581180160756189015839331616881924171558790276265358776259773761707599605583393502910167205715869322899624616450403896826417596217616809303004550844750538664126971406151371181107641853308896627301048073717395041144453615614067093384981493503001947511452464694797026894333196643131100076249061542016537248391824302106324982611116503810351956874367559143290668822619942596858040853013029664565979462565207403976321944352179712076580219781063667880236489651043548655796242609556035202248010909927892298213884369718308581496992311825786418997463561746827215014645417899553542664755426962924492650220081196542709171717955896378870787413548502077086823633370803784547628994460274193129043481261511304561643580482919288859746124750960266320977960836835721950650490188022371126054516080980406952014942859498481096583245397345469658013926734871479799441010461290598160284184263593163693866169734938996007657349102669974388453802604107541080190988054578319900804909238820634251549065828692239093779125605564170579209220887316668510268266421084699516462721825240051606032475696533763684961553385573417924653154566034601777564213595733251844877386876162189354091396117203826915352240344627408962625777494121240634424571857516270372225642787117285691037442816249009589271947408418662055778936594771221514197766930089806828747901371535457573498997584326656446151207336462958801786054567884475928331275723297170109219300143199229285116615935004385840759966398230979003111392366318087866279082893025773828574514438127944271322098400900005444738452622662251925886579511537418522814185666875870754532202435408440867829735827347007422466584746511693623636684807221951711734945673490195045779490121218717284826450021732913389156465101075307735018909876746389240366853528989974344601155667420905907657507515278702476650382613154980973209792834702627580108372962617680138009917596433914997951265774702204222263720849523555724907048622744594508069920242846034779379153586944694990046027379405361808382000750483040431295769105709793852337159501325692631995445361327879176103220135037079348680171322656725479244724860991252985874334364180290887835309831704104985737137137917690014317010897781796645015655028164766118850879288619987448946860571575662776164399231729122100771808872355357694759169607430841210488008689249251495776991619235087452503261179776274567112860848429359944180434542264486260939196187685765925711031662928155081812643827331928429880655519553028338095123712720562789744885787717383108376257417819807969558608580810675022238551654191061977515882855842950943946306494987352531079115105113250240319695826043250455556414175857325168132114480634174541134218147832131175797036308454679515148298324216017695723970186200073961938507598828837436870145462887033120340760532081499303816039646556345148860083784818388158788863744926799066908222629179834933311843438170012327919709856334207800920572451224059212661225689646969432460248090874062373992274598679743214279363238170232802436203413686946438948684516295405923363506307369061112479507370354474959019986353010527256281089010939553340293447916944750366089552586402273364064510594623458213192428401698926909534640779164350118762129550692554692602533240790302074722637030103971014917949989034060304377870115183139489556095370277662469229545179118720772928999788571582465168480154499227608434257552184357085347828923978386882005281764066260402454083061038177693812353513240903092575314308656816901044549829080600216474002375863342104131715805872419667796263518381297833541447402634267223369538148508689850998174325909125306968189788815200477237617565130128028222098987697491172872508254954891391767932250567827428366290307210586888404121126365911095482900478634923361735366816405734402796212197063219651743751358235462172654982511478968356402323472004689722080492990447546400749145233500362794240027103473061622407972493250199206531016082832465399110140054788051347332291398514189482684525128153667111817266301031203039105951657856196589533046388929722178222696482568490557778182455492514927942145851114690477925851062970897477694832942885833337811425902952528501250608372460490925306208992985975301967535817151502828065915553052499923321070764277325478143113675447801091261785121578791083440350272123323435950458272906160704278775079713716618942542587200091599290277703188888286957956022849645117793111291691299780268096526940212737591301313561765190435536985639895954287707198599437176550842711610358176212386622108279457372392077065773761900186522025157922484079606896171759092048239139364630960045835703509617713444159964140033887841838623246672554720224950235392885830912802786425681490477776446519929428871632524877880804605800403529781918403793217583816748060411637603776453493009685093857680262009031109897956345148386926547086593936331663815777233418308652285712960356175343846783962664243409769499099279823891348141522648168196012535401522793458436517162155401349153677040349021170182453402766934459224261956615725027696669871289336587899099696855907946138142926611987499219217976235144545193420962899852207592133044698803935306874363558455894807819636651283935161908704539943919735539102832566001019278494207858784090868312664549388636220682227804852791834734252854396300142776216748011532471699810167871115473067723055979182076454583913736363803588912258926454108106706512418011703182136888641193826527296580579179128113012224480461382121447921168400849339220947890917434831029173084679865952813536781029537661131600919359648679605109162313538126151268192750494037087344732280714250770580229896314027835218467917410715415127665864887972000463581232174369269310618170975763216920524558424981913430929361709429411528980589051251376480362313043262380316302646039951185854643451285400226718448929778044397682784529071089633575669625117554838949105452296542306088222621333975707553069392129140601889915146557369872267158574833396546476002740622808447754992103802565517512035816350455251404940020259765362620696381721904207941869990533013992086532243543752664437514923478849005739706139373753269390364157373554987999242843533388088864559402142740024111617811315003681109754388095155738629876303684792450295957812316987649525891485519778836060188314993716647370730214172701755128597630218991927878494977859702082454440082574110629503597084348388651382856566383286196496643627631302888412808668707097777659125812305766002809812887442543458066919707186386689946508818324496000763615552763335309518584435461023311419332420779323048351052670585316488469815948480824811351132765040708423679908166283648648820061401211626640938593456590234077645960536796352754179189582443634738236799027332187894972697317226698682831349972245351929412388087329690707152615836247430197981703886114518168441370067266400663924389256973461239697316612800394392923750125737000629803845822063801974759623182928690162946135670866932550006077578433037770198544311257040900419133569495143748609107105249091222611339803144257237712034902516816645317570806781167832952766894542657780591854754100421554960992817522405000661575935225233369325829769978235140953778637687174444666727530707213552825582165068969491941752493688006346908311672383979363759749148724113309413581161260313832411773914833067273853786338891176162102286872041603386798288765475296661671920258217180267025384915311118289721193029249391395607443235390111128641253782974181828933862681384389267400038466762391792247637266440792563035795098581675265904343577350955003278833394877156501342217590990696179407294598978203414235179806121220551821283319864026943929124739184353803629828835954614081286175047489546149704438079920664405335335633444851740940796875730155511167012605151829123656480618849478314387128806999126489185987158944242880924898356416473000678307014690449499096067948387590366984544714155011680866029913443664202999855213071175987460814876844765134060678651585251524607505322675828867252029539508908939258976572607638402560948982649115307565309483488442637260811922728567507980965454489995067431608704723616020235403927900570700315074354736733485698768503855509398473847297727602966982078247612613311164075967825916507818068317637955320139277269019012377958005256477778001126767231002663106456405077604037063396006516796058445098203316141459623449846188882472515554812257701336898076708980734564843172552690579645913625370181612086816841993313015489200192951578383861513935672633216960464105527815466711911218232331256838289264069264670403917213721567204053086676984638029607019240606407657259703093300028509231201757448252616372324675155970992849509970005116068259998455711182872175315839400485996254112592824596574945448297505999428038410422604854576011465158335914088473656050953420617424596363871220122982721576479200372664479254651348647788924927587167986518049404539696064725288056714586165461938938453042228528461809364274691355395994155894466756107735585896636376661121645710117668398652372677253377982067734891816359660412638415718919402032737437478086328592527547719463089426851108686162520558103826562943210440203291206896591127666459881836018381560828637761549966974507754347118267848011024217180290924213276615745861364687338123236176006062223821292272332635890278978886684840330229305422053890097767572023933262734657779603558059315792375993612143936314788200465584325772487373956896732179384372838033864100656288742440575345678986028542828269000589045767270235931841810489449467188300466965516980146916896303960792997660242956758748558103298713931368082870473390288770216198453366223701712471876619647358490517021195673043795792863337680601807481383063880124741176166778305600515736363987251053751044017397013481199435645607482066475874863347232530478353175667203170493157578288950301701242916427768730053771453821225186663852680401290929232929133212558193757717368986455748307121104644472819260707071107718420135061395909616830400591801107220954612380384785713683880549104840553316831422820224014318552832347576550536161763958687050295367001426439837048818154418665044216706127283069596822553664969303117464538087679915414972023927450910593335980686479489027189883821038413459790240227164819352215680741015488276022162013178446191994298817161094108071630853843619107493155984412857225011054340909021530961955878318208887212303976955987994939889608458548634529681457298772488006854627552515486865600107169056937705408923614161589858022839301752372383331378267696826266898303656794002251395064036305763189280511093309684742903320229202567661142639372023735117373511595265812205339782097737817893280010273781740649070782834549524639172702372828256827786848719066604000668665010617840139127774418224553913850812688398411082449776082637490929825040689121218902141184511496831952578993952687277070674357553936931278396884654222216765489459081922043746122773975597499266820293046922933215392962595865410334022546685959284712989585132949968709025722019572905691539755029990370260405086461247536970804123950926070949745066595672595704189923354742445649750142682933390341511406615999198313120861758656999527715351085348882986134778112220727868436286090273578931730606470297673932966035113511976934079472390316835002573840660469896200403004512987706703827887276874131312796910008034293215248795083382303768049393574779480536662676907612363814578939737906031026137920584383109126364074732066521719931990090357545291743725061885231979919908906041094778033428540332763398752116304684581670145792489680293388441467246011776069110576273934036840142566598404745020593511185538810769370575314950748459055426670148783466584099156497175609720870244866098911333768828684455380306634613272938047195374310764344855455358732987981410308341139445580486332335282468217855887288888711880648647690514563469357076171944467293460715936591633670237951515230467563092214815487157261830989528916827657279971698732122920937060395458576506202253397081545318487286867012038311372646024914345526865735823980462762053980763358064172451910470955218891536614205995247997280121146893400138424394477161796831388337264160119928230220744318535570915345817704040051496567673018164742517873344678402376232658277147788722842786270521670463608003483666473797496141355895947458348688093592519598291032689899798212220359172662340248415702652533183909918407699606282394882085581765444438661623664284742532312946658013859904750353023250976035405563251441802912598586869444632815291995381519299053798796166081462644735282942136160615320292630087089758127643930411132991487567573511721954090863550097260683161682335014214142982884260626794866064901843007370853393694772596068939002474465819449891663635556199275547909472861100094935793412062825725930724057336298799143875484324728196988958684885190485873479117562822877362317933650992104828432718331049164876193722653680450053387743600260117741202473609706207660728535249006174570323268161951520971592671915702400328223890071936101798534436866087339338309474253692155187116024859071971443995913166825465126357278216343625415565269586985745587849760899354204838920088144749873486193430261411064000007163589618943488433367055656539935099643033840191001005704425448074109532058389042271416359419293102211922968419517293152951337061441970408619457107313988173773990992099798101377323283757116657595171368559955565777727483175479524473291072581487419537915664820623787828477433056017873662946201555650804892093155331330759650339615725479968101657683603097517165998841537208841870975594470449770981284807218898878789605024091054010541261621626973797744749087963544081956449721195059271506573095233437041899635211011111766435893758744398334794947135565307642535596252744530987642096798595844025850954171573665196640598838743202305435023755402437092068160012510363048035961888182540924168827176245120706398721281267195577682797679643786411465856293637473318962433463460318069588210476993958007807238088378653384448047777730842144864408883646114661683584860592343808692498616400254544900684345216562278443032449584170523147490157913666812524952761170211094588195166520153730706639401342195110312219901736776202214131801377858266251925023540747280617092687772466373233610715440889079729642979376355438997446308060847248340861285364781166744615018895451603492281091387793956524733656345108424296403023931617563706294843206968487530156153071064916540297603426613938502086626986259906138120537299986027683346425477973276751906637139749997842490541818781516992734940809366610140727957491234865559493746931117412649165926269237379376521223181712534385502943896807304516023097120311438437099302074608726587934317456539341085192578696974561665889671293688124515926900105924735302241853532589608338069549277026506073614447973352154392055081671771222488994337623236779502958169587233767466275991929595543370769001798326336308229463337506719655257536315351862228542144276323493135257953284298537167869794374349648139446442838303652274062914750067043578058691049120223838713534587931548037030139236387006742919638201635866594648956517213322818880569703457830592254416614840562496383642428209232485194645505018633846313430968932147686923995127607160747903488876168224225566949251852463340501862165594225789838660460269463250148955695467029715048875544063534843605099398270004309329647436798295348895548254298274405231932861155331561817782923721342413495101988338982588166167735125437631454728973112854801231785578011898588460696580640233835700705266293785607918912119430459460744940494948359438382539255414497221727977584193811004582980248833844671330860028762967959516736379548006897913644866660168855717391781370059928043221810095937707280047737001573216733649068126364387553969372638063673629828157261368419717220353138314716095275853452630743282776752242994011991799556188667696426976466212979818799357222964873486045353436916369762237117294453447138747504626811642682193594551081141978633846373841776267047326276963704223224315236002709885111140664276210723370280548848247246013029467761855810673181224421112604760903491799180387452044622211706612511684016525495684976115388179563426826561409407605346536437967303992560573505865707937637669703367546653414226744152113257336999083947599086411200228037716937879886915905743043465804967597614466480618014253729640031702396268444530553368606973496303748145277134977070289701062635930736688035592218474057920503574395503534978952370056059274452509242703910399484984259869054019053475421931232444290209027917590720823056162052448702600038229617150247617276134233360741521473202044292769381864820511479513376853179452830934530379531370781642176775067511360936118321950750322893521386547724205725815478099353837299135292596277073990269967638180588355868636887993173553078129853704685605960340064515132594427247849645966767318450566096548986084958008889943481704247821651317217727596873726182742420856012103192535743047809553307389705459613492603833970201044775856556166906842993235172994040680397694703230614894762641024585670620688061857981437848964155888062445307901199675503560109139353121294569299342685759318304903093702362822867670717054966437181086682122503147602546640192581298912788229115167061702081724806467672944818904429011383348052547823927929951999157882632934367453672457266639102673756639825712983096479928359402828438308850341843649021955499166180465208035606675960660143898228560593620403827943929275630550922708939646911081257995933276369587267790675838192828505488227864266657095375112198324332337766284158709042048038564896331340216911148250118532182583126231968669140990204719597263186851976434942600636989249101934838029387053908694908984603696184792807505718247078842560698103239907852943480548304861080686198512948252282950711865696563819966110730642497097007634401357321988948210829848626336239400597555953349048695075107868744025549630246228325868632363447497428987600966994410865789165662262745634993164596001838328513177656283083113380446934144063769935811718881606810139918301205960590493482532037918144348653924693985042432929959441615922205530952302999976670611213204647484308721331387658025269466531975801986509111353970550749533404513727905669853894113687980578024037722772571448208673388770129435217091558924225784212426738270780914867356434310460844976121761969000147920801053984837728819275708041084486355965611746814413469147165239969296333692534353689056520434019076709705800422720972219190780361760751692216029477497685624843766378839418529207400774229729053180664368936835368529071417123635333933732491809092186536042787934216764011768510131500021690481993070574602494941411747482655219588331156397961706649402636952685833027982635162299657641856249819382551563477523690222153508140899462398101554903599252890924657103813646476274468220614775318679161069654539482887883669066710160355700293884805879370786500090118303449219315820672847048175583144783369460974084071228000154144149723953642232499875695803945521758298937129426357680613120713937950647859257851149732397317486043544183981574892749126115048427957286376593538174910579105644433691186685214808035148844776310924836183757775862675429212189387862542446003232104606723754590545457864302485763248540982735488522840957404973438955261209313584184999608080252515022665235543988126570567594348932939735477248689219784014202642039002297192367836847271051403469452899122167252659645324432937225420215422384351815626338315567057180528215888009863831720698096623697540370103699278406625625951265383766134513176383342120192566901191818180205959145610531867528621464465813508701262627890859934286021927957671052214966603227640121719215604203000379225244642056622869982873612771872453249317142605676199855418642850580251756044508442113826655338570910198027205324650388785192064371848083540011046957041363699507981787347854332597139270411991018218504357935967419915065832765801784796649839051670763883769745024613460254929887013177389031072867147875866076866192058729778773422017498373831499414448161250604509729506529084594499906799460723992913865459536228220160964546564595581916616373413495188874036068567529005922777364035154642196078134974897149542236241428101956256188596519820954116042006246467060608271731567219369963195644895740651230409336068315380723318790428164679221113743261077069158792562006212353215142428325165537884575551642934805880814189312819432629319903951794456189589779534336218299149401827173907862067945474847409468805796718111948970618974139569509417700759723978299431376341184441342103207570626345159511497781511624131405495795659987293608174905419115387220878768432464983045356007251853414942055124231027674581884736371384291836017639869667678483733868797709030966352618771922584181922694843314717985297050178896367401219521192861028185425802096218221926063900754257766991594102434942208080208044997340858118016668779306744952828349980567822344357435983127968824901115062258271510298098599783616101729962739664318269864065267918446970756158962425195939762337220825204014160149138113818691372193156221204124514064967042598144696131480687927171491698786378186099975077559888982359497246823611425598999385264905265841764099286666714145822619811460636495590140256446706192474574637720521975243662743427509613787530566641657897633436214519566826610575549022965511435423545678159689212448080777946220861644632815514683373553006865102969028255982632283208899285381435028702379880704390470213015686101428741839691974712634115932337224952072744990879305239165575587999370703265690016615842602754597403778948613795679381651635822229028303381060809189703768670321551877439196157227421671482118918611699129994025308838482281568149743889285559339879345646971783500082258014368348618956623903713662814427846273045138889974186844011218995972709980962715507502950357586047876707245000586512440271057018031599349883125156059143219993738937426293623456875320824186665801779445847164305645301777060329498243435823057376222218915918717225782730314987114038706723766177834548414565761463866868577123914614736563884019632186762297933620924466692249779293624858207086329263715481056497665777888237281483208563030017350606358168986486355331151571606075317709797022980368442059317486764585007581489816024012585516749971684095610847317783102511557530852965786561711137020697064865318023485603094411434515051495013712330413038331769799645899335046598087047102717719882406377239950943478154357011266841319185096043529376030044106485848480194234163025349510502099684446247362314259150138899656422910276525911228394526633775369238645399439242598374879219273701143742521762242616986267269209236048254481246403830555333449914998081587735796148366608665723657301790754605106212512792627399232217192081778442969193061954630660607738615310917941947455912760428908532257262169691234726572153556053936497992015454804894371559396811496287401735889808861876005783319589737735894653673664419455440312432480999476580170100484316946662973809617382823871585239157507275424344606113476147310967629883562532359894056172357956335783342408081281369240766350951813995905773018692556370023854260198414334284963181600068580436801728014133665110734151748674691858547813433742753789535500164230174430127312837184354945270257363400213990928350194326882436522306044757542035254675285508723623367539237768483266320275482174921033548651451970001769806152183731170685636028280618809623059151151564270509018961992613989321665533153641724639953362505236782120295268259825157744463869945942363951245040144541575159292271574001552056385801900740948708012622812807353817028359530524984940030986788965202971608325268498452723392936472011347175394340115254121897729116319491722248757638011117913684214956679158266834949401065113489057688951109871194810864214929748501236153443462878080177324989069224156819393956995018369382623991029096420236932278296483931474431096345795865951099192539349579632777687889104513332606897877492239503395381214144025733006294832577323010005313377253691669968067184824647502579151851802547788879816520919165707056236325015550413050629007213936813827224353433180440180716644273356922274071514016390676610339399071747863279954278684032949113325806865036367944432669599881181936199072252976259532403081997987959658311278187027287077819956616380955384318175670959435346759263307525336887367449767918306392013939079570468696656414979789988073942970951264818080857703487293541163464924345969398892814623232578778525955100906298823504658175000613226576256416245648746376148260582005532388251076068790287974550038773251974038845539536933723795389867327662222275552328246421991021185726385475601839375718265331917609569536836433344227311852824486408876586293917609619915022864743549790453596004595834101811983482842568541135512055215403944051274872965958059409832730960571727940731230719392786446653436306466549617855254779389371267155949086389982388479080491725734086201525371490278715127976595891282218036749818738468196779830818946648528984874166209483109542783543266622428796565327150956574309321875890651368014992614785375964838514175055796935801038024371954259733888333287891027599320936419589783374076877911715974416709824500098856904201510901523585327296604206137704572995499198195020431453315233349967539600918475551526430633163048864655622527071929549517688206768779059541525942166632411003925671735708098588836055201758059253593353172756432326313572277451484541000038883432367850983705093591765526586589436102542262052513891196186947790917162051224058447211462890771425192628979364833086245274353623276852952124720199956191062358426173541381956414907989259009824366123665451103833795387370206114015335731472279839617925191117391522930147487890071777261280990082450551937014265492271883407020653014123565040832530570498938448430761650015793974684208508257803230360939181536279707184955482474994902855517421811889259699658816219921516380681539797577458971563500157849947872957317077303242071704560187411666316945896622426450800256300047852585729661727628339572768774543619440678501899812443847866752942339191575207303534658626289458163054129819137506666807457677158243558583763478785225362941695510954229679804947746030595449968246788203681374301485557697317794136820957720028100060101858758604265507977207057222137544679618890625401807208218733740575004823825352532706818037394710791814356667799260105129265681142538008483445095126881961022003673425112822138827273028245593665962458681100749729210309525387557014357639299874892461288928244273170355156040395864605878246188201473666515759993904538046095979443592845608074378641174748514712475287796565259116823280427243324380316929368991351436545022163822165059131009834443808243683016821950346016878423528308225857216011440667923673152847468159462292368953357833963474594645173068593970279021901123855732528781223640179012687624771137102419651756975549745841144629783036948917943975982507648560247238276452201834151516732465084014154020402103192386318500538356929943121617237452305635869767816892201671949365930926158958042448996380867328361364347639560651094329685341310988908079612308801135263811119931550406667504892377959016002223857383384778984928756887590245351703756508179400478384618820725798419945627079683818760462470980848679976329315603634562292934661383436694243767482921792183374042748857214941645352814749023645955231755039139255363356385343305529285050427469968832979784891750391346486930320195888296967382697319668821865516368165888360694652383762898911887775508357906173076789160336755409839228981402650913906445780103968413056618781605321138514880045268663567560151228047759887280469152016844371070079233046596514460352162331223627767834774159513377631481927007964894802849713600398831131944007102465627859186861027604441532781068352557021783884979201564160742432553705402907127116873177911730888400427788079767140202548218047104620056914635130129463308665702329786688753711208233379956983304320590890027272914657810358993854418513614260247965308776221790503553884917983934992495491141589570487986431012736135913682102651187663900498530966384428397840115334252607325906286660309994367901811157945573919665570346648482780660050278543691422191063738676398322594982191620171878290004898706186645276605144257676368248007287122687067629743605981150910960159384379657352713610911593594790655184365359161372794903610038261781724597523603672990341851010456129300384884058311885092643457935239495168941416115676505400532999093368983525051383530610088971026337565763232998236107875864526124421159777899425426380597490276612720302514418869842618964566306898373100192262711702842862319675276725050323266475949458820487036075253919056316767853012051306287450103360406645684294846103171332521717360154125300001949237130837961857811445649598628065902760178822239468402565047901559018671412732273316108231288090122650722024897022539029116581214704753951712754499896924165602311045223158822274476155562054074600737494091578476211398533544117635259812721037074015876406375608731249989969540367810468295648193671956961521572991125279851651882510150466594121225430655946322173862446798660036779507463984971402921274245122562858168880590514228387025625592260534457946199574979957727928227437482543090508431125230290280720119985822302756265589145327330999313693062649072316573904948611422597070067184036474827346690501713754922960692509368147326091125357093246743605278644621320961237311842848132329640242141542550581787089231085170336388759190285038755117113784659109819781535873444224107854260973513646001137819881580263608603929900354949055608913275905539971401531861405462160756237294510838712676717094587420609293957619774820886180850267502076586199489075609232808900185925206741514376073868694715644373294400803367647303903313415289878983225724495173210183963024558833302952246028082947293574247659641317851751280005622558082018305999624161183611839992353721343479442387095857405221929150708745049055596753913989552276402940127401041221343870976367878090719257964933526091297555825983942577662060680023200613760081251420087079190616379164819932842446682394673163192798671356307952457245907553866767880944855713760240852776115305616822933373641654406076480708870224614344140330846462397356527140369710126126836510309276479853475696898777843302055646169649569070622957663780658333647604415055884355873195713368670969188606197590162129514048863887915720667197045718099007913663845813250013802080199122804364423174556150460819665166728210645382671369172462328999609409420866568541217621130645937273198375820130070958972573125737805335321222126292745042743968214121815913024566040945995764822333606947226054833914677010314835928870834045109970677008833731339631732913638410632671145230790756317787835365337756209042852840152162054598363124523141571998276262406766137005839815537420262558250625699597570025864357981266560273757049552143976833870291743038553733243030896814268836355037279499347456705609790048054364668520953467752165946642327614047163314282412990687113876530205437767354816071024147339855443642180874118797671459942573214580307833609622179778146771678323790544256093315367832893167005966837781439496520335945875941927372430200986696494269120083448996683790004591500124958155188952374228629522949888497536157853007919856011533557701366018400409632369399747214325444489882072748210413804261369586028635260299158436728098606057678173220461715973293097577197882293274343421504344790109620203720005620136526365694843004391880882236758091803439608483219397969338567825072314372434217575376315080234383780935464699942895374494413809681035415926745187206710943952058319104357058565996658005360583157669259847100080662783539630744905567737634411874082837202279618705194662524388749155159462448875415053274803421434240492677109136318550924071894102586407896295371937619465417703949311779119987510390872416814501796026842066057225326038635739456790177029509025730751403190385531443924912603520910111334815129920668229299736102983256081007265771579372671358922504325389738103107962414657946312580847578707311958832426153994081564242930183746751330709098470458872889187659393864626637495611487895916548480053819518420756392413661927816640537687883777151463641234420465757109198680203666444665411496370262506558396560848342389437395817529556693944503561364782073373535907653498643214666689622134739667445558422234679527498205306453372930905591540844854256402782339991398604038524380055600346802368700714795684487634310120460296343732779727923943174440332709270552735198078336512030710175830762821459251591731283359923891716300362345970517957398894205595812652743603418664960767294795145795650910664958919813417759298793011319015846167622974191513918800826099454784326021640901303022284797697807808385819595803920366435470083313403478367864769288066214266207058837715712974851960388016508551250760615651461658072459001191923301903244713588169835248294584801696983558319687351563252427144665628148019255500719725159239262685272965422225895536476033263577265373248726593421952872677925824835587087962571171085004641508949438996761460094100317156362992431332209308945368728992312244891776965266442025952325602444672517187657114758104130746970314626515049802213612385430445157012580516456659469284667167287456485177516345634346863523033422653762805055891285811791966947755544745955276134272006705695170405569289045691107507344300489677291326872924675825180819188295676704380455881149372727408364554514455639458356722281619161386071033140701802367551446414654230481326081446516667328468028893326750239166278194730733997099111869061652576506040186587658593702772969785123764134336226899568689865383748967945364727112744372974671252314243542525667036036783419485949743214767262112059561187263768359194287361299249929906132383887890907904253497951788979712180423956633354215981810114155980482551198215151597344645842639072258517390703075687015191784081289865298936662314631951681866305878750534737541504063524419192549151522893307540602731706475597554632095050239970643109186003743883013596677938685300402890877410282448525896254746020818459606300071208396437790654990521697666856415937823862760255730830268295304662645125924723035658852899990385395108393297033071426245019174935133124820021132070491364085852345290801834380795630688643409405111138455274044752342796399711976339488664154563904657031863566221433501774789277556376492263006868527963478856102141523782421463740673492003904720023712880333301851542098190394251281107012602447193801319757658979040573857345749343221308399030579226125997365925606699249474748564896824640164301544954717392173557277637538381351461618293993291834738389950807833396260874476966037317658160202542252877058404480481887742580790436213782937689665661139527274630967206546047206707961445062989304902194730506593926293010215171276285843161920167704097985352402612953340295255380319715278388350246968318741521792863483871006028086647281416326784332243219589517790822580817589203353128797557448214697021571122854194730509828359877234074696153383708727654820479489512942121970848996227159057334865565740267429516139252257833086588354850764987320803728320116064885614491317427971975095869563752325577942219377789296538418306689944311475237318536056654185108512590012187574675542030395915417717537485924583958986959137687223043339511622411141402760018981361735951464966099632709787812263048660243587196941008122144447151949988605594850314549832217703325874549545458438367127067263177611684912655434897891061931723567150751148292179201144037064276096594956832515056422055575676396082546380053907566594121254929198823438056971078759052567067558025811246694879992187060048596187641765808904845702620596639291533465819354032053141257685224505329470992272389036732543237143213795362650404476264881486370167836257196712871519431639412518792498108356599428203555118324905301654224791623719162978121619347600551325042488049099745462988710184362726904713764598186563305432031990399184664069282692753296088456062874683580593052634246166134744690384929226237840738617803971991162445975890704137653141078286762752341040935139272783001638876438410634495592094498958274807092125776219594626505418329992057373587934390572511755202448746689269403395225537870138658998136077595909632311786262889404749066684921375102085471021981877770448209127867132513483802434007761783513562219858970773625748358767896130139685627514729202292774190179264022503572821938873304481467695372343774108428469319129653690054160613622726446799656499669766972540822533826791602658814043035639101082526311211236693007261511525514084016614160555218593023066664607175828293734526459581140258106545475383787024958301319588905379088210692511773603067225204167237685475495367982886308672842101844643415257204397830039130515150175097936613698372208272924832104666506897638280584425975033628042163718552488403887819699712952099446005275219781677831641493791774076394791437542477094785183647294835254604314348251184860477360968380758875490795501838911120799804242004617912388039872813104979096418318323092937006819290802791005269390206478499485670129692641905040518585549322084641414725410524827385977787360280971396407175633829820279647329589363866722525012008350552947155254602368498231915146522493989251987692724849928902713909782722543708830842755211268067559188854398323165415209431634214994537113465070369353611396964857359627371867768520421900187818072359836879339213825060852069803739921112937056901313360133631273433150144365760592187695072607423131749344133695948668762041792064561625227168235210060868596316098626427783341544325368170313299752514061313347741839440224637504894480132490414713746496934370548137234609443998512991506606717717211792226226037526641464055419755705742205840286095122355863499133427227031460415188909529442208851780507804259232633252884523426582001595494587036854315682235976869970468361479460770741883171136570294857758934278937879922558226199241558939772251399203404040555622881584783927102139545289859658105285086484795311765829856292939469806501205636858856182957784545579625590794701475843144602113701990260648434836739592169119807765703325563567225771227706249149413219621353370857752762671180125195732529233939282062989963148253752629405267104539776099059773731074671530216978685752178371980965854806438262114301300532708728287941650563688303918178079570658267785600215243312486501484925768670180915158735331450034980534785481589933120210892457260165835725763825078973214092759193134612425910922658596677346265866033077231287017760527039491028393646597922807867077777963761357978012414189249934143390027939062945790597355374930915912682926151995446215457682214133615010275110707599979510802941494912082368396902979649514910928205337239798657138138880672307349291264909644877700530633170380682539215585266868596375143222103368296537931840494976909459452128741704807490759706335747316401750708825351140320574991579364257906780528803053434823497496834847322110257712379827208189764545282732336380746848095156269955942623105402431070203779152059937848482062037366418610142715830775717731314476373352090398262444795554941573373082049432766667121570054493186286219432201989796315138801676403318636295188474395019649448528059775108315197544725395676119006097159010953963205937683640895996210139099377867544937685651391111056507873467228419179010004558840943718144458167346404294213748761995294045096108619126632207612394764250778202002994431674805550128556604462796302151094169857009249234541613258932248487611534535524637030112328149998483543865675490135164513258286435276799466846146144554985069990961997462872365885236349036166689493285807119814847232289558280718804248136112635591126246400852969177949197082361233429946135767618827126546780424289594621943348630828124686128096629892395558766475091635858096192408885184871875397595245948043482185678733674893217993288678485461874680371505505726346734653871529815530603191389057152612514624846281440794554812607960913982858014447635354531345824658311603883482350847709402355093962503730187507402120012939297273746600797463727601418153855643750798393409304898116167476550140002185208851306978646101857103304049856498074622529732593123167668997019804144268631652515044894358480720049477956346961892885448885089501053444282526072033291430058564385239326074744555358208505908290021567346966453892178000688325798703557521048427132650035027654502689130067627280065556930884266741063516954407000841912108670523085251716908822388852270351985332115970603175966962696341941512620951524024470041411924100942725918214557296933640996694228494891739970789421418470738045355508394735223680595537612349142781397724551504566172924371183099015930262352523024803359175480623835050885387866621917708133390904844102254588611128067648776781582832555930099103640827456412587637464259539075817129998586946327507529490665367693540708022471665895133064865839372627050583510119892566139061124187822955470478193018771888968890241944687042351734424945411854105752944681876298723451868897787925493525852041138152281938446083054403351891577558055663379505180116572560995635564221563533835663521245629944893745194559477873130078267170507272065840659693316659988588872449371525803303382463865453298473668284347153180354198593959629478082760972261014177548799503424651781017950216296551502376355623773776280451891928702215497245987231413056052623312808073677201313203872272654599142945705899053182517587281184731939187892437087317248801470834521716264415511293345347510981719147363962573367424010329518793322616370023543690195257736899641884726339857443383523658790235580710437451328319983710748817711526346271418374090940483529303643153754067229701865132076063122974253780346430095967418754550952836491936489127193982684320950943789992502553361488176326901075181261951016404002556202512588016338408245149296840875989523162509650969198944187883531700278316973726123074606723022678157310193176676619763419215484666986480234763088056789936599116224333616723941377328700429146086699717080321284685979965395419283150215777514499007634011816345986523147103633298334471798744521652483019353800571122562350959262049446664821904284819873220257609529885036303925248761861814487839475754348052669765333757476098546631183943380624512050473560669712559853510603683440580711788004188521625033213171515980997850999362665848493447429652035035870073372989638930731939826393140396223528291440363614998018433357483453594190614897063661553429648072035113464571788733234089092228338201918716723749451360427895115212377344041986851174252578852436954630603933111410852662328368051649758547176172091169896992805110708834183675786147941867301693045145896661723330714384219348301233973174104006965230995090448327153363687419531864445873183190213033667838695323560631162852686767231534085703865225201470992463767712803905342248595969043683665970684923034997101296431704494060164210961838880502293648018354943010023963301235210675837789646810461547895596522967122511682021784577540480992423451527156260374158706322747846576956646950026171541725934960611584398814759028957389737926663849756582716187594270680726149515983135269611548751613228956376520910215563323365332445819833481054725564988452588804181808874992248988170908670697292207519203415168082181350951088038041454945348002773240550737595870782516982162769015792360031544907245412662892684962928736192095988356351024840502162214287035587382980432777943898951691499577664004738413209853440190287862436850103951050598146661409455481224977735931472569945672985159536960103829924495113192000472636279073243365339431096372702111426542071258437542410856642006938353645479538374549169740365427109642374138550447819056816742996872949103003725948875620754736209082476647648278235555865646609137299900110278380518530070622720067390659645553552572210122152758194828394831591399435689363427943733457053724149504844963278352235133001248107964001839804393947581235527536230164934593065334256998307968206598290559446642037004968898820605961466331931294754151378574238400454655912769437691156950946671531034123416061749504744412713101977862721297276363335085634996563978306033549893783237251073257564546635005560870466324262845995555323327064529520048839121234423105128342739557210663808157252029730870604920824314737332856525142731142935201420513593558712103131634286208203781523464502508353153432349262868186249646146435887832250285345884790553952557603056119611053829494848458581946174852696068584772670220338672193830535353509609695197773599135112213150374832522266491865228174101658662235606510614274000662145786675548532094107010602574374225541744608666194223927971760932849495703592360695425106945202600198576784652910998634884418922070759899661175132740364421639854352309762081200505189918770597592999562993277672766091729833547935735128828895462619620176021626038372902272153772088951407290053195229738519869598091983331725006991349290220306763924507595849720013351138330191047063414174906435936764657895667652383926329844780517508642542141398975528616398942909063178895624684818353762235371841739681527192751198053160499068397957760242982199759768659453298680051511514425065766146663598348945493592439067875629907355557284675517690736792895796234615676771011898991786739113891493348126190070663568036851629306087307776757904906245200874817110036454041248580214526106459997029146740238189823851243069761421860334387155372998540214797941013013163927669226700570486431973549799122922212916319590232645046365513806296577245915007703742900641530168327998099207668350553491776851741692468235833689379342585666220589587444284565423477302780587688427589671162733520582646459252082393197924471941964007023648274284430561378079683247305627113707137273072303058191051833903684806252670960343426686273421185093914108849522693187073721167709731662032103865109144770118268631647308475076358587083028572045684910177836253443437052238566699331662381822412745514798161631408841052636846186285437785532946871265675487016401915102637308414354070394608312871928867538860899909727608611395385521334262298205069166497393761409391388279123286033253136605584266985067291619508495164106474664201696195859863262625435202032647230121084556251671619632256603496095154708309256586569970930880451246978992967488370996057319327363942436625275318972217309108117036569929399211957397633633639460986421751306019067640243139927641323478241622532190130641642588050103603748155250162504077829089114264374423612510561616495674508068001455883574652876895015278110112376848305364721947386454097787150805998474291509569923573783080881753146715701538453136551904765534871750672564185522648737010967609754139399314618142454479818829457147353843560142009884254329543640786564170487632612547166518691290706160695731426686778131959901300482971962567500686720162634380212118080011744041600100803521686526491103645575603329922501326399893736869980280887844014606354996747712986770690456967680402917391194324656051753666925643311211527255068145129978760701760759936735755119151931322877996573579496187281065411942056522293777685881129708722756867044266597535066549652550486275751541227560490929101771999605473934084825052159757923168456465163587071162467551661305107368802875450338477278209675965556990882549459910091769996294442083935428515755342261181279002560961331249194952734762889072233462603429852841575319061123772413189194229942035780082836329616491616119606274422492355875066920345157904523721131743820909745353160490339056053071186700285352401611989720273007818946585403713133809632643947319493869541838028639107669974410279275576043815260221744949234490645759520146407807584704232719720245570972209518091737483920007185075414696230049910963429677978992483698324553960435805250572624485766371356715755956750425247987376220335289035738392788842653795526454774204394579416659775812680977069829212746633793742543687106400865576617940985341290997186741025924650664498431561915419223264200733135225705331457815814692376803743899353554658247598177158603293953073121450217632557926992893438055845992042606611817310530717392043159831264300400002496622395900870322079642012641330633325018255252021634259434546090878343223291625393938016517669870979057926595645452611950725563609443691133508008872651503108466053569602747679666345015594136024278576841340358576418480317257939654783517827860100170457364899955305985258503661463674763765902907196992424023022104461171087351447512089185140839255294778145081090293788714765264185844607223907271133315255060328636189188275743033981867053303177802539301383843597440163488471013057770492990533044154964497982392394213471946758559814093826857704271761317453511561993662706464836583529212256016487735272850332266310235150336985992690353903210440134007712508745177089071990048074839612543216311634566278170249992127652284261923993670436760337415034444281758158934512359388225956685670950926133026712860976192476019006548757753984520862859970959565840335912337830324398177228697065811005747952500165892747532962913460808943108259024952070354623115532524524659660307280802517956834771593333475205888964116502829510115330761866240314955644284595055933293096530376715458497578603802285344486399269561807949358155793331179487666742233251309232089647571645354175308076492499677091416207691046837249994049216662298017819395520754940245258818562391647532916176600692744730788748106973273490743523925154562569520660423966277773843139249093292876910304483261738350185739199685224321121936867116598683602263182706937215311597078081670271149227198683681891535610912805364691058493779755346920929219843873047349281648343885348218849795603451483024668772624006757898913844928262933472330772133366171821318188551364829186359468156402493091633097753726127680015708208259459043479609386422103277170182391449827736699687938986512056386698589311005083555552973533104389807076078642815456131145543917783502157738647316540602491512148470022406066347026841983575354548467784087491437421859606759147420037346234780715654716965349886069864076188285495840458197475827317730978288395085870439051492482009662294988154360225015181601684309939667288962094196007203955601143259224467625753949408408029179842318314916173959612438783345547839922639533821136358651091730115758454691887889730904767111883982754845139939870987964798045144438890739809859779900932082810525904800650654459642000669219242550602116386772125090776988635660434521558540392779536992742120220206871587986403672370094144194494685451332010836543803905484698196084773530415274467796526219388464856347602411713113792447107033519816576110150773934574865056972861239741556154347483616099228873714024194845802725099145973696701665888046213184499206615984392831899644554105812459420987109022796672687928043143254978741579114976966097525401377316447583214483343912329475647475205836213346871415731449790074209056264717586237629475811435549289654077394069423758154214244991540296598022106739058882053160608507246536084703884475078382310695522271126759903691852575330403354672297385805767560789258496726197626077632984916046815650399566998335905772578246652161451169772911991387439586385916384163054618688118758975017037537319168054476678510490553732920155289856425504642477244994233000077757399129957678471359277765274616203896739339403610361982447179236098469975570977113229536127613971248762082888706845387703344434249296699989806973856715473878475255778307315453751116964666042599938723525318589249680396325969388050162208782123934382738444407332600678288517312213586741370376270227842474465846731532363005671243778244120634788282200769625117691067230166688875806419936408060841388628162422191746568682563317312775965271731454138036590739564147995679494543513658386990210531301072867216932144931359219296948152752892580977140179653875144359265015277015654888807191352426432059007575214125398873722764287625640470172444776717864387628034896389059046645506897682200387250908439033340868675561299299484511407889028010973444695299831281662558030346450644612233612594730705339562270560128093630840531607066972257481939330992167430322276271973309475404651009679810157450504261891543084766392403443271341417203428224080881940874116682338985454002769319436554067954309008424095076557164994023149858849297445757182595941588431549125442181981733143024608157667148392419700898793012103649344044518972287830138250466203025403841920333235920590711459690932683517341155784439433321275120434843548421432964578655273112081163038804918039876999337706570069209587352855287353393774912539838016660079747713773835024057094614106864412840515672496472720123660410968056560228811713229021911359123898079886939663423564165868792419089207630568799675181598613915707514619087002218347701560021070775874216365827374110811097491274500991639426077904692105605429540594062574590943768182391756997018300957135688645572917968171975778449044262910299239503590295461780623983574649603026811286744298064567940725960595788449036639074801985590093991642147919658632573100143277882596517305658710822484057733254858847025621806079168150442049942649107261826964175557586998695876676622345180473748286930608931004978994076658108957916531316284776534085802116901990256738680397054119699394797282596540027628910711305748904373970576473279899818592862156162491470175968925435891783377096867553068541880643138929309673440038041881707553897758911411210825622471936332495155931723419089619717706972893785796325986945926294095646180715733334812081856039340565666191530372008883392864642425915895863321767352935239024547106231600168744311261961743076424580204752402307992442392581647343039925892168903286525399699976048112162132360157322893605730155261271903885500407016876734202962452402384928177744433444908724960614363562755920494626988872909076446572040635024266480930393365201944526350324271441522066915064776566735055030410079681014123131519313078098892798409110358780555413400287552791204653794014986049087454392660825684195546041561017589050026755471206328724314932037648475567273484635969064790252926411352499512373351800070210054966942786574592578832887543259170659638020518933921312274411271032174093318449255758046142504616712181048615568337128915031263213775567573171121752583844271186720114037815781554705560492945504358811815125581678158768233227885364439892968207155205664928992184041461741010915304119836456773851731606375012320136640063730869471146917877561106395497863974781091416714234972618399735242434338988506916236849928475421364918926830280992360329533789592156351102309242595499829696350940326624118875939610186400162343253530563727814913306934275578997083218063221366890128758109659387529079385476747664499764181858619716362873120897367732966769298751718243933442183663481114884520859998017965639580465211898044098897355519736244014625517771648164999858555492357054552570965671603351019775342829224160984483246231190397736835657318950488699536242358719204522311989599010565536015675539781209160770197558274607096091809130934685244400089245208321463493677108490503214442374303934633331699313291459177609547664283461861243410167361095396669867306510452024722859572645546149183777130005766194231409946462271755104520217246807724913482858365437651421836166771084338997225199376936898921861842662128996321260341391150038828507265102245493074578013571585725884899199756176135679926839955331376064271351229293605268229820815459940707790732858921980742318474426326002536237335319361499835550814307218678494746305490641970826289596204654913039487313762338309574158210472691516904525078612006650626692982504245428669591938813467699092796768155428517793013885227629652942194827413053526710769264623757252623886438237586821821596800055976170684309443337101791444468769528129281471756360938017092815937669931249722749029614420226887256672895228714537755766519281501719006629654054210678836775065731103137701427260301811210017314287871909065256143275088586351743015626271727163185088218752768805628513236001049649269318042200675286257322080929060026022041644151796555520638180957359458738657285672006673627899059470994877021523795575295618838250159997158117395354479518184325238460651283889850352296370702493310007854117425884242150454278533514940165494401613390539288856908818209377869609184366304523488655389350788073754756299034621173738989678581534992559342866367902083827340231106516260716360419923295184752292097353229218011982660890412410414623781350245059909841323787855496104099263429827148048676783601973430140009549599215062546432406509048517702331863697688352458146335248868002745579824795417521980997904226456112740918936177646066923213628124664443156659365364563320019815097992529464347398514753951439627917104156958140081333644728688703475065213958921371710653260544941485572108674371052957176029981994293805223626942290844671742729483425528368844227880164734360761192232891838177157745215294661310223979063674248338639247199376162441979126672573854038768925166479894621381989893535739600645138708457915812639728209006941465296052386155648723613844907598056421351173894822623334462164891999049578448256212077374177790675437817183413879513742032434143166558515625267166478564452622428952058851099233483043392856073036566614688115451010308602599875002396086921880728249444409453764523162493579604942904946043288286952354313927133256576453155082772271052914795246062849459049177115751659230739405688257727656440633703244067027333231692565157256704364953291660105970001875247538839637745492975377639840735298163983170183624011112249475410798846705302574109981441393976595682614886980622838110236904592674714610952382505846710314857516195393181542470664047655787274488281909913505348229314594784146619145472968477406220806535525453514404611158960086503335071264439216114337795348422920059784242750720966617150681744872714720257902828492082080047952219471162181476082991238999728677593662974078177134509471960469248840275828832967831614986956809257241889419734136074147261424534808890901779920803319555799050447828361606853581951511127917833424812327221655031310835688234382627273440866230752350278707275469116766653685016930824520065528025728023069232959106550806757235774576935265659339648414384295798463398293240207570656334421716568249542414275560032884325904241394248402948382494268075993073083004237668516386735773717931318769256192024676554326121043394794767098608695258181080465378723111952616351747956186305281459029876118023207319042165441812623011796121593803926080170847886665053535527259374030989358248676950297201735885154046877675580674829480951558009210923587014890359775283297706222090695492674949783943964251292820728835659864907610038374117599480348011951871987449013684093418119816609071888616031557946462639914538192103895587686112840533097779411936805365843531285480015039491599343641436586327326874374464665514100964901928413813387843017989241002150663636186922292950947976244094506590419522323344859873265724535211374104586294605010122647388231023366664097143514845714065448490591751046834332436474845140685210590534684425464381919475863997963531435271897646494361730419665765361757480264585160454536629960634791819887424345070412299812086417474573869149322842777955880612074245860438585161955719466832794825865513958013031809977926305633847477118545520863151877898680302154355414969498377794233715766920495645897552891099661199424410931370096903792914661978774777190359549842784893670405313511905566782447733027255443287673832454658088087976728005878272615301850718633346504239806361742811593121222602069652005844826906642761026034617130448228726601498371943681210670294564696052670747539946502956576234192834264777684215400364911214417695047657929310801983672138732831268286964646984035623948911088625793896247484723080841260739405229176910295301406326031504929690974881762716784526301997781870911460861250171171139402528622876665684633366998809588480597319028607546809906072983443206203591246636226149823040811988213623648167211010396242124477714273874811130443943401945002533162654758346835485708199592509206784294159091166287417045125843268738515327405700278025730026151112918375411698396054252858578271981360618506390229463243907018947572514796023670239545543247915469733827002466506092941470566363639688599222431665913964515920363510002761693286705871398303860566170999861346784665268957346972890300557792835440577520953281678923683215570102259348661637625806543742952898186630151984204083620178393583281309516843259445263836277417639147849666315687138121631126634635618234640603540282061775754648332583069928041266172700957383869807631262401185132825861179190090563833723943039236969147823508247099678123819005637215947799600052550957085012755043860806639389015812944093647053793400235053457299428449530175851552311516633976190398272299517751033639975142579129706591038023242218507630295907964779718822620821401677090286583865343402480300350939736271644845108659636872759440209931406669502691714717573492493212993714114773544635321020908673722688769048617129718280074924359908191838593430491138054695276896444860737744989630486552302810213328137802390538907064268926730725634502201308007956365892954303788944874079710214941951510331629887217900400843551365522094848255411749381244424813012133802900449874955626167208496233029883820341295490700503876393493361479914859977477336657351388879537930021558151540872634826342897823248363163299602733226069111874182341015632871302512318975748771606802148560854496063264947882015090363299015548279981093055921500636797274417606705357228177136574627733506722008741068006828016633864258747297330536568530847632261506682574220999556972987108345957523904566943678081227082606032724952407498099936973486045791367952176750561949466789825798809145954885875952912456614902711878221872572125197342379442494554735147663688529654539613311002362208128515119667061564114200723769865790352964520572953515316152721057723597585343996576625243201598240535786186565126509400095090017541219424982284875026597817110125916348663708928349142863929629571980880685821646120704101550937241117908557214741024353790547552475061282906866094721447781400875267429815659478408447029936282622699886389576308065334114906628277329222627509076669604910295214466899078350167727383509556683678804519669457295720268619110279362631441685774682932470787570696204419082959786719913599257400912830052583763296531978214554158972073588797255361247818038657640323185184201409335670696338935135139751798448382770151606776190703355136916191610583851347554086575112672649199131830219284483174318283008672995554514192303556004917750913171219256185237554498353148746537941695342040809523883151839143013653861745381490221016696165268381788220606290372354776042642398132302593245035927073051273488999705169485748819159263651974018706278040465928141151303671611507352535654236326661841582324648735282382006043903468657742192012926230897445928672595924627517954651375320146106078595118213896259580740016368013473767054560926758532813240624010956235467456614402254244467492688752667417677471913958310942151578509734204362038399661656496058300687649404144758947473008781038309294989424861219244488672070145698432416884320677413951908731991282625579757682687211419410868485371367074583972346097795550167750755819564820501069666563968991753385234667862341044258793363649548428316698765505079547537956792456241082102579871392245817276443505187523722427661242887637452441758502324147726856404632309017937789264903764331784725693022566457181791710654999063333129142679099202831085429596081263846416980326811897593041429103102852026207233369981731266137864281085344115183423776263295505951235063248541093982605974058335658456494007315498186723349397536440141640248945868876616805872568130383271195065668513958774549274532704064113333756363782873870750556982171226939170094493980512216243166967306156595539664624647254825990948915828057119491273319248182207587171493359257920176954570892221783630604620466357379619122362276499905347315795605602087666158266375205734830124736676431277321283217424980496924742837471570984181720950534521573520140468441920878821775199537598606890232373425116794121587476834430331298149226805349005030476182478762459821824552937830243093881641988761383856535163199710058376875909181874867922335974283780146495276292557428277424199187693096743988282815125054318511529806454432795705030469333295866886457906455146271979706362805878081340040483306936503709555547845054456474635945119894071371734054767097846541411540871639327894454059273307333982750900173091937871813057937900323203656258245189245644813882502116782065166856346075116220342917809629302710724214158486103372575342604229236737463147740851877722737030349861086994888463359886465677584536822859230384642168066448162690967694858336776320857976547841754883975807131695934176660426322001273510859399637971355528210024842040553137047444378111835869201584159287153998666779463249856868614189838723097980400392790692135298397488092900350624196183121342541820064403287506575271671650656004211289304550466622462362653326453677247533395102575251152755678295175954705794834998001439383448643381127001493757471414911286211168854782229753234613824215053606560969023398358867405572309428847784325652532640962162979420133263188765345120674645761496404117127509045278727367707341406840275825153282156368268876423382816275886715334173515313928993703621402358207489130882392563505744487211970835728388045481275803809744637852847306695769007751817355212035015251928705729687846419902141388304382224639371710760927750288852741672387953363526991705492470023419389551037570181959918516323546187190344997705018877287737545768640893578852898673112037646740696099999890723663799283275848694932570372191693817990624797706465502709136781009335615820861055174820008081353920975379690592748170414840476606984986915791745988420458202560086038056200140031025928060437182990277775156764446809159508899715656919848189013058322292190862343261927339686963377883363349363040398651578045704833957990656712133089995963568898439445170207987344319838476846427616801777151955849520882363929837237809979084799200764192017383984951864000751356922114373282167121025728688347115744719471131574870160766144855286490634403145220161982923242215806292380007635664026456474001436704194941239926128124458384046632230479893713922493202949116581645413772108927674462175025852156670097792753374064940954888023696186640885938277327118478084814739684625832795342586686995166807706744154153126573738735795585474451421370925351493471801018741741685098714890017715380087153857059939154732590800494389681806144851949336053277480360141603303429008523044084072609665199701072381129921067734723227832352612637700815524940161809933797497090502320573886864157040655814896244534865128031161561725838629758548617905704954644496521321233534165745805637438965098578531716845812406726936198801185965944465393880087540253360980367301910014101708083694389312013676889599716168366135977432915397301324208712261257609930985132397374401030327685562904413076280175681358194506151827079913634615672404757611905968212221519280861936837730683054270383882313824757730753002742867389374366698253733604988818771065276187296516237630082143205981662001606455010758446167094404551142819252694863802844685375192510892823438214849265035887520921141604676346084919427866062512647883038876830236754948139759575521393611048627449882203252999448336583751207334196555412201900185148042396333268722039083303564433313851914424551170898854034995637306729323279408322004793547028232005605050118470110627310209009379836837083839786812134425305176771161336821787327495262368016332326167141371426322647841327537970212413560383815423483930523765277715921491825390210436373896751459637628201161267708871117388526158909083036936357173437810497713323316913773275318223903565348468705163233755504129023168529826190031514007198143718420981559746958811260960336807019760813398972399980691157604046867357119095285237157517152160186374469016240929724501597130545992641829187332250143703411027925466494740834594134351799332288392956375601273270926273890465210983500705743226756757393612399303656733233808949631338729451159166737232668700353151090823688189730127776149350278486430906413849677487700478062225400031455591375364045052815439149841784695017651503323847433372515324590235872582420282845372330772806062572237092882388167091942866389077971852553170598150067440765915859178402609515569326372035809800484079901851851693950391591230219968364962068934650611421852144109843785492951259091149601008932330422155668371792448502454119520888443164002389165552859745965414781108173653947151008312458609341334853937441727224288161769382261765790414764301752953814853556633101389768551775180720405506007940326023578867328530155587077348812703216116570248245564179718601407694813792710521690545822475858945084640306671073116681207543801119661503750499611955693871319724084965319294084980890196789733976005108394747231852878097516928988546904577888748798240095971409189028400508712705334305388610441347061013363786223385929675427327596905930441907924464182120051500002538661797049156468893848897213361444893426303678940749406958956871253933327837917493607689523070321374192066374429849064085580072931559517498794900121336864376699937721266522455877168066840064176170335699403441642985083344785879775972341811518080650255635001697572432949422152351779792950033703606944392139946002540992899485199474730059458079729670183399767579672657709940272355463071517299081700854154977547420254010476516145543496538603498654914977882618780481963671953508932762268989810560509617681023176171288737209229734354643358497588601529149694037176560746149128949407171862747282030406819889890898378831236741508508571881440282336171661859971673545514838136844027740893823372719618228753470996705738574846567478242273308849281907628978097884708206202061963760074619909951913853815843732310886821194161451889046197675786531577351185366737721702346152822796311966293786172857399081629860480526362761323811417803025263792282381858769329617749373504951801694360605794587930847706238746931505818679447625549841734800190660987626739783202343697741780683469528511471068690802141123604953562307552210537677513468264936197665175358990613242033572205853061032341714956125159235831692969596569677103923648399945105876298233814336425791086932884920907202520650118447591509757150185098305510703753339445354904508729725061052468430647552458505174139938093295873948241497447990461339403054304731246903147259104282064174331327143252404015723803577406320347875886731558240459473331494348664848182322470519027821377035100160872278017998486095718222794479831200251416927897937551141360507385319491931715552748412981820827233628747810335573334177907210187208354524614456701808570026198821187131214870244018170895258569697122320535328788661732421494252698425652766634444342186832077017169343573108476325092431413036138375255306393593082689250906214387638278114344197261002866581300384870300064307450254462505485673839781322926937302509704804745989781382479652354442478992150716860183385140517409600928287755351881625409683498922473862894874369435563438552657904952414578274063810549897624236334676552765152446212528895879104086772392706001758456081306265306968475532520500671240507943511634403996185560091991906113155782526929223402321672146549843135588526950456092603641163319399829297345032218794360312520035141170336670018994375366404984006446978287875003951625427753374906602123320497639323095034658763424356670004846915547453186784344430638387400632508286674637002025510843568100698526366988475586362693210895567890514862942990817444856943633234343912323061200473167735725287395277336760257096327001486472554055994398949335203317546996284155096606014946116693873499422007380965876338014149866153155048846283671010858142603096817180243438131127366911249113018378989137017086078670618363061979818385227206530255579970866987861666920259098473703471654587552023673572774160186863184111739560794811826684478296837255216335338794233728401301604631310750836111326960785742138015541291462181275270469356080915530806514919545148485810174460209540549782201999252981900946226924888034268192575775429446435531322682496061726542219197747265936802521992436416552106723064935364742308517770515185141225105266810447989937840753732448901593711865171341786164129764088772014292881366402894392716397305800995858769490001365659774213661240980805576505210829497068830740400522591333596011343823202225382430698077476269466036632266297441281781460097012126534363446869488826647889274982684102017268721198773224038036798894593368524838287355924250821472934234003275932838990150415459874097356143099746540546526433096568223206792245059278066993884068803494000578354831772055266913667764282158144693350640027095791054774213000425326350922954726717131981914774431991753766492384132041217989864271999889666466904771161656916913460339892157246562005330769793388470561976804625760455427921877310379293100206118071583884568310551770640162499880091256807021798840616792245930047998036182438102475221907808991883185783965721459555945807279633266661029231279624708768005082959375773868835654299305243619662872753074849229169579615059911920075616986637223310553115145858117802867310178906057354284859475826354997331932134787498271930289100572568386033632781951761823260598950829357441011389834143278957438284245716328841785250682428534469013056708224523297560652711224876574189336573442634526083592186588188195190153123575140504877572196813482259283023375024832667542091073232881697217087738199448325473414489933716696542608187406112390362543071054672254254589623805970914444407692235726408618274199282497351913819289735957517993413409628359934443860545010434131518590968331358424349537002102062352923239644247674625242652909621778497382110323262085041138260979615752878554372952047853163566031861159858691842930006726427225224464986572398823038237595323772866973423241268039415480960863511745258938162259872804273022130481905437118338609455166313060692541279760983818740139506829749217123720777210881594137199835315879400540993758488627362696247812622659495093130189870443796736754944595357419689920352515450383309034128036349724793502275967548324503881441837451325210716740877817879497913860782545263579163057971341636934938869419316115815059018370208247291499556477997522331765305320635686060129502225648277442690723687446371905658694944072339895515923137738125148795532232697774973505684405446211197698849852902256031188719184178340352616722871909452606874147629940373631942893061933268965373774526313929369092072320131052556861034202558558875403333478055951539349103308196284101875554316568086702750381450942319952724268877105013047226291209347933848524061634528338558262191766218016883339957959374716024668866850488755879650771901847454944104756297058631240168686415223978937729113951955059150128101386178522426538168735591443668612140051710983602724716484986033459484083616828782836753796370295576489421524847262873170698318736493519224895738410988099751780694772337719099955106550430210334135216202166280081553172935854561801620955618447615194548627598568351015942246495342038033193232307215803959522249089621665936922106949516080099184651219129879081470606234040855778462097983809291342218019918975327291500077997375464254065991916689099472536538556898274673333261293888157434781755060908147386931815084092031706855529726888716822922703133131998911894389590177722928973452960079219509982743864843425840819131174304580254478273018326500053378725734791655492412675465650470264669005070960187934026467449746496279090567157167789989052811508312152241251140145791754479634624829765173378274784494801496171908754102103476162001092307679432611239947238278388808912852251061526866538232193888387530437893734282073780984922088096747716849234576110853550302602800550234307116242827004512340547153685157085991383525003722282265522223970441614528624267468890369610908919176791876701620939267286992943559592231292520150235272742417569452784995599109926940323700037370904099578939597803792026930125064204758215287379888976243041693507010867477217742627106198471918565399255716372677923756337399752176585280189535809750669494653566095395798574865698657223311693416461780245849011988120715834495065810444990633055098748551656108184942591733738133132620371150481020551814063172722973922359760958771533418281903127417986384132774553616780239487435834308339013204854558190040888169122118348056940290511755097223188006358541561072756183085720489235400409801927864806324221682221368811005349826577597584309237119303517003639465509517452983312548799832043143989155893994399727461598726225607544083935913032434759975042554751991813969374848245729054743010461361206273802874931465068355756303058645738887621995574684263645466116863843694745719997081827120565204301008549147510368445150714008807961287076481528200945990688852889558180534577057868621491740281585194513607451644533278709243135934399442499732476576294862943881597542252151287731465800367255039230072062831034007775545233488960441356714996529883942302178335415548235284267641919832306424361375868467547661514305338094435581501433467479260209920159340010032274167582635609979953598055807294393982406767870713661649138027078949018431645915598351889936856698169522793768032809358390591021856331287868720252867444243879443020810436686479992351208471181375786718983616605150192415017356314199380488242104929459584496982440854129441368959651554169877448995075460907787148416998244573582977461220469407995697391931037562844387143361543104895745651786407275726256679877779939358195831348785836489505288888443105066064330328183626542869926407465073193815257195506881044481996776474998124665680625004534387421246536026134656772077000349777245478381590831612632805680014699909286785436354724521564645759490424159565224736320116237589710517249304126184671844548511612560772494082597951449071096947034159800612328244890821504339905676591562578204452121959966215947969151290354097451101211570337482878678784623136358387378249192531568817557632025190764107801810676363708281773381216093892852290226257010774129717017896115119178956959289181416899261697578565576258569689079766057117170775793481148417518067700536178838686447332371738317049226932683370850057597698805904451708668345715509322672875567772602300337481724494641410586166175537150571787867301973629780099462771936767200309886137694361797199553520337729582962646586148156594843841299656856159626794975923850664041382905428518581477444743641450316010682996812965730556328668572800913171048351469474923284790384007884293801811475445275941089823732845461735180637993871452438774322768091304232883264718549186164148051706540403113490195518074205374268068594136298048700873657310101121757349015044315445232185568267202120327862588961794344250379766999939327801578333139063646181206607860011099672715515208721121946041253075246095509049223299875649876764505174290239650149106695266911431187057061319736719512412801538261235077845113534718826705551087983947400132146815797730533426493125209588919464044384843456412003528309761737291028774920847697837588362834921833628594821802024340099481872658121974282930992300910293927256699798536008534716799086843282657966457332219508147500052996729030455231605302938602251100939670376812906428863882846824772007988595572719841321705220749909310890236617355785490872930651148891590976359127497207771367692709490362808834935898247232970487712654507766820924585208725482035499148845745109146148629619314740014930645846077918860409165456160449136005575851897907825560107049693910016364404984091321277696342050374909829595382139516777901823540606737165505444396701865459130425476884106981763025257914574096640598614021960953113744579551403617653286449631830206395162733760298122271554896282005832856536082242619807477555210145128565206813732461145759098671067662652091684534164094242958708112554330009104680489432674630940269681817864662367874529785840538230235686918998860382951928291942920283605863119837359150750167140094985470678570188401340448660778333558932886881659421755224126145085713742252311976984202400644462787317314283456221478402724160460622177495189298412261930937870666281762533533758066714600316114904646472996036780164215108144317094611811948208655293955047939062668308908755304959067885384148984745400257207518820658454302390756494150685527404127676856783152436674619180944564450345441523546785798230688765721309763980853603279153366727429278887516461025754792445831551091310187165041862345822765693956421842284025782873458521421864277124949365256291304947984056675461873558201371042686001708439047846836692468976520649326840210515573265173786965445898094961739274328195631869591629470320602873790436746429506198680197665884369330423758389513410099859122349095655910598448381125785141025235134903172340175667151901561254389154237072064336927008070082286112801344184595459270787360202916882432781485533149500830283082043895528738346075257550015710510922906023840842094020422606118398500849257576064778459120777731961064876361246588843512160158237799217995694797096902914211182099514732855742387676472360672079512182944399152101222091565914114986530668181501782832904810853830382587397376540081022765272704062341513709626366408409426140868275695938602610285257485158103581905732691157138154526799257744015827103793404311207030120058616554474678636615917096845803343140027519485168945072311894876679702624041467041962586825265426053261078158661010286989661578806486417830634614203084887108610832729138491390573897657285039499707333697882355591533238559823931555409056192059920780998904818328928542108028856523634648647976409884774610452630949366797563054236698356761402352722045107844184517734446102989660465921444756534730070840323014581666862463489934047335842230738189551647842619134530887419312265076158201953653403663061644176443108842259698321703692289301215435484651210511366091694883083994603006705070883120430623742463667164584868931099233768721709131578635332604783115232343461612425453495358666598721561996890032721647196178558003687057546367916910325984281330930962747192789379890236548139740961603907962910948012074711273700402549333106928846554216512649592309292795361172832690691007740011448102631111709887911401586811205838897432275301885191719360178645469619767992167266730035846927054161205087999516899036468551542298265909619430095382099859160407025032747790507905166341386064438364258755298958840571976065894145721163915251265146063177341129043426847233101928878475934478547842935345525903606329029036103457451978066285464178782247311601402868278380001555737373563080851862344707784953130457027973365025466467316505718754099112927322627915131358512936595048056961261130584328901259501800914697663953124538701977333792965586864804815919184833348466192393809637873018675120756561164892318583531940832399886260165093947047125887143075906268531632783754746166370616322773056773670722768740000880826771441395210482722716606321104008208382263420559550381146588598320729374339338333350132829691319097389501845523810888443038108568070859114985027789400208369558204661921620669290008389580801790762369767037346516807572522844423694512809985844431010154576012085913770408332257942681713422263880315880141202093176085835451178861403297876734550933492307351885234419046916027509509125203510393275005046715351519723892656098074969467589636132585821050890358184472650936617374992022951846251566793946637982999879743519285122335460486186751398279862636440159238629059227940742955982669736988240950407180810631805363275715380116960176028561798074925871141215691996152124242702829548469411578818152508520422885306053286718107132074221626891395284954414180630214807355642262075178120493858314897257253203933506343123197144612246180892918943559693914200032251766195976483490018346296441185107727366230505798283462666515367020847145150783487819813099531822623812592944560576863480442468568237140147053798945366822983300468034884203044652387003449935347414326868749788233196510329382154753556273087040200443913258203554425986341597164403905386153567383340711072479179170478544001333610598278383369388858816954473504839604063824573081083148767346421595359249704880232796768114038002588563621598977076885520346145008763073660259816662964817724919677638184770929831494015235094600926551141328262438710963156721544707011200246399695149302022180801387226882721362936857541128108120995710915772796559319215335588614814432598803854477650347852803425507530419080934646475395447113862913009283080523750200799548149306189935583875689197316822530336981837816725278590268856398154145409353871146089025552094886254528525166039029495100726920934842606040188413640949182465581981830497583035689397450602716664155052096863864052404694141932210903380016438191497506697340948601503698735542266220159918848704422725264883885568696565531855216715977197660569877606028205971930631694439102623056264721398782219645089012447535011938705373758469204620284397728723408871778202683727665393491609337585245428588118670969964071064045847249496088629442903219667281911821563673274891470643624141397193488857100759842168366359363238015482808710867628424696649338803663138103415362723947009394800508823685466251570941174281971217127657455175355308758932227686938542836793675975072475855395674645553516525512670254618087570034513923092167689417082863560672662009885958824054290975882648345489342962361957603849528606842988431267373573106441709237808992453337264506470211703745217077984977260464602362708377599220668241644929237226188056348547980942846140579204918728385386244005039248299516740664853954723803275000333151088893937322881944775617609596229151044855255152924892914162444833708905045811055769316779153836734206466031533011899803835288382896380485273974287118564348217140565004089553646797972570511527168259766735731630595220111089870559718397264354960866278912799764731825128884871214161042234360273088343478231976102822018700630928239549871428428549715940591749174037639713289411172097224847981509270731192638245358941808003262115029633681076502456053934112336960055293438649491312071847677319000372856893545722590516826427231770960982066391572220685870405236577136185822032989693074061737590005323379713615045248247544306000789503421922344028883777336476886760186415275901604927281755175451602619313215567560300212988360930813836260692725859210042955009680315117796358012661414278148533824825749236579972727134425357024965529941964444735576166812842223563581342683226088529343633196347014057003970131557393896284526989514428572609199938183754616510726699071858684848393114879071643598011368873452024450010035410659231148116231360565267223125871935576659578319264340857109756092456659059448320086432464934277537967629231235106924351094582261771727908424044425507660001697214474757538150699208014459047242309027196937392183636469232884146638519576991791037667902248341094175954281784236896073325651081785646342436390551861989106478988478250800876055227450948175093321606092992636724574510391592715672063970692515685316862668509075879094877164992187428201927722063523181568431502273319001518517822486836084122568823993116527451362421117012530317067081677868710486740739784535741962583950502063913679336080960158640277796353848457976641631848638783321064623627503170550701360984955945161033856361115853753831363762911528380426179420068566128476014005928639119487976193857028508576231163318639795669544248091756977611023902592430830752449519441341570587792683675685389010295366496184701824595576051617296701656195733640986349203588187414848731859537484148815533954967528633498487931745428691324651256951198783865145862283753841420367736973430377075693333412494173939119865763185558741356265566917005369630675249099254213139553987463634367893140777565295851491445303709977742067581379132607224183770380884299536260884234625160847824067445600728237520322267570039519810347730031154648721136885732093775647026059302502379833128161577236003752477267728261737492987001192657293311342078185356099547535837652934746384108770215437685948829190592544940690372530884356597972158484098361701396561950195050931135554587710618348817836312861328517749741574684466647128953390166893057856876336232373977293647616978066958881042045861630632036777623111518549277497852102084305112328152868014292404948572802767700563336871878488547548255575739522574723989052407551782888013258880040356096384646258840141777606728180568345892883141407496002324521091129581010695898785698367105701160420102552547785819441167997255193785080252378216183685478490889668010664897649574384916048828536882700219001433814422508134506704417535570153780343519680912217790442267667988983592500598507667594980777297777477639461921816324837244659426938513184038819394630515492288019761054942397428693229664611679013143510619219727072619474972966748743642014078473372532910683020205212849629057936641791135672225769733774271080494447378511329543797920048012830575951781773624390442226025828269665422254343055527716705642097577948889053542840698265894067582968767073503075496601634295968485800703828747691890624888434638542171851555647885833673227060721089382389503011834710160977961422573829179168878609746395665805208036111358903568577555352770047874629554795493451596169202912228810165974598792289204680912469704121103864297408873395679942147824343866271375956797744930430110041760606799793183030535760572497730802556192163532480678955359530451937528415937828444757849969374934088606720348779839121110532852087147997599233072271869539786307048703746465694627519308583554992321170101977250223902833977683705880018001439353280629413875143201099239299984920945349666035521593571282816437672357439131939678821671856108811831840597193906749242321175877751451845350854974574717546985882630832173407795935185856686176670559527293807463704125874878723853761689882835500329312113170805086558145489518391392715900563142416796522011994055706461963880030202566107230166196365577096510092116240990441487803092360846268501755947099009464684634838164712291969283052396286807484749531265371506891385134111215898159189390481101430904811814792576469627536302695650907134711866851291257699017377081077034788314905400369703419629829653432835465442668713891129588094663095499341123026952540386644701349578151054375065383812573485805438737903987144352078407920036614365804359162239434311667942916268122773757851727782593377752619544246334710017255207849932297564161966489666538534425155739974163088449767019270412919434913548100728499896610041449071551469669248021631382977267404653070750167347678095894929530413256364456899956907265811044225771668867153074946615810976116702878390040410904944380840544409231219875078833519397865388772671276656201248235303478385595631878451764726005772206396391242153228281781315485962942647464306920430488500032067941420315496584264895533425042960050883121389001912978316331379901559208999164618010213603298488812969306334390650849327153210826318818766848643851442550181500895552041908837353487704078467611486353219055842281386264607810087515506670819255027507542302211946268818051740892656894387548486263174840253026385507302421984308868644593692053095774614260357777237459389234412577997145130718828005617770821182387075560784614823920087894214980779736189294584251701775013254669394686817050792717197519807116615206628456679328150266611986402376484313166090828734645771952560720750811934671444023537579109247944061668250785492268663115853854410475273031363529640750876435554541067621494235368134032049865191385657236549265728099361542895566289288553478698864140348766708652172052697009762504571141730337510695962145874491912791835548207456585192963012189179711254618164471053713652942131240311306514600051648849300831496250599710433578664777171249252461492846057089945878569355629151090862567456877538231703229124722255781665151070783634667329300018521369729616811107138485907769433601328034568410296008671125650465898879530896138911011822553645916012982014360810272697451511562876199947899139552619977826541542126145003120106338397512285353203201594272522899733015644394409071841092358631111582989960205586897168470064936273374140187859497892628787350162498944649520042747856347714403597548935361885019462059151707736765990546831033008752823039696465683311699976227706169776563061483727461586967865506135049270702310254289748042963669902067675258550300572037185040554308527076340231253367286316146377652127269117991200401776109756897946269877070761920059268334165930596381811597364311235122871257045160210082404994896560213248662463568216255027901531663417650145351077027142939952858336936464935330867137745442857454812518669461437269945192391158790161065921461809119575705724210443589927467430237153424643976873911795785817267904145025250935000720459816207336986547251951619331331009020586792631584422628998672939190323046357056356265526234067210293149928368935233049895271131946714341150756790416828720853351194146382284071201854327848042724625524587323694957501318564863604761129450042623035436156312461657783625356103065637122004437656229126527353065349503199930535867964883496083578444293014344600772892065837599690422046864008436106922328211252533472426728938580527216416665550935240837923404059730324266441131468389081973206449905249269103299106812676842962541418072907745191722919552695485370758739742510997344304862055143543284438605681517388632077820596712731272416083623699793321935751873976705269747405119012871638217286620263714090757987719967342218082886217537917593220301654958456774369155990089533415521430701962317995045930287564744138888989722716443156202140805391003085995005290928953476066081943636591088731080973028210876538293965339776950248651143189404664913557066935658089937931020070754541490752296376427613307160304431940811693303713569599078089545102992744217455889470596575901038833446627906462332285925522229285534336995049444532220914412798475780997067180196108194189531350732107256822985594219665132116772006015483050399835965757117687207611310327619586103265161256635642174082365701623723623412595738861336847299620936632979367924021496276405601590371912133034174692024713071578757031930621994976466804691108462665508536327134451336546402259165108626704006753002697278118444890534636534397391913272930888773362904349586675016063041328220393122856646013279000830604960000355050822011555728344721424883973168678434182244524453775624071694939155123457989977134302803041101392825612634661623579952662815458187036455301836142236077479273162432847620183720374678660124105801932659782037674138771815142088100713950774862027132455158803934007068814670110249466058924739239956409755359372460613546191262402602630622080173472457284080678633159434023407794533137591382569336919312361324438258625648658914178509468504977533458194670589677262819465158021073300310716861698564081985665214927819141190221091668650769416434740220013254616775499855172827002814787929119087061574295059023707425157820945537307856642544159284007911378833598942668346887325653282747964327688057504481228754878321088305281053540355631058465717627452348271413204127976200528058942856797397713403478273881312690289166024264561126704291321772497197546646714237926461744432122701470124494567726620762087834751510437958299941285694338527360680217452695338622855132612757480470309012419279033122583342691230770176348503893938208859819875341958886399589628820033237895011157057859179271743215394709738512964880422553637616552326177747500879503275813560344479729764248248171233854322835866559244454380643427631046600633448045925812870478446619672259531792617598437643843141864371448149403134584445447898841546619291814685857501362811057419242714849594799871562435725065057063687422559076747802547747601743905748303570602538006940458690183918402915011325555630239405890023929878927644773133621435487109856213653466549526665589195966571215347555077929422189236516143099467373509876990709299073345415866809043368465271169837107371300633691620059175911861487904391575911624493882569763648323578082771973310742600451866201962566330212364647142655111545361854941223312892656989897579241721549789521835099126652822687436177781710423360739153113202173288285276994275084683684191934330238495542873423742622493317770786667606586517498207617769907965229101679429597224059372500842306975232994621573602103585324764260847907824974099496348829245227428678631267621654219531833771030789091433953726118218831393214716585899137157100471481411602787803117144151260095332301614777096125350873579795282789113323033682906530363697192993745501904153239607264760161815212554303130803918076912044264526808823818520973774956290602641322849792156672717547879722606639799012349304132633013314043726886068262700944665081880877622114910112338923716319480956983149137283759394580574792844044241953321466328788200835987495717269001349776289174859027032305820850996201024000334109043015313952703150860256838102528799943542685959605080732808607721609004523313592188035536118491089129683438502477165103766467765139991390910479632744100536171094175651261487670857941854516859158196449595297425654397060937542605584342527223774212131025901636299827599686550337620790584949019520728620658325710174958833080868752959436342979258169861123257638513546215684808676706884458826396934040453063204318521798508001891395803468733258205679726775121695026876908486559253229493033153387734037611940295651568583854585603177383454258634987979169917036683341733101078185498525582461596864852121509530011662055461176217343640993033662196813592572238505477963704423417226254219930955435894623094046880461925422656418913045930450819797098727969085275024658295271770783569724054311362169062507585764598878189566046514987250759951433557204340973987790191105597630265314666400714352293302732560617504090200893157757402511751794243935857176694683446331658367305521830410192219073432984170202731057166700352818466994618567789788457743890527928938491166098003827970534122083233944265693702228809859068654789542944562903159777370509301875052727612480705299843059834750490695623122033901638897273500144519247461320187762938100030794435231776616942927979269016905667148495904521295164173083791232858708022597386089569830647447267546417376564774049224764683604452698162903427553858399310577247593932401318065185624161184577920687096285573843364845592266043633159601203442259857681990738927418191345561615657488441264718255827622415236751462301846604515075981246221473082238952219479823871716097054384590305580921534257367190006771790063514971015077866961371354281591198479302252901509182579698887492664070348624117425692343852223962827552750675150402021371690861076585062301765131436251050507680932513254431463320626422937216685636450856479437560681414719578295517793994954467227628745220139872692632628439377531399797993620690651655912630741735496964988907871082872454892828996792702610046827543725313784239319523949512123017485760935605152998554120566165765169614596138838854924538540749330223742941345559730505236195068707557286920635695299563248969593976229012361875228614572254696664027779793610157869802023738966288466707586292991998353937173104813719860618044840559928774188054319868770425841892102897611163918430982381695495170586120617819418003940087751343942316522748913847024326503010655669528844364298797001371012934530024714543532063986502179808440125784837764883813686321790623148898866933483769260408707397498930632581500127011771855235772035423661316178912496844908356159743535371051231423529368812133683591856473455853480342385717206105441266827418234063768719137983684343557054973278272190358689276319587826834303411736214244434578222416283740381756733659629144891692009190666617756035309118300036959562660484649773409965993181428787102662079362687179866682639346960726426167130705321548110675277014709138460985177948883767677224849352347846818967127915710258741830081129622968110739323322457627298850483588070551295339076767418771467101999779871881379743655808452207020077174837200997145770155619951319590819610063225878486290265898656426243883869017888272326900466951402591770300024240933634179151326766288632041640320761893108345730630776480834007000383598897196162013806211974688793812267981540792585655665369395124267329340818910630352299220780282963238523520764191201542845070444952333684122206625943668311867835811350483015562861516958404743778299192366241842429789714629929121923807628583953425452062098935560422330523694219658723281340302999421627660738117982973926885759063731528951087203278251798876942279954678788868857667235875413667528959071848644157255938154731046700549847072544638889561411411541834626991073480704515269634384228285858461519596709489699239181616398802261058208255157130735460882746822338547421282875411223383512525149497639967509922839073719315628510720098848336085846423905938390872228227185885023922069811013295398325929215838762023539532349517290820554257007265328541881820940206506690461056737862835361037114516826002794095708708504859343658888528524495298596482915153929133187113176717458510053273171331376589156281169619879218324171025841715529793563362811761493236760273325883736373937655390763961716596004950371492157679328522374894618056792521120209155941736542364451380219200282072005255692566780936992953695255150671392809417525547093617568123526585177487476824000279175125486564207076386823402523249205635186510847455932905310377577830347096543470468909218905283929960071417580251457717372146860858497567312022132181444232143462218632107821960196272181936355369538746436705972691161853379725649022675015623431366139750409056938623320467630697867222077758946224582271098085306684390336219590916909634870680380384568009696177033652731270463381870497186732390928446737243574511579201408555085805873606110506602815811625063580174158436196102815921605436499752924920577641726749275455956536696707176472689173641902104811233320752745956661915831926139723983193421429187837487990206793614856805586201876407070683552673592755910323967387062032400953909856866143796035717105070152424575874705842211000942465880636155778296598228615588458048238710699293554976275747472303639354137546826388837341440685571417042573218500317671120514371256415530010965432372721048802256665477727536654593484367155835804971127329371879499562884083194744579754823290359518056648998940419128942525045467816520274465411458516232386985303066689299375757579918076210120806679029066062733362817726060263568158644479627532447783582992863989739129146439706705137799488619480445568223762911712675931169182796046251820629816774195131242497353063602349972846562046114164225567060906386656929630701825244194459303594910370856341793737251595377170441896175109719605825864020908203224997477439318597810338690259225428238796902117943359808403736824889769145682162703427076516726707827961238923740408243628569215748121192788342520413657556862119706640557819865037316856118883443752296074353352159998399985724293566668231332288832134662254434782050394144365258584692618145531572297560978274146166849207489135277107292606574094590182170735815846020982367427576984034969874922288018732241938716509968679964857815398346194191803617752387282144534963569548654481545420893275679808736854855716993628145447939204733861961054378856447280009191607486979641513807831701281387955062922138724229995793551648921681329498974718603297928646334986182443174713282318397124460103456117278400444271166681298370404628241799558440654066836966190948599893072242996724795849109273392840036762436418051567644679425940080317173479435218892144023386369533809201623634224419616392770134881405999006133628426738456669006401529981569961446078879191171651005938822979066773198029081286236392296006855649241124344494627986764736922840403057779312564808804009001998066066340325394354524990420445278301648585732430749017247254613077022513675254481002573428842187330363471608236662670299088649875133601827465714401704290100730186467770199196798444039822686976821013219425033753680781045826535813331780983396198914302213977753145049582809092474641347199606294074117815403447277102230728080874296262045465328774293945535393694791264705907325767551257145166668221662723502376413377732658440591716310462648595889446970288464316705407189102714982004092144251196091692317795225766936314299464879566749141852932252380215218190765238011188090207055755807671180091008318967540284911711119228103048920705444616624698495245620930892546868965412098522019390323785021591880762429419827934302482456014830900652299130529506496498260221543715938327210699950388295421082441703518496154400320699340100142407452881637580855487012186726999150733356475626586054099924227147264774117358174051062943782405820689800399671385289284494500058978786351117692241678701138526958103518296606813990110739670670564457503277600723062368027700085752255570322400459573749197965374621409727999675304272604864656266284187651966339197136188495952294689444733956559538175216927732578351388176815128954098580524759738871381351466584919455174496125200432991140198349232527798987824980532676017410502318070912790217920165728985238525150474153835448359473325204217638644773668119032151729133684991458578741516166778356983861787928636104982169189714123790990359260557027644700655695336978285157123784619496047746553556037099386319827025516674507098898786797414413740641233230862744389107901372046939462339072096367540760857574353833180863338184566504576020255580989576592633153529503865302424066866075419600405859108485715750393216536907010594216948105153877139015295177503870708222378973278145382632859595702758714327432807974506339271802602003628653376700688938004120152886733695768438594342167623861458261582540931200502393409931758001686166861294300915518073652112153842705326027207090193040330305661277213419117456608343900077207470429042087611786578423366829238529980638149600012106479537502372148531227443176197099292404104125886478750421885611624145096616243564968138084526617511962906316634923457375576400291710233938866076207997864184798766755677367252421321977307274690515207504792997283217747320184536192596463694558145440700694261852780466544769144918747624949172014595129811206505648928274051651919650900300336735713626909439163553640284626606974916834814072960902574329451296553249714694723870472411194597546938309843788593210351644825686593693245900211722966346944782756679706947402570143535050192511932495831898923940657739900550860830241273664029147206451042901694246714154395767824458166314632775295718093556175667429860205145700116418845920392362698050533278414346493834451664113724880779414436751451207727717352077759457152040907323632422688688786530277263924106402148768764782976290568931454413518809837320124504065979109647380731979739573797343032463260245154953324143774400831588694316917888435033477915743249322223962599377220618220613810060248191552406475972430660342458430704768783011026323179660037167597731328774397463110293607274646085895208871946775729990478646727416411189952104454826156956463602653059080243296825753894144506783864743861166703391712507377035950364674067063835930482229139657919884533164911790622326916444878454520732432876477052820587088416697264984870135354657076407008771905876243278566976144234062603711442658022226317655597743876626569597068803676452321121045661339285397723151042473834976304192798333639489116931293712761195152326519476453649423255854087454701608837465874511307919374341676393457123626809392906547548567616917502414067813844929362957801668260172833818958273273932425414302334263191107321443646654315741871958528041845425968814271949638524928411256348807922409712482756474732052508014355098100949699518899413742122285315766699784571853484014080743470349164995309183181595881435865550742081309401249544630043347810208745899034545173944467715314866525246828152328447250962128672429420061999911939944389936326397518812833004946389551001760639757006854422769379981571493277608586684970031191949792040190617512078051327320993004887720980370497338930543540267757539854500820795949808735947468675668492559216074155669768212093528740451365706370090575258967976671047677489432233458339875303499721127395193475953978525146939878650420448632499703006694110452063320277151582001669847731965744306558013332400147608334043194470124365818859361276203733908723750507335262048852349161155715789485679148397932472833360576655297320535125539313781783396801344532416073752895238469129952881210874492704264213784321860908250593271934034436738756762157808406581298533394544888707822925520741920835753703491132285343528221966545339281622297746530695435069627411755580504187178106647988165097608994074898769024287548463232967479523234238565747051843025713583783898528914907133905933805242643667789943328867670872538989497659809906998479084802876925935135397683122563141140607049957728833748188221221360247207053337042674035140274968682708453514372339418866394697222117815917348813007624782509265897026544895351286755968295780073283910252711952501221914923690444305253758300656070624979878589065446782723977901309704229276430450888755592284912207257273819839630544850037862455143129576601346693090139096513240076552325636768806185693754902253700206575962020383683151949157904281891529954626066961278530589818308338325603919053949559996601591170485064990266514437581236240940262936144189178191034095833284694834962925342888107627276386257122596065790707621076810214783238276411265154152093710537290123089356738845694327282987071188165862731089902884134420830754263897066947090343365912168550202219184224900624089616981053833408701793973234601532381301134459229796585773114766675860856928372118887927708508694197085137807436112511059292950276442519203422665488953896675086421147879033609571148835092875599073523070876089143049167344522374335686383409822380907993023426431797027651438152887083067251725026151173435177532713563820281974116952866445449362998584394843878534550978203668994417363049207080089415213806966409237743517427777294201495895129121645343566892875330474406810701053739177018637056828959964503293230696850888401321423820840931818328077132844523170758829293428322309549530762113594500267577901190919509247504286271206201597970547690494412726564172532631506248875109456016542640988876541790386369489527471743858906405447131473801121181629252383640387900606398061540144416533102158479140977174669728979533988665666144274235172348534294933397941327147023397415680772531386375384613363562575332270588284978617355075154770355102339376379438174558009927471125403187355772781498787709109747804264992664612957397463645204142896834755331440694058555794764118187373404800041414400806052850568725356280736139567587640316595062967525640482327234219517591548492212159294496782160166755820834412063088208154341155617739120389430131965948000428432324464575421322124341601021392055719082961812311203406942905579990391385836065751552224670516486179322535114866288546109457296628615074693948780736864824346691825837854235639468141690965411063534722193636734173456391578968657564106799386748463199714781685301864084621934613524144468013919143891226704794938612399441191020509127104733982272576529162551047186410444621262979340004614128020739638397198255725355177810199150859474974662526949260599367434463714211635634698466422197454164197003267008285452142908666449942989486723272829318034537758983946238542321494728009221085624647317768577150577061998559688648318133118265120273655564739195011072310487972469598833835057635352193046790257519933283111325678185251458621344086237330999195692090022292597026886972280031744215502568344969236276957393949421807290438186695420399448294208632811682565798082881184988316266460433841169467708137126525609964686073826004562296377655257730171392122446871420478450039495735581260988287181548780916507873206299658577147323859329351623124132117653057615371130617550984047055637327195694368673050581932117789181437453046955467223898770088781877177111464107008223395462422037964176596545044419999861130927891974459414176217912005222421918310675227244208277070933861651779673114058108257650590494890555306525301911829626702589691499115871247613629711361879160840926596559535859103262095413357948963897527953498173760486706078793627926106240418617228374725903312641780324434789685475896316826374340090623193806342528166648842602342504717497724199409719505736189228224239851924979709850036825754591111393319552128562237991020579634009199827965508521573151767456467955463344210491989489926423752161736553855193090708568177206470115389029742389543930937884391684039557251301318940695908047944374350366964545888309914380609175184103989100683819519783798472516733013851827525840521709804534465331876329059196647023978128438365154564187163635602202597826537689766180019666855761883152672317254736272249847103160078519245620461871786110688536687470779505320331791404055798903857368097213614781253877693875424555582979616117721478750012026633351391703708433347486436919544747576218716172765151508964704020483827448924018284779906498921074521084150289335812727777324109663412746121823179135787602963828872289401890920975419245160909543646954397132570685312698623783578490685983203699311988512685448507892131069123811498948747327642231249761124825377121809731793670941926910415671504165898628456379075329007572990613857100995441915228713722978444958005250534725228139889143704432302136200749963659875973863143656166555142135991487291863380494733279607022832221162129706755710744530030538544713847604920018672507688529882701226892748798883992225570935580528525654658841828486186202693468128360371020978049468981930017956630552399788015008364642465045868137052760442087900904599109364031127835551986490146991021993425080442802939655437227047520597389815616420427562744778569097387921335852093500025286640109617122335160225640676453821785790664366185591913463270189483016709115245337866056985037732279777189854252076541786925176803559781630550487213782297615819859532177980190418487432633765547962209518532920969543632336465417038328833097966918721856939854921292996471006363334400311974538633870807157764176686486339887898842595070238092625663151923423943336300338596051812082462918829166771216862053237806585098713350769794381109995996528694202318307163045588561445440340235246643532262649046838808517018475837314578443973333456342831459011017600333893252313784943860743829619785569712535083128999434502650439990156007854018107653790126795547926532400713833859094513219437217870790922163807443275086202584239916736499854697636717638785622057097237973819118628291768404109345705059678767507345202405964645618865361698136880935230651081890807354028459873314321224967655015486209790157933077343688154817658737750988147415990127078880346214298021119907190312119222188903231467136696325842358595301968730148767289444227837473072510947935716769541086660265568179378152193296708888950780548017179035133514204955298908309763762091409612269529072425557698050503022541589897385882777731881535371655047678189828888550115709670385890138949991014983769546714914940020929526432070443097523131389818976061775139910124241001453663852662128721795310014105256154349048008089620231802585697191992260056989446637227281861992386567891227482884041453075069891193868981596093675475798423700968187733192238844238774099442661723695321461444988440542105546028496167575737128852090773893399994064991507288597741490437404492493688573018752746242539818241794926555467501540900670805430602919806988249842350194150301975365407870249314049104623511232261095664720031289841251729073893708506192417277572104222981456229632541091645654074848308027729876244469170560260539250948471863314189792424955575516542522470030821351253869055565298926451663845832728970901885849783975202746322986045487403102364224150894677085649846100245162571275879229293297366333725717276830426566897155464825544446659906788218748451033313542098259448814917152795251846874336152358133302511771985391934352995375880725081625112700079501628811777790502911430706790369696460597101762370988067536653516573493788516442793466199504308983070796608662023769879000185935371939877943170476767396768880973090974016346574244571067697407948254773247226630171154212551454415660600185301524301009874707293369190410624713008428784584348914264495784796754316272604054267714531186817370313138458617889677195871550359736317322777417121587098346752237405687799551745733565965782265494812307556041792692850666301764046781233118563449953040794804970492484246972212814090125601045736568438931282154203080042485249901635123245184622100850513017962780466392498454547825658477848771708086496232581670319034361366674581085207597307933291871458850290908406122829943263373631617851855492776059537686489802289391916045423048125960363042624938977180572060916138168299999345880338469180555597591245222686243875790555457717877528559765764561336975191511369899751385094722563687008394507148785938220652310575765418361122139118671855524581568645879247625016287797898499821697745435980687438138125165283789863043779916939880294439108544984361581155894334848818504325192729496229653892015757582254820207352729691933660299361912281155863186564459361628198260388322185001287453800624211542441671616887482219977517782736091262904263020080239078561130100868837332788115101331759522390805416829814994585708961474693575675302570141211599302551924660701839870996166726425682904054813315516624243362553073878402380679528188741194776751533673850087686535789070535911552994966287941943297165991544825948493438342734036593337979050767985885257827166404520468001751588156571088888671305267586539651237018575251688865346637753760358954287168327656075163128329171076891713359689548422145855198664363430250205678042871128978379498450304327861051154581899728734555527625893170803352484684717221150803514834310390662619995613259763612059790898559104543789724621261793379879528918642143876998450540280604023977563743049637186017654671150801891938027359272383070200641077762134770119441398224481736992031067744262724799504793540459767375694615557843345966736724298824866608703655902572126235483318118593214053689229818190412944212741795370030449542194644304022359412778069379937851084342197552758672263863705403853730466149327116000260852624127080724898520234061315280165655411224271832592302803494692816946555477940273336987185434360450259955183788860362841759951328132856532019832501315229058270754822618135275088923030847963403939584870288848440685146009435722943685418220322151617569636002517803899408207351695781794449840251347555868034138641139120193760428575657278448410314213893907113941553000558935196685522396793671811274096153237523132365146490512258707465268605267819320936535424565179984177522596296220102062453559438027427249425287666846211781919368059027736068366858647265650233810866002752193622277555468086543861264467595946608493252700855492253222281868193644640718254757030615781350230736939557822840216170676152008098833723955879657162759976873184508720433139814320967995746605989847240827766965609286738120707420825218961874664392099289296624788574101118877152098350381828219811639765446096163889618331206597401096029514376837233106845838876658648899321266414551611960870406311096237887007369893229529776695614628395178360685203347348688401260525135979470480424886007283079622511455270674113868944793742258630220898409153788802165963995619604972779075227685081172908321442149629799085447083690579672531515993684056219503018250341260397035299203902754226988671963603326754896335870476755646609335259822775699334788643255782926268727087347723712914017945948235420795927193987164471827372348434149156000561060431573199266664783671160761777513823272897251596178519237920312833847380099043828619716756348429835205021161891384447165593005395377416582014506221920194169972776359009366006994156968510741935900956571715479951235555834644163634729106857642374665069746947933669590196258519057211950848570159798800126846854783870981192676676078092320277646695005897143567139930999321012653580019545906891237009959064239783051710436906246783542383426151806264054357817552255150773961735841579699210062096271595337383084028643779333976212697524261672300623044762883545472709623193257004656535741707047116168051574657939094001866326648808476126162656506896820651023874656050907205722074263935658017667877978033701879623018622013179231853780821574301359024498371717880579604663060506055483545519771762132543281403545989598677931082759367286448310773971817051813805807249773594185400925734070196851488101983622141714405227434590614794525572239609234427283877652824768256857619017786657417357434567266078319626211679101719215514543029178859146617246689244086878202445009227601639658202895226807775433521372012312188468850010797608103683968106295441212535126734623600030675661286422221383794214876012980738946753827459753946532385568772861247170264677635523147944066624654910282931344120251789728083956495964318481877542649932509304197315475701230118205545277517674960630773402559798223357879002899686282428595928141087845388789371496601759160060624569668092956915790525864052227259078119297438961486449638659484808292559679914671479301094664613396426063927900336833946291837595340403089685178869075158637305932296356714746984189999272560382026396100052406053777845461093086265693741503247999830636814430439877144742791446380844332172594904399758245215932142171617785699239101247866257133862634580960241945750288093293454639789119461829530926218786427387383261384319205451269639517515388493867998674028284987020071599349681983713994810238685578669931182885801574317607256571003118294008281117209102462104952928310709654715080589253934193096222890871057113154126200004702111980177459108474292816962233143778077153502772630254234397102966965600037586221794175243981144237200348615001758036079986188709545847934498145316395931873842962217470299270395668168128560699382557013672269997885958278846489976388634135910431184263830691369874476427388820745613499742365469053097836657362973614129126091911524613366123436425944016384013104779905744007913201684687794205442252643764425040100418633644393747039244611700660458831483642243038034900885395079004853577995655989237259635468254131837244366397523882641318992124928994984795047322298327548506787049303907037403178283811549579601592004742351507755437661095465229340288764002206101086127554770950958930199983461468006125246739585940312924310016778571024032817624842349329982943536612228220777949370199458017704876546574350188671526771090465254848527970998571483888925747971192743076306769571461184846237366864565007284308289904335076638978689601271608545410791156622363854830218228473851718126913555891310760873742844579981160874458820013898116662566810765243105196766834728233688443716337647563168741803222366382592340412256648933674397653352332198671056358823535148953963605719643482258594960597973367973300716775302689052031294018513743449992873476250901962715924356322173252093443399260717460053930073652475274835250978317937991566443815925071690774494444492357527348737669880561284322950372776249658395606104107094404038090371947223959886768497927402396124710509327367303838567014153551597040911780648866167266340162875356366673886726329613154549739451167775984127233964361853879510695554770977033064748255951840569842141686153523451056673224991088510808383147556154834417887400919326068915389804448368380390675799505206917794412567488701895740795901921930318015613734274674077013873529203469322692433630158455159844833437245020227960542040432754392599896247670617663929146270153397033296790808493656397809423608001768373836873614808162019424026787045524140866327659081499777896059416520608337021907632865414819397060184770927700937709811489831725865488526293018260267673604889622700611130576228067675066904402018234172998328604621578726880706491615043578656960664723685020247296435415212753340273259208245058540845227662793603070708885383438748541268708246586991088448511705193281554860540350206978638271882710934381554184712933113744498649683414677338567051493088587158345015817978935278298366076894336094877463224601347834036109151651350298805788988842535332527162672357320329577604192799873989237476589402450939916134878025148550215468439240127821961041743719295185461389324616506817420167835657230266872862416331983300128647555891800116912684416986504488965120180109534363360821689271520390761510418355606287726983537816397545386216628616206685624114018515945057234219895327835756264429385999125093439014563433432807185860915746490281066308084446463615442622959803531590704661711042968475055641003960429755969796879149598168159008947185287401783757091658883340722140892345928938267244023510126306288182948646719267830115772651787740249430698036712305638344343529060083685937365709603231915904387894637520723898960920933434727529483230660512780101143838607935817716915359681298307489401493317883572307215586052315214357506320165834341272604709196712113598411780584387816723586162862428685375586272635963685972787178084038457902097617625272807564056245881130722644014037336637085852065780686797570749750451668083128531741507105697982887570486442397203391947836407704102751006243979796729670866142151414197458812705298908030384284196298822240704015658174012769350191608995288675016266096949210735230669748060270534287161580202335490621126079821719555797866859644217679086210089205412706022724905811810812481405029347614169139214442153268794242443141787546920273987688291679564177518810790256856054266690171281011869056488638914656451136693968858055034486799627018520563419336172683304796239359863750280985371886830662288700323029994517213710583071238959554566512726103180855357078192437253810432004517763153169555768910329171999317057994817371493908429401623690316393418079616907867520697488599585241971735220370259714815717687457686944279771389485620385652378967929210060672076029044332457956098377813461347138220859758835410075929600251104458236812108943590736559109405599144347418455496045685673689773588096443418764882682884672128904096736656316118661548008838230832313493806262032413594021613186492049722463121534260452332864130635229426271294716441330223428052700589249263812514272786083400263229259005663045626042843527542843110790918390147056049191331705148264306237059580856157865580427739814693543068787214626657254014355649997572375915117056369310855178260569757256815678182687160270638973856429732665053092264126543184631601804897334739468698678240636618256787503967643019604426115450218941435643582665101371433349843071564037404363227907415472793242981746816081418543136899030518525988164726017619268259071782765195167410380337199652392156481355187420857841108783542981594215122715046956289473427281686033295174023157204506209082787278917508452396647243262263632255985179366782406249151227469919208682849685939539742894030034557686911129413084952529613620084307323526159730077145843015080970915331116769403094839778719500401426993036577784359094359029880636672083943767469391772543363827736087020804868273026359934549217166738889763585999710881257526723922833445121097371379339115915192607185419752222456541658269613743457702028239720842789403088158276503917673331524783249347539108821368339084537573318847032264129193676678053590298691728276770642708456740792139776957523189488732632672717004374856098315793160285631040975993772891829268972658353753232804449724701193032139124085103880598657947482386851117656081688546951951161634477468216037520947056706422484394966594552142384027078484753266483355772903191299597410589858233701671103343077033031550063295412718310714271949095047136938506407780374192205233256558523268636774247714530385392417055382137073379744945990640529130404935442115849056134709017532177023555470614965771495917786827744391026732036686462996628858336883536364318505174349779231774337192081479823555334067848512376909052905814709840787124074565043965187807227792907040359405764419370176467700643016160721562112137059502737049210684574461066673242451864842057647674381679385835648219596109810430823996639279226380665236594136342544901895187215378214566026049351169313804940874763413563032194513024826235484502873233858914606343448501891364277153927232366955472988515515771682935718357477023127947225388020173035255580984932599144905120934872369266735946250452627328980967841636192715540416229157420875886069013268646908463217973466745284800242931414262313895096477988081193697042668415566870558007540448791573603324816483262038205923955958577611167726496428264539531764700501039117455248925302783789891802434730906713409786578547040654411661812633538369317446321368859080537428229625413203113927418884590979341663474293361418256310732514142560618724516693676466015140508526603784238969116958665792643462853835523504368563937451977927343844745564289379666019648329533220007315515140390929552227382225637811925536908172339463845629876588003955370925483150802160632346575782130810455444589472357067327232855613610046843505225825331330545094303172892723964542661003601796643203852561178294938368732872513853725733979043248218190776509155693932718179032067082926230019221244195977756447829575650327363279477488813488259109365731874031948667060209140549859619401969853144085311525579220232427752679396958311976750546007584496523671692725694434742955099461566733897752316170298117859997579276056199142941029886505602019752114327998625384539090283642180769664156608239792191020009260842267555408573763482383274931082115683180318907367221596956474731640359938100823662126899412236247082645071542770652848447007367599179225515672325043437503412274378439998305517630798050785843526269534547559548600841522715998410674499735239867903511689699855492389079309669414073549213363280421369184699318976790916405063667141426732096329998106607595611862665875479879640727044474314594442122935823274775194541777063493640749476076224605138707435770369032104266409347807517313858529258835973277866947441506521662493931764245404131315787740771472967042821831509414007095005053117782822413883905645459794187457232937253353286297091774761373529679742418147899928429360875268896948378379097579724381942510410423147215841179770879917915797879240297192095751870278637158755359508790665994329323819195993150630137165368362548633824679448460001669653383974399891876409811766770367261635298959153792338175679297120074053598972152510928630936367834074736567318961696390605327814450410809424499491329230053630515086482966687423132224808462936651435007863303977456117642532547321812685569952659982365157634548149154843921237296412560153604359045295928453027488562168129058147686581855731926403286590090621633918335146560583652817262554586670547532777200271453760947568899985500652205740473984627597906571431104763287852364246273434884790371757370932165623338709463631868584486678206013631911640626637448994138046401569330163681941675061089280005317134189591292260215765805094404679918516995110884882739146445052646577537467870091935195386696340357569210895139991374007364961842935416527650289739136837261567580316184030243247079634822479815935921082564293327664491057333774308736916492502459145783953398346688016110089915780197351482798777539359964720363520476315854304623023045213928385238549025029887325000226500537983378068459717144788561484397203699259847846487730110008673195563193739509948822464575951727860258462164338486342538626165302122213024668238665517621709166871676295586769758190421813077579312780267251270147609679470321747134131763202375068383451185608806000059183357204115334969299961955470941891415708542233098111882225748766629903784013659666555184037904090268597386223829457813421888714870733292028541840273114752839862908970311999034696255319671862224621438961210871581998351266449085852552521501875835596501401917236085778809176074784472228928274790357566072743674815264180339748803001008917682680381336440946298210780958785278504114922764414320792707260150582377465236976216722701489887611162805406084913502969289037465728052803864623480351605010901653370242586067948760229270197165137528206228456166961282138031200049628391558991010571027258129936019297397119995853152740158296734684889294307418833602939344977607364120754688173108424529059134140025492723013050934930768310779897273443226604916740097422753365495440636962878854949508738181776338325259759378610000294414782284704853375168552052037841746474312387578283081054140278394290942089917219563533227163437535359560123060835940542756846231113181782560946666482278337395981996644319143930807305184038468959761367782905649467546647148224731425129624744468589454822494108048284423706306991421761516419680087886708473358715550713561276011049908632492356544611485907345958990416902612216477350875286326828420590050683377077290387695336678164874820898491566142474391806729241811637394562358161586222579816432532248731193380422144785621629051767238007757277158817086736878810610488723357479327427381869514864499505536920540179734668777993394405351676399609678426696147445417301860675292966705396265836454111546792538039471366198440713725872867733875631805176490238218463289844005640460986826201951268593145134606738744681728011955863124493440631969730078127618465493511622023587334419809076984134243339544624140741753858275074512133129983491213611841650856006444544168110008759693687339794410600121582670357022581948672109825589355178215214628616605750665332353843286718900079121118622168820398319788427794350719473486960583267764594540322437532441602004102864737054171910171327426737829334338073767078630695374127676273148704506536636531976157620953027405856200757937986545232034875190555441699145945274203989149851564877163362933365136913763805929747296724831920660023282047743611698008364900299513762587911476004006122277895283147181503613039510343864734877840369030357149794577504905006118572665589850674938394494198041914293620501148774634861070005997382348997753553934018924123282751658353929714378193071053066264179770425096661915637404340609772334095680543268436865948830080823276431822310481274186098667778758111095655766292534121529233593055066883862589211796333740026981199201851589096718021249215260947641051720193032077806645348641776149625344063645689883796236818239771670321414241996248490615318038215415784163535464764209413832841049153071200456273551055155102466983437921475669318507992047554445345161665869025507318739603682094945889553950319861092171884421262281053039332797486602031005937891853265126277117518682486040008240426029304078811982260329421912425033522889263807940305193205092901047260784666787036765748933754255752725258866440033704039202366741837836871473720006302036365308304742610123483607444085644228451419244837602359208582097336250576951745796388461063038209508290417250290178129588711147743806951280069481208206545683308427290174672306869761380528535965795912910238133011825688088285504800521859371011182190311395869928189723917747850960128414646963102236481934340898731140557282368935083520996521381639897145281673154160478563955696876263219411295723992407498408159534594849995685060466290861015433937628743548748208717434545913471297879930922850446387983927539619071315339631703233982787144029681155682508842147306646803214071786936670868713270057967926718147686783752313190138033533222274874663921759600623099601386375361786870531154225270093412916655530476778002527164685151816217941248391822936780791195325019235705942038409213346365918046779365015611437859991870587847983792261782076920024035353166932591282915243795332980415410005531523628012130734776337103335403852418853644321331859520460432623227023918655808565571267939242101679144163600259741005245733295897535887682374770457186336409141982878789283041168946667270852205134433182807488931989698613946781132670165861805785055026556589015953463359473756604182306604665959129389685597648106472155453335837428548608244709913326942548501513628579274878586378530607376877186043574559478623547456295901722284241138015329759284654844394101838261799682192680767112783131828674471910394834568502256193795803717295347742541555900125799225170095238655128407206627475734016212203755474875030006916288019418199164650915276062390986042760049355467714522893542032478828730862919834154924672852537773490045097313041269463273079528838763984827690490740241121269483208038271127559697229906463173899275540290522433642392791243620038076905489286107701902401712949788082928474296225825048948581394480184329983086907579606063965543332296466284403145237673897706297176498619407303976625920936902086431108009277209488741166451561030908698886260562687601220040862764499859917547032461017587019075590086603597928062518348308451091817586525722933276317222190637345396862327158447231983786898467597818981737860988713303856544823852146603957241763155899207201815336202703601327632315114275807371162400836313514257376646035795995056664594642484424864849601835409016932990173334924822987150435346543108871543572636937084143256148779231316146408476822419876915546582128846274598894673762376141995199963848656901613283184272200688459238887182812927098359161711618510301295632556566066119020394863832223540922980953138506776432045036970150091452482690316565587143111590795064995225379920221162679161306786420965531248008013222810725644954817052069381950811050300341565714300193109017782104532178283793743280422542823260464846725483820349472214319601341443626304470620724666498586317213412102624827162574281736897937859321606197767538653357279521402739492551957502582426181783971052991219920650003495279023650674237693964587964174545369574918168734510004058601869216906022289891129950942481770988825275259600455507368646126725767140467940689264853517441829516796591199369848553509066454996866142161333109742839870921111657287170472540691523004231584158225688069517996461135791909672666408262753030759313062564356437265522420805660856494386731410912901518452924466460033452890776538747445457117325922596313608388045229154408328508714883887243413548828623569622582427968320281874509190280027626855169294044056465213539383650061625986443609064535376333809468950640751141533497538449779801144645017815097635813380723070622906824740616409071110251305364239667634279803565168149283772050796228402041273771692062969491637101082660815260619893195895969085890883857456236154854383748860114478345885242537439673114883560415679923295801284758569502363521670419058826977907317505676560198965586570643916823471442612652509237489719644903164059201328516405772157840756169577327216623898468248792423825464438776582527615253163388992975424989240901286154527062063707770306310207134126301595430129662243547779422535662445331840985616626995455015735106658333398757491670018934195694627811836995395642784750808820172232799502690218175786651942835568180689627738779175935118284523771620855170756532673570672545874767521224734841478297527131133143544278496618269936640373400571516817484108691118921026971464564162076004665100685084791203842099304104404120583292674833343581340581110157141880333851395714535841415474545843962120216779972552630694616038294593117419593003903995091796743715403843056082390698472736692227309919749472609815804144672417864027751793543483438030481202392161904766991575105160816064323791952683385477828733486130302292494356936936699200374364893837020995489254804005189520513949910753544156208749261845230848855979899078596949983742530236493466470740409987780113568261890519792330711437572801370002568033272229947378430373920795330914760444902948250503710397429457110593856929144723541637607952104635398175381342518173102824427929630101434654714131959727024841325382531426924201631902772005378438423777342441140450265047071479543122183354000889927861427728101191493630835486568221686871039622866731486323217504120659812038921624056093366109573564719771458336785093441729419401368553649407719572108282540375092165567745099675607352346046934021890405650347011593492880800288880917133653349585692367144133037006830000511366758832261107748067058307953231184442028844820689717958890879132625227189716602899792200398901431226173676367144067580415045397586824662082595587903470780062693612520897650340713308453238510780227359542426530422555568208769135801394889609865275420671756434203156761348036447459160232753694667127262314789495971526362968418339869935934559332649243154401946288156124734768096630584320717811496835134856038991824368178030588506447802985289569013126996923915768117614845078065259531407919826258177457815065868949451814938124458159491254968988816781720207611682624084833474629420124593109385355655817508202946807621058430592311686404453096304973704648146157649821249589281421597323900477278241363080625259404594104944370221531717916153197710570649451730715026633750963275708371442297745035012515089061305779052117679340227800848022462457488866304067212159243309558118384749078169487862607823126231222027870355907570039144038141143615068455111841496031127101980547710861308100301626371811061903673476259103836403185412405561291182851817430632809537138789700194184552360189725645499236694541803187568756101662121796590825201710095643059009982622689883308083287655802853236189321510778208465408962377470291478071286838435031917892299875600172427497418448721320909264183895282364734077081159418019137622514259645265683600653700436715605606848089832859351104652564619319619317018029994590531060271433082982339701022577087894419630589330714886912552811820921130529324234545868689347233593867186274340312379525338846286170657715023705381207787760627128590986642766427542685521892408995862519431907109360842101072403873183437423437829738089315353613639633144951251886582297449686432371248386282420966769390552477188694604574450345241707468326040997907846783783691482012732018647722770852799072035453188008921498961320399930964072731291616333978369363590704132980057440324004646165787836097794804430368240854780542879021101880565096468593303706809889069471048666589243835657501568606298819626121542006923396291555028867587470697418790056636262658961745430827778358354492262486151885954943482487077902934151368040654933934260717473045340158016947526118443638854203645299192609574921486495627488951243873986084551653283809771557571522817216696437840552513492150927791201971950264406368604917873815070048576701307746852771244745913109237413055537762637574750659638558404345925983616891967999774598009949477041379142953087706470772186783320624745457135150347853248669609834407522751338696956111662548613178570232274196707766359984513593348589647530383755089118520680863762410972383602920184071713442914217127018256624020983036850145705890695369577640804055591411651174520469173995111083579616417056407505471047042827161067652513342618989512205340889300237994412941495730594066106684365543675182768197943534910979637136854747919972448888763721489934990342191212861029416561414344002175268637949319065337726415103049190903094743807853262495364490204440180688824381228955184748911031412937937721210638868066834599425559657670398602597650582962832398853132501307361960801811060417282747652674779834147305912856052382908573622143511975710183737993489857805409234261547720013270682707618237775861095361928910644803910429194676007680986182938829079353605246418350485868535533964949043818169376272264869822341514741058688505897090252302244514645771205661625861463060767368929729702627833976991012579917951211496225990605712121164982264932711132750969962668212624082715335079179579438197105255884685537542694688557611846394912562569842304529595963597440595665585846735791432308785011336496041697127976565000943574366107239092713731711442905396708235895862334714746341730130316062587543484076210489625257450021489410770853361920587133657683259947852101925846049463795343353763434155828394681773114730280517862934017313181655906379550752769322412139318230270885336391986644110246947544540855001999815743187467009947257070715450897574710360955962007160886067996538962053307631234868450030762622135170413401143055747514003801446940477252285908134288028428306980302772444183144419068839683541987516708937717932103754552538677215044060798429286369016943675968207096233553456143758276133455370273770982182120926488420185828164037868254812218407873732864333558326933547434155473292938412281359361467017950469967134013394662355446678575689629513860235668969961702203419115294290117781131986411688934064181373650189804860165499894721627657310311008112595031152821771742419288602101896898895555459012618295241426018006032026638576434867707906033960841198666011031460919195875166648230013980562701928860554079758258735471993007766582584009584098825829553163356212281706800428771887280452286043819469957103075502654398943059720209807045594777643083909082163925637353858656264213162953069603165665013043625796873730566296615778280220752918900155107739594488050263078168903592381111764282221919612037881520887998248865553435785239289049323541196251103986256748158250453303136116803045324072841264768720544257055973807614407984207962798033828315711990578946879927344679775209996193520486547149688976831006170573080980299820002005884024037212916845240205713492435810382678640551743568531295045820623156186329987583938305057761320984002420893503151740343153885916840358964109833473241865374336342360420130834374627350679709163519647492424523830633960172509998158936662658101770244122967392617237331321305892248372573131906209336263960958640052223170509315496443405256772323534558284005311307416887651970643548716741350862961810871951090837626483664144016548575547950762105492477542448714365541537684643006349787860713682653925088875882809073321887324778783994241697148349074516696840928688184448482751720600681870839392992195755061771426680429143701344644135063558436404077867956815968895571141370734233109896378800976319887152345462483906348837491339693093325787318629878846184150968449258494215006210189105568659728264698751166122154866258283406405304249049799919324508440294181008181944443489595599109536358962693113763026977095088081776470514593192621027289958484834101889318225800916248527775739308519522558035749109773310882370178359598513046473489728657906435135387425268766116263071292804145481056743271302166735542339828095611708920999203498119324254387676395414386133430981985446346876400615270808660618288961405660041874970063975895774306287695589977568395642092209145357369281273820246627506442472991961017428391946894552039935353344224533892065575020727965625498722579038164752911446751559924848603018110502393913680941420778008351007760675444529468171964275982586530125596066959870093573491948975415916351372851456885246440676192499821968137962247075179909716029226278860314909797381938785015191755728240802617456467169241807705742894286702580327860630248265440238584522854996510344557151658012471410037908326695665287723746338612554205064981031586837755674161246807073796814800425912833698669702156992875678152541711711486760540097149492600593006370227342370351076686969720543118300010068588956485628845371369634873526049212697269170019226480181924398768824446049249860939296057842219848008699757711877375739407537508229623256739225498899909818155134307270157081685562488556055040979854141467372082953485184555954387052096357663571518539651686331592481610702978348357149476530401926265314100183355708837359559135701812019648135386688031721647225030353713787048931623054289989285585400284765751274488256665511780764523454617862388529447405640630193667027488107170895180046019838363155138748314810624776732752489199592035752018316814784489527355951967838563574507397313670208467129567012530138434681118888214138293758121896552923016982703256749802296304463689752499134234800761090120299395928794127879977697802855600034883313548437116053874016305872680857349210022529521964571724678166339535817370001477284750857894006968060743678497778441821451834244119690999984954014767696208935941431958864968820386689909316986657515228553022733200120885094420251338830645676022377342574741367109293865371150531254350684708173259921682081351151361683526272570578352981156830279051127619544575526189371081888943237163017831213298271762335935795811513763330460262377885885067804983398074627471650119278966250637108130692157009789489343566073343412404629592645756579520210563495897100261432583331542870743646162858658004560271993582904026202339629559462289275587314372147154099545678099763505751982791253417314684821527454973552916368136760637609935856900422675279913311796154223860540197300856419425928606439183617258115663884936601791554509732593516286117007441883227578333685117945052976035259835171343231781540351733300639961523411438177795743378595610362804922887237509598892425468855042295297387931462910167897109722334759557096630216360770568649537634581527314219484469624042515896471047432550030464907096513358271235218871684012200675429246876224983028232156788557157191781467319119830032466026258917129939253813837688670230283881384555649473041929025996081436339430639779956873810078438708136204032169600112747623721774770850361903835747203522958541436319059360358084526716911543502719206870348033882969882244747583915807838985586799207946332513511378893802607402457940173846310420256204981765327987167358632888127562643699888153903366247940552563441046484418936034282560321588973886705228813995184044016802274866395772385788197758392883134652386398417177940923171208670720121919579846361916089912942793486937941096074124870990656516477212994955858684252511233248136423861598065270415841510275998398071420341258122147439392386829301261511695578972908250854199780917009172659745786471031334012240567479055483521073038832812314468591357217066379869488263411350224056988887586976935662649708975446644235241817668063477385772800254417626208388371046692869929960703515638046269571901615470598413021002763148699516699624898314168947076529953602221775577789219925646151677454563962867394720155640806333244492183552748388924898515154826122967870719701203636516321115938414149062264166120649377852221067643205404921680118397232761412480892918454712144402801262811927792005238002142563653780770213218949174454374342989876459377563775549934677970447594406248151516968276987188216306178066328303167291939107678640196289664158644249814815367860347625881017578401138714448566828972457927710158981673255749063858988830319075004710280569266491295654114742337319354305322171754690873833077766148230948788421599382652532789481432555145764574483994430009170702228837762539794660401548718208078380909876957968172484577693721419552177072138952767015167040231556116858317292810734899051544713466868472612888837352697253322694714533757724958807490972652953585608953663302118609721611845385091611133289467749006916522856575132033861860860750567568630444751783950203455495378604724717710151391558904887497581216814563984683440916058768362380016782503712248691507626436416327740127119890060936108201274159404582350291736899675758954726797862988204852491912166963683943642707680802905104643103684011260305464454271055302303075602475981981385118282018995798584098010806988583118029322109834923815273514523706605487218397505335736838774233939918277392747741621215925290166063491488120200407457021761905107948524198888940539588671811683328826556529798815740780344198075543959096682634234694513056455237323297602286375214316699861892979677060050212657293928943494440667860471332149790197158466285466326084584767480128755831424713267610547572432370063475921859796961600891087675654108690417182159225668440720976639059584097178943238140456355324666873161996459519478024569127218026397477505683382609787821504983486772675254622100854173778810946333276087519915157142699844322269530436917182154381780652626552080860881418444016022943675308838336363645282566011168063657511051642661913515925649713305254406637510947501440483402590755638343345579296262500828114606100729515994359796380922247098866921063599024570227982530344527626176290379613331803935050810385408333015912888604076684870191231729005736988977540923488478647865516528919813961748683208961914545683647332946691203626569725818361262729942664105430612477914903680785950318941630280743051296527773204739606421063449991698931558892991351275727250706482854453592926874530567313716157429151776871026312836340816529675055861017031560611684249155168465241195996432241619251109856277001030068994743200809897875232548231851234269937408939443649490120953415072271587282223689839162178411192011359461189779970243365948598822635965857288702756671298014643869891765975925454036472421335423168328468996189545753929394391628736840369119458085256053900740937144547233285047040712446786824711311496687795255598258751172945642362423909619777377292870709419979442502666145153453413587733283631566262291690635839020688274708078142668243388983105606541420965567375921379256922964718008604913370334411540702931070320072001067268921606258603938808891400149177772273047041426253239338998913475704973814102578614243921208481633156845055199352911474147070736794444786943761043409246003199050182790081213716010320111836851485355820593359072862943543161817865871795133045029082793082309491028556098822464879938192175389302224749707338336236537397713620555836045756398733858973734968711863873610609025444596539250735477440514872408602737313860356249704086685244132482872421366779364345303623472960746217311995833722541048524576034886283242822880066914617846190290641497129292759450047583148435039565282619979783230128822588985041633026424845856134263310545902308724502306843728251595368462151399154501207367472226436225892370447840217085308064293411353148896427454457222933160647077600296436925031047523869078215515704874128869694334364370232417903357306778301709038332810174007254660385372587268514241095649000305299594652044413662023466894717018418135978165383072524390286316241494723977092149570953063821133328097020940977838434237887390417962703191530304943610093892536691072173072470608966658573340823952414200819416894281008489478992965738099767090272569030622424070975587871525451549231530770411434066584128614832775708290552372178044092643357909555210888269613345231552074487857045918755303922491422564918003951411676906693791532437914188342984287856479632760135030607341352634958023935913083851714783649534408526113275878185051266395874606710031839928923863329179742679696274540021914777333410804501136473411712090371515766250214281820528288567537656542053967618914200100676014357758580608338203865587196313590386761467112986660014755661102154127444114756336723395257115182040319889265535327103620121061458553522428207364415540223429924092559449809549160222871972789525643168492789270283583095214491287608120123950431155439380745547219296606846654337938825049777360114553010194433369749060823292523865021671634253926972385306512046730714715619349351726274333298210680867048919704897178813831076565606744589096374067631615296903587333247942300320782882345544358470170158163293721485682871505951744664247251180110622285167199453517359149509111593887398293282778960430457830979054478248471294294713298329930763753981926893270312037794738245667330944899209058362695374238103813742816601137898350965306976760583738122208310276312031866229659420628351045944197831435372706851199725967342891054354616130853664019923178536027443261286246546706340254181733913682422792485363063109175550914129936783887969742283783058470395293747680137815125908524576705180249425673034417140138307715098612110009760370493094281882108266304600384469292051734813126276525347571662613040394132484126468213066867320701574983144098308635141872620743018213986558491128851539138708482232887048396351587637401019950716873624922548813294885345161340671273443642490656275684832396443193204656663915775406568572943220904380469715504929924108710363568382659886159319048288903680544769107927293264949681831130609515838975690942531530849893742542851561063242367760813065886017529968930898967980373758006193649988136180949270302263747630297805357042378614801993323490275741222470267099786153459390512421451758959091767047170426206552077639713397415860423820257658883809432479279961303423974011746492423683251966621196096262239593076455549559196584837177776363290209234371783120159045456255424321163984866073944783019244408829920554275298100998132766767729580937588326303602753833887567571452021777068679816618553836787732670663303093061573669192636782105572527888927738217678067585230185696155217129131446627424699897158115827236270796439618880916956827033208975763542830364117514482775097884064110495378492863191404753737483024534728823270323597545956673303347944540665455885267264078379554520953404911575180161604945864514552569105847426593002284986787138734808559736366389218196577662245272901884812843976260089081306853488670051617948930796152285418331795311484076671416285877216973157645719198730684674217887490053979532954019736817575789288768904200542324623162160080927435781616138450317242803992776806860294094903078495301116881052742344716666932050902222064031134221146937282278599428263887092445913522833024281712875529263514331952158341231775502452543119582074765381627703640116509456824041828091682567643987366158365723754943910709424991949723309923544106022934768083887703090500919613184046461180460530311520327462509116236864826835149678121078050279599048265510594956672780020936699668288466411455035328260428484832739961806655572222875056878468000563175266832152166157722517906745338780313487261484288860001053505161246569634733256612856683812231443336443736691506063244177802693302407860914850283593860079340329819425487802369476303886060477071852856241789289719502744714489099967191279552976252219702774519612452518026386236179432767325949768906973732035438334455631770020824285733383385796472021404847666249146628385833106181856377626950583039916740486180128783395342810694735600883781144204942377936891273085583486382400127211596357669861639586742990069066897771504459219353532269628014511565483179209786079891934081860047712520933812409392129179227235752572629063295597375070827357460213000735092702355457957890853500878259723305885087380982596937863670503834666543837615748971801928186050915692460011007536066756810493647904027157998348151642252509191396553370501220562907232157657062404211649733068180333234411096530271796777330270109525603917333256400428502458259145306968297153078315834677601303005646328570248081338606060979237294449744552771571812212865719375202967490632436896661496933390670400983491145717569048405074589126946064999218557685913656451778172843436456516759996560362026513737414404282160534031712651216671287268013405379190817567107921437208130347028789833012948778774032931010686904259743032846828825351588543873969619464571010279327094698426100032073293790105454280435359647557357535353728518051085979396730959042694241089199720927635341403463773840706030611956885426660247145910005101361211754270385500942238823491012412972312766095390336253815828710331129485993177316874989917241192687397574737312511461727992846277501921963484129278698570581191861371532664308563686375895407867147190339607376748478708444585841141135886214120808076670633994090120111116515046111581383444820009503343624918721852878566695283903402119218358642106601651137057466275226559908463165189615296371372054807319823829671856758754046646640379158360451099617313012058465717497554620652430387042031443291654758078107715904686996367462543358360125484817874950529568899600444158319507805983248077973072485033471987519509743013325986459824850562980907675430954527765039795664038697898072196357707673038951624164582755344087851430906023639841471742594005513641286921500163085844203419434768602453556314341838056380465416364736895432985555241378470399023260580209908320060317129742524852922698259686438047806606341285109725976371555307492806091275962508919353716368449209222419434032031245702870173530500517362889420710896709998598711015485813280438044843438588088412097437937847824214729182325729649699357499883529023307804287675809401823629897208400070847458790339543095056516118623564951491810549959493196823899949738202595135299100119963155007599615178271013477021396232423100997325309417905409507626847876028039524035306435461781244381430781147659018701487476631735696836888944933934534803273605331403896213015458723014875926487784386519274828952736193867486645013081575219957241485082135265271915749923671318705349544233994582715352972453095361369306239429294256326005693098455996535043211545896598127977367340374853096726594860909167985766586368028571885356337758367515956621293527192387930866952071965485436897751619863997421425505624383268456560693057617730670618288076237479304274790273708964827994641720231456885602934862614447950170186594639180261831036674335799169341733190263953722034896192881342049877424374878062079773553068545341166731990016116712629965471268353923188407017187518421373325554199399946452227407973111771601574701512480058254255377044790535696957911954539157831319914899733563404168186460330880677973060634551970965490990678050070533014653962210911292713517584753465979604042457669477872218854619038491174998925070560255168900936881103430557187766910727850514810945779436657825868867360684720209956380072741547543939591787783109458329206122115496792950304569665135278379710237919748489622971260690063290076236382555142124491577781113167083255708380567696464798109112276571968333078278716494642976224493469824975070218589956004327668795980528757644690904948641360513922998596848623360493983759960243130443008541031750604697416583716015925993893036294347920083472813364577193723659290907430867102232519190648393293075232191740319077113564607223819256613071212064368923706804411777929881533861260477535048392326630254149015182498823314253728712374100078937541881194132852732250341904210125496847950345831200272980618821576776591977144232634720611725740600396684318004259915914885421620011908795701522194631971232172660410347707713595865866686442061859168422631245525210454222510273542639977473965940241333525961245523914521892398958154253102172147297371918901411759130221746861451733315343576988967441757114264867051696772267948249684093771598383371943294486979662022874939341464825885274674283052650988625917892583428355541877187315102068496331762685140119733564072154166924271395865842537917299920458979943381322051121805362224410008917599627876056069988761220870604788716687926539640157642690764239310217852199544612043191710844211423167833993466477952517548604083103178111758835738768022801649158361221579987976712503152190440681481746773919706771439038172502145767250452302686785269572294096184617900326489929557011132007582546298644323469060493449142881806724565563937188819926241564417134576690932160738660976149857252999316224081769154157424797252054609339235059468191171323063908198637133270689501016735515972240551840574331260142083465418447373407067036136940919131783062638169053097266744654089135690698486792578664495950419309298125253933688331997459006555556242360139566620778001482602348944903169831982178008205493723545288470922317333358920006993056195169934266164014690224780175729498648214506231469883395411693489814696667435806364081533827769132367048390634324194527074617371162159855438912999962206296804211073031639437440185005792146195588312381248572623903292744064945488436097099450606530012468095696668637705783690540013293393751368211144007491010247757030671745502446493273352660632939247029476213726953825608591991562716523641036645307129887887321691681424333664454510069367771590633160787537258450124391648180522400656165259243790837319595367937768673761941791572728480781950708903591157032264456244219914928175595674568836946699541996975665840602006221327543179475624046271343237958242130107139760054551480643821628338123686651445305634712045139041130150279301333899631520713085346312275142058523355463807102690729533499994268665103889520945756393209708576986948737860254446347818062651799943932377146454550201302243286264156948546025977736640023472569433251533392801723528297081591179944703428224861349623737729550322837607100950782136177400242474193005623580078558186420345455012854644395681653711971070231519909365491958186708023346110849799957489118264340802961115929816649758611999212553396197054694655559967348108633676239606370373857444841610883995570073582813721006380125055055573076777803931975302676517455877696544926432466048519891071382041917366962371231349627118962253925117270414795804901770253154473744143565993425055737149079333953977433697314011257529767304339135124867389551085027218100207223071563821483954428374312865047381162986939058256906689755384699351342107286997636184051410286516894690527863074502152847487965863582765759644843752700447941742485501501205049087838571565502587220991604557359280013294531617981951878290525365108599454553044581162882679054630785285991277658935665284658704401848963954229038828367085289371265666919430820600435333240368548849952092793828551151395452426393995060177322787085661305978188380726890211720052372597648555304394643050635596497544403448521733839750566982878464871705348529212384305727426823344075128672177980576842959049988452691817420572898429458198101198430977395976375649112574996285075497085929278842995430587203012221059684472309073348603276870003958849156296859794594635498066280708164802887871013562019419118069500274002013755026888386129683323960087703483505404379997705328700534091180376560078532898937431334488247714033296360167090512457722663121726979725097826361813090294287871871762762653089729429791833957049484566566681651734634295898113048395057629899933025576351837582558514665764473093762525428135992230489088267039050179126249438267510881145512453658533920942971688905573880115758823301098333547512918346911617472999146611634642971479620707744901226946928567228247093246216994453738132287098064488821521365709742255365786918850555740313028938395901823097327506603597409010794956901842076725786229474006864705644824547178523329243231842930851649579514777492412278705104565110775877781898404496027011096025960606423308099518985941091461585657926708383501226581096197926298325171975803357825170863483687494025486669513243113058957419581317208588497784986827230539197295662511685529922730947648892665357946054374299843525791567445798029770842316852543517208880014811901232547661034699782678365303962853105483455526357187866258155594255019625124235441360068728448521993014319432337262709866414112646063579666783784222250999070182145505817167234996916444090040954436069927585590407404917399058778960124363073455806726067717228519982266211040962189194575194789147086997888128318229668505063822258585498297017494801472563474914574250408430913252629921847521964882968627684152042860711420624599491181152929558974179228542938020340830508691079001298045857018831986014323600962374211170464875605031580873750104307904836301719229288829034379009281063164131760013672374299476849505508670176662215778273506782189484473751236722423999816621979634100113894459066216806703764401715414635713951139300231328247206194845048843987705883736494491015062915554588709197855553095315266455042278089763296281124437316268257573389087253379259911805353758281635674796487742372810192722333348905742776287503463732998511462187674116711133002128712029173013146653349552287913073348395442872795098131891188906207843799619985585089300087175532135995397636498491411196599967464109317370986916371903389332430696693361052917437587854980953393537151914825100989126239507438737019688076150172649887603418749893307620363655542008113587038021293697549483491233493024441289844250540141450701789332095290598100114612068453322035105649964151960818733464251246833077234567867393845463442056821335393317784474943198073098094281175087201621473495888520578562773323568979132146809849880973578140329038835285023147065180922135157825914304975232386420332032335085362736886502324931414517227826732848918906961041944607183637589257797534009633687465424396135406998812282298001756286953172689543665292926749768856937454272316982149106702781086422916028035897996533098294146771902778092201659261404285911620675801632792762760978176734170884398367306564182888199745686534208557134801287303632345363945570084018554902333948398767506410576640684012536916642862223978097548662732671447996844296273918786544063638422397048733607696800118006063849646558776681306056111885485521647615980453919253818900732233285654507801875903729249750454635233089921202645518880658484596692968742797483379972054346938006052254113226566933488372815020203134591324785068242133815502844098032487394832388067604043777777809143258400248025587720415662630603609912935857324421368906649382449237501736749397093649093190076789341791319858325801317543657819871770693976515235796440778510100891363648618792262009227175982069904514091126057375067406184020787247471490475779865643668668866688875193705280351439601062685399890195823100831097442197463031064545656103643489220866825138618230504933286490900283988734013127082352098707173036102066623408490514388389882350290838672352920558325517776944885126376063982741674185307088555368940331183051639607470285181311552527390667524619568568354618460899426758329580812899754396299254413880834530899961626984334738877158783565639940557613539266608055514262180111142106550575936716486542658719869515673679494275487326899499720708314315688312728657565001718008391997373176892814156109015950145879450054532162222622878322607073341020671220352007358049190765922564803364395869453339763420927684816794211044390352267132277371851835716798750043993899010959867708752049343120959679389965863510721035932875717967101327178370249734127216213590111063886698738665088374142383739343651369001940935134667846377770909134471390018409712757029294773756386091382427660485944661750919548065271421243079047753435032501570146110777740383680836971843273511588010360933316887235615054737385738964318974316921001636294988679419059255827145876527767516483889358616873160969295476688937606793465917713517144659123022924222621982323715601562963829768611068846361257247661285318924304218278320013470845615287207079372044755925982409556241780445694326180299358002251854310680290381150467906097028263500328614969810272025825425752198863220175470105912295309900668548907202386302905533890000268877142028349936710368048318457412174488323405496449892111402937658078318346001683388020138630472017659138619175843997098209613957137742522674261085754338622348622974719531939300584032455073660027248632882404295805442847360660365337899017757058202162724147625346645540576447659649309548472255901991762160940587536966943548911499634867187557970689739403299024187169703498799105007876495179340593277530468193335369834975613824758365599532246195151634209320412298599253722941746355364445199868176429335076761871841712624850842586381196788474748099581897886420750812791618638248071870645516642559349367937551699487188490480842375307688318144234714006355503112262291687047980786869272640760464929176624918475666749830245877001858531076017562352883647135966425124686452769700538672912711003760281763226880014276200157622732834377198923437894035182786259217223413231259517222189417035775831491295042571580450740307147620472952661312903629517817510761238846343172694716688639967536589035319922763892222008546088242399964747502422104399620259905933388806862573698807143378067306199649019572818931290852701565167262731574767824250786893647707616032810724815295352430680925459461065019235888643800959128717354073253640220337709112234774384818615068666628197301439656769450794204989625471463560938262856633988833655304139886413479021771632171354111134466821854152366156103527095376773553312903653696580172361871382044171160050072899007546425151383739296348140245872290306213231961474824435714964244966911240559251627526178546490645424505630916143834546087226623165002468562824329876473948274259069044317421943040650123469781362844876279301700330456347516287120762285883445352657363963989271577242604949463481661254176313848258560959303984392709375084769360258645288828200872570991687800779311558990281927501639103958587421446596051860210670222476108329004818971084031720772417152946338660171263193739649491018210605834799703636387980430261370738843098916643117988633652348487216743169269488168227666263387975644254105650173107276831346721048046046813654001966624858128955960941146775722537622599288369917335531022906345279286161625918903260327568370991928414471748209450088433090450499292558610306857910010417646909168582257445339660639541894150491658336254817770204004884320382419228896483199616459470649530144677966219681903837327790250009080984949323736975082005729491199303469731451207426118987555026159310749331434830069637478339388649539591444445173876843411987487032011760544779741215601857914408001625780368455938737435321403546157136711172504050115689433599145624658080099392424948620716723729463385019338994850382478608991788725898346207310956408072020858150763524774195136722892195703116974487934161584659806322244986255450289789921422583818760328707073018453140272818533685569994299249864885528869754662395311576402887398253579946074972024024302442960516993208964410267510706905171733421069911453337281580856697826606453446708849697921790607772560980467350643543334282306679948187316419948179149859497915648998683803879480723303026538379087498266238287572168142163223791557150183281569729127954138208519344799392362057207056005014924590235858078378705742864752481419089963061278753806392166468957860793262415072237035488965621509879162107095929272537086557352956682322743138079938418636755611240196836081200477107106740020974706620241537941804535496948393309096630746295008639871562493989569626661515750446410982002460721295628980194538246973367088540341308584488541969614012915423065423386101875180412662460334203305395421491783738469062462356956405744500656081544606511196539360808254684533976976854629503828655724319937706588502462611566647420744732241479709926205552859326948107286221051888014059054956243011105163711785042707646892987027451535820160193791338405675714781329494221355580830156589859002680790720766643826842170325151538587126247323774221733245787279157324693504110570110080193134705173223439727236817773045618136132065904241529229520059550014470461108913939453754175524145472085323973148156893152107570244399956588734628163051984469158292553342627666835209333452214521776594957878126926035937416959160677300679629227936405802198842818872432682984881177346592024322978624345012841592841558254120483831093676616997881115275953664396540273043149609120514320960167754381314570076483812063587881135852495993222585960186379430038402248116611647557032949984189113822874680018320510165894660380047676506762020994284218183580755385553810086990490277437696810834182333455325308307546625324371849670048866149700126928516746830490424524980056851217815924377563844240605675464281345595159599361389527245421938716892371898530443811839080613195797086985379574894623882270898164416406494228447681391206246716905463897500608445576438877244994710579895134117604229723602511931213246234304992454527807973230270575805222967799452550715312862397353350948994752944226337442211063734798774185303215457476263499926288105538421754646448162545305021826691683246469449011998304751653277586786548004332094824931813474511526475817549665364176698872911437820267359022062390760486900961987061890073779017094097483088960944527855424511376023720350182618741107850390963723306430267873037504851270742068526640545530364412188118567018464879094620417161480237511771404082974478568737342405363571745301948591923739619245792175368778266410097159280014176528998267612926407789155048496030187376019664649720098788410144894545664215166822826991757650178726472895251213352381459651603896640147373368045932869902767442588689810005822316242792618278918067773577968230249006814043367653927462134164050959150117988410327863270071355082254670684357011758640127017134950312641815404700768246397652811995307128058421479296539157767435242734052906292637658827938006779242273690591649930506726738112460812338217523822510513698942450879289837659325144215128155699334496410028633992590169437719091512793996357802973636162167447204885183400955505689111671366356476828714680927873703130959152348256261667213305607023310162942275786668131738683673564337377111715164866996409122301125871628811801186021045110851772553691678030595663705187448387699421019533076386149600038073746832003467093665050340791473199087249869027952953836300243272285259410558764197801211518335536345436781543188775840766179646709542946249018093860158319910963288639279191136277906668489703862764579397636398003179443270221573808015577277120716695598718660056724480887791806140165021732612508340129499508727250209025566548735477046290876776659128201445099820355894904281331693717096329282811130136739208868955315372129569171826424628635887531123227541552563276922831166183352858262821995226651173916453856671084507355460257504756906314713523239466744922442505105707155345978111871734567610697387256919443331557615214047987070268810291120892702469778321674944783515692773186632762641903891861466495938888532475319686352488119944019235670916037979146340946981733962887234423760499561741974612728079955156512948466640841645539409483015927845099035465805290926020769260141454334417388046447362953660114890364745730867599431308940083778824772185036271460489084167698758503185178115766618406357916140834150124360857970152653976955541667341038481259523759655784413528818807396352488730358965167369296498853549179945632478829551060734252210017744020632108159392795264040621570928535863846144392413035579525658122250313652980892413769231831172368708055400239423285933899159948634998829420411322751442928400216417061836774998373852176799166134133505449496378060037498546984505635671483267251674068368733718397798088813132137316806001547792401567931970210330478780559949721244558065594663095207167302022129004469133637580199057604062271277713025453635031714209005578066455013848741285299623214928811436789828539964429128883390506197622018007726340203333587230941753048147187860175871049595313966712806807361201759745927621508835750767900327876415877200468483086503558105846819380529926168993971649767410004828475697681652500845252597715840564958728819637493041172066093058857444943488238423361236505424458373368218631905955763374569614502297689326093949421432336503910661970468230274927752429585332713122418064797855972291035822860803040061515661286054870980953583911870858676042091511662821650630757964735197998807791674352384498699952785092099056103412000616997798850204395315765920439054920882321871403101373459113718007117082739559292184880463423572191912843509718954272288939863429366658255354245525746607251832587338024849159826277983320862472559610529327163563014334348092714287947962821062868939540368377960346859264899714603505074095504906466513823975740767195149443741032889699241299329234628936488652840974231660667260134805164501872531643162215381803039826685757019786327626523815802974479246383816008270857278281384098806493788885526505036858270562523013353740665563326150799271591552593758386848608620370340349564306528637063840881978233467114009319993008619443321235159605915633746739245639792456630544937280483081573629952423245009623851501270047145177041427532033554731830765431787033003839039295807690775672844267869443622705542584263120284067510550686189368056315032263444660755784929163367887985579408376372646922319628916640028085656082165388006987195431416208262726188144457631351936780033866686120957951107397027437490438649182173160385672564844071606445058838062392806201049896506639068606300806221279532015800419847079876596311047518253327905947226660569536978486878014803066867194796786422985437929853787011015803461393542810703473606939769395873811521622964874959905698168325345943672912978004097152956161962466573815999772225104084786893503125567638413633013572663112973467531623441829173664005485060423818277604936287796874585178981387720388362600209992269360913956707933472834084958157447925657055486958823683962371681764538542241369472391469528887848487437083362727561778902043203570511276737767766856856449334110394578798380953883209705672984357316554136859854264315142032361959601334697844974968623672299060107061541395291830154257090636205237842472867046876755787133466542511392493102297523038869469096036899624583260397799800580172208092439491494401781306549823389774225886667317629120063852917153394110662695114048049287909468587937257194382463631474592405962540370946736041171564670871202769970737100473875792590120415443066048557557667333979078281976039159044114040187511695033168313741477877794777987875675073896698536550936095541900588411277709191780943354722648915159597954498644098874121664283418445704477040698185758146386778924943667704904606245324245376665216209353963347643274995451664200884465215733010374129617511098546605338264851642156207803113121065267755300995933702457165697342370664613212983657815961932565109815858792709085835891227064597772052318772634207457295358414935816757605471625279127767705826659327551455776444940813863152498757664144058395134802946352335642649221834658667127837225065489851913289439151641302134634441922565550118661230873549247737086682544759385049109788720317086163000304515268958691102364441007803615366819299906602982434437593982591417504861479920705141772685135154914234893088571530458034327350149028022010114611503749762794402747412864952413848319843051484759868095170633375211017153041179774500462981160889420758912566444725838823902821282817302612503419785777591174556924812146195522512644947021538899235060270459173979582538420493663104314876951952061145737643107363292533106746259604261547212418877127322517484837449101027017097184558335207535485864661759631582375896269180365171077735943104743134448012581744184002738762156133085439173189866105558977868269210388766913377486320457559418339731221776534529713988677106492833472626445665676331575493565140100377932097072608652788923477134971003131051973957071196707826997675093808892431129756314980893737532406691252759696015756278902286999883291431061672530832845220128200927809716125521123261190832753007464540244559556027713142324200566719608388419838052591440072233245033760026050574449510980084595427755560470054408533549789604680613476359995245645545685268746981052667662681694107465505965344903857463579404062159415319621676511113742719215330047024062061921554946478934692101377940155521787889253332301230797965735162226127083231869208721945035177081291854910758957922825710023942356364317700295583521494143497469051836315675959796397391239267565974202106571891144390610111135065465240828488184823023503656779393078290565686486097490470132199548035316225687113599909198442390279778125578877326195307380558801729943757269616826641808025311922099889389680113643027817162661596375703081470031475993190414039161403978628002185754356938493469854773448586941902830138706986813774382845754807732970287786554129691517634979603824334551835120858212975707151768408988076565004327247045598811504171125598973630995150778939202999180656380141627891232844371265217270231059439653981373581934709684048715095368804220327846554435475999615135493589242115889170028425398423327480665959900343691022634483021363814582229428718433337718583823600403807981001346873508197594560406460296220703113572000622135354340165906136724010552323552011936821023769092467614717863326151314241410276166670186879612180383018681230441792770791699055526973909914488790081105922845920948526711770761281723686247047875378712430623621383392382156981849289951204726642247947085903161042046896639025567779858888807902082701538437724577335991846621134323162214746941900370169215564262103630975665132010870109563960722078814772859985195541647024055779135526249483236251003557084256951368118295674055842673868235955947996149199237142440904703143523173734450124848332793984308538262499358418312698092217360629128506773821941664753116213470950888490430765908783020611445380944724324672950399272124705377860313024132469714695973568662793509558894070794587517495043541924303307151314634343333966613655872227335360635904247332061739736097374205843041353109182272003097505613755226690920344357890066535027125015982072584077264745514022461046722227984020634526679202249251323616621483088189326116171637784466381894587799388805812388766785173816955608561940630370512725528237234764339500161771133470074374131922662808326508802935210456480383894864067683372706165011152558687584315713209952915559702013366503156091735661522284132904604860493509391914782215815785392589519986285847096170400675801187268553915805410590589857086061281147391935064912900840075300043984308071725233307030230567926163977370434980502465525386117677421575206441270549341037522160862078266577201298672572065634264758519035525498214619819243302088319366587194745595601021433389433449935080539552704931883256369225045838393974580699545535670998638583253851747300260586765303280381627563211482187604809420634294019453367624895630093610849271261996782000459714128227345224802885272420133656771778851676973133519956373230014022371894149334696850887235681806542481857415352905373655843869258968043589305295929420809045351451164251517630996072819443334543933015736541063443795820123690702376532191446646352351007934118950481460549263937367626214688699058510917076680098798169823666232528890539918131325606554295408481502148052079246990851093539916735211673193459370297692242559731279528132769511616882227505906066596861407394364267418048708016458173458713194483114314633241603530254627741641943946675848647608209392564816968803881161811582688733708966858849587173700723638800038452496100171066867206937841126247442153078493636693899045536071287620732620376093511370043733000535150040165375174900069153430185788044887170008876277411488374041671254595899138890965744469640946241612187898175121473209937638568301855166755442508291219222885596990984648779025804458806126006082722359623830915179980216822230385472216094654863929954968959643322749869619128333251351460144100095145898288720668685585528458624262102221162599967665910974873626518877282675217097826492891483480761428997316465306710904893987053062906878198847531464925802423431301334979286840326791269520644578522979113388753016635242357075697152869170037452455383581252333065811395886661271351415374601740371593260371799872281611186424701593613481400123030864893790319311724817008448349821421857149784746333475055255171770054902291500033508655827166795769329178798330740514532532106943769358190275288665540402735771899843473116538045993610787551390677383263294944490490592151492662420189831582486707954723324505971705157369546649378920296885775335401580321298895638339558302525012213210414082755247659576973799427000721416682587683955894079786683980343272849925036265100691232577967032585221388017645005269827044075621492724851945724095854671178841991037178315651485549065201962675875412699876265018865490161673580552937248840763011715547897068736819814487288830958801652258821268439029831603093562025178572085300325922451182558179455983726295029930186087722774027702574594290848578098636105948041542190151675488942798525737185995619906882304273973566116146717037743528784204779391718335848312771092407758326499252356087725765312082128230650949821974527585527563399188745744121437749159084701680077079440426966119999637247164563628409373601915305721867315031057881740229540058658077798650268621041825350439404820183372056215752104104898829651749947965992190577777431937149964169025867242640910411110034012796715091961634809460480029503160132988035650901038500715377611536056449033308278885623732492286496534180092663274031829359522229148239410615949292416011502032835679841128350390189794036263822756887465539121832172002880280452060245207150946568476753097735116123031794897225412558351685273268167317914785009232622317769511483154776792213243434115565839203869718048673244494702847887143979977513844532086184609582637381380933118396848092656406740079697380941228806134413451822853392690066638143795763473498483820230693368822339408203411018920887668639893844106491252740977938605948579808049455160069202232209337961109871605599783260989726410408139017999370358832676182671165347501033982977959187373709348759468857405931586163493389131814225774555059476722982167567704486646425938445377930643897234802428248810050805180287993672887513202221317668255804273476612067576433211307419705629497012464325668449099266248620786727276381762698848370133225895885505017195735495777864390022376805368432773330672791313450161746552175780596040098596129078098951832538735784877366177875232078856340906144895912200632873221244674101968587418151738787073104566841290137051477866809758391777031214504290460105923946478876319297297835231057479693000990746340208497615835349429208389914940272394539213236624691520779503296398783947698122348480124428867407839682964601439814221128356068659341418899747531335903806606241323289677374889423003858180451925861047174586095365780897908622528873532934820715742710571717625201464207417166342530977751091644542050201314459815724108266890016030653597112944553514327095922205796456075065251712984107134832418898846855131619516257162902380971886300045986381408266813538804671428290116189408465323810298710519303207580462045990963328998985499157298381070916106661607792381327425794413780014430969056749720535651664385460125794021735990981793997181557337697105902766172833324621366234222467374212345074648554920363089700697880455219380798749836540797311069744369786760856313027491293462352129788179652502921361783465557180483200957171202112989878242097306832237684833543659866025972662416281850167068545628571418120796500661225307400129868476519391658714780112886939404196433833433135154816598753372101780392073922499850620518856842096800637907172574581808830934988406544246943622374249612140595768767865885433197687799372418733505103006571926595638740492293463698481799420031822205586496783566161598374880962888444663273620729624919383008773175529591321380735883441674637174419982051502839382937218578154663061083676513532980388813573765608789536527857914550141563483438003746657755692367177247206654150594916746981850376394685886066149856070591303782660865571702679813009960626620999245406168031810476510458867247924375713191978869117230093977248810734716081956760253239285934421334603478512621821765950393523165330778372214000652267326861332450643756075271454055659426903813997004595446717697859637098506485146697341089031031341715305213223100232206373559139162972117767035761145092965405586454303063610254170640126543845586282637247814328309230081033427345263309759108975512561197576601873450987956349080441167875947618315069405215386564743595951340995972806112270997993411419534349452806871027993143166111177365484668272123698776048061374760830218534128235488795563238587758020872050914444270427327487862196620997438109621476999322986512721806705353767780306975496675848483486643104943622796104529753173078411362279245892966526220723127112242719279759932047547083255383604304751039119658385812243196708969399736123028124579403352137401230570414619067060612633571158033861304648357073906770005736155983747368004870798966364236853535773884895169128161723784282851063746901746838385803341779157730543663280490759805632790673335548502169985513491742247340705228491921710213044119824516442133078049183819534663980197775330223860232475184344147921698779517605163729487458177142991058507186895461631440679453742261440837522885519728360076324655550840752825046929386605323924169956482807187510614853209243220397258714409721517632463982263584979322813579105993923443905372556515214377413027497971068761169208852468735176006711509927773626283801732762631228903867495984755289978878121442868503486981403866966563244905275604609581852348902104019281054046860375599711332699552262542875059662593212454813156205732596556272320154418405039324953813893881842421349726761761075349217488958486640609107792952582069248630929558804866452908211848437538497148298088426854179394793024221319089180727206664975598563354434771418236449638780737855139154895733022601759804767625543703146102789986299660967597188701675498260244989957028672134988965461052286941621986879431285482787786281970897899402350355129974988768526742848960137310916710045633137193635374888616431814520161317366362852227897227731471557282409832968894502596687352808188139051600711848305290890954228464666186377250239141174122954420982565307150250137064393320647119641235564486162278472605920896466083570755714320632612210722900684570777769808801391759718509213627730257905931297799659567483933012961402315712650643281984365376061130664004143533026874008641595622170899838077617311844381586466404709891258313685106309064133167640904996781869065137542611592151882282630712955793020312412180574058843338020124659494247842554493275229291750422114569928756868833405589671882322236787366578236120501269450990138678257449813134551032491268683816698247854374236238341781569830201124005432748958258002903225073509890785682216243483824682593153946390235017531478837880176469637180952729155680839347702786235833702253925224236385568616689503897515303150703745246091596756024649460552887113575961158353888728664434855396263239619429416272421522099649601671482588126397037735848033196698515881947229333772078493818785427635690518310452913343506941027540188673792234100598196774381120790795722969256410477641777571826372887821526289024522258153521077166293344941033005504176477781213505100527937597650794923341158376986711064802000990690067677510170904310180143874788433651525356974885369748423024895347786368951942762682318343345660281421536294058840319747601562971937849418606846501722130073762097251554679960296898555188248433474018842148129600410569836671777104078938681555133242272990717847768474729983126358295711180581640396313672028165431641268160068571956826537119483073368795837448109337007096207171921946991151676734008883044350715804792234249829396272053572294467810257247241938203975442557457284077678456524993837179666014862473665322794441521775863669159433795861327756393282581752484113874259091637183499799329918373910520193930163487296928099475849949788916652398019083364887051499112303850442248663729865322979972103154608818949793446214426851253392793281149639353888963928705802190952845428586558168544929659988758662975108914862374821356069112387478857218109598311397995518252116497132377996207399115005400607796219216041860126326520179334063320255662742547946365213448494211966361487373144055087091390620441521681470161972966861702495600911966143655259730917650296725000112038957396954818526525472765958008440474131427155266111749296269577231328539365362788874575604126305734327067676683839515506896149035563540986039566367484662261460887740877098499068473187438875446292391177692687428297864612668067567314328142941436358123873381931690868662758887220275241613022734773386129164370148057306513678356599165220268327769689386176602942606850429877036869245722769512455620463170666595354770899139585225187485593593470263610916897123237203562503540975718184881991671096309299002087027549962426329385746650243046549648325818339188798730074861640561770831045656950765197187201648653819413878172148988612368383125969230910240404627280341877997800733971175757085790740093000958176130290994575181809065089335825761247898446914030827275116771059137736636513350785035606722440900580060940691229576369300359538215842855669266865592397934831528312404878496866643500973910216620116622033389765952955186189437416997649586568888040687901221558159631660833740533449980168462244043863474261494969601742348408105262201215469013359919653746135248707793657707247002983583370667243077203649847308404533497656834813153788453099974337414774418680393916581168494363112862525996707647599943815207415563379941147103839853836606014796965977382328100449435714533039018566886767184364147774408047306225905503394636474708106004797083575483543645837370824623872534162840139716890133890565443282063634640834549582899680538813764110448804770206038274781697624498413915865346731911086588401276316129899257242685243155162883667968093539121658266050808564051110258082580378000272101239420665930530492143620714796670960131268932832749262910807902890946156538550815355227627900131048922665167651211421439573812792510488991627200178352985150006689207700303277733413805442372100595270517219052745175266382361238291731184213474975037915909140892946109220652014809219428522606811206149914603090326050828412315231370709149042982630496653171254625951932892365554387118881848481209106441609667695803010650752140345955842052047579688356662316086319227030962281697261153472912582722054481137080328277289378354805407545058841225909210506337428308925171855623868202721029573484129293755289437196155945632190145584881922808271236058709462403288689163762171600243057009248906987956879985867723805207138371823812411115083218432211094134786290219781330818000546578021409483636270761450486583559439005942249043006778923709537381966660464607867129789474425877660431302355897887354527761120820115397097739250612500618432402272298260191387440751472590978166924018472304375074665202103376468549711506909394305347756245948399881905296699913911226686533149776819501584087166898380310039112844480579303959710688871632022654014506930511411654500059380226288485159068475564307186525838999304365332976500581558789763192735195952864066132441750530281281366335434981261224286743131969466097192007689983808420832508183602241761804088114780717548075267806907595085036516754476686420133774117060464806092502193135683103186898431722919925095906079234432605051465745588261942106937845851117424883223469615499397157486081213709742283232011444867732374894966025808166218104946045452105331198985834482132775047825975702548229885909833536852448569001973394177030278065376000187557632296982513655938599983603379008983402982204871042881756742500462595244524620719511743747262323824394159449083811936293133634486010972105476828015678695898089781080281165294361241811985774122724548314059183333861696695807545593080077898004189920545651784081581988912531677509027745024493535949169304349677708463585829906490386517361375587155499056555476167248365416793864922339526319538763769414879033046813417351459782314250062879553977026992210367973964767971248766331693291421208667481455581974999947413603343272206224095530532440609592842025144888214959550712191624547086933722093399928390737605865225516156095392166114658301847433006772226974756348256195013515669089389630643879420200418392126217877192271327224480668466215824476407898145411152295924187081403878243722881354576206488096999522694496341770449482694595141858334593583414509325614670396317657317803305888690053177707076891265919462665554448324149890320892299885227683004631314424062909400224163263002498702335126353773493895298362428608071187532670752724602084695746643738781615499090845788564782701770850412480966282251281930253952728937433338294239418735125411205977111393845439338122440948786523726676751223226509727957449946709325781948716624146387190657526849683411215816147041424413193558781609569786558435887192718406588252866569277249937589528220619933120940656830371756764594729474061632381862164890691480363599009866991807399805095617325388928956439899520873619465916013294320650690526621852732440986592003743387918230398563575287681268663240232260122421587910994833070972827019400050093637369807126680324727168890166668246296242628655561043078198881355287978727457816820303421077422506879842987881158665374231792207892393644964005943321059666167512007108564278535492107029387761131390015095509813616159650341625706328406023963926761140759044158348942355585130100102178556802069794636338055349283594846405199181884061720829082745877657028103850161867568089179562415796396347353391767253442530142544414783708070940418676793480393728114079685355649801964216480179095372721746710017230626379865895942344162157076254740763707552718477230957193054624205005069852989858761382350742520419865070993703968303050950584324142171868392135339184794498144048908966236939364928677320725882041562506559105978756856641150378598512912452152503869208704430363658903853570641591624234693780369883409938455313719338084624940072741897095006752163947514402852161758649700355415754208414473904846069530024973684179775682172514667562048778592931050248242175184369911472737998586852058189470108898890464646175117757882885394207016073357664543996676122721944487172140391039814242320690119044293578854566483722669488517116593757454602160060641924946490272142544743259042662837398091680486452081468580832434122446141925244981010163372863354512364527376839767963422813489724310233338567807523864991620061457708854153742787066254850577068018839081799603326871480437343744421401258754843788978618453993485085016757472803804460673733674044787230950401400123412832899456951427857841761689160418529691602745826738681266131233815466453556001688501470784901131262228239624812746463276864260335042862357073776942572429048559903914587366480526027066684413335385437236941762517208929961057878729409318624629619562770095598027498532013515367815001676070024115399923315427819380582173863432493283441191849700357477278077976909129394431938777303575627290233912125461414721652992401805371025233549416744946119509869974046188785101131699952407069281510764888379406978866012330890328654971327360427083109282078090861466995308100647981488600049998753503699677693257744008875816295580507871006700014979982533969550514419286895472063314799861306352513573700145181012396371472792547989948941340594553404629159143053012354684157843889792900224443202310829822931083388491832962445142520615108689768178412517081476844495417406556076533547077192917898827955174840855525835182115017050309268853167292603705379336990891617629953579250893297982144202281191387062827616764635097964748171441844210229030447979497777925941110196757686187346219550714745298635001191690914036087314563438914467248359771899208309163803565976744729213122104386196550601118078980351940370791956344157339056981152935940636233916878352708811380714209427790273281143757339154383631932501344646001555867521404782516643004021453142789823583253540792379984498430503069862094970159905496437747041838996551366555292644624740870571195888149247078996954251447330479079260662691016365110021913180222420450269507367970418637730661058559051390197684715092695776323265959410526505410943351364451358819039882790607632542234069075466261436913059884928003172223376031264199787964959835529319049610621057142902451849217320155643144830776688807067959192964692846826880353425604518102240563492636228618405316449948149324277944685360364329065858691157271384850976057672945768809430132939756076713289478096028729013524522681276931504747270877434122832522932221369413514562860632646583851730200355192488291371111470116444429966609949476514469604138502414338430113760592541051316416672653692444408557679814770949762651517794440614738097609953901783112018213028742922925970238032319726340097355808469725842844772915930066238872882838159942681136944216633497095480286819908791281076888590145056058162236758179711408893126008744222258973258429222142783388483910369090108558374268609157868985446804611894849507955589477637475819237046009990835261595639546293005669314826809997707791969829780309390865434308436763094816349720553468691403400305839634482386838742987611432989613958573482118967929217838090391809733049074094391747832722006370739240956206980327898579764666779382218320737689782363633775166484837741879528595806495122936865512369890761627450426371713991354002170404101294857860950984227904047440516593296942161747176913703419321091330381884272015008733534688127535712035805989343167212234816242672802821383730582716796711702782360807272175923709762618190080959743301247060628119541810937998352224776181535487616017084423096068594119595115058330783666970509886817331955217855033855682704168530987471037674214379248145244573413331273732182541034104348772698269164041907755580642119947491138872694077036929734211823455438953272653297255980239024532137854819708146791924434660453928546239044245685596922093292923216069419924707941445184667241125651229201405158059768866680661800112843836221373057017060348226997330064768591785557257850875876049714852134912252796064427540016249464201508306241565422358174552213390581849002245660679896231155353169475901667327312666087807878008498277573113811748860253657001956064460793297769671631691962265191034435143912575234045524938305580462541227401506586624214363884372794866615707262928435287730571861674539022126006040165333167249503396082076942649314835551479663165758146422070669478964854820788081835373893756907437617533381436170794375058545282619571690867641956317139907818251094144580293696559431178729919534192155670832310226290618459736560482473374865526357050133398897348714213308310169751423658386370065987423137996349396177977149539984342219897478232525786714465027506083663093951127996120484987371104364805307118826609152277358725254419143813317794631314374808857030335498846026373689466248024671612951643103928769937612495145406494070834895523825434769821581625306480912960338449911005366567022225694138639151412447323713357211759076193236295964145342801635519989772856915437154338895403695938069152406687595482991592556773311600851391197698733943407291913276294513730315622776230272327325910282569384402168462487341005069037694482100435141927727424178727289076415475219951097989996210625816572238671107264814446920911708684980690258246037412913119021844532352834837859858748483269512752431882447025950503041113510371351810081466587977135829620186408846242426405419707211956729004585110609652723974377648860744604642868090647078853757079859729878935925523662412880263843181885060446401307242621668224467363096409390383862501772462078689516500849404632458939579066562379808921582076461566760963971365228543207673413168730191113395821981444822498491812272696450543251859128817802681480956748898735277679971582303038360275100061383986488840662076256750183090704540451633860895933779706626344631001801037120016840643434890879085667093882067572444554453953719688568137074494004924356592392718261870913801258955013820884105708289347951557995336204825766567980737992865511114651678089193497114715319243694262680959473261143175748985169380771358321842638726336820395828330819313384708119755104376628078791865196071874134439900943501284523266279918000045538733057419638575361200429176315671571676922955342366638639027515267732146464452706281205792624814540121301804748138424237150331193811129474978419507578016712077261885377179105484073931261777403839017836393421819769686716866203132021641467695451189546717727365547630574612252532477368949233750315823098858136662070333162961592976220071082669821683531861109127305449546563146855141713776175628781114263810214133502634481155539756257155226580872817365551028332677157766324819440157948312718070432479558792987301602930289140939867803892709684233643002600004078150066298385383505162305718653925424997157671419729332360097727532107041709250264149263406488238916546196997055242366961273247698857984357756701326240415261445482143599277127669034652189543283785610051866647285494476663100028235550348740438369506716837834663690584624581071046300328972428520071369512027550464343807271273415330224335073369203615680795918646262425446113704128206423602820948083641717665194334430643918968418453533887503932902261094106612251656722345333975017836368479665560915494776269042124070750324435620067230970047554103796241485326471485567947327902217674293835966862405539257404858746128238170968995887293129747480167118605054490967319865997622616567770891981098909332940648181976237297652709970810054794264298974869241011346796064652316525871169309779104261617436822561102766762004425398394027164776219187256037238930085734348199811692746982416046867500868001270684784099824572771155943496452791925109645843459339377344111265265862157610261159337967515029916135454383404368418284404834133605071170724432843768360451205972864254923267292366700844947131661183250883436979950073309119481811360146556877484273894844590133867000964103081160235723170603823001656727638797086055059493860154598567681649734416511884202553829289640130227674558968653921220887217923383378892286113234937773406085339655929386914510081614405940772971898797343205533642121789219410564315956317612431881349309228867645764852924830306170402560143149120410477161660378908359152644180918823781829665923639897349184526443687040126295483684432424208817044731266694202034000602017110241195894799749919194077911309341597532591662511573196452800539818845859209387857293548893968932891660970073434729450808541011209074854142101165452896282663312406955011156348110960599980795690091765787674183352453211456160862276700658422620221631364215203397037904351316754925317217008747689951637300951669729098306934294516131002183464306520039121027377736458267905122040775503601192259946242418469049836301035855895270268636115770941778805262458221567460739238886460401857891870829105038311876298151541510085794817253960031569744044514510178409707278107729621305903850160878199068139844960102740643761678506378506404250832762615027736050709886810440289084508876528604012101021921241578363604186520452194886011257220334113039388331947577433934746429349413681354204737200967958791008939726388349573309089860259170810068472214240838075760845767560796388648230117902181928536358324117318532140761445876530514810208989245633334722712750516807039283600771924298285155626750081998210638207629290399060084795858654151022771269740094798573554540554039054813650360857485976436209418645823059551859585474150823842352775883193491029450575122504497553986984083833084210811290724611166559565850860423447441573725204172405051703365182216123334811715937527565174248342421271722518494468260425852639855025515224939021362871508225294864602737932271248487702313959595206141101658760727008205388079099744024806318464584977228960455170122598347867103609307814584736128102225614271898413098228946842765744452293873720200129057000754722371590436752341051600550654777537138695222587950168131698340987006269180837976166536039918279823949959069998433914240227612540575553123882158699618797933378202822247953044119093544271570831344771534704173012748644282635832916078316179452258039318980966499392055658289746360573437700667733038534243375125937167752492734182024638289234170745927174102349187645088986588427797154676917060236466931273265115281927480095633151438289844485423411876260570734588989994093674114386399857828350061116966738067423450934232852260857880622302017308995283897863962621355586530181848951061375590459040737640605198267399713076554260181023974062042499889569025954908529261361082844234068374430939384875869438016495613620841338766246154729371897548955068106446397222237688359653404722090388903766326488011174448863866064931926215546365696437488887611433902788860020584558194193467149468362955914174543847256718763301604981588582167181967100741989810589368078020000008214551170769868172812578359435959224458968987177749273841469412570906420389375298377472142282384883465702072772208171643824803195570926863875830311270122235529653767073878957477043412492252594255105167923920547133909638191809619012635718687407096384309050602885257287196832274832160260949858404541890645189944443993656732023360979308213935643136936205632996639552038894885140978831545182558179966107134386474651047942791300174732109118901551888979024227341395664972249586627940809566240765117506999059235226322088380152024872020265892222610705202599514537505460251347020533315256091497306201720029467114900389958162899355121688981838622228408297610163337160003166427736213992276029162953955922894925162560380096984647839715013889884008765403604141377374910463172983185202968905859465992362002141819562319860872112041927227377728037363372464794177675973221871208402768512436594224803011447975721574745107757614072897381892127339632704097310729381025962651701402589273687287630495280784296172448156226146768626597424624398082651896348238306801500552511191833346656376599403936978837206677015383241700126966222496460942374012161005919399263666515961544291300877717591301875516631044786674692068397467418538565812080686707954124594267540352991765771631047094228032392597755687548367703554336589228914335644334880156413866912820199867233433487465371736419134600626443004241982999258150819332710836001208113446226532208756234134059412360788560176972086612356636582946161509025123741391330028817721968517889542250488429089104106242296921888375289733346093487321093466697446614822622867492686793963189777169552973771974318436711131997657102793306148757887626634602011700860492115294665942330715499254432044802529594855819017448056640269216218977804621715113555559535334260191755451601092083693355184695919381230782929890706015400300597369393276721726020962286928457133393920932682044791436909003165905804846147103111169140936662505916605429918131213136694997900846314655534455576360782282272570682233951393582597042071663302974184068122642107393511648804792368364943774179963590165653356489904799044703541098880015364926332288888952983338028174743384092632140417954562980609611305492609887862931621096377823275294651737715625255834918768758063724495901705692943950550199710593721353010447198792566435452945546273209404136714945627883106830946241902733421022537465242377029863735671822797080975022834789409009058502722644039455089716015882042138650352243182884404732994250526751012802134084549926574637101776792602635647729043656664869191931206339273937029144571689703004645934738563674494233077672051557888449526378076060389470385716030276204822715138731413215374649697279328935267169072413456095620508959384381048616217569017831296286982216563282937136775248811290852564427122807585595732520980525946079956337080029746475755908115988487828500156783246772799683620027272730682745264953327347541743526555488347401716748591283657471752763482606311996177065160619304388243570446040430105903633992287227490175349893512023099464648801843822936746413407476187867611364091458680100087144236446612896830882017937982147921316934570512537471407246572890198968081198230454780540034433428948122548436549452995560657590870066956026895397702761385692450213618144869096671981345744145745820062656412043352296646934522539402250691683912572132721784016005035826694605351331952497263727557549118020572129593071365437695683900040643855455207901484726333300280042400910650810877987007796633909403252129490081994003060534609864637136832781850013018080680018199127627926657396347556927358017921822386451767222827941494567864214302747061646118766145986957766347602354626330453568496188573189050241854391089133719225194212145087212553786892267091520788433570570308718455212358822070433231198320131370250142095378389862605572270953751051242351273689680933957237200466625543606551201756958277084085292243975160110036592166878799030712884754919379119437666011679538383227777439755923306688388780161403469850868998536602899907572071169022424647404609200763632923043740560248096403170004078367974661374962644645673334028266062560480574538434140964548643553695372687184704565326555309521124776767841228410489036112356348807514289023727403310189702110118552602219883080427758243947652767188132809438754113849489768345142773770780259456377320828839383563544677353771512195916386058865173523197788107084788454116020208311113230863607168739775635044889961075351303738491728484805287148695181597123633745507075343766486037052389287518285784164280397096268670037254203716489913497339388005264429262321422015335432885254400070207346467049461193298697813718860833256386978140812266862341189260344577334427180788852214178081003023793777149356221854637415148348058404814356951515672959954296635284606078798786571147976495826322203128945595234259816267572025535378992964541012695243184705275985019901371741083382542428592493107342187814978581312888561096347491377995197249240805505580568932519875382274565438205555140715579600705765166763805921295906644414115229251542645819245612825068456698591658810103096818218914713667200842412333501260107358960910522832758821723493056192262836248195722818768327814635451007826555923894046371644040299800660083992482988257134923531055844557268969858215305868073884741194778453420487093672408383094242164914274590933440760930602878839022360719964967840593468850750384231241015653422781325092786916439435671441909937482915498401621635173862839217296739220458642992478848199490949560881344572309905019391000412989275690841672044302563708986575434889834389724625962580570052632957809581667153196517794945243986458028712604263436325903563648434609907714720144601703579975495941905980982900536174685738515400727619959863895371007481553835103892077533820891140649623472163072597941760990934194872074778661013994966878195451477751809698059543179541951996904451984458839282487598914795784857858174288935889592084144068386135978653590842539513111515411890756215331894057911493410458549077702597599699032929848854877069321230426335957916425064218239547789285758676490917985877185236145128165416932831363595616125044205863576233925080063092182497693216816821382707405955142650835786012264045836845842228972851631011357900828266469591237206933364112246987122458262134860177771277862275043446656396208205619140842931429376386491568535717637537091049987335603974457132415845769386635136668031443072842426666869737336286513691239488387804025073285682703202303652189168290233858418122353363134503692985743398151403896177485550379432439614740494587287730745754763481346107087693238741082855651053087413870104716226366067778183176463258048122768336500568655728552386492497041092876449864022209281742695515854654447465551512575214070698903630208711342725636141247733583135643342319014082429390728727949801132911544379297388534879443530212894974102876642547484092149014299718965463409500686840786182678183759430469570089505572512434897519685810089107471500026698214919276557508927758219416686568812671153105001478482207570536394855602051302717270235609619383022676937473427223192006538952872892897638828414156610040023356031109901459824205014885815351952848260094678404927221536096225105332698595944813051483699067487251204805843090385118734445061946669823890019851222729179937987653640049773783831283837334576538796810510198239485526755576933103639811329008845096562746886734442450887989489642146993420847702085469542882622192423150964590192407187411912890011977458504283609613122302682987868092163870220481655134260580631413969066486090450309306458268227261312146936945792388087627152576773229793172211167272568286032946380107325939036207530321448141076990521929537437833626606984763412260314087957734203285565472921893978322688871984160850941386318766886130992242299612380593574037967925750665743522632725002062294393849587260947557373908111874196221345746811713519735889484270160658278906170216339062951740985487006713913894033214534470240400065002155778789514530008332699380286062863466698478989039056659240153678116138031917063374961855752912475079971157605552021958824993308428133448717112955272783021482113946444113963422773026100678705719769481862853124584450372854836461595694993576513822873902351963854130194620693643656224818358866505264021735369002389110343813858055376696605297143408037119404749019363499200429507412742592580451390773214157651734252341883058618441029380953491012755205388659014110572128093281311107330457186169108099757262339964096717895101511074017687341825581060095388965037986548011520736090733933528492664851025074249702892543492558874918887461473368472883909696435292715674727998729462019267876879032857053293657790728901734220425093381333523189205925839122964013745040510584125562331763143453653460910767495589619761092739043666268011204692802496423008085320384773786535648976942377916415467235046671570516634230872665960627177335245990099822060701872531608098483035458267537046027960584658946230067354491664024885862374471801316346003406030682476649417519867968349088886558550723178937925839001202330281806892907075352236459314423273911382248284429025008368501729298394423756903673147663479907640952888645889914673716762225727701064692340151074435092310855995516411027557443914511720000106989514441095627164092782868822531499385999578296403153147750549078784880658592134073888715902971547540149206999777340187096881024909084169298435858465745372385349261164995793149270358592112905587172983422358702225032178121825549142164879027528817432305970095710692823161586931635526015888801302725341857697136778089155229573997411724883141687673912123368734843160808624447464084632804075179021471862606549523217063592800832727744211942542035241915493606180948168877247366674610031641118656558426856682790598888408677646805216213765893415129544673479836968607789707822335150864289658012280527037824720004184224732036318582386824546150752635035124607541556873824644218673185201410123093739493723509554342685094995424325902927994185461644698704270533395601944996201783789680833072756315044839444292939360195087144651906430601142538750705457518351642995105340907076421708265349705089517108898694114904656981040204566538917249518336872935843845261706043515133059752062840746671320693208732997642965720256340741073144540954298422978126163583576143887672288091520691508365442542250944778195772904468582880523369394058011942217301679941490304196697758555186508312179747648891062577395079595879406657326088644543508629871140978473081762894399434873829068088643763783394011029754422959326436739435702156257881854528606522474835821740937816515315886955726117363165111665080340319304192101769114062935452859073886659599015282848424963150312997381126101052108092631894868264705525618240214704873553557276176304124392402412965488398092917622631838405368346673529611628465059633868964704852064504900294224111130850093670140035189260882537546941855329393902581137010499699958392643951994089901513777421747676104529377654748209163879659049061366376877235009483643202385794468853931607966567350590598962396042009392563857338516154126052865555957562587391595427548498011275578451334940879251686348068474079020988067389468199838846693425025821534150253048126583298282978949866308215194573557596209419311245069289637694598857732413028912552397454394427248402765287740220634656766822711274957521720662908156376515583243669095186687197205326517434272277444454365982458343938266851151559925327275693742214798240952475783410000642848663908248498267537523991313476972804979262247658011124055667428909893576943375771427700598682980969575191032123839746170953954110432886488869379341443670150950785189508861873049762564791017613163543711532902846695654858466767584627130393104169748073453338751078305715833116256972584240406640145007933449463101982699770343202653497701656476920151154831247381073007918118114205259228909404898170518590272716817313084190758196890009949208559523722442816856290477285820911467076007907945009002005102855635575376937763463724932467349927604293122379824688306116521976299540494135868562057037346660230534626083662979901390307398229323093908220960482810770035015419026882351444367455304335845186126774918645469036876482726431049059514532572803617969560079846064544453570089004834775203634132114181174006697607425193921495394241059078773646681010710934847292400443752888976594393192858902923582194218569149601130036161450049739790975250257191350791929722639699224001038137513383902518318081051658365170289183990483976530381540251394139453048018820437145804398556966661938438601779439736552385747571065589729539372375363171825176505099667462988430217843601976804603446290007161212799293032561252429315757844908510421609474798612740850978726029034411940756602790865600377162932433348170957558101091611457684249099655498898645164094495469942820194578225991106215620757274074208328577405667517538697934485449378382796205981842098429313861053449039729419949253558044134549574653376750576364912139959361373791665506759003109017806590620210932021162182026834706286889180936921300791450271601969148722682763919262536987236454010700461109122492905267648925722668959104722671938130028838976605741135530281031243933766336328745031461418265571680996572293044182785347931312352178712638933162454020324516730962592495909286669582906109239083232767825647579085525847632462065630285639648128074684388098227543305850571870608355616136895451108011243751822271342822089114021694389015622337440975959561556738656168666977943190067077404584723299751708783523619413471942522181979964212769359610452830781704914618276684519324388412241753532895479363767969668792720006037377259300143612210571204959762260767678152529183587596692057893393982195082255043796825498219729735868949033199434221575532910013649776058299883935683445195116333687671608126643224341013831970505676788395057909647379342337154315211800652393210070443049931164793557028099918365652075384397341475840977517846516329862218795562756703377474927681913159843023522391889409553601909279627979452479196177690797803525393056801619182389203797129257113575318210046523689662398514084942349770561629524330594990751814184777320138700958432863174993419010989235143267515515136284477721588049138884332125149654773176273706889161288516011216139522493688786877682601988180366272852226470262891264302346821643531201277499382749338173253803188436746142358366101681252821850412533970654439826088736995551585515407886587674380806119364656576511651755770788149234411280356851693906123687283144453226575398707480900564538960378287940566558327181581617195551751930372031086636238065542803068915106723229524015090861173231904709705630063820395726887323025896794872144077895737667547298592092110083895860560257340808221781848338120738079493365564343307556476912630063175133665191607990331738301256051944844360219831775342350434330275824039212592559232881491286832293018589962607065258521256330436459126355638377788049767191355395658985391967868485950306697459558432798461023582994906649433091605969130380065098350809961099068730298914829354897381385934598507655746444881684792035689948814760990883957868555949829909840573117910386373665512174097265611738095261064491784300182099681720732020359547816803758646216464948123141565330092958077701292298742486004256314344457270913201844926005988910174560830104009789085535402859185299059242761911139023261670210733255909999993647357520166469281746085046088803452397227223747340707402123230515864707539748920484010210696933554984232660672895570970140362192648943361399459015382035307903706224668554773442797690973799146182702911092819535914939964519640061082222412357394828419299735044853107969220058870793076474235773652415187649613380018814092767564531066158072070369814755294285460416047331746610294502989085404424691192869154490431548923764784252130217557550126394475163823007831498599951099585034299921757643594686957695440260267621378153031908800536235269436451171939699286821611792347429696292768239866643925094744307619693604564920161116692848780978343175317970062324596641177194230247347682247124443740805667001504624239670581880600943642865395988875762457021404069266039879357799618283790113652963180535758313720303287026332075148570131395312286609900921064081190195838589525344701847866822832812946575396391345500684983706843301612393551256187986340454685266434703398354992587763751159781814020181133393008333722508451260271253533582288948013149567267073415354859148820341989545445713033275348024748483953481695125359776311400203954162303405722984933846290510580440753398180360740692848883536088365790091533123177111622361552897887973732673133452711213029253806424485764865149987361855688903525505971615348617020677459272541996329705948312581039242581917544969178269838824544785415707289502475284639298598484924532774880424281885565309346448512177813902865158470260178217536854927064930673459623094300996517464106164706241392627080342539993537397527838742701150551842039901168064590108825180980123258937019834597626265689639414707295357766674485327407403481452463604834421939492068441651520402380289240884630394955008786350138914540775609443787232661181553372909172859733726575635260913215932858260962874657635308722571324182946336240587323080967183271188806451154958969489873029215292269845436918981518393281258951297147026739488211116594593860510186432927912115855194658949679582093132727171324758417418892549108449449869123509953970103809564024637060579005621546184371328220438237321858145023559031909361548737296562574815933682200197652697525388181555008203363184054700601495701270684119208051107132252927845636113484845905945844892945528500964578372179511116274691211957728350009442574736784990019044036856055976269761074311686837753136805782316307269709655429273406014878229906374095405280006312555968945075840595513104891229804488634754768097169815390226810054619815016690499491873418460527916098865356071474883907031937032294832268852373466847739307093173542857719276283206562727799266742987001271306582808178430830875482798887425886032624489143783724879178656385527872040902967346804539852731222471132774828936343338584512485323424441294956117186412474429350162943047689751599818289392643316032186185916665722767007319297861809554553846915369026405350199367722489454054404826423145822099881450435407025552185733497051375233719042840487883539359388136553669855645342259078856845679998288899197845781075593837846953923522705119534683776270574661296068737573282067209165248482962737962463234235244826802880570923634285175326265344872976150185069309942398994890643516284307389822743682268540036291031241231338577014552995795651079519125023313036623559034145066349315223387683593689509102986997422375713838556061158210309701306320249460601989439959485932523576458240747743480945011463374737706402224091284274349760716411838035442012066635266131656666913238500339305739917234414040100636629803188669761464898795572951319337088974011876703675255565601693569070742111751800171839247902180923850052042292071119531754785236442701561217251483122380238901740643639853318282847441363082995723065532546047852278925452001991370558053551852527748766470774745225556274845443904353346798660487855301610726230734162510279566866037156364130661938130413373585564175297205003185373651301415382193038273292460755840269321700035471032956118404303574089907555003905117316140275954461341133891591625511462678714816912444373261377687764376506230037393515969345978953614473384833742012229906870250770653812925375408727860995824081785068414366772460666803862823631882477404601505768016324383698049861495828017177120934274857927237215937003287176322129621523174558194621020169171246196161724129450940757419680082430663171332975433407023684852114911216488276009038723338309223810436700990232156646900256452196357195575158178076285302512259277748970938195780218937069490649165177999519896014880183770225515009229894137844030393058792648731974780943548405962543427245507206674914580004252009129082542527899128535696857416319790184301701631070465827659504347422270763439260353080190383004248252973363629899098246156267708020915973191020704498170138067339641924878689239943068806099728209148022417731934597932791435475505521706938429727455806049440520613341566521179411188180408936577192846887057021281370855388745590114954446604014126423864708622639647132620393454614871924025754442664560882965008355412521302225397998512218790167468795528021830001493171589607403934308186723794574044267015660672911019682499609356680893394257388661763647262355393024102171519356553084884053131386971389030247094073400659893270764337465979496660704597634752501783370341322292271573630820700771612412767387930534571357774262102666417538665604873851522355943001155985065000797785988206461052690886639413712425649992892456626618148604176166715550820306596528161209324481317166243334602700619777992857120029071490916579510826957611255635927821170009020237471857502885617844147803023580435585009456992075654598032296326973935856843689439073178934762613366111039306196649568747188455259979027402979161396102526460041023289110918181243467759525986750263632509263805518071921837498166231813554196138888631343463802091303485269464406411348062970893336059851471792325442300360886595130996225081022643586547461594152669175518471459073982449105254527417621336086796605701488284872122254984635762891189416702588882585686278526159626551116228964816670249119541958570785389078925015195056776644060761781838102104397670556077454726788483924470270451971143158580024307172070884867886125491661640543990068329501389431528415731264135601604448173856155255481350810495141642227052689695683083578672251443461897504296417023127537261918758664747904654491999373247543157358210755876968224634599971799841988649360889596051752296528873484651276981309227664355310502752721774306429181713290799248340716128517328570942787919242954785708484646237961050173677985632097492211741711069627519259303824532915163288358295835122365137677429250405950918949289898852699637948904227999130823825192525448767796593318513120188412618082405872387195284554314050203891219520836516143293129517803715920044059479114429548593336999198071926425256167183110344224410626229177415515780236904480238556827130757132172147827355174218128253372364257039098683589517584667329182013543146622977104573498592077809545316948416907526658387849757131067841036606732765609296960604389596250567876049071144436793810676591744314328953494726272151033112779358823821083172415834261282138161016971603658118917853924891501609171239777533972949267580416220296398573642073434969996637483245549018148517041107674185680292813545027213781172094337787073937215452740298230518536214905098424181134899190141715751610890107490864200785926255868182100626332670777977353600873231344601749911227760161085394650684622235407876661646617301879963717026472010563469576334388392715400706147173500677925844303757833751999969582787674669144333650083975013287624405852131231523548441463174604044186986077390131487964791118397349704308949329874016401786381301867513101129935240449522453325864498344426950488327364221479777000640491463172543043727550413861656794840479406311057853593325628073652600064636188400434772318144232933144632937156754070043977509884764425898613998154275461596204597543280585080630858169303324626238108889768800695536652440255149381881335368690024423425350431439653000279870579620836775221668803676606979783603512911402620048688648658744982159593567563095945548892711109016711722849081263920204052542049033751227116120361218994377901818519958390226133540119758530888306803895577207657981885519184757374729518030007907228766336899510050566625073845129436831357168425228178216886945756029323561264592481240988213555361498241493180562124355991952871094468185965473086955832491966030293665218033817239040700290970848624978301506179062661116742687291931438648607559847925910354517229224560433213421511867967354245286233022550030064049708163709719535066176354883844308301224590106089611562514408024736789174783278447653468109984803092857557775806301458632034812753523768222823980678365135209365267154478690903394895493479587137255999337652123304236780228521000101838607886973690515800515705067171120843692125372198823518529560925402157910261125504731258317039640475873246409691256258849172906457413141366470816833853932651207172780110593158499802211074945811933868409940810666032501713982510564514834507131373858435130693331346408515723755685954055056908888176414864214338317531477735349197732590897800842247109663841502865575903161005049464154137209945087484581496694190031640052852977266912983798106538138186866747533247211559161852285578662240517565188425951491611180008666133396104577225851186991212159419032213224956844508241295631683786885060935900040504201302646648064499719007788593998100793274544486036413634929355451210855325915277561096898893137283021523399523247254229003444031537238053293397158911829188554132950361936227265929367010919907367410572877243884039201651625682488055357345649608663471321581892263335034473719810432649971313441099223256796184890672542849523432184273994251138840433453575832430464032797887037236783529780068423001153252427881377244065329715553976486172870977224838179371803431125222992444077111596235931931416227211395273004005991551976628366696267228543306502730341414399695031309960407584613705332445598779859297611489232264737947629868249211318392631360608838937335617323277816686577841364355307902128829789261782620707125757226803609668908025888399444286841438687245871873721024506228424850220176188893016054004462366904494589950987299570613402520573310134973128738296164767486187942018407867681380322839634064785901458290785478399247499020468903690438134529319954992927479803016288827109857079481407402888007547230988135709617867847247463550968947854484007105982574339925408605800180977351401952929814917057660402849732748405518129113236977297487818417041642299616139172672223382194415187601314625167425155845146927865696896009997858990175629806122150574895391837292299654856688513087616655862661575845336252211758188021272705090695378712373293839982973995515752468953047351810309827793945518307660085881017717592283803851592476410278446925426506197468693948366202230631867533743944033136432066249738549177223869537664018593372225187287429482924459310792698644306816028797957586012016369610531276176818969066409326776298902969132863564163729339407978854328843906778488063285435466409150298457205774801469883960824386886770968930781860059847181272011869395610207076203008860802116694406893475228406165453326848421828884599162121218001428860949991186553116870548723112344012091835922890785765467083552439476381406037947687305218406326874907455794205900672683667174146340170155979349808351613249676885334533890578553156024083432068824078015774416599451122292405329996021730568432275675215279451144218227566893697652366051372441936042599122953951212164060150206007472688479206503046585035343804983364218161922456068112624237849276674080498674494748795425265997799738203731808081000533688719121444328002317975934531366054563361594196377968497406342739158876332217026859470866817497803913962504815146722563252269415999679515801589123024391428842776649937534586467723455407370400868172064610301767213915192561306491506861309336573429707310223043299406412426238375169304274969440473988165427047585817406894779847465033076951823934425399444030032602568775391037115278428359831195288374133330364181345747656152547182723976594675216298784378629974374040667437306985888304564971713852491790545771172826430154518481874170704823364173116864618343935952601457915462106236123602193897520516875811308923754403499820521617814568569295722335224784950110402490736548212562255007200451499859668205757529157373517940344642964030741982594831860682701027917833971764514902820012471693749307303747705199613549874076130054193022482862217978314276742337950382793851969565822466427820554787876655419397152195774972193574245908582851205001397459386986396028208299860658365375642936175133480673549905666124353762039558943518515281061178938592908265189176266455071129982500929016040289200381243669379071900631266658397502798801205939989803377204261195027168376942750686717030731709555057127057126932101615965973927938023267583593856808881115171707916488261448253784588986003125933835938011735569158698682883301731978041795456140402131706263457889829058514409165619723596921987293551902917774771331691882122826153604928410318314351459975692391340921924024338165754332703375950791606825876533239933663579920805768427993479296002158712685773631091947431101451319767407254830156534334596453664685316702621830767723338999011420286627190044270522975476190762679754892718050566278615767034680736175872513553725932447187928935198173992395144032821126412320816204827002367427349760201960927483604751056611553375459734985035323138982719468733501319940059902398832661036255696356807992232512309102873774753648154262933534225804387389374281103415848290213735377577413037256471293778113312805490496756281495333075482081778475204244585764831525001745551339738262890961260103009349263424822420154765723605262046969725463103100051801943937404630985864538034642090759837958047409501723298959924640420142261528647377449464159789875117668186668738397161243396688751217473590796960148890787911732404376428149729146781345012477066054096985122534777065228442411082332377329009128358323836534840008597793902799241312060287944546136314644903878020304398763682530724787852682877450463438301493752922462062425202170132026056947875555097767910060071137338313884666981787715507037793637094850062081928415528762955524256628528339627129200159543416944144906681055641360408171491678443172972466984385391560049206516172471823689941332954635602096692305253136858518918781072028215824190373628334572822573660862548635276521944998110211312616608265533485863144076984702409117939800620232768428843590320629257354243410415865144166068802582570926888962010289005870947245504789186456290860311738725664697706827706841623746238645999228784519397118888394290819880019354183740740626277815962016444398845864682722143912745513273436492530038165315560221420727489732764063255616316403187125261752996491185057314300958546066080980681254273913715643289595423058639503224815606716326720445793024749548914386209439253648915616869509069472337268863778837795017105101951763027411809708516979423988116701859231491715615687620005083907153666303921139114536682460359062519556837762936447907620072814523053235317357840708810677443207849401042045742914006962689115181897111553526065554017608594905877227971087433647105371985332464842504392470315243694480850737259551799631328321193557003286912461916295331980712867452942666987162211293613070788736590714523454736696136688778130892716879567992413238819845148268645565864813461623771608807620000653159737137759644074891358485645686784856584770771016280483341015119065824342160481771904745748182149073003333082988704771227613213160361089123836559715141994198789953666916146724221795580088615297432877160796605502188002186629518443184895044726167045056067398673714988684849390785074437413237106571223585799399256917914622779295604467869220683576694691316668133048767742715243306294084570732356963458562648869385398262480039015993433938938308041441796369802528206670073633090077218123218289784481236956283178213328144448627171363544921674997231490672103158836959521847804649504628146452300041429973210390854970336753376387431942127366250808365541248914212161815149677001672761696816114776773025562331543419463208966749542375970961177372282474729679755481376582334052477694633947236330486172781443889365866054567756508349850743116008066441584189235574998258287560202363940377795766133209724618607286526330290292298584809852665979255998398538616310767496375472153567913863143051469362507194356206914177350227386825530664640052249048316515695380696438074890128439322977299150738863482385174642527205215074770122056159293840877060965355805606307650434882304439777732425097826414640032026039131213791193554238808528857051601421605106488915468435733420936011921033798622665208683399711601939061939337414956058043712343566738072496602164130021109421721800835864251856663605102588608730320733204272743984071710581815668764893674579017853978957931911039639807577807058262236037345940897357831763169228859426125735061628774306648334336673540849191649477166673327394000195492749303911061804435779996387843032614629803208561892118753453660780711131519567569820054337835039835440774472946800288053800652660367046655203554206301926479500147204853347961770775420628584740203417579796022849976374211877053510671029818973434308530266032574749702790312110708186443451863462071019500835740487847355098507537339093774670869395186765482957807785654869556214497194502810575294744339190376707151262534866793148437481833177578853880750122163586651280024015737595990551825894613280972876902683253972187376453219446955435157379043636664362659299072757272768810064666141159642673431887759951114367383315982719290305137059640207586040154324435401493387665542557940214876341621474557099702840179841763335236432109166248096882322786640669804412130395079413603398870363420572683690947966683519867926487975512736955950109320306348827744133764477318435943670704858705593299555509085915420625792067788611608134200504747136901081391323585562197904095396942133150829804712372956651600403728714342104283670477064901227933404796164515368576370618721505171398702696148578486634471360252005110688882029564911568315356259728750349180152704769711673769995868056532052510819425675394767304637295680154302072198337331940856021247984427832507191245897087213560655982486496816266655195464302178576040484004746058827450653649172670136523019079157793107775061686648651817664436556936143937029996322845963876771888890587226522083116456503306638927984648187025562932479405405159901005001616686693996619481405459613509708033770263269783398019414353037958009801913561276860570099546166001701914978891083473673876328253193088678949843476112266875302231114250349486147871966402186942200495052811376335194478829411850108607301946997718566691277155502106007998860251480520729379454452502327101408548515072995581451069689041171163804712547623302107503195339083127276544804532391994349800543979975670785507229107753112051642186896773747538655705682795562896575720899721629468449864705094713539898241444530139960512719536624206182820351795585771378726823700749149288786718472536327751572585572986582169592299092720580240276791810496922193855834026626099179616641793589973031869175572873984019702442001001146833585306236507245085311664035518022902460280864212397500459524666901047169600362737254012455725926082951283244380560047623772757543652647094903383411593272459040379313826793192243993568291193252822721335455156930890710040473676370087296397428848310055661081682658890814050732653322242972292884101027285198749726955647825257772774955125923295382506698774166787628745006415874306190571507617969964430306171109488112361182794469429562394691159069091062400182714836429378934594329612521489110798043574562337386981013439429507305721937419762835864596338877867969231927592174045091019076511323178465909039522329534429367623829992412326957293987124444346507090783878069020788486339801909393628231896414212719612202147051170965506216853647451146456959522415621152177785992649796246591614473111267730233268182502987366198589521663544823372740580148836807318789037295027112670721591882110258190568404156455070971936916537215150102316677835669544850146934086036650834059462014712248789363762461371785270883635277155498617271284030325493894776005744702063944591199973090796424894612043171668288695690651972522275003440997565353485201503910403800342844129434939976581318880808478466928058064170807196020236289875140556254989693880570616034222351317960900430435666207192087154175043910668094772989367378572482689714287445667537761704328496310443534139584275840347520106832113722195667544622384728261781473913190942766283744526655026219959096722755959017237916467105720016543214641743721967988793687894749956393374610006708551648261387089806858788977035660685886514223770957783855953073963022547981757328709225200807687189074496099868607324057997630045317534087194680993304645493879932941800287490733608332058534715708084507398379227799509354418938181905439189553168970153223084520729650741423390633076306929870817368317696065053639143368294923321152359985613388849307966317397668527961595024564346149849077352990514823095021388540776788593241289754216358543998928297711023336601748111573977305374003468876015121495422566574103748642160947637391802946852249121656800463534377995674475054916934945933937107837467349505397062602274002650844543958956363906342212643189957870730541893611429769483787405165506681054477829094747673399853981595685235616965898926022756333669378340487136443474020997512900354011711551848696046046808380801043772536786030889662309104099686756409578578074685706424766284613098098575762612893295303346966171504952052339792770058773233671423385962412046516150572947385559076033245880699927553110555018925182940665057469003819055317660302098946426390768971611618205027293374709474704453610932613836921280384034678188863301030866906217113603822707232652110938839135829203417817604912420788923877271289180569606035423377449453997480840557917579138298900467143374656279658230700832344017120242501543765169144398712262693850944018451369323795463675103283093102151849246525550535469834998806294419573239639614825511477834477454329495969926485071364210681003701382176056830725507566465740627717487319596014303227746890275987533165465051793786785982683750072746679442823362166411543449827243185014505027690332611086293351773032791506330733290588253589436148604926597488304463119996049186005958060702983379275497266514867925614458178589547908919955654096551567391909707769778997466481737502237697240439264791255742229880853199434827825422535236150256579661395415569589797390030184621387679730578980213871377855370194275053473423601175567699643166118920514099549076189751500203636850421422863261114893740676061030259505899120070310446751579701012783633309006257187546415880938164035914272761602648625816369853707890672202881124037749700075966664391771866629632443933980361889201009175802548043693549032226387474098084657401983344927047970569865364206757432465523940203450906790163323670943067935214265431187529437449749078569345663552930246512336219628484974987334229157375869626988597403202677728745761239648832198891036026285981586521774995050499379187708714641444870104624276607792551140406933208758382369457158971018802783874763867701770853443071311054751531949270337678900485585915770972044760091833822534345952856988061883508452420593218804517078093006274313298309996527128755991428472789629881082970864547949258068098491330807834122366485007045399990170260989105137610536559857408761303684244303911500066422747472562244928520059516372124939157017873120356488801110226175695421518086243435585254221902640263622739668619997659614365561538095963960420393613013751419382974824783463419717618438943266326495899432608992743719082973929716716893999974941541403163676752426966111469760537502739317694233990026488214816392143283055804703415199978732958729559405401767145121206473782268082059499637654538765708340741078505945251126160454901975545565728268107485007196220011661357828579794945167718786341508368761016850299231652235647869571848299999460495999461136123662517855732108842586530585841759691230132653771129345448381595935121160695428983054024911476722557779274186665600533488087813955876905893791499107981816687367826074869906532143166992881322227139060757708716794623204476403573207823049421003502198508169057911912260983097982298127930383429677108030963397910356474948440406581623016972022196650169852554938514845849228192645047942681278247052780210900879812391457894931507948048183734651793954396341921179442661547220341235901556806806660669384475805508823527759432717309085798875398954369335077986420998721652822309592660618128452286266987394820098783133252791700995401264345880439117855855318151241028991339153234060029083104861076541077730058609764812827570752492136852040792048402547207413831000844883811376391975105018626126755187661669945719542139957744183680139011644471668002767586706330411729318953152426749432857293321204802618081645440858966509601942918401172511974783374182621068270440388665438524912068734026851647271509345910118282820914512979673294695193746493284793635023202677206330393547906614596086279877810214807904884292115309844991994645119637454095834246511123197418562371627318777711654242037657724731759996992456018578803642013067776390330589009719078292977566286847289353007136403358305638860876698069793766161283411828407291928268601600168266776874724642289651107877058654379752972441744462735336444403190752203685577501431970800747482069208022627433342456393662273822045806515751780224359104353315605550399606197234029982688906291675999553005926457609131831562954179786360947132049331998594765972151769983551843430734045855333472563861935191312869798043932365733410084498409725969522462375604344170476025230468409939822200797360649105267583270954468263501520558729563345173343017233822187064710362437698251459676577521220029306921727567760358640559930237734367664971575984377218670951471195851190460331508033036143605734874979565764753467107174748918333977214623504665909046825329351014542366023712517067209764607630740397715082256383944078738630816933890985208301630663047842592170755079045252022357539348611061350610582440229166304751756482064521831719321443345886514114376996634308074477835940424087118599600552150160028229369461682843125346964523969857515509360838362007203744010420504362660300636333558345786424811231736624356306884704852595093183485720738100337042745295628132410770640730694470366474570565643437793861272154203701903456656619655740247267024421730017299398862497040313469574832604417297400672672389204845227922387094284512370600415207477407586328260751861080410740937864195582448805812076133575036823757489031916332687770019348923051113410691751509944310365874078837640639558389826886642632744073139651620699093636830799611173061741718420263136895901258623768585557088123796869793782627623540834261348294415285295782929518223116384011466908201232150676741631664655851607121433272561100602589087299348400707961874737023436417241988017339989818740658554776500686687341009218942861624575056265633960739069643651329612902229160907618779655824963457136747096023949575044447993209084685168690679509451650673906674601714951212968982859504380043268215538217335506362310414042751294276095707871958135001674341626447490485526866919060215708416682101370170730176267385799986828561193882976969774982979275582011122063499843697955144070313616025267502209552574795908400208126289613530395311546913098921752763904489667691065773690182111949032725024829599365551322351385025678123753574815519554998696414902595282368792516833645268554566538363185868957380999791658063571913649650404611804972774754339274545091140344409549398349004559432658630543721330521438201666044275460596204565814778141560539018558238969649975112991806235158412159642284845237866213082351675987062067715902794647161404468147602473461080876088685987472791070529184945646942790410034271432643838748515800700238985129398913570724277057739417582730629088929048690145861551053820616363619458131598080506059797353074455221792786524529341432372886197547877901305261676249847598810397867051755785570602359810100730963853832143269856706084628623046636583236149902373628447732800488342581449966106211850183628820414380273029928388255611610144667066017961336997413310991744224961552512800698426661553489078916149102123552015210838956782756330936659430434901707635172692535758695633766047532409658349515377346358597419246151372621923755978243166354995359673825854863878349772428481522109308199200884686353874415626775691887562580471875457880067028613054430231528159278735993501406264330545450997791160850472836537590852128423921574958301618249614479288232316696288581206055067098636261587788342382791824412104145612607210898873051135081579693946746121725680910810674852123414565153319403704300698671223072105755049683567827710602374846251715932272577900054831975844341641862591442870008355982821378629728073762472696549923340651893706611607808849074719631300176282942378302634154331768693256958410789131636311220887945784839922573264490173370801506417469619936234483638562757013321730670676441280568606916051790487592920989196918217060288254301232550606184668797874792346359244480232396855143567561775380894975099303711316087212732953806426680875646974538847261312362234428078449576613554145258011032853535854546445212228308396475151956260506225238107671641372601061614497057463352325107767749581195259751950601471191714627635942472959972968797122698093207577446434510854087017186780296293584454792115334083569418102480702323657828109444544890075825094793665061369969466712765288003296989813232562869142423524324216545170199956128272232040799819486390251095500837549026113371209316307038824841272080293224886250044611871220150391629274466602012651813141327845990088873496108572715323258781770739625014197349617888082921821418443910147008429452271612023654583066869455018929463679161818051372634026480423162412154967525056904156980504223646349634234335797737129447860661621701685156602914587877329613948682205261392612799330946478216510057941557087414908083057277445328345625176288483420824495573453271862515877019893853834303773181309182371364651692900027502963453193428406146409971936975259964845690058263958527556975600668049787866925022919893688896997651089059957621243365818104450950706666340161589640134798062535279125382683742248392646625340946757422187135352602007338659361395036715803064801008122741241846799256058845150653644886059716642488374184801035856183375599108693578904792325777648460202733706757547184638040558591969329697271517138886632715987694622085649155602541428163378831187148034373829196163465412637643116949549014622809524482898964747732495982260590279371012001854198941275034564552578870526100039012976376598145723552388193332414130004221961623697541492819181348398624939619447177138842835171914118107403388173823274171393691507549563542994845578545916654440922359321590113993459276417327957383966745340504092467538116407867641253156259867287994910160902312556989589827763627288676905412511506398948566578878521580076181935127107388580836538580043184340205086506007997695889326877905211420328731063402128595117849524477279942716607268936248477999830190725227132572801627705959080483081682712862580218394943174396902029978190320420502063765005539132756315970430749055097073156165840574082273067455162428950494825111355329256279282867444074389431751552018905280430988628264824913915357524918895481062732476385447083155979732454520767743327212530617595182257396249843914345509839787036548783183092386462940465158700618974337007508665958178850603078299377360755612944676212995801869010018492814846933030113487422828728327035154201994565408389796133064428289193225845626518344011436981581742312181372945834965591680758759512302817967758611242760840495929157872313199145013261569367235251201971861261886659236090961879589845783827319301923417576578509216640316928747113685326630644461584367372448278616984826585434967141326158112368379365624136224161639276790558402371807833760364676444877328228296904969284081023774473435631251712244661291917660214486784977380502051999167972981625387071182030649506668894321928977724983421546360855057083288314761753231150811106512189849571112058117385702703228500786800347513312156679641761572956347893662962366447909115340859177482097797122488079694920203515255832861604608248571598835813772571223101455696014099402772396771070756972633080324099918145421615087224124599165081213212610867074965803006429212784125621721386251673635229219139110657615072682505339669210419552554796188532141038093279297656578534763410204655031756015188261075883206874732139958105468553642165200209958288443801691879437263892159872922306508358109709465899083625980586382299938763111703450142759612552906415357353332395894334970256697407603329484691804236035596857637239652743944597869192537743410288364833156350960917483908480825891901823062823326008116819722150684984406998701230174265468227355258130008810781783292015939650568472628837779250753696271326401387657299926730888873026166634948551388035188621551567084978424591293781751859326763480210402730303454669359846985040416586614143954617133336473251456578130930543192716011610779678859149418709190845153942837000462774365292281311399904860803378684233882680986726163286259988733841779376225180719876489493698271635502223599704962884157780232599403026822131914743514772286662657213922361154494613606800803326711146988966930236714024577534768067651552200868087839508650738684727610730401991222648380716438232220493207364779862261939561763721813780903519455134553479345547352520744609470045932108417048586509295023726396232789622889891265799431927749776427783521799223119690799446611451026957343854137409140389489758545181899942027456457402792248215146332400714533436239485739447370020380513824326488111175729135479432600838435200450074418474082484594866768082728665606115625758244266100798359611232017146448044711865800476855166206366758725639115201432566592369894812705590331220948264396625936716802205359105345351079990143962059514679301893124730144954325428286103015185199505151595966141693890692111079010812185381240479525801410774991775772356307059454260209389784210129294645338585930199318690596641071259971716895936217248582791539069308684126902348604177188779805250900577857073246621370201573530164955989583808150145457696904371335423920000248762350621422089830442034021165736892988176838500897759333751903428895281741580326445870606362666712039080765264794711037983504981215526847693242649051014136931859513702108393291730850731894637788353285138499192571714436976633851313913917693293639839772076376102198729213697775892629148234133325682146603332011272813481970056098695590555406196023519055007811333560142031974527565123656789000984311152582227420055188416796928256686822549373205542148886012960745914771890729102559516618667219565911676439212261329537710893452651646657540266700404813041347858658871410664076160878492413097142916988872972903986301345238449869996755553841127882577224743050224738879691730568034300197062559347217431843930300678033866302337874931302726858623682139132220207691762228322825207474538337814738743410140387968999599050426236537900968069602386179269990985041944810040933212540176270149630675679593607886062766952093527789333460290918479230936651956394511788200411421626039207853134461132528345594878641715916556258881028524613423623071879029221791709758400115498353488586626997682930061108692949546947108887497367006126448040824400018336984165855019897526986747584858756665962051809606661837686541497051357609317677133226812281967166255448454561772786952815467754710025490523472790804953968665087201158510427099209581769908480479079283650278057450521347309890515034246079263755237447442938136477520125636456745916811951961385036157342386820268877703741464805866499734474975959667746397192952673297519709007888356829999224148001213468042442046329641598786832961085742959822605838071920182378885626841320256465261943049391167027923045263546693820917073121373744616403427927348075649447440298187278761712869230700050527493724583050573358481443429213000421372521120858656088087809273121281855976708761968970290658839069834282325165231003359923709935849147052540064591965029489820294106907374001314987428303142451169821333139964857355752424172656815647983329500980176274208881060684868587144566563783589093039188921400693675732926969073147581554519899035145503259693882544699578121386843550208433744942757082168692193553904710268785490719592149061004961700797190310660011396519728766774959756832133376520768869062191720776054192476604856309673695794473603948708002356327448603469564911496156721819559152811138688802449817667010341157919364326093324527036338329451285032091361177357405097145792872432530269972314845101561146043412799286259325344315326171554003269357522993412268428086718738536922869130456018511471479591542197389369414616648053207923632380728776552470887842888231396958734145842620246425490119157261034336404838803372049091646093716423494786576458486730236626365696589359024869649557519143751992374517657480796605816876180192250261976608458784907644728115263155288202832170822088089454066913592396382419263207938458068158346841378291043265988364556283515492238832603673087449824247754395972250169133439966454548326632044870869216893667862882991476564134830467829844377282415662563657464414311126767080588538217208138736041067094434593756416990986686842205082930992102445491404152930477126787472727293599179230502360317476584760747200633530182932936259561286631331828923352463237634797867059184179122777232234520071971420844026428715113129087130804260037925711235202129297931957987353205322082786445535502187616249505104540026383644546604609319962428433581366096170228173607781636065827999435565931898159806136571968075427125592186992073944176031308315667917583040232976889441045936784478580934210702102285425735201384184647304169611115663418085632454623019443883102278813314103083115287471965879150710815516233535529212725579731423691737673181804128211371666268935842230532690221185835751767123167477953183278844364727850191848624453466642170058642319513861653980370281681237901539342870427786582123645038511347343731411526468455791838616648027184024478760651360862698207734885136104117135536468172379383775117599142614208302105327614912239636980071978174585725830025101855512619733302898699955859902696350577630482107695065403299994520924890268388606976353711957079423765365280627225582819775965480976084502301030936398468837414120932225774869528931829246040371816686657838044114678370603540585986878207110661169470345926938039854781530904182118720373402497408812231406627760542823124442419956917784497883855595996899444934834486821724134709119750141702051581307688080299077263006363966868369023432949391359782753735874031458035574118093368314966474494979524327293102312002150079360189682221055609709654836963084873018285140869116164436739258129140624698590411654110173452473436396865667418265206973241355769774083034589770226196593124852526080956756236094150025506689506429925371486184678261806934764181584369198306733457883171287439023187395489356070287894840594255795600479015306314380420959159239702535892066411212616292267756175944009196334357209996028810500702616937975850080470371767793101516867202224997154625107691261222817068747959534243638547417283863055063584123473579091414762631434294060953681983687003411644798049516851807952890416280942452666555423792120236332919303089599367821267286980548456178840610910212167863884327062489401664607331050727572135052285119122898079872244860949717456183370152824083747790270066764188404373230029680321289210368237925462362031373230566969723899316850945478711209164630939604371671435719813683966209968657070144551301910790583176794493816318382889131015215358884962804445589053692902812025054685098005746655718385793536912856767899624837056852635031981026873467525082473195693960611017913660101519322824436149926526090946152439825558407279680694550357701880998522363090302960577742424233430017677430508824739310254210837145567419263012541282660850871464726444922113314162663099253080374452566612235946819338319719161666144803892345574957670055062548007695146488519051732646660097925505103852897334019784432170402047665664667910842230980963747713201453301965151852881825156661605891212684222735278634240037586155968774293287987863841074137827330923714954914185787441670829919871028635661281967311497908558821750373351002967033688036084683168727502481951910579843491188561848972445949688429260488271223395268095198665699141967532496310550965387296245970201272472508155647278015399226208933805858563768726288057620496448386682252667395571738194801406262914004130652530043951160223881976379675412511528630147992931648571555162455141824747994842769685873092131072859320881166968053962575177097543455156839541876475271880162154096743930320935375335677349207794845168780099674874230038543023332025887429952074213747637956970591950703585340137339193814890962472766561950341612076957803432287768882265020088282049928838741766968441602460762005126831440057027654335159807664370564045934460695121999425413520507752870605694212687824010674846069023529060608387338462467835514162404604995786952068377798941470271624441782817103052388938245258760571855939151730356190764050470527793245057567189116898392260198227378522721329556460195411173676722279254610677466638002266141733660374277007466274300261433385102344238719654528411067427615424360812567664269183297202435168882138261610479155364140223796029358094464435999127346909797917090148522488091894154638753044450825481762418390619153354764823136595930123979842832727188607911939495706307338186221898200806009825235418401955653367894611710537575948328601505065311931499517080528142731743233714995422433633112100865166521218953707521498554480177897889185597857602341789055942195460006536360482546629240114234199862085708139999213986307563552365808756923620712238631705536632644416456012596116907612704385675992502353344319338090590047963010260254394257086494561159998919936031397053961541663304625371764998547515410155981363999499243425117718731695779737762537349586212538880725533154104533553877125718576745668660964647775068096493888907408114396047009233504249503199122288671136015921736576829827074837960501885059236699881906542438106181289495223699204023501153411081062939726599274291248782415821343011857814965852375337522055017580648001854687029455652495257792469600832445005073776089145771819498713625429411146674835523794704113605994456005603294068781113128692731081722231805882077923548740216760533133057093800344878175583932079215183548376653742677811263152476001720016534446759445677792038605972096940552001834519927062254555756933354895927122137502156052540796769692886372759408448852755333063281112554601402731370147741420869097105873736273157077385810877734408233461705433354238163631038457152302981545447649226716675828378202001734923692041427535191861202425084255128562335426361770109490144659955026458895850460135596136166381677472075811699877107969329882773033601441059486004801710471634133031954574473025621549174355274617114387916916783144612673768237016694383640581407634796344932768956386947718098880177008797408142757181994024438852569419421117900020612113826890207459834420948794808650016976876881664513061717320822275286522698699622806826222314415256152557501952704027822112578017719343297999846666061046381354088352371565098917695864757384302939367147497828029848227801979024804880191861440236314367371944949406513477089212632506040739626760043453868492790594375794388685767419079775669918895790624802472522642565652102398574466536703320249462704675472571885596450610061453239196035958294254662204290695728023349728762044969547977140715292522460439644503794710866555113933402514827313205310318208947697769984109618221596732990307681332501844865287046801303916065076939627928640979176394395455389386083808201933581273206793827365981013423673837121865627810388921828546421566232892154844715015480734143648600226663530843848776231138347841970810299218634859184603025241640573875992558907546166546781378773084087410784225548788294500347873668429696686496829284541905862028684495511444445630623513971590568613325466594012464831196897511303937101372466521697422641625684586647317996894459875728781996555703906350650065032151031850469432335648699660070420811511292632876799729634322218298526793716099771128981699123636565909523098808344039964429931559112263216751067018587960857321908926775007149407990279125672517382620725582469759527326993155505567655217578019024672133954530149986908216677517623220413404442800384799018917946935794452060822536552416181473560461917276253113430780744871506580413651958486215898395455482748389702878306264792035089334791207516110112484284724384438078746607527851652183866105570163975145245103337702779222123496567805052181465108975302396032316742122208593220367396834591800513715190032986753090903695504604796508124574685814184161084335524212096330260381665998412766248907465431801920152435390220027062314626777120384249337760692562149814507210005564722762997230192633125002750602492727948494870367205654794591953497729687241026040131960328500338495480962760907539836295893104118744075803387182523965378008773684086041205521001839383648259947165785761134716248059367137894500162539227054892409443822524618622273898993697300142560871948088021819447320265229600603158106009622060806257702837248605354211768174057492071126138966012380224560862397583143506822661189922043070379194959999457519580097314783169145731664106774041162209022004752561946685123155774732967121692922242181781967173308932532281811369658874314620383468713319807474634187314879693969805742373814098470114785641101693382762411853028607057290835825009277653363966858433695307283600619181743170447965814753863858634124923481514011190546774787692482450290136616237774506556598525704969357562958777639202036918321440997957687397516522237879220636676135815769508472303838364550263496588325248629514854082644430454635762272962923064630981652208682240449743969220066545053979718736884272863844990774314201698472664396714989967505552759472648108687839149142088294073268195738505937317172270730867617059620698220943334951665852516122263265300327190252941392208795905710064243232109936020358806186359412211388072929617098122544373777249070116153558545559765928590281406347598053485531878361632245709312937644876700993844460519032899848561045836051544345692411549602631072034227873928986494162523316347795864576580960808469319530303968261219237708453785761966278233913795404711130142306073976724642390881654520040468417451264763139976645970542696463640408810472853612090367523072611266993232837564349300810383691216186826088359659929038040338312726126719132037674951664961823093517399622184194331329331624802330624854903709573770553566674937013598924452722541547723468829752615536001453328510135571322885294239703423453666662682448115529184603963328520374613511121600631902677635917673472485341106720426133909886605831335376632624974031466812019775380613825917929533273835620083137642091430660391063024974074399624195656504102058094011389887548063614549647303532690078732004487966165659024983648528099894761297829416597513291297912473257851590446569636886546225001443982220559940767016556425878779868002016817262769118602218889952327337486342738681922674691304204110581154315327831729056923340254559750142743880809346017265616494858849940997219149188029172081351751698795065522175656146267088213155785554327778501865672584171785656794252461872426331727768861793460406690179251909199547745487464120067818198922180039648623354222595179330110547016825030257008441193940435220679359803010371206821509145252977516978317534964598392439701838169341852447309026014547040846485338783556760731867071912227251282629485422466978184045272980785871750051860134169975935295267754306595273887180232440998158329043795502743864921714704495244996690312179290743341878344779812941903609996651717605855982183732677733393559134639040643830497576377182682277022639670088269567779518859131310286535511661843613511081435537836138985647505130500151557855536672895583069186866103128792759945355343162714388907343680394480534451421588168539561061023480033614915791371425255966871697984427444304194182937425068466952257874613790317822150703644400195490321643157431337960407400953907514089790818995569820884574211404504183942198338094357442817629389536826837325183801686254676194037382819604351200786765997926990490735112078536048912143629075929938048725758438325482560001270069081932372408940785184996391542267386908731246816838886970537179433561895910643784439417874482828444492040484676328219523250933091616148415991461253695052970821937958162993552091354841009776746397214917560715939922014269451848793683283044617841449761341585789529006130963307284830877443452773213326177069544056416327835302951222534200683408538308082193225385368766720620087164927969039986333998239754607918374017148025096749232345382086340096748430326362073795123964283402133497830348218610908283088839254839203628938944179227326931259387777361947384590043016626628856837925818351422506033360042898975090260005693444636001896137685605725593656682803622080821199235109507192941590788363510046132186549781965249879455750650201325342136905013329181093636624416816287337582794275789285939830573798865739166321802354537572040684176467626243059214897617727694956071879964931726007435090989835621706288087453163676832813114348271894623896282143674847013833266599895456519583777017846812772116855789743675925941972492167515436290248978670810250175218698656172966447197326637919332740514934655011973368024873431558255638928363202348711233190326176737636688984806949031474773335234875655654141803788754442740272287361690620854597798245559644513604114693780639576039824923863333211570350912162281651156620082858563090190066990739991370474492999194904191726312404066458854710843880774217708000437624675388660738491356238897817730345552578222619052970155425485236910904340032528955168019649133885389378862336173042269291167489930176496859491498892372040172785184617659718029149581300492322931211232465265410812441160162403052891183570222665707561789119979625496248172049828210356407128873590827972942676084776343990134982495214186794479182674090453384476458293608774764197373148792252276431527854348869053760055172705046170100211163956192831642080172405334751562640563441046516499795157473491989836412931780384722362944696064749514371466202737934860367412094873118729150046540598117308112002998557495938894390084984546410185844614018487785159633823527123381637256817555037551964184762300012249894503680852767402336142040931269769848401349454490324468583565092379256548537968464558182722828986689632214760820015171737859830841190780542591041540513564570555497864948239107076447471101735945986291229574036560494423173197290087619243353248435294653764525642863369770022611402128495754097666594104059300106048362218710210776947693557732444816180361850042631591280560816042467887829223331156615453807002852421624377912703270883365142493934635750506574387864601685596869861192824329696743982078459508392052694712296945366383775040851091234649164354500184037665682421285537955575333400365471256939019635389928125991655929846633624890111339496745014220349999082825368771420781350084045062271343870771141803215146668367916751427841203872954339481574319054544506737433393553235452789254348820956095424312406377740552203475326732065775409385777465416271582439499016523444049520060920803849707213574499842744587671274401937816991381784452638989015531745956143460921763734123943232059253574550739930628826285771014494333981264362856178615681391397740200796181415554517812980963587597474318457053762265676438606297754484897732931753016121564680152939831281017539325244451335108376022846447016356263581188810128217822143364267469178993784511132013141184793149124175310916528808369188779912757419508097823102708309637080089934937484347485465113217306672676602521821365727819456950377774439680684454373390093383268169072725941717766254281117288981888744074871689286757962951079771129923145539620603741569458700328781020213171936715349934236825595367025220525789587285373876564372641284704057480967166425068562627959970178261906719984609113874507090201524057897463666298070473001715074891572281077838139210699014784510402293905815357197181782706886397491697220679649066637203077339241163062422548387939109155526332987770655206766228165522697951816820084595866610461957330541147706522915671842716587701472224793911516932389313675046787424786494812500970011287976003718338652116543355617171405362341711319997683557186988978991046025162632646880900950109775196150105343918811099528616087183339366740512444144990659365600228002577814339592257454474783691021978979625518290561326164489151256049901297611732438473716513794959538736463901574697273317506110696323934322769358458383391791625091492980972273092856500109924610299800194869757894093450694750974395761502730358506539256246577052839268850145809270944869585527920489119240630608924920294007691675518848463002925161786671347092513493006503466621377971276232948718880778138056367635544476969563057275380224974183451169378009616840642699571658389741648753069915460271801376848179830447728378567113593184641593021102982995329652173306132810340378708944035432810712237477061933240347741796660133696675232984108453259499038173817574440476228791489099221470747615277612484258751347290551869252170409747059860588162056987552457115831377497308931100386976666567870214430112041347814813520657369780047054334459643497849583223299378627443464453627665951130750653027666908159388482138798910558567329867432344189509627638126319770300908472348163486680174951811883501777147439344212407795474651278427530830269430263682387124076299846801959330238269323886087952136713670443024317633535210625947601261424577237473066378357216229634804447839039309476788630992446145855947572323859908329656589346562510640648202436083182850216580904533580046743448390896354337542407430159874461300736922126686056607992491996190945341323772784333925321274903963216873411721285346416228604683849653392215315321070005874093859991641756950067586197386588012098164847220308151067306531323201336227109585520087287082467291740811155207222170640782718578331445090474306331105380647496466954236960097233514691233129046651003352004722308348083187899328402934499043741199559396137571708130885306169766014104563675193060129054658580398053642494996320384724038488064876246975070306555546693479815171140567092552785115939030508575737530655375547314591549874778524698010617182044003330541563511920354085949172768871966977970187913826324770709245606465820267056091274935170495033611173344027026987714872426102623856315300764654334083079872015280376063337314030769870958919033462523701395147594473273635940600487016742061809793836526510085286726347402272894795620154640525417814326202358254714191695157539285047736453520400350879900268308011427199775550029819233357691949612556510459617090095298548704911836449410761458836171572627702883774100681135203402839715816114478424565533632010756031050201303978878981231683978315520445745960159104072834841706730973277039498753912456526157403926454867654876261170105217303305958289754041346125854287695765468298805262572719731406588589372522996905404852108136785400809220439420587949799766759973892071194046866468439400332540156589748543822403533753389839957631386304512708408448765128189793289877984639170512263311118152240047359034513122473666006094499916203893677438438691197149298072956139594059555315003642080187340347833811580167387827532342832367085633909638038569846846831610482573067325025487355913697416716924648060345023878531458852553744056288055567827959098237545347667483442456322941259999420531502568247011481301204465871177408498392566582224015329175877441847276958171490809238071624694182253264958480833704260622737932228164485274593159478760945572868302251025359664844459375008106322234459453521673712088900325254021536360954919286631988768185512247460639671598001935397998160540136792410163320975976848697615785585702330808481429031892492032857606473883204806969465134402205341658870987584382506802613510938439782115190025105954800049718391775953885733603823188526414444248231987379552588005648455813718570190225075539467645512537634232746883486802768298209208326943027991052675340314666446018225677520306908998042615241706926767690463401028657763633612221198931370007305617709288550644043338489179571914924387254794269617959944567081500325874789096805800917214408344555831811346463871392634967033961254961421542453360388691507672767442883842544464518158843806436987409258544446135502007274212165247314190069588740987830529072613172322936118920179085944060200162108317047966045331223009375219990141932603642108283254909401734571247153240896553662577425998067592080110001091524725374985545488908572177730765753067995548094557670044267966087383853898769732030934939914020151296313537116738065212910962986357927420477190659538162763780014383679251948256240888353043764919327216134136332205427504993942731640043565346053564100763994522432089859187039203881636649314083232869353210179036501700202282441848223191316460365235326250262357266125023912761418311325323591206037725673633477705768199937490382533299555069515655057887934554232606114913510314679114179291736549069601622019879526657945839988997925121248629602510044090921880775305877889204111487379943979849201115338861547749504375429680638629151585753565618589294700295898870990566700547759018194686086580700760222589922975748925815730419838603653881498015812767402781048069254733884773208796813500836989198839084603930276893444792054328632401670255755314606033719214679812149406838098438429568302324182468802774705818991841980766243546815680790124051802463780085757481235527737795495744095473320034232449299279083422359912175397838703605078227191946302626480550063536191414318115015122629044396399655337359753662862933359130153112435948234505709720166415849743172166778721604563206648867579710426502694988139429890800654415664342983748444498206614851604314983099262507681013590413278963878055619786486481819860185089240116661739024839368308422240480199691521342350236708922837788439256419822909499721157978746261160652470260841719295463073162182600670834075117969115066862132756684162737870160866182078335756448547451110739780826976992440170783959821817776856043299101128464293697985864485613338690461488539264957712488564723635511629473331505365936824677309860966354705804099438639044803542120698501044316475956117662609325124979773257205522731049709378827712402629085446063689284403028653691418809647510389470393033328560310900790679854679793382489988237242004135900140003587089771431511113945274026394632624220651064532590806127394565633677442820253487365175579418748324733454089002928640870251156424994464193010622771079311779373135041315313675830274597446550526033058350790038730763912314707777886206613246187380577531993581526215577735599075200204200455024683137687012300955427568049940843351235704539879515666353478333227045058424662751397066710624450467813420156576048172771158516822758895778239238140605319609330561018231824200482680920585968251499564403962333878233425889109013047278949395752456692734624285119380526547700079631794484125144737325383217398593822839147182758936654188000732131127739441587670216812134809750021167471905380653734903345914653707933783420897921065312259575323336036199224395562118206045601244918471570077511441063775718052266931790153897687971770603836765594823725473801263410169479370481741339204080148627922749075412008764017404968377643251377143858544468891749050599501201558427258919714634448140848290413787945153270064962845265464143460015723152566823184520646200631082036995294445716067266639616709221719739478115902077786476810532522847602172225988829729764337505479180440634219522640160737487962581649237655643296720110554609870811224417249988963913596803393038762309251998295883305138807715201559270163011558629176072104551631099173682144593854201774341351119386604212185799795769045252757918389258581905893572956664139070647451264182860635900530892957919031282280176630413191133772836548375483089223547578160476295066510733010572176243107186013873505452849979936744932401745979654066165727973440896606730316409159147101086743395011623791378227828698799653541830392796172292752350295994826482338765150173164847077261295024644197739379173996212578400129348239813439903261513040672987027494434347219748388265333338124467890101089520732720200954056299152242550682953096181846601535550328238578054670963041962224309138491174761017533876019853203278291704431166937833940923529448459187512264469270262433630274352411154499616381504257785016292850952780088399416389925373792179550231470983316109173375458300729444704090627873524454547235147308004601920054433734669122528671865931501333882044678498660006633092020757558038102411670208640131092052127774177755483267611948267840278662903009439575518565045673929902329212877639169041429983079851206094106693733711620024258416945137700809228282275369655619978566973390562072620105705242434570159862581092985662833349807301704818202137715759943798972099502298579904619626779029121363546061986666484566432766145279004368639373295899114517848436325981695303883622168723448450692419694518058625266754835444231287071883490034402830678051898365717224382543398711760637125348111090726131930270331575186426499902955191407524827264097001758751253334677121097589619303678275081382035916552140656196539333351253864180479927343254132702972907613997214735780810889808911874315699806260525924882864195773292061870633853474632420691057514384218580213048713653702881876181059707521470179349263517901637975367050450767201013953535159949878175660389620394841443312778909582604750839390931378441733694783108714361735717727175505736377108076595051439249578043647008088481193880132578722025128156639413557042505120071889271663091099031417954908324158327809872255416852649044574121662874035531276259048037508441526115472851615252445387823209727212134912041439459311613973451033458145911584052007992267398570346690080114773135555045064653256897687713505071605821823717789704472417494119596780772470458490299609969666836465148138451572855260701744282637635334286673084646846385461419270621637414231418875536625901649049044530222728633753066096375448170598286851466453317335672864131026304289579769602440987038156620069461223178867675924985591411028609954218291679530985172000123345548800829740613472185394048264744418363894504227656732182565479578718864889948912915626894994522745462422178296145254622218926699048802712980530303109635726094608328846364505155326879662433399430407754063036479398380751007082354015575363483043138815125653335458896257204453737137929896215624375953326899074077191239246430143218119701253839592741058636875232306073459360358665537485465700908343671567903553594754747340754842697440952142192954679465958382443387688229049836616886083450565821284518474599204983519848132034867438056418436020333745374177652535924551434316151896678300194807446760263911186702286117139490886786669373849154573391752736987229263980972462746580073599814623940284510653415002856495611412960675595749662474109851698069714165284673816134095872765930126401158974062506147902574997836605328754238904871896422649257042392725494709834883578942077966489063074305856679543676698631654752447945944879753234899046893640791338336510202511005389661865984756471498361849273378667880156966854475557643564826239931938215823746885484229558303012345998207742958348004226099026077317135112443198521466555143801755543554588330764696363269176216568643213334458945234762464486772998758882911778059882382622880936817357537894787788530732540734727769102237538061005298724262236602130983076440473191484398086405983045180873558252750172136395674035680552140474279873783037380062587327812520793063892099246767008438804140933271678318737282393171631244553283696771742928251952930055398683640718446072187055002832975064579489951360809942869903739007743028754981667848766041777510208044647016699456004423886328752066599418443908145662760188990731977501190580065465849759691990947170579252587753101101320874858666041836722812445332025159342573377473685590620694741114258228477389540308522350519385417880608673623711561892083813106533827216464406088353119812831781090722712431337902355576673145094380530277202691804790556139639961116092821687985701074272265974681745324562938746874262900351431572241847285714037272824020249395151917166344185968210990331206780823722681270654341147580686007218029472618021315830618680471643433463246359234884611986774109282439320450153872323454395026442527046924522977957037064825123716915511153607416683896007673692202347916338526024104961555069228858067889489182037040277821078702200949940786173769723639216917983404729293196299311902517585761250970579229146940468948123224139957133498076301783161017061471620771795551116890213754464571365239239001096195079947920096218599716097356315104533499478450829231063765931005468633379524400443324729862287604934160860612630390197389270495713258035762807099244730880330563344257803015371551205210753941191559418332238571712702903702374003824436624791861323497366441991975584808058546716928229992622975532305129410270409923836391985009395355010315382562343870052839351895994649689102600768011949230897053073489485817325445941731660985089599998130422665745305861074546455492753017830032629476683100616090088191011618056243241667036233499337968968352045810470898131041721964195697956279290619193949644700649773126891378616331001149429667595852529314599489495362242152474135077732386680975217635910236298532363258483797626877784104190174306697727188125294098119759554668874240768100237438311778189057544095621938544760965912523541531629051409154702398004516189218425589365298609715180983126593548246493259614998358899139616046396626938902107740584606206250721335496911011340000219128687277108754829561604983708917994335380840787349056934018848565223525772274518445215205928778531223533182418682543970333000498372497946408903415257750012274924834408098083595373623944839459201366521052415590137494960493731761926798010418025951655498550843308580165738016481012714291426585631893291228400741315107198269331063444381879934436010408190879013017689631927554228080789674114130539092360650052012630212442972722966743676647824311440903653973607691281127021788752144415613303609301303166064057946033336587218813958564765579217361592464538378407977908890582601479356655781719083276465718181233968665392002453592298214673021913635656903166397003816230008647142716760494810521893931995019727428606182130895649714988354605863166718889875453071399771662850074740046661220035131827592217458974475942960592753979727642297743012608420269475590436441143998480179914271820152311098784897996854951100559541929219095543301341722186104744498639878335406351873646314149059967528794648381211965985887086014670184849400419475681472462531311006901594957208686773669164717969318927020126070234536003160769047211105543479359805701664594901341656159798006965592692558220436394663584061134989957376774638664534843280609731000580834398253274611503893923453708225941114060240416953552285736247369194038821068775286551766762710583254416535495313319102677031865296352592766301179327875693913813572663738996697320376007451041697961165239711407444214309666161282074185816454522919874677445531368334978106967469607639024523387465254045253070308331735343991348775496402999749089051076586278000014763252141860474320435805416763287668024928496533025572681257670486755492703980070915913072509233560679333242268497436076048105104987322341560242155534184268234209642785494547421422112629914636871359893901395846752065332428741349586017918489014250301234610540920564028756951533238356087368898726304092731828155404482864590089094194237115475199201009529220678216856575647859197025464056300962640730502319128055739108400105269313542425705008991815973218935997501568518572278584527170557788297910543755133327975413111978353578871628753680336607142150238495088241882988107891273664492898565364301282275939832068622153843382715400233826899094726367440299510917518060036472001124452378926752650605837386059586825305323761924522044024169255798184050063420324952472928737562029462897216297363664889508987778887879817504260991742289037962612227505097613841805287945536014108171612347431119848279616166471414610647721496454224735573117211993719026937168095297897986918339580703539163894250713928147348995171218950561290920958656508702601467943043937374012841690933332431297277276832387852393888683126266786442996908413462456048487157257676659411070525776289192762441774780167633864493735795571281177490719761589045668582902646752323006460029784260713079228150183303859981984836158125621166705305221488190170171620069937364394738715225433574749502228380261049633155978899769167129620003456302787204346496412980752757319731474945687453369336889330514728637065895586731389412193072095212755222614751649531208186290604683807413020283071753137056718215929650109061567446551462761887373202049449446950777862025729180320220118050015102736426888728859763634162977756649877004103278106528143349868863021507567468495078546184066686708508185356333289591009443124893383759086413625718424144621875130677556072086888787374322749826745526520204923719355645198531617659236380116986308203074184982712256234720203335143776894684564641655344677650169012191909361574806514626159707170238900439185876745745750721314534542049025497216688892660511272471404031697468721742303058295167615291255262098817045269754049917202456394261663515524400635118491328955660291191534381946850520363165396526799954879392568621689796820889407320196956606735031837797568679352948155457285792416293111812268243905842176244630041632155279968920576968367342806116160039645871870172671110199027638032636355820337945122367145529919695086428426426970660202429607204025249135381964641987745038776430414481420185978363935793968993863339472513566510587314131639725902338815933039669228027685025390381712448042650856154280187664040274878065703677359175132719332552444861968294031347238619765416566304454498121308791775306594449375411786866548388201164340637073071132710175916348936393454836258524687066466688118197606307882452798411372010033614377479250597205522293258996193296552054538382331267365526527762238432382895934849399655242511515183738276939693520956051857524761177602323435470959612661459075010558774560983563734345685145293409197610475460547858373141935088575413441025647935462661914537018651319957390958242550982949036134816357993889129721967067003240182042338398282037498954737627733788478258574127837186380830110745150952089551209160214295601286451267060222811762117527950325617509572991330407792031303321743316527077116657064848096680378777867703345462145874650003639383431083837148815384269758360417035834091312076987609325029574015493156582733431556835869312465748856641589198650214616966903601684150150302108877782292149570356256170083535142299672755157244454972514171380746834382481749739886604415156347579804654944054844426122433134951746680249965859996472783389673503283177467329134228904141931054834091073901512150115433801035231500150700015303244748418856431830696038738139310836463653585615798464427431424394907059537574483995971712010826994042903067912483590974443618976281404141747042675333196033556740585682009675673756300152625575359560890374031157729141145445150134000301622152167875406032139738800739565533003720945207349074629506224044341383416896855436995114753708193178536050446764789000766623975994900022442769481005744960205099608104345671001673084105354371318249909929003995119068506720312710966628988195520395041167682013861559155598025712471197160626867901374973461577771804545070682261661589293102904163879763044165498508732055955985207864449908582488757635711131803360181785685813038443029964357248673640276037510432261556654695109189893408655706791724289835980906812322554747569534546979700007150189006650057139703196480851420818187689722609728203765474666058993009449387731228446612495458955116288273115151654581542497113059253101667648398379583494537001522766072713179464669187998851182038875540518430082588783071712317035671897097842089584604209122674831065776253209844527338465645183400447712204822804400129251003028000977899467005836989990349058541269895939659918386433668480103634293088939351350138998295656889737118953965131686726940297420904567450944848854522101401506944530650510112637791414631110622254599019692595674471842904134937687362699631691827108405418005466194867482374077669092449455362623158967316852830481773714255007987246650426774897061220022059178764887581219215442559537666650019374288294274480737159072810705953570979448953522736113857163353736536754327767508430086563719946380993180961631104898787366115504113757955899798973666390253688455221579177737934106986544304413106735046720598222870298698865505578685417075163383000672080404786528341530179858312367800568350244100620405043414082368494791822871948755838168270618916488605734074636033436138949884721673797750574239874749147717543663314538051981012582193581122011490862229201830523060149421595397208709976652228033663255811187001109852462079404535127823216798875644245215226662996910981507239117138150145267509807610779591386713218719640736863833903836437886366071346164999089122985336250838434772256537055257840366261412630252694877713682558883564306679367172735707402232840414890451931066722548087381737949017802046977768121858958514012511819804757288764550754178266344541774602898136788186838361444618306177733371798996622345954971150289287731138543220639967861346573965486450158728643069589128700333744523864304881982964169781745440116572392452558908261257046330797473043598625502701681164567305302599421480412908816947307841670033563014033370049139412703956156144391670708393036413884384777071921617063864511291363093859414740143770672272453300076306642860739556796981018229145917419657249240061757834885687697602971518039981384869876203517183625414079632642660688708471866249993169073934335164212220486254175018506931791123953206765987860742053307974282043290250871489600019903349170979875347063675494141509548638865075289244684673598574069233889476896276413556377170773813744662834090232565479537790126152796447073583092180870183127169142308641393416601849058694891677790985651786637222971889949543227745964448536936338963117489542765075346382410614020669821709460307002819762382462196675817397506826189422799262562468600961395203627968091052100929149865994500169542143550854713050512545920185779368722607517854516933987454576993034479434233078642596799279611915760361000569018148877238532384766373080280238670912835760411089824475615053488395505146203216252891692401775734805895764654217578953496238969483739085585603281259249952063179445223469206835203859791424905079003509989836416702111826029367738877553735722402498942884215233183197350655785700877686783317836529777108698757758451641351718063577075397144192532255399543581395902396232835006293628883168856871693326090299071010743134481100145428281338014878647449071063065730945100181749977534879332328629741314745330621481273725103103039226703120693109558225347911085459295655922898584815298083196319316103478151091970215173671025485039000990670716216345218619910500471965001410123087822959042528350329339152921101959412907029967997797900084575073011795826940088075184915486076052401565721533378809434986044328483363380194147438264843732189951268032917757614719474794844218816939600272690647040038059796269058091895806723572012364638031409816612699882384375144596328353007346813887772456578652957882414493173945978031832148511565977494898827579690894192791848001295516312016322875667355532004652657066579359454098880173547474108337489096755556637569946817122606322812521005569777619703126058848870828194099443408709114634562902413781094557878279048525703258736951888461628989317655268623155446388960472162055034065622960739164250263035740645186406712227807593627946158722675753391404934730958254027229062302146583204507664073417969121359638684714290545961525882031836011660914838348924465029977337088978895283328640414444671935943344061547017994792039083265257173697853758063483245853937747042211096902873501977783502293076281169707067459624922659023402254727469854237202845486607149717771958037545536586566576523872087035090478167479137617021895855455930372285648647446410170170476417761238414749255280143329643656489536253861223272233400198948502346036740513019483997844629771206513089758580966624341053622609581859702270309538359514026928288923133088563159876352718570305036851832006106104588239227622019721722844060806145169288835937461828374892038263268858454394580432992435418428472164589473560060532997111437225694728457884916464116928909177652577689081631332410755991759342617095927612364018017373459105770759419516213631206347403037273311435545838801092918857596058420881549139240024513387652204750602157352465072606268583359246851611464244894683426497741413185797653924649871737020285425190260238351511156805706885577136184771194758167375226346949848900258231794297965425253076202980154411765385763462981157332207581823456379458762435014242520644450945793427742155604077309494083996926981001070969029887487938471972259680146409143314497822556329600355088849454105662834560965525904452675570050381402961760023086459100135917833533220800955611510682994143903353876800636287660032009558063815343300338712441568228322656866145392730003885538432586603050089137591130131937640006075464178836953638635309947331366426982858426852727033749894601146337365719817284866727662088339279328817860335473221728403795355137724409152166203529542213096013720435449736964084688578773659437842930814343234046144892191921001565545696171291351006304652110894373393564542543535682378884493451954920526724233462912407382924082505192571364041790691658732671578480823583631194679545865544509187943206931028060626748770780411398528730014289280539321113309779041289693478290963539476007629560852729768512217126455134852777012623178462604835415623300728349570997564292979632612340189762211388643936424264735289789871263796147694476842223811866379577140192063394649214978698287897565326400916076755240508763170036995162971826178812732285750589638893830717227152362740118963574282832821965510680599826839809337987719114306662102911504587954557371230976766653967110722523788206126627790814259972714183624500870338374700213299835497551607493333229020167956049325451420895390705524329592412046498317924679266281290086748768869015283227213715158992964876223122993046983361048605497406450999964756582149830139570350148386380517568076371210405231052611756598582477004461436027095729800843497542485360741652684403715474928109115374192908773298338478819093784820091785024626326227019601887412598466843060580657635316193898745271977262000636238521879406405962525452560682458582801641245098200670236394287780337721816804017219727361069331733457983262934876682691698920509388793886913817296489731957175079291828099823077635434131829327924373581427345534077979107271598209706583317342417442270422572618265966932643330980271910831089624794647566881479735914152390759887480611146901408840650445134846731156375080281908327943514900471925436657759275765926351696594286708988234298493232562771234343763669457040734916913096767353598726724966941461905612375328510954313152240518446158650690143257274520132497047530289191217432858747685309891880936131355453506002945331214513533712340242154769558548053968881925596648766912518267625508546688829554809362732028414989928062592235837338704291836139884208295465783027628567007602848257394568877658545649667126800613584887975924204927296414880787244738773609776367496799277603286486270956042637285260355098472987126979386111310594217198882685267278935583562191401560346051462096166162380583994877899988838892773318217367000140556483585962252468832705687728641020011211333015801022558345699244309129014245330263352582966714428058163830649003309451480326467097856687164936329172488675296756449404465460179563264356952464084359539082036315651008764306412839739780902179860924620684133799154726050322845580064126141290431044877029986870372833675947373008779519217986393561543262284853848957421110042790272605965943302757101988135510464032751478449825385014337130044230966099639440494297308949317061807101201808303916828428401554833722007816823168810370092814526701045404974511038760580766124373118820914304426781664112927982092575523871776397837193393143839611476606319553124377895090379862271767328284036517292333232628314524241205454536913406753251522110531316959007290732953757643249864892802460173305291384169564320622108217075520665191351849837945786858690860768687902878776023130635651756300087494879541338470684612820743193671731317257985601983738698502946467980499158349573689523857592125315237488247637800577356897047384899048460257826795099849607198921602141909106808209649073465312401100164126441214431480126286760117191181782855509835094731403898285413010835242547038023273752196111293760112374355122081742716126592879116323707617493680322541225904752710763205304575682098015243057395032025817666587390867133199350035324260754771676801529846482362049111953818410935713141552912113547756408883904638621242322240247521855999110109579587294414982631728054105267641882831042285081166359475378633889598254626840145649441620658855552485819329487989539619472840590730033960760085855712719160502272030448723096717996822939176315470821264602546097431349452997251467104459922644945122500602315307917395545533962391402118005785379363473373561581893827946104477888224989445353473395670464699070860022145401194559381007175004435073317846481968089293887606479360874254731789982457378095219131474393117182290861684828133985727196196495680504198605600718753943034582929045638802804464256104886299668384347975163516444250311675337979979993427242010380807843348657137503131205740680321685719197188766952913113764090181933654152690016923708642160334795730042125764074837705984814007847134315022231671298227619744687118583977014222173054628395918213680288087889557639669193354486404175586599282064541751479657151227238061244737126736822725155008910400009828827650273625124658317450714086008122759846862494839717460446257896821424038223750757929524391352527356553699396855492830532297629148226554687635063831549217644320132090616777854045839351215032075526649952015534817791068889580768573148774693512971207124175027292721512681118491327478042699195739810038315474175864806238600740607698124486660369285985800588338292924098246703993848961197481866682077895892324249143366769695920051902053304576545256028869052619014345745987626568650399787943298444906845671662532431770995273439276214819538360751313051605769680880542717096644303505235158235913327032440917410678229962091773375574495158866455582452707033458839428658069668908379413577785004250600033929859131790984155967274690250808013705879333877657715544622191813082936876468125630501825627742388312357698171291177271770406624846582543799227000125978606564390707797275433675522802639252243848790276383231206940377845287469772364880921842938497444330017017887644740358106813450402474999581117596159837157888969120338528967131157734374543220928322729543619883264490929563300922779085987424119779667479939272268277574540885923626316271207930769966382906414220823858504721215298827219596415927483916342280700057319150200469273676210859529382767247500874697007609553414840420587574903341177711331349017529511854594105777306124597869266370021896296682079037710047724999139146363283404842901797400804990254404549407952637185995285018921402165363228849633873005309157074548921140825694929523206869443092532448091786308362454478519437499392727923847818204877040470028416402511181964041471687555349335943816418844930134509980229496301198700983014415491536091791280270803615857933021581085407974339725714700866330130026100005639103339951540165404003657246803572253300759950256037576804537863637881792528365745801941581721311253227568715153693974467062487616823139837114712599867750877627540749917279501592854338699180653275937033527782825959365049288468351284931213885040456541137122192102750297642199843882733624007618654534647048360145475091335373888701376291247139453728456346192122763761259256607835765636660909521265601945726176431860637057708025850636729580415789895699255165965841649430877231736592922071471144099314917874240763948752389841107244758572587725030037444871048581643545360852418819888380642986331928639896817931634508581730787500245133585356934066529931450904500767149240470717831333778762780558498531323800878387317261472269703138053107652656526503627709244273815753086399959136075730560115390747958877786034892520747368556074704574700032720342125373757108540389277546524068058874140418694033432927206727331667608461387332251034821867655616649914425329684621949826926911309022503408271481196343834290911225986609461753973731398608220299882378051751416716241569040218162107830180441753685859631253974600703136900916301187396829681430167594801160134652530373300545007847791101388907935793057319346126717870665067618133812366450597964006419309994004481072701043398336800234286406836395130309700934540878884663418425905308885303098578102110066627894042219331423108353482636524349708107231281790014579077853384424838309265699226275770601846998527738838027271233939611064857219235065854881400873183094775452463557695374422596730129307787292446750215613082378079063778797510585142380831995805434048622841985293978775073187604687055881459901411941355545141583172342887878606403169770160915183015570112251213100777723578708726489258706402835494853168049468493385607709940267247998522454779846837493077301689928048380107553836013226957020365977087019015491645071458192202655858219491434062019067555482214535649487525722764984315194825733031637596665389649102360137862387167600452857818750998039580558737859481444008563003712028915292323258043120887114464838595587270264755617594654761299070903507097413598259744377621625478134329263524355142065514730143072676912416810563179576207313614105820933473347103548064797091457757974583718511554992182483448755729625582285544628018573594004660252684367890264351253595052477985838855102208314833496146091212099150789119512704276197617899536813799057766266611870030683722368849969518150920764633326590267177344699832410185751979973713773806750704263449905922549926605316221512585237528041779212435036644763181299878131258403763489219532359606546871627689181888673007046519312607812318385359523306313204851067453337221208405255944966832799856796041103782721693166735674348074884236621119525285013609122771383172010767977322534339743613506013216286330268775931491052656781622517479281973495415119866535255292094338689792952765447299254114760745568872549847523515091080339367505647070899370340666757431648228428460757743471576480209067108653764068726080946544614941074635747383459739790703404063025830087714267818961741769185867018992921478809922846198258779437842125834429314988371989780968157690425955250705136304200682475658497173779600839207646945391765379008395115785924680981441584435571367100383061092741146462591224797055231242801505793422376805591112954299737091116448478508784604953351473301226106514236091226847069804955302058794954830950358700311857970590277424713617488313031220961830596164479752224696222967871781049759080399174515407074213563719058938253672315835903552256827816663067190851801877672320269174861516581243944486055154090936195631054126811468945152573464854723652268870118167494911894551986141518292601861727957462812416958709815805014253719415403193540778038661840023275393764950770459711670035449256206334524818508056360967007269075673355783723378644100096620392754162724634023573309963016511125461998277251992523411534514053445047959446411254155646918170421659671681817054363958779229428414018446725686209339672157591101519442975039310824254362204952760725524384787710682965500490259062678684724627591634438299144962823481527911533200548870904033168555057920761303020244934334698138378077113561495683527863356085250645510092415899484913297894011420324997420951793670659989621795378399690956968346996599432224535431643916244021896928340970273148583808333214687971049716997857911948542879989575911790916355764024103341505327141975959917294027648414081192153393646828945493562407311916196586596854142847689208682193287600900455168275438024749320733238955162601912645760016036235283999257518732415760521382716049149770283286509093893785276517843907887786147634653157991778762027505140147396676582717401194726870142768616944748807376576410410753177796439944327860457770998383031447031638780748036506798628783217005398859984859362797456770404978215976887400533150589731881771632748041736293756926690273206295641811071598871257802220213094532626536831764170791855793404530325750924824462609713642891242828505414822774927840010945320824104847273099634620558066005217188507415261597492834613282531036849514998283132924384895794129175275802826321621460314175731211598732343444454454217420773363253546203841596898053685751307959622609140142749736756221748380973021984248798408803101117450431225046725269608892380627770927202811215511202917303908411429007915099466063997873950085839198492006337126698948814629130565061432675319045545196528797365699757481101662859615698623601047105218369502631142005276968604306946884273089465368802314468499213671888816732759539390651268091333159319750894030360551371639138256052605433420293082273861996761676691786872764483099131748404072609716381818083816718272764658058676743206686486270417792581937338201180718147423301841715580084871392793610352439756020151676473784960870904113589161622806536316338894640714059529658921150535082078344094017086325221104900534102701831946031892317166907195613591294750928754853646110507466401867776306748350729121577308833812325395433170157235206739537815711135588387584491538994650948607144101441308296225004385864029193581272560350249309189298987576629777389696903426809287505532998999839356211368852707276328359753141876820863184720035485185672465175500165227841664436261610057363917049786177803915565368831907169812016657079810886363676201391150860604831750370577272440396260723546224958867858560237796076779815907118428524743204962759810178266141238792061556454344634448072294783572011776982245250278220173501305763773688972357817101615184755742227404015830376922193134654486818990388997229367160062394614667165859046976906252696233659769424149820971330856485088133415625359953721407275034184538424906294466564993561566994118837174712854547673217567396370257151263942976606634497330840697226206014885687209179258809038442413138269804346960389662843903764804558748316765273946303738664712683044520952392654395865730016939871747262042481385198210296162359429017472214047028588296112258279752419516852943479968440425366220672639463665248071998606056001039518649315332065431880042303311883677493054793413933534605589412240161356305152425615740296585501680748666745774330870750284663323800262220464950579743232325998103644572384507144397084547771757013715316261107989975099891060532964808810779981617552817742419099042549572630540206340047838997116936824542792020266394841607173829941327423094473580348571775330517655207555719791899133453865292854196827603378670363913107734088431709275488368740755571657093210850470188574063550401952727712882567503090021184346263130825966867755564679834212783542914507600671248134035900741026314795726377522688323075433280357991047057364645169375042999108509381446978283381200240041097433936914276020452476478885054293744919889559005491348829896190395333278729466794079523582776095754708133152025364206525152785110078437029102039712922717479871647782646629938330546831332009521002582188236075782787729089672328222704967888874418312960493529822480410927391874233385715446069075652032310249911582679582750830939440870701023409399569998885414878571207581537809389615302080182408283101449853669233192713300181254081134666302610233363028944304081598545849436464827282868979144002845852763774704290807983740209873000644205882311954847350000000261161389199297398917842515789485497095541643206819058150550431691441965252948437548011517482156946108121355886305082819392856854524804576643865288531612818679269320489733268046617274105128059663865534199682199134094785214673750174375365812815507919148447794744560075046677095935957937632706395449181651940711398697847642753832107815747695267792375959191696354140271193339785005039814912165121501139072056179235491714243589091928389184268907182339295886685264032201327849236695897159460415515053384389836650110978098268408800480536633458708516422141796365321226402008853126595538547471813905083021605423141912897695246571925908188462820755515549334231391147946781228136552808818425831851829169923429980463296569170974245968673522428248681582383020201278684073436979459247184665668366182757134883018485940420903255034978553356539499534175723247130623628701327315896949966832474140315540694777683451085592267862218897884155489809491940983660544734034346917604509827806130389613145130021729938131738012597371311239642467486169579276447396240855017121178551760250767471789553992565237356611302966921850194339697855668859713181114452290771129491495306209747027632053172471814779269764484790786915188028751145748142768467662709170966782033564378478046807504182188764965347931391256976014050936435438649867035024565656331628514504022047395952354307037957821100891883951828405083574053233700554125929418838677124147772858654712313997849737692730401543048097515106430308289227600821514036312777698407874056933538554042701034456298769146855407951539840432394644917668249299987903275683313018662820419489818067444463567954049521348191981996392850993823178888065280605448125732069575955359165843277054165035208747196730241769901264795235088301401438135116722588832238709537152778816517851543289169912168322038485210176946602378232014437030122839093477001864497401827228925196121440078782695727041376776575093136639097154935630558287811798484640402340674545979788405488502860247064157349186743841544495745165911072871063344734114731817406698062268930445221695883202286744620674223581377513992646716323844652733232616249856878513785190338479393406484271213640645395150395047123661572361079901874230962480289016853947009527879461842562895146396122526927796827402677435631914254313026371628954890010533433413184951067816483864971286768133177425764344296746773939512315755106763874782406815704991081131621804286593301224966025500086636535212373109188723029703191733524953062338155397078442378683831481552393174292938535526472765737885344028871160671239593133696968925470270362333817071345729574325045961018376025297076334467013360369087497076272584911733956381567762788085171355283204419232229404721433300296074481397756105698923984192732301312578408513124378987007861144442780093660674265165199142921312982139026227375822793679533138823794179988221872730089010125971505170730831241518079017010442357328433681111371321041413397957055766887125988127746032687292302227822915971472830217737832702993491218446756148763936020338904914560199359887199787105385458046786601759569482147742185675851004647243543166450142362077026340503869395965292204751888477238796243701917781363657299955180111083948709576796820597287888939979438137047491807937170065104574682322855072802452160758977868156832199006141705632877668747613532337985402770736742427285910299897743877009831245571573551904426428444839324753114715746762181825745780540356823908031392429946557717241633567692270334189149430489821989253156819818205074393154662117030720962355397863985665531680198840111703543945173678020829703513613908064880576459279394813049469613029266941715612920523572313704569249134011442475401468169315455017831270772305319005396508555628540369346979340606879130918145081927344530029052667355660079246350284381054597928655433829142476563921013939839304355783127565664054630815164798675657352768802614180777916304992248729692434794988623089697768591028561577752492400498581282647237143842502694150785787477686006803671832476152388457490216573039749787173724469687042027310928519780113764453575624883748916076728105693579638428649184785245551664914096517788482416230331812432324767688486738586300738714143499991979261914131449275097456123429094332886486554851302301165163605648153101483605264916833924539010180796218591436708647862654125760353574709510466167054738670413533802700292244942022976323984033167232007555980302827497163377478896037176045512399107971438595281292670143153146761932563178036971154241887932333679758948926888853408008232068102916803102313952116377173959388284076505673063163078997917928987555701758881787694407785337504020156433818933274783605288365470009193027996563866438239551611567322933280708618732589820820045797353381468998382623684770753043469047483288549958268129350228946409862587265708626937552893249938821796611593267281897387795206150670426984557103235391575723315360984432207112776386218975317363054688043562359430357968043267198688640891606257047514018434661335872987709163922921005900400867334795806014140164136345153006490339237150497614229079669906198877184665715977692589079271448613337012423000019600631528460219572580103675678998695694844830116571523046011216731006713281956817478134449076887723850665048863077552723196354053021162814171956532271164187512696412843215797819511242457489282428002707907543338396903338188443783464681118352721258709103773839969747095754317363106396357006338661885420980364992135892649558421104987972108706675412694557137546085485209038354889703073832106252814508914470037081227282128523026290381848422237058934920215423471196884242077569577787416557861522845091160400677887442126224141743936409162397372826648854419443616024092114752227006222045901057553729658241058053020708254130492034762920724202370085165104988732828712430866501962478131899749862100711136264230994883452200031378726021141398086272004036222003465629441134468524917271971116037416955441627188068982078233471965197471915446530119135498432315023683501992674303153153892712758936789696825720356589239532665997306413134594185426986653888223218003486846680648497179082800593940715306051551190189577351382030580005961592507246315576741580925895522891042316696346613340478276680212393746774991742681953186776621885149408153508536197106316569950099370898978169056704355462169350574149559117075847187886355957160372632797918486960688666281079793593155175771256810373767707259564072459482935978260549356762908104637408528143269520217299741667155376619152569221907074600964655202071116601227794657836459520586236203445331884445097451636331323231019897571727218282178495696684712561708371839338171040862151393568043068270197704319489839350982313795205604769087450550015110877571296331034947226755040120176795953257333545556389903554289940574544341633799800902899434017697705740040919905679199552192101506650540584645376343662412428457724877223047271134192468177121268706360095219237569606465607288267537754560813883798227130688842331918946857290837843364256801758862974692836604234243026485774570039884807247529810316828411692740832775620794705364691323291537716024556415685585966075446888873649568221554173242957184441270636921485705775660786733135169717290287193121244683847629316839984576406689521722426057430010886621922770913162752432500423477503491420109005785726032463576942661015408083950663616920309316764495866081974903208416376346938256599793086503213697088077055570930556121427999904052689425016346319349504277064207166908024146748674367569190388139620024904839202929409967217713909382858860513145953509502851735796491992063627418531796019508367982197647622181640991344960038617537745148154077452001324476504164673568533999364578243111851265301317273646939914748593356035775464918918120048907763529923602657907742155107908884716131609023324958500006772069205316686296048634704352629901486060395532655387767802461797271446249010025384770780669038245910679942807287264648862938469507810370294187299166153278391576349219888110430039143397382379439130803743461687177231711073628936230192583522629402618818565299406387472407376165224393707528266910059408880003825856761457679955331905699220791527873191585857441530516740394210963675393805310413819814913652880773732618260710268818152502081938980339814728238060567863878940638628881333802079038743567535823446022413742598514656468040470130009880711625944234282957740582709722557167814709110205115634128694797250270167406160522381956667136719939518393059184232603766419875540408975600472541377667089017895633788181871478020503802074943896394241785545094402577269215582151973842095513419367073773595057617316061184119104731964905896567302867917267348797877116132511004509568697356640034989034635260601512855810820884659845916658496405939104017475827065739333710289151716958145127651422035207649101572839833629679734154553867733389757064713586970773599177749111880257021242509466911384264988851414073452419869509546793235939047908234210773150055738613765615183059935420069986757617852995551603990109374703802845680200252677303318487330864490564400965472480041341212834632975678148772723863733174887856543738974770578706808153167169577929910708321036574377484094825089911943999849229233835085798370489327500485543958849873036054828724695023288940393707812991086626481477879160765872994120780487562025074262253760388786653850502302014557957906619380375820861263289304643464524830011593656555017215754197032486735443569133595069866864919594395796654728943952178833332783967671962306872882858550902806407664569735322580750336361616000185112458931615690313160826708174595854667277116280693006894998335983352566705322971625658746541407939868485691026860639207956436794108352073390281685102498078212949850601649795768768959921435338580850753719923830075992753980236328323777778138285478488574562808264989090363974262539181185115009003449482993117559608098324493192398202134383751423603289109084763436481601095697324697060710176726365317933571634423008947240794591192574567941814175726899458695266932382471962123543646962941189163780740924426811802232689163069236692076868841721528119858309064751619677910296019429126428672990021026428961004853426726935726867615613428068224307434679065295586205375807076926415845993985067015392278288359366237428922470244797955761078689255362977897233047902659127665435340194952212677237091472141484020515065306406619451430112936137057219061705104179447070385302225792919531940132142609779605029154907260233611157885488772163342895822882897111864460114446096697807804271225238040202165984836656157975772444422270729327311216343894175129752173505335545064104789048893320143404751437923991015093275061308522280130636846449204554055691464823343648050762863088116545130301345611940140908649986666757768302395384434380860739858423202884083817823510710388702740607711758960025774418047473403506677276632393835364090027864884668933052766085591955883301509365978150685406548472207235587647445492830899904584628587813298747814571027914171630523030228187556513288514285551007767863558494597413003466100377643329246025274427954784090079263683487775279933289565117285690201327992714167316468098547943422421280729498905920124175714926783029082062970083393089186054468060047458018890763157626227275712083657651435463819280205662722452103884050856229577482489093656126970394829075110932465895162308967444703862459922868431179125769950726689827408490432901128773065019059275287713877614252135342654795533290598610851391468187476723277612810042005777181050082202465325347023745106980091432026725030253943842051994528157216250844073590912740595408305842193231230508064710185147511591767988136949212018728014185046859919437645529550812094463880230847472610566818583491090189285708612512566744348538464567415196514706935047736936360190897609809873128450235567080316938559363072104729359172427187975516715602761480147199749711240021968740217430919787088451494598819174655689748746342866578757360663631008741383085297643420907834830647959809614118281612503096795809616171389215941970314392204908441671554541382969092151821600788676264625038422747474090467313721300020281185616470966633275068481400297655770131626843249586915049679351030689947292891774721451151718031780334867218881279345460587262448414153668180493163089775117527883285644077417398872504689328457623594144482079986112035664580628940028496615390787686369332622519053619941158976917093983247728691775322873237221528502822237546572137087835541110740766508894759234193279063257144291363981537321379071316315422843535440900913002376810014402192592431143153457170774882624335996380414685398404372488790150124659471406179576355060572515490968515290183517077857315215977568337423798650661932431028823205480283906442949261312385538863190667845072736706694207585619927897049431548646723914639653643747152197067498276184012084275285996831456025882042874402988936416211650361561241673968945583462203278885180732757053635382857323189964140453998407629416414497948916755096496626521774365913869867962402948435043509008139320710603650465477443578040181376212792525236482913949863671470192199037238338287371610938081461155039111975481848449476757741568038874440034728909827554796090623467717386718937204622279636614953734694514101352360453486959703667210165912715922548483553534531029189350307159002071456518149550565256229247416006148954454280480978830434521730743604319791700175089175585183995158396922084236584265186904327491481607050715901652730223533847353185340276622536640768498664228454086472578286986080810440435434759620111477949511427177960028402167397020592355182896415414679128975006048508132306339350893361006777226516263390423245469684415956793383735510116810610568747360438501396482533468367247024351234681696170606173319592701760550498196100338837881881851904133864812534293416160289064975669515810924727696684097022798370839039900325711190924298094725775525511339775734530155100548215408830801906467668950103560625380322867746093089564767389970521096707878450875756508390891365496650380660587318285417611133665035991736258065747260787495810602965264226936913899923774850124090758378297288786350964183285151882103817642826769907240379226107496123238300600066599257107976236853433122256865004866635301599572296907746059509964435404860734265632896982022212311205382312102087327929502576969679582407871976118934636018381466182259222482701083246234073221798007772760313890382668730624032924689607934820346357540128025639390636013939491712282496774731851288448496675150573145685012929192099965816049657147860292010138811967092740673541791738981942020486416419272019792298224751553239286260114499267236753548861087214736751377676059842175006591556510261928763478865699440578257924853367876413088590935901067271807655841746407133288856743792318237189597718793167777742729286975258746825259831244917346876215489943260562340565650097775518743770247646376953562132155261000619168067216252323322836642302698442841279563011146542497382101786736102398334030495089326866131171247706670554220632141492009242421792200897205613732497253337767572969617274978897169682801516881462201449998984537531615990216517817974789987585921825053108163669829143695165811278897738727327665813237929226075186003004033486899147191921710889985385848749058410924678537572904107802512330637553834112491860296678657187861560800484659964273999924244258845773157973719809604704649489196362715820266341001190738950765841501405601465789835735105013518355492528552213238951648639850556406049936100320398428043069320708080452867757890570762178409867862664940483514202431763336506585525150764257257289390699229820609873116638840427582090454561657610403109985787550456637474828507608815293770588465445324382416317059648870966963932208869370309791834305734059559989425610906768313002709504155074196742471914741448869546152063563391767655298787735645276683331901344363790249229650108946374978103638354230123980459325402674287021711620000270542289408093523443387709853953544735201079441535189088176591032668176906580249019147361101478710306583005523859742009142427159259166867695887416771380070003025232722336357303339377683717012645456801796045204771864566859585485818662691451866039407557449718509345931518085332191063667155303521102162883310817085364578514180508200860518254991666509638144355537200528157685724056004026490478246535973955479132514890064873573530490127075551436083684558956166063707956522292304413877014847724635409751330872337837732690234151990727052870353809962838426135402839529420891411290359815884445387714492306826205359594981029743329454285537300964287972768360365537039711053777777955772803121905834922101051727685039468332453150503022740674069091255188794371381173662746579637466003546957288304948428815417277466779199378724423832355940651261370872350330704480202815377804552516140291130705134006478558224782635195888684524670573834201225753459854065867687194691745650546723435534028417811803412115259352098158382626136217236865143903105931077739161483923481948469917593887438598955295466643549774590323865149540835145783465858269427112158385262532831622268615718836645730745704027673580561326215115724322757502280779635801964076333877577978906571620697654681699277734811177067864914022934237968747119131015716426611505548544025595616462446084422321458511071524347397459656791365017120529477377584946005231808265975210567837295157076327194299852587834843229449332318881723051489331409269210874194158686586167779242865686363361656186593559791761777174351423931981529153318309414776769544237402103635395067969083779811249403185130709386865847539178722219473604715111061358127198190485383578992396608783735569397491176238655127232289866735091599655234262074844961906211414577957771372289544331975846709335513826264024649996117567173989172468408845772181271059820444975811742424037071792775790694587184496829639067320334982568597915820581278204636564992843797501136518792045259567599529448477516817936731402177254570807848032946331070521295625935214385167753157143587105749441569557778276586330497259450055767080497918230761745446441320766074946939209998666084433068461431637638276339595877938015276321186505035047662996611640775877245873431545910780033576116416492234037428549276508879506717554503456906624217962633318380045777168836134800651424357520444870715893429113043989026835550771326964098433125605755373718924105800711650973393426776420823003113639403095884419094375290798325456584994891972851117737768251187569314499046749573326112335366852444647430432619932255049762416926330505355604336136178401261316631262320209829703675286640652500280263627910936875864603512151949702124316458313528928030554814369800475583573075902714214321778462705101011779837725629207156235662528133902291204671488311640925596152541823340881511872887030221991780545594613222012924118001109444077345568705937325739821316412438765861793144503903140677500989626532284197389100972214113564695179166078952405634237994805557206332030743084950989772855928571309398027311315503931035464965926384268432070504551846205800241135042118687266101465960746430075720145214511696248614091713840996845231637854057687614094228861085551019184201788106042321111969812679412694940834066677381536207147581724004503797892426460251606939315408372592029543100781762581007136939654305167417011515231567036545499910651727697946774328278525552855760624765081756569740977065974733268278788407123375581188569240163456710423136146156572448161239311585820143675805127935927762813635252150462946019613334603682129564549641824454255739330869674967351872568147680662973924736931363490108492869676761037536574258880720064393061518091008952524703957491192013526262901330509605231696781993607509132590499605292833412702841511867132787228463839164203369308409746328736198054937639824328251818997408915539593109618100486393083270405074935026217205582972706623676528308439675967312116035583962146163385188342361654061851891411923864111040020553246656241834871330275514273312316451889227698209003717005240301571792753538141962794784797438628845280193880114113860540540477816200211364561056299448695594718571287263625255886287969920883174581457602235223847399476043480017508167666917467311224133924586230480084676546095145156591616843535331709973570037010781550660423189269554814228741156909322637264509427866205579020608293598475515763956089391848815089642931853033619981195665992371321998824490128005990355872268698150326052377474416404347202867331089831473236342523863290501636118686830643661238411973962952602214269491969564442530609014034867128881163679275433240594113351431060883491130812655502832257775248199299206990955688252436083825837151707833075235704498775649633439044087051611117370563025307295665431164534447836032569083332406864868274307818315492703319505560478033399538392284885480656893648534109267736237785344919017328866537162973764766615018822654805653730406937145261281505443036078832713160269182746063691260202458097681287657510922852668241425346569913607288585748385969181669685557433423385445343255158259686602446330662134772017372292078349283486833896119766945825855902324770753787159719662750187448386510360274722751132359350517254293653186705364171105316794767153343133100001985346808902864565978700220909754197281722347619837777629675912684995105984341807762125834718950871284206173847132578436506735832604720475237634610354241051551225719937280216144142400559107543661292917885948282831607992773060022347804654032324479722469640186701374017206506674558493378365930164687024758645323594624722493791995071604821498194378979024765004105556360923027363964887220175567287537521112180297407633655054173296873445107526572124328646778863078935325092323011047272668827504103289676866598887440765569873061678257251453024240208257376446585454747338624569136757612478069626866966370059434456620210022960682556616801087587721346724159841707975697117512618978304423848491838495646350680505922028095898766804823083706025082085458076589975061356255830762470024398038111363516656017887602286848301541146730838135984882512147404889480339906995297223639569044343963168534855972507537979899695540920088975833875833623111156162412922514105654361498212578314528604951850016874328798932218086131023222254768646400180034944675476005688189637112165737015683452118710272881580192667315134092053326572446711027621396305441257322756547936893164417391742938736084705782013724654809477816932891482248551259909395596965851873141021375765523292822063272358680931516438663452485317567864005216385508699547856347389830249512331788720129647699018492875833873058160593803702669602311978734562910235160286643889024510058486404623922779038680222208780459062640607436015902161347522103320296668222512412700940997362603994672123375147517178852043623245797130975395639644885267603526019959421461931612982122901710006412590710549559657123605506199258340795561665302359293823698366901393041371566787528931432437985599370832980489270981111836610904463001882716818858093767499665299232238361312243403203950160818330353141826108470244718741107246809963101325541938370472806836842122894604424463801836353077812212121609601603286857643105911008787193596325582396411389449557476142791637083385967271743903761374158717006703681666886959643883832296468174422005503560485859349569939643097819670909711671240939175889482337794805703552926887870635896536831728615443723337190487303600835475715314650004984535326642326285701525189515424487412224477922659470442590989386659641712102776152618066926853950975612868119092342361088066753055186416969951922719179641317129031298907250406878748065864574193877213683965842508082637296065366609180486400058515874003971599182450427221332103488485896481574552728824923153908761682098079815902924663193287079136888017149121697639526750717057591861329400215406972057056090594223509098315410502064589633614369730115774820178832239045218382858647430268191329725840386445749979722222626479494757635271404574005598295965432853713037989676017041363580787997463433666536657986188803942867265252826276661318868668136268502871974334119556103596363851454417206058297609266846474476985931864636194334385018177657300133021682816391843254521529890387335197459338751104951187536069363600665769992004222975792692898887812324094020805333884832953158688299203230378403173459055652789596491020027752951443375714918812464362764063927121032821691444140531346511713029104508019050164736815393358101569415388820547601196261627069070363243901402386474248047320012181074867909337691520852863685586869671796708554131968186240299961095760443467432611699642909504133409594542515469331813571224247423795995466528114593774245176524343925875082030576441103234355265847256019520978905204732369662835603258300271312412002721808309414412762703158043231098857393062411036389498841868998198625921949965166026784422641631414695635272256431540550088328296385062448562778504572994762303218886534380793877095489113957408792132727005615330509949731329814167265735017755268501069470803662382243464732134817798313328923703808771404168926953844118195497428222758775550533344540016016593832512867629657325165301574271726036366337795540863409078761239550168209649181037714131525779049643357179869356230004904710069346799778507808652226283142155719034374878451363868790594872537127355863945366649889595254425393714468212481929389540060747940817605864399563275357259163913960833050863482160178538186965290801307129213943168540995192789794562397808368131911536577805763287662699381348705131198936489578533991065840828464731882240477256701382642300070968922571322925325340959168510639814652580786574411374307703092480960145089231598126018198325147986873733836272074595738949263098225461644253325223484989041518273031195145811522964226344928526455677161913527768447059130094020004509841395064741483510595772026562432613447370600263121241516521175858267515285412785036378478431499872053793715294167028317968122242135381508411339480901568477810503099781698600277234687054037567861438765826641808768710940645721706072134012451178976213233499042318610517228304842766643029947731294644007515128207660347160165405944615927992668711472678478877677106377668671345705710028256302629828124899976050518674603924120828072117956386188690649749927857835775267144918190151556575326285836548464798308958746272379110879129561442950050203614422273513638328160319153799820038264852785019419717879681524409498860159741603758073559457811471855765314169504820321162107160787473561751145505446052925479097312308739190021286062507789728554899548558604949513742518765178902612492637204305615950487115372266901471784781413062190883936438188645684113544150688447706817623102295467502714197567971570555154504123274853870683262383360880181376371534399017513474487424967728058981270216478560977700078965350709280363145035084344687234844294261918971456828864524653545392973001140227164256399161915493828348591397063392884350063925425220674152599141911509356268518632746255897390462443863010219771317256194472200177680733662357679923429998594808621272888849847996820811375128066865752501837861734849207018597282880710247361322620307889908010876705835852888617256991671480252675781762278830733748742809522517005338222040981098389268098143689787660995086812641916553681328153607023757360359341958441815615241591931148571821252454793683390054961277708805436127645629391834555455872580165892325996171032883906326529649838150812184223643686029720388151414012235471825641980118714430107862611385224566979637286214110256772356839025653475226650436534844808440975956526105658113265661063387268531839077265841977249805172321766249477027013726823693340081710161600771257649977635256845816663197560472819662027001569672686416942682593233657424501857961420879627517861677342330650421454835585093334190748817116609092490957861374242751376054271547089664009108812752811717574188224513659146138140445266038097923596160677300355402884658821532719292691284251208181930814138688165126909700282530926082389824581693151225487391422229157412957696412673522859084159367247650315436356353052404381339753297603725670960666257048152365784630337499175163878347455182653930715551900560661414895074558929320455124158327678015287741466481722507133473049318084569732319511846795992609415774624384113037611031257570694390740427373718716742167936069375329898969528529299127956081288089022283354702573593639764684988390055255777108812984775672612841009753722502365005966454055207755799485721424489574002347231889413356888406353500008022472793169072370839258471345598860094988800666863808968552615341028418181879659083182063956953158580049405290091082940923722224713693255686537187489102623332829984549173210120703519621080495308308766324669961382651275653394747653726873185696273563211387652773943591646600660272475190732013140019517814090122062969191659473299133290591810694659767897780075251103791847970830559464697666580588235540833580956542375569045941919232959474422108312314839632604229670743279125687744022225179107458522407733866298759165032381378692216293945699411832664385590355985011324248436407820670436407598676166918128703182368892831175824365149700241389337730088405058501296465325586440686426889142233847703729529835146613703497519595810507208053222680685716187344513696850706376435735514215851617555647446106878687577480262934915626007646811885455723969167845822518625772487816039645170563425955377258526623384305847520672550612279358496600757253548826933953563212000330656764658861291541440422127238413960404748040628432287455203068779130562053698543318686467806950068732301229321234487082238220474443877320329910635550629067406330231966608278627655360863107190245470274627252233669978574900866604681648239515393658337830739833642313860595630759603720271365680528077072234893397886099691139627160164202523020267472121767747144465167622787938328511873731361053192550206172045419058656968381338299239307416684196501716045724714162985091645493266818392969958428975055717249716945748824457653751301913611886110138933303982522729705176937324842698569864364111285763258372180017316954403464840385883348273697806512558957597739959083868469961918673220208781766201900964407720491343615013247671914384128327782690549554674615463995132413458961894720782900954396711079491273982982434671328699523602979602088350910768570521587174373840824159935965319132791706672753066166710447691179668502481464111287861348763653351481669088982212898765741918900591718278969328292633959463367566742638782651378662634573700307340631388109869974781580854211128799358812509326906819863355102234157098120419243004460696398712694335149768832663944143485874634529492979521446921159972466059477128042174160811549593136127167201462418635192037399032008172187624933895437513807666385801220587151014102988583081492817763753706846951049826469451380518274417659762146980180357124155769942368461708055544330210601914477558962949098699483139184209713356298940503250889895946567223292763422874077194874235092434583660341281357206072541485884933851624639225637168528421726225886297974754488269940165070690733402648411065500969904280777228545889528424159795044183739832453685792944832948689532503293104524547184558724278056869630395833972419282661670141961239646099203480355016720396565831655736101039014556815106455874168997865038198821395728445353573904388288655693834803820804637754609700360088603815542920868125068068807050609698777311927562799629393439400020571367079693814513012748684829745189935625527120191760798612682902257345229444351115961208300235430197803393463982886479734421598426743212120958213553149379081676171896044154961588795668785237375550046625354358846293295861070877361570603861225432790839943759189511873701276738208169193579376731065279398402370157318904006216498028471726036304857593444343337180976031293500026792819982814189557705223922556129630628953181982031753101887820323551090714031835182985749022249941961924589455407486106257450138470206994132892862082326888778066063596667824110543609860039171689001647182432867178177100497892423229097475585211574301454774984000982723562645899635182056043749985966814692534023603596216939396774806022521705940964584351536808051997779003357661615253578807619018706452340304584203717543031535058670575965810298135051385936071740685816503082586301729805505334122388526628614813882862103879734833413821563111475775159884285844241608737101058286717310699947281536750935072386111366398346277038521718750686329685454467163664029215850939568195933333110329613788225242563855394195866725560258892333963096548415325628332853304523962777181428816078135503140028882266412759937011136298914173918889400480793675870813588687645400206041488279278843902854658731037499731029260040912353172761955889472589734249214511762373191635008245822484337472573094076140489630611729466571438987051214208916544825437172093971408293804933797873143330148390295055471662779480819717680893042664060347732272720258630190152418199052817238376879817934395739159469325716020887850351211984803746661022660633118656402355951324409703298959808351502481589613025872796222547595393202392983697784905164463247134177429274753807566107451463802801449048575556941832000273429446293264371676448462330125502591593840100569430509794430325608355687336032167129658257975868904666894596624931414709314884397065918246851123825232146381591358504004063951792592097967868714583393955325642817551753500882101377379047792546835190319649848355542929501278319511761466030094577418657999885188974449703287249031995001564106703085549983733970653012972370111022636929503373437688085890073967161993854983412566700746983334494040089415216838201125459438024497316520871929927254149261887386366441674789722835083348141377827615045240474756696312463695772266087220537075128259660852443100054932914619741516194951735685455360499987972616272561480852957663305908905967856681134820307398036595553376563000575311442555356648217499717206494351312254837196250570410912055116593685864229186838273929044454078553190071187617749432048703362267158185646498604971793163339540653611494971395616765677681213053307701054713330899585306855064215511469139096191666969288553836875631867410230830955014810930503088912170294951068960056112783973889640621980005906337810487903251333737917167569683779555179214588099752228320681324317204929095355924797060285291589318100707126749811174986607192263624473784651937297508609549777403883009059321276500551689340705613743281989608067104370518736823358596332745983080918676845290624398305476216350152412624030878314251337547027368767528655251715267193137322380903148900942414020277595804824161455430710151685680075845766389719818503592123914118965691732038542862597508424954443503838500273814428044739219272303806005496270672001102862993903685341327460456131193550971176709816340933262539740382281191868006361958664717375163867432286954525716090935769014574934426169993682631979114822294516580775965133374602748197575543596827868175815131821734179630504509449764631863366696309904768303658665721503813958149080296786562219007776976846017644116958327132549815434102071034372146675346368325938185114988614719691497933509786148920139213671627540719160381745288097987935151870639080185256044535502897056324203299528280605366415015802897624863073323989635283221665309575035787810017302425000538446617637124102175370386461386547426791935799290539850603391485378468877720372988176231529313650381575276840147531551064382029087266372072428238156833091460506896314126530863443022906843645603659221881082967642135175489663926041433960816711163628596752872374291700170222305664509235188580300975278362269877750447217680402502227693575841097442456845558100066215918010390887237291243649305030845473213083662717264833565630072450538154426133622875098231675093069683597636802259149565376782319963122109754630014097216636769688661962188289837344211482500661377691424233156353247042434663525600548024332631417963278543709025432321143691317831760527112164786704474311737056423353202993081730531523608013895946144370396685598587221325951532316120465608949373640561821946665891722437400388918601485507222937621288320251601156111033519165501719778240935749644300573319640677028633598901718861263591463868526903393556970137912796860930718444206870012563251801665340397815494560604365117488078809904286964398433249855851418406944206424584130001985085331058167063182202848399878302889114014035513554045329198730861695017705766143269353792337117521856022971891939709971903484563202422907630077657420625926169739378242902666493066025910040154509231502199979410740835858083148741954484547101139594827748209276650293723629207044558656644136698485900214334440241232902668326886744848987497414422094047581109555443324148850821568839180937126879237362898489214653509879700690967000741412001483070684238179203910596693369420186589438009205624729983039788798034814027817162733246625713213681847425561255169990987125394097501920571476744023104309206593522395440146838217190518744787795146921342784925904868808224178297254001438796603528615078003228768077149188357211127512236377180882901475706143317302949827408587108620229553675345026204689509698088699489861986850871333318962957532114331542686737671242182054199141630525104324730026412105646446200193133217355185174175623166538362053080221926140270654072279869558069992072193021998322138924827002226865398373058333858003854479814570890975861663573463773276284777072508650309261633510974414186876657476563630392712203907474635228371913439978496327423727221630540231956101980385196244494973673017247486324777642887128987134329469803690554299754677111509932283612597202978270363154722703784628996924455910454794742840266721629790979403626575902161226332052816144689628028097598839353659623803358259167850524480975117108691909314886580148032902617971711421147976930133818636523977209553870421497786425569352933900834442817028373318015063205538603851939856271660978630123054307454374673716852549205548003905912746134057850729899470826349695411395139944147421310714985325647130881335760948248117104327390990212351947310292780739473054075474599761442548593927332402102487221975779299124971999698528928210368750858387396920271222975258203014445669022605042269258356874760693506052627101814508527840382380746397293875108586510878044853429486835706185416740242682806447607408728339625264067085871339390999286621211370914614875782323016927129687511084070987961861046838877129447958716451920833340703761106639456655852148466950000758807820375263627916257703074137976538852612659315440521148824253040830918715623921173217669052921358862909001143357441567671277803469047843842152326722252317214669899734942806978622327790391149422408934767338261182286864869807574607507919299529738025226228863804504319908154938295282371950334704302147853561458811029845318409048678211276119288851500967325779544064054803964653337942461751872900761148312838845891237143164713016631105969947725766434403764573706626943795014128590429432433456457223358815290853243230630222982450030679472563403642454487027266617604265443455841542501415268941879438863221086625254665223990009445749196217135513499065601263766132320252642155334684948828426255686548593949645214063799365551363664362786933588170830340403867911734418584581442865467679694949675640461896283040441286877546814805684606648977015074482874382832535633969147812217007590673224535002056414627999032857518465903066848248220684599798316582903515587866601676589359189807526378206017082789269041098070309949224206393569164395447617450243306068009566230961450111391234254147469978539101305932023970875153074794411252157088167397892755377420148063609551051988499660210506482150765531628621169046123934415783541563888420127733858648383683551782943800854680457881348894217685004299958312486654907595585135732536941470109994651598397902463498174218288668949571178282607016407036640809187366636518718987953095041273577157015086213231511129397627940089607907788518435406832791958840347135041382953550693765335762694144897545012088920594398178599098459705097017591490484753797993366615220684987841658795541716766828859444490515195186739164267060339410896486042873079256153610995124517260577418011173097091889765925021275587188122560261757739199185457920877094938820915428139975111232724428782943501635683607952249401154862633564817640662134621209814356217014859146764526501707926530506464378495690522487059649193243430644543801405843100245767762066582186157533850444583928483473351417712383412332333787146139007918636487549092949205504857319303473803267754514900619704080875126288837712710469434444273564544518767689263565161346785841031658507930357113724596533660125783371820576771638847473118678161256661358994227825247214508079891685471042962783308795837709705921789512684183120042338140000467642789072803543475850889966167432694563476387531581196318226858890795748249351757075271376422412465243922606847025397962797319645903569776725415127486952524730755005405274904783012152341861999477896733944158841495217726250261807181519851358214895441419338633925660324804075121562544872123664203294258318025067253539377934768991306308736213290344369737913181876421265561255693502093724892457716765255215280450135356609484833617953782427158075288688299119958677015048444048927090718265705373489247886910207827426988412094033683122630793085012656033230274371104026769866559849030346678785542346596393451503333745339775425685586516949595505361258448278807391117538053318118014685259820231229242751247330647485203279401556879719946806593715892247785316355712256592035859628839831321794660314819947143603446484826787534516839615720504440800999252369813224453558685706842117516962342564612326773323241293276970036298022117974604282890095342381770274383384859741088605454856179924590904358431820005652846801144095240742331531697367942864380065621645066888675455190158384618554287672846901971255575992349299343599533707543395837463401250506188473043166172370451030811739213803577265940667384367912593073476621251374345868387428320096705517365083940095981196554243856277025959583758268047859472358861765761487942247053187284906316616898825613210079116007011571085302669173079895588578883104296609879916785373078907955614096048730973322238919253536331415421714137693789949402834007776773731903489856304210028595954304978247268801196892351659951359687391022477079264275349509961729525417404252493124378900597483310912990644516060464267832999479834301762884726699145540346903518200749553583229297644676396313638155194261487393066389720443531756157835740216856750375170785701680105624874814868721031226603795361545833008951931606534632993832427923977496634116117810019976116991861547368693248487886178768041530788944632392123039522392354122572707065175196543052755719454265234264582247091806389944740045374434618272351681444822294583588328761210520220688465661650777721118825551003508495037541771697811428611481075726103586279854819729162124865251617812462412882958905925585735307933788664537896483108105881232355750386580763597921263199439366316569016804212257466435212610710410907545336806157218997011589656734264806912616506673219180829724326058263228525789946844164359113825161336760441551479736330507342766878013459705024194311426133350890881460433058104752573638624302039212572300610793749370929905340666641631038930234600316661251183447814410341876850134882760868588877099603524583857691869797139019208683758376901008364453145019390521187596943959366877591469470987308627027903528120552310587963727657890369030037409114779972084720961826811139545267749268836482210348009353966912266950018430873151313259112930339981852447523589376966121947886001619183338756047575714269031940312360614098943392342864308580835560975139161486122980447049069258066712754163906802208641689529014713707244605143306088352357335152719786767701331398060772313916345953338092935771912186468304580240138826992467933712477487017221799738924281961134582235236533815728551731151756261133577673108836138961240585120531150550156991771562433955047127064127375182619007898818813579680615246737149537236194324101181210830016023545602547003888596904243003177925831301459809273275192008971449011669468358677286917958289820650845784617312758943380398090559356070299216993194488002402912471561229276814962652537977337011169862871301174004539431120238839067663080250067207630352951440404703629267568154436957423195772713236410704359288659280094569298397914964650252676792763079335627567279173421036759123357557783797487623931177824304314409501962266775526680199810594047365094106808156193085846936557928647920476909688618401543754354804425919147491923345161966144045884246106487171336301867163915860686330691371069085165213334277445406066877206689983145695635530341729676472538529325976426313863372344196887733002603059399941738069822778904037486294024496245746820133146334469072330445243917204654624801694036322945272412527470498246855889934170509066778532293110290933578706106106251640068084318242162142614891599044159624245211571534180525954011089677351816850550016835715719992311789117914545018545852211916837520345881219997995770663952766469098400325071528600676604632574650404739884847877271115115929724234239333289769212497868451988323239973300391226911939194579012250202241809273226922989974075369042304548747130403335548171613951420381090019701457188662358597746373044305263153733145558867665648233855490694128676557480271743356089152233170154317919911810029715398776242413733294786919745363841026432954301076513510782714261871810697670167529988141280976325792580984289252883370489339997204469403827302019643727282703055475971279875508726039390429368971209011921587143837781235988513031539860784557292934551545521361796350900636338474480749719488587364798341001012687632702724355400537309251268015055408493407754130288224434499441471797494171243088827165981705289486423295439848931279787650165301218019164833182018050962282696399452679079560609690031290870212926312364881804559747684360980758367256995576172230800791494355329465869135801600489720166765758359798681430558705647341916628135615231088901614003002752765657104589313266851989829848106159924007936935525544682292029887300915099598838491298489469560453920175733875098880824872812838083804355773380568906395282784376976188211590217081499019129523684154291499485591281942716218357440040805317588105298147953987191452207559983632990701559035083313807422236656833957810151261116183574088814546306742526773929046854724159931570263865350145115841021376615570036678091090217163730679512125860782125148570432361850659128614714200118261892765518466448453859056680299035703443029978511682613004251467783693324492784193948921049167990096965337238408496210619375789695212797676462839952193216520729149086282320714827936558678375252731288445595127604587005258975534263143119043454687264920979112983760230451109968187808452960769147597394986986625016676257999420383304990911614220566499266567527589926808428366053984917669714315890764269341716200952491985674127905311250913117788766468158713723238731914539109622371146512548708636231162477936709080862445872920653256022756266865386034089108632863993064503753514642891083150444953339779753301058672821376033836804300719413320749160024932243653673371058626662921845449688823913038795564925914279744983495358842184754187093392737179986000961756271680929774319159794608762123306352240871345989815894421813042660306148488925282735482129031016018217907107759123690641741028649419960538521878716442351918603325932720417671172094422798697129616289691657205796311669354626518139324885729452682758846114089204647726308527570233096327926086429385998899909643065972615766245285794284640179134193489396694032927391248615584149445492356106855677090515564497395010018745700741678058830568823875897676445998320661635446148242377425130661358843023474998969257196123958910693011373215787170986221955684113156496679247150610497093592686859984113558936449317468848505493991978592302745694877856440812432419156864837058824206584361193635618343279067443870484984064367871312473453753430972349889008972255702220739658150704503446748242218105621301014252255389682835656244080946758245813146517768106056758711940240874771288390250372384890409429149056350222112583955674106539655109900114755818753125644369039264850476418982012371992114062926149724577867980117759444590891078820842580516342521930568708601809092655101006535383926291573955848272334491723684632714452493709619649358660587805984489377209890759650609705051193276222693248145903312117899021745825529419756807004721470784726397819675431225208586618440018625145023327806432276138363773236657877058468249961601507480643056816182819516265567104051501446335885451667026964504292226858038076032952120334627211232294847224192388132473374864592461067623807589716070591858512253928896961914582252154500539005282086484057550695024499960140525889810358857239292600440247653063114892372271876458734337887723081759849974166565490787428538463638983926194886975640477780353599366963164776763688934326595141922754012635947945087188681870127912060182959729029096628210097550593760689731846691787126098368931265829990634103104399082700493621576567054408045730710543225717091410785093376758771318248978249043172774810463159841539759284556643827941150188325668292403558903553768839571328658846156142938332895768459333296189910203756551769694761864766863139214876087560989300951997530074839435678012453485544723019961907262528311812302856357369145058304372888469274473473726860823772239070289629595418462237553667478687561926106536463099483608088875581468504789417655293975161512158149818463516598943550822734556210908124456264780360143131801518756780404852137789920238467928342957505347327460932124919108372635873027176844403559601000831902358068243432181165597996369106888675380914516630976935107932355348833582935610837188921778953437166596726515483470542197918617896638479537672195064068549958173173838169013197415236808685215328858535448467697075196651422495123781098558165114188452789700629846841577640412850574316828082660324885501019958885351978852587302248195274377528601167648218168466614096979594942837318791784204544142316673102761997182078165032289698789909690114059304614885498697515417997084106841091016867652231937137489717106300527918159956938326070191014061096877654925008702851851242550811318255136732984075694552605911521102391287670886777726198264298437504123857943937970960963002918865927202427715905820457678702391032957126305525343824131901196761408129977070999388377387054543789676323937272590941867178077811821045160290273814683755888706924120950277365702283138830697006042529784198902897697947255663671127319144750205437400377298809277854946464222844690226747460050449663093904056126342145605362397244852052049276293790653841210712573442504305677506742414882359277184582114973784673612830197060246381208939723143265169228438417638139770636061743941159463074281572740650792932918885536611392752576852280529094059179313648741492090764374259545616611603342255848505583374797048804000741561274604617630094395141219953541169429341354653158364763445319489971667136623673927327059409308614768983414226271396386734591341909140995733378269482480442583137359758512582859809858945463623613971780213918034452869702752054301368489091657571402113245373284338574290053379834802726453738089012037849325021500340205585567215423898965080655672251940108774082257726257467781794392194499102428756037175761461628945373087103538980115630979202025518942742046678225015843267699411997123997375577375653567168991206340205130176806202953273202596872912113485833849919332947957402167956853509666475855451468358531796133204582080542469486195282197420773519176636391957187552262546041587622830451496708779196804658001421928536889438963822739258250211384772801624421288391806541577959503269265762414711010305911902925992403115420664571277245144649741254039852153201029640314447995086998000026644644897029624488046883542866195732253877262878055109183217937065825942443344215532376858120262470144540451630578906254319119137071460155778418223031152600506654551217981202421417579755023669713120853491105420550237512920968879234000280224165114038775266038288470730885298059855381341925175743038822567293755083143759760426946330220555666461378495832159355245644044138080341599466463564982676611711526570210947395329091207641205448234500606421146346934372008075611764449519168104316699105388434579530275619958797588166388958072365063765997118525218265745581797619096694757010549593142320767356060825193836460948474017902503320589010027395182560442244092249372422869195087267660401687899522177370468423075854950947437140363182616597835025150007397746040072080204156009538851395455708924634653037686306106553217039407095560319686761111069024501248868027851503405337373484160134514747761293412237604039396350023333069726882988221591821102765041983289350923812847050343250968869392112698902980718597108380637894517234346852191858943572233395712063311934236125392970398584937262510225298266375829554875578183269410361147866342270077456977265555963599410623184289514523193378529837641278537704797674426596191712349502703852910784177310943748658008297245020700812852034434809164767481603157314651270445477739141776260110452575473884669153371428565561244795568421969814264744877874142390099007418801522025509171154975236501158661347993388676587183854914104503091883368602808104889023636046370284300719185899494407387581752378920562216259532698175511233812684541589565248282407519153139834791215531729221477023000948993227626353995510787618876497201625276494985837663482509028398208825630577535567191831911497317719498288296565174786467220678406126708018232306650350119840615567284711269204346783594654205534052966848615077169469812733631838814278747660577374686529705668593330657567487419814960187621530585923680449856500595815512840542850584269357768748857206575093553983833340102869734454570721238545825946511652251335470575277044701107886468396950771053846845224493317524609054456793774641849672418461083540348393890756683602012153911794512029794151885463677490169729207315235652912349026148161750446758447934327768323704072464632161970601794861474262113685282407412814675696164951147507501804954000906245069603444728961864053827891739435079610003495645862994556729537658732018158689321034572729618869635515648127829685913089057425410975557948065929373879104956467200965450392504478143854341179304645598960720357942306444755967359261150984818696798646608237283047689179854641201032299937929224918404739543760101820876023642940825492090414214855791364316905442906284723958893333428287388901813835743358423719195639837677937055550193072782322818217551185526549876018060888209224525581535167833661241541541989288150246908437056338525879132626174484124282856114976799501741781774474117049434815634314592652139735816619515696087451476232429646359216109923531445183649179373974748299729411398847649787362095506840784127077756146211913356606178287072167896717092650137950974602198067170902297748300851893901320952693343881802785713529849045698105577551654151229908675283525660633815763432856252655070111488163951109868473131993734886693536448627947601009433169885139766517082946348322444771052866696769308413991972088254702313335336213887347372136542728245196280017976413930925581586080575266079234023927446746731261466414404515511961744051448184858691534572218672452932920936800912268294725338617559422864196598473052787954274913196535661495756939589965293741044685267846659714494526763798165157427372026194019398052218902185499714523993591399220946230088406403400792018709403479699933912252286691702369734411239843433830670350136103420134735685054386598575262598278599869418532110727440721389002078605907107972997320078873072819476993914417128098749604215540218150828126728429388247608077451189073367520652803608605234820246184138872444130036757540127695118395436120334363442292871877071935127499855059563465720074670732998398401849878156956177966433269336694005982695154708571032297725395668530658619332443736223165125408098325521440561622137659299818554721807463427801548073477064529761009101254237718853867754863623238578754658554911897104693851637131029056227818426812084379636273150930643537432536932121211837787329221903791874996772688435049012203772159969605796414592931959288861172107999977894371925030808976492709305354360871657499554727421623004969276003660471243084219577212941883176132428695779115012086394523054534800743705653584440707563861358235144596181246518399482699336803230983860292475515377408869905088138661211811824554844967195953332052140202154178213488769961342676611695232660674413955292184824718093184075676370585748910448409936182943868812307150013532808392747410871667039620497731174712182551990114147405768580045636413739309290044670397191174039009887267560654938198547970975979330457142838159108435022390834023019559537980265244756457475597339575930388440628971335916986184002076274970277839559990264515320892759657402259539579698115692670299890532006110609105585810089713989109812365355120916894864039056353182507400160931916923758936986623460767808448441682275825081571331540978828738798304843564724147744632460413876072106286138528520339616655031133676839666267186166307213104086673262487604730025470462620282915689162984923334518413329682977310550063511904278178446152678903362625020002282211560433082842617292626259555535132348946657948356782195495337531384118220070655562067053923572319832533068769806851305655862966746496126055840788799627727633608877039929438445494885563248577560198481892673977014288237521143977954870536209285051741284243752436776830676278936440603873542866710253747685567635227124178955412821875433234933262986026417152320733157173556251699615192515391774683810282613004921266596087992902973299474186508777319086469515880018972086815926404956165813785768626918282113582800699415862198621407964813406796819543847422235353673218022140351050747786470856575761899819310675927289823585412710578082288555874090235660647334779738062216195564468298495045038228733106425833167985032920823583040862657827901695681340700216436950969861271538251946171475160553049108511305917179051119618451308031693068740852152587613181955450150339478963361374162629952920085921792902164546893669686888988386875215380514097996922528722283189323592634663343879919528863807963239676931965445156942969268014064243712077749614173039348252335473540875749977002929721745282972273836367477288228011245810762524953415627135019101118189860773937329967178442168472429826230286035612463710021161036190000493639072541627785543451547773243852384657714533148989742856478478610096621552266877130228272454362647665300718990448793971327583873344962520548914672364886578543965559549362757337944191996368948979288136142537953286352410481386461107636536966334357581554220441711935296441602477745364338757923146768304226862569074661717705825969894505004555755076377847561388802202205093291865294246896027709997574412889001186669924350699566636070589621517031117910762263026139843522791167721439838165338958111113017013182145236871744184104417110948498679301732273405710358068566230356576096200234217710655246608188029587404969067150786552263274050627893778299257690724179260103640944097753812376183918489003638804529797444230503698288547475403401217183748025207246452828105832480575846844526366305146472248952872760020080764930447128065252710266066989795973238905930572192866207382478484777094954063214982763911149622321421858124478736455882145755584246947465667253806650861903695636132752213044883491250913095120303841864976530679843385128571753152432907706440894126533222251749454516686677648754607202650307964211063483425678685172986371487212516527165242723965486063050361207255075837761696947851636337574093520801130651202499695965709633910863328084681711138893705489229666920774031165450832663910002265687779421277756877081005784581439206750933023906046229962387904477762932089381664647065576024376366459616451019135839301931306000619284910713260512033868615148072624771300598414158035560721771961332263877630476698622754552643346131152914487420386193451213015368772364516698214668241544805308984577774795857159396967155659026024531257148575511934123417563771586955576025716698487116849231242555190911432643935358379161195782508504985877056181132440300250450497187487442229989548800825839542775098450957440434818135245133235451230850136743456925962529861380263102704615881908708906590481858087334877008064055106914019522137288138552058115259680897571412632687163663620226158638434104089046078844761545152893393507038729952514104768658408990791243024296478576369383730498984781354846327303968627678660512489692802106663306553846357096728253508987178013667985624119929783820128864998293768507305991697056972233138156085173374191644684322668886118980607860872048567093142772154078038097120612910449359102468188673817389921863213166825873609344207542895471362514537297408589147860325870921268104300642486087245598969092946577841803846881189913566780039429702113567082336561204283551776253260746017472492628672556923736180850433178529167667137074496270419825726376249853307754437060623153909097146003331128163717150018259532653122178345450482421586165610092086926852981367425714637100257955560582890259362500558342744909917305214690440874698001947764420078632800542587742304044603020531345681461335918276790649644371894891514875947749660710022987826240338526546116144524462440970075685339029469535272674145428719412226374322824058284545199559003994344530044382199520454116248332769116027913104634651127837247784735860529901115466984125245058640662357085172557038044591992716184196736565422985498466811355344986460058372098284155754162582711697804564299194838357839780908750852238964272936714934510755726021948108275064089907460668653558416067633807272226619305227948975280360519230369453885945069996019394145305876709884013092157595456432948414428272864478491803607925047057903997337048531123172482143390671059468324688722023231950325517595200842283824171384606870699155762066149063062413397476624432234130695924843626944208110011931520596643940248761917622280286674439617196634795122898360413557081061187225937534182020189121680848446762215459469480430209727475830284666416674144131479136776962833133411983334365762134998100763836397176362175060213133900894531622159137750044918679889481515119202419519037160357007408727833387919776613502255613069887982111550549798942237616376087582402431462867320192046159637009803837406052706601496572224982237042148854968663621873415284601849984691276353662952914355476017291028728594957630159883118223481040794506167826338110251103409720569954065689113648732470086266349123946886903868506376160106940533529591453814242458284611519556117451726132419740628196729795734566975056000655997868175501744321367821248041709130303099924242171838175939660205071139945803398005194239932767225199708052971665907248897824808656765599723987462835191123554218446842919870866137413280935517987283174076771023441890619941644192620131352219828415906220219325070774245167950852875088393513618492727166589020890386586178673036006959979155841001690097879076086851074642893537702062060163090682065848703293384372544802553523258947135805514607646410718316251571892440630444281670129129832847653068990845905308022127345620142843530593090947535765924310611711416200787918897792885637735300195341964062401731552275623874572452473413848143427524566209790475251064027993521265029906578650262085917223223554068723822546345237274210597753988217719402913491357210168459159371689899954587806619287843861912519290875445131725050682628921203424383733469847535687008767691217991067554870720644357613802057008256108853613065113907512886159799684163983137507266345473403589493497487291194811510724143471538896295516614528140781911390433986834169477165907091891084250342110902753503067988661480868092625791615854479530279520839026026953597134836363956657283841865733963636121628819603140185264665758598453058339319889628580391320741325544482340260978814554740642300654612524704064383940136373330455555216899157619253099357627756646675121827444414838747044369973229567298476308986649164704160003051355263598073263360712761433255876697351917110847797359543353999220162826614076805696929329970856341456529780890087508709387023420601608945724535912622098255930803036281186329331288518845878944647932293680457830374455410634731509694158859214003609526612428645888275223362858661958500952390073059201694516940504042248607987181746686491956715155399295853131157963856719605406269103793830480181081949450319556988552377674727935637557185264722427234380281317289923195969963756368299019445636204506150191360853246788484177615193873797635727204424991038926178452977709400918717787666381949516312615776659285212974281453051597823714078640728833728656851757799863976418856930276077366452010764651956151804480154442307975834707130891379025991657617939634242361477389152856580722454084493647008930566515977444281458179194756886858407746718814839763914145862420608378149101960319146291081366362290907750300374382750733850201710168815317353820407015438031344522698482634820135778935634258138603953408590576279584653329696881000072989654360191396472141669322943831389693258977603656166335876327288750972571551546601251421714999610954484912500237441565800661437870176882727125578908508256911760203056711042258890227510819893767071229718846006327813103418400676570822085891498681622196185513915288139275553751954773060926105587375985893307707755041430211120078863275743035785276199419596464428841578818558391363068586587798843832643030444186491375315741391364260591872032826132359898691677542599404858567295343708288946842020393278004789813305196239999285061545887229002197191364898457534151333107578978916818314050977309909927896324329575560281613429697812936800708495482317227777637019985645246763263076720326871829559571499318646268614065563738069470202092289354209485863578406193727819079034562702937114238807744636858264017774354154338511752412807224044511696878240774138329831004895056923532486424682556842377435803557727160050730619728976273003024351137430575996966862057980473878620837454436261020989827171938864596557161960776190134323708640775086271880378974576150523290994424162645207999162698164653772505578785416689956752355117765290032812494967481286442769392915286379182903866575575077853571025331664683532225077737567671910974498918403615415817538606950648766639353377140507591320196627134941819088426923160198889298031773071309341007109499041251178520824831038133219607569010055282577774521887044578804612864537497079744720669000368637340337178775961036859951246503068380998337062400364769247173895210771651262214206086094994689376339814572813181467341598111182605858997299966919789776912314897957739805504875253285038576141414224954433474021556912069601322035725689419883741506364802272325741280105700201556066340826122756152945666371506467354933951791353888247634247758399932986979520863583526914405735667929873329494670006392770217534646707984008128505514772604414988199262280122746484402051026254311264923044413042180726706354447919035243752802022966042022400182642365030089687183895714402093705659499800256350982807615833508725168049451609620338832320416479949979409029129863321081957468612253751392645009750802884518907837272012253972750406228208293123534400440146307019762014981084091200924399019969148755442425565021727848127260610145333494288339657722874949932199689598454489151483308403255994458752566780752385932512595889896314759855013607354755292308633379426381709714966537619293975133543325197829953728851273854955407570966617503606676912070865482374004869644061716443210429501142439581406974619715346643886983362041009738739766375807375427186747076110411903905751012064361245117370620856734323095848202022090014917447950865014318856129881717288963674552063248016684983081674589846908934615490814187462639095840515061586467787298717999178057082347786502442195706135142278095520688075252309284565607921442378476147151392269221826262490276131282111038013265516850338818687528903524730960476779337552487353889964480663463330147918090400292414186291237208108224021731747743926848745298502025173760968524416657130929933578798749605298539870211075539048239000542492241658635864356860055708844578122472112420874924917388956927494184649413454498940342301110663856360800619982441046671064994651740272113788873768678843688450496210085402683864749695351146059065350807892578045992420532147153985717880960789125813806228074986246067656779669741528130686929016715947229585488521961198962797814856359193915831859341503457318137001937495216355358969881440234270678051070829733418212498923508748903989439720143771417775800925262283681998191080172326053395309246800022759046048280930960043857832350451427796895697110610346216168313206362388858894513030710401815550585622464675594333926775438455563163247403692751980835981123599546635198334555495674772326620363378268302145261754905526910482249780053512669900381678204653830178270651250373449780489257733595935026514380931910156268536409140956773054361313405189242561225635713839093959728714344608395801193902071802844694735593008027454683853268571809275962468411614471846995516325186819124924462224580153959794233755379318118544932176440532837480321969937445336973430891026103140664158792597367279756622261555625595469286531650940139081458607552330843603278004602046768195384254720249534360214230847944417034122451099778357931518999708134552072265579645116024672830505952055000538270149042227112015033965342164764726727403868209864974093741797718917466188906908053079232749099455408110273184940618420905333023990177521385696337099167189493328261999723958842149206418904578398205851089655655384148613406929688123271806416011036132674623511268874742716436684666219282125052042105567988436288939154736374331970057660980565178886828099806078046227155359506129528439281290916131261169176716732483439762306517040909759001787498250202321640618955968448443266320052215144607027983178161930775621530295487085110632013388825112710612248737465686278917214155010609120528300453817690822840455153390325744081513110707577692060762475227240068349202655241726457506644207444580875621332148999961263103726752569291846648460424981749769885031451097672865515435191441481215230476543181208883922839293736485048487771335512499251909793535797418776922982235358165343641864524916827860575474640175949845167263026704756479015758856580238869939624080601049105070698087589799348825887473099639005888090009088246431644335914932918441397090835059455549839027132222255651132051824969888420097309485588756975073356349691498602591030787454895825982582795239050393683858672256355781959565154270657076067926416482296978792283980661320555399540288744381090645256848964244665593079033696368612403610064038422442125986689992398505496711616949412396842201397224277197266752085238576387383591317116973164495284553471845301676102407673154172672069941140807843498231758977548359376226419679750203514596825976894394766500001255370432309926615144629732127769044926247882771480577904808215617258183786879542046288687643036624138027528799271129135582281163126140484561239553260613253048867496996038902201416637305695962749699853447505078883531858840218379654270671394424638931193538559227059640780921642700163499508710060660335770311934025317314922341014820057006372121936005466138079193087116897879411677108423682052834366247734034481347174188676227896897249972475629426944585673477167076122257611994814898448128535569818038400104128211990163934282211841719202234584208941926114159039590882956242806200661763913590373270350776122341252926112001106792307647107769933880491084427685826909433396145559083928759187352247640111781005692884099939499635029660063545415942938674281691258989244690407552781536182375639936940293248559566028300026944241191842074925139923406937702521355187779077043986561753784398703835373222346750015453057783343595318737399596532334164820709462977531424168042423680891011374145386213180070263218724507885541771149133381330428238103215473082192270544118149363237939184907750396551992336402274520279754826764986909510439772975482614613552085137836080251184615081863924710779840395633617830021930869963548375655854300155746550756036719398858172300901003356749652845392447210715949243209653434585967055497641309727297901099909261655869556528498719582955496602717646200825949007011879325158797106848730194753645212897945184551118113344397960414350198055763498655537317074789973611272169481190584303368181193796699790685977294574798973949016906668093003038518051069488135107377461471612516448035734460048936599521764515734047323725316679832629556627918568092467489507082924412039293642553039761629959679322160648051548238186855716398564273340006857820327426597123982351614588699106350685014233307672728608084048691651806158655341969152891683266381336645352847568914124621056730303621496102170633923190811701447445351619023227369528000895173077315962530776998532941543320035804686818530484279343069627328401330378545234947344018617511773817419267891264021967013913842172632712122937722334620451875243911134380962834956439408138260926398362139396152268746638299445998780005175661304949548995506152624219195885466428462764236587945611833768287234350798777038334516024162369099893485346864105590657041346779651785246262943472406611059449993548005049615594945962420554984584130646836582054694540761625541507640044541922500689895335392902445360204504662527225512473625437390312138572367485250463976284821057762855246905643153064091468285607107749369399814789047888480544876802627407317872243556868521557163193699216859870906698379160434735032877813527436334779125538889698574986280890093239278379099980935564057906181135317101399861357263107088750845825341412972484981398187967824234761658436686404355354862487407853272713597957324259424501374337572354410529390129266092615334119789208238780102214098267519304182342248519868264293811345507379856381562944613983919699022093694851974085167375848119253691962407338149288851377231401339133155887592011811256783978730490137934759306716961219398145549248849428577880532989025148490615770064853582542128163579497024540364563994585039209384590615862926104534747784049804343987236470139566030630987074925786334786670162076190639300682715453628217949848387250199577491739987763141353137050174749239128646671857425120596759916948412092950839259841479900750681103419769240790808620157634042954429229260949195081987650214211399114191500619373453104622356259861097539116156710786608499172794259992975847960202304415130522342467564056166905455955616913198508884083927128997569876177210360586408847280379320048056503969877858898111806828930586465861388164290830056634311607342392887884629679830960830947130255497209528518068864687449327794128025772108392798123553086220278661289926987309725593719918966306263240391457542659558909137483174018828174622567270834804570109401071940760491694771814040455848761401502521580107288073217270036527934160405723683133478608482469363764786787228725803452912540128904047464727094635591803738830264421175408788210482532380707833425251696159438657244486119040792890471726001541974691135854560361382039092543068628882927585116899708556673770048308661296849237193487518522189998593389032658012892281700601342575744537597298242343337211912384716132037998866830157705933362681816918259505012209568208700599663954748673497466409161486444452789817111308436577315247225225111890941207750552249469476335788422580132557004414192375351501334537305496926987373286794030939220171022299002163864405816221493685084473304554148299409665351798648292038669882359291588408257625037572324367467101051916642118895224479321132673168647436390802972356964862102316319941579858159115019276102745385412216168468978076437382505415911746179151918696657636969692081944407104158593523807799817360797800607939482381958843109519026180617831279789759357328493581974901247742076797589782931490220709763400125278952225043793184926319506458493902030035629177361647432635006370352977149178799843814886309622564951357124618129211972898518399590928023815367207744118993957124625638596755480842055512757435801643823022923844239701755832387810960990339507136216223833162340365500994481295921630560748187867670748988846391641684060805952370872062775435226947163305127124703968632847511338122821447252478259228619983591334720510457396123523026562960820949637709525397637089690975596496527607539082857543522758505880595915387157990931447379020504400465819286713118258421196846255548765644266362816532803525285776650417479920329784753610124340362453377436216584076046024238386404107700778686226783454267189527318527613946316730565801010089916718499890835692581964107033488971937835940838830014695814565168602502270514550353215704682960599545418341278444624866279081464603588887429738791406381847966183530929401132397344006462193325891849498717970826830183571183459628453684964116619933480374284757099399415035803672545747084170049460487214374342459566507287028403392014311764833326198376225288005742978968031977533314539815720081851822472815890320242480296979222475880804806808400821755161604249261465000650265238353342886700270434646297110763910261788961590820775167153950599483781100409218587948292864164731802324850006563127400666595526379719573846350950163200005865501999964603262771223177455279843338794983977610555335947796900015332978798343935774437166860543004683902367013176704722615712359185665805252653643654801628958628847751289421199234208905472822880889781671136001769402294574061120275986542950561221010111799438853105818996436243997068120872899596507004978691073559089623732453698135645091969777749576622647305208818735355785808127040900534573555375562326327543786033915009689897157019139449896084829687590468959407089083282918555631762125077977109907705038855292367154696513413055086838743616567919235236989639442831400832276149264221421237212623169734012710844776839265795339943596449465960718715938014686896563232182074036890853706347170652567701632979483610061107689364612591540581390474181617697381723650687653806382482827940674780632467283312793167123218739457132902310262471357444777370146971205302810526836431496245863821351988661316002523660262195781714698648615698927784653374077273077470812254441045793295473825765061639396630007105503088090275512321706455485824947631200422654398772454145724767511771788359998220982750488800643691955076045848116947378255243074780748509234817266790004013406432178636303046004568592760666656597362248209706271382565023214863858449338901106838694968259418219913787490683949649461000526204450772805553132923060666824076528632390751926667096828237280802340839631281354492784644401625703643518341970628156374557429457692571547472060777360461875758724492105803125100320960603053461573677545948947444865083980962443132179128647307476130287771458112617487865274824958480237386518658288142838959600742347237283320088886490665291706518047015783909027890442614245118142431288302788716052500787307272451318241517115115321587699737408357257351783927848017100699954749474181492925528780749685323923467405788145324504725732298177281984220579737474808214725415810441957438819245971190269132439734565088394448397217904768605074694409310134788870044548838917881660008416200372484795162181888469026168067642907540614183236507599329304563543697685438285289489912327591912664004563456771598897893620452116458172923316663039673893655734817988224427169713136537361490607188681302206265784500009978397692685955834101158013310412012106111873275244836239198428304060249799078309404722547799021439360446574436820602858272220026585072732942103270736834396160088938563261705198601470652705665672207691723656008874967597681595260404543532907282914096177742979398807656288011835052943043221576924862140363933512626540627446374014115706101305645097489251981775018560969247352790479619880411556491602336356440807591440977882394579079202376712816254554808131212869336061215485526803712439503949513808277143358457379390980887926290263865333881263746519580973652600767793229098148327582732359842482817997548375857364779700479637955793557040681931236166457956973075260788434906096240867115357558133402968637245688163134195846419921995858154558340934184682234458277205938424462075825110944420503392518666949365347641345517963986937999045493224263196904847878950083431875249698523027025821423009588238085685031160993563136719513958905805194729056597432080133338497625865530851566560501851287508849418412501980669590616388208284008617536554488419832246812424483916133306871392455086653992632566181965012025809030727131406200688631318743003483847902856787658365416968981539677690983385905321164539135328472471645396826368569725024970014004009112488835054420945434763733802977682930568861573861433480867219119868321046563676456756042831997776153944724673166148231122124906730137517720660627894821317664960268545516503516806666915180044866245103319214574244073653236909084620877348572778136737730004202587935228501270657570000115987348402648821180419697380407353003685275887643553461306984387529331738064605331193881723003082600317494201401211573942917883531181017691177369072635032011207037821775730067697651185392576277985866606867932166842654100375408896181641415595609458103345352900412395387247032363102053108913495345267172281213151113729163997641045629697520728783469177063780056643666424397208204978350257397224029341115892054106439561930878228138266715610016883794309072128836207174028431881929858042836966831203561379776785811026971340769264795509591717178307602843026556311304610733793475242804074786507631520523050920385472625407419779939183847179934552247402274081502300847768052261783706625099482731454285334027360122778241377379208540568125196584857586329661274893730424721293354483586557675490449934871197328974512495519902800250821551574030507325300668391794325279437706411136965307833377787382140686396826471647984381351150952968995805058145248640766920366787014425704583939486767019519612349984429712803419079760009188748781521938726103111389895896383886034518602439006152887945218519501367767709842487765370282987223907680478094292119329015377674670136734164504641473005763650106230505280927114719067866129280763622778440442895070102289572253715599137831755122516748255052024149669294907146813167458556226117380882012812884374337894384641754019614915884230536042666605360764189629500626763404801373294863361531772562107041332535064932477660751170951474344464235524374399632165896244050992595908224965261172215675670599340357928699227937962937827200742147616721852596951294586726476243120215450527781855635025099789142457121837328609721456022616841525899202137450280364223224289863748928476903142486247207926534557591929787885983810941841714422617440259789804943618890913825206123545523709744258085061158627328858401527710189375065146348898624875681730193236219220310316889631036182725306971403433686153074335426851497787713726234550999837882643576996816033736328881532079576655622902701765568127729487575774386567728524214244875007362254691249266130254503766337211748118313513055732671340151846821293213011351888588741611254705351652032821490598225320209483303536265262287969965212182138719802944655467991200348503555569557111749968842235718175856661399500103338092176333077854348434872466322423200275957654019984258837010937936000373458292165078237536853387116491193453446981531902072239978927781302557050469354652119451209799509456130573709894620740717975462146982771568733773530384575134747036044736718114213004730379144290317207348129684218547215891764443515519173117017465903928660453726520751089265077781494021868938930082919294739256455075996411401309307622868392514169072650338265106517914469561126009499597247559204540596310070374497071416021849808362220982979560819786613161940565203941695937808929861836501852586465899485848256551815328271160051726418056243219291753325179489396882541819744201921671809023029736545409398344277771229454851257662260089823576300168282350344085161020168047048413198882835858264616931525436132045746984940031325617937475247094276219301864823275353723709891513939189399909190850748390789760024500133309176748426457737537408229703654409620258400147526795254789690146144907049036098436151331298846966636499602427131058747316643937825445609399247083107056999948351023970959750991491424841232447480182340559721343095759693906964818515786393358781769596376844072435672742622440627415732397655702063652228123831341250273819908192877757922627510585284461340365461036869911706634136634823728168567459243361221405471643181908764113632284816078000880474524303439994143388615462183498723035368426772298050532685274559505588224773779519062773982706257637595323386063240096616564978939584430836969338097856840924267155361784356697398363937714773043400472896306359321643543536648783482027577755950877268537075372859048893534483508675795808714951774169269323328935818642399178881652379828546031310654424471100851910833824071139707255572925062246213052792876889440072278006196061611216989377044684480429915511164949157968282532559567796251942519243764469535081738647705341099886345058907101087663999862261534525792212511687806971900232404208938295367661696038485572396500830989265436077437158954619160730326047389567692060080190729480636638276775950086971381776554204323457591108907582382916012750716072256076961822990329966690688681798456250344887276279440817050215629658828115971634141651241209450733212344033275664116486879940135924763314365909661880602418845112151171319548871171652399976895958549143000209527666697183633662034496591073795805025697052538187127381458944189513182770702075874115250647499714924381564576870026939532927330767538297498530746392375258304927120684351703015744354200739921865938723574996769029923873046460508454809453817360093085251110416684034401889785205303961706748909357344232640469566074907546932920541547128400056023231113747533207911282020460933664573247514817746764598101931459767862526376420178244808420393563704834859627879218727917208085005383421856160322580326610078663087717391604751146827103456187144037525776060041039263414444405525764775958583380637300453285390115151302986260531983768369075564271144084160649346513399857707911423114301026505210657717158603041548498946467237918992305447224975984476336985957332352356482123341138363669739590472101010486247221558095349761479316155184236389819300182705588201881407966821393581384255332201520152102294201528732220619761171064133425438002749692126718840038697567842462309075957377488101521027842387470410749762393647818087224018571733066343341761897954851301593794073247008300979907380503884847326754339222720324028889767023901273078340182979038588866558422701846271993228109784751702681777341649297987804548308405901611335347254987702024857036269578785997141034498039527385369816660983764199565979633637668733682149119070851005247899473279362462774120521337569665171710626697265888547020233872456251114694133898486706194859796155373947723100439641506892871782410002673101814647378682223655036005421367063775799098802782434172323521303498477348415590134514754072303501208192338862216683945874691731287698192527282480170004383682538431534211585504804310936562071833804790266199950019009148006218638548282454389797142153587547424024895555458119254808295771629060150514351757589731066291631285120035803751584425997774673568025814415448545882017898588698562244487206046221122569525629525825248128221357289987060313334259115897492069182723356412454239126526223600908978142736740001655383961917538189707146849626886900716715596391663868192714354671190321607717803955068354913659954470806360814235566303507165986633972150490669072009423864400854700729669641099202441561377301014238204035800099538535755374234663691836917396628535486736033745390736883984132011787490894182191693236846846568059439119622769310062695904002788236953744420548613975655753419047101592856096697478496447009040772957468550673003595006669176945977219132234410069392781729369942829648058743562933704257919793103293659968424062774505743557783141444966953109454102658378123549824189385711880810822997369290896524823670166061250537195520370682425682623517070565587580346462292737160710181357781326479241150057546964975857025055462725613677745942437824449910743987090787024327871340406404199106289138667649021533861084153133599871139743629258230056829795351034095440776746106169682268683188010281106731759114242171271202512381749295896644693937297979576302457649179110866095953322282167041962260025494112660946188557270283546226305138513635498136363521919059728429171718804260148883125654338117917100909444611002233932640712157628777539637525169748044929964257029004419943220090982935626049823119959393838459062431445377466130396960876680238125380132969310672026630279661776407001111567286089992349592480385053530091767079650276464805244844660488245250349579345043912035329836329238410669556950131010435050921201354073431860287598017714445338480140019698417270853195116207954521607155162433734839827835633220353909987822996314058279979740419348948296311879997941514927548676968032012119356445660760216828648100831886392368259263982627819573234045516761829883239944236670343118217842970419947685347537443261338179582927464234343832719103849417297863604712880114276066908861117212901481831751806300449313411193186601290996698104589004381364505571230389136534378571946584207592248904976616086267127366379200544377124297835059722271972108902384306363602362077022167127151136786806744469481271917342206441291352131423282469137157164683515476367359201672698639571133341129348340031568950663668104150011634547156863162859719445190978641452346136436983917117755544819410965983001116300381481810172592933763030617845553456060948833219172527848985725027779863047482816192359308200062820409027327253641836701726468233681424399517585834811271014036745111667305237670302429094052241108749247505269926947932523229939181209588622942384050734065931446118422466350841298638826666665421160205269280124514788318790210619960396310814272293583566527043498390797371028080446244948749265137901495405237624394142220946604819837322862942867834652891001133528156050996949216950809482747605800303680303706518451885040956757691328161452649561645028024114598077967849286792146503884729972217961061993499612186068662662499653905356684686185784458666265553115608349588202324583383436649276106722877626487148303166807424457427646728417878133056407308316691095913550709980368645031567393717668028652931612780728658014291157348773938301969031511674695556300248852184023352138440604988470003245789626714528189340851895698449262482935688510509409122122754757717400559708054362626771368545162760295348119443283989565957048746805619068632761970618614628209443240625910407677676180434926484210137204024837823024903217788531492384337135667407506356272100261979899292983357040774445766571205782642151347920732665075275271656569962668374155816676272852957585513599127264562671741844238522077391282245538529694283961660037026164773968708490245238597010788968044721641328948689046305161182909204677991421661118083809914787291264572404647378597569557369166746150137713013728544251418819875678422227042971969305431046605268336503890231514974902155082274011389811200684378175219595669320595178381013330202962495356834609718252810140704487910095418898008153381707795401414857727783879455736399018466310086885614552021470147837490972157317444129645719963017426924673221680712994100560627156564445648021258654337978310376978065562982584108067011140577661896632368731438119251590102005892985789298369076493357269039096442651489058903590928246037428418994670273666095694601201119931564464972431128295528119940417737257963903204693897818718272238286354300621200568023659004656467051584961256907073794677811167310005275534793450330283656538117511582326191237293308009528406436837829382846960648287800540222505542891385119804282642676562702668419879584443643741624070427877358372197366223166889985430254734425481791106952389320340095055471998721240904997382545289055566242893204469580000690948183642384865976639999683222322557142235755487769469301237803694542365284842376902780249322224069683207346169649792982026754958635382878521871518412187042537482622468545000046319633911627275885099706793077234322260050248941335103442000343010541784443271491943850988169805972547309767454378823890585189711834461768956579904385652969557355270261243980363366360732218888792856091624490010554471400784989019629610215479606897907157935499843461647681887056169641805355690311095407750169618495631544799677494098039653664344268719517036459630372486028010547369316962207960569434237526340432899214216144281252489093125823958887577079522935915765308971297090162742688445489081154682687592284667776012842816873575206202935571314455358926680806182668899196727017649106726299705174897570568380506310342915126048526135604889863226378073564472959657129533264011582544484823052779361249762593053842401666885258916298726097573750940184631405104025267678533313204519737924789197670781301749419991086624793969148232317753074066356377249166928186187236125265675972696700334560231996675657632974329800911340621702091094415377887927557771588036632143327070074534437223700324137286566795519110590832947765724320022313635011204936205583707003720224467136246327521919732486457179635648209324319197845218622684213345765771974131295186852652467897317564546764365352577338075846891838225959099647787067609760139127316460846994175571222472226286368718025947841545050226556426850717143698355128251880998121502871518855263154533218515307357925963938794292174636715519265982428995769386762641022616199793213778229393415688303900707996071952220374315592234123595707302628997898941122709934003088976748445565812607688648713664749671053756080766928773352899669277817021112631638809977195170246767615067412070663706441557146840628659243023160085901902873922747841192757446873972423533448416345760054947003135540622457220214448654998601214110363302079368645111601285742673595340859565835668130637396191754590727625357161483749951227408248639397637978977385833586868320671305975565876251171359012161147561242895408889393875031727082293275067067019377231548942077339345200509288528804459568117191559197276011361307314696191047892410487525571748802719875956170527194371681142753387214094732781826046134611360691605998414010011743515489386899409770045907730966227812461185352327737115332035964473967093779581519509526158825866184123897488667143287434465700054827522677411370978482059180009540387641799236949469695247668290375704870373805353362804561454206833586877510797032809276055904608102288319682052040498400916893606209721020380416113644762397300294764718135878998675921578998177819061857086415510810473013300648726838309690200035643020178182796035998086382534263172909530552381136653431568480949769041032529566998345666366936880055001567896068902061148524471004862433599227907201284760017541194676537971955598254146157045431005324066754666225857722742016501890561396330222680086227462725104729169393687359753554196494976915285989892572677124707055119736485317110128551234491555497871924725129979995777067705822514564395255577762053187352682624384510498612641272865758150989313435989068442172380991627085690233045905541941841976363618019425282594289017025642426515651930927889935972187549852348016171988259459748881633956624216620741149203877473124415543136495217069159453154917990690307268959433740452968303274422450501444884021580050383519227672161969820119336272515255304175741492669838150569274828790114630616067055869452469730854892666810186320226191766882746162557780469752610708323174430629474751347279587658185962185057959385495246306586508229545891038176778882188827168301567561158355086786479709384323732574086058229044350284383335712750893433218922386830427940623987231600147663447755089409707043047858089747701220906431987577600766955332761038294900756288382175678024826809113451159572871261421632000316002952123329929767931633172334191668535162759654695086038047385598426768535762244705777008656403340074606724532093594761535004952277200475722073507056058876122258713647304490008346513111490158245561667360192383357563245132526297983932855384484871020344061000723306203803010872189840894542456411101589854082591513570175697556359410170743659162676915554223714564389188814371396501258558775450182584322800285194069869921740921016348218837242038571707695351849035217074318785126483375992327256190285386022229164063594853910645623437836513800894729367003784878513888183195337433861653089447995096386297757236374680121080066278433607400934052899476417455418142524276496439748280911011826680340644686819584597099419124393064229315383497747986180317225216340979678252633093453395361807479627858132488609195316125493495078908037121308594940073312356101163480435370653231201760326813989304605734698328368665168951499594129678335215074924445340018972753848356171076984325353222882719143764326820292562334796292716082477080904467680040842133128872174817393542797746129681886950971426422133225440782778254336590853701406885358579790466264122331321124672751862559184945335834783026891231241524726019193935310528440689926718233092586408356473947625543461019970660848868918872202134383783424384789265656072687897079560801862885791604817913827981471990380412259976155337460106890935148901485083939323978613358483914717508925415728192470022248178693640505686013985031079668173977583800488220447008749085889695084880417134832663369525870449558778826637729800877693866861134790179595743804767519626937103788150262935359199450851077550473062711639907059290998779884877224873285974202613607577373219900758914900209744034771580899337567577632499725014030364484463625212422574719965065981871251663502191444360365680538796837580996059880895454600731490433894217337179134119803776870735740254231742303847516682817468236651801624971692216154789909223211565176374942322520679297944258087674348711184490628857117826809344435834852597112206993396988919711566918893124491134215333662553455003881777933971508900788047028885686333846302566695309238104406425284704440185695387888650622137204172706274690458360147624308516100708169379904801463007515916977440196181770078326936860395859240660744356136171415911907024462091066298771230426034188209789686285547806579867568869127641698998622254661234145068641904067662114032778298798143191428339903009424465937294314730758004043170150761620690206550583797328649331450519292198351756786951333577520061960601014367727358195992269629970931304859297258562329463100438368338204946475495639388711017922621077166800109762677051984887429421997635368954158662191592271405504549307623699702323831782979995196851437543688500271331452346652590090592673331986915245369947702944398550590833119541934080504980475974173592785954456080376939966274361217184146120727609239032665105663553210889403197788182981113827396298013482393285426893486169623927461709499192966712021753967577498142145733291798367860230436512586216384905527582679523389663400349337035017220550075493716436499516577523299461175720439692072658247138336080966884793956410521583598478165559122679522325748461570177443407214450862461780785095408923443480002466047310804867461495584008139135839538468833094764983171916371082958838274156044441233561955752662534115406016575239294341699309094073262317853285437098777249217668188306284082857367558491995455943100110254767237416000888961912493897375078051289694252636942294600752819107368547274342449027921445033518774702483256426092455641080638976437708080151035876410312451609447486402118993083266266676511884391891920125997970871894686791183231057154265177106104662687505376456167833789272582070820250454362606559838086888777185759275244702634425531798760439260192557699342068979493484946701880824472132695268125576941021745870988377963569429146198803312394896422060660953738081840240151890745990344300482911660409366583057015495302589133907148130728604729516197978483237711150723526873389427996455217931718367479797925270977592111034407197124128711570005514990002134091634313914937743687751371910184980564579536689004076750134847222043353851466081447983422775470044427544267006733807845415849227752336008191947417266742401037369651543921017942745251443052807851862629510124955825317714113178362632541521732864957764626364450164657058708284662535334986400872506634880617973109565893942531415930764261887902125478770680195494703453100842553960228972089567941561960631863675390509132844684474151864512248716069160975631118288384794008361013227960306528147442923122473130572341050200034551101642589928730707309378297312641978178035668071692130033874094780694308743059487024028962978804683499372960607110703708452267760359819632169831645643204257976731668350575174389216870911117083828049874325893357570949116772050046624608601401232356140276806082511058477122558525322694838436445196682589635361602104141648424898219271279584610568286561986087632853057151791341457567202529353737047766940998976641941735859377451788494651349639531055507736593633586227998032403657132596264352565727996361701783168862597835402173853362230200337411776230426476898411232509376549132126794451863170252589289248182591124864447010142741746350500804065371731412152423164239695889575828085235227934014616048943741405762305785978176340017700555659069243618420191237198554831502097337037778768424691645303521895371109799685202192835675108062389593652955151764707142232028841313002032884017031129906117116161426400236412146049644206303792284215574974904279454394447539646068331807610955977527425464226127746047635652311360771831566867104094365062802754327814094182835585720042052715008781610649588656936047567099603312236341860162687071454096242571648311083419469430017935063889500144613345005914758555977199341492824575486674109697644409089808066569984976590389055331887093253224672082913041154150708647419621065169875453723424526447271612252515174229518719283344578963828429965215726242789090496538347954303650304711217382496076087037388701080016643536402476818470368809930463415907569075665842070791387014743027666346845883067131209213563250695556888923211701307950694753876731437074849817604034337904170825761940776329206933128858607261108534902780742625428866133726321200373638662366086610803814089402857440765814667431277253036179471970585039040466033260784101392890359288487335420379126994377603154091028955246006934165587022912636167960747096093485528504122159138433893392588189924587727347139866759132541260822933127691770305428868999001143019725094717372997634818012703043785434106549730298718430425283376405715812861259724774068797080958871668048151838791217009549502229829213320936674717244867512116794305539092857743890965749268726140635771226059798006451128275392148054965791178506953066917595911099298195423393092956409150617810690001160086942525035420686332358964899229059790598554197971811173464883286579753725306302481695262079904962335234156209529081742695479550782983577106906301420941570367440245636906969496411135727284617857434273560242635178736651822897841989615514535370562678336048151350920793208975358935528973762628590429143876786755435269159519726998137063202323941417751607947084770655341343199094600608874987461787082480816724634006304151357495790320766139542405321762887876768878341521745168452631290464185742021034906233090493431162505660870768993835273958332586299714329096554953899001372781183166153519305382829306606596818382769255744028633774125858936889692951930689624031504171195336393013818467717262533324713861780189618631930984359556392398550230499306342626530661040249134106495119892361223746089483613657340702275119530280261736620169172945214765674333136934034361078430752345203856870055855916185062944964939861023585454590687225843203879980072040566594716106523919386914128498887713218797344843478179333181240467515607293390166638646293557313830863528997517829808297413376015873375648970869421513846060433122338189664536930918712817350624383910622953268437872906342070306683125468954062702601602922842890863137574126286091993865799107130291711215631101073629495142378461984332880581989156243253940174025492675676335208582069171472989208079146267814933386543361945728287526193766879669817547945053205693750831929836884707332666027348603491108938801742764261666478713218518987789466956279159327901703746518761783386669532459004645318930610920486484642654855890380891884320440209574362740299575582542534501548130189986099841415861476340082646898570540723138806781169117629228957339684535320061981403159348032344560611458883281893165189521444045093455193790032499433389906724028147957678260150681814951007579604794350777011807360534521243741224461207270056623142006026713489657890539020236916808745887648081286782691709599347475402163792208606157472255843360317748676590360660675776353614095297120879646411946267230013850982165124727577529775784435408849299703669700286417887744669513637833681587327257045991461081088095551776914392155987787889242981320196315026495376328501552435164314328629381487154241293091733318091317836127434547273803725195238152099273377452701189964076520680766319721370681753617023804669801030753958553551324504049288734356420812502346216835936349638138952356150794820191294709854532966234998597624848288974491547443005345833300998084198139420555066160604431782078799217329374266842778474950799179909578846565150696810278281607716844948491025800222248101794630775853461414878875477865369487644996255526223036208524425245006509629818811446217081325013997951961225513472265994352685656951909442783232033862767539034608701661016871019659577732061358913642837629898304285382091630296547383558245429186824919514582465476236405569046696570616686249138736967412915268483619915043391409767145923636104123285819836716596445894632787990193443658258638328151861871743283871855106868556784142885702403157324445275112821128167246364781690356415462790132972188077619055111407990923186023359380832836955141487840759812496786979576652661284006320580724177035929003933032091640629002885775327913710957336939246436181001994921521216912463635864812364948759579390299577115304832020938545685733221046556660282569422541476565048055142100964207285217729058720776684603467010045510412079465393443258981809027100876063980198824728714341690380784226727664927631334098719703185547492027677720432873923830368514033096583510458926047396782109067466481290595933472289549512179345817371323377927075014141203026891944746968639640512050866368339512885582454859585811505743982500285415832584520425763361643564486734053805529494982214331118196271806960457880577717409123694760726054420613070771006387203038668877861752422419226250743093616526324408239972296760417291951041118457059137329385821818530598521456187430527432126701759571752000210721933604861627934103993410311270243272716314186984705312749615984944518245790049841672747796845714491601147507621789116338614096600654412552077241675341127662864602466121803007793416817290197902120486502684437255416212329076211130934045526958199939970143410747995070616392068816928883073811273022355359879159910160896959386736052617518297669701675091449760431303768118097886848994730468183064320432657436851377813429516552848700703601841399106674733383246746462456681438549614758780284116317872140822357234507488457470392706667748584122482741392159251907824868867389090880986286002080891976583366663128458522336855366107527202042021351484893241028843405557037554494369884029616176481887107822119882527301459922689076018047207829979267431437921336501981487223678816728864514895644992465545955755430202187931526637164382538623110128355602311142491097501064202628046549290122797837570328515905249087880183603923766596040702906801272461171097788654038658138635297528095804239337263175555590160186120068048503454329831132552604082040470535755513855817462408301595928958883681215124118387010978672223550672564813680068976885577889530561178028976994106485677635905175921062619502447479680509978327246206600198173536092350057987858526283621393474483572400589037730261073358981016400250011882364455991689443137962982034565155412794499590060101272733082275736194743438507388285392558219458315114990399788364064997339595101727678341988003703069131415050459956934059919980982433594073060777455684117010904096874356216426729036682886129148051008882119390632146529327201128153622651107133751105472680012124549504048640254370426968412264220367201249836240326258913336923070781754420717391249110308269665455087435824851420752711668373682429838355705545260318607445059514767846825114110241918623922427832444623065100053261189497402445011384959212399441246865051351624266883113253784557556936893625593820907806383984622254968600331669363163995729393108973944753340995744995402371140832177027937446653743934639192361911443116041297394054069645690974991110184871131958290668975653154175690897368334621402299373804071348342481355870434179656112555378641540052515214644132641849471385355133761935563665463528204578169878904929557176651367257077337786900844509475248437356348462516743069666760066267482673252258884931971444314855306071607783484286634663951719368044727300777617500798747445031096724065462067033820597051258462223573817972470580897933962805222227201771186338020170935009831512425977151092498616559415923200161035389423185391305149552206849985859379538364096283258483103097155607344957400521844472511499372975283650225144485358612136258477513622329814018378114239921904851474287247989268842756126616950263334885546163747838185058129061934968330212554603057488672940161380779440685313129177743441447621273097984586339447482597848292849466115595354744601377031730807394155722845527762961201649223279185868614505987545111554384798542235796353870922120611760273762816046664746383043719284028891317885002595031483346798984882337403390241862818353398175062823625872774897890831519360357839565420804601200931086329293487163913961233879726005366702362267972604804545112332188058589247907374538170880977121490439040836924592351070012079483278931020654529093502978973111130304397242338131511489415860352804585434366893963270903359138233720400331113415675248013099455837657774987147215172460018101792878929454893866321551114738574225314424294792130827592823016094844291832024278044281798235188565644195451140621107956682201024640112924721097852011437313640971162823239540171018695483542411598301424819593247096857813312078137105042594690199413781443822922333616217463105857765723833227099440691470714919712027428808075062433152441227278182544646962756712553855369246462626835146768229684938672075447367097859111813470115631084806129630001443143166002912887064438032694817970661587350383393636193929917962615190422686333958078627780754362493460343363678905319537259805679087587159739433476953167783836695594331932433886829925703361750734285431480566025947722970994150066028809560742432630843986363092874987977728904914776823453359389763334529666579522629810094625005607713467375005890485494752931853486329728881557830813331680593814580976883036049353010432867384423853041252621741004521192256584868772623494413824267559879037637107421481246277022720072384805962412750812062347686166927279532857979874203353494923262944469025248913720314821046047983860992192686384174350281213091729380371174854563456355049730692952228614211504575038427512080809440896142336087085071018383863485977380916449002753354088883854562517182298647862742669710692942402812290572157837435086149919079015923023547451708888972751853396428804194223876616270274710188403849401012724967821890198417391511728297616078431842272535121631227659060140220578304528647152242805710934528786141176784418163735168953281126035756117170472133882777758456763376599876811645906708086127269855397245686491611766910135397862336541678731639135270092105038996168856312236582389101680878942886728559946367716497347738290025917953334554687434262709065678524107330793557606271200100952963922897821774277671040407820933755771157630689323849431007784807710807402817333279171808804793429043349591249856867947135026696828907074299205821515307177813155037803920465616451984551623270084269356393184972331857605143740033911721386966983245112010650052253739606827341967293942112586212712713613442955757585106235174526380447661887230970484246694197404355048275112280863243522803196901777259196804086848127210546538426253054177401623042639842110138769570285671279662884234879895229952290738994095301554674233937577572506194579900357708421567732166370029109017593133723526701429943708449131851738991064577949033207165652979709356977342865180186366393431815862017955287041314637298587283840137130539855171486579869478244225688105074358833719378959147098431685989541505759311533878643044858135621112591081242940950621860175772383949893708395038778334214167258305197700681235280860112943794996831239032074651819885019832428838543206047043675863218539081116800798622956776962581587716286869973687146242120308492380428650199624781465264261249911216911859078810493531398023819429715911924456513789774897795262777975174701759244375579909240421817339586631298434529773455053399269447119649435579715128519514531029504033035317233720563863640136658485730335503070485821543615081910069947068750524253747261781901759535923043522421429758466485134006589634282487272928864277723805299892788348510897159663218380077179599333474918413773772502880388268619603768083722819138273939060329609195873266387947434964021660326432987323139565170445166650886861307623055777708856233932478432016999187525178979627013122418286120090810595854538590251525320375248713938118858619500802486495440947492215580143530320245199321233452189462043290436815415851014178017373539610470828540195109287993041445700531156022217523217409072381973317872383462149672886305240834807583516205324377311427315849255326285208414938051361869289431638363481640572910989472784813699640465087493441807758830509315407752777258672658503545241335522400750446410387123582836655605030930389698144357797425614019772545426382414713743432908102332139755770703455801613832877394510798393691867927837591845571903609585101180181499240555067671192763929282920308022376960684982211846778277507262530452643669808083223885564485078798936058909925274261010188219746405084121055876752415252961982690742252095490657821657824722140885140447486248116651946874352575004315815743352398931237799648668221562566051392439734053992634869356028242406821910898342054245124960700413351211941927431656334875063417573923742041870410331687720006294059185392049552642687311190751248401277695983486241531072780537910992647116101730460209756303679221428957098065305654260708522093320899018316442344930822179416848484636754647838800652395603305759353937245510039849659299832915957808139368165045757856508732186103556509453104936179927073039338675478914009139762469704173262771856501257501896997887116025349102088136647045723506242843620995600560046978704194080324828609346962089657674562057376623234046136354453778105638660918440038771020135838327848402590813152942368736655499592740294282094281844179376562017711067053976920555532687113196780307351572893168180633960962140660885207091800194949526666495976016892052353032144539149796918760766647751346077964117495282271656969847365180758021492303141822850078959160154535436483770453850899354104393901716367451264369191768438342844153630299493685268692429304084308035829515918860467532149235350159032779235936360965470472568481228968685212995674755775111937964259494544254302916401489972439168304997738653654926526371201428084842761110189476415407442448392674104730400252523283879124668958936795774111127587298838985041207844824705767695649756234365905097052484753501212433766580506884048770595554846473581611128279886826124710413020078911469052817022714983660880573086907987507133116171141762671608757474338969876766934546659540369674538861037986369469179050728706034825531426886695206795918052575967161370631233404104655694514468017527425149056081899327668134176594224741305424312443727166093828641386873209983503663240692416535947775703483151452775609585806508106777694589157727635017960631641308376428696742511792996865413379650464965150211929281137560244421047850020390347971624393887708994124045461638510679894893026544018021731061970154465185523074940199067172207385734822541675226910861590907176100120538597280756307081136282847694931744056469175684732874492530872415309001210102228069992941802450651865245295156814224903342497259975298994195147065116352866826781970730346476170346999757943407787941713430030439813770460513599760464437755761093846707656267101306329488542761613819775917952299581114719333408320583669709154974739194789138599414427979906601985778182902636851991972664683595989880573863847471403832855389669140890942603583031398564086375151100852389047761820379074722807644777240321386229645691596237019103775571564457226738522516159361657338114555682378159520714679458006164301909706539618062232768766965777517106651854472197296985176629929814506730737344416483208615935529591809700875844311495506170869938455599783081611729033016106648719249182842247868551774551716686322046577283208715301051268661935245014370257274296664368198695323717546550139203949168630719836466324052414834400713005860995386514348319617720727479352251504179895638895453948452371330243980021740132606838608928036558593485507511011682941586889606567519015000391963299991976131980309130698058087993473215751450503045671615849919769673575551054206577733953963804576355854656701575950002166226409465068536273367092125985688747607446215104810989119615681961339437367874580265445926702910714613021641746944058685318945291868340237388500963539106572091241218572968295007647580968992768585113187807410598539930786783381819475482218082894256799456146754555886856446962890819544981904501114128159550287570999206406045031032652853431150656883528227234700924741066077018389372268834478406950855054776986090849031073002869750920724745783154290965148418250619256492814023026144979745255172782843625901079799598763754124690094065373065464662943589868139226650862567217055017828479408457938158830701218160482469881493075153978940718905783953856326915195850866367858633500873395460052893797680566244206448420529534651332718877119064891673078422366250367630047499332688731603915434626318834752352813691945222774386629696792778543322058260051896030727123103730352068499477777432225553730930094958224907397700360873776712432688360053414002689450193637716981331647739117857163056430222192546351175586541623978437417371279461302712416905354512824048317248230119195461057274945493265290216460876985070045401152936990299073560028673247881005541978909384086192390143184357320404617332501486786854969048172757055471436445564445388342950557902834894474308419170401635919080574552181403255802063318732958009819461155588367410590351270472478516965901312913002139346035353774614121657379153337653643392897856315830365368311784573762768739765541377329402561478133654670476696555560596618829205069212104696812502953962290573423279532189782762348624001183925148229880488164099149696673049645164499296180377274084878979804729984667575829223376527301152466227353237152473999308885900466830055518813048275249753702798150969389153768688149930413710516931865880883438951170419931540869282320037212713686208183916133480271070865805712779205900206204482566105656983504028677099287827905237561543772033687442636724916481798178864814264651819783180377784152155062720513526800596604094346163225405388943866191059758185486464499342066933124529889412707874082014712238903196959342559133837906999734755779467589138843146463054580364582978775441754591284743529263244952400041145360787227265212479759544260658353049041194798810594602090153156558620394295966244623343493359949529061664963496944096929203506550520047092891864203735224045398681692275338987926323310867344113051250150707248731677954065642609801160913861901745570063971813802257621783554272182624416427841549617100303710687131669459325676536351925341814468094064381938575346987715168014702680154896786274097345125508060725622184495685259824703779306267552469055513465059255788037249076195634733374154197896559396484271234898906263785719678330625651590008307280690598899607209625702988531630800965489321728294524570497232790847982574986019195267196719021437517007214045281502302846776448721302395535474486590415118862836878418518698432271617562961090359485524827909931240487373524630984197588220359156681533401324015626139063539704180041071697787236016457160346824935922202013981166322582793619752047810440076156020345086674382125957266220677106072229889705688715999785809803036430393765702372425482820786757528099999842528530069182275399289864393738902628496621475709988559632219606095217659563028013917642921992225656409215040296672727825854457926401317870582597340141360689479880463609523839188251339005496831426930164696096802901357058877861828207209608527669086725254210135168612004187344662440528067045641326827167931500224756614506322562367031362198408435621117081087399381796605466790405983432015465282209360825970910522021974668620771063984452324738712325690461856409290350624560542705979904612816133948940098246384063504606027405735694007466325703129472963333120670560319911013383032510364058587303611936742858046207508157413699452729106006877179253242844452761775642692427895332199704599048357553751954808913782516158847452128753750081720931079720976080900358656772155485568178673575952424222775973952158345620824516814293814957152431762709032372432623536362468890820651532686940952627059278818571566478685014918216484059108730624712415816286806561002340271856864145724004438470113901650195078408776667438480875914445956661279906892899410557214304865670287306585189323540466232072094181963334369186684570903501519888503807171707380159822404442510992238481375040574121139531670000988221467843802412579452013287708627217843525799468901186754064722184881982350962035140983167697187883406174462081552017734418908733685046371480050744648320647922256874177689741679397404211798462109297402341490740866256201326790261690284277172276354079980363567189574339775632200812187212097968033981467574795724365135594386394870822528626381419021510080694985297236439197853611746490153478944623776339308859274772035589490694354936556138914314224215994464323118426232137871270843402521046438657223445007274257221053808658002313605370845801811897042875132386987851769837688392415456831472093248347638548992056590340395965087272354349350609261182601784287017215087853194920630963250816302422351927448269526427080959964931517548643270133024039167867193182986612228736053869397480310016289780753294331466814199613894062984643040522939590020482795886163615705144414824906341885549477459803227294828620766453481665430886988275621060822962623461996449638090763673355511285630160942618269874117550780746659025842288638863119021849844525975519639751341763201428283475271065850677041906353018693633794755208163614277751576026005266545619896964259370219657047530963594184449924811674362763242601046465396169724955488951924512142602075981181437097079114853553969251270422730552373964329737639340021128243802000732198659930078472703977664601568877738425975200440000799525844868412779189503645870502826192291562376352781688709482128803247806958704583649068098545805390519514621236165072034885796740855864836702263450330323522931179907108012753245362931414838988642480737433652374805420766817820670574372889212120220718095448435135122538974934705149515820336335802063713517705485635344788417388356676783368886089774684782050971530351119859245585542277479260815015429340295032684549947979722138786175148814865461750590205916857594567880146731678784750325973182303288585653982534630489543893777665322318700864030852890862049911349024317619767730392966017659120839451680340305147173361313759266952291726293498435036468195313725587378425091118592997081567488349800028596241391466577376823055969603096502131848959774354499561297532488068691714223830368265011465602511472711625703184335880172402014751216347637114134447338592009552575339938944275785835578192667385262130528360433010111546907006581112245530198596038400713172439692109174837520478905062343912975252589842698541979395697812493605329901214274948994302221495231901055780369393439682588517906324028192879027245248469937663273319635358187174159276070820933673360763208294264118811134648326742352844597010259738865766802038049128109238378266554135227134125055495827215137083483537975264855009431211879700790933325413321806494026628537228833058756416095125876725529657112208878714793680815485723909764747772546423912115947878816239933195086394615546680100952704762153717820442743291852530247329287347005429528182548731624516413333997189435655231123280511653427240044603575965517899368517517429776208669983651975714118565633312155883313579961084372212640105217482858584598988872987902835922240302053445959373773962452286084809484284686362443356125440718333679784187580083185544989473841132475682056623407310293386307061426109534799698335282760480462572028822754296045712700045366359514783522183801245998513717080445734682139518720569448227868791837507615890662230582074111505763630728650566322337755086838224836073610218646099948383356000266987745593813766182856649900001427527209387480910207607093194877123447572155883439455486618431226001951139640851328664782550972288374767284072039577950632617595803445682621906116170117606090144980754826259245930565628680905701929429193261152781042569665238308363373682683998883138861978035792931175467492388299717800729218480904533385667028737724116559539640269915844710163891100881229735419311358612996358821497021687322063356101565743903509627133158664995843727141775390418668401648743211835088903287290741971728490540057780669902413416612026093265850422903512196317093881464204705052438428239073556316686210106043302086714769866205547392500127327154449989322827164551775116518499962174838262025298222921348760683500547635128132504690496053036091622647687743504956130713261201631797938362866608854309188281953536235519004948668842289464926931946353966664373453092175667278721570294472251895304869668587876189268974981337267743662226960431856465231386604663237924134981737712685398962663700549725511767000942033652680532500321629095810681932718402211999026844482953542676594837544707489798701870680995294900954329323047752632862767723305879326643926041887605169961252870224134422060930601252530633959947556408962085544751733353610322287499063073626745910825456040688780126632235023751622324917398559884619799410655797681370750421124069194351625765446733338020676814171668807705999805535217640726388097154029412833352058997417142244736416150168161227663257860212778275301107853490879302033266343840101389657006878188969923028733651637820832716225354009621350752392209921117389531004263400324686760137013819226853261456835931230303150980855875959375724563343147702335488458311463675171953426465701907025223392722678449340030490310268003234098268869028751921064631429221564275894486665304102044959576286752262171840984248987855171060774994907262445123853057988072278091349399003261228452896785478298675526425609072872785825226156150991550993618000222808771304834714083734082838345417925527055576570993114267864636825746002781860023708540525416221382847281839338020953349675119808474162699217497686707495340513076854247009090767080231881738119688497832539044780893362338155681074075577158505120115679346751202040708124478382203883231188754832630180631180004588231191355134245273143634580839783996711918690503138180237680693241751022446758161376318570736926523797743398377995147456253731563704727829584276498107011842214102467743551801698523496306642411325533599889432964061373311556548000764062096397479496208944929609332946671002432148790333258567285151370426522161436609425157176514415304806771152931111110247379808466034414529074917661324745566073968529008098988579673640318580398419190814105786466726031606763354933229004189115081747146485203102282757066248990451982038459584520933637613418873069021261019077007077669143499261341516353811341507861601058731511828917597706905691388164501239928934980637079479505464832204538208976221864371196549615938597945013790632910033774621748262369281643055098103271147348874662600770977778367188132398767805954296426543021276348934978729952031134560029276714698475733541720595312115091924667981331980163350042275655629191459389598738313289066989679984947592110475045104372689153545075243815517073917169376966902549304185189529200117519108796817572335627916030860596656736529976190518250615305972659359331189435038837325865554038964946342483919139618568149223792628024431650091663036083015593088146496693871793771491480323698494039999449891363055173075118500882077799658930675377546112553929424105306171745468499256170466983900505033152651292295205107815836260572907100786510625964242199673628221598706624851565032524145126742595360671458004524676479164395061151017424195531151436655818387856169607326050691388503551947589666702662467398945942068923453871829444649048201436642737578284014542025287452462941243867263596449439016305704228017117419449121130428075997236826245734160765097198795358035331664212595042924494289856077578649449468250509133831492643687072974586475188572619457060705085951374867925767306699018264046540170796457241700026724366147603899887368563304312334161068601807435178325548064268728423420754472587392154579001497819510813009890375346128173509512997305507161955480054196558431439826320656339553985120711398086443674144367211264937711632534535015257111884990473461881832671951333480263013477239482732586702164448555092065536895494534847427390299470374984147051729835965430866956821722368053681452287072264488245777290981937943252691915019216579578583716505663464874720237624298423300307488353199640785496787051954548327245868217746676380403281287587375973973309683658102094568907117178121361585413688062809997861397925886888423792112054379108996225289666818625241438639199983875933712884743158788988068202950262427500423864087800217989569549913039884930843529588316485653278412202804458804832555298806579150024675588992318647359376433977125358971726716547564436595768559977537202129166817298296758240098677449634913554711647890776800848973350437070609456970818369745643249343947065132453609968054158530165451609533441446382463285968639986438116695143636322321505129029882461617938249317441493079925185787347591731033525527698416492113185358514870658976350706990283237092396309997698101437967488540074741605385132822126337701060837957709687267695134045158110686214050097138511901107588228020708464758341537493480617962793916744159669075386080910187100405740744992135225230847965817586212646879252945019341424987621237818350131845164488790373735248502053400636318500694012135274640418249575604130302164660122727875983020017340060454378278455509323045624754887536960957730538669866388728276602877222948608863613529351406818679207693664625050013705170835702100262247083194380206974639341072268201733539197735634115879003686773611936324392455978532945682149053196519435040774793730375322545388707403732424457922129938989836488857355121068075942179442608903279510226676324567639347657262659091807665884954022762291768637128386332545560393788711858309763879628987047568732281795188317342766932402128037054262232341347589974785057134956935512706904979720113608961090531686433669513501411827607600578359103280517404113022386086002942088050058500812960317640869908267868420717357732517846677484804972570964505158547212392804279104169073940299101454281726508796678467554452305734043448560854355846125847938198425312068869064852544838326258125518103127697236337961700555830412086886556279341476969119050981967538286987054876322529037712035429761237306749691947271910338903393483266495639173578794025568441334779937939765798655654483827947273078260359143302856734330049593385495194972704087316105128104927918654977705942824025757104734955846077839955571307946321040529602341813558574228983491494074987373362464018278842827780206363653344307969720904968661600003861409596574114815102313551311256391315270046592369399920417744923583447577605141996507073792656576930035664304722630718619694790137593436908913978439481129693170541550953890511765176242285962125525751502455137521610138850169661667926691232180358742711010908302852922147146273411967850350311952626118512749706337566834489267503047728803023201226481980644147860251249181373266036437498964095743568386416236496378367787282159467903497154487566813046356220418124105224079381100498604958780842744701455985439155405602356906448551031522147683666180359747188468393176878541360978911691986449871608065300549444577031554571502085638986932968566161291339554667791072796551826249378095108979931554926565445724118354656851862607549909230807970809698782991313187970118722693990187212499157707227565889622987331201488635329449524723091958126307825059096851214478171585866365397469930361537758889614651590018664461353763878556450317817599477437574537595270981276694995789149103260611314109938200853741872764639826912143087045835827749791623200473859584803609791506290063045162732898196020218324763540877551281870238229430755433909277403466781269763986327267672983086036703022488168756053809301690783721874820332103958649752187681831489756991916430605389001761842023873428083622887374699943776019254155972071323454785035901143154799128347609773901605778297512229843898364990506517088170838394453635219265947353286750806541816761402356333449762601343932377975019008705421791602003564965373582321381057430747747345954536737974908621874418913950076357162141191678446058605049906668605135303744351978957278214780719514646398572520321123870152440532608842964597786396509639661802453426850337045475696544691347795624725533167570795532041836617673625114072278330812332345358080891130350526543351891729537460352552076013283591290058703833981121762583002502572515806368331537789083607446063774409822515324522714379765470793916208586858426856593988548986728031963481150819669154535099802763350454540264070537342512911996440917187749453432392992871244440592128945195222258874673825179324654528565635659847193895439181472622664646307167044245714026368635237486156563146311214135623581239130647261348485671808549929632942477642138409106841264604347557059233625146482452710549224695594675607750545589869016350617256182340307178858423033337882558061483583258237691254283409882865015394579699176441696870930170952015955088479837715339711999403316399798488923827498381128288817218088525253772842319345109942621431355793343321320376206062875515892524405763854502864394975631839588181582151028285204697147958069137904854965986737414547114929274189930071071153188463487117346814591255757745131498609376087351770505596515152017871265012056989697160439092367444329738782455903471976902635627462691990656623916532289322503487034918792644106705916532293480702027926999416787019606018244950095901218914080394325517452768215051924617642178662635222791292720085270727324892212103665802556670451084874675652792409490624400712353863745809155007632439211737963801953909394148008153933226503054936389967892771947096981718411431421029676141342903129890028593577854818321434352508506161663246107697199161288358308929097428427507415226412480427109716192128326569576578276482986204093790065466488415496786729096286392976410642063849580058310861038488761205777841289963109629121738234532423919667893195174579903961692946517646350143367198203522147086540973730615261110592081773313836378004194968980018336304992152728273572883387130284846462268148088613750039407711027252737849401420035094111018832059723545263130299853842905039033302462534674531997549913434075620321515367183287557357991459467437535521905165135431702703698138877525328626245300927214664447388224617372033793269057232406027402724776832904617862854957872174917958757638653566316961291379678482811066684780719487448816135169226224412126047889859244572408213796144364593730121591623431926346745556273442206110104206774438795140682424736778263296472830612461925633524654165540023831687012344563824979475696276022710867506954616183660558996888560617920279445835042510143295788310321038510922832559501657706350700863272004248247267670236387951009732875255797205120570496472882341626476577637360023630478733522980938946076599360512779715404588804843282485034085603102112890357563028911698038001617180582802149009881960841741752396602316284320516202508102229011501280938470522621866220338494146918726837473084985953283038873218335174022172268367788969139573616440330392588223816655641056729117888244088640139572366157547567610658955353100345873172442433414239983117182303680644340149816766462406981004858622017181059749645597751170166355852942738505674721253691603605694856283452832895390705476624668415375229890831814004404332505048614067909303987602983823470987141743929478248651896022989129757888586833354579761948493822257054914514448099909290209136953163383777942386890706217869762182280760979789032941342203354543635336815362453713948193803238474032745904175570226488478608641934648960034563447927189876943686700889273561968818416258915549074418746881846980784803547577764433064865449928643758783657395253306788302209361387178366034249512652932038478421119824455978675855200794477812572377473418383938939483372207366760994042107184005900457889177758005408443816977046126054565007506607433497150581901757058808853723958571892607236067448580144946410047797857997196338250423869218479468890241366255384501971201511890387127258852111235328651930095248713659907258336337428689855921232011210919192158070743280383523424094603850924127289418862970056981119052767921812030663641067860752104906957268352038855352742295806644666492758095216124398443838902609694348006190134487397743336559210565503890428203941865095225250546888679620454338081696309577376459799119801575384882856636513271899239131578151954933682525681682077966411311318859803451596177485677438811335761405700455715180539644195286370330616270345899580802073800376758078937948990645043548776340817576993363398518394654420868510567791117784650176484453664603621790429842104182973522352700470418079012179294857621339410658835249125122142346410747555219272747741167092777020097960343335467643192042845160324750174970518563714894804150691422633385421331934638561411380248613437771572749284884530193234125947852628037476155384977293716904890179018772109365211235794127559055508911677040702982851760869922098277503458023701199983173413066249123370461316178779574030624194332673267505525174934566021382319193825451319436087290031501514335539337375632629421050896253897062555196719770045966011513812713406779511507424562617851851274491605868978860006413047725485121867828253256260304992143073450670790210548107405705459717503937506710974947038891856891980555120802240506286906147548568066925401105266747917502799521214068037032709846239921321621878850650673904261457809605474806576428359593186734708961801867268703301693537205946315933702305388480975554210483712925382505245009090384117079082492751188499006611450046294015039484262708011003429863655941476139034586652412489915261438330547847723406126469099854567239084863929979982735330306037756009287769976497082213525231535706215849377070625734878139559975711298554040780535467810545909716025233073860297457336577271234501422312511624841346350684407405446068701266599313417509553954217489423147267378843571611741533042527322334150364466486050659838523992055473614663454951043511832810203821504940040959917282907248771311553071678521846702652376816817523421995810946099066274612669522350186960093580712042311013519699066938939136859565207561909476748858711470964802930177273884297147682050221047462445609135284735143349752038971567322389863452341776118616859505107373071081202312064837333595345348179684071002598976112485702368359172994959791429836981534408455149708587163266516787433673505863428785742299272262125760375756904701193305783612883651205491297023238228739599851252360553126929180533047379676779777075861584059692837777409059555907751365140552287333955868384773217030168477430362054555965214623594729171912252516358152955181761831904803856815503724745114088671763534606327589838413027315093169382182701740230775518916838638714402256520541295036400147525017455442473448692540275200984859812595094249877451032645134787729437967608590657076269407789729841683503599609760947674582952708364795991009348592179330399172788538259970560143893648487078726945870675976961831744966985463257454770876009179912180799962510416624832010576603576663061059997868615515750861059230739428195225926381184499157606230861564138523081718748895196905748391160672832854593530484828748420439188820149557258862660759200166311352804427229589674452512949163717547659618513121376881634890123487770024022731121894376941769099097293138422252837226057663005643378659655762536882140069411046453662765263661868795860811464309330764974039454578275110778023872605457314714879807303185193948502668761872626475482643117828058847393789350988463144749489428732874712992283695869966606244701478137489932727517985683964639782285414082805425959985924407509182608804752884201393144962269262116397585575155548241564241097961666563994417462270592472775742866058112022904572184411489457411944670805667888278063412487970333866194313684025178897074597185006562541903657521262140427591010647633944453464388750251204449329261818901009429402332600630959537093131034474671082479337519600234923596697566337302349506957666099973653955657634132210597520969930608392794960363572682679989524307866681429676592716944945999731769656876817320425224251201904877829429711650346045124629029358398432821964146544942733930029758273207506835539836480093392776739042730395339153312578265541908653790582241699958819676880768783302256963124465956555680330283251136404133182139863110173850921300521157325252608020909700117305566739789007471970164036978226034471457835036489666598450234430299089631279436193523461405144787533058962035871001662997498545744284230520261100948960141408694482636229429797571008973409025167673148113709550026388804703027450875635847674714721834330744159548793010180250784092834808096091712499644361202752874441466141281637956754298835243528705370432804479980117492596941221468887595803910278642342477706438585852600579915236756614424432088619844339517968730192477108677754237060667311079485167729784627441662212758845546628608575499239215244071278712452210048594670721695614185323153799782503313527666716340587958534849682439378279079696496401863962575917886751672184095297093543691975245032821200356357404239815970642483284732052414495489658177053383840418516434328003412247553232250994418293624316617641583366562177886349878473013740897776480989261118709507834931682803924263487322911577710507330698931680789746021559703785873755723910411047114925297806635383636703468018226132378267226503333119451203192881015085662306937541802129121826480820781511992499365748818231882910327242844569242958614454778836704131208176909754643688109793608927951987148986573177026032771682958538925557826902400119621956364516827355942145600341367093651077931992520045717314745823523708407989477315827823495758786414662616903078007086674263220449564543115896561090456075612853084574412433783254963602406479315574859198046361408186628199082900436663082143825041692904930936277549490919910609904008751106599655862052027840364052225234531953962467616612985849538594030088431278293926163499333438973244444169969686178721053753589118254987183166929619487026754518157663198902945427479145728827428801026270040598372795996402973445819021304185995245688427256009939093434888415011783187675307478690117135283247670560533448720954118560115618019351624422877820126658602702398897124284103794411424195553191668507196007972201642240751904778351205239109743548284198429146226431323833252316650714869032177090085769749709773056623486292588531565886570075399873878906156262838967400251280168946249802794677142653027892519036294115263285633214331556152489915890193743224953682589104029338793093736933829330747373008763162708329289444580273075789876103183315797718788542960457113090601962133706942335183696872114361921829095986453720740454696978487024091332342028667021923130945997310452653081035142444031846402531288942411518333610724635737614056019331475184116505060922130831874369850024633464452807780405217491711563176669752759488077428465567726081972770805613312320823615624166055283289887349405015769417975862818118860771618043414905694175113602380209178522576540798298868120744820072144996693516454000365999252630929227201496388765106339765864766217934470412251263397449717737069842883331200903251152238906290345874749875277704370983386432468758302597110416078411997549860617424325561113290725824933080415055082165265512323530054630636365674281022362167341904583433002244837065715522779100000672112962177255942189249026748445778842386371375301932471407874690138624996901223805336564008135015740612510796195218766876702527842282237959574289792462096334710742160402418934618464850386470135018879771008650331610631265436335889778567927885867054821834494308159587412076039372186573693748419734626554059173961957287043968602804789749818643918296383157049414079413666658576296929454363252636369289751773920366187713067095930825337798757288948524513630117080231997928068456298227767075019030820925254907634147480907810410085473532453137262606522085041786207368742669745741812286630374004422883295777909557234172042376834609264220564147359539166408650831801569401152153111015964932484435936497272817574069246757191326865588761590285817615304199768450336330909993364611897647551140594026907624038116052471167551519708426329566569296522934967226746099437625468332038212190382952192508592769398762323676144018032448426654589424220864909800865240530555134552128300245590680225442632824249652908765867016626763940912912258176525863642845977335246562119441945833798575198720020568110820215012920058557768208040696709438951550946360058857693695681260608017581388158935072192855801927177554714901216167475756553563205809134252949095293674000857251496389118652611338318393798481375193847503605011166995256184181276675152651956074976451037538662753386596554317774115221332150605562908448929408284774795066862319449461017388215416039295148838747866869100964766866326631888110190315739221796594691916891349195031065994809439488636333865658349902890091295912940744317001279732345947136139737620018729837947251011039479870073730227024825828895013629432445409841923349604447978154991910681803685291832609076063307578511383703200022568908061729301017353322458661182773237041870948643741402788621098942511411635062082198306521586750260915324348766557987216560733737053251539879306004247881362604852142216433421381563952433613289804124661993814268521350520700402975771969102571780784002585470867402082361855687898131634775430168050469937950120019557365105953111372827177653498499481024383639565637082300181778466514462783537485381526959707410628914721041796906073651020712689190566759313975349023516141023074718338379631030453794074695979568254541198502841670434685882204011154023004797266045538715205287802901467519397379504101065470286379667714088456821907782604397264730038219785984567015486127590697417633074167247327422891028946625165825282269795299699341525686247277445000199386050704359273407556797503945092558748246505098523064261448556233969799255882426342385980483426569326050957245997277470169938046402679257167563511033764472574322541978148617911006433628565869892435757415961111470190579873946905403427876902808594743780904416862199252243553861510393798256224740571542171439241626364733423430802810870375833074832568771638674023287104242152374459755280794051143262438992385150219963909552757019862837716086328605528584098228127350698401472922045049812066691603458204626672023492355765787480726597257860558778904780224882961894275292364599197013906453720881490635013212796780807589758862647634027742882917505191899220445942283172678043236323781207275801029147655538308279513790851143317204483107891584939110323317731463747676027844513112938388303300108664934548037263865290360014882516739690533358352407597976503175382485757718191347667680607859764323725310881380630327708106744824629167634293407744368353081372295686938340766453522345273664084588581869795563295199177631100175734972390189251632970892710205427209239635827101716832843522145670335363086437210813472787331683755849514844262686921718073424734435000490844382372254334597392137828530439463087605921338614291765966868488714802245853170915032264608301363028055963373923072770621533059083751035770532268243632424065522786962982262006384320138328646190120655819112957699108081778586254868539915079733772675943240653498522374932912644042406700970431446040164742035972278698062425360870947742060520152716011608274475700434743003056688718761930496307412836611479401898928968977868423361416827178929654982459804058215003612538200785309834097898948221812060729588627216679699635138579769270455848708384836688914666029912486479647724417210182956451659035338465440365232840007451101444938515392978579009762567868323387606748961208185149223243625745949128200928988956059335037066312135884620414389461539712701770338380726700422309098618342901930456802652591526697000522602470837581989815658696227649024954933790827034965404630819130182868508505222427738193316500070678200535366298380578730066655445911062428766460191683464698463732644659742117976148764626802501329021433592344324562599845072231710436843052869499331142052610983050736685374211199136611171553689813733617059885447230301728856134574547532246832983650675576298245138004933248487378462131613643247028129355185895194939007788647559200175955715509838435119489024862983964738079309014586260427618832310064115608386748262516683918128090430469890803653779057320395858647263994960869266225792894004867096761331818145279319922636585532179527724233175345029702182276270815799772483638000620433745901986290332267033395420960098053828524282208252438626235698174050814017281436280694015576732458216041797692085925295240921312440700512464897991461989671092826619369070402529034945717525324629899632451808376346966703859120108384599776357278624237155403114613955129959286632239905390424440100794243865850315369343554512114013447763998275723504517685343956918447350787804014876119405641762912968615353975077639986742854792996636009127657663410538170089105141646655149520395744617412305952440847441126162371067624726264524579048872514802862863373661255321089295532019298403458985760044282834229879674534804647114683519746811423205233782145950317749956066679307590480101000190571644216738792721649143435504860939719557474604336472110043308501710942841653455442292514454365196086410403269847666585067425013280015476005726919255237997375645764317947019320903114982062880301622748598118058131990327321997524714692609153599595362574768400779583108295062635066744675157721840454943124590684438193320706015953269677349597054552007627515386073698537747229559746478621270014029948964470261369994458381529608619115317892118276192959111765100954381420077504446665013706009618556622187489562466793118587103829637709556581321621396291280789569949686529997856128369704604604989723488390334529049138351881725691776804592311596584823150522133808309385540756515403627908531429273964496635576733477626559527005043412818401733898472680258421371191967046583510809686208246042901392249538735701632505650560598195307356574218044956647622378691846931409061488639337211252557250353019831198448193234346947367862187633772216675145612163871278368602770413497501252833880707569150708427127779523572110669114370066894634606985009906413997030331825632829471921705463945754152584007290528102287545538450778028855498546757590506075308862981020634260392859586848945689187133537192253005721751285844232709217156305043861278219374449425757316956653371728256647004132153909332084127398900527069329901839947240468956615781269233877174461353323904843540773001753913153754136204117545335437835863540337865034851066052654686273135802732132617942337793456783774873829781418756575033019726916522516406561757811689688328658807094060398478662594346548104416633876576532536158116232221942241540680400499214221637429526132711246071536528372939479891206975338615063283070100128561249313989450852577865577234291100728928080164931361242270133861860034051201384247267358015427767803284081185946149412748560651314232311884997893937200080965660339289604609060703195644646077308979128439102312396052852808102096522102561074948223433184576636360496778990098681766333749896731589377331006043866220668657661775633807739995047063494404489060582389557159769144913434789740367325105589544671035088186791209163614283604341986702761358371194138851688241924457015604208885408581970216773919679205566958167169099864205978705174904769603440312844367063056607281530802419477201454193935495543879624386340533970136631817934604015794875156779177869716964847424532873407128068450717076698652367810984768884713671095843806377427316045148265188599702853077888901313899471791192808306427732227140306347955536486176842064995725425490358503364882427781079169659940194992584264706484537024740030551525772287477080715839748970416807676035424571651220840988069430355880877923770264114865883570321172673291368953330154256703280444908372044993396988736782583645361095477202753841181983789364447428560770477829667097023594243320914178257808086472676882436349100103012919621391279112111504240812910003559430877507253771436967391905619416225327871836645382166782713266817084198115736021539035336857498651777500825983264077125285260154731075969886889376139337638555447117261411466744190680034151075351006721685483746463397897305652146072031769654601886526969153701136206401597267756684439884769803549693839302975917480898845997550874500413546906643587246625158631812123900762968156802566341069056642516187697741225831259134442719438620680323029880897611079202762353717060525583254812819987558151581420042515260230390766646007336766670156736794223429271311106725847806942030670302848284104475904148507942938939301936080718801239439393514361972725177277012431274746851546448567084323994383621342134348156501402854835113530413234059948649166415818566345991177280704934584358945971679298525166141871182116820114335825355188755078435569422510594935496674130339150987500258596827968308461434431390729005683084712712202781268994662729405264976235490271208427198278463723395151936245335766160501895778471535543994889667681611576818402714878112898210340512488377768393294278095464241192669149000994720829959601153180907579719514233709032908616386040350590770414311873950366987617522122821147786850313815975844555372281862042644034699479019180863110396506098269227080687956768870889004962383143479323400652654003310654506368371103450081155662021630843757320523873348926699360496384321538197088386301773852976533407900260952113773884329921866338439720920052791979691534108241081656151834634733689741270401968157532062739520807240363046565501640071855573018897938481491101279523663399491061216035200829213324061544452550738212456311024320039158477752594468891644831154773320983384972643740088869401755728239546549675000406392281458876560375810689889099592521880921438337058246034885446769528907189189171320202826985122482481287145817429623809350614248476832758837418247082531631638750033375907914003067369409280984557778232986670132050774579512472951755932540219810738710563885940642490230632517782194959357363352228802546975677070022504549666691595213145638733800211762239164304880221332532710644658117197298613351951142786644076492401343595796483889430739196686525251370098625946252255788668223072718819279927352227398787096384586545638427561069425310428470849093598782785464344491973297826496604585694978571187502425492029491526192316717030627482953076354455871613348242791961768720298228421459216487858665992669127951300466223117601246980851853147195017289813956788036725404203420990123313644448194394930435666905619108872949960656457899094468681036660789274057514889240691590431743103844068804813932478544654821430429189740227365818817753778347861673298820816818888901901352814226910521773074886649414294339724442911753334070831479478901945765240911268268960447511740377504059380634739104209940521008287092567646383637788659595045622901819113358636641044670272428900499365321958460977351357025450375105957897891822368408597882908261997018971063152868558643530806048084339210415193720296447674670765607795137636887532873692730803450728929481813093389932680337826880052054327515915936881331847339870944395260659380434558316112509090674941606597286383548300659443303614980762157821088293181893854049241878843620334329560992848160257709391354196083377849889891179551301116695935907868846589554766752719958760451524470224671459603349645131138563441381213383808468023397692047943424679588593950621637503455158560391586511460555075922438065596187884269811234983149069261425524213729594090322282876008170403941767291273906654039747146720350651537542531324769662250269196441712789471324423201519351758359541788297076501738887120299352718087874248277040678163889378067741797391078649964420813307945605995626765792163677172406812919253747070754089045697055201089874796600025791897912967235157534991599678574096778050264974230688556680173216401366351991316749871954255291956941025033875144110237550587758721860263888650801612365851378681811829955447992439147257620360056305615518152087072753941679717085416160997246019590965094700876523315784648520768888161914540529213924098422814465010233906093964277795495454297727919603918105506134776748371176997115124204962291498078160534016623799776375430412067487542223828835640050456086654743091216897718789179547123193758511267361057285685444169972468699101056147500989816458103572088764604064367763645372442377704229300275198013774576739853250616189403521703070278431461990358187479940033799040289577653742474006055385324949270351110946775939197213007439403578297849403353081526921624229697852231905804580477230412638710130780932174797926448913609294813143732382891981569330413538201748381776691957272478985029026693353034368128295645699799171332779521988600325166378268138697179536137801814383509607248451299226744083877890472198534514767672269961397979194129658700438932399914673728183743328742007064980944961987667387616245301578849273397570140630989672386309404422745840802679476361164578491955288376147195383265466724505827316180565960332273145957707288382253363401602370723370007247796786498908823739166800798433205695959121888934917948253897299884355488799711507717370691597395069425676507326083720063157666650253639943432783099895549372553065720343999438070859783987064955445969824353575958986365193378604732351640281323323089791869250214188262334497535951849426157144378015779359307277371186882435702391650904201589921364543753751155498941134461965554915473674696891292770464121545240205085781932514122351496061291738372410373271015001953162810302081229924920939839412539133883397079678999348536750010506678092951665039999265470851599813913611245317102330613923294711139207463880547199663648599174166445122271904010532641344055570756997668564341538297481547144632142908313128376938228131497226090356387697266059186841363060328771588435069370042127774256122267424561132323049394304951192674054056894681736480329544165214035743004665100342152142845844479482300667817705175825710921035598258945409537902581636460393403337757980293426882640890616562393697488885211565250401121056831596171084085492619274311985258497466590548083484585380393823849459883778382074602280016714043400721221269082974774265246858985922492329331228025590409810211926833983456892508537975060363658414173009922874229384977887338779987561334964761621431602851622818047074929065248748075819096266923749163734564957031110647112773763102989300243116315571881773823116201333948817631684770450042774590564342399618037366636555072001009209461295595203955378763849941843817154321200126914338327028499948389716694984977046776563261290387523969913489764623562844250455430508818556361318161251721220412986859137306131166003751474036538047824127171168284163441250543564106910680214966617810223836341668061408599702623256953242641349498441242465497961586074501869982439058039476277237279417753741331823931741956863786671617095783446948653061163991601496366767993798205995289657132002914429745692397825937157293668754987537976576863718579880769110762540570469617701504050895467257824779187292459168232091660393292366757566272427462564818463599641076906612597333162476519555561013370545042925182016674931541810540328347469336466185975441785984632062605974440245347738975936537990892150342244218571153986282656083547482463519596560345280451092739258578965514664914128122865945188994770766534242584375545182638580996745941260880719052998374973578819223605406752958014030430842588266454082868281969333491793660462335702692133220552421859554098398468502431924020424187208884600789197545711477000160571151497823366046726926823527202804017798738133799156964694809194724263290901230780968540162122548704240958008346688071417253171617934076861980132015136249482306998282474025147717223237047288256434217232578186412704709403374323027162591881925883677009032673440442017358629577284006949979715370672266069874601541684513590071386110634867488201777775431036300811785800277760356111380810645235520546582095358344323286091986856037864989125374585898109565382075477473048068899892103258537808202366110413552635989959274275815723736148483570452149957614809079137292071930746875425593602054351694144761495790102594450435632257913687865935363142298726619364852246578186041682790942081656577764262204639318894350986756344917631690611634420052529154101169783116072417831943033192164873300958762083350364796356149322994419175354555537170932173579751008598648225006073081604799785659766968944382535198654634513888741618875951953468867428713763458701190330326418161826282580011122313209338107545458612331358330257917508606149498588251975175754153805256284160857105170557362925004089766142509798972021020360879021638483743529107150359692457856759630202295464134660744683569599908010607004215403251185249137102193720930637944546328539725752074603490407070137084369817130307325689115259453197990535214908051527173246034324058299971225913799647091716975894272008553711992941237179163558670538512829439014418865058233130185714954526852021837106358678334927038559616447716781798035979871235575982642099624403424480189644526318850715497958198819836364070922395893447146271817715049323786832755068820713649053523627103394669771213204111832409637106387605620163840231730271428119080586481241682167130992381730673882846637616224946374514867084078595374695590806018475986273803203114617775673251760227676822510654551835470917367066684525922298105163752810468199723722948504160105905977582792187529274244991050534371461556979749261010427924703398854925612885190673756629795555589564335098455993477072292963143279341112671151743542587820915509263338961747511063676139341767641170049320353171726193206125307184530854174992920505448599533882127984401470640076372070045406867189319608550006371628538446840653124105738039685165880045126056761710083396108464812001935433915492750482842621527659699165867737862725925031954289241440832976091684521002293375992590567694163313005439300473625833954712686712063600119618287743116763483012994530906263735091065830452986623367065997571027353453375303888207178313532731756960728270635758607359231655010452346065997709738204003865025472520398556215723601637251736607346655166685918912984183932473575072433408661628016475541025485550522392177078410020915856924448772494662610846954238192752148445100339135734172443899397027131825711066483428775258484966563564306498238401607738573624431098379806109039677714970600279856700352949090307363380253524538537568250058626279931225524857198762198612691561503432806387498519092099202150660538074071681590524380942451646782265980075670715537003197490351449665927828287058543296291842685315687871983795921797552217465155568257868327292778297650026943427396676481108033324680457691171929390528724539633778851369253417077842389555325441739500415990687161645673781368174995336626440505105832455203072932760056017510621514409586202891552963315176659821080443877619961937730171117289509779372106351377166687566703175427588839167140335258775338468440333163511524401640310759437343106700982106795297548404127873030032856912671540806276655025307268478892840274946629216720039169949840220982682184093235755042577867189127286313658970261424980657177582384928188664196697269873168880375368513972145609930269722941717758531555854980124989093682771489235235353119015985900152755562405109681471660005732047573881901581858389161535087196027166922141343979504547095791807942894394150123003733640576470475672199140826237876853071650366223605676310870509913692744117469813972010187677297169804902410568471320606036756812310164381850283689390963108913940009553133112846045259837658674971841096531262989182438376605791779432544056467261222295229635245760116272666792618502882852816081982204126399859347218727091430424793731753617905882890382075717915326770621706612332374764880539198107016166804945086333788424979112932525810670425693690274926928986493202385857328585571873815780929869508547784587836671170963155940520223977982823022535670139477869146395472299914587771298951343867166623823415800467387785834007138475917218786432172446772908640467103459802584069080126503343296745282003238270687426722193580858608184286381074336634617984888552721265300884346591733061677981300331292280478171276971349682195847077138589028655112758260133753550373794076925967808598624339359842407824491745764113315307498923642560994670459918606721800077720232574944922979620166614512436749974302089287786160565423641813599513580098927083491259278485132473867222603473043935235937579088957584995216791211285507986225931868967998383347417141691540986161672194159859972533797083045752308164264492128007462728165835543816324177747021230177134678533985525501667412329761543712814923190361893959617516000078125964586159610881682652604915477116190937715944031466576726341637146774490788937282723095655202154687630782236813950895773550626563965629187213281754879575039090012149084266341661702833208376267892521292297003237612373606313333165139636423698828482504177077823107702368457943091573818040224930081942641644261165982892593326457260693056835784090035407810311431921027133886630523974105307176986375347870402584171565707527403607598861617613120955039398763976741664299248948871564344243873907010108438799088583630772531903322570381496851647086094080258431436875068833115958613051557077466175416918338875143327314157316742602740493215000667903413939494057942107867664754751688682022061516829302362459404811718115598574672627719264606375694269330554842948013553227801224416927571965648369173214616089174788031162941858663919763619226048881482679700704231169475350825465545682660677019423910212381823651939792094765755674204464230810665202401788401059482876863201455139573935618430478768676972524025666931663460730500687510797617165033116912269267984821988648606061704730986278749420219895900764353163271042148290216993441851111216308544400090584685367071765009959350661627423429455193629444770911189396906785173293284981863677634815750269438782122623919240833449941685570142499087020080160250794522890716166581334619326626043998502679614189445558335635484800510936320255579151235815544096927835358565363268327634742605245677791157674046936549657122204848514610692655681812378720808460273172539206117930645975132427335559433153260045299338549313720601728881150942665105348117056143580042345058737457037599116343722459008319385602429119009384617746184032808917555445859026188626747222219774718177945685103258661937641654885226829958737312968248306331975796926813807138223001795811206392345719887732152913580574145842177622003071916771808578299856852731250517500702434605065119564801309890857827131449093060006504085777805311267673701603785805815626512847324788227758861925966813502381252163029200204536605279932523915343850284906868290973894014117468739118087375952957440310336963611748658914114714869967156253951097045141179555605807116766015591572316377212780021793531666009307102757668107857983067618625434669594133135053061584658110391410311440067203703183993716979025571992992887144558460754994677603380950254691898436449624912462008572325160919006447888692870351504643985270290946991005262926594135405679416774830220746885819539839797138924599720479165934704179686400369203456608443138345653398336931059113987441127586803511625702822285784643874429598466765160415861450407390056209828275010408083598489467866698891620529638260418067792099116914951149468582601045255464278599593943665284136384528513542772797994863163934246968001384919591367499615754303460882420311485453125287462403230170293612419739838109315419203049218068113618492808348081795790557621524681366438627516291936494081817720847896999722084418349193407987790093730029567172742253216404146950363641905121949890658245247519251235136068819329649295139889764353132123180433895607501146775504236657567534576455954743069520387058354357996458331045021385647092585171922752362633126416989252934262133255313092235961996347480890535873938662891707795956280389446564606146405307176290511304332592779960078510279859372856735986257871632001286876897210284475144040454473655940046594587663944000265003157575632355592923908262183062732091122005321972901824696068610014162812311827504889327381239737268337303197089036985705156361243842867453846004793153960771315712819700376553314654230429836539788981549195458152729551233983464278794825138486221768163135033735981684581506885856229020926117697581637990868033482951811930860029448053912849387721440957865830060744222922393427788190734627567142864847462788648255367439378398344028007337211714594331517039227082848550998415411801029143062474981947174081180674181061733743529081987445917594325191465648466323822393385677022049797763168560372183495710186876666771716282267981507311401174719388561879017328113912880764240007634315586622468932304399681202068641531898321214805783406707711130039372933842021298942487832434684163441535555583313102875847236571724251918810245759025972593229942630634877397030444295089135036808699748851979697249561320160651133828255246973028793559684628023883233302621205221123756120588433613386823060533513657646081428794935115579789153453959082847898891602474675543802480208557535907501667549476231713344947317335623217218776198282882978195669969644902824691537314216508716119411947034531437035758970907017852138020807400225848754672598135714861384141006354842573478957304001364739102512413384573715062732931013576959521298428782581076166963531016283510195180005982390330390489206712047877504744787177663220337533922069089623060558185781619155354271587798799692440222637690886176755290678077143701425058405488349334009700724897654199026427492261665337534458869015978203964746854189372800692934841820361602304985192767295709386014689216943353857058179544380533769991192840950588248241630523273674970491979810439739770168456326674306683187057665267878292106076410052178370856833331655942891903970892434376470323275271983940629578732558592497118348792676883424557635689414785053477573530726287471302497192313257018679370604408397137928460710648236507811284425472093576674770473400732217747372385228348278579313208571829021975876236389956463851911972072675826411423182471232798283056816688437720200541630352428401631818693229024613398223482156258696687433405569437068326853744233458357154994884615239250503130940300673660098781706905402814184441133636630739927899613989086265837432922009171050331305422788354389160532172847815348950677856790021313017987577605775863455701213582692226034542905344453231462220944379853616770731826176353115047272784024039502657108781282192721587616957557203337003679227182548976219755268097203228178009489420643607692440476305159619943551472945027378678592243606805652678736247609812238118443212803219163337431691584526715829635489719583272003819883338867747763095602471424033447628415241788102671404742822032671143590449567855934067516768709923189356201899134298540055851559609977534510906110695114615865300360195995486026121462054720869047072594253914392446181845743448894815679178410505866526860460120693007949918257737296610580084853924562304241682397904504767259667264683931001267719468752146764686406374000913270580763166916354942295722035807799243240206455027031994591282510072088962351181219043538927065437857982177262493980346376256771170529854238517534855221001952592139957658760296344786218046069485495753858086334214269703000514083367399083591717447256748184245356145495332673552290570411806815596168539555179237909155878898097575744364714347051988933138571422460446595357551051051489907154640512624105279560778046290157693027904534870015120101212589614590850754838590754643275447291519485371322232619695355499252216421053753496912741324504622677783733265537484650422764990727806477604305136094167245740560780908432377819812059167485329021636055566425616101153898897129550005700387494393957147489804055707136753725210794594490477660885802107089939310868745629401715429107278295704003557567162200101793389101636095522910738921516482934270568392802923284810695841958273232102427514832732003587739071647087416947349775530604766876108005906914866812258568759150655604219403171998489146744660781468207177688038117028959433197819687399146915643380037782322683345170110302413423974448797558420518088155367331473393739775659091240631831751978160872413375589527191708072699136833999825204220071776586106250313944192019524080906131725719545009232926199684043874700661641625799209438706473885426687548354012419548895133805215746655701315172579311471283983810289564912035290542735348968498636864674226206147753077348794152951755687730348863026821305387142987819212751847228986545923076883514369973611538689097648777999653285065165187365694240000072941435306618452714026776631802480236131477963104730492582546492808481339382280952409452063851198488730806868169731252633034973521837787953432576924913627309417039033386472771815804448438728018687910194795399413336718555122759391520005336659582364117026604616564536148040543533516354500249787732939343648922635927401299933709779288418164190384883741521166437022096206899119361317700387366357250248743184049948085281708549938083114296254694564944194592492668879170885699976156017599185118933551886676744502796720498659109582059390323433505049867193957596222160707271988412332524419267929623188210566395730659710680688846142255164370281668175863255133528643255507429237911308447177334723013296831297185097682077703791187232671304105235603138536253279044658538832963644174152725550642034329302854167067507850502565463612308474051434134459934701975869382895827975309106213741161306970861355207203346530390875171144757849947509834157519979686057069570750124040951327385449061937299485500519265702904117516208165083723044944768371811728459700656482454718013034147436367057424238351761069444090090034490072438450174439558299321159598037370160446117073702425189309809467113066050203233172087241227300840876924475472343592359088557492204115846848676800233108120965901504818355347022087079963587521698531765169831321100230620889151586763625012225987802306599424174237703135970113594509872099783895551261645403766791807499950546882270118276919252336488765337122003695374386760209424346031832661965980951287648520416825364672393645646683133470704556203711695775781236745269311031256697736951981854242884820158962524535985344649988132364113550441229008494818808255988382256824896689932028825441461937799456333649250327173519636357443324588266913618532904330823343256392033422464306534238479214245895666678300558404741833556791298159415876114550721798332030226061269020645530649941509364436173009666314306770549904244606863727967171581251823934080435337704061135367430522180420246785879644509184952762286544824626693877520144420306654807651574648544652803084467806324869844649314099626828135886433262700044495726395200346017097155174404131296943825375187472248868380036505831893271788741224642120897086595209074523708618369640649463159081999229802235530861516973291654510757104071097597081935053363813667181431699232970214461768111294699114882427596448633703237414257001426774091451701972767627144318098504607447467187050007014422618657014055063669847724695823827993892361909033865983823230564602579296597871566868690956809155626069236211837856846331086589768272787652162194685579772671894856084905943658437779406463732106497417493064883749108761893110615949370795929391699111706601649671662738623883747461354646658391768255685271860193633833268069239039365362044184969403010101040552138194921379937363449266587239761261501787843110539310616497295557078783181371780766229961895164529167268977552503675789811529154034078021466816264398573084325028034670118737294617057376573454116920477373805327664623548658617040941795863343345923103508823564984022552884516252380549081562342011052777040887457078722357932344089405735107391497652304806916309180196534314411161902148776647795463189809348808736460942636702310082841926356285077208267172592880443313166437459382520784412079482581385374360148768553553517559763517416434695404111057378778401329695262525726697791653686547488931869647137402641465667021965112643853294949276672356182025180047710733907022493867586357323831530815259850013818293823125512953161601270905403540612110474378818564765746489235544893001834323214236759448673912550222850849264687826268039323089082068086068309394385782129044176968545594996313492872027971078991855894878619414776130058867635973827270358543876404919766551650683377676773863298106070420621242382422514816591603926219789034114141878699486895732448016435473324148465531824680698953319443604843622009998016961774497153404269344354802600111945376280319447486935010012347843274522955489859718221164558072586670752903182401056861153685096888422139509738014757803893085157444300502000751446157501315338102770587861804851258040101525794745126298280976494366523331222767784643554717196942280346104710437543609882781167464685684445603081060659808273348524944603551141780469567051773315756351360664727764080945475533185400523681228259004706527678688201928977813075053271890725672854836619673985570598596874487057722424660803083488411531042475473581576907338042137748822162082660670131593705288199973350175953161138866261650687177021013768732802976365342127268512019480201202113177668220001451316464881031854805569100312250346040176733795419538123748519627198915170885350261945336979693940421215913733808113764958245230949222152292989931299705678731363347265800306136061481549200295423899661377504351834593528241055245564247983397623120180993574088319926879108841522056494875225626781386871120791016554696241522543576886390466329587084742721829089245369930639550048158340434080603419139524716188359399719368411891531211179686127571520797411905634435510753461959017597881824729214091693116594017470962219092715437166501218129902048395875578797259743937428073321682269738376395901099926576710753010940953148204385114342762329937128543189456124989267414791879917019763945004540810095648587856128847933043793737001163814985582318583206059255718278651105479694108647864695656830344489525378817894154274018028072800135463525439750570338545622702998567935257476653492670985500113628135442793064147386445672101917160038887126565483141236869542423964206897156853200852899342301832964102884169304525324073544413403615932595995317817198920250167750289224468115095781835840418543145819766785814640950091745817943013729804149664220193270173560251549332314057475330026811259002867653767834931030924845107318451972240733561391727392918780721424228603700564373063442947283232071387070209513882256501363952747397714715495819999397882743554741086345663847374370911809288981315285061780583099503802486828275465953230595810278914480961399235502704094042571105207919744410715567055901413413474114753975179645396800429040000936555841705410268537609836136655801719670442570623503639363430986952422380649933494217704876698269051997309605800645594190600245379202362212717733705314013244608970769415341109107751436999994621190283106556750560049754741319312151135510531287250338231537224106740309178740410569239793650978525278820759802043294671242906901304568783953745889882546275985881842013049836805193320289473155857736241139562177881563981576503908267688003596403622178676547414185631016721283622190389729247885572507171121906015835874612252233623137811478669020713845665482950587312046919585651811044223700622981112494799429589090601689518442092920995703790820013813565121506268731635514865596168709160189341169441854922870654368267233203040254139698147429189339942496528435826521411861913066054612837470621758132138768800692260077479681070866144092619115119985240427381136442112008275949491750936563230257519627086170929627118650183644652449728475757434452299900631668515941462137729176647256907214464788535903222142141172766989048137468496482232324081670338452737267486676608496826147866361333385536215417427635147852868928688083336410974111361162305369117789142596634428116907479831678378515034600635308435957969148461128681560037998217497702803265072319021526585305667305143183245752798083765092661408271653132356186566674184378753378050026281190702771310323061840362134839820942303515927197588656452932828419656551179600786443254038603675152829701939959985581989967849157826827828825642604228048882582831732177691590994732931135634728469976487933125206437559188927076488792254934295135640103401864728477872914834314211575569254742002398102999769723971329143213335420687832486682517433992179521882666823002292986480607567412951962076688694504983963821700907087867824613135092869998028342986186828456900087357024580898785167854342450149532874481652659056157245169245720493606671100464552570349202247958264079278128550814542032841756770771822049827790714820495356100970969935380790958095776616532276366471343818324636750594084144292892272572244600874568658518395034217845208742424523193135593624919883162460275667942927973292408624951982494277272421777437290135680305577227025055007132629577195553507737246300350781645271064141583057158046951377128442612868293710198689422652777231417914920350713000667591211411768488194295576117413389390413548894162244938599962377746631246515280282553162853654261167066920212434714514336829956483669337392970973576033552430845758397288016859464142601843230330950465437360931567388509182345623103269476498099881317885723248272965951099949397245610616862139352662678668033364580706833585706480805117990978389402981376817723196417786128589181930000020682975329964725322249293745973220083123655617272125696647822642079868467798080647945549370285300520112930404305600604384834597604735063911591718758274010398716016004751657762465552415421831219585131697790848976174355079515753580106867872124197139571512969291985530389250904829965401036078169551949467604953042198574107881284722540369605479097773237622510224209412650926488169578862129914079108386150757252988628190235272702669717079429386782111469293073231782910902661412467834954235969370359685936696146599102945407224365149588427486747473267020218979285593809464851026284739448272049074360414846153413863901735610783433489933139384289430759546395480797550715524631439915284185292385609630462893896668489359624375753874354624209147584016119002220103602047845360535129464365835440522295606250632207342874278495148890998004884489921031143377491771471170175116445674309623646436425324781248291047508788183626312284882697165094785871896420879688318212308728897874992394022074503874404806195684486009961084839600126101621659485452190650193514038934781745591047276376684560816563294716567813124634340862222370008691437399921011615578031435542206945609216822114302843077817704416680570173995826550395701054882390986566809776099544713202313754055250391250046504600932542971140489095645918709419147475333343437331209217453561738591359740694416947039061525589599800434581501569131812561759795627210697620264117875557593665144787817608174559856917002692502613019411281484272673936253755333379852224890572291975843411906754099730394690434350389358119563625355583916236074235292096527773630610067369098680161733729740488497835769435689855127874172112050402069644884488412562547050818253766240724254195597014202263603891778109298723443022659805036560285017997315715013301654975845890516110069214119815368580888135050179301748890503471043510084457757388306747577284703146725643942425517280967779397053183759697627007188534072633738333703274378447665985329822798313708745392597695641807696349642163014296440177249840605965355212385595426062605827314906516117715298672271295298154368676505476514623741016242197983707611154465095706343701580891024248806234419450124957229795263781432769998926751298835666534127842532530616597783286244984815567501246174899276847271577275039332850837937683008000053129763414894741587216867474129563601405915102975629914936262489606313914968463292112632437408014414040695829303974956595614639400130621880309052746014858292059257637871431707099975349075777572708424048717983250844834183250389489499341891446206855775795264381486444203971067575149713364756234032402216280424464212993091502297211867193869723617627346660056999005019332411686078996768917622543920371561773115685214891952211092458655728816774806544922490050345403621214017790683482730849581717592579185146606787854331697850145771765436635207477146532358714607415709655511462432858480534786826462577914446210725646741927052792259382217593818242146000850717437258948781982591363753871088041182150960562019517757443537580235925391201875936529265674703268870648442421163841066865876067295302550035849044984237360230497313251137862605369757378868890848495639091143695692650794416742198278441761399060137053537223741240461081208399966716351361576570445189131699090745198930790629455925274797252451464657140110972139989440748942411212839965275108010049966175228863319355139887003920613966229733934447911432764986581039399990168837903812416314694698365404080475968041920746615639153713659011366077400576456018174410463239503965824604251308664574190587664751758780819662919663671917746921530291198922723167587785341874365001099645595591372394219313666666763154061842376628319503134548695490151883182114596015809668634875170559001690218517120282781283049176865925474738609810840079533845960965302041878106347178754843457184677979488700149954522720251564557580980498427359865319902177739499743986865277668121821361601210710758708383885845533328329237113113821679824380292323272411460091228755328842509843257236708367435533435052410211601728867588036914682401694531362073215709731788630346489081757877531912035451323692538836383292052407318230989071728638213352526258977895018002096996530659982979899888234655329634386107717973205805317754761392491334622277887505059741747774256178144471428258169650369725789881361424220069916899289635678240747686027007090908187062152775628085635421578001571253083377497297931506304984852806685300676463210015430898681925948453724615652578363506418513384204012244332433185633748674397802300150752280716197744556225125027042690943780912174819009178829840516609003290317649226250812895048482994520002640267574459786073034577359517907256888787288731478610247057206132423593309229284939287110772729984986262242609250655931731976248705753632834200378517039662282462812236933967898058101989284639981802516614157887238673635992915854661214667959901168044261506513545817054337242390499728446455434973663153324174690218533576814122374296590954989116540573938535188410907174732137565475231729652194073358828395788551798202247108758100028815905015279234539066114996338881437993478797756701921099193223369432608078975439428879892274082070176630000629300673078994345437694280882583380472546921930796118626373976161753362563975899315570453447445844628359903455699304543273382993910568967170886196853888552444650566549699385344983764438647619698155488346683952395442728098571391641793428551910822880509784016726786596460199679639458772366369056714583809657785827783792256207494208612857179727055658551300922584176197578762855724256676933972780655707009663616437586801136431526930012933234085396877098158508005503064987790292921814407172545047369589380709009670619755563214715618680665762096290926450718182719305785790782040458196604006661235017508496492286554993100633980388550435018728365601522493233542181716731411542101238429813858700558304044385564710326615573424746352168327082973325138818517891382594243513670763489512109028753023471305657130657234590996620304797707741564939829747709973965930857551701408758473840940330644838560124420005036703746118817965477313848842271128219649468673926788844371176424181732888154526972405197381749011765760892288955500111390016057827899445646073545345592747521822629303473342480839101449839133386680297460513961640400879032494289260757817833506587663365836832722548317949342379654636531173199237877483653070687384244655369627022570798696368930692466399994795529084926115169076685675592480526527171534830292013007047233085025726275947546386255414129454058821033213465871956447243885962980798762473658895614639042244593646041316920288652382227678438804007112015866607646884098414155761075584762784539769397906432288598397914037390293745479642438365437282973417294321778856478382671108834366215755587923814373022415147211969875382825352243198566618053181865140646782345828046790817778094369240571718586879633749093109465131365232729118166940654639479980331990005266911935893866237429423569246815377310389714443795123940201755804386032182590676443316003375837573700530186847874035524787508630475786318028943874349843755541080561172305165284512505006571295596774256795232004203093194584997536225024886751770656670903031452982805678157565151277236197408587900487540848117086243256192388998494921263065047537500291119206116210470207675687142988417602204688795783237643293083375847944954163646621827635961445725284076130701694400820147946843049504224191120750704514941288585755197770097568826813894052330537087592343780006524770904537889878524680983595582077012694463491357428957381341229246052175146914911238869697191972904902346986950465513306705921734023176710333907448838251594189412949154047985671118565191015985235663240189534481001706137344721028382255709423607094594615015227832653365575789465024006766755420879884641511427155294182626402786174796142174225388644071954729267855319479090466851278239446461972096491626987961553515909028704597220528943931465800049112351848934368965840765666625879896321321144892130593885489331193198610997679858013019348037474643188028685430598094569835184907032416173463810275447853880162503004960117718758598328785755980501016892951912926096264823192642626442914307237375456438570686862586663241661196291079432940200655717598589787582738360643100779611296765954568202186747861678144949772118112677722933234746426500035547516771551273255196383481081768702115732548071619408071311608953201939953241106606335734527097129936024200405624624760645453124287697423166307445343828180973184440004727562912623027417107600745110454474512082984376111696988849853002768591524065902295053720277964218093341102392981702256175224743481169569633690756682661431320162637422304264696193021907005293108952173798673147085168236929886681577293178121826869791048625042684104596499925988797510017423300185238830090412731880244741230629544055917458057165680415729322580400325251781373279844263520187269226771716964584675554928607071769039147540766272094773339579246705986893407819099292038740610311395277491181574564274759072107196871462392975889525701363504333007863151120166802633642685243653467759762714310147108468039817326309468740101377793413384870626413818951139872227692510409635383237601110242793617331855818957599559082363091911906968826861597296183991876358188782403945304991138453250447638543130965103057483185676857768934932655156819306964104894727624405272987562655809356502203986606254842712225315936090377646926860030509333156160542229087767917390360699744836219794751318207132428528712579302836063222008772602602488950409276925306691541542912639109227932144104786239732811597753806421130571825710815455144948933005766828624223637083901557322894906844163958294560768264767041713926714114825085129876416128747232388543820238701369154302372852839713716201532843932139199362940652649976609584055841376663049147934382508029563818069043439253655374530521122251068010305868972186885105069153959432411382081355445996573897796413114058266364509380426717049569381706780772954870050939289316598453623925966178981508154310128270224252936561943674290403347554951338115629334267980975192119985943671024767752980691110312270047452961406442489686391201536717293804241178873092277903311094731049520358675717151401958988963904321918319926182866943254679869573683218780249073395487909625641023153880988832058894592384649013835842194691873677897214535864503863101199334934302739186915940392607500156804031237663604832452352249196543245187106607773709744157825211572373052497322190038397660536600718553090391426377584503711015093713101769990638728957287206712058205633480121379781171440552660664729282633298428417905973883975092030208834503583288252630941094700457554852642951716070236876485547036842024467283989518935595180766889172098125698602652097661425732869874532209721529202535699571645867248807773948843890224521851310555912267183134182822595418764559939407371436046009041905816468667687223268537364756125074260402644404856464030175063558085159336092873537413706521987091916567832861853824853331878156954046224039736552206417608935052466324605490405164874990663071740745120192570229576538278785024013591505346281043973085952114416477306841647060917445132252276639776910977936640481701150061008546640654304038625871628518896964922817717857538552760533761500938745579733539668359296957286315654505545149732672493106421313335163570834654216374684115287269167336813523645076855017331487560824780793696380430521394393404432198477752191862897580636901802047296731322564366268030023758186035219254154399203784254509975207816840749804243015539750798151016923509009178042327389830853752324151134244552768097748506725681519765836653073970398198010832549529242620735898463018267468082769932974242994411646223505356240724487127822508457972975514679001496261730340874636993563631027633003286637515727482774518222097827771026969253396066066312390591690625688869307456897538522979428544698582998735491895194175434825647898749809680355917945846840900366429569840229471792685484114619597858333506927752541899562841896851241533172066579003850664521869914724941651603027441318232808467196640945372397056259203172702572529764595495862183655700746973176372772809038246154496109435985345143068621290335331845076866988865842324617688036412657859784292732046896380844680664251559918161578047717575851374002418440450986894689943813613438729899545243950953716397264443363412735503780213647191150304320800509530164810209714092834194346509813994613574765320282998500136976818554048543812363093501146441478564225455908010095460157634207993463615739809208643209172628431856368605736034745685428195336227438904025162029800117461957226219132959569202476356927554067080296369291971889173174555490926324869014829013737101529995672158363223414535732504554800767140765795911167254681073885675140462617192840587226377844974530971677729337388484650570377446740464718329655746989101633535782558283896848273779207729498374711534984945753493724266059294586320833598359018141929635437079474081420496081854979775411287614311901330392296856528822989990660485124711631854501410439107585873856180448994190017619970882668037990584276609064077497610682947619325517537131844764349242974665953905502380597348559886142305870860989927936693052096715970328038783033321167539096702273558280024356223558760086188558589085969651731231219226830606857461318995656280517371424551789119427464126960058501647684657153672359122233719081458686117996554603816299252223132803829715836162031082421408473817153171019508165498639522338166781317997073235466188565606926327518385504071797002510538817564029093045651548881563952148009752477692752301278577665731991005575925678104662374567526060016712477185953508857697424910270650826507614045478614336802307955143242409975945403036357683424945749635743520293604981465951677358901515946651002121532346816763372243385331488556851144401908200304783779453652967259760643726373449164173736115341178640847234055824056404482078773263350232731669163464481854401165640603908020393362171492675407531227076284142401809022243558625614439886023126037828005173411284591224605409403903728333776243312684542380758279480933357536770115045189917186497838498809911335470254594629077601514298411787243241206446674133313236675337630850460669133542781560312687629895136002379696129274646633606349585180919460454006861542450561162015566101065969239163003601999965089320955595381106012147748333789611610139903996229263546909392391323849733538759270981551777676378289063605653217804507399527832099780307375532617964280218529409631975807105993683980701975900985607614422580212236716491793051890263317597653560734267144890028181884608948861275364242485960716903794858589858512551725680360777310660760415001607161821140187145060611280283699003620053670453409774476202715488683459153468376596496968030520846869059207852487959264673092578324977100631428996188428102695360788584369981035061608924865632855660342185357802399963178245091934894680652415739568597790798444645779721999765309433084426743190276171915927250805741224429334492412078372471910009829208683060319438057783746891510932638785751935116669420701825094341775978010134893495688877416159477686465307209001625794515612082288817788151349143687605107061625159993637018661803507903782624720851481825405585923783523668160713213497495305276560891689494139769669437596566530465857529367346813761980269727344858700088115788983566917196264973743462376218925624155454967338993255519334065319419808483667321297101345968035297488567594174792362812924494019627839094684910398730346577615923962757215731835672870587531365742600801777172168937865786652004873646144953442306853854915498713964386676895891280500419006773636032366760089211074960005193408803756179613232952050954081348332498925912804380070904553219781021305704100471394793729507292518609604931702192616929391496491573257971929534134845648018284854850292340436157873424775753821635830712813871754392933337092813926432221645681670202687079873151284894168498114190940627048502829822344528680316108969401384241938958208454481678525616099775453626018652335612510853164927623418160189577937007022460362965268301549152360283405519102416452724116218581298820143283082408707473357900068011977006190480574992797756270062604230619337435685113473980712626659791297956657272508084327400497997346400329130495453233205683710633048183178515617736255323019553635562144112660655551119513850559752862881924128740731159505977249926135904246034629605419584561782137417886444796690524078619880564071282734717084085870990442202183211660976413903204388201597407443278522364762184468779600399689472414019796750861351214737558796171242275699382042965442994438007604732392834247424559648298777756366499062906349339332716915084044081820794729891772641975802817104105313778057393574938757210095525346869743914837784066137471123064033191542677829170641757529647009052046775892940221850078916621809522119167975949752911165534351732278119038110980215474673656622307216937270582572763842359815917591086731131032956047270654428944916462174336582034664005463489467692988922835323414508009629817956726697459216734452401621686294122919962273965164428504627066095046062828969839522086062042132407105556739298059969795379964046162339845784546242242419688850055761900327077366314691517001266050063354817512305913086501873745790491412381287340664574290459570930603815293480061550033957037870429281837433912448741819738448148211459101777892930437876470758979800233003711712283798418688914117819889238558561322252102807854998598371263370521165855111864635888202606194098829530779390172118071987693812078119741884936303935736780743400785906143884991890734086390015411974866185441061469195948563367200925549172291138410247430127707279836291844285431078034283733368160938680539322512707237865055505780210632841353335460915164643596061793835724962842961164453391720264327004742779945086382638959594731397186194579983478386337254433882444034041872904454239117842424643659000868105985385826359438541170354338322182172998584863397064662266846618601111742870113155483808998995056255539480315414049398103072284489435838438512557148293303603939201307724497268990494166618947138985215543600138726517871379817544493795406387231286812973963001750560335135167497246515600777166318042172560510041564220961733501542585438977183897968292773809373178117165438612178418333861381715508514764011209715290882975390448067472303098099393999406390396472240840532315649539059279352739602285666924161597051387837413061988399540374716527432175397071244371007538471209332116778307717069317305703158364302818058822532586491354619807893215991473738696086637446910008118549838105445812703902377781901924998082563994635312125700487700107865511716645030150021648709855557654377585233071647599013801513132678585043889942848794012435232649506662115603250412219073571322283095507322451585827301896919819189568789588422755297846664805230914418675592888605472731273815828916455566829083302543025902791168141744753117077283436185282952622896767801347699735969416361479340223529679366519137578961910589267366131418616998287608654081210085997312835102688395771305141859672788485190116723073062869756506809448023312642474735059868685740083034027098445793611905446946031744441292698779524475641739997277807504180854927053585819730130896215906581823713675849702467294965867083610241688232822335457588653030822542189099431196379174412587741433617186892226376018796425325129977243605603775220170067895576784310314776475387962264680146651254355332660361608698555851742333774091913911169931216115703496359940190270140586896424009344171689253131862380120154232661322323881969862003198934154995824816483971552410492199905645977772015209545669341332941059515671091651236204299224485650315466448353970711054422564139262838135951521988102610758701168709017663546450639961860502018419637782641470050407034007770300328583583470538539249418353014858319618144312718535604046391493103947350629009883970989633244576103821676222378349923244793139614718022388357751425890292374446981935138723086786206620495459986643247667945854877774082309462114396184847726118021857149644963765404201259438045383971954338911454867695072429556458702804131909534141978131664254337529471955673056410102146006491612782765981445238663204177499590040152458946804237033647332946706283188291209251498447341626020426478247263083461662866118442628060972333567129526833176495878301526283252655564033127459832197118659629788135813684666189223743776980938499660182766666124137179085512106092193220819399158647366285565185651642452898006191694399681459711719389677480374477821752276321351113959225985261018813819791663567958292154651898097975002936494561611815091174641687507053029376147791992873623508424923494705472325026430845383678209531854453675427147830101940111684704841833302984177923595009838745725899170950991603453205071234883100154676513463472480993060588576998765740717774253042060072729375503337231282974228198188516417988605879001071268093182090421331554099394533480316352339655643965780347669476533880813569821205326962932876446749499832033188796312745045062761648075377313089128492098075346963920121768746195142228493677723727593777480710656441052588543259715642783469617976504771487245886270454070868355555375710834395703595842001820215172483155436093564551172492232934049758460907512942710548858035059354212459207124616521935615948984782527526985523093245057994013673442161139349805828374525426523855851436382611072208057540443096956816933221429925941807227139208339518999425188500510808293954841220032856242978344197133269602178947918219949448665381088192048691277512548629378520622785080605601274816645670856252938918439580461534857631184115525068714709894656199203368292854639229318924399165910876703427240314293943537471476298432655730003104791370657962067480744476763347319671341368548633069945918953028258904188988427599319382339258208564643764546849935262102771203672542358814130922865822544519924986340869952421055718698028294191046047071904395217109220154488637380298008615641579802910282117356878990706795530085457936479872888979597702645935111079499765256345076647604343338082808811483056646440131750713659553775962894521593650304586312804850684059340462060666372726553701273861123815530260802425672126071309175781363856853983488401219975655960203527480348751238137304697344217962021626115915215148808257182324618291789154361654153871706548388119763501484275513863914266644084484400213607621898117262366845061058329727155558537963744282802453104452474563301457599003524373771412641396763038016910575430680262653173574001741144888449449981859679574859650302103827882773108424724863097146607599242469326950379587981226452973818954962939753961523030559923057605269701774694480679222648889034310939625148669191703895719394813821531990397260099872846852476068965090679092425129650803014280867460287506980022456459764233643045448795395216517633589695375403965038077394189598706625596469460061818795955505672773459722645648650359408487544178106019789168019089938749780168434618096795479020600618105839402847090419031841424357484737849879707960433826760464090700896026134142184187658151375653706127228559070728404741613444706481359601025950494787811658242610398668935865231837162331806771531875408578361919512117349171776614537308972413183326272305145956974693451814544899931183039996528946245235477727360895164839642374258592174058333480523402958877591399711474002191754466361006094652814641208826440429972892678799955404470446012557258275841228109043053706704498232759658584133098681972710863304860652269059332287353241874007986273910077425098182978040401152787331816409705144896433214455901833105041142969649932281657472949299964090119099340422326299972881811391051856603118165289028174256540008011811718472884310218795994604134424752494919774299152143063646409152157411743741886306601707099682176428708946821147415814463779776838678412410532383316663408157655685767428965197558299207830760603529685251378016551528622937628849951091199998396444275594392226720791229812653119272220568957429702301087821180845856685291340580456711884840419291815693808604048270285778119746068839571853441548423045541894524268891950738201476418777694104730102440969268402012557982895537897517487800806081788191523688542016388159005805489108309793642743940351485539531982135960750489999158019977787473859081524461477886973569426688243397229771472722121122801544318682031656731241395504267200708286485435544074861539780018870508646682264482630547093401550624176147064330649321734945686828399918946411259223680620102997217493387911863679257232428070126553944695856561009401097877200238537982828994201496818604448359673664125237520326173453951438147793341193071338237360413334614962137074838024741943201327046015373830544239960082750111614235274375979129341719482990687120201633278017207668828739493931075486891398948497580268319310142809173944014178589725145486758739275830200283467293108092767843070195585862718582831396106298669479678267362102617395658914904471560832714775121837253081357313259334150669395580475960710634834011623599576980535845615754971854048684599926251359390234608542493304081493057515041810672027607712310635651729471293994291222834032121245469493705811923656723215400559561493623856522562180466786538457780234521774263348404636421739918614457606331956030840194068673436768682268190159765073969981982900979909279512709191957653338890177661866907398902517158244148216808407800740341913954555826342342347513263652477499703214352751205037089631858326753799378959844788950898838058210506897740520821594174544477791353352684223840424034779068188801836851447553247869707348460514853848682989227233281048429072869636173526743853092959193341027576111995676702714194182516146509350185866897407581446368763434000727197708777635564645215503704842382434331011441191345537651494102360460757818291158907629480442761874143257120842151352834298835078265117621167014694783173193514389231189322420350792580183699769529273441154035765271683941152911047798155068506356867800811980716719854006556502906257448633642232520911946560726031531362801801262484805505356995397637785218937695313124668579034215552676657580142607008943186045349385017569866330106932033123157481178910837592340076528903593236184698155601835119901545008353924697457250091726180977155136362279374826119186865182456016392769761948165372478366820518284663848276849830174478948719744263520321062430480867334633552030359507145437076500844956218741921142856527865268169578876545054204020659152622970755811842079237673187168663512947210331472391796832863582644418103552183256732855017687575239306517561838894454211320746791616223460361245337886710912852025249860399804231957671128709935397378657500456404202453627387243480514912405936295477875300293195390368213320628760723279551592641091793930390792857540023564430498971365096262122000749066799053747545973019806820139976993445100299334483634424539305546700532059391122543992410735008443797060547314479196345169654426135943101681006482528441427093589172952140966777122159798327884599830570218087335776149392857412463670703553580333468315693726972536740480419921942994623289922090107901082286926228165010648719983521303927118135571880257014356682078775965060537893646888275256078937445542578255389511084300427899435220213865115505868588232469137187281009477812124953172110600087638450595987651666368562711187152486568949024207785641810757222370005941046490445565044526495495821769066447890858123339801310804733235279528555130250510682258376557660248247202374696763144259823032315085524367745506305192714289297711071858450580809226268859144794080441580383049831172998168938759760514008971414269524805994251651815275763558961100520065189438730017068626802415960930279342207101075264851517440094148838768029532105647180829141788808900691996661718952184798638239927245979414879206865875915010562672148838042315812709850864312596859111784495715644077869086286528629799711227911619731030641524369718849156082171033336521496325799900957431063020261259955434660298651225029153354527859402843050220063369856038215770591639951252695806940245782126390213950739012506094485416285869156619494782496653883463315989076322274699728734737497875088100032949130690257806538046474482719012886151787928003477151930248837449273749382606526333731970573120377032722965721211081237714194303163196261464526917895134064716255247970326434686324035752189019505162369758564512633707701550300858780568852477749022894911604455149301000402460579988081928782973398276718463239275413371724386969172314901197503079580769900802568103083855700784911585826747504015390644260220193812840190013324326973326650387874511653005865456045965016532617204934257167096705059101253554218953634003381136014409656864407235917528736440081564685240783130661005282188649516620490072686448273696792147207731032271111327863933447967886011147727710935622334470003349512163309348571097039049213925784734960024023926919738772042169883780499758732283671852266316363110018246350280823866125814857966878241775319778507912918603148828887990755546084937416179997191980136249094336233414382715439424348708005123093618915224586732368497047646342541007547999243281866036118933161125343244270518293295774349121490577580670959265242354113838871667249800346323565129557962737923351559032735947799870817126142343256217838000636237714341313015639173354183640580542142527844984772293715453251662051661997522528904525410939900300048691474296398578583574535589473749343197151611160780982123157189850527832166937651286000840629602143696729803248631435591419034566890954953903078856909107371355162559514349706767999470689286399038544311338856229213638615999598337042404582910880301594901528693794142128805476149558012097401858887700043187367603660545156550295174475617915692451930973601193006375845995550914443057582889493803965939393564075157799105126006891874488189912483115268923939500159795756370111031049173509666955791679024820946769574290286281903051632396027232062299147588427726566664753079045404778658330418889323327585276351561153466861759527148529618405102951321564141200529379084763503770427244696516227327120211221142123198564278115596332613731365801840103851368721904529018349615210715280536304081769275265140947746740763622075226031647572769907300237515893918868425932999913374491733842827524404302107655936601337872453616562389306412232459714257244771089069197826778709967020090610069982120803974633686572135486243204782350630476404156765822084908667368273603333934930493753800492014193192501603981104153082423326253624434629085739479475000828450952896473375355423661233392613448827198685137437066735502377727057396734189333083411791492146202684340358565604517867523227605082132218297798923063511682039469926870333218445890266264796684730887310610737271779696638944720039281793087567930431227390901285921189789248368789513539325610406819058775809765701617730830242846226016221829365270494375749294342589217283897410972103977396987290671634653893101034142540065086822879206506763311059714845889320449678037023953722691520668583756482367631221322299268540441227788387384261708732651487142891070733120620217505051763180780508394751795850999613269582644057616881316438154892329117770504646966568482980678025890527625319900592647762454636430408790240455827394039148533797628762460413681833328313363406904987329786847424191161219703984077444680694388623736925554191319087988830795005444922849302659500349612606037487690171946070938443158447684265977927258013424241524860852340058654603348324745113421777101189246050580225334211509432836874294943487225360201616956977959512215575474769412393576147471081834601318726070920310210986156268148174095554299450674975654078834411657125165773532334217316645724747610064077241878633975625429985638148794741847491975707664427217929668829062136805798438006593105815246856968948202078587208639459980756842081734004473186651546475790851151772478666850517959276515176452558895894159289095007991398111835509523029444597090842840448089148522173559326645938805670432272149521887092252873895750628718859649233730738342268976220897945555831777707798061149551183159430666856181828455342357849496811189610681106826685941416616032859641121986997666503333881855303651069035462396131733733175487307728932734000655697422665246722105094513016631360497044881361153195877759927936893111970427928897484337563527310049929102619389188185781981183174733086625243689957865697731571406517126716792269531326240500591584335292036828976549768015570684690327143887996292162733072781040583708883431180370138215130512953410842176949769820778971561958208591262934368614906014955631788988087821424646336238376552527912006984008902809263830113767150668451184091167415601882188638337486617668236947812605405205403443017297738727611556425860090578245835597607599758096242585639277003438743173703357692403769079011104447674677537892084224331149535557786219392640388694977937433865467409593120400340216683765158842797271018578672004024672630301489308758582819350330144273949117943455824720584058390185170702239297555546161415174678735354844586971441467933291244692852570511468947769720138707513584301503030646054964362311191511501029470999272457882775449334640808390165631694677290901616998809655481337289955504822629855659343200269830528781675957339820203298857938823557789262795289310289028812074570878375987478954752562822809311996236201022192333486785003197774764384849677148463664597209409781030580247469880867725447989577789680182707687404425590161796254480123680127718606985916124953013599356517737335586643721908152553486745490908519602111920169616860672370906376711946359000406036180747008041178459910387531944705265136188820331101548258531980550593158902422299515615845683437264737317419689739717565363017306146584240731073711670437953247359062393599337917709702452386395143061798354196602988141651891586692136904695707252279204101557620220243673881897534797982907811436545210199228959151867896555685636755230263690906327754208628788010914075602906024488447363610348759951522385594681531729498538245653497160173841531283264563630863917131035206093456795023394923236197318318376242229532981570489960640627355075295944286815875191774914742159568280654028717542404108245799364713187438258433865313616146055034154283420387512519856134649127985382971730320357235729423982301429540574379639107700019328371473094249881872608509394858699731347567235664974406465492494717451232484843982347484584619065204092420142334552026061165559592245259498220993862826335874651821746952632318353204118320547851850759338494905411059492652609025741118202983182946169932669566405165494832080255046460216148810511748564663826973674860653726045628134113274222206353091749108498527045216223161712741683753198109881518183863869337333901885273480734161550490769720763182746611882684812997433562978942832331941430054165784909861451709441770091271749538283066899037766954911805448026374541449053107185773818378199297621623204444527309417413659199849120242536366758491463746904107851177847271024728901032965301944041733117319575153399038720928747350238717233722729821745201310314601439125261322164292264237970284204405912517887963698523051183462078793106512898582660437096543560707993693065330587941637432154651327318670459104632319722806921122147806143795438789370614118017056601630470001033271085945028180692100733287208196967607623413669547947724500719127315593671508871408977810098313368489935219297593404214387058917241277645178099350280126538813004144536510225323978771820885636217892180242476394213759139493161430515519103705927343239480648878453856331035616988159530460027607788770952346872281494683607452968218936027211186267317283186166831915534110257407701298506462478061547937733047281428639852250296335099608573004355796879959463828878462476080984698981292169701986253371261821721865641783158032552352340260760065829967249792960424136796325269855219187860189266931441936070272932708257889061926008388087018581962389082858301855283191545925184494084198877608249096018900682978440459185708516569990402347904061067215213759057093369235831793426009434371635560200750414865915695758346832352640832594702988000462917150355079194325297999818858331959149549816414048187109617335480381683724910971687298202941760198341939326408187815406185053887522930407223832946099157207502393899053730827676625290018021606271489661995519919134736924001426139387847931420698231346557252611969162908868394636878750338540757934621864574653924852878122539786636744990211413504564772173005817088528876953032578989787563596012358294692235070625456978147228298880489288630408061137518507635961027065219069784430619337141848842572438191199475935983578929635113584881004051094603779727218428783197302621095136961531017284015817753933683420715314615972522836300466616609815005017720490438753269867798592298778620204726414778086393003793442581252924964639845130999490769254771153092154892018517741425349993022847413147813687889197532986456525665867180188709957643276639266930962949160323017364910340334515334522055854659014756645976140144683322811482893209151111224538594252649501486268960483765433469420160448793340401588816499718923190573561490213925369945123188832307064335054131023488477704207552298412790174770916591992681625740265509340966910054202348337078773902915371945439259321204844579519132395607731692964705645285012504926307440041238370983835719901378490292130354761776528832525623824922173103565696736449646200785586344577182057345349302989909144906503476777338641040187085425639298032656831983252780460435445455924832084033505577065759335929523904870789019442111120327861511243510547342540881456402637257833946541901158381808164242935361013690919736596541990931034818708225542257163158774639574323611028676062699618442661122585294017295819190312202902731217037820257841955528935431092515808452297537912146287954207051914104595378776658415960005917033144118559310338950952824874891010136710752522220812560118254100566569064068819516946702162882430237108635190155410938783212580419148698663815506773465654543354105527324541212845504195805816326583709621019410797856838715499526792256039722217420060724671685601130705061812752834720588383986664843642581445538936546269603131373323614632711787636460671176533164835315993688041602889778721661572690212491176211629505928789353745583674908571995877043927414225845326545894588200977647780821486534088966265037034782353937523712509189505392959194019889943930545880054438256389841423153105319904244611531208379984041124845943178074616463999431691256684110713740225026472890649753387196697591106727605382804267886737409866293091236884935634381186773993686714153256818040433685819692853323764210455740431886056748313838631861177204740665681080468104455859062110799521088748661117830366491989221431123359606959145928876811751656673144993185702228448354211043416609020855654958495145922777820701638590261387760382859685072798326546659799093998387833211095630601993230621625622731294382740998299644281458292795686265891752805084980616439038289582581359558727019858944331212758465749220172712287671321227383520571381154046449716002032087098924979396942774613638593698781329966767401906101955315810393336900630305129919969716493666297683398485498531800622537387559890484797324931992758534291107424002664760832464489131110162973877679587946233542484965805814663762622044874846427747107123375509285411340840411682119194762893095505110437196108792858589175649164821921761346147329449046246249492032268120484291195319864255685478873194798442258330110071826642288296596849475594274784105933599853874179170143773668322054425814983605145564662930527948637563872469901591260437838695542525221040026024071260691174279071401951770987476865939428203931156671376188472138589281604006409887165514002795727502250509652683534081766871219757832325277435362164283458041445575450831749139166253235941429361774074296527146699531711331372686647955878207583682403319543065871316612788374117151566011317114709162225977482340481808733201963322650297422156116182650128344349648396953655548382907570546422300139211734853139306342547564613647431539935592257094909655427885370548920490210958599527902839062245971433670600140680502529312612171937171702266297351039249301071380661921168695617041331501890753722704321684755909751394599249828384682884225279174297117935923169964536277709916885372457672140979315851961532311465409238335058567171946522287350995145765452854981986040263564259484224918520904606092492843480575494508937424067270514136851878676017153669344579039650869782750460312659403939737466727107037247801113959523208325593385789254571469157471970601716845740596206415265471552395060615479276291949428788157107890458438330683740947850467399378431396445182418130104220885248731568905030497851775607037273346909078480233771114464169577331205569904379887791687556475544314926746306322314890271775706217951698913126883232338240225969247933119761840323263254383863242904615639554101158209894555720569005986477461085950953331960870748328143633580094593184861481930839421348661468533252024458552129437510739988489614980281530458873098715507826531309456160635978464116967857286790249835546857495770890408542552232133910125582193964696903032150274512968957127542450488433681798085187852346054228740309667145105081110280411005254584193403583703201875208139446351243221588350889556891795053868620254779377407224314402450935577466630920235304228306788933916475630484867953767538320186767434413164841853196790256079254490796581569428943111893651628626797156605786164579983954153738214805674191239969885121494606939339111150906730393864610905870755645602382563467473691277835607104902372975938878583139540879726884350139183264555459896389902132992136032868790542687686676335253373054375406627580308074474873243849613134728134498743057134877848898420996828798186488761859922163878999523018686840561345032018238416193611801535253364847155179150229025584707655838469643695534915526178391292807631682324420450511911645105592097506850710827951673047404505600891898417072731499086772821450616682163941593407261072657212883897970258567993352728717257554274899304661782912409896074497612905341849925084491284358828626328719327105846739009637357733360486953719239015831091540945939634254617641270405135464281990573261282512634786743669772942276864273316657323309685814801368362765006854088559726116223084312649722166363559828541196602504753262343822233367350369027682755204224938075470974889496950482093761704412024956102702536609855053483613057312080290940348984528100012759887335906045922194919143170834682931426788265969218189491705906020002887451604143084968465509246494917263020537439090551602121153650121005955794863444438944326816163364045027170994037047020959276263143591597591516395083766922264456180149132560237931823182244498940902927079678176923075577163066640736147743930373083789817673278134529567764792066704036715058340587220921865538781002721623501610312003231877296364501258361294824630827895820706641848374903905761320746457604366318133805027231836469832675946861855888581326735867874364629354573001898009436108515811576258937119948680283176936400260325759391784749746698560952422292283654807323621574509444948078836355812510729894202702723176992291042168531632056555867060970440648087336617455444274996875101352915869646640412582837062987715577124957898671749521482648510557737405812684238162111773050357719763103655661704185897285019144455808619961092583338610148165859565331234014620517523945004195233084081761711815008703165836034539200484823953571950243658381595220090586780434347867509637639144504084404707675422362158036889097224160440845710444178368182588257875554237905641782807466041170883775643080791828918330518682585010379597200336400772825748957744713304033831117164404612073256227154299452638424493479599390188625319823897820827092347975299830242772783031841701053829444535208192075574974846970124146960823531480950327430236883079657859214140707211012703116684347180729528466774382207127537219692349827241853976586230639118327418548606698210647335613057699490352629594332851203321393430882911568341635283607717562508926801466945337024169381379887628161259044975758698824411509536696171849541692365909378662199852723069737597465081204724441630831721481486832707898511198612194348318042375275114317155428285895388519994449719068937834046744622988364655279907587661334063942035797660993197378583067619740752069198550764574552335625971448290562281745570728173252316382213221035340026119493783647504717367484861045327055166466555651129450966048829797476338368443388361357195567343937469732815189080177981876682218968889642563877222231492754006213077687387516715934328446327314822581828708601401343483202049897084028248186362946767576470972101853313297380792613419607845383043929637058268785779869846132372100675838332123268101849602171331994210322653995633207593080773460630284607994526030981879268134012794577250107633660412034084076470915804592169947242662192758900214141938739552918567785938034613741349517282682194890436498187053991573928123491850552130819108802233980987186326788512328648440185599263386030295872560263291382153809832620402841344994167457468484292159825523944660904239430700400502572932954638974111864114890900843591663077106586863020238919887065888068935196382641922932093359189306141549411249520682189112269802689511591188210736323577833380422819559581140932494730725262037546243638497870294611384458316422433143241132632956800585852356758142453615888848955443467263406184146145530270359480133019974709331286022768489227383453860341932501382433857053218001470225662642738882968380722841382539912212911371196265709609423832533193469169836014982967404319489243426466580447607189370333477367355966590692348172210626920332707446698208615123257586461939454096162395977654785655831549174465908338294799451400329871030759836781856588072364216658046179954632174069511808999832627680300978777869843037776141921050029249799719670584099201469414321901511830657283061381610077678210359179931257365125589144989553212560803392852505692145934548036748556824452572268254566198145236581192506371200374153104136499626248901701407879331302020784567749381107043833349638488954365661850499327441705841880231908585843648353322918216519785312379809519437618701672162498011206811262404555733372989478655392312371982068944971095654868625671591200140797723776407392823611349892401241153677281975503746185738446241831002774657761502431767812892248548375703705660110895593198510632708903388749263966429309936401434118237906190253532604771108634847870913718568333972025473435757067159810475036225506178739220747600822040328145904909024250105717369073538502682959072807668256131243365034522148978754652334106642937863941255663290297870606572153352959812201290366201130688096753772840972952784509050457300899112836121714166657417930062556619083387782943119461634491666349539039722315389968799397709497281464422498172111638619238732151645873733506544736764167424574878366372421426036796044363454881848477737108736645353617712365128952993528511241915126650750130963528558788762138279068896762225917086663645097987668917294705785534241626015310515218946988169205097146911728454686761528545941969312824275287221945915162885440163456020110371674290199260763415375235955681891664537091192983186005750811889265554417191614156553824559245420769159860204500840837633369853955441813999833909311468333082034312436296143978399900597270858529922861110869312828181116224120500778610000666932972560958982160907380676011303466495119151622373266071256184732745059393740502272511739064446116096955425910553934064109278088823001644127035302409515778617200021416120002734649417857036155938089768126937632869806655313281445425674609116691107989115236568288980420236435030002790175183109135322528992971591059325532457250761466172285377338659924547192791024953335912608151864298029626312092328254391175002897700726628195104383242452640666310083493053423955697561937741555245875877864615550000675987535174088761161565056423734947054906095393257729544389711994418208056433275222666611318254979717029949010258812058563211073134657560500175473214237878156123859652853744485367716451883992303595344506546086362764244741616340816568049675787843104546264471530509907663656583969317691990134581601584976468178089893684679959049854004825534447890338341426510070431433922933273535744401170409610329056996943252464885370730097522624591404104696464834746440953171745946482553789910168500879441299641230889843120174244873965798518305356373017589792298660758400071710233358441299037337674518381133983275503182506579911061595017603851055677438498422600143083671819361050965915162067126329198308422974301414398971313653010811372093921698921621465668375937557000759985358148533158559413201162715461562649365221545171087429838373214230680821384222009352740296398623804383035428650486814138300577788852311708620818011277711580264350553089133208227005673068686101458956009123493367347839803184450646103854816965787661457272299985462146783276368015871245138487720185545127884311437672576638563449469124637643050508412185460878811077002938884611265897400522163245818192798698096354645630190027622053758658205280877096982697600755521198892165473815617045138230069765540999046561049273410498317052538395249647146096846692813089125039364762792309842886942147895135030038788551203087837329182045266635093509224324089205645857650414765188163586399681717224803916063381425646570953652223615001731374954615154540472150964269921958776073448095155812926429154067740286417467679272370163448279719131229999729418548581162099632301222365301930240653860184604618647283876474538494781794087379317483391761386011185846580622991864497919863585390001995157618688656594421294840631681953438450765470604365932122292097300265544454858743396191245825404249361197368782654535102584348350568372186559466547976757312996245885961516814313516678442688877992398572579824164169003837120937466284248024178988172667447585241122526405126294761621151233207349504965379918570984494630346427117574879561024044458845562333154835080750792704273027825125388396079821094458975374879214067414334603095272347322394247464587738986467711446940363502479255517242433038444626344834672364539778061536820106193304177418811000059056553843632261002369497686600839649685305297341305426757480608072855656920472080603387408020330609960208766607540472709602139195563603550155242103111003982081909699634643600412480382025097373589409326052396573635821127296483052625875270881469088291090822674440740746233123494865803700704377178156496321186155590347194489309184056004747844044070400419338108009364901459570089040908267757945852172950128917744415458331522566592277139972231865759450312590214695127529718661084244913573579281367021358323459947401499070631640392907033488886399920190131101644985216786762432265302187745279957331816830338006237413596883336177321875168348784181534981539526873151647731001211643510681626918636434856286611681245420416084622436728280071491480440024860827634185635426136771881022625607553324227098883469483122579637043776547565953223980721793096535551619476016241425019038966890648922431941603554364503141221098815627216159624710192054083256094560730798564750682644813316214588185163050979238623426999307831062353458590388595403040957566622530415813413108362947112227708050735600901229681474097460947253529522702238676986527405293576141423841507623216011064118799648044422178524458353051769141651345014702685080480281477400735630415801924131874480256130667638207188489943218485886590243933519679985116426642906254544737317046186632494912092828578301236984650555757904382993552999689636622534760985719140519064897414993306214906740398485936517125525406629586818288555295351299142518429884788682146750948053891339576405739172467978311457612868097547654922932657208289345975971432976802672943380409842670081816016154251962710606878249581994361296745222981545423604448285211811743800179727285195696714778588860930931266676967901689671879575307677580897407107524097320616729369383987232053769102910731472239699453213460532197314412515765060360981460396327790637548473149709489902918046182224566047794246071487289583530907619009530160677321240569514657210075692491055668836936014565717129423304305149440271393391596699191214514151086515881311860351198485823057917933894879945570027275306635047008483461126576545810737132249592139849530400360433275995675488808960686123024986303835842174274808619963067968544030381958204615241342717288633955006551877414078828224573982838776183291933644731438258358406703605251249809160640519064918794323755389594335373125194379390704803979506489729720159273326312435572827860341050385276369098699901136613972602615745620184032229624322708391081822496518872812826577306751600716980065534531772640721086817851255369150023121430525701956774445743008700432638853097428717039187981761080741490382448435083375292459245516446570524096338294506164396694105733715260585875787565156928260588759448100176066161908507258878997405516533511222223910634396549874049454561169168580413352438574684946488546646562755497924283148939827710593021698195282751008219740084228180523873147636941979667394284568717829576905088349873037708306485472755724634514467857676089005651122558184180843872251307645834908017656456055540460164019899701884062815286894667815446045112852062937821034275459874441597051583177587292856176555142727984641751302764976286317517127270079801623971169154911308585176284988622307701620914870286554111103181486111281326840193037507122377370846645595767730548358349833482431196375984072881646574286589786861998155685496485492623887593892163618541497844986278890832435645152624615011380252474114243696916363746438992288413950063153659116420383309721190286671995816785732861752495441105810725146862049790935199768770815797696836738664873094224656048226862049059951500191458672895984294257683390739416542628612698911381447290256291470122697644902507733747052370800489860948994825028177275044158758270384175046255356821557770671459982256002163851942864883316807388890388308461979242552567602951323415213426170899949467936803652233488215244247429529631061635410609107609450226712729942485824848751619143690530848579637321117284971944450049779945202969597714294103567477519326720172266163532599310284755988637165499036133273607199345150851293468836077723760099664938474099415606901366917571613850718553382247499224022825252475131533764777743527235768982772826455637290105263950618921672232059223487611867906826620732335997918757113193749002457244073375133783890197158264615444428461603540435195133656995771042272943707474960505903797822307097902469108135578933560573122010550246484632166426357919284167040244671487029461257148978695105654250708382261642448493529990586242940636031030039807579821112560512250879863115155225217742083983988413660414831710414411339475579713647710585218158410054430348146438432583908204426783880536960993881125213460024507237964182540359503231273408186294369210456008782616519925880358721522960618374200689382561820047906106113423805257180192396550383000013743326481316930167410915626958493695956738992332767174812705681711603793414718871697968328754598603999856137061608744531589928202216781060366916212336559377118155853716901054102442895677645653709591743695546959192122432333024381501095785122119168045725711427074681066968745207927467134787698043432882458351426453425924971905384803941078940391331663531508431500047711201243274073491996857724248539144299899393196685978072920711253507293689048441972568156994809993343895762941814722955847663769560005272582974143678517676624321625314246698938936928484243369913098454293517796541102483119458393086051591312260036763942695753838700953512194119868989727308814155157668953201338541866071730081742763543497958287236579354840278041531834679287585033853781036292933655601644812211936385046804984205925802562016289332936533311857539806213391560784843557128711592201613909965455013123607416926137811142785060967087265675897273995342659058519142772574282452246444560596949557967044559285664853753404638999514735831704719076157609940119952807159128779574985581780211033865672960875667726456255679014654052558118084415942951041854959525214275353480372400074667328637313511408737700648678584767610070547787754907939553171798215673979930194192777367695246604276612135925247727547244195719108751357653905878955547227966043022087320024015551431050708879507495466941675304432120060847032311907710875114314974968097238968368806696112011867640787671436841305255886626911813921081639286964252015884581301199571917760154025889639387918516318331095692109697658375443347249743602250195090225739694387233275138513618728530685902287110488880663713627889719359994487333364855266769615040511639439158458163522844542831345625124955657715607606969905716405666553587077744612255434084244230730186639892056270029198620672673408873593304974423533561559344752008853522327905566455829438735864353194739333018136080154222457297693990014741579531457296454205107027695347028063143292143712739625397843519712181550178104725527026148426273260863432787403475201533378232249436843036216052828955332278782919840259446969823129171839197938760318985035819014053775375683106611095963155403332949163694408689498587965230904620289210052026243559947995348170925164446439379129603345066948895367171096654390083474491354389614420199867635816070457281876882764451606921351019456490513570484139617619031571716851583544179379988276919558142084334851650967006602642430746965934793242097144570036945173993140742230107099896699731746880810909706070756451385577634737945112075268197789181001414722481192058929694498131282728555216675811991339441790457375336530323965332996829426068219131627204698965827746060028331295989765635591263447889121128909749326069361997082138843880757324300530803739658524460054134565324261457013369116308043304846377827327791601965251148713739768423256326350999084478318579732968040180510440067759461988121560940057181609155986185919089029162347685260561293262381878654059475375227722052167052675249472251355700739668157891893244424615648716044711606780302939937106503269214190615796002619298513201728924861433777347318388577652406798421927538127123504383618361306152139854531766761261564173178922770516883561138854047853475433528690977863985632809382413241790505245144125223186050805209055188046720089986979413512716387139777158698289369141701899052673976906383544127260286686774755608104544465478940450833295423013609751446171974439098211053866911701861960384486515936695614322648941898183829225094571556257184177611591791253789551309493399418512852625993957492642591300956423161731116959030702102510851882560889342007697870235001075134933316224781221455358115300035392226452414524999069063424233111391482565319535899805527984326527536674131225398726070101601838287773409320267412134990751022365394000614282165332284008840349640508138465580571417005241190177105144254322689931642344040690488488627906380433435628603173229766887792846820944148565932959350072270460889145114409324983035598701776370085241364567483590762901377921537299843991190543797891960164622166648854039231343415036025266004843828139011075416157931534483962230315635126970517111236615497568506319259392042998859976220646564614917387297222218312511253286050055534927954926405532226143379023593406675420272810737418463102377581795038921019479778054788095762299271966004475279596610271576179113797331131930750566114072990854398049297707077430173003965399521840621774601006524857266391273632610580527565075182837648053881350166078822532867323762101378240624201525900324042054285170955128760902395009026477474642458175906916283048260207586336129964993677095682614192870270867350382596142760113336648694704111175782764011527252329353615704046074647135713059434589006966010568444144018849395612152978043074810448335430435375349800104999622412004504043926981146372808299185547366053777430486967750863540495955969584046458048185752444848443066789679454281236140268354459666942497357767383129050795006920857745219115193761981463333249139108866052740904281285148383786181848661109550161429218413285502144878698491688432558716224349208645845040294527397411547879040771069560325201598421279756035559660568730912716544388162664657945016125455216285249619208009490293716100898363994157829768388130066788306635217128846455841435691164965340932054609695994940083651044043839923661647909781526978193462821943319443058279539999532162324795620855645632135767246204126806957859506492779014186242407735951879762880737338595957062813998076312547550619517600490936671798090772439654571620486900782053296927050972076898113095947876903726501834265849402391860840494690649324682790562873031398691372081599639267501396844252179724134229165918101535383986156557615984273894360276464200588074693875215421554540830838423085206875408348165914682420995708071464303718169103634473198878533960377247361998486096758632707572712451496801423660750536522483009403643351752710450179237022568330773899477524588417254013196825209292708656819991394170881240354125354870077020814719556028612291075676952699189678201842465759686897130840041605853030190258387532375286243288286061575663829608547696242637858942934944284006966752980956183976266660341171017228900320063642752064802704230065033773007050409083928178138764548339178763848492875011183088088275593701855178926852986731819576773960712903148084071213738714424759728347769277930100874634213046312292019959386798813120513594724198829001102613937642806362825397306891361299551181848947660163626035307688380477640337143114699409757412104742407250454963360822279331067987677806321065101149039969265924369901426698267969796262007677916361028877446613947600697752959291497524110434703485383831892769942669604186254415275337866979464233763839844896232455717569530478504626070534816467901004471608452775498295730755598434329217699726077669811954181907911177463497043943534921458749691898945570546226288904002347122224028531184091654899297877753585242320695501837818947506761925313598942747287546013859863333594169168842067236391085829512859327967629818657361317342593043889777255482910420185441864354666222779028872997922333558348181041007334683394328086448266982379468662920103789534465350378566268309749669962152328705706572134784099857115557014108953364453068188403874619992250482368212965070009838255863858236670295923601093124068023778376399812498704902530893415257124278965303084523748892557375511528973375663944438495406725543493095515122096159833381152381993884917752366721296108424013582973699749497619782395579622771611359022530342915876426800843292067643211603752488325602922996693856455858279062618677254364012229159328925463601556338705581256818569056009651962938296888708536083829051181420569635708513485829764226740824400295119944836768470632813145179822318421342185443342655017991990753795566077241845514278658030589048690534078633751610728106269305108645224486788695816851100012277087423527432803163961108049993931088359167524941408458330545490984368671574248195719394306897694632821870527153123739293502205275915249065989299672353275035444876037269232182321118151516353467804227533985400174045952416262032426839305891989600115745428439016351662830833310681303177938287983830408191043786527871746019842738142061964147406144659538432824488854687126444387797064036714531272706963715502692889438664462480666773383386257685624019058424659374182691272696073113926875434763277878371682780299216311569286269842068169427216279131647327416721638264142552661724471256734774439118081951238440318952074593894943086426018440791697554843914373410501003449085659303603181484519723880130024592653672341808895924489899534783876534894428217181180109390321081885887520578948640548165446686009271630134693307056185710589857837621629831835241765961616580417772788813385157693313242999169859518601105584803909312517300111966369283794991677876164002380068826992389840349942408285566121205423002552710017080936234352053645038684768836700602165092920420285932942139790769173973591393538845086525600435769290268120641166423750427542418184009493235777232348788280504265953887626571591945386270191396898074790102524999531883276616779646182049866758729592770795807924963881169048611877212622212421872540733914832746274558794611374967840263401865670750648526194171363368936561314442333316495956201531917089982465682670033968826321745024843817809570110247029850192304968165940730539251913855699143233135107888856426006077129373960774793898558446646421983248579941697406153955669739945606037092356076279799709734525935003791608442838088663057629534463970832320368435562393359905835180149194776208690050301838851193606824133627172084917162171921148242484070002434299222117552105471192283890523374843146554032104393699548757082114942933946840746514536434158032623282825396672518103664805033407477552902934026446589321414908974029632577398665083669869493647389230145505843940412461752921645713846929053531906942903257427647147024470290622205849770578094485008027142516319809266099958891038266871364268257020069690484084284714680566854333050366275242163745145434697718101349346572307477135850682844304601035957280739276567888201335790270271954920174748695734760889645936015620105495956024844960365630603734708297218840114558763430748880707570589719722629553422315867888826773897204423764175085273168818157049018769749056103052900457373250473606237122368971813334632984163043875435402442041712567198171338893492979989276192189236590478601620471590784433461736804568992845597075700100739988415912551846968413676334909281085350441728366598764094688567791158552829014177011390305627064317447306490937949662939129379864942737895383779506926690165029186999019213334773588244349510616404091484109549752112364790479764958117248407184050295042702791174055870173892673879721405444098521413434977177864334765672171937792027911239553799838472073231913491238633185482755752143459495105419326484717547232791317839072891873807447644294001307850678857120556908205106708587132677795109453892500406483543304665904371816002578854863802101562413079520371634601125376776414937414244175000669426689721150673838796989647255460935931062703051499549147583762046978671571549412416348293800419722448796499370299010191342269327763415286543179903326984294063620585038404022907896475330844048136685586212215808495285301754550879849908721218396084161662563989583055529064707631064343645577170839131661472254267604827576541693484017543604914379120743866446084155097003441737434016874407843541284412474052642547112859515516469574040584664983296105476875179014198188464250173033838107878939115244504283365232777498530039293059364431659627442374616088323535517377908708488052951801093897097264371000094287590716220358287572100987499630165834949951492571089096813926732134159219890414515380842948843567794317808426262535852665228960573405221701064263126913516743659336648746607970392421939848034534644192148712618367243738050922910004349957226287839431446715688981455088441284196773420050067784293882266385430099662205289338437813310199974824489188383288483641676445214213457507299833142256143901279710430206501044259263323479053622190836549329588283474750147481413166711293306062905998652448957412895089743224484001031198802244734055842158629713841412155788484132058101046313444548429278363568008480003371415351002144841074111268537466317956764988602623400762122226833478211972527402528741262692301999267491367867293736594569238375009402652725854074364697460404212771085519376804470156209620705087398382116101964482818960496881202768459071362637846268048154159022846693521985140189088274356135453986726548953784567730869493244177642702520701610688680676654296800806228813039619345047302703599502417734862080005417003666784533143439622280721064627372554288077645851403404328583761640756617187393811990485159210575539785213232770442955274970282027895611424691665159736568977962276104159159094343094782081197114902103457230788665178792636034912319751332827991817992316487850102900393389196792729191956370472883359918251641047858082794501772275735294301535997494791474499391878462037190518525376820682131023616287516518769394215637781196067419439446679311786813211962633770321311545642644449530712521239902987149500592007741521765288563386962680900020775273840146928223017006942875282742219840020731877830296998621075537341300720076654832937521890919896486489795101029916113154425259804523455866749648982977492481233943815376835973083592306468458662419453308352044827833902019177648268604226464839672408264081105307168638490890513392068421901301520884572352395607706054056153175582990315629743420445578811156049353633291739422499098621332117651268755551285231803762061095568072982581362884652339453208696168194699910914567516610848464156120156110843379323488780557547694457226919103969121409459392951231952575321734876968426011872556933352388094794070239392156958481769720181603703081675174782027016007064800817478974753524419724076407334814018772071247547615343756476899931969564433464118442213753115208313421433853367171054004998836511967991360392487508294581235704392365878840050860896977920332877327577486208268718937378389954289321577843481551123544770568356517924352721111976292405405828122775821949310302622528921203441436289265357746357435629400557988800784378790285318138796641491648044483609940212355043551202738704389468065605281390816404785954932684139598592790382034889548360159552621685147692667153208151940581079976738399771736628273940519278163377032479131093909101573277476883560054610019195043043168295192331834771043912923219840690917760329315076574510915295294674616118598405855701659356591782715057300127977044643815601654890802015335861037288682476942113056144006629005811640367119387422844743181055470851871199500378072364799471781411401040259366248223994285934782527651572999394522566077349445392073437092999082024097051726343659710960555153998917285945926946031452921951082486787096186167740621774964435285170751585326906816006648172058397883508038195573933785534167280543992359820366562774238519729239934957106139350169268296688934576152089894052920940252362557489414892400893471593332681897349198148643757549941197610889654987427776972216413352149201566578655890685132658063661256279387174975475728595263685020949327462589260204471554138808666867816181028641974821789910767025144808320306198009631457389410331163461584971671000639859823497033088378466634274492228618443591165353687184144999175141296288565823527711505837258554798843302838189480590238910655881391447688063746287617448962913686760435606367042643691484038571555178859615576851859985965526933411129081912447310329220080968181613256957556629588834079179920799818331350355497026254654592676602738228841044027501166222264538524306400377000048349329678046566306999026146157110980135726783393486131994278675226857404920882423015341899287217495381632176857530153608088277989472935713255198978150023644735437463207451933386156558957310547792381954376486269105791109362192009641341296262217444180228808836705447881306311353130937282295619786109332291191478979701540833850943978711967026593982660460479068163616302622413767479811576101021062849130256041030096222414662975757111868484791314656597355654869595980714288746846695544016753831868139241263382365019019640860847708414619328076385584442299388267854647482093330448100972473582272890097491209862899828295981607183095499058777038580683916505571888811167851020366067973148090002167519834522790838446601762249716117799752864267406308960613109403347346234601275445428984874606773932062140687193633372883492420791085669428280181119136968654578455646729780534817323812858348672793662279963341244846380694571992707290649088977749544703796419226726385109321161446873416160628020312780896490581012436697355605324681267116121804166261425640778040457065563510358361413305276831294267562141517456375426159626579987570317645026678817911468642191891355130338519847254963829867786935746137153013766458807430517986526129875745707917889559225957718275384058533417584719685058714901683047201017290775746338960077610551877603479117849280019255728971573430367817938389450528295330377103708449476767066593271243201205140149437911630808954568193953806893183336973594593012617710940588082628420658521197506777627562620617778946605303377028191352636032470758577267562779068735684334352937743205748543017379241109812585804779852321923949685727097479173126160751321948778981404673329160548790877145322916538950027445452111828308693778422472649569086927701546618387018578148323849350290411257713701365929090803253511577939949862561070092174213497355141500275428191988783438351060735340396434665436792950835615989312319726029851156079438935671752791284955722617512374738255592079466511700579407326678065342734951312991595259869258902390920083421885057295282162288009294701730408383065653019899081935295213358595926998665819728301527861727131098285006910300830801001609899171211065662265852886017687409606937689579815753534607967570946841080886253763689139269330452469615211671734584613192626623744574476876776133369943656703165754612497249966179164393188398631131582519072831567605461288605605083998668910813217976965786070614836583702711538749886589081576366239351037779124474483578567710368627405763629215286138876482067229577332405475931455852382315774002666617115383798967531518702595813550803907766451085957430018394911164465473344179896660695311292723527570828751924469896984617502205992247173622811490348177800152076877321233269673488288044771615244640977846977448682904632505188548340318011681666590436351141197902554253963307133522323340571042944297570440056267860971254722748511746548751023596568484473378269700681170392057103068319085276964028378787247862690069696223213639016789724349744098690838420969720387025466399486446558438607072845560622778688647396136662996355820136150825538544674927286645669141855440030909367369714320954073590888858396854077915004183817375240975620443031183649683444757373572850699258568503171936785034435851200625455578798382455039425109259520580319801268586122919057774525671369313965758770922095170856260512135502908573576647177869600838802123913693890263922048577644287014073304457711215888501645280563178950138557044814487222103774294694465350931214866332173545956834989213746776291629919753529802121777886158776157600187348464540880914674608969282406740909629540307218282739741735749021741658080071153339569478541163925616853767186060178820380522366680647924269456831397882861774125248762908991261241498875735653693025614812107768219218369821310350010514756362644731620093598974388105392659359064971412040716954241416953219926050625647679047631012640358761518690209479161788209730525379228612060184833421001849724998118142905479376887354295105051460160328041322391746825538803022590063136953773794157032703117668984090171514347430260050033477472157995995056711756593115531205431914099075875772072173145644644089436582610538781683701206391737186767767773407949215041952784796934661266347484864368492875745813188608390655798875465771572957408751514676707208852790113497272805030506122249874166111953212686224110766363133462262976596240670161910253880410058878170305133116214505204763653049518044246323866399676339158000411312950373414139468813737323948302930177420688831434845381015536229344463311645379505806984662387518967390917598089021612890055378425918360380968924662225697997216192339870210554212645583274472464867411108341189032087558419545655580937402171445508827699692565531702287890008812531813544611900284340156867020877318395361236310672345195883794383883665017787184424799658099285493318259065146748604016332883563772039277864551740458037844820645077064002805791469008439897662939571603490575944348909062084965603938442540039423948492217475857091920373597180295175584272043063766691536090079183765506104951765505555913259665503787316119965244308592585171527001194242558003270570350126902622281779221274511466724945520877593561613044915492780429568755717085453270586141347823351973096780345897925411692338277925379284505990791570158490458709227595759901693992083539821991166412454859010773255018407243643713179491277820575771548344525679886168682855189302705546508103055165229557623887044502336419823407307507613563913500198262107166767365451944631898919821069003022535451414649540481615004017560862063727483920510067611345615306592334103970376561935778921978834904072733527877295008279483942652353541302799649609163847378706412930054840522219721213292421670362307265833720851064549824342541741395763391615708670215887243139382779972842447270223606696056781729981794803589024316423705843319688930830739824748243202968596864550579910068383943876611110724527261393330305111968244635595862466723054519702121059040252325903163247520433233893231363767751127953511471991994528980789407903885851557594848093806309953157721637023191528405024493452416956232000261622786439531630366343409879405816614554146781446328478095781065581875508181672871967586228990583188546688702628284347824973265902141224418416027094551579687431443244361941559332301897199153165958390051048420015225076628043463180587427572721131408117155278476374273644337590532004219159535937101720423533047759623772689478661459086195551725955871023350599898211269522107297214544930700125334257887023510112910453646562547318990184713372998305638068055171735508902061188122934362855517817381513636876627180036488276188218313259980085341017071619134959886762780423571876926684133731860527359358065042440147980495374186523968603042040962469029430672593708729966821465950057286998009364117877780365192672254702004935754408385504586088583392589144376955494397354443701363058666648179126322580968058348817639019240150218768366504875995916514489685913388766610089534800900520733939086396804188779625263497236724452332043300822734758383893814147566959020233967801856988129998848449087027206171624820425813422101116724847812968317320998882200039389725579145892822543868965854673958960670625791502187304522137527470155007695220831242447209026165912426017052846115667308866058433646362265517979238945149114771099338909308467366020320683540993881479452510891363109074712551822022636939298159519011545381217675224932277221948256432386236338190195421703680812338263910265163432626411146708559584332411618855031646666764300547409200697111840850236794536740513927482554339710874274038669330611717876771410156095860701266085006612806542027101509287665994057040284524067772342263530856626767422596751480738893509572781968558598783144571714965526638786959892742420715407116339879797846165221361705253272079182384444817952902647365973910164538949795401157912198760205520578845320639199735010752848181643304249351149148175555879470085248379078796243167643336302689753523611952584200807226661803421123247255252599420532898773446378607768818798109062112831931605178572498363554178317822950113062087292593005380650050950357668415608693160729942186875094118904124532556918804942701776357430495584865418972104006281155759872849231056985368619048528055257155535510555909175088423693741684055388245390866682500052049543110406011905025989098929855756744750348728275877207171850549230720233115667419503796628472335494035757722942526933027402629293820010405747673703137053197801391428568925708266544254733864471643036482879632089018780509612645385042575775372967294922258084382893483923887365051494396280119241591406252227941471211620272260180451451255570480659356149606600007231204933011449184994902742322621077807357831243959448583179324257010102005938377875550467695697201822423870618800559447117000035184300157678530246009798022902208485250941570007748237451306353540437624078146483038547280664562339084454030482610680802275216435159161789217499713009316328537462790977769230612565149985129425286795128122131264150744053007898088129313625232327836573318185950678272423665236196534917689491053747432820531820335728807207667438686764660561830895511021922156494254890510202424233207438238827540772376036748840576206058401783302049215416031949497051647320793026030766133304194697190380848921936153057970954263361819143364307405872091098815010803359778866971295835728393499948568980608564506282166940278209188494892085202004902979233311677603587558524968439632962551629155007038429356947784174076212994841685877023950329646733286858949524195335453614872381597812111470733315647522943846641088540522954054473570543939306933660705840612041885151237620299285184841853652704621013720726138935020768980588522496875461993415109581001885428813049906093898461927674850644334016900892423589707716691665426384483751076348272342129726057518836038864443428784168708918274070316838426586936803017157230753104882162719935430684655717550341430695497179089044978559300641041202474584938677840783991619870279685391496682116158780775400262483244363781972108079365799555896258590181622617950060581269474523328992918079642295201167725183995017226759959411647217663795785660186968675841973347815029350135775023638775133486421474757907730058803294236825614355815931002674036635917450651434846655471315192145018566760371456143493605800794928220265692271241737385707809898000881350425840978887623562876493862677878495021234587275169468592497419408463071434977477692097514461889294667264454049256186405581753780457883468767255027836748286116383978983769475263092018067095606277737708765879996129739259679212208627221611878679779785743765424567846587512535583922896368950831104036378655284045509680562964649560414865951273720737715957099541204430669307108583258011966487150851703426484752064895270127339809618459886265966089727737529547148226453397381341181396667976671800328560626990009248377219023416013280631617607998654081413713333619668492150295961714738320802538330113024249557300946593205199652895073583929059896110065782960877387768587671940374001122368612459857153185083532647127418018989845855263345720121455752346173199780344815339727315874112500728472584704353172080051003643965582094138600646664249284147537906576780169042845681604824115995387769197805518620194447083387987220306666836247236755688573882919029732192943539326041754918696852544852316441019147609707890240800388612813788606830503047953859945514785002087840289625860692749818889402477222947527875353701850111697287781438797218684172721056638019935170965187604239716141203123144242667931986585829427580516223967451578592724313583250952407518718833074930802000739118569878278773149902213506973268481307372852152235368905405935890412799391391128829278529709575715710965782539673341530922100025753802646502680970493092901220147545080840468388324303491053957951850145857717723696481384300912749045769601523448067387794329916952403062224880293171982617558776224041072326232443226546760789304521764565530657180281080622572505444966849517276967204878765691038354903611118963592083103753036534729815681742268823693167949299123722171500447976761904202812145366433822906967626766509197146419524416177816774878954865763508966512464553261271046845972879316915322150863304447227820375412712801707487655168966699598393293583077999182645740346463596567046401223432874161910749813668072683861936095183459979964459730548272643109819358042299537749037301195505101108853174717574707659214144145459651381580356964402944391640198021687481869160893961359969040809823049391369881935920303872341908648760440155071017490750146062768324618783052400585532828751828616398928561198589122535060500070781981201118304846054249729320839356304792472317274743283329594255281646266841959674116344704751871388453772318792643467773751611806183157493376847344811361602568490441710071998369652330296056500541893497892487375942610010011493737321992939150772699799414272728354368384917573323113211128298854378900328855645580067868565339275319813815643217315458676101618084918001192777864358049980610759451866879740303443265617928492454880776014059437046940318388785754611467254786574204377016623674760746766727896389959109501981359454025298242440171470196177022201439791405136536934478558535999867645062136121158509191459651493955890751654195951465195539419261922271015311390293706605646789205408732373061274801223863072990710501837426491152063713793261712054843454415604933784612581021964899772597474866014121642540322933382114402010722008385414132855509403883027318692629150365076125171525601806361092759405093504631026373205339759285324212598925665080340378907029013366523522554677990054306670099602689056364817511398531714030281292888223909734958734670628788740376995438821471853656506288784734681216291642083021335431347937560942803034118380016741985349833222895005867396187295268657603128742766023733035879387183614076890354060257867664729947274324169321282688813736406735047814298120862192505091208206481206660359647692946095591488042281318343390552304820696793897606817401288862545478069647048378664962748821927369327970664676237164416865397495097395530009213963720088905971984095051768352622838911577993524379698520647908205767891643246289573696901586180313609856728299185621383215574581745872292226833659837245751246733094814513160984102881844758511573409115928332543055962756267268799332704480320635116368972383145945282442131031525237683791732717665415612833893895572501791384681431480039195622406900459661257806423171399065618292030484548980646657729424274984377365103354691785449458310964246617516590763984471014318530004959745025037726037866357959812342303056810629880666081173313013424453276050114307367616766993110994616357747643082401604379992056340922321725339609461545001728514730511264719403909356261043917152721908746948632320257182106156001210041799938826840066355416256791511115349248641897468431605286284075685308987066716584689208431935403394820046493069352746127251950020855043886543108220202210253972092838266013470007388045650441943358390624367204392222920833808223006875855613341727012883535693696463734838449268560274837291321457081002279106192450431309779415477660080513461318372136339447195446948503014798581495976934764601687633383749061762452356031317098474445176987877584256770378328716209218177153709915234992948163973688995155508971446883205219125191419650712374745067370796017265784106249844516770978190882337749401164381918821702244772052738203228672714625705325020348056605843538407327876707679396617046963556877532849948110659124479134094659837035284695205606359802535746208981618085183293776209871947844048356172483750051420815869881635957411615707002989626804525866164211295846568001452621647018347437199858611831965668347827866231327324050319365294743631164354652105150967241223671795835363062356350591089640987368636306374967408373272778397318484355025146581106724455760594069320614338855788847966253718934242368944581482261834463423882671255702055965701121207419973682526680328186990136434197851247844054985038788614461581780927160513137653745882300096436317430460298097486713497217653590707092900770534322340862437581446978145565625024082458977395782858876300565041306757684367967970687104003981129043480071618505044575073632637475239145627137277073310417165660413129079586240838653930387302315972345152175863632783650927951775308133715600763209077198215090695222718736062391661581055923196657921801703300662618534496065819642903424098765060576209406131576540024141057510569609041254471495746442969526005638227499848124650478007399035124900578781353839612886057787851021499407471793952041968281329433943694509632155213757871260275512646950140789539885620148132695649795796210637083983723978069399930047774940493806107936691228091131249511861649158342732985662651414892779590592295938056060002307859015364007046635938694983653010206024878610288526393807164564016150074046013735824049013949752875492807690166451941537623373165782994668265954344762680660821116659400121313510022787109205805822962223103455062193717758901917075992113451989918734106143595703648852579383751729826010270666963218851488295601050941539605073799258194032021558579406703968571877555075365559854861887409209437344859320654810333221054296716502422467093072316335258065873767247158924274542277765881800676872303559887845380015553286182772857713301106775460204137207608835183919058739768094710175398868132659022807988957464215842489022875197271080807824712675222622962636563964429490073552125294834143549057457560117578484454611239168601209642043344538820615704321925251073054019416675857403170821707089306952770860887924022057529533853387999792526458648349967238888487396103719133988871336449968716326564179399559600615064297759796933898484831964246909695293315238437870010742307824849607504827220684756193406450879080372872452697599351349371865617752020312444360523120337320259138174270172103952873218779623918826767510720921210367354220861540874207469692621475600245700174504760134017558017465608042760153398402264135119379008295222503595425560547001350308739464814057811820148449730090907460388116212286941145722796821095834447365546882064419258473887642234022632244726415200255139639604396711041483655275707704105892045661601614217501649970438196068073312034352900351230215827695478647229262302227867622723183413947274588017862519067661039030622510526875751128751504710800598895913739970781432777028162863011715354353707441562060252663754512345947180510253907492109565204562015760648169122407935206785404115560942904010833208568075659502007628358095383079863897912709438965537309802812935324406521911629505592207317021040844058173809040838300828157470942296889457688212070104108892308971155577559036077643688813935344298573059861388571735459274657312137504856174749292027150485423764151128862958815607482340526474341231241275882057016663360726734971822634301603882883625288720602898629110522064734279487233235726581376115837156598394148674057671622393821957069046451250990985925976072210395293159846766956049801600058206471965428803480688234504172579579909689093482484681746044628014832646473425474301196039000679463575224274779694050361852340760955615884197703787199898888797029052231076108877749174495495722493011136097873545795698528152757322435799287378581187453406668695474784282246418055327419780175612176445488546650785540735172376512758439056649939510705066336883720618366268688326144452060508151946730069644583379816353649531425587634064722523143257344117233345155647260265477507585564230584286767308628427094116959510736621267413416702433270116556869298729124391422667028724708524329401598750663181035127065448459185163082220481940629416125200658058464116798203222636421315980722962853330659648789137464177482583538422663289024846251080659209589498446212772805395810388086510543740709942017155807838187398298079975722994349874557053849868091460912475543462673799141515994607885888120334221208701185758426155390181767305271226112546615878398805241722974305893150550089920202216869252923078132108279672828097967657399492095265242804846378345801115941605092153846780818574483914118049658166993713810419874576859033965640334590803714289849493748130786419283484185460092203208061417619355158810621804350305776615405495162396959750065425499717145028785376600687251974107926449229305936871212605828327848023432484130353947515108232658882303876442909700282006799169060136421014342043957912126709667205703890850907316644518025651280034792743604919628727236468886492715416805853510136962560858080982462131632456080167702602492495409495678714960388315278819830381181921427711042485369350380296507480618121704810237236064976779942896684680285931546257961977222005992488411993355804242099715079872937176519773740955223746857281050495990625307292521237007572456297577159288262379582569248898446923604154497668484409417374702143549866909481284082596989519329259317025047248041056028461077161287009535795890604963026631558177337316063936411289683183438467409022036709430640346562613801790645451883310295056203030830763034518981503181989680075679854607649558024229647967717497636840196322432675491252492650336425143913631972258110345510117858085986816325017030700887637983605962486434495489452409470663756817879975291460526407433209953236381602072915462458200013419902252287323442716805637303853987504653122573839758013770948020530149647739570694123803201084828892346325601068597076648028350061106975770174790821071725299917553984102068267439322070873250824265411511947852702559494423115734054362328023342729823216833998716242176819394613430847874747523093347899137289092666702990774422924188307020496912277965251683994590525902542528566051396173682750485582278651961448140295690873376598352260110779041528215555170108233323414205376531175186297417417811183709899860816166802150613665786421074580029548342339180488328297650349957758868446163029329833310632689089975033286706331757793738891345444543645893065230306127211807595379373940860678084525422479092963622966132675136469857567486819337262268388670253636172641083630250890755035635678184749199744314586681112402733563481874313788750673462417819910386062390108704972107022750844630586660187998821609444261567167922843922907944096994239158447742034536086635996636648126568883060128186717171824515501185188829155381039532604674641286131790292155623768536740246941194603450670735219624374894552285859134599193467852596736455868558649714366955424570311633231999513771282001058982781115390905246116750439569726690399516774077808199818515450126681211159111881238551900945078321773323648938386006247668318698340566550835552028653147855173485140005360469245202766228063661534337577047666872617947423467058720561183617460648253912469467397503925438431742652830682889386958890995794894066525516934074956237148319596437214914544557627090476174800748814356235073825043752096487161821867468393501515591817727357940072329692595855841568705614544593648615660087432371158847386982045687628099217286436332679019402680465128717464691709273493225398222370205637593906494323721097557588781998610101341511972802301398097457434733162955953873702223008852628390929705932485154631346684023110867961302464169872757740660700929408060613807736266890356299400604058176556764104790337871793255997317671395213552525754835893924754671505401401226064711069038933672417425989031107614936589177322526892120438101765145178055846809713115092769301801273489683170079577042100665044954066590562527384392244761272992691634108737210928334031176339467504666044815161248965427660477857652387057343620730853711198636410753931080947897432828895335532510187032899738396317852711028124246664538960425827070536145708393292418966542213536324815655467338638351710812181989071639094552085618914654184048549809284910430265582080183683214505829171093303470986053127803879008710284310300328129013292638974138970879324647683376122210020252308179481652709467099712898411518862354225282460576941984334946660362123224709083713941226709571100828479184681030288093501248196030173181576632118315054032387588561070975545609362860419164213597626468032859400733339961693469844372512485830648477322789645661748838089915774885832313201726394721302166256760958410423778158499884533694836643956424937183126392367433321143285995416694629410990812962932780210478535739926620131877667679209467698675614660103333733637055728315916442828523533652477314512644711119467296292026899049546354209368190055552976832203501135524264950496852341328611348687916014557090672432769515119044230158506503259823728667880286938240715504390704558998943568461597523727740272881850380881692979842159277415314313958104833952310187548209832902021788177439020344763368937493497082182941320050514177114966748190641795631054425367877304256867286673358335806078402380563833312671127935008556876238743586673286976918152544319359679215398583213329702044059678425653635051886671431746641930307779845952168937520812568019608710041868469851718824644512640439373709165639889654210104583271871862390292512768349876379237081579473269536745711877821560886174727892475275230394990255744193034032502911245766789787025760533036389977356483193990572182102133665250258013978589931863314772485041792662180447155080333076547916320791394279057607681877466392082535952583973301671039164370329717035908442691147652496231214044317875548802680750090193683224046368611247652659613408363355868406342634462152649710772607737591257412186377444234490702353686886236489898537189723822616108264044526672760345517552826746581077621482969774240800617572799205853204258187428395203742377617717948975452226113493295223319969319621643613170151372795168786846364483944186727696475887468564923004431190889170939947302015856046154619735471827354745541373892873593685127846035759231216459644597592592945042112049100813647521600444465652621793801439397476280285937174719179445133539274310518075845118254306879047448332728003865849322651694312816854701836009496925799580851584613574838176616035764922008160829489847536413184228067461319339252861691437654202524493932218797213169692166943081845164117944822179356080867645179542125824562681537372619342711904984802525966109533299959001693654645763859586395743425952763612323381712825546213891875150312720719966514402252060579310805991238686623711563586177958163034933275165836309777177015070565521379772505935929713420510875021251490475171950866509847334346232863162568383249523434875214307866914856275774866087867293055325842102275277272180780225175552255879814959479124891709756059516524166291284988639949028366763266796441811475334554190120976073656484556711839281124242222287811918320201042561805261616386389380484308808331270463466461327036662874977234532183815754776791063649739127467070025006453196997942422549579376697672203949139642774930592186267127006614530534462724749972020906475266545578644144866427230502404944602822864319602284185073707872230680778412631720189044548550002044153500014782538793048681374996563257233669456511675270100833903583034486952222940064615438127651893386516428601289817124292440323379625370757947225865386198891218271885271579192742500259508819332932214534216976676300076938165494141734520028124669670827939748336105587959263476664362871975148994511785535509826950451192583415903524569820123371908966834076985154302973762483087796006720808002031126721831479034735090241749663678713228359684614185746426898088216467109013522206084248035676655280642795659020639355787098465304941828283435854884962157748219763523630458772314633656565901067393329655683741786748785089469781894813785031709303704732672312186368103008972439237034832591254619020380665835750013192643545333821235941431606468983997651150873682236533979018629799558479842476856703767848099100829372782615746756909034770649606945229495331279961892716887173205860024882933461677792786708976203021221866291138048337337873451241766941029976867837249152105578688316342739262167751448760157714382556201325149329109266871417135082356058142334583288038637408468287262763673022782631042464599939434006615768490240743539507947708000194991317647470247661886527363619091373351190456788307763186946422058912765493096745600580512409087514628288708126177166628896971898933166090209559868051680420082876006701425098848163761803147944305189668863776092188807873321404611851476739825378584302174897729312903136918862811619518258694827416803371203143573130977238685079995043986440667566792419677212994025948902559459951865299313958542813137927896488934179192913373946093122104079955027017261613759983821727538878673447183790363103587132815640962436662969197430531562129947576519686740533519343259000242807729582283861011258997975776639425558954278978844120702424460938592845924163033870742074494300198229932000056269189627151821900868986191521910169561934257820573818048410152718357026467915909783659580728200060560297914748129663838976797457889473195340189470838258798671926398580127467748211552143200474191099146582809148675023181207572657401922637557547152818429437888477039968592239763912537105713526998143563308870954737781362089920543362161977078284331161621943580653409660910955469147635099570313238126184084597931003367267098530320399962990790611460891890775895509541153175335565657021508902006943157822713769200069474152429962682809995595043477941290569997465992064519045467352987743035423560667287633296948536225069779381567914301788119751098798428772906105230661766234677150840013278157675023969666004753644555266241892435533568054870239513797832148081053394263261328443875986340021731811174673612257382844136690716146334064474113037759414827680212596578997180481408084199776767634954996427102159150472244407023157291973681919156164133606310542878603788809029548125991596396835304886457358471880172555857014050612498027490660090243667464528789811355439838285178808022293963842942666915043032821408446240084733395766104396374657434010544860129868682454668416754665790066704541726352405939021968753505814678733801961232690051540667609750324120534846037554672515078079536751916488820316888977885320148160816521332654008941880256562502174995443813130406350896367987561705760844287084821469221045842020808158667271676755988453884090926826940568609818509112637000325188313914859120322422354076942572545914329163401385609502663511789369972852556963555832093752734061427591700940882798193583299083951789349112687478045018117851764097338384249498135897174625651157105068281539980730017919753980558105352567115940765199771720878304715263660244037404189529085503793263703378435672195288993467551160418637889967482984799657547689332906947962899492881461810770612224698927443255454778079902435086968231051585340278777466864344700531217329387074814503023927275346102852357004373968154135042052356382522822740798181447398537825508289113719013982827726188727853965619020509432778263380593200681273212848923711092210735138282821157057295259349024490748577045462980035360523043882947250859797487519756096393975772170073490417032236401387029375272769494793655114451443927681658999307034651334516639314730519938379521831200703820095031952392996427143162316805919586392376025621318621418738754355907850711552295947382607407406930767804136655023290820766295710212304784800743103946304804689717169244642258531981648572297912406704984786825623893942031321802436924602947357415372403804854327020291485199936142495818313157660397626209928239145779669704075605381721166959547615270569598775542291833104003741957923145102790322588068591461777372255684409549549614027853670582764804715430888425518893935459545614898295533019613336920628913507065255465028054039101631231072822911568059766772537516209036114060837691139236353919439033618064769230635966066271122661554285126491271277097073684639597314664309496561631392690728376616532480931899434895836987345594024439665321957141428658179143743474094179807142964454316576355920288781657641395823923498956393991026563018222018012977166548240688526751540381360889368225670610962732463969168833133971590609543804466235438442813372627878791809675129141641195509931566303996365031414509646616890462002135257436274325139119788640334509187167413845059896611218831026530304248910193839888752687971150853539018383021505141693587609309913584062807330943638753641681630463776281965252652722293917054176731166749096485649117983571886661417621639294366039757828985575881256842163596284582354125468970255765159042105341288268138380931013107013036960989422840273127798957374143889099427588124718389313524892887514918233099163694451433461437928443976798360477179465036558040232227825367339401505257669964066183189792216811166961659676699464977747414359263832715109628581588825241370384650585699371795480374324167287791307186387519518479866406507225908433349019025179557923636730224604226373568029666049884564848451679916841624472465537431825657264949320783004251770359694732242748592710048778237606578154836931944704564522602026304273136163895876209379462536390466288682775595852794764115731862703594170657107706083393725903978011836299544771720576042581136698596490780163346486405928537174054873021536402735619633726697497265516692051492224648999742690230183997778460531702336451542623953972446772733578591196588857547654892404776489546030326899088177570462069840452023511943328389261377704789392584788537843091920895912827703010542184052878706625889185272256142659679233558351903383108414352260195886661058896847288773015661824522648632036394939524563553608994180345420172209723700864344684500904515857114005741748204172814789879905400818376437595385354672787785799776984054743843246164826757193452155300789713082556952617978366349291706484570193720916555753820115370639579949318189724536242420296270291087903644503538308349832799904971855490436213720903547680200019688142530687329379608954204056773945152457017821299825379429364272665019352084025483333036423706072921858155938428043997797153330964199238076642706325058194518668212518343966704174066735926186270241639501886934154763721767581456738630435875196629574953912426755641075634759671550479040756572765178258822567458960695525128738788348621679307842449487426522476753478837274535456807744613210528575728735743959811254791079311174064455582406879166491727803553707549626789579169272250522248126181568421099148831842135825903458245701209903511753578242269041720331974263823690976451997281086905043103462256424259460470926665580688828587969838421101063905011339688406855392892876529451480169220568724392821182713244925943413521828756002877066927487187227677695780730171714871017020419040300230510093159681836282160777878392975824138446764303931474976998664699003100619873445842986049314174263198268589348173749413091058841872766499022975646251725831559528853658921305513474786995771531351890845070960168093966252940155799561968306661070675332916806635817862840410921044589476280020952809832884259120186477699811229039919348542825050628505606649079668921620031353524013510361988174437942300762842236337905841135658511662837490952757581641755093138039824383626307011038154815688915973297555658504531520913804944273283271755643144462390246167436624143717246958070782710476451112419155954157867472201644509898617960543080510830342359205832553821158725171335890450186018799643947459438381636287008318810240716011113014176736443084670585761225082792978869110806333419132398372662474810191782862427870530896702063557902449173179698823007788949995082636488853015789964383046685204134219554422414734481253712159085158016196823453392393025304676491464515241021903035354125246598513093628687859441902048750095439693651679674153432058687577217727756770571973906755813442436527804795159284726693532184488337340567929899024245479231934871167692854601666525057822850808387803853042690524661489447984924752285318757430670014550919141598378242554523538843076283762107316072446526345081889796262016527025655750395406166488476407607140327571917761428522827196546304913998967573435938797178598155548079292784900556792687822577220868513989443411639843258437979290912413672413151068210500973986307118849822187411870198257807132419107729384931878141029264806129853285263121161164184097320600573600279485840768073698998009611357100901632292337467883102670323693059637679260749359153144734961819623955743567819687576963276313647404101329273015213643396754889772674472785991480408004413875885082037302379831685221531739285980187465884332764626109430711488513490571998825141203239192401238423867937501538517805512083719722793328665131086586592466039805253495073589884409933599437734650409119103851070004151760510110445357504853820517025460042218536232018832850905254336310548165294033162195074731940978761813577398155418439720439572115171844232140984828785311956134003433853955577440542991035316353688960836300866933768097109641163657475513023810527866660344372274788770696629620001625966726499487405258795024323839173399086712294259678243726978285434560479511916007971313201559976603421804639578279232609694576058637731012074841415757522706280073502364644044849785913739094515891935555538313014197630486977955001594436746778636413495867938608273595097829818325317215965325217648206358099437219930257425319762202113442316952404866053727827641348873980049894731628167764053440472079607451704365495596384853920291878928365292064333566045817506838394267373607359838808741666381821930916344598319374213867860793757144258466890203552026895273333854779474165287961932233545183166584077543713019059182539963395354961459109212875914688036103920416875632136021479707823531496570806824478778386938971297219361892786174953539146499674086506671136045924165086246176537906131589323120274724716353480298249031296274275738834651075874198882669666493491186119112824410168301588027135068828434130173920596127749463240196328218197861218772051033946605519202478489527911442163195904831865545382696652873953174498949036591400921663578429786451454274133856284476489931044025213171234717640825164363381013603095589706690054067262920626168408324950828268289613630247737353781500991900238561684417437936142115770714382536487640660321205012503578824643215766776586020649016564592763539547947555518510639303370134213150558120199026917546967295543716453426810928314155069737668541093284494968421417149563445453025449791618358359177941654784038966855111904764552522860294643159395073023058976301978085473862700276616780462072665396722658195836078278107736681430770249269480808309572200840621380469405995152025065379555378795586281051990672800313378840412832529490335087528116052485904192357965947464179219367424980504178797708235192124072320579743532519855147330525851592104822645528709369365057967733576002469958567461864151698210500705471131670164979403610585989041804637760612492835971978027540377366222165567676992403224598276431333555245800354942580033146936413931134419854638058883840034360126634362982376026323387303246612394083659267767374623224230093838454732183017016823748633037442159047181708639390921342409541020773169651065469741884773571843277931455671505721146272138009290558527768796562698821585048471675615291219237456706868035933088771630411061084633872378389346508118421459156900404346972944717544646970609160700013373825851656353751802136251427760331646728435260955231862326140049779444997565005709259956359072688617339368157811696617718337867511284108365247172964439764570272950888750167387128166825044407157611292991231462696784621490514716366505522672923780564145435939609593510254034228969145393151794354979021897844036597772145540891267812501311908610318245361129832623773125460033138069988020636118926713056487450292765531109791989769568635687759291719417775994402100206033186998610728492416713024382491627985024535857891320347256152506299005810575417790932675434748834381324919223346333511859623102822966250809288866995563109386478013566371500972557236869448687493995208498774835828869937463803971726857516767296640953349160507762142740451379027795232110049480473200519623350827510411701899033317991574232623975973720407422513826489909672994069832666389168960670790103347009630598437851907074358620366306954616369779366730301377786627460565361870080252950588580268887306078345086794221433542145320417103260850195483746022652175204351699393730074720240956767026422666716690051222922202601950310286065062375469513433608763795045434705551182478509886751990873449121066729350879110002549088681295852523746753527307026032696420944345092855870987111550640453353117802109333882818611776187680331736160698430851369341332834424799078024149137099000091145260734918630075927030442967730494529390200553942203817951969412826825238867764951791756818250061787774400594691867710336296054566530413419898234668553377360390341541977461917409624249677093929590443609955918008845443673897426360469847394975138055346999904290198322981939853135282642870920307468085781512787972265976621460439321431443955117295476347522122162569816925936645806115229297810453572621037070399535015438033166085083855814407551731885426673931165540058958247527240243154016520325553246555918049048849781175665816770397995339503436159462526592723355462404930695455985675620382624322271575397666142628751907157877552543850664077668191976286808453306578146617509209657336818396182798575215381861905315730490775555429956598092728343433873669207370028524965348006808162876702058750897510564202075908187192823700946192196458039160041350402893982054720450002572226127608764000482412356128185962520341342080257610167678353173895903981180297434673368354808001244898092161042984484710526354678278991175645424868560858308108531401584712462476404261149780412489091213355391698840246135172049404124254840899139518282454140891185160944698463511087408390833544053286287113396072325516077588837902180276915094788325399947313767769192638872468338267968280961192291860948089793672011469041831867398288683436964588346985691008145595885549356138679356460391916309004222925177293694997246728248335256171378639856565748650289902736099152839487124494214901199201830408652779291929529723921351077982676517635982200312502292156916810815451256529716978533710606908595213416992958447864943990733551459803594221988609958198069795336921123204277551546757553354237312068579987514032725960378711737058128191360325711980689199720850020612849859442621816143229162948246425983667038046016018072252003382013000576122997256442251804163223237232838743701300701973002334337674665443898493265949779476629660714974784807108533880567291675507373062741591972417342737185084779415035359219445518676147695500126699977834530846115936563475245720369554559967248923898689189306523370888799182740381539142462475284201318358215355681932744536774651556842300019983283964426134874592773925242011581223644589099913831225305612293468911963535450367496223772117525728752107255157820196962013414144705721848553998656436644658001455521995582263710562789716771580667079518907033593213036316250569794293827068298292911758160706343033416714806341124543327581156203183936213201971253618885271272415663299977157628104112973106779154667541750196591692001799062575902270350678612018834218871844754600495414996707882474408848820293451857813195567948684265583419261569591029236171435009581961620670027170514970917749319323763540160336577226025167495348521994093084289543513992561338806067547639332587139196985436325541196258238079083978483853466981247457595539826565112536513674032686878592926504698096474776622680908023277566277413678033908815921001204569532236099834347018436988260630158318814048704307227773297322755078873838364541740623547773576710372228110460364977113352356501908300006202681271652428317785893260678015340871007131639921521574323223507471580069960868574783103865924092194532609366012370832360266781402410813192947269612441123596720951038081131509996506841617368730125091756121707775572994104529193345581692602177521801190665954619534902752443558066977189224731064324711953440481930878352095516685970034256047613691172989407350897767891066493443014595631805660311479970309827648484346980691953782243695143730756820328758494140602832285204312147106499311103574325746705591950162361936667199056865245043779994878934449707152629658776413204866034280851741461210550749216661743018767940446122559665048558900502663967730725159070981179523043472927251076076627416114174661191173326955554853784005406126070396732831925629043914156095511627316279906043343022072228489618812421394361601333822293324173024274119648856675221646709114929785899796212917824988653384078176526860631297529703992552284001636187150701467496461692784852833172498162529030639458151993351611763616855529857291860180967275073424947971170866785646622091693854283724305516248636827648442629395441399125491928660004191368937361103333586586911695662863620242190551845625827164519300282848367539317473755597613393134063459662960592499239546768720782696425167134257706731794158262980445462756555596455023609025054917873989303394485737209035970693905302417275416529343234057059155349085218297194857262560479445644652465631922213110174189955015898337868226967948999137647152244689279015687158338322572325855673210073150659809861638811677308406124717162043337668128518506761818271582680880691040642637003244346445652465833367799629099656426305944775103125885199541123505546687180258299898828983056840656936191099719328731466890751336716280667627587264974560304981682886767960532310270325674234474638171132640034020540659484271292962055021502920893597828181689912514354342662288928625463046745036307394838191428855589252072911860163378291129227606426794217635988018715986000541588894849621268760813451153116459434365829809447740498385037956870591990559108042835049798791258942338194492326629174122731550215241330149686982582256414212479037453279970077088807710938395587518198640367657153420459819024338817319190928211716028850501600970275049066817821450449397895671867843364136355638262809921074109877519364795268305101962216079555080078489225281557704030164230679828663114630120013286084201909980294803213434788753438563617299664257225964301124675481893418562286817477321929726390532182107168886952726763258994328722390364009639616312313350138093144577488675845368691381927936098188011807462449053033612993445435713235396005558405189294659008931391369781242667447750617050039310634550935350037487315613205498495765558580519794851978871711454292323595705521865498422804105992508617595140824601044362752217107051738859137264319549808784911105438355593898939544279288929882198040102456760886539820268571545948076436400523972345639529191205078164897020579139602509295709970482113036582539729048345539734602187501677512362751513163191702387755590004912698455645958599860644534958205577574288181123376641921361211955335638582861772642972694153443598663112066818585868557678836563120414147088191159360679838945484825531024009231360354553926763045467506537721999133422692532643518665384774318698408387611779643236389923390790115448669404319105748486612505857078314418832418537681216823088352739070121252606013515222024703129461807997645091827798832500524733855707452258464685123408974296525692108132413571546901386354742462804965290434733945327052963574108572498010313895766974854812324974870888273840093174906309363390462637629212056800932631023170705757880017992109687993505640744260771679189133358337884513028314365265593684653252732508334370993247424158099583995747920821181972661118511106319495847001973972726409066938835602800967360229972333595413216585826511441675489984753308043122772597651607101122436025803895451145497238682475492952407996718028712467714553486018559816737704411721287461183978520966597547076428844084393799245692869167966503862045577236425867420278460171570554265693408254315882499806612684875405552417019782683598121299010816081385320826214542531583107603625593278552482488674109913048301083830498067072080166242099202519490140878594024207047149290663177368938678966292445690458859593708816379979889821961173572903025891257570936115982854770982816936718623864868281503100128329016849793951308797991007342403582267266693006820717435965091099101278638114431513351359029291443544489220511718317338190743020154179070544189584882792442232157862914219554756354198285154892068967441561569783343570440370392418979544627546421397483996517119670701090429920197129977166524727942889607447764325868756154861104947486884709315104094063085099004656436850892449347272940151809454248029411232500520985423871414438998867232512640122535653660153934837737236152040460684099918383338003333975651073814925254555322227628395387634437018387299528388763501300734367046916257292752956137305503525927903820591262615689011973385045810426552048467074977437372850057257189081458264777553613733249003670505154297521135378811404574069106431397543521908368880390158734942803485175420702024057718731644142652004031057994603743095948621140192385531905480089544963719481673378269338806745468101528195222061996596338578574334264479747910123423820660454066714780426597146205641910035278238476995163708887447036344228762586171776456911324609983308208654873101172470221986014955803795832598349460568087842094103395390654083828276614649078903884619845136986728077819004371688046960035037338727701975823421530531591074150156347207915334448818793690676959530012088681358184291587468340979666479155902114359837355178434430809073403829924347154926513434571822677335704672425443365867730404325150823788061841943852799109478039428458583448380256952919175075171845866275345102407603410492381462801143122869440904637767643664265791137881999965986774133244747511634781706399705624920989219055650749806002079270968668616913267100448003075044279660479330969761754809889865230249713880385608072705429216951539158406194730886401341631184845239388286386786923968205069635221753750610404329437528582744712577035773690999123691894459359501670376769236124442786998038148789291183969401186382848463641255339714624216641574187529363594978136041668707961982597117695374977714801492525814213208279611259890690972856218097226491100806395294776412986100691647636208117941243955499115221557141171323086397690512220138304140613231716789004193295837843637230935968662513749573275530667320784158572312867688214896963080672342105943525677733007295165745819900004290485576951854202324348887317086747864165482356767478146785236320093623561415504439279747654039807193594812657256301408568246959353974656754602413337755989686355755657810546647758470481046384502414634615196695297396681263509751920146816965867079309673101295863195992162389430107839615082356902822103970684212891234842498885811046735367283023030984290332596915824324919171239902622156882381321647700334515571892081027153710861081487738928264286477652162360439020863104395408676158890652044467490119690424410715036835814223334376284615091808202564137173302783030371061551868938809072292969760115110155875429435596615479928792234206757098783839916819022400383131978950745635322851577149903336966408150001511268347432518569071439293073547461522175515407945782226056271914987343282863907228835385908304794119694018816313897647455757433946788933177251000737688140060968763853970788696521409947945262290025831047602335536498560261737861839566085207117148493394353442725772025856851650964994270235921761859425685273844157092628272614809743759327563494337575699420991219805433464302364004461662008281534666798646728248679230326317193225477370491852583365852024369646877407343628539059225857712833180344416119082174571412782697259890460551974947174355560201758765757014777337220590288157774136898444954276021051104307811738450235063491043711438610485537709787906629795417936127754360841263781015040550036628882709139010315135201013195428254798583929751676907175419643671143567399668159541693158698990978030076769982856740285286921203454909041964823725242166025141570741567441318332982434249531868455997701615727938487174050594776230767596658603533541760742776831230553502003807159079711289689937996537782787798013488263863585415582465935534240810255499852438055886299824719383261069259516182492161784511157208151799330640929550631610090682703220629235712020131219685288210559731497909944745130783890804546461812766793520684438586376850757388408893916850653031228990993794211542407257036716878224794565531176991934321445121519676383334321837675046063812784642991870189429813270936902751391051910759110069734103778568649557488968541681240792042978667771317895491390010214448454859693963041707571665255870919933196575110102711622578820947795596549309293389680641568010560613317697707905342749606956844589450473276574968337972617861677957551125105771034718808310466371829267041306062589065949274618106197622426525357722711159473465967929021325422299269374175731179313325180135972682157327489966035316770366737232706665804319393179219027255838096006401028574671139357635037754420635608230797948384996576699988022834349060968542772969184347624951909610212422944325451289193987352907982215676516146329723208993542640971181709962467673079881678685805967200645720075557540933901251371865996230432985685697768645463459482393350874240669357365312568726791681181622448970452035196100309043890717091342643858308542719333936011141456324543364933877077436330695091543642673053672551090796204478826420109389359930999037833311280044256683735179420984484283825228043096255788689919149725935096787129024815639212415205760541261673407186645307015868174224216930141215320731953345282333873636342277176233068185541916758671444039668160967600249492000398096479226422043316734883019889695481250031039868265307372633445169167218487730332391869954112864694407328611003172691008876476561390549874997559616860437724344532986205601829166252664447150403343092793081930714676051943459368717312916935045604338819400171410508665972574992797395044510206991324408059718996535113770274841198856513595617724321150661354301101549672040681290134760628249354237840961654581925839487422593762750975052524975094542707085645424698175421049362183256699473180459357351980625406414731470228878120973638284370474963495833629926897725181539899610887080230061975268613304657517639474854363535049361740471990894374175800488026665490203978109871235743396195055137367542348860402582863579404485343308652955789041637031089459522952040814132499931452751238803075460096835455504961010057733788702589571713974154261981188070041266894589843138907279717986070502154664680158373790443609726644798187395916667816845672664908384683554304323216900368315683241228809055337384478070532775350818976167765003615071988767014246147989262860317696646635730893485032135616485327190001377884990599741692963263843876137280550996777162024150640868984640665029438668711304283637869045209566401010223488992150132973278841887486933785867047129450337742158245893771289771794100298371485843467241734495301589397046560992329309354580455203821159945825309225098803647099435562807489866176523901611855143050692127292753089181481211860255572683080735222145550621139383520689356702493941388198532325394175134793613548312968571997412055979856805197301015098156780015517316838100366634642554892029619624139863094396157989411338446322907635878218883739752647207113342079665288515034885995895155450681707636246593381563220919253304941397427979244714603879608236190416563284547188075810320193219370662512295635956557786541813043506370037805325837585849862580338919164487212631127483664820699438821835168789083346221807821475885845984283967438937108587457403752017366174058645832815295862318814119640919588499552980875420541801260604302731549205774479396307333306735229850344950154231669711293812847197814692847938496796369105436146282969389449026137205396999866031249656857558498911141505390736792474204728587447051068907163097335443890691779458530321145589972364547939934520247201394600404960886219002195499442745779838629208505740275420844738270700704962801600066422724430393130360868299070540496620293411731216803020651481653511400820727622662819501380832875546376555875373722371284074568397431110059552341100368505273833823549805495257085628563791909412864808820917105825558104381942311879880683290891816334582836595587733996827670054612055235353510535207081836187260618177063987938409845719319715567760644792784824444511636590034577810026629363240382669279805553215135265448731346761589297591937763381522414198620992760218409465837558446188660048548157443753544628395937197752468724910187269916453169507555897276289132507488486180712085731707478905055685507149190098782676220061288917578543667430818155866702127063287610864039511987629491158337607546994280455816729345742957296282533456272087773650290717640021459519764581450466597888577114988441463899541759616970697171789492188318126373102237637549937448412198328815142469741172286525166216617147745341402207934611757563216741206140707050549618409328643981999083627632189299785840839772432146632234658204494964395646308963089469328323819513900809353865840145285811502572932916517900669587964472358862461972654115271097116593321259373345560605913995024248696605835241672888032364884949267895811950863112253583481380939770297076400917376625437562221896141904311385683012103410014377794186858899595672341332871950216947667427627881014428599598409104599583102195467245309448300527245016597434278603997055046014915334898573322063285919443909711165974682013411716001525674602925166936172110978251954601723674101340194152315476064752767317174773852861229276158570860250108743155994804816373879766889225926999435765276703811165821812586356889167559832898611055700361629457665604513125421951487803191217468617983641471151304230342757496214103768532823314264279890906406725623628932843283274839005830335211905738118830678105682246272489233392513463548201679493609817730142495093433911621593708398819951811598507278628770880575709396315305564693112415461882981162553406594734144461013691368493437278213995541978894923398116257338519505989970263021081946463492045292751836917920406101504523048469093358326445564548055979096583945664069835493472088865696707239543328446171290174139309463389153979010470639820559765888893755377499800247218088075029892731632105665485865559415222070841864042139397851505580735054916407124847046735372835895208444885617761691110875097722328475029369327653431290128470060940445110459781872111365687839801878725328641483863073750110436181239003385126790960102100100702063978614333210045260970837497977023272678337568771575509488537509282921707248160583119773795826186496890531531601867337465443385857886653426789157135491511745221484563959457456005703098018224739714563806385597669173652419843274337471153280468376130044216256957652341838060303803696895846730023620352868759344758782597192662752645756064186781093421958466051743698494186995344739498662085737270969190149408466628161917668102281837664582212614634740306004351968047349309124358333468681728229809458055360021568073383646007496102276400571136143434426461268706921676323444072362299672485700933287675804374430035048681151331592661577794425992372102025626149115365657999098065597242531960609007240214623800782394729104260777579301682049300079547563395562870480585171724548027041706446698539204667884897015039409503068223769111660655572615835867892952080347651986636591441201186614471813287512163800771119765428966171701335605549565299280618439667314097863747222798085655060405194615198902221673474072976152060347524881329785518222052369286368746014106993387416827386173953829705466062021261444797221649170472327072930275288745874663247844211154546205557420539574739581470600570881452290105630927197825237072289406446107215952834415773172391250762591976796715204378657853230078789739891645781904938610757400537352112746326739238427556561614893341476547815041414885575130934527409767187702266838447409604991265365616637212945983950653829678008561872310433590715054959346750758285684745737601020750251196697384001170026927189980366771907858883690306358758599723806882637442504639390130857085023336652097211036913271441295027313042712429269224850958604263323222906862425185657798054495814597670964769004808687681593225739398231212560818903957313095646444404392752790961789371836815314419782401978513674279611185390770181675708900812517951687097444044191120158704766631726883053324284646604825913998293538787134461815024071058232046661365372851049701930620387716833835457866970073812259323688175785910859326370317781293587511819574963902386770841033871825141822445177638876419435800845774754841928693708902024754355497606482820689853671043006227901641212285278357112040304651118631184341958922770441785169238963520938798533603390833965882245232003793996117561439407335973231920066716914026291449423173509797007489704477873916528086189964204852136812702400373312725848405955824174265699018772625107369968650113951861526119578779541801151054675773972460675704427392891599986543596834386490873784661553267959735809071565699638780815441401150450284259916945034969053253573784086459953772985059395910383666752717191040402800162255618041337397465309007885350366325192291371620573946883577995350544817944539078147626164920836378429743841092852013282201201278633985413414212942908342872206219676224034138836862368557881266817711599096208636513561693084414608387566978606804113367446906348522875239035385124160085266903930077676451365290514611610597575929358654876332123414766721237068407998385764291820242341611339999488073976105452061831789992246548591694871517258747595268135173365792882897543089205940964548581793302621635376737928000989747423415482362794442591554432386526219682474507443138648674500838607725110125974408771684943228974510244894370923133137937964993610381889854988553206881594473944315854081866177747718209368117013179300169866895476240114523860352883567304201714529071442150729869858602655883704585836989708611901976063978935505489145680800026312182527829026763718488192436975319884851026358576228571430476274694619004614564042848334324292992719671596373201160315825306713800792051481648237054680797670137334280714965290120652453010721623374056899033096205351901233535269780805803187054573385856244801082532156569242293792366492231812688248182047507597541022538768722313713622924605692092207626697728575376405765420391294691367219934696573989928251980626538985600565227730006735929282819150232995179642835788763323949366473901693161152033811914146054756472343733816756951336176950896051003999762584732343040596692728496386984231152583614607958814076056723353047722640548368007384801563478015349730161401660159757834319168186695881856498071639491019556347757460895678353643210286892645839385077783416262152179589735835006349789993092246557633403292284418705968995432894187843781714765193465466154025366860145495084107882892942029018192157081141990482414168651258947988882116253034925065347733875471701053738013475875665900332609164481956753397477956152991891134794491378063827685654245033308535187386869350114014333556884514271527271783016948693945968060316060737522715607067562399669207221468025169515416468585603965451771100493901348110489144160158188718615328978376561613148967379457530143150804565610552231929270847089358376204273090786525358731206235508684309908733614381560256270760511801857588186470430562486024033850694131679436503524070006827110711057609759843578667589991365324267387730325565394493435296833572988813839154740342808419168619720206827772676737694765245140882680904593777894233069732553099362855445634223915556290553264975718114430935530123040612849030802454300059442426539803088181116753083290729208103371755301428842252119907616015979486981071448325798476503060902625763638709358296867182079733776593243308081169553732432504309063322515247925018938254686646127577534445588289802779917479581459208006379099233501260538918737775459638195129955267017877859713119783830275535889191068817358292266546958316309212527516796321324610508614368729268147600990337010576528178781397164569120353114966972494351165461984840653702944765389547117984780594805683323811488828722234653876348664771337579478050984087592392798409825323761451251030778139858179526214420829577356865728643545549178682584371169457920137957838639189064039005866223127463165904669024454255702887018314062794003116500679984759376324012580302709567506284321919106900794904960159305802818878123511450585571429499580192979377697307308344851640902438417691907906479865320361031581426759336371141506246877693264704053182960895469201386497447855806853520763690958180006813030596323449931531614296884663705910709663645014445453794613228396382825883967994650946956956227211890818279874878016471004261310699403934655773165390232165389455887896248284726551313187156766322841306252779144933851021645168466709320779997140391196369249778025260866308107350235562617710018888860569520795822445268145710373281826134185626423795648248366192610682914791846657102134969831483805494667885418947948967712916946514526682576831567242995970188382560160681673211486270345394868799000583983795919135397818284633232697519981944412395593976320687475170903886705640787226749338790733160087874572085530437824885535509020544848712097471990737496598154947678562248651396858341221075660654678619301318375109401266444463583366385520147925291893397814296540883917348367822201750012992663710682380946159367336449838473044636723247812463858025523935073751133509129545669505321108696335366767682339444846713063770300349601389453768793843298115238188781034147226211053091074081961325547288830499053421528356443554196692086911789388261322287026448365091123734202316426961529877321119040148186589555183562590425217973678465451919876218634432219084424917433982045308839991102064351596769271122472416157198253838900702622234328948617287139800429142481620599309333862597349922798048208808931502243540021935822494964960810776137582991484605888653403607557570287363994173618064822793479507375915806065942545003230656717187637218912214149064863488302676240906375026815539292048216461718220146488976911899663145336706176011032134182038121219766811655041062748129590020837544364559032799112010086570443153161933269634002372871013071862541811665124372281108342120038235264036228333371759133701805659494860141785650218398398608797392773760604453976387593061686942300760933031955668779026090341628653151801540863190023378092122236701122055724692659755739912618732683081040169333849089144519868727395852170119671991737113829630833675863326493788622089024188736610395324556007758377421733146760591180813741371952667868681612598510063725392018649270187337512767775320178659845734370943448790685267116940758799972322434531719109393554866556033842027814128980713547996656402936946650051299576140639666989657239613528352484159391180582578857273546568006403505847801618758685227702800204737431523805733117141418615869284604560159610376654676525358454069404329210592960186792852871793696627390777767471217705687826112868992712883904308949914055950321752878443331937119957216706415812760841556738122785033400349975010829148692536806052194480202777430571254835523222678694149695735861410400921198458965447365540745620142458566625217790694375335573426019237639175316040603498872231465589591668614229326623558301522218077731839319046329706971661143441209103496510661632022893809116514424228159011576140430033788567526658038344624560455231540148730209918479526032095037324335398933673114153017243622303006535859873484611905316715542164384916213907689716524512120001113377050535560245239421385071717976117167653235950882826392979816754043283913349315160619899902021693743912520701437265190205996590061575618604413822284508030553491716374190657219027530655885157295928990186773484941713107183831650921223666586023766557260439345344763724957905925160727950096744820011643301354181645253480164729798445259620766693082768806005058253830687650874414971322754899056090449464819482171810874308086292953484418032443767186129433527154494328546745024556760271172514979595433569754561932308922382237327853919317021397194939169831517167177709082916317942741091339137264031018578622732577466475505633405704324773667384104039554672017474741306224133797050556181434266624750919886054622092181265937587473610957594035923667634772748793790841727722866078909726146295217662557432249027829227453418777737588405237723281503234168515374817115799166284103617411456550482111838823085904902498136613601546736589905796427474787608738578934543048551571341816211805580480282393830494315507523452045174939791059035793310951620577293716059105157840717704489066742333174411728877589266820595811062045562777043147526191762335190664361193461734622038001813598817302547017752019503572425867740033979634037307435670458371827058937791855327865123262913669617485379377345741734179193244479409432633260498870620828826092152397569194893806333483802597285340673382793402820102199603435667553960503721506624572249365086038156677161428188517465163692941514397244044143628943955468838403881673053583022421465086370021768933778996924112462404645426274621624950999825279184577080413141166999625667428478960597893842795198794268527863934933381585015543071872459192562032760193176418514142634196265656899147083805590175885836083188375501446434655114845413133170543823971107954918781495513196588613906216001745098077421343998457781450023212030169872138048417400423758328932751262605511810248320995341168475383886668360554321660872380940051967084443913567239924837341443252325476916836929641785946678952454755814676140849446495965495346535529604295778391853798228025418746588168759404021510736990397902666267014818173478521762114880758096096596515284398035904576201379889135737178357677743517066937664282720011057797527141268427648034995776419242204021492047318811049569112243021851875009511597747314124392686669402361168338922209440598908088211871697399607826813486426508574205568911858783761759469629739051977088695235821462519870865124672187315388863905909600395863385420156258842614368587887246465700002673886513705516708822137761639364012240022176278048536971986486635880720394255326206752803424418255302425183398356303396040087607395199865454624000922399370065035816245786738288690063169130274974422523246217099274394788956502038914184593467269581307647686272573260563602119214606746164587820652164991079040262023118785125160876896494250720497927260055022586567104526725775731777262123063786916592233225856516443862548667859758873395354964950992366900758973549388772281417729032717769866579146122987042948723978297597238253074110076868693134066434003895247323015251894432649751928021372307720592735351235344196495551717917248581468577046823277770795812273805702386562361554512757226882757380467292334325973906665188377283684720490964818779471193859305625270956481775109462216973912713490768661992528421304286705561121663350794612561455669456774352394815347215122715635641369897321606645267190183931880077148042404441676467362991624213419649882462943962932304640254126257884144049836800968504368043673866194462892644508300436313860928677324921799531239197686874391543097067397052305792047718685248800346430790584680328623426790543843358364230316550736603821077592548631175509684054187236698470470481081637863145563479434173489868357955155743489879385197995560020054730625297533686617020205256245884376895910337609263143716923521156297944408413123060276620932713286753154988570556867575131015932035588364040399528852810535070925925399399335776381421487165404377460011985845079306433146614177354883848308370009676115747245672326326989518450987103561438421775191602622297011747523395810007583973395191620881033852708848428038025968693989215130357626940761159483052539045852163584994291588091193310397059172062168654228860795505704227251223433966278357863446110995722994301266999323437675799167162206813316470720950741114997785508888897767791578511349874892020593600958993968108668578905522349462473045319925789771503213738685730835938460174007635531838712295358356125313159191841780322584869217162326092152181288574327163332835383515903697861612382765554168230203696687311029423925395736362448012851992973984662367206953140054761191304724148183730849851616289020307849994344705013022037217591949489977002041223854707209829027992700604903466920844610539109249733759262027011413199695669996071105561177320545310823759093105748297723299111748657260633569318174749338420268352561283603626660254078648226145798451957552728909866793053596064055655280007702326624829446643171512685079694242486886232924571439145731002124040763480818595492171680248537202852495757853209119494959073672401877124784506857021422953494914895568511246803909077136157200905797156725002622977316255634710587973273474344505437927075640656536044470841400604563589373067929778320623779472345343205573703463854986299733715917356202659494565127409481484342559083752043547955005747672880454076812595839526758298757352606827643181551718594143391373271320834414425558301965082630837209832339921149406157797847011864974274075459287570635711714312848222455577520674260621692390251943512960992094482286302870231205017962081948395500212289610300574503345551785352168628134175313954288416601252397634616330129070317125133582728930847411280301379741380786033720414008760671650494731641861767449930390692473045758478051944805912399941427337328420443891802667437720187890782715809929269202866300914202339708463504736663352972976494525275996071503438902315781957178305819768418206478636016095214288818947958841229276209157995760620076788534259183291863882101326518575092539622968026931516373821499445497830740210672256817891141524365377171036118524043683077981102974371056608906397798126773224545589490133820451409868741513533178564881279292779860194083804586846741049857546922423494919664414409179328380595966691239449806808598374023249143787532321250404417579828031834932863967324548814664166249724174193751174319119329597031417878432619697406664562556972197284246928844130631220616842875314040892782950995562653980512860289130374460658591452737214444664978525436376994787217127949766229824902757897264747372515975636617043997828623317885369246385504560800622473225829446836982005992835215248719950072719811747973653610285153221180989324839528420323061516555538663763643927310387168057805899557685592784410105197603779125059485801800040992986790076241777189175321356375338688239725610009088319145751106980370155716391492756823881264276862479569398610331091670205543904754708275106417574680732595295494481129600231539743755733394282319462476113362316549576161999746531115045481807800405340852050448078484396800649700236421662409345431533503281555114619368200931661513362272922629361822354377385997023976278895925548812661145905116869345762700081028182742593575241439444249131717143558007963029142187968537410982273502902263042004272157031009223465813549827160932342004481050970407282046178366675589523551330365707553201622029791084249501537861852300229511018667196602166894519760798852422864356134563792658254826792097812969415878840494881493519290087051659388945308907487350843089968278460112570938843456109056042750574450168113407909512957874721179628475522599675808265722597836576844693199355718402518439804577001771284898662504041330670815851414453139186052358212398389317033710683779256784139521833464811529414870901316430416893616648576190201177053680854788031487969376712300520207977284205841705659448934056222989723120993434783377502962928947057889152394439661731960208709014372394058538570537788330707766133123048854818205950086920873566643728736859670060212046490496434434206722902240491717973649268971595376576103531931569942240962175975931210872809885825349673947356098957513307022594338449686681049304367269000294833747662726936430047218635251999772533778137585942049932409439189584117782540728071571468301279228378075267586464623644661880799508955106987993391240180267745198593544090355785581567586962402846546000978754190417858665367150317154044634122742670805558842283593924876480067226641809399282871845049840251721563934743122600431035007801945783020399304970522692714298921258457074543664535119058848889737047431892891128964482142904320379387406788241487026832627138137550477522842462563236042844939344072964578844211159024874743348761188084555136754123839534327376390472006971978947153860543250947984349869145787851733562696325033985238679410153327146029741502318747901711911137299159714901643347722729170559367441093076713949539875144828561928924611710872714288705560131235128406854975449656897255995882718447589516536686786429786410387166170385263701756840308024913744391409030953767429086672321898606628568860392813281130762206882479240636223152048604726227781273917984921041946643689973013107306559869885440173381965556987664525319318717059390217406226722296540976929283642370193883710829897858357675363045731460413370566021858061745954278336482984092418506580532711568678583975219613510292249915381833766041849325512156933209236374184332013238150496382765564037237437075732147906988677960109938907323527547439166770612684874223636782577119841862885671953783727438049523606460084670373185869021506679719876646409894278191560259709182836699039901341945087821843769225591136732080541014421545557860341374011497071380444344131947168478997174109588286204933572383273818041153360303633681565941479640032423686097549190663596456497346743847024595135080942364856383102939912285038023260920612594823223965300725617633157481772767375964527851350611611988191648034001657067034200285867353598027555794953934248912788635521126186200887867575876064657084276479255317817775205891814738359692222710189475856902618743474705297200151920216221025840872337127082268502957122319070978186331178061614534802318025321597919465111906925134815446733680330429458794064166489091208367107653441579994871748983539602687832525100871677326782677260229293896104297624394569076473806508644596785162409185018805228538919050956972062392233227864004259815363975162035391741156674739176084992581270542115535651339242431185354938845395709153538625395381742321503781216853629615693795786678607246835833235171132718709502531673218177611111456073675694688799061042634053126978309347529939488735666501698834796293096697861866051523462170265564741683912985975954215454827533435389798794959167904215425072602431815279400359106127082368073123237584370657061437837410040257027354158898614707506909321983535612678373918945290143039100967953789216281144731085213040386474917526868232755108063424118059554872526042595952735639202069069826620067091374213644661046416505619399035480807628825916234574625274699979217896904914764073823190378407503284179747158375749499116610556470014746743003686079584635751426706834291776440498222256297343981791070694073242584275338222610783499093041667312949254573129674045536435950335708520021877565178639515987932739723654553550982814196832206920406235120806997302845312966873679053912208449521147241694802074023155778515267869173445718713032737202106028888539101218298366171812431141503957521357343941205942720769368781874718250882005757538223624407890937541810998914720466003882728098278228535109542612929128407281047159885618469628998073345461596276358984100958112261918381990125551217448028704993893309626511452185238016640270455756683918279419474557865603978424666400505571319174240862332733781964436059748779568298130757929058942986367017839857554007129504156210984790137130624320514746403743824777677965681738417827228023947236160167167182222839746060333163739014886517010823939466978002622840495812991187749830754322516032122686544684178927391526735007941974479919846038116227310989787079272980710728424155146672388881331431443103977835155531632616371516267157674775770663153901668692702914686352538718277863549179398873166204747041859418078633055709455364323812938168293909523268927407369818417555437037480318653773568098582889667879672426302292174500180805717263547040470844190067823681537558906516414290935985231031557402062549359264164527776134590556408209116477762369351962869924014183595169429135209289151100209009324539874488409491851411406284423456690032207822266699164258322667885901509210121456968654182658947555638809601709019348700385527476611928810561140265589578105327273452011163133997885862621196986361366429926714465333475042430362503243186918647290134449847096072406995917595030256213788777206142692244247910385407903155890557349197214264124576725533127375565503411164509686749412015632392085464555336131032518904761355326876090611118008557059273299244930852118968420303963720769222792722632810560206074443792784691992000576880727522571628409873717535946410831566945625429312761745404314430880240079914189500322159825842375983810652583082302492495841197534460616094493460298061653684063524043800017813004680406817856878973976630523008573101140203179456660641651601773646226240519273825116265935411830635334539010403652823094854669929374309361012340107477876654461403146096443305836900279500242497485866709957280644002908914257732616785685248875056712557658837148125260019402003749254429597149418793530779194243652103114896177677356463339982721535112987890842317826210838960537538343741221345621002546623647623777474702504046713687998133729547283107376005348309726981403435474716250723500366230060250594430297300240237777990923766019238682060079989796392364210413678150843215836572168489110404569892468783560427739535721335965384722283171146453632687475312641205570861991931027230674209442220402321335484930037956104426049248568961193293046232275619092572939013193635699356448229589889182850585275821240589758946468967547407596451206857058414009706746806766252919731249329435356520602001250312283390730373161206059548778861936377559875641798867985200452137210648190877500684750732605804143538178218763456699240487973093769920032861560466710465297924629731353963392707306879092146208724464815930921948840717814412274236822659853872512263771428564900289306833437695770032266348863813250918919280239634690857384745054319131446963103213280823221418160259492423065568732463112345804227329246709446436460932881572725894742705617374653249925985860069892461024890822939892816954621918493795984247267990107385921029213806868326692437923876051763095718712758457364473075504486384798587457428818635334228415151246124713404600338940113787908818088428648871868739369229144314798371194316605996954756296498369348096559180761648987626633593900031419415484261189749485362451833460339851936496149957311237455989651929885872829415999143317202462133418310334734628112309571463536884213095792652916276717151819391033293911529306622551859302242280191325860960690747125400709236311567975944777499271577010918554793228016362587206956481578711097543247028241584705232273176615809172479991156604117767341885190877810422214702016609751077473687064170689179603467387955758608866000712363097512035519039767504047626163165330191335321868311006309624211082463155652616808319370293428409870570662748393373066941903046802029400747229276121067891044852289343590271539657222783296548143512235590772352701846030149539003676448533029396166323118894426537145541467500956832989563931654802843160256160610709917363195907495725717256261777743162574058246768946904921618072506485538104723717401472922856450052499053470630137747593044021857377091374310765720396121280439084773453558816152577057942768894804752924704100937270226753791066557740224639296268333098031654853449142528044605730080744630271187745597113534886927016096602428773304882039723243190938254822233750530103877945199572232628765923912306060155106222050925386484971402828961960338553640495427814080677226811735280940852217911390509783480339639359257336170118927337733845045336760566471512865272733476298474897495808839475289725756770331802555795706224916923937346777609018833468894977878485382633746410201706941559843875697342312519540382800683634096624777385401982815018549264762678341388146632271868809353936000268804513212354189818845905881305675783930561104527713250124331811475621744202868149022763476775974499214634084314042128294580547771233670831746197649604296142137614057507983265907409113539041073532164323896633929361405608403812955502928469781641082333017408248525822298252831765615820339265072256168569802341948709272219312408567833182901228223199042010718935888392209850147826703317281554968883206661521315818189233339349028690064061031141513856416227762987591548138588370694873794354884683825683712863272149941811218194588845395573551061834051942144228743592856459715539157038910559588359141378909445816532842715841813981407868112423501822773326090827105394626235849258013328549918432849823007424632151804318795881592173104184783169065363868815272430309406123076072077309325364970102083653278880640787316375838130182942297548855770678236440105088245017337032926491513362091664798270371125205443245273155779202112943529161532586546051544526092754939568773616984762773223853968130886629930971161398761763823794122188732016717119579520778196069684451753485536337439357838927828010460065742138833412875634224193449993054485913835448779997414808769626890001856432233855927408189053400216628587532839506850791572458892265668755327022788632038907976073698760948792513197531412937129684492832218628579178780458587537557562420494758728095517406978142695576827473582568730911460681002636587265191186760367115591912642481008353850402083265373991198715955325830200970188668560076897162877768750228459623362739919913115777695348081257086869804781439873363679152263446925136690030858864692457730090438173834137582062763042216269016936287897808815883178475316425738725499233911609193914921910770468176116839323757375759584839067513294510096109353827683099634034150082837207804975492230706280254108889852894052858243289001175614970033675989641008495776536909514129531573824953596879504793109462907264374361350985119385395574247409404543785408462167810185122133715109238080298909115976324967497270067313463751824138959766949223280380034130289121970062417073524138158582567641940392211756164494039076526596560421595914464153675219518386515666494229148401579604972804041863828244401573512938287663675305009534680370924500587457503988470660698337500817525628377909726024999026281127319339043864889525554303417626191160492808245297464144042845339356560394781776281737863839892468091046762302153027740775934794574461874189687440764659093945949543583942868558136098494190568408039029354366897536969334985499944110576667744699481024350097938817649592123480504712241570768758005498455852286742418871514081239683003335294598314925974368363348559259338543350137518967084131792952742149217206807620592416747211268751178790199486895471733376557285193602081783133472599742246957242692212986944663091742586074073340650564020235758411300435337666284831470553374076856521321842299659809882666624334218609352422154747891020329498582132121824122164661218589687890826367900558671689224945652711263250499722272087809315474875355740930359105456309659477253898862868256022304430185248849200977489453635298010412506017861043386470413040158230835753382471992886224959880674596470794282175676482491905629263188094139124465851165914197840436274226666151064361453938660757608021499527142401435937255042180178961152314827790999810175854468238250107827051651358321262916864553621805795079962186772767690637239365412783585141226466175224428703223248966278884055048540373118592270089717376301861854492622885298388934806073150186577599331376193391012850893368216966505076298638678813353415000689222029481698802043096790267885091674238432481486908977869454369768604020910639409509190053229772754920011609420869193489859051755098455326516971120275018561634699855929738566864356587262728936385592721928774080732328365846067997210798827494496732490336960767169084281565618486922717677223073612942021849473972011109203494027978708284717127262441052587039804074027950863478533181822377066375156886265673956147540240026180097696857766257416149595429075353760922972218032172152904233218604263139549228409466395664867603076618954586686630738464698324651987935095530484269549834349707565264479365081036014127622871473544321127172893654722648685140274619025369504668144627665100384099769580357317215790999483192578427761148997385182869295765045425951344776107097635593426154218553083691892490758132843491537400685608906561535659452728659684345108971396908452737444161222115194817687480369583346703455377919452770977056409965720311334042810355265969991094617487398365745754914193508402488217866501023634259944185815506681476364039603056014847878413537008652690915433971744789254579757103661666413569524926551076002380278500761312717709730251544325810474732924483416462150245160623357408651932418638909843650909212890549138445855556823825600350703074979409193355916057315599053970935442024984097421038564348145101624418546820196657250359406301301398972020910090285616682693326122131062050745796874140317370040307748112828209860106003696346344049775936405474071062901217251149319931169296423226669031086795793471257291492665765774812492002345266559047253439138333944982356118314970549763392082134517291997373020942717061242046109140581052193423890520989147086959516198908825885187470187472056131058975443519094277940487391040298867593395186508348449962326059644124206479202343705592961894929779631184832709413179153426387718276612817602990228398073565153450681087736010272802052520578667763987782041653564304011179061455590559487153054341037488067813602824832954213305102097402621816504455358044328450599302158719789252232870416586749105319435587493983633614507189885588602315340214604336387002282239202576386141081357615229259783566291409322430846558368014296456973977256923635472905824564521388299179037534452257075119237319805313841398841716419013457089381358083176472890816890775958769400381163697233234351901119379681250750507387745854190775634486786418666217921119410047879970852177554739058406107794655512064699689415272997524418419337152600208738950717910663059323932804224978577501791501115781980996149135695278414281039660954585982745994227225891237709457552491440372698360464455845947217977155425905054664560252055558907721315782138284830125108244095574897995328878777147940413072580854935326662356591283028303592612153273671473485447886523288906692300667859301152410506291320507733236819456077450402690045383770573168231115860122185160875510174183408846561961310922502541401354956273345814992581140425293284489791240980430750459175723038874445597631521546193800320701377419392023988420766142489782432555699689786113630415810869410878467848768605667897799725949923881318648571537626149234853762075095615352432482232903489234966946083020991587222567232309150175948488195348545249996783846958671574679070163625545878541461961970867098513536207717505706614251913379948181737420958813892708577619767423399589750012004266775807683527031540091183554862356801824275579453103736404095191001694997715143231437577961639810959078197415915625433585597755980157951933428720765016927020431632994965039729491449988971703176162086778150305939036500800283330186569044472939881345938123021041095917567531576501669853821992711340230999447767630270751349312683386478783359643427136739952527178614110186346723418036206093835425711881363886529515404659754443741572240812170679329199891482904920818899590844695890152221298199958297183453141754269733320639569649853140719618235801165463329459251812344503355023956856908345373173103159946524344319546820007672443850207760655054329445664139488799057061223045660045626443661696160268460121299908130018221495053351104968764617485243710543028943506640659018506946272846195833483429066954870655920747966318017964822143343593662627831171798186455316018285799009459535736337960187805546373187348457393636493585764078967938726573337806598850010635696239501846925545277866242004592797454451084189411269009676491482617266165479781557640865141312980484419534204299249191420452378744297223019614415342892911105164817386714957479261848340723821457477804550100936258304144242978736491599493420421030442011497502812248851199670292329530059767569661465816225856608437540703034376762167263267242424709625932566670925414020098706486661928829193479918207699888506558635576041701122345309317143931816309773551703816197713015681359488005286235527677803763241151307358057569577011063718985939534509866414046328292524117710214533484173407802488088035783972507975345745561609400145925270040357143255491638084079472105444721478478848844360626997080392661753689161202406436818411312431410079418446807303496207804495602805060781407054182051597863240153457794316977303079617658325068678610980051290894634674742201653844724236357750545314599205099878396907963265702437475174425978810711102618102859424452810189402728771286383338179273698535559522528192905400832939834877804698518801811710282441767521785338236203343048621733274328410771637332682895942132158560938198933282024928544155629049929125212099289420198334937478946261657650964996831200554948596345083699503119648606251773542993130331831755981359401215606327540013454240049126914566962441906409525496486811684761270950690942712001790205233873684797875404774801278158874568510783096808656192837445985857072189296528677746668815675617579039228887573906424899048524465389537842724666645741343518115488829573361548494586126958971064632573054912563548989625312068316734676859863409950258637317401725932054303585521925921397927059136704263416782014457551432203897370286325457594839033764409573859657695363998935130267592234571521521036386036275544347934076619032702022329429840695426503683289419163823263829084541526806404145967902392210420841717249910336431934444218732779904241522640284102553441926595180481813329867061021083291478885974950410897472010798253946419659776103547667640345363893478634956404930278118465275101704413020524711304681227751728106017767491624783904057577389524142825988792112600096512300153024316232439649220131341996251289410872023479145650375125076903577430479526123733893868960357093662670525195652210288909122328483044466967384868319791440538432715737362329796962874923490965483826070349302132498336954500552416669975656578736614153976178534804669658993349287254418592075910441136583955854488425221698978422560633505811487445334322646718686287888868724803838916338216709241529928646998719139451973591526112969565374009760560742903210356441061831536585347326092869758449203526399520773293801572340384417021743085617300550881772379043235890339017736741645157543251718932762707408590117934193799127959656056941962492285669284731201886910414480394234621754458627495508271717088544826096150790214929779532910334704374549945158888173928530636599152433221680345163610453348705008351625464166110003387320514188292664854758213217128750258489058416730835769664676929713458765863520717632051950056492379369395508219270560457599445334143992944804328841076076608221371770491078271326645345235233072135150473242118753905416299081873113809230959081311064662221364939038273688014275567786555961129726170602877212926167017421959322707223135626889761802825134307423178704207219637042112984727241585554417064021766223848721203091867427039685037442752130105561511444435169039820835450962706389088417075881963666161052015428887808185454975384066443089158961823163040081739287922048150480838807662520230393436493262346311517665547326490755620884536986377208452315121021629974618476073437285040460145197070585399977784620287574597673290123964165329784255904331597422002592410066253809422125223499512228297494296607507196137914711301355948994431151539646314358338181351800316333147310977875771610674487491967199563944335112978657704921125036719000642769864603010219432928340088636745442533977880610358218507605665939024999118271104935799297451261465148083757710389229225689595069606357723346662724453658699936258455759583002195870054253202150840306259647129550400072978943285336223598570524946417303873048964705908919669598689758656812273749219727512646217603455847276250271293752149883385274198935591772774009264941872385088767833918913382337693274240361859116554998102640229526578835199828794026277500353871222010600438896739413020795448084721857728909943461316198296251811304901067133329585037878819266823713094465136038979497429295083129567014235205943836869363116552030127331440986420889844951346264480100020604934226246015076549761390543521522194609680905929718301034970418885229331631570262356503675021281344521926670002478061962719912524697669938893672112421633404185499719882970949666527500219062783269621333210011495721549423338644517232588687638539318900619598072839674325382235106326306881093071623677652237604518196573626530357779875354162832401734381409200963656441790480015976229801737820380612712484896047021211337685406289914188409902301677545817262440613278498101577209592831264353658057119121112292411139336955826802074915282915887914978262281523631470308847629340755356069668794599533502413301969543687161835899523323841996203381324508786205336598515254113967184048845800814422756312755113649031323062682156665504453211667169179879964540343274388567474820844282075265738603395548649171843966963384023260631587378838503622209842646938745963429227222050181918182298025520281435977938142224801270463677611997457859679840464767142406747418578729410017990402364283482358229733960942198302517571669176377346138890976386965401316259014228627524139595679774173582042403911262589323290257435395635832304583149333893720426454486418745703542151458731391281741937739949168807784538308572051459917388640056484807574986336987397985780766329924720052113808645934649191191934745684617114199346947217486114766900184991916894607747844393683393994152280415286966917920035179327644987867310801340603252368682654110835821830240093467209796653155333035193158641210941221587723778333776354886379139880558455430999448632487205623365936732020847781274545308889997635521943793396270242365190554887574675834880790170180385741957333651821579055628137776061222269171214772828081390838675687157206101758069697316654455831204789774756724834937629362239491244073751205585479217898713384269694134280168731505342514442707230519624465253882140132320639213819032180830604024455182786186183590137206397716323784995433354092963150611863282900237127285912822435395826666596822356405826459789079950136124483667222887343120687797602496413145446788249484341645174631981569021857057982985198982774404946666117916197816871807136862703240489196730124703241878238179864094757416489545503988173849394888783930798924697346164889784756909026002104191425532812005602280288781025421852319055511943646062894207672779033043421714540781690534205497725288919820234927259466959891638352353721742448796318245774326079875368733051256346178449457583470198265429623178346052994097371123498753654874739371199626778168035361110688770251738535884630505843635334949172832616547056935828771855226854513462478926716605410825590743351570553495561786751574540203157457004090465868029923358605417810702196452028753743176841587681857668817818936040328267272747112557856776386100120205736235191985555650011661261806173323648756364774357250493371974348824129049479903310195332998945644836572864614752020103688361430706605380715527734689188669073299577558088177888509041391528330374196280328163022251046610231210257119454217082219647418079453193115420351886494767518092121761744788143621281413226516469874106707053270187531366293661030171773779222080026319849097145186783397657748099338936509779636972483288595854332173921279232212739194602964036194446605077040566743628194466456019710463718767241504391874429829517946594822103893083068045345242450358341097198312344105314731305439683489229061570240689925471199101917218267362381731472330077272753921618978506294077425347365680545672219427686523186277018208366574539854003150928002788429297443156874245704381624637199958415395569972432438410693317857516136462988912377104637438746096766142996785905306313374409868164250182781013922456981088043343623940361753506227953252644879290231838871242289880882902351379156972467906646272096209275606779403147648498934053738922471861469674290539872516168586881649427579575751546496684776526155336579175461737880624682172643703800039852518137695965972550063027244380175694501173435200585522723437653785119172558059642410715645553005903115661590807885111391362770422925734294459958128526506380403464761761132884756845456561819339754574261598596802670860549086210324833068293122423892857000967204456353452397221617698371716576031033810313262900238159180926274552464357710419570914301220084233434956792329654326696268500897473807609765415664195038746470046801299498851577236682254354402354298074138791541479284533630851267696826334020709020914168101411556369621469301113362693680530468107688164171816926725720422681112875447067413671077862290648569222605207661543379819164448782761289790791573955775137663900153088954061640472743457867609771115125862371360649165579620501511075735952379602749124577383991475090433780219368439361340630213016379546567037927220624684951796492640300974374987728556870228420755952707419771623752950641747441307993461868883725510676397073484538146847360797088051193610037081218876282786202761414639312395328890182527947940080891294619273793716320769842875938610306606304689206332728425777973174590376308825720460943756251405134625194411347094516658507862589157228504117619749465532030265603436845128311328190968020565786678653656223309194657150397350921177640432288542498499953010921815915993594552401097566102386910685239089343627502084649315648783562585462430916493972688204447071144434216792268809330986710836491895086346534918974459022770369064102766667149846897580314426138867336708065429024843646614506072932940416204299489166606301773136033170351386870827355540065085893040228803443423559024551975252780742094602056351209118330764418953998414238909268006051169173075012364082366504901999129920643000625440528457940854835189842610420342000592363360139296369542209428143347012802516765358768411950517163775133666563703677779783750653056154767735502236517164374868224801966415500107294943496596945564685426223970781853607002840442746150220425456203271920172938438526802886812584345192804508024695356032311435002686196969078070447289099482801662371134699086167014711523861450989541581278365717237615799037060884544670907594854903000995829706999990899062889914985146161518266261343966097905370490881078291411877366729981366039820701362087911844347435685194047162866959095695541025345980791851572002422956505090439789790332926216212643936218347398009607122502542621855238513570416154997147983128427308425359726295877027599168399184134860477604901168656315947763922332840162451301349430984035805526650303046375042087702074232133914033174923236409642472354563645946182757301122337030325725813017638631481550270794599157225542766259785757957499000702357120081546378883867770156798894092013678205052067815272817204726637308887649470799239162651723135375283701423987970371845868753593631739374448441014731568098081266416982193825852024175989945666325518543468009645503195983589158721242482485909803956905934948628063051898518075104230652618120272102956281542952197805182681118830801260174466720546903014059023784678979646226245175993516569621171933135231999203502688060322222426987664973999990542941964335857898125345072297346030262015434477919595984232558351945375132545894710508646384358238311603883877275196513798925039697772327764221478040772556420289565369727646798063577324049080891293378315156748720987493408496505834278968459158056282586988979332262244594440480014518728272362743225212188457400009557508458614415962742105831579095733413109896005152390765300398119091811074685804606508116294846977098489442127937317956751257906084851463697142670217666710569648383626804184360432322214955109843976316114908372096974418634860465672611219833312701345068844798202563822999167887988034400852856911306241269279217188231940582921100074415356425821027223830289094958420232135088657070506105885422332982969768592292089802966750946203067368969548188197623916992855016899323297210762050071992683729199004553126834139766709403306243411554288569894502649665415703135119912513210298390443749390662291866616522730197642487530518805136824496011705657620104593921253187203110806725598515660340090375357380171919441778168582240929557651908599937787593596889983618495604153316438903539867177592504442544950489547170110121785598521528655915920664761251251125173264766127176550360975301864074456709031208929477488408391358002422835209164225481819383408992602818511409577416173526664221921886274067603198380027938343860705857845886628969012602171295298626669697072128994543976255972617514405077406083373252034186089302810370972611054102501593314951001960564219526119709249456637275066041907996376739296591355371065218066355426363888866223304830905199024825644404428068486973963869278157172239489885879107535910185373169102802386542421432610482346317957386586670321813027584606966178769379853628395158363719108632593971893376410391922468256811065310034719908257041275756677961638295138778417257307451587973480544715741905452449730084855860188725949979356641109189785884982940766387261506094772617040593771943238631415279280209675821385446704059744151408184698347733342551932831907571975669882067390734016912104903571738284402794845970103720326459093507156913088594252178994389572127168874274938894661182428829738088761695429177357917049674136933490486937371534827415722776714392131259633345958678948220475719830038496638128287211413723027676979095074824523908950335515777323807132860413939066674153547159098204928675767398513561578834537163429227907542112233600732863964257225368965189413605250812767628522468126132330914915335877385376851511808937462384896672759713344325517205141963043272171259967452736857558355777333821825887022153081223752185204512923625381201329797692315175952357720541444471570359790754632081873158223705754536494365970499698192073378897939777997449991150998988400651310836603866638187404677139258237983008368296077359289429734904859907365177999710929055983744122306656394710395969274421228827182522584373576330609206748870319659123784676950062300385107124298566979693203216568919784076929959660331741835590285418691636058754390837524271909052218040649795111687012553247551710163897472117067076286558902818159603164443615198752318622900198541985288325151586455860820409088785355847380353087823993884950581265132222051273841947034429201208728337317924518143754475589237252427959250834871886461610679945074775348168864107487405077644844169322935638255299341895510317765582394258866042565282165050397127066171145871190688737588881660061377516546566525768610568956210371612660160159666894932984330264883224572963203432930701180826691076895942167381594522265896940338333720076915551763792160727682460616757651066462184093716415786171739011506664152354957740897592315462301043266256296924166244146945734213360224258052496817405957658215863795753330175351569034671060317187988971048738948817964174470182834532359863654513115606381921622549561605817758961506708513851100317855470929249038222218410024523005784727873437241466951968286605336822454449072344945019695536594392134620510760429792960520002432039412050207676326176795909486658224779650238472040229253816683369281684723305516034444498787608240950092823094226463640924863009950470350260235778501684826047687755607882486231060650950258345736939716142368932720069960019036678203930384299568645187725836657852240845904104883508820501271773292861515072574950242163815884796477108285129339289891715130845752237742546828698089527455730207776461737628197806192263017707546473998547691152646274554299975039509599636389906380290798300878023376308989643673004793855194959852649971715731218660560970553054770604945865392056250377088599882161078004395389260608732839508345863129829370395780150882886189631546260013334620483068803917497525095083871673621075418402488405261850181464053441681500893450262801111167126855353613742957651909986093208929487338455175592988489261892465826641642060419275322454689278554878073798413913187976353174643632376544209159080007946066651137987571912119263369169272721027666881213957998928650046269234658510879032328956233198109942100423463862849540317563189205937001107437552053966206429592878373451584354241684084686304908022948420764002784494474027907912399629996795375059096727598339265295862242021845071359297745982084008618670817781034767689627211978500290999774957503162654114135986933687700680647098310793053313119500505187270748722839519318159327539054837866823748200756663448781925131428867606193751989577481084883508742468137027980668903592611913102093919628201959758921322103983901875587709583386340890697029793819798850111762405953083230800980703399363902166527126990950273243320130521512830264442992610490701598227794735202836169456363715015562765128637459411160844834956778377595098782712615395500358068285781732512405938287123315860249715086248845122681346549760271860103008860704585112836247468807336951947753577739795800848807305405103287758201896118502561154643236284325668116284780824422791799173996134156656048058342812209035587198264679878781274738729918716137227050201302125815311590026248658444352437320696744101709572861334565818095669656403161293529037442911631818353472633865582827128080900321440043094257845532407489163852144657335202458726101073259660685678069811096635309374146728056278185151379802647095637503658304097892688154142943058780147165198997197477245524174148504438638027804331361464351569678835489962922112393717571625094678737572813188596081281117058737878663705529829967941290114422354659001398552540084600235332052895589023007431825234938782858352650883596502510768009411963518131231737258195071466146260887674703258084230163061082263352399043364153646620199906905771541321735306054315515956452643196322896009718839666582199538278097586094677909686654388419813583927714020036729454214187199182996743165842435493424043193472837826429722689799490312521971282842991287018546445885599118858004360095003451467873042506278848532925405574284631250585183653531910367680411621576979069264108859091606293013368282915070578197763077587044174228024951205892733752658479621279079188064817083243878749871168526886362582365824519326944345452165708244434997325568561697470504478232400858595324263522361112629434145359828235910540974467578067950513778867308072874731339702691833903156282883193584489239270034158912228431574231604282280368114062024442696057365517142288894737316798587305464468330471195931438363764502353470518988108557790167483212666567489175412228380460737228784793042467337493880249765055652652939300021534170305967265742168319128161873665052490069015338389871499145920959929278436279316854970597737907726065312846945522008194100866142150887023921373170429141188176836374759072932723047958304189485686244100405018767586208183406062418434247065199745279516818978648802762990853834755487452832782626998106666612142303930804548218582647352507975355185046545072572543252969755804468683468107957129638454336307298703585481584349661090692304334556869148435394364677186304373798523793393316914825964654656675632973919008220008039569185418657633433053809615662636197477376547657010418459901661945610185374338035188245380852346059518157211072106665263284678623499678778438820302606767989005683137232975377422307444130679187258518105030446278092819970923299306609713896043198633383724744107809706347444512988301462811002910327451472487583393294548653874671691890966956714338104976957385962590116748906116218683195905019061298595302476283958159227298551887915971107982544268733866156288574938756860586764654518813469849508312795431690085029417607774482559457212623964482359893250453907302074106466348201665810644245783448770169373636112784450834296088673062166049181779730041740515969387334968106218820839753730133981742947071249065477288300737588385275163152721117849636432988023095110466710245186727838739365791167145646473675154030234372387549918852644064396364455636359785584116513099689166579842011166490356427117746821133787204239663910394722083610219767763394896068940412395705867135142108902443262316216082076176727229682270907697773727156664411355025078912183853170266453944458083210904054523004167990844712445835737951143069017447481654946993941999064237977718457669175361283207389826077747792188411331024730280906243057002815756819029702675064079579678122450812254636001883644179731494354648968161749643822584519736813498426693475193267096516835518695725991654536570339348175979422318285506866343093375140655503245938619572759638835097585726423496978179747070272940953461327470149620145274604026699194910626183774375104888852005013067097964588141171252276481437535019303909403798550831838889166424535487129170328446367808439923348021699101525634645705140495213233278685339232854889210157896928976149540697501722833421197241258017776812277783685029100275885581398635276986289825051732265484219101365676300097313406030534313407088259936082706794180725018051139279669672386768861699778267690687168484340230081635913655899026781477887953677658390236615596112634109720631848018484945165569742959956065135655413351277618798547770512124744095735435104014984321232478871161415491128624811152547978205958242366955670164614096663916248799995920447135675170907330164274178720230404376459115334711268874982379071202630334349669006617255722816688215009766845079721549188868587272839506781124578453707901231673031473033958240436604677893119718341817014998629067353250494958601483005918538576676840417030300968240505288154677742897975408700773554269256628434887334566324676192074925664815659513046089762895230884547436443646409572721652112130355761831270214801507591888065162729438778507896224518883340664184934686501676331060217141118847376301518709827204858114041416040857232767989430089218942730072388804480167234787571746522227510355748761844372775979347289826443477998259792314340127252638719116410926596337094866103017264957895752954996773436726088383783386469928630511884918052318519464475172842871196031044976767900206352898008484342923328220166666464821649729053215706890596286191979061768378096466005839836626260220000953396688533492467166932930663564802400013248090027130857793804849666247873211290824248883964195863438381502218487288119296187667865869680303322593184391905783877989132298983641096411184255329194257408481220922560981749185769891026436753578113305255047531205026506595527951722578147726852746612674646750331559516597261360729139385921539412685214062356944711409486047568761586227495316627577361212499986380815902133041782082389637848503800854190689913284585016779733660128943691188467974896857136887357076287706651441082565296139505471114823553421455507642054684824403848178637390557738324089180195457238792544765401190473814202379504911530994117815249554676943003657012298031234591982810185001555457266174835447834839375577416081778520202512514142368964178128759340338866176802289978190377809565528609789503241661795969767115792142742391952976183839928963407904425266229712992476268223326018772123814092365660233640424457688478168123019753189915021640559247618218767711169616303676767863319177590400350531705118142121432756027408699237152864420913641115852470692844489298497426082716244302232044916863511777144900605611545595754453453113279843109487732970601317367434390409225560677780955825812362613876331458887221631415253052107727816973762919649368853321037104152878197247416525189633237710740898310663714040882434245007314911686114903633501200421807321530494621710092464036775664478841413856348768148361029776085635504280033385574956315463466362381977457449063652983831375992542707356603672601869258429133732089329301800966624203960947399359949422165211824948928286143196920945412828008054863734740586268355017992435899346480072468342229669772484672560528430674482670668951947777695455342188370570717418634193604745103012605609024981159111778499695828241248293945300750699368977080423769925796628460169489017432205390266550669853892733164364439301919867655314437803112763590927331768374175971371310291636363231657880244092799874110518929297942804886662780656770948784286308892852696674825265848813771790454148127187760618674181342127888910949114294912465398630049547385402635576604565270998702243976240992469276677495341965699437074554985116348785112311578400981931063241382046096299094507304735831992415926212575868717821086959181713549587696088109432372892357658686435656927911841279079378894506804861411964602828175892909421772273923677777243505800698136329141230812253391580129615003368920724005660443237025343320968484189140085564788241946573161755598379175019180177631301065203817810849881911440652249647687745830064270428128203214736332809001962570573433170186444825946371576685493738623147413527595709457284196115536757335232210244860987136484361943694736173311541084445901147571495830571870132790319233971428248262665845119628715299443002659271144785015122782691316716608928736953477858718749814447874416961077369450426850253846653492926946374138672082962422820986607794525375964057128461453081292831897468004368580992959947492813655931714771777510453164905611500618444582440376780441546297608816553778805072943092351090269230411569285831037614533943764906196341431222080200845273603157916467080514586598630383852503279811362189079948177521788807361570467601083148153239561191033049140881864618504062228464181101802307250941797608692238235880736410981517098734139051239616386291934449978178645361782152286153618906386120297013784643606733534586063970803360066789535406687810695538624861701302250183956219233234627243871757603705231233688355650146403275428259032995829263568955213427785097099577826079006177098356781646732757969640856246773633134469524476977612769289821065281835413322522314798153349788244332917213782542020616253557384735902539684065158744546356066472987076210529569621258401511920876072615556353332108250302616579764109835725294901422672941398348168007520405063106786922487322718657971990602378363021958775764377576027218749633016642460296349830406528608430175804890176007753889705052131515893632561469603352828865999699809575752493422967590835563837529021694428916831064587943161826267616286750340743824985743659852186915195063544135233787207325039103967975804222456219925230072566522437080932729632715005214962632802464897706857646806535395175586529458050590520210394777513797902682275022796261824684764332234270374521915500546260700035084259945691202534713528397168501016335813952802943203327067418686637883797871344635641782279890057412743696336032193835788219451661720259956490956715279216982956290682053737463184887798961621025009421497118937471932224392621525583014594935077623099649073198598266814354742918340926143998282305066674378492443232379629515516385568305822379378593609515853771450517078401116412107172077259209335740100769701094286357369035092709121643312453504127298729484364504743268655155412962066519432313815268931562237029485391946733065640025394033358640693670315434658100712914702349624304528701615820605318189293904927691634668128091971744398390698559701160370455920741487866090947047060831061092488638634314100150767575832069422171777201750835129086879900254423816865574025723266465844651100547127149097438602944385874961517877195695315935374986009936705998084213429522158753383135755625651045036682274032028749413875516621829609688800197584659316621528002161090233992855493676343067952334861205370959660591986357909215577707474754204903922884908008464240325381559667772467793062119120750656518679249343242624588350793714392929967935713974817034852717159837382654965249496389293325347619160120061140155533974374398434080176584580629780005590182823285833608375674172321363130172045119886506982634570940467621558191437592463678207085283827718904580638926579719155030301223094500577448535970897173298005502613345123907960026525953822256436847679873161148150583077892817037846436095421394073696154500197341891825218164493594730860190855344983224176516159115593696804025335364664669210200293159673287288378013758793530902221815798898028102400072976387091465606469821832205145630641577257364816183350013364213781125280506222565059069130788675953593486910840263590334755366556755094628194335439406552797706150808055367068992045706968325532282761306498429295701247742124185641999217175963882749758044625863595158285437935886691411126167858040170263383489404183186876682681360055798743408492433491375790708387347782585550519065453691269387558173650813968679350899376810925427937833281547637792271358892321253459288864809861730760776535074814487521420643887301529407714387973082080688610688051986336775675243453501275304207820633991714246472625045564939999249082050571588851398131111164067846370400832649815196677441735030719999470693819354366931740979853644570373420560638750241297802733486881202512818719161774251034829324620092180626749088968742358355135562644445093370552785391131667486903350315907711249324864462508310668906941597945916064159718209017594931020167997731480747675516038608341735524860223330701264113685918127466835206713563581944100902178526776446875150108106372212664141813710334842193438835335178254099961735840815509258022687106385121152013625203431550830353711447846214356529801766292638050897151243335708393877746552520830451642971864365999930095776965837657375789422124197699333219310738366560478321669050777583973402994563195582725709686692465028283637757010743767697519481651100793215706962090559752185357850511806533881863833825025282520121524223337168868541850068021467903455210061369501234777992695520667357269392312016563027588155146654237395705995063095691634248689199058267920585642052353440674624739428259566394643968053340682882049061643228527970915805559539006856233950467388717601322461701417427954144663109346696773230734436026944176671273445563967140105658490491077378451067725802685152272565142319233996733608535758869111189339087784223202783760495858519413749681703234496202577392968869708277469641333945346886480152882741239541957979675200580959244470326643937273187480425677044168044144204688343482202288723880982014284611001529702455717925740708128710853428584309847787230597300694451016655456446095676859196952441196465654081976985100831650739563036018736561329721135119733997815319094421451031978854429047671888466266366180836827911777528076233437775887699116586531448749760196901448858538351459005223635017463723590212763710258270106432086435632309750598728692787741363263774799029506046028016058293474669611491957357451357869030832220677318891347836368056255635336871038910563431314097500720182699290380621668797895170022594021135963813803109655091971326588241803649040821015148870360467410495688060201875624166838602851582789296618238436450130018880422413788834703860139196971292333985057673469538920061103522493828065706195870983479837721437943162995472497596489756416810223672111428799027138459418485476352438234426210403843808919372865167591312115981616586354524533216472674422412455078319749162752031223582857380813670105681456795527525249659694161947723568152172525250374988154228439988988887105679061253552117390918246645981877748943382968996522858025630810256812048230141150678541508143458006104060758354582004711779975447540497174339175411064146903311671762301847084256930981703752255282976483827956767337379104898840520106215294161031603716766963453849204129929826805038419972523776241840428708863281217203152499811823844120797098296416386927366363135182999721814484807039694104738641987402997813455287384438176390264473728195573330464626928001614935296604507237024021081876822861595263975758306273105101013950743550023718652653816558390724371904081000970337672160028906115989904159832284586364230849033062906873496112829096712441185177113001821096903938082431727101182645702379278095169547591523041685284735156889411961427715448670805770463726699110711256235244779845481073817664918887235073042030604644385597952076638403156644175392035779413201194130572403490490903824926485746516657817515633684695206545262657185811493864432826723057839868302194781872757430075365020222897506931586711453908845917777751407752476548247609527641063893618041260314887832258182122738282769940913244763761890877543875783480336149371848091384291953547543066486021718957921149638955333271338185056220589752021619840027457001208939957605585399592888861424471046525574021066899718058910905581325788115511063127554550905849599631180015389569608147599940935836623481661082323702504752844816179713463861573820718167657670813953957783122381902763675622117355187797654532224891105669310183378216433121525271120609214736336793538496629766016280943494487449014427032965441293460337978640738931167351800475266786443846240070024012304044174702444226263074392700968620192602522792098680202404602231383231424987472799617930739453270570866328455885596805957511035452840748284276874137501775917015874716016954450358691714770662804282086989698174562741458410158317576059552021247401213833961437823691282202673317136765087787905684057291021129022118439291024574424555830247470957936177975692586826948546874273730859750362058952606200700334402478991120902141984820550262787310750618255648260075641156900209977639187526500887784084700406741940147299120584133015074495781419797434569093419981357226891969212765714818638795469124159138110163219264705459885480072728017128973498678791736546094652584011633296435087764911646871515068278206251036541958444642402832414251950829865466317367170390399345911961949235261994797708042033400332833330210928126490165426194152705272730087645973286510004369667312919011592424460514959159126222166125826608367116149719495078707363151453455030156637094236659941660130789159044107932551354871096227218064625459449173821637933855852096213243801682758113897790563054232514558555213769974859103194959691675106871126745317651107964637794307458440404296043493721922927928022389307538075871746152534523116448677009365986635262919154377077364934563747334579221274988319782093132810698834075921308966569512879908438202581208037515601463022052945327520062139305329934783446938989609924815001316956677946143201096376796316911165927830962774219364788716667935560568925188828585634787043846441145328976830259331572721970902131229533167386749515639812611310305824834171367043586249834299563189354136930345818539025655828407617878102248277649567264972441403990478053558356927425320238406027582917983348775530884168096711052146358057556243338377920699389963828466596953090416602117507421078092534702684561720343304969301158693690776923178820441337440055153874335080878455384944426813837389535143535290293748115529882143070001249987005644743495859183568499159314892109381025360822287546589742974337878491641241723073243059096836693784686269594845437787406455912225616476733718839338633276550679335880270949639610297559666249577984644720088181001319788199827656527498117108244814157447808500404085229909472262918961678058968998242154296403231685789294264822265276794818560601363458857632990928393621932216205161458515458435419632598219296806503306145626820688021802854733822122084276815695244743664224457529157537366814448826428929249491869299165667840523210514484748172460582886558523330653324385261393562634693696749163396335212494579792230444057140167800795745852862558232129179977571883700068674722568281677642328743561928907613674796165247244778098676154220965977785560867648575392641691049070463841907646812991234709044204542804838435538823328907297549334106743092697570744680419788582446134509919319496891813147673143029799594702692000832245052062228154744427979035162918258101955274125029113399432242832738085603083099318192936460569883736371695145805092875696260374334771863877940905781441581374243145363784617279101328075838245984379359880930338630528996647262732933244880612316832486429164366331987120632980269379671417622526604260080976336940283408460568545174716365720002639545199792959976019382798337269940926278288695555329579438670718348358391569014643759226772879390046651521520626803681811255296159709483295068162391941885150791182027348642177379490534446025809733938596307262917327483322024852420011336239249352107968026089435678984154209103946285462711627126082956023163640627667600040994278153687602467360154182753998642261081463357837647396603461585049536046790407158924457092984289474406267610722991727306178295933765822708908982928757789200920528810007707305735717556162366983777127088346864892740344099962967029564636917620731178505090388539538627255208979796771799436990665691135466122754314026551993410536272259566005286527748998446191982461812573275515635249193219432297661513935485715493415542028635992153055256049786002013065385367238313385133843755461904231301516789719531735824213987849319251082685931850366061609266372273476726884612360140775448176794546312751172928817874577560234480285478888079066095487748275412090709563047225010723854324409790450185508795713992647924414120239360401864127066176577436652195912437023811107084328735814599814673615779019240584542520726921327704951511303750322226953862610809076559009010174837100972484818275393782167407381497845116762172611555532319969104359278970401046200129303490193361888524942669534278403884250471799970236272816546476175348261446258943109792063480100318033555522526267134704180579111619747089868411116362120458036049636757009237882142616676470513798813476228503765464971678728291787067234931098648192813366505640382578705808259655727346857387578773449978704950821167388493568688668788913069322268585606222303946487636000651390172638882364679610450880451577834852342549599339586175302942637095919243240226791329169229603150591978739020531045245578565669402325683495425094677314802604554424238006065063187248472534112012807601031401715604152192670555712515953325239391112196421406245875505475439352135661779308303831313268926317151460808502801448926393759923704942492797067872824173525909646735664705964995527258948948845964508553495605183388456613386815152457466065235639984486128836912076365484312528836975765554811445877559861355823721847956830087245678740568549733737756748121136511468004873210037608027611576554618578074276785335385501084033158380734814432563286229265240374521806645477963966456640341838860890649638426973918435383718113682924844034974550562594759547001269747092582720422730624800416517082390840229790185677850071045412558478398382203561990735620215190795923241776868223822494382383300658224155718650311152810259239861330437862635583589054365629570906541549406305086480744943490899042497651537639781518610566883092760455898520667131976528032917017603423650786777496576898211836770769699867299855423091259318812570818356820832032093983774565500631587440098110555705404359523127727439955860184948037499908862248725815583762565807124178232359920492030755595315966872835199533167911583734638017185904951660673088419587072159748392679467010466878052590134098962517359267522385080907516898160892740666701585447535114680541062084875000041770805165266100374388505900136108306711844860983981098523079123691576530960656020618609688499154710003612880815289269063152237946756700969320353660549172335120768187439050384177747899545068582438549644757546840155039159099146770933569353283716991396710850769176458623535606376003891131475447454806283038318995001933766735564978648207635970356964624206413954039713287711241373851086012804546308849558515196763687910637031169676456898307756805078857860765411448351782174706182015727484809807486049762399309600997113545187273699951538285563014551761265350973190446451117063284270808670408055591644450355621284873081263657152534616953359697554882875985018955361143364064918203302916977432154326297665974987715984669041630599200640105324077259658264827718865919736422164451099204968422488064205640970210345461357626214665741847575400540968565673730754345261600782209228607068451844131001770001467578580252273295497702140871528156191427791136253480622916288631094645611729841537194854201590210191892455335545604711324992979256074539437809774090908147693761407852926259788194547719104912872751910864199857342192582546567073743038310065441630368726784448976672797441957809000723630933743852719317508118214542747846070159163600755732261522109871419687319815598738874075865544143142693133690984244854267601000679969798506175767024019978986700734447080759855332499099276803110776144139711652421145890031614417432501910021835632370155606772125956837770219188288722328180719921543832737932277271188456596945662945220650163308307049249180149537757892271179614722558767809517942741600821797756581149327472855309111843317915819589292856278946091186219926677852963479538932967334837818585038754638064664682155897616914497830059909813831408098977021631012298534668440617135897072310555375380556430504046553853482279135367494653176407496691163011464485576294400517108114958893258680482839177822779035218087498856681194665442419923157600179259527712378697500928828327328397556623093597266404292931687221112247015490800675988656652623616499687380568745702902504673382720348745024629667196990695021321399875089540145470485719615658329885300807636693077065991722872294035272609872481471683311867976591343323681798869308579672713984570608043966334347369131466524866954225659574357582014266731316819636622291247396065008119915857808067696436749176547364738344943280820893646070481984083821550394473990857994788705297194913571795939277825373692712124627544124916165914623206722017021361566073565354440728712834892829064265211303658410810912237362959309897444904391175673842909756100332084794384912195320521259589462355819883222171222472064006256120646746488187731178351828266626554767009368277531639496763132927526784831608592025295289456547504993557683830890746243106014881585855053706657489539034303491942031279259370730117295574261260019743311526963911099472114403717730487227052755285434633505812386594653121979779745873243550945873461330064117452531880095948612516232464170014598504599832152676400642974268119218530372050199573352611450541099100447235507206341206141160642253592833343471899496326955233530738381901449048124675839144164002455457999340092141511158093840667359526334805600445392281454485686246988922458375239800741512982924071504371693646266277631213061219382144373356453710456693255006652112074053001732781488451429405315148459907331178931180362862207374872069132354036401257536025134418597802540806172664300247735308682453425898439031591175646336084844900128839317403068907088543797599029296006723371412720260902747867390111344646294869879611681014325054311678277335741632112471000263882516515486102218687023804941174072554264173782603647707661501061159461499847186484694489372385088182032870697118858234461942899273956208046615591260051424052114715639014150540952237937290630896460579688830639600327300556749587172700204997692989860766100212390186568541759711712815569285204849603352844416348483511949223479753092801089834468819185676951324399684287658407935738125692549576487076069577999955555396082979846803237852920707622252036537928643664123831352626145265420697181281626684273505875615403937462560720428743786671084724591756720598769473070832047692042783248194400380147222316465897747359907741770447391323254269770512920909950632646542262975595009230294443765316836114101628268917114849375449895822242747852261856072603807814916019418910227657183036928943661379853726869318842827497085992467299372156237923662339192271397437003490875095055684591704621597115476470592099221363492739546332472069760653030079293485487261156741978276639746486463546757266473982468767962604412615040390941172031895755079624410179624057171625315154680530361074938842735581698408915543645719047831080174047517508910419896160433247485360587017774566028992518307386075628611925452544855658241398858673557089873779115375387133877483335435617861203301719957998632697146182864792233298786119967480548191574045010773148533361020872886011768931409549108942031445552660796123941873531848171999926185452678096859175073482856362378489260696741465567072134930099749614933817716834802164813764569794611952692378261825962534530042337240708530013019753896941100948181838170733221416806879707323510849223280240150053976488509862652940202592398655111515433066698256820734433058564786553338710914542445642610289007864307616934475981697929718956234055221390116575837120297193948847781207158935502640311068544354810096459994920046688001893820941438095469142316146850752158993733043738053392337908943414185777830197199361730331872189676898541833309267007529533361553103925713923218436152580524309121446602415809952750124363992659012307084786449309854413672170739464589468733897216296796979874378809063442149260020775791462329686712018276102774516061664392932754142161094428969791088881588091154503457953076203681624314359749235823216840087141734147913227051583821316011478176677475586013645264650186654498775266629383972571321656091583675402610878149319919065443389097517390660158738669996071464675778234401258867704496115031330346254212535717967747244145749258118190232745398772905969908264019288348703449198329598169627806763384719395151776936382182928009241860425464136803539536299446473604839973606439102742377502537061240427039937427264826982975240696921112421577967837454735801959747014895728710278773962396425433894938245068358880199126091321133673669673327967376887852559755789102385740451533305638166460223464946412427573082474424076344718277237289066525493540695543431497513272415150213645257652361085417943901819202229647444626947211881084485841484222638652459804397677446939718601146000672223238004438811671301677762106382079119594551288338978596969862087956452862533068605057581674127283658670453437505424834702947696997427642974141480642742392405796678760875978972907913546545176730132775564824560313067684132237295450401534105677766024256672355967307038343335972293100303434705377507420426014962014970362563869178943750609003212665453378236652094089360283614837150135373605292796662004123563497285134294468240822963211365017471655452444950543320660861321856802952752721603043282885148831016544774441772052610381307719506918218617062149046142539144283430639668105713861134413677371797171461716142604502661110342296984487120893194775094909605861984734073344154969696334154645801009034936152905691177082209504631076788545738508232543189448077960436730598462494769153735919689106001450872567675907269157209983815068163326671042529639839987320233861061580203036312991712579054346834251404712893913951288205498422678342488605721889217088844687701963040115766540019776845564434420218495462015765225095992557944192225320144134604573091400092748413988099715733931781283882314473711595886508933376564090256509144898809159181049825160997868250010253730337314297310213524429229150020388086443474219474212469184249385409379671113863249940596934825776320845510166398483344602861828230177797532856818511729809493902834434514175790176849069594616591486068918036433530014076131592218107963848727392508517341485917088152691407085577566206218702102691996477918175497995694198623985937753437407330771232328018114573048711511701160335632164979213886340291440653744135838350237442052439832981519701602967617830031496870938223809956821841423947355684891280645674102322192014000879322538164310070883499518645212108165671973015326840807373626054509208077676563015319835602717009851309415867713126031180206577430482253061773537285647331205449782505267408430618608974646546428491346548857421483274090207678026296086664417872798396871921366949749669542911055822935267748655100223328591375455669492518247971386714831509700473680112755523256604884543334905211464545859670870498074378524722454012474104111732484653886670957858135640977630593298897978333356022180048524342696142649737075843115884913872494713640924220347061038285910967101371695477540704468565676562033269730053129387844190623617606055705620205871370994468080963119928959834968205947403194396000568635718369597532619201077175162848644441981684129173800321496196068905533360609232157058067828311131899160061714268568846383128212074885434121972740388256024825433263070817154912627197406189623486570916355361879429173296474606706481347554419274455543042476021482958734352670934900492910183019524821568578100730431700791637585615293771627551622234641329438703928694463451760728758509703672380183979732752033804307120560791664385740513316273711412963212231388271984520288300307084616340924464726733409240415536534445690891440482045641965991212017054364834986475622497639233839780984031963459395093768924462456610885346045094293332725552028526590101035738670675422682985440999358320124139459295515756138945480600143771605154492983378583536602317885320387369847335113721663482868562380997654043418952133679264116303470171992349462512243573607105683985620875649077903396043953030073276998709003085103262365409830510327914616640336548493577596677170316201980910368944418332178546648961386909479630491887076071677834577137979123689927797863146798615517113604497572602623007336629427858248965844440213177735827145639047949529785534691591965864357832518597253685986649509342759338618105224441821116454809343454603282527791013145771287354114055840194083700091013644779734499306461630675178384822357893168432365712870035721554353362652674934822208059700693438595911574580865818608726445992823851542978152445078215888466858989988821180781346560324420576452976446193801135805195894998609853499626353386206317934930264034211660170244525105304450167595988587623973900005147258252263885851073059256990817262770252982682338072541490052106265003157446138128303597022003767497417365229627765520820366369082617987796666610727126456787223310796771861861660136094948655529476133980335884643913761743972236480469304238548655203405489454125734308617172033871923507086874852543664085468914915674569067483656029519876676475748952092603778890460742597217982439506767128032202787856927651452113544724958248281148112704717446966688214655815365513247777233503238044088249043216913062434865115532313094186563317614194050231639263972472631566522334552954116708970366505695899309455528497548603609744666967591949622530211556527108486973878873722523412407662333990886705369872383696348525196241360831718915082964390522432969259156681233471168982758833360848684058744319086680692908949089163759813266733728915634408086336680256588181851008307064862740801192291353245988012974345603770364538811288172346956798219028191921618289135071402674157199390249313799372828657021137100159290841163428861454273827413696370077243151702442698320174019919183572625497783901699845850491175117484619964892853614112677461765299575479827300281677573001543985483191158306051484126049961826627124643260192808453310451258900296044809178219165024594313006224401857218607241501433650766491238644998634075683411206898157361429345963361870817386736576401558532066303721587479496813408345142994127512354615146684411619751987565211544153126347349723705332649304566415677915046054620411309242279653059554853967007868426046340669101827709668153628687849839776263351820058020712103640449323352606792538452183971099647630103642885778284414545235686706467605172168925845583301989475466630010678643515419841033554849737181809790487299039476291119546162381611819304192845238734475023945873571424239649132026254966577966680167717766032962006684620634796840806564417091621075765309494548828551808267727676899001056754615136131855237029841947873392588062439834799267364786696354810959017947776549823646683698229634875091086652642533731714511376167100177377332226815069084719051331555579702914059350360247071774209113273395102066007197379988829822237677281598186196004378271124718031056054644745962123112648563389556580789769246280568596160767332758644804091028000585259618457433412098682606471293652370073860118591996508805901395386732987301075326382133917544063465426247496709818228965773677589230419729622075029737939090305847033918382013369326382129629366178917638322415841465718795866580928820361542939350630242914540339872646585339188502682549188744733389545771966874403842410266342533257049963400267878054743739980240435286519790403504729982239269550876973634315576501916189504318271769025701013635633694503175994640138852120978708193470368749981029442384427423161936001767814707140215246200547605537128260266170489316679838463383256938610641958902637761469754050608448146170847630261966921914880664829750197488313835140187764205676283526087119894768132207719848409956655433006207099736746715349469385299162318208751988011858557724678831146415019593686046989649817956180569232568443252962913031454725133643167072897589905192650749032703269196758763500967343748912249506287633080178615264256224147750887007464378937990505857954716704585717872524054638920516292078472003800925272288553019135076162588226706884644687475575730943286337350990442684627376649250950583655865990250216030769005579914417860256075791923524690563423308784061071946859253381065039125728932107026361896139851355679338939672061082271311029881944103974807605605112204752348248036719321887188474792447438469564786396686315935625183915318162182374476855623645049108272864316066487501256384293319380722173271441758058556306729462579783089801222437958291728427383671717245060901161590754041669708616518795671286467131764919314196027322398817685296525663304174190323001918688779021543688458475972986068470381898438749066372967334005913444785433096887329814749024747313075781812930131827986592436344573249799548451737113598295137139343448003687057940290038000665568666420418564286145832425207878793003376762615751136249384509752389854232443674981772004454112662149129737187397868770076698952603364521974431006794910758022748826191641559062897692999160372916319932052309362772274152440863642347326897055149595153723947997377964938519163982601304277130838646824534986763164754321174254167361981237313497019377408682341185379005368055805318535935782172780827081262267146145995945214059963423693367486370347681475976305857298297511590634882457084047800391890704534097086672067473339938869544660948354372223197579245064260237921466517679944503119378013676716204540968158266881245931434859419680229043406780595930599213672581914770582885266227604367341989974395918980220405199590422491378611966024035760945542600313523023341997857190652932942306870223973122053416515953137979120192554027915782160598735596232034112846522552335237999624152556320718601788818621229349750955202245417753793543729108974413074049907123925026852274743797873671413243628175234924116624046773698467296820980141041651489260627087529058437564081535427519495792995734352368538177041728664544278552611748878336903164325629410416392613919185619958623823344326966782737560129574952833099455489874482767691149884418077482529391347574827490561855553145084693601614030625333444300023476795053113475182669575894387311159609842735757342236457590912734312981264384016053326774836664604849547246023803998201190293706848302536068941409342394917406243312296249198162768619625965476920683412648123584225853725302412665193824447783697424603818106916490310126736112099322956478409778973577244495396717231832451027990575983666731995961965656527199379412987229450925456410140483246098946829588519871097408362793931868495798451002432353071140957302800586162479641656961662077740106348669323897309816942812448084530091391427023013617062558912037992868489382953537638222163524627695534642841486314251548676729687989661049948372788310731399819945398912769784134566001834616064673194313786558552631781027355346005804187855037441110883438091272819613800202561270645462976541829262052707761326535707931072815484880575271787176914392144951646552769688748972029552447550637654083343629940555887433510717378643443119452567486560720256447732146208919848231515134878924731750737925884358205649594425652268568335220807844403522577096181286725349720865106740116773937597903517281536109147656513553324244461731503382977407183693515261007653131056604533286110427774910889400198313732840103906145405843928219194092924292132453982894815434426972579444626533123255279959905484720128418697462438110557518475941202933486064306693640956788924807614511689789566243471268915299916362702889196562881546442253556290090973957382853702259332414984854783633454771861397881884674287261721752084508124829664904728783994647467939402424593815596886733896792976714946511319474483241817747612866780765640443812733570732937832033441899958172779292834553375020287915961938665798841965226794949540611768413833098255239860585441448547875067549451372176059380708816767520644384104025455537549757619923373593546284763640972168955350502424443416832389951835648619086011093409275724225963630492198276860451250864640155337852052757984623566669993756375989323507509075039389093323840895263701356859694033425532824430994258789665504397613189720499687008117266415369117416352933648436663043984101295750360274116544733574445719249676545512941264597172256368428092477018589259100862447392954827493225038000270315414622009649882097119578982530725943915842417294858294176270447787997602026989073889450446812781396461504456501409235876826215987916819602219089931644613692951613369250890901306942231608626999070849022357914302140850732204065948378324761244685845691551900082169110798267318640338037357473062888517582134971715027199401624840768832296049435644200049225836731215904259793926558506007498850568573990092264722428183732174028468137604772498439283693152677353586161844584420655647297424410225686495576046606671905489259380690269049654215927066694514755722634868701912858526635599405724284436673168893498779697789148609642409379806978713866265399853122236977850571649267805634723459205971906938483843216917848100288766491313200860574728635715111849869079430638266190540938032386033485437034386603354239314901410459419000506543851759484917709349789998277815278454547115288027096807772560769952720961276171235141944038070910908446645238738924966753841273392911462915289236145650533500394973114376899660099995818218818051811398297928766570679156004174358659543954696301289438795847390571338618368647998175100223751362406014767958802404340450318469779111550884588728206875350352753012966323670316098377284787048659939345678692201237400987331522734396504005085086229170769367383852415479459735756890727408590217141697179102723827648011336611504282921594712887848167808038801123878387905750876520431916649112354575552290716981723780801970011121781117822231829001764484772189963470583676652722010342535906516462153332635392197362368748796718581792110751776796639785694825045460940114653814084921934476480859065643836474364750295840823217743898792450096071834619136531640627216384115800699824439218869870867835273615718183307389454195908458048019035544594981681289316474495856245965734315051758967069672137451491691005530484529885868265525425747267217286881356393826374905360639908848053495369620435562695741357609545621839020055667647467811098671128467554671216584376365176916859203431660010539616836219168009417352934416611571245874139525147375947601379899797535667072693787891340156675502165240735146235015374982907013547066038363263503671228823029134404443306081108765186570925090302165194347485219926961044167385435013273098634486940650698035789209770959087988602450406101376653894307935458193971045502499429221675698825039106734824879420179962655865948152145371655195958682052959558629756360496401696657526430003906596063404384841833303082840741824524379111254343495237204709788368597400593168372332317362286244900740298804394127294641321797587191054324724150734222035920839616748159242763910709583014499577572388538323241436483530345246375158099891968201167967639666034181518023432766143579992359660112484476324444371904298404571540929886619348499789842551431113180393092234978891033517765444488634027311650023422639249940131964157594448896374832386290849170731272336302939121748288686118980499891862368073364975161684414659439572372877675667369577459290591853125197515591675379450540530435503572278079127665001509666391819447995361175274029384235434907213263707339508421887646661550507739313543314012670348870571933213122443153626098794099667757519380580680089296693965378632103191107728327680892843752802339054559293687609990988203292392269260863990355206362862266609247796150282613574277193170300244288002176615250236612984765329772915423851814731120423341951630003921471311164673096779548154698712177751227492753959302326408361087031192077939691286189487766080682693657412760102920204388498282147195762007970871122914840799752109146911954744280183623377024791906553878640453958461571845870357410231866445525092492259274505012926328687965378521554147459631742248321875380077557143745886187874737901913179774379349232890718947618120847601962426705894721111486157933503882045780910760815349255555699650752305053409800814690408412162328982895326564794128926644965081084462310326559046734424863921550833282924234481423122970447510460860947572906292624160915247794917283301589218839538997248376236040873584710886753255938873380917540460041321376134502052357215635767352715444627489860774924659630202221768126414285790319985549381486002025087260385896223538711443823210803100098520041202286167810570368830824881816558851157531899700034639790525675782813955304694549775805445065449685338374826515152890463963006941851445017469663747085462352469535209421682219361114240512393974077631350736576006017068622039048675047780011429123080295054286481782430415479007049348621085251668052106485890459862771411918578887868201046401139569474335699263359461260418239990743093831883114722071410869801083015277703595460829162669710089558238450708526753391406359751001494362224658720627072142201400871792416935897339666167050618384776786283398882002645160901703700512903896867100994736926299397087936095479990704446580310795155603561554253012058996904167945039621733796975777054373894050645909208460079220471080000353233100103036095719225446674891505019901217466459775865445078259229150523540704438426941421943489663138051115685357939906105309026187510524239660178191154793224091258885830844728270313231280858750307138663241578072344237192413284448365071187687880053215080554390314712410053186903887141098788495165938027819604086624180867460204239276513486128443108983359584308288220530559172873802431151652214319290009850969967346335047419764658051928754740232249195539242303990341406111646535895378814574505361517740671711326788097224391927212403448131704587522607529483418826104106084625448233612478938327707044710437129896091212185612867787087499110498198670435057671549178954427674579686642618760460877830673719741274150728732471043879249880457031009898492659158769750630197322050338987380065065928223390191077339211132571565433835307576892266114890264620927152745900096183442981925219392030752966775904902803206668853252941672644456475708198549249629265237651665221747755534280137121397056878045677974447125740561495353864078983725227885376805663474433672680372946637040096474258612291689224941906753864254587058055538063440011970601783869461296505798536143972907990307683795395485881680137975427019008735654051114388371201534402506312845795684542629989676302293352464786253446971000692087855905876072704299095239471742576969201558837951020917011919667567651524722919766984600730662556650077921081795482420459543066205465924017259539443989038110836191537165092636642773551847928125643600616677807273866610714135920022059906595791276360846533175663517803362287791985193016783371227375552742394614546305568806461639798230915955383750783352739124720019379958420705786367020348570825378842389427973583572107351836604208009885012470656534550097075100925180874936391997928573575313573078730188028552881170444779248448179140118159967961639088114297642901352997789561617294839027200149566332610813518112868026804336438451007387368181083457864768931015971264237162384336068258520590105509851994393197538145179036223682907009983562748180351411646300495274277122068739747474253359260765086440050691201958894034395786353589566058522733800735959237095945084855668147943817237318906847686793861715200335180282979753382802163245692515288491626747175927875241461195844315051014226247175607785250994924261293557092441049085625602513379930179351862055924979224351648244925789859754864805105771627987689436543663299067227710227706267171837040124991277369365078125679368350813000708785068806668226448941164125886388512667808804178107981340631596490825978775585483534764274390389795712990924577841875485635818372476407200152491801667075260160480777435995167514901652851199046450367626582530973675172414000900359918834610833862911826732524767238960006525886446732942674159302273057204622687487392227753634474795014530602853408581731248928398566509460837381933481907814193728548157706390956826500873070192008399435510537817870340628884262220645077542106631835003182450499444101689167940858898288318662112331381968336503349450652267764195932081299944661273235088677806181719338914546619997182149053906753296184235459198583173556589486427417255783138530732496066200180035501086442380012263083933205427852862384575455478560502408914821406391633982182248456800257010976776786886127603240414480946595088664060738825800295299415899464326089630163100598010712132502115636726677481802377234136437365470082781822669190268632890854630675500293090482437819364919836170922789750305199515963135094705680856096884395778474197787444389278045754287987824771852970097385841136517854366805844779185096379402027700881980335703598116780393778807553186533192108124558303180320766757382688809150197025400405679151043233513823916343884452104944097366206735825815060555854659164124964530029205316332263208770371317236807086203464558453298738185683882124234725779126863715458965230352065071815698731284328674525467179654690803761373188656982592999620903233917020823807354082263260542149571108910791905845369097377247827602315876308631619988737173117605420690089643396568338700904580010892181254474066259005357829405227780904484499373818297007090722688504921135478268672898578064191098342619582523898493185075827652182209441233550928855727063432005118437264044883626192074061942946449463563814722083930207146253766402452099466628884722968970431403589042326901540829050385147145127326246575409415142073553051142154555269564666173920340790213048175135456651274135071994913397124992598586750190837665868994096601029945688218335566424477755747723976476669464478012507254358903536004872790434833883933826169898685709122665119762118499699405573311592727429563662456728280362541281731692025909545554668223125057136175190397155467922281275670027942630950710953906627242627146356999187216132599218496108404849904060569738763285023939342820296739997336720089277665181732786014352079318570032056487304685225674435333714756818132859630042359096537032692151150058966941788370635065955761423653466698929870635575054803034482188921498438065294844482527078823412105624989894709883133790549545382304048509470157145366881181782749092767589991008659254326947209489474785047889228267059324855625501773056642905082476412595766488250051201624269023302993934703392632865445600840518691195740058469224622965570535461848052246760615319403063101144032138650253479374818747908844975974977210601936131138727391670728472550804178034577041475832826958074691760256080353585178089735632672741137538217976359048305071904392672169134942307842192361070239244046608435805493953958595359136331718006419013338544829572464597944994322274060750351629722980692343064777029982138842960561653693809820328572245586709164193893387060632118774842905817229505557361316136453926709593221891325278405983086310367995766727166040693222236158159009148073249843545296451202527448161149453259209418396360460673001603918917155016784184057155139612235186871288688517858054085537335952836493214338593383341472113657038065324217852907557468990777581308818789672978512282549077056501602079472116463810611766918277094857045534982044159699439998361314179927311205654765500160464740443167073351656774135291097855657644640936626751768910089409197783269607410338339878024827121571379928308756884127628914988530555809788771255270086370237032664970289833763790255754731834827622181090579207298778794777437766477052887489044029316866766193731943697206458156050392789627397605047142258365244728030469858176697164069259240577960116808604236359406309768428357147569491279437065172495773380001366263209541651551914175301562989469177657346261298273375699225719027845475034018163246686123805278840438579625788528521005047130237235968802869754090007567809010043924875890866471423170577025351065518172131782779207641316311664469493328483976994087991334183611974408021857815533099102956097191604313970031049677301245620788189229711519023491647858213244008546684353107076273093255770795721801529059853812397589694529506755486880144017094352785887644374011672631981128734892399237533315215396011973370201120181828742544745299125543101162817337585017952478767385637596104890991394944325986340409531467746252712108510808654601609110845700877302001637677111770770970497830663185558725666630119791665392885346546705342816747031798513033598711838196615941338160022265722593052634069481566745765317512743034795960226129527986266026362355651727208257735003247711237316824883713116554664802395571693326086167749531379454910636745340428070870183935065021928447859358806781762086181644108852573592444514505793309978267034042523700437134214069316275126525131466393545138600344726444045145721615477259523442937958401318999802488307554336610095018419898051769975222300565344067626819863710275999963722417939064887261062872172092937821926012000628346035368248419273724899597165498598948652623848017377866270093503365827212859537155321658142502664190083591787196155071351558211904329740349572892378509657930954554165938312922194042483838322343539525889783361472000524361283016854465376833386624293453334875604305313674974548628398118291219886311529966819895530274635928561851969400072552151795099490463227328878119666449754537589389538112035210554932679832999582365017317348048794494731368813053250997953188089039217658116245605304979246424803514487500153154897554373374433920147362007306900235554850128076610239046324742764584312758485979516385507441980183111646036554544482157026476749694395054084952060487270130431528128426345466594014471191733475487085611078610987863905772156654345803294741202805697910921291204886259883168269339918412522117966014372112410184454177181904807112221600016840497334210764654674233303802009409435112090204700162439996615687223749402719319725714647192432005485727067834929319662552232382847281489468124997101869486151813768582851340898438717236420180984246852526058830310132873258497037133025369033691556121023487389164383481211506945783549357728804298905667803746471700129320465209940075377077789020327247082091318585704824817092130978918082755949462086506214491973507947035141688300188361099147813911006498289491924471499579461056756299391650772151505767114606552215198466699932856057532989168617064546962422749560680825634399693117157404636317404538385110965316249979740537124762994482788443953592254001737796370176041513775062412238996592373277442269417261375677836769221020858858274017284179616865546028356903045004340644674182068182682223872559735754101210667075120246227197414451068474896432766701677781601266148233374540766687395509618702090077874715428604963823024583260566743279464108830505517643421061651558441528961536695110437935766381805143643300271583430369840955279515249036574861354341624323205986162208663284295420284629363080547325721914028239751574552307286716655700336402309945326247539441781705751187975533841020968232108709349592958144641165357205019662874154975444598877977945521199195201261800406051948963590507129624621975264930822372449370000959078532183013618856718714093384908054955487183634233669888291436422752288367614744133608680913710624582240334680790787902169623472570957197713999891919571768642068739353515290212325899296059831050144174008133145460123292443921105635762754894255621914265396843580144864445329820352693197196698402527438450132445778700684216470586034224973894944867618882206420729139920593079185738091600066388804224508964777333279028109502488428940714671959666372136721846329878660958242757880588823742619057721256011311393874577814090883343716571108389411641052678070610856373492414213867347120576574714217887176030545701492739876501343744518178121161416768373677979415281905468752690319832004010657903806318239956465185800751170180610438061411800670769682330275174243819199018315220372612520789005737237152719052057126558029653201402271686364533552641608693384025854800679331853686980531216106620282998024145373915864785434237668583992197534026565788336357043278713326409118958827837685399167692561143747569458516413044403361049539164809418147813429516961726606593781830220236550845249893760110189626488208762011273950970411114624347926796924338996147849046444534997957981638738526336515266809625926269132429955967623893820919458229028273037502147119825777031599060980533823485730530282079894131770911698344881736771329576346257895672200574970782541330239268974030197347635781249531617371669472272524947025206600826998653339159794262870906204074600139417091038314063997049029458570220850303671301099780773035782457713100580856707781098867358940898641566636125884955612666474919472248441595031292718047888133820082064820245941928780458900342600107177209951659657124553860357365716617647742282924818219311235880716854599239481164867375622494964904501941879590252773689575963720193560571876225756132815939658361370526562485671057445301904754654610591002406748820425479329481859778570600681813271014722463041897513264796026425052148778151545648128246927976073848958124602640704837990280210069796761893404176908847859919275875967715465075437291348668388388273050266007452466416709310616137256969912852637255844030796342482859257780662004822064156133943382896537174813901713652042469440147390735277286408491640954991217971254627049403889376625370906877737527740715589590904777074417803626969285821360785433962061553085821696400922456116608275661630513253735868947287163467703279286098686202633813690081469647239893133488070589701473932118437027788546763577873945960728789975276185159671873705026552862832979543380962462476572653773044183754346411018422558178051920944534495582296665549118494959329618492912393365395367497656690043022782308109508921324457784587251887005698600806220521178809692810659383953301859248802664022086244604125658903267685326948997209036676934695926502412315300319548382999665968650732951187609859776057632822446257824692371858381016531662105927903231180009259282608947475898831913187495315872335817665635585706831065362997422496947972897498533895884528012719520082153566943917748758402752711083782463574210066304031701444795180040022839676393159719686882010566936631904953704577946527944354319951625371858405987996247279846538870317304074716150921948695192502360896357889149716149480782170705819752821556906803672525004186061283275629229201003130552598399919416448544963282029760167044130298941686803666957455236763364405525233874890679427125971378116574691585747654802125205154255014294630319838840578433115749470614568567772367027615089781284588800709848340578085768716571352884724263001425975210049757441515783549832697852458405665980356993902983213255110596568913861343263286208824139946268174407517987451252043027976782643890388088372198450845311705820661480193137552084165972716780496831689410302696760280837171054267977526335830953679508465526237667854706552565984540713712752125042143687343554790606615875534562209072133891067175882846739373078714992336713657247010781625258027870761790386105598134569516935316984879988321681364616459875283447150127320135777965685526244270277055500080250446482436332274526306142553125920273472247202187777198747029333283758866619204536652763257804196737698780487396742235136400535785054031708662033825663092550144928011632617654827274417379818178606464878514046303822770523414239616364531993145621780355304870111873387963836684510757233428379373487225655616708928972407260262502587641702083186469674259796143077460173301443271905013664099798051893745411077427290590041105067711083516521123889162776618441313948906491686985869101280693222704251747126570081137178197921353367533702916032901957587671890441135503668076013243518610313448992310235591114048456942991407655516505620867291402019135846759637318298717273593937058042579207138250383011251989056641994125377873130596201753526740434648221319484867340617132977791070014403767045777780300573911348349883887488795740076724468265607496957205582387389881791121759144138569042838091390214086328619630372622715424758986325016236437990675795239266381077117353253548177935630643454133639927995585663395990106437557119551968635207373862866473891766930764506807951646371995806747712777805130052521230308236186173649124870913382484230217873592658063369705122347020016155556918649189334560674700813001897981895136011674692343741117788307971802714399555726030379233665636769084759891972614918881672088957273706976117243363060756650247207770601035586010444704779099187487988488728288337786339171266943005898319551908656649710601931239051871232000002583473100456282212126628666660331645977221393598147445831606392767543229525861514423703546141269179760202772220343504718160619604770390416974306729531399869896893754015187671509524980205917950232168966781448814505261782167429178638723333166079842965038049091422001761301480248534219143144016408869774627254660615025534617912106823536935129092111350778599644096356970466047241446432291434310866631508212450525945039569951593638729992211057297012888152622439133177052649112029011194756319334397802648916768302530930456644227487864736817067938612218973583607485733692186677675003955781196207769031320700333829993352339177716276099674478171069509327043200797822326743744206870560541569686224025228545883340073572186765648138279697716268004078308775333664005061641435010436181450134938276870077477486934080119010687799999088175125159485660702875982964683850037416822487734150870426512563584407690757276688336365346893282188295371760609859610437178195634939444990761067163565470043954396992558053056710385384529120920062189235377556647106775549722316771746557153561905965598610409370342466593831765383949190912399340351480743033937853202493250141813489891177701518063591779782280328721549739714415749587002207684907009127164161939337308543889050824497914999299692700630788649852003444641348927155300622761949891250287421433348493020902999108773255997739607567293875086471031496012627551960204684420048573476361033883730767595593428226878115308243200822861748113546891460930644762248592596093598808002867023033996825399864717881163115832652103427065163773580604734029589979638648922153340182839889793226739048783196570843225045971948299872772983863252697572559345024970637876950484889817851044042194589998116967343207775245427030622971909622433212745436311847797554006743955856647158877099759109880208561369623338938852835831635437616428013688106521138117904583881572856258665226796420905174834815046561466067207114396987198769009591743942722377546404036316104619559734069262846192789349653541320760176498050553576492057054710034748700153768699431319205647960561396003991889946538361454299913577063245022705305786470299276611640479195853124852344277505921703255985630420244744048293831698516271520978767581208444166911024245578183164435435088180823997562605211324371924140184693770066531117148867086213909525399370668025973085433049135200487268766916673294624892827656600531947869904609648396711487117338726043494328180194000583414526224982522489470845769336365209253666796639035992777062326742930846163785295757365277711245234297485745698029931613684019878505877720809201425743732060588638255762990076250769441496292394510027705326940110183655419677438681563341140474306579693111792932111431249359725632760277629262315259090915409981490615755380817696826212482935597922936728471975107943919803240164123739759405069611891130945586159565883066498807150454596777100816076957333060008601851029706357672648984891568540838735466604056144296691610386829848573001856705117825367020098538532641161322529734810560551536409417132023438052186803834357866177650969094804231256516812560162530501101758626385972997729678015237105137201149571093840647309363930852677005778520942121635665256055460732223840022943493727425068194792803219708269903075505884365575707053880585729806662949604356942220441306600999421797940145077962690741439098261335073693018256689642403738984958158705621250365843762212657029604112063589165503869433903683505754932845680311582755987681446889516201127223033135729607817596798065133917099660738098982352145233890031830879956974741799444837083733984343298200124367961250320133606228755652205146989161820968287734384000412951614744358699842332144508103827474747328782683503600183814972448808510593485695391018784529382666470248673080358479020246811451719733656817876943446155705896817623460896049009430780789260006739638640564704375555825980373018591491181455923562148718697624843122670304090327027268906635535153353871183926069158147171000432643588273301568342177764863940465379431728347509005692450129218647950492370900968285960202282885554879880250180753321689042843526436222964387075477684079891203356063352532105839500650463681304465764659087214121305433125870541254538394860826185263001405799273124853136175357679991499689660482008652594698449582508558779249171846122219510307747334244644463268889711071900030119777058950815508702407662764750248286380166545710922877776625297262789883101200485658714217103471559875814277564411544550807011430064778584787677647487140335011943126297963325054127784314534285716237548318628376596381405562067764618483654597183101500580068528994516930204761197582467989907848423931359329028915677943199789494338056386381959610880475689427400524783774089840036778889119521844815734045553112054827951038778705311023049297163664914993802329998631171413183931502601181581559986370721764879617389317994020920120428353300262640734039843472983455829740020356346803670784962107556285576708011049550031250201894283797404349774958113648780006346762995361221838023054473623624305100082321483671960870856337240427543810887747900906682253077618879227268016936745727733871723659113814273836369391858731785494588077151259055892518128186771823339410861174314526142424917096886197359847293315874984379186300659665527291660943147601100678561799368455286908984350827071931686289524194116076321942702993012837862052810172411717271437247306103119511718737088469982410118443079307618675487351396846606398722300852438731208416878733261798033442928661386451933990748270539809810137903754639589009824917602467837135483893679472710684818584326349690831274490223768994665516977390635087340156114415558878511367735999281453139850463735201050688677403227021195458721540650345089218532857409697362947343370372042985779389325656103634142242122178629684848113493940449312453629497056883041189860681562236647702982777967748231691074804671598133627684859806198960309722010595839300939401314527089797199652035864367086960740432410561999767494288075952286643155013390741632680391465623398938217803911224651733553354389207821099620343623911492346818094973615653827595557207788402492328976847415718888655205878078725440557060376998223665435647759338965564835995937731006489624054682353956739321834841143321898314637791851595826205871527106309153934714479050145358246958091200398579045433411902759614672211650485046251681173132451307244949808555271559175366397094191084549119735951721413812483507497874745881119096454709620742202049884971522428301277598488434134341577159553400560646715279160450469769132199479409739046477991024322500600426072092972586441323032432559947423738267372248613942409920918620486328964288748267826761896235004427353171110858902160056967778135099765404497742796245987746036567051837349978453588549960086331232168001986149004031036227292479427771206492574986892709591532771923563996429238026732145237446372830706245727452703819202047135686347508856894608552986708105984115227567978508413345071053123340658522142922073993349004870270123553722659588084673538864827684916985383076791308169919035051500717198324737474858156664724892360975835294611003456533975658939169741142646987378491178989613316929849121986373932724180471838614270801177875132331948981553250608744574482596634885119032614845697082105306610001162199492091159139456029627901379633488807370441134960248982451807047604068640913887735019890930270943785069145151006913757702439819042448757508915444528403535133706514236919954186609829428998565006346796137423507010094605899706744591745690570713145330556536518302473848514370213371897267171082041637298656703816794880170338473931612882946838753165423989136934835144109041140700938152707389700178778944395326888717862084523386766758426141026835340536004854124287734679805341205811679133470586974386932975413347330105788197974019282306059966216009695451862837960465059876797361724888021172316011723963862567429893280305498230585395818432806330761026479096456053676370659531703364140749377777884623356476291660575491936558651932815407328950292954480947683811824957049211421736409955174543403133013855864062102862523112773481138409240930407253547132463634194506775654997948590779301488630357381847001824133539030719777118512036306191445584787536123070246786160707980324753498484060997641791759879662513845717770932461960482319224210774368577263791110529594609321300417413980429932925655944373074635648667637857999632139666109285443655988931252540768238901206302300967997627938211586208707363628212947095552138725078299098536651653935718058353893043610642540340608615182070344915961906336860028973604844592029144555945093314282350465141817049744232433662424593478108283690224760439778463858765168255139555073391705652251632064171104182346359365360049463004864102509446817336181578547479447468599437612530875809335870159546461391884379103253832578299493973479578212718647029228476680787043117088757691866331524087714499776082446824571408876557950536799276504251432471258890949157367352766306879812974154547842658530653474264478745757876567541697138708971560494742455289121795989102915637472789535744945452889234100654760181512856283922011356279828574019284981964020747478878450705370907724838067259022223988831541302171437881766494031861337683351511464101776931711956203875166969010752419223112696141263379335283888017317254963735977519175636884955290867364152480530536682310203132992024726504975595921820656328169129355222797215122617989853563657440498332916606243497707344342106418740738577149807980518643613395764565278358879625277172659159046349537600473134253490571555653016297847945988938513439917033864659378283146961913407461709701489035432227514671853038021776894336882780936344520722453998544114912168412750031902772815436644540328548821894321568044323258958450732851885292741044116167356034233249456149864407727573184239609301699533700015842418013039961015393399015966936229735028990725546061371480611803831615273963798342412910863578603533167756668038374071064579943447130527656576533366910353410018844869589115503562535680396063161586801318013646714827409843684329044071132524589253962633398252126226862729494795551199233840093658557316061933150537106744817483954463128969932853776832479267597857649526991641710205231608511313595738920492414877614708851462173065741366753260923364251827626625745143308624843315403539051751000352765686659024620122665872276593134511691503047760449358252298472966743727951092233217898005214164897297113155299613665967400939928998471584986217323437976115996703984145448921403582210296669756955223966268921369969279649433023972842509643167772779459354659223228240717873319814704709176100080282820828350957345838498145775492543645111384138494376143770226544828984503607520419073349786772363672758514978313873519553470578656650490933492593944789078962050710470278669620554923366559371487228278123309085367351624694039863870241829956340965606594867537654757845923251060990397169891494628564313206896330826091563440955095507653154782798988256069229145911315119562004494872437618177783997230111140733662997347460991585514606346277446419821002801494752220575525919298469497585105674378099360653822915247278384919646295207531509908465914068834328440332075437212514913902974907801438408165258377506100880826159217060195307734662453263268051663390393826316598545276067803111290197334408224801847633068679168767290975639963217477030697248336303092745574141576922073987086969951747919340776749826303844104386262718551699802756127215941851847157228034279762704835706413638057194054383569963765028648276662416969132266712624552549261730439100055823061696013486476956583822577376446754132233818157058742680598272215764853683915628366429813994013703515810946681506780576319754289861843168326217943733001396132901038744290757627749037011094536452720119817079952169680640283177404946683121284890960696229504142379632553317432311651733956164172713560316667239371577541224303440388525082510921135987978999550858980415347516556299852946914102613276505900206507642941914629516424079646689544238712864367766984195408843679644121559680738779513165108403159483814760122258706470781130285205495069021757762248628676925406003165560011057252243590570157157892839657089028810306300881296838380340782719763353997860022229008747183300034773966726205714867403912303361765441917727059041249528936267607274597174847093353713873658196064074632302706028778547076067981254357153151740662247941565396894082542858788306974563859694099122204468271026565927087588586701375472599556731722988763081420590032986082137444722585940701897833810626542343831226180627290885424334318340296803911195212677369544472251402346167941223993046724233548697000612589077424218214409277398116380508527362968074792531569656297708513119771925186250831784872144948657106971531122433892488607364543225863739548154635010105989113940933623552241677354024360752040236490242008482477510991515992569602140242540243377319984092124282752608780503209673878802346413437851020920122358725822732417541257351104846991523253156327922500739550874263400587741590013388050353124307565170557235977974500473535614986054177691125930949943619367369563233276914436267622289906838081526899794751838512822047376443524984696078532906151101747496346764518676954470255624873943729398830486138984724990477295930820506253252597553374617049958244887064166907704731545331254974250197870129593598542528400107824286943383582040034093631301695103894882921146964693574429294714014278621761988766932710464072936350182946772421247030479596963810273482037959208042011261944667621920706395847106431301414804267241894194837953448996493631787941254896225466205667711989684916876811145977251750296319933264652492789302088570881945758612259319593054328133716563412721816836901609460971202090427458272893315768507295269444344171363726502407422056825371417176121133612686843329292796621637225697115382804792033557754158793806129332621570276495753490581385510462761996096456498114051397593482977030363489287631543256820993595910200574197474842798377353924787234565080466267424204130919489462753087019129632464558920502013057604040071532631355520251784969684658407764647226574182274168545753456259709449870013759475622792800810051755812758906892867649708657758209668712483502951241412774060229135080605820833656663099079071903755899982782493129272282730104388708735500631763311534237763004893265975518192826776934900302890573184686112408203423910437460901235515133546667781854266138594600852708443884142743135681520952873808952553211139111585658314913305377420671982509936290186746884819857584055847553581924383342789802458616527543313229199205121560549361249544679752931891640848063182523833971985286818470793648129498426058567280458832257105071573345726965950556858948024577620054540459591593759634861729324201630877346693855205499316672980533572123827830423273145369989818188377157739345528122401841255168009865650115552149606037626833749322963942398916826231753878954233949061057033798676961128653083319173802163833918007766961932529630875685654683775587556473481872307565438726729796984146031196184823004885952161635739139121306525207549608255051209114271120185184781277481284636387264274256493825463830939875510168592509509375997058482336372845936706068327015137998329145792025947159430533930110832283190765356291897786880956390057971482038834349409245533377791883307681135317526480298250595522634010379364663382183072441086249512625582823507171764912694197533516016059136659730667249839852745925468091682739082843963026610399322704553692891072132983846549496846139339368977344792850513337773415656688800640950470351074172617729326339812246703584233234730284862506432962823490140744569445201172866987024305839008554276371509586283665325780211666999814993868713594320787013508413419840114789405313758728035515049487582986731947434597544924780641960349738108053290684666794264177234712001996728437231396042356011644674482850594902300178503031908671308540350579293594476576496715002091154258883630581282303672131073965074462023257445752012159500138846641111447044849407122010096032620706254252309001857094447113597860815348098791917291618215171495345784148616943763533515018753341791144036256823868636541308705700657607441004295936636310599306670590016571616979439638367646398815426070861747409052103207721011437322353470882139095343753050589602530461000031325246051550195622454467045873369935795193976915385683012553462991617201393820754914186143933923093564245123927244187664947839366637075873219604488119391615183123508440939623647716592014173055853966077636037946087841984393233542457723400257584811102706012447391183253005001838806754023467518601484894819126549477567582128211430159359097868533999280773650222713219041330949846604856594466562731890808606035409295800855314569399211208883055440684893974503395229139609610460832674151398753172295418664653640275591789216494079119322563451993090607024594606554342256204668603056890082355942369148096701814111384073605772214763934027317697855716184365535105229746596220636652868569315611375564099236549553922958877543597929737187728781170726684035037721535513214443888166038968110814372081060736315021225206016085616250765544998898371448303247416270910506981315237733161009608907007690693407267427038675627281719678465834008867835276334604713016990708759113687025597005497079754886726972818667970230115480837340340438714078320835986142999187246103861415821406463971476131484403328221559305003629875567377907184294993786576288846628353638904439989899173445674964689377916143269154506974718526557016864060889825627161750455003196005430634899015924088953863470243956628114799158280080881954600005215871967964854937870777592882022248622728717494505309586246810521550964296452627805725816331426327376115499087926130191313099626884746979985383937157512327534231810668228622466848636019482849653804172396650620016695273362178264108562599531974859138201647561401147998200130401339387914390509664257323008821385303946005120547842861166438395195159919178309486400309253432511678693913799439655100780425761487455894377273075607447471405483946484547790752528758236810777107189208858254363454801514603376043823032808050095682544491885789226276046873338744834651506714167260264548710155378915889254664545241493048920559457621136663843678417964714466170003904335111569228210857333675168011512679853216177887309410672635401902624010033748932651069970189123384042992374335435960823263750932346334136135342822839171359258878542751125659577994034239426363295559938069689731521031893285159166312836466805821228734240895064305226201443822627124626871014178412462477305208136385755722890131033448900293281680796526470185866960488899961938108486520100021780088115335970855093585957992414711083079876625125769496338082862011069429389078006312718631338735511378615434922074188207562341842345744820314912690265477562159384764383828105034430899326328649477531210894528205772843813353174326048901219026155040272207853665737586471133024225472065553900628896463513066888736824321831534091735461090540716102365456784435692184112440199319628209677614964572758182249115383884020042557044017581015799952101955694352790156574658852432950812686811833023412962528379517141910999850133893099087384150081684143390209034811638284451937353912811405093521123865038684672574048141393243591794252677318140025350631613426508570332899396485285669324295436953064446540391877804649298498190318210910424740217325422551600878861965087928328231995527962966884502373992164094339509868784658396080515306549144633300898894520595271471664658948279621197333333445235852266696678586387583040544336145130827380127145232972132504434761384585293188891076218246457436393580799051913750928691220005382338079918268545187557217494608980718054022388617423920633507878891071569069305606769098850544221226206737568669525118839787058669306418072467974902161268246444231953022539434870991510420448350576414392830186094143198234719695189206791157305623616639431191612110316583168980635115493300069468595510023537228232708035707111027025620533854357181717935130352483578027215673096018606045640392443860792217307871342620661853266265296696129279682394279798167441506105686366785845526078987449546840210886936450755183695734081684959664554006358076678071173237160919741089138376278144400693931175749896094680599702529468397545449278140695092400098852828406322346160351519182184974433144199827368929083385241335550962575886863062623753612958984253604066131061539196052955816618498934528347190424473565691571265457117801290497957162402450926311870675035818455360351924396099988048540580518202737809735966159808236813414796680503492276052185410921046070395229548808131266878041220750497385102802138166353479052031327167762283294153064362981350338206367482529463107637425567566296730291836004912219148819236133011301805686127549807273835153824429655721977375383136741083073135584954007147348121663855083508931909784307706880888192973009545614328114572551152616126480907168072797701668150103739179483923014122996653583727005599324949320043408999479123959704547746400661156986382534739662545161256958649831931591545801408806126096717393306760639802326580032198111432350046915953552767346451260728120673497522650220785217876028919718077286648223086725246961369989067378412413498645251386381913686710181215335302102877011126743974284276972356178914196175721936659006875673740629526474943791220899238128048802407529822912869754372916075539473577813879278672262275866502034160490275495424310055523347063454432575390737751869120556939842079785916188672007767315972539991953567396998111619261311858591937446973188440464675187364982947634405801490246814193883308897286125846268244201522635236804181764005453638148974882241153097782787394433982719054239511324738606027881047360853841121297731378783202315874881261574224957765280128730993583268525807009259376910076171438020646654006189367099891400091216457793313959501702487513027280750137278856554354688934926164246878895020501954133971993792828971247975844119229475473270576171064123563939915257463678976371605022803090944879576179047489810537148193168176542704644750275000434018380065070122205182139284979328965690130149002944793559657447740925464214737685587550066416436228598658539787384627481651311224096454293092188778317009839777027684230046375307142165363466836450181004782591039289455612671751826200196064479546526724176568061974755756518687385637969020144438037681123419756189364947111871990766626538361692268146843652127235770276889135959514111636687946243399542355443238427144860141197970168351708104549274235761930179636555292567372057653016224867826906068584734400621956311920241175364383003646325881337034405821932248627456753086966113852696094434928809774997709442350224946104935883513887790535762158739060462803488805618665878817397367733974927350979605987748655422944450370015737686089268134270551316459059399330906879862109993130929407427083692127778305444476317143113131022913290058195987154639305515204596858061182932278039809442938725206236942762356729966088920866982220200959094438761293235279170507329528616206898676541009177785855734199677975291049236063177744556404443876631267881243575958057497109373486975700201777257251414171175857308733934458993302057096279224780742209469029014358964307917778873870039913255663373524751489098515749014368420815136930143425464771892405595247585905002695627880226942727003582836109646142321415560309559844780265694527670142218941630891820001003990405188003378262180136753389412114034876147490505956089649649704395949575080966993007353870113971771324620731615602071463167895048845132600878033473184909076924791344580452194795508030459961350227961182990697185700516140487424199995840970194742005541370334610079885305821742545413221660430911748146880545413762748180716885648694335087697186436360252167507118735037824192584201309565730582411505538826226892762549675623169119255305554456962806848826128499322133377834524308523351687653405056096709653659189942847846152926963212094564621567810968411584258994561766388965850804608376179599147852679986704782652145358970039969458290129590776862347482657070978968610914225500428565615168366885618124897399674866604985162036258113125595619293743450649616711017188920204362598593420898655925979992679729089350174759101515082654632815876605742895000634137342512900416261612589598348376206668303920690333106789259490323568052605373954998796184538603181358080230223884265277721721112066916725717354691994739246942277401843240877434436527959000614688918250650628150460825068026631546754803686277491042749963924238608702083566062138916138915879954509585027707965553150641087396986779720913762773255613093855463458493951183051078501424999195211216611441002701372854663785858344858217155724370286862615288338055564992750246882726283770570896948959092275573675854789073733638186630865513311888527572655082420815831769209028162853451995013902235428454854487707701110825621791419235326867012384754517707507344200612871478496112436235926386794663760076524124087400846121535016368316824064841957035132999130374163955369880475215407485364117638098477247210992123627930209823569126340536671869846157970814162282709070126302599014475080322692882790142841269952511998559204082905312061112295394432340475174152842990135746826049716020052749386047647065552591466975424816793112262175787860456327144032609993533557388682233602439657826474613086598710593210195813655347621605177635017799587062248717463555939663155060823528605296932998568258335624782529787907288471092124511639375465611167989547746115354311820181368375486005057188296903635880066255098172546867499183305080801249249892490772524381737569871636038222350028443565164362487686506294866015210417931390989963005828838419147911165402333116021412796341953955834303882873506279485540045526464967321730193268197060886972443745593781319073154706201175699071466438145216345348556760457203120736289379865527835235321852168766889378382554332734041795647445625294379261603938550086366845452419916093817712624000959116362170011823390131492170937171615939218312243588842290346293826561887475429649428838774263636838114081327802358625005041610715049555595307907915009770329518380355516644648945117800786745612850480537368543808810422539523647783952225742808987975475130766377118399202402382929393686604396879472607469555142628222728119806289525808733324378210401393308001141664901736157857504522344669819799425418881149190536429071797125326434448101919425190360017097874829152501218419464883946658888283646384961044690579530439877619918142213129887190586342748666667024855211300114985326707665859019886391386408824672164037528351106959236352332800716556042206444414101622699346599188488635393490096048365274408466320598245645579641402573605785110696220474931621443777521092372071562720993586982227329638278017537706233108483494884987917808720776815635111370712960772577846349371190103586231212713656991635042501126807982234515526763092835840309257521442389072458599120624291015248615698439418093767593074112519456169054555244983829329708381050078598990901856290165725563107696239351198574325968264763063825510745779722087086684089571152294580352226240027215414905647651761074236231156223335611442588056187887174938930358430708403656584352723516596441889583776531463798371844492174364421545367123095263412520415487897100858717706925038910865389212407132438384072002975625463027513686964459323336562463781640477631227746610930266692999820364231478527912122273043824817455791788726659595835711058737680308754281976829407447499302415521162053410230300781015066311127390887476446152234799415819884495944281530611023711688730906238851316294354820689407299819025841352398694529331837598364894238687087929160331098369917371664682737678762309759372500609486699187193011741214889150161082720446667464896591502266351566720968618502117360286931086488771916010494309321107000407513381725436970383460695487613075570600913617064991422773009375031695202016976540277337811359080597345426369672416542441324873401839093221824268714078389407480063118032590637902729704198723690058139712925892428922764976768449220723889826135327597205308123014683504805897664889059430382743632314018530050889728491473277992204380237592436861353751696362320469890422798519888205328336900306522740628709946511251357218700462707512202904876334803560920242809545875839150345764106418310067712215236524590277963797471984546864909318864297082710555177215102455047441800015182020947289932606522363800372312739732990484552781036133298594495451270843343125038928812290622439416635364629910511476717055381604248420346698595900325514429979883876857926666210512455113410367261463012617824509198238822832276221204409304625551408185469842036031853670971129364695706621938525011426994037616297221796665652738825635120191243275779084676102716507056630397245960308631168101898880436901796038244412360417460179128006161493841355565284271135357483983901427307178542155712021129058697795105180717498896192240926672702157063993768850323226588697793842328443044579937741282750389749950977241739292374258799356084829611083164803112442681068703950830185730399557868678100712248957433481313253266732260884017695212337373937447779217878177403059795555300011546728103613827446865344881871931275783346270910025843227646140348670666023603670341138377609520194027319812692799864524369053928401763937516595351052830870227542719223806373888335105617202293971398128059669180343736327393314267323636442099050264578414243040344477846138664108536415111972563201155280553192478220147387802116794318702210858162852268122163227295015271286271712961234126588588691789715861974004391979973393453784462490548670530357528750717572705389681569877145437254307646011823202994327648735567430241688539359214973736818393363850805920970242510919658721785971075327528871239120042187885364671391149118124289933440481903695495683674260454031727401255763184952603967271769289462108294416664423259934215692263442241155192515397298687748030541104424029308496309353309963460849468529499472141541603697209198935935205402352070359328050872076696813799041146751652315490515560193802770950205935952907522774638619587262414860113465678929275320691195681807091346814651489008778285115517811656625026873813864242957138278988249482844741755653465387090464991305056722751461295553300886026521604567338632616993010437336275686647598571553769462371766992932058262953618627032634415830469585188676458857067313822907094137416064477398047125075663773070333032257178762651337015960668802604373384072672825977802651104531271715816794006055677341185968922410675405628837567279639029770487398516493137674578493078991860242224856575616558889776607264968419246571891839727719301903859267001804117109563093921520476552418821245662946131086952027916762857072723620146014287053745737549653927236462890166534540451069129858853082961764879239092772760175149134894106800502951179648792063114700831898960302987566879224237336553313025059141060674221921203647686182150779135749366572241801655781941713723307756010957642233096135883428327431111037582731541791240720807216011439491649185423231851988134704796099541016653149841271132076997712008790508290424182258238985573713915866443486887031099610919107843927870401157442945679027055306643496622341705234637782392751708443095297354519052311561039087947535608461117752952284372152704000197740890117535148776922084000101966322375895443336570677126388759282639001864883156942792452694770526052515844735455898580184270788351021427161455321054463847422166073784501283559863157124988653164853681587176371985603913423895954471345988956245810360423797341827913860838278112282302920740252720517225082834900771554044578860719544538431583841613289355896917309889480560646813531453725822173105279396102601972098759509132966422870188449162017054889196999636748627012737937760012167832885897004280015637086981391162832473464114082890342059448482735019685952274826879734876593470592457927546289800702216598971731048834065725821209461746809371584595796716594679716556185743104516301620115785904866781764204342150855918787013737915141350871879786321291629232076976308559434696904762512481649056233859486954250292021815933762471979361906494279746093971724017215588056360152464473784838109652567612921486928902809468046243429576797114101953091746088784374427489505041619583839033012206061370405594312013324971726758268308145330405956632072129858169097021971539586187496461223967991264959129807326799271891324296056297686958670581175505276619000200935840847076091557288455534686246738803695647554377427402584182823115396295315160292997452342397724549846854081411161661007003190486257501807053596843571775176045690769445628152414538973961372730412748583595978604943503527325625683879158269378978298747498383469011625889393663361026767970391028436680270899662995567448984438985182317070709436192422037005775575782598797538081152686443591800305459172397431355982239754054206172242081099979240184070072899377965810970584856419719859184156144827316730396383945875776879178603574638926482180657401107896099746388498969967158706053055346390159648502815083210211074103839848754378443907487567645241131392528299703863851078741161347194785583994831270466617381320264704859266174450545763118951902476458574456934477694967897290141021015076149561901311235695820615216028106927233828212180672472441714432490096398749548801059968590988734180941719303792530208968653869544888863000964524627371099487632496670335972237364891618041382721977374247137985355276808957217626318629222606848235756358030277835620895647342319304271269485090209615014242631962684935309611269947238941583329810800372950120943169246745902833022685389680600479478034486991863920222267528135376404072266761998404207796787855749304265387617067063069614978172099637775821896464618724993063280983638682223913948681781682090990121119105160040940429155952136625185432511855367035294964986878555169633097090562241775016153227517817480549942091285102845729722180576225760359869766935431589094060942052783673658574601467448181188565952654420054787043626292564261043075840717028095278932995741926985752288478254532947592306428551237708136696306967727990139466679971131276908703772473228865065500974140730500454198881331138643137231581262329701282597071215489686058977981742905187549225976097808685119651587958464379724029224156021013959832189031114099303165381947903350090411665886846933692710363048785280010086527755144632892585727034255869339838967464473779625257931992235635685006092061607422362861667998720346959395127993057062962877877606814609944885237865246442270408105083607660865949532055818526372806581012784937853767905540593251140615483831911388758063209996321151865415535899413638874593686924354839995847353701806487865453325378219326535646122144365333877666924651239282623279329725812904341511231507198632808454722898975617151095861244456885502845610376005053984418123843682293634282401522661431689185598026807060562964017452149337658870553559761111914048664101786198812114198042151879324998884999498537153746264794602298444341327809615728404559205528037455092249369561818524649611939953015815694447866300535026428284486031471026255075702032308873943940123550641953983206650789931711199784530731160576111613531055091300950518063320317250456438823605712273680765059701813399462676229956301604679126195274816233323047129705773023845361075731513927033649235719675140586433236448811646737420777176554813238151032031220219677764844073557132705541406080754985510663229450167345082450427123312613901551443225035886202870566320595717339787283490613806069901334475773270472921550062343040524302585926773213974921520117001121799192557302221471448162263689567327709404780194369538523548300607949024700195873729587016841284278631642907412757671206119731025615814999427836652721411053169276139787826086573913866166229685916057752816665324643006937845683404984598204834985093218735353669723349494001140436757541648960747965696805048669300244067284459971173554254830445064536551725218703470091989873659393890611843076653842936349647592663715476532471952420152820231274230143301990769043395067883192869317602223910606970961895677257754780395553226920713779869263922056929490737306730126882187842835057099606086617373386549562537265399514752963208091308042003133132301766970691988067144159880239981856168883826237693317427960210294294560805837033129117170995657670230391191015332228921860670200953559766988201259753245464358099416010557651991837104048347164212682407191250828799510850739931876018310090209360832369655523272335003271257889378052057476314009282941900661069836899703255171638196710096820178201627248228400146691939537259262399646808441684351331647705476028567229235821680949610964027872741076457451171358510365949588719365608415933881923800528043164247973609234910453236669678840034422385723006466148913683818418656825067506066958948270823995604821200322321442262788933315436229277427502901990538377125850211662221199072535872816645111543624692490173663907356102735827538252463343160106596944691827891388323484867534191926225375145533194827068307041415239175234334738358620434590412274493667366577374008034117659442412290292691714792486759914463908028353697891303962391796707505442207432416975962851407336218083129550743961081157657755531960269165562918745572632114876284285221352551274668282783357072203134942043033331197666792284973518982843797160873519225080493467091796885907223390893390616112353474482391990468280537476062838803690795280076030015383555439059079937461296115719922707146725972814303894576101539335994106237101279256329256397634987891257084572379782509944555811606622452130662396014348091624293007655762754389929076203282106254598292973975242424843805900041703615013814313716929527421103314670509701167339052868936222430597923837162523409768662659662495351208412450621241901426696009089177733426141808763381602100532202312813360158715393633518521744293654790929252795154914867792538310726843087031576794891646459171453571483807949821886689881611140973715478822726372234751637243356392785179739725760472001298460410482505310973907679888209478890695118409929744756110604065545814462118518137748574183259529166249741498807801429601970282371903730229134204850862664519729609321990745996336830028145520449230728235491375306504581051462667000932878263333899718674469150605577127294657585975412714117015490712741510084446682077260272073070167970245525236073544110756771231619908914983060293056792025754390732213052035090401640862483196754587486988928825698382456864816436939613964384484919000217019789635052473407174288912794269596673496476802764436792709493038780094574796270858579978487427107949171316177896201442302762952102982986577366639487857880625661605544102458547944797978624733548832612632398439916750748368685840645187071836041363576877053002404028429821573900983498369017002854247414023190554111148633879980241440669019652299822398942361925551064997106014772292199570338482629756982869136242688628900150325740066713149817613683697852723422126123286299030952013419524699898035917926494590751255159866175606969940922292291552705766499371888950402646583777372967095020334911761161786546365685889314441601375480185595742678281256935335730694400443101393512327778506144733896601629440393906437741414590531433486269642128890199780687020087980334978584422432294994458463437498150101781639235468061346283280241981887854934292367708028835687603420414864877677972767799425315952526328320560755023454693820274354802447791560519225723370843624620701431490167289396579764016203117260847466344315523688447197563289478841505100477311304769246203052662135134830224500276082582561597041817537823136068519383873694319488639771127350296021094897715323248740619203044671314149519290929825581913784155263851815215301131027087151530515049205943547401254228123175068176447859190178172206127540456057663601423492871250226894203624360089154968813798616505149453421632349392575536789944444755991553964509772325464084385445801330219170691101422061387241508554206153159366835202576962078819019382009189484324843757087662743764590876924819077565483364003522660402980442183208762598960636546938073829905429173358934518607578075028453538922020290118257589910517169733509819788755644258268292711321443457283849094514915025755690145694961562647500620197896822795451674747569700409390824321473374861330736497416067871774976019230724822943555872920408086699866228328952994219517423620571733070784558716175299800492856935664609515319333728760712542417956438745727919989666139600313956285468480573681952963913963535223747739201834442439110102244605730772608646195262578977062793721421844431812359093003733402114604731356802781349429823242811656064215769859228687067990236426593138423233821510196691292380609410385689696463885493579214211902294807813496983261806094374808846448959260909937033629541513126296126197534380502384310943324234489549766397156151845012653329000507087549504005975971165824764356988003015361791292070383141876392018743195358021198557225077455650572741612209281434439201381253958400295395679286652963559847435085505143132164495437193096566604496956598000451343661140178217300173035327468005507077191464251285024624272432976739842812068555006433204578264588993799575179805352608543257137941738529461338069088254842842852538124636058549434999578716848972756503600976451860084600941527848831482305467700999379699689787843721868594836941024955688850888516935076833802391236403744226175944570457255962638149097372847128975462444576962989080845671597684570869817400943454746205993439542007601561389341658462750587404880568305476142963071672770299743119701321069127939612780198505898886395233236856267257415750778441876914673002754330276401259296008397055049670048648829543906643258548054424166547302795020752876482280323297173822654143485282250721259973394839736949761382434155791922490642481782852658012696190641887587142784149614215395510370176014503018713564339069162156745010622579035626914678825083539327091536314161963280132133387798197050520655635387140472157235440666225665931173249343547603127588575972970247777575367433138702116358947080482388584727962364793650231430756314296115115825618225382818084863004325675495908674982425259865400393314417294186447705043586825501203019929524897364752158736810089886209796650143422930563324286483278580324980100552050639564462716335909853378270696692423179114824726673504299509411332531226122035719071841108298475264971943487755783424484564121981672337758560620544364300657696532841520348027187775833245698850151371056655623710098404858271410844480708442810280342438411353212832683914550418867805458413495626107979031333794101265068087273164831194622040322130496596149316260666935895266575050055440891817562351539290407594338694341285515412728331827702200686550666476176515676597162493020058605714585200950114723584519705363087980237225001897119335350110569975893078661161813288500890473468512371133087514764397234135749359273536733973897457419124047315975669461457191215475811223940002440356209458234666209507171236632473067433788401805910336957515990111924100024521788597998918144725028472242158000144742165942428874507407173071479494221526294453795799344761624105254027766009416862575004522645148774807290094418229818991642938162253888061114792049477269198571589358091303422935834464384865973592912182150841556378498157089447549208316732413157962367892435168844611469000738475118215218666718315463815315151323392004774971405715968897819559027842418102432999763059585811962820224000816071905450383225321937059533924155193879527711167875724095512659773837642809060837260744498096623701234466132191197213916203825984093709541817107278498116856881662240272839842389131436296707371402352846406177933890344282703064100418379037645654616825517793918241672640565751565150966157937784752424029363453595044264408432166811323337611114402996012772034001024349946863783612506468904433935672877279957937183587961035872956355608016367513210134534123026246160058301657690037486350200943341491465520088092005381971750926213085166865990165663210629503138891445320545110590000813746708343903246766964965697046665324723353650484162086983958174211937656544872501159865052650474163842863795595131374627907768550154106278472941190470400483353332861211697601473673994525858038344326290103785498361820214511812218895828848848559135954644443019262892230515144152533645224779480211953537473161481899105840595638725525408831821731243720357936407962096978993560327088201914566145276616862053652365638174164101953504099687580260913929120953108711991526988121203678167031023973887279299328046231423446125124327946760872736245928153835929968481208169549476493586674162008484427441109332360072786710269046399471309307611987906187632967481292191288830707900813536739666863985674276590028464206302127027240054485262911323259999412762069212439416012303575238608946419193223686077223904257802204343109795371405488223195561395073084628120970322066323942509705212580845714798759990630327050180504949676913715418980778260582456398347671936537981472004586726737902786285072766450259288759228189040892332694463420794460217271479888934056142802742585327487227854851973948700236875847608848169397982033771707372251046097195527898537435362347450880587468359607607310647014244417892509339248864606778022593778682920810003702354611904782056369292594195571276947138853019547572213968807122203940939755490812297432068342296357143944262654454883798618987733211147230981417493829121320713922952052674140991968956839128806847195248853539479084003944248491156219145957589430718807034268899999809781056235966316765093180347113795498591070363539001485136273683267169712292163291259188309634318579357073243062004071716613860336558305971769803348564331245116130384247861311522078828636004802473325635288543427904773253592572813659667028624290370628664400423418792525009497683246916582684126381546680654158394251781542346968777770125088045361280549571228680380091890351967570038193563983338140629239551863496283717041968875144954813410832242798543974075156345628962338783495929759646617425813806902356372433957108490613942732622220380156676185301450989562771300925665495723645567163517226405763714411755951723846733303409443049944085113531089285727583622964412524352614619664901761487499924833213532873778753196858545655664445731868132179173315992690454831427459785972765563797601650519315017871710187085712143537439336528546588555522005412377688452576606930715886601249653118287025768498659417173795099523003169866447707922298716017225463191059071858163524381333188341338216397212227636649127623568812666560775808130060825751020378686026912587089374212118673387657320634675312203247578400903455117141050716591349977010541523270043349415389312169357474773635786036947495022769437546648223338614601087853924849079664983158029014440869286413445532926799909640778097795765815856018339103853293016571117018472551984052560555151016890757879279703723748575707238437606867414995759641156880203950506567116281664276590655847581527476558059781551887296817629957461635654951592670778912340717449162595817038685940020629540650878775077754550627814548270400040471566184423887879058036738035380188117665026936027526809174826166255399382597800086849895380511489891177164335611484907398561771893070138247915305581198207466307370926896432945095767369492432889508478805645940936790156842463782467323141939803728015304604960579974881209324769534343409055805392591106990531602208973074509771362329391651506291003137261389392185874951475134638748584246571295720227441313188073380291211662700472151182764867990619808206117998368502461669101245200552528481525390377255893579398829962606773264917041049941410668131573599032685730675080349979841290242532920963459586810536137242091863396285668015760940187476216744794373841118035369287578475845768842465931064648501175997134484289915994775647115772125378629641582663397168323175404846965118622499374698093507243864212820926708874472281347968354612872543966472281053026613706438434563718965447251453611167397051449345767989641726380638259274791299797833666265631054908117152373527163104683960226713348662186456731219665393105619773718706197921171380252451148294835878256179865031208287628727059522399696850014957448746892246806565468678418962268303514183028363678127262845275142083240570058624432772861328730302527517876927845614801270953877713446913827683952547044604913077321821031191465208370841276379091870351041650923218199205047528744667533257662398000331999421709920304884915069257788454320197812299976176664344995039991911835256533135901026034552967240874278588263305919488174236669265685696459012031215793290576024803488781068355076370388362166211207908247474425914377363504051214704042938574341820354197444742874150615167680839412740888327450189728100601928746620822251815525214703531707571526221654729479572605388571916177603118463911670908853222878297959034969993924368296069126703051516423459073558826321930961318646075328078669390048825956542258043343524203556145545067694054333176273728597204015582873513930011567839426324049979365738761883063987855490508665113231320513116643562130181961279421135458611513505568082938689191858528476567004799785245222226396635019636637658956724188307481012582233086393471537617844489349722218021272819421026481279208171463069595075836968821066869363089316027922416828515669860829991145664478931388808766633329544460330673896473338297960724490659958761629481702635568835136165901122748258184894855746476854040237533507450642441313122995398421264507930809813609923801943409832631591348747512273148206713326649738570291088303912232365665378270919803632051903088371374659287755580826116627217811126206312443956623069249591783991469011398337500559646029802471890310224060237454424630720966802773248133928504878102680311017762293465520407221201608957964708810068626940298507364673068018867753856847890592390504684213373281573526099507188046790757969437396910504669154884101475732353623183731744324811195741387518140979909825121686078135554831157955228858838294008446594716153469866508369286988616621609584333571241280407471154884692540776575698472394138275504471523771114321340715321370067532353965077141133260807802724153350796547947979821381012467266930180683229660499487469412058220747257613431216816378099855833274128812929773749125564053836410492169032449893854626425638470507735615450723465083095508605672347265451787428260622273938812660428608029466845537443920130539766998761667319306865105824384750357566443901887694370774926501951904059694185269260017795198371545859129985092726968312103873750968805788150936932686737841742828363028370903267855399668242052115708322246531121201897962281859451139794550913839560524352181855583210968247222070736886973819240295249647468881903253660819445019307069522797137268351031334866944182470841895044031601891489240269114663199140673329801710409385590868781074663015313920697594764383046385855063946725324657176467543551186175007831004294149920197717605881311655801264207176163540156066864394767594193698638535627691669443041505871213973649996646130957225336841075133857090438740742887311203997702921553650922853197517093688363870929070883663772018978509926859915138225044488804980574370691186720107981761937374806348686952117075780396962439314060301708676245103271403936810084712323371468423318873237490634885319431604799009992698098870908438354561434612637299830972101434289614230501484851689999245211618479646776739952652605451579636470590973939214639413393113153795429459171070719238906849784870629435101841769279402382768076934197334066969000529153528074928416637847156235210035808377287047590473141151102239419065132062608764651377922888472454232163826152997043476204864514155906876630613969751360809140104808441854862034037052319304128417358659678869724974477190239133141489374329766522441411384543720451627620512807836349443846528293553226116109709111087010912290065961474229736706346485566310503411102474888751701441710013540666736475870757216627938854848559554763505016140192434522602920901753764337469716590814821144810247013038531465825946747774962421643748499110279354929982879678006628525122991690888446251021625876916940684858616835164497795209320382295804533727563263896826446334093716854192579219985709069181922228921902784698120147721941614522999850924980325946517952181231898603221699768400453328941781932720049343698187940531195319565017786845411124626741937562964350873299237342443922609304535496228880321928366343072764656845275585198522451921351851178896086372681162247053055812412988006181715429498863840392192373043148389103655970950117607375656871592895511148181678639246043223819967452015615006539875829253173316493344788669646806310750345184414814059237747707012672787679746835526433613427310530527534981400672019094459532346334458900025733631275285414440037445752628329721397186416184432564744380178376278515152894243470934853238264391625894364633521633548288473623487489583715272459266043357655645476018544232038648336460357699539652252057569653010990738570060069794480075576449938141436167878775465789689852340725849142233659217052455856411979225795963425129875518111846803023062712456562112509037385292411235943809360035413279339730558371544944846472904902479045914884485270682554295582951355455050401666889928513123184356960756381633448248159486319022048966290826374952649908606784290301522550060869442428538600514083662334256611504901963231712934856771510094669616396066088188651457030575740019577983842098856071619674633673093205490336580588151265478036829647645614203079529761639851086777669245376822510907806943247721085211631030679067374908121901002470476681852905538911266487125200619161804190914826904385417973181791917258830971016833024756218777137388238928179363642259485835912537673323359708203387155804980108922973921277770075491149448948891012368782749527527646277039929130736730645422132443248163682911017545046662471795238663863633113091116782684183766027763467077929065054021176015977601906802134939246412730445853941518213863227569055466157908667896641825193561781270764537227669298008278572760313770350790440063376574974904088387957624312762917787837334920573611130319904566724191153262833233924035144376146331567939430872084409478077562452239285856682997785690707980454440544908602527017995742286441896084440555685463373453161433889125276643324980838099614681283992169166398741793397381563520802549205449845487298907073624144962886620044653687554775565409489452954176052765126394386369701240773755966616180476582749829919226029579449898572353152775685829908776408814536659070481016389858999183493261977807286066091255167319109852499242144860674047391236623866322206839155890259746614189740893670272508419241051720037623594850076066232793217538929684943161207447318442584834172861676393059619925553068588792386128164875387316320485025980902485200785140650494337778776526827491822063290752375022181182569235550541721515233818936163138512481863644251507697840507898115814129385510207219704667372917804900345425494098841325550979962656173898769511263193973304022205526655151212778243983270581929507547731867210339388686274176246294037224209181194625036561228578006813837213020453569754913605394138063467248317156700049750475901048216823484568345686353791242051946601125446250710283649955834199064627579943864676572585080816667514789524738181922046532131611986629137716033566229568160607644690421694360026571255246969077532495984799391208737001146848489777518253964731300574140393677786250949970672934078397189141270094277725315666677254283179336355854554603552218931908063866925457349172687058491856792115255774942595313685296082756346411682506792426371002728694094342685040610311869295067331563892740933078101210479584601576991545576860491983267056936655949353821531200250091780126479311060198674188754843894855840497281429019724862341291001475500442374465175721285696330887033943963854433537611715999561719093539043071247758996286123688221645226348011437272332184233446423427502041935740893027911978712800715526988353286999133984698870445933621644770551966629266367823943754506726041209683723032057205135971432153391601573623036262088708860961009572438923562829690242976861086992255504732837554312297547365438315633775423130703784218528557121944660940671056214136389548059233092012044646461213750209155852437341167613062169869900750046208204271915913311162521501695123774520532663509002095492545145546528749724889777214001033116038446682814428491566305594745147653258555240084205724333200476241017533681544513181302721378891757720422885459779762852047837396958978506700272278404327172898136949952240779284264828661287270802085090680303578456108963828550233399324367572461882804344655818577389825590361928053877981776573393741109232954550566404176521245892050946631992244827537733571255905839353322850847886898644264722077730517933576397259556295533632829072631125721023464098783139709472837819670436168024813416834803790203866503082517178703437903801339842711378174363826076451353365431290202366612575819258633030313284987353678356571755443204416800828461412889856319596260921579247097224316378757069083996425380565839588334947629968179454438176784121325553556256445603990243736708529383185591345107510928780343754880866542098320627823541438838594004860014350532384446488492729261015387262548482015639237055829968723611183305813732383439240464267303477860361658820521913669865783127226435949859232392277859268034245738355712432555675528974590288081072905686067667094874806465972924746381128075336561883347799738563541707374107778695511055409337879174045569805207839247351587060214220622563848023997910096932087219208302654488764419933848045595239637432635335926570864183893849775623450751928840652170558651029679100894912907029811752303370755796013039603493434673412642587327822523758312024652822318740597324609478841971762737007815136924936213002554726000256402320757569815750437484674666642003341610351267228797341336118639767275502109503445414885480868892259518366001129894878576744989579942407075187917470719689907024277094165488702418748384547690724528996941862131820419048901844838160507091940163403413209537068363342402896128643668976341600117194259797959203284581902904560719373787661802684047211135381485767969097015263529691668991073672484610279093972969423974342299315313819413563415597239580591492754478550551050458935726315125047181585029930779519464175917298864731545002920681316755349485911967943085303426106184647398383450102000074274279332303524951616715077217806564809080314702716008970902432469621567336405532184173606543171421314431130439418585727859340260122448969093639685609785515308909460894149225419791686583293216247050678495441823423036715525863038613490235864202821212642525214799278874282967608736212923542499199842253081615497970640657108143044159293210292910933754708841017372396575371474861860425134995572090449236183622052656192041057141703502543623468992675730403805620005556804643567012637432332567550930767161767617896551560873525472031822479376743148959127864448009805198442424123783599819275356979234813925139155834469790388105439967367182974222399364531286767490307480378136234907691512526302596403589968118868525180131925479036565618911408156877235974860857901488380123816275771733091804655710737206477559924975319580020642893244466757812292195480102885080992629550058700597585772521030736827277092534950020559681838238059084579461352698738247710865387135782151461274989211211627463372091729879017624308184667863758338895176790163571123187446222074583737389634452242760933638583696091156635421340384876564344601423088190068816764044425095930040489281523640451995269795577146305557594010442668924239882902923325417445446870620457827759493135392746976663032869618399129367975721407325646168700123774300562753562560903698601180100158923837218075435716778291931192300358174764550323912589294401484144817998738519648873524589632945886547987125613852762194635127946526413916151205400178944355623343102406763877821735236058485156323639390109662387255979335648891443792702081943382061099495666984061703151046694683946182380889076765334845191482369542321160388362603999921335872866207439329548773661188270197111760164335160938801373630834887099775699160706581452197421119226905222282014549704918622511455014094204628539929482107179666708112985172515046588508184376818670410024831055896166121907752838785624096937730175060170290342917492900535329963220011853645254819720993795208689333515819787366566072841778146930954772001138308587693303053952408697174469871432649590994843675539429390330702824795680157996247552996124326707407925339358495246207975408914645141229852074023021477027425615866310749324516301883480318765040461269313445079680890328412894203668956110836585360819308485599455931516716421889113879942502182093512212371587569623398413155617603621981669830730140647681118766785425019186146494742796063561643957808249023105364966315342403453546649874165494680619396824730302975478181617028546379287646954445551093473886663991114560643826806767070835347863219327333144555203060519951295733852883284514727310524028902183042375561297552565999550692401405992420182935657190343067880867728729095269343666916005457557949810962146850229388907243211855861848882297663699783985998244038932096165823042959379532459121686002892357363507116085710184227441220282138325701234600357853180550806814320217541925384587279438121290514018099495446591069601562894320448616693632483315023070944025900913336990172396038715676816004236240723407040829626263078020696229061033596706497265719965402456109340523139035948649822367798479374729850629400174485764160924118664204353265941448586809295849824032773963739457255480862944094728179718186834567199905695942291792692244145425177034100561897824992848947895404661983124472672185940365065628994001679101497670954407488617193816441229378386915897027004940028370362042676368978271065528458612227075289180890879448411773124990423667445155456442348662815897113623712299611652356093638417062274725760668315782868985109645090938250668975261959946948133927398719355073703431773808739713044108993631743053524827950273040986836941523051157517443625255269403429191529562807435260529795234594919264312955513628785280938738071007055625391420858512169401823129341568267858976188239461344567736403411200751245077885320715145460797675970704496126945805016580791285544128121425365652837287865388321322365349074857632804716803937423712088392553914008526398430686554980206089627956687051167856090021156290182166377322703492265754073706676465478057396148528132408947078789373670102008847024930718014308445184236621322115702364576549413308071763513732521676894620532145091690618820571609078920813260240140692110254845628892299332048381938569626702539676533479057392437612614621845823106096953921200502021593491126278761606107632683791800132117508286162260219510165413775835056486560740058911975470184036618441990240202806230866591017755699561213980941626547049255457781991741126197776906680500559073725273398199740596046020212365922152800403466517691219575868753053400279021233768137576823930970858656337877843996967587970526035682766762541441722201560018613179322962462603725305566031793347942696686282323691579797203507905520678558579743977697992309553354267251781915227805520483771088726529784100804079343217579577714886963502295158432102871910455320541153079899547302850580027325331310633042119675734045303656309737469231662557257985638128957228192370195423847027374405687385980913689378043403118753459841035855839580068447073546848860040900866868271287127200985015960924901047383727093398269215881037953902345650847442530190156819172247927676981521796864906709128690614892386279489743319460169793336323324140185138485263372266565511671123646504699165213142975847761635190532035670329508110438930494156679195440163311457392495269717952744316132024496806291430591601133256740404300662102064083690483463912415565390841443539385326246642938581382839961105150472389331916134747562550764281321732696534923000381149274198526358538641482766211385005457227435991472898753861157368632481842211003959165849415450249865552927877270133520792208965410430562949811939575357093723663954861267160756697297929598340101165525403039691368945425853224776785275253919745136279678321934525324121779566534789569360848646834944308868430644624133678714860649789066387297612205159715155892081047053090738511056844891761394251790661625243757067241885077809004005074238027502309975445871068584683567468463102771225154717490536901524692557286214128686793029028902174302648452394756427969614094193501929679917336906672394070765551460013458093589604878977901615563423486498526254839551776577611070719010503492700070761679993603950573731885225204453356043941295937017771051594326552794697207701731749535854244886358817290914225191934207628082716752790152603945481345240244674525678496489108752596184458443722913768513117584897004905255330243423489049877415588480751342768870120658158500595272260964585907216528435004906926681060847655127755693974812779706529230398728789333015433713194326951276682786945972446984534495557747209018398825670901165831310918490844697430560396682374013222469098724349487323245356935491969955781480339822490159754713455298250327889073714167739724021474669103724543470145952097268048924522869072156603428741403014705387343906516092945657965254104802427390150748624242455637756075430077262815297736762788360238517505470318982498121101367889446305675369636961031850540875712172450739633136838959963016353346664361062137569870043549793824589198044032954084336655781427362371867872020363561912346410803296899623328451827348272049506114879500642319252627008783066332816310377093918784608267169015175336484116653378298241011700870079308805898311786729057507555322854119286640601426438963868227997358768864394552361518253161770177852628546405971036006514690786931529961716472427393935210091771714223417053941822682368636862722050595783221439710733275375204717450264086743988449885955377613712726938961543283648542903830380269176219789422322835397236422184695661812511259514965988808225250259437096370061149737404194959098619403182370133743378261215968108026114484048492518643731542412044532703583145007710672247733516141194043850844947398898550402970353506220512106781198293233364779583103793209369809257263957126817441807971880249807460151344803657295286262506562062256366744814819363876405175530730353913453309629188640273527219431534481660843474755649689950158788043762557869059047696949979190103787103731700165938010477982676461021256129987131012438815685037526769551086708555526335686639678957386206099809231149061273288271741088054140783738109190741251650388354501478517813472211874452269534645689427718213846485888250263435443953500683036830503444734923034103196340312752372786206843964753543828024007709683544365533612772032165236916279240166512404216297518405277144275746621506958954454463818622524942787010817349248046942559208305737712177901585027650673502926181193018642104924646178909404017546562554218279076040431376491977583668783248778482842297882214252786226089303634093532275233592808227230925670085528802271530636349633943223690328497103988776914451464462551686245452273880378478783214268990678338118227355884186288043221460589991725912369487842800644932166572354609111267774049232788097987221921524119181067772502927271458238991007302164549880624671700411066123804198250949493383871459300811299869331415151847512864092599503873765346749945156971562253514564387409179688106670266462790599145714945365426793875635608530089118693015452052330974843295387361872526504713820729922971688339240253827579886260429333666554205620875517403011613685865219097524288822031164531735336203590846983361083610884321294202451254742549548583494461857411183754186283860132193190401638830289801023251480123281079369145986434778088166906732952675532134512803290264137162045016815830529170242984808533601567805040545291911316596764699356833584012323081064512228874410329382362677055064256118885855905683960506896952302316950543644930927016565489483747859598240037338693349102660589566626491934184989951952657616876725648065837557265108954543109857225004270353824294161655760040869538387469776977371560876241827359469834929610588116908972246642120967375167078944909762644957380756216862676816616429951881707542937036856834315965938807298746021868207730275317560217638761126485240926938596320728505344515767824516858314026748349629881925770077828339156506105611384404686270721593129981775072270701140542723680941459148929190505557410012164631409726020047681905593815752862322859020463221433995836263615073825943433242003181127929665254841113422920616251285212313214578842204071817771411721954120411605023327020810132960353949183253721390424494738728984445601389105531733717707929666981723776686708739121982088146178491280527861057418588861306871391241795981155027265711879870340577951397072905580220737571392637048223443961286797748222889738951940295390087325606099898777165224597959680098674903188267534261507598161912899453942421908556475181338344382985657498040666383628611032419051571313331751480019521186891322425409988185978092034666357951165447810966878109898974987000155756327575522253132424747532319666333247022834851925108457541055105291010506340768546109798555970218567017001428512601821944411580653737763326858475153017751185339907449846538055024227658686241484329589975862361691759568101054767347196904459578569237358147922221816274212455566891924343058001613713821955320879593756398674630549096608900775592135575649487662921277848322637549979016522611918715586191627283010810903770824982779666695595822163979181756792129431082962465309775440481294352220426124394277773754647109836712603756192964097553702741933943734211336515444742268396589499241648567715328856408284788955565487852495708226594412949773917969202790694186873417600739635357804680762686332935670527966449684268067939981476558813169408494524111840297688364981491122805877703587297825096712553133234835148571828866502776711540569660823541403920522312915344114911075888828830875038046090052465995481415234212730511950503204276143485689947361925672872100778648557384721049236124932379191366102470921729643548888143124654025146585153089346125973217634539568832787174319242202996297094797945807499768175137725458759566090787188561290997028600670153484449333440280916138056885759660735553448237682641583949567289080566349455746785491478375815200843645361508216536387084982150754958316421067891507859240148200365485677749827723515470777307638828508400770838374990326994746760363890136961420912617974148817168266924071648000442757128355546997886707342513857355702337104105638738323955771729741559579883833634092789520803852078323501071494276936758445510014295193907258293758162634099782300604335028962988245512297032895737764568754958862617338686896461820667514929727497488354647348474006041763927640868826787910927391125787219497212418376575928966181249171573361421555020668647529835913188468465343460835621470642276719114843450617361356328505003951197472476091158044226356435848046654008081287360652542212991001840444018026003384378719755251642590737341473836046341801038635062472518429009012036110537820286607685977904344289297406103329714114111557979278745881542377735358945153335120074312947787969768195746037907055965579812029962516724454717655643871057283369162891395201188211016413585761772490521252450300193999114566193789410879874083047365740962819565667842576081610434692455508106190224617835176883747354197817104814827415204346790696151989974080066915926356611330006462975131091522611777977085582430070458987898515016762021204804029185085042378030493490111401809456992449413742122585505049158354924503874710779553129559283684315335142311433878299097116192063078062794292026914268078057040073705627257153351533784649086813365795256413350593876477079562691877128297377700264602953544493507516729505929836464656666151408559718881023938568095701901677706780692481234650400399435422217842573010137224184443001836855683078307567608681533799563773498868276582678871442550841288263420995793777027634080197279038100460421467459333830945572685331343188097293728719315343854433077602832937690827977132341099079338416387342669350606494797007412060397249427408230450497690016408242673899642290851693665288093534409938189404258566410547709393006819403702621285690236390179339372024130842184164621407284122919533474810849302749258078214929172516154872526407775306771496473874933228142131242052926232591964398675582008554122772908638237666577838722052925045046652148695408648041962556265961529068030985631923423270362104395400097087795266233930049252715831431304862360702498311542236456433350638508308084048766914206790818515282538593317566503806184144385151659897402035640152467112456987652498149820601617140962573253852708244157373364730121966379077100208444560243874694401775999835050545822579119355411431962496847129584353510700832222810542970122456156777837852992727600522683454012569774553023442567207287530470051051267476194654656390157207569849442626583426964198671655974948090728102858557774412027955039536969323114024184975135831259505404621138012694827654041696273637297797080116568186583964398716519121309171016424243542137152446957546023061513794665202206502564993442295440260041669645968477990513049589979795375988833378915597724908815723229554340424461712233232511854124933538475489835796301540678668991341939342423753595555078783055423612922267101994814880998679212404015428570561243135192050323709639017086205391782205052880946095520214249860161791506842035213818810346175480034062668919904606362219949535213354408054793979586551197601538189880381033045368335969994442035665324408695151423662001262415121859504110118132496151405800381823460346952589799688888410627777561830182979536199730403498361336814414416167238837396448507236854373460911358347763484151097200902282094592476502666459831629627257569810219612842725868660114263618521617560673319545746536674066071555138713580755753292132194830183356405814861879060389081599947787273017639000330390317086649563716827295295153474359508666033655766183498222815254172616855726215364336423601917855230309388086432861504887220948379008878278577700282187901433834681016752332302095752607095313957264933910361941373746080750750068439054729069444804947801301757879813780674590142010108441906530070763311115592457733286007415851391172092174904623991948291197627538397854249922011130193001230911946194522226937889213319627415968102773110029073610093021781455426858447155687914619725902588629414255022034577312788587962966887396235195752617115029663097565487332430944140629462777539773707292882849686690084727628050779406405860105056261531284521793904535291463731277544967493430274341029398151019332006144821944208290731559752258162187302194944919895505364278724080526111251999600539853404175668253312664278858254916382386463020170417421504182573876510959674933045508232673075090208814757475066916250346906958728492979157777069899973077430949029677878631753746232898366786733595958927233407457550840040031650150325546214796812619990021777349437491540282325670851589442599889822172977214277924856634180158284532190503293817543642809942709936256158485202303921899219849400739636501895396358323897138052139229482996932524247705413711692281100704251392811670030983103522771918468970651334738978426372289553329024967050440233070727126014317946306917286844821868561155311909414366998921663417138304484181362377947203621933908322808327409370541636863380879032308715257203826199459531179089763021008095702210931941880304744880281848574205446333339538064418884601663577708303067428292861416357801994872336823138831433734244900394786166795284858447708107783968777257416778575496432107631511048664167323943461904130700782170206100884564916533752580194960876635450812310430013260602417150161751246761723344543183830498736116277056804871228107785151447908295923376561140688676376405606236685263768773272195035990342113678265769084592910125752656927534030285078084800876458280862661569275468925007956311033451813216942582169583454918674722950543213098012818345059111578994358161913540044995380072230500478317200341817733607493836058434337997334556952182227631656515840731285572908858045357481577736042734027135665974967522763565050947401411430023148765546059195362791602489179109925327771995308982980626224539036190436331878915072690956858081260354430860139879039784913150169067841870790224771578096202409159525151001147868527835535729125018943254630164328967100083043317904485455796015972932160704449066822859654376969200195677051689687921529837767641113694464278215952746452411573383653232385293195982126673504778312406687882949216584936421404424516577796313142072156372547323724843353175483490552456154844955287933872378069362232833120471155561020181430130070993151009971841913652681802879556493984125992800154249401847177260357772983140863877127284731746839975709216660831119630800400860583962352260283027011567178461283870169736921327065032270399768411113790753296285564136716098956025819406714744702331709307453326381540812417341006365619000395759405361799759003590876656228382239921841104046787284050957648389807348535404262523948124578943296358594187161166242467456472165425769096739563075966819355929343003560893476121204874919150140979816438182474771972814203067715246194726823717458153842058286418647605368221848026961262708408790393469778294558294990276488451604062431227674661284435772366845249528628647817537689248719315551632776994206137009332718339507239575411629794525537555413096652112217750308553054923165326268681918833800603466115729898247781940176646863492077200232787002454185332955770018702413100265472907200440286445214615764560441778175941654844726050653842445959744226199457037970946430549090276018787802264129341361799407822289343638751915892527293902865947784470751593076290840616722719280399271949948975974250514886384621739599500359396188227696518227987746055554812191851587180597864513951938951024118676575173871196725047562116791400686037517741563212672526375968006075064478274860252222288727746295614252516354430500224899578857193436470241665852242057761680548852403464035550630695157475452692317900907196964651169665621202196450895626265236789191735894455164732948024762454455178376097001082547419261415946742577767754871810024099076384111100934486178712859239955997237178508041559050665907118414510892872004500284689635507395164655149368231260407805810226728212396539824782865517922413903844981694846188751769860270350103420941408681228052490395514405566054673956592099818934730482933067678287186495012990449624689445137996772624829305771623574203853413570506841260567582429622232653142986456342744048135701041017463493086638426865586214448028426689509986646169650685281118638167413991036639435887822118383682206629643902403056786396304339479558104634460956443624592273871611885324294347610767130261582050673478402545869487764530948514844915745701010163103186628114351014454323679227578351221434584742453683104367994003566237114246532278445197609296633337067528180509105416667450353900335192695647417272591340271200900355046007164016096961624767671492196193270645627229414806614979499382146793328305137232548988192296262168543266030938865873143396779388457718645783282182827448508556753056082313005877499762872463024729292068978606531734862115296898915186874666038712250913658354662385371805301471669391481125754720866259412992504385394530193067196018674927467803294179284819437421460781511383350601863582870061808171127608925853451579491507135359918646407814115380386927212751746721643413691750424804592894182344879972328691557136140836441925960791009740628787168714338439265493354926099310748748162791846611951642667072568708173013655344157025537302783476631553960068961140649960534652070397896308605104518504264268927965248164144912470469112889818224195858459981698735691878754436859740774947661004216656367026066600377195659237994022730638060133957957183239383871592095181685076972240614368433970815249527414274400551974016237223761983264788490329007267078448600301879994060076968892318845014498812830340083832094175165997893834974372002673773617069679286193903305230750851205257425220831159949585637150851585995650770572347111057282173214738172949386510050032670324769476035170827606420645985284259450968903183513353072976811244054566884860420639970708203423110682475340001640763265055612810121016069162515211385091759770110353914202584909170563371399670970089856758513380185106903313535440986428217403695411988004358794576109078317789696436591672035418528361429645911142398553269165108943821216597222321843268088119663788735211824628180298231995803731009979546725821030897041498658737216575699025587258167334734190889162796449521750501959072095995061780354649043045326930498042114044788043720823483047216252722507370339201267397447121056896549131275675407358307241963415084056148360286809084710104058441704189967891385390194572502197954852689867027886092622902161569320845536635902390160822560045863340819225449680544144473071120119392258099303184886833642205918202986779384827882533916580427236437032024503259279307783632562759419665797981861970401221906402635621228256310270644733273577237080975264796306484904258448984291442911293137424273708748027447093204240357703809454867175925780196351309760499815277384091277172517783129122400052924609822015520693092860004699318990970577898090278621259072437863583585307663799010000455403962703463693241233372175569247503620496594577280795436674844622956681978786117787133306522893215243302341341839592703539781798206216399312159520927782422144048804574176353387984604010977320475860506714326338640829589708085125861370822687428826549363792368752783405648691932997303609150160969213193589477020511533922858471412529064717422918924277133765414256080285923881513263336971867059358460533021334594773752325260908407010068023022459836255046351817801496859396120947745659121179664464298268711559810060041589508132841324087590167825407027186413368341403225145900623870533085793299203876986040590657067566484373305925471068877195016559678060162230325850057389968457317518363872490840265296216643072169127439235531931015854228921311111951250888266093605290455488255592233658119447609483193738233290752606654421134808197233776209067769358492906239618228719072081966703607464565781726713743114136640406758736013052864788896279819758259768203514868108540360402227758286276385203538029017719703498905764278883986750492786952258974819207204102476232245194800920333035145489037647225968728660804076652400797425517716227629312147259971360415187801861610993548894765643666353876968016802246453544254245383824950195412727171523156515033423143177202266174698240935208595556682998646151642682422959081790412162573765719718392704960996268854898113440164186508108150963061697038124410555895521509507769155359897816204326314011811461049447712493631696878998503771102823570870059882392339135583310517069383482550883130212897753584028139430487204117540051398731113529210275062200706884745704107749813204456797837922118666921911040432546828942564579927034309438306941339081287799925170109136675629682849087138637073675933231625698946187436331363678553639477213678180825299210492443101654321235592658080812398724279581758068712213824037294821430186949231932766639444112129206815746922931119798905769954970975773909367038681986029808150096086243220541787882129080761131719326093851884576458604561685776262666749344876155695039948526159724027692388948487816417590253225835273957621042463125461612245398351755900628438779863496937228372365776214293780575471743543256513095639398578606525779838252363204187551427515150169520791194192220511087976426834357665827406608798989945876179234713690174608160169314357274914483364762400891119272734000834102844626001494831316844978607231984001466125048133218120971343089231992741075319695593073948386973272961880262617492205229184808213322800487803364228770463245966546924496396966029196263204252672192409737176913531238119115334565477896824742817702437388875880039985723768177855586262039482503772872102174411565206600838780748325662803703258026505449554054260065644660335850511822407514984222629959134510819763177513287218933347407646256071974095125269498578663776990914697991252200761485658215687362152319306980683967245670704828895207890228032307556782074211328832404098831941378298603083602451076333094314122944569456227455677004014693549929722434707637628278306708095799128583593389327880903830432584880602746164395666159396784358026903413852189028551239025973754270673130696421625428806748182104705912857363723598219112666437979694498876146743745806381757570047754276907847261154109221331535020210985880782077548681290602391597019690911543840951773773752652452120738814176820015012002650650288588197893211835211002493480895927969476193543182627668867568002846513764246100622903656009863262308288976775852842635863482708848838265896742008839501762683357296398887140718975194472614728120005205965152936206426314171532656085463235056854506453061289925038734382107244767996138269510678422969997625451865150412036195705891598394169954712727487575091752449803665135723433569767717165629312504689053846454418080319070140719003826630778509621207130271754762345635864519545653007405466314012819640087472343038811302465602862003882543060835319335865588549915963909345598340461477207202704614032184205744139859278892811509858185055533122103620843958054082168881442198435232722958290669789159956860776293606310849047217431319374397228751898885526267938185905649211751325973050073654580885861452198794924777851172076347188575390907892849130409001307073272150029153085063951470153237755535356836921374450053542104199807207987380171480728380781082331645183615256212600186882089737111669042267061127426536853130947227340547747312260632220394965243503949220363335815683899935982114568207825834272958414048320347269630796953704172799023999789960029479642393453590102203910007392394698510439773378359757298695960614878757080003167206474235724989675577207963098109534005725306421146217327808583747973183236142716808642577281124271073598736003607287919028687360645834522617008144191911284492895895631802674608455091778062119905636267893527369118078370630200940511495887983563073087229633731050571584092372487017941251469265841810411832323893831093635597040265946254598649139663423392433776265457678706656242967742405359559903256347709875046014718881639657649619512234767984663156481018075104541938526845929534150487040753510457283584635412839483137031122074504419343850474330412065001816679461819978392089984674703911027117789802414911493839735254852978551345316041671968512980450374694199611627345808420986276683391935890194010126109207357846598154868672297774019522618655085313145623411660583014317554287737435707582534464739746376917531359606608848474191372915411879155232924905416501770117077089297387427087288853129808772967902600243203934033687502420695550169915809026035470247296236751981262256402346163681375662066445775168875262107531327480387710189249865130691323122139313825817782776337822776590995067062465053049476281029295768192963481657476147119742480758753470257333531559972337161137282723481300274001909244696913296058872472501805564009046021267956285343499490723731169767329662866343070927754151027297467636085368245132667389709538805600268807771155353462795305538178125770280781961495232223912767691527732060995980607213813156682641257777667253124325098090505408145475619786412868646504332380806381768361193784656839422306277054737255151613694140183164120088230700625914605272040301199215610447440843677259705749900521954900450096015847972948857460750405149453946621840431620280913784320991398067858137707652173054501022918701408018921971053097045538576202833876971533278823566692291923827436491500413584521817071476338216833750059703416003652746597758071337189219334960667017756904464737776540278094519413913357047824343708560981751037500059164423666235111143194165316679940397558507808024248153811828939818439476621710295414999700464828313496275711004171567804351591834846692061977666073624575158100297420223210623902853723025107712003143569874975134016361124417359672788025592357323778700986165222416309385023081624896645789749957895061170076814609318499753571414927235870486765783597463404807490155891027726087727607995673528697788553124057955591279669957596323106824240426084412137904622864636023192683566989683321996974655693331316527879614567645761843986632555559553123600779801596097499301517781329363894556202858678479207009339061273477573117836700413011745014774313613201098234019393041245387894029056377458583553262453608484732259276188013087265750677865570118831209895497167785632833415506175824880488884506144849583229998191181184627841333630396196855069279238283155089584798053245349972658832371550897908237314976833249877190706550130375736058945796320126438658469983409991021029323216584426866942638424581316557255666378065611597778783239953361727906455876778898414722440115885010655182137304625536514229942813520173791239040514985989635721078696602985209880898742183516014269184955834446278259286532488604234933964681937245016649328531500254982458994379316269254508368844286449180184907499723113564989187972635771024560950375330645558124828691997843336157918028637777672005980686095764795890018596538865521715567877821268558009751677558601948461024495928313536632900762925214876395702226256696941797858347491621212634746179433100152386690133161560264502159033596558393298004627739713584348945313074762880207484909020934764512139628200474370107356330232575983573683968212277402509592668193754919292153801045732135173677966373552063971943452589468601150035530549146302489587209940183247387442379961376569452737109548360870844737186425191594401298987818335222894946247787551765326928910144561733013368914212798420500559697329563134681527401189631953196982836925225670339295585524205355207223032022680903232739485348043735520262242872827572576158073103442195567527220720466059460814167137155393207225636764970323003225730158411545506655086921862499894918095635855269881871552981157082296308198288197921700338528084383704264196308973096721201244215554664798486134380175199270959452244735984136559333701816044325649903828853691454699067077558282460843717893357047840225094045994085809551055580238264023204326826210627193334297784321644494385554237908021888742525519380729958578276995527258958265780053234266031271760094901039528857797490350632879326732052556471004824957253194921880388575149375809665105617913743571567026206496070492407133383475832895742845797379470124995813765232109703591094773983855603491434369684084487825019676886237813377168773685812326610891929389469031037717625272858363443192678846662272700136275984688718042340051879393775904835911477750766343251722669223135005401894366634580000631081917945359956453620421329067165992208307855763977312698256608622545147382895175145185442209738214160909590126530808634574044583348440986952147860700890776998052450596326432454772587222310100214240931115665958768419134592441426259974495295402080918263383035925124090624479202058541852851424017850130134037266905148052215622950001850241523915533325457698962816551380318419833444421377473711790930798715605348328033404540770725169101498320335888363092375451516526851460141841637908398533626705112354652570775793415113108710744323476122454483763824637259515614681479560306396346620903227509476289058254796881937090253965074488938890327575845821126530428845075206966969636541792285044675567609021558065779197812889983709461468800342642657888952841994702784688991944581270950927466814087543704234960073522247332196429544260975861014683646007000243641241792790144897918096845087273988305457405679338219912941186710796884565409067369028950757940534548871055618539107533724864244856724162252752440368346123785009343926713771762926245883743779056200522994155153367126487070058724903401042170132281931866362173039971011088821712009915378708496380708397091007323880837646227715179855499147613815676551884327066846734349113884594863560619109040386638531499771514064606731445421668413495077945889816835312425598113455011348048798251042848259166008135301162929639565130849893083565552060334335406112595396246686681898654267562207344362405871227520339512285392891481354190526669294213032935717102952641105878329335884448445396818132888093837479256622365763759078145278371111689404822622321309996236735060418387170774901189242592738314666193552133254169122686795688365127768547477438007305735929281776522063458796570654712836282803131943405973640209572197692047299277682297170024189435185583566725007587879499417706367537235267725402308805393582303319238503591397230589340458455731836632596576072767636430808160778640420898125140688149758833909465829478349744048494974568543037724772646617394302495022609519784258929698389521387043112291962047067495785552650734446983688775439405932783874316231350046454485560969697145628552321631777480996077381383811450883089243823754022984237539109930711049283464170528168896725653288938590236218993573976703313306805158885759388584055935915139681939466137567776764715232984812455846658230782995764429652132626974691153038064441098394389316343775190271215017624614480294251086327229165208221157718698826094022568884062890619541544007913253239654651703895968060950179339565929844710720088369550396092874178837040730805394642618289393850692951301371705973802721451353489734959667797903493455486331161541412567997869783433950706329048414022910194531457978930541152353251199390965272988641138009875240657187321488901696872416897570203373077531336073217596794296430726632438814290129462674535870547241468675207658360183923968525180474613869880758122375832696038295455427643156317739859438103190428914005732208915353911192755001214400888510248312221611425730479349314879369843812855872944881159170388692717646809683724278079968498020469817283280965038808443535614611043533409577101776583864418540027918942881545683207159027248177795482679046560506714195193417370491688152759795933098969492947359142425842628979984988275438570829480182797400572226335000184959768962198928785954775264245095931773387866203812632617011325641643769208024933362872775719176578604512587101038877893391026671398858235136584712182392531753307881353241371152922440413845217642778547309782093173448481746744467047614825740857728519124188159842832462442456818776149123482379747127779575884830818107461352212896891542671093047901770057307445637530866511159417794657866688223756270955399910698573870015525374081838610524879169696860084584254259415724818911303434774356816983295483523235250893969911515705445000271096524924269777422040371094006995570401393395662012866032420373630654463264833726036430188943450291094069284960467220063394926737379242412246357224579654609845997619380604721422596928402754097956682468849175456130039061036418802227859694323248992926575546649759609573073686999785382776054269819684622328857392251164059247894914925161924064880267636480466314759530825344929032842675185470330458233080227244022228554263625417256645680058447080344321421883187290681255852300411195536634877485899231342154497589505613680451622948574688526768110846880406205644473762485220057036614049230216178053168935288889872882801798454042118745260197950285339336089339792350999111338182737888569629241097489385843087611757649189136968019724792645239802150936544869513309255437153412982388338624278244410208462918676329776433692686638810195257302890048166069557526642512465140919986252219888047156638766505104988227984232554728194869406742669976090422011874510497561475262028608879433989786433095833928990188991832116475148311329068063303237916965423634649321830285443739775401416525407881478024443397757233795594422580864107133246159071600838248314436639642065986755711136200638815293683088871113399738114083313022482486036856184793030445323175722897827961972304835594561010636091561060062247024229872760281834033491549903526072310354527640181637487059671450163711100403196991399702690144352821246601186947939225628034141098848714229955518835842289791562067134538325577289049016025531932941139973730233292882998265874549249383516224629043257520802502118795739719393702997830966511553215270529714455345423918948374694649102119626351895161338159100145208098503060131373193920516778776510235677242395047961659366830293359542255728457030130818810014276287036181670041222327652188243307089999077920930803562800688246312899112513572041779385275644577959572946959780304039098083656194467686946549295362160370065910571755662502945101191125680291729614075319289843382900441774866550339102806620394222416672472691288471785010433585321328274144934195228167166711021455792836741579421288474529172110390519141646695235662802236196875087051048938769859251767945209774881236818417330858275033710158703063770962049061890133848202434742209953290301699136127915968369813335374521518231376935817426941248331507746811097457019758416386872366258620082219909316465971707401886185033699591893333444888374495673336153121149228555857860315090900623643205369086861846661804206125771975248784624086498192923705684541801808697590490605722500508784466382362942965990530085397076606556697041301688451810234542495091131879300171191241023427420937956094330770477685038747517196738115155219357539857853344458485618048499329514762465152763529184756594341784305319989461980960873568847768458516422516438340044809888898419054190194456665433192196112724933277198734787722605282086509246366545698660902834291992521357349625551390328034376919603046749093840441292280375149394595427222488068813002493055340309560676684465944577465911808739722126645749234234665592777627095648106646119443246742062481484403065793497474954127095889877507354640567817717025943327664138920911809913259646635331659513336082011481200384650911453685322814924264010025781350233586886916156440751059695614786724379728434662200231681900681844382015429301477848414898494439202715820554493358907484757491898646903946424437828856191472558722874734486943969518318869298606802962678296064950049867721288280870079294432776248775796509335240872652874044135713901368741703138284197776419689020718463132033288782354639423294214141498133381282259761549120018256399267715600104529743650984941441743542468524270506361651637396226652212859552264311990165230180951538849223646438562323383904928796721628938124149245201802028558101314351554273074871575548942836402111547751762276096905361303570628509244709940877949273079741634309054852330702396937953273835872803638940544041602166414032702016947945091563296637621629323057049098158647345836719349473527793761154508051067244062523441746755808420611639905431329747202756999776351845570059956410694147932990240243928419728883651022112731493622399282585947336126379258716154105252539558774050007651721320436190296103766296560190330168092156904950174940926555830320599149714782696588522424392157331360419383397405521069240812006178005413390346870172976268197068324960352404233548647414808625409534678488825422962598806014806203581047904825696307867219053550824220697082335796043330313621919832560696936713422085457680261426207042903102637386378824090704029821923017098786911270782528290093304019451168107332278901132134693719659934417336182266755107720474608129110290559546175578569883703047650976024419728043822195070618216568263198568747318525002124836538597734718854101955057034844870952261038221220427515306940471231120869092606420673008960170775713361605236006924930488557974687296311270769742789488482731764818963319705685181105655123385698125698481935220193008842906770331754668985300223073014366417237542332182985382915704755479434601418523021615094472608486531744322810284947743437060514045457096756415528152266957873548602019502913570560048733733104879346403609405050017921157339272589347475277767008934383186013529494929797888808249342783922423862053187779036798813970460458839211850947191046747407420940056748617181332776355988972792592678063474908256235030033880033416435327935105345302301628816667029311478297408849851764517798068441869349929958092689031195227369884891593934407225019926254975216075895053629535664995837655969929111637708336611721373371233331492430567221734967610372231812178905494827936217254637063431200171602088438705528311683903388806574543088980419804056168354685345499235891121305201225354729817366625539696917668838581895335218646031922042704139540035356117130847713191742092477135449776817251423802539476885822693737709587383497841493434757999026331241497165490809204755474250127320095626093162343356466809796805943216699349715532127423327389217377565860390281571481252748035065225361533802342038892703321104059545824782370363735392928619086583975644572488457999578680302739681272370118391667380634777434577552012887692901375429618769374968737400722958704679267032430238950567978675764728142615908890836942656868661749700584889790564161450841475156464333490144828032897876853374261199380154133806901146463422482920857524653625018790412750816883761161160320091207448044007937841352249208493965884320256319312553295686965858198879673442894515124932570627172020998818556099704168385116293651508843556060797912364015570050755564356859994460619933625670926254922432275794243062454104831925929559026428820581945768033742966111559417636255138571123341991806105896231653039436232564812437120597101412545838563916023137057540626493493557345527544072355380563638231014987545881057446433650132579080167279462357062883024487378656149584074374429444734216458248099417408904464468170901285533708781007001280875510418913861564220790494376711852927759492023590094970812868543092686903054590830812881696307631440447509445262039449168831782876095037602220913493776449617593267995617468004100862696585414419726481663869255538203476715182079568897231616129979747050483540135969861187313963108473289529250646495726505633330071714444497974172339752657051900013209802113275556729345771862589849607706067444804940563139413625368101604176394115638109393293707769167962645610870299895764989478394470854032405834237625076957462055814937450147984642953802921080103791416403975175161561452050396966380068277391486531673945626667484248859939745160312480161075296231764092824645123660695386139492732226497760343732190491382162511403424261341544088826467216818202938650458812205260225525672784866272765956406418436994304329990363192553597965895642829022040224692110402314489986061862464133798893037477590243460043055431467516974510271303149739982401714479444826123713253597473122613140177613882160100897140579414351429512268731946054734669710625364145290880224428107457011755073200964106026642837818584587241724733375242774968749153474848341012876608702445118658662943157307567141915176560619725662885624335405428998256497246421431203495635976490712591441354621921855707954990105601948213761015966482223778305654951374875149881170447798756465712460505194640843820012779560211281277375752508190465158391905419764908224500327011726572612809692839317594075711672883166016644412819803398881181567700935984814364149392235438431401410586103172383791897467835914776261479215527112848320928431252842375042198537647753157808375835783798161346162683706348324311778295251522041331919081274137972662680818806228022836850984047603313182589607049433987563503743533793744146338192831020389993984935037164732060318760383655113403902953401364675823585598296842912901471594776636188383320560385288400768796942958057201134122754856372992947242149531931506496909465090968499059083670306859485911239914901514842126178705392351963261362477993540354586391969466422799540619604961970639102743894632112748096846261364398799307911426320304643200750090563527965208439009583627679728144007487330133045207827019749511573255376662584669544798198735781920796738268507776842674445148346423839434041595902312457242336816643002011568613275757932652705093816643529722405204864983894737675521737071675554392152632836376231854966215021348415723353406598398444447813006648285661354169109829833110481700855250584641361349357750797142060478386638763062593453408762777196171697325400654324748866154961718188369808298631590699344208911392905324678077214988661939475614609650558786958629824838172111986846064697016158406189296918984948887839365346236139368111645511735468212889019246692485355327343327883354196277292777696455142130456470811882982188319678380102109292500743954614711459592249240774497889298200722101291907302611131908634245364606584260896044386382430059505152558845947770959179779054432433514208637564119863639543487370041732485864219883317582335808005726807850089720451322310063674197981760145715199573226305847487776161022116481631377878571707023746018839088953431853418356191731059568485563928212491562387865572045779952848350424146187940885424996326254767681208760701237717769900725713487662775022043587772142024822380736743535610033619678984347909361520587123906766049640124774247952181157397877084399017541430736051603739207565760087909422250282488233367066684904279009051658599630592632847133030134484202684276392296461408725176997914519459638515264945336089947078553561981684957986704451607960141987698606873979337658899102688935666566833021663490923679408773194461619896973766196400268381283074414749303643885149865229352183951341343596335113356480215314506168550552119880876136748887798049480165353422655153182034559723321891216246551828585057667073896133021992410741470114620463437296468209866139906555130735535183337895727487091463709924199815775597551293698562243631640979136306598057167280712718941588794385255557711268163924232649448716669777103976093987351395218509785318049117482839921423413278911903546843321795155785641695741963344395107264754636891405708005175570458907097046018260958924165357842596135975026069653989315006469688494247158627903101266569405529946283630935075646644807781790214423753123300879213277623416618427847665229700227887221726753978743602180307283686294545259789620834199186006266499435924451459548461643165861504265920096001454485134351859360863060355435787975632270239561356562829911437159885163238393357235191250392813566991939091237127176292453374860194955371957150858130179101944060666949610944644090741794486078317023244306243661084776326019182353729508336290479987050867784719224681712401244867949520912415997389217815171856258292780009893572586017919483080906134358639419482526294954152699158930578604433833902198824481651330698763997336150579209390978763342056026772312693013843031941405826598215123134747729295292587944009293074268551990713479564651575475289655865287963501032169338363109548574971724878439236685959352965875544877563372995923222037101696359606436408044326549941213367725260702229873222303626576787082669658699064523406221713504842830142119707525607999091463061626953565797233926852073654766531816826681201513794390129503291940017827896047211951285018446134625873829675706766447454936168006116170977627495016314721527533463199375487059282026629866321934865910114797093798293626007943725073436910153972792855244460113243265091038851791030179732659656783017938382402385615102503583499341956646875552500685342794816108237993851001660493889156291120678035336628237631549466000684683444710493494709103354187895776248562241263621892773404026068827768484345984868753556787085996817449736257523552396060609353351384032217330500514223530396536322665763440306416794628244739309306045614596247340345496192477573405290628453692833431281776548452874483289384391095317222093305394390577854780604728071796290796414369070169201242598961264393795315744504442532296077182625287109015192319598940776624285665101527165647747952536162257593141342279642396553731283599960592707835944340156737893890352067837214142037850186246874775062457130695920879500271342879310790165987686593244857351680981412224117565784864895726474433286748128746560600063839374297934317141972496644582213925877952753979672064623817829114054815285191015732407004369420916673878743198590982525776911968869128838348477768339693228652908372506340287295872761803580369051925946593789113779090074692596702355019182778279671412778019414914304622644706958881481480690794465052906521736296147807806439597692081302323333988551508379982924684802424551880206162149810751514627402241516475627194810459806783909152201903946362551686971944400452235542900867471823983351458067233515140918180546870891373235035595151550016366987892929700399143674094168424140459920260411259398782614156891599103425525389641690499212372949859105957457674872000230100403882770828408127231592939557499878307745590470542897700359938626021156933138720426367159849323239694175810054960986527127657286235008111742448563305882587430552228187282031762547706605290508092833513099023555191789687930547786521746791692282317365954101712974897895468208117650276987242545399878527894307216653562679507062908249867059815942969415116563043762313803551572579777310047481772715884779157292785989204366819283083093857199041972808487564986386390799079670873561126867411069849635201391032798352428575461321287452850424110097926333272537886867281190168538999703847416713037419137844782954466565687527464002848605447978149046461183749069361764105982083354385878201278102334843713537927184409849923266665173843388972599520410603856205911043847992577302593643558071796451293724405346179785764277357183214065946202825262371982184050350941938346779773749526048651812690440016303753152314662013918006925805554301484644993491247856492168156448171093987664376048217757259010735439700033936420784683624707750980729904519711473809911296025977205660128130662633505572042557134560517591243013723135830129815780031001938995085411655853250691100421032756396979621102390510201090384710990654846795666138963761970270112661087365955380882554626772422927156099318590406116828720353068095912654223104960946163319216353701116525400122195186095286637258456890441522540386196466690888135751884275815166641194781736397318590705536187028994809224912243892667849739252603941071124169868305258731414854210484236582653806703640495916090615818633633393025242963793219579096812343855482266590868834091672876827728299020635124797323385248950228300309008214371722914217227973267281434713024965237877754216571931479810704121996669076739646232848944104457573925272233357500927681523896297052742587758873687335916650925945832453730908006458593142104476348890631239089748260911713321952058160968296067096878944991932439207729783917575834285262079412115446722348987893913173715443814027053451202094077147694112077125730091340425488715227008340286748890068553997490331701765092990230490595715163523852744606367095232088866731539703322672981790015569737572661797464962929079189081108843370965931092710557512941091465663577834116774526931118932305483300380283202046727041809495260534357880603771632717248217370172790458760182521054925450639168649396884250181484931406899173700679324793891516554364734507066054079488016505418461216730810222521217269358379640373662589205354009419983851788307357696645908419580691957076810741524822438476198774604867317134006282395713105573627316232679694706136905953979782747350516566050270419539987296906112592556513495999781429474748504414487270135112459043400589349967032275707543207715905293145631768304931408219967080819741010801185303350375405212200184888582895787446361209348043816889646694570442598146808156999838970290829264411837910297710975350236805556917364498368919042254164918687025296659436467577280004869357899318592938396226122330804843588584873085590804171789120372542702503241592271026514670761268640856623731142177605888581259805972961195942602342018221632922384338822898728466937591482247370373652700971527723290255665317635487130836064481321251964337896346289842747010315406808414131837437862282203224245913126737209021304776809329561002407394244438347384065443482230634781567704490565990192772821277279603387764643424614145350624997885985766718797156268560704632157599521058783542939594897463053801040386825308769228480166502517402350188534985904123530226772655867867712379522880390474964675284536300855704723424275237649391068067056069456595531582240322765837951125253914661870027851067551508337106648312063593470151726780523122144681411971575303545436494756418248289563767669388673244471950035042492013189431929644237351333092944011166980763787619563721477158667729811958742317641286163436779582129579281046333941016767416009035552453796497774536476603406770375631711027413610133318904173953825568581691788390401783345823024091942972472622188494255023311029749352016443116609155937462541031789582694068797516610499243651512636539766790606692563943528971479149035211464076488951932746609632785782663648669864329225255967975711038114721842477573662043545393874166431209286391267724312746005297669688689940462724811093712585646039351347565326018224419896489377039032603298749843656377347906843488670512026614469902945690310789225174561285641911131037623784389723141193209753469542622567476196559558738873657965743386990887428838738174879494249945737766889998752926939633947566563946230494061551830006882307840235203815526846784592693573956148065967964668517256914161701409344498357332544152967704452134273907594999441273568539771365616493030508790185853413014387984027626222948261495090432779396062146823914155341456086758302233475688614036270075402615881772331470142930132099163657577414413851427669647523968578327181855092380537694084782392027380743010370614926752704359156707276422920101849699199948023709476411836377097005876745334320347386797482533330879480727993275870191905640209958269667347863457640540627401764586172229765023605213459220544434487679036032084815684833993681063604525971091701793623463403421599307091447580925413268162951832047269179749804134589568879385439409111492747033941456391791817804799602130501442886987039850925911376089919339049137745337709853898091906453583154829760946656200330725150226167215027856065785684357424699043636689726378143503513527855201960758916396706326057443480679549440211785641684725725488265805621433651768964262782511445058649705435078927767452346634356788567566703357837950129241008321836559950922562495089002588219444716456623193148992526499246882733371251887228689890623852716313203807894475905219036644557840322777780733360109280939359385501018197093433625010937546141331329763477429564238506847011628575466560815064881304200747698737981602678195521279620270967640892077152093462114405761305120499070019519327704698269009742009094259629129892337285362078356740824769338052099818819656114887889739813235766027851937032332283878966122775365216719973391715396250172831265005885461717773938813537240427271351633544041859977860464479313087869744796969354833491388205925068042709254739679603692912121212722912460869879488649286480372207586903644832442877723150698948556830972265909686633563293920695897961502816958115894583871026246826510797762072328897673847929598272858747169654553797092522842368417164752446355703237666462559172786068925326928311149023487207422730147222947201353595643420094007672640046753033094867018094246066957969185556917284133388893323421170183987050565915405993240900122164565497066847322674982404696293674799427045458744606306918726330148369990790447706281262220399222484276734309669640785652950304940336627014312099064754891246928563062813078658897473044473840216814792112075951099505973161296392807333366330318757267517844060879852467779588714907660226536214960634816548752527122441520910752168363987591247334232919227852102269668266400595150932914737337134098922255027708637628833391960463509601947519566665480817155677582867556619364390267161071972216623375915693224256916604815920148421736635821858047631809363055611251623709878220807305719673657679670406465641637750076147533376726826062756902419191090707255182004458191962518342239075177572075302282457718283040118383668266712116078626512279123375623703262958570690079802682463555529659370263309947904645904408491523588370496964575060289865168965179061028390498379454289783827002772297450303058316701764130746231679741982337077333102523535255203358246447455420372123880988139564546270824068935264368128238437368114711247343011533830131039673717567303805296813435358742692755634942723071264603674420410560673190125137937368599294912041646518199919063990875804456146862759518573020044995959212329349620545977764297320421447642843731394998249723515400523203522406867276888179646709923081107788483770248310588523889124959461098821510026424322682206035291322021548147761213305610062400950651557880000748127586379583719944533371165041299979826049609453157048890584595957746131625926527470574918641150845903116023803342508096240370831912888427172305082067283063803657072199205425420526186220922928227496348204394614710539394609781799317985092133174272942776330171924507204328345325482767964259463694364224521285253966899717147130042439919722388660140835465776568918484200138403137767039340475257886276537688745427820819928628353633328849176533377637488239092137805354276858050358606784929354046739126338425515110126163243173179304373708836566469323940480372929589849610786205864765495917860124766483649468159933001267244481850674545159485294101909398923696969280751284615101825747919874874247397013302153537367097449108218917868689292862735891540190788485234687309014500777601440207252200543491094309601205842407146818792366420423569454336896809710663132093969423350928578012419421962880226912241852850260240497145300993219471154621327354623762588110302345114019823368128184019574701036773695351294244059069883169992174000814066559220885275656206516391027577216049824603801067774830491067743118373732783656079633928142292457895813521382003832170762577277597443653349726663752071258740570403336468863760104311816299649442347648398053725497490551170389892359529603400329309654185357252949571566055454235551538523747511152216365881645034052851579467942446348762236083009627052401250081696447607859883579253897827026698732745303751853530114317280198654818585526118940139973038281838055338537942539778443208714871113513562833489381707110559175705680642498175872319117788428992731886370007642890318969411115389266108831211537381571727512010324172635846575345367546975792329200535151924188733062383345936628011871009022478026969779746798156323375306099810082382956640803072131380147659587531355635877729896234479508965074363972967145656903418965127783822239110324035858854925660866602634251654128551428754341401569043114856847871163078649765342343263963140057131132679899132778095157201972067415947067855426260805929755894078343174439419741190467622774128262905838483767326775748667844344802974212934200499207282719522787302538104021699322882336188534560399832668589962690360578473275423352558682221243975695056773424185583958059116462870497501398561606362839916920574371121388311237026809023111360404248059435747479095984362833727595256955662800939693911072121557340287523616020781693599900634297231493334121307425402970116061475748637471315428869305103769796632850893516483549605283714562663617144124780089330488329362208223376303033147532722750045567913026075280466855932633406040061982293828768435889134047465474992904338930695532504761775084415898600194555660256098493667443010190859503972704805899526199513276129374244192521627424931826067864099132446280743220761740197288172234564976532039815311701646729158210067922269064451710101324023918670854757892004047830260172460094969966572256086880088584035713103880868378656103697373573491472340872916276349989940562968828114786460487180713192150554255074207634708166954734444992741156493049283197957047987974849091361914357319602911484358662729301026830044206385465828963614001490205403999066224715404032606914806695363392354720441548392858591438407476772630893328690913561463052606555016937816153974751193639864029685329802168700778547864795613386712360092416559903930995155420567405138414834198100432906955950043447627684643477208485450060859890502090364270421742546865499173645100968990397293527776973365947184835600164740042946707795662081384733244448524961072519968498631984947669069164228095562875688128645578448289134685455078908716644573930165755596924770793931454966260049994411229796274138337482462454076908407878010876153675758097501467741151836597501664001267777524096747032053626574329921842401794713395551825833126421838691202452741637659012789004093082257615129898280308197209310491702926384169288098016290558848980372860290437600501740441334476655084358459146568765032286355750177838132962368689147446800724380231802629310181042692924565453595181742187570532443390476822184299709221976703602604516828317764882749006247864427867304446379185515550747968055932279324795150963382921394881468156436846048415601038265248537492213540242270806023532737368556261723138549563306028018922790353812599436293856733200183822431097068588089476167746838011885271397124766603990000859100649422179761336021435881570858656350792925577616617281984911052860376580094704780584011341310329832591281603241332874664862124173255823916708537234624954303573553805314631167407699981435139190466715409010456984279561796825310274702737227287536277583242112490785696571775709763272501642329710458237669656125462210861702385178098514223669381944614103240006333310889659112740377712716754076809297802558184503021334479338539662999580775032098504224450836878905947673205386155381776670619579592477664080167491534945393680960361724672224709613013887591459343268691090437702138997442038942906182254623396486533268514770307115742536939858398328169447168866226302648235149565777530048600510324113355367778418414414645091774746626310278427141018879795376920461164151705300524835608994161556212052198482316873770216382612729070928950957584147056141624202140296880223717897784388572633764294207433161464514122069858824613192610367743739674077538759740522059564134880918072054194372586496037945000106505162279235143874249201059578501369986555222349382997141717248854582318002382632654957633578866678188024897794580955757146914954625350271818796430360740211898436653919132247758360527832140682835091148023583491714670266481694435896766928051109240906481258270616718042239690892942177014087068248072571914574560930680487753570898903860659643824900992106891763651213987175773284512897058555895472134770423584289195772671852880986775961006924837273603818786203599002867348220423060139288734588625846892070999852127018174294348297926055533828417544650086362375149346710194491247458313406939813432351439280632522373905069428896535126928807013144292178779973156632522151423356733066222237546302526181399757233637599800376292047411164870636404668516121280243399253496515902557837272619520347747146861985694796278028188082684716155400654959988946163448161668723632007373094682469944891885617918093850168781376974208336001786625460764029627551768168268885617668098828369460717690229111633476879896747822000889440552006380688030144682745553195057948755329352615087036693675417972834718044203235864020948404981213987929171018180348608985437662495880528321726863186991423558785940662860449781042973155361246344809357087922325385531767921696319310657989873232287196977212797176052559431900765587295396951582526663101640959982181441044140502088959685521985587501787551702178039924885965353769639209365703881435453924922096414413806689254099546972939887283811495043080464652820069692266596291325316154667044572903220790161483340536562195726769751746950310451750992935287284112901217779080545612672994775541553774835442388580798216239487111517655867829890774672165614140568286193967032289400507016749705394749996227718106489762021877953023879733563500288846182178923834262922468106112498887438964822930401965219437352307132678018311112951741224288657967036242455930797348815838474992835727668237498423585209494438328239744085330318757008289226412710907615809373596814103221659842124269306183786810792873273024478529907670659236137805342969848939139586107797252196976935493115633306751331168619224411490162654770905579017075350669868440250518173209724855351896133442804404311197814014928494245236084458363624695092207583361630047400947029736562574804385196433011999799011418615085510306111463106875662800088429730971289598837226401033707079463609704466928821714496756765497114706116479807701542952323442560843479917912043138361777146374851054264484081417467624725104078399707324249247966736352851466471878128264386930224668742047962435909599926372964581355604911434795346104670889101937131479753933647215989103208463199536928303570229983524691848901016931677275977344564247794187189755726776344682828774149911902434141322712771802225900785548209598778090907710281510695344994529427916287689354802210639775347895221391714630832191896991897624484919061988798473339606275936347339662605191478875490015227998542905027377020075544129870245877394771377954391250857106305777307023401111899200154103085898216888632394893894139147290631686167922724641140599774227137727654528735732968804721838217413703962378875415418362876199905035506640377198602429953481879632389235604951547874504785371147368738063059886762922122923161592199451260154765748899406365057116628772092182654787472522631811227069374187890227350268085103668803409163213966372582371963014315902342591687523809059842314717272106142565661098534704857045708489825680002523040951915543459725971598546516234403793761985025849844513631759040368902852368825236221139528791596408627064919009780456136751359617162630911443616788075389889757784656554261464447812794198954189696467407918728047598851300438822025794462333729844405831899217064528439381791284742973196365677771649422937489766086131170940893125760996805355562570865846144695457925507975118681537540801265522386130330434931561247915382931074838304598932742241983138043900011076795874738086148737572248541580408222543033594016540663473838830203337072115150832195749911366312520764810904678952289617432202657972431996206268259188391942170760137129919820119776837185105336165135039568080662019972328811645821461048454336071726868496495744091768388192005340190887955640611174228853940020329276161761153579833054750961676846468646739845121673299831041350762995412457424552626226599293638249996214812325719154456160552222707998162663593037006500471454012363797236494898184998307258879721463338628978105490033673165424782539294056767866901543873810179105889773377047522262714658965671041147536757593898653491009782034120128849544871931365679707881249287621994814759281788701424598567004459681062335639172334526193988963760377980426319540765424313343592843342600098982987426296775113478475474172916478725181743342155685961684308549912087744751252845374373693072100909897893154136711453138681984578600007498146698127850363081085660383844328715491719317585505330002578419167123710039897140271981190276031107065519114161395668617890941429939946162873167369272239761766759996238896079971541265365831962529719844838592772123689314757388411509715912596953947727283862814487566142392831223280609564934674376639824639451136407754834725602626735658718830288843884409639205419314219357506380131608370134317874053253398244448271810133237224100872088338230795565656018746037322366421055612200624427724312073666027410910601448576760085857352724010619681509469662869019123360689785296540124819933554666656345807625401384677010701726356541016004277450221691597475665215166970900521542874749487844840503054300016594681181335184846359017139460447924820784142477865140623821967583864105158292925092262704747350317231835437588693454590908484354840516586231682689519142329595867333815440857364087985794649316325505909104629785693461847526950271564088828712767397584785289469597738923567219240483716136475985067001496555154022925203712280570142591940788413813965800034187545692704532974526404506992733265691877904437809084474487301251988834622814369995354553865522642296276967726804049598967329916972402068451319795549392646196383050548889164742324643875157114191692094452451935250089426546740062325109657056660255117625358035158105706843119351821222745611335647173374623150877893790422949736746434250864996235444739312482032530346066199287102070202114309332298463707570987446507215894614370084396624350788787799007888750527575231886901010454841241158464189684389302188344664656983158337999071693044863280500404695499379735939383048335394088963853723204227271230823233438840715445864098144578199315414580907303711639178500781350874378415540221841100787311412821482501651720553088882490075356243430983257087344165672864698758474657042365540637617920850854205885993083602349128867259569628053316249289151087751353817616987046032206220008168228276420766991387366522520325507127636736441476873349938030688858555157183462000478531342854967515964185666585976905758047237435399150297767278389449230728814908774021747807155532027117894485611159254285860316660180066690719940494690277531234501187071749356991020980027733992780355664333025734926226429855402939543352903979814768276646450764556535901904611460196744788580163313104996464067789104775117577059805971014603713373439144486152471478451125932397150882296606076685189948303738136029091542506741004876927343160570061561764362388778805314742858953248086903475773964017366941454675244554954277331150454376809952416825213672089571309464231811294807402549813049050405271557394681147233627163877526212607066053525871173100081947679733568864162815812464963284653406581571070927941010749878843753655655319760647241223637988139396992336247063877546294469188827577831818681610291523044821258293909804002099188601982723016668900491201610315431344750433772359896699070222672811214923853376730760348430221420340005811678179383670847630364454132438497142771807769618439033272436303630988138274113030977749092496491731854236326429235481883689432366572416789254591923307601014926107916503514356941908808026917520010509668227879933360210592433517600891463517992582835232668587174565215341344139020330616990141867117397956916075389111159188169932461387703791972216283627038486434776300918320939925592207201892622667285262018460083399771813024931027974770953112068137196228141689787742524022464743464523580587982768304671563338203937081229552750875570307938015085088365339098750249368576560297723777848358476969598043933841641032847049183986000025713478615759870219052966374130725078728315894620513461785819320888948053753661928602731107853015296688026435450278433106389009531507751230908344142735636281863252312400838442671818772569296158244403586825241687935741565657694083509687491612839788164970941175855680025676533215324507283424099076641919055087586110788828511885958773262196039668448573544096869379542387701600847089804715681757470895827781317469191020095324185965074746350793401938067222927089440653909806998361909455922058813260876256165058489017690056972394859988537777391412873569974116099396610509252603739947304786559741199405415363396582915237754105706329602768390828180573737752615242307860360323715447188990316485182911869235415472509530524805079935742470074823685367104312388838842850413807187919648697300700926909479068881027141139079898731377885253849697014486162084083520383531327012605591848577075072734668513546661252763342843600526550385173939977461804854095389592747345875250144772420876813797874742773650058729204249308264653210683955333179126515373663975615002734615015343001004363597463387427567083084473965396844806273723255968125075724633336698294992680616781413714866189157025421076431287862509512617578917865649497393145052214711901254831350572219921146544170467672743033125264261062824591590954012517233879505274332864809048524060335141515902279828971985582734993519287685605621443322372151997003473858331651480590373890223542185624517206753141418625281294717491941706533763465869264347903448365442489860392310966855158852666313025162618182848846939254315723377954562164401290842692979458610829354416018750433496979128801673191902912654236451120854752220080332683588293857698984558528004208344168407218445241584956955628036291658832896993551411667788691039348272888750329986639177322416534316681056533719152983509673154001725801749962069809486216157715477445977526306721366614465393753844271094540909237717633493119727484425155565615475039811630616576327938127915922397718357071273250967352113342605851701544582121566284912498713445861723140728618909318922030914468923779509609278762411641269968823026021756656337528660558922422774851515909942239668793062910166092520182451833214839423893919858345758691981636721800172969626079093020993380686715923417343281972146813160502699101671113163394779934362234851810419307966013126694964914943694774361105699709985156574090220793063242497667933662246032579620115469905336093787228294768277708102018999031705172295385091647652377496311508215457533432378221365648145682060810828190170472662058236857577312141705795256112649546852661784045583407255511038502872712427107203344121845817655633140668412307194510394474952526720574384260182017392552816065605071493891459683727899747719823125269831859225441349368199610421347205232829581988695324148166898494129433929175145671517347659495059297711731432928348461345488289472400285525218341460285946562086340239301206168410520029950267756639700097645101539744262889502148085576697943206823130355298387143527043325221709927301264167478310715827379081633759538545776991560747279753256356362391625335238921971854990164236876422641030249898224232191692827216682249854365871691596548260200142363719211048224171157732716767197322395756085929340340099136449177293374204360388418968788625294137997949953766761261025883732631226029237526338541614542696614439148672090944224937353271837590972142026914170609020409298340837837433613236640975861903099223786563900338721013886293018205052907243900931617535557260471648348481409155101025218136110381944104008147669151365404006204778533737172617605560799710666754484423958556011362630144289934965838723031601653030857839753455978209172721761561943441124436650953585661857105198550799149671040849192414419389654026241598500058849017160573259966122636357586111396516064503977535271826159350422753715448365408647366087300705392252555680178721580711137163985693529172589747163236551362763438914921330550682095141819907029394277783323009056653646719500547683399586776168183596932036623434798519163429713836665439850166929706815111237263766276060268358548154112265863276151965737631498674638259523178085162903555133920985177962258782646883467977338000090637097417621589445920513935952892214509727315029093032608110192284869802546955061179664106569460080421306227429206126923984548741639891413275960386618391541031413796335959055880755000639833556872689078062571722494309629737264074873095718310302515632224622297850957801977515106286293933991163714247282562665227110114079573216702963138765091536267144524511372974690247655566550555970484552985800061236375270735730434705939736858482723016336325271230156003339363879219605118460073907201384223091191430951693606032777392059467206050179527489049134076068691149964955799410454512892023884902712092771037900607057555620848102465795588858980999315711268862289085671117945965165902914036677774501097972140950174659598341850992262709351985258113211138712878875198435273005846738091911591623446456369450133894775779733269473275898697254758940408081183473655081034691784350250396676855723636994823658633990210677145739169050084890541475398105918579337202980829607933387254890495060528184458228298815769312353178013242327395866162187049854493652889684208558384298584539382517139087097418695029975892828184470474884806116662846070056458373784225824935204349224972687244369505182250645113260741354873776375320467461093063031609064954854609109908352136505506777182168099879385464109722842795747678303222658821488206971640828494130655038770426496388090556005973203723019584340662206720486193861027853028555564397315065590865496714796887609741726721056073229127287976741598831635416661102929612034960284413730535324507512050505788797617965885533669564692133588303690493640656100840970134565679207954636365479231361062258072336144142655907263324123978307430258288780134808539261901102559720155468714635673604124100723964498503561017060425337176805143297058491327298028574619788412519853730174530193132694418670831457606508886496133825730854414863834548605092508325394763892479873819875816839698453484034780852616231350432931095236585126492224910346650476465884551895640531667713909495604020600170400094612637961366066931026513564157216668471791346268442115212488454672539394608819339746003473857281990033043010186963515971461056493978167211845167492387224052353538114210971942027846257639188955024731771072513573268437396606368062835147715009708547005051290846021492538293092534925519272662544251097977273690216251204116695714091726628965206734852151510093729779018801872377704155071071913269589763065448372316749634333795314457921550899257719245459495714863943695631895703132879653015713855836324190953401915505394464421057606020611257495614831734037545855531775862904909191817978017470269593823597466794689981399177843723194142828269575108117714784205761023265213759225455071114879183918878666352641783713618288635164230974943153561097473054698913395562907597354612845889714971912102036927649460943096296433178642025601774597251315644366819023674455980894093494580644824090859140905340449943436001287445122449553991503058724327019996241546955126190024055831774642550933903147661588692456245304659150272630917060157885781332107280276205729858335230830811215199304779397189953550701161815647024245038551716506314363632888580675700988697891557227842171754669779128597805139030513583936966249580710290943851957870123851558485666754526907843041093094049279668070031596196122557018014348256851157528760053338025786095320739275389304389732986423443012505611623597948989160778176333659489949396722108491349961474443845904623983470736798285905149035133873160561831980026595041655687970067275058077022953551962833812386108668452665483137966257117245371854557643903557943454713345308385280616959833273988651142632214368705618208082704624203349677734392046009958464890821489437336334975417590183252975461919219585770639628267199432109353853626418139808196127208641816646916071792644515917539920781484462242431279929104785177186140765087981292629715602109592084832325412097467863236243943167712294860683727314173504332073696147802214147911521510400417492347490147733303895741930606920295628004458720777890043451353162592554345389995960393145622012105014095798380760392941463970231799056829418649009844727492204811256564575359406159940471158001621723320447090474890887735349584014847802287463028848321796607622251091436719683880283691666215880902121873032013400005713610245601744662218047797411988125306811466591662711132124043303588366851375485507373832137365900170474610075401385424005787962636148510702517472362919216331048535393541378560156414102140001384681706113966767539537667510749381136519753830605809573569537555730188085098875289328282681885512917578262992569611855011262613583600568088441269954004830389033041071308842374500835874960785874409603209901952778760988268818179159663359976054257825726048094138601743130106954780042707454588568514045137048076486023759920235447662658767199085876514213616784247057299391499622243401145354150058888576973215207825634026948564021442464076924815350322277649665456397787979090635216850560492093731772242666768782062279928410675007442102070156502986501216034274965676006385119340255622429191814837339526050266608278287563323285408822169982668639432804572885636372253160240428071080466917321377344290435362039400636671223346201904068659023185099904358664557204646270027579864547852394053529206072581570751108904359155502839102995278657826268696529864941093173657404595241341245267770509505046967646190729541837599043687793418463332466036247975045768374936125460725436263879340015280197057279547353776493848110880275953896097598499392133000741300670635773327473987538402307850956614464981823683276423601110817102727288208373242976983223607980249711980186543118734000100437232749477685720368359716117848847776169753465528402208557226602360247851978364640768154354498561138269730904219972824997816400264079123848857023831379947689705410233294387981368746985678564203736399781888393275798243525215656529404028623802387930983469989686229948926564890497056465618432417027494691295812276108464963985841337609746757115291092951067836760900136714088709799827660229379631876261121852919702805181617938452902071025187534591901800769179895902019215680206165867757856829602547956665889817799536798125083605028273472203625953798187507132086327346298523263571207425278216455866935796107162574005991791258720085068550212879821591445978448427106373680240951273617903315712817038746167298895941105105370449329307923131167752458546108237095922953727972012397472747083868459514406056331529786539779659691850780797589015895066504000269717205056595400741432338248814812578785859310753145587692503544108996742698129977811724630499350286256460627111902764346965050884815393001969301533794413004086178552499569715383048710640083242703983149127915640026877527807329931107652755381125325881930263570377697272325593055854759881517351174985361852896158721661010655243248635891846494225821553880957770720862573271219125568446680096785739985826938746897330862363454601091687963076413687408141274627970001867078354259444234473723121494907350856780751473497731220851763759047717834598297933175181625851068241200946663407639570469747889554317014960454578356767731771437827198743897008150243356288346719724387810197806027743532305358785924392890657915039962038228937426900900062091117153264388729988290436026553558589470088478444741214616585669654156406260912953061209549891056114646770174101198808062069929215139418292551300132059285466174119744793012989234198773852702910594816848289374300919046690121248487771130621963141238627108325030083787809104231702342950999201524865248063417213773826257430689373929725071073122525090642725806994260494101371349836107450964745708394918445332761783963924382541156725476681148838530281722302164365584513043506479971709102364818142957181245073216080179306860943620129185813601407911268637385649850734265156201744489650059410818645814904418347961267077929367042841548900062712505204394013245093086027825759842706305213919358236888395867101744637577100693834691838677600634424281874868930185804430178653193373269004612111593016729008867378422711464209941944753154959780401764361760983252424438952444317541702234889277670407749865422409381262607881441922322581022745649301440592220579434819124522799060669402526021260248577380346981389778484819311706558302969201624498783179869049405018423400880867664758038144039384185956319334742276431118847158893364515594845488207586170520729153827016342697543063021566067060858217726747261879766144065587135153622397177763176629802144099470506946741251912811499831735451629842010802084326350157768076983830470334096820291809547011547442704012054649958881241778858585708727647068429765922775923412412324981497313346708040848991694810742147620796712258820664598259052302595302824183249990497676504519197400011648884087632615381901178463117208140578111962551613321500370407314428055197935190298501708301241948584774850225855838397087349111610602039385543621716368653378838635233347601568429189444650703570933988589093634471560172725813140408187146291401243581699956885203841049077886195507100902486029614718291562354390246266322919800087370537858937549634088182307796222997159007159338079677163093237064157009006617005775338472329230801120384179747066536747410032632683957528420542291564468648595380801090846406832926810405072341329800794760469799210981470443076735193227135072493231615378811670411414380194148435621144821409064022006880902980629689703982764204063104158978566199275880936110741155640594293177967042859561667348984628935602085058798424015129008034042623942442927635755862562345288824813472732247025830807434077365633507832997636464924265528651620305615520388404680642639520761288325460845690837878921012909401852167834506017848114397533397244331677541255654504843972402364169972617124995925472883730278867943599910530725070559329604880716376305819427003531826692130571194470471934066594407031691518138419440813374331366396448439948747510334892146896893983306505706811457775314869059870159972857945683407264480123369057225604845947215299452171223487109949113878028425561685588860913356888021290209448015678992593369715551789475622764107682520301906447508028107194342011781790131929526733369075181626930706688617505820834761430921545100578541619107119023680007094439091219325768124240332095242075433545560282195904913610445735086667696373817718449373429633994914911251161916074398157310378338959277247728975462717859344849172535871520066658016362532564071860918133969495898121446180221179360541142538132522798935483840139405393939485435784979016530482665446738057482818424875200314486959893655342592707530932132339359616299476659978199283794249171898180698205795714182471574387427813139955001483090655739338221174799275528681478383319303675124878312573195383130387709937934019022224738473053115052258186832439294962578043253888481099110007738089618825273672600515475878784223481832107950462743317419620267987499156062080720139898377918828140309270563230222127994772211576945409029268612854262356007955926138258381512928099455068628515931211598678127819626267250261717776682493711248593499963279950530222149506450778432323890559561806200651179256601697584628392854597513725483964849535439811727965422821297850974900506218575121241429294880120551095928365621594657529552027787239176419388115530418391492280630282851929288047547057029208492534549250919221725948452659670518250524540334217329282566857303907892677008148311521850869779784288953973584968848798935196023447922656525386696564293342011109529242272379306075972625233086253226068818487400952195548980185721195638507048349710474691781605024168060492898009321914614529878873852197124373060471519761601001618971253602611316813743558681057351128193903661300773922185077657193016035432820779145921273558822457391400566076342845671606485716154295062286769954936484117965650718139247192305328643453213013157010368266827853297846302416537984271678273699719416186570621913657285881676058934788238353886552496878580736513391771259880618775729294847254939908944253768503737533716387003939691310472107023219630676803066208463251304428618267333287006101633958984107883657078180433798718279188501760270481636150957249225513323525368280341177768485292886954185746440036893239761441565413431402469895296050622351966967809874779430220635484024554867008995499042344780039134557361837889364082396468289413366410612080817092988808303804800594975700522511160319040835470906408148745575319866591947931182824793250528232828871273986378604742453004040852394072272795932725363667034885555558912258076460470253996741129865815594271375446153817210780573223173062326279540705732986120370877218191478913566224630876237658056255230034711841134494518683020482973113576397650434036334246359355098815521841935462841098241092558306779694469546167689116084862606478594422129495202032829848935614009872768740433666687602088306754884000029719144322164498697905792789358430877474646858346287360953399147982738636363658409195349384453833260183441850141870462811909330771531295959992310923331843487526003734998546603701287254138806036594438211329587429543407839464550369294779004516400160424930533853093963503581059203789129424420710586140959974812932712674789467913260248767188315381134122374701039782090231381786943056436274973511181470935315786672059508780850220048752062861819973718565050685944512098738422890563924644874970792726386517795737250510933793269944736263220879545942397363191420627013527772526411599416074475843185796972251619284402461094878790736197076400873329893121511402308907987699645615695830913304589838148995410292654878346548482856552543129441420753787819161089113133392006185447807968897806272760046517888536700853947395628470764987303550665114605378691973779597005198046221329518016876283023057981953962037114952917047953349198696701809150180222185394890276463889043813068178173392649419457446540298944987236892227742954497892476879531653184543347641144018247182782572204468171568371352456189729660754027590823476634643189444688022294244168144634738447226277178191743805319527036593051245615274260022224802312222719539485278968097544934859142000279445595894791330015822383492749900120754926549898466255035496867925229718527764272249725837517678903593980176660166248102257784255070662302014098860561726448413992233305213883450787077319776310076959162356269060991675878886862614718619246106995499547170803646035938386028954755010434781195865388161769244083594889931557605877251679581448877765945153292155561019214165966891063045842144501327550000797111966974423660437733279097372640787739677813659662466598880663908993736708277552176863653489569836635112119938043785601035875366883594291664817030533989619123998053884909650939913670164487276419570766407448757382935850121595055910571097872824536960430809836928685120373574237806926846450516882415070578799605845907495787426347892935748393413839984710629723084895695822050244047085717455740826303374747434073914923911527312412587246045217502049705189397170478699395434498362747260188386407992434789723701707784903193273488694365655921975763410927317282966458811373035509862028062148276176361582527961001671438761302671174230405877251009014504202244969313637035252322869165939595447268488680334255956331813139817921552557108348634627328107457463029270070832731733308357434112310728934824210248972903022403237495783321225209330583923765185059006768810064468610089941697052416186768310701988315858003558204614366536229646744805392268456908587507655621009180731249215752764205419277538826658241419352619304334319285332103254651528004336373259005510214093857345862241134438050346765090514252626666610288682515868864626863620111293768591938533448012201973316393924133930228825231686927888624701272022232249964180175497788792222516047446064266278362365050062769254032633011030324332218561266931273095003751248360968072578778409740372640932775984616883125682590552159535344540330136723298983931457577946740926525684096295459990162063124401659448147891524172870767638782054447409139900538558347343077011536111244094727012886255917798147578578415189722851948457293934032109598426858811466494407011898669116163140186724668820468587976148375125603437879428351119096403734271860679155968024183068935632832927530038192683017351152478889661186936507330761235447920988609860369137769455261541100354960676526277320326319801292734482279808780374698484619378345647039237255292993694377819235718172846288731782381133451884886412528808919764336958793069347353960047646193106367206477227829540349882216491626162348843736214753766599356813176723931230679382118001907873854789268294718727560446124913239758378037699077769185121253143595411137832878414895523362369874198710629459915026864171592444177764859558405599984806472045458986813282213527773555114939153010164036156367897424985040167453271709653710257136592148461207751949323423295944860757504060987898099414172662798700449402897320907392133544193731231716248462859569330538566545740501718510303154112869138543346506687954448553076063783023892649666293487098501255271388402081396879150236100521530353665537596271496701369627627211825396580498367116839431616948682946167719321413197894081365218239419404877662902736289028446276109299269442683859739260754798434585038038210513847224948709112158033526236188204359904747774325848542701645226849975572649968585617563029483060843626953704765186424097907272491027293726857223419275364261069431302687804387513526585916007848451334660387201761563628322247256700914084979333275080265116074565854507940021072056509969289409466745518249365198730589763493862994081202146459087146860397686374351015113455902236826848660891058303095152323179556432699828289685901928076974470616802014690135172458655755269476377123281169729254095715047266486805345297685860562712224019393621256858984556904400351217269943740235275055619758683445968714441113872976829173886454877834333813624204266950879621699287431883883137823403971056117216263961431680606602582146956227662125563861784704504900107000924873392919416490946292077736354443095825992183669000692959000335039338924822627230624390984178507961758386653101058177056449722338828261627038084030661774864867703954216366526782244210280100904998377425268813312558848952992424229909219439802215917223001167207895245456727173523517962647541829522724999751902863526630800370613500312315624620973697614524953216227030880706064627328096345224876677684162346442983324673269076252844745199415002638273795828839936823693598577780453830276823655369181473544519782667570621393762707121597910552240213066912563153518795947990821578332607580139213648795733338837413570738053431671648203257633043211799961413678754862460486863302779367423369245369857314448484618649460392157345935098994110357253407288047389444500482095192654644068098076103819307094061681056603096806032403388379428949737300942160749177376751702794361451260883159056834960621853933477417750718820849729693769328210730036112672484667842414048419478469274248116657355877565734204703426495455620996610426671724380702838295971646783333046777212933171971837910443016427661267535506258886695418566735650078527963106149845043029807874866647384921964260962667657817611278462392004054947727889849126455549259915804289166691155921330090707099243064430187883715486006500367764416965329405500174107039746266325071401360216402958948377369202965839648410013895707818376762491111263543813278038458914483857123508570686547423492352566222872996572457503217249183588123843420060196372412130880869551362158546917842848406632609522563466196585483965338458265097337121235006499081265194932044150467429916812950952399212516057736035840463138027213102309808869568655697711608696437847247355692937575061326601665725419364716412981869333625524061306721152447103006119942384993422319491989511276389908171129956791383438499892204720778029589166880655490995392790842125569649566476021430260745439356456228038067985458219131107415175995183754208085205470105887123966374413713082446946865148855595533271166512355088996255161748873358128589484760380338742815007966734581216843640577840606658034754366055940648339798865808933189201553582883542824994537085415972864718085840249451020702702918597646677711847295679680436702999941874943750598994723071037453019554496275581722947336476285389016199970768541131009677623294971711307570447969819585829094415813833150919999292494408098602024906141409754831724963996907502141191083419666176144344488704238834527485100329958926074059117456477832967573818320202064378544470007783642570674419869773096609393822123478667853414377893945928727841450434574020477269180077000475080046684834585731117914673694598402207363269542996436440933623450936529575082719462803047922374406967560469898765419928899044384276782351859624819433730932859829409525306441723223135207290307144939705452727568382007295692146657592240709783821405328161162700655710991703555938033671967648872299496846227047179180396191643694106496839964950502478701935285761927851626554918068166590701861853620891066981446708977120509343191371039883303370658247906931215848312925688126555715067590956047920717944731975743422840576403963150504768520357423598416074656320715903544561442410998070450294022708998332584791963683781069718623088850373197533412861021157978038939838178075417069815173050902705453864522783116003956497566396021866329193290118453733424364939290888322796743054693649415395262592679196305732135002931138970541345649325893871293776513541079730861097830057111005535210742446660742762045961048190994998667279294422508321536007361760092914133790557999059718704060243497858168051412670570403600113250423585526551210573529496277694670460484061445568342320417107458217945101155952775458794070656712892624053821635518407733145184816629389674909831803254612413279780979631428119377788102393747498615575819901318356916799374488183115344161994751735517266820801429925014841436938882207831891436085359204688843647128725778122095383913844139184155117865185251325891475725365352468290122256409185026048639212146583146132364478704910085372898973527607230173106426286537613942607763886917985826722244469055296471442412152712824940484036956347732864179251184792778094038909514192384132132036005413856995402003283135102957042267326545417679909065680753015838618854514342363481820224722293196340166711154752776605825231696003447156901728498693596974083233468244849235595147742377994540574768549938868246590394994435465345387229544253996179520908943391714359566912491453662532049123221289462824955285368701455461990280159523824378928845223511875167508506491655376982654122384690460324406806510947747939484843398216755467089373762597741316775916158518654494277640052895584250961957020037674479277714555600089589092237421995727967073201556917044574865895618884748384220611230169324778555225662079362646682561631798785752177286659205414128274097129960498315288628189033646862252500864426394871170955404208194900555192812150518348697650843095418445725225136736229249065603450612982457799359844269980254327965050086963787337042353155953392853535068282363374131987542044949476827017988668496730875372938342173957220617043752097284493958259575276568072803635182688804404977082528721664575509913507760524222559338100420108482572948910155869218895577769897304531871129992198092649450083365115222140027291972872653802197874231161832766463030908824800083176693758595009363273357554316852561230612722832639318092176913807801735402574848015465104617155910796280767472445780172666105911036273512887903670091177612261386399202624858183202143410091385284115625707896932785667549316037719944616761223880954329972460510823228510287353840700808910840141410698329664736684659486112833504225783529501562546543796297351899004466143045440941908272549032684584038661902396966816162848354678042168105190402403884244643101617849381292067899684024632494263761919615279849527764435171074066632227028403999444124370370821972363939559104842389290240339163293669259736473336281715189676265335787242124391718531435152197248738449890670437071446853077786007030879332305139504063288175613603164483160390568810237770364625274018180917631307388914738743294474674997786037399458328891147327758638741714835309917864313623691127599376999646006100129720049214621461697280420930437486510215704241287437824322185365997483175089329976763790200449164693050944592541542634031948912948839225612967890712617598499871749873939532224240298562659542111895145122083841889216181456582680271767198450220849831442677021708068452413057345567207009242634773752035257058900241110462146926964840365591153026419390413073182149223764769046519975215780168056385493078387354037754905303582999787200067219794682232397739032207306030504073624284450757550769635595555626719829381875578785048425380006192767770074047705664325007046144475490999017310601209888377242657141051364195749910207317630941317382686046516779993835383902653044056589331505543734707943910135616733339907431329964724767480252755827796996360437833739176895680349482534427349106905490522453889290766004861551030708959630129804798075738548074860817726856061474743690758541379557074858067728878143249327478864476221986540131008912271250175281812614745255000235478821648227700508907280622376534560514134545548063534708623898573718230461067971821253482264218144067947295449547466826796215320624320620803895823543127106570689562465504829777979469841452157652900609729084084398193655449722564725411226645635617726593146599259128100967755544641359469199574695140767622163539721560098819157915046848670592872497804761841186664852777247614382842534848224917341412734537315066319668534914145887864825853071947143380466786044462430540769010905844443259287757185839997294394691242584408470852049587318395875715654053304318324447753113785742547623959850321276535708471307716786004014874745073138027868759601424851610851757984784073812276162788410641356394389106083147642553521142081673411914940451410398571626735044564636982996453310532268062161541857381274933601980409705912473927879340184406381762852963025656734647683049334010166736025701003689021208356625650338399585126481406819414307690617497979996858254385553060956380138309322948251445037837621387971988624758321901658722487195639339504776304000043010886698029464647864703028746511723584431916271669054120099101086764011362312927873937414886489892372046051287649200007882951096030099536956224303921678698251077088755929367813486024634661336901995305314020825719695848795965059184767336507564934207730082254742250209267675412855311363054368829205551066101294088280225513761851966099012479884346075954688065613398922633588396189861142641595036950626087633240667343118637604485668019109162079956193129631812619524047493474417535865337303266000310063505813845248663933568456122788072630224841308512988569902356089493759665427061884041986107218257089179211126433084807837112103225205550038384036293920710373350241233309077923848597163461861973151627427940655441547833902203571818841240065348202581346878941018054452485312239782867895942080513289917693316320007769506410017205516375909447404392568407912187781716961536710923531502708232933609886834608160729702092084929437180080884010935027769816087547434458104803337999184384595903877706416132530000872439533482366318741485575841859262435887859406594345238031848065356797983487730050003340321154227596512955207453157029847926774635562894528429991219812786340962598774915857107386236327717619380806764896945964818926448102180663734985444433015683251392631147840131646273142308655807300459720356888783419923741518793045571721350802996019396036179610060572597409378529525826104304210812572723894415010913283666349006240607675682551016204582630342305109423920354572055268581198123583285229887321424640006750460156366600097130472126415630717795808609832664220673883494037786582727665798551981569708669276803443772061824343475078522552732827835436898747280708089887681021272845811513443557692775763669862536441225186373475790458472827669858923253572344980593702110702165184738828584304492471690566042841667878384026303019857748379733915801229470905060510058310740544569955212328435037414809788773873648467933733676345990238550085094175997461648936255676144385214183827796174870268552554343145351926175954540896405826129760220529833729893243141764918238351925854863972423163974378655323563262837984103136811704647256221576537398099578682953118929867028963911439974718422118577796496886142987888697190333944427261007704603141489876819799308105248975971922958638748170055244089591302386386102768312159663968154307327507371972119362811850282851007020607766691281929620797333757692484925815384552004675141542963391081072393511984131298443691419295890378954416583891044748401621341815251132640516841923908523807886452700615756304354854436127984385792671397198373394970752302109567360189528894988049977245484726565422508657588953864158432104883371821047268292533703687745089117485965001310281449012409511865078695813673901103594429268849637736890044219504918930290082674586244728644158077066189710551859769046292643716014075209018772633461451760141514907886700341346219439420427110955870116949100449654067554104998887885261436157177879735512184239641618062326243887990887847296341169958172117285278920480773026295493010214926236781622728978378407099734388957588370154197854089205558629772515235229077461882764960265832974052504875114336473075237492338393077034219039035090933342406416026432880345700741612420586859626337984301575199147674715263048625514653908309288915939803976807090261480075932995703910412709708067035372655445156616914457805677279061838549895790240528574617146837689010266043599748043510732014024986865678156418491541410147119816405044656080370335666209368640724309917534733143989362800256986740669597709143754457566390526230500238577513018236160805603108078487164923962611241072066491388055320246057283006188604248644544403157607475619238161069231760523298210640565928363883592684356112737657487446344853569840434937130725099046238813778149792030599255700140267898501652090910858637642615172880825308020374318638843391873029696704420542322468189988867205367755515821994792583780589580356730334829739814452839396946072178290175631409729382389808259653503628225153546075061847994390665566462752224583127859391601103126126205443610628351905543586846081458255312396703907781942432569248963636676307306036243854925558945352701856505873725490087119550856804017342553520835623851517600791501495446633868810499981325249816883125811024988152296365369699329876754657961395288163778600460992631332104977510067239748542570347683744120420541685311598150013172363912005590665110206901297183839252651866579954083189122216299525040552934359725606169784872151225436043845743473490558346451757879166882667020728398223668194163726671872446965767594324606457038657388050840774204764745998329690376858920695830651368299265148618853813050672185202637260610942975239964005953141204222378636675599386496445801420645576364274054883265406667822929140721067613303391138424328181298517527322373945097636359113059626139353231198234176885358194180228849983865548601698169869020437737077769664386005397819333488181879727504757466142231783570286035641019076934293860371978003071770110013954326223083581244116541013482606603116598955617383092218910532243737808431137290303204476260140521272219673802418024744921163098776689381930513939977111362219788953448765091185604761018418142271276350878491873076940450219799014924570341356746961078421352742939078142327370687789705562921241073943314987099995918100298412485001854627459785524733690044810644666159612176318883793550657760532992331629368810339498652572335462262853913464974860357324386237930373305303522022623863731834673536571945781829285245753452080074102103399958304477942625814158357417115478018648288555586207092582284878926065513438158650598876133151451205679116102064533882753515965115890291898832243063118778103632020617492823222721433812573113495013862017921927513966923491735764307423747762092175693286155724870662891280216846771969231159802804940552885797248301418085561233702630375858352113079589215777387705649247176774579815928348413927104652868831754962668521990166375278048481511815958524144152883096838253341101442417138116628387436761310959929917014207303567527204513916908268235088017210374458611539095837317193491389684804913842474993948511405092755487598069821190081761641802213734077342545411906432853601907722906993674821350968838538295296849460702788768628675622948383453392080134055927051489917558495556237592882087566061206707046591688798881072375077267987623947940138912570120831173192994487502254604170959869842837033254469481430592261896677509408472997895919763788899074684093999478613403240185540752423999364080851468164205393836225193828734815681950865250807472891521079361874524614104531373185756379624089631681336423042916419751573686333144779585652387199018128243042081235593321571723326494340673496246088196283036611709853089669398576271530858189501241665646178557402249340504368955990958432050231866906596130579883336666335676705608657865157590118388997128451075445224127415717725359354468163169070669525352357427225251659158262695571478413841071419939214120648999122099660928103544498431401003936650924569619555077904123528756320442204806697981830033059730709528026622197719566847302680155367241478991542338232335658992787104827069485640962744595720920415700058754140107702452611528887511644694700119888719955794696896544390371199901548076525251206254063765847007509060757718337394408070148613084156017762635894966981358056715313166113566508195640717512708988715661619999760157798161686260747915939549997638900081080489827760302272183665199130086676633032340168617193991320006320459505564640397482271859060007588849114437486041853767737352984403408904662194336028223230749084644108830658911820329875701641322260814755545970511845934170910279605740764736277053299457596940628887673576447605431566197736235078870810239848567251981119558368583816279564974935872131295586950158699480781836643460911089944028472913151589859078846846711488381992944482784828734880061220204382382259377783544313780327257002078749997134131670236225360506899545064971701547875973135948628122493046615329808072016721485959841214348532487206123382032703198015242210906719697555659694214910163825626365938797445401066792634106366906609337025429703906244613806009018772449845304646926363042472689477289071189701178589193018682794785548842732173478341222102797742194923890229255921148027293239084186771110835147705951043357356802259772189386772902213152113112882040673200374806464318549620736656718794567849863536606577826492142328880942389118124672330013616477439440309841324964189710510626992769920940734223361972623836424555657916037044801389142469135663813757165183109352734528092104932085037439598575713973230220014059605685329366249176066169412487750501998294854245714877251065490255864648682842278992421321323346075743359473737778997647636947849264141186695935928069717879535600605024018424905484931612390278985360574462751177324164060166943178955184809893440077413084699681812215705843004449071725018327629942847667191513271041160230344592981762892057744401839822806303297656793694608539603536473490016214971584618829190377188796866609899161230803695556899082098935076749545102064176119634904197739275774088140411450514601496215661014417200886599854760387478885977363319001410328805193997532365179671074711017545117427113677464681311045283541408641885672430496920124005907876714375481979879646649657627817480732901990388868751910228125646903212602390551357804153345876821693679431758451761233733746263516167405681544073806628629773452448095465316236844125018710642598411065822953640100288169651789659747042821820932850835862329454754576917321182788164873736591060050930079350512002006118242314188595535761953180895528602960920340282088994548024033222871807402110511951491862628533668189824905559984747643554850830630488504546660456703467796840339832075908285576304493087554407883295006133181260130687250287228539123669232178142351335524379948520274967116743685685876683909112148474888874201057998196433168812287369593612311866668593591204249677169248803553874888043800097492228640524584858405277753438346446106803602770859201744229324590486121298709736973358311312361264559331060756498375023705505781942114411661886067179501167221927014737079159342511391440697469346713614095178289663453535245701880827767257113591137116599127941471423711169181127104939816356658508209771495417025051463847201253618930049294537460075624573869637419711155604609325979829873175838446139915830354891769835803680142282676292674044952660394461450156188089120243665747912052779929505447546256791365173177405964220106817934277277355367996976901047525899576061152617599421682258796532528701585786379701991805122374420978654326740404048826261063143287801949708361369056234455818073613819029155893173653613560209531694732333635786670863358375767558203868425864014262950994183961645985881708330108308617669849173067267732599428382124951156594477093779475312969887535534942759242659677221384650153914956472952796608168478103133316345677270864736678854902657425201305301058850386447367028719458207699887874056443352740911833457264976179293568366728173426010741875130631092766073588107131985136656539076312400459748692607704852916384046330987176266068152249293785443718390949604508806123241448205739417057503540016922794569171592017305158872577216751720047617527389234311006981189975210250415330086909307755234467392199422521294475022117407787243634170363604252538103225953062057726830082078969681564099350253446170885798561919431162978156937039173722650913475151945553750630421202135812207654966474601474726201441839256988472455315848971094434324900899226605619781449344371787518450337212112894157000124748978253778265391882110685900474787145929001359412432080557134536625797551148810803353999246177284057453855431518741791746534765571441054359679700450890970695101688213951510533522558465023261187946615793567558733978240848564861684157704833317262062337115820746262730151235125681483219131573914332900741722233304327499054971525879324117999616226440458011551624660259829572043371988602323829004053184004112389404859944314244414273261859227189024614120658273028256205920985564686757868666422200211333509270617369480904282545312059069946103862518093219105735110864225591648324134924666289317105337746491085405854541304671058067623751313709816482887547743966047853755296612729992704392042080774202333040209459748679559459531586709286484279647636047626624098645749209251487126658559479215987569454811520685508641779512266272129031189070921117440147049507316211108111073691867984249527074387046167497410436615415667159566191807133879042347934026224189071965764373073854499873991067515887212066258754840168556376692599097195674116591973440811426813223051712318380161461928880392430228203881372088073172613505456194594093173443157682674875149344143707868267077454985992872019164964491018949772617970754958866460743658027690108016968362903607055005143660177551026567731663043596279571119782477435836930345907137783114785251016370200020198794205278262740253731429761175874991714243227401449166520561163391740952096826315723485198021362212637153091570780518372484466326111889585713559451985426822573111275546100994946701807782799099719727457297119548305506403469335215052299412963372837227998904127571638933473556069008353245595574030347351760835488331205960999233354596348494939900946460278633858754557122416965464243790440222223499909065293172763438735843975369776015851607187533623652209513549959972019794297949956916118858308415557724920180955596257336491967772514934780187604570553106628607366193402859719032757520734303965181357224280874880380283152956919874297487889495182230701936658589607177430527437756258201641303738326506947060375518739628317240565266959401391564639129773363771579490690328374501323607321068206912234762869164751609418594378684807910247940078980422524964786418062669578787010099857145832594532106189627860844263095882035563544433418800347609412880407532823701077509384841675980836221386359310490300843318648544942298098590005674814944936793838378598110629116123607001439483696659204589606202113569461738929072062244555431382233622017229722175806481159222657496859783557085466035177011207864753102982056256166819341201797285586420443556031776107946943125699799318198504880345280384539718225098881741290190093548877096897926828168136925809284536855063548185767028479821655506508080145635161661860404815582791078322189026122597024028480069510476681782662914055694050718636282454854700656504299990567091066600366029175432058912935421375330224881885908276695610960307141293010641848717285442049184749383154364020134931499732723915269060241911343668663399591515430640974883928932796895722030260115549700932641511275939427341622852619245588462273498634009649644899867937968640987408139171113905239769294828812211979640584075511423556673312475069845278284962804621260739515296611368547278088144141556054317952023967716646092500738357387842745713255611365539126144170185310513919944733190751271486890543517984583866111069738254663072117883835588174944555865501196972538194335572380335811422803084386917052216429487794300406810851061644152325031241933823306434663823959535546958035616488706866484614956009301962631758965408696996054541179947279610096445603647288198484841352297910072537567350109765164485757098881094210183348171427567629983773507063661274485904068725598312225406072661305174186255569751105680271549800106709963600733999019476564975029029035748887122253401301253453600471745995944900601931323941047617284164445068765974677122156752208758927552368944262130575698863089824975403040900587757383810591571968321894607642816833774658003271334199783055974084164887212346725833961078511132575388824480607302460805373118238074951758307244288130973436532504714945979758931331234890511602910172606305790342271560505835281897046768996242623992393834025631242897758573392533718123624134305316012012936252147081740165782277762630655611470737571087765055901785299926580586999134665685096546945695736529504461156480602643935867948600407676304000380549471503246136680915973764062382728064123354081747537823300228963441433539374675512841894052069572998534043556607071580910481358265137905252333353010185805854952701837652381817963212665603903190755938124776600974542639958067622646050924052480734295230372895827857976132677243007915466599309142167299839767459599411025311143314066266912521161096722456476416132892827175286828148718601611006889904249686673167660453489078015174749769404331697220422716709833531711701801575493584201612654620288424730532772687374283371659265231113071123540458771198626919149381442346704186185918305431287829271471736314164372367046684146855680787152947715514029020222381734185527890108930629013848749816981855852417394023683594228481132766244642703183395198662740139500681335465496541946506198579028660668302055183623746215298486402359824206377465506498532957851322216951371189479174880180470582093542876291454274968398485358808721521217495059849549850447623357169504695740934441118032534067019897324785119356419973324268443762383449382024209117839277714829327738235452662999443523369503177999654084066257750702967410615491409893074779957640611999158912472632213006063124302271189611429344068930910294722850440903616619424756388957551938446615853948951410669787058986448678536464707537654196851858229826434544173354305955520187923655449666330041456906078042749851372809518652247224504319626531212223360883641654024921875091310834619449318996506116225349373446546402621273770931805721755059230485923083969613593068974733018381057210638934250770839051252698518792057589709274516269356224007754501597922181981911083041426617864538581518119907754660833090866123333399428579247680295398623011877853032924446195346698672963189039446202845397671120012845994815925277005072571776694285302454034678315432583458375380757780248246814964259313597125056480718519503548748624623077844497840399550722570259379680999451140116546967605520104809533768561603964796340224964479377286641011972851693100304173878225492674213279423344739658799550220828334349190815804060307828947127954350641581620077373381383472754903341095212349925682848105203917268802275306575408003418244230625574893544396158517642617881634463373826206864792607197447827751949107391871400720694699281290754665426957326701112201239944823140836651770536938592374248373325355007439502853714642764573175929508187681488979540809365292413929619252336200647934007569831649751519577375959941562508875751203666579548211733996761078167548935786869930667929352162736803709526222761343820664853706630809335103501991182436259220598990307115370993993317913632319583485693658942723705437176435836237535108406014649030808485041148302342675236323062021242694434359416275984194879706918543139969247865245279946160266060000511897500356262175664281156335428540707503634806562247805084872843789087925935500163091786863852678217669351062659211147769810957082975333220302765422903238938342065296263415684008117846648953698490414548863532071625180692815272644706861312316683654369336691015569404906276509022660152563703482603169045243654308169004512915408600469622326722455526068899031320255059008251433307404821275749725063240738242268487432126060762461392650075630539852779188033788258680044082459686113936974212573579426329760793382180243171553862435511523824350135715190139232339644817340492740134820337197412239672065820062003940920180546598397273354196763764074583611447979452673935149311472133770104434295996049824948297963447451554107020025273039975463424439668776880812962843659823006932240485654996316357752867235052149477028587568481778122396976471172916323688944451720242993611854263389350081574273798277572682127520474487560947119633366154884219366924678774955268042921622195983910340688816446154450943417214483716988361927183114196957820360059049098441197841689714722591736292982101256663100507834057125319010967386334696015457123274254064330820315912433583034503253786557225384521351541965007404302662728284434981093527937777134369900802219788822931765868976041626436035426381531413421001991154449272269202744327828890387300839901967283371953651332843004369771057922053703362449064709954386869512839745907082787308560374635831716308101650807355561271995815854406434625142027850936304252399549786030584321640443913897277680958625552376211603508032124186507218892201276081975486660215769279751289150226142445509035293472544841565288834789193348003000751755063212980853670486063504583819417747320726970769907566177197194480236867277038454577233224740438657901433705930260268332838026858696190861749487908265832490200294455408247641322971932693700448165162753495118953092737813066847135661069692730370139032618949438717176955828586176566356344549840678062823172719022187944266368846618196281518074457026813301544705007931249857008524631176559404034855737318463927514610948558695678459962756525080041377142856216284338454620211269523559160835467699340096710226601026898999670321698527418217923371194710630345971939737652533704686257389645584560864341799231885414330435927361039509946056184065607085267143836257822856145287549163981866863615257672175221125960930704703670731251202011845298859554756023315090795340204766466294812490641614878955551692994737986862393429317340869974190955609735161477222957442450370966896550688220437535310391002602273089851081368359793456490348642309588442582069378148105394991342183040003663959581849424006348103466625927492447051599966647122237245931742946495251941143499608067983870747188157609542845670965594660954722795615462055116596985862327993060132314114510007309046322504330931028820167634400536042915443911362384765050320768437821532417561609971498829197084240431000860482004691766699354952603715937605466714060863825467569912867667297780059700459944377035047268127698310878478475334808206368038475365913393017947103334180964144237252047299486146272934273535057202970190453569082390146334903212754440294272921196908029511623748955572966752055117124133067727535678434019302238153636785802247136380493522347745484545208390005756104387856308589278486162925566590774156655849841509712712866283642760222637173484680405220133016299814534448445385872004573259617955124489010998740381309667050812755936708539129551913188356167654429828128612746016100197803104673992654212099774041802408591870194847268924320047113023512003442580054026341299487325107212856388849815660370820050246933575252976711467726320758278232380141881110016603586751181792202827041296147741327524092880185433095752978820087495812515430223671181890286950948372394252468064649464489022954954400626895843049290954395216924259874441622646890570186617071958815022571601874910592465714557843367968145416202234522968354817760388292366351897337143503806433369576954079429447950058017023372629228785744148981993619031080576905829099260656251837570201072567737112145938748293787060809850795735052096461937210190544627438290978391203692684303816932868655553547136150929110568015548095277065504109815090244530556667700043977926132952995948091390807992657072250742903217113109065583590525129153086802547076097534779707404974618340335371868217696689109202212076112273764940115755796329167372576787612080492375816857190730860434740504612540966415459274291541211856190471825493765553773677174299402061997764707246633033207684055272242100064735089029589096376708973105808488450164768938181184401868319522178478342796511977395186923361322130836710475601708063860721096603546487859391493150146352205570614546186631821131407360001888544835463957889886804801428975340691581213059321200913392995762692202389198052662255567462425839477273008270876688441792075145632010261989539116983818892057873554683232576712147306474941982317377627009704954644653685765283228866386855566226939469458874112737206585640416650829060658242929948003457476812637712702179893533981746826230073538265647340267120200951930175322082946808714374048332205309148927011183567992984526825576677839548675012991273282014566278655759883943082486184695711776326747184190080263302351025505165541097296851848692639735899670817958630986194317771599795015432083707275552986419103434230707341411719564742287944860161603501073625387802505786048966129583038897636760149926276936668899670625165089843686369260321320331117520294236517323542032999583403600568224404454495998459524514852526012436458438142443861009786645798910067504393008414421274393417909668920401245779222873770751942294235140507355463280685300559563274518448243460067379821957656623082006193869598560558417802684564349556385174236704605806336613464330491490746861233814610288334368145931055908042165420531884683816636821792386444347759185854373825498345386777644082632189813798049711268632355037895671366342957193890444562723832557660401406595971838955931161864746633567942796315203471890117599044736330278923772178675258892222636714706742869734108216559265404936215701946304368045570889062166199193630698913294742771677613420555552848151184710454692126038866394975831934340077464237462494914914032384308721071641103949180666209181746858974961174348535002713283051265803916677641824533632305846838338749196305387656948589135107231535444483090301915314344356076970969295561326891922007735607811492802214967560074035298170424084903126341499995082274621088837141707669125196610924288623461490756109325883798714474727632897752905039524413377402031798886439988536197313562023819856704261318905154008922283046319526103023358739458354858508285387062436364033093353432162977376641725941337725961961970964814830044645285794989915195931411355895603837301829708692681265280127020674785199132351606848877632294023444765947214602595563440181511524705999786098902882397157380472001730492429694538293281592377291987559898646067745079806035899040747835141573249599124636188624038454252332331220487794670664722649385368501156585711736657077375252693079298042390311476000115874465712411895131460323282598683423394743908470793954980868674238689233730030351877558924083442562462279967521287999937077857835141236104336243764207049746219351335183282949819165539352109398435393314950623255937084138909109566240173413804399634821676749609657150286146350410180237938858608674702522202108297116217099135937463605400407695962330131182063814908323939016606486767791239704820211931062660718592377718572108841327200854862248359048890698153030032707721985745938159852697424875081016965326697197875102507677291417405276165974596840459073521961984725033112482553110656668349762225085930864087372830606335356169514594362740202914211324604311333909124034031649654675465808659028944933216633455622710712448594130285448337281202384684915768805079322944216017315775039848144600248781168115527203547260883617662960212780719520814796720715891539617998256104097744267698345183906315595240237887923911143866105350333793742899094196244892609935468197343916706826918281550144617602364703350510452380919934459813991805384919320985120962855537676376173017265632565730331610063524453231497010509206546253759717881296338780215217796026538044669519169748988893119558436673580857706549799502194769896484955507541147752950774009382645674552213451471913733787882703583024692573759577375985279275656489816952098559075521404939589945418597004142604961479640637415243764493202008344425789687045452187741383377955204985684308674088533938755118496581813961184995721431708857442117461158136491750089508606061033670194544962683905600316348595418080095974676681966357353473943398020745712434763571228259547891386016012362497938254879060732194800531810294452991453684916164902238198279130479349566181670632725613158487800268868549269098213985455566231440852187461373386182431521628429878690691666489963717568791400670566427952695243690300143990725322821838881845954571063711870870075257697456318338939875507536300587765144482681581630904651297167512373110665299267176964592732631564577881342311775294723807650038382210950608108668945293588687389992011497528741721192050708368171013497943384674917866159413092635623473361141654783234685180663079845564975863851871370948299973372834798009117632153539194730633683385790207984114699117725532645110394876595529134462603023271169022317887288459575102344822474681820379810488353023708818031266738464711196348941567572717317298598695764202437850860811662656394349952833437162819143155738392974279023369600729501620152213189073792248353414733438462117352586679480257272096636671126453990681207810508708246819791023475950210010837112073628739260092129838777605867666857833156628105926598953386593735463714540556389064933547913576999993374241663302880409467293548357937576123105757143373671013604593830174800516707406454722976126780046537448233898094673383579196601561592427638977634769238916400962803512524586454263661460368724925120112929449956379545062611730121909049556793545000692124397582599292847629676369432913513615465607044422267208343178793091969774017603071875733953065039540677185118504917451747814780841558512930846341826006259448617454262157369144109503745505635756496516333777249207132416959420552560176729064617451821971701929315448848466233849069235728412453131496739409414091326153713624042379822268409889574640509888561706262538165401271214597207447445518664380821259315334504296605552925261254010134395356222223726493094477412421568355698414833987354988627864349228689132807469390134460027026619688832139557621662673411364946521802534199108343724396189393844915269194393389547043570160401144451366624460818560903759322213073431552065231747417046072842839248985258643131302374508076110445394812502043491762736279803806618980355883815735520180443255012524858512901878599404532451592375237633333265770098787960335108741594828572322366533560111175958438701851184288600204887762646580068502718848815546625916083679278132170712221581705586342157797628382324782519117000521430846774574304701884657167254853005876883149896875553758957925000694329816052539532821477350805361686524542511014070528501130021786808318081096314446875604537188335512712336175302640792324179463334988980440194146056075099116905930383396587629480747466787276687429253447719747751632603709971714171988479618055136590047290316467919866137711354824620488424414507536499267025016145841483222101259339372315148430168820166656644262451805916747394118421185966799100926564999651106780627678075459104627971208068168769850383649101587991616668126163477568946261302334518513502593556393788555560984251216056676270121715998388419796898100306025315182907104972252510004560707875732947474543354964071228082387177776590020502557796295086460562688606851561124650624588102573182054638040854975398099489715524985805449787350778339752622767020209757445313944587767213836561521417358212456376484736910723106115340651553078638813551451951555265694268225480843441248429325062439643442451573274042895706424228842592282747992990244979633716439897652016516506168321822321338373087714577449656831551519254908001856609420292973218488255348172814295463589067135136418635396187752353657289109495085733950729358384573368127999981538341737338183851526476757704504385571209822922395629101562152503762697198623804759499581611582617178366894678892145769518619473227516995421951635622439021255646740755756070696265287513862682806483609585604214119964747501700584608599375758800027377030767775672874712679597486204855261463260242562671904873225922246103049217892198242281207169722381609039478955913909827056233511602503734159830463166509524986273575371335857703110591822050510936676861763602277745021045989120990413300604096615306717742129277687599179452435137845148422856133323621830900133534364328336121898067890697417308749920741537858549894088707108322595397464133722292506237812552568281417900086489565256195720130860878583475430120126004495958905536421085507274109900612226274034290577942982694228049994375916317254801281441133077298144515116265030270831383828675510613188238655249450339505720673862272331576222444141489545639298187737135428343505319458024551506124467809656540401868679590025052779424879184715487208530792914167100786115584317976164279892188295519503076320588245906290195497891126155812892733537340081550829028922276776376619153849965699916582524082325436954978704219727757625855476551794185561876701145039018335963640737555462044895690960358934245830926960001296613669355359876482003181710191029648622930706313404041921237629086429448069988815105516328784797538517351598316031994601029606722697883761628884083355769590780478190176827489757608711247637674796156601360494279645105420982932153803105614045790387625048768410829879168113321154768343749418015768967898836697653013401453769394272586670667252292052461912196823244446592614401419981627809462859332605635454071097838451757905095949788735816762835478902275824455280682388445820019683388895315623843329803914570664917640872988079214053934424826824693602442042236879387914024937542316920326246369775082443099145249528819955177016954801627939567945590660263043266861997783928520046793606559671702593009172077225958962754768095929624971680301711620438481981976428588156599177258496265619025379019732712086862725097826858208259352762827285891510115433557803515276055077367741021430552239945485703116224192458904636892689173716847312217401893911496423802067599401575079053454325821422735707484304767429572392813578027423127086755547334536611125872366675874374893917260681716085165519515431190610588783863021539179478796656373315459254321261864277535021128335339212371872380271697653791930197243975438131821729021615020163831576174519926409142161198507330320775406078387119033685543734761276677597564812424274147971774249802555624359566853849800180197201663332314830980706757496671587633548165440266690204885153154286920585630937362173996319521599558764103635007781381396316060243645410139316519371421811912405877599349099067540958719905557815070757769528856180496713241352607843619438820715078861451227572324704983411409853547661316771007401604805989814658410504817005168362548702394267933871723070195283767209261627327829255375916679888162181627919290301421628416127876852351764623132015313479680125022816295156890450397037778332231955044445107265021088028865029794672243891783523716333927268262170751895185993525897148492403330981287508531081979776363922455238931191685699844952649094870030831295208578662162153954892353224653261951952963861707638649790114208733451721329506867088424833364665579119532032802375686186278824715313511460727294096622149886573348851956907807296912072735541738149630801121543980363523448673570591517018390618858658345327878118377897562542287535369275128305943165123126769743852228670390526885193767284874623570507566575004987610387318248713428329828259501021873218700940637542667034153556733581431620901979906508146837907538429465515666779391206221983814158492468197267963021572907907168499416190953017713498237494222755448534242902099460610950261591558694969006656283176738466676045170364325903642112490914626405430690552644492943069931150969337129229527880637944723894502759021873388850963682750234639518199317492889340604192123527338994562679801677644215993994873137428255147534661600730070986045460721580046329608501904411614919383376013042223045499260851712365088051669117046905485770094636348587736483306021218230727321277526537176566430379343876360203178734377949372735422405490938654389046224916328651141130972537336711292120925523649410263235886743596571764184086913511184229179881791928822025222871942513122465628498944715452812370338568358749071773817447155324990767010038170161204371917617498969044626456081349325651152984020537447925608302352091672730451104671905344598003705688234513372088450316263327004127433822597626825337743125154333381508335339796064386313788803165393253196847418058013490499775148838281817702357993697386595940158323827115772694215755065209083386913737991585121456409921483136207463356868790462481103825910748395102768965793880857524417732601887734719250981807020346563443219490949990434834075926959228030010481001595292145324728535778930494693032607857358531302801491857732636496079173772046749894799392758768385582634601669999753298617531232314295364505081615717361908757444397216241931174430038800482908357562869842901505855680098396283730507859497307964690170797754343418011328555079225614322920992497066347649151638217904674721047128697506130023758951566929441499845749376838639037477634277712361159877321984573094790028004915240708333960768421419107245639951882374268527839548000608200738481584268205124977550130462951673493251866425837520251769889796113321990499506459910236296346168716134614252477384742285431913002510367345333271695367747585608636682854611778348185403700001128292002882711220327447209149215642721487895039693462707997557779775894973027998623956533416822253662756469929677524130937181087418470237137981717683034856591601295909886772328279106269586734621449675823589086142191293985882570697239748124014940441133913377564862546877835440356451910810198723483935265929611451910549435709931110683464098018259860269747101323362940423532817533255760485797934199515538609141779244153644384148722392605060525176848952415480422464553776327996446657502094669864753762125956932355649730526548489308285681163428005380378349813324993926341166131028333613728722387636248536203574147858576754527024021551693365974135093183313567781533084049839901132454296602002422624172425576796346039001974632018250851953680548617886541535982013021215628075788089257430651699148936764338297522855314584905293207347288720793273575530571340894931383272958505826654797238309051553035647760839653239540776815420028176490547434357202136722481416285965726676770266968583819117067512011141483089717826516462961818702671231205850261974007898750096727654318422463455347154115098652834070204470253106875402008633567541248664203440631843130561913610429842944961265886740855259324914719379109223695000861875553251684996461700743586542366820087548412625764789339484993455130496700071188954424690836103650434162153209138042481529867778446846106335221981461397797131175685898770571913427772033974982294074577996234697258882046177981758119679246173789842202593146380068705378310989339856124222471257729339355608949447371166775614600999951664816721082562979311729339355257587637525731176483224295108466748067991008297304837481205336666431304662030283648553892729098125773064507994923002306887874214919402323598460042319202871058356203123063715879315156395806599889156149513534696503186636241516496239944466406434411714534924108104467517407027146496380564989731615803159091974894180619467790306644309954900703393809463196434034834214684577734874827720435505580223134991398932211726872537576856900092397454433729523408377136405298279517240026265269764258645121725090504640031810835452053916596488273332455654077227875191850652944811878658057729699018342764991729076840482652925271971181339219529377797520609825282740094057845376234770901932600853503099242623400775742213080567301095186590472987414888935472814202119800924804972635780391167744518319448002957027229825591050474634794067595067723189369746034600149072560402423575344506176246444283066674335729958881789673708947359902494665961597233085602829739183448071515509923121306049807194510842516626477307089318582738877553458692765931283366655804551373872767547088457346039018578303205405871061032486915561212579318093428335988324627788460471870456633931766919880339976899304660494509864615746129037235717805160320292108739509816698671941819870238677311249891895346456555353732512595185392615460998160159166240222406876662303472212487020698543851421478145449451214913344905280985389469361243870991851400855015149355375815258946614694358786834428651189775005294326462466840846424641391335480354093942526899005365674387102218620473019943583196001976740315233180502648985668262575332298004644772005436682492484263185960219197464430288923991017638400504607264145489113436564970080022332827391388923242760627857012025847663993598309585088207627049555501714845686313099619891778134703123285446953815595392500349397274560062273347201260551189973016819491813300157156143991051204836015811845374759686474860980523664177165271011438019641687944365517179173122497696231698796372989435465436468938967797448990779909624644723112364136783211111272352885855042588523741495269444660946682142276160839246539791868971014822319061831883182004639964924416226284236311105476584849698754817788507404577280430152075855246330558886711124389550051458500592256421762560378930362403911789352038262302413813834831800550753113161106530706440113369639813122073227120478774315235524180922366849650362068662312912835488793480277129783069628237758999716415921033057072730638889143520157565370762879118034365514594833834264944435442201974890701635494575551552409888652578998403168688071310530338602969937586653160747906299915817379795076634784399295235945919108755612360193997616642661231319845645348212884115603649972724293176312416707594526306093875911922506594986048323299731050421623587537686856500062925446051608514464249966759726307434399794960675932082379083876732684822598454774581398785431490619467608889458179114796235297958117307673490466778313928036094165933999099448705647299332497379953875058435891116044819871202140176461342216340410008730902292164636610031642203141349329319934895180181691894825769386653084152285038988338549341338825174983301750298752569231310678810737892080281885088229668969309857753896111869647374770412311096468033880234797472945430617107571022806666802378454909775861257731453871123606096391646657637705280330855801897801205685591272789749106672017504217091438861150444012396202142464570458283442375569995643155368961817428290488322868785191340339404360726950180522367381793836033146542330310975208841688306171118694184778454929420948417913464198320209746335693668669824682887281299944881391539891607713523491078451338626473904915470513907669302682672887671688062476071855203753824685235562639270815544223078100738453603106918750712354989805158582954673666659942103209207258121206115392520480307716245038586553269205705327588159546840035482367999214972596371594494960270463507347936922149207310113142276849578844884352425248531986415770875262967637222039582379231918870969392205561556320382781563358101608853544652443972146624746152995226893840224509888812619497544602273525152955897280275624858281570948319614646235775591758949746313018902598652882150134764629642540578819377558869595692467672289163233353596810648404296902301560287281436493115862192354823028972430391617135071598119873225007126797550958604467740255617785853729427178575982704725477664074791648288268424815433437255524865234288257982091930484028078381771419144790430273168753623953382621199258817371475344557809648329114640934546676140738705923025095769273371102020338825154791010541347718027940478081522000000150483802714994054605337598804427755236197045662552892274369911430140287496942679291681080194555445402269850566043539666976612838718008455618162304767256157732264119886261229515179893056084185971737817949397055987892863241875591850833532461938652352163945996497775407996628703183695624064079409722123284562690805036443782702599373439586935384129682049485909547666360610240621844711818771125881937839597634987341280591775024499164103038530416105743092561005581351458449938494649475792654215150597744696729405749250294109333846677129153261047711089671711681316016737280781014099884402632500992953900122313016651715581807014392842602354309823024999693955558749299136546580315774703080201617185268111590348212745947962662785143031121391155560547544995086504231319369803516448564877314531600132289689912418316032994692178512335810626643741218102801724193327240758820122426809052230260807278107077809177979792246354638544459552595676517626790933703521286946884683264895018141990306903975176614338451526794789503489277526426818898305276006276238136928123532881009810375414316392524517493383174986681300378955295293264918294025756386312694239284417465546473193022388533522329920426564498138012073977494134089282793146580682739210446547535191784201257985630096096907882168118557691165260825140597804124784206361453731357967301810726986850947878465719694504225002867468045546078343622285959751696592000996083764483368514281130994795473684070155159821210287744252177369901431987238150773309215834512797192096620183369556932799794676313377668149519256723418970921540303746487578901538925634258153591263490442471852835453685605165348942486883085076198292775491267428283339052024376892288743727190674480140238369480269463323953613052831255618581621692945176979049313251298643096838354228284801205397964478431459581895117184702987960475577247716906026046727826640915841304953710536764400929947672434182907092861133304808749821820841404328553136643062269982507410034025818570237706423837985309634437759036528096135060099017614649358409097530894486021824254479494342777514891641629523056416929519744228781900033581651284045050627173045207790501162584363814976328957220674987667445225979270229328563435337133208773950702995260552296418658183666891684421646419710442890568050306913579903493797157974866109189058864844162774052629458307681380457287107541589800792771827694871982256790871584153990130922937659354806896764020770613346208732733063421137837608172039811358507373451623724744723615805995077162603326190692154733979328435112548120818210513538522561135768564246194181678099423055930027932369938779045632035753773796251737823726073592361443531744987437964957440300327194718171810895861144431727108266552940015167435144046938805949609320885210641553137699961624255184841828417079959887593324440173797916513002494928045306357170998019626502169395457187387231268452094184322736054087943953098668340417541649504638361956641674195026923676847534804189415432048639662000309949267377310972994833397259212390732426161783870919667647265894610245926656539205776950969288323442808609487977767196670277526118356746642118623461249300766220325675426208926592683158515924462475241936214583409605189166293141721160372980510619783347621384728284020599133331995755988731976679737920841436814532783133681799403910158088069211826700702301073739069542881030142788730726265551674434101020892127958258665940167293552954599818959395304056595589447355027792747918614782319407271422482109475462949935299638802210445609320222160882380422206738576755952659804950080537789407660509577766091316006431644573421471860882997726387182609045648775168633061410961873333306592197236312404234551633384588781975313864284375251120952861690845609458186326331930111859079752626242061042216025093793568320368861579943716727719787713517998883133786337000600786317947309870093159622241256463866082839991447052519013101667039210946533821108623381193899075307428366387901318954718942691006757079240996194510975397441592131178273113563242234917655837801023469565917309492389434352597829610718950398645708508323624343760927742179593941981546115557967296962993369013772667503649732611172310065236602972236829606200241497034944755590344367213089566999905414893790741031262857526869575433243919431916837846993271340482945288272786008468325842811191216909934299122374492443417445131471854860862546773666348372970081887474108539010278939628882473795045016626434966296283236429968975102878178466835608614043956223302271034898943903744272230274534807665237153229671842915136745724514577800792309359663041298299983218504212897220167359233515685351098223264300555525438701989323284654908026334223756617802302972771351672588823140011158001332412657009777485366381612406562219515423703847987155433639692054865097642818382296582409192719739773317469808740600370316675812609186931932961645754566481281580662333210174267445143254771889849249015235107234939858056103825100831019902514433768189777465135214990932106290674801258940399969288413635398638088600677047631221397475111050837317915305966162541972707564568121428137388096910434427172400537795243074173630249324771478431460492394132874394913472697115737263854121818906606912291749638018111518739206452976409453299173445984132113572075624501172937554644300559542180648232840881737267719198807762821168937040606950702240882919602044763397631204177314109774603366657592027984306487952965442946809818879947887864920107398077783933538907134547577312167482848915153314642601661814753795742226429461724485425201357781537536673705485546824546650992345101261296258152971650362386213598006612467665435206643002480180380694634820794062257274804549096961519832298244674233566320598637057079589046421751382821337991818888074090608424623749070427704143978092966428806705061623675222449921834793879207279502464175853268804513267931704554520856462032965986850230193907185103341046836861335548765365954701070232930147477986426098684249363922627003272976445698312550337858866497510808184125053045706609121944512226016830211125518647552121541141209204853565262080231933268871833392926987504414914917352868022070807513793795551739451408834639562960953757537833554529954523217419687792299703034424385384626275737446355923036361990136233519586074001196029885764774447785639995680535183631787928300797618564753967590551586081524578509270369936667471700900018546032931397265480686992744204790581532999329233086741880737357963442819564484503395799157699220077645354012021497275467354008278284964484202964062365039629000192488813081407366194209968291093453122211458557596453040337361550439642871840314066776956180129217581474727409258462319614565600424718864501233086016658347580188618542549757990408992204652610476570667158501144001159805474705563093606801787233592033997732582844156970639610042347489429730978028586630034481181768521095953500690094216888175904123401683516285887429682421182399115173836957591381906212360608652667604314025122778911236513115253914303825981918258001117253196966180516567032672528786221283560990328422016733760065933419396131081972308215170560715733365599379014386959054208797136468096752288279341601431915380929502566533853459362290819171941598834236117540232707118205369064774752780647832916260089113387966310976718072069276594615030163637006477273346015450869766164199322329239818494761353929097865685697341612331038206873794883593598772550018499982049390562543658738339703974875092048073293053680097873737413834010274382417067794726483898284488827846152592622672756287649854347159912407168383197658471811285937839646133074884409775326422727354692661948664908100724929298670582251467449000052632409454658553025622396296403333452748230047574535125269002365117655116430582683686227638962382338644117041976293994401049249406309244797031175263512966933859443316270929926854239909816305576815283201480475017642100033649636294943890746842212250226514295889494604257080277103066559594081739648740323972249005545486825371539177981375013929112232964379226541922092604848446858704407264539901761685837758470663722816106803076993157121697183300203502140236449022800704412855706722725497949469054147523940423763456885374681721368532832455442584290042102975883365666125234516536364799314486169698315471940867595561881445693630808173319268920260071166260915487826194984682929540151911431961231490902948758431014007846158783024868958954119311062951005714632411803091516559661184401794066275889256578540985313012538672629874195575102088402851056910739646049799814658143052008973798665665102020640181029594388505012876900237766564851656812327626474043801023832138071417215314554848528358563883156744073277219696790389605847114803565845543531015424660900542655116796870677801025911106766575019962953909587938764164784762670240915727094573989126069948018467960757565499808149162990032050461440025050750728731833684598786210548856864093670474214098418553900451911125309087959561856765008529834495326340117214688936226740725056564691283692974776137321234476104802272134194067022876649435263237197628761370854734136376060388831496771751079468238268891499909737364471678669519378943851304847897421843148463005905240594715186147541815026226583354231092790527960897054893896071083600399377646334371916199753935391936496243616722754483874534870494809901848026002496974637991627009262139262080627599854291400062476391784789316023572838485642286357676567957184405418886125991418917966298035476765092008214340624860948973165040633343660378396094276712229048345000771817967330099121028064554097267226924710114103714579374729024277993002979250237076930687697329099880931316852944459384322056590145208012638112922096807239676925314710187998102959711611826674600626194895703172805581343150677778740969142098898125859502754709747542835829114532240854870370749379634211510042350634285236586329582032600468823848079184754849999511755394624037739060596173295702796830891067681196270209941376558520405870912817332204605697937134942130016809339487652755274497045311370356422122684146696164092967242714603854861294503637826746186712700790221690929325579647346392952681523376791731209363648477187990613132458055306073553033263596654752923667094947924170542231309027634624140242065681265675920497652885813645515645870757102206447572514027938436847710582696399696424411094703053109205984622824680881967070238586539781705314215212836477921189165825459981949393093536012272843832857845144352023619163282501945214909252382525714798516128932528534327357442869376082047097102925214705725054888040246273561561852611681859573555572546443826630299447743470601331996927080221985426776108387997954513215914326129362289874423983132660798175857795472737931233369488817045403359664655111522128019169518062648244035255006626825292083892081997170052262105141821534694835280416598908038261912455769977510975887420884896813143100310968758223301822160737407831322154659029449184707261723323235860644674356714307454075826322024249100811673228637593847974131490685289226911843079368005583928285994264632126351660446381990086319725163193323626063811731209841063324857291774744002843221012371114781679336615588339963255610533986102493952035528605829646306101924791137123989486037855560174880605597429359635768795026968872670109038683433031999158118999380769088613322977584753870638523786813523970668705938742827867803125065780517404859983076452217948238706660145782884089531422104503697950132891853987338815284591325819267264811791504088177435258328955549896676743917067985816641933431853848037259331688169190685536160729480175071747525865336819442833917480829466282696206652637110680164559900573630879750031000675571870885456907360615045863657027586898466294239637790550586584229029837004952382823251003574109625993851101869204370107333457145230644313430732304613890921386019288012130537941199349791245777380869017919243216154356836522738538115002188938795602639573659424486128007357911861314154250312168056782294498250781903837775270407587503706395511671752180129991641091519733848656197538934124032592156659453227259156813183863057352309086017996084689440879730388052920730297663127027577809477459845921671359895382218126535820641322089280355276740966256525092011507088197957455789746465361414799827517613543976137904422419926327880215786922388164753868691340121711398531148513832559824165958507281343608511364386208239052003710195611257979010730199326410871918822043886346433775723340032542153207120862750869511981791871497150618644523124633467814504927162059955393225805735630408372062195483767402226982257658292475727187240159786184678397793333560984189725230216871966175347522009495521332779402972581061421090364641687780862354679122204732799588961710424133646839138298010062966243381873461086107198097735258468074909063115429812043546811703066162800927146620894216713336647096968042497856912440952520145263477274186834585512234200430642099582946677785023501509817428275933130742141595337896850329505990491053637443551630365014715005121464307392140959550000201536969074936102913568980976144656703534327593659821029190223453402193810959971132182932048519806788010339638798495876838775353321629071808054571800882792326290064310338585854704624919978098404938191737061518462545218712306488050720103534682945049681283352254788730532578770902473804719670816894362814542329826517301672026151500053036620616691294964378944924439764906596157306227411070667480643678314789576303530705547031075115700094479202603588919587295666196994113545173871992433800552295249102028507906930080760689038911280745392345966490651356563424414073575986130614661850301472540791830523958877136342865210435831546788411011075413151350808231830588906141088996239955263949151733414929535778111508109302019460664199495047558092947880028835055047986464705344189842823048391309409151577851958532540581325463103508818458763145893840006121142016617792666764293921565193966679231072743030776059992410895941584015680871788973085227964393262109240731947608100214901747002223312716525752121628780285664612368316843402993811972948401021777325325113540447542006758302549969489806759827114333351792466823283019149509925243058159734820931623278011887317322592408500402591518982456807732868561083944342525877894611531219624983124235891763914316217657110994100653879917587868992437969473602881598704721349421061971441077139854126227213980032807363901369444968847918011557975772983848905796806471042174017918369700167103051988704250681354053612071250192329615067019792393828137591034423285394423505501488192586846853463111957577710230373326799109673151948622877003974661967668655563143901345215547462446466953192103983428701313956332287343281641808688937754972559057958593726820451538784118432095362084715108066522152561651813801259744020143337647912893199346901096960858047890295151466074733565085866568434430847033696773050166784199273581615908169498283170436794768016204391250570906333217192978205910965502962804631540733207717503247455398632663370287869938104143763292771046864580501796323456560059233796829927506895244848109241001024316114933573665115797021003691725290301625981745125320675604181435245638833334261386072045709786175594714871286269277788383878476689830495173536087625436340730265547834529720839671722962550492968108413708419878216973208372326984319430220192257786128520460405064624319599006406095053663873829031441772631420947627048537417752454119822938387380261472181964397373773817500047771664229186903118522110214904158194973656004638515988623463765606716090664412172893773211205642970993973070297114683450347959411410781036067820701901558346801314356098527845208643279877355966044992020712172987628025829092596202648783842091499984020322147055412741953888267005476660261951764333907785383321145955977605031223816357466149933872317537131592291845672522807886277259328706877512043967256751943827864782447809500623122102145485683385338363815802788534379196757208081890088345343083547626597250794256272090371904885820342865460198524622252678804302215675778995553625223917334765617377877406168286363002777940878377969866152780498880595248439482432599829022401963242953117678400592856945412705161280645248574606734666170277492977861212184919948481009948711490354939350573361526499427291665156212616837448291485786069048570436420905543445158965844359913650059338469223417901083754902241055130932223588464921637733728272525381385974412131053248739123227122819444766530031875766132598213759150654500232336854752695148734271260822499938228797809929032686335245734846419582794672196951074103502762957741577457186257368934366038881223963120285294674184920305172465895911327459120255096141029695168176769163465402775086180849611357045809915251175119725283342770091115211354814364177951172372549048206033639400562838639195207494062812246909070671069746031429803996553839088733238651202217356257566991078595362576621981937120461803949962953244147262096529279178842177744709998271923493131329755204063958340654362483907264059047545218329595779630301430122586166696495086522598234886779433530962070277161036334097967199415832626719398762582497206558190055792004638464886744336858740282263111699835370764031290170084962658569754070514838299007237572368444554444625626582855976038017140195643900093665240453606888532363482120223148049244636197696388407965313510604560661857274046035397407928215388839469214271840158959782538539863877648157790611567530287980842189819949922147748031384284174000783795437112626839070315460986972646789366072439423767759748746770395925517550484872416529251506108918504417868165731160534956105917262504302228896218590060046357451559332727518395210514959760900851440646624442329259697630116603933152796162916238244549940144817934259533901329407094584788515354891880849597409170489828532455302944517216846899624057043237494222985976739391030219760151427181975594235673965235613690067787181820260587409698287427833485593237418901186409316045929920420962180396619040093790202766418313943355039375338432888335633505287467330913777451061131893732244944456671403938503931360525556397538526078261333067024171051034094994682285288431365199971758999211583626018950650100529819539877584197283948126187295521078545005055013319545621513597093688417048946456872742268388397321252574916866802639504793856126756601976750789675792958994721890590912572152815517163055405034973790672860517499512006464364569960565960502037654173591386488626460083829645312029883855790689180326439182009203248549810805456204860726714560167337037564016419593182534912510122177862959375698901032646203931908236309388118410677950830329100346753828118368238314390670604671875744661029880133000309437048986354015723588866048709977577324462290715875242705567401210815572811715317841848052758255130616578382595308801718701317767401009762962775757935222931208347278083762457126634859062680505851881993009642898919904511754622587054791521764351119154709103494046129453657681229574076965146363790830119658931400212188632770602833687561374367782025515217297571380726318157623336281720305811494964768671246098298348527919925443631395179516826562221837675294257615524016908527790751693235385600939178061741061727037747213625222049964735428248013934655178863832526594971361070545284334686129817268452377417347977685227564338624041640195441052738624974135078893265702855695946209487200409995609882643184767259545243552770096914569404936511644641983203297400089926420866485596090060350424050508216871498652648677061944168028809133633959517527972254081641665363882997170452888203272712787530360201439257942013429353593633569955173000021992570089075015482279746704118692894159503959966280310403173883880412981799076942427548596057208814191440604461428635042958090960969595429724203758776568240814403988201749840641898309975517819984669520558636972961799671019324715612734386827855032106219945039189835464849163851398566601331680845264701522705113961364929388721157398644424848427660843022804824320635655668230519582609569083933864900232740644145916565658798503228077169529793027403149272006711912188186008282071171153816053401724825979138397577648950957366160477411568543897931476775523238937633823998070489647353911615904603556177916010023992865724519012225702956408109659282105044104014793367165335486680114525623784452160346237782311117934852221970359340264824969822945436007620142866829291644676878793907162733334127309165117907256878358860695303777722199889427028838023409636753526837260997862287546527031793173197036528114252216408833475272168830461813150789775424276871779666509132976182759979814686155054151052742552340379006376689346285803073278916943972976582912425250571897693266934131757516263844332393275057536608916184920681871569520914590667488719043195299982485242512114442685614435690302190255950046051060534385972257292582157300585687754711431273345054443255332804416153397017754251486756492565014040677363248944756748272142871121537626429363734276401750056457969355923782725759247776041687079745193142244006714833421812300700177028368726749132884968110268793344959357374393647675495264144846429311343538957890274153118991878228441182037516793030850114033931871336988327971935603130329359250343283626311163108232499535931573810543291940831974337101411945204896880701055288285583016030573001328577566398688488869545203890586662878395102536052482926697987254424259441697909419917265620339467545137065896644549868127170762931784164752134784756739330310792983703638817482367599268462440743990032911411441956098094998731876572582356432088710867336887806037301445438788142595749549850959492979633995254493298742017805482545232541984433035475530075622438366359085958240802779010077744596781513727798043670327392456827970122414969520903907857222810158972895162439335207218469768972889879294691392810234591355283402681741143484186188020648273322036827234074732651312261117770287144459181406349850384608754585257744205052199541713423853062480446193460862765811826140869351658652214011412100996268223357646342330817904762052943888837531186515931093028987512907204644206282966088264361409058705958651871808570235668698438009704893249208069012677535408200932299485948194507712211915931624387549845793815851730125671787082410958549487822532024258380792130627038695365430850736566754329804285083356413507235044380209720105707867307242814237860212996992588477903958339428559014731309029463062857088496646272928441095755431279427872011125497302232829385976914220409785260952551649554031645386748790981273605425422394559010678402483323536135449160840051827270679148058916708579944513449373893587426739234170892454478424101723840309620613741913294016329869372297048543867191648773413140702856158718817881859249688270324871061605185661017298955423840090983169142015428477696701082718524277017518568131792184159066747575610987794919947216560791369513051203171502265494219238953518708030262302649095815337591340622840944707887628168248867892064606177079885155114426411164632621348628552835393780917440345320745974773811949046152828827592202763975116463889695927276479243984100958923637267525097793685956107865155761363417113473024731411383437247113488290493332043752858652339978620218188970780324311825198541142629383468553536827990679692301697999597693778959290108633226169702307200077964488104957591504035262098722752696333203887733265559200028536537303209096952406207566974115622241812828165883554502084828886099599960150416218500990442008376302682821291900172982887133103654195578509870943750354878566649135996835566852209277884032823355224167504152004727374475283968900673924800651526267302159942367601868125008322539189951080836924597943538636650364288283820202413028979149964065571836226581959353531959938799385088359795023266167679596127271187818217563374947169070321072668217683824066410788211306262176466079993320243168524550506052081849002988636779042387114612450635257554239980192197851192269265043669441380516636131531730725634365246236151194013861563057637121787300362899378573763434361327751998590627968954959535529760743418793847395865083635567629223179886462739012948841928361618697249539785370786083430552381380577094366311924185278100526189849109194081032852772531988931700283313660798484390055592702820249123335419157053726170689103589242430363597191918596851962376565459257351222767994055834677713695263571732316456313925155122130584834662352113158040590184386698673372175254291339202503225030043150558207791096197994997048188475399165158187294995079332782582985491455406532341128149679133821779194369979882164155662210549671103957912734400065535916305422400887360679905896672384343922998129059360506368698551951192809974368907126791356289067454609960168232601908069513926875152313661794613174996609692599267781795565387352736717526036136345600197701608043731595913032212570809622090527941136748414217055961327934292026104318818623704376007099419803479302511178260210679824871034638184969476518049503666936485981413337230289173997689327558062465359843339595727721844881046708527689529070567304795656245248673802612981709119225260169618331471396231266090396925042229139115526824284127555428659070409552766500011219861514118182295138745170706519034765124185926530737188855252001011993599481257649347166498378462469551071813823317097946842611743207485340110391879739681082333098280964316591140457146148461024115441830863430449815873975996188783261856639879323210540674822322748733240957094223237042542603427067080563859692054561681887641760110324859568049812045163775598657873282895798932646583875777027359723325841860340617882808610188121043376222300871185922828849993834987569747955059050790073858540167026484927010147750855676109013936152707363832636947187305402644577402279553180524753894520685159426053907531409497163462882348343747096146366445973162470777005650879753263813050925664929471525936142882913241629802444123166585642406273864443382582679070524487083803177963721121439618513914504140967287156356936435774541455322785011873361609616439989284781067397630251507499341732761940160465402657906837462592431773413812915675685567778017424816188609364289663737861015224901883026072738102998962024225544172819408016685092464411438903408249985085044907092116318026191426544172974404429120063346601894979108359967419807883527403013993498885458612432247794056187380544813107324176744761105991776797693653496587367242427790223107633280366766818264940216920909578758528994723737000953316236435280235023026220789242322469022634964406334258863621798170908528976934289933484711398260318898748878542311118623699935924501781705304172185556058537494585691603473483859378984510436515529810384673667698270550543678242236448975756824025242855197676993372861305196855950164706925193444853381327364129624854936616349622368166729862655215245143617414777346445628698624854716481469767410436136314756267149854453134482237339379711103071681770897822126377000516853767160346399917805862928897682030131411820957958666296275984253179373362896102390102384996917161969112590890740304715037409484678543303679573159760956659694911564604397345129040611174962633964612116368635547469134639923889779611979497045752542063453967322394808966740252807653553888341117478360547182522266676753171695024901512582897921315060192274931644881687117805912357068280535647046673946551513127189791390718852577123291843511077838529321659794766122351296226621343839206819445798261643542326597737950481492226554654679773090668536432561709905389936541249703342565967369755607665771617536790344758372835950233838396600429858604795126820717760146721854389521255820694068861128174509331388455898365908344192689285730798914525724046822526093994703435521350266247732718239156948151461587022454022007523951070902051168302338213633383810818999971979130999512844157145476527222968481845754262327442828982512835528904402989894977085084629953035992748287681119366300935297520443148891820863682407930505687819735226240428960912528287997180103878313169624743302134035629885959988854480807652922677986738570825466969722126810864774065912650598986928967176195486040207117740166998958502125817840460217609668389859623680926466219522935664559792504787680300652834829227609462656497870436035734065295217904024035516894268098924442821931282146854282436540177621778653190983666731610094632448772819908579360475194042097477987591232517508871433335449150375809162858022734829198626408207700831851075079914138280354034683958903295967966001062777591641457286966282410329474933079795101085419464304997516221152370837342316581515722380469271867059034885333577034147181314361064951338729384337122142167047638731183860775835559025669895149641695124203581476790499765596950759558033129255858396730706790555567369720739039503758292638198124586230076160077886101585450363688249289599616821772912909246629681141179785002599452929187715538821842359371614131276500682464265058992487451886237631084459247619220918484237218210988476313074241985193177559094129797260066164837189965805621356700892687374460255174596100880715020371968385120858397829293257992718662891391370678110874256458397160861403230666217416259207837976472874669321277077390588127229555239098771377016651596369764748424598835950544300248062742090802429075426251452297703384118255507791741746838908328446833583854775129051505441327671348050958485939861353664160125387601817893556497532634142673488291797391451973781584433450058300923834852499225898378858909437575017243323851879801579967089476812568513615169602378034610097110693718095782455646187345694827001215840887103285805890442912266893599046369233573981000883679336542970019231056292451588986673060380729079045247354054227629773964644325219070335977106102440843872792571090115695802880148747246018319685722586714356549849103295988850135662527153587256342055747486233624989848110759878721671644202224961394999133822558284090439622617122693566074314337919261647718788241407923203875821119802343502297563913995804689706108045446508418852088508306424382557367629934211532880367723660637456119463754508049332642900945125400563529182776085758250999505854226562640687677053711122908106798929668108953117382300508223890405728898602542279297347471762181926147688431498426566440708194346557746979497181491090491805973165105775326266092754673863690958576083225608750903106341674775893556318920636908270842205885975556181591619672822250072803134014388960870147496952426607322944137589476137240834890773966999727300621450506506262583583137121108272180058864498698128284689879617523649611993173900548855842650353257817187522988227238740879039057719053948350746713432921226044585820806339330090199575415790254534364781093816800417721502268260424575686663963270011559480457578098198707312659356446013534812196865842169009231687635328926743600083152521173959021707420308114325443257933700558810155670826630120708441708780890857301991995174654665960002281308836972036368995120000165781678680758294954906417308467358370737456590535812155085196871322535468001869752878341457283266782121479282239160451345607343459345153646422554956997970203477972737233590270959541218525972378967065202863239956511219263810189681056668247151678319347487175510299567272119522845374195887282408980688866453225316106547595420976454362225931338042430507170079582362484211701075221208124303361670620768864475198903822927856165662817549653874503673127249479314333413823776310606504246535799573343089167680003815347732875417777479641297366688229739326842865973121642092252293761339955800267527916457477343894878140010716743323602220833017837171164369217038803906624281321294579443683068758420969015238511270196386362944843491558598226079701509449111916125503330712919328276602867001376776454725318162118721918035749590007665647029792848800703509604465113713328368223576807533450471050768680501534541063582103022500171636795065798700346404073510629384574822837587676638739531388253538283633956493631348297152924192756934251476679138305377540260219028853905288212000822831379709883118301127793684977640548036095096293262739841967724371574047261428238738046430091030980227399943421860808558594105718672167538332226292086554578491494900923775741775303266188988588603824162332121274672178208684115329448481525397287700500553722136148317624442257419514171218429652163909948437601804945646696235909630198048638524509657719887496947477115431426182699151766211050985190405035755179985881727758430739063280443143307802998967118021873028458035356469921057225914638284514574576012247488483855366946402360830833704977495322120175244405992259672240937466780526435628455386328599448809381604657219266122053142397596616878601546119480892482072460504463310762280683861213754555651215715313470598501625864634094753154606813942865943298929756589260936983991068477619145256513118382263220554082797389249325390441158648765288214769674265361466998201176052703672942314611057761557771424883707092591737715322780637369801706368323012559905801937021521706103465705590996247904539258031767186125220082338496571202329611204236130086447975406426355536613804059508757257993842897678000973158108060676143702196568716400622911336903485366321208379929895457506105421091423971955096937494396715143416585913579950053562860916755739650457588085221511123919054372326638116480588414476680627126201507382294147661826864723392738904330853848214704170161425337219860620312327780703492383076432093530753795108844954375611720510753485662615728563668095908660333057625785140552767169023308587698424149461390479940301867984338762920222731004952659946890595256994240563805882397077645876528276086173863968488911973913710767286969251214043295492873333280660766639276379462040802333978570107438145645644282906954979216482123454687249528399557533641050984392787239500753490202693992680722231736141011594845867970935515529126003150233115577950334605881369829579452933413192743572329364409857640093263134061484636982798832468267471962165096202541944792001591602301113307985053636812078462302065839804066402971308702764710248173157933922550656784893265497222547457864643488519064034289989644187507238805363896324442158000398273546975235218112061096469965865907085617430923968157055431491007623440872820257250644531023982099102604378018136865538801527930564517951223211662370918185511427223690212683141773158945117411249513680441049831077248491392074345504300759065001272041212846189238671520084142791216690525929362245650094122712267051923694662035756056263398155148467941943094754330876581770236700227509685129715611289770619139276053797627161353536133386751704407151952135276789912154844261825506309599510433655878540364098440484899389181665543660647164695773600003163946826780079071390807127238048103503727717397323729539916778203979058365213595965080191626368471265537112811927029935542420349214441357838014795908077029744282258940257336465231773366045397472605561509860779338436466517098769380137675485472037632104156039999884567926450955072370249534222483358929116054808390338914325051320790336934345742867398668924024969952050101958750758157311360578561452980731857713515322320643165841441504934659867923127847233627597911474699560961972751199802550079762500833248210430620157326059412619330312471081180393626516967070593240584309103259276425742491865497562544790289550911463437061866634670853572025021225892628710078690089930703315997939016018072690822069836654506823515408802286871103781580772849160427875283857282933779055515462985957776419069261217894823212831209779300102225431724270300801160581373485206612438101466654687733442852852524484460370874633548480960388012674211184462811445827688873503773050826290504084635135578361913207747210914666241810679619090729237980933959561366203518793296891155387469257782961136662965889996333679307512306082067580015893074185939671436540178064833136528682184310322284672216067904294911441356178681056924144208204702453176528611067244933532430564763594493430345425402480631554972232832391668239205631093343088351158535360826071732846515077808512592461413118795438723173650083324879990041535853539294313522111823319932951880508170484760497562350616978797146152065407959049971577790518447049583638034726334647214774431715103924254829889976160078537408955436877559261317732713111285263610690268703558961878544957761565818829666551337492817209322585131326124135467766247157994559266117619208471048192367009877518587202944758231419580793798003034003537663057542851224308395557192529398747764955495391397578504138711693726720305424349909642358136366903092142853201478884325853997049294797486534733330032299515563484524732506461336904508230965312479742219194349321438618856538058377405968929763483219388096929041934621717258190145235992548389289355118568490760797846667949960382189799647130490450563830476269413161997946835747270006134991086609072882844545593782706250009634409547892967675355608890882841395544713055403788497856569211845523826142573100212724905675810281705925687894399332943484606343568362006101000496528265817793347312094842987927881731747297928555423903161445744005727581234339137680307330526587828345434217091164452702250871619906774263769747681959457537994126299450050642725031940613141191919133092494189252265467246605975489804541501219434028531215732738988055647026908220147820560966582785906330096013008367690682581754931592479178901442508180019156883494034754038941353163417492748480174090427153162109654008720736083578843115055965215300694535710979526517213884180110038811323702089329231604154023560636683411793067606322167472132947567108353089196462062418346440607501374782753138325544929853788957552421741418944094898432025857665771832346029282569237395878341892981144050837551251955169763393485449364019215531828786264337830658629092272693678281435018243342591029329546269931586399703228506951243000959545289658696827354891166921130388452786605799268856782605802036404915559552146020084172422765173926738093162242466001925466609968684100150405044370025926432705422135987259541733327668235024783861752740861685074460234498471725669354161894938065605312712521467052638540736985472898822052501729707170809771780547548335017645076207479372837393634220308447121913444598379541581387862789117008375168267105521213854334251058884046094368892193585018312129125439573753254067375799462804348832014416254701097783607131522224570441632056213240610410480168421688495894300172878096010142462530073498534529434126888249621475667579914130842282910990189811207969521383958212965713350153005002774246545984011001155406008780487869546124796569048697607266152436456948494651143634454492832284309606264222916994766890163040545643355518518633314826413467827018449188826105352926105956950112813206269026716177649596301804763068636662650431547578861479928047943758638738692506976085167701129781264854669077219944887059725433213567371344242045615672347246563775481393726725278388634999395986707563477265407382396745962925749460172533610695019932188391623549446467222786663768536363087055210274438891676377236078913987255169618043293142007588951806505873071466203871753378434916104760095683363101093895459097000985780248106333649527161110951968083220955539527471636583179998298968649737133195054425483911818214452758918012874597033621027042485913153890541607148966465993091997136146003150785958605665960545657542445416564515781745799672393800853699186946652603498965203642968696151226190690025289360307247704168743099521110496314522165149439405218894216800626579822209919608759857965723142107928596898834481242840270420265475652913925756962948181790907846018306570994561520008262599849218588753836040509253631403801829155085233998078787583858513046871124212387368955741623370564305580476798916610797600717738989522400392619579540536319048310604409174279713227882201391804543682295493317347440714264048682354259087892124725920822932160503078834659611759733543762913611483010411130519106465473656463413014265969646808161841943663769835559165846698593584222401188498084646062649428418358975860432302684675493462221968247245022958054364057974334845997579332982488482523263686680393993966728057916166961172324600639851976922724828726803232482384274792012981836282516415275107529592249462930714631533642121198834199213858565205032680272717956308287764975569133839444006298884962854429835560868394250998219582513374072356978280862179524130831381225538844188958485476015897754248887598864639447562006826376611019386391026021013284062748571303641558998301319875969440457507892080559219224821252914916500871800990763538919581179973056946311571870396657724294320899469147600094843483362938168425940107107170339121844716997445059206195614807629134965895657356864402252125213538131367072509389277393881736844890003457635296960497249115421830354330202933215110574161639145159604642567562585384444517060670634233402279208950654323842028856627145097242863146820798656885815999188360635211055900942662022630798987282965283138171127236779974413012328623083304713809342752863548859160045791787218148472380621970935020572573139427950985314359149721799882323035320504442648423534892935359101468797567208588337785840506420962678002224888104982297107528767889107060704560735616791266148685762497984157020460958507038109639681035196386681870327693294936777185668141012980986261046592945000479124067692307341420663117211002905326650455073098332303681355650968798166255048054381568748263553778620217714471308916587854432596604791633765481239561148734660087893793459083238513520633969103770336951758390046573198766073367627137631723754338473239363876208482638268352310899003899376049473525038563847972966392723740976860193746192728829850411090893404964058499978740720644850370919209568011296816962378091984134218339036203488662723737236708293587986373631751206502896257436497038996023586364173810107510351903818370020552721550668152003913114939566517834903415523641267112000081430053997183640420797726562993817996926249817220050244780647195108888135834473368075690300950043134305065529593006488021230869598937358603139807942199832492205112871735800914070047204051454193477865798981873387506648906559395428717912787884674200288982220014238963547715839878429205035961881224202545402097468971150737699693384344516486889794610202005055270097785646000516651435902858857318227701881747895772841301246840537637123087097815076050975470690878969445460518035594273300968208166836648345386280269570061788557074796772201481111669511765547284348822863346043499298698802431164205924404569973777615354983307398426129413370070366111749682074801312826372250960332806110344796044794727059698819860943562220929487267314082745282669367121985541419637460402675405709117458141023094432795849083398816973918252484194928578369219441246984768302975228192159370329946988691690435358969852387697262685837299960369493096407620028655032980861903947388113908599678869664996994638832728169624201199081294628660523166356633999723265914408270524661575376584300666460747075217012897539749645341485033202809488694589885699371587663396021874851142575360704370678846872464235400602640570210958365432725700865148478916070241845133193332537873811248043267543129021230620075660534035667544629125318475434797219897089156334768752027250717533874383771388819494962258089780306103026834805139077920061986155041295298215142044223940257844436795754949941773761356743962062158991823553494485308126931858200806398723261223532423336115090826996454782520598022078647753444766707130389942963414175762718238534476564612215614506306592175748537461148762232843268005658215385598378601909720136766523848920149224492742771408924473851559984095945172149504614947579950869191911143964970054361355589880905749352585008231457019480473433004137549078308305564467495427167977445625393937285414649411602598466746225153504123798549445892302862221440711638111084685949891133221189439141104374203151608566367799792042011198746345519765395068778223854500583664426154392384695209114994777749236524373175406061501100253923282892136135863904337413181737399397199797713193187079860603688254479107436259672869384649743394167108351778071115864473531422452651492094316135554480584629765706445100708444265749700431693990781028131762891740311145774774560124051424373702803546759502111312133475628676218556945694876932881038794874735895642428918733403477420713143956378229301448945659837478092271394003477125165212380675685121306868228665811000139552731271956280236569555341097641786718230231256056638249432645354294600428254809225844720106157617525808330106118522839192390917407498865835262060922044088107731280615064893230278858284665747214401782538015769752157019519372625292407788018963668115270307689872094445294677365702322272014122719052720962562478887035793506759049243178102534822309555048435215047752415252534850287817869539768163185332489496725052115803717250653404626762522717039584443383556397121128748229253490963397098099156670616507838746432558333615198156035032750498371229405940517444914508102216242712682123853403791391566203128224753184093089409389270356288347052133775134573870061694302227247183211240710419741399385423127411717685861884882462256959990089368374217124947176996986998175890959887982637781757882437724214050030585755487825920046234609850234198345771613639366777722519990875774709363466657980068465715430519164523964697455398352769543059791590196843467224193824279026681286817070446545819562851090702756574648259092978706339279190596976448075903362625754913191571144991326050302321861200528073117038328190085233865053697269717061244602977842344695220649938961986260117122385291054286679532343044492923262774999411708123047776202232013492683740927986870860043701215853366429917797429827645981120435681308448347403976599170386569173394773984213827614503917346623234527681492816994137809053593727111263309171105748784590700534005437485635826959104772277495954792440836327858643497727849841736092029745893540335077948489535711685040492123825294998776854155774178209785549441024194692627391586732229238262599831533438890030200378174018415993246672312598722618035004303628279928241567872743197986415426477765781291736086705070608619573454471395010701942049088305410213910369350455814363426163198806400620622675096744178437872281547977985741652415338208679181526950388335393504689619781835808632133971453365533518593450457995322881957073038648537475481468722416934036750189303304006731564235304195241224133239799841653384910758563737847013398381181349484318020610515961349356128340275016253911557894787566056005512189810527330360237074656479837041050167696242669378358844898903014035536645834856412393495719681861401248848706232821482870532796262657265760734777132972489309147761550605719339098732106855650330075949477333293315851878546715958614019081331761377752232333554323526465679228402530687949754343666411602427057806023305183528270446482364991994886980188998689388588967141632525247460577691031235922242873134924068340875794814030600102581337680004452058742489961183625268926010201403778361415157123027759071193481051568970800136470502471757995896578618635759740976979495167098792184631512596241366825138945840268561321273602124120698774793711537164196669383169929881440010256593385531942639585913432277379397595709287395024110853988013373673851018169781076227196617106001459786506084192928361345687427617469366030674898644682489546235698292270838886844808764084983874043626198800402623918944293016772346315654816254291816561312238175403088679135107161095131928997319381394594466345891902935732684248622486335867581952101323089206656528036269145125167828327149555239075013151031458828113260353015799751677722146173868592523827947067711397545725664936849240157394874262587282439233060130763852040443813627733646843210387393360379873535616787261004258816913789243119618755543364957745820516664426869798857914156477966672670110193832454323873525638845245687327126472870676639827654887094408562828248975008619038503605962170945053427927687695343283441929012236806602743545753882653223292307433980674550241100898692736168199332541563887043738089034772471053814616153919726480285117702429753907605140233499606051739124273828468098323640371651906688854508280244844570228247231510816492258620622972273272221212032990158697593134891135466525339702776753177356010773752546870117835738034829294583604396638530604709674932275389977978987489132960993019811389025785765768680110344915381278962546039451144506028730076973598487366150042948376861136074895487275484348263337808158177858110799063938692540824846267214698995758858319001902695957131914021925275793225526163248861198796160063534030493005295546105169847701878749207239021107231648487705046953855916209715715349781469236648007148598232064156046757189772294343322527079111826612491439909042074687047465847589145713549639965274191102338172170351611116196646922684576170066105337420306047840256039829518733665076147237137156671929805888626887960272638791778497182824965851054486089363480915307125055945914907496264218625057147110812248430797910016174990170960087334185105967023272204532444454061788119878117888317665375285822267331486389035777709258292627636130129461438050550878440157603965994496330998635897239625438926088824605597479468962350281415324686110069271130073420763082881211473357885780250287673302318247991220609164345423386723206722923898318629168570292304991838796606850515196257638008426135458243162720716895191057734387388686543176936071463355866746225686738147522548121763058279030972951461114946602778846815020544164679273709334763635216995575970988456638820455513387583930285954838958146126455167724791539145125536425360583791537539102709490611977458780124828530564036636777941339608131218060922581180345425877872273509809102434901872054680206910665035984835075057107593865648943784496459920536496320988416334429616466276746210339818780257534251171742560992108533419178650020271724595592441149690763539788986326122976011883184882869105904377602292531878516150437527566191749213237820273903159128492981869000503801809497026843332243718030418812314982619675219034606444608940805720318571402171786812104037125658253420015665332316271853635144541073677644041459077617558840285401806203508132198505923953921163436629956562624295549843648151905616819199681441717801906443089666685422175067569203591210189233274767578047394470978318649300332819754184727432821943378940861771211263673104109064038983106592830934060331787995049691458996993347771747940294817028781864775672039326918902581377585061490444561223397156707762005427551288445844916745424209612350597389971901204999688378579083913009567939799633517103864721506971934769584120924054251744357349717394310729359622235132344545956713088392166895476756670318211143446267360332017006003906893592040353305732966050897501307654827775036395658066155348479673094455503719555062058457967122208886408314595919202877483502867409699037288714089170793618824189696098550015096274216739469858671293233933737742738011533939416329043179931573085468187695258366076169976631730931675038034465434376558140690765093980107664274257081047392668845536468076098193888993174891613560852922618420463298575123638149642919699143380793376476056383864912148047758469249514259130085991114526996584065774142560409347393358313511208472918535883861173239212488128019267599833458279930758019718912185085448460366353632267062923126045796612083232225068362139395429228047712283293802581687826718079338188982611877868385882856920348805785409954825021116893246619691576255534255356081201235131898179280181710477032376969479179931004604377461116766791007197761382767896182594029108927811254941265022360650857965055469718803304194706532609936411424777121123648523077380917558265067682138298620722076574732846607224725771508179164213339096562712863388655977001375993978751692234980774941924101517241440095264907093352377455547573363920754688073928422576548099166519002696517915528287968674886253616038285882510763459276448271137521731371058624711385402451728360197333017781105085998469871787858480026953600491672659448644143475824630611799222112408797589866947348658033081775857944935391326525176673246157626307604113795978429049631583461438251640811937466682417219875649230093764409023302671050425310618629979135298558453478969800866315077445943580435053832506094373914386144980788539796897916697101445948539011743649521000506813216730433930861069140750284522995031176938150290371341463860633191536303662174641866945199862179586755118639307297313743870047286876430215799113958324526779240635686423662534124245205815999087016276506780460333348764398753564026749975105949601840119152505951267262276305176510755758431762099834134322108305547022768440426734398504574093547578839881678706911812258339554271903867300334208677373474588688442709860123294961592499880021731264321072797370366567680355859446470994754831664959546155388085172085431386019694187970867289126606019989232332405433319452129626145409712669669094723384716540180452691475782146861114968044140253796981372217598206903504860812807462684746593364289092369513696460207036842796322525086050951785355297262921535430549666157476457043590692579015596471083761165811894890021415640807528656763937668842258463149093952091924853335197208008402316800449695628576196302008672198940216779508588461271625421083753286709056701701991519764323760054109437735590796225618456368894696071273646562763281534044331465077408553693562705818586616094181970943361738064272811211379573317295667840419362675866079311238427222643615582929053278022734963168133875505399929196012510091610074575976726433075227409043020213125897702361373836262147577771865489702316003099852676154717545102683040597119507110866540845986157761145050983943718800795012072448211076166657076644764317557772322750699431265245451619943196989981837884937600151096359957023243710884690672756674377169199043272720033752478480483446549784430628979308174193424420151221174686567307679652905568239493482355589818260978498136081962787490366893311989059789874274013921608675049912074200476970972084156249813504270874308540177736063719902896072282303056092636304311237120009835837687599676494895254246700056239187599766340361940666856954376361742023987367597978489030039201067022415128651101621287288335175399307514667268818545429239574479715430219609292737030202872846325854464117599446474560243396905862603676152349092155903285442930036402502184743248993555336884596250110302504851934878969160074878075979826615888367530636589496349423430198724938569714632232260023536041074846255071800305456432717124341758973126456327211531613654186729409466570993464849989383236242452065690527802438877345816470315991359162885661464636932811600364015326260101535471196525593485834841047991848462448341574881612814167401818306337656467143732371315461519569854557215347050354466328516651051148412644436605043303333071512754593652318375235876651536525362290212798334833780929565344400187524742834353293491725740179589750114884058555274905062488473500814749734472376286372241351589851363591235477163271472539193109431597979233613011715398153651773439557545795514490806501837594778606274637311185045692652516876576344734935371286675388804048770302751060354653419802767144555724440347798382032772228324535928871672345738385658862978925706446167321290210861613676361182112265685471168081263931688509532847136487691873222607735525694351343015599773069239162890566353581120685648675803693287989656831317153732981198803386272598816103047010386075357366330812630231643829852724113914852413430716470156440226421439050791214399923025433071460286011854691730659082229994677594217930527165414760228783796885958809405931723406199044760154852981044019647205857686931375138642943309310960230014289854083431779501401530193174975083486248570548252053434907363759471492030928498185218727850252431108427106172372414989300593795384316369578383830605359317226431676565117821290118157928495497228446963936121594974154336550472981481093249366590332554784275083197004537065359862574902895953590495630700221751011782005180988059540470952599570099282716856081402943252798260298918529111601907518407929975677799406374485577702117167511505292160456500256787391606270739767450567391480310101182037625136323670441790214411455048194682309830409427404389468038384643272064204510377414647209686941708972444831299936721363778783893632737262412321997022948608168205370651977859020463235770299608298986368230621169886166750020263512058322390872227689888911212337548869338244431083509428767270160756162524619083930360167553091207440925923262653406730284218188534417487440836908612373267312473419077743009683347090515632209021481085462388253145253841152843610702908752072263002700366663771724602504206916931364815093590028041403105409060240915364391135476680043118039550473621723618842674544771722775137469434937073999076476795014402289310688936855148995301312746046400999489223835367772554521674525211266257404511062452900914132148825626903534564800057144790354648005389001731313973489209483682362048173394099204801661043587330088529587883437089208144007823067428774902587162462097167159192185396745251806049099904856820159986964120611298641117599471204151001940306544123741852698509383805767353246757020284078178693156418418996958111560976728454512918390985572911637249328560283477387885398284162561093406750602108248827461112908510814183829286596650027182863835308229505544097043930847946506838187820379834607517003196310244706424181022230902440191938708380570738918736255749970152092215831913940511501433855384221178048018342224268999974444237451230974001586420140600671849196835692905654780082062691933212093619006645448076775633106648161543585845774640984691754667263938061730551591597648232647329112803135085573990364294742063763388550148865894368264776975952569741899745048361903257534083378908614647367966313074959916349939054833357804002657010995457629495156120635236686795523189017083674400675827865847852608236556046675649620176108434397106763775412961675844325106242370023963212911950742493555942358851484024117243237569568262047852197384321429766624073498648546179228824120756482898270044584822576331059570108958451915459342394994390035429126846133962077626328677660146967386619559832165257974495449945929260853642983417540112370771337565587260272667573581002854349880772309694957457855012945191747676945035812089600748713245227530574750820813973307414745125812548350479210323207406263950267908529395150335597256695919812242737373554757189260863443480238103291689588183713845987136707453908305429904491885859031481986754169128619489201963574473280161905366236781257333607168151604762448548146881510300866545259538821920486305310343769785605452901488828919498990937005778084153501562859150448735783519325673589295217852211421844337582845269660982698610218313998629796198910468445543096328950431128052008496599716261074792654579757751073942081254312675493940148615322611805438858821718239058326462264843169073293827609842342961573388734955227007165992759313023974778951038219080480647138629356257221037420344599076433057760628146071590019508783964079123872615159437616995728036301848192561383409186998397307297991913737068229792817446598770429125360811811033113914568398295315572376489486516891720149377837094431477441608188695078983500558844433599282647032814716004650729457856268816918706299033497287620901531665013767198851110559266802585326041826386131516223425218731503111457645556499650943328689386180775373238425040845358471096761904343359246034206414505956224682496006514227787286144691545352597827314715665529008354802565834119630344734494333220832972173848410730333651564432299923002931133727649866768992136191932660944596579158429340357459013419186510159550620330822517909120449340073817636507813200382245514021972998305598092329317855374447588363620395442779867034989036939646232390433758963975765983424228999425278411541826976786642980751797714033983154866492341544957304348474238249760140513112505679725482901815621897977424295828814481597964692484691405494553504081132435104836712595995495714156639691921679526482288709705034809346092877619157691761719510228458881180318958282414727680056493247127310702858525689951276131713229823146911768684546819134031947843251374008102795978659175430947747329813390299523297537960827260688551923365855404632427648549373703317112187261259675124781215048429485642544490671849523575642077312063117176600055321965361853353636054972227581066793250120157343404208784773753821271050141716200390118542142271493430896019748880790105887952590108703652905600849127143322981617389625659122348989753616402956159172101369650455876855745827566284316807337669022752065893228969156594517196483485855402837247658966967834324668732937257719705764061228894028203776229199481210447358172106188435943942680154036189482973753673894396841568594821888296816507740784404946581068429771371513138598116386567000348049077532909954705992355445867501219991829564203879852135469112393862094261821862796822509457112576343306735270025350111528353526634198629651577114643624291511539068446455859117673247305174082579192825732892456821255249646985569332940990937002947935926255628799085909638724098777398952675514444598565890573235493471052596980597802877218927503591187467009398447795191575842926412879307592762322814926237066311008722106236278287127076882244832862108768946081678249720704420738415005966330710587312258384145103326818050310308733052900953493973208869272791842312185761130017252872298985696994657724883184967889002426589964107085654693719714908417491341530422720507877324520499842703423908535668185993565584027727201556775828458489053273563633523208503064576619822237697624648183362070997449699137983690820415865991635539364434400677315779979684416464395411653299661715284678385390074535148966364517705001446266163178146976745459319427174268634851159558376270854872954470477556281856609853396350563187116386786543146303318880680254463159171562357021349929320068390039630655068230366658054930958120252662076201077925600532289734408988708344950291137388317535254989679728527376208651684172921320498397509893245854289215527467778001491772169887272442209104733373100883598870241045899522044863972969814341212131735509644628098067192197869169417521431891860769007123455955483024329024902233207757044165109322279485497259203535299037121379262556781014363722565488303657799277861615652380346861274640533829583470742645662607644290466753260726059103473310075715404060958872407871526441854205858871163574559773424693264612777963034805314089605417811470333718450685895060793301920505974693822975436388333188187754827777765493892637177814057374578806203065639501638551644247553723663338579642178384300550519586950227084635460597042793862437086385104179737384804945825273262056069702968534898117838836191177966967319599029817911261196519541256683494026171421606779589952992130185192623031712411361135504278749388166301675091617027734787017611633624871512133490805971525095469344225865163371290190929436866919827672094955490163638259453650219936140609441656472939317429792856140999334909525172214610509338403377139825534027645809686121782871644042117707121658716107129478163959302651112421343161663584831108273675979880594793374337219395691776631122875554450672886819323974908313163938291557466034832971235023625233116435601446885337638486751029946411458631790099431578687736546607843959518941656887170501007709950043110988522136641082376000634400620908436718643566669150535522822321184903873519695702121037549919074316261142813784219169311029959377233769111477117609052053060982359831340046848769187833861846617219289595086922631074964341466091825695163439672268360074860517776002580488527974393139039836524065034613584591128369717744340889924255565341876577155673489416352090106744657226304338947382895388522653617183494254827259959768564506943527507499048815690326862712575345082990417394697413710190902732038205479527413105176015843322541142491046184570641890275896261220200735409758929667964137139022302943711019800378141532015381547860072097224168776661520385653963802851050676742199658728070505231527766140535085086259117671107658804232887616392291027771344311024792468699676026327912411039383667568343754882614104879859114163865067892094867706803461825266231537447278248272704678684421463525417864401241514177165820437083395185321251107954238728582597230962086985930907483189142288743826788522578621974215265788346766351447747694040625872615008921573335601046996169195204335813349897029969972192806818623717738029882896767651343444309080675878426337970393130693388825401269699365059361679478593288789721996184655133612466899369963346762039209208336844580733408627199813020307404584101727611108142966947185701900906671728218313738992879962821442784381193620812145989360069684887498979066921237235001527655186539867850728089281448140848279362039312587001262070693688963898127505358858464728514289724809779625417905683853439105590106586487507558809559099044564829466787765186549798717925677711865627144031251159050321424001430519845870010501740827108086883539079001463829227172682886607840705661573736451185768489902808614474454230538050684752210066105328122434951887966504968790545923666646254659498287701196192756518540945599604453235666116331956946709146501556432670543764303850722650875996617524431598033806953336122788137029488934514817479893544501775037203008106898858031400277188045940117183653527806669980858204631892070222595134316271788538014451257487120504217672165208542674635344089506764710067220497675310762023380621022202509932208857026989966370708422490530723189600932300227460845091350154399252848957910589593141145906974709728582940593867122558363275255873433827025759495554860567579658258979840250178413936286101773760916916448605251477738833778896790927414532218313830086270572956855962131113746084524090639207030821009248087606947546782300761811636127185880791297880542992124975955306234733672111258100735050444658652379877141737109562658142724005839271014133054543626521634533077244523522897738519265091670639328204672821941306005595917038588643320886907557344943514322775280163619117858680381433805136721366827033815861383325152684310469189842002623999153914079748784194878254447382203321992964610825693894385471748728307765638159948981740184601842079830250501875493676343235866662912944770863648696233561395246269240447567384183636810278820025311661774784629181530100280433585546414842152419035601481689754616009865100761132035748412579053323259999769522033822896896446999685828698220191185645508015763092035527730595336731690096340212202946511283474008168018464770387961230095749467983445012848776286050449934601850511796789007358035924763010258128100715078683218853907424124744045372282458484522836271927061092185540214335942386762621145574290439301940974719540948740231711913994471869279103646053623921438230194230943298509545236337740014953201415647387558324901801770246522990045226975266497742632624593471741128119955450600825419186817442317589958880020961962879537825788842977714973280182538603910085898285975825290366849485831899401463613329977023747269856607256724993629610139256415286209973027438036670532873663316294784615036810083532648112840139434370551709362688833827756067439982553846678003861907691885882024225149900921466570946233790870632674587461770260292922389552635564366631417416626063279674999978339189952146460403098300353764240350013180403253377039010950782026918176141451351887838302559730506045939848026581034062859982153328882619157997366542609284734818105743559250109624553297156407381004570348509962173850196362534667972673327388625688112976101171770408651348534368860458177723057435917323441992842170605802962006414753284796090139835216334482157944819083455188728221008341976486588474702486333715248290140341503710272556922849786711773737951752280220401182879842247145381126371283458482958193470033305978513690444773955989426194026529050697578967259375281552044840314732095949667158348307787651713402457203852303827252885452221951542249136712327974880382463160439234894816730382352849045208931807804556967762562307577269333034752187863468958733756203934879480543154198764817644884999753352646110467252425286968720538586200815694152057376122503794510098777343542908840392632995278901448471661374061001246517826795007744051045160091170771182872707571722680836441417876085225577932728954575540426762323255421053487203691900271326177651755933213134878638005628547828021210218868380899377068281937717990370119219912980769154516932886879935531978943424575576520482829113267573794179206139184744195363082039485922259133269366815289605688822308118359404332021248264583014399945359343189483609686809164830624810180056558045370833618983407515278091804498864885542082101882950158636704770778020446099720533631079637871177280041116162515144948261504993655125057453184150173701725065248500538153799890608633533039621433092809367773778323819260714576556181173732534709514055915613162070156363469814578295889359417487070696166364715535813924575706201059930571156382570220063522999014817434435085300869089256759029190262387869901519686264691244871056653236687304824308590083446851429956497373217543316055362553807463329314311173335163147525820264493419799895361353283388980243954386800337757033548699387030565679776154683328361312036133188987662236665305518793581226271604987507411802532976405328741767240898589564733337596389897437678077764255453322472610525453277231728132772013514609578767374576536959029047867989520516341178743560700711965471875999243598760550405527416395944955924587172365222570621780789871300663864954174983276740006016841218648148735481393622299348065071022732997152477093681031052538289469927455992723924238544891073266436490667942217604263256660077192864549018544358782051983719029341130675626315927612099024775667131598944852708189314985792421328950127180999809446718789387473817848936304427059106955001801447482383577792581491901905484852578659622887688674584031815278242494007562688093940907979755408934027076127226040746619855915240327405954087013200246453039037446316506242614728478062399110641545707570189956354366237670143514812789911408308137375838042643570391516997389241370568250645097611988014165701225267255563477404711117101560944118264083781217220020648476350824471201724645788758221562991420910078246058881301447878957067508395850180008642594678448438943454713080714835882572266315835581427030028176089048617980851389648692354215870560784794897281310621246083173872146677597033590206608528558151321983921009270024062741822183340186564573870084203644780443370279765189451663853700718793009904504970842767830428045950892049202812560182047780925493965574757324309487369831424854101663748528979572529242934085013371327943553053572488847067061596368241644779714622994281013098437293351520434811510905074456439102267250500439931226957152694056865913749695758456330844810904764268876231658649132700212231209778713967405715368328393696053345353345928597646895994402852744070023960812287294692453859291774813132995904463553000638849424536050456611968764254749998592905360715717312099372391570892704273203824528276516323855304663223341081193734609538844738907975318778647567003323896437454244609784899971055867633004574108747859521145756162766769330910497977974690757258549849927336517410251929584926699127029056978386968549244841515569197300675488495820244246203859822853007954160993092812942800975460673600879412851966563301343795292726441327332433412694038267913549023353947633735844071358250177527397996418397800123457392564318978955285188260010876292883092720773965971355526204411046042327475876230271757523438038540081853524382818317328938415275103718782209375762684964751124375824517701604718365606521350888881154141288407318651150959578559783869434965549816131819826277167097259581972910782324133757924353935920499420787538124985297765037431065484084061720491432598215827802786176045767372339631063912704219977998664730863951753628308281374017248329613361676400280446172817283581040834408801626237717634300247374411834812144081603205456512447818427087563132507396201927077685762929991973372841159943407002800951099848399855312328868963102235704239424415368106551934950410561380886957650671486471675305024778792698844172244845348179884447968737824929146058710301806386920721535700687039567773157563975057579719822047046970809946037306539791812107280848742694595262285352476076534254465043463002929188001424527733151272499320333023154603102129847388315108269949742112926780967209208951872499346231647929865972626987947696922164040365840907343758706648378289634074094654777429329842788933099662641461030355674229472444565650615282496182828585617682425733566907137256778100919045051619829594074163453647472776544156457706724773878812768540214663150294529635274438637510959873483972979652427111007101522016697794677351098380182896212559021274310816482165949001981376075818513442525288330031622536234683961414359778432300949777945260145500953659100168385230280640391445827319904729266017395999542166340138221716090799335639738673963521800287207702011106084468327644830945292988616612236367115479927803677353394592432690237743979857487010437838837866870375833667613664459442481423210589803412789377073527133898167353376580966123989486978960002349447297941192633907081816356779257268008895836691370941995971529996570161005600323249941382991015967006509215578785165678077533872602590512503658682252387313242544282074138592651801256192936150903621201405821597427012651773033887091824126506126134041391694058856947698240226071702437972926249675387933620579953755695660996267270515150115504658473862611905604819757977622053267573640421093172770191948364726584745491275376978969299407508107751206445920846057304173351059195946596807203307894261850913268799378516923840964786823754389363959882698497753077968614946138760974848392555780156587114863328273567715101641793017411802863375297514325882902350338380113737920238224765682739832796499729348510142551123017801675271562000468468896874117492018738665805469296488017207409078561551050205114340149288794272574338632303307360093585432797286919040546733825964018911670600939279572550618888699412329590220325201936095879481654233566067345487197526750442149379533472195735383218050380556902542066184212284854631360023177232605752519513445407512114162964045193839896047369896006782618636470227808327925080165133022203912043097945576684230496685364575943715562974997496933879485824862110981351580041559426610255944084754658990250885126795937323977698156632950179928086833311068555465022735511299043253530521577865610695522900530696743110919652215279449784378584685502709508681995382217200993033729484841204163825563436375073810936469912260596291157163000877231627671943072861024477030791449503343730201928088834015367857843118207006141262261477819432931964468262528812969912941733785481044321035699752877696916911702641964764297822704618188728137590664696933450285536178830413284028361928070128975574989601247943125586893611976912897198092924010584143958297419930030094876868755964149115827742852311178609370533404202317118899341891836928662555039831720300900910253673773007098717097164478546472377130228470703197840685676383459281134077690118104979719284049131597917651485315683610912972190812733096636967723392313226551678674528612080543210147388388230836655121601823419166597473502061144004199614283497089752571037223338280729101920210391674664294702276416158891388427303379679584383613225219814654707036591643578118471308112347107234969826870315106874724230553346769417706378022854117196687911831478508753001629597549442254859989377914144964508181417556498310696651303615911493935702816758050327089056868504141051147584076439282853226927378679864037189733937570808420981209004286709807221567480988647111818025802527690293899279703874393523113656256518744098977504126660161480460062860209003439038858729576869353026469611670293897532321808670850557388070918626213486131864664744840975373685718943796796606945916846171281108330393554789050636831806033750131856308462170611465872910363043073837622245761333606705155275159989708252488391868744139274750797850147335761866718632056106339377965531328595642087444091793098576710342232091980660755268197078263722980687941460465204610305962389446549771111233444437725657353728548282171644550723271486491466198292215044762822480857682259046428070205138347587517352626934433746630815085643409504063750305919804794444645775685180391512405030894313579292684714806925268839670729457145703248194597200178934847224424717741333558371363967171611306268558522212050814283372506436388735260012460612445441362718877958008453666047530811891859280662537877187000054494085421737994021236261430779749333561244379081281019509946766821302994021707934963208051262148637829612745659299962170322788397725300408351346262439368616423466822159374073814821807553717529827575696708756614047239562063792083034027184854720052867070308089689111848057821921449743177245057541535552829440008438076575781865419756966814628662172875675240875987147154756084988001580381942081631320509423545800161589995567012833555556778883394426461183191831223661917947682807829303109934107681255807735697656784631188378422264358430206093754675721047725434480796018778484386573604723133788817238730017215412884071161919934059813153302876551071726838069341881967579670327052109784841051234967984520054999895926889132035525850180852237519161761785530865179894565699774504188800254944251045220885396592079439558709371926801167994810900792186788823172397100627621604240075357137967572586467165252355899017960238640141607898085972334435984829170114205584781679710369356259183055507081488677704182672123349525579705427248721823327001286662566804726258422713700433160900285525178671200453700767026633396459526338080332451344555142927507499185375644854826111822496450592188358326468371056215964140024433777206250721372842724852012086466512020205879461661978204248918631822552065138966583093544821529518745517414678168459144480324261520436033756579095384970865742236528934412246936147832785959694373500815228618242642626990197134184454186111669420381585818063520077346994744460052625297769704179489609243404688069504995279298637700190440085752173441815883947943742420851418865663709175611139389712812923227482048928286224849154876917372241061227431896215451941702346739864306254969345794564860497720523043207990077544436913771985999487475661703928721804610474002677774590847866254118053344248542912144085824539139910240970807989551310468335701999982262813149921339052915251029203206355007661448955609402204018780882649175471846720805405959680583268410066348502437101475881278168959813106179727923413854678603052787442205175453735372065749674767088046621675701420462470263495009565979825942581440739890423563482260053203408899078480133609395823452494312163269203432687546664820769782062943825330340465196618733818801257983862192642236480896399910322223682344587566667543013877975959772488586084676614150414072345606017661983893202852151721806430343666249408044470938491990622953886822965401177917942340563894521695749843161167258261023441115829833838980466404707176655983379355217401632675595992124467678421837483127475961687947031454087458961643130058334685568886822495988650520512361337209383057280931364154750393258288777496401295625022277117222343955550790897932239702697353722262105254782622981482469583304832634533516698432081524972242069081819302784107561523146446433306140540282923054777473419620725707971414412792373336197581525349859007766218480508122050917853226849281761570792261804495073113615582147643111064508187463551764800532323147280713222057452970039666710772393169029165855885606542342095507976033201699403877922899380637158075532736671525228883952559965696789585742807274923817137071981125244620651073006367102517156107171944563597129298286960527837942441117309611995401207760987683902371381621154986227060019203651813213519254235956621737636757699038695155064314693367215489482238608608531875503368015984642936982247531716725411688684737866732751882617335252462055895903866016403966770887208139554146318924895585999427874854365282498802161852133406247818202402878410478734599990638834565444871346479663017273636057647865077030821258808033328817210995165585847337085905739579420369197723635709698593608102823729478635655457904088629402421980916173028645564840279045584604810689688970722686844022452378590988830216998557015785688603266541954722250422185722178932783103912152115040628034976879409529978179401428099952998662940104695360987185181429236732282574712384508626488683823069986796880860579946129611871389575265685181962603231882145733273158305285707807314375933130222093099614360305314119787900280364716347390678409932443962473216040365689962256937226099347225159803434732738832248753250188962883969494605401004115069544847434123550251075586045583026687474681004296298855157116431235488228302220691335237520231467525700281944254476774861751987544807002315589785328837763588314847824555168960980420624770008938229222649247709433965540158741098362339483640000406561644839623885374942078926094954782771779614274900829225666225989418074185651671757646789534995897963317148935288948057623371880274760296731178281231956663852890299259281298180874588515529778366853929607330495593121255906158573095267011571378313810831864404787815555239024388101051971327716946351205751476039285783382266953048028326722883748833951078767190583411008137199878134087677517903581815808405804602763093490833880181740376138074252270517625649183316888760869093221901922623503930152779507716142063348572451617379891696586455296217299561787549884303644088037780733662968672069903423641698915084296056076913381464109984141164702758930585326072073758792688597874518532742155987127418652759302213432296329195467236138665373783846722182648092103158937874342260944018409265225219727785881044454743646020651331130410555002772684287905709462324135444690388904318379660186860505450661564276905696493450215311358776624096717393729827442076185411260404172645951070340901770963886129246194114849737663360187682198544199116096429085707469564887464735550558891604883612555206890366221887004348586182794121626566208086279288614386664886397740958741310881732079149076504095794582664608451468844312034900584046859093981805011449640403659146156720332502639904687389257557611913182375989838271859051865872029526581976054278372186487873020887291342946410155504548964728874267721313236102193412418031299583077106735407708643252193417028380881692939907864828558653361162181613345422241522411653519002931482040600092630581746110849850088537769809845715384265221033843795100824195040948971738285467881405986591805612475611791881414712689510401140685310930895849546802177314295560929675114450372907322714042301800032260235580985451911985810937023970016705908272355365390056219247085377725549239522533873732496317321738771205488339702765597332747157042913300827134976836552297178822528541692295300206045855141536945268475453993498398025278542286683649217724945459483643131044009662475114376368902016506989274257371631445290803716876500619575905531484935485869534924525217428224160071150854618034202010804067785902463739611538900793487983032864543015378730347299497688733529992764548323273921347867625279378443097962748797062188594437449494529055642482214037915573647338007685415918070818227634833769236144413049271196039635453905747666184826514934861642916841091608437222986395924251296013087603800256701372654324797869754605146358984503899543265752569856277506799957508606734309475428567099456046109998353172272966885930846521859279045428260895911423564365402291778398739065992558928787500236040593234400109097634094510981928068274642720909642011786771634201508168938470536129203189160167950010547905861348305467646639277692088707668999743080969432180474985057536907681637728868868767082055129131936523465696051280960687501308124807485149058931395684772660739439613980793740228341743166023906126233874249945063065315043640219479766145483790026398378733230728165575423602042762792113798241140865257618781902830240322574870883723447327933726081978960297434203573475796773511276758592575680930419530111890768790891170068447931656524711800674306037317294014687798908972444820631668489260818735479870324370407684199683378282371659970149681552022022577989108986396061743972004324439988934207184365982786694046074174793815423786464668390979985519523381993539033805530002706791646766430798600026112285251090532954273815326427811362279602235594258420226024829767843258965621472978524397389436103897714346667306944472606784392729786606195551585366289800919545480402285826464133286770529957376894455795930759205139719715209207697417909612408069977472857556962160483057013014279900398492696365013943934468941235713131270553156255713624376723531425520598514753940101194058097383530967663478875518942929776544994433992758394479206657543507638027949088212997374483868614685204910096531724641517620167303798322109932506185768251589598287069677166905736977509322816425220250890247418830260187029866106346502160271979812880771955680313496332189007208613216168083855357520514192353534392450546420276727187306100725246830547449974904172600449000076005799617657946951358342124799557844314517327757181829976120189830938788457632442532876743650772345556453706566077248950090722561678229680447618943694234734795058814253894286123274645825134552254953379455853376557294378089570047670356818909957575780692388370649662855661192375851722799799719862000322334113883914073932054551845422675572623390040353020603192914120978377718458643088172805581203487878393463400097082058468235440790259496531683936006379964199540741144254878246786403492427792812034697376640462411952553471754503931916237553984573850882815615516596715546912020880397582311346752366018156050379716288004001212742565150992211371421546929563123207248751743118636746924840441727951992784344638842448708211660155564225637072386860534887854571969677294501075260716314589540938659243291723685824499605926128188595119699642176682189799372696887843990075807946876676400928779532655746233581192675547909848500067210792717711764945158707085466945645336736815024682117527607186228468889168967574557266266734921707619702861633132132644907400242618417899664323245183654392635411090670601336088609789889893280416447006663504759091367362767028954317689922400473461622887856952721484887634543707838000849293758082017602800637401826151574076964977835317825650022057961771564948428777700495415345416008840655979214764022061905301447225633920727796258607879318583934517820787112943306363561528698026847249426334472923238729312477364968771412202445628103556231676923422719926880731870150038479908812506380660985379115656193783722528969683462005389005779732594308567648201153637305082851962424592902831593170417818448204038089208647789014004670141462988686691520409009920798150466355871007843349841771211064677444933783582741658227565618489377287080006574424843172338866608454824490775123136156159601124724660596539505611434091356401183069829418104565904910769818195523305295606550961757937021984607009426246545266807042849805129129701801316170303210041574656253583333956957468354856178884405540714723701603156918137366750059521213367361283429729289561663804718683307829707301714045782707708424096022274985648388471458690515789513411665890533897079840025993963595589564707473238886971891281511130414997985118638094905172252021949426334593025166569074311666630777326655262964510253853557157181190435120135873898338160407129264370299928252113692680956343950278917630817554257312905908605572377327849130203367520125711093510176130204732128861688678560490975680408289468667962741670627773828194959284305278463590104922961534799127715624837598159727990039285566155694629384476989153733630481102112360474859131239935231438716110471159476024731673838665425813608497517199613789673292742945789211497838167936774429371727069486558029996830773707444276710113780993675678000374437759008628691639694465328312880374134480279772312733780756615444767563606346669020843258715591141522566779215611999198720793006796889462677507510921384634020008525783547979722771903101313100195230149761610094048863895809418284789651633721992356559398857451474182288986120027692077760270143173077208786573213561845335849340915510177754450773183655512340773175212326129640353981740323062303998105128415355629162073898906245904777649002293958935056626456324800373022196930744074868841729122360631690454471869357143879422880897439990871934318552654085439557188200852307195795750780533143742137253540880904763453183945093910651384751939558466109158806566661379615030311912364007307450948951076637223317685835775060329136980356414306949920859442781574915629916685120075159774119645755053337029721003097311206758307817511220596564134176765112752051868649192539338379207566618470148939904723001522447088775452974334046167739205119193380025436869210416043129507089103174689596619959243706196802135235175742314224710664588275773394395062518515071961909038243089187817902002146610230078399590490996117732585524669355266731186719731937521640339380439232240684347255132334034662932594940135860265676886428337352279885932989788020628526784931503986509975849343663063118384304437383307558909739449255085429668963367970048631365080904330810520021172231819452378877890002315196996569775837865462134244268459713431724093550491523536279934514398196187326138369532021230570707342001968814376035324533087606909461868963194232605376982530975620626044641192366756713205391990654593127373085499282711926091361452455708293734254083693160795837405624623684856929946762829034804672178372256301796691892814059145313667474436377709193131755368243465856709935600922740856252330416387261627846187285839570554158440985726906029807968965978526869929506311678340526594785547492121013982364810528863557296975888741373448568674535075811887765872042113725945054102665692946185826149849311364920328079964528191625059445764480109070042672645936101205016230850295250400167346645470324229250053036933635824355943545589532757385276082492006683459738505764637000603139991025781571200504563351009313531332206507224087061529168609205534687299828299563852779237371883143350112093848973843595869084387608340263175528223155226987123184833294601866037244104485004865263061025586457883892872065278224925961161300262671543753160509170140264069299221069727411585086496922485408428698766583870194281835537629661799832892670127923660928095332288657137308022358181409698638102249307373572664453878937553955523455471496125884322412761295849770139915202020146905000274334500579079338244664511392207500701834135584705392644965637717319759558932696486939727039405072604152837072145782522845949265614920944199701826619807898179210806883220200101389905758181248339058060129111005169014385129597398041688397353521337913742635694314002018724725692715528606847588513267055201207629322809228945929015184938190085067626840582188412774972999355950389710422327468252769281949294275360271652624785752604556542294655973139954916232850634749953883454131548801129301642317953496904787833218669197763802131268538037484329276841354658814366491090071948290285389256940388954784847976190553011898261295312269053544148962713212460735779740996440010149474231371993860749437231969422379777620137537960474821483379744980660591690591494042518954845372265866360976133748544467602537385431136105718637003022871949627144195283096765269577791775344571135666382367079650933606339382393874201221887749056758233929694790591430826731500522920273983588050549304736900169749005296033647183465259461229567679470566517645876670549054727530681264832850140757188589509374940745614066824032946089674101549621429478872616036879372138765608854409480785547418608109485463053088700542886133628612640461485065412080310203986631782774686795084174900573789171979665877323929413322728470376594100466256375869691464976447342201731277060791233925066340815369478886137850186927542139557485704194758720047710361686247088455957679943850012133209109587715876022698445868488266072932216435980640699837368629138115326453505380794529366332703816929961996958172999592383849436468955171501511817544312361671949124085668655405825875944546120936318603410711876821455921873224511263410200008992714895219992170187749658853386024575893060184410793038593113262377622857318486405507835972013276956671572765824034096016791102999185334309307485007808456281034149607139539778547213531310586747873374176189226038148335281455985325131536757338054971111116552065196747998650016630032203067393243818214756660355864674420532677893269895521566384418359250186669325999438787859196262670983005998798817977068404245323928292664577606768953346360474881909049574420565510033496294017855108628150114658136634988384155272576120384022293100011499757737842947834436505472706526777250251529863852449231748239241035664092351613289744813384731552517267533676290081503305284108305674613858585011533921287266031795547652979761026758383332750774992478922387225498493511998610805259493443205647426860485691134353114820705021468177583781304829832230621227089231408210543051188279391988669723377187619849230271732880058897196147169872804459522415189541320413263751020409393848727812579171906811802869890549684839206332698894011718044871586197480717561667250718731779177490139542558817053284255059417373878925526366188798469947423323284064749716611067018337459108043438422506591334918044049499182435071640459815753400096933619419480628351179017275890700161151036018801748902106866850815165703182931626126565808421880838731640919034236710170348073262958079609272324042656627553204506168935122235474684059260876807698782989486189905053723846399879956952402669825029042775416901902182686165172327931844617792096438958634794742256590282756805894334559614616608090418579709966597886101941282847092197997316230642532911259761600502780725107502425438062729611109722443557907275224116324700364744311177166095264791174407786974511583388772586782848039383531569379176534609979480722710760796896635532779537436963985956394015386935908693111244189669310608393952071382624061725447978507883155806966195555286795069057641158375724142444022517132623564620997010978648464580076386977868058517934081360631667992202013189870687119175950435287787896154654773972853650642655820330897361302312763478393789678106278684652135461325209488046972836087161477219328482567223832325306465612664512681489458078284669011658894128561872974427993671271883388811536007462058068284296325374021136545438827497336474395415166704894880808106627192412202066971445363607778869915979607053342346328436809887706742639838035852063106561255315827813776840988407509083278647897714420845261542684465311219501344369537871815272807151578100721353316189618044865575346147197525708248140898305868878977902195632924497738509532354530220191525159320515720111235727374953256588423654227194332872488533220436593188327511312590381329829995418012452047901685470191077031789533591730243477975538567092373744110703399937250056945641760954507486073581241602486998455567147669682916147399538363431441805054594488821272603847299957749532611435365015075142212722514542572006029658593030570984052687670505801193733416889875979106453115919041729859903171947627571025720357481912297037079618309279224168667231915603789080591715990256686785950818220293610473599683984000079824251419624642613182151262542106883755571545218924204304272924454382825065119702280228869603963026642255581044421879339641517341881714071476875241347522861877382513681443342517255134931730846970812360596445280029698423074779477627394506865270403562258329399380827810567818139074433167284904849386372078902534277707507560410759828693122384935964530442511222355644429926229312692342622345509587743765299993791699271038606458712683790555612715592917236236001210646329708775740525145309217827236022504764073772566640707981925019936121616189330474338868129310016946704701434421322769308392370052280835702752999244243888590625675608501685980820900207400370222137085285172159291057270391511738087308963701945713039110682105201107125523818398186038239483874346516331810136239864209052549903592013292312608209297157898430779245145863588744008341305695884267504086548604265857345018185763095638921991627111140065866651315566812982500044134005148788403071132289598411284019779911719936566154383102869127042721909328698624532047151034036520393761143731906779305151570720026511927382598318381100523507932993926330301112979655368859863892304276105521346343988655821470007465655848548859039401638628890794159033706628457655624948851669953105099586870186301813742712039783052412686326475483340382171603700430422466055900851468105905439422746132746822741793827922650939501913336912748898806622133380951030111233116644149575900773392898974261233247883963485466260532874520864629915419454248294048262474273783086117974044678242547773362586299912768193587657805029821005054252937950562111918092312998213602613537787055328242294154956346266861217487541483804599166017319235524842861790974024110961546600326854637719001510672876878211268790750862430374191085243926608858800187517762383713518317493550646640124944510036803596512127712444894179342071104240424429738054072128492427240088635623681830417149991378068401775934734478442727099367796585657189752986109348011758648691681347321684431455084361294996228480617036583815036732097517872128705512637486266356988837632032958269248457769909655221591037679680437841483302759428490979819512046355509682449023665245467541861695782504136072911196398878432154337250367571522202699961743067895296607281217612530211400604621488744121232498782918681628411585915080227674838432414987204733720118504775100187936549326191781700639974050406507615885783768440099190934977711514112309848681275494136946526883620595427661605070746887663218143855677077085936345168845497263190422505162168644375712718540948578697725076326340154188779211724558480828788650471159108288505889225115895745599775229034885982985539477308907076471880994435929608826682723034319914434764192035766565894857184242141465985830641668528539507534119790745263169308640305960547906084857300483630375999116451311833668937510729545315108511246985319900880048596106443174934416502067585753143346288169412407972204785401456088739904335834296437268236894914959421377592137783532602779828086414652720929808405134759191501275410155156245251714741445166954047232493762891088174823139283478688685719603885275554557111881809830752889729372333843926031698117398443384119974380384310953381142639664431553252469422853936395563200872366374263108936824933153208353525868609197597974183312401218884707342130385483275452929376409964082424896421175188976408659671321481847740457296721412509277967436415435788014250031174113526007123551772862588352634886273890851634752455330284127249579011943639738219266283999264547239656195358669548296311397999579251525370039076345163970901459763581418870003356732483063570041736736073312370672733920618341777700237159739948262346173888896492808845020271450508727992137124429627068465432251057078495944905134967577821389414703825629505800883275259171173266367811897683217300289585596664263699067767580235819782759918400656485933217193673953329635820441721534356772956593460271071601601830502230600904894503693265738405926629424207051597913115066617348038201228116544598370998032956453269568857273093941924962703295658250027619688026690924913180388558666917382020453842006754737595036312494945093206427828090585227859493641745190291260654592573354369801370483963789681848726375275341925446705586576374817059011012844161065640716715906781681793115353671482152223019003754577908806720933935427634837894469999321885401704185378145745372634870483582100599234924010437606017398197256095949665077655201831222702298623508088578641681621721035883641695585476106065493338938919548461884406411794310999532290582582434147134602212315749205912568003456281877125518119545111122188441684217583895833986043749514121527254840644770861581353210236672200637540381895647807732983575835546325862638101363317098738138354310023283449029206100515356516248900226596623844574798325275044900733908131836647878806359210638063671128097013646518897178399098823611230352505396729665360051301673371348855581158323858109573673957029831805218236799974903492409647514359808538822589950468542399808780439323578716287009983084139497098403688077182867852591673877282729764395640027449331283309435543636466083516986392005715302809298685413255362667769871938865632225847980580593478106742549833619579706639740322849681865535827930085302265076470199350951818731463476906691642608547376281128548094884794982491017462253974854105158252154107153676568971990073318500919112669235267122039986547581259559430978175139956805578487480300088134103234471360439423447958781076908609627822859131574831578236629566958392689024806792571368489287648431211984721155814056822428967115556267853051669458600070565286875014797880721171363929959235224725114594628306137844353621848046767069846012549609914287297639678694525594213906915369530780860156074023399949864120053307015731475951334718413860855052977691414695578364400171587334625142355680994385010815919354266242020532291401338645035516259510702111872712570368125089036970542896818610937224004160456670507924703174289876016725942701227047895357249366040625972059591337905314171054833196641061107860088844131709497021212437235959541897852092935853152268049102374875901380730117521384123261924228247621004460338117830716967900487052630563454551028515200866032769863610141495706037551924640378938786597117656163302093561783054151020138293792362121097225978027170081612091116234086891980576345617206156343307739995543875557418749459692777509768788534473324749680042968346725053183618736265526666945028496950566578692563480586206050190153193730879846976143925688765756004599903909460587803686219837428120130800140561744331065266396156391245145181992905598480292436280998548217958742387541183632026878798871397499197956169589325894158268974566477889410742079305646114814013390636843290606954031759403220375736510976425557040600431512595902479051059287722407463647046435333684759905232996588366850984760095636989454730330111671251616449536326400036734436054819388371892410814738195201162582994854848746630379451249676309958755699122598697456645229800118458598096713288786140926213717897953435420876510173118492609321745858966901155230565167214156088268095302436327783299759704821951751780867631895838509706658477617460353663167188925312250968012417532943127474523866713824095027434289453929527549433674841406006814334123427895013263432189830956821299505818983312552928090596073664172514284229710851172984933913476754303211765310273962801587668745777963032517094159225751036967018353539129974489805074861502270844064236990180841429162958217154313907679908021034156565874184984129660956812126132538221260540412451002990343984914216810986421450506007173914258800367763598180104256567649668526590625198976553038403225568976204079968705054571587784119876437253822603984596827438310193892368432192870506774809941545810355229522443640979861140110528355787556470154446382736762438365652524394488716181890730405108483674279172857315393876126036936698926327632136735729569821335868955929014446578837729806377548199401613541899381282268336054810571712884451236645274483332652307206954617014626029504305738195905638306860028791481111333075386255690266285964928936148993654824497969954386568666881035191351689522840264184347337401813892440926902629348213225106891090525626959574602112227418555881131432097253491322155728218420627074486379448772466170014015496515827886500084565251008507256799986429790154686871862588127967304240155157369783518775288825649980493402120756466170208769508395559774528687273959249777804231959863434312742299812679976490285275921480893881067336712767305033357494113423786642159132407578861357305526401610395950201180344828346634011964467992215713690636439849787807484948818540120839147999568462016983618880830460341812835015491523509659426374197491306085630124890273629923947342972001313281047181046980475197840465440410917651206565098546646331332251492730034544902847962941177462858796979966711479751603742709513293812317038006821812798179545979378451769150312911960323031688788211849120782617840659412813983356514937585270192836947105272724217009746345613052264530058687392655600401642372861623533482558284461345160832490991452902811217400518572774535440137754249571940161840817585110143098962596227152736823932530551712463606777039275955412079301221722974214161267576488463409436348153161850903073493670422502538111805324334342673635511050728470050226073799282379615692513708776263327669069191936496167168636179686980956308695076297363371786956362515078921482140385195009879304761638243431460910617197514006162391992759333868478967216056579890095183340988688399402969623550977248177994111592084653339413937592770540326769277580781354044901995787100918504038992073123315800110053861618638603946397281020622527060378348979600283234806227740972092439438637658248570743035659936359158768927659311838940049836365663383649320256639403686384437111603152045519377208470879531724687865906312348645057705417716900906879566030799240497567199547746444329922817932593191419599132889644661997084417089627655561241421382020521860196183699313156034564093354815160444923898324715911568285271342502939565935772923122385809813351232898703648106520157338793992909529374291901481031132266442296238136815175932555999322821436206506628491508515546657889494346735722230094429693891393936766176868056730457211913249269250991696874804168443240946998386874249962902587034387999417378648580324323041574874764484349755088001970198183026608968287204729190797280382706690836471514758975247592381595088698177241123951954798452777330521555792904798682707428556824255604341564360179113714611272085044610861581944340179614438388052252961613564614265499263789789606816883629224747645779005011883508442012982821037344167389172284926583829312805553996924674583166558482428616931550321455417475643343095889722502030190759441160213329698043847968462750288114582066025274529666210152771798218167662678026087540422294778442794977231964987933579760510239239983461092901673525762970294966999305819405457888435990444852739214155438932809853975724305534833605191870718712286491013756677869871398323321657480993028129361422769449508541161661517274548467446101377010149318410924672709616790819888405667360418265737644704553753961541567812460825285384249870171656342758274581486508506823942841092519705609727154977268413803408354991536192913291452109403324349541078979467797703500970822265258064873418819185009799422788233572290734578592123722337682731185561829152553442058445322580887125816718553603553229727406157123625078431426297452402048330347641422784541686133114527787296435486235249473932886917891094352367841029941126191025288961216098673198128489144191272780298593362047576903633966935918937967227669152713116673038594756329480836637626937130246577635754487887292133322459469518569767641245366571289202483420603267984606314256435585340575245764083656873884548940862628728473906983095921094037368054110890245261754147459543328172078820041542891603189025835232328945689346283062309990395851041940769705073995666253875057089006734415944208404275040831934066808988632226383162339530345558258868333205183288173051803386492446048711854183737678795565522785638292190980486789207665060265170267113686279483327279876415232923430017190698682108249350130063929606862964178408180997571440373304896970471057608470444366921433067073176261561155260754944605708459358612515416996791570741495847520818070414702256456263877724704337456024995187876795143430285392557235067958261225905647466006995601389156268638145248458015089965962730550297330051382169221256618270787626179330119964156893008352213868605312955638694184262512725187924302314547063914949828379644757198539562033327701825224809190620341906351138562045895854907628180686661205028889304454147046934138119930043341594908585685118469573565834652208284986976812551294275363028389808335405473229521594276561739863426348984162277578048095338292527185820662561326881314391657296206116585840164784261620287401216917566519882014455891499583683515050835632224043954018509772528631779394180354759195516852630788945951279978796798698383126383179918461645312935503165999743899098412737433224780796671109866441752583007358825374002740526545227280460191104926662586256719854991560498661505663082491050141622818123323777927779013709872527432242524320955335003936182628652809661404136506660933253130053969549839956743655845930321586166800814592829798497236426242875037389728196557128185586780026248457370612183011360532027346967133397100324182339505526028582786989186362947472814210433431155752460432772528938073133164411395549847956999560155142925394982167734640813176371314682581271011705428029807442006615543186665885935970261765138456249515405818287310287202583055387435478111146604301614087428693964571874244421001100780855232816894114790807653076396126138439328531994965554939801950357418017184502666214310849390475239732258247609027344297410111508870053660503156012467390213295447647047313555032262796358114552152201015053800951891604763303833764030697083463525887105171451350251104088249071506729701577686318441222721043729210512077498077493683113065205043405222750345652698070848022593772742841941748373855558935907066880607319806523868090092861049114191009334714230740711276909567198028306961947431495827997423753995323003239706855549609448794666542701440107785302607427521135388790644809563773371858806453219096328020868222340632060725905726755588915787314441600748004653142240632747009431749176526389875367583218776293711647766731033468244529178120901804816871589642425403798634633608751842156810817052729132781495595800305985896749437478887725753316442478045260760889138449460726046851329887166008923067870613715303826096082821571752422365490711290795562561013715645507366269823127602314583063962734518932332176524982835352207950192257683350712865695335147223082007647561391005150968606536779707265010689107871305956188880895613604094791295733501946528655791357503512704588765160764758935347656763296914077962302470679298473999238839417706878847046120781819490352004206574727275828695348280873328195702347379580141099507125877434648804424151474269924769435584219565882301762885055085260800041616599494119265331856696821616050088957677900762902361068477215263616420649042882902590395183378887544171205595309005706178188657442316965730609186528528163836489905078413551542059219135013290240248686480762424691717861739361866197179630549593782095238022071906217602495782896383664303549456546265405079118223971871583365481612565271064817846554542975304430918112061611870229884104192705042390571683570756124756088947816760267833257819409495140084481310505340522545902574991506779619046720112699863154335389108007266312661685293938460716989345363751185333660761263753913856294565885703897256626607109638524852132269100369990162784810824109453587807252932792422867944588185887208404490833277576409426998144988025666376774374785881962285998925066560312711450460138275008063117175133389870578557093836602837997519556354510234391729573427271592960502537059017082890382505230835734599681307577654573087681228725549121488374530480751431819211769978336327197169626839438290146537129411631034828649760618020391854962210502319683470411734381176295942328623467323984116754303588686677403091133920418291411810224453806114109116668978632381331975094518211952830575284651969136391489716396861564078278873369111244619783016336553722589269628670965690909506024541943188905585250713722798447146732624544425762826915248825224202068208263043921684685214564878391235913192504327498442404812196991317326958504279428153163713114547804203017392299317289804789178594487729242705855521357554884452269114286367666795032505893123611257046622911813604465044270436764491588259847940001820733224205035248735359976293401014484870460457857807329684165312691154282078538789420158332827027141158040311859271278136257500422955657024689085123876562158517607852806433474801211173768434368614776852804867815201486454239084784240457551744501050060839758432121512801944532786713793757267855558363328943895303607877485052005815158968932140736287820851098336661591541924245200393083166637843998802477028124130095209159546496678513766493534422843253350613667503074224256453803874707722934262733226712238702595137544953287121238324855347472187410812734520734659042757530148133215649304939392703270065911765816347498347544088819450269312314758880601630417375530812675315641174535325536857806152723952239946088633354558748071953504667536122661162316731068566968575852861232037304934882405743137736607293878718557413177407269767939022331454781070302956400497564467180184261229890758289842936986949884937295160631496863997910736076616828376338805541202756898124534013039964645805913443346869501498758069566793066276974432445308571781586975776176450434939264640108258616386183296731615240811491615642357359927349207919895397298969480737607042929068699100347563043866272378065997400551980697384223394396842887639296083707141201082803456887230204756091711346166544091163689182375826057868969097449747557526673769675275280975349238461861482304272138792347775030847962418894118883882924199011527250351306563998337711589084288962701124887842325253388930197721669425772538558327059649320559591072875338621700175122490379266943550651309984543033943809789269367057915628747995070729939764602958375225801016801881507960561995573845212217506786699630091804665274258192649100928325508589725994496983361395824280401718511813155929108268100773049193417937768239085982869086777829127188539892185253753197187921585505959246025756170772035980973785918597034820993520877409443832537586116351416719541829548542173439490192737668495684453068798931582766909387199218728762959248352776588336588964305528583807145591947498437049317104644440869758689252616532527075653025949019282928967520183875166481488608830363889737965886789842516263209859297885804548518710123853316642251952026455678889942794280724903096653476430891844512587131661042803216643120192555809999937136159748321484633198524230454658625916271216831446402346101836010184402051535394953865825726201620811792017187960805248418781974404646336615529234079529804162805214361286248444995931681723403355324426634183779869975278304055643224560059466694378061117552221010902053849595821898130492982570474774881219088756361520945651109738140174177314240971791121893909747933381945653701205791145020590299647430092494636778354143532725438823384971441947551752074097703009955121333893303266884222041514883339215639713055275700918020409204997343771137729939875470712664204967819234496051552208780139598265006043749421609288455518125993992683332552725650431089782125742019426198003429219182807179940755350427937649229825797788605870929582613762455543795386682518300634443558296881847627485746598762361710423364131734304454109946114901026128288370235106366262611350828204776786704507875390139419919883966795878533387486391139693401982682421649094712708179016926641367313244892921834498348137565018968457845649524389517411516035298892519359979424041488727054286555236643003315020551186866351631342718334486575365958377277871746280928549229916014964522380079491767789688474030169171861001324528396169583785657522607246814502477308998538455797839494754143685414367359510625519642413787597067080700882799733208374265012362611098132752715447924204238988217781918919500242475156867230052569738551505086695432837612289783384768506846714010384565959553846497353010577628018229766606360898311694840950111872841931254250619119318050777136668381680731114821588835758187818800488032039529756438435898778939362586486759072060989838159861972927709185054752123719732538451004421898219247498080772074535063609688100034039970193224133917133871440735357513609960932527194000689560961357059489629903073091552949522649091054512147825191544572387447512432186914900848064739070871201506649582719335257197827668221918348100787535744974597560669681822345125868745284175330746687457566314956748160422913289792763391730119657682728914101450224571318618184917812441446879159126061073933442586923059172394777467905030915061773928376995955892205127257142036563757736524837852417224411528298147909648016004178432444215321263204782059900086112374560896245436747973773850334398840657641143300353149620147632366688254705662491514738122716841300146269547642020993916326248768116232685077416065126156336030665679188345401624138306982437226462198787386074416433436835108633279559681069896635096340399885092778353879978000692790493879692615952650617602959701001200439330888565958575841186534390597358570572898910159026115573262940694244371170993717815342125275146388456363649465058057807444586610959043793763895132121214206101100912067735528300987771984844621350277265614017782929900242414597125364151407585885715047225019557403305060422717897452430654814155457680845154651844826757653501827360629447516307940838939467622755922697592914572448141522078436361224723560493252179523435447226367740670807318463931751133389737411434095896219824685690080382295483973615604386728649899215056240329311839448979071392505788612968771056106647281132619087087306609339000091434886231426780913164882617031779354182491999642002658224535303363681061796907000070477900343354991470162720636768135350398104078505709715673846489299241219131318182020143762663929349541712135449374005923114596051838429416100053601279376907369809633490785011494492988606553127939218397966089009481874800363365978137852572153768050717415313130643907795804415321127045095608450189640269825534253152154324333087525108527524969732892660880134075573878330634435247827174933341126367110321752701399171444174979705657507561169257175392048259665165518190253259854763330855013208001181688100960940683418108215833490052664174839949734429553352889597302666473698764988856314504594424639152701025287581916486303242371689958992866151941932934801885390380717946706265730697717005407678151545475927415184900338560753079340331131228283555868687849791998229950676518190227110010169708590656464391628131699709568460690794216227268673537219510909120501051974431766144678754352247291079882641511956575150137487914619332134871876863716012426566504858819896034141442487599492550010718938911234834657057545064488137037804235667467487753228758174308502253898279940404806286553084893763725748032480640496730865158775529167610755517192867321899994177558799110697661919871047106083181629396031451307971601709413935043975293733300484602910888747125175198149084518548834433895438100465683926824811665147742171666765902178885440168857187838674889314025656023675279929617898915650383234940425107644375457821023937750760149509483811166804699808080023370428016192603673361783684620993496384291809709172942271405612809617027864428015619766204755559629964608174790564681003185548890785540935052147505012430029700047779793071695866210807213976629109500033975984809829227981280841585645651416631706768540709003263698581271810928019239699968989187306770881573095285858574579886475380550866772201656387715784384013835132473517540480459173938223885936843832638846072232074875381682013917221844387262340847234125237672625373320605181271415435273651308858582007087168482655230509665042568712160021706288736048248110673795068192396059639051286096239621681636866370508099154178546190995907252323086985587925144624638798186244513810180964332015779265472091074439306908234737191956356172410527334742810380036791166778573269448218695060869992582433413981864903722061463507046429963012894695180405748838330099961996506544870591965450801890113766645958912906711774133585982146680389955845961441441347777631474917357440304609560678662304348016292196843425652361896304160498208584080213400650634738683833628725018447184253431834420773027810956470684158411622540217002769300539277368291227860374266664545354813217590456680540609883525408175408647086867739605557924690907494931422158891845972615440947195751475029682582286796524348985826529067337085983672954258402355055092814262480367091924233124913858811457610296367837633398325508883187781091193477374995294430450608379713799494847302401848452733568361196240452257414845270080380802779437845204338556730075590898321828448914101955829116534395394232770727649238708895041749755931748215942484255044761489377815165419943473898103429884600806291863678175351581615952837164110382753386095791075371326388251601883680750704505934332685162104563272016350394537567286055823281225490510640943875168421082407114144159715739542341561468195933935652927049082194308262348869185006597226113059482230160573020243816911032452621640210504741568901887605410893811477657005705375047519303822949471729423008896388778996278515408068972709966554626381217520159256085805957360764374813584792763932396905606641415022757915823972047979589262086481315976269663149323421031418760450782511866727499417706334157428007234597164652604955900369026474596485343159057057902077101359052675493395462509978788931036847931488340933311610596468305847147000510495308454299984768599826490168277512668886729239948352303413982857574645151966933326205540960476061911769645730412127703915747477277073358246577447940805954715254394616973966683987540507836820016108419902972483456067047224067926652486756324652138655273219720211744636916306120254965950115465777133767379866531904299181624233372317002076988120333658425050434568009886494656280997274258545200823790288351035869536845906095387812778739670641821266530193860380207858298305475687044889352707725557758568369538918556391419857150938454269919068059045863368537462546795220957489789008011560310588755474160510365181463912444295933765350527632708012668168754390713616294750899234767618986892522017960804477021667773849008472150205372889908060775855506542676597269231631385070991713314660650454240843434598021748090501899037269740510989093173748329833114837359529731745714807541978486413499927777992595971386471584605235528803671966547239468502497835411368724167971653880249558171422204648362026005659085595869472165759598598633459087250430662830768631886687915123763539414424425784379489590337704120742879357020337613583727124773910659172169752438571053283488825037688464802219567277584885650467631644468171453337039246649112507667602708679176518591793670311516628536087698922289145100317874286063455964348961225054394050297603875378851672199111169680827564223017418795120810900009935946469964443633413399597222816180686702811877321248562952295423055940347302326405230085231793537787784514314026901399716569064227085032795198421963287994313743591231168602525191053713801353783503362478084460544084962939416657941709404684136471943560133509267161574661733182873220648147145652881899056591997281788935483200812293664249674302309944815004275634372389657891955130751873642613820451516212896017599274703246318049291079765506729167878724947049759681659848104703438857500144367398456020891941139363537275206004691856749604609965378548515208744878159069420354029146481457473702785346889133710851718548805860624432151295750486155172769497580583433795923677876199355391127978357422146643100977704323943923998607636416902849801860740894073258740929313341791056809714676406119014109687096345750516334281638623751052263421035937483292339914624127629987483455484555910382072565279371750421276729304413904965924640020952934472215981177213047787564092348820766422423656928731181416009001816385912522479320276320910636635900170407582744474724027037242573757908751999603165811563982466642724091901507210294656606268441964289450731093111546040612904392120108050167732537249980966709345472446781985262814653276122482159842237494557221628382873704596926584290094378752396594730540926073712316113752141023553935986302875929630656772689903550289055948285539943332554785435461055852853724293326177284713586062961320775288768666083840578354617913735798436149536748418163734214303957745720952248675608414489841602139736463641556830132669083718762149005894813462384312218015995938034923631354880690391719209101452347769437044536372332893996333630763778780837472574964135847019478088037123010201639561389617106069291850254238009436827610312895599072854296102365814262335242847805285313231041577838988501948761421791632165911936611923939658602143486965778576657774187957721596892353189435877514188564660522373703001176974987409960596319606227238301020656034535661125180481602850831049430279169155021826300311655927623459981672439219753380233201328363253725795524343283811233810959430116062858379830634222558815991405556899423447159250336341287397332156930796697482687029954202268528176842481403917898187205113302986075090765981210695752573284448066098931399971219111372564136304566794808539398510137358483984623094035301090607034973878452425891317844255974817761468608026424411807311835225771793436342286767017895285467192698466658165658475845667507889546526609920489959804473469680212986339392361141490534145006206355177154692810730095499529832160530641454059543482590030899097773003985828499145371330188695796777346614138741535970312149064754323969569382672512915486193965670225901279550148262440102254450161645563616723906197918699246259773142343955595037710283733851000917501437345636096416919312513164610579387166194737314943513216218367493616632602457593669445070169085162596414547126581252403603774056287809895310948529924188003915480055871724263721258385282460159241733254799200230551299495464322101030336427000780363829795971025472105131225148488776349220283054299781548498845056081991114651270167060114123671459539232999935792090869992281577182588642996616320180377550327945459756590221826546292629940346285561016395554629357507526386986657512336544932127933696510516604753455256345462387003453896567533456882293790102557841742344414698220515450653249216822180733762153954213187243354028085727913525229615769141951276310821930237705301841191764192125442396109286696850880414740098444344772238779775659342882904790329023844661127032685018815970345344976282527345241622917788856290693261414521059334658988810952598490358054905206829871000589976199661832396279087095539768311804261175703855764983662599010900037716955323095754212017918850581418825637884999576715167674022898784370344890679380252436583165132641773354474145016953145714455543243208189655327267894494920029823886396606676658971289550079994777538573654379059705503533818146359823984358144014271832046434525529207651865544622713457884980075975907609503581575932784563857644466149671295592302390427798202559285222621057790953839766862829465061287593974210424586593483396509658689647825326233481879674273663083884676297741189602928745853091659627550442961373629628259126152486062953241375519046355410161885778671513581417513412694001120462934078056766520309582683844165323248773322762409757263463676372452421205801159164968228409227040071927748489093216977192060192938389870315253682124041359183734559393896324766977075146833448055012157845152995224820845674813845286316624199170512917314907771731016207426450590009158287152932304275777168698110633671361920103845962861846662282316437153887266615410782290703830590936181053405102150241161877011003386039171506173080322848477737315846031187722712606559553648130601779198127990163614008087718965768140528390225272172924739465295009979692107953373439040728786429599546427912405293711532999829526222547324650265958938598831335333154741931417400247868359639195323086914071729980930680062813200018624312549580729707517654912400787022355332725268447629820933784389371823627031176229831924713810790496358191066261028088774043113589511490170485640507097269628343368457300329894957891136494116824379455998467290276907466810179566144342133890425717064769021495533904712746734438577423125924183105588569283116403394686577286532644721568175357893628224526443350505638015265889799363513936735712255347286710160306366886027902080490006942314764667382146797698543148811790061776569595021958562070446844696449793130039774277993179696859082891055675324681636720148239304917366650449987484288821100950490566876260019542365117284680055852850179705054086824359374647774921082768007424379133032515751265022482401494670849287260667138056936955138535327168225715272176337979621488294851200997951981720552418682700453640643819899772724429668822650994444092837130069371035491484116107998496128014330029305955852566644060450732131896450416494577806456866412886354605582860165644597151865737138287832000001875420300369588969842854595648768545721042312528121344665099482272324146221884894672758064531960333313421551053054042578681851076312600570174382142813545954017454659293256729149264284752393630370633116070448424109534798690179751168205665325595273917721984199969928759280826111794471986949212029964890862734554984493483967582129274936524881453935244326318888717064921863016445360506276779335760095459647139347457017832590618074229726317838691462599400200492800262626314216082335883151132235516295157090745296912129796493470987232562302369220029160191874554959030568969286604247352869413614443243298828566059533914896878835399402408940822466096613368412244821391019767584610759620733466433268649084251454563831998775995971778843762607146247640875784723252778257673687806118887754814324126437019229980417156923106285957468181489616938589332600003676786432698076148586237563074321710031356970734892838495020554902824602335193564990321322566561075813231845147525637373896727339421966549955371405642301045679564989447717156512340954211046091725182494847686839229112400538153412593618007456622962932936648685350018397976598133183852954567092076692369366181020180755472755826683835024211202832991913618523379223270580236356770226425384938038834134938971631539974542036176273967509890764620587025443249770744173797902989093478638610468859043882118452027481478629744985798822088959159524600030324268742475052014795284070966093809619410437095348491826686630535476476511519074666194198061701742568598820463052929724820801447493535191116871070979661170309105606478651503158497146883088159889605214443642738503667767421646834375765015980005102293210566179942389198313886684724773934973842885230658312717976083052339048459807650705741633526947078171590436659339963165513498740633307239023240640798291576068865902930485923366858780525337038023318267949108379611905728371279511118910271749195095392973284030337649391614023255288799940970795093666319402607827566724984754976772737284918167983472724919717874556327086407139857233168771270386150427600280319369625405138337079937501568535724465631002072763346939342817505222090838793820348892170270930208242172426214723956629378722030109772637821735967391262539225811796952215759280162897508629194358740740877910076433537271234751707101551147913223019779798628523395444575612842112014727795516780458649982963415149215927275202153525005612836445800669071714396413384901128675671853017588501558790187872796392881898478801136778026514223925912998541702357598691464880971170058255009974653742298691798109849662028677593972948665106312862467877479299301035078627394084516593796192801944829283404144859156967511502714071555401191026563834585245938678157000122136397307140212480926972621664973957087941598843653996301874060082703794350953642802550412505153682975895020454130776299402613611695958398695703835042340615077581756821018073841912538805745533214794017966340861850844719326058596415481268893160508819793183169229342492951254052084484350973337435286068957038772630754856909790568720723698132777665366238920474546861270763407878709427971949134674258618743737771399768649617054017622231309954768043844657116376906474398365443145067167439089424233152709720249415534298218139234374988134649452436750015171044637334876484475037516715003904627727461000519018306617737496776494223722897996171250738657661056507275096076354878284809139827548293684835053705328160219057061610090481690842136037726385951424128419410316431867962722803638701319002166302261000979604622186380924156897390590663854732515079937351215132025552905149398689369628615967078497869468641434221991743412984522968150888511991379896056942300546156858920404889604521575635961434657700839993654750707164227826432837000544627363223188720872186924736953333008213678252628201506930844787015918968756735205920256871481907833098741176070349699253422928021181450356981387936424518363187500406920995857365399915390218166163912210694376467790407917101807727004799472399984730037605142736307971267797182094649449868285976939190980808804147653618782244368355651837097476145582682951697954671562502146405419880423343296570570092677283375831391894635292044329656350057698396584887061120046568232870360463269392306481353756705061038016283068058935677836983824884854535066540722972129187613485990826073777527957261997150322915010866187969414920821247213348300518403962248020609655828276870330199434205440249461329283227971453546309250216437993514697301038096029233916407714080371041508626512814743450881589115429574705418059628860646388505281451868652768269988549082795772937867397463215425682047626610300794843129908498079524631677299789544698678032510790722883041011657179097575303161265539210508732721271373792538426447204730819708297140236356878394784211920533648165730848403345510579366036954243963893049575610750743956558259366218578068106533957537353402540328849246506207281329909033451375593256299359304860480748570136434768545225160409656679314848963101884251092936546892942619412606249218948681319231016372591756410862331476479179607633373447112736010274074383074904765195205745319408996300327227950153346389684836305549693878746727030844429729725137526200253203013399150819935031678711025727906288939805381938065038229423114007185843725951408097164581233334460182125791811588351595130864575271568527959840038658038022783843337490563940009210379220825552731096248164741257425308224590630605947331196271291072592004646175081184493093135457182265630800602119018589995094383382296967347447728573517135634009190654820946703296816592817750618324218034840123383064300852229597883153892733230672894858602104996494863646704915648713529081694512437559766752304963768906360587823961127308336555939829262074533258871419639191020006168325402066373318900133512875784101366282081044597057549944861850027528163358876446333799233141556615677362982951489290429061747926844044762868000086474070439480652747333913204892502735735270705486742663571960013370663366427502718290893893581900180129966306382377425603539193913660425253528899564165723476944417941483050580172097655639230619431534607701241161187814281695510699869087374249342897848461787168653499387705432603290598969093487093144888584000357429582664716281972274429632410605006026077736627085067406778072970013588828153394527978830394993828664990276541017800207876927322486929175080559132503814573381754715228787981312918447378226483750313865577330304357599516343923983332973533141288531620825311125767302988299975449488508623024249931666973770151923013147479485409058041518981197045502934271529425531518652375422459555115298138591257226868050453637489891345824983381019676762334601051866428956424350568627979755215865831512944906393832494047088224999972691848543147844012912776381546747149116029296756380836447809895534553491923521291963344509651798229478055802185250114014885440374632283699608730732164308669372179644658456378957793131664037616811652297686241429355268245791616957759827536431080828909333065119143648016642785473283778884605653112798023053311682081193164494709016787258141337997049877878714888309927689557913961073257407873564758833629870737769518875273336286103927643265741786562504987493246024740215522066915003326025779786713748377698684790797632075577498624084450513332696356548417276625126924295769290136394833307825423713780239954872234111018746405528707021842020281497078615009453660201666098187629543190240275209429548171695407103092114409268598824230090007724298935168855421231541584762489097703446742999290411772102592455559490659357448748402361207827032263911519620237748145952683300583758935558807432459391489252788040053484833338648037025755339197994358583684589537407819034807595286759284869578887682440122330417172980637220451304683487239421453151304538108988029516976024948302975224839134365042441820867133016025740477852645994764162948616930116522288058566136706782364584208591175525834431237249378900301545662198993533246318193556452381576056403728853056772981888330410869451339390384488209870489786164164458729294504280642883827926344009417144917351981181682962142641584562894730998984502795591335455140611447177701630823754319665555608506892033917818503862665587299989479025226912695142889476173030676216574834343122316328750623685685711672666990022382019174264579192992282167840854207424420132165639924204868574023781139451634472985816631028086274144350566849899758228397247809908574168201757108395198504170688916383963782980303843606084441001687541223210331501706982883814642851342760763093071391719533048819493348740927431651065876687985555458325068254779892849643627443160909938354436422352693593854907272588889662353673866582465696955647425142832840416837013984631646110188145611400316584705184981482923983085733538197051358376164740309786533014209696074404118982723921537173391093762585504339879822110422631431074902790012558810698629502986030623044888313030905130610492296725451446744669294860593630265709536958650007792446945201475514467598227709651382787121538682110198816667556294689863232616981580351320697350316889848778114015181851608094246785447345259948259206477721864496643595507380050396393203175221710429044723958882050746064956109394762985444383831674071705572032552467464843343470177507500067117673971405945426599571128213692878539727918588818824150584941027974064590580009149110209110314232793642910997643990007364342982799873087621916321120412616056756762219142629672571155490263190408182222513837589930297831017253651251047168679481239533655126969678377191417127461304771561574248605530482942889848364568808428685164878101754155370199765630719362129211111729054174283646592458714430160194293212553200442714993278086241188739293333355435086501552925735834399113610502417766405544845783781838813533366258873883737748720263796936670586938019174822803330831619839476610785262046506105927470023355983817253638623311535947122452259403588456068038758640779961061640819195619092287274305782740497687299626715655553781983052471013633075574318340867863980289366945438732251244973201022847252336278557521667775998861618109320882128781739045381384703671971435467317638831268660358305696761821456601012443726758144561242341458411453795143658211549201954671994852067265267347179420723028595825490960508050130182820934161483408526235848345420710150072064891674442499043603228016975191842690684298560103014434623657750720951206621756040673672816237040358210503231701806274876835191692299850605208337901026553960769152596787285458581459067704869231594950031023435405403831748349066817770034733787780655370984352370050630858305417284065081655184410206736265079369622365563469902322209095325419859822350662257590523459928367172196475742173717279199703865858659866472838848668755252264502226400395761043556643446311469158920352696437787112109233532168105973122768245062832575138296423146159075239643841066338513926407345821391664608435579988859079241749094231517644041195663755014912027869412277216264591621925266889501966248480537027361549526225479060525683007550588500459720814024941013174287181939279258730382300898106888597944601800320555470044406690321379331287261497484749593687354379489666896649233563604468508435906322731232261254186753007046572321426307225030740008324237839721415268085592117120222837241594813151303548437588987031376567074937530830293224446381924127056216188555488220917758854392207966026609262567948432674048309880372300530402389195012711519715876494350808247189902077122247212911795375710497059862362601420223168344161672268097067327062079716113003884237849910053809635285626459459558430532415062138862610687366432389990857090740406995119128014516361980300480755900804303818970547160883778140197235990919420981399642076253128383493845527761583063841020785673504126746964176438993713894802739202214898819447477042928336867785691709115943192487576242097107300364870799179006859483977657377686277039548183241857711355799437432700312915898804881392953245859167551355634655468737174827108822252397310166809005317506113318778880749577469131540366185907350856173478307302366734287775969170186744599469202958077582447212574480066212391927314940534970425824056937789890725055496430623289322969056810159316222010900827023858799419106155628005306441629862965434348906307660950174243016697731525727249072949723644972435482564037270932570591482379906265066017234244310114037422399763185112322834756229529934396659639264015876659838745344107470277263554901141945562931007790889562481909943693512420451767571730848974039363025013886012827109250532523835535623390715589815627420235827038719761992589520085070935065785572206596816867939179537246836920891768576540690813912172845015010527947744014930016560332231387382351790983859741610046889191059639373033136695380796226373154346114156943058137448034563960938958485171999284267834276721701886363845744477411240087676378135299006452443476785175956349122871544761448971442943785496730426441153399290423983141856143381671555599440993706143776798160238883320198658361860675892639122100850834733324193504219589709210561159759235189653903187264708262173388301891007649495505889633885791880290369869664288613453215637873428471059840846967959890598512559983610487766310697742540423386437344667995082433394582914957163357470502326218426457088313862049656351660061501770794347276128701209412660674504819133156936944012658978464674424983483299094540073867755924635442990196416890981043042780519791419874085662240748946467623508639260260965199128627931960581812671518118105552284796869537159199041148116199904856480162584139856526253846457573685042676636038830470315819990380060480029957360499318135890420099386955136198454154674822518259334686619800724525677442733089730186845256086523212496254940424701575027090835387937401151598838365255030838656656242344904906145339717165339042651431947669480484869958045069823914446641547594872966699273751234746771856975929054850201383755615464266712111211843219332586054128744524892560920025684010667766267338107395222243045477349965568741589452858822369398026672820563479463643507442448529076871549423812903218383179362161033115909054895912938955396374980568318082220201713863722763754864061021197150830765701728655067303942049578368429426320948289017410498760482985897672181340655789139948878861881072229040125879180761250226393979797226411618953163348953305658621114620500991050742831544659887833577971262981271111025339110534508823560630949414033316699237664633293660022807715070855509708362338668626028863368049942265608763272152254539208755246280113203944846839314443461676728204666066885064072570791101259764626195000598030244933907932706550267324992763341803065403121178308514469745016479828816614028389259665284562702771193885646321461326608486832919588949387870544079883168160950994912702034509783075132682930196497762401179436406034534115740767059414128040234501317020906638808729920808086058410252435812579008975868829626976606049641166777194515423956500116290131541064865417386864951809427896292498614519929031659332194829680944048222283732562866716725883908962077571803831834669519950163190937394231180293134155035082040155116689431787041596113348276162826511688776096619113946188320242118934691948134331622835677707651075539284151913773439163838537290300931431514081795177398434721087113473823563939078273405825041690792857219530660208947661286445353412878019319914227710310591934070495647067510014152839404929847821176538862952979905967848671538491017795733965975226195375831337251001663717480589775520469115848936027918137194632265039053174677872699840282270060408849695217397142493398226599311083074143170950581388896666602152680596705011376921509812171141057673346946960114115673290080793593251357116641746134874154966684387460427188223551273914697959977088250529537507540129704247954486988804802668343507554716336377628105071088967201411077826002686293540380611469969641416516399470272113543715001072619295609826874708977820765537956632405404460623663483001315277453435329194326979165636980350286925632961150635253435675231177650120328447882942955352540684136682653814172737121424407326768800983125916033221323488829218551653997244255606883629962914602460642355087674071860213997436528265391005163260399646568149091624853085140310603786195418896444187503599250255348432560785054091086404594201672571418613727162890767968052363196270631800126431760679359464258377084561086339155427429229920520272379502634111063689758571161636536764518661135584925762764356449611891066703105771630983309872731500714677427307153495202806386515326162592777244906213676154946477462598405397924858106931921939961439764008871339268032202078516179126213042850165339157037761986374348248129885442220385810960825456924581890582730184973908294859855179633476248781805631790387135636660845770173298711967185431142091504866459677700401354564392669013072839757532801136477076567085249692541681831113786045873005155879883676881880313195439759170148143916001043494865711025699585451873351406060755456852752565761043008159090342023731787421353988521369565871309429912992004940657915626617176372087970075500804490300815713057049846386105453974234224216426361740442567754998577687241948119006982716460785202276541882500019489183329478990106329457735758377454582066171703903790477010845683973147429490965675503107969102768204521646198795224444075754242507604520590623275580346096019797851754054623275329597739410940966668299679517053054506517883263905739515081678543833052001830969695367816799523567160190030754583595660607657959009301200538451629440184462993298050486127834015466125798588847903960602272277836387416719843536575719084540738439175645335873354759580159174416825854050143287515352675515040562277504904072018929228086221386302180887140504227293644957454035596821311322790014747391963265867803414040634809642017224534677304084894202753887221894814739233390069325220361506608259607345879914381203735517626301046303630854302194307341005066892739481236583463109217909513335140936492491694483687616861916351583557984413490932983279521315514217222609171091628996786210182665622095538670391047204873429640521693057390246779816224823821907824169736737119456573794264451062544776095047138307681142848693157842446145156100222337944846108070868006361978078981245826480485691464204180623650652575141124582740625866404115726138692952002218210972609132876012369546506351355477575456450667920494324131718706217212804133116406360717566720399916981263299138957737797023992053337971175748563939175737572245446135471521771274893495753413370604625169588919022101294212319142451876394536619079335995605680751970305780521410295537772951790187299635405382468589938627150588112936658412851115599170608649819979413295301843139072803442763025066299144733603101934135002249240043039500070449990657101006446684377126654196559447691766418387750224234340041491568711992026861109923365194212462726024857806488429997731458769182791244623724673905948237811720985140926056150892575555753754151236233470585209066060708815393734824397860657051999953174243339598319065314319943737992027231801051308900323541511243502145163139976383761419023840211197543786714844704507593085406319799739120820919707455443788813663159105618053717956720209552196724207274990800119564047141200242910261632616044055489577459674781702065072173323212277296689768359664859984699317492047470822228728078942668306939373094806127626878105700689459858504428900449430810356387642948147309484446037561908542732669438468257361609256501615539116193350395091480392585350173162971040187526702254124825309384854988509566462404017573603751806750841215280663281051441890375446510489757847403554128742491229669983650425222118498468356971172525342882965606920680833176889490796372385154765915737804055033896044105165908227909927047235394201705500908452386129790082391171790789267532922387978148576180333282546400286571138289049942189285898405063246720288898763710608124388592773072767186674284137227782978620555994999482371198327719034409701537701523868009739929886069919517286583270846993800215008630745363614293423519911018566269387181502868169757143010629962852235835072134869901028757724020266246112137764160233129686360437089135464587243128821664664697773728908099574929818203213776338934881033526964584143034695551021508345419972594107840903666980984352261155110888272240538401643004433731728337047565145474097040842774536652652333830972518732276919228580074235219919595018511880596907950139480960502859805754341844785812460819120144091613337342701056765722018258929394262262644178113956773907471385584481611244135785933236707643344114248693759184094954205389270840366354826748054998699743974179240586680865112844155793801199731487886392712423145207676202412080440009232927761556590395054228459816214908721340380147026997357972714350481952975389101975314959140819328772940558671164052778033127136049947309694520325898665774616955866210060257366951168298564537866429256705007036738613126160847049048029527687071116059793349886026551732383511841608230187001894043225387717251854249942674285548071956636928696837893472553400729940869756368325037441348337538653935748149880523916835991763354985749708574077493334161331836372372425245347573095932277896348425253256233917203028638009576366688496406428258838464063661575114728139477321713364289292627293163950428604780171538431022871404225310823665013549151156197110265202371635421957224192097369419417476703901125530077583704072817809621062240958624040105365743510178019950953860106717725567703110571099307581146864400777204074574551365468689745347410594752086861155088119382200588358319151319666529602972224761942074176655024267982020492762886417310601149937740634769990754406217446513595197645695564274575063898638596079207092182248039966494594315648839445249179416947415007625577301077191508456748006976283773331542184088365735936795733268169004117265065547043890213413305159925651190137887047958525375367589783161559494574694565469714933614524940535256834897286635653197604782009883945905842001754295981745743749826206346610299766335277606774349629499673653277673658718589074667491132725971211636115216824999492662902946959899117435198259948838734691358466569545968554044537931403026511304588030984877847017717154492752860703595803253091396043982851041444916420126074758094839137050345109974191495816811674828748496916712471301547821583377774674629640370196619065176304412336083404313505726513717402945985077445442524794454378609519293731189644274597089641516976652633027113876219919888186940852170912675034820367432908562147556458346009215728845858112348213017148194121938527697918120183852201256530331206686936848984463768433847503181472944424464051496638647487137845113157142921789277692190866187841879997156813079972246881166753043532192628256448749644306176586085106606077476753551272871858120620927677448034518733214600113501722740758864746445421588731790118095340298359313676405977612792056504373563620203073204894089832501428065782250229836220740568903403331587082460746643380114014090872329697061981354973666922513608165581925938878732511922154059253433793772600843493560192144414317717013438529805202963376796798168219810130932942565832551055295860613881601955649929878302503908744812369260562756101798622473343389642762016960663097131593090515055989736851621863998940808170607882568924532960506920924547356664331147925954801572997254189759581081795167559590874257138751434273451901045483880829487119510914424591586026318003515678667205342319983750217402260159559309686858545994655295463971442949472344694699352781064901668175321670285223008502668042125798108875180698650621906688030554781007389401153751997505080647548596294569402526386384845731850867101138354962554077095983213205065289972017446084612971409495348666314753722539200494387974051836649319012490968529767807397744699609041477073249448537859912874639468604610146840769381018120496059932051362432001311970095638212448010245985479835968771094683981498429130308890163415844586146857999420524323546001971779862208437912301754851833842858024929070383854011502131148467537727391237966757471443439532020802304059015220301327166328633390637491515563834185236613015324001538632826920196096996968399695164186380877260528310588002477315778718370049333732040493553254403634735903739562944359948852242285325118797039334181695639667521943274604000381337991358886484923468050867424753331109530676764604564064803367792545625921732229714328689540442927375595431912915866996428894708802469854483844226833126713155767988856117532376361142163368533283485522487582343191750683877946520293523272100483248765724353141332148612492237906217126907512449702675967651155752119281732415480377555493507854079363232647521159227928130327263088045930391207669512224766165258660148248486856793020145661762360032465511875970547729861673623602582835810998000021562768139223765680018014479570105414695780277578196198026540578411916841307364216031692017442969241347973857027126709708213380721671851481091987701707756919689942461243441041922066074612602059974889280482284726745173420758510838732787732628553725994764558788454556773416160710048185239236414503345565475932167073338209047194425675310453189792464269176610570192909630765241012344385842151595806690201432344482275209973973774849026076702560696719659115012898977751541661886811518422863650916032506466865739833498393325100712492930388443606330820352218692441259722178174249726175880864883484715791532505439896034075099987142849701528936155911918828492046575252892676705071339802440238809299154897615573526731516513956706799130006130493306896697058880401892603175478099537083755434379155021524189019763368515728406801314387907400120538806102420584480585309012496682465139567717972264643592089581462342139083363365005436819892933574829600211481375897660207842075127151123928090647124027760421778621225970623279940131012504735537293481222955225227073006862691192770718008013129801442783856979587519832967760168918814880520543158921924870024183941899050337162943782447590550700438965032654605416800078713495093047396401648517777669223673038975465573124275468616462908503943091928371923627668543166410412098029921101061464344129681564023267892037227677699052014270979412607128847382737593020306971630843214380247963596490800826049675252680461863876287289920845544841562187524162352175086825008607704221313928637846734698649344107836072143984345367879066863494254811483421626226257782552485516282366675094833110816357903516080221099571306233490163428434584298471864968454377533816156427770831464843604470404212573894593731327238204754560000815594545280062414290616717076187359288455475749048114365128832297463191648218725269119936808520175178467748046240507468984676194620892707600427440874052045470047598979346004148137404576769933956284787898729027455590205032096286146367052672165483949712964514147236738784021156482594755089392846865189257791562374504755203265908783307517590375207646357481856101095262223313398079887347883196602758774940946607786335393216449622965697197000991733300857343980834320851889423587777438857597030118991584504000530505894554489840336811257374257768820397350435275686362989303657221460983624073904000731661109598447978401066829649655738968903662715449238496022055223721624315824422664771197165995633885216470749035041938553030262847241887094842574073978265360367361726612504385256668497723307864167689039458105269153009398874545842453876341827416797666676361001205620987838313606899251173199557998390183725067460332644586690559418153967221871496585555326502102960493731747718115571994482029368325340692598946549242828377710996798602870611881941148555360739449300795731229514470405780149000602452608638797274658022822252294755374403246044666799275473720759616357784574574955490132206453331447783606599700538710719100084918698722562339358874558470222171731356550886864623292841744724817086058854125723892124519886775360934552761307515656817652840618209889287307199903684526150641915648736875456290582388659450806664632247105464204911399769449193778516699378190879200590404154515896109970771118115743927337205405702350753899818704977927467536058284182885043153443398869507067669334929788054872300485250646570349972364623489661066995619718993625985044885905058425704251752856128416315761937785662899236542964199995695766688764514651385057106068382273321495677977107716802054796775947139873810987933336603580352706498284075574357256841623685567181694007969480787748085997141325631661535270442179209770900926331824214391131631273342363938414732568407638823789401118203585477462333374271465239372475734922552966742425943402460438937362882822503902627443307374519486955841095186209747344119610307384791569344154732960723981919753907245122852977819582355938408035488639550948569371723392326606018203120225655508264032299439034325795961434049871468634170846696711431355516462914304240409520981581302610823182740393042715446807897346459323799392149290207031543141690078124414875855840688811876991433041228016152271834520955406292995205954063925896890398428283930030987784948358907279738396364155523302536320604829540241276152912728389581405951272565944045335958809289511873782058351339297764687149237528056428116931680150303032407483777272264729001862368281996491907346344166735042095387348415021529603810430539416710015127250153451438848610921257207313202811381524595497148740248763543569240732561613916414522542665372250135769465015931370010550771112603736846087613831622279138153626171541672985790766719953132009734060559742478042561450775868601862876037678543534807634405626497192526444004381889984768032387256577955400456330372579882165647729449380169011510212554978825582249102465183865297146166170925146961480612234690762865435272167389987058937528773358013219992353100304004992934372798149956683602273697044910912995395744022117884727005367923477942423197208252857528438151825514177913997234341663111514885911518282548340613119184817371348494915884712615334763003375113579716587072479521716515917312502446496605234606429056680557373720131086744396263100587016601157264344396040170126420183912757390092367347969716022160895511562338952127895898036236305039307414951277688971498732776488655737289006604609649948438251671237531596290870796260275062659701259509171313129683629604592800912615487234693126346588898938141827212610390077706125807567921858078637180262127012574320228536444166983377894439585156139173189575627409139170712565300875326054945437232002624362771274444227898677713515128378993989499084861922326863062669550970718193134545244661637009137010341703568644876169177586762739262195017299969704609769693798795689960941314597362851798093787312366097326774049507765192091496618610093934174350252758057018276972068165235803198319907106711595449665762554873371478274302601891896526155006492814207383069901074232149285682365640930169459851445852441666668572711864955932076516695450039413017054251938614787819973435221533302968576020335237142407431305457339077590221360082866526760952933144344269202348333759743274019608606292510519767525727961036903088694382211932619458561536750028063474939415921812191842569283806666685976225084156214784921535590816950430038448497334392867939968110615808788828798451782401769829132254638777726807298991819936868542217013913430612474401513081525322978072467112408102757760248287622125149370925858179472826671070659137632411375842347570633325465326700037848995508812714110318608728909417973245921217941458420138209359318815690705962492294241945118130809982648561228082279243953598217555025839722905368767427327326618192280271406978286223028961647842565200098297333806156602070401743811994389625511411613557635535272209666560026420310384874734646410011090784764848367429842498800416857095241124115840980294974234439731212539632168436888975787541315544374683286680223453315634052029632027136855369941949544216851854818504960689405193245112156846662197368954119985257818996749067910727233121173008468684291918964611442842039936064507574588305814337670527333309407514412027646704703330091640840051363080028716494777956289501179033075478814365891127581545136685418876680718578645388622581301706232347209897353896113951719493141814686870584761873098329413626378762426840429592230755398916464196427169471121203045178578850192915425383366962308874764580807573115039128935310029059466524716060501463652667393726406541145275245873266829774159084030584850595144867162748764553983883256361638867929882157562717816767071788404401122491613052467276123321648056138772849113010786956355537131264024786337978139040966397936218851307527141251100021565565246034278729681299217482366401582002115664455108903300010712644728883356357921627231419152105613651267134636023011907406951575875359437793682870934738737018057072268275688093626331706408632913746696857456526312002763134860369577546928725684217814269005380557913027319888600883379419499289496063855628024716028550062946078975036439956215807316377666844256470906500185989847386474960891458005910756179221436321847415152060443864574406094945250488828324279481408462140653106306231102352436706110236312006477890131291525895161569162268714167962896325443237808791869957706910450435609126983865984904127620052695087325516089341887231807332382587090491710643680455662480889722156789480571737028498802306972278233565282627133344194638403432733886855242276899372082677535616129903999810128797924641274374504661439638865973933525853529547266642403019937582504627239729900250662188237976850667815223534903088362510270325304407026488966429591164038850382794330447029211477694192079995124445549866393690366540654964087123872113417304261666458955866052943413076796046208055367804259023227696481531599110383762072336706776357958996866866336970876912863247706421936167030919668420093564228718066831499084196699420323619505723353832025701675563484759849102256687449858024184305516339247391816039137943977501803409518312502547647806945760903356820891043536478081613811979141840450980405070678243584391450602881726936288737411432005741496915130884130219785490894025588199805014370697117855379689856175346429368643080137965055285271019841489514533441553616417641965706810528398391927093074005232437954431440994616388198889821765058095800001493912287356635766670686472063705399167342766475282018063222786188449284757892602813690396599985108721329792831459061989326070373594677066296218341182307594406277968021691420029811219964629840860207747792896824552676727284271183201410258166938344275714512552039494638100988095947883552218846602946736604210501209914039824070965197916940231164622623243088203005655149908171609937568193897998110445806128814383388902842008760329209577482458588426382874601964843593693007641385021608803424947051697587798104094526013332029070294329658105041276693005122235998343500452413131432907735232006886284251525872787366533007144591781088535104671507337182641769254691957125903192214591837383417943580219397124198331065730283724352790841098073779897787840368095398235199186285614192995891223309223191717617620594142977098746524032573981690076123611468776302439136533759782245032430348859234805960315444831877362556864675188056668920254304591241925834199403725919709980689898240418641884945710207480219429075859416647386061134020848813479736884238411672168197477596756322839899114829859766378558189106679872861901415358674874264839715267382462213559955422755570470698611584053372981626758774666142941287406217799695234633282246142973413971784835695446970623364738650871977819674580974940578524047052110710161139750310402687447800964456935863796542034393002762058308271992522019942576858485961924217412091202163092768228386687453854489686582324617753616785511580695624971049728653852715255565412195640504935172959291173890431708979007611933314138541467519827191819403506527354210024107850590807770276998022027038809600438876791849529658009510268150465839852513091867377015886377539984228295234798747988462957741400146019821277665516910978486812338288823012345054000590003844456094540266454178255062395279680252431117490463561642213430136541167823924351274874584341092791386454683620546227425611421254563394334531418053590902033461132242836269943664781791449734536300351318752468337971938598725139105834408960450028760639507961645841829125489625728403275183911768443842625618903548477883622334700002324261739747205349452872576933533842795227997415876658383493624997661899947242036331502632083261920942260081021184289923233596950743199308602497422119498417903529517447578674774285649592173283959029647619131465200622271470431941459219557754076283504505430845405978583538946811425633697045426697421803550703919504714284388655946493820151735928516838791977088099800441606188876544576623716451734715468178471654416651248644269022763379309101211498610262648307005089957637800620252690781583290441493838680160152205902672432472316788086626401059964446258337117829908711589454566594887860957423555356257953544796844533500892951548084148285538790133189683579719243169127010842551417030081015235051932724676146478978001772330527284275213298226837626569815767085514638122653154464909601220308824093484215268164924274617898885061967194042179251370791059277950824771272152689857935748314514430069711686406460806817914667065633113793980717493731735508285401050287515005406082125101497989050365131981713558471711510812361625704241627908865857324035277550871861459201557725070663112777475649335139910097972665831241519414645101703041833542482163342085281366625288088639411118380738198006897906649977614677954515968611070888514669748693509004810482114257067057007238137571408027783044475384812383457060598956651204321923420330741968052861035840370923880271272756565261162588588504536149968081614652851064484480757007418328224762963661760769664032822911250349699251212148711713104964403395419968001952485412944933634078021433108847050023119371906104047204390824364306093290885012279169879243143532731661730307082194876587677576140000428273921235541239016145585967765378240551724313996048720112893160277282615025726664102663817494436999932213070274953600691531756081475275830840907160430260791171311182058919671316057487982625739163438040887835426478258629948908942854093747426357424324483131134624644455632671475319790034508243268071543994912075449383851017262172375492526179367994790236251538685644650306114878756169855983717318334006526632175821881535609789401298127256956523644078672811004205570788265890012901945629586272189631939544581265994759323195835842556929367232457045756093031631396540637229103093677070406445736286246575682760016409196325814057240285018831896211793113660381891304750666785342163723179188787916216777841396264739747403244005785158488223593110772568480377418780085782823886054426049551795965556822210455597891698146455964451905095218602117204589113935906156529481759130926302277065760409081602020667356779610013939043323819236965194231638580301766424756005108312339769440576038523942099763526497963034388250376136006430188649147333969978373803821515731934043247421052996495830292702275930301405305533379378982273931084188962414016717030377046268417402952490515500930303252353582933369961417905238759324915355158300135636315170376880090784273705687457694504893861420402816531163576387738411981035191841683304466948660742271125458492127825925626305362764071913013240648786506556314181685322733816752411739665840647384936455019300409969069105533744580259941176420490637063607209075570587849568961918686740118262382656920998359058272864729430725552503524910640780632734748675269123640975461259304476104519391345649372709850228494245199876272227990870254164547773024317600783408201994596861601555689377570318984560846807415950133597814344987538656588937178918908744846805372713518301250000636578596488825773670065448090784954256644982689139922067599856685577573286657584450238553188855830126266363471882041840091103468838871198176396770486942587656193322584355890958093462043250726415473739765240523914261308957139384640865395434143191104933304260760192507193925443955883010585465636478758366984751412577847393563710589529648039887957450573454431919650858323491419333523203626257687812653569742579145394300442740074710939498410261673043594046805372833646476850015950610102502471299388553193505412572798045806319689431382500613656324051271091192717491683025806029186564882645616065139741024307547048054752160028685101895489403885090379166034887248626962749326556392594872542367770491132643198468735345042914762551374070738648163435999160135909646695330086132645034441172209090507373798727922538544414945608312986054790975732195089448143324442858618289516096059264283763515564468290595216419636283614568709686237047692874074148211729763525301194698525381343486836656818972043306768777577951820972432875550852532527328011541333247978398775019831723833262660181223978609308603825093141830441512823127559948327838909070781536684727536044886603396152950755259972075861594611494190473860227786267389240815619040624447912310642277769807809708847240149007360035161154438939881096374550665020973045416578842347623291128299808712263021023116839064553558243629042190718806968906165987969075008683506193867752311731936682257405497606671231079565117807039832557340537655112112872209940101928134326895648183487924421806533455064600329196551251442581987587296666506402056723414659630183455624301850198441010293424420818597997962175118373100901571500073645108235765730625513800361228467994278687139135718572616214385412224543301862498168991634175385530990179166094670218085800737419682484188300940108894581235217884935162415810357463191611756082069459293796634324992760593123347720537222047291784198695583494153515237693307527886910900283837491639234277248254000611622756823027511008884880344168364626533719223879120047248526392533337833338867369516937636515433366286820361643837405513189691517393496962557056415030051277163596285293922664191296599654676843087146549906383791319922749805720122038645474587912222588687114420183928027855824084074949135028991443999098390325391108703637115208574708562613658714737159384954409155119087509967053264175276383550243561243190851876115946049429729127814433058210422692745055544451189172585739104553780350431914489346284733847039791384481492487051027515161478387385802921560475630790962678665622309649550482801684477800511943121616279810062844765247334140975547942807070874787144467332415622205687402851505904031391075989458705964026002343450331673944627077509094718156484708433662310969919876626473322992588614115115060279100769239526554099614736643119789537943030749384823996199946000753959422166641226478664653562177929018275716086330333232442157505468188788840831167051059031642510830875287976019610016887696683729120779782031268713185229666535978056750410295356750141387548174717516474848345655718858450474713886611779343633335227293983402553917066332647316777768678681921731685692470340390228351756423693089301910807114947701167121808313293390435579778049314047272062048418719058353004017139417874937127286491445026451364618496748639358312697252143208041058443365894403784188088819484947521194803621800826689906625141875684527662175368686178329733693364398543247545711014465895846103837394073175891543171995519448301818831343027017855196244586865552630907909957867609664160682992250866925555051994969183310086868616813193253010466834479916648972165192889842562312930974601532718070208976261252009953368844702870386909660876151733490999320073585836792749162223429903562295788861288054131032609072878654635554208159038500130064399085277916383348154958892669557949724991390559251225900564303337626131462520813335049654709002675829917492061946250980441424838972375918681887124892910811461389271423820914045723338720685657698098994866112797153161171049414749546470372866643055670132070124218642442894467958435018986937300492096621089214463390666363279108387401736281950349447354960125903334322716777193422126792996946194065273819661557434236217118013916680660232504245039629500268076172420252060420622725792888526298268458362827040003542448518671223382248059211487562689646278900960251526801827835600683646018060065499542442166463696169310769121279325793980654615414052739636774813320449391946808913260341130482291408885517862498038307676809624357785953780316035940973838362185999717253689877999136229065794350240578340768575972750922255233430821498495697634422765989453197222169094309296065282180853562068275991051546315526057448438062623888921329128240103315325170705131750814289398379158749266351777750599126674658059114124826792574653864108672310892255983999186694368944801892884205220078325739847005844402016753942668120181364285726741354609314609558864544297833915865752003725608332928063645528466077597296960555953008129812577130998465179649836104245026164569204825784011352850391508347695909366025260000546081332600822070821539796094165117633497927081782268597790814472909494012118038255209448768764829675892802173271883984797681160261674702481150251336041301937648926815756447134714306034424318584479561910390141533043765532711501572535371329793276833989632045731105791277639691141926638253610942395952205923275465737565610005431960557590692193989292584621349349793059878942314020980201976454685729620302918772737762554968713695156559402703876995163375253524927191465983884325156153255063940752937486034631757916212532558678136963186499174255150100090927129546838844528276263252194126607817112222691099902070312047652161092762651355805663404617122649899330752661498743762268456928032462747700643209401024416967313636038920761714208749946558200724539938408257324444402565288846317289052515755749934390467133764925362243291409644103303433107504449332945294012300435799175976119394052434947432833603927742407363461552976096431123979055043821049044871079567885004573753526899989146695737960312406020366974805206524413670774037613111773574113487692539449666556853484342706487225968692434994585769188379521595688276712574835301821731376594491408498347563514368676371787899160708561084448497287710260542241850756569587416693588134594438023662228856382399616928468579977665615780744235599664286625329711748866006078402071075348454661169952739235493468856287346360469964823646220857008406565701850548833730080462586909381847171336298581180506427891986072954911367597257898351978156042483390576639313034597968865557406989152715799345239899581665224502242329110692999909978157044666348043783001955474150148202754058087271139588876537836138893358166605023406716917306894775924314505162251070158020726115299821465438163690754388692945719959266875075349797877888254862749051257687215351124996484175528634857398855262476089090264276906699228224926386282702517325054870580108436634365477916686672345298002271660522703085605034595673448703425429141508881033074435752739706425911783298225735775244588860689049604672765459989652089274787075766254882304826461178160761985980217702908367204814157613851975975850373449308630001401056358513465612982330282066170407833220967746258031465344104435300034741837779001927945785681073880080204559437917803756328760498670057971656377357941601514735523025558207066179531265488240689921566817671573663744848784100034102031310466704286653211527043532908057248813272346740978604271081757213307454590888209693066156780926209976009449942035096835572254611397021364953162036181736258499859602290205948171076625792365844179848894181058614243939885241441919784523414035082065443893594927777733191833784977407438551925711624608552109439079021536636345326959641955450149183160603091959408508522015248320100493358443609262037604077106340263705424929078603471095547464394805016516985013736596055384869135236237419934819910410358826413480457498227423834104668392433239271328247817085297401475356969851929071899723037098934325802204588677074596836452260569044794982415488952378962823988333475879779531906465453849358975576220880459332943517539883506977429416554294836219884764910196650381848618154781563871286430862971464660202131719153717759241451998513661692024835312839147006767069251056349234710776267806008493803473065751042691003871753404665043332084757199249704019102662372984241355488897945768075737785009373846180723252551965859973960715985972181416977444676154397570316839983441372080765770796613973035335877846010672001629201168183099988849621350097667488156177399985180697585996130413044523178292392513320327948599648133041462744255933011786388362289006297737763019139418512521738503134448614946601067368564656617620135306385246843323003315290785454655638932640298243748199291289218920498369538595743374457609900787920609188281775294064266887843671437575613612112557079215421658891987806478435906878541041643741133274444183109789265623303539783469751063007885928030016503772301087857181811881013293017057663154398386684603984442711051619159906056950799311182111395196586941974164380702142507144831000358587463338417686039287836362805072519199115397517876753223311488694059148321674028819005720609194041094217886858462730771425902897550700783535869200067686417484522178565826783294973984656510892614056536617306103941335675893412195803705518134746657698590632076168529052931253748575576823361317945834631407074572925921889288937497892996341306415518073152244065705196653986041729061958383055160184781761196874689375709735964434267198947038131081998538499349190727369248047152534255507466690999845636745871945016181241999996377006382550837048485592837425334014562400885031213710616778973238697606014892614827292650900793331206537913004263465244817365473655131108867932196929745621243936275416763695392368333651337956819791378649137005095567634662589159772161834408853555726943798829760983196527845410215819539526179799222527834660298687401037298151198370730091165289295197156490535427255126264907490716853850786649740517918882596977629399312204908603615640530000680982926678408507517264733337704816078617113984075486598495791605516560283177411797716654946064737238229438424985965327763281915613670237640134425993534487577759990851272280169598500325773851841529027917593140530119572008224383428972749971757280158285575089146463302321182783923553348981264562838903841664583730165831240356970018070078425928420318446066290887448083020228250171988841682614668471896382072836620030374500103045251715186861106602396060318341716560155542859257378374583970478179253622552843899609031835725553598603418745613921336100666308541588059943598978359778365306321404061755497467819841779502436994749834617376660179607636050836108254979104303677479031075966212131230649576216301646870878736986447442638699196987764516084406021057596269655119006348834746581527681035402749868004525102747150492563662668777398454602069050387272895369684837926498317349110411584812256696778113330144177980087615043421376657731028917876614811077612311021429138735662499970754846675663651017625017999534405992493707138376605746373720200419605055358266323945957225373515193767233817869236415430188573410799000384854722445739205785586865277852119572930980953733597571007417584100347315476481391043159924948275341816886911196643526908412922136190114894163702375993247348170065535205486714569833568823321426351266995459466956950209300595103722027404493925989063195620996491234026236344987309330223832065497348157554256250067004466012430823920284868438335018595522608973315005752445085470808652898723768284459889522577798265243889846417940149286873134541879920573507905315185442713791166808022878806896047367022164192374057258957823260603014097712400839918346559258718175975574666610678967755334840325462123709100977446408679357356097248336186203700661836816092162016291733933295303008327950112041830666104376756876120104462030747420005957163287842351002402698200093495638351548110023541022153091802861047824860499689670394937816137139921593911542883797217972757066528332586496950558886683350736667711937216969193869721089449347611133976249919431853318771873745684905916860589389074037087896189244805191758867673942689786230917150572171033000255266436111111613134402161117165330140691027540006572178947995606324686011853508888146798201067701965147240874133841341805881747633655386237659977005713707242829007825622085313556747840449549505322450963984984676538657029722128425463933771457244585413206725040638760865911310322599717617159136449050158522623652105124197948243081246145664719370482357003156760198756960927001135582977052287980842066856394619648105045042665180825172206904189415073350856931049577810007081925091509384486825933412713450680571535315755398833246724486513019207712225952901194532470307841597655265875516632858081256150728927914933467839534878016520950773414069896346162976492352967254303779109043574938796012400738352713544501652710309410282776624338146519137635982118150982191859514363329421850230782664017612726257061479303786635200399535188769847361504671772865273174052410366836635917746008153850200648985049863292440182823822737753177581314586163421796037845066563858825421465747443015312102228952842600888066414346934500327696119733972412136052666685251045224870850455271760153616627395169207692890316396494377879674860861930215223424728938144208295643212736532507418228272984300920651826893500858222164246311987508498630589367288960686914981734358697773589072085278778590198085185199345164857070608763620330810571098827744906516562281714239877362971876050699675882033144884346319237907275863406640028548905081638317063328754607954754193958955183168243494076421748123071990412767605562532459333454849689534092506597168060613897847534662568655826063579709324527089428273918364854521485707135452470965160940495298853002608625780114112178723974190070973928212604217152953698689464399022922322870692037957861385615746599595093899013700959921670398571881453805495768760632711916008882935123724806255878425960817268225698818730536695864347578801752309709743555409838552928974625759749502206619048458369871698615067114385462696928687946228617461714724169065284292932861456316857946027574987515833073688954147024581146232366486888201101324706952802353109253222220005180691671311378816977888197045154157296219506543579514735868168322105536929853804585887405191218538308758551905756258188578531167151443875346201354084227113340855712334716182396859304611746419559250386994753071068144331915878386383070628249234269660127286845782259611286214779204541249998784813648539741075718081368606480926221505430156064237902400811152884959133359433482857994614361073134480716564827880567604534982135863613996871181117732592386988913386799719403516331454733362202943215077540153112005033910700179503799888089412430265191239635143566220611909083871254761026433157848043358649939279094762311211760571829223886918528645893617252149079220966542755795184509925005488748406299042442429225258525830427648761309836618774267816302210366257924088669728574923972438027216546889295458133709303707180643741424430093946843470853110147793584714544735071281021126301268615651999098935063506657983535437841923013812652329472968710052933931644555712986243621440315727884010499475819444151479391701847632765255759697082334123241162377929287615156716912692462627275838477976898668174384056959630537770278727489953511864112257452540017291464761275709370758259430048191086274764432968298585105899979596481237643715134246699730390237673578236639175401785307021542995901586775639373470409081635971704499694746712795877380293419188512730172324960836583080194786513915961641807285465211130338054439680706776331535766342039356910037053859851440498386795456671956884050692088750214197927656728143720469901902043204986617814134516496917379628558876097206627607911439981144716782963850922148507681759520690977320935390163906589481605600932390279571731391885025008739300779383768508694249128563186549082154633088730769878636133083765272821241046859156123199808524956510521148692755793220768688073209884065915499791497023875822601399775800607372731139905649257575437371578616590606683042506181906315793177683301666208858058145329020370838930693286443169959124945983778842009171843092728720743102031003916826815515702191736351101345008311300289515343179978337487954749354981715163186001001682650537552623211679488319850953883904922278780514864023173766031461405408871935827779806981732044494007833076726367953312628934399870461601203247961019409557320027648180174744721191740911425720179372121595741990623380754880352860156258504579870578205911998158239102171099706448617257222434632438329546965574308943412145163538782327612993192313926746061083028353877368628015119294307791431522752877710930305862260466164478047251125383711186842124127200339788760816469340505257538058586888395950724697433081180931077241425458286666959723342044038262769513715329046465760868878161966268463616980766081258200510072268832723686350846609860897778190403804224184638706990825120328745802618821038124198657923664299295918415097282098416434870219921786658653962794421076217227600402359227720700002343007629051663500285058817431949892421909371602117340226876360295225090677428087163960125738631383463804503789692930048499882589939806736403368040461759420166976759830457127901681440958571309084698402556207955213241389320026265402787820689678427575628837552243469245348150550684701929211823543782492009235770552808408052724565501149856833858259348373924845369122300144156509457682165053278184245846165127684921783980205814162072420675991028199801039665035249731714130400606434674110320762799357052178492825267147294335986221896850327128925302184387929612314398306371661973804611729950138527109717475411704739150284912071132458804715398015308562608599713413928605424839146282014210795964464853024162369128452576693681422145426979506864020560909173361338607589949793452090357885432086686353127698274826690251023544997566394009558731892262832286951846842672499654149831803146730576874410636207371853346279821132114802576363761185422276100293346173550231671403149914423685702254904564138037822793536586999820308730376578210290881265038377199849847090771687350992248135335256342406827533579669159237009598733086577679167614628732970439022391265034031335252172980157168244256174657433596983358577316915388315693984365960006390710516776410848550387442063031084662992820899248056024492890340471633269959037338465227657401412092248756124566514768414608846403663263166998401960214079666433887524304972718664842408332963743753640029499454769616865998438217151107247998425758425775131410168888478249078065319779638474711545661438109942596887880686518372146280315786572034378390643901792883789212027785606014978358118804369597422457195590524012003091494773500842315496059246152588559420031534064530739973894087042250011050971574597953718878709712019532767980753321103363623579642002453298623926926755379293948162850930775533383848746912601638589150758278969120927318828072189392496346558721598563386639582172540079276957569274728867647639913074114505958530024743482620787608671105571429815140364335376885125553250618918093872120551217543549714620388849163027284524046995830091187990278968287817729241868611378876564521766065258143770987358535422185046974908606906546864499418254735561907591354726245435203769004784301041544750420857234812441720270645336533364243412833081961550300875866843529721827050013606290347429875210732846000961218624828588773739649876858025420066466740787303616164254622586720312775413889994526210917278114124113012081745392605647982781476344181259788216925857087585038528491997723759694960188514712853382418453931989646925707138577450323880632553405692395699119105096163328562634206559985307105281816040575098262135177163159414881863191511761339752654791379072758850649902654563679145537596929374459998556682928554831404714713874011681043243204040386729739825230439106520387657085226297247501660700743362026909566344503162098581536062989524893685574518773463619406751849757371999714943761393009132242402120915265099933432998932411938133631717370735370559044743638059280835014565239406694972016905242689678314305576620631376437985451537367958643156649663516398815131815363419253586381523839454548242795884397197690177927385485208408486710614145830902881223006079550397782054436664453575388745186893349849526186012454034230636796806254060331592454860358173186342856809785315587118426035059354424992429465927626666828769175204045509164699158085472814908753480469718904288216580759621173867860712205181748300667214209843612979655937517127594816281314836715046301342950820573486153106470317354039117110828422882092029286865584677790875764385295856942347013960891538833405658753862316628373029691872592090527474311556942858847522649830107912474635559621706537846314879061610754152510088072943896969416551217099957202676343867723133761660803795857810809551686687877055490486832044271148135074384422222310638357272439752671030427115929986136859305190852970095126140586122714941180914653112655100201954211962105726253443058707176655562780889797729896527942292924758805012694307352315542073071834884615478648063085360899927548802614898764112733599089440455861130107071197231538825540584911363961423683453557738781492606901538070083447483564257132559428983283478006754464815367367711033058996690042792367551243287238474847299361405517197882904240053724378112929388004147555519780820936761333893579559761041587603708599926590903329663542036195279778907578046469946215579227589672531132252241955677149545407436283463115840721786110740897264396868354410425909834136721189084949818288717330269347282185617281106800967241888699272425448945010216769978033202301973202622530250614043636699176402191558892142013552700037301067817099663304912930768144402576173136720527258553816111970944980091873482763024307050590670994086410801462519339515725652672760488084388598382319028859269247405519008546519188759466591512903570716634488453352705176607213069032665975181363787566880788105072165238115066529056693014628080885178719074491943405366752802427096584216330836629114234897251553245117601821847778888302671762853167985854013624703439868384157532532015937592171335754591032420060377836669255034456877432594384954071998650407847383648456054046843250117713975723705437780396264444418711001605267887922192889986556950411289988103255419679444292911282892807330300241256307726094571477450568074063503548731544573919732656458161751162109552065882493517564450560117756258492971680335153679189006733505374745178627973882437984631608195305135299324383928872344810704562779585210447377745435343683664021629379774168482003594535674516953429204537334688159746244028348871460508933777016188266884346852861673355400338516529684426689117581220074251917114024422383631274374274843690312289053492393752887949661016496635422596750090166542814412227549524800538526002088668566817831414431253208376557064890694847547522646221425605521545342677407340561567106517794886740736854528117732562499240376382994911330371095012827182333776548414601506099052243581201813284136013841806100285323058869011933661827165158954973998320244411856229777554461497327494147344714878984763816605269591403201369203025335079790803372228581359963897752957226312843007439747680878620036940960017655649475626519634779706658774107977741665093357840953080448772297681960845910729903144681344129336715691446284131894920163041459914366530383763577425698696248806321959828852646449541395466041870604085307553433560678101764468922526808880749269565924113862359982322937374064550166635443599343817218399436080593126756754035271187840024202707690570630552625643651004352092249488928503104387875279713416857381084797537638263159139454161383581122644568851894585536343139477387582247301016738744151521477771404126800102262535781074504368618141873971539210156255358909411452713453656866205085579147426827045830612155606660682985485695891839659396512979991493167061316807757619575711395760056803567975318198420391797052704094437663237680835249878944674168831834745373661461760359368769924883148149683688379199207656443385556436381411383871303315293279581332965340858259248861537466556775549907717181190869834743809470705540247940192676819468740766589338975352305049296373284795299976158274877066387639204783357099581007532571984912073161248827542486978272755981850354927853654582005481531535815700036088827821255086206125621711487131565101269904871333364030194459170365888449721703033023535049780128443535738436816202177580883569302217337012804720238006729950941577229341992928751104382102815844056234827194965695648693569044567506411062057834607842255854141818402787715727386409063411750614761303476345884518916563097506642016809484336802025451182624107783640997940965865362809597514631099207603262558096474222788782879095305236554077705080119192867236156594446764133520662785556277101159851787227180970535453872862668716805467679287089192795378014480707165300799095595925037784297145834278602381444689980268030986073167592780362122537197951664229182789176408606732495921615882240490253417360864723456193860624768201759867664929658659179053560883227584089562392372820954862112248682657350132310805038340036479939958559425714850782970060497837570141665864874640052077047227578065905666123686717039060006050450410723299386871757483505837027960914603051183756395139328990164480379630618201891644185228244884513814749359191216904519827835000792160637764639690520619008644292111206048660419773149790887575726367253522067425729664818316526490650705230416157564177995584128495272514630132511943090277206876736110002444903599634222519055962470131800516679645049115417749828400946000151549841689646563751333230056066268617502436207458201053296477250180464303374981611564519673392055318806639839101384470815460681111691713679181213450998427717003690192720240959931739830833036607491588024745920038756844611588077377232663181215917046660889768777630477061580913712406172769486360083532334484735812176340825821935565746531170511669113534696237144783136866615574133251573903435448769307436757680155330981874148800438751599953694925252830772994961194954573988331309455905494927661797420558007108226727921775093195256075876472149306251987236790092937378356022285103507055133780548729014161938984052324326597723297205903183736202812030610722377223717568004000707713100465395787623613043280263442950841149259751169871054542592726975013963836185806217293305013840242606371943250191065972047948105444691970189305124193022123591485835772709808125775304881415830304134818779824971217928600254527393210132160057646395816230528315286544238008560712543235999630806980359805891099171302243220340690720115527826455128782298020193089888914346882508847319333063454924904709375910755622526814668395246242140152987267288667578086216343677829927146515263164767659828198598196034599895570290420972850437197008772392505669815361262166680520847672295392805104141066468969867678883483154529260888249774159681918502547118827563489958638758241214679653523494158564106266797797829323926489153254661405392212875739625628959133568308265470649164330485726001369195741785217052117324227214768063030377226282078244507665035476822145988993940370787359290048002584998050722494893408945135074491183875297546145515890871842818748222502520295520039624807597688434424003097211858348510980917453497589228547519340430612393452266440674269545812691915009506590717896926983330413808507933773215118012598632957960281502866944117943051943436173473888266214804712247329186636295903369577801921273301916019332224062693589746523543117880252397998088190309271635495783423275967933459162786190540647650882915025494530764580368419187845456963660495970597378200376610457397483447019543312138834410430912319113138070386079827691207308858143368005371749185283810386343400374776767214713813603136025484209886351750140222755527916571788452609162639892833407671475070292427709866422404570228313663861979713776936069968259693233975840777232461438983600459065531237432982829156385963728749403175160585937295633833761428290998069803565331087994755228335549407055134754098115973215172809779157414851792021860343858954914168561030410935898202769230143393256176684749286552042878921377504677161810042378321395093350290165118281439118703106563417563770903114719628960487411476608888820964926491015824067642553889685427141475467653637487729241374872858307434273641419260778979673639541024046318156652407111625578353218594178481106020645268630357451097969998667100149060670037564039096645278605020469806778046543947590616524598664459187892704979396985253861635641098785634679651875256817339032979264083220520341310154571062443139067102099911308562035919278530979327935867416242358414188897245866616967196034205640496927287232968419087739765267152896869775640052108587651865502609765351391369765281780203366934981873867579143125156954163031057086187343943969346287135152623108038949617662900168639021998477271262104601149333324473218790500723761833782411676370531509957323153409157234133695763898856747181550214158168046001967747189677745467073506326470701537207574069319664999621945991124873992558897402847699407956447191560330006682560079824447021326006548221948843679962858529776501350912191061513852654757137764979799288559461095087685755513104446661755649392831837294253749105638961779528412430453067335972958133895735614263239403113022562497143987852548157630963519844097242556413771778357109021228226295348719386674412734913326688152254636929233964511890997143113652990132422380644638912480256617194787666480632203942886092723639681770451828796119935845761617048152164104127843549873111699303459836980707301519397680267313314209424833681485905285502493112495697428064963647908318762045856833580563815667212957125556227590814849158076535099144946294342725809896239635716089522670577647498063335785718062615062227625728215204766527441791206246677058808873280236545648489423522090478975254357846142622278265714204780336938107865380700978964184190883703248655010367156213403963411529264860014879997205007750389232831468492710535409701747546593954262544714160231442302118842965431901432521416552872595020340979199021365668162713942792284537813840820891474366500818452538388833783205185783886628247494932764850545558568694993060612791481504203025120646201136729541626813401285968432973239127819713454325325587741274596249475642135111197940009480393895337071302820157272210126381122646041935881286764854090253197405611711096465716759760168392413359634197402940131075969309325779694381918415123038824290310756042208086155830893922087501848732642281501431159144276827604166135137754679331306085640449365996816200520336766340717184083567839848684433164086501947019122450535978603805144326783608557720125616747725436010538612186376895356605943375537294947000476707618403476536402737873617023295910268720785337855206173141149676871189599337557206403861521099095659455619069701507679495091888217741494938601649157670872678074692523103732270062112774130729030500464272780824975088669767196954908714098555498484922070081423645344688060374345354982478370459312702418568037606953303147039068450240550484517739074972287731992874571469346110386591401870865455943116707867568830454146513005318270385874065319805007848188457328664564512991966660315896368726057975428480008270742405316259539255933027588846256561906124518966648917906407345220522957425704559098793584567475779633351354774950632360783673031848624537124569104719674594438808662618149140047328966404388272575113443520939340753298376253281601519258264286547285825260179659246274681752747042795521960372745953735505578402208109278734503190327980507383510397445844915626871121725532993932047494539297122305315960105946506199998910957452742704106281212878095663673288825690176689694441003749243406891272253760319164131914127469303185842275616282591802673077582912880200339426983818477954776491330085810459665276659883094443813251649488408597379271244862222395194370363726745842862234003451768344588280523508426620003298562924989782507817409202248412910579543541935115087757422398941703688623515771266352335905699205177169984240493111491081598183701747455249092280894306830085195188015863585199809529255793814910478645012976035850230390163211105175357896087369140191647447527164655507327713267574034912869891825649840569041427419404712642532443352872886904341228282839963587376431863508187565476885723667332212936295155334798825298540590753404408107365646713350222291580834237312706062013496062907370016404854070984234677201423094308343127780384701592539135499281336019672328996746711813204382177275037951410777713095459272818177647256072553796516911466623336965312018316074564647548419369306477383072751517734018094118962746603862248228219214198292901340814946225782372152195985117071890893316883542544828076741411457559598165732783025037043435944481711563542562403736772272882172159633589199625525307397063771260969386047938291107282503064275071412691040358138866865590287991439192597253533997218236224801242097323299347671915043366098828709998794252628219380098969650372220304596074354943748186757870359673172135409721863440157243696273570376594115181120353267159491044039379129537439142550474295797371769279280329047153095507857399762540943997370531654932744724452864905958301052248996789525342281769574771086010571122226093707236050135774767930896787351073796345238173628944337140808813535920957502519882855384532062811663873349877544094261269824736341116007618891538103450939836082463473209477841720142931939711157128567159886756351959425304403982204116032733518747324494270370175721447309511351768760969090000725211007375293445751816829270044837520845675304629225337497071334589791963140704870976240064933842082655227840664085112289061483527664351102024417155240503755470863039755917370732610841452908078579863506731062827888093430396717806558501611995790442955115611678728654267111640155128375376479806730399895130047978028796188434894275199010491629384840079826616935788157215357320711506737589999787128986616438007232102689971330114746020694187163490885961836154274515193145398683918918513227273370407946496206629503824844152309627954659262610148467129627232061527388242817094392808577638365665377795818661244752092278177497357584625761783637655085028883319125252351867528424859812629294652220466565502913198897840234981228917750568059363460798830403734513110558228393099765458377623260711661709875041224652323620164315104170059317049848855941680728580854034414543652720727895783578629037698283879132510859844520027470100366999893588520118716688444499260679927149587364293491794770936158183499966462483425588971217789939660807433435074440772282977782792180583599712836492738000067680985799168494584966112350836400670256273563023073483557852629997697257664772297442798319618740882084066225814068706138982974018873703414891732773895780337563263102255095113887458910488478964995347876208946606119349068050168071496617668936323625352433645209522629749353705682770535646582238173278892916941491903938801094720277223851565638698622196258206514984290666518501410775979727958345568271147149984583087542359021711250835745790788566203992314914754315704741147512400628607021159409860717759597151466548038925329175804735511377234542207638140450169032866171028776223293865592380722843837406834544974192513199792145760422653968362804549909935197939079976005589260609323907457797739312824910967117066094701959654447784694012469969218057315987920866181527464210031259881074909495325135068909262099616018963361942958240111732775413577311245153558731458727861225254240341908589310967318875320439595923947681753977214709977099365379748798151001746895284567535276276024344677985764746045165352160706785222625292831436198266155071085993650704706395624127141334824052546382291119237903694569011690115968673029588667280954512762085519539346714643319710415777118383719015293687793927292815684666905789521613186031145588978238549222985081032025209917097947362162818720380690467521864087526724107075303262705277677884221247896696976913590090095457450843477230646040655247657228754818733459851589175213281834016931866863676655558666937262696640880236824304508471155023982273710637711140817244957328028067223929052493770733565076308137252055026408093161419889658276939818189483126268536263074428604614611272167095981198283750689663689896076358756850073398488419453398378471285066983137645409862799573779499985926281466937078885485149775800521996325237943051425437731387997675336333690485578143041562438899451018195756941712110994194427359675976660802627131108348706946597549670643887180426237754808567397660687605631798310074982139198048820668952942149873987695390339429492219045913851899050563868684877690545748578390331233987424699266288437982084769481921765969852414497079309402536871814174401222786718305522365645130295705683103159099650987501631940509810231720234638036430950028142904813544097848107586628102872393324453230864681643021907298831734203239191785431210247869885967412011231619854576096703220174831758287715914956346892343646492857430208376555314440990723912514760672288130313345601189246786915213987264927085084387782686537801760252900487724668573767948891013246795313350233423875482088476372802202984653647211796334138364418230030500814165173291692133194923440279438662754901918850257528371539834199834330162511006697748454400609550890202123450561170148181854225207686912281512465409579667077059079184946791359092581261324563706130113380398817683961147544087818243451434616475398563900113160917943244872417754584490607652026793958712094657826455343392460888371741416337653816860774437898953293514554457082616349778004657241985808334331883188595175143040690080102599345167338264488251938852393437325543996689576911586571710711424378854542951899670793897562830582091196474788824444299353186582747743776338314041561254228369843868152835097142565840669426199595627110873804460693558943589907766586492286840302115588795155663218009129084011185170923222218938775995230050619810854254409415230285616413272654157384188800381382138373270756240495395606556120358784439982231866493667768425961082321572366698978779483712744216465422842677401273986082265645591006824467901058936234214037845083105677564069231208718189257138978875557340265757850016927795570197110067502417968701275214562445972349328403897565859544844556509623825945702465075121453187606483864373504764327651503013117726059636983983399623623732540122747573650993175695242210075990645910392918929933464915890716374817934295332163759856630234604224910560658343518198845276040254638295528772473425197955675475825049844042580951423369737678759032385724481511683473288262567952814784897029110858532934036360046935195247107549705119730928309569080171059820331295053016332549844434791804545392334197223047935292781970951191885770071235847848174576876436230279084180996912680144411566537513597687887288291652179148546105547774091826792091200343057246740063483673150737280578906613991086984576156209122936426355909016725502354426826495738618701141132060213546062351859655637433507236900749691794341010005947212851302524787591610296377533739598263603503362228482831168258100259886489740532291535218209143063652633853697422380378732900360718250679487773074271145849816501627885636994699446798472687857209303821884496387108276660942223430577774258806640012642194474252366399955148879387761027674568071247785022940090183619378280466802279347156112965102710905021862356027477956029605798396600161062968549338550193196536092506368010592358056367568019101398272190919736244593720950665072214252929457459954296794793783672641226358001408690988658098881309696878843124622035306637712249319144468586872518215412504124592644182752629048506377057627135354000734589417036825709005557274224868418442867449832911434083864307289272915395939079519406711094237935423583391948894188792104654464090748814675688139970452758905370301534726225002377951116418978357378163044741777127035359692254452828691155241769271980253699243806990800970143770910027167209932050302137258380625483700560603755326615590213348321844263113852494184188876152923855250063640827993973687884369388209901666663216845117744274547963257517861549061326186747263631681039503401804032314530269045907792426222616152252906140950930599130926412473307144821196223591967565640591491704404471939492521670129773858345235631369552682187941643411625599113126882775513138695264591724972880842628679766497207431521738687694544671683067379637102987047271929378361477672883294583363028820880186753634414955212338569714238631996486862470149522180194209088433271306047744634103219508371084995491760361047471039200176334583422290509396443085179124091103949423326740051950971033857592903291152239326252957351009133507030910290490401105531615742446234570883036094737737931186683723392824271321468903370931581259531093516655815194677943666890159338472214008322556440759602741095978343549257499537871314863907633180583623252107515713358813886568530073429969277917377649136592864382390351363736258140096631456827264352745897281293031866112739071717007798291341596893875661774745705092882590944328967704815653634595409006315661377113790341507979809720492821420128908057843151523545743952031092825212185406332505089597512403515645037114143244428794761525216205706446830164950274380953821927676220958231895076402167549651290031461879329701675400051707873420262465040054105163862511064695249378089779903490711783998247883188326340958116276196280638588978884550158279344404710329670349151666052322387876232783140449734373622238858616230927318817539661891051003220271261855154487401284502502718181988615905022153752901965361386249249761873513693416982125485317410013592120605054706756651998179462830732726889307474930775142899549599971094011984684620073029085706755765016336714245089215872975986353080763526904359690851071049370811946526552342898770950002201157672479893888946321509788666938487447700675863662591422463494983287361094177525552860571286027394473909977049011777475404980303553151339346455028806569573522029816963547142779245443842337781519164054942910595446838927438055267112102427109110278977069858357166713628200698993523366706154917627421025069341273786518172386610994566340801806041301846861222217456891502979768466538074596751103438611335540055157582459682305697244345043500678229242578408518474838463206950710259262901304929476288120956482430423221755126175179020870058422337917667523644119393992744060144930544471908773981249112884946229955235270750408298046466080373502745189961520442285596697022998627895485880131293874690873896746670135284995036581046165161046226187849417639411867719298110637207614323564227244965835411268558278738018044811536975897367717347336209736577368490408093271941158853817111576861984688294949113039562022394459303082232393563656363923333449833315326019600698240563334899319406486397726927634823533640219241778531137234891843260526893800677745393023306481309978859907831564014256050250781924952283990063288380747912843377030985662331893864327141486657782212361990146763415124685911749680625258673872068786304712989510261752121859242934162542979842229311327974455957262565923536292390280978089044445021665623296944702263147066771380254586758351346497767120690389076327551725503870609945216569047306602733329409533282159856310961747974094750278283467477274663028400634597928686706181557804658219728187026331146171150490075232375702077251994512668033642941404383382593050733278769899387467148748871561421280338990153545352295782898415628482518812442763142631838694801706400029434453403472260966127551622041541500287257112210828224827466175077668241339898952910609049457965307902827942389195441785072315972106715017123250516720818522584151727638528091077245447986896283235601597527293144816391184663459646964042053566023588402953394325914342361203617235450994477040887733136967847994955345671138213583929713842404504998235757422942416766403184181770010492125286404987300437871730058752034816354197734809326701898532913924933904960101973189077902819453095286320847001777040795548406660780617569108379210480836314033453585048113626074440181691298879285037345282726684781202165494533635014785951334128043263372802095832215651360320472145339193205378809563777986311224545206588540491911926223791123856085147828603157854681957565971584321601694556158367475835334817350216692530588738061464866342161036066596824755828874124792858652454581709516779462555246321041536772944793489320406076524333751123893288779905692483294627338747384886273968750035170180580760763839541874477704834358240740613168435623497258421959587848167252430922821366612922489305164955548493299649221266366491318376066887337685904409457488728399463758434221692774535055126366923740828681068958461725111680394652531828184264389473403902088966817297187156941951061116360309469276333020684954569496705995935744848798911250837734923279495982634719159509809235907968746382092712157081445898092501011888376867631651886227820469477572077052438977566877409501469415595696829296344172468840780955930985653018188055604703513543779641509503794833802708701524068059587136332902996484835598963045939832716793143285150945538407488135102107635458487613109395739463058304881713845552283631559861842230314726944391455505206709679214468381439960999509900316030802404967180153904167546110387993530284318281673378491068231057058792075629910979159949034463176131388674085923906193950285917147692115465212491500374700684336129290209001184712080981812422494792182723395476637086611704898248168197053264011772640890580030728506984241713175398720255727332823736570279422064338744470351150272918110833788137910952016351592311263777214585009028652919184945217993959058839686690093371814217140006204112556849622008920743232549582608614773011210774207253680520633786101416030550813749160859866414509372947773155684828376615442322105560253883323870077740763970166184392356163757685475391023991046242464614224815814105431508757150372940490413611851902542644106895454732479757837930886961255786678057120493603225793403083706190143899217261869476988173122015552591101458950135784165218801138711553665350601657468395030165915976878324354568626523374180145311703302668830083733808802002418400994917629163471675448574296380357377790424043230114928549685828684904120038131279059734377277062800570138092606045684089236476687256966266936168992807769303426291574165198397793592509263905264681820741844791003559042681054239012660577866906786021226386764578346923013733009900290435720520416533681455685232107799661876269099682531516355726832855055875644099357136481559206422099115474044112687521674427249875405430647314758917040116851509354144146783772984826342646359502115117227691615859723151262338721265205108494401456429618367882179355242838511841853007735065520664505064196765535109247798441821006349427984415729262684163453898101427193627553614647681251409186687333163407957305063648214079812260263305731781417104520050601631510436649373629752590566094744114144392301115626221225912261629068684096881641733565300911010639341002907482356251574715802701494214678442888433076379112673980154814578911231059453127127870795561950701589431308926913664166843384599039035981654685566181319151957731498098168883190611609212185479100802462702062049123312988650882810775483626135289212764484287221851871704271361079674271227762021918168540305001982084268654951818371227557472531089714699749313869394992612322603871860399842325989425369190987747057659878103976381860222802021007098011965292648590882986656826219166343540548307509159306398494338035989175090331244499479843646825141122102050801793923745981503496185282022550854951086391825016746899478935811924709291457135414864027757876820146096168031043218618387088317220643605068393461794481861934343721300537753013051765508725453476022060968251590362617948353283926451573665815128613803796073767934563345499018165173683225906622521817106503452187032118327601535220345710642418772874538527820656365496107999715636278214016038542487739850461828099715051031155051449973979317722257245633206169745206121832025439111157023265812043895420692714859934987518593990999461625118737934635239713222226633819249285249914118222861670743592597330344659337518355238819757436468190411004364977584768117808063751716225882097545072333299656423991495583440148694421553844677230429946754957808619047104875277188147895005531667346480891876269757055850958034437506242914008630033984508580766772991940133050697691529425299474192456556609069373145910706077808620582124731197939736976504845947766848652336577144301891150511431199059181573500391285602196188022299374689784322792072896756442880722734569175037885455132938510950888588389810053273366167661834949424164494899130810612048024270546278793466600798908245497005739888579296277838861536779577104680667782222915860698051967780759529836005943403921705757194193620903234747521791498399992671368856537917834230344807314099154184027496270100078524567812446536177200743496476975486267217854892047872463743847795786990472022142598789820572028160926336127573920965274952431183656024230340193666323601478930006128142287576383602673452766971190730509046205699077160505309157896294970945641302549768890028562916118558487521559628871954512826578597156734450351732778917263887152042618508935785472197146257509461192279114323794368943850972201634894646390511623326011948356136410214349159208530952650290399869901424377379418721557860716289605607963838990887811084598348554335354444903667122824712209564855367285147480060068149083851640243345953740874732713776583438919277342930777113431486401347733820839839708767336193083171554008034053221347853393954247260379479249274895948123768511809688380165920969592843159258719794340592153117658263106301126004945083571162495131039330029674118267939358184945909364920688590595513691756374387866601139977863527910733232230141774732938831353568316516183497661379693651687334491347601121747019022374127043332334816422594223084151494924277993135566425651167859931567869349038731568479950625863105629249891392040788625608813123964682173415759275518753972775364412416303771931577529893130017148220451644651835651245532989581586501644782762661756257848781762794751395529327920068953047516111008477790279995131069502849746777502165845690528818144854171002546284487289572640790360424670686911832709492600231217303741846617478137233271133009817763340759972948990343014367592247545375143130820683549832420577741740523749404051607371321912144722405246830129387913920709229646282026189902115860888646358360910713425730557966232906784214598459228842848577518283469848865307321286412680120120874625986419380571315090398173288210983500075874352560872985387031695538082982522233583151494890880686765951398875291868133205595287268642340758462031449538893036505887584963979174572983894752208918097579794258699493708985444873541643559571130283574574338526895798857314395479012199297587148388194730450614514914428016692926171804937627354333186066108233920709524516405525379552252356828938273995994239174510045135980036768857422103724818198548445470397189368245850731235959884347990465296312425096509146315760153407574249197967783299446061360233155263771454013827125553788887403389338950048030063779310812862275405376395197426017884092769435335048759654140002790821499532752984374080619786166346799023169346734816069804745411583718051009760638155919169051996159745989870959265925639015115323670507435218361171480965361964249411867589736206423434144802995778124400446172134773562988948839391984197097661651596852772786380649115835153755349577744786160594781693561523942606346521110257554085967181694459947890568024525380918224137742723025381810285712954402251399677125690489714092641730309795047730006194191508007026183263557560603487905192194696096396378540381492041467817854293641238437373314488567796595098604384261202819442639093722137472461031851505631104475719730502400454660887023417364066427856344459355313843510622761573038053993364701742447130018495682563741043302376015476576313768180423855625698235336646303665497590978154025282452962712925432579857318188477634958626222428789528260973476200316125297563434720892374268039826777326869125284746920825221799525778750224676274248504544052964248002013181852958211404960996080936825654564486170032701184657521402662584728450022905268916256389011671851835829867371997584405089448408055019009844203219166871239617201044037840449740638094705581207100284957938534712920715000769630938506224246595729835885757271643207448440077859027482826651337551213501403565338674955188224727819112928500356827522934928979800709192130626463269418667912455809687011786995419177673703958593021111373885010625705869487841374505725144524751934874584321808419372197021654719022172396150223988993979552535157754089386128330847326765200078050551865232197414512869110423506920983709666478198537971623666538759420955788158785598366326384274814204643706005175349853136950415856521305683449202945675980269042979127462985181139494540945768016869744652374947711604292512910422905399058626951169755931167763925192483908027867487790040289907734082507795857665787487153926811100490685861332533219533484219162857032681971635309604662763210124595781414459374542680815644111107776668522444481818685695306682898660244331182033756917298932865100233291200398218059349913570276934383366890030547953050974821420735271322698344501439895939397422284184480667292522749154897139835159604235042373887520014073416853442294701948795105071591325938268428390277244852098104753490807152304227619436626772216753330106010647605513591815834320635484978409496251273486198251605935336003522111068512230159895275169608978518480936618271425109717229212274457387010780123711108701249842562300346268142962973274332024472517387016778798893940378322597148712173334868977701414007455980605706324263772700352408767604416155617418211583321152229977762708169957565343135625750809089063032821485690147821247589302771830701716600506684262982642987911046092139407267301578850840282586532990601919194982141149476708578936497962527697995871669802740364075505559983988025913872435334509319860489247497047534330596298334637376857534977309660130301672913130121053341211377320282591070535073239366686779840829720595277638358712020066674866601212459906725109578740186101041949184229955185017124008384815100995491100921493587564179985051298765435550268353332457382788365674491553352378660316752173445182414598003541292345449127545717108130746724621623217016558697039303469864293743739853212303268482373390418390257820502601312921400265513908306039949541636660309164968477845187263106406938746980341597205020107664353748126905319940680901279963726686006853463052514989014595848055176985216657660423835927773348847914833182740787655206110051775865941431882174959217532403147799446977994620897621128633585123790061638273419611270925007321802307196004394886158547536953858515311231812965983788713552098950067954156908139891516174606613818699942192760799424252506236135976692793841230219285574630281969706274308662277023734724142583394674287605436716448564080642235476192225312077116086734011501579454312530725492253091481362538112784363136801102600581911416053281034464566342665152450613650036767456922963012466941819302448712181460023097632292071559468989373079114783206157544592804162752468408851468979471820247912296608850252493002754092001399011613616582338979218568060511129195147131723976358357787461232100086980839302343986874479790490932344371779691792496677915843102783641909047448007923759299033584718038037950340209497016746913197654130399902365498234546023390152710273743838970805710926643732315560523761434759959070042056868343971500702721930967986310139971748742946511324806042168486253250035662792836171791750304878439154558098355808155715165038717047296417541111069362565532008562547322318123333364296415033178642674690396161010852216051672575510071928221854909783969681239598926641083644400866189080064628215672923714638698242271378545744287226448763584117750772655673697576261731900366736170196930762965495588162284305039035441089438463549889609245077861058082347760607600365883096286837530161523208210313715316493378294463405291318106911195731265496560090451661401826390340448520807491092699452609563881419042000981749920151450993391414119429767125620554405834906208891628726777697584736562695500972921807009019138684865982355318696101706425682536013501562718327135223217972812920906245835403803492037466249396918391778765295444422543047737727376214513014436513682920926949819235675173011451201033884998023877003431313639406086236484982622200841262549500939298730334881949742008486866262818532091072437048876686883744515679476953877623821796318773302762836506493062507933210168794387771120124848658439431865532141057497872466522984314448119876195268608232409794146142279505687629934878765734396361420637549957095264396247776869321181081113952885939115503079569181843724432252475694131912361407573048931187319186377939035554140764871969149380633278539856368130570510901340112425665716836093754574119610012635659009666646280247157767092708095514579292897007577313374750128627301636507783741155633545245325320256602323789298565271109650086990205597058673925393901458718451566236598313680772960032518925312457981020799156921168324795549127409942956171644338344392979084092007916625541515706645559913077774218349051072132862901690163012561569638663376128631090665943300518573930805919962753727259241756153199496645892883771640449320039132110582557726786758180862596166147344055285311395527939864785172450543525421271113368026233720321102748789056964605708793236132004094810627390469343384500727960068985373145103569131763831475979402797026322166036160378800813657486081651261073803587167662204667660804061276186417625951153882836804158040826742474242062239202017920949221730264746653182173281325603585917365167967488198466721299693761879059868616593399075082846874693602354575049514134191971293891203527741469769955407340449875914721729180118814570899673769329338342321276237113016487541636657674297168623422354315873028050472409358404441587278088347859975097477892342347011994605731497849866399069320127708210224331082223494511033665875435433194886921068232960976071344688565141433707262888532753030218187077632328215718547839579572194697635676442168842365805129577950674743262701440042440295322580445988185348095528220330093824634266760621331098915432131507179210023837508922253640920077132826320807547638641162539401136808357495310932994146733947225953373703142218060827282149174286248156434499585380930782755239057649899629283209850131475966942435487703738264464746391992237252329225993752674178049890401786068247744977563904955211031339906035152155844341744640660754000087415325519382191975252012727229896707986611484976161243676261027495225890427060691445195174094136813442074363334413380770686182348778849827372176830904163346169678410249652118655456352250375010961683674689765525761977299253858082991348514521925738951265229524711055780975142451071898820956455182506133689826641359534163908417540295528806342768542275275362426377806494011313945563760821108396968553779487964347289875213490275526305084598542369434473763183949140939385988418752410350601879909105843851239346973894145147809159109927424336226974034711527087322435472490658438237558539805902843723702170247694818160277040737197119378721722504803649336035527863613477649278552569686982797136347704318426231733320006504483857248392750649984687724313194030528748234292420094213834403397658306165118335900417373438055269303048206448858809375826585604385759600148017606699966403561861302067338735299384369173622152971434623406726053707673812759063859590084456284112777759400691818156773516091490346457258346198411155985010485653428871202454409055465037990522064710706180995141904578655847911151803456748414400641597520631670943958080300663240321343461501706436828251304466176809273629729286490536653439577021511559971060466445514872826317305188787094452024046415110592501012050091934007994709307720458230845914906540112971675440656105884310116217094537288959328190973844867962027230914875061511171034204612681811509917839450262824974287547326431234016937023251260794927400759243221934192138881915136768924183869433761553215946468955191375002144687560995206741628310699159910116940301475028807257350754540453588752845323399753013555143668956981011778884122504333135088490539036188591235851680385705498067928886352334124719737559771841482591271761080205912492729498655890478385709951321749796480947394926470074515587089455001554182949470466262607884199901427023408946914669577344675243897743962274800644491412737120275533130060025676124076400203457231375256793280238431837692143249355483627110772355063722387071083131108677350835440864899312709849650686924036631022073284841390470780938141266552248430952155404636241525857425313145820341883832400454697766198312380669383241393467192136645975704360403410191536394936451370951664374198742578411891288661373749739946839752211638470772542233692359889947289045286485008933846218731106707762455037962000632406864107945763491259236746424634367911773526065567085078626748449983079499466288618953014263256850655182678761893541931161007559760598723790681832114367131997384370810564783272769882125617813494072312199487819356852825178403471031513004916132020511947711788517264940841267313689693842131463534946771661578286818467445459528391066534004756092205029176463303082614146399509681235633537954266541253949973480810226843514602732741749824545970535178026190068423100863010590113700412585128240507395273520957087821971030132526202282513208289627346608206251763964059648189966960368043475388513349503706935216987482744064163996823166302276379563506299739547452838994737872579012490023524176370702263189091956347342861490111842534084716495733365104053144055538405115716658024185049740780866731287787407162345243544778111360859732777714916613608171203121102620436223848246663617983783925583291663281827902655247005588976643639728250281617999648233058265895982231396995839174583280822378283227199921041023560420108280462628950420599303355492304769720226565872688923117224054162134487986394465332483849037889808467330201428179325001110207570061472515964915962345524125644393517582675407856127241328280016494500974775569548913526711025861707121752855009968926410273059023760099650756957682500936370707090305844008491184883782171345209244626016590661322286180850409643281700208786952360194456860455341230557000778570393634592460644720038413454420671982193016761488263502649726062575403202148192543181889678387610500426165801287445584243664428675839044932073014793550920027245753147776708658707661448901412312438128772859503008562014007139306844788441590663796149378210618745174316364759037701267185175199611650191288978725264674446132059260092232373275832368882154989059646480732574288968028847674477261409705918785648360246347328974923768162539117770249321522065413008963470041985134396469125941156463000357156465535201307103138596386309385735225192907751572164936639283587890042857576449365907574332534207953445861086925515120451924995190297742743629588539314747012224765921809062485935288068913025931716074392907490157801781644311808999882056372466062624077452070358806143908120342228472739006891360310098715440487632202659850905887308356477537363350699863192943068557740544127008029453717351454691839382424451823794930466584293246299640976612653683687814165889113155583025591376345641846542782393882305923007517271809014861751237936519044073829600375140388618246206971162919818830141599764751904164110972367147809899009411113826675966292708773443622048273638185364973572258548654005268115209846667586713446860717323474380279615860260307709636552354984751405892424836931280831145166993131010140555583316817650062601593431010583166544728918557851490768306770502331149449629056966747569004340232953734549402441520874900624577517170231357551716801357289216509868259837157986337571698493421838541528331875962367085476934668182321996235030005642637372943825697803808136038710905265975215721051489993592117465142515626107418583996114929212879870349622308049722004996089215969350462586297021770295112257548915918038148498744239908381234510184371440599772479314858298721126109921094411016453153903584348028367328777826657854334817504455798915262166867462174739105909956599539834270577368872264729116821050607303330936559088404938905403000989648213250548379642902810815425162197824884689696221714669975564014664252760016088665112724633998904888504581193684435901069120292208467838746891590704659489929653295994264101934068705867453009490588178101684951670457992437575702406106707177023596268356259240108963979097783413774957278948623339248879133282057194005905713828919012004781558343579016436970415085320729133316773148037941325786503930762502181533234969279731188115775731556698409913449022971838082799774232583179276417128227394398225310144540245622646364540486158648629791973473705270731836831758699751485696601701557353648540981355914658248718331263221000295081049041351536032140240023667795484754953091167904537125974759999086323675124085772545526554859108441100800378013290556800149298428666444601454579816068785700064683257355073084749280440071188614313503599635230185863856122260517232708909943750597910527821108882065632674945517125780569523738484794364003643629132617878245557618617472732318912579739265659374044478000451615800506975402008545847323960194244100734928369256592106595302463685595680616170186810138241004409778861274033754615454549534984264500829994806373804249905959880128384355673642739832875836418380994094743338671577200438692060479234858277611120740214921917189214902967849178604810247786009234797555347736421108557677025464863598662423279053618153057174221046220747558820418619050491087538058806427345956923535784699721641477062984412859956780596708214915409755823416292448466641046075590829986623597079966887469559948567616469776146991534026645966662898160062421695879179657062860343599867376692431118469310631594814461543355469275554093033145850392114968420251624289449894349218123083885355734983454594239458639574974595115842256589512554055636071028742542195880104034233872836699888160530775153027764552234988709113078205285306567805880516813727085091202084527468121453202002010336794462659409148283249156496325187565524507040490182181944809139822684647813743819404792777110669338828999435370422510696727535462028595924676675702797851851937687312356039683735685312054188177849418184195801684370610840700703411353467705409624420211490701592335451611416605324333547267276271334150517290800221332108090500939974131137445539778807888656286769838656765196342809225870218741958600399542701269227465499047250459588758109849237522976269562175162087672326962254526842049169494410633174380801439194927106669075799607249912788251976662022346787786003275429162018090367591714212372032247156848163275889233777570010042454455321528523765032310382686141024467348069377926550100099197511331384174953656503426791196490896297195457149076244531458999835164998022183430975160675300419504940080152220630122294179545901507221395141086924148278476663203141510081351129854401534849563955314277596286015120353393550457125473108300190597983570978469754897542736005037613302422628407045609712922300319026856337944977487453452126406310295019542973868647378586415726530297663107716577708797946782892444485165009719727693163357977469264674480627453995645690091561757398117787066250264585903145170126816149588029089608170477040228538276594176038659020887763486446136813117671963816903384127049327461858227534401939251281147327099081724005680713600811978057498961365989432121919640881940455467610327044720897107841058169695776197868970965480001630713381149626586479110161648932293570153362388702491390365284548603915723812284848044959896815720277520526136213495526656345744741935987257907521934793897678233598041879405905941009559976046455435394935322254127066530063037335613537522562652663691965817277240136462596198600848268295358127110104635292603020624589968199837801072004917090901322255742093977211615255654537961967367179929384481594446366011829100965366319091399130551648954710033050303189333435099120243443192114654604222213689693659914555747758376058755099880946378758682258198345309265689243000205911397329609110774406729922293597621802452102136997545852031451868910611199928853497455477352765575710518115091587927959804117482644915356373571690817363573102151471574543395531387458186660762325147810235115864935158727076284985600574357768617263657014585101126281101469839679966028080350908487537326056543069219173587166826848028720349860297469496817775406227039096109007933891835454783542986335956422374495627562748522895937228350848063699404164408673932236730532841438849600222987164630756939081403276872440740728498761979656857923315860235355017539499166409892532575105037512414646278693983635411553164394924288091179779449013213842652210003515623477357548600110972775845574910187673604119360238914103741181392030011535635860382004416470257207381220306928725004455282719245869772122037087904994004945715613793926024756974088593870847359411867056724202909510741441030586083806332032327831411914558534377631968519748471815154482730613988120710717818424913730629883903819561688064654455657113906972375937680488994809761894436979085422115149406964393608780563848790949440316610956537524502024319323745140523724334413349702823407506171541529373870731007186815792411852619596968142345536552544953537109210253151782088567243442088684310564824394439261633537091943418743664603991647787507707474917215773351944701279509182039270040887633825457437145513904011274777665601681245006375148138881818839122096049115919341277560459943417765524871094014128785076202534831929799461218628889131598016200259557539337575069470110869500708987308924912809134317660947035008013043885435998438933491530862614601576640761669494446223564597935442470744642312485062715385839362574457695767636851184436896813597891269672238915729049196129848840611518363125698726810610670806999360275614627333785440278937867019551437524943413523224109932629376608306994172286249543889080433896115098187964632857433579954397529424208594842392952321233814731735270773147503101251423741557529028651127309148872916638261166431336285536383396679894724312066147548722249013598983340903776071532150463723542328129179864733051998462964973294889298550632626990310738445509162974267433036527509074611437321673069031675696544932369504693862035198668373384243387338908238838636015690309271452048141247452691617879158876559073613427334402795641407039887340569539619932815986973975121468899336676857246115408480346803360551331033023755072726196738491989771200491395127778160515560866866898668645178234120672679396663647896488969896994150462113216651368530532810904476735349249354857496681206084984111018779609496684655767357713492877239031962912010438463407651312281138916352339927524940378005168912633392802838349372326630803928893740276884152846013579207353206215633413850730000311813078233217190544337860039244400035127668921779268965455108534823609597547371342516069067418338606451821167740267357262231337260198913982209076353346250742500910570590190428284295752146351828699561388988771450807327144070061043711837217924288024359917901115373069540965679621282784265585513047075634687138626597473509973233529610112888822904594915649167546244298650535274861671852090658316514794229105968016503598378866105484477617618260283460978937547400687796632153837370377959675956944521498085767851901193347067345983607659622689967598971614117995652883607998320226089996434953593982643220849129292537687570755339534256871957125802341544609152803587002904807221541652404588502837808155621063157965677803786914581976810119117989524259671539165896761718350424303721213381859863422265565773987386241972531152552312448052985217308232120254162576256323248219522769450496161595121700258674171994016753735599267510021854574190202846725813882228647954287553218558350708129405454872249287963676127897847995178087208575313210622725096312558843331713000312630055181504769281485736678109363124687864561346716342903963123450869586301260087749266008463143924237046847930838507649124183622415471904182850707973418961247971360727989463287091843794870388244771251512037022824605327290711688224496466677898904460498247632587077055768989056850452543452357314941181312574294357983027339269995076106383915115531765004965732088676753059894092767793212865741025538588594940472806875869157382845302404509086190082832564360200237736441556564938939751311022373603798237092289306217718832606689044596553588943950542513493000251624962612361556113074264717479890939078694948892596273376117302844110890653847508429490591233624076846437784492091327629569108854509665920464656876888745082853751804515721825195953463256558236388531843948784933676062606769732507173833863292672960378790863861344605280876808409241184337494682954500828515386087411107042046497593658600612484243370330715171076207238752662685096513098796211210710972994307284566263841449051173471199857968528788505556696424603210278145777628851258287773892341939072730068301461642683402383838798931214893924841405247081561784695584507873145737896976323766197763897133167053339529588220950590521074270088413401280268284913867230484817851918176592575316735006188709254053474941472771345909892755126479929004473714662546797254852404724381979106936482716030844456930962944233905967469686139472330499714459674658532438214165047201060044259249497950400859428017205151042386482845574888266325228733431842475945988243138931766555986722611445312469846052377243672586244169513931074100773043785789614777545321118815119724130046132714492473693007742142394302875981097087238430742944199879296356950686580244491096443532270002169908921381103186081276591500404661116620153485691769480305147666021093531994769401259364836039185507529024794304998401316356073467776241317282681052371130581170826393023284336938991847299246824855948156407129337893179841217207706740531765790521938468891872144493815438824626485936522756985609721900553573894647072508792163025256647391761127264219526352049071294930810503269689749641374635526301645112619603740216336184461752672928877627210079188380088225178357585525550934226793599551719221589807322683264858598100474115424743801119305136423963815336679180049962035386481968181398996203150205771095037420132316689158424177429431707251330088145473150602760529903162115919229739546484233636182296933019062504832647968457301757181151219685662575282757373915530769501230935664020373941001396615366282676969982655648187197461860174169068303709479877231144681554298484337125503086896574028758491004426910225501987337364502483071737398924445156399884904387774894213057255923269157874459671287413227711550497311694511171756724779802339937224767827707465430183505341695382178506192556613683556233519196489338587006676443976463303610546516468046230882476192595206495689573515952208713848577033866804993161509568128087055149139019236212980299170762665673714486320210420936951623931275527059520480949744435822353948180023621169007042512754663000094125620782130169030609042283383289861234849612493850564005545457077259429727565681251949103719572689605104340682960421235987357469145096005591903974415155369405734664865092509325606233691227286726515486651674156053961014195100514298244159313760166402265063587621183633552450472522869347082298522346778738746153652131825462485107175629538113456867718273302386303074988951204734467511111934087106312354261342909244840917983035353062638127562529487291735035516808666777168986756606328150336345765967465106854985395978945532537446187564797678583974305146811246836977868811350463831663123837265137312725710788363848271963609196217072720031442686657295698377809975061338163918544936681620421196530362193412693168452747626668228480473721912935886973408508596103283538091626353473916088011816240863391494258274786666064083030738667778189016237275953114935265492802975282393856309420624992428513057627650753977085884270010720601817232186026497937040486845533922233520343377943251216674754633067538638103199943493626925531288338348039035395489555886803643607057476271108550097581011174394510328122988843035356368170534667155335160789404236242042261796638631855045930068586291925673191600408624868462552963717476588922519011147346072088767593217561853534536706345303029243572846760012593474917249950816906535254033311864784101622259695246344429522491416000014095366673850530543386675862356173985325861034460097821594807132379277514760211276460875709723554684353648857400596800199290941295480309173492927790760448632450035359295753586400617560671108337053671788614013860408234468695617890736847506551108683670391025968598504586001523385712453312800623550805835687672916838178150820828899442428628793874528649421676942013958311882819879509278193075352588484220946678541007856527900226794788152289562129104304945637604448190067468815365582446369534574002062686283763082009014211751691707947556434783071138082278634016128671289203854081718879863106088537129399118119985615197443417626121984660071957619299071369906610242273997698588478382318315620099552675961198100282068420206850661378290968492894077155348767306064080006586153992649840386888288243182121744290213189234288168011572636064336752030273108910593176450313862269332938242124431351862887641659440651263578510140150041190908683893163946470561620692921867685934311854123535678732281253170238551193267874821505277472080106338715882559494768293857111223132415566585376442492515740424612906358328140036408806654781230643094055888509031860825544471564480023195197187527198183301914438474142867443198581296413512810591064675494692381862855932433376014484885747079036727914231264151081776314102716914976263380501006944173644945714424907776711423233366882495072786669020166694311023665413034464842292028027333139470566965395159976015123889337972427689040275344988341272454562038507386051547165760866967658300501937102166320171295843383874618892665609488154599888539399223169256546924744992903653083331295776703065572667313136867147518092311729215119490552791237274225331271763746146947617984363119757105734051756114662766951513719133312864357533843776468369423486494512103350355005098662822713580498847342601709340705599848346229027573728850185083900410016853641873581901439649450094163453359192577815704097308731882698399253855246764887204992290776503475751962032657683267928080418296626952896529469043706935954133227834909816349696980713056611872826873864423648338142389950530951609760857573731820013304411209469142353748382279325475314976937554355057863193117363912349547567358731124396486400208738844761369858416615366817171634000733949215003300933696449947568882675972599055467865148790574079536214978031388217975357881320575583349810422966031188213593175691333311093204445144056498243004776231995431804949677921455159509045102678037710936932639587413793422241024998254871562673059259973468552234136486965718944382531885407387200786670191776851450327900012987256242953523759321554257378190978656041671578368024035341604303105191633464031417460998969904360892404938131252480866904123474837005040988968017843712909372601754008326037986687392538803536923678733816389541028166889144236141189633260209887455521276304051813445968165741354844796325702884044281516417124357570398637529998923282793602676510502029549120645374831153337937137346782399143150400339781435078310324005108312041905401305893815726711821571779210884551314696888417268244329092543577235787349578236856640385982570711467015931990145724551047891757789929467705928943316842881151936150491469246091053624548610991328776512777898656152304075515397960908467166425590260490860713737206726378278165991646943647484877921530958104697985256618644680636415791305769301950301311394947781953699352843110858085645675894988208183515730044133559829358094756631422455790451881875284384331745542643682578736878579429392574051362071131937925853431432100939411078417342093276302155886866809700652573255514043953147987680951251981895428229943399941496670650578846562710532111628148486114751393926538378766620121198896042890290176503493185101835060328922154945890147153919472185512931904298007731357007093718814054554400662980430122859440265812486374342934221223603117222483561579199006692095144636408202695743750367941449705827465995170286012726654082682257013662235527395481939613777929609078130596035648781613132955655192126034566469003236313247075226328123285148682114534944152556352898803154716393745796484063007090615583023767480098069757567849329717696752587383295086179399823685528893471373993198324132693591163861890226260922216318036848986706688692729711865693206424772919419512704041114279946329421794771320701636234472681967624800304559098023967250568647008914680985344473287377357154695711830137548357161713321301335555548146484616083016804845078443505610370270854003263291656511464168910321816290432830199065151295336261649413147722365964358850143165771946844468264788676139559163659953816831610591174116621021378280150599596156102937619905793555705607356823031451557866059088982692984332669963306640608508076398106680101437867107253161725925031890393275630110035853864350039052402386031392150347848196117904465311518993776954365382935665772676088424298337297020046214088635829072385263971010310411107428676258187224237666801458716945251953093837092331075855579937925923538569667228200996098700022485009166392829416951768198312541648122756221757577264113308514609066054412312017267280559976251959954383035417519968379308996648413356554623852712163390233357269556514351048771298160801733588179192623101023324185541543464026764227244917971926062802885859601160106337110112446689055050630386475193888939883073862303960363802496049050851903047832637405326240587628625602846163201146429974514202151260216956145449460822542562105675526619091554055253778638320135939106956854562746942938490936090443610489576883819503045129960083202649887221745874430064496215728550383374742600096143451435405635435432402967280966298657884050797020688526169038069497687116936801383738561887484286073891196451929074238834824679408562323589291232398772584631649269521821936045838108351066052544532553113968250201558947920110402611946224579841622848912035912647455719106466336264287441941784307797829574241409923865347614446239523120294817935817955321807745569569969037043671986767587812159879219641215684633910901973769816688705240303122767490475568563280950597137216335442026688154166357318093608980349898261372213018085898465340415399603299115263692390525055439831048610434915835104085766953653305306438909855107512978587660255780974591600685115668689587447753911439766313752414310953135188523736857962244223467009677605048047680386599791771261123346329195071871747146936420435944457797923448744151499302638428211005624967468456930007678386494337576278019942093514909621401820214317110212314569739159178376483885662772266790371535339702361929520690005006712247599501146068074321390782330970167761570859271513536741289770837477651449842284324558782717052165422397642213313114904723458372274768455190335997727458920519885469713753793276498281638978477689701740821971267033368769861268777814547198817326640141487726214958472899576829494521073177185815459443248804557322192514818244285240127907463677054519182169128907057691754507417415133872451704937676951391178072876480503323803251923671015992776125680229652026751029850878944618331518999065025976143899257184264926891663438341095294430058941634389797376055625061120687727152257592901038658302196801684183541578632953105937020504533400798053807201876167924509583170901436897844718687491561442604944293595513755102368582962401664518150977586967524572322631343627492246230434998602828249795986775162626617259018411789018770599759978223008467551251196872266794580036229674975092923377584360549045020963876788759043142325746645829454096058355632165965164063689735164758253881189313769347992683341577086737743633471819876865849018010495806702650222141356402178552014282921241659329275594398003416450132145905807491497483978172393481243452021146060793606852301178105207965245726563056055122870094135976544362848803612892116342491324951489706946459096401972072569152842516652258337323652862757850832327077611507039979599570850654761676330585685870537516817736598233560720115400057569978503992755687561439777384648090183119052006986903158438809427994997472443476665964217777447205054193965458350151112419920541049957737280417683782425088819227322628594320531660763756202045973781568639613221988107028391126792704187008640156038485688958013051414722216835076338880383871350438973057412923369917186648554371126473996692245638226230029049052387175622821176688042043718345288678558194597241715479317188699364702661997637054537202245595485715570089672278110987956291566404988254604579811039777165758505266858573331896187972472972951094982812792609570728360491789028505888853585111852564727089869080628152555353455702151078372556336151935558018752896227200686964433991740614037927344388735013509965235033953462547295413088858167677552289614562059596208949673730935683936344741982089062598954743654735466368869933433905541796020384844710013043894830553269052881573545889383639663858700250369415612161957180990558687967561850745499502437170676463506161882160541542696143137292322625736990600787543713326984676051328483186546033547359292912065184128180884770669147001772134982047184758437945278281632333989706261782734020492901065064157541709349988405510590149276995336971396775543080216480196899932512262002229248630424078379998876989987466341036249900062135760869330914235054983221520715530421503424691690355351701567299440684038628055960340326155545773377596806499982803960597321719129858685657216162514065637133611268974522679172722829475229134167181605137027810219608957457160688682570332391829348868107299931080927750927797632146423995968643153735115294930006046254382556681154052664398388882793921654622009822934191334905432887471152465307547793911172799841071885133758110758761992713183240693020214900107877867288090506512917383640585026106479868192575146796365084929372013603949829966712084864807762423155931965337112988676353447521034543980728903780449919212377129459604023199554930345862759094017621449852820799098442023152743141243221078379338520555238287822264414498098388943622315128137788384296364527188015997930504420697442515394677163651733596876632185044659413694522241848559793913803714823778928653888610696091063924443251092331954701191097036162004956439163682319596781547818212428435289079366287434808264506998051926595493403460868927717223855519648713167305149198442091594533017431034989068136632786416151117529162779954363514402663802410517401164418744264457206016835579536980739153711623279267320472842176718702862988206622402412081697371935247174149827511825749646202895714974996408851365112918616326506581354344924994858192384542338949278146778381325298175646472480409577460577171122968677856265320836643188316195804946429102357927602443092394817880518775371737279587061341894651010322307628729275899216059964112933605739203557314369184742021523699641376779968452111376112393044834226824273720207712708454933668830083490504914498538218673122800061860721521928020144307723303953763331831163297213155594938666807198464727644245947748282261200175744049808799103073306331447911093692723302429376308329499737059415781536042867300266767738165202581832995595100011393211760733801478654347741580215663666871208176563575715846158716111878203324511025179826526589498411922406285710334686838326731680923513559810977266277559368522019315075605293641341200189659983429861396662390003120022069438464331459704689472854489936207177919274576072628846247548286373738618288816816269250871483073082882466647734577064139845801915612831765861144996037372979736972690074247578244614149486916617847363988813252235237724846349295625220473126005124182850118336035399375607805586683980768345584332371511875648823539445129257054402077058894530068693050396437702130269207655903470736657226638169825905300225336893642709734485929815219794760202132426082879904797405599254939236168805577894444638175849483094777340368122576324248887928540792939792431196858983183823316387647068926994162258852355303474497625711134448650593338745182546267699853767496756511628489586616669210693737108471988539970880258909678125879527525810477920836173263158509695516612180752309091068392699361627921514266619454039109870057604594385721897687092440225982797795083390056215928940314537771655996227340375983570789158772325645071496166853139953604587994232920924036127726287995340709292931537476152133430037421285419008032337572302532150079416141062264144498842847104091795857668767589573601090060688369675463970207102673136375971676708697464783469154855054246312913574498947000209611076164456590291188695777812460741739829089075830822706916370475925352703374794491915752249696859923764688276147447748153467851416136065545415164219082720306991381280305658270609465201083324799923998222128534476720139091369409995805989672642789621431340145081274941096746407303215190247540727715856821843120248705197947037875882698636958613607123710078702585860987477070555973698379360002065677904645404084953360971769645500932859583639781599496566201546864104212089868095269544774657856949590024373763255150270422487335236323650198757012886438702505171635126137659745181749281190940598055794849505877219214549414200195873126086764779169501913607591909258529192675727182600647681563351439871161016248430156531145220066159758475490510767916147984192312865609559198266717005590570219751011385745403922340309977079430779824932186342669378927489699167804300557189398451230007879973749205707061356636544047839516186458723615294152449671000806645631126025418242611633915511500639133865589658357939557540862770247848864173778270532715857989945030157413430944603950631344622775004847443032452127151966474271773085993801850930565100296484004084616735817691278502287824810227751629407853453081191695288747126246825888524362951031298076790720491887356740085182772519770633284709305768814240486013768561782189006231913600202452211101850151998599369330713969823856699883574794360452289595159508213892938357952269388041133804978187370885201031548190979374583462227778185146281540509704367109607386845062513191438045882692254731585310474332470391004413746013734986372447092923776043166949784540447936123613665666342841822594917747196912040699812982748567170217905517685851114028907697049199290497513685868850156904838624832193319233080871201544108611517105565695723935492502366804576079331476205179828154719659351787151814006246566477160759085056665682748106778616783148573298401259511913852014766972536283746788941327070990319163803004077373433690726740392684862838482306808060160506954169147389630999373975150024046594663218373862765099751722331831630074176504361713435927309696472976036553686308281204066700622309676741621513850247987675932804276314509714346771766659686795802115211692743888925718805454352808481175708500610392352520437679448080040075464344716665980258205706656099103708032932136143782644607151280671972190566137032075005888772040569141330418408199897485238941645053863204451075683851028911776391393127133512824292519710477999676162301631619174522643262395561727531311611035915502914614911320070364332624206873848395314753965706897561033759848658616812913006209756220201219466306973328908780507870271156426310316201392741429435181175528382740240655885806897287828494813916671254394922071716317436955036312237449262760718350355016467669668975514145607837790587223155098109872919700000614864680908310360599779077881411237150534165235452551637245848465186776627015590248316560946475341273582092935715590732145149856278579244927350257897443389445598953131207575905875102379083821539117273294583774825394928023599320584830765994244652701902302489519770394906011218288995437932337521386264041695996475211016211174236484417826403799245778257514982666253555538874957937000322830266239256143002219984077168472705107920609742138682572040603417788049953494045011548979186968827592596756180655651132418841142571472736943841396493454505120034713379927602457964064364900265828801009215114724153630888149455811152558903414159452698374739367023405423689769717637121957667905587091859879131863235537323569247794400577351163888319049142671294696803023094260134722545653769956679577484510876094351627513653321375460353480508963513294295431685907308593859196987649420976017488568396641748439493301355862050867519900229715364291711052987023300862501685573170495031627013299829391655905314175306096830920494651801010343208570741614664310854896434841293572164653494104653185291533574637593990427994282012220529876635983452201353985196909476982127148835589736533381249883523997720595480099633619085547487905194131814239175054076069433024957409388849406370834496036285441304754761530891266790796680724401132672884759816769925617429212457681075778643709620014608808360871716174003299866603410376491254644942999694974172797332583912101386370441324705912694569220090758654778065475175805802935757825724417945253592471787834086867896958260007625426340549910793461635272250235306475254629991900161900491733283184717065852074765395118867918860629300742644362641656683030309712953705112474252080557386394039734515753809429404856581305748538213986955302994345683674334009538749279915514221795418927371048628394576439633404757176148188719842049487657912898868624039389803262360748562927207352974578648172440726408972820610357909377492209823713064558625404084578696885595525690350810785494643684137725368839739527412800391675373925068705295912835771563747854701682517828856066878776825920201264659227203981962937702747716300263745339344432765643076925699816077029983958597142887674355057917675650044769304109237569314211132505289292724270830906283589155076282115836861485734752171371483953461575920139676147977747952337013639592173844547497923545183350603527982646922191668952970110633279007284120455245706336490784835805039813882484492581646805249794812750215254673499736297294457561624901467567921248685268412565302944450559549204799744555213028203597542418337335234654355604545801940461497023831685523296971750955530382280790832355915814695256616133681894122287046945962777046077394320766334702860633586370650848762270201062243114730867479583605771583464434357726692936792388781785043997146706380531946261637157002878098754132574308601637601632270029266505569319096441451151532190827770674068227373650368922749668726622471870171359996396198879045945237981860164050882709560285210895506828390019325268140706584606226270617083740808617640528179447555513722146965521021875170179711355019160751784676704234049688801438440175900884729840925614427669348069269156476647155448689099777738676609394322149582740506642197731222637502104180850825107306907915063313200542620460509050371046305071193540663020340194369138778441804359382050797412440458617063751319216156762253402476288911286538577695923910999982251496478370096566299580660597052109217606846103602956077524070378895986981910193572769551434436785292602754222488446982976471589123371613926507132717541693285536063367329456823004549904739738474591797813038853968322655297885087426206245975851722549708337772800915345277187286606018504994764741112736912220796908388910792467189577561159397744797966705077920214939404618549734982486429072334398487970681592943980704181104994169867131993380530356364105353661971062700403907194757400027276740446413714953733663710281805464661196206811606532420171191888981335944671204885996110324241558947587316223259172656380040039945647895059546546738514581962411331759026240312433822453380238765995513772186060772895885291106113669021712061830036234652608232820867453534083491904834166302996160219766950348712438245426399197754565413846015792924806806637101636288861676810018044697848796605262586947115196215805484805911267022077152597558741916638642301970748836249351924563079060031937926347620608491840237325413500131863851021379603903246526464541739307208199694268627739092971390977234586766960480956784160075025801650442034225337577591170749126311639367558069203413313631111234508188266942739456562869045742752271573788089845338362536327907636228486301096589642579021320144715440119293047247015380587959706691128949987612844595069061335939436963030510992760351333699612122998827409064208025183320166642114626046296839977085737655436681536298391042583915504176042558586094506341860559593377787614083311197671349210193134196514846074431589019313073419037092331499521435654145454714700565350327556553645835065168200978229806748710379812580622744939693327258572940870323416573745243017870409364935830384755133164070598533356270305148922008747139611148822480098194452071598784534135452810729979485075237309063821077280258766534447383403531881354222610246770040365181213660213294640273057406575039491214837009457299641958405527984494996207608786747796315270246182874797130257428945598439791472480508255593735213270735504616017466575320950034478440449025442369952537400237336599398415172070261532431656549443660117732857466885077969643232760404054790814751789274749671091226907138597849886861689771206708887537445400201141956967230475700912110959511059137017739576249260380975539402651830285254505486715284145610106143897556471813538904094025389423314518525528503385807817749735157757571001746761623065631025887893686731120125616149408838049494245721016885647817475442648455625288409060246154683889951075054080075460636306354584789812970086700401683543442849433482833255444848758708626247676811930305972489012298878071615351603523093979522351933042018335552321265100626248753608592141581841164324241191140826468677310831719438732803752823102833645841016797863646150613765992565399874970274463524164206539692854591963244545772709889609822014269206848124093688074205121678766483632107845565392653727098851253262918081435313954814574468150564817338681652641696214197250782549381982546267033007011174066778602053217223677365641802145522172175227463005002789837267368729243223890325898975007608191487010136154761990010256277442580297829125026460360373588842315666051293938666871768159001419038495129278087894555463048566463616188641834036369228201919392590764297488052243804187256784211069114748488510082775286083812233615738570739339553428395698811692441543437549177679747611864443074464976922284316344528669719968743780235260582822349762996987038473749561049315273128130774271089117130981849285637144552135141315265113021482832475523900486768037405691215757666219687643744583946087153300704857257229365731581123606212860264203117590469920143271964185229603512008167183898473911189936453180133916052915257616311279394080501969103353041825403444401658272880638355309929422856130770322901095183007096796929147554048155864412734067675458520640321057134171561247568324871257147825110597068461091105981166890598535188501188926567104540946988976274893189965883579424755515775306193741393040034518077944952591061729652641111038124029354159762505063143363670095471075700958449396160394791398909384226440006294043380059973642395404704539526333529832759875020486091033521480848790061896191142887159197125805261569546055971493187078879782859295106226126319990995723532154081282285718241416746872173216463177206693034799262511041363023489359991592966989485698395301574231237579910850176538268622477118591758139874423139384231762412918061259423731740192610066540792084345789378093112651839614984350507291678777596859831162386778779471287551118609126451053321173991672504955763980425424895502897142646246643327450746879755070184362666244360234884561691874582495448550175930044832606719934550669580493266827005582708595206026549434892931554210396987501594851438870423046977752100578464101712061659294212710114424338248406493978484559833522426506010396629073714707367104537255886973293316042167685243920580679403480063647489505969117104359535396899070586522358823164831851976000826217365747532307596639691960540148595357887470181969687789718620533758563606873361258953326826773136559247341695643626479169492102512442081220725802910708747653755859293648297366293318527489668699180722309810999596884636274983032307705684547574776079035868985643086292508909619881429095984553013217992553181247419495697005698098948395857085607060087113232763147040349993367391686732807730394422683620330376021343299592493736927298390272524819972146081652450947574874253352793379844048700982044239459174171284716512829730215337214011053996145336509369878479231805307537596102629013257589195966030436608837639758571994277662236964532656286965572954148345037823939077430860777183693598172659294327328938473567051263276190022449675982731535801121564362910288535403763420521297316200966338546783945239318183025968649343402976276435158643844506570172361710424093392323125891513573524402943853156954939926844413265999533902066172261798123237800947163833642580039804499295605976560397075854981734569478861421606993942574345149505406586686688736652834757071111648511482356912025017038985161151255986972217072522301138336749018923370482528663541878071084121825461030717328155684812015101155566443124677254456417006604274913386641797542324114611523826159439562081676057008143664653287905731263588491340683557108891140333814410406096040888033113226948623549608660344516556704455615792349703410506484989591427723864277451962074725714634248790025222970124012091491358070270740380004134318774300473780863820691268223702191359654046853988070236472966477266181869002624272100848854206392858257632601846304308216355370060410079324498937801725269493579825730315153891357557335291879922751579733263278787362304980172538401651556584216729686892845763018371003768620081290675391347294329001939942468328948732867970147985377161239592098746584213615705503500182572340298667991229363554848700561469571726065163095832561346421749188418737530266918543881690482437997554431480773604347517787956004868654615814098480649330977697495910504967956608323610932190113352423858799460306706312106113013439084676321271600912472869682767092804374198926731214859041243786491335956840085498572633311674306065505507955455355190735766523454017429457025219395270690720878715722993193843002669849480101138851895474080918795218861691456495330530041086421148647000127990007686404752266954187913816591520095818570178342406962424789141268110271306537819551919576263960430966238664209532786776960209275928597994261450535729821619457484728845365777110832742519179532235880902882405806531693366451454462371209491479685311977023602959654845893240086020505597800022429943798724671305206245264938574348580471946685183044796263883296960909624367371684186371612429564535331513988815756489804111265768224274585056299321321082135816338406526125088545251688389029187272543943977012947804162355656031102488387424881793634993410122363730024101662121353769779152839038097115305424291117996247986281726804515705525196374686967130366303247147466108166317693684930827659481271975726274767473634496524394377639434169038011233342913561794945121433856168835403260020557432684991266383074782124536085834370649983004311470544793290062910221488837197539548435234541469864851824576241784329587950306346347764000426175370365402209630975340630342822037006393228593581872736938836808676605859265236143638635333597557583956941228123060729553288365921424495091655988887011331414051811725104547735789463362110336930750135247046301983609865363279344549100198531041308567187326374489127309929038006701208566173107767894310155615231009987375796507751089998174737202353522343935776281336769436930030088587971825783735238043780376174906089957938594882434462453541815234691668728680709734286943072450765505193637106512639609197224732052277964000633658966683398642623215747625764466261365974642974416072259156365411131257275696034613582252011515565625950697373440946944157589653648674252725733280958675613047771606966205055110896006498055565612964936723271268511442039683002530415322729051657419500095444954743146808732075368573108510053507830445427261886806116506526051496197535130860446307725078966892203984750891606545784700698709438486793632317192534709174636627882622195593641665828581397644497940003530738819720567371173923154393397634502178337782279054050768253290256572659835683555453354146167796723368884568302975285747671130784833607604540432091529953358255504061969303132400444373162963729534029155373599249795070806608095167822945220921305966591212904635074410312939660882148010908014246472675507686487590605384395842175015316325660506911976868492319069744164630675665529644451602302463647786819624051820597340971942901784094764592481188567286821245061187623156077100941395611232858301254093863606623722546417266584061032120723263211477732437491132703646429665008925003781667929091351727223286686255858135643532431072227382577480724933233560173863329500941175677425021059185282132155059515354085152116857465789400537020537778795470792063816048231979472194854336840115794190746856146170305392240124472752711590741778924542949069026587875272350738541038288513675356821019439079515309197466002375876052290423301141834913701471661885717067478969283685352439116589692555843424292519476144198061959915036298323607009560837100392247082114612629521129475345779704421839708325496134409785274324968877026638152961424045280463202881625754649940371065422034397046551608225125925867710055569148068529219486937305124764403615703801540324159036512364175140025644613194177194994122233226205151270498208828130855340493251756787502615600553380819224839137298638884114302419367911179466241020360987619219393201341953246876848899019144963224273433353626154782589382861102197363410800886994072893214249847240459444685925271108014771903391044405623007638878438058992787593232800547665354887543630915103197510365976172651849515502891776735531681236535288315375307889627821773214748552416486842687771926731807770071952666950684513927832183629970119112268825463368737274045098678720139625121718441988401981464623326837558426011972808619380167311169704547282284841127240509311247604909994031013642850583714908253036371690330655668933605711840615565528607097461834445868114195820812885771411549669685469400468345243352930917193273237183867393458091816031422121906410851246464440525269824068201895234667903817224236722040263058529357274200921846109961251141872829554484905624823660197175667243871723390509697898537968001039371178252108622984442045380795672373833154203715270746532053928745354772928768762063816962218656385657156732752824155113789485302896242566491878264904848780943149331351111216593806368259385458367441958833727972965939842435910555293840277347499638620386268089929877631224533157981094702267590525564606838873599963958643667554850301697617504547486081258848252300409198764849148197087409117549873024015344427391562507352663207702089357149537614551247881901602424400130199844145667824842780256066824950244322792785756429905634613276273167558153699828083171884397762382992254509088715847363602501779976944244288750518073729421363310072097476974302734255355719009876898540046478291281511245401858292601691240706851292196157777755921060884436815174155371622907865785851618375984296828604767238816613626049837919935249120991524099250652632912191812094350514551017372704135964137383441282600496434024401706458865625183281572010447055796184781250713771856579465376993946201949495016310937312639188910268606233464514357182477808818090606439862904308779096144699541632786885407388298339643776683372327718953108477174764045889056731695980715251524628091761221003289006648533107635489177003139284682605488968991255690514857906619669720753246846275834392611891517998745958525256089253091265529893629470526377843584659348965485818316759354481676522222615026030825524178039755227728638996350239405558613023676079745786173615533756369718076117428502263741834879607646436739684490820248745360209007354773000562811536645806098044897664384019547300676522484733805761197755574548355867950313607819223849609805910885441020970032243148800614325373255106177877190196805590162301386983046836651599933824088833904050151032056963784975268871524213746329731704542697684699122030717341053419394063718480817256711990184888970851778255509726221505205415042210925636401402320093402010289844166873889906766180375616550652994335267863527183792132002320964120397361234194106569961780059345129719786919773177058562161991300361034103647866552323235849504801562883943788256353889009297051394092631345985256928107358382869305987709590612213415423055983051087224789886677640084663145742709922159575836647224760431929222680370025855289623409504078717899034660974798530344432500394259714911952160502940913867073310028704554306325987464043201787482070745241428509555661630978078671468197278712567914023411378326570926814182214233366304830510730710485673622207901717056917280224136292915870328401595860150909076384913206136894351608019082873821846264301921245494911458528393208241527608098234484635817921392146960859327865255046315692774144831053941565542795026299628907776467288453281088568480808830790823309388767327691645745271614377956027338705969818404207623074692889121236618533708699904229775900044492338128651797377292931002062049433964905626737476471316003828544982632723346773904263837981597668684709069667862602304092953719995935568560896700257312004444859488708259004170498104921989988811860992290112809662956844431545677980985722645141061482764034315435281345587450108508973035290452844748094548383344346422655403906432323762962806379282507351319873991856842056489453236236683626528024666087270157005970009706701163536268390872057867338586545234625273600122981022752530943770131649352443398713717923435880384312053320525935988869827966136341739356463558271440980525268001910804593969445681980513144509307884059975672204113412156572650734196975686389758072166516946240173719225528953202129823288667254784153563741211687045858469183536390329894681546951743224846601020919261244588742021092956301615798137112252971606841999172219923114876818677103049030332731431670249371722494459167854481053670401322920679324945430618549094115867136654906755234189651497568491988263190859370332695014592963841276292992188318822008130029928539292636135792084323075783627099798659004956223851365460333699917424612598380781915104251823579496459021027031686364864572533380469856857230967057314414548680934341868544607666829674184294560960184688746739697138052790004644706277794744602027840182945307581293388580762338120703286588850154747077226987007532277244808943846172014040627212557204729809577641445024834588295942030888826972010197637643504176917957289275270413141749954031646823603168116414421283911538521492781651272690579464493519533260634075774476829652712322793079179377587134813324683433989498130994418898637892814729171803687435782285950826825111276333379971082996863329271286356712805850948036460746606804023934174018295631717327509643433043120958647856683977510241316725811046954747771993248251092029950739370633709413587606816304198539218531765852680775954372793910816028417721365578267668904449822179066329607470316096104124749379253764863216961669383858105045294351859867735809942928108323075889058577413546324280257728475962827679680001937730109581371066432828055723596530846807137085508285111257124899773618554210480878734904171411748792811221219115553631801403213660749838494655776396132854001391938704490874592027074019346843767866127748815332300990661586019412681248682346845292957151805658131922411241135245473429193734169646833753234523591057004126288666687511009398313508326643646188725214863477954525503610482309112842892368921516260078100783179399191394083074419409325411432044861192883714844802268777909266198540718734024605787859692557238713524675190588208596173473187274846502437694427868065755524643272965802968422940051437595482528536663293056789412533079988964477046117272176372555582758764981995740127392246556751608847157303328879863015556407160319117432473362257777419096616992047229231350997803962608315194561370896109224802254282136657544296833889479604510701202884736057520993477927329905863420780704015256176920832177712318975648155162889445302530670311651998043839187306160341053854695373590970920040798606331435566203716389346268813362330960671952560702004813888142702323597064528648570781556915404646885291673361335994964434996983710134813056621332643231889622343100561510779443424048421661211265148593656328116037250952770116565622785313022025774818068276299675041169319695195965884963897806126168426057908117902377009878246293416681305993356061884049571129712150267211901585941985962229558594685566319822915639388265636957233127651500291949605966230623823764257246265835931900661955406916599687919558310117369896252788313372988503237711499346110742365177195702281143663938853183236681379150812063553128013667872676692998075309700646453076954833513839852044779185396106881246560825222511869091158933171982701149463494139812146906053588195568679256948665202838125395036976678409642612967396387141800083700724295776357873933025081442617211325198335568039525786022967008200977088371334267963055817808289577676303718073691488347734533977585131850892382538561204854277728991292127518684123776003827542423556279123857273534491551390214096993347798301017247399847365410707785357079319920669624966034275190357974838097804218078573852199408867163069811755257039312288005305530290565221019550168104300543548672486009540035679807205906670381687695513620672326778392164937996510152634641129971443823793070294708129167939217599314482083436347583515644758464226657102024737401849222561333820146749787300806179297646553664693700618446392634637918225306259429709435582397344532909135008236554451196222484121901961279198827057168643699059808948435067055811914771511417178455522321292129025515189080065012872932040230040529073478006634387891801616588323816459617264392833351154482788537318264825965577159565402314439614619753524155885053080995001732332862993823949333385750724920565446533579650031077316945721569009480031868242114430010981748094332352335147513600778512427883473417128013255466714436054543462610005257231646389508624307847973038403072653490306922097463800679932866974699320981296098121618801809028239437923431038235054864230885379270767126671563538317393366139773446267756425526688821555845857346461967315682018553239128029387888123712815452560180858609593282373201439522626324542416581314118099530439981425811893757282052239692470597189018645232657631143833232851168416015972716708097263803173804822533964642475433850865033184354068739719546418065154204742389169996232631621478006665502789847622133889716618569423875419966798885301689126798461043725488905697256243759002565784142082656162397934295578243535636325306688658973978912047973009363223667535820707518639790440792511334378309618412030789099688436890021390321220565031268846082756593842130864262523935702477445262353785002872252348580853085135044410469684171924546205352544497901217547201890573287609158806701280175334318745904106129384909438357285853765437649374521760867410158672921156256141784113355439629003237459749011941527793360462946688592921494941203601773061413680060181655728261846396560751179629304192319576433003956666676635631523981458384212301455697301154139215735289077437934036832336070617996766465407925484558958703542022742485065960587170330784366732520907104675840664149752044512008381372013179561710128598421763693959468525650408795008904264156500577206054901536623654069979332027427988071878097756861691669142685004997509215017612746470462880224041249510390859944016917029238291359670202090457054550742799777920624349195019220330737966928141613391214722693100196812184325484842773778558771115849840450066608121883976663904293399797511541534709953712733025494183066415595003633751903443515733502557918528521835360322552154892176543036099984254369198533927374433098015086378011152487588741421266620632204101833034278505239377823129442276461191618390941772390335719577923564880694572925167438910276127319787940454276451753710864524339981170278474258978259508370505699620222272744360420840837111977512689197797553653292581299739984744352647355395096691306190193681298010994806571056971465490304341319096106975881621035034632959456784497155247961380040370209513301627579117913918415785749909822871804986577162487580910193377767859005080495148969996008144479035575612191464899803804543840364339198074876583427673113394226615146866612172978909888934887379094008270976233333239842327034757693276398192793384600848768295441406895616406229890361525986214777453712372027912182063493619975574205021552420368111940688890186135750667864855553491473699941134394099176573508434199907033353689497843585657647086332812255618621997236132838069787268600718531899015821926945494067890681679426192922214120635323406424786201380141613947684058615750815192780056416552765990795965452657202139178591345736939107250379509047746197130584060111337894836200921670310857592403358195004454407457632916124436342835149829861401018455740146558544562242946037824305247246537684335625120835818545906454715009831846963397131828223270834556530325713413190451369974905820364949843079062034669808215359726905407847367889403433145804246047498976041863378244369470617102278567227791666115466394117266204183100354477676552333937562108606800254670636011741952184406514661208680198293775943412584040068278762763631838915133291301338704135365608702856036441444015229734939586644184619220307448931356819002112803912126317838485783095556023186607285230001687756872008348093063058833062458277300472932520268679049296926361072374705230897473545837806435334938094088553446477762378116396484338947845235247437435336007287005580135954685090827302921141115130750606724486583724938748939345715085406603251877756901921895012934079553074581986731612612013561499190664886459756502484955424905903476580687860422864427045796866898464689923262613602450398880275334335759335745148252013988854251852705912376705597200803567827985800230108979961477603161759523722368347302241365049056508313329261463174253528638850535851447786271509280042609621260523374828033748468529518743363561284977596412985154735108395932058375194183142038115366270488432754229803383202139324397900478268788809082305226948867609391354454222781533497248808419442327944699823463909253154916163870100995573952975563294403773459656643313299181196115035142341135443755111425766145659324286719942810876857809655615494833193970805851668222856296924024463313389156290791614120931456558820068623819608294517121595733900616598025547403758367069452788252376379613306612318608826268293470377246120764272576698422836046344886195617945878288021669559881315392385458475704906509769757350235726879133409180367456615645597988248964207316182743139652535318288397687141012796644993027558685918001059547927611917399911509743652365057943220871423981641912051907654442759529805396698372333930843788554902457575173495897450443567195466768724075271649113532930003002010028087873992812424732656387647193038548814720390816875732904929663935627497842021867711328171778974176400574035040034070235363874503675799888859306061120570344775555980767157198594847503196623451565742275738756946086566793861847231411733938297591482017849455144054168462977321567691068255342901778700759253593357485854412676197482859075728918137164452257954178900645323681851773987547978741134274400558724044891330600852442494511553290466445047744898813210419142634683203724715507160828735772404127334694943198796495289928878434594099274706211752061160711297641756276565124930997674168077473072378979860506988327489253690967461042522648678804163950290998393304818853458906755469946179768456354965937799357329550370736274006114216312959260983026646895006806055047482074482927150174806036835757165433413060761451158102308184092494011953315797733581408841282505401377851417151428234340710296650008693855129167233653113856624442306168854227092529400924713397934775095360575604455629435581786703019215152312411929564088414312847126887067675326156943958796142578053121406802347597423061278684195511015800916999215300351074336455751819508415243631307757536260392175695022756915535575971259247340055097397160300679716899240010617556898882332528254878230808258935179162679193125592612173893481650398844555766177195612263613441623817583489683500096013697998584290850386734091333878731567397415359320089967838561718067567960620489222935154227492728310359392108171040344566599856790342750563152657235393694202707271640851910202340444816469098953826906182854295705438492269599963282605644023150041133534712470893208991166296931898894492287779489394889716942854568839252769658401929922528431091891775491572356631389551353934008895523759840549886356916338240284862810084019188076284754208318839600363410677679856798809779982013324007111905258660315083087056161431365005279452999923449164479840010253815726953226668151394773259399123547037061599299218529742902246956249078688148156938025419753689515458554824650033651526807045653586813891359420615609935893044640692456872770047020170546044695336830495369348275638935380684670420290780295947424941917571541072292743366095755877806889835380091891132761695628559407715593022628804390816614784630230409043621633775261410278008653745089147429519123463087605698310606918415836756845190333882199580857175992795203497494582663243720879147173507565813477794535471077871780810959836011107114050729347841974698171169620297253626499742066501959510094931218668702861773269532305323780503693929808516427366041973084345629067264891599772733895340054918102595936213017547558664026168948054767087726686509730875423532411321514480828738783726408375535158504693234648360952755207173263135043419685343236147503860698103621355330790150919129671579364486489090598058214401588121057874150560028689194989329166884450208083169218659287577172703032681872451508719212199818098547951064842936244426694575300080152902320877303610027234699585545527193191366801767609256455255102708480232299599288224141713703724563980986804989824272921389067165541975325576324120356190713659046765875141756373427450800747887795995288916944546670805571114501100666346435624302177034207628168601836386856390313689579168899161097938246042541678535590022921846834468899148813148106750290601615700995897598826387206878869962181660977126263857761917388511483114222722177730414510157374033505842464702869935418869845430465630649912538303389201196430933171358379691349622260803078487241332333035900618523225349993877422002467637728421684706014990357206459419785528704252956071840742032357578425185740531463181075051694533475062242742496626049204446864192892297497808568831542821304122215799916874369572388327000342341644622788095190315761055829833114755445396493137789049288554843678679157290889743440143784396527358965743597994433988137262823102733621875502044536804853216585344737377140983978233635821590824935613119946433961967482172176629984183031411988775429848805562226238090071680772378263364105805871615147703304885853074373272414580288754291688079084892301037458817036387656552495426671750690999492956389968846490862405552985233242315410114366204670644150455209891419416078522339878272419144552305576901755138982131390676228143307161091198721027212934135513298905838333370396730370093833218766411769982043888159623753582168583720254962882573685425908672224441620645081509332049107728566461043982897851192153553536929332425534564618572393289200309718937780570756305704166081629232182448319104402998510111581409018750310507940374034694926512025192903718824254020437099703518812702171190073372810231024491726443781246220173396368620827816019541532033833739270687492082234675450763230655554102677215691199742436701729027143922286067441309965213557710123190447613157029488966929008298664737981202511757732485653105178441042836536354679381350568421362895288945014158536382947937241617302288361264246288923193342893988905063459633162512768405608865096402623385688010314270439784751635182639914343480495001569782462037802518118692050768982211473089152217617485331539186061692009457096108538109462585066434702090362930812389919421486236323336446467327798607837966211069644399802932661657788139489368350743105812951666746239166379635531575410834654356273822891290545529557696926421236605598072498290503809899056515636354426444348830309750984408372507949330821576076129828927476464404811731069911387955467919184666772458262308746191174137798510298705109254300316825397189270489171728864102763955773822306116861256445119216037946916292719317406173872972724912831417780858988326833534350638254133095110871692380353175052001831770914063711145465753751643316974193669996189697753933997941856187763465614528243678745738277323459470871916087799907102162003503485562642300873546982724469046593167771345913969979835489170005922214345648979353527151841500540507315103872512749649670322435227425214118203861793311013802744998466826667509391707516151522823748742744996249229455841061883897685767016285281569648578894096125196516752267252052109250575029875977417557167110380765833503932379709615295867290405281108670983848179022395792221102008564109385596184986068137111060629699405231895476646137595170021972455755491253038388630006710171627235207181117005388581958180545650779871027489674598216833585898756974746035331238546503054713843063373943997527856871765825367766963113734951271400841578778968043300505844968786768468183321139692302079509850114536448558556908050419491631315980113511245546647634201461866649034367179309902928781141492164062580231341193071388917809667778117317628566455631702230075193489824216126051838703610108930159427347968990418252286388364519503464493056224894778655912719951740756542947750138210639617118949482019315772959388295786945622249142812878080949656981625624306508321300371926191950292912135493020285287934140416546639743745459152477632158200075110666441526844936356697055495812271693784429963492227345743709664055633229743505179093258038716752715014201404959189870844082783158316055042953448348085320657464432331730955930108776407204478248961809490737386943673030166861422030558466525852517897702217826151639366351117880905699657586519170836131778713549409606137436941753373940186198477228546719901119568177571899767611841270763620495684091607717468326441976961023483819183064130661278771364749004904717855191550952248606823170084273937967799282528492847471422665614643597318312707222711609622582859321829074674433884525144069703180301785405109989540668341778418562095504158739295045012845756100410796509725705907157908793523538754891394270064129300749205522845860402644280744695752352431014804814677514165799848473451389419197668186922787020942658360850852797069625224333766327336479564462897625101714820240125739034693619070687416777909856460632057543638262616504858102637164895958809330628886619905866506229068844403588616712323051061358777025697225666819278046655729859889247209446767039038756702451158964270142426776610278872247869224714806949903206739361018844529436274006891850404267640504126437676064265363652131445114388676599288596543284683732682978237586389058132999937320924527817479978356729204147151443610586363524314981178975730650459274829473372973670624829013257671630708918699443747946947887061826261965841597993416193048403365551280243125151302290826097863705563044675708087241880115993184665224574862804231285756395006735803493289572813554086545567416951155611582839465088367257842180142215921781412185839857860326170544215084971913609485253315208670128422719110644605302854273326864154335700137516303755965446099733667946432185024847636739943104457248064135558155715041164905440153679586189477348603793202620349433072609123125485801404335178533391784977161875154096680679638988168196373342717431386213181269160169056433898869205379963100171870528747328249647809546693915683179296454068672600256141300409316746110512443563550212053352217178530390674938333851980682550049179704753746380571591640210327638660743419325437511125220720535600155046620939471674388479283508514428204099060665337864986457782177265586610107897846371531516694327572160214273168137290782944178300386675628014255206317745116297922791593253554357746885066723211379857238945261269619385085504141211080172683023369891874585853026077016170659930134217221800850165107554803584208859676762599393775728184969583412562157736685408071491146017974945527706944136445733306253719045551240673997524867176448083319876101714926642398226731752175889318053025129541796562547596206938363926950193393366425826613173515780588804734329593838203896992458797310174334787624880178176244755301196298460000603240459814872016464620514484027114158998089866494864646007637136901111249659620291990104915241570770793632587834681551534526276545271220756674887988681030941915410009637789559547729786041728642171293228218132627042089130893430456416915530260102667939495232294032999067359089925421134141068622892488510288142777980486630234917334614019102118920582933572826750439769833130074174024917134381534761376365025814930054772522603699798534960010019080331861980889803528633606787460276692959392604752383301752170483617409587809452890795045848008134529478578449021499717885550634566698461891828114340628983191849876286847534118646058984188411979285046991695026727136305084176175351147843478190736953547984675923993804786637018645265601007044493578571208477422567722857186015272878537963429788735082846889997625880989483715014638387748455618937214042338956348521981663048211609948613423075808100973520289386840965631170463887763419452603301287340268372316976132074448929794984731277990445182658636103880480029815399192857937308360972021325119680165851088579904513642966429107064792763451784496423734196251720087956753095257948189382836318850692066076992675422153612615359651824680810075529764564551893349824745988190814450965216934771049243132793130019668494974942668149105196506652968034255445019389923372587351760224421831150669597625491269578640446533541012885727022282629621676710562856470875201928703483065358772455495346323611240684733950073107065255015564701773140881292595605809001822299971458447074077463326773929657167785039529932349216115274211942526315646874744609012976929484643963114176733923839629127008852477786732803115808913461311249324225559573886110538401010129087362697606767107698618435442423704831892918466440507838896625703338078594055412140935428700511256830729255672061846586268597949054317079913962914065250357571593949831425140268555888179466046787752138727433115633516511289890805553669822314920164776734763443307909099492066327051156818366994854488688546062377127861407890579013694837610371289616304491182861831586351974031200521704574045272715449332516220596636868188359803853837711733780734043547450413413938923131263640270066709839295658876582558269894183100324015168227902940176365072135198091766965326438375739225959113319571096522196281768770292817866299945382905649463353387552200785099937603224719583812245630561180936844825181532235771482921684523578841516070139637347974343203333932482132643792447545239423433646709122430564153822224551396821065687530487526583280422151492079853015247870627704380638637127280944551178863416252880072360313990532181033873300891059151189372223332210608356384344469668047583882034066638877660537603390712475497626670112693195620773488704394901779877236984207174438472174641781870456222960906272658707426466019697382773003037159633115776679049171489757561653470419268641342546199536877252748275544001927936746850437957631192480050075909345028408753314827145411114006140972352046043319137155516278419539769184220186415233113720997395084533324476659651219579211989332163805629989000289617116826080048286724076351232246853501259400723143205768669790579506601579352278289422635885380440262457306650749521449895360165850844943731424217038496766453848994910124019175659038154352202022970536572217113109327418601949931795777182559018644764509647887370710002925610478029968248670335956422048195721834955613501236464481937099000515848012041759929788579559623337065322770272657701353281059234597584450348514944101118036655736463053457298256264272279902973831312986345582256595922521234027004846445826989465575262054734703287292762111580190177021423029268934647874749179322093941979250566702882501074802247789700109649616682556570442887502106604062896974185144764714564094483727505451708282000257895771389893442170476583366325369113463081658814718083481449038134912028926310601971770228762894694222416949795106654296231206338796013782687806242096151648382307295388478476855242820486017151829752089403006896151857901512549704956322032239354368865659527549573489124014357532649283453640348470797196862789758872873827445761010318461338472383872224143607053078482330307849991817119934636636123833522805866859184808328778799441410289271141514434797218982362733147064810328083912890616181653835883058593293398685945479687988378113113716479337910748169301601581350521810408365865242861494178499854721292678343766841756056747909739312077944753189400255986428337224695753496739840818719975169755216747273592833498905168652845893979897829218722849128279055765182680174950205394310529833173830757895320470297760663269277218117292226857695283932769112572754393875000180068827577772591384355386620425082066211748043411613808538160296834509298499707205082203168502160734417206878702363720755491727390468629216891783729720696928668454246279558047191686056354503739471355514727667554636040559698212305344390387691321899885903113670426013581189929513227380982169825670970783106794282197815388980395745938517460777723967172485821857146277196326036986402969456286894286770113910172909797942155642352830884219231466038386033922689952113124961275411004043060593314587213547352026694430022348777403298181833513804614647796981085649446589848762965734601409327612268651904562812520845476396246160407012101877981228055866137658906461614141955103492720559158250252062703056153686953415129941140018588131331425003003697260714475966983575036578568970233301542745038963233042102603172095791024335142227854289041310720517811752021325114229740021023364826521146374607346922961815238071343943144673727998629798200927568077266308129251730810936088106299950566305766887454196364201464429837979311603949776923608451083374648132954204848215069678135344260153459474475271004493573128721813171566282813626580444870170127870934393436406604153384688190201827987336095346261483238803197320243339532469472528939783011190093726185274952990845832158845888045091373815295682205796381411876651194866601885628434315730361685829123574494489031196204624318128860692104906512281436607830215734717816082256672285725282016400413506084820366545734317812966093199768226328674833588737424694663795847495353772146532428196692408116709587150733973532683836251930692421315868985261335293286680985486051278216796146924514425413090510980197427627663663406736980151611058537889079464892162311236828299223598147505729464998737761762616686795094828048522733429535691133174275782237247339609665986571749858839878440252695602268654416184914161279024659609746629724908300339622201189308857447548448116158122240675018037020823860888883902631230767607754523739028429280296260752566556407682426090066383238494282270719561575223022530984114102126228018474712521526959237495012161905727216369334386201012354059172236360877187318718975494367914648229965878119601987122998639946786854249618909902488876751922603217448534867101988229871065482732424497573574929620541942052563863553884029488934133465988944501345987109369142336552787887854711591757331371505044018428025832667692868767151270897666036916164276383213021583236583694510712964560639266543186649010638446530807145199553740679934277545357522704353546944203996452932510512246761179602332737905630630436236733880717147737161105633627063580917434426462324142083797915641076129667517462107977809962958287113268540999375848427486139370034723164642706813404688898075626300353623284644801323718697147708558281254386914763597265201215155061429481574374412473078954261605960234796043518075180041716190852445141759592142750990988423584338510805454846039480050214211620754311208870535593055772386625905586344191308271356887425133372574499001236356246801006557556784640062050678552466374580877241598276037436453976208525956688132617770418889030289473750291080809345610206992323815059577300822045998755432839920554862830818746980427504388009251749886847744592001814265582482607060785068716144979113677269561855943327601125477441307992843881823179614997238303258353152873014214199509099274789195752710777376907185437490306284601180580234769308861591514341502053135345688541117786857177910859068484781627345632409284053036169491715476319705885100321275720978535699349257224785601149965004628913318286502083480809687415081630565494809180597273377311729077083886313889899287389719483013069652253740351388525378025908285090893492321170258311487975412942124428118074386746884098893377963548076164515768703761322267356758078810744754289329785159644619995338049104061980996495555886029877005777189761587643469117211496427910271492570933774652921723815357703523590766888407410549828823074810117800464905156287597269909893714733526245983193681192216658791022856152204744995297274681359489878216159004380744600198330644910361773776199474583669202830382234907372864274966642435121730861215027287265066211301833060479636565290185398547292945428123325522460941888396718164513899623128445627456661782669268523144755815291622131554521770896090203971326536634265100924135771876137929990665574863234364344378525692986040210243977489769307764442942113867409907863587473981339878833399675152751525134450847095631907721424756285452536419309810898284107722971139096607727381071593553800036487630834113528734331845174975336989162647526310397184395577039444025276725996355057918549022832124025440784954554924067569779956390355260607876990190720689597076985653685161777237086868416558128528752950695379918567897699844518115273933321902678491139721529283348997924938340521544743264004646702443769993094256521166477917262321798604731551851400495145247947758951062156166287740717921066611409217788364686927502874044381884280719915884645092309143463523500397795750671258208944989412530588859309449182412933039194474477452133484972557471101393172563306486010313278277925234885841703753980880805020827720600250409891092912918995266844977471559662166250939056793744510343092180174394011188357466889665005413920560237864931185269094379303481912564427854961969340185026762747208424751482517709710053678347225034175358036526105466587184564108223229027856955122062340110034980220799215346556183452696835366104476653543793117835665143058356689805684808640540295373459560371548090138285893288126066508521210515059686381289366373989887370140939086357801816638416082122720032288102265062429503130674374035909104603120891914296631518918481131400449864992630557954525138828352593212563477160397096089497872154348196364356213669527228127799501531398190090460761864926360508788992225997890017128953556202352694958043806188177798494135585732150033775186580745952299943761692656608360136421765886696322847084002951425059497926883925889035749696953883370700987908715843655610912621997955425542991635131032152076496482212224943336434066063263511728382261502897677136666579319579364578374312187842299771384627942006974004216509915553165356199753744126012741129895067008580851754545814842144139213684628375901628967704283451470505158552377821998015509470936723558054117349326682951913647011077656223098480985342138150155070714849741137456096864378759461239121425359442525463494952649217327914950593370848428336715325621968760012106189865421824807552840453914612095852725622473682431366929415683997123101230275213662274424211622291040661830930742637458808215721412711627356274080712466216047985268874620555132451497075190871022714573535021747544270105128307956647603516793807538311674873900087055805781593637568127085002612295374279936642847202019004374073870922066199290716251804521651459981912390263063460520855482966044353151827600177926381493373156133865497855876456857671083246812594663864845075117566768843884408108559338837633882629903380703734001037578269655288617757936666586692192826313369417232139183387833764737004098104012821044552936744645739017591974823747484237993325579004952940135281008563593492465497568171042609451414726679756309853724387587948975630530350500773301868472970617833934068512453557335840089281437143357396022551049111900614730379090938825708114164651293796280871172359875914864290189346923775935521794090649495734260660039223495365765134452220248772656753505947967375584945446067711164459135900240147844628379559580610822305088958315638519131509377815266804295733423715575546170422126277429406837493658418526804671303461633802132950189907706769234260693750274296963457029180758059725446117319281508514536969413519137407207972827783438906650876174222558985901216997680224046068963425979682072251054203790300168342825812044765677393962654029510625534922301860518680067901467720233004592958701701170748347361739760654403861310103315377067454002703346307189226297610480120616604687611362637188153975198233985953308044141349865014957041242793762478843028406504336740073586940679797965953513190418479421517751933652613775991696100375936431744206396780865759400040224828058434490457469530407963281762059045432892468813881651814610433246958532931130689952418532273859686138419896314585196707456212387316660987865458982548599286110644706299465896062846033821734089350113583973873354176428785806575503209076242283956289102118426667932881461997738523716752936287184304339391786343692684713603241772131492619511602465207625769481916592612335984676690005489233165749805416167490105931633809032985215427278381574720418199909180478966649280983440395099593170354418093621126631695317767879704064701103526632445618768720933760368074722950963694556873645093456619346612645196209378430640880698578704661001905072624193835200379526942862290115001619792221557440743847542082673451230006083730208116151207583576810419101842621164601585944978905494229024370935575629588923156889950155147944170697010057072675614325881844002192217400463608317773964982297289914235608995229108186901660881579282382614877861703042962460919098281436513130253407633346453649763315758266617391934766009778211949598036374967632300050612494257564726015307079404317770657469161996584072887281667314760446045690218705387641541450845168642857138575504318037534316678848778876339124112181939510041265608526584181694163272769072216308426748683252170539637220848940214848389110690172017997754685195380923431710281373698912124083443791245668794821808688245961414006463662359381924991428511664225435342687323866489719899454366101377696092584487381888065989485604155065810726584247610476195585479996125744617182194612221948114742393692857067444061780079441609159469007084023637384352714695577138562663634945738326943836428903163805959233585545671307285733000083479547674038539545258074445287986248922510154815471543470089624301686838401049154612791248796649056833373679231481009212248357751564618783904425683929471972984272981240493819655763525054620169285237941044948255403693082948416317630371683822406051038961770534685185567910257242034630473086001070618859212373657984644719113814703898050351809449079704500653935273617485860833393862736998895756121894452421977309458613166051437586828615245865951259315859903853380862984611319881582898119059163154544651763238144587500267790887744089231497650934139908932240141379208318481065179447915184667929246237305572242982336933264633594289417594873858023316239758396286315373165158406098150587937486515222091164396074984270958691587255126031227324288099841779223760902537447524171972351956578109436635475324111940431768117963257100011893145175302373416673157019440621781236869465437604582220955410849218575120458231717138900903927022713074909280061244213773983949351558504099518169490243517691887913729989674218364887467432981065492923218357955334560849852717089898052970250924055048488535253859117256984864467889135840953167079513899744438999586108941850993278443587254320595357387697716296259171910166046977684449368286275459817365911745978203491008620401757244903866243401324190400711293529059209410328069369759302714733169678511284867379226136227265198264270739597180343203366790638278385490768674809942394199583732254382983297932681270894265955136769983480493574182342032556895672902654852515434618010505952617041716480338463669287562489496591010912495752127745358663034819752198749936780650176261682012480286243116064992467467258308023414351398174805684171568978780419665871654362504543082775332260240659683182115720950356771247248610683616763792899360016980369496887385478287854176204280647783371322291364903256981672914761024590654529050590129547504949133387886318688669272431495404812155703280596530205301930793431255310141136763887551156637984407886947509907924219868251735964781153283675534926625291140603997929183331693029192801108131058769949505157716910921663705807005633166716072395351053573547691424330030863077667735611214082983629710117666497494173932353603897024984045363230477616866875231690781878928228575732684247575675276286611061331514801715043988788452280306941238466431941126995365116906803860333798260535422539904867273827768012777611121242346119404575655266138789430666796416833526440606766822014075608914550065721073070641696649279684655721502419309902849130705210947334421497843183906764234165620032794166430615865829774603887356415172717812554740009678866272369523133673555133438989483784885099430442177723396217852025530656591920047244201610615018849970748244938300216417030776812961442332021579055660214791279667494384503170897629512986364577506787301793851087475162537513077334151837324922237504307774686778504558282926003189806751123620899883588576016115912497082374230875006159546245312391239317576053314928796896854631167395493084761119843218829459406200981300614343691889602578333227516483461489410010443096089884381135750474045803138500073967275757541790265620586758838403966882443613901503885772962379085492556219554856237668687569405782214558022177443292642165974037136493423231816789120520149436394837227174139513185288690381262284058290938964780173976474370428444173605360456985407611022217498642380424554354379492628612124486495758277935345278766755206570334051359878174789260391624852388575789313047617594210661863438002640513434106612188258749049801186738282440011219881968493950675390184116700981977145732789790542051410635128111999686843181593002449688570713931631416275612805050049066644025427626099067682841800948752274179268088041705526283998134739656580638433564909323467582484275851049127050459445704316129738349987552798431077331735936387709655923953584541529839820504559321817687093778952995194529209016461506165848407732296639504425135866097379317570910795020080847123584874664281429357681679647802162631591409149466324318770832621590813319144909475140774912767706482285851846663814426961695974169958158372942506929216370628509783704038114131704659563676205381095666855658324337577638032361861993939023148092139600243263535553803132347731257106975171740015638768012029585235902737794744226569066601881609223071062027137536827662107509247302721508959177961728251961804147536099426001363809765884975529130656211759472662741118258457156614717944295001737956713136721793413430143721263987953536507301653827586414672701801393150054925505041520052321191224606707182501783759985040176834381789126541277948719221111838121353122885628778802717434609731779333985049529846387763015587422871011291738534068192759209432122110148175782151018221811291515289643895598671347006776666034376150135274100922627377126083838165808115809841691028305583922366914066989293366857147374871908787878937728379139823292168525407441901798340643943354721394720316338010712698750094411217955132538556055515469451794567629845447432560022217516391569728996730135830530801988256519009838052797486778961344799626797559166891981291158641317279714217262431839756768468594833670839491059393774250977337998192556697360391574225869358306765183631893544388151283317009234750361089686454899677860244606560121202600810432864023845982363503227364165000824226705146297998590347752857589618484629579991825716724371506336075786959724354015019967531893413132649497154634881245222472583472411552520320881580922365428395358433336230621738987653333165530593751563219920762581743869299067120918776941075292956083823945325096261769903257998931310232612105717382162730477663965198244655867968914423076138789211894799395285247349669751436595443459105428374546784264983258639364829296997667414095097843043212256551907202682651674141205218436398652947694069796757574478839224642100077866260240425439610347815118217322380258300239677262179642001390152384111877824520284881721764526871419976846827372285739787892680559209857582716313544777206063427686411495605235427640036150038851470744725684292389235078358714818869498601113553751241209481380265054582864713490138598604102583490531061494767761316660243443444545093666007019625583482520141115966442003735700529751674086971256340164670235633473050278379601069070486508230560272443274457744427350898078320940382122642737433307050235233156811143496667689735476104430976488675384745241319024972366484559282247135998931447406533395436398825146005435049121791029445022126762893768284844638519041293207938554292105694273007986283792685896009067295774107346794155388429853777845741686310418319295147708851250901472722156798646084221203005658327209974176808920522774906679146948627215901616076990669050076999986527709953177385032021993558575616608188745778446432605248684770998267436269047555357037101874624775589904643676498868048593344961129456602069355553239671543035846839983997308548319857347442982522063908327617830740062881971364290871949238876105848343557220540597195900735483315138711794081525588339645976508861546976649152908885715451565138387420814838365960759653083231861023907752681693807517591500560119626010456807147915293391173171128225177350451123802802574116089853368979416840573743107681797712513199382838323014261825854922232619037457881976841463849987349078933827522981832712594081661110510898769199031823888048243446118763270153822038368627583233780876050677647100930590117795119314830045682173216709780770820945534728797498445575226762426244777291482640418671386315522625929007931021370884096833007303025522414425327493218921976508616662619443870915541837711531416667387367539508201446001481363265977283004692278457068789103082952626882879172697987333287347172801710594714337170337389751171490787971789831630535876859035145523153657837791371302537106712965728377333705376154089650253607851725992276554939023374699806647753980524492993252618433193271228607037590689698798884339893593762068649600695090914378800758054868443741790869425700039678229515626286552381654512273624968467793487817350708105153402826691385100919490054194597329482147225921887012443082717622907470455369523300031515136880368861723728650598993321709100781624380787455299091359387049030883065346273971887284403758646648749915608203991110869297515459293486667508876905784989526980788394405180945356931467526323410724103120615096279597197451576870637810179968907099702008366224462643953728861328728436029819622600879436993836483961001988727545663427603291925380831219949707327022769810135624241182446485689720011719419948041239244301416721637131590297175843097249855193674248235121766697586808296372778705175883410133433698457334772655867883616617106978647179547987902354578047314585866115999089784078880438942891148718963609824375195212955825669374350534674465859029502483758206207712216969698338991425398856434199368011403404402713326351651728359360903411953053712177309027007451477214997329623232106990312862157009093574126134782785974296676683887250147281392386486301271367120328983526351823121323372558516643227451032431165822971206608779561271952069872353362920818470812629728237645543532124597568323356237499767616150371502746930595324772531446212966088591928686131042019466723737864725466474538245444993077378857773317713671762517732590089483250632062702411809234624804148649007829797436501413291232822916853990300485809996274713578901543407811612837495065939758414552402359877101918008193215929693923107605628335305563830863158430101682226403040455934267068900914259712710133927574141066028095098249407501271908368024272032994213005258401692005626201885665207392415424413630882277929394799768106857411015651077092987699871508580402782507093327226236821584421296924515067238705709737496198884416822071068906174036165927193031494987421134362151759268047092809878621172768013287138935796061465903639691477415727624728223103583502150885441887514364650841574216325341819992989279623629606453444467117187710984351371852420981186994486517523551452125468871701287148877903959451720937489381051513739274548570132219920611280458820291631341146854429631356388670866354229795830865693088131913169357727443956738256894274985732925837822565628948264370584307223075410460932084263608522774456264463599594038054797709065761848798798051696500066786610364186043700669468715020127851957247301644199324494583174561281167719170071715237170866368896457578072009040743392854199004860982303271372252242825441671447318651773705319653330270795125892305745949511126030964353546438401774002854313594709026463802918267982025928571614529865786863472839820333675235831966373410902209566031458852201232923225212756692400313066774852382437026148298468815630402373868492120654675290449527903332834308857746843897851312233192793845985557931757814171481324643291935554788580543365732562014362319770259195472726941198684932233722478475876701732574718335092041900762015066187511346356652032363185008535473439631219351610630416200459649434550116114423825905932629401993238974691943109666342013092533898665108396933045112359618546256909906769329135810407589667564831451029804622631964012522370026300986327040274245996459249706881266951226013658103651839504004564707973030126727570247439928334467332380894186167480572036496451122879286540785245385094655423646805206995985630217024063371632633775054057540087244282229210148485409428216003390009564016327361468761352224750670959091923919658872445090713249992267237314151466587393632791803805777323597985205498112608309156238112150714695870649701907921863364044416994782060021285853430007070579440589310803165884636176100190237283343139327550588559764837211853153523993468769835403457275636526272557211700819923848477694213855904694367881230747943475817056050776845558184095251771315254204047979631766463907161667222681668341725105176928775739342127156009186070297692601258365563924363934002744255365471585672858099802915384314906800613693422458321044453972636274781342206803849913405341406243821569249973204885372781425498701747025450294692109718836277921799845677086980580483098085370054254112320372999389859669391379263485810597623107388925893548998028210273624434627813586494330260486453714788668492757455203200847543878285705246030762242144533056524338835899333923399397100537729853624060258307230028331538273770991205919926382017571395251027547656872936112533475042247303234591911976314487110111792181023367595745953815088334698878310372005114163220561509959485281222576914367483663607814472348351989015720726229013947450858419754481794745015750235017648224547720286169723284034657472577586336241197475539045654101831856915117268292769036510065241471126856400454342685343027279585385269541504956962835494271745911450539154359288774483648306119661695116476826286372768487352215042034207834683310517792097170291253965473395651303719975994915425308227322211634985228805003493446505296995831864392423719856168509153203239828415257574868789917806771546368864891081939616330052974775712867916642834983556031566164546122109377604100278780483665279199408690025256067547264740901108105840434991616995532636988501294501300669206822357779499578205057586245614624605087026187140188702476525090971990912317122534620888741357246064631912153336551856008735271495139058958061935125374438499220703722975662871158089135481455773813682910530390298812428610481160298868650672170496428526258402460371443792420223282873160873915527803483414730930888328848935397636638756872585455339764101665249385978488163844697107082869906414717801924511972796885251999108211661104458121236277895708173677198573382022026485867592726456451346703154805754331758037416696595881021157465496046938416874682997205844183216868489449355339304182896823127444939071967883397575367866405798357926688358866811173115903974714842621872939701872602035656310438079462624958807279470954897265701066994518848274436293831816768591466335942744211383637855021085055839957838244529277076267297585726230224364256647590404691289555322522333030694515324046651247092854882078775564696189876748223304974165496736095150735427404294726204302209565875622080151850848369812333768318591016531669455070369277939001865222195278398212060012509703801144337825559600910209537962610352182711611741248967169572388101568558601208789881670502950973337583793967481350180708497182729399949218208295895924474466391548147544916890530244136313180254865563810099405443702131768132526675304478837245902608068912561563374894563830654433357335504745573343747954811846988387360651576665233261918506298759346480273278137484271646921317000133017187989759146698351453060094663779069479891461543938054148572522302985242095095419942595247574256177896923592841248887378656712944206085966948371978274088812882355135485312670550765171556562382109563042234125674969813531841569245136551222781062449365454369149878656631774108094790486695579879846306964123757802109222786786432573203776612792491086227162348466305613360283316154320166070747350655745520061390862496715455040894431975635815463376290596469602367267697736040035859241272795312230287767878758873628438217271204348972827391017511060261377668418203362511240375891264814897139383679737836656080024350892545907762996961113947107081734277063908210197562847545420290348598983353100688082425576523695819191934665411376723439404919933763393472089892729327666300400306193374147693536899301512033402373337123245121693565576197602858662379132935814731294759336370915291627041922747303533172238605163370109042915320437124991305756945177114624394759547796119129064434379348287025197772031700876165829458811502614205669416003082274260162653735916978842725717342951631744003390308876153769838445533201225864435181052765096046378287975085327350334248142403673199051582504858980304234685277706517160673695087568419447593254518794072288854959045070261063073567587398674422185284770498889707527796430941390563807382302713349573547802314129276383306350203540410981860785593704705161190450911072476384916170827376957426128610065438107776361156642243201071763788929571207887451601188115042225001344214781069983460299852834235047809037757570523148701491334660481291418256774464522258949003665856866539193501747752057487230794225595232377008132745839053845663355707635141482377692795860231544015090356753881540402009253529490009092225424691760722271457823869372092402610409007808775354513956223498109346654425288307957948376581814091760886230545798316464994448049103971077840487824546647124904031231327083479999463729106063699662636534050316892047310825417857930102480047915200282659716271288932203303960386855851138812111610940483005596112523232018613408887124485514242508103648135213505126957890277837634160611385174357125311712092376917828478795825984391817255164700787007009782840968836913372081137919338814991818756194371770280131812125449714106222331593150442329116843780368020304156908614073419849317154065301707621935302719849120540801997327111057540499617637399557285908649360902370740334005546931242881430041797344886752186829337791852930802776020457025380849581671662597445270223991536347046379807998962838161991887536919013801204587595477859312467760461075701862900081436015264599745143602955737664742369760117813430702396679554343762656766688261119660864381480272783650169475761349796294621377878199495910786756457149403257722831016275202727627571750604287738048509330317897108875171127806486492239999975874193042664408684968301129410704184493846303294957948010348867341491231387053552101233900207660189829267565423678704723651045589812589051785338647626392394877554105186286702933109056322162908310595935986220919185447860603802538432479388214412717844836642432883452455916265002790882601860325844201583053943642615312178298271815098245020470266827428451449216053386215403757559260414473326743562823008428679958156494034014854815361164401228658022644055689122733600577891281043503391064619853490446677010193023154106364434250608270992839773285287755363444043254314717024797860650880762690069210600110479422838342668050224202886287804453664547005611253525483502543978727323013251148896100066464096534372966231169364158816234070195015676143124889171552732759853717627724269436984312237936480231282526710955940616821813824354963339030193415413416114475986910343867649642261781074678853247652810980005766461224536040619522392431381005615878255285827924321377529821352988395306658397281089056492020043275475030028731816718019586466774249257266961758860307876213383982793393516601683678001156236936503629713109085134401512938654971211538587298207689045349362245381687026796453107237141817360819427499758545402446477613013415809816482433685206358781866899995282436395687568003987018065860059567916911083252612085764138776057913325514867531688992275858847031848830307524968945291742293638027184138526060578171206570658275546807311441166200527267995897232601588654814670203839942526482224620184063642378715012831068571741757070424410525539181645450745996812299209379256125666687117565458139236476164743021773180637642519423328098339558156959870949616110765083800690474527568676264329392123355371773327724724898812775738889570788728790927038231993364307115046393770941304100769973043131098666210148310288036061461813314116554445430870713326854581466587782209601714121267202371788912513426210697657812656935724933719690501724961840177360137491955295690474277746535474097974988574745658309989947292156784402924292268914582643002526793588680670647535912627651224908916345656141103603748871932058532812964267361778481790300217202895901852160613779428434368398335664538219630044723925495178581462231315233952992422803389578576999377299604246572300249822755158039207958896894215304563337134949453989802406476509578723640628496479106933424040005502159108161872081497812865792580122852562531696150315522117407418315150579521065957242103995363993086717990097895723728400316149240733983465065814541859364272233497720190855046785541320114319203298254906650923446914901743798141744510524087850179375439295693878800120634408444552027241037436352565123045876888277225067151171219329873939298096727331913446128761384025269912642119965459880719312909404737361961002310902752385359986959131681030444526405940894623909151061486848180442708439030695715547604740878413682482188526564025949387072649062937965159303553348700285231717034384953944744638214868015558482996594096745726022545209362229963842690191218546460550119980312497110476658674536560331919258990065688184681735537822272862222462089510866505901983221985353445513184797730419385210838284054154014838914809797913330509472918956212637593479906502074194031939707247629134631149295687258901574450009979074798879510648498909822877434484995737843814798917496426535058512205364140972106567181312857972016553003509176719210743930076248494338944807450347654745791082077412871039122238503815013620828250192858310606995312711606441445541600016197730904065416428909286621324841266813770837207676415880202208634669221538473763872185795084855750339402734007132416671245723467074184723565045233440033138592077673723499910562051232869761118929930168273079020188075122216454048201066323311469160212888184543714877691157749584671972638173238738608408902460543590379189425434444981924019032262805987526853140506708992166148380211285699122217779914430298426478167303388752810148775129076671805637398908142063849421973433913191638704204587848168128564265007635608713590805362204506339738267955963420066657328483719912529969689199697726530283484043305905828842021979691016542920616710417013453714130830197911208154543261238639794741296750865217395258325032406998623987040862363964635526589371646508796644547180313183439641760200658103753803543993495006219209387601742130415465483711151374259254383861593943964104424821397075936943516698288715130667890610254184915816338479363022982304138751115984644095890786465272482830017280555429019790780909707075614016467826250607481132603620818029089147303729470188529315187499309981356798920460155558801620781870515127722669938425666203722453517606027327613675228834866289781922943393603568220863798239900019461400495546032834460685791014837562306763344650525757149016129318915969304478967088000177592073516090308173614143277726443897170844578825280552234581291457639589009108419199253640199001418878910854137275300188639578749464884044178048535711775122695972611012378528960153913842907519003473052791403666198694834231991986671126714214116008854765161180877177285661186357709747772036005673716478142804141921625524862107282434097514486289797814192762254690223366527287634627817611895519750814286123772865654381826248218276226211651014841785981683997331206526102912414780598978519333436684488505655597930506544738587254696471508682249338170662821810399805064488858443353881596064076609965027034471496420831191201689220566803015727159326631375177208702927005746339052234180837692694380016447321801481813476573078450764753778042279011054977310136304058889240219245411516019256187590172807675308387266494709424469095679652337085953922139973182175252246298697227131140279297205891726253905616997024515744439948621124424284359808974809509524977535502255943529778859326408842822712894947729484721710181730372225360070006246405851726362050651994463246306307997729104544537797055211257378691734961783704407428751522342092921106917071807053985401901893788329633369248752863063772780842456128753710511722272704616054505250736379681371861128878167038657665545340111225209799872440110152745152574014490934925784702214871559411129256439041315221425519305693349175111285850139976028330902422602561035254017115457399173791660446769227585666006018651384919645264714343417844940704643938568011012104883093747895737470601804341488717450351285639798191033630208754854298601392141719007717014993937836812443189921295877081319713140328547689232865317633727490460733765853038474396537949596227789423475535149719432705896480906293094697403992390688424045064572694911922076915390932995670795395460070980743959221802072258674336335210071205978467681484201503637024204511552777398170898907026078912855821475492375302212752634113613664700634768203298701522479630656811326340463746327183014527519318837620317723679028043520081102061072677212375275993573968310305399951503777106868523858653611949147949874611860009684489451394986653033998130923331689332841216238186702945852623219189475316726934283717189343775948470134585126108899500131236986287950886235144251231668072319580946019587664474135047698893708063658750216537822385861294982614838870353609537528987800372125968839211771406302225886887920686655990794138096490986769821038232682325447541842572638343449644410146330503171940991737464730678151313429482962638767073251149099039020528754387427408158600999722356871291175041004979090372787972702078317205799003398975829522807205826001079180288018258990375902043186600032344806715673376052366724578242154883516748269757689177486259247700534896049201866832421842128469559217909821404922795171416007638904609735387450753000224773878609635774890900033324509723072460184421477204027138832447665992195908159319484385469424852950757385410916886647894696838647112512841161977611082381904273125999155201241386419072707074558921837497227507846840153751838050147993777930474462945559424981383636623206095212425627642345860670825041318427608952445622979315519787219593260991562817643152364861063623936595701685772084947675917737597808112578729630211395107652152877761755958458157994305630987373615983582966026839719024908966763642089914816305262829566194847721770423600531513235647429602680105588801182286614642837568934593461591049765445227972707529181191791702290997922780149183427246848109793789708275591313019438079377546908200776632646017684622198346653079596371320499286214909027440898439903424460640463473974872505776121585358209795722988237309217938312232510167080937262881125042099941140093905134287986416152473524406420604516945552980579695783523750185010346127973622114376064773458693161752898020965709630570847521704228886943603466715788759429867443025379847720502198969722171306263901593485097441876067026219682742571355476853948273380048958179420717314831320189598877823074187181304195622936412068154941252423275277797357719194825085302745740912582148965712100509687692272951907979421471883284361039569981947482280299107967884239039933514065984804061307873023361145541484993477617283665947511474917760391001773245777616094889636462954538527485310094967093294942403819174446873302953189645781633797511812505345483552181988507543353408776114412681950533573362392098268395049546097576740720710160441528761830998748217422387592575513060296717624482702359815081487595080136376847637340459937515700497298926777145682399029906924002889073831503404313157052483090104745370529872031955296558160313913594202765486386209483890679564078824052263587680005358355388457112380506539090522801720266185063013297365298790913163823708906165411484504151364050978097390816858321465515516087460594685593509114031793443008444125660563844946499446452882721777791535167519195604603604099539994181331713679940195837198772363319808317914863402405528895667065270967508976613630763551234548335966412055109225399349321094894713739237468564127985198821464499991323733043537281938317113250456582235837730692216309714406955944774438621185525370648903427550868316386144259077935316148233775703854984545705997649270780152215478842895589710231749417728366350031774042218794528305158640449775630076918273841701067868609556862429248249641693124163738811156123674940822923861044345011595654753882315085640993935242610077531107510253749481640705337721005742868588325106856492047742727924568710009743453507866655031036580269940091539777867031060433079632583244160915278680580231906770637879178974034887974860531033548582601092284928415509750767765481960201493145336491867421290777784017826891356367531619499760534863883713264377186230954468852377572111901303817686298645802671540555969079581485973822930926358083558954791952874281437524103486899564275666716418772765369195291581183317722911635381570981128885800095749546209115387724788650989693855087291177977367986561435528596988264330470379145915424143006300740127081037050714879542068630427850215918685205145931750230369660653182283545873126414702934816846630816085711219478923240660511394678341732998218143853431892991590842522099127782085706250762074275043409913709851286410400494717763974322093061911300132388444989589143172491629491534126077261599798234903668180305368926627856676654492051637173135103016897975981664808131080204621681927407506434959426067398792645256857254238242344722085631184530587627362451219818947297651686378913911272989287876082385560940451602341770568868450932214618002106695064138136104888269913883397415489781159128188938768549794913444839086510099525595163320452041403686894225332205943864155606812692241949222863714568124971565551530921465379303942707924601051832651423218847732501630726611420382060592133690800705610350516476750287342077893104363911547805354596603015357359716370185630345350519380281739134458920683539934834382918411448107301956979684877642296938308991747826258919927675648772646347253481218522676067375717749777655928672364050475596133586794695169600437626074932544017411024329397396397545265156670694113936131890594067153965812827626887777892590662051645004712154345080295658377922846086835845624120753276109536039397229110587202219197812432759034603983867305412311327375254741437990356074101690882638936542141294069755906791380463737093861716018583504524077359140426517714822522983590872792145609020943290984911866249142335755008260543126775043712936806491287619959820470074163315299186645353852932824042269677711227283539559444845005053982175114375992247723731740074700386456936405325656679019112375269793046610663221753322254010685900667198724727120903583127098847694171548264493084349696110101281006880871300225880970928595811580755230309677610454963422270949042655911539655072478919712831818956181337570739178421194180615878938643318369844324367006266483132889320344780000159929385908400376589242789475907008971233337477654526236910017924013038808643685498576995188127648407345870654587118312865179062193746078258351170464482162332423915380690869712459040863362393258988208332594338270870461441277410346308410339192904860089358386561295356389655421637439011346665325949808975551583588830922335607333966779407830906794927473684394553830401386290557663842237618900087591791342001625850069695471118269884232001825437647652722979243811632749879238811050676831261316604003057617007794505844408823754201092386077049738197779522277410082292371784173446338596186430458926339902696156948142004615513175583224180114241332323720342950603020022226287820447041215618216186172014679356441322724112074054503834898980553988066614506739548316488709636828152652192857731217034418673266096932868213564305605088474603591152825924640088210695896912473190241605825390621874727983073235823059304093694540721431911025647667572124377929257014411196996812291903168146422791286691005713078700694657473651326821582472882362399964148319479847709301210221667951988007176482582533111404312235162691383026354777049132776298232319305200614486603704294079167268565574997061992698478365393554619234743023914074701628287198972757165595350988967451002973375937941686800310567628222889923835005773977811653155273646783103185692719172219924713222174094265234029332552645673911508901596984324387755374288326483037484927860605213265541974192810285652969535975489942827771241529691327121217673579367729542648510800698091972142705655705846643259233743494008941207431233862497417400410467119403843870776951384437591411862306001659066257590268097370870046190209266797356676597637685018558983315552950023765103601485699263951735077833424891536131145187094718992470050141394507796111711736456939469004567245303880453749097554067125489314867217816112958337846582808623006129750792652791155082138131869152615804631274410008174593033405316334550437566879422740948707344395017524030847562421097908125322633497360183032382061437194328315658019477490630315270344997345169953850215187828711974510308759996844607335851844301531929801752235995743243542881000717269413453022475198465278705523202349631710320333504642658428177673070037513385014787655944711310805838143651896706899085612081325375037245493647804261464342254553831154474063280211182312352652440706162194309933162901432947769133547121543599168115155949635315604826727409270268369656503616957278381536545979527170329569463093721901655086256980291297594680533310820445492752012771010534064290788284413231998298728807547062432124290958652981915525575499141148053343836814802291752218285673908118714771908677190386217715633192058012182527886095448682870905842494552759339245591030479963701974565165046451064859315946752506755666846603098824088840789165981696268861697614229205872007158950171562455566860260973622628765905946635838883650918628004188463213840180207698722396586342717414517490780011271411706628250949590240758872113065022740290970584071941288793932401922962578844127647778305876181132021503354613634089022046989913140690583974005449543077249946433672585549840727453398131995891170770170066673028711847813722860167820835646069878989753229978857520908527614957537661613658783743296245451204648753447588435098445936574050484233192902700258152802093504075846065818955616913808634942917071471489706518411158169674860204338642246393196085267736106190179312007296430814629676273287905003650441354898536801230971392951644342698675736517008405888808117477694361374525122103342096657709817172942536302322448855480116320136515761805443883645064869964360885579274981460627899135383369913643974907798832726311676063295814124743885401873551310747320244812390791757475252916090370038688130562908111825079811709906349757760100162593235768030340235085307036128424332006533767419916858573813423663719227561788674115046953827794114954035722268225335331999390699314048247381252196859838382650508891935227015867432466866859675501515003374789266453241578923837035890255670220043477048212954435361861825526039193360819185896637916719043538406222191058365843292086351043308155019156652524115174318508330354028390708753143701108276464972084655409823651339360857417210837345586005132490988606648139687149660908892109707750347770790717852476679321384406537027544205540572748633078974406171655418878763723174420577254125899280844978911090383151678070790388312176021891481890225020844414878761683222680908564661626801562493022955421117380638526929495653114962635805662244197348160625360150063581255958695906738175434420054580583211336791819340249299960988798534633171131599850077100738217890908270427921605193966681313814258706038426810036388584939169441099975540932071388368852774790040155906480599923203138120924655850077460662511312740763905605364018016097570483328854500769461438489659313032198464716637858469771393471897946861353793147843177843436532230448729356206005017160983524808028858067513745603672208179500586447780893315152632059875024612583894778980300990641771571498998601576891941552864423212620453346275604209769744170434668579960820562783852006203583863522344237943964436774681607434575173097343360541516228487664147312713295429304891669591601676058821638734330567315726501290432111033719465966949481719753101861264966293674829465973899629594907665751532683243902150661359375046489101009512576257305611412801297619665402114961911439827920308831690234595827688088995757127849665588850512652497031598563826120942225965415090143242130880034631586777933758561360023716603761389200948744130740931022231679997779329974842812873883442580131045169864055036946341006474550639299232547390763868475366882639559058757432486129831041709939379544797140567203146070762118080547665049964689447567774679550090322675784791355801716415418597791357458266875974961857211160261024163103286131928979877023128795008053832463502888522034592448252292256904651507497855560700999668943931064963131552288970132481669641260563416060267085610014823611138550168398587605211155982865680891614927779749557307016590359755119369025575427788709519690060858867278819022065874863718226552222111138160862611244015004987927556452485189584003426232555820529903571805642430675670639925356731281765577058669079251275889973488790199368283095225229173020576006326715498039487237670278432332001352351536224999742141326494377167715297641534539320570898632650993986126976091576390948457073969404570595060883261432778870814108983391402763107910355876992537931071175325867952395430761146483044793741976196955831843406201725957850223428858971683342821359155579303401221936325642743959583197481217545160072548092447633129154869560624587649864356944788104294385381041602503647608536096159900567975754372466309458606326757888282105584692580447548398519250524488352839374644401797991833151299487396367099917213843841311082956980381472850267745020201272570168012029535231871927320653418816340285230848851331478216129045069432269374788024335390472267700639600704465056730971017514096908353564466877653139032407933855359148546552088944847269388391501013422436942481063994388944480618824443741490591738060832201593318870617194448550721260178128564706302522462040037811894505553776874687985711156037151165434449340134443999058185446618298035448774237767772123854131198341765332652644690785912398562476390503674791143016213404106767893554866968673591249511215048344564914339677663973407584698499148684500266545541334908721658131543881598225077904736557024436803114221816254240191419576612423263734559900159680420041115897226260885405119455472693120341856315152041582707750235636569326529185024338024371953160799952867717064778503228936169117358780820288789431304890280637572014630363275434812628388367125854527375404513505583695169203713128663129746893503946658132129511624406170022314307815615041014041162317091009682920944410572334230577642901032817459243632174970021642499931247108359875585535877724896672274953692210386544686399234924186566170258429479571750048862520985571537401577938164272930919247989414868333069826404778604448700380488705483845944530652029304238557927532375792246053489622440740164119500830592140418009038170515730290459173591693558077715950484639207482052281199540404983527038832658499511550844195777085067253257607453381356090338824791737636067789497178781018788108989410038880612783427145117395920122215063800036478535356790814107617631953099484284591683293810842246722965453779189020178606924549226855983029063133606424024217435612277442970546198141802270028503538227185699429141588144547853271361974098055680755087898531283722540606689211784403737326464268351088035751021720332974696754940826079086628631193297397082877852674704561307872985725762020263970586387587673872127158452085777261644053495075140387506343336707336559455392140258812183261233967501649211269208572830597970229645056237608810375154588969830624215369663630453028896183374697634097095616181445599160210780643652756563472049774358569608671798706301397656034934067464501014168119556749012401311392398789408840327997273517673557095011628992957954400838564931330289549875006055731857825008592717685051628294000575668917401863669751126018234269517768793326625248293383356256715337582577051235816135186620049609407593472987132899537607915374459512079585075527298420856759560021171672787650665212568012922109616095059760440025976690111280657005351451044197040064300951783342446975307959315382696422338661477346207711220656747171203872738390536002417299256335283180820551618358708016916896282004986701093304666640702408881769113349115284668714881826972039242465649655817650663049053276375782001385260296601007948281519804691334010846211411594687842837465697502267330862732620865540808249430382224735495076077863346663655861677485724993236284676623841174969161188671877246020011014689990490036496527348653214971412010168277890620694247372472908405793198484364135480083281612153226195003121248640732277778366907924141312142907130974969279019429122547588790724952998370522025273647501723978182146216477821131536427798516121174573366306356224347007930904332273298566771735348610092305643002807188987222417331988677491103431518309805394743818679151677652321415732737340625121838306599080804425668624951838760931197585240386072370668805903837172069178446756687294219402055110622388713262966153196732923149646566970356945105657070766641423827304791394793490372253602760260710731156819108304412554820871180153269524454608868782210065285467320263424954415499986821360864954682047636683482178200695492878070418801129920639150589821426515069346508286569217837595040183994505473149932508569275076399223644792286428827067710827518890220206314355221800888311560094818624749228549052160501179320642897253647553419752625259009928450216177771513466298546388829154569656269024817962221905636191158806648186114323682955138339422295972125984017509326894380938863314110325965064470124427302437389682995784312653222921372676902084986169679964242393687987465551981527458833570630182674089337421758398630529062716747266210920736729935269300333200724465817707758509338041017999824080136232363855848288897808875835970951646008728252571764223757462194280357483470247150376715864581058709369882320877350734743835485088527575835733330985111336945335648413060420035981968038703697979979710679794200145055453123795212716246702121484467796269244155643680813485127541302695951161594639884401572572221848372795798493702330197429322671181345829663791950246428430250766226326647885870470395537187087562834784196109134879411693467864055448133966638720677402067905187018346497057362941964183642882767244233529361457671182364613034555619951756999816908281740606232118387171658454577573545670977032211606740731713733576701923744133576698493818992315427767252303176553202684192576031682761093553619359764749045093678311132623416474071369072263705024749142979346586710380858687497633921647342546112789972607166118126872953543320596116276349213088935695091653873573588318736019310449568460885779450101798009507829322920937308512663235800457382853195904795684887613763791839613603505653392355010494613081096179201841891856740261917309505410222215517740479855365802705064942971234923195357351730704360121783569725762368446891800668731011764983348531877075094745653284294072307857902434760727571250265161338401514275768476360682486362976339315221077757276289539634937848980717886764832981030906791407272216968984715546391772966297313943211905628918657444566538643018780882320686904599017817167430691993346273584533035870809521679649822342918674419790559425455382243321308979636978045658589482962438795264465512663238906323800173504891451824895928779372054776357412109773644660161631480539037736245242327858374242862844909871332757536387506846624353911843289917295656967173253713415030148245047198603692970219944436815296930621120035050043441766522935241325505543694196483782853741473256182201982098143598656343006861613259244622727832735930471687413105601188340890535257651401743036262041628148817115509891893306566787979142209765196340480112264404987786157104921524057512017754710685129999132205592401303884709704337754199698309115334969952736596367513039194651600806102495096018164135156361738084134449331806668037391953856056656169878102900864133049400257941247638449933813666241005379405200951021478738912961752390198593198597240229938978510166104677062560452610065106977964783661734132734128750635899608330847079552643562050741440804918495596922363967382771953369566842773859183088644524701928939710338658872305708445106452801335740357823472790616566290267147744900950841079852851138104604520398905388025601381505912033225843388785088375732285798090890568872576263839788935795752665162509603803415920708186935756048204598568916372105014511583385414286836098924504696766823463603462444585276062772919991965288428528953312115569180226233666747515631616875367557462009569140491621896294443640728052320361455892785047867913829793683132271118609919580836986990209661933663836157837705571585900704663051787362700971894748357016288631831389154040334378038930915197638245581696916578791041051142739720498220534468639985733982805714024485365048697432781006819232225356068751745007553667681905474375621882401423496333267550701474673320566050937628882094353684135841387390401665916893526331972713442787647511469614953825323579242862006946397196586228524868277355966426233701828228696014988067739720951816613246465493518984332665620003920122332363308159924442062009150649364167814113113276443487939875042944928430767007848929612344468059590851491212532039547733060180487307489989384626322804213474965140668979716184896118274915978435445199429913491511552646417598795756875384572192178037067892196871790873170072115941408824342302785314389083473864013560603026250843220711402350665043998584452958052380396851367141978063426549957945314299372094693230774294453703458215541703026907424550638935209927385305339446723705240488147669039464440962200016099383182547106572235977418871372253940483430598351405765466517988229923805909302388043619345823717485918438143314959161282496514603648311886797063226473860320697531851737789074813142947423315338273162536345070358348178460085112721315330967603930779020908605315005917578455349975144861205553819893171112806651849410102768603282230318077910949937705932378085253370429681937366480576864207309396271119738770935518284034670562996691024464177389470131691037884081532210380459836350807834619947475737999751800278024477502489538394476123444295220605805762739887254597130253046479797954479529570978100306679357563486702820860566849702922436206964204437697325968187261711804650358608457525627052118158523547739569784661492994880212033096329451645972089045903014694157624570538434450709584350982254694460152576443506713882557371500859108908268631188529094505505023105452708788877913229513626865734984337456732573232546890985773508257054252284320041644371870492576678783042765507010019196231293632732167779249065353933601004412321729078322486690937351585545130759086301011030191449823980136786940118053489450974195183501581281212863747286811554745165081788035208800674976007078971783178516713353929932092560527157368982063399556259758796960940717988036875216862218904898336777506719176149458715777312854856023139050621926496723818399512912913778806333547480785790370737050302653363350085331483859718188089226140251069584955268445849010824705466814484760354511943439673881435537575921289515829225951935559979820540725383569603751138969031128692681444646065888127748712942589485120450005809344358783411476110717144537177259684497171533555918891991627059241031551204281029104335650550185400954458594550769525815602212829193320495050347684419161888225264827404168482247152509512384210242369914948448546109248154860390150964129155958948272474060085845151535160043571686771070384782181094524242001728778820651520421198138784878762923132458652172687524959085532250942062036166343477228394907065484989071336671860845822097170978000076590821223988699923353921531606858819631450955218653145969123447394077535206704776241433848581086396582737998945104554869097210954306797678788903083569800143837917462470183869202626678839920221153111019243637832247200086258444863543533371510966330788907335729433834335820124168258585574815233253481280065839739602895706004222844752174152966632582223033016553210882383086117845032970500293526411813855436229673008184395735545583815779920785549379931261123852715977533975556216385351435058438787198858415450066663846120858215940249801114046598747837646019498700051740260503071692644322247869266962675245439999747250306317655939553151326224351997218523310572724885900856745392607715071122445567613070254010586872307551387203923098039165616652448162376952937895481603051400041174978782312088545743063471274509039687922096183910459359253000782426180161469294247958199134600588641651087875795170975622416045657364609617177934018305035710585918600717648797793824238415522166421318603476936674137447109425386894508933363648653927543886831831826417670031135964966744696069893347796066370448421775556111586872505039733677619335366448082387190458775205092402246603663773355372706793187274969360053240731774649019492511871640158574661591215574808437697967083086644695012100584612759858191639637493216350822676128398902733580600173883834765841536159761073419624536035973231475823910597547053179745625076284065429461021149408365056200607206577742978892376497007141516235520611151202857794272995275613587331967826037849048125503784802883623733328688113175249915500263679255199391900484304408388125911411093696326854059587334640148141151543448688390368949921801208309388534633691720073130546930298120008840803513225336500191155078760624530819920206622563052867186141120250106497096971555081976125165172230059650363926946806939047463143408150886579938555044536399698152783780382809887364980707807082091057714030444617968613430552970368108593003914397794019131544607640965925091654773791469055135071446035973983663488249616683148425529390334234722752741812256349396172556670455853976374427246292585635503853173815689019185184975516217158468407411989858071847782860437168166818148573343157775910676688807773781206530490707080798413657891711244020395303451727669142468352462707929634561814077966633725478827978282510690450958612938762984668779534197255903400748911580382693453153294696899608418213273131459380663873754688569424986049762851284492563274841220073898838708216909974218708144632413946661675587149172439394005086574018364568693248014783416382109763578856741285024207049299154463041220767867846407969274769741941284105615136076053285820155211536675158469396127255701280871961126614016469969470586335410698023600251100723227092219714625147032525744750390258462164402735246924606177143430129530963304503455848933190450567831292952725005442739834123397711579677993680360447365559042740323879869302199806698720488887986093703366048983155761103001818446173711940998926882882510005187986733476355256980459263515158935961189807609133414914401883758997597893510242375457126354463761396703858042841130875058087853451608686646945701893954889486834218720059934570557950522013780903421561024882743326866971895833523319946843210629631078543839892134446467163193605817363850280999430693025119409005951539823928692015102368966902477313925278956037008137910567660485558622352782311086165037822658188641884317986279083733109684589835917148346181192983909155384314054737760909349062542436779874854915668373393768885626797044624817658714891479377861384868875010793853405230449655223441022028133509912525909527745252874421106235934031759672017184397126489559035678527066600496420298997307448940961122850560406767681160916880597155093452208105367572283779709448646894247168358673669714811854376895356705442989425249455060970350248361693498396605381544111598763807273664281053894698180829718071742666732138681764968788383612371905432801995692099918159438265475144498629210980015794449419020194973813237583451404309318487152628735792577756280636905717946397083900426413336390844248047478255580457287826814200331036898664348556825440669080514402680748189274209530896183581683819252585273951085485274355742189741048301994978446079234638516813903783639032380433338374180296721995014567569482607416067007056974033849314124177633315249940309013993197423181387310619844488087111823853775606140232579053406205680401447998150728431708276326342816877479534253380154922180919533819944485067467786018001333039640940546112737965091424512198032575244138435847165402581054205337678932432425153550985094739616392751800883810810226408274355356124052845791773280756622424325788329357508252496672508057156456327332484805578488436410669559170027834285443857806621125204710016551126953261958991739311801563960530709611684408753612071929190480936447177488701280306632374976031749680071065714549017917800184737352480930079645279300335792941122049474193579306831345544070922072977536261976919392240791551223915254762193278312719561128537562548898508876273098068768843543232470141610560643698833397188370752747775532098221487688119680211210368959867053401228897504848787392242919970403935155667985810751158439405901950480408236320304396629081472189864253857517659268361518119277592829141714056592160560918731247912490495839451976752421983014518349884456404461652854877617184242239299768825127890648731503970669818436188625496712446018321274643948151095026905911298386062967501449250056988557856410340098044780571837084512424260635791860454905936047751513416830719586558855739631352370817615400157999504809875532867307936441618210966878899574467950425636057450227258789390629764378789126577327747197126573589049965085362182523502718102113577786308939286306214217126763750510426547747996324557253101806056887715042851147521086295256433503315420296816962963828598363297586198665853064837420947016041438905493569867628414023654480655031612787290875629241743514153332657103433782295891683957684827113842493481486669767885334379399269645257993497086072677343647473583144119743721291751359509387647384128236813789936995718363777753929964752758683279575650246305439967886103938359104557215607039510095518875709020820225058183165908888592934590943179971595409891383290623836360408669958343066827543905430651682218337302993895029339396373088776935206170171538241307589242507707073197231893092408171499245054117117503348767472135989383810684385872035261942247256631196574377089330426094692196028254733202675345232062089206312252218303585586507780979516098133103558767983046193729513956693748608479734762954940340320426928810766044109628341479515489097845803441040259658028843768554676244171359851653691383637530581550103110638210275328317836534277395960936916611498668606191851635467955468929223886372721491538861729195146339516989395645411903475516560105504467269986484676792564801276249405937788442515838240678956768844110277416053138557437573171539713101005089100477323630686280266175039689446926023544226234212397159155982565417155414622011281030571384186740361564913303292815857318379357206095447282632425798106424310679878963763737556537539951199032075178390775548774536152733348971389444628790905856209164194841098961612114696942486340757859786149166035036024760223282307229583913976378900275362739543827992188582362132317174217452469952765570347258474682016572025037284507186571792768948095618691170035978013455622955731910823485990054535546084780558768739779359556285122274980237359757013287096196394881729611571221622161763015024345151839638217899260072868447958746148369722777728514470924733835306991565674375308443136784236326366037984260801142502583611966174879900587558937311581251858739924550628913630436634822317070004945327266606625436953562754427542716474501728768251930598596995739686455074344750104293183350332949913542579473084658992610146124079360428882759110273330989128815093725770515974748808433117700872020250099529565442604440523405037420655160726891446900490838811217335240526013808326901042063768741052038247956154183500913799528943645797264993386285149652917820537237065695222454433412931744865092794045789157941424248350875985626126955281032154910055446844431183940125730501645202002131271260817256088483355265704938596259006463163157175950916060092409683654559896489985758080520905386252559588736502719911171270410785008579297116529030206071328914807685411167525606335836110536290905689752367817794737202169843632483472569839430549358537276301331388796125436309220035937285746947668038596747852215762425902697404424608153859732594342725092247715620991703367273960100408777763412440130316665219901500481895457002794488550683883672518303584639215170040911419990216534158484016422940362613808727537354516562171841318149792561976355619482845465666536303802091841868851048242784853183951529274514753591939354743868174777454371351074035780613854664701977203952933878025600275903254143005560554258875441182229739626558435628523518624847348559931647828566457703228483258272957927148176981475382016355731144927341383265721679483085817144361711291046992260946154860795150325811910995862496602581506322016029743674600858879662707523650546558909079326014203565557973380807336390674738284133118374676971459737881065191787424700617897918685204152223943001635360126626107108492177963096482982380416447911732962214907307338053948582024530923896055706410431268035354242940878670295114472447417899323026137754978292626616952173416855616008191309085090509043035265083310402151256601989829482489555357434988578791751859163295546811188469734512469420307920103645397651960724664253531940788550971936018901326253666266107443078280580756374397353503115487329200230149110635706312979132486571757349268944300568026242239774829494024804659502865581149831979132590239339524275341293160347997165542496928688333412092463192386766805710924952036609296029856554213105881486039293383022322158322182694303425706973934930834531094169427388404687619443070538454776236090284045569164115984310788399823048790968197740499926891441418776296003858355078079402217755175616298296958884348257342312937204707922635424010598773946874036814066935582347785212718070288083701917951343956681084783235030391685888490568073113512456364160850414919091694034615346200750019347894290327175835934831870104705267994791247395879294435522912515113391240838242995972530238088681615942742304940521660065839772741337163839652441695144903713187550781260498634817615529850058118498045441783048295370782184792825609717380415186678499286218614754156267643649785757150745549961994065049297569757903665561100890090234489500420462781789085404681403621889223744072923920806277187434568659484560107381715311419548802135995764346540811206116537283450958249986420957316731102044298855027116629244013260852157697572970041348675521748724294220131579644687114908944939170418874999702412389616225371380618090665975227215061255247893665623059187659869350738925510508045712629727542316079744674119530440226771628906682064752142451336415362681239678291459682746590072222979717866448980869750435942203203622495036627972420751818756222936014854245057795480324008271823925334376829255625437281101170676250546598009261949951260967113000361018161229480132809330971507283974020215198849114836918131946504659835837025055273048929162552819753958386738896186116669616837195496668390540913106740768196013638375350205246550676032428754919965887528421955061856819798718251490239382262726911184051128323439037006687042966203291955935596491606294501339215143066822257257974583605800788665963918747609782110047277326972715758667209360604157888674259543111729937670628265668640177891401291765550603068947690480444034137432366821706959993853817781193371391805691568388581804654958386235726974215100836803932152034731501929185326981324361915266773397854017893902661425196136760203731206614243014993212008520959215473513391922671229095736419195467715834880917755116365437645187313274505602679191222939276818051784068317477036736713242531767183605127419048648199643581643744898517760239904080440056190047263200705328886208446096106867345881229608874945484353254213182016388067265417895154056493615387901428037959086115959223786509147564198822395376932148320803517982538691638038716801840519326558561957122888849712322955916598884968903372387181512449540444851163677560632104873101924149069335975275709106196352142639080419945900532313585000535781156264311890409725508568205526767699670606575449549944868104414558029661977298697589054880617664110653234523736284715132174336781082927929598550968658031436949842662757072629412156416109723433859092285128495874990813277012566306162016841830492402102869853237313905398467743720768195591481602312815262741281677640548305227497929407276257339746198524607473185950814318852503445423286509192118284398425699474670754085017084614846656285684819668410504387985603867377807296610694454293949462535598362996869932895134498853144090966330384619256131416558623044809089407687066364640597734040006637278737383858745358708412175540655405826269911272023284753063045045764782987029820504666596703480627161644238120085184278754436482040646241960584652919861208106197814798150272907214570149092505082709084241954719654445233023960355649428466958459648132625823896819738047347993480635124614972306770432004526730297367470767127985394585517670450445386840759958987110632353795658918065472932636479145935898849401021573670304188530120259949318996516788993932581016145403579267286641225829287059122875341160364910142032363179969011917332809550388868556471725841811641365948930043422813598646044736716433510623785477728467320932093567241218176419100395905570514691988517068079241818835064726068075504629805054049600041449363627279476032241913410657159654149477220856532907316435027458353893027950633632084728897210593519565959567644072799158458033802345908010429230018753336806687495431753014618763339806467354179032133068704905820339570076445779932907887755400006751486573356321468615216914891360004907843681587594681734005859995262019529908247567789805586706040048266470845302684571568641912073569087123815378244882566256788836223248801615182296363109511510057836200926557294921021957986950451637754372454641264352613243862147343257768581767161632510474925409909827712963613349389922488350570906322653396052269690097796087030891885140766493510400749839833246238275558967497005097468574067816129784109855089625627600271389019915933997893502472438352446278506935477789095471245690796168550056195019145957734928842196567796355975865440163990830573157111620004235503012672935904909203590679924350022606204709357521641994715939547036553051626111260858015229111747921063002640869642623512715267400971830960009194494969210415080480980663891890336293078310029104198934809225675797425099537156093761473824696712148360382923841013035557167713762642078524572644547893001982412525941403867212181347507207959982634333759213443849952263582835440602111521357718665836555194567128845908644299199505013662810528494628507987859798338239392872616184324556863872109652941916553196764847372849498733676276017095567772524173271483324674449270538827172541536476850606663334266246393305386446972659580541636619663140302384484006458556786568773452702903273058185322107064495917141056393254208253495663151810517887889888132732908480357881465470813696037450931364183013732643382824321635584439590477966248558378216650251904458138926108608948781159584715462235329228597659082343990747886434555081596040804319754407690862227878586133709142174224656484105799920351041358029158875321601756774317684640386330185722592628822967621102613986149889332348776367678427511169144592786644268012904508524575421482298548427252973404559911380374698316656941580649389066912808100563574898533292899975002179765408673723289176317963293983207528087078159906579659526473983764676849559611998490657648797068597360201450712339057751426929157748814404728313938161505063804495688159602709965070689126657771254197802210679838952749064457317026960089376558118568363194613444555070762229655135253859246364816527382634872334045780659863291497592517074963884200818879304743567689807485910664252576086589739304571816106506414487629231764275195205441821134854562090107479515977524967968667191997820628405816826711760237446571365936627631159870431174361778393284894992803325762464249015073237270433864323230879400710986412583123043072400848044813319377061430012966819739887505088144277650315777666575983554352578776660392635962255888236799977311694842774422959578602393331290532600197341021718178697411880927275066187104049368410552400916963511324292706845346780972010810640142212317521734399486047804870431653562152342583755234597686943237705427485407473669342793705761246119265598152407454257476705519419319574317389468257649815794948633373322531133550924838789639186176104083694724392554339271334335076359460757452105323627192725444999691072079564604535930765550204784407512609922480148507712878530476831335778935359592880250849744851166244707758917805280180123625342848855196279185943461326689452136181401178402036707424561321207340818245029335226249853952000679327830094289457981165190868267504646986336534024748916013301634468088761326609838754637470922749150345884918605793110556255956287244337551237754191586271587656743462646929055908396877802939716419396440169738306434886659714455522284123740633967290962192680150052356739790372010324933165581083364222482902590035184778570972793712215722332027479817391577854115989194572977513437911502431605108592191326617475871373213867817404957451916250640037527799933386391658653920731042228735146223242015355108046853278889841488925315304342287085802639270083026306691456800012579899696865953731140986675599244148093168325776495264743520552824829371443145035015832912115325287571633758251093798062868136531628027891881282973714623090016863367477097055379874171007129274171846986000342633105052173505941315434735068145879310880397798874336224409058031937756830762878306011574178874748845704719545264345783195769853568481265397459564142232442243271636034213219786192828547308212875873943898679454368282348344998807580795678022350416391521359922770629639217283980806651845454478981756474688918140831323860972385419869950600768070945733528513487457755182745287201742620003845409106724993883813802026471823032500983592339963724228955260624593730049143796812878817884181330774171737232126854389541334190940979567339691349478047889972034612087129637050434208950444278624712899149997128265867618421588431617326218507862521709348430910888183333083130286780101889307132718571119462658894020041178758738371729413164152430073296736383772212138392497422889646566243010020818236385202043750873354267016496807863854037344684406887161111778987506952473905824248244203278968726921093295224976154228907672120532108968205317221578985288597494963134716236132007151590505009063864711245011322942982763062073671256561938189941222696191536901305823557868426765471154570122265000638947101750614477038226958703695084128079607796271738268971012483070748155727009804303862541592439710797425013509681578166042116809886023114678397490476679494270697041589108911200613597188475752430821017172673195539901199004983915485866272958528695593318203831023385319775399694769883598376154198710002658473644883097242026249225423012968661291093547421757867124125195812460228795012704239482513568767642004377332961212004932195455270465689770615517922027588029348596885113891253361613314640004024058527997914493614850206343030780460865125313724216179281892740434621136830892572336569349777797579457191096448247959398098236387629108132859932209182616680456060990778331192138601541384609561354528083129032126461409130706405593331028209165600523638314821921404989637109037265723345087251189829628823016680503000084758367973889862683423921934344327922726197579733598814137290507653777455909846561296324335258473063627219147076304658949347483301930670242058807465318169982585215691482069621869128349167298394701242514942229601415123058819991982391188414949999195234688727441490588302475381307122936787161299819537204683357846345275842730326755503168916024212643097803088177903799825095528732635526609229220968331767082744865677327460450982073956603990962440221917152868148127509818395470761834504277149967730493492961473362095733574892069658659224641598351100638112269838106985916632744981238848831450027444958373154039177426701914238169984535735353091057829576206661135170288660820183118216591587740438037840241914862873053707526477000927857853535417292299083446853008381348364080717642719711844546281509964321144008523151451829620463798845976635483865470696600444611855200551605178440378441157601140744450775095145742433708601917175541108036604644383273921828541892906418823331951302167623742445308351375825128985036808411893265810384664212199157362511729083204330258549492558758549567529460843645892960579758134550232507166468304238336911120383356401161401258383757297200917531785036453570768140290181496541491251385870865243516239080280428586196029302133338158605668591723596762615545362032881691871948550441200059666627184329778286880336526633131050989511772845809748297504950147004703254551175880050100502194419201471546752397387858033214077763392410233646428006097998733758226850476306414971377676442285987901455956329174903353141377395580748370523045069205222235120692989057235613357094634046367454397378529198661721906716136992710043495748828392936277259050927095433884566387213195955368315137405431956440910597130208881950007940151249085153586725103806817917072839369879389572979514992076268104515744803456022948087702821439226059459541885061165575096766239989269415898711096121878123658124118110871339213762626542531332187992918946687873335146027549639242311645390969616851395158577382804976428197639879229311358686986419545360045247505885234954993487286006813580146947722205978884913724617731360806983900333355095961396191977326112829551655383252582743576132218225854270701807749814167456867096405504175452463771830282518344932845301468830094530540791962225239373782905722280755525019887838018421555634246070164346792535154140311155117894772086524595448716692946203811089612362901691295401710634387885804759455610881531623243013766197561895906071494684817726337071042181715526477231690902817417593799777323912114431233757682506003920390514135690050170765711764815627998258523156081535632412135808524392205850182900750838067965557113026926016743337061717566368450701554773226214055903746001499151366098976363505809451158352038311854571086559442663668510082302085856984293732841942402672266214521050955045611853967471242842773820783205017721354683249866370285531077714860499696685507316306674475688165890200665109615768940651755094157108058382119229060470550727190430967312026654405823809564884926972525126278926278630619776854913968443765124983046852327547475627370856460656191268380214826216675388359849792249018287707542172645961477717501168615015419105562964874684728540138520420196064607474218573845376397419327539167483082074838264067811013196754115239632059462671746097849004626544885672321045570688588356328733687065728638485005793463216149834952752000897018170839021390727705050730072871169433893794821209671380329085580761893513374987244597690355141512087100632013611034886841032592870651459913308227874740864377962400645627621351967451760652545122593112991583694109481671819976918300055677651506868772523230048901504023629220754619957057170249507829647298203576646815898496766826346222974998774625938484749119421865544997974786253155214122337968759881767524474999608842348170877974147305469538850740154952554219294512266857688154059540405101227423363021264916460111169921812899883095141437443002983832119340116127660120499763083031916278651900319971285339103823587751785038978366449715546092843341944822364415349285620843019463510956792691199913253063321517854002803093868007974603671349295250422122182773085233042524447826841241182839960373195868524200747130918088784266859606158032489993635867148291540013013561763339673440785140257702675311649225336199055627322008663427089954536170307362069043948358136997023499637327713777059731969899731651084777216670048226744103800757580571895690547972544690245158002727680289510366839945491944897407356881361124751082714231497910765223658918884080292622534280472111356643144745121679369564060362172265165717980393117713842516955490247441958132883762162142370112313721909554543366472866813884764024264009028362173058394668687690919795267640205650144567456817958913434127918035162050040333823517655640188882754419302299951399826490222544996597461372202428437981770567844511237125575984088572183856898720115354467751055419604332842792537666338004730389043485851500810472493060855871870504422095471162178075906958411968128764874534774620944417730061315646359696762494160015364919990269377380521417967015775088521969826163085101729013144649330721805211174944124398325193173212683612967417333688543988545297645693853339562176862307967787016051688484095777220551131320903296715829136433123519070304756977589376770744404461525467697679315381540889273743887160966883421241374997219460168267529298123770353370684969048202404325970384723641566436334902097589998163550089727248252460651518076365815216641351650508385504024117842768022751448503294671375660956440774269559554119292267477483761476000385082461007891200260506768083954957412898764063761600916174736840111044414532841348198287559716515466089820838780388244365684710696596332911468238256298727901988314511041744781322075576332088427759583172568868728552666063637569993841091613307745325134027782335539430976641452519898966948663824236823255550297673283405747681553758072347385221385886328344615509293692173544423230795565479031310658679437254256391219918284724485452309250126220749679169046358616938605245566180787404748498423649578675925271437806276369411126829631525298968094260948337672571818841525679036624145536142395408580023227401618984190642907073348244322757253153272545041647161154255289044559221607385064013154921802582232382303492593267623962459876333696901609334446481791946119581052100094833587433769276182420479818438598875027556935477039353809071665083438965786735647131082551239289450829256564061323113989005534964213652156733661166180702945873063189129316765003136477169703751903912602582124719982579170126982691081122376683734029024218317127672368705165847573076207967334745264691628639800170575881145173811807287354546599700869637611888913859199631009948545719156951076332902712796697890288834460199036682941458081108921354348401826580431782089005465723419560998189320447224249356447458376838336568327298483078098848133281208696409538682274531310213514214397794325189014977107747182174234803265973800389591516788812956322498602148783889424352217942272156088131253322272230726521436836096908561404012433333879058368155971224974281171807042933529905432661490996828460632286938455346535094174848725774552068922918393898502272217142163819449332964860148311960536294240432896198359376304370661406242276028984114228027010777069836816415463248815312874381897220152371992615799930081335673217552320413917683159346245326776530626388728786324082142762714537718013342311828319500073545585021519175372339622757052595322126253718884094689554692557591207079612660991341194111099820249784526496906724024328769346647822820214979158637438783762534006688656299107468068775505069578461819346929375693249774455554017074304333779366144674411885604366687262437807344002281745040885809648811138666396912122673184258233163427642356727857638771971069921098651940481726503714927970585222499992457949462905992507224090250919395470972500895543780384494476463645245984951644323481987598826458473286264842265052769716726160391636800394709454001564311898938997144285737712462788884296019955060710561680126236008732520016515551492208729529217293403905372296488540357364719854584790185579661592059319465170543052920422761791820555534145903517223034332283675556305100413478536553894151304461723689900412803541277043077772438768247488482749021530827022349828939551311071076149070281031584502839740415658027617878222564175668001711807937917717206828245557144111529117055490980366846850871476117832395551703268307001103814198295055615023416887969679032215700864364782743521109255495615103668760196739588029003012668999940288136865216034972632530591155230339759130039678794694820171791567177620519310911901859459139777327889044719394371058823521940666307565343452470925054419442429900934029915101144383243765413777239701948808741041777478058429305859950636966537671449878426763423378420428479465730667803808869277420376252872164349079921225673251674751615347593503880714809805337694265595835026494605903141211105860223917168794320135778393972076037154802027558672659562361423936998340299925895324584615337344243186779960056514952453547289907551261461943682463817062258463165792156330327267425043352879851571836634943055142992652140963487661539054504507210264048021924570074845109065295801499123090536957150225433550154940600416262956158341956085775096065358301744205723685412702972739608121563168192133178154263117024413368863089058791212002304444296133353152058835302226301575039572371381112061962689652012144819708608115298037196717206384233065013027377759195147892905474575111292648908999843894357054531872439692946794335087638021627657717860976170023762140986504151371706933406608227109373763689239994335330511418927019667834663612458891747525374742592805733819521540419298077829552448418560952543330585332839272913463097411865786442797987179345903429951120639141688927666142562210611818586305500029584839786062561762893933123092714490757140434360569482576259588722259040783983030673319641403394206635810694395138985464992468479713664961505405967671183583043336689308774332279468250816085677315243623767352681725584728474761224026599028923565231433696568680033708255476872002034013044703115326532980294103599176606621364172846525332547832817186551741650059791498537813841064550364441439589002977858345542860605315863626488719474233759673911712257898928883503783980663771416353177762499399795138963911725609884656722450108557332585092572828284799459640189713748403046159490886259974538232258316348724157758079331531915344651827480338314480735004422286663296633100343606216049710649663331565666555384761185342242914691672397697238710053769531979150834350847229732574115619324638651635384820209999616557225407806116455858699168126893698464067521605437505435826846125785660320165447695246522146859132377091514256165472967525390654693087960058206114567927626796217537732473010080729220473745725455549908314953733160748446387241294662758410440189183798331514156780483993514113661088570492142679776380651518927184742078928607554220965987387931682286642785202286080734555179060547101205049078846496828078300443941531419996131611599885970674636098166379885378591670280932355991099659662738205872858437544620052514334011343350024152366817174522596535235803614933981273279989468223200468213901497606368931461991075651757129982565532255134500976433229722635795710289104312564852610011509153427827530687829402742776003199524535942549754264683445319309116684727590086355213984010738521675154615315369848947770864848410376616091899696044765636642615689186790388240166072796801104833884060723872142299871785939086616476127397626409042450385873695197825562538290822628417771713548504790004412135475815832776281074399580219286508249346986076589902794875029368658330248444021870534163368363474489762384274928806737126434781703522362990822274818240235866181610349426941103288573688659816145346481835638652351442900343503761062704900278623317279149129481053406842268492073835256431840507070547643709406466074923715161551754547345064682495914455160266833460983082752200057987793733546930085555602539750281093489360897658835044486910680093580411376019980931407856194210429084227912555046390073559916246104680353059067920746051584948227888649901763959738318080809679364773869115984393649887410973967375153135072272565233066143183718825755718286102459099198378175471976001738900742896052361305706479115762404942790002306168577342478299365229693717951569022744522754151521453510656002144085797877591601825509602274547751332067879593106951471529559725411091006419197845768763344888199839545676142527208673201550376531885721265564426944187561667372936398810412743434323139735828976875983211358695516027839141781720279298521978735956517957732934963491636057062167807370566730718520176892259991776377240630321303032697118763106437271795748351597728899684133149305360336495367755400292752269862551808868878518008840955989180757050938051974572453605698074311053699796411965284894663442292590387965982259265271123558630589970775553877004166807756347959880901754314858566694501607430624482381326950131193813849026928776251806675082736053709563728868686565555240527276618626615052343036477635078469959094003228095185282071165806900735944155765811778182916241695219116492528016991633087643609740550400384663557962721308945277761580104282543924749833552087914820630962642858392800774822152716658618253727330851243657357681314185150259614528261838421089857501567960879309469234400950556151818218886545444330866323822440949244062988773274874941772491389518500289272082982060182239599696017533697736257730655066559651586289879746765058954403798674389463184587227782385632791409132642898822128853086965778267089117284862038400405871047150098437231764014473629882098440028257833503302122045006816540003918676222924028448623611114069387589298389375288824787704190539945808891903050665701711169759258981477865005831061118186890090803632825760503589922801563444991883254698598027417153825702769523060843856747429372815044013498776442187645490598324822396756175482216802570945916667071944229362164690235262944276885255179793362866912059917432980045648534916630510603807105935006844498969440704700449610852368011577777941347604321040129360056218714738543190720587904205221946003122073196460253187835099545630088181894551043847412219663385908426868723986167239799045480739612428907099027278370241753498301929308602482110785451183323064210062735667129122138776941236362715967001117092427248350130607965340076054894752999233552914797000712111201712964188280052563341739762571270982897325949425778421220981242274118566581679865658616848364249134662042387839686616826594411920340518819373637690499869006709690633105237354795032261321195571288809437370847667048082795098591359750613316966147897506211209654842811406535473127598195869628204980598660140288225666293810089829545858786967688044876340654067087654389671553682896553292810389318168492423708449250105326875331682625816504463599054926325282548471119687234904229715070224116061196358952929322546789768664375679278260122443161606655911702669790644216575908798870203957342957415831068381522490596177697633240189043692611114713347230451537164371293315949783289680112820971905285223969432726015950658085961918111335648588360413725448343982827268518702631846620017448862052519190045187536546609960325153498425984673201794249247598625480015252931682126824091084368763735999321097271272712671795624177229479653810535937468896683834259737687694210411114526255467754007878541460675915888742849697486729568767938875915621657843810353324890213217028142647441103006248332102547142477864705954451066730323565060749686561366735019716214133898494757139191733299263494086806676669527145272179088678354580335566311257582650763837185870119152328689219904423015941277038067964196129787454677078305284553805274352914650673022548331351691265643357973895359083860660311430975495446949450858414262894944938591573700613236069815327780909966623889756596650649180833710186652777305541762066442767144212190358326087903147898376722631912163230557977893637157101619111343308333958838151003138624179895339077644313021623088905507784093960401062437496081204778560232609745452235138066405961723886413001353555143902596735464309670096065377600759282010174933084091295418382097876548935791942550407698752352217638094252584286735619678954854350674200654026067958317243355957923891373212718462972010645053800452522005765442294899555914912807455375219873148411089808045269830569636025350389945428056003282132349006106059317353841039264111703810471520842152513176138497356252690633712265913953086378139885471923143603213740101689175077942870317000974366214168075152599838218251402215964686763707449117677635435910138266841761994021101716035653279557133101941156457542540720684267849692584012821802417925155181357126459410652058189277520747194551748371638083031337072883377255502582932499943037119616348309782943710802102936972794477645260865673951237541495390755027601270157084437471792530467077232388094530658175631917222367934674039886870994689469244908437008963769195971854131356152062778904482892164208575817697510340618305306513159235277382046628854511314246619143994899125073431531996043508427048936465315414768659122318572449333781754691047431766307711800856439588266931997798381319335186139295674233293913309071487322503673272995242756449235542240491825386329357903768467458205142922361561024251437228413268678122080574048999765655930708779890634260659141728668017470352258377117182783127481082832048825299491596657181635496424721687469583170522713413382021234892089429297046298636298494793777128482906195565275163412866272780272484529118411678950550779177680693271389196309553414104013646510583102592550756757264260331030746197674122233742314722787658546973013981142513163320794181371083779089747058620720046547220332910056039602120796016036314898253941828609890876397537061252155888012021132979157243311824824322972763109507861667038388479484955380708267104276692596438721454858791809783459489556421152222749897895781797212872855383683666191004555467000880028303788591949990229762135044483491219572652114015345137428589772096320910823118548045279468841755356274756582686926967412184333557272551379582257647350973965084101841938587246248079490487793069826458121658368761710975889348715236855379676777787073449050212314948082431041830466707644629292358591552174062830613775907974204886270887398104757220751288750226042064907891527593345736170273137003104663359478406689465664466841667312121226598087446158649762916318341010052434053117462125569986021132626219009787111588532391870403195982542087660499227805596552496129487285247041467024821689711422234225168649130174314524883126270114366977352997987574309188511424721741573843191760662042910585591762733886733334291973202241798868359237138741191306159774222614389616669430565890267352831660549189229741495602434482580614343780258380236078851791840446236350638461275732365059520072884669014308212646510299826121341036209856079161863676958674480289311065854169179119866452337348920976946834504843174698038435178473827055581379791946829234286551117736344516052576125400000338627531371323242887670796383025577342789172611535767209435128330444711541965722662609556982332748364840106602738887740529048650057732946872539509715049100256645767887272476225861314840118434777669703814660861911318220865458434681447025285234624171542726852981338705091830055186196484984647461092230407118838657327467410254875138026451684495251387304526753147581458740145122433279216586907703988868917416992353111216191295782461927342452173278484773457355603045953917044850261895425055698361550506133883243915485831324871259269808149813278016397648216364726531707129499480027520898823661491346976157706043703590790216476635909845959353951385511861229014285349023473802253667918889825334378071034434012502139118504717058893608193070928249257567112878475396932921524136017229887268769343683955774294855889481036909828984186196232026178827813309627537052916090576399225866842970692465146690601982450773850034091572659322605475897441057656626558369067814427109231055158988839849053193775352951168678833367074626782074083024043351748440889862619959525032081329819571942193056928041205051540779818279231250593990849433272400580934757736215739259671236780239990555924050474703520862730716550307442008272233505688093036552439258289122736293406637732911115419724944975473172853781040616397519421797094650243335172541695856944916420260918829139620434161366016484959169937437823689244487091489256670161633026497535966858266219159860722921125758968210798212963367467506298616315265446345914036247846919882417266712090244924399646737644368230760136430269036564612912420862449805300228142997693776169549270341501517960783098785680505488846138670281557448224116719386532930052709672252578431260273375266919073709345918225117142582954044955404345682449174274183227069811539809251367184400655545649547137474145657995181534938336191220293364778947649090571578158398389551270459853077291588088647313306033734571703175736963081737819987516433806479733213192790031067727181273776989631617713320131141156557725816251964712050157305734823407846121023082941542701508628021734449724839323642840011762024643818088928676359605552281365955959211763377577584088896655041994956528620823239845903880688761713717059432072070779695709086884265527854212163721015922066653825699756785653366687309256374196093328604450886055967080486595621589476108844475899771408869164797572839792453351704954962121683170167472503580081882499026814313716968570664770635827003114766997636099854941985278369574088002388829162901911678520311091070292878069979314272917758864263586380014948362681910860849262712449660447251030298299289691444061940387461928441756789279808762242473914544045032096483622796605518532211563739643585277396573471664509026812680971418756344758743128424329516018714371110384529038092816944798342715647052570410770771526379224945781182807991530497481996451279773201874644477922730119403849264963326378742654135920568123429708231176767131629023455624122093653423083545067010772324913346564647769952976972109324563150597122899558667594001383172918193423061610068697865882021261168182264719434023663300028879971124240696731472618582708853714366086936522038052034114785072048111765041441169052800396955059316285094676919261536727154393115291851861813145171418649188659002561351963984413476622541158019063327704533810244574434925325650006241476352290501117287003732607295643341487040593397177729287143856948060572260030167516232900362561270191829039218033470405340509601473038940862632880598252287525938340483175416429693539075194403901425887130276346203943933366062688538123070440056644791182802120952981383560963179432466187283570857058946424021577984783319190952879822337562697933414823521581602127733315256598663833975790322806248380368362623514646438986615154548557758760750360919206378406224809587600841777315153280633537974803075782494665721593347473558353088047267325342098934472146796735918598856550844825393854667335337593903861005372734450712089353137287470596537743111606030009250967600463055594713020344864032768588101300830620473350572020191223698532905597191035906827267599199112491674384934983998782140136826857338835735610907089502558013894393881616894367192029976568361104492459730658073747193245584180626633514978310348207624755162886406862829681361156363623258899483152266086410966002257923201599980364346400554862508450410509851102950208930563035787084576007009460541984299541430061476027890903792213169727992670060229273959559550024310945514879961465729643534449146281235788954875329050122597310078850919009592101301588622523310561194544036012555654625660281060798492314948252804469127740117871805747782248502780657511071262623567686599721037884069005174781534433998792329365110784402951691461830890664858627345011891790613215356007212576508733130559153416127470829836019649265675636286059790631113776257613171181538192288935623782735431625206251231634988243649274977709912522614020308483612782367937834606588401934428534480802746641052490732333087056709378408703508834426361990535426786672364656581445144850301150463483466817717350714772031700933370811099040259609443556654354762230427709862446359570697569856971635426622258796043137220493008232799268934612456978763160288970374992603409107000939142941645422662072212572255258535989463126755004663468811090770067454512644518511733031027554994342557898216739788522934721723949536040890873852648591744385521005295161659656110208736302216614942421430144302466581124253935735239616289415194329483316467088018713301814422476225176904777511062692317939237676655959974612674844350407117200819379226096165712383539930856246862198473312203819516895328654758683849808435028685738694806646304747732355547368580877851762210453298859746871954734437815024915817731668864357496271176660293085625025698642382669743119779536088088312133943747116858739292763411311641691841683580464696223857450202500985937268588141051179119526113821135712332651050856403138054254085645249927847464122194273084718621520558403721178572546242243285617544799097258479105258132744549693099303839152123159965488218395142163168802597926553805825943029247372868711330877580781829214231167235050977725004050883357123108071971599653428204603219016790058830319425307887877600383920435738192589393909953890445477877167838405430196890939411564054572350020584382952181974811271318669504006380568757376869016429632893506102713489477710890132812409151434523930367139383222999279287799729214599708506965835373260585046237204182542682766237036766696474133468607707244872720980267696704031996020174958584870760321177251352772612537388941047430195913484506765124135041257110011751340395375526192792299798546114079784111873720506569895146365726565607346504182346221071115225484302667902137437276794392350332005961605756514696985398039471496612470924046260045079614498732297610362475118623727991042644254275609375547856208222331416262626735736434459755437051792101408126059903867053786610785011165514483767673473079708591434639784032392572075157007281464565176451481130693668505650638042559344301854903804792359350491784460717096069087279012010067422061957074145734365908289127964421650556822852219449928648253980789584960078928770716541856198080295671427722105885660103931748266222719172475284956404997794338881461104980213672760497781807997611380543661542363594106244159629552911486093463485127005368552248425118797637944975879330690434386906826643021550303024492478226571244988602227280550294075890328529865345353987915883107245979718831637782607889312716256441762107428782049660796283777351167122260051105052074620954201611189447409223495547166459472896326764993311861750680513147662684185156009355335439762561363764166728924013368750115466853324221424233037038494364686100066445260056291837353916483275736589969023365496446572782116766250666217616568387984163855292583850688442660558622179198978752932871618829016917937998530647102361254389308249310024045723227379297328287969614473486690309798691386453715837198286342384001960761710417268558610828966195547540280936564927699641768016970744446587109876495230586939509444319508077234800406311361730249662466395102955002208488655795827686991419326141418392793633955940521932541146274057051280106883235810494380154686156067767927332323183517238489960117035088094110819135685129803907892516246779076290359425927083701076514452533082436173136318388721672658223410161539674857028204588494185638295599440697994590008812617030495623690076792591375760213676239871804973154738678755476416715787635362653173190308846525143096171249562884314167820553432236883723578261194940166677501716991480049175890810886705312241178547055324255813572841593833245343933836563162414836180880708045593249149765100786976383618492222595116418995850748097569735423723551651329015270864206722799332284323909254528936747829621772553568509790975157914586463393397472863335129129898278456171079014057512152074762360837015524639361862961026506879453582094625826272816349912663179966506868197132177329189235949430670567214893659744836432248830953663393783261664161152787559556327058310311132105651968665617795356732327307858983381890951603476650628244329646130344170991869239695197597604111873958254958920215248675841623816465462245745667688906873833910775774239078091476381458527133883300463244295360896173686153459030386659757060374702117897345382362689980777531845601698028847928948736401627142914495078514312355545088198879891138460678251517870872479545364047497827223591577545944816683251270189482191622064245811705160313067083453737831349620257300667867620836960923348946871163866771045145022382753005656928525126319564619561200536342038267577709845783324593873947672960748975816723026802894330297592197302170772933094931765084888341403482551472385921907889161367982827189354933293177645846303524091042292923529203392477494600807759451211149577829042488951074459890516993552763853810883329413487316450366797561857595752328788876924780922869812841169480234509043532985156021871610646548135383451416630968273372953790796775645517785858383408200714862533009754169153478994452364372426061019965025005720209306307762108153860006096327040747552448102997307672392313696421844661430545997074939834966383873782192418302462859207414248094781961835381834786599077197860246838214174418599434121074734929755658280834436331171133232769457937030898868844325518430256490112126425749634431108814712590884288197771500182826713784704752613105325795164800890479428305660474030820014256863938342127052140899495155200366830028608467830511664161097347455295543714410071600936469627938296037134736911219173149492922339477073387568235144146388628440727320420040486044506142184000004709688270865866416621666118950868493162426485772791369321807245406884107341149003105478712089458900740404512479581642849687530049151302787871038437770452486884177591660202414804668561875668917285529183458623771738102449911348818861593484873608026389516828214233734404203996070148918646519161668224162383774590388778792482584161460448260196357832387902152418514242838906706778705281926170874249718501993780643717149399603865074334222119309549234144632465211588503293989837557442782014107146058658422481013642695539552409020283435813015879032037056767596325043071918208636446432145001859794047859616208041386738725593765925995219402415970836460774040174982658548423699838697925701638144611390864843589113806494957602494800050458769569837155206860379001554071490203885964484772785917327245610069619633138299637243903938254669079126872722650099970824321693558155033384024050312540158629992768167304090736607471164134956397790114650412501701942678462944355671815185019273537059480822617592073072717038871077722102239002881075353838361595216374139988169168212959150932572985773465234462307190159628724176122387084188666483473806268812756672503589067191181705657023924970001125248783386484009012349828733967291113432393775135851134232168565784750222826033210176447896825052500594615563652297515125866737147141584322847199563121906436530491138163782969561237624140710838281045539584745895764310249347393724164353902099874726681967538228302235930960325708935648707785032326444085388584285891286272910430141630034544387306898838094335776023654581852316088271606807203521964616118752943214642707910683052389425820207006122695537397227301775621184201375745132215864263103770472692691688632376433223012831172986826466784657650964519100890179220879336035266674717466422722056051078564281994516801927291259859208727354690718529008953697477660879288054159578747756678380225969237967269555245006616772325950075395692717018578177548069643167844502745927592955072905038139607247164500500713109686766001133165016924348347937254202261787008374624475923295698060822322263552709107964246047618633290012579720521671107657178489430070476295709614123449437726069213690837736726115208787928173335550502430696987078291790760697271314160425034614994085737748182962962847277223465913368756572459953681939537511219905924875164991196793531139825944470789307678597167134029103672516085315512389719403487316886039087598242661071442609156814733751266008163247748402306968787825990795313338031938455064008517551388216478909302403201056252957204122234511944157454269961392008042394058193238456127141501753472386065588099229366710470243421932831621898410001450156860728892103441929044530398947961861864500545092400117937374315342591874949132462580782887925088926266718169264846251407054822098747646170823511944210910660000336630112118221386020702292628904259353272171682431409589290295485967500079932639907964252514794369427608277248246129718736596070272170743808473793401287057672287088233426836230214655345109687921578879697199882444335327281232032899269532288590313480604456681815623041264467298433322143050084146629606991644590410804650075592807815847873757682451900057529854698454859775742946921785764111909785317936993757801404519475338320544822754550602864075487146252348984260034477223912711369528707686697494137945881273045174986355096469149575515717507695658882291458928422495113850454885954740219953619861130032648335603274486262239038961244878156402763071122458752010901776586261813428397864787143406678044587531417066543085170945164475825261711150478204160821013262649795467643271547536593620649648100173096043895483745197901708780529860563611382585457398903821099698640217312058729525653735817937989502131293583691840310387828117382785889878150338549149010433761360642996475411405376554967338656383028834580083728685126218525713441627091977698227950201448752730299540575409595263454878710489582585817194320114651768983550737062054354576865337767590364539121501604544606706616914740555527554968251136089491716376741835644475528361763932462094208562632214957159031947169891827556211911092494690396194031199993285520483644111933805947393291501115151603006733970016666579828631004856623509155127948315933974828212720603013496539107581867987015167366656689525649071567364711426436789285953848849022106727305964702150026218878489188403399021408002919629036435639123499530542673366418692028401086994035644644844300093801182324286435756618792592718892527206761151091019408464488564304974212679071861064026315732325694089705215544032929716445264093078047832220637350336684023437840090132472268586443353759950337795140137462806567105442439939730470945850650117350143740777829638769403023142530442923344162683024468922538976501155005566547016681352306071465314601519263002295647730450365393165641183031010489191809508247260191917453427605485666364709173441127225339068094433210137858913145570399217635373261076793870890671100251105110900967832380497014831379940691294055655953319896202705572405178072634495292560145914664103331088569342577647092946940905477443642022049077721529137437598721136941108557774636184701714728355738221526463191972346636940761906182826851574958252812409795119455762458182431885229490780795775497237528145841332264974017601654246270183331653836863452030900857639312960182181990401810788663392651879913025977197880322321482263985887529717099659538238050088670599129240963867859128047359610705666816824557343100573785012447433012014849670442270754936244087472675962177691266045190570053397098915689818727991426773117282060100355983026258526386388129058302070445099940772411125286307044602969646457514714499357063357321885547547683615973869755699411083976793607079437210529800243481759259149715062679216882082186284079544840974143744453169757689415004042188537469344775669777833047679696765978216123973997075613379741222835164056447766910734689088361085053932682376935412930709023731520170846430203831179770561106373631087223559028967962945125216977955848776842525163369020654171486541939759961497485734176370110966815391670900400814081305771217861582962585930676141626115592390495882905700480393254361197609611511071885409834925175761064783436327323685065937002498359449145507529709685232514375134848659644508626456877060107690774107721892647791512021427544200490590014846018481114607072133538332121462834840956149588748427323280997739791362617175745705534583587093335559022217792979032958937084231326340091445268308484526334756216753420636002314642044690477479139785983563288007983705410204116692013413532317081041534931275195501486560552805022874282698306029199223908544701410859998303483340485497347340037004177989092837336462880519053829228662351617389893440319178478942939738383883261947107971641720902256727712916701724251201742961480430574279969040688364750593973870738598930062883301358854328423888252589177798521535704647081571903957841308007343280348405561015093394142288357442332652886015071289615635777020968470764534665611725288799039952403533464291463983131840235679054252264985888857967080244459671958275895684221795323270004751394553801167725467906153105786618504244402179938502527206294027940726570703227581128406487978628113742882029364304383771847805962541409060058944199747383422984932101786496781315268499202234171856396980963535547038380775104837918500885438160317896146925995047637178269086516845457376136287375102166727017650600596512567840422673788712786043369085663347790150191231061007762690814689363188295004333220803409780655959604848932148502180292731824543423700292325816500336720391344872667181560126289168960756028060815342792624677289193421866085931840718044385244521920995027502724663875860807079007547733434705896143322472244923995868859840087949381311500485588665176861307287233692307864973883278147955340229992456259512421967008159796887575557513193832859779806884715529315304020869610438659786470880358097387861512783519173853515637202465228290823591714787583604993692068011412353930266804989759164060687824567841520148619801620043363602674755064546733376789769982213056161383264036345575472619687976933719930740672507843870393007019512541766326930814586535777559386737781963224648330018511625824432489699922579476229076544036813189337973457148683494922782986865529669990232564173211569914937727120261129837382544090360638814337879495099284086304354302690725384929848246555115059212341109251316005390949941478135637822342185587702675741915755136262483796583511690326059166470502558143030190886170072787633549635966422475876360337211524284845636609576740588667361582891295687898980478388453521736214080139990401077994996815496555550384128385513810783784484004054961253684684370097294062801014708213043862954553281163630236939838509784640787097643753862063331004062885125261881093729534046021691169512712195972510102042174363864902518917413710788062791520501922902076100606683117157652967124754183695054001804341107345470269866616972690264908355990801798045223135029192333590247138698134459699673701095216559292764180530690711815185014662971745753731998815668807235607331124561058893703154253564830658352576067414997634871007361556430233721740017738543216802350775679204250574881520442865892794761983695920730918473950597318900813326705741347708828853255538952759295529973296078804741205212886462375313129706380822697577500055681774645055334718427662070005449493046447755398422022379981410355331805546337977514786523132643548213370938468390102160678295975634770306300578278492192569176056201464831827129734819645149577863249072440863035972838570519465758376811787791339645845237651289039523690716237281360199276889480201757522676054692746580176075399033893612724453092407692809855242875485205085456182756042791142018904110365732144283037751237042932969712681080774587634177693265594452353031491059806572071062187800524241203055852612304664437282582007687224846160136525009375359781554703489216773593903396476610352132929712479442295921247537388870666999595500206417196505191475131860245064430354837639964408557455074946990357420835286064849345340576676538528625043567184600051295550806646461758877352153353636245254313811895926061929737763279444664918915428172247802156906534861991381212886213572388185287958774830906130910054106184526695956210847484342494825580912612914252997870907478714520645797231135265670975575117630608051718291531502497566071695905976941152575183426983054970825731967385821004399850054984506390416176868147590255748689905079696476125639063361480188027339649810151987042004520606017342387252364297618734094727138402653849367326012210399489768815956161026886073251730801138313172998020352816395237091228508026679822618985646714147693860949811147021296957697234181969544855880362039162729350267588927719453475658227183999719195952722286411525614519403216777723124538230085543250680893585818361343151016219672928453349087591519270806852107450939322576604400061240791711519545049548295454221194013057541169014984748779295831340852711316152612437248272189716560240478773832393066036917101803082325163274626932083923214204679864968782161117958048380412525054735756102962991409771330465200871754750141026505165434316064192366246986609821165907983914343126744315599379356978665250723547823240837993659091048521224309885219050832610343565247892165649253051119279551919614491357964004169788796403948541632101345691129819387589879163031775214634633383204746446291300219512407858754160836268513340264208608574929860118206140986730896152287506768713702389370370006501894697560232136944617862024979404409772463181698444666083920334201159337453773378992553929388602444463930241327572304342293405797825457794408602476210070770311435343532350771626057537766309878591868262959475215125739853273858185681403910746289186695955886673188690873250343586863854759082225998126978432171015890612901024364660576100774696621688388382275570070604379224780507502482176108150588361057250385447677159011103501507500946180448454481638324409890203504175739826753054643236010227509469300697054302035675133285194015602005946519875517730445715919176747650112597269096542695549780629269357162624145898416110069103699934421268999846797491715613321340197663537861989526227267214838813043691610969772111322814406527753248510223019007427165346424012437286951462998877078959988617730375204462951631404322382325833638105794321315542375977772618833769497065761278476213661998541988008220181825232559142340222213278694220260669496544768156052899299495707822176672117988862302437328035882318062095607341017149017868188668652560220961891375945076483764413906201313128976537437794127307144909412835101410555888348805609243265679777254972986192434626842466311068054603298179214779949583418618398460621539219989256196728963217492127761465463659493758493900035090937580683526573023235749517792557802484517775058010613481035897549980074441888841713834307105454910827144721981146587487707998503794006586309843567432257055212157284656632608806779381070320481155090999746632085227074692045989425157423120129441173302315315447160190453250070680135816780950606900737621868140437207349639653518538492938363311834982407316069164714392497930725730374731094008752916336266563430431883294824296332883200621148297102748894977228158345616449266700443116399464943586672290355378317980316463141052000480520250949725717274423673629603800320180093501100356100051039095325535420681482524056804716339312346782330083860227336933933697139388182600838089635581774158361260920022679125967399792845889045138811451247494396071233757582500580537404273423160174517432894663249510140016760554540305045812262335579806701778425377699913299307870147685886025947070080946766588011222019067044594999462121229455160549225091223076729033574737258874274758185701169926141058192926260125580324274508976410053928283204037778165759217189066497191278384960914853073029061017148770376271863131121560006255724533176878059898470488735413175950743852898654093639462001718525182441865757391403074489107478913314534981254438604748155082863062370111151369096138899829643428227134146156007779229386942755767373156924714545153800716916481381925994376849596207070795624406633484561315190613546849552069994746890513643135664686389103447358629693593745049950895436164785569033247121678504471555345016782145481511133469671814297078310970694913478537392915466627373088477745371018002750694077794329085319792071213260632289743157208774843626848349229633843732115288352699666721797864616912269123152355854711900330775141698757378452712739437276137088011397967219092617937310681098113816053372558721696639025734023745495122181848642181034444522269793565336842970573182099682466317978987137631884930908967121388018938973840862093361056411572450690688841822279226386275103806117196655767256163324823943825573642003264174099855917908306753215355916292123317902275052643389197177624474845252804130783671244131653931889684869529545529935181133966450790709134965454725151400870587774454897924076291662550068441049509379374690485458276280811645583524126662738082248152041655797875001738455417664943388346929311918843990018015807895775607544361714237935498058324376987863373660749536936008528263307681296875483705571559861326129655398778116604795098382951767754850123456193240748211029526389852165303512601150067309987400287544023655445368182659130260955840685382233750001768446524025669256729175404677416320802295575891602416446429923930680267631094921493344030066609503912230571342658135811614300866330181792073860518570129301661390881116107035532883754128518043069871597354844592257754449182211048175830312194102425097947447794465748375503836565533627417434997455829713197112667956663445060059280495393536556853045675389013577415857975861622947071375619408964054695923617273323265328292903715047119485205054941280378649831522970595068698188072271805667586391147929489930051498947151157112716451524996543873325976599032732967733741923454086163163714098359910538131759529049410321675613504201902077438577460939162394153651033259067413820467752760166802535428067654989383549310779472593413730956319129733369416964085705280297527471142786421700860037101759895008740110533253731396431455269519608097871104080514311833332695740267263957253538534999919964561852393369754294830083251358496781775384635758491478278832227048155781722668080058944575994249522364922060226155599891778865156795764985961426661223425327127831217432978388889663197905464905022147024089071454799082098116587771750839954771308268745944921981614067162998668254217926917570355625360415923857345476421220956217809342589819433104000924079145710473809960229314300555671881178098024218388912770779631028327699336984181659260221411575519947470221619451550645902253546508066205799664002292648254001526518475242915339682696332343852495786808489400619312082508162098261916743390703592090856757681090864039581485290870847049700570566568733628288506196462796239465278390502787619026292491555862985720899607832319124735503632953642228454842015518687856795309227815098174013888011013782854199726469931017033984460826441344471687165350562498575662175402557003657265417265553307169443858873792110353277965164765446153891009215488039770622246269582092012930213827719041027415752390877972788623692542449849855285971973040100622349188875450659382492260951374632716788373129003956071420357471470560639261792459161269496887353591935728301873810802780565851949662650280577736708105207567606418837744234411313000066607869518133780584814949604443772904009612581459781262338218520762113339993009406275513725404201813271075330522138769666490157465403306162623925070242922259222499872801803317868057177934746941794819514456254092681751151540778165683403507373008158112231483150476260468979442934460912029939323594463326003404421547733606557183143827884285230744612481669488663971039140491376062728903568175673240892947252401440496174251040907893537422592986223317318137013171115696745881036401214640312337971946645916410333418866663785470796037789281029257278250662731824482880958243382511348415342521729215768603685981834221472821385028959143467147244575238701467324098991185585491531535546260667959469169267196215373793068532908896747897135010433994110897812210433751535387454378024169877223600807384324776818512494291637718351388638990896670605906021632999451704376731406219126195392335139505068716273552164232892673529853314943937739831882206883090864017825007736662929307918111369517180461761954835812787220228503236801533357377948257311704791235029638130829803557491579845204818746668150294208221360503227585499949690620354934880684327083222540531300893246468818507509871765921085869102300863821312636806722712390127286312003268593314088462602888996313776776718978562448642370135881376089134108666328025500120778018723412443558884972141731467697129915878876461305896897382064265187275602575551658916033265971090306555279956519088195076615144238784007500673041681650638182667794498767435520897920898538271422015775604044896213193937845273886617231232915095798105945844169693908294544462144943086368397098864331917006757307516733372802105736548480293311567662423830203790477113345678305697784201649931307600377840245786093763745408800450711733482917276334021982439933993935511261139729281411885240792361498662369349641913542729463235313011613409308173618755751833287837680651702678788104167368096929720499778498584048987465382614210884708890032542421718851166409575233922240911337949998894100502761024316794428100875621351023347034304669768987178347032091459183676340933737101996760412098819575329393887077606139817597565856276817173083491089644399837062492420790577796131627718714681425280908200952649612670249617752244534512426266183372290606564473751975618760288516546983693436494782396381031458236385058106417551888587186678346209967361192021722042890015054910790033290183802850933889871723397161375869216056095150231978534988357742297340083116477471184703202998346383053767206660570005758904423318415987447210547045725928189508800875763519977167144395082439002537940454881056867329225433389565624923353535108720467150333782857506716536965461143271673430370152204367353998709421445625844350009096464104259425930041709506025985890289915314253313281398215220341980065033063445913647384305775844097451042160635689721349201886875392043681786892456837846079329553238963276352851359323153353155333799114101256067818703190445593939936736992429592384769780068648379074452321466467818540312167729802002210395206281299375235263422745393305883289524751203247423064359339809806497571731803428987269409903402240247605767525533292346477676957420913362707629985595224833973770897662099192502903824715019311443693167662240481669717213961209216724858024943464673835971896138585928211793096114056008956298043597714173504670169019006044538913554282345410989719275095031988827211294803026413479636494585103881058296400668531825979093247161731681611952607926086952733504562444092042399279794443738985362683455255111894036443509766892208307634466915946745070275473969606988272358786960282317862845596822425961796632705385957236055717224747710165151583513904375462406078280820885131657614340157671844690237354343465483302451883994461989437823091610092402428099251037739374226555571039152356253542741720593304680581245627782685568330152692600131794482878929050218868646669485899984320884816713995018647871804975194047542607671912108274577250808645136387016004880815906792996836505483372873195570238545529387167807028410293421965983214170489570274717190313746315007361767328305937076574606508475077223091513962240413922370990033925338436896185535263324100961068231297339264305204025639244211574476117303194910360037490698533174172633580090708026439961252142071923400856498888857227621334192750562401627579501135123073352501656990106955292602891316107309235335142667331016191977488118592487494616220756058895503612815508561262179932192698560406193179586632650926641998733696303565093149604959307293127326764434197174871849930140586279513113718126255149225388079391166421389064739889052075513991085828082403455208139112991117615808734062884087640691861738577618004185449114912132212522352346961642469289265275054310368051198090495119810364814879252582046626282574786421448385364417266400706925256644256377298848360076728408587844082738189951359837211936362688997560703768781088751013261902500606622980043633800234392417476226368813570122424289375328145522165265526691344005059445260942649064337196781691491468965020657522881825274000001786992887770512139147245035788452004349085438230528608601134345071572036036423191458625036104601535331933394793176923898318436857583675825308940253592030934942673454120125967643308234498683949302429879117606914506056893524439442906114329232565784930147626786323919978149995356358664653734630317835558658097954934501904024024265815842518986291458630223476717521808390101078123173901956815370562883991388282055254513195126520037703496351508297486417854825448560227399692443383359496264057419141455666500293605597535175942476560814039792809965616537144500196817911938414364377568235642974556163329462980995961737983518896528843927395991379143277499094965940183805628511433619332266542824566710890093135368900069764014878174852608513785089408327746203596882688952253674145257252449106676240255892989014427162484000835685269390437662054996779986263628945782567897141603693206176623273476070356664315208686446808751886781403065690152866106014154579048187565349699334784479547914650520278343308440039538887627228451952768961445749974487874927247494649138617672613410458533510801429179159881359974672426741414705627447537298276178074816052947384108176819990909297809839215020014899764010540668080097283017406018574587776272795489812849365000904565636427091359416064333786452650691083815145641613079567215920361796220905954486798335625809107185792165807537712949426938054677858415789679355712998753523591638819827349224069148157387029836492632293370242554621586223377217306672621525413790444753377097116233666010367572453315425799733154429104823758399696105798480852659711133384882532021513523279772174492987198797646353356517548647297188440680213953945938505345508049548810881297370896762129495371083212724341676203439247728449789067411937299219735142760018525794074324786314297967373025924138663257344366000628723004186385744552449882078807890427893745364867932531482234421036726699367383210471644865439070812837529274900339338776696946776840917910281891743966998560659262816499619968628691858973150509444747017636317053382221993582582837982393895834730436921389498704541995698402641282440522506668561351523607526015351307604381864492789080021955688273389799870407907766585689312128751941956916602986472704695585305872850896395813144859223277047365221073852459256803869352168755708764500869899109961238605488605989427552842997810073230256906793034375401510719833171375448105913688283580807344386515034865491810927910638087515151295855208428020185059484430287727206652691518697530755817505449651150133893926595283479126700878387658372350805450965251181670747927231681882489353559286217234298190794404804546008650090650471527447759005293330951643181382544960175747881491624535932265122475337015880199061401083562060231073081754438331071696921989872315674472023260311448125122075254987228743937629054322377318566598917346682151372725179277797549808990470993114062085057990355708117876716281817699001808981896889588845792746662406555518160337018095019238136086546245385815359431491833368821128130566956889649060890159921269003775457007255298271526587679770859959144213137463224005665197850549594106195997531200871987591736019153948854518712683040896899799700324690134003057536539889572699997098992624466939771314960846113597953746432434648791327996423671827010097582368183500524541226706487698134217051770987501335296920854461440512130325876378651716022500965668658236499512496284072732001615614387109654491031271462054638716691168833583707417615411764075449074617585320647147853533297640158234564067002667097751491011921909549428945006669723873364762694720084324799653271943290894480238644381365189469376786425744229534818237920851501521743283195497839537355314743415816316466100368556336616439286742346946662551485124059647370539732057908386753966040498877473436036945582651959142911513702576045649150456037942149062710342378800129152145371530079107721799335658517024334769477435828696234261708485355644312072188718602318149699086707964166317751330939729961535501162398293302219129267180347935827612823691879640326538797662248043046209081142376596058452132277867287631662652074554232436444451198345522198962886815786330586561655338192605139980236728441920327574153432756545559162339026910528883075089443288102023548966798890518501818894987952540067967075751521898350094677285139352639845427171617009903666551360159405641067906350058168573040007962294568060418024859548902749836057016168179767219590034521877712496387591094964681069395120390568737571909371075575583600768259417745074839467766473972355205051531658309745041822147467069319305467344036752053698687957385143723294043705176653360009582660701006144598762057842729071165011660897492076406753687946927436080663065664001912892828578211361869810684954133821048401538832550495459277764027049521637935830363814211174456566884768769752688072388486865793166463835117284547791174718233176083769716390947306734656061874471440612977957801234404910858057672225663792840356917122420532494102598190357210999626156681670674425558331611849082232482612449410073308784626080450565969697207381127167646695238944301126953033905145722241439689876153004209488101145409860090618848931232695205219070228222627795903711099191223537619990702751682847461990240442301559529652373481768386781445620872286955561320398057509173150494733727468213787260345900119638183759124522457228316948289439192802411603369008192632570148236190852729184080908463571586342108533930651294148944707131499180517377762958389917611586321699709326534545615314140925988788817972539674268092052445782858829413206316036233161530180670739323635555857080496567581691229025845026406668205803321668388362998064902489845514462951929925039147218079921450290303588430532453630149645583820065338068352066896763510303931426218207350764498894262274012268800826553174931469762698954647803615577857048685160454975833723226195131453657203649191211996949410256215157907164519066124492708239945939635500851997569387736037637728522419240544617357704142092833732440636052742571587744641198048050146355513956310932930627635373997986261567139791079638977869467989125147724857272962552010014914447426610283737858089988220719170573251325481116435732158616217993287468210183062797695445450813648381541194972841544362760930057202206843210881426539026146283097025922209056690330644046355140580089267975204602197416672532751695314090395527906906621638826949882315980106411389988783023044030693467129799066122437855788923489298962942010992513817913564814208890220300926208752934395553012717981472455834247381785558052612364914835505608757840085291180206486732461051539462797923534943677453730941270304524748535193202194421832926598833620198955300512298018867919311300369346504296636316879405445161377806807919493037745777301098113798029582758197982613854876733618730904465003799232918113412379451334737809647834613163989662945153300854834390286561054987740411246078354534912658237425012722332436653352871620640731532960417508652204021633501920745219079685915943091840772638732688182243089575124921622392660856268898226518827987121681292851176905734392381834638564286220513701657747891256349132201590197020548363996177985376940789109625164289510075257832783280507772760152347997635931631200972057175242974767022704142110118080005508500725923490228429468835192047921135643056502091799328678328200457006657795601947423815468288423852503799530032123007551617677240998913090959126172070668499072826916175886894491399685583459921402124592600369342212199702254271025963787278802932718611730575518197085038728567112448131231550140296632731700616683186813998887733578590520710608324928973228984476956674265118243957526370440014897711117521412904838479049561020001257291069151459425361710470980048825064204507392471776749595784305497734982582861709125190310503083168533465023897347730906682173592667444899686501147042678654260601406251675771083390755950137071897613604531993920817823777200517477304826560800048746139560571673000493169593336948494217589791338581145942998531071465622383854105672953833282420162698249091445418048558811108351971839501031614123065717416538663830466541169891223247262603070113981647354724938511970937325920941555358635393605836455507012648444593503728712574026720187970982746324336933253990093641789294819208984186717516343523714858716549323326906100627859056205046669460080317634130071671698856839092176543480756547797660097915871027083036656514421197838311732639299198044501848263606448509169544581903487099459059717151440721419788743907914958123133003280134105881691625034848752836182321087381924707298067155059092738935714975083378123654553417609539081902109742171491038181121891468540120091200042936223244790955604464694673803869995023600454381527457064299102531394064879114545185846021530240591764561681462572570131444285785944397225217955117716159245367714102751439807353301523180065805982457538455549303449211529978253804764639189024064678629990890572755026680220438452493640490415654557268094338114464886429744104560670826396720131907288346081411606317953053635499851491973981583500086998003906640779820562679595950247641858058710962023402102608700531456937814061621582329831527367407321677558157694290720090571884344230602879063963254225942696388416137454345779611725191756582550272697145095683674703415008437814017390065225838531131904590454050821030292016495728552430654458816657522634768453087784691626626426167714360606965362864154227404328390518325023771349288326235492481857809976252895173869417981673035217208262557080805715728003864389548763367011567436193754112455864420827136943813616746154319412319019609673005116286920252885089268306151121930658789688013480501871404098199826089398942969604165945041456222688443370090942848341128842763259180838137946251335896214524523048919089520803806576273299994286931690377404900495605898131820797002187418296199089393233662823112933331248091731011926680904016959565387892038621677201429451610881159150150118228234549121893570161052688130992978430584523086534741797808665820193361217740165244483111842368348155849103663641628446731556012791905817149594586285992333561946561971227805314447204097635939028559244329785041299160004624249302148061890934583233407307263582327646132952753680493299996657357470062641399952921520968225381471398803534349233512476284737715252858685645066267173145265251139945033621606598548896983910875191431359434395037583584486967495852448756060798947156216531590719795965637310110814375353592018817953920439053359843231872252016889987157349849599536583077291073789347640620419476855230354722251578184448671564814800337292858407059836410410031068812249821195432712164745313103274552457033235328095755616066730510513524849658266186147313856636639366616037912552057886579791086591442050340203760421490542813056387532908509155875357910553680868160550570763890093789866803205747812663284793039998181879164785141482685594340025816862155089503290443201439808888527270924518834943547823512638727303643198700396985718700244291976527732978366369620433496376427444551949619929800702096012486619285985690672556482607854782854391008750519348636441444059814495962018909524024774214394777576823621974832011746000962927470781486524198235415760149373281294688865438657646430944908415103121754921510401137450831788397984487794807584244737557239108023993677944559663746212074086561211324671806164942384895932641738060250221706544386210291605948147474286148192927267539745797532480200890382782181978420674971315967874680105824035530601612884690559402655934507773439467516309618976190153921141858679635858999635871073060323602176579739962753502376230341545610784464491813842978783989645219854915177564405358437488563142432457007544544600728125065746190974465961705002776983429960302075494553071936611553135701280255445122394700268589461374560631687481355182519746662799734670973245420115318829108257010659906105384253677005895345900422989183249214629960114079408056406451859670395375704191187557403204298429722275154124743990033088512394201094582325704616691276994252735770388543647568781314565337550267355877345494599625629092033460639460349425113462530050859819352561661971660100095930335848740966604108350667144090357787728712965836287695099480715909854211792857876826798885308039939430548072985874691991831485131661721486809251753520919236629465697655602207090760850801246048863716373575631642792117741742238864515461235941300978180835235756785387361874075951022377608726210552963042683279083064537733259642783807032658821778314547894110840190193516345513679348807954759126911404933504929813006823522724380141260318497027400752479043968325330546804499944424110377650415883784448222541210563437217963258917495694811018445153646486623168218756275416446583378683778167514381723982238931749553312940300592746360773269894629523841254732711314484817837321062804622339393940792359163087276559064758515171446906751029215418616427240924685514670543468438066109759987783426082997751742738862684194362960484633313079913522703254199569904666837015696101283489527944483390207948067962984163729480291313720419409169732499206940851137965653887915408363520271508443293888683587813329376434062047669643863415913813309685186939947787269641464684379483072731163834035345125630858423479041270814731327562489345995499625924024775749038538268479575293923752036102031604973257153513985209165478524224625200344620588999497696945700466784640974867251889344656639614363125153308873034065869663143499703786077957520302126496050275248434679718732291758307973252452557739843895408479193353100453995711167676062951545182788571716700821472403492943946935900272455499960060543188837540967213589434646894378140526442138356529163157511795435197646353148619875313709826494603336417931887610444356221767045779503072407653138016808678294301670098071821681125517621022784825145831146218267330779168295221664642582857923530600045218377590127601643949421625053870304668187129468549185395170646156773411399328641544655616108586541239017693715833350647931196703007003252059815163673070742087052505371998157657983749200319393215921690477527173121156877813741034549977171587133967197930876117097061177041256043871103458263957909922313062403276813063560525928135214407575257031854593295601847211619505519981824946702206558921874854008205177221693235858758614455151314248468090321439420092093521465575134678229229493861572710403684268185651219882095370856886879187227895189120880640001347313484497470328269687008590565649079537951296287102788492048841749719828698042543052857878108114985161297640561561882803834963670077885004062742442686516625407280809396889137645191705329868416050290723249892200003136597499423090926858631315731972165612952920463966026327555463218743532487714523496538871492228175182933695514699275614799995165149174596876425346437948789247843291392413308301245064026925944366583816443902835008974183216110879281391872028167295952972149629429037026542594346456196705070307209993426649172862097321284044016981680240065555452118998300248451450817058752087799240189493997288077424793065431325446763852403947081877212494111893173943140100040649868836261911470161789528002284849836713254622920377381359645332330046067440537583959747348728655535013535317166881736778522214620749466104426476096654030766998458363875962240325982426829166680937802474329326504830764830849090466115823312547050891473052216401748670155781362366370138989236216232605162480709199980955366566386408481516726190309160218343972950305049805400402645863982396040489301122534489071422734399250893915972735828426298797493572364517001802652963197598368972456673545840648843392863751841894978420270790460011178896315170116737103005617698788409370266147821613129972500327312932165853702054526030196688310704918823460665109303489263605030509738653543126376272910300939536739836303490692136411477324900552531215079184036597762076755493538451462375481902885689626272191346566967158035243990505517380865776402761253526644114872258667460342328520259736411857763300101333582418720738365998003178677100131783294425847516760299392935053336160837681066097368099140479207639743459526117387263576383035094391853158227288259189281708668609504127330475747361398664356020781964018669759012263525644189708275194434839221982967838368465071229419007666010855987892717930502000402096414010190108602114917716775951710426638597501689258321536324297786035081566034318968070572818426108920578765826313677026378563334472999848922607316598588545962421341800299915752556243906475353121207803014606817905474120584752228775968660287456640801124919428861016566142913212184010494429305574868254015856158699548573541978302345888845829411796350185533285607273727031837563496588116797279352788064523793060223952016620012599820662834942821859079166748139625048977469500188240634312930900551049846236179954332924772816221118250539398792128208194675207218642087638965146826425881004046556776602841436407367216042956234508289163254791729767539836020844139764457087715558097746720857976045440224126897833519218991562698234045972417725276031995173270397602387854032524945622547774215039149002723909224007597975691699918212470494825269775489581980142485074515007923020599181083756710270787287071402763339441463901575978129433129485942380847100206629428805457984913232585549366862742569467883677946691749262248740165083459959605920591344027055645995348088059700024698355955620519563753154953701212877057853344331675685124219638749526383803719448763191519546835867039910788869335037427512694014745125271453642591781894459530475436752019348669652706607620242846500511392905823496174387778967268755438753414225542736454784329515790067197864321688345212731051792776270071111977372513986305355646578152558637226782655278742448506339214045203083655817154551214811394694933905603969502908281309346230011236192432322861065363463338765706866994705792079749259986684761761921763885976973984550270768404515976797355221340763786638806976352134278104077356062036259300971502141476179553211789140156575952729165411034997900482245426238237770376250127992498047537744472982967403151807443474935657483267250575996205531668609929536573919941771230452651210192653123025153730393034785911553041722136385230068535939786459523277280530185722196304441441930710656028502688868172207542927402337446541537612528530359358570460058479950894194941559427876857890683308524253108039910466531754025522672340134998946438862863652030629867755873275493322481323235429189323497946680852532843975329805656712269034843222720514211143498158944735222891782669384756769175081409329899896472839670211519813300231320987891186226688506708894351821939988026289047192390535148143875892610922661820223812177777829540185738219137428280000480621424815797704881065051837742324230089348885854576133099241345500923848289568912826870902341133881195705909395247862422833394953352096980753457003034628301101328977623837928870880799185697929113346765041229418907608798267594949374850776050216949328617769211146385438963704722062043939671771267747961461424506727179305253926242901406912365078591667189626634612352943046754094019082569587331149398211824449725222798654394568799510013172989907587685880673255233515545048435473615071032182780076566621293625597876608121053519658794440385065802862546477035243972289130912335449315329873731979739335588680477647298687245290354175773674215850207372299591012491979693173210095412336610901412054420691653437232477491091022329473893836207567020320797072556169895979195376819065100470496181602145901578429441623117548166436477385839959654261358826747378464112947699547278508093346798196121674295549108024814412183788368332633346089422755405457294056845758235671379108712136929837982236654812497120879380534544586816978198082772069442211523772238347711503638841852092476710104079193764321398335448198236515708765055539668461207072766000976390055983020526802869678941713266234662537365803576932710180262848955489837945888053134923630807246966020554094865376115531983442605273875869308145130370605121016353623870812389041203130051462142517887963507301887831026410299015639765362380844246024269932313691963063008656728191044134442298051120795216044726276625880801058913195566080029363404265695856036693000431041530705169582364644535251319107741740765445151470752804710597884352830279314680878726735018143225051954603721667828979686989843579219040626845348309378429390084721694007916833091154355715088380514991304950831563950280311656265914141219434192642561976462479329363287940250276808224843397020376500578384103919250118718593477195138476007812095529724693977685117671131645264241726481521830846124613132325696046393830878114153008581551321439694446924768873123574281637155362645030859857532352122692429010831478637585241013815535501326438330134813547165840136801470288152464194715530464717414493856098410487935471405758590522125601612159241626402590226981127298259782747287228510191080570009659433610627939351012110915013488029066137298205211680983114191432440558593527966948093747494836855766185170730571259400493547740399857859430287638193315381974775605762797542760084542051972486053210177588932628550148666595433949922862025750427265583637904910711267173777503760291053994045553388093707549538924667593885380004601247020499534163238055384805724692150833544195677684704472323276253933975790659254321020319671034650726676586772418512228578875229151548079991252145776220417486453983819633607036160170576146735500377639551626533091905850742416456130552691532272344790427483178736873973255958285722591622332831373684540244557874673696804784388613243964302684684366979909217609930093743281439602454426077865587464801638014713420839601342079486806635095105699134947159519042391539651886373813644253731059372148387063956610941530360365842692586875119388520291565951718365868961975474417608864619191066122785722064004408966833725507382962192989095055088058079860407129337853122824097888037787630275339176575134652538635750060986203758711290306248161008035273380476796102229661933943882393296510196353683504886736914044687119547978491689708174811215660470797408406390269808957188433712926764845789741817206676854804541524941066197065498479166233629718737040632706268125904349193540280722002548362428215024637613522368469835334029322613064922180168670922766110018778858075155044173607009112660239816779464697623776776705052182002692297896608129015617624811834968014390651249815042184567603192813850919846082280036362305411208712805096228362723549282531547103268115641266677412675769462887252046976193102562511444021951307279931215480273439873736656071497848781039120494228673618447737777704823258360751597239499627509912602241371675338067801603639607941252823571601987578813170909320921739309142841429366468300980813993490327895776333128144467495672152453448949645911580914672462466930740981769435305262113427007267984235550301813881252010131799384078108995656794413723266012916663598788667150617725482187314646494839668554769597251238812694064564997187054417027260498726667310792895849434520656098310171666378832828447738888208432477275644554845442377677779981329943458791113606188352415033799604992972200781614855658219807006739229741680391599244358397938410025117506670087193070123704514721711745411631674238897653867836332527206495535000685990874388550688756063182839238981731415297847144411395406265328607074705878106921602926243287092624184331690437763459532481222479301056467109642166155095518099227395745888021783014839758762044275396181510456411457669500998101737874215030060081724903646041040311912874475893174640897552620091804993093969999727608237132434717648957042967634811401520735757578631750488290990953396605085549270755084067143348321932643384967844142224611273863919937935059508428596622602234022260620073099212551088947159190406316292654103783690992672629271208743453462605546846078141222273134252911292514091492349284374884809039631301226268972003312987114634997961806160910650985922423151614293013096120293513484100590257614422497097359016712318932294876850239034013533800975613373877574434537752011147523470714025663990804604723730709651780249662325071208569630055423561264508764744181778270822610686275344514582113330210813925714152571107560522966655217207951531013008282813195524446370434626620177031299904914878627282293324134154648446218282362761031817261621801743222915829298263918811630426634990873752172666852838222461685154665622872020780125556609507781091399879514972004172977058422826489638216669849034859839369429186234578881467162280537494238896745847122687265237368441239097672020947245921445108277121654934260376063643568959180717932532610909363608423794061060993621970017800404517562869572692424658589257194064507129700247428969926206319565566397162615778057056446258067701455033002931101136141391304726231084776840040681854537547545714393131034751924914288561931778798999397271349101180924880214529279925637035621893621098698000386269384033599897079792776358929350758745460021013863312200191555927889695169943232556547943956405847736803146558052708299412709335533906529563932743214016070279988113419787895267614705394544103401305313781379467170753821759653897830450165323648722329880750660604440106488406499924482944073270538036830574431085214230422759274438063186743420615707592094852107519351956516812269934740781450748368664957776108112176418765151657572247659951401147196603425448614328717208091636902264265409589905216865124026108087141907212820767485224398406687014199949999028894298052055862600054916400517216930399481734928966018735347294483001260128620778933564610862349688528015779668203355277486700242078882636801912038718500684249807771485010809072983912877088565416135117336322130192886335807042606548277815642988381792161950446997097541887312184628039301951438776400885694289956739710358220082126375899675822900571985424645507237517741772107147526660493232349463732625021202411740816490230899621650697466682549926532384429934058109832292371778635134689332949651083188955787373151351690762982284140029648458570135232988793214775148214973071483102418871503286039815405138800241583411195712469767752055173260801035284422802892594160914353422521714796759861726158455269470005857288225825198294580255376487906362413123238853069228763291707187219837398784223384333425756853424884904459880746888575064535194175284720521004065194726764847512698895027563416143683944455625252242894835447763095315289467309122554764121718936012700882774316721321081765433869409005551229479204508221916058875567384430064422496739755251072141678270609773964129775135589377514352056041704939913777785814307446123078709636256492733744027949527826570678516969905318534515729126568139620052412624736960260661030110051613334515240925183246393016737851432812580548554783287825051198587482650919134584802699155114343625176302866905037013947558091485779560367128924053255653618060257860791188498682775164106549693283667408641416339359482146599768860956009915448341262762422508317428819248519506745299963353333606063421539488819018513668090178222555875587921663933073615713472749954339559705725440689878164875803116220875581454037753906812929323457142220930211793372614689331708267942044929605254793113355259434008900717123459164113936972131281381511838322646987100672017433228530415257145201854524728195378860086115594757152086754310206820444600059554055087133060486378688023823189274686273396785824658618115448354493022550744686981662412541217751916374632819695554423651426032588692156330458576585327432051354937564782875327295126187303816029777538749921147237409066244748164200661916381043171655593988068389575851658201063620113858761102351260140363139425856705700347073900308215761631791339002534894838473556459306183629620453736751811036833617989357611787426844774890764186113703535651318437367833457987119295410126874462965670315641859915089023379431623554055748484811197548088881559473001722401118058538999053730178640309358326146433311133505136605230173731211779247923180660068426671633098341423848201573198590290734371064586720566409395266875545380996420742729385251164629486157493910145507801715838829702798217569714423629758617184828541690165478318043483942228985162447595931685255334857631937524525704707239270396245183156963406931580661227514578627949050707371505474955498295438020884874590235074670401594978528772704249157644498795877003916487416757928862822131253953104609026114305438375328325061731497826071188237116598098762329704455323086473734042245128849315537800111611992510727634225430340122117014433710105124782229471043036499201021055032423086582892889197424460991950554133496291248552953112241010126458500796351430006875605352761417396688331674582710270347639069707222490563006289972525723293685597672645300214894936319900770743931368323038319834717540382999872884681739463030598452001754409446010449168769198060807525340540213343763971494492322583633353944487783560757019231157672243971841925464389688325720143414842868543084363941948895139555900012324323718564056023311313762430543893011864207859089145249066108683482001359958594151859659907446712172330008465866021112914334277311124789561738058094276588654454221750274532934872131598298722013943348784822289932073063198765615681965199400645396625467325337394228309849482611009492818410243349992095487565751398797341460049403342237319335369337502907263593304356325705876030442994315203116905152852228995610899441616522421556835369928263152492209708630655262767883881816433725888113908233782851595918597340121194727647137956935563345083066430529377687147531393204673873686902745787451117324274364296239394367027116372310819803989511130258888558029882563522213616274707965731413885991034663282132660532196123358765993470370502272889392326821534862526009740238457007351365091042874076540978987878386252436791193002041450894258618255163120796137412307535334331455209647777929430771973649346205918970119116597100450685784217412292919237756889735723174220612890235886705732816882184676589406515669195673462689292492773554850507075499483570224795925354403821689258362185183005030001095611480919624691650566177579901300799565175538331649636356370122294175869593838888778433521746275382609567948435408914567782542653846074231683945037146222411270675924497410435028013898071646052504076491829561935719166510816885274195640311150702162017732214860882043713247128246654465123341108637794966722638199430901058080115483801289055469431092283801297493249418667064124977849550507497263215848554379027423156725072253498205819129721288777716359162200674124147495889391393669361772946915696441323220256575617834939833183018337837443020316891062890432722270169616492754830872495627965645433860401757829058480329745707022669784013415063084565353281291523301262648550574173190667033700238129382129945818047899648611147567031760741132481615325347583313279365185324479037882765910397458381506011740931753293957016648341940742943228901309052907577142929419983357313281910935394757011966671778309148138594526115850511645065227281177889961621416213363036688954533021329889071870103892424734144837134233318461314894950813759556476008582459658061627073821381755300669171958858927026315845164213042807772091161680885538396413449756362560051613113756639309976593976379377119936735765500270772515476579882416842424412997643644921001116745476584870629492392936503489059193819551163649930192479369258159367097512314075872560994097021999892102713525141492275290484616589248286509381152363006796935746184831080410259603530728312424821018300642086150413145525746720129897495745696988759236133171056691595568032490884453787670495731295647654674851060318173872822773812906997392046747952277263181364088628340729798585431868019715510879669234191322747841370789683255966854458313302629191197137258390997045331555779072412997689803494832517355212075136479732810737616278262430826797994585022269724465385397185648157355802802191695463605676977006179669687110282354121672344935448180692675166143041392616666451937182969275019408313425237830985595981845853356298300180550203411699574655706332761224758522871230318613289291138779159905435951272860813761150054035337135852128927490161174769433390107239500478182267504574206586080737853951387309078444130546573948195806562935195508957299660754719245395328780668825812302226250764018050770284545111087264108782615864708866220606237051672743215877277063714950719953205808393893204396008299385743371879695318592303636030630725380231428908804451918491352317053615375524803301733519083673398549965462489508018438004099329926941594022495425923758525617388226923778845775341370978659435722367631130247205669654454134265623265437778982621591230880341349535641668724964340393947534619622563835626458344785955770335764521761773362212854655011177350035152957564224557720003781707583322099836302027524154105306023578172734907899939869312915332248136710185564661326123882163690426220852192629879789348299207530910083989949654209588334277088904974950080114706679409848004913363660895206555388613374801646298796923406523485954803771289580091803517722562634712368811502511409739771955409494535097238019671022200310297907999452615821479256057519202549662680358290158364136288914118603628985493744977967876751604175868606093949532794513671718022994395491632649778343352847708354596536634902002141051097434451851420643641693120825106195366190656869476687946568940489276876188381995185061633145739437425744771251785467241874696533149839582601210320045840440537734913411067533367126778794268474027847273526337368327488677546230682417199802320766406318585808068333339650234155377062741561323838238671246829327050191886764928262763280423828036216250208678661509340775251058100465757485472744584741386040119495168604389560080970877141226433738714828260949084621280001154658951242813889833934442006603350966021795505644034801298718248851799287157511634526559437825753074331784787844698691738965946122452305522867467757182850246852453128236989188304412047515599484466717518074829270579347629877397161158755008514245939154766024656086465808420428547125414424410976657573889988289354592668573225091961591917355739307917286067591321048148748047983043361910922955647488056188214908343424967773106668001723387848320518275095663217415219095926178936480161082459435659112588024811738121447915668227495854142802506264780102441383385765552586624638935315609741965351370091890326522175586198428966849899423868442526324574213258495986487179328933006804577591259359697853684740993025276819797789849561826834958875064031952703472378511312478937803281257187886990532603976480922663929041057923661217142792405886211642128383746165845457239770934016659103420493033193303901798260376062588103869871742477500039282198243532942879939244692762256126196287923556716638481554315684385644372053908513916073305311220311048306556105537780299586763939070878074748046197518168816708444038401042694158768328877015673347951520553255105327032454069137258583567355933743774327531066945717563784878832617797624788011398759703617439157987362439016508041750548683920008954419993363510208973560806702225762095853900297632110929764278011846558823894880903735522407521253281387369125160287645094048571272423831297870113856574243850869272009012882626071062621502690058526336715210232708478501472386088963323191668154424507912134703916625860631080153093523907214485048936414995287622193140285009511260997234695137791916907601708151048913830567389075658370590645252763399555385927307931849826939448629598119369425326499919087899246935947082827570632428696327071788294538387445257079008002953077511333946419602237249881039155983966091675088118834977498421399836015464003465582011132682356158995498866390024608191748349270137862534649639136699508619580763074208819549815344133731476363888117233497998148868540331938984627386080670172597206285501871408069932588756307739033407229630055827029387404454459910244044118366279922672211714122178668245550288031919186863814006539817451376332354228948512169703973176607765973972088219589780567633035534885995285524797381611075861653213368060555308062795708737764897697459761147836250517373034694149846890039344226784968409458424492534358563640779757160721189055180225308954291865619916034293280282912390224384644417587101206843251419277828635862198911170438206249066657226210962321990727266254212768102602680522177643127518847846568157143821056012471882492738180581259144177240631830143030692328295167864816913230308360749566754192714973854049126642236787848632151670780577444587285661501580137510202682613673155018036550270649986437034719299703632848575888645525730298589408754789817862615122799128237229260963093753727565644544362813053805972060950303866650025373959976757225962002141511460201138673413349742191486816614571894769072042480223198987000569039455047009205832427197936615107724142698703099090578493242092386000048926939798199689243497054465786069756036269783507519070176857020132904932960597006379987481725916300964905596048219448059571348151755413536431136223260515431671109921286108763481399993692671534461244656493482343266848670296335061721745865977564142877246939618835729960149076393599990506081530925108115644687341147452278080629223518185871320420607629532149936589000173238208566537995855077265558909017038094120797049426921401450819596260298520175278236966815447289679741056460538140668785031390695838450410083523105517710969543302389908430296414510171968227638952868052695907586444468110741266318039452708255096538391106623157325647960236753855418080564292818013109671750058993493393686770743557999679573369206367406282384600205077607866296103052980292132588041769935600178451331070168587158556185624092081757247863451663583660545147039806689842607834314528407234781273025189944149570362287665321579432325929590563844772248290216965357939401711366373416175857551840353647574465297517873915478048349890723988527587305722698755801336102452410789604896391356846665813696563792323948222684413442726491875251317430731496094189142316133819158037028703679281261711020295798006859994047431971509088826861530822680333492469460380624035969320792640380869548738899204102362478735418856968237570643187163931977730262725538538419175629141829966925336764986259646967482193295558363510431212708800110966197159733864527213420897211506753924601867769650655248602181252580691218457507590074474634549206962236619364641765438980214523715287794531583973099484893100439562361009432904820284762702436156545703474303360646345015563756584189282469665336011370564290440306849058252576726548965192777013002461285869669452604474804316183543623554006652056954165443568631860068952848700713690220133547999875492995237818185982515973960370237846809293964156353998499829700996616036225550187810530215308007139387960946013894394765592003686072674284527072079745912961604199778854063114288442257771858015581715391454963855401601437916589840406170922512966358137056061013083197859106896495992091481066701739373664351299772432202576167562871882029125924243749767680689843862781126111093247016652116775870003731621818822031322805284464290716563009014418759921397850467687435022225004347625748188116060623866846605914388975544913731799197361748928354142311544581215661705804685276570441026558334837708385962693113415281339374506662374928875625054315020349900695058307298430907292890053608569202099826596868506428387940447735812817162526768110957697810870037056797328789163899661847643541764680276197133898781707339673550956974871821783121972205236409243418731514100632690965383746936913215273759215223745712933257733932046024700716861555518411845185051016169203119903997763506515304370951680518515285586624633692869189654757934700822276284788215935528762234058112311961283280954310309227781671969424106193661745033993810745035157382662925562412801153570712291403967325962755735528538018819852249047832860379579964766313231511985404902777145581603858401134758414482454108874213099405316268924091934545250313717707979110701553846872621375069618137966959819489305229924967562892447216016487905506502193795462142642785314170620960619174132059355336788964931637797225113591538126078454067520683346537066379945282357724104036439645317827146770530069234934721874401910682317304534746685695681521349088726193462503340751709300854394741211213283513771985428660926764746000780530336343822690295241073685334278846723002427862184683630534766908304322833661220905282014865093032559217231196332666125192902915502887142470936220490322752937934573123179304787943412347259014047446454227910601466446892008999455675263523177472355294209230605465593362033993884845185986413515789667847051856387811780085932929642422679482642724956726668809526576583750399374054055939390591147599106389426234947453141888579551235302808064656306124013118336982152284366170636942123373252802687096099022260322489405929066928584363706185825548826195599082902387207044693422838363117891001967152433980525416290212323274283936347809288625768738084302318212701104739274814492261961104957029906128761526920383477989482284975934484030956766938587098997607464650216363435652793269860009497180270205470963952225290854081880444259625714312786678137509388536157170755580544377496616750229529125941695447600322973793376644148365948149423649126382633534164229482728759744793183897841366591359040340763866678547043277355263785881741326871723743665893126583516544870313450136718976041397820733824064078452823751993569483673079851687006223190054170654376746096791181803797776809948600315766415222863987843502939247239196513692392133121796072742521378583071001887670828324924724733939964751508466309971972828012635229713816464783479645031668737614195804574040801116358488291930375474117223252296886845522865551877763534616583371998863139676600812647773354111819210779700800016263083286839566703642941968975912218282737209265820250596424653628790609642081723737649166839010761849685811590753198301665319579773002940997328155061412320713214416091056886948682531704566155299703893755817873505635087156950139453201415921231240104489229220902919939114264918508040632702490932386816995512139036097999415704571900085005852377452703825058804175199104713116421034648571437423043549880066194394109198628711385735195350805851934785470594979639043907502240524252246385187210099601463149835573584440664326185432416206479418060106569172250384257748565956190646805977932818562590485224666397663061300721612592607953656877326049563586712525129048908296182103863290344219357493838006401756184061371749494059204261680076980940094697309464774435150069939073939619435402539355403105004925663350074465914195518779162290381558720304802076784238371390541367427026877684493979328428845278215084518722730193247560698431431395363080547394359924538775030990034728411279084715893220376317141373351517064171558394460548600969121771161040454101449641106968292787319389862259000884726877345424184799957462985577451131336890047571358652395450481030092936891731936985090171630135986371069442973513150657194478000720321658366760992720729776674909892600244903953909790063527366779482623001899448724350963308110986524091218183476538714572509537875687739567914006739379480861634989289007832656978426908140024651078802038989594434614951761026694819450332151212781440897936943985738491508597273512811952694289596357544009626305610009825834171839974787179841838816531047136133889732613242981249390199073805122717420526854172597969116571088971174074525691176920400697049849049055332282425328993567671978662660106519149776349332690507793789344234150493824736065182094607525265867458569697106213995836288950399289712579528790225098234675801860939881568748783333919351808201446918349203312207521903803481435540253788578382316753612650553065577954029535018279329368304305255051581642795578689634093520317663387570468919897135605999448178745525274238206794141344780843366876012344721319773782516184686411330591747340274624708461674396407624385996349117174522351026503147282487908961456737446533597062545633340319402052102535209215453354127933600503469429508589693896393384730470399374770781537702231661567904563588575996296378397308861760905859486967111971996019059634394860598264250634314136662971127485969852412455198616388734174855716907227520710401853117585297846710182101597930534915549153787729450626539251769329202624212400584478093882526939544158390058264032989368538414738486419686257715146089681310545860390845254980474032330110543827322011312979793490467941270787422115862665294496183593867094442981027946737452652335227552115562695190473077311699355748274081098371342530390496374255574226331487762097396979502472282234400978434193268151971343432967854008600505335737664122603562164419826731819882648688632456910485701853529398686989758609305787893450305326571052727072943784557234436137079861575913524687038462999780529985643454596838967777190797213881652467140047797697905585259702591800393930191286016951825969125099188870779236246730149307295638419733311892693011899428325251806570925923415288895575117231055608615474853294943527118845701034794086956848747103006098599524460815830476406856037745690378542262288464311879935988804346713169577530304098401995376907904482161421023080597673883492852730013610928019769459646089851647134420698749090074143408341296589443604042476495882963903403122113721676298080797273659914285760091398217049258349472456500602377206018547618736353513609512590392020939929443583995760845656984458261735469086838231517646503175632832374599837774553881805780903834142802588187323361090591469331487028951054421112574330944961592463973799558312981228112650988863996532138436662705419322815858626541792849983991854788075743549743214236611958363764402210177013559645618382048652747434553061263820144573628833853147453556003223424931448755302051260405747849006340390292377094365894645607933005058846161812073156326733796912146503895063968140030013445105103462771161434004400976086725173185517284042764541420300872059744958126162726740797966723617097258138780658457289989632679322719889851082024103961671304312613500402412058669562390260565141025975004548063788922779948739583045824689848363633716575272196159834750809163419764431226346765296202515008605649938563333174713746605922533426561302590336952779815640000672680223619207064464102014639419910479549155589189458844699480721807600985139055922110847525970982170071471212546746489042894149872319374965188503182976964808252148986981653899915344297164833628037190595708551595316039855640435624742265758010109901690026436634605400899981254749918997041989111260989707996699938152988852441974917782931457893294914168979520886061826183932872755812185379411736315287170660917768786681238004082058056500477701893929591292864948467325182548341384204312815873066525917288768469038134645962620529744077887052198215118587776078860545637617958746474811129677891953892372452750572745277186859636044226329887591210566448187995867435111270311025603587499410084903350707828742444313220307138690916861751386103458117808328872709834908963321095986142138047785002109971549143545067545949019253411114106547150861391152326683777641579903986943589036847349765786178586287948294707197060441172426288541607495895055406100908388245309382076130317235139798510690893474020642792835721351846131862218734224269579785658056411998879566624560397324718881491862674745885263423906573045081954873296327506221918454712595340531939827695719222049439443804522439328019010169613360649333818664214776444899103173224861965838142206341221558851602953254407969996399945117727831496727113975833342134130965207418005098189429878788358576583358439302144606356851468442448228075744244714398428448535163494801412434159867768843459874488664066445359343059441198244313515136345409585501208325160578812191853175247378326137094159553415378009804251903025307946273564954154348030484299426437097278201219684088443468691881561956866701858982198062117799519815803088261407407055794363164709255141009323824882268343791242535227418155352259211257090207964535663227937129637424907585022626093143997823460371236401968859050340439354030407668853678400797139042487941834907547570992142395234828720764179040268005538517943277532582165237279311540525813299027846166115729184297028353660625190613455003660275803621803214624502335240859915930180700838037120626544514728476656027940068660922328652878449887684099783344504644777881679285116868353284533359844150487617932365963403984298845284652920355839667107869048867301097515857260272444576112557453380646114426902292624199488876656035020223718456240203479428686065739921185006765921711294111797001890330321109599527339007691680107471832209942931391484813084935201698185075608247519956068315693041935516025600779895609290497187628103385925425332716064843164161982046895221631599541285000411288141689403522642403509114772147300017893274899079883645684571838627171986230385873582813405128962935807416714323585645051468992893994784762880411027593180611726340649494486009690077650819311669389706346703869996519287333295749193929661139903385705788540509784231955582050246411553922838730332454039106217333646095714823418027813388324612729271719262951510480011812420762022878481326948061862986041690453721712406025748618597695756885441222163614002842540339992125167744237142785049478882733650369477036129736478689996157168116917347763214075354758471937126301282350771473232766226507441414733102694302514042764269530219568919354288656039319605765321335919486995850904711573852534657361019153411250628129929646803305617104459296438000099464147300594178790081812647849823019940528232633439432539336467128558653962453381751945663486139063108128845251371413597250396502981342918597746322547927618910210250161443877875775846865435604098729296834760620878747901058292444995321170874932799131542687438617035587277072955597479991569105110927367270711629690454762509639807180421383848459879821088966128504051590037361578979421671469364672227568815540725062890071298031951863454943790002718804334811676149401185451477594812395246113159737260393453402276550422165204180654195951427475243409616606539083400517516315732573542689068601797626513235175678847078913730171638074174767732793809446225149107554538751870878132455758432527747899043592067831680824995068054390596617532722231089178591217527728286498184009122292898204517651630036755809868408511762109518211517784762754052230924747240107158528373094803927154293532005500011790988014382375750774850203662077006226499369339272512949055999753919308996257900450054119537752057628783081778130960381384937915920702434151914329495864779443545755575709917966213226030020640526570613347101484765213988946124371515179677917642972447075356584182077729420277652953087499796536198259922163835867151700889576958790752647319876370713366164486820568082396674793116447838218467075600967020430220261611016219704645701104723153586664083360930852836326690636613884084765323326208713086863549971189724814438741284482952807889025470529701428148946203160483767356144536612511580945762125819270980581976182401294519332951669803085150252331178994144140367620334529640806058768234361356248133903157266616586979095342561310727855750410864170534335740500290819310617451933901599462674875831212518004793532289222095166717016007222069770477996988078321691152008928485791458136490781182817620962222302856006513616914867493709204825152118537664419193483187948058290160168628884633531293856360863714071071022276794563064167581235837952560757743066179534930974396271854106316691745711399161327237533274625914819016032942953297558750635108493582610273398996740838159925368230077555097904107269223735216093709278901694831382307022843211970719765257940823960511649494851352887269700149207822769908254170757733917077256826755813612032992668603839886002501076665660780275489459603274269058619995111468923115789395411616061374908004066622678162964100621246698955317083218023214384281874411344160228039389946725692462175920632641592789117819785004857852818825012493084154308840911480281926761177338669153746989044056101497957364043425191383608746121860103077034719594031263824434078550123097777557358316282963615495073345567713159615722703859533930240499137505061398723857499748615060731450103002102008289271380007615899864175369054410249962306054568522546555715825828250312662003068571002937638985506686787293950551322901470660841495000804790351447046297456834550585134985017857079725810702777189417669818260553019560235267607444110373939637549282635600686447976224414699840383525724554596094003197853014738329028070661748334829751570877940810072585063726952046890616402406175892877258957947291718324327177554079411863442621855611229075654314835586121790304116003817137743986027093526702777250954454767780928544285120120335875927288114304874830030421776161288791229596209723545084129180959434206629731855295490001664427471981736642667436347740843422990949831850931486651376560255397501085036279188384781333034396690547819609835011606549104337812166393754326551712685179424479040634885600532824090853354146122906887477779628291655955547324241192522855386088398070917426191023283537919933270003033977194586138286124241942970939003366639897733041233836744326918213217834986844624431815877248403218933135152097948217569512951817009461770738679730522088342654641475727093555540606372974369102773920812060976573977310137638042510096526774551960347851191337561000814445209038536012308243315948440644929849198930336564692970191365043347003270528968506480030786489484771363813348517021108702221645301246102278441953883234692922775797743725139623396203701693319657893732746280977832428590209763373360002287312377363843593617458758381897930463680574223434337391101503967644365120928122036851613619226556333368092312525380255263831222734571408087990865802996769303553163586915979227519522524065313854606382071260638489468768962670185993990274839459791363045247958792847817362919389377499050202765531322837851119820440702374043132901396922735735694779336055646367697814686299230843521005129202124656253839898226413870389319361982465931095143806143233695738854065296984572512492869448107278595454457770554280083232091594645501139662290052957210611850755944536722642301156190099157223486656446351772319113489382438064806612339710160172933688493576047195955707058612475914200320748588595828218748209417604338115937232632748631695776198013032216319812019092630178250449145535838855045986879629551091851041943665740851932317981977288759440706007263842965266776889351933573319138216781390885194835951910699345607074245475097206022994114807707800133535637119337421657382080578881570443885259555853394382134133955818424002056330140490679397895746164159191168467002000112302547804909808870997933914899963455463940145739685620321776164125535617164601451958686535252444908127500608188665562297811661637414956963876567126882559239563274027568006172251365137586217492526524120373779154686176727913644040144333441070606630749933551285271371726442696976340889542600872117490743952247151943030268783263798523654647172685387184283269515764859444875241358944460735942066484680779618203909733014192192624306760436381828091551773370711828984510015643158154367535429205748424182351454967428917009174205136102983377021164620345372076411166817467944804844179526812041918234119859521666967460196764840173472325382446279179211871067095172541984109432706239154179384002997296410571542039806359994492564596891104039144143780247931830294466942314914134335270737038848160834333684706474668856801665222730814474911286748137147954720402550162121579497090741852428592140609340505557664527457624772161589992520435782668873215691989684137852156087866807640197170957009110712687839178660741783855575019531776713548754028337047409296662639294716727254014526503596545580321838240051339277475636597282228031039393638629083264149755424758938305583812778161569786329132942462311801022226503983840014867898726454542441504945544945075849263727741240654787439445358609865928534375548556760544047522588823914834930972946990700799768639236282690762931621877744947578992848148228427137455432752456613218311565684308583167952564252958144129035399962133584735751453314305025955410758203353024385356299733859077192954938720093577469865512921112433302611604241131350717897466361542520710484972522171550444619128330627305646791284601615031599544708496583921714708678950978572159838630439134691764367135868804461903080305008237426800480255588570100044054499851167527707468743278657390333660176321480168732368081729493200267738284227150869224741012033819733180808562646883146194018519618159291775615862521663973766493797317916414122666347241838776835380252294822388359292354053451261565304794116937206548289409680812341312559258805732096914675449753698927399446184699105369746225598616137233092813290752692737334928269357320381439646678647930843950873934651399587526926838086821035324258104106240631650484104584419853463165587527459251095480972360641170734122813622328843394591090390889899724501868580802892186216562298330137315293241903917975122750337227155396894572356880295927533322239527523689661026224941101929542077604466828049446129629032243604837724353677332996582119928263553314388630399109987777240276314586658890493367692471626917610866408168539455457234462347507409490441240335078297877089666614069398557013712663355155998183485898395400866449851387061926030356452048985951862815296436243432892772864331397001079289176764012664766827201840812622787998022639762738068283637175602840594904531404377816440930427366119794635383773518037040339848081475107948064958242149432786677734200141815805907453348308017984330359509071417533175810253061121459586030687372589201631026786883675989784652294421063994071932966909167321707900206522336206048770211607743826522801251676728426547811873031293257889894371746544560776039279519869157868496002839878978260871593918467908667558699917956990893019093338308949186121309479067027555253787800611110380947623377454160821741764491688501918690232982046311445657503398170793983626548810175926283083424459459774169777106242308121083246163184654129960995687275868162959035153149325228477505970358425264328481033356929164116253851891567247186461757304949386607576041761954500903499698384595262750059537277867794391161272545917498751906958156821803612159767498041605796605451728765297204805431854991898674197722166588039216178212027881527117055581290173609151765845514136352001821290674729712069792481705249887064767992209250476321522190971460255516149184896968268225258126572531632915053033517957188746019186861036805798062731851081939455097316255713654536035231168353296578388117343334037623306415121125422825571993560068355634557263131249164481148597309942451319833080492352546983741345241280494917910165870846615585959116537426575348090851750261221502597650645237230729504448608670713289071024886216319394928461185830199422214781381136641185589308422777663278693191371013309704997476720982747204366309893457769445758364783459055960808104058630458329117204261720992373391419552366174640920506955772936381596269904308577698246840074068196844326998324750891686505161587893965303189170286497227020726260936970283679993188651283253240755791337187669516728073208970518196417209611188716915922775048459629858630506988946155371790104482944996312807327562236850575951769116197384307243119921075022841293762705918600663281818718940255331463208823538140479997883347628785825003844753171864058165219985776907680688029628087583626811278655847709831911240230032740113028247922060389678742877736391531654521155787125543061663715261084114546651682863476978747129773395452625907830105571390078120123605704576534691749223685158791270810258376575713271438714869016328810678232610485201887454165819840408214797119471915553578081031225865191253981080768522177234994130753964206810356094440530503242295903473824105198910468022200616615854066958170511678514777061894963047503942681292527809063110631921417466464179627177231056309763353299845245397451315367600073772922773359607039788388785934906097705339200426825048986707493950239466852464375533999502669407132501304428852826209030213481106361122400966053544561024380952395405089583270513973032765939834389414281699011750853020904378107753595898993380042326366877992764197651152584087765404287901073412332431743383492733196586492962540942401091445428114189877982580125571537359992645760044522352021581818270967476181065166950641830434691647699736603194891274548851560392128020541326768415822612540135255558239697102725466891440816710389366323740079100642190835572135296907493287012923665120025320936838337608450602852828300313263847993104915308924843645249977836161942307326648364069906922273397466077391173019493404055837923865168974171821898851664481991230253974708281096975570612085951264883837215273189508053990799089934403392255444011224864900227028971482439363324868451766251893325531017642572332256363291017337044756114319546879963590751711689722217010583478642658115393587545365715789198321706385593136900656315610630641044037344180021370696467109017243615608151518946366479758175231428055472542782271886377288418285987382334850681425340346829408979947603148073413330916132017127169477380762859373680132872457513291933838207087853451861218270806222283914620783071025835400125320559437778553951326727566957562583905224465744619324627224772786669373594044588717887935981132657216093104305910901056148257214131491266769433225292873107075019548599341352678225493337878335007686167490030945154195718035701690412427012560172713133021879317007663543883945567104498125293360909651935670371646984425701792342590460195296427996665731355821628522733339162298247479463008593808273963791846581385638160684818286285863804014973314684292014071393091202060730954907721592747911227104195642400120794206101445520823526504322219600881062209782149773500954643394887678792204884212685451891130231394233261108397820504366276479838726472411258302069748829407713428582319414399429176253020151683559685603581801696722802752728821991890394728611437898470807774478791895497199203965330111095977245126731398065343296499067700374763281508795303658101279768421254997775016429879852352424988646440251032184152169754108477416877659813563246279347110532337786136572881290877900224140700198412111450044925421770390915647168998735146830849133468120912293715538069926901304335094720851834383595402055797817308785840765606882407635156742004535217326387750462203880377913754284755624362938437135847740050646675594757889075636274264456843778192049929678637437410396569127843885553021357037106879719483481465063181716573647702627056741888962992379067707801933098090827389246393892219212308987435294546156319763570660496774833004669051136579740513083044227757741587894062193928678845056283814961786177947687516343624840943790043462503867966586541844550799862700084982200139283452065600997251668808558869440750278211982916349502507630125903750759459547260734228190174894772230697821696307137234686579233389045168403137934859107208593589948655211691912072232899351737106499501161609275155075536361356441853388615069261742898344423920089004903553615538481369600598223191245811589142517654959713133672239604295700885237765513583891590266090065670269037133411112735466294420002750937922165982165925316158138016184824392125600224200935813667682707785405217223515456089356924893320550248931879933616020191876046340865254092187044738827959630996060995393942890408486927135589717588123139154967923659691951434119918663352471666523706856704202992324167962566491465291040599013545124658002582732794290375742998623734933235288260858102760629833517262557060310717089249272619786365082500414297852760984236627294056214648258024526626984425150665987464126048360443689184593673521359110719022147043974922747372247673116238193504836948042414631368439581904098068774382446021028903706224448640172176622253596716404169748036764423683905721508894002188120890148834016047364965553864513884917537538777372987711408185366493463857386660088388071614508110940908503761875989577376239195104920066664888463477887946054098273442944746971702247780305822907588047938823830814545000643132360612376295874850582908477098450030844684206768177048029831515607547963278954493204872663478007759363198642967552351281252933652366679758983032993814795430572293219062842515572377531835817364735813703907465733547786732833362351845798451209639609794395866772528928579813633718970204189245476384557819056418594211416980935577439678231716076033782433610568648353514339976239950328445342027575665484865608627133855567139282114378095556254930645372823564163790359410261490634560062697435476128094926760813986944761219299503804923223627686097819254811497539448587851483612726233307921023174540913025998715758708164856371732803453794756843178081333199285288369006297369830718147204531377459423246354398779934526965038602251184918887272565383879906704440459274875489334406736500862551336155978294580338455464244395380093876126447387883167206725965326875065826964630630352916489592883773680170994679396873869683810791793484297962010026460773635786945698319554355191376995265972382537401372298603211311293032095109953801200292052271333439173555970249018463114181558055508503370136529212900375564035967065952187808624453260996125088791434839618154655389377116976460497506103866157169610240232143184148082585915317694653077037052320940930004480112901095816835403874018698455998979095398392568458049810302840469583478137009668535331989716290771559199795505000418215840269581720906242441848645887963781047129378267718101415596309795196418094967787599245124123902185757738847568957312706713750245171895323681757746351704144919835690782699015191776113342923564890186349804456927107972739380603702690974633994845087091720997531328345715887858775587628241809598016094174713506965096776918171579072955222534621670226909034687265574032682484471157621803941774821568852773819506967796289452872595737918733308558853799845298483954022635048779680442576671226595063946384673696654124102472239359984473335217157871196511234705502466552662012678765496499007171580544697838080073824548407807783220380062554842308950194732679868845071863965860278512318163255594367826584547392351762337552619363362244243040355278539769482559647492721466615148531301157108811240425696114640308455590954944571975235682675847289256038776247804093795412234631856145920332996373529761610095113069998968092501861741073172611658417908382562747614233082848928594520430084191753749394066505335801496275086854377567477420042391362272704501973022575347490178205749739198640123272290461384229225063883908241942418780490306297378631231471461883359910102111380105884414072972115613205379073167510557739620438792620931071971140396540216815977464176539802786293260443260655782676388598458591796335530609626456519840175687952802168087528491728381692735292789239067515066926261857079894642218322269697892305507931693509902301992839112878675390732323058482042100968325221354634989556682559765159756980730060584554534897559821244171839215683736837298622591305677363080320905012066256049817410786550659652219630004726274284462399618720310202278017865799387793674229907564981307567728430712600703316240348656998512247232094589765762641567400733725064175819190913324840569086865431826142575189554315390631085460566905564682403153243996500376972701955686146343113089317556757319591443747617795233936465379842409842715589716955222022151329826181022389198017697258611357150644983916980989396285038917529135287708812813135414082978543378476030266392897469295424501478205432526297834239864835300409975941989415901902995953441716107460729502079242073802147046960013601469625689257850331529235536416391118086552148517859930448600565183532382123917785931458458929448491741306469028874501842895811378611429537799400280599801293610088472625773974036569159757106115818234237698424529738005812188716555162339946452812652101394416293322311335633639962096734342614562393347060428103498766866562172413796501188798407987689965093833128532170177670944939375096303304275116140093650872072720661717280414152280039717001630560439331315658899312517924492288425057405459726732453833457766026331958277003643928928122499186686171457050797978266985999578360776912660352539902981382409494982510077669936028546064367399551844476746621825891015886759861315997013177383944139781807833989847611281161388579535064716607425737229550884066776822609459813624363811790127550045905751553306326049250919342211704180031262173115052615818143300293035602078864107930501926054495769239518858653823334869388518442786825950260740295016784910486059164734430411811432933908207395583956984828179529335283138738224687550385286406498171881808934111375301078880079931377661964101885674045410508049593107966277716579539689132474520356438660790321804168432442271929345727883256392013795448928168459177369631433336797547292093617605975700796526560934223257269627920121760553195614294013084068594094808483896154235448074723447299450219762227555601050398129510068629030539934820467784126880784631190793155654649548677918571109847221843720951857755259089896030370159838421738163292404320544355578076279398942232176892165885788651375889795881000884950189457481219095615104716979229317863304258642087432878708963805156290064754895312034892541576763460689688333398207419794622704029391989132953190569343575671007507776726732593633221932710479998003234652001190834667209051758995390613206398489776250080762586285091465388628751692384923117296817540747720444682052345067370073268648377053945585505097346569894982476647297917275411408771130783971000554825496680731269054863309864353914904888510054089158879595849170141935309450011451822733575468339163710760592536924933689973804585117421819373530860599765172074250188929166640405796591287154761344670952866954528795054532596187930889300560646380615691602119900116700879762864053299272966412301895304484021837600894577386029059276451803029500046688111051910617727966239300242449090136568134166629952100460613541923699845629912697820392773466581059069926730427401638119866015267901767938520978339490522536136585704107897002829293287293841655363873323801704445333772989785840829352456143241030341020112246956907196326887273865083961830864046440638081036484025244000614311929609876192118148333835946341270176610777014219284471408081157314921366435358051016733354478529947509664700114322500221299836677705359268703609372405723565600127702871350183646898106008088302264936510038565851800774355457408931030920386830998737005846802269210992194836297129550147708536137021180706068973593240258523108151263537909703578354997751971332141245435532422117189565957743366828176607542539722079367765694392735719230200941124776289330290282272622711605894152383960951986118176245668525798607950462276736303982354773713572862863416700481975091943410723062124021419972939184231122250579843986052806393509559405055452557032419000864868201980822946521284779170524271484670200985300646169975765176904349018044125951547144590235194933637656011322718885518503581100464939089862766174070367437782105284228082844416978692491475592010559180146433256655779271972719601340011820652761873409492905633891623096010509849689424728687753083136275508284249276262426783748187157879724843562653178339317568918748673046094384869867140077878184650081598631756726531104842568781576394111062339055919555329374280360075875739434259074035527245045346115944868935429395669114144300370586004598012922993652105438311976290301924114224997456909688185047349178573924938680293828764467729970997868768100900320779420554309524982598370923052138247183205490783109788446683556101871280214559742857257439089727472926763785711378855446194302079511923011412423180322089864488448976654735476380824505480452985221160327803543144221633529473534474651978343645622954440760027589105733102831315453326980920141969697106358829149473634494861735486538526591677941764825970864142506236689125607024846557782032582445261918263838994126463559768500079262391585223143521473842536039874407854306541636953180838596495193696148114787722815170138511788584598275051732119091107879734832763921974333821696865446327394465900417279957701588130695771311080455410624500448452451585431655400536692530527220057059772310789867152959914887739969122098808791555132512104308378384733281242539453043043751216528670580044334900629402729903301233322083707618461005458855813192978587191662882123829133455875400482048308876262175110908227208847456792222466518610215788587071215249865927307632798034310439847682602497970494070525931265061536749620434713078562561565132992979165059444460505542096329761532241141339244793703041377139658044334628320560955744144100357603109047829859933376771127760353826029301594883817285667201849568973704892327985576788797769288518811236724749541982605281602030615529110489753432700909100028501185873932140046594995629207992882033644357359385046163368699135112746013560914063215209050142655335880143247347664253095372824743737934617360507828664149530836788008636604588819731590016466965863748271996672039774850810905893065579742248564376551474659810009942192869857362619001448894966137737273275095797068921521074646419867404153287082996798564234388804916406843921869891041775077744382922298015204802873190567749823334885758314546101846828613547445421846570716032875747938973336887537990828958958781056470749694672596996625911149632934369727890962798502508690815183795132407751639691117290513652451817336076958035305947725658936294117910439940471173855493730427760683069417529704625391558241427857686706475889137315036913811954121290876720189599947067098707304870603637108096013338660102042717284714094481043992966996191560232466056715128701632913933466865443536805302213778373796135160418198640615114496571341604991636066038697095763140112529613142052527427850884984532781537638708639961067906690569717452528571431500078859865235182633990536813924924316349210222569350051623210266551532612363674546742685724662545834660764594438628340167038936948718459618084064504196146030773759848646842263103858824485288061455490739667827435524666460429924412380800083773257670817200228273106637332851823130656886373853727214875396571163410016784505911445156282379361474515355552967635419574094162183704283613213373453523791496318001984482426628278755416692625462631743765949783254157232006696873330966022004584749133231396618511420129273195317808511802459624708326383338113272636525319676338832491120770433417334049673845245239389224298098431586035947600198725941089074515006470472000575634320652657582301648172903765684152859376670320417730671354862826655818217056004729333129407257922676438711781361551631407114929124655983324637779042356500748716897913248617484875705220093218854146432577363341349435862777244710601905105230201532536292415127663171637905770485172387385722660109673006594930205105968684327471505304670279844083610077244381438984748543453267081709526982614620705812280561813359836005292002597644773400601924272134631322074582357539965198911348694984038348317219405805725119452954804952521241520897340656160904843695023466260412413693583072965085022632116140907961980006761350488089823665811878111480966266270422410790278339869313373915573972827794174673348370817496311123150861559768627582641964280116851163363721531389612341462750084832435837603757224269204365023162881660533685979347328965678520549076077748023775255935213842669973377878034341961386774410617313020018124790574187597967841707543645750494591973165132246983072538655560753564608896591503268181533862680015824210773513417699165675526864053594813981938930084701690754292063467246259577804628312810448959275414283300568728029741731736385039699102656954313883185310669346143248423161223648587962487003572599943993624428312616640154131937348632789418246126185505625487938098832723699399412063887785958834638013029395640795476810076332800728611199176642398653014316856776405107665737640118478014625432056503188960323314778117830578001319622239966690781101291753082549777298428622723627661883560090085561819950952772033755239954471069440842031914567308821774040308974110234667333201340022682716184916157042355243962005887146251464433325116245457164020351801318439218461104377906570937725810452787034080914776020846817063432965364791969868004642762362355565553491197680808504100816244497666252618145438439438652001960517285328024536678024285728616862679803526628373172126816579601124330205657056905012116892828104360421030687426363018779928111310615896546734659694947639458681655768877824693532295359376701936852164312359265220557600825002985186315880211462380650144860029570826280925270429115715251445904983218486173666222200979239535376077347829017596061209016484309562202759932410600878218054892364691511781509299567072393718525619160888768075227279024677870849065939599749138863881535152770118871078730430436720314111733835614785108676605257433893023879557118749510812279525059688755756647493435062571701329624844120796835471945048626103606485618805453303021271360467246256964704826139989099892902954215050655894753082390740274996743265201922371087711190632042033566272255972498498463657603424759374348229717582818069355005835256015010146828809118955733423687637511234645303148557529920510658818895295629368518983235433700884301961527555049328206085373959009234481147080418437665438647629431493965995938297798343711724899972579354599994831505145294680898245278843366492984953862464772462427805777031529363204515753139729252862327731240347849301670499561560914651348359672190944450639242930078435381491536774090312676099421093441147108878680418165355065794082304456560031885345461942603715057410911672713435313470270812229710150551111747035141269275674660461778835532839839621772784995271375661408064965301707858733466844489360978736470542690200485334077667461566858362189816712086962022979719695444047283859031384860690113287644805774012836329362265652792465325703980634108152544370191644585715219487780429117848980907466721818475580258304152176623972314639869649194125201944902535844310327376863708292078904043049697412708448534343334710120470351864488018017245564085022796992940352300202958751183070930952886388107146423433869456508744279317523914804382228120489347714010343223650797338878708645158326793358713392446417402390880796238735230191536460536064396000164564912916386295615990583812276403042698208515601498660858180964369255106605595037995423931931024005990899130091098710791178080858741863983471981104758874535312950389650737742087810749145095252774931636579256410826425240508231939985347108466772323467061941811964292319356791664522180002155642544977237377829537823641522972216669104438845347361832110342475349685926092702082218134316301925581193009149703025782041267573347470536565226203914405623594554854747673541512292401337998286954998450094916031258486984713587332142270392892341498681329638971132999067432111248443733089496046946336881933903306954693874947060876869395439257397015795126059708159516601348158658768774272324486978057090399707526255658314840788682196434803894883296576434163132467455489418106725514513397886468459093437240655443460810017177387009330810293746012943229207976833071468190992242816275991507471575976759557919424395290706089853960590197592200802257125325471547609586797288478670972962259061244547656143959700261401545692167730963287128467305335359371786701597333987025811319295973771495193062862073539169069794920703823337226670337786924337942211916423169392775237573169363894832879541277299205481819829153573275633821975194461177298911694168605200939823871634242199234659763843516018544484715732019905277123169888689479940474607668342866942404849888714193457967659730668387251568711990541934632951116902172800743912824257351094898521124167907014701820984851085134425683893510463413742452335816530909882099529235761785358052817475025774828468236654728614354948613491955606362608562172448374313280611623966093916533347104520766671525961985667164317498656819930782565017053557452415319541898144010069535075489953377701363862375651729519899419783807709838556056696336210608096669275737224057978019384495977376819759684659545565269194145999001205988913315171946263043655675389732199713314150362636762540991014193446742614304236410131680953433910872360697214318917402825028328102947672365113527500028639817625238511896650435071033715889564934522662145143921516872356845925200895886136132938346205940212837384203189316013277436307127324599016681117597792549891471748602316238852939844421394104062816226401997343151892643117396254848798815377917827474675724533571231312383674337639373411133725605796984747562475496491932656983896841149533431284262477916444825817261346769833169538223237935065841830415504979944814488575357161897289131444984762237365871745896689817761826123439014164407447827877264902291226713180838221170052282757238464921410547351568933755688512895365874239061138906068642375158447873041754021816006001175585685847619554113746294221867939548755170599691458811812006648978678996155431878679988134921384868368368394582487865563267887662061757506379313422433135403701159969982339815232563987253956046334220955452045743290400466503104860848569883820442237042513072428125166008642760771552107101406578785361269907910754374649944087109486050266515817707207699042244690711133298694090450860979853897587478194337207459181143575828307017354953797468421688284428413616361443486927805760685548542737651151312656459902375948492198754793430910480777921535762424369319121637308545317871407309538236879173292253346559453164954971132780160071706942201409836963828856651042304484480292815744063393352458092773256619857198307657189452182156629795542482006715291452593483464382246922396002396304143576588937524572730992055895104514021853183239674275008970870705774234750628327183502872582122129894646136773989487975884449623551663364564922816101964613061124648065752673746760343927671145429974022065830718746892648724233767762137686392865978667832247670728194970042865596543349293653769962681441727233424111040864735562012245714435725951534633794456826683429770747690839724705702284323073689807047335436789611134472515420269539992299101738967384616177040565658327166116893376405715347706656074556990695068820497414759015434542835410902527110772910766864107588893459494222628651607870486593298216365237183649962980389136418553550264544404376045191648691996255703064955816404989130741257775222967985914052402034455062001687403522984542986428778843336536383190913280928487866441257237235571240941360812693537645807312189520876896644752492384663716272612445549889332837916381215955187606031807552179302702130039152562710997864851046229919166200270881231382494685980039809760749186093268231415590944433535709511363981575229740752151231171496080649048013914644371856651895643495756716181320344154642857579410119235870114863940575813276466382324466957143764056133040335131600815169197582767759439097576697233518056742031822805831826490602795475981935691322775362412892546468370715044752356643084430013929303750827037660614497746608926733828629782642380385046755055250434250362272013938951732997494643377678205346590528001460977327361430843447042249863443009459327498279520745781602756713451201247529036597692212374901689147254705531186591733246702769235935198761144939329930547325453535732768779279834851017317311524183230810633188647580985540511447907022723892382882806699963507546926350308014316192831072242487452784541081102185489177491548673735035788662595581829045788489270426918404920986164484219718480417473984476905487423733187619558924522747515581799454336809657544013663624510296930901974171504580250019862266216748268215788142105372927104446029330901727126818961726057870477574066550830918202932873207448191208859595518692707905941941878921007600141310299543106528439467168871000789787020776696180107023840175604499946487154705035224785933963106774029261958094709686979646775836725045505420369669402417669796722670546720184088484484879915906364850022570360272455355081004119188377021320453552941758073451071798995179500914505274835758063156456787795052791459148554892434288531753511812346344445701205550640598003201389781640182270594140163694384423796496520422660094602011020166105529790590791229183620165041377720705325622937576444334080010399957079538760377011597809532589086561882201621649787524391029963073731380596738798678995780060447805171710653746461424675553044347249963647088102401767054125995901329909401355806032721431249673759243084413029501511487789622417036015395458647651439332274469908223619663176609228224094060519223506412256240741846805039410738378481249212333961904096105785377944610865831929995233026686954838649042652171296874139160032156923502514201175422921540337010103261735265405840382274937233141479781002503438613982493167363028186509870607385417626488886137391371840917164660116371402199349777682690311053400623213967702804121755697810412745577616756996962602374434107208942294238258192737740833968132229491088191063100538317225284546609933254676607750923776975238667389344424688064167171790629984878160561333737392519462375083302622478371327389355739714926059993270468569324646507397389813298390771590067197313268972721323568887090293932297040291009639545292209455185174419844490533416040812996583060994969357591846950203684910233371399069406726248574057859827618726825865127832649615588243305212152561288541053011486056017823914375197965963891679950535699890577352352893153921213975414940793256781270787706579989611552532092298259131672326907091055738329814973929508140623017921062792802804876224079362572289545740796777514256045345340718314036963346348532964571769983597862921222754152758207849231292121084000805685453980681826180100788377432569526373012548820788480487687917900864034391926767483176967320797949124123599629430050124162095061090630273838829385559346428724643627418369897098568325710928316354398643407398151803507177154523329660401308447765357769271781799625989070612129165436092904330188246403088732882022602674111676708221661328565379314218799232517187777815810910891372917753223093895663429460324396574950946617437334373558548576165123376935364732867822904542746115792209766125459398613805139152718549282327000621575138891116684389650049162330659961871347821345281209167655707636063890317928808934135884310500239620480668707404768572175543634458729334869352882996339530643026359469527208431304909187848274451944612447110936381688849621405501356415547460781853356285319247819939306311189028992406588308109877474206777836514599460355023727300358725643235271249694960784582403500307767326765433258728967530024391258012932165778737527758972551621284872885521699217880545961215687879381409266745927772153240600087629286392784966024935360357801633774989256057225763419343016572966802626774255844640434922684906995983832682939941639746900329597472772928301747230551847091042161138512657141556227032821939534577291572984598270225051687491477229774074793907887154347173284933130249871147529187074732334689086668014385652797261167172293178547816719763920270622816174162560471495250575145534069840402080521551363596098536688981933108184223736047713814096299429715528899794074173931131497298913577627567472395200332636060269115016628620353332364184272888157288290617583768896266366392291681064622664430742411566226162052841199916374025847383612465608363429882883555018793007431129880621102338459751731246646069847364034944256400787246764382007166248873746984312450891803703796986908467798820615171616342145323963939559565824744368337965196382712799056237290683653021346180336540390038315799614478738845308707930570122618811976867330938435354341871183636881450768306658117995523119667503973761010529844839997632491509548536734466923213723151438479808863645951314301595518990807904279057984355411526006449096780375832106076596176661568626294099289221401899177719122279194618721233773778261856170306635475691672947942928872315415349515526634082693700526114545509045851019140428977279134684637306780700519602745808320848260650861160986704362679073129746085056721861494704935053148847831385347029740703226529059491956337850558508391857735390150911466065652022986698528467382348041096667947606426790203126806588875851983662918792099193012434472768282127956382257844092168185904826510110724382521469680634554350468803911435640800125936378049967054917883984372176472657467471063299771943379026887074970568047768618987126966470933597354864241354306341163961350095550882202376559493739916984854300154692611537718067038819797068469183718897450108503421871598636791620287352282202520469390876256630248838795757720884338583139444048211829198683367529909853651104735041640961007639198290619318483882204783505030321086381808375290827352600535505070848293209567919408110061416574649508113214295606937690222516633087470924203258430862123160202370377398994039377015189648971805192683223279906975963274148155356423811941300628440273991509929722731438178976949715410218850710363487572858538496558931581309702896891895449620401995561391284858175233179962757881438111751827670152823902041593874420453449354298943063618647105101567274195635735416473667790852116480749017404952413672377009541834964092701210259678905711592839782181508998110445180559586816865634361928319106443749159134196788028780737340688123256150091556819302601690889649896648213545674938410385667276004695746065301103150160895566665103614651080235543309058737824961261709522387552856728450395295100928841975378209496936911540987391785569360627298935897764738770763797851978515786987013164491396103358989489858652178804407414950218756747380644307985524829653228218429439367067873097254933480769727784445294323770520974874088378976766925651852628618722987369617607445431473935452869830129542133791656041913885336332890648210075106981894154745083614467021783189763501613203621450650086178196170337634708888820354747481270376835683873981398274294750069241651153791959623674181700747265669637184145109040514881507146979484006322588112455832082770852097264089203323549474758571486753749046134219200880027648389385331833797076165429144535367535977896433350259070001259223756542197119479562014494114593412911147415986526117780619034836343935355079334299158102654726191992767919417727226470020098801994350269268911761428279513922461177141320921407563091978109962056102995192447791466424485562565077292699464755948003339203625176092087464792537150618158765249872371598869183141471230684138597126233188236805799187190524565717518819640225427944349401704215648894315716114123848559772436367014003396253481929288876999938654036992062070095265829644822764023979115368908110104747253208961450031288113533317141111821911614109093115246822015009848657848581713195743433313986756565494566671624938516044853793811121731139497232194084163345498468468686316762451639058046092696121160897784468415417210307324235772666314961903963267333663917929821321313535485302977812831228068689188775833548429239473516312129068067961980811292860485695999060735144991870045551560877319901418975364051283790335981524912400018625012248383330318054378595850711971046065935728911475103120336410363979527340152819998801409661263196480120411712035668572876558808045901393799913093583843923566163545031268026600902648917737790421722810497520724298400707853720410798840409245408515314442633514301162716660579272466652047632349308758608869160671327554682321683761730072977840631990092945856763075952737889513235524737886015345920736266351979918541447030607189568522842236692750828645042056694643184837948438955078844756318368109943775564119809416421543925425064388913630055242657200199591389403931945732910769124947297012018456666451170059767849004260648262820578075625611534723701141139320015767880831115095467498013431672963096431878255197658466811489003675760596607933406877757438133120026012889562248021499668900208936814675021451432001662968634236057954453608979743649735204367328795229897068598079669089090315384401338898966160006445049955083938902214824229647118716053501041179707259047385938772409934646242259662121369081405576092667813769639888324316850265136144856958118247931278098432243753302910546457636635775320004972633795428220583990427729105171309406788807655603079621196566151932790700916269878681460500140256818598184315090576717312032297100150236854454720459781461135450884412896537365074913131403826195021757108737942673808808630447517494582302432994843961347719283784891239550893288733795731983459606017272879683893996773207023381603833615069127074453455382088755723605878255845497053063153165474441575965946346344970191983451749740042127949052603001289200366557559899080302240158549075893186991110898876590672680575094944265367032267438097091976165859541280801049673150821813576016039017746233250656163475000219528697427087829133176352404107612340843982574013565404212222201060966899602793136559832475414858124373302894646335043587271841544952647141835250261635095312904687034335879279229991740258905026438900456606310949635667380166470203843933810622534823541951279901086841112592028630534337382804946514791507048320680709489081592487276765856585312608423959319636189512623356655172576161665956253680892298587695658794154419874596812705786299137722379545314545768227886956604755131443562273172858864810671498448593236634783521410324255342441546739602913743778078107340997470944589192052497013868210000316219193726346077795142000571736751102187280908656528446008340533869100142076697333844870876423384692373684849396965617111815164740495643874715512238704450782993647880547319226725114301484750779097831477634683340856150248676660980758250112891634701588698435139646926061443405807301647711079409172887508022372979830530905084939144059020548638899342467469562697039843260887906399539261187363229959770976996067739281375057197689622371046980132560817378176956361543766041058072625349145114396302638618560768034540257865701220107484708474646752519563699850141026370125096734800690848466349348817111931325711854891838708007161826233926030768078689994290045359089826831636853919481438073711976229532673424112824907481906066847415545750991213949010046367234889014790478861663910543233476627907521160133094264958276713332056288545411504199580086423870431007063350282542587956608495078196545330806685268354818877778598000569585802867891584902167680349041603269398489892385397314218834016070470613584920469942596278872344247767822873834234320604281265620703150637276507492005968193422313128152843384641313891553636806493419988049625281470186742674698234087797540422687437795812143107375564084327772243367494558656404995638146078295666566955927193885844121610173473226935935772541127959358907410264433467974012036742543322725117540373672014715764528263083770152754231342689020801137452198430319071632756402048681673053572155618218093280056491636492072184737608099003588177510904970505336656152395423793215698643468674050915513183881179923951442586796742396372388600511465214645764126820449559112653683229788090927604664876786948250940145818276117375072432217442936554841627076985077148865914279881135291347001106100136715507268180928000990704569278195423278300184043051543378519326925945238201209540754868653879786667640026177747140272305565904883069760748743585420397527730342203977925929004554307426517805088037936714939933574956053515623621354866332713748820007528882899240248888971690618719455385009694883412158496435085450201295057533164771087080909756659485687084918931359133084871460663857362851784990471117143190776708498729978122484038483046360376958253782637594285757096027563290396416953682307626674976970968404207082733678575512487201396823432366147819465101693429455842080749578845258202943893536564864323809538639174073959718945294688432726247838547206082117566733902774247505554881128413173893901905562532281583124946177900687177423989389410319107943409534550918191201494517871988999137842268998880624747592470669392823028292363841168671301981363951269360476248664193090920003956963154725445060762989038531182981123026309043827741010233111967353019176303003602523994864321538497429646228352194127591272478196413566160025127827207944065843677391434915377384397540827326033828564085133803011833332608103570165391216875681594366011273984137287571095224827015972740562351377110658803939542420253918042772729128359035803606477518463502463562720484050517498654895795735716876879910815375559655891015309753150152048357966386893435589572184507653588971236520453703994536367414905039736703292053421919111811220472939444081136437711545314695189540100548831714920974698464904914583949304224041790480288669478672750272598375955731928845831569137428906222535316107959295175599275571350751855087362523918478082703677797132650326692801955637858401336547230473287323375498625150696204444199648091339265134535198394741659738046417761779386410606319834078371747284091605014320546726510069617354291241923061118720778218875331803074086205245586120844144581825882990605936930875559050548143205414858670960984311566439584521271754298571476863823741289253318540501186200733731927821645376065541187891330952582319659731403621502477186939407429809066896948115325560289183102863528110425575082074629062416720331529758063270052675764671412598742051280538991017848458638297156430157197356100919959281354891849898125499377079095426666159051995479710526729097444361622312827053263099197769885585490248018800223167635417229876148770656057493865713136472779990028123388605932663687016431815887242620210537369028100033099800838121035750089423019349308191172684052109435921573892543667074537326660088081824027364589328400393589207111874493944780418834677296838332548453059397833342362709206710136627422648753604312659429538043145273569151365586890517691499328737018823563058819584788768169709964885268231987312251548319510791410970205988228757083953077051321488595679511118547703590939067028200032592665304062133804414943403772849708875397019396350226417730213206766595627635287966636172552883773105288250410565715345890914291674290850166568942494258487867786333690683008334776108322313161092050371755560393755296583230226045578378044044674307273010131755091881274291888157838309018596125788902526291397661898014531570351031511795720117075061570153778908229452424470895127788217051537846277194407370116165428961704597892907098251727951296234930293906776262129581391028223119603031382213263511601439983183440265092684115663160690907019375051487899742701492997213087001416907386826674993528660482098463773813448728433351719036223914563560558011831911423848118443822428154841067163677194052484932711463373139257913664083973497507744260081801157754601313379319746882110875268823237842490329412670515826929905393420516682028796610059932484892851556209761675777493244174322881628050794083420337867484671753189619581566496657688013355635839174244788284108860046155049631773993180900407252733717472148837970696146966159009037948814862519176228451213635690443029436228126098598924995984178196500525081375068815359047158778669926318543125040084305331139485748299933913553444994005893069955967530479914810832073814279065742591858344603880357422707271538168482384382964197083332100273648310254553286067514970507336579134801957476586261224484719384059626170198778624231887082301405079570666219545408636574665742289786463168810174212999666883573953884793624277140746746733247745325733194591947371512626445705517186831227924570799987785940991557124402340344178236865145763579331977422743596529800088193669119235784132519160573277159728493067687262404356831168061993974984653596260155704460907999025642035005004558695201662104274827068243518949036793309686391978510005021078697024426621445187399094917608616884207632576692783115045337791268995163661431232675760944127220439497202652568595612338898632587027527352708883591845851907173160912085225894293648340592589968917283064629187551814266984449967817123070816713291520348159381938493397982460229675078841685879276916969577160745340149251951571690252160216519596180543361878739705184859485136237503431440117694922172423634457467323464418394214111231355321698175588443041344352169985473923880168834614833689292077032913078472727569544463387108904112468369620157174829245113457544355744873964608309469285832457630284150912795819342284327541356235019819727398655269183569718395506615861721522401855150154407574012295304650220370829209916896041715873374589489132630605703354519280748060684382912688506900942638852137638615487432728219140425429868576545408780543320250154692241479383997946769435499170152071523804698037776448427146138906207376492049086637567328374590077880677251571663774005729349986310845381675349189681587523093362963165555642933392959146229123319484202338961721907248614247729447132238354493150479229079680348809762456685320430257004376688901635065265009033288078999662609688404505320556784263054816558381826314536980311262749799120917914803923594126015342191054713377304910236683795718658192993878100856389663327328252240180593862265601367583508454903383128827156010230308600170737342030092737075381457515088272142996695936599089232424939703732147728583599899481088842353213471916483165510014781382310961099148325052156967892383334790933448886097517701898692746902987205620052565819950957954368124211601209408232789299372967250288745261142027849708337117362391348395012320790731891192335097250917640004622430880034955224216165070655749993010600727513284986839725805038266381988691476195422279080464408726058997934556240593989140329139198715623442300943204171269849616042279325857335410269180188521269354085437078528059394106502707198776911323341714991004422345352667957390864698323134664857571893200573680472182866264167913982940523993750207034720632752015086869753369057905007599981001410882026345247078066783262272014431843006152043838482161400427657178546641742889352348995242354952174971872565275460905728311626504222725831847468831126183770442308992393042845878993051093797460649710527983583158899971904698427894359548699849042525134042646475860631950111537689646215193169287575351112572996218184397568197905922319843706639470326682343936214308803029148544556296050210088053376486343673278263328642474751941943771244015886820803953280456886663651437673882468247717566992236178362227215146235173345986617758077083800803546460664424262275294430196949686524720477297769377037193742134070759326898494496108754030101699555450917200116487319886519513345029911961195791747013684162078308551942942741383139591047583076918499091867326547711233299170401259989079897979064027213097117480940413432696554155066647921834939933501617015707669213354217661807560117968337291504157420478182997781911901550871314451323973167178601303001623923556388895925265489575150168990221131213929188912323827172385333592370670076286838483176188686543040837916387924856527939369761354212959694405399716519465792016248422698689730214967551628693625546327142442346003368658893043060041966634972436043267507550570501994343827658186759604058690078688556800360171737342598699778173306561866025606804015953228330157221860748873824525720871117137461642893760957991378818514987301141370499635456580810951165413142044629364222817804481848658335917088934374453172820948402505702361831379831737596575230186519832599956862331452467231846841841907341238964735661111421771501189804643062230992988982191823288440856679774492528931449575063697507265285023115978734437865684434676538139179641107870240656133703536382414691304227219860449813520396217057228022990424035522794224166029340473075243941700841560702151517075797224883822203023467012737026165503855682935872382750175123147944688450942007719426353633771149592219654903484662696732022514740234044707954905966660923029465815133194897483437293245929259120988816605590864205331913409084214860202165075014985361759364554495432715080929832723220819344100105304351333512403269669021498751720488366812359883011240775811178715405335927037919985858559102991583209452575213829784548522626108234185240755025338019058425754645816488941883073417861108445007218886279337611810890891066119796940173064787496323591002978041715714866347593630276963028480002223130884308929981056360317447859291141134796121191685109966976030732880100222657700061497877647845224621197944470670981142853783388656944132253246323842303107932067989616806406142581170692814351536011720894964934766506948512610701344398884148607912453835461452615149811030086311578739970884433616254642544912887294749911294462382019454351392809627403765520280588143667234234729796651456719152263573255789661411386633314743718273255379764069407976603156836943039682575410195962814973299967759390970865141804470948486347835563389158028615544633290226243553429910263560865847394476200094535826108472382573304303977663143208649706488522459209997122245262837566615937390385760993035085708155074407459203210265507597233287341825134144563342590732878071890097884972616471334966504420472448973261852973169334107920190335061652150952496537387703527760284216102018855517929395645846683203631583682146266837461739928511839596093134711836953759479596189123895202959997351650314379181587423305848923288032552188079424401721768962730105481539012886969304645033520301543566877996375058364538746578806313384607877521734244386712977331663239300409230640362168203332992099809977265611350994280678511635373160507312150932047854637228489750042154650416866012052028260276124799878257221452203586138719238340091581105623011273690958390938956484177228151251862661046153912462915584691666211705004117679390274479946642247481158327287786974587905365628430627505936322211065454896818496670494167466640778217658922094662393534805698456957646679366852160064119478385129013571768956772861248435190680135479315125513054055888206457722115727502159608799502632371359978433322284154466813022255324415565202707612541770151383454676445728468523362280765166299182797820335095895508382871367924510977821877733796395690516267508347035802049287869627981631247120249035679010378309451962112961547082950889593816873825298045579352530195027061662654251148073077070211701294486938113587025737330999850982897626935901160017147295608018274592785379864223211061859051090589580537700500573324521843625359931865266102787880584922187628342742659669041812599596847294632965051174181267024963576554778827616726877787608407032395775857053719372376256605286628965209770269268219071031300747512697159913704033829507034232905556212584021863461314054092686456394256251527330139112334442571087264513840380709388540803118424749083501233097038890580182501239891085944991635756427114157320755702458937411489909515318842596100684072982405000885674978833981217342670765585533257167872969206820639867520624427090761482870966347740998913187007666658656243358284260909812549674276103908998423242422539713465046177354955854648614596569877033729333308235125293225964734552904068975442704072472332889046307533632611190746222022979648914243109108628451916509271044919408825308877259444782651981515973917617355783508856477560591970446841258096961219815899652913181238840205591164220124530325891962221673756015545406120275401672743778372480114979966020328667322225437935720678474963977578420424966966301498327725106159945377286319620030631374485309295883791235126729723334653810175980840929591740470465320993808254842390065532572592623569660877427017026182477425589217270265172657017574372429825379432422496336688649853473333989890072182593951609037133880061758516166135226176925272189366193603014117091518438782235102688492769288180614364662043242302236498523208908131339296783044924790194085248036760637053533106947152633459955376541088839302265257621112110037214578839571304307290602531355956195757827584660892952252490198771349590121344579664080316523396139300067809477659059952054581621493981146978310893223495071807221702413712923273463135023790556671086399110499894581022943997295098094164765904406812109793419759724672591768359697173004065092975317419047110106409739795712298560620651300606699155649001405654045221850469523332261487512972696118398398065573869727099901157771563911429239743143128563520198944962420489718227719832350230372595967958324449777258626038335703019038068996985674335959893509330629753904934374643854282032875729240396150848123865027071388962475919373451146864424213352016962860255260359386304538930255854508886433646091824093885664432537471163338657950471766279988384540070512701002456401450753496312548634854485135499833678508614505959726401684086235419532305378495428049439107374649907474505554599704501078209462396996500938136377002748714071639764645738380339375605875098521357972325055338735121197449889738663735372592671528130620378329330923612615200324885807439658477869892763645767363681751772839911544144170589628520168172450609779245599640868732422282180174951428040346986233378818124951197723272100148728508007088752816057803061456025991958621855628996360997009518643084314013126288452738187807342757245148365288890369938092382086605558252212112392050047554831990260061927459319311959444851239735879996539733984694861805385329204392941042693758159247843152637486267276774268914048935280029965420894657901135310822443110918230500160636221815477786758353893739650097839487306510723009160521395282664365457744045630576527207507747068706274216084365817124676123851476035091493874012326366598923464218659406905571605787919136015916241416154596148374652166365643518089080082913824379933057339798569807065255927868689224290709088252933873957057470619295012614054600225103228011564098021516188054896740618972300734734336275904021814089327086555561603377064146079009010391823144663554796891568691035582043495616266419456605932071527169814989241781181436909918953052633148667015254706633945311091880834406282518416781076302198366636895905178110724129111084101038927450878301691171552374751914487140969270507095816923256671843395390713629557813600984012317465994831583378488694382643222522007812478630748304019635683828453313554500148694494541323116427633063834402315044610811831665182464175872346530089010991994807349478622170916832607786389043018005588625132799222688190819523352601041296446600342972885385779801121273342153660365539901689910687664695769827567602517222060762796583973586366626236164434051694049492438629536581579524816569682007367139715586245785330179374703734663763810820098417070626601679928294302353164882479822569271907433875922123894659972431820642922571563426196114971488737097274151217150919369670715350221473257349785893473365580156835331078654537595143338411828834013981059003915905213313133814061974231876684168989943746438415849235614353467668307009717273645063926448425573771737967618972994305786377077459178223081602305198309676650385253968462453515240121315197821081115953247910168528982293317686327536152152635529819116104504796359629858606661275922473914816691189955822585422715074526183900856597524081075799435087217782157980788964111393616432350992850627985222417327068353861827397044041521206606290680197906999817149118944112613600674008164979706273176836837819413358873764451443729896330339420909473708187482983744357296979037330753409785139139956276003821345046934932047492664773911692723941998830576464985668528269706922808450585095453326552325774462528024306882786008436420504766095139353483573384489307784683773733305612349157466526146519920424756691285727614278505312880363524152209918975195789020662291682170819900248216951628582120524565841574585803305460890792463078657336922791703098182462373165125008655702676953849955417878298202716417120751969759309960628051281917308783899833081483062710858684409397924890011378604213223700660803805769130077549901749104316079494643023873084419728100193141611899652981963336087401455676434641506539353557340588527701764685348558910622972722648513762500923722500466363182077615497813316085760499480062592754219051556488441174613092324366951075233631030965211799094251234313062516151875557594553539684114465108017208435731513435848686348433367997184996200239360768180399778617191894597996811070955946703346868360879650256529177839456084609944658100527436228109618654959318489616125468855454298506693346200553274714495102115286695768894841548094577692544831487536351638688758699974264106580178180799360882331235684735065584706453073583099174869290234520422590679973531519440987655062376993148778278098135194435699003196429984855706971994803665316127905449933354255003105316638691829864290292950916611397453537098431748852493605428732307335796256285807810166290925358388660796834928024042954739497813523319701925029661803283146159366494718119569659126181947579362224056609701079156544187721205984598460052818252054758338873396600091137358010383668894848134895230779001662973888364154429271144565326109291907990889143208762368067100042499626658588526411426722797492293375392915379197542807919942458842400419118346608314057530558610460313992645149393008261148084502827875858631236601320306954169338887655552664567902945326724974199391806997568833278819177928206929536810178551332710201145101850515126338751493576120241285302663804922641324523905511465491012412652716809212319767780445342736937383962386086089269773003510655435277739080092125379415854078224881365098956880810686316004370936343694457939028343526297561324035610624491580701235761309899527735573678722885006304395049251580813310763135076040084412566999972753208624330100723469444947183963801792226593790231087174631829355898510610448321364809245004177935691912219979048884059526341642040521803289733967983977531827551991310798887968568884741455362372129600141545958970519966420765548929010443230312983564297764111757115413584105692629227220106394821984470003485966225459554255389704620015090228883015563607705229046366536540215973439087203516947806977026311901820158734149639228315035329224871580632507596517753760495945097082320888456074185780180875901594160913673005683560624967468340343255617597403361039452451381040396653406819386353291979590446582592765618650337785610051122909311210331339311280190278888126011679024574612698807632965605659638702764889570486104151803069881968494461306953563981803810543579709379065328475761332529429482108586804088259486354949549266501306844431614370816810478486807301817349041119751532476743816375181128162965829857952515029296359571259642892630216286090674034208500240910593363835961172134862775539434308292936518642031978678891222245600655168223548892542611893329682522510441983909977287132390902648134512821084488711639353756930193471079849399553452316744494204870343294445260311892046279918876219898862856405386947359272605212846555944656191724123223780891506614202858110830282144372445931535775954144817853020947688879583940620838615776995063452464056833015528429097839493157793111919109340380112634609283856769935993862686037309207745989867110680632666691166582835210451884381716988381926058250225490347670290954726700728063486421423039824356144428752544518658933931303834272412513701159523100520912920066570352878722719857491465643790013490088556590409804138485877093385411122766334932754200017564795070013690869266401648059103713795431440703181797277713321820924875865060463824838256178818321547308655218471882055120492834191706090006277289286165143363157531841272677368561998328489832732678069963299351204722781631007494804424620002594864160709780039243226573762021315065053533402768046331817214466407473892788331365641626048742701091531373317538856560850110647776521654649288518072760139971870716793172224746877504957967898458454178625687485335131372807163369889196443222800603397570610784599165780223146278233049336473552260711548640348549379145623881059722012821024394622883520094136717510712087627095629429147562181389736879050851215512903534851003478215053082815287840498236412605265105948047587899974288867656120051933415368617670581672250473110975354247439751496929405458872451029872932633885101128001442139515889112174436752340182429350217133170062045211342790705126332251590730232819290561563635304582144341779036862264102419408913373937497747334183330717420140267820821820904398857944992703256845338112928384884049738324075813398045260189247975952107695972629033961451193662234194622331446731955108218857938814684192140142211304853757042781947613278650478112394498294783016795020982863870442949825713367364469914941780744901929167139413525309238029449626589884261322637832324563307912932968404028120022590967733424151061715457077762627652572446289308881061394721797522294479374321467931102051848970109054513259544133343800810745919651524873902480477518012435035881039469163685688001731850289455754015894448331529063162639574431217795615197711204121683433382126725999573731804152653998620677047621896248450531427805217294067155748197267793366850823749942233370614530278676205399997365848978384603493490347633007500524033971883020788262354397643923086674058629867067863498517606023612098022034852809648473411679991940305176449916374068387758280571400788912073278355321582598229068059482339382273742043752187703527008561233784643130219832860483775407914386512662713184823772190104876451301881433209302595318207077615924123534027583655672370320067643989615825795310978072737600517474316306616839195183336520266773356822899989979163469956523414893649327537488366942099002538787807335007545648172050777892275224044919767493234147618225542152218681733310440808752746616314491296015175925293960793430392322236030467771791380370640728310619289627102616409208270792402592170186319403505742540461398735579692246119872957595411257456954330407076321345171247490917684629867576970643147171521143010268322395033310942848280615317974613424072421675266731775266051883942883076660850974025830117503683151789706712856834159953831093214116367437358994036204151690863726858346471312609413922843598848979282519542440499929038992607618472671840667060314484712958112205140784617266030245038434659288547087129790975980854170581207190202033477252187447048843924044659595989982936699523906946866456183659950054838612508211626163634365243430848766654705188005440982521043080691588385699882847320500859467874315440834050540479380240678577109447207483065196357151755480378906570681761859991585284636860678147997882612447756836008726032169203330309805738636033304216425132815508341472797644732379954481550610376439802427305359879874826797202899978550234189156543280640762062618473194064380761738313938616161469561247096560673150550039638845494910047223780963114208413021191108065026436826133543789011381377561809609665544821875314185628751481293070562709994290946977719868018511830229934019230328760298991630140699355339606616262574450330510339826842703236699943536127372248766966009111611974673127613909603287857248580361062899800554097380206145714275565842727872819767584311323352262430137934165464652313020329878787112741312539690282009908393925651291162531335124035223845940300474875524987968717422310358106212045472915932408161313106317843208009527784504846189325705196373613485007217004078720383242834509523453211622878928887824069274367248338498059136991868243359567325704429248712087206090693993146686522303492230378826598078496092716403469379209178163268034399756277097367034587210417289354341775761642368420750553074345075038945993540558049805782876575320372755348728198415171307344774278821880393330309321543872032573185035907962244603213812824956619235006785370482400634353619743370931808453381441742817273650573522248335513427961170622800984625257463641458802783716073388840768742730391557853152033062879426869725828479220888190981971955728567248283383711352062069477122649219714112512285710216550609394070116779305654475878524880593057379563175815584590031466251741216610133224998629262591488708630595510867746708928400286834513717601946416103195886705487093903262568695131439098262844219045749405577914983567251555949051849429363024666595446009940250040371647724433270342808707292578650337091881543134946965067474742438450413486901430282791810705343072600492273329727141955110674073004133079854347755180271848807158831813362087718096353990740376277011003592676731856156788044947548185424947692330648635300068659585718189844311474819148228519185769805511923669789589218813829605216168422891310919627804575945635183995245208774124891082030653292545833520608020804209457949544679392007978572623282124260163179239868116590760310699385643377267774159310337142025380469864836264371060935836223171251574379999654631707854991410975135689401523166653686091114504380416290805168151173245744623198448516361397979889807038524108863076117593383297455960531336286223631044592006760157399947791429435289595274720809685528150579737520414734830171459389474298293172715934362948824270466510245697492900844904799325836280474060982033122503811934412950151011707991520335371524764970752520404492754752113047243429534761610039773898190094748064021838754938122568530639769851200079632008903355771247667870950925457634975120752252175984002520788403479843710345974524996223175924899712189447586394074239097493392292103795090732100226301148509669128275583797623666907229129802669613339719438188559757046855659516577311507088995885286717728997897601808351955473865946847591508644625158144608746766739988612040603156701121456588597197067899255110315718204465272533339303802950299552877717228232567222260658257260617997847956865482965224615715354474634857079392031964790279526919307702550450908883555003207976430686534174588596159249674009477086269869515897062462981894002257543679366975033511375392073238823527815215349175045059430743504809863290882887338707153283579473605829295675202735383514507079314452293103685027110051866729899665192917501779983687082578729567371689275655290230924727994935039130644901323118651324868752621582467212625948464693506039476946412589462318762509488620902225572912296442515265614553291239957019950524812029401170528326876553712849157136023275657334872798999849824256788936167229937886532599365656424554298343404332342229055773172574694137753574028053188472581783261213416975414723665383812915658266420862859538439279362365077981867991698433901219533284701779106460223100636727430491559439647165356658346924431749500896605385048322921701597459820956992595205584163228751596713378245197503473924091066729877361702823202339610983939301597391461030218038729363526967764333342355906111112757506959735531081226859317969720860108620809846425345395887277482364531922830299048020298841044564042654265615191712781913853193804517948402178778790481931773158720873884808600609358192640817927288270472543838830774783461977630173792133171271586696742673067550383632358706598853886210122178840954069823484625812431465505877829112867402805641104047340964248936088761670599703152202996681699802388722468166326493777059388700562732979339764100442234821719290894685291363194967716302965799453765992872629695315284910706147966215986696071317766463676907876849246277584068884393391580165540800956695341237510185092910066700046525610590389535007875535277590930053608961722450468110767469094164346572346840837182791108805801735197362755810952256047141959616004831005285859331622627543766703912990828209514918352008497929576684132709300610873657813035852832279681355089619180287790229353123859298428948385669950498290050060592961973131863628530433180562612842589541704411724074514364107131476931933604456041834644463805317014599677103201747801789141924103098712996185431302466952730788601862440514559902905409564869307040214725873191137101146048948138946518949644745884737433719358880451262195858328434957189836351972038341391945092614983699951727084241900128513846979529304606213213254848062450230387742301353960230495707631489304523831639242295817593172440121358217133746096430284893300045713374650853498021470628398491155074987538126846404841244840957725459750576568417408187520538702885240019800357707339903793785328329301540610503579794388761696638891385436290393535581089286224241619868179915597559235239484626127801257346697226431699679995360273229726851861960155226245017296084018207907202494378578911059621502697551697473630652878480170728204870152461181253958718464967025644540394531437483459115549054184521681266393034279651042078743177786056340870141848191336215250747807360379536969901282494973059599022433862142593233305535530578548040356300399364917152244799138370210243243168368931733612678239721580716549068649729105392552774182078777770735942709500858359691930209183819170619426621459335478778811271684030060943571994111356732468134975845353868002995898768793091885010946241889923664334820248790394501160081292483302915547680930806398067334974299093846131681377231147596507000319638538875886811121696752736217240561237285618808902205488729334804724681892009415649331716751149865682707221869648485174000229962636477003234480124451507256351614416677864776949596345980969977009571579459643744581658236007536262191823348519880189391681885900123147164798009475920391073958183963562198836963071271492260116064737192534841273831666273890482086904647540792977087370553594099708398258802083227896932705051173781891194282940347875315604633571147480277235028071085600476973324931529867238799194593155599279396052887890989484647332939099064671065368409255856974794539055945123332086823455861911682284971404475315714802267063508551467739325738637755380419812310917243470441525793885801847933800085155971543804065293271556656694125281302162223426266426158959328262100551236252449147480714573295746880080697267483616659979095947979566913140408079785866520982742398198474135655036823220886225168550250102807944611491019654900559658576697877826775561993810790951685356961564791360087001906268189605843711645376123736890017624288997191825384364592017864442175499105519172034168100213345055915390858980592429155875678566390289385584338739557676395593917026234245117692527804269866004439068869244750864827956692778981430478904276798240722409972531874168003456493952708870061280918239147067750077560129695342004178378181655139160898572657743036220194427901709885335223940693695614473285842658630022872698398478443107818180872309193458320351479261507876981393611784520682970990421534751884072302837983708093604038237733779035893079249241610431822954998262919946465726023722076362067006199166132277564450575100733389750493736499275884797826599485301573043487725594372471524715723670709612915482206800196091424432564339833066173582455922119622657524416614447725599336679424248535266127010155546103511710236134378961336243842188795679147289209056167237131144448621605680522236005596072748347891901930202594060281874951216016146862991736618123472437680913679045880113380038624466828171284355618301147902992824641621915871291215089915108623150808428762889058376940315865130217615549865747998179867821932253005466214333129678085075480582096293306646573993296204129984332414154944963952277462928313353830266429517488228657597537043743068254006709743674427721135328205143957949222299452189831968006954311623855353483264130719050374784334625442355392074715536514550920374366896267869245050090958641798105670716148572055957154007396040487267301998492411955580159840242491378430614000297264449181044565179247990686286280347622284353947697863432473764800313942904066014465420631996978065234442712080738433267701671743116965285142741754248501135589033380262231115785006828404366275043682426839745950404458528173893762065269171223927966718521414664941519325213311259382690347442758055657765026021110384312948734225112101797132751687128584072085028588679940574915352069587251236033073082013205726155763468644656278288152743025437361994481322604520598478236513102233113924124410142013989776119806358743865246217075552078559603485871331644943119538400331424044118403327577299488179802067201972839901597476413661334810647972620585848586210854320193903291038036865892086757534225039167491190269818650465582748921877221041767167013018686008209945817260083174049215344503270430921317311792783567363101997715188973330246217391179121009847647441759030909031774669825671662978112419598939639578795472144530848171058938508763254414459809832433554502113139276708932100777154029324276864426640549938022745469680591775677240051900880936292018688285237112489921456739572849583560946423373834490596535112499310078402723792328739434202119653521561318747590250704782004561780517058103909675258856696717983244542313450733089237947434085224601809903218609017560757203580441870842359341578022429081771024123051503442939678735764692579728663295201860926785437088590375931970809203991971712360664081102093770460581252089761577259785981539277405856413492494910722948118012884080000704038460867209613625812971938504968631121573346267527392263048899008206805451496700050249494812523316872314143775513809694910919222157701863368224728220272508023217679613544334017609790187326742108610982944236343571925184711363857339373936601491783911736240052457806038450535657447028870472348100694792979078499534019938739176577620230962064805402382107445717576541065987246506982911626177967568682679303022320734796160722613413832843311002098302757085040099021450882236508335666408758822119943512644807505614766536061049968242116353985661327742233117548021327116616530424779332441179350400931759018926483937883075123453075796987755327536380911154729294702800220904111115036308478704636665833182279662465205995621856592717155834998545711846819394342422362831042347583774446430831529462961907811148544979003175217135299491350701099882954295761828251857396057240488783245738456140227363719988332879896427149043060405477095086675789015284306928387264641467929166772814740286427337700113737937969061657073800410117215133278446923701168231757436607269237062480919016620356492016400541118218733597698832547663284616997045861649197777126402638218158836880397246427151744257365398547395629324951940891148647318819452699447900312013964456367662964757514407302733324124932747694540141205497427486093156323330179120119991343996706102009884427572599555827904843009445119141630480616776377874288085320883309690818300045681569253529417490663242119662986263990826923623660305577889990986422459312229608104453455206656787474776716374598640413167143002725895426161085659776234041235101434461533759778576512923310668987191825682011750447320950535878623229800106303718888914854270796751012957728222982730794138170555504147879224814978079728342257794874334278620232379581416794742353041627732676820345165863596610316248084804437226907125737253916755224729889169172692968050262730351969786880718970003422552176387391223727199926092229348729988816871151044509611531494937490084330209936518126272679345877003719239052385104307646049870526096729140960112828427610706696467683687798720664673856339495448941449331611432166189533782091774498846411494457497206510739312079395484651440176375445958373673108592811201593863822837348529446401543189432110333985554258923943446893964149543992176478783526974646047410144769824748750373206080113952192176265348359896891199544894283370408302099252207107767665081136772681802774341318929754820277733427447272760471869979755579604585537255108715433078597287545106860942721825756173095105277803345661469697543681000777607832219003757054744996774869562640816994203836499607708349799684202938114149187062850016404834610430984235739409190784795062245868045482467152770580670412586655465483937904464969746556833179538377462936274563776879416705483375341141981511401022366830092433497507235110731141868237667883656504781700508161413859253157725910632382807267075354991418207806104912469472898779713751120558748108270646013925332699890268642555807651275003985727097475022820072802980894561576754960337240696914751807802532652521524914787230015583498973653544567825320196859556086417388533628395150133485228023634068452719491752833693215086796434130151865187360219390880355041827441714331761891981371458595007675985466572070885485305830741738214828445120140236438324562371658660742499789489545724643722872555612335837318683722357937657346220030740466989950125836348048913367666244845999236699442884709792484547680398241705979620367027081084665724589197604495818198264861181759859866656510110575668734949985473656580101912925572303921380308765662887544982901873299062364229782463215320726423318152350159646797726520147267927891055000523061137665289550813291803704388754342987738904594594914711313725875670093814138472849870434756994278772645540476407739729738408535762469422991016218989608873925592849651262516849391746296503344272710811091741010721061022636296887214188226386259732360337803020239954122307670477016149439894831260353091415011635926794155264524662461645757049845522704638420617307914107629685979480062787396484530434899980644884832549409005607137594045592749063283967645029826900448902481919404196289365540720041864512384535810359594699309874734612894771319736138119998436242340695109451622316967124889731473161553949625247550210274732865959581525613053331002902931517337791805941094655955202176382873552588413723000348465845136917704991290288489452503599787532217555410412660797351381732652036192595567294576130284340443700019124221330092574578323444041057566754730617898320917719279032190993933065625893742215789105293913368513635756650509217071037532691936326037357759922426702202841843298595109553783063497138368934532792790721501623039049693957856001249252868104001634316872429443998656259734263530068108805135888665231827473252251293141279995736823799098395306750617167234883211749711092267794200450918066520652407216851409971276204628680954937463064869560979385210666726188138619113022763008890311331186691195057582059453446810864553961945394718797276392398536145962014429445052474079374984547548679861988091358402772996795597248296144397553513146798763037804130026007581243140299543729422167443477181215274475771092164139975390598223756614040779590727014312429697611756096352700700358376148896129298544443557518662790796802096037239747450506953115411678457201591084112618173440948461397169754248098877765392838376149692724739088338922532419345002250218602878164550223127658476256412832894708701641398967368888448554761420980823642631541813210234081608049481760001139848991851688154661104514431975549746603924812217472810898448257494954826343682262121343623872036804754726392890998938595629277721189030810874587289332157709449574293525103233924363222525148519507193992167448691567168754865234913737735351394440497228698449255283774998643412167747018960814041370069377388634135190815171508244562893641189210023478453584559308730625565631171324831561725543155879615334708869763374818156050184985556244586975454443257518328231388404644438575823201970508709044048822340468657281390726293858781166793297626989037586765724576415504542525648998032299899170971382335720116695394103177130532219118241026569033869365504383938646774772070240066279977812013646785509707507516282503520561147653867413601126790272514280564802321301195213214687520575075343496521436400894371804568255759407204513810415275387934618679983458395197208842217614687998908672844217132046023549002269225839838784576865180713844805091473783682665387001622379455663392060005840875650907432191622991274553263635598271434231109212530135533799014785356146619395883324597726537228222241113872825786234211360986876993053796195314751262812074050832232129297472562522525144779621285160590445450680038645127593954530139641660022755705189085110222024445766954977807644528919643576300494727170186115819823740523841204117453439895887748141796237260934646024845855817276384064148273682868092426623319186950811810611609454728115723080112194150140341975684976133286221256424556696968983234460972790465718829949455698960058637526300605378933983511821276758528690656064228104483447872933176477137110239085232058604828750353495828198857908759316771962681546148892306648157691732876851825981701721871554176316124988524744512669669822644794189950624238327727045322057229454803683602768718372550780074064666754572662928568337056073678231893280777018776185227696294533892571273317454779975923837927188685762449293390962420259692946035514651155005680680387718914912364852432455491572234017941476014560588026616935355451792184016647868288042072837820286654285313907234200985534504810943251618439772864047913124062027737611159768764466128628993446293290386510517936537906519149197631909183277778872511260952877486171744209303245367266924455732937042494647055874613300715376479369480263720023694795464023510026765127484338684604666170199945027536575930192836775131690385690185714048445676779176395193608725109896841864588390864925068698991985323603553365951781391533281114703030893053436921480185138756588858683572918760957506028904357151540979136377284934140481695629652269948907250304821548413320832428834389196726413447869776172169439671825588821768083412839158129087393160838745202859151293680811912064407340531677690776537382822980256204948150909358629144457445173748681523893176037502186214786050954721913941213224138989411954531018928646137624340336178561535700925795329341885298182285846117330067382374490283823585197150587552659700907427975227911792127245761177298467596193930273741436804268500225642566122892587165761553335153061800454825004985400316891293627668939003596726372878664685195404071575656941272391253547874835590103936930404163855412559975704808875110672615364834443058885340877912701583184795025493920222461736371615812711778898465785609359661302310012461074779495477373300755788741551996657701576791910282774578330775039364683021948296260700289041542072255071871236699283276875794614375339689258256303781976771597723487569912155616266671781816093079132105321123476396965429494723552307682380312328012493992261967962538115510999368264643802891496734687156209563970850849269859721843263866356272716436777203180715391274475371830626693431514239171975394763051257562902810000552801365491465368228216053806989611203066182029704296027702886725875069418634604348752767321386924062068752495444787651262309083151136986796212424124479320462050536677299357437300579790856226230162528387995148872668764639132115742476392461078199201076172718442237047217542514276243892725922997910262468754659789210900900462721947624693192609625096264751256609150900443878047011527761609074951675572958637586551975211470249387539540282081724483294349664499308537190217741525409629590736784692407295669357822661376537061107734564217932106270403268842972244196025659684432707924774855344562090459820646855447658264020886358234592254653556315278396137103680449658375657762516288117274703757268010710612086348440609034447112293035744937189612736999901374543722025438287727735938867920441554363406849757007874418550730344785149457781181947723551280268942569255921874080907384103137656379145830265565698950533722575178031301666694052039647699838199034019180118993864997268138036855563420081866480255649446128253275994683255828443345305543428134311968310693206358342028287929219331350670944943066356180928245551329375965880921927291707252673208661031578492267975137088110182887482953751537169830737619768465209868531290133745319452445355360572505527308130091921500541863771145800836544439968285611295291387348981554383369687096957039584906247113002729946988381715040691874710710498189169831868871959426331153761244249811784961822628613788093030597709973746326757625562952848730874231133626724037979574837417116135901384650005923540079949385230907341403573075242415741764532695571718513328511235075339974511758765576346916876074394976570787044211079406554704759398035488518640487395815585036732711913097710349398727535025979154167135134773829867207871655519202524791624423803335553279168899585556317650158842885455064012927965512067678384473892060819725833082470332496416749446051499601595436211905345551138100586485650435959090519882674813025648498819844015633225181717493647738899198652955249622218535842608362320149184739321982254144526395090054110911090361697243275312825752722576269774851848907757255280514471496867619051769562178176688282632151828162152257108537202409577915716832186717247418249384714794892322023286063047122277934664400807989552701183066919467069885936470906660188401617840510257472887310164180027680862022667503564222347461867522051648881917033246048789586240393654003608933208028250758736520055313721199748995049322444982098168320457174990203721816177071607894060133459873105876386917915235016333678070946705323792184499816786015727829194081744186483756559122654157712736051028765768372904255739022093217675929556705296787539836169373757348190240139865103278419142609265861098337112202065461365629014733119552077970765946434140448997284952155534073230202554121681098227461592251223971457738636693835654467220199192177681027092205769239466916602011261321851831705915755754597776984915271599735508776122078703593247970878790072049527307838259886063159780995533879461030183723682041736426385582427621363778024975290181711962582195092110957715594011741166168297974249895389756443646273957070198763879807111993088979494856492520439890649534719565807606871164668467083729805852756949455355462891185084161195295472584548166847308857222332277155570257625402737145930779747384909183713747510177979546914020235197652320331624029083113426702259803388817716508731550285278915990685901295484729390013015362155362748341928657585215012473081828236960766988338198333565248413104471809186896101914962003752678554422296710177533627450383063978610787934857010034415808976854235998754545322857849336740864974852633320459106430957708542526586837353191673023298087199478898575984277667792439928936909285955089906703525339702345948512024559394048151307933604630552441867336063622872929155279444974083452314308706695163568099741421260901503593093322551214801207933419392019155210283045179129139282603042655694915290970506876961470728244944062896096376634706812664065916469553464577453934408243989141434048801781495370537598215858649425429838871894914769010994324959252798499282135045769183728296321683419673695604165441639325979968015154620060947718158767127795238736554586466589430297027491089292189266410031275407229223205343537933547216059400072641348325415264106343833528039574262576062991635986219062839235118028418199270455567970783420819278219263882773623821660007675013676326086833734540817818541446249716858749535945540718635597337705392851018546631162467063384064946883510272582735694015071258088308907510570432784921684873978720300357638809450886302946317200092257800433406310695002521907029790573033983247724644277559708538088490731543536021660839064157779492308234901305838868609243047278968748611305685641181499085347681062271099789443095209314471271468027642789890257487258894615512687784141173403942195312116285909759130377430267561967111776942452046329899214780408087357149828387368120919059329462463632017879917793746896705634529785274874454933023711153474114411162510000161608010849920733415678603762841910974244019228149064050714764763973559418142715035676220947630662351505803294537113381123367804143328724387156098908548141951832947930360922406775422224109288678963075938488063751863957116033388540624394962894186427262425672210470224621320863875297867563549064872881428793073187100944958247002204847332833888540882113104245840256289883336269660441559939227564477384727131361824286857248090238198228657198871548679094444551293762762829926923852566398534563904659865709097775260880555862600044908694968783175236586581352555274408119875839279079382506516915370977358688050498187700797130055975681451756357907685779295565085517965627825501042131612062387099694735266012572665815526054505853772438636720279012414639181902704698722991586253012898456987074187850092041041929016280080687901809172914190625557547682078668903265408055256326625597588515553546164058536433363048976109959897760249355440564812067149136284224009019292758174623318251674629187326414651261986832895541698445364991873126671426517565349676724194914152854354667983433914649194580286454580119594624781165144211373535841459004962641892635920210243464390125735696561442479673000638006655767559393100741977657133816794240538817889581088504791676719410078677279555857453047864310582193296250045016303537617908186368035550906620959025789185386254011082036872483159348305266809888686650234741859391873988765276512345099462525464765184744586093386177689262215968999607128985372903062689740082598817257572704662510689380709135462961463982048832629627453403903004977543161651346908401546836451690538536134630603274990011667834206267488762089366040339376349588674729833769869205492613986815775280077862592771740155127632244644373361946272623700280335190574500482208112320566817824910314317703417988367093340118985075542369802117332007440058955869734612402770920792386732001839471126922670449737321233987059924605837275935738856388357792147352138785839602185397872128999692625406953154619996598042394866460715948552139776675088734511199281262567680790829229580776672353629579663290526561443586074818952781356549117032431392150763115790974036706435722210414914732497691330081423284181412532382580241410154070525533309154989608793121974427324002652654596374139611267948853883339127180731848840500057196361914928230172019358758888351066102947315645548931392821479052845718882910975537928542372940320439521210375626958475992528334687872597306609166327373705878730935029327911427580058277571928942502964257517646237809215524105298346981614375082098337845878636296760944288592676924181996840616103142417783368384110863187860535183676249586993053445352653628467772089307824390912107651932972870472927540081506181990203272235194658260259251462308813283569348629007641566439032177120003389341516098573826199580817770880669301540550856620429874827134339131174163001862453297855158544914018524757137040339662993280962180754449275078994005231417269497287662419081094415046077737055908332198584193964279335765518465022985730244566615122317517815959097445644376301339652356198423872683832663852051914487977449026611476709672425025840318776227298331771040848963070117295926840296027272413098761213491167714118086833974167030456180736895716295627351050602546417697073175570426402480554602926816291334388796050500736348271786628099757147340867072205327565901477859126069561547121386469783968223665480157800418503004269724518025087925838878325079155346761880558838582333430451739109559705649688091730796402084601015727858347749709324503928023929104612282923473620382120041584271161386801458986297796888109460426199503841591154358475909501533668152322714772499122548529844851475785352713132162100754922686956506942992603681600364909967552244357026872528837230739521116951526478690703903899947492818301549361753615996738851918450474066066438229178075259570355218881403179532731165833301267781725570275246584972213255595423240285143795107186559176301075059199548991580417742813637275862277083351047148762154104379560240775801735058164134522995359996758342392334349202696309946221592447609234610561014982047709479825736035781520558215996245649188132303308254980221661974206280097740746232087626978124345449499094600730206467894364303774280975203800225854140977997465657271776762626358132301839599833363512172210890002512512075300896971431367274910425112294608753517961645568453977470129527674263879386021238360352067682429430196143196492514706068067070311064757958551468190899138449661306066036380317830412998948723020568283697708085484051995013540694800454577729742048213172018664752954160931760359812170401537082446151116553055246079412985418592597519902780685651804138132334324352738008105324051527149999637217165337443113426775487299950343200320961666743978649085988439284643847926844658865288427996638902835817453625367223284945027796112835907785607782110917233657126528425854324654874182293102695247873734343972035070701833795965688746825225541086467521081374729322308820385275827034440659848942735241921413347224862480342245587274743947167546327798200221753294481759812035726221309614858598536131588583155198855181793182410757754616607587788824967370139864438954259939515147089710184256143120266233581497914936465594212259252135680693308955402357990096485554713677926083664267313794277144411765494146808581712832487373058969661840778677109925100598318856311062348383975169616553460291663235223094205822913026966857687057061489230140257784355889661804390668721516374695035199405706180249209469777351297648374440321897778289304734427595502600263561352399820338646047697125800960815940546917063768478815058788381338091050798541352054486807107836469401294864582283541329235007294036670483983566568538857151521122539571453734055139424187486467261005196786661283101854137734771481938309172283653778293524696643797896866625437223394315980726820003446116715738961605142326533288001591872149596507273875362546162116880130063238176047220217236507102795020702119367909279766985310428867301113475993161466645152489399182582866154790443596458994807692357153293992199564804536613206300141138127908416751720912815451971896334321500644417283722504830491174304822834632711473654852040612924022839443410074811334367319722182870561879214862726485639635496887722981747465030459675367998142860857013616057236998018188931191814302643811117586170545514703467621351159451146979914122922492811634570257333980164451869681862494050819217229176752782206887899350711741683374251439045677390868369445267160689600445871263233257880810912419868016817067182350482024471912764561219391871634134483903641603814705896300619026222786667589737129812810396746614516216209087715420246001868818590593462598075462573321243630513308184470399559038658372440813508251968019518963690683104562586672588565533107466528430599589832280045823527761953929292387675186109574830550083466103355726221107218041682246142063669394366274880667663555672376805641194060678507548630788002213886929695227136409744831932174343012105403224178293833185075488210222821974640509879225301261322815123554668724834934471993379981641033414011779396096145741800870252533273371365532351122174760486374881445855354206703160622933599784281543317727973363492768327966863985642094205050233595787708779587087189985834897399171850138389461543778598127387196875648484647950812064423008930779006985635737959469955004183244354040940806922588975221097588215931582809802460283025328652714132188662006402718055678198189407274767670971454947799925470720068346777035150396344280469935102133258972292074065630373905867414073338381850703071444332881430462616658698197602234367807827547255575493271870385032355100873105472864856028781419245688717284144245119839766734815335728797495439212341365242160179284678745020967568450510281049384333881647433010605627967027810966908654139329000354284020876005901087458096605473102461747069995933837320117694066315180282049680849741248205594652202095192605998147213806175780014018350140432023945543028071846741784955501386696693709867519189572777723315993456464978923109500859756739696768239038778846090752476212729271102915893794292454677448572052684755732453477634541573891789270758305793500289839394883618488994435938359361657211055496992447936339505837623070773231760207610043861804485108813410919221657435524567190636091230106860441745846359194804234073709286785328033439543316862945855773273447754103909798212571244175719144308691053669438089472371368364928048342099565743564233210785245990661073076121906322236862695357400425722450328177188010219761447672145567815133861529078927899803056096588994291090107824058306883617910076536755519679679276650552196199326003938589664127873062460501064929212931132075649957340866725928087604425471589128249797155234596630631183252033107722722078651235625166570931441450397808073152471567947979994588832743475183868465112207970397252765008733791962455792982908413247008359409059440911784778507287245204638429351778185201372177661518190914311233058965686830076989735538447042273021595507318109543301608962512742340530448032430397443248675485746671378708172572242393627378306035119924515427199190253027528496267421753480014460336697728958606151053871166009581832112019916372624466890438971960472959314222750997591645999461220544525375449477613436152573090640649590587977981001213585747970031791276840864069154002491720619308739729942136683120899394515842839005061486860478086892103429097810898894254669662322160690998590571751259835357749864168798586014225317831327719750167968779021690330260380163777463852133988725705298316761678566670373757161619146915989362598710307536218368593334062126701095992951296982667558309174720719075812320632375447162477647291376378537086027923768486412308718624871146155612393270256559864507879224012816085273813788102224352966497868309701593704244385329862977014007352339927119021355808327074504061105932203145089143712741416990080515513801582022236088061457657523019731711895543751569721967644632010009172847235450034930013396506290410251703498678875133812114717806466253060461626656348951820112582534673154106277627807438153033689091933897173631504606810306920698625677056799511523820120564071162372213643273451719068450875218154154359372132330221757790707370834834331202023926651118280931117136645651553281333592128091676165734213865356969793419027423467997921485662560979382480571212149667991050395313172657754902865687936237837292319044986702314548377393703199613263652220516705133258288301218741658242710175151981808343478890836221600865311964430124594421779523382418346490382770435124281443055724266592874953890413364545834551494996430904393563981752746440619262334065466401687567892187472651725667507147660000655463268529317723871583771834175975556424237746641202030172790060646379800881072905838766765418528456772505894033730511357092014893155807236291901728641425465822466489896481404959407292725858639144479190562131486181940827968099653411237993313601431760856975882460980692805071823391650788467468209125419206245909179244012812540717274488000781669594097383149905073930063416015089962003959944895263458061965910734879484566500623420991626410051780660719863964850803109761114019451447352406689571950919622131920134677418583588122771306578640315645240500174073121439249497477830052210728717256844253850052365749922987209572323696290218965560264376598429994499496578230570319727596407032068341145324270360100380794216661003258990376723363538664024152950451955299015296960069452642153483541989783381971349482832482069557218910981910499238126549375660330774426276652416195018322907040682213069723896186150869727709967382505780658612592391790131311731923265670099013132178528653499373669501334460245268043980089852281090460939533843246601146410845946929121138571636448342075437577774482774791240583482982228613502675873274387942825961438954661951198502244700681369505699459735448564043607979035561747283693060331737878173542096673964500948461345103682746236527169571408415841332604353620291132909396091944325208390701297279180497651338654488433956604083221067212204986029786307936606980817256051280755880016893418035446774966146015407371677540588476612751191821535126890591853788607902637713810312896933192204104297933992083262557247781383063151750683549268081497615386062662123275294742424517190522243300184730469704574511541127746924192380639021097473637366119275382944549428873047669349540306079503856780692740256365159617592014998152844204644283995326361023785193955330711457851401011671827303597806811298938399857934765466803620417944299082374270674226458066462155338233404483549947047136078831667110557956019368840718062292669278369913331125492107212307255804898539538410217727175455682516974850209849362810479084973012968631400475376739308485161130581922452041056471656403537584941728702307451076296202606096604437061296378245466869102531611934796282202850161277732833590622398234434795227763497777905851218916237646843830506197175654766667902571199356545870108625602459218874120265828321946870801005129273243609222356956757806908922354172572788387517573728178280459952558219796386641851927059471232046384973890786831603959965155251307215061700681308185152314007987396122218684547205915609648209065358350694534278286239944410173158967051557311014255080185935891207588427889847994695879831580721045664988881369328640702052923952139844445580649409647990850163896051229191110458578411131685741028810730288963710002211968492821750937981166249568271768384426523911413363165182271012062716535005629298693792261253634212606937799191134365850436534893943472480970056243911229913572973056246920396505419721736674373912098697699232440943542213033578687219187913476456835537561342605350637083234262485706777513045068073398929167814958712817307300832918915945249709560106923448777064861481457234433691770531417497129051386939601906543209260825952707338767487159364389269254416998752862831819105556658793323231748387124166868836593561526850284642392439706340786374338071040268527001362721915488269863861290025787013943741687206813479050137588172997029999845405596507793875259212319327926057122704804716546459938379644993776506924834862865174047580427329311037715538600266042599548935756493512038149213712267499458775424295178026349723122976232383156271882321041213437237912986697890823027078768807275621605995919255821805489574836180181767344479625040247964291503490042864748272761777633857404563655244356069898942384725729333316095211026893448163870006559189731944823140917464126514965202434040557165308917721289453336722599883505437042267215627971358320841613574017876766731118672685399924400795043924142721742513465626610516101835042084174823764931993445494217621106280320325432359859427390102050041362262516210974832124021119571030575543014327258594649646156697635925216947046396275075741355605284997475518050550804705456819508690987731519468492319659870189209538491069928888334643018414802278884349226544880742006847022703028705647768711660973374351768619937558918143985460886295044960741660556418743471372566932109440395075939174006033424835608496121867830954630386907716222229919347877333271957083323825273875344147010662441419052385000101825177882473917637717227394951062151351717164482074389450665215520009687594604243666833653785116568105443319570272362737727759177155355654498517458437068687049027788914559331377111307179658347779231222936817013526875359538627375560776773281592319749803618297753960631282510247657093321382912057498042883771374690030698100903785352364964809531476702919553504970491816701402451538680152925002111041813930427525528265847198638916478127963005246874661855527909508438114635172416634402380534510134960156939886501174971399032113918541491150058978137248369004288143084887076744833798807646715597124760479298316542672019270054626273023893803877192286771378222476516502066780735851239065397535860766588914354671433768601502504738094706328085019873199576254698417622966137363538489442190809043515709726027709619650729310850743238786470609809797377037299253386632540864606976310031913182407651502886234163166468761734856018048969524331704864600116645291784177022156454405738609267446903176474832398434016131883666903985773298996367411976220962956919553032600085363130965401459088313833921135401826418122585874942280767893566217924926639721237821424175526144043530878974358717875135640523349554243577378363479660156230495344298371288173526655851124869827413999809681129491829524814233028728511857402179547361208344097167073977463434537990534861849408171356983542737921821066611976726105946043370870454759321914041129918097192939234816326709144214572894280312339945801815885099542775788905021914835343013592497201660053049855114510669693611402948658214176723495799092727338280914471821535695810457572558646694184740564993453077725036759631556106296643222310299709800750116230908307362618386175667493343989650493789244378056994870453791008101938544159723584833868407447353930760023801533423793199864037151864165171032116608208834058298386155266355621005149793831991861503898035300755162939427932112653627600472763346604693696984475608736062837844203504445996804231888642246215123163455718250698649258818441748971254916345692552871577209598269788307139385851740291322368024668096175056122077312201692635530438576168705310896110261814018540008100754723290925585097353988892362964900649035444053061413179721538920822473870469512749121310372696013111542077847362884036419673994146124407743282234252716741997675734398132010523750714713504079840653101029125103572957784508260961261712752971070127133257111966547441497077930523522773488641110498716005514440596476360274844201223996572462162415170778389845095518252337541788040448879749769311401690522086430342436409173664950699375380668157731853730067924059619215796957823666827824906633850888577207467414642107700446163919493373049373021538766857820769941149910689420085754628657470732829255801250214527195308617441197142165342922724205873655384973198756553111872162665429706336084378888023349194123981812085417823640434552829566932437337290342723338895312520541090329322368882622258271813170964910150759207707480045018218846968371588490983695199713068735403355946383401112835067428394387240303094673345537401935632268599339957481917693480406181288070936095014935121119578299222200336935946351068776518174464591707439058223556721974823354213557329223286908000707912212323346988179078228704850663039142365425964189819227775316100050789854529030466494313702368022404911701844997530213119625097419033500491643886959248178301680132505839943547794332663365752366191116936705077960246956787359011983740584884652292740623759449491266598949741900823490149575676317780636272544734200147716853127099800663477984937323084599907373960669185775922465387746677551608393690667215970275971691093566055134689810727998162102865808457474110433039239480196097219918419983795841271416482649402690197760081215906547648697298617121644196337291474061673558850989855267287947953628476704667673133161794580170602070961065714421988640095562062302149004435646703570037402311298960875325478033524492678058940269671617709111127640244485607155996071587191816549135058871499674531538667369644234805816036082593899984305540964373201908513928843599718389483698561657600563664063948417200079931989716422769017570291430226670439301165875278649763250982181506972298024566489979631006002646123687431307991579263043261538574432437562475574414936651714515444135535833276383716714287814456044477895960943495879304796361318936679336452687370803802885846866029876931340229560706219829037588157625138893478327803187554804653022129015432374636590736100085026921005102171842483787378477365255799461043419165611592555548075560080521856270525228170554909850333499427502088416766618102235580171089116074855544859700728644552047541957378870782306477410950210426465750688597146908524484858964645191437405538198563626462999728131781280695087941702564233385626048134949485794162082200339458205776946159591810780056492496290444858261166163608773245651693757831923385821641205300279636157108704867447372584385941212574537263076741247300525346485515522597141029526735533269452117142444308629299741476461875365521487754029441217780996866953377292752463648446714194623987728050436483229665215028631984599782786421881081365235163104737134303927752888860220270352591876064033436952313091108812942491111005768029680444652647164030096461827006646135702814553902105841516786109376477067086429786251511828820773119688989677580558230246698482317481031602532395262458199358802644816686538947819584346676282813254427494894436552290916438218673883864974358895520696186111350259685783617579534785100852419135533317438758286529535383023754431771706223155082076307182428299947488640002630228906940717553762351629170740791612665382962837882941320214214194770592776196453879920867510218306534756681789464593549566043676165073192963804682538092536858844809357598133056338615302860745023010599205554401332642857422170386702070318569300756772119113424165120080988249975223658062514641880846658348862659217931447161377295288540658480170607115303466457190286564305656017105801319143199429404955175671987752023271871491507144286896771419384416805750585773475292005719940326428498998107119553910262696858976939935815560811959384711534870033317938827454504929840575035878444082774604720939842095353502949759117938585918596056301279746229121330422297557312857818622878357181531897682726138024418625185182043720836320712710405855079299615219241776224967715470994236288066031302088958668807437144303469847702544049813822032367007160249264828931339533103580951688977650697749575488026827201306797475244428853899452740252442221683695816923812239472080687775722764055154912153358475365812561576301079336837971233763332428792902114071042746782253579554782065946176822849891104455405900682664904152085364674289323948062578650510819085458676106921887849091215028461942441294986700197016600754266500394215673693982401630849276573520777282109763254698960951950623278715447252466528349451598080092350602193809824498872603666194386924604546437760577941932721194520522811857450786020371598320603034316975362768872269096055850908798278751541698822305211216880700475362208671722044067730019342677109614932238924079918633489417162818033114006513464510669887837981476227623203392388331396420209530988190746856759377106264674893913510598006819959542143115025784703770819254981542742194133916560542408875932555013128691394422100989470134211604859047684901028371883167831410297311698539934530579437657234671722178578855627574502889986941858613445785582099727303145466270083748079846076721121952501531632684032890497660037177388684327786818147442119960227433445806602240932372535535404926363562575687245464981488579749965315116137496226167155968464365506761705886721327366605455707777578527361469900121188696129785977892776587486893063615995016992070385853339479408201564427788878259812135841692865684297006075803184133241324706219450825206751198589209835932174999786058365542597574763791857198936688114155618447437596103564201268371753149351968258847507826254871955455638034788250263445031193162134046244770865420744357330068392452588276912995141327897358826440425237943098610342933929076452662042298395815547819938214025992844174554184231762972785557983196313760252106489734051912653128011580045351888820179314148768821719676489105853556526144694925258275958506246522615802385468274130544268752526656295273822151574722679304598189230024928833024557718775219828536378839784027135147782236890268623076432824681632881539505922641533948241539734170898524918143542773915489515139890643640365822960020884678614567170924701814268898540084576642958258826786206457967825560813938262043392120934022211773983272868257653058498733950701887957161540212561657243121936951465265183137603120607952848219432019201302935829069704561998928776596738451231435103871778150519340785716846973126129891414160449058630394503836553446330869800140546486334640675871994843314203201379064700766930764532508362990839533333551538216995463529746175637868869022339064142685304623297732214092969166460637581600106589292367417090004855042612644871158407066504706107421216451335486033391967656098720223441328116393325570292424426419295287163757853344311408141943467304485599821419945336707651667983033712538887010071959400354059744311879272637849855389613524649335831621672577639472472319892527531074528858854600893939396733774770217998532909505435476836985533491590544135928162882251037619310672825305715733991816610222691867745261772064266964728247172488100358263219767545811979760353658455366738773844224889986659693614323703780842900151026950482962984806659898818574467246270005396024172088533327176840536150603219042154644407368599063104100714756304111476876241715133822338190924094252743503291285515359221935210016194773234268246066846733976882536468625607719907971855203798892625842322995641145718587230342488286064206356144434191906949778397161858056439902272295341270331083153535324487398721908478263520634704236255041170082851282461726499843380964621185317823730738974911677555972477549825043763897917971380625954527818662757533807321978175804551628144975701843251936082499902376407236586423513010073392279786839680895238674670058319869078199948173145822846234684408623372974844685273708263556030633766784736998197106484738756034825280555961016496656055729225089163244923435617391885015167738562054039309302976823120838829884035190306649260187617220329994900019608170129338422367695617451786969869359499195677088779162064762857447448616544083351171119884062202708633282754029145789777593560333882531900493273524533214644044517681457625234065519857082768570118208085357867815177540271549753576562861386270701006460770539389112968396299934897845968577759867409548190969833850864592080210397946684620115514625284067066214621760569788415467205976808632468689951124253248438627861334457446980029697476304010957509767457462347145790448881912740155290489641969606378446560328950802395495549535559019639491771771999824000691503664361038398017560068206995422126448630166005294679495601172062958983191768160001988724216972798241558256481011192450171323653429360683980423487602436658112811751071113048633861232537842362610440393066803417600181322075757481373205278137017602475862467565705203207679642942671657773707083567315144919546021596946701287465180575828070632886130883125075939079301185902646357009739504090820672624471616128039431110173645838368753268133280235202873689675557792291801833063815422349147751944295685639730821491210242434874890881898852123795522724165034170837946413014687938140268674463352489950272258961791879301201824442805977611576135510746585139225759077032077189083683108339705474439245052306701177308989830216118152004211807942933349938607298043111836964386937804442987374731001603826254228487366811492022364894672218181254725885055614165257629142647711203309044812633067521753793726790033622581369385528525479596092526939783189007972202032009627247105360781046142136702805833877473808600047350403892592237484379136615492755799628637456772501108989727970474191425329751313445354434180847765961347937985544320810776415300477582561637822296552169812590056721945788905062362223649941486617996308728019585415462859505379444660260595774088805128149188620719050230621720638853705505356754769558195033654657781671629442045029215530260416402271533586701118981466674617252680015218229905971845891839157646743051437048835982035571701707568349733699332541932867391660116763205744756987266082472227420294050081894081376078885779322441853610949351699357375062636170436255788976935068101678749351016705678931134900062698901176304469637189268660641061959791963352699548662996762586094313392640623592471618577650238007966753515166714058650147211279963050042304365788656052086781023881310348977647757849470363255331837035550484307932605586507562083904730177625908579199044355625009689971369141622494502139199250769357114272028484260951362864005378883169728198714760452294677909189414499447831424113460716022243604975941417855973770383788103725750559272481722810002944734117081561185968764606748203332003188094552284431564054017165663071856648094785152111947569664392839465679234425340526884914305862923530855960291190793382340517584463280529994780219253396297466713041302523803076043849386279916237462447405918616569464341279813790974385478093768646278044836447804874222334990722708521074476286585559989743711903833863043694988093786827302800583625583973598015464389096894263394054964098597816246621355969769130808377146485720722613575092199778671164362986732875592878018493242140214205357982798996269029271367676707447741869841121782243808285985470328182757788493546832609117136857812156212502295197377745580926909893508298837332474679571901592284507924767682677452461334302639861802367151903682123910909260442627034912930873862174835714268255455682823800606391983122292042347645996604880607161689377529196816674266710940108900607061508668276296454024962821329156519731629079710169897526675931028869938913033294798738688494784997726589932610284917432844010890221527351876507639699571340752638194342537349598572797027285105889493488472745946579907136047434660193696556664336857268194473865392461905914986294292295505087482783044083938187042280597295060648760789819344042051660476676033325131191495967444778913210956129078418367625112050203949918181999828183963904418334996211855810735725050219086141623388806685807480279359926506828186989543735526867859506075688217162391290421776365664521021409728774073312491731263258506112744154394635638593792449643150853367075052501532134248475203412667454471208056149913848711065967726581030506953884285375760018596460135557450337431235765683071279010506832104348721859559145099447359390338188133186782978169201845569025120139831515638648132471518262217641356513442342998273864234971203434431223663999497748919950946026493452129111851849773817825058129801081851606678698365044343774181438154151630541648939195369750334354291703129485235844034594102691040322825558259397257731380611646344100413890916993246442776270259294673452155956240559808576384656831208046010305507764360528223514472919516424493722694899818668046933449338550928382407671916939066236957314159795645733844194522014293732207752294027434805741856529172650294055837540303794277834814802289906695320468970624851779207733852299598293440328734730555129713264563446614529140215933153906682751387547699799327335057591170020072627304123197828415461238383884980995616370684925694442578911538367410888117697270662647141866831109537100908889804717998286976303077816272693508488928178153201651264112282443354304466132819008318887068063617586537653531509948257213269415356900575409280724513100307066565925624181452984294106814683413059745500888195185145422446259551360538753841494645790093060945532895319948680796987408307272051672422442336992182711279039293535037256533333000800280317159016359384204730259491047283244034942604506542042851691842777104662791112079690020773787919573643628746899974972435123461149679456486564338760508647766115600230740413949200897434584457724349164723755389458864051859343648396946785188883065837686095321807868728774641412660302975506230313264280321723079669176781359090349690784267343895549714174828202794644189298589966448895277442590310020321127270191488642413056583901354451699065490819291552057086671176287850631281489346620363977172745821680627904201056231125751511587598080465384479171385617144130453500098124041439864192264895311465052195664077835825320043814426381799500531168287775941428731344465574409129643902552770999598860143004806995007332241939285006718876374797554245428161515214745375389496873670483053468817387053573945837858995462343339052701985789861445935217021791739277599328220011728524222129225589741885067944265097191028016432612347166860982894125191935481656648000970755015304171739693308068612127089512871637895669711568611730818484088153208526513507602275835968603149730734322480863434121265239751975332495850767202030987223939442442298813157423390775844142393550122468209482914635724111053657501520203043496646840130037327964333913720384824811052557156663915820811881349614711524404313798025172443884468525022975750900507186925586370281051215527133180239173454733656404570953398073431533969304759335353446053314667216259170280227132583401940341203260086579204877269695864523657007812725978153274606753587738723141194038451605396792307310890615496451205915442329050114438975619969710394422069618890029607767947395668255800661999219712605708964274203363117762000840376258670029203979653140441483797333037816926308247547597286634696276045535960320767282603761955380044067599761169085363764546854073213387770946645114971534799153545153582121285771186168801838165854809961883032743700629215685229840611899075658245602766663452230706751070794192783680079254644945270635004824280427407813167194371941874248599843273098017839354231740461557906757532199061741767183507267546289794235032608531439683700152225758486031212066308328059047293863257553577146833273933641884710936875954640882717102848527063246639256103348221824335487863116910959834427794401525724539690579511676479124123814073283572486703829869021354789715407122347618972827800813524198944518424917596154920840420641249572821456898672341572937821349349978363972177541814348142452873676728615579650604082539029283706900940257945676424798750016903280666278777806258664296852768303628402063714742073660127535820538003165910406816608198909270799754909145635800669212858403628323494870897004384456262382175925406814770741668157667059232143199917625464363005891209058466754415012615168924922070958507545961153382169208470840512117575268297627701663613252470860172859976581265847485129292015215259491145843988466546692092799028567980373896557369973031722082362727334904382596046683546286963287895249622304072663751176309666932917659834131787634998353861996548972930569049659113420303013237124080831956102633297426052593785965989686667635566797290289501199833358216850674717489119411329148380955564149871358658150325644217189145019257677617269497196142998893802899422064752254186609733755991380104338934547736941492566063709490707708903276555518068109394655663879289095292223448169707138977332297577241570676941853321986543786415892522823641055159462496026984015758632089177994776826579940469802648089365181603674799026928468442373797260728139905144313360795252356802584342090891807555800761088348648307305779628301121005969807465423141420841233780906054892838507987893066387136664011293140170615765324034564036750454459507182267806828513758923061046013828732798326731996154270126071261271282823270627133366777727668388409717642691971065934693470237573333909864610280875607677577890491064245400914618110751452339648921670289025263426086103748149092389233907926062371284334708862180986844246598320902596691111182406744055290212365821267478689531486113219002362221516416086362828444438240041871064267428094683503474325298879533916217828918162581719476757575126211088540342124821074419458674392942555145281521667391267225291791713318663381700298075013049533523828149113359820581701060899367833846961213952757391493158521716621833116444088834117696115938167684895542574460433898971577910543329717872082110883047579284743175187425785596502631504574940121846776888063229668096393544771861317203167825354715982336633410408501160355667505621256926839235513316373958415413527648912922346011593240908203482396572686449426724188634357919839320898078995702210025108173326608075540688669882889806430942123355747936457072667021767547185677006648523015770453119617341941324326075598513225847543243520928329152461176297001182085857506177711772542778985615350188655298561069707375965166983780356863835112344363208345553403766124190257179873809640473810630039504111525316877814304144106919450750632247150051683698930220415225912545347073498457201381516029770172645504020902518767412218721497856729754349234130305801982556425422581644035267592720976065595798843957272840953646373665593048624892448447193148062087244934000964562855239382311287035614464819179622797095781073611883581182488102108382419219540665834408823388015216476500867891630965796974281490735305088917426766930512083928020129222514160776216814792595379522814374737853560273977728889227973308467990203982543431016436790191978437426037953320305836858609653109030609418937625271848427772542688072128764564270204450716357719065546495386945142139082283016828159230462486533840165293180773672393812783308013893020316188224016682561563917306966897419575994054343596658875353823745881628625360324018058640950534448842689470634907208450282476378628719548520238098882224469682250122303990276947038833580883555563463292385946190356235758258713551439488371999113293639916853055840602967655349613186514133929266760070831774712732563827521079034825293227961114786268576157857817166406722712874189441413490244499064325733863626791069706063359307695451409487488945816386772884431595174211326039434708815388862506094839286199665658691337859968733735930420100442623396147112862076535955196788880106797000181942334109668530865124429610106950681321112858485876941208307355245544211130011212962929996414323762542244703803515303746435807732377336724666952962829278135816299082992587102745687084657388987750066016066174118925705116636758207832415398256742351052531432199630675461290146258424741531123899090444499331068971347595038108059926013927585643801621527460301673736616307834701010871544018825546013634217322144852373111867774893147909466620557991689336511659962868403814937039412946230301405397819413694981886780141735494372901605813069527870712302236082053792821160785257360572688556626485479729219201842891301440871919050172781510722868369255095866237802591590015913956042542595228729582094965723518758948590244475704536845014004339668666000994377391206039234560594483387767490252987469730835696154896314203155942514340696940501080225256529108888143949022531568649768403076774097150395947977098607890934198122583810184965297375017304793211658889305653622600751118118604489952507486772192128703114727024949834986043370798220953264634460318828849619853034709181177152703061094235644683256885812315440721680519080924832887517121380150808286511487867751873610283727276809414433095156816551638793415560730218262667281365534054917947105761896990711388899732766285902152698353691946934534385466660100607347642177059948901315230780615699054619699718951198135007600754926292008291018150601895896080520638017775566007044755583315797310518051574846634138368616896064852875743680032262725220149298865109510300346227472488146734144666749806219638162516236198872048628318007879448217297328917774877122625865617126720415164419517511303356213757603262222008713555730815570128796269684611801423233749596621147968742380530797539117384370112736604573901380779096481694374622738887540774703035318733961714978040315138065724261115647384404409548742823632668312723322254354554769247854089642096563283000786094344353387676137134077412334709666429823886483247104645019734766319862778478164800521510644477781998004475335253959283013050880300413049765717660810547622102833277481705947035673662605523587390630223421717857196092643747427202647047410936121572786139271899910895126817305871650625618093259606230249999437981138956125632596327026684620002582522927280978701657612807113514703661457787823914141641307075289959417316154244793082512004965678923364813610902176779775101165965060354362042805235136159498596843278720031999828180599098045509833806196429689365240333157836933445390704067872508459932259313204539266506898798093737670025099352852024170891564047266644766435303486186563329327103845571709799777236042091951859321200331922279876692518099201085254656645896066922900448228604401782955114152022969028079705985017202433377562616503214148821281561850568616455574155536941242454442018472619266872531340288873675046995885707488359475850875088368500151540322482910964359647217002239580415646509994169100567632340196831923783917433861150217745278719972275456531650092367653219308495944648811973778153661951352897606227551337143640903073667836666932763864294093459333142070840986075756968361157842919847447209612046047551188987724028482317705527486134295174062419624166376792062885089220173440090356170153469983277407790292799973639586762982729242180108635485321923516279958738956067161143894127001351056037666291262545509501652437576106014173107762903561027518366077579132232285577962540967592168053494257074830501142801106879258451985087418914909019637293360325779807427590131575469577289846375619110281274567007678683163378571286576837422196645648642356904529791484067937024825984385874538180926508739185571095368101904473578201814127064200854017233105974165210283244784548932374642320107053928753376404816713959267975631937594528382268427640732038902538747747250646479516843999672501220107510116810760010898583946629117661331737241317866772861918774113356554730064083761829338064784841458443437092559799357267016795957595772224500063237184630056447770569749400384122912061892298380754545443244723771972559404040872421593261312028017834568879858280302273076844968609565094630537979353944449988002687181807809576017529144905670635504483786299002109235846852546551124463293821093017139230419030920001053828715622917583969973463984632913727624953046124925584191614881249112236001942800925715369737470508439411769593311776997712831359106689819734363101304223184478079223142041166766379283636508630635509668514044054596263998319414218271689640252432855418709829294465540519481152640081349262599150780533598409638554418522753091260187222014363287293371829006861504325979897666122680330967206905460959501873512186965221606876569302971467921524505262552193222526292275760786016405689622515565324891344339641566727883327878589113966636807963652008960191825256575815125352060815128154296620637056064736221272911939392381053442819961238509465631108882391179623041217559528552728656621977022775770266476815678994687955967070143431656767120747403739860649661821873680119292734479392132562514902450519183679362932931670340404814277519723431367375828111849144946339606374735037381028210373191157453689509387686480939684243969604240261905378974498313545269760519758830316633610710816836301678642147221480009271866708225063222473713627341333903162538954317483156367926784036935201483603068172821674646480564361621500085386584509356101495964607906755022418846572218498394946097955167819063289380472738834608084924390760649602691975089925353208863577340345913406219361519170704034621394104229905436969167580469929981485221221041423444325688217032198932615738118462821486645116245968084050183129170455850903222130112275280465259301935038651848862251670171710366184063314481984615237865670302661467995929596159057355656504560374865356770136126928080444860570712340145398975394596092517293044645854172499358198660622093008941874860619853925580046482975849451081778504921501712057218936375783562837830983778458845217901643766162466548484897069672685130541554879943832150840569681395123711507586054628020951981089228794881640921741564815979038207244570315220244681555617736386101751109983911120908697361768076861212335267252255609738467466205367434193540883799716654606487488095741796443534763967245202538500997671696575599166997847111065172526873347974270654147898433351001167743113262630368324186482332882952805785241676404406312299917037320186056183693590094141127154558544108206658538416852847748115267669168971171420237808327798972174763237097059167409304358057751106198723705464466426018483947724583809361807517573408173582069357089978910210937320364116032445898852217780502837698342729948239706664212566369897104172892594068493364646109011079859144223564060368887176729898836891952612427448036256474606530551988057505517381387387163338849735531573724762283608303757494581077459963855782625782850033605995209383732961410512586211131284223009139356258317604503677188765723499189409492508973673038408330387634626216488998942700304928283945442810345665888581008421491391960465219881153767319810363383622082066898754046522091059728050172697863769304515120333154743455340580017440761622473622421692668019376395756000483108884265170223628675512406066552859600304014453963156035537216291569782020516475663900425823398679255972744165069821543706609940820817511441804877042749664233634164734154171810678781634020868442880620110773970208236829017958776420789781121907224103293217499667760636884202068076072019521082865351444199173915091034115536601573773837674245598181164944089462119029848533979370451046181224984458262661404540380336783026952148906069631016563177432580104227027325496886513228155661903415617344224301723466505380206050261119423250274499047641082459704841701442306229293044024166336583427319559945358947398746216787160529082502644867606900987160231922292931065868660310069977395394521316622267321489004026282367506003442061747376397794183025673775837969874555069617693108209321828412488485337757727736839343963141882134310806254174848936883741245610079256411590678166199033123836360474801912747008170083469609418564591734200245984128475847596127910186913523453083774415115663585759457723145029579956674657230165253372054468688152371242971360594580523508444726003974784727258478324518817966185073246886481793900312148491645893484750128547758878767973111304243956718862774575538759063149300547151641962978580112804283062069847130363666722035338406055991709044216919645415459770894791902732113594165361345843950617425158242925469857450561626176841492008636946790218232230197414959380762377974564601739347630039920473104181223712008291438074928668194567323859427263017646235818939121403163383169972452085467991009486300151591769674210534186585982834158088147707658130064275227089120243732722586323244289879412339343864124260533344477752721911843015675944450732178311818744557141034204738694927998237353804347786169018347528839964959564747699235668822483355214407386785072179366610861046890482998510361388916686848903650301358846694694742301518953594862160307250193461305440432963869174361030488928526184194813158455377975109488017079493838882112218247701975920215743461148606301623494042955660838393964875018810238211936170624523080640049310187975468139505005696774905904636036812018802506749765254518204199009912702041269131510766300750570670353010101119718402727988949676671418994556942685133980499357519349480047790389732609762374602842919008178948155986569963299511767328594930855572878919487320382293199366396265177040040477565094551363377012050255658294800343453808671608347156485348947761414848673483942109631820169050339503742700065594522308208380593682270496517395987927546301579187781844499369764000745842243933136947235123900783851558918151726049042232178042238612755919745290030221951526561886405767520754767206583680426628164173762308360705821179296062665111121667343611721481444977126962398947959383323752299440469451380341420795839959294670611675138978073235169493119692435126527168443934109926955639108235202578265328122415683236443319919366025090257607843224142581445992447821312994627501291168856130662744755499055411340077586047850262454381371957771096443252254846293488316508241226740658000750193723575055039536712362134460706027598843406934461192766966883963122015078734371865548614497774041131880766892440448866177387819777380455457970351159261717744583960584515826597693743832508021733645225798813467735641446564304660021213335520546748782386478085535534070675195337327220937394724097923032399908824671337840720556989968777901479927749045064839660208584375203917165408957644600492752444038600183822619924105159679722945820865028277359925939356685073216312505987164869382803734448593402492104913319443474798020059512497111871008504227442322610778392122649572467257336967424048600799987331654706208971661127438108385180044651255268084710918026022469212021175528655728925743392554734229222323610019111369576875889244163397114734661642841147505013209617202998728887243453218106477852367656589209433528482989871661353726876593931282540764189184915024771425247293823042387654525108664858273121887131725747962466744608181162693052788700102368110855852979811323611991797661458201564996133108025734711765262369439978177026245333693340434872751631331639663834694690446167806666425968237884899292331964427267742418524908699810643394586030035506454025995940118486516309008459813183686762111242853936085231002941794239014815088576698468141748164827216386071551877317093922041377066499886112577100431372182230456381092725690693398904684256343935244534118594472507737573277397440896126178971190616727458641345486887414907427803586572715619573816813043227497531186090667977221985993754960752176093072053073566790490463498959644664230469125303214390138698672766197011437410400837735747073866122547138475615192075600278003685874223151074968464196287596328157477103130236072657927132501100831622618496079261359093396161858723645117372337315218360719592351066831595836277462214861463081352776012322355422649657646971713759565693605042579046415271478764833310067872086499911419726672855317634688163346004560794336500550499536507143811048760440770312636277510373259782429711442066572362908720418721021964419884609462138918389843021191206043634889332926353828706786670799183085706625412170060328598495308473171796535122441680337928169087779794627426931920721323880823401721110808968720109489051366027909396789052381714671706106194516060803964984618740202458764317854918912550651480761495302560575438575306284078369434627586163493769720050654772160040352612895475898591915598678077333125473438971088678399378771994474590754632964854532083420928262640008030848253767030825149065511139667330478935080405966853726427871949471888475269270636097054016090643287771009457327737402713964531852378975342590609461666852459162690162051532913175752423566391829775880312689501400874720705262819222535893446426702595511541304445695378771462941107395565571783148546268172521481882618466345041507663303268383134628330322625452698904606054367271262666987059835195089264339879301892902455938914049453662448789289949316041256698733036769516314019117443693329071290116120836892194298940745059405735782303279216640865661265495825888728354243569600589759667032199140431585102613738334105067642162225206367305446580945630452571296270806450231387931800850052972937000983028792990549184565430014763139641704585830899649708216696801698660388946816672903391020147420608099055511875686336175943427461966039504888228654735877119728163254790221610089109677233476718891716954562778385330050919017757836434359230400900819247360851703314973913324054383129075187971917574535219637266124550618972981537741627577826955541734082175533065187786991960890516671886411489462186158807905744440735713887438569555535970131450442579716711286772716841854793866460389962524380812163483494924385832325679518792278905540809691434887105019971413208939702891550698895757031634289373711880316072982730023553110597402482622343024492591210733791976306611534397940282485834772856587818476330310436692237414565788914658131759321851698240701834587265680702131903294140280256090041772761548689050125547233646076483040938744766379275034368714474472315114395756487703165317295008942561636418352350179219976294183729193374859629413932515408348628547172548095717490532604949414908834974941968363768397536207298115552312870706966136255650849061883080543286419021295260399589911566579331983728946400359093189418387766515445840417271772129685026651247781616429830243879468358983180774382982240191565318321306659188592142560961262113472414632148507302528492365342264953250240360975858279921859037269677072889081986830915366439108050296749040674514187005393077061555183283220451326846674411154713529128535588244805702592373332677337221296634601547865066306208726036774096465863140773285330659096574768564331339479873347167592464792984308042827181069472725514102914429101135043646967905886668659241353529390495014573734768715133490328723861807424946000063849816874133142926680055147434742777752799439967378233937313205570881342214409964853018305660182833440369108029076595158371840922115432802111124262687031794791880429869977410505711211637074311437665742594264354492444525657038818196822684909993849042875461553045764164904458960753204637462143981462117464276751898126689756461998481804056801489057805320435462112811502201793887090706363697138200704330163089136767890883046468454236146008433215151896860212956745561297407801798275755395830160396687330380047280013582876581638985757853705242608593657742696835176706733113716422412701454092620437170060595238391950691721139275789546092998120317258324500292250906119471411851928920985810143602154196488173049460397301623797447681173101550768832123823316322301993916491384805879614813712401960472520619107139042942895784666501284121937687929292042066021793311311974138453134125585070097983785383739324203202713580320305113033781133030177911948109002698429413479057749016062791784446159455877171338159118154463583787775028097511068647833944462227859688577896409740944768000228318338647025554009141068175612981894083524947584434524077853514990567183527843497370260697328480624799828574893344259582908568466748349844778032134346088770989174913795526207393797970210074965327272542199174078418183164728431090692329060502931509707567982883704107913448672017745559176955269531822684642174487742080876257819478234177327050460493436213191944202638080603800672363666942763463871012094781745915462243483003934093119284220191410726441845074294008048627963315358428555865515396220005205485957130410128944360500728443896717839829872686497280869361117649816250930589533021886355664732887490009637666015750334078677591887806990809412110464057122344111796209110862639250865301306371698219036285934771751958412589757705628819534571379309009909214218523601220206336380190690146312152006229638795937131173280609402847579216010365602270863280591226699666374791783479370809285068280013664766393852642912257861700570881281469633942705546114139366941140492524873163370752936451231089251367254391390759945301911652538532583202441023997899050589971017522046061552511573168622420906632754018752958014294161072196008116407742951450390592453314217241298926789649301978481978770230528642879656300196470414709194808234926794609091630812568855070112364465832523272514442935127394230332518128065221720813507564739293046407075694337972903701906938704523072810956217789632895363131490019991705457771617677362780769774193053495549809556722106508514355200198691894910385710976536225304786065447991501447736960350735423772048731207939647344099588591161813705213970923064909502494043762989643409850735080947890066614731096174695365982391121671942016388131005888072361317530897055912085613577488804547596371745487194637026515895824937321617874751505335126777699663333919729813164211651503912358505350129862681838701479965843066938494841337782874337319461004602884393794889591666728150791077024769479398791501137564605914832053330699772282000364017318756646602270290587374873743969490318009440470896692173878536924734668119253664296118956630012437209238688166250063487235058906000590128646126749490911553507435258961018644191632982264616427806298882544838455233895965253460226397621567515393329354648626909454364871888773469644752311057723420686963286270914430998035639313956726578664792554723029593064615726125976962455702825481884477885483355246432249164175110973675914756389643840327280694454201959003756618899360158226234933455030399353692394344765376997590090129842958814821110488813305550785282740480559416637390447375237366307480034379806255509927352183347983635953143004454164651300465445467443873373648685125681258979031034667006004329278782563998068856098089940738110600862342731969699477760806125620706860128804164998235622098858927874885003597363712312200132860396590735601060040921290954076607939783292541186805256250489708100860423723177473691693286132789107099588856301943378949383962433679825012356788188136057035782960025552366546781066397245683363792444163001680340819762857893086089585034317931027031874658665379430035229954802024994050034477921539482827025459437156172813396620912186227116727971441942710860664553101110056072797266283342668426461078712150664665540760511640130297322957937386724777545361554409538429824682963756988385427246703843488915775235410215598770693956579222530135289071576274620264475294118615425331901489439351404350500331841505327552609659846932565307475357935590455935105018061248591826910486542618635734422278485625111846391984703766472410112735334543356953986156398317557523160018180398107994154981561681852648062578006933753644285259353395428394807328721747608299537616066965780601381476099470476762240633509579656461409649945548102529090081687056788267006356644952077545848908885113899024464765845176757335168962581368400278990077637289071750891617965538648802081886855318461894257779033101255948987797473190513331272860027047849140430200477131080755120301780721509023828150864315467258474666301919090219015945073592936015193505324172896486535648325105057027618508776292079199688722649278395861756157254678631185407932349334831089322785533798917204151878172761248707432596386639150152342328819102810734370588941541416054567146977529844912119179963589094159216259084269510854871246293698222258500108788875264636040078709410384088627175026699097936364530001430511668293175783706008789223764331671749707329798216025307104927002636699395452011678515166686249530053327649090034264617885451829596525742021626107438865906541020426332906455824610646876019275632877385987798263219736489716067874781785173237697396532256502046793060506923127518517084926257532510619359726706515734745097402298224181934567109639184185417469965170964325026003490474697678946379432153247305625501991620406346073888154511416825399429962144833866500637228288436249600777591181920342643709633261439549032995718333157489628118238491636063175526468569283314925782840108885112174872602370967004389385068730738725385702786493787619102521673910271094967800774100492608438717981696181278744104001381748720103781545331093375438015527168675892019678881390286944828427521753093911900516525065233914932026983222750197449059638056713220157331625738628031664562934130850688048522922930562205845071704894278593294735381924582283624310110475538293825029719596576851984630387429524434187939150068665815313840437135201117471637192240653221329989877517177909963087002462154924581107242835350088527248304785267355280785995071197161714923465399194377652006685055333991197313813354798629324568752119507634891231862209390922310618087830104887162248586372005939858112603381044492559452899401870513403749681305708667877425348473042131694768144370231078522998605185956136714790921616578167030780208102771218572272574155831549042522207628174183388795285369808868687690512945206662175594045482892330105392941334210109522873453217569211111280539397706119851132757468240663649566244997876979366777868240661844273210630319093785310154005756887310971057547290767121578073165347879859159030340736851612865917404674800027438269936562858191461427525650447567439577787036762997900059149876724388455170034753747578808601532021071613824241337798211642325317803523688132083724360631786230926821283497220134110913781639213187850423562577127654509228551876641500234757196407671651186282471067892846056102566301135244714003676674091588735673054799889453679338799602699610086629598050729483345967093077009759789657723940415830399524918958035352970965603791585006271909896144810921659731887767233883817042106262730901361427794815318485429855724869225958751211906767220110637749607550384537235797588985033006514871646370718545585552174486925889515067206299798104153945947468390304583005857693550711558559147018143950281324104193767992278544137049572630855342036320040811077018219894276365546604201560948872815589570498298411829279128740471192324694068861401290573767137048742272877449206151639045722630689193186514452266667987177277955819692238805336755011642181335098303497840033016689989156158354294070050467487638020733894729247102221026585455007417998082965435274092417467261517479067742686405775701487999114003651836100914634609978372823416369766269570797802848556943961486536697295386057061729755503177287747963791233851310118239669811782571094634509577499747182802124712582778672078368715920483558046199235513365667056736887250741200053859487454144673969846100842237339654772705014573428677273576175139426325147760305645583061166200933854127381991739648607324372175709470533738243695871627739867339514121355985440732994698198743243592179396303860556850063344164724763883109597159356978099580595402714473150616562713486081149250214071979171862570597745343103599947202107254948213463337896483115825136149756850700303020346106427044903976079480223519343890922732375740833303745444249291063440161335274630281638427256558715639365999822397429916819037157010526092962530019813808979791732580730972415611360348853060229055676687103707011158961672447582468923429178053462298276500796617845202292350773633363667392151494233383550696920392078113002140734341854101317336570842384751097075000511284748804062238382848775412256331297438943451536008630008233346237947959704627769896220844699562737310244268963665810768945096467609921339351484347235345062756209089470331239730817885458438715708888206780149291841770894577847049206337404536150852982970326794346982743796743006471368827787136874296870335811785843620661711476247986531276299175723588690577339409960947785324612348085195323060472884442301852282974976306036980722268573429828769441833285372808570946454397755453922832667311272203340582212165365703880032338663414550035609347513355848468869896798458883485343992450938799778291557754230440829515010708441372874441149923284477412017133849415974020127573038240854804830224964259561556632781588784674889649955025807889445152764357964079870507714516508884044900163018668014925060263954925943047012248953770986269995387031173563770644592107740292841235865972019398019636875641067192162417284023229501601998262642663037419755836224004756457208789334412645102783616871188219951543553238461319184922343397567506785122375480594704443514482340235841858515445321058588120992207964145978718256023967634778780442420695205168480125573649313972309393192341501590518125856462842793893702030160212224724533241085842623791359457313719716197219085932792678723389484605085910285765961191899633393188693040522115533632070608381601672639490323394163316042862923455230183026368457286371478240196536008557999132620199868155836089963397490649013919229997877095611711815355745263685344359709537064935384294269599151822563030670981952319581347258226488661831613885523393507992186145884887528628796194621885559957673427314484307458808370281731463063656911528955767108320150908330376263926904577211430783734038360555095190804249214690291922181056505272218762544229447734595795831948480500268229189684610676176887048385556523937438532172322879323565896006405953162060378999525802592424459725113044741361667408538230898116655979176781593865261132998992731996101113016360942199104440940190591634062031154485261301647455796511488447604555183178805946136072549004087856762082713156125892200074265863907359127102788230063133802886050397160014065971441849465606207157008152477547983362724712978197299881451038377171671985651521755621480792309201949058846399829399665135438651020392720430940350547555740727709914293455968919031243706087586981034811993692961493334158840266335279252176777067531156506587343159756032856025571787241285335359954288007939149937375541964315310777481830452665016456997428530616526755765192911366053733566992189800455917419659666694268640246977973213223604060463906437425742825301121996294152559064479604724266672777923488107466856261969445966113618722832328657225682823234759341506746201592224457454937169038736205803010718175687511637252193775359508246525115119873528501840378998464839518723870422197744809067070837091953428846394230349458797540979617539919983790597330918648534288458188661404457472965521540179061274336977998886028785301171555600250214627500001672898802635093727221868990513428444877637625179499774210808458144801172779341221397346616274420429075687352609899299716967403896138327280164716197299512581090208332521422247664233629932796629535047324050433284477104734951222527606849289568809732510049483038556249173425440135949283037622724869256867888764604520980786286155470863953870988560620114318281050478665472544986729527856198685703215305638178153573982859545529512414205622199333480603419695441806508886367954381912842605206489568960369997565566821274982403994203471643526741695362442544665640362532925450801826159091318436070393227676429984351311622337120420522720159318576610091082860841545113336250315288870187403829445981919695525460667989172877813641888381092915105470765133373583163096624192370357130871509581861217959208155387621817998866107390228539283034072485791139295392975376235677294761206302556422780418531346600459448619602467615081535947462564257663811307966684763254795628065175086103354725809389698690384549473720640500057659340716005693171653805447839649566265108796537620953919558239746645873380362739717510798830719535590832397822345988246096862511519210488412825765282210782532080794506514369219868382173747845333364477437071719317843328434489615663162215653841955614104473923452238974085750187430282518151491005778216007981469477495219697249863276564770008341295203570385869667321554382348861789943587525727820991337939845738035371430565402237192548320185184816324117590098370820292674248350183948944855119908993369259728300208968532211516372293727528635579280682443740761545342679964129661591475184780197232066674040241661379737048831194558295238135459097066082002734074655199409588937752631611282967242025109417476438828426729776394096360364971773547309191809333755963933590454934157138630477500335570461141885837263858132267539764221401576451265631899368816455273801425051400284725443513787235343995651817952624104678340202130129039572230061231794373114568712231737127174988059528819851617265145989827965662982707589556835717386734660551950923632421354374132527035749021592396218996232681581096654326673000407886407326269296324428912206171872054934710186367949671227276784989927807808882551087480087015540504969373438994579286809234566422175893984486939271910537806293858496708950430294854253361647035144265471336938955738667467033107295298514960428315630128126327667755622038314148231697024345862909844862000488035585525165543806659693456978420293538509440756851639130413123045018351373025583269247027221745315656827003010736494236748533659472261187829885659700470602595997115865075286964484645062941401392777551072220164784789310709818549054095415049821936159087771383895542408830828298736958978873231765508801175974836119498643566346904587831585132197852074395568657926357086489959744962884836187044164201679230453891639363803534123017609473139271419372582306875767219444380864855047697613388752820515551214803723471620354899210910971643903152901139449606453638870184890462553856661339817311273829384270962640150236537235102949474140587112490174945834010809174694367229551436621845204432773268529783404238543886592267325414631862705337624502670459001542142963616323654015489297096881330956220287659242911339297709319020408244112160591562901814195262596885781694496666001054374171968093297202065108247085737349227135487516915464816799312743173490174029551514812691538014113775004710522695991969518330857006005668013655199334644491604034197457150625448966702102160025755563776643292558719827680964251379531280522646189144959214566589669845029053737400755095815908502511286254070784013144346778673123191288039684281725470542412233781799992268020724216706321469735650400922569367283088107005796784368516286343323409667236761023862640126092190042196051029502140932727091278955622646551334256797709024594057219780218090961226568817914062538638901112345616492755434245965097192979121553060237750841069891332939053229778576747621650167518089707741967628014045814628760593611690028475964198881898857349116041543003045447324322001844525590941377451474454419345513528756282892656814700088841968410254966350477554809381439502389287023254018397719886107161104615630784082846958679223922857665268793321146697339704497191176365023227742178829331640290384407821194962929179550682837085251038491498556255384912643325113653183474217724456294002478457327050008168083881956031583954279787530359017234503801822786459062514811075312808768195955540880342436987727930017554770475410463542388338931646509312768249678559348633481908094337609371455014314958606228691436594068399388879651125304249744965181470315548045606946171754021015641866381048606626711569566019943410828223020648569153547855907950362123372893957950934813301695431213344127267368382251201993165922984682602809524763388450926635010929414806796282240386986382181707465354041950873217986754388406851292841090332533111682642465609043123979408575947487689909049676480583989285313286757754035562797963994192741185365952651585690751029794846274500115674881601814130604472711672143056598694372794231738951067340064895066132860436072659577399742120481991303100632460065906458196641305865444834164960326570146868531138816644678432370028302485354264061254329945181253572391168848635482113388701680127616993693968896323063419868435164408791555485762192765975865897645347708317043848684659441087801340668214090213241206377413799247586520806473132718503209076722311435717989781276305729330910862631581595751959592017782117013318799155757649871471717416060293018690108329545244732972392431870821222459604847400402128866176254996256953572344632429690846597847438690416438725302752613339760633116616491817540851514862586581208441825659352763233119902650985166629487200515668072764354510741887772524803132040157730414634149025581497623461234744471753178312994010320861707861952357197776443653598709863415082833680548940143357456822281352979479665258693391996697478637525104604881235007889178977902037035573791813666920331692202070417069800725716108543080851321045417002960008388780848545276716155533434847294277612217406995414941277479177801773136919885974853268509906396685305002768969136957359128624171165876773692895231061991544064522823490964359871477278403713482813962779382365583450649289459899713915700784623328061968928983759781676278144127004233175204177222859607690466517723067110213867534403914206509905864115207905379478532453301973496546634296385008901823330379333587402259162843944211319335180432651938424623965989587453305736915713742678027939083468659827227406668812895845497693868292500125378617709921206400866275617661744624569393066792061053556313854089276270084158716573690456450848575906102737991223202584156906814819887624945088169938405743218837973548086962141341720686560556694623990797469008446154686192205663267774504693532663777247587467008852033461929725317373245095054672029775877475145405594656323894369428128031886777499097785187673397268861430697782653834359465664551943614626884281252297247329237535785915510391545337441530244338675183580192783231632675382918862385322610716113157487255846203283056430506799972798196326184553816023562323599666032562439298545156949647836739159228988814521448845615937351527514972137018539009047007946702597351277507361024617193567954419775139775485779634002172492786530841950436422312249112241507818382685903760065411741889541785934444262265221916588723808025405628414824845542097063814350512896828294647665261178478366118544302661159064816890651625817549016471122608253673973494069028562707189802870539122826305242297135010723887028865726119370098500092466549510644653523458704277444791188348143492726855820325556744288960984825971347791736404785452756483893362957685122180242527726501595244471083851174305333690891193820526799946711152202830821523771983435376801813441469733166768062207056495809010268277681838400563515612646120809268548073389728942749836343357047563568448886515619200402032684448474987138437620712895058428058305081212846201553403721736462575223864237411282303714374503090634677986957776831670775191034589531765605065799428366435544336632224055110480153791360089588679952185254909965170373113843625951199500309814478814965203017121558189935845701307803921301463339653609147316383294181636981344503741395715161374834399369121967473850400429578792124639301240191419204947595041993869522973590708888481531654678995581204369947759845628523306829794110348918615645917442379548444361452694978099285736662050162813011163266307527480789802536809957542092616226821016725956429420313926477472510594183262910253928551192025913489155276914969352384580793416735321888164548201188503835963377298223396758529840771749667384385740547564109613203916780033228881654719674448588050780863445187332324980493111696452735405907777093002281381145705757419431935432836913296075777424785734772015769920963448835996449849284838421635274598168497315613311014612623871671108394655782708315086042172206010778250873284106022319093583420196606723766612257674644524415227904549846148970682112611864424810795240572224425950709735804205429973271297698177544841328393741346796536624728123247448198405488574565094976968234296307213777568941319610038122561153302417004804361088558352206998922398074503477211989838811385274984977893043353839217464894898468048784230809298875654681447092150864353458832215753083195089281391326694592760771678613351150747173514474740850690457770656714964582084983992583812443051418236210650502352609959480966208753700435694120136134948226916230444870566635470571410440963838473089757155111606936217914337593927365078812637636100887845946700883224767664498465112715190144559652573146484926956062581473738234279411502914720270250027914195439042867856069189330808820342000227756904435692514899857989334010237730990367344689026939577613460790651930987053260602318807492554529931110970877244547354958212405681328897389283613175594926072751652558864340058943051629377304474971397424398547176951462089056863007132468853496814240894618515303840924701187089380946384062394862874944602358340036508050701129561711855558703082175649658874806156567376069735564461213107779811643918118012145203722500816728537314882511606768783981139841724387600182388868112269900978736236747996011209958600937549305214099376128862755438505718017620367018075320858494177488483636260801286857387085038334241888101165946498359642784245846458660587934158667454424255149067256849026787534891995837553411970554422107419174938096718154698940434974858982280223871588644897731717496269279020469780201619287755416670439501128893681247146688136541567484933819435911885543672013471648989176864910405387883866697917058070125399715220361953322316880567024413109438535375082422577497833325234101123763024549482072510738716190767984237306223646651045231577850028717350816213365544111986242142684875376292947701645850642179115230428062760314142121992023903459566297649898443197726673955933684372271964323445180498332807771100281554787512598842570181025160285577163009435207996324002249272733505661415980127126455367182839158977399954853991345743010686592064652076126906025628730652717449215789838445186236244074925562168200488587631807145885065499329617549774819054505063817650193926189744462857285652839188923653031569514984600533565725572689254430271167902985597761556384068882587286746474094810551478727867770718703574453095321320264599812864479912274397377250615574737630345891769158290567414946440307532633284801441357021494143528458207480675827746748864896023796179083390861866407871754478489363684982567850029020479572081935854333157174734152560988746886420199426539174081612854363819312020269814308766123021945258181664750349327065664850661390637381368186300180604994613624539475221124885394702046278969796258601695193266674705746996770888224508426005039943454664900975583521702686766509031315330682894067486195794712414963635999037513975415119411241096873503782646125187824803815836847876361195744386396076300702213898348425859847556491161323793101449945371893686713344368896671569250570664175040192977704685683315094323508496203291602997920191184609716169923169421995908781631327578797322237326400839431702263510801865737435229811929009134399088753108896567673963329759481473083102565329585679310204044532229084520319810810947332886662702144537322352310406445832935662241169844518018121982846971791731380471544319167816363235747350443025975652407148977736727995942096776111521184774425145097271707943772988337567319587554390386428777596314667494099445715980015512455482458539764779641076728027291448037877596594240692175574013992625111358797428577033071836058460235031213834853131762700313475737235527174971729315083526529467875209654488132501004888496790428842261538029278886256905696466094880996581745955934706470999955474400595464872111346152726894675764675086401429994062227621335945311376383599124008132192554251336822511737996476979002457423562146426749819224238809916298700240478144459658204380964277016671657171536156275885126924144969860630698128588562875060263844099801210532695615563305443941742884604971206654561631452723279060472286551455815897309262279997688778622310078141226841993299402496051374745155202920648543288028883438455568612878460179868320664002740774846298243716814136017706701429893311545976923110032035528323808424302845341368156701640522341814777281590946421750991746382661583961446613373307370626946288904664428269268332731912614769547507879697685644274327045469861932880691552836058447675026976408397239676148208133623305576779621199602653203691782748864465275766481380377632943133408076870804604647735382048265769813171980687962358688150538746822648458725376459416493178738501428455448553579824846034485272019212693718255865522467120495863742898102287381845557913006231980127633000984950430827598766232520706691738694194631598057516371311002335755862400855878713103464038061214421946549282466178708620973414143558774351671804555478749249896707369958783703557046814182632781598268694829228466079026698666665741972564335209051192251908515682537760468021594875734925793727109481106404618067959784025217102303611365454824027849446266228249367378259417248582666813387413672815192696783585807329034234681281151441391533699150432838782422278185399506923802213615106638282572512299276397605802913249551850659767494558584371796991375110035714138970116031907283272172882090594600544633848372193018153132088135261635391229201603357267226193057047870206585765603405516548743643682666185994084500607760622917326904608924149740274290437107199705237201914526859187395915044082574939774937112963641847820465478523994554817323479303849106305625360390295998207738032813840428829586094457979226302107076395123331803987253280176454152786847841318063113336277501229181395950924651931584752010033663120985252300694411492843099662204988513817730096894162945777536056465365786621192126906909741535358750159383310816216001482291637474950431025741330019958179183293211808630192036825807402387537915678218657347808500512543324114076811100217363724753464229378703380348388979384937397086692580152950785154150805465436608169157694597967297180015865214985094458757159191945290078473886063271275034584634302268148297432178316502364158863649807642796986847282303938001136469668498031734347416994986624724129617488907937405401858876823845816506491513280809149065453115156814685900489572067241798822460749702222921009296937886919884044881136635559974755042514952824912768444260161348303912320499733440355757600132296799954079867147554267783510879080926032784106395929131280757660334687220124135244366849030631567949266246331583198645675425607609093924685085551037623219615825853785205949560227998144488617265112109276073499227345106009718705609172962958240936938123042339294864215241522343823705608035485910832139998684599916401804050783226821462708278367722231997770421444226196475110230314761257047267639818530949566900473660529475978984436750982775503479629634104353053949224032887555898396584159913750334063472397619327212381535401687605027502651409288875408187161490432997972504323269657647688735603122064390469778641948413383295288161429441256600224822670533867719739589494499039609901465803551746802318063179640066879560793930585357334948365092032595990654323032716849656382297294915583616274993788710989955320135630898650539213642047384193784934632471052628207801995820217270415678032069548742591624099943980865080061256672534948173514003557693206492157645675062314020314735251005191493445475125519102259767886419857655990976372342099793075083424641650375336739249513645990119057751402203139788479419915678867774323127569114688603732084231724303558268487358307842179055122918315762433350696088836197635167562142037769704673413527292572108823012126531725752023795533970675132680362037869060774079524793061177090115910222526420404383045945470959008789802146602439999315994598639190166681622379654732386674323398975178536132150690315490829521696728811811730840975712371719653049919748052289640928602699866114147917515930935038687019973703932755892392139191805227859281035820509786549745717999872341348321435759961753253189244806683102075117055167286076584750819652724152832996453110919790062332876365452898776453840658805029436401085319011563393598123845452763213994451406336473003524737847341410500157022425397027176174072109753667892889213160452797872025576110402846712922654779281532639635082585559972943922361982859537071380890390402316111839040787888813619404404573959711805234754932957150239561770790971130053564930904535419095191083488713584854366144328066557662385333619208654058237371809935277892871735339850047093795690240936765455232888232907176280472788184133839279257829077689313289596027785627343220452520475334500691691784722299540014919785606902245075604039278301146264097416199980692073362426667921500605956707640472702964752635386107022237435666286113179935545512718916246264486574945907987634563654622215807168010220484122470865114722931045046919784286727136893935609583738011241285725368442803110776588782411760456482430434011521103012153030728892508569519889068690051915854619702898932864814558387961222121080972722873769602201369265483201462990021388833220224288649011697690851622959271785595359354689888289567877609975829824922600920540567483215998199281982010103958105162037390339527307398860363076829346992557120348017389954093826190675778526310843256505590763092713567455227000441280904637645408319495446913334950804530141454236740240682081529035792702254288444792339676391219685004987367779305321078979506152461854331529744081138073651958416178170509907766190434855960075648168752320988211305877056126954793500058038629590538611537571734170636155326787840693729659454139081728446490061193892846998378448039169152244586279535149264371455073697907956715788359852784949955424684510056373332848674576768899449264485258190781321792198747075280874500584232358608870251965632639822522783902378726454586483840230863069472022612085281198782062729724763331453973744641543059659202002594064766325896586290282271407860475980161231866772594009303365792636246847999521976240733724231494935188066809594854129668057741534698345025518766868549060609522520697832405515085889112102386207056049677132544167717343847608019952778027159805035873035413979004363575992299398025591281982005548972303397280540417440856623123947152040937022912867634452839257302325321558365685014049924263641067781598614538603476897513146346658900204418287815455656782424253681781149400043183508841369565067385459415188673948890807444048593786211679958687696572813809714328328058225017027378296699366911101211086937338120042453332477768103484629947938919061090888285030014273002703833746042080341961298911402236879203069092215747327925459192390693443887351798791390853923962728343913279801335790384938244403989695543731398141291735118334229793250322518428283726704480701482556160190056581987566744906859394100274259420125423652492299267110195811167414438192209039594407261043636496176296770410076438689242934544705616818052581857698503585548320694833683661113568652334168997086776665672233783551806689101933002618998208761763847429200942860421225449557332414780169791173168896698933290656957703540272921054636110816330673343886816561283443128973229463615495906087093610513115126118723185320605343302472176834341733920245568216752244240983638337873148816903980918825349729700648065826709205604510660167899823604964460294519804428419137917294484467262406961068366550113251213995290737346587405386895787406114315770232978412337623441606118491611776321712253559846606028117349294745880811818633640878473675636868654830281014557543165053596578888405714172159111194440595731454828509175981071794149044019544515167125010090577456968964399430364462965845972684739220522661184548220337960216555862136533628048896592217810146931336338085891782343152173380235251234542982978013025594037296879096859797579851378307439104783973727834716331976718450305205901948593182870857968796209586950520991133147468499182942918870826680170780749620781919176805086994400069893146385101940255874581154112220919163589371179328154865250215088641809174355723028120525936118952793615755007719114230190331067132307903155190475767850132144523400482974705508210509304999809869661049565587005396295348573911860013795686821354081459563466800543400716947012842443244797269614994084795141163843876168025171903748274737788494100574312898572465897803022899523822212371640290079046928144367541599082100644396019835508661663004374873390070390628478374628140991533557859361417870736608651192154113190581363778414264660634278311542861603330702137627436648657533113986650599946422938489268023588149663951698906996466390908352879060329973850923186974240796869019193943958523100981446313162018612313545229856325049917951018641299960369104799622332618589583393916200014647170951254621016585685191311811829283870334625793889470100122294658759353266186245119874485076182670010955690977530449312741530554405678841635206489118020832916173584155966970750404708010292800285035605132542610339254899676493581686190668680999046236464323994504450713395065440973626532812798763867766864855249846856763999184320385450892192840598791974749852568123951483800917130414813901019441460976458396212225758214577039597438340452604462150410236301566304616860409353337443634423299898620396725007753698778717345570847056714223240179575950583713628846616993354518841328588068651663838909769529411436287454187496602561864785133333957236575138277818042384091581338750416375515300698632001876956205482169856540993728895196159848766565678633074521211922636314022775871058957044470992722253170462116176185117327822957307164902361700654031356581347882239097387981168174161882129042108776886062145343962487821287699560710894595516868544066285725422698009664931800533542746440342683707833018072279582939189558817841163697520644315685779129618942025275843765035550568151420397511274327653698363462043620729858485828382897958428016571543811159046319562531037415045403363431000586107146050773609818437724271934979848536713249211378257799738835904432099533577885310558314329594225471724615209643891551345519555851118493015641186853421581463868145497100147747826412038383792679027892762859407663325477928421298605064083637870077412505881679604491810524369889496923584503849892039100013359537990729964669553431452949925669225874198116560511693370731743294112470953379619415558161742728051611503159708087881538701889801568674704044695191325765852402859929502351661607314226439304961934761982026051666557756903769494054873491734355722503137846745891275337967204134656581911584548875903676522162202648468087287638369071982786834743089394985014780231282245445539299864124502322189319286866257062698268604352552838123695745649781385400812504517488817387110565190628324781748735642225093822420314253704169976850843581367136522339558212355296915494411648106021302800933382064962914810444387870080392176905011201228445522304952264525416836078854030738695787821127194726066857529028701397739965820098864496724136797540810550360005771300978123951474839977238074758569001110054512318814896887227605308330323133587502130399557142432416613890390448374281300019447179490658751783934263052203740485883464189681123913008842254167190850811675336338186550080332660983811421209433789963784016697180859727511514376480041478232442166858187753359280614225515206906371080898717945665510965553842796371807130541049183335948757485641894462600860092837753126039463812806763448394469338809319303431906300235428038818433404981094815660663147830416404736761264764051557972228888649830262876888427999040030275586203814051474711829113646058985943262854904827537561239239011959335928112264247888637727012660987380830466364461601973994946362643277038996291715246182806664102615133059485746723216239398180689764077106245158282699767587056874020062913952527489161201379329080959544844488392815321261276855748701887176847681328782243786224998903390050560812085033005483011880690093880270983328008201155060266002554533047151751342073394607202613101852936616845152325422584012879033091162454294387829828075617979981183700303115219657079497125395281687349720936633055662337048768246773576260837061326862047304296117931603967222673596747776866161087509868605001658177388345876141427128490822681854607192873421153309317044357404253869641951650313961512764454394178660871947490985290670642667592950057295406355984932901109817555018913301103234618866284339069520748058637787993410872772275712814652826626777521853351930456503564991080098492636215314375443130811657824890078032289910515758052039463099663629011733456650595610828829821481764935698902296755593747460743909788335696762505013804754492347451259827093220048337879541201562384210636349728634397115444118033022195885939962450702398204904775261617184847502903071543119608436677521403203803345394066558398133423563323998242228133825888574779488407656287070820421328433644192744090973107621234923590329316071032216673019782251201249120768708293205690165387274308467955189013743988311135242991178712968554987986493590675134491715662313148411487542531590954928533383111002801615771092010396047523644080776964537970945760995092408737524232717732902579762112754183706059136157496210814120899189302737293585872539210636907896798997668978018007922473805595624975539877715135333234058869975020465227653227485921061361827656628507803670474161092087245083338510615917946909733707430968970174628251070495264253979764030425779630176786336443397379038824124554187794556922809897681359971275137166154376254445761453427395676486058537085982997980958743538074905475666908563595448467985815753712496058289341958368490601097263344911866572228079079842385425112525924290631318242457806815107776422354786757835789218587272762018699476115253088950019165973081959565489728392835010269416127804032143096379517866361253127290473428403424113943734508048785413590818277488314480967211536646287510151230354477932903580918108239452815552822892414756735839780984647548311763010876223804100329204741721046198623652215815616478316469780696014405485708835288456057190152637760031933403023497277359193626571450460211971582232512850931910219754399195476842766976408133199076006056107156237406070610867233595158401299832937295438542901985597614801005353100313477840258872473959550215686975701706278052906591544183960131785101918224634997527431221582890576553033240244967937891507736944789397851769386532770083949647757700624739443285239452019751882631514206177261995511387203452742538624519039262321366267769854532533481225477968563603300784167100031266006568542539284044007114521296799819438845781028680784649528033736968751872076004533801472637868494183605885420528166905739661255094728771665687896071885226829617974470272224932396353449871805607633583941912210094321166662955514387921949756938051143861331258303080762217785928010393731557271632271169203404527857528542867946851111722767475821822701080414026317157344722462091003239310180035870989837101963385685164932324747909276411612711621783938974068790709819339688009473178636925346444812021905653958209428875337364189347752416724299884552438060855540405915157322920026342933287927411164216967803752181985869293674997806522709459663844489658644065569173292294157573001505944036531694263466814621767767904597041998732370327800801746595683881101464594584110290158386959291518081990681538292324983311710124202283859097788592240015315372841941364211460752067734629663156880229588725246187492867260437820707728333293357849676166954079948823508076004466532240126703687709972571382895545975772258479889307469172227107064782053853213041538061974200878896063764192824165579500419757815850212873432437767123432604247655996561661007588176790198151784055878993234169473088671827800948585130820779209752321231566529109060311596386349288882334708202830485940428836421959831514956005057747637538536163352696978548666865702981662427715321955845229248468833003956835480653838326128523505146327016009021899597844984548405429354201112020238711250023849594420393361249336500034603224546646957906263059112830189191629067073952386402598205438334093122198776642452609474872006214200525272596713831039098831877796244143347981896473461529239042859966104075283832740862939121438185134201013767654158239356564474095952808519534077385921623243152673149832150523968392731195721429624514363674223676897705913389156903469062494046833771989707303058725770539985564737727737867300727754755895613966133505911936485665720272762682260276004662617790775144157028124177755794859259983829563267856741411764113133613265412097852370179015433199745883208163357017480210320669786619021123164069089294842721579305939094842846977176694842464566841727874809245856076047275910140390701038772105967157932062265663305706464640082446872793497488012407440568288235944352114763867774381935504215616354462588356223350093004677865487782509167721687433614790301315039996232550279283203010142096228513808222847870567756016754096907066768663246932127755553677894999664231132803442606347952255962797957398022453299918503023188263006610295362666629382631062880197700563638604646717401064996576271061095883611136731093174123114044810839788350479890615005438654392977111793126559572051550186937306488620721016554883967910941385497950183670841425851622949363696594963294940858606806304797349853895709377508675065273522422787610614673498621685486148576757530851853482991878322804996178911492465301100835644704702495361388278654255928743198462280642925875013715618359891720131534917857641332998331397971589958325498857982763499282354052236302442688260167394462762367699764974788052123716844615594740617925314869982696408563777911782319370847674221889705144637928812632605368826382362391052536757759140049407827053145298781841440816377730560183605187120900932827808071112337461650034878925895457187870790200742919210725850809146529480536866393777407432070980162129573353629330361141372484263118481172135300512981292242555147246209917627271948655514968062219930438761348328280438203955023418211639326110552848412403823985995487777534286857478171857367669548050684239604753634961990049816785644754844209437041866475658981937160597864345050487743314839816617325688968871522761013009451778391657103673873415431142999411089970931765239912403887948349298837179817856100123112196232576877600867750716066269646545961834674490632702569753558254545295693801823842249644873444847806855918285258206031681993393810029623910408991775252660550411943632788059820435517518519665381510238888521984244902312576033276492426831007767293857344816920539313199898807227411963789725391014724863147047193927985764248619298092645275710839789813458943268790559522754412094336941052186005715486279693745231579573975074143937015243131388905496096683678631669557356610468548674613177919675121381938529431395864148130439082081767374499039417648396207538809870062342580504975739768059989285622188548172506839914501042946814201879712842837794610665468173656245222723687874987487967877314726834834287566126278016597787733350587925508314304303319689669585237348932081619006871406237220272762455791834448326551250737735367867523327277146058797269488306260696539946935519828764637624083859273338578781680394505761486573414507257201366981361652466861413007586461472102105080079919353255498145078210633805988524432673359837442345711127119080068513950432387273732019641098477944729387413265097323270692355799518426484969465670391807265653039586556926506948018737200882487695988252815170666029146849057615015273200387554726536927090565410332659835218261021592912906062021616904704953648630113952566328838851638535613586150408125255131642820518721529612432584604330639791971310024216938420744476266866090013930624486798081333657861403149515237126633342049323975728975361753651548377640607440138829735114594389687649183158469618344855700637875847818818534939363560977109758275701355237302163742644438503150490463134365812604541608239848592076659601868455544565010823704141880024884919010698739865504463097111360370820790544046537868480630902812595598366455827656541934312606630561469544154133709033151695430946455281679014197450050884162581115640393351994600305669394174854804153656447066713821874448430637404650291770136362530278581534206997869994971003552739643389042104404538091162536836348710989631685630834060465150530999580671497637685609830520772921901513994108158404454489774030803655562881697738043110575679519558509939106054661271697857478257394033030489904432237882434255762946255514557755900009375413584351211173400581291964739960147460491655389893654189075237919964004903862153932925614427968720933588868035043211944617094647553623549295365484441760170778390316859171271510063421428887230853945004017512648661623553834395635803539696548990714616944288936977018112239123961376030336009261452295409814725074345173587418940837557027145116718273504936897155181822354333182083141409838519243068420144850809709880477772756743315936563544599530943836828237790468747123184655087469013325397140687409529590601563765950294634896938054582466187814097005362268979465363854154565921060888227525390403761072991234796241768573791645214368318141171858968147938669893892562438235743024232997063851556446453053632364624558558633048007615673520617231406070276200202904244306497491218545430613483633553833765581392353046167953170560312769010519663145018361915169800279305063940633384289015693215451147210954127421009321190649796030142205151355352865853042414958609580258869788673347713725440010405026834298029835068499108442359134143938900912681050634601144585504827350191131908861720499142325396086235294740840198247196719448117732724060298568384494287113598003387069449541018759405293846151120255298453173899398027247382852634548776268309052340016023983723897596287081410731790710318006985983937647249560050553911090429437666753661551538497418332227812620360705577475058980673648825522060344913248953891317302652137235398943101867379570500962121470717872866970867146510786479098560974665188681763529217461849706460378344104870226421183711416737434060929810857994029374014348601050712986814973507272684392679843609901931488560699698904078610333386750739799922353827874926322210591055070342362500440486150004817640785756030942049886257421166116286323725261124968935102432969103533960404596727568944543824293367894898846928407444480865969967834866799643186322380878094305993634680922268163804923177962715353620774246680225437627428576865138991206935561443296521316165009118835204402520247623901016211123476176458015463098814270204812967416639532252788146009923506392647734536082122618507854303083909106683073043476734556107822534190865004952982062472065675866365068621406147470852984944568155627475537684892092879432247857089378864789621776359525033880669394607109680621236803540671731725693367155105659066056323412821835808431213453877860117657400617291125167229522184581825426230388809161153105787794120979517024944058749606609699528785453498569935596009281753214719377776805119557717224542880771524805039197309411987673697542457791136406764216277708630926398696468777541426079396834719943148793990918879408119030228382507027676551363728576485337495423729224244251370066582807897042451060964112244307006503484336678595862192965658960591465420346988957149542258773513039191048834204579538341115661119202600736742109936787106338631302443878288796152671840588434701765483040435752358910606840130993349080897970418857786116235464988761993889725979247333871956016781934758001759107536352018755138102383917754069997675388458759579664153987338956813206382288669953830158918982397276250010150230059710921257267856448629739309519060179480119733707457770243393614288072522026706015832274144211357585097178892587230240513788827168633033532968039858599513688628636347315137239460426497163903817950355502940771073296848223507917814567803792900972981998037061932024528046138271151315642177819803597056189764327466977815651230012180814338414238256758850570239700294176955557194845623415582406883032127927115552281151852125991646592303649804844143053309109241273831479074199259261697011654857503344586846502135365442580483147981731526843509879581804060804106118178513149413438023939222056336969699531059270309028844689671205852721729614399479526908787955529763346936775080276035012907696083355976375671388350203385899167270181899725898990766339663034183585985259452245026769845291007402565443172504560655708312363430497931157826879868068335302024024073617953643902942008975604408522037972301454603345354789341714355225948929236939991949094353292779774683653619810704624708313157221429150245533149491654432505977745669403658288696794561568076902670185010570582406032714033329030237285029572948780589310384999841389640936588402798666359543066796772205062706634537030117060480127293810392569987245442129584979504351729555708975934412871753439357357195654150674971944283325053029865762820856272098000336813178967185543919668461718277688762361006582230571515241833659507644914179869138471782333795522840689207125598490299532425590789142528444562461863804969620546618362029295777970307950968399067329015722057797513852889268773700162535555846281744116550337644947773680684159694894047378179323407722123618151822282263323544222797414427250013051312926414364414281959600890280675869063428160366940153758926346629983027616464308027509557505342455900654359812534423075219946962638031178432292658099225455259412761306770420598287506404317162012346188668797555509778135968146558332548234888693719056840129895321849497514441924659445694701115353590178910724854759091282450466002078314731141363225537117460169610288053989848345783452345100701918189153264906579146479699892878894115476173101034611969500443127928240793746166249163564533703414001597441089165709694782738421767671998019593681800645145079936579687536071370994168829556464184574211018551334470050152173405146302044934217148806841940177211481358675100171505642954813181586393139643074297559095753447650131289857211095620828758846213297594754657236112082538201387404013980991265242701670464452730415280190270334224293563712077540284743638819972590700960045668042313950215708399742242282433303630270375469588360705262901503993488474535726687312826800030200675710106052078968385412627617709147949025561082364541530779848246772227061234743755902694920378600662816759650635770784267932719781159258613323354948349146907288887220062116102930224652299916889398611744077292825457023614513840358083674480294602218204502370640236484133973199460465729507093377048504901396311081707239237707909208227688845305692020888124065506984713901272396429936622420834596015089483139471761652132913388633970192301881694157828480171329744674984532409866266919986486435649402500304142381608611171073318845035770350732192846308000620514373718005966232126924182919201964836798936936535163577465072724038023379904431512748733502699680478392738001552489458110992652103173846965091500226195589165556113730063097244728231494506451046751020599366771063953393196828916806909707242367209724596751418433302097054186533943501571206943736966404569489476373534443900922016895583107538109701454630541977554605256260819524335117977892064370142718568316554297880558850091970120761645308470756720200603295922359614617798310503931759434066959804583969769535597911462786915812775546598389839372520524458333068980464911758301718659001852569962684746816001520614529067989595317569947305826607127599632946407116806143364099751847480185062457470234613317128714205528485714404845443678466894178372176245595238170572229923882278530718194324412971137895962904509031030315328168174166356455737718310889547307594975783603312927729506265621442170016352040936415378982258237621492726865057352285526209293735209764222250628162688495283902103736257807363832486106891054878742042842724433397359290142250199981795670851823535735358769881790789754142971493806333518786623510087537443363395576333529158292291795114264168160115848953119192153829840919503310258865824362394725004326888535970676859861351655165832929154800191272480258021009025065131616529406504668372532211411585673276361388568647391298960744927035847791349603797856590715875558398483771738114011063407431703105616291908834356657091236489994992833568413602083477150925585768442376758372125014074232420839628869733720082729972686327440250286212833159509495429017646527480110798276629075860789245379042893035056408151544474181211535276647574485533768874342438555816038414025546484899809754212082023019080437762282423708706965192232070844536871075757037444960009105866530285027961427279267322862967551516623710941213449961542882674260408558628531884017814027677716031555268945542308848326469324301861067567971774147794142488529792590261020259795110103003172089970073476835595802306758729386377815121225190707611628836506805748744600847230114017948243576305892832221144724055078609713008682373670802825391613795633523648566024895097383371272262033989617675915254392215074969264751876663182960870101476233262021250637941161598420725437875156464100169834755229168130466036189626672557013688510549528039986498646794829674466097790069303368734810056452907850533879160588349038229589540555690412443268395045159671893617612425902143404969008174099841420766994981427139390163548785125977784867810506801566951958103200261842461265718065262102735911770065458974535648028077288009436991925063227209221751038283798573921806802944191709678296546663477257079056581067026799121340866153486446454265777139611768140877570808428002797205885932403179672871282048812906153252998328221287869493570087275485978721060189694125735319023023935190914522634107376546243003715486621073516170370221021385542697900663361785155185694117875428482261704510866084656177236827875524695369529529275228245537923837053304359041627657636001980979276577196234031465143022250849212262745318851295214680386337858408748633589074915720523889814090947686903615673474422071037196020305945737504324235275048778907239625471812342233764390763996655178479691708911698674377730625225911961473478126704399938591507361007759577213421399905922025733444593452580392560399737449558530326158162491734974120354112970851019452693299330801723699270564429108344734171763435636923272695430514247458134704426655505621801964211704580669664479520216762268272504976905332322365998037998887552990651780428857464872111519937276198234756077855136848621164328996826307308462841352895041742782063011564772700819104390114899884219328915558236292768829390571882714859602478302476402401246324999531591323190980115261464725522507181983832367079662979896233710005294792592564125462720136569101492170750914745942214539908409277028385765846152340693134903435550970036496828825155484437085701006917372508047207763700260361460958097141507994109289437484309005690277629686483428473609874087007281973551349786771698685066433754219526843295792975310943038443993759572063383297818120769823998321310181424794590591404266703137645746156037165987408373753249206371491129066335025602270244772027927521057668335336437881100993052216292757747729137699593434859171602916546384113809651099598350368871544774905738026791036723028061990565131860092698403765074382795798753198378704312741484562345384629631104273647708103248759644758439209328125392001960213203033208194041787443096692844775661485582463146688792886538637300175597242076690784785857622064277337173193602015357609519492312246649832390454392625001215400176700236475745569937273083755955203038793986734684508080979784163242198684155648390436475331249682596747535929600382479552023342293590147215514309757433916659183988454200925640244428994495669044739723331266214443414279353411676297727836325083897498524192940115484523397970022004482417364145747025688926041268599727127988868745775443798488189386010952042966336651556781578506334808131553930206207099353099454085005571523566403803855148403531140932082547804581603955019081629812753846685050074672934153488296492186390546419574243711195936978225836041130722712595116262555538305297855086894271776384618736028172912628860604908686909157725450137611703133304741281516468382066852690412408776695974949817259529758557661804491459494606958509836209271928683374397651222382504331213535709047201053397255254711727042299649862154516892937890973362395601197387356603164975175333891833292340928820839761503746002627267900695973605346506114377084831103097514401133855473478334342659647546105600330299754763551857617146905285662649833102326855267754680472420256938103657359144349904649723260593912508450846040046058870891477461548131331794777740730195055693818705199162359317150144069263456141961615326575666127030813622107318146225612854054919424787733203747874787821697298770780037011420062358676292436224818135299657840336485731583354137444424131379088641012223719155240705378746244528501272487721864934730056358721348214811868798913077001069984169636086406164353071362696789489668922972011914775649067202001841804640384993536482477475383989007861847128036811409032644903388332994360166791573156437949423129641055930195448009833486981757220875411113861600147830867883227605198238831693806598765427007461021977822086767771340695092724404505750189015911527979641639556207227259307003084219447036421111367807275629141533241630806105954429458933048429235577241746570592082123939877419843100497191116032547843902935303558694069776873507206351670276130265795798630172691502812303683549603850807614470508148870952237867325509937970297169528959240113614012502310259711153202950133012368364880791974932836764375434275103915251426564103403578362265802230033351548389357544910524439971168478690065245049762165610546371430384372560201028058742815861344392293377525624782416399774016165577713836223862725531047379607288527834266027741197343392505119462988218159173123828652304988811171863337591081674238475992188223047155906634370884091457826886644128376826149157145708340477625561472574143097257031420252993286071972417050947806020363600156743704197280183984711940606031662473208149304503623685203022078151587715886353173641625445901682393382732584199361804025028219531409363874620586559725560393258265955401174675921021877162162448691242714108503463914034135771792469636476649667329554981421414816061760873785928088739320503090299212560426039064339300959240537248665267643737259852387199250292661277819009981764454748061148628908364672503748825143541627765921123101644714849430425708073054045885651301515303698663704498950247829556329288834907155276879731720062845651079635577639557653186512737366095141610435025050962991814226539796708702223548392120770995427046377893961454855243697516518520741206844779346898989998491857318743686347236139197130016126069843355731514890333502016300150898135075432083040532351532302607214958281107579434014869122953505051901239587233635768169065027417329265682432693427818509841979660100713142556881018778370476259656281020232246682141568235681672401381000791324862187659932988543463314384774795605888172194458230143607292321046308677821236904460443502604077738466280723024550276583771587078860889198168585504517750235693579262588328525696910445322685303800143255413264846804792871457465794440689255640411896667059069921943905493912495453708078924995960902812082849425467365557993832662353364001541892969716015261129360608417506129736772378045754806368199088812217273937333491734561968782436383492683301222534529231658711730219583308572005087695398940873344842912972643608472787175638263667256147274843784862640467960395686216310623323736887205512346747471933410923264638556849694884679046026965760780730884871964214373013903465800316600831531353660513222823247244862988860729297583592411345250480278791405759020858408722403018275510795948157116161143897067295692510558167799193076264965216314868354036456114427957165742197460061588043212276401616648498162287515254643762395450647523534889877874420503081131239155796347477587887364364688215663104637149194824130003810433495569887388301639177453576511261569596935895025922405448041187601304477083176634849303871322212080500696946296369222019338771700965307384470502928568773970177604518188629303815770139717932426552247874600623067209119272998658078474913428083007182150923739590687682271945396142885542692566013168209367411944844951623639154998880158933049447743425823066538329866846762011042599427247627577596571704338300618359461406641314383957648381803326252388800132916404598026075379583487071599846107393569936619141949333337189933734395681288634848647154416132475271282953328227464665404350681054015631537298327408409964135417644581063937473307742515246952465773169156757311802536713316183505943320632373503797240455889947085891608323168584906801118656288683596585657067673292570968614232516852355275652776156110594837061489455419553502164128681004066020557848596511045860750692727912163836964056393887742584320963463927836736300422677116933642674890994727029613605335112528540573404078496310783965596559293334134603620349364173179059738282907281357030970652778766798781716008580512465411248514782827412183922246451962931125518355202296986354704511026716286193491092982182321946725600492708395143282209605591459619401397258843364598193198868211773645524616103292677684893547938357397343429764839072909003654897343365443998685645706527388384183408329354780913866288976031566832473140037824855510205758640003997531498535326635351651941313729970246105183503123382402709246376684732303048993137253387617480665751678794069544358359077248808868192983133760865469653333764582535870248386341312950922734041018562618030105806706777308852434390838880066432208816989027241395146294347741333807384115264826280329013203124764043588433967013235832745856522656405010918146973278470331707640716401890610607877168567633990840637575956589297023631613086959649770036268557640923985551853711006159873437221177324822861908462120655017579299329565241147041870838379926459840964549323276520890250933455312176866572538649551915502055059824467190075625403244069165716791880382102419810298041411609479550768685776449267378836525640922400312232515404677201590492844583858436738979486255298695300170171112769769387185737517284689821842249015328826743605118500697063470578189070917607377703379543217044569719684834750976865519049751963213506862553562884869229290042361694974425752190893707929496570477581695763402880459992506373023103600801719199947832639776237463130984709511891387963712772607378865981075284178727791352395326718934236990844308938587137225831986144008890497883497385463473914167411414589051930712090905724723906120063247061180696537708984979983972137470167436839014287862128881559609094147542319959953268283351082668916481127581369135597154453443678192985144151832163999448276855812301547123885437503067388547554203681780042337440556888456246708833548427545590417372724031514898798227951829600335033271650353905477784866966414786340877677067038400965563719940977043389862046411310291987658952587970819812084488210483836059251175370054648137087687575808131291731574949109621151547559739597497179170788482043445514809873231196110531102288922301826808166632636330530187700428620615083353941262993382793968732237752041387894219428259318320496659045004722173541310588360751114160250417684491805831111549186013192399335775709269033233190257121185792297507184949194136616541574649067421279427507654586044852955272972079745631766193581182934605142590366311913825467330006625472560091574705067285823519160240252621719411218484194724244392852524711413207004684790402663258133991427466445791802185883416026719452106004042641986482774932123348456108207667752565980128124631983617064773568483486636517910832086417516669150011509865431157948878647236403335256076038959782863306268580698440500387553965379863063915742623619552977835410060255360535495380309533537762144454180564502037285936972190125359358179057431945569343878018290669515958047806012536501927333579667367123662113263543620145506039432339076251075506253938453667764515553980276507349578070361487707614406418959865356198057515496147400090527393136781309398512419382916896829229614142508678979874980101314054113599431131668925688807386792609742143532382298217523289595269134934327774395007185283987192258525354481566350779818196357710996132560128547855305296496198907276521721213180603733435876960686358927406911745639945707363847952670651312964197161373273621566184610213390026473980610918617918471771596888716005206982194324321351336826693655123178121601584032138119391872453694641150359739814715258743118006539272285302591578554101913260767116313942461282215149389588721080174265421983066488905492197293180101487661627529588892173759670269358853121520170248431940050914745408431222740791678964289733946052564274393566494276837612353172504854138106396938746312188444932726222585728205159766092024468016551378574027672754822698179268718207719734642893442422357599298851573249202270964113010461072570785373650613756361446113067703308775897100028477555401338470412563232738967155737342524660752375160270481516622693115498436601901157558276870741808596240440175742762507206782416675661806333849956017410544819720067841570863239708531931040363757425957110994395904404512830395352377796169012950238671372808261719561952088885578288110705194888444915088823534281243680196574710181927560424874934189068048824156943748779946964884548758219285331751138161721187572482893851871853963666366402667165340802178659391482094393151146320357398498964372726348598071543562737638009331436206754594281422202992814043251008413914149235719192416321812622212265471976901398266674837403001108796438645420724050448058740062119034063684615707233582784573777628327684192256374203429712532742352159843229691376788244362638160845549677828552481475060312312018146421741934305472537761151018478543568058070788804755574205723618280596190113550911177457537972136057881117903385322816187072844398267067248448040197018790744559502945053003240475635816581816109037552853123167801269920697024372046414725781716720053983137899002323651308215800628073074851197820188587451613751485683327896548917541957603328446244864731240335158882647669011760964912581056040937400379734987317749009305379832961831627621652125487753325437598558879205158882311436710426123626810626126003673264599165516496057897125108989298873485463656557690339049505969759316144581961176267398004583222394319187968529961720292645424300285274280369815194709489688853873599966456541757232017447620495423264929369334488916740185155646695932160999431933764631665738179467568304791191377636230108741976300860104631305312234176515370202489692518854176804798224092231383483245531563083477930924148699141323305401306859555689355815050790836922518492034685449465347557657022669604481237268051430782307146533147251709657752133256381019438064542319324675487636863260444035048163448060337819192853034480085420572708651750017500428590825246965776823765147760803019874872781737792252166492565062689619380045283006070146316819115480720272345306805111598287261588084361449380724430181123010509965761630781124242151854974077681563239314719115078425362140826075376442865869690060315496541986143043908464578993259556466622295912942002424259533642869373466592373153081632115573958581596775966447203143352543660183561376214193250282987118016123634935314920728403153882610134628689621831737829468222880700158289895142625383777025600163613197111427370018172316753472181413886235185820093862021067477810291179508750095521296585974173936182088909867846912972578527662709717762471058002033687810963296869502748609759162647303520266595609070937199450993085743230754485974549150125511030647443828569950251680076962846054748633646619154959860168966103840888205938322859721163346844717785075886608588096930405256649499203752224643315274650305649727259232305701804609851363361525203766955867660285647784280152021816679112827696313364947593298452512053484827007715043853060189780821814061154315629639204164928453409660783025646642392193481905218917149119319052938575891910222179399100047479584231577416658151773539248489454610212504200540007485840051995030009691532522270127581896007497157835328359896755833725257143680586439621892611862257024339439825530818875533233156598804684189583348139946648362478462348443118320958024479038978625889082793267052689805861437116359966323014140565669128401023730223884854659563584443476961626918294573766509797063183217519269725326348438561085633466117994369241777031679113728702367840337428889022053897188031645939034004379429959974660313759860988898845963422709283206451427801696604042193087814500730940617141790467660302942651804562746642683437766602152084523265510339356995522396298039266047127836450425435574333368319718644322972087184981948933725131878393133838671270455079223491384787783763874892799787785821210663617572008528675218864669755237557902513659309808063884689149867297450664088077194779302957547012554145153373100782548166029813027598929137765691041440129500366233137573859899431593086817316872288716208669098153451123119783421375307673865628792122726499365763898927100075918499291300201897348749982726283761425753446798180961159726087549505576261448513460199688076857642984408418428179069397642653532223767800383878090019274799081187431159176204146911399558906785468503127495703076972340775084753240576458152199667623847661621583087755279330778380438380297324960092679175917490546231562950330091567504237388198972598317781562414432559368983572279861714167687265689712904491410949959220101352271873076605052095499859769297881518658003198347154494360562796069041184313097371801068295768174961379813101021987565768742385961253542713055273813441184024670318074999757231207131020126774894690834090447455245420288148132621034490813692677755658053092565519961525109653012687039740918953865828786037752537948505607101116027941023904856562106214561352121143314301754132650433460976168275232483471442341217076503390447579237824138720953297565604283290693939109164642131333199089305282069260007740836137745971469955083235530901258208055742696036792221265469100563767699597089699996916365793125822736876775716267323854795516262498135567060585810486563097704077105127887165302257806069850153221153050990115907945556738778965463641202163171963697504831915744156291264755282923110464507571578548102120919815357839069056619958007216407845433561655215692957922705839118157480333545873874023694310304009669574741191271827125518579534028394031127171638529703644551943004277345940564842013389285716953634772090354491383517946517683700102920975557162512821964043982528474672617960154996246025208164947448829435605595268966239969271940212121020640080355596101955097370675287461318596922695060315666466740726343792781511890937568148024909315903112939399862962346384619576993049758700141881021484501815157760859297676197558843216189279269860818647786682185264251539583212492446771947574322352102627045482727586411625095128325694127581070784631478188139000740500208742119520898523912232524705927191653018420370613347024435649236221539757209803480917696767040909139338265312962111155843406469436119586445722858621844617187715721584705733744358190231673476146958514131435306203863413702734623539721845110368737464692590622403580298393115685749123189852511571439604003455784006929921701698934228720794659741154275230928247347325302738984168138339245197677151029225061607912743021158986806465817838530396198031387648561429189258188336203780407895298120917833437300396733909122884384606163140242943908555291100055038778347973429948625361226579305197367609175855899185308688005287485913124838259934690271812512853594215357247893168972335308098089792665981477376857453459980370005605857186709147882612894228033073270546563203308843553880923373526790286176294878407083097291986358646232146311830279032911366731009214133597355025750394660759131408774125968324134707977296555339055745437274180333701320783393285947710560633835733859201642104660241056019144072590703989655801037300441491879421301549316744789291276994748938273586380725840749458947550817406124121950659034027345482827153854220369246703850280010833602157539209016512680988176871718622675674057432981238703107726816066631775972309117195903715407453809751939812244903921059667814648140780797170549772023555904512582235302310179440805506784221252126683496596538190891592255081823960771244822643417102014955630077571417308180344473991192300937517520392852439773787126066421756565769597176053119512744821061106117552248020511383362384024036867614271510630263010141890951877351344080251357497028554531522458483830358716052001422715507784801395668280752322022765806442124161080402169597274485008949537784227982027908863485059040876770779926962881951425844875313548520240862778736097957025940361745593361224330429482061426116424763527867153317090105259865414968901362309322504089144592763260767423681089615267791465856433906875469791973031007480676025075346992459843404167615312763885659467064309223605019488637353747692791717172386873236807572988482505530193731829566785199473345142253140820949907790147898388084040189822392380709586117649295571841335112548802999482783289500425280100699029211892778377747290415515449220646686133029423298777912637926215470577932200102423770847172616947654176100113338097048010258806069227022899769022205964317707754828668874642680181891908877215537975903414659218388808300116556701932348888976693939404198796169763115866901830329371745155039010842670294507443548146163712014502448111060812640204485038198876527715196525713917146730963061470808877293882172961436706575728077262713219860332735773237761360545349202425015962946177708019410897540256331175001232221569570583229825200624331489256567476218500916696823345999384993248804456148860264200518624573698979889952244901895211837651151326081430224047028764474071083468073374744360384456815338791996814227483356139293973591482662518804131580822438338057734920528553784767876951739020541138331421527702306923597268647537860580709454582091341210624099797854687124181417357807568314683997910748389543122896058315483978208373548580327249805314122315950532398222824463461515859533544500092004245411868510629359306229980726876835929596893673784462324641012212331085322497289909005864761891388714657036290813349068982686292813716812182708349902077869362354261663614020432665921617601064565070236848449342686480101327640154894939814379166178553489794867846552989872236412285854795554783763501574256573891509678159462047441148959229214545206419646375572671714139730377326083767182460282701754805960911724604783362547151897393882468309647259276644459124712328957858462140435458272966381134226978241073362430326457374135992569341977455651960145363547555713203498191633385645694901130692238491803410571219630260920796792047799673860554425260535039397120512967095310478400868770821395062723596269317595860953854526407170463584666462717292268203860085781103782917170444249586743436830680072501704058768223226312977949184669521277180526520112609623867319852033819553143121195859157046381591578988094952627768113053894424873901323952595543830068753414672524705795894759653741306017018855449053907609152714947151959382254093620948529205286423268033041997430930941901194130894362896767387362812525051569716415688915154162510160045359220491893499062663548203364058044642597613049789513439306715653680297714382460441330178715961362380072895670544076575068501234418105376525671479931189351916717109669348921410131349414474554665929470523275703923162038535609542853868982087165676771915328448248406276749130608982090739258692870995301909317769403933198942840160425360976249785595465064373663491110595435252970671919278316612892470641529916070754423777705017371210677805065419123050286473598349605616510460161117561765210036094933686726003592451062053327971476157325769101314414756991796569375902065263570057902367826039234315574274033291377253074612924428532061481120625736000781496683179590321030973244958524279642342640928944062586098633159830478330979192715721808881098981984583910718422924113352558298647329448519429253764523483069331341060069969090452993212830226061278018125352314400468101142839159502832057126908069072013317350742696331161341127357795940915387146650048818605839504958462508944496034392754002621787140899253817323249815859946453567486451985747182216576767322875724063731331187767190218268662430375069364144471809421608095549039081354851467371277281144935630967939369384999806857311299378668346490517701778305884983303377701633993086286190945709646300225319028180921825210490532578813848375999615668786792845247560017799734567574897810364598738466278584246089301741835003776962262446112576408660653799399486278718809733886887813549375546820567473034913818395448404455046729034954189006423590792674300679758665905759105406221185658727720109366931421410988703460824459363788870688091387644874455073088343826333530813156450892913427118485728033962320187263471251766307726010050414205649622509860500810182409547598938956979224178229105395615991058789900858502435621892863473157327838567757588274603258236121924971950054886627957506897100719207339958918687239906236611744147820739388087456802321252206084220612927963087859422062045325406639279702672216795739464204307249421762305874250901473413205599710994797779580516507302789626882640519866429909292678718201952490296925508862503171539507529510586501749720577532994093167857513598005387182210680570124003717046896164714834958134997490691268271269336938049018096606216454353083219951090845995937406331304219767025043389872252466693835757533142967874345855174093359754589135571949543410435283402902629180232338604726823990990182394212579387326354836483790297620622537829747065628019425653657393279633620446576132805598491632326085193189265706224965649206443393730600514455777549569838922909221487806844350763155827800607904140214146069325199731158752893970090178604437465070733390477920650448350160734864452241369785676753520619087319249309408544635950995765842021248362730072011755868636014319402627757703960409091400107981597894459200594965749049436099182563173483984330082534984743265920784309771946483759298835309181745468109503088324412519472591367878590901862135711774997995323107624884712550885563934248871689194486255031202311730013703374555344808763918232319746155927715506257447795966706686588043879275740452498353203343946737656883541523817927446071469377493719292475989672964058198929924262508171448895701669687359477067720871523032600608222454550100415005961201889532407199600120624688269393726019677891965782613453495960288059836644265429797972949039471222429241267272642678508249494060789726503163825267171622283039503820224980859355128930056291694215967187677264733290480341543791537378858403437353901915116368167218769240154050440505024206145091035644267412420747539342815900250303406966510932502985812389676256779457494737608987829356420841194232801018656099791451889027411822788392786561556116485405706453022779288120232737445945621754578315565254648120542508144927319471560807833139671937316181706005965472496870297903045438671271360171717970697144953188010319784529091727988701086222088721010627185920197860158173543977866520380871395267026760993152868102968726987691890160717462836209297066945803119372821108674418776871574594966719680536107281223577533060037200260469806705393980598854187683480007604268432933566217610941213261405315090657338808902326767565460389055889186468080558457155626937985319715461703207616525228663213449613437469040592039455781095371941207102482471521548720289790077637190678004765025763223045106819205074979419143861884057001691745421058942962774623598571197758817744784334589492328499818447508585156494457497393408179703722571609958388817519657363103326274008576744310564076796111181774941808711220684996676902114546934285926190922547443424411161263064248020081237500126205911472515873659920712425649626352681718574223660286638904382206053489591974443910854578112587314509681801355945942739696882040295599569096626652709058503214850530941593291033596899502199475072263884210749718629690496662008491577810687355757365651036685254520387966040000520743795717483251661521424310427110685410940746043921570955345940781108145801116409801758876776073562681710349099696557321859613311766009539802405649251981739909649422375738071565318017504494739241754273965644211715646256873166845462790276643908589702478022728110460973222943912271579199318397053030694822809127476917362332025882844775399142028972207713968751187813673551773332669982656316212382395467764968475218384555660240112597750579285429261668646412596299931553844918415196208353123134156254411095043303652591361082689352562091907000600922721252126257505848338489064971518324926207378831121294306517466013783601456988089321096151816586544732631800063818885081289574413618343100911987064319440513212032860536555351103236180831054487645881026736900415459406413204516313978886873931732263387399601876345055759274013664380525484108547056578058464440006101010349752034516324676358528157454268118426744081698637865712853911866093084915491471246625467419041774477861202944331119254622805572574521540103143755956154275054008855736800156034903275308872563984445761058073008791770906214190818446627983821417992061186819608425010857172187887238623377924757055957671413478771483079816207962059115742661607188130076326567625839190610260948813018838739145121799914446141955675541308825516254465389083305500025761045975439052177943518047126073160003548809552437622158446548967492362558824662756460427182045327334592218193646269432517866058108352836076984730785569484475984369046418385637302206485205815513366476559822728345336796536978388295314143985202806298145632354496846831040981554853233252772069240621917548771761394267076204552586824172111129572224213575160135803820278313188454357515121577743143653042317937486253105935228368082720301029035030753940482624694492468763990122350804085571562305580066631736930016846390319958049115889512173835814213992247765637412671335337048416207519527542399126829873270496309297603941913843604690351743073836775602917547720446886791327610738833424904847876090147051383711280657191448792514023193050045436687523610098624452063413616395797345360822952458716738183719772657469091516776888314410034859273585831003813654552562648049219639537744799755079523301411824224714559754285896430084228023737021110168506110132489665040095262507396128758240351650418784226837601096733727958370774996811325064255120535452028910541523649921271922083145469996244015932929907854285039670931157673184797398916927815271130846562672540156949973415752886745296455252263825100716695320880947311635187691249586966160501864381081387242132994314001226608169201688797772006927462406082796832105882098269486424261676933459460243493021563139166072938023099386180709125356750246883197329971694610851801060626069404222775190935465485523739100906225477577806290842694052477611913681066692490435377207761740950358755452781181863636267648147625724257270031072471184125401189677704425385149375658459145798360357834820206041094230905095077415959103323462958851316604144606376185575392216025506385347320299101400770184603151627373695947149102707053276758673199048563211744110728068307277307283950407477867305656181221896072705386129517685191248985825043150891758750384724989026365932890049646930703025117764599888861439270388631115534707765831328959720296795679439538631402861717030978444787130825636140124974196016465183119705895597048676858508861810910767372764028786206949374548046035538703911561202642174881413185679960274582151377374777298260821339033065216066476759347904508216996494975642964131289083406820724255432562877078301768690483645789375381142221938648913646113469826004717161313933008976985631542692204486969921602765883610244050822615246162869912089381821150820963244759247881780898443114731560329399366169679646350435036147518522211837376987055892873744942189259504043420630458491774259222878478117338879787743697146710051830452963638085267685730595410018076928082052024450271981143840138122091815662581111883729542692887365726414600854156419223859324338136954008911805282832223116780274549097386895829829350263121641516800452116511276489533189997807622514624637985398125810242736006267656517852801530997968874160033786616257487882916236816291850175353880242524965745573880338599360935041009936839193203047363383675447515131290551208497700001901917965666153130816198486647813147665556728753275453678280017198682580844389169495018465024856058178668281929957565800701985380860404106254682243876159680401289503325561952447667326704895010718988680649627337042715860915173199223788965996763476313748890050073136692813761447573968132500657144614660883149642544044310334630413336360408955002985069549759405071628360000642798739491524652310326769121368838902112985539108982467037210420088143810931953287554913336031720336460613147873732177082905602354439727592307372220571769598653184203693366397383864207024705594025303585853470630876966501074584600354792522128261859329038345167925090771462915178955105656656548561378304876625650789597706320258286974944886899952333530620021724168520726289789056176237624530995119909271673308441851564241398822475258098031228583405833258730253181214369092176383566796805368585124885785532494950854907068067889392455589587506460590862448778996655093366630250719898359812956514919700668329364249776140942588684775789369914018619097757356263452407343955223095105902214195028445038336877675819862696021672890112983913577382711095222100751481511342519346524571612029628755536198989667947749913041895416790619042710491546856041849437564979792963839279797013702340314592178164076735218399439035209710380143022729152343293884987266248466695934509959361146129432321760067432023861045684344471880262661402486339295997556667615947705425013839947108409653155671761587539532046644859763011637752471910734986648380045638191911825950598146372603392293185626044855504122248040302618192402872954594148425775554246227471333757076801996186332823319641259646614842635980978145179399998253227424641374731186266097343264648446115693851697249022136091315605403546257649439174822022557015434651776141144703883161719749392726374857931592306197283711114447021181284895236442745867915301573383796662276864567553310318838932342662856733866856793830440000274214580725299203585242665266958891821560008928865851215419576457869925923725185881125118676569727002824158670748025927672113167486986859470654267289570509602733007810498074536609990565932596040547672589445578399598804325894520855836649588676995287100458531417581928684634904838236771281362763993034037741937573931151792980627711851901095399647230417893812865446851644342028891815278644096429815054595505384943984079588512254531277432561732245444658591363240037201980642146016555458303125061150510590464495134939493699485092424032892731952847200000031103625269325648810507356942690557548471854533645463704300413139055111103353405685768036638675402222181694338312977273291893821925601707725862939176155247481828702423389958691502882877252793987926873938871943335241869218049356561392500620708102092966626093312531673613627152372166490222076798135067410412902248769792928912141347453173011292181229357134141073753183821858788200780596853726199262351315709178492992244678015683149733247331791703098215329100179028053121968250586938996228254359320718115114623001685308030107797052962991319315473744371015143280561283947051829140489749397778458502783623585819842122331095434241659779588414303041844736314308508844875698886018057429397254668642376298269729351960562198670057662658073477717488072012116350282485317839905490639100523132030843768491479201035861837178405599653552739461456556705783379659319573989782895458340217892906958002236853510239470180491024805080064363442063844320675657652748559544832845036920196396964480804493619617522929527475868006697602220277023686680536619744431148781738562464983514839352017993685698822857225399190449174420194807419715893579924085281076240211357058572771019490299846219470214255700923192543878503323830836279013921178679959087904843990611766330087358028276919503291034154374340847145940325798340034775835465006707285919036831801216743367222573467688704154510451479077304579016842109452274556270522354320568412862233956306241908971092096125516368961359459375560273168662857105708955283572925992928790437910676123921985014182154978698338810216042411776200673602202008732660213568267357723529483427906186403023691620960473011630115823416457874829791499448968307450737468092751859926380927344143178239254787667813586518302387993656955098542382311247956105365211417009400397223757120254612207759081932815661567876643000783612492976437707190029437015903304287541906727533139589376461112858610602160052338088664023028947384529570236324669659126315967547643140510019451777307741172271989340306895827851243423321159920976967805630108185457501242674781819223034197027402565266034118437705029745480147679595198958921070249562597454539380675382561894241295332835869596946764845429807090752277176433347639650756913745106120363567341134745783794830429089922102332635600506937268988310884624118495611219348224024633099758202030730990296243299083820403406289584184490949896491757945103649177998925382208927909223263264281805895957528041366734929138965940298480081744920863523320876058366174047936097608592517381111949033732971048702178942480615565723689080650471368443875193732838076878333119024206368540447680186549714740124469440218957664210932963672993160774543077702771570138706784373201163767815724907110176992660965469313107874084597152334559498893106472409372913267558499983228501733069960484587760511552312745975205684516272675080988489435888524537658906724769652795063750040828141035360731862711984142410776070540967791196374704858184875804782475652799855452069817011572943098675740059765408702454024613277771935238170364891422840270766968500463763165947878535877627545018859539550464453584609997091169655586922092007211389527338202039592241310538089951116561820603516255191686377741546022253115927718561165103426690033318993036757640327918288344579811524096093197343725580869940647060242612564569626485646151073535556689983605056680303362525256006965496820368242228899799078735963571265834920898198997765702878092298391479763830244740875513437999658049437031218923353936336758710719399124198183140683884414834529609447474177311591645839818597672951581205347514677385549764711264721801666842374168498082035639629046546537653282525399097962519407813628221767367376764795209409594922214516276217746274207725677156364656545296049481645685727700107254365918646992867444457155997860620469150505957791298514913865636455092133966486744159933535420132555478302416481569615181772375860842922848715643425626644294799605955234089083425634155456960662716673137070887085355910142463093705124219339407123879193567741528898256216858500383735758066974395368909245171993254799542583112434239096096419762418920558066636699796470856023123890879690988213556061830383276805624860083919194914390292889154000548967756528855755775372268781962467313125398753829486608878745768578044348968677679896437281191895926891830497590117180583322156362765600340748206119709469438090955630957968193059867135095189252624165682962798513818091858354150955004851933134981979740800148155758360277966261221821683170416929589340918404442987896645315442635303384134908132526785774546542324987107131455421988645099311688530709258691206248026181306903596527226302051156503937915973275276414217763063806760107016859450508012023686030703051086039817028993586405375513684421561163081872633421914930113469507253513761326940738180939702579003009927134378668543839047926550634456128230391637740324716539975037903541878964861423649131002503413929276109526023620920711337129125812410042571533552386413449140241519367353549824933177686764312190804305198270226188009217116422204293249985611254421657189026517230526392687092576006481198998246359095820260685463135357123482049197317164626880352810555663621695535293948704770766358779280947606994831131967543821018538229756501449141393048366171438803201557804712889022765754495400820506987459085773077864213188666250206899666858693679062277703091707978553909235099616492761405650678520351461636966131180027687384179616942884032630512406238369491954076432707467216587198543439071357116654209519080713887672802934389695600853825243460163520217602061516002312399479023897456475458656103168846315110866999994619119825603574828011608543261609061917180398788055274545813320022926690117084027597651856566987807035333845437255270625817854354636322332575481320502038517964307150082895932129579190062933360355963712179964957987157471472799613388391766372921039290835162655615946799214219281659955686624863283756899351599840217823728312692585317480474518308095233382851773382551466728873356826581074897646911847191013308813085118036112451144091751053797618876151685238364002124176583038956843915903201476915866063428110178278586560317756418709905276801823862720345852703352571674263486372608491101926422589795797937837797126736047891273177633323433135069092512036278844384612648298220641437480393726816774193247107558448833915223130043964251346510264081555106850700786324702852046231781428145172890569273528529141962752586481879891925547359564595226775501826532413071886034998192247086748688965338074846562316210970604901004851923877856050893268184258621581525256005734949246744580425215732268085099626629295614782241819331245062711673749720970086662623767803089228241594766123560801665555805639116220250254844146997551612850935664270869042554897695341673380243289760795973219099562323528529419294186937655000685763553078819720353564636198961890690781508000141478952239578709133549696090550154017001214238011615364086844862531659257590360166392218013245723183701846237062125267608036869510763654387650568130988047932379119419829725633303689297229403818199972753706003075132716621863445708959769653202611260267669498470183731320632842263111118176622370723972052930725869951628879518335652026219686040370371447538939139699132172504957205198528251489228846819710400348039760151061339246283218533632267733330364907372914962886835763616268648799364590101759512727129949276753460143802001982650500259671907942125382028804638840796811896820825098872668866147484449253122604069923411066731831211966088766760065168487075542391688379174458140473889983955046335239962391453938813502976145490295055913619401916726488489246622152486099398155671926336336017342966686031713672469335919029057778082168833311997020139958755029579372122664128296384960358329675211546189550396865989976864350673539447952123020846803283753256701901423949947138759868635383612000976154627763463576612956646438417168024307374879087323345350513669455026508448353247149539512917608552252462229806680040591606351339480385276637712925155688007071707850328310110588161660147953130769932387071674186254116880098126726425370127899320043001514846376017492178199204276612748406493387602648668570696560175688193100173179027263725690009709882879494531773873372449039581744904112944498613916216447361054858969672837916403452320581736393698565745162119963148307656111342061645440348182566672772988836968668830596704309309482379944563523775472277821642314898833876336353900213535148115451628976463696882393377759188552572611419696232565679746305140736190503197246615802167985200155510635842068024576918991385479780500262241740942372897822528144551501790876895564164515222260962801654229624927077935052211154680185304750180464386209187414178701166017876961755637742906052198769534509447874953545715191525199915254274456284879268203057711623838298278569801172194813665362747664860044254807890237035245256681041123936370591555034685649046370301727878323785250983806217779625450446733933439725747467876075016537812043399433685704488760954000760371438070329106318827369131545474013986447862055917769847266898379486625026539944737770237405846645111327118905948584239370009048818528021000644835649155490086080216787757598195820589372490180001658871251093751329964446251738001084725385677550882004948346477501658091546882137368436272715156328963906051043439669995962566768642776612214037336749348004389135976016137046167428636241028373629715831577712486662307288561431394415188394966185356026730114931461234892679485549584494027812681593175409443066316376017797090399794519539628618970742519592165043666438979889463618647177703116850359435663022812114880408989964989544144166641338173102128829419478545016379545847055176005559013242864847044127850318540786174031841928416704164985454188505540746984905938609822396030924524724677147481007722116588726913229724484633208487749922940189069386311893966203463279698876331369992840073998997007593669248953649211079727837399986583608431034184065609730170198222399717346864577216340449309126810150867705132528943830132539678741121922171105018787811919273209612864752277330378140427624581437347756413687836051214923871349602417839422404922671227738902345848683522236573936874225978497702487107303269550212022139075747452997780114963554106093754847440727876733592225567682301044693456014664628046286220719803549773855106434858269307631770907603118654227053395241012227778062502708129226393841701145450409140187185898566338714970550129717352990729729582644783178213503008529753299185413209908003221087760372986911516263102359411235202263707246622446505067431430146645096166101814104561671721424377707701990192439958747823775252473200938762572597256372587664662615967889885594931652844692195521801321525244972015966137311528498707314093885822438894877434644094599862745225406841238395861657417255992051792323650808430658185782298491475349899284533739766426911230157708395023991049161947527629257734746327668269382917681444889895373584639402956577331308171202798334462696050181456260142217099452253464021151481791253360160943810897515510345498527449070997285599394318142427989848921133906065236005486259890378046042280983439380072262554891227857383128906451278446015981319702362456858299412998358202673769175578112101407237932927442334126600039967306954215356487520125857348427278500639691525750756508800023080202378768019273018898936869318582512625835124011779258182808933707790950522475618592657997837586784459031570066501817388945652773196500125275032435829904757298534725270469884062011298566097367714121674037877267375478083215588140421579884095864952669370387897183405776159805867883552264089653649674316788095270437235845701550655704174746997764812429903077879454792560787460515715441502172287622573050904298636828414281863054134591749722662420812870979674723414207917212541272732014451174924207035445289616345756778929726533185104405292675484847937783399372795107058542828237548475233382946351146116154691123413247069377605242279579947176172223594754870047929676297707413926847460138919915839774778849576700943898190156409337998501289719099460937098191014049560019229056633733510698025984082827733418727747056048226905398852455615021373035127867275922134061197962935495140023567329554809839629905989171128532774871043540631398427830629066380253968737209070133329278389571234235109974083064340997456101694781074113770773130218196760981922535231995223561982858041819415908106800212242007156357559849897962662328532111413954324831705038352189164157878147095271127021554844920621999819866576908309741224447798339526652709435541644914236696751408351080033871762595635353127200671408988376977150201800213047495395661995388027528278995817564301561087269902694115621046641108106010558542013020314494124149133845302218913820808553618833514412079721951993879343372307025093035308586431102593744622465372797342530582660234332216158192321379647440213380321230626060519293238859611987837279130731833184468760929858040559134128027654820712813957996749606564216347571061926235173953616425768073826705391924766644454747238055266438977272184558932757415885613920445734877114788646449154198798715746651368029335708822314208407982556830215317676880815574616213691943188199376321592360236632223751692257053199512283002837788776228372915855397090719139712256848121233666747695853934530239219985510098554219893933232354074812759875935058683184192725759014894998906269569827366819221443673269411191800585692898775625139596464482115857308258082417084872249220906621935794472080110912389249558635842650917637422748188519143271800214677155777433591256131573128782862810535055940176765414837374040843292633003971844059383204303373216914777042350399015861802936896630227496667363589171768573258979700328275507224619635506990947198556815599514268228116515285015623543671536561149877051608780122151066111645640765078698420591487208559938731398903758967769506981295781015703167009018897306417525463453016947203555824077715779605361267639461136642445558879645342209771707998264093600718236216313765643768973362087133556334875754874246647782001372498983868786570937544290933387658890534718246223559382682894668458205914279359639441079612143308060590164459849612981339573957840186772844429373399183994043455149075988490903587087602037739944133940808558843856618279284902541430122820675568965015632897053846286672073776232829859792457778730200826966184919719962301610525086000532002640458280632385940703268496320906442841682534296942896234820308884268063074362267641310302328988562251089717300548817919131293345239471579458833035747301475135387843602074238699945909155431402168554710520072339977492252730616131572807554681445626134847508369353182051710200467640344300259494342409219989378666186687955489213523502934017469573154280799612980752688971169841157945740815531569752961801971608201335890991608201739271701826325137888465531941464715080093440458955168565472881314102818125631493932562745844421461573667053739043198034990327357687399479209724506160610785266395996167582727798754718295059851648011181796593345467841808664081686548317710324210424802926679363157112661401816542809198740744639037717452484616794567485544170593532836187697542608337952875191961878381095156884321147823434876896510059205881527778723712037982485054036511422387041843482690872487864423923890225788517248756378101159640268689905086906753940015332794702113296347891069281097514945270673042113562921981235853722798551050098517622680996739480049767782906566817022462944442817316687344244098684294845943690700992449708429020239786354360648267696148521606934636377323267126277761981516456886154665582459200468641154294784031382449801261794807958303539233390789885542645424809773839597474692101621315361509741520451768860167164722665367242806910444378825228761918988845227527700982584618391931990761046491302325390651576142969654660375335974517972650199012339256122377373584773194391066688618355103146262684179451139461377089442498169960897403191031025876797987350879740133437891009087130916884353872838880839819316688430481052940277610528700388312171899604024847803537806158659674889415280160545324895725941034071114926650341342401871392241231331885286606148444123370171614890282511307616900229236350656642400813416569241394970961821799183109926061392091413200683413351269042777684457161497545285623818069924097039800257410061917058767630817166002510181960401669639104022502689760802517781228971494285127158396232452167574259098137698531090791969269206711388908259589031370948613295435428864974225020636260431188216116410947157525376256295823367598704193453946291859584621305018470115750735329018682895616346682284371851832947519990087254926486736025552340078193760618463945841508791249451611279832606893912991198458216308117088742085051641628560673177431637743009620268681491733322781811933755707258377558010283306858264617701319500640052767223728747316008075853691305778346104743024809923174683657548171456237514592399883350272322881285976069741131782783088717063486357823087142369006829083660294083374773359240965667125419603772183365721206281143336392976530807871827147476687354825884582938983635791103272017079266466153872354860648987822558447989263522377365449972032053242966097943783568031724403321418682044853541071832483876716055745378604992868153928149917433383236110450547968895187767688016577888237946600442056588796438560381943497995360974093218123870923374742643210241340122127991900773871398020756471946303443422452171709078685737958268666900471878912785428620280196466919322176909978828639447346695487735609965960053565021431406828136700327691982365156416908879072189072946410453454574529771413715395507531074541524338395600669196766438791875540366994837530390521419956785123207799824787532660576290065418517762689315463286027754678992562262124649458074834753406363212975572466112402712004766182160325074569893679440483121818496326889906803219334571884060447867889438383894698464721630264710544540308454031045228955509563420686314333189378149910646909205119238446190160633145784410025144435158998217874491141862397975826787725053092409363598833092232296020226728580452316441353792589120070842312755505810070375920344411764670318980284665939785708859133170945921138001252914177326051044440208151729525134333003918982947758509105854768663620392174712908524664860845838215062910580384921391461001482201421191466844361525441144486715504729318180481849521586924197107674268948296840638155026782146256993429332734204552427859906779889404306423515994492138830022713562168043952086278795368448276399017311693068643428241197860569238051267588823691493380346689449360912985523478381549835653767246939109449983177164314295855051599407291811812240882865304004706130922419340902550462765231118542215674737127062504584377435771586523854895487590986631747237826852477134767683380538645597037600048255218266519883419614325324653332720090311473443427252119845451773412353415207328033009859243986026382024479173745831622615168869427266525014635746524250912461319921818850750783917976749632009790821880247753569129018910602030887081550254827969515873473634698760708302783521982691496788613057735762546311085434810664561305305311339758529168078724933154724023562937422161582024945278335723865890134127434999389453039849549724320069105952337268482995344340471021931634557101201987250280289543096358313900977918558437463676953257739785090547258815891956551253247263663098845714332683503413680893080564430026410803899680238869100511744902680253821274460248526542244483986865009232192522043402600106133304994973295190228866743176682698428168836534411410861074511238568177762892354534317421657361111649424665650002426449545475603986868199754891906864153596346050791702301122783163067258904895487612589142643787326571513316165419743434686848090819047659271270114745313940960367921799879968312450488329666188133279635390362401220960302689589632770678383706466085859164756183000358215733991955118365297269106600619006341382000816472844891900327701024350151572732518330581992752285118361672607593659925232303924757588954092644249018699214854154297035596657353671554579340471877211303017530425034761082530089119956658811169327309618391655552713125087195309043952870437662407989217850484482994894151726859082712235996491656318653750726782413837737491374523684783668422695924063215455739198778194013083869337327141376367742675829724389135792894233974496643328634858621263070179146610834891812561330581957725590042199899437229013909329610689024193981577500184733456303389668503883362553030486670124062998231036697276851329163398332390224898483887079907020787673370334102498241069453547271091062636981991286839980089906399783134883238376835904493593616213633323833290915764328683141396963793642725434977957434444326340358815318928963797340721774984331045928426213559581233147702255645378396787399054428226601003802286662414385475764469398194896709410770501450969635948258787750355796320058413315289963644054669703660375127215139905265499791593774208792636095124514178028379289939273333178821140773723395468239197194205724162666095270427453861519412871241946692990061699385884805942796290223875016363704416210853644074346631848973080928220367861320346933389129888724508765243664705896916479717924425169157366122050195379610309441955784786403407349889485089127746535094147005406027649189275160553917853724807482840929811213324238592765961352544541232468197163467124344589255650637100827824353541984152933427161065322027105445878034883150836805058543783997125495305978544948362580203030401250473483333816129699375726535031312368969514632023799125479280284628286804233743035942472008480843958107629189889105837531741633750701002704866493833313497945739334352690487780502575195628677279895249977859433747120479704866000615959471138884831702221740325704360174156043035888587655916061383809027346715080084487573170811054561852746618666265241600231236133434963067188289986339799285920885873992965274914047404253968877503459984021663167282732769088746032891117352076320261442971626137831609946938704679896766541286672488515625552590748180515189314482575541706335011960016151649789488559523677649438164086920694995972899919748992138995987508709033887745027578084181916107768802166588556848496999462158344464377991472164827407485769184523618244855040095484665254096607326556619369918103085164808405687178809590799506880437275503037812720054909679808691503654285244437639406327708424857545129598556281114464777612539714078279862075562182609664932161506404108326458654069131670969671079265245034692651055560228105471876316936514965736285954069171284734940408484923795994772716456378553346995811274396673037566861385248393725356002388790980437181906083974819285786920154061079359458643002231863671286941274820438624680460517931609612126686896006920192449481426070201211211580119100950160237179078934825718032517552760813351982890624736567565125103738296184214962968092115409586911478024143665008749712336778326566718353071396667945846077680399332256359648914660471708382846963961494808255797552458374269200323795838667338563485287232479552300731308843021851273013936156067898764479653563405768833003578821263975025679856967653554189937205537805490010237931897895719069269374054872175397734310016691401923158301455588283634643641052768065148517883908247831334506718891961853553874893839634646278241999908788940024051285692021136967582067595308944956400182327114982031004213998410228126396444233358833658586695225357966926108891224504600340767302319213941251728644174450024864159433478351084594147215010718777784962939225985151442113552035196994587962954234762594068295804381195050132397766188861573284819266414031462340504877583528140033231350318637083412993031931254637338735208035674048822943147597227800374141693701613518274294903319408991382797110842924222158667033172692669438661356965686964678478554435291978739641382848436283378868847830324571803002497396041356665384491226083806664984007688841602789543536088008277961831984904037862031626487460745117095534144468279890195708046530592614710773712221326428981502200713018942991228123137980467538229822946231306143578999765072366200458031966898377611778646665316918502749259472209953960913241149856542517517078525845909364733638332936040961914963852159507311009070429724094784926842700823081836317325356120550914042448851990810050949697421364447015506210871162784835173063103755470599240594635403770873052100827936211315098862137472639943710782522618992374766750043275785009652960938578730096767944592990741968391788611160452345557749547392348793569005026032266885040393441519726428791423231406334812362014068140479618336174526106847571935589745650846221775027598868408445918006987571146780250357762103231882731209538544246568196046239641070331526908227566864432805621274825219216470547857093651970874963409701269535225968846322009802545471559139231147839352840773192830592617409291982762659038687362259967653429657534174495939878252843132659780805113144392694998419354174241767871226558367865061642121662080253894892011997019684601981535002698401823720222193938296426448780717173226928778327092269817020181534304621820141052158713405856743593453029043789793877353018274641461234096992270052150723866042940070268912064248863543922650345670500825077252234870373727047902443960760029693588628652110740816789060118750887036477809153106203913550074149430077035188510958492865369734340411096112207610224011696862190506048046682053122468853439489725082730460300154780982142163780250805094202835392766060429551782534702628693780708226444438618584354856285971097389341870814389431435011587929475081654894744608546299874907684485118807513315407140682594459119850574375008879702727389074567940756286478792961639537057880985122641878541111258714411477692664158805110766027092133600451493943154088298057621210950770189473602907561260669412984944522139506438675383811210879031128137552853870542893830706279005901391323289671673025160201906338648741631113186537177034678351561714161095438189495691461940424082941776911741643789040427519364724630213274489817250389681701835709848606008794803672832978061143598799774416803724485744526015860651833982704239067901655411068477699324026555148987347866307381166884584787790451285314674848945645463613903987769689171243773539069256223509093654277484000982413144611875294106698370712145367109098393735420909451210928004765669300358684487500033881362790539396804002132124564425283752441524990774941716785662606895501592375405987825291981311019069756274730354660763769588454381747006571919591175568737617591028263592892983000569780082915605918186048126956286152864908809743200135661694070426568689195586158271211475930483734017820396198882313154718585937735530394203258459913310883106890780067081271106052382801836792324965936022274230787391624667004768279828737514925523525597580327011442797427808906095168897286351475301881639667079051743730544950262147017491721821673729986397679060424262876832532421916249528004247105848461327887039260094927482065661814770321019283674357204732150955803641933134721422929671576074098099799087034796214996317307449993194489168094287581741215495642761909723186211331775465102174172765039607637409205041544215419345639679119731088892981552909774355385117814312212968962076126520101195640935622552156928615152145786807927941709601986268347021410204258637720191421004003825687183019750991605140647784957809285329883245705667393999995295359661114944469698746258219424332048782238403538673227523247200828632194140997719156775165832981268301190280431261061940948490480634533797705950422018082529739937577364116546570887638329799877811891010011444012719932189177315886915769512245420396721529177144689122924397854751202491072751054330182840428268352772007895317601434070900457797902440959699889636475410483973217769390299923779852922633806153982375275737706596645411834592863076788347523044602341014273749213753443523449774959354449543355243406400586662282384597197190525598213100617523025403834745408070047554685813643236699303190552695066072035128311285160795968505615845217057664974114173350089138430273889025383288863548351738197821573381860268872399848796977800652827423680775789508048296833056471016195649754843376452394489485571463336960236164127550404202061760785951406743540147082190147524712987217910112360173314180288130154765231429319404104695982180132054098211022643260451984889062130366733871552003350504886947393381861268147801066836005582890015936267187091495377926147985415551669889611257212504323216512301466528071255210610999250541062687492786602112594075357871526396321929165096272848190759574288143322629950102588797368297838942865404332919075261796156149280537606535175859397282104046242769274795829710972412881176661617808311360932835402086081927708960722046587138084269253541930213423083967143745731029471720846661984097812809889728211729020377055234205894521546375966470394829165298089614734531493413071797979911136878198804805452115757807382893726323554030017919017781233994740595279881621417426477224250849457469484022423909226609837536471484739339851865597195889101812690412310702205166333584840419967949574903158010179567985034654001498321706433500069386190110276152194957497477764419543845852415746927294150259437215896355914725610549301155516701444916606910536473957412643481763616207056692415753080036304618182986766294342218596229270730350687450566532549306295545321680484722051246923820147359816524746042737258122759377006681673877136930761594119030777310705664077422501434610656263181518199639754621906868475374695359755616760893004573134316025996272235713732789213118967872685476805494904033994123912977673610501605871377354169523969456378857652734288692231585094282141075232345625866791484196864980610964300120605293853011506205048155327798824518820791351551554344838276252624433315852809866071396544167090128727589722010870107367142420440980435044872070535638239707124147065085812966506272247518675940811577731798137161642065799040143690771669803168475114188582135362234397715550378037417337134955925944233042287021019833507388948529936709908011438871303410481201908626631831370179715855325194837943162841981927812167016157190586421783477982763647904248182485885555194117001784967378947488664709024467085393394577157686188143046306288914341181006459090920669258403953669668953114159994800668903375256591764247531219623638206333536994971300998427773202514406862784780115569857991265106980780307917459440716893932539334914683048290016489561836969364939328951006584598071450093491688212833191117086825240213005446644362221487898492160732074902926992154051276297556933753933422441925639773651461971495198963011043927922497964145119652392322430990544178042080357496287691555071219538933322027286198754453712457052570073033033560167842655581226117048165443622668431132102541597041845891414438177656579092669503856475856169015993118177477279058218093174399134405633688277977640416350809042457413859457416932895797408771065990583105538267768968308732981243588244683207718337299584290829660433973834827634925422544350407993266180290100873086926414805097197429395337560332793659426216230481931426551081012293779285291612285875449769718443137734163280545350219711788034669454892684649576764549002413045346885396862649756643366930231111667393876576986158704678820777846835803252617411892551334004142177993081146441170688007664481419335218095832155800761103453456157779518200115617508900916174668921326341644013913110180780557623815158527299827033167435478584916557000378472707045244557397135670772051554621570898936468860728343256164815289252666000282986382813506567717596290233360361373527975379073003803806710059335654110092348272689263666442091186471481324032878571288026479855321294811534124081630076166557833417831191824528669199407807700168043963366636089972952840932666180144861408325535005635321159527779892378435948249008111591464408174951220677068155722452871973364716798848758786890163501066637407414500655288504418995955022955415228678890079135942166816366952407463795293572062203391254672972226255772010022640434485941478734174304847093019089042615267017548338358402555347022491092683764765245041047120110419474271807094781478315389018453846540646729659812575431020038270692830617767185485593836589389864108307803019418637845526892810732413672280740798486716237049643780646232895110850058649395518604280105309280988739796670571841209266521094750477736885810005811282965072606628546623530142808404599155179267483376277390506640744475732190314531405284595115392394312965722820921167226775391400991845416379627456397674661708438237799292239329297582655171307180202520824239538649459008687670713673549618837997596536018898721438634224027775784537857886533781399991425139213941707128561787919878237093034655948698257219936228418905015559687811116452325758991397189783696950660559128955683388049516951304118847872438999212465676150407598686623558618236402323687673991659847628640007834022935475492274637860313739266957939126471792878021806694188540688463579586425768448115798168189903592583005400502556411498368085052808736733040786920071581316576486727554265209155314655762711147105150991451316443186300617828307879388948232867892109550504779000544327280961236282676601985794678684864427122659265414832603952001614112302763636312911346878705604622997882980803926145231066487046210798134681516252557051058903699797623260549068526491174683227725750195751115372020478091312137328893685068133610602314621475430185641318003175476488836816718136189325026215697082675183008603860428789116077839923774124968131820750699007663266253930674449261336048000846832746037886763051730461805424611379874804449235067019603845025248205597217084608303809164398177764911220303595589483843271650507518110075315127182736783023930684029921397113493069723406324298450509529738101432373957544825689850795251270058551907764126803377523567630876610062134258377647167527603569561508922276833896044917104108171422266501082815254223910800839508373050545876918111587796214623191386642737845036519187636632802666013419025205414796201623591612578290570595087290989148423936528135013812435155748732112017558439296709823966162586689291234956850049939873473896205954058924681583953754606312711290869259663479140004521123971666047195221935429342650727312652755515671504383090053710203367243034460764880246895064442587165133727285986410530870766786690940120355138522899434818425450771933049951270831998861168020547759546588524467395669993530982159638898331281232118052804143419431820918690414077101714301194208174824859726505179400580380266203279086990264843098672764334202309991886553244413740596647383310565485492994843366927933805161264571896935075248042031669673112715985493862924606731641846602113316505255652125794173031747219122663938212568377982004171886287473288170928021037419595593925774781914389795205706100635089449312115398059603719445378505273177661786890313384140254416523061085570979751749737902604499631843679855894811051120548349910406652015753258801183955804506465334283827391792868014655740394674758016218753258153550341014498205993714093317454508407587055548390912682936198782792591218155511607947098832436135456554896527103382457097803768483228318237236390496821078399631541946535063278584281855091406570058064803540682053137672005526544254424185150133351410134407124311001669297760720898228383868312284595009778991362600330452013261723700472969009283014108367272111254319164072647894202503656025427652324545935146404302716783652859700227550114680110149693691362057337558617315210072002323516366806306065388045580413998563223988301361210284507521382393519729613327467122048953600561060305782612684598915139903008397893618915133196266148306527178629967430638695722031123359231288703461104876870834150133039697089466763073583967561224093919855825285364863790799919111316606016206562922727244860746211326281584003817797732340543109153538820779553517736571237469852388703378659234614855167652463579215538091919559537934182033193069004996609053479567802968376140292799908091084453346467316280669375081939199735837899500808124517785075338246069022132961327820497766444240771035244272274146448542508148029618461451647289048229450296862939636164133808855492597856917024109569229355206178160112210796356564606298646520051992724733823756618036946604655448373739638284985382622862595031076435933041636007470948452511440915756817459031800848216767356214616551077964968141209690478432166082411279573942815707039886702704058711089263487358656376210158606273934435397228109469688286146084839285383177671612880020944981887272201611490951029429111038663331738123491004015308674977378142157554139786448500285062485836597136067580739906235841018579645615750610429720291697498830745798706599614898310627188716727302311841355416293423586082222427775471919731917873167976081480742235208667276860089336843780593877222597208264971283626619714085593321590874591801478234391563917610333959254986269731852480918387287696319596207995843242308245895132550725560769539979875306149257651812303348095778978023658480796216863589289798724366849253879281687436349591586736774361776680270058020211297892264996272011718951562875005046842368232582739179855983316141833151268900447464772322124946398287610289246493496587817121673467292368129962033993521654776186846852321220287150389697325997538603361467309856116258867422883630338838300592050227100272430475193309003851384793144280117903757096190290177338606875047264250423187386248645190459995472860621326694186251679845230188452930312130435207671156175915259584057351696852424111938721070413681402326121807779364908871536413757185596889178639807196996100490313925313860795909846770427935143397930078782129687559892426601595822655902286211749576786379744651122464258013360929103308830530792160568844820796042555532963241326349472437344267683770560477644269867649600415026356151633689860019100737056738265255954004454058722190089087779837207536503425422269326865566272697152058226033889369024897235273254011250957637273722727046325215135501771995922991452880790291644346317424971450847472254863772337919636796281116216708155061340423738241047810940081255066904892366897124354154277112630281596402738521996838212005940795862577719546828317911832884423173221246649863111773625963917908545372708942830084746967752293684744599166648845338062328030304648202025101734047515306996998879188395588430699975730871142114166488368697211390024669996822528190494661808339326380127252783905974912300558947864538405983485395421019755899407982955617096059086408989723375754896439448498436963211041513815214012330280139688148648030755081192329025913208759883542601939784527177021495693072175659171933341150533097425907285630442473403612027484966049535560350263955323285081852585801890650661989921496488753900836203801476385662924201719664393912205081170063834633734042429323423205541356539859041631400948705249307366729736324173971428205706940526098027765825884633861879431721609315749719624860892867412729618854547120400490945563015463861891445404380910456415997518308679727011588815626141499903249081094908642694709748970915126921419115958279533523332561868584679179357216490735844011124092983346901514059666920704463344169575890500540963365231260440742595938849908966832784388700080393517262847041790875116121975191260038410035817089593539591746593881021990696665178672093709807617724495731875008948957302993713324415851944871846527580992635230364071859202668773917949318460336634305995784696477804925271031696392042950974825640133454399169932192268929599969206078980994714218101784761105729516624961055989563494308254469862380105627949616438766183670603960137144173683432199445493043359200123591573561492240209438750651116124366153381758329270139311325881235066987900536058646955888634998589179982439352373952772308827293227651014034814428348732443358597909618015913156417510668018656948810900116273344384264140258667512068262235343804753936456459388687590919410792420703173255021522615047487943969711563438085918143550589125038211832288573490596824597871639387362849939448404322657991815344396152965505561675418387459464072658831114199914485132187576398332876917105654602639088639467921847612860317702237824346034803342349036775537569189867286157223363041130067936617370065908361851013905740927940274703633669230956982572999819107661582767687316607343308384190726868164754691965960351977425332908147706091526460132065449513350769293671945063928530812247715899468736561305388127132265687091784073616626765001132680156657891919886449284162985627415477880891146702303779190053911796901208672327011270142479436972198862342258520809218845434206923837229174083978701355487782882751821585833902715160813136998225626796557794158213658023774179220605513938958073878164456482953798239745710634814011247612563988493474885267859178208189707283376269791077578125702369080178895024338464887425406521362088807855988909426428156470295426840443084438326544722044066820794951880593173575652300391152457984715894809758812305279826412100100004338205512530643890559275012505321214012007067689173721297148748162677222301835927125810025363138170584358936015091255789659800057204422588261433804686827467259811748559233773147300774535115725072634401773853090321031826803389313684453437321317552028904596303418691969594976052310654298262128860617135028228255578451939678210012580452981308845657130510032500653394872962784189098151589557387882974606557078173656946724919760386812337371944091110612145799378042891838757909299873715909381904053822323089179994247716207679966193417905984769457528471078366840786425494593082691475384481900183801022509441282871054468202996887553188976097448808558179289701326340908740340917980695430555067943426764669885115330124337331713202287607863287487872444882578223053088661290975143348105495153035393143590587462806125855954957237475344041608848634044659542283950259425547464757089116514680331721443633327523852689077598836563085909424779557069302646591677621956457257223557231607331930093538353207835388974679876581222618305299464635209639640453273603676550957258075911015440830462365267217177561690012510789556368106051743335297582942282856213279484637690940674670260843863066325749967162625454219520067582622126489958243126187983795649287356280211668608587133879368102551020369160831400926504184023991745575553114755640086320504417073833995096104990275447852963802906851610323028791950734602515071398174827692779676733251892238423003699913831132913690252345925059248949559612514546633501027188592293434321510319429911004920275744117703070923128029610931665586991276399394939582488384723147972822468061293692344301435293825872983822957276707954340178017403262970482977050833781810960273098853587105103382346157012857967352770019464729569419057222552147081263222024890321437093886853978361814826115128913588122542752430140592363149102257614050263777884550531355306853841738691557332666177723663252797752246758971401180115598867650772744046313728744012017916982232333235638520747930047343449734953508802190600355705994729302867408930488963138415205485536399287426514344930396499790153403494314587759844222968209644494244171083358997918050571747679445255870818042538633626288113278676117517189929372339156180616550113859287411158469012626621024220329929033450949814892485353059934283308570521038040534536317837214901198871685210650684497711149736063405150943775186777704809171936072229036003011257461127465675785939194774418550682594917088619104272882053053744362267273883004373610343994713839822769399518205663238046226902062440636101660411980206137177982804334449497477653467553570165909660294681488240318513050741674950016036531502171499632589412550145739376968327440527004170549712429229056069780865753090527260735313874658226455825762233638945417127602314634520458671364746198864288645907811865246926621206505135533935852098716338224506424370009165099846614027066308014196851729256944249528742046339838299135823034441337084558087958108684384983112450891336393078972122221683464028530148742138646786590683066028242395884255936917963179260693624227989785480658215375113851756271300985139589778962101942526322333194083642437114632028232056676257089987706286501807633281568239654753352423133281386384184647365901205979396519705666556196738079075316793878722830131482118213742217682805917050879837162357834997958105826625564130977091009196733520543626261445696324318950817267665363096341581711328186430515745976703693390841020265406442959345029976798511914662839449834465582343773155579900771395172239408089162747782176051427186921920579404946458596938032576961393340492546872775316286771959371263105897458642735762243796895213048761121559694945527028212959439934586961538314208839217470093779798430662095826068730294486909571576785867081432521836207770428135896605166252995843362839171184357962591596285704548496266424789807137603656634964095544322060109643360366255234414599199313112210999264926341586516629511519979344879099017788889298984354684050702898089170803828229720174303276913423760569026011903027547489960165897200067539114794319770723103591287743551221897423397579252793608988894693886977403040793645787015500327785424760415843916886760507670838981302084387946969353146659402053878246230476634934228020092015455483679519410381171428317368037346591521910137824903021572450251157662314217810485229698232722656292599924265972792432563760642720194932318886359466680877228059007189080369414132954460235639966180266600689920058921923178147144514639287167778571459985791271805284442530014363992470477575444557452348742383945168292680650296077000546045786411378700837025003909463046606410355317642170233615299851995039649594487118288326087796348540006797147426138380717955160822176698425018380346234605209461935535743245754219748976747352442435431125002357965881070837462359689954741818909429017418059324637387351543811737262773231372849976878378617770078813087215713387403136145098173552179090056089795990860468831144356936509131447378434246069193833044591464441277091197701599080101438904162377164587667237171646386564467989096441880504658865549992062855115333775363099236101491071172687174985112430181918020990424563874736945881048325777633869465711515675888748644869731937099737615440606233650448445765079105895792365554618516778806329142862034404795453795896105358824962745012388355888302628468849171442557858889867736963966166658971058696943540286288939807146613772133508442924241162438642806404997601256952194527619254996155263985110577733381996641423862956643558892657159663239806364666779364003831882589075458983614037145806808135210583667913908171778528973554355736370393344829668472095304471525792046282502954047589701511630106133776405188113556479845329523384847297592677652080705646326352774218793867729407037172982536959059419181923495896221113540522311147607818192543890456600492286734559397950075644737788363223075154310007261694712420340680272889953650020586263841698148169476568445460383044571434190210564632111883435382439550493089139689590145633013590253732593234769073770480437680995692327475324917873882090820128796568395999171438744176775272890653544847694897441364251510398846528398186269955337414243715577421029824994905364798670022403807111811009896095560533561853371746148338925579694490090796220829166777263034366417390934361901366114468205803530148282914976449779013558795608302262418550254418210086578798046499476792835827448179250206202172957199670230548922955541496667572396776954187556632741282315298694123996670914206934126620394694362661345320142460438586563965174544636136367474741353686499393477190371547878988534884710597467153334150839247531474358997127987768040652503274155040884688368521316625881607883549204555192569576810454425657943628748279449731052423406751445677478098258300126798288832652933985001555986246854146653949248826356672923954446837140986911865879361416142351047447556676732405070537458511119579482216447224239771908383515531372056574193222066002003044416929519779879882378865502216963365763394512975267392762671880565955694471939276902138140138797279928387350864519942356804023074329838131180139125479497515770200320480158375274705325085063440980618208119982642485210409856676601753976667269276046974858571766902274297808516382900847111056332695191365479525908269039498077417591486841309030590163780267487238351625436910104876173388972771808973108635101982953020817217276107934675512412639404369662394753884777430839518228575579978577906110455247925917055460951040623499924360011886226974168102097864976520129806400043179296158522429528157525487935330984289746307029799016538055232938469144430898230315637996284694257110391886153097838878689696042586072332877898635777512543565664381306958339801781190256175772780081557181151518954904170611929248157371217172215349825144039930375663553280026395391119884480364664798312888067627936920565484005613823278597065925284916801206079382598593188866257533093810571211454255581277282551480552422662919808957741676098790350071000662788399507394572993454331814571349761694904667582798131123553697255645395347480455943803273743364082094088187643004879847757732594548372539312533366311685179050833254077237998207938151326090454813583314705444522480691812572337430718537293919488037312771753724762684691713668720676699335647462255329556053283995068730608868687391575848471289238092509582086128925151788121183947271547726265325839680343963034574218187194090291322361327639499106096867602321161191568885317444898430033687583885637322460867280652764546500451681206280869370473437871173722362566791701917408731241637967883024770875916687859020176259136694598836871352971343526359595986853725585491032587865075524086045368449600867255667856378279245549071912981557111154839098910679534391315825328822395536407307799097759847717649516722627389703127452456188190721966159298526458261013303056210738856966302182337139422955191878801224473365626647208326978715993325084311593301595811030950341831156684314835576790690517973631044103329193677599587619028130061468737784817957113763792587664960492748690813155153278378581105316793553319114481970546839793551621911919257227397788009148849508409346558875726308115465579061121293962639375233494518988277308601477171239080866229140231992478348238205407784501257883820674102785348398720288358724860436749525934274476432551565977725258307679074364398228494302689044900371920493288155126962756475977414667001322010551534521862230407795286282314201876503163911545256823514653173118490411858413893712833980995733599005367363011212998394893447439892750683224727321442585140366255309171016669960789680241516686345711353196044035329853036085466864330784634873292257384249011948014427546745664426691323711297307015929997372655101277248876121467521754836670709803563927836846362981123280392429901365907114427369742219840497149226577064654769871865901376669815284098180269648328478409471867452134885680766894661799013391219072836425196256669853214417040928936004106716043048943809597915101306687644840587746209132122248951238712276040128726202595917273729507137672517770623434595820428723856738808470412081352304800174919374109582419786166921731366196060081597683200218495115977587141281774595022479740012556667244255605942811097248323998309230009756118101788955536725912971470441128707397266240077922629567113301535191158516224391568243394764290664253802889937666437816086798664037999164460014621190117801156811425872324140668491174853098419271505811163545794728197953589092868636949947651230013604240619188018894348465097350674661744692862250484385746043601863928763689954497829553915936603923905933938245778677215939591230825437839908360553217700803444734939787177060829786719582372125478429637360382755101074174251225192226822531241937273361470908873981856797888782354786670775479919264369435257676144769899753109515399259801154508611956422464374435385401134528983033827853668614413392524430147400934884000903083311783970220848282709259724496248387151049171737505210069543153418966105118536217327505872713220105830979508857688757150582488582952799647073473494779251134527486826663072441408881281934553457935962183870415691223579299006651180911677678978790080101271260241020348746334623455241804748406563085657718284209965482644502415931864619618105332304658007100030286362580337468951706309892368278573575973092661030740719057227200094213869235204910124923746661448110474414104100389418507575161859716181896820818896109209510598906426205200584386961396931227266113769354324311833817515155125858143050841982831351990420985661414010872226053650433169105634769531479175913786707761089783571081138595696109210283277087733369593258460974049531799525739701340709444408405960356126480323486091321298708470366596504095679760855366937096918708363173242975755567902223618515748688277428439374020159177456534939905470587047861128301345667268508706399763816356745922903259375873418360630415307916678478268028280286525016096687564028877657403670527049434218315871214829007900598474445463982948001033527902152881478376071120625592235745726534535903762272106430222926307679863722436514807873411513495480420672215294271117395296495229224440390679813338165350449824292189894362249317695527562296198017846654575406056934379628214433461136499477016500103536167988471176125500377638903219656443166598906078072980517657558774055133390604319088181934127496844740811527685299765129184184918499756040789381714530725772754387539666486386256042737548171165944373740028859906705702785823065508773688211971301257549008530103376575041739730347289854207985577712340139525750013881929577643215936756891360632911439269459874598562311662403767619378175822014948743208174217958785736664151430844341509909967180963499733416481911262635119656478076249622771588851630838264980839003725662777636031859476802005697964156648802929833471029540687610684778123355450092990425710381537725496862696293481981025585633104708753239242223455012397527418023274495357838434482974955828070782212138499590908608183876196624657054515698588956444853785813305138166921470750072814833912706669363930677460731470885146647909946855128513008962844632006927129075959593513190348273730252095431960772528333622782117443451578559473889411503725771453431362041943015078034878875162578429904401216726855100670958843910648305238549476977331185187247977506495898830022582718034063966743218234083982703751195568958849537670614098318839129591126500495952365532123669755580726008299479882645636466886336427192358119754031517462934557537319992776512835635265762507957182415694622682726807453690343773717966096232862723155901206641909778689953668420557702139775505455715480324311123141201536819376004512602511740441479792487979507287827273874179993813532306849511452831297184417973133787198902929230410815866922099977629339757774590557572848215828819664608846558520212609395784842230895232202397131649624674622009882016633041284877172882218297634008753943532579448102743580926213121524087451845570206893426144836887491994808177781951833175425360814681248668467743222383032073994050722407074105702746220778389185552651338495669996105746641578467460775327916525823512453665427577503860094450873735930142763284431860710080398304971811617738947308897080802725105178581314042319613635374122630583652345731948692773937388289150439520311141373785454387638932591938767581784919584714253551841793483502015443180276380681160046527633490499256631677176709592125983133344838705103309469853553684959223868921857030283342418809910092395082893214413356953140339236035412138198492541155716273376054577942666893769746303526064553914677331181194500822039478940558403070540524563687685046927055511733259040900164384152741709091317687977337894180562498889969247227061631919787991808390640046367317987631638885992579470838107946785862828073011813615644518826904396664796649247540436527373937262111285712019818046749604896210322987146801519246966353969290550220893859832735377068795708769616609893818487179593290686058524099553542523794612524704069997071653815099679657220090492315765759881510269218236190516271197085650151804867195594325940059930632238451448927438440783714254909448117054145333317850437133030011276888362224484446483344460813597588352967546363172698418696227329029620544694838757018718548033124859214979002516104011211752208496817702803403009730180963309040657271698028483603526708604418346418118257068022187476789829669507183149667880751850069228138780728026884899674920687780524481329986470136762149446986171621119217601357847999015665365483981848456350636793549389740210669113091110717028128966043427249884069729522867228133493871753041529954164466950908717608769582004977573148760427458448037552362014359293930353450163120145513399482415672777374606564163069248838846036622181679432958045615882556212679188822890211183174511577008026027181599146456840750417009346033372188529021206428476505190488316691687285305346286640981504011875070132336166856392636209352932835776752310583297162649847937177078946737757958671812925530873507821543462106636597025980977176565893141109394573594407224043058876679287915828734998626176634435543613187841476848350805991402639487603104933425105504614066484106144699280706688886147067253922464599896856404569944753065876112159190005254512223745460391325464586694093464585126451454982871947639139299615293155029537476046348204966516508925372358987956332057072232294647090779004801445446276100069497210044664110398785176882243416214967494332774853642462517691152202488882612310512764300273289556821327099093605021051511855835320744274091787286220164103444117943456326155793060247830188324345821238047550450899843782670824556393211225342682522728884832241796218788819191263985981365785195339458338863579361875850323746742224442550724002688933899326831021947517075469541253814233496868775422075727085740865912248645247138414993631667696164181472072824149537771588304685110586257842332444755689081460202103327627411970235131484737687723719089208439180056830094532650839711577758644368222046288970424801789876885344797536183934202899962848148379833483220567970435431159321148322548862685659986678763072145407354731483107049466727948531699002627302666832395848727390163481724456720764254713087234048914893953729367311136200062799071561115919291099867018946263230999250080228542043212116464950320994429770109659357418955180960684977822901322867018280574916366011129448017791352546178600557721074569032811904440141279994996304438977983407919351454472864026167983364211434795508981689475103651492001987685051581137586863862849345241322632053875223687119835381601560267507416509588217411365900703594840311633927736900466302274688276087766377877516424513830145581675547585232886922475279485897042532486763287925921937034316010594060300982400059281190886420555107259416679865603391082259512640249939348608809344725717602817076789705135363151496623003455575411562654964859748022891136453744247188790153460709023744679153128805566370767307700652392382542938725131191326770972453633340961976442653337520376241608421277424170454155936622410406480346334717835523234243888331259776574746210872697502312525535981222359266247535771277544192717002380951777151557422947227977836972578522013456499196984850780031464265679083952520803193285566933744670225970241229087196103911128143341118181233219314513561305985829173661794337158085087899715650967698352774463966941862366987718981372545819868344806420612875301881661821639845983045612658168095072468337325744820867419700451292184041949878705688150856144063137940490916280088105172090846093749583492848411758948467766603933167192313379049898393043456576993788349634164665875901445211082971076986590331651941505919723898376563692571414080431438734683764155059846201186949475231163520552859778016199452735092085116769258970917147097091378526781774619252795756385215298366857326898016205218674097811822712930860606980983065581531501991470114853484283480434563841299067109869427707626268756839079238053792855873125455036572106272207213734924140937814584228044372503266311323778488884185080395770044049065061107124563717011638068088434970933404693265537239781648396743998776962814209862842849421617170999264634877318755783490131821946334457339153452881065754874574228334887382866400490877995946382028411898644047610190204708501622003228358067581039723472609321054286942619029027822975159687935945912474869819652260045319809712645918006270457177848449630984872296906239665026341126970286398297415595635478415530801319316725061521589688708978947063170601004508637014087048801438075978850261918471746548207873982683740549520475596655015159412414582975161442425175170299215842056438477789734463542065021712148979118229152494985017889102865711909153814263940408132272470766481838313907769101534984129259364736245012707523665613384379868211833713433697458134562917713463067651291483896815056377462302141443318417604176361380773893905902805873149585531993534354712655985586695245790468557254908876457899171645666470146856915934254484123419355914659286285452862679673002011783492333922049975383159120858102283903346519236512177547677158679684149079663748171172220713488757576372077043452383644832855471436530847467719697224234310828050803340530636129487187256735079673837043075892779416513609624148438447919228327474815856865660610101392913959540794194934329499875466409025179624703361488550543104993725779003121920821021158292127043439489429473102817628822536994933880369204351400202774462754448170550048784010500200830273428259261714360202537697050068988745560781176748546118099397897832464919162245728363817633836575036920051738016513301833907528935246349655749264752441604152876239606124045885946304217430216019225172589243437169002344384566199202405924490599686612599397724050475734746775906323334656400931796180950139446709682855632870562987121119864543857428499986822096963705480199618725664479879174864690048374841195813428701717015992891025817396732713173724760867261743032287287417820374069276228279011506068522657332016723158941733883879308112213242773972776284583556711635489102643352500166020266205729425353272948666694739938920791937893033515194221595010008447383199821978620970635202585896476608137862285730233718175163296068436168382073798158763578897632620899778424159774623948704321128552693635308462303617281412251724179951121746152581525148404003384139849250214230230202414737583691400507789444206539907899847879605517740088683269581618846439763884505365020877939182290463894715288722192835997379830370767752624530485187550984305292572177000791366008156606108819057182739056729790735877156492848636691748040657475376766369548143786243182280338467528325802681868668953919783734058140950335257771980845955246551637823832356747212102941783108823706738435634031150344099620615696967525273031660304146064352375229291106452222385645678401889966271302084172369367280722310751312243581229052886313389537746921728067203195574100110626125354627309788210816217617579665986960325870531105601618300333780791254779872250773811951209051017617879229773277636930942220361856526560680512954252238870431371475205161467402398006576365723499853990344286692338950496462751914794911942588973410209015342465907021175222774894502909436356038687006704642432163025324631672231220569512388419065370599779594955019400652757525536550823015426536677831065258726455868002834267728687088909129647131552484368782508264957473274916215078388039132194011780131768484781057311769417716686353177436489431148024515318262575545381114273842733071593963223744342010103226938340966426062252317174785999703845842817381552434066905790482780516459281364279104609545348594411884766391851183033818660342639886282868064404793703109435501786903013475644420660647134086754944713993397758695767494478207288148390136958229013889264009143411352200288361327982479163083879495211256755406604695692904088826705158886245752873067248712062915335221176249513750857088377238020774655375423832993738070285220114310141736342186899544059899581677304185714934161475354056439201553256177121523950067346282710276098162067431217156756751211159370569782798427088186392208395030470187399347207543064650548321932186175135141805060285339531916320882744601262063776663696986391533011101183521118652506190200785822009560863580523602470716800173901316761693208309946128752713657640733210989493921448289225277168596257947574030588233311757127518047366510041832615961731342486341591709741060990576165026169770512958792596847746253452070269781431835741685257016646797878151953808512766085862013608214321681362951865411532114239803207621127277760564944503653107385781161413731469344092777319103932481720236919033221130612466076057254473557624351405552628547491705222055424158681726375975362479179644290085160122609394474820641206548400819394074223283490415020518472961187551841472438643434598413556019967211899587940116408921000538649926769200523969041525324788130849759423603411518483934380819792799579205189278805541193187971540321945043333460411288013927975224818203535809306555084975246521919384950580237780933158481387424423270385569830856362229851298123176363660212902703359803022681849027303092806570847771591061165491140574357376661936980050855240771111191923842137200532395860336889971149437771063083955332237606698675345565194357176651044542972091060638863917035840991329475481331496175185555945493466766049308930422504319191142990323939639668730974642663754869880954766127471717178768674698913356634164424860084927171457646841961665916787550443729163166952852820296693573283692159372320872812521609147693460563712009294420555689599578746626393069847285472931375662679040329066367568556141868268803758764129217391785368186253900489308050552402427683350260132715094560515826851570299505763119948102949527453781646578009317222443929784086895468360181272771124963359471610067345706169035973483530506544247080239224058237221763176804075124216721159337868731792972919611351977530152643273753417954124966423286297757144626358597401511605732612247918491626179397559986156506279868822702074252102836322659760701921865765968625463806983192761247385133294991108393450960628280493561713887145593680707248620756776115427086288161255728235371439710715378185667756375359032306934039933115587040877458042835273978360871510347373504993538039226838410640722507416699671780188117098084406328568294061273399334103990762374513613138551801015320930902437877168283966877143285647004818651308369710493037557531852068183579138076013427517058630835537562621739265885691903596405709423233155848671893697689729292345735351600858220058598239767847004879596082628460195139534268023960356778539787512212245377921179065228474220170193392467684600025280005358981617919978498439426184625927257062016206193190756102748401259824978511575099408165103667013493667871964398831652776960867703928772100944318633808695490364968447094488190877635332474198257541754661347937424349636351552483196503927539806569165216634251431798987189834012865074223025367628626482551394657871740847517800792608242955828970992167053080501690704288111583700154893953085659153185141355392575295572676293069895753022841341673520262379299477307057375339338132514191348435452511101809481076306483077007919609609977433206006702284646746608792166619904646899749216716521037052947561512029075730821525776901649700099360211957058908560002374786460647408266176707851394535134205500415158978898019942230546761939941759216374822718411819217326591762162250461453039355078052585918142390773155426448876221350715231475541852447129454489064752495846375536639645825107613237634245907626190162014238475391088083897176549627532308828009111229472259511142076505414971831422344058449462074002024605197616664262810481062561782734872475779720766351782946037027391527183960846604731296298098012741722495932723151299992731574284720128429736169238555715630804732408903091157360341154786030250424010831513998362375462696922644574343408160104367407940730523224506229245025898624629346098863335326272621683610546905680591282361999562392025923719523920555236082731125537851410846110137735249421968155673104113857864479084680129874538033430614164026329467894329200764454747092948713658705405117637112945781240330970089297429833476694183272444770998966557609398654069646269285601474590127596005793570659464673549206340549955165769659027830812472874920585000699445388280329519834334987753218070021708596075903121524769952685596633922501425546501063283230926467251457446116330941047581985384870978074776467621371218431084273112206073369970767881345248426436117429406354027657683726257349623128446437744852672949853295502483658980107937299953997922314181868969089837933487219847330598172139887330500445897347528447578615327029175535936722346823663653347870488035343985548986189730535864418093531813126237210100933680478120803554703886220015586819555452261727299526296980991828881269773192557697788087349089616622111564933972293772686164037889616588694981450812658280850765015454470117743266649869810065038341237245728436018483449880969779101584192369261228819033325177775926782960896672625170826247857120024693417856674888863041143594409202884843870288960763982795064265320055212169464723712643466372972075973588343760874624267373238202310784101626383833149963701848001696702414391623314382642527781679720010683623974939576770835288372801460926257578511276175397872716811609323031650290325702775193918414851642171862477219892657572249452289301211535892130958858839428307196718145050882376165366408254604498343899780351865597723113256147708461629582654146760416429566404122781954187598100254423071545938256634010173246477097436246059470505848094441960369689125802242705471039791866774240671974711249653304178304743292938508880024194557809727668411676882847996871418148168241680239459975243849280409904103947068499583368104940885396728499146117892307243274868020669024413959630384428995691320565971445409240819595365379535227386889110528473227726489684382709507767867574841190621162640822674305831188232740040700279519212238890470295453050093847834855481646910035990918451425812275264209589438042878943544821351715884838757971481129939106192928585407149332293805566052800810374561619359947891628906768596630043566770915329932398062821672103969228648262766983757265331916975788384483802557399315979656111528659093578240380297326064991454216598865455218301727449234337879743745304539946559894864944888867209117223635369772321340366544564512602101242520361041772354009187543284251591236925459973314419476450631566667729814668473499525548716706666232952544598203753335729107380105297595695486013985159400328348428466377849163927644999210535296693896209025926329271698124181164058506177990910346033408511780029842095500353803235883532087809350960922234622623003787075632492106675944016049917009843568592074566754468868403192056062709256777002004341817657403753753334824576036550286638446109173998798708427413029531198959359790933714016945050122759080314543240277476936116282244985862489185318981611130564399247565654094570887492362200068000757014940597712741127144173847390204328938042300567529981328586394767319017419149576935517289371152167381725856358257980627517155185767679592690456442661049680320768901890085679453057779194688136237114128267739368546558512761053217475446427847153793041176792633305278036725699262884165615365632352240232869925918026479079074798856355615577736615316267606869163027677737350070579844310338193650659448308383245833078584834131645349959594178064428734245814514301121268315096536985178131211708103271622120372107582833894182947765580657473309093690489902691634025486039085850296206636950936584908299488063747746534864652621073405495733421510145066495119641458785609967996727663576333485898725063649420853163296669144399871357334248162205486657120292533343056354699059579867919745615682730691325088691282342557941566356531357526507552384438498795940203908863158326290009963912855088469172514721968159674253082742991205762470405725039131244533107843864658219658481813677921582734076359123599107143260038164251212162119166600774621318343826633992551881116027512588923229459584753500919545989993402995887080136605846343385712878721131712756884935680968023468602815783741902332985833341700618354075237507845810210780781543332443550151259202816746498942603776067473798631835927347924919246333511455086005354625238482910589484109146755327019860670502223310858889651216871259261753156475199072918302120638516887566337889335091707190850860748064074371573076235111124371981362102861375743044017517025185909450281135159851982626715303452604701074088499047598488472558306304892463275956883397015283525942823503598259159249870668025325645088151628287239703873880865797694430087422327784585389730258981474688429808249149268519593339467404041040134036770321595422306236167217484154385958788194222724475390946737809816678991500915363336842150404968037763653414343007699295171943690760016495725180259643255370036823144783320921259252938939197696845420345155906862871011933734142329800898173005571434464304656971871610155938733664864950905816958963617062011455447673661774501938444566321845148511043239357116809912117901671121590241271316354001185577604201222377894074382067021453162780269308579525144992539877572356228442438236568055841018885757069459253189784065645529672031165204620330336276916550292561086040314701676521824928693936529546038573316601479054489903473058730046020694193361762353821147695569730166467225525022008326623765607504155564621010665327613493858009267965241456363867869364254263831019855351941143877376603450611922150680398251192813886440644885069431574842812791248295241462169371255784767107143713069690856959932330923016452419964528119153400544953211361499051676112847354704299751128883102269643775564307626623148495598046231571178146542898210592105574598433729488083600129736545188108741973093741054012835101104493113942653530720303213680884750076669717697091787738475503500250902683354268044709882642647695943277443885447087849019404991563787243127093951741676462878782935843246771925473111336510694025018244602421243160990611591645246148971292774937607721659007193897304987931421067342736718005963144642006249885011702538652682455430382561541791159902494649197244139867705706047148070619561885076834776700550842043560970490172579028493021527997299783968541223804964916745002013746284935140453792784102095667656207315386431681610219454965464534656226007906515785518710824955622487591644672640990920052389982802241172677719315830734549598527637794352042726077208058820066006091144477711987324812014674725496758101912230243378178217891939633787328324041399787363448068142313284393834024660612594023149017819301809127640254328364445859566798465993097591108174509072238597063708016271397409181038972859083695075524141815557520534796521595866357993295122659105533064405741113760886651307003979646501923283444988390896735531924889256234845650290750646604714687418751912448668254621113250309088792612944739849005109915540968076468895588720206469673334576621782655444959916504620906716500693004102670512221404358177224549627907994015529157180773300235821972660096777349285830086210360613941836260466519991674734885941931279559865489148079301399895225784230747243129048807455611119056148618561636244316528375497341017366954861142408769494096507194892195906471585653997750879898688553397706577540084474324763799938752910964335605882733022178638899030073037501592246507863302751316568090556465662652942279087080839999124922457103494296341412255117453563538171566344477245639695387098847912003296525750325100984764659584278387600656415102677145910676726067233698587726996231511009902475371371919208123384164212733563135707208673833851697882845345108064101875301857802902856974019052394649842954577104027478772337923018677058298138241836042871228129986247462520535056845187822707494910614875123935528369168196656484776769220927861220044161538939152245104006628169450323368711394304833535103123558113160153785187629246996495049314527414336835349529078897169265772034180862711322751821455819254617020973973829575554237379590300168718431675150029126340132611809578955534031813469769174823263361299432626672856681824338237187593525152599192969166768812814792762366788844028496385451004824184981652397628935204063467888146521150778632029183124680009166942742409350283800834465730217852739647113644727352100416842154918864645862783690236938147175220121316446249166352962691216161346516336698506460612758381865837460021085385396786664889672101216530657650081247899574703485324046141965960222380420781689157240162628134654939926888593892529690503387770769741622788800529836228997229272208755569723289591434958743021156209484200674677665994819081847531953953039872856347290867508665758612842801216092226565344868716215051240127110385891891482983361300923800303265268627058310453208767261929609324733130323483491138721091031265623492992992140500185549917115710790595522861200992370906198671830572096526635285006130055845257428329048738081776926292765952401977170173921201287767986515406786480891684289181604833122737677776033604593852550037446639560826794149925380460865535741221728953699284405940144825310465433980889760973082511487253518425752103943723675803957133318928575531359996749859672269503555360764090471508112883732083028999636053604117297283590771769305697128505753222957429160825271444957329032518311887628972312106500108024938034649243916861389290370801963301699002600945165854678164310457683991671121878480530237725469368555294624652796447970579410032256264341764223699531650133400186632171299244819422119861225487319661123992379868355228549495067219707124823335707343215744410395550681640673506450382264623503233944629431908020870899688822282997062745166984119575577469626496041574822089543587157744428796703888478228326103511986850060968757758000261365318329610440875757965906948692899491388514528683897951972059266284563714829025897385733692600436434847392467097790039536274552578443568633129299213599840528722681967085147753076377137307378676242705856274345065995569960280100090728389196374420953774508086744715489206215592075304121430847373952173250250640192441603339699353464603217617789770289602218767247619334945068490832034494083205455602859740124841667606832030756658431562693446596879122857757588739383023868892671921411031958511870849381873768278252302597510768297969628184504839453286519555368644658096490392292962785604181635493582797192974089729038001046052013058927653815780404095544923429948776050185411858370884039636716412629877589422558856662739677489389939638967419947054547698113252373195779789394777374138389613149364877544294036427908210325393409610748310154749909333399684813540345634302147068408440371340846745949747091289981482381275354364268584877218774641307022461194804568061976582686754763652593741257884985864507609357344593577182574436165436228482841907595470422536947348584235125811341810644003843324517055557798930473303599500802842313775725866061088363098750711953293933627245775004139173787355930691446604268653260129151564014707513208352661792956128672885675252328586293699056540860086283340043347118690973152484795224866072471189381676778895334660919630060072777930096175738534906459033572489076772634059109547053287748727362330981724119202376079325204115745872880689423826022251700825931572556466409789018795867887545780519942788051507009609093837795571099093667570176594925854844015317575222794424106962681694765046552135269920603432299902681964957978753684370344775952406655258584406400211079309832597897133052237181511633789276174222830572056086980874233346717907163210920331361933310623409573725455083404340012470300059713058708300388720043749124659762009275418500174434846302428509527896652854131849990940480445587446250118290251539536267068830851909130633868999567619075904848479154352316332719319458552935473009806216680793537812961416814520479083477286393912151828728284030055504904957756952873525380761292807763105842988545854052491633856319878515861878727593897272822829329378233067933210943970676734665665073473595563370653330891891446058826856087634046756939123810271532773745718917765930241615173892461278104972518946499264228917491211943830385461709908432621005124122037173385400854903709047798147816159075812693174141603084176356925697231668872219134383196360741390340721208736247927491547289383253330856950851304098369921746199982980281317734390454581096015238272676953763363126468500747043583092471673820069048827324573700294163073254736868922776791941910212464266924329607214691570146735257847618123201054098710069232453178668385949347360036161326570437157586512131369858245211613468049425795092769675268976575126355566643276000969445040806978757893427170658251717054580492831105277900611368157900886711217414061505258837752740836555175715806620999668625088801249544909966585880437273491415163098874635571029595187396173311745622028912095508105499440252129800852934581636865463889225090307073515977656292495298768840332753696378824978986354391637177107142953033330360218594951031759196392985880547347782659144464338400236393009433889706519723212622990985838297101939914141135735116869700969780186163792486283133051918430291764010130573777554642855361149758904880895960673927042743290350466518863853156784220045860143401388666727840592613763907594672360971782224721543296235785988857121440297133239227205188857304932465510536304136863515555073370433593880574730727765430538339221254299710768825382139462108241846241596026057599535985733439990964529783194546512950055722941525324994896719994314797259360575559351488308097554361049850495508189896232915297375802541911874167829526974262227967677225007713401722561411323832413029266945673294474078645630497441542231849094913112935522838406723335072224351689741819806804182715463791652153496220564110664372216593972299570259570464444915360033732008557284801806763347559204720395872571575031142466463039042677768054143490940783003724647850572902479421955234774941238989607165498418654117309154254672960657748192288268353004852255828824629569454838002593294957525359285216491307041232783031018124222503307282842822588950730154558210011271327933575402664180727801305496740583144834914376756920513518905634670265367218935262131508147510980344639330684345960648737964747849803648840850374805204338058083888223444357485354711970646877863530946216357800723731015226874747053577711454494587427907980490457276486369315183093774370099163204850355687779825145263323501347645175754505455202528907101743782755602753404502089545375688916986480717433544696138685867285298361791721906539464996271466380074022003610541256596851163501119018142011202456181044156326263402809527921553870273512537975051134018452730961722339414902386394396064199913828841229081855661108977937954726395208826089642648422315290909450276208119330024210035327874870813194716795092223130603219329613232963065225544501265718323725535020807647695261489337312985363008240887323279458448688015170153866158786731494245024130415935087066647582414687530189109999916695248523152866942517872988338324534892184632062329190000790052392858867164757141833799542383367313380148803563699130914186736047885256070426760975352394657908778570757539312566723598910701189463876677743792717388427525957569055630166047844348590067911922476119030376594884430843916490154610768322607118088956357268358294766796409188856221139155991585584734811410427047868364617330576607436700436868098027829253126659824176471667832868798826304720085403362433551869514507642548698048160734277932647141970544021670155209087476125056379612169577812312488153712827269452817218831222251898661745958316487772913349331105877279277532218847790429040464366812347742023709181718172040131595960556013661549299237641494359074435811895067486392507386417191516773555211386718503149080671619115766803334601993131298238113007069930154378853960489678816043772518929609992753208531011701230842677242715608595109275951148508288353604322993719079887176150162874758041391811711330947593014675630729686098392078100295481223927294977813742769891540025848302725132937640205214638958642097744311412594023682958286843679580774272545553495639213236270462011665049689275000260821650832052229443282706280641170414890224062342333493310433490962206747032024634371319430136434221881153229891974426484550422285315862265030505050364043957829674839236687838605797436708724247840468200451410692055420198332234449537350137595258001219529522388420038714824592668864445030999597493830886599537573113791072331350263357503521057959835517363740067988905115713242369932817779261692694587093896772672800330149099121461618461012205611232568898561889545251809995955005536110874847016490847084140222075164714660355089628277645411178567927157745885259353043697000938945359150577236687412642635398761398977286603444631134294573882566584823538869860450436559083492480383227396135829013309727045719471379693556121239887187598991270353800581883599263189704967247717049046450502008544762211244203488734905194514048431292441460813600072854117226013061573286910951551429050501180578444958930049253759065704362242729989342757025066012939556685548383586601103562134789250746913523768041395232616811544267429506455178200984371096663179178520950842994405197133057537352925924111836523876632082480871184988194170263348972682848714157179695077951820812032383577277306433041812725107761603162522378210982753956752831081102919661615240066141510628841725344458570953267675916534115690384449936421614271598553089916038432689071987840124834753089254899897458689514476109075608459709444460493937007209729722106290279353275084515216617595760412916776123774366232834295242709183433989406249111608171442470692479315844563896664291168526736240118268225074064022724768716209410620687697728089510615410774962689350769652083954931824050205418442490814044583498528001429858911386115668915905497181535122809253105073778121645626760030909498452564992434399389595302903128051533603516551914472849734267182127490615986721074534228724048727046065604248290201052692219440765517893259933072121104441373241875542751169651537678106511823098647355170421486611274127233929119460560288592475827626530327666912524912267733774788737816072194407666744171358182272999736077558743820874458801077820349840223397148307331596397477397262636113307557536889041004593560967955458230527532684315528988425505197060739926094712365403743512979309964290321308188627834807209229021786923617982741495906835294580640896988984289619383015685569035195687654668310909302502810723593246394051254503287929553764609447908758952517554756426989436918289404282840239830120055361673152996011900813851100384052070073766546401931504543868552489123441011727725209694243006086902910418026873220192702860635707867924221170173943239692719837544026905512086895917690717553293301275614823191266108903454249887812272017640352242131148691914641188470921425493504367417258795128286850186739964564008489907626236569082832476648388444142751415716144105805854255296788659642239797177078628343818073739319807877056569134222638785354093840453849690779506720588068992712079852904859964002769099663782465466509935549461799966146799419536021045590567735305414324523032088997677516510759532553113752002910448999154011556774850103713836655728644996886080126147254514304787687501823049016728452674292202131711623813930482188832482130554852507406638310343415283594643257752465974046067937315341849645988210085529496244062255506591856787542701917918995889432898173125459280572795653308489066870150652399356440598023509821927598848261385858637520783430854830227171636926985086544398897976614866217133379583412082671700115783541265162785790715730700007339061010025381033010945647288481296980291387935639055133767208791328908247063871072976757318247091405724492758634458170267269236537564565657063393225048327576686187539111128786973314379929237832951554970674107035743329570794652656412909976822465877414712525258141749041998361715932871989986573159341376623452968482601226314265469307675640493524297615800155655308385369181636603616583171215270235882482714941728682541279916610253965596893432582787311936504898109908005085344912000126728469139846357823661786185355608034848964104676006974818893091162952149199683241442588902186125229460118074896120730149796178046121188268289039384716803726522794901915561400859661766941527567637029164965606534299307916228200791219613131943133766587477122089612635668994569184914969797777451567844292747741808701323545251418625634882121118362342642963396391898351015524957715623115381549543700663031542821342519737646483349924515388328130702995793002446247845325617838727714799122830823746709579813810574287005498646611194728030004788788603476038994146192877613693202092995626048453176285305920517338337897639968203422353542377183232285024969971483121807772760854815600686392377906244121181286887062811689860646198302605440594974815050059114178611247856743446490899692817902303656184698061609734740074729129678511780789856521377811248968797640350191789719382467779510330086470725304851333362972319049373266596570977361945163356203285464761393479646374397380106441871274151660238732458957958020759182581172516954603142963579504363821830476866793303510217605625432735351435573673440172202404431672381647129587735340109483872347919398330036794285857404374007404888321237432818766029961105674426804249942364481719399585611125787633235679917061366986385488761715531842285939941124734522695420437279230736853767165169730653109490141377692350336873306665876373199528941912480576116894849170559855027849114547700138536579481110763005522108563776540605158965430784530517881085487214677235980178941793577246081205361120465030961819093203611134154961815453182227167220885605394506494084200291584555036129263969347513192544748669302337561060606902821168403623828298155963500209322457050228663089224901496041978109377626195727213549568609822915740912286588348409671987076344196554965564517384404055748096981585308721693851809155561988275425395450620267926588594543555925538164778094245464794230924720533582020976837011286935037960941451869496088534493836384202503370504571476894396537742831138809903519987147992927048785710848053643806637887194873835937746386221852259359215040818803148056516833263358226115277446236543617461857000117735379519466998732759078846775606314304264821179713552071535483514891301249987648164152075252546355156176702548547692437334726628494588555473846234665609455382741145446917404362276037459086415323707446012042284407725456843419279264420208448739601774579354119440008203652709758289822476988828864153615706835562290016531711001351591040173142346052076240282052815148647384784201900098038896738064628172597320482607090721616747140506408127996234520650871552898164041372629287721097091507931526197529094214990121146814293348131696781616803074690900793674284640097911363913106300963786043571304862944206973391562138031125274490297963308721117023629013992092780609878532904687579441659882825443225454888707413117611626314346801997244671563048683258250571920533433544912492776598116538473167406425704879662015125368732375800251838489806164903184500743802579782165840437066513535543303637465365837120580951074797427296056782916160405113597169232197290857248195647162243436685656712462014623258427089247723418045138780669249000454654871092225155007131798401082076772332855180797044881861220790085662494210351700311932534972147624083378520712215497067034891825775383386064927781733611614899891154969215508537226458728901454983977616318307444984087444673704907366447973123514882785524302887797466582552395445997419373249516626822402169828571429506489206631673384787281614668478079619417295404671753696882213073410845699645497870655445796547172290106361548047105794981321991049426551137229702059762718181399848860711442566840784178484497584175474470234297731664072398284505634016936971861311559463729361952685978363771274219147541774740464893621105949841623218949894209538311483909956494170135907052623594328345364555868671946419970537431350618877261587738486579967909008705085451556528868568920076363416063052255540017706069253064997893650902695006962634295738343020322321686262856401190305499662274391627390980621774112667138798709307655182072070450756704288536645698157502280569967976426246422176911656931508520502198471388482937386617732523324107383792315263291468265014080804175675340528002797877730764256239509657276493531020720273434659376487744661009808161205099770005846581143991212863463569949198382164114878325534449837286748096352988026283879459367161608441137183102629914423636199614891299429380175451895454694592705847057131020772163908515157330786019690703053329769492272352738837925709242032096710661585300516733884805524530603509218337114148082137734830693140324578030192064906077254221147903501391558552543782207105751108534856823574312008191878859104094083213513226037234261941922823677380189206710905791075418064040172639273675715884065932307564184101449210860891855287791402211460499105027036325158901773943376074695522722775564759951251401814238620958111325986644246228901275198271615745081846513095789855987240548769253912550660154162391935284523380101297455424967319354873517842113523462662773130388555819841533156871035263302371164390942760648065052202602469579201825270535410914815128153193843912092189095033320365916871366849703014276758100003327013919370884330966182445744230351357414726874673439437104284797009428883680533501444368178297203833208491661964856357801623601858687489749606347223805752501785906687654143532856751694157796412760934697423123405883393781256154460727818239654944473825895702957276520972707168562993884475943958548074291765592516659596459311514268238841119270860945127698541787878629058821193153486605616819234361872114474444466297532061152487519480463867422691025974550662342509114505023445660464210915899080882999793496569411467808523135761839858850834015310804760103342038977080064730998408441640979483878626111089838716667505711333708202985225419141213148100228491528951470939909038206539076244775152533050537158565096267808972400817608906488860542386350587413044982677647092777013562437373567325920488846425684138754915633042032581902774069666371589517818617224416542310815790562654517453280572464923968910986854281774770298851461778029310464299585000453266933919511120636077427194298225917463249112593229871496108220699313082175583228866654171086372440066801274573542400477256844091358479186376605703278704801358726798326299382488386903537660003881129262580457298351733030127309045824598891020659817889816188762744614176900297204396566048284845481891050135422099749463008728718052856265162689221473354669733768007233806240979489034183025373886050440386629790229821294911677148815265304769300172331058042872713894734852662113498666879706773637963435754275236423072121341385948147663326583281313793013712902878891139522491264641593068199943926634250997477413642936169240952300507106255801636866938312117602023451516150067315693224226663216589049733832245496362867898331107339666280561418476782170326388730961285251316923375406182018047444047409283495720618744934811827947591408644926462008407551009641476884142394735259712796987687524767380032458367762479843597595963679712432199782067303138151730106039152071838004667690821382248348300675167479810205965352925344858019949002235399234385941745202328779673215483694652911115071391704637322977806946521735938388000348352558252375524038103983498362024753339720805286344018211544248722187653709935934781570799214747960505664386212166559020646141919852805511862422886518581561410804529331365346244521509693378738139564736564908864964714325476345564842896460562385678639913786170596627407057768822888494037724813866120944926304319179777263109967160676877629823407013527475658669207720148352002492649014536431535925592360732380321540088929419485444749946633427429573390807992081224139032856084224757282523562299688562610480826447325709867847275783040762904000457674874050326728858238325107274875453840947183632180205618140103772969969449765171864852706957373715096779308153197830460221691213831059485885145076480969119718800829676566648376228250540057946207123241531050741636839516140863853096395540531457993574004603672633345897692250590999729714463866516252523965630145539280940633484618644626822960343623469855222938870242733218547176364063113640425433278237656165535107708834981900364858233133444990959828487616589646496301949827740965802325647940320809203577679783519551829510652475011808424571684190610745718662740399562345143724739713277790905558571702761261866007522460518776104554342900968941599045172500875789751997635888161228743027312512095559313736005048917328690773976500516721295457623356299070994358446534200010853802662578770624389479662587658226556805765441710833927181058353439177223889384839717227527176838811270598737786961711551606786456722930675019645322471903327026975054863100884146640297166584608871267437341513964464796213156282730859585856150035127235309805566816391946260093292045645260147282168791747015248261778296290802765857641781332774275802342341505584859321839544276266255807770175614517685339157415287506858243640410952603961794745754075600888780175871165057042860089806506692327705427234843392799479705546540478222338408636727377260945962498347084511988344038163337921709537665346476471091620491307300523318932217086462574067991162263148967089772480190585007527774164157355119947312957429411152676276873110279464670288844959630024751843003059913480484526551780238160510073743172430911747462790320433997896742285224667690331232164745132755617566333953203823410314159342569082203078631070692472522161301940802749479580986435511559585584626533119302916457000082130987947900341946233479995821987675523362883556109941697621982251001939246900021501251111494553871899581520864957699299606424995436543461705065022177304749574953914861591832782171995679545028427840638645382242310380188412168975683112568510781949071978337770307415917320091888676913276751214698428244764264683842446551150260947705434569560289227127287516728754891275016675739282871582014393590021746965973264797009654589763819115612974605737328948752620633163036643469388248576719831066071100678301061647329753075136010819037594256010320531701167706009841051259777219519753067486722003112127300466290828297440812676474839676048397063026536656296562822695820060752823480942851880315363700244487146292144618556524528573440655486334103553986267319196987783448931361258821508563386624485931827101987677484115445635211029397335947312480663570089097486919773822163180406472375583546171222202617684433428310843869862609926153663969766727053957496330019475063490099067523551068318276009704448485810348065009269677890333596639056672704405335372017769630289218572846449500771275571333038935644778739553336000539891392914739695413364043747149893806808047485688530505162012007777264155557438454228213069280445033577366956494988358607567483243453437037571270243447889976932787587723708682707777874047221713186882552320784139742541852019847499226290266191931916747005756254485985536055632703732162036659823044091548904326325843745908257489213612901508403533159679036021615091580563435012943618733895708133427405758809430888237034291936027634249575689261061644273056431858954016242604047885972808131166478080005192042790930079194456361701753419819786711160891836244314610837172507507214851929570741244857442211025561122241613656265666229502459739416939560567018951163532847797117698423499839444931764379782417691100106317118660195988291241780461227808186512493870099552097534201222872136931606116091595860173716072631254022229184320312430028230104155584822954017983766110717360724499300513292183947726997808085144819791123099323772838912432632444340138943546548279508980952626423654452812221301657888503585507428714901581495599617560652354712286394434441503457890197262098620124153928347470726511128168490200882269987859306045900504079756942401696771802391794086433939858981780104494851491611270849466758551733970043668137201036338302035552495121138579087565507549166120555267378080530227512953857369247805308212021187517547231497533095485324620643683047282938142371022467184049195773170598281036022401428762998805054061407279028700088313077091168227771970000096437288096552415034671879815892525507568095589424735725246537560130663798738281267614270552994511113268859430547933839374881578823416695050774512386699491875683903169199193063378124430803146685583354578145662737444525479865245470791809744232642534632170539896943478092076935459469743207316323889692949828861794398821827911819990807280807432144133926333350799384237872785716407712039682703173467590213091410412094334802981783748611762432448400797447617709286385656383260935948191845568214183318883844989169359858125498549822485665270955162020235918082066818324994132004083635159951933123994753165941112114770817967843055099639793896489385505002145536097826618595922280001830502608537424631052314574366230682390033976236780034732038364554875436207058909487891925376699149271238281917052662820915173109648008934974820090796174295356698113988268490559387651110134303821760752449985388131672690453293681652500026620023070558191515570911847238231491800106545796279944445727689434428465808328844617280276838574766337122684929226051494077887388570573124584448951738084710098902156234688615749241957104475832017097218724743535359878374818118004647784613276703143707613827656849530555504094610635550634614986998033540805624990813962158400380363995702853354466588166806146900884833298735264696522805453888568648936527433150249268230346979349864799338749391153472129068072714856329742887494378921121483493694618860477352371386806597605214438836381087836340239287988661254513912540462901596202775287743632616442406868250714131846632955174223855562895759111540997332893239786508705145516395789610092197085666332144392166461111025103160729351019585509828309341292931061937756791682127701597880278479095149985918482855480050453424737120383215754150811491991936609750606202964113501082202254144219651214937731382733453704329422310990573806758961876244166775162715145694881373001403383139652312802093763689610832586610551753395888168415609325439825437705638078142643906097143134207787159830988748595531657240799904329426774864858053756775303175698260526420902370463028356928674636541280294855649787979454060870516430935078341978830974506563380681572030501343097872318347478962670719439608299116357094937957236336825227393871368321977584836848657730191952605961928479398131589830608128088010291253722900619128588540167545021940488400876955098509792052636889272902122619385002819943859672456554501483176525008207794125851601031309296968496811440209455492023838797247466799248246218523070989718772024127625955788647567662592107106269343683936647620711314308856167653214335287582619068847714114011243864550277188347279022331099918302504444883130966192384683760033145397593778912941500958952278954683299588036347240837094501087806083314275711704368090171873822109272606256295125522345707265923568091729951021898768392778773390682220146081851060444837249769271885680333669046711701900460970607593742687370732478284218531528103391778093282858997230906956002176807790651649213934872325870554219626814899533858832654464342333336350581531496588941088235425142140480760072783207460562879146945384483547459988926560244028310298313076881405015753561510966553968482120581285019259238201722126088201972761209967405481229860198427173153323339922848147530631958850655987271642282521497977436785561435621032440536821945068382604940731420600928421548889982502289082276407730832727158165901112366185574222176017719924884229779876025876771414562317094082218311197687831169179066667345789761480442818244664598235447851289453988838113552583644058093325810981147554465039262919290456651348478377206478784002600441490352278191476655757545260403119784203499454534645251971636503248459246311961714077207131841034906606115304477226113256368774270588910387280801022014495294479144079743521494948466650202532523606536385644968548327464543145330189578271161110520992263669525088611086828503811706585636709405159713295121288970790038483023042297324341487540217307280501767997861637663403788691851919558996636724440384802399446676769603818605776900253540624409402529964052029759760075046323024308894316478534438715673868820263258005972823951637900290202484664089782867982831489205331772444490395055680115882668951013872049952802573493511381042772187721807334145569262435666200626192404410809378581027501836253482934259955908132242287340951558811065921014219541628825299641599874423001319087877204758024909609890385882261791729068850136730142076610112675977038778629138032852083899841471800854095018167078618842277096554832492301500003045542403017902998255367990041584060442313701556414378451353462480842688630566027099119382546424264538768926550204733229941310655452877187343513774093501634896297942686854890716380194119904169519003420776297883040607658042862603431898456911359622687634449180741527102515564095963768841575658559212929199887360276632881238205675418385251943819477778142367709087560316393055152556811405266525753247125479500808439920729178006955564404289842115469000460824733139446366907972842879905953936963954349866248055134692283748091923096735271270824262697148921706557642997896945413563255750477492325291866621353630511281395065868332636180192020280631080756636510732166258874468310535086593466764776015056194563667945798701605043775771000253294630860684496540280718012821067270045762265724280554847115213054206395729617238233145486877194672789779462527032054210073279840091091280104461732882363094147894538927106629693060951001036206478254968763828219420641783716692947895237592257318424753886289511672280784035567697762126724056748212755413537240007548295079327589680533069849982253006990632468628734005581694366840186508437885205754523166364212943249955019238354638537597441264449855531034381928962291525519986371010082339229039272383540699843705789954865153804759564645978038370238897094097433628134221317381555760931187958515681384037487378845672126801210978739516600533729246891806897779393106836522209142298565039762767931455843848218113162201069477997398145540361423816065664196389077715613689082917971405540985588172605601704569888818577454381714474652983212160613916061374814751576828505752080015096123581329289053111958225795910402674721428066442725190033741659198066631684258052644648604069711538367353586668907020084771924466103259246389520624654642535729168544772760786367244701953935949725605512290515750949483541175821267912414728004477022897088105056235172870197288065303134548438037970602556286496193260469072107203628415510908173186703814808431235561003562994751560597969810549537519282086080757031757270969441036925211774426475965396116989714849714338100030587078495666235921428784362154680753687276903223857566738552731962473108755478013102528189564646901239505355361191011718483810499105446961606816841766976225904653949146705712883212602662116013024146892727372242778763150496989456357118771186515461722048485917435694739481829226093396051425958104442266964723574348378324353229291946986779288301806105864249449254942698061408804900022958128657292315036253078143727983070521993433537423137039424783343651372053174556601500653816078604308919280457242976768945987169877779969156275757489444812358565036032091138134919448682457771805063253458480694168283868027494790909794000845182610611241522607899872774762580675643543236125677832194884875129296748600775145002655098331643773709277138611421595014825575777483281703346628959679957736848952873282879535478017040155564061552237995014820459259662719417179026571284944896027583235175586767659890636302590790943876184470922319143512171217380811785992577288268862148661748345892334152205956938392745019490528636021620106044171013046281246370059163139261334623944680365741356721053433065177088432465217968116681798031663668354225353407947071145123693127288509035993930651719589461199344973783701285220735597248642748154802327896672882463342542971354415263397464209159071619293409117734466159828839340280306968911850467822884637221437857712088448096709669099843443596634884181619931066556909711781445175938557924968302261745256464700558314197834889326409951455845303636627820278128075946624873331909103765834150562747735844530791122095182058424979369030715980139961974984191094144650307695379342734852072035702681078313729974893572675875514975056648015258374680611464903046656185311754920760380516377090364208990539937498218859888487285874143081957669893040372182151627697596766528370279113386372900742981748033964677785801045269664783405881516679888529169663483657317982093781561232608388282929490452147873146858471521250062281964243029101737706231256885679336506637679567037402173928146563059718004687439770921412579684581209550033440229368681425667262709238210737732123678068178911878566302854462725042701369832820528459942225288829867870293170797991043417732179716822816671131273682938996080400902406921244958076721606465019804101851268489773106366057085948486927631489451671651623820479124619245951758311568714519184458641343532516937755212535665828844213318207962979651076130297615441931007622148755791992823295832380630562118298520522589744665524801122578163514708307922411506367633215039305904558631704047857953559241787945807823124945545819624036737729631495538143073584068449367211849067403013455194842101035860883927876666781289529987214383569156784682231034737579612502346793792376998877974198891458635327278712782564899071169187891295378821318608617220318471156099684252033667081250230877605295185826522762654534939272304817186474933940541722337551692237627811206452783046322748475332486916972380748997695018933462980269636837460805734136161372442510847432139572120221621805614685106742709874578431319087923334747445686083395515767064759172913138942622666854066034113794539204141192598796858784435106544234124979004719940815277113474789069734661806667044462217047558871658845595196663277056163615749095797051313309483294505095189126364873730943982078766681625508503608138866463163339397860316214820133071897939715183570805831345641731902139244864229585355024398730626633469277094480887875228531699751076781236245349605229926635997718096422250105559167995561899853046375740714240043478207959583576740683430260372303659523601773849856751629236214070884223187105593981692435082084749972282848440580776062599717666781562629982726375261432987554225388867832859989287870639810627928912103980761273622330718925138949106741844590720716562661282802073685049087349051059121158889447708096026902175941270476284453758253843520058294171691991182529456285725176236642309954246678362276468632401276080653675432198538351992566351780813739428729630328496231614940592283942548054984936351949102491457238390572551085786408224703235800867031917749900723968897277489772339827272536573766963347218484623289081145524591293205120890659014335970019171725284464642978219352744116088192100308943983745293166128979143668665699775014264107633580755985962456134997917023200588503049612393790715688418058323821096284446446449560115532919125130989165422369115193324860420244391830939629805160100758357231442588503647456926409279368815756757683627450533494384504546836275379494403666378616943320443974205867444677100109709474638378784485071041348486722595110202749987962009896899790065656289633374889586901155467849242107765301004666648007594814132077245296058388506664151477705791578446903924747682129599545014574807362404829437262708743307903796205797126554792332640251977466666723466649802389103720695696667486710237957324181901516802684249934720213500706835254356420060370112123374732608719402126886318021566403806626654287370838240343945280914831879972411302799305555060112000478821099493562024291348580261565079848964645342141731536210269972012370969858227639765859259402817280099278501415061035673768861491545827176980973157648641952041594476558857662704802179703449090076158859537089313930592651604823408284829485950229981976659945118072847887328400382752246293304489334171941371045395505968138800886977644827236564012563520793466875279939041861329271508912257209900751623128963834986113583232883854943597398202888226890025548143162034019745338160633190684674730917245328599842059346151641976129799822804276974721325512909871549853592279682283185140166731738609871465857512058404581200819249092342393092434403822433910670144297839083977866415463390057687033464496946436364142504963099144527087388570046190987421761137104827523962449345503846290500571284906827068140564967841564858503600054669829755801786209165207742393534364216041128542581118521619794861854895774011006769450780892433862150838367961753846885154914726191540688560221782138918061718200385582394559539123205910789238539050935619231212145042546516751188793428915047080398966444434026530742722216743532009362322585942499811330729559658681182562046038730843329241158658448885987274333231171609595553856082049997485967003573776659606029172203784574896128491791112507447206632899279748796370802104037544221789329598586682337404293217497658686715292900979703870463512451209551124527396007904694997635395915409270960822142247002912832060479365727053127531196410372181538265803081475958925111246795290550223737104161822114828068241737188797668364106996614324905963748335740045359219685744590816586398802528955586341870318122538421655903131901144047213658555665728785201001595168075210988409559398265033462976574158078431427426948329769759505693286324179327569648521331339208990255820269733677078740918002094512166270179789465652344980195230992359466082546451512137940213805657351439254011277978470271669432348143024305111111061527007320850357450262965837471694657580856923398527531145294538843724156726525452824358528018737638727963171329300438344413400203537557397990526247437777182733302824332344452982460501686919021145370635270892847225944984110091460336280104860838528140295568138401892675720147443024405061939512080613309387081386515223987067900465095760247496983687305452181234823312194586717829168808891262651856857079189729199763699880803935746709365757519533704522461154245780953713694693975506043458458537622848823060254941666780427164306964384362177000006257027081630812386735347369879495135199292409499134536687222024364998934974431248060247513020438666246172504778535402623036061546817417365181735591155002062883481520324036224741818536620175273036874425614339242597616586207994012862865289398110154285526922456456404290475081694201985423785313470306357389301840047505579175036753373697142248811377942962006269932587790984410239039569948118904646431153812865091049644533390387053543164977102522913893622752832242378459196778684201235822824652743346487678437376786945313749237896135065063011198595230300230030282985401200270813746899481765577041969099658674862828067459696780296595485959704598703673270607089511190080960006373636749065202524326907358263458339994148683819348123765062144475410749461147210870287392000170747339014857950783251559731564704526994376623541117178069959990779484233691429895744467390301739112437918782486969998974700526145928482740812290879898278352471794257408912500791295100658612815254661010612367181533136441537992408499464381111250854870074156820357799370925794028794944985607824002938811380920705746410343443252063835110777364407923622722696724543044473018986789611032580030052516351132589528644701083309540606643417828488302794350247558271078942323104285362828511011458842591377825646042823817916275466231233895521455033719297571507827670710778709216632749390151383526197739674738409245853088012682376244723781567980163966161449504993090508850725847525475763361629037647120117448646774705056590117698738144948084951415629956489425141784574828920169533875335346065665570048050955888475970136757459525024451896826111499382975758573636451655267053444669733785203438308314301799055917182353475332203020412928144682882799306103413252093887691826766695352814449434085973794295271109973248729598087480802598626143833564114753711447164562530794338359947796813254122478696594512935469283271552963160994370081285371777779513570111391888161958588288907795493989520628735677443520985403461886639663353898506385508610844913875489846145640532688122024628894986530531132571098079967074586888826810543445490107187629005323147054746243500915816026598647867840282445865500718122380984935052236371061090837800809536665888876674231806155179375764555385052170162578087010004260524572801111832717725675753302511968368541967857543871997608437877305302342782444505639584179565700573002549496816243531525724353940198227547020952808228337845745791519502669514043458780408635959917156179593685236676478132512482733907945227859904568347311633790133551639198249389541596268863138458067833248671831590861536443946305808612780809348133619917007157926858527585201230247622010731236885553274056150745991102214412626957964199851694399079375491782646474842698796293853675381905377402472279870759665169790287491238083103875011359371746364048415601939698590682486862606426491512933905622131688699229876203161451857341501956187735519313390769241770527833919403735643900246396065231055422229355217816607046387504015271300957449933081951502920701297305557298104212057259152336914730280352523746754145856604232784574267146955865624319913475223115750653410318803155786514669634480486534339936327243530922322304254330013747338801833969709260069072049144109436478312880752005418567517247973045874564844255793112116607152517668911924900417681417008267407237988012805929211518603233542888449238091993307965210881524938581757363156526577225516688082703947644305817072441365402503461982441165124544566901210634138751707286486452261330548892690080561441715261975632391353254020514242017253762573396902677482312202211142515628143690029988527663131240095456639824444426155824226053327777331893402173912247489628957658461725387756024049880225953194683338670437795857776307206737401472210037364106421788744500552757238423592557134615701244952617438481001463025086185829926485413205056354479470768778753007871751737986134499868301879190053368833733913646535522479310187091764107627626408893567983851902400315738598247100487083451985261131056039316588627888364278132697167179763802141819354817294052928534561408587326035953017911672557927345058760433992542724218948190828784597444978004996383711165751233034955495422320623559981853117876319925326071496032475481223417890308195462794839843574656683311400784629906113101797315038127702956653548862831422464989615582004653150527948371285701458391756860966491844083363750893578912883311336796944295143628839471439378407386680645119204675398782457111272965596014969968924603533157195365845395583393050146310692645806836335826277378836628264910079797705255149892559499932737560932285977520249032801701588288545142491288782673432459401602461982015126908163107223164922163543967814788140848812915052440269026235602120759098132456921162610117088687576979003051412173486704551933093110048878360655986020974306751212468588226012318390120710678742822751615289108055628365403088611700804949203600682179458807123648579970373017939649271188610479411651315294622567216524367412580266651041072656405834308421575176542338644586047810162684853609296710604467274726435554859259614260600373493282059307703901592784238163399361637793935539112056449867601259877487438017781453998743069717577796144862538500255366517619725545055925870397985016065581156879188797736962535553561160953692851470728481371181533008255414211464733386139588926962185803805558655867557082833825832532288048749846255975859271668791930075523605306846445316700855036600185065884889466209169536684175128631339412054448146106993034627948738181899684003187875577677582272441740525796903124661232455578794534676228260273230101754538645044240462570061514721579623006610571345996261836680856025658239800995913031154188332043604958560541948178426818682420704955833236078088356494926102963622473858366349357386271842630402883460144722343608939786956240134721670981375742814569785879812572876185864394928573645712973322959357587349341672034713511628290410290987027604978934583612688957376653043614902045253740408799958897222127831721704097682658750930534187480384292493085744966854107414157837259174866043315955405906300691479588189522596569682935821226746772679730756644429877874525003109966988520796087193161922421081170947663255480610460662984772533673516108970199628932218228674722069755710838211927472292898581030061700230305209697792226963240204552587395163870432006607845174431567911435426274283802940363164726349193590984934877671106722540027603764209100311368569801149132739772716384596057727244049776200703542754802374451858963718934747133765954330291288496212515255543512478977802535300388522114397745160602158930815929145174863052450034264847427049386396656584296858195854912808578079929117721811263295328942267539720834062650219332954401279180825881428905377696823294891426982091716971731034816923177913702276627165311255385664824415041455185410101000946443709707923474464350685432548617937074536713176287193001692650885771014792922112433088131239113686064384653104659624265472983764458182274523496530393945602351383101042773610636970378529406305031817640289388604296074180410443490219120593992516709350258006810973238833563518647788500185966633946194691694291879286432253340649349634065322301931663639796726326101364663105396125310218452925496188483314598630977698693978182080425213840982643648844970479196371639096956907460846179424206511284031230283604406451819026490728192709487579535925552698313443022569188043154195093780280679064713301742949441785762044094203133528890679450167563696399814687768549761148694267290679371353669575858423796623073389406207392342990199501515641395211691639173768902043904905283119958583923333885187578733667729418524560706955800130324417080877799988372087963098596311432397190486079343821404277184421097230854498973753638515602028292686269985563635456034425065057158417250933105251860767140465882975721458686575536042835233274759487619567661771875038910971032780549728207773918020379844825820266694532987718921618416598735653886450660327102285252775452356245129742056461700513220099485863648602774009197401562666467624280211192576518011774637108068892303877100330609841416425523618518025036720833995002948761603616566074339059802410421196313222274637294016876921499704881098605792417780402808362058850266128243804473734229465992494303862519107937625367729606791186239060844146764031819437985343989018415030679166321168224717522124221175113322961741045120679545176232433010906767339023247722726777357196760616828815496488514223566820392733497271046142206330546308704745143275578133367736882068781199863409970293826462798532587148600177120410285064126738445738632121478934632718107304420110083282991419488743166064531961591750575126626897415122655546084613031260522148389728202809843253595412917756674761826995233035548364737562151283690049223256911170264305165821775098252079103276163120682219695244897336349669686929962946704888097349497676774564473494442687550422754555001887149502988026879390198686501881781091897051646466218354034816574420440302826867504403780575688951168148766452540282250162182202396342928864349436945995875601651176782495401994323777566610108477717992050049371629699434364138868624188341055156343342495401187314397706392514932335620356781398106941222983716135253490531243164313125763878167157604768946432350432969752036951898025943353310164634090324181413685885379607247491904049388629494549818931448540453362302051316472506310297731112939326034638673151799325099428909910557014150367350488354725451635392923898130303964608688240179167893426576424233113217723474508700062527672021612170102659045356307032002437325976716400218581019822251828908479600696041340404630220775561634253610721910367754109601779625828391885295447161910733344254510898322936096346299918034671566654386207169637579137048464975985504294206632500583273633513558547109854543760196016315743976721478260009340619771609383448025814399452644443407054343365789128492231870317620690845041685997575351038177979046638068771838826363996798090697107420568227955478481515947124484367858991941235500854792262545063496597325071349886867662559267514302613431943198099052688590795259128042993684768546854774280530886542169707762503269001427599367212524624220079292748128256091756914338831718231089953156808329074086437338791858391500249648770307868208941116180443098345875725640635114070900786082882011309555701804367628219512879094831264919638333352587398777766558564736134437340916361762049226543845454944357148513392440001262847024438873081198578593466172716853372301765586457561456506916910276857859219427735989410016209657565596591051388082470703463424532713848754875969508957434255569247941665401499909967367478859254646245773513072939920942468510135116647816541455464471674755696649820872772223546575891999189196258316063573821830478758802024560716864345839030283352831848959230027508637743358136876631925093336477659700574320394966365442521250298652992847174196662844236539272324889637088020412332040924553549898424174630626095250626963049396807851967197865019748949279447129862463401076523168253225293444603516684988623028809377295329987322318620163614767234568455740805921404536131648204678115047373111141204798841086194461690228938762031821313387387679126496234129496565978410277214122731142608955290607669888074090860704066173241176435195310526918699190151248075161348664493379000618896628497825013610553206677541737161998969360724852838316400459881010635956668389555959468161870804649485792266131006989377684896827013020637017597592348841424610025026729755163413819303027452446467055211176015482851286532873615292453916283862918557744631506167840579961937745601766337039999864796985138854171072862525519543374024766602828088615559765268902676758340898772298187349243575585858964680305112936863744408761572577153963016488604528995411745856084660499784061775691704783666309103386935949930804765620748739977791678935531997655573877169394473777731425912844432101117949223780724559525368994589593895913032888700501540113036603341168627425543559633535109078149297693003257295208720205078806052519159932541447164997328228603163075177541268446761894413325307658965952869690665007567598651322899045701414179605447900507495713282441307317485124914293661143187588872820050417661806251126171280667106549696457361103239642120304569495636283803369173090730541588499542243418950900338153894147354357125806532355781396302032593490819694295551567137577069817364650330028729070695980721799130388622567904884795821342351324744342617125499135282433241313601032472545555505880444864429085191892361801151887064437306389776138916198739535863128886199371525598440094421077459973986658621416904615283156619336677034967860131381606617379576126233806062055915228538775621117545130630732943946914144518116207748804318299465384263668732315422220338454307150481770931274426922946742483540011275547318438872647718274355976670645081333139103291690915042998472164857347560614115894560596984158210605405842779473866161829788380515067414993998735183665388641876968563734784367206251571872877427769022598456345022201644388004407683306910332664880853144674990163707498882031534491471038338391152837208031770940651456277392804946984220985887403128001458058563901753802489018469279806133325769058845379735512110861692643754136854219150217356675978807720620570239732415707683435568998704655548107725008516457888294954190262522767319104479816468604885298317340552650409810197035743197717020846580737416846754436720497352148251185462149945464181692349366695542317607166685880608823381043017243409277163669561337934230664233099767798126167571418896456918461384944537481761950383689223358276375975687734292123101011444817577149021756903094475575986664483743810713282932184924786411169866445840501847169366925942327462989230630822593064430547042416917267215713172223343279031658314099794866372010893807782523082529870765965999639737151634376429003403063120655526898487576409205488864118183984026169511231322687966798512241837727167471115202195246473853432334031638525395553626631261618460106194488592821055608682398446780893133637737209504262750366977777761710937924497750423776953860173724691687569995061409851687723411908942077240004305726825828796821705885834077245860801076663114930935926600735673260156411159452820972006060834135069073070959879427172663058524138230514947441898381798182536905732371194629669664816861975065502006150176674668907690598675934741913108709515493863626805915756441237529662238073223997387028742492569768548585973064930291265014001925452363821924681468703849746363614660100900574212788895863104711515058246119801949000817438062171182049892643391013903975307790687081079087043594484750385902195119321883553510143047100217587245350164857137175532743909598283188729670942433629048439514286359657616651145771598551673323693381495914742560813974409128721742182342537423367764916143084655933071181536019784295396528926856134711652852331462543320505123178286980315226961953660584556708399594834811171646371917586830907000887233253295368237147828872589542246040161150352037208279325217656910977095786498082507975016413469488365842317297107143200035206144432382157200258027038562155963947340848448723531141040082638748481981145547240533896787076735928727355924775243374020254249762410290440580961096270821510139773256154287689988403818447660814631139796038343209115962680434453908752910302474678735458534585611971692855158733439312422322960448492051037461342880871891082838021945912879138813414056068634653857326878948846538704548414951698763670619809445352569231528315204583099925795731007046189280548407478555681447987209090013972121517879754867935600029628313884394752022144613239118541526883177747870990504560374164737570747120440354974084204876582699318834821977111210982992943825651254694689263068181745162811930881645381823309913244752071054473258735027915728883248278361793168328474907587234491063167722905469702716340356508284276650991815876024119236431721766080449992149601856265478206904814208167555016655004254529133420975345838969746218837650611129502962244794480216957474557924331204449652103682472399572226894680360505582705797178872086984721622875852193394155354607748953813357634525776790664572504675680140210499075747148506440144583038590096287376948860976201776200411918594923981428594029763024158382604162096663854886887490842247159016272809783070094971483774955394358118164983458234280236985992135831140060696950254722618344582379970272351153390239531345791458760291098336540289458323214163808960565698242783140417877873897764796759986112046213066020491658521080721433274371483321215519468969142649369475231508694382151547964071844270183553830835692232424626913826868058809173990060330768062544340727654390288008268661788309490426111789498746431823530053826700021047641785500247113251920489331989141019704076057701181201516010336543896021365048143511755763407567528608096507338357515188127546316277235937042398657581314825412950204483065330256193908808692946001150552577944362102433603738832935032601529340650407807602952293105826156117337402166137863366351828895257968095556484957281988720541807995905085167077083803899081936499750539523822879149126949496357890518370568253647633770758422623310632276079738736389345677989460950497381903756382970802148391292447858965145049512644613631587788133478903712674346460244533707273953825727637502099246316949011470517176430898406520685139791599880723180584550233679794614852629373055683907539356547679917741378247676539479904220086902534114222442091826391772552075345097737116910373428930092613516018553255482647000494244206727250711841560709648689881947545087479372943584533994830320529050153887144591323291878705661167572974972330250280222203385216239274313743044323744860474695724795780763296071751558136425043095814649345308147320203630832538668999922478412169498876416864896782779589390665630993214189110928146958960665978889068299965755799139997868355942831544809250220432717291761320447391754345932333133036262103758858112551789004018052954915066225072208923836103092079979964974557010622711193683918226658562517214951586988058037998870433800191295213496431483711009647488981030692335493544249840964479248409718441393039821874298573998971250861619729268044014024002793186338770411589499414591205182503519101603365449294157896694201451986890439772786240876286051095564445075540924151199778223773496920464554185963299337096504462479322485948838877808515561084857774543935440724356975922294242009468952892767459338591467376557832530546638699205202782927163693753183218450572247303062003766255521655577712411694117530576333997830584706582226038639848647077479915329100122439899628017771511887891026166536120782076567984181451357378431723486339225436956574165732832365915764206366787454433693305706723539275512500759287474078831899493838688418468419150665642777263269709062323406515412580150829585342729136460087549838981650348304555766503745249945739293711247090314930559773374000983495235598128857657616866660274994866848957249656567690089738959789772710869908564056220817038170725552172371664371777755943636132981279361763202809651711969259177648570237483911555011334712874139275595610973410137944725491867821138853295675896718913984909407859688766797500923159988177558178681427139205499291499097568058248191002434061554487658272729981806940946154118911126582632544402349016782626978750834051199277639279155492017430829426007751626887440677226114524223564632320223375241605629801560637526056684788607406491244777927240958009914643036523966124638802258387395785888054990948324918262485349047029617511630867664879223202927316892533819398706395880343043087885553633773273083446504320076821093736339999436063439986550337059557281719696129914430992766346090658856843064284918830615879567968262787419236643854505065290806596515517073530368277207888965493146599917280359548584126262533318889268155736434616952688692866604585781011434916474589186930478699325937180594926288180789670017654813610331346242460182401018928456874517209042169427708095148962421526497527013202840653325637415171525093880811738966648610968474505550809581663450157066680463852898143485560552922571092639495469602086470263640675796266956531943837699902991210925896662143613792846043279378067388679850272883800142185225993563488596358970349867322993172902551550566483554946923430601655660205343977030739435588557204296946171423578160096041757424743610120304225065204652376546896934010049553648240494845941160164881492487989792338926834882870907382104875537150547904117503316416324001598579820243755056181596689072735811124480991731437311362697524699877778353022951455669815495205193158995532557252429929816993246935491853359676327951853712814774872619417857854060916916141096116201031005062267755214556260763773065290410854137052345104722842050962490489793853066851205475924145467835892850382753189959256899128954004266978021106228530143413537471185864864980620926957863267424878674299259962859287461730953471110095218619610789654826474267262967006640571939117331705768524168308041867720972842939601106367460408459025512569869451346480847606816872089690006865842562690167836419740947756354844958240497674415023040545511701123921026393468629344628598114888160575405138249134092183875099933282914040881215917213984494682770089806707156663330506853276184293139890626300338135531720126447924786796556680086922838874548444133372497232641731453645181982411543205653452337849702242083973778877259488954910134297518434160216076358022789247300841173795955446120360828174682097812889201588938794298631988340101069170774768680193117271975432865298913218030795245942034322519426900307997594699882775176117228673966456298133385277227869330849500193745509896445705079427813521766480603452725463220354873075551737479256093539631898128140366270064784146272699429741411482133895299940715419959843226248891023796999460924867609032471750317208438467371042046830805946476451926878371460711094929848191072278727853867426130205985838762519333643372158729190731068197329957917359680162064442112683835526826909022107246888818653822532400428872554100234050658907077762187458247167387705409801610327190314796089079101046686264687171021421700967877393260505638782793291703539190884111054478821398774642968841524043527799071758366084151521593337567366999887588776348682458860185949261939126423790557132014540329589736911341757114351468803697966525848036335250593574174676187857427474417662410907644422031133052058626961615059614217113576651015638068624921504038844071970942132730762397117313088371586501692887267410549770707469552391599198334845817896257923477769108372401286459823159606152605206289243262115180352540076068646253767595996170672610654673955553740605703324752613759609007699889971585416229439469016687019586601533628680819944020830245544793696490404334492055101517656478186274327221988013802631382821755659199333771724231075648712604053577172450242460852630511120824091561427515173647122463271402680663382227028289632370999760895241720322103051112566574609630305893401973988912830814668532536267024978911891487993677243605226633870290489664905739826876747312352618034137867732993039393858917981683564224812397298308409609066546183018549762278015785599696171525966562137248458866586718283595102443422267356931194347554482778827605287689643519705898832668423127025521109306600170751323719064842211710880686049489538359822217598788255888650377787210722553226495086662735833728806568218540237032158964787742507628470504994633110828969441201863075885887587831583940022137531491484626597004932492971710450333185125320961794858240338904735425678894990272762953553888986958829813103283702510798048050366449648987394014277202245949714226640944307533583495303367858750766194545866757931995783882939434735713362143608732183468944403946878258618122379544594994415929737684636957565316165089629162167041799346127238056972265339843587962079284744274763191238241962992583631056229827269293981148797777654224538210090431318242166966662082203331147689882410214746667250801969087646648942588579083777748575662426523089975931483997875562023253058151306980115735560866309664049084691835681883610746499544811848689150880481656014398499735954141059023450412841972681852559587021200225972935945122085562272051587627283522402498442350787150307469244479323258009483413349987961384060659895001822762412828760245775241983414091245450166818239265430471954851853662010776459589355227434079571487809637238303508869939952276665525275064617588523479365821793373407232715643728271525146256463683665183840011434955867385194361696636483756942425791647411865965872071901835099551271331116348689910380771460813374721340981677523013379308736116617283470274198765217425606322270529005674798539510032412817317683441755171554320918437854764081800002373158828577223094246503002319415729810057410386535435480925192278718935024661771327314947469422893281916208922002519557834170559151976295067568072627922727087435504178293680120174831884090496288333466766098041589793031487500711858924935364050677222367619126629659472356391848657038514332830602371662267132783681334597621497022496833566754277274516314003618449939240947262001380866455174654081299576806557345527799885654024980320139662546523774655255736044463673907176048747140300787577116331734790625438539054522905232658469830084983284127909524602789435610206757859125923519241185383968631908495096796850889294404560242357838337954676238367810054686711924999900918563906807782302048885950214448038194565642195381281422959972300344413218118052519415700925787107365517331736870592469295725097140197794905573842535459297964468542472043079830207501888609991114873859007268620157923407291507940294555826840174410615888259469676340658630424562286061784097161720604736214113291942411044826329906172567330010284427725643087309708112930292779738052774647620315908103938094443094898610804960492606105737061437877617680453166873466113988636085733914905367006985873325135514867430146095587655085672266282875936067753412669677449482624894808688338960338867822888304739301391847084651571442163368460242045166714362700236481726455979246029977014206628026600970453917046584200254066765893606662122010168920178791839034638066168744860439205550479195199412822663506800711299702205202069425178390076320777435354788506508390338970226998402514944090475884873729487171866449575262071041774351379480991597985589305871367508521200728739795087644359239909383604231593251202298759039570118208967548066101001158988400396419893130000944069477789028938704602942774616021595739260786090239628849960445831613093983466272249301190544923142367483551430947968462797372157993652816667582858415142929355254864316707204641515331752859882168352768505634454484305295368614344622748087587639640232066115287255543153192972765140253344522366398983866273011372274219549523913205302331405083767587284596851194491647673329134227773290652272972059636547774693630356363778552808732935904467409133424385823627199547366202397593324753555804931247324775999004715611715032125990326306715925235921233921262476661171802968906503072686956902963094779063075131783729595521674174525623252862990146170984891849646753683352014488805378776212380471292001309875144285584541698199798716362175377927314984892142226083084249391182535947248473976281687646930162454964903715313566561299817372172761075393856251166639209930841798993684704536933849070254106824838760364326878420555655843080285914841821034659438692669133565333377787531425234649106792013471772006758858969071446341020208493600740626823181257556951150268284554312165303723690096275089881554566296631504653075773889488210683556553862667011941869806341140974226463442648621469456624060157742300268415262157030951415425668277231303731680908571454122097647934570843821028183439667711801520827038962667003601311701049277219602509058046448148322655107795477391903764044553017163615974634854640982049893026787338587655977324367582618666680422444027656929974912481926303861623768604701544628192095900111227419641986925784049308469536155375807862434652764591427287954040368394811118556474038150299058323497369917232817784682796927739136868492577586830898032092024065925828930242987758558243206736710248742959242546341934797455194012376143143894901709627059404238628457009747548884914917155623466970664764875437196185567680629700687369679942187075271358767248933477488321535081927332934000195333971852784151484547768164597621007366445341775229337475740652818414689325045708947689506643708471189534297628522664772491546367583751592282225557936362637139085991276310395134550628547127544619967758468418469367358884925047676774449694808432332769706694680964475794525008160096626357054401090097521155050614417382960424277127971839240917768237768583839126595954208875372182692329078525798066504790289853025959376677625246646275049262243247249191459605993369249348946108757847556303651676470286625807715064113547085056892273005683809034562635913366874604685799370727947216279836669505765131469055477991544466501193101784866155758342397054413902726278843322521024594566337233537413787880821203681103994902036316694787556730266068231168391320181648782703766399140561913498310113083491605567491839132183858320938642684636832883103092815217126989996250397361252910227339780912617961518807164028346550245667590571230025403652767555396600485396345467275164325038788817969360802178070252456529270398783071094623151286150993086853302392123738299233811628581640528278609798014322409621709605929347416011159798235478874361564211375321829304590007815098471152012588359011002376734800874790727326758131760011861942005447531029205191588351907410622952887614517137100792721997330452629052460302603328874867583126705303029900919785101924183849076386039593297711636692983645399043691490837067535877026688752543214719909426049261480793287716468250300153399326686838853041738020428143382013385920919941659002103570856703795643666511205376614182638270785873849097055168996188864852207154886641770509734401958125393647644954056446197887498954517606288537234902162154300008935125667568348616693477855642569347704652143553933737428403687701857682906238047425331454911538320770589278954868858859869532270198678887230748652377224745894209401603724230980544933161148603854653381193907638259126207925396155938314846236901672175415163675368798622000865819951364595465393820477059824248316928800216874441154833333347046718849960383128219846287113633607511931303799116098330024771728487628840210517269868358556061678854088030196422502550330623596507824339458686965056030064219951712374866385985878432902984095248501296201180794490396768927040190683484981571160295557897087425504852273019650778525397173928803257175881284746751708414088114168599189178361215873783255036761615904472739873846364723450237975604554438595317737057097015377012910294434935324396320256020258986849333011509073467751408380018022463845716562013137862085929129385513686439236785456217814414409646287071235791839346073688134246346965383146150745644834283139008019482012270470846780813552859394646831737814942202280320745145106166044290361778951562762605691261459048033333075406731007629126274367878171044581579143059084003305301369811813392935967457065822679045100701979361940958067953254156906245330785306859479380383808050515306419929231535265462764319039035121048668148539685612454415061762093308205415534826112050891911229973767017901915131983547891395275242402042447522314168155706078285251503695849951631930496397014516656975318687461727880287422752921026156703206111700418083208196458143154188019444615957060584131651714340999554308999053177049788843968879898387759141458412213792708332395892780408545711629581273602107447300264967383894632192892299159799258245456770639278477052946489805076088793874952499940201797724626982639004221882421012276592192304605679735780243890282100222444983130399036654835924681848072323253908182560740430224283210929721033995288425557362546596678709823727413216818493673326168404328759385181891043690323243174804138186902796649615898670923221530055709952642074091237612954361575680263826367212689596500187269162993160955740109169024928159716057544191682602202950045989695050069509364395789780348840379951613904033473305339745183572982006473940437159312286584032266237363915913409434444908616820048559900907375336389115998698556804541845176918368033383955916037872585895559382215834625801045438615264817484213148938874711027214715296795575296671650679601746820361359155178062179543803797873352143761755287443278206696535132148445053354457007117427672875685401654924776709004931543208561544269550647902137132989817229949686586384355807860773425069304026736850705091500251335250280751604855128578603871455009140148916926470097549416614241325644400489564474330959926272254445054576986907065715321026586981932737117865258554210117589636047184899961415156535220377043575046827443637343029087739383162466017300890716242366980453428439163330955808523801172752764602699292697566100622080326238580839869392092595434484655143294656162094568845782386369925190446161771034272341676043918043803479704912598969866516918434880525068368884332500695570532219298958195104435664453918930940426887421564874575412055839344240160499486663244836926171421053577155115337640826735042074253512176159039317377754044652614129983071348954217036374903245055550965356763894197931346145463862863878342349407061419336334142645941078360182858380451724652037794581544765966674274033093018649085356388338566174042469489620396289115161366593914027350766593662389532851447165502412369141688689301220511099176493706822972669851398801402267518730248660705503365649363187246860846514630280762408669462994076553012488001537385800012502505060121909659535235405290123016684575615562235678288194735140145312893888841412631249088189886013656191220475970552865669816054295494103650191610546803399311293630013800222904652457190956057394615352533150642342019801964954824379906463476314622541966756305181896466831822110509439991352882336907033664016640321312331939593448979810320530302872518126200015126294516881370573404123225255658756588153695970458749248855208546162742334856162363931833999343826449394378185478489212764791237218668540536673835036804893694131994593745909934903506884515485892412579715853380913785967034823889918218038020375988820819117668468113961789610721951328052970848178966909712954681083108521051280019659520180972493905765224252251255263839027090195077045688937115111336028677809493804097961257124569344796816398562947463178448487315049103490090618545927701404338393886971969146961552142124266407576849482659322530800679821122658105772096770167864561499605132937765615080017221910191384352371168377576574211287979568203147400523598149709941640505432855300080314214121611131855311608501262285965928767313120851520503086145310407188727718640974438956066367198819367623011869828583539032317620267214676464141917066304551322179334625958124091691264375002764201718929615287377167840257509246426269050157812451107820911084517124926262351597289627281541106603501851302848183251136123523149739928860737571171518986964196259217163856384505480221544354369405470389952345477679813161474162665879522009512724957899200996644307638016605599070923684957158397298499963158094476669701299774247796539645065039384555284506660850720156029415526424621331149370244070912089662285239663898637668036737068386899214849215240431821857674930280308119092452014305501901813346852194648375888052400519465336665631825278600568123048919336140875536388279246576714934313110095775520488799611200764389279360385012745492529757151312183650880077127362334459581879240289423144033462558342125800166248931857840800555459408084212469617942296613409886053658229098448359845822871718586443560403674940190314556797816803663893559336473073847668544497872592844356848694885313750814533512916389892910914791639855076072321528799872371413892945608968384568230953741896562255197057076306536949008079838551484956446372344048517652685251150647895217859067861729595031756326784913760674307454036837953289798248066431644245551187073536489044670551941806637682169558549281898022037628204857501822613640826495699173871867526749459829287099529452779052218030618448459326046617925790001914202030572519156881898428215754583854245170202763346420456065940192499807688531758187794105210515207102707651961556066448984067307620498933773483233886524263677075264827608309446287670137558303875699890321399952864408765197956668290102829023118090087982469789791990529704521983490950707405900674453891251366725385828901269171276168286358130290248596537320029122837578888626298886075420542056078096833664395242375776250078659918368423867050682023893458700830894621156257029611268042102421094174860108103400877998072058489689930634385744071374166905587894154553714850614346014453586296561752394829958388221806353490997350393979419760813158290270017806124310575995238054149791943113481119771612976406915602723900703304418347234484621139624165736848255884981051737169368268555754462571492887560502124961742996789920700990472151515072099561760985504545558288662412185343510223222600504376875355997827365684710779769381157217528910090416924845051877065644439436775038681540405915268008777864819592121368838646922303736369196499446033904785362500928776118365640323851229901212636125162776343340067819440586091374426110319241276608722291199291418862370834853527845696016357479364294702773321053126271848524822879392441376702844444441475580718274153350354274424698975160981232181908462845583787502970991455986782863006557031848897298319029240426493812269598386199916887773672226712541192498885316729970229377190785589603856989910540475360335249042095135009117888841888679456672398688720451872823005012286265926791329667094568256566701618339019149583820126530567194070584118747076640683245061817677947888380904453346822602904336802605891334063286391157412107265962830705166650040096214173176943069718727933647508341532485976932702372368399551645176748168251292465291732808322147543709327316584610255293070307559015904629469810212758332214948719107220381706667773992584881380403074874395429030170328022500403111243879790305303396264801432602397332802953274403731039934246792327868824077571858451364760627089423349831664320438948881968879439010230277354182039099041608281019892296732498383752741383660650807937801742715163943094928041049644154893792228344062905365196599796629060068202955006834660040967220596825731994871634800481903624235736031629163235005598237742535095551752938540522096916687967113867300831149085997118875525605962008998209184477309718472328526519439945935732236305407625896278088307982326168657641118385559816304755493437197812943194104229744293529148687354516901714663035299881488033937855445734735483685007246437634139583441330120263452016822064658804835810290847531858240836478118603317253330415020780688360735010245744425103799363610164598388539383214386459866110726287445550878521967200362116116180885035759604841117192040795666765745437332169461654972211807113633873611747262937360849974566281511879829073902688745056652722200577705886104537494774990695668398502551679895721144952684964762356985499733153801297137695931383705179378522859488088619683851740033839346559853847886290129641119486379520233968153968981756441432223108921018567656769900606231057965139274864786856066259208812255567644884527602926814846638279602292944021038353195309772585243714348180379629804795636900192350868925259602484211483485404517005692288159877544284049092218839444863136028412833383333197250482756131603328331097797398848856027705448547592790270128510132752083538133843293003273832837819186494945479325408683006955880215736753876066721539049719315751182694669025553273719150366548031364053799421541033161277995957709223303214191397171515904414601273089742713055928033602032585903641049110567470274500401537659175382809095685527520095121300819883582736421087014446922223166749299854846832481228965695763135943590672644381076404828641753516890633282387695765866562063626014998175542446225317718609003771410472960877256670443824941030906348363381751958463770303806890853201533319300733872071073795287923439689079089638953464343555053452183114497357489656506606089769142012131708770311616413923346401312954665723581868946336223959445841818991636528183391104061463080215395183815028606954084736653915722593437099255844381058326461520959601752439590908864211605505632512927501729464043981198368599937473463230465452608166108250398248552567636048826578692034601955825634324344265879338933016424303776621796356340048889881036457409518230810992813705879999478386489733623638590629280965895728091048659184892139719186816482640328350934944127425920820854745534067340436801878404097719838307651224421076966689998235834599114885823747156254236152643491830443155027300257423561881678322265130446273609188480653627604801905334188853781166964520536903770085299855788360730379613661447460742393947867256495081358719382386259245187112630122748174732919573974928071799828083081828488467848711734821320816817115803373991715852794132986934829097959760169201085647538238241029708339516765501025940098235065624912847844617355746898293646975160270174136723932892928546815062698966648670862234606099827748703752203723011769327021613731483060599326655871950469780560762972271704318323053085023128355758794301695947641847636303243193960183721899312910599384705985890051915097058883968805618979210326008615506295254977970474507125238536473962130770156435703220809304842507850708480692770017615017799063832363520854638868733803383599352728432945860963773743057603735242127895472855185337033222708718819282956178676196504315984456191635075063442945607105447269213632676259734086060128580360510416553829249405384077557960489197185174314161562411444336321529366841362539827205171775685774222276909711319324828474603717706878653803305765271812034150513343168703526330564621757412377313553379089922603653914418800553910929277391614754726812223819200236255169448144406117403581318740595432988476636656697579871760797348367674258700231068965715895951366669615545159948288209545787041539669385332138571331715110151482796337831001995475453985590604763152329521116843729937616192394674629489085654465615558183925518162093433506151009293474207340246527134508172113283865819097007738138204485741186521544102466398202483590601755402056555935234352987966950938749901332504356965684767420162743581676508006328400722007476501173758062528058150045975533621291982704244323575878294957671347618358557989510755327462337879580080951521991614097136270807480362301964793436832460675372975563488034395707765163684271962110945023442194302630066554537767700677051142832075921096379052271658628434385029173240023774896235867318848675169198735011153109316693606185881610359364189232755797644283887689874561721204799731561475495089854484519006517031005377169136332513812775836557634353541489174033284269557448461604771387346472680564338890828945219034253420632431939443620288631975646533260663305524797708073738959566586541122469588763030289659632256755412840431421492730883743092599291399827700359568414665797393166732424105451668619870865632322203276847889483034083366928865411902373263669056903007197044702981242679983779560106644242551630193131959689311095231155727152563842813158898783359562386819617911093456323344165581166035715915572108032509090577224750877914093939388186432488662558960400004481927234052794936285313753574867470652712165230381269006827193457594075122796633768224377846805214332593697231837334886822218098346984513000104072219702996342308797957691465157494891449301099014211107532724440241191076700979243993778718954303594821016002314074454326004921896303287922943260220867785693907415316994135205449898152301401009233623947732542206701651705738804155144792138055928636918479433893808031488218988356179576096381816733507925555460411231485360259018900221997067417389753081023357200064436758123256955314249964628665950658239402265964615457141460729815834195889095350795827879485852511560185198374833945593504785350674600200532398671586816565074420930638096088647161315920644636261032441987370540244081145491694295302702714407037208513048638628035104218540683810477345447766620018277335019999137724348071003849588112182328094035939717206472744379629338125730255061245480026467466975074413829358753408231219676624348246716717112802377769072989397729505874341876257944466056899678766626233617551691731484112873715929043290539840720636658665863662640167289368223684590197439948733058728338087235570956840859063006927987388012393786903968615467666635840563786188337676276903061543475608592614855320717712516830634028166842693090068081152728983327662267419027336766680135536756560408448778148678204660027291841511814697282375155938623228238914095030414911641079585371864878074601861594705758130676750788851347278774085959419814337032949814778214616047525379916190337258589040999118772393107879167519565637208451023144510729421414660836423884570091758524175306185771065706197304984655096064254159690081675965998417009509848967044430227927738754077458215791510039930981948564636986523423142715805396684322979102110911682916075837863326601650683982347075475237444989191111085576273756398879208976559275584157922627089371711276312528832155691262716720328547236854242612187340191065770966710424680421047137323341325009614408384768730267676895787264354784564499973343621529615886672294493438736201953477829804965898079721434290372641195630230470121828964191097980682903764341417499859258435608836385519549163988454001470637071268805832785486048122544112085720788623382027390907036657921050224484242979788401032798150233776669396769352908404462754659852548218226680205066040460557381399299206216987331476050502528804596728395683809886819000618419307271551141264599643549777006365554543448023882805550706972466007957967831005809619818220316632569437878056889919076438111735697439910252544130912004347704617292535622002400024914236346716518408638957995928372628449100093530435093983856001925922628317723789482716811182662444931327750136533632274999201811009598677964422889650868002772812216005910960263212666484517469439566481709567789612135794303337054595929262973626695737918257442964232295047405015088485579637671058995482809494282256277499260687763266901424304302018251228489550380098834448197555767985240483938697249213911273901663692401152507434890077005956093845576211090542974531363371122758367800380979391943015622599282938341480402072573682340173409897048177092894074133254248867857410521352911313299101764511999296038126810266259672579373455310732272884367751978576976569154192437547256113980791274268394805490353402240563062415319436522806115732130198634172173342891810846767219268908929903808491313161139027759307525293228711854904743773455841187723617540775812890362023758219626594291301323143121118685167888636965120960535709897585598442495502070961603850461529223595357230232931635133833607925344161500382118689514862547938030717154817562663748375864353614624089419519355113308805059425334590584878752225307610029094918982569856590445360013909780819795380560953323887266307506337400923624344548341010558183298292852864947444274456332899171876916404437015070123413398864961408753399851589244863356017743142206348603128207979982284801148696745007986962077725000378043481177098625249001647925086969274439792579649570079698015096861196872048734123973266253750282272076327991603871219900211394278366978656813250613154353918036440633068487918917362718093761813721866627346966712703882538611690109277797171841244028871198676590956867635636175908462860951617121680345327765448843843151537494885111521812242775604732513374338047691405777617471803473180199829127419764275450429669252615644940436638285213466210022139857325694184356371140372039507549807852559916149701271128912516985859462327112590344521517801226842899235016771364573083080500503560929709867246406003263315298095510388713839679381654788279127874230279517336387774985894982554584588158812741258083972122055725310704809666260470185941183738002360110684204428894638285776142362748698688034386617998595339808164943184702462921983726953138450661270281901552663131037497653714277886191113814689560970575820152395590995439322349248416287442189842980834611225552113943504208176155984993127445931969546189529967946175011796917466596475268144661609118884997819041665761707742700607411186884631592122222792611430348190756402032353967093613975364428825180590302915202743358778853264094917160529010319793412717965864371296209270726368225701650818071813037425884085025138794636416763440909603204879757471419233522969273042479310178928942111350034842481719574133961051143341701541910182766011149741805566459197785512397677534230428163746153697285264451648104317948702719980094395412467472727860988244808635429325181778787520797194131886988698279151474042410349350034170520692338663954901996772808026345087984884339141874587189320829723828306868209494443048888442871255352374400055785790429048208187150044223561318856322385941732575165185522069498711008117743686650342044608455130827596880304923020062082700060114827760596217158631276605228743570836959145224692212506168782321483327951684367367113819064864350905639721864979695498610000978861455472126272941516650886256802913204786963744976640138134587445504820057104723852350363291717904040902673781378157321906110678520151813746958168147911131354395819288168159434628227999718565155065722938538254860170619218466421832908799252230506003230188294853669452442080903113583054514520521187388736157779983755369032873585157540564351854656849486454821985481544892558284714618366950857689894709153058674777839336745614540186022949055498162842524007827828105407551434182584359611176893931407374466975573109349241870738363559787086572041729995044583174005590969365133037125060645955170636768816745016814771103318387544233093904236158761925341890916967943169580202438649505565163462038032150377285509002512042782273326460127879935619679770795928644380926801950911732741270670955794633018980147681825569496245509731994572142101850787923132578849248319550991621661988305652057664952397834520579252368347567533185592468393235179352936552322468013117397170868287957932735969075111191813571206492341132933594527832578863600495638224594409204069700629935714213330351674632995106699626023281239435890929295589637759880180822944282281974187489771620287333179784567154979935416547837028406689227481116527221571473154136552094590819282233498467786717781874906058802018325180360706208067792646223724327222919724335095370405208028456931406830867673211698271819938407423622962487901496995147551045266497109802636697915336196328940155858980594904618298200254135029074738302362518320479501356280765444187321330214861861377526129489041211879268673449532211078608288595033586869282510935294439495439669730188358019883814103502083568644629533288856264308590013098526770288376818744959260283074857944266474414035873119539865229956850614511329186583605342557815596273520469468269179945996608159953688526055768258585343367826909614036421204316451599304401203680648280087666301747395414347077493257741684509189209099692697320326363250065808976416701415521992433214018479998279414013312686916881475867843178155575211674455874321390845146205957666980348958075045846540176186520649511595345578151227445109634364522624512856001556585362810306377241083611643361244026763082639248701677557990256038605556394823223088771455511927185858528479803562443564492153210707732121411367768890070391018376735033031736021028687103057109616955984696900314319995695014875978325253322753362726119207008981343440921763102723967588795249332120892284995542422603893589991342014848778799144511329537786963981499996849643874554789169060144589388594293325901011627426433524870889969099548882202054772246290918949675594822084357980374586796202643988108744039034881370597294527360900080180356287587105973153272746802131809962574748911791531495445961199155716172948756206596520183304872023073328616220180608142255599166880431721585055077482280367570815059337838201443426201519061057252918550934905038787219148110533284857259047131008962258145727958421723454699464850259543143147762162826958237307192364986345972167451178720828170981183275554813461570767952736154386983926792193109927957168762570215486334069087969805198194390194659539080304939432216257968284765642843852598466593359670985766231328317317478841051607396585665877813860935304202378586171278927719898141769391487684541666621922810513625072887089649888340880079097266631151354013668191675630806818878862402288996764563032357175959980977341882836970262002461367209828066783571943594395864620130499525357778159912859752883354988113878949044868007021233844028794365577560397391284410274475242476011046847966920809133400210422381614856271809441375082089997810100844456254003236331151883125404404193952872845312772961003181548570272901805277708931590536945465549710688309999318695850227465515866872191273440659150054409290897338161409528272666517209547269488721196995401682762979220127984480918017208998773722134072205282531543088375607545424141779770693286623543393754393781997263521498022327341697449548090267439120574052875960501163060291620240780351271283538189742764545692846491154019240406403716280693171651871097843081868758919475037886273213323035902085188932567277332644785547912532745908215563109843632978272853761798014842261929285271046612463978695941308432832275896254522531912080158205534023121420910289728711638194585924693988355865311549031926058217273765007410956793796459151170802518604923185307996795644616616610162362175214938963200442338083964044535455348431089350504632280762110791390286250312807821807180641549798873521156749874418155716637801203655896877102552450976740233130902872738653454862749879317753298157258087464267656297568814491547597230556547548403020711582191592027940529069659460471854223015122395277020294924590213651907635461487588222098455398951601626313698645097117591159908282307158446955755967112443096307377981985010399216814173496025507308069338001963410796019407540199047462912164674468389708764890475162804774087392834012701423805540469651230562947202767029977764173497357049828150271482782369986266638376759552206333668734783420206336847411757003767366104492289258271334706702310703346294097987530920417710004461422085976804167092727293337197225496464517115110801126061600222143158688159606029263109346341185976876290374253675310103744770781177924773920527100089536925131968195049929264455668207654217487236724277944087260707555597333310934130802208215613779208176317949412426144275852021097743507150431998555980282358372593153707921772318387596130084546210039045061329954044606987662193213475063626474898955475096923281714744106802751346584908570900804756890338100177861375949660223237370348055964215540830547245993385487976248958434858044411846873358593422987925804188840167070023224032955602956254240997480764700749974891911426504177516573006548094886091615684868966541030381682086688078626284239725595955642539208605591768291536985432628986077518188043655799146548877868131417247307198867510396988218593630597563448448292713551707084202928642184108925887666096457982775971646876076531498556625722344308778225715944164113738146985505652345544359138566685490305854484015531964552516230589400121580446413016613393711911060851978610747985957011909390487661326643150266835445274817599295854187670198769573537684095148755852787679302155213846511617171362451407938142958247817981051993799014901170295459511288324372681333760319517093412565365429475880516415316191250044601309332071125625961459076837197896761851749284280201920987328425256210051687071029859003424495042985084436912549461529174245745289489778852963268020704663508396829815310706533335283684482040565149829734320238540308559558054435465609176655819448669195232237610262875708957015714695951694789251581059041160183980722360856195519826803482835591015656592743843489190089466725114632892908988854273730313636078594954877392876083982086979711400600032335028542947190828620537729966882226758172331364231288731505935591014407220763534228442141241448452340732584825859915943874384473588927277002634109721114112302264248851342109816710849448981863567686589049884812899355311320046596533880021840919021420525383007893819505395758293079828037406492557312435552870886100358601698723775717892165700761722909060056675186470731922475795494066456763342350002228448778272738111868899820925007315211335292243890359912532199139063806270383733592012618977263980495803956556827371887281295392407210344694717213515164360205603241350427423082615665273088723669624065201981633167052164786097242662180737313405372811773568750939183892785633422474732456829286986768605963875663796479084104227018970024416827952489326648552962840282217491634313325499031031361320395092218279062532959783075647674455835775838349248301079733817966439312617609577631109094634473670754388921693365663243785091657927551547219962204286218068662412925712106772192629942778534364554599039877651690595013344583700154433719270770510454564776403621804865633880240759195095964479023190779674764695779475190704495455577679701640076818143301208559163465805214234040859959234920310534432433860211120953775548999410132639640242467429893175888312003073618464564145840198208211247026170519737641632436173418630159691136015393351517367094102835355717695881209779751381611604402306549376787410738528653419288837135960482142469366426791462215308411922482454155488296427850150409506101807559404509305683307388766817124724259779291217002614850897363460789346011148221435026018238260464762405665296860386871336897334348331061577199478907758165887358228897074024708301086953651502125213337909914101256087415301052075965632992714948259777921951154103833462476099184656865674237639906559101531501447614193695936563378095322264474125202072129235212450831868456800632954348047426524179921322108491603306978494232284903893195478490128243072086018596398082586136706358027412577140260812826408317334511469649135086204443917356895080074739740787366794317537839239225611403326826533420356274582441718059840592098883623213800512967964465864714950887991237540744180320040124408639852740327174052372601224221055845923906881941306403059215087147883122542471048127205779579789405023830513416950800620214924606685906364060523032785174692715957305667550856618349621347903877896572598438532791092875038145742520702340653492053870322949633663234428028570017570129806309311823543816387271039751681918384462908527716856538418625166790929784748149197695622834509237630997763294734621221777597280976820783565952306214293760009549006310811367213205658595238705700254769660765115904438437139869863192406724356006505124543490639980547425460432572564644872566350066490129540837278977908296542738907567652052918001504763201951345494388568020561822356295964330570623125269072290843016297401714000165463030241375629889342816065565877228118513952759133934038675222044200276666421191658771465388638292136748969852334728044662970440138922104790284333187396240949051871573094347397946751070590992915872448177813327581091815310457337904403193521081159427235469178360275693100991900180287587730864081417617655283176298938910584502354900714902430812429464068778206593502586023248634731827074534988140596904506634997325735125610961955955580630106265448000350109571234059486475916025700452862036043037644096121941175903670053391731638594642777791342450838198558854418236381312589136820079076746100451241938188672306552910495442324050913353424985327232491590996304300298703034019292859615858442232480642112613885445708596174281148529465384017215475454660086234893068303755622434020317181413626094490514730588448624547252666433992556938166198897500887094965257026169026866627580207652339998116153419597719931440315988506189221455605279651760378363930006184009421458971965307815969709906630655533035459563533206959452712233731048096367521381844199456831627841730400751743900268322718409106591253227356246306345739994716552550052058285286294833969754891883546295689162986135336852424361744381505686893490646906955587177394875088666123617988845497162193788092485306060047202980334792027061570931771837308902781370838534496248109014696534322711544948670645555005621687741604473759668885035031403334178843261408107195084251997712441659833977068307465762389165886032144094528242185648726491463419470241952680944308004623855945482473245745956022240604505250688229227258426954274776647984334735024069714169587891645959609748898008182992978463104880661539802610868000768740602683126154949725264234376703724893683406988297925069635387527320420254017910364185960037652922278631445853865575764860138340833281116531502730437850673906325696852588851648242668279611589533207412222980260242775397367367922786406232168853211468952300366780394393244343593362515745124919969477293534020458387978570218268737228446360950003107532772013807608615545218944113401029897628213281011276375457701926751952515465762601260412141007083323102415020903810204013671639092017232836733117987536764494196105706615705544785042292553744855418831819209819042984193048496066242672260049343306829667113143706512780258475021822851687368943532301390432275506910743949478995530129548253255955785073859602463758397323857440431834823578371180176822185645636371328909205495025536864250851682764089404651455305304915280133382322816996013589826831842942785158293146834957924499236001407704420475027432395459599279418845432961721500674828228992883394914792693069795359004490332256797465117625512828806583161413049051465185716652785487633460687334403415554410205019734523156750256774675106369543783006025255211975780405586012717874100089433322765325432810272780512531255422753536181772064927655812524952408789630089182338691007273480984374677194541171721843140718810708639498276830674120971364353062159839646341994645089428198792626776109400752038759623031252167503604967167422664666043200852114340833028030615986704779051672996591322656053550863494010413722319531492120418655252518170377650100545780056567249462967141260954170791553122760227356721218693606089978243978506452365048259183821334876428436071214055252731220261648382301522201866340621710455446424286033287368673049009374668194622442155780895072194368058995563423298368133925638588090869138844408776156917946112936235086131474961857266868519650619538103702838523745786902093654774424187869519428665136735725512846419214371352399877773601651065464214536058432178758447076034030498795615208726118580738707647589429671406267353960398077938080872842402154120093470233681580883341248209141746085598235774604367704826108221313254874053810303615396237535460050100760213358426712648312273318019065010346797995385612074281442998636294330116625004954034106321801145802223593910510339596378006989222647831240698482642995011393549215019162663345691607011701135404303910955582365512297397595397260097626409108488405314246787714130238758213557257786474621468337540721191618494168797107972687181368157274621994470765694090612918248229296228011714735727996808791999875427372294533085903254538973453779730487537425130368167727942369448497526267028574394846979483379543673740638451935200775425051169048718015293972253158000870839617582900987118391370528152468226830055752321061165074518124729501858972299698673496818705147888236161910024971860495937650173227726487085581060183504733811474701264498025975081805686407040286497067055342162794118417486716504168207921208826544859822714483400793666919767279063120336919360314826506175620468359625096319451526120327530694086342640505239192424178438584047427580950014555506391812089099006439361039770450785477275854541017436839658477673482087909246212390798310569565413712878002683804006617087676405402543628438340888873776540916496599301021781879223561201549185431366981584378174753515972018365952531679845526353724363567992033405911742888145403495113378493583767584003673081200180716286016913999271697932137998855175360711242491918664475321871113626231509498202649591066597328800416072063021742632035943491222449285547278705424587926197062465030614266838078658853641808494046227330188465445343870266800354067265093509251166660502457660830517886430099513363803699899839808806291254012096752631025421836923211016582491794403617028330948061417092676392882492117936772877067908831363720654324605541550647851412263939528393255570042359774012842479067023548799062161113513423655595946280077113450879319243684401858684445946174938984198633655150733331181438065514959401714635386203199130345457598375459675803008676967390315825973224502671532510380471754130119474367334201642119123113215903613300129468432579551670199215575981079904233956808327109840422283006927704819812323589973183542714494508098040633995007438486391840752995223592616752311727210820075301602696208823102236279749332369333796932551440108083385215798512699739419169994788224218445960267779432110468435884964520222639526874276104729023544124232512417245897589017506571371916720773466274182285343247398232341405523435602462200220202642503377643234664614264851833672725393279462298356240048507590262690497412031015642595908489272809516422946795379325318097718028963018586559061294294966043250625440932404728055033799488889395928817350978658964250727337869781530496370327206232576512958130424718738206217351149390522031820004508760306751486658572426970522090823233035957444065690568528017961003052310354357171397157116267077164029783766704209833123041279600187166927199934216814647335941738745966418745020620613065323644001532426385478422102555672011698385250156281337276364026672079046262757279210295331104456583582176882584571160185837868622555025931508104993040222957042383020949164923244389415941979981029692588874089967975221739959420494197631103612175651727997452839598496841847370111849936250250387569156418448304836884534074829169506379141102358439003111834022062576007372996572193058199103423766244512475172206798245995748167421253340779989984782271840080809302789073252830299084555335877311785856700937968519306236714105544060697092968719042041787185335590036105322901466766150471973504088356290392134164616708347880944723688993244461632891017554963582778250986372689465023837898463164190428706945949009922853975847937022725620837400135285642654367483902794250271948893386287076012248134244763051405895239376027087872629480252180861145154783178057781963239877537379362959837067278572062572631938886984320748150487394334454924318516236496405781972487729009567602237545520056363187749530260882994371009252329687793224049060593857235908588112322870496247522639816476295103999924369612897463258689399930532291168691860958970450373261435938452675972633056130805109372656149891325862863417315511479349541210184118620184437225730433795881188732094808452616796900395825193619087905416427251872526515657482821742897053106287118665763703494361614955168048816892354360930806122851463809528181043979420489229063843815934579348899948422071072603263770693814587988198616790862492460398702718991999298677770926909961518771242526192004126438810788110709037164277358810822226095272905120484187527516629575478704530262829326020135968526807790938573508645013503208960570884911945314663148259785096332748442075257263820852329278984660389993895300005052360762287198474375570074732330546144059735113919503443217614934081740338335297217525451320458260285068325611953933948983769003436442635670848582723568144117818779046888620931917231401573619649021113201846689064930734561718844616126996477504422160372909463127927982285028903606690807150776285042029301262848771728811180065833396499464766342530218474693051016495127182100312331733339558752063676792480947435387750151555473682871250937631218527126646561729929880134455062685891775656748050769185753110108229956542021119294193158750958868607313007450737443647339862429546328300368763551487744835485647646337538746156041450359965134577839600614160942310710505805475647393869595669497197483717475177751559114899896696780351758405659127731673678739542826643698272103368123925049727005357326733622806935155338991518668545482055720376903453652848292208623894422834887205294366562676884296790739486899354436183409479547942425999396935593002597492679482715886856974478823487954070124557085565313950961205813534654764975011528565918764226137683300374291309974441864949374221383362354507006241920296167476328248281695607561833805637617505680114119021924082787109288396182421310255045791039450550694734744939185680715654254996212985339985491725395230642556448682165023794939120421787821153458701756849230248181537268546259232735194899172297022768190944516774095795297093818188967677116594700208551842277627465904785965435382597708760962214944054083942971449590444876672015904522738078803608026875397289602615741017046463846833897365598895377672193081910813405100313935081640476965037792714319967740630616634845028962006380521330070249886027887120885391526998109693807276171897597530018451329408931818182308553236631944529088340690394419086862601888692917396300097321450797327753944116483286765160572373151533271025970700768257230500559212317833182817145670225831004214623704426068495604907123901756581305581331862290681899984901629131193739542026744618677474594535580256771184243389955384748741525996923347821183515211608284253018481423539902208446013413677791630835923985214484208169850349095027039055805892053766922405117723051123649531661649243800101583979916869195231407626473779831613669311486151051538667104039839820600754539989695354365064811939489819879587921126855526547031662703729623440700217481646751670620809072287266393118983190947537703891114344738327490920165973704941219191702652449429377236485876055130749059382601246470200120479027160505917773013716658154753103014952691858164863887349053200219518778938266417132239019299800923178573148696807632133193426420994837182490469265459987676852153931649712810233533135016232348533180774948701450034871378621975024671682576589961467540082630720078490789927576861005029286852215297179934380785730452622804252219073593761950826282101922578139593915260617109215201636677179907730190853603376394332551430503040368063626301876912148167274229274657681931919063486984982190071222016094533712600525475039358656723032761074693247339931936921651388798378946760794123261061389085781897717518494634689469108995421526269777989559672583451390811321891539893769526762609258930747131880826006352927178573264361835759565333911487917786648998165891139803085768470295121246351381508717029681053192421096039154776404766373866071418955642683638756748346285332285166649450239436657667092261580148361003039545846966962527147226734837252216411517649123989904429486077757330620825163466391433730866147308589949121483826878646965045967658616430871171028069108117586851543369231287856788089580926681102438641218893055501472357667015507611247051107229237266991610942191066864777292095153082410083207038941921351681766342072739832890707941028783934119745271460455394527109874769414813383236496046214424500717648147357235693783421918509986081501405205416433194874142110336267227482317993118621131425164641800121197730502350627884407129397095391681427534903034355467404955822107969072520627389088311609626898734605606397708649891900032703745718939380937298923342215044355386151192537986589233585543566344806873364029334332473446434059523948123163236801209417277603326685060162747182615252368510002565955433994150360230714165250530372135715976629341962470488746310510596315707822316276015452521355107792227055239176326258553413877161189440733807229586958228325449098344118200469872991933661354618719897274565515024925819995728954874676155819738840981150031155465124512512317828548934931398414876348287311135946851573397677572042289115620565797803949203135096118380224357795781655708382907824606979738271439208297288864995236673274409938491969405425912614018172956958429063046863310581324098769954470399503272630217132401643201345315786804534465341166854760126090967077318991412458966694907297772085374008636650266442023964214483107058780839277331321177897513913522189990990996042033309858317008547030227510216379417572715402488798244808005453055603683108043758959735087921370544033815712783098710521546088528170756253359601404857803266679111471218935588128728081003295754216335859648365563367888984113950678639368732184863007750839949002447017741746255499813815440694441472132473200261267440311720992610944878063086771637692150036916690734381762449737368175072707619656543823589802013545228695940372794863321739915262606491093133066687320777209150167597273459030914702385927864511781588486657504804514114756766950513672460832294444150507508319193123551092514093548978616787230132979763318559321972972217990551609248323844832446747571703670904719334286948835304499452743437402475356913383409980300752192330973757230476763152987007212991953740245879754290010664025567179644509022315309410108405097841619098420830806692508316443435324720293559371404096622537059615786033334489174809817681699870175330994708840266897815673382634541793653630904605874860121549216274191766391046825965012219681515962059203848257556649933325352069452811218599162115632853384271468115171859528585627413544768994122198087792949733878880093126392202370181522052297830818732464571513182114369613913839443993470043725656309859712142405560439089896755651828151837409485560196832884176774962416935806728807180011670927739761915877521218346952717327773305211002861721759027514809762226291184569702502464838876573192627005061231797543604223827222585085536458328339648824093147259959653631192859185960511437818486021712568084215064468526072833029809405939648032893058749705507884585783161353035316206470416871310804445705166108553585962565762467122530389850434718519762466348662667234055490122737547334653802620189854409358149223876711880250138556542510035390334759284794212470464788727450292654394891033298964957746728510979823055096354010523343439786800549097630103815124556572404315128039678680930042960059430952726042180904135144604628412326778955870399953249152438548833880464594015165124599550989289730136347393033408820857370122208285340215945619335140311801538350508100238548871997589232364459248153981109189647489950215549323259339223594436023173582578937455811782316288380259979803143169340662831781689312703549870236932275757160437189529387984237378027325301392223730571349245539449376060661242177906047361292585846411092074816121531753241903153391202282214137390817076865329358098233861098005365182329323201479809097415521613193873118841685998050567959601086913725807605578598438598271406551087902035807242188581391405414112277133668775393298069403251223576411486425254441307476715604527238973221055729637626302049931677532773307651836405076112253599828384019870595260419481255103223811252822502460771405931444591219314602640942595516412862777303617420962870962365824557741162257005665039513116364633869751426454841109841343592914540051879806377560543203490712170072932998615918706953837157084120270849003543760095954926378907211318328788006681433286240548956988483865724331620985570692098024088285092169947390434835451126889844956059020564786194160089713350018661079032372065478777495205292306334407749016833529445820107247908950644284192632601316083225636720148570703335422266172901577625765919551945020373170973455519959455556526259046972652113719439456102391946814243038375263603555727212769915675416926053675466916034460785869460755456192750428602311934334024766892224500460555030756059180929475501651854080466038382766785315725771625506293828122091694670800436707090406769230258820884958469425861841056753078324679360016436341058652171548573362782279570070377989363529584748988930295305041041939855324323624660305585208372128792091206021698694364559259372882163597693200855386114035159110965538848322437714693457542234409761988263682196113431235442790439068407240531606324479596390833210967625884941627326988052130194229699375053927721454985355322484446480311950160685409432676784957676394450936041398614823222950254444861693715838536874408692797272200802330686791832559477447799312578578535544509535896619752540287367303861631148014120143204634975867993173190371637216925684562623390788590508113323880350123456643823777760404868735586652999836020033748304758264349541421678316295572252448900570388139561015207887616500387495042955886093691936847132217785475198472017257544242854021605304866410845325459212799743291026510915571752988877392867496428581919011066881811925146400123307367427419200950177222100302880465366583258045215501154309990720779473994226054383856142083433597335228863765760335437352974723180673057176536490951441633652907994861128257791158649337464419930791281944445877486238921226390548437385700389009865455388375562362044688242739584122063135049053556537743325036971881483294490452442705234194234606032594670682277662140110221406471301853857678928112229033230833769019300718413947668413741816568019052775984569875131305989038382770234901249938834267071681682257108215383104380524819853975681269638676776548005320060066628947212967363794595869880295551807774752157785037364537379552108819649245958545713921370525263340161569842167021406350264258644598909165051723575539086549141546023514550865637633356562979149999178946275227689415405763047841010762763660245614095082758881759701443838444432494277106313490404317972135389997545989609732494285399412788621227399315291312924344016349113683373385271241073989728588983912430285560153872838548098826765174487728348123564652209043749221040385303095857505667893906423075752526177133809136725807858233593737911017790587771220654961423215437325342310248073369451628736788174533387746460727818792298645923682051487729116327431628758265622406634403639388830836876377322786981533879003423389080313853396962977409638998826924498482185021708968310867921673747961354330081531485618096228191460508264664903976296121387267147026594395771385906716525339765889018897405082714218340999391882931202689738104856961166612789435975168112833376331480786299069719007524752771309590047420361653176845194832103967967203094042371609110058464742439138231505298662921443956480316314563788736215438761387502314585150758115301850177591682278761561653318804694957700580120919203876460241072863840148396257743745590071193708101258783037692792313201042967730661605735315353198777338446594633226611780788660277777300591547105345876668487893427597196802628452923896830019829539859265042418066695919711830593150899282421024947029277112083912844687567251035264081465752755983758948209798629706548331147233844215293742517441340168495767189829969772848855121573211847606587675807533441923327249212737108299675805351465246156389923083899827572245444944585553033893977736980010135388627570848181339882928008362674626635808314942783044814026202072791583741034381350472431791876145613088536064177625878055431252967975468796242889075488737029224450236028521301728521248581144746286844541908560403311334545819503330595355942880775092412985301606102026005707284173190767703948401319158124696626383133140522939317507668300707195951446897956363185742544140907541997469701465180857928399579314622114936773252596578321948162052696459837849780225310816273788244918544241509042403377749219172574553553655868378929101826290072788899468243115556037824951714456538522348454060825033751914133846967988119657872343704704518558185446676329512749424721464736448403079712492168072915844731252911776999978334419823334746920925380088032839291728683043158047879087646331404818388626771388691360094039051774807149831054222935178461606878108236907491075878619076136023929819821550863915782999737601135188906597218056792528615675079373308020652819532076492187395404288555541796459429292126283436177529033743065439759673397460776750392468042015103070267065615054132487573038976822707763810847102345061310650361972419596515879863837910711993938150389321785422090459702186785744394489451785731422713693626220481974393359711727456784509008835105444639342015999237835028781194764302131541365076786028884581307945540887747493287426184289565886067566728469395323135866119364386878873272724994701959968165592499727382612066064664452425000900518942084389003864761842407416485722915526032131267712387749848051733643219729262938942828279277548797800260707286496149551909419465058472215093358445056356327764003740704719062164769998969977348473850450357928898317702467262584301867381545361079876491688855935949861136697037079251511515285899689681192212762445254728130219340108536842792248290944137663874149914015219003074572795270293739213469697821821965330726621953726591084829435394268601691412369077251099714796372180641293988021773707917939024678104578520591243220404311832769457138103452798558912638974242893194245503694046193109766393824463213962894061785707427860217869228028409896218979696143835150034132376370842396015693182985468713424347381456154188352594103984062922994205335827972648787541107130973653331499654938188512917297828943049874695197871609008952831799674826831148231562374176738013731562173861336456822353420194985560287368759557386660308014247841195077411744118014434714950811761045368024893466914649044763838515527227534966577163397285437828257724783962588955739553195655525254379653920661686925367252529473354478131440486380623934628410259022743984189596931097112001883275827711380555468786988019760715266942568824735195335784187362717714151382733956419257813685572270402968797371514448231341656237432297691924525600338831922256622053129822661570229961168325854024998444314819863433407474633639037442827291199168953580154729442672024849491938933997882749966018310427097117244828971658122501183306018329357164637854540986638063211661962486167621190669178933001285234772986007926018502672401587512499420549960877530633775634324144649905447999156668114146591644611455002658414847097303546812431484810235916815960381324167478206130610342388026211333727623093476430329930873047678327191205329037112623542502383601954204888530710902569821048727988629518054953659285094426351639402231735430750895887383091788632195176861465436997710501403100982433431485416239692738454694813326819788131170512404987434676197388441993309966388190735048512882829132429295115531823435387953826745327142324212142681533923761781854991486495745231948963584726729234935347991175753178563027301267840905502781740601594026853164109211125503745974734279603395484940104754258311129917309408858027406646897894876247514915960066914357645455333571676536702668425569017309573787957871978037269746842883552004973456192928089251663568177384136884332644626265005897020359196286385173561575408356227717530324441379831937855800909546021031933780744146177480935561830099374147960416346313735302087363054713775838757205456134632679038114129349074695364650596622495408256202744357226376559439175360977854641222408842080564741038839989126285421869898223710013556245821089579709022772460434141006312472101650624808946797535367110602202089085611935587520557196046675122599385431042391014347163372656811550736883052399900790749319096287003325352826474377076399293332941042364763223144624247668102446413774773524991228236080278261681265020059772096810211191037408216654947139758681817780200030746262794371723753226651692215924910288817762997420484298627281159833860828378259232101517468003659223068807670384443110994355594169850474121982578066307301329732833316272444263454704425399008217875389548647277413498183252617418794773768375591395652912608760795579888666064065056363286446932682232476551023837529537693222071511286606978857165783115826917047438801863956445779394880129508344560819821368117547128067441524858991081345104713022350718027557319667396588828102616056287225722018715445748611816414182014721566451188205675933606423139198824784406306579995363277800358878980799374611380783715351462217498443983561665588307712229371487593098524723628783692594867104589194832552811731042397416355661273289749999527140923917671370411070241959615655440008076271417871862822653793090308919554498172446419383156611054445624367641631538362062540795993034133064942908728608007657469395517326036246216525492553435897953936878564953102710830715872545252623374213941461054534860366253878798673975258367634407153711828201103874478869004664114142079383989928207826890611383723040759601998114170912316286300572086879081974558781173917344113688986933725671188232592216361064222600811305322069767089328764550549144398641354587558457759490777134956558989683300766523517795943975192701178675518745968025771151957460623165152896932899002000272166156618131083181186010366805930893515084306707724124681267257661309558902182626253917449345369965326301174273554365948372652075495312187425313650525159208016135612064406149067464952787603731150532380829019970654890887032652895980304502897854294128361268625378830375542671514184441025765635063904428484570045682674890212319613983266061152130056829852318659157820988255807078233730007799758064823043130010096955981316430867254096776502532478705027255963626369163712324685357999010350343497742985857492999608184138106287758583621716669547062693170716604535888611664966487118285596601409282748485292774499248268312131884039111033562348239679224872651825136279935418816229712765510423816776801300967267664100001875447359259573183338947819213584928572435913800975905607117401538383030877229037437758232019565710839478169050211211421831417913493420140701761383391733849017806229969303662192001882808834678256473185933442584989548253395125030613121938727225079626256746930701977471813252856355575568004535018061190656334256586548252951621884160336516706959638865761183364809376490876067071323699924852856781118415058862581524124981564462381505596263371976656130561429632976528159153105007882715266125740107910703441685580491743587332641985106618386099482654898341655673175216408866151487164613360246664991704739054360769067948308884356023301404659879849875939835844747801302467859119061587923899356254925102926338404780076812421900543782854060165262094876636566737672398688508996184134104572317144100468615753220474701796571854154227004003273981120010155042577302385608937124708807120000295947765139872213209145473932758772734236934026158696401969124514317150312291107116685139726389891294213617141842360638390171810165280301535904037720930702905626588212201792381391906702478407265070926390175764423771743300908456492611390261124811757439026993559359026115427127621803396445533912076316851496756353786394757430254973459677578261793960779156209095707710280708635680257670311219237218209723332258380776902963263746474272819200950168437495070411041327672371829837099808950886211662744214214574223055062183985269367032300462353657274832546135412985248315230719074226706809059184439228976636323629067851163091653151456122253000183811721726934447694328750122899519381879014340464858765510023896775330538503247955658690905735784416396542231345831853620844200808864230490477823287331912763108293139028240173950584275009421578884416853589357275785378080373762559603822268488916938101829502855715450047815880880050665062710503464701105856890765193268125163685997928494210503571834794229006684328272175426423060218218850894083372639082147276977992771175657558555156810969382000120031755059280603193246789757862515437561779983476663248897268778928753737381115128281580061226040456441897311749500377170369478302000598217933524659424020994985813009807389377090560563571282740586118906133111819776107879920610997950032999017868497540219947013668353817035167725458249655457887264342542691481513632163784664221194774229100135430846280648568609040684395710877208205592459254413680910420328284099597490638330383529973789939250799260963356269599307431627407995867662355180936780383389831209166769070798697632891303099003790586703096598053034511593304456295312534678668460898366655965420682794331305735610704395437743762930815108736349244137724710962926318766538004940247459747906725720565151497661616481220671422784710627440820255752371232000397205683289611865086560770977741038709444871260290868422791753066847766617055654135184736178985050656884511328773522186751472185596386148393306869020822842543242768913346193013993602922003368200857695270086015204873785059167234968215153360504339381393292001583642235036651948353141638065572796453397328447302604079918775505004453544069504906674298057530443019715021515691090482593424728313323728299178296899080633932094100969932012101929865884243390416547470586996258313054796122583149595581326050858425354626321539770277262647570989307962609058197030248040895305309335679776342799887702720503534689765034197726635462009473096460372148129534874239735252335984312090471313964334782237742008709023884095541293686265361841128195719938139309142038997483817978469676158201120686037087916208792071375707321291106391709770685564845156483835888242219843045410736171985490639597701551936843923732141199922466031114705729954184995782747817753615048310871175210980186951537916362762724551253523104065612490358538802262254368900054702550378394790640466310910374999243672433438025595578376602573243868481607960860594423970953990394430388250013305669932922029555663774549876053254498487406017353979394378108610919314661264429567542229559556463526116614422438108435775614825747951033829997011661400295063521614316617492814354533080127869261850580275918307262211760865046149013584605555551988038992171536238949739030011655318703915438517688404741465027565853455646145859574984783715192172905669543163510252003949836284762781226234542534964182806661813912284155270918768013057514547773400485063261165722058673800184550401349332090495655552211454101820586546572775888496865240381079201052872284923932901332380003626468163236682821960582446359004376075986650092668700353823833898834905754797950002460633182419884285976909861764698323435983708044159489979966061308357444417122466349210327951948610425786167208393701326838913907003498878317229577286260290161329801366679332631712218347911601249438857868581921434538415232511161000759523036400693747989280260387302396087215379339686473826026906167003621143168165088749403190037842872749226483982956710968968208166398401629576223484558227357857317909629431849109978675692308572267565924717910913346033038862080261837119043565072297177789351040786087435079253621737195867419566457427964204618338416947864585345992319387996733275902114505032655937556884614932606072213437615881301514541550121732532832846417303137020192180671169373904584761484026314133982082251895201756452326816771033821712996510858677099653496224542790395077242891334589050949785881037220575073775600808685775936349300860684322116022804539182401526663650758342147904042467398687680849200142927428194666991244998200589118242590685836801612516858799897889459311181822831279970006558407477518271646982347791562765709830388614836615539641511602947854080425868004060403211434331298548138513347050350362867876174690087583209461082950804691490644728022905584420354222092083972565719443663210922735489068657657856241870427460366995801939307802775500579312353838966144843018357377685575125270756108927695489070837983864101084121648943755958834385382313036309628281450363784503348289776947590565752575689531630042795185328241178725481007223892941433299496546720178862307440192162176355663235150649555424563625301728842669311840255654072009671141295452442082135699978455493581861671913450063581861042647456711441737000812625636133456932921563687478795625257789891266136133287861908252065000418254296457851563502119054869836488858989451472547520872919695282826649500055759966986872250603943677684346225590132688296639168159954907541458659676325106223525425694236664480631784425174361408944411230150106869663897348087799519107003784960458583524070919961316093026870514454340299915125090771790240289749270193453725173892617620288925110854847499672630247592439531343126627413160266314559204789034791603898411990988590080634263719739093571162468987935451204983827174004073511648992927017194964688965927221921082859944082675300723901952468030452340793092670153271753069130662414706479705815774711270970737184188687348234938703864572151050999628881999057346866905331410729881532648600588981540804459238674214978544318698149870681247161331346493140484417728344849727338907533461319420400151484233642226767414315689161286014306730944014958047550435738439897785727585799928214556715903461890551900047964630042558609857189584366733389439138020733908492138273003307107702531307431366851026970769073003411934996143909475199017587002787989856500457338712827936979453281096536805528572993847837089098267139485307333850354980488588632199227326451419498114633986928544913560078483205774449662057116239719055453094002895218364003596048535543349657418223505335456678026664327155452029527253565254232473175077815929285944880863164587810735673585442221312156172074955852442856564337279079932380629574876689683224516606005214901562433265415726622152983309015129018917039465100809093682217253087313308272176649323547393609336187992670800034552212593603762135812258096410390346937513555287444628002429730668022941451257129189590293634310643447896684450678786626125529844164600350448973192255275698542578284556346047652973195327322494080852877541712869794487544201106443890045970972444210454179444782004948355561815427479987855174815955885740620317493975530451525237816428073646584261954067788523508027162684418057445739294742852158795226435065717655065120085294720767165081008660448922486863359496104696558888565299005414780101956686306102988621675814380052992753826092479163730933306203894117519683886951229548582343311672842999751821502891839423347573178882533791644834670006035658458569812942745726596953063467524286618502462333761135390032622917375349589913356980296346510649568217252705634859293174105904050061480210521088085232856137372796854779148796783134555872492196146380666719257627692479750462979615466229298353997957468057627755061563117696053152053302431930351292652012057876368447907235636179631333117540378748872458681503764314042085537132076583973300666118262997933924461358317799371969581552702668798431761060866221617605351361660487752018569538852020000692527386351972917473804588232370211907793335057147948253217577908810030358832515126769102568307021201315812619393550340402542197525159944098342716761786281973083994558677303921388923687734340337518189045195283270524731930302507018113798223042384752981766945869899964749193000650978333958212608834554640245436744527207025351268436055214082847300576238133514689763678179659063449583042531553729727881377278020586782484391627205960758124298719372316125303093007712880427949769093226204656244672286199726070699452947886557179023190166593123215216892328692822286923616576383599254067259174949987510569524053239299524128016094095917460141678667730423749376532692004077703375830835674510676975413254227242182704036606764936701539373684314633560043867734918736170903164726306326730026320393290085736277522606097296969138098988209507904835001242112910786111718929181891445127955433019593375062001274171834518803572177402322847365542914701311964643678528091294277433719800898560881802693405661524714533578546792712928039526053916317798053309394706227492319163847405836774879949896684695854739833312822309669873960667218358246991208081389701004101864493820472352918848018800438599089097188341185320929999786845444373451706162185713911740430092448555738740008807554821468367941777714620361883979248097256940310124864710423505106627939587046629177211870288721941403918594953383155596041679145577514757857154011420807234848363064670889669728928806797274963509271463876560907736615321600328981165187773770878208664681216040214643242816291307083283803992701884236833732044454739383215629182501676557933892286371877473625980411224247126526804739923681116944709615213391542935553734701256977118807875886972924041432490842851618458298609476317143759122962111107047524367016200516126188450404176785563181552376338429417887967656020207637560010899294638256809144721782696393265968247974681887220330048180098590131081861889420438687419862749561845306880969003548666079717482793165781595527939464511349885641104617648415082523997974016103846758469377686115564385540375318281905836215978829633278088723898492665979613515492551105625790233431992013140318287429637864583722627761683907547502965462945860376780425769285479339185272438907238563535129425042627721914075091986167030015144052939958991996078686330425527327730506587039874738641930298596736365911115773455831787377751896692782345876857522993042868552686671814714014796669353396381938038911199026243533976261221315040314793559322709692717482706798073175376827602488531177799881171667453420243166154700837926035657922794998203320640369530128959766258873638557687454734515694045277717408433837603193454341541388686614937318256883679608797817841641707622110300251014521675662556457022489947651806527276848834727846591621720867873843716338848416139490707859009991593665588703211461130968110622003107838280347537852141076742238076960308893614790722893060923520917009171993750580534435101510700538213394226542560188507007043335712002737974648366305086757267434601809527204815183315538040145757144107326405074722358252881080451611971529455039971609449224051702499530764283567548187435537007743455732213780868281643364586920517250380005738274407742621233484851882660821993132975508926994646758310742020673011299067408784299404304740716218762368344371580379131535740995239728473260548544249435124342061739331971341982302748527252863865319344413940482900984619801820398750344184386704259723328934607491997688996767499144985269988439897135089263588991341264427484487689135714486317226727927267450122039010144965106968586946025062084581971811096790428940664986645133028485640434995489939544650610938391405484650371586591224752963754398735633755075890974014505108768105492347796354411015009273012613559177101007595155205757475125315531825638825878734362880303480044649289112201150383743151114695872464516016985811094673439170693857275969581582317523631925267217583343181992425689807169931997905175916525039293066724238157374561946710101896810216810771090646377294463311938471159628125699078021245247094241891332384104277096885440734125724209647411844320749005285650903912797071630445972283576886201729312173730963387970980880570018649625287749429172230760339776201960082394235595279812857950489572860902126281872567432804530367286664102986658429104489108307120352594600299886482660488229655180868104486201218383067732670310497400884305823520654244755038204739462860336289107826164982118718438565819147695383021709279160781123639364327596151628855410328894320003980523327044147278978202992458757746251763690150145681995752027592259685290274092808327890958755715348989794357444615142205236607868821500284635229251132498393698371306497806097780542593027471718589843835069364883408717222664702514563897150515684494645408664818365493290782106726034255221730426566695577885325639159338784689833420541639183948677157965299484715266666310618933711546553998183762260266541184058761929050324158862337944031106038473994848840118017610104987049084023418786492457995048585630034876897873217386760809004412051873775494974988136270519567373816869567628070434827252480591621518554026140587919451617236439973456353126019318910429258718037983438030025387546567861309245447196434278568217042525547854554270277365698685859767082785397884575952080616551580052029711826844181976616446214569069508106917658827973589108197165440372382295846426431166478551845817239368261682261901147977882740885447593020151211535340497748714671943265751648877730302241526250694936086170954493769416208571839651205147766224345993617111378076654636190790197778098832167421176671361349881037849308058702709438478125647292601826839919518271703159943549518066837024952421709707058867288513608293793225399161239730964098092717730495621040746259529223392224016427005025033516167503396386352638673049061638530293016967121091247198658126804111970953221593791670389178460022273895387684261038423603389607957873102890087434860235158538599350614297912136342463926744486053451634180293100162449509354264903436205848389159422465370705037043670603035040746308330191795645539968446062473440136977163435082508005376348552668306118968319201257304726301994310103430377789403459911699241076678176009935884205034850124243521941990503018512834503273513554802158472568129440602877640878009175865385935584365974866453048635084865090646152434790351545683716185544717761244403567080238571551165669299756272500561690017479547936616273207334034403666740276441331915340916204730631396483350332211765878559921933126883106126896289538306263303696639401444062881164808721673161868995457054632815534567002092259836365178122342953879706240459052021596818556853857889428260783564978729377710974272329315610560572197046121938789340559287512594290714555776742602505166903194401994791308070704556601504599205061690955815597702112953365045623214882216260092029264522705221083418883771053653843131330012901368175656384728033794170949337415191134386981501806735099509829174336358595220462049363716417823588092741748526650830916880308595472579988382577116200150942776652041792979323573896640091262411505205105486274559608989655273326166167017320937956362069881727727736693544289432596594553403830724101210283220382680849835046845252034128398213343465927679497444087396040695733228071980760755450569499152270926995741711913103624139838633898825336297609580753370196669590694096382940635461744096111621431765237132987746433670574945912572447668648208821754847474883028753090746486896851085840699304206738197982081705019607925501499914346168836568326346099350125147807032753593316117839368387641685597418332990737520232497582586587293593087336344072461533009508523979267203075291466040778210122219604397788924598003741103098197192320485418789675233093267264630003930832993420990595550990922864651109379837688313519589892568837052312891642389543407615057894586944190794117865760068431191722317375252953117771247007746407885644559746842574461775409586576868366756894515435053397163674841260658417606546225742175231047548709960402609069771632734064415171853972872978266356174449012856591485927224906708334187454675529361036840173683889085568601386351967981342810650043663994687414253034231112021242311495097849188460262729737370989016056446712427619242021170715502156478365808507206773075477063225356418704273788098600817033498883940135271571308938217613422539699561315107903835831028601939465303383030131681718790507988376095113739359100609521884440625063379560949665405955510594840857195599618805248694907911847200799587321986348957763655326907013193358509167623674243188288753705526809021669481395131794505396387369814023984099048104568818079181718463810806317931225330250129731260603590601433366315751701369765772509156686045072802817860246558570238109448536984172232333786284881384589992893485682940164369822448139963892587851246453720648815027796321385839851239592948568594189020965948282959432204558428063653749828721041025848335883915434519470942752623215137211511687966499238496489160741944982786539156399640290196024735324229208966291996464420345603850473385900768516172314393972835420643478671094070807204726464708001480742800264170984289022597732323073721939024093099927598935079742453947364279628209747114366527855147169046932313244676333065930490945698271652086120705697055543137448863282517973185399614958014806790475374385268764448390863510576121211302723494283140228520733088309106196882831275058895649521737959105184677484316192445222567550328991054627614215542132220872827222201893551458597243180490800601484490499052564253170720560493345162828551509054437175506057586420290622425138924414295356811981759733039318528734868938782591304194617899184003843029295740444538832409396840471480440679023643981679831879742353449097559536829855537855657327752266099440668769762701078577018418223550080687120472226294355302821572134576813488619023045615236017035675494941840300015421988757913128199487677842458277691869217415434564922763233673293450067592273133029186165591100421243028718211220139981648008349719472860277782510833181992960923449609561892186566252180957229175773031391206862887817951688356457817427147128070909684257749312169605109017309345029866102169406671516750662073265923103288234429859141799911220118389806869443338003727021609250071882474374719669828401435596925161075878776422511096569324414522661630916309769437613864439379288452796652515613010279029482796766193806941005785918025993003617394030259078375502001786373781847202478809830447639348702063453464624711019897527576201644356286225335375694296801534478573455088819825905918579513813974103436991297238302132976799420140983866502764830890650531898094559662390767945462915517748789193403028987205014954459941187798293600118578366501243474137536718794956992721210173200641537817584391197132278484259998955485595328070292175274170962801431318592810229094999057236076067800745617497521435383342991642375539455417793279093613840191489320199122419448628933769445226551361101296403186246666536284494065497886567298972148201082903233175904677429255794967646865347987742472474065522072817060408247448837973618026981101589995735914940201928514429803705753058514157622811820970981289650781465710027882791458564590197542491731202457496884890125474075290239604214626185337197469911766271945551361937436799964032301918590280228204101409047225753031255730838963143399067420018594852947821741779551367372965309531327975414746459409110371839112190495259169283912093134493265783501802984860913261204026833260049837445612933232552588916433458310537136918096346517298998288173282047805434364806627347300614168760614233127973240106182312686458267153476353967514774620905756279144124757400951198797844254027076413427512148927477264035498179197777176811661569247970618160907996070707613232518798434503924017745378139656108358260766853896662580932655239086638863165835515354620094705298177677841381739311306606237700402078736504286199862126050703205827194986991186955332187718633326455965470277305764883454565647557197981630201876327136945080627201878839460457515317034545928973999976097014656709813365297063735417651102791763793126712447230402284599161614230025436586099470568483328424609449123364244567310300153607085599101205829523690309132284560495001695851606029249500364922218010186645229809495623089721342886006365316750935257311027346784557421876062135058297587111341550581402349475081393557363727494630236177153762574078350928926893312707454396293256772481050228955683807542548146090763385845442498792091198204262016961572616035216578385950703156458487198034236688224101807360032432695025375248193398179053388648072718304498566579365910413833461435150539718082029792436792010812252502549182149144042207645730886485799366238009595159373049272741927306621074259190121753692467241676303674171245891597127878701065987838607628296659950086773833531303291585128648741025033103372716360372481019010360900169733861844052619939657336432927153983247752471877471321458460184786210811830197447427491703751994285449954830876695035755025941743758347605840251283315458507571580183997598452477710986676470841829499950248330851853123560105672616748287463120424476000607711850838288804658271988537521850944568948810047181477650125911585738258394838195719797672192748015962955367506703150920314099801057218592645613657702922297118328281941240085317907792424853284327302179352686183850231059348815925074484234035856813189342662881527784288568275658479991758989050938706791717949433416978430043115750363619228832173416811028790284088897853801246760019751189385336688219482050827354442746954658550877279066468140576300318732645096384455263454365271195536015216555643508978583089480398611280177924565222947329939291830339262207526986776922420115608056579560440275858768086888091557125809193700078606061517672908298955232330394618956830263304875283816568059873382309330858035257635693145115045608549052766365261954550507224683865353183932060730822135474020069572595290014445852176588664543176966877874282314680917937072636345001643471860143705423754788127309162330923612390115668047714450104303114013318632917633842248120647599291157150801842118997291907491502540313423974231801153328327163528801136542124694653456725796542325603490476419208583469658436883658536322719919160673103438625188919590361376753676996121269279246197160777052622213963291500349492875168731479278929877244240110179393504551140816609349790988874382921626122861819160575034406612400728446125403308921617555841049265242046376731653169107437033319375645560999779302139878176424340420737174289413923457991638808027003534709906050427804545190167841434365339641694764770378963350225592111017240905257600570069513529726041645121347963617316586772972883254405364232540028801570516527439049737913574974234222080743019578728490840096512535970026202952047386264490047206998926142200920268071210831170125045361724998109289553054892018167635946425725728357821641791697205934233361907637341577058102795902265324623749543708855150782553466679489856889049907461454048448614911892547734759223079669902970372693958934407286691185454249343172191631453132894687340535390953878587392711556464255693468347764959968656721596457439262818367849074835672020111347275641878768092930403364060126744839954567451166641934448376687076808943715420346904783740667797574080200731135768893951939231597503966819445004210510486967224592167035084319564733899364321222723326941273833501707924099015442436450231471580602139107312834973752318808848305824118339333211732534265900894207281264391132309608777884642412745593955334565798714130653435377578318106674616959316043590051794534860698532381268796440933040386649119596571659444670732519008910444751553458293969285116161207964466884923179879197672937857647162882828651362843835128180153160476198348413656874367869841599786322792823463716925128032454145291449212918774550075497364162945713297857661817788774995693227227566862381314803105850149154431862182463747976691427529714922700698388540767839416138479572949480290804662027613977612072977581329177023596898894444939891413845746049556042161264218511069985390274544307977960274762273432499261015318784536493863008098406856629221178354871772432869536398409470963732183417612876056588074553603233186596166216175719802490024652262182388741316800286235890949450046413487742947364183964269617570983737970528849093656475719438798909126869163651986913342561050661524087480009490006809623237998082786748503039799062149373076168802126152186929570278712859707691365160281392283860019289347404672928213640528079344786275379921951336426642539623174656320142054871321587083878143450823753450040301527765000937414926411692109839426606040832824345031261010548928467105828778290784085939977411619945942557101303501173828059324012236437425122755550295767936615775555496985296116938174748457704497406338211642135023574817306756882855072760678045139119978497296129644777080271418886461747493430140653280389102084687985858169446302208544898641288230927237032233233706745058024775764593808799224417534211233213933513515169754389200583465992248702402308179289031193041467270087472531951861386685712256529460110910998170837587866261727194054279348431797979640377325950319996914512612711847628263149082000012043234892780215629314477484673207173209730893605024828836541573177701469694324021100209889665450075142981373760869362492352233136808873445232461209579909225137862308016739508255470722619183515435167028996954811495001207275214979366221972827284030625011540619970362147868338914324203158008784561728095360806536315630063070042299080287255498814902771085352059230692550334981948975969801216607820416144865402450756783908821853166655752296289476783389815816294166626415164143027394841366461626145822226582958555431863440328241026930263820754322005983929679023277025817394584459044273095547423881988744774014374112901633983126440189099847894028397067009738290567950646141302187027626746976198121430910960219826039355029315680454262069538896148718131378027854467197633069815526860524625567849523649298550147037222042845533676737211376208791528906470070224214057921613072272133277383743416814062572190930992261315670409487858518439529261499740364156304909691061858946643178930360251967594091151863090427916028946492024726985987600601256031682430801778436342984988291011977512151326060485338573585318126831904757803433775087975764108554904244429934521638619327824801782404588248387725941344690804253364045363323674941678827684226783222630399899874163740341020749424574470395380765474985219935039158492373652644384040502252190147484198778078502564229059014625230497827131995799726822510342343830682756712064707223280063831196349993524392230406606936689690486780938747383141332688451453013266079926938706197621398561710333893074961147897963441113630724104117696843841554073501141664888958587552437728539248097730430419009970004732519998627666145773363903307802247389451048656064444070282380153595647924652589923593814342828635842763626029356203541987409524787718964942101480386997211796148941516567822266170075645434400970193319035633846158719905554218845065683955297290574681585970381583158624478552271863457348531918127126650637950889392336729934046307936397392611001148370002856755678224315610360678198167656193401529609872127222650628454306192273476236505515759047985364715734770605097499985495106345810403014247667377961319980821888044592464151113316657738067476593267933828252656056446598110083031796581209754722560617725235956260259635638454326700406111273169211524453176370807185543989279545341404489188548172893430136089067156194010768481447582996738909164975213249445283212274885114496299123455374132990563839466955786643964390726392484229708433080913843445401188082956672230827922483705630351273726051123040478398669429615849144206185468046092778532314994086001192327597713421905341767480890058348391621528195230527721231794300394388174645484798333909257032068318702969866483411221481838048139151207395931088593003098603081608753574156631603765118576604459900107892869012883304023249593351283342498087180756564764793476432637415378550540255188805255298890930459801545233303230603682655058056931244820515289951221261692053823558790693666474747183694013800982943748614020510561604961663251464180975291810318812667158630301984979308030230160336036199159478648178984690672557146231450510942358955450142509782929582306706744315454687053106664807660050325222711720433044004875564146554955234216097559309350120018123564107881896157359605016734834660018165512875660071491315635082604309335258588600792647798947279688491481588753223737393772338734004366484245313044664025479059660451886950540397463676606211038804978145615056121943578973399800083898324190115559267880125492147867828808013415859766028294846866037888786122729700525158772169513264311913022200994024261002279054500701282697484661114344272575983046437150023152225235170717386148256478016811279518581997842747136619723729415555313468930571203076386188181781188663079290426609141197630031742706697498851363618616874042693108494078344342587104573650342386219778854344788147824164504270931981241760534413038986563934371334428386111678264462917982001348824323978697395877660662392200100668860846501920433268242971753391232084216493256867892884289078602615090368698896474671747930439197620828353695128224763697260107462564675992314500393247635165740660936380731063967633375948145046412152948430327005415480933755868495820655638945475109190350589861662388475541041483609560507872228631290059383014566551595761809875897644213258681470633240880877830641487997081952282749343156489685487883660434487485918966704196792102234819358125143551245268834171410675394667020852107339699631774187881645941708702651015065222603653287044872228573099081547711591890334056999958592866706248626460723095171803458661983446393895156976868595703746151768064857560711316334777313038263695878917757804371254505261359668932545475222636688056647699277288576306154666802115861405531440009521375596796130276210511238488320522026841235169616597964929906827372483514053315018934479614686902402441587495589046334894704265093796002664260023508915357358917093913740428796513442802924343434010250754778841878458031371439696259469776272777024661198210591316455057493483583386590334106854270326239687400164780958968557266670028682350078021822110696203339061043466034649764959558655408084042786329550972512683095053354378666919848529073548094441702911435980951329056063007230590619525931959852683509608502858914603617641150845171037611424291242483323844910740105253390878418436532123413131085367619830852959346596121434336632653841425721386235429230754311239899878678735452214498630875906321228487386542047326385973815364354850680099584398951829139924226589227474110162623142784394705411252940901977226600896890782314836857013397081780190380901085357103588487060077336062003225540641155498649313466088011951149710286454249796124963703092601694746881026734238301218103565149192439504494649328358037571269882581046002540317094061850316508333329372969986400241471747859205092484171139233923126971086323118163705788429317040746316512780274659821353956976609025145854364741639079526010551818187344914685631525870903751936849055554404756601148065706795350713852766602191656244248640644196886794175974016199340507151886359277772905960443101469775466262250907523597717186785719777677231182340232119857712605203919923230875279696026869866134416767954650749451957746729043298731418762765018688088094642930023954342124247442590204360838822305127622477284211467199031655562786337558492500728586141496833106332706574856297933964353330339820456255789182534611180101454846038730512378736233087981348677976531919030445546191478840524752191744550901269410084112455685633698821374347615142434076954703923033091462577562339691717785517578412118768761999758653311457025063476527967878245280139975160512098475835141299324638255410230767420793363149596191867445043612135411949839014458338721318728490701885683567364999322411483195774945682781528829321651227067871429865539516941368664981495642735303794905450310500349777391366498946107986264947488318706540710734818942279936042206257001015390072447497403408687454792490023047651821972464371916735419140897473788709243241899072998240831765066570247362303073746294132042646972101369530667472676671629969893074110054542958603294753589656209909287705322622721719420559666603283607509622404828206780026058559792438542592274312714908631063846360691598117454025060505533374724412553742646526868391823207340539883268184715751172895967267325633995239958605581938975811739607999641796054059618305353393088663247611717656432405369679859208048813148052997898600446045841213581333282559988629178985716537720036794826505962620003967144296923622672602334464198817929677365162122169458335480473188138696721066291269564342299804078136462265422747868199907366247123465880496646109799885942955523198124568628348306673635146033850859807643418673732429727610294716682095093649750209524789559529972769348634741074648482479149209853807538893249939633922929521038629217806938153969027861652480339985328513548120228732912025118094526880152165600000107605568697734853226289519749125689115635973595512932553102354752161178819165873956872611400243023725479684046830199437277820881503714928723112114784528577017879418950156538869236919075675660283866073635604430062613312070611775608216841991646489645232602224705092530487630570511391599059035587823596752613401887754965566297798898173510561031692545685132918192917874189631477569037886950194032080132705621411333311823761250437089138594820109271581507858332586232627955844085850007666909774281636688563375148398844576005774030591995632360645278440600259333454244547295193403290788305256852983918164960583539667337846761947399962907757069164772948503455837707687265580756349601951492778890560850442547483423200225984010760260029080041538124087525557797926049232253921196379508213345331858331109742109297183001456684145217322328392606952288988486808997287319903820385725461384914160983617025529072340859200695987472191629514485321383396634687068969257153137355080153920215744281035834346098374297014595680763350665779351705682426095153850141376006758277578955178060365922262519353453494526741587438289773956326897939449464519199092299378208161388185247157981769979768328429052247221896364147492190112159737277062743231637103794095476638245518365551788964577145082723302309959716770726966699634941157449811303336495170384455006296885314335480816777616905444160594160311557944644620148294643712727474472721795504505937265753099401400774007710333528993082549252659636348478161733881942990474745247855718988287089823097252386868615792291527852635979558013712225108550885416261813562351045834922281815130527816973271435010362312673662073409109230358551842040167212986487008540756048351962343946753470969992340745826280588615057375897572060869252171036147525094553168751331831878307827375865610296087788233251643806139254592643385678025478692492900114207089235627992518286359588768222221092670267397234099685818072768069510674574259887429417604204057114787626549647064377222513781055619702715431590044115271163666652125882223779229538246497384483724931596679281042856610286209594615920828221111029243670384824462910071372077795582126033826165904461873798885387104893746258786399125094163662599390464893280743500829092109783126791488380370918743001491198012327294055882701756954005861078722813434887972315183113098399580451066156302154197570090362915274616185355949785037116798226473332956650947965847609697150234564735528054648155247921994582394389654745109218759050382542715633199973579093022408830144979200762001963199200985181723227085460189821776061013289775207060302284630210552472234596840841192573672797914942597143076714386457254935190542184225587346747364238288803772392278662482483473230521074292793238187539416566763494031214064770180062164227931545979223154950933756167188570606222616378405466357961103963234803987957226753092787871310238309278430537700624485992332021818962312405737429415487870113291878751502574376329767637599958771801887768834963041584718799096465300366659081632675982484661842528356327801512900945966255567057133750852661246235980937875045033111578767412558317959359722452718944455534892403629000556647936699904233372856880076940967734052299307135700298573952129004398080049211636747599189015707243118784185785483552921088412679807559680917624682122202503145234594575035366814020126593866180553983064958581767592167723074292980976940391905380728604788444140595593147625203052130675376538137099752701766976154926409618044902698763707210166811026784996329880349562066793047071137229108906037096424262876904627045755129841429333440154401919285748113495955913663188716704023145753589201453370369227618126226350636184181326524444962537772058199905995623039655190229810169445836486258773868981003601719348306472444416771814480422873220403422668554041658767829599294656711771582735678619177098342953284266748097265710626860182530822117501284401673317158890278639869707280480985834993180915323599884016702058371428405745744667828003703709220044312439663265038143535275155074105016442506042978236953943199611309352071996446531366352209520387856627625347686692718564136099989730899847039400483521955642114004184676037607147183493771617666804118541963291556428540068051744040832063789019728073271874241333222341313521016073227177298615065886336770122657894123989735846971511256548278110802644190453932314944988078485421505650499726731151052390405427388022349885815376852799330480093156028637075611804865298192862288703760439368901945114120538750859873637036246941211165166191375023508581130773649297024226540531122218556745967030489069897114715375152478593510227887392716558464230571583211155170371179056481272256014098288591842713799569657588433917847413442942498294196356888442348968072648139268650513722432185301262970522017612671596617065040114368906053629244133389431395283402400051063090189575944483344732167216433635110900867430171975851635551430332628972631697910659067219515777154948211819665052867933720913789943906575548094294741155327741784649145051470484505440404696822707520733451791217167127636839815241622043000081065697977014488244004664829869713731926876395450462555259925212597340909861686433358504862636000417264958020173411619649223806722261030831318338507961485372808115159008158475807986117845136784102361002413495508159232739603643947707086119405487020169748273139463436940547457142298776010792563413104816423452023069083978207449612159690841585028863391220746555443146460925546597453427942677018482401580194701187683939415533101668828835497451301157220841084220020343691847705268746987425640652660978911158683569275331125297896962108737524830158171114891999488844274044729975092327197661210053684455696291264324407763737926903045878644184437845965414126077365722729794217951116209470836808596711179996171951103236685648892311800925937079622124667375335955096551117143569654769763165146936736655851320604308846012037094332949451740713787889963814390373833215795960977243342453491089807242961378612266227361480534428546490206610110993600894802313693696809001917689879875781283479026607217508984026074889728089016540287637623318701394451694784294275223457738396368192097856726516053846538835941833805034018581297667503855919287204409180062084338967704233183485309110832421968523448359678196113251546388450256519352962737098969039112365967313436974718973958178092222795470079663879659148189255084998187315830063492357604845555208608636062009494101860645535340836528049468554255633332582110874297234823114878122919868590031466580884854458011469382345013942716407649646265803880297251934522859513823878671716753716944051960794059990443979730816857708650603583195337325652838712339592664920155980032394181935503712890348062896857986451984320657683395440230641976933696622670939507166187114433341361605471145190764026152353644524162238259000137259697948074983144639584330840881342749757595506799261070775075481011309014358273828647413459169579015457719387276180517492444224972770725362715297025944805377048778736586252507341471554381540228257332540915951475450720325172851138766211322481983278958817594841947785355505131559259047310435336139974641919788288948878671423047655417878990532796985992759346876523082380042160729942341496790730566357441076693438199815243281861461072795790221589946433252503672924468359949339209326401088718458725448314012401493723222148905717444095089734359019304352106212867445869824238365821531977348805957167185892848093442027851607056881491812834227622587029406200796654445841383663322898444129993394446702780584309363222269456646054555759789311768505458179487955618207151717504360285818156058096580621528958156668086010844908743938453569551021796852934840567665571660130345357137891225805488726920934930932444637731152955470667953146766328578539620900211040028542960753563919899908508703834999904121379396478177309158548859256098735513159389850530736870974930199904763422230232021962328399996199409878777628324582779656804804380161026721915050400905609318975103940156626062378951947809001103616087269340181238637640484226618340406798201603637071326059737741386625942548428045180517343369987951821238993624931481659836702012038045548896249338748982268439361292516111641856679150399996336708041817396923569643039825191833140979600653619765053568018443532909631385271737732155115946906810130152843409264672664477074530326106577657527971998244820513934311322215644778335925572824130054776767831378224308152803905821762610307848127212254835590144177050034542034501913504209740483073484858182779204866009404783758403703601069285248839395598965693404684968267235356613553752433916140084655216034849812006137783110277097921806589382378873803030066099008651476306216745434856482883222113308791120668488310402913814849250117764901772124711192158529826514751903793516610996861277282815389012591879225759169087142277215166294172546042529783425283477836563322777564399555091235651563586039043573530768901442559089276481206322679988503037090317068403453426200025030901095122750131996021007340610328469292403600640802887419782114034766760527438301129437273034953390911406028581763977257158307524223844440593104367458776513648737977338472490433622049374275023532771392774151909287657507493395563946820529543730959408244768101457437888441854769817051701213830574933904559831016710681813077499465982939805588998218692800736256482520958727089394612265754083533699858691451783820558791173832461157048092084726447235535571799800337551435667681336806912775366360911613034893891582689067908958992764901975496804848090372131326625845397776396154917568039039347875902187696816559680542842096065726102995565376494641015952873368290063677451157032727379051448998069050584266250203610533678540171559918097812844685271672003443502845271887958331762159190004054037635118728131238417491477131750045896078475921858443623605101059568873065841473754957127128039646558806489174317549501274952673986570174009082883521848739095389608540788068538565269283329224564056078495014852607669865290525002136467243046323223043359491616449139061262245361493969948092972779494792104492604386437716319049998043356048920494324341156605931394502100212863970885080041034327538751645323297528114002795714866799633546284347018637340622678449645856953665756374147088451605776365707874583231415918729764912459012850472025759804580408096321503709838546365649132499403318555203876114100033670440996380885864230464510383375654989016852150853256026309045628197658368430979559714906057797414162368512343586347572455549461431257513379822168938128511030010792711207874304338095061672766036858276662659893664628927710087321438037203819928417879855025040703371881401917972865891619361155793129167937627320603608111601076669851747872802436097064171592021350293592816723629253420766174487346287407054205071533562662759695398335976304555241121451970473659220790056011196119439374735850003291836780504529843750610613609734886331066311583141200482569757036068542635432428328100984818867382985941246725727690385465751763221779432844100562002911187817826951342449329349781931854085282736405949438659402906358659425508908708695217039569921787257560687007061943136593278166789547372966076718943606291975307845621648935013549645353452956158726246999010152126409944619521130703147915075924805352849232771866189678832560553339922944340342534004781243682664228038982661872487797450132430822901767361767685616480767192212056786552924714578068423239313454510218435743795630644969255588303342914242569946907715531928975247027799014856488394830459178991868416791240260509851740007576418065063363581458929408417535732223703053159715270420293983664807221338930251619612274312888156916693929517918871243651083817586258213317872004157695039099049521864116719493418180973602075798976569272148320021636637659180586706487376566371829203909725574965906603857230069818404588983590989015231711579333820742874670658504541762391782929883630991473729562195206710143837023692129889484269140147487333643400597780900289800089186700948765436115068674603762393894460748004724261078778369761365948736664566345526107369592288964077698489042449992933271929572096495001083266087050925623281300258723327094601990548552286438669961379618632989664658473273442677782626159257770676083169475403634520695468888956770361425694121229141544226689941267054340789071066940673640717818317832762958154307944630894209606889190618293411710416010343855628378169641092922578315903515569095304289077968288282418104964718406013828096506354410478136024150584691468834697004419040186791946240581934874492311777029249985923011522339475683635122270454355442774833327875402267354654636187899056391359182034692186795232010286021922832952658447660141306921120091372765551279137128654144332035176727079442398109064262749295922848349379496497517839401094988518503138769988626974069511882903227846397761428894507984608312980725669048761252731238255698840207422243483147135089380249706037337628641173653317135494160316481176697593020844042064534263250307543439451040307121039328858838183936572411572747851848015265547190238087844648140147521545338546038125153095013499188785955692686870604665661262538934947191752853840495027037608601545310374521217253613342692286428821518850178305245100613349305951573213337527873336991337160990982231099134982305883553448176600820157878987195090777014929357244641724344823572570114237736089082358212936465479094407443214961355240080202361533569833338080075475329789227889990869570919851507191587628328079720417263472201418849482527287851613862830144061196687794274049387548971249807628850755994192256974017226046533466809961874084119486213831047444130330981499049662368330432842020915776802427922034315184878150620050192161726239744600844752979208035279858228882917389166687893149191667781669695537353786904997334627069780008841280324339285243329065446612865032434684591089444379707339415242429795590976179284930951235359143085282181437126039654404446393253263493270971386981627516849625715295786115766716321741312360628121972121770973658544084405874209527365566123340608681274424061565505718019640704219226832787805930353164459685597458822270530776597835737320228853695852653081996710568769694227389108932291246697247921945866227470497407807837216956610128268685938226267332751100493534262999017682269514974683605189631010395787579210892483160833955008409601355162580437035561698209461301425442497278008991396247939210656337534946837257890774742876505140749618085339236865526758952048336321543131961646872173880567750601382452174857553108174926208414087051976246892118510297369931581689691544017728946335429143992309438900923790444615514415732170089263694255186210884411108885454347446218316928087288767717256224393469742919162297103600907141911461224362579021144953072065332250192072732300066711442214525207103198720570097420759329504434922175396162011687018456828630236941947674461689765596746367051119992440018647867696288758856879897222783087124452778824290830486647474145418256742242177713541163894339671857348064578409653315186621730604347081566919678411933570427213636677219735324090027328780025707144223556766246079263742656371206857607870313864089783736315063503148248568995020748970709696166643283682538126556714635835111063013733722263853523113766522061222096039181199912496033866723371731041362502523892081336237249211948885355695712945382853768247500892245614606464204170671841755338768486365612263797982436980676791055199135350663185543679968892315276020259874027471510367203479384634125975772828756240925933987502363105212119125472718265145583728868505949918584527604074215504026588706011822866860433028744245932061556483997650096584176525367560647950046457399085724719960987385463559908903061623566418970062820548305487957844802601170070497620611976467838278505256770058586932547556291567320977333224384822947550405702922639051999033025841649472454916730574969562650528654382222874254716074944378518613064161033170350536115108430910725358704341040391243135976780921199700590274320676747266379527198346495036911864618581083484452116094027182290657001582531194784516459316107048024824923892073684889247232350654958436703816179650329632210663848677382470542445522913180747054447698851023899278729285444421045182149803964385467507468830535122820371244940786820358808738613481917984343394282836206381435285598471813883193024345423905317185409635298604120292561690776519253814583937710879471014574238860969596623768021260714698594082514842554260427572542809126348932161606591201687781293553840774610124960483474828105684830038159440991246681569754864833784883100033012709793805863999839587570878150977332223582033929320653759550623564100829916348191197366741732720723794687251522315485857599362925935894994011233991291886274422282295943996373972085557098810871186573027339184531225887701857018245665480477580323521533450765322991513051509255989730743786017683519192003890086494177193396283707553635134341657220541695176078908138925739829598976470279944401099298363078342043704343998586583336618678110796721708449497932462146364914259711869187349940765964443686691212266734917171864099353018356056580556116625019932332105974401763275347678692932437303015346311852361750114265384827738835620057914172679797653238514242134598911390374665897185284606916160640111536287794150450015675480547896776537234442236278820865558239183459270371986467551484134617474033387445254024955730260183849776359743092226161193702401922763315468034911480824384500555841984195987312955336696361126637311633541523117159789169322416942378493648812900097210699642469321186092395539552213551064980005734634884524256946562152494555426038161887626895932319183710875785817877252968316428856630552043627794450703100488909057826092401763754257613265645984072940785970178006522965294965375490539868829348553075327297019149920660311011585718117449301654083608759472049774931930178300691794861949556556594650208642125344426145054105948899181754570042471478345890771950933278014461016326272090403928181878643594963433377875577946085264106583664350108235924477248859583537500056122271163269949374671289421636803874938671248062804650680174448173598306785142735630282481897999105894254127691457900453278570395472935135378947556936535470283611769210758764613944184203541975125935466393459811501883741437148039106151393121442600608050156881347203020590804279888724996313256593304992684247909884654550973650185960676506288294413772679454527653995850289476983532218849581918412432054580713179471195952147407832647179811853392203268814202785418770357850495104585666118962338033137099544581912770361522825882249108922135057243005290794777246597351064808858718916345455483087081969346620924926140182930322175976529523064309554242959787690346940067877353164655089404917055283470087354825124982901961908286681611745686942422991261754369659735829133926348441338331518131987930787616273699016807038079364879695531101375997886561443743451025016439818160541503590243149407281639379265039614034580661994737890086202667230091165188179126174788651044716782461312257033466370284885382850536765604434142910107899053522041559863493150505902877895054091652606447830058489530376253676187682561161165750033368462345582344342342787619133652443724457176456067210338512405098853701944521088094161668167655801566142909501265159619070699283079454979708225888747082185605020287929149693537142094589232467654393521430417671003109259896809734208408715919926257215530433929675067245567479987576766850001149532531989102216064566725275060414486523745925315189069763066149058532932947317028571297459312531987377574844907461813547776956176798509489048403947193035900582279826410000678778331468323459109995961616653182180458113690807166017026788835065241667867233036036728191413533580677218299408806022216835621155180431176658167811528154178782133935522060045201649149055234626076207732276733407519626906324758122128812193168365234868451021842273242339946243351308235767160285423938930192509541674676472869048366127380237400368986493177349108403476951051930733654353535877287622484309098554915585727077645693641121049605722666213660697659397236149597607250138767514812588898992355862660448352174911966204770964626609592568056237769828770516803468839066375823031657298197298493898960137376595965620646774747401323535489688536989060590310153501308342288919046051172572208933125666119887635361902694479603511987126285682960762399790299572754271552027831107571398001008076813381481178931372398658118691562201911127353675447462606785953916499525936893512098636374767103259337291463261801247154021045914892900469373326481756472675940744054701097164177442480564159626790102762256250466908278453825555747423879728276948748989462480388835990973850621117098439791704283332142425657808472558132566902120025956142349933989809081457308317552051358061693588447465975141415249396729201540288952553963281954383865420225682049451912770072667325944192279453322824525075299328737785669519217360994445545774754186121853415731907188134902876506980681538350292754370973387092354356128255296222044517204654245761026682721271019641041834399170490210151376466540897020478839357803105679738973948818017221589898192248317080304827591419755925388095747420963446739673085598122770788305066078423693759643230819454248987256934481435590910326830777004385663711017054090184310708548355051480777740290935224246504359615392843694352424762711929179433649574629715258389641480537394703515368316250356849144044982292668994301679823445753610890732545847643304162756145705909998667538622086444447922702446546150334777879190566462463521125649141661176533028806323064309320326301626975763090279251822418631166882852005586030904019986903340913797304479839905435479985967628778975113160443590277299272701014698128129892525366189064671159647215113477337600068291507635572203824367152915163186958331715733181312255044408932986777498175450907384128434196805690536951864870277453402326748530638312483171440049946676993138338453250523666468582690817179312842563761188989934689333419145522507937199917521402026080396554029387342632031884425586551686212187018461931861568965421482169588826282942561216588147703905499186222547248979830548572687238005560400838745638609319867632665504363862793126385337753842550682634101486046956678410425183360947699658667257655242189728488208227884951653087197789141190359460912837529751322473008355453012543153918217119308509432376406557452800042553529534631570252894200797361575471730695286131424303960298642515319367077653932761500532531927550515952100242365058552910302635148527383207081875323429044378505396828507172530821038757836190014839816726190321323710496422742227397318404452120693701929771341384601008138451318411882358120168703551177013799299228912733216535120143135445506863683766659224587606843968459941306188340460145902401900032276240100523569976587220724032431489791377233852948456428453780896445287881005476773390688208051958231430475203377357519939453613387300993567512324589708648711454410309269425878750824103360219574821428485694964464226802661123007007770267175326839935018221967826483282340842160700870401925652187775057945908802548147187275704391809994352229508903236724939958288324519239862909708721675331793460223245825189669851607576570135396067806823076949459162551386233737346841014844868817045677908300208523682669649045710325480269790592241611015984609963712836698170027726451665571043672112699515014046351974052216209109336238109852046731302067938562273317482186981419035158791899929601924488161511392679955969054864363078313617964950712339384617913668096509867112248447878253602825946339483270559921729710164980505579276552602862854932118485154407434200262980331100269390707703147316441807099816746608926033201595807106405669158129499775265865444297790338654214767090985703196499286346932865833260134008002191286121887087819443649379417619166738258805073108071889527134418839364751158595807720210764840777277771310011061816808007602590432582482983918733111972722843076071576708152129629975707904938097288783516782208669439171485834939963622027349913279416196030194950764446582564503303211613686471712619590384906291716261888802976846230018632075316788438664997764024717871240620640682617698945315549934846229170727545196792413438344905403982101067581839576168457891727879314918339923326421477375834730037744525845338426630592453654529047840784009273640611270125291290606377403634533907572367603775091057828364180991351317336946880382583288787822630723951171093192935282464972569809046294135241639041179879711858840183305506620480811481284300189498084977905783918058578149126045596830125610435638674073451595097860000656603613715392141943494036811223882754031283686443559966573200003021039179913485202742028008856933784694699349653135182648001264419918739075544567603764018452779705227889409569496551955795646689833048020444712899293783126127397424450310475886890890836134144344843360727107596076275038286290377139651290691702619231782212886590245379296934510447211132424498941619719021049580862957922570281477858006728360402184724714856182803618641691803766513620360242896404023477094047108259779963054980283257995152742779870479186104907718592661476901090960948935337888910838002403591819954279909968944436326812457913568992343331438953269472328331825688891884622886969580355226757526031681217698627292383244989772371780236920163105810072772715922536208092188868186635721943044651312306945138167920017670534760089965865307885602388834180433949810709169851673531634374852344569265357238236736668506455254814158921023126743709423562618752235240610082379732094492518413629411127607982323135029553522817935600164437270448549389301481089858011860329486246822959435445367198146597826761738921072829048707467428957235288824756924023114081493183509569010030721976372693344856018659780966601896096935717840205128930963946314083152623716209366548076329756678392938995871084271079070075443199359252705074960127091591290046464286982165836944567153756404885152600289847985725580517871495252432512315261956344664611862429197274437612488452289276368734963239812556654429192412091916007993305212583896596271934937505861861288029129423354530262528054935016925761145288897933547943467265217263691542636306027719620491451261367847837811439597567652361454783353968322662800540586259192800362511415478235088886970490754782610646242540198293799393627352554450723083902917313213264371313040807244384506918953064807184623258339393900792743441864098179118556030448567186602663228097085599728141921206743436303391093969384033762684852681928878919523033563032657902960434046697613140550966853301769345149825465630238708061293673523200714924834143680738273492008225180147174537745850659748508169115197156644062366397147280596293544532707983985246824180555050620057889557981527363991122494060394738247232546274029959764667980275578928960183583421820842367429928674481498969670161005365901277663799878656378141685642399235371204378228250012743035590449988711938308706102838695778117457409499105464873095859506167836674487870409225099667019040042197864053965011934021775205173036421141447304531074164536271398220381690772810956278699499486230316137887359522886843942256506863425355404751378600143027311474765798549859618468754263269024105241604057291065275635272278229563392858689717670705909967170935329285788761753918320525654024474817085303658054634249358967263018012428263038191673242380575534167711833029935200722363726167857641701295308986340685337700194198346518619437016555226440252636473858826462508252558128594156552752257921893102725331918216510465127207546135176685041014013358784134872555992986401105297858971996763568301184709603978194635130605571344565849270637222441075911411877331608807467408156778723647200689207508234463901480092406701933057551484137965492544649156161508763090264609808697341078847377599274494614346112524137203726884157238401812106568842457812792232174840638198556587735169863084663192707248397238732967527571213707358554853431406580105820293421016764334762842582462877790829503355190019266262607517721325214307627984374286969288924545391829364919113195071348791833299141952820077280202509361184804443446767552311196139309009767935722695857937359666741352294079682082676995684133971979836985449702261217923963500224013813065493942942154726236736292238554303292741389602366407309485053069454891475687905294285781723324860221238289225491582701573237447715438296364855812140086539349535856780899402782254327204742532993699868684104551773483280547993363874369858345958340316410992309606556040671597891213634989305831283801606671689336852710838738926782928534931387854156964911782830906462991255672922260134422325557207604055067579906694452933745161180870309408266389745926767199586589397672066068946723372080472123764407678869359735237938884488325950821688195605004146906135598174737843676353515296045271445504008900765166892424326887732650495155209659550955040353054512992601149209459339583520882767452694617886274304161147947546487365912893040766484703640378762804300597668606897460856707981893245890018952068407162919385434143883216555568742279451477093700392659822346669196569394975229005333295885989223316722621823545209728158209037102863728089275691196047986156201014457778440093560695448926885971394500729751556715809451233507474988249295282764299522142342885718214043278319947897425429597222272581275241064032283593694963660008082903412349904125307259348170366626392879275449321138618802445795259866897500284720039134884679336615532739146049724543121523839888160941723040173105411149172994984506114077497865029883454530722175128203027512000173130909796569265507396233280598277627633414758328104230715224582468310635814671441413403115964677238553482462629568969759859463373414963211898721569531198046707779129908848209809513172828522810435352486985562109252682297733122460685479219502249954223744409210548759342410939843165547571772347246213596216833044062918756798804932256186136081185168419446563655710184067069345302054155258213272296262545573454961856461790720322653607668974637318288686749522132727137087742460987558748663548023401659136425963026435907388539466657494731880083596838623672298655710376794188251494013119355893182035279407995984492452124595742054695695665609756270958281692222363670378679863639452407703906711444875291661104876648166199957737760216220511030560933262917154512376098488648046978356277505003203915696700906038052759530540435094230330440806564567011981310234327504817517785086531011703549857997523044517625133865544454932651902911618482113430982699059949736812356474255721764256503891611732565158405601361695023140027271646348094876424752640276685684841313100719524745372796201905132892902462730142899463753664749858605261440995789540739413969288559851323705905115525522289310407634531709468832064509042152662273840462549036718286209963201067097907185527883564220937584651678690905963855042867782114269983155098025155257643891316154655609367256100949109842646559987252606233126482262199699491578871492769135732152166870619264997589964944799954567111779602495160559432555722651711117517106895247060142417238391087814939892814540181813599189329333572981919165434254557263933389645579522865801007090027253687082816336454565401624262459274183564148904910033801946494395180013755288338904488342002083462271191119506110321932214053994545566253525675667269454217273998884627833157127837318456756984690612281459113797921487845104500185772544982128831395270741273241351687562833744917274095012192138160377163761004057444082096296178419789464622243765416917149359492595223547083123520779868210072595698221027986935370790403056818798338765736367040342484932578353053611662562006593175504898165673000123377171176132073226090341547752956868585280661184831894795859122615880774269545394310072944993613702550863346926372406388902355884741870617001524594602516594080119053285701803282447812241447411398820205900944959726421857733410153482033544505125469118052693136629544023301606719884122680733438859816440861830177417111521046485425793534919738166548928508546931088053824213324890611531228218669555727265265911785308196078617031396541695440557808059393221910979092496119242910681129804971404795708251208920233589385807475782644847464817357825259127632245175081346679075664367327486959712415811979658076621877254765855467475112238215402664907312452997389084489280755947189863120696378700527552457390773798432731542950514429016441071957382964555411222539242445718946344166109846105259047715341954261124829083126606395484861310582764743421844879919704954530614157518420808814845866357313927224161437167452684848831636232212909107451066575516500348946416715045131536814301308237208379822445779136546037014440290978338125910879533236502883716941893692567409316807965471567494623204576869415263453298719604645524397955090601063137045461997596626919881062787941957330454428496259482514218849581064253911915867691817963481876983303986614390598874270158600459869987163911851359463800943456254812285657668603816294344409210867462186528748125459769542748739627805957163207161804809390551988988733935379159756188284322526607028181021078929615607591481396138417754146634883961610930151167978669731957477483008475796834595804827428090156172762592439268150735732739508954657809904957475299170022267385046176544133424227909379033982486038330157175986983909231200426516197702697994475074774186553932483965811978291070868685761874694045676171427350564244609358963313620757552823149806075901434827780581135534920059534507878035325005748784992890660260743614193588908229796401700887742297023996461680424283142123093270257789969274104480079836775914127055761903900653252934248640334358265004042277912946216044410095634989202802827305569197081943291208376862156670589889352708132732296221594184841146815901315285122147975202768198455901666157423364941833519589321345346383688836210489582462364830706529167727840544753002368192453406666525871271468070082477549260412427271454993686502366481382235126199874147830009120666383101813034215447854189198861832289920941001416745603077957926310020383709460038331624383093597767324470295707083098492525634773569244970323208224289993161274447771062406398301142286729983215230055247588774939490139107986708181680598809146054167549803529498115507488689446305893468682129077532178695925548698279392923659381746370914237462270475532848371123904119637730995503092558635354289039423252930954587981680391533494573548604965241636726399013613116513809657600124066633651193444131803655030511557490469326574001327982989884216054598992846132264083916193298019687353068163600410458210372339504261899940538853080455401736488374111253813398926468288530905116282766352609310304202263266795169546678289155371581169751162868597107463816835228928705037740631535247461951079677842596069255212760197233288454073367765528909567242958221951355587398096971539958358625915320405837950151379866995503421380077898512134986559236266909190839589147481378598954558130800751400798143614009477670848027699635367102346244878278691299587822003303007365027765846679317362269700897072369422335306742017214669462152338805188304646921258930469570214774147279037518070694802020236797689335800678365627096138024128265642507032948544102622371590125306952328979233367797008363119881841512808589013470999724850230767244150782942096631121252655421654114856390683891163387080135047890560340064763126178521734561552698530614497639108637443285938305260334822066031963191056665759561482275083331569962962417822613645861611021700545829142460250738776210099038628625284911566751314476713429307179254298772645224371670812238112487798736171522153805042087266535158104008443805348460998221404673152842083564533061046704191808091894297580641951712263636628895571591627148404398914355673279517408436407848984370959527259146311035921279902608173891499256672369935970902675169161635911679357821768436637913966755812173229926783096601450385096389713658884107293265248275787202921336332664954094674007623958930960185803291492494705768639176222795370161096067331594638622312099378234934813247033944685784737037497212266173984815397056530878342535706718466268839939364255409360284357847196715376689749335405291916619234897363201165302213319703351686701536076172052640073486879565385401194138270695864701745906592675542361558625793476621857212359773821928497896208444195286976254946409291126991257522637435002226798151731652952309632578571346157870792931693273781161336280165600820618098581196231257774574678970737671222350836676948624274927710771312847420326901697304908656123957171345783095582894282984226703130934441299335990008126642191491752092368527704320765518850312708824564458611972874230555837033014429043318443004109153681512571322088264274321443987377916320750976434150391269828810857620166486608450027673128568668046236766673876112522379030777935167958736771397630537289804322142519868933217064007167383040042297031141231131746933239717963575954443199077058838834488872915946779715342514409433490408892630929274575241277344625088960574253348878063059676309446373395359376213375097935693455859888550051334281221083225555295894885224352038012204712177847986415772819492026803638757233101491171113748258701660625260694927445812535538206089891439050706457567791333883087998640992142152882320918611118544017055498009121481095425574350428266379611198631212640502241988939546169240978299971343457146622332334216749174225558305376920005029734427682297938297725480494071338643238646723077469990446419076515988309706096717749054399158834750797964653043719420973389965459016611721537446023063835550739384134799538088554044544199776565973114108544714027192387494600007687967690469843253311157853151911516130806188306420095575317756334868572851535170678153250601132932379503156872073038226372880749277606412933479102158280394687515707848241840031579796333197175944193818000418841624264116166745297859131280033804167692215684198330725253258243349099226029918029427996035366801064911601012968462299028308639057993158506022100072105035502548963732746560852963491599539804051731883781520365955269956878335401074671445155101678335827642472091790177150709871681838231691393437295971465142180352834097328012852507216949829176995658714852219015890873048122742367599500285374425583163385184629260204653751092897780601090204386629485601777073424595508853935465424768793284516271572760421586604036593047765371153218175418527315659216716903955611243804920308874554256176831355138779613682837875475414327744000029920120260497424296432068928294633639130590606970171223170399968184291344759065706796187538649690015089801195988635331035342159810339213591899238623105834426128686467847400187910521019864827647557909153372452672282289574922288535139060271382698889827446551991087908738695192820353089460568141577947092852350043014308937809812482689152896762857164050466726436909242040387354695788007215849837025948006124783327376744082551911666005079639929333518377893455226828031136745080364358646850888034215458210999157358459183710393921996959285942921773874986226161096974871720545458163605452944521080059881474368928179280705119774969085410288882045966252886337044880240843099061674191614185924926899145408536462586527056330158802861814136346581610999763952037335662189118608626801633331027227099407743520673579874173111804841761043222818369804505235770850540709352740226883124524202142676206195859042340932131947644938334742257263486096061032590138555176332082963135729951573191250247939699844279804405916666114163626598817632130247634039890846231478273922706509713115942135043646577420245088438577392958586534759574607717000244054419341879638578609504889981033222326785820285266390168999462494708745785925811528310879808105166220658456374566946042339569825584010651242606293714364326192202718784861725975347009748035739900113278383897877698635054727544691022201335018754483534594854914504202295406548259315148182838899253610406056698647691906985294983622610437229042243373472127921486246813647688622348074274209569696872412409518579097981725367388109779564983158566637964911922918064834787015571826257423765087320967796777138256921639719077931244248140878452861929120094760327856905569216540550546579338136597853819575897057752147978584358178743815260916309831964482789124975442376820982137235551392805179312967730324024920983524289085555437240713158637029023910309800331171004315699995801014160526907079884257030274699840163193450736618608725965138244273311432272110900028943406944576686603774189388612847298183207982700263822392818776894847922706370564254214443236164183878432329544163593919926204180877570004794638758121351663005051377015876231054612915652702383200517209721490285545981436654493488753097943615593094405191024251693585680269427376214960720536787684065940000011682117504947678757344952275131811429831417261002977381594723252029640591975284825684680067899301134426503974770589829054383855456185002548830909041219489906547546260708968045368237878332398010090173755070255479385801965340837014965177681247137961403189255305408371620239828858170019276981048981615805247408765372436526651375121710000272358558535171564562229200358922575665107411242034444791748443919683754435755016311342512142524711206661384840341766960448132199661786420175226277977459762683054790371999270721494139306628076513245320433035235400982236043394814561285748253590231936623503294015890648907981859684053789310092196280318091813461010192319423153454334656338009341701263257044760983783104642621732368641364785945753879470999314294231930956999179602675925496577477977593189883766559502771504451272091633466439760693556469490257322577751653773785999945453090522279378881337148899337371117573793298151870092444524695923007950939690252633491160137268741659973765895573237491683833558389504942957914878848827237653325561963372031166328871876451560834848083274910952463694230568087174326061823548962817946615484003177442516161959041386621550951090538171426269637366769120836462220806616568236742746381134969059588319586814862258695927546836589307112378982150493216141944271284788027970110585769293975121059119504081284484666373894105363454069520902267763949322984231393473392367632919481949734701285373624912662598402904227250334533942847270991683758913161031911672171061006676871178040739842709485619314017197157587417657935060706181902819094192543791265956003428583423064214271546554575663977025702225433343787896502636197765902681729565888545778144559550054166299006854769289381072219203893743411154769078824936845769583021376539778626654326807013754429216688956372279278767949153888920890607893895483831846451086557494449010606429457096374170189059390556116716146019807654553201174249134611571661913159295195164655531305514765854187587863606882871972887728124064056362751205787683121522515022605038582583360178098327608354207382014517818971605020555337786841072848629965109025736060565012434942180237163949306933157444094965977658303840436004054933181888985018339358232368940181828890798418326435521279518595041187069371118498083096809132291865648228429230037334906394172601533135828956373882778503092586753093964636849968442695864187531534485048638648378387956536797024962572262872133354663950369944602252525753808297407824055908788523514035679620699030427243547804433046202308498407512184622446054829819372706498510838366325775770130012537205452722627472090941583914338766172888321487336029931177021126080093188699951391597951278477932775992448463359406923936864853820572833514130890686501541562305165820142101292507556089176974954242945376560089535172744336276718878716232109810488214612960515510462396115822923939977858159067347655386925075470299680350312856419662752854961681158534691603428686032595556821876874895554716372237104870738986273358399034214752360196729896401750161851922240505320188040896400997099937187389865526515466787943545745432335013619062453510100638255918636767875982151395049614431952811496824075675585251337742670497345404692137354465588937102040031110627120807747549753754577930330000063214794121936137779121653739614365229350671046256155402039803575235330132062624208014444145501177646890218916609900347853013773549017371832552396986469096362763051779552040364444419082450046215116856617152268847729407368635081498511623885336977684586352097153220271082659970703434041110833753372688958588831855846284543182231332056591490813400118574381567879633057308683516924161255075325561536318293399056135584537430063573237951021613821734572134519326810637679610763141120889537338659776502316520600388018520885680134216727596686041779793487131885430800719430992335015476247882103542368927615121186264267174823428888627035127901054782843601409150285051525061842812771308584146299798999777435412664205590326883509449530405183223119420121259590374879992245973648356861241059567809676493826479871157720233367153885016585051638689730764168682842060333333029403763584187770319317040320664895144050750468049352304795958188704055220358090716899569820524307071836724191263113249049025269305210815862309127572861859701654126152251356880974926630043774098610355669183393323385009646481383886628761514118009981439708343590349758306493903932381307169312217014212820666427918607365094726528477782976263130831581913884265891927668079583039074203109560588325296410785583089440797875444487369512150246117978392259909487990994535416551097150140582030533542218051742273712405885552720889856614107484452078710229663136921969981527794402304791006171530686774019148718858806523399604334532547356591013743111681902188161329345157994399841054847291373712881869077575078261035475000260133399987735896075231773548290906498743854045692758335674578203920268058665383495264723823466267245315199093511592617853710319630647545868469038320229549565632152085099562016619452258928762843437363412416056319594707042495976160354392442470918230245401899876791958417983602434973409521980970132286443362312596178403066465909887115238464813017094257119042269511852343428250779971822643405714190368162014821215932832338774017563247299008202958332479818016459376974730633871629030817853579402787561829616422842480027802480409111969100494850156713560350571639821456116552291796918080559067452077625745695248755889706762190530014755980817705242400187144593540425207962969907985795104740034119071913834720785029649042173642825181964496108144515978180412864480242250866525196099937172387000243005894852475557267744921054955467415643083864827188549723252479268823811038786426288248050428042016756616817268287755220082432185371267487856093810447383899515777016486039418082496865806003353306788391290287393337789553637046826305971777996177653784144722604786984105891454718888672233935359779834135896986357906644796809804219268482563345354390434528092264971740102615838711848733814777413740316296286450631671139514435231060834133425889221524827012894471404067001206465703377210592768481276315870606131820830629372065814263641729036201240262716823944216173045997166861461143698938210592816856139097332386046220589889753472246681222150482623961231854419382612310612760944543969442791011495951552108212476834519232455678213363654717821518343416315431533097390240635134657479228012593573687443713913703750270779284331908877007577045350385554269779456624854929451251577664903324394734418814689507722217203805797378664344706182212848474547365415977718948378977707134326699893325742859797686906031353641179280365461155913435080357416948328354629150344775448806867458945669376891223855099678243004954505149522642612858927950403903588460228839522372414762741171033925180000235021248459363941716049735909081939503807199735384820685713742512402112731836654746454837203607586256432904442107975418129392523822895046344492122783479411879682352999903403724198926511231923809146969533205813351825014414614753032309676644244339767198837005370150045831138177784718111398031359154219884936414774687589815212240796358032041081933253804437206393817746208233101698055212038806094273785893069140588992926392481181447531228246414974327458492774142247742034744777803891838911583861875118349101562706663686585197088278241256502694670201612378951802804947143309267432369060269980271029916150359557667626144481750828733070933956914668649854230327874462568385257831445196048860344056743307908018345113598236832343913417520936672877710668905942449487030313486273107416956292450351587414058722662966887179342754671711325884828880142440970118536575471637729671094085402364490725943079945818352329948279461104081986273111447209796031198694712114156494316958140048999944027024090036073293394758373766305186297507349848469492227345328857555178126179181102088571213505421600707976218994517945286120490850603130119198779535316996995508554082946312056494232131113161377513118497907246234803288027572972332775911770218714112201241072874352405409079218998599653282007422451514082213681239109012919949897656071298470999488351789137865687238001977144965724452612693030025427225653541727199372741169584852401079298806096318097982083717824576296709100935410127940390413429614014479607397586430953289955974812204879014162685514681988896765686475386841027295065981276863347017691525069269158776927201606337850347263927207492714201146555449918741614426573936122094397858749070798063619718694622626572037934883873125093242589710772316550689979004556030378893627560396141753546805983713493056340520882601508723246995874824408995561384888573243258959558378183527293555766971089304495304981804480232964521221520908915374739702956350714075173303136147552683985123418003686066226747135942897919874002103065386758427276447435981767619410213298238730766227615203801211863764720217946824768559639405957357659810338751571776922325913751526868574240032504509561120953747285775510196383205561324101783652058028561804260585435709403238262537482679244638890664842938991979429572637104889739737479400337485575441064154358524968327356116160024383216878198358774981999176503001177697786105438109747024686318639740079702520495717750106939700538081358934924254534603729457584815936746918114528902222043431447082774312632113703864796857825779370803559728324598515958497476159880506914725989312860948862786297015429672622114024900815006195982900791276331363788811877521047311753366546723007682018111306323173803529417932613210862328272136898483715419542797524080581810550956247209960867257689059341283221850478012650521727487828223345856924996601393655009686626921716554369683936239756698401795059628621840033791552548418552345106893406502457065272228876521077799394290926744311608511054491920846347424957965243236550989536181308349478300787666328771739741337276956426204612898146962390792862978647532518811472302000460214562654703792473796403180007170360540876975727424178278617812275811627289031701821317729108168815259772859634611376219368229073209836458103755986962442653640605241766212629397530109052633277856666029049304476198156809724469851830935114493441208601613003171290029775736157510557117025035078482818279126621377456736318193893317418408261651092279631698585036411145341058202562465440581419722132218270876362001930398765697557732252559807979929340889210853401248789178263205046939381307302116082158904200525973592351925972057330533112101545435434383252492767954133613613568203459753799815270950121510197463837292742323672548690870090945825730130943694543182700366785884505621721009112608215422169575430053865097864968641502660420410146647046980868968146484719103613032715118685580960940144146046660214683488175138635722164004461976799080208600763542524265118469212702676567767285260756770209219008054537658968582776352663225932670171109394540767533302149975172664449874911176811297895361760940050127016254410852677954726377967490198649847921849400810460095162528103209266981690282588487500365090326403887441425682468644570716485444703659764797466941944415403783189520817964750462739585214748484506326069941183795856025494352968179612350782941976766365066500612305037410351570676201179827850848403674236563146513622686254954670591452702218322017362619331549109955386524849215611983652828067553803921877848585010812348418949993097171456848723796257358955000813542249338502683292406618546367140926514725634430440947737625891855326551823782697877062471426249435853802587700282285637151155531132010262942024192393765243553864233340891789851647440657525727687311543573811952774216914845895935965229188852072265281648469553190623501538739852480994618410530575647865698716729649143729282679358836629231044032069896202148087019803163241785856294765490776337050729632731194168422320998154148581869309006203183889749147611404961862815518779574824578985401471980038800786447956074125034762798310583312084496109803091793203327978986630847589681916848837627447711294432268724591628417547557424486363505843863725973272368944161730280401632597651391283328496023938307715611780726467544351550828325500985548041872522939214813675201147208127527691995837438119608789295550686852201918611909920625072164278991863136571342406636657977790192611951816894787129980405978806061438245997818427230530840046043902360376437634969891058408921145533047383658554257625012874781588596430173111491545660864925529785042481092164890236797682671546591705128309806972755594936811221021810281698941911805908942745168499239855847309105945087562462332528829029877634344729134322958859839705115111422159189202553786073514236801819679462063886123962895827438255390443873689049157558535864055744621905550480589034519871641700855488437925797185677175451562017095929086091470710047163216139383753975893317284152934802671487349126932416209288362888312920196824280674145894704118028483822511178811903416929104554794056977181525637612446936778931319512163834783840506909846135125329062295348134093063754271301628670981912973094812462220127010435396261176456750034988075035387356264076358414752409952726664797690682852575757883825035283419264652486889745324215503132835909916943647936373107510483235503104271227702725704274450785374921961653821921151182468444761102410770045882034226109716505407948288798166677498753135754935065634242325325503011077352735669619119349717430039565863304617807117175581209242652080751983913556550295143369768638829489265585379888523966238051860382200125426049432098420789574207558062746163602750653571542586445597306221727970501572790552275761405885489536588459330408187553333255469214734879075307242273395794472757421592824010417476585588868547271557554879682457779646519394421089216730878860693994932419750742626885839828425913973947714289305089423341069644705436553810843834971507470700793969727300306749217700646114538838367238925461015514660805720225320625952411021423275772669736660737102535216568951387601523482601878041298323730580062971982293891258798314007958552292785360796381350722874319725572962737859072030682901265887429572697408542622683149490947098982441938274924763556055423242838946194079484711450711761411064672135768274399497073553291177207240275381047151506541734228492567860351246394483700551466500676971569822802750464715931684422257543191145730875237627007782584750096407117021159618302148239750097550849946657154270487399218819359560692810016069842710244619435361147094176971560834956854209108745581760658812520473860673725022627618602983267800048431692429179140808632947145423567019148371889721971126674756883448439300364644920344698399543805558136634991944234438610775180433590849222577662489597911365014961368495624979438301287304788201481026941525370223689594128634725986344909179689096824612384102432461792009823419714298440954371986944494788567795368316778926640529011758366818420250865054386264877889573260601079190453584220455155699032534733509945883569059970112314682160179043210166304077193573589025024516071819373452089999053792754988228347892368074623319424052960969409870645356448377716033666495005380313605990807841739002844946847381636011518105506225322066198613854761741557754572268596903592754951608135520963152310256835655550982185367102457872492043397599855073883909725913495833268481837716805307107101638855980370287207871919885467535917545051186255548094106023640091853165942404919347801019871422880563881069634610197026404698328635679931114875445269162141339001002145273096273825018700536308456722790002988492656392980226663726626653350833176246272856461593574190836305265134480542092221617363258659763410751776254571556508504843989208562544662525748064332769227722830432679533547469714488529988981496683478800086679760477418390771001174684336572739230212352543997900229242340939742051198510247687403286562246238252855847991162393297906100952614879022945905639271033326051931567246020851628109509711486478553091108690617189006267711243617438355992644808672752637684722888522772912379054634065515936719178481763328040072449392173416602267656073476668118124084003722666606419794727889891804122059104420619068850148833092547800644429266882565801453151592707058856173004677556451866368811812478471859150857695187353373162239670485317459006502389008146023039978389971774455029586137432232818532595154983065826848177844432851475951652078472727422610426232657397075688057584508352803741937331904263367078540258213374262809209783628443109707988606538550867090192607697337139971029710353333164600470583818900632860156709376033053869006381313487474371347916197294614760937951903835328051748045600741903472026606476446765599711422815681290860494690939282862817512037411886191595167610363866093548555195205588941000373094172559494467596680598750914846054254496203880055960124219345015699537781222967243562131721317091025435224941299637105150510841382819247506437554467090106546565185394360584958281151659716206342926669328022565652920279287591509355662144119452693327619209208719632165456321415166169691649870111670530135238141829729728439827368574312712339667139538575473982814130716694335475223884349576647995038470149628758850759886750935792195697341757900910717261271208076008169529786165479401482333532090114352517116630534544747949736004775416310990894200805987829498807797587580062502389706215320412460426883057051206118241109633014398279486812393781484301156590056785219805356462700487947867345885008863446161222595773992428496069666486072039053414391295497084711861836810680813863495737585831972259353375640630806582430785102701058540186386265350498977605385798717811668951368494037857024298526183434190055445680558735949115268111494723762795132332391800464190111183031260332281132530584125477500669168079738613887842379032032493550643252390267258443297654290918353977759789962839983967004439156717489270222669664910195854797663225403321403733269404779397550874965109868534178446248967038281123375035204926544950118868488681638887661229267056626778471045229683467945800726328302040479682159738323475907363998522656487480762807284853130143229000681859360057287639075132410359306269782017288345659776654657560943119195269333625779645219137715454296883196650623036121725892340676473268589884492052453569723395780194757614068128306295872637701890565717555570253642633738202872936907813004062527501242302489348407797359338675298298968757890251642403077474505095933307194040322801063054077221469028586230947030089738465678593159658664170033070462670364272478751016012184139568634071814504625242447776238326133141019762184561201747119208465677928483216266765071639961406932890994259141550196067255409793906032997440912985091247861098622958793367352351950015480541587503559045934849380396616404148374360614584097105988413362767030242293526399737912612545582982567888030937777184218070652507223841792836210913287085659029035942404119424162868022259108551035807412703529267071980243122850249348552272556789561160138586073660432468201999459324835746085372840201090544029666497444284597087024552418663381233447305903149639939341362614515194073164598400635024117170837787910384566447460435712276111688017224668524111239854159490800628982618685331140345080078911290719563201048152530836693502916832878188351834679243284043427400450367028619084804138099389795074287938149716516232854493065653897298195912861536843260496560543696577476711305291830563507420856346342640482685405019282287492839206803204080565876438503044269215884176903377236297924502184718495627528854677862387125324904236787495076247088595269828166327145134973888876678379890943963290497138774628960720517952365116533387310437318559595621320460928025493348779751552103292164740012305858541984953447669596842480866150975950462097500118832641484015583788519987224608835460898160982581203705040828698045694192263003956570105821793824722575915935927773006464617624908395459112605384349154854603376778025426007843933081216990390631779918998132723103617240084161961128447447752388795224361258392433691958443143551139214322730385850589259232565879839075507999648685658716073741613693091396407161971253722064326210658626158114594034683850258256905027164196860542452155094592367247730854008265764447355297273528252024853331290279095895350631039749901766650152419236588665852747917414618318877127438095314949707370578354019143583831265667463038985685988455792277897336068441793500839385784865504869127502274304303141000233092728091835174151842041432616510695121699561285305077722311816473537212796245470693790409349185852108617572027998599825757731385099575952149722900300642087354483783751105958297307543484704746963655735727971639645866308879730206618958913266402883825632861266768507496717721784373848547773121941625044052040705430171471237831977737988624167760183634825360791073660002852147185009976638360902894793830319913763517487385629909812433874748416960340304695260046701764028194908731984381055614101190234929311744819748757182971917138831646071376520981133475124079146350978839687096544460047278329171907769958192311356072468411419592264027616442230773116771407062694119892628736551249371628940899727678476497785057447897039107076245323446406673697657379268085784089849815551584614907180774551904029103888720861391765819157358688144859849817283868831685510868778852739407717602792974870419296234599318021646237490405358249301693521335839935907142597740800899629705360715038387381831501102908455498542805603007690454903005149316872529454817100453945922151399158778775642566675108629537161808233829907888525459653014454724558670990231062547403768709218575141047954625900573968189598015311382437593400803317959738443369517874119093661142870816816060938582249844187905336709203537054743759399419526115198585071045976893967589514925046068555499470028798507130345463839271761676315804480170275026226930372161102968873370974122563813459698891292158651226346242124750392790134044180809308365302289535888271900255021348756368919049458645011885454335164691575875664560257492246585148578083577186486378435679959332856204725128886160433482177629835024264646174762349809103626552679426173833064010763879263788399930320014278087048493791269201105877691509526526161054658723972192329797757578515067337418984653460283020850471913440889339383101747162068858712869301361651678922850051914796477954877710791588269006752425112040448694909100589071218867326193846943685273766015247449594502959355360140846177180271391384327441273495434342372739488986015773179143664539990867500066764972693947676929926011828728055830131981245266074635717300751293304329760624344557502439035528096000220711264032325831241137548897876724181948696919826352945409260504551222657542206528183339745008860400881420167383480059771911129621138231786092242042057411312465423202419334515517064968869545342484723678403731916411709860538597738539190856189088670537756477085135769944118110422695752462914189821450187465416695853896186119823465273407872132196632404185087303691616430782555680003158706580709044079658433570467997964503422611950236181674943448540648751137982653952416145682381817855734572814697364453385187939126116327348175570915806025964789379443293615016630586662965070957089619069994448643280513401576174179395625575658317047487128428426229336648957890800337221170954285142142115163731178280825810242153070072084251976988311574387132267845998289798983484579288645768866607086809121217013523260570278304219446712941301560658534179099744092292777848255330836987506081355633588700887210061049565729065622037771882584912512694967276190556821902037797635193619636916619621529161242217830643817078186964746726153474142414801279798939249507195585357675347546250425031194608989577885947838516647271493047571880210023551692286827363795441978926351690014600383994469054771000200811350573598395415577443055854686709113000417014389636287314527258121172912677845799585858951071377944010595465528571824461614530803730444032590359522703234183201318134689409019914619391565020127775887376079040549254797464835719855077322018617257644719004957164070769329907125855720891968595307901640680863478215068092436243444404770235418426688932653351572153346825749919223260749301809816104678593807838806021484023946057575909561079586622591674626949884993211687925025785059318374392386574801731258271206395736329830931995956134652294146414291379930206023404478430693811276306530553271580290988460554490084846039129780739705784165455464605905847798000231666246435450744849587134982527801566130641661120363876812249381204879531229715797876533253832192612369397397958077217874862119240882630361286480857727007394014248127664852533249361884331761085634434341352842592408072289735338558456405208640191966778594613080825114599286257845455958623917599767846885234215512690950236821063259661767681549906608799550713804911837326087883111266035522633615676462188364914006784826370839276862771917697034449930023369471937638268991290982418446013211727780442617321522348747814158862960309663268147040305454484951731599055256040992284811408893508550634242717947069091853976175481072875669072539125764361703982664640782966987447540479983138305213043534380612244681171432197220914501976401102604132131523221933938699912036444016570738758760790102605845611008772502537209395432464406689139064242372054766352899953677672449394113432474601479921773630426433782437313789715635617543086476460518301318695753385365634298430581364843643483482037890770740103569867948781465304598038504020320728123688002331424335704147145468777471042259991324107763982265947962424304073332492880402672192226398432799559688097750442669149168161662169091198231953630063387456552151391309573785560017069049969519847964462329406386226285244659827962016175523099719428589886147638797968037854896693969681478264227877859565819718583500849297759958893896220020122667190772129519836370172516557150099228343982076694858301248487758205121719802737290938883181780061183713785065904445356772705111607704841808674809685867847287756929998616067659707623416344923482232931450604826774104874170393359642120829845809137788652302147808821001527162181111713217662882032406607377766423026812576342983013982048554648127600930657373297589907633088255542273680368245385111624535891925218490774960836571528595991442182388608522155434671896187677251020651683902602118682875834624425434430333453668037748623843281647424207621325637378222256581393370102019151273903570000746723122395061857984380039689462306147203336034306090166398579614691052538893181788976906326728189288767190562522685234047600703913778219559864775035173506311150985566832195348369335933362181215481955470711276626585223492192638162782265001310105139477568853992923301712767189239759404076895476372368036315189501502073147080438496119697639926426505007404681019565724711830503073979552637218233357362734268117362343667272371501243226581165520664442890361077724200795831809571979555077033991846285822678817354926655961502612476766827890450589415681241504797055499477352961090854487148902149452629124740531877239203595809301628014628729719795437261695850360060855070933907500567658805009109431302029346886071968581513018254644728144587864008694455431532494085766559598435110078228486011930224883420085967501429156782186119271467283556120365400577462115694466921295755652891701490117586674303717707004602558550126186899476915272309300238299748618816156514832957122142632517911875302588544093266540358815797093219957993293881562261855316323116412036742264931078260147628264519596866744937587341198294132581674351983962458094969630011834338740128653261207170922347231406912715396400181072718818816732727139954262800613964007004552580169247643096177310581751801605622718742133687655810626293235742803612057887501929761047128377093159707372621668934788103298021535858749801176351567746838098856182680006738374227886145603336697046755409916546545443991884954734779110803825092210634437556467527629226264657037844706696370032499206875973478333675413982859441999321901717856621287500394817506937756483047224647189736946264986883955104872522090487292497609461645680099938191688211751648869438934694018599964003111961135316068455305201097454538307359793221414905055477476294473335352394015780872912087519017730503539885699379240170762893675400582695865232784668121076278408216247536104815489601451506390929859802186985833623254715518925737220227401339710412065484790489667186964288044653063172741683750378757453896655132882201895518196944044823687105759300931552653362024653164801408977189720603125646966512236931284815510815764030631696343545679117824481981952072250295870852509366589042376645574251538041907659966256844165979399137931881717905641321175577527592304315666584750110070168420973321148542225149363421104819209178337748114205779750164789162282453300204002606597155404841067649954208284969435004459112057145196577630926611829034625785549474163269300874313717252805309471401550449244524719736558744369705865626744029866109792202197747644638496692317950004565100926779753280533222745818769750526738085353204943015061808033117610524748551880126917565593883509633699433032960694274190284884017057842424291562847574366457839475280925616282742666662015181835761580545603081703898788007520304542589160240069612049083391352927204235688557706156660729234853852094965814112499652080953286752696045709048003406561865654101448045645599697972740874741198159972352906696035422620336118796938098430302109562804141645825974163723695231312108183952505717812677540311408895147752017092399244956930886236384714358650301594816508618296891970548165475437377185408734026540187909112620805485019791722989975567948061139141204160399059212482071914551177920755447483851449242299742056903717983052219522316714751361634492624113798923900136807717020358724957410603681279943883980419537188230271212017818053425642355248307540408692794697385968279307095865393684549619521926689130513997268071723628309958693511971996807329371515852575100760265624250287953722555256510385659430917440659457585534646064164673107076268490274405635197687306852526712899747523935923412380110827347334529410315948776966121844387994042036306926612298206312887316053562040691492056815389470590218135616073462125700479011197332795691820995870071489391048833459986263110174891621138367741955692637976763247426124189296896250007502864293100521252070817760949355828478667972693990428811960858575260256520620552910617084434282184044900791674558540876915162481161745700839694582596607113250570426889703694289011213997204365015680560981865548675580731811615270879097588802785956960847760993463757416204820131008160828255818318785340716503885332304878193419290927266199217230542576564792323877410312154423538009943878581602333847061560809763062336200175272400691416351238232462410686776601443567660524890401623049777299060759785988289285422915970748368583002859053414431518636653982396745800331381094801327499330528778066242187589828140071609218167010904992154356835285359567949243366400735363402658088821523508141229687684826859762052944930584147807113954106488925628828227806836107935519542525123019888058278782341279433668409558353715179565737971664221940760813775164362577798754127112208455028869201516994650335522555381171188589841564907223122855438762389094482563443110290224698818333006728769970066053479740348375501086206083465644113590665591257915484267102493923632453044897749766180077442066971603821868008949219504001196434080163579063466939839357195215858380846015704446182597861769207424920788372373391879334435596498815636692248068439233343301092948779960869945983901773790287040417820774149525062387574912565456049229955554243172682617662522833286110777068838625370801251114428668611578022522644616556485376326832747018102628143205556364332239006248595351686430132586069748835463083383333572210238943505089602693623694234456637520282830887754717717758900064925694312479808121655339106692112495091157429171648098302734327344742373546286626291920258030651046281374589159959508058356485254529729792778240867723211835152685669011424473635428809019280802285982921197878209502046530929084009738846507603161849112502862656871832460635254828421563605733375667129095106480176286903562915842291184225380473048897482603777314913800565533479078283683087005560558783814485988295244484474373155672271331266545152526589777660309038463046508109678720986074933205195240801181796784058348348555231350304959956496590191430276966475409595039910924700908758250604025546937028913894651804193491873451854646033929983155609739564171977657045663994674878871197748360878007402215040832365291689637258186105817852489589179693564071250259343346550977906044130764886490293939422427175750362931624144180441919718633262075839329267933092519555017936034608500946030743076382937016931398531362743119675255445619939305083098379296371282276394548535797712381912757449069415101883660891416601099256574492374800770310876697678089118868119119038121249726300203979773114772987850016471926194865694082847826571850798071899222265383358819403972615674638640584003238141906729974176245685437494793661568520125995442411229812888848848943068185118811789159610875886026902955993950464143690841990834275635521656963180952348633073647656392596198589803084569997253068191219243523470275990605972177553919616495592597024302069105193260906433882595122326077371504260984602315390595731344512621809090359967421977274127375628796249108802461615399653513250026569605653492118732427363690523138518485070187078894695320682205470288641787694089298258562376627268971153396724773380178622930903483311742157346905977412383327981191826030508358921702791414644374162322336959050351804679297468919670006683577400827138891937482157240972079307393652472906015227951678920129666626058835977645259927032207598006907271116943431030848263411726280361926069344638900243073642279776122244178667015570443122886921562777906892284985760520617079791458674292848989039623922715909077572538908100008011282035998441135220134956349714838964308612197179593018304144717176311054203788612612575014466461007775030807234773492958403109282693899232908677575227091490248181292938336675522141076086850254668991250037895523158230277661244424036494662255573873951994734497049288281346065116586614627453033587435278550291318167475227199079207296825406427565365133391388954805182358290460190222592449338221613602001712975220167108875465966363379240106993195507710347465395966205384559976452835397889495226302976381118933638892962536064111831284398256369880201920079351971372537132715180644418571542380245754563390603222920266064187142121834586044405981132711947328594407225907631831073310598645117102798419730199028228361442584438797840178511907081595431679819516334796531065205821318838571700402370600634545872068294352443351974346707469907821456277282837969989849434334763986797728299021623183137585210845662003922472881954363757889784364457982557515848086403691424075252612313098479574306991966717211488006243190800693785435305961508015099626492562774598825976152914320359980523258432050757156417340860882939915191207295257151658700872006159185569434750323633381496176937165258392809850992808802584421835061072508897336483843568384777832539295941981311818452403254487642179324651735403921109535296921629178453238669205170353468997777239671529941772123820662656361095923371145022088445614162443880777475378295856518910975161243834626220344094721954970491602936705364481118625788793737118787079606086544104391475582007300645038013595435666728955423350700408190495025508774342587208478670078260119780878089712042287469754348373776375198442327385774856590756194549910121437184886575172759248493722763409737911097518802186723514079320331361660707555106858749749196574281768747560548916734067386250352697620553516565420099277583824554695782435279459060946375682970875309682115002575707003625235366681184426595921683421303103233118045792387786128349216262653519406214102075723232039806283134825542700004661532981457859141914702727443248969482637482269854904662380530552072218843722043562422409451483170430677405355911951319072714923020837264009424835029860321735972364113002795613065882234291645952111475722133756985649052147829502083051524387447698310166645468993967181733009578306793053408579079368899500295390037901661471699546569733325166999603861654021342898331047451067319662673765344659135691200118269033874326520180500474761874854132543607206994428142326584043169302864618384847358755956118262633562430281601457475200963079606705399226516199748603660539416647449617779475009730667057901676143376168372604748285120790322535770415755290097067663156853092675239136929628467888146004428971496767419766240757073462378655868769173791480786378973370184068944606004444184676988472660930528455902696432238457934352847657921289699035365629256862721987519257359316456581564496146886743124580858397768876984560278290533587058570374117890318833095773504580289549197268622357779462935303678845594607135686016773264500729685991977029530028868989279696768908487256380156602798823692003682682632777639900005771356851705673638713193357158533950521163674126519332476922844627051204333214092610946869926082153802662633513118928541947350384090514670394595236092003773276792566618482744817686455339663438239008421570936576456646532300522187657177124961782844585427214675175682953357442439111597884113309158168791927722195209146156010543516538708871973522680358131293317861390059307360423128677823247338767642476500708904208038944375959011643230666262259097307603373233719498155820077442317254727252301138094163279375485910628792305609680763878867544238954358198997712083234991468385310854672970341683308111890151941098738172693184980395086298883058003088708809726274066368965534220335891154368020606866933292111209086907650220439506042835268816626546149744114460996955757980972232932095866258591920629035086896294563064731976584017440838303776576197507345036546950168086346747407352493604874044942043357922005991574114787582020962705771116028487132515554047831242656627692135163789819000750288090438368640179566261806845855053045317556132201978499926751310539294380980510399070725276673866991820854060907372936878858904317988023231711032745846702814748372486016972689839746134863439735120289804622785242457299884329660192824604678393514728752999614309301489542531332317452391119410241229985939845592037284521431044766757320411703482307895012942807834621739625160403364217727670000869652508317076459313168784629502545238520578736747884372149921335872063641583124010772798660428920125259039018435365612644258755632326820340057108609493989919125070999605896904579618840105576963250804337553561958436555766693852538477560190121018528755260821845821212601874770326337171427230998237292672865736826997741980113330311508708628930939498844456954314069276806143216406192260023287899193988893803212818486200863981820043058046742745072943709118719090595483453375625183322949521826764130886532032024809105259644802683349764629401950992112150833781372898294778944688243535908614668203836206387412679193698146212539893382376047624757537649208711026798295101147874376782436428876697530745673067822379404573217905343237280643816337631781550442126861252131490609744458163332100098333381329458038812215209883810934447084775392742847092163853431296522721622899130408541863209107984448841545392071920745821361170995293966536560675585142169477500283930569253405116418140741297994137008751664239937047567725141110710546029627465998817259333114413076390880229997863786552601014926928091833028649948088713111555590110755540883949264566069316743301094074747006128385239649243833959446886823094018168867177817265705340971517242077666396625799217346748843349527851650444825684771822454199461467236323814899064455474218991127995720523435935816495928938613593804214536888150446294852834039807891701827070210750864069962055701673559094904396316111377579871904512898196383265154874636571690793951598842016303019433140944347076999538496394864525668570626243374157018207512967284334486195213348832837338526885677693619580702638989034222533227314347888936118993211381597435401177071319639976180014016348267734427909012215912424363336512673092343847764804724675231053222487067538834635528855714181629268585339978611064997136849944818441775011656139487926480836086310305411093995668138162717244126905853025976766651053645938662073930660727481809667395542468974413103995270744220488328948891216645996207439367675244431095994313331732765454478165572854553079769713186879448777396797331403516665615155899443416160762545162043305785438667703684945936494471617321901756111072265442247549510275681694530031468090633369287623246891725969296265947408606805698339059369133356365723688765103513032259148760420697799600340076275224312719070743531894457994611932077985486486157768556334655018643550549807838297601357640491300597269504343932179062705236251374239454842849486181864710461647262711349657141372624335856451142616237996830450550388377474121799974364256585260868039453255193818163874676524831636257290533948082780620697721021794038158736018661167432741136121815992457665866359495276227166605111217357283050838067417355426454686634108955044867231914312924704205853617660921879951242631624261123566229676179919503546134601429608757154187446308920356827670653864552071594159186552306165690487153393964493888552126224072895516230559202165762981118076666772682890891992732257890909584920788096202529362243621036262824110536416695484387415964556437696006632638913146400874353120443098077055707165534202261673593672038649976614222790595261040970368975666487480393673957758222507668466335152926216099530520817876129472211220661637904390462899572822483898758465337580020057775858633718561430275536261931188665754335516892209749783848730344907336974173246355725987644205280998944092731650987008025362002620752470724880291632310670637640897851429089339667487796344727191089879247563184848433559673397685940643269651863651154840938285261291937288374285267204796179171218355230127770192653337606908615812582508620278383782511822829828029226044566538843480906591072248708006775793199025386740780600491966717436306717725729513763528156992813613546988158826550143877892674006149699184525426221360065375820358350118341986525809140359806709462772593652083151361736877008763207526310678806656512003564277481301477443221820803252804661173463061236446682270736415277042370531511980541293831443068735413396662862581317402517134986307437580744410030270567691630195180489669831413907169777063526833254737766478286020617323585930884565324652772166596123429168370368660034184088518179200919937061341673028925168832767197603479638610236599648689152889732101983709515988449189472875382132481628406838314943470423665600089827799325358153114355538848454582587267913855121249362229973945312457863606186091571185761282419395203186050959319688217440395476823144094945707874940432298307054069655999474819177912627645402798764220279871921327419310330150182081844098636427749202050828420309200022095217968143205407280034800750420797207729541469401139345267888990032462227862423281957244801378633082184104057462355897540974052191345153046928767682595787636086492282723004656903179676798889546367666359445604490068125102387559754699373491775637878044873465107170083605932100359042296996248035872503562941396693448880578627704226456333367463114788097730950096785359381946532260558162066758297630485307419687284281670214451596819759061327462158911864914003092219354993684231422509275284735253837210935940904874256991109480156201639812721491175332430251350332102004318651530057487443644874306001026104716531675965587925601366078842600057010181543744547085606671713628086295624000441267973547910383986336936240864522641919343672243075843830650162225974896436632922950109201301440546890743221070899006431211555918573842664826845363370743356747501583254536799697150950186495480907990728689541050281427741426677526134966363993537685232070649902550379453337503585109640002397534079420112102060464281429986397759891447584830934957837357449988519572456810886891147317971070503513407451327093293325863669617624408629672607882520279581401992106136466131418230442013811336306817984149421116541492591104947039507873564072938186930773548240926088097219185071578556235275240634313637805362574565810244591349465891336899156452374839514146911450186115254048895374153574686737057015095108015383889897852991788769144843801482177508178846964908464780803639354491573592443687690173964892859843030194147443697142115099903695998269608334522536950494266742521433000710543049723831316319533733706283473713103071151747603076860764774579753406086290646794375685992137025085226817215086716891700866108250248976239901687917745382492644306320037722452015782802075224512506444681758290739040277515501432469836780135318770208053304695523078274299640141438030836379294569387851786661111287155056916354751595073009267615520285564205976017734561849322666577774698085785433414007935780911613929591861475003390020132250705701089906167643380879614391713076675064835100627992129850732025418515295391688564694219044185081396224620781471355635797748210700780074875291603204466071897719892173315061075864020040337074850801866675186370635900819862566022960402874318813318153307306868189300865855252051983580823456383337943123184919823547195297949579167620553736968320825025236089082666247533048689379384064864505010279011332849766037765711342135160322955637224396609765296079003559343891012550785692770062299722690453199046631227554091041753209297411148841644230418390772302417748500755407574892817269072474683398687655313038828635714782899131511653899461706155375000407112271877435272057247455797200562573544805989652277904272125314258460095679163970895664001804657860752902918746573720763667594717826849528879202180848188504746553167513061307335162670294818722807667736867426479261132770755306382474731843522488745006975040781287449258186404447000767222729450121896745456134154950464126815521223978638736620572600262864397307901565812379899844938870914552643346113576193154381574808920163183322843139332566572157197266589178547905684993867732173669216515992667592635066004684005629445938535719214278888229774888125481013948064591355050917299891798503517346129197206253098118885957898071714172406643898542514756004891117236339902579456024234888990533236671640158008879364189862728873155969145550114681353703017266551658464192570012754542941578006946340302825732313685059181746876524461477010676217936526158447928107858977106879930604504426960983773441423915334224951595013616372602705613719419406784828479011713779239218046795361958352472746196979446226564146472629462601150730866162907354462554744689354191072144334215833877230507638934842820838846356258984538739705156719579765882940987173310524919526617907186471801675455140456334329544217406524341767223626151126925862237246766230703073029469140546069407906820260149145730606868757359434345612956783003103837877749683609588589424442512506037669570908055948800316695255816857605659782911712656225717382231436116339730607646628811542305835305737364086807582690073330592801471544184470677600852495599281404957227167134672788534155893971814678561782956953789862360730197454451985665250008300498286007480034438501508436089324251957151539437084352889628010061381884622002719135220287894533122617928660431781853077918846466313452082690121094141595812872844502774468269812574427853972366415723877978197705001931075266585594234752472263227932059747109852549885850398401537093954808245157951521245022556614329735685226606608129559684450889847609402677066375368251948382586599203517295289908821004142255542861317758574909802746254862370691098304449494093845982458253428720756834832478743231175871638755462159183318896417883884519527620852034452847363127699535291917338101752001805636147163180000469540304382162969098642578587573739507312796385982174128243689530536743353442265875781196092955613788469446271197072761424120504610424848050241425729699366221375745694608099594818847443624818405126102319014445576435905065122349969379130752956786819883589573858653356234183559332503467040420469409662810991028730503708805738614793458573630188923880555412312613078121204435854350126529695369107782550632059252003415310587479059923738772431223933302996551774168173155539094531240234757672360943379673376727160657558734508182558038017575041164102567198517869275020659090328356093493807824483721559840153879711146323172347010859668886853625558638545950385665999422794837489097343452345141772342185874539370183794312350492274540957513681381136012748198240594244067731855630209443040748633606333349863903684753064661015228763710966726967492040178775907582416691780319866619528080275118246103599450479289684980695443659530260569174996150487888898945651725525661612260736406138257983211302250862832592630452736081839425762775727645745743647764499209354918508430821438710430511639617301864702760943058550709690176027756636587167684400406806383257441943205740097126242333797719663212494043349546892143060617288947159798365363264371276456068719463625960652837360487217155215273634723822648822576279835267638754857623486824617260128358863349754141883000223593540127573668815829676111280638118694730598856303661141984799135087251923308856170443222782751079303798737148585108143118240159118995564691568123464059348908693912518365451985341952341359704115097918682406574095681065848766792892666256388932840279551370234074654250605921877800994301054938469442910745896998677405724422288756197421024912997051894659160219885181450551188677738311902686055522040245623073024620013812738125737241990317148544584764830729303197089284049773642019742670773647768478866821412093758330175165262985569538637049773087165057956383069347124470898626215346020899471027594841553253653654968483804516345938368770283054992923606237053639363928975228559155035058101287828506550324879967439406723454148662243040162808450989674413996945695213649641328399722417217046076645389303169443732351473663549088049548226484907677093232084289169210731836881096732229545672031814788219129241589220061068238049121434574946717699212612240478008322326911186324258026726737141339890539391764057534351402317392109637511743754743166067919027809030816165905165395132916136100127844182733501390313042660364214043729195187396989595508615977259324955161296760113944787454421753721950816898795367541496932719932980730108170481490188364917129044299243342365658205214287301207999596163959779105107953253136636811696129975904652209758718131771617259191868737268133529674672270547816595717790577446216240956136132930296901461996272389989769058006744960032519069662145485062586430651298730084306789055416249715566232245693753008544151130692384690530987546985989209883185722198488472767679207646042848944788724447100953061932913680173975843209936046670649904222208702929164711222186570044260993881370370645202745218652311846646003988469164443693904416750457522391807409232879938148378397173779307963555299512351695137573540981081587815761700032767156141047355648795917781337135091757881173005366868204635169294230802584193982332315117444439370031725091730346529100507888101619016986393135515564790631700063003302093556856756801061534794510648148698438156655509899016266909447915206204572422317136707044406937820116138882770341934113975087930045447139853143317247696087210737193144945603693926766591654360476961395915065704582491199822844331929589081989186873951130025702057811488092184873674215462240812152095507644736664810846901203286853743725714034970726161992419350770747730210657282937866373149003033933235560775619167294615175808242080395418342521556356010510007145819244324187592525083713103049359340208224871475328601209493766596662470281020988687572446186989686081932952441838954001975631304573687234012649735670181914756705270830601478376902205527348657988325736350825465417203748265651539214271661271391527172454851974531087727695012904383727320267752878755681493190342398833825635607907586575335675901937269397627821487602094513646560879441754101515931071505935819294996481675192547560625909152756456775981928025397435177492178103546297418544393232212674452086030534242843839319470296119143662812887655702160756046144526052523741065483116705655012714560489393289707225231906204162498626406744531122461914864077625950518428849492997152229083002681915714019342794758002026180971992999000747998159076373247732374882973350213274699632937193644758777069326381428246108193798310897821371226267641308435366615679856157717880582412365648523394417987852345575967737618623054249454058022570038733905791636411208951667066566020342875791404020783929425109799064006161621894358448602099709710168521159635007535845887798910112394037985261511412705936164926088093498638555289283661971825656974478475072687726188172800032419008486821974746816025568713068067362425562808717074659519365341849179096703545563956431992128913394136820937427488362667012522073971078638884157690588004834385605777001161533098551195283515503413656671760335563829497685165788236033726705743757136301791664505954000872301238838122725420325063678179514762400148539729272490375817430978480249097282071769385719234269533063583245497887880020194670775703242087773225540270641669998045953450134498843559201105627468063329520908541662751390051122771338046993989257124610408372096927408417658901793630610461281854723812150378039431450131784019208513674257990514523653157629699928873394103174497470766010755929043156457849348870504323114463110069093682510526526600883842614767611432877666233253479431074214175504406109034821477050549434571934502374699434433416138429666128932683491526260004051011840994327855499276552132641718498102308548380672498594019031573464715342702435024074904263923913206677914434214614845336917491637207736869968095661661500139185757683138615201374692709292083624446957007795965359399250223943768619487411574627110784222330080843228841034816208689193440062457603820209042203777078353003331545245575365110620597683889865160407594011907678343964297956634866011310654598163376865468006329017252386691026859818773091087775884966962897452675619737122675900565944955371720209448458477438274635724282581145617713809945960284585233619024863501792734488693545980646896068203970759840762502418678369172280341904045757400017135005680819015258800523349582026385827326198239136630081608886557888923375186369263806404438368537968903047792239749394192631956448800023871476295275382294853075074898518358659973910119536277007375073479154227454403882277569078299961671786314112938729246160759304596307672774842741678541073082602954320677445253533981041332047853612142045666654229229443198190658476537964497577557829654634825389439122710310646094527474158972278410229888440169128657091629563423224973415203525854767911911777106277220052950777072123637346443087618544631966514645483585489756332609398076636031835941495074211614319676549014038973941615545975497306703952180588695887572937257034731720344199397046537926976789270291935886524597098373391752494055891814209235617088671117684246219671199045192843717445940675270523201494416177543316239823037692723077370911008294395161684828857237711509245389503927336227037358917110712873520480391434846684643117368881259089850864516800029174637321856826949851829781652891144565229206355439590567715953487293670938462974697053503254981496413622961879254255823100381073697317134616076207971306564467459661719354580200194246076305621526071097342538064716752844711743048827997798271271113631407793479571296509444844228517969865887374404986986201192822871591318487145992424450561414733536457362388395515354162115085124535571085993971934087466314034170072190065759394381821763219693642002146481027753636076245803004168483510482448531463984208235632809232322841049082460902403276117465142204371754194839416344057189803956159690329880467623556193712266153018378153644677054728126769377664864290445864234344596855041433767775257480002328237467698019863411193624281056303014365069096746533396272395875456022087987649679668067238034575711034818042789262228058256658168858537141847780033997109775371333888163672929486053532560677309088248177155082256132845333622401135029556321697677563853750598221350017643104298249757391311121893349014816064028276037340905420288354134479748402970435465541633763646637815755344038335743571983046235514575199357033155386645144977441537400237809810274414341846859741788278338767309493432724381397734071920673036052445934687668707852405490723447849038723652101624815967682020481964050219213586848052036293248732780173010493399891836075425162648176551517424025274625170272247025700886118001290405445327499183715246441209220805854936462169504015992434453825327603146658187798975570099838353528708823283685983717841554782978787085102699167690070309145563312173455413207608670633556677223380566742757070048399026910953507072560253903439476439198980581533394354304799623270848315750254879515073479991363548155991054567051685945168307878113769852043238059773662331802603461745117932402185771144510279281708156735566013416780345052415040334551394468595643729308700379872990358549194523560493794924423270684093931776286991594858967323719499232890160498155821150373550845522992625154683144748255386316565271249756121603434056718901378410901413872881956426097525259971921725251175626465420942799909027859170242946131568790373118460469808762007343908846224042147577149599171450222119767600213447877161060436620602610968519359927265162931845343811237999261616907328996867955155570629441311482313727892451453343288473709015585329904127745189746677665471652596626954454675674624177177869760265973996823673406030974411165906418904319643517816435951561198343438670746087194847658607976245332835107004391500878656942468121511155733059086320767107975406610493575614454931654912172358014622460204160812046972558557719602633879174521418014821868272332107374045233658419516574352098290601363091529680050101978522307856103176235286988857674193500586348513269541187380841623700288103036030797055919473951062226618951765297492401094702777605139218456942254587881422628296762380674605556514284810426046453109787042218248973632158133261272188741891420306940075184155016896641553465419805579828404706144097757000473676194512921530193444100410651229670619004879024681550152562759824158073565642764776245763910294364511846975468141039683709031063181203492157288507650667796301495940885338018320874629491017345036973864162669809892978111844959346282014759489924930632156560218365297144711203486050229432298203362148648252137228457950668706049626071727987126123728192205615451000691918242162697329769679185369607870372528520640387892059566967396194184787361471327178837478893977843940269829410719698025105647144058260097845237870139461239293932837258647843197012445591705024787498995785260415570458590085084874270923972654555508318319656917249735740677049347547680591400802615824815026071479569610701961316445716764184967999430037765125603754018533190431158684390830906791509368893861114486889509262873157022754173884311589203920909661328789596531686651165251294493343875114829123367544657179640433905440634310362366685571023301321197372669025745092355549532567568712488030727083648931130476632771745559063296943104408730017616436260296780787365077448784558523933864759398251220132942867046271392947562524746384092403851352808597889766294917899514167574721646575064162417981314040326915398068872126819353323821385991964984290354824788445860989718222220665409097745822249060799499644600159875122489293787159385108392077182585669063931788320372297413792881545772257128365637162369913169259303996284557079581224941197958931814567610683644908937488327003216558860476677624210002353846306597201818328647832864230857375392741565516274494497176497777071185424808957357031911760527466855581793517691613945496261834162362824659089482865899693270398198204040522106363672442079285947290557133898461044701444059033586796037446132787324315585259443684246323721748554295968996854394254141467588102130528368977089823037335965998932518604479296547691266018551079104316129742477449096481015964414048785912080552479472926074195330590025362830935827427144110531578961662553859670583796528817130951911672962379646505394216979121541588532545670238756313326636908026443573006655001322696999873548498345967751120652906058841773345093003693543907273853985577233984721088671288477429485037581387183614688309802460511003963600703515290062949432708772168376844250842873999805336429366547263351409258297974486651417751234763634815167836546531943129077549713833021268755466190208399428941932252616009347177907124562013171628472418525994138822941816758464097627879574046049291960319244957678253471344200739854240639910666877880094193480813379277958477763777927513387134312082018499393530343867940768036683891948378594260002664932424898431353956886119865845083123925153974190848557018445722922590967087785271696576571288063392043118797534611761034558279805879770034236092128812446949962307558216367332604916869079002071059022715110075568586538633567569407208516510577534614860536887802216549829141099877965778015801716284249337701295418957160230206602808517550370473293723750595837603976559270542152323261807477444895181251498412171227692265553636637939316210925598014315895778942322714732412616544297823288982001203635249762094741076115306429621993000580755529305064489753997556389196586288037736320145772099699452998569424559109386876771530331882511323298763017954715873213236930614183599886863330763545558665635700779801628712131830037813516734736317341624564771523885715791479846744475029703187280259937016715461815582861202032852600312296816779802442042541695017547399882097688679576333873608293763071292144929866928595151065047308198222187687090129350970874777644455652511144540273002759607515803857599844005700519976363251514452398536209075175091312987045216250548939642729807620884470353280639541412734936230818716507009831834954845964931140073776237869908149137316373713168217147159399360124948506059654026098202716768095982575328601983017622495332398010379113326306681783162971856723835576123812215164038580844794318264137527664499948115179981229013162034822564049210968692379696545736629569714123270596416814388273616799310572401805873503973454345138737426117809687716113232358170382498903121000360536836135282848934948058532828187288316777558803435600939920552077924751333375769481584519481418109954604175773797289382692785860889039119869646932703366771694300236837572147182469596856237716596868661941390119107160495632655843406889276796579319023548765511402399666796115306968446586575590662908388500066565145029793824656147803532989205839208629522439424154160330548248428103390320063753104204558541791052305086077341929990698865583130559268098128689460032607076196192256942449246053369375879895574343154272403760850429129408368565077043319979183529159727732106173154402268858673610481524291378568083051112075983546276952919700498512611227327845802978687315972031719604106906677302366730101859726962945857483702306923151509613468094380725538868383825159804111129399945699966853734972610883858429406562508146769767817192169483731665792368291205064088133223344036227894987464422406733232178061443791194748194499453186323510380714408548833826450716068675475319909049344174635946605231462622663548140018603052123192249493458701871637989076288793353466303207168974286058709132008735493936710008358986715471233056864501224879246405551118118402351796159451409841063880670327705148967582934104400128569950662312193244715578692291271331355887959319444257884687251837134427994601815271969645280601199764860812771862748835273293597633831916933749434790209291631119505510667476971388475501578879709666939682187623244252275306523634156428105580531392100162570713878366195773841208216938418864147457606726542508218631042358771684172068556356564986233425813268402795988534416451534778558057732005663707946077399052304319614763621510480645343847169092173111040355384917977693069622502670080806111018584784407258429686362609581999571730082731421917199045823957087689301207334919184140373675305586387106856319930482531147553100392776398155801387432212980341215905556666179131870283767067273126672028342400902983747377040975459278311554308209268750623827700301655036204394460914818422683317093408548145452740349171439026493988151586485196853482363875754688008556800469149221753465386852594642919079488073836093467364896337762177560106493436924369548387292706178134046331917836353513723903690369229897590445596950662525252707291293229064890999527852013450917244696440921360588819127836612223555661725390452865234827230642212924529094248945939541095304736049971898589253723258481056975551675098309544699754973131866485442736903423243583682676512948591825509134651657399434478965195595700694987892384834795572846132095318565501731519992742546731784059917653991000782917994984307565138147675592017671521369127630403352412454842595442560688444828748404517719517303362484117243589158385267450992611757501873391176909918605685566735213446514886874474187664920067754822031530971849086205309119630828283135999214722093394673684266461864452866526544773303849532306613650335762262491710271707382089095331027990144024912126467206638158155968177500571541647350405231310228283376934944212995996832902940092194250387494883983636576147110669367778812508741258691595024948951733730679415731012664412259484604180541335845815326716812541815458549605739425809191538715086324694645757010536028515742690979636961400589775562488594688152857126379386785069232941478876951163422011303814410858466508707834170977616749736862748186585201870487417224004502740023973261730513961138756112328249617261134919973921169879706101658532158696357921368030924080270189843059078664007650504172644313089975299764247445216441779435311476705826158340188132424360339692936779182802519291543106164644149652180566519016539162703193846891257356606158455054528594356952446793601473538472221311443360104103353074868251574472950976317068263781813927018370722145229588849142903271622751329509969488310440030614641526700072586356357901159038100957216469045280431117140373755158408849423032688321438719789212627293143095213688235909998922932303305585807213052311188009099041828242992906339081719605465213465195261649331530379968604735841767804553887094412526449126210520739210179517486065393874563035868318583216467491715507696917776969013650293462386435616091830060888186216277165905771276598896224947937552350123845339266489343742022359649121976978666904592167452897781855981557344795666002419638468941177185345799412534344071543229644129123115626611769747514986037248881416046059286559414171666230625231067695588426514974936345283548725919529007156283350325759057597905580453594466153049645693089353363784171092051576659252068067010497581564940049933949550960270610362566245257848608450896070185280782538043043681223373981122271847709634195310647326313807298855203223101610873674647584912781226700527895804341059212719679054137691439601135545374250278560678231506195625587071664346451188114124452377109772692416535662473109731761475335027684929287849914371310653560503067138657873241509408245721125765310100179348209039744857806249043537183640949175628778653818489683109622547009643642509414310598803763941426221029356196727514811445228468812081899519716282746362465052954190551396924626918538798473006069661062585023113411244275457376413715652087290448985119302700293119620517258442326975546263964791789872414600923774609321300612522056066671505583756830936435561729404970465588325974492287237819110084027814444870720800016879218941443783359726400884330630911103424242017194942068479569073813668548417962536993825086063804415225871035175128980278656007195174261619737706277327098446774533310257532290741308689810891936333084293764671946235078830367505712084960582859387679376759886277229208426172758678455238954040456706881371420885554349641372932764655316517684993934716983025905209961423149523684500944317205958285228552832082065997977595049688486435715382047851012594333159108636259765475605060334497330810077568212303924424653295491250235076813194698893671107010307082378902232580744887650921671552709236963656198795231263370667653682479279553047282210053469607589633538054892867554094876534474516984616519080161862037693044694909175070399503622369625236825690571134719350313151292520309629891320220802573110083658382804846641973271951300086753962986238434009367168617613213126196247429767076915387809086787245236769800439521956412671946724828063825722937090412505379622921187684102574362573653830986065447891611325671889285518312991969517942549324086336694323713571246819254331927405905650220675478968623929401810188513706231372130168533628562045592868900557555865577728454364192768551747870019609905391915677036542970380944114774628519215803143375092642279817627697170601859634964403614684359887765963429532640600208350228954820570980507763839942005709623257177082063987018697289715046653272893070004472311726133745572245218064995159082300384381373988332198889495378204325021303095338444042402736434429621476218704708043545221494975789640402111491210949698160812328079057613257066664398318777584787945486409241784037936923250506314970227240422575083888822315357363007601093642284421021564135137123458335574348832295699022914665836192745681203348554151001996012718457239844632584986703401693740992328613268748624282435526471228787653890439569077838080989513987884555343196845617836127791256850633164874366499859114859256813228841926439353361911737575283613878004743824326026063291975725121569239559391252355374794845197307467701552455477964025853704771325346575150560180809224824777515595978791629573730082871416542284485950444697559908484408643317383669489394963984369759247606205200014112940157688305996755144701904777185222814074186917145412371140367210904388919182950140290979946971691893893310104799598559148571658965794450444810916973020909309752543022855752004554453473702213372180998769588034798816399516196551272777640101278027859664408553261470858634908896307818595183549634081225318458159854174464156885833651887457131759770305139623042392767302393361707938705269260477396380487429022541487598876662667119000620974917408169680439827537833670780375779211680417892845002431805467620513645355191215209470127493758251406248307053629464188794945358042687771846779407586961199510787975831032621964867499773749618193764980375649454977929637533964985836361150479377435601686481081763056791874083850952120219932668216717181518465032347104004862734991957380981767555032206466887303783310232005639407472271591436801858837236936196324835821632945385991310782096991328400381660254338239603207008369145050088236540774646406949090416350635429890324400317003361827276017213492187272964327738447692180487627006365404257556693098457563780834458125227880961882453969496234809586105333647731312239310791292811009471149300204597614195049270850402902930831285533222833777773829209753687098665824083675354490645450977232487600938865901226810805738543574617120937065017309944768568032103558191219624789483670224627379851344778762680147897975001966372359297491959082441985825926899787618832961261308750001574991441008873051972448818067722139441046799163743860693361549451017696603687216828566403663363408642595330750451048321798866684270692259132071269063854805035578313805259077669654265165983373483613891081910556144348259929731452984434910002921391934034225209598802355541852852653631704756726412128835370392565306007143747274216796431161788752738910717118614007803695878783139702843714805801551777834573431872184310733717243941960937614270640752845126985276636695593389258173112497395258941297662911160709270812215994223309710949285921640449624795427931771031912478356302929750974260845547836304681792362460819703908523303727776085391087698668821458485782820842028561718903331183091580431535682507705613873715509107708219042230845049865109949993915681432818210952790366816966579198318215106207571440917172823775784267538161934743924555086066898201236756518789420260660604022244554796549912916533325968944044073074873549131182476629126687242690491320447978408612509434362296603674416061219528994976315783584955495628756589707910601160389845381844480051814575894401119025924383030323595745308013738125235622698917621558583090466729420820439306130647142940867774459754008159765172575790907825374324172170497865148625078259625610466773424766280262149986843955862932885564693294941498831978942913896464603455283030715514379440537705586587126974364119878457689188665487639910058861444274442811994827930146791954888552825294367566071026833698395083604436952913562040918569658462206386088084966150349152768350786502590779495233934027670763451499853259025217763052006657922752722715877638974424948461551277125997143253372017453907134326419020617589810885051575561949823952077498489531602713425102799240258812278542567972904737013478556090556269259731007613964156790886550836850616871913878952364806111712001685941271442593548336427837856155800973956856088907880456301731289372587607985118966281485044573766885092007208831082734510455927329513428937187897198956937973491518766688180362410272618086518552392878740053667488856456241776545500661227960899966877347695011920940689499358429581855236624942894288088829339797478318388897841426638153384476773055439648266668411949280773627197545895944199303750946630776757719789373704707578579193273469632211002867306246250335014441864974024626570182694003065292676594290239473884067728142802053748357722079114654256695093749285892398109362505507572013354463415892023014980409106745197345282104839265861476533742212024362881291297674659066775335550682254633858329880109438409091481016531491262677560592155463966297269399226912902429176412583833042674384575564901184080748765830998242125484637858041495659569013741694269056605496893036314276094463638659617223064228890405147008404779500179669041419875690876365298298557034676537321170166077081602658440648534706843369352711862335017287779151379169305389972571309336427902875111526803567059432192383958576554182376302288097243255817139296545341296763563659247535765842832058241537837398412921176377704268680450470348320077797794009926258385370616261067712731889925583468153224974481815622056248940067978449031656950267557614246120392454401481808252511292161652946203411802644536802730715337499335362842900411712143402282656935611694749727813687592100130548058003799637981125110649554612170680404653270280101915764902345990443851374390349585313370421259140323751352219456103459352071138679284505349666364915623275741835400240736631356841852231288841327767527166596151202765766166918111787021762861353089704970201473922617667016426726176026935113359945081488672643258413373836359873606688191289677770592811452281188795310253323326760327736707883410453185478041348086353659901197406094323149516672552802418948986338929963947549160300258116698350372935784058259624939484508758866243815382718344499948075080100185423613633489179700087216500585200152574696917793419148746535370071505693213297453610182014190993516270594917200838040037456842435161107958976283928626604377633532431260420520398085039898323630133755395886347703469796984481348757829689237826426174809291179700838800166000633560527343606734087626162494032931085152706107897319640515438799867370712255438503024265252732089784960873226307748961911273456388080032441288823229472107228985520569119400189962870547380182205795953900110824316674332270077291887557867991935979207465911268747534309274577237291735575932447546876913003485649180655991536532986114345179812795985447875038680463648927012789381138726440058044713069732245794886767830018664269266432033401374641551408513820121843749333687913605059175577022554217156473473905099632684277040822162330760433915551159767488845050846254295109132069397128816495318497128780772039864973426679197513505444963869186021867157408834643321292454856705544952561406015317161377077801436334447520787433557678196563981479150259392007932596067760975033411541011578715872540188829815217010695644517735042371875612371977403937307110632176003072841644331678736971030101798642260712834373599482771652443946969347672210587921834829722177791496246677081308483179719430371580899762378722665055385844055121611034793565902553808056035028029229163729239115413637628769289940789458178841754261366209850694168966655920197246141969023304211336964744339497099629441572732083385451817782199150068352817518927837324272745311780659711259784380829425752148766120299170445855976207051423959513598896910053902434701174531579330107950053070901199723843019599585547718264320738236118364382626494154032150139078642625967204078078716355072588353590841253730794532541787020773050504633813269989713161937576552278522108106479296680228362883902406055212674465488168027952977542061447453985775074806529340214512947173709793738233465562061119719709853066625871361766995246923181974570244157215199109174911199853659612864502449260996094239090750003804199729420171916443389940516405843089900915989428936457725499968460036094638461800727901431224810295681388416330336446646114389366773101420893289373390146354825587592791680667941233485484771632380033124083665505558350713263900375687649490775470428232095498159713704541622886685021840948712056322880883321970727890371819227752699379886216993845331097516858178953113703392919851303366436717890554430216988767912710729456371898225512678791716817960423420201270984580383469508267840048404024250505644940844323640114595245169048161746804618917488594752976464678094808121444888138131745913376951604642544543513251864856357124273467107078088689980165491358097366357627278371070087725326329179255059445995071938846431275929088438904237785312928274801409021005852918608816767255439230575363039917395649006328785065715700809396290863965876286161778421085127060980948155625648665319424600007801851473628972797016788016204167544230843499716712577337482445209694685873766925396477431759368888134969715494672455004185084709586560606341840535991007617681566206304384911712737980463721628762188359791578339659063457126938896506897813122075742580719480446481481973157748553352158294445129309785567623137036893164369967649312967820900261130556258189220484002871023474403293502069328295422753524306607380640328547856703707377422421423868001880791093396343914693791645980606936173094022074315817088117930150043403797571807429346760100164516790467000539039907664005857692289085757827799613771565067789442330542142223120453665654222741675044936578841753846215202854008216855567431059563961298790829370708398694808511325356754310610512126917664585671356454841449714408618435113248161826644532259894035562059591991629609163082199421953274226087530089610034480697919458586764495822003617841929357331966506462711116727250475819260327433024471755585449986741716706775192331635957807335482269775243389071713887450883606145651249880467425951865724047956340429713809850175794500383580378688014232783136580639931095471540622241509800123306841675400647121314696307588333687480462870389640721031549093495971426147758599575811233419855182306226021742694906971612529604990537380681870287878240236971908872528194169719558721701672943224009685580450115506115164733036259023834610979230695553270218646193871161521299330178988330862349963604489482641166909887967144031988831999671064869978073421557342290462500400832785877686884133033022105507639291640021180920920788318472620541887303972441558030115588224929172635554474684895218442495254512601495667551300383755731014600047328743249529181361976277422338781427898215640892014543448343624999718707891903165324892781012536518711000290528231511019528855192059631486716882690983935096647123327934404469914245681636286323191300451621613293525712967022918935802046473999442331336927869493715691563544089185663626671847049327789142977647182301990197544859755186773316372280400694448629855712834950203381737763087476828897518515662588271431823238279751529918424918464176986810840653704432840749192938751596890702495690126846046281798953665969566344350333460740404248773478217089705788433480693906960937365738693357535352940476788623767496254701752635743734493476318063900003316714132897420847999431342761374758444331536002725668246312788195128839627294476375529750582073332505444978173039769921959335527083467184488175065375065945815139640982766745333204222094401563888779843967377203619425310884103300795630991212162834157351029149623061710597841746321650663060381738754983170476776447350419610260250913192269557490707328822968243167641075842933758258278012939813096897447280597143784244582622333677270591297586229475499560309455586248253866198625623488813113309777894590104075034292456459420143058753725712067986323767784427647891486646971136645402092130078585100694899051952417264625595155494016423765635468975903638956297604959727510057077439008622396950631592741923845676396350182812393817660782573696432825584342204272879192956078175806676379808809828158629197314542412057510025229746503954595022872509134917745463035234520095161688227489608288437983920345392077260614937166750053363127875009737566842723221339507011346796892121241384539561053378302336457867213822535512946474657830053248693795033381868751230828189673786585580618963477687662840015370993993998714320966033305020385982857069992272402303053656452559978338246465896585381003859916711686947512189993029664002572780433027417225839896306878045891267139762936281045421368479789491834731132674713199388752746438756094007724612764755216902669787051730980220428310059214817628244635295654666638693657402605770829892505078988233085448196749077281484618506363713290636449992982148393276024665674038192237578420315492708010107164903659625875327976753961566954424631847760268344872425911314213712952826443973403185885338743967284032365895730363199787886984048971065271223125852028239189261974199404782021373335930508770958450059988263119665342526784281730987918476660127719053422539527802239059677684528613597998885816130489920598442913088236893951261556910308197416835197281650705678865613277230718092512120876668146411872640642471294524340403471811613101560158913782667161666361310075849641478089034535806985629313970738289293244396487968269136405838398117778874102181859751016522740983809323142135616664373951799176959511525719095030157905284533797498461746502918341669564268501075249757251754080796580567528057367270145604280966349375526970142728806702669016195747577657026981523726924650690026466191466551881039307795236410399147775232077929967648464004148774913963495171704308330616600629394194898535459798697402876581100463818465814350816978381398729372858313283099282464187202236644747799109200324884276161235995202249625696012075523463282010352708424138808463205724202173140551229962557266249075400616716621988302679711896695146199459422675303986003297974503354816437636036228535539712043220153227067973004747779524982282635510931320114809563883208697487032563753376661419916304411158069350361247641533541129567185370265133693640978525356101173017633704810117805967431471770148082602297636821006061675008502058744519373857556290350683967543985829240133477565303518656869376490343230443430874624100769530226634575983562089175310274079300420320652779515988050256712240223605940824545711505150907776408806235455189799427483518953030719199062303296244222282915097219949934020247129939442504364983631830514903268918706510532327518361519773813484234253397078914842050167620079788739019706585757096016251193275734945981355542336043802354676045019136330411783608567735840470741666974879337042215028099619274071156586311605899101807692400119667005388105716366647794146985534897993472745739049037383415015202365742396159464187144986449574011060877736098437362378699495559282695255572256436597521775628594463613975441008272897258220766431446120768101547865266396325320466915130078010973235659688943000646845888112645960954244093879341593978703469257441085419439566104393423833909456923723499015816910163173105900980089912130376112947366465545230477877014146575750032103653809925554973109466980433115114637739586649606312038663655567857916148416651111015319495844621517482059753742049677321396036785567618685438729860871510358695028342003266867960105107280104801248295727362461314762217043157120066973673959525702673006121625387572702431214389898916576197149886408096062510775465843018699347829595143713226181076532144700212759692220003741968149966727356879916717256662269463612665453842039603499027416720570186647673247086634354436496295591587019847627979880694382877215517952690189517601949906356337954700882961646367860426298472763474923110268176047317659554878367398711645768283110621423875508618619001408751020664412102327381332732572277098139834788452218559335394721572059697967252164981154317151167602596312831947726690724075117542387552635490682471458929260439883839459893013642480442324930776098099559492454157199968740919461512436236413762874244838131318540408271261920932436591919986097046954436199715369631417056677336457439210668175760058783147080291009068639969702119968613714085715532153399897003061436580578312329948477404530571375418911789134612275268330546674543322041963394114431084823495991644114264332289337848571736810874035083524933949122114132149120373752391539390110720744615833121894027888792593388235878427921238588785962805659395689365422931495762246625851400943061680678448153716736716835583663595104651712756031304385755561908444907793386346814848482385918201418466772808679936540253833745741734561162834137846016081671690899572206507823555872090823443603078726831068423696997083934314432763693179822274255755415716007426692467898788117912173312416312031782245036287925622041304941199811532639446465947890310288894219165768316278047280264330952748615862586232604182658858968603556279088315272931321750031584035911591535885238510448256088398027484221580235791665213782113783193092957430762420002768567156362231633985372204628682608895645021736495146261081924417277964815935855568528291811038620768240305543487684813160539858026282977318844755345339263272354029702907020824418310043886312405258506692769530184836888400205180279758823323813197608136515002089580769045594456283686919965079004166246139918233642704005308218009753994861050123725070348765755510003638531900202832615400890049395648485446888583419836791327846708526420770149720843872708466183189120328827997712215418104880181193352346054412397149947583529886671363940833598679170536984460562086110831563901986194048848420326710773743400292890076651336754555123009841613968000861111000697685757228574355282523531669581082334821130460391678458449543741305904760366924218489201467798148667058361006797034455224098288402498181556746801803907166433105342631660726420294274607099295335941444223684819159283575186336683012802550952024114417217640722557966799609731236277420051206019910205747620949429625180966932956542764011899673292784494354737157049552898934701219079568394259082754232686139403560292290465412678552720915623255507419254042493109556296237435895945878012947609204825726790827489968485163777259494560719756975308620452904990104348280558431094882829567183551072603000526465369891187199046106907636516864912063652333695091463179423765173351445135612582318187987469717539697642273066906964281036265898130002316292732099641066095214131426230624905209645101140073901198695168661165327172008606834950455940244594215472220326478933004629334335467751550694994931056648386854541842175942458373414360676336721303638846107611560765511492803775127707639274414802951269775557871423945453730262691871233953748509300154998564101237666555614620217108361883227141715431449942172962621411137112159953508679695215197323742948914912797326322999543127234877325437289581497398815068156063693913435178211309231247904442446529087858927275770275595811095410783799118593655844157571007091005960438447527778248070949815091473456657899517725395069994594298599438339959985616057620565228747804971744142508297736793536976266818227152241018330316686284753896206727393848961201607423887239406540526586412450358066499160539868805208063853790493414333183010068838315965211425299566799707467904536207246784707588670489086016282805998955494331295790777244987614602370471309455222677748045268115825454686127877700115082179195679097559536649878086269038764975863877329596103435495365235457300540678387604202374934967301197453041078028388296486070175932224961986939094442636521851945194418170603114400296065933189942191055806816121822988755980636419859601389488159358441445383902572657981447674031732104932425022586627284618004373236419546890058655588942078509402398920574945383055353107518927581511437722001436198283395880028421365576688798892360756655911903859013967840216215980654144809385284492332708682450057653022081838958862589479586428720984828989214629438799733983008933720032484915797531589494833518856169905950682033839517848995721056974725045190344744665953558471945756168769099160329419621953524240684940941965800191935655523265942306017455180327959875752358381346635850442393605621315237200595618862224660425707768602351716748215028392069020997931530479733269533286362174811265838976923549250590985474310270972233561766861679964881098171562557589775237793906082328312696267367438857586713394331672207993078865012561623445036425696571633094782577753519232731003894150259250173625747885865094774279390865990574648318223428091201043498461762480366758326406309881931924757430029061507281879473435959274118917064359812942436013460138554339312818355750782950375575450533914776074258130514969160237109920835045976033155877625783779219644004695447513070419347869232899503056480891864811031333369927376379503731063499616866666885823835799339952600162191495997920363864831486399654778567699569602846786748334713308896472648614439109839322197386903134029396084406602054566100495726444024075906529883424718233774959794914276341714927482715369152357718757263448787450771477141074759126102841927126046673885350323904432938512225404603500396585210599826769852841401043384966932598760426850397308630398787345899020118668720532374721282412012162470891970949834016408534202152426576568639870157571783678498003280127358830221884972249726606611781635965097801611377580315874246253837419087674232997810869594509112280181084430987502452716631735932980718156422968459589886201918328447694285681649959647045356200087528555459627361668880105333509851358033372570124309125365984621127642888304430005649410358161809258541411476499082195818296859041235076292531806499763091916830369723577213719445743545162434398855897673941185152402356779582561030391947197022236478152443253492164926450743338435284719561863686962169780426201400376731703570601352432483505103253599470698892478517024890022729300272268595646827648981911724716912014884980791096543509665084237968202211731199548404722478081313500206350800206431463496946825733003965019517768637603789974888911531074254371354980708066195729817532568792254714445168162528343840434936888956180662224586827008180848246965354188406469955845845068941679001669188491395183197637243561001343972579558157565837294736412769481944035424397135209710575624777047384957556019386547145318016626122219940599905160420964941000743328139361062293760699575844816195135953136056080339053824340606054700283869448581032427442582195945491176284497281076916932310254123818385838301576741518444666436245809697084875108948043730965432441593839660255166355569824645632265626745010733172247166468162760625308656541584814673303715206641801713711885814101179745242253304891639252422736527788819111268693258697011621152780169233601194631412651181395433329221701218862069501608087964649399054358002848911940001536685941564967547656299081263573161117896688373360694386572121367554465076277893651103836957325261514102704254522109254346193771169242953520809681859545519251587172413060290651320417369363755929116438003935847029680279808835751141262982401312280174217284934192633038905175291475154560307225498971693741990142636906837730540901233108873985355401498410977689017599411733860792645820321423155146490060920832271658798208529826568135546746841169481383429454793407857729136931479069966702564135784506173460346543838445658835673603536362082209117063426475498071301276870245649019094162814309227885519434906612462697922356997047097057184912367245757817475178348795573037509371865083083305193156405480671789806224749358603940196012125602892767227247164847101845770319594454998898371711174538585496456918599204162869848690820970473119509820922805911536116859486453733210316488611044286006450446068257077578903079917274840823999923740550068794846564656471113586496700220566213661071253121016295709496424188933804473611643095393645728590442194862254150535648319562921862213668761776958377174219913096037108353234163047588585633814315559996994285226144495137574578783540759304901012944132230268804095474338867917104199608035422633823298056982188550228263372987485660324801784719440875353475089221762861530713282720386261986430475511890720522515541491663922625157741245738232806180179639013700590778111174969313390415740275891896472290435061580714861297767403385832730320308075801500856161627318369406828670510366453384522221167839196960658949760813129946421384657082256169504766797932796009683561305896628513514441246651810646795588991529901115328525607410628331348621415171403446914212653997968789482583871669455802200935557056571835446238316290631433314634950122249286402524035754569660648057687680465957832736411997633524654950603982969944954018281987431781105514984287369966119841611385257389254054559286629735894136412070508431810644731469556691703903958397020820729505713474599180987296842108176565366546424202322878545522833620643677037535314295664435810697287052217021299293046639447541421229228632583303138212913810428788668953676722128588575966673853979372230990710736884607749033467791449029342645904983902614634340086863599877967296705330629018990715383751259617446909453093429002690349949801791146821623764133894183516054000568490759228374923683655877402185045428281410713152024407581276528187050086096190716538684889294086490208875431119708790985570944305224390277273912830849171601044531416802077844106820813234159110843168510938200928496776941158150315199714625261434763780807358280066766591664077176672548185522297456845476496008017663869019069888884073501026645084361245352267726914273393562777212941764709479327706090439957956256565450591347596294134182737078716105668551918260680079190579243025200389290098942275132650042667541413631378010360605096245995142455824923988203960761601374415219391618297507380481327463862251396125820357960126762499191244110879588829207290499865989061778741697544620175989299383997687534865197403259177877968536272478631153652851138871199775290573860686204513360764054298973864780660358128412397827375274084630309095104805380666278457619585327220704497608995180514034406089644669770170334100361395306905496399300106534259610616969053583746092225828793539022148671320696308564512578467984968836877321020926079618655111346025317183264538161144087748527308200684695083243320430051988355399893881513986710388826776953133203170054804686492416048521319397913276307164316766826674805589240030382286516570117479883903108375048355875480736954935121917739361181779275230211628537123978858778302172288010210221224495830861565263411437539528297861841675349793673627624313194032025439831988775792230522644848121377781892442529617839645955564734261466042176369428316335309318907277390098222891907957226570313365544416744480078062987298573769369723157916244119562430878782315741041591612898076106711935911081779767372223596592666330366451654374079684439068585294209001303032496863504127098726865612818590179785413088801687615233677504653934333655796291831629182986137846038488768130016885472177461433608532408406986401398118416925613028249902043710184160210981960317863720014951970711406584111526703007531224483488410410148573019164282777275073887623012464641439992336798576213523848875953274101670030131156879325840418521034694840827048692239221515985867443483483682470704447892903317459068702317747667534446846370224703472936064879279823691384603714823983603571748708157586061119121355479818905561114538542354122487103389259419604194570358096216150905504008087535816758669794086081796310749115648158723197918711462706006493952117563381333766954946923832879551694913045839376671310688621814788946662175673022691677479758593806707991538337016570523659755881838177276837275887515662696890220152274087079004755743511530845869909199088193013044922199022969551558518387734120064230536643406567888146378168592330900981534873199004676868330632887973507290617998701363275764059777706445750304099145961171264567786044522734187023041024972371227582588970621532060403715256955830253526992228587234678689692434490764199369193825444907472734413014095122355566053668481091783984671184106213715740107210239779722130273087945413666272790008238326002360972157558328560828397592745640634732022463780074622393606629705543489072582902214338901374012506553457984410417281201019530613682814079353656470764115143807628232696832733909235341030583196911913590934002287170080255894986662952051413826136435974916314632080937297297456758363666307312068114157254767403159022805865699418853400496918655260743039532706423103407380038510944840765805882211632714924266588338727143799030060672103069628716864163169008316319765743686848617132950304279790444923384966850706712357305281811598988997019883459452778221458759848288220865698792433350329394555856043200193268717488429522465793832371860557449921658717844992845190342771399586571905464933696791328043020601469129536294915147892326866131245903710153796192145477631661932846106274118045307470174573623886621124984199121787426516382512633220944685243031935442386575108606526053572323197178805002249815588343432037084402130247854323715775742564101298035571399929405757464668134758879580322057499140993390125831349781915193626008155048261943819194562055361341833130749865351552585880301558846392129544588718595643950383388046337142077740299919808225665289464787156281937288062260950151550527049548109053423535841438985548409599441864377049230422544571561774077507910312857561566337710201750080653955926612511766041605247650236190674058941558128045431642198702584768121102521968517224522408853841459533397695664798607144820785594452073008433335899898757422850566030370282015721689817327747378390407357462836428591532350360071040046221870747909367979972386923421423370820204382901382621892564075782496649596878747596389176790669565897404386855306851173785189651526069298409332863127221879814442761239185303317235025953062201935406303281006847749680494938185293545275673976461870391537704469516134548650947938074611586228478135116074236578048849045919717625951898505129960000425268604428175654024299473102622787805807962045122004589630877343432773709210051001280057239113207722622464434699142704127704655205161755620708663140697703460508481356844324838279433797099755785442881913531837442072319017389849832393733468771213865998652936874076125563373159349395420312533743854593954620498316303935204742743179207993461021918180632197815409944672910406610399127557092185524976907345707397467950735897323049843015673251244237891475065469991842452747376284035433909214409853171949395291448846208916547158294732510343366709921724399337094915308469178888623732364145723938034796861346828851989182132741019634819242631142027914968010277495979150928308574304642037004247185497713549299901762831516598384104786961007741836498332194476544263117546511810609052088302279009149234243949995263248662470781844440977550317604269539796715246465541675915919887844739756518624881018084544350731032334596063147359194382252482058207101180276357839524822044312133428935297795591286703221309719506941930880052317017161302828476302081932093506082789073016955620539414934680556835083135368576941936133509504820292711862922721474837114488534526406524529802616448642585876172949787897912357435891034906989994307738232608944491687101530891948276607712033535788201140510999756737338982767080493621192211430335836966615894611931334735725932750308665124459734463582499422717153973470835005502921278094654052736937672820133906830462083927851002321964710706580572633850422431808724032403337204850394084625341057958501438709069996267019793338463579910272233409714705088708015996962475514214546784768490168808138451407966101735196343388480208715509191593050011772428748687789247676353196399168236292592465885514356276505357000418828693006784311886199736596261278555014044192515952944436458404201930142962338340102051784794260402909123506979601251139472250511659862771711124819810091194739469037876044941568959162772548232054745575486162073217092347751930655656930306326773244888922783984639220622163918509119416042687567536961834526625608132771818668685823584710461599788838896540489999628716300413932883693839037011785306787803660334499234688471538040238211729296727606893001481072479744602225439035398072110570417126718518143739100165410360033691487601105131350178962086054431388560897612538644497186034567801808783232711100864714586240982156142145034853535687908652358118426477623889026344391016304070625378543762942081179280446486436166318766383999577915887379379503333777316838390456969479732733551653091375213372331375688159057728744530331233833433503371762749292913341844117340172629291534866223548368597947249042594984270033582854114629948230909330465303230169439468079018504279546950167752311149088299527906849237919218357785653017568273107832641443785220988729537084059268894729500014232621801294610486081843891392034390306435772555798502206128553336351968274716429674545781669968192079944934709938021956238983577648733179857727620007105595494010873025780157921606618860075744566224210381841168500178119039964256915738074857963278303212655668842605787093368398019694324416201992527265001853110958445434067180040042421298739763197522319722818113328083548303532015554110379909908140384799601118571601745425823662234765889144323603415309920629948267499708705511663939899071222276217481613602557842478668303765525034299173082236869844903439606316509576459978627829342036370199442897470490248464910977345647951074605704733964236994772044251936764753643609118120439739740309889993591836501572769757948750948437980749895043414005996065334035994321992203627602858003209052480686756404705058610455807844906962053081344632917662185239764943135182706410685461159387704859752791340576837621311271846398086590002515269523228593195236703758017784310384814004528424035866869128299217688651974945342926876627777910645318420799779198045650632156540340604188900304391901682303080005594856595595319750330516238941580089480920860118003010481643215135028857691395756551160197056780487736001671937057184534888572878136863172500872702850185754252299420878281651967944807568621955755112876308166424384556078629152453139324991001818780591536069599695561239873091061392304660874082083901247577119986835589251091891370899122345485192686195923382649637118115295471423936211676241259340309627823676826505477126282465057043484965901545092376558198566901448943189462578270197859319603716074129845974922719768348349840881560113136741227052990058572334649817073762876514068819453078208297467447845621628346845374776702060575774500296653445682608005794695644285784964755552729526295688539091742112571669550421344712084794575817983658520035687239006050538697160970148578537236169007292580888778423355383465541663404407379662013992822337389956496807716887421695692233340912462311291007334445543593066098596972883101009642139933460251817408027974364903137469563194691368363997144499081027787679099216780617045522540287962372741075419166179228353801365145387367628198119637367599379975328517325873468806067225141630685081058471155051175992603289933625257204459327459590441357121337553881691450392408192947393912400238350435339176866702321975667289086144801991127551126169116152793839598453118853976085457456090338315091947167588850902099729670980218268592766557554203156579559349660934420521000942554167997252215567355225538981288524221946649301936089677216123897543734209450998828935540438439184114011892062966388522679654916604935251853204599743030842323112678392264340415260943300020541987867683303662794511925962532189430627838637668487961558331858880773133478102152784280717361130154974041287385094985524537341285581036303270194320390844456609138699428166399005732144465150722680499494399481587419690897454527475833855781101097805100236155088650493993660376087904086242329593487285498697343017363784825309549398924146237788052183831441491581000184808412182666203889249171249832245020851250998907855429704144684584772234981204075237464772947331528741735887847003514444937779719736913449192862333373020498659976167412168355898317377041937333956200390436183610722021338612539336431961349228108963034610674183721226705381332610084296839448798796550076895865674384243941560999471405524419378671490137413923385759188309525397768534491808598758530521555128683246477915678499806728601346876195336740232642896432722370746153035186095316760807266559879616407564734563315702515191660520474449021931758137276990676659994808978035380908714315837546989194319870518873765663197422112508921139200788810284465792243566835625096853864755405317770466044675613580552096661074377165180217354212410835410346875467623244245592595828561685824985134599354704499038970266216275251278878016137098113641990360979381750974868593370548533773962376938729815989485869950967825291995449289743851851672044464339620691515705086723853121289208030860601937213309634202351085715553314500430276836616647954087780395184916379679180406060078347742484007601153384139950632172800636010434070769318342684926184068572538588734294363010325340779045276159507975580419832379034063658662653460173305871430139760052496786759152122166903421706247204601994430506408256657830695695939976164191732130932303507053944638132003263588738046166495480910802691653147031680622907568268783847979841570159690875110684515561361550063247448079308491167725021324709493804237327920534874673541292157013223115082490125004672362637649376157019856807033289717299314255988884232093080723448016820822209036043327051266021091178630444404205887663417165953708924794572967481313968966810307105887138485781059454019016571460263968559951049295441962112001181021904795158419654858532672897249087664960956712746813741470853260852763981387485791802762476392993099999499600640267679079056077429974378050905461085790074043930139812269390832133133399735526447455010016780223681913782614042271385943724169388411465025580525565966693409877646571872295510983358780993862940886121554450526925283365937757117402788692307399499542158283012459578644531646450539097081080504877992843569288661760023248565267725020959707345954832615725550036325055827227026983843167862030736805531983040098600697097783174529997196168143602384873706508253998489937308058346979898301491858485346218392940081260128061130455575886151659737294485769125848156741535153639173171126870709539415822285313651566755714461342138577146333832110373107730840314813688353170916314126852471647505266248087864580246946862077122226935270047206584312565401069092882072450272172035087317607236401751699168510671299857803374930510991827650259551990239919769521964881804589754473446138832782322023175377854589260841152121423467638744305420829616800545288244845753464090696979566859321121619661436029954653884095642723241513507909767689123430961292760339435588226631147391201554261102181238945538402375341952984260148103661745261871978154646626121560886316722743178980229520645195931912823211550906194141082562061669318384821085564197578146419739126984311971349834362679635213901702671028899921002221603215475782223825936877914930970852690355376906333372287206986279112648382311108025542411916313904404523729064824810304210442829372154089364859339190792903317718954361777499450257094746073195595511798513395692211733223740141676958218110107767476498982836382396383633638487440137615145823836317642089662053807093875133884500379993328388177576860360939976062405837489126382772323436347151125501133950364157518135998275294863644726741418971734694804026576238384411983974733197942698919797564127709924521745240630111366569281763569987973004572565867629264781451072051679020417972013175886512189079484013461764691005928067803194579711664952387839596212904340129163589095976675562854725412566454058600597704023752809743511184753130918303928727415960724804658505550546744117031824227770203513099969583056527137560569362848590513040844652207064368942457789839432939704644412355615580486835015519551100071533597592174095231447152743826839027581316196715647832414889571687261544112677064807713718918699190984639396435685311897780337169567252465329771386458343791883413987903894213805817687115047465038254973913225766461260321931596467771795624831446478697013270576969558483467610813974402871992224684311457325866638539021601943643799036602698529743075046624062355566628942121201809819422683967524110904484455811819404384376998153948439614639646314752810956804135961044902744432429586805118110254892887686237302218577386565352246643407988448221218609696370667475464517029737058665381988185265693385426702396965897541806016662378426239032081221778921441301978054560233903294510067639310032951644720746350746013021600805080096728314512373478024432161604393818211738648693232262094222906009771845090742842560787834651144796476064345636382614845535230439084182857851938464809625980165981979641351014532324752628585136454621986119768159911746457579326578014898039306516678703131252609833471384767608704764335106758460610789393528448071484911728515929072229971283493616535757401844877032824793153118072145407156870729693352837874331510485329517821677464240082815948508494543981923479856311459597923114378121299520657177114069226511853273670056313810513689837942223492392948102156797847021988971296544087763220399944322498919605869842918695288796794078281620083465132631362310333066962383331953291463965222319297917837929494862544628895262698099121103581099560273748550771711598614921106109407586953920687770712626254037174377718224477200508177101606082826778381784700467575559651939756776191363829607412734645135181598839660957595663427877145666991461534125999695264526379080862750997542805012115368339031457113850519779019782262576875740654543035520983523553305848181497978309937276521136908257158261290112111439833843322999956301088045309675293951667557008790962717967333400467791222118684485687873467769683845254205455182668140281050419651025587318026435250026090259454685904256211571129825628183980753754251802562998041974668296988254334464670965704961338246070647838363621627988935113898201614754474972880059628004724914731491062450863714741208981312569669727908214428802117566692161327163671225571207527626026312200166385723821035430947502804396634810555069190987353976226239702775415327404153065262866136652964109430369142715682087033838566223561635484535293463062709685601784829900839474124930759302583841664896575674714568391416948402135113755406653479083121181978486029549555888270304271409462705336527662792127877533206564855745043382424259857651295384524883890859394894953392562023772040464799091901352401833341714460861794846108458595238882681500002603584328798820940887343552431982792391786127531116343701117918224387176847496303507688089724660882874811567241135713399490416165183745606836875276054117034127588611347214536637406637054192128480992622124067016730035884569793917620390440512471238383927559282064521166668592010721272272744558983840704554068068868180988208054792408159643949405624069054035014514404842195487911189240261736449704009111309701728554539180146212820405180521454452117064105580836384346680520370772908496254797034400894566191009997226349872021190115043243145505061584443410209239451839679387328417340999908400554039953576892241741073669277145494549380956883084183605501526958293572549046428801057053086543829204022889273450856795460156310458323111464181106752398235205507527099398179193606454116125522091373787988941979211849557606901977528257297709531275513181442123072833665011696382142956413411264777898173806153983353067976534994612792864988469684361735834852452163516705807921324749754619125862811162104278196123509189201491874318683938193041326120889400320001536089320355880007799672427444129029981984875988313700965999216714116200772779878335432051846406473613236724045067282345178203118444064287237840833493786844167283177184523134557462748594830751312897899275443617027533026128896801432234490355817063900950840158361332664689933201667909333273520548111702617950416334565726514249721712453923485432389674110927482349561051555721788606057070466289787176932437674582343827745718843992025166684252395716544088420901373346009391368349452262683680831298873026399266878117745957648290650295435608562756915966464320687958247300126815551754799884241770530190304048701812158913057231824871167652891057726192728861035337894926315956925739361213574614891452868701897699736919925426598985150723426808894783206491388711107719019223013156475585290997655913311078587352266681951718627811204438610642437083882915894833132520519649810952115820854684399340560339781244996071193693501703655345340912520205513272662947669775111831478202997868580789538688759664675197762790826655330935455957784109432404517081789037292925255492690955125774543756389196733805093628516627814067359056695700873476923420467479179208792381895773844574392459657322550720280481665751539374591367512084008874466979855396974186437504058857837026672977207246717856842346888436710478219569378964119836153109327206489502314555633422136101078201090819773565076283425452831340077004947217442926237615381893478513611075586038135681558526803839709957919642537380633387907658208337510206100425627558324547564465482281358111122190381043452164580745179351655518077979522383720490931652242036475747157018760071402285016771782645453588637680076842108490174527559532742809669548126405922196826824510034575137746414274560293584675267158468248137733571319606061611235720715132020367686697193520761664585014982171073012035741205455489997771822666195715114469628500632196513631742849627767916072904102889580055998644498173854719875882464478746552198833927731541805792721777484898205669989671477592991819079443439384735850457437016645256420049447880972320349737345750740619559980345945626845373423685346438205527270913471536919439733466672512833789530518357395229299415035490692076490839517167796809346403853759417902033916910047681575125735692712613218509686910115655289207962078183238273330756078521069718563610672657077300134625697588507628634844702397984183768551983547317145832964639754028622184112941338940058673174511577364438967952483987850033369130385699629723688947746260219830904820489999770416026688047006173791753783334452273211485920820493883038844884987863026605101232708123190820110634649843349066392610159883432203333199912086337469849117459189180829775144622113409956347209093027639095246942842447634878583856747176626976372346599097003146170764347662070102521383803496363337526157238235724712363656291787388236477739940739004621053876883547076018645654955220423209206309524150553809202744338251443375853537836866815363358319454705880669815038395869787251674031356125954596051974983335902939567363201926824797779564718027782037096848993715325418632584048650861121245011264582355175200009496161608690656843856951559041478595865675824351329379036109545511466123054147108558633701690359440969774708165286930624274709120214852321944582911785894120693910033972784886378507178371246233772557833992784952028080722627273210196290921759141544301319083830905612341208200837362282653542908819354111779176241013900020415818064810116287732771247870151608461650014109849365830024272365713217260900509511542297084433019596218336499592266596585614944057892844645374305721497013063992856096197276072649776196618205594359731179878733808513629976977683005472470295516122009314406186261737161097762724772141354571483834062241289188983555461388771425378535650364156969776386465429546984632412213907610335615650787169748078330208238515859083440733602415843715965654196314411787998915257197181498941509252629088106679418648040170535296675091315986179039142821329585710456387015823306444547371328707076148348895651446531996389902235814203745965980988804793489858481424762569396530676971852494700932906102370422975482793387200531859560043992060211038592905079560339702085708053282118369725220793746234121906058725828077155603218196749825735336775895929857962199812877832194956111002062888681115837120966255187982455721549726219893025311905816925021448331506557121422929056438283194464236928463442983900128334685914702978064407091715942658005139407067689712650918763884393994776448372695818318338400493604933251264518231377695109027592442983144928087693315574237760128354219224685110188626098848535545822151743884688873993076092775567891198525108146778657176012780769712852559096786771117730043791234896081090127811229556461274092582190302390597254748532287459529981125759588556468176792714747509144081301586858054768003121711669547925147030800542174440355640307996773023012338037139305272421927535960773460462445240780201410428639970972574447843909755457758299980515441637550526652152989179761394381683116249178185260467843607711276195152719523041643727927263877950480057501942198978620549679337325007707350333187829576978906734386560375746012799038206032008752153010778271248675301618510672405017154427188233697336129900549316909370639248445156116804351634892948209606587081213536939917639468772421461293083628664647207712995730084981132687211255157622893091746622369969459524165183754121263511807212423545499775713947704665761696644539276584148653710328445963724450110892981967448402853840719282160003842653729063469451320757729694168583672907995355207305772540383397917840941397165006386106203478631515377816012009727318568524391742660860807782685670349082991676899252453403753936459343565030645807631852571922520956322225161878242840047234828314791391907879082122234318389574941804267230997602805871245475668594762046467346670469043538979472109201871115834660853427341499369198762617563843111246633608164465757462350511733917466759563954460672246697865335572082652954166630732852766506209239838082582614946345954940571545028962459231364368486279045131569749900647215840582701864328113307721923950866325534500598287872830773252983812950328883148523504399164033219546610247542954797117804538277121881438285561587749111553503118451992605565161480605975146665424813971138350653864634675592984252089677455114524771363473182938198810891830973908439153412921681692957202328897643449822829420777299484750583512628120238819464874734486324883032317278795947003191192869313069983410147647762695054702279221093934946372372442189034757499261749954079465685759003040406865072880695995353594500992934542500246300280517212117187950894263998915632444373328410723073637812249996306362954464470853495348229552805998686369481040215962642999720374938142371404228948043014362508021261509957824116371912986874483259258011553674725960310690997035405701701669812237993220970393080584515650499375831740904932175142216472990919651372602450133455851311097490268978218426576277082970274185157200514207101654133397409514763797075156558800454704818145448194338308006164669271601452345555536588255402019827460408432437682629879454011783870478929985886259503321354670318434039308318381118445327553358414137764670644215511949786230077357624979442480663542651924556498241518399034107057938008858009293302093662847697521517366469545371567058619847050156948777155625444111034049469310664999696209524303272819902435026787262319315522041466394596568608768107440131253651932485690584006850425965059571706012831883902013451997127713241419508835879137687736085046169272427537568236643033278893108337530992288228781508871667238393641757542839978784590630026175278238457336622778772664448096751353829048461048099295819517243549141686323813246334726871597466768102738414789322211896567031543955676243501955205378250690973167376814318818894047336546474734501820270379764971944426283095504247956946420119087500233519443077499660578850678802224042130908747183208782131734862445613792728167340865942612705345364855630557260947162276419745170180184583117417948981976008347898022059756234679675980903044027582744649606783359553725622641570809301899277824186467800227082484393282310259806501797702986227433589690947266263584986202044568919390406828125635339381965354177802331138900635202824597295246447347496692818633013844112251949266287791995922669145247450849677820500533053952835428556946909573939098374351885162830727653899266642039945679659905889254533598233580378815842053462760896767491049214833015975208038973586529608086870471377887398052083494490621934756528984207584204077707242684659149940455744149520282808057285799778049981552137735373576355739831044101144320778561755103329790553868684830660419534086057172463076307836022711012965000320671443641489347474284857556998338475112230748343989609484228145101975767944999390443917482802578212997580378925216805654355992494444390224709123197365982009769504453460338666879129856005844077224259674837148339364090659218719473901054647902494362133699186573625273757559247161494395107878539987979657063733443087098197458854608522865187908928054996631295824763290612129688278095545779197067586084459047038983539075322886367920120289825536415319874347436038813914685844410208120420127277006863625700603852910953534008499258206189578653639653466522590971793993797516807284028846633159680605196274086531098794005445978620600445243800439192617421979884079847129414934269245477330271524777210346782056976129860995365088764084609844034457633322248674206924412550763746784712128754391879663837017860750173391375624978640280324692711491377455585114140947200372593103376724299337153087583291973557005772092665031106802563334281047166171904375294511732379472152580704933088677704123534229921120395914018599307905904850521174615728912605823611271921475138326682446087809818318067875811192477751883090565870501070617037803067644442126920677687492083945545410999028432639070278059926957414572317207453961614577368925485916001017898253755294596172687792201382679038034822178265289366356613981153051732297242938977968454774267927319482423404778390821598721207209500832257996764380383031202061066559336102047361377059048309487974906219806451256140236221258463371229752616631106786323479359983174131526855824639523030510476625974504910551966886803260660061465770676873909415997518900774033311303033800134881844189382576815501137714456672733895067999483321170994173337017686158600391711121958450520700547444236706562945577192879048060149059658733243936395750489656386019106893280872342178327982253659294438498150374185790424329914178921731703712953925925772816162524108317692536508447689153819351829013847255085275311636572489469579812740393920286505710107521022509852133713209076631133543328624914848493764763235101955471390672255954219069225252523713702601925388676678146133440756616863177207346640196492482215466707146932935515874749681326135852035614516695383991749063359519388652395001518723881477499363674244887723213882886504541839514373812686876267300381573131531561937685620549838757331487929251950324157789771973190787007982233535593702932399037904849308530378963017131474555717528018737273405664790184943826883812420938230777995009201215839108420869638679803777621707025365972384912611397880738066510652628920208222292388123349410082448562899792616190977042894286370774030815567516513792555590507059273539524271615156886740698075256944711816237117471368566033218295300915455489450517465042767455325250385102866611804430081423526503274350031486371293098835262002498511198468548033930145354041840323468702535570830723006472510503228009321094777777902410790610949590311609857120854337042886895984082453519253868129701908941368050473868051100449892460109663674762396600173095129330385923580887325403571064457799974350750378290830746945490601453532766699152381600311781088841004435042705464031425040002580838756020132476633963530902049803548710354584317556526141494654252077213467944950764578816680262216162128877303793593043191549726776558040764550259000882482472421232443074379303438398415766590893014700138335425832524938164861848143767960879273242251061890479854408108717858313487491616002643753278847589840385701549487543258030826796752397507177357407540855477090145205580494167873429247010542646050642639211186592061310601248652939536192161274761580069770035837171221511101288189334283039808513899210014850673301046885387904910221217186056169289776710257478870209119395185087543908236649080259495434169573236300326113982985120555122745918348622649951418554706519167303507476141315697921469149750381147946422306747697193449633542879790486769268268734634236424625323030500106215729862870925415347756962032890852886562719825331031855345411516942070030270249918339831696763791544365869923774105115416344082168094868565020909283245410746183078003042548544438574338060184121826484382745949331507073088706837402748764724213198585602241370199222823951785643938760195396929662649144090558634005841668814044748727526694653637069739585364142822703587555772876699767206280494963062333408020640479491593421252392865854532635817026730915524024981486817794396631324507432461688466887223557380018917830636756086178305275108724831604461866462419766284652982603386436760260695266245947759982366359377623722114379978580635528960087074355053793387899315265540946936619896894513686150734262425435110492531751594841190173078270131412660809463474747516694967455319943262273680221663054218137922530666958833229756417584278954723683067009744574899426687386806905968490766110003963210846935370598672544920876930587195062189224448539589401503336399997985819662358561290715448897155287930982617547751163124133821389988041827577845801070940904540928209783453020593661956007596489565349836679607948383644311024828368269097021321435903674025002111858677252836408214359913161877515483527362990542796040240065698453352401161531370516189791403182906018261826901846795662885135164997659997289263439648158934775303046299165932726603338949906386375398119568591072494297654450714754951489925283077115440538936431305323066154659841134239121285451091218535433700887843708473206541908864927037194250851929574034824248451176278359950166811856066434135604968726397334529987447797279766496251899733525437213239605022237116315020636898500346331315614156771126078457385575610771804411218822828440550616110144577694773172726379188017033262758409147551945159014784809497460125877051483597743738616246956072667119219459923592642560003409792033911944730848375984990242582415023543277921574648665315896703146873568373210505511657044837972398449023187889344026903974896920017182768548568903428511032582668884543553040135007962546976893417773685184781840061029853578436446605627030515033035400242424402018538479380340560219454999628749160385652643057204325685525805967361329988585926782301327579012684241097233695613868961831947859578237602946432618297549523449808554137402988254672542429103092369380829922549954668497867378446195668735035375886898444260984976661402614186331283635963763847136502783310573046349381409621513259601967738054315863882531751063500655266181938280703935668394810243434830374972235186843110122003453711710076839152667518787818107918039927815910274614802346564186574107023274128870784682659899388353117639556919044405234133010659148606264069955845513192659160385954405363767518475492506629385393716801552758163508274741495182884742769232965960714010917011773639976855454723365067351520709448462353723694232099740654664664820858468288071117227469368984037113420868607737958826342087525157981354575655555148905139615865470093764792880117281644264920706022679550125984460366307698546921916856946085454931506519974019660637511507677118306376740027387738925680841622980654975050893364357730176455263543584832938451403470219145348008423058210802673875909556452001477953981242476433787787135983884683271085089447235539363894671224789271079709593572954788368086432072470663708929912051099840784131521945671871361612954212778684015086464472394498340767973837819604135162462912758805549055631302149270159513673829793724136390154602310234372087610646661457531494312812707951458765228511959052288417378012869769726721145999304001814646990385779629930134356564889464801543856652228908525269380578335910627478286034656419180820342665909985342456473174768037153478455741092236678302330414091658812342023377163852206632560096672966231164541581963867240921437844108764433329472611632444434618818648663024169788080317844911747010336880994011453370948821674425130843358271663046870952081363534689362677200005115933443888542597467203790380725325564485866588244672883307775159670132553432326359917496766060734990994967600362879862123743542502836287785603935656443120528430728373814384663825102138660417948453754090686795670416900226842970604280555432199166263879541854572167867948448242650239118663702170096511675800108355341190365461477657995213407887357774966621443214649238067927599555005516847584084095404787380771539912027247203001115864250972992803393155373254322062014043506298586832834431673271514099620801973647789481198262353138489927607864790457153169709760598349899891286295716659701131210242764546709414019362261502360155204085027744697542319507278696274842221929441932468347871988462337520557898608124529786268917701950621932576987422727775380940898407555156052392883150648141889067155745094118779941455601195091077338343709732391922206146454494379441853801183891583755000945700178780668386491347291753354678884122334584503621387697265170710908140654899226910663617032194202442948020039193075190626240247848938534984673756411698868568893470877033497955498732491513103832127885990047057815610571408196520717486040984557501318108662147127889626262544303155371263879467487082228925301718556095216500276153439597202885326296797265763782106822814883176997317627780354537314285648050168822981854801475205339913525797471049989879798395000737328565689645665110539931437176508786937651507773899554868306161300508858508242334680999251684029280828377757637154843415536508075107983908679607147125625526997772335684628884886852614281318054095465412989425608723966638542302441314191508024655121991058201293944982825042616111812217015061401972244175623216200781331369418514281852429238547734375243876917182845719151709488916310052387262335941677011244316926481502505422982774946349916689068194900872916770266159670074427880240260865943439765161787660299640288824608195603119901929894284110344123098506452552825963157898967864455330566207146036303759818137169555555204923848532624636037356032531059014929924309056480398056096392930478508641038862331371548207167620116731443373966850956697967949022290272888666906434814754821545459466169862796617454949339791013939013016828723147278486115500712576126337002406355780243377373707709808942061441566934795103752782087835711221115660419783029952835762969366943047537280585015831433199143617973924937631135017156277871618751960023903243092495919488157478205977648068775677208902493549614683968341233257221241184364636183133407534069883449586111189875129103329039240726052714961851317340934713740211253802064488549062804261872031107855359598115643363168025622285033582880553712092451870760870546410558846067687914213724116591655970356105564804934831547632280443310958926402972434653054294225138158735659376421807309157121673197059665885728338001888579658386434618691095396075705679225937363999639647833294548375320206266854977532515636334633765016588150571589136802718466322972111894373684062533862296351724118303432381532251087100285531625767584570794351126507248796745719744318479291505048049628615988838191750250979643577975808768588960028663262485061192105842310404740702186967073032016262045476148076638595921368253314975948846980446195348852556276598382974699915129932847053929837984087275083385706289639500725449764924296009907157917898981238902563416547671906766531459309969899038218931326068411960991474590493519127966741726534624067627291923957438315971695777699810615713750828632099924508298567131652104506209218271956263798337649572945931723180515118356410027508700038452484387257167313871027427798118703735989150123536419596998603765099817213949770469626454447172579963541134614987471347931496829801599606422938170398731103602313523838244454495016386589096916504002612956558084771522318623687843882456888027984282259970940445768253684365038965589978002473449821421625920381773507119518092197037513364359211944119064090899108598182235889257668737036932412258056176754471016990246767982961451109839594229791280188962696287470575536532068430801872949972715765585941800219381111485451438941489321957104442012679831902240528678692441245864619531707684321446462003285558762222400496633707613787898017672075671149758880269086910161136750615611911263237995074697388671843522855805439786258123806423341400970087971276608909623557642331120414399151405836988473555404322485163631740015824000507989762791644782871515572782185939610495848306288316750417215077091933377022948525627343092779640782101688743070563732006914328332504863866172875629871149937603318541145992663551208135813819765017828163651124327945667632140898715721264723994194462203923881404011544726576015084096614305902303757289308080363975048111972650893101158302375091291196369803360955131381930737013758154934838795291738731978317793572761639420296528916811926104736930319483371564723746812079952506011379769054237654319337704101496335393500455546606604172872610508968007035907216160205118457610288218502899004317832815308682101560033798215334397637229593353798475115674379233334900004974137004823048939432332678859110078450218892326333397424711760618739053103303152036486259189888815624485938666044143901269769356278014411280260235628416263735068154417385009198646286030269005440695445904313247545583175190125915854404605750861572509879836330309983263721850419808049434728750045258110603086826740770350531491982755965209392382634441171485369223472269578160506235746805126014727442241446190181101795765128712945607503449382951521038425498481424102071765799694039348805874098413169634236275423784114176365830224752469842817429981059503310217032727268935892844851719034029460147263826693274993059552220299868756710580640593165657709323695191870211183684106711445890326200254709563028230018211135868449223061077992098944540010825694316278357693823917680555422541849092994430920924295204049555909945531442701763530695414115259047674965023222981915614130853612123534376292018766340974589394449361605583773882426224453848941155699261505872398667475138550174548641820213166333808015829789910199250210776619213430419502305362440488173578135938294477182711173628535323097433696942812851882878658000227314366242423408933642181942187348431753076421936586384158690746057898595399268433529813948328556929636041618561621249066858252413059538480059285995219193426980457735003212226658670829852075668007243385852955317928769510044206349729150754716260383010922201155771581374192201933140560472885542842813249498437734960780477473032365960838075529831141470319403220640972998941628740483294945176880715516383003454914095365812498950429760961923090448832447280272244772219534095830048722717877539028061813872990997355292742441780293257366254756672205976564649403366847883377178610193303670958241159224064485529804709657399651534204196944633039376505050452065365191270950991438991295832143435501566671734946273880760091108643283777708288214013619037414429742139921816227784910303644429473022091868389306973312324868763228742487241249780592205776874757399634079619097132651619424289821167557116905760760285958270223132406220865443048872556372260635114329534884634327566433640250585266094541082200477463089390900111290757286583650197005296184775519325922324803582192123934420770724538485747313346283555291677259095825889301406699159214606501901696830743541364435748304972233071810552491435819337038972357264380870674559449212320907796358287796972523673404159030698110221433994740052087926293977965145398147224258073798705415570904055982231605335099376718879490904438048097389602226525126034190311135569935596865741773707718095017301825786682832240923913221614738901221655839978146597870038530771463734511213008176200769550681380005629902280925215199152463492312984218044317589258218322354869461089469200865322996200263027175817178809004051487774283466587616192441173673138043142419101418432625473892411018296332566029450493016104790221060637992377353302512409738827320222589827404970216032705016728025675570958937514528892725963066281395851853626713516931964316801571107589858066838872048568949082154766044267690146698643912537700697797750548099300113809181683904626158336750152812992167855824989611650144428655200491225153735714645215838734128249955096548014288066232239311688335672984833911382184996289449874888179090778899211897011663085743898927962012321155851081096343952244825265315803605033522834735717587955169899663776884897804457692756095469289490616012607820487858315705104700884966441064011602136065312286353156195100018350608732878846830880377299027788225896125366525801533878603214137022581717873594299479229290076163330647951337738998419892679627239771491898649449878311366515158919442478610487405745077496611070466444782862334918120283979740356008310154089032961302641883089588065375072740629448255200682994571220288757723653911447576653751637602027872503862777066318470353981189771917395381010881511507411498323011900433070591896540873078320810340434661211897248824515927135729348925461313436786938022708439167087785749140936768710816972037514698906239621326234892991603567311650447916154614088706309577215565425306142843477482918384172248304667374153098143692060403034531103163934357397761715098820652588296143960581036171090769738898153676090159388753330258840394470811764826046693486318645174050095995366447311459146828148935249964854903585273572400538694077421383686528997453759964659350277821434923638292853324719619459420523558079069364937420792366098580553294789044594437622849417942855333568898279599262117905266259446574664250702173330878024858848832897688560391033927480189501296093600248218112741528939668028776996831866120141917023393879819890959157054945715018732842940685582726003268127921257060620906021656678204624077787886158870456031419476914262585844331549895825495888585526954430663869757974977123363852789458811725994523416140726722320199117287018820591389070711963372834204144247504079511496952329155415840766896452385536455275443469665303127339052210560272824967723694888040067310056941283756035313580801525538025742626773917483629851687392437707992314993030697767107268830400644623305113493543227403848964756853457734569137990163861446477318155180855451010646997335649329253884188079176441076779088968889630372546394597347622086199304744464501261031128003031129277199903976727145950262219820211889593243852299233868192360652553298305754623778077423645450519867847750079967215385653843317140817586012321922287629302737732979321890696093720171788924423375351295282233236989419672559902627667624200211007024308567569439770913844682975016243437226959968683764228636987595495681726473134268509161495825241178608940522954089297363172104121015526410448691746095797122298215511458041310461340397094342616412716917316687755690610736262820606983621028777427293527918395055502680080653799444150765915093750733199202424839021938718847818759477089289554581544554200785240438002243734171665057818118022160407723384753642257983826911527246849444013362626643908132632109039199007129082883406933081034531036282469084399139294636926081235815888327402122834244733782494206994499861155461809797340972910338469178520105740620940799115740524740055641283847893943830223090404384714833300499404159418648953797464338253142319334626932304420207120498379069490601435980710639671734924199390249826831404634647531198417103006785222330100838718026266773845239984037035800996986989227298232330008760040438574285510835656000000108351266753408285201331843203369018937911814440352113325312750644278724986660460030353290777231009668027291469238525353722376879610094503367414655182566422242795389204787004260745733389490161576202772866393165787705550643395984782918303310658989660406444273823530187224655263136623737013281852813150927056142090941940834217228850710767616333298246557171840929332578587370509219541600187892904609198818545752447895084072729203694511800075905890319130859711363788719046041916888455189952611410200012731797891566446150829957373620990272310669141975271385677802574957286456218369531175354245274681307268226810469263708103272717019918772919519859826245982906186417029248605433859826577296360749962824103952660331227134076982143065576029430979667115365920404830938223374879972463003467742903769448396800604135495078106719602915527314157353544097275460955144720433864156604213933934819384436046505943115437714010266019183112567912167867955261976701925338141834748085192591266674142901021212372314093192507293708682689498479326443632334652497532046734663722888806341002242109303444046517292971260200631796027408263994295767937910527955057131866214710374305448090264461845797326060714891893680524516469785136707790168416314445394643153736357860300876914461902214483846104328838742540902294816004762673868011966697963276375998228949416774389573591100378125015107374393207139646729685368135579291189758567564536975789704550363312342824504194625963832947431808003471026504374804352693037954957232670287757082014972215708335928546441142105130294718420325241100202683799849367319493699941854588858794154826023931763236975087807653153808337892448944359506535287358797876016857290922772994073606505434771576347620163786504721267021448686330410735689187536286691309296582737592088871772507464168408574843210904930510866627935761403441945978609282076098858348776551139009444821209014080347032715536010666356116575830740320840361579737042933941114534869763101177779402359964434801474910108863298370092720763213670261340913969153233884963971170600649465422912146214938750621963347507147115135215731992202006547687632030116331511396317993840194037362514238587578687497528504961608622269945566303218869957767526457594963123237760154820008198853537464004697398816750435607584206852841774928514318437364069023371530327578919912444404587366106758225698121086807919564945745644434741731281013735201062651364482066174554226469133295608328977738121314757331959707394768516030685549528874174417489804910359951693945745461236711787656996424766783382243293290192006876182805036953664319152128925200810349313361823975911402874293335891471747115285937619100280875149614988746092167686230909403062700379621285305300569396008624251876106242393859298556401828411380484559184582327529469924170344809397404107727354820818999175062132564345835008879921694900591877027085087542857050497266898948327060872764461533301050142223659453195058021091593439087294329872398371474409808079115923930969557726381345718009560191036395160218763725813872561883634660532505502107132289372038855387267834854332826701252045743240621041671473943346333496109829057574627616790937678311891600573287314643813275532134219098026043992526995921143602728827651879202859259570895713989324536489734405307796711846763538741451191008790797006713281229024774022180137860849923067448502997084509518272852311373909738883521870626895005238971343144723062599811571923809873509443176885566278879712700845542920525513765218138587411282327165611733250338884726164982150240927028078305463347880207976281536445120476237828285281520054998063557858682489253223962383690984375090250009583814140548867489456515211231524944837932271183634388175728712297759455520385607870535278752400676729408432093952958550414318683270730459000090538960817868000465140730233032555966197991778889476377536795582613089181755458021162147189248895577114921568599089612437352004804135507831141708846492652458420242161794393328445863417053137179924315620987099749455802739244515696097889896193792960222264527849490223815520567796311950328249274736375681118297598638525842525886187639272692436892207859374137945051275136116310816971583576956235617507599989963105803465185927751162184485421048744139954225315488189175667459146140233304727562393072237443478759702471374928078564784438607981124521622179799881710279183226590523784523257733000749138797588670160339602516002270713456898564440968182379968858651416149872341161085176823880831424048299868295518890740923053365314814586554101752960473959652645525806510256179001416960138684427244820376296783353015030733046412445101113531497361362346528509973538052426490205172448914738169720005102886048479350764876815135022364878146774540034244929550334903356840524768165865763322966842319394601205599308898936223595105600756922361366044714650445274106236486114352069419841004060189741737082858509462565473703014795957756674875976175698374056532127449991362821192320694516565292681570498196818981196724170094152396631537778861450023871833302614054381541577555691498971221115308521751467005063268111688391566954541635952894919416257160313253233427676485592516584078432113197818240419133809102389561090485890026295455587624358320526309679592813434353071920020722893394185437403168808201734352936888868106134662217784055240380080909286125006996170248479362608331649396882305638161450675414673483976645814009453052612403243215293690111216931709823290578045381871054109580853238079849609277570922470561031902473146582547824809520680109519322255617317338698386833669203313377082721467755014244931443538325421446883286829094620615071557107903830879376690303022843406552572038921379743445765380684885724491465422924882362954339754716619133332697896971726443555516159590319337412593281495105827937561547626010138975624308839814298586770358268960429537391137931677847988714498317057633386492781053110328429017751219221543060470902214120025269143113261241485738318620748041000063543625375485830632867795088454213906904146945259265046656633643912234831279843993216471904135824490232368054013997950402619868811300943780623645098775335427756985472978236499267189294659116058758152810282202693519704524661139600914405023192622132669663448221700521794571364322168162740398577550791199792843463560645671868952353931989997466573171926202870525922568176999165913738538020645304588419170253050271680150079421052612659859398291157504042406584299058096353714847637349052756956944300069994385441977530204094522488371639364016175737589398599104632645705380153969154341769957358222875956289543595302645340242300011222673103015902578364689193700620156711926030062819744708443442858203394452427703940942984819473716941808514270356791759171012553405371699847643488991723345506213453663552173243664313527674901409802006411154178910398324687630339292501471806984460931805666328414888892831483021265530789679191088129637757894458906627410324088413062386728539525615448382635312250213606470581668576250346205565472287025520454176679272310126067353972867919413691745080941640936398010152412027073692594120678665497724368659811145036195289934108240363473257402611401124273002520846315100160851864462923063981177812034770914484145151356930765802805393898046547883842978018811207041907518676496346214632230065334594016395056652608320700660333295763409093692693131632104030518619199367386131139960012210891460622404723265688467176012474477575230369557252984974533707213970929035110068227540531151577751346133792823515196908192674365495556589946729587361061322236790929250689052888311122191894722160625721468814161098559193539575711948844262661068217199126844023939429837913903050642644962128630229471503135167187256366196771249597836659381750929725902564856309002366551985090579999981147856223421319206846756757008367470083607144243425302433762135935375144128552162406882081576045166649631283278995512074531618798900996402445334477573388834135282979336782272358088118008107599545226171439192100346895576211442830794524042396387261190885779526529704908417077211817755213324472226428395075798669652346439275829867783245107914774422394165648381519714940380362173257682752002171461375920624711842830459493988412991290718997474648482559306943960792750247172722424870493518249788579756940320127946454900168059967941637575502669351589769998401765189335746452863811828866649239720271735442179118069593374723704496026911655491533457806333524591117571903109105493509916297293609447293098262886957044824602543169551481851400846669692784561973261973534667211470150352240522448022858069707954101852285036526170835926764259307943140358895116510842032107039281738771431691688965360166755455800930391977497134675646835695622494777882427169431808397093924344656825476917287037500108198616726713861511629751158471898893470440033195006564733176926819326327736729740861387324634893263008775485765495652029171705917754154449154870755250912416756257184605445389520922322945713452193236246593124083120434659417176543841318226193891874275138923430417823528902030361764332012205311861971354666046993772535153666905632387553281733999673755646194581504864561312907015381078040617373606356214751769237850878400974856532585402147345112946278007681550949768344577387340244193869385014848772991392102442848331580826763255328746143158247583485550257423440351887502826935977673778885135588355534892503846606934369955757162718480435574383189669728842808599619980414438449405726680244195302564056517753053087154405871964528708225199225004080449123566913520783848969092172371756716363330896589674973408416700435632012125508370310580337531164144624837380096118147316331395906916143766514730388934299759149561058925289711754688896168541771925197635993304021774640614334121955008296445037411479207665288991392632974164663764077295744344200668627767310960297501737966544351052651277433247003966809697818033875480710392818848203067235222990939498959671446287137420728916685293124705993379527247431276202173963801887807812537800906322772446841127199764418747848236733653325060159879963924604130098139490372173389256341466234158585717075732361815315158721701417362498428680800676385571225897114086954387360158029363018412213006552184813812342689214591488939124034688063489916519429905198076522866092872744697025843699534846528118623588855317701501634543446922058586558595834310817495960306012217892968147658177281807003615202764316025751404167770681951639783312346755957992144847754415474148530201355239258942682058523863128139350005306974610074100072657789995607364999882809332137170834865172890371021489655742903537568364005164905572674286995408422096579294917628735934278702192907004040813539611311692931019346384938989917161698367771539119211568950557314029069524565146896433448198601415388892095431332458056925382951486666994428661782795642078000008880568060174749370240865363183802735124347498838814392876483515149757843676278644784615137905297422847315171033050347924010259307576339113414681002982699796960165512281678624002529128567286619938203359628535071001696824717954081440448538519385800294193360472521969216935920050503036663274570494867907065972504435314935049543273900573879694166458891080070639912304748910572096952047627776690982225543627627314846255268837501971359095479930717035651946537200934083132269893228114624143936587924757172245014387399245610624988592764742141362729012882790686881840676428243139507644493244231857462236683697272595230257912314666273139018966569118637728548771187872661140898665180073878349094384200299118413743715887520730347656657383871486632638678546975219793864557335251109106916556396861432938879413995574058753531054768312234221229644287270851438833341140886106210464343102488699626660403116735751672219235506098962439314355395880957738966094550870682047197203721163291725516771222839312992417792280556354029610974822043706840530267031551707920634496361031246069790021041351400573391459020169533855856138575559781924133679526560871032785100452051922514901183008035168924689583984832165004145106495772473248544663000913701978908068956216687702129243840448198630059327854630278873144458069109083332797114844021137842362057725796988249395502726431371071192922368652420332821106658958613711908762581355689078630247251453021419477320167759568424536971110106827049398436550309256734286004505112100371350906986898541230668541390237798148978744316894557663455594707992723519866177604636861134853458064357904599140865297439189283814018899171010304160095760567403045026837011862574428835733891387330542883123994603519791277198862071325165946754432735051873855714511922093469243076060129382361252807944983007996849472099910487506135165690053066839345173839626467644637465759623782293856937448788231497788178961919142791889354691417574718101566302053555985729909230637647568373254889403944918204039990880995414168207376190344566747971347765980166714733342189015843775052329908581170277016238445561764103757523161139424274275095700707808715315922863594190571684557769840028259665456618322167044330327185005995788916950672018793990075639273468601467400863919754125174554512550896498558385573653490998094389085767567877174512844252254624078591060570168074172428602265728727410500844183008226447368611073829162021596853396801155022180638095087968695185997939627528013768035372528928163934146410961339526025446653853647954776753778984760698601051119620003339348421891224628858979468060830825950965389818959420787552567030875787372891015372279499886338801182429118331608719828972941278702129297719900572969343014902955708084286586936052068067227424728485239365333740794312416137992095805770510882045581634988349039470635997279660737552481657192387009132788314977401330707012549113639105171765703509174637866683334579902949005405583815268837628789043904219648165133050516719146806507305294493152625004734960224609271088451934062719872914655686289059236717890289348412572577367449833621414722251859255373714364742108249917205484547018959705814922149667684272820341795109859076388252133116274986393764452352450345466869523843431571850898122074396692849570433331243741046848354494994977370902259134992495183121626749047440893392914017940980928667564366803102203762728063631995387757156911875014547315719867777319061547913938488053623294809928864230458906434411321473110109671713546042074783477606084150351477354829977682457130106761414773651605764585687268041908959753469717807779807724201661892558683499525704348662476410030034832897781880127410714877381908248007178918286295974540092460596386718618441382959599167853613345093416566137374690057515653644748779661948733673677859544760793567140842093701595944786188470932048487112551777435791735348140478596687536476877358411185690732964024276025202202201809711677084387586800289008587058028063706028350734008534589399154481803534628519176216969990201267830623967261831551358369662224125225737794362700135953674663741002185827005867431015454449593443266600564177426329245920502696978735054555311504163877755183787579844428154455759956853839991368371976420049016612884450411259656489137284259194466366806729573519077114096562601441765307815235669051510595829180834782378377567404693096859660188479940705618846449537737147537246341863806658212905322154312799037667278765459305203446031027326933615964379080806842703023480574896040689511027236846419952989824679794814671796515612781143829122903089887379028002027534950851652463168318857016305733945600773129293420878802694377719666781843260714568688558264591482911571861109233589446509390932242640769327469862607819404861100570262534742333029685275724436474147250804366410564363133731463648169443413939702482868771902484198252353009775510490970451191525668516271893637625139969322457410961296068528812211486084740079320853434375037343354136262812395589074629485341677187247732985997819576018222313777287549855922934446305379945029000134433114162487904998330122904356769164530909594572020438915353384699160166052939223609280213394338565681152200536791865505282214052092272619465091702169988099817926718629212203533570113595738966806056909138471212562473148035297459300639160711072790306034093069896063245450390295985354633856693959194508003711453311195389436189344626777166756751410058938312083179519326479019084707289640277201941398204085144929140535233281468352154209931611617531707942137639116689154698510832832422782094475069112332329750903278496947605008402159535774371231778189925763602039461178369410750196288869303073743913108443225371154610889933799588577148567539007853279419650672473973864496190956857634658460293114142250775189483200165398407100810647867134473993310432257429174726744205446635645283296168770237630243075082400392320330792168010433486175158113718412256038028272851983019869630287188758077000887134515775125669721900989665041220742706879164912164135931413658008094013502521940992322300371061449614237280878383876684394436446015775070246419864615310948362362978061560528483328710941491103971841302331417067244784155527167556470071010610552050395223699925784307298576785882154077424387958411934905322385156140589940844445032291112427497143669721297631116272382383192454514817514636645326134696486368057265390893430786086236022292621319170011016198296459565213808645755287536749369174115995640024274708598710950696139009177166054836812034754705525024199116394255084489429007247982093328353276287802838997217640846686093442646321292738446681115903593027112377890893998027733370532559687240211594147200041295508067182303979853576754183651192804135609281931398140330649889042646107806102754495501145107743032396215475896587292511704193184679030834221978211879283833570147548985749948214625248533026982609564837353194897669239536976289127309344559468752721842453087315467632369186593162585149277644643330679841451671373202031551353251374883300747829461425428049481387701160162141155550372809404489338277274090004046326193057139585959056530683255767939333740392823377721127332079143054053344812957325716893107060325794986787621642680296665686477887816558912411202349210730191270811793725605361760369848797706863395922178899886684864587275845551675535846849564684687666090231740351415574183229637700202619935476478474684499505791071514288298774088409680554054538239162296255822653930030535018795959905108902482727584005208561398466994284447883623567460003779564883752687288603957039954991153406287404105529178765901005512939709743448093409968908733780891962794936568476711081504055761345728207860789446181961789505442590585479316464706973264412317128853069059547701670184406291044956756330762055361902874832228277236564518659854188282040736492393545198516425898148901842643356323839911518114432436362193007933853955045174068645059360761651877922130898273228123254852949571555508639911161778753628839988908552203909556723552977761177195897079162257440421210827359856713956122391498218206678044510886662434852365161009701630777796464263160803101631080371893215425534935303843548101263019919933538122745563755093999743726464490875113217240333510354126439698342024448605761169883745426268995385821903650356929276587546548301530951461724177112625356207213259633766166501905794994463256942688898048398782766156979263589602182210948195397538821862662024027217756207620989339701073434424242043657071437947942716246918184933262410690691150442073398610783135059794357621343334906325077712632427824320083673722727952793691600341339708912951107416622356655572662850785855571925329381234511427593813917171884240809382959624342159684456162228985872693021910364411907994244197326090711522677584440715712562214869946183683571619412987762786042165308994323680037280583264186824739228013358112056839811025019230752195428036388459398093701081541464565984606530736474903200093074382936542273344871498486937246536754844811383784957294193492280234191568474588170755211774983423149802271612815211052069920875406631052418919158972404018358445427714732989995495488902217696832857001740119201686131710629387071736551157148676751142600608088550518146153116707825682120749470575881936398400636344273197218559709420767521447209339930591433720410833162984373996593792699718442568408890867404873309812327341335425931358699640161533240034798433145443546297483733043817337583259926073157015376768406753250336558951976805145128974924564100756820172401259800536042651106232406744785296428688022264061978389981999535795849413035144210884180261183615012245648199137666773124679803576129504530253194096581231554919511305287820266917787540875834705591027507104326066465431153004740423533661453164839628236334486072136943971229683812517170577819364705435743989717356365746091893422365870240597998426992897404505914616373189139479446807845875787163925361931985286315331902974799270575038934581782607485246301316912492301976699561064158825591036283883647495978124484942824595225919933988142879861171452238029702701584325779971931271369070789808769617601807934964316756539768156406082341176651999169050429670343606262721925447616181884683264075840238244899206429412729974736275684134364986002867193210988951754685024429000070587693825427305662101182143257080367975312197294044157735959611666728406064333211087027580115343791899162784757116995935277201943919380135130048320564707452374901211107908407800049485757775345976803318088172396988189618126581364123675073247117893664151877965798718305010879609695560461590467299505249533660779368959129855410469870539454380952694517963293386476229297497301495549939841499575623682451015259589607546078051484194749579227421301344039714822967267186229410841486470685292345319555879254660652830712050438200634581781319284894992322880902728325118317262512403713734274021606762658885413258328328279145477298814665260531619935535232229782003796111930205442100297373764526696486540396382599938276538850528345934803030478003530537751923761496905644397782793475271123255902502575399533399778411011184829419727352162884323943442135277920946152270515145933961107508397017624555346953935206116896403648636740177566314433922111557268833601851461762367743476555112906505860567749218956361607000610099028640927443290473001400680275735020279641268302836380199418267242687426395170824616534834212694821780374071998429088921596812336071379873497539142357401495245746253479841765952680784472316902575320127603457412550617742821370767269185417894131550885429511441798682020847338757766785004594394134209930374442393335495923630810804146830339544256867528873394794910009862187103772851149351901931930956755344489324079680529372327265011588996275753420535272642168806645158275814138400835161800277317347929400160592601516318702033183755270437467240300946152065181848656922651313484344926132981998171388343980537449267509913384043156604776006060069185464471948170073500279842538494285506266381443703251757379121208196337150432039468192267093691431140378871488744536149815317038859794541436762001767423528686163545391883850568978660430732076075314787984359993783804593122028131116439609273615854168797810816848137381065931037065895238408857965316874799542779289816182099539896974072116260763804267464981979777555533073876696265266967999469961004491241435476336951586855496249253810120982020594546831594257694186784971174765257767459584944187323401820891479966816520921799868140572318211673146463391419098282862667722119355695634964326248300150860385081144797431500692463392491160476216374280045922234950996684397066625557564429376489809712202749987361739167616611647752578915071898139640358070609514688127796520758085915701477976997560962661529540091988368365251247783381481567249638241605242667628211374260438747526579304419412943865272369578389899490024223462390507327433150662996896267802414174896027276558901538864883914594053094906227541063231411973666156380800544228938719496431733585336140882005244361769807006120967662457298582280566938293690069332857588804771063375468495680623534034171770238986487561424232617182816746634049825698549781680080603851424204829804642288122458650921825863863907644234825543066984849886017985293691365314134160381111640773547828577226791188021063676814926921657287674378503527699223655698282039384676875122092957628409990154570185426409232699124519042154446477465260810344489179125494870693558141565300903537097853029607306671485649341040317545866190113912486051097892961759926919705101900521621374822828780148070636309198404387207144545220214298935174861686009841688210233553245031243114961893298177136269722186873972211829786627752004025551205867918750173057693217975763409013060242650262023604409772032524326819315450213525951290988727905316413076786345101224576248540187697230137959684379969751415540561320100123451499465870137879191383866347475328835399465346283514730390132511654048405930282529922925243439392819597820214002236822094142063162835387858698696827346469683619896938692572090839574155560147889922742795134249420763533618070009508867187127832354947849899977065045023618313909301335229322336518960605108059475008353145556151124387989932290974826514760781129641313486256048990097402459028492650069960937025889401313992918898013003349771071385696028959584744989434768399233116668531277642524846752539063477758392860436279908352651039005674333179437254121401113850408974538121636103100203873730588951758494134971919823127202828648898575253955211903093526386890368630161159583914072766684082079665816651525059592361075883774385434506246088020207162190734225268952920472590684866416299597603025786244595616102796214986732737932424999938103061283176332186684998560589459283967692190811245116664967309128861302349852813348319646398677143879311157151814150858975498885885786055156152643129927205065437961139890606879354508007584549123531239038514462610132642404957567865523540839781992943469044652990442815880316684758434690886997803680838513333439970497453273081518234302528420240716077999245688030364824895650439733881333595901217757960950851126612813703076572385563275283873788927752639087509956311126825468275482127176028221925471061716844991384547744289165198208173922316055459229766354669340933821276334949175841619202690651309045101839574506933025467464716951583662985864673020528213861461617726583645929349627664767049287186616702837176136261808617206839219158940889865760951862691232987906501152673680604303867148759992838025079870638505199890038834397770892569618998608121467249924924763298326171714833059798751178297756488111392196812909543396216181678716843719204639028194302341162192020833695410549469957686884108389843190370588596894221444235582956276612141845906932550921682399306719416217589146670556082994537172574066119180797410005935483219431197990379954875099770240163296671413889479313624901386579780527219677902466268581332402767428114055660645220231974976816595317026984112153172545436885190149782600283813720852657915684357126167389823141576448794902715571306401741006476125416452632658422936168421526884693223569834047046294070907583124638136381286064669656047977392600069712965233336877671824926772443885172020718240180126526120329805651184191404044603183367961234767162715293793898413577363937409654090337366204767361485478130416176717637047810384971919880349633136505710205910931321580241708056356217438358197483796496886559180821543444234438171361241259810649910273051942347217928200871347400219895285793889860558694801196478017091051019753219628371676231235771011487790530665647078890776022040249155978563667713374240261363691468255358398567051252315738693687486412923632942224905637321013557619189085590005357855383334217367467685843852053808390964708619391234843116812360119019501317259346808818217652952085809239993227233588758777853478473865166792153614879171716843085515982365462905995614096653413714453626517358890613490845408414682150376550126574077992369896783951501330658478775057371552784829931181824360802319422500153161462536255065651592399103643663782123204394326668767657466467638291258967605813849448005203676582244420989590260971731206254823364185159207588059189389162171605722609775157168081145226669467341840888508449522397382200488312667955987584722004256209425845022924283158995497997053917398672946245687766307813608258480648005171109294881714894728761811059152431626455364153542626797527733879119828967964175881016547578664723939634914478873992114085872979018039578873311070869205120467151261025215726379574539299728360903454417283694539816432245711891544819153801305412708869894000779960482522822176687938348628994029451529817447481136647572253955613268063612957459348151576768179604792682457479736256616106534369445422304235030209611941522708067769655569432882523262173632158165578470523053373480926021779582238036883317608139296556724815117557721156669785468762658761649930201672854605418339501236474275943750125297255430568374574469929277901883889180263937720819869342845433750093299768340523534226696091369414535528800097887360172361413259528918211039282313725751306686091287640666407944980772835851077211728825781428062143880360394000233059441658064157356509124580011322520528439799840398795231788099972128332599692939997667192694661139256689456212068481811574553423474466826838166251099876603036869384904042133186443785304748289301362405669705005095048294116493356407400753787796078201006115808889787721230265426018687189388829295400353566315940020414125451032921394951906845666750265440556686656674302057801897829934947358319579592760421025014944933955775032347565519318608575103592547800150215907365471043299843820162820812216371746577527087350148484834577009858952733521319102494399641304671748907556988591018001672287551997824352923871462789939217605494318413332817771816874397771694843758995704533068784145625340032596719889138705336373053479822533439332945232457774462508837845970016196982143289085851070471115695316741787194812531999438411016015652343766956098118906929820817740759878568436237334636427114467553546029218585455351494962481548033279482400116077360863204177056747180071256457472540195884342001569827937395444419011558106142237183330440719845910988939946313069127935477414787546005477311335171711066962953701943879737969895833910322707043084336302816045292568660043799654874664515911466566727058941027455299867891733749501939807501155945356118766176796732784429895962209307472787649641730933083445168604519589607174419489413953752852213946555321649251979124099283138606886918122701531247614627072494190959862199327632081756613455290386328035667879660824433347717491910729069240506630593770250819524807558905989410195657451091673142555266244656613484678519463837349564382592868011954158393460930907714949651525948653069992393674626280810972839695184658716487190414403715269644066119592210018895885256623592055319369226036275761785308150023711855881415115571834017023445790344449223755032764180287727517472655058451936794315124220349014491978056709270723572357723490186728751210278237174658163160232184985958282004953400854466200858265782477825268917932377653486258298918827819706284567407304159658517529069052941757988695398223584202379648984905372677181022510789074775225083649286331021479901596045354554859911038963215509000236005865706021278383865442970328256465514400841267737219201193767909746813532658908629897702654130560561388977324433764818534662356010311187303976208295253508212601119647104024205284012475148742140041809517546985888403500247544546969266958790074183034361117664973431421038948020500668824785996219531409015373741447408646495242656864344139870889472021681974940414306968613821218114475552587113664563749758303688968664790843803763091305740599618090441458556426163899863175203880115436882153405331346154376861885046487723198559981011743109414814031532516069644709143183487071830448409351083821108221011837703930413624463447191076274105217430892140346435214851329313061739539198645493358752229427166676152845753797070873461713694800730702726901115606280050234878366796193519377047732830785627926500049544414521260701557218509519273442009428944748531847330600439697610860280253796480892682624662191466706924944608636615970038461039333951516407607976231417443077856414587596318922889156356762004670499693536555660934873211640207371275909766385990087299620692656607924062466614418619604114547092852480119158794328205054212720500688798880173566612314423005785025714011646996456531179580059803980488801135834994408157347161695346012482343725894474117148364408207853613427071593842099243598491034646463816502513140660633324916357331765146422606884475763866211712650415737970039130717802182584326551942341728764473039016312117192425344002940044065799329403326070068065643042103639381547711731451993427250100709068072244037754738931788769818422984315338560029805951343149325650227524521326572711313851231087817166296215488424784567336875655821377497187433278210424337462382885878089199350221014366593056958452392070233046911583192212801904523809317544759577835961990969327376805325959462631641991956535026107094910031965692684405340902755654173217956572057692364178411363172944227523364777122376328402163326960480931056805790933569724267949027234220309801096251361347500598951186457304413027431807108461016643269078217696953101469351264015820939048199474009559748396914396290583523438921973705539092132205336835882465531707335877560013420459202494814806134935396756673787106233536812079857947022203119213973967127375266288086121298360941477139072640630214716941631312771861178596473552788098926360884566336876379684210490935569529374833774097755406314132046263785237991571130659205528455818616300103995760835403431177878731261054758803007920220970919044772408473011428335360916886672097370708733794891241178383389499014771892272222730855029271463129207109799681458032263015379071951606115057017948659252196232757396856685379026821337822451695736649368219494420980044217893540655639510897594390836341033301584695144007053058124780259590617598460885509618969407569863117444288347845594039747475581894618820021254488218251842478982488024858262141152149899034723095254911239817908814294333976536362325975730123939523716442547885637246012695603290846035168431429400135659509237237563333228547695929814969286903881484330730726076792939430290646855130324058530867322628052095629796873146222124449716857440854033535003987077036980548266501434312508038999757546696799857621266568580899788769408095956589266066741531427719243043234293478140741619553013193110099081127962636047031633948711346308438652716322873658398942621926319519372459814250322873092844814488638247070616982174308054558512871678421558376479678826194017344546793103104489977526878996611955697131566949039729329855575146018365592861633186340954490656604349009572990289505714266267348636291486057040854818652690052293628774592183453093739312643778520628342811332477602271238829017639356430002661185313519867701910077126811463990610586243103782218954167423164697754031012355468328485264002741388374951731212636740613858016308561646504476825470529242189540866785602182114692373792389901103088442474353949825486984818810968490473047259600083718162583444698513677228293169397174360358914003101429136322260804137061106152427582055603507283817707091806431947730033463396901245000860328896989871062554554466842425158030769140432743847633282375054988001950472071893755640515806277768184793035340989583883000251634999646521370398056379029243469537278684912060761714429133235572978997689144500598204276985815918686765136307612040304379831859970492665124911311142459468878663925255840549725589408224752120195944776178494110766923772238552602781555980269714330058991431999189454640370792820273617593900929441650119860910826855628166700644646652602321104440231973235592742625891462252738815777761540202122891205041697881914815416267910211563246004454032410097178067357150044670558526827878160742132221270982463264425110061648000974839248664197597610339939109637300239025476653846837095599908899846795323009965249551891888530298248198588947273458535182712227887153958235875169642721158230476755401273732875368487309073366720262940781443196610053054784624220536176487930943317870882188475218209135167531077371036514863884824110047527194791384617869579071721946973585134194259925656510331733377534708818961510596386921911817133373531316713130539682702129756337147892626388485155893219817647981219626131310561171467065911099939077073545539656575215565265381952499093633435679959259329129036630056848975688669713560937178784577584600118779836438619741735998951737449681097539232275211599119813078028854530665954299117467422080740592872016805875754990728875415711902399958909764992863921539323625211759410170945016309930055976847062317901050210737827243535938483987623094073048840614976696719357380268088911922975591866901320896912542886698893587823406589774518427769122311394870456593255576164347180587057850703467673917353311364417617017902964984581073778262878285638286525826231936308098014886667985354063489946912488618326243312760291468746295122403415953452647459277676222486739745008169849456753675528885532130877685812158490519433712327625445196536261099418795779594108027624687735843089995274190650623125532153613465592208649491544549398436136678854943211714144884342051563203492127331419241703956894017280695830176570711943237587265081927074021033882492912896685696555454320805402378486355676682801874374204209818335777507125413767350711738273137861499167616788361356132538216379023595182957260598852842849060762916370189375112116120487701516570228511102610310023558456456283678966911639591030636699748129491796787823530602169324931634887820183923538898495986303434928117907796457207566456695042060421520070302889766326485015846703495856017781710630935614105058858017080257199072207722798976774852547414082718905144477713157206186559710462065204492261971541739134210215029599206793493981051733305526513393142082250661129633566823131604195481616813473615945444718301347660132139743686593830443318491028094651087822626320349307740694287083338228379802381223898114481290156163466553726939905664230419585297000184698970895142001234628519780763860891753156596632892118221218972711452837915868709747588930832950904113912902326177651738977496399416533911889689182465096082137922728986191885918962161571702577697106702447806388988178854633962667880319045023331237618518719080508662986602812664932446109841792372496829298557911263454419491939372519967063008792339577175432331700266463615895527106274450932605503108719250075440927680914556408309747289616107851785268316052157286094040239320230301400926806872933361139142142862817606098836348259797072379196542381656438910127099471934720708038815060939669224037968334451133790430435459755624029988883760869602671448520366777780917224061145783563885129999446710006293049748050365791305530691149547360079588519769076845201818420244017273211700965259605110122614038957708130587026397104638777015598906846668248773536476241608635073750832945420329618545529647853866137280407691236815219668568206388795015264061093747951879789992746812670267489107557183644492035360481622436128857098425341673619600963513890905095908931446476393301807041488295250784589633411629513847672347843824081544175468984912242844633273440651816666457365392231898786644231365786122562892289797973081597547283368020642819220596941862949602158981909397584269263807450135804072489338353410669519596821564902856128548970282412709736521508369537163125359779153513731487225512194494511483552768873641954351692476409566724810366383819081282117551604417601837357536877229144184482323700081918031201832952156312169579413293872060106343416148451801282253583576394595140562690859095840750241019609874303479029532298768386591416770315241430798610443261540923870579715847144536472825760514764123753888217454272284161228384808896439287830056239048169500507789530883006239938101422452169210744286953192854718683938314319341171958631343609209433371694578860004877798326363957747500160190420623412214075912957385153876220171599556188089877880396313256043850268122420849187795881850059581799669975124931888402935077857363129911435945518282328144201177562668543227284077111547603951126756730275039961964684684117257274461947453108134198556593813679091070672738429649468076050098354761932940238614796044195688427177502185144365362343152905504033892084007356062929035780454931651340695798900385936989180249856762060215495309645202779607704982280213233156883107792431790731906877562447513847833034352091157050256802302094031140280877978531187101547708485198041472214069347124275320368281556756207463327605109643601462568019759136713300689170904158362515150749085442963224525556168647294641712267123545164143803964063225847264219655779536136726685629443395264244728940102462801282497832649409687733894863422048729252744937731796057333545377692830582435975016152810768976811631220273947655058300229737598701325938884199614439524526084364823687442811055720656108026117977500479032127094812388242889037280961121546969209788716275972918574395354517556514359485931679084239668038420626441221690991922809427150966183399921266822696382659233295961338371842104316885903255221625037486134818550415235988293800814267370428616085851682508448400629926651529923693736158642128890483067113596376118690971038719745041589996939842286462297234341928656023774110447187387477770183086031311315659603919802068760370672075000058652396000156714103319689832404080770253984905651777486085693229614849692960769453904526890516465709430741044276251937357802143879721130084225843060884389088850235038411140256703688263053951864315266036053708470608351561293546612498701416326451768006181285446068980767613386109093833497410098749319183552616268330464769427260960570824095603086152031287579233920978872179936036456279429352722584630115115003406937515049317918812166242816448943795215233020618563195304478216745330799593497061360639134074570874313497191961581420984828513770492171952351205749946459144976964723239770973217092933338731969206260282893871707061538796949837312659228079173848245431560672989237825752343931395892717769879309912979642970953828965865305226176066789069182903398733191298100761577394116627169582365058164338345488582019219287910942876685891114980577999811946419509177662818187519255655399685212057385537092485911003455510366769271051730414139257502798392114369765087046223468418092037683882895958013831960649144847226026731633839340833269743860936152162169630515404367220203789290990697454900733690801956536442385227165587608224597585726905477906056662283231156446043686529437957403486321176775231486259594427626932895980615189785481580807572629555025505943923988975480494069961641918119803149343359515671475253727111543677602066319116439559392422160774026906146455664008443306517411744090396807677847490963390347347982294944594335549221499677582079903878119414409182337920746537849926337190188565557573657249854359488367401897128838465758203325033964083796987105575149409884442857952897227758343921857288371144207961023997289921272114699897034564491506414085194157360315727009203122527106554333996051349853680208454802592326521562505198952298749875211932609516728739157393342435764502273079388003019056640181361537972651599533906926092375100235414209458606322012811461823637724971641915894482575974153746403784880058573763830789365803596866254702220458937413614642700500791073717185000026073980476769370153537857797951160561413347252577467066448384357365426698418845651946244084608055366844421717945409242822958024346363530773002549334226090757978427285792448372920813468312092617195253760572357873209362888687801177072733782369092094706362402078023975008366185018600036329008557523176586781152524384512684882525759080160050784063576770593265357592411687056007889150911288139583283057577134085536851694400381468684324344794490652849166457832337147713124699722131964584888421876386888120203013119653207158020086110490758061034215119915155606966943939258552864316668811786587290196275682773785752686890934523058123741326818668828568882025772832150395712144617098668657577391553124098946489782549528751516443254715358029656762130591567702044322541249137234943911068759666460707068004992762744580550935262983704804729766598171882593055640535080657152422011653498543815669012299198975514433568421791383439039319997269142250952413734564399143413797991883536989049311058119588032171213940730695943113567835910689570722170792831547444561844703055833484405515813745660458417158604656371357565546510543383825531901845716812278299035390828822350949705314209034210020423287808790773826285766458381768797452997906846607564574888939195524972390446903765781863422668987646418639899323037152601863237201515247475884634506298472253474185448430696224756681135249005436747290055652753044254330767383429768004739910902828271163217637262936107636368990263243521732715050788619943888055593172260266589720960652405462181670717251703044856357029128672463396692330889585719949258418230304040397699489574883782713398240128887242284881453457229470631273253653904807795864086814754968253401135746734107847568369504770928623857187249453505151640895254141354575160469663510078412126336947764813629653918736741565237930103037955937031057570986898810699414837642876808056117766115044856364353613831188527583406448172856131105949165217662442258901202252405493501311215726328734887168333422572098770113621960310406388690195501843276472242647426938176660843558508577360678716482114691916130774143665583057994363785495950755615416129701702229422700318774884512437656197921754393270807479699421237350457120477573337044172856595364575422721389714944843213755729751884038882230709542135947739026569287142007315190692823183156675522557429131775241779175613705210107099905714712828825065973742783844087880724653029031405073410871208226742473826292661232412663824541500072895610511974565608660334205682881447294297440328666272225656665599123447076530718530151786388835206005078252671380674564053466774099517566097195265265177020494563620988831658698147601651937621011549116584333679001664035790052759325401761130724565833317423015388544606815283550869937252763523391793504504705019795397897221294738386013079376543149264262706404437770393051233133044392803965697654433949724892879402200770833876915543280072213414129571094065107040357578017639604539527178919206102343910592244682575654469412829073749436449739303684058920434089242475328570226608813728497784673551429946461726038922260221905342362586515967857212718864701226692051892361308354056465815866001608639459488432797132266600917570384614803240209320968029232593503237933654962672033231131847349024972201570905173790473196454034916836463722688165476845564733751869290028926636168979932852078151873676491216978285427019413462314301485647232306403954046540901219669685627715681989340478624067675261207661618627871758286623913997223577533396426398772811326723754220638750244707322217265770124810871272788780532816468625714444597511801861157089290158847130469561581122956839905669013984673067725494091870634809358520728955728244960903035401495422062968326241657662957744831075885436113388805300958070595370638249026394945765134579511458898606391454156830049543284977790617499364413586561846013317657885242645516909453937716861065351184986811433060116688223699431592139286116466501880344124638418581066625652693515081309961704089424616014790202823218598672011714470891597264586720435283793234445948933628482130783128106557690215370386499667895739688132790462293358105857214724536551525834933519058145179457852550940788673270705510728321852027814045846302012006952416435974867870991495503234339720903739021366469618575671230566839549263554590197856819821235123155293680340500548495049277957913521235249636849762937220730683495277930193192266834171890958331952708857050400406161870438205496476977914499566229620603615613640517516762170864026958418038279632848459905483077174522268632356226081718392800419676253385785896009115048625171062593504773933757271968148383042663110973195919881651056067983176236513964855327156051514250979225214200793664755940862371372233657437143483722398896856104010820079606569421770800236090816043800565308408779034175399989014897481691181730689788622603287689750829185143431093251674953722871110786746801819779196433550257159350572724009864455743842620726710508839765737116287117023000775894009913554895184304257743661673301335109816246816685089500020721352857587789800384491839177846752239525958893416654191989385376688682146871734381982802372845764398755231450355595161313344478229725620796392782201296350551575637538874537263729635327819214161198600803521610938631971072090141742798561623350380703659826327552635982093588509903624002408037436063461039519463965752783201048820734015579510831601705315604888990258192262212828887452373615997595085007917417011368501486937668277461047334421591579634795699468471128222941841881184574700744415221676570942317823072714247008038856671637318693547246181731229394995938252030549825922532728069018300834235837469430562773212962105275497301354585478405310662866687317907323849492752107216551929285021084815895849665453639573986299718794224937967778339579827535038305049050361095354473067773930009037423757323096490690916250728629291804569061914780874918720578157206186611024283540612091096626457166183369757382808076817490925126853301981593669616517940353407090949615843360092321678706830451257442225259895913157488687930716024162154815697934680904695468832433052094054789795197003070420280635335194742788347423179570474017260323700925890972442369057184124406726998287507392786278070314192031507026376400225648468196619817033535374417094269940066125060515059202427068576325789347594237196246185828659521820028046010660701378016719463277029751810757663914016581438465547832788117536851317253500453936741325443297565214177646719248443100356591462138789559349599495283538780010871935288977679046831782337993706778376336510689673139786575094964904230203554286043608365038987030304094398075984155406056834147751477975814921654499573111427757010476798305567512762326794996817050849447724283086166421555888255580276955521074722554364363826887871314137339690053850248736407031141169934779735296025625611874406264122603078195671686154651489898470321703421237850718718282778068371019300949957202339229892575287380257713730583584046858730973491922912523169769192154739155882914528126259087836069525502972173555545511134152926160521732252699253002474196643182573150929362995306557717674565198705593379170450334719044493050878601363252502521818231793653070493480243477250084980838322830401252272744633666580326642250097338977273514169154007673259982916173175733592001753453352862973841350200966930160048024005441103092804834059402708710549558450999678123311238019263040214953545498735170199276945675962392542795347867051480324553119998552319766524729477588985044324373238495328949486103551938308785941642568345589087035762766637143506963266701245415969077671308961496087441139650582208974132253315376604326534831414264212387471274778299576250312000174934172734837231499752085772259729815886140335211757287268099098736825464413625575501668290649453927860184379594603654351413043282354067477344036169805833166776681810959031933266268322520890660429082585715868481307266905960365779884220475102557903177303153723874676359612788069603016262543816211672478637070481845101514877829797157509475834670793840257723367898219463252864486960125985291810235603201449423351356580760384677697678758584921953065470326924679019000047028559916036703048252978932678937137289820467456506691958663224045799241948548904604327693446282514899665266743031464834092207588448501022776294936803089770514432255854874803716296564001007367784147582947617368937921541432797856354637673305247022118163276663334275475805954444241542815584439556596550704166938680481989969715134086191192745809817455521343407205413571378628332040859318014830232864239837799025643500707289753933761917380528369826671242032131717085771295905656074781442497684564170808564692927708021338690017561220617020714894862486858804646540928788674638879162894440887166131776436183293576435987931930301582227825584450128058901961851555657247623099601822676214477909141627795570745497490751490975658393233333528560972284035575220269151063393626115410222901950964868820942013963580064326002065345095706494590835778770878136076076574417682848944944599058560536235557108451976862357426757603655442356457807598947611708991648019518430707930595260175261520551548635456608070259662480941440119727354455953065825400457417574906856040448367363064111467921652768463190905676899384427410186889653623014386495495288572399642025193758595219258939412429396980045038983111028039645146957556026493102160649571936509368042960459921444580745202636836550955727525161622437842085762174681513524903248722804529228426841112623567391339026636080727715734452789073779852252922355581457636516416243399302149426874819146642505725741405335707783643323791632779505578037950546382915272905091068846177908521471358939330561638573797391488019898247164608075426723206532627305676664433660662663836426697764489235009168834880379602255844914487163408274006030824066404629712706747722846828097616047035326577119264784453804753051012735140370034396289755615594466962424080450880275200650786654014324617190134515936624768356596670368551756440570961000375840791252301929779530264097099452628908658719601987980453427620966239505191132161212436754092437313321315036292963782090365187638472111027464305856113487787707272643960949155173962056916167277316805621264984027062372842627554016363787376645494578949363896834743309830701750060658733630458892985672913875531860169743579348765656045596218136438399627440442660899094660941544474477297134778546960074827330015809593263294329918159185543519539800597903964706589841299158854254393708639108920737868741466044206578963057254620804667876952893818898361404963820592209560060535366131688967793769495199979012956222946554433466728309419118658567806990844326284874200494042534735563524003949804534290823964017077355378335442196433247275666114298239148492674066474624143727886703337351376774676229493787028055703107678449807068392323927063523121354015624895520776777133871833688181198739555322793613251804165857995656411495260827030850463238513727030499928418407127518732134369635466796902478361982850187103581203720379458618897252808062638373801702504149481598703002754712602572011701558628469756886633339184085265946555137204166530137546835885069834581017445178676152104253792043362931377168386173039653431595105925227613311474204441387907208729045347783022313531865619312132770673638633271663802219678168245827887154133792801479917757250083492357623001941567131143944300301771384631241160734326199451967534584630747669793636069090620274727935799410504137915928617364814266635653287711314112778099934407211922195913153673782889672894330165617269260488220818786751549145168789446104559470002278771637260649997590071541949875745602094280429077258803081603565092124009126688395792945970980740716012111466925543482351254312763103871663924839922341537967077292008111308126078995216700202505125723380337039203600828483373413138215376203250161911461822737486515166263255495469376830167070383661946798309755524078866229395870099214043142534767165285964155088774406631709777065362522507685244587819012858395880521981256839863089437973362038687922205235844553707738823862404289915666898107483782725429449419592682955929339912353870541022942909950287588580528777804892438646261146707491564874846280649579135424041206288560142100177037941906885003616183937268029874786320467241503997070388722230709872887881395086995607852933324362890842712717485379696221524252814868509613204040119767282012115106916784863477747783570567668514270076538770273496563553169759283661822097272574705250747465416961457723259429727133323981416772736280358260125705461420186916660389442233234733306917097664116521245965854840991005286241529570213692795706474841460709287807865833324263296371088278551474018207036144099302475318783715497435302110019024725185999191930563889883091754702382283658319370901025998551485414616211318795696071487039238789845237646194730725770365057677515544595659410577440623417731215855034663988269654397561350982225984371863990577901379838581906642510623448350614823425323126306914665618907423013394738451888913239380291557820514216428511225941082041735616421723043523790182643569015060866613944068503614500807619850957296225592042063217408316594651609565038119728539249693097007633111248684872590964721551193723284372060883218570141547898311947830065172652256327365725024798307099551115118977601250634858058017489010761112076334967205662146967142669746594483240222813325746488794555482979396095996911477643537903155471955706093097828207591596866567481638549203869757540714169942436221525990769661229119346369875937077062828213744787250107737225356974838914211045249643541097519346798284772384829385469990911558040110614996459768665209881496926461346947090290977411575846094458104773584933059252222485369550245176769966760153301720409478126673499294213348383219273778634225437878595254283239091538979728887861063063164308835178729597587575004920238897739628057731282507547602496750478902240044854962390484712284989588792465023730033780335836930093123856354081809556548962248301787585789071919015172942857484245310041711518625159903597657529650081177892603666377667692376150403797488272773225797707402988533589730276514383109544858107079462614514038357213067312631665867033982511468822877856526151674557113312228337302629610901446142246898356717805136036082560248354928078019832174503013762532290093918147084318119667395551874332636605103548291516846706129111784262771372815582077731507377858131542749129845289996852200601162650744214798694287287364421150446561715632095249612709757668594472942978460348409775403250930071471398690639542091747647503416141960078350293168116625726709385565053530078799960014347763451035275947098705510891884223792801413611991697535188104651118876013903598532669004383122063884144606497387100453919407952577463097836620310003056415370170561241030227503893956847994149263287799926978316642393898723615502474294749511095497543341637277677810928887017134850874465186466101839128648168033090381144263188680008041829982998163513078857099287109340267778500848504067421284384838146636929531183804074917141036797869449017184353117492021728584456191740834938410718798790025142170315333594217490663383451502523708627404349399223787341834503574519349372905414308791021011959959174074796670377251436026590617825466732552779254127399887094411686949084482178377802014472895582970243689500890963087780913726729019835546496253929890730514646080426821877182506729911928569015198373456884719641001443744458020505233638662104167728538550562634452000899744280762986383740995451464389076437725749109678973589370293700009668181301685957619819792215112727619784199446518609925127648034378140889673851436304303214994032471257553903536852749920011417213581010333317141103412526658896946383325163067715534687678143194284406695997841947700533456298550946099678691256048044481367153644857288294665160593403069442560900357728754843954866522076990887835484708802851765910699676737664109577581572732442949275537216078375526615374783150020935402834289754495143589645733726121235623887671401006266246284324548584514297149566456547073840166608807184959330961867301467221034656951614580201285478803559945862546402911735321325007253502244213551917958578738933542596906127448186492709625438250564018246634550921048419033534055360299923289842045210840857693550625860175962504061261891116901643624042473645104941347058097730561786197082627501890726810567481352382662560779199499560894531474077613215161844168752666501973394243617110654922146443765732260651095345829544449456170564184944444754391918038838509500810482826362344065865386646264614465233244634462645339104442852514991857746428148065659192362867411424632416133679637349588775214760840752248895023393762569594892968686833272689433668631062299357772123322764475380217871947356584892062572580953194209455648756397082432151874903123865078356885814149618739119393862945048439763862592770338950922282531730982832349189411483369622149284207658451097266804804915556702648924904650967942682594619583986639059902569631665944645308386680843363289484388197417900142524804923230732077269158317618668882750177681549772559503201374572577786378590667442658427555763940743228922182877360605095384064907595642915142051038519692823978480141402232675308845966416184871896474622800776480686484040901423739216340169799279960982176002522490014733100447336801335537568858713328185978640243877160252720285453877251679459828316953201193374102374866637051771830148761273097161111746692041915131774515502833554387795140315812216487544406419306731166780641333112080087335665935065443524289211135435684270816766251273292577703645899252467837426360604642404719789231647236701549155426918798505970349444254810113287714607294351862234835915510915892376891959795870861088420701763911171081251291596969653028035706096044946505712014431500938870331166599461152891976764640754563351032721273355819997370960994729366873387122733669249422488596754750845423037663447684079524182479513393429794809725129320645333820101224050240026947248030522584425772544351049642689543234554337346731614625957915096502786637369410157205230776496144042789988141366235575131161819609402195047841260373899056096635941270564467065408575072840299452856544537108919214163390791242332013456705927341604186749862190009021905950333252134372047717966346671156955379310327698856246320393553243366432764058013575535097795557598795322362834559283351627865016634766985334012959326135689571354822597218555546015774646652049323069442174329044780391798549339115749242103134551948721032114776044605491528240465117629994530901480472696822291227596949904473520003156051331882832333298113822465752793546333412674363787603281162695161954827849550635643534617788186231045948627202704570369343464957247480095338606716681867780177730813350794413115040620825459119812208612941599098533244426018654361154759762402109022896309890918565308327105707060496553026613666347128525651996344595151150932020514591453751784553848236117469136826858793271989887129013108259738603022407588743542053389277306001241367536886788951453012612238040238546196251179105580330531210987193932122804579185006135625772927173940415815746818780309251022563183707957024551421754673582335586543039810097115788836139105834354877072496186372358377187607135506098161431619662570581609573106180381505314466005174056740143258007221096805025966591559525147028861948639664879511477731276515318415325189276207741215652775726654764845699791009265236250300936894339831320994939108646285166230310894255087356524267746298870018207085109119291487594580539325838922745769660181141427531390627461927645366514149215198806321080827282406233489525173129129388535405386084792152123276239175120877111671668848118886080345355560484492243367879699323908414549546174593291959895760042492229602825202005167551432313869385550502142321416814971131513590283958018398418668717635322613121315756909181500562611842047858057772343290082245437924212898635667502666204434499325017453848993791917779527606212749345251416781378840240718536703584909920293411299132886258531932810695679628947473777623394363575797960095502212881914625262235375385732604732025295400867802831536460042988368461183867832642551342280922934818638366490682840257663072363534023921292693331454297351578248047747795233468889154072329130091001578518295786889259982522273717610029111365011842136977565748924070001295866880575764267947771634283352254380683877976699223693325978758370107003824107176368007265270799590725201937972711690410980768301529873885636676147048011212121245526360582792183074667538694063644020857842219180019306540124299652790914657206805627897193384779727125873944067133658877555646886160707679464059216705980571471105887554587771831322896978174175523441076588914685079842449207915854028657826791311334743837230936291306018745302697693097469745918404020311604080281202494536770233919422054629374591745463553146005016181162353946044585472299757974869659648244192705012106559962059965883389263063100545658377759625054578985215120145343079511626994655776870533258774762437817680816674033042649291792720789788892273369227233125488706085818654318631648834983339908998833643473253017822068404032714200633919167085490077945011740144816198907089115446862183854140014666259772709565058612841207744828765622347995581592312069291992550944664238443557938211097258364423062807911841801438107793309312754555591532897145263020372015018380716428637921145210641109486163182777560764968778200765977983451058575727126507084111971114878123138356415848350655141507408635362324660948210680282462149946227472369778559638839875614763081741573828596727931982846403903360017454179026997458998257264152518308947607168380188617866249859175385581254167785672365645423889156316400966211757806347417805183441486646752100787343647414721606410625310709510637978779126798766026327379269885446295262947899181070181663907696194048316341521305142968157168992391071164001209231989008954284742022578247041657917906189995620429103082833645816750398114241069092571929827098488356865850428941565602345465963159342719002650157632333750708329483674967522968604118765802921672334477185127080531417623223833167159437016025198346462793165561465856687852100027351986929477244174631885702538189381291305896697976168682281897991556141445679668641293718517161428846206074526028092187126485424967450652121331836459761127605466515430990657208813899783410511405298934779982936375538663985777563910909497135134842118462807528145365597732367622597007906994378839528169767168233888301852411188125501003911889416298085944174522876729424430126802711364011237879288001692289774667348058586345199593351561515350350357972308158684853390042260952948683905164230860225731221161403319442328494270481402004610474994155699097416414276729008948276201940322314179364365370201955441773118803860883099494569915572573266579001327217927709409796552990167810487674612034853736312662304638114479881374471447089771226154670207618097529906332802486369096938447480258982384864204943973558808522063428213000094634926526063723158458856332849348153405371973995435919846431168470739727953878809399798379343425803281758055383125540400562727779276140579714438443067897742214795777855351363232199745835866977150761597092702612300320072292982387672176027991290130110531678150164450542612518051757164187206567698930419956044586326014856613385954480103395673558843065099497089835972793067998215148077443156044918789783316501016776589533586669547888929371386476942306042116952721344336114681603030029993367593318613123601364609840962771555691946225730297691806423524263269970901303373858657619558659535042866692439108657846877374045288810629825575740446823696527210585231420268254431230837990932817580237906093580366464225661151165561827084990926004006932318137211252066405485611982551844486522092887724717983547322059627667098517917498206814289948506344430830365808572234094930314016700700195213451504360086854557997756467639580862723991624175948237052138717743169259084216126096108125751672153472166193439979500698846893320936462493814425993744411331798215952010110018616566405281317361926344807493842303398670594762316589197362151705432380706489875544742822856375774538236817799503214887882335341120067256667114841880879189848934238862434903008502090509099188653082895805212243080528368035191029402751262592317315478652716618046979110903931117682804331356909359334632000973946893657192022615045390180554447604018501246425194676553113893834317416489128513539587499211574017506833608721619370387589255139360665858132261347638752240078745906626077994479739222971086074528110128222322112372004153353343356824524670614815655444768398743025636318021750136909605486595475299157780608428764189318743597538313924755408164994511776719617588163848566829566061867627821461832245765547615533624378609660950673570996125932252172382988380382819082659946297102911606175971029457918308180172069687581476398963064248458329695531103519526567909209392176709440236320290824454270716077765532146782451274783074488745105949805765981197306262439599902657670887063646537255527713822877522519675442339197089500082977388679242464133786516822756929016133739501880362431710379311116167801582479296952386609080058357842609141717745712235639964658583257632075098077888079937354061558942124016807830536728079453892683937147375955473175047849597700532497779614413387071095543859537761591331045351109169798993504227608018567315594604097090030625374695015823966599228741195217364232870148227374951363342316461631421092229121602270306128784083847043158898197169598055277386827434526758196694363354090432899356098519501767370171426175936191431227591076637826893996523961996238462880558417747504583518348161677150155381831621771895806787807616875810816526881534562410388496367884244128200266009245660766188866993178782052462052591055109665621831172988033902452832156705453042984307149609715577582812580724679515958528563490161450024177555111156204283678623491254046776322299721408446791869646333148254120110219678027172282831092735617215640479398849724178635920142629629955572856729476086250926942629348787753467886957866980337999517196910137448328135896747629871423200981894243274878729325651764604379117069864602296032345846031963252772667305596086352950826881453269759040188006358529683246940883777115612540552392088449952152937526542249944872626209091634786259821561429409463190158196864775121427235538848993641550975353299180924298262293152820593248818064924440903636353055500745040918419268474278668981379288359552029782316683386572173476497500235920654603337546686709643032760403449931495343024612166730837296028987361466891455649600696339041606200990720010810299761019351138572144271245226297644334855726503873822820575219863422168434656649731903862133895648706453608258615747476592749658750870066095479932175442146783358126049359165545986078608427407593662377931451132174654397235262778568827138643541438466630126538632865999795099032402271242086065773136191593856490204982945849767453282854193796091717230085953813570889312701750945676746874934256339043285723933310854276891196781230132043445476178689676808172081336024521572474765993562753872158093109621825119159241262483391088633254606785408116197286358785611837400591829943422659245356312991329968131827975815466328602572973080229086433518564364514320867540086000958713483244628599724321784754950734749432376210664390051620957864834553077537174765304145325133332661764236608908331287293760890403172082178107605477123406745062234393570796003400635279253915864768740072694273106671743841757336656088668581723730842629954136734797179838437654398313019514047513692745852678640271539501337388419241373735079578317027903300076616072617610801676312233084857855454449046275697784796925079322236313873080145575679911767226252814928438529121302744256145475748750384965283193076924520197030826164962348045545833658559326070857138522239707486135844539560005838286686796777539362407503825056466171094624313626176716794966275651893250343663758831533812200345250650365465774234547616502114305110184763588718132525566763065852735096364936417383616653905696975206818515378264338877824396625458346711914356210507524778302917890497240571984185598519468099928932984325637265628767462001240765194713794280558926478618842244137670220002224078224007214745131386952809042175832385376717523401408061957844708188252233738885540872712784878580403590658007046673550857556260799868912951380277995196560023440086133308920284787166832285723508118781630943150878523610171641290325126202537582431958773246376858112658248681685896227257041446208818919543630047455513093948605026700976772559537215604967812669260324597227206489159141397667778904691080301375455397353833472002001026333928339429117442761706927975069943514885508916993640465869082520865159053671417633431832298162297377396933081772454079834373432657994696534408648755283710894836530512951108666921191521742673251463638691261134639329891776003824376091422338001973600079802642890891708049238623125028512860062344429137982160342677408355956276182573704173273719734543767950922129617466868599720207294768599350690504636817564817880691305914824231887407645027342600436243068738528698825081024551870125994373678851655082573206382002557033053817409546526034739118431596301815323593466691593735508207333089325059788651267964293355399001642441058305288713763956935083918337519386260835594350979241033360452198262031275202107964363666712620496170225271087081441968296697607326078991489182044191750148200523958064645495983711259376681579000851736011382388810761161741099900725242183966463095159702235980685091821257002494183949496706415781335427871053203413377579073397765536321822464190282990216261793960647977413963951324190281563848315741934750727527875495385114928513128847917558435592556623616192652353429711030878018354133287427973687635501248828046248350035989892011281167823991792444071863566973097143616318055863250492400231139209319167511617329978985110907486521560446322082339015029560052531241726526982644945851408218625158998681088594006174986858055344371939332110801561630162735568391951043504463622647766634636446224570737370509512970917318156214178658812722146375133341868562299776534858558765063249879312994673988064523545313917830955456006340929275309098428635697227315511622266730694293087436040305229078178123749736099465806859188837635790844727935022779530530552752139202142809336510939178817154033104722805035634554744122120423938336445095946009741819893111030314783118618293629595982374067350174481319706469434055231421104712457940195963804980469079894587239221257952025190772644701205975849388414148710993003493286978709008820602410108565695665133705802003318461875894347109987369250505302554701650717833112752940484129310752543086218175148184332663956432937309470175310465485672970990460330605567798792944118121109339068611152450520371348528488933811472782239918465299255873521355884888719466646443046228484907980985109638445680113593035073996977747991716967863889207891618975561451712219188998100807093116396502901119603746924000293052616995826306257059297800305591676963668099021106250641139652428041432824100586004623807693603506034954964552589576483734131038024708448652980164590889182865044919491117645566155408490987282623645598638798193050239934106217346987538924967532267709894561380110323169255272790225751554453002124065026192638406531697971312137051169851290195839026948117276590848262389475158429994466396353557997583837262622913433889154845007856946366763581665493467598580784286092064834068375591059266855383818844910789067910779694407768048919646544299373173534468210587294990247664970945161642946398692764473808413201593567389508748461034368814940281750275324446347684221649768550129070443430774685535071548416039388711100639012040635905049749672578343511824745541046883660491810754757653358007958918102066813927315077599527044475009341993449522058930470446043334665350945513243451301011470272361351778503789775252705264307589240538726843788376581174391997718765883094790024133474888766288351494519566644503830458052965948480965598742558384628145886491570793503626441275510777291337728060406719364435929991625978496814677890257762678279086576543400117502959282877710068938767388886493523417255445796873659528663386658538221391080593174993888819120503768626494531739446435012927607354931390390108261680944821020214484278774993546634972402106922028556402106827384221787049864002071405301135600416695657976283566788399909004903214324247224400977417291837381464184616498263630079884004736975682502978874150364703594945362321410117837499998516604527824914452350574104506950296586325696028257122637356939876177258997159279378183503018541183774920299138809852803755127629774446617789570229139922615853535986684169586471120925716667877612230604216051254625381050467526864515778548093771292025186643622739903275064772619805973696421506632953233848739894958663629070956547583463619830668233316727119426443602586553099005022238134147804692659323776235643132034520556070730965747093644914977981633569804459478710301691303546963809334556740229010711360258659672097121785237215289535588550127100295829397131756312431800535389337456243464898060508757507093693073009979946891611152886952180201659212372129635595336655641276396322297567502335229874526141322425934535214740355529807094629047463995563984694405585958130059069208064812074158426952043951773491257146916000640254467827681087140615937380692804492527945058390425693551398472491422175438727375180719021136225907360720003063856432150601487715683452844771923612186055807308977285832896693726582090508830049727916109294907093992774011865508835050397394976679945192727807713240658004991917942644701685495450765281254721384438497466454887897230010265673596414629605669774133298726550002040965765540755874947764852050182112227041909440536373213990592141458694085356563333875012643708242419279934924762488137543657200293920811483652226034118498993504547628887561133602411348844557742149858756971528165431116170839876478002861982682870106163211455521819059133262407300247576691757843312584039071782396857223062547029177838547427762651036531385196908677622079817378729431550588178916278523993689505142526892232185650873200451242168076573239746228331713842486365346399345880063978538000969199427903216369283117450245917949577721649926072602349434211506400339520270575092347669664099549801589114046150947853092123525744621868249415764869061724032384677431431218165333682283560333959100073142670503586481575520565941734225743154927812166219366800274803634965497568798683725103282676310101656720242252010772322357892897706207123164315500673013438246954541284185082323505625912371280845160423708007867471984131260193868089487366232748009846032757335543502577216520346013669909171064454657551589734429248903354112237795582945368040328536615818062503160481613776848371606831705362802612290829864409406959963977101428891995227218405217106730266045552550839346378371242007752148063399931766213894134713084380394268848048658235593845243101840736929966896746254269269516572962081406484189968714716369307941371807645821105226660207693150790696860157286013681446154411723640943939485532253127244323689853607359282886196996698383793318632537961118832591260531707847589985754892368604352246245867991276187967293550583322745653257143550703459902374723530392847823537583619855256764391369848941859078921912268699674033818411967917259514925321574020636383439783208328933445679037233169198009501480713557040191217032154757683617947564784673772264253494725923546891314463854579183906445751061316571182183242720778572854499857554090630598174768882893601796731845329655176677615863432557264059622297231158465345548525835009950335341554432147873144454222001011367877383053969994697776268009072597241506024161501561945441962988230144669924480811537857318637911856659397640502424255894560825634843840614677190338899507959287832294628553707209871315034916533736695663465790563005664991810160184735980791003276267966619919541111498542391037556836588236334649190830216113646696050728010831115470787468636396091269162452267745557254977262468864350019945840269176859557500280491946350719447198765705578928819832932822589818146578957685571538886325781280901594767173701358198811208637519849147402277241430215935877813136595501448877520130315523273474882543399034737515982209748218823737560856616997937008145439909857494907072622969721829441765398358751380461534798230444031068991908392204764055315259374336737731834716580090220530777143400827289143252261191129054854832351255342577732512301660059652852477545485287359800420218621061921411636975790982037429880503082536076953769872466319845674652344472463250028349868297722935277643863992121407980937200941119858156984535002632045355927093304365747178801624051595732174769714873464341319185043113576210521314721816088730268183776375946231042411502209981590831583346797066960189584768124003675685326663976254196287085460481381192778424941070389916472236021593487088506663353489459179443235552128261879351860335819061941966215221400545398935465729615383253600299245010134187584216795902033426768410889368990468957487611882311791183256523836227114752781285267980058655002930439448235014283261606490036190558575681719576985568258747629650127024184452086662128029718128775249609046123588697273507916107353480097628625282671971827067315049103250050119318184682405836009103750582176581411771145255802811802176605194368224332329481510298993543467368845817090917584971002013356767302918826237621747382769328576595586519545278255815584313746913247296987648847302343453903591328689756523253772064892564357775328031204500263568710009753054721938691249608599840177649489064449592578521849715703907099976642474529354616846284350464786665646221308126153775784369697752064055383997466992688246908305158935250189270875204962563164723784958950523402541259648386449124700557757619068548976963318284990237522195331500117153367345247973737925652352088555452521343512007357007149638873144014797929607441183622997084536198361500678765687638125785073764090660639438938219919057480484756458265320768624200573780458845140466573747329893607030371711095838491028489139959231291169169656087718888555239261999509690817749789992498774391522422263918381110165734703617805477077286911726665640879523630889007128753883506750202158366360497778363055473849359080189068940400850558010326220733622433268732709211764421264098650899789815509481722213649568583482314316518450947329512802463824637014566104634873177193641551101706833579472084709264776731477634284459634225825737710689037466447094176669435965177637560341195445176512142487590865104000540478802767725320448609127417439777390637283255877630199221133356357885861339733528241014561196300071439821480050499121507930732866592536846525450079773190781850605793009699240099884775296024233159855813185281306183533616914283906241240010723340837129175904425991215782671447806790208675797928608633449114362141880611541736576645246205842753748733085716640148324101333178744102591834765544030184431094805068536325695749200035546001661839873578714237820492414279205636401120404119622331430437630274005252540542168949288382789013264971035584764671829589940319058085290668740618015320492947692192720247326992941732491862205130770808183666524253568716735240895991866747283681816195190041379245730311381422633862548049162223715418195561822028279749201577287355183014478748654554497410122003161079113917175767937575184425534962830754945050330047612307404575170990630113620014455868914793346813196056633706271290815832469457601252499946530185973309995509104310885322208367483227226676674245431747792645158679397851551494339253005432805909181415677412398413424105008647244766153122925775029967845358630758413836640652165629947245780135279396031141978229472182715104950865837382334807118694060312644337469658908031644789171160151961435503224174237356315164533440319323902154197511116711026613656262844802671246936619803636088389714089117081669240121662004870752077822106542491825038386959128776884272927068438527228467869761309472368485672711521385486750640324367889623952278793256427300679042448337899150879593339625683803332341155575384436962710418561992637766147481079134949988882640651056326601975214916429184463776258546339911040753885161556723029570092334379820331222564687410607390681688270571626867807151295024120294790052543407370743036726383416159852302965801326616256130359202312471191359548821475013147596519160822202139290296240869328222548222429653290602919283129866926742055930813911331625497749284439069510842332255307959617826244050490320323816683500394112790323900952826155678982907013183742530914084879692793779668626157015572880225949137227542378127654103023842848464806232158518111977266255710012914438148368035577981581337854720157727529566634939252514557303284091243981257923195051961104459078322393660505558722049829708895691505871810545412174806228599540279989651778793550269297416288563796755294218178000581848781558042839818705457315456549361700470638098303640472114549475944355382750974909503305660251148210628083737163648073282907538898775794598157888439233662482608637777030908871443145943574072041801337726533275854643400112655184479032903828166477432244519658020190833167714363744471530144790937494642076922599603018435871309786685786885880898347457145348227900780698483642595946465913377122105524523088986454360677318398651752038595642042973807670434979411017150297496645087609708884559616622998468308830713983339353497377640934572672067593714171848115636553705995219196404344814981341318226642912610991256130299547069888293389599528764938320702311873211588143995031089072609733404345144566743495904753271188367309383387939306695132803229411453945442995800458023859217597336174549938797742212554572202127373225362988092004653725722966372811643723775598187167167157026219428187900467681040227990034295519259179323194917875909454805320205010557382286456145490395152475755157548295209902321337517738742043755675566901365864659593143260733928785309336408067818274764976344105659704236522096912178728380544224952617228999632454620682646337217075504850395853290023286206353774333424853779506916071503604870315596316711118855229911441992393384512133539978561590150433196494088361763888786215139393710373703824399390722405770449782104792222847944243122394160225641755968389393009262110372458785110642213963792154998822991418673938188019848536075365694096255213737665833104430274819703714146657672993079903971327769969338722130162598219435686957725215695252364490704274109003655388019045179649383819131560024871163793738426864610681857678619458277308015225875751134664871141191339644932506028387208480940004095318569211474675490589860859154143233509286505069880973862604043349198706774480020611507766703084970105658168703376846932501047197672369805439068749277992975902064789368928503443229225979441069018352740126835805605031898655484527379453990172789615671465133027463566172080786415536492596391082952227695884225781702055943907862242010051583541486410432799450687272469695740052805075044871807575383947073705255563761599185039505301861101565495544427021129076997226618133290948731049595501372768501136682222959461427715495746166149496287771057766175787551034625503705052515313792699484522128300115760850616019461576358949438904010318498008120121260312023392888613241987013890086487267478751467463866580372299927693971961030912408141050720172492354724068405129129207127866358305595610901619301238008703804041889311737138955076265878672041834200011061524063613097908858680169631568428500242030290858452963335075745043461457518494170793625356222936982716512360803932568191913970148010465765895016072797708492566028009543425907484478986072139036592439208851877295778053540246638944488191391551062309860919108349715773516652771298217108792963073419917897151940640821541970854389356713192704516962858876964112003094524558094631682325567793033254005564705468166879973813134409000247911238107655178559584493615764497183376774911770853623705887976331376305746140725691125676398723339683742380359358863774385907080880653352010593038407240346272042250243356673356008565387584666778017103281510899832453866542343037348886773758458033161073739055753661817543488902853613689857796351491468795154189475633763855577643678116753728515747627570545099734474128498026206953253905028880168321761466462688989481954336013402941751220730784735695580196218686014607849724916239394049415680867510854000194419100082535396423858057850933854119656985952681197353971627089335328342776070578199749688481911847911822356240782916904704389914396870109432805307747925453004899690164360422447310540968735842663296829346512286764798458925511317634645498093959120528969676767855170203817683563925800860359940391136205049709924631805031946330458461673078020664730454693575739136378254788102640869322132093941734762640510973147618096880784290800111419702642208863443844110102236519543512257498551523153872316406910161320589738756232582609904329592601788956032955935277233047567902168329161385514346434134016961976009210001102633859880299892183502177564990300658455841760975155738881508529121408475912340470035559261570200024305686761447971171039902904809615212035185062358446335649695753824513261388908222066011671571205280941845851000877595422135025838709507442999675998596898842428247618678228139059679855950483839334871996452655960554929828334454896040000276648131175290185331607047908516437468273788150067764900326231742782386475673094270767248288192502712388968903782162189072505507368543963373372174346082850253614406394772577452711223406388340035411498769695210708760485881130106413776127014430697711446511686700274678511947923808213081394120701237845827587981950238020083170114613206111769492535623977503083280159861259017181047377527309212760852395006105490645558543919850990061739488930031184523094742934066136626047792167795290137076598571834335870637833069825800530918985266666952293835879678829429326857270067638008721320710663630448651316564975821644223044889365581378283685622525879527636259776234529218793110980785411512805327246931550204683549745612309168822310462288539246172063775364368917728724414142298277982831935738457974708414918231884454985907546865852889184190492833103938443139730208175803421340671182078345921208528661611527241330568816590184074715646821572842447198834452248875424396540066585527713083799528581965778160484802039911393685461740163703066457245461667231080599850390922322480298848481111326214961040056126810415589908427751272010036710516819202678153837809105594894230707656139235988081194835898195237964368197174579864285832604013544949146500723957749172055975310302362784974147126202015228271992384747036832301948448876138693176591358541403480546023315947096088248951260855965617410840633232379055106540485827923677291145049623880832930190868401945517923413881349079086431226778204422990034887589920668829134947342437413168789674360102763791305265452027645915693532091072583414747415860180953350793971295591061369930320945641807917331667808413251731646755049752001893144861579287570206272679952623931644743837327194104659657790542776381044938166367142881960817083629658241240475032274950643361587953341167596683897366877626393297630187962171548983953520625737819228851997410920233445979736077310572345445850050680209129276039127215306305595395432556651460530024161104830383786838527667022285378018954744040961148580612930659679338882671415823962508986336057092840304211643120196599820008411287454382906815417342482392013536391062722427006354427604891116463043825919173675545095478882387867968778558961926291275984953126993440830712534325918885291599824913928681675739777789442314748429133006319476794752359234535727460859700344620845204181412978531447422282770795060976236143257314451170280977293670426508903419240999184164934068901972576871506671084250943264172405391781107259275591455680929637953776208214008505868216664004925959145643257430580421588622596032628731221692912622611502952212135103404323223738010346610217040686272218774115142090919286051167668406261566853406815782162606987526524878877179560990029599954250332751260963219217012965328812915400175622522678567570431039100605067297350063786938973731914229721344576953496496457326455968295698302647895410605223170360686784813697218340535935862109067378043390659668806797221775157276606240523038314538796045435497779410528723648473357412985638227924329741992847112839709337695960847694248860210273438637595638688625957348257993461297800930141445204781827480593100273738976939565400845424843173257513455784222579195252153940197569239734057245843865876119871276074913372370429194835267232812962965439092919973024824761302716257736156195577778618067766704144279682779268267009348271692714010571426026856454153867440307883041077190404758491388539105784929186376481682112177684761401857927155077896176238120731034807118928671158376534058186800710356759063097165002398056148391443976097915626101025623504188297032386442044474524239522760780365021606939095032065974480900360691910119239530279777664859472482101054000195720834149548156754004301717798482841266451522486345459587456477928661438731644828895634417499221422346678520262219146251307652657392885261700555266868274666220392528825337657852720398594180621128487918026898626970132413494406835205748933179240462601328338794947256288699743931099573858495655508437052563229078770217585401832409679656057533859518621179788288826848231746719933322268914149837206691536196058718036181785480704330033573533119592901588346936469290757407921469678184569564336439514696770659723625299147326878234356654236999546154947700746877435784557240699656136042106409340136584239615056621107534893262400123667728518896108401485556755959421373650879866438442582666245577469246282198989503967528942161505877526694271140500021769663340959542674803066639081435945130106040749700647024529518801663718943166145548682762120717696566986929914190641920222972693392073690308582038301495450360358212519306146811208193790008819218558952219866041919790282264475209291146394174452083134119184609795432281672573451740199105823775277129898874593014227050600221125859582664116439852217850276143529002265146456106996630447994244432209927137760288059772728229317077714941689217546954579771727350816496694062943098718313705402161611118085486995504131819974383498684556770279613393748790636542049362137310619352372219979587970205954120848580438966295615051050588823065097800612259102431181389625579209313083439732833470547453277786249436420443542680527536738509443319995042477252375077484456723710376932210680247185210654340063235338010327975325821264900219443487707028036198501538090332559634431281714310338870300332619615543190549958785180088464597318903239501215859951311764371290316348383267953192162193208700441608262272618262798885822367390554159082584680203606129056794783771409364993235897732571845118389515413257172944750121772605539083772861186899375851068655565163637362461849880978104971124641864644016782372443675009627738576556317010696454539075676405706364947077806387489722050786677650594069375027318316726587514085851483204591619973013413879992671096399964720356602843158501370504601470812458210889274516618217418648113071251107426192389253759400491632175132562600891409013216911941964979760208121463420404550220540019091049543461154415647116094975259244530545484039131256610352791913180493011713488476958017473974245578085198655892725058631007405548932623767592716955511038549753025711691213564529057692468945435701990537882656079391861633937343305561772626257097178130382410926212732755023695395312931768911907956807549606485021052252140052012343712920616293383433176169614448984004406307724450022402257552811920305407309015747388139236590072287797060427980622974362083233628054421240236939688861938668454636411492951237917413335272650221311540302957096404270485026598529368277370452330142647884153147130774679441079881482461418326881695414944518636877398381595269543302327086722377982343811542819774919663501642684483850534995981659562312625286682502988621743017323819898941577232699159991208135520323442979258288882933822119757931395559397471448412102700664689068856933801423382885574334597662206869901133792717553887152527598758334342286119806643404397011410804983276674325781271778571707567640492021224153586049573397753076957831997192932529431916426343952281360653214679745271495325804955065779892814139058594576670603511858983761713822708714975388606752705205574649260042187322543195813537259936373881443662493958265668453136939801428268708161921659261430967241698622098244467053539025054484347809823779641692040786193337255549079992100711570718920768940221172862090882558699950548267066490027889236886621530095074130082493547114776603367853680185377405682522966354952264719676813347391798935621133077631464868960629532861319461337743807529569639258143245678840192584081873876872449046836684468359202906733506020925271968456446306661794263712815508080100908589040508022665610426124685652560511534571614641152387348061357663202692550553089958602542147504698437817026814379916026223815397473178087193163093663970327410871414355697664391705224797976359661008958019177678799790449739774419591117898846459405129290203082636873768736198184148740705093285648325107458531527080197829283565796706839963639017843020281622469509370238137671886899747538727452180951224799163444600770532748867093996680062017699812914564510021213524708612587762556143077710624442753482603690006279021164360688157305715824605996436179147979892631266662035566297274571768867727332104921356432958147299697949141677701957146285004926044945046165964397877645816533888652220791980334156332851300112623685278310173122952670657893295910636594579351155723451132289251880613049636404035523183617650404119306459268933113734773545072076355091807534725047262207891482399795151572651010619012681531516708856942463486774116796184549177248366911491437716492906928005130565247497939879077184106600075629750670177058696928033474237795649116372191391232597304051187904105104507214810276116721861218328299842940169464059748847271104965446015236647642576663811247020856303491595123027680010103187452491032251786145750931425650918446761462035682109807186912981080443975604369028273072490156771808193679923846216586490386496546481349717723372728523135653323790292196352885877289906435665203965577844927707860987865748553055827324973109599539448189887609693098255480640091389227049088488521985226586280667087307423334912708126609159907096698606065045453046470188190233253227427095347106459893811435847256437696768879575294537946236667570480196961121001444995861331092113747940077843795567715076211138478368702477863821909711085338197089478058161217080006347551011444534579816241974206638472375187329386703466563576909370462744810221736551352679190210958543341456067574357017973896638196008715791117689277992736080339474185505107156425409596068346395732148507842309740990949914002868658464454280426711409578288228303926800338017504403849907954051862582743946701860897228249602241441933345778048468719374604056950817916696216135548715993080160079690118826860264640102007163527609787992470655932136962743223347424732561107809810056748046452310531981249409664153825237257453089492665258249860775509819331957577052594581648566016103172023687914194500844318308401572850896510839088437735886951523567029431941126889479063555512597699536920744001042950735451901703338897212685425407344742831054003999925375786774524168814635358217885226992401065256647001182555863392438622758755565670607308650628001714545401155686021403347336675060750525794446479345635303854702568782097629220625045414240971678130807007122994807676993998681095170739538731888379290358316324999541837648033516101711846928188658861001897169751992229164167091817474895148514199480326027845215651396934557472211941444770089771804464860914485116032474274811345874928264775891453175974202314647967640781720938925211064767609013233678737353138752702670573539990069355042115568387975790838453415380224481671199845129214989658754774428177026754975392637294624660012064108903166951297289192093600237034430188845980991410501832310709844366516954978269927173386413453731471775091081886871509507314566640703342854683416287991964552034257614042355643069578500561942514570631438295778538553529486373498071751364351196945722991393321535488306814968385459633803825997949086119135867309806899659942641708491934230202863931707273926825250598814668030166774262066355162834214589672003519291705393532567125287859741030906680128831681411769659069895342145364591827029003716182166350835994770599370175590367550235411751536652640373812969908955398258412510293963845265060686905277282251782370446024401160531357223958405775830103833416001470397568182226377718047177038394504084989952099337391583921140593088578674178740838844464781931751928160888146845552258322554024306941563831084126580570742735879651215992997764663927078389270436900607007657485158087434678749782855830871181650379367577746942501131758503262396771652493392840823782299984286337931393640200368260850687225188871749303816782773366577063777602073620215976676656107582622429936790900263939957943771642329456847540875774619062414611561870073197584818626093785673311503073610132066933380361830891161791229828954046285925265402435973225985110772702676002327365672770497571957234995970279590455553430869381103597628022814645069948353453665181144809490028689026777103321632668260946888130733663609810546755578826466295708385810489580130165890873195026462118647318090811310912498897699287103817964464734310682481496544931524176972928661828528038862110106558008481448905415237477764977228441672600374331591877195288309337135444730919947747690212436320534673467466443496707189522034809288985971382373804509848398557046957661558134315601962652407514962754543887148686571691418658609146172162660702576040988780770870732555559278026908876457784982563492586280561354810252244475254615311357939918971510638389541459082703101201605244818038702493841016206301427307839590658481978146442522030412540440812783848801624901385626993602407991433667671259147643916797787013085966489713287892449049473321664111332136105923331421601782316038229674952466493993873031719347824315342535694533159888913252066733842228965867255538870825006855768345047641964378009888234511287424960312955544737664995404182280359477840726078126918340320283582650686836839133892093447723328066918380108151332876361006810939964321786257410858887419897315300968427540789682715096262757699232792565663780672719635430480055941367316820162355558829030909168391573811383670841110413091209130160363198388614344613367854171914690510198934913445989048258910212338806655153823974430652641675177064806838666500539171504767988516775700750356347982900093872012330080995377105596904677801951223013382011084583548515922977584173540797805068594337282520316158737237736691534107775615399218685926451457432296787899616197354798212759517962633682454835952060867283747576933437730221067726259809864447489123595626679092059846486953279555050029828096075953673686138703920277510100132731081191605284827454709202599552927774017733353965859739426118398177653423325230173732757772653681349243518555274756583069973439225957943304735292436410898552123547081183831635004217072050597459802183614747433819841665854493344651461588052238816237166180599992263759531720196923332029286880695426686089751500937160077533922043821150924990867765410850279252222269724205942540152071367251498133390277661366762160276155827033909122667087448135687896736309564366637652940760829523736329606743257469542745342596194990969379502455964471681270707132112708468494405278383885543397817649595963113949743410044665450250437699169075015641641187296606948293146078015289756283178049863447299380530307063092828638259851141944590527650096385474960244891042565567486541249319760407197381347498099752949673714426862320977396218566937516095480548591594260738527235632706725562688683936563216390018341127181808722969746341629050352114383001388424444625364741840604909140774537995185237944398672197127787257150651620864239419716080914610916392763273735357197071694215359996808855271964636228135750290451326606944177874751869396618969976804804194062224075346628071855570925683320995427813417743624048722743563988575074891781748872446289812480647383662529710124177034830800705944076290893350498778746180952769500380160773549295983932786023052029340437205996571725775533764935798020128263790341386277854960836720533281531451966793350085733006765272371486359527821624291260302118249479750035422991136158846230008955257486533647796018486128885688502163722690089082352711917038861448979165116435625697366092397846159437868222775841930641529242887039153005956346722484299304205722547936522707387536721747848027817515486545957760525311534584818568839596542105159220442892927618971629670749428516107971628218285414796972294457092186397493768320093131238315103729029203520709627942865596440493099812500938561584879974134148347707543159794109955598955086747524479811631548622760022898100495019390571713708012714321602859911791952571942624848996064501427435491472206916679701484460697224291951997259109103521299876626798192668847826839070712499257953618544160239267930652292633369294320981875373492212419000381868721379693659486458782797294061414777347597575968491180231597752399838909860191306675562958585001066087552012671652576160251474633803922994842728881481761107862842435412944379088403885757056258371411826832833244242181086243960831116409729799284916174515556349892233817680072282076945197272613559286241156160628432804611752174172333279385088414371783588534695591237705682525736594502480268349587045368729851684523351781788249055377452521169043288388809245949016403406677948560513863551749325365174465431255029512405657981287385272266744060943364455764817974308646758576388190184572394770478664428789885380430539459026104799466536727669882156875468240609474826930823770361368814096724784717463310509127604297072538295889115988967186803172826359983695753111703590610042799420901240636517680909920692776606070380830575939892972549541489909411690074024190179410362485302079463073014563603142026134973799221384141943741059311256272046097136025466388260572575623913032097311160715038310227658632897318802373205094870839617531545254031776173210810523461042963882697803438869508115825794234050987903092700797559480635049091685400916433743684300900880121907340253301083293548374099925965578361017022543259023119053135174295997911195394672638288677417877158321352729859034217095712309250834235276268429184450614945951011937487299563594016738751239107446802531197785406141493125520421643347939602886068685106246955034294854911836226383119686464775718726504156016129550410559438343470737671793195605151124039255671817956510129390282407711032405845539324582338192449327513017888942995120681190189776176357646325995051063037635360855316598734782751830184905147297264929805425297298942040917099345982904346664308202024454661427586040538050284214947512757529034181057721870204802114868600307030002249982981501740456927133620729097138889738489686996281685748528007326759208490963817778430243880518091168141715915528404093547265838282824365797560132669044017546795288364694802585490528456268275150879116517455174070709535599473605854943921548956744498267080875361204440265694867608710770092039093761894480200464787452605143837826291849073022854939983423474254424444125003384915084101375566413803959220733718649301105183284135155913116672544660102778713257062818240875313778752823219680017087284750861955301940876508547938390820487263559873433756726469164387827710132570636240124853462258086188833234557949508863024522295346332661618998948439592504259050678549557191186471674300869409966431614896343425609421715361489847413881283491844738457552727326832195296871291325140667334082959649111508527777188210370403304524584331829705160497165306938877406798223896659713899865462428362870768800118020764482708878343766099356531785504077801552304051878780502988216476813972997926820234409776727504708968477055913722139402819133431078634769537186621700840651489913230663746937677299554149550897130338275411072965352848014051019832077569074458897520813601577309254928795496013018582562240529209077439781140970529567482496978509220208364888698192468215631423192979232795360702382413498090371141439181396249836019877177229496648928187312945298335776968900532122333747901489940700372421664952533292744310388945479628521403850750949154925367241854595776195782565980835253401152790377003758561402826091365540935550576236814553732336523972455410464028427681748955335950180546738509206112908871469731600119642460714433446270044590024736635755546433066969978935643193045328622601674852401731175085467789635430394246279863368428208251555442793381287040964210140629577607035100791032068436566451889008421747252462680958603576932517614692289460953572217772203651649571630805469160515193570992121937444296594503351214828093644312481546614603651764797692177209155010449467790860591387693155196184348146270506727531819375031313824515958878934916106807410746549030617686999192473591817951501665771498728697541521372502026307049978004322850841113474711535637061211696191648248154254550763212027033000950575410497833885496878944102476428287162451641034249872284052727786632674680504311547437324684986357390224137923114655033655105394523177019437042355385794429604914302436364683386653193587914532590235801096997240914829088027287809086094191407196633374352750211896230906312077406900218870803854093543097240056024232793279284864419898533017453838794501765327150235070322749681579963149165909177617919416148692104026614836990001601601466059158325341077404479690108948416824030045860738549099507935013366247722670855618461011491098052684619073911669204538902956574581461867570656902029856032258115667016140444059289552583123542398744281515790878269086308449882538383486392159144676279827674453608012209735041930405110970535743012094515753845860257641813255387208725446416746179482594364821758974962512140302593049972417248205959526522475726995939145161504569072418589366325461656891059349683542785059518840667793323334364222427766129721468094422241400822934842547242856823020146490163844568562197623425659070909943691686761946180205937261527244356654658489122046886091795482678571113101932380069652507288168264028609182635078226638636362807042430190658809288556586721718039727856360589374531834215003666438562773262775882780303573476708525655030538910048356688442758809427141271835594531834975286688174995060519618282886593483666853876980886354053918728456732534428778025079167561330430736630002000405395853310317628978117266854251469367753383510743675570507675169329482259599717260151339180280779955705270006671566390519686723695650891792744476467649623840284422059083745528903107150230180226018412143318888210878960451858989567377431950560014339029374558563461854368061724886750812659732858369900256890047755926806634596405082875807042579505659073228446126068315266594327303413531200567861234144883318265493324527354300016498915393846401744188332683212944208478001380946609443947909569316889579022920282623504425923516606497118920958775596155454682909302401051207948855555116294828549478263476519014794254834981101443890508906585639183348589989623128973025953675261999763287638883628797899893658635820928415206095651133151957627469741581313109338767047396479548316213756190214410917526030112070450995248925799503396316405343662161959781349854692557722063069336674714446920820373100841520185593730782423761978457711460925225777175960626574833226032880715084007098138383727383427327313933294695019793047334713249525344514684139307894095139245411117976653508003690260009006286247415054567159813969998099763801551528891932852435926732041818148613106646660593572036514168755043818046919371568761832959098041659084784649029877976570701899718021828349966380763992868492930632711030059012718483346818328181324624920033903259068080504068648760325889449802889013442741055804419658896023303134442113551849995102558867151840959210986495349264831228220761004748449747523265281559813541374813747508074270620169132635977496090796624924439199386859590916873691670614067376262212855916118152520658984526819019454166552263106516142487830729757402128839520736389161675061250191644437581542102357765910044093373545311554213416691058485144010167050599951723473913623896773233725196903609775971574057868235863766530246337047974075454690925164425620304486130859525358380235306716422540992621821894958781809727258187910564814634123731058275273820148016549204350664958647986711673677448406865700925410771198166012722199197417045643795808667045393491896040474534883681560602668222097909730702449869446079828658538702373672430745134988513523156032998048968285143808656642521996979468401219231794739861329346326000652679624610478997519498153530711993139638833958154317906986849130738580902747643253156027325733852561168966369872870572214783624870339243048968789605905189963183456849147474757334982224526124026710974014323072649623366273744422433419974870028519363517691839793958063436056770738215118328787306681391488403128230682195641156746194553302980441420409526079608802896906961524383683449560592586312489712178084557307312561614891216435735440919168440882970052892377445255922188652253098549636920191061041951438498038583698457365873966252218752925008258892126499933388237013819368819548467031085883033544610210788877906415487028722530503146787396084264746163023582836426751732259279161297141540528956310194706768937937463284448150602417454062699266614320659192894445980993898430543032959346329151244854934903894199533678902964320988132365155078248730982421979920144970379764904293128101724881550673790107565680615421597853928501924636612112081105407528455920286215275673443145984072186522234502216468830239120560390502302592415866567689222240845898083400342547726529521127008005118743019606663948604201996964407322273402219681414496309575711750707165333727283954415652714970289355907381669929022833119521349514444643756991105216212891575831598011087449232583597083616689614272292435320680638458710011936406374661405833306295612443717384646537174876942697902210597589439444557453549892803729472861202338329553381412843094212462976815800493432779596817074130917987642650287922018186878883773286987900094786163355768063785803493585853043153732838630350290909058002243909802156504271908808993716285187238503412620046852296405216845354390819174810477752093990009035991867046620052815304823515444181456701094875858281534769828879349740325458431146282168111622018785535825045575700586267917179781042864161270076955882785842895381824106039540262438893830999412898854311782994546097423573493287267881407334954545113929906261930134967303361620857292086661598875407287202158307298950082080019728727632971425155680353079836015269483045841536683443334626572488006459716520465872254398182597337720084934178585641714713272032625830034475631678161472826970070482162595302326698349256086912142724142003443080443599804932015706198034996026134920158738168681892026463584420332897668722510620129931138310857833104136847559661519641082479974681229286582274833838667900647990035720494311692638360463779485530574930906931198491253226840698257090974568052382955224454597988417577765290838206066206202031585887010785603420146765753500953583635662697164585681160827784003650993120573931581062424919055410218644932370351713587394526519149174311660157970806666796181214593168757059427168504936511730994479553993783214494362010153513248977391764205152837482088484450654816513090747158052196277006642419979251945845011098288976659881152845258201965815016505679334832882891975777978451322752816123514375844911711767953858697210226749796604148263285997433207520510919871812241707763821855477239651263033663275919067594698646191809064724812152893306379859340406910604904652417469660839296255162865257031170433395770522555952060325001022411026399361088847555678351122658828169492920458076249219334567535999773646224084769262143805319918134947206974009060799509128893944996171853571684344576847704578159153446216498572148426319671738014364288232951141217552691795908812809665563119604930504662195185020909097112926386989544839727438088151524620338278922628184892933773012273352170509004213087132144087746535836983741942190814297899919379173014751006230490249763254878831622894102749833069376175293017671641049696012271584628446197970089840821523506554736547085104250712071833214485577597779954105832297499222929182280879269481105776143365049011267150609859812215439148420480819365581841985945622715278623962951805321935397292687832966463325511614448967781608906741708156304735283420897491820885808173232717983718171245127937184961269080701349715350848341453418249559043162158488058445008182760552866542781145093611213713948101393214420768372739074336312735523437763958132910963600574388315040787580214177677916044651093320646054681126484645983651654325995966583088176927965920676734188431909793522918823079132293529935279684299808977256603242687778819760930744288701952407203943408160821651976537097858371946031081668262779084938516868884676852187333099331390374446080336828138713279137179371143915705824587693709612645144966189389183219775405748318217244165899579461304900493657811776892556882034989561146782830620855864209735515738758872964340404900791328880683736071123340484281134714831019808315782381899576368715573941593852868184772556848332933982126309600112792060404435069300355621331793241614808321240043171593499304213228781359897031319511969072132780156193658663044954628726770292066193793928306922075599958079170769264987659071943140050647596829266688358847973045412935171069473516209867960773497458660900836097205460016011168959390522548610329568061276650713821317476079314378532236918348075403056915708887513639867058517468439971618219798509766197110768005391291464288613545092266017166620405600367458684663039077473374924051137870357013414325577130829685319216393910925497819388833776896315439394746915640565512981483909887470901368814817821333124231709412275029981684471988965830248222699198475647832525725751726556578828315848409526802786523759448800061263220106501842985071692338256909694581969998833318093142120579986736053574576791105814417689391257724934918308127880662232438402408781201031613343068545418346088825629255640292705347699483501511562155805887039587177851019874402707921883865864997871028480080910625750172962641805628204423502578555454316055982809720570552026648973932127971128612897457127902974520934219809068518059051660742294114947651036845174685513572449018767338509217728852702917642847516487684930482448518008953815517751130271556315617913247686498029833568797058449314053870363475196455918151376437325623321246579673670864615138958153488597255546725834264177779499880606102043469264397071399662420517865671566330307558894313408729108061752713479241561686240797964469494361030628396904869865825482614044812879646223083720329768897433438934556021120450145196905203790757791179380629387298738914312343113575014934865970547201878597242316196054448651900813513771478063267604443727748418038453632033753830539346740133394532344853976752208630388298054707600807749162290128368026308940574081269308338055093089348221367655057551341166717126934642547150537560834080821047177146292572291025236667423551871374754568454030883128666602561432613116751254671941395144235632670331587317144780021920894046405450331389180383040411279421915404311466993575779742612589669272188314034887679807803842157676971531335533590340576924441755902385577985078741105743802567827679890650558061787908256580967044071776582312744127108486692020255934135884320689431467790899082827913779408979857797057482936722631216921711139995017198057075879743950054334927157870905852354648915163574369369341249194579508419338328833832530788009700604598827468604522609586000712954474126330292644651936011126142328733938834792277866722794136974087777269263501218292978980859331278587741986217324081064750719968595209808529470973034210316661526938400452356494264714620509262458023562280066840663728402570421189409918044031008278464779792345223561699973367378749131365788487641667586754936591945973926910190159795173083358820954818946308942227316060800609523979999624890010724075691980960282642084295131544453554603333661219250086257680391004536079430135253409319268350586911385814416737829425852293043286965337236055474587180343453928400974589726399666721914268850881292884839048406878135277066680877358241587649042324335602108068927900578299852682326299783143237827550675207513504054785710083026743148777259859460982991050517614037884188779222452762119259978688460600408549779648514530957970922506520193975814505983716922268735555534130254222326528340437805882514279758292798642744756647339698096885325740287260072567424725588843398715832746600000815669201116950763561660074610550946465249945587306518314753557671503975044139993153910245184102683699573832328012124122936230400876812433393668135401041888103161945968255227110975673375710763046007519150859734070223540883562612029603233636249811035365594809636270362800185192167135198378155258838990382710152399901332591042389560239801893036083943072034113935857182868669519518347095222030268213029199265901713993189126355669972359398915303828871475597829734141001763288795788325922436191824155916268542878294539766589779167423393725405908809804545236026077520584138956770475074254525309412682428048042886720125685308679975916530089636960131935856100365056906808948267879937578582657735724606846743751809543738981264126615131685426828259790743993421031519335494403691956857400669728438053688406731582160151572415287526537824493861950994238257406968912513146878259625750375973490182647907663459631620107014857974251445021902317671406982941163744682870624007826563808777422215901451215518996664045453967962482296874343256836652637554499057499090698425644173621936714557408871182066406422045767690058583189412334884256123083070918382430757469960539061318176647907380818068974468466266063773509101025093858462044806901661333633792008915949978151725735731186601484600578235539169184605537496792054868567747401476412356948234456347457320707686088094493731583857980624128380425052805989953907966620086880167928823275189603211541197120240152480301914243536957971105070185757944745563905075775527919018245272966446344149400426787824215732152663676654219773220470902937773324921075013664593981173526154924339187297072696322089356651496441897649890617903828683834347234920389202465990808052877975678201997315354272222674288022213953586353934687699133238586318297987969559821506709522280124379465491415272648610337393489368140494454372209349848486478789220279551178896195355935564102520595019702192714982129578129324656792095363978348745156526745609872167703044353478942695075538438088131663052299096186067655615732878188742823397902088476616645788712656905515822653793460369151130692062043759217870939198766691991521937475642098111184707518559981117158614928524619404442772001861920232481008924264817080185336014332976236013623445319550230508877568399123036178195917943112767602068755566589484059454301447408231231115697608123419290918547695680002811936433888687551052070910984294966262794803826124060032721327922369893583834170689214061540046298822125607867877860782437330575645003050608943782364065691468173402472208454170251284087332053923248994005613884010685917518864699908786774295374874099230387424617825959652891949839208582265792334520156963447470904044818804703708743511735263566026982397644859944764708222407666183223675207919887483653608726857798075964860120833753354724829357716045075155009215436991325766658743766749793642395909745314163348384890705684774256403412732876543856056192835367395091817091014625755596540499528023978231380520079161612832310883458463192063584044422743605712589613113279655758167296738267544044356530990637426673794242780801728492209750903733425490801663440333891245431680310443149219756658333845393151688506359298215039979474616374514350979419102598599575758868611966430397922522755957983949643022360686107594985195285221928331966766919208671701026787564962989987512108626164730404431597888916340088920116127656118542058780350358385405858996292423818649580594138888897353932383416254851677773704962432386995225485772608719484024276565072435730463490334940483580687091685884022692936707831960755239603526750356095846377431738339850506730657990778000263179274037777325617075729323958630899656101878488463370587710700550549180716061902514584887104542424496435320740350122062491309316442619273899058218613866426076670885736878923978568982149723574407929918906917067960663814531525457212769705703923247100839327917433789626004644069331847715654689976226019206102327703339798728894547402786341570740215199161396913771877730797386787774416844682205823801229481852712363145228688954928204648177085916715187959996575035965447934763348847633583335330612461350161677280881561000018750877102521742327437646659100161515037981317148066376108888654883318814780047858669323974205356164738260237554755232032607796999517092332630332766174667323928946153835061200860382504867626735932898187884893349128064079729431400248152297653805420648831992549093800350477304909372425882751341119221301852362925668603640624639704907369569275882379643103800363909381165276736420024008179054390648198316288222418319537273117288181573343048784915875662939747171606935651871812489177007690492635989334248328127122231327965076663001168932964391257631900534057377941560651077061669401929945910560177691709030546885326747352159173278459345456235917850893358382491135115919044752108473943444138717043373167695100712539154922149117858285712626609799759038357448520802029396201152307049627054845456273203394260338823323020945564048568703095793496135313305836676804618118852760558824973575075169900965516590020757162135737077379316164682692745412107561248132304688495254398712602869297240784452816725146930081939367695967035208787352398723805837144693445436478323239163938846166186752419121988533885965583980823953166410053344551929641637168524674963965629757081083221797769812399434628135060640014273588172046010867933290842608402716454649618239432689988214296885256371293445114091067736605900713086025305648321958459607361356210879170517047264521761336260088617391177558895311912702788175006249845876539662852131007400453772840666322233753963554276686975324571595217465803503117848387788714983279713273646078563300724482693994818366744536873560470191031093278039080092035803294938383153288776159393154527941892863515004611310289515899862540820667721802441648022602243967016505945021277959799409429992459023108851692957005157148518076202062303534671496389925051981019507985159061902043397300911670725021347354537187370191793093644589736868008687850445181614396153330209463373347770977051276213035394642625717900735791476138508768598490398910681196996967699811645741853414542352423874516104000051512273584116782384310343312859394885037817928487438390754401626458740004346549631816831015091226678551789023657222215685750226932415912235978072388598318558318092263944054844468917960735356184047184542048636812132276303743135270342180883924129218944951325036454514891780910961649120776920402023085127165180785379330792463039643572052311208755730284467170250424199366862627923421640450353706627726995573901201415260176358631792494571007369695605996144094840364198069360171033986336171771699725633622524469196924125218025409213253415619965090111431371713950888498073018615713227100921780000426954515091832893131010083285581342877382380966318136288518301853272643765053566190933009548511309854724293552319451567355479564012909929958796732518960541385212578440442527510027014624641527848433511375119241038501131257418103143492629976785260253107030132504634533065815129564795742547566019053823949170626319216645258244485671101605416898889965889722593235111906997915687656805829783025873452637693242450334459964763020885077897026697641557279955145003776220953404673069270049986989648358522435548130702396574944353979533090157642944591483945387112434309351387762412945134222949706085175942844939581736905093917775321897107127743305138833999886481575674765411451462435355887265698612427067717091474198960026890049525183270369174216602075462418984482891356066039654773052047237799069435937011372782769156920821128880456261863126815120140224826512129603812054806076111816946920164136945895906829088887015092701310246309478965539860196757188755294814506928944362362441986266392457691219978016773970637419875369932165293905597558984391057358949556312270634049048246963095604073125136413877767778047161843218189800960296448095686075295730076446638896551176028900631944548818381485875473087015791367548129771897158065473463675778645476869574785105420013489066045012342149509188854725541082755141249306751456758627265217582246879315987435572282409445786611695977724992755457641729656516197444805626050170209483759521327166888883414184637029778986099700922194945862474869302151099677372799517407589412875319538759850104762018597935443408331119547601635582636175378607474322805011109472608995149533633223856236816455859707567190275578539145977705244637194822421871922096776328076443600009463096657626517365600852404449303630011733736852757239331629628527581828557845756201376846141194210653086669706267985001778111419640692602414784673864721003343860436726939065429158912851531497035073728219663103487277461494929716534556638768746205887032638347147934510537575785997740218745032913684347600221207150829186615561292503734031412897375743056714322275846685586937332935057821203387288763412956410699443024399257714963751520574914253359232621229782047726335002513137070776942458902896173700621054890162742901472982941091354160000832109337017769580187995562028195071309539257718562748787940917528071779909274877062366134608823098431180187693809073695068780476568181344551869264534349896563381571045480297788794143690918097822655514826209858837071746025522373139519736072421700806003314785403166165043732450797186532806679971103649433131175472826762385588399399405861399651452028057960646545234418715313032716648883954348937466011629157251267493561560210828817802744581093784290159643252883802433518679959946387020280751666937896891052927161609831258956924500652708488193229325831883067841094048564280219126674849242925758446900401348482220062735454347095792512155090504393004022883801334968826093594193348500555462311366258101550292755360410610933960010255812796600756888145150164274867501528955764807142112428298230050225637783702575634116097940048522946394124487591201913454498232600054043715046542023915729164466579105982513872727800998113545994214497020168209467282796139371359169444495696684572926443270135645866910462669611591860840914915085948874203094141191547931523221136357298940941911159637890792894118333913189894178669398098859237634347001757420697737433044092083435862499147049213341519902324102359613343572502095821814982351123199862379687131444884021263028255487612907334705073443911008575697513429111155374345637867276496577594886938692054796317853772761539789601996670263700757204587726319360997542731590646210211438929991687199286044025047555817299037495106626397118876253339083492146662510244435527904829516985170499452275069567673797202160464910137203615917038089610282350771269546071646102624662167796076885021471645986631002883939961171726171255737529649059460607627062349269363820452616996773653944462919014304086013194393166084973539751417772274855762907085417310588426211530916895465420122653888705326604321495346219162966463190734465498332035824992194003233923749774648784555323657835428589837238017849876188354697742279656587077193766324014225989014649259307643863790623231003693764187687516216381522551239037858833350637603675439474284518119961947818831865834153948251750532617541550690204294038671212926262141684862275604256119693693698833761794014117096828938529023941724506757090828224009679273239664462374166712568794937178989432126544871406724224264152203311447183812094536936570208982107189902915250110924055785237380390186611727717358998637299176326347594517670463762712457716758726921733542943410027184475937661330710795073417771624194982698581680428282891821425857197376254364889219640067052316893308975356093389339325847106855842211207414747663948422975316774751746453761003070944826705550728924809319440334881123536733880012309870641639641811325540788901587181576041476824497251985109616039662612878741353209152605001070021328959716294992998083681570506299448600864516053640817983379726457108709612738933409464147530756854228160791293606929530583572679560944082748098148564972170733547340376969468427818220849340840561206267850816818942909482907264986348413131554725906326892503011235654376205793068666103197101608307937355230768393455763686115187512289964103835669592485006699434578722193502658123003060124793147529453340403701557586374842849401262088630107531208120526933911382877711200628593068667569965328217583523860077741197760147165225407406401864971918840478627509543557890130222256200546804668178069135799431994456877896667269684498697485285471483295935228706894698936135688126120341106202001382753784826851736265934218037890212136927151800647156811341041844134543158636337544189780675267329799914016240430873944642555588049743390479845348335830616537666757649494756175225765487785625525740915006273387177571478587497861771453527658716886528999042905340320858193607134098704553199209645794901332244730304780361522148052204919539517608516803006294592021173200130017798674067666120478726042662139173935153745047285257684811407965406844834372200703920426208157704631209964758521795229284934135978167639943087681948820993038549475991628560838098065625654720614866633860642298201314242401597741630822101754669499613344285853125368477495513030620290452501173092517291064455739895128789563460007801376068751553289623643980358307168087447970907406182933714421660814150205222362677672311205329954710591272854657325700130968628815389953516246506488208124945406067908862900042514016264419650074201239314819768470563161195477843614319899176230244183682936076598207463534489028693780469312393237905738258004315799116138232718916208382103057077047123042056185928360850649572599041570798672176434249650961810177008616825750423305449415249951012075638230077977741637000064033434707060691059961581414844413356711933762480951726043386363356792445309261859430329870679650582133463481546065347326966709416879272329037458801912509793050036272472417796528582149267350848396503755890227378960180466491547374549253666832952970010142661541900653982620173042601153398478345584828546922314420890571698283894756281683399360027467805319931721728831478358095430604040583586482076064008296410138677726065135172719948281322227423250113760542206860541571968958558516724842215096790571855445729668057218387891897615696813076281759695500702067457846347416754684002994866263617220258456809893771557779274241543291211157562772466575809391461584181339311055482491207556852389186147603535482642526502209189599662644519661408810641088192473216006678484848975842986495426171812019249128516337942839530371211263567019589230569868631982794797745079186374193665149515649418535417107877837178404288528984315015407200953026130107329349870649403613229153996041680979106578977758600703903434571022522903802308136479711198272603699637908899400582173197366243545491219617486603038840331256999722817240858699335579511662628890806628945532232159827617432990339497046172290739950540928958584710897399510236628069277061970032670754211520900486101015171478936815372778944320341573696862813688654016350122093180654792584750958546572431614645392277069506544988359330800714724230889918410221306486391226824782701747192874001397858498853397388503431815540788397531915715667513029569040407273903325907509995065697958986541953605860310598928218879840637223587853769786008080845264016601083351809951508720889621982551626096891655471432922308413013706119149206437865354982342732386387297379732161207869011546892133082435890307038303107373904352884363245332807172270219053283293255395252941157695671776618982852844114315132486766283948033934336438447236681508418264526393126987083116360356182802729791310443671195200572703434750940015223868919542049756941010790734548160698978384459633011933579706961662099032118250621518950504920910697066889344336401678944344235643168042471297623023750789609119752182001132211299194602518523622389396395769691555281959819932567179416781719827491086576175728493988960291795444262846836388890946691457462033907798022642446248315734630057116814710815028289208094804002318575940758967288537214588757490469723965570611535727397523682061138371753673411290297515783594013861392459928662025675133579933561897008394437166293861247619022496115891083739694110971022365186786865223424717130182538761763277251964444753531101797635720834230908893409014677079464273829335295265327338135977957833650735721103494395045744299099940197750853258932249961194825317935145821878785917213218627767549802158937970861639231337380254910070918106017574876776923576546206345907039105688744654028853554702822054242540752626267051089841776632664050818356711111639942185143463929731731654477319543170256414250281750691942483982333281817518524649026579276649466091958713043958551951135996901256415319437091008597736575415433913844025399290965905736522698916402844219445244749100595254550402821502744829919549168474310197671283915524189440949287298392514754402113493588915072092400360809450902033508693420341584025779875288630375533510309842222684535862080542193704699803281187601932466576983261503370564624447872966320486486678134116669380085058530909820995018809388576716779303751496466899645097714426233819054037666014571675648425346132758295401791580432995864319116445222355240431266744605645605493498155058360397611688588368983952097055111423136804479870962254335522237183786650569771451823359741601109050710663428964316898469462576318558654343294346910693397293644216783606535995346819560023331414191909293195925273034145601782485415896466810891707597840684708304345121810154371503220581387196240621520557990019758981306147711169175971357911694859510367527973248500199888563271976506119427556740264194994222744861025616537376109159868948022768935901884529060687132205760100874023409544347977269378516485406747866414294133129240411357483402805427254819056516901205453771696780019669580800853852500466652193974186105484961771269668922922460479411814774716372549215979034665730273366628224082228788144620984752519405359622969582899105173144050309362424267834202298144458425671026947278270430714976347883515598395105512243004978769735508023362073761695281246130631455529831617040381369204001194231655016427235107561414938146537022131776597105370598012315263341909757898300976368868385987496691523008379978439840352459089131924297407080307774690939013656938893505618356707090680707152152077163737803022018214858714234972949107279094895665535432381222227664444801417809250587052378924302679383256139717382203102787240231894516375284568352869534630410884533321750871465426027779896760787022013582817100165475990011271708876106219607744303340355681495523396664986815507525239389061471599948326411971967358476177478593240282620253725349397164766579459522371747599421235057999940917475483141256123562951661887917712814293547029578277233429702090447677166402995392586830400432817672601118551643576704693635445956405937347413145972230468688600065032813190562798328977569784965131167521693504256480511017752272335954621427658493334486955527464929922600644100315997873530520677834589869056304970862029437374006571263736679052358563216936994332165851068690499169677143562346267282004885712544517583134644565400971067215488155741026898619539799147200743676515234712333956490995371644729154552015406131930175474802733024275681868718115357450202433439743778156215247131112298619678911696765791969029382011130356538503371008886144764887100572170474932695757378170777825129375910045434557162349263708346758630127017358559439414562612463911225891294047935097384094269038694670275705450647955901718972067793636642413989855153237265764005011140912264256643185722945798681079876563379980315929884836960293137772400148433989918733446533860875496037188351277789710465468550832615756573252628191847928032063091041585155933882436474681738513035225484733469144183777136152175254401118764904507927378543572836994534516521115831835314411824913830980056048822944059109286447860177653527992374870436802944630874303141639681190295443495437624471551249998005951278918126959126922680299347717629356097390442820446306285700585022304038250503010877461627302846449575499829715747920094423044401719749639530456810580531935521146563857531468862439289133374796897103617445032928433372941435025182512229645239912277330790353860326377152847922901926495702524649567614688441342764548794900626092524990604968883766537147388187594740453765389770783751242038317307553342472554785295968927997549459767539307469469836920801192717192744869402033566452167337018368676496749796997032763921905421452470030280671202748267677672462759753483191793657889675000498922082160911923850899088689764516321522156777073623001737060191762940265632818544325741435592146642298489314548242103305570015629540324529062050789589936601601311871054736895866328738880383477428844744995570180700447185214890930035908206928220318690341252868973189083248548487979267819661164829427014510266274678022679500997066290746867574225288513593240174082249702794326579692303088454077275279035234757284029671427287193724275185054236598677058617566606637088009276188178828639388722737380528153872675431551378311697778314318574682128431418050096423842391328213150715615141023625311322428176856418388013813297760956874608175063743916543284703504842524466118899058208201224625662850511178188152118538963420658384770079224962884370453449112309781341608082164327020472104101055622185520160886321494533561821237836453563492381064204640313599168612731737999962792821149016337227933793243803684435204242293568594447695907360837549672883177922462598746007610190726875461230237924359177005289150042813817382765940895735090984154027588663332752115850630509540314575680145424952510841362866110737395256103987571946216231943161557384608986240100096620662398232221673437224358854717804401213629626245353266426581351041369778681757102514828169143557283075308121872381030675028005731800680849712584112836641912568414687679596444492736379869799434301805614885546548809583829348221690983893892944262669909707389220355700310554731214194134492363042671096855755800106051279758367333568959291913512752724185102129790999475350862047769587180160295650105637689040023773972113024226208646777162766892285191698007810255206057741804579016765264939118943967239378270745261614966234154020264308517510814018101630808587103493597301349168715865134519734447695600148422885330004110665166372040335866593737972369607584220511598705842962543423569472422164374644140285332376478920525461224573875534011882959770776532850092174070029135976050163822252038993606015072391719152223430074192391194710322544316904109797120431892926376866226573044447840397051346455776156923331506865516948750613635786593406865140114032021234258878632206375792535412930766512030396944751068399862375530820342361630891172013485255452704355632435265020612153646686054778737661771959414139637056442184810902110821003225577520848109150889241417667197463796893357697484138218657393038755982756025950773326633246679916829623140683993190664481351528271192483235510369167617561862098388397534886974395318288154948134522536408352466290385533555837511030690621520479839007397329009432675680693416263516773203291714130707487656092649528091090493815340738782401950128936189090437541075576594098217525347857666741656343250812675104551570079453865681966866658815706390244992758304632107969689191808979283599396463360491809480771979653223877055579514863154499843068047308023968230637457211838119049152624975894121805366441974853594198538353560690801793969198319881743071754618994782629396954792824139449934428795807525315350011095335366152558638836233313289943412375508815577778101731426809150234207418057489150481337810663898583995950856029671042858603007161725915109215302873142944054650068770811580733013451159582870156808704308739209797072971203598021142031909416001342360773681851389754571441930956014702588543286408360483026109736286788737507502016311346806668450106417856061896226658111623795748475731130352844009338867180907182880078478883633708943792916487152949024810360511367217198498773648624427637182119617041762385042316435382273240145718273077234710160679806035442962647601904589928311384429929541056460303567305143807722672317245886838770480808487180548596718235350777048329325386352981811799753992944984277561342384652263843610447174777960959247778624257743132371150474050080351711530005483584113062888657972065953350757805265888352336099360251889959185689050028816334251358001023285831803371114153298849662743362305179779508651214257940769884403770401547362321016294560159970024013472757430391891269196197105575263230383922805565313232494433744035505374207356514673487776795258359006901515762510416938456059501854986558935598194813863872075572736790433383136769775626234801456705998433063704410408183302795204877963387122659415277734220240404513831777405574957663834105174927734081573952790062496936965965382773199436580545880020994903623388491515391253179616830480695373987090686974821234785394346299304192156200133437998769976987483838013827489767762680771282879553409928470565725977447266970661169756287804526904491039041049225789374669269994271941567060803349562581482130690132460434515714075613719317197630325852524135317372574833116790111048739614470427287252435633256702480871776538693127900950416513953211583657705719409638040858227051902918484236636290355638805502885170022649937714056180921361789155983685946124569801587886752087758581358400974395630804975138602010682315163376477641215143876026512415645069242639648016820403910843106349625203281601294994950959740325635243310570877185951982191673624368339565486281937710572474511036155221419587498937866803715514648255684167099720259261296847089736950235944400155426291640220791639901068446736519278783938264941417293452901251632903627739074933043500319868923313936670042069606283428972690794849835393363005005179945722035055614298622539779579741127868756567319483486184934919302494021091349878794771096821295789686313711825992400220979391591446341148589290122744320751806690486475992823551862685098257081017976172995737901211189400839330396273990466737811912287429963983667355957421241054626628457041103209376361825225309924623960010281174859723172659457423823516802669791869928502389025705164864969155043214997621077260160381216694589250577427081201873707552549424917296541103416141693185793190736581110559554752965918675400646250114197021792323224683380970316847018394573797441266521995717102213859304337540986336990249823805859545560961985745126756850219935756976906210882242427696545388417912138167823757115089130477453251994236977997033687112791555949481813513679623189081824830781112177458460499190901962139407387872297828829414495538459614971134289229109357584793537398818913889199921235139290740562827997938330791972961749710696767122466035301251286035678090293835250268291798019963988024448493685485377644827619569151332245210101969111165844051973879346431301415156500842051578515841090149819433267515105779631652179595460904369327725205578249391195630787466976074837174839657851881146852112293256069648289710294190865174761052241035043896125348164567389616460085600470585516049971895095144206830111532296333566431420740450058164055862522097631661842739598845524951911835244981322108432803923395888430306796900931702928815315433485015358875392139111855967622283139778182932606648971170539054485062196693853721000556485412132073703687734408935904854768564492336710502303002181244989251834727982276462106858448525424835788321674639418500683109271820898329442903940784281464843995946938910248413956900289212981319165816598424489211823761226415630489489051255546232068458587639129578214759549034768913708488697048049844652070734857409196099776295212136821040432591930118343166747978726587760199056506767888905563888545175159233076534687229345349781147286933890216232389987746778514202393969717428961909280907860130180082555239202547823557299433688205619574340240872146897030043810655576524707627678157034211600642313745675942909133768726580374498887675581498643648361851472648207365590213005258492127536833955334439546648162047211447848170721356230924014838235199550232567494864789898453571220294969429290731868601645728928721763925341413545217055064856903358266451747743362288551129585297606556295278081955203361001381554830386977056494376951641369083766580809039643658516841941513432264275878651565791280595050064046096259901093004506416863592530737539682425586163275293324833094720010357526425203372692231492124456015459959805317274031682423055727584269000482486546063694126676175910022640974916019244724760506107954038605479204988946255692426321878395730210649703693879666291468261502119179487344117897160681753280452056112743252950568752765476793142672228459342547751527521497601001582369309787605632698996547462523836296065651068406260540000332873050354291751447293030900065438174784660919243138749862129535010893295176990374105347742933533052059082659139910769325859365374445102003618130120754613764110213858476960706683536879085697755256888993271527311024026166349741017456969529524891885357181854384499969748561389019026831115193239156726755257975742640967376451243163846595664297452228157820935144651547248053380227200902564937250868456054747126403490184600511954511416631163049183818983492642789601237195197512077528803546036099249996511787432214770642153309289958043839273185311231600290860828935912823818524110922948124794060447390263064466000507579534319314466597427068998810891222819336572627946155745506691880640740719713386040301577582867949178949817229759740944515045155139474454058467371574893359410921444790106402944311119874770444107379349855072859149072632086148793214139464231151368726819143631060514506945541339300909498958235269662166706249907244345118768054645951848653507007391814706914186688938147971284985187735478412734512607560786127496234755276891362677500540516303350998388576002714297745019043746617277725625242765055341193726519635082279675924030988241834915063764977151738404004858243143980808176564489133471736601998238558664354075284993039711377786829725656363327281916614643237158500461677638258988099764290649889530813480607910797255952910063840104842920050328780804751306834029049453297160932944751051887447589811155873775825528178627664759215036072766665015118754924310872666742435624625509034508845795854255118805180169932431273727533826651067414524182247425034048304219325656169131706093118466141106654822367790407998808542863897655312870797120602740425422852773542715730338674337059452756499476878030008543280862461137401865147575990441135792305300350032647526068012644436928661931099267430593558970078305229331098262749936349244308681692471916653417412914791096371800250407054917820624542347374527338533338122742946231539870315164886315287711861634178997598967726902263479348512686346845775110118153302388885450096390872664188755725319566013115086568152222359023805699476293351386314008998699424315819445531244531837186511892984386575741952108070205958207553066240588032162242534371558477599696667177476150899700532217094447343403327346406220309603325246882256208008947050139842632936812808671890669271374402484942207813291689853090169380188819994025505089251811170373474921759880916243847920505229603813944964973355016641944934320524431977483046722623571898044993739105311869714638146724892115919979684488268783520013196682684231618693505757548967284555365144196975969656443460317094188118025623671729962815683904788302742357088668912380330378746353258797220782947273376984558600455606707407476720054233529241798920710437624096666493049848788219245268758050061510314338997556465494687477202209172522112651756773979030976494564468639613165195844081067647141838642147844868871540750603656580016000769379869408278443004162739090809837947547597045798692950567299252556654726025553344843074579430221504925977752921105070952779401546481735002481063568527827067792277810927122225508779379463917922626657501158330497336787368500676636758376587614008123806690717253536689752126092099255555133123018883771575338236024379492762609402023861902326250579761034324963170015263039595187981762454126392775350875873520370971209913826125626823897835256599106274686858629856114733332412317525804937983622845264140528807704165267534754330440613826116486355415640058982018075188021001775521899253104932467575038395937262626902445472141323992466490032942302469865622922661084128227020523888481797458583488400815692496406367511433425257869291054433644098994939302738005522820365280719342144720848626626638494222267282873044746701878923287381399573984724757679434276782585675222170211653086939547202955435221501308807813321145248230804160010369268941523502445415631353057677276774687373615083106287660625818701015248902852351012947353329302046359205549482170650072558635138397560978068354076614123487989689819013938832358987891530903396914989467239130574354216532859500173832656576049067005623151872034134643338391761141688733478804358127111832149339692853962056706761082756090712411692853391302725540224584722548474890638339922677941316569655313793113308764935471690258223287559394799291761445271751817022007617034421070309938496903346949818758601259150208819586219630157270048065334528609209976906774871510524701381262631817533480381894476780817277311532438859535256460848841655147850011870021695647896351948319288779626266583208603132272173809679827793719043764270084926361743522247578088706418883075398274079981191458752356297067051410859471563834041769046464064140448549416908029271422564666742099274732310918421743920936240940735830452942124693467658956500575798409164531481844699525826447423391523811202998711139413715003216154980698787196159054348565977222389007880659975787923014045296690508315867398792571724117840292872936691153497433420329690323936757186001987832096116957927236599096187333644778727875347992625469436187893730781594761723993614948910898662029771375881391250548699688863638797958358123403440870324415020476844109062914948883059943462840420683209512248892248874935314656139295273917934467205817130220825926731739365793366247294116416844837276393807344369838081780662084656432228461663095566962591590976515852373211971474272647903926423386213986127850941236854000967873849419027554171083753864662531640664305041694976143642193356064762176531624198130671654281100997474579693880789353457299412030598699739560279241271562269699117225956591544351571823620770677001223387745146768324516314239650782188940065687295032082839671232109403817978052419663454001846458421376209703117441192810595378799173972312262935349680179272512156953022609233461465408616139771028819780571460843751453966876365713510841202317310869159388621125265652267295790917658621357911176122337800708921492730450470079432779757002808725267270940779152338607462179269382349184704560447991652218288703844486697576540387445645350853290765209305804033949942536609296832425010297328248392364104291761019167878151147994177179193096906336350462921546360896870524177532242119733873326878966394347151396128183738456715778704622917401322895270904336771286396641877472687426279181613254637856726395672913609296676196833543589738366706305365533457401798192163278538253215717551056054913444230944419872675348018089060719511541712226679183793908459497859281918256898496721769765680553456420322310664772331020214646926469897310691710730788592188935195430291144706381752406463380842519268372176253529130262063238445770612553763336668038319052846995492391991102788816446909505269985759266641461754442909836149275979614313843965700804143629391474548592057501818161926798653437725182790239481125256598143293234065060289233691468201269935383851270899889434315801523342386868316608316439929787970593986603095101469636267055917403220242003108076849123375120768571990564712576210926054813814591036313405586846991074598006912147350751772675378286351271302073768008427711591003469610426087878104527730350273480644074552968514999028658811336575448855217223571066794567373703645952449840890224550406445451145696897602342512044202888257650916029761281572774001501714736440885850432920270522651398523587889840395866258432511107502134185715989455888269196129250203422878998459178148074265039969426180708206436827209846404289389095664591474247818244782377254545963645094518576130872535238886403362485590804333870247688247223378963496373967449410218754297660257781620603517107105830178006563491351231911674036286879112802259017511480266771298590365197484438781429098470893163136513440734308693780005420945668845951427426412222033360927342579925517578495177340071282345244330441759827009967243983556310318872738143716493542839193591033631570892208906400177854127269629643000555388173708855227281315443727014760805065448348487820510721623512302501778266828346428176491589776218139886939961136832550194051833626382537324792132131195974335034563549667687397893631165417246717283268441461957452651381144817974507237260838792584240549193385922047134605433690948616638246559580696115566626544250042789422525129366204978469700923217116165479959604461276989673929216840226701275776226624165967567713272785845105765404429344310665531595749306246360756059036666853513111019386845635574974121669896002568660802346019752287071983880661374768500727522832319032556929066941401385227947536394480175560781237245902665665962667008174695629893163753691020165483295816039333563483922837980840601367373402198995072966555024912007975133927273014965227286569427323514921648258149605737872450682446075670146801885880798034700464791511164994207583527936502870758801475339204563181253115825836909553896359358274209278657388948179531194011119936599561780421974863023637497809463752042564972182432470991415770147368823260483862742115551083717865130500829478054607881068592892915467896588611804444184624257036971826071345819804641643865373454756635212197084997146204442650292289016910199654761108280639361355446729957196168552505679277530871527162995751450925351707411613496708469777321645272758817215578162728194310620131051854917965403622145120237428965451795371559364592176479601724704821091744773333250141191485701375608376542050330542070099651117171883236113004689104773916061463819878544710243399492799798810256658996896059249031616965591576908652852966927497145516334605590129794818886256838481667135773334663485700296931683974770335386892201896621223024843778187088159251833433601484952634275912511778140410372839755641723042832361212803519626154210335470987003017734141338752113024906451834924657975403097969325739798802237753063564523547073534817787048796768175876816431308447933144057948977986139828537289637053903261111065007152908966132877107466009852097692237332753138958001878207331044464550228793877184955206318464191325051442595554144872798961878679201419918522110615027564178608253988450033929665611996514318594105558046351759381476308411557357575865797388575961475409065340989210163540459640896322888429701201940953269609900115478414547626830973547109195788056945112334689193166993759627965246140115284983534468123513640157804661890713408017360206590548948354296782523795407224169489111867837352127498643777255067690020829387456368643084026732825318338336875068577281273351407451434493075942951501110171985241764473498538515625962526920149240040347689833691691446999511389252572002896898122393024266584174540352351322144592472877993028245878074742244868762250212012741277044070283864421554546863295409342624065663039871178066274417770267323197112036356923980778127601247703253698068411619404277462029443862435018901265542642564021758230308417365137057851095344544465643443632010942055759448136782254372924042298954883019419737531998366275114668345672169685090877559329216898243074603236879244184830716651706212280608717546957846934903456506201051376395352870984101707294501195446339747867718987958875006537446000045134632428776877348844333924957786256415337493971879168274540258587491237203203075003927954442539335429465964569589991641915883505356001413714598821862006718059335857083236023764771108691100194920942226200864819563944329247828919605188478617628960566786199539199612259432775358333596827223437006022543355942019339777368882221091904158549463345922375887237566556105589411401374290959048042595685462572318857539132117017849284844309546060042964733056380832428334185504405616590826393596430289870155926929293634515465058014025465232138826164956111240506326288559131596634895026376612657597361465357593614252652543305998985658933415521268800712251524351400887807712701702937186923508080962934580173195064217885667213049992899092844894699991408219053214344002209536573844903718137650945159094166853389544907636478507993936990645925705938491172541287333237277850675966814019859891111003706590141569977488398370609031365451794187252104569956227704993685605990574117421277384807364509908916660285245990119056992465756902282327206855661147911518637618915809939556438469891912444269418787652182366508893569620335276437903191901492508985641014911796595891028862324407561539013289463925975975006059720993787866159961267899394212395217421055434535671162118228724682781571700157294181735374105838935877537244535072680000895468422360027646884480870135263578694581612648455662423013582292809945885909984705676511306267871237420049706481683958693374212878160987434919483235175700620627368207235740724128574427592128850876717379474573345552135140175052510706687243105027864005106971387319481103221831137472581655085971581321484603012891034993209220966382106859285782974553029212231783391432772715684029522725334740814471462066274717146931241860386714674224808745512733369296414648806368469982876598459397869307013804580461666541558076359767733978381587129032456710808584464981717297125614744015754603584578454621108997201000619487938764315772197233117151466176486981471717583147865626751422161257458258658098176280290001824268106773654010126303658771413192149308358745009012540893423062818120646984673318137435405306442727025277810847892388632173758091023995758108142035738686630801483686159550269139817137281698982499450763098478987788448148664824868430713849306955449497096485004325121571116470097507233621244987324925188081666869667603699512354166500383501436717210024967545290045900132492466672722412555143284018934244791104155500747748431484080983660782199753405721041759606370126286940184586862017636862379881971286289960824714779014043228165741912284454517802318783011414780264265621334833633709156940510437775616976127280535669663405612577507808730130407042481781883686625475785706551038747414126972463374303121303369781925720686509393797836427738622871446292493706360434282832846534267187219806490116346704127337534378029333627225566640745828341010761802961162960239643182175402369288936515597304716176167635874031384479693457198795299786653472458731827626379320289324014619343732109324150708594135737378381726766697551110792451240099261458790376734033559452826429239575736216326382057864079304876006041041482232566891522339093548726266885183964133127791002775476204857312926380853972294104839266667048615550390068014198587324270819409727213919619471913770302431342906818332086932744986566792547573684080584338640601118267434721500927314403431230864508385324020646390265799535196611742582278526725784960959875119363502621030105480305032524179128044489309951388993101857583416648234013262931404642973279268918035498206412758453045215431961248581074130736953609530527140452288032971287496606944719610217189520295719756726555728335038214386226137645066008524482135915327329397217348100766782828367412589267987366226199285727262066234255817603511415664349138589210121838417554627934083551313607598686488254346644969287538558151843374453181431816753748485546081928914880167781175905426607950490599304106096718439528097552435068859981421676658033373216411482258079470224186205163272929622709182285922418079045557863983381109690391120777418161482909361995497303084862700742138469616382672492946734318475944236911165134379386266046037230016371242246358556720170385724593450749903267655787547371614055109829663346081664915638464342501596211907882279800639197293871768647208475486996249785965101063862365854974547160305904903690774584248299579740209813141281118081297531492764134376950385074402613237955973651294377692796046598028973988426033637655611797327695484679600888722876797430475699160593563824981807502781391980788850120582937073043412460736091779849305104373059444595412992766112681049232403755415840155140224118021094991094925556161089329613677014626154895939992386558881035651786862545051025503697141594158309130533459930847874310620362605320636687865781990378627211972151056287396223086161046548539812832448520788200470447437831439756419234741529452241863818807510435496330510890359556062110751713380863120550842579494743131175985333490682727573628005029135202751395937986467092954876986130878043394160251307390484000919599256369965251009768221539147056693366118981848374536139602990863946564715369280762219978932973620506828696284418814625750792673195641596322008422456801114485147680713424314615485561919556385189622886993794537033263667559272078457924110268556768338453739504312481778728602752967601103725495106247616611273590457624274466881381745915416678720216526151202134886912661197222326753086534632688246699098882699182465292853520108196812528399997411486120740095111881548840729661061277858241080969798321997420094032911878175800261499857111894070757821218218170406145706692202755470016570904879564214873436670149991408788246561531383311019429049017399400723231439919009764246944181302755107946487628309738169259052973836333611985301377840296270547420310618985226634394138749635199183792375476846428595573565837201514763955258471404064312197195444676091679071412156291000624540314413873505143808387049199181725878285463820336072034739185934498319406847127065434769400873889325610389907540591169435481697592097365259014342596019294575915646271350574714054391105601985846644123819094120992746165859087917905812695723302815480466641820075974272119226224920602522597035412615348202407692772121297472945162708409016503677996959252883832479050001841755335082357438431388863775887071709410531296153124636879049523814278012322133603328939001621711721196685346711649360289023258595012497660777706025602786540604770887972379540969197714286548062034031051824899473046336077887774647282227724949999675740046353311599760822090056537007286211673982120200278014794304629004716091868275342269040478922785158687576681507103600005758218008647290611433680704261014032191317433659079590321175933436715704811533829204307513944891958407266050739286339297215397463903408990230841730739280148415974158078672697355376509755462447283809803862010995738174488621225244793191320252891061678542714313608861404468933630455846447580148220959103689721750926009748149926923240900659348118330913511261367458216379562315616002500436243424542325899797417554916415461226090087989492914721802800702322172519902536344787617436018529110884133664438455055031956462269330561094840809000248072405894032334803248516203098407118001411012804963241905533041660139476865346920476353869124142616847834993151039623157790749179380800650004530547441621549229329328442659886756272698528572590911572169636563262865867621526056338674821728063487783557072823329205622502547936870637959091512968421554502333566712690850707415700388701560237638208208901972281245051522729520825737466242960449456553334768429546350496153643943905841770484805140386658025674649361531364978742425990296395361403523396472197958388851565687539562857523621931616813744700893055486316920499411100719159388570970138942343068857130826225432103636474051141061093131552458281963266102713294310055631489349991007564740167516649129207597992537038787285361591417724487028677889276166610713443411205287221678333213490366795642422757902684634836786554792438903014123009915039554021705715362869681349872425408520801847384882218101116012900422511980582263185153019860467718852306855078568936413544463989533300849329565422189322398503928680007401854625931934965628962090703974067831395191517018826366493183236314236898731649426129390808681550431759465409880538553767550450368884489767384892043355195702213827973071987278974954342926566377395983191136993417901149244225431762632577544219310779720610557406554752986410691183001998852632815413789530955747462978726756577742751923803888154943260812278179212453742561349142304522814004952037804432133218884748254818104708374186712335626001740831772083978337608443981388095446000931460532136372580544213746891595928633155080191824184305002511794949451714790145428580626021700326724995867636935658737056341382476034939648640925818167380032754161182369059490750039434586746299307232984757352696674626490629930430062662598164730451002503386579962613518944750311060544905066651178581003626329668297163395180724394027631336014866651089367062460774757463771322437528959711088877009552720928026165818879803164827981215221458789784267435719479584663068076930197932545767596933123117121205278076821439960122361956258426253652369131362361882474042558711713108524925823516465093891265076151654905428062406941665671726849548766008314082106985107413834359860420847152411547401093246253326727768360812059633800114480696424780838664164341577129523612972602058636870229297308892907160325916779849343277384949634503703967297398167809128966380659687194172959024228591250270584857167128614258468444450969973655376178634803427679126257204846602563530577834383519720950670870656543669085120366121747732088732314947539377899472367816607553043000854404714273790547182492945457758152891902848875082312518955233379134434440030278624796635995079234044623570062565959195900748538519355297149325719416160815184885422242210177997574866970816839124246818803646857190739490506109654541456901265358631768339800212484565743053572591570614734603229303095716659538326802899683258496830666918216874099142752526280470056398748987454219369266883678917623419229788481768721331776726514108525441920547620576040390178441003006394480356303040080889158501387923207751325740652469120616431258666619287424071513690942818945843214336108993431798867566177540792532758754794931028306752458900959986741186875635872004833425558967447380198798688334508369843166253224593205424645294957817914998253095169937165710870628327213820037485439115838208823610299920851080683667840182121338524838714753634407534932592559107622022686551030140050645103419676470587706857129162501679623619361442187121630276016023148350777746743921298415418617758717061803645884442536005562482106698662207782509680705176445761119852545676468189251137133259984831241124835268775882580829231141404729836223457006555390340693532180561153122912421516807536205378140918916693035541762718815746868348396571874052347628966555469343469785891967489807827060186110472646934863847323098403611024144467226794606078550652312350266939422341462696912356616650673962831973600415816956336976501729039540011462513573306106465715280389096014497202498653408124746753574874568473690548961310596306489375908293487265008521768953712022740086296359753794955314781660864309675479770363065575040263558514536890374956922323926591055418609732212271486930081963731127487761423710633468645141704661868709856170862257045875399327824218757239998659611407877502900517792211529124106584664581567560679808309555350108673157780610160467139680547551120744044895279087379186692651933603589555581225881745706445966852847334912816677226616372030420713852019179174079568705235287988879168001502315440243338984740178086585190236496298659522397313354695689363452528718873351088366515122521066558999056790767674610275629011707163641053871563755007914388370752136509644011601335591471510994565152567918785245894254348549527103642397707564708576356507335823787956833543917251552280117207665009564576313325349736528129366129809852319440546304475915126974873175043262562366864282978672035619871468802301567079425326814952889922838899087306352158707830077786931327871437900699763709376598772397219843091881545894012601902445636810494795588716942757580737251037695521070556637530060977752040789177931394477052422589500869694486755139797251623902276572852584074359381022344515290570512704777887630772789265946214778843948529281303050250446168694608757569572419465412885208162281253673661593205814175041984621462565598289611305680446318321447688482828808914709995965467106288756498500038027256124781868990909727122811685359241573374237591241285541337737840916320560201544701159306471799727870374605758178111908941076515002247663048512058016737725982816004005617184501377411645898513618212901301671223899977194008300407765524802867484739353938375402913406752423027789987086951763252672414100648870846120710391256263767575242936363550627654369790847135349421201638856133864948908780648348225665780268726741749611134596452903599398778124779814668393515279440586606148895145077893146264295955838866283517763294050651187890772669823801300760127054043982811357472821976872169963834528479262547015894951334970304425324522872978865575231083872465541435478878672700115767166772771632212321032787530621849695961321995565560397579170292628596597508910837898232405309516074262258919404398904644914587785691211189048497858580781864305894129506652926377360585408067058716173917553995907193781149597879362610267869188368910271766185270462277070379477788598688243650944180661510088620769581709550998815601340377135935595215448695552438373635220553027717869146567489446172466173459420503531530756745694888524696536639980705704921731181223036175798902488539559976671853367343409737385738905397423753245120590732861598800459906219628397596358052088847284222708385566128310459516303949273630534334372590764464978721234852355695025897499155008994764845101827025067891608866937102574418089274752291493521815543006469532649284341359126020719720948634712075174721543287965811174147137857897435108416785181051591357170175306298162334030430139090508286934369514326627175447098394551990560502594183545269372565234542042828351722139102525056160692266872137077309304830912013523058089743806643253950229665691729362105373919811724372659667181939534151499219853862098431694734126097934234664166761821142033355729784418387048334926461963417598634341692770789036469613936193500539240136432938800796991066710256782317162308288036618757463301545097822153941807444444425939246211684089486150266498309263639537721112408474208333710065840830722547179440863736314842723678679914925029939090743673734397656526194911437705997734340329874231392966400853241653770759478898309887740744967907541571088853642639711525958134661361293001650224185202139490612491765532886797937964617731724529885719599769027115051431953201083093544721946405050684247033549571761681391807760522653157427885238354040771997417411751143132821183715650587589300642027954138866951179221798002531845279706311229957215023936514463310153818972408326236311733218396402861689413889590509333812053959418310363279881578274467651432502541713912974280407352708508210237332433739201618412380561625441343962623562605147941277744226988159157070127957657764066873315656705952867315460635221234484690679998332801079703774399682263430520371089844329207737093504514329775647105749823057752931557682877662571175422125397229597805883289641796770104937014778732931930769825274374801309106270463677837232778627655918175883457736695627414741893060138478705418758814412510576150562654773519728781757242202573645419770496933338007484835774535433772148391801280740734692374931774324902918679456588411730435240385934228212197470919361609837959902864360775732894981237253916956104887471175060703010162808668307496429987272416870219373720642086092972552304661788439828914442742967399932630850467946883200171763262706673935622609178936159713562495192348339307045390120920923695405532549020206023553764282927207639488172273803124619219104482549485771983740538037241874914106292655929938649499686924282286717636559428273817257751264319728449526575503982120119496413666269032076364351540847979482732906757952446841790759862688399133838687474905067089876495940323909456372721660432243364889111218453572414872910551629502741786533721499167031459846899857851332376174811022143082379247958802165905765133715385630316322559940483443837176871066345488987122258128225656003369291823134341627411978742970088423306455418289220371269526478558441945963636737058833237670862614068120758719792661638368796991925734285001285614803429450739918912841628601344353802241705007293289395408750404079998846628060988464159218458627670072243584242188815062278005269301899117021203087847153851089519330114847447658026051180119382796278492730482409551136903313656270795837762807121200922958063244957846534139091381758133371816962735628639241558521729870588999825451876679723815695725359941950105162602989102995712726000026590094059773541166319672728750089315078301365891187217560091881223605497442601646456186322006998673051536309850341864191278867364862383356735278476767752854742645753535987676679863347192141888588349865415999445943210818293639935133218640327993397256724486907426639683106523234591603333483504144384339580695617959839026795414273622169203598429137331411614149441865663763341011085025974026696175506820060656124895120629987029263939896363213016098731917366702646726008572679084562826551708976288532322091833345685706562746568946247837793506143542030192873361672832364315116586531841619480918778111956667302200306742549384188517248865567298299661577074116569286803520352188330111790121299036003752520848983101628826106101468754466144725354461058678663713746081645779597313332285474809028084657849866469614002368271085642752363581858719376560992720961098728014816467593256361722878955217729859129260662941500862077622858496136484503713639272970556267386532499516863065579675803281393788865828107326813938093347888803317066648647710189013565508195409222419860241333575220314566535227951166425966486342465339970545924056974208057780666801736822090308200399090617147148864639786285007519305619742291182750640025975000135526940692734852946771068782333713496704220590365380107821449822612495403453350474199824989424014164223660045094363123287422590892980499671285567320351225133849933874331853601156691589707583214191471173169800609945577244791228184347631029773288870574616928822208064414347018223868794769439209542244571367347049145359610019032707794121686013997901423527022482435572892215043798190325510169748136052827445717349280371316378241892119852796440211910820238547847767945192581889266126399462123711283393845493661291224703298229697615216430943841607518848776006466471002388778188521601940135392619600829501181353573460569875517000652336797450374736158934261784148089546453040736932282431324549389255490144596410142216039774763534909510155858930922216177609645650795818304099724655974173379052668337542699674594044126829334305130708291384557888350898831496585470813865757113013881884905292945457838438581594966050485740880664144889692874827296640775684276505233384092205127570749325217168606749078585793248021391072800451811849192877395150890793869812581585799032752190681936263020147941640780491304784163576122379787826948559791492898443103070977933367468734273260324494719218073227094109943758065831726644737495910417039836007952087523958964127474001914036704120647057661221666723712552566802416302997987005207160492630581923609059133181892312515819110310707718804793967016407423620029259000091762843189343687633174038780417794222776983983680321925235914438041666923646325212419997389565811860836138760713695346216152602027920244950321591670766146994788875335283369269853261507972209980609712952864260824393484249592276474769004478329404752701959358297043466758648377953528256847923499325077947112336697609004563487549894334615077714873864590907736953909544404212666418871079338486307341026589251392832397995124645085080274732930492840837911492623417995316270536883979741691641505891755120988062991285233468781315589417762713666854061632255524790172004097196450507558628813215053154872933313304554224438131156223319802899876926407392351877209292809268269571276034183603133367447614819235759258698693134766709691676383295916939427353696847971768115029337683901827517080799308302271890536517016101391026124331573300191628240300472674870806213414655272937106388121529839600158041038279018862160273963652895329684132029540320619137819604789666921633265145990360495442731483940729973245380944376184948131720127281682986621614885190746194862419366560813881965379250805491778983979196548644282597930190607385236111439457385614655704196588090739805965196043195192129248886392323085355637729051202032396107701364499798341216194543340614110976744464989224936635493989357087353513336631601896295666651840255343030665256486397204285004592605407915135545015601601607717425533187207612690889851637061161954722864374286401506064113288305566714997880324820579492004576807516625577186479467040994345224475268156366864471093364801512617709623935556442400481676743693921717228139838619204137051857890060075698715380543756305970189184388132802684529656350301103397712259102897565833375077266974557760968774923293931708694812327866135021057129927537130273925496037470840305635091659864340989777449688800929226444600443801064581657577809256094390564887583591936868439945213460043294629230893661158929095086036034673900342556362540099785961867791150205183463329187107725599810544297194179173594371205435190312053048947416827426335884878983175596186816289308280443531467018709441855040526607900442110215877438074287690442299845268888144331644668973548581732831280367107407890455883841637849301104719984538585780001503119887644893793483643949516482066750133696303331686676217902836402385741399743104674827386390711654147171694912575789607959443351028060114740070185578554967932519503487457132118377861574410238355460678090789234741268492749464370463170431458234855445635072844829276138850557815634615572112736273823226186659073235505900299022571328818684992950493152492924460872490902117891438509348243264056598850932443576704769461591657126973933765639413187622898874909100831074271502966768823832167368934074212441024626691048964725989715728494835358234990544122370027713818306178026898154204615382511881220766159934172290128594239362092957618613725398296029755135686849589355242037654202529258166569837867819482799355164983187620838826435937960622378863839031812613767800618725971936737795605712564562721414015826114229369038901056106992597232538863326222948992538047189397223447101732269356333649699723456790605005047323214581568299913324130564608419149117285844495937782574575673902824750757310888404161343751418948673136556156397047017119669853755759838103093338229139528975625302520834523483284313760217929800321894455632918411290718519960124611710440213413306460209061861134019668756280793511156855476945891964376821828555186851417810991841572084268509740573448811836060115857505870602221585490324357792187298049750151860294586811805451746524167795150730440881922686372956282734666042610469855186797378634219075645651363361110970946263918965521148660823807455731978152557523602110768916867914442949108680587689398069121999358685326242000670269620442204164604045445676418682065012713875584288552200690029659725722628985664795879806748738672124173802109399051292326465283832440864757393941466893112341731251320016822130575965715561866808387694502449586663164481638898483484762878720807127057176521308162769655578795038267309996622904362968296991210958706353520482333557811340128878136377686896235719730148618970645488642099573030344620018758332444756263543936351684287121394353819958520748555310581100917048278803071930318281549700552023623579516928516530353384930355142181304728310209748434119135631468225137565208858085787569065123473998468967364090157653603267074408426797875738639841820477223509282337080886813457736944260544963079459039744549454182148774378498824788023290923126077867450783702088965398366564612260556294690017685419595251267154377948724916377879936062380302865130252120027141577340928729941888526130969295604848360243655142713000960605698905274274969959138677449501687135963944135185964205628166405936753927172395133651404450567954946500395620829153571053157291380238760754289083717556560023681109673229976004800429939900966686561958962627687622785413618245406682551787155809625477397557501737448059252414873331285313043852270541952345648824045016686048709083801973655468709783423014743271066357126214365940126562721118708060571466317026326159242349206794718182610792506863955688121565396786838062802773354614311359284557303790528107004838573972942979762628842543953922694213673743917688123430544313746197408585387958723035270670045118548222289654297720151216747521919801913168416041891143017233502609928964739602503264733519448523308644168973941203252938364378767993173645718076233027341916214093587262167590879222818214149647677433867192972177875548715033523616738706124951299027715800250306176956071101475078272903443519070525553011588838149467793044547857397453315024802487233491191187032447868930184605681117162812775333207221897123820780445481184370833408780534487593309449916443969697751593034129034739568923080121693389496224779167888901298505806723854133632049339606726868550814918958873208840518813368522050075086689713634316287857713527847335256501932781230364872968365139118020229117381970819659254708962913860785616577349125056875674910086590357014295090096025393595664031561266405955543136233894726864423162305688114238898757831590655712601022582896275037767397609384137498524880555195235189736592782199186907588952133489097624191245995653218449583694807625990284177750139978189456587663056248685556969458098885553212907600028925233417679715645482590514412909541819237183513229674202903927029050217693789838513745677742223535084077298992018686512699659646889672125022032588559001598488956417139205706229790667294487975711496053171391801719590714784081126562151234952695332777604471083684365196439661460409827603242618875982697126026343257059179175535955841577881414893478844663935555851569838833141248326970799430300501007534500479721864437571886169532428741356014768911379173789137621312430960347215034580988325193314226249025284425221043931681669776406325905512619587875724673645439620525642141734858900536375385571939007855271239905636986297492768022348719320123215009220630250145891376695675376418162925381463262223373114857493347870377351332586724642910890572985205368391201526039641802405798084667952199915137201519559533365935034016140533311191146950698062083426929790106675555177802036734015920148645181447923852484741009266181438727451253029317278869972866601074318272830323353168043709133703558868844664707082017723312692646499352412079172626369604188233330960010245642878303651773581991739506866405342485760166244341153359360169466815493136195510464546430531677599287572962632326869834716191972702141749307308506892250100594547865970268139213448230544345175630039916001873544575683290483332946485753539484767005982499037120613130973719916967061820135062464275657654175899218226238518679761503949113481661424619858214292019715981341176643878131364506331034170525060660350381251930626260662402687054450971159984156889997872401849606733479952156468935838359931794120366610297645338552277995580010624087798800367526055393194243559740775217532310123873846846035149585970006672432824696127119595725036848351496168760830952070189760746705105985022119407636055786552372552960077691698460431188663323767227117820928785227769811464192546968472549683769233670836328732134646830559017465957184942501047330886723333305884437108185857550513898325363300299625318164369018821187780238767085257955225543260514790529579392890924634588301292329127325140926219430753161890831047095952658249636498362544137237954433825336886866590827991081616727042343524302079743186063552051405800234850776001032383841345281535500199424299424260321534472253237235620614961522019184747033437178310990987479469240597522225665561750732778309675164231468734539060305534820820620817396094472567764252310155793441383329110256736025614754965814961109036991756458843218107423710869658235256534861156641475560931878286607672222093728903388814931475061173679647796927069897618273720762724365269410458958550056263750048427709998008079597888797090001383248134750681683728989346453035451919887557481274773928476445271905821269424737754175887055165447835946322110364312596893140037219094577245573121057627749031036051712979076542271211913909680271246054258324348575987320783718130220197136245868572599916358443015439128571891181423113310843574468436674442879192299608806053479861282248186015855167908947047280435017828680711029465007235746190303901142580711853001407635707074337841884919304084250627913099634624383826505023066819103692512171303963483218025529860119642949569784875946813151142126304762878946304072050859883021019122733920987457107593377505968035301582916350906382148371775366676402222991228085303708306323557199100340624951320586770230256110436696750546716421067710893057500667431464504439266549460878829760437549189759566732935767511405482477617861692945350955779075354806845554794952469115413769236796693176024767306625468125567051215194810576948537472663518366338308483573188673534160927245355141641960155636891710279280658210232913091473213438396867720851920116732115552241931681673740501477508309047852920988401689935392903351861524331631745126865466087824803222604169334725833781029703301851726058190248180141613579520288572603142341896085951339486128575210761187006805932318564876229362295387066546034486519522372127109793377031838039949011445014880379214068480930091449747394263019834498384214611946287186453723200235459799139774037525122789281282801165956278421477861038350775736834458878415634463139685239995614147902869254394167140066381566230244481844150327491332622578093477084682729725746307421321636180901958916077529382824272593093746137036328750071485656065281050423989268431210981807209013310731580577971047318506161005325878710937277462274590644435861208295318726587586207000257975405728695823471557398314669755807777330802173435129354644229336538748646150228352559720638881424195109732055468340797410223368739058697401569183274043816167525395641421771209560510855947037100127634488052212395220319991618928340574720624527589634821106904176989861371658730746349883374015257139569134162098131283834859087972256497353546665114499952455439611111313476944628323554352928508300992742709424934182280265807583008317760334053179822250648889821198423224265917953250711801940526621685009803025904374379523047669300945425716681775929399592467870285437851205270592785776639271053131379401247562496686700398418501383047322844824868364047818356532281412453688623661061841708007698507230746376577371938867310283667422020588013773038714323099710184991785293054252175214800764323083728991442525815657588504509144219635222026540168324662157766222700131243435500619421357872206478908948092494404885779331764379379439252198573089815185804175322118856397195260807851297882892676845184675928694936771842055478154396672042390091568383376665528422398000171731345144108301397342507546276980904004952072845138825358449624839425787856740279857651344424288284952897669523807219639249064286154746484137219090568578851567621135621605260997006324202506764008451031299723675412402099970759621035201289615473024735822650713238868429092315105999883991373693267868408147826967062910362861110187940740379833132250039911938497632652672971369045041363282198354487838891873616746393317742919502207466663124832584010947677576970647454044512089736009830372816347807397141219278105749592556922642634308816048614705672687914301916250237776491803956226900278025026633809973455866881829435238468049812580936239764172395370345503894940638219856790025866756465534883628033409831038609087749752754353707274880030186867054517184298272489563063776555014234366758409236311816533608816467524082535412965103080678367410062319580654009657312832031761003016288581957914478238800029849680945333780064918134692095666925738694027800953856882273301133254689650290269167953638132761893022538751685455921909225613636943837651800918227916350308914021591268938220798998873198144659531193564488055102853149294013219898055914280690057178229790482743772539963994701613997692883393493279945750007095697630464414016177757963693704987393586800941628575011353937723977244726149750711697123559467958941536956358485496922170478095424539596462419650442431021557447048323256833969233827565038810637612940269563585613493167985127906310225915881435074942037096122749485667319179893053378685106891638254398011628368597916519229041753022250177769103931532646039159851718177073014208889928285991136084135821648710964149722864731916481810603851225000523424216044659663014907593224774745828138342644499067159399100944496133745215041151058154650659187052303640565864184900853943445219041285026102456874555175192511174912909252053599232478293174069649491161591365794550854113786358870842444369084683333878048011069598713365881839339301427866340705351612433115914970206698899732708837223192573185329800550414517244355173845080257677815333773912165656867108681124822939305362339990696795133446963511456152066857583103228528871850176652376680017815128106809186926157483633327807196466808015519829801231593798105053330090484178441586750920098571878775195474744509766558654503124046013802018385187584054461186446741502680462927188328550067363525737653812206933720532532398741010315030452079934777289709612641445978950867876432018995202111108701913286414428556607918034282128616481489587536709545126463461503509079356633556428289244389207148687008904234155054864601170837728921402157142254690883624938355795771416091250468212320087356342178240180683057598058633865143460790660403380160469010212593239460162727622069290329206874450433239505317035968203463145841225597564036694375926782120279911147507585326745929419193925714540476552518121925618091230038187969837533227875804419107399462209269414669014381922241556431050459531144082478235932100619328639151773794624716023826529812227511925149746848742301849668377593227692693284317753930001452567125259096566749651557012485467943314588153205686761087100151837738994327356651299615323585100974653222838269195183284247080306671119028709201426888932182292072768172504592141624623180538163691091472662228899661248680675718780072100764015912260729280415289084674810203155022355384455511173202555981631468588919308984633630098929564667999968246362825385348903420384744099032003889289284813316141401867770636988279508049696197913860083869180175969675093042537623235268671578107521115169947449357823537991695887184939515492308051754593163281655417316123685091871356752901715463354074285633785723832065924311822486090703332561848201893593659985918343954706410379940362524880070207973839902726854022129494328244424381421295641876326294515292030209938790312963881549528583625289555659674654886235602957014093786148638631109578737881188227405391806265443820333920495440708494874224834688018558575161053108493348961981493957652728337652504125150718460838456368671179623006452565276605434030566087347805364141955842382710877687256971873493228598184784915711696937768064095214062914997466279517684193103456388890585689763916039321262296711494458299333736270772044439281923553579688248215744297701099755065515721710716270881601174186900020699359843351734071000409610459645878098110754673537604172889725916640931537049400381024088650784759245486073110733926713854705243906611747012139258648379673303994238730757829522545672464902370318488643858724353777749858646143777198840084946576671070400523523931203614396175467481699821537832236578492379082440979197915355165502699652175436420886479427986048758707849078621328215939839385526938422608852169396303899995372893163514688933152016262611866664788034252137629352300904604375217861075186828337658955981718191085057224583527054508100844420220954885408256864489445270420717720273280156235247127768754987475516485383073622739428680811417946781069890434895575105075253279630738183082028981500309173127688751705740275726922195843990747939953114482660382924505157155007400309768447056539905388506172485519933996968764015151543147677940486310124373645807450809728638620473570275033919621908789093209230399509094499611507900458240197908148749142541591991033459814807441971848388418255448110596701298548066096237120094356423709070193534569819259332795465478039717708729493496550993353462090229455579750212660022155057919374995263412437368561111841230035574727809101499216104110874862074213929299681131767216023292451500495012336356753165549135173676793978365431629120047298531105232103267550628055946020957229477455106630955375283645325594667166631887438200229869496871900440681432492785240951251752889169367321410703691056756588174703911075546884445643719540190419725780228723291725067418626702028829291909671691450198722631646722166045701884158656029693586620345456724006060769715012818198106944896837158845434764393501064266374486904952491811470097328939803560506929363669653633117102785326123991932945283486010407590558714571511289765978778935974295019838821062678180739692152931747568256614991650896390898582773749316062356886187983212589393924211613364123077330293716687507694880842392274754777785499961160029950300602962678865704936190965243495519007823744521873172058724441828060882731892010504584533653076345173063899245951928990813010538399076492284471748099869756851425957649094959411720032654517784909709356736834075697587523677032236059583951821070807257790546415722769010837359222645375321059272238303284307687480147837078005695835834079001427514141487671729936217186802822229997618087728280565734350799434842809298334633928574367706418272858193927150545211036285715296421381745522824510049518425624740213680458431905691105538955833168128943942521504252429911333627087157753763414202407684712802826142999336905922067290480901944096781393283305548334185232587645728836767855407958396853652715611201005281758431986048493932238954803779973353051810322335368402370501175604633352159352667224540878214344238930851934757346036228193568346245306276082444670084758978605865540323836562604402148913004423886630877033355726274319727480260491379298102704543919401812614724197381808363633064317760310586397429558723885668574924300718009217462373684076006783096940641800572107066947439755609934984394133552264699817398503193779089800651456763453115430841336754896558540747960132195003148228013923033213962294467358632768577935072930408286096430742474197044152160043201379300399603927144210863234197925300944302080307904645719836606322580455486874683831826910324131390763948483935156330108834043426358809702252191537952201492439608258888137782812293844897223498811602817352214224491348363166675766010346414632934926030065243410091811615243047924908039041426377816930486322175241548604850084962905043945084068637289186271715043568154431079989326048872175119994248703871196695215869591559443469642116067545442360112131750945332499553915981952248342591562124772023456464987039154332097379282033264609929111977454205992297077407051848852986090106803243713053860390930792438604562160601956331828583736994296067021781094725671886017214370994594870314807892322925140124170117243242625931071135889399382980082720037874232265836082503346769617335604093303044952630483125665468763128777971744387157627366113783253176997554599427392317614469002983499885776914252276871755490831252519811325158693864298790351184727192664728053089612541937201931729696633738837498921102501956071791819625869967950125563451928169422737415666450839441278167326684943888787404097949685681229136513739255863560959884960479831500865882540710934141508604613845321212350036198674418561840991856527002663114560960426413327001390313813249567569237476049704083986482054732470875743706004567547592148415352676073074008583057277761002743782287577388634551933159301884903547081997714137755773783280954010211705954333113731133571497715249711386628167589504494038992337006253006535982578500790383231308228945037022610279089021181319372701578618552976472454460754185087577237224676681082023516753761129303239092082847777699416522450056185978375624264464881036845536059291248751062439877625515189738712707887557805618742908229877045924810482920007494569545250026267546607435616499414618520184377234894028783907664924445043922072186778916353396849322286536230277661525302601414423726152201262541858526857098637197016103948058142145505918811045675039080752352880719478413028644393676598468434235670593335983305801315546859183826578259128531156313748125828396502634630466399739922154332546309665940432526925999574729394177585380639702219546095003666137672017054698448935743704722123394845846490945919560519063493970460009160909711845212765625469801138634589646157344866537223973346665409165903221306546475934595873628563510237667476166167803963974754021040742965248998611699490144764026169129241260074329814513686103397248608477606719108229699245171489664320583660089807229856603431719752048112698232156238517599053818068670097242220966065283903038797410298232706096545463106748397460142243300965205145067651534948347727617428695435377900278645994991604151009057988114670100878099384170625870048811781212932547807654690437396773584016974346544295281664074787996949648070157931158015878319732049930826338216521128246768707088303325122985675446557154532800817863276019903009363748862162092164500366024424719883671633298283567675869800576621370775739743856623035831384439220555312595652449599924801261729228208288750863507483449938561807748123591629579945477801437259668687925844920178676599294831262008589398459466242395224536271545860781898392844802708241273016793220031016421695974935989031469398785142184476514499277009306540611848060585182884640703252567988167491853529213235824207409479936291324844109008138055713173982305104730001603589751500898673784138509376018953188503397116966936804252673299887016891274364814104810972783225058854000495189782561257824166453950586251155176785895591686507129789699888121398512858273133799269189200283603451713130195348588414705159993625925257965243031248698297992694759785793115072130647007797482631132247901275854845204561248813648336923361778009017151565863137427821868910352540864228477409483700514984914214291819121968773285836524578223163021123191398073938762989048266035473430388770637610319901899534761685171326482405849801489740419633885186510900235990779277873902178692992444817505910302422681980555256543655494405684502173568566183995485175698461006541657683316387235705467606330826165289741851051447052324354002039080875444361930087590693747796940362677317347061247657082964984598089473367030132936638502671825826446463449978918377900143344413703080251580105075013300809436551253454351780726093282095619881158634048095001765727991506076914441006758355751359361703544512602773659806481650222312285615705888136436823632799524915307369175904226434666195765994737797136928403129740949463800739142496706325979284039861862545740865606626543530263917742224360167144425208712497646823518192967450167770595169555374542736063550398992506645463648766257697866877579534644445008089008674193416411626423516701625998860314646972497615399797242430029201335684327508892893405449002948286213920986685773085138366622608615674271143312933904150160392686235167153718558543583162513899519670429407803490751541654149429858570922572690307046455666109705670835804841443531265619639673237280832748478566622691125501225082903675407399408342567984662269616599044603372817784844626353924111211714763655320292264940771098997096999211059691516610721015325427924498779278638066254715253507677328095927809777185014425356787255632103704198625508976176913639644847848146510098299697807418002190155562628967193029339892455733400798692796887364651342479282113756775786988527391560648132390207587547586059866809769628621330163379530540804301194792213269013139735928654985662193581428012542838436157698048645600428459119784683771899695086072519233413241555605274343960593085255532740826681341906835970824677618628209180491949980482558724369800671342307730214753959187959534083092548047243210148932332753508688209882008910179601645598342590970161071070006191937172368402794780622962789972057824567345296655060015490317820607215111968463665469960224776418966894318361195900174755124522441448068184780829365280004002833009565226206794178817557812504767181836383313602740138211067518524987511458840260392141700658140695732357013567623723575098545170658164989069379015544427625057460606205973775751130069308133712607253931933582033445060062577606264371669936427970992334515035524557020401331731043818342046176573978522894727985172436863098077630526972341309741728594361005540168727678924309729909595335102470236503981220557900676770132975238426443109236562576481397804671169319039359479498016374667700974154525246960517427541987931493639083172603048774997919730726517195142181872049571700015542935385035511090745117141844467691067826036466935676584500075536160776183610624384744052088991405727899429906877880135797183186140287132292549129034174723892118766106378304693535752352479087264472827607117338633775165322067512440122205470614648765648965827560926115713074757015376670762066526480974188493599313958325511455049607628917550598604953907129355476742462646138710307118342814170377593280292652509741889726728474007474889801740683792737952326006950091476698297821104919921452448320919587425839414236986317316450384662210990513267322994011181029715081211397913610504389798368268352703871902853413069331560228852763682962741544944445571717843647448825100583784315486654942934535923189664256997663796317887087625983448070304129969073359325142999947137079873255777538088157763100118640896339198883707205925367882219076707326727752996116442226580065158463872455562377147372487383119122400865986851542336133178898105728873368862817555766028034436680903414856565415259760916261289185117169774616266178172537544254790422207373834611406143194394422250074953533195737868784506597521281243061082092510978371675104466410359364784554490670594434365176449948784980612750193611749435839591069076260089134873145016248154390988989808466677465240798865883459639279662369728356725884402928442901625929379937240948666054598209586658918836580890180332515298700162988442109101876625994454460003021641079609513425479172029225846158026049022954069534880012215335983569929399619327994028393349322981783715556678746022220570155916139607832895721031672996623460795629852155924437021744533460299298198094600317420220707120093465566242765919917282783420673648192639126143153172771500335321400211322206362729913191412959788241360672725847406197782472169748263554535095315444536201278723518824271801077623835205720933627168666801953534662166091162505301116966685610933175997840281101944215808336622504181187556352603790060859532607627171206708674042139535406777116148520583817111467367522550724884509944919825913444821473091611550554978464652346608211103126383619327991446759842843082381442301803285792243590912386106330560419392232445889692614189755607101980902506088393320872144144733235657561013949723647187780474086576038086027608800440443489629662372118610899096059169853968270646887839731464064347654561042974598489208232165941722631383353480069236434267849041148752157597539421346292814023493901475012146403071808448349168633073975351187260124509468159794285456625721253183666220898410276895190860222297356294290945597608886514876781500335674134645865670801700804874951935044001779176176774581664409587481705902389863159582457823939586595185700724043313604015100522201776725247042553588994575719950010865029123546599611894697785611580421431444838066743263034175219662554460969526688261647335940896211116766314877394919118634191654468114741370960268648897720708949762267069037244685376900211964949528788427414222818558071177063835971656923321827641687646444006878202954431770646936382571393191589967763966123674053919121829571248281220481566210660859225136540303035646693330394370144189932999335376465213232042523563679298858756770597157969003710757241731540959178513005918481096157941120530966955395035108914341232685031218630750819577384926342873303062986335807623110045637200438596443478185478905502011229102430157800037638757209406035677550543142742199569172412972254657313677815468773216356903675826347453822310762726165560968414388837254583867746263491207649936764444860016037659541786373391815954828340105390859424085606628189939902125341368437269578264503175913375805580243427566306450191968766440537292509217964443466540142591490386065580444133004415626841527104905056247308935285925308824119517489823830466177307019536799199853066131577484972674907694933036534519915794471349883638094934421312590754299626358647389721074042550651685175124698962151199572757196643796521834554877952221756189085721789574533665068761250861519877044945739029903745606815805925569374006179974659884056075394749554322796532141500316918839494419493358984211729327942069194251447245101340278062858230029909072808319545700330770235845657242451273521025871445528148206850109365122178854235412994274548247245945694396491333090179072248456751451259521952203240782871394477277652527694391812853708788539512262935245864230865664312920749772379205198889674144299628827592135556652759612428934221433392550324892390037055916416284075619225941009912108465353985113089632264089405083041001012952535060827173933257024186887936804743742370590301561983086932874999069758160349943741089794004174134260992053438474282315145211067169515460359079677456191935216271488443839136562965680434187024605369980217315832429125464936500620858387755448644580741521733355406988096172142110855364928934831711709547652138849904625598825391329470934816424817235852912107062273099961709104443811405606186475804633152757122335484444492034453175200127024579841987311573560068046668931175020405397289459956112217760976214205047547297762367086974119877260707519061980440652556369835021662767019886814158745561236564210795162585912391620565204578416039947075235830805597309870010608568417353504931721418591349354408469852424770400330841158833826032775373104890163828083548686849225632351044134639904415600906258052885305940480044388054170944061767398100770255021134176984934737244811721347278255571124068952841844518215245525478680396053114168502462871909765533893481369191576686376006995056714123580292605954204813362300181530458691804959985775411432650719334016195114558250624026971742841055842859363274511601722177934247644152695611380948619282668686409085522635336355754091845839802786632846744905176772396349786349184377977562097259487893003626660169550135111041004397865488382556550929084569173520820773252412880900128843914482678616151461677279063391233754257875647411172327605409788734786288438734022608697944831673355830052009474030610434874299689067548344392409057020153186602491453851559976681968238186720334314761139723686701476139607924145934563407773095962854802342208074602185255907609421415924590225342563655332420865467822903376778547531393877177493460716976120272042828264832032883611078177739979791567628501293761225500638798049031586568909979450156740135104636145542728798210803977548293916868599025240745080916633062119019005650782291697197449874125659263228385854127720017786816893869002236226218101996775293573336042581286997422222303829104009886105142779263654130220473107815920849496327969874360206795628637403216648120045594065829692479304760119723578914185809906522364132371099481242411228841381441937471662406310605934881227529783244021716656253556407565819579929931372343824611090864858242762188605859082212668445433261719473831285078300827063522002742839036932274614867902998704194725042330249301523287164168553209469320550384440202899093844026533438039526704632028391490930712880133331744662387775723705484365273524626194660322718193158321563149717247421821046734178421803975443285412763900026299803555028094096641715635148475965999702727332232486357145418189287066305088785897492572903462367289117571806681726543385847916370246803610935949563069278440848323724144279110108531419928726790159313412667808587752277436200957886921890361477975431803109405986740441419273132307561683586864498438918305230679609036831738570739678582310883432509190160054070694918799065385201385631632512884557184921259324807288612704388867402873764275919535536725228902209042492381446486608462023262507704800209794149459927885209801151953510312168040003836281976793448882928241659598151716833995581450681071579476579569295250919190040835282486497675225780366762229072364138363082034938796554383789501833926328894943330584110381192789534569744910030036887122862219337575912300861134894608828323474657956827348097038040118690768629970108085968387057527580714019583835275074906632626606098774011832329752561232925091801446462709498967568945502422591173384097654302346623731217572551858493837148422136059161682386040263438577581196527646341926792760016024671215337233203732162945502095765325176455253272874504876001139327914148105616517636117674575801961394001170784623054713650464242276913943086086764780557552566219311516564567655760847483728897862709629898412536035698616799810276598492790174111013937557256048047149474839849155719704622647587533928515930856107009586936993949072719783338403151297841306625838133347623369685759746345966806235059072172286990012479604624978493621366810570813201365772663616495210302409596474715501212796847987071620084310253847413178141858935140989912282488377895587854299989283129136078144135996307679940640503945069132616385941747309490335871167111597234815013105876278380094435834733237674103598650243855155397303992664930307959606071101600603937603660807707447001017098907748316265247810914274224325326820451019484633515973384466687057405023629313508317990041709257941879340907677442086724691012742260157289104022974664124166406446190909106281199947539585630505956210560200603187408311348936786060063671591120417093915549203286868292770401990589901177005774499902511472023160441236322514895470040678689440709177732220534934362319007724037232315263705704446059944849115001777322139329030937027154537368704630877942067555265108093213091722016627937379814780260489612787255623565145815744312650986650279888984355785764151281043662171529930955358231206098313588667904344511623396701646016033541309090633937784101256861092963945270430277824845421758028482582972201655992749416383266956042989788486914431362094271526157739944999815657790798393050859029298230172073651230875835387230179904414492230520653691920663509633560761584947620249985363359012935539650636175326367647796616666063143567484824878862472716814541791237358583870484034088339817331436012479626053477563169343846307787285460511763828796284321581889070994414868616758043199071467165852497097187672328680590500256370168470085780349570951841615103235091083168102285949409779038516056817461192293234617213446122401406511160130047676715883855611165692743000052272346623018366838325870725588865349109881863464871124457450449154152975022427534870139345924024351375654737263400438589758855145293608648677529610300565814638963592608296785346951118961311709048610253160583130983120416985240394101181773807883006289110999410733575966121333704266394359621075661077957741104212949482196186357313252960002128117792348292396324078274740450375982325693847665687600530678855849288251411891099224866726345868322278729430642842579838166132591603772657811885812178483309566704157376344180564560924863272660186373280533729034658026777052595592342527328301310869778304684963679734250096593754187339570667944723993052040222849055029203805720257246131883128439783780636940066891484117435785952720790298304404542542868036689891261240668584624717755367709585192482561775556611153871263000084407037368607861972700104014016242949238488512097820131673302813181004160078313615946406146034376819784207230022876934899550488114137641967447341858829681849150165679707649670722097642454432752163559537791220091635200024936937925754709673331008802361341446067970992963212805378127191366583271496690599207168833774478414144103837425760076066510278487102344581719778281340855395231973950401850840398062293809780108045573063672868847113174324331663898875575664311553686738149716482920678055038804628859608096028480948305810938165098084478183739999680409144338376623347908030539993055338484597248925359308621036455193996402637243010198685399162391527143731812626333498368083773463350200242893551847992882704722252272934750587096730175546516261298476542120645860930122491372057198779271373241761379883702937477025277626938260312425073267056883198651341799309864317591399952260713930210719211687501257002815165184730556868722619275119404821319316155318265904988855977147060636552633648253982298166970570712219147294812097711422712850651278706255485033866177648749172438739226760392068092802638212180632815398903081459761536278430684366483318595795777143631335117487641673960993986735296805406102842651984675037163293166963518381154081348220947980262466496665665908294068716858027844694343666147223813451999960619400919113178481983753167144342013515300281654144473885719991967260573135927788362324953761623413753366138722233397429690667265113083103782450137379758764430617639643686588310015882794972608259519987888752719605805070314211379295796998879195587414664992821323954944873209656322814940535545349179671519652088181589629661713976810062077832854176100514072085879961436306272530149588927336616071574823128657990659396717059898036916571651627362743657274681005800534042337854608576836207586501313376005654281982539325106516716627390976422216277546830865238883007035313798779691946336090776132624933614995817893182205615843669989973738408636763828858141380884498480959012878729896088908901578103797561915424342378487390338198536935634434425758704275933622902026954914197015070384145666202658448590873060379807265919990694505645973245659269500823605887099809472583012829768377142611828926151155623100213187409864850784602465124926259675381775431074568562712055112073486536352716546381871275624691951779531480670350859062689569181018596288695512393812595361489635015729751998991533329181988666939561814622292079808801837249890866700805484373438250848650746630243540721814156039492934265656078428467174194184265219728769358501561163651949008545481530391513209905763512503809572159048466125048091305465657517964981588796729006306146361699744627240844596602126350947416205132506395064136973597639220205364980682444916368898261204235851974395693648314904940919964641915469489725390492665324733583843655271387999527383397008718067318903689237981137730859783466053408351963300153319941302846611747497914269192744058843949561840029609022540470196130817751373134825405932777261509009802520692296168629374044831862106519068382231106780180969249729363943710996652068365792085238957052394254443214159838544877472608833443531649367986689527692149217245055630516645410594047855642981071092411097217225295595142402573743114608828265764877614595203138428876892510284424127673807128754128499516096893966061979800730279519719344575474243329713475881409791023388973856903917308771187596715218443663176851596938632522550186379880886033290553060841644228446957632144197354453135661542125361235894992173461118941852795450502619795386680275081929918008566212545095527287351211069632371609865252716523295543578839973349352907952696123264519252755145123931126865273947279029977401783043459103577285941141003768991295331123634346896448253633509526329671779244186889570776596277704311255433946651482557079852194716476607376926510019382208068317298423985306986982981489997966761448128222083072948337877942499758500675959715235476455446563185044643742779116499547965916112843008764338464196071043259341283310412572679100457031608215670135953292298823700651980803868161368736909073939158253676412979102314579061403793273333322765367446841573691336127706163733518389881485137503318484797368126039097365148984842103420523147645680403254180831373888933546770437780865749524022460301710396685161414322918591699016268452734166737836414195342423019047750008328980003910878731261318176381569364106100383595671767973804290841457133575289906125016227040191951249872458568200119666438553324013914253378092571812819691421708539933925242960930463009059482515051983277067032286368498533644760724821848022967031350742353021374249632039220140762208732356446070779285370553692578641234315917695851352054318678960603389280831777478142172032767147797653314432531713523145474807259880272892692992600654978481756044631141048351881669338279363758820962803463514036080521799608927146786604514859570831166200905443648294151656646347297136794365761553966154324475936221482546559179945832177553888392086958327888553342214618145690933556862698640704389294806824861927685364627589917964276033462203792731949494916552491321857112914545681238238937880206135926461026672034253694997561911314891234918409960570809079466903546496726502328439416011609087295841157571584231210016123819148668690397259067211398299980628547626848332295818077586835962623423254534551219119723479747502455408235307605855814146611350185614069113806853280703429771654916992919570748670880621993547539398269876697399011885106608597650342049444396508637571383801444089984653784416115189948254213271910105796429521623014259728544249707502151544652719662391785689679268004941549706367924217630521760410196548359889987899693097531096814920258152847593676129170768788121900233338449769218647101409973164241131509030167365309536013199100515341985499792144076977178471861440432513084207039883182517365296107785884923841076420060170106994653816776271390666185756909479709804540772466407247122398280588098504422902798898891474637914849385781457653422969802155875585000642595686373939505017158695712905661673306603150004906910621883612797546062988525646600761144074650779924023650889193757786303809714544614890262720859257055418202070996346217290652676479139116156545536409200470734272411022183756780541586265580838450073187111474020271490639558294465055466866661003435802733444678648818228720320445865357456266267237242571404641381662452772057195016422828949533764102017744869280050114723676556336081125372259522022110541584691496417481907730927243754929177054144938885346564434546407432072975572677610275604305906213459757896468954691671134666293969843972341140604660813876782711199864980410548739747559735096491825719979081472130612543707157702101063023322100603316283246372036050924822686488747139206305802332094706934182851564951052882978824029660891596489120754677730130655403221373323854857817429719692690748884734119339788987563053994319911396436476501614796995422262903655426432924996794618732307312974834205421756776990594454869671273971633974157619517284453381066706160253631843673356204562850639774341417072482597373522759291556274953219269502196815931459747650999126157032223285359450123134136346981950554453473750999141536662645533194409866661191573840780630844727915069564040882905317614939369653723240723511051411307807250910151131027302079875687099611444469550386166151243951618941410893581800733977642662212165301689256880425719640990065935186945688323780760741354837340545145300388091160647078935179684860115812773603945246569484970995777730577383434288949998906131717457320390769655948217647868288818875442534897830473729744432029992986356382533931003545814414850834228888146774954009944820625886576504517062398263445339847007328060097931540519126374547235449189852716077726340193680431831782312516222385277500557581101227871562035112066054324978076217210000299343674898883963396152054252348604740004836966860650479210640747182634443379049094811946555017981927175723339050639735331479667090140028747911414125768136693288450102827510064134369052077690031995842984763309186739859143660411004516865283145068149746056558413896104296223714093023938675821967701648823960084840925202157107803257072553943853731544779844664338544033465430354837350902969241666879854997932903393970862301029011547761123414441824417613213373916800892207788478473426147960360769615687930326617647811299564687460993117273825894973352604301510331131911600807754601063346724102178735799399802555380648460878042695029006893234024029575910224811389487505135744646760575394023450312853259016602133719523085656111940265271711760310436079777383092781141080689487993046947215141285880332151222709257778777535380103191557800731793256134894976046175308596931863481878955697261935418643419535537254240021605375082761670621754686931184947333479792269805949334639041679896876866436184128372045245090946961696162220677881658074585090593671106477601466370218076891616133584826455704570298115416519691769827936687601287325100339307163315315561098985709475533728653101728668185381304700483133154649921572313875825873241379111894476154528715873587039117377104471375642993590125151605122123125720030071860243017729192206408571760254495948640405321930248634226292911326028923572019867577997268391983905977694821139099568980872343574803676279764952717969363308089781704633087498974916141567307685058176309242606766159209952537206968957266016157552779964570854499887056827675827212350885776974565562833257515261452139575032789457380735886016102890209872120152682656800552606853193176924303255010030300286243296928900278858509627154823266759552508371170212061101530315985659622728691044785284752199141051438898369922510435813014580680475045460663154511002124524809320524261412258098483306335556297917713362051813915001141794716908079482169449108755978348244132039997423242770395831074536725086808698125199721363328142619705105377680980218051925228683464314523986841711231482010004906519720434441303393197346663776299012888824600543335190383250415770553482766610148865751392419344997949224708719353653026022825252329954610831229419810660849726816040452483186567807318138879549176429781925973067190424278505115145215383598642746448990994437199167427254781309591310392122148730024316033417246562261509237090404495233053743769651903036744009069699476651117860222431830485942700277348871593953545576043619857351651168396870612010061524248598995999164542963145549400167515863516305299544864700039614594146358784530790321038960752542139214361057810394801729991492757022539848557241114830950984707890973993623622102526407332707838194697709260268993785977479372686990460155664780966158130866754432939115338590728803192299952528746726944025489363139475270475057359440749670725496704526079130425596987305871909479308137536076113128190459474300983239389020584493546466273117115587306470296833382811591267449770613811695649621860454387137377972771954439422813899443782437690501310998470890985372373801487189941621679310016704593274207036494476214695953985130477017049209533876870266886953627326414040886033496223149972308953710593234889347854363657220331463383258163690907540715227841187668705708063006931022718800253220371826101692388680173328197825549655275365605260656357338507123639828785674241946816394624995111592834865162224937362476904469703538924923123552951317208526891411430675354083753110675014831694916212639152406459564344594275272032035136712950752535017965914025168938414071211833750192800811919520258470835610527928535533163497482993262216840248925793221139194449568139619172385961594034796273555312453746822458803925482258279343225178011462747181269504538027990315402663943755095787313516317040432650070644155978023062236188220981113751612337291798842141175665329703791545394316555834549865642640785080793032535623501955845617180752906213459867258006752265849292823070065946264664159303347969368274643444351938415232471085947582978049931109925919943791722939972288035769540943345658720701363016274238857695571677175631044642117714175479318195542077233242843033912902732221076672482531636035338351141326067708472952073399348562023444220300832121482084921520107055900403352884222951147703776845554985318655647101173757090105228602646849249396024800985302129761279905132879849083609360045028255586676391925099666113962656020715955859168628978370758956618016785077399592029327914307928593258819076329363397526588542809466685290700117807051934014634487794008653703745272910854712576495746977254875448524526609829210990303131834278650927872979113549773818609099517807222058328964719556010835856987011352951634604180960417019242844075170745252840459047596241346180721742492423430478204434461270267940028220130320013959497731985582037333087781250648292647019124170220632690788845264944779639280918237136271691578174826941713454437070483960287540607846421098048652771650861300409804104902802702364224730964755335839676877480589341076742404469363021144749280939734155251532955178427747848028232595963280620543994590255760998813463667686800327375601484474484746032416389712163356260105990007523657147844862409917231003940685208171304684680695767970423186462955040183485981050518630304587030945065068799904378094841668664946758220899012978295523319598011497827305316814195419198450515389254632424664274327460262641367765113439044130695826718805624198636776140861433877180332158243812941411524579541918900956816325651199162858720380228394349891702003419735005274021059865589643729717615371275578205498023105291772864197227586398491532465099556336650306909897862624952925911554324654276937725782758125809004041018892318611619852805437640907140053539343390165998047693952067570920939703204687452078478978865685320134530009778898359180850067633484223255741147973443477211580168778588279533011545315102621346732947426003428474739512276818676215937343473228775059015389845112768997348590636454513952640367555381994852468875067330884962782560036204398335561759974409640741756178317966253616698752905661088696453438659327593517690269666631811044158596790164084885335021750474511118236724745151444550161520743121745372639093374951833944721244415906344676394297059746840672506810032054008250577704038329847068340900940114866774802792930362861605840984672322894028314752793779696973675778133195976215092136958728588990402203097384110501769116503747731075501789250683225358971443775552362529715738519025060302764816212462379291389697257175878028703033245961098507360370773651800547316454376792542875059553480108218988024548117288713582792609733850250101658148379155505560418311592906529478666939844987494152360953282764312247674688987998389271039624353466898105753706418177758476311198897418229646479587947853456859874846493512225855821698299491155755924106110078349326861153642106271386009374982892346703146801459734933914568790989995827992317042968143911772686837379465323223271873388986415516842602303805043998560500174521247905398837956847285056239003982164416190155562552249505550339358965500940762825427920506528364803252829412298605648920920860838237246313286037027773860606422265562232975333486139721599654716423223607399225385770195881792012003133872324607667864991207723509013603943475796744311072555855437943118471979899693161833524926395650448763898700873415725491341886182288679969280155816261494560586997717790104077323881316612865200496297088675711713762407646179643814206793846030413443669151318136476022073816658342746214992315154046504669699483565070868924747962040407441905864508507651977937587495754466967258604006075774661155541098853484009181897179459568985202618189094889124484926361247475215489700949163261194067093632781253889743529293778748711433761782065898793000259207467376139840962648439746844359815912384891710108986590371743057402617687782628306824168280593075184013758449463221644983648577404940059109312690807554128102883254747024235330196494921390807808066933363654812335848708781487983056329816216379353341912401632535180175827638127483161227686877072766667421865143060014566824924201256667464329559795929412471500273192522028920733607528567371623320401794059260864142885633396454839317037886808133036791113377575247228715819512922861060087675686222183672550204340341880255873528095878535832636270988120006337774839574422608965899699000606547844996914882041283677703433041012572455962205590217065639269833591068697875031319593389115509700767793967878151190733151655159464572764918996071551696587364026550002856153614959818341301272010545603796859083121516966137392500122741743545591622798708837936358435439300218622159251876079572085972069983780879309481671430634262029930226228984729419757702588448612678684652600972540077315667508498804488598390310924320478721378953737660131938691303901697693822197201359205396213036586627933435422482860898714396829422217889194306234094167402118585085044651547975609463015670686910169929142405144882202712744175334002180583328999907814523495955005513798583901114337988385512831386599680793277700160907950052926774447167265104560613750105969355050329047505305152976587092763330985825203303135571720721186622095368099956986876848692114244241523173144781803822462089131905693739433822096736894721636868196585460391955595541065672933560530696306446902265901478093110247581220223984807404479332053284957404994431605014235143964057069560324251771241811663050598673731688926218231789818438816817563126780579720715502742942962026463243122691867292006552114518300096489334036675232993155590108730665351363533635823388245685099492400796508302809531068288878578706221638408904202887168023272191396697265291101091237272613960371074345688264721662985672091381167839721000428950928247552096139521583948276560341972167432634403219725072057132823411178347177162546496232651632620656035730275340620755712131236685731938993827100522120470645844242715862944981410332226743158342723863057100811009219657611005893659139903944429200016227276901711939297626189498209690990636807374726082326731028919584247368051527118293247589981407653241400210756857053788259573441220719846109567816786441701530007749527025942931434510249862638614803042847489736123989116589659296221612735220277413323794101272844254931360251384949972866457588713054924482084083521316968372196742655652865534917204871444201501665599771386258611876762685330382627009306058317345094132408744700250539958411656352863245905996353860691779953606868347099387053473533906404278057962385029417552569431982858704019567843491190392289560213176725409125866264751660219330833807858969560386840077463718179920138710027018924433444279589660990289365838279126589830679319984761632137334813406840313538991197258944293131699889998569117289627741482254635100083983887629365340432852088345902283094342252723369118922170950132198141035895984389832783120113861613908815036309212874173078625840202770819410143833738785926629524176338620970307796796250386280312861896578536002135903247262775657589916556149898222431415936379586400991822558133362009036633510132991958825515538183004986070153042739002117505439346995713859085580874831726322658630039608391862216362583674772305992117615001924369554568965561754773810417577514427897794294590550076053887931688167214365307323302389962792908625579064390914363604398666982865937900885088916227258926668501686783095294245795977667346221364726462021693163906104371021285342320060245398032478228946133371608899505015178380772284659072247191994063509253768364561358887229917235987055142226239427968309728393122595172593236107401337106508571508650236431550604499637727406361232603800087157350617309980846218971435422135504031634563023160306761784725014228051429962885409423528899896407163953570561378289236157237195730165842178863820356549571278733177562073965047422254415011079852158425048103948698747152801672105081100445973964232567741708304769250929364715434472330670639080185721353094371041272582249947107878406642234164634870526692462876802956049404445258071602674513196679140406973274754594223975666302652969008710931321735357524799357599693884623568380448252604681266919944973776412640215795800836888001975210382391913243442852756036925813189788896719752774249211526650818718927915459580544465072720975107104388117557328042839544905974689411533066359739729101360860536234708151383502417589188254975907234253685516604005072533631317329422284531017161185210123938979561108559606038678260087562194584653886778899200942547594061915643096031762817020816403939135974951584467436394841869564029703205798527619366943907863507829327352165442332738603811892688595557899197034266116310864854396302567086600312542807038512847658193275063643861993100460846175312904294192418997095493879973546503357401001438742699788012832403730247857438092928635008107613935244365887586948930411550134727107293479208731194876389262912375483453063466150850426970128564597036045074627762622905754168406092243866569400096266421053089127182704472668591465005475719376243368359815301993481641204750540828324183838427912844374541387549744656507711118745782530240104564698154353745160045678038992155361512534471553295203953774882043965245663598561382209903551716346293574924257721190778719305603400033599669883966793567784831103081267537460507429813847326864255733524902717565987424970971495106986798150227644366015031631751171875902202768250556791029044738575874511810124178903428186571683238200038334009370201768000314214850974077219471511810984835898906506534809878721622240563769141641788907014311362593317516040438440075387574741771123776029496418644570901302982232989010481417924006486643641584967378266342215907880444734711990000528554434089211022467849004589691200973818454463997107741550338361600273870119691832420306733197178349864414371268113184286455032086565066179745323318259550079201614536776335986268788050739509643568015509897881909284038947441979210494045964650508641253072375855179099131033342236457597315406642379745003855783015583655250614520167378170866938553376105716296522178503020668220349036007191161090013799031765301580374162978281179012718310330711133329451917334901639484096948156664498581260439095600493946639520750782578522036384038433607179877835992869690928497542599715910928185772583796103363173112539214775157550766346726060364415952587213349346991213718282107845529773769636334078609903740292344320519625478701149246898626907896077579313299444283200233369357611253958047331883443076911570339916151553919732674299544359825503434921647077340248549008670062246484343883070815297025242019937443657700791347599249884832808565120520039471879111663959880369001473420292614416351116644276881598781078620315568840159850398185969747303842906293062178566135286263299582806850590966717585559574809255606417392486291360950364441958892226180103089729553832339650041990779032525442999045993618226154163690862030727684506589166519217087575068290475597588329845161078720858762595113667254839441469546654219364483401860125590274635409799874699004885049696512708992521594690670569943414718921558222032861963763878496164358095335114088071114885079157495694826931847868550031248441593176563877145209299902519470225735907856497388969453515541794594320799114181944820585652378721576957068467228901319016118581430775553540720793632107153059663467516552951891559881668864751294833175829878829929179169792403047110901994504299233802762344952031272311207711595244965003626390872294559260330048986841958585020028009498872495432426112794444186914133752356664260356458167303319065990926363183985932612103479280624751739852174257934743327197511638471255261615059591308531631301552915576166558141713563179682278550538052840589020537299025442328458364647325208752877384167099898844375889222183600001755464482825372994279460693112975228982993630038845677052705804266693244696775660458941752836830297766146147462402897469676018446618635491593429176216761116672297324475557017387100294921895089348328303072288217327085531615978452638845454446304814808763901284088838504297444359481376306629785764815998587621113332755565371458573381928404170076399708461977342501057529823527920367047664735558661021742848800596052957290174040589882096703329331220316024937072593707552652570700246312701900251906462403687171253975487558177725992931899158910648896900980847946845858887728314244390401029676197524832862264627527496117120222082546771433897635318312579465182981722941640414010779544144301954366546927712972240875215828657099381741257495447928607897827810329706670606377833831304745880613881350416661625767739300212594120659739308599648827194618467671969349803730326466263904574691364236089909549604771072475039341154419360194054867791436524747049172420508127823037862851192929273402773492283346731600822909939246565615492231237257074843713781188784064963521593079630639173354863277659413628653997911510496658969720417244136540961111788131722904293080685255027048568081310060400202812262732295559161021445625645401311437764018983056253391979961025627986949380588157571024228322960697899725121846796650984727509016700574463068037842387719775673544201024495437787967659310573052620312018431515504887700182811206349699287756033025156773207941467383594785961621916485240661452116503916636385399344209893193197420068094771557827799285503737311957876642896543332095915657424780610474692956881815576977811149640387942753508439697319632531508381282549549450229129544882435714364785387575714991370570538123569551314228520791509554358328912029757561961585299741670034468712497244623963981987055616954118335715398802839877747377245014730860441805218824539992373000932378092764314006379544089805237596804243390829046709455958232194552141186904043676082835762296328879373998816550155801164327147377527392079281254834246476127917184780173910866733467235170367771524112719435820155812777598112946750333784254516089582737668040322833715114867940782191035139919043759532170337237680545075339555812119085653023826491492448877167586736475483092921561775390967545129644993807881085358187399455445110451457870715238933455407002786946244382778167891187193170685384791025726596215307349083716698805456068637762160665259801240551559806881735180994077120268021550042356867726761617739333564283688428453044760353208914462133097711383356189640651540255640706747785755402386744987735662145179920726696348752586100576267594728510305831603184599692907555215589097257740301579933658231084404638420332790428121025413247530495949929579809562904326063168738620591569972926699766332524323628919074912899677024128450297343704197461195610133107314940488204216509043879879100969795409826148846477300049608680809439905238703982290395894270678632774138214863018102053660206573175634206506238080089002755948110883797617628452945357096792515937269430308225947113076731728233344696273815683923360663732307747069073191090200034186896577079699112556799424944427191860798394662189982401701222630870627542627957122617137582177209390566581714827665034867007016967234391744230056973628907322929496025558992635873257826141331446728524215178886464572337663928548385106453060585792035627293019215877639219311058516437232787854225029869151973348614114360979370902125346974740748712018686435628800176512417678927301204409445192662391830456761425567544652074255958030241600486044725013924550216473033139240571631503869022871721047812679016899886524749464663501432925878889437808068951313215597750354414654934544837641322320452712468212884421324063895657318957854815013252869406058353029067442279442758054217536123006014400950868086242597422763168602909257830789602831577145092250469269269075110928957957159649147438075295246924608075757954318430446158992174209830534714131138851319075282699327568584520396579257660492875494270691449347999270694746734944741810503989963202087173793895730836771090949637620748145152497569064130075452860867274021194408945673642115133805198051282284642037387209996643680464181967325767447009290138052006659733329849858714456102920531309725293296162381302507979151494252576939209790821097898913333802209051793484699167951805034596779612766177226488464765587505164495656807974239397324746187480814621102230486512765166616342890010959042091390226518440324405572091079333592709333873899508472938525181178528612249090773588022127866272787114336779559095286635069675760749915330306830855366308581741220980634350863314536480239652094842812875803906735180787162565990328169589266517673850228876838997772925982267086039503463814848214146886459618728252929346727153353364579063006828056516825648381223650690549247848621515157257088169115926705506500414151298624888774542299663902834933792494955246734034341316123710948978035576651596472199325715092375765748481042383067674872389893796173751343884364600924725880224575356367075561026580390060001672967916295681046504755460325708894020966335590225134879359600420288054359293005594003582815621942583913549700074972624423171002230435591122019608744695003887557903067279245897499577927700778728858882263514842957077536463108497384847362308087343805448162806747047534679744697362838190592058592151471746446309892147523789140767577203612723239160923800462777576612291596780049049709640726068631127731711151853378315353517482423722179510728529822317652537255687855605755344387612064188177898347120791264541569644064459836774656924055102838978567838839834731190106655769881188756344952495844548997844670011311221406714068659548139577067076929712786067565528717523909980902601450344223277322902701353503146680129000676860269916128112941415193539374904647934318444650076060573319529679479194189669198958338466218846385484351482638589768815069000406876844433849463404326762084960666768609333614243672743010456030149981400499781472255066137425581887658283838161920306873466448647989378344601680747468762536056460766795101530638060566335065041125286808545450912200641777454967662136810487874551312675891921116335447388511966655412311977117946174025232507718824343504893071675085427363380541081995250217941326043291125367053277252070705583683166430700636489023016265744871728905090074952170938966677117433425102055391925367030736282120341756472146282974924282171942096680375088941062447755455999874213066233433259161487274022405195262841446012275425033537311353447412998565570673356506414084527711050584744818694182633105602527672293087374874390187591514795614694554919522357543843456078974165508204919365874885475367908859090996810311041660882434510333197374285015644712466523209152991844422298787679038742053123021973496238924855570498044839239143835086439976423068575735916810651972882330205025017049836072422352357559997787492951644352680591547432945507706622448403908752641265970975086296066440746480486727432929284701667250856486716833956325133980598323298718910979422188353205085267955097924194721746191924841862654673713040740102270968077159876820352178175066828502290464995762172693499058492223759485413268385652383159475362459580654736336834001330589492977553903977260545107855830629960014702452387979509847259340874899375330284961480233263419525132289208540785731251612919053489492814889570582461606294755487335078371567480915135502290384662995607897637736946569822685386084517065717394261058941608486055604176181149901398859241221603541328087147754977248118134201357937864317399729782726622412715932597653918552740520231388989171848579420317244019225715392314886296291742350573560057842107192177351124102101647506993521604537035379680549235526462555311696055587132464209442197951026583034243494712916727374358610534472371184362389023535175353793340093220818491354010414646307444188615382477628334386151835425424762157306562753739089569998025682093815891408877192129222677052722996297572066599449066067595618962091056960998136628461894973418188862515485392480475433075506312017643989052762697765544250491929608601671306652441003846458112300014519617078612639725301002495093229509263326750922084723330841746053233163457152468076062470693465535681981931589825853592365517598231152544946447086099479353418033227389022030918003741816589101553052866833274198050330236835670123861929148062358761196336889680500498199821908143488204211843206630704080548187701192725441033668068185957079708612635636999865017091308116946560267005432809815262994337877164067050609797713479128038430435844993998673022272066827329681776878568665768698032207174723428752174849281780540838679661610784772083518487757839349221546888840955440838962674293442742037732249739595573355206622135853711112088156725615497153318984643095674929549623051648105136004404985218527269227977336422053291429059622961754099795367934673588989795790447820237262642871157459040703072301153083056625293481306920671216303968870745977150829925642231583895659351937060918360380772360341880345591900546174930812103294080295966015629210248500403264009044932904670679494856719348148551411806046362748208968041190373113238872726898004257634147304380983307857258037142231914420053653786421877865667949972205895099758994530134452106416110340369666927834216648508651854896346605009540744444144351052433956106610771727987640446858949949938749790831372024546440760301022491971521693347848418870895650739516564792275186495719326181083841955475418820563310833198907719402791143316673610958144955662843400760420042710747709938909230107744509049906527289710266616638020759391135028302527919382971736643306335253047124297521647649921702818477822981245207863884569650764445187135105190658090422431986366381666045508761389201891865398968653552676867422289083894567217555846300033656356809635903238548902159959555330573839576401007243565587144006217608667180476047204351314966601340849169390672907846882640425660760377558466734068994377134340618298411393418587129462060906135958260741492311354955230300401176953798151202588502839705706229176450374550483217635084644347694138317935711968669750587958267716944677545230303086013326388893098059502874610781674626390536230296817797172194335447190948660185598899178974387774347457544271304426972410859246966353615026586101725260282856269817683197965560122096011031398226217674790592009397093302569148283179606776843985282734812649436035405575032315325597811390763200340991407343420605196114519369774499473673147872242855377547922357129020736237203385613170216367282659749848317283031183475856037923170976358606548402919688817683970575380536412421492710662390438379251646777737445293547283811407435823214923192959356290472102430971998876943886930694673668562939493373711129658898390283577464792689631072081822252598327891115941024978646257346274601721611467150593081884400818672487361284531510685582334236998239546774488279386023119766080893137506417085354338419088512822070869138789294365642641784889029554821629163321169936497408107010752195226733985896427820953592376745427764367991605467639765095542971095286411374066899032242201822307302604777830199584901516517451487951745455679593616325229874622428313214418432466425257109985540358807545626986225423862906959571456396922489531901570944039908508535209778135184972672832051359761007672731084106490485989144823308924763270714857910319510989396849752064862962992190223401974699739358665230230670832674688937174035687467344692116585789565723277898914844837326957083355681707002396055161483039841516308618756173484126466353660960092152285848407598358824935569828029493537037635096341406099949205357037805424634253734021465694564249015189288170555282948354189055137173770513105081017590050492171017000002867388521654035613201627303825645820003618721356017515830319694616824535714318224681993445345995577615411744858035008074543618459187191460087088701507566288840265916929107875813742177396806584108931591843547102946003632985363713229160637021313261111822157113421739973334029081731328438876512230393169952931661606934774825371310742997971139876331655218271901856433508593054248344493062401639323007212497605345030939916486380588677752730073831129099702682045129854360719555174402122356789255463382175360747513524623319241641654103194912931716005267380561083742596441485807757634112746805024133085650668488330355078530114952087505286169857246890874078491535020277260923129364047150164815586269416255999759448238080157446764418623566495821231578804948034160273545274794763052845846488655383890865167761288074484918075624705530886060370996585033788035898215593571693457883991313712887567103707677019824523043037511758890669386981137338004065667185812094736445529285223606796144167594398862465331349454162509128619712941646451343009958938643738515034672142453016069038170098135304201325459302776735396993239082126632842786353557297782377974365218795714943404837135751666445875955103791205379666289367903971482912392093066362018657169715385460636669314267607617790361118031421521175387977952520097231457076564962958678632410103488494383163645446449527936654570643115659730512482171315323690076206817743887334368444040039418110156665439925851423420416965841847608143349123827921634394734305180260766479947371541153203075187096952703750884649441009689049847450729909767162369675758978311666048366858671626376425781642727940703921898603683447263397714652846264871519135228613675110282838722462296089903909297998651742063620880808877373931115676634805890836980509591005641054692602208262675860581050000331763836095283278089544052831086063234279861005815635774718109654185873781667328340029080595862507265274175034018132189743017837395521704222666364067576753524399853179496716020516287841991670539202944412458695800664109150047270720611518643155814054293026320697392485224941772695159318283986816998857422741277402793958060385340495085070698320382302144330526055934315732782312959181591186714595615914580945202344478003922533387892534052601315271138863209752266768974722124585580484644796190903286974795196489527610930690350908037422218140315641654538622286020596236736722941663253947665187369415363599944663133615857274835789617542069827297261003520100280911650682955178617492224812394806876158400817430855941651778947951917523680294188974147170942998756787012635709486293530147538946519401593711605624469347817593827329739224523166369412636323464440894934522212369032821074342223924244188217303160357633090655677948554703879410616439678871187039383350635697088353424060097007597794335396893313941400116504240553612622056086824303479761468036101067396340776676671192546784621398209362514647818259604611788649206805064794877232881478309470761143661099658621675692944474371427680339265840669341456380744245712966256540732628509129694721701744698745426451660564059243743838173338742821028819987587068415501704826113397054339341767741904822893264264459346982574479701941908682334297178537971634035314136372753337998746238292129966235116181782698755503791045537298649463823818165320651388362248852110379074641826148762870356904172150424720561064314245160237674998626692264022296901406766013294149096966106084766204013505304763615004491639297581874529854957544080083127950949390364855374672368837619311936057000364132406755240410227412296833131433935177034857490162716097673263995733204403389162125704418421151808068379037707249959838544430773867502032180250294130408415094072982189723430492826985005057468646584694738127513262712545250719013382857505109398362955291800023659828806146734938478813367732211441949980617176642976598049443721416613420045893462073556436486689264842880765128910447831205203013781203701230826547632936279460191533109264720878103466311948506868801826625812521225499778983910364132525547244560392165806172922253274177698024316346703948822683141860122208556405725036090211428159982560351262193406573639921585348247880714084594866712106883522405399553981259863505736912056931346017572470151854663803893362970309165218764061776120692261480135919914485938449083792131631998256714317703516103791546177170223567594549852835419454624227359936309169053386926363034449664831053357281813857607671751722862776762235146748103584079698183038816656477422865063545162581064871720497036201505590889770846162019394986783538720526843702608542790817831992702315269829288025959533616884334059062412761629821515679375435410833634793775553899973258870627670302230108775354539086368641874196625164917988737882442768221524392250908685508575133983939795303855074584995804361659092600405118265907968064112779089721039302569489445355262918279837371534146579681722770035950106057260442831066502476765203382787264847998450490528410361998610198946820365436675351092164447220843071251386542804276343672616318429155160613960078281340747262385680921309214630190625903600063360687383101880017349382222405977973056229619384948248421433343598965628970091603456018440298445595742906995328607447542191425729551747155760915987214710099853770391761383218746165282582502213697915321883835131598493875395339855011621132550481138531915916681141218796538397362487591066210263721577278468933340174825887381935438289678425435030780004516512416817107774200534323358593076546133464594444999360543322373306877140124117646812010540794183974775864296684665266839072037089023501891427500231056785211483384996619567991226753249029986100337598074757566651905800391413016124539388322671093258097014207461315841748494289974058545868344661943137201921851268131447216786219071575701175563654306305911983239796789521880074615691295695204092584768665954455126945126967474271775272677265232314364916890775785799475066064581232434412800648493738862488893429168179716806917760903522784164569260340941930741612143513025589248209533842199628651366042942028631381746402715123586561590364965353736846149247206477242886838780204339622298185626510705603942417589525806935197831366952233092498110318057566455624923931160929945714032157680823294493793781113245021684642118078366467235626595985874460462288878398065715977947724345662035728263501267395323725901838902996469443029628419860413752159911650290682875156150027743685469854766030810912016855067138289774099192036742058243209711634242725882904557524350201623424386756514303054172870485273994024478374957676037965424708428482496888152301477870806740927713334965441731193409278929657090984946608622024695503079221028428984293629630967840673865366950309270631098435402307309013970940341176871109192506675960850952505767836992491348208499225699791954766908672862752449327521530089737266706806419949257373347803043085810029420216379850997496226489548769686543611702516561116355377449929719989521332374656554104414835527731016243876896841333535377502913359536619701352440137277555660141410420428271618535413129160327329182212122858284196452958218147769991672561412721886959388783145129544628855460349489760208229198437478495347866048088709874930461329621725679030471675846498751732851666393515388275660096907260213130060104903946802924915633835216033627929268847915891063824955114659953198578946707825392496845218213029591699222876301594589039224711293683894139182673016186536589410302868093336240822863169286804599104952335086160644222410082206522864348247796027879894446196087681753996133582700892038172206030856595313368487125292982311411183149895446634864149960912183599094113728330841899496902150710209736252986364105903763089643961560232964861739071290916520715076984350412057630026586336660328388574968487396792932664445142396819029375746119588310627490571152724126309484584063625858742388179633813611711969442355757819026053556672773841796853907730822855702570207369722220464818981375160050345993400695692212187907578146565986401234150827077420298806081953131193367765084482002769559878253411489057146802315782095635804078995788738121588600775943986644277559519802929687148029887746638665673577760053072288994030534810061426690457575089790039024320365936929555904167929457452716608383142418319402308878991396694575422830276617847392992532398774639483612148686420886253344942546207463298647466266749407199099208266034250339955103904635309032736288114798373481324319457982730728427349672271661920179115408206927372546473141831886550591291855224848550667292204757496830045554954328910816636950441589417383762581771857959287925252680877300591262477424054550560636348029815455416194257432389250253276742046270357941819057253402335247260707456631770705322129173126475621800818063137867104226991577440597909345571204969146915277754930192683217543364771955527415908736405636232065939157407524584432224545637634145802396892253146064578476434590734381553215128534736251476068119962698387088114696381685425541528846623445887230562951312277554736671395306324543239248671668290590302959815212671732129978789331038490584601088183858146899325934337439764757981655503139350550738918718162691321003210585694593304313204377713135735753439688953473476550291194085247037785485769637946876231943897207284767201765678157921167893114642670545743415338987351835287498141798740800928327504594620811212113364969245544119126744957785625023272744761882829836570863867066723218893458090003695242704584859126656394024594143198006355920562263769566599402580755089045493239886013317767574138307423625972493776351218496791195632155776132319570756826245364028977629199791239614306230392984636910317648735584535876084263504028049000532216867211400305688059142730441702182899874750812718921507354934818113529211682447196380825666802326892037957487787911190755241366042935322287493549154566640169213028155113525520170373063876997823160138546871178133688550109694018368649381787410670595994848758204460671948099714903622557437451082586384919561604067474745600474311203436785773125448255066201124168075978108477321125862403825199770778104623947534565312585797332839144868527508341670686113445954443439746586873286957820816047644571855185280825642550773403912833318324582207641900726889744393302279427182762308182148096490294279922242407926369631511486161503490077724452669617815877171373033413470578740990541386375673049802245568323914379374398845364224016270538565172256215413462022388519575870372824343261258457902490998593986376825084747969352060043942802897158696817759169950749228331033501230137591383434256190742519775749790146288569489502839325044344999071433210277720773747754666278202762458552575735517706251818330399168501130127024008289778331198991795270177372172953203029284683285217647616851787159172054203002538725991989136186308506244212265885481588920182593185263217675232294571283863173334362381685239281026004457790553729167559218000333894925513412735683811290720186506855375497320423510335034391411029828476457797762704817064154228893798958946231354518490185295152258018198179795151252548291955788787004381313260041441978308969158268637493460834183787218654523942154783513848739222602479278132393461938428408013506463943019075711487875612263133987442103423842860835100014166372447879853444625627107032830438119168884990539745405894440319188004528441993895536053874005029340282700851478047636947884032527619031000059354297362260808056818710632606562447827715535923396210096411687154430624159199987989950220435661219902580864403507780128105446449624656995576722678119136339922263993501875031731194066549887633639270541203696352823602701853932882085332486690444322406114239402652509585357727088190914477034825813065578474199328130911169475889221219197335192406486460676469988270759566239017880319685878577741213485586046351137664212882631896175175288846394744866276320677169993321906447739046664893383544467447056626474804692176777285933483349373056803601372083824376774592614915137649620283439099916002817870829243250972778385573279654806656158910828088582808642466333511655908959466645654300809339502101133512003472949410126994624183718523223291671069841135511936260053909431266001490950227507515501474883028867945842320872547992820785813306034071859162886412501608322474491971942158211460306533427492449435650591018703518800994174205858064101757676784210889620210050070764175484401917638975444022877308323657527923427502855679516021370368942359154386495864223514263854510074197645588561884564143035046433245738922780100118599182229221097998162161154844106352071066890924908545985928370482176992510271000834630278536690346687058576246092184552260327373084632144785481104563508533219339372668001906459657453150893798145941154231792216440163448997008457066966481193281808744097770729641387329343975051785755812751545086236137120467675418244883928015408458091989006165522251957258278265945754483457473855847895590520224300836844129802046778911438755075429394125695652580717448038980076107377926476772985424682393143500426491794553122401352006778899307633216981351139457655256103910345843806270196425406266891759001468561785335364419866211075506885272554339851676015589970960849359233080457319853788319174283580572214047118021518883357823262585561177270220642103680579483478558595334081477316471685898137825858040909565209445174103753832714179738975455500368576472233566654124878931231932478903309972005287834990484701311886656785200708121771039245045055205667570601152114859258135141394349503242576372894401221719165006285632956759112209349738323661479596583433528606498867963769164488401452661189170392906004766591919252934307449017152947609458898953596343005048967375088190973104357100894881893502333870932739497812085256983573069819515620345706444014764295603403003747210313618231626980835420493375057481046994259621296451056549287029913810272150726931587072475697131084723059523456844582536785742696987306581158708663494073567314729655658468135410563908604657663433007072857788425999686286355068623609155751863511847710278593053630242604673873925396456027993356164473913311775465440554798031996254182117739537749931138312097146079504863033509476957556487368761034902592062322327363445488779955333277335571309716957711593794856890466448141097927409471620219876827545879139825621796577629891848500075062190952154459485252333097631206007401885769598757351852532259597792427579730470829496497160384594590834440812893872225157346298622936154237843155408607633377097828783450334739244379950807428210730425148080617455745942821619724792286692792711165224262253086926258999302830905809978347197619032121705110520008360402533708660244437798987179944209541103767845793315578018733553071157671708204067478688113644697653126532552109374923995537911986569042319750305554234674901324329883131689322277418814104746365467579782652101761889091691464923603774844963528175287870466628897521208138220817506394212178523170474260792659603398982066942309417293659773824110094612763355101089692150682575753252598303698280380969964270279621845443613251551953301385486779406726437567260709413841166569960539512670303463660400784908751474023831359074677176194035078874579357868548178376960748115006493647926166526966908674577237114419279622530838584142413443867506857542407945180090713906330188100294823502364935527525395152087043178883324037589126273350732682617692603312017519650672628493911819768107405199143751949465452165271425482360361793262798751387420160544959480919672043627570284713720064563119460148971042109651767572673133332114377298097906034889300722465924249366216657969123810111109150136728426228479153234047853137985901661676051765668266780161650629688374038909093942925191676179823775671404309524369165017438132756299151777072394079683333050810024154709458199247565520987838870881531021940979549340968508253151806309660933883131611383452948215948235553037533316477842472419704017620508906058563427527848189956140048739250416669013313918085649095216057604990216678529558678728844509761460815723523713593236315045232752877164596283978765965115681644915374010633760307960298672252341594382087187217006686586760343635505064903826739421032892057592485024980902851453316439003486678565574160714931594735826940169656004642899220903516670315293488645806514280344638400822338526710233508336106348907669085298897000265774233806836586147872479360536364291386592638363935965997085349436189008233034499701841539351229963260503508517539443475724089325558416945503692621314215999166370982222884526440797843551656178599390901929163724902736184227134684974034616738977161914520287858899108808647594256956375262541070895341190061105880207510003023150798421587236461501261911803568929619177372977042951579944057930547703876086768220023683366497244028478894658815769942131832202330499578755000943175045006090023184720204220720105188816757387318169352898679130255242144987959577213465341827403849154738161698110432783335289631584288939265747311305449908183575387613562283702068702548316539065491406903467013947966885568448962706003776767386759967960007960519723796970715232189573316758234782862186548954746490989019359101396980774496869521518809031621825660117196747800649478669789263750181965892996883511289046542155071073788610032511427479830202363381343700271069945544728509767472753586006636600800722646826206523805372281296957877605196557627823126357633495942785753314769508148491091987531560221668045867392071161517868360497264316173763014089786224356453266644402987101458047309097118879021972401263308882373210006963253124992730204299874687123894538213788528557593888913406252725394204039401756100879466768973713647721435449270867092821206236011282448787179681173448630767107337099277038688731775479564565757712453249802663674755058467570848731501255580756367266567654114221196155105095372753484506641114550102277230585868004956641622295954270195562149534119945604127785230421566734387336047832113422219583685328240663932970615406885536678620077914289114629836961387831676794917641258849288710936117558234113851907609311441492918340147191212244114518575069281616752483917533422029990406583103923722256182699065866020762053399833394615403693492288535831117649292082456710330688847079352662905885638297153929847096086963927929389386053288176613983513294528644392531078599175550572811651868352048561519721788421981217520357653909350560496627221729626920980424327056659813368637781020942068784592288654023284269723534466662150722539956576213924434569026884214134967297920266271474243745582537039241230611448122136559185195441857845448011434729027596110758361565145073039380832456795819733511139345686699640981179810479454106861909687726517361199103920194436660721900213581831715520809674200797695268076002705835584697519051292826389067619690726681440865043944489219851157875906670807405029851799395296606039320364501249273067165402700877957686073856164561895994726088950515289697142433490917819674709452889702306155701511770073516727996525151455097959557362859582745626049984262674147596883066775775737412064303599423240546763334666372278776412252116636585875138881902630277120795792689506664321590222984092570229378283992782617968292189294153952343946225321185027494719446583337883029202887437485710418508432494007760188841660936488005239917985531834785541824592419278926818816367388391478156117652560507086797631588774670662064134853987690398967269785529762287691962873929932256127033320302630287520690997079813775724698272987625204632448333285074191035261789676175586740276854649754288294946315202331391217981394016132525029176944383704463744267004861035863363004795113818553210015955592677057361176467968650546526310761202058278740051078595049667772820755771470293791642144644323254008164501581218342164326718312122048978887865967144978106936136264830908560375307330284333802379165163630546103709434022881446439869457863149423985722559854199448170575312111601639396297027620322471969282176884783643476233947476280345122096352145138633614100609666198675395939611905314738745606793290664001929581700707043752942948318607778091870336266219029791780664027298247073645058457894212623820900622496771826902212050406811816514562733324950062834425050862827561929985033847385206241318881374790029056594725416019618862633251572290389285132652300425954988940727031220866318283526465947518199855712421605116170785148281427261012131384321979517301236202178887192907715309973840938696199191120889275375874306573537532207367679326663381690733239303486992394035456283263776964138412335616526235165221220762131855251689263556984193433521951630187277406170402373270656585831792049548252896657943965159761428516634556638821339429401370193029895494484146199507737502821665043916362976366517704499104126871003666584255196474235342795344065660738689581667622474811226622653756849568802733741854193442363515650014567772022358789911674445277877096041446692758525763132693137489196179223574214547799325693780417175582837039451067946302982926397186054629411548506180805603413718836001894089506001377635584426096145676831404201006136251446164414793126847093092907646582420091009981261685480514230479391486005480855967583662434879111754502151910678632169824265512765439518874057492164337949765456481278239898267219317233350000690243115416058892362208740663414432500639449487033230513530527311506977195005876896673573052818919748200937204190935290107279390360257633667358772591528091426681005088201634343207468870037204062560442643833750733859606365402284426651968211631085633207997295407944820791370247844132007104447909134162957277973225781359976363066564114230199683783912732025721486268394000606602761040277598928511971897350104743640882591951837449851048784003884089360894849439169297174778956637443814731190037245907458503264957628000369746794546981815829926117872741547825805867051145252645570985948680360776524351619255523422256976686251542045128736345917474342769073600479888900736957736995560250266009572032296746463297517209697624157572898169971371255215262943907352084823505925629776248787048473537169610521186741287739468441247186736906522781623767786338049109585902461209065611306166485126199464269669537062631037712849196659908091564142390324410954039500837018279851615052793080290062198540746954584191428302595517978741784490192297471832124727462391588803783702781591863413442010300778414904048333120820682901995875892778967190266636875713844781205777507240754160237024353621310832398316657468621861549030047210037554308092585105310808825294128313818074440480883252427433371309504635548889249659810164869188203558159187676197556674403699481331249641905117471701916989511677587389276574398598930237691544237485862062632125461131434819567026163476196470741941766251618620584774322091903556770749272128163024341997221550846218070877107705481811085427202611687513535003116433923965206277486295801161939953279147287893337351925357573961371093889903793935994639323688730684085546717029652409785381090670470484945312093858178314453534427500538539967735423586692490141688902341628428440862654158048293362854405796116889186516047463831010457682754028560155976083349015056769105537057018195183916769734241147801793813666519922145124558521545803466484601193945088366574265183686501693499887570448938921321188791861632248231876750394002199181831975493619328969069048073107615532542842942081180738728409223047131972823941390081929233838813755557446590652439320590138715418027962113967970330581290756029691813951657885786192836437300951865876712393640467174835699489985124416357201087032373737795215520728511012928299536171120632098021276031522335591468734652873365892601211216889558890297136862623431646183688985327328770224374931376018241164447902990886699352941598124719691465792076828194729604102227542105554470604650419954107211276164202322925065434750164615701762485826589946182026587927904795815831933735066302916310797323622139943268492840766059040054971900145491560197164318939824942783471881895656560197528582807812336237827103432482532464810783667145494959339712290523723887365288997307519654225832522731539543614169784546216056131916174206021897306949144325492929245966638758705608075954335286235259921007029521309035899223773996724798015061941160148145659703775607686983892581977434049805834832079241899782017322504777973041612458947975647205292406548134682321709691918276070183089639023182501920385578288826550880769630980326565961381663108887450538291496461689812735410899226943497315865990145347125747596983592579559659651659788633721904429431199939160348636123030153395233239852095625829615402473328788209202332842694552307775466476393787634257225764915917410191741220408296898088048088855442048998959845116094015950055160437598058839728691272713045373706479120048021814370090611225118942199016002866548971989839179998062381371915684811999244620193264412879862036126742755948978487695244055886234776903093256724628752086320005475610408963426042040638344124802747847233146238422857013488582818664882569207034582442010827135759832544722832305212787970845320807326632569599697185228479555544530125516909456815976849846328178226941533558964628310849201308827846823899411941838717154049132656059146433734990251789692471735142675438750490120590665007906135726356453954738392682908087078466482593483616350869601303202354638691588325766821194999546510333139868795066316444935228945864766680665489527948826292707798080345197116187103201065098094912802526241917447471295409680357854120266330758079284007860806443838616722026197999585053203449889627950965800180572743060733705570383202837041325452122331849090131872212373086546460464240035538392665835127741609670054693558129172187944661572483898842605785556456814133999033764889881469057692848174043442185101671082206874277931581101153250448170151424809368386526386096153511555791787902973629910448691320793244534769498586872214974067001264027490587116065988724118689543806620581372471775147886278080651142669077212498469748895482663669478889550616544181532421295307514094402160310234502242221499078405326085659983615881785929044865716696805024539951504422363924776800093030222121804925268909127220198759376037036086340018456002878659511463547979903880010595086347599827199849155054095217241965238098019219584245006607675052063156597519272885084652492721585697167717932281446359307896121445438594287815198615794522811189298555401511904264936329021536903779504159287127238716934472028592182534915869608882934920371632162860606305820431372746378165254394567150612910850941493075413831961685653643573439401767820595107965586693762614516872900277648850664120375710231279216547466136666246019518138477964142244959921004726893003642712928184664998262659234205106419618089693160420998700358754343722900802545644221484919711180043441700455640981867510539431557100399016299566664415257407358162509012978185706576071600472535809065207292819665073726006248234242754174789881230525499428038238062008698960747672351599949351030503808343389448613462729104665290375641000968178471397744186204147901669828754873788177044972247943943738364454636070168032449717893346518970098483269421223061095038146939349752384771607705820654952558878990186567013212327031442376167208420153401002852750026117685059761044069532951971973429865603355782787782538172609747573816565317206760458739075449589829465245228752056313595250091174635800693926516237923141843241336299252488414947727143214535933401682632748788941711954256380827703944639055300983718888317964834838609085907214366897493244601456831105327412805424341932273220202730676430615162424276155184284978873608503091050911839782951013103505899689693018583396897824081155754839621977054164217951262144679676224035556910578887755503380985037343760845454900453350928128134779481181686676162206376364906452363786959845713347753030622053736140566141775493814082768959564273740174426727240192551387001010149784123552613529841802996116932282672526251642303804056415014244878656712761414309119080008083318306085999183325311323963593942211039266456545810604229799633545104611277782567902760314052887428622126634257444663716726220486949296520182250002181090419661240327400137978260685600367722990688119277014749541229592695563393567863226936326144478647536707903691658282950725522730991025212973444082347940518387311292647430769960331273705641283255653777170654986083327797923769625510351008517401669831793512984188766648956832513988578654415410202199729095231673856927379606551600388811314854256377542711774814201271725046892529690841264008526381695469984545948942570089643728260315557409514951088415081183374319369077798958639709784244834626471978247701760421118455813665250368936695945107430967490850357091596134453200216825647651129586026401859836152585488128663745042335213224355303439824874230657041263462704242700890822663321362309221936397621908672196393490827486527291906107054482041966118747804830414196605843936262352085462035018275980742048014927386776641520319928447165667004421494747690022310274320923688359819930850545298626407329826821235546055740633082437398212771160546423132060957772957806071685318471694653274966580278566019674750101712630019588559970533791171323485361306733149367158801637928256110606006790409146594636569189962334416221615145187657902713699964346791812101787901760966123822725214527915914440684451427482462915040255387783676083987117673811224602847541937859033686929440670284195181121105433581909338452098714186150256622728416206849622093519743709880275371157848597697177846005233126009436951648529504823503886113122952326341019418259291067019608075865661041719716016421665110596103030132485332587989487128131987866674823021917771273281268909440608971736021016514400994411880232478354133607905154252592897708833699696940113043757942476637129906491741053665297242768935349825970032383388746163677811942477990650768043892927304748150845259989223378879696316145763003716462603639751414285462762760632558856227459215666450956374426784183090526751810818356927978379129654335880364622460223912792747953105224491540264564030910836173472608465540316385729984874471591374778985762975580071169526397465851260050029448401620751356226036657802321847438798457136380115182887632105521140300793532480568038627998306228072741963072050564827306723732561786484462482207571922389125757927362882762916996967474466755938297402136609018084923135238605918853397688985870163275750340448410697229911364474728185461892946888276793516785027746902074699250874922224138042445110893957222504352919794967435566491670122875648622307761215335655724818305917859454401783367185965026618088896726835835700096695515014564751210801504389607152807678535349705625068480023695022643262945306710500765850915007741388938622046012748918747265356474773172736242021665135968974739970797259090123887888366644166100769830386586657365940187554111478939097775770896783482950574541645056533584086171048074435786320876701505844334222782362290376413993262781149883192061511863397357976329624176993852221928491282724295234790060642964036152223704655872604947853185933605256439058424260622113888890584327036168585671341679636491396388010681118398322327371733179659514618577374448568854986059493451802739353829218780844580315473406857702117886526532499688913760450594810863479379274688975961638860393342433151307748087806633864793057641436440327766155209406912668587203712133033958868623202898016616296946555043777026196236162766440100283109084456554193899710823504188156932071349436361961153681970523773113606554538235266916526463293751426112991154480589854918417584424554009499152659992183013257608368437935594548879613160627033375049425899910856301731833928837721541775180661679798759516069332618186211162692642373172091335224355182448856394977676126791887168740553867202812321790629102149709615133555221472954694902871677396690842209220041165676015742060385834135863353128223746797473776850144266102433305524263707596583637356057507735729129658022608313382775559542173441744421178819929429924937960444765580022777127791647866290205878317412752927583242584977621477321891153215481593456913087015475552055712839930591719909224869847342060176795003210815665735404936415613470654328708659440291957709073490378002315037691206284663419414477600572944082066646474876551960107695070490522866557431068890856356729187549651727504359150603006738933113747913746285635774662874027316875727941402150695341917937887538497539757386088331342213812811393331342874096469562623208224588554637944536290940599906291693997757767310807149777514697576955629640949383376179195507031480847243480330937708647663977086681354403551041377448404222392962973873959001197942338871248441103151682970910613584381868657744893473118864216323024373217428785561091174276494920194669253857445554681133507795934460573507923925568295177688532195504714379012518163463845274364152575218875010098102577206591489820509315628186206225789486416688429256727076250592822423820391392645484099570052001157170013704835538142363188012284861170225577613735005347416206097788298882619110481670100102577113925843064476654340303704284438755800116549266708270084713898652628724015849616955499825592164403698086109041726764503038299569669381203007427335655117215650765456207858737140001292918724008796897006569526110054927246729163793020894638220939524318563702998446705663251161506908504098058505607282362096283403248141653134944749706093630020592980737412558515290120726349988219287218885022285182302137353833893645027685319302594472155332361333073694052374481327897254686707339477641537921977391953716033994072678785321641843378033054581733269753173336766894344996180130017483784211565872519431216119522559505377768768513236303523496766538886154063581782896039375433861324376646903263568322003820659179545203729564821103446914148201166119805450228906033071218292657631861078994031099292901003988178683971687660549593063408278629535871102538559224492669171745773022788756883111065232274963274938305873103171933116073877094937868785456451134508078580223448020856498707359587362735785963725541140884579708725842567151150467723425208424497906553753635027081013110131005385337316471871671491203684603155110096252471202688717095921628738782796152565025247762984360507241946055113027650688859355812451098733025944532865729778097578043377069956532227532221272439254015706211604507531013803447019864511035538703444513908898965449356347155815353676346545634314784434670810744501522311111594655746344883868409440773374853842912246315159323080227468990545236755179006634961599692662957274934923749447739627380248871672649849423181446168365357926417681085148024711007891220783797049313529720877522378750786214212142490583350833204670178993187386716721583455496454277605085593492246568084180788399687891718316352478288705606887308928213465523519895832092344545632572947638885160701122073800237584124821032034299003574719588252351245354747110950274441109720917286508082474282314072001318234365334470369648492370440140958912776009124796514495160222963018066391750936985303550413114505906790523110679715943259570172283861876912965504905838718358376406138705055961607248987809891385789001515261675655518783647339184482301460159589249670996715173076520735547287164890898823995862779938725491705236837601670862428302705321488955444113827302864234358443922675381058665479779434501320046695778580921241726531927136568769435329947445800769978037493944732264062297228839813155783904922241076607075611422367636121895101619893257470984554869494989492339058245773745419809213213967046808910527638997570183953072132584750217983769328177764671000850646166639899267344336022369374426124769842898217168163356869562610119127822473061102972870230921094597563202956005481443778122819145483399846867102815721152935033291033989122564252059783469574527303775132295939791416243079016000048529068102368163550723643217845932865363949041822815663283311855937668512598607766148256125893984708972619068548923775556149193044639131786653962129227987590725179361374626923147006447796454891931137295766137600679550660962317487904729595530996179721512545002092257517975399481673249381420516610865440863279751231329307342853217678313961257751496622719457919157698085697618864566822547759397151395969811531226987783657326853810799486083078138739275763060887811681103169156819235653188675417859663838781647567325024492319361913135593029421115773957044507345039021787152316787634958245360225602080590925901970423603370720468748147936788871014728931581365703361616953165039226892356320577405850697090656458233891027869880263207414340272935912484871355095531200214682301378405200242380696221106590795749420445246207666978228468664336921613878836227422412078562309313017280530219506265538713155087825513523446885947433893682219383725051134946549809253302494678215171806536782824237774414193086417540075131107358459461966568887545357516492657168811174680100886384910992458236138157421331930953711206000650555949507490769926888404262779372391976170644963748011936369126662613916896850732636519591461932432715950677394851240425078279902537654655172632027411182657167881291439909809604897071040565405015196193135714787248372341958885499612918811058820819355229800648224580834072155456959579551164781217995217736705493669914126215295815503129900836671652408933460640463606356678147547232917535426637072942977190186917004704383711946025228157650544427009406755293465464114433486251617469863375372001039569649786710153201920180529787870951837074987435623473962130598971928983778437729076264807062195548110898907625523839879227714433311979289190658962437925642585523139393311566908453282859914495902572456307808403711302898274109829214441952682863829947134335822077450157489803504160040688777378716716346254493120999837192127330604818559225323045414255506137064745518565480556417361855226962187252979448283485527381188765653854498826152087984994488785884840048969047555166939003375478962683603956281340720106780530510122987785216325521023802679315821057012580532244209788937695475586484646465560458681873264828720970874002764976487621416092004917403699327739962170587954841758076966552070135137509387389042465783744304177166435067802179127049606099798870202330644632200467600427253470225458755534114108722905712041823211790491511097754718999973268311317408668064029236620811814009575878087085628029174332171891054401320339603696505738831586758345510061276384733789571981412092759301111294507364300989151149210357627447451255774661115394101493073478894366390650956166251528019438718139262183966784783270627268113048831570620781299160822013709273600895031823366935830438238920648229504055511175190601621279688694883170594242239244985825340972130560481890666425180924109435992181671409999944989928600407813840794373101793753864959174478627485923759130887243335491924568119801256942904629861874028920017515309568017082942326892011195389398164588452391290506755347402632904775554393689271528273419655637920306431132210975516101288957911255892985983413098610674682862867788608718636239251873746684096926801094056978443082364322195444787962289221723689624851792256474303724771140318954940543876457811557122192837714505023949991471883091636563609869239912882782806265017681173308579742178174060833850468938632689054220884305563911520032715263270275003190416506226889536221517624089430993951913113869413871026784664714152736866499791966917721508283696573327774326934418556762887550631525564426762585590901044422139849338780509135600752469609467821827573235544437228579843875742552375137979840629543307900426151417513454903634630935188047269658100297072667053214882637002290854551558373880704987311849992583816552676474470386658093573160063135910552996897589245237830794902703762764926197981419117122604078733600849326080759888215064736868128820064361287822626463469171015425758443624287863057835131937845762631022151313678838473807891737209567363793739388414087748005159178049798746663436760418134872651632310039150091764564628262346841769184487177778876008783872902863102720063105608635704688342243338602957899163945467779165742194975757863662250206304436523551038024572159798714574721699640585716023866855266263970831054846466139032188730910099942229117815708104651619021708415484068614508569104267514609458696088540891637446610846805348482290581545558839786081244790506122935395459673781473146927864758710118258269157325293283625920408737543606311547282759865173681990363414314286562455271152297419536762841904985898786838806572971208941315366370461450185384681690174376223738234990823046188437377691498405490378071889929046290816988209411822875373965405381872991251499443217707273855316861743491958221913981484046445079773384254482329732631555991800989099900214744719906170669362687414205344702424285469321472718078929657655635747056229626860833703852110630621454360299630936587724310895355756485811551999228504721710343002067149048720998439526446355647825242888189601645572964145226802165647655110225422696229454130248907333413513355765297680029952796004561291809582530836603311416127570200671949784952313858040218203332286332061507026430363501405192439951332094752784011281009239269853097841356907452966276462316769915365852224763664913487172049452339689875228573441974037409838211545447952989144113099078350648692380155254383796241577281107876788266294013143419671612074216170362815819284307868827521318552037204033747598630634468877132436647306990458491469453817244114986833436071338709220182282108950788899998027477208769392624197842648317185752618445445859475936714912169198511856433766052224392080374992378727789666593735731840471242592982299815258315219362169159446914102648350309423417565568989369878733051359982567097228581059293277482607358102085388095155444997942224208031587608117155678322524838184618922762046119590620489368695058477693448460572224204035749592855797954647819320633814739919560925953789733796371548335357083539385553805875422187344088202650828806180394156813247339280077003551247822555809562106372670439773797995689310556768022661672415875051754801933578765612165977763538438145382657107963803960786727824880129980284913470987352761806024827484080343344158248126914227029669643687506249201241163699279870738296421959880781434061609423336398797988869152179420690061351106254322725609682677706304470208245798418164314247574044666581714578388609817657986728543135667173230525133567920627263192340097179128541171138576664179548989254069546196651516028330756770787946986008884065894272280509772572139577574750645009878208606512898631024551510656431903144068077374536462019340745310953816536260430399218976055967993509895908472129147542459317704448525589348743539315736643979324532473835117063976144415268406155651782259249971897130766061913290146122018378582344337554349106480527045614819515734122533075989996214518157869445438999594909012550965117092549223140909751809722054795093074366837074616347642198432718671988557662756946677433964889490096235514531168537045393788669623608507447314434412918385726439226819511266739000047060641162569732230452015834168507426027685586884615902675156728958258259953257516163124011447760735014088710906279925221135167196442821032411780967053190989423160794692821742282002527142523726016374181019506652961592792123088360306755030229366934102926773831381093953030858871269545110591066170408197073462918404674301429804804194075601486107543607577119567493918033209560019949462403679281637545496996577054551548034079918996937895694599025792670726127550150764387559631983225355172084347721383333622352107502013300377506742387234835076015769319653977478805569378265533858793214876841526671310360597005923641861391506331859755537228139758997816677285617736049104982024742571155533094803361188398284110368149358719706888693250558967296546002294963791813295587043012597910517765273294939768765104376892243149642241277071819293980492652424832556286345801221056627337966338463490113103249356336381515670165540243796537352054203598111234362537416918797718840431689406415813500398950592539970012567404142364633503667155782810411213631656382113541650526984053994882554889433118334048427747335091192397269945330461605345637633336279513472975383885985941124875274317462917509396681115206629979859100084912981148592505439592880235551092618840970389577248618764569631796342786441429054145122388365126966220339939007182876151623298778111199590424308108778508582479405721880397904501832041346069121139331105268575168612390339540882684245663553710500235990207449131651815655034270469147501688023514341635256500154957488916409929456612330789018741356534153863384748745994636688969567130303498341410241503476940584145037543841200250820252980328009216198139491450073258650769091120871764457341713980500213520293763514141593668647076996761370857151371319564495674633071427367181025550005929512209251696369801282012693789235647410135473662010481912237945244101512139829389989438346684588200950080914276706416780021591984506698527988331720727701995523993669328975530154585133810891942932938852104851682780761767130171343072352979988236385273586822687944300278374020356371083719387759636472935116138533967861886203279548474266008476470528846782358179061981300501412500040943632257165978807832512987977229586427167864862286357957796886973886588629361108331247032982493846022319108738421989712275389754774654398267932730864142546730160374099448151771886816651066109519558696467717224257024063369808790153506470560310270564375102031301704947720592135658975409684213440685655719120983605505962433591483190943360050210429272122847190739843545090375276263408889717793455138254446012622977579930039103104244301582309420722332561112306054113898290219808204245214076153878154092211057042152957431655109848305664017621202052551498616204260510532012812256543463468393066977788900401152581918198034417330454521185805157399391488126299672236253020764633846985053426078329430455761625916393465226082230378781319767262825336399498338685830334908157737434905405154002098679923641695689971045386602828425961143640076951971466994322312703792671283183603166223178487133915866986763663299838539160872644312950294815070096634519778441685475317710080684941829264617569739352021933162480779894258889444418876042570405465995338632153073210080074339509162252504181009118791830327522885075042913638429001546271151771723796297034247307199671908327289303602977029692971076176874126478963499163653791489328086438005755833092732919202430969287163278316016839131833366387345773784639776573083471417368343275800977530709335381253476389383982169143726937452036916857693368399596304749532831322955049841583341693277485977263687750364664147778049439023006094618610678370240485909124028013287068112012923518434025136072161725730748873278447072680674407592692164992246443921498802081592247412082420259823644357698731625269016785301345535231806669148404105904221839198796460698964112633562771358538761947166502219898697487798785625618279989098051389542776064289098401903573396984297741245996953149353577351444548364298105875872677662202752666846026491233207942825246010423069100978210110925958708723739341419537547617267652069320925251459346939733174360176195664052658337955341752331854688047371283324566597961908206873659590043620188612833549527917084532168629778786936367374290992985402164539776949628946656572323031631527167706945198357725085608276417879444478158590064759306981658923892433789153827817987518632060903748387049024991829916101547781905094944743237529520148318915744593645385037838364844275505547977818786809143191783838074815207572287998126256969654541892631008421521681720352247156146393717674273304801074782961242042643603505848140106526884814698714691416510830830907234260396872210826194131611039432290220846308523464055985662609492165428517808472009533099938441118923567580616976006086688875663639243860703731093755119842524313103688411266624494672943825737014466777934282469386764133974460340343016074496578344395205072289338082188175977367721448225715290174161889953224002082019305681910874784555340265154901736528887270176896806915431364821690550879871866243995802486640327214095381355636073276185405081460038857262353099575868804733483249094511561449800691123483661312017830418386704764666825992293988786552262684994455015092089992505743426734299905927227752961132574454310982689261519951675547407592227204531920721601977034281080464762542651198580861214486726499039912161468692002762190537421988307409644180769663530861511831157585622553374105537226726609351683625967767039984121695040698180247220999441801741966334104756329778952169963529352008582694424847622931270642338769032274623369617135507735809774203678354542322292078765920738466191925710970368715326587908141145432297199722617667193711277661212181172047092331584912853530188642180327035759122449120331677643684143948441897585616169942736462744932004717905134151419129480126564522111322493701628217618957876849195193259130584052389141754938252322092280762171630455548727970737463291845068158646396820432085882725415422005723086360887070193826110799258431681938495553722695944491830703384903799770095714379712448893874486566429626143538084859094138501947371015195878644377171685605231347468827565115085057618763975271876244522615635512999267446184631044368973543432721673824415118673313644064913053044093827192637499047011711806187904749958069297477075136919572169682041959079659527517939425672996151018066051431521090219541755000699164772685894190151526390853825764104929133419616656581859589496249557836284172623533700984962090934916665314038403650533763294399542520308567777692309574634880134022515101541244533753337688084294376459375915951407919500539133292212133306052527086522137849324054299897232782592551586691786402074808025688528006256793647715841584501421677126336421189892550503336025376949990012997494023809662455432559900660945071695165551533027812826257158610589092482607229707178859058623805410360788208994329516644713612258683075582486858537436094276884468891094846030709596515355382463317193938926533240087243273133211501172272550942458934276047882636127647111379467532813804143621180762040430247087412506230288233690480278416424054550503049212491471772759616405732476219855215400937599405843638050829748705798973119774917286995310447675341437922574122867687999663645983350645748264574073055148562438727208309279947414586424471597270852792671813450812880034960001158876900962586108158872220004142079484607078945039418127431591600642206507654751331744296895045442446470925762064400229215012825003181303468272302449996188828639477075599126962514490126457582694329316968860794068417934463988510365422982585486862823715911563732702963799727251944252955384655092077617478956585841983838995098885768746507588897019712947961734347491472037571258502332227518386035753727074899182754323426497066875222805958032947665829575517521309018187646702588817367069179503506250692030384841581713011284833757666647822332203931569090954768081475101064470142504231542026760793223440340824787612175862569992694745434199808040923777394936994794366771842958887121704491669516268143361405590584744698878139350137128792550017165923720348860698158981559237678296100807726090540002973556370139896852258049979840568665907492630388439361737851063041970061874959788268580869677242798722627833954651127045774574036520266437798359007402244488098826544172380212017401896290074149224358945529022432354156538739453222184596714406382796086147200555984031341803996335290062990616337256485965041451451435113264445918296945751083438639521081541631334344960002629587754040168050266533046218338971876918415340839263333698302211959938809552995274943264204459847107154765827404581066824653438658626282603360963267362950796550702246299306365628256462001086559002935633754019348862646837121452867404281312102128683042117243709507410965884323105727806857195803932050553442332672928253582796890981806077905599627381073234665099422322536729136295776996254197601536989894828928795134773463306145729567038401825203873129029327441048268926485065724099845696625303398426567506175348842445594368200311273036270735387794861769250040733863966351742943065112055800251151564084140984246684622372565371513684806974334306531544186944878958138592064186481704443742116901525378781898244204925218267182846742129099119881110535167719416511788573240615070513996529071325405796723247200510048278772624961842474621694648146730630452707436799070242463899691464025271974163628691619714603133061097090163031826441858511855530630777054770517148496092071180626170848003143675900455491627108593045455236178938088841582017688542247671101312157551489134324846173288953184808111207031360484692934919257765690885420484553763661373575212665097889346244372189615761404621469902276895575621519502522772281858863420373877917497313706224607588959259648357778043202308143879805489115389457176733870380248303377799787075753836427899224900756505016915581771944540835621351163377834316304667387065396357012050580066227282017963912759197650149952707586459649246447421398132356295668655150343737202846691137596111646106590700673944536866095191595683299272750095599513571533306505575962667506361603795626393338265278559503083069650678840255338396057930477274170001836931016034997894066972654673405517826047885888762352505795173239620239807762716438747750186466397427343797473161539928536983080877203675724642672382650838886313936879455189370558771026758058175820547074954105055186858395457597358845707027910584163330409428493561992090654683863548045247452335891253317888882867620037068013007240270819035600253213961065644236395693955997211220399035488074440654141484800563942493364078105686225205756000673674047281678157234308819373933725230571198236702479525267400846251448913130997100496256531862362376573789970271627837972588081834036251401534672363950090056144060389688797927933232542073625683263175546510648023429793676773097453654658011712496230479276219617415394225172140730645518807481088582183084688779744874291515260153261190561718225101886036571953510357836476342043609082942961131862501330963573634631580053116315640353164271964738118471868490384873218104468319718976690955645288007099309967272703321510587744045125320765339829779357435538868603843152863722807234856031809929290358139449047800802382606310706592191637715658002116500639646183057705752122087187670635331043492348755830836667440881110436264324623303467061750258906930543546295136620239992136674581732505715782165662310421797618685198088954329431596459246317158880607803626146021626421102487529494037503037617787982302775893449045164748627067087085857832723984414115579391511241133862925006037976173958850562634385975864398676825237627633627841054916041508722082349869139198168739896063769264157323730060900218160056626525093629697786075703547704126256024131940860043744459633399397683764666808365590259436472640060146190144297432192497775979764927213056849352643624139713341459056099192436130913917559079417748988592517258263363963597682389955514000401884964185782230914820648292042142987365470872607922291569649710146928042935061488793523801728637358700297887021532032276245282897154704106617422625040353153496280934034200100203956766474453251474015823543819682557876519547914781914540621804104839216065304562022005484976958719929905662058439221760403872089470656605187721888385184648406995228687836907409258715060800503457328027834977127547942285053438256488383009290240280311166962144951959675129929513315800465242859466686169694634185619213810507085628712382490136887909943792672148441492332259121939679747326734639155038627293490330507281982291447692924908875464042319748689592637540649321936165479617735506687535178244933721346308297766294701347798544281754732516996782608602359101180014920843439566433206158465498657889444717047991589563957523696387791696237859006579737782360844806744017186978390473280729420286222996893028431744134489309822910132909698103647964510187841644025329236872798898131865388195480778383402001457329319421224424842003833101136655134366907712030329727804635547915872835595570169776711395800646521934088673285620394766229986986214431496978971889193289572665329242199327610727491772328494236478841585615518219621932857950821168729678480880973570129273150380462403059631175522532750795640369379877021982824681872476762383283222389441178991722331219713506844517577784683304558759341740725677904011287008606968891021566492204994701639335147726002697784762245513854817014056581963468040307851521826981566747234091181405240061641317138516240709778843989634435842653603942670325908176269902860920337654110121143098105956266698657238302694742946499017005227513937113030497618554280400792020034055289372417912050979571479305385371765992478768608657739659468996178172019359354903107169564277444583252292160634413019642211521472475932572441368010461842775118618411143359705294746400912908812788674072882984005055293211424997095363883286579948187358401985115086760473661136222482142366774453677498475099745756518635857680633354649317791210391216335057559196747750243289929904793576170052261369071952884367687237046825850892684041697562467925722661812729699950952588390572096874816107505895113628448089035900587384087251304584692574770690836992900329556747810493245051087835108551717753912645799663109374848006486658576170132141618673912543147273262019836787012964688443532257727593984104542605357728156586860596775692535158214143559995753423769998344509357029138202968571585394770879315297617837344630083413341658523354500853999081440583393383034549486346164620894128942238673319277655275297700743451759565954363402883071255040559888543153444325511610698681447696933508595212213683590982541253358052228522525423034092933580501695452881287500957771209396551376818040840689287524048275311812148473111678986237996390510084813332936108858116175966737390007303534684392976952811233002967674000155086396984618827193754865882709746205557293094731451412034089008664259755718604599565005431180074714069151705134644861302240280877475529457766731062081626272384051500460057898011839559134649830110174770324894427190818167896172905558811349173254580932989251213163945902725410854320612915833938597057638019106300856291574571287365060929088037342952382402228656189204114945094892729557670284405703637898795191479436643480255538557931684842963549848347125280981983150237462910888820770468563341237671209593570891829544666324538472633193367125919002442286472720955664433687661754490006913168736846015298408447226726243156248208881037002153799279890070269577656726219307374399376922721163272878352383810249459493628882823688167483639828452453003578515434660395733199277019946201029399257359284139072376202718236691099042367714348911576884940604138905255735372546409517474719071502427680026090500701354231214556506846839235341802781544201356987252080352024539451529431633409314993965820511457066525647093175177593460899461558058933918533566683074462051076206475124327898288679333152259208776257211761761762715935760988080062902534931737519087113143671631746585034405005758427373915197185445377109579064831847125133328960482740990227908190208259348460100187079951517197847483808608153773761820578172378346177826784663239224905493284474087423965760890959346453191546543072003500422269573859174615446191831814555599292268344148302331610301034476136635320321622542265503998145059576690673494692082846801004771277067841522501852054040415738835941261608980166764484985578116989167778554368309498785351144373464189924275106668419475322506951960353887035641235014510084042876837733639634831326862061603857618985228198462724910455469915505414621899527085320441304564372174124708365367927695220841267922541384048586654544512991377403460321774861453534117164178681281521836545329106273999176421186908497992825672082024104142880449349215594564518047081209436752930806207078245933449567639765285118892618569242851264804310530048757604657430126735914227860225425616856611304274793330926624163107263167936272712972288086389692319870950935672746772393990642069722921532365347062357683419850898588683730734347153670137161890551949771490351243742131327017901473691783937244441397491450681888214909155805613948425090686343116241446487672181040741926634883596136534984548371307689590755664300938669932251263348633491333763394016847455308442156792521267113933732243556440761950576684071107463520464545885550359685128432750570973791198712968704406669989994710426234811286656719207148797334677254775450118119015825604147585692515098688150550131528020731380249268608358252796707287960135090131593650169342386510614870695971857620435485823004926992840031176346858470560065536668362309060607591999392588022742459152030840785082724943352607682754376318025150536397719869735936779264397100551676899598829594539242068083956732847213049633104151843158953234286542061548790103123025955802906514634208173644928500488184492060937343454950932490707117948498114154599860404423869145300151862980578206310574127278817900595987877509700770309201600601128127177267824364470362986227358390090124520914655668245694165501318433078656922840446595073723636726985978976531029939780486140110100390807899652025026131460653451694440221259575516017638294970471550245164686141122100822535297800627457414517691003740668213957534993088758649149378417057203973284794528482755750137262791789569353608220584912249697666700624032400752478411174479749426283957496881567308511663059354894681556939159045437543483421299884882208068914544421550705738802162192761127875675628772005661444400921837390507902114280419652614630059905995150151479507499302050170293784717783117885716823121616810779189277525748554616571608480197867502591475147502966057074666911124949965223500013206182257014473827327087473295100499562016082245021428271633933955792970751106223209694123827546463507456902282116030558188127149811956549057597456472274483717128997340736278507585722144580114786447610755480044547765352964365582983290812428500489034907737920783813471063471056688466995416692030815460217456310469188342417721591991970523432687723159906323159574548655841679377784378360906115166181192407584059126742122453439358995357049105067223395153083712455870494670765355227826671097203890297311033578591942422366791678438330395695818395938846119162467167642361299176049590827517382290152818545990212070913322000722298479381298253972606427827542126621300707414562699597213923754285631918538781370785176270393064914580880231692865850747846950251305435943311476400939936778267793412336364852287160868642432088160876829267107052655844097208665806717912599469119162586265771174726994933900062371422581688213048227238844985125513533795849353409368706362664246541060293239231493696101380280510418839183122510518408047254301895494292186868654678598602474055575321297092808474510038923914844316095738786551784309386214904705613514697491830042811389865938806060973527197458401706226490046082894716006094812930379478964788716360846479054842171950711973182801614156694191255490738597310179516449473555874596599897234638850257384861724032107388341309754706848248090777858562404736989531464162667128879241841996853591635498034028211318511698159554736400354847453401292362967143332690210176684855988405728742918483427024345043328074927980050161677088627345954971555448702863755175978041239466635513446654023007221611110566262408524832925828507329219057225756378867508366823667644561041158728718310315824078529721279737985899618210573026886315010699599917788977344371663713365275186521317054601489377848788680731356171210918554739977131346794395957043580959993077322261440150670568270695767304806210241696352972208819127130256765924978853940280608429414475055071573704113247510223227369876229489600040906365395556511800089743683876785922761336069070783656630818743056082130678654692329634027683762140675669885548830336144148293694663465379746998007379263857209650759270655781784324836756388433976904276558713097405845524092337293960917594866751429042688465280612943757943419034007729643629955606112912663911274341122249614722353416794050800918389505642937767174847018349905435465940214211621424539045101125683749989036909025346907446736407461399806203177177839607920733961411192319872236768220671133958444935774650986246765945888991505345311622897145371125678996509395493017406943342520010770067859836790019747836563652699704739643643840613774006297696778817171624250116459911719064683919943798124060942342067745146011574507462977140713632868625692636799852243707926923762929193771659297363351973190490353368266989059993520278929101498915536842190055857718063876374176001383053996073669268754328201674269985165080617707961501058606833513248323564178551869390371119042407902279213611434539717506879240596179170298408412529265686638758043274096647094195029202434081072974095706087868777792511250182925723438492320617889137680496268964206072741552193916586684993312787315413228086409317922997332402420612144049633540498327299163178401559773256569242929946323870255751457772588131352569567253578247376627829493757629914947911204063580390822980581200880256917435116083652236844398074614549132897272238437090129613076842589756434356614476852725715205686085907580299856325130267972993687766733115671643237471097358031393658543565374842024299615907704287815722097789561909299954261903729320823276911382294534688309975062557347840161053025915984957338133353200322301987902232271563712370296677253322387810143686761516122990247039193449883904574735839028764529927294790802579077022164019689867664740292986163210800072214036926393133119711070668401654863455367114616166787535955007426142580698470613931648421215109225939693251289095951801580619974491359960908356727688645854411299141604900909355684408295202389686194462481080896703502083846234999559318967403443011514413972286248652667042553612366213481141661848376069340164587062442767526264890658144977075046411913354139290539964285642700486466062118844282576083599239634243641725245670677979574527692971102555000731964195354747379588701880277762317842745071614374825363721334222623373948892879598071405559333557833672874418072600080943213639133413124652195890053975245997069506307654564333384097702258943605929727064568735548104007472650358052990024807987955979753454738011274322496733061228175610915797602717634812763512646355785353559608194281251098689768459156446064826565840767793537120064523202732911006655967529865226324940661975624448745857212040158414822013188063060814908063895939000583631997526941359035038795143745579855848910865846144285226794818160422031177742596837098045601681732012860551696037515951390920669777185366856774884352269190890423782766482423533518494402812906425121860866973307014870131962204080362525740544878892902784766548368530288342293222957323914737680807714644113506033318387014759421165195527985553541287418743018098418257078749376054947632684690512820196915164282372621609762820588664617826661621168633029323196126850620648599401515226825378696221194509779207173848488450994377906557841318465594068243096569872907484767145925928133527631977670594838806740978575559424772713839588440472437841795133019568830144479239716825015287242313793649363923131205016492057822813783242161379395920904400423253381194167625604880895649835342995897447807647856828255813020049828502336214012646797651926235038416212634753958019628883827180431833081936423417052519393663111218460529035673362824162864497357965863757109707877525472678649545092550452533807324517587234384925576218446924518329744235682555830805737920230809672454238769667108030242671450765072157917905163375423650921478963510329825355332148105803753055464270587318866957661747537657985529969196978448109691152869787434802304719769967526089471303441971136346136960753335972495416669331727429355664843576730925956038003944025436769896186889409746689350194332186886232071780755572470077439661409238092505624557046508939394107506501637516424222367757830845765295798904943694950182239939101019980708207566603442626587222358080051281278990745573312481887178709296575019294575605402409339830417995439502924466996172789369404985049427905674108085861227503024045857129600034826264351598558694571351389880566955727764856255632926545781286950054330027499136412268727956219569034059029209335671005498127382753423727331860524245229683649656141592473365543465201150024400745605729562500223656431306862413726792521655783470623385878932469255109483661325450600700758855338456084578994138352808279784214622750775539702270542436166539951745797855486276688313616396941680251972701644633237241336843740933832094420538034779887321937855325818012013904869243401648515906406870751344708866908852236727122032497856166135835819153936788806696655054633947964290677548781722849058599091181811747461398881940699323286587583647235334392132282076157723318861841031677449948567626959524710349607368908251505431375959418055909643397785402295571396583872147956878297041216288574691445704751692029402147932854168985361031488204561645368774839504407364574095054622898289811561544556414763357004794245786943905444106294160937893580792141659624871825466218712818085724954656628413846217131374948174759698279948458716366613062695907224864592425628844349806515865842846676556026399997278813538681730902461367794167412397374327430776344082731227596079354277130376732647877942123663987180261733333082526271249669740709823647187757582182437053777440097153293303904279715741226610504784752934510397530223971235521828267277347128334519561085679397910941445747640909019977420886537680889655159075256443688392863747480399148685332972494926079560664927143555061797616804576856323824777934800539730204768993730398852669327279066413152343833803453266230739622526536200496223785115403793635314330960182127996358306908614059679813022265803412013367892028206130182985419607936062380897517332840521641873315306997518533276328499389098111910072198716022526844209254746531146687575492080027513475397774553522388159051296777498204820763235724499764393696851506508466512174213204152700956067445733986849449564705005445761326830129404462097013435638581043167211348661932860663961776594895205269591218398191828227565319141652425789353735205583546421148544983251818320447546617123465634037300634975593387973209394817639148098649881054022918546363640619836701042108293522292625818730686394701005008084275675689657402316286816521018843416032650229229163659909795327900449835036000654836296785983734193886994427346678736419243657403785267951967884060218349552072680918000302195466816797415442573854249032299764737291170708308479862868226099671298040063608805706452276916833094667122267060642689283914788377979434417354605954555496452648846487688658891760045653205721982290835294157567573630618712666423516928707806302715569156791371105749452382126895917912004884499656165411875554001420780066601286349532212633267643544069226497181066920433171553286464245645248026828697793541414413233267850828871477663026256252031032164867753092308511107466788142894787502314345011508392028584307251083864729543101137382590467894579864754560150319635807736925853791594358175046723687729224082404701248655418735939820389895149497234686305005626552740736769783278452196853583300254847959279751843671930235433042533659957103490170430193212757101454429856382214807219286357127073659519426192228255651934044483054424355022944021942253428668595853096974057635214836067008692701994344027525418119703197884114631204227919976261614049221919610107760833969030202892789374814084311870017608972748443821293332395226769333726040086592520346489017235075398114934398265577300951284873187168773225254184360060026190638220709214075936907039572342224968185417659521847344314597136819974337852638504392147856910149227123119136276515320757249252169141862379789402684641828593683317903953110211774198375499166028867103467620110845219250414965695729979964030335190701685657906106048033006331644908749031628132135143779912090511110287023628447634223131458564963919135853949140294012744801987596289502326794691166027540154217772846450666357873313236693308359671248108800516905215182727500738871088278160230816489947802273615920012033114411723201418604375509138815436500022779355277725483304510321215946212536376958223589173482170908687943704451135966443879256473778809674187424381464031415015389851444704212707890236414082870580944007239254836220024890725716482130117329276430122647663117757842444569089782474985356057968537670034645576715994843560040101391324411353806323018705255573209874854308051050500885491423606526572758396424355145747796580963575554980456284327981638034871351152472678289131387745061523249894989584366908334109267504515748488343288893880970891663565917017404120890912418868605126515125209962705917795189856524759054783918580356175116158170379105735845211287188451047399243579702873067098059410542762595515722853749019523312244693702125225929132614208155203872150258341446626604781101806646485542609878565736911039539426513435246199865832469879384066245183772032507835265507270574516369648750370738845473947798252722794788744046813081017207074165540796305746798066312740010819783212828124720220739961707207729682639222690824122568156046553815415766725176982703093100568978876068267809220468841562149233828722407152876136059254091283891242906981956727689928859142366079177906212716708466522098342392430898083688673231692671453962228168900229075357638525284204780886275715375307920146636705607813596131202974090984931973114447198760832169169586862018496002683398145943191025729185740960948686247426002911308292489066881919083415793597692549200451491977620036848630140786043596158298598282001209499133504476965474238891765262329108841508997583608365266663977654447092061698151936608327699077024717114963786322029815010497989538846433813076222489593866893931464513482300262177816852930861826986257817172688190454251476232929869920120300120886078939999515426948526195504837306083356948524774364526385405943099600422658492489618355629444512225483305325049669977133005185991958656673499705980337512328268600892250647742174716639490486604422388417821670305203278853552633970152688219770531115764409578192188618546850645438118922942751698868737579947715792265426242503068318824589020094547298539280459493483173653301223045571426528905317463929309970503006022482745843045651925608100572161463557316952439741857987272666583649010186434249112836060962878765974844479026285105115571815558550257534895890096514399645898790645901045700082874910801207615897550894964319093321754344429673782175975025402722999735074346084695032739118290659756662375933517327198956208870551585561035500937309396731602423305352549671550791053197008330163081307639186866685001278144425360363635734917248772188779328331324909361323562606993818574422505402539464903868517604654401840328166832548211723489972195235476459342812506939082796253833914487748432170419305910243639015200474297683288134307165114217275541940825429198524172827539066897608151169676644810763371419231274155188221643001221085450349037942993169712144541418975975666518872665934283736828924264126983178455184874923684712831719479585281600617243358199197709254600714261254023624995546466091156922292494731802895288312154132028127917264107200239759869852024684626620785376855417757060055800468054692997426858266490242683428794879596208319366018362760455328497588239495960250221127042078150385468261195008675805870191226495338003673482653824852379648785863893306515244071541606024337302847306681399977534887967202374065868782767878843085254384691904408912685577518091474238536702742165874471012097044324015880743884023414119049842053109204702481117334968288935896286193861101877747507923531191105397860042029957768859389745352787108235578501707209870422398820951079377383819954975225837696791869729888578177935824308818494481059385423847111241350813303569736959503719584151976386046364205958707991411700237516908340333484330572087593302574269149884071049157076022765449778332129304530059310928245011294844399330786872035132903719006601120540426039532652354381765977511066591183589209315200616008766419895486053637591610004965639812523307979390888374285261181142372223406931486012304164418180050710657537887372578583432993060071940731173713017065153416061507941387207219286862663905693461826106998958103710097521680662550750036225525466805564439241657485067942635010126951779338376565495890313949299184490891659499098669055191371015736011973845490275019492190720191112967679350797186931584835789323881143245962556499538320956981559735250700733479587189791032813273896726854836480540001532209373682943404993936642204123514751871964531086743306154587620518124552564996700692536642308671683358410309292958347288465861364555066131047466505033908284459109239407163151420626488741945993096002898177788419590474733380776523084649678653237187972209190772831143542945150244327455490332075624928006181624565328077950242133845504949086163399773111954656007781431038015870678845019815339530946134731286378850816846529344279506738451146244256786458096575376255918916987524687927001371103527934848145259811573115795398363622362109620156248001628804581855761196556449955123152685383696609137313213346669850447227775648072276260245883541924756306429277418436137226377985204346961747758062463509826646341753532122299808741778028491619562307617888504341689144706174576928469375355540494070667808319699609045459049591061383617336879175130816484863465743280591029250837997419432322809497266814788001678394511090167962976860209112355759480200442758586670954225952492902322085885115271381753856017745800384104927767044776143818302064292989546893754726279564362004973049270648557442325778505691268694038927084862170587873105554188421186923456366868105939384694825932602314684378386053298226134453050628440065282559050747518484314439577413275541414505924679760798277383946260156246980731865906843891885976207989613705880251235618821433274387818255157675537145898670274847251713692141653015721570156560113682468980095950796105414721461902524684180128720724631289198264977230280431953229986794855795091873747713811496143070056160123223151417877754069576768106918565169422820278255362777039514625565806809163400094624730549597699826618723077388756972260832878126662026284182055585422709621800553361314404806062711149718449908899935561325623290620538670355242974549053234222918504977465997232970486396162418050534517994166110314654754659650289596945157043276565551938964581697422052986115989828674535136602762078496915996348250222314471590490520352953090450672535019643189999324856916218882560008897820988915909482083166172471431287608082074215058231640779796045417466318662931134575101773874468945555503742191304604301488325589116290382289053028664938395256606860945462555812680774655382017490210828573153375496545048571056679795037992289830961795653271132541906312508715722504525100812775057631092505575223225400119936798087584225141882667732420066074616299765244812679549895981299885241533660125773566432709238035163675955490665577984842833205912040462587637947949097290228836517065112679700148910773419228887667722846825855510129045380496473094718650123270811350284376209013797184856821241613423770172124843553076274414935431708398461464281868877080365962617498133838435765869787705484292854768613748999807790464451440434853566869482039586208225645111915788121681201091800779502686074774607858755885173968919013060207571819061187084568383232371934083298476124925006916970537205337635350096178886346933653202966062294127177357054558605242142328950712103690810696882710983814914985860444091274052176919417590631467992790303061230258369414631316795490410703089187681515857647215659695496709391208811018041254499174898423720567085658187654709630166732172448595473311095904423313685134445878709976658528522753214596830634810686945837109874880175883550014088827320396063825890134082115117619315296663934776459205064041427127689967305406886823610568576692825848800239342993169380093894411485547576370846694540103827040009787387044958626949262924206370569136500724405331569492211930526784895490549237832304051669937389343264019267610453308274134504974020927636290656568399932623921916900202200703725769212701869290480393701834157699676111320162214982116296496901776797659246807986500730997445349301726183816338571202094968160632378007748876564471769068961850890069372769997109884672790894059266946913309153509331265402208669948358987668743225265993857821614071631530702192367752288208449135945331215947414427030467253705052659648559106996684501843237143180315151405022506555540643184718789291457696358787381200875473864162042682767836836437030127883840013598375104975083434426762615439693414449063460265513337250061277282047295239155283796196314869023169863328869160997398632086985228675662243054390085545652874899386994493665177204275738270418822598534772839834788393884275577374575450387362847483300335723724826800990330124633597043105831432190125046697341278363498332259932122686886340514268052850682036711514746416970172235464330112631435782448683174232873410148015919355084205938078143382912905516423427252131881631481946847091690653461685729566845232556487101592977522821440712529802886782948925728534137096871617223733883133792346565275876279927578807987898506627444844486471775562939432782994528311128163269974485975273043557180574609151459891452009831336772438773940334620128867650321318313108493579971917151814730113329104592744748546058550300882097732307408472484895168500490434254052820050775062247407273032311148633847395172358267724666286317752571553206899195650464191298710807656013522284305917013186310845279669331688546750721638361585790969393495818948282141111183199810985976399865870982690037832846647616035594517572792240973607711443267413340587634071453617126652460445556662516601097967526584891648266460624028159074710571766704343104460111129941750942033396939800921404523706620891720981436852781598032671364157420814662876312074796990348741269991564374104366258915895255232556957051343069394999965144222142273063178735783865987813778299527004749982419189296238362002737071114501461651150638118035442338283026920965729862732424647815836210448331798480077501886510581227105328602952076799714819329579217271531994245477020628562486717188933677757002284440180636569213255636776929292195476347905847971220409172287181042943025884552602613469569103624924382552934864636591940082103312333575340835782179287145412659517154450690984281921721193453997205582416302598943999544219458284060158235348622318324288616137945756195178636178963325117856133476179861058428133079295048577851478871492898896598137488602402619843694726590046151512868548523297076364742690897754040748161409576456046995337453526492666752484811143758630433978068641239792833272943892403199619200147651329196453828482308677994605632271260363042546062682882233914424356943273348497686014102508235352382003156161018992991258847091187886185133229611672961722034056689092664642173239365050749025506998448137131451834158772665551479179193880847221130723837710219636112434104381277472654945742578510439757089301441764367519823601908078793398054626970166416043033799952995710806877262763250232477855691556534911367413696351045032768071477953395294281984222271612847898760280425724346067464657249219668259538652430653735505653504130966253003386631601975704866246762026303074442887044928221558759629721151869674981038073911583084626889844683600057787606978974944281325311195384738025456920940002020853957696262851041063665863578214046236653350627827932815462762227514179175430980589516841835027344221834755363580765293464131082018746160145632534263061590907303454706335873147696079913137788357781571655990266325934959905399264359470289643815784759848078493656985160786012896569241468413375239818239232413557996855347444905153443006814758550452592592474231313099561156414197277940137676431229635671730889147718912441259293704101298818641481360804466400126755429722440294581488072418562891242181838917566674774787947947894335333768104353873144921431755975665280408296340370170505061435754077131434471283511168458132139982667410916649447458228448029520702158499623730862778394811440681136804801875103275506785885056781260469950405174128653792763125046158907946713241037045967452743543013649206970482564670032220955055337229206806816386889232006609226084167373533466313266651379756792183281160079989380865248146479231464255250517521830751229476460787055623461928278117794118661469821788349818002924295854894712882820250170847873513679522909593471096474118492234888486503187293038257668705815455914686037337919872037309430603641801510946276931200531133115809116163711207241250224460750194783243001484068847661324069321304270943279688216115552490693455098858744873144955118798334732740748687168532818911041430944287722641108148094768293023122830432089296027838028383077952639141677019628854180474243101852864400052262663423217343560273460680608967845662889305243661603322429414653933301486891342053633957292189824745423811767070125185690225288185679231296542488565198974531831794061098586681942037700265315061331065011876894585451073736947040481193152639816970220474589100862784747039486874779926979225704859725122762500961082004419300757057003044587823234583041387852179512334626076189822581774294325498214209215503194873229661352058858838240692452818801898609871567338756450257159475328586134549263250534369660334761942672548490833070725211888035020550451023400161405574283028054416180329512793421455026970744655884637482354949067742944774990435040579354036162556257822871602415185911405434506861754095132729693343402132748845132039568812572563422260382307084388138933307783518118257718173218484556383398320267396916210818602223680199354317026720291026315439748855109930128687904791267615833007565734913676615147042299172449272848885857019350620433928112790080459476350126939699438678907141908600515154528091055694314296023405677495338737239488255236941527020502132096608030667880914099236458326354757180793463959029951476507395217005395436664171176413952837479103152657891935192281014490271134406970749264766606897951820007849561104237959765460202191440133316415769105086295189384916791924962019224421593209840519515771369117644335841714778393167375119829677359527254825010823221092705984108171735384544399483303758949767885376464165864496935928452805223647565245059558388320832711175454961810629825362723732889530458781360161988166874815010975019808865463895476267968946112582359811989829107708187737306481754629398534586412872760497721643621047893814874832528785557457654824158228608147063375656538383970249210469856682270195629928118339486797440111920474297602143524928345958037942640501038363876375656178477530979832728499738391323353835350074973587524137774061950252997144016218459630704094375387360440131748349835296320927919871063360761381738493028268522116433023849840314507541686079084098927209419538732460767778041995968588624264962869586091786056007527244235335115600919469751740991894133257199712771801344346665302390405570286035615428242719377631347878647852670680352577757004884080962825019104503952491150175308429474642762777918628315020244966783001512473518285642395962261663261189956576764738853451395426788552283933597569984686562725193981151059931809917886928243019460162464407903539455998133644849663555997607246927432300229881643835711180265887918998926429614232693210544271053067593087717382504743073639261127523927338769150399634846639853969878865737409438951427682954095758981351998492779734782387268062182889165294008383979433458204879801702206604334737176341411494002605036982246680892041067614471316798748812428196207947251254770900329184440410193546355739079242509687772828131524795422134897202763591419754655627258483377401133248610738679915384051378624298976931322519633080000791750657811823801193545623687093322538100069503686044587127019891238135647433207732505708355911207456251583928760512926593768594898938247396261162714242515341695334808135856102273642909589375280995571161289587681141955491572977874608914904474486791143929407834332573127759510557154422385513574305080963087753841620262479744752087873507687490826661041454707537230746909887916386630337172324459494729050242848344428465129676758517455244297823909988519380308693692573589702055341161753706616800509840267196681777808053036672258239269810264384461954761174480333836417379372298512903596882307419305577268340765150757309275067331976502830143580406347455187768656232932024774403104152608254904605109664514260946967993219363968269695953974435656013781083904858851118134802797494169797201798560247905659657443759318263592337633532097826638820663677256938372437716909648309127360443177211409030265861946637498304928766760678701619635979473466391364718244904746796076802286484231873493622681608278904705126784251731828041836270269612591490406161914229247648222143362458547069444986698791598862126649035134080853695830939675688000519006607017478392392385653561319225468860539790626351558062435139233213448056316042316737349660115037930816065585223220602685280996236482443001908319384986762460145353972518144894612962354225544450913181195712907758836188981789065783217018775071692706430399931896737043655587675052530805388873748344799178180801514187922931760978228419253766899839880801021273233385058003057292834749179904605486907456708480979361494859052217870457176737595960630933366691430440626279738610462114537924953574423657313514023036779207083787372817115587682112843395124731012064207182256343314562141871584741379680478153222784622193297432023788105470225306417323434864200424956765623974799027319632816023601601261410074741298287805699422688384837070077387652657103564886700124591861297006011448886543329455030554464717497925308231576740651594251568768625859472043974077573190364597650638425520228107891908634737818552917779899444348849230206725056358825749986235512155334351274720542513712736335090663163472155926291754134295544632818737561030738487244650312418698292207892221047505341297605523153089264707803297379486444542456483328155884687213349526556365897313585480838738544925268493202498935575759129232163859323534232660561522064127148183071418764917516147353363798453637331134878266550363477750440785676704474866561373446864125981489984134122156347647369516012573069373720291761543040281406906533938699064436859426995619613961773125791597095624509067517891800008543085023061499069998580583775153207957040200743835576169785303263995198096876698939895989037963779098398496661484910718226832785630709462836125500797229199995383716688906316526282352194859188315725260564199042858544928485437694707793776124370750157724779040098733674100181089530974020023742216383837910056901331827100874171381792411118524507498531531441107809265455867045606190217536357230480549994082065257796671845268794236852649504815639175556302178385909869413007626528050291565724359238788638932571404363449038152276707432509433860177617517812196451719014876967487360594415784388923560789151578558718933019653652559917726230161259168292210371426092530473727555461517139389869815899193802789656159825109266810413069806832603402282515230933291087488566308200342502509127651363283353252415348168343212792393650110671898526034176686722790297627141754618329229026435277095076527661866596078237778010166888257176699960776358636058354962831245345821810284527790117903887948967303962371005265733516659552403498461839995263374295578396115332111105739313014117536934851609060087150816803529260608209469765276456057293794103695843978426634977641730983910799887699363389344320088539921477958931355246753242479253635191673212667600767466699365932510907365758866702444747441303150738807799915970732125277053977691686068165988285934759707154735954618976590337246466847342052111928750988565627722652120662927813774190508461057573742296623194565710328101374081733132488932836782627572083750995795795333599548033958165393120578808632403980262361509494152171422463052234073350211475393195015860222929898512446629885552390324408543685990511547072067783385169509519490432452144028015633431277183601170075466847596248626117266885327772553836298791555232132043978774522995463166128011437907604441884774090473838931012680784465895573970416357741215157950004873723205866850977261201186406239548937164291167832705508901650300148248694859497735010773346876301199629058261559431712644688158900877693945969736325493369247098132454500287438268115267184552372590477299440807992146322011099876512155017397455651959319069944849914831066673099360209019940121451638917613578822301021336042316910371732730323013314903095091871045227642254457542966919898919412579918355281619119489237602326024164354549722695478136193732296772370339193270005449231331423355028772704416453582330366595799394186169649686675467640063036291833640702355987272269186603456368844472974451441730018682234825994559877595538897929160941122319746124828737807946185157519693476664723988650360841361862102975735288731139268568052779997578844025138842549123327648134336965486069761577025841391367717840118405070006275712175076171584660101409168716869445352608592981546254017825903254584386095576697666547763885323008434120418341539758961875130109415010562661951963888660535156676714655455788164690737568310855225143494987647765546769075920376723098813981767871851277281424650388719232906500018995207979973258356514620327255482934402915203091580021923651974939776965836526746567442977200471206986669104764079760957506093384617929470210551935430175942167858298775485285351986876484714952954669713450194556514418358771447754754516450725278214381726420042016988942191241725605807924277774152025178523463455067756425350443002029892435069418090527881127439188802083220124374322201773868246956132328639488899723619989882373097021591842536186988988243521891732049136556923502593338195559575090278302867051799288843001647725824454050789288605934890056406803026307678840699332953369294933543927385281108025830946712456311074834094914997929084210764675973385016398955039863604903814077398121302789540636789235664878277727213310519211883578159017068488389636317004226897820310694537237785779007484770139817961727919850353676159526818414549979224266531125396770574061659376293630062319006880785172315985951840742497076531064003101244442224701861900026417636219708865224693194853467040645511432372291358244768292041050092547020602008411879280147180236086585209653319757660939287104866752304643852416533816564220617520963986792983649306276129784103763274766554229819473958321110809994086877816746216672442106067775277399596197245784071197475172112814874698241398937605893655043190085882280863210972366543914057642064766347558457907400449090770937897068243473377870841237638670854957632512746138951656951786248697867884080726722139988658212715110630319347567850066869587092780555433868248954946752117619194544686688665676365591204519881802701912099960106979045042907000100309096696759466789632244549603063757851807972746387630655630538674511078536492047271348431907963714736841696489877969316240919882813069801102877923220222878664156254577682408477286823279637778407384603535621478357454750145442183227667863030007831932094356327764284574726008713873929175882423538265768359526090050994773087174242530349441220765028627272479280973970791604551766939264532839580878595078826031430474930993554292343948571690397444047841283926959775727931416000361787891491133095438132842405680283905445694473611906358358577240679010808428398275905463424003143626011489132802088284222652615215372665979657547423633137146514429891263537440779653564177402239736821998862020023108550274227151421882274214635645873588871700231485339941181470856934826172757743691019581789043812311703661009815245617764285286860504692290871405011451908056758001555928331598590049764385292748259375917873519068680797332485755486430899649014956470570036200334321083069394886326798891972599057642700211714589831627952814782634845215651122358748046851459332366339941176704102995936231231548658652516266158909518951820462435633535444668986056959697997258294660880624032337591384436723028686687457989951575406777664038431071665194144455691077953913334100521615231929938465189115804654083923239213149740938470209942152218931630174217858669937977099872694614643002032235800496079121751297271590854390361771567694960992547230782838256463851212701368447006888469290988811464420956179620451346615060351514672329863786652653867811609698794274177249056291463002740303351481413043884557654588872517928764685437988689992309494535215486818790654670434346526471672981662174908113757340787463762597182861538712787029665512355796066379779403143503287819716390695829266534261257746560968970695344016678369785933455781651330615953586263858937906235596865672837420999131197299744962528856157060852101439939268841443560894021320341990544514734665123297266617860020882030790429068176496476407506660535184133124627420055884420848221647374032672700157002834538811284737077103867404533713715434408642781245722211451682126888527407862153452120252208490040822739950626819116863774765956108692835401335560199262720141696882846198110594889520395897262082545942697541997406434785803401784639542355446140617201583398660919477358232142814928533937814120729266626768457000969365595356754632600199006987081243812703674773032306470090086258276767800349746799501117901755942382755143372401818593217476407986637537236592890871671540088458617945966356847497134771065424967138270649132341042628653901750585373386580644320758214915395272399388429598882869336906784945615172608664929838509357490015877240672238113433589559137598270343924610077817984332797692693830598866886729092595787169243967333194700414857847176570609272183646772989824388149188136980867176368708223883510871132788946903294254572507176232314105066828500244575060062983195923865933098954141573293680963246696109937178989078706858549365532042401618915843324768856135989474192238066991095044468445598566571473401997966481943654373671805512748307906813444323125646025950290357241034299538731119446345687640312403940515686805248905892419160670512803515721161103047303131565482321310111927869941276876875683563795801211303542564432791455680310875234544557149230020423814839887544980183115857797301038539041479368980288923837818900049495237969100022524717108998096466944919355645135146052922874216420593074713549005381326679843779303816312326199801318926034465241588063815899746159553749246956611043543036266537348687810467729265594555144584466311976489006626901926797244503137594147240075233309360144366697058758257439427458025830244708720545780050298768033309404239338434588914004815732876287090651020233477811605816987390992959922733078317255742329689653904635164053043898927994528122461581781713368905139471831882859318644995150580385644332940212019305227440226328576947217349285496298064875762341244646393277600779798455307478229734347861071929968284055660287492138476649367866161580837276294422279142859052791836335295303354734542427044711218709273538881035004039955453720756388051965984557263076178063343624398244362607000882677966024727754282470247769189212440209479283153907226210522040983620582909512821787920597057835945897155506152867906799118415035771017027133212365711355018227348957582917830030507636320567226961774058283103729461498476157560119560309551453399456864725685460165563866540991753848216716270944711198862854169114802290648614243518034467812561448198257394487313889231565230277000435527100619744135583969762601647071936526991449611045639134298709363501885864194268628921573234809937954750948070962810611599108758407823226759446534514889121667199714568630248411687050493777368816352753064330131990684132016646630163821289894539451483728568330834964320684754669330226829657791832307043007127764751494623425704914520464592944715967329952787621060648356005419807215043480833261819215585983426179095609358860240053984389044837551554199356396512384033101183996576346099071086277898344581783331836957870862189453839154289988832998352944828375810284262040579985727679534586937434415932441051181840306354269624228499780215365224199190562649016333797560381457753303075037214975042614663021418067406441544571332909736313261275889205766084292625377267315363249165169412896265784647153898761926595998463222081289626097579695912934615643003848645098203951940958281804619425607459971626772430636707495295985168334470069309410536362282388105902644267246525438988316321500058529820704433155083779274654307689018329403910754304035668703328767371354281147425067181461265801955227546326637011145971907503260682860267835278801159487468162999405099704256310883678485954548365324745811830484708173109469915134965492294368845675377702947472704107171795076461168215355567723613701124598922938017149421411986771843491099687043331271483207557839997798768503677977660298544741978422156174258301568311922007391040961013805869794611946429101952982608029554250294093235595656994043055813737793165532344702748785001093182107227010781643111992267291666355618711483412923902883401442444543518578139502082892362954472914813832379245776684066631225779802172971397614061850914598567426752649165338669326926553902312546180229348740984719396214679150493217302663212161608856375873373124137248652972970155072638570627981790188192830988683572964248945140019720617104872641797013902460105349428323163857205102844795145435199642190642167512816156172000645182837514306550896328986791739872005293073215794631081839707145427730404260610666382921428606629980271955619385538764761120045494188220580291490817357009634484762686817970486913021717773975661769674528395446407051178913374575396726887648759067956258263130420992487357174593171285964710794013097098843933071963375526392679352584618613065443894518008293805771229074370414890332435100912736628208613617884053752787323107287422612430335530517806692173574546130692111661413481446663928431354528245593476825805651665888874362402228103738057286966772905307154602065990066760812850048894476053508887294122681211926933223657606552360651992444658283999250037424545232343889480860604055922576238141250431780591029417190233007227572360664241962382833376627843308471152066798758300363543151563651271989960254688440472641010527046190566601702807800961257342689948169620960812586512579471099471678777913281571430956292705459093364015974578697401769569733403124142567077228693934409139838113122210146312243776582733250364509582636172941217475705288220612107197805017696636480230038715016206030322303995198403882718310454898055284707386902539812417355801413610820942562613788965148828490170352426342173647619666935455118969086715929175597576641821504782149676456714416229094397918023082208762241080534914563548277915084205283140375389729799097063567582842859832171311773864663903506889326443244806578974126855878720522623930661309121196343179745660717066314514720711648182469660127164516029002913230386780762117693628999290352577909745794693964000320859773030305426372393662909083296799362177989555743339960344889812797446842236687888731726396807648207259069173196750207527174801379757350857300201938498736662092833355526386194199841436001092454527180989390453901228699563977555472834058278177671890829182395422257320134321214111805472041510685767092577025816039119362542782465662615825706881684844605875022020758278110894104946884273974260769814119719551283729625622691730308483422862591231731447470887102641030328186094743846405266518981465791388496612852916898868814688374265501095324577104881401050552107654493294059389776510836276590934597068455361564765046150961604309452561260124290849174052975242741733324903402678047767918772611357749453237382810038163208412263492021810124194406632091116011828014128474706792694544163826197159696641915180772668696722384599890758451197772226270148289459502367857144018782442795873213093257163579325568782357755782218127648494472166080182180953176700998147610764975340368437404028605835709927953981288888110493862444120120862728387926554639268397660901020686097077813256920503892844043480818492567237809342684198383668624492397732776638191636334594313093984798676360197354257171149755575268644833902273636547327513829826288838013486906162209234110410503517814991276711239639517497423846699208659615784529429590093611192931290724287567035191706741029726347061393547098828510196859374734408409701550479402543709470225937817715713314988396631414177207350726686112727061437652106596924524694295007325425858704075782024588342912382246869616437119921375867122891997928417984750075062515821048474040942267810052490815352730157463637292509814888527399799617623553144977979284110931752343675714395692835103848434204645484767687606608327114889874202934255770892783355448151635200013841459122210499362303846160092509956480181260096579896502467839980436441822921999842333230947656881517845713669968413236318918830677262890279970833835036593428721028796543097394569389118074235130598593568530801570353616928426053888313880272594699037266897696290746217589549263816733422253886178076836450642922344815974285322868684699048133371426740704327675843315857292297787931841194398331903742229619342100572965168516354349091875141302753106163799238853050421361501393816687475947481478877255092383909879265959165836245621922824115967357261450817780033360800427114173378131820041995219653257220576557729713482314739223581421434125016228339817803230243542914005858814693193025568360956888006137337451129144827986195761867647574403871179267444199328487548715241174710145772512181131985476129804630395764757806119994742802958847449616715198476698332933483871990772958579678948511110307126547576663786410412785958548947905969917673528942781902309687805447137935616823214344841590691973713449028818528330043153638962190593429815682221952221359076261269159366258439675461409030995417254337471490478234786894477656110203744717352302413021721537332702598816363625069359906824137408876167567530821286042717567667343612155244595762625042287111418238838375649754726394535186327264312826413615792448799055397924001163372438559172104009208762013129355651333143201249937326239704980573826547403787128658296485975451042609426569462489869700858049127643057608652252629166461935438706430646543269832599506240206338942257664153241345579608132304707073864420759376949614487268721831952130182084347161744913796593033449564849126599943138499304950058644958566091810959320330667891325488362982132148358509726591336125348621075676971504544574158448564655227421455375476861616679941122536919590010479626231581625504435458885967266954758035155468253016238217656996451834471624620474719063255945915037648971270481894822476459304626515261641328162234566122394720879574005954412915097634430702016030023352780396969885399834581520426258010843084533657602965479609073177334023480110761148870534627844975149840106996232559147580814766846388501525167705156464016488358872952627403214634534735776521535261198564601098706303744954438341120348185551108770532287293777993757427627681699289279544181813943727529057046243253608288511205004335838298561837753236053643966436779665122733535698983676466398290371225565628903158199264920316014334759802846550329149861388924355254015637216822284080961081832956789473457566609345707145956055518539630928073260039089424815232086613851759503876476201591123271633590950248068037329327858062812429395291646372958971861299407562055574755510039649026834452561798605816808257847004921212230353720053256010113498891406008400214252354220121497590070014669976823126763556614214511140016848108217290803197289078317372039817459725016101097411159872381035317777159522847297528541149414432343212406128943889074738861462733709710795232866772051665370346883695513500272152175897634150932885676794761255235554659975065644189825691708676158584012310846689646916364012555316255711283398617535221070967427735938867983070498992957573292474011578293443349162072827013523041294485715464766700847968658458117500611025716290043024282372810178736780492321843065132767933624593655822746479052478653255534311324339385947514541484320586908841387261081755192748689056260693748945052086065153515558677555650205798497699687674576335302837766407417169538468839484209197682787303886184133414894742056452525456472610284361312984790761804414655342498657014984637661728892959209707613510584880293553644469257387115069242265906598757086124501063530338274583088148459811039180912602591618082875240509243087474367691218391507194135201163200436149124551702081289433817489626105188897333829527306070259159717880370927727954351604023962634035263702081519765915707108524184213955235928848113062025916943495824785788268273250075767420673928782237566546627026792792581858831918481090478289148275461279074145087514809398778043798956673493805372239580617741266069534954971547417554738960698562584278337279126670198405047340993200078516808570672955286342720632956354056217547272815955253198893996458520293699351099840065442450713722037456984244779281899669699395757548739283969384702372334887466077623683496351661893470480033415957564786235756237963467949975073446401801816076198593343458434450879240178357467102755349196655778174680764247192853884153847750941182843262235677333666883322966734570378511855806861834380730293601472972283423362639833988949977526426737544104890882878639086886461074570825902171846003905446851470387777562881790185398790970029434867565414112705317171923340161515617602275948796539218536740894864192568301323022260478057524643410517785246256832913514884944923902930585777631500610977752057627792326960079995114743346938618417689691465447196040898486472320935043460772716953973026227020477460787739426848916171610676136921117000834632489822895169070168811116179513506938786009196005314630885530793326558859792876387751530161006444058342147753435244963648282932467408349751954048520433326129781987129397689038964125684886740161008035795484020524864365550457345723145293019326584387640115135659890000442220897999319967558088855285386970515692364106658402695381192796956574151800183320522878166779156601766205380169939510625845126904201942115359267657757937903909844216501379506490476464042101521036253342359654310184387626169859379040295503339362586507722938049384816326731418716907445607544742109214234531830482861090615775036609337835917047347970152979004355590850353959455478029520914016678680495693157357561952844231036803506860754450970479775803169267397417378311991048760922686517140871233443410767196376738672523892637212383208615257568883571254661179025246659991595450606911882304156477605667412754312025405038701932661555890751521470846843956385451452985513815469960565575417559304349286261671130849138155463280835489940813728013491096376331205647275756890657366313755345079473808623886419706955172555292166489740976475753677476687755130511375822349288736954457069422721124337617729101232579002544433439999446892514215013107633752483961744414070521176156904780972465249483671464059216563728771310469597883468962636682213265469931384722208580220485239299009066953278707580916344801320315080624291242032523389556601184059342808655808249450583046605247818203196244076844384842219397229262577109867480801810350722863276491275356993439252425670396592645868618149389760776903074735648187552736796316883156512865617978892107834455398489735169426987481974640128364402436256213321855510877147090501215488642383997235771714965856462123935002280031007981378805038465958544590650836197143887228191972994518605079528441757346122717942745483273692623627667350907574156509737467039131839611264953251864398367426165083900804319143234480618507691806144682821483298378268109609231844930657220655859397409788951131246305506329934269260226644621136926085795399436679861042459552338517294387265898887445127507322122277719199676565981902635411529839600558747585671536189281367068853055404908969166430492229010808812841761810197103202917115778487733289267046808363649831710943168895576771073742142602164463106982540505409029907371745578227728345318415241261697957253976181072403458779699472247774608978039588027868371598109107413069452323239538995903714514213703018943395634109174751325664640980739234631542903336772409953827442704623604707042374690499435482221392932239723497123876476660179910779496338927191308535094635361936799071518586186441749691691522001792881211833444054371809747867833599575478651344124748080032240045685362738806240866001757989628380881598846117861441599942468582173780688367604039642553349182377528366790387192140544429388378711394826383543102608769197580969759786574509050922604721431074219791015167563962326683684209807238512821619258246739774947230024805316430721295785195982599293976015056038624390057943542341587620551652627105723265763535466470673512683842998812781691219753851633564852774393062907456371444958699249396914020162734526644695492658759005896257626881755814360861344006475627503278474914608711151113464901097197432378635288525055443956695968114525958524710115855698350768850937166899984491178285254721331689139000701737874083888019650864937514362928924935777738817776948922683686940642241248779633607940691142956761570838087558067163771873238644877686079069427421844189922688208097680751427220155558920568719615289078214654789991259557874879560380296636400167046636250685087297964168961988965939025872505447957126253339786034403845112341593210730936392596701894374186267556474660371821528294903116621959712158332826339601117127538555480830716091533787358679871685248808267666697547844479956751873173093823982062699709188067619195926458453563391580580613350127833411607893989117877908063540015133132435420177679251307825543890760315637835212546040696901659692556776555805378458313604699901061236310764182538305406339346410054550315748910124920623513450264833642101355971909351674334336104401931356458776268693206274739259459962363347774951175280330070507342403786220931838739885410618966076342531552979817909540970906589700118707479143730185796482475936067334816013442084725021857568272942189865195660193201297004758932660036276563673884770122424784199031824993108872316350090084156350354683643052052633456976162271695265880320176553105586987564931651935662734274133503155380770057086746874387854251110242912855440132963296349047283059740197031146471463596319299859934324314204040994110106488852967657472814569982609997826527642165119707890272169890689361705557004175222733908084084657780286070298238633845372287082652303504217355240214907566028629720062403105000474344213157405528755415039172482411484534888373717649685699569518504653406823965376301935848856438258136475628047445183592457345050451027122490736539470023912885337549134380585314220938727770462397372043453427304028471665612676571248047190888658302790671706299951179119969852119462053114762263741370682294279225282658369392025175084116394171220560492310741683309313181443145664734901443404012723203562902417686594768719832275437606196641817342365788720166891835060457672811278208968548526636496944191251784303335981074844671803191320802476175776084840961244519526680292387354136152830881874926009121961331365187714248942336117187620640431160305109924335297763483730118895424886027998112358971220447831670337997225665462259304770326534875691937249037979405593428131986519440121383481915468499024974091906589723312116803932933786806589118818836168474502198919892155261818053521446229462610521963152637129676164245558145380406364708464222753872748377788026112848882267068248385292300078575115111464849545091704307666470063575761714829384661172963925115257738062372637142287051436941445362357067454684454845276807984866269915202815706180642730013265778616025735999065797345017619566237312057707178731494834860280012159941729775221242183437610464686384366084059325586687159400364948363468976766050972647045496218773413410422040480208136451661614892693110239069114327491888298082131897093446998770104336214318336661252570627358639148947727007552454323851330113610531407635628890483895036271935340460425708913089210248420509950527826772501098517310951685630692809635909210550033044337278921880395709877325443890943446130153130443240922315371074412307181165856192724803410272409024836499041638507771944015759700348455376368608806357155656078568304885023380358174645077274555295140309871174119918806288348475065928523656564650810072107111911606630771932004503410069531602304613041646362613674519002613675616590463462574372004685023440482753424850258281152455277952887994781073984591309788003737561354874149579327490763686610028091631208843229674852094339370962357872282317868039945630346427402898140624046313160632010194124423617197836673904941407043377218769736432616053825708047565651531289094842393649224914720978985124494070497200397234575089403015011925326275674591524186369474278409896559674528470178007968886908156416366131581261419568138540316318390233740372433330090684341448599830516562290596115112771860656844568634400484847078451472453885356179964212511328450106677140406175706274398741904235000419045536405427566006105531528918694717207465949363148658736045734369456598777366230169033483987636353868400600948770419459376255109727107109354851679310839969470302546479535487721123112230907992331824703795311459050343595866338936810096077189341519676884696582080987557366716137226630690783775271620929553002265581276147234177017716739117245371786494739173972454090084552353993723099569015061367693800986866465208181114842922293797725215469772254628825973624434763080075636977420471911842066470228406333345800638015200414134161211545202189602587964787600268503664640782478749656737999446628836965844755286186000755257621040404458604894738271301745525163388851789586711349436787753326994774862300137778540274180779699667653316840312153613725949041155559525113952490168519561626291447314893814375605152571004797270549251559551978889014241492414508545675680213883996257253214947406087983287385184477955691786216313064580961297934512686625812265958812442698846739713958454557164021984959041074845088785032947647257692165985689660215230975771454792214608852670811444330856470915140504959049278404550358480752051144955480968419728369343093754246691687443893690253656742515220395162667975676999238031671823613872229706622996428038123518819181082548518504704292741993201505875185810018235537562223308804892723758361736859530556680382874162272995450470135950285571120358462126213736702357376931909011636810711073504360928873111570081761802027044467974333533257589995882967302313158270943785303479711968381994056768090284962464982360398233861031208315095246299605184526928683719580746177183728145241734093562978186250704647339435175346950164776294527524828640465925491225242222779624075409955364290639735380295936741591359380449733309544755672469489147864648942460625338255130521945645891494956359929849067597037733512833746789344109290291030960408553993387227102725810560450351977104367559985857089917680972593517704617336238132070072677156162304884128396929376648792643038262273440996944081958519897723372715126778738258149876639233631297098511680260607561847423579291110655920521328411256129895891163140844552812891083357532305581995450968585294777534487011960351141319819328405449556612058712673728440119833975796532116196658396373118237977990076461150694259805424579747739292576053741512847820684206531982895709607108670491603552466726190242206656756263690340123405238122755730706487932114217631114138468115802105353736268424668989712720893056049810951960326612387368014105189523084487210397160837390459360464580913245235249645853250214718387940994281978497219153660735545001499076978284521580616302206854457083721340157169750760120351697608164612559513473675413620479924820267155170523499096810629168582426536279859947548373313053929974889811866840945641473703082085651376049573499654789095672870522595966596934534659495262442314985885359985446572313283094209012130910860297939166903767326385365724357963251825740565509920621006327491597199598231875228958471020698664965386711771796500194140121968216306169322659472232450337753225190604518026389676610210772973897076494400089329346341505242759393820058237613759547395822544917470636328815660998756019514610517590662968988734769642636308642984935107019028402727584435579222919031887241672659153262855860723912239812101425602313038017076349163145895024327749833069818357818736915507557341292375347029821092623362881432527395899812141549158047203884008102616274353564826508274217363191430866548291596898773021653603952736286618633783566597199670118836508120656015579703755779895814347106516248768860699192809575234345098799534019652676632205372349312981191969113787741235480106854211248392138589315921775599867198353237427254595748837176954894936398139043865941188027095886684994054046119961712339704829156384014609500452782794742572682561721025163868041095766614588483422130571510006846622072387273991870973489734741061888915510138278166770507289461078077739535662555328228330667040759584115002369635974063968379953327788666395074126096222080366159681530956009575845991609587573213803160721562209766032492023636141156216974902690037138060342683736501175236628495620657237480755642829468577015903138172112462114259776177229207721119551788806272785215752441764961216066990928107904350655035009342400349076461013066542337010025939856704862119048968679624860671541092941387476063814879599861981206164647876410115056411295632847452313296007785229891620937898369320080477769349732388434338145018345651158316419641175680070356573458309519182407482340552467914475632105241682245000510513213062298058363270732534837265056946452785414524822124681253684309058406466988688060882712239704979681545703518451863840479666622289593066654242301338396574286856910487508339213174930741538465970942650793049967715419798323561476550741114172241650828051361887765502672601328791496620749871540010560137594817032435729367045186132157541814781264351861505284205938657852901819959843332096056243963404386680420479166174221229953106747225684513372085601284183537746648535447333654070376089747023149645079445871745531942338401425360513565391997976305851371563386912022059941463965853698149374113591310713883302528930037453030747390839877049206098359891862807511325566898363886168410345329664726018232350023218376348514218675718499281752511100392335264201753628630687218057045470095167469629249457628946764200513710550893087036818883313141949295192112373997203824277009563469977284087724817461469586213461667342004801283762640041052829048386875127199612284334414933447404856648632719650925254670213577745676547566305591516215941092426073362060617928502699374874642726709230330746819016122907474439790214478813227201759547497677954289594818279079359560377710894103060599599262468430858572263059267998836527014198484800449888558757664114351795014986265942950131459519010659448893200743497307268229824673842686181703293677802354149823111055452958140301986427254268038165386254638186329326208736765773908938892920318394165480135481891989530323293758856170760805893207669569459586799650690596673289584671134179125081265166021760213687709011417730988113731645516518020098210864303277016732127417928730331942852273232053941713560690748910408819953119275227920684696653922113062800505984193786334465561738630704115722864197217017308030454611349815482331530389592344761196990258529722530951090753061592203845718403282121280849023032118665969480307376302933273704397491068700039621759722510427983244900128751155208885675896452638770714686773538175635707996602474234373004135403125089399089205592905022211949764145971736967044972571025894884171288597982091054642999700502138340989660413700482903410617087228350103592264361115947951011424160358464975601133533984997873748347125087011465692630102377915676672617165068989198511276540518831133595581091770602601681373890540788967800174864020592702249837566792095827384682456379046484371760985319759067704072399882678879379632679254449203503262697002041028401650265197816063990188958409511059508583374690985342872700072282135026262002946586067237671372071468837534188218810442988330618593966801284808537838925543550962532002981031014865633918458558662598662613462092078827985184691508383081746150169908705223909171764720122843031703875014713147061173997171077284046015866791356648768220602059501885945097162669824442999076203844563919819951764654854093941667957343966155602668826425550662903251387708174082245994856211300064992967632309065472842408768761230330156584706405038932523531747564634519619365944697370950049075577731069697753576211665642077847506345486486168889190254729308027985611362999859347279427788106315629273782630069752888484292785541342971442937273318776055106777028964031219153493951376565472441347059009920362427490441657539008782124586930234463564147356659549685840345552930300732526138056556053853150265184510177383603728614776956008837340724907904091280757137299568545681204526792754926277948213215850281950373232018444252092253344333369483545769931822591721471748359913169738371768980095540523326083267973399039706535098349609052872739112907982434662906997125369526482210474552625083462985057121113660828827464302839967160492754816858983655666865480704957928082561722359833360428780609818614795089028098053216788102788030873389591512046161335292462876588066553135126650116383866376240937518343410493809077312493831457076860220590371481590036771633725653114307511297415020836628062630495650083363889791337869301139990742982706015559965854339496887614093840717362513167801873603493385133200029106131967990792467021688425603940763479570221801992640400013526904386024115658803331130758590085129797079083298883919887996538008741581180202549792221280464160254194058726028949209933879010016234710772874162791750913695165676702220354536206762655017312018023177247145231693647906944481895747182900281383784587933504168276577094099755565553654244903461494276529212403007885716391805329582437291845380288329730397100420108413742389038354189112315782309735092544255109541764809533498094078281119933035542035865822280994953027960106874943329931192885944351614567825307051577462106301884954182157274196592806142486108355276792081724049726786690793189181770393255744283574773415678097715105947438671751098958763243196413486179333166013139202170544736411938254046930735075605138909303373944420726463484463630498462043111823419616934643395997869705672194047878786968308506147289844945017954812025038296792542094829564776206322152629733476682125303465159188075588404744089033583452554378128598132027073904296048236231434206163815427394331257129045673191673280154179259960664141141907094504459455866647450162591298928033598387136306155595966877388423706657990896979997024011939683096778394881056143096827703487327543244680471287958045208107644743322788667610928047123190276649037391754283987693319415179162965034280367818435945296800226074703303488936039731214457195327100040849238254959528328652309597558300918322495567133590716927415641745966606601034657701883257333826100954315375379565568829820077649014407183518758914140769864857700394447791020323203629813091255796337941514973627661922853120652755581296536400095901817533729174891110938641815803663604228534012939513534687393027189011192061248780650674784868454388286771773907508775429945726491378037680721134394585261364377763135781178470050048388728871965616251424096562329862580007577852127637330680281001865692480940838456498201853537327447975437973116344846509162750096990349304315502963894891693702342512075104643687317652167826801895756222128121374317258254181905290570634536416676501525362976526024168123901214976635543958692424460633756971062060362946261726285468605075391965003328626657846689937514457754597542122846998057705638923622766669740949395085322889348354287960579972489897795017191238743029144894660307965912962498341761315950312715422457381488141816576402072268013542295742144140592148302852228548033067866476564511118707358985976586237376237610669174986927715183058145238194516275673328539259245760057761304854615959045777565501901199627474462196342468751582560869397806589439400025772036564282934759486327719527615638723635608215741317134813829551193685625923266188874027156329844041454645724486241166809366289996676289774277200529546192108152769315143447537865018518870095603783866545714033299329170132859278783384047539563811844718723000543267480107715719027403472880598909481397934230468885041262153026232764303112405650266896190397738812026385542507715170889268921533585767858295079453348596867386184875994351146586114495292317676174212753744345989916388438145316556801652607101897842718595473258384481716780579344387703753728507797116345503021157562425441951984761636286237262193578780386861983629505991913356992650940465814374018659359897593170711786730499985986026595551599164306278322333424975473137152805128692698853786386876817679837471903711248500779463285480155575878845717459108073110929749977052966940751642732606696627072172256494285302097630524570992492701270269387773620286623111095326091616280127853645196073702761035371795436077394476965005442119026562104631418064163536187305677120511585874592500846107573900553965088117397350382530803720100352921937078631493485299487027669508722846321119350841942610779978740559142500280901506642334490122846855062313965299240461595310474403503459102610175932724421342556540019782547420526095906837341133540161931369347815937485838843879109125323465735501749584476706578444766985113470182386006815646201750207804331082881570684623123922248425859928647420412028271787220690222325787534208945097766585197279895540126040648661911752746141603573761200384006586057596282998877145507803031581628441219215982802379273844207037512600777735734343329996432527458201360139748329207171954502220036855536555015869807563908768125674364727806660242227730035930668718681367506138411416260675120691359163757075818008856974794808252020967176529713479466580299319458191517352605350387146538674302857645489771629367292327606331215866251279564143631961934498379269360046753102630647270335902765430361379254625177939253711100012137419663489421291202997729016150366590687937883699167559172640696620167528324916387844315601543389366645743900034598498339414118946532284089519292033712266659751142498901574534516717493658727968653874841518165897341486098625486420915165195036323677208519850097453502747036128830449632936303874999662498458879619202019958433780410313285671671694105738934351422913944744989291984170530876398231870457495001781305597672865358958794016718569761955518451712088525327309974658281994580013840481446002499253019079763553788945947081274817896347279398051111515931858423554146120464431321609278647377136196153716517864285557850249759628948764705272081565611623042392035055686675066664446065626299717060960661380753507760215697254373724935221582837675022591654416613266650546773647382396085973068206127158723480736533571190148129044737700002112050615485077219412787889381932898296207738472118393317465814454984095071524201003281450700475067395429818979790402574392473092746089575688500468014611321276064805451378048292010923352629581304319513351060455189394535693213974412318952987595092205539011156524389534682963533545436594762362779369819673122460274361258867074730424235265824746140257844361254783863938298338905336306223692228674156606205445112377951949476276313268585937677415189481891920635369219493873413469664797700201138348646332602889746987942731650153291288026950035423882550349878520869118153248452073541575931794030499483353918088913651651310684613408362896600231866770463897449080264334640869824275210164644828276852787586218428239763154494821163224692354953243049482202304133249150111674862807892600430195184103508286277885567853086875909699629802451238036824957955789506081054332527822199431920312376093058831082315202350331689625650044528217390472082902316760148572503249832335256436513571128436678553209135162079860087731536651821379635485258689309967286065084387261797735720590060484090648411420544336654380665832792142221876908938636057258737209795431131074390339331710109447217108972594602333220353504521675930189779287143218384310825289951895303892325346530842758658156393355549182180635413386528902400710338208514895150161382107445954825443554930851343762848212707440383667878270907465282721743019609187315502867186133521606607132758997395663601504020140958157777535833915733001166685518127130803305494526766037817625329419804232551536778671807119921863376907096871847369671188660941134120112197215594630477115926409119485088078361046323880662746143365863265879522026924549784409177818718349862200125090872107107895246844278169817459957812598515922788531668577632513780826162874452501824480329201829814626651634174524648447636358038366583183820899084094586551458097377586149640906075248835905920475472477071618170765877089232287354066360433412140934271401679006202288572859387546535782068806002890786808218641297478294396806658605248291874670152959313961304116412844277140908680009793321388167942743200267553260307600895088392091761255717721794204400254800862520302542593576379905590293291042597862926033660325946860799134097884188655224528413263813154539022715919597267694000693528951621281279114232174085480528332454204005882414690934217252686087651141802384115610684719278165998986879491823277013176672681168466524009875494986257900529521871667758027062472336031140467236790001125329953821239576945101249572283305837940100392535796881082065104271907630103762400679262149035813004572076885434527900962529201769898504032656572305151883992659749682209445895911524313412980308345954270519430987028467472078074018864662913146927503797438960231002466835815439084770628867022924671492492669715838409233100511130805946135575292628421413551204984437825774314043129246130424270546118692146673780889471441342387262635198038317010297836263151819919142332512193872726251054609402353620527784210869719233936442040182569052759332431845184896068142184437830950958998517835194431621233430309848055595083879020961687145738644958015992457496866719134151170809330850263744463462308603272736978331808601387946314477516142249837351419857853096891805707982400108484610791427518510183888269755615659438516907339435213745526832203788901099847753513266426978876351873500996506539682577750812719308708189189755909197313943322265109687942922453718578306415541302619232370824448988549179994829045816050481888191941181050326223058627158635493905625725406181502896969266569500473690108339709895677157124495724383176856281041811090050954057251339390771839843153123105430787860052372172476359716919330070720323378746095964776058311415725646998269031533037914436207264112337171834920132686832625782038527090744980108399275906928116567895988889415471880077472089492867028986943093538445075773810921778842237842891910253832939224690108623806851693066425195559010529823268694123921437370188276574473923213033288431452272891478066546532592367769988207455077606545643689346913844169410212773657747555689099269474022072341185756548225846335604349223451607972851392655486140508211364791892872259961748591257201770309078168478776051868831253098272574833947362495510685529439296155898185935107289940925139192480476038027997701144191302871192037596103120415894516136424346180879579254578782003425942895907915127276799141294505977360874935342527918350087731304811603294154482367487732905158455760181841302099338522327245880038099912743130768108501748752901960932123709056759259511772949491990540316008499739162110496667796140215596042523658050965415084058587916897563317082180712215409617008540303673995780721137945773953495528922114112051694861645102173564713313452672568892718674456746849281135337969361103698123469931815094204827006585068988464580803655924061710789230903538660198825965563851895917834314657514263517160241395627311305848527404637450359563041223278909970053499391934092645374915338103642230479252458484266945512136988022900778818739688163047258809063798419715889690787788426976881889975677247337804380324552436033605394609790391690787914642683912241616193302941167625611439782882238597097669391049194306529136338469862859033239386046926017485971058681395829105190753293583872124570331973184521839627213923445269332111462246282994946261953240256455386997594855738849102084446268965682061282160350315162812801150867952824230045408641034031716678583774663170263278391300375296863801481065177486626146456511700764017906376805501402722824491038794126597777642422884579353299139161101549952519874441519624761658133136331265917952050350843799887579446501843332495124810826878240368720208417173429799608542802521969710398934711170840009251987093962583796074858794036283364565794589783766466458353518073831406126992808036582275143826505062616482930746220043984418946692342762139656287508492891087965588100526874184453427415680392882695686558742838195130141469852716137435540226272102057754217089788506294365530584390702029336780995604945424118501160081383509090355859574924096187872480704499508801319417525591054752973905252788804655836255251475968016030889413563271806621949419335054666697619611484240670445091635117717805787874242555365576628591775275857186784587667296618714477414079169855097636027604166241849203192959797599843098384950303387918129400355463659643794760121085854411278776700945790184645248518207640589445636113460881917600672273284374819884473996186771909970515393496938805080938376418109352709277147505107897373608043088204558390848878639763938924450722539809438937961003626486281360216985920047882028448058865088734086757753758052360536164894990355105018876512193120298903589171439622780671676620754332511965464195843977032415361397417786003782690098432323242986852358756962159065451879224179311947878992783687308390428557409881318517378962090703048121475609579240652486841447041978607917842213785407607056559357791709890451252199195116302579516047045977535003297934985823434582060595560774181785574679632684775824020368812700156660909709169953039632558349538112977389410355683520952181222543592522927481122288535451571065780561074326959861953876005482106801952537577345601189817097726097520238738867672400684777509744433672418492358385617122579085796701169909329033077428496969668767430299156105733117798680647195174228570278925378840572674787630393875108288476045266324765676679550606815011355941724438712876484927902176655351407130702114152453210959775408766863737203724674726099638876395165224810040996354883437292090458862210076786244971319334103097643463543653284841335382176066139708910631685337093996545399524253125025259678769224247343545231574330796141000777087049353781661647116042803378313346220848415515692796860601300173738241394786641865815537891294381910648244350756133454466691098250733115405404927550058985584908986430272717427517091741120215234667931540485315553431538648533578968564640274623272964189626612264783808105606222999550641782140205412445251461527174933233520848593323126830764185285855933394089968927510684977246547460457322013939157988869275372245320563041422449392700695440149603685215446388168799771337991275295620225810023708278604483766160148092883458121455111459468688683840453226113915214600212784823534537990120410682118822655186582780558815125346831461202461179923808619439993987561794382604834006786973680222493035040493393190761839813364608736187708647502776637889475780510130021144502667835689264760766784096507836128500756819280982135027945411792173310014668853690610749025667878339469846448259135206769618642201370426194927880932729742288125243585528015131382283826405028453521857835277783779636138008745597610649687056264435241838760791251249773351430020707180985443801325998680050999861499085515625657541780847855959709863717043588456624344422642188014140588988707503133925366988721437042515282417848414889291934599347065511296751086816846907471481290140625944943042624330862449691155364399358918999996006092868151426516304173550158164298187148256042486705648248711600587451850319229421361202196884270189018677827657971329804152580001112583273674922834614807426095196886911181612495706311109064291191946432499767864361350342218193383436193837076441912877325981183055412234626516180656976832391964260070660296486946347437870596157884577442163502596015367901642107537046287981417525637288556498936449705571354615034769419574894269367852085394302454421394414819322458969366759576524575283222027731499169023321148825090812537757547405308925405744084243749412299611179031654774048301902944067791054703453969369181576261590530791329655577104043031324191578016404555735259579957216760212729605019316301558323751644989821688661656347268245368504292728531765687415717949427410888569613765661391370968514930466039893887636204895413002500429578639386076552292739431223161415276053149225368658396450936242937816332089708576306194967738492661270753658621847126354872051885840968103712733829159833493647872945358414786086607937953813024852004867773381742370844886852750600893706369540315253129928708988438731051597256295525131335717755280170057823193072726698840350183190335773104698129790982303657629951502581331034157723732285251003725840105424372929232429032158857005933146916756089833737666062585627036850312106319764557862050025290931189786697168331048711446944173709030713787955120244204204095017097488911985856555253500622620814850669449299390488283656787323241614009524632519186844206270469768128758682755038035865174124211969268167733786032012475993668450772438752400202196812579658150811985926706985694973509494165847470975544836248944667370451502673255837601009116514999647995929151454822536127179836469905211270306275415309606469310866388908917301833910628617166147951106631566937340553788114978260160520094731949583101158938127953030981871211476460884284060811079997122572678608011803327882715670267591976154782701784952800352289652182067528490514331289081023396006363036796029824177544103780231267134024023792106979114420687548083439582403274187739387076891307795648498027857617343082635419345399198058205568122548179692334034130009423717713750581170923237719278646106548897353849763298323712893110201393077212603152069892540734601658618407012425295304821579603857319868366609307780788501205003153598899912816053347384474218186495442288647977855279267817037043029607617955961658989150023567466730632004160746278673513560473892148792810429181508508059419845358640771034587319758316554722707812903648946419554162472600699277072253843217019773864388983963838724794240064725271637360329241715383261464389490736820343716980765747248833549555019092735691278239417289443254711559855316469241177653130272085415406631419849012712929262524602705680867500232189180210954639638343678691187471928139603621266614909135686304171561900779448158320861449151393352131728598594303857582879719931219136171479158824843517279718236197596498162373120412102742028011667511020971092310985722066412436908103425631276388801481880943783996192437514104096688581955389798032713024924556393567379712832025407686647454066153480760407392631130656514862491592373419701333715071727730975756326517496596198223758309514651931504193777182845056935161396731678219200639091595831186551837844986181690567671683736093274320710838191508033997926221935826661662417543166704437238678276647356325972916314024854551511374568195527975263976022764571588043459934616571054057061736089985503077056548823923774452429765032126810088234822878909494843635298396684496059149496507742057108915518712004204904592504405650472584880227789894186333470980691733493462464579797006498478848361255539261470467644672263598894098905488339278583263994085834095712451511183402227687810131394116197155145554504320634843276096365614674379956651969030980134349324015817887454066329745892657637429417219501114334874441304245977859580614284250855361844596945615392966813385765342944443937117619399122552670245457276793500405046393535821796810262475682425999753875921060640094306050684528375556004054458184923478987823180418718242800401810062328799702383077605635516386784610703238793200955087555180332589776027010195144605495572905987216228494205130463838450296085196919904989391275036798163020682810076910690884977617006992421668303558220438309408766116642324725384572237185676172164684171444211137327994753680106874932064855756413185792853378987986920360214865949018281820739466300738805150529498786466700949858641780647887563798679897659169195430888715808225361729962593815271304161512077636614671188785234673079338362542222876683562448182709171147115242467804020256086504268963662210926946471764866556134013369873184042848437647366687296853607783426496361641829783708114874807526399961543733373994135202999194214067828484999059476807229610514841922551357876454198935757695446180989212496015977652779807304144816865670659791318246055020075771225330856195524344051090371829787620501540517507436220334789188620441145056913773676339223219505771059029361957260962219377292081459248285926354043770333014411545570753045172457295641613775092396367740281168534578841428979583600059454257656035813511436025177346788823238264865007791337091484521009023813239758853792110019684569172496395410684543696966901859487388532506170401207446355450259178691339682467176384874762566136041246338204274527347913451528996009084731029247960061046458408704331963485949140699779410611123536814348192647936191303187299751333155314819134925095694990829204191300793768315731462929964325185583344475211722996041325302136101413152672793806400432592409783226811250677357257431397865519156924588069639458209525172418192782273164206588400056885267920822962524082985034219215193970711250107157003365688092897457797427366247823490486264738487664637020100667433835855440111507105439123648342863848032223695288614899961606734890988931123103182470977169407305707864751078443971923685779490350260677933324285297276895077269547578078818069567631765008455503778141412998921152408667029675222656441449668403544864973944442114205303223507539370475200907983985179978277056794845111442114929571048483266323709453977676013969214175146435114259585630743634922111274646330679616542120060539726118090204706456073243844219098790828371391134747716667191888215228423309583070323848158692072289778404086016471248925121536959031943875699969388381657505822376038092960033776603686280570032809105033950885157425951438870990632270593372685748306120668705823319193622811165165071710834878893430757404682980828487106398609785207006943214109196804969896707770375119462272546818415999669737993163268326608258299482436930092810150646093462164289968096999983290385777160199400128091070756859443813079978815015276815172107818100783687150665033879775795259784986101596613561727863007597479179952646713803608402260063777527405720853984311427130230151389691105022838579262804889286106570659682150238517453472921714236878722147353023989847350504339186078205096452259097572718847700630389738902640811565388488645762500563107640991655922679667892579879111493887253504358077715408736927133008976517265470065684588468387342294736782393436645902226808238945346837653468567213950636160418796020516209938291448588666540789990942240410051960140485969977938535987260700898656143180985960373867519597101885619945251780937135513190933614087331623572060676542839023025814699879138413038714593185294889805329479820510020869581256011836200134361363772662560588943265041710380706171012729329494571090167192690014345503918885806396475139561497517177796746833339607939802758370875065140312331709684864185300253652437987673623645205685422016334738392952770617169227640051872003532541074599690706297353798140610149092893034375506382425059889248405864597754211481916453443983381956850614844602330603784979003852523762444004402805597028126485163855625791850343741969866580240115593354252479689562654066365254467106762494864413973986747405325651013402226355458585419931381616553358351353584273625030322707275395511152510649681608872666833525467714052049375443112655284952753099446427552820434981785778512049985036407955265326368163978637903294965798388590455010694034455952771863791670788144134584817864558379409562827198915297081170148380283192343371352188896898759632627317424000445319849248664915292702089626263293844923204775999468628044500167570496168013734231495993433341317234285353619577453342903087770646431619858504782608673777245977588080561405473969867559093596509739897952756752352365457487521791634072031499149442004286214812043458123356657102422517679287353079452245873114214565389843177533934823315634024622183854166416062969897026903180587892134821094527149411714698644816012456638325041791243326305185937531673649074774954836714876920918230196204493117775856292075547758816946795679514611702359534462256725335812915348083950461567455170679499446790061905584930004802907605242074266324287017953373851161171055243713609604820694534938193849332651252065751721326753796625713814253517383881096002789721163100474321412424307986614096161893731380015318917300350295078517221153319743634214096937355793250677093398128768408265783522378930227696375430432916313786461339502762037491509839739921519482273613423029863481543419997741427249430855598726724623567744444872056851082812095737601159181971239252931070039252260294563168715139749876551158508440067146817407794974047319722426724380363207374884450384584217211920065768402219212066360713987544146312671796838162106870239383966316751332431461501431514340464453265819386785421156773798631802760556038307009140107221324781328165676445741115640334258750705114813626796856438432079060044737035030281350972555835044152783290461561622153555109073614666583662508069243346507352007021742284361875372526942833668652079776898467489035500585799481906629224596125489831754289345382445551425334900538964426246795415232021607399566492447476559661773845320886424707575378644220049600455446111579772702134286186938008847223141441489129997958280566535488380355900905997105648127521244123712982975218762581669982541833206862659284496667667577683420000161863665334735193274554999624837384627646261425642580678644410393622277861782816028985112106149483562201356221388227453915074437628954774254515886533815537838048574489040237800857880284166382045300118684061472106962479638586117742757361041738707592409708559656344212810737856391898206121263806892295204047656388285007470215661706137278020559503116385816266453063037028662181128882701187337833774631861395392902967502451361820774668109436736652815324183050352968046308655589077049791954668490392170838547873101769933618512774901668794086972987742729404367013254428523404654678457149157057010861067424729368440208362499643843317438199997169708417668320620776162955762152698093038226065721365203959260876630448989841509961233446763218384483806767362842227239322033193445996748325508261668287557283085802994127050389970958407513991329899638494899914382720314113423885237303118518974309675886837039366606791138444984196170468219799159722307680873116601971568179813179470771801928523307724529289875181136481407743827860780698451941954666211729769870111737945796299625405262763678789836842411531780709619254237507804124036610449808700620977315960865366874112284441555147791918415136926446861631376082464413217325245762024804146671077933400653763651853483896219237885073660898830510135176211975020306854254164037991312277599049020824223918534494264433487742802529054903614758633800084255660632716782568791777425608020061958059761235375795577855200367707835918189300604508081820077542664718706498591550326187605191522659850907890150226857751160575242122451564429367687914023191891745352806486317874489667871814850969404366480241825307480323527378542997170504403431935695736984096570727333009631597191853029931224129887379256065306499573901124435080222783188058195922253252776954572837564515959541652424348418025376398000193700172556883618679616004701287971831009267332069867227459819165248237740670031153399767307104786251687008940858855581148892967486029157580556214961934663676768660042477849461623670722974989146019797805584764754386649928613341882032963091760153968320637183542150432065965574602620097920594367714115378258086996303411261474758884844089802664286352913650527859762092549519675415481991974538730351989000072513686608663756139746956323659872474479211399908041878815578180039989297548301711842220017169532767890960163730931994323727641651310168651015330117320196280063265663281005479288284529584193056678468466289057751244382651669687563047755867618646166701036590931080184246403562706143768001167050413572222434643538242646838869910924321468330302798653609450639236755055546364637880879142324271090917670434225905049464014442130139911881375634104144287479401810384086674017806549849189444994125779178986778681683165495348066944377980981408171611716141575948775831502498923285703298411865851670493724606596132982642269671780944610150407512159586504559778350961993132374265493798250926489752168713424970000649315552165867783281917398800345418464299438602462323391122422048610149681749212519205546764315084244756223208525428683966096340862742546498651137098201911573571845195103015372132953488938728689451761237424367121195923341837493629311637269286002256043166065287742038875358997301447928527228782681281853103453161339697686899085101144536627657518144991577755823970102099768950371242600108556657485542768038493001846440612507703786001976447425787311588146911719071713390963042756230133880835054768270695860136544064453972028974424447237064597629746482523613182472479729823069074793332864841256646963781555023577306016442264937535942616503459214422695237037304116053636622408476863931176182638404386228571727800414240473062421564328382657567819404694069255709479563380655682774894721301930617118974584792998359604616179585008538013350113679352443408063973599995637500855648853620056487165075289090239653807472230693860103129456938951893223445360616038437388019718356163405626188312141000989460354088752584093033100796104988859946840126664114541193018697062305212668249788270692044499240641622009294903345659130879285100965480556253356164540569127101162174566980712813102630672159367471164450654318588823746799718019981378604849309708047382028311152733976196050834248220072666285747084864474889275143213104520556203872442621258582961139380060182372107649782370218574804493270207243199385376573614804002337392495219014836025520759128306349295986740773507104606711496769972924406374837252162287443654692070260796164186908796959076894022815954058688057880036130704933925107790436612803224240601090599896183470420990064111787665127177954052034694882917886394648061903489915038958761583830394003713024243019703372492081272510517594230743106635541875833010073297987193676284759638010602922314949028367319640613051884986622337040530664572644836711131997027421824363097850729208041216998679803174770985577518640076991435553958360891077348811983422521724246605943766003685116089335776799359395632373087025806582472739993555739511806244157597890044133483948059217494134882350352929461617339770152475392562015812810360541407633617236579077987426438036638371226638220250380316280314416887771683962323023681061983876852135672417171147272199425496424059663995918838019064426818491453171754550783871568099121343511093466641974826399754384016297323476865303201535317044987674769708379502691035205656304766885121415573216873754379902238165699450502773147568692177235889393473347839439431346452953211417303222258982904709199798842665515744800139293902396660288022004640595989269368232263149676571317794226383183751629329717635583986245505016303241303468738198858757540482982865477941809962144242134898266133444029254814660665520633829687297543950141402394354575623277222642982254190516504666822873594442704789000067998071827911160749054366402022039583143795015255435427427937251565538363960978837570669608742025753094713612967708166343791705546403267148733096326314306829550910609269549955968593351722906638041102583616079927569461998816477060492782815440141935202068302671065749051188758053633750262719161424431573985620284847474936641199316852060496205142680891838070159461498206754537041779098401027780501982583634597749461072464323335402974909855332482204080355849853735916157311029620159579809732785266059933315613406032888339953491277520381875918393817937913512639891186403739076501723491459527131356738326918255451121583656003292091675125323444208617930261616599117269979373484554105894471294480501639202311912459641588333046910787420686280767834975642486863134886553412313866541324148625832016609184254670073385977262678394749411608861846973556596119922127742787226834439839984694723976736573422655936126368370596826786576291866323323155390889916013974975889601190724612000541993069197617387688557563717368399249165784714897958321296088680524725756674248163577101925847026921370454059163427653900779735160459077912891759811368199900371413295565572631265036930869704009187294675595560972116687616755073351095760423790701134678743274465402017884098400611525916201111427274440429445432810015180468219736641646017179760986773298216204793718706938957547353367303342979295692536559438457621701144678063551173305670406964326475827008493427434075246955217705373896285003061310222121500403582857474226803501941967927955863227856573405802995550812597611738230691321601953718387027848893707781773794225159913541979027601775326160583040553046241141460576284259564711022498173322532888667644820044939516932361644412787070533293331773575706887731076093286607839648677306043953837751347290993129562131095413528809756071132445395548634186818639482269934461269039272702552269901758660401841925155196280141314922454363867135132518550791404902051424357063672684366466403136566896059806745917715821120815216339315062696636992791628430432449590698417880453070561521314515126393572135848749456744799467818374194664733862304480309928560575755166390369842342381369320604489215986498125906059595168001150886308728518238785432564511891417109997649259885335800872160014724902065565721703977946310935392424224658230037252421389961523883488396742339013575438456798026311304449760345818800952621291999439022345997199604798486403853216760028869188712934911534466050010035362867222585789977192472047992559561158338118306644678143175453029964452138595212771248556174114150698286662336186259272239046507013233976961369127677745986488343808036912451974954648880799517734952783356793433286989126878561037525260792488098563554897854769389635863473355058445350770901120556821432532679694266876887241316172468086475881107658388330422083054069900587146645889358181152317703785380253060736421170812950739126475411531734005146555804605778349366280969161627691442352450085014711156730009947645713708700536642565011966333185676501024679277184225504144742077030738952687748760447782528319788428409835316999531659520982961745167647529028793862126003508532343160053572919712873111580987041333829288693640987557037528445427667843327939945554830149226134766366057696673042174905799769237167738056325250203574589730421359979008656811783175964235465410479273091563160960462842876833891965710539546401371896782974032028910583805673596281688046742367024260543056082059603950937466283853691039228575958025753303846439369893665823561375493257088699800306357128699318516362556447435891726979291221671894657282280760172121968393152919737155737676143916483141781907289917542266505662531983687243398484525102503259088317507574974468396792839252013139084423768011991193584453289565776682404772731896807042932725903754912754133838831932646485261582890642306624429989363518340203347702680517644679266679308769262170438459244467932314621304913599023310750565038072541955047875436787160163492223438265081796373460247547742368751529682374437807450633790731726127379519445767031062442099287448141207112016911386522235012064301527948568587760042768194218439869863394795348998892262958864827801473626633259848308487793919300650281976680329976782476477080182551875226283155554382402448570916714125426156179452890732435761830594647694775006988154858631765280504160194069268118781477922451520768801746361365071339094107345359783556097830281022093922058530378896835105205351272645747177568006278776284231705556732763385702502579869691772248022929062773435604851959419314205234699158508769298178610259263929035342091397363802451248501137362534613574432291209214494336925028796773721486193610691711679838621703957680867232783337624222868323329096747712656838095574882322544285139206402035209869198844056450050958844166297181181576615926964148814601703667111808701327976201477815031013209985040826486345492241338463620938321968886213251475351834740814096683654517743898747169536656276232878514077847990677478185524365579691889337501823363424222985770744582353813016673399299950283894890436296050655699978552673303692046518210670793608173701342795163213294145417301517334623749929827447348560489725101778191246105382707902318716251033075289350527739367185423866671771505367424983539009165840612154544074200232777325563162923971534779666967817296046017381876616613763560694919661342771842669308991303135421404757502541008924142075487513926890031164165386028058883304158047630949110187033346152176694679450267182274088437813455714677398788140923411459227959714308681218271969060341976394559765316920870412251661857595193651360874099549758234518232848555909129337486646484370033554397853468699075946280042370028412007482391452402469711248518299232734935660441387371293235473319567325329605517968492359644184164428574392739584060027799948373300087949688743619003265922597000525362954227459210040595168265566851591495273784250850341449001754265030768084856709830935048834107255013999014361006199965568738834208649331475754261274675199790096143569046946816847055840161264210159520347132402661490073600425945743712233076990755876348861910456756406842363830943098415457566844157788174581855843753981756732244920762533929051760044775562258617507437549840170323699763638241398745225485110320852397851729761918625239399021678631144072752045461657488429646743919074717322807430054751516357275055320295309836931208891548822316791199316644555640216872322279730943698176316042130750959569055167734387089856900344345119581550712619433086294985312697218108020797919530620218785616155037493896906816206171102685963015666954480253010012121001858133078994171601921373689482777873578914209790745568371303543634282585981921759324416688862906958838093870502839984158613076170363156901961619208909408506075468625527643733078848407765780712883629897980359042187471407824584936379757245407025413860065018239143895898359121322617540314674696638324189096766597517868854694147719733792611901242270663812481510869877792114414335367022584687972752987247174208913517003757083288199638354772882589889097002907554083761508513456510700355081772703274419530847548749295996254119512449433994999939829454994491340902317986414544478069583316992677003758095911333061018083758236870251747445624147577375504505826605403966468100085005674497891890812362281193224204064268848156457987913554139123615749854281702401797140943848782220789065549984440490053151446427152657721232038250780758630587407817187395347735066843367338337920129957964029047016414414707122782632136736431073109648000879551826109478878350226690714406600662107360576973170398807104537992643996624923572400948773009889488918075262337991822791825525805940896403477542833689602399439093650907076206037686272537868534338148207774547145277264818911799520291288902887176511102242436475623391968912898611452004401093041886742531664416385066225463035548430487623110804213177812148708391517480978229674213992467235208415574403129366735686238886367746183172566608416649707601788287252318168446827675078604429877327581464884746196379113952340204583508694124231337698777882430376744940688285644392979082910196965831984378212799132126599796343310148494827434333774987608462124578372505657670690566164826139448481052295823957660345816407355886881779949863473547439917962876955714196601066074337462335117032270645497623587293742401301966395854108809330428370111096536341405272619643104180268006962948918786638456474209272763385538453872675167880728295333097684573814376059916226119926385729274278023746814096880638915891674789869339690436457451741106653518709008563698076870683784571338996620446928839685896235812834131102274404019428463921647195853168918819032245863791288117908365629629513802563308027593493021870152583195657877155515639594133704860261587440454265356013273760516001501498978310208743460913686422602340537725475035329380686049429439913694844218106098608870271762553388381026893212224855973218111609068062759040238741541117828602979768011154428097345261647963819865909572450102440048328284046622504233506493228401759039786064542859878790357361973550341120057133253139223652688439080832728095502310225833819601732171290882073211336907813176439979935400417798093288244221907902696027631145804810680101187292705626524685106854017028621278174393483903103378060656570417693915634231967726031194245487919420727559951771164572804428307772176266840073145362924633960298751490155209751234799771116013463280988264109877511566491809432132653327751520163789937676726036887079371970566145929212039006924131792403881972441313619060869786347285082826603559353057065065745483190409493295515844737750528159910437660002255405041351286710093543352065756790392571847410889570588441799315389288197576405488217187480466754326170178703946991860810427345682245762390802767874952728687562287464650417290033991982161160293715154699107881906458351605854049607962353852555021737871261664202581853864125336423303228191596506568397861917118453661581848576374325938818156556470478563239169550693225261024097767840823426058909716025450230924485074009252697059646823071639771177934457209088955487051945164130795306255195863461761259767852916185517277600752306283022048410536723819655923930577287301356977584163102953732304324592187014093949652237513605304039733232204068366973371020672310027285978329233674671805991390174898344684039471624844547804963818001978123455951566062192261028856215566434124116543884674941494067539910487204631816533164147303346830512601858616159816881741208163655266769456226592897266773753547077324674758373177449527734826226728212811466978929332395132542939351445046806955254668072391429654112641568439224585699312308232914736860388825026117136633159637147930617905869991073705892818726381706390921311296245409437489723911653073743364491820149475362237284501375035369021415085708592972078205086622381031359660470383447553700122942480559324679619661285359841620241008954856386952667661662492253033789280335473858169285917796694074293647169670510803779773232171913845888396779588280548506264635934842038739517804532839465416900212310567018433957063248165064001369261091760362370257507009680595225090284806990520835636514159337588077543255556703066986973374896231481578841894674165069499758506082918980251050302176005168151453861682191920126803394556102271630172164366444900388539311283433728140278206013479665668137340351883581196421527566643736814009104103921981721353562697561596532773381958948406925288561641341747297199785834617953720152622743327783556960444737336323981381858266574288017237922835593509795307460949632599401403160408052154898874738818041573004594714552247474818948652312727137468753156105322688428970957922246637493992791880569713001708157233058920764902327817715787469518259279802510059114413122101485817347684083571151048144909591345478144765988530092664514709826016623407282809080162075399008010918944649207492618013708695631082897413007691530334212971270641940059535933527453955422221900117288850421897775991378696369262845054000428114017586451880546109771222703604883605322209211399529092868876854839864135684282257675098801846805870982038515040056810192222094643801739074679228937216295289157774132188322229370612847560650395903323341231234803011739523101006047401134675708843368454236019787284968142206638389697994755121513518271157830006541274836365855230418033846144331540075938044926649850394201738550281868847700039849405735776350759326472926817487274104386690261999611935627741650425941046098472695985250855376227545312788788546589409909287327607543265634748226338354936269807113694251270099800968415819487630882645117035298814680635796295169598896941929065583614391279086748167372797586046591088815019080122805412664800281772166800664857420553721053839735132935784069905512152647202803990112153606949446620653456474044890375816512983075519022478447852202316202573184413313652953604644582649347744641999909970549138205443435376764694006569607990228352573622400935091686073021954851675391555847630533465543517407409376152371954491351904670779985123169305887518452129739831805533274957435420137461161070639602221683985961080123377026689086853028327584558032331502636762832042467296623128911328729224247798084969524659600838870283500685479387500527437990123898473609344820332805564275048944907605500083464038458733785185985528672642747295707087350195426567498048838460006810626039439236840655304630983625954391373940889763448955868854690089389742874147011213084382308287756704353592848484796391754328455685355544754424966876961983715562594082894169999001647319035499257425693662188246688994766570808310698883773626251315845699478875406755121904441216411748293741702950999512583630635180872363576349041221578277540116232116878393819641218502381587203453462625398059498143474565542420158938480741420698492789418031543309964059102728753616040266330025776367923814566044048732960717564946271479504286481052263386168950317199325004019495971048700148948172162727410362674382923671275697910701362946661396430054227516420947202437412130514335451092959007529839021609267741357679468417763727219687619947237531604787246325913216187552393849453478978644238987060583519083043406536053598817153824139939666772228381023643910965988400956810145841920190540706612044791882233744031235058870427074297864622124411953896859201818649172087576472821386287439963796134232485603561954486678783836042646974995803244082343810983799049195764895420564614947911696320051247886348102528575620253032633263828576205514988825695770732144700239319530953868406496055874773567278254120050996323088916186135838318491058327392520673560288434747113651218569887699347560531411008657094340760311519207294477078665344985768003321266469055697685848839960637052413462071999404166288542844938147153876769437814725474494739741004909397934279511887211819328528720526639009520013107973439717302201453103623734524515663436592328564687544513681659799125062419420974533785413728549825479496928062984259765995621833158842441634674542404508475648254509225444339568853046664740756542305857268016895332197895260084983388742399624530287486991736732092791334096127707267919549553764017766608521360283339690387426221085786136666801457077067894408271370464465554046514180299176067705682854212745944400388306260881594320496827481259788940202623101181511283315994998965534057207961836289190368050716730798339030625150028672678418817296644046730590390509204360120294955083385994417923239095145821349887951419910659779173561936169830662050528035017949760093951966807378650671827523642031425209216680631684197287484674278769914221994690435283292929629128777483767354538608669031688289429591847719196871484214386173203602482520003871925367928255462577147893321766035437928801941885955850676473878569982515674836368517236803308344829235803225212784651005924066948625447115131711337133400833409560132111718722637740189500409102058225366247091237425510399119102144662147277318265490942593554519234529524479274530123988799370143100071645579580860658984580252560708248611513880294529209260169552099097601411736984763962879472128784705858611958166177068212278882227691605166402896452143901004100310232099201465068178985491286432748648814805100817124211912533495427201105690628333663451769585885010739547202294942027814954821476527950343662970591103855804539208198175914990723972680447255589606590243793530089318898468820783325742815416965923154762594288156318044709357929661202522519308806932206315893093721300012094916494585856130479356799918391781380949793014249519611663939753781429473896767083305666062877129457518010445356367857505464767467167632202405134472131449780095644928792148651551689761619252756075455866411595251977381714747851060149135101343051290163130383877476087928333435962773312045392330194662796733043594325280076093491205027723665140553645631479173040284304841021662476362204284955758435447706674680524914114450107075674803288184868809840221713907496873334364153498210397547923946765327237960351193673356130225421823859127280568479034759198302920565892918286371393522076610340658049778205368873858652396491663704800251960650400991206667041963289963737589316153439834082392885364137378105873210209329652597058090395042807989874297225111976422097841421584566078011417862112087002849120085713898383368639487131350120121216172149161381254652357605208406311030069882353029659003762591778480568657508431228137594098359100773952503605202554166505186057919983293521555859246309314750772904420074221587535667472745832221863396122751646711017365104998271656391139911706254992102499018325759832464476623547052888680978733524967450022830100480840984461126994893343994048795898323554932459670305373360825111521165835813209965764738876015074644111297321035111115740071992322814290286978105365331814985235904984321703693150590663200305955104564054286021145935504162406395740779507126848599051918275229045096529510435581449636402310001367882234579915261751548666977128659692295426520475143204020601920967014000629423304397476246163665442166987704172763930018321673381511517485087017777864268213505320076537048579491454016923563613755741184912344758483048571954966032260051831223158233397632233393139380164137586638734491887506274835388883369761186021095776450738320227831654002317916926087505080044395221881338217187785286546466243931899437987663747003513868482323796234449563860035911141247304872113341999421109194329532673862550377134228251584187029176870683519683207653512009230348790492897859184619533987892385027771172976490899539322386485746375897412937867370711856506606738803757736770457015734140732006180169460956674436975582610141787348235944575670452139789136250176121645266335288519486894035945265484450284506477137020057760036286393390461165084752614152892873765485799451563325229222022746739049801260072377577270141931552409484887552791176129662129142610414116439331725973962347029601529670894875344411181427695038537057456248456210295266833475900290718651463975268593953202356785111722096906656240292860485398130718102288620592102296090775306105462653599787070649647435668089074469203576026075191776011699756127641435718398249164127723378229191793148911661199113535796210527422157309817112959896833616222512567066834417981590643588178942601943962554323849984418382663286998638609904202687651766497849870695284827722092921237039776316229732444812667171161662426831878317539986520882166639541037326793165251253520156842460306599132575181536905087208056446294531420287845419534254883036808322926940648847358068013035231872557339650935477054031240443987789657842145782555495517375273872229685123204400979679442627932610347431685000717583131962088958570139125511732918915302468073944545345398495565688652061753611601572724490060118305651129372947992694221442412120753279965302172010178598053271393210336632565878090795442004405394401114058173258011346880199623589273855822292057904559062764548822248353363002222668309438499661802246476049999601954609064025701242111507376346192792160200605559877132960908811444580701914438392336578732956037399154000397969546447092240614549985465946710922133343577088422890386278753009722122562494456044443596371859342027197502911408628850319510179679137972111267231765542219792151938955796766510289937101414288337354943009202430683647839685562772386816762585990908384372134064430901502549778112565361549614812755253194541787713318962390874844770967166795926274844737663426385361702536909253352350787653100467169433137030497514345601772709971620382524415025068951238649799603413379810861192059935324955216330279378645827632736219240958699904401025367257517976987289674078287445323641771179873513263371137776607466438114807825165070823723567156939173237759298172832410270247855027793652769696500583630839610185708196643926218082013560582698957127958452050524866410571180789517182597827687287185013069002879166023366498474998337240868889101009946372689780908308630013245564249429556235240852002553213908995244700637557553035116709506433577625621370167692371660145541326721759272598113463365200488145127263274952095877142783198176964336925346236428325548775948170834433536474118352505901353997207118590006449421768574286732312764477400645606889771668711603109921247515142651828021228695814928749868136908518666871681810270724331143987010965538981169762481656012953431787041421277931674091456995915179070294574715958377975579468951694598893736348831793848975516690178173209921925545827050765828126287736377440485731940482393054102619559910330724838308253060248178530760570035431960564868712120704859288970092457187351535996026027681568987517775729094656981261536623975702466538996500888377566435111557981122393781955248489503308609307147427392472951847136761700123767669717243850187432146841747485739837465427955050963799605861363177603955495790333433066674985779753735887786832543317960302003178162232537870651657761101391340635743929881735045239911271926180386607412683711955152585179431854302535382540714066707492339918386308322294988814556826474543521288040632237513105010583934046227487215873039881041106032432264518014039043131429869724274166520669093243880420579957541058311924186283945255256230170524287717590885500902468120657782018345591024709242481531129336224041688613810991169529835287126064580730573706029885716933607023866571556492080328458332934528130690454658850413255216960125591394785685579763772308870252671585819171800109252389021427945196698354939570101557489241499325246649747944266090999433793987277482949966182243808887453107000348835504661931538978749154109075579154151445080580716751559288398951545828530017247848478695881913110563668215154248845738608046464089975380847856896792376460084284526296384906894850505895539203680513050559421048302723471401391833429067288446794709206211037434760373980464103411640889692820720883332032334883605630138312203805264055589317716662481902771945834422823526144068549075057643385799921597828823257870859618367443095725891862824062148632632706842990384271624757578980405942937878359870421808715276673280257049075074318202516253372180471662445267391625889560967213202696180210229218082860022267493437731666592838997119654722772787057095486710468276194483682800788517095435372930745581617775902160962037178518891975744057410187955289220284528990424594932519879956036715088866711871666673561863013347955732639175156987192315153084381845061390544814014647289233511206315005099629525463844895280029416175808985469933635867142172320162015083308203980460074492469435766012338773581812872319484509243792037051237111288931297997294708644569514255178268271564114406299767639715518896325294317654595814663413368037750859425155507464304463835537118767909977373114982176885953774502442146608239015388852102435569618532759747370163831981595161951143776189889650967046301931289149483914457734641037333589624310512528014540516724434188380525677266989761992577352120187833280864288312432126431029337410420429228389989953915300009861439423639045058191267823302410788584585119979658045689457944436575256987838375399087652736007986626079793668139507001715637704844800702366720763587880420523226969355437258069502199061077366678840662178109712044373391864955313262156298079782355049681116312088381313673807770169359534648009240625110809733829484259559219029746979197468272460765702738854316931612910364906833033819771022561675949846360252500572879133761107732056430756781261897523080972934241379449076678167638419232115246589685316713056868082767007361007190533747118367237951836538172556572986798298401642087919539660341983574255137593404662885740121491155038373974526119162023881897899461109561453551659154327608078648977958615399568930141572266283960214350310832125316306689446422062848464173364723183810620673335426363302354298404607817286450103326594963627518643865042910213600031456505119962025026425639891850175858902983526163225252492814157770410633292655981314004605516221400386760327289087258268401413664737755136796842252929653402593124648249202269273055157374489512645045373182265150602192424892337287642894804888264262716433238995042962348956098979606455339839465557096687813067284696475415765715158052492579964277090403065091568043383654716488787177694773048766508801046464152523321446143962070998235442874030526259488500121275671460326592915453514044553982465389828599066066393595204677260039482432125190920694886346952258019371414690703682456458802884396074527806505502255444159627009073322566398870457384675066043776479651591039471401993000253774789387012591063045423389657866242233896276401065380710385268759124425659119852511316553718890006453390897348650616819959772157096600147410938207428267520068998744092649463674859322411399793643764539924261879134823988661006022808838759764359804070735692033076816045830613143864528201850034641685006052715890229926459492318313136585986425187601529462239352212899008718225216612276653104682493083205271388866480499748643860558091912308567654139353075247597487443695883770958105767985081995482220046037187676399501233370483379547432682679732222663506328927188131624194361840699218959173664045630774458714066201601747645994016659651637457358425682391082421874674904242412676467868261374458112241464224689492628987434136244922191137119641977912729231153802761716513158117106325156364790512672320589677334148310551977969744823962711318355829868836895299645805795619867320915090974675659096765514042734271560961729469630377150596770339561413254178126732248744143483251196688664379731090705922262300675701979375330811710326966440989752308135232361625705762770894407928528247688937097915164199710307822755034020950234713640408692276778113407094081437686086185561853819468018262650594772710418244917092434541152611750123675778975351801838146102742705723419797704993970924305339240715345350022078757550551012457851534991427059542710523847728497732993818040557318104115796612924924492968578184338221674131527996038633060866245470627581600145978380725427207456507892497312095859174633785650691804744831965828927363319857607662008914624065306137027925536416196958415628092502667583849831703765148946565972513707453553742732540424688619400553376526145342196673057376546838812216948210162841823203086333944627482611531438213161001471871305662131223995050094855156096185506184760952434999219767998983687158507963851135562031350924856407145395127903931081650839716096538502354273331559248911717690654424116769051744230666756236420134185821080840214693324350679423447377756833605180026342403819755695547069021058759416574189814799682704346466025572239654173931308525488885972377441399442750911514298334850510357507353329187710122000968296136716454249823595258356284577453858347059135898743358489136290867078310546432532044567064197938606488567670547428086483162049211661076057843550746646868946625778335750500550620618076932871058118968162216915391470536355678421152729629707505844078015576504975764386814909909257115514187105780911532742877888822532018217035776002209906740681338241419519739038282200134017129612902596342601384035170394025246248032681449178138992511046696338043062237739137008593210115384968023789336292400070351553648353510413704991660223702942418586564181058901566669774665868728622647192198860292561538733035608525657245404599471158525101761334523186799943583906395994392723998975077452999210155570486743283558577596983315082344241210499383592990834786837490072603531070464066016339795428118433273432775761155320890745141771259450857187884994290924796065432026676864253307463578281998674528882748019111550452078291595906915829636004757380530960345863517281588244833214467533559847324535893106523044254374196017245285330108076249118439037613489802688072911582684114725261408072416293135526907678252026896104933039787175362098917335972119050668104551918486179009377006399124921590603542664014712433196463725760229234262038530424114191870436458048875472388040449717346778243818159145765727867915441237596232341284126217439458190236177284641923062135737033109235631069643436010391632334611787269464685014011989060392244475716431571236833209621715012419950203920721818345888672326441833878976092045160036396084850385859934844623539956224780964399859003938524865682487625444423750462437070314604793256794090012682935393030528897933181138496101579209783955329853675203854828740047531743731763028150958599738412564376340293258930540970340840153789724479004678643517908142910702061317671799159329774866294858964952790701209438710520583157424774638347175791653372228078349694578968439984061621842960178586316184290468782168450996492061399642553424175300187296570680838738587894067779075515663897521754934938393237011266399326825799853380586256015651756474581539535255650226102232121548978809416109479138922366120303675174854843470740743899997675732324687018496402596412997457169192835187630577312840041004190604344986810649155693357344633590837147529787392060478973855423522354573094988866582594151601157995832988600975669925433024145506510544001265786189595982451976715890214085373822449624795261728144915417180714200041333389281100944286284020808025298101530636368279516911572044939399430339846614370141038021951511805914432589440632957234861723074531590426110775881073738334444209561139378898874539242542755037782716972774941743863309644143413735023974059190492987505112792593616581697072536310005240779547145111290555457300248236445155785439821836872922594117628086850438425860886771857860165263939430315941973231339843729334765161498433294910480118518281693487670433921886482254979938640367285162157044658555464042207559913774593447912224883535422429521500737171883052582300642820482582442977462138317775577833919931847887169077377552739654457703420241230592148519053939164889587358527918831248963072008357024638335625976111583163679293129828716278380492480973460744008441289043911122162121248471824387920771459657493319077052311501352507735050293019772896212517043419175170597498023091751631050714772771344354490281570840983261243550189429115524274440062512956919248106095310962726471314111829286874188296658865942471593389774066613607568652413567209181962817987025160474198104685418407079997782199569379068450119653558700552561613292269310322073749436416136297308745068141926466799792677698998129838562198707512870158864070474425060353789293999984544116076560272399043588667871502546062981754134578040781577478033740491467782516306859466464884264528209293232708430821066220498945518732771065897551726459412179113645874513568034729016700678720925001680222653159430509755579012230116482801259506745029505539344314692752408443709806194001967305702323977642967754411323540690494809582672494680866131337400143477523208926770246439725700059533184273154038939997503822120465055883318501168924749273414270626710908600945693240119633250255221478709216193522614791778073794771664013573969230668998974909992921134507567586858933302004002662546392814720657294651240046720975611939009546921740824213836987421544633538187238937067572066732799056621021303986920466206578690798651804604264175144070832554027856144613061082905856118485883029443608429010576821416634283384503959076336677843404700096385359476186714148664032737901628202131520844384213138659086683769503435167863728843716712852883745925471862818281408302720540975045049957089773843818718245942813743599843313799520735088356588564663400431914373211071606660297818632094250757378197117083776243120062295895056005584293404271036469856739779932731998130104368924727372693901450056652399794019284238799146945846969590928402393025996650941364282738177532256014009819539971905396439732430920473259470119811971276987215836974578047460309213043504729429485538440284216035601902771046832858824643984420093429831759707443332575737990964548053681064524970734908125965452037497343575792411074352815333761267018597094123963406969353317779819290194818117008584440140171149801146096400103322483644493821492373607603136234579767467812752365802364744260666055918848567982099923538406695767417178704306486912477567069249640679263739256649106834660810548016330154279136976175792011459446473144752351071604215564146417821658647997483137144159617692310115030624184334334435108830501782119840933493981555645197056885842536868812897285837964697505599911192525107404019303828010382112257250688655131215687077538620158602929429480648783301879542262041511537014106003800540644706449681018411032007128451330373157277595741359810288521432231763138382043304136208131949121581102083943257700167696883642405039061068597878473295405698349304357033499876383766241469755913395332052869453917032603429411900501289648678000441025281609914998025297665224574769930202358982637749184379055609628834690117949576253812028735506762682811668205038812744498082188085307785774810451370720925435019931345917423104127365982119003859286196332216008630236214503037072594138122850414776793069428423179640359635514442369990422910419862369703010771644139975356553093785674063246313667281317888880670287746604585044230103416156920403326144818970838847432293816291352724329956106934035807297232967402447153492925812726214627364937636028451839644830531236623158693970817760217934286914292604615514800654562435062552526332882995074214677844178778574102771778080678635610434959935427964562061286057480431051841692161068991781727383881413632248100043744678458648041064299948966475891938015876537626024387828147795528236240943679182728499752533995794454928518941482246260326594279873455394678773786663632153653179632621560483765747226192965415681554444666762436759275130762605938744843420125678076560121217310149736290581568797042231011473604291608626389534594846475023361016971348813327494841529934630712773474453701931222812820130269150546046998167543383871845047882074736454857936179798463751851284067849204349324143485927210933671213711396710048688256538058286381733322209089281868921461592352533684187892645818293295878251729905732839047001935130128217377938645548252850090352048923923813677186581423803495408647250016866456467354898910707129389146002352685844240612033392593464446207101556571659187021581006724257704063732135772853229458145370923235367990865330700280367357331142846180881697574117959335701996915717225140798675635531136570821994870740059471055029962122208947000774631938001529418325574723968496743875003506722869241781426817143619101048574882434049710727716974213466085121826922470501002004450628678865738168666755797049372986624360737658823781048048298809875029232850477771216084968828091806638895466373417075692317194113642324362898009873547537815732023355981555293798212211477349975505411823587913064852237982873244705622545898489435222239231112325160090281329754789753899529090705587023742049197498684084037161799143526178442809898390011224784864526776740216385802241482725724786489907501465378525356628817696683499092402001856824769282960822308860003160070288328858917179430778615459898779813505346926884358729975473614944260243798851346803060911158089374476148934833118264410821335293086170597032188111534031601368317583509801285311271836849396200411368856524624422793399454228582989434333364503349941406152808816077320326058261184783905479009055951405507458881992261374762815385100562469567032568972506625879303501883474346006063662270061744929161185946467350319236879104631525996519825578914701552930053785707771117142521621148166479878145284401031942103733945642501590326202299379017786231094766243158075962622544368042283201921029525776587967902886585129014678432937922312155300557406611000741922691147423205654163459873886988625209030439540280384873732146898153037460552578966949827038417616342697049897404470932519351306163238583420868845440204064804678409222921807303795402826686331940171939155841311063958097531390368873719508045288152182807259811187737618762176225196110227519114107800585202596898553467498617516601339646264769647608521029209973539914917148824501898203240408663705789946237378144661491138384331628011604582656376292878059144296671852698301434845737577616910983486264989841383729889117318349892153619661236079959396012221601699128918736312074619864136889974156250048751989034558832477617690144551480853724202339024993422054867192014527078104458937630235408127778042378970283928970760758622227125012486315425145253939984228627556236213437398497618837424244807603079805329191718453634140484091376456569503775282156782514521682588133407972428827538442023731020041750591843693668778055823495379952665176909795173814625068300644496898958990157632500805199407458097100529225384965532495444049110919979692944988669148368680123056311427900333389775046228221311298973770719344175441264816146220807921370378946353604168639586796396589293202484086491190719221775398783037767127750196268093224099103559346914168633896131732363363867159573690013061049687970044506200300967086113280956475620655325857015979213002771194214642191517026741239899479419217614004185485882948126026147448040926300767845423355923553500926773285849135927863711789574236024759689510958937088810823804312079045828158618099850121060589474030630664965952146653150397237915329771930517690245809310490982931411005543287616106472802108231049773316313443003001338842904542896039295797485457991285873347887118826450427519262860122690180449151707325914420757967129583130899201872181223303656212622666880785055038021752896351689176846032868143463636173809274416176983414919354443465830815651294495163948204250146033890162748178606162024723739302177525429063743667151959836224534756251136838714134732875882407322660937585194223612503068684785767172474117805608326098372348647849197399154225173721286526929821220184908964677659906541242080910789007100815198199690394195036577080342950537347889963809495466418542551673904342979656415894974784299267207042459633234963265841886878868741956554327776636801698427339193267151756248177876691379748781522267249451078042594321188181407679337526405458844213447401417089753642331769856806365257695468394661182240481025832396178260001390743018595049726737718965519754407084018722066091883230042110869966287069300905934577184534028376980872207967443317181299307887941087295900934140461607231964824395455755589867939779257871019622944052560895224135167352912752007724572100668613601388770291735081927906451238871427198622530057700012105493284529793973364816361448946127267797011021915532293060984940753515065342740331716192774227047816392533022983383899737361817896711157565419174362110868475203659620754939832215282565311951640491148215443809351228054901241812414345003424742662153753754188796891933967972291935150199615612279286874498400279911107024720243433929733746680862416485989488478423624208420958736609875774874759328341102672310284004601685333767437982453228274674097739595890325582648793667386830530271403139731193065229524125585585998984936819819869651054943692597335452344918929616385989862160775475323458451862210083596792052192867640192637433319667694043986629641169130662457225568553716850981027902056182828544674266282130368627165079404204300733177318070471631796069964132293625114866284749612996181393971018803408697424887139864025454783286563514764467361903725983842694061010736210101626362649402745239506701694539181718372429695206402567951404087487169945714826284684468439365189536296192299563698926136353915433944960033621617757592594455253567407651976962749148507774644307930224109271806724786591600606513621114244612663543699985281032425515890879298116104247207753480832344769183393730394099120322196570141678097758657281517478111103359272636495777215139040870370758675158973604865378447816675202711903052174678045014923630861242629854414453484784011445329288728622578905851176828268535243391080008194039705968727207778207100238121104167589480601931660231019507890572526350358944965888652314738785772550463109485433996653727569881892540789607009394776650735164385703984737457150594402168461088206416375927042616315823422848127630619184523563683935084229066373115719738626474774049856777838651829069576643924578765840592895534417480433361088073664105232299070977523569700010130170773243787044432783304102168666883520870859160726572239138112363282362647486475627061252136809414867919340109481459843986774982929534273516575571333546797052143382301183557445340994155616161447439850320555046276021532856106284122684019163357154957948614820227158398346633709141583875939921949372471942223621394921735830346049925040625424035394306042250887041147327827979344417303516569597657088791343337987848933540473872959557892349615976218403197751434616276889085936520854527059195425728863906563126358727166854628748474972178181183879035787720499685111128639082071531610063125603961049847007761870329807190405490880289893076053330506648354800470676688060715203703913087070590190309164243352578525072061918122777113010863826332148943731707214802111419235279250357853056890433703954722539221017903391145476104660542458371221997303592130096636983508399857338699754258431973542007150163545866807075753857023234445563560892752662468742598989818769000657492113232854650719491303555977228980713612769570549211275623416496991500170779423302829903673517627310652587204679430172165003780331447058562167850779759476518267556101794562582283603702180501315880620943938373247648974280672710892041198092582306642963567314371349239894505638455781901927189313509538961290306342992021352176667392010416944529220032039830129529882887537052988953482508348379753241284790908074649658476294273696209082045809364021004455605791601407091101892079405386059900165720869278587198244985648940468016487079599212483895012325081658348989578259707599241828272630364368686311245014867510290851313524888591860161910312776086053470136518865455195734827721584681755101606566849494138565735756875547758774839853445921108737618814635145806124122513071629195578182439515274337754111309238108673151677142128423755370281351318439909612316370253761281280542271091329754613883976139108996302770362103021495727570546913620842102303661014030711583036545280743879949339205232308043917193356890847647964078278674354441639272061248166559819803615968860061581389111712079562496391013747043884016503648434805951497901936943662367982262682641937736499726574098047143539776179082875078708744103504749142308473501108690309087284621678136527556131940632591923257764013837367752033162078737166968080948247194116146707482248054092698630480230065621040330757709122871596566163851588123035668445667079228341927799262589928315862396388752377325394411506131250234061616345255822834841322101105286545655743201312406929909744348427009056807298376167902453105781467655649406733752960461571254440078870599300461526456853299623881642921007774391957858867176583895683447943878065272766877533857453322150862615825410327964516909386685244481943973894018024952852944319664414117269487444533842363973068060541249139327985555012415981520763651885943693669096977365739724961030445445625142909742324652395994347803157426790072414582866778000283226933443835316830655663083409307175585018524905335015816565849479390867734144762006776558672763512939096922185401916289183729162475035118038358555114470800093847924943251239691261721954458724893391758690707938848327972478839088365023575372378211034640847906259302730563398761731299398303663088904456793637368553260545011764915570179370234515332732067616827475940301463546796829214552251178528003262047524767806359947771338605269346877968411043806431963282291637155612972720636191972318353434973749324251184260452859143503201471260467268224325448942125573128190692612669404037588159583790813816232724866632948056357370933426179176292834971575789988990448692352081033264832538462342422518626306893590216467080795658910416917235832348258686146234152204650725293503270229669512428179401522285184460207891616247621609163738877957395836074653767036719865518621115537069037750614595016433523509196419196877660794144418418964215442039080470264800738979720312579635341731958075029374122100844793695818149687767798221709532034802250716408299565555628357197746915159534160381973504231389587407426427031759007296898775917970707453469746294191331785477759466361801135272271973269292541572902539008919475099152987526215122548425363102713653284522913438618511512658037179438690361881400639096820202934520131237410691656206855598262397923469489992257894907436487936548248288313257337268066455730741486931898201930263398850760819073535169384201220249102130123886694495654701548274022801921194352102096833648437097081796856721590716044938707967474275939431107638966100308903583083363790269017125299063113484307611780336584298059390415125641498351351359899250367103673848593344127358522822962933627396792078943614371949301456597565478665556954117384583211978593525330234137621753960613296972432501647352400769930169058560882416707954215454742380430625439261851306174240315739546050654962423582891498205754936307743680170321009615512325960199926828624114252416943369636184837178666475180460409858682863212648510803259263999883139145873101408272501798235051721974474989388572779077139014710136277424570321269579563269377351984376534369299825644363882051933971351611416797206518999947017751579020578698350670264509818074489211407970809921166870405124892492381922470985189750230118992826856205410289133033811858916154071768750897546058395270998388324650563631840209775404646960167342299390182812155190013414177014506431919495747417926255471770039631581418728795486599145743005205718991346981040627641913951484346176662636210870249655234597792961762485199428061196244385029762824778364279379175318335576032823631850381209559663796135959824647303574607602478134680121786655887599481565554277993806028948836900463175569196833124213540637043521914851305702362695867847319381028081233146236573578850219536177273500618401136879197242569838072735469090327019347143855934911929966922097258252984833394243881139007820916843274759404397058474418317497391880015763496514451875850627248086842484063164443914258891128551452609399081219081253999324749669265394294439922696452683508737212770712778489276473726803002883480653395765257628624167880787839357736618646719066082586881863895908986070826125628776922874274681421291782582809998913305136961476068364161688129534545556096059444752284517999955888400262284068493647753532348683276912402466785109502809314129964420433293193151184655832057809030800490470307516986066579302942561062197106789227010133272312265003347950616983367888170926299102598825401780001970049314036279239408193539752343903618575569373790218060534901949505208374462588817720198563480037725123792320334506856491267174478860682453935903253360747552138568585807113097446677381878964298846712568168911651313197322811874572703855991955392188047121712243527911812584436624121088861543753275477307012295996884356893456802866569485142227138017174783244409948033203665877234660208441748835061148040566004406306012051094944662280933592598318410230229806040417124065286548966290897405483102438027180972591782543715297643093373912267187398859371532370749617352266555588989428225033953911148343456678832915084007663683721090040485024195121556608744588849608107692029204059586125238623259267972418664336325529185458157710521978430798298557911469000963826399236161683527087449664374810151642827978148862805662417963790496105505947606135633605342297471435332800562423872236086303531798532772094310053588621826640684621246017312852453327797805759574231950211776595103849462514595755124657139046283703387811213753407510598305601175498140569029539735134016329985630360343630339342427309730101883729947413924459826503235016842271791804492261801674733767687464213445265486380040342394842424613513609022210244432461292354360115604691597419739642556533129360655065476028095563604231733543953736134010905455181477487281671861013028091750453148707690334526922718247974461169663345043624609101872543969989160586156049941783009197502768262119125204353588803382865270887513109232980367303848743905574961187513766249510647591260489945243535207163765399997392439036459629776383303802425228284571973536178932179024654094059326829003157214605589459534881427780953533548156642786427043839986569307410756525902181985827937480078300432294908942890242307982764659847093420116351758316782704196573608172650375423343539258567200179452373332683279239388368829853276653127800073077217701169386412681749324292224102315825109961928031452253168227140109839010602207701559928968458143882082477282678132342301329098770765594829440334794077086810712833308234323186959544759887249023351394292958112976086953500685082313596345078705137545560112507212319948562602495179296720938870301579793613121371045660267029119806529258958118520563421841745784147001235097681384414846247272536141818120254133245133518955460381707215716486350621677267188456878811427077832247873722937621739901161220312336547459651232915584607022625918636403749084385635467335888369615898195362475107401366263227888512010840939332109596034028126861673309898567782410609348175577113508266533149019292256321662579683422880497718626475888068204659320711007949354024730828372936556361642692654191551359340219136082371839710399477627639077652504788826691657114731520641881158017299614198972962011714882170448373094431800552794832966283831740688679033294962493370405293460460398174233338756397758386293559173291544451059186534073509437273383965606794861925953708802119038118639819810934535448302847947692614717052893311398775852140751891399468195757379615647901398101474526343555030812808481621509029759966244386582266478617634013383491620432299281913426564590686118722342241928342249954915590184851359424610230090426918781070919142698579008147331292164381475704776264233268626525363456247669100392553747724824702353667298540338550504024740441214837938459132347731130043021595794257738505873953377194674638772318701475626533613929446885833924568218416701110368538430726389517350522155557403431818796149053401216406089531489298795449085952946836264570079144358993910220515089606257042122040955440243871050560965319751896675060901984482089286275062187716073915647105616266322631295207709216151045463031112999543860815569832304976137778073566204435314186639050994499510591093805091074485274321645196480874091771594446637572556204131791447581251054216786447564383573007371123843582616837549426642863787870198752418458527846993343077126480703309876886934320580966888906588950827614446771390097942114099872092409432277835285320909062400140738033421859299997046977104347246796626431592301688244550532393662790013212744164638504988844508852535376696982848628509727540352772674888846580281813255895750309227687591387288515886718740446089153199188754000787183551845006336130936818012273721934298038264149774420585531951010806306545025885765029749180310086696761316634197737955223592639581574007831894923749054604279274070929886661270892223271233600248735061627897053955065603756496384636496676497670755496314910186894798128371483565252566939954113700599550972936274094269596491952164720276001835225109493128266560768996932035998229756787573166304810764984045343694126938178722709413755994059524785635050530130963457834998243785739305924572889477449373766848755161139323936220112921505971021202539703282426550683077583563859800952566178777859327172330987297724411617131385683662534173553446632404591538376287007959047858787405581399941921025592179264724089775778265742867989929279739419167856191495771376665980730691124670096252106617801591090350028386971458741841079535494792972228335926343649770842941546531898744422717943154652014378485424840568540108855584731282235373342573725127795269562148103628591322741040402058049561008244414612441887921114230244255332933465758525639900726901234246326238083182955070911116075097024891739758752377001238024997864790865872293737515327546411994429411930401834688003320288529303569041083072782616506432820807143679308778682903607200513518925577714372026385196200767123919209359889787433303213597836205319024830131869780614608666528170426297569225796923182863666166019759224318033920125953012938145400211173034287566148497433580362528742424890733600719869845917178153189173187532853173362562889374642309406912609863320401892239999400757059539149083417056941072780198845828303954575992020298609541285576064369376923831480089997865097816722435127728523702221764287906679094323605643326470656740592696186011173669510066558992732380882064580661802551276585779631205856831132837966055399344839270327850548742710335178106973287595600469215400951740403276264837005119537344869102236708245604626263312214200395679924188243298532359251961352393194681351833144428978003813270453251571404314031575557740432310694953740922185508077215634081173112152690364099749217286817989671814916614169990468691914964736579218054047812261046300422648546444811072161096009660655547991074451842744662150589708939517386478259307865666020582847336207496389611952550355717127322122119793441462720287182226750618692771248997883570256336403057415013930215762544801606830229781081921267469888385513118588321284098269760066798261587928008261200555884405967872989806791614169774957865062688323317989585050776312293935310710548099166451336748171277343994775999295807040712813673608681272296392929758248727189433062298542579428751065406232691662744130579921584967502570594746942992294854444775432423364519109484667715501161002844328870732288871819321958423969096665745987270763222858514068322411445256919721766955871478036974255980170508506943772945903320090804494662576894712168686482201773572435787980960710357068678416351961890183488838346301496759738406200253335281307280645142204989914336985830260868626386067611085231986766760880372653662276586660767984071612281242956305724313969690827669642636591609641188011614364403317637046110028490462983798888403841058400537444921201001334991512102001998528094072907103809036801352096982567874281904883164002450398863988594806922419399050331725470621559811897510322558788688717081349184828224657676684709486886830548762439470760352793590758779717702968701137434495256330410151903456874468858098966808228573484251191375672069457857026134180780268228145875756255159426375211358668893764967981778104002683019840166055488715545893222652244818535055859316491221358611764644856297737044185004185814323069221209679239161930459774743020311801892403139761749064602316619842081801312154358797045445942286522923519010541997329189079472572555973339764032391848132507082463698677783730493004724139438936559693150881857826121812939473522706350703118913756753719035980632201805340609296410648177857681391056148112661248363117894641939944146587420564385216100654219650476620257658994401767859185709251947021813811330783932351432593648123735379496377047525956719448658700741599899646905521348514413333921886151687641406114903686313064524846649351579648477578994101320780432403223941039586821963462019672953423224444125581385737929567347398292097051828409210017459015432654292222366677266151403452185263510452995505245145350127459456889576702380712010317530017108242356922133795969520599404165170230014786184137522364292491823147235010873940346926264930108268235741288293428118580794969076736688817380179434185487596222641533250640302660654795210131477021418586256894191087840580599347673641158298023369999523239616605054101123582722550114521530889378089705368545513054033194860909056376727572958587924072712847535540395746346728417323860731617507004540304563774781163040215243355105110827934916310917028380718257414091461273670433392716609385779072024535032425288078317237390507543585094823477213894050659259144657847746472050893540934757000565126322232267363841322226369171196806249754380917469958183342979257191875225967969299534419659110799232513722818973026825267984521947484104038819430454071203928291095421954123407272199984777739154965104719291740371556183602127407334215349365281666659859600541276232064431880687403711447221422311563688963421544042073579115395467301334737146935351923852374555976870428168474128033873051698709587222506896664163329444220589190358928629480391782075188120328638084961138143931744100566989783778456811307900580063572979777292238676295896864789632609577557011099546697739207537026971787593257134623584213900660562148627653904337879954466468258042528226069622174670218071079705269884446727303981770711654673008686455229024745214511821036810849598278362124798313990463264086040659286703820103667547692021805593097794237659098586106925544498979650873041056798746635599453124025071316390946017064065552965332486389033935507080525026213226431429245223637332339222534560318574038216078211183421028706289107278460159883088847227843349887004410168531369575526185481901848861350848982083084337916361938862433471136512416068812339803968969573797223731565992752776361058521146706841469197259055942032656903217872099494426531864656386232061167150213738739549160163190880340183578973362472940075152338889879188928037390344943494242656819608445484200583160562932934005775454733974917708603858284067116282190276431620848895348274071262517263659138267666456671867222613079393815224148539582385966324586728086675068115575087051881942603705217184345407548483483997596757538990354117026483540832194165831220224575707419472391903478636634003139237363457422341165300074272675605006775662291897536688128451697750963896283929409622082198959910643030265703998953621217524769670560503371431695099902922613003604369083163226984768791813180344654678695651153368167903509759857061141329861317387028584390663008473783957749078671642767873078199268484646600965884853628406200401865598558811502152923718253722521779831368514883393081453491357961189588944850158476994531342849808366424251109666013778911884637648515808268654051493203487598097761456544820948617066171041958187240364866239211776958096824676107490999471836133483369599097657878086238969665204721901670780558010623458838309249143233285110513416562868069049029711262942262790942427018507362062409717042737425315784311605095905009223798027358778724169161521743852797864978399852301097767774500701415962968993517508895170372662523677066440095173145208998557817246763754721311638967001614463601513250663944057400059800847711408976035990706215771181210737646453614270284434828098866182509222463146244472862131456150461669228583585977026281693627833438140516437876901188281809097458206281673262910805139072210250885952744467813687346699933747542911764530012121275079077423443871105966718379577827012487835059221107730124796508507246935278799469502395580454761889671143019540679591460918927022356899742807932782810142622295638362906735048362900340512286710090305696541414415336032067691349716967451747458954808428310025994144222073095153432194604039204997529282982700988107281105594554856517306374423813835654844168853289225838473165636343738646739203769828311482952055757798654363729952662262160253207826002817252910053149546423073788811232782180632692483042977505094132226440019993817927739655203257454518076859393663834612409813797223747212752310093278411019469852624053835717616286754789103865575844911679086811628619837382577944209498216241061327684246521095722761752185763934166802736311010963768296256674478870688894306429384163005429417964365442229712623085515105078455427832410592531491025029772267273374820734388571653631901375691087532165686197259927044889828602414128347221639022249294934671075209322035559157092175459040065873997201333149253397026727448782979680967340847859768969046674525615629186767612244207534213100365577746724492857561757799185218409479113806978120927312729171828334868230418218250521025513695789773697874329476557767060349397728098058579965196434348783516654399402509347829790773599366553276442581167517647025729729112390165642776341289936659026272576711588295469048141692808725895104587757360081979248747132658773565561515490124200163311796458901380645018311587455480785553128789262834642073854313726084998038999302345514483029861470297951877394863536865270948563674144690508092180139969203329741342813079538108377492808561914411644342708939589267021393689383577285426743718530893699678539484703863215393963656475973640425584144783849284945119635211666990933340386754313632476702603117495855099537188048544735375867678829758907899298828449225713718430958842870047129449643599093891361657622910960042702242731101664969133535734767907065473836832557667256638021071216195025086721544234683036303234112487078755323327262118617156542905360582568419299712175706298263884297284875911611156441372726438349531364690997498187679923570542495028779279038509478657460631020938518773751562159757607645104475186383166339053463798808094553270698293979090008678664820075367035426750942547438282932637348180574700962975460421467850977924716842589021931697323909431398495315937896918689481794660798974816476613239781421078199111330036281179785976398817326827124195966719461933167435650774472105363067915059791586491993288647525204566250027364167437774515123670312861462526548411504967743252799876472264212508102344622029547127751254377569452656517652613926006243395019084057376222717094644192751538291383011244518537387003832863147197051942161942994296563066283453863234239773779176472180331538215073190886601347400748203890806826638433452555288501105029825113606322053057794737667355412155234061090564601816513298378581790402183468294629733358407864801367871956857895143770938057579476773299192340268388963150295657181116148418343946142480525357937291668230655267339524080147461991413126919497538396368943999380074407361443885037754560817410427480810433575274326394032841915398171657438538390608198736435365218787165373391705362404608155887495614267593025751172500371192022689359519665132847615784922694439732130388425415456183116278214454970073388843668558734920790682482462190988134030753174955361895674598194244489045906439154673377189403076970834290504597168703765865986983130466985401612016255332718419220496916314773844229111532167507546615340987531167061810167778295563092581405636884179286271287407949638749458212190189969320940653129555520295644499161848903744682887491756272954603689061775478582883503131645037342670493345176324480714758614693715002473408316605969437377517230223869183894607711634872858232250599696502939165484147916391815632234486500714014772918101874846433323098030171008543211496812056645812826597508969475563966109883507478186379232532316192190169004284315983799715855738861689220795754477799760461082652665575147979344758405294681835403123289833684380693328260445289301641211026050752303919598297772582951383837214287189193011819654029080168734765328071887622251209229645663107529198855536643853921739516496199773996433149282270361314780038215957397865352129694423514529231011461269836975784705274039515043044869027031930137363101247590283334915777429535446545799388558780714322178437019790696415564482401797470680888378236948143700422570235960053592556253603491215840982296486217164686420624604222365308852212650172379676829258421387722377365016072295988263881511757689388967434999545449801100734366011380555683817770822565437022304242654334606987857835548645669442877384252428781030672078080198578817488359166937183033616126269197322853424471252269565918350715955243674875907851616946805523829988209674582110637312918574232771367070172128983816104174517192784472497380565398972646647039730442884467017799163947718805398242393863152976321619407658399295956436036515101479880096312940318501311345011495157280847588582304622739519208382015758836822921939911256517479412160891383732236495250616507204819230949612028426431621859843229764801560468151889940476421756278288864855069050291555480764595955724144957601766771687622818311905789051205851225123457490921928457799601658609548655747408646278137382219402725225932534676757617267439799170071808716955726824832861599784313737044831381507528601768340364039919402555234772339636454619920916068938441950496669260623861549659944954574179289289179177058215932094123046649439687397011110769643735560108987023083684311315475072125348785747930747776752289061288977335629167691532088837603481463301437478460811470091915323751423853321476896391681888035285992771077151114655173683349836250869191896792629008362741196819281641893667504919669423130572534126617854060268147697237815399972326888416887545052365825847289596251843562341777546434042224362975887863834503492854403890355180661449194586223606159070439897532143382146425152194360059646486203525839019943853396529364069140177760380777137237541369983860997331280985137958048104458338027790206719076058365548100998706817272633634414260991534352189035236271218559709419696169188673796816274710302673985993501414369639167677322581212297623676308034880873351744025523028131138067946360722899342037888054515429203481077716130439102522706530361260715277163321381903430512295842403330847325032751313687721747000417414691813378209004924081800753421311053989145772582881812086422529640709551187076384630901280954366741928564806759899216092090651179400941409472068159232417128961064958130303140637296564582166951573931928240552938257672523887452126902473423714051740932850069306640931218148352011853665822581591515684202135537416748822821258399606059208128331368889660278047823332481386215069239153658172638831887944732349858478332737774285385016477931806104625240384614482641144319110515382932536447530840962951649112929671085297436002680708961731114308116788639134962094152732293792901235635792704796220862933122862224906472870594543814148313339997285108586250978476287583291703103836921779063098444509471185307616915068125313736797554621714015452492200360891979419052478411336177365524829339683664754207801335454544822471458215612559695054918586753513227172398028480785712793667614937852976998177878263419888395095389052484990777352756451179705825973648464702267325814050584094246569614462059499905319477300089692962553543464689454874166495846086364827299415004987865331581986243263648742464386758435305130628592094568515951905741925440494037441280667103636614823548961193484461970839430189421829280443349671882815922595855424384626444657920259744293763276061704387356010748048410684598637533568696502073733181514661992118809538553605947704716468236030172924949487426073795186125159262423532602674277131485504617756105027087694206336543508965986144833947188650693782026087727748697414892075431466496556341031694662303458851573520002160666776672017201427298219329548409779608177750815022372403615211481694878153359683868452658262457461154754118969748432285746931689192055307443194821134595438383626079764058261555366480481380715037695881072288779274006857911951311227412366194949878697262811012725764155521387000005391071043512514752047199456992820143925349713705513729447429318978255462905149318824150879026313684125705486834413472900519389688639859330640405465798730547598957359242446682674258682892326824677543335514498522833782860268576133980584849179765599086682559467376005034691494473415214075315784873060800483606569847994342842752198524960838303472119633120333039295663966534172621464718764735773938000765112811477731985054307996883245848995041963850386510979710572429165314390634025964873425348359440466652301808130212619667993661422514970764251332905644579326278562350809353312120091815094883561502170237528327241375039910251220509877695015381465930185874591141089536614384103890462292400433401305970523546928207067587676742254142677659541479086686720759524621347817388961871318423893651612981818708911983883696379453900666727344003245285142005842123245715782918643044810810873773965483552041702793288135587084406798240784707728696698959882585719355128346664717017124420865023678700219080601194235178889210197215084580936908267207629101886353622116913418163432506403786641247144413397076088151298810309094195379778024603181620007114628414881222153638426617432150519327392589221723987020108457773404888126681158876470172982866700206131601807387134916603824968101922421226159892401747091687147905375703935771479565509574943854691493634844643518041310225164018929681007897077916326113685973248800411951325690330222613393145685005201958595874410978592823809184428821820940490581435266112569756050520533485446862586551980649987212358637984106151915511108967466052781482886096083743641984779210148464728937931264504377986617714229808651642306594122118019931933532814988991906814577306548511671060594706526831452105997708336794950122935917533112654109979411088989920348306914202530088551182027471891121983412135377412436979151691581715980234552143333786059101180605018501164642919979580452493952826282680022233372465332038669604324058688328501439070556169511942839977103183460373940165944506067160474105557622737073129554287714522926237541204151550745272949360768415401077328060449995192493604264862209555860432628841228126370920735389870940722569739244791561403828984706757222639390045119518558326333871808822731876608639576456798643830697008165290966317143110418685985238010442833356747733467350707759954626678290608755871780911713847228539583456801151636964737881220268646369103952812983001446648302736945635952211289571677238844333591029772285354514543607242647522926769876776754384185596215053470666365345809313020815212581543811065168758249437010998379740652742139819391616143604176674002979718577320527866830382244470587602011296319202242266206183598253731197506368096160393151188853746561739225914767600890932257726422598241180613187753962795680981100893135232101579658353570321877804812503421696578802599608511584678809199280246176897287540435767413505204112125563046588667743297183418201051737124572125168804032930533749684079631290077192422514499167416140790454764607728949855401268268557230804322295808354549766441574184642827881564298547643012768437437795971733983626112891137098328292607302919382598171825460859924552605428437197030938692395978059691213229588302946285273589504730837253862366482665105388745520949109597228784980459921107981135540591194588485173961056041932339350527072973591012101908933627888270095386198483968183406012233374514487293440266678800262598437154389710267280152453540856651848823506345934075918637199797796762603479477202430178926396046717270176509730906611277269052979502118264933960084307839256348714771207005616224747018510030289129252377490598808602262692123489961869786145717714848102430721005045697843697817299944068209908276955177666250420716522386222352047352776017311409254835271503685809804480722788627889491635964035157223411602740814222631273506090824197643443474563669753862829711001615977114595492521247369536832383046656278683301272784658776386671405291393914811451017224804553717628932631362524483588791856051927675006761261112263227493392095872143289988309334070924629328600897793877392027496094701524569457249037648074641488233476058509872615212205583911053838600531795590914583340171988558795752149686057941081970458644166431604029602143682499274003540822215470232042238161184116181894754917256503266693476713617270355694438020273171227017128432302044685429219984838291590544918958679735137952794198159133118294437512827981788106696317837878098763253402071562799242048077401749903415491861823036650903645373487815124704713870978132676361014324118359320857414167375532754145307735500253449332745667089375128638748086847372704894384642385670545158601532881249285930558000968438731816800473933544760965931272436979560593451313459108193699279447729531153369266275319697346343996665853200386879179550623007293144766395461890218046527648005974356439170073393501786252459558730616047439310841211638881298014610926761791740965190463927389089017379162999384279634702654260231321053966549988833129857936358027077018121645667014515248031223139203461834209191804497499602465809053162136483278296539508702025191383415299935566814811016557111818890932873235172976875957254349726062187131562851346896546733552559488191823689360276878436891864205747743468025692373499392513957206772416607628208643187975493808260126093916610454508357177808210378667367566148478131507993360077356959616077682714963501558302587044991487278973942847868040719488973985830262176551661716369559533558282986443017404621686213594449536783060554657368614621731268697331275656584011916000029952358371859880695538848583047078199326097305175089681907142901151128501220699336579015495476265833506979275947069347515420630274159966733515404777587749051521237762927946337076985335652511334130571169134825790911508452225315235408735574100023341978422658038551515348609638631749371688916425321254406829360401660672139858411362113671547101875127860541732091125081112738056312422464881222603272596069604794458093202709707797194597429198430758661356735951861433218367120584514870550478695309534172790120202494149914841798497347575628845493061385079138219463933175916713784354164793086481513583170616961632891001836218379233450490009214778309065081204451079145701146620302981662797519767688842310663683372403173467501938848401895000140379076812237492621521168570474437149848120925964529277180013815013695698547132771818065092210313426064825076438182420540877966131650509576665070412321485127519290309411480757534606871864602371568155755596324546760112107764721555286989143023467521496297079435751206520040286472096296583581447225021852406155477119316341488012331174520645752488928174820871008399420905993084274110738770929016491393681190126460953127198950310578078704273655782962221614765378261935253274565965502465223505672627239239288024385422527039787385670559980295139381345521864826869686688728919719437537609424324618346170937487797503882929153261205674546403554394844887889228551006796761222801215189021689517130156416927435136437316147360045759612098238467754176312166991339229935684445821778453175336955308450864489414585370767746853593587237540099550689990723133067900225515111956675598769433002484309918519766097261812919766998436708401949977676810523908085895198108323373302520661027829958914984454726013743201661881396740571421416727966204733315490977675052209429277045577912440387422447622918173756207873419458473949721932919766943088051149761893047254930994961771520786664143059772882816684504737235360603145456560962544859439725235207380800415443328985007124423382262741174883806225936584686298078774123737726633769298002378214489348272221627161708629133140341205242483188939726309192292232518069187176455244771234707178397574288570766242531737227582941069913789830807613832847888718640009841808408877679248817784289195887487949976169848948817676450967874861714908691635973662027086176586788363114845006141689384081660348118144396620340068241645214951578892607802253746185770056051947318079878612034360434738405715673336053926915720793389940970710318706223961465675392220058439475594047242559082905751365108486694137024540179262933798532091269225000433400854086934732364029654371837139901754536538720310841873068788422266862828766336843442013105702982975071290317098422023258406190630467691961587610219703350170213884449342913469050424627157245969040641096140845298095630010724548705365591514680064605308089128531555599488367988033188125782629029081667391772517750738207504051875302726271105218591069569755879860491045427265019314407048798945092900021082634939232395524258374367673041032095739942124969553779077474042436504411858259959303759262089440628310273800437629215388974927472900049385229755226376535701017141302084018887642563982240135958115565352695543556321507901917093329077173764771296058649397211479567867011100225361774456819426395015711600391581783511499333884123628756574738875777478043540359612801979824321737400131664508839146390130107982530530406762509658957980772803549361638562551262943239189579124833566596732646822283706746249949016383608124264844704053394480719699463287428106621864042407392626266873135135575371030821967776016559120805247319747504244926287114970431225873881037052726872515597741899138425296566859174315675894538628030960389808284558269054206050645351874049372575330523357231623083609037692380855284926271346616750491791724762169867989021170648309829564904938588540561174157006334614196921458215987394664974388782551728866281150111462727093709322420240057250221452188240327940298414565788606102404016055625016007720635548532966883392293857019282672074748954998984583706565995891321514629861272777332172048315872803456593165878605790534427928568958541938680402366141188289568478428419344081495830962511571649546606738341801684819288108999866129059662510404969571313899766104654049612638814638255713980788341797518924452830897955006654915607479825531280872228309064081056455501281443383743850660840770301465510325517787171733978115955898153100137804618986508077970863984339245055802878376516634907772128096346934091504258016537368159766753036642736698086002645845892554855463817944935578365278679170628097981298585142498332547301036928023767385748278866492454685545038707252026991968504884512796992477739338698066913453447843104176751943575229755360180694863861363632775816528169076093732158738567608485648381463211450955054559634379541557820411223896634183436802642378613496191750326108392695086948915057062542513592727744600226088952755995752747969859349112541878718066814676803915405926237530835164255609616380165321542107386663845965301308067853957179717101869055983045349675613781767656683704887850419068127664948840942156169751669110005180864842237120256764607050124311012890762988632674392494514136738675189360254880720516579105298836182382704636957088386046963353935328753488976936335289646341341362843036029745454690993658411577473616689688090984868389761110196230920971408755015032579999394603389983218716021823164056674197115448750437348735477219727339114675197503606654625886882886043907464456843662015369335972992566598763005280184204121822992917098418534379823645960796598718368843369645570968201099855770705470713726804786789771298609593702225670563539493559110567681319902045779064254951847171042686127009680972868449952506338534920724215196206858606482918859648515876101160716824377704890471812082131276752301833045347203533070501572365654241875776078723138112085300785359589813291656554444094484073596076531429174596162087791104049584088804426957495470407441571956292074934170695541317824567503366506890629732155611994740215824806136226295305960511493321534000168585572961241699129415103068329783885797574217486945671788252168576738824159806306870279737927291861843581965545293709521180813154685609744368429104464013411875287242711939269958226868325561100337569661672311556127077690486527231375722936194884635804672884337476504327817044133778593526182318706265455032467825711584826251924105242796519134422381286403427854408142401187688535472416317631189225728468216404092494428232729438763969867975708452603753291805228481463738421783179238105570625767736164962103773836018036184070462107952810742216761201807161591877345382670489346041707412146264716032398225387564203625640917176245183852013530933258422603565620918303643703814595539314231601049642638970778133054245075840527647331140195344218273774589642530703259852057177752359095265907145543709451545326033875863543550015125283637786455933182705057755997486262529245859667011334268458440625368370526758606972613232327162134200576143660588499654944299001449150415961152408195112786488200152265144190614901530712448708300727996699693859541115241261910334630336896163003514967246246040899819798654058652066292268019130138812011283927275398125254890730154968270205312151879403028209442430818034824095698580765548658726112061127427038033434515813323156621242869153891438195077198765001549566892443154517315730346668646919621477251868909505159628558773353546067841622746137417271066110825297962290178812179108946451936557249469513792261062061003559380212645709164787995888932028791933728587902888318934093199399903122938184242803993187020444296149821527000653463049094189510331839473793998727971170411462485484321325506733108083603625056206906369521581486541343456576386470883201398361555544645734528303473572371352008540957097476363586011624071254250583062695904784826397768935130687185458331813509120209704563228637750353303947470681312182318834054019199885383446572889867757888395967844551449537222851090586996898983023745541344354175260892284260870524941143295469830423363542494015795534047634670500992153655584841616563307439911515963834502848043596033265095125990880182583190072207833320933927471574203155789836100169319560225681898514824405438132137638695428291599593904293313788454564518246323853893744514570558721190268007031944731185973576898696051164633536658389418638355798672093624605980986002852939427452124075957256534049626029327554283530040737615196401053646934940009399066588437882688590881218021964130601535586498072788873605973888847410092442742667578938763404542219834384145337649618114951899014031478607612139887294565307912292990744967792437010188902841915317383755790623915368107788449127607078337798641543950117655012647772033349308855381934061357295607788541316430856239213331785375905958187648826884028862185223897382075791497560123246732242908089725566319217600650363690250198406440299745783755276779071350838159270445243407358663857133574273335754349359837937082617136133872438828752273096809528381407630059667891100979236334974097253873947398512696740403731070568955184005329682365943107941571812226615754372100961913965419697162245647084415453984207325745177538726653352254937579833914101429208055149740044089114019828822434174132609753135167806878388063368868052311375415930832193144811739984017588234146356148967268537809797122475595791088656352812407784566260874687620793111305294604879722667706999634402273709591438154415641614359915649645889976878487951357747389787098032241615646857493984466548679688130691882056683765866956856864355852139013345307042634086996164375196808920902006652842598835258511687644373613256992221283691308791668041721659066736379655881178469641634669495249292703654155424321479034949555568783291675438427649424312323689636087205763994293158740649210268600531484452828144272025183288559472178891860575273810389138519030689617454303140029813619402051675130979190339049584600998171670411869836335504736540010021054637855555465866950173854007585129959404446497550477859097545776653760778990997404939088405252962545649309999458688050425129217679931048496543948418313290866327043963439186864512924681669514561418505353857320655670218807405911674003615840713310442764525704732086844502974418238247818733269778591440896149734509059141510679922493647596409298121413509695615673206506742815694043119332529607739325380106025784800479625307694968290963240656671154865105872071579539588241664004119084069350861023065307077022754326153238071438736873748704828575456775944324096463635378693181723013936954353518772331294508231849778724471866608527268243234208246481567282457271934328603582450425432329008886801689919584584636729235387936819501003045028000399319842050007066958471208703392908783820297732316987215093652509929644412554192964848515272522505845779999025703741063273164038555362208240771969457630579222222390678801626070304664875910273809170841966912904243971681373865145722933712795361345262462776104200524283288510916104077084467467387790850921444534683095799440632136587780214618843109714125525618620468900746022503542042681582172951650900889186365448556651435547571525653738998693058273408321525529874847205189020156016253712895094320387351946119284222065660479364613550418994769969751749209249446292529014153217271279818996020746169864660897989065425352069337086810589397943509050624470257419918839152345089162912862479045875851499023614188611306891364572696178382550394645880955280729597076990259561292454018525870885527944455579771865980855287919751921369848745827915541725511003149794148604850459574378940730927618594988461423945299277479467655324486149082061494219557246130599210365972004287560283320460837871487210628964350324115201361823929151729024118706965398448746309191804408924973992407904136408978229427224424041212643908536859700438744938334054718501705871703502166976930385128918156992787947361097966641227838442041183277892503714047929640717262460879160717606447813739932816754134406915745871063514923654261932968676286146851236680992722589919784025889937816301478491049367482747058608583572301615481616523898250693217705307241964356831955610107107951312512123735054738567829255453174189419363724321557020756203614568054306494532477785448083167410892784657561759893575300515274891711210278519978413844694594364124714411926275462815683795071812431751034220610368769073866872832271824364731016621460276878243568285897965789762836138196827795065640613504284659953051147092589002498640835105899253688142116631343855532337816386260103637954536084153580363181608842175506745043611835824857807749514837577348062799190192456755194856668935968407106140619510429500021255750142365622692316742976731357285883333079513084933012954213553456779459291333312445405756143957062662875890275326315785956887707749257676538236935103575614924418048939704982436583125336029951596732009961245070748271033904633912550205522243054162475303293651016528323520158824213976138923587712847223482641112368549827274773477912013763450741240124845145617456748074069336085290636389505371758324292029919651197362068092214458109583288989612949553682771973820275609233860636536240409730813039431338730911781769451941868193487174674176458982991361178645300157914611022392032458265185725556576074299056158239489299456845167796646859229995177618163915750142350702643817765007795464380222388722979750008224100626993955410586296742876328116877072286156375805709604598387122907148079675219491622038385772460178346131307463784023003677601682035011447164433166431036842356891426501056083150207015328292719463362124610640725093907337884957872244064454127632251801342050004024297237340441483571279377342593220818130167499890834754098630649593568750355540096835699095003417079332860002459222222906406831085703765333133960835417809601842748007255383553691215707686737321960778057668280352098056042273665467257244099623533874992645232267697926262799512858254100801082568992881296522740833034265764836384392249986445813334237494572971614402862382461470472923093197627421002253163982414536560500142358280168488757152560195754205263060559792337650740424043586819604478139401720561856682507073202377672238997595374073234377677350932961606758784415103299261007492845665437592042933129165200969389647922609835772731752059979232205395415248609241354571609853262231898495314095462111726007985867503175489869667287197616879962782012572036387567882104424546273018673581255530753512025043608980339756943986491340628449308111254859018622459470407210963096599085537932208276548976684935442809150060378597281829100825789997968890481402189437379675017354814239353100459700260116118948798437446352660108746203689144812352480640038766690279212553024483239770768524809819599035205852009046686056143662236064745680085152098865552350230148764046072708556138582637578629261824980697476278674843549461325660384174090073530756008103083758787557109212803314188003798785472601132517908971468695680649332226669601941351101902032328330285420202339338714573879160347815799436030290008432119231344583160897015694958411553263267870828070828842339200333842610685673034986959557800290711482933153337212950685757256709712559675555419037302381583138204339790473332547204847725274436474732530518909349181812974558306027775183401183090861389845820995178663234015424451488644815848117916812415096224377322531250299933181389492578904101970513797503590635447232205572984078513809746093894989201424377884755103120280676881993038719742453340524520234401679769532269601497607884035807158250068548870033046124467452733432177525531143965774933811108764503821874608457744740069507364949894343497371325183141733182538210516411830688804373739611733650063458399015653698928334402629508492935254584872858579808014707008119130330516636990614714155478063848782344122986184376994782362550833396598067384809860478707458339701557257057480917485936706643255312054806044038401507155035072797378021451857724148504337696291382288026250466445081052710251034056817800684543310021258406507133142843181450756630923022851749691877597760519688193064030715159595031650986883245263897026301525400786368877368557061674359153474338755253305856664283817154995704420656279750566552048513134296933400366066460585050958207416852750502828604644286130644677243030534394241807275522675988931639003931142267516955010322227005212100895998212512830201236633177828033251813240239793394716586613163454213971056834586126430103250289199888245938678646583660151736012209224136782900418610853780517399021977187311609953387090162880304093735516317150338350480222809180352985424377560738445764919477097532400133060131529458840413149382419593193865207450510905983542774875138594994537074121941265187794614255314142224724896937563002969600828173806438550907005100736941615114493763780049353209231166147945083945094334163033525380493204879094238433416098347548876986131161500372171221548231207817836139459397063450240690090870365951865472657660437586298757994805664096718782104329553549882388898156560464272135025488428205621991145389560164123664084079730442579250404078476314606603681621981337261916417722665442936179529373240689767986410421479639253262024618433930122365265730041510611499171205858858076209114449421763642008635991486549289528915638562472280275812005902725858916802542638419713333445035619417623320774196240657598312055870500955176727121500669531923272310563831748716790449917213471926220300674034385286004059431804032881098680542870421287729830800100881192075435110731129946998762347386993779158881098062638131153629561527919829763612219870627361337757234387888249080119667209861576740946701813098799533731366833493203731928359327344493913233613184090205804254441084363452377702895611873497421229469096724506273215591497470916108426542394790875050850667460472132692418394460937505610683597494282340266856047739719363876180328959014586339060897980426102796514160576084096645804747270683772527881811041643770107879450577273438225868088770387387699621989839196048929777158319143513586598402787117147192328661069443541209719532607128746142281055711949769440794281907197619724723639200061994497626041206400281885806200475948224740947534714090145897468944562894359360325939304679121925472362215056707953338714007562409371441113351365789039538711020292648088260440269241257596383689064593860138466780122153954254161246480200765399936910390918248861118168123474324305076722454077686545432962718481217433693009404974193579647798591731688427754315767215985465813257435751381185362274985388714119193181597755527654209010791348614765873197850074284190027582660871968846066963931261294084296253867289995314263977261830606065096088807296117039065538054612104594977098720589876773514106564981858881884279803313685987236988075242493402991263051644484661452357699777902129283349845014735267088030509689205932488328829490902689677638957706542429498771962793552936133956977011951274374214961577941632775572321041651572850922178634526165184284647154481224486458932882171160910947178314285604128373718860205366381111905900378368227880500990475304046592497024969137987908582936706986627451791359489283413174565547984830241737212487074137480174712182277950638594787468691407380960584297930426063563851309121899368758667830984058255328741535638639094390253523720351451451474139034966781463788259218971933105667225612039841177266856289261457568610787451405575710653348296655488977543564645209259504032259966542922240695997755399815920864993814334175042470309253168618421832373115068013429838361138656660261644097993258053481360710737153702630399125755064140194606721989121157251263226573096216184569787939790731145095640187904494437543369983268113954406293731248141756136049593398976421261467813437295081040419438257760513090797639909638754091174227855977207857461087346025573582776072892122476506955418767463127604335431157282073372317701027232930044881175446015435617257779350336821284470520598499945853236194622096124816638554289247240561609728089677245633824531129082873532821027000408519335842264446576081395663865513317278589178100280876952472722974875169669137363090861241943556744097661181509557911909194680604594389936196664482427740772349321529521652708521898772237389718621605564594984863262359534591859484348781855564464126247889963557491337670742952915114503970989394870605663473142895670775004112580002935272192140436658772596001390728349021213201414488521403518881504254264578460099225771256941646308397111370706019451033173694307682502319909690476594870193356845514659002261841798898329080764060346994095978652129267963671323895844476212473979531607376690331432015805357866567507488148543648468857058658332817348022879591797652728485521149800413477174055209123570049139970763495433630160020832494565126151860079503564926814651547959190281794137933858663681639280982802363839401474407689374279434983229915568744591688388934944671948929869955110027163535984044661851690441957206760333188099465463578099673715222113327782173607570625808874832758556674491300952904878258122218938691011944902011966161478021932098542074142771315117450718211616370735103726793697930192133326506877886261449658907214265448927411842758579409469165432687305621443518065142552174121712878104726467465876777320142111063076812071724398516617856751292287381804775604600691459445914796249946905663648859315857089871290687281698664885588151833918009150964990476510442804067034456067758892662396691297125191281781942562474311713168432017401612808800087643853241413719140703718424407244761951317242412095288866638015632938147750255254423704219906787063670320163258780260681399724090130948670910294409887799034613169673518739899776150178880646035409932369307382148638980447871902402377912314586285375999978054223821017660964477573304857696102119044126520957412414618981491858095133013364825911291797318397280351152253081850931599740890845805261361480625530196481221897140395376464444123677974956930161817835603896424174551541448531565887029956494808972077868584791187587917040849032212797068216190696926267117024300539664159861922654499062465447883836847385667559681887713529395198883532778463812427695107210799525202451569206902544943446732164542795757448426366673373797530022513269149477028322889169079373204155316521905841764290777142051831497233564993379508422901763214736582137686817365528560865428822452873701893367320241374699363775135497852020345143044695983884326220298159102189584549725544651438689795919796805249542707065982395815902720822922688859010750701146533686575931075014088786921509194758742340914631658405660530163818748557147972512030098660245027130537433805341284966450400142065572804266561487994403841272798288111778479575426511745162532516308961090631550227945688557696080145731387368255841108324014514250547773790730201762288954312151890189940824791155666975384877036649182076428634614659302371243582751310613677820992942144358534419053435529531959981157576447939108935612277652323655229224938480421730082559513316012476698501770111918155084983887951616650784079058953297383908088458026431116338323735936815955651769089406816824746633687519384380680320989211768327408223445625830847794100797630400461340518425554638835776018196269120954496215391575870685381304175031463080059658126345219796183142588368743138627554334567343120648384876901851048788599143864789085042348517212061300761843074885028058803634934559387819846414042631161288070145255233924050494335123610469955097630806884856137437420295348971571188286256805298116569962074570618394229287788908483566453207671455680487863183324000740858166841151941190233144402864699467794145772406713693619110430938215777429394489451216378114675593627012146424280093729459340909718698103544716520500570372934540215403051521133553765394209711274730405867234053357617059913597885608798648452847887474044697194116487551509802096453389159580206557666644435544477343502416525429084296339566010980146887825490720362991473636306741613121743500279613538712285478531820645526860862115076375060624211541561373578065305491616789972074639421880693309205447261525086269240773990594743280540092265127268095630864934351164867847031699956490967614651760746410006207538933151713271904393149944004688769120734617533545979123343889645682822128823182441133306810640912377135432911722622791020297148003792803205667017277433934023225855245499501523504471944294235929766176001000069187382430322690432290251907020077649453934002793676247357051070972834575644743266816672554741240065225944011552334119325138805777491913937621334223789677881947884644560598590538041310180170414661855697491570460187328984162411223411669726746226194359782403257040032610983107333474917895107670326159155200579188068084546082793440328351819941919752826358849837010793455288264856014985495400832167212300416898864905947362937817690977169299544854526218693675181111651474828366536814030275023937205314812655403652458938195272679495873434802322942021943373284653482258185847252525705243044192000072775005536985721073265122164121790867345644455620636476150975291123532223749744257663300581007215290390743103194874560423950986627796100473808709644840907987405171878744503075131166980019708385013781709918839337302034988478178995988574655818524020765920834225535892336172855921906003874109047398447418870258577535357301429098169410926879311597341919185900768196450371377573538298371324897069408253121047138080190027867322552827650934651397126027641507808099946778809679347359078868895598704138527823621122851076085713373950415003539419144364157754189690227337913636064514051468760490072271262999264783855175320409022108904827660981109657626252635332588770692179869543784164836117570492141355954141378316059648485815419832570155328948689241070717576612995914281923607824857504106553515071897775597813133693335899186386899048438604700496337557451288303836647303196595160821826400583250120098426049142003890667479989142807679252993515484179179833327171738319465279646406730529464008909641155201141152017729212201274039301696338095374704708499790307578339530596508512205905071260534581663267149040904525515755200855896167225663528820547414202217943558194639923889710162948856758819248327325761992385854229278330785994922691012497177292924302083311447677715962662963874470998928019993812500612856914259884880715013004025973934577686061962759016326906753812938715284419831421099029756281354639417594493608984198853130301904288411264622887921003204763887394788266716745780898275739164597275531696729345483882037534925946101346767223319652925939175119808023105289270287297634454209735708853772545878631292291899284176443376303077120081114240206333599262755108005800851980030446961072199318103080236164394753218694354572499592287846210204296167743799295047207290985957891406412499876672553252512136934522493768188081318784241286320640325972740807881453439476459464246690904024225520073151834567416819139747719389378343510926175853618067806434086183135610660785964979866543674435499507654581680503511625973783554123719397840270350266244362505752282812725999149046352568925799791766704676500818249333933377851984933002180822031187728745598027988191819518653323530152193755035416747951019364083248355758850274846184801555074844676526072437895426552735784165610983495983874923719521008445130801782916908528034963623209308877637994581143178229983640959798721092020297649228646462307802529669828708053729993430650790395401014858233478729917182452513430691159256581556029916995342286027086432038990628921274213730661819462791131382869869536063536334037797597219652809076355544256579645279075822750613274753533100710083654222747335520239596512240080412583312886422427679940923670287234688382702752085325955159115169837373970972513669912303175511008582310445685260835543016751494908537219885697714910860494974617335982516879473015964819802075693748526282473606926292743420981454957104578057511710941789012048832753179529846127226676156879950762502511648199789282847912094350061553340689999099212085791021718131012547462265040686706560141054354782214544097002857332885032252079752903396386170231286084127448317813454373857057738725696535801847388034639798805321197934274749229039550367352498246022025106625770364792753965144652763324682848236284811657031359028104624505581341293706087441321797920273454501941289829052230449188893798176169508411139503444769115543194988591212160470050362091463482143408344793653654937688187373109397573523781779711833963495650687457245773882470311218320805329669121530893878807570165907892081737644884279410528286880985516562211550570291285763381068755642438611753407849153788642649908726089394636642494919093879684680595006144046522007022458963351905428105407155113893918808909056795327059466298678113292420226496765615675893504976381045771283499547914974017135484442757568796314785470386299245250166183943912088346850788337191237187423576296387704912569807796115861134950598145900402214932281114170951643608862584728230043858484277696021655436133809519080285839864583874563598743770950590998694748575920226550181831820866515855300111562591515529428382635306547175184288120304865624526465602701790833826512914329201585377695062909125749826870980179500278285060015933489749688992868157848710351132942616746564418658563971474051959322372055119839094383428296523530428492836205152598765248262512947580050228156195230431590070811591384984075921553173727659164867349594202532716438800758742739268999490052533165134245413171153206790015175010626610792302137446226306274194731855214885236366673892854695224432658032719803122582775567021922579630352767624240253989712957696546425175863373377567088883582421134064204066977084007376176161537965770447563954032871173963113206712107448026159270394701883048033570735559845107478891142055600709708014149469267317250396193821044711589413715951809739059228430727681949147335416849792389253783603137990004378395933224375473101491313574101415019310341156617386518681528692300461124199854987048317567132064659107587855049708928974077190861647878563031659327810408484297153019414413214276202179512992514097237039009026245700794473724907319690797064783731332349568159424254200471589783415975835846351689840860873848155206323930493471989892345562146247515199617744674119653252187916509172950131307454218940786090450092929979105082766650205093763845239596440234647100317571296951466679500516488985015825470878298353931869026325425768921194754002828662342225302113741602538682490341305777993920141146466855501941211207944793303666656164458053575487009194313247550614897527707874367432479954305015276685620967154264641650160504057563619849581100756836769220763740657219624327837386532843541036287537292786900488483208911313722108851772904269129997365813770505967909919089492445977545204771475255562640310459380520519756167538186094659002149164984210798302482449881909791304743957817893216079204991190116541092280448495921597053214558674859201098930055162518171691814135448946023112289860786314659923014257463762983743158622184481042278269111919193317788304554777580205022526569927073721642113793335388746620167763394050370194366824432913896768640024802140325348799241133328681849325077233763136973949472041498242947415968118418183806397397174537959229487898125874695327519394142874164660647105952078909311490088405236331047662202610438362766975122726422804867235819485180080791286683601225573392357264643630193148398703477119335100584311978072927885416378895955093763994458402935540495617662557664606692609020307440484007776553846797417306958524752439356634445466576623675581849174523646790602913609925469625643503763312303175760056749135778938660791709490274713243425681705855998662637096605308353160969404940848487658071509579578754508869177323869725959993435312446818245973315440449824156933839184120610600981468022008467923441174254716658531715435504634758192112769755954124098857740862969206496337076089058809366930770977043295277611854051551369259915160039171414750232916833594161138604507931718360226174679407527470906319002690211741619811296901646376201986740007965835474734857076900582578734251498797386746842535130113526134558730984942408865163036361083032974550728599324696258517708564755065886502110283024406977255549239935671940405871232949930876070891468361141537661954999967561176446451711284582898745751323589997746795563496929263401410819016511641663650783787424097413226811796052146887531843290719968687108030786974132831628072011408120388132436176940272949539980323392630196925088750202732167162671917715778527347727995078306338963647537248427799863642470782646536377417711415302399652764900126511785776189942897656679489347780225398472932224151164399894851674915084843951534942055645947924384833344679433034939817465846494066511296809765250995097753817323449251417247513927858624028494372449817778988180303964019084668394060973720053872212475694795197191711575001840488418288068923347318300629346733405725747697743803057623415504969270695539631111288428813501331349543632242126095465468970082411857564983448127345058019586677950871750585396477226442845509489171981192893276266996309262365192513389555037136501346843857181408449307803234196514253097016121929201570199757102113209606703432299958250164765481949341821603991983751067349547606121957228940185301125144020200546571862791668977040880622407787854975905795717869410096611704877812213595084907536053157218350049950072841881039779106089823089399405276188066394604607275233012617801603616363038075551865689054759456530845184992582068006137683444347356229964796975198427941139928926721970132346057324794419954866313185541351117721216893211715525108555123646842088914708054624890804350111720360351569107496676214384947733741963044883208980809236745268029178262303759571064000989816369976257338429084927401183900649878135007018937262717654555517949493249197951570902253423338193107265817147700318613519534233520078199834253504431763375831884103174226193899526656145337339135864616841533926391824313739918733159913729236101898006895967361700499010991199518650911863004240202208449198630511983646355573374189334367186950863383634048886874473232801329117128911264935919324041306223470347487622780027656468463837405952547460069742356802330495311169785749146995063397743322948869160116001158640669128874913922475699206441273178997968764753778533256883942030825785022882297979646078156330497164847345319261437099953468849078782864304379993812673893283591430766520436346064692008373935373051702695248927219396820069679869445170481081226382300354631739911235618449984513841968257724036714344144545960725645413844750058261956765200560739232674502011812364488463900980540468973030015069328373390720989820526090838820294842853969369220139254230825624088203475980796441580138385839725542772006587201137084765278308762853370707323539770591068948677543640632262816262273190967162359582680744911171283859657529208441820094869989577762625531625095342951953313648036759201566293203518889356789275158648130981014364394100338284664365340931072260442010684084309488642861474624971163657323819145109772952224497610460617031263032952495266981912716651416346609853236259342471991033755240409380066547048708304519533196028917604963200038287974206535325427719302512087210125252610476059393578987821728445122468716991453800672024793982826307925724621951737526206484698265603621163693551220703281134218794219615501102638552916017174251330823327591425263230188226017248579985916794864583959781258745116370339456391273565111855088956529175651635830988202862594101198619986255451972879481638624313581911617625951201584776553995717680670157430239875543907184420248388810562606582206428231394275953783638845099024746886918884330509696338574027779304650637601358322343829897773678455331861231278311936644399753895211195940540220599702672288966220984078969089668989743651229193552799303200652156233329529458469555670581913246701721818145241518420301867078122106295104106170061819782092867532371723403031174088830173400534388177436955422020727658002500356422552743675872333006978072274722407125945223471112798390872599033227025836885785750583409190047542268870785920474708956756995912515678834017486122708468864236210284839490096973900305059560745192117650471059352678589325761965639952569540720493958150754560981844735576088102687738230457687258203107478875187218121652137268845401147403007955278998911345538762631056235478008171584743419923189379058969330195339219600770544745561190361318431260600184907834743803371390732265794488306021527995481737570583930545036243936363843276094707204423643445070752726786740477909385311972736220055962921363423725898578871060428291708530602649752467145224636358442620871488841844817728993466126623393318836940469551352214956273036903607704060424241489952120580244802099084589713345148488835405129826454295653443765315919032279277660463936349484706879582442726954315889784785225649422883919647308870399854904127265127302401037261245138991494337728797123452498880969576110841946645888715713148304515275359273037103506425695508878840199346323557131107580022809920716850986789956604056832665801836370376256205575356841682162153146105185166426812942938392593445151129777105198913480671073172240097025882803191588675799480940655744628076455409520028108860549746499389837216448289317358508974327762499608581123919098328846360448715695611957601846395034114146155096013997154260846706283855812855268424688820786059555870540078409968921512665344192194970344385393066961231604498424281442680364257217825739395131720561513099099775834956288706144662766930215613950752327185923045532953925190668773565857899269774464195672612109734049743419848310512172281194125219148438178896242529190254009798575156232537648111002740315250425043402475730202883818657365092126934648979593423218911459761244924098716529364511604578042001369971017826801051625812282730028588177803689373959708698815708101289489990201204124232374500666470152573514681222815821365265463140209134279749131156281433638836194867873115028002449875752476676812621983375544586310286359748416106484501103812801835196617773137081052893763691817549872289527257017688340613984250397830775211353767562714965932487938066131151371148017436807769657379136821938315239050236652626589410482957253976879477818303284321140938753332987122762000901825055928368690444168132637787194175223511050422627430933255331138293156912057271076283432509345433109892097826580062280506463168760450466773924150439425678290330173446906352238103203940044044625104859684404285845607253113678780695090162309100878260641843828082777860633932039746408591064731935046524400201945013704380065874749995306045174984456502840367638355918066887176354725540766677131570974793739489482611794776371262919347276536425541988840407655926615440903651627445995246411021409118920482297965973803197359415338115057404625364219981064581823556346356836854298282709173644234739816685819517062675609974018756542135530242098470935709932183728066826445883837910996282819336795567501807686765759208181012672836156237682206516131074351058007907077141514010412663957642151662216091734394727843887999071662526086093956017034265795365042101873544494909545167708829473056058865606430714106234881632598840273420838108958901005007701042816527690449919270787617631384334203772761162385317298632520839930484794669033826717951685670509906692278260688820173869373610166403018188234977956192416286299938723871437891795935930341582409869860009745680705129259038413067703022069815671341676224316004680657664059044457556373312341292380064995140306822069680772926965699808753880698833364035019961832023448732066291387771526355805679144404672485752404159359486199404098890819227236897115326589450875493178207791118745945135061590584886423337077107954286937338833718717160789999650957772936937761353205079774682174529509849022338888715680534844188117102833039790299799672320819189333536924619263636623016587996305227269104690422430360818022928495772601603591691983790561249756781454796335966342316681815427409085907851166277746696717132468622781140932409005284830268458510668593616893322165960884195954392578124835654565983707528896220282964686547592134294561359752789638679402507056513564513789005857114667896140337937611616015026238154986806131696638784481835893346315484377810004173580601355452421184854440962037958177785013288093026419234024983985183869293907115459976154257882461395646892254684733157790230484934566897926776182351791971700692721583127528712262632708672062199405422866714406917843924107386686057708107430141875351023455316268329867928227321808978658637572925070296022278863164088346736192320337859330322993579128030634947183569466513837058987700605752144728677027162244225125569717812553225098689047054631904401010715132452124001326238060475625363470888611094767071958789317201818028999160682929822404021912834014847988284234382698993107893153093380117207122332624475120614981609595298291438069835812268717172377931608919293666153072582868321930249135568470501033154550142093455554933880934947147381617594404305434107682569784746236453781908095707254891774880383338827973718441169512351112473833584737968054481020168769427162097052207915040461173760416901047262025645672851784591091031994120753816281305690577336563431738396939696715775467268283488743926015996069195821533441760163737889847089896953655008164301308609602672993618113611856534838572636011805432600062691182056660938234454573013303809128574752681298204040496813163648612445176282175082835955896982492983480832245337166076452811734966190811884781870604380201416619474568800503348737207586574184995442253828793086721729882833563088497560364570062580616070599848265313276920767698074682189092505223334651498390732683883646783804279260980751342395152789802836780180349751160328404515736055527847564563098982157710611226231014908424949548745492450912909088977416248957506641771844836781726141208103573690218172927428941802757619467108965357566535741540804279745798651378734731843496965694261215513111455294329946016428660887064189940468006927504642869457645743895109410513562506466499427144336804667690216968604920651922111501877998821492587068672281545904868987184580864597547329798783775063951273340724635262606737581334517887343163889205633342172411542945116353360333349708646453152784860569654825229617604300754478335866240529700605830505019250437838490551907538328834295823571002353234749286721580765326668693180443761252442077496611883654627338434020837728021379610198865441261531879617893469828012612407269650744580747263849234217061527396889567655581717816007460113718322227653388605260602187228897568747421277029900895040302062449999355151206296643477548265803216308822893108955610338863823438316482101880269731016935653664175662040798628729747798169398837932574988011864776974266625066559884823034738826435840844852913585205963471690816201576353633254468833579668480461474427611134068401122974066516843283975813066989667132815758397369497556362666447597644313753600445386198858393123523736558002655186628398392694793475319909064220056197193673768624119316773890165375972147306974407290818649299734772166046263481014931383093042142861631053020994394790865001355832246182214811327414791237620311239948911364805873071015483268801818774155746518743156051662229262598197747617646205341463639850446700862580984810053440590339333021783827289738923587663291465342735747725922852453100619962201116427407525407480301756733847817167905469656935009277768593993512591539782555700002574456846487116726641221045247598486681853632490110329766059530094923573402732856849402707021246955926901527969274881473295602342530288731196393216406771778776365479916385794441984838267573696638981666740356631951824368950332055710112050524349675362889184496658742242010764325438056857629344254602030301773641786348125923749675920540437885521923565543605311352696854307123351241744528191673629260361291043439222593975290868955203325298489633381646272622153225087151043393161727514121790956340504742524530053374790637954262267307068527753799740697506316728158954125587633277643539932694778991594039955802046356609746655702971994756574521339137458096642780974989611055503670841944355064736864937641475693314859977602537754038318422128630062394563945494498006152202425630495169159928164305325146396828532060474343120440529898812308983463998987544395827920390038669007726350926214692446821149601580035857399637064133387511468509038581685663309614920458343530261033794091500993190122656541845430467080412210385147816899839066503000319829997378365676188440620948226623584755401582398868484103284990152602659528738385662876143444116479379103918945720099310721138744273391841339719879721080908707794552381894449239109436957241214144258431345749577999485996354195362222120260614037626997003101177821279309422886974484521064214442427198240426585171348899730540845752784929680861234749364184355551054995958606747445082987261239129979906924873420597630891328238751621347989341451266516082746397925177134427398015594097861813228938693933278246856031280820254750060769383998269193259417608653733049175634156295792022414413317344197762080639725798735286946391085855825636892200916574091430922680712246008759190757149313576394158170636473077069902682212352980253332892753370277719233462449045681403980633502651873687918762424100529482101957933958148685835499136940374387433554851014263507648461764981048991375673306075729392410498312796656932755770521727274089022433212685124595768925155758103437661125918549314693361486444937833230819333163183106578472626346556916368866320882986990602690478619955204288742939575052880724201200977450506204397215391513961377913521795717070622721540309948380554534814517606258056925190526911491719895546293468045113696040995476282654344393834888965888592278484362706447027049695314214463926722500944378522451294146411441067591166718031598415443933559232902802305285944047696249923145330170948461249096304098408581466924849368878737378414167639780770903963215601579383132002693811671486756371087566857808251991902238576210775006423742907844558055081943231700693624360361187738037736310737550384576885128379226906705274395096378735942842270871571293418639944141167945008257624118343940655214995460450447113353206026343916640978306910001382738980698064497257963261290189522659771028575732411708583519536610957945025530056047559950975297411467093476718464763730053380044213940900764928293474183718234899856976963869602645805741952285949992259538037122882474683833893857064100566146995173440218655012845592226616400170661975139941471725354466923669044145291695896354808856890300431307538125583201258092296611941698914674424390686695557618538435884669898052276540492143752837252719602123449137984838663225246454990657305816604654267521699183335023256435427065918041539055545753007276885800352784272152766612496266546295992419814583059925969221904914900445903496934503183073177471835305028247394982312201499470518128561804772130197797233402941157262014304010699730007148727113686242967401508868314234477800867546205571436572255267902896953831370736713910672320361078620109565820614142978319769783414089456190189500222953713255172516321115843756776044472034102495733113980167269087332988740332339656306402465827826161660715698219956304856168855162199448476671010954899579540019016899629192097730213166397466840010278364252285340689325151372254746429681986675936086951085553002151355412364014222938956949375966511851350527043048906870352875335657292148891511916833714136227188911329578995869863123374338071215318485385824400204790367953238371376624161485962808078023435800986350966661207996879363567414991483648206339848798478725501598473429618213521407151520951426876029302146028548852983150105512708213865323782633138284795209651061135085147121267253576937930832337334505211971957950429638388111612353989822981630414401066442352389053680970383236049921675220855245733902343811977248160288154497812296661103330999999227609361981399232389949762173878006204602251014853351222487779052800142684170282259141755356165965897555987258806484485930903228803233721129149103773971336236622742493582654863441518443690813253481909689721372324027880917932218855969216875334790490209161491187260886907074394271539233111585012895283633104727030742474818976095749902418569212584732996870070611441901275657635511559200287208955305122817241558626407503300804219756383971860016036233613791608112632689499794876130224720884279711340602681561207349273084083534320091504401142281036652876007930680096427922387742947574971897880265767614245646778933819940028963923042519101460147583723315189153639992252775555521948717653939585974992856297877651183394500264827870737106782007939092217511660568691216562092822445659661442791280489187301133764400140333361489069827490056314112907096245750207045397844960978806201215930295697993872003325499863489774274533825375055042928341927302314506127792274118379045611471289055720187064806747186217665727216304979460086176162890238766982661414079330760985291199537164097839882784774492108311144799294655858355584736587302441537596298746120823296122647497489517863650419998084836828962983737240380862044743681796818609838751456619525569352192231694114730758032521159327053849503876604238472554981754098866934561985258753714086885442983505983352428974622689017026474221713439959516904984802769816007285000230068489337947990875713244319892587181745648918722060558063358934788239695907981320277721327371626655872353264963934039002914399885430281870315073216637033765046193421693955487823890684683327062926687149857438387773479792612271211596364891479127201811331677345112705243241303880586765394980415756354069590581029397289111167178222306788854268725096310236846293967920855020904067012403462134258871221867837540219711040859036171213892641996491515572275450575729985659276096729648969416614945561952254238727296214034327570754794188348679472684918469234885440792658116760905277160179667080641031011250423053338544438910275829117618617443971792317060674532088272737817393551044083102821858951987155059357459805929635707421050794347382879271285577642480545040126555288316669275199623048730683662710434173623190564254689283327386389761138173664640706618578854844199233350165406958353010351690311715885452652072694562991463166654123516779286941938836520483067443170718640127777444543018978066996280066812235618140631487648015834208664733633386643689311541492429897054132794652357916160863825381315535265624974922330804080970642583152862692005183350420242781327198951406087196031375564204230115465240726938031756420591232014276033504838619270525652579725775584752109480507944774090872994130986011992805569022716639364112839756727168198020395267598949123322712976640623533467482140208960381875041539574099785539973306281747445134698186056013083228073079870878029620109009588361663645422499750102705393846859512963229961537076678303706262657159356117518470479184203557406120939607145029502039202142435583939326403656698248090273234286567917239686385080323614147483560128129489036293287250229572207883738919153677095090550968827939596319245691787167124556896328395044999467568411120157578587319911911134887491565965582455444326067953287305066009233451920201666954112855234538572695777479891409026413319900504363496156845307817273620167216872388186658637729970474034313970042136007008423531388243041351531264284935875726364013879480023803719602505353375603792959070363354280886520345848223665244129546933958031976889063558611134791413068805531326466159816027561037163146089217798425368394524590703751436528979513302344268242493384902625075601799311086810656733641760062910459321174193673447801336744210145822270615131733237828951322082627794416628810826922105419909106029473723900170650304190792389856995519799427809500046708828149517805468392357742660877070197010175331387134934953139867284496297787962772714059276361682493046524272730943975491485455990178296055139657633376146276887978122688039702898240410804680446950930673353775724673543356259228360767826250162009268204726553448425055637900592841724018789942099890923806282354895081369068631445076517940010546460008988570256129004166313548519048696348187821833979244412271648792411772879460969142045027251368900482532393378488087559715681831345175082267790478476292809814526873411492118067718802826831881346986614696354896791926909134794410247592249297830733402688688470737927951543137675991365725624415700247391937101165393926586518479962911489553322613930469286412782293359974835207121906342474122494369163121091031863972604050468556386998939657296359482216055117653972448135747595027222614742004095092786929213409967240271469791978162410807624609292947821648981962953382367277337007386876176861221427778164411824051035291257568134440463467857264126083321278421278973401858157447858033606875017449814690954852553414223022444530316343460865606788568963365827184934826875752493256154445345715429459461212102357340140896180433862925211937058446330249603254241239795787164244436631516776090749773761457573486621580129150884255718650768585482237620302856656712812498380105769202025986360327495819306900112714269125448410279440697040309435024455718375188138240063230627983198208424524558600770809631304711894783202862231191504470221387111400187561241507875428464339044601388925195828065960146384980498356083891097116860206695116928374876800154679247115108440204388266987032691506584721187265055894082547889004054508005255776650025373502716552641181276326643602529517330919245368765343862079655364016953504017068995867171618463953986114693697026205444126503582179933028947550048274883162548957321432394198750121635465067808187017790135689242918423960401636222263152052152723201591335963763591416350634074635297135644078281141739561393428542009768571913966855746380158311328105314947518302209441951707953532632811428098669351474632117143155570542186519071587706599203079907475170259827935026565971469789579837503422052099237007734140027387543885934228221966884321040922499428450164035946167676612918016790226570668741625420305132800001754251975343033697386178632986541875786205627072403163182217340940786661575240064692806703094472391409156200099746031331267624097518621586665003274736445552527698152836937001624960573297730097250393649580189248901068933190730949509238947574151350316327158724455677303155158077423748495896424485801306183832497438981125699046078801561514647945053531455789452260507513127104300743558459571063602049857409322073348210212576946687514048989242776986214330782098781930829637797268195343213469772843431216935024817190902749762095691180302501206355531741758010082986700102883371740287456987954542266216319202307511526140362023971498341975349104379263055465575124881782081163751415356392149781032614056598664366516755679127961740984168235975138130095984082036349981916416274916418935029641317541963018549362772836626094737302051568022836354157447014722714567765034890076707870010914456048848693240743961304653726634218566591624039826282735266626842313606297642321068543406704515360717801611284321905782602973808797536005704573341500980862908982731305000404478279922611359272674682672645721809944459197297566467689815140048937473898836206134669710557359955735408168411392543671966341724852730848015400215649770629228749786361383362526328815617373635175196958260283449285698835080081760856401642938078834554550148086142051414603415595547386693077314277195481815420537465256046264429502976838855204117968240152388160197294817886230516283406621028641928815843859704125719927460897117750091226058655864868504508576599744708943892057218591539992044747911614007576423991757083242299682123022529735389956636291153256212220614229405719072848196549775567487040966861544704517161437851265301203001103568285441224669036477797980670991778709279675244105524747880015075588841290512856746920670844551323691065832810790147319579858311238870221934741552483403258454029421884419391949167384286436819690022346341123243839016499212161965516751321354129670758886966021725997441915596319627376747496905593185614561145263754455586290130818250457508637349076413368390480707643133578225630005306476974363902226002956197820089115893462464771104610160509690433604515738137543255631696447282679047666874810810489809856549546299438551285757313651923427607192866415604525113281009661990260822029171999411118470505230764794067222820686300670405727735956021824473671568828670171454893717236614716903897437713631085993361068598144279360483103431914827236385234360861933093329574945589104153211503629289030584675139445577314484579387899073911741020852004472859177273701097708920668939339670557512277776798538013890502494079086708708068673244615601338914972224216073469294658732545480351563560827745769344336721909022912775417298530836803397140284009886600130171011438624242919442155617018011103699903736669083562013797757369433909159014442455882213791696537383155633730696619606034473298096794458175525883377959971437848219978303917550501094420072375962143357465667946664452092444542499293006343411325019847111435893016000812324821313015013694146795350884506813265114489807808859853359122913269725426851552328047581227626964278148759076286922663117657485000744952424466247321753147180428184649505600701198259743693263734694277461568084182245213519656079345572162442601079172684629129564338893152835887958856151874111686406428134489726130316917934490220505892109386358134687972791414836921605779111913085197669754508216345841467597439895585877559391772884807731903400741071901863199192981555427119934618195765050994137833944729380975836840716607317084429553793809502248626708386053797316234301968134791325791956934200128617528547409780691582784579818040660652578988149443099478990033422132701476217644117644916420450811917382505865993759348760546825044361495659884277437991574145602531150838107520796678505472645766865393671531093477643974406800529255573617110616589395729298456431668592362384366895677176301309482561048774295120872232127356779013229801934141140338361718173788249416999440852044224006526056613958718381966988779177364828650699428348490181859251404136834116427626957518401391164345844454571505811738809052985777032321498218222438110906058264156783867958692006644388523453746591359936423419795580291723316390679923299351526534902918829652963283018232049621433725236160303143445087852758405173579187786483478575736941397378615388794255395160618685267217817726385615931489850299303360260532971465502581613090446402361510777306793347473744827586205453160924539028283860257793195061898455151536574232739283927239934682836665013217102270791541161697938060074384112146908201404102017107616664804104797483963072942281011219644696328606939666658226370591688078401025863389930721816891385976916368261191141910408725931063705756391597124699498675860800224533177997511912698870447514753414031389315445951152225895984886911044102089765505366537306223663357667186605568690549598764759051757196582942484246244276646559286423050673780842525843527404061296886433109938158953108622602479479175012797578304714547620018797620928517852840504475441566051550342042501758769412468830216265388755476425535527962135392080294092071263351460386951046337453118925280563347519608912638260904885404908921113795792382380821485870170729139248800747775029356050847810120833944592910000665386399689334726979619071225755392995735027985897400796000208733939878711048905969214173710428615490296284162974944986152291965996702848032912705232614121959706456304331070866862339813689377460177498302476231707659576133112983553803846605913837722929212662386329586734769621657017609552840626220446405426819099713713540086512607189669076148867051562278561271873582238593764951914657058662811076926920703016068812040328438352070154932029509166070887951337864207603296500339686525251139692706072947754269694049500501691383744258343143959321710851870790268573708144774277949310335976826858306055051167242055184999320229936186548669899841700652276102244548068694606150885519176007827270723033885442978348517752425341018811083303261882463683140605311757713025194400207719344937868636668580289841451958835849584998469616310062488611509568127243146682119209126519226246596340961779916381983100009360344583049255566804771447599557803933206381563808302597568617241625722831618579801578571816459205431944968162318974719724181685196825319498247123224153747050336573128454959633305001795428080289751937357515053641263557099888874560776798765746505457142672563753968110665215165905575519884523601796206255242232369781040498365228457196995369808548173990797001307175589696990967900047923737706652455759585409678550353591545755167397641279327566995588932983524929395895521738098098218027785783924278520216987384973804319203937466217701179498797880774846689489720002222464202667460433821088393681127813376470217553274506407691773753337711048108863784809115983607146396976581433128408051371669155804885912193190827581266646587177304971868716662985694574605909055531263310051426349782306668071107973925474726795885812068677107406126703013539606526316438562334067461041060166187814944830043201782111606227706095788412225439966278759590521268608723083154031585319790285643101332507852010273253406679384918305841662477593266021734597119205820769777119126137256702962071068202438557322351565258685887501355440594043479004436062422076613021374311714505452595956190382528455801774039650098438454508058498454026488661201303725709802943630169750147537945388267509239503451018952163762869855613829449492674866779308702909181720191340249256812926614647792880172467284456507709035120182484618445276231688851491609818030353069392019139483974825671114136819750692266664779313465641266195146638761362680583920135482706681948604325650949103195837033512670036301897852920279155521230869487322521659797512856157402657441684592280984870775225211818346594295683724895765442892002679859516570868699435563974730279818156531160167989282458522699680265106756002563601666953283700924949703392046530049515302371970753731732588575842200275997941536708552252957812475242675849777571348342458794893641128362045922681583141069988853310605675621178895230404900841586233185604529995425530279411165050441685519289329844778050466513034967982361680750354439967677840296684174993998788272123229950229364545049609757416289517507687515024992577237977737190086949607913535722664282108414980086922224016035167978108654317695878516231247737218814269095970846546677272950412255511480357948800995211198171681016859478423134188081961019399594677397632400817670287333764641958676497356775227987759305872135241609095144054613104793636138374223220667727054013874192298558528143213394713600971667110146180097819248140776625280968632911928110404168715172790580892779160298665870046347975862256691952224365283864515027351068656957907553702911744751398651025126571521743937017175798395348825376835969199410753733765439423476519446560092872882482938330802829520435546869232662075793790629084450299657321121373223587160479531129108678423104901372675062125206718315129806645991655112320958871571997154968112537590610518424077949898024484309995531640558040815433344820604915859136315228295363024005425728872760940573283043346139943349438427807977765559215841388665901941287253902460648485249889769115919620113820398815966720031338425650666551427509132022027747396400606876412151062585449367431494831263557727886091978286014140016613450034732584681693439815839359037616338230598611172203346270534698264531473033643537169415134754270900600587738639436365491092802500977790946459638289106005268400150711679118499188172796878207973889284547837170979469941574206047442252443519010385595022537504657099033584151649362027579014565480108722639347675449524380976518907760238016646621921802300717728633711692071672469001965084869097981272453013915347839445346617801173495440714874596024671919864680464636451288582300627333451048097671372593862746007243890344279254717155038128880041707772827196860792968385345200645216761268524963180966433498580550569152515336705644742242303907652826408942588594839525462404361652894018186194093037443459379852427182134967634569407013634123428103415579774145533615018517690302405811453722863341687688255211058872851642271195613228980072277904239715100958932564376289865512537369180518644119594398675593095653392387428646210536173811415142235572969205741476416798430770632695204946999925860413158835209631987775263217194764427168093855453322708647565447628084839146464085440485376912659108014428828054157039964743113319628396835070335817575948831207947658146981980708613539813792207496586156759926529399842458938735809386023694329175006364328381397278398646557979524692176934966155499877914673292306365159254321232071927582328743621195898266339942900687896669640994893090031321743943219727063862023866319526853135824974385744886207807629892677476827039730095009366943105753731187263526517474526989345460017185826477528177800294162149086267458189983052746997754295142418168120841297079325005553778872298408711015192448059967498694139763240404806065439509076251690405919609059165688346923750429034360075082847857211377006786567281593323685640826584357760935783216499715947658525729486783374771838468543458793600469381067423650003809761801177325074403859451522999698048954182585776825983574612115397458330884183720189774616452877855880411755142822079244516326302056879315229673759186085911501013438542785353527933599818716686858959053093109243025578328411480981752143545556907282251636121742660291414420551047396948064242988629926179738420853146258192190556056801062102769666700182514698066303876511598711658121501678874471353797757408116593547211736723794981933437952268555108823203685391121434703258401164078855603364458727137126472263873384272321209280284488656654488113760936514619075809383315048129011638773168089620013196650672903354210441943481358258025705160055919023527563632564013580069642888692539830951082476485432861155634851313558780312848810310825060715197560963109039746817322177748744204040694304529184074682685531189797047648059005195915860430808318584501103746248202533109584977273985469920436960736466057987880297721610589016319962528959814417584211837875467323486377518529016297652947419210354661428932866320992720834521077926753897056247231105566438258858751462258906143615407761901748054069730523721461458441070381239090145607550273578390037889715272250322907358401116705690389284040988647480097785703194454442405514050843347591405428925488017048279130807345031248770028932016653132720599555498610412971311449796577491330779013470066554316337046188794849125178470616806956345963095290003475280292205364746134162664200158571251692970145890340675698221417866211069200678638238986206934946125202727096576204788941838126627848100580904643207663274428779566891195149379073751926029283434780810280793184464525613289756540016976709265398146228168201741297287059556014624612732199689901426295072618103049910853715199213596538993987466870833676925224017842011514077102667171906869836454567312928655133120808853457893960973370408578778429049303363091469601576541764956332859826674322271551027820321076115540796462476891657870844785692361985977601941259742831273413179951641188611419490238655129740815560194450650721495399390813604873022843182390881931160581524089786084553333576100810198504212841033924142924256903252933279497817266036297006006382224168730548281311302244016777206113054676317973574234334993550721439061502487077289913824176308631393892454282561443631989872721063118967000732623654031253702561599717554427336980956190603452464682184396921140034896624924330235544637840101420346823689055432694432474947512237984851366737145974198079520477186071542885453543152962013715523843897405677871966895630833226137280653771321212029951995512647142284356949193922563203113758438095185837822619196207110783017120148251710907464153423726685959603984246720816486771055044177712763944553034510660012109348700668041942128541695535606302244477203551749322156185168494799982214027116872548714922535889392361122168580927278339798855305132264608265284139934374490931015301139829853715463004492485387228848172876160850811149846933544485875815913322048800691289650224232217072244398773292878818458591325233963859907454899633210206044858485339740777918495951955530580754733354331568366147803487920533956993834609889008243696559086848175254874876722976405261116789424849686044722851933192983506803052484165974745455405098195061429225281465704905218817294158294871760777955747576016348265342959969844839481516586209781458429809753711456766842159208003707210212262939018028426471653705082557121997057952267547752632675661326807074611034689785360526871866753098315462878737389222114529196412774191186301746050994211729028974103485947175539282321795399995161463730535436402538872235969345030106857217854152713722679888456466741692767207573667405781038484152016077119966417406681260084677107002682354337749335721027910820567197418615809766577131132293382909559426555002572162562928433881477046418760797316760457480542943794982886237389077583885296396977535060529042754028245306585795288880214859145277052677306552029293376772685731219094668868968386666748295889113717091064953235277093470967731443557592887734006521406961820276603000972051634988219369695989449306230689062506314392549113601964730575906709594933120124605365759232585019715697292848453943873819495828736731082779959566465937214352415844663200793427137956286585478947176826656112057050116427989318133971223017191648402765530994648852513554710649241469968197878325976108601086933669471642410991521559618038321103773268692960060883594260766403980570801237885928451123928536194114400702323367916974821884795489658947296940733285115214421026492965211336419662284479913647002633255061378692409909011880948306560198701961075609204500696048010818322603756788306797811334123945650809780501434236858214617860911984285834362621351771540391987460515319793168634218172284062085148191654783856605514148355613860367646089825038610918268730767755383192599040313073536702628113023571112757285118060830197839842730770326408909830782458496963949288959148428449307197764778504102066531255245470780622781474354072843083514906726069302463342558103929436270614976640460692466663733970405060685947649199199167408815548163567253257083211800607698579870685114576606684308505402866011181101476212213009931015433316309040167492086639079055287064392097169875192874491088111105371006830755958721762584097788417586732862061026911847823646440943867165411070219270076699829879213776198474453208776001641192684431327358569835021638067927194316736536521077198358756318185226659853374826277599527836511328993765837892517705587902577819025760575558232246720721476579914300830874395843568360650431467997405581195757538249297174844022198661647657640646358303936886877220689627835267304066636683595460019062658981104092436211479094645121521297570982923219575638986900132680103217284083423751514078651500071347337161822841206997996743435404026165801571389106790428029081411703211663141251723337387885067361245253239525977760355856240639161596636166428046771206348456675458415481480218790883791984991631651982843312536906839839483941707478001781732089505609692066287290533109846269500517037429617069132193428015938440313646316439196617316987106988967656127869296200499025401385271212131850191926480078242480061847517822599971945814522049504376704081888129599201466766434494370330514961970510690903460387926996513299271072382375916978207062214387566506236006852321870372374811914675815006067492232644708776009728189634185738859788124107701284550399339931773140995899750449145983764433244647821267260214698314167344933280775712909960412090747716345999558030470732977794353533167085969800385650951722095893624815742814165902827223907386918478043673576413408127956831182792327782174221792057157941177854130359629134995536503214148930833352418722834446794287417888722900632908642044737200479808410873251242832877561076488350159282573374699596628775857961642782876830967564121534383328273549517395413914658728941378425873986434799657663079470405357024844335903173981434453911145953341036185803824165436917702290179880796425463286331069827419256097473494988811865053133439476518648391306553081052417754914120202570826802139775441372560924044323777428057340817385385718180985441185781630893879852428614953896671328987680611889298265317378548446558976972693882475647964802357200214637536230680280565606917974667027391578401837971831841098242616539752505203398034122412662421494376488247387454293173932679171692044901065349305237470214940257746094296423992485015711370178153121874050685124968289828068199875951727494626423000312161864589492295647858421468176407317077070263531793126771313100581273732720895602101045505986947628512123122855601897491097326774760836034397109407465406295027585768882345154698785898032921894364639314007725692154728594317343477389961784662323919538194170695928855191504142346349345210702472404042436562291119564216891116300495454588162008409486899892953705632921464723815711669300659098352955545375955370850698883039371044369957508049615810100890567989528932069245068678425376049752694438182769874453833805541796418460860919451485171353788649000820536771732245733805150999407921598470023685254946824549453588015862840954202304746187686943231347850413006941011881512125180495762359164127745259616541929957855583182349898836531642622350603258934461862225189655441668364108676963215235919756878770413697190546762361407984780063012612968095617358048870056294473914966569439906945192335826830550701892048563524144484839849707211014516576688416026884415809388542759043710580607556035117456968766983278144138787318443631655327386333599020626369384482589766313180532714743131396058338246101525480772598954714404189339979398983179871433569371325593349048262138777861459930523174599978876072181044066084066248743258014424974704145255998897444540546632239112165764600347389352122040086146614537839627298534051625724209815466859657646908643209690118083858109497176262152543400281693980209653309554629367721082273700378166754043341701161196729449211473584906275742983943409299958741985256255024909557857728567332704541580067611228703551601357066489945974736638940489885467109846073320656385491591456853603127565857897736489525055489166331160221726895819431382726506762617478847911386509034102519328315941738794529318411950469320375141766577244138174406556019768393306201233664746853290914568284272763234435340430220656173944387068038615479388529908701363555431925566222721488228979021183835425015789530174213227850540080628353690922642800346946318709877660335815261026059467863729614219656441058128076112324574064412142956166717016043877959557385214157264721797370374900935736013902731718691149788968057521519427405036572267242362707942521636758666777191426327109640509424772447230494516711775125660441156128712660525795623613249684803104999166226743438735954445484811299746241977437728108487674586683895856596397801004268548863039272723959720553547443220825791010141580487539232880611534071237960725251638921831881566153504379896274441095318757001247496032652146584849532260252211717902849604153896968801145973361865259541678691399868961439951451434181269949994185839299424786555783749932625922733538389186943028389619944859467401317873088043627366290077237075032301230229540981001277515584222511811312431836235064729267329601649270914904500842297287923031643011988954043799880257426373853868940436272792653300499359562340268255050967969745315167288317899586865431726812691536706026863135938697744715297161533689290650865656167074478739471182368402902225058247391040725727189602011127127276968613193711374213578110547313071306207404108789366433790527878785276099058738404377658207957443637508781730236658449612350907393496111816751371590964715729346686664801565284352348020329125674060804078425911869121128659938988086054485832448338756595487027524380025499808759300800142812065377021640056308231677446806890219964318627812759253325877234822692346782573799240193970668796527944546870057467086377715590613798897531972175755521964447914087050942896173198145366434772483127337373865921148491353387696661169760630832205160522728784070274550114081634336654030970094422314593440901201653091783988487409236416659586065820864386082639358479658311237769305646008858172590101380314103195208258565401238651754614364712347129513951718226200381182281506344574504477332188743386060502820768659555393913394331588645763041795704410262467390157352022999203326604651887063976840842383043757379271379008844794504819409168467099185829398905714002536738811026846894066257743493515283190259421155346129344093379187214301749038286082618594124681127811670952040037982690142037839924279222660062001306787304189153534593821901144152102885404295456888780867981772410699469930973871231556361593666450921239726849033172895212509705729407368576465324336101475173560437802506201494750427399300642293393970310934517206699933621550906854133216615842130850399691456256656851094402974511556385258223742251909620944919576223912986559769691051078231805143495872197108411583380459400568752590188639802546676637116560931856095020077307939521085340288927630425544147933573762626803032997417387590601042322685367445243387230699754014471910476982350507743196391786979845924473203400901839110325323711899631315849788524824090468478105613932826271230479240326136845280195806385046126078461434043302951854177105325462010383466696631214584898950545765281121752471049577971948458969582892141957906659527378644905267315404083621115604980045398619692384925171693188621680164804914604540886336379822819646475045154274825923019383201057089495393070396106359857826918980081858108983252739980116451283163371805560553698863504106576515200416975583833498731795775690397735631356933157995562704813000343603584952696080131422715421600880028832894846205432229746767868564244796169142313753542939189928735961496385949184202538114606773357041641797953027893739304318456923158302950346538033732456080309209154603755251744975096754597118984245781576597573587842747430070929319630736490031871890318254995857444851958882349229216706629211529321129927892469053804409765231275408810972676846311435526059396457918836751527622867357456413035524652806069605954622551481364113461505251713393735316841372458178950511031970784313272432461413534304500519883888097644676426457963951408340714584042357390923675528862918633372587733432560214090093789988560378180150727297738905957884423147105131778214515191746411850167850516810839705711791216128489401464876310620545235445142613678397784294149351821139189974952227907374186475075115470732218478258967293221966658136855782951343657255413793905569425440978521438489093499409715084552600681654549372862554682466667285688606206010606128805853686920982094689926005630052315352811826779867902933122205243113093147002709820156056734864701239251505427349528946309577230730124003591108655798327866643726699900669144440991043440216573041010957220576168598871077141193481939654778932791543804442551196026878271353645957285942360304676445428534449262404046039104434742652102514625787980036425125343897584287368039993397467972062884514556312401184595808709212313713579772666848831971511245371720590896393931037012080271966710470214721014108244788872680943211605514680880379882827920311244294050925802652559067679590569834224642892947998661202564947728601884787488736262764351592434166999119333465024901087042127006692467708618802807916747655800981367838785097519939774629435004617518777476717377430743378509437905798456359922683318916718200589436328008024908345950240914081945538872569189943449064369535712254099303790592390964804523470367031418109330928386785516048125313473678216684389717164482825241866140252837671847387115217302770357535606994393510408733692797699439803775339540392774855216699872628868312860862035548628262807178542279744191096481873294806620003222587369930676413679620577356320534905200100495544755196628411882440606357231693287422871980611567464761085947583947584029160712926192131427896218317523117028183300625573040031062305549667799767961110578338041051225260023493825237460723701882932412113541137303915295939115489645895005563033152897664748163453387490713750013363539986116881955167410014969427658385401117773872236700953402107323979150051917595470082250636282135314832077566382743731941903309112973190824822565654287213537504848530675759691188737093577711387034293722285078478035975058315910414356273562942801980339334272082534448129820296491197203319747435319703041017720353862195089587486075177010887697228057354450081896988510858555145148926344142364226654005405821110338113279864492926580831730176237974687840211043269225107562398375061754715276528847672495249916598113094165171299913271627116761822919490377349168440273813650631189706267422096886026885418883042645296198326147242876291451759687265644739039596670248494387746698719787032950373641878007898423855700287760909947560700414547568639841301486502947921063112474169978587497893980490116470064408801772992582110376724533848800188355640508456844298937811051127780845141950387400984605420216429470173898772584558024660856099612649939312471266553135941968498430032894914301097087274628222044462756475225683771203688510558834223899661374760266240162503949206151612118650450758183368223220134033410489946065457572702168957693375984074266466138742786816808533309910263852867709853825125118051581483269813456459529724480720073594693235979772127368017086267589548225108248845204067446849485391592153631999469235400859382832055827941223879606464819023362341020178595543411257860581777338566199824308223752606093133995640451690590540693174879409339312798788296145532623853788246479807556141278162103644987201157526934654997632475826777566584587157264575335839326821583390040940117862244827879384809343117275204298091283153430357182323099008350096948332338386450542602901279304369978101278961166270023770961097272933744104204424172918896508924411209592110505719005806770702793271799603550242120663130385944285694488710763767219349849666066373043941021044994295800995709727471806105450216355086787225413746717574758855260754538167115638562261127449745066718651955021889926746656091081023464379556221687402001755417689801065762374100377427830541531051820012331869267979612241170624334666016398395974753473782108824082272439278731767359010038259837680423289938676546667363198409038257374027670149350996158309428338045964620878332262745628667532368461849050407744491932475936405973486359159592207407616496992649424002786820347654495424137217830462116767815152876719497846244511730954046459281551770208097867146905642525440962252321328754918137056306240983107010023464131771076750291159650433642797133753665463682619246334154058332993384100666227982672384490154522494021511354735254432224082716114845852525407166713603337110481613185121377113400966462960735071550997344993984715560958990795049855839084556437231641227752724334961283069032422747984196108724142039210106598305807073264627823135191972334161563224490178886020761045679425066614627176915581505854210512583658933304737077760988653705484448570031200706551183272212669226963091595426755148049919613929040128520254550507586135248652020191543430075943448974518197456214102868517379571785600108490847424677682304619064686868924432714571039116259391336814194455052528497827438022024134130659135780324462102136991304931262910046333619148820808056832987525106456903398269053298240494254910412950351831849814502134685864344436204273377385429532266676605102563389646342442357204411537777747998702605065792477806597252495266451378106267559634505659084240380512085345421553918185166613556102590843266518574858047062526774135349898013652506189918193989079107030830974875342357926544181357791828867956311819700647825842147665916438713904843112836783720975035652186250566052228580363621879020583808380695463058003955303870819453591712040794332486664575970775194391240208561674323732496972182066444474853469386285820123277286664655892469078605614857613571619832002403316010596567325566388055944720155805931188790191083767057303731567118912888134034086669331437506622230603283414083023339948921004014064780774944628121203634838328502031058041256697724301907795990025325011218541533789533146632014390706673107856556742862569000565762824233772673051894637946726114247856309091898431596984122492248221978070423873124011330555296553271177542631672319832494744795323749355444290761598011072391135637589091227432851702439961924000063792972037048746447549139921128131231375617261539988264290728631567486195503128378937890224334981952776160755685546373116522260334808012173342982282874149750996709243853891000736593269465012972896041623974193047015186249463550248151332170144794653019130453028173192909944626772977134179418969053060662881744551038478070246186081457376396786993184055853152543412358117661755133180349882187229597160802778970316662451273300558692041013380380157465462337769593571205808948281498379269258364400889253045689970565762079317780047881828607124718853297533378995227179664166680465995695023281923550564700112346823786505867535889338692415870903237608540800102120772738607983795042673013141508689696423015818054123418152894056740057460505020681790760629835077976193771198790478085805603240847017217652260259161345489411939843646170551566142162246650141287390949989828950120000997464437814135610852136463656573392267524662629206278187434945098471419595542832379057715766857273055785321957192668149074526336709463430539408827103849974553381976614027856893374907707450973804866756111914054867198021215820821635455426953768225973765832897342307589676325668489734193105101612996447485950009787018886393556180980972220521041064942941569344913494055422505997235492072689683535828209449664237354747667308751041713316208685221828209396928086038533882934200684800520398627125444468363045419159487310168634330621180929810288275271643048835045527977328037313642082121837503354673255868729913435730141012327705183974682765785029115189195875969791200118910858922826716313592805671323736487257810708069725604766614019147983175024107495722955281578378518949607131137928907725911446140142227047643938163906390504058892059369056246514742247229889314249791418019096538303862369797655046721171851920176430982507701162681570624308891045433726397791336986635542414830010339765632763073573271838252312200798501864771097242789367580692199017823745353940007766859043418830607080449886159827665538997630002929002628319138278636063604134341260674359562935492820556225268556803399907120012375571339820200912196392629823277793446875295995957745728952792461808771494661500665589454346927080315999423474704167859510117276165276333629616782705573624232948014624156301745493521475050671486311386260586287799830148765728459015676615742419724880336534315698383017970442609667092567279521220417991871108319292040948015443640952205533383627344407333447657431819501760524876132112031343054556598214166285638804497538245887913921182437876175944038699804852208426398448328663517667779183209056016587849525720501029643314440549024254266524545659335860698420609641879252187997638397058120419441412127249822475409431073542081464844239438934927138248758700133940326101222128783062478494024213730674708052338381789933274673097751730645079379299778266114107761469443773756851037128315253564999347005635451942575528864141655924093626987294294799178428864798810340782710474889328430357210895679106427699458038611559206803654493941788356075156930569997708069678305127459541579720216970771134805594742674403423869607802291997740395867113686474978150741919963658560729409681071843441223407353320284110698876099866206900066376323159901310376404444638256259056784230772842099360744780491717500568207936836721186418215623560148637404993133903813489075347263830881555712563506387631794825538095052948351743237828326740194411792248272230486430147363545718674783302114932803838255959093948815495877327467774516241002038289873824499756140920210522511457816446336358450015553774324058656187463057541994835801929223128065415346270161544043341628823961343328556032217092230628217053136808307726649874744814853240605077943030895512150158670319644423750307659609290853047172692296585393867389476322826207850598908245936111352461462240917864997144380455375346640907265474893136412000331203923993121813129163427541096485109180018776857923394589520877828149337235851963451846124704691574748710645875058578595261870536642471773303984722560975165057201517443851534520042866063482991687967848766420163303118899127886409044116550063467432079024272896790362428433738552407838169719180051328770412962659107529350731703632663301791738427611212836785704071439682746190690300527575423479842399117728084058671516396306308530154906066211709129809128517106928942718215310447429877048715824095368391019085748613930125258918136937544343943255440749753954075841693172087021218706127015116652223707469477052069006768614698409802455832614113410823111371812342661920893873542461540695366779376161666394775337682482633234616329085845226989413840198632087775910337322717423930484334683571309417727404327619278610147676324421885438786416308447140734219723874209295504871600086124454850089480023485037021607312038346055505734794971944794296284531620188572414382796326406178629377907465044077159443949031213558662721925398879765679960886412696868757507471089698566679735388706955483950178308898566771519820657895735140434952534665348537332292750294872531265621535096281433291255322347911833353178419371806799611346938967294380798728774111675161168469976275170803627655910613709766757501540874661949194558852500906052758613837658672195767928060220601885057129715926284636620276655038468054214020622228417674809756826825868238888159052079075636515212764778313903325559226099993879232010967710100070047038981073326237198529597885476204363812463679955975149042131013557133307070158841634930153986874837441105104828873270876744873095330150577478869297561260222317479675803049410980643865102850604328136300729566354153406128939899006910353902448570914636771407379967357817091266427414408562750228018815172857041369057322684909669777964883534794570701797461890958563736186772084181176450949201624807549304857709122565301402697101177982057053919772305299833019134278208048768722080062556902591412020649241499716816185539788649110557405562516583797089440124900882260649976669071875014781315468128944338786862555606131349371832716342852418013517359993459787420211196463208857192825783615541268146065459816379616918720030225897011825600820042160637548562609725209152458386582276092928553915122809569765114746490328847262734989542904964656680827489866561890454231484663326330841005949289555741593546369810444605535087096771017469399198931839772419444880317941255233278235952518616985832176598165945679250502224637875257480682714387135361627240048775277376287620972851605416314823693141841472067966755893356688720398959699096798998882302824352138207407084489061954308844136733835508614667088403391327170085379403592576581408076565631243810325724317623599218758203607445105618841723086007735119022026574223356956914471510334684067057342678735488572823740759572053247453033364610857792450697181408458317736802182675613544197828936864542926820986082744320796606129341759126181099961330524636487347456450460467975247050438729158561960434792431139799192767394789796710445091702266964501206374899736820128692337835644472105577583019063148543934668039520524197126222213509785391665963596019760576409226527675917954676076645396910623307941324844941005824912783193580292178337818762870576292468614615427159077127088714013383794183772613402027468344576240425475441224773658845190528724616965894601530898027900175559077367386331225804725435854329544049673328227863755857236424956645329189598694022660276660490052265235959902402733144803013563643515152062186141179159038388053110682337414160312492447435643662576291259503696942940951638403574694127960244327563546734424031061386147467171254401515244900779864424814862731168123243078223591078929846667530078745860932813650553505011274942797039470659828661929004740181574702499014121327401914965394743655250153756730198509842768439020840064428129013007997550941587086303764741579877044700078141688884577564948070625362307537375924117910469413737563474939731579363400252558322809014869644151470528046692442632009909079507598628486423300953678044723661813360706016198300137283696974570543587839257695328385082256397768396846980750473980781989703437804759137091045420538827954755252745033517157868329033514884791431721792968168585508722279309268078652364095056612738166881781303878836069973325186947974114215676913915777252808926101337120385304494233258078240201789409672824614897891460613260836352662612054983725371469181081771973447686381929626273165363116864290071471187031864524519528795386972491510884016531241418199889917537825623733605879910816213785213556160380672975470867187317560820564599070835842181949485193708736745729845089839419217329928370829383845661786194012648383223414123503863878404390674715927612445004433598876412202782612405624080657090059040069413785784945294125648225775953323867740276236446909279823744464947895136451737583813601892935496747020496424119815195783388756335543624467030419261096665105392432783829730403158918810218571138995262906578364152575682494557624893541187634587301157002954551734927516431749328940887761192673579830116833156912777140381486864319048079679534743713448459621343000388284516284590602049152729003655901354339254062934995985932432356296701815289673291057499631109739024086275918041522129186536379008420993884351379250234096510142332852113384206596268230993144949392596793558372362803981177754067481478403330039608137852097077454480199831480230393362379802557002581522905293319918383850208764748951465586240706975492518640636177230827506842990437676151746406029223229695397930079073794214662358972787408369335970536772238403999643635876674891847626562728372459220826222947615981574941299718021456596995244680475639638010418002457962453568278468929749684402660587689775784231066936603959016063866305268246313061144017698396983582411403169295219381230092917619308549219918466061661139071470942582012490470706007979322515010227139685601234903964095026268206458749783757186645370917971894279094485411466573102998065401306136546147797558096847223007023975979275754530194016043973788520550511579305377248005499148065961762732758262829193070641516773122884605744165531108767751401313963846656638093916292919432595075960758252223971364566107267674877000320695693557713421577044764827072467174921655138935846568688218557847122587247834731757327974618318532260387522701375738228539332850746404209118976578463950214429780846961698958812185600887501463286655406002992624645741753419134731167457672611799119410713072719303948803430469982240560678928384725949165419362047889895748771274946054602345450306668867704393626674034172169820616348306340607359433032454492707964916580927505009786616148516730399986675738630859457270209582951398515938177602231721053271693531625672039533157080542717405526326909824023935093304856335835992347102432162508079810931531714653164323952917982849600230466220937096700883863277910262155075700807277485355174799922058794755286894457572567769977017512291030636516873750232727885954270591867837738764487103309799591450136338921205870236047541697387339703070249750608996776771719221229287592538086908959299971841096545336226118792052502691604208280879259473340664428607291888046853901761971979174009844467931249927593981196048698336140026095162115433335024808915436479794624369220084607413992556144280495799488807921694209269316191697368454496021464317395967323184321670885254527830406144013587534838910934560457729490436932396980905572888109444984892544928231766545359040486931327698277754149183608270028773052582826703409744450094957394774877091421331990457297671749147261402819287460385657038958896947609091996337583336497944425647454994234822655850080246334743064307168551274626313258532800531606632675339790003100734133982612480671229574961331789838930768547694482801805312699787887170542341210963172851011413806196206884035286215173876674642741810311263546320691626049471966046974308840141519355839353244142723676535877686955147192730516463991670720918199937137779627495961961939766191423667865758147753382523287328844197544790809922809847745711119320250202873504449096589438634261225756347325154711419871478205919396481136567825737440571059260677461129082331347738655780183051050829424294825008521280368302759861146780518509593759270775395174992295212155200235477142075460900064287610681625955543743273542291855408879787189890361574016349958892987924139548157122037263719725276092925645283349951866390466524025909376495179173372112788908446836953842182936463926885006672408549726301838789027256689782393378746042177852867470038776750071667664411758218802077271459052422776391548983318750076884811475811239835546522605273264759631911910087179289828593974723232436796237769311501742292010058965746615718264881361372897060177324598336338755326364759900646946209332096422938958408206862782235926156558882851265366159976763550315350153186880670803028543763770471327627221036542932862909720361464343513787238173915893865318526533587715840555142386429256442527624525945541540762783612959135403138908394669323352038093607368509098646040545271386551810957871858568118421267085964165997050612558934721274915177252117361611823080849451957950111671615790032923864643917692310337864121595475833992164969416501950817790095385341742054953778586999837202054599664993846335041319953441648283631562370266501815308811201783301592008412322478383993940265879064438118056031259402691190393187108144058215321645464788333283200190859917957564453990352955110263751225138449828082906600072795057917792657863633825227868529170137079567216712640013084126242895266883910512717340121964526207219510626280596901398141751486982269724174080365610385846456304486243038903721361216625411801621835165752616716258637029184629661081039421474211898476170056797565835980945083718835076101980446151659989481170576110225891146839446999239137122170616164874467226010789325758735864895842616714796774365714191080370710067918976680895002418666257418573071777717562968792059601492967635371879428457611686226731005233537038729997974316432988474305129425936302979475647817090154070084554822228551359304372714895055003119714878485593995869477214188309567836537558086750504778419328788865068629808270843000956714339050766158041034994285121810588584226224544966723523763980257040032935640184879974846489441511812723415005556115311378489233952435133253205262473797192085072895928958106195190750031274677581165547888563050505689599915518884037523337898270100899693807996927299900303208896960639551195836109461603357127768792014414904824836597726642242405682727239476428899721524903481256285009970685581302216696647793848240189700673410841302773072196468133175140116935277215258906739462457706198731671992838406488980340517748103000260055143255788562127705163078483623933608707110433706976755242800851618867677202965795796959350924407501433378125770965251794451332481155859674547099934247252723490647478717311754641043497609879433455767684049121130293247065417503669915882391805405794306299528979453632208191149321018671398071294513928297457367177844683221694483698794444513264234213454087069508614704512491428913605276878803841077521279017321702883113641769279023421213721168560497594055747557231128910093894262301181427196949697577712658558363572129752701653345332629328916370615819563945639510094696243250795640312773558783452881591272942165176120279893538793129316631279445865775817433219280094240981056004290146213439216540661067522996795229352184405247958533533925128477159190904535779348723571612854882325789096659964225826479690358286259649625819877187846354373841259881837262072054146231425461052617664946858321641256954776809036155784675249962383426108540021397319210171821745580239790689983552103934125966859893116071887710676347615486705837452493383530014860479288644334524267969569746995769752949510455973645485397841285532625734475040309898135280175084651753968458362479533326611367683262911720684873535791049823056518760772861314493565263414192756405848940098034995985887698185485184502258046853406855064025924142064339291377963898718583161429927637331436170845668279860343354479434100933353059715895869092942316284455202746433025496752948930054558682048057405718412575252072424746469912354347280510564543812579502832727720789989145136575300280679336066491382733070787048322753799806880775330697969736459295541064303308629252186309334818843246542796756381375786141191421103468242297947736113975548036381812941427266733728614919435094062216130116973974108321017628960510745819338504702490827956368756641659123528952433640091473856338831242285785317330727435368969451403751621920818285487243282335509506498837092159669533914118572202687642142431794441863425868014414002472885554993663035620418450114757649484219391340813476133077712366250363028154593984596731336872240699084057942969728363492248467151113664836386729039145166159048320743333163424526885948135279056961659553463318637543774150473514794157379538495125480478359337641422226771180848478737303104789660653020167971318847912047436698372314891159592764420697781118439732902121051430153443425655890961124732199195866257334076526650383547611086669076462939016002284551217017364402727477150977142817066730169029779344513431867755273705286373879082302874569147496224823015428162936108733168476747767054589288945021545312162350758769143800015932810338715522885655421813433623662797949511284111307222171096026949840631994411424726849421042305747212144598503923746773834496046793134541945669762874199370288959245963446930247428409986834085809056919135808222393261194099526481399354603996337241039278270159182679696291213637949698849064421353018860804353762290983104782976501655342751645568000348288770756782281952814715078396598818886697385178129450281388626054792663736413316526426878809538289747267692495021658668215073458942144441553871373325797690028501869693735136746870161725658071479228510602989964198373282763396022315581280881431519082387474278317157099562013103538487689269327710957777481843374276716326226091037721405399254627968447351153903344265003234229024077371201455925419598878463670549795836711124558257159026218784701215817481035664937384179785943243972161520869954876922811926891520795180054579138324048437806114987058669722040645867188980172097795644011677891292074678444192497885452567678526727332058603820085479672972641526236904147734991511685833098504367463225966568268404661189554595292726928225339653293769017176763155595482595041962411897964660260550284509647712452562849197229665633251017121569243735298647228884865672856446075115394902905410454036834560622594048679797670666263040791522721901201571911083027186553024003987286393071689611350861415798633980219058365912501496790550188686417327219287683069831134729758248629807735073600446583517496238909959120581588183513192037216539047092401902439917806039552047554505086709593717718771728114487479497863091518019703907685495091422074845179338204782001233555516752395267512174861791911199646486962438897040211934473670238988510868515129368826629434097273294680863607834741139692514017083269084624049394282274300876850626189668684937517181881867049688929930400327588846800487382908715766690213367572513032708483930916784972245842699145631956399853929547443245895191065913106589357675236080429623877814451630880344120046524837998854141264221964548636295194055391621485944121394435523379082164238646884674144712292900053130813074571801567111164994181383142062611335666856473107785114989147717131312972471350059357772666933065799530354897012248119715611825071305758092489739734779888436019050754055989573031980091990897549205442705762969054247951533420743269664999687286532138014159363483715092700411438284733920632964560390197800347713706576252312764614972569448480568766569285798465425043289480274025314425868768267412181322350946640968977842395591939741738369426444766781189490662268874331994239850191726154974245045292726186027297942504955694092938728462391336040028236182361778546987220128191030111212331047779898253088148710687343020458880061778792386290046761612234305063844198538953501363488804167377031764819848038775893449462514800495426004995505658912144742060150551314599568624951957300465026977055288643893028462434818692612029148242856827578484698788507334765670655699875275776185662757875358026633440722287644808775215315654827905088174504468478690045813621324590789877104350862337268455584116068246808652740114212564446065357029381667339915368376467680978009985060616998712252924981953004471860853049955047089078180224826136239757945806969531619153666513093063522166576430263519931863667282810131192255429159586815187305582137875107913681359764882719568616257623825974423280940227500066353308816830582048872406365796771139762837536657733798201114801396079465712477781095065621741319766739077313687756032122841487441111231661633531743597435897763991531677919628622671223742118103678691673765075497899525621641953632106095057363281506063056753501149283998828723070228394181988535069792076970303089268264672715653553803827082832674269259765210849425926560125891073992923754790423478003439478175704689365356974553434093195191392781443749681092611436513765670486340256621330213580643352405821279646662519817206864811829886967192658957041041116125255583232538578123069013174416703312427741239765620506018750528073385898335963005030348509436110824633604997949443695157721815024974470786156221451399522385616997112385130820028749650109162006054863072636702875374869235925793777361507022886856909613315683913481109725938126873496461367081049276527323420844491115603496391795232232120035531185131268071359106609182859224989320858438979223130817147629714485377486670376159444376192502440189158392647102670813187315627140671002936325195390974046428302384669835032636598401151458574295336956902316512695949161098344273114260046534358958923772603838458703269796346842458395869912864626140664242539610897108419314756715435323971660664446383825500332781595315336612611829243429303169981371872607734477201810610831535981100765809755464662505618232659379489206409391474643378110950288080065521944829555946500495623288999877055516025759965809143824653342347883163718479206393326255301034442344081734330821171043440224977489113891398717628788079749590188432979990784893744954596393047005494771402895007232057356639835702203146485891831721436030233041777948205280917412917977082749919409403512065113330968231981434599403890107075171743977304580064599950151826618477341952443477102344066905972806934653855979145035043315526756313227555170416234691569557400062204547433510441273170113297432400261577415146477245151448697302941798228197924185630433370659608237926392552986433869275773788725725708623421471737645760345258017702791979280593827249944040654663325262428804326199300114523984671685102756608292931509410749462857466245843929405079506210993354237970567460977967937270176873239223397814252823491960593924219354300376810608393138313075565322136537162380475088588991913636690749584312314615019713900837477157445978229932959538593019271184972129677853452728334511850877187904831377668394831663301211710877401887529019029870128030525895597113335952580187512489933763440436592384327568924880264697354924574954742765938081852213623611029663089119704661302972787607676292062519420978721770436458442921696005044627807474632232210759673693114899626682529158148479195615755204880072604761814684519132348435479171029031201151876348920525808265424442889116098614825237077310491569488250274609670319958005934331117264844609295287470457613804139604099144201824768184319818991785275562104672457586134279702244268028699984595647252492829208611805352691668802231732285226438254090970327564756385254083133264236108359168357736346994004784337649784605632973736988769760721513036609713723955552672386735909162611090232473123662018701117548924194702815568441733632212281817418401723975081875506886365722892982988284242669132235973563717438384394272336139941213916096231886242452191075094289893287715146943140679335489596183541180968215677000000090432185692068495628213332869257285016576215996662017001599349146925701027412230014966555091918441208234994053935453654317941448529071490554018118614879364755452019393400314443271483018755450897287010323935448668665476673583110428196373894226081210454182369407028785506131095814136361321152486738432505999123869575089751792179572822003418124122273025025151873110012671214992478585908190967420047332426980900839459670166348152606386695601565169061830982980565542880758520791320101636474550216470078229629665752423731359028422181953335795636280427785686663107472918007402135171321056682822131438855831976909821876434334875995879095878919924004899357695147440954931900208701450972869933888469400220729796726418440023388491223820459718937409206020083531950151486357605035050178615127963638496819424991212826945087961437314560538442497435850670043680039142664061016174417538670422759621533709127320394395981207981509643865230951057534999240044920067069077531727072759892341399439461239127119943247131524581365587390877522858519723418342113598782043523452115688102692147673325243135600496610149850662366436958696452064215133483284443389646699073536398633608509638486130555464346584631548698382931049680074056115967901292983762057726485412735467150091262671930515623140364753020367598033888704686705171701218552475214044018549061445571360233269124181778234212760759081688908831241897363767433777857680270401151197338001298241515699987413737993723093887657688768803432473290490448707684169769775593415689165989031328004649447387169828468809633358687571428028980422255773169913191512761745955117493689557140099370025652133118165230468579847743721286734631416706758797180712445474323139149954916394278782245003378764801777514213616771921453104139081574314051180318635900525093653330256403339597083714468777090637473832170077002490613521895816752265016648527002468494252221638076466845472457624813318251716657101090757246160513038113673687820134556055335724987408898171076715330781207132164889477914211165109031915195330701164869889225844070043565123620248974626887926386063027782914858583267781565818063924590102448055793119443484663869020645183352599444725594269612186107724026611878854446431674976097880218080101425370278238546618161732310128553332988637668740430788372590021303070569551442643693114218824852530674428400419492800769248431729712854899957507332520384801025447028978601656326097709639431956060056944458904693028895457383676638942441383929057965890526694966872148183182939637606633827247272354491810426584892961707592772777312255741436825633486884516724474691430563550364046586262323500708732167447160516563676361714102682345590065343957279278863906659677913540494735364981530533018031111971206516834379705780296292984410847319922388125542718789373694993477179477186046078688378088110707155232253152893918034528442585709852948085173558833093947053865889581836727455709432534096883667215629458792398914082085979757345184818011250074254489188175695179379936760313811708666779431337547145337312774158244198578466949448923644050865955717903183990984676962337539959106606821237507239322081778370147079646757175999745552445181987961892300545103046601203425309517698493029595807862786130519821542360252367053734141257462330219860408131116984371182288317614794486309102835106800122082075464242121911097889562498802556480811368637270709830893495666225774370765809844954510710337795139829008967469190722573435305884087007909768827667996904141419294557209257860655899711923681007626651618543699672862078338530399121943135941850047020245338738997236257558757189736599443451164876860423021011186476287005941347317320913751521391235791607667361149203833240433733632886828879831559363923077740275729094930967218956762414685602503275464127268347861551798664537547153070706133203354591990796535185736276316881841486782714635121339329344213954650165048668592311778437625752998046648065737985766356646566741136519835471747025409371660263501300835836074816723596438049497960921972535689578261031242158255851478826425637046455899514503816437621280520752439414881231577401167007710453480019608141346313590530143688522044575755257284545958905364392707850339005799660933264727904194435580107830502254659913967393068790208238528327236174849733486026939000462015571669761985727730866076029487500273846391060681446604452325756068574173680348557327759891617416151493276310890212481093157695073372977302918201425446206564621068057337934542359516873709688407688858171891373651080388101516871969835443429612926448264286723431465324874211898974567907411471967700252262279123064397380870307098633402653267821562009998265264746852189900788893148914306348862386781059428607340638666889403933009446783191959620704855966281345532021993072939753020289365115072317037280322789178198910445471568804719242661538874835877008708891615786264512571295293209314816562904747605528327045986104220729225349155695331050806267850065609956649574803344985965904107457684447433505722731171930447383918013693745056792122311748631922408479771908864668613452426245848159646360974255462573966720378619607334151783944051564038657498238486354566596431336835635756175875547028586532343280796293083827157642287257961122448127726279099840199560650745421123808067956519276723641306387576174418744945749896614284276477598482550549498905696173397480650574025388902735876708708292366793965035862995997021239720387232674611166419142027036894114053809483198579311117451173218324214901234728132002874627873897512038813236792291619231725206122993064168517021594171233653603051693048619888575438235127676247917857350430350756238909410643413463334164197747394379588120019571018723489027891325737194658073576987304515919936194389122181354919084773148357495993983929508672920926288125561359993793845694687197255370126803614978314549956981222632764269565398686346365177844908641037167885485727304004463477614616589048851155993181757093020351354163807637421061837190103377507413302278255031909962551218105572089536405223983677464160106463640273165455464755818131462615349274430786974201045295842198628694480455106608226657499280682392047687543268006794234593922072794758151312320196479220477596626158212658639721246854545719668602834852833191286920964082164087661079619417829984945333480236523856092427791190861512873057272411815832117484595743614997635476620769418020722685043051309012865727050314124555377723091891164293335452695038094350370140241679298595787821205617559725567317205146991030687004523021428787797098544637150189349268937342878405757723679392690778732994181214933024579137126223631812017169453748539238360092577112772277327923578128446308988419617551826936332423722308245353399321788005201778121813588087266233674082728439104330417922356755216154962158535021459501204319648693016613312069696305979145533978040607945989926768085892594585983968957770088949886073509301204307589431115100397997443210193032375873420617249392541802880342822830597505113262592101666369405038595638420221937593857211326662476348626138540665263239884847952332621641459732251743819720322854250003018678499284972504283222579875614573566346556287624632674090340611338357584903732367449395054914206142608370195798140888445758965327372898474114780628806619783886475580360819928138410807509147340959206344871022209442565938725431716250488142966931494537074543257797016136464447141042672454925458790531353921867224177254036444543572111574173547892463981385401221017093322205943664206925587277877358002398494895570526517449631079352230259143302930859412662942888192478573057554589477452271740404682766448264476052523552968477085227596886745328024528427259084044335248433649397721999493732079099218707999745998657482502216470993884085707400004510258486224265365562427750214614045407706703134236041678883955289796918318490256813434957501678864279679560440681622443274385230876856500960985449137740231294656809341284638686998749434546867715933079591816885526864926434024851695878151443316251547694701962619897216769950720872734946430926791865811354317656823896240932137317096523914580206747403135067869119913462354893634317323772878716266565355760005238639815744351647925463669066913157214349716368297315832767783098353336986767732090693842133027003472378583380689128048300321884776345739161296173261943458438904657204836694872971969116338263608347477635921336471461588511540896722780328894794042109902490243717943751809712590454494555205509000067301957483914546926257271303360454834937398286691889863930016238134262478009198861952691830753390560249604882277787998129453307920781072832593805039324227310060054076767362389013946957952479699225711934776161337711946650086308616935949311830188112553682686991592090626828588131411887015167805857137410143932634254540782849401685460528684013640232199977783898045257566140976991250178216921552038229582000123370256749463452293712868238855960987824053238299006517887134490699862121545342752430263452747870243026417250314661719649010563031720580300729065480052441484441453969814819926428590259978264108238598518190263742742111751845448338415075387009214994799557064290431165431543477492656468552541045489707128058548988512625003921479193452680999424513181791496220897861435204892988665256585439503644730300879358186664783674314461210807558354645453343429580033959392694773394454537968168237327864294542054007284546165885572157682252872413637708593451689450295303359626601576384580318009908218750007821882530123284099999131175790618383579542693797894865149140281372294992022764013126606462642989741718704892589417797349725828746032014521719851890354423458230110808851648352635376801924277768433955038617651404729788176553363188363178985542805837292890307093295358574881968407773343442448919777340404914320191488097920042828660164344788833674314330942096798701400692914642690726129144591947190732581769188714877846422737919397878908985188750042051089387586320266168060284079969462849097559885058728842720338561606569731830571522238564637413635232876721746849043236123408909588592807646061256847339875289880646847838575946379085578009178852558608315488441158763638687744724625175918503431259203105073016116879093557899587335235727703777059103479302125045606178979702902384270887029051028967104514960490096768893598167408236790928958002849734561755018399143272608781302345372462406860900179293868784088611799453049274054848851080478548265079548118190188923605504054358983880742929338884770911341713093349668806024166385781157351969674405509293851240260974188835156413370263133603570374871926469829638915771562178462590474420273660485563048222523272792526626877673967079811946147885295040103797940920338706954584937501078347459281313389362228827645897356077582066628358977496183184577400872527806526804724418652196890841725820529090447741398514260158179650501993137953164974756974568930850868128523979364351942410735367595477973124216534265046042586087674573204588760213684926650267859499568350669105423523819338529087133088897163008622720749503433214599863051147525478153512719672349420115252688940993532472502750833620743990150429423944083638138341959528362110010195233337785987436010775553458090774924398613198246050149697428092966303456114381363419783759804773510499576697982719749062843973945808727930140190758252011555793259287232957146779783332364779140235544983071545041286005947934412527210694893864400887695314366188753386091638777125497837726509447079360727213546745548797012865399034344761623151976268518527042270422247611936862668343003489583479799078931942156317520661476012410746983968688092862897645554627188662964364217924261277984229051471861635400124164679758692766519064953572749361687859158997674536162967914979124286820427654629461159403361806841110420056744931025111941442046210772150035049162585445914509130659117873489226089286738516522886805731334042803191785431849107559515921361688865747447222851569730476123118810077294731160101450283144679051347349673850794995428909624124947362823410705897437200311722934649560397760574344951326295270295160027440285475103621645824811849461432058648237596204468163779813864134245728843386236556095244398854343300762827748199427974687440890402737008780700619820741778139647074531600823153814312270042758054089236683342191588516316313012673770489536672434140039420146271559750896373783659167263426794936704605220486419088540487729101116746587655425979659966474226176705300896581985172386686964769500031526521790060482804232616946854245574088760680175317257395767773685587416392125343854151540132416044877724007545581414346153723889612070482045665023079225238371697556267847420615370322418405446367841119212596147212961326576815373040375734088601030836737704813521089487352427846466648059764655970425375005985023668100485405642045026417446355569400317751857449646028740001600348114871785990683303823582525758952146478573255313432576136032596317251445694633294407928215221959443650841690980482073780820315088739835472632319829572531923152417061023815593871244766915822041058317752330745578193491762687371772945325347681418384355729715550792110953237377145774174770899914878221221399713034350656559280870824978929518282716149472461347146943806284064246398346002173469078564677376432589331215933602402269053947868904892734042642786398241348011529482827329524257716542832872671955329414176888743345501998047640149955776236752933218932727471853497968648615133352912112722224589532434113392079366034178190707062365041758459528148948833400131051760789197333921065178799808101904871136138498062883223013733692620119992219213845756333180978593400626465778818671103577550092078735016570103337485852178739606820152957986795187724915613930462977162671259614012690499311965154320814744295896554446686437511719660112220036569385497071751864388191657067133546280544044855863799797221296866493226425639854394132396068658377000592266547836788909389084861216320501888135910193275733946215543218177011409675703887828157785781071635172369863269482470415344795359152984006913395835386314546192217796664670447991480939167738242338764253062462091147315676708948581342053269612463639592382813113112826043697298804337565338499131701725812127576904443027958809895249463820019691337247091114872863758248968554513022936434499744982294659533857673853756976989688210275164599961105710898460330428070824609833124820561510272711146071232423139476690159318978658878073933235524545699238729363396238184185222513281756376560514558317816319729549237754602582605405142458009957957437014515020605531167957329913988980756151291045741722550341871787635760838686191347240911599294782322077027404096466054919325502095222698637350385994557851884265948603485068144184483534987686323886959841323776660301759724425190066248469836924261356297373175079442594864550218437880688056723691303228370527035944580973740140796103691790395276529242300976114368299729791516266902748323845340034636245610925976389028310835395051328369335485499439933238461545647820156902828773469075494397493368766212062446981898055313679536090363212674769775949210932858326544919328474836466597186059009579158459599304913313024810420204495185539385218690312682741112555351674389221210200501138325431325841641503501530397281107659837128921597633674267179958773695712932691443288471344861927632158213543550479122836654453725453770117984811123421617496285121454769835874267676173597212040842048183147170253699743780563132182383073514689819921659798101509153631391507694148605411244566673762317706648732043170189071110004819338239488420677288511984802652797541581317326368121744295713292490714583709307282750047909339868868549867931034896452139459256210985339117485452622527833091479114346926451551965892672092427097950637938248961162108296184528190442170176815169848854735764742921625131398359206215918212143934703095489269958979116254317589589635030851098932858708182141704302645049734033023382219091768790558174032734426431889547779611272899043521026339630021872707954567168010903465023768593223396602435466707433013176927856811977468315865842625414000285277841303783151073110616282475189936106501156430383836955003352339074671268433693755096157052242902257639291385763448539023175305456201548687263849224119601630507440156986678901010778195034650130624566556466593340756290439654306506398829628133354557007774229686383770099060962783964805859608731020090845467415612478544738965952201540612262476532989304078939948244006321513645333790040390874977508668260992001220603693018055695501585414151448384853724413313998963166454032889521527156105590387236500717012106993645192169587916338058770500047656957388991734528826088006564878024773090294216295970518896852353347146391722962767235190527252032139200670941298937958492771734664483912824389206023286287179250165920128167791083100786520761400801978762942363521803868354855282185899474496512065243986390558221149322937306452096669900782258001591816582744755182744394817462618196447390363849795785454410798880393939811385721769673293143026653032210805456292894620725915719136101388245750957968195319462505722219445786837376444928727299904420457482648331377070730031071912480911640719032545055820543546652541974759472130450776483108858018700727782800388044576774364317742799812710134048765597439588262129168432667075253266810970927299272028979641704205841558726564959685218533148855962467662460285340995342763452276087413614147796755127764181463778790184413610244704562030741462967957266446657170041318457418750730960451293261223583662587711882607390874792198047590959991382346096996160896031204694544062324777883975907376434236318166662252904145050792702992271717076230895128532595034099904569410442383317210874485808727386571710835679600944400000569154853474752378760175724771421580496049984129458053819228194573602536924068569777452396777830235940210729696774330374495214202460830083301433042130457527322828670076470495101779622820833705313507413036649047751030154495770999427450986342275820826256595719844638141410301107850160172257130993262508819910526847343478608272898474645087528037946632012954196535957587028672082057615152114180199286386852769462521733420447315804978980568159546450893275502197789522528099109876259796187757185866321691388287679271038904883711606891314043238419303156303284713022119490203610728860306609553011001796686108179522493880339460010272423855063192047835660590136896022328304265811227465599661190917583847459227318080494133834700893145800540638078060078408591726414216281558378025050009043348842978253355299843458885114678142139627539144846862506388063772762336690667795740502268586705657701870335253097312153202832224928326386541739583809795801234205144338896508463095588489621800569796755147006377946729892708917712842656486238707725241659370531871713699163385356891752647016400170338683575492458443843414651025788251535030214104733592921473422109539087103228808687005148985574935329179564799006726207340322174002067113553953762046604756580922761263083725421540514028082351203166115526595919259846029497603363046844006242288656350024039542479396747895948121286653618128328645845263535590281272299067693639298138877051653194471996519982847746056872330256164214691304634415536751011082406085298135982673161553656018752898402956481975179751580786681269342835825088861266153152499851018786334742465514223671154486709377192593532174210322733134980695401787642180104954502698826077207047976735671955220943989776391322820793633805008608405902731055352170811205622886473673405649144325452019310373737819219904463957046041106872955093018310995601566119191143201327226484974574152292513228480930419900907206753120226405704337328511232267640425488913090390541532780375261500615573700311747717065130233116622177566349694079792590471075780140381167749382544453141985565749574559848270588603964143268188360042925629274216570750520927812601310573797709009978279037139337386634866727556857246474660185588967416305961969572786140413844325616169456018421898171338091100737455636577646737489401964684886416398324876421135722143077922564212223648357851387323532161794169567119879788859792926737206746876958160906590398578904360376168044182907548726669509356482677493411015211463613410758635572184683860246659723108813453361436371500254412683674344285364985868717468630958973978016575003775057962826964926465402719804993196877089207540084012134189448869182823528473323134507641203626287569448069046465753739731410317514433463592539030441502134614625849016847017815138640820487656928919373516637217767774714443944828535672127150471519710751073490929993940580039141685585067047750520399866784128969051539540651097118365836318998801698805818988149591392825405755935451969430720414603325075989779280530504626650686807792521341686078605822416801757871735435374638494630315942099737975311816315829008283684745496764430507786731004410150049908964047236596120727867125359509787694164291046811471177619758729132990232992053886726435803526561768123324544549447435492112918589557741856206951126433245914767867817520849549899949069591139602043821120021002629685534246418869517564017880494402011284877451758623577542663683462027319661903689397659306496098519198624498842350738541107468659301482141339025815364569606870084292682090557503962221861895140635670086122370012892291374219901854642600933655794250393760721162627436810254319437933502702891882473297671541118165913951108031402227118458204090411502435591260084395847824053437575753814388320754571378178765666736123483563576131899641675987159545397339797325505222966326392039232478011998170285703069103405140404455929950980735625596056161168389026067829590384802486410352000197178818136622620257612230408138102295863016784884710430808810714624216949550495632058625004299914869999064245236350735813808680835470153017462550276863592737591884468102228683759894430850241443314381681218301921746675462314853696968869545737837142146780457941767949629558236886405062621448580741811864363829656954890256026870113918527931781355143923069360379240076187787313207063569984272109294566478931217689233063570050872597236824581362151694277458095068151338967909316873926129230014362507432646290309639092902800425402936143370263759108972835582227433021605793620334374485147086767189341407761718185498722236858415007591695270654843276733440335039528969606802473770667465182963782744728811209063873041508230552981472108516836852818240418976668873180181127708156090470999368268734129903775549252523764703089399093448688239736148015914241537113837279497084768248584421478116542200161957149348112268049008882907575882016020217336970109066563765987228466772256501469278527854697889448808968868796465823838223133268090821854968102098618008929404463053366664989121122415989866358280783922094148480392439145831485192210050059795438646974611237331352757109174881215941135174846281919332495689592742654491692524015795714549248803816611770640454509646708872473710220481740556066805073692875931744740127534847605020739765578416758785450903786106939985307574212564553366644573083591873271613016920221094665168887736875330796361024062223140391701675731510482862986077537441682441286650930308108698265336934930734707007408244474055182205891228985514908043385510874400233080402969728637577456055528004649483593310661908385594957734691211245671038405791833816757329263899414374375736020285924826466939400950568367417700451580668145734496430168923357275982306800350569557677664302331168922724830435329767744623471301788223031822556053572810426619533934474880501493271558189331698224631067594196118774727865795457992348156391271704970161704171699238817656492168021526044127787675834523137535437509941838267108140173606387352362725930111355739084527210386815421876594532137961404657372676877169828304908211440632987717324457268502383345997124203123541256952663606298113693362986167166196968467280733695240657994927895659405022395807495892564382663937642493384952461441533255532518487901039219675548482107278755301909232842490013140069210574030572243892687407002225139502551133187857011172941898389760696770947549602983304493641227834841210756783838108340991463059690436511977099702442559888345299805311310527657042260369355796587477223760327841075847727062118644678437266793880350705784934154833455491916214666059813861020765914879730972701170016981064501872583417540989447299489725451362569572828527739494077931029937462231356130044750172573330177498692620503827886133248903792119123702745861498401645866049905296440412543571386931518500840692329939206513137010871815925727100109582586626348896035788784653245179028418434898870676776859832362556463131678439357285625331023027253136348522245489259236504159966279366569188858304897298113323974580626675796170029581745224099511994010873759888567354949106634964938305332050208961792390910266153456297616514768405330617830526543338974272834518779782005609282698129032241422635652855895081147016912810258453144960427085470527431948502927074284457870222285218909593010347765520432777428907784310538677753132626332778116266447541356022406586315642568868941424678244363853067499776403293338498949521760375490391745612584150849062343506528975277282192682500610999684212827346662190749949947928898532004179107636260942510601372581954872842768010632800849294263557229749947228685992875223682499314262011297421963587696347660580794088098921302971341470319689326448005144356924031653566877162082734244357016660325707663444201038862035413082063041556267736697627260293272728172082692476833728390440841498761956759520101287429513979653529938645938055580635317986651495531082424873482246829680173537052362289139067309627796320604293210104127689468472542056407534637982245458010338196550917499839753388336808626682497219218274225693412645272968416980589454015070140095908511857650394163783820231009868244992298258733656694837799966515598253590636412071104473195364714748552345238772749117346312110700598006698018709358495066552227631077413252566311270934443173989001836461663598329294190985632757613047549675964979770827660939273900647908037125730823717643238319887912168032782809244630450033799391507948252022012875908550443088566524261169128656368585391989202086683735199136344359831457943609005577362131641001449907191621230283930692253353010194218233954322376056569394168806716580966590058027035410116867511174972530737423412595574631395656873084452664581459735137103744107179009291055761712543683938571376217350830544189276328748514291799081237630808711363736514330993030438296769963790256974286146165265738139377571325544865171198937779150388392998847412901397885994102883266720889403584705343447852564704381583673607589391873679474054833529368368685041472320594780333483422554352001266996810201594474846119056381807094753582343145879053223132525108865986055149385601990226295801230174826793915363161493410738849967346208718867293658421979362596585841162495670344529189384387018917461005119248257787539758285902185318168588540370844681699299165584596344407329459980476412248174410013279125375744644068909052353973858374472739113902404252179506731960955613518578199716907591960653421107714933480964708061489775563287162836769908108571398668554035852431765005950311682267690403833316852354185844041450142844821168824453842377604948316587961983864145803972017473396562917818591789062317388789748736269101477837039054260260883169844508173029698387206586664464509970196762245584939530042074178664662702752158438876222451529687219952676268047701178482062844950531851939541404941946040199424666537325424995413910166864329433642550746108357513821962683174174883485904069020395473584633921165617869327951435002051549952383676509216188197440919857725008144796259426912772102060194217970608517363367288640655448056933872445127500698802662261226669800198869208851810789173547929881022738511717298897245175477170406507579261033941664826605957784570182826505807306143843234363825460044844253019151739157924329206921539282684217068542131262455071153945431365292571662798317925848597139741246334666803458396712809061340600090644330040900376307735598408538257377731061851732654172971123425450642500987660573476389385295872169537983664115945962389666302472255856461049303690475941403069013939349664316358751972609215150893558843001956197595078326823601153687899283022378135633542553133921841406312089230491032871902453773367857573417953408732205624781172061588634061191089950713330967946704484295333941623717299838236651140982210498749102966069884428290338413247139390541159027369906409571516293195544615306624552960137947957523384556422196316354933810219993753775210968606135664339403803383054940720922306867584715084980575788658478188278004922917783723255274186887207548152062791684501831443893993555589490370362012838027003875582447793367299818818656561991895966294861810085980769807313398762358179267202173735067920220692482233945163514484448478130445539043201782939972350745492766484540200471429814451058514969056529669178577930912136615264371628416902200872049877792234993220931133392410878376139787111881895736599008190514226215850037947658064321250082637782210222953835139902765233327965537175341315873826984158538825041760211822970257719410431842875257857413004273240856072822722176801791072275475622632079394420061695379667899241075333461689064049719090222094601933816234472377261961284387803154442040604891009154808132591458261974614279594640333871356065235853718370407644862429532249512460253032689862477901746821353717413862870023538004852212540902758648395558100038564289205714132464776241336228982571851015490909837156748167066522302182034078285120733729766815712125770992916047344651514286241513740733683358137833470927884979286243689245618333917538945961644793875847705216285843181954015761893603012855727798626820455385998732716377914005717507070833868334076581790809555944316443248189341804782368548932111238402725841917423689497234260750558666161306383110798232914747225487341968042448896663259817156880642646856675682273522320923992090776808224350414280400193075912875015114154314815190230765031266865834652358985360549400089709693687010536472792412921333045439399069652420960468449007134448869246947894138085703022950161303749628898914083958352210089082818506165548192704807546543846854615182437978621888918580525716827833629097219120624977527034968879975765573437537490913090607834959235277333101790305683412095735748266936022115514066011646493476373096667086325209162594236633595535288924085368705699975040381757310016555657123977130071098826190376959960680534431722790206972096097205773568863137855700920908898777898579524213422332950545559383474941300297730360721247975536315035719612532118836673062083808929819392269567926926624171505574246580428045379765701758327261000871357179451076540103320762343543248993122251208299488981557263861862054199897258186318422148849563817557040444901519771238932265061383461115575169327619826006815825263153815803998416173690137594686890398426892599905015876941099689666029383436332563254143652914798167465150114495375182663219113935733518794301103164491224886870757614799114310518410452617407891437556615150986062315313854452275172265357741520233267601429128538293356366010597829417926879010715490145516790730399385803933714419777426189345271115067061730973841901938721101025422076936499616534793559844426243263986317243554389220298296460769276555343599979809519293028831563531771425800059037360530623428712686381106780308037471968512251802788437989820245358701017125338139144831437297354603020746742923642355870877675760774964802009697144920546960151438217603027527968603417228756842011039914359540957538043910803339420971032797623029052704124034268516709476247477108909893593540450043312061168677812996466560086840879312900991888836645246002920780414136417564809238404311599784506626136823943688091697280926059266835853876312669075774327662941251577090872044393337659163743406849541374803229849095154008401300136015450259435276563735983618667045532558119887333236153410225542861287085507603338114621339914288420819825355232070694156141362445858666677712419528078944308526325438592387514756435189504938625511574474350285957444176249007610595883488657921962522731484294981208536164035555579714836753392202926164858100883943356566623748806138820381681557770342316443689101086461034699640627405311760706111814609484031449392377740340400893160658365751687797309255400085320009652548369343724711941442680269216296981085592696973729837880606337539333683073945030402190915995493548515390314294401438141262855781029358178670746400934822160411192452035342237240257815025675744907759163892446589965100322911288565573192857940412583687542774354971451367236362446651573153460799476971468787720210339986197458863821943502664554986320176290761442472729931075251850850336256392679615081509161483077231964257889227944341877985245212206763211995384368156896376019312957743144035484804671763861144145006063893362661077852499042559904226163465498817625304424588315417586844646804803542762467168976882875243837910558146775309812690955145688704132612156517444190558783687867710603041827247332051657084721488909830737471367847575040541109257606943339405204282538609878668548155746472850150642438211512259588934732778265021122181870908906364802046922264569449243278450500195276911845232648876756566660608579203503810587338858809014983384577020741224792040179922197896054323538931452782740476084947680680107212095441010130533274287879631941755221443881778303811472005153128517718694899581832546645506156655767180325680927313316067316930967217953279930838294943729793177096716781661404236965280046882693741295697618143634380326493459521443721210763313832402344965908703211901063176449103244569142524519923969525372786477738625898074156854935135233088793013702194177040239390898203359360270641745622172591762901875627935210368467922319936430799167392760639961688515485302113375769648345280167079393614417925671733358679783343318468974835516958764117017848881950026820946964812133446685194446417196434965804743861362113084421698314188387188148182646195067373798981203834998329691131594913137814053180479024975468921853338752391655147555096273227127130051025234973788639254465461648704367131691242068876395771034506702338419696039952641773464897555754938831627994309830390988498213935438535421030175824970087693832692996317819228581282293881540764787229841342229884001328014794536541120765289180996448698230348088103946002320158327566238415327887096561491649249664879625304833473158998118777937863156885129573101451419762710497180479464057492293713193058994369067283977273047163601648190044087797781420087259645559916471047927306651230301250093638263998925808634797386431078603197024355241023192468338719363102577124758433194658474510953300848799988382170724972340093165700771880298222510755414484939299893793366837471403361050946457642167304465046127075888955158833909968233205670908111807846997810741167428278501385146929405537170556145368115907251934504753339588084783285987240029631744921532649580031232779759981511523698698736674965537779700003837730600567413160573844434207227551475684958550909639031610315810391387381475553059950785268020773228729172514457519773420465186439815968105107108732414100044012666058752400391319481198782812556968117942632388928034330798428931347769883823615668588326120678110738658722450477600915534095110971618784824968111237474412013384109737315904059536332825059541436086017811504088801555066816005837781949595255125648158556123074016075420420493913741624891044781071483492023549809893616739938496199553431730583467168412047516231944192910414077956949059495947209089473425327498038325797067296424799232344869695422514374015063903013083079523647038339810888381589970124195078516071058728209561890401833044170397680709871406166013794657028602183360923768140262937873053860396010626464806200343981809370636142591773282455472413018726476293023938797975144773000776569354962439109135544159894604313859873771436098433803756946397187277105637332954458279901210889837418263369133687168162414375633280142249731054522353687594117751947151686065263201860736015214955074197475661916733636502614042884220338504775247342932721876990945067074531612367631927814287041452208934655584463933512682564585711872793818647052498009774609632719740260968927911651851328254866000924506720999981648674924643324609456742756517355185049825291515279014470240886790424786523124459011778947695797305605172908323424660269132723577118582778802318928710507739029426622460855096060778632548918526725510956210434849712679785574681761132322933362291936928535022455529036587788644444961135351847861586853725241279653283939447400951990472354778065974754209231634556959509972217301570946536099908979625328713577267108055637981206707766884603092699144676928889656764847111866960355992489593566474770599611487255482880238323322510771701941784473174117690778016091755773358191881410772773844273908756558878456252143852743808283059655489451605712639336725585394539337133837802260786784259446674709649998658848760211123911942077964781129423652983928681396374753888983039474520615235506098240534399251739470022365621031002782313925199477820581540122161870928225436039614452556087790630516035683346515687497072481410915773629397873923316935476270284467225366475692873598510191523085984004116785414590766677478426922874124959890408595774887653090873277760870843694978650546540363018665877205045023454690684660464835338333716408072918518449562788783323277637185708575842050417844238895707052737750326236515642409728991333177608149104397940637493248791360869610428775357223335384914746505670842746437318896282366769766492004339730646459954219467218188991971579229733426899767758112378881895153663699640255360787467463058649906287181112174899182618911888494188947181750477662124402570917699354993762462024160307792454535165460625703317957441842730465571406470501097701750456884197765688634716081447012785835632334503477921744452086991799822244141465775951108283483680541535238625765403157253570155955578085983703371872515613293846408699965996117423307088181693754345122848970572215168835564313984633528616819459247152427157247409512150705656500215762606833760699945278792401788202180848762567120982700524904250954543028013129731450059395258611199192729171805437768204740897728167451665889349555318252222476916755708925146727014573424910168185952327399530208166150414501035767172663354174209213157618499910518750734200770292321114413999011008467389813248669301817847603260886836533513177443738714355342228636590105618384813875481018480166662092047362982294251441926795246889788278019487515425055111347088394019544426849162351971173500812639529744260711723874374073730875932352046180802592481028654068098189314754726899047873028660067746387178695299214023324550044623876130509897887883906973740347622794530834214631747904466566543323719250134708980220333065605086621666292487488890383868502321178807439215057285356466149329873492083024361669981521585886447112263492574276612109527719222460987126154924708196122039908118595770498174380592799146137044094287757506037392398885726745895225122785197604259585556463393878057811001026931485090801687871144186369674525184364165587192019783995136762073417904958295988379507259195157747053892369388351490703700671067028944780839249091091744509267562712795130672739319384714281400997441926852159859704677207974908050009002273324397858369506315815112266744806726013262958834204377277586709679570526978788870821192790268613383078623372236550925054038455121291211464641322481976939094486100410903338157200693765108583128876948446506378833303887363138103495219000477728710323571206814400690830897623797784186617533442785484132714398570607821914031336523002453680182906800326896669219679244408833264421731798342709451895395446165827918244669239963591321258278451100018021945715150834904361179691630112532315934950803991090923778793557640994996401543102205162981592057329054507103728864129764507744834696365206117810606329670022598069110795853041502888541401280193315680124084347449829624849678036533286823422102506445449239913785258518221260778304514230779259044608164388512698120109345739545658886429031851853687192702271213655155399860147009983810105515892243763748166747671832838833375848117699926258872592297838206835077859959957712960776560369748901127479331800066387100278549630220120216784913551841428725267090426362509463342531489138449332065738997081652533087664453590953679161400496275144297538026345252413311185544942559376742214815225919515224434349561584978942554194299016256182366839056102028862931490799730267811535748519961858723741686963210426657872561631306267464853400783343228500922463735869052894926279457510482872379352599059783562315523362917745919439094260805766480100814033163347850678511952728174195702082619940520305712763295387928859117834673027731423812305551875072985101857809244675054824006261449630182832708622161850006560169220706216881998939944195442783986669348173731322780933498567164336890198877667750382605732960574945238311631426740177087336216258078669768446036810535110531029736402973892756952996821903666840007248549897962566273163236881206794806203155555305360481089958573317457591190784358364108300743934127374166506863262769639308749444386177678911384582229357196513281362968465657905409103201743284446636438038844906386849917267517075722477485343345149541628233020898696462545029380566467869217952826938096339930696898519765000108752952947847686815179907130079239206671802031478573334944343767264033906088164066758430137811478904132855122672045990047523467726719319069779455878347660249291283840159614511150085387213898448138388201668029673272988509348731250568725190395174079665083781877213589876226597803164570430136750813401201422892135308760644478193930836411339428359120676428102402606999244925049960517042149087111385260171672345583469554363543538258213103273602356433375674609822564403042223672131626682567010902439028644342418675744512238911550043473490276354364804427975084254624316097088690755922906640686689801776589337365237638122233177030108126840855950928910413921851468033339370158586474223352411470701894793071867171418350147012252212215778722117758157711984282584771156038615563188732519778563401659499322384191280918486585075159136477674998987994539676020134644754458452946478677353983477868938192765491162539985759176807639252274308308194688082404931516446660397825978676024183923094277232503378861933535493971766004155657874556273634397763193849739432433750811418227979455674678181355630946801445578813267784102321259517516669897941136352910457225880475562211727935825705204034208610642279604409450996977286804306622836575911512346218685593641301200463876992973433700828565989378789492258395231801161807288088255380037601663089227551123574268468759293605817960982075100516314341280087657906255375892321958975650794314402742306474499742647170437488047197759062042733394761246962923244818383093972439788626432626147844043043662667819487069134077546529692307053804710389007419964569342063583623833585002905592469400690576149620915264977381975507757931346385371544016088400011802250076526184652824617415956966212174802326853060993044190871879250297254540905252173446407035640605961968990489653988188249492951528132904894990423273179817712020986824836549140844582158318355096352046000812595981402620999771073305596799343618978667380795942544766610826499665314365895944139846264054324862061693570153944453518643950478149534037629115361764152062470531215336571521364074040057505873259718960703614313964844405862663272560101383462398350792516194155963852418480842347285519930314975018194357926549530341530380346801115612286844830298531803095816586497550458702235581487317107937693596898431157563104250939008329032617779918273341250725077785036150663232824202860788677115730451999405355264659606714546315510246079654093415616660242595926500866913461439101805570466228829047222194264871873754591770555079263096187532966464091539186107150640200782131747791480677899109709380674960203875994256930665474218356293026217220742326151960355882266595545959151094381371320367304639460322486792994349346491505304567283336193466032429032055129602576594299624496513080382229451775165851954431962855850221674028924854982492477666218360738804949043531294711748105558150426250922060746672561383213335976524679980834071293335045803878681846767123364946105266668646851847732114882870344119766547360221432820978887411641235391359781817553458415932578494775723922576157802466679402561677845073991719633347180086435248968137357512896658056904055377497474560939172557708373525615747071857497702664858189076190680867830248046713518669491687920640413553415815006778169071806344305171796317978285147093514263105090975585091309933866587668350026107504986466966882068799050236027523343196305255519082516477401428837453918827622093268242536052637689165823096798608368504749305217315355672891040994531247372774527301636428794771511068016995359970485601332031648401547878200648637074164668011026248753503437838969562845034637962648364309996397461536475129271877812076174912139573929413205006248179788466334335861317476298123148604198024596950219454522058280054000264728902575018969790856461044472060897872283908564681957436339638530347916828323554430149238169447712708349380373089975269256525537273387795389000217161659688423388151079792469386969396098917396796529590713011851432364284974490538194211019078829518542939333900928935839314570798668342980516660436734717342342181631498346161937093902785893350879137902489591399199833281309838189474904138785039144454406847058428107441056748072670802398026428593737596790845789887806286281085785751408733920533369926038948902436957689205037319809514850249975979939171378399812678881533491782214382002292664725906815599002989426366214345133119917547676069328676814544055050127620039999739111202170751839170670841401205154558038731603249620109586240377698612264414392801042097002845730665138359410227459924604425864773215707441487650255687782918109769855061495971115994321924003912110060280120835216051239420338314128580471359921579741721533817847955797413346341580826138460450762077979542719569456228799517600111029412696925570945793380370348024100812729759234204556751724686158566591975193831681472955484681098140281185485739641153268464112700138545654709782291371797009723630252309348845140396199856783961045834210190657183429704578925279175904432466028747481234786564415704851038642931929696138527855370463513774164790793628621130226641215186359242462131336397247528582372501815534407150117009373435251748979810244305058365837163121295347334324636508131384249723961954344470869233765404232780351989202318947322107414946851533802072201637679976652480577221629557914633188978865553255559523870715115987919111155214883190269501118013058628118602210308148649934124960992324778333920234108245333392544093417970317057321133756469713519593973957163762878684005340378740069196583452754676122714830084280204509998673849400504688998957130532955817043498832654869670103397848574707207624960217928715564581053679369021465580888641506819482913830916381123182651410966429924668219902623602321933086731329365881533697217060337634510555653094686073803616658036013342272768667046126417721229354769751157401307033942365897154734604688403468879299910175898575360944056530091962962440061703275300672807660725759809301105231209715361927916501005130415705039193664439600552366176850205835045837769401572519573361171679028581916957849003332430811295689330345043829273377894566233251957187550229285638890536425174237845626004799657489635616516230120339350587622061766926051169700481327560733708731669879485949479385362132817121080966150072129281057629640327214440071855299711333656385467737402236834555845783026393189507968004846966214238217403425420892222198935150283323893323294219798228313614102864976418845311254560666546408507357356745568639219141510776363387623370936318081412390036316295606282136227097364102397663067178606474169437387910277753661417667844649486533625142286042491069502697560057886829865226877795880478929900197166898641376544274155551504258995564506009570293338280570928794806825182948546419472307500168539081179962620426298437877361937804154475441083127054721833668349499916607685672762492921172062028904606208504258347639522039454556411491779213692903725559675934165048136565418147760803957573973172576857361468122405042980252473090904862608439848152087069930835732084710054683792767096711685064204490884246030525265946903502682433879903040406088975546612102890484071368881766970186132187040241225377351360772450059292635659839827074869907412089617645679313290900337388153058646428507696670055555588319799084326315497512489191058193716271210615286695700251217780234605932919665238862012560582022773372827570506272405787744792119159445303862914262581201227126062366686141775059510574603734790830724316266784032949005742164335479726627769970375850774892941956814744243678935090142806618873323721368501116815805213374987575738335445416243062992268938960737604657373835762985267463510312444191883761001943323023137726272916129340036541295439170609166184575136677959027613063522034830990998345475516075536163909298079877123302706660586456671622521911092518627322170998523836925308667002393650226828053496594327447150227637231536790210724758267221456510518835286599727584004641061801594637217347509837015366607882084714535365721333342540334113951993489934024203100914482804972727204828062581657696860463517759798559793030965356473958734114817305906126354903597572491468021728335928678409705402539309042521940126575742257727320475671213041901275669139147860895964154352631552560600893166603981038115828963990144482066243513604539933856054227068889643289496252420974642301533833937886363435908952976027861378779206591943949138531236431446082743171412715452318532623461410500069404188174692409927900415849999253265993763568385630403203602137760317744757231173136215342032005025297894683961647080509821774038011618067574463649231326492848266259609968878546194262539120134402647816442623150240081509498869883107759114763066253667217653287911810324691378833007582851311027017761876792725863837677336484042573818479007117322953896634948062713505631095286967566928369767923519914132743094165562063134826725376224479411930561119629937406923006041582896409622408549716030576284052222683854574613022965006719192791334851434154031750410741561075466907677057423004482595880309607369402658257298612112825307091600766661654071381884079576550230454506760422421706024496135371477033141525842350560656072259428275887050408384448368566490896655915674599635051177682728361042426801201474810594242949777082705332039516394784189486474092321896154022911754682700267811000878222444773725408443658695255645542067834517614605671618203156101344806362514187226794227729682753300687978409350283171313341643430503010963489600510173193454441834001876093200575570742572473155100177516750036527105605386235006948366099022966516874334196614258120878162171145425001036766041514637466673992315131977885045291102708071902773906209862937388462072312977788444267394738567623195841801467775681432447445580211328438216992296816413223001395746706659061912393289368150988845957943568754867404415651693535840619159659839067564750214718018090873026269074935078292536834772956226052041353975056562668747149070705378238442755770686024040726712184689923422452085284671944271183995511112090781116775600759696745495828611006406711109985960380951965692509458783832425832574484670217141934011897051252608669948975522573857351951702580815936489107640468855466137107525499661252630504321845032828728420337115280720188269930351837509307296812893148907468057940290601336872863609486096172407009059879537364666400077153694149318767374661307045972131413873858321619462155935137758092179232471627806165131836259690678409575596942056664674831303101356876080051321908316579988273484268291108183086310627359030571883778472754490719973562700957330298748351352629665772558375496934724699529943146987541987174069443587553072133384911526899723916085201186700793808197482205462764492589375191083461342147064733064148980713616587632773115041450651478632346642607974685845092249516655317095381763021816349468727634539030070866557537061478977792881177598029712293139230786183539862979851778001504823711028792159910684145182767702170790378182750461545585755171833847322265077851270345184249198870158310774227357575409931758005079350969598413946668944393375975094703250527057223541808416087818509468027434845300122959408883796184897790318737403032487799569916259420547657193190717755239372870388641088035767244297054091167766716029757964893898441617018479075665787256922092327868350117130168816733799330455598928009285493432793125492905947919007278716671171642147618636410772528561803473827585381309245612124300931960432480688691978585811432197679109447121052246796328775848999946858476378897568162980630258698186207446463775833985505767276737504660127722069036686390564863875983267683068202244777106975723828168762430325400550142650385469388289029666487283005168893432263555427954004827668164679260569772814948481079308156777810312332012705831598981040336229751166924825444406650656476118366029120591905597341845515356432464359930762372824921159861156008277190262339759729990404556621495257521918447765891808336428227273206730755138938104261968241358354170525837466656397181675659197715800004101230241807422586465565469925880791606941868692055033439273117713529874182146422328326092856663056569751252942423170247989454134110465967375571506571144560083482154176095731540780968383076550633927727816497092745271662385673460101433201652420598372206803257067437527817811429377441494144359402142957280719703923530037435762427560593170361396469180227604502674945529962391569544872208070409012835049714162117517663243604332050393176787372293075409538452074062881193246077395062296427249468904001665367450375432870600287708599437330121906976317389521122423146627110581259145952521842633975304412714803568004141145309354182733289780018056581545632221096722140574179268006936338560015116447232948389077023372534891936195601778476077993054038435366793006075839649697180919647430505138647406600395595303453455376813150279460326862577543618140812614119333286484819173417724317992029967776581395504399928393482166506404654764046362033946379738234670601265220518224590146918256781219179026864976059241084893698973015892681963206596366120324434782962601887007668775279872152539430662373560910390756278069396367629215347532939628250161804010828017579927287905511369269285062592223182253639177683718634271604811842416355361867784394250305061177104857656049190548786759007825405054694037728789626958449905609219744551242543425882754468176583124685349584301403418622561798937267091420588212191818925308856322699909730784174541303478322928799088168912975841261164955187376081261417463550071591622307103198651692861744484647744369032536716138654005127380007812179201743728568735855232980936065992327669903362057099597302322259204368557234445396704718056355479218466142577366592475063245423859379527402144289552020486871701121072570334898954939153575158987328801124209092850473372005002041466447345420722926517724702446523381492452682379281411805266174776847510883938956509004246804674962274160232285833324105586898543894325534709207199680178440546287093452986893754565051517157178884909003443120344191655645123122644188175833054429937694434458677546903218569085334155637347435869403237194639467156926297850571731265165745325538355958250128221654770386426080319026405173704470743731782899955698364063762361045351679894084678908959944041190911418601450526331837215681073518894000825269106585067898645326792950170981041516138291039704703765229317349932037424059654202729123544907328633403322780458387934517106167206930396346043302729939639370288750872439205486262849412758305995418655322656135567093985964053671129658051467762627898553502058401342081214640043034846484754938395634447500865038357904922472538618942151476185525886104764223786381615086439281451945666912388644847722901086646852168982717198943401956492560475574412872664160672552321562124942211793614444719818111671866599082906976190742565273757081825921440085071004025317819653829115474886182833821768402020244887843939972170629694174737731294434340103035603209081149186123898770779552806947583083977146178508340641045763387573441170179714911517102006752412553941033555789761232226560487459925452659224865423195876071523932247138410108771924658452987553943839647951257144778841557483350399380793479599306969937297009281904015023015863197670886995362921938720545747924782884005701865213636301841457838950370784770133935935711250345408898213828304148164369321549019739097545860384752288606745835582239022415293831779173933897393515501094865206548540759694620753509956612693967835303936892977168380237628774871539846418813005379444408410687420516770538081991400887483753736285047410157229705294142252872400597361945418555366560215123793845759868885213681757636700611846753290063435331474985886990477921355733898523699377831221255048064287960276592666383410299724535263514558459203203942664952033882404797346078212345375479387850002081558091363871647576974611848848494367775960564042890223463678411187863055021960736649723814661882749465440138855138349388483664036471417562850572281720134514444783699170628142861207010370521654362891839209259729405897408240491158847765391608015979062185669521473076995251359881725514631445788468348309031260606831936440906590134639028158253980294362561888712873992380237524923653161696322193869806718633470242340975662440977980497021698931199406062616554174163547258807275404260107315412572539519366364737299856315103092332558831538734888644960322405421186915237962769068191686807327931091596420961110141235130504279313800256374636224002267364453943304785379096202833592975492492191284671288721816780814942025850175174152368485005228546449563702672166736764551087121820725915847435578641981839847563164804075669092292777176707003822656652170642765874866189845621954049975911865371050845381854241040750094669852501277237542676142302075339094161319712049500879886521585595957922199094981970295721968264023249928983001682825476247810764383257828742297245478306988323306893333985290067213659647337396769325088114805777397680010891752721244045062093675116410116516164287323499081818718215831786253196556981718959927305495214128673798206417126337357935294445374535048941246248411393786363419880477824698693618192733283062614444245373855937515183443200854295177687988369746313168064001655574658563491054379019666345846060294942512589457017567641093563765853382657360646040795368322883274025363416885258933282586055731070483473648131581278319625062104276003691174331906513874838247263683568842334084827988408400684581009512614805902360388893747401485919141699970334735806417455783164698032591612687657376219945362926346766272373966430777321064188582180610577127324574804734783943360937165895600366446618322893006985713797608496617918830424079838183790293259345795709293516776554317502515866787925041727915955668559222075470744032207530143574309345417969605364933486984401738146534625547687473872004771368813555533787997750036740019288664921700017774667370760910469086502346262481925633997513787296942002642795708316479284551555712984494358706960391063225197007406308426123867632579942667554120346262016766616248184086643077162638756846405363866311189819318717373163887317360253494642729544656240625705348221404584314807018005851023255741691239717817212788253242885443906122536084763241077134267952373655709855066507675708580848482124904743780476068992429778221085235717994117255941956989238313011469128918722082649340496745015847471199014608422047035795155694039908568346778573099183639989351185162392076736353698473990133006278198553095508427738148114138196652052701487223493099322683442071451702268944151159133878966530062213611554693973489900903133388954829410708493394882543340983687117487060797659831748513506986934381473019412159585867934754212144114733487689252405116361747024307440981131119374693580316389241589087725263600520109356973953702169525864587722255280264885848280340852677124751956749613188000556581693791193695982044215853765682628980115517556350875087461283656669497049009108711003470191217332518264799377650874737892268491573772056638357959041397963952838249336657079883427861206368383812502911550678310071895950035401498202642375933730749469212585766584362723136265535515511497447208440963968835226555476378436295008016475385450274330497475941324346028668467026318106507788552049870849254195993022820229239370905526739932951565100882642957630652681158516197219146828994853543339516821459311382168970154025491378140987553062580128945324617986450269133311037032774392467071207080221573782414747767694645142156478342633055971150230422566498978464886605401922441228047633924716117379836713562294077626401939670277476848359937349361348482163139555990422513544799964924087329342356116465381220898306625185356483412877986134030282252441997477084218666345455744845597832342520883160591960549246943230407680288026286727749598624584825363844089718637807463140953637728579245857984164259767830222047441785463533339376208606148732266376857998791105363763329527484130868745125333450067704419368826014248962292890043032524955458244471594066838353679845906548710634615393830006954415823143700718891790119654096364552710007093818028686515694927238723784458327075863491471648090769634714932101378209480409306844161834260452869667877559922095549020966533208835692871165789144579637154105899192675571721336488552868501945398862712426182278646678211030918095699299803587126064387582612903007117946186421690003058064737080209070231632231326528715914860978896960131216416684399508833523593302080085944876291911805741451086546562130192764601984392947916637162984607823075333371723916514405547229185458276816985580480737911132732787657288749850179326704506048577626764619821523692442366799473352773305094510022073678156559677788974819484670911907114749734024860296595460431898918839548558237886657188963167268357555124018024314392220697338983885535452507362780150344132665670240430212320683168599911767009636383266086236669644825043376366439270852298167336545244311612957198659408921138139235047122775506367151646599544113148831073066088218653678438981510272564502547787361429666900898773239480021986272594339222801203571943217510870997348411450979392286029813854236982590953027164441895738504285308374584244939371461112747539497367105959068731482582533806830950978017353418325232196060982132683385399077365862363271745125693750662158976007177335101447816977697966959007994376905731589604671840860734786339155568099128560686615626717875382867806031490004180955990626658216665741315792969655880356726105706399521649663754658041979328872969807256722341487852209058827366957657429739269593664625080012849516784823784581939947861581314359984853696826596858674663472630470852851851099093100946939981415260636632036882551723540243943269941275375456296244156327731487595005450537478579472399553813719566557484659437233557037767908422882717325515451363855733482489925205005444248224613267643165007385341106946740465428796608032217491101982638049166619703847136228187871707693049423900514852767573461453157231650093175844805451610586068741661691398594000082410472918391054859654417744445472531810007721908552555250615551783404026896595215440032043123411465129837094706133108840354014246857246815591325787703770186030905795750968911334184253646280953658739620986654995980891674169051988072799799615781695537445392105865090669869836793581998939377022951365137048065321629881577359286808309385441608834112596169972003693837453307053494779571492320041513416848618795154318349704698931101251926219184287248568619325258089110708546622363993611366843121724759844425338274436284010753354346828070886432298063340211323544205116652657387696676954539854975210584088563371121089932683198411881594005811688989981150472479612583078378693332759627416018224510292880623414008462677682670398271606935296182587101737458045920849913376575601348128955645159303407903581641247799299414599240636733132013600411733127896277173911724058968590826433266324649374879228032226611087988293497788499096398629999514628469864447182088897914476013533660747524431697707075668263544986470579432929214211452819530104893184646305137040381564852779261693939766887763911307814190719296186812937897352493207955438860322177645644926174157933585202876479288363732675979693094285563295254714178746080000865644639116600987494170120632270711955760774293541580459609379561896417246365447522304734120823908656084906593860811835733587061427342081241139253449617400543251021703750597034063720364369503126359284453402561613399002271655250703342753473868948370036790023948287153719906822733295704528921253882477361729751703667233707035884756049452296162112388090733949164075627710433775109536142663885624904183246977638864327777613770960302637881706390931478148317741405180008878380704037521746140330883611219395708488033972964713788338867025549820897487713023987202560496375115657737190966896355704358464505505542122748941998132842174775666144190264137525148012028639412454150221257281156677137396386226264681128157095779448381682715576926753522592362026278862855421221384984334178612892695584541348199289503595830636354987147448151011381590002836084577337678775662396851005045845580043042770002405067450627929290271245452819447424072015368381403939901685895511014719020652692958386416388168581395574073239506367420745928249534647691312445860934333683844385766743893813511053213652278932727445655496993509224722758016061587142824181436317849979654802138231786787367218452086816979805847813325472176352801257129469952318415242259146971271883356850311313305115034977072677970684446839481808743124734696115111574716544308480084122147065792071579098102672091392594583321530925516723160693065736194084892507313169047481290523893829049385496358668245476987524740116761714505456370397717570396743820690983990230697069586986351665207831867834561610968481537238571061201816442582960375722394017387665615558717625672970834631424156179783734989487621151933581241775275398266131347437912575861491178610819356634431260360720085747101613795992237149073786084087151227216495859384126086099514398428961301312635589989345038335622921901364137753132016219728417307859030303317630879843569904083818853137208380510982633699906135617490877232017642715874869406043810615807437142767587235433682305552381639002971784048802906973510022068689956475276435575792602992882276539344804101490571101696934805394687298467904322231952016179673631543168967257216004677675199843842497160182552411057456127207910455240613859626469347620802844539506377084072473617010837564690173050699395073271945582180332267511884433278726802433436567257582042182663871635645745237333153215044084196374381736553337124755532038429700583405274812829270090775157030412232772433512022525605570475363605334625169664726633224985584540052102113645479657206135635029689748842916772888351678130384411235077782530814041370870879933610814871123934527781029868783152320946138971965279599159099813164303353081790815452060613534950863855030247289029551585558496087598778830360991385501041250389070965824481445234465643822191797650201877200688605922721009493858356782199125916403853676512567409939710909618969824488941750229632055610640798999631926427391273366519408366711720198498061161055241583077572012437937596022194155571302406462457291197791208957302288398872778849142272298577625588564357261064637257540745428666778166667364803903514374360083280775566908455243979745488233102557361542296600276497428493413366424012153735351651451465332479577640808119850801860436856163011971494362085407804922525334314370623030784389070895193721976143829959512095659270220402740209726061913020627553874991340437882693495831186649691219318673162613074517486389954540329880241622958888788623759566920747149542946135307532008921521859864973101167039316991253765559855400476034446253638717344831509683203896229954473592833954166842758485141660378490114114201936195241398890595565858302207238652874866043324858064370818755321274603180502092774003153688090422603078170385292294741884724493072632669806646010839870582387154821193074356902897521641509791252833165516397500735040259608902757840432444199237403512051372379349894720581926998665169444499907932633226683823117629704789599273006658199785963600863283501682094626720556408626830517646079980434718755123549132206484418898551348647210431472279771985639791183714603623268838152118496540106695797999975572877183453004335573856272764075236095691415758050279085216945279860460341938533736748332404329462225716898806093746126407131121652698232497488975961215076949033893912399241300632595770131407589717145413077673907350355975984951896806562682439398535280494923851743826757962681854865541630365082920831592991719601489220849338255042490820136691830928045336468394751684044603423645474485121965472953633677945241846361245194524702027901300781784692445552826256449661963706032653464188894199853573262338854196910496506844777779275238241952873590999772480527562999685909305173545956219060340082200601422207866092384907076151884529922544494386841960389161694094747478091893360451410926097633614928908689809162019294933923373666780880071151642497178655332086503541188765067503016601581532655990891701842758842556211507088004690354907465435007433745647067833314197325094148822083215040492650093911084206062893926000399472634103031523164211346309709502908543152753028670825060337322855751568402685205721954049480443000106361477812117849403496192997443278890572396046262051452756737991215629131997713241900054110605826089134485966946643644100858464270103630228956552427328759709099446319257607218677949541388798350513890509321070636478284762428232850327735159858553291781396664518458437552650436704160719963693515923982512825483361244373191424628055560123525691449717294455752597212422872094304125251289838347122636705657914518961104120077613302964319189166001267403333251119315097182278587330432521339808655377339316296350486747292156527568385898088540529990210263902848588366154073837376946782823236168210829526578923535596722752850195023924215768649945269453417284913282735766026857697651220970658204543491078217888474181113979653396227056628356586189213478273559476097196142135423807473809268246323570707645759479316313118793233343091888492052408670248066063043447175629116644028236858511812188021579843973555680006058559579548454919967076670510876146387497934458830002664811909491302738923266587353100517663944586808571440655706558244680203175071776911238312674173835344168248135506925073973022168650288504206436822893687917244233346604158282457180085812661452386744593558022376528932038041135434019451229462557634921155081610302948388090503430205882289494671326342769069289906078929656747959899452010834744478995418119678128566936622508296453670338499364941463831095972671451237182014824885944289906928936919987139461796076546187483289678412987880832816575612139076070276648391670553871536646958286326575004014548416347649226923056453385643602963451472689402428341562729270678068081566915456075927310805356459822835127843646510124406826410839798028222308970436225454298416337270203729512618165146737096838683102361604415500293262498258661527174811340131632745049313031501476310266519762721760542032363180036980842985891693960864225474936384500593881470429204151946735399095241082631713312131572896750273753724384464198924862288506703856428072532190635727021048851315115402019228142106940027511600575792226493808589298652204942364249956967111934186161721497346000054069879166613441406054862328279893128437748827572144547479728836744433139655918657637049884851649016576877501905012908217582782495636472959603077878233542580025205680753324104842064032648995428315438342495100355869130015421469308862896792781606832217963874300914547938889493277218116155323994971339739099795507627713126584095262282721206457210176635595469288536190648232974853625868968493403721608659895507608000452229532075747347231145969311214333469867249694553449637243432153140587200035237414951494908941762699598991883071343330874696674976629617063212008931569764807412051629084192639472162062431523278748457386701176644058492528456545693498159709389457941760599939383304563527737588961244376708110487397147373299305745705656365575315774164175108356114784541713476180270159082830199845511635053841741798598717783968282700129340087264836274726459393331399028372910059377565417372028292896264340205554010822963904351614447435703146868609632836225168746832912062915377384663012236779981320677082332545532566019404652490524053117896277906778005774146265563496267358965994819064823945390792998734341626334359115182961269064647850056313154721759061988526356916051868593820121626698037585215836176938899297724999432012931527253705284674306467861186535045947624596923746638222155364620999210008535737679623669110915252843005134275037077977810488149743525969525881031838790143007234162652163837114182561227258978118914307322093953925052005795621636656104975350059694529890840322225520757316654766533770576304856968192884636620034612109959061912790742632192026017558905612326772783485976828050687334738503682003482935928336714058348599435215816789436534328495163608746145785622426185506528030782651176127743939394359003231607168421860820722908475311712380355512444962019269781223634020217192008154421732786077860816838856761043231443669084442950599881252507761959534372561141014163031780626770189918769053863101932149781825481610462964947851356348184515311685146549975502640931775551534613276838515770038530946757443396379419622022054755638340430009718019703122688170032418565352548887138903575508850833850758112286528075922263640750611422319468691024014111801828654970779858631230750994737629594255537216311502929551816817900429860507129990832592557621825040532722193583323753719004328618964838332535902801317217618258015239487863119597068608785210620841141467368553334089862493246172805679026988796052682392013750440216649055866484083841979722252974967707640286786714743363662740771121586878215436864709922877685054744290973528073249511400929030980738297110644738638889560655663982060128507305495425574732918059891391068195111239589123956217440321138673402594610291416949258540700307672584822096780454567156331615556613239043059516112047379390347484966251916766431943329315622511387239661552360703575095693333653764362334902804795837357531014053711717435772301298057910848582568387675133362437736121380619120390010579908639094251753903561105182558047174951993577779861756988143985606205356219369520202237064022796249133364770374750860040622781932173914867945555160414880143306954913844790637245544444460107966882051023320375100403050584274878767993237975280554948520125352127467954537703337471839094424422765843346215665006461191511496947263179321495197360360859295600353821922868408070289770528717259658896873210200023374404353672261936021486809878037111499416825910114232820664040943231569528801554133137015078741321526504214214768105216819530059849253587818197686513755545044424102955841156159165718335636293102385841879451201399467534873170109027581303141284502530247071328228344833294211749384617484809845714758669540374905209703804807439561721776358979553714409522142564396545154534197293436186918015690265232208303508135121641167327272805147151713579550912656245585542246515035890188595361008221237995118480475418550379209808118004272165190793766502599627067395576450897104601858315715836925924384409553855339258537084495212410974250187197752094282845268808816331206953645556680835274460749309841100124930279212239634044239859845915494938210892463502493020608646800079663201626907197033113761922729558716078000173413562498512119428672465569255980208252199041733465056675368378010183933743128814228337657080914898710929125619940456723597800359338052701926727949484970364539339850026790501068826711329606910602497310217458780312648489206936249441564179636555309988492997183226541700330646937291040100735072632760667650254616977318348786291266263069317433105134804634713488490290970950934540710655719094454074891108311331930903634919525259130428895754304492471515312482028388278904033170034253641293618473769278619271342017182701355506972685595057112233011276210314027207680459683553642605302113083280678360925404919866669991894587219295896657467570407027296290811796084044103238958758527214549040449950500213708816776735579994482541696594281661081474444725210092444861953610029228232143094570693645006778019472172531044156930473442789761670113650204105217333941641565740664129957717045723403981503459583003515092558707929737329609324758708319342317379784648708406875504181663706085880207121958875663900738913892757529025793377555120738045494955788910564936283567444909960791981691821526307682627197111921334281272310947125832711884377536177004056175937388135990897281618484475475361866263565650045761460247181208016290174971693291192879849079582086029278803622735255459002866605193661778151208540075786646091284161602448993199939315799711650001414226768462551272155916075617021895205581413034858891517231854504665860935741715366402684097406971830800349029270112529161481906198087726203312326025412496980425042314801423621521384579414178572262583574550867964608801458546622962597629895054104338509123654439157820358607725455219233573413451283995360573640084501961647535617205180299559957288563873130065146472500404291691445593833485218856749400023252895255880458371562014110145287321683455392276816144535242132377141495219168795948101877743920558881190138923341687566823770642741199795299596148739043361113198080733706080943491412389530450578589466710735977087207166345898254775775901739870110438800415057231456099136367634432946874387597394436031704777577010055615284706469266251270367778411424928315504167562820278665478817588226404146218294634557301870479669424530661185044930118308298144143946065040409163625833658927369212205129697345973563687825566897528577157522090720810372491493013367422634314615852510295565330179068190259600394770278939208961161882416216723719906347283849468122070058294581854371901883203839200385852668822943034566882171430404630428221614127003160238129484866290863520279577760488680010128941660501650953456132095796977568584721843381638506240680456255715104452893126865288329181880450805088774291806070134730989054750011498102902752703486029052831688929060650413518785762652690045872462457176245867598609658376424391937083977900029447298537132258359998695283334742075763479571411258967772497381278550944932895609280293584284611644596511310715269354896586893402672211409215231450853655406955020775501197691513573084756680532154814427192678604752927727071636506048512772930875377860380073749932860322912840936734930156648817813590449349159713416057151112131348890300115624278192061583638090974407039438188056132351880976520732671922207393245386849073456161568241573408083095877963232833438349516263533905911835619489455028833827552257807075583470791914533874614315682744693229604976131098253050831286698879732353972723998953611607763513510120108594753651926338928919544890925578167951048814822927960898425443754742321584635852717568701873590337768225427911570690304702403225943730011023813205422093450750449077736797123372098483966206266262895332321029923447954160643101675362064039350533184994012742196026431484948023577551559652814591470592864743582997677110709880131822048282804804215693917669988452472004695673047081668332761067065424533557702231197332182432772058926545541734570145563198764750245827834354995551932235002128588964374007279012636496159043618139464062029091914788338784069874732939891493040151155288302130109504293715806653249234636833903445281438488795172652050149478538026453320280632391554790532321488448919810566437462937667308046187084691862832240759620885983115857212891555579213864968989554241485846382959145997078470800251454305739296137721897498694982999499665410284809194774535532279797660796342630317589694638307510087713577124787790316915508824824211427756110177935669852549290864873631339122947889348874700372697591477022386082805865196415536266786409358961067619673467208292481841666637904187737989919062729247330114256079103107016106349759515467294499351074872086213957631624994285750966931583711615172608307407843956337001116314034877420595446341674377442561865543034636721048121486867784325676944678862204921303014822132531939010355363433730324624864532915774275674187542973051018906119897153053061163721794490316524002937681497686441635348654709315234168488200984684815093652876687526174422820409412605384592213990259198016127794811623944793336846199913769587267840152098746467995257881748251656503218594862480235020645541270036376735421386573619772364326069305174016565326126454066268779409177659925515292041613346578339915251393578114801663956910969018647285124366948815890601163428070204942677694133222028947793751091589081177168140208162860889043860539408096864622422411645223407924899182842611374212939874340279886108004322282932448825120475028479185918478273633043425837116265780327411086963445940448900626279231534387022216740260692042425512396644150194124532506889379151401230734112574080260869991892694891544515512879502633538488462943832204881763944347645828762706853908718298794049006441086042807801884843340686806277224003096947305871010413731761480710957429503057914798684152676072206899182299097062653356311883565722193341202465336827359391104593227369656828221417974748224812650708584210788066560071813503660834916636484322113504431818128926540743362122812057885294389363182316262232505074180800598228749570727362151747833646656168430895586175627606390095704116918512537118154906694552570651666037449145839261330921960028616613105880250459812125524593575119316864613834100236193593151142578789717605239233718098022469932885355990287225559785492009457997998684799403112301869413492086652587220854953569637463362822784772410189954506362191947085925858553363904619708129396293086304770738562745061402358574822246741991796729893570353376704988571981194715804446679061054967023927248111171305372752255374656607272759941779914219004740571802644741831821132554253688264925616562980544535562893478074263521009857303198711094862417965826929434533832999474350535579581724169503772847377368786439170756115803879393489033056443550207959836600030617785129711193087497897417989527704223760072891872779801038188363998382718949760714006766589505653666945857405822694545518643355860996021115375382957506840671179941008528360341373958931115146735492144115836919893520903353291540107128987675217355469476827069901437607363224438745629934944836918872000246662105401443093070959783489022383191335184149108586989530521432145783586022306620505018867389312040774464368238736727031283471254322091635384624930136034735161269771938407289833221289594913598149074096824439644967141717821654591253172717305778693177901224593539337071465032135246316725916164590709890263725538338757027812649251213554152232473180226200686809561736542815073218869413503160153595176711100599925803426753679868731921187328186376634718984517000276284011610916208718231690234813934521663644498575459806208800374072422631533329504259118674297644200638490841768317100307819582903421465932947800515728791059692734137930932775180805734025970853724423021580448945581092618623666553101955883804506886346288129408722308364737003287381428618451331923910660966409217227776972867309753848855108787310411680655136394394923125885682089717473452641087814550513315261760129998868721856487303610214618177283197321100842335496762223412171388754178040531481371091703761819576835108557178318480389672153345939336174673307397830096488734037865536441452017905498655833406150626600200980914308109660373556585243896739407956983062973188258599656451422624235312841233087952989691624393039399285276059147927677281726706027133407417608187566275235000456110278338814909597592289654494392155895868539195219641525315121954587574481497206076377051746472332049919810228782317270216563488119174868768222269740304478586133317885766498457718502748284502316337132153947463901764799359596872993802111757202959800265283311413444652743789166533621068476586495459278111547205767474152863279450708497058812349084863452357509409377524659827029216979567739862892189835842510121278845570734765874162086237611479506721215889938663507041935891670787665358919879883973956652401133274020306515452910356369623548353199428411572885537915688082384671138289313613697767376160273198784369218703468922394925114171481456482629174243063016181654457544979049084866539176691474901061884589203736116158457199712831830368721034814392989305149384892297690368934141651914312318715097683352354278498675812003633756642032932321037964565826639570949116409616917136435438765737694586182932978592372132003437118391870248366534608820658409623337232670266149410783642169661587685901014572507768045023437089398640351914778801231021802150730966597346242726609499610797160121718428545653095016461719465796375864326966078619640658509677743307574574406608551737559807419825039085205170100037345044163730963977778759757852895741739213814167508988404080170488951071812996088825820736666852332799964347115701999102077385246593968695776533246897970477911464766242015597708332713465287910638671728649568861592978604005964636397608013520082604134874194610282634346009617043236150257363841387494710696838110661232611965859192373968577935111164462722814277487792278331407056340001069505247841760554349987814395755045997834390935156539113103742472499296525010319307817181586328929487819398917673520266058193209388557940643954461714764757029943286249949774866418920850189853292849564837235979239321324071581673054275441302896775749052752753749142134050059288743770809149220951605213351308783367209216856109231685291607200721845962308408261739531341458602419121013161108792502346795487729884937591513590126365858582783972679245191689579514830646874677698102579193130226394823882323847424176642683630131788677179472274975029473878113623783358737782615186964675740499385399936493674557937446440858004709050587676631830753444014758026820683198890765579108308629779349312559017825907848027031973375414187683607065564666556656118519406444699593305825355680499918575255992677603592897441337430480284359695675678448814556948623447181778654681916689356458108472721382810897388283896370525185287347773424113036054906230192566045067800628529892555910783896244767077777053690855554307051852137698377246162719238457399328831278892764213222060581084635481356364666234053052477313023213604353457143551060882068068590264211705237628883118494884004817441050467222870590545703689209267574864737074614121026717123086496326172314460003146354514712114968369775400617699491616223424865355452866941121586767437969010265887936200881382995186979550474088756514824226447246840277595183199549273136099603841593690101640096181651301778417061329413363680991002233920614441443143275283659172933657656866150900999959852444786738570033428341849244369846396542570725346490716358681882549364077736123765423042256196320987868670899876778110792284436274198011841221879136434032141846728612668944629303467398770707261456056862489386994211155888924695865426074302910280736011070097692038783160138671243020149308048399936761072517902171114528896081585082398222422059616472318309528064640180648401170934432708002225958939694972932729083197262197691070687289099149177008817026983286293469524767546588462473805339145105042856459541093090599298899557894105671136076720490403792274674635535132586073774857072189629493820439359898197092122563983431962583655672451955671384430293493115942660863149354970009106449801591959687457163074139428331374627548263359808345683538468469469619007828052826064502564842592875608427549555520839871808099307868050492656854464914804882172826873587779019404276884646901536037882311572046533276317020005113090549344759316892751379845467219468221217988952596401456648534614788703692250877138827579759593174476152764293805184674526305830525910151823628000236287034396308043468543305451359263825056304980029890569643146404338967532506649496004495793562458813150497830366017056915734948530500204659434697946843204866312625608912276352140660106413686609392647832693198538635725865646753778993579846875627457859063583923954822253273312755471809543371423441231113988652486954516266139834701320333447573413712527057450569263435936922303819315811013764076953875861779943811165236255796062019351237350212153005990734912049863136518277652913494715458057554063678466100632570924450512892217241434966740695331517395384110898776019461914480655671502060804079411727490479021520527486055020598190437022887066689197385419712388860543514180698557361999217149836759646009487934011367995392135147556051414099262445460567121948910178537904013621527673432993464509108163308681577635197641615349451472782944928063297065005848902506671327035653027918453334246080898743749855724335902352948227958367536378501501170284696871790844476032130087985091560403377204660030938602128197664757360620556383544296736856966988575125128225564567562671480981185271977532946408941008934670267002774310465163985237516493618312994862528782565170904841412038550085967313444116604357838502759799525808069027941509983143534582116338943255763346398868855064544783311478832950703641634185934087763112260543694486507925825947871006799370945817800865728128417984530212115446860238978834207137059265718650099227457986027211779133604098398745137621163049003900358233016600050955832304997211243449851772658114399844599910337385448790101471933634851543290348733677138636312740339802447944193840170134850278449629371463394118593543950569127354499744307902024584749108590699252093352497842567176587934435182294581667134285806295804195452203804277004917315266305075024235918281687214510120096764620013150236241431221729519326422176532858533230064298072283063006780611902972523734370792663002232895477279834686993959067214615287534403836583775841049922401930250215484257141680244184217509837419646123354070712049223130385105933552786783932431180433621805331630885477357031930563161212217998840495937182803701593456340098826528550653908525113584741357724061611828938867552275688979700731260121671127128964311833865016802825885236102908041147961169071437337225569229010069846046636440848120144457504559170746989548436108581302094501484338053037272754814580398234730479683379097188942387089135843528542766933053495089526914805283805906267273626236424585626991883427788052517448774502322252022196244432252406649312687951503029419424946090249410204961882512238079824197194025244674015685244456617924224754815498260653845427748013984046029326166098703582187773044102859178729269156661341653178238187424560677791841818135193013382596057121706691084634453633452973458671739844243582499662233613789788024536110330802799181344730552677698178041669798764111721218654255371931910266721525425452092849460285198884428566546555939538575083505878430895478648880022168158231505186937284986890465482449023809146146954296376030516365632900808902945857990406373268937264633109409433581181636500327061975124934859845416673359453861184684261343767245868370084098309367988964981152139309425982654200948985788780655332075830777019401778677316656679077570069795711652363593549850958561150043175256011709158045181897476466368530184512389117081171455134484444993308995195857330556459904328786948602615327611460053124227073837288324929543744878094187037201115572686201838044555760536074678226925959555064783970215172267171546775905922175672741929961637696608041554341964113165373785709022913421927428966949128348733345467772782883908930703975640323567193678742465143530239044514855380799185879541081253452281709098402984038837941375825095308620759515808606552408934521350264132256036115018890692541893549679207018256831085039288221109296323581961001438668567112371444970782802331078652976246967690372910805479114552504348720386864465241773460347423513550276750235407636561509535199091105502215106000735294745095699088611509443931197592492313219683570365491634374091442773757550054735630958587098518954311969033548072843843369987027013928574661493294955564443347264361121917705463771173141849628001923004675443514383413981985944039521543397264811851469906809777791502074594317462992857472526723635427053470425601030171428575151016240336626697515059474578613685050702625095857227222615994198282232587104332551377949240288341751878053418170626879665534346414115714534381869429223637841984678744503193806696015327269990963782276074484854479897328351942040281384021907491757922213102060643852001252068310904615501916146442646153521751881147441560839923401898415587615328781810002421878016313480430506534319689676659189275936461164794049195481494651141971157495728501205424101088070054133228965034770459690706581089801538397498100447551619513129792191205847620932517887324056882574460300530154175006925819371469833675987058781130193880617231567877379637695052169451703900164554644591078432563403608628434910443453208675875943522060907873309795261767243221336851477821827967657422531523094203950352680531950709371271026866229987798305678906254773465623543642908001632528802778943474763344749912911457523305002555161238521679720374206045793060097153659415314408787324484219512392404156915391272608387467772126935315208589117769330052883589205788806490332523628887575366499364840191950501161078161697099038585806064487220784573155924514233036517590426944191491770188010187859953277959044955224155581187118447898122700562663059900511287491841705736270418859434616673443043322261794275794574135096985802700390308709879312940853789536201358445448028128643337285482631813752040519119654518796252070412659615449445042765776940507749370381156555981841768443636694187884488626838660184759822481703410953354276085438775383016884297471792468847878253080647836585128647035920638444417427600176039384577610619719492024163928265808724446345281097188011797445420983779326273610769426703103120105590214230430946412036539787815295264900901679204054656244145476587058014263723895450995331863981673607045577434559120333795440650931343290778738125015068801770681008603954734568975417235407358711951532996529127640258747345458801701856338088705734820990312776869995342877245257599578986054798735603386899844631280507119512674741246035686510036846387712333305099589929396827020044736078081250415671399833202436266908008979324996152498325866828528688429464552042245874816356528634310566160359926663630066210421519687706427562556842218586083313225616993306562154462028823753223400282898952220531818242817973064448953384312696254082824742642434869863906492678671232160669761222848570932751175253552538953062147084256568065870109632951943394493771231544199719870587386989298489535393295610314772317807470427426816554765720968287524080287369443843300818026819265312904616024836305035644089168197146821094425797651109158803026445183550884471889629378432765013427497993888932706014904807805202192586181306371248761101044256589332073810398530395771894786085839596661628934524783935834751868014783425805695114496673421439356823686449963198203559889579159458319990359357756236455454552707678083467833101766058035791247480303013885971539076030629755636618028279510401026641592269015954927760072099338517699376997822005229733704864563895830410429795464583580236826180806027330240794288289958811262751101362143596263399703000164022566264115700954771659353728609431432488962815904798649419736634902680050681234108720588436558533411763902447611209284408520223005915822194748812009188127088335130042027921593060848052056941063278108435816281597910152126314241204655943032204170114362548084452141223331221623850908232874806793685271086060006197780520184505578871814022658649209834727962926268071299422118165110239957198775300860356456907839367878322459342398720386325408559404874926686105372845133498178016675823293044967308221279963277034537348303738206077766098727585590348638235072878913327341525990018799913539332869507166118921675799037476065024021070092065700926553673775235321944441957849361406449573217754495751567683219374231465144377355894275349648960632402880434631790152295055780241402395809326512277838599288338362630098889656495617402987294537681870891656488613151781740112120661256434272337897761081901662470687619941741501070202015467000048011223671524719058560550382767697385796711713200448050699735814328454048239085208643388304909802318040313532681768894837395311523630309477707580808139877350965342550418674969689283058124941110976879605180741715169105625778430037509212203364017050194285865500094713110711478429351794895293197125515223483864800314927805258004406912094178314829173205851300037454347796210798623391359454175891790972532012054207174367946529020703242188771400466146953524588347692519801709528708706795153600178325839233176402378666972257364251455048044126821577244384999148132122922840370677913671093001184806777763161893925553393531613264952514211563338543722544042242771541475163310760737616081787383269303135025814359435021873586426284287873920493439573834646585806363587431834231140590177033110640371126112070232635688087929376691615282352677955160765204612596217712138383087413216523346155382724699711910605717432842193204708676557514343297191076721068979943407338712617197032127782658190580698222744405065114899451361632061711612678810989885190074864534924875182759205832293640215875696746727871631772998452072674002068709533441866308543841856498734852492487307392807988298672291253184563304279452369293579284720444554920357953173365719270315447532364513479132706217270232385245650475079978900822106651976075116090263436665475774844917246497722497034682483956466270733883282588881321920101267117255417053751160362827832115429973477643252175106241634354850069909597444607487964080031892667660880071076904934209473988691020121249177576135454797961529422344586829454329977322154315873936467142394431852568216619854559316431961212293127363647016669124816935795900196556311543131259305355506015689946492602090683833444687843640365104040913259950440737474225078598324670718843404781831595217664010232614586569445443386258307676686060074830025773664963215146914295698634960912093594869996126623925425638751937531137244670591025645049237889084653787195755368229586123823998733028729484786124528625299033675281095550527962432004899523108779098810002013762457656314092509371859052090903720348536132297293015869245949839438066993107285983580648088889129074061577208476577611266608512824424268953902739667951957821047019222566879108840058402715580514582312902477095997902425462789646721504845506784888134270653515071177742971138770930125161439926286744528517136279767744662580452461929215018618686554574034452125000058222180828116405664836028766213982984114105116907045919756908414346384420246019529158361500871466370403423656882563286176708477195970823592716541448644180582837415091470044133483110356306472698658505466229668373664645217398939603033939517433112252614210545047040580076832358380165699084410771009320021973894301771631346775214048904555269016317100598196793631956576425403123076192946407063421265577244547004070065142418046655463271564001588936894267549227258447053280911877576537968735193445680926511904441972905422173799063299416391312844277764307441175320039656606154978266683403117794514481893957344950167466933369332559359464396362776993744719786875441425251868487598178600187346687272682522748923432099579501166567266284202340168369869506078618940527103845035385211948603034595813586930330202617921899996016064370979496832618962018995561357170305821762346836006159205164663865613087071010236925244214921561916736291334465301291336893401099404909865801654131720636647389728120291482707060962028192317852197437629526731486518512908049013239975910114241046585941122547726206930334141404321284550333201777560598878414353927366136801767125347996385899647862209892532140060823550369491539366626734438805585128575929579287670266696674903291924176059243862134913532773311764703579472707507103219347696896083405438394059582818698476103995243772633450958575205690631744402555448840731336967603794629951429375247621419988674298446329999646777805875594912281961964417070772711255157626720745240134081434274333309313262577129224787086954630767932984288597511385883876754889956229707467690045286522742770891884275469641671194431438579484491630814231375214232764469710233533065246289394269275307319982632424178389311392862082322071856142140150198838583331810218450636449203031429959259660209673163139835587448662293994827398229327380813533872164627282406104474516968437455264388101169230865165067003077971155484160620180528995814047087175668774132270029827390228742515864743409558962932630795096880349113413923382739033161979944816774719463246671411852653742544071414539967412975260409027503908881789132991546624430437860112319545933424248987301217282176382084590979917433106616928927269913655185989036463037969979090988007916591860682815161294537034070496081922381115519462107836508756081301813847872311600488407164797664039456137303267639737394525905441520543432218417650605248194930033794649360020688564716387634240875366825850392915867938373604091633112394942691625952016372088543787612297283134399216869810270729246134775554943269411741096767426593101852309531340604610094461681548600990327017923881266093307747978913027997011528753377170406146124156715535636334870626020858084561706438838409351970056677677849162778685594010456832211531815412325945432226600866872748963535461464338827638711338364613262623940269506789851365990034144912454078783448423806064523965923206404238196652087919837054774768570974741099471646419217139396328569485531408233354889605861393280412526460888348521995483202094859887681284253900884507831723777459975703673470115231929128355876178843208109388917190152864304726683717691604267762991338532829960077023631380244304550614035291638665652361743198966654934250830790151240004318131040847838362946594613549782905422166379764394030136797485281625918802554225768141837324337918147675336039747518874682316754034611308723874178572202119592161843365036481598690391140763266741756391649682970047396143505922228214760319583617627101985855699314266687896657722518516304726554542074101581957672381248112391058410534819060777641890079963294919451579395733714707438207665127633603290699161504457566495688061300639622918823268979669062284915968845711581390140816404915394761481872454090298575026931176062480886089501780099867926013441714818097017836874815594560721850829466131183626526041565867835690107982666294663130157570094758642680219850556600577343013192378650562601599201774536431902675841980803578737342901939945861573092874849696882516757132011597180788295913336122560364831229363832220271381699846197563122822028208861392924810621859495819122554325729166220732918547479290176747670195868178548800094589830758372628006410570321107323294135105223357836806322866202533017722355386440716674231297538225512758651830974309180361574162251514295610893291038983482028921845265839036265162139268258010893804429059012692741339523378648970915680869248934231182524726345259045288159186352701428176230904792379286302132683723427099161196750731582056881262215955724516509299155779954570731646163646445701405267701680044017919474038563324080023163577379890268250220902575281926276947180774304118812403637115898119356201983790498460050121351198369176770521243124021520182426563596779110216147313136976190063422766401024113518203294238725725223959220973259239927335652519035308178164033064508372930365414783688236655667691760859535397698851343255808465634698431150393168004843431042828530571964352326944028263242891220090466323083418846233589552578735657449761009714446384080172431664256293230638677642623527368452582921690421320035624801158720823126708357454725422458793127591152181486699188123729932144892439319098122846909201816352091157605216690545178746582263131903300428471964667947800866121892306532543401122299222270890377393723133441712996023070835457847208401306765339690287357330697176724739448941399249873109252231908668272258432563373869761988376758764523267742902701428013913542945915863833371719367583614995896883285640067966613442929220922089132618354292763152587535868029447558253924620518296558908647223325418380430202506051604676489861106878821466447422396329199322570677238827192070775154771613657177208683019183589754704621980611956347843152503774567463325407120726866104988194461871924777765452465939799788705030902977558223953833764775235690317596367705421224329942215348260551743426105125174103952902101711371858819938003735814147161127342935992633410023141007014136488172240641078285077559393507010648526396585361517237643275050808817867866307298993367116984902013248683521232669440224876411495086461406793346380352477156219232992812605745459830865512061322608082202821760671680448630701507076498830941491214458900225750640760056935368868545341311675751836596438596788153942236693426628305562893043827245284997158404829542222708187512844693886539387966648258648874521941885066887425480757770997562973595562130957098340537024492584931613896925148795409905384096215173822431099159824596401112747679755040394882178513609546557444557830129826902935909264843503233203850520862623501136070205244833572781916040160680866240240828111025255535737775798860288342432235008508135348284232531609771361622539719544006729485872016629323447918725384350195403883881509844253381703754409709780277880834948470375472711325793722038669939749412487660315655447974771874676424211228404550008546793807813997346903561505671866093884819512701515043170006020500516307552802992709252609685624992680078643519339531513678597575762894066163452939913972300608424813277440898436882862520273441474714190088858711656297821748496650131047150238733202469430187358186604400268250328896989410820136967307543511776186171528143123342084921409791381367295863255412579417826927385721359244115470347406328182879342370223042218857056311972901358906009788017244454715448893972472264275799687560580386162703910995187013990483599299590757618869313853616176920226436239045416837887038791949561833216019614055369185713495685562618934727301019054495812932875059483026088627095476270609505288226835389572690385654752521244286444292033153161620347154989553074457480057147135398351191738873512803071341072818459660873328359670232263141840158726360530914262891801428316721249320377538728134239077333414962590977215977816537841586102961122125538570711077718627613513702920505461382135837086972192393375835527429146078881322710140329886144474434454566293683159273330019085452184711882999414883307491127374983129711706622870725587719291324754814616672124349187871436913718378344743493851466078437007909457924737718008140629148074367452495360770003294439661839016803055011546393549199046494645280280455342139913636035274863216587999062205821302264172678400417985312598032562458639242526392529436672730424246247261543327617481546903434708280430162002719186870898355054930004529895037620544109215850173639120232555701971653398209678578416429145174866459930122939682370870091965624866094642726055914938517229275498923863781129779037129358853915213546199169285730972312674337434266030040817668533108521345256091036476529577147871893884224895298425299447555303822746937468977655595533100705307418767371136618995493687516868488438893365972724543236978583118046492311999378835929458080839348961193808828334279124526404669060280237898594081097672018998480087597451285673073274925535723627412758941937046284695462161419365325821199872783914058244971938368707010125101261410668808192083800603812498535869080144494312221634662866938127904076364399033513123765146355027903662996305472956133731077430064701002898078045603698827631825614078565403767067074503924199004228382861079461068785891309660550816418197813474317001829876035874232139778469424747775877598614581586342537735287732853335745097135650839330572554926247329434774287005968182748376736882386098303021751041671827372783974993302438667619594925242782637496559400094399348280264859204631414497273816958924590737261265315145059953331949594939381974961219736186039008920098125717749870873808372477234413569634907272541928075674297852760782267399017711162760771266385146912007491368018527748570056322698501451401279222499925937052855636503673614516639449864796734611845862062404214997362381578158137716521044782874183920220603100962652860169793141966243616336663491853792335581096007817508561959577840466790010861489497914635701065883544471164973447585724844849414796987568113265320592135182801540994651540387538418313739100979315277075038963513756828650916844429486284814679876128284164971694703540743082577753494912568359287930299354965202917578136041966228599148357216554367873988846777818434292307763032220222063418190770069642816525971565695072253078751592821447231638542578200725745021016059390654750357382316257956245347998871544395869557297999350582231957070874472934131388145757114941625959767067606365592546281453974522688456057451820626671867241913352135511414872879790839781743766145740025027971679775990393806401517391884629493842533632452178414727133805857096547200144347316038341425333138791469681500862266499389947445813647607393613737882654583631109581770791202648235525586677487923033153297942319095207177205510291139450726784430793492825211596948915410626267558931849541912963492425524795505371118306157552582237660640945977897304178800968093811702611283548268176940316719765966057332518605628238527303134176446619746352590523946857678300825297618206149410410053441255223409712694055501685612997411121708523787316077031941799395095011441661731869705208379988162963913022677685115968539521978430601411528467602967986509763006141449453234724155001322856075668340285080709480019809655289265681786586289085333984552941977809078362218424140218849239746857309083674933772098757471795713728994575399364337855678364615521155572500796170124110352626457829986571098453932892735549988875333671806620177231208245529755441223370429485622549708771831950902967084708447388108409843299195152660102939808593187325329372619404637391276751288952283125428406144590492275967407688762493497817039395445704689754543843959549587155301971524248930491490488295554700811092787527182237141623136930568823821446325313226136931311838629098294238066680420112680345575700388378405950307139126394309439086022640599599294726742935128286758219634424776746173880658036231151522230947513009783993557958377132243866494768022366480021385427270341937347711177947573497581166804054036507284137632541701921888308032646266731370698605982846692478050495075028139291689109592907336525623164822905275745638102020808023425037598182369768039023887778583407422599671489659781952318935531197485780567081842884608970916121134594040047625042525122413013122344993902730941453898629413152310579849973971236792788274494231645393720137726639587090188034261600233765899356289977213757541127279213520904602312086951534313333204259698981527818850877254168520834648220642877471794776402312347591947893781919914484699648120019858067933698717470945292566806862053365210890951561654987909803185759719792945085335032423367566433711781412238634390522015994063087373493097120412057894420753005936501627167651520999340338018090209118476276730981247875754527726304213425730495613131971628494127733088350509321189904055667846185602871650393839826611620047070673577306121483003470954994053578663830115934083923181112315509835475702158267859650312736135063887884662195690909413023022115109161373008454174314068326040506847455512740521323277759155923649616770832631381728591739126430709732468112265104626964054600623611409525218139430024896600416662698516098940413824284119565105772006990794760380939473656108280929664266623025408933637023660299083422598348690371963821537637937495983129136875680067348948320692672237557693501199612883235386099138174488531465423729783217906428262199802951971676108679952614813476206067795036066383202221037817817009288167051272965595236120382287147955497226842608835496946439194535782324719158605411044832784512723001344001419854845558632333779360256313181708440397995092765709671125157993038116672408877547266195193939089387573249256679894084185095155899254084081879937723374978286477524756266892847225009515101929980958325202290226846556363484464654226257502866613017307380270476384805453194306347617128838665952968388918669678105599732270346716665674132156217543152983103243544509052726457726755215014568018220618954543851000396532650476928250781695985918519220025572814926039037654811457292683840091184395168241810012199363827401776167463998786917090740277168269043496804318940125155857144509338679419626273183508509119802132322119939677204250700745380517729500800378904459756514625879253033591903143439789763887045314300629580940304237300938961327742895646425563169384724755619592805555773511523927193243916554053195415002475215157195693480046020388314073476688961949114059891035480854293650261712196733643304693573808017297330888603599055948346584985290849166980589595729709543846369102574744323889368699140238812693028575532121613647992771453757599891638108783053013979960550575988648265774421160345728207294915289887097638370926309516097421623729909172186394056656056220434841241173623033975661670538470013834466695900707537937594793267603277879760496679824717334950990800890673789154077240168558620729864897627036443420564154011370686305785568361139641562371882190789853410515032641347746486106317449800204681550179787373034283560465810720643911973380810780809102544908843634218153498419373145251565235990309928768538955826568146909995168755498384932374009845305834753474668878720514374599817836230636158065920758766367198816373210244348287297053245637257423469919304820196602060901753352621659198249455335536414678284656898975199062032986338719979738646287704111617096593202451919085548071914021590920111789353785212209725032987877990323931217296577457735824156602936514286174560944991922099081600662041479978802953382127779594170747829694388350232151494905424585340813892856241294949162883352665417641211469569059220696004469173312243742708445985675494289781176937360186774787525675730067764363567296323682068735603258993673893914329742794514499811837603670333307833122996267456284316378824275099249932542799456625599283946395753602630293087209427452421973517554749491656185476006252556418111992318716832124317899407175334836466243431823690839597341850117100114691860452938622230855829042393506950974413123051695006371851604987329621740101386915055844324795323987783676770627080078893637957607204679222403183269572528716178881769750506942763773279540582288928665596054194835169706333177261809224529988987898346545584766053504688626104219945032751822735957127456420344634170716004021065637493466354313478078724157435647495873104988760686219503997156310152046317162511028315898088894937407514364332445643732290464128680942363398088800631680725604946257095095685097402146543199774651672140280132707309375163149546284280481841372326548676107835570505495845475585396733975410627851667300939848541226087065759047747608297729504307398861471231755146179514378917874615755272344502804528278025874354217355991791770895908098185104549006128728219687230407338283803249884667560074465438769142732678096956241088459979123577537405214123446899729477358521686535475740117741880482537416339073817377744466639915746721962685436606803925373424702171355992274426887036064801417084812316878079432555547417775899106936499251118879139685705109114435815032129596525068575673682242076702090282115157542827577785293543433365475948872252481238475233645139283146642164840631804643947853359092099550551227115125222611912426937334325460496951921677270046612537327186281426001958348446798647577888944847874009285465937879513336948285545517541977719611931518385489070207553398831203116411570389674968657134152306121819732206434465409526848371054216019917047053889034626941853765046908587036847756478624103262513937159039347011057638115228692023848332610262925333392682909706024184931008514025700574302813843005624747704975553371631277264308450493056125341924625037578865100998501022243537919369849693341061057968072705497050397899806267955925477094262487547006265403483625033478386692534205604725259370643041392391329840645876462624418838015035211981921703656689757535176340879025306203573884248138929922274819520653367683701004212838505745402742787852500456826970800201455924167732344935584637065107778934111307396310584641706606131571383712216226892219350702277306425814253939119458414839402412624034601262518570930910938442374488390012405173849350964901267709958090523288000486318085690530565453653628410224549869297282513989519635833783677543135991786472756448693998676632281173185411532511671957682774034961847949917210464574091876008417903078616749401503176574748405880736751958172059162416298848789133383236065788465816220014612664657793642343436484545305042085671109721989161656705047105341264689470226583426308718685383531813176792030326108218788333402820830332144295131571407269874177968916035140377689618793267626962297855215384585242816880721007860187971030606307359608536850730873835121749760556217205351378352684651178608958348544874491787272770083752560017157884415797140630937233230807011164917792977732753236839141796035322598735797082674508072868249483852548804736597433158783517914025694990504135627569123265249819545502324793070675680120830782524777140116520456020994782473208137503025999833985452767380545400128010832347583661337776774145720959233987198704309102083932274223081235195923085863346939440862648667470261501838234091738106683288907386309191286463856143027538756759418389914233027699733350426351807872890098943643361795117586543325297280190140431332602632609400987211251828723080400393086569322675738680786338597480138530141007025434798863413069482096795857573202316707738842631093542291751554913074743904268082428790269640943732733667590482015515019287580816391982694554103150484860462899820374193651895414982120283970722112059075537676118963963810082599076934517820403984949845264560112546543405040862846563176944200352374314752636434017924434333382507723682905696433626464758371727110565326985743727734149675125229091214334499356807319283095857264477172100372097558501746674465815195106440302748401157605914620435046309904039802453221176917290288301972362613238240715579961634714458912908921704282963295670059720615025105781890783250263624589808481865635795690852538579177690658334348293103419771378898872146768308029991880203655074406766811366752880021924123477047289135189806270221623111708870181769302192010209384747403274366899837501077762882863334110786006256865928467808944535347243020170082093365009608281355407748814564916233920227462775172726787976508520634219051635488179524434599413538436979835942900683383223662055008870769041425490365077786867633461233269365989146713547666387519969700619052044770105049418776450363697384860835005129146145844279296751145563279545080296698172784529565141115179575372766678292435837533989350408163783097924367001726571518162788190366142699149808619683361899047547249395291891064248998129006426058856028815441547682630157124448709520686524232551745200563996271703544683350786315104530223288166422961479291089524489049700044088485026233900718550579485699517961702198088448938816172987202287700035188680163428719188552829827166144742549264257204465174853904543014117747528605298750875344183101486101310959258482029633197382577113879309139780768533877945661008719447485027141468291541461211356612553575873402119361475635496360919438981139493143987643743617738125170141050227433965577947456574914259694943860821469618156921860535647201394939580729727940511251214008221695224886493248154861049628397088382662697753993428914097443001316471239337503622033622801917047692985910247538938593856022335900397657302192423386231322387672673175720354477625903307251034271366784400140241409899337432068860228683269489418848772183238539087476783262494296693525134267301739079997762589905899146225825216489248995101486184461034208183406948937455258543030891574362057777136504037341535425171233280277264453792016169778882113755912168453000420558523548211124774727043287289504958875829376842304863687513577917211159783580622821669547116727462209815077559039562748896772896118084182909006344056182477829284235748282383447340140670690745386429678739071865058553772019167101991071300023649177362516056167916485579208220381598743965776917261950579626229190818039924483863336117461442064964069035200691694674396450971662447105492930527698676684674273446431744880491222483687780316291018748667927969257021269794929065375190272392998989452700705733953134226281954392519624716825393370314451001159716996406941402636529540954736870250663127445933176609300344649039043033320313796037190408513558287057684061758773035683277329185500022852876125039723802084298849030258258511441826919456440944773197578091445742326866648452349817715139665220690664905115615644150100328072322631538006928769559497926450257154270155321183203594936674865536243868267549659793236036787661692889209802110144600177217698648690698686983153636342745896055711154706504250485741050123775142359087237675489766348400206932421869360115333178358241687960772096192950172599815962282239735767729068395336083806750031709384254763701717997697103818382143655089344958909664663555964793882333117516739658320323771573852751406150527901108548483520206298809270844709076735248333191992703669938118563995695232158981043906336707265099356866043908314467887773904300061786524998697355029579152898799822190117580686927396482577032832577029846455916677413276037643022380746901939385717111938377109117722451331051239212742224189706715543666963557976465499256184890213571108572933849530024022188271778133502011637193733115486400733237259904181904741501667119525329162669356544469842481783173381415102667126878545871603767674884818275680595629038949326443850325673930530756577756496629666106373491904183945830866391570733967787348208405465601257098820282086806813540396268856599336916853257818791544732100673834160837382186902515752429004269889481744912010289671433972128078792801195256253712071640858938556775585977755044526898623756512158739502893772008224383142878243831252414124101314878716402961118831184030974254107169273085875648045974427208369188137175797324361714952803417775487740569084930167085952328622976552189573674728046168435240609328058830139140616981126563025135268792830522669027937412535670520801131739780572641828296802377328351672906607105824811151076983533883880892825525592548086368503981770350032480023872454456343446917757513162743338269493434120782870112273201359537320806809729458394972683141090583528133671463995183628428990866168307253752941669505940311124912391306436478134802757812365575102696603426290888307072785463368095218697576826867550680316870769088041984781986295462434472430584162013997693920132019061015884113021965101482174238789843771700961139732965695242201001577389696789823628660913352885383723303420649073942280324609736981454717290485744770044697748201807947261088657859050339198322906957778314886703797323942534528125768914463362965383989266324598596242121241713733621778147517118443406647479176606528001863905185615123256233696380007631377672562995913006285386516435508598152046770993106012046204840837140031537216318566275562181249392410649062549898286316213688823891738369032465795814853055992876740606124373755799483092317256226259843781124075154427653079256824010641723340181308012297987524214239875265147858724864640378307259716738244783325324068763666152079898048805413605262068008258686227158873436469351342393424817234572524151744418263202640674901497111691418130762478227366419895429614426294764391878122721348611796641143905919119066509004978143298970747072571833723624609786236983731668703173795304174685408283067031450063790367524980290073982867630599264167763531027130155181501732789489134662501006689381728134307019070040648540982948006632852127630546177851267018696313859592005400631367876302349072093136764280248182411464491151881853709934762528682665222455361196008313474250162662268117705944425915059783446635562087744168721644497754905128126357939467300288272533580067744730230656983019546935550901476054136448938759112555158951854355015370557043001090972315180318905679246424653897293077550778417537427485578614891759220489054484212220541459953494834963641862448373304601742949114300434399992012462925353263025516076322151169016335307898667864766306358618526611880061587371765636494777278273274192718217284754830374450561011924387872823210956368078966356830703683204237057636368427298845354102606862333092494978720503242548976937285583694443126019479937127725940813018164643314868061775665423949034896918035149868903022693221556012885715195739372186589149515114893164046976504366106354027429005835287506387296191705071601261415416070827145929803258774858694863116513726337849191208589991070528204299247928109448491111197106297270863724175175699345283566225919319956313842912674090597601329751650360775703955885526752659050543162596930210941517708403809102663189416863223229385892038805346493884611576537355269147915390820670436708649927025518807821121935925334923167031636905171836550949738384672052977819438617036313705596820380532572832298061318890860218969069417473595233032597081188151047951062775487750816866495081524146682847687585475250000443352915604123293436760238930789819702872729901241365703993481529537759946827162801745298657966214632000562216686671583516692627937067082826681401933331703219580865382606068835955092935673145225873897143552653994040252390260072865500778204801722408712687296682624425840895903363429970310718168276299531717805739294681572790404847718453472590509264466163494929397216837240786051235065567347714071414356109341173343783412180577370412489569412993731764587815471851240663098565775947771602462036932138992222924755045342845318548647820324350915272272110990600598594491973696354883003290966450493361469480023163053059687168499490068796459148868291410044605592920569940177321962456239708626045126160125826329295320339831461932255108214649589868990603485279655470148188887604044897632013327451400228833260459741866275916106594441718641759668426251793782543489032195281780411324095311140819428888767592985284012236967678647691776494850344530623581271612801118903420610425291589391697591988406443680352827985846673908598933052134222228313322615339129374853928760963369527180550677884677648732132516085170011608253901996329091792550936963708266431214958705155094008133526714834200098047755492316918111728824821012442562272914607158586227496690862719059555206432760088764370066623116817904268703545021403727445620910662518253309957976798473488897272863358282891161835995721178169315784057145224209808436046455713712371053210468476632890698716333259682027397320004588003946753682130433154048475254218589944172821987663788349611272173349699949812572194404785314459927063958655929719558718856247044972588761243320378786898106277989891030395169320164770938009334997560088727767945581883549363271512930532660431030055479154588941693258996333516620568597146592915008077389482544130456221531337195106581268588994609245777859729351307729464699143397328521432929124482263069094644936771423208010717521313180277813565906206984062305311171580232707641400250602985381363093791445381699835974656287303504732556621298722210224971226346815504466951420914016556341567887001859347411414680321681131198397096865072576337843767572289646444164413453740790937316863866790247121833370499597317830145411535007714953477781618341724841112749627084407557356460559523062723027712723594094671345540098979214065608750087499216185428135818470592352504703598814448677802624690756076969473474266018479122565013278236270531733333890082211291299647959037764087751470255666038377106301280532185892232753845789761820411518410823378985423973190948612671841817737266488408585664221935892907629433036674931191774209028757947342321721608879106190809225170290828640627375214005298152177136516410411710057799172349238196143287775938987389305199877764823097823532771963944860657619501687306042700810628237971629195489217449404785008443663776486311314327167607901228192012448323486699528765680991526453945043231856638245420027625362817797273360943653414207957428317626896867564224252209376363198832617332086947287868236121460818787763162510969708725674322659163043805630931268622091292549396955123944926847282139661535983487900342111696898158465661713271322207247434739358751877161289696011860435124166278584779951173096936901408852662653229539841664014265885951681541795626653372479825829435706278439287759276224732813454315922975348730945511623284635385804173553275637606618513778851365488723789307707039515484252659632679349668621150910837968909772647212295585001167589975308448479312925743018114448190456620055912533225685765769520173278291822707931326233077517369157966655909992335997152229491728598874543150029569191183181749270218168111404190485841082217248801084012213265528442864058837661752891002453874807583170642362422362226516947952967261966125462704248948419008997721677470850333272709983842153176087527343309468371490173050992325928808891150070625349944133585054817229924082257901953608427027298983910993845311778979119263152052486377250898120525612217224023671324695405455687045684442707656143362287615970942608387864825674512356121437522082918521854034282701255684283969999995975474705937886172814326123379977327800411917042584242320755538505663964659527486587270793683155719671560535147767169976001745939763128384574666424378942169302781661776445479724961194641896925799990781200491806762683963810358748014682017998051501795934446252777420262906003263126460031199642602534051598191330832320155004628119474718296918982246283787259426623176155090107421863212731662526826887206240139117361609029067387942491075249911081028554601356274610379780211660476546938257695359932247932051969584817041377628453941110896849180009402587152755661349377385788497523930001951070681401534007331027931458941554317590236761585870542992587740943609726804479106667823142137007615843695541453465417511691213684278276351632452943348347648176348934467179436831061575010460709837624461826510632753972111087872037083203720443749422128100164666786518560814908324974657624512062180262135940293336833498712665106824800714903290545723301803416273822649215146667876160058375443487213170919602341736808691560354549428730434936414232636395139338942052443521435710791458414677594039050773378334996365371473327918826398987691128683467765349853079519784618834654070478482543644494709600658825640593399246963768378318524150476489812578848853975760042451680700622515333822607175381411667487106818916365417131845999217558948408746549010921359135123188011528458069778517717757074175619462107771392653857200079125997615591663495936043128151679118181886690421934275701317748361503547309058796778464544244764420361781025040199017998166997262160286692867396503647307325511140839923279587424163449423171648194291381693373245257544547956122639064943326223669993151284844743288102338603249489939285167486731892075997161162461886715371766167833960334053826232471956232405949359935669314217363525295705233862206482331424991361346768128795555130279160099713332260771027178420588685461370543021922255065166382003047542158206999794063334724061943935707032150318962257885248621820515026885104306272176047680749806890431351832653526488995606307271588150137693844347673730748185761033257467723445713913912350158775087921138875581958454126809223431779946034955553665481004888078428065418629119866186707446937249577052174448443666108469942114306321161070326327716330891660388264877932492271904485394780317715679051600532502670108158913716578473095644854026839785314623057059244412046589917514731422224030807292546507773225036821721127611398783914676503455724388983146834626570667519687823356334858518487034656652006414944449046573281748142389651746249654878890374030306290796736345390187810643399894185552986652064417306100285797325567796212838561331202287094930305833559601862136797002369361795094329564158324797872120313964226518309802203017096680847217285939373725748500437411170618542631549985738524480411926213541343605614185595648350278495763550954629248186572773298680918397513864755720852155997627059715701912672976566816896754539725015973448916422319737419429619397004529708731765399149176106205648691220908910518390046444105155636251509015563156388326460908479395113360434544887798488304006729518902812656874484250942086394652240137853281879796650813715992291429961062864312448254806562571782240725335587441625862088838819121488840957885040376685279257984204200542677145428588427754358960537772295088315014612236975996374340849915010908913789826753013165304192608212427204625031017007590559719130584479098405001951091780101126281776734772466472620633455026026373727226683247919247221852656285138767582097305140656203526000890529295125673734627021762996295209084589937856298078419191941448272795899173321879737180313312734266181121140673201895501132896256129853744600713240334674354060176741431746802027521919081536043381623123425385411539928925752942776497682880491719285205805135849296858405536513953407796362596233256885168972726698697017059000379336342121641620072993251080637163313726043807840343660862889687291806227187812628645536001904036258429984714161697080432347842546411658847131094655407718331603888421722699480494617266328474292140906678373792048826506478296430901056309909444846550861433597952295312787659449031275995251626036285059282475248836684218341745226733839575035845785942249594617182564949397094704384732030864773056176512558043576285612563861372764244040813746381848502353956675251768729198790334838577170130399990304838799107511969691644530139341808196017030645104208798715424610576005118162098119119831238095416917955249028775032955338566225400609910320984549612280244485796723814830562168709568180139285385854782103630943522980912067438374186305534019856834622020420185900890027518501761278260700704430353508583108352661357509013893597913048520107493223177477050680040051902259975510311246808604809062281961283278163835339214008778084574401516211514093312925004325567257247314001898113214576924265025861672633745648496867904303214727614832913664127085953428228287100105809144775584835269450329734812368029882371880002062872438846349170541392489713709527047705708223398735974184038123202385299071827989417093718620033012274737528042601200393053554104619345602537172169151288982898740712314920001490815851406979577206119791133545970371244874227444966272282072590572904599699556623573936048586592023260441275176891165577503349840333134084538725745342317555382427276896648573408618194140755488444809169864994725358932988833341573876678348280845943105071890255382430462386073412856686405171026717700562245461181636695818651149313290486056098923210905369039850198798451064637622379304876640698034621158666260313004602162672041713511902567561289176360699362560620538081919817064661676880616082701498615442269492751570716707779107891770108832258529937694432347500179222504040251241841182382579851283351316392652865704817367733584295168490989044683943776938273111878441645929024638864360172438709291112287300624115388509930741857490471390101882155021949936655220869408601602005694119215796303003539331257683947544460447906723808207652806106403823578831377544364009210542257499746319718128592896628403447711698122955374868752356055383498066781687772840281914145762674548735326891714804145047252097151739692453800910659355601637189020776896788063817352763836592883434418143686858426191199064653344885845802581133019435933600705568552172139549894821031195795379089257557163283583978327155837507415877281247115356257231812794648520724040423949765143318101516091180913272296145049926748339954587411017466129290433311884478957531169690717051710787600234395163480229953546445395533930046175100041210701238547898945356415394280062718635084869061325284909970499595141491323951756011114897156199791254955197580733378955507547404785875464700624930435593508559750972194819233399631388585445225988866572474144379128376655163485307912398391383319166926716573008578922301864930621998652770503673265529116232974988754411652956844210657552126898947193156990850722979912474099025340400862415346631813314384605410975877225587267932738122307588101059622248952640345724721551558479065400398548771095585511609816417881696323811087988536913507262740571203134313997858760200111838515736794493577706180569047352083783145251004932999622297801968748335335548106586065240479332994838335240099944471920795916507020465414793420107490229175970057340730271100922644058366674207804276427383437874666553443296282444100972201917925542343722421712978014025308765429414416892756527407362815997210402556854110173150414328970260107901901419958478786994352722414494676119126270658660387770838936199728890172372061016047707921454110094647862322979927126734852373638670660930716339811497610262650986409330795668009881292237029641344844484316660517526211178797739625016122827935753813472017175478619664333172496762525161842414037185041228138249158443724115970616182040001960121832422134322245980325935786978906460220642309393772307427755227440231273756002613795091398243709760471356999797349412022449944968921555018905986191363298983834395511778204295149956232274724171385055382719894297770839404845390445297150526490952605802604309520603556758257335914720054621307369683862062505493265352620495937390367199538086115460833843718382906040493120518155418122230558050306910282595421110954708384861702030360185116994932400918511371009658823585855130456635785841039721382394430782175570901512355174307104877042099488598276067627416595771268993350111890717413046761564956143551257564573259714529552831373290353037599013534159936259628309150884474501727583007619054202177460707440430772672788459541796338090240743935676083940321773278629318601108126662677937025764899508045968604458075775509245481364862519770594691865569647444294048788274041581665459487487036942650018160167142407005572559302022749526932994677845441900278710602850418056325078212168299557944682617260085321948586208458733810236753542937533994839695195937973161569435767209187557539008746691804580607937727042432537093622537796806242805782230154331674763132362779508597526636366922689494653259717168901431774090274025055103747287155679480108690792464336888945037303017187715440610722176740079760104035633697767907272010049871002527381195879977163033822956363103147246533426157018562599554488175926407923710099187414863852976179527946445911703006913673853520133433935829806725125506981639338138566752827491319012170411486897231439873823837128882257650802220346482152632493470284061293122446678648101124931548150933639834629054254423254503355820661172169603429506486641644999401615245696087676656167263108159086793544669554975859088788243065682917778797718588430513627182785158667305437689151093348248634552387595691319865663800086873725262326574629655867190202630332083072054564343989859552875708210435967214280676972961170101009057742232011204589271081548840438457208925359649762058405661265127153075611756129845438493306563776208860748856288411756191235557809179054285655502273175752939723818572114897968639220685239567836350428920258211045256485438942961982329201215771301641451597071075856056420787578272619818890844966631493271912497549336711076897337251790089628257770935848808233087714491931539711488275659424594342903149454335981717120064985486207419954060733433109302415628756624063043438928189748518700466405089209746685423657264457853579445241042281883756910847813717623610426239480867008708069689993643168992117144924202741703266124963020300459329184698316625103552033090450916424591816513578339026980915081919061154747165164443919909876441899482638556036326693936008063918893381737168106348738969444619838009558707286877399356759076510389592622938842235878902350407679837135914774901092837191169683523316445429096646400750105378025427121618896580654940082962094214514115281299313403945641058709804418792059883700137521942698915838717368773678849064926996567406974194979568524328978267356753963467911252669359560066636479696342030491306631273645900013797850894075966560322663212484397315869342067845738703291919067809188679160079889312772706351610252003222569397547523227214843712327069600951753502970014558664402166458538637270920410711310448758713068075941368929414050774447587262355303550066611545397210828760995468928942966667616166722359724628942625060413198506036371480267226146753843189386501478230756153051216151478187838088321836922378377424846807856098392350568269682632027342517869276600047981438387724422653018872311388787543806243151801795817653314435431894242982257555959522926745216184099399685620842475601001538132856211156223392040053012234668283098353338110943223727693178671650572914357344432206638874569151565256913322944968077657963707821601674862345688955267831514830223246086973355283799797379997316663685271831051966990340557929275701318095974230970703864571393184230309049587484023196562211323602212732848281013040363547816490669873252835804314571758762649706803008360395341303053824905216950814265995658125865013552985331445636578916704657944540614160957580382748549301677565714320640892923988642240274974262035992637021198310842199846069555692909163969710864375622992812961438986890849403354585434526340421384509493682236973543325267210724805970714799594066081313381757546228197580254231916091450931237206788378636825504706277438392532201877559791674439908560721128806900813183812564128160799197737700680964841993082070602644890754253876669320637440230043350933799590201387857678686900708756099077192231518106215741429030734387682119634815755782593464209800981695579163330805688754560046568787387720105550274020505092474053498483187092101546077552877856710768411071610504888474969891002149317028062511181904419624509862841880902365262307629426523002204967671148249124257121669331105714150889345545887716913600099955256340166238228531292231800479875837176328263537879027101634733689318992711299274109653408475072822401254097287522830678757451777166864443067800594409471654814938156150882904021505510214713313870145581615197422033182993018867352726373952557833748158923501166700113665636307967030405260928072180189712874133101735348714990678766857838949789213161568015652396998516554175697499016993702839820922809162891579172374964572355164032285147661111416125745245623448759109299548528662917228278515507416551072923703042698242791423955554634334576153453234271313137841446682116397201092399456792733923681307659720257488463463688615876341199773094871690639847052037350896164860351163924820622244710961288319670387028463469580373484529984831261900835927335118075630872087264066425414890122700652867889280990623990699106043954051979135900788280337837097596437976095322774363267519210772655535120503007087587986140719914371882828081659309658644573494679268519012833326648378801015779144410905232370718529548859369540289199456087060923907700007887591128764338822213518576615808061088787620674826740151143235385137332061125953960655205866660966611478898830496428240925213276482775247550294251625301325888439676072953691890055967052443427700271053417690431181117605405898144593138159088304077349728598742678630154878877065139398473135828172721202445735528149555060813553304978674041718704266496875508054503439859740398455765605576509866726212972440249467398986935819596910745978699662803261824885561403845116429770715132130750195347388800816375567817950966892099759072789026612356984693542689809234760242682507087830324588894311216459914794253652809075451231111028442963880175585217712545261213037378503555911083538199319188295348544195388248450844566266062877587501425872344152904898967896402760550556900353514656175311303967782479011735334823435238647940216957760290091989781319354180198535724365756487466540363893719182673254610812619844085076893448180095831049346364220613513882676533907291718362275925041043170673334752582602954600904208887767057548636256246973786083456934241480715299998005504278999850821601180153388237929002226821070887696326349461358368290337116323676698043391244320698911007533915430787466538891906875250411199452872414027490715126566071000489385848003926298709214669286683711343641294356363445801219206921704349143009207165774047431643093005251091477570579668021996848570575197890464800957294721738835202813890721830600260561056035523295771062076678135568322781310441707203937051690858045029566371018128943731869847780466382758546334552427020549689315871952540879324042542043930574114034555491029022024835666820723745861046483772131047562464843492115837624118768291729190626835640181077211540462635813320646347949527980472844241382915652749103680091441008006048230019715144253770118691982036532646628326897221911786064678437742293904431594415272464743159207167288373384984102481096737102944115137024458629865120461949501901955618057487667350483832970254055614547843119661311342241316652493862987390282550135972634097226882946329519771339463857905954069279645005926179556447926109625639444688926230648248956264704648643706345539451314068620944588924214703317810271664346429588050269505108741103470101506222099426889945390457120195662360936021929080446738843820756921424315508532580615184527476445236196232389154014827101614071726707469658238324682009362707619444285381548301098159373076456751144199209017917811046826663780336570488004298682984457884559101138284058119210629024486969296705882248798252597989645880718560834784449804705204245787305381252595443477377164064220370637629126885092316903813179264682794785126500110728684137870780648374548459525860291475616733716423157921259296629275622304696128667169154950038119109568228365898683052298627519371806273660826768067777633174165982687592385418908497676124292852743323328863640444551992174443988053578131150968508038251283136859904383236963065329993338088469250590097241204112772270357397248266389625590285726751048304290064155891570101450959551875008363705789505846853214805434267369008915089489859159171294270402797945114806186744656343018529497537193551815023017634457203559869239995086537534519793472900742671940197715859101767389226093886593923552995459344326783723680857623260860170045763628063403646829153910006194422751521464278098570642064443597784822890944987635607681124781266010914304166285209484963026539240111541902014747660644357017701460206581294041497259497222123528315229706165544774995008776592390767199291633714692549428218097511041335732155381311100502910052411714020861409435554636763796707325477691131496400949142309897597069240130115207638300884871854934976875041445665692104893430265498127585567451707232855077278707630061531325100045846550390396767778912081836191627611622843158863704259740485573745333474428731342836874913097743221920261120268909762427799477899204852305358335445139589201395296596933625686088905969133870018316734509321015566278069334716152414667933748123815783972189144841110442205306874182949919639116643110723267718803870732681670899589764232721445771907905773642766192241608743382359545903757766309172475318841830866688042953364465485394382034604604356519033164793852834038281754503038485492551260116579166722817789361075087611725492641722299863509839980987992151984717562699125047478418487836212007559016308855986927313065563653701748352743167319903739126503121983062557614066763639449859922103255422680348311055431073182533646711239749046131881542031787928210909034595249049546692638884417064731838911984491890349406373940909423468121507230277210176702855472503489836021438079988714386540613560767743832689031658305943699850439410226498221527589055378744737088727381943029369195217396056680469310442223424598414942979922814081262760905976406091797126688299930420193143402379667929294957958665098254042793493586923341569011061705879024631959735843954027819278611131676464636777480923523798958473223464640044957513055962865101407663595882847041396592896348954332919515319968665698445964168079856756238949748880830446481043253252921524035476019897424102123531202142279201227771151232374912349372909984522647132580488916467872423135428804254901867406000525582313362969898404729570436228626673984374023576502461291834856189283741878135436166777105171701481122084794772191000610082573622187162892698491388056883133580838999135121678685418854103441018078311906558372129183325404999773844417953516985659371643510685874441321117806997754992976869373057440747368816769610819429907878354179950177503809108608344106545358863799578220870702749057564159287261416793477695806568589690591683656138104050539500786678028997186662711743820605968873694767502848578708524425171549952933288971662565451247544553194935759618162920321834643453984282157483014449546268130868227797398412087660835497920989557677279959383461655834746422664709377347759009700885381579455355941387466520001902956437953579270297676659991399945909921431062364026287241852578846637153721513722139934411544023073280216802124704236210156725259991856080004825958686581794790075436837635680616603701129880728739599587875478111815374457220150508467307897884162034001799578037949861004232326103767926141661210275497285912040520568191852744012347790020251379315513136399365404351648685875766780550739824245263274268911788329119219724193648643750634655057527101372239118751212669375055277989953939463066945115518422054118934302120073405956889782743200953545431908401254511170780141992841537472248437333009474481046185156551939279546036027269238449227539418549170884217246338813591708968808809743050492785902543497789985457031919755811940989815699544633886601176294839891906379609592356967025135481596813701563332726962993765929643301893997654962607267663976026867751532000159995817723512722270429356828300874183933932878574368185517143125502640063700998852238575195958027463347846907452499120407623302937878487537252666564537470592054276324021831718322475071725549570156716736959001021457827860326703979179026925972731823458454381135157860059651204336019975409705707822219290856056645904065732885174571860811405831561756546037539304984645141178630044579888060014116884262152831952896456188996467833361812665903761686347159384352871906409189824073408361201838351267645226417238319332207308890040848004190125784648094674718646207516539394529217164586272930110307127213726589632386236577478861728048674695730963654570456986258784243986624898357771876927057810154675912846457892276768058748560200611067918274548254686365381355275837853212756486053672225191257517873803762036051256424125511857186828970026253862899926214509734992480924242067843156080597976673218042043793326300026765301199827427869529975540381449766513130123383384238440168911146156077272827989759132863691674339117671532903349604816986879935495708849412648778695317674704515206367561338744425217614664659824396255348494411619855496110007793052407946398246341248750127408013904944357806542869766673249674439994818612148953845740365894138458378308440242804796845939013449008332096622900038871959502392588700375586852608415219780521660226674366061427778819084531448545883694480109021702228708226348380243643312382823874596624151798285797339544282558421514183009918648524430198513597472802079139021845147189812636806436283203356467250473672660738880654938540523223856212141928185819206681216377377057169439935237859256484745074167234458054912782204726224706595823791008321532853110728571574836083792937461737825994767442221121567520448421969469206804451673382638260412316929509922741476650838843111865100773525729502966472315995938280534213229691353088915260269515236533786134415234116435496612109922107493717107225362717811132903259123895924855546515974619615261072802847313501901201494608030568114126618840157887485096427642490395829709347709167659120061918643851188964496837564606208296015023526184474537470071798650757769450314830279231894802977947708152417229815453377345335391739530108577016928147222653556686331156630695199464571150549098381486513405587677048379414813994815719390678902576539958213287677297316956155619478918841891949626708592864469584868792649581470303652505661009049563385359422368541860579581298090771581728154229170510510849091053276795170170725608344781543632448342519618338084764333452047643118406824651898529051185632863821174359095537022268915592442284946582543728355112169820859733196647710861189498918933805658723833630774405311985589296124095842874250960549582314604263403301985826480453003167124742039974991825111186300719034803358805622796384392839929315221152269079222375397767111145728656965870646440729797255988518588199497741648119955874507808354667277337547015618637571346287097690257627740891496343221808747868812363659498296179106683943061481723230911491352001135167646092040501939065836471046714124488252028338638581593534014172730692664178917498709701211193737934677182054971900107450277335580347680611132152022672205022573973656972086219099304036257205870378081667713698157518328265745375707142446145207619806651769500795678696797253007200444758680172268806404057222582199113912639718016474246188056139930909290093051293255250337243826132691296644860546797025180927398018506565678357270807475079499331010095333238540726891330870689351704222975085340497212142132966757737112258337828511009667027636652736928911581044363978992044514152635188054613378683865706480348421652126047953395406031627748964060111873519201352789633272841849937266848867944481528384336296127323506257918791870300536748199012318412518963948278221974384032285972846920823490205541304651047970164375358344661525171498553580774581967999525037913063851530654539577130773128405216532917656397379198072128645111612253154442379391542672531901242101877207636904050299388136048895994703640063171358413757796095235217329914683562123837574997605322185880322089838875951529903351198857671499500039715006201132448915424684839525814040783660293170034048761205875739712995922070832751035331749627248666253591656940678748311959228744550418365142607482433150122620574430856154195054803054275400417311946187766351684865527094904150117191154118959633922863371409426158120162647206469044224559879244396198917102843556134224054296172699666731618024095870796963559348885905867754334788853271459965867443034725616716418106906262716453013294945195026295892669929338648965071019064832191984846919392454776485663120363893598158113206210975171083876026157253093314857573762529227461728884795827285951661869128416635665673913227787647973580695005354283312034340656312753989819954326710294838694619038168453937123902948196465535630657223382194423223600313175434303475757042190809830718290961492733018711154011800994773989940157799091905704196718623670190961689086170884965050689162311842179575685284429512152478547828352188721323830152594429139526185939064054856381925376783214882661211564621443805708227331309713190065006008491232856415128531524339719658948807101945125293322342640890761386616100024390406118756767191667662783208104992072746225264575128935130495267536668876309771833444234595829319293699637409673565324811794923578741120330795570647504204484451133982420089060036815817798207873839618158187571363009326085000482831953408458520670304619812411310611017236818658901352821716654327180177926330648014065255225064664495554288560961340676076111459632647915614282265350883943696863334857100086139728058710308286560539097768455402015817156160255876874551691772580280436852856883956114291009248762354451325417977099596860634844412276297417196472599246313519561996704924216512293727962644757110982204224977027597734262788011953828416053621105824439125801718156555636820574251726865690486210039366215714132316268075221588680942213648077939262792397346378077575540086503718822355391024507770454130807400955851639679553920288779910965337868515646114300087563104660698299751935340413009109989447121332730352113818553734629981825950127290347676665837601796291968007714139072762650960459141591331800461137691016343195375422585975993917577422087459065862782963638492818347704515269854162037466913321961435010096774274220230200495818428182004104374087844973664036019795621324397628972881367654849276512563745065810631395065666072441401956472586242897280067113414551238227934789759223452902244207987168406037669987828545556384230799054231594545064446461878584041197727265883285573554123448665437096739267127512233689555395102227042189261983874752854388692662337897118505778840287449589425084392621132224653818288881769805540261514541439226645809825797867831436048551131129066991380346046463423610849221195800703244925163687630968628389016340612749157456184587682532462079302454044563814480986522482337001225769182977384107178893134182951326747583679162268168614897630682816905816166544108822249441400886363662327169763272439443903184982111512503725817451075854492862527613903612820433103769702401675327769425731310065357000047325178145325856799985225228628347619937758712596027241128191393570586941866080710675496954542525780067228368304588739950905549168964648089473470309919405958331813306957512145738191689433774441869733627211349203793745755265016316080450023807022381685263667177344220314197497253230140606197901686988184993094894172814511921104109161221328604125696338056154939894699953411907338775782146009524994074436595658617548321932866543821563127414212804341084703750133051909644106214450591084740389347367312691838204457130639078411785580624440697955501713905110988214751538873402638524260273952056992701364269502211223661996732627424893260924529281264482584185308674099551683178714679506654660594658200744581006609302347612238139097161734037496395850840295788371483815774662899903345394177169781292174503490883542656620844519143024889528264250224054366283141003654146416880671242652927722843875423052655623924358435963232697501404974989687527587378211030935789781329057511671773878019806339994567300636028542609456441695785100645530527032300614835437720719422265399031355802117804538730251220264504089285539041399521813524517377399789239149333805475427990576850960467411236514886661829554156710709751346354044359246538954741211036816528170167432373143379741585745361138423435933376575380410695759499999041998379019356527982273287160399458615780780434717067744799767942933465055388342922308517392981999768584210422720666198431378694804427063315416057208852201334927228567454090137057642242823845736097654505622734389387761302658617783276915811670967904991257205803810798690360274724581747134037036878303557257238361714680609780979305683137273822967824842586150330616473278599430627842140751058080145077989034563327455592768720817861097962979253129955973572145119234663034560513209695924048016763699236126301869832815778880063560047051962074021173326989360764759971832573619102809585031247414938168612458042871846077091312500681495938557219448391509712496795156736443132980724051472750435787598206181437422442311682185472470263283551874525807498516585042535933255267225179042527014971990700910751763656085710696609988525876512483412654316381613837110022048967020322127369895185499009110309727226948737249368087848303150196810602679242732669227964790056100779788676609275386701197920363047695044420355950628698124654841852323989352436751469994078067293654633659767509625644866005707568264917493319837984155676775776012610729542519969384734854345144095542291786034728761452914053471807472821108887292677164219754801672957799390439434477945896426505918399154546648104086833641343873242492690121292173378894050725974754311622536395048223629991974250466906515260412717047934933163447756579102433438483663746046765527177300685996370253243768771908499763594057310895676565503785066650626502237278693163468061913816311075707453419349132860920504118326483089454288996102726592774081734810510722480355989951952291024737256179735330694344875312189978633725488040066483641223687001622729029819613293592350943380763225351031666615675685210104894645977196764307407503554234258471710835690015089950118089119448520677574512452793927571190314275478725858658958326139772742043272704495069665689134588849458195636922980031142594637281450925745986823207868279909570011210022430220882755635713915267532045231809737058393594556052058528348006835788769645200519497870648389050434637674908790490130078001197499656127047897885596435415104635696532301947806087554902030688186471303535742116539556764546466756554365681439207337403702831081017927547809974018783932930924657443093058809007760802874911944166025678544762748230048496818283188054081458598580463155398292451769856892507071574928172469634887218231967566492000805626135263175903841677775586965929868507271708694546873524145314319458901692202431747891293749403400878489087888124870023099443809854619705902807613776091463498323860694900784716797682845890178475211458054079217002313738499062150605665303422593949252428553487429137672038002918388147667498335583156384793937559481641188041602980289561918574972360626818709095392909423591237424070564300146810845704794629725907529518314080832252675805508385234575514961435862027677902285678501618200349102350541455773809050462238124845387141915181719244732349932287516432610189852661076767006792872651127280226755183774518057041956512884345383794831028727538554607008047472212040845912317430881290468811433925466337802270149978075754276489135308299149579394108852239372146037802990959684970924579984072465127278480014647683631742826859578151566468232165170696025927382345308321183750974425075290478155549086679871893725318016810051264486368960240502109023237219841715683577633851004700755297496762823206284381055433163762153783557335171698959505236770573547179103976029273069923475597553216793604946815793018328905461283696197681324471196599560848310730134850488812459616655075527033663344689107380043896801761491827343623038141055329084723506740343093998517881731112098938584778355494094315370191983134675335721377263963610371948154372473050678543849101501708098922363004115519164864698535763927845854008359545424063332686832318200441437504861414499379790159284096328345534910871283570631596248869138809448524854138807620198616724963867110881697885069182123035095822953604085448103132373826071967121028745312977024283015409897571060429053482944939917708046090969919750812044209081110812360714202545409550288938969048193328011172259603075014870150441574825649546711838418171974766800186589154844597726457186281666750741057857515601134142761142753205137938614915730488637062668805828271923962627235160407832600812396313506758031361035118465670545772219706267991396810900365328399489216252332931498012653555862189908638282029557259892632675977149033063975090096454912631497045061173396576166721115448261246295340447686990499552343374040088905442811167531738636989555129056776789753520609222197971355778879117901391189147167685335659199111344448977005234906361157405959063452794505672896147470392576976703484182390285776854988954921549453909547208370466796264811275789568104971269802884122312392252667433863026537111903854745918241594875117756964153244810060138900942351535312347337296122800754764287687345432013036314752950405267065498697613567693507949333036625778922618955115353850720458384435563575198281139114190458827907333536695128920393844705233842233397831968263142526732621049302449333606546858116819711845428591089819577857885193677756326623393983561855779340465974011602547095274194947603709788925741323975931205513878525574343926016129523973209832889598011048073891605292534349270649783776365050438006677828826298418963351084093608331298143672182667157078511683210202717366550748686881219485294340719542562127938326326520778284386623633097036217407184602853398249347781976235675482917240022604259317779758293102726549826707823287853709197355489468979746740941863220011982493772453932963979086216625607913146565031020092251867427247106988263767218724483872198960247292443475879080215053920599825651701506031159311537990308481594647704456713142438680904399505892661857700726449250605820422271914044597447385093819984663067954354894038337353462944441340107245380706392098199120816722029446413638252167247171385746934908334842084679954237832131934735177424672471101049683084470163588605802166768576422075176619017175025811926977588073474258991240384737738040041584793998594392115140708648357161576369704014835154219895031387889545678932270990332525878961422714536744669588017923509195973006039487732462073697832159223928522566588818692705442454057895524927520317960757152343365168214321553279506854061956592344874031636080154005443695978229131427722013752902761764447585238332127212279416355062550953446428994831954652925212709352290619925584315501128418340963155275432387307341268968517731054860456092287852854478531085988825934891349035597892587903176988452566980568488871961092945948538640958647821644649414222775368417037449374433256386672014291448699178674688426159028889815467626793012996772109493418003462933401588991887032312858592851965597890444686787795894583698860525326905739888482297939411140234569433863150099992826828204981460731114831990438599492218067282686104766740097674802503568184501774177060042678667638865748663748936670591105357052359508866506497158597748040022084248126134485060361789148203765548062967971905653187614747148830446076370205715490290309742241855440300020136491678284764251150052473677017741285923822106041558407360638937762252538033568153932992798920253589468701657430035054344482038529740137124844577844954979154422961289111483327425811010132621310069000772860637159184530091696616109189483699218448565536390088610308087577722708794575858545199642703502336241859054238900236133667248884167458085076856087846856939021138147859690013187940473574053328624771168915954441106229747167807985150819270650475310834860446934760712584070985059691272585588202535660829566863658492566450021445157309383408907265423207995732930964413315218820003551065836667757818470176452077821210997464706661552137763260570693230301744973489899371680221132047194438717650998288352182840259592366333305060206051069800417498025654134138807426771057551442678235093930545451543958377652952237174788402103646701699109954021091667612741506601303133815836140332264450149323456469107772260188980997669570933654203128701072508888867286873283563598410157974959266921220035148734655792690711319867389181430628562794218780414262975891916019311624051434500379503918150235774056084357675663797876462666312538460557157978754978286389488756821598930420146004525674210283439778894598761524886646934386491154085832476946976397943421327718158247541090891517631119462983070234312000711253857210579508285833114180513623057520156169489350784419872568263617667694875766581982252842376648721989588732913615975308781157588455110744235839772197324172434164264467734953679664798138228401121311355417362352680082394088373149092502390413656716868819319543845396519560492370315527928423382718958372298278128532450359473342437905976519248885913978047871324183434966393139748245710100333981978556549432930020845272605198214022126180236758937426363588375099893417041566150948177693801154986520477737418554994051705597534436851352616801927806401168963071583838025253258894636138954270106509118209492790808995322701501892835696250017741497786301813172324294993899743600563732593043954988574756312909946298129573925613365784985190074009904782309322900126784028421234201628279697710764445831893263880237875848027416352134200981338162875865513895386462309320332443936714762596108596875280618298027697400333205457939226971416051357701444779611079787128537919350706442393875778975925761326069913222001133833025278616417924130000297639137423685047681306461339166257020467536134497271834080402286628215687843746171312192565298260698444445634042783306440499236154596464146476510566038842656914821065456245180413865421286570975392473622115034254890949050861236308294863436782111678917519076458954011706093047241465530446977582367243339575630953832581685760683817379289430080997902931592951648738915201031086819767729779538106298518909263049116479933896162052137791844032547448314669156684803630953389539763510413845625458997972120530927595011551190763093505799481310637045657022871118679730991499793073449011215841200122332951844550460900771903980866505760468267689556240619474113908974846569270224766118141769774916806078738045779158238159392117911746784349167946877159557918318162774766183369078102650661326942470147869515458155042054693472124605298289274652005845374227485555968337843354745563781147816790270558576433368566257699790065527024275694974934613940718308448957670290218703461418434266146983599404428784134388837291117392641507262266396969704132214239313170072678239214225457070999482169535763300224074198097230074249270397776350940054086027552056267969904430607186965060269053676025540317703149368292231421908402622605254883799031847960720605304762520410832046522132438205134272812436364709934972707508700904089029974283316831759235470630308405576684717249813223222205663596011584969640553095450182019609885148371794188627479333081458839831462666518215590685070226609861781510341544839523408306139747011889667760447698268978758999012092004688049241630246354790173555568495248634388400070163920576964938592432723565899164421861593452249072039066515124355144524728110224354164005378126980337994007082015848974191514025670782786580067451892695185506904343494908269509977940988309138626945372053054680107425853527007484314514727066845149942911191626473773336580696387891193764659582935248859213281679793990551698359910733538934538986035865112838689378388649963814920976682445958481082160402015104081562782364753985273750881948648217795838694384733347692144095895490615697122543143949961029157319481897328595083988278075588655238800465769884512070633121463151664562154382094398771157247315064883803510838622719401064605836802017323617447559050768674258692438530893982906879709146218555794045750580128307298728363569331848969564806957020950557196133632321061198770202354553233340177356386416446982733979004527401982740642091329936946641252444452380769569196882886439180867980504090015179100720543028582560410664679224803139151722219423539494980504428048116302764212352690810570689619625784929798035064630839340405077903587357699876350238700423623853620817748839211735409242140271140048200359304571446489539943740682988132163004632615596042887001874070489802959091919804016758892545011720981554585172299522030059734910435902350260201186120902104333912271350243510812680953007529300468172627547781249081468439827956018661229826274573034313934183594551046705945625490289909597951593117911963959802636991451916080835673736116617457552082317237505952081736804857498664367564246563163919526332805564955448681766895950827045757901548592798510238298599778286500159094721694907570243934254325603219045636175998333626822666988821463131835095204280862155337023853450226777744702952026807454841131915607306639030710737964009086015462483926552638558824266204051089803196239709965907771036247386411764356381590022039932605325047951780069136343559007873254602922354171825169083613774643318002184938231442353346558817686112315043964651488826426542684527380675716450379510279232961097362027358096807487999905906292734259717232260880301816417832383782280770414613991402894781010368538662462770715730169909220593282642116642107594961302246477327637592713045087134313869324990324087382749767779059791602096256564765828685732260836436006893531636673200319360562813465976046327168693773986491676157957258311231052443131807737795089499886725718562481962193049048365612488471089398779413302699310259451601234207713483082803336684906351776660198898150498363775738730869745759299451325370569878697383917880246956306031832678763764622150122827593626758491716245359518831146467499287043469503109136353276750077299715173556854657983313836491596939569846857360274574882982040865801664980314147905432571874237118325198770949287553003814909308302481917356201502473634890300452767966564631216401508692992477648489929423803915532781429916831688034770813482889964323039273682501767495009702342024958359388365987392187301863835163675934615077442258802726027304438426494927667334729936929926767359284078883616868076919537438494124692001031100727350572310925951367191270456951116906953832886453647279982497683130652264852017111879612731003563554410382328737692812537676648088056122555321907996151305364190021828349652062001860367051946692700031712064972496516538231648559874109328670683549455581842175440408746159946746346339195519343420720276302283453202531322887469379365718767413817261856273734926786285105958821230382672352804952816741729918294591154100326408147601370801934562078203756740423777615858541737373174967628194608621044244284784069861165372239081147738968830272773077950496693150674095017951814612672096598981370508721224214778841207275002467000041733934382828536052687138352262406984118425831823153810554369357577551767664153674369253565493467279458998427539385562950018978253171577017499279037071093633522065816227024337008579162307746979524629902466989861536632455357205374153578724368947517183730809669546396306552332262263189726386923131193630291824146940628807614560400575819569265138706681130565968564102685572910124633220263206784456990893868931935214047037060280006154692592820460653091994570696367432513752299567386778902547450958718543563548587145901006406431829524809331056913273921529358708043546078833143183694034793357506142741939574732365100458011749124856779161053641956284694646895168077622299439846760233249457639239356668687791023304738190798694069196173638395488538264156031994649772127456352735682279738822106956735657722761595731409180096372451191910910203133408482724590705850037652428680209343754590559088441923667393241305996797754694349860389802204302343418997765781415624921319945400625853026441107731773227279762468655592356979069950864128969343888365969451482541808419024137896367704167834872736137778689023705793060517212514125639670238689145914072653395064848216468323678299396669211067862632498893684936202107856702419553968331400579173753303687511558118235492154197998419193729698315487252789893682577536870778734436941292238677805651574465456914514038399951400887901923225555111119767271929899970764876982022777612311997264871122050467790166559041957958215537461018546261625422363189768024461122319669518013652812079480111567576821898922549669409212337285319260762308145929687978928270611594608596515244817257442753697225212621284030544037834565129594418867233601377421531690746619320013403677371586876279546650825612082681677484039047917785306396178332724088569912625919442425316123371677809310006026626696102009288618425569951129404073865064772869835152042855055343705945171638693009633981683649970763932327018566788022806000962807505916237883923654347984507966151702714482596463443303182837601933575274938104395425192785127199652342015736371962424102714497981578184562433697929746063244685283202996064888109937220554446416377023365621352464276734820150511730962225139223039785908606603081090374096951398941328828364446974840844594474164927897835705609844347380379461644180454139101028921964002528083072488581363422075262591952520592125678164287829577751679992203648099829805918329766605433118242036160042920860323614837642635068062309279291282274054903037536259104154294719210028037954240773580955242101313452619480321630240726374281555919465804551805621110846954371182481295084426128174854067492737062869769013287475558936300241429857794527076297989211378819478864707950714924240419073242772802198788230704735519596857092769865599247202093377898715163061753194627161821518693850512756521351001633788403368819443872731683961892673530600919972462987829932112278615100434864716761169486016946023569900536281042393123609481872792771818234888685027955098989975276601798676153531588744183507891738650095991120854486421576837576393709916167885396365917019926643362999387911053472662355726782514418075702497864007893290170938288018194520475803861070265711081561149321925858361787493940812095129875755583907082282811416115129762801854887256565171871587117662361290829462995682828941468171253280098394620569148858164603909853534462394452886536918381249936054329304019054338504079087212468031027362979814866769529588146849279870239619702260908966812450991019722302147447881787897337386294003091795509440420165637350085077466170942803363694742774048194094640151344114273968051028021340117450724670603447784244007362613642134893264397911346284241118897687636587235711417438650783516156313841139001278851321659229712315084924288461787073295246968824853275474869335827183180749997230497434776897871566866090316116544716147682500771583593332385286288003179259221561848241917509524708929399880480993691726998802873569225617053630318951093412982791936917578709014450395820217257384557104713571446120757546689446822410190422074022643412009909850751497440664876743408690022729523281205251868071547292192209678296358727189969325073699289923723079523923983257121776914272536903301606887214073806886385722359129420409448728304372858615255148621203732906492517104255350193297263841343759655795499048166359422010645868659994510839568109350568463083493844365872960552727998260701057712798087586797265146286347883012390186024392329368880337109940972605388180684603296511915437479394199986942090424973337966984336242413208159450250152383191831895889656559131838477603004947322911099346306130031906929226733715724290286524993860149258290090536309174710932170252862159740510816366968587129894066087116853312573308253078533578001034102618313658965734036059116583531434213167047625297658802849313987330913993397573474874608534980817361875426992968152870943828293456513213703213448238747528182776549125392103292777630472602219257716822184930447009125216015724374318390752872934054817366327004976531525960433183288594323175639957301977587903642815174580926939769838537050787354791838772370864625054913091707324508418157829943630264192639220927004303120319057020948219810252146917237779898762195922154920331056223342908807056686157385918673498670091195643473945921648637920413968522590600477978034174581188853319092015374403134595658227643658201043813267722711936051953195466958315045650283307653908730519658481941047079606661599844143622469063405388638759233144509486974683212679039427237324828115777549130498857966694675627993369987595198752944082792264885663826686188820629208947411658435296611108755564131966524973835841856746780880579377440441233188180994003697014158931868767595328248649811829181664607118791334983699197791577749543379591969017721024399670525286639846807711146756699151573323077079589832146493458284911101748497608092701302266887283549456971379394759480746456874041778425467801813182748134414517918822664584168842784678790101552068143862600670880240281285274788766705024181362189632422081873072457212255098027253067988444085436336711371585184825620307148921861436664741830370617539712191440198129762245525057365700372748772081137962223803985355677670515061395517835964334983099857029698331680953996337644358999761352618454319540305479723134304966176827588756894596404444929996793742671117694284196334198925185014906868075193017891390380557647647009970550187386708782724492037298522955382470405148308818480297498889651985597286746405987111172704707239457809219648764482032473738801196302663351596254051841841462511589997126985624345129291951078560805941076685676537374664660437652600393108314825045481391026873264790686732989501761587975522014750501419451336111292991735950870739865150756659543655321994382606250452267460417539586189991731506455281875939337916011399526600670237527873374772824449797128630224416434455995747862032287047295719174823053629574067012448309571713097589901260951554599017479905930810867246236860976469346054005908087687456593086314366100170684224278197473924069674407023406352447598866295102413583130032724041106336917530870532378045572363668074355815467698963087969223773118666475406982557717340371675399484675750251840777751177411653852848452650688612143384423482232452539896202474041066130774961147268130502582892981209054894945297807462393539900209724369276788264447866202185491593664462267557841869862999699146443518852373716303376606986998651499556397891310118953968061118178468923887930516256298093049993777533610186730523463163284180762115527337616144208167042055906731104234147721690444904524213344700676200219712500804104424259954911063926021385976638028458146111398919570638507390621761421556776577263827405058567252843786565198700349913353494332362931188915303087751871581115094996758071124467975983940869258309518262009914056187023979542871913745758040912334656849956893380584715662268183045206521235056693060226790558018938164440402283310484013279943458233547298495972410329963479100212721436084025237147975243351618458791898254171060558704987758179054209017894493502864378065759188459680536640495689151102701372323964900288180508391053787305268191951780542573326321636508436452904556923883225096376160137333006415101981957222270621265436463143795014804808142112491923656505034602743635225572313074204354242056513714904945109066374161539727717802828828464459677677337845408658410053404932301527163679852846181555672033534556049030874634900258858798967321393769929797709164499337640506024387173878810758597043490648206735098371608716455276769075431740163811462805694979084954384966232236499841192483604083903461602944391438617811488018252332792354188720007504288320966030513341475581178322575280199375100271213168565199919011651657423613137476274027460401033679847445104976305282339307051147257630738730005830223442103846511185773050094177793411369045502790645096244548697581679933090249621372116049594304257843867247079089694907742084415123362498074278884673076120105538029482853232192425048526850841717733573423027871585707664091492684749318094097626151145189202345264136401515843831027577604438365452275984011066718284367390414362886129228492356522392472235541786352973666328812037357759628466346395902147112147257830111941195500207164376692132672224558149884333586895942412208304385911602168407391003970549686605327254212399203194553190552135471937567801104700765246522606712207841130135216865635710166787651401868400135774305306401636059988106828132811722123195704325688942779377246462452954141650595059321978612402297735352819146113129999950992983321930086569187992571801332513667694420730580242875395494333222472492449122738528032413731449677165140758196789395925749878420689430372234402696979794829631462415428984390138854644512975843027793550088782714318388136880721905411101991930066111442410868963014931706787059341381807373145707637807673706004018325502470396322401713784599920102239859770475534750328038402543345708839068051882741601905502043216436481057767224941781798422803376373785468426725798506456635093623406743656755069310137584283171603492130324636815418720866726926741548186581463831037537645379412151992344775323724709148829926129677766737427610273732257346797414205815220994490930789341292742676546577851810953838994529810635385649619588036493706402813064004218480164296248898643956858551628497673193294663524615196399856573167648235746174672222891256028752431195200846718818349020192828880960752173184396145342776444994446391690760435831539922121810209113329280725569489439748662758731413553228549867357439556116059837141634531688133526705991363358848164961189340175558187761818361486057073632033426603287965563232355378381012928089509464520637556469699154217344000437562745538041020265344660741860985563308691019858384212316123674238709988698571220431441925220250017570557655775270281022503035278418542100458621602242316278123352139080891289576554201118776040059277183576604835131933139772823847900512798694553295170238703244388355519965997450068838380418794448122763609970923290979499670363502124121166934092803139700232437307967122824012197469560172149457256188472902499950991240823070009040139218952188681394292961327495301810372147975546784370731904645388980965054800765922524640768755399459743377554904674318294184951597109695610355554802203246153007852433321619257727763403528084210639867060776692449130401606357906436499619276953518226770857936560758125794517383129663483673543694164004724666142953164323137759179834194989997325361020590572799797201340187271742103102868211648217392318970814171140285135938095485965870180210960462281192129723365049476864897942472686966116577129151258059092715119013082958877744287148287605181778752504190172105292158712133303631076398003793808509710539338774082072876941196871655101922781955063012435726798334045628369975955984045556892623603457631495129708348126991271553497177188251297958752140397131468147295013507466401202264139536739751692222933645172788046950114776629775151366552934278442114920885441367412285468160986415217712566440532959871188126208785867418594525919005125629589506122839365492318281328348332311492762270182328094898589171991357857547611849871048672724101375123768925325648339746048696172852739995682775109684051044924684413764709650235124429777485368701108462931572577027785821627033431134303198507051337019791526067610852084214453381546451850245320757009761128205036776607180446116527103507504680979985528228335206174957126331777276766575097589726744312922678758619286695057608733616400908663619952029974409242103703289339436521492184989488796591526857932976249887668316026009889678267795558730985626089694122043774490665371857052700227746195934061774367183118399404600885737132616818941282608158596999497817377990125161823746215486177031621092051374618800728938442353668893157429451246236983175954757068443834933642111278374516522114718673485272229834340001227684563337209425576817516760515130174017705228213760896052202138668908493670811908879860315919046363995359462578124785952794627773802700558443076147780053991709857971472010379079858648005306080314085398664286236042330231149024663193658125163652809182464904653409901070870234159202746476071110716990318944522747310174236485083864541712187296966682843369525457697222493405640029944700331383304186711243552897002581355696101160524335833407299158363426196034660268999238972243537336011864408381662324144365316257710206730194377677378971141163535056589485187726739725773454161979494098376953416284795216652480015751056877595559864260170715481790845644992948813595334317173698617470475444985265451442604370626086790446005637565716055575612978574528333443211251003893707747814350337993512841455936887802274172531608765907353733704313104540043640950469244685825697970541988034673738187589590234305947393001904140040991029322663462338168692488123413884748821768443142095527891439824715566571777677512353805187194147142590909701814251306435449649201549294981120719266262753502584333269229514466742996487026074996951980289739538997252970305779043967913917141519441400610253200340504568098329673712078197318719711689235540594869127447934141501130357960322830563560613070009159839477819572360204092214467612595766292422767009112045983434348925421581183792719241225324784664660556494693432880763723471327742344269980191965562297150330298122227845866316877192005809027013181741446000275379904067504896458868929588599671118177743416512558679336336692950175342563060847853591782740916524932622160220490381463178340017304309117112646658847462138557618973022390292572734582203419819680829713344063673353756372282729172349191302387450336375403532774388003303182466651916762117387295770704818609749083335106537141690331430337594126385219655816057894083686378468537952289484605410447867650835354542272197925121687196419175484774883622989043286525739813725221177144520252641588638501441993835554394731275116001313769139977992926515860691557067664020439578331165001993171049274425031937142952826175425200942932684471935482792093186034600772763679482310375600445933417229346846575228392514437824176525526447710942096557033587511164814021601622388322452159716028333721817676123299392529974810762354169784754262946744958455153340253866555140646466559004235773876611454165468820904812878832551487029619255866734193398831056624685736734664131502241510221243297257415963923410456170436465131454970939548335491714591477982729391017033236777453586706061591705888406273493910622108351265890624520158580848685314579456013191767583427840824287284040944219464148990601762363306038799529482634092022448173769882239810185523232302045543640732674916530342159469683082639898124752498026655632498621320195760554802063956609534058192379195903697978298348135272861416856935194049908841879665134970552269032661058263813239525704834121737999063180591452572524174877212009332141618005052862576337599415274495644320269211784044154770670743109901765414594634451617811745161391800826123259996984089318491450391044810665649571387620208835751531115000356730973802573796127705972060704575502747515500591939158250787263076271726407257273585372313571289375540111051929146586241690819418542466719659206845263164690056003459794291227312077729650418006285815215849225008849848518510833062811608524959284936438261685916089575840980756762630034186981543868620527768384876493744359959412233465683153665938288610203179275114578371198993724668192609032815543172571454011790977088072465439396966174120872388408692113934458910235156677432741594116026910622152957769981322009035702632540674042085106556084768197988080662231682997784243441730388895467441677356170640053842514476272586007659709799948134325264841247617234924915292715058936731173864736635717842766251402440800431200167250529861968242040737021299749826739063896345504743128998217666170501277529554386324296908449130944338345737842055996154812909210454188660434955840925433424821298315280913950988641121080656412848480149829687455611380290298982208126142567392687688989312086456919522709072912855291978689907326296766154053099896870825926306118082847347085745429684278692235405920175234175026636856331883377018471839545661063627178915881302298426104145511354747003279489645612775402479850696836716681155771488011833368992830716164869439238216582754771990190188616074281516333412682111432664985888382935343021055134439251725970992632545765666805912076304433777906786162412277305997863885837734686554308518315731768522235674558977067477845455179349266094130002599460504738627689255540007435348768476553079442284091788516662867004512343481480390299018115043300151481429380493848108191840781637289526123464442643857660726019508773870749914359798379536425735851680555703149887925105910057353149597788721390637526311247985094840896378034863962967936025934875577321613064923153148062843334257797714392286958678936293441144885346177268514323279942366215704004057314463834245905935474092881286379729980049788320924956378237048301690475693384278136592457186757247949194732489306026499211770760490806680295087318244032525566172011711812021251975894420104655398328963906760473591504641749494574624619479910610133274673555799247224262483984151238099205455894807971959537555067415628507057219751739197272530405542219429653180768399194337252233510751581449148887864102488488704046824091751536744179607334911229756412049015286966394130776363992002463903503721452969944152308941043067542445274266926898704510087293723651766119373301216812418044649261274879809970217143571634343988596693718924176408644582691672570927151714607163155893817398103853834367768375546474568394423381925375129700487689014914697355734834474742658989044120513868660040604751811496174251594661020412542253949399807614005892433483562186875359999378107149698475760020419958447457726459743749800063821309752128266921325101975087518481151395907401913600465670836010588062634241579481669404830299372840668781652997725611550442731044227669526299397118671600188389672878599760606088493552844976421469996614644103689045486320193163700090954240983823873603829192914840995531045136151301520884284902634060613295988465834905836010728237619337521429265580669228921564631703083130522315931955337040448211734302196615314204102874840045229351608618124313688955393308302069811321229276598741454607747160030370302690095878646631932761826718380321154800790097917129694777548577155304878086869851923102555632987081354579422936705845302602033698224074480443529053143215025405052416208413539595251262676619485510019664328538439399410341182013425178185086256702357417157851821338111524286717280720085306055377444295671769413822297112960580879274893059634929738184062582611636648742546892007637153697095616227681413716597254042643648316958376627126171187919884479859985648349147485563387208489362618454475848799371038376306264203485738696239149854441462067038657817634159321758173958574346511493398233128467175278936422580509511273739129808210535569085177923793046287294114658920218160412028782792863879797270234818226711048869438697495595613070695175460076378856150725295402698928835238385610920141777315819543932580401175577926225910625129928902153467502785478980597469069010291571910433783440432504206665546208011423323642324564509684549814637576987643896011398980511213420573172626906076149894046535573466765724218620470886799811085730029489622437656954776199830034661644903841437969629985225550270134371614349321017832618396873565880693166245140473341621208046468622944561423044944025760096452105927737345466982107514637968684854151953329632475411476900096315998643036116150094499177597142228675455960093268034334464092856592684717418452643189866220836656646687823799309357638008668518884979479898087837480777380052051895797831812761218428496442457245378025208071243212517121972628468155583844611827404869689339443924994395900951042039065727454643835397662600425731682802170747213805580276551829640159505016385266648385269886094487299431558550061256868550573342343518862762608306150779735558615037007191346786582458211285172320106494822900607694976610590094219469106877688950995105860802743631584480439434083623408689571987645974054950845253371037883459283342600871457430376428363893947054684832372295558370729505438424642745683482584063084500569558929064338250502332782494692379554885068946405445017192417051114563272897768768665773737421683152078898731459340692462959836472731555607312613635632195180923518027638516014982997321734825834672248060236713809570320476479557793973445254761394110980256984848628616076868136819268094451379895627995244784964042050095962273220272258688276348143558487301617943698418148874818898165761071704127992545619819360336593815719171299987640579981222051723245308927997241269192378685088626027886099411317731289404437118583647034797574317257097253015686636122611223617583526786143982099897666090863124738798832819330693869684349981816421390457919031808009232628745897497771734807050061124332851504293870374875866837267193233755251574264226844674302554419778050712600737023163222495187198700957890469669877507660966524052898147198907182612082689437488302855996230112595784385618747341880652168506641015332966989747938440623530366154859420158043502052017126338801155515269626124168972161022999976305367838273442065676090474376788656474724159011380566918954903083338459677415934573318577702140106499448971260843870759104006075525962607590689397290594897023365899299659142592975314628132569880176213950244974965834291750587314336730529236287876623674632239351242404427511681818498897586358521909912659195361518114404601594396694233697327677882550314043997730968952319955779967557719156563767072333058034334344098997304456507926339402990118153226051019074444772490443680369895777048884037868364838327464943530406093284422498507512943760221556049976169937400716818726928782075997252829326086917899285361839782003753040263199004461584685570944065605150636982926017400473600989843576828167427061245484825054948841918730608164985037476788096114828423026459513008390991377687752773684470193915934944759694938218668648166834118283983250889234119556615567007151690722883249619685450963399725641640091391057177411151931217945972032073909822339451181365244445292810574393835291432130016951818959926007329390759723738652971783872952566449629435015719881427527946485352586075463668220354603235765905466172302730941453950574473410615453636967790144104928035374719377674391733770994673749944414610031862523983012490158808484193571897827940553519147337658990562593377446004700368409471580969563430450092464539669758864704809983372956430999341489016385015499353385140978625943991261242124064550068558579825245820582453437764850273448443135680088242602846459215340430306550741740422708049971032886020211284972492556925724903998838691518674996353933357246460423009600321269384518037378263262129321468343668199815025402071172714849479695110505161478251698644146963872545256625763486750984194852584260092133639564657261705799288002528607454437436955723806397528730066305566195052291521645485290318545805617027581968537303490478572160860199392675186045548595030572583725559672673190374583109920595716584245163349565998579822687589750969329614532749620739899278446602324845537033730768949891919491569945200944728396442994943390690928370831588924539464135413948419801810773522703776763555506451813519005689115323665615515113433444454183701722854814754801120316299167888740164181217283329771507154586231348623549325478849688399906468540371989157014930673550979591926305092766777576820310978594738964469567065026426893208242742295787934499776731747937853625776731186356298475284240436794011866253917603915738198718461878955497817163998214807218152076890930698053987863880555675544517183879804072242304702240513724630774266225759410176176089926852918607655681528878443571364070002712442315528251430088581778852305611335700189330823737025655140790514728479869814272551303222993923116970963940614854589454618936635848632259947944136126451294265543614500385675513882444867316359073658776745617140811752411762300346500849698464908086960572494958365025515639180321013478881324930260748121058914373209453449137929862223531092788990502708281567295553790855111692466229733594757580453006038556939917571657569032390357643561811229450597098335558225752896451512125367924862072344307995736923945796721362327455250809743142170778764095052212583977720879374793405674224780394834265564626487986113880838974882079904965333120903746140217625596773022181897846878781163687335140992555832374015022163772983371387183550333335630384514654682044492036472818056657014555187622923771490731085215955335385601664261196949797726712829754375612580554639571979762508792237655657947354875935419258736390794576319705563345673273895205990770213280468678399104738463924903413659222441152183122034804305684079156246852616636884298448221598520402714812382244785423433684832169865817811109119932387792230384987960957752557162388499478575158038805577373243120550686690895166003249935568243154580260694826224941258929775242300697588726798012856242415716204682608743711698708814959663798216949723136717936721394696048961390861467816620731670773501034534605830791490100783125197106438428338588360786311404046597185890168252142064204852871517104307868104044128097696312812173950850088653759926841805582365721259697851077199720163112744432829572816016341760210356925966903169557362364796330576230795704839968850073882159262055016495231131750484078986365455522595672076110143841091419123869457980771926240458813782543243213565755260437546882507038322035394187792673193730822971824196073353376396103499389750640441498965278135418983003456128948898455933159064488456890920462326424364656992425165313769003046154225568643901707804751019187219658913847884589358315207145720713559992117526470393231416486641086486505199731429019910919175394918147922938602624936911981555432864642513395475543609885724608009541918555550885513720216599205045644672308492826618122884414063121971401712090205112736109291800808462616380888102673481935279229993261551485688109400199582790586038936642605687474048417291321058586312954224634705892867966714906742212734118087486358628202036152951325238203149247116572046015387247504738016328550876677943285955896660415444717984009644696959056134133281402410877986305649610287115783249325542728189804683222928073059073785554026967457877750201059247187720086015107809620110708559244474927120667730066200059992272664093312560199726511317779027334334470794210748941587288301839937851332503863083997959514570699590939025678465633771664807061755689565385455955063114422134212394667836276285341027794019184380385026242527380423034706551923083966803759280050214345883486572738507740573075329562633394680608093675398267942235756263335843832937333058367827750885069728916154043949137386582121607087424809378000103294421208340568578312005235187788705837687458692428445293133280324667248322922920113139562346407842270610000472501057639258839743628780665345418948206478659681891994098301533111572899613796443236961456886187892829133911513442046029485749441518917070409783191550237584467787264733378504066122836997597026628614249429655021822323103869598990951102962287050597680596164071508418250084965465138596597527905504396369014496273406293239139652425392775794758571062716777145997629196099659143678211999937332224039216659490524623756497942727011051742323299756879776078470588101156325564605367489998004682248626910783343372345318276359232587987480541321506954697525050456227131531290336361214130747405905851285997169527339682497357464384961023408552616209553338275903674583891098372058739679335541233065424638552614871307896855380818027167089313088750930567824254158679500462563247385157225457423230464945423158637705996189797655759551340187493154964984544990954269495572131205249394024750065917955240441933948977557834176768223457228635412222358569443606536578928349667890773700193707492137189581178334664308330221687204605449736299632382353465185038930740759009825153272435596169237692998107649887500509270217312850046253968884802392697218628965696563027897069474362033527513813019470306430298573785557224081171212249675711319187172811742776315576280308092547523181259222707340142341835261739512712939229948229669307386441539514776781392568056647849796024324270939849385421204031535582511344591611865597354936487199826927415504290281124719152855908027012287766751002130741496377732273525656792183892780531018280435682549386184398132677710557014684467622999298346108716021909472170317780677399428090636410389505178876263393839022038980889712876811987275833840455920751206520856464585323127973267385345925513213986505076615151639364296781295855916493302049028795014069143689598984565674791021558398181391657627006377093871676985622787789891588138407970941528174425150038065040395677616461411778051903385445935708112201158413725711542902675034992756266192140648939682297456238954030470955761336324527302002819622370921161373888397696609389628681844775009547705539476610883415952353825412007790718964556432844185338780938719300057119881140694462595065834902274244617424167883678972642161963073806794142465248681280275150708118074015642695546310465577686760713542121946242361156146150157162400325774351873708286988738692361505873363292935865211784342051752677591759640980402423322541507523360807754723983860606522509250863772238581112841728063001602070957203427615869971901876070473636397575368345297783693714424994979391809280997536735720230157723109399040899448476274087590825701323719246538017007667551968962677924566545986060738577831928575934534863134500282646833670366788220829913038986746752870872264734119893304268921090913286824464633630311695652394514300466024424970566726882841772639722616704276238448857668592981320742943396288082218417804810529828017651554634179581522659047486047163442111136431451859812677401173223814346664848383623746316068273263569477247664028784176241737900064446587905819347360267511069110516771533409380607425774759801374545202540291932673590262696849412617373719318729564889684623280726219520581473271456131073679474599409924582111424896398085578903039539724523950329512954810898933060194482816706522408481063434887226006868811444603209821397063532810114149209042485611639388127558463063994418956760372650387082024828685011160922750512777302884053248963594278700831449925569391816180560267634381924789728525244043448799455788828079941945158644309376175405621879353494806250865678920316724860238156367120808048139375642069545647741075704122484642955064641143697152018424209735760483323928934859068913526676541027281318015353970923062544487807386750729079504864451370986434463827264900251988476409730869935967730976325889837994565085667624965826876537293422307535387280144169661561303716295231595645682476948080667176746612683729528543435524339749143980511669973859784009476558674379168755525902428503082464548201051593089867023744905648815994402552066510598215331921452326059179596292158918711064344324812249944163043363481581244403695607651126375383167072985747636936186887137328866393010900595610594649254241884359296382918390197530504268629693883803589840301344006434665535878254511470948404127076127077819538158486405128635028482908374888275182227432996381316326234735183107247761185995026028394026995589020576107128016114534336006205812769200319490558107811037378929989763162596912951263777243505496089675389331755132257372043018667065787272511856523588249211921908520964589827422031712309986859860241111319491002984681143262101445258597272347541601653598923562912706221416344000449575199176552150076971421920956661065478705681313694342279021519310278695584293719094497452044290234293320937555200176993854735628145549991307925895638493710509118699597535419066395868650592905672735240322591835300711779920104188477825492559338876465794897812885293748108229962343457258173893864055098869544323584817007443224039551135623402129892226869725480861688903335094745326205543535407206373008226952150528058065083014662220459280572820246359872402711454885047372366113344427257383460912338863939249773722952107473979441585176465528858665724456642148263439286990424238315796747152634058658581908793017111932948262330547500302241025364360872935355357796272006393366890412949429472070950782637745345916116127774403985999528546485076503615057048926828676478157016063764043152047662602785032353135321537698840045391086877687328241328148444361293094117226953665914654500344735463113370518017378485616742536717411846623678508953278142774942316635188117824702935058083335467242353093549795730232441754572816721483573132187276422378766211043725319043740479496091969318163153906567587187976973784014501997297538133373048251076510069789088099256742953927133538588026347212799735709464042716764041251204633253485108061654270720441001923048539905548114816677784365324420949772598966420709839480298548026654692469728708164369219975746983010933656575529832066463575898525410590304648110277762236499551006812677299356220309953104255366628525604566444441703290208036195389505033188911072227113743769043811125499411617798670445777813028103842507354734887598892275121389272027911863827923558311438382164620952642747226130916477160830042293423208013584872954706730912898348605322380223980049095720368931908250717878396086239115663155350357892831956983357987356796530977646885276881666664229897953754412655979892885133542802848958331682759683834310072077473419459769374917384966367683259957051397515308574994740692664496527479053573442925244976065915428403815333239236972158724310984890838388669487386113544505905478900760837614096750601266614493506161893427273647213969608321400982624936066132744949731556971339916078304242712346694338306248552496940482244846077977953046791051215212070680126486575066283676961539196065688341238002644358753627702589599557623964457283293213925748159526638086004015938944957852238454522556847481508168828410552511772406494253448795578829098235685979241218050396416424503592351084676796745916124821848442852734841539756085639684940123002132546209643491096889936562104115401674558640405287490498563612387360132515922552529682787592735379931734501675252812072963932782766757825832752229662845163948174550600577520897186210416736681858196697014332835367481415553493852118920496819605953902454535625905716517467900893532612359070876968359143554722484820822083569374756374368888921313149138844126273081956969076247632733701959818613963491402620682315687591149255590850738109258598217659682398127214666622465214155966477788462207505832269049258705871348740578942984977320560823232325508759741563427864613168732364499426450252778985051898901034358208957431798819886692311845594527005595368442824791842631594336472211039729972777227346883450638672259834553657635691812682792403395045139924627914989527826756302656193264185168517840789016505978090468263067550045602588480374879177291426617862991892176607093962315030586822001902970081573372944960042569263546220541962951222739619816580593371086734816988971643653497692375403279133453618640893291548361451775025197848479081083563701070336282316437832607402175131369333545167824799672274474776158121582258012622193858538305407163594521455919120090531415858320926581772346121335705838816804750092536980004521911158238915791457358462644178764633422886264922764961023509802093416415035240216904672790927538260287497620799806950812789385453102676697664762457270851915687704893792278608812672471744778723563219845362529720882260120477215581064582312694157554963611186805353395645560873525392213161654801288580510428291697129970334928154897014853621824330357684398123596270253737466437277946891185997137430083883655574620343829983749330998345754914256035412733705164090173894686064296935775599290241635055289049767472407401126487760507132886363320294591449624726803821761996874252254624352502092027385910915168936459838457822945258835977507570756491916100381696457645421440321913620343000090648410393961593198190690486487625613874232041729278449263446062189393931805110880423445453290449893033192767044335755971988126850780292285357748930612052984179052938552718655439490891299008082573116723912054169889022402615662952395908146146076184355649790411333965447814021945618342010577310969844663535848140070752505985236533460597681392302754575259494704825685434770791864356540389362345960749498815309783273668649186672618868496379085268714885323189450669451564063976512708291186798445346297141841760633404030057842684705942616666945429883193807294429640309211662117388355844749219968468759166917275826507592657192158824122470514229999727139356655867391228785585268011265674382306927712191099059856775837104526974407049608084748673288337088039839405840670122117741552166459719145529051960066346738552391648790389864568415542877839415899789849848767320479129194117713768602819482774124259437098346414542239966077412772706068375872610020395541022372023050720643887500628928427446124523614257045222169557480827744081259669339160550275832031311432898341975429092286382223022633868580503153522515799786837008442797268696731274417256703654954571306765226172522738945635826716714215835023626729646658729563760602633531460599335944270868448247867013483066444861551795032978471416182550521460825602877251533983737654104288725567822693053554512460963348269152477853435001082599703926081038999278963210150722267053703658015331564041751964207389155581589171410118968357592531474662833751998668809636857760771584134574560407621888909622395403645314909587670623711825326799973259753432147671708667508776640600034004136253206198381785880723010314242388726715309705822607673156048616217313249681544823566951184253884514742801565022668134724755307254009762156705461593852333885358371545633752316543266738222562625965032869652472551737160360723276654090920957674826830474795653774329538124088925048984115287459523247594196829712913483399593237862268745479730803092653078804179336281953255880736723537541030002965367226622052586745418482504395820095452988426408608961511333703797040757134058686124203126467013098657158726279396382651215783082060177339671727078098140585597475404197717844231820806462539548595137663617135171092703383297949851620413419933666791858905493385069420931087817545971002582504907972423709013463887191016826961641195784758705477629077632804290663676525941548140788640657760487254296162584911159897269074559906353989241536935910823077569562678697178394913007814344989130953964373812135724559811312663868227892102380633150530866532391492512216214414077004971084098934182471782535110249836315379036235421701299799154723318156568890263749665835968328224267711582848154376026568143405867403815197613946743393611954174261277017922058505395265159827791828372657257538781746811156486377683397672373053194595030980931722247619077032847594140929640312330708541210142593689852396383090461258556960803920244265009469893462310654888943862385631147882296407050468208406392582278120270705686054747988311520577564971188436806888396308651914160673519384779988559131643610216377981555217610556784990696574568684952533523883954506012834140863836804296655282866616396136714446338427215943482167790811024357135838298010319758963061016623455724599377829796704873974288025753398559951805046245871619784305991587144215279570721831218303862639305027901636000443515883700317422988739708640568557617795417258605734529095916427645558338877528446429529705847249111918192231096297558684131313763579479352480498606037297441250756971144505643226906973748886117696382469460201645756362358674515293104283917586921166084280298030063974437566863657077981381790462891681157313274781552780284019086509538071410326710568847782698760163267192222364551766884330280557296090375762656575049839644026633345288837529935071334529407824495779749858561363301206354208772182838312611707736664306948430225355769942735037910173284101591611302718891062027081806980110928272818422012925157877791282024687974258971889257739000485223011675120420120558490013950560020473103435658760148752680839814070458990501457233719706013614541799556001951982115504038716079627151398098748327640854233351151616396209127403752766125359237986163736369097001333908787505412603091678299678654546752195724113546825885750663958646058142764845717721651845474127118609379872281929028539584474176228092335344783096730056402377988232572122584299834405737770098813552356137598028721115741667242249298292300132961906647479951341482232462181138059973618724893673529184045656204146494969600772911161878046622393978187192423134770172321651546741660561171171739612263663779050688982900200717375543023223506036951071673569267635530631506970807432856794510059085643723588231656813293292789475528739800863278690742985522245571522116885547616511744416560995680797610498266329241242034788111162003831929980231612617925393515958409297142670739936335904265152105239020264994987455601159291432214940968654153850347218810714721522067618626631231629105590421372128340677025794614164455416354411183583968996001246787692722905077136632469791104963758365849701178857852953593079679944537657621085592419493516476706336793275163542264663899076740214373496430567510936258484152763083687730695679697512665808646762088797429208528553758170325650182959395237162526487637079297725845751365800027966745571281709143155989528190272059860960501983489016968026574196067979295552301124178685919807690326405524023671421188902554546232299143523766607685771050905269681823745631416300942128308817224445248040181180036290193815441273974018281329908378884589845988609146228796743309632670086166728702442754797487714036990568862884309087212596245679906659389186711727837532841345861580620590277561110811565760472955734310309694853740722514998014511970724065643119335296494649754514701547985735853771833574143363968605823525329160801368082092308024073260462567468182859739444585381729848738194957118309468062706683428743284176735128122699348189151568299378818393297580035787957394212223093352513310498541119478128205048211800032741802131408976470318209702173837625394555837506912909586587802572358905865609419205962321302673826658100739426331110905312178163439658992225594481875924814841344253701121598421186623113678988377465493351076599741216990001956807398231763723517771352360524177456129180673341171247558076862689447529668382315595917154909636878453677328146456951132692372340436814314393180451720556608055228702730249245814414649616218696475681642649634624331468487742509951416101906401495924475420992137539995244911622808425421720901478469889583601715164041387156517662619666654894560635633519407639988937751549344042341309821282718958127311713085934418636045354096391609939388848932966753448894819693234634514639704882418794335611936447905960942216620651726104054764138712614986160571769196016529080169285488543104237325171002920044902918139616114234727363763795754298670085062194536829299457842624291674417890571861979848080973813896305604264234264369414456236109024779608082577818928777816296126145162543164024326187702408582243671040638395146083870377224039579834965144119794025938761217256241300058790365509262193602954659748150413663245918415952205433996294627859524670721795477280626856625471400445229544304394324276717946195514137009442299386788715070248699109056059834040332749725408534952109498596808231630352558669914550415628307436545077403655995820534442672759990332755874364222854018539289047977646981908334542346860670489938581057671402693589395253138386088745003466467082078517382088287413609536649655463041694812564691707180407995942800502628613493347565485483367288686758008368006507899793830624872075733332426005948798403535454179891452475066676749662685317421481821299626585859188343126715430585413371506138515702035776073659033830609606953118536768172871967450943794396042883060068568159530454471931930146278296985491478757848776367689286073588548431547628088061569956501982574198297480529587536456384572676503010665005315236256126613046478932316549830332248072008213811869930817268672436593296728577847104692371001316704375302046967158691960559785742713772589585462570217958623739380930114379812394551579912202040147585298489694389700258174680957182429048453524010611527292498039627130926043308839639393313650103199502419087243827300530729858035966909147889581422192435407350674618560943014307825612025783779206939568735294213874457223654192260616014296576919899252961385218502412647534821682602943051568119108200966018374216537426638047831985676835864591665523371505586172224261577443663416721711020814849025746771892640431430309065725230073710760132229395368818437293292458306442436909579436495714269187983336004843253510808813561056616549828290705304382853633273010478513994498689204495293732149737432263314946665250875761246638000063659108737613573029991916686131636127675896746498963585156291398373028027965377721263579134313221567550590015494049711652469929602794311888667256328427424258003097868122888158151098100324978014515454412569240473396150449918596491109188468014065877817772707669132916576536751706637873683822804771160807169061485841868733688652290663362200563386477702845214986158405933976368726160659007988459934375591860455822193523075020346157690761586235910968391271125168661371491358006792953198218122598583064666392974664150585039925692524648879350535571771433300458984739837871778792409143231696298692054008022440594660430441409149586017909116243047392578371448685633132580308154969840883774269731079789008488989679245677114502896850626807414744192095522937610866207658700973192233365156507954455411287163674422145988366927103238862424493716900242338969306286091757190493036128577504491696440907706824161142841104336267813434188980480864046257789014408828241242362758793910081426822633024322903932040496953057409946374102336455410524695000904737336817531205444866639423602728333944669411058422623492917581970450075300496302863179469840420699939736613491513162517067020204793951517623973953770389350838000454478660741207969473865854033289154993281362612416767032739614152697453620255534997100020504404759119680543758123749381010705297226815596103937011272717357724692370680858795234596746249828213306979869336896092924133200196476558171273366383291271471335248871261204916556839393421458300874145580492945529603460963292779563135990520526234053691059447619014952421393251812593733247468419924935266753420283328588512274103754627805250811091812217507443308870249568365112871175758729918265749088191574807382516074775138691327778841890686075391897474011946356953172479190487159473604535248823815742011458297169702190263440324909948121331887916591973128104843257079796554673427540858582494322746692618148889068489650701612374555081659884083009734237530583956057472376667105098996608226507381606835687300065285513137831623886562101110344112694754816850558187753465895908304906903472960968561464490618295111455565423569906440497296362153093534257462615500123778349194306849377074735730758360314858955715732711438859476094817004529346679483493079778139953869509426804738429825765988490141890263210676126842979362752791408479575495962920785585511930606127790624864069820316571240454118448006059404290477827238202573600398005557142616301410152845058339259174445037392139482711229201952295171755055184693983282885963045157278366301013697978521174419580261471647448210533011467072939058769272340472784182215583091393697156214604193995528154348075761912249045168475805627670546957922095524418015832812529556203338021465371699112328015894690742359514417006794043357975902618789421435540540878610718960719250623873312823872468051734496434674668237596522106691547586756786783483785365219532612906403960937691332167162906987930341575213548441116030801261606083323627290508334633596247939567046577023268964426826583561130087730074944234787311730626613313738248705652208905419564799458572273000060156973193930680779218565357318290106863140544401213004535233920954781772400961118295974128229490190552139109350664276434532738365701806156793138115896385238175578121334806135032139528016619505707457538067619445495882471610340883011723868777979776685932937239037886444896422058804341076263882595299832950687913468561755680949744317664811212430359139952262720555414472764093701268382649299953967287653890948224803217521766355231439869746809625325359430287658525797205472016259949579409062638712547159898727599743162738350570956656475330534401241935577919446629762079228434569153838676230819259748630038674345326788069183569124551399579071698770297742430121525230255481966874376898976251658096199631825953879300676201307606376050360646509612354397968717657420819780505855834277815174517543067428799710575937270776088761340360159955707783646174171557014132548975774078949720619902063089172800750134998176236902719627830316185747725402601343839432272470161240658863805417231105854380166074225653035928437332575757605668121684732609777387642772539233749286508629903299262876955329414894730921368290036089661990721195475409714201253010149058021744816481236626223216291202794820865979281333360298074097561188207258198279223374693506533755494557573560961952998696541170656073490307897080669663780221052823791850065639470012007203559264538055539175227337215529650544798015161600363704038125695300932959315149254881926645906583598417878422070591854326767619187738859051883898194316677475924338720196683095439294803566760137664950574967977738550088491457213799667365835406935194634726350548171105596871028986538503658610384631274040815953890570110556626770100035752431973950560710422052533983091267595653002879890335353611187322922879104175253841899053126493169451987078778146458195782741901339039441202696947547122559442634374624325773476883054671718771625475737018797353754420572529491912960422312814126337507245686311639574335047567697658386979666095799101959001286087466458919616523590900324604337894308397141057328814215664103831831253546670527515454770989382521838939668368248288142058717129094157930986119833726966855008934427259508985326826499295539613125202763403244702464298734724058393483210139342357571625637348029517922855053855687481827294931382754907042477505658631239067002743537008574913195190808557372741251984674597032125131882068309937840200648274822286423559401852726732123270057168685050433336782395028109367645309600289284560609623704172175198655074996575506634711052400397950067365515499817843345588055191481166522452443323370227091242892184024405918692734916974265984558274512018245254549854052778605016437219710473040555659039426707963821356399131852577213420845596766158280154932406582134793066775153114904896637909112424154707222198887129242343940451635789506648166757289143124851218117608700854998827762550561339004490571238796406963824476561247193697627883404388038351951569600191124297182261174787646873904131861761602796473307200443669307627992974330498870661062286943103598733693677590814589215863753689626644709584985587261774749027387789630459941375930008649741527402412741680252842321580687662409034246264467955569420660210141549031483217355253330077067724448980055901182949727363585485868526621225073466731080741544332641279016970435795422862373980145742386843628950960841895340602542617539501984876526044514033186029955723195685324517901301111753958630878484944517039960869023038237680922447359138947454888402084256895137067688488424387615164937566534399566129503396694708889686362952800323399825777564522175801223303989804757024501615115503472854446178085629940462941815028287552791294188453044388515845680315170601814740564629718663127872920378721395111445160734459837478442626702337929131088489362074887993287079548251861405194717341493001708854305319541739222523294123722292856430564709723086498246607293163791685818998058268640978769687044812828275439110494050214322832603936498214775624934068648747848062673181453997156349818675164330608756501703466080597764395071609719251802241156388155750690399631959580400710312341092131254724397180829949827369122248995825415148377811327754412411899333847545611364915794638769519992417247958752655639384761897744161557050394495497392656170103825869531126065795112912956110825270806727993481669746642801563866133935709197690814250968732751327120689897954787696940586019998519629887477781095076085750674997661966200962416544303998579170473343771360886330255358542967573724223964508393490244666834528473129525849283707749283746066268133341483422103118614963146763564335761394576269124616150692923789993910042976350598319317743872709393145605377936777167050992700752500247030607106757386316154303382962540685509509109620684595391748815887757213158834109092358101648786533815799566825379726538092394908301200972378688934231364259483469484634316178510800285049866216350815407683347982701147212891619615262338603407204033324025502683147853977049063904416374393399517037862387686419497519433724755922181087213177007263110905414547234422145229484362196313696169493916487719282070823051847314860646899580276895929789236118225319425626281486761912355679728805560243496910504826249742215528961566685249405988959507426091915109057661964785775350138870868207581653514103362448276653055201035185494340435752464206197284418953706553582251410469476662559094165056183784234412370448429630796854253392383357546462125726397411300805502586025368892967770157939817208192801149052985319811888904463041955874392919166274581669832009754881110401863165370360089871627325780231055202226444451145679760143151685752352022544007332257191294843501395973238826448116560099836636230851449956819036385831588461235469396949129377825337391116705028275030024499580924382195172582608389850504155924517785726557485701862832149641020155716810527486590330081175500712802856897015190366643761145350796192635707915786616804602595466596166459539247328528046957606805031207267789065341452071750704399288393187839436497345848942376525249317244611135318600253621479060215976638908263675017252390840219926216001608205229938213687393374324987799618711850599801685493095539279174112928733277145257249103610123639399676688342855323765222614168873743604954050230037422891344088799813153473348241906890449441387329945879687842716110933626037621922095647081150520410115431737831515896555724185698289839051797403933651807180662197672614585235711493622205113773661573068296824420796956226800227725828627107289526723870064586747699985934410352536786310045750259476055292069954147178236564738771023662016172643092215478207420062591030058315247843239422874545712630710947594888079817967705416274677556869526237910720008530042879218738871355298900936314591997324657312252598117765112518244606545663168165636261821581852273983308809776349832840931765338645015407353981932826999441338300497383061244112322232423153522649295224653455140289200797212213133590097575874868088934124710782654232311539759569931115917920413025418023020622744398114049208503531804576939015240372076103430438355402219748417438978695727839339717934758665066272380862544489687008612247940242712029418429725710841329123930401972604519927995629320863670858069817784019661422694010801711795462384549315502999565354100825771124427824999853269331230980772578683589897016677204380231274739893211681959232380848162766352980854946388139946873291049768196557507930583216678040873835544721286494035739347002847589183849043716648685796958921521225713681866529833091217329911292617604862416730746642119482628700407756610328926309989099960099057916586046224122428398389672841523772063265078819129546165235313081134898961919819041267150515066842837033945861203025507037352868846122936463133174964680180429062752601176714056893242995244335923784541586476113882059557118170207232723202571300128826822166667355390369420007606771961385698832455810981239201550850597717843327548940360980311548326113582358206891136433292638536385125456646872958168757597363306602392023832156074555672977616324013527402908978739103593380070419526375807938382205329941665423722257799755309265713438545384681446668567195040879822111023207436289237922119812531460159649828990497035802593041505924995589697834768005301191960375061003508267399016098225635229405245356568369801843574551368807209086394375077797616705866027730630277626777955196357860335637957552438514408888657051990365417671187996782169617710617485070274712774487672787826599909373971541412127915543431336968212818749196818650162742493911378805645511818880067020784277565594693095497286320563898940518185621519558260313468663808153442204303340700630980290260867693229007636233357686644358321360298806919263723879463218493705024440912267240416243386458590859225280313596754721376808766452261575089130434371624944171319969435146073932477035259121133636849691697932511887012287731349041598861306100891420610521718154726590709300066231358732245112965587467790980401232212208094718793405882175627013914032437732399797083237559207613253043015390457748959636601139521379112002395011215302235103914867693254750492289919534793069209625903767351017243187786622985943213674059868514356481628665597626744916407740402917893017551957556579735322146069379579707745856895301127578048116867178908331510870038845010449878793711497164824242441614820440860797729395474591503114588497112617830744900727695127640044169195493428270096267605119461875692338981738303389085874175901822874153916588226467775604263836468390521614506202251300994014844358730094288630154570188642835990825454175769336226149028775924658547718496249039230099660546225547723079212746205639876511793598209998655571062792592258305417650998461320318930772541549097597433501629125138230719641848051617447767577999910846992839227023146651244883794819288187557928140490992319866608260244922504172638287117420326174091131198246670547949789714228949833895088207364017256272101869504715799733507205463475880036715299109537683659912522654293527448872406111681905888379340989399477766529312513855466084078896463947204163593837592276257690388778181675580124266068110557474525643500565782919909932715210929790852091850095520003885698082091209499120178434143043226672183926033965496627105155531165241911578730631500833373527524606473141801743933471028072668995204134994124208162911020859444102092889161462710974695876661002103782902088284073399035743232279192380372102705170013459420391383825756308024931611237091305195634903797988203906275377689272114282055412685989159296354861247117075349571964061726860471852876733413268994138198104855147798949275747063591827940081342060805713230027715834613324476499988114492595645905473599922975085210594906560853782074490460004704967744178653130182148827155556302664580475665528316951709206143740626459040920454461090929510269389131956945545730049625580856078165493688102045767895318261168173261654999838347837959288459755044063255771995407483574697724902053081923447578276069338319208551624934878411399846030522093369962067606778808991371201916387970802806272967698401989339775844416965958101309329386751277073905213492022480076976359784716388619132069488447665421137918972747022022755477313376835450904378071919090849887699008299315309388776134374183397339411355199772312157562389246218507952659632725104691685847162594308971278202613158215194277454857707988582466820706631688310538640653691839837038701090082731021643731436401103448174596502300941113623969809884490570677036799700611279780927084490981813027922863620498199215151773476693655174041737258739211206123929783469765612116233615450746836683035113083487204970072817962985773236551056328699537227060704155081881531649943172458885460570546894055105480791344490452998010325544542426114662979788166704342747658149303412183261202958300410359794992990394796643070510932437534957949351477635071148607191398515348557980785232345369311371398036773503123596078772694827065610978153196930410631765752179602763110594972672524344859435398889322073151527826049493150947505035955884636796866901295611256250820882757914552324709519803060742296735683884818654608930565716156821400476148548663814802530471160662566310576060389571028449978559701255645916758231859794337653745834796807496522011904150438564971881430748906456485134281842952709806835022741545332539438063105930981350281542265814560134422540681664338283477957691651004468275042103162278206815338443227787333085563848120780504759463857044703856713885796610724346943368535095954341274128419341616282339274845482623221175214992781791935474297786128191709098745611279292019710237817005779420198926550182783746607704085915849146580854618261236697109349285509710137417048829792072805678467038854251043404388211895198595347306322878465403275759588058130180370234164657357218018817555543679879487633393158294901196572041483239053645097395473655791301633126980020671272063879052499190725498073531289567700538204718473296299348324074004986619004425295262025810112810025425517043587474273553207584936225738980285815980247034439098589820966146399474082814417900543921058315915684919205592483651718938310540876535766694517375453310598956527470942383702526058352186996418220975409765943338107598976941590599925288710738176823825360868424426551194840613433383547563302637960228309726620734458990278278939351577652596871648045699394611035496182203464702324440730585986670779192945903045107754532501616048935175270191782911846437300322967770820064855323873246606206909564572930923791592794934463768202601042892862572603620954913959177152324159257281951871958805944021029072577182154300147355156599317095151087472245014481360595262344135276502294097478732814032407610704245333813566560988983538905888290816862010513713921610296504385122752227190297593503984752055091274207045768079577158543502945653044667921285826490779684367783277532777518901097152652267949717724868856637303982475881563450843860893117755500892833710179642881409196930301631395223475418319062337029099993023461664450824568859282866510891691400157367287758003871187016490939526631087831721321979845840682246608374269564081241096921651441984447339036644587747172636414122423043778884332662674308884424260932793312413025642054638643297749986655165499970325161674557120687675349685736475257614112894365416295368715900861398962632359423445828951076165575059113544649629956775356150680774035904308101502837347507033726225051204158099276543464559229903825961090681633528240933854261693440025929002834328074988724500659114574453256000391244668924358952137473391467910016696095147170622260692718118985710852032719034392689252904696715400890475563851597224074316470848907426986112960515699855070913234473381925813548973644256482558022462905730137499002937968161100956541583999718523820550311482222355801886333277292194433255904615446224238233087657522983024738096829102804347932011751541738175258904717007546868859357084334197644923276889450414355585056594231856541020325807655665279934263402495299814217072726361643587026480402893034091308991166410030950901620246336676695248455739233534621972054008179252561886230316190697404024132808669482196346908564476930860356075055988945510315025041632990515985031769190384725392881382118878618694444023575019771165956277810222159910527435388735983024934920344653780508059716020234661491252483579963418400361558658186451849369602042470228764770861103479236220776767254391024585828903626044753353590935603008705175747193439785761404753157580467859514568071107848548990271383148331866481539604058454121781421632712148973647430101122653784063531895263426389429020618700699925323921676013305487060861376514847890364562333330535183598921680879822878635536502070142125468256818154643111308832801479055790020429203036538703414135632620785944246173512202141577983719293813117102558195282998327522883876425944473829332085364847138060832146752131767266086399348048117609018413187423400967138631569878905883668500024539098002525477732967415334761858216662843596288905967533202036637584734219340967249101163278479725401706899021366839331590482373697427408223718542115803909771577753612550139172735921825196760538173698153255753739060831403807106862747272229957746478321198096992358394411549507571121837749992361107315217698970736826541477757991452057302387729717489486937079561611843209384067489000535093094367627811165690184072308742422824966839653884795462251361718877475003545532385619218560700883655628866054052710771657721682660547079734579353452544248750155076783930780486029146778758341271126134941476038133145908161621166231263819701794037828480856467261018179513213209852336346350953421102339826333789317972237692725251641728646005893893426470943515489507544812446672240306571144214269403503547060011813466803500233132684943732042373273499621640113462638206235284097334379989277818839285260641061006697111676724777651355359455880134698757143342530013103006133723546756669671206584509526318475982456040899470237621298305755884321956457972576044905775086821127603041181063084223489177015648190941974633558475505063342912197072979019902310472020459183651058194729845355666299955474854250995921755023216292316609257799539734163528813042603830088224436481630639021010390128366945801830329099064695842239121369696712990389492748385557871617639316241674417789810711516667593803283985855399012758807788839938512477768982290248644877825357223395806674511878036291376289496307144161450095025595867664977246376078481190786892231966086908370265555272655491706340781912017815995292565407713007054818553214597944520530970803539470464588609329552783153100444741733218761237731941472620381797897187494000986020096167767649830877852426710006401085808452593541646578590692633447151761949589122952649829593031376847998892296719869486188741379391952855471263208096475090180817944429242572401399082549128633425987173486122113224095745565578833056042860639942630534815048180050411656653221823272010422990036636899324933722695395391017445614767897654182552284112955478339856694149201860590723095474527775932909871973012423528695840059885247355513707046936228886456855997746831193661539659157838155659970363477048422272245797383151151844442756057700045626676839108265967813668535404748541808830133503396231946870432687194153327206521047786978466901106835576729586096389342787935635986392770265254660593315939019224482398168595448550614768527471248051932347086969528355336579420300772540942712197152099310953716776486229693077433043054048689443403417605751864610073130408904440800008810186850376652500521056741956570333461192238861576444223660761281046157977116691972983861709052927657809370458183236274170863057379402160973316788688465500002750353043210289332788296317372506694917188774159679230230920310939633036730099576334313980914131055975981428643712360740038502775192497692615269083325471164361909270037309388347562746691122707063569046907445242808344384102843114566071934928215327965779046979392954035930885104610440443821254468643168286085606499068030894787849440339330097361426727903945190633316158024534209443936857090681168358293263272120613310913045054343502668453514709200720676486607393084866552478436153665545526672549311518579804015560497710236975169348303274470154663118469533734948068076183485651488751099704206349239586780163603453215780269046063596497506359463375904697535805409088099236926982145856298250464442527229821458347241747272353874446422872369342744450977856931291320818943978320484637974820128158148344986102708920092803802654971365934698678565463753986947808848507311173819851130301161002233741047063591079497623923094302349925895497177045580509253472217958605975929240387692015144458345890005685990048591588427020120948057923812005731296913467016869946678342404976118751530028501905510836492237063711881675255465908511010484892412883983245026205736805874375462456488268994140978055761156025136006078441147624335899322567834008506102100428473288098855388295492674872276288183455612419742898204002977645593202218785541567235875108835228690425126780829052223650007551315878136729129581162498322024789418686115218754652900435304942753025363748778146106330396840445036103690794677032503062812088853543736623523545900494089776663356718074322377448471884141510776700290945236809175998929264191343034957359147688901239788246066587669525838856369014329112121687776525497207640705160981630680810711242894016894544358753306682300018862099114571558025419774583217121407537480745194548374222831270840802998619888159123536508689106814962645177472029754902285195217660784611932585733961484469035191174937085146185019459775632777081653625166241299290226018776062464007724412916955657556810459816018988737149601820350819679957184263638226943563269493639621267752635809313875183773589493671036460493487475926028680384683245573303641629176253487908698355923830392195539931913579387934275513967108177008175576086225895533063697182082770629760899023270339388481317888527607304299379822710952417451766010753921918916809748367636533062277878548454968958194571533967263065575854188980004463889027128087232246002373973161116288155278191372569828803823077458016614032881687420126446680347662418057578045753507343516465312799478902842820202309876246619515007293675671139833307576800867554420083482497397587149159418154714133887283357329703130465124963609960751523886266579955633722225846353020864063596791120532177781815286945941073714505551002543908536008282285778477071364732545975533044107864296165917535128423610957491399980029265484073317142127060703479754876259850433087831465768824728889959819776930581160099922185240303200486965508974290316503496373857944081991215229935830752170835896056365518735224077311949570067677053988453835767914529593446140146784401676757579574076034858702825538039492108780672321134346872327394261133995030582374766107095218080736494348745642768308904539874001481978500012046799467733107035319541582569904412962582016049182219725122232956764640545283544291009374697741653332625514286189582675758814488534892621858437352221745780505886146143303313911465474828685758416480844052837901289307992010817711844725007270933874824364292714454718075205227833975419451998269315085080968955785560128834599929669203421483633527774664370156696244911925846623422995595653365465764572488893363764035952260164011342545243923961888125140662875393167508436276529979975321475990227324110858859925041742276038062660324414632606403471339467014820738513012224750524015939505703856366607535506514204369731759690678714208268410025521981778764004358680291401841049190892753354998915192956698704071184807381071365222021767726268663254669321617370198393972957476184621585925331566585539680022491309688320205588911945741773544585271638449845961834741108291823163237213595522430379917888642039618244561581768397163280671614370601498210003710374437330080963927565095062674926178171256656343693799532671054578855948183301970169612064825900980382356650785618010679971000401884091436206097551636491316671044585471102011575417704283519310360189034299889358152439493703628124475582632353160134015717198997051257895911041960199784380052417056487151748460808801316847905936934554499609478914464397285956529405116139705671642660290282950768504952918883351103556940240338823901802828665663966427095140055910318930076108179964854849708061199653218423606369332635580514476820612867870490603457545158405845928919859256762692006360880061510834125013022075367695722333278503514710664169626033850726251909297845957694253476955329723036628960482519891088867177821401844872580623485381014443278227895513879891553563575532844292380866512745893436034767727236182490057281259439081384148964352334626671558496428264254565468765984121008580976084495231577919390446718404366148453917025466033096046873129134100400024329807158693457343624377974779113165860945203634818283342340872086942054101131852621809090462633052896485668815405053986196199296545926391096186918693259720453190671312657550739136535869924479532123858738185644831857641700251807863883165528917429780543552610803065143782904916305654475245299777431823021729726931441583317344511164957159654053525019006799720450289774225882937464611974158132939210110717308014256028248049338410626625318080748934096467628714427197803523843580193459677501245711454616788291943796173460014100648258789932104841826243410947002517341028089115532535654687759971234379933265154005842405243210544393579260477976674735658550913897361450404207829622012144587341412575342822270994468732566778897931335721902580032887014564152173862849027119902748308432149988407514314902628949879012746419497446363671357442399560701242982699836213090138048413077933090691238163465200428167683762536952941848809118121374512477517612803006965588220839304296132924703121723878919543894080568284815369831688594531270102818123227258405668831397286930836052492194359831823303923950303709152742305791308589965482080483668327178003940049707631653546492283043030918832895215229226734093817228502327510918200068681750277112193116282731787012337531999160037985611302526209318150147596458728871178063425342232565645624487541324432121433206743458757878399454266150629522818699302596448021887072900742649311007198358986759278942583121842418626550284748400400331186599175089835945265419838289905097986655341955976365641232417560354454383044333640289737388420576104995318957691312070762720686513149804370548107101458483849220095645359060376980509870243248194454583982694275976555964507666444781279261174121146109618834170253749913127927825000955545464396417358451019006100487204121872842099373243779617541750385857752160419283658955246169809035115904441397071758127842951517517256723316775974781281494449678891963434504418405363931213457767915737640352024373418344764274366733663321376178964359518466180237339202229121240381812026143806599781976063555684124558004369706367359666861974793400394283302270237128644142149092160352676153723928470258246383607143368294972670523904049601100858793721682908555093020523551436380114070114608853117462367725962141525175041012137932886384819925278522974685313239530265119503655000394562747299931158847221776516421569219679922608450183740781406907558352848228993278537988323326721054301160610965913616577667486547031081427233540542488344738714940134269142162212096174428947061241240641327719597233614164955746379275072228580331595349892142245729345045284104982447627259690816709166439631907368744821480804595938676249113400264578064197142296208966237708780830605184388353151614373600427261347529404791368889245059543718597678786690992841631815881073393849610568684836766611009191168572375700939583242758769918366962463646656311377928117893372079273067475763726028927567790125508021404167287513875635614821730211981200602716851247891814757037397926884380986917650508831834803663880949773770406683343932006121234118930730439841249997179203539102169626448807191116709579035958519293088259011627953367954852740846678635547900809050735478640396132370319199583060343470316306373866612150517157354940198021301482280931750968123771166910209375091990988311833736848606035308830850760642070790524004795574847625909542084572184488477586457639087051997131135922442494829976127575948560336775134896940771062362129908942825044317737249263268464480864057240255590025246528338309406305304513181548969063980025665618602205224083981880857375169597401309359573454273338949663032435856116203306856144051065098177795162932392021710499258772327158115761187583978482496795765104200799600619129492748079609764298640048787908887976974451262767232385346091363165896989448359903722344050854039619966428570368596203987724369858840944876237299623635315174058423403809081372560090431846080146617050890074591600436457642055834556045207320255180441848316068258996088213548562035269460141537370936483890116284705455514219283256949880234305597021693012776002767929463100429266677829118259484127077264052219209796427575749271004353958230336389479018857348976036768168816465569900805664399976074360643030184231379625589652699230593031044478974541607599608415502416472660480269253097800895507424898998088645748254154442329917682357441595333597391603039006773432909730766595630638028278962478507216849025382414150782878561521776045273306233293689990861392857583247197381602872962819310570762991537063112522446218680996084211027695862063235042965211939466664138101717064085401776317617946865474378485496917554030751630031632060892279994017400897015591126606475718454719352943380869891373242517941209973092141874836890420135101516115081081567113025413131705760860528279759196959218853120253931840566353460777865398718467817934560577424428888278091370070288808753844136418677270229389855353419346493515216267713659423486496085627102982592265647036949890561012092097685624543472559504887347529377040257000715428308773854870433263755495156302475735245217875623099683688672935465548316948133565141853326348829956000647907933421750278135067382846768866144616470854344794973305486398682826026013870997562328896427521349943874733132461651665309089480843807726033914547407350417728065004688317899373197592415238637823158080523404490447138695754151003864683913011352387558018499565434259206727365839265045120684941737727703126290919457890680153111840279798888345801227820433005743016555107209163025033986147447027239053910533660422746396751606303763071142433104274155174271078563332149139563776496033416565967595056708064127488445148850217970385248505815974712523135228456008775206229295966666994781168823174067640612576254717384408654850054666234745954357688076049107172429613296288714863721930369589522558568389696660743113429070755289407949686033534671835882089377315366104012891611776133089140316868329229800354218465155513868592340243344541884336082134154159263750490034901858204651006229108966025391447874026837946538222101801524939198684963914180513448273856815753159030696806628386187076232510963161571288879378838663130951510175438901801146910036895557811779879558787893049558069203773385303791758633152082040074873655812539869685004028719222844895123510489332785746691073433212535530655920981153643531802597443223260818018798865382538642766217577110691989062416149244081623754959943288916316635175292183215771076065390328031443663230358511723809024675188125427139811803571955905574684519819781460692065700675877109948785659034661993936179751372181627334786849126666914048672949573677469588220240489638477472102410966539499754787100990950366513703030402240066418795143630674251271519681108108681456882192342187431282799469936607288638743863040136862820776111877191992214136924882776973152672909522965092986638076830789387413197215347913141634843331241628934507926456177318146571062427873663697307074470189079424306042630731829158208187188972896057050099229579184734554355573362678184851115040975433703058677710325351387100095593501127075184580477796423473319528058546936362173801973387222714787827757432363830348913037600324866498426135177550692748423669875624027590656208658401134739488735512441316170844334554832255958150546088730408884131361776281620590951829027997212615051461453653932108891857795235952460980279575449347374977445375483105781992949600684565362511382724125633130907717585400629596316008164881341810685336625954822552639615719063451817779452076041663108713971091621008556755950920996388318499328634253933164525682321831834887789101102291124094382987500435387982923208300573145435227027886978291957548188597300466911303771771982633141469270192218921199093169472000024003791638196475443961254566448259796004142124419744915213258284480242864121049307431769870238318480522963962936005605047330263830622941346631440920576566633576249047150314660832010224694309965045884816399272206668291040721968097689285902877090604967143520392014336713809110364294156147334613159469720209850736472219512076087911044471087005849676275223469684867077655438658854829254083460581641537839960570088476897632935274328089231003199464189645082187728631979076475899653690824608616051131939566427829662236937486941638707164409495810627955784938134440880719988620236230910865368704840170276653252395979209794578234843427607158996076933427214183125129568226818636023782307507071061701754498104093402182996931519018379222801911726105142321815820728556699616314277120619576181281376897486903493730759585668135146551086714436765292134529825149508094256470098532663968574504656086760667561258892408269861032036952578360361395449776476976965123150756515909175965105055590711352223592626098238250681095533224148940197995344955088154442874710078088436701711456332543479163549748691279354182141958707486513179527256499037180901895180470286761348180081901137078414885542877826005718658304973688270162948020458837602849590433634790438784108761538080436264809797129887370806334645868839519035848568974057793606106768316358140562638871525749796418271451354197796031199070265952135592958665929278462339117652173753921264043560580445827425351188695435028965033520153585044821219606142281471762154710533351596963635406030684946128054117099637794163842583844177590641209558149936022470187677109990511253728863374550220490412122243044453037682834195803391862733407604860253837168545631584412932961089480672728849561376739018966214296596487236355079855004516646780369734706628790955764991374603939727715503288413332564840762603719745275292256134460411089421322434261864973010123895322862314475629429506873003637610133980975027058746665586196603106990450315337365457067529831208436023833146017334201635908582873196136591484183481230206309861016732108910120368662742897614059215337643039930845557664932320688538800491115027496733706621822191016341454275042325413993856744724230096068383261246078444294077057082053989700956872672225034615008339664520569886826369445769858994903057384668676430345146314632041789918314676687315063880371830537695287597964614025710424855644375054050227790297333435274993056352956841284809466568383858921249286397144800102474946316486987881665627682916277974005748134427050282430475335734903254657607326496739531767556191255187671949802376726625400097791963700166531535548001193740017487579220425759905684035641700307627049135391444610438467237088405288876376874972323099136693562010658359401615450320248190705552565425829470845561879308899089383705620119388956284931882264776129856642396363135973980920950125785150611613912943841988851164604509368185401204923678855913970092575166563062477121474869745650548636455906970835534339616353700290023027245488758184609198235169012005894043858143652329564151165115358767339262760703874611683825838037903549727885058700209832915289690909821915584167398206671729665345366862729707511239350652514553898583918586135789143467209186780257705663353220917419220161084442408224579383389868484753998009899743666486997950454624301146886097282266718652942239882011044948945120683169631125837830085441538493952799677676807609217547785294970594734209175517390452599307810682524344741414496187202346328884525565547977816384883795155374484811855722665074106678411781879169848333044827935843216437949252710569213947919780544076682935020595224778608256164081519319181494820639063155173186867715512089873908617944680646377525901186662277627956866974993862530759720775928192110570631032425800592618578304246126674829408804621906525912392729286699188946788796025049899991631488237769264253370188176866366289861480701642290442320780934177121712104587130840446317745755734947954232248465462586603559045586564132392488329132274887978161302801173036267084409540029206124124963975059684438906047359605278403592035629388405155149116971899363073788537691218388544583241002055352250197509658432408910858695129771108192976954918014844121376213671396801336217188241517412527932010102898745409280441588185317508951182624284006591702614961610493079612191031888749078522517748840685527391630292776471436507187686943729007165112484576907606804573337627026229869002709290075666168135481382767740389994562867432345547962024046795199247322307661594658565689489877390142749672903936354869582523926311713477346379545199219070192087114801825136472717521609735131143496444778730133142634160088442700787766778681995699285784819787218318512277577359116912584217087142307928232816534207631221314466114095696526167399281431276859188229903112688992248088520343028073875151959240559707876753112452852239918611485160216364453661312678579299494785524890471299228149157517310076838123124692414739053756151605164740638294215799693945209026204914840924082696537078871659993807553299008192401925146800098524037433650359676638836917555246491696859268350045105604422284267136948142897841080620080197075760891312724471885651623353640140601641745278448654048750629010354191499324912717634465299814816067069923574549881557354670970121797482430032032171129669296919671922417720856608994595582302002440543181683205840984755520175876412306445047710554344530430962390863591464829417105783070165550319907580366259038229097799997906745082068932564755624174852902692716721696283060722036394803789087278522483006689475558502081718404075430875762298835893337998837435804660016793569749259317041255256993707867488909035912447269779291607027680945933222100965666013878452510780602417631500504084376961870927011200180382008060904320088311992143249935615381503234888167299664593143118850554412177291892434302899049915385277462595389461463490065441200673056882972415521060644581826886722107666084128751031435494092940483233633298922842286440355739996862148375903182008401092693016701252716171702674767320391264583752325280620713455839434413431650518142375182227270754483159949871535796919584745546941951612098613865868217141322780059223963129769089402643826975317322409972815539787536252117424035441830377886202893946856404444531874981965940775503106465829439947770878850598367398530251959894030723032186717803276330566691829070426085979827961408460457482337066027999175380797292226658588261915722537227880543125804487128822525179499024471739001421435866994980208002197295768743577965067016902113706944964983908082449528197460026095066588955976941642344322173638293357633961962719191462452743089715901697022904436380756408024644981785725575798403741354776158598222059009130317375743570894965608238881228585204954534857616251834219710223881732498277180474565941919743721637728186460990054408255574277564251282564389497798087136724798495168558317936374740945024673690929059895070854298704992074373461361045378379424091531533463223201442091105687524400584111446642758443222681632556308755345510407249852733263425799923298872616713980265762899780997945359702128741171558799605950215302948262961358022548377768031622530263831785558242358394576339332300098133099230386180295325978259140966618308364882763610796326672328671452822512421148113450368841154898018078189901081342553824478499080011580731445198016961536882643536632150186864864245847102948851168748917897347726809347584813600177175850396684514374967669122990427704342495121936955771769268571701206515924576725251818953867319568967623417190885201698903227552907192854395962343546783917265191778499399856687994681071324558177029676195329457551341177683058386150307916519859419861745272781213563327052176385253071564963543449865238183720237805658538147918993398401294997119352991637540176234274382708411659944676931702981128513860176398194401147957761664328177229472272951132525587386457761536971415810288661154871547766429826115461892740113183236736082364570042448080861241118596260739506335170142758679303338403041503669805036913114691220203964003944377150806428756282106598150797441938345374619822022282491336633414023457313556610395738322290675592958245897652805593518226456430848953366377052352030569028368352222815939373516373845867926066811265224705918540220221469518177455749548429227181737263881576009446866065066520642954726675413406935763807783777870528520075444634294842319879599010291194210314931486107302253656034504824689248624506280625950840862935401998017366931038180626810744133888629032460229385717166012390793212457698242627331236916004473272532563235197150791617522411923103997116179585262366002716352360366936180468594112130556248375316973769429807672616764217772712850873534603462656017132041296175038516029802911130730040971643089510078439262391768311660580647069571708226153127472100197951851619802093664386991424749878672439454512626699281247064206771415664942072306120826179790182842427180838623153262990703499279273255761051603922674525175838541113833104275937897024434852596869155420031070651438439256636766660623370836093243627286355336264116438435319933543202954261157137469809660055752980786379735602264181870190851750599755560120850680859758858168194094145329552870276078402479480805934106133811648568680825120419712769021861898730575123471556243476447806955830777810037834516204571529617732572313547249891912302012729313911133661404209193161677517229774597832020270893374840760064946946550614950536744415240127093199652926309872070108163190418395172504031596507145307525737313400919077524129540892629782708164578391112453195462684682738755199597602848001713556711719132636601454909464202781704344266309747651632136954874572131218877253274036735969966324172209023251451755762596623513806972632428186842786339040016453127837183621251104979961218055026074336356641152659792917030827345464530222041164126328593219563904884838116110660759529719866838486357637586319596110147060684038130452728864753300561504317143217857802496593055983399382726793626060894780395731046622852314988852657583567829125870903346711342495266011748413186045376448731630207564506704102766787331114696895388841800487333203664003114016726254182004964265588021071735996108547503544820980723402483251848744170916328864438111744521284571779738922135857579412988190653112215243789399697390913985294449152655988501163350707703410267763546184770410594057988140697622017512122627826898572661774868977323140885344302333772757079132085909881589697936430395843410242888626925096850628131896615412821773390152949497134013864124038154132740292098887605407619837653027652540262682372071491067908125135803263788505695498291926070026380832724005547058195117997026131886155842162727072747914791321681130981953703008908617707004636606938398631765112429848826884523315435495185168354046733792661011179603425839861990949938151774401414846915266104038200376473785852869928625667804215542150711648626242327842736341844967734365204721513883607413627839265032128430086778546712452608456752143449209953536477914544198904915388383013377258966859352366391809022757825790168643130370001835238131668884781925239426145263318252056971672878627949040735251436422416454071363212396903479973541102431135598340668067466145096182066206670395402380425124609613373214253540536122358471766353180578558345462217286306930685140625900418276579498019059025770867225973614360017373815677968367780458106891745054658512981645534147447044954230730004543349596754012388329364318019103281496118608574646724278426015049855997230296293050678508962000127577229868371560910328507373468483562372045775542916556055525777015365606933941066551567038521284713826006975664043595659336563509085708591105803397384672602483646588096049316515544199616785514902511957811366620864404671146724509895077592072765093024556281848265651588114866685438849979516921105356483647989485081890247824897794988131138390479761617714954359323275295336551357354987186061234627602654536455164684070021366025232028796330666357925080226741831691544829034247131283538465886224839624537603432319606913027631391598996088514176549460565511449375203074008371850589123434363725101330198529167867776713492318302114849544346473989819976746745394098592966453115439851466075110702064038326904489847812376849235439836853182535819799139811613694838602067975771602577679304240798272857663324091794418900318854519120012845955036432436665488309217645788326308360111464995425988360633832140805689795324692566314395816608660828214119485984362124221357305033264691492820083939623732115380295254080780085716576912309613538829076333329370016440705388362101376066378630036916728473926591155952979090486272690990076634111564365612954638299936010223862195946872589078792085078830378613221732389714769220535948171511038952466651253856373712682258863442951042365233638174440035928342599410092482141929301317434136165901440778431378257529831448591008787085097586256469263069888079484674767292407998812415002740538219870175001476225135194529706567630583301628999241914081941751257806671416969534995896390166286746841984667840652997448158957749239387593855648702287581105176840037135203665482386156379254192516355432070060231463054025009245023020163501556251349436700083388167852549028270862799182569486304843828930287058839980059407873125953146431571178601200974576719671253190388372724528265141148085090085154918971257361446539287704435029074385751091896320158755408323356577486140795716394979451138294036641671778476097913034572011432229294833915567996357973507403356045508097916536988796871733665771378692854257022407977454646750966396173293346636720028333520365313101158236724644094956661670049646155578881061354294571136920441114672284662457328079591329666493661282056488173957649331544144120657760029100096559828270074182840025574481287741070470146418000407790137619876300758373591200585437716098673669292039729696168947269608214935800462443005259221305631913813046557521081115632549281379421636444353496481792847811642215423659768959545661795128415680318019976430392008260537936980679764981893496484463339861830915832747178275534122600502247804659162796883088714244862662376979302209105209334876393838158188046633440044036679943322070803822427136747547901834690455927869615249328821225433857026271817366029297550191899353448885197333545624950684753159107311763291192562246872283889795070192106122710949495203308594994181284225391217820602642299858762212428273828826671371382620435595462598275043834081000783907234813170684330426385167771302920045051875269711730748387332731312030165000993215928553672631681589013111696966872901802725117627709503982075593706848079920344187279495608932155593696381773894279234377633794937425752108047909071527552599672748420864608478942053181078808166558249333656732121911179077962627206393956225534367314521335099925225202722907220551702001650370407405136971478680345812150627190785871023837042971338328871611003449421671030235242822408541133162255527029015650026348224353449057469125941956975025445323269735647533512854821499685717202536502425592541935154325528727488592925410008305958848153627695120411021654259480807402561631289091216939931180030250830833808786932529119453965522160945576496610866471763013180111120961720706502206753642195040941849388412096254843255443209859022841672607514313704666521906359474599783707716512056463292013068824444546654017643275904073788411934867691352975073881905772813920604868257047336888149070547830744803369058942601094155591313112555961820614476239957832565108650712461499630899416500316737557596703894031681604425773944608967832121431232019784283671829947858996179576908083168129530659340965766866361449981715099049496269795784905980158816771496443722012764930007455577232800222065516708408027858121387259294657114315303471023404966430614712707933527974724317487886082078353900795106200811002106000332589054211982730323285729439460880263130834527188990361419374508700454776197820668108362288027756063035121157304454164873502425731490384542534338247398683146441107671082250713676436199856538230854645294549819797153707513396383311199296182943260056645288881485192944666301926647874036755315483575369659830681720705340086352192357603763534296271724181337028136892071020853449605182168103463782163455861648471361639346667934994451087724787901714053789264584782637697557199385243075704202059234242882328298765186654612339322968460849219590584813155030091858374459901133494546885340788953989429030938212714306802869388184401540280178120493482469921597303978524348420164516140201837831904087526330859150549931476248760824226581824854095264978067641640611294412762284919377105852819072740672331957595303153745978566215379673044925366300485801729244407583905708540599122593947646472990593146865356676665537230470645060017590744135413556480671179341986318289590749895287899298339213280085721083870172547702460476979300517822027702504911318228976827969042244270186334135445464368033434227022339035275303697725641183515409230298602467902544203005251495635810645868109901875391102114993157469317992204635420321101867450112583333104704618390867674208363294908413089768972999596793897993005948305515017897403387363533826249945040942652369521529704458545979292216999475871665466269386798967414175898829173026657411066319260160656559122732724890089035133498670429110931706360670821819428937051694448707345438886141664794503942419996739672291237059238548424504757434612904279026904926373180437215729974346895566651826564056690630849387757286369914236227422482805761257873207597096408183381433228729265796924433945320126659803506379455488412820068946987777459359340216181141677665320074950035442176065727862094698122652441234047411075480940276069660229563501047101815236052345612179545444759148702170073858034988689606852825748241691345385448817157230426991275306378716597650976661702992097902539786025919272869978300617982909334312196553713807125795256343980602768222165473068491673743089100583083350707379587059817565310468472981920220565951641880634813545631418841378961715487745640762114342121505990505479711432160428891059509351283678607726772818298757732842265685017821205420029613799223084115917051190591953965303827420980900229887555443866639328645150959970370226944952557303402130104640933921985781977025083201823062635277107077139897877598589760905547410993504997705674558613984731922454190408044152497659869241478447751782224951181229356702274793770702382410860836972547659064562443301978389824161341027174075058370412254200414829474376406556138422835680151560555845661371241674471074310416729660221796883228924787729635290397926536866351333394846879223646986536776124478098298590045966540818773666015236489827121478680571350534084298785696486133330317724418980243657852479864476024552701076729788822014279337265159942240469363113911569061921866036053961830442275817662525444564829766389377622745957676288546249546011575521640303295763420664883822904717951284836312652927142186303772041225267256981767738526417980187137484012569001799927715395378411143304416210913805148320455311583398492875151158728791958968816671996065363497419873568441048031205128740464389772488433523474501944495283998228180450243729741535698914146272307594501812349061340135686948408878633708957999286776800877491207495086878712048263980465747764199054592072910079371695762124671110824846783416054579831949972909832905416426767662115623914141952174295061882668087548643347280125630442970274348599633713047810352857215852056959768427463550425759247516064687486651931089749625636127552954594677805874624948194248041144170796319235554301911944482687638425358507154566142556623824558144116336155862967849003384222147961202287414213548240607228935112016763976726528541747712687493578608394760063361749164031830881851215717782662522376553280654213573653315446460186706730939175800114257563374970455147103783953334238350749867903372117751692476418708681701756027481778273034703731598632150621201639641694763616086850557992646249211953659654399221168004245413731821768542779353769456532506359724837165835873970533771524154656457196032677497345105123503100848914857789215891292654355748687084708725649831556038748263588627428038344096907385237406743541548020597619801518655160316458188255041530181328312822824631300848245032654842450858250583728339493293820582361943490362882741855914445321258260787298543770520019881457682302782035431580155846122477855112441051319815389090131899600892759858513459450735028738897333929908938360137760341136549067981975093037236108200232287781544204104543798610525559115605775631689528823423828944059880827014563743726695038571958299145021373260122390613049115987486393239723947862553613187569667180557109862597872292419376857672627643225494634091229900523530359413941488944122065673092130377690673848792967814303110906570218289183541077779673515582517613340894782945268607175514215628116194748588436302549584834767814459529008781620207788008607843846184180367933222766479321089619701944229564048840684229767390590407133111284586510192986450647281374563177083005548906425865295555501984607867130645700712621273264089028049337001739531847872093396737665244234075549126344469360710474024177868031904996896809285880884511633281683394249857672098424541906678081474714917066211429088947718310856893194164454080135494268025741501750124751077689812330081982386999279196499358982840733408716814408717905654231097874752528823410990039351057864384030764385304073241216235703957899721677472430686542009595089866512284332717621619901168155639618784802677372873604524608200731358326508497139569943552950412019495473672962602737301898444347920695800495267534626125295171531403130211732647431405133467220310156103382558766319240010512380609738516862059717872598368525937243111144500941312678852466220660636985864529121536232902119976561963603566392821670458512096738827943132809449784364346944799273453141165506844829742994105662544276527580898116202443795530529021640822772782827358281618701508076514181557754960773325678144249470753905501104665243122260926180472509321985276121722351831614614329970337162852907362849330547709194085686904596033844236604880302622389237733871608708940469632921295255834035681553761374491779867780173148903143946116113018356043778785760860389553994074933272244930781597220932451947859181591437593776306666809946803272713646434065159344659842393184752253327990890034275719052664107830914377282361356061995604357923260667225918366229319472448878968761627244954584955986933827540116551607632120405707186529602515802258314084454391508167454578756707776720917776908079345614562894589002933404061394336960254884632933699518478111679649743004560646282799494747772487707706846236027877322462539568320480669797737642505217154188036537748421628379022928968009557321607117372540254809568310888104297930213493084746683657360177287482225441249817396414211159814062048039066272393585124411113346892835384829373546335189687714703253439921833825337940295171858720602052916532753358598607589321139014635237932691473382789842935372195587650827607247987904172779436893533818744206344103355008018951892811687139145742187338695733614687510501381913092742618640765608471981564544226649807465548852768600410602196018551778594355613142521124421413480385184456264424398149653559018338754933573953583968689051496481279732453862986064992279814637257986302399580085557866417966406750550945974214907583049816110689574457025165594725089192202319028852108784158429781717706281265052313139609719756328803434160090692849860502129487284728949327332682458231760653347894491530567848894219002073504246033920554432113639152840252164549130904621997183024245887798204740849008106233869174166997802923589312358048806538642405253686198271758185457313065704842306591578144092713166270354969839944684753232485976975162333980299628752487402508007778579481337385716303744625168016027898194940324453395489914101551319154517998357284653741426850523580708373643407688551225373308659172709880094358872874389595519698271079887513278824046311130749577590933959115690203162141002039223242643281993633874766102512496306483035383128947437908417772096929553410245687697243846422304397496071121661347381041621174767940096340278657595938044452628316449374357764816785534126717981830212762177872775258076052752566601334975396792323482174976843102312296291081725259407614995787885924375049478652293842164728859581103424406185485586721717058372260013822004194539873536705396106138506978421707663100848055339493344338038745311182653169957015716063563740865029528934170902713368705734514101868622447242512848992689142172681736504761829855712698548040074796797047480106129052668553313453564620259177672240974645835479668730927677597400815216789031154665450536395518612600817784974266701288918841179154496505374738988469803519956589640993548608112967636263989497441494806691147553188483501083103114164244388951008308330109811841043084117174810750585914833240280590390612191411534873588713921257029794203546564995947104287690439241109927461810477489701813023010880144073892483556736953939172079574522656557651655571044180540891090276774361385241479814256509198930191822175610742466269047709977865223919818227735348815389398830975067293556039396907949073597645579731784864187778062748060508611274169086655496146446398030963332695192191364618157574859608881693033496631562072564961828132005508603238851749384048359046802263816977554905159572703948574404050687517448166699736083791663467131988069195606402549379424263267441610358117733730131797992887377290538910446123553655855433212895520483882733966694295806264219750432612047610791859717580728375441366285482714436989314641545081770679102797363776017871032786503446083120243293180727894216965790730879912793065419344405645768908932776394975426159218286943571027474207315458610743049804911837224919231528273292343822879151960860237793051606468690522765531844186761837073556571159676693607106556775462971010148800611886009253609819338456703409780649151872564432005521237801668180954930966374526977805969605648760465784051774516154612551257088807666809997621632677090862300857081241316738586475033270422477076074331877651110039059727210812669205838157620382178726214671529115162610159152311638805347207447410058032533101619708535997402294520740184974853352175422964356563130740999374077575850680225788843728111855260185672873805191448133174184670253968258930359879589219447974161896183614781568609092729272376100405708443891386292334188663316366704438014394361661177138414348376678811344624253482072715050938448958925098367709312691916268043287464247525252738213510890357442589453863090755345878323978822206483241022951934934854456306777046850136061228763255030917858332325476957254061479810703435492908202683431742878586373719191763944898868500138678321212175291164385376848383458335824579835925432411481582362936932917516402421397284747434500783203483263649557917294859473013933112135539571629301184352934364575119004796609857561105650426538924539632980274651518189983764011498286260163726648588273887389147162977227353881791797467802363684278526855170579413591759391155161666336638716710736270048365745014414044720148681160167973360753146963888256291439323298905974550064803730406122234948320396769792780532471274570737590175492016318556911319678260798646279093452940650214586578591319277618982337230617558921416443638980083629558368128810688319715734921452314006694986914320369718192173625383531252269656420761023231971649811077092749706250712644989333632221815072596504840434471847835940690669617146541869657395214312435851094790243871759100409552224896909974328580143643879690053986098980643512273878726626408296507519388552351594647354481861246016739979091490175792357395682542164788723608182794398401115458596051298415196331095999246485355491487819258443039635374021178446197751817956132301815660654058668440790710009076833309008480211408893780745538124235838158450596752469784686519685062080717442611187284335956264759665994225131089803395238889869348783467998536701790664354796478193477227071392732409977805290511745223246378247313823473797406365411711193173461733052818679543263494763823719149563302168297690123908307555563945961336090162488819148864995536038876613236183655903160966534096390943100730502645408579839929633665294824938356652848564948606155588509196983579105079765267835713532620286399859190071946177340604426074440230373518868755593906905156656494511604336774721408224162332196774254479093963216375692069965596653134157653400763655690407883052446957884980584844153988442285243246164276634595923038983657828386969588724037656953863478512545609640532887637770365512810540333467838387439755872800121164976612130608858411054277786895317890411989425217650109860025192940805496635374789918251900418534634534745930327415994838385630633899223332405894822010974043776881247465742144348519510715774037307609730837413065541435229446765478311393203125971567515419815019903244393661182567654044281751360560513328524485050917635156672339326038213831578412661151698247364434130258893596246283087305298419248281464574991685476862750859520518410474603289804134265429365104658671352841597344645567410395740306303293719636765732470850754546725592505970912245669351379142010907325430961079901298312312918686712322780047380960942066470849200924383937394144474564208807003532881699700102053021716926232451461595023721061813115130510398464347327847161976284446802595244196432747003710735047559787135528032316505888045870687107660591570456224784581754855064176066102469472536359464713280089192750481785239823771277155238146203809341384596349650702278854623822156765781872822694700214982970777014458128008695408032366967775733235709609193842943134516118114893253002663080429865094456613922128947033755713406061916750859188070863589544522069963383041193697542445608766430140121940159172220533304425335993616444008827014014067368828267124941587739212552312718824982891241659613172694400281412811342121591454629749562120050967712942082760634661695295061913328565609583346210944515532856462969061554688808203690904964207158387953772777725932290348751075237827211584191594639850213555670748387863581088584914760703067700126737656123982679296299806409827089045184577807632792490438485546883046937650063025748104277513630196482534396674602131666585127326255559697662056395949081621618283316337594068279952415347178440312374236337844198047487519697509866050776620855876660744037704117741376245601650834126109065081533670754792692158825837761461677651943805545530940330416298894816702781372432238612614843648543295943225448244717113013200647209555474096944059151797732310182464180417376522203642269921585988218788163951877783069134325355275858273356335783163001412498901477316261621491831863514446681426664388225948804251132839057782024275566561896249700732274764928051810501021335817090901583659613076637507188757292844589565667625876769632573523180593506428732241835905044002519604547193869493244411689990409704599835319514637614341823522299082069909088004358901762593600613557221380356282366279452346559772632941488344101149279304240110118882033391208569999797265834340414050993287371619409592108616911456241628735794029716339092272244483589429628368570316320637289545197547890506283851240600333228897471774602268028783370737221142460044416795566921020135057071216265561706085868088013000463989977353095424639869914238791006305228567301406734445538741648959114614993399906429833189268997536745022468685795945802131140351553933013215611122696482875579731419095108278978020715696125634017251874666745361142361013632767237121640821915067015662428829863688112312624774429358261927132759378804489101805502514145661930639386980558120954816682853230878246782332830236773600203288718794148680813179646511058590719801789303808570752409495115663544061524149898434888875988624913777867649748023145382889395375416598166847170761608971507853994339056281778061660165568200706495925566897118530992256151917075436900768433769317256055772445501025164589003850148081804966266675875473455458624540117095833872706193746805397158926872019288945092850438564508348104928017459111699375209551039405635003913739011004506411360556267494858827222248373131074149360374157902929679951818361280866619805322225838839304300621191062853754391009968766784587692519471376780376369208943226707116435290839470700481617818701026026015157173141283691146253084497946527202520118624298119907596389358049297845106179144859383958108016288521162441764196616980024256683352737059759523782417590664784400269260466192155322248693815994532682433147311390097475977123226194706635458741875963602947185214935715738554067118065693147580696567101979420522222193950036699904038112601469415730862873208341258786580731324232148680195713127106336701657864705958498714971846045112774508213166476451555667480824018583050252511063222131879805407950063874830845861056636401934793710933161151454340224849043553830821551407455640843125165194182799392215360077353047006570036370070502422669516878154824303074918226921179929087792266047971312970280539862657701080965839863877390324184393154567625647632847106706211068097107729703265558763685457851009954099944788979901385094213943240898775889981638081895372023058281184302433097725361816735156826255559313795945139476202539337762375890456469837947427252123908185466885482110427232412938031197499566791922174971836193198060366243841008753446640512689698667313549010734895637991513053153657916978544914391988482914816870160393901650725358798309816704291430560217907016703047087015777335478324430360214200798557300166967754233839563370014480330368532965394089217194823054114228349090653949152923254319662011201529152844288960263904813188679793031304009962493203463443603727071703371732421170394788833654197832775916159956992677070854335617410342671953496499134188368025289851197840344745171024215797659725248639838413617578195479180518713121705935561157657030467953255444409472055791136593295139437622701524039865525381779393468840896153514628155769169646939585441944973653090551954895147767393170002974295689703705269015384384835996029816180018335299590107685197492197630099747782902484309736341443191287627423959088692249341002998136765319185403860864502865812271360611883805485596511130569997458307737897184188953302951676059922688362912368829685235411135977790777200749858327101776191764064941128818886422469249417534397124365872085085059246474110034245858566659268599098423679782859617024980670263311581064943489569460344506871176958318066971711529974574388901141381120289418584564214752771821269391487494557215920477580876991213908544802593200994769037999599963684334255209531580730820893847615855930608414336451787672771211501381294159259642830473176401124455518426999798358003871830819096131427473780354334469360361750129747123353310078192622535440867486153918346032060392253979005240394325933601589249408361201111705323132807288070854160274495058741067812133780342669373497072919445576541431516983673038106455456564475718809481211807801125457493967968891035284652258222912851855855092315218498641268667247238306561735290915616005940035707700331563792361967327990573255960632886205330792693094412097778040267439541178519960858785064614150042187663809925881388314963749930928343608101963370704004544151979140395590446750105127382506327628835907857550720716023251650217973805806583721232123260615315482199256213979598713062706494374865919649375400662451424138740851703165442882904255310024702313034544034383259598356022962618827069925340882789687040416744936234427113548002989057972814916347136805721847066144916599772574682907611811091518552704032907935641151645533054767270558203011384347479458591790792658534008818073595080771698639600822267955106971624267594569846563338112495124789342267133440843824737689262969973024204477182777916985618519307506335560109715910899581358103666806167316923276271544565859939989133829252281547848269308656492162616839696173705332370216369124512284752329229717610511657042904132635633249643015518955412129179181464221751422493572765176452191877787736294208303914050870523490178358014125098384982865497386070241916646346229586563669220229021533695120028624321729997579245280870437532430926868347738130641487180493370488732140725420062070619095318925373775478525581371213715187735478755788764463779199652544930801194836995652815938595241943087615177871457921969510569828889035394626108698516733170287988193561802723997593990911016938298872542907598894731737268496438854255632947209331376564855205812855133337211339366672493146784465934617427614914750263106809206857587215018707110843365567437147716257968871342741136542468384572921695063455552743227580168127370371646422861798495908234259908011481618140556090119900105197742794550681165899054151063268964163725202553671772945559214162371232070031839995886468091844563981980654524373894722082295172621521494758175559828549414665162360126814568069781236025511455751402469253954368958599582665366412138487457232905735195841698082498528844103833652948243897611710268115456402739562827650733678047872369291863813943885894329778000948392629811134212022550700012333282110564788992013216633464014255799678922309775034921184844766902390318036544033549149824737385332440521720222469729651479651843827428346034201530426252879324674746170787579056732251172158528197079001694682782307744185207315011154669262998071669794290538741230210955165448547569373398321337035808211595095186191813005012682263717495850775114584233857758164926843861656661374054962979025597480200851982772271854179400593475174698903191650216935114125625244225109190624757526791978545636147925376064723759745758525462012669617149485835079975768604408915951054616179615066023076821949630090448196132211865917112578199576336726799901835999352771460572585027590797053029744421737413138118404338406735796660272383212975105087867854053552306121314793949424608725128853801337376929980225666331783965725738355044690046061166023275211393678030823404272665331891031484662385969644140990938791970444042537972516663095711265666703867442876026394900832605088599069141873828875277154772911932012226230908601305471478820057178556763734181225078011720618880828686403829170521899243730764194318163717645990008311975847752338551423029964217330031224158797802549158268088896120070809034497563320910047197993318468546964963261760443100104741110408783025412590832213823750285218703830445937066804802070068238015262940983684070895905259083487566187265261259381835313233002602986267460554732527586046340642131623745161501352577228544292973469025416256528818443715585479248196277577372165815921284656770743812554529551116501209767010510482934873612334748909610432775280508377973635337604970913528109288905458703371009471486881877686108742371774454545307064535209446272005696394355194440383710804916455882536811898093969444142112721929886756372591378682261357341060630020817980688370750919476799804221261481311520103029748927572356775304458676405686255062880647522294333225702024560087597404383144212458838391507792522590784234711737762042207849383763772883482559017977366475418905437555033122688401576329703748666086137179913001489231123927373691162898707446198354054127996656687285437038019318305880598587633875104995393076728915508806994108784939551994758993261768963402162017379805694312382983306622917541739474132455361680096586283284325861922098864180407703241766693755987151656673324311752331942953078070000023172869272894741116289336991619324080387006612448577000418124567042297921653047890669029493347005302501630356260624793875208224253882116784396287972656896626016516488689821134005241741573626966217534702771167045366766846437339505794659873764792479186260604813083612448606951318542810812035638678649651805683565934084991131689108104655856627646648620198460534892230828731492234306517418947486151652161368072637749293131166953064468034528246625009276980108205475313927300481650120200885162597946711643437562598717050846578021505248452622304739334395089447742306712502144496454653588804563534386418470829366814031981973911659155887811876658259210098738026278946048450885412220493815996085774203714666647375969662283515074457788606063523624335049587599445403040127296352875575682938395193386124599415539779464885919890095306032440370461027050088802560359266993828085120615011314400234199115226410478899924100162744291730442649970107148426103852282238024179044381450993529411372317002785062222316422280938146384994912791495447417696197274371394870265597831140278882879339142588665371110202524083037723474070954062482687053449590574049259726359212471862901020013290368262464001809792433596675364968701217376013067843174938344380701052441926881864666165647535590869909486743256539196684014621832844518847688636164967393897359797199540837869241944827500765626234924525820635123001898876858894017011660365347230391722614523130628412814504621580815976041825034786147401738858531180026918765923946306720030883684983121982749932776480023699923585119871433297599769664007288734747608773448641313453678492324241470116836931613217368785777467434947162001247110882621095704575767897307084862309863740327731647198229848073795034906884829015780838622815060106814650613651792644501481133682999779866520359287713738372761566687597907781655417945603646523902608162178718734846547182479840479585657664299092967228341510454844293613085350614527204573490065228306378778154030958191485804603633502239409118738151829436823008529549801099858103446594600096236861427981038587101490330746015201812476071672494088456701523258839874612582185537428720969577928525826418055808931771459012418417540149599479133874248779147939738411756289847123520916607664776305845695494996395551595707688496577370078551140462839613256589188318340326402579156756934553774793580748339264225825349774451440898562842665215974906358084490812421333400618959620492671113190118700734346357009231974481087176380907487338820069042143798083674676519575404699964632157972852411758085306571113861634332993562094429645820102977532058680141110610264418599150921340729924683317399814534410683060160956068999026739375446275679276315305464732623724673011942132435771943780863064671018045206822593347812299917864340763351386266475972213273555980478853061978370399953171338557082521593863979760255809173473014291999767852198335793244367467662961702158333423026990280168738708101753387476649058808272286283907577282253578400428225820964672822319517972070090634505288266453304727901798402965833491531322891831414646293688251551525435123840629705940371976389807612529918791406636785654542644625690113798080494954794799104597136621202634847211944665430254728815355447256496759742622716443294663929446375354055946042419484393490888824752374464917920516284493595358324686526442801069877100684084512631849709818670309072445354857296944193673611887395532198424701430845821349993850266766372103109378713918170581894149234312565537765337356205194288899999664655006570041722831145012575577180638756571626278287567321774577640233377446722591676270998401783200563289811209141302040946472187791013790073885455432559944032227783035795211909326151000741039580116508628970707378153250480811129486932328858120411063315832309621890364210623729168867574433580938895870337003265248096256765250458282917620499442872910948170074048848941275736928253729840366887039466108902693588548386782054131957927363121452494383324678269744061936962096175857166111329791506156343385661986504701960660515381146954812841671759310384127488953520645974656239795408580353114742785763014202956928369705360054779415573224355046665369102105268348585477397790849214821843345413149001646081067308275972056580636248388705646623894066246244344074281009714723233149205560599067731989873105017687472463359401472142422931684881962177063146377027318372765552114735903808778323738331755368511454285257576708801291222103197994459545117045517779268727255550928205557135784733874456681767018687781164902187408678484003119358884209050375335445605153239451097226941551105572285427086197441296258066891644808827977424294808475819994256576283325486858503688468197008466413309780363108842727828061806648021616002108416853193360300580124302312061152723292908526290711590592956340887954019096019470273446503224268497984887690561426852305964318793876617405761561825279914207044290476837651976340992569138363406371704714772754294571523213519661800695622480677945291705362870050857525437669884610702989425351745824933663055657937583592850310091691392824450306157050247895012789665073611818724174388465894241972858517641556497611159861275954004499330554696213222249903283927948869455368763959929188739786714157121194684624863722588127584447358326055256291284021570814037530065369553732986060619949989243571507354524324105758304263608537015229483155232442270532767196685769281036402587938553590607150833853534072010801692676983080188319820223833692240368716361332554697274859162739225162468764411117296475986807450987615671500137231609582915880488937091904329430187032420009059326892265610651060129857839806135806628832599172762369473710300937797349003863147612523805516062046047842550730939443663578239501304608682162248515543046650573046534756879685904155576678910852603550274980825577003582192946102843414689379541886667065100779488176528210227492848672727294688310040852764751637453476543420832603928706876224420685586859903113086841879653308933924966299545858983748596033890602894567163575362302847979489504951012302709601808048908207252732151432806101406277808934548794097769380227921809650104787453225726265737467046158403225327684361972294661433253237566169390513362212321464345397041950005342326196362611078822657420523749353712375533698847644533015723044983281891361989696619868390435468252739741059148521449868988193648891916838555192099776437338395617193319272526557371773511455781661287692862995663296058436842882738904186778010638158274814668782264339280415539662693950924576826679963180240809852359925102205155256674519719873349731278190313962360073082758108177220864693361306078053845798612988354958044921750349723146175339103921451685058749036123655721482348451407564123228510499922343469764632421619502678302019029343632912551598834168827562645531882431775590822354921786014238686865737578447680052961302602346335559560567916879119035610761134619720528826572920326495720944158452607954925739157648436072985824419089758712404985453964739820987647142117376777708916200725905829964863740528292318829878716622516891265328108940953245210324298472324926417384101640554183700897212146017727725858151026240947515179587075342543780399009764314553116105743389775895192858842626792857836453646795673899197503271116422310277472727703609493384282947738045185352166150262443426039691791462377939708978336299415991921716493764974236694145087205596299329477914227479865881063878987750782487660243850009334650807881339782585745557284901663754846703014973011607136151536894943343605130828540832803183343175114896621903681369817035319538843855230672692575107205201720210027070255158918915401492434475452253673011535899119867400323758524499903300777118658871644277161317530960490596082703151948426182614345480623728506492814915387900362031098954038485302965563415754583338149390459973200577534674496459998008472539470036305914414072093914933763993253293103286511345008152935041479455155046385897064649582630502968845192708086835600833549740711512196524652975167346829213104972716232240438257262327764716890649419277457325093527110539386161753353264250551274154970846150306569019814772314136385050742091926407540843042160988834789819692907183970437794452968017763800485162033735491980012567190695417823645236368805721741141644011929216568859783601134477901542140367394773361671421585828664007135397566730404064032825595827349500302365059187398053687337245359691335597239288291619531604491950615584787321747227927987446331833142832291972416290264771532942766017474073018132938360364925167042762663007611709097199591245602471904734072670441201143929564623759525029699833606721941618884586095175274768143328547003138700892797335783536131242829386487008902699422105994843510309993042828874617903778003167721078012148576904597545694602689254721117630471977630713901098612520823039170616455957538457259855130690837615760182512280309922535956431512258500017236107306533534145764576244234699520321021841627653044068065185951382951087761187660102435561990812301216172001621932742696348834081758845773268211904805214420588699018876452557787990088328394457401692624050160035985335038332302561619857789087724111376997067817780871522602303952745285368784007233951114831540408726078644482418210892645317930699982939406969336609047440341616961556640120035486397661859614268605845419936290405304599866731047001155200262707164863427485257688040994269880252788493456467527628084478233864935433444651884040972657724763257750656506999057795145119402001472925494274913784622345155303420524726429582697803558114916784034681743793719314450865150421540088111952366440013461737522516402771305440801141644931178701652020259442162006666183560629436961950414302584920145454260861552212671690118947575915337983736233462677149940662359042530256046299644624426264178918506708376308085799881917303795184698930600329338839730069804483678937958504074140448957863675639289798346841750695740039922666253163985892953831865533201773082167235286614606368665124845020508804856342924135386621729131248226295898955183562344974544836661067331265383771087119971998235638122423695487157765787899255626554417921096506308924811421971945077687677267851820652292521104097697292781876946766755261310902857934817104001831164481233922823578512077843487163729097501417699770884115765714114191166991328348581182966525430122296998547797654354607785178993233594772122974633558736253473030662301522914208408115514001441508768112678079943103124409094418436014409443647885567437458388785110783180690729971117989110105043517565593574695218626329104950881312020942272388374075529879356049794912870610096834980481423340915145808913927437530507112465407986297602465988445533326302472760798574986502326495744857348770262644802531246670334916973545800211134832280487517188232379681611727936003345315316284908299241839656090884135449858847504428096068799015922011978808635345895259162076211925211982178946332897654333912053579308004449246337430766698140015900609224791004823842023248694033296001972304483193825778912058008015248434878472667158032243196391037935665209740746996147047707589074344555799132464017830878407721786173275896888603709418466439392567158511197550302367866403826806462255351818982604157244724299934976560040533715248705502639554008793261300025061958131981520132460604310106566765283408864312385825558654823143402195938309557979878860395090348194945825761877473407107001531543267284223347532740113328282833612765669312014591284143356607638837927994885730296904531117401073563977248366387296162968387263212851332605005266915215396956931834989454175996594730826527053121110369312792336815895330985882830679645147290278092636543115617734520919631217444294099193195120747012121125801738737103580709523526137891315091177947814267056625047243170556345486035749603420549304537370313228430546912422540376885327400961173553157430734112185816279556979740049401801260460827164723871998702358251472332926732786731893975283456585790282448859278855415458257102262297158081100099040391445415484233056392902264167256236173285968458941949606255855725502559946181206782149603674755325710181168247351724910859822373945495193616547670578417723606422574502350594732994014124634654857604533745915992326650531673743747305875504697747373126821749232031889343853156994978775735783934631724451715718072389036535875496783053644583085875384687251031889834047047576381888671131597349719285816474725083011363252132703824908527778660852548298605535209150683281935149156064659971006126551034654794334512653585440926469267503517272235045042227623555681757543481373737010431757981899029006494476216470022972776346402703428911003226479997252389822088835302918698933916482191353835230402255391841018962709830166422116333100687424375650144305008580464230271979865851131299806916864907798320996676618913276586311835505212958801776217963106640483300560769169696488026883528957548244153635498333954457634374602266666397368606119356485925624024288104574341816348111788732138292417463321241459635161104338861443322990874757571127776969674751862148058207974028281221241010900130891102236215005015026011253118013023508295562369449089736064836386682904784857892241713232821764559952586383220449443901761090526099111038330308381780217118792828262972458943415164926764684265600510403968153759997210136111790741487498744622283514612965455553779103424244690104022431965116114374055561149344292524374663112618752430734834069490065620918253405910980989743867476535140467498712709661334251937503599947712604983858631579442745931776044177662707914156035681167053916612232082836548093921139298210671835754792969573452679969687661699951750567190423517557167733262328302194422747391891012506348847857607448564135452059508637014249958021457266515441293875092418644689812378459300661184939712535194490188321600638991290087002079448735821537481465565581581949176269553159291336192692037283014673079720994008954432383859851147386212800607254275045247947618140350015281101097429845119745872892683510734108680001880626617770249493637733420871485289180226156683701826372270071316764407450510746090301715929886429701778312134353094855278000091110758528589419565009632511079672151844310474788016733589615177827569133409664433053757849269995254471534457721406081743851452433054544221494722426873966350659114300812163814924646022239403781707096872586756504695209737385881770194613371446892624659435673847966317682552907254621829286549382912356445385941488694737370836518609670728162843441818707794771543467984146579813927060759253500168217734421754015334467401501899350590614610519094075904178222216274516920172593484698869318844262667629819265957607230963673706986159622095238681700534600437185788390131830289738435994541048292203902820537262094458329200000544471332706799109041891446021791475813820788831498065233445522762349973546460158818387009689808150143919818689458915808088273912480716981806568909140810821987857906010265644911213526820269907482204285704101929406899861337335573663104778452859991017511855739673854577152721537554981050127815068857211648479595275033832703805658038547408350344863172736509730950722880700208904959382600590669284982339606456686244215401504936234559142761795056287427975832884537191108686822210845894080441936043731205808666836419664322462528258922029048835128381520776281479480390429983508872734688097923478592574242427669328543654780159777356442573723891887992348520116929609031914339079286791542340070156916626248824293167997314139104342654773764130672075102090564325296845853410121800937541781279183654810666116507232365591736946357780755006954536815543338664116011429010543597459737116565179720616697624377098061975330561966051296987596519730914495481647650873829080746239169242906560391204195832521415460349297039262451004838442718431464158599014798422687700582323475575033929094524532732587851519234222388301938029609206214365541648163768014833497568118169437432571921938122875227178839117437272568412280150832348231712493754255963084284477512381299404559861229477023573975888218661866346294502807988442345975210286284954916209118722754538548055291968244671865075800117455256672647002097141699645685512629764344840561430726034447426135143809424022030186227604982234979843832073231436379151513334766311173266111433786482836809592640502148856477849081832776563679459108880052110501869960764415574251476779406350986844283289265543908913283666196777717702096842524923276124438023417269960502532730159780030578200515794857105054778781118453395533620631313501514389782113077431367350279756856852036101019116520239295701387588604933791269947879012971728683114449215109975951879904479848237522997506047683796195277685858978293018629116852433750136862841259238406444296338563864862803864153958638206408130824587845745389957783257694406795077533558528760185462973648613179531778050638374307937536720645988775648228265893933893272683501892955669698657957967705279152292773570549899468615200849819707407914597598000498960920353113931772758978749391896641995717103902021762039461057806699613196264564195565403338233231858955132151623385825083213663806180054553713095084003351113141259925190101726127796023107971003988669804966835302683167211958063418815268365009144332330797913840776379155930769774798852236530968260417979937323403426814618207885824433973826030691966648769075852957026463669063157383677105678182334948477499798359605523562377359870457567871446881860029493014109182976147359809711279620544087733691973303800064037290098821065880937186547496843167775678989582803180341781837940362787789571640058610351295085832341501427499793606610299759675178892197072796493855557165309439613277616366260611977636882066267833255734617333579435917608363342844006111891268246253558296727770390432466912104136542584747861285170441710195265501802167932496934628482096730908479552823417614184332749881473917892274120390804723883419890512253747123379851217009791227844476149814550324366597260866262862281370457125754108560257546124589349307906313979781257816613082561042401757601683515848953523507466110477724970048106315773186189576529673926468943043082095532950337295326871258045695251236682930359189463338389546476236798522989092196485911920104773433338839594894382807031777207869810540476909852305444652379115743183848775964511991427689986971089764613135410241347590851754318600921082878420509899010025085567955278233068911492866140899010285976736954566165237824638964481943925924611031199622833809058564343369900424265456681880961349267575337268421870014477695302078787304826137304004178117922540071491202226234827674444339013051704689171258196321693491855150031008881749355646196490286742361267896793174715880257493322880822498028844853201127386742445358063070920501888132958470224451869695107532969529928398626941620828610864858349592133173725482823523413735680926169117562410387276486492455311863836032145827645990563722872824494528990841742652791739420551501750673797097824685345776591366034565979548814575667442946336435878367860074063038527092201563027282684540527955207568516275298925107703823233542532174300421021340910965165043414167328911935883139643216591320840610732461850312308631187345031924175115280359733649223818650717702186673739802697275017812933551676817432744385983765582290401168764640270365822095414716544968024048733645539631972159452883646206267390820815508166458432912178928253901674289693064736926089475527247494306337229681480475698914572934791669128900770960262010289171905199264935081150944686658822327279990168373980722737705534559503429614566500007582213735105302852612288447957318461614358147078376752272162500893043461052536779016853230752007696148813754987926144169630859514046972381455502247934235343897897188140745144100030898762234018269643927568043430455230241376515702392149570981049642397435411942624353302328027708844848077066068549702129631243221464524262514335845135754847374994707570366766238726812420816492824904998866621475736178736626789623161029385255905585686495879590890304347488256975194237631885789318994957777814116663632171244885078797667405621017046306148860719255531193518526615551126359032158223653372047002257700628406784894399370672829749959042909044010031232592021305876309340568772606268010726062305409263439793720451002675135495212212952076590892707815707869168562039202290452401195616296583177698393042400805589297348386532106646966697328428095218093470822825153845929228806188375025356511279319405091378164393499009848864944099443692539011990849714158603165741714874275581479480569722995930958650859974578634068541736541308894709104068328338819136352372125273543707033793420423526594937199908111029478500505504903881925632523888657665399133994246752332645003245278216823234914914372474430131087910841764863355055369078146962579943074436431516326652358211054696030608782197040723232549389156761563447272049706933053542829908195462267252900861906182346769905273392693456673506171090995297708778099309641424743345062248258382665296584375738225209136484261144448745703256082685808970611563667991709436697325765273462211116467527488590503152134096216970669945230402263554641016602829013109622954396762355107175446783371012087141603057042640888129092703156673964664115249479732832446449307797699962671290802154462302106830463766861039180785463413588251361347843797017151977378373356596704141285721105304024919345440422206706650518856897719139746729333088783812073127256855199511523719991685385148392297889228278085321001151091993848434850817094825427589554217644460501196310399306103385903594950689601702512989012733913192800837294620057378555932709215177015228040527610889084116118425013253567577588485381525514001470547552621336153793721803075280595764249975892274586745827898217522609579479764490382412301905285211318730191778632748225194296552641467982299364063930592754643584176350350214953770945664002027222604531583092703968581181074298371839911161819068651095633099214107745423540528187451689437051278805030916799681352756786927780342543712848055420977668338141832353480492769496258592053082333801784242378839595495317921827852073435438316624128891853170324687750555740594390574026789660204395690513970616898458530839090472269182058420567747554676990315795217037646525067174927400844503709110111170020253677262251129376302981765642447088460415034316964358494907205731892494241407711623824168984382673501324680463169678174788307061800330088265124740909507941438362397375780801614800157443383598694215328402171341543964700257162288848499397697360252690019253222455322176108171775912463069083668882111345690225455392312801635972899718711999564368938836393121472846864507843630318906198029242474477474476820508530173517678529296969408840492911058712567798312213875317213253612806065976738420318103337610596037488127040661929236236193594053685555825981164645024867113801249484293788584198832603847532564576394031141124561424702731206548010046890927265227237019792310123680845908289255385339167342234919695169366664519958364436466689039140942561306431630357363110281008590240864671765889362634643153376663370626953460966107241651759923300756992229376230072695419090385768486663607524601980306033823771434445638965492031387124852457449674970214773287322449043426051025726232483127001804796099831730431958800667255152304507271036097576937331739798705775389742033670954402437459474005041852265114542611744927797715220594110918144993320177056990973288141845624712920934113062155202543419055748620971580249859463104051225185751590819818823188869648014874808599364209146279507232408387163210257395806367794835402345776343288749393174916061690313268308743952477698477590982920919622068668747518729147777921399129192602592506780932916020421031435998228739794414869358632523864784365060397219282904008358320770921148797384939571610498983926261848380256878587120606817609449829244460633227555504124559823250941489560528575489447917791929679764762944859195639282323860009634981787506941575219121931161019496613022607357679386061358876336180622421430045283409524338000196917325086518297333332850363280831967126128303662289516839229703518241412216250746515315752791255830384234316308113568185045423976273588791025372183839273430106675153705493588395878554379719889627255671776805351987913730403658994069973169303452141258648143073596545275805009398793298528495213921886650121877138077932110308482716121928250289907024403020134666790235921486798708161179609576304598849644651818523248295177926890310063042583880689466499458638260679377543934907087074250062221644026125594114045525104700074182075554160129715009181972054415767419440784540840348389787642684799339375641926226724236634386328715528435351400808174305165375585652755716673431698257194726232513610829067985689834177167865007979358653057762354680863110107524753919141396693669818005729198779210924488926987123658062234480655634595854186239815111303498108544316451216821382221902647550118202712771181816356686182281581645362573515927802851841008085044699407754508629587264144488154391095480218853340353096003323619789750526040195524448563402877113742785747435266168337455473338796895068907966056339317086333795898759535373178555339216723957585877588678517989067762926879423222730077999933001732717275903047092783216798441482790375458321606057980615436085776543686273988977064845710202459395988879794169563783824351033766100651872891142515188818142936032177879306647126833282877699372812372575567579484045228076108257070682204659232445349904624866039909840558000815342168844292603543208876707002270429451791854571220008328355955817519547261140839595657380119904029238659235168425010616990644437724747705768385211841750332053323674931668102604321192785188622531199634990735661320793736982403389201125798254728566466035359865125449820509589232321417871018121158775449334971083612956979001999395997965096442819839771538649259888191707954003659682919537794818448238147662737413074875359783341239896558876267085864025637577506541783843505570092992979567287820265151792029701560091512469653274304394255688022781506776011331487670986971001330661492037368129882378622318236567466401757935312109830659267987595417097752398016313132262828904661367508668718656653224830737125936364178381067075445431432260664364053822622936068356571859821453042249308715406653547138509856068358929717997957971463470836372639647107596325357038171331986706186431109726362571044540168478413622079711534785080177149434609119068103853860500069367005049099240252491618349439678915751776501675440956154922250899740272498727447159157230316215619477546044827368133949846950804816642867150407815150373963340068051292590418095106114882502745149847303416613513673620310275746151637666125101439301538343928674919293290993505443900625855486639242346017767424541889642263562059442994988460924199686519580235445562576645106549121669722395924189529877390502434628239138578351326480824375827402369114808564967481868341960844398227874665399842863501970729022246832929408641391712473102329944328689192531428668313996460903848848710561317858679349933004718170258581155070555473429642436669875007344218636610438975745844185895478603923815590822882601621906481298685478612707480186932478436748290319977152631727463621109863991268202220688911310825399337860178103516210815458511987357553206841213805516734391203395946639200512362526366854409745993497007770959701510145490873366696964710806199562881231784115301127024374434222224930909063632088673066127645279531070928680478784485223897219219867866251120995785360960273734343071957706783102010440784515069160149294496252497733382130738707656640973475802807034054815183085899545019627542456771938308099420947592375305208106109309109343005971844519911715447133323697260200736926892764223710740129040915595726385215962746115027395754718705043449694257625726669164942334943286813204906616663507400353982379914814948985041664650074779323658498766295815103689984945627548268180880118656263414017095542735794839562121531542395169011922189626662472005496079871987477686398227718447859279414885776483234311004896216762561555183949015974567556429962748034764471699809111259446862811743470121525816188806763068673470419668975184797184015072939445809496779453801721216413984214784298906120441893560959215140456162940000398005403432801362954122280542832487675037919177152386377381504669373540216526853645044904000970674957999116357266171754581108316341103439518728612543542851843612199881154742769624324061621789046695350503390003541014043845664889852799593055368260483755169130372318820688412609526818758436184270609946824970261329901595599300262001654624628592283045812004773051891275952521233155802431753619613289244575093496830990401793165864199434627220285197801598151180706848645863272976943197425829340243530982534318539375292641453099554632162561595651256496519825678242868227901187661844629777248717804109995655508595662596504964479299133515244064548809148788120741602151613385863883392252500278464333918711845029287163208637979253661836263789824391721213700682431530120136670599089513570975437792356359902748990505552090701529738104718326595661548574152519293523899314037634444693109095430562920055824802065263995508969551591096165187674687893232012462294610868657484587102895393259478205555723920881773643089420538443080866756155183922552089724363926878557183434330511588368042637045415693938400962479543285137870088847965863478604817909202714649313262934547350871613324745859217308303999045786028384648263672870128828236740940401393148197888106022816571509244162956094549620599172796539075109841393548308646792454840725344333262589943647501556790360371064935632202674939833817064238639533162547132545908620314435170609463420157366166098227054139555906860178319549273843637733851023287794958536143296877225115222052014552957962518082299961638347788505588965725039141859577347729632221768702011264777306641008803944403429318525910233111776611265517262600618481157503472278252797724992764261202546970909209743506366903352633189025547931588139969558947715122396418783063199114155186226940821258302167472850542151510101906932410130658531005303691695073806490408735985274618820209572709394517526841611266529976214455827052473702668179304301195898053514438284133739124640466104132317210106062611831459968748672288222191656437663627508692144036746334542936677317295607823365819679761590397404301085261891305387324145459134847440824442108104078664088330520647681849511456723487279544405311355176691559219433116464512720872211512784908535074481265021708245067030654873981312628626765234026242620917782228059646182112603604864874960358178677343148888707037452389789177380369131733515437518122542816444964094818560180660322465824180578710650562171607047430009367353433641273369275008338237762222034383005722349605345723519934447965577079708997159647220812156597941657186368262524350279445148700217900592025213332724997942212146419257869463999295660252591071915532258367253074689944547873178238071421676589124600137869935455958814279062643099232321041492257780436018346405823022743427743207724233315217732691505555166257208493927361125903305204634189638836958620378237479192854766685523372333705434522945604656763376767033189592561809817666762696622073399303677354445059684068828540639966446497293666552212671865804329919546514352289373529195700510252891434213281512717169519402587472103847604928957455979073105638277370174324091738283159307415553860320933688149496020549951978044804718724500877528321070582581978164058979241211003153975147011803944206055958251137525520425788599427129333780307199448709591068061397154626740007634421663897283244828844572077800629842779535288328141958224524656747006955966077380907237721864997342419693459769354200258664153442174644335000460317749195742770204827705173866267174178482738954627528109877422218879924441799970504962634564930878415053566855963706819028817368303138154230205665059662087988817849287878212337629423279636223119979487183925464501141541912549646676178516476762210251496843328444483805607648044788366506721787196486715029561547208783401278339029311260284925230943035302103327648149866258798155704736290781804812604668612002819632354294421655899168366624843067906065912031076988997461477717402740396475084131551261186156623333006114097881788388883345663068370768306874152552615032761019988311543223407317089613249535423762013631246704789432807374220828855693119001284789777402974935610589488276609576730492418859036334289060823833447971886382918242069277485995351186420489165774723976489477037313104823453655517310607514303366833767099943541047982749688415355874425940337533790153903500184252896346807692199852759283972212631285066603830025586043509070908993745927911075997519140113633953827655767350232305392704744705388302911288309653080983864539244829910096815059689739785258113950292799036434451917176196510152108562794100574920496406904267205248021926727618892214359580249586725708748343682401078994441278047991274585768261767743219008938452800733301271860188635974066170147735719585032944744715509446234139475536612735116845290908141638677847786080171221433539651700943870172115787240015747000340026181660433163109163763292462545701924893737134708240727281986224760881034165458769143557456293642442720669903449222343944013142921009270485067915261774106082547616649837777191282614820054298178777029697484345386908279894906916283479082170660199813857554665560215937750114836680444328673320550070649327609061464619104181946114622270905943745886052356212826242970627723260905538336492243672493299331464933703618531167177332186421979176382801179195383746631105806200005985298875026013155282596393906568023438155951156871387009618609245684074818837208248107920452724961289255734134608192867675974493071394517697834949724837335532570561067524867004101576735206584353119548540433625474327612831551366432000015941698017402829446832663198354794167697795802408637018849946181891824221355713805118326585209691835025146920944123336580106772794627467070502686922106032205231514659564146379860247539696736700089006707265019572232117640886427416138281621255477483204021059104050881259922903023857328408824793020174875859806988920490882309256253236207650558489248453423949428970738771341294823830899950416466069346036683779485330339628655880389306527011196203593079040175340941204705132796024795638790922662583699005881453692284455821812153198639609043101038202826741201029710039868661584383154399853775171704023436416784889317472665077971331651403938188771294079088954510036389261408685169167961397407075644122906838686161117937372681441425504430191632852228010379542921448953157101764606787334170315932653660885723777843469307362795861354396639529118072860889246238124535016873732912186020801600842751653098987913592820819916566918585529706209034402011496422806932997706171088953590880847072929799035311589176373842326228835654767305297389618586389006921785936641165478296355776851583746651447077544589291763710250996037673550340483417723091017807951846281715707214047062242898164970661783271508018814667448087035627821326604474024270772321859247248256508095945239816396077750893134299923865184042331900834183431575844788353884400512628717210687421726535115483116195768721017122013150920492052372815504883917134502330461953731886385581778891103249550584329821032649676456589527828219362578580110203007277781420982181765334319148022368662784561790780906256697253734894327605671882320714831783661751420327428291049260208931604058325114084950794139449711010843236807708999087171870557706093970205025917413678944759634650664993622802311485932688321833095691999567098244915603332803954217313637760786219695037258326403230646229115839753791696300588961797928436144008735599630223286775656252074463934316445113182292358055237262224941289482712357573530850102298861452207465858928212942969842750667830089865943691001340950197535666398938019497254065527402224996616157838722646086278952753824662216216724003946595394434734400299091408830368351813450633092814953340842300245188586304020927466290189410934959960828703384556127251524386265874542651351109209216350405205225226496229501275571064097307008208087768656344156486402718682147244319039979224723379485523549098976946774537754869766167179275200160587329465232708686086292523486369182731372210881020465013389286386110781393055601982574171896606486484702728705668851730073906175860770266339741920341781491590622223218919634247882476937520307725129249237381133881840441667942630927919317861237107516154054599790056218091921085264096520778014417474466972074745649906149906238932983627157013501982533517086025687898796889704123625212993963632674863844824757127004445888194269571660422668066836714021875781138203201252249864119494671466804866622972025126605823502971819952022949574312744911988957740808686582835560843112076917685684797262426684977291965175354989531243654814802171191671270616505384811795418133446413141258860375856998266849541047006461368069039222632407134804496443217627779890127356876157100908277203411842682166893172335149852541636648994087543182223975361875964044719309237727707824744250478693178184512704223468003440969958388177692057180106445546682993753196285815338897412591112577566270533391398816737865441691139416272986946836867346202644928006331631918941571150902399424456750801332595271626299533315211508288337828403808408644473664647252294729882681060477748602595426130589086571492887015067405253357464895771138331768668774008568681552550596653542043104069168313796241551797562121922320171866688744929367277373917903139594319608081092503556912948991297323592258618845487929058722179325742733493747125601238840212685133522601483409721542813269715482676358034785197194121765471955566450597616600932890893893520218614302709836488349774979603934050985261636717659138259290135719655047699660982749123240651867038644186005740116306911330561634748102757655810589514327620558091962266850135842798167106076357948740700157889941388078975880064348256857156958939041048291404529924675309677329127358771455931414548937249993084283828740319675580967338933639784139434826887857937250224240589617438326016878397698428569542437093486149814144313232701862948079432915688491541086639844473042696396415712743257191669753904783549933177364521812697592130857676998887873772814993251620220961246289924072169599184785830674098021647162885705404754103422437982441462679204699096892459996150773646630697723787590723591250674863923084481531838690778032420846481629385182635804778039817217603198454065650310296559769595607461062642965780235777123082553068714029750747266304637459031927838326278262628407283334664760797638528296055598185690251450555785141787500320505689804564812573458698879393996542026077388482802778078473612813677535150692219809927756472192186669519188814658812754991514374241967808798032174845181214510007171650503396882823021999457695547360626004637424240946252820301261958469156675093603505944066057158102769728871273464131623957551817424831721890829117844151272632406747169637398012048776417402845921655133890352539694797689507851499814848065065009538238482346045147198575276339860364373845841617901076923375634564580843518915272592515353146766425554737310796312293568341688504525295536302775181621281036768607784491382413273178802851980216623514241943026189487423428525158716474070624625935675476990215336442699534108910861821662183428821286178925458120685374675660802676754789570209009996553712860375931964484304835609480252151729683096872569472942196387410185325358415150324398129587717665928486656690773974094771094208209740671244275978460933998242777203448746851105753698209982570584932299368392724494045713615244597494877633273900727069599436334717380237219154256859644175073624716881993623829450520104436567592335840161840618459584408844869233754758339818280010126368776776634554934291904124140890999245478198550173209383939476779421802576758783572706419597470179891229171055228706989368196868522181199113222612717072406852142152348797238871022589284378078150540650073380855365688770406895857851461346905146331385384724356514593574168841201838206343490841541624594074105910068438494880841796866572313791690958667394438740386156315171787507313906623000779206270452122823114329115793017164637921227522198450069829027470299572215773584726713719982858605284185389585424462378648410912101173304171309894599568109737683617998427984940770198106591443816375472312960505766677951735112635457546426987736928867657506509477970040582867911459500892797978020842165799600921565114284577996767894542912560694936151555618448001511853983156084626984915927336225995087536792973142973793054232705126077431231433125549290213115181778075370879948552222703629107885637883150927381031191500601996739362196815069658363714150931539076351278272778479377933834399271959477574202244424240851497226963352676365958560744885307039979673372206988275853779168459468219070906911220431097604330655809642928650628322359070889084230752630342857614367240299747660493995543419105382027087435872253492831455766489651652823929859364911713943755653887942084530789695829849182639340118529761214517638718156126740046348274157073943988793898917541306083002892183067789600303014744808721545694878479483345546992589372587954561094220506298760074298964064027505565149750017645131875365280423580965003384964377415781523614394101934332500279971649554615352659713424318899797480141550338213352578187441866949286591756332771912098215115831614063520362812690837670256802808340003231273124069290648939755045207383172496087947546578639284073911870548244147266943935669560541980756056871786739610799690558645694458479938317590915373889462157182295200452372879581650574499294039492872509008769928717113393636655804365763716747491853266406736612317049566702224978178846832565366489091153603826753032139516750765616168243063673267140881864485656214597500056229224644938887672100525529052682844320029949304636318845982816559272299631347021328286226266219029067912620674998153514416574586285233124640191068164913884790747645980913738332247543270881448462373395373478901413258418428614377617656700275686043876460902473802080801165341990140101076790271543995430359992932470922711381713949326907924387429256692723510423232231242150996624565694600102300192281444275879717034607638263614642627447902815808068109029127086674801264083024656050802725377080294996864605424756511977290237282947834562335232335963768744377388798082062807891702541095375963316873403456429240960404640186951167263701385387628393311740997826906837882743064224269061816305150316200325626792447859740779818800604719534970034845900360914867542391556599785119234307787197169316932791563617117461940025271950766485953773910813313752081467988020157492631885629270774033430210010412060658841041429195035356584544812419960040253332226839471622139021779509235518988063667035355034254834566026724934844280738422607194587895274567521847975926144224158972227112898069065031885786691891816557538520615290436779069079966264487621050244923417407945641181985343573374894512734296774342548972965178270115394649756556070755811545828041795094083865389220115694320167784274526735420814034815381064256898049791825058334902481674943462394157965393738880538713600220990233331933839395518377025815159266201047589058815013661397346030721239628175630908865191935630752689459207123972861194538308608140114329339882187673017939988242149854160531608219463346514811236805395274418472422497044200033724801133999736028581484328524307531040910362287340875437083395992956872296502597581726792574535930596200612743346172047355608980456907419042182403807705171744905764449412226025101777847636314831822943661997483401230940257307891835721633030184088650074833994270511846490758846613599409399505367214142618155708577537690947169260822977890639246183972360854947895131310329028774658929908320351691914051938273966506627446806330362371378771910874704506060661981367731755321423006349857522855737721289977016657202465050639771007487804146412115918633979023502593735197467896116972888483146146652208426898038987068258829960994363111557424116368291649423557493895852127066145602892976168055367156157298777412988536405403845094680578043736663124633896023521983105941601188634488327872504497424411933286296990091724670169938871490612048578434532671879193668042144820032691053103108904812173285124060283475614718295588481460640019979991218572889276529120167745883536105281476021946660042109632955657023752400317768410272538711478398934635966640319261586718333780910010439230322694647528229568912717993513129290551103034152195388459327471755409926702163104244832455036635418141461472298475096337044130063255223183864226861547255705258741721617898782555792902261382526849151668046825289000784182978868395469776710968633268473896264058571444153927797571313895879040405063414924686549555569890469057329340174143835156166657602154130982476193407830394793165550888294823249929632163165007540384446313685865973565149681021758538338626317063858433758409752183463477133007335863225029025409137648100947348955584145607023781071799215759358806340841755235856096372288698078640221247371825613454486536531844334048804117185716406870238669483775684161513319669839817766707712006015441944469549375516819548420369158330304495379515507638786925127748464833012424147655497018760487264152927012959024006973723229247626675133793352302634728050541427892351060822768844766236900219696581627254047676249813805698209799915495217576418619041924914582957064397728766097021851520776385810543886315120848248076972909079945567343978133323762254078284771624135216198816087043138797257643256498243779469264638412136042620418381379957893956267096334642978656157917383140590609912071298667423366032046390954253431685811259072624987744831091837795292000381247127464787180372917971462309033850400041593626933208193027379576668911141967930943468174997209192127853094662485856051870858695976769046722901711639137577338504450840853270366587065867204517612997072217824715999885879453805496029063630349937761009882992450987480984191890601553794778566647034131316813900344850740136617927674471307618350229741648429329902337224819416018885667845668614487249466454802776745987361126480921461203292452327625364861018184010309256874365117000892695040500705335103424898573272720481284641013762808796730322861301375852411047646380481904854967927955516098030069672407784038728384237462778522493280866770412534253391855290050607051384482328663490136263889758833653915156538718566237770397813593648279241017891284993469368831040033717916113252916496953683718140170979916586858035409795283845015750710501053806706496584476865588626508424849778991075141675460377528533420181523602469403536265210956863586476551810340911681221237750670317954704285725102983714859150846922229210924523994814827014805483399726460724758424572581251670587496845467982767448469678207204136537152595860913968938166613167082190099869241144673772107249014177434787264547923572920425132570797724464634434995801418167371241230990157512960307740153303288495075627406721115327183859669125403538482462041535159306632116547212236703978455086131474737912376762006934994337690050314689654381741810717377216323159975023563255387402663895530428220996156044698560929885750114423514312038487966254693558730649917486075492279380180305460936508301747825482355518375143695572619333422511530682394003698420705363492612524393248150372862097965893288307042002915922511230216972574421480023071649567835664035794189127100896589603901887686524903631133526533117775933109495660721518493033889506413397433949982682161046274891705242096939944533890475790410652095830821481443604587405633037022204211876257807463976451297161061130138769760551321141507566182641352462639119263059834201201110538259565760157884082396476559149349942657040226982950172104149358688822289384404467394944823620126459264755563901816817703420684568967566612853913312517549618256099594030191427845020794583293544521606340430083287938423068338747764068215073277735004343909390881107750335367989134792448821450129080062827303367055261979191753781151610410567250061998709160974570393014528887230459421078847264143936941905416276617190018882771360468148539456974363357936665550596218380489099209226512802897285076128118506702563946904746028464207121907632898018104309661222940950027810605375839828034518648935025344300147067671043654966606408208433837917876701475268449828466925290199774876425711617302324099548733422433721567569438256034309188567559849505856694620002495167653131149599928490555366710606082614805482489431227147481365250986599715437180399263706644238211371780809283314603539887017521835521229946209082542538933030956073641540293707053310259799484206177983340762656770852834689733723834054017950762679115335643503572600134079751804016929228868882709520672219708110768205068329805592939341685265393158182655654567648040165259222161203985068084731927848962054482496329914640641765481265943284433766262780658409094913186243306345419667658630732008245183891867026195832590141098600672917198727651170596740713022099173864334189417594511271504776795218359853670942545868026958795352352323823253258227644258447786909353671818793245496575629695464173982281636356319884269100023720681010808498365193756095752776047056638906076998070029166504472143867095096075831871540783498975958867153690930418620024159935803391452115664002640892231012229075252773713714242030407269392138252426930026712931519603265879035117047156926605150359080084991562901560433076754457766986941602183161270658289139520480978774106339650951201779199431346118801078887882448944144098296232198741131812994242737450261530190737999840613174024107826606383085060438710661864606872776440471006904671733179594009197994589692134245692166607556186257610015598807023448236915287692196010952573908893361129013939600129318112890756960850092098117274795987279822675166344736331676653062956758073997621115103237250854179797809114991407327344408126572125684542450134327897542320587959525354375451132830686903729610008541187208230465150041594488585407213189509311135127683239265112530790731746447157120951503542846871975648101815421037562400725878754554644519868801958142702445354569613469034829915049230489806265565196162376680612348668555913540182995846738524942412820217765077151249509962873846958636070666260617539644246641787900810739114794757724036423146693959624478353364837192395432706878944922278773105291889752989952231648027492789506414486674680190947764092989664512206341015340188622477264786744937710880375811716213741703777770999252829252220889928135404633065844440533097593503793770499881976475542128865437800267195976410023640244708608162018336637542551768405935174537261008364892299177593141521722141193874091212131202366237608333970824389191349078900526936264239142645134222789742802726378879066470641722633906163597703976119731638921504788070337167085995944281170510258863576499884322907774067366240834468270085491200040883437597916808443402058423172465943390025588147750601090562978867071428976257148175760053185337487417025506161053938228940274436106761894128677288512005297065253547942551031102103325090140313263971136399936436989357624882767622014610943257660449769352421101699139986231538783267141659049009775480862238483346667867949105288912792838122339231396355354970529683163640239798912921174329992087048914287339241855614815530487590958939103252820987116483858747217266692268344196613939844820064406726496942135578504942574285847247853674722010248194281344834328865093774801823242264741916469261182187031657737556798172762046104927881836883987507387114475286205210754687343951643808081395956978706188612424544923804454787180725443980158126863438215281221942292873743556443256892282530311224983744676449873806498439995158433490012510840469108977703097154190780082035988257045225996130094981682261728532754720070432992994378724980714928354031976765634010683253418440073457742587817403024602141082076956510562212622499748765755016921814619061886335878924696916229759137413952344062073762194023031541783517707504024579321213628653607572753584723171195731506979978581516079138112712297115365837683796235297379195801160520012916150202168831847843439944969257116178150454619437300321873786007679706751513806370793576077013821778336498409353701377698057142267552135286631296933964493117185354199865597757870106100826417675142918984528358625650043643105618765473097809978713500018043917620826442235139579760245963025455513225902056505609738266367164027801304589846229133099350592597244276244141293855598311808695214567022932296939101816439010407556801497854622723878285817219021894501825220323682998569102503691903706793719668363871774244553182321222624556516346911856902252524795946635159487831805439406818153733798688227541965345691099243453140874880740496558631504156722483112929469275768054860141042413862582773014016351252275791085107639798735428880025763875058705753814775409990861890175907192572935365449984586621925107404372816835205451840145524786115904239982736166492504789876437634420523605452872133153585291330907026579188345727470554569453875821370006373215971615774330331730709749250722786380637040550435714517236324129028149898659850382379081832183499546470094628797680466870385065748322488761301589377264919881309629397368552224224729651077698158475918413450249237187673638123206713950634714911801420206173903907033595243349333665631404859508827562548845348618170036755531996808984566943562041866935537491878871763955477285375635723111699821333245691677119796946917773958077534692860039934235732485520385670158117587379016024958151084838174129298984590378523606291407303947420062415883611689475186882328040403792558219181768600851630865365528423481342361919412302062141153352101933217110822438881279292122412040341786913661864966637283222336889514687437203180106303812615272747717907090272733126650860614289766075592156053974295653678195692131082241435754117374884329102767531753869022135398836806995674689299014518038067603797419635330429320906617881655466775632388636940111243918393633301371838815804712787310988554955776650645667095791333689678595070751482352917892647704156236648041549666186509136449176851836540756097513598790172142841065427713598822480084235567485298873194357026757335085713757128009750340867375028230572517921072409008844378590716399449657882167534558078408350076088904280367584382095495865390191217537043503587334903449327781006130043628380912289493595438623557927540266594557210085942285898480468128296718631805632099111852282092984008999849512493193336316676386921328208325737487008169479339078602953469518466644587393393971028192161144330739125608411660586786581048097706808967996999040527081240991331248213500778724186244300096697047949877338605923529239256429868732432262734896115676900920732344204467608145130175847169947746050491623526623102978927880631764004159398780134003118567375385743200534302350171065642009062577822086473755999057909854092143077305426870368903448303115363338137024535267747710005013791247587304188343302564158581316167119428011428713041045953922772235012713599044252361159568627742346794056944236879822486884111681335563832504525547680043864074469362594575845077009808587029854597704984534733637652598406461544752479499513036087622475299907087891056382395259743575229303094062177301643917350677248836419389562563847664640098348484569594917573475046538032451773172876591619667310281371477412725655629648605510220617724534289624104882118540396374229324703020695306626780513313819794110883555457868984836952571040480842242965833855167769629961759173521569966923442243891955829917694372737094483252068499922662646534976037131005738978949501316095336361937231551583891897065662050998411099782251443562155407935582927708553334654245245333700773061317389461583853243379258500372250102209690857444239478185463963553205207273994394532104654008231037396584244143750414969369104024129139404334669811468261536378963655597777625041147514126486159209022281383343946173214001009317682172675553909809167798741311291972601000152803357013653704025377476150256524657852393468760073263612294703437919902266199288807741927862412965439162979196841553223913369359804745862382406868723842207334077347958870000150414738122581753870303795588209708233772190734000121126394150757393362731923254956897333251401069453586261077436534511671444556431479970121447125810649373360094054163568226143031309172534816559424911445582937529033793467126092894693742624001891114648014619318847084983889335268978812937053555733588114886085949644100666257094660477222737268969716041082014799622004361333915919667652463372751135758418058111175976266153652031451382667216043145268807978035206100936438805667694712940501439737779519759213080015037099964189356304197066824218579036507502683653396649261871199550918333404733952955591315516910969907415206608620388411361137871357900207708629851996598690210851370457881176974126603774310331368968197366927927752087645549407528395247785664800952046879462193085751353291299033282844935302512856379852153762532886499541647442649660563652873455597769906222457103498901724203524226741080113784765092711533719419356465129527658038656041910546443196450908996371183743894257052657519741831749807816837535997978753690475272080607762615646497268370230421327677350391361170144012499480739229833052607528185871960388470308503652547154402416713949031169799029227202889856297646577997732752652601513427135251363777877205287478954871538322896227875018920505125918277615643978551998257565165230881950586990998677448158831040185659747191412584475114894873897232721729546022290662972097556309171677758734889013927642618741002008433828581828388987298411478843840239477403467002545049577476433130404386384611869109549032109334168482309863503369445091422642838793677756855979173616114031044724516849200635422089100660823994230608556784415418404093654711007132424635022752135372479454636242739782348952956419290523684969704287332263794342303264731605940880588589313709862327629308102076731617076169433385369572239166383337980487065458207256038710156938119592725131247527653334965357374116662014427732218320997093795822052878521016834904009768222822707938504390915438714768342663717784542602220613919747322491529970777339554439034862876538520499879833534578710098066383191470928376704461497088495921894036736596684506780843365510403358462436503499438840998772988177633957107167753558330994659262453557969665945925481987651068791775398178155269131770665824455641203641976033010088458705182960323065140795884479702815678292038774482855502181111390052614912835301735174659370086504929868897491395984096835165806741436513544146583611183941251555334780131915626724325433515348365337990115490704299745824240408172480039349643404180798304881216233303745586979704510217200293589551660088692780056742245662099191719375091671442238818593283013387840644583297599654856663496990967064139162220916628243139786309299730980884232596196334862527249344662951626064836444203674318483161444798917991859809655600550835000384339615897396331859918491624163360503348398550210563035077053733320413212959800315009326893498127298267737430494932186547602099126279342660861170577618285476235397767892933195568953686175302193221544954480260807680597576700059633141279419902397143994360731973037431408283670982708576082982918547673972194660766969640130763044954241557051034943342833676760336234063664489257390045674903343278682955790107404434714451627158882202631967032783872673468577488369409530784114549116772858765611415921785160633389973572898739564473880240807557350810969386327976063301795911675352734873002318843281248559908128271857144738932728157846997697311891422942387426827748825645277912012681844023289728377488926987341614791912840395693319466842160142521544588712048911715011498380052519814401932160250841527969318795280272397747575931070141185827548183595418212446623178120043264381619918277744378260199732784702530947694091587243650918061669208849817917380156588641114028641030514731488987687722496079566753569852850843096719548771668837396920319585290461758063421364655262687502989502157245996370326776162573521692715004971320096371660870397320550137033768574255993758122740263745091272646874581086577747160308183974977694262846782483489684145730712156347395650603997049220452356142965068469644279370986904459761580082746806735113011635947025459918951766110258448367191853290770999071624178976531107926627601729754086733806302930110606853150470773261846929278964376533075685745927497969230624406803957847152205676251101045690852767904955678902626629799444001910763272690888075435948302656467156449171792994321062045214083144476860942837483625134585564203813493505551305508152400860784570104862705469526525270349972407841956807393675949694520420834185308053698715930841770192349447346806355542218659800126037614166219843748931862117954399813944909375728377999752238082638568621748945872664990450212556143452337220228548735382812483628889664436274123550395838149236146957512807867331259256582014732147161435156585989960562097521054139751611300588331687362195980189498212967978466198648484626198068770846034962860299354819226375674230803710060796527090231752335476639934887481537512897705902785900570355391833835073479588688389087689631184863217100462583310620533233393172067737125468466262097363139335152352275158174333432135557645190185869073810684281305409051572514489138396497156637598562103585317318632900698237258071686885035455294480753108371072871192283496723254317840666443085652755449565023083781501008556572277579640122478101992422950839812220105696519978160467215989174361421624174921168077763600995072868272940765113524683401447197736320303250587279230186139431829997661222874029289499776355406706228390050973960007938505878683857534916551312484129118522850598500097517319720457988777133656163001020538575812430474690125759472157939449731542928524822061818321713480903380520689195082416767155670018263931114186829840371254758503149456230343797234545508569639193616691905100239990155890396680631030663258982357896600053534806915740998659344955991646944327934562607493708470726668373205259388129820720956229466489204052464460522279660205810831040396962587874393204798879018064316883394717533110228917318069089267739011672063070785282754491235508149941469530861092114853514432772421531347475949727349616334915936974679430971340648938578917536845653020394890109677622171438694043189590209559339312781387455548465636975752590073611844547914000974657733170117744064161186830412815527510116228381594464219050300938894919019988316215230690180511623914113842948327264410999621924888610181670111909664700042391614649621570214888020253888356270389291878409242521753126825971261196634306569600987056735497189623270469831929019222894202570026038762948810810575689690264100625837219591745604256817405427213762409806368091193986710121224028655540844484876135478853761357702358604789782164696613860771425618879349271588915981009171506168056684810954072073068566494830284516757874446142258055487839478520277859283722577850480146075305344637752914569047796623889338625521978692329350654416264442853978302167341356178552079407752592349271499774392604064911515158119744751928574605963587736144541423862091519441648494961870880821472626154764699537908227591324103074762754162794667967764262082784613734471614165892989189448813659493350892054989521109813465000384433974603869520660914728941794052735551107443907021622748369355422481487750422978726597143903998751304688615331849894924182732055747084134038510922155717981155819769967761482369509641672096294628169833552210982997898634098345969559625109084116195148837702087834164539944579742825862305886245352049394258180005647689029840416179142504819964982825883429799757861570621357965310905208831919688485883605954975672312087050049784120407277506690926499610590665745785175764313331312866727180357234180531730641911644996173204715988217916292345297608568384182575163970937191293408597929619892979381340856992591691867553666061272870558186202757638672202643350810253242448593561266072172004993564571623600690509374282618058370354237957194916398552806792036393542069935462498116982535420114097041014657190279964075830879476540134354460002156070810735544424279639090157992617003744512651247301198400809661455868363380963832542132548853596411086408228982824552332048529105709079059528450685978214104740261298145997910025373174108600449970154926798174157986253192360793566418924442340055519955207718072348845711137152392712688960872951441911321397117113608383904884985619609592841070783470879446800625404371008356822354076334066099304583093083426784403281946298242356053548762227993251211604412937375673250800199974489267358147117281371810061884352176291166031127485898789600047663435494324640222080628477110768753399440002984824162653361262298213719225283283420391934544494871858562508974160196875065841048216886736805729228788156310238936918136357225047389004789917927156161978242141108594371220077174419083864731576660613674214635745451466349941049168959902864165958919250369061677117045531830554691805932287290742347752423939498439539447666411666196407701011475442155796065231127812923324738080635674347193657382257955430790909758394155067372550424185048244251605891011277381172736777470243349876010369906090353289621950591730826872151192634088266021397727469246358238531685679187721086393443557878952480037222031268027014439707845309081599090791058793511900137418220830486644230052645398281522753492447995898000971542649770536843951973367615209694040563414482799422930564568337430587854418589165891181109234102914265378428443486918757406322522801842404734533175104683464989877422347511613892096547854233004301437405981317188937301929383904190973643005955290495698200640310576323792633587183234393536340113108458270855994419764072796774903269330101194607594002750109229590730987440985018083978414959018151626204268681457889280684966743659267031294876466176652254992717140762210401918850346543001122620092565404767824400812826742180281910574853623351753246189832109480697204259175207939089647480003399101300617528825005525587039066458950872964586168032819074627516519342398823759141751600814930227311115231349408880348208381209775663050813215148192343088403355339489898925284912665833346900107079977141323224069069839577157333162464353848022236648331093324524632775670254480986814631462609756855937778918362120113106971640291801599519136668602079216394947596744827152874563062524164890805504339073627864755062676802247753731059532635867917406213420484686888659052880241452131458268539507758089162895833908093638784843648744873347386869123678682316987034213717866656322803150615144609806095030699816723062091140207085559004740822201699531180131727821480862764438755964233104192739870689918811002823934516693110353847567095631027024143339664855145517748497129524989058967714713206434985006450505455703245692625823837269579594417220768780022840919817275557283186632847424030807279878868336102635941279743841045498375710890947657831071594550463589136001168043774110370206717064002693864822783492939822421052463654476624311067053034845860463925135657400728626323163488436450954252688236441177636832443643897091031342086519789621359284788136644784990457396078135779057106173073522929314554194759762923927038852862955418133470524482478166881726113581638040787538901332363584472271829418992299376950061615172069792295308024456300132689237750810372704076678605623515650295443633559327024517923489617273081390227295911483022141726615668667782567859070580822944987694940897477339428464372940807037312348935723791063506668932991352366194011088101697321101406197002707038020651544040398446339579884528799996579351368507284346677399284636447687894402603918295450273541514843524090496396297001076361197281351973494485069992971695039360715704600849777605230725455754648000687626806985684353966689691099988533405056551851461336781553752966699711107724094241951734444784422788416890740962990320477438203691773224801258136865568663017989182866300530050880028635704174780564036134364499756305018573410104509739194103070134795357294160464187053283025584705819972497426335890496086049151597966375144588279565049324350762527004752897188260496549292748066688498360954422191278969801386957142908649032069564854255340395443248324625905438831723568710951300352212481184401645358018809295120995634744568121909796951238290134074839562339527889615965311529504840428653570868752936599325276801031445235273297332929682367199668231661880563963031204275030861679128128342053348687170705267219728722299676497725104375658963697854994057053153153304519071706836054330986410405255680194229417664023385006211657090391889341605320599158284834190978959473283696021066751078097788371394350963617069214640924990891101051412880525067201532584809027029162273354159957621168783107640078385923418245183526338136427044189063452020052347707874029227279222762387145435873846064465519720112583720821533387021880137568761958531289612468634434375108502265602108230943858021159153912925480074326967576929748932054319230883408020474989120154259244964241770022872371921473565379957701071721734356811448446395263797519269042930804664422226164275376887111826698374459441558201696939450379967508099412157799596903476482394532341083928341567913941761595536253801784912935294737868214452086495291212053961077832078549531172309667987104362896337878387231199229727195988574448191519342800824141260483873335304898679209718409211257944734410423016073125024589859351928158283173002459865738451191040239441201380695212625075254647808322552516919770265252423496259829087217572238284261915875549744777240764868969632770452993726856873696457393045358272830625172970682440148959973544434569568229330546773238448128435532978306053769084279136749321964333072035989418092405741461357668204993973023151613099721976735428091848951616371398356284225358016342082852985845204001478354921200598178318772924624597610912381410037865312420358834483327097236069447444805147074552041797377851732601525323255446203519276792232987136980631763891395532512873228084649855326600057879257499264958638710019686821806755376717450897208873822927310868567561534522271126312216940884355641118798974585970986519362252075834463981491198696236198095000846467233912202045762058112290143111990711107006689446484193048622525879659527557516278496493647450654663734837964710377477303602482436380879653161766321016800952411634453410619318753643922865181633259295919271403430892717857080356759973453709215857787322215551542140238059512615881521294748245247982911316131380125801687356425319959183211743724169683853418173734362256645067673096250451313272181107357953485634724223255303150300691320201026116088769641067607841822650428380309749670691154764974283731449065558110662423048043270852696631412931509661473884293507235798715443875961494796508033330464284998635509491172109099496423918126107649568641157559255751459984617918837105525424371632913808480162946145285689836539934555984443526538632437041957544098209401091281517463776174967287878097498061212399301026692665457853880868851352752877140299704466383466789724984746276118172884827964857129867990764407577163406544021165618930304902024906301529791168743661488293172734257900985492442885376011598637493115345796970508330902436922601971597215634391284662207947325380056702094690644662767579571713465797519995436175558766763217562251684525972280285130630643989481952330008473288046067441526065689170473194970746585377393484051519519804957594205405313733727163411948777086525425280508326877694888226593988063236113994653991708377125007801468688451627617097025274925418611865336835378591302124717155668420644064530218302995525903472847581371333158906399958094839028788923336052527472713506636076575965723060154087292017618412680562456711898195774597637891423901045129363559786898921502577068700228385526422836011550712523092952666304029677836485994277940832383421252194483394155379005946271984236903912185621003125937830624326802470855595304196751225940539124847927909888392847611159138089181668367284926876083667076566370510842746453859779162059212004594764469110247188421281649229636615362089595158283687296706432276813837439025033367442779931531963556405607027591866545197316862290190558547069968265127267142700542337356764958896267978426684746620183183498175574173473659777531475444640368678710426898805914538995388247211927909347541798378700353002905564764063436942510336119892397331865963461965276040568393602434237405191032342751188063937699715040879058582082739138865216836043250705889308544692076742779365058236727163798868533306547108497911156253888847529125907360034861069084419791538002023497800259691057400280973611761431365162755527864229711198362178139109120405447152701983282965452137430855496557386135691351331212385018803711367086312916411122473023619503984800148659122313451346049801737323254838906627999967126204516601116745092422496246292016604915678542312085463614364736332519948303785536867867577698878750370042342622062459214934955687140518371484920151121659581743628376662098372688243940707867151883872077144399921675065307165318115064459706375064600005729636004455667726466394496563959771762151014271195958315525453836770387578888208271556740189071445561232294354389679002167869419567383041300186819403832859721920395753791061361936723843485999850938453122517235089836170213227299282230872569270155704532520268537479210843558731581816857611604155521759291018134912574394551316291121452297852779928801438848425185275189647524127254334122081053055214396649673723775891252314652235823931993000916038673310416716575253533486248488944580042579078892575288493210798828928315123840611666068198708156521916319276642268627894003308718028119256863249622636869106252412904994749622937299306462898420189867414728043481682190403383700137592016540340518820355385151993344978996092320937762422544535765297500558204248626074411468290233304950966353024775588132188185173928163588020404331186888486813563886998134137507129571590007509453591798498996553988033875837189052648704431895005106620613435616830405240460347778264547448272451356658244113041751886514314019739852576346146434334374741664794227179477683676842585304796276870716214269848744820984393130812527982098102591723079026564830778192845637082394017651533874238125430281706547528206224875268647431385248821516782624168915832318683540642130639656679213344655195744309894481123898853833187714995064311216292519281968514140882933556906528166942385917044169836586863654030483756727859663512058409224400439424765483445207862204233099193902722255563423978394241611014564562939813984031196175735109548800399159664724403934655608538243580931652972414827176402586564752205372688775061437728630734119387383669293330745578384706593197230355139981678019537104777413414947542729766083465976766718143037965901618311301878632475711995999706801618273443204365959299961753503497346459494676191579921465635563574008849013309451811351297656215356883905570667511974977748767934873676164777958876995922876074045021615690824939157210227650010917594597482033192184343456357280138577405564218913901558742095134321503308554389449624179136270035333590240073775781477839949583536532427573711255660914225220860581596962059852116357770399858875901749476741594368452871617234213551728460445957155650834604533394746515186913644915972851562724979248402808170592670043714817278729406063447684516661652650378462601241602167677695229364299543416823826289162352435834177682435988224526284881916619611465156311456722983049766631614939579640785601382199807864908756912307826249949901561425208670409877922233167511976717993849351838977894735909743543764460217737102718838488632796906005992600389080127582303574815828024268841107270503608010503676188220161451159753657017579001700602027190317682780996531936409603235031514792016736962163219960771456033704689181994893148569146302317637935471196032456278851201414563772777747235739239318327285031595725637338711307521017517782479823468355768225057456525479639073029677288806156813161172549718795326614376444983920116984847692739398585068950688722410863408224074496510785010427661038606984523573446778422609435543454878085811814623642575162668774874611180428062856355631111741040893810902247437210375897363685980403849575650058381751492192314765057571372059965971394801141514791139644562094249596249951438525906288755623446339314712319019018976529432991537730411002285232606029892980802395930162018326226849123950150315810356273154768677098918606900572929057279750276413972593173916831407484963990554968436126212035243389038978126565289865753814782176657802056063926953595819236704777303869080088935190511728623109961775176767001573973039225772868358526978895701910060467930886320624347438417565339313741160356019660916827796299644460294770152841534675662277493961468399786484889244170985737278529180536084977708470469468799386987476325219642583544132425763419571087619913851606494467466800968384487358432038960052161914310117318641432304077512608367699346069776940532739321419156355382746670006090923718383222864557621969066301165612746660213436861176319445710925061399399545463707329021669256522172219968875130203695011730664496536359550697344080858633667692676085030888027953799455137124519163020680589764716870395570003859406136086652817917689399180470762002768705030530484293061847908567541524374473974580698108562653065775528829629652510521827373784684359174150855108234369220924628505342821061149170729783556461527896538710331736834453482908076490379095879289098322136586501398401828380454022894832626461826340283758506753704187412303758628135360827317436389677454795455032777049953550444253393441484091882457235418573397954550781546240886977516463784648158725509503233021070410731211126749951382659849841602669720083408536507224355109205641945515914595447932620750178861668272018710049841508134544371423220856322320019253068922864808561567121255980433558569433569553411257769242109994441145899187343635611325999945422389750865521961541518575942858698327309933305786301905661242310788029766463099851275335050192317285877217338308878704954132962065714138658702560257106733626599876012008749674493281004670295894388040792849248294044338440885710052252030000540845876532930220135935565869323624603143159832287322377449219740172312036208920195647853138394411691617062425764169255372283239501860443780136183866914135404679370111801700605968014749051757669809553480637308945385465387666033871139423359728976754343091498173534188303457065387092981544174365146943213245021306513314622844054506028211589955090276471438659063131654142204294204339246648263104387362520067504359003910454225641412333049112497310652329841233672980313887989006863173283353445005607264128903332200306978835729206213023848057571523137437065645749884725226716716371198460159454175809899090437239590176324902120830915568452968224181955012365889366976699226749109221036311825569770399858578942799163268262228987360830570173914167626929350583879656280017843800838246531904008692361010581163929915392618430663878978963959937741800892911338949407491865057681830277366494321175698456191765532089207839520544127094835591697537404283709049584886350141451943211517851139052158410289221122644800107556761893597403199190439748114435303305122096857701288509386605420038476186472501320657102719886649353699489382757966607503343402891135010514539798751246289971607561885729359059116515771629390943273929428119160147071710875607451726869147892236269445542131603361459577740049186409619839704201244053431018760688525087560131782153970797516862242617270184212365969529998120340248305748293930430958399550247122030799116553067259129431962711136173569857584720999562150359544159906780900322211776845349960988603058469109677347980911843407454505772520111404941469022431925112563708669709690591252237253696313153250552461493342039946606074802410813264775486021536120269636789353420109570052872773700701779294264374133882828114359208326242394692734188692249845354612398518851910460184068731308446148610008973869557438540164562816208054301063621277541976782373475566531048449425558005052201382725732049479182264915295554797222758813908246319168386581988159441398222788084845086286856475664440583643113020563551137502438058321673662159441443484914962796547411738893435362788127112476581071408572059389898870288172376633843723757752092479035172806944858794776594685956370284846637657650452221988216958454769046654036304709327508804448501832757468227415723557078466613383119022922431488397681709174408251944650333027923033538266126059780213674056411820478931380696962981446232037383810607349244792551325743068065502718477250841733184631830234675210800107392279224598616628247786051259014621857656413958099011387484982179614711269760621428238296269039033226568514629747391998488453715248712457155454158927597671756360643229561002937435004549614000045237291805724059962713754530336976596735337862149089775731660842910867991754017414616331746322753227312382101576758497105181283581775620856284335299451975933186667951377238278125005778329118737423900673551867950606570329136154555691437963104068878772027178508180158544346975747376094061356370172049674813344828552918787566571138822706733935635875100699772153341270043638343795386137501462757317433356463981097835305234849529025316915306520631541527179551571548123999877521617900387299545608517167094304259287524412376078761279091609595495563063103903032732862850554677802158474340238199104936455601360216887342044839835660151867292006342116727604756772092750500797664614680342813067938025260841989134507426514630884889091556150905601775859974822304233721252849753967341926592859510347294371200191044452426142808572832908071664169690003591919409115471253121919606678972842914393875015361380331913404664306037930605990807088928649888037699482158619871637849803336942293447608486142121740828519879308102267821442224598907897745397626812992088700610521296227921510390420456747541845431569882453260994861839563650035660426949985366518432051781135791715573999650395956673307101664977399462682570562007949720028750323109927009134807919811039310281677010389477919771993709601000613889982686017384362955507708416167367890671941330118605256022677326726638959246674574416181655744526716882771248655601130958466437796849264859636223988327303833347009026225613014019768556448491431377186814157650193319101421976758037005641199028305805056321746871247349660681151907117446440385041520188600408538213352895795457579102846450301336143276218183741061787064402677828783751739952795163792529586208115890055302544442272881781510776912622199677901641384142015827516469950683905689027218754455392072041009593454945808596997069409981954716805475743443911882130815038109384457805465766783562133743480339970780687492085277973221115290495319784913004723961433247900717460876056234706952753053671024166527583587659222070393440184630106330431076042588162355254837413011605565904597125525505230853198019417110214372962206816947273948972397189491309916362933724591714846238862305126700752792241185044769517606779848693155058855599641777998981320797723772605591979842218429931980501599275681880857057541321722955566526745016415717418353574618283792381011619138156090838645908695586538694052138942749689670969401714944716564181900357352419184165222140562707247633071655852633247349951547172005628293038188245784522835062640911530188246835213928372948654770433257562854764770906003644666948467673217153958724241545712733040130405320622913473592412054078127100204971522492763708339667970075729116229126092527238220521775039307825045155350979930307384091135560440838119780979296781027058631032679676379642986635674850912671791739665133005883837315333759850240241076198914334971511108174422020088666915152596278662016217860950455915438706909526713062274495772097300643968647074233525009751361458180042084427522867113434426857019625475800657536861113687188425974888282143567219328441650876526858692821450908907453902480123788137249524775921892008995650444067694878172808838814896925551812620040188406069793160172037778209883274714648815926824007106343726771787278999983707188122128690512255248096927375507725178230989632076997996542449786772112059300450891422924618980629847857344721512167551205702699842037246415907622466283847062493869034379802412419514166002542568334553852896866110649993933766016979851373923115008810843740478521041372374687937276626078782825337376906634787657321468120672558968712516033442003493017510795464653452621306803369410291620023068208086457416231983551739745791214776431893884827672871988922468966796555599366712319258491218431336686464541981085013062604252576136977897624994480599453338350397628299971165958200304877859318296516460092416194583966026680079797724972218104739862563866408803361639679757342869756153352623498146490407587389971179414514388694251298601526699294927584525846875037314945943995871584765237431326732134365645778173328246554727166341753766940281611696150805502134093125186175031727371947388481298080593265935600432694624410529157466548845753107185457958137259824538689477597136097940875044581610095491367360357298359059251287766695833125094600096356200881219647355096574205641543991665413981499961968333966152146072964436499673643307886433086735519957412376927016959682407603638520869289134205614531644416572373855721265828440280233177736302503343170332607801191462859668181925753285594890416121045992745728932190119914930838457532202422190960741879237734193912609018367831952221325891616688443680419989401808087885030587665312246092731452440599829629696725481801242656903550568980657268938422489261854220562173866391005136084775053419815075900293134307498243206833441348306319878723195975471295277840382570724768160317166087724606173795444531979510354391961938413580405240562086071616610460969406057164743858698766704042084890433613407682698016073703189140703542556483003696474555444860048932642063962657971812524009561001647087092747516065801433138156450981531064350497684560902905519648458810607447418658437559659905062214775039222684348675923291342179730024359092677630104074863546670675092825145488600592667916761495881829840150762168140569434893595884665190229479929872424596608236633944145647774881475172049420426266384500158796456575112681426817180819758447798928052791836580316828755889454157678043629281484978734041852457164297483961997775856164750750746988403519928587162913905615061272251651261571115011493176685959754500602018312530752273855358154868813491449961066692877437932541415824935739687836045570804768982846669102577608754382024395164749378285176155627068885083218104172874787616604204353379640239748950667503967454865712773854955715710160382294702388465902361000281832017285658143361537753542760325649039124352091456007275769758335702437647420387977039142581211285463241484115556173896846538252013031647037679053241486893550150245835916074516964936836163363080957267584020895991654082615122235728893337251875563161197577859454462826822973063331328830327999143780032159176428272763446092176620226854640118994124736009178482945741823784372991584935149554568465797893442225959259215139974447955297785508177210680547620619571938865280915230590082132518845987231585436423142000441683500506803791804239198169351520501027255795306303689592068734756977086185478267501912783281252992277331377185297174160039307019974618288852412682652152030927626534969735067629135488551314776688345655957802598814985937185185794449840131030386013355954858956694285094501864322731153754507415102526271446341904041508558936823084144483200569915147621032132667900053151985317048885169353783370347921947894418954721199681257649885682607584264148537652609365998567363211323105618321197851745142931279876287047816493147799159165030002760092378401511423137151434561278183569591674700927866841557040265491358946961957768810248334382882482456677424451287845234060916856572809862165071603052619631347775909273629872093165836146024244501225958688356194327156645722743944777006832065081113511018287407789845320022713430369443965146612998057865423380634098304428451527315354859428934183306325439819781202815877108979632151055690877876209645714131951275093287183017467548118533239024582161921140202865212763192100248855569432691102508515010417415064253206956454849804513324177073276742581274464104670825220762277802769966316742836566385229418051667235755082727463793721285527025909449253181054757769538031547869029316256457603150749112900449316147372272273013422022576218109041715592327936564643625932955690924642328770659116941978924465904422988072487873857857071581591469195495681887091827924899977010913830636160927624695438134809702093801502196059645377942358342665308147448414647761667344583839402378272918895311025400313590774661548900853198678601772413015049637983712390684223345263974556931149702412392191610058939581054744989577805961454130791519664343910241067105603605501312490999243522774750543661846134323115781685861996460694876557901429335875331239460264903506149584351634234276773009357970869130923551553993610773340355239347704195296169130707263305367557814029151335670396916996996318950697941799702467555737968901009447999377610412842416052174671484205765553484704382281898123703859862532950957496554379236980312900570792816491701364839403291385133082187158970523894760287172415734615436791153651423920037121204910192660007634564510433019667136569807729256879892926605455936696232637200372543760228169653955512391872939242399825334457129812751401106346376376558766475634173159484064352655588302998099474017236728615440925569940125875558320358634803272789899793042481768358012030086676026424379695022705159643410262576147750987065738144264998077642727586226123354470568946207815392382741812528614381467111013564341082073847153484861301111328734834875756615519514615608420529263960779921841668480648328947432349313087296360927224485586832982473832653867676926285665145171476294970119285092954643757408839649976285071706154116848624245146032749350141915010683068555377649132210644183227468960549433212016680422898001559050952868818450088023047004897917085968551903520336557598198027572406575100172492782836956772677871385450658241221259764980705953673229589794652145886620007341641482273176376211412899123045573400393538340587038247363643083076065295996946954648073342243926065851987834401362103672686591389643217682620206689250399125215023668641044404504571868161226690932765691954360254971070757360779893800415749460707072050938579935490143870539845915161262603091223249433650470317655705708881323590891756974318017615328862434665639936433454454147746016919800945904587485636263850142660361365066675738476285753977731924254016169230183092569689285605960424407996011576807524425554569877179599331557127635762364410935662120963436816532127348848618549930550301194834635994400038761815479334258905645226657292465158121204901143279803234537997349280341444019355407714430798120890250529242744790849451716041200209178210322714105387971298274705351318620216736929671297287081334735704509944925186077610797138829508415719205649402730977141313118564290191855536461551230672171450499801330967612482726054100160541099370546538646383926603063619404470795741964665245185488033028498160930608500626993460274359779544987471756811268636976513214301231427496370208786768599684486994947116647907365105923997036684777081410381833687293731280587570123930236818108233990977001167443172347899952124658633414727542526578529438694243639352867298915720128101363065972674569760559544714246918720647677715416200327366054455663032508445697484061761961535759927312148125213617676027487603846479494479817931985127233909440705092863959130009569418103142491116707796183207888632445573698731069943588943781011447557060959647688988148353051670052794556156028377795891231639642735682634308339089690065944228348227497532704036017519298496637539785374888641061404648202700396744913463893419864099089051871598649788838575156657905896689941796492177779788522773311160711089374053702491691267835769566811445943325401205931757296029270859236066125715672772569701115739864034388426765906415137190331305332100738621737245060067533842949902213402268142494815848144126616768409980529924193054985243066408458417765690985139005385755247953801497129262321571019417967080848240841203823907713279593721505270214251207044415423058530785524225000851737754146103811781980124175609977505156263456718701527160660958546076163175798607682226100080914141498240632026499895347494822536795585179423746967997383723105560732371159707014847380143191302588332618596603947135540520265924683196086426952242496463572883376232915977692969857728019526286467784332307884547588941415527636964907276494534328422774768948905502336292480176775210712413537526619372186708804451117159636613745448326425844837446947101481208425086868005921830151929276822688434467361523209903115283480600910233133012782405784844438041486900981925849319761843170961034611989162195566848777216981843136938608270502668906582596153466624567429463849362701512943887429521324926608167350173855956077745923102088898462509695793849019315836699489121901868145375981842624148791862756513732348657768812788062804721272006769147289567256256946413432933102414147515310098597363881209464615765807028990321556840616187981234564347630991495855090170727262559605844850981065899304058352461631617064046282894295896379332916871002508577090819034293297846549131171798448242292786055770995332745656963887693231262211590784261082351364079510062120806080582210043572612200179300894938967086273892409693979606698092588943181285655677751477336268973634507771006218310364400107120282255931496204240534919540026577494679868919461700026601289755546019662161893411708899964824967698907532716921388870391819596235185154102041432490036061574318945168749700421888960515775285542690731966074934447376714714392053747305908996347790361544136603275885945053824119174279186670048796333451345588583705629949532777557125867699336870424657177968555214067278089138123767224095268603752734317920380207868971025679683146329104664283043092942236007498599235559431099354231074597115149666601317083806197934863257433535583374610457246787782671147542396637874157426963371347161828380346813289119643740587329661459596082190735125908077420070595678897729088966684259371480429275627156630833006453929506701209220183129205623826579370587630388356162237468154691940469520832598885931524736946538757031798819134020584440941637821021921965801134700145599038568387176755459862550367273647938077097632237090387717170851338451082392654499220094200702059864418159302955890677773126880802001631691111050195695006084425170562008611213312513274816391199613089101878379807008091262733958827186769777426137108012772558955296183967734362413194799248477934128449570830493428000446008929142722238586989679278771399427176774044181696567275442510521760402166650916236711482452343208429035650167309040099137242374240827332829120266120857998836300247524598972997638746323505280125023052508086715006008305462444239194669344058742502935960457988609297816070093634818085992068709664366872894470501738049729130348197279112358879572527226263607278482526824754634150446357574263436206038041531855128460333366854460608296335094696244795402762304557653345492532569419501825881656026028271671092797752748329279125964367801118155232384408553186380396420949216924878792664669186435299393310116176427649800424805285608458761151721224625779464882954555369634680794969588931635750709247922945427905860167372496553336527014128421563994044260983936708574120331329327051475339660120160293989476760867504728593934843737647078107003391635634506321223677643219643370126160595191362055459450049918040788556952261210553146438393508933775789910519685674192118278184566802649727148758014068583505915126982223375966621000729793488996715048175238022657377594143193433248368156341929482585121507640730244997652125671900674937155168656457647011007135270091719966943539761916356579033077143271458497550334943124845671786303460279435337188081604033178582836941928791959420637857158005345467530463845108025285427604291303509663140097497713323146840377343841568973099287584445307986368670546891953468329834373694922778224149381668830001433471855287829589160814333723978171903373460236713726600281931195270554773236816975537062171997620052905386543586545117822923629840058455600498244633964247143892185301195893581948901029196533556603983845042610252223546880002227299824563676785119088559176336554654109632971459587247110648100788771143514282693764266615223017396619795689717925786749763293581489410072913493031642348731682541135759572498681207310701306717524002001588331174279486157364926787592359273711278752872199026474683376344557682854671259153339615278266901958320396378616085796539337952608864504576742843376661634790101239931141729133436942867034626591003219692332846873622465038183396756483992932589318634360782515330820709138986868978191608179690003484511381320547469919818777509372293365248017288626473729341728048870964659255057659626773760669971228816599165263503573457121061566754307971088063420105586702376239662918174963330177354669770766228180794766203958870961001559930833310925788382389587293813701351652226521747964396468628452527275733463223431502293313100931532323422868349594034941916134752359183178606464265363080142107685527957500090139905947118337955132245394755912843075778843456960184905760825701036019706034933093043727717405893029715914429745308544135984978548760534468892294852366904980525119543871484110964802122038896992110133640913908026371105794873356792828169788932335482280851808712944521951560652882681381942293248505715225141814390511102065495132028859482538262086600393421184162554062055656446914154964413762492965714284275236987769878409729179230687658723200195687510355411878936443980499740848460316039161904461456987626966789155580011221387384077000495232035741831010954906688473944404210270956703120969089110052901913840129704129218223236992019035733859276730139694472065197003863752663292146492439760020792784054791243024676912448591367340681693339809251446082030058094764518065927602815037755339656935398977781838973739012670833339789082151058985575514084817073036580408172530718728701870693131433337741850510448881675528204750389552526172462696360795400510576248860538562178336377367905797931949279965281598533447509635672955909470878463728090095682408519187431751739353810482607349847519110110501582603881958742628520790886502817676731107102569365958484350186944010869320792935017715714126817264190031541401450358972949675881124362787278144148663666205282835715377457948760672009067119928856887538326525845652819079961539933969612981212015067599235216173248566766081415901444651032275013315737495903621229647947577915640040117225214156274070852376713318766983111601090357578500252303559636319664211106252058313652723540636740661291124115453140727080436523983576694055284166308132955029373993481229600587182239352603480403947948480050535698255820641024251287807275026610733397817382071465222905158604445754735441758038092342199535245458547141624481622308016928182734464724475486982491405483372259528403018008744523715567661951701411762479908289951007615638069697312889384242234029672319670370252629952971467990584319082584227011043164570504558287323544465209862085567941828798775287596870840021387852564686418760013001956724522208924157103575237885142649863422931682829027489080654668976733995909022252626064518099359942513939600027628383387433661654070493607991234395953700673855874534639935498727352224108093595252814331849521475297865792602131903684637257623286210354644616918525558701141715789529831751643474610830176246289608133628243705171452912209608522417472469670994666976430101609604709950132171082228116190345545714334924322964809515640509368243311584645688400907390128080609396047797695706012575922297782763832181395412217769259811941585990205038157153964559492323883164984010007443160676765960540318871102365627318546052821716041637237703823245438601079575585112634605724714205375363015106537738855956256149129182618784615262299769621150278842543840510520923416780830894576154080951684282469048655431118884537249465425709171727846567255775462884197955637252520979884000707436709755956578066860703645478384491646448395341903872133482794511121923794035951245184343191557911583630078420516022527803641570597221406388497400162882393827100291787354975867876091401428370608610061366953805262036748218418087852794084536274770946697788344701244046324328920612265775070813190837891896448063927326111607851591210279619519093153484511605165329010335418446228627773910466387222275410740942264982032445954430055330813540199244681621015261527785925184903066137532565834320326495736673049971566756875809044712346163910082898336329529816955311176249331951401002331185615193038721587058942760868535176726112327683080591344520109166844407670996434212838994795044468780108659691847704163617536022308037000790933003894382577247129170728350714751677188844010884109542155923472361029149669102005122837701094570541189787676430699597648845721804916743160578487483136477324631585587683304811417582484884256694678908502583066584716294502807168114439365169641050008927081841297803716876508719574590747465129211153317954974117842799203729244133603901983400561588493866665032040824074804226129243632933732027083281549163248426604419824617318175643775545109712932890153762652747815853412916931192667245407258203737727418796584740017971113030890758420687921694994931397297830647080400127817453398054471651300157669779732611357598716324829294868262034605011639629967700351460461738910521617391263532930951455211227460172599655870453812284430560745184171984915720989176371654165986646133554808426561728319303774466495465280475999215864399451941561800813968174527776312162549273691156058784374027229270756481297427502440252322820369211136576860341100986259864983642648079803029577781167529339059483835199824540348961361706700384725744976509637260248855673509274962246290211382060725318716240383922476250660453702189390138510892884396263488711246711872693913553651545580940195352653483038818531963016806327166691416683520722963280345748162321407588242652522559481036744439652302844136587671879980727106130062701241609502464985655722332061326839868857507935590571812801987722814913516793435523710501882008384136403428267184582598294709527259724476670985382241519350445582883856560792212938230749980440059455947443509045568362209618232299067785001664988791306030690407560736803526367557915828747549736446912005365059099522946220631056663449041382428367262170076277077217636038084103840682476126021543360027510771013410875802291043951209548520705805703396691647650975350215597585903678745115203896594670489050561406976666488919377471794140500761771706719504068216385338996617883104129188779202984445198382444893340276009348156352852909491088868675588646725772674990174952610830409596507326409292244527673687331787677909765921874599532789159054421366392166079632416409705830352728540281891486462550512476121501535124578934848872959302097158535683857459945574907448720753936481688554597409832290574526249007842728210318038505300272191182209668147516708439370666274076596825104147173980599074725811154677052661649626882995980993725636271598122484358080630888325837055799610543603754218587203215128832137813646842707805421071815885921542235016139915578848216877333179834011830991093128141443086434607063666472818044630778119258524436719545771866779946347360113580189859200370193846688232120158267146358901515477419045274644362554477938769791948459756224324767381628567817356368118715388004879167710725529107407315724146049781629191299637734804704740717689212426969063072187595262567938446075674710475749827046674744329171599897975813854283239036662224048435914998071655207255630525735494352149377241532964260726440283661816595932979915152623289452764110690985527054046888768934397497100991969134091758815466351609821651808535379804619281228052933618267677504529133717714515631302376376493887915935466832018022240846177966325792696390302073223786952301163400859702527025091471478189647678147521191360977972932360393606302328268936614209134179460453613406760680363312349488181522581716079279760518287035239078345061402602668105060194629818914842550151575918376058315161681774293231986517262384958464437895610711307796144895456734266484976143943028437315486616989787216247868211033429952851373284326610607881549921657296319645920063976804709821363316012294921702538661861073683159325996941850684523005097243595694372718178945117601127497454579628912460336767784716456847861139686513532542840252549212644471127666244471765499037193038127432836713142290747401975635224209638461741580827525560103495074117039313979660548245526489780467462246015167445918451942395577281071451522464203120567803781565002889337225227731345311636151736584150846367759457081649087130855851649654307545124908528537646618050261980825394017630742871205548126444404613378376358876496652974321073796145619348857008020149060615002634432415291791910195320636888423095053241200429927812804335210866058747640595967862452369994120789490679614670916136671046235514908789700721272477748761970389791864345452611455058030868131997969941190977173677885420533784277725414198066850804139222416678486826450894488505530811000851677544419219660127165825259416028379893689112230078785917865700687632300690070585056123458275943662920628250486457145209363646950178425520008470040845577209490060245314619084868601253347754764293411725809266622844982369345007845970054494747836668591664591578500519287130582076224731362229834230245254921691278873969201459664047976331562092363453663223642547191635735634838630296625366855852291650998836342645745340803434679021581518418587981016145340975496637819161838015589282013700844307198609269552576368642712457518833256896174644555154338059859376053473366139684780403126084927844976712372812880451823515771005525684415767475042202459352823707619839956521555666420834016183832374284555169573255034422677351818544950392834680316143258649979349700830586965623728805236108745468488340458734848721926544326715786185734564305575223547492800477026305143649093062927583982210749488336005049069488786656825224906530885467048840488103989641650242645305704029530614848189633203481623038436090803872279896143701408776744797162478899671622744182317591061313237515953848062091692516516930237512663170858599076228830170888727024384212537985641524453781862921512488125605326939641332351671334326287856005793010471270241872876761139165267431763990223901004478739926998888801816907859621133171006567923841335995020295118717754116626133267993352515772481956058044771011402687752836029050016949865864501445826206992590777158400618062987228397630904478437887779965827241478616094178914674662251415000671706883860839935399395391304292823371666093874301128009744678707471648385217063311381427579946964797053881964680689857129972481546361988190557762367399402082634857501115400607873272087698189133985246511312312610756175637489324230839340215982693207970600872835578858822639083777857038546242569840519461600223612705064767017733299117709104389169843477351052763148980608284722156611537363876778122107922634042722389674277354262274130286626895852232572671094455226834463060374554542835798936647679302905919950536536314888747018273683477853539298982903465320089806967395986289382160388917332174824071495530579958914951524702668657976809615724992979983577693719081933199093435618492890094609244557947648275580970259089537040325895305084612774778632623562854447228900602172102919094410169311338479165887339480649299255008447859328063238652329052525415027097922135157118247929352324119503073652653078003233059625210294574683430753116217579277443498597383684873247947256821132175068700751022882908814678995877582098354890327785640813661639537151226385834451839778634070182425255512169872557397009915392778552761643996312838526727086165206969579001149527560358511236662529206312480834932662618681738806905792302264033098816998096671857418992014478223147564334241802331556641806745738555129800018996347147873686658286997495708221258217902250862732910731562122944111883915639546914486631343975767318838873845456614691923335641632305634262000776159842794149191114908495750410311106434751782507925508523121026498646883358998432953693419041795624354332215521286933303140290035325440177975235332927001230996530565841245452357918734969281736075121774381313785637514896809339237906333024137130806295222071235765745231185445694525536935773451745323804150242471984461378479683968798729543254047732005652813376389556880385630354831714333667397473439049344059363871942799357083879071586891271204395670165900987818310876939514930971054717671248533130829950629756587282941848658934486659469944976166953882392946494638562838742483619680972940239538037198177454878012340434896036212028060513601033677328743250777545920509788105258129013768628598875614832693613598854010252026747082298011859429952101426646398547110430574800730104844643961550465156260144718951883115040146180801188159747657153721951236175353525141011277456590495429759959970988452281679385024097468965295914491470148990323289894468009071452422863713987420041978807607517517363443798579890663809860508990559998000736673110956994034666153347157389474677263585678561918254587600812370272284616830971209858135964950741611157322267126557011794925303667192102631279278698608710398050326568345772135012137416015709328613990710654547343442275604875733946729305111716691523932912185672410458423607622774685122424566394918881880610711225681723397865268384704187343293795168686552024291502579238295397498695984673915002283086557130841914343337975782580313897960352571573770235026120649781130248618435694240974315651028366239607590520022955656804878149967987711917236392841954613673640934971266762822919854171529670975056106121057119664726501818392455148842998255960589083954484671858020904544943979882624031654412403027854046828662090766783637573727772860776798418158726071546796965771304607020111731559509677613264951712455852183595638215522802446409882992325096515833450945175109899398113967394874208614395741443160937700900458116978631691021885362289257957433241014918158605093162413209291348451824422164359644664533377389306747138620175235798393895980815798994780117780873477061173604469855667971507352776557194444379783107640997191494509176377109910832922766287270600358776055963431730797456189062493302493839063262890083834396458303465095884742441764096518188678451296340988819461896345889538450183575575699204456680541130996453031133323022493625901492194469962715875527988183961064653699539342843278597910063335512132340253239375912591795406679524323539483774706309774972985347998044357175778873026269861048072725050245310336520631610493097481509677408158897363211503853622578426859035434098212023294882466255154551473514422092685519357559350112632822089348491935982556391160012252183842037422629139408948671214401445329325556715682439923572197982151845742085878624694286224330895486526787061487959175846088033940427037073150395711565801799532708827935437017781653771339969688722995314307128772877592432695129406822837485003443246096508246054617751775521016591198882901823705742726824598887323267069228114136507536126859048836102250110809483579274285164998557151797279161379135004140792667839136179811436948599763224570226255822763714255831800910869976725367577397286994816061687226094272604216949367169206450937687884671286605255768843993961420350218661512754279228081916839997330218688621697751395018982450516288167837004074434607601069005922734506587172684667344490965053462501372631279251058604771676195231893739781116230999061554436759032777538513119631285630670170928013558940429046271603865166892760111957262021104516346765546666941472267040945774618111503446962413056017190878117518725799009097652388890902834495451809369727924945674957273198430391359843997623375525910593518784766027775870206487867049247400407613711925639207213179249098825173981637640731581484583106487856960738968494194475180597609666273101467349589977686964240111977721664050764803465889790938352687945168686521106358287778699682336803302576661994279563598478738058044005106262400728969403786227019824706257444511110580857622541576420220133611395939979954782147030534818472104574291369637385734718310178737405795278049131700259006135709181589345851865225895230781395458414680995368611035362314549343845507042130727815346292093924834610862491436804201671875886421635369354569869588908465015045309145508178540897555011334161421335236540149145264995412221363917924383312080957033575226705366784629849509069907175040585393436703568019549525225438690594444191729191044765290592239450226188188030530026240941430159362398517217129932716295610955547670532615164467157389368189401794940457828037980974479393491849609526185863238563950740621645216565382931636759821835023122457124816450576265155102934987699418605924047892410580876050770383089267852099790652095745806347083233961195061031007333870096330437201109758135095474447120736157715038013579383755411292419343666093731961394461973342714643035178203338004575597786654793460411936044140376271702558385336548200315933177763744140312432421494351555608530296585589714308468669365657098098976973784133859946182004956283915129232471252370895961892560122158927411046204198353691410010127702739189598166210331086284315620509047483242361892640040976913077604325522108438949767462249040244343258096347118126247639848536668935351371213000791476961606583768460304100152922198926928322450141929950652969367825180124699378678164238033006945660262853824256911924521703852485261153265016235251446182049445145159559468083883346221714943096994719389428506715276705681071373382040397485456394524627370266032398592191553203997028596998968519054641420070765327659021587517245031779095470202599527098071082265873944832781701492020182974521438413985357014688551687335962561143744483966468555041060385142905691481557214877385178806404016986276977556563141896173869508917443123378135913275537555252054446213520773368362953410918934645507582912953379211824034699718464141777165530221859729077977878590639933901203070269501240758163381746274757532610635812186981406168854345836590146328022132714182482358006479249389698635016881189842115325805063268452238825142435876888979601186187300992400374102903414428948576732578282143360225092402577233854072211996188298306115012917570597220746465004944560096469961628822699914694620188655172254039749399689290122370436444047064729268577242824491733101892279944927982777050362549513906231176074895474358964285472681146056365120393547375301309313893356630664169233433865723659254725820178812286757599285957506222948273723358380602666603695442077489378423005555113574095034585202474833999084640727093401334820743323921625816413214582530009195228390116032555470278277567198419419835844901179265118606664788478474774967422754423192449795677444312702437203954486841120761819697093070294926987288995945250103314447839019739671522582159742774709561592930802705527626499480353336751301092675705806613278782262362097574154261370463486432012276859845334956948914497498501388678541569447107453327410848274641880985836458502632150235613912935858458008327220308640617164310308420874467242567169520058087044252443723632257523930118948778697211486291362310088651191405431592722770020866513129808288743645514868753426579143619838186111808550500690108756344805426653411736124261622144029046748687062072171274358682893289915699470081454356019868540112676844721180147373790846301373933161564178942684272342246329932821461154815511950597690229296310382876407704891930636886220914200986300341507879992618703319923275474880808248783300459683290252048543908122512870957379608504853798825764275614931385899853360699063101887320395821469352378758627140874186571670130453043183893849693323475708384437306846215917604205839564823637694374654977206661869319308550942174283725268910739782481669224307535093236181097118776041789415043397512895489510801101676132578030562123527105472523757567593835824695238222248550474438865603523775911910107904219746070756841242481868648753505431868745765165343381836609112966409120242500433943580798050254961739039184698445559418375118813387017440219950381220819158200758883342870031007461344169052410634050683947992662427810875599135921675440663549815252791222478193483090206595018582103497407313702151184578571135670876050622898850500591579714617800180187827100975432757894561086148439685986716354697334567889328859187901347611472052297892979104788005082941086405040608514317609849547745028049819552458077660367607764732921581273961289220293694567433497543121075759278862014401826441944510128145326800653859112093168734093223731534291379515893102573685753140126211956606619448088291289138508490776935633422835504623842698160744959686973829558042252356265265444705750272636200117104186206692115466883617484086500726100418021755108979932963376957336216251064742284385338325294389617660092393719873008615754945183238538830968244149285614000593766140427916548991859843850268494202591304155286003874176698191721332257042443247243916283667981122896846920269665829972140734249451403471677142049975355969186957980642983789059710067004985382032343090744589774874700646029992770783492506914208603331976921451373897102010064328515463735461730782340447131478626700758240722827405980972725282041610775695784721096365427004259279389054113446515299952002953170420389464105546189276753387907519802161946597411680801052636592684642301179669821686721661361449740422308376808596029308585155460716008761985821173861796108295930851537818727811074615559046460501203942782845466770761478226904063166237913305894285122148297478946025198597881201788556263015661073312132547100549608608244889135054039078047616945797867073607743404019843638199362225187276367753472661283646563730723568924598744313560523947016438804682226688356637932336063987826204892373750801668877122435466058446941574549343391023026460782431184051465225880924775804698521597781706731557847072752956590399544753268910051094858102967679711407183519242784874462478799822154606753396888836267972969302864858824033316922973534385589354092898097435440993804810694714313060614224684120629167183709369894462929776906145459705199592486164593159455919069632614291691510014346370812021724325953544719941215640918402269462517814597417138351308715562149352429837902913385915632563090822733530972751286781754312481220423064564337269063069371794350331449164285864562703941323711304281163046376328079438793520536959729449611825892823906160617301582353187282540489270309092342341203930965047039825947451432239454370259113244207767279101776305644719403311851726675675821151421787688288375540333063105816205044961697270193941858946971399436858626520121333027176826492661927497750227191504238538231938254630201869227879569497983968865406317520838474185805733104418360135711510072776436926247048161371655105680736197479951545124269330325051917722911378999365081373424457007111234193238023315102110352107593734597860186734154823068708891536657032863825990847535516366865243656523104783424012846672680966761732759107110530111786672868341562098599084697372082455729845978894895587637210414334314168343228384390101143736358499050875768879661345304939015769634277233814918127096887980881356921702394315042777133552782261383755027861711057290724876690795694746872794270238041479889840542100461476781713778440434813149140767153673956525999079666812043326870287381817906528035577510166503336049158204987796624634869312415527318858796692806836360658177517062622229900561087150307362618872091185343551996487950620750028466344647580330216984184523225383559144046253003055356011755175178360516023220622542150437044010888560030252906118189202732308694985208908233875191111539294736771883853437518694245467929567601624026912910005481044625538957214747370832500519600307353979870233491722572402699649018030718662498842978051661769512311561598046107177793417988847628948863208329626919178848637965602440536874283549612835121408510551724110465138591884388123320440854725397072179455522259362577250855321168604934075213016995920821700528129400304998059638597986027028842317287440574851208840694811854780915157604265850777792437976999360925951128334540554204332863620748979461868454927438498018454867415313293160233988529656390162789653621372299185782051672866525179935183233043648318505862581523523863863529009918709756295764074048882775959186198959835720123218915734468823019359479204282628004532362342830786111691384019073983462930161489040950549732296597056133998154745995280435867385842142155152696558689282851421708040344873888637522012784324469683863479254734095124970876975421797410800027218240492318720560917024175277959463876234884739316845987546422035004422524942386600296258672168238799008644036691675910468076848119651243140710296664871780203293329974436436526651082040331460358673887446861080316516606800290474937997702598826305036305162710565621512407651817878654570412959576159782883581876582297354296870113550098242428186806090234321179012987983084129330963117991867374306579806022581794257200935773545397251641884995344580284380262898273357483720472958678264758858912079619181911128316062424283523673618141787151585006927749203184101233802095784759149818549088695601703917803901697282282524358796704575112828632838923886756104752612576561045339926996368149806689485728730079206356705962454316437201284095517671169134600774208359571031929556654052754648773096735332561833534735718743402308380648789770135519731492579919303732631542018410938140678246467825966652096447698692866421079424943308599363075907909443887841162709286846446472595603579012850295447964295949123501044290139274558831361603747959215413218128907981109146002166176774510258400279222420967918203737106111263726994588045691388598998290839853466188779050378662926134154812143311180904696307436046532629743301315058081696420411683010655399740949980933681127437487337058927848784858050400433352295232709016848671051021312757089078297810659546238939171615641222068284334137993275459412453226524794199977547488950679737534232358851674175539550986284733847802431158403422798823766031879641355301516937346764990773702251834571452883271378388977973823065213062022497784301139310643004867707752050042483232259419388827389491865786495181420188735734554546008653712630861414750244192974921708725135303392070828247182620118162691863794706343065348754874689684289428794487645177193134878709669636363873855573945450542837749257249662047220070502959586542844976123377716343965202076524853038145320114271286472095736767909238056532568652411111891988003162294050986759832058742522800176715373245419582911704650736000638817029584702771052320137635144792848182732635083208708661089458971987999337945523458199398107074606152105813576968181600598273643411159818663599661159593171445963886188205758939509183013577082951694360869827798502987909150789135007949272590790860933356088976237756799287094987569425974247838630103245042014112676845923220874918858223049457794001415605662454596188685646843398266976475534976746513355792952310102353739936798166578146460247224479607650475679710999811088114674358529175841629416677273290521801159362979624573925127795599241306884294527337902183289087439249825985987695254202947257846115056926808162591354250555276564818567052216190007187991240474647063127085495707028606528518556020340343420055503668940692727720151767098665506266959429910252230885169106702713279604578643611321584969803641487669704898309146702363618739022803390687279387736194427496616746924479385786855667825448122333548019454022924803339423066423078116236531056480616400255465834876580116974525627216406718389391809155146797863258189083819958908321737143791268851086574169423466067425901619204621903168826457730873985021864095741236202475248512008182755087931524717441561518020731910622679525315148798819174183513962510490881015212653889275635937548517140994465308264344988601237067029380606180441117093456041499307792090399613175884123165360002413503181499889136849581399293861308649480585703089438486880320918463616915701006963352641775030051546898839664757810929200598585442210406715589407374195320600031691499104216886403309625675645180625585400714633693028476924989403681067829228327936382177003310480932045176683114275879532325131399926012775487561931423797078431024381943430357625733927778422814262638863633836393754690010939056663271246197207957161667505228322128299658229263675651076012916847567955517889383364475012642652546456532082519243828251834734676002625562910318177261577041567947416826394627037758108836017872298070956870905112718466802639919646388291522964859060214827694061320925363949738695933975911802817097777351021275951428665415768116983273943916460927312378309388914489215002986802836745885905835143548405187139593902896688828622398615618207858467602743016522798713683717059988909749300070143932528657509126707895126134017879987441226942645300359144767490206715453261273390571780296389209552120824903254582085767152273481026044401009162666041533396577706651142981165932130165562601877385937779277394876599740329887011491789737797445512468992106900060249189451002769602235445209614374424767603282809320251835705038484457917406470726353628949295903590326315384891810486317816053009361256484437505566657065338245941781038735402800750722161367477964227561927121032627183343634259917470777987407087544731997503107218291351934267946286621740885575016505435601276627445470120013823912290406362315178995031230278289201889011896895579207904382262737310541539394462622379731185496435089320349015761779650322345927494397981925715903303553440517150240338907187292247760034961788139975795989213491305187101807146350710996249667798466863010254521561454086685835822299152177402186434706530250780854103499020347013265487138327029607370972522179332741641202086233044191150417927981031581824526223889233748228592679481927584824545375230948034375131888899948246996216926026313191891078731137836406531098878859523567553901881734639978072195698529086445090943915643112509362142218355221263552037121570247974579856022448717567049129830163687183788811862828877442383248239231296284269046441583569363532924915299599709599654354698002570960050223701582004855567050333548773511624459419325417081082921408749421586445732177283533973417850678280969314691305243151696707177508253314789407876595626774245293107053214863194795583983856305818779431223745404423631164980710799509528818599885962389314878681878964610269462353339350155515607046077390792237006047168317927608807290206816648738787614463887954183587292644915277785032124102345389861128291456946101852312775263716426014123323101644579118408003083748482489075124458010561847738415771594357319233029477695756927026720802217407805429169862728450437023954893286623951847593721705701220312924898917036993825723067137031181311901635283398687146885736992539141276651127053413024880996549119908563653168876266597047441486612562773133054796812542999098990633945158164626142244377731821259950134275429240011564966868899984051686226548284032775592691009264923326523742585011066028889432238166801926096327943850628371904013437518776656467305626087457314537149167377302751551782464727202931613552215501293164292084361481454713403321096350414365469081740798317769109985018400455432546767671951803316320719668297362704815297008386899466967022233601316154617190175541510892752620669662563922845201993265520711683350582245260985131002358990031885681189805884881629409969747980302999901998809218143138295902705443654599191650161732173329660206531390542613775584012439591390490168820832816620718945263158499142616921410978963658058669341807102682669053878764224569492756623521586490707794273879129483895602034696904574043134455991956802513037639345982707530595152406336339693803550199484294511411223733989580239332744210296006837233027263847219886746571860532833487803777941109043725308313501837361147461628404318967186727842886182030583184838411961369300380010053996803045058464083442816856918438524050137960208710243179247895728457813481962865116643847418403022431887940057414588336439197562842112560872249820571985940229960911330855045620372917206773991061804513135946965932759797552476230074845232167624167664936105871628619950631715745988318215055500735785342622509337343827746188767030981472056918220908471430612689662202232961475228493498137153927141096690154172952524331525396573129022072236947604986559273469444983818292056950684058504692724544781925997688611266283102713417374780729875112598069670631891186639187717325958786373379469733449433907556149160365732924300837388437258394241527705755725284332887247070623824281882156701477950403605666589866895889396530584679550505876368394750280013085287500312251811903953682055946370010962208049095957249048513255657171129043402034905677764686885153614466859036728829937333555952235447223458036295107200546530838372142032030408228963927258464661027972954666095718351662765748006860507354223012123558237439044767804457317397534638287242725617389800632588187584824160456987218073488253864311606001737200994558106760832781545741377745271362092446106560753214015583701764826345814159090443164611970951612170857125153356659037704560614001222528284275649553261822129769620205793858453070388917746134619929048774228061397345880220405088727103260540097366293252394893085459416840954271663267462232567952451391732548424847760771546501223728690321353288297916317225643505549079840910813696840233397462604174851442373316069274798438642477301900779974635838216970727550904907287493480063700985523139767869457503874615390403703562465140075689673350958124490340360978499403317485689465269680314992390899704680856343146069030194718455755102518039776591749030975370671704971648091485473126420092045049824745868924005339777352525947877327841261180077806424622375109973291467642298790273129429993575001134035482502100026917332352179867338367871996574335113481314671618145041867206368573280684147587445603229496586535885095972302271956277435497611859921394659486134866117661119377848369459024219456864242557041639934402359373069347266832729170971458092661731189810783972446995088420200637312799725374789576189581578155976077809459778397752063064335242084549833487147332919518931218929188746834228955394918188390555972805515633244295754970089209267362802784460144158626796473580885580069705609605833269836342893360954859562226728020379596117298536906192838719541682991462623311277857247207329187390807627325069726877115904350501395453918138475180229117900701975248161672271454359099383875649742966188819472928911222470028472258938858731601456799038457535890887018258285034411778138906880043745467595080193403271625119824006398133343668582373041363906012411666765583692031605972419295552645057189622792902241277600500407767413161643572753411377302552902356313114211222735742055427486937142877574588672533413740159651348423925492676715596479591061743941026875145088204380960972759979736461294293344142513928179431605685891394894555166231125227979604671958813408215159531041222627450157336456978845703606425051096380769768292162212359424077798667897107791401627753369786081129787787948055598941030143199439857810254928315288759091875589200107954400230630964948091453392135626905409339913334746418233065488288076775091710066101818709634850352861304770459786515497312141736284810393820873699078800411382362723897361874234776092144994557571809083255114185703669297443521331399804494811987199523408340310982864158269081998365791187845458735833140735610640770424494320986384759185831935170506721873592934067783710116888819885254995601826202065033586307137700228801470396888102765898599662118389615206722076093243084801287577317097441479769636967967748320164257408558518034633294444349765339287910707919497476851847687849799002037919700279332680584904979463732106464656610518513747069160415477113805251021463872432036780569496900518920597003774034595258926848119008866889037664296513553067513667573874939569804265736965319550655602300496974423634156990197670192292878199212274943298093054595972138562976883446764093023764772730773005745402970245800098775875601055373357620677951218070219758394694055047326034473506063521407563270869996416414738449437072713933565336593024558371272973848899033204512339964874559722163402597061109593030993049003536457792377725299899651661097415661504599853718454636501667567001833285069490754862361803210924326436933107598700795224625229123050019910179104754469432152280488248893758308360100655571042349198626983627752171455842322569218731303625901712504240725212991142262150742697361636693137821972946887828985827811844813988990439969425740723334859585300965935392817574117852467733668140072152944498712699611319585199227395828518446825817109065863691238424878958551537594363611896418425230602401118096422926477411341795987225411977687514269707591468839161899098465032469920859267304566460299917602215057491441465590829908991891738268312876082148881051300740162519765638599385679469285365649387864203199895532680028202364599866518417919970025826154038192595027954104654486757932452141374434659930626040488463894971074059622272914249743684844737544834440904394744127238157125564406974601416962258228547066274231348003380215935544980405756823865068086412624573363023187599864042987451729868886204197379336693957599204846436612421624449868096009992003015712750538121039731117606797827185382792298209870392652738104708825045442835652648452587281567514071415238128753241817337624455254080689462464288222951264588204711877180515953534124673188017878354014454388639831178660621215491334112553084571313273049514960498069066025323332632801187789093913214345852175720841315093257833052807457492474639799106815585656769948003753408723344937912324986761131434619356022985613115644988543139882155949131172798438287616534263798602011981202200638689021110863423540520996293062835225855855284275234365561197812343092104626802632285284326177619118400096292986961775167083592868419774516924984567754025109131725151357393621820096623875605552961266300981879081106985095296775154519025936059444142037981676352718401836973176572563566149767440130017719477993413092706478524797957298477672011493986556122857995527131479977041302828308869454482134846857362073688166890504535238372562553627425388201980411923443659254489207756687837737149424861865558540296225551331254459291196175919224718557050781150894310552042176471807989956701892566199286614473709041344843253604050750071851276186036799326888242361890798242387714783760065296964877476486701115733513864816643077514993117123748353143232756759903353349218897574069628714215010761173868880417017082832248540586972893076118994018224146845203842021260935469247170837581558866864268580905180862033769919301897320970087590531966147297201682561725128338171767654551600777271157789095345794756116432238072020424494964001260969835346253711625408114854967092909339179727011668128713863333919987755830727738737281989872901206604963745120543013617830506530381399847690881246400043015400642539444474555449141310324097643759187207077560796411953630896173232861275358399287536145301594156348454728719362294476887269979108393016073591003435561106778163115356957044211519166920496719467854930672550097143747234394358535091174970732961418560088540080276044453484413834507006515999376573311543115879154145555158767146098103522358667828995177604405486674733581546292168487198332427139671608355451591232002238539592908601512450453436294775854200952391057889798543788176210748890478085819474610925833203333477457022524552622210917558932618058678386409670252338827317014272025632189698838278294042955301817407546960128895618639463368494953680792303978410442362978017963843798639124495800658580718473178995654871169594013999159460602028329116410622799262698293714993127831949051711364298305115214710574766753546203223100226320532375959548050786055616800307971353771879852956900597800548505988422584319102283086682050561215841586021768595895074815240077677449918645152769742425352948235030810490993575945910671131043248213513329080386893247098775774249375543152143209557787466494856687871604424440309818645314903187661193513193180871233265175508817787954343623375915929237232399549607338975653866758260778738962234239167714697420836803938231040222210421545036174442489746682230263091595474657843175577320531628594034933402584280390170733262260051328254984164335039863492508028989704380194751284250212860873621423968336522178871463815733972527013369276700674943796324892119475358212614999801394843049581621378860128082470845469156781279530686515134333236322557907050877935495124522643903960969667789846142406404938401244256708117668264994497648480219100821169102277048458821189813453401610764351723301252862671453525545276635286483501933763340331582501119343905035901280125387033161062948656265813453778697496105254605267011662534405346488435673428319542553711520630798175612443174040014040840753316821528558624452528133581697545892857189109243861739542602180745003506953536467471228935419111087931459861335740942520194591707869925084230744322115789676193714501359716190597510559198976432689085680861837496938350828245888718833502746011335444801104986039069325960380621333484113793552524248709969385324665782496589507934970049803077289711787971643918333036506712158906722982104605225351315303735469165740068308228311674379539475930028750718560743500767031056078350892481277110110754132007011811723295544497015668695969463794042553644727647662094006100648492330697922275089947767947891429967351367399331445803648025198235536027817177549758876485215210875610700229816684285942521188654397393738552421071399956064492982715304199025100159631121707689442491939812165583209476272551026987485164884251473494758344578166385152566314159723227835104716902246099289946935603348555254969649396363329357936422925399041682311964835600601490562690141026010641876497488962162022538059137114527277789195583097333713575715450000024603774646218628530506840022607235495872441015451174088158785178211475377412416699906929366150473176650127920367809282416159001212077764284458392518067303351646661090652163656275422504068570288871963889988989515811459546992934462776360877616740630741228401046184213999068597865352970533952989943952741029533429432424090485398400915809914441648267626474337954602800777496734420644919608990751496103485666099968946744867963583547432162219107748549793962853960607929202697306341355617047490800888955898463295268433627009972463606965457906741604342212626823096526843400450840280676770905342144202800507701126735091746422215087603364962697890272393752136203976089749813255189814498271258441564404654849242422813400648006211439940592971465215611238873308177199592718563181340893972002319813793194467863067698599979991631919249780790772743453847494341359263749552200235814453718286102886332323624210207120801759366297450126027032615614417308929372152424412965425520078587928039606262445049401692354641285773521835177289819900157331704003840149680840690223486966201690428928722942084104924764478002796394495509811087294995902754632394411575310347996147051061106027290436983042652409837630424936259327428868419624137437861350910553005739385525391777387007666459994981312988701021103483190542763533643530678015531791315184605243522210107907953615128462284682953363515173232216995988271722227128155714901808710206877477570254007609074355867082580915006774245673595902469602260004764584496762536797117549863670791029738929499558269206613774846715553642254340494986760513076399168838749012101867238739907810277556044406590615055151334319400011221565986787380924425330233348373791766188725644883036137942027253815065239618835400305345909709191296942613034589316360576735697294092126160082883410939711513107071937847068402614033583084962370757887730013167676290442520510650050989489750239591138819286732802544282934209451954229471381068016759290174121059571810602654932552997023538601117031967629331769928588444237899962144464489983012472018788019867701866000509093563711806528393141104158551066929569778575143551211453184933686865058158121999305768818651170060506897559404736993238286081787300548635107940032333425144291661606960808017138580602304689825278507943268081133527831236390938425439786751729436608818899913355724456171885327551556519635142753726411932228022371036779351616775807068583234297170290047597106922948542428708000885823673491766381484031163103707434347325477540250758867614046095281759293708407565583286664472889036395669091389794036808171600606420490609721765447454402874247344335983835904966590127149620398408252826042810749770901049818459125419097710267350690803305112486482092132297748535808407393043726855817077619898283304517034291933790307221443865045824496597946593518037431700020540664375400485856849122136997491453297220988294334238827125322076797838303408932800370362332203347942177228205327765433535015636397044111424566178926201792651476046650627123077832805450389366183625262808114141199375267472200019532668768760599781997669132756311940673226105898713869311906756581937360936588116675337954269209001641500137300799148920060497994849352234375801944631488722941113684188981001770327801402983186171170075647145722669321980928061444829760751772121078272694065443528491519439783789378199698073705572408174384327183285327215537176937505841273044747169769120834369784613011575063305348168138926300434925422808441659282111420297366479756855992020470775834779632943676118286023163515386021319353566334042262984278274322314168219217030378862235736534251638870887838268177971266745585775878877971960952250799525534328193634440324442799176902357774162680171279625942658607587018883037278949434838393724823614462956059022625509788773495114853112602604069896354167034353123265523539352976240675767693569440268775987803946084844814685620567550021194717230886060966463640988054554719165438110926640962310265866810394268022340274238901226935854670848955692780837474072944232470464819044266196356709017625648881138289462246444207708046825884410154851216878408174602858101632095622644031561587910802750056797945366095058571377314259533810294145964643876055252490029646526957919091430265393411302502555802291417474069273328072916339267100005181703688662943357674863513015907949581939047847172958735778982371059249577039241085874074601029876002655794311869804734615084657107187681151782919485873543049104713858334550321212206172487942880657454954830859288745529015439803053845456477777825883494869580428050179982709706905778788041916854509042461444537001512572262762423501007943842928528062486525344108004181150578032469730893069040687875326979762426940613575353855456375924703565305664820024945894729636131871811495085179442796048707334507106902882553263626628828111177180334799245880960631782821140727315050269096041639652786775634419184013630086655295552033771504226058515349278269967794851079586640797027242287698594565397770673291136148076239166157385461779211675805762640062971972598742595006686142410051266403155158742104370098378546249702844515721782403204786956418094870942346147654672922848137212129960228907420861955467917440721952430499405028087192422657004897793224183648934942701983306902996023043256206532384116076684568653259957152601354439724907221339741248641309065649028743402427727719201695425813238432080944899513596856928759617264428921682279410123753333688389161453267830278614741347867696511679782499639480711197712068544001400132476323221395305133140868326244786222103544092564065494278477960044983263818571431897514002346982530819595651390043112930797470267440166227892248840951125181294963266553733534898553935260094042388691736018083906991229716902395800814251991804652831656559374223275043053939339723731760409518653214536650640985097540170018036970077607944418575444455479006529828362819858843501562052176539785588891471586430546962656880804281675253575692775235244125898702170642677006502551964515616402713441286740158018850951070112030705334499672086979060249843623152386060342601050712202492681131968177007776913049015642067095559889541128958295044728920746908620705282838765706507311080502009590214474154857840423596082534659810502133579922368975736098240380663725271945633908412802883764218645403204167647578399585104332859265757721278896096418835556299854736241631863837882753655949959879772265451399088199049978309400214255933822096629660019240857477243327197833978368382546624715214841807914064071566131185393676797632214078855631465135545237958788871444636598126004020931645404258904423490566788609472419188103112050338929212514937728497538410257769898581286636536022563601780482451628894565588671841662130623326627905829423955560997436575810621444080067784063053198274555225579239711424511157047868396181704416854438630136654880766480500510766823242017223878988064816195913079512229218809781798922541584627910374496903636575308990837457342126515093021444873324797103185814122493161180938642237413626703310592721493398150661993077652512361682589607871079588536706089816803612482235536881190662143762161854814489256516816339944182956960945627728934303655632248131956930227301411787731769943803516517571823003643641688421212960650863111392367066542635918656559799812903950602785502250559791385453851577199175100454061637819575906763378366502557183424341192889815390185077516700014700659173481911456656875700046070721797080189794821462195541818778791083355495497401374058884793644396540783589480700183869888511143706649633125455921239218363194090919096717130754065567476531843326542888314899918683138600757941871783057424784318658781126899793480082011358284012775221602040212510744869600089602304316679883684171479008455986199034735564438906948271972620780336280013945405809763826226069242543532056762941080188432953676706048849430984575678963350461672435750953400530424932161586696371504495054969367503515225594993957191120997235001791317540152116739683898238608240019661781590722352585083009804472933657301682811898049399055476465530357431343913166037894143451509201730852879054490686886691585901136916593520113380267383568229773383396005099700595736460365664575655810646328011894328225364466699828412044590031065235915607994949222653782444641379063041915025162661557398010792287816610300847104184470916229166470830555211307694964286625568965833481360175495137985539205759797340705788695461247535005435491716837317862589813740043151893136372768230620376504633149900023164893767734902107150298824315194279909646546917078306709828989028550382820202035129609242600069246183575059889319730881398300620681499959650829354566717380945295572396059299202824405908374223248443513636152765420144562379369809438605326080562295850143801094392400173503180488445013493707485516125579162290167093796967922290685178713532593140269435235889078436220810314834181684148500390573267140915115124236572267786957147197695622253773062363373156719610803276053992415492910358176423193624714379302182782808287165575786378816569337087215986741491800666828306959938183692201159140761992294629626610889025992022675776453750319638155647709457009106138885520071043508079326558669795520502212671481996021403533533874077897694900849857191355713683675110406922366050398718403639404105378711769305076483188555678675530343881446621506269077836071381100557764846542340119443866743188024116311163106552647365356982823468231713308720574376096418491256794936215919368418445643986927603223612673290780908378942268849165244460835179316063771860267026697103707635986719015880697119699538289225137533744057991662398324618703862033918780460851819290891655097152352259191597561876447854587308208005212592910986757265780975123942084575098229599645166149664608646025219312332443121465884409399509612969796213939282794991452963088648026189327221096652828807656388962325465610291952374056407263081509931078386512488118515075389607510325883238946348978031289614600139856325896062084340155235522984019741693876410704282479990670305263952273900761183377696173438058511041659155982380108541773936190118474684072788975815032075962833091827878377747413432378349050628771284408982004852008684136107784519071083554097187259890263589180993063645579470003046101920475762665234713502001504680201427354915546630630042999288012241412539909804508598662609639439776588650739550482310363522900119188235037267497076708946340128772446223364551913404969297845670063993108752993897147887656575941978228546455623477316270296280330242266767118529108191975543897224198928414518402023256935372602891622333392293703659758108191750970840405457143652802042875000803532550295171288285891181185837112769037521570322531730461572173188940595991876239583127297529040065260776007920371143995582359672456484425304881534154957938584916451410078781559464278057465195785713847105704703936057655664223344266538860541865374747941972713077305040227138950317694434473637130947876646454205726518814108637022266148433872820989736569738001738817611900693415814170113715575154948048085092957304419995333851666703107536909840811170690458389287977949526635190335577840380449004868373058016166095754890907845244162550713340816081501587634071757894776729219384102229739108311794021261409328283446255058457481568753845581614599017577097292370169983015906500495006333928066431805278963105561031333874497332918314925245538741308330512212236021783438219273293603973483095650810325230024963799402623566839476126405944871401393561983073935627795738092449080325216075891359944993171476491914206146875039849303185584651246625199721348444335922633377881317575145981248249402176439537462497389404851886344891856243426149294575118274294060238693111897533731805606317487286901786249066240756153077818653212883771694148433250397361453795465896714761927419182785066989560713508597309576367016806416490749433117092505636844713263932391718190305392887336578326364904347288072516059151501950494886486402470218710183207791619202397453656552643307486191960886138374801835304937912168425966107485666388574425320697615978089454412269119960018770376382485357444681839712618222750105642081389321694065698367320570160404312166359764955160370930806122809380104809625323330491581778566823853714485677692467195721115865225804548070630048436514096864851669893637582870524536097386893120013471105486662954024114207098937304567542973421537774153366342509523156826388799792703956499080732330665543985072361963988017957377449983493557446172762049624337697749321122410106804575724802749320197769494459264105158548966772197280855456401715062798317751693276736472339793292250697305926131095387964164733143185916738726638384524810003326803241896801723054944723664966321195262404751750242618121895128955201102367479328289163757190078165376712007611767834527507673527636659085352302808795931871204474776474989783809496405599931981842682563830418789427520128297889411981828509560457507145927600094535070105596171566549633483247574304731964554166667973800278417663932214610221697786680300389471289837257248786502544062831204452161034540011450200069710638583727725173045777350567184306256619446273108932911111997713493493184309193341679739182490361421192482673303946464636858063591945488215080027335283653916743035000188602148185284548448070443529172281607615295982877475632585517058838517044213550920903888865550514019394458252064704363013161634932178643118092851779844391786542055541098000519415591307577153229937893703275399740739438299978550749112077270684803321953223085130089649369353195840479752103018803304666847818076262267063906892761497253550616827503439032864460525343321912724011975078244151233873675102212910313001099648308320246257354266967562204567403626557341402544452953246975689056898170006878775699090216250309257222729827522064727028913772639896113628214087326380789817722330389718581078953770220728397690886815096416982115149967030064963002883391338432954941981297611143452175661608893705621228547561754920139080394491802088691128016901147309844782573657819174985265699541495279220372939279952607876607216883279172257845549022171646837199720641280352768710380064873130982249699942858160672633568308657603024439350151455271745876207845517581655076095756407109648895081921016766570932367719981393651450510005597337389304140765441665560634069701766135238530180643960527138248882809784202384670894227563076695929517827051204069427373805714681632042550463703357883751027976232766346689205202719415697252729212274916124749212896264065369069460674464903337419199002717343500197924256557258092895836641750235967927873703269033827789718768978414159164353555216249346221176470795623043133948719621593656850776484532359123454261693213104872459064694256624413331363422278891217841660439383480541593086574603011789149017092779786567827643344228846763154229211464909142507228624671571269675647951917519318740129539182425720000931566699652974582189278004500756599009444173544580210756960735266214351895650267147892691623953242876094360448109810311534313486160490770117913038548982152704891910250252170887850247779373709964629079487614564794246309343875186037733453402936746464882874101632250002710687588865239108900134269180605673973015227077004404110833585707884698062121937182069204914983234623987470359968784622916457203104472432914941951275642689176788259470394909263825687161633903773908131750383697922426232492634702140668551452776694884803445861489850900409739383010185780112347225779630413437198060621911880166525129651453691136212077285548367598434776194081520650194418901668692926125804636632963434924341684261604827907531322960816372147587208147947438528619616737930241500511334160656502605978784383780681617590310872765324547651151842577127793320892580300022459954001075776220338930697504283521345293061185718992443129192340989298248775729368758589935490488118701539310296682967284590172325542301646819114255486018774169885195760527114923266810907870255630180444376870812358578643781710355340119526292037819962063182766508696012014843708059426046109822252870992850391534190405090857372497135772460160596216633344533393228097763423984845589075712518060545227179549282029206912316915796201438213094226997121268447454794805030885033583154689567081220525221116919618409893515880572969175563178956381421674020201291832251157453841774916100310896342441704953753866815382035532477530801999777452225834882312122347435175350528082745209327094868145046821353282060747869546768289518887887814882405216161262668277710978718589985765889601641724794416673791416069740990297521162856067073904032740985649538599162783171106236154598974951399823285729114461923080458745846454299068762793986623992583335368740065659532656415742543440110354986721485846491180337374823060482456221019943137929697796251391146258595230048977851824147374703634655690171700101745786046778869613419540151452358681269767835253268719356721462044215727641129092167212758241151205948173161794967482189977181535899662191622868448761940598537965090495835914655940133531733733752508845538738558088786625020279205482401487746340615670687432361435066639255748970751817812794449519876190202372341933202815394588258344290676916463761609977735460376124541590178736876397781435117310709332158688400334587270686406775969409506880516579966790759030231104950643128968560966900341362148448502373696974045855204326242910276049830677301715038188933313052476630808310630586855285840637918668750759479684331619839433306643884213089638018166630738592388055048378735414071855346275675442474514214052454977235073008231197971733702559057728705850313588031810006962124621856484210250458688445668125728113163148742244483600325337747202840123010262667689306210787095597844661238816076434785240803230921782016197156344959757154682568470578139509839118661787108390094574874390943993544604111303943322673901093655755813756596929062697480530119552405546160354798617929370515612627802064810779096056621697139902880841782273388420722746457491425952595840690231330098007359046408991243065063462810381684211489348328667413008658586619341519097261944090559679240742719337178802738800880173749752580749696979136442705771117052807830616116169937867122963571215860144962560512104026623897612493074863030603342419586534387357782489742763070300283192928292317874563343728046585382163207705505627912715074200346026764398989124470179848584184744045324027649091490135988530463903968173616723374667558228975976147311899366376143188630065624349070252041694514359688037476899002206251262847081349539845876095554734868943066175978641584423809662982580842049811919987104060968077929669556694571927357921789440781802135627023170028354205517472678170813301025530119475254086778719827910908402403804838580493628986586715050872327727815825954784613755652270571859367467564786981907693025876271339687850826158883835979322184669846756684367746180467516551650224361384718422030454529629097553531312709229824222362777016606627931843262319021985845324287646426274854805618780875114850780560429556736013305849133255331277325276504947575128363247894542810948866561166112512501188921063328024908055391513851925623079576658765653490356061955960764482475835749066054506793478928487588667445410087713942675782073651822385157941171137349562454524318445288977678692614903736285608070367036349246542583453720147605779683813849252986591710151931992180636783768814176415062922925783566676339097800968705432917712201938859097383149106914247354174380112029682498185765073837940681687188537182927942635441626593781484209433226774474429805900302532342444278776627602464764478473805129749680436890375539617645523862422842820268643810212740902219128220015569039538679449670313741151269534900275207282025761369899038937934253038302280377879957940460083129842454392718826258615446839160886526833868663600275179825386853101557667392267774104676875754913177476236042285525166792996604092171985909082327615821917299873455575120652907043520378378165244146483214670359075189894977003990190055799541361327795730364696440860287386061284806363006591729774524541631384779867908152131525292668196698148922981402590212331614032286626384937500298320399839666565926921998482479389085557253319020079749926264372602489897820977802334861245076162313057149312519214918791967623832996128635359944394837861711668933208192181024674920159257009320859791306552052529295410068956724350579218303337814107095043278967196789432551019122234950383707999655568222479238740780759384853744576045574926348689558976692810490012733359108922375668685092973550961088891806036102998874991664744798548567200886957451759030660493776418323487727543147798729128942208454330975792965390801274968519751137474917765578330193903555321516364925395938506677945333692855319271126824274350374426293433175897342205673092040654203277980585951095170526023096959548805730894696836829026645423620915740932006766125775431920864710879289416787012048246502970956822468777795882284974196201914606742266346278690669849428567758903402853501575142084577103925894865611405193634796980644890391284481122575782250412090790566694060781808210640532471937566870704372398997084719119173974253579834014534538147570225218692720547285397057044887334484865953972265808998652166768688109748704387270430829941627437487128318022984077839274582166997272101563860381130099653382007185835683317948327689374049076796200264963626077436520349034194800597717357246807993436811575099431007129596870842634581827374725385908512954359757274082305475812558974138388337212488138059244281910667406826381378800664338932767816590947441679234754899686018369284873500621571944920162828586784069590004276575085887968587577855084949879006537112654020183147355350932747001266237871648600041135791380900021046802345696399885721710239835261402165931926831702968326838769904072188471150560017009296523899845468599845335157155633835759751700662818779376343734115587733388595508832123280200215897065864341417472560132333159120323385360663633390074338332937332483384282624383366342220906012363870374036070079818252780939921519890783933547333729022037321714663063774607873597535388038017306213109381495406363906791239253223565811981609912773218106318984403244161055203254364131423533008938128344821982433771714739772394566721383856734423459168970508892696612997840978091977431698568197773525842284805685781785518554353787860331883555902305071881504738338789281168940917314601676228816401226914296249621730368195342549129020122945360578692867810962061622557484272308793571802422610095852534453347749688350225602540105130465256078438600147594151633550328049353451665768049068200850695260296987881025323132059984131740117900026652877871107507564198983737104736967427753271762021914100753487171612376823371595502996825442511998334354986151054467323324594990351699044990037666481277324297978586644820212064615264641221847552254434626673937375025853810563467700490754528901195527987429828321753206401799936044921758418146297049954421295465534583739369263221513058812662671052782235657492192170310616485647636054946669514197908894092062924099651054452668424330626027181876889402524637221433434814929327804943061141082014816891844118900015479423472598020650856994113303590629363073167309212867717570399154219231524758747914948949449188383659346730672452566183228315448212434963602418817144299189580187914120490682102723612886935223360212678539674958428912769850132342330812858490663333280692196601750833572617981876500934927669272624564851656899691131100405781173253345326391958791943922618523177897757982861894448389429274261650698768770885807874470274647613138913002508239830269523373752187725314434267818866985465874676399465648155329754690202516657176009255719897687523250748962904810542856206155688842822020990700545362877637041622770458577377729298615367235509221497929351084773402716619945452435945768700570036574239214253459689891946036369935945407119478189919039750774620302901470386656373011947755967475980682519739394426550549400159895999934290783637955756944839871923927251093775749641526547125156392645357512455896271129683167610396353061756592411504236573366576088249569236711338742324767552254258721992620169394513349377053654086183712424857467121310057549159926958538035527241970514896433881065965074070009533607333862639041404148271099664955262593268806607053737284962883311510658425185002295009528848288011875063131356018832549239131675610390904096686552736767559377931042918353048272943462613904775451680324524499314295692625431340408078003484626158186425751186155714607931479653259967750754914203048627626804646060284660987362074735131740812566978423027232244682748151534164851440165147725952580828717120624362671693467622529653341846241258956868130090587671625895357726269402088530931049486312659154644681774970281596126116288018546674145479113334350729290132549783620004389431957033890731137985061678630079839092961067410628327039397659907786064559601292643379051795858557756909743000790623781260081835258824445830985843066293960339300177335544365681340417524800519067484351676869515409783368964451977504545008785334508368748057833594906110586964974167457827038280082625689965223302560534510894425040332371146359299025080792711108938176591988389807519564252917196446046610311659748062562778378761206735600891574097187422646449591388951509951233645944647105675996989265272410303126020369917745483725533125075819119820682820452298278091123840932047119856235572574850656757068733637522458986002584520161755982634954469740583206631775517590790717288681563977801145269687725630580359495975344725124805894679717258293835332023500832541267922123641995950343598359630106443493483047354954077898924720959453902537532934991629869321998596567005909779108763498467545518614442027370584856005628888601424451394716791327569099692045069091808174974765537446993970285917058920154199521163650587801089395738640160247108572802673087054419809631873394624561910785183940340348684382683722619139858358833696324840132169562189964645001533588538546140184436713079553744357781185444777446458802724249788845927775967142536045979987175240140310076944494894911493844838254826942609950909402356983710665498854465923567070215407589534213006921353569725054409795773149510064706411798915134358700120170368705616702138294014671565421584198678683135587814863224716055383810113534360829395908489428597421377214616667100274889491446021758611320472307323375215907343745595677354974814227256257060046460615165088608505573016012696956101822948509843874549958913368532466574117369067279635146013184408238704367286334742274538248776461233400292379981585326532774564780391264292154399830736961673763775368302212172736393500693589187267803751790990915455633211878796967892221324756504289135199082923528023629049393521574021488094904434253498540694437518310089975231932711100603083242611381658091357987530274374537357039173468034907292845028771453848401457503317111618347921718687253549221974783306753825587122621302429877639357444904059939370620038018480274969577003804019377916835096500467474720579843611789940001528984685329527133134150195934624687122025845508043856536412966079300841471493482649317494876181718027443870575877224683063016348162998109754631885888852415693156915597776683696690433098723530006690997043799289610883697528934879272076668617270951538254939548410085843237268344758948952938424134386831391895660897458786413657673429836521815939637906945894183566404051993904819640775771509323498992898274650354737826634103087046067429945261229272547229061555171624791491980650992891188302070843881923323771337920642869764365452259818965834223934811394412106693142046246663412896499231660932699839306772900835221901877875171039624615398430625592322725405727859052231267688742900040372312258554213057549932092176694567150651475194432489243595452320720113186075439954452047415820744685805630153212955716257420824950985516815653063602117090442857227042531625951736071588169639902539732491055777236030456695995282559362167796404315740797658399583428592588792858902841860066475094204764095131976545686588300115734536633699849813689925176200366589103044145422235414080145054726459096768202006447756703930446147548548323006627354282492181700793723349651568689901362542849769913461384421744124297578471334141165577769590620094333771022090496584271925113370117819630718272599350886920791973942723070856773154631858139219506555814229840790335283015140089929340933284506829689586605178560022867860425113362132901431788424304756262067434479817637542056152267273791287811339883088373616313293927047886535838703191623332630039232653759521377135061972746034354074582631004811117543318327465404203286670022751569636059838672202415829424299603738052410401519671813340467444175302097136167075118820053067335020308293374271668172831089211253921824266063074360987131248970466842644109970439357854435040497139894126483420769541477519140131308791930968403602454963832863246551778584268557745813140846136848665628055840319551278693158300378702751990965068826874041997343750623877877388938334465646879520108000030016563678520392219513958275128668276380403519587403389289549299533562070330508919985797766263823959654933127620879535108616969664148073155269716989366989385385139627049448088535617562893318446376887834164723734785544957147399762400740777613019789783903168148456703399370464420119012695088456609179235406811576752215380792477109895097297455780137314173946307828746362366689033663726983896144965880463941969986016236574419636664237155400932055964654505604987122547356981363273813463029897181329576000515098176803525476838378658886668614917400726740556768022428603203162387547681221896387076793980488327592879289056910398490351264593394778451244320969927539133087870081765398182838094114172279528749100606223430141244189013027261533497749790271118026008509640413790135928236797887213724362133640302295687822632209228623415284469452946578433704058183414986779861467333082074982273556700004282977041673412326623375543507765269654369157401961960631676925184638265845543258399525339653273039966471687288066856773516684096869767266844097026246463221188526278423062521670818347427597321716315486056893662510937074791452594244747999518776158543398923848101320563614532444793431188265836939565969889752352588370003666461462698095391812109396493737358865775717588111745990078415872606782618188264281910939401688258595455907171304480614794974651053035523081054661324988822958168068490414867514513688512115519225949089694880339399102080290981380218228234356755273641273050641348192048009207787733883852578846436023149090932443400284155814458322118614399740116990777716186408975185710012480680106081040454736721620625888049829447166191852725010575015324622844547673640256522920643529751565172904201374270310664267371932276573312930758920336565667387847628004908480518875240379475992792452962192602775773068247589010089095552899324387595798460347772686943443785446406631069259992028390997622290309928704489551816556267036929807584160252404725501798402200722919080109470928153527393589697854429676021736802144831421319490168161573392974546040619446885168157237953342711414300811984848596695688245174376688361541660408418023419156262556583977980227477269091012316518617150598094691058841152035011354664442690131487851911316827075980526203525678035383013123575120497881399841648745904163453085582545179489034982507728855394134358046818151603761322227137818750847909877820818375575469644625358564296723591291320980793474800785132260773391521010340295264353099408592371889949374368748298627558989075764939167837874558022366401421458941723048678340806898846861278235668060277797676264479049198697502340692213534987912841113081538277405403046097507620529184480068352314167535207515590241148286455713271321685738350386426815164557402364525855922412397715513039954062845261450399606992704311523891493489185002444256528995561087937776012985341914452995786917859067566376328437705362696290044856024642834652918352660722535633263014330653198872326408679252255726431353048574176916380862580429087457770134569995021426733011503178819572606820096562070053571943582555778534457140153651487926683030316811739146529806600287621080447995883527460513038423001060365604300543586481106617649295718936291384303638257070077681553284178052279404995556565671015659900855432256071038758628491937258239162405876773714771312253528871884285248959558291276877031412760178107066508607825351371271162192992369195515777675828011045254146958714442500939302358026042762479740822610282456148791608854009599725143458503691890756048971295514059411624086916682910332146381449209478190439382927041088275901837236821010368727328632025378745301727902897954568134006559696750740421932609507296143445216299159651613945040175105391036048046190333829085233114946672346916647939554784739003123988891325219156003282787137296306404519285467369062290807252528429605146197477146207035327139141871339001926027274649358157160111124037141605641118227113420606541508946324274872681716699657442274538550180755216834214170575147072931837953860315066244740825507318768431887926558252677665070258566714093945587240456116027915462188235704752589703535409944760446432835130250980562052410921562305515504020481034368129451060409931954366357093531470087454171708717783817175954315228277505212198304666881190412214274469177203681489934868118194815094483270209943331231243278214937855101566254193431730411447713857664183050319216124596383921738454685604295642991635889487150760599984735859904426948695151718875111403651188530550353266417315886142889839873967280398476487820168830857582905362021345753086880845217075536369681109322622581843963353530751639254951573438074654261980329215534727234226211884610703098357517084728304374935837096133312667612604182024639553957419709168021815001628760515170841874676292300647448424268925203266838179052037499149791784813514731703650881340154629393339374732866982670550362975083980032484344426845047534040029385946643711664004142472630745512323008381068788226478436374640130547136564953982893572498930142228438406123327518113624114524420173490917235437185646430262194721452463933018017800284227923411595309606702900348305423525676294101847104536336224541869939021304924737558301107884755599264508946874568711602623436861146281306925847588447266652598466220832600452853675324338465743525797027330991851690203230690090560542790570092243850474523516449184276530775982449911411782518413282311820522054370668306653271854554805547417545115894848226934597082191166830483177627696747136168101293457141573252902079796589585192143898540239031778667746965734849648262520032261071471756738418406289836215537196702127149199525643413743697978218643078628573895071309786931226783875741895262554066341388318270354109358052847131965350323267967399576096526089465687764044938596516594674059824335075679437752098010997511085146956823368518949226558569706749461599024147854786411758797036265774726850767167633809998284591168658228946364063322251645034891736928381211765485491821989164892630609453372548363003386336549077704946745055836875742188446116843243644516227852576746651126032199241759241469649395799794925750112303943606089552937619797304125788937637224764308193163283585599932814179508049121179427547368209305821458113756268951777848674173507083599544325767910613938139197100163666479607905811284232189530123059640310682324032547664312703219902487895584379479473056342766228027408494076146776882800216489910381343530465623876381889949850587438977868283852467854929153691527434002643908749921398918074559637510282428229124006443641202921074696546662445552261996521808358350904541022042492413927403265057992623729520379517715023563783925691029364343358457842651424421009934636253501498354701267440487045375728642345654556648571237573878628742391859663172908831097616800746582127660002043825640351674341866083423331285467447582091358687731763525098384175912201114433665246087448186654630281514124796295027656044817037931978221304681158449397683739698736954497119640490181523483589308006173276930422260549715238607088839937711154973056500116725141593074638856297295219945143033620308879293385739311032822390606434450801879556752037470929918622779022992019970510291671533625084620050925894452101224606822806433752977314694888440803696835990775650523102729335416047053323608492046212105700265341876868048182164900482052730423586720142597367577373414926426228878559061608420271114104702146900359626159077875448897242010346015163496809394965198008230548347041615662123616886334665313840691548149205727597322556328659268454849367715474966170256061779723146684877196403449943702866674650214512001832668669938120527529769135883800425714077787430989047140938529114548085631368635662203372681001975879960603805815184164839302599539150224054803283030666027753149551133421132059209065966611166781995807041173322514655525287113113628259774451347386613850574445654599766310307551807966521384796296995672200139783795449640519138864170679881998134914077080185903106587467929103937500233701576505778149042187491006351745955793260046190289135720871109861555006113578298216751092336993400960635422418844962557480329967837627166841608184165834051945041905876227558403913004425760253574988586112408481575136838449748495563773844091030605771545158689977918245382829128384943126672205605285765522833316826785430784461920509968985736004599421128044406101407201821952741229827088523947866557680009118880395287683045879664539285267275252914228604040603029604597110978587472738873119117878573144662728182338778259711015174726047775293153897786582765947359495705030866055878981811008388155678492035453603306076726820320078068963276011741019013289777482038821234395194229115854115239782478111581322920043187561572115592906752770530704445381209751711083270504416389568230517168525229059545871255738726402623005619658166105218579214022853681595187525766471298826931862181190966167223378636477829745630867616242663263854276506751130984808812646238145630469342747191883957229104146830577075933560378248903344019881820249534306917765229563786202283509216632103316688199097664119071681723557177239109602022134786209382496426756207657766223767785918014301939488641649761664872209191644791497108792782384917386271063797612897071591137525767390092946598829849763961027252740232905090938042186885984081627353079657933444403543999775535560828757923499368765764655760909228628637789702048186665394547180951917176856723155541207339074120494972730197189592532748225483315925403380988676557455870213229639323253205377763596953273820714495189197083351165359702505561653005461203782407920692574246937841836583364071078163748634405935546750889096674407199554384266916277295498837222159502147508010644511811714673761155268283365812054432180518255535554166257421636774753128497986884204503304283212640635065668332794397058022694160244079209893784445099207684086769372184528445692931864143588313741326440568514437623198959349458253969742465516194883852570524576359988861332978800909575784978214474224999757356479221700904017604145904395990224056110264491710498382198976872186892682997596028447515909668455569352094554242529873111127019925845254543180666953463871831388730383458756895026719873693327256051570130875073821248828148198182789560825456901054531943516250143791343433704745867633298704761498404005560049482614689875189296923350341074605814776537209947155766772091389252432334141301348885977307000126882835649892505216557486267342909697977343753666729237083347482677659635226378322931517790434132402285040864775170332939959219494444712821033980813001625856384826186229658167973965409932786150589310452935091634320840348457167648967218623872669750180869623050538947264959860592354691100293869772674253692677493040788650534437056152547894932012417726043058512077841359878073881947744427076987792048699014141880389987024635894234092782808363661677661991339745359609386820367501553887178925125681641689676828943059855181324368856419065346596395343941438241266635446496984458811085385073941159104353659311621209124387024354103204083533815107122243029193120596720457920127060707793913407049189177616200376256241144497807289675943544937567030190598687391856124624433309414669637571447986324445632605845312310516455999493930021605546901472424349418616288486752157317823706409193320491657140143559093103715602805271991593597361449988052048437788917310663440183978979498431505158853225978681244072174770286219706775949314150073986330758380743003571068159877884820414180056498063654615008174947691007139423106460037535329101727103142973376840284819026967852313882124531860327792233912961818968169335323326760972358933999067540873878094193893021592573696590968687277455206160256381385685458969454085741598656337133268063147673719123596664690544436713749787823976481077488097772479981413290780251877129712785569757530714543066788699642940290274432536985641096498043122309917361192418675273303098296237368014106942110389743820491725445384312587540770967767107243515873117667028540574734217591242742225688387610865142777703771136750034563371280365180052788284637129608882721833912177138286340485664222509786597393987054744436930509738203426062239369810704994832252849156219571065159442431940445095639445766671350506541727709046325149363034076581455375008767067250698358177822980640845781273396316003714491270818756675986318904017829113533531048574897972409169251825086539498558799364802251759129434567080365650179311776361714463582085117837173831721212905865450555987999174488931711200129586665040822729478758536466269320382471266332460525527307187000175152631855234837117091518802449411188976821827997839148384131301360624445837084896277429839988069545126942904148462559864345608404358581824767396586845993118229376125555524557360932124342911753680742470377220885502206793868085618583191910887312609288488963105921412162915719893269189868291268598236448766869472192752691067902033078778970937234362216861947920246188557772853032816968775330590595346864007781553412649556298981659354137508685148198590238841288512990323568687663710034685133089883068252423932476048073039489531195601686444023010735860640557803634305258904549886027926719993008394460942045570724619897370632442389381913330180882300790146590421312832813766238656622711985967521744951089935077936906786631695082719496190087625063401798646415294119659352975673209556274621671140742032372304550757834121324238891355936084408217562011585859006595588507875038756705162289300448678333147139805379403537410734477779113413636478585098318785118474802766750255470750657639125982114032671190191839715926861466143247626898156019670646789981324202740824270195675347084052698423703008879880344523052310985574923253825085264484386142656457561238689167244160916034513652888148452776227980207686431575975765552870957356398579811505828419895132598290582168478432431716962960552112504810364292746464975270368547608750757996310196140215569443397523935980803063190508642612230757982407524357911882545164126498405180112502501579441710146611987217965750172321811404782042846832666677847757686905316988291385808090491947412080264759857064828354164874798160636962255715607464638730922902826727571417772960034005892704266648753170020973285728996664233074965251531081529443833817091823402478831426637055442103637834573857607877828341048812634083896933822327821118055232492927085743289002789140924061083170348962659196254093122806831754245770056818709916697388450376416501495842587601912061421374777984387607034139059208948926333242458176335112405741565813956931706139151157112359878815011738880994551595879863598784246867890336948738778058898448120103067020472350158452968700746349231698615835851989822084740683813242050656737092991564028880625463974396199469614785804709499162488952823754534501391100837175830104255070445655799641826243388323915074680769699807030488383675974468787162383176838120453411919687469821594483384840245268757917711163602272686086409865863044968928228562629893647632126625891302983874645250293304979747211042685479816039024840121533508622741252232250007189519288426951297223191291712475205403110892454759513248222311702145001100875508246039410014831732603181770193491286248075900530601310986664232905352514196030077259707672283101606188223028534224902647610857235396408200848743826635716945257736487464093682704672230691056238372447130252541937359362110611155765729744616510998809579124614918667142489634086869621053450839269911210899246998370560543549671804120824581509945050485598205004831627583413086119116677148625987543971143419379337117852073599514206627533810235827720642836191985194442354649102134764163595312469449254300010411599066450954966196393908324077460856547807637098643354749335581891101725332379004143296582232214676347078474969213200822080470402441673092501197887024511155686056019719799654154807982198949805122938010740259429750714556629191822676908338533224658604959526296096940490948678105571844192533646306152604502219899337957940099614622640998967113659576164156034067617267386898717221810596277572466946880109863335782210476088531555225900804068227918180731273321088324850031425978376858990805762492619703087880890718860817372128974431088590884969939502336079196552350110094375584031849455262933568408943702285241388127823711170875110206268034230958520943439660683294463206844477146512661612168383315034273904139238828671978648992347665003486268089751552519632334759964823253833934814355716153933212235369490219479894528695544009095576921759834537615499094556362285528924273203694812679723163586357203520906633452651577039010747344076341781292558432965387557275100563786925091281439224846423740585811484310132703417869486542621082657475879062316272432476858404486063240883989935617388016241532632832921829860153128756656591542271213750662522351390080572030353538358480563359132454232962226729630799401155517375638505616066641505559038522398070770794361625271971877250689446420463062339583915106173847260406995655876486207416913704287546183924179415797368329638571014882995318189983413207023896263721899312619972137774869244232409869180681383923531312952157044507574092884479311171527952390328918708651803630133522477435999383826483119595240525585123523066575310443249539771869356217330668383134347576178578067093811191642043988697670424384544398272006627750600897963869741230047554005510445142689786732172678720357247886462317772692211041611374789867227481202292289493365585513103300386936515598512566164679869469895305543802069196093566679327398903434126897897300901523005320340606124096907914963405136879984276837864950814170855069145656052043400751173885769424853351518429302139121806655909293857277296190721120009846258862662543205576030044531299012518324390853768988541916611262940387491176448306179526848156550415292701381544256177676155466331267145100567651400854265591552630567515202139679343123677983306522812557299190750009356235934413480702101977668601284293135200375385867580112891985942789040022067559188247243964925486442444810747111139688771426483013133537635585082800636251872719361595235225529704833550910094606241459757337298802490976066734292453433936271052594457476445528977002562053711618084801715134746926225905234836773785701437465952383095598176273513024679163733147754211610981931814517453539549068502638107598948328691532191466293108568539580791771567673861358899897384912145817669595325797828531710882006492757327082770258851109865768890383720961449816530426771373481335690366452789317135542458481412225394010966799025680360668624678167553335357452179671079699302682964178703555397393136005816406049824382795377720711080877307983023320571865488974431150757079856513777522650119395155610177735551599961330029930872058048550392814009763917076466137214452629110443586596328072064724720909469410972311310979051091554536203553258412067276161640899981926263778133753656397737936868342360259905433941692361360654202745857302642265967774126563183664896796902435197991347304150251958495043996044745287992199871284918831558378949198170381929255615474315747196376138331965256370467881390774420503874999552017970424421197396422738385992508931027003581537053477408139272863274069373955713951973722145584479376322001086717054529945962956993925313048268173912055502849328923181879700199512478231530221684406630614341240104782172433064345503462998142907028827591768803612244717855319616804437806203024063446701068900548558889780750619777368982070693623828533317878515505234736884452501012992198359438305859149744261760967645437016528060461900948297317320499143077589281300071504068241449860719460601322383436877557300907356789678196579209428717144971930336407133111239949811207784376525824910622235512847340067687744882029136403298108179524778372208240553979986887625248736853139353250039692895247339064470940286282745827515204637387081822931457100468659516213234294067650108672495537695631689685518499059376040402847982398543658857671447536453197336304979872644165364748573438348422273770566243979546067433576289702842521320744387712334347785104447550643293591693032764277239411533996543260892032073560188057754019857253280219794249157416510341814636204225312977051910191184624539026019853682619154279293822822933310312940136517326953769071870348010475857350875193980214357276154662393845644906677585810787352412238016255109743779958362450724764072327244211206128753471016481894411732635922161127623615093888559090420205933766529820612566118736628407212391578329353678799255256445866298154089431204270657423424889083869935340583104307667537172192128032170180708864162726341905210268151416848181015939503155355202893840372748050908544735493886263961542213142546095036871308648689835151347039394023725134181813193309159426926306695827102361472670717773192648542175583454588107398852425432833502370424074397473147187108510979950877169971202932092587251199774235162622980422219976245041100515902414925135386176748893135188113087649684076880384193707844495661160355390128331126841370076852085265286691372374684191320648740763376113113486197385757092745846483355601592250390516384492750389637911164675172931101206127330085968585041394498811097158126678783086893604180812909949016385947311927487059949989978987888033921844316433609021554863616396886890727446356041963420024630106930000125031549242786612288456473830620066906191531069490162219426271933066851838079638339847866887537564647222601615593679391967413920652358934083769635529192854156989505079496530596637692894161286016876427703158903629112933052239525917443287890906411708594138567814592428942549705742718656751298117343848362451768915520753388236330190556779889222552051633171420310377415896303936562068068698650492862556760631531102823886470934065820154016250404906306288966640869601304092246847500362741789160433590125334848540822293684930200300037251361343447810282162355763765930800788385870616339215214953914504593792942901096021727489269704185711588301825273627771632326744153362785729838351247460296086486572767255740141429781972317483322358285814502591758301219289311300565668959155171677764308147717436145124407304452181120613951768997879643588380378250768363643394818557698730907593884109282949127464628990220467562868085812973140444338239370323193967341309100325491779240544513682505105041153648044295329897617790173182887615775723265658327435775616618653305655929378941310959647064369291955022550212380825300634597929542423992174347582272048994985839504723721126793434373472967515428580781759753621936173506005529620844866957855544210279345145360290100235383337507572680160094796831982193172279795598724372705055008451254916065247066031992095453318391917218707250489346349785110093514375686457637539412548891155259832623915493086373407514210569728887657798792216375233503211533609875430450311270926390089459664782056498904640460580882129614100462456653856304205194953621547800266480859181240021364598581888411882795515495681206182365756752650120527889202674390093517290647999588259882455894516236498335882188393150792619672626011036371717221911186454278560848346740330090003012260749235575513934279155517703433935021656787661595431594114549308731305305031989299831392187806081178045567626859605290201562210589902908442292350588268442333216000639075885128784917220647465274341503413558637089387213092815139120676980535626834087664484672129523682988513457492414473831863711520318881718137388573816007706169466124075437204288033828948352752410845198002201848807247199368645356427471980149343827838482095678492518155538065819907644794848806919243443078842726631949816521320509005466120444128520978186542122137139130448164044294575963106571387082098900238513506748347696374370737556686811790091535108774571768612604520811979389472265592088195378972495821265981312420299616084790138696893074749996605236713822323998350532473712070308487555016004299789608852383580491923104051168161740073848292961153340298213146160225864090398641405841262536781999185541844111986553948909536229436258495524007081622859724909010440038399685503903850748893107208990462015891495007587995711177705846292857563956502585521622405030155157563488584661723587429824361173849484967730326836709557462420668560256477361495530499456171236346064583421023426198430277592473015859733356364178190601834538559984618282280183891778418843321677519167105687057524460056517660010769586889901328116744790253778747651583207987101946063103331118146504363705166357387690268469735645757344343584838504775345166162021407929136825087540268271502370607032558294151839209485609951706506982681381103460574662164924393215433114874937556698912881967612757264508719683548066797168184204879127098258531529613779662708664308019684148517232007053348144383220881302680247603459402290679886093407032814102440381673969351740932966343048841050412764520413642811844900583082546840954633315504130980620270999692316048936618876489202019037241304289234800918858951873634597528660268746553719680228742598479918617150939509922792773984595020717141153937218442426544552103540401605665360696122874911314317390460725138810598425331243984335609138642587916515675854641793494274893607760796137932273132651268017543389170608687674001108058558451909468185967541070002644017932044848109534683047747642112789221775299768749420150294507724900535286072427334683719052419519773269781302427978849137929874124669141569320686368950997963869199174845657498884988996813485992942968634054804980553474138964135903309406830629395197613464264797645975934384746676699426494722532698147125085177560228423691683296483121122872172222950364832006440740456622362645615072974452437474371493304310776250492469972987685190995330624493469151031613402123893390371679666697798213560515203696417352218202010554034583714658645008889583040156314516045274125214313919401139191715842292661872910664921062861159608974455743066874558497964725825922119727357306600340040030622338772669384146543423945132340152737340288443802691090742811902745592212738423266142425338803707845321042200572230231165159263936054342150830516495592785279955214107508004014824894514543660041650177520042092700797015153611918264636007044654064250376999617667810416101337407514452920803287929137940675750759427692980780412496416424051431754384825785136191909501145916696308897921357138540095723359018406681526019872145484728231875416628843348734820999194894762112217700310963326117328292228936351446669415327315452359008969608379352207711396880952180430325365870550897801185325369760768252065231319997013101295193184026491978484242890732409994215321703731385650800651408008889033774336660901009875400466375907146403641919113354836506747361693312198876060320555176416984115411335268751668645201420454894268038298325430518328733781935930315783078623251003853555303197362175182826742074202915945763075010333763828442200731333339349957816562547429802204380850454302486047825614535461735224751948546822022055811355709492599694507650971610059879944780982805077848045712688768269434727892872965950058752291379476213522134349123125162418561425654734418368420252099365272151121505483751559705205947682009960013482320318953336570715788585568010636430864346760094694035837890726102424709669926123872289156134433695044684341813664118676350492342309907176231212812264006505011987316659041552550993706880676230666047590119483941891308781954933293773308473283707990508097103912828186362825330184995327351266699535479165393480055012347297256777343952304284330506377479157251186883012153896203208850407874515186520949778091050829679441833072423178529522737046917186971908930558232601949580736621065080713525537772252399103607972253175729438063984824521917982157383854768563500214532586844266783765214378814061621327666234884660661659832687552875654639658791539366611250087704371650536909714831568130902846081927757371063534109641828028869128873090476305413599148146411426930277104971318560943550628244240522371178085907336361332734903598762585627895390281804366877239470970771228951348151005525884066195926687148370360483975590892088891504256825775882522604191450806998311994335745450998209999155087402987244457910927288173383144742006252103873498930002338176008641634342587824998155285310086405321697047657651889773458442322398966404030302638282585158133311228834375813646019192816015843132970319974858066439884451703300089247895992422262246597750702887261280250220379547531474421004633066021363970308637776955119331703564365015892780186561766439885034846796179066039400749206618635179054429214232321063670875864769485717112398143402709212036887179294877457675570799753692912207368170597488510937027673194244216503268152047720764130017408188720009226967826903209753218017180761668127505204729470225666234582084784756629220712374090381605018096320866460679923128390448902544747949643940841514145976602797326005514571632058086472688904678750223891030094103525526676277147320077693269826229204846498575238451402849912627822609624969229131717193539213042290870900501420475339517062833201892388856683063390800292783260724020477971685025237728376265080700278865411672730689828242798847412065237435623315481622394196898692415576687475071910893543565934183687129893094316080521942480354227023464027431235486461171863541282134473036012359442721103206287215964499559656293037086774197479375177865682199248578006950050885034847078827626681829274959320931080977161360012165821804725655619309746836738999574826606688466860049746301294161834031329954349495790270967719698654944049900366216935893275509660272374421896980702715638513481214159019711753975999467752424768552845068153238884850122058858141873369649850187029648234417511399756229168001856290067482344944894608789198318187214933139390665853543256994826943887293436474118903899570502816160795868157321220491259097885045161564934681826373706491677902952808534619315367649295928102395556850442589976242680970772309698653655623836347150202113405534240680354354894465157937661009437082221880070088107656253120204831583545798181337372353068438156840851686668856660442376649620202005591992581869920309218997063211267007793881547709775562902870610996073773183216811596919927758618418194131585004223152180065134166615438134465402831227760218606674179501018385178889919088196005498469714973022406893539435398608326892619530078265920044894038942369930575923534646421830878646316942971278126292582787746668329518578061475806821595248825741558295101078949697681071576823926737518927923504500690542331443114278623428879342358777452420009334534499696222405353401717944012542960780845669492542226875388190822410805141560238119960273868764191718395447185840997273069567186562146603407251331844459533096968464705063380576306779701381676269000210008750528040976878008511397941063545001754178072070999755964928261816390623426813367639520873610121507099531067849765554381121526842492963179762302371776920122386505254379064513153938386501872013143431299439929478450038563399107465151706453566374074588441601100046277055280216103308582639653738482547486564556555136217031151848420423497733450583129069787325278494319611925341617049568617116861065825181524211328146819888259061831932575465954168613877234092590400144220591071889819434569106666533168937431164248699839984770037393082779717765128931501218694360448939467411335031800621068431590959237268329117928000634557492496383875863091124820360157709380569323238120671944770519721686645858375482030165742467773575563096570090893726539729733862331895801528545803079558889473777074354639287752212280721172047960058101458604817247167154049624722711264059586576750883639452862408199093551239291726487318905018364904836150252532357733250579202766984228192699405357722922288683786080851582065355417254275992178489856114525424980948263285360282064966673961916032022174656713817616783631187184516658773866358492573534947002901391183392095778199218155570784859390831918481426219172050199687845650258886579219677327876036273094582338555312892558050724304592257753113062706812374698354701265429497576722396796449841083526831677433914811403645589407568699912740632886470633816352538396401733141283140248030116519306811430388621013402315268472769380902047882327622593637648951549319585454126446407455867262067031917128970853072690618636610690721523597122874711652838665363853534438167511106009702535565971623851604828257844050565207937313845130564272628008342840588009974206098097112121160623698713092830738322006575631049351709110204991125035403691935111197856026148157450357582490904970503237355693787639888451253533912977366056437709792094265076848189697691250768372945593315996056027556192655244142459745509237881468920832795789695218780870568121257313770844065811036974204145951916802824418846315427883126343855138859196788722088613602979780627284117315765095556725993309612052030521473062500710250280599745631584742156283398132942683114011583961359693596080507552098392063183153919140508469887846616498220997376103109932303375996938748372221699806992646844743373436378987386527822705536483401960121318156920670687997395931863446802597277559731659064180932647753637144936105164842430944666442326638235979175748146495901239699640279341424253846688012158494083432756242631863239762570774248666413114742936629440576546952491807454261004035877748972858588113881810100193654297898302035221828438214894015691318811949856897033747755316803698985230539370757643039146667696278830062736466161355465982179334635381300268105427242862674989843078728907606537970278652672376936381109299478643457712064826318051762833555785577034522121404121612226600330302818227277680022940374942140461114663325852033264691253811201051540145874754541091942095789241365098859955483436963190311105512918422520334963774897323811949084998266760739353812089221522517008570615027481600834341256786546985621295857499852481343831208280515727501226446472605972146583493933213487585756472280367843167431912304819529929253708050349954424134077610400852939674092506306641347372091110149251787089169987777862273851137686455992523361386468180484553713509439825458947203079904908774220559922480093991700239847173437716547266087717568309778368288892601657366210492047582710391049663781448892638668227996442278310215781391839225260373628938004852253657755610888730169890452875316427800768733898076805296233615399553205114340821889203896631266623866587993808412749273492186033629143627462058615061631844443299118551275705554588478829951972098052600058323944241366173818708854746094743546064874194763402734416349495869575335831605374394677396126587205202775976880088799783105801443933134057221210334834254774877094544955017218079790344277371402887834423245495366720453279849152698768148563693964639572355353484809991690688773090209033367201782244879101329073655199713933293784884388645337569638152235654638456658339441138401110237653938970918880716369182214183922017341407505577495698825597652256739215124434971151761586188365454674577638677855092898969405548208878572729714227389175714133455411571435291593598749912599486457469778042112949966346799102632617767222010351698252452623583006979465460029488839016325370339033066855533092738008558243888417321081782058032471404588531381836207418752694398786177564716880402076516690858989253429919816064967619163297981187970130752259880702893031699877258597903346100560180588393360554052460186150913228902537767893549647131170826987642699718704254644437252937039941858072025647981807013971871804339137886329433411823979160628160128095337272342597869626328609569970710365586652659487766250549727431398891252363070330528247634961271844039778738651853720787308873592316488878172632077096466840640352261899945140436992271192909549905799314662638984829811016312458610309530821346374518285120671552409918305638308745905625622008092695279797866835517950293216164547746311030747076695279691602954907840802344080962210775523841288078654493657992332662947711330344210296706827209897920342935736404288057030060248485857520559519588909724194505436807393380408029452178446993204764191248804555640848653761892567351173081881308769158083106352431469226130672136749491009757649090280672195266708346371719983539260217635142030295451792930225955892147420800336981491892591646587460456494591171372603291905232754703228401185037965861453766358991708302232829885236121223153600096823398054770929144981051911132443133699850873238005547341411074903073467312488240091430626518546766579916690504482861443686034426318405473555516844144222605643991574404609848931284172534908119788073688311029637092022663678449019860943460299195810599374268711553656156800591359079381174948157140685825335073675757119532396006537478577219313436361266186800495328811927358042734513625075629010450324540145675914344239898741883088024254111894007788372070916726014241609142255096053659794008740407130995122112399053956359386078575364534473623997421240680506621378183504839908661845191495830461826822343141583204383408837698735970067383720548067327704813749980825321940193378289801382992139551402398223282299877746253686082904094567784495200634265465923991228728344933405826207904263443806918046515427232949072877911433617002413250166188417426415038253271666095040866659598395251046443578941601811819291115785635646103582796399723734063334563262552384984817616794875881242211503078468067564149613988566531117238068297557106453484267013577307530157909207908023719132570449057506742221063663030107639163316490970624722383069562739308469800962776687857516675587629467868612255662217103083736690248211425889336533160720230863022168944943655366954052547783189841489664777020017815745148909860035975013316144018169745712259444505924356125613328074745719488305588345390967025425809262357147796950801547467279269071999764592453959774542732088040541352550871231609075272472325439408752061865384594119369795649665475203217289938363157945330369471281165386594532023276411512356613910879207142733756972995268529595823173838408055339500711055737790452760336551543950240970102864037714918412024748856784095406635326658512684865249209946232991502894431725301280747558407687129227018750408307098257922541122841177966838737546277026958644923227802333015133108170830899856694140575221234142812623667393126255427924397644162311571825555854847027107666335649877397742286678378968568638857611355424715871346975509115261575422415369206665338494793292027933539241814171569535801607279035011904076039190027289682118627604086281251163496390687878994824715310164687685800862112597875527643578520554671107768739669591969189650557145751176707954160867480865244825249698053903017073395736866995376223513531219747059502709458188696325516781458932096807411018341847932837218832856421898126662846182231620172005125740178120600664209015784433405770543075513224940446887223199614945868137487629669288673773936713200016494094211873655624483747480208428729803880260603748333441645655697039751549621860081610265339702764624144294339237342470005223830297284130412641915006865780307868079796255764397828911136112737861162930113980555040413778064442839103227703035083742759317843528570393155951245305654560724129531307384393494463932214944031473938470917729948549513662528656486115399291453660102109048448612608236107872668038034374819825877605920665803361656352638191667027047488327772440078507707160234309252346207179436407530689555737604648241410777649585343822973585705551366879701893930133979865591579194480195569443867120413908755605238480075954309545004257951001659632759601282793016649367006159746721524911650372705517271502618834719110973928373876517101072225625479116889730568283475218497818259264021456337686340077108515474124016857581030512575733942875333847325945316066576875899282849557519649659005187966637543620276548700791165749909544260093608828202417249222483260269486031901740593888265229778440505210445077872635038729998802729792542351414769150458410302962771579249662352703835434121323428334254065018343229929439337262858646446296071101342483901388168009331045663718094319791012115239740141181594275215509832009213106610305356013342573039079162948013039013583221247015417618174277569395198108962141288573365221632786430879167662804947895208711930711611400095200242764191003550515339881261741022514872532132411291190077285572474304354333326499297699314388828978400266266931412459028091579734977449497310513131265289922819567618906829725896781040036661938926570391860343888521448002568626776438347724774759217159273758301911876947106928768261908409043277266913264546704404545783255763055072504249307457144862698202048081759058317381017768870598130998695078743130688730301850909620276179553488882892834728863470324950936579942303124528211839686359705356485626304462288725628052574446803392492601925903731522473441604383771059796911983697329991289777498673889811848841775569852532226046164934928199322139424943421643046040689397980597791696922616606691671718483767285295713041432991593077687855330527437838533109366004289105844614667673027630591588486615990674408350387642184041801996969600063628873726325018562934863569186670111457090273218118803937088706489586510575047471403634467964573714418572942309148135295416267361597782392652570742486832160196543726106848414420733446606000781544321471945328815059396304243492131156118167958719180772602463078032776563317580089954180091820414898031197547457925131413663200344055855395892605821094956727508040550914331510426472780330348856720769761665504482087358313309823423385333495770998475399108431305321139277760453753749837851784202337491428001445254412469182429464108200742183684826303956149566520608204291808257636371275635477646825588726520162137457515840138159078716652426131919269266898780329335347544143744816087558255244289317522291704557700621195039467389787368681445697112956659546139341928215609187953338340606445686841059957835736172068147594120509833375512056573673696703853928164624606584493861337473294984079709951200172592132607102983548987877750504785972980456135872788544085301775352645557158592333933040398014311947264463776948935162491252639493110039705902167472404258980095124223925426814823319477598904698275501351250722938384854268753674446630330423899938322047609512483633647793989948585953488866471607577753650781896178857234021542916075819679288219868232099033795516409873925353161374197589643097312648016443788918209181253915859428903584301317266960348551854439979026600209184484184613785208970229561764636436562740516007844674779240357597083855183913876647854818444691648886739817031927334685851689973449592447177986769225745367595902016930538250369582013829749639704283169223262926379396293832207155811632464036312776310547211268175503606843688115144699240284899476167137467983433723770370034989029932454881321285308465689870075450856797205730635838546518560373886195795234093007496425706842133666510043219928331230946035072605606720532165438905774307518197170181211133202966933205060860090242739350743380853334847312722250971242868686534989031152561146259642803864342916017606043253072721750186990777055171239584125077462049906817305798826850338699627259934584093020128522389731240923917729415470460181225740277356516137056399865072643936350862074523301304167378704961399899291208579369363081504598232485412847512743852470360244284983059009313569653438150515277711658144427988937240113952184486413238615212106375926956217199505229649256729524300085668184758619452221350818626558860308110747476370139077346715162210572038048751452917744472678096106380694217982032875135321287094494912119977449301232947500331890677351054360539867738921918967543107426371244412154239972860632486211608854376103560757131694278421991934156804220071799563442103265443971594752868316666742553889069366398164274529564539056496307809775642779302851028523765835871887769762355916883809599531497793335516334713011729694011421890723137300580132410294954971791511872671588643844769421671379200439324422106142719909753669461726936196516334527121358513048018833909171815914316192245899317647406357758071866432512867322074581957498772686112784007757339759058147502310420740080677254028471029588089150154131727066866479702838277604770910398119453363229135631383549554002818093666330744507856879525571204814573504949610742973030484728038437276578621569247267309568348308633043165107137299163551878562594053068840679765305529678035883019734810489449290497008801528524656543580247016080292235374549371057732460175732820752626542575368211100557440768777228297875880705203580801775463688098849627336183834190130563673041733111218971914468163356350226893837879296882175294495815995247460986016404192790833956023859211226077551464668748955836480521514110512886179535205389373485150476573774153724852090863409922026849130189628319800129306081457721361023072920294628913174097529158636858713172867709128518850113486695656799998277869162503357709809405481690401593380965470245746179853639958115369077256516801373371079356705768489112172370577312850771254264830226094872211050231641845035242802203434400092176681136734853717847518192204569063248401913406553118447370262390815520502745811717412735527839268183421975572472272901561236677801610385713621490003027870057363821455226552843771370643082224880504421679390676384848337578556498761475636030649825790195338141957480445753798418171556551031073537164165367895390802813165810972946976718320371005576035643656806887187138944616983432096338381459427501509367379286369324197297235920771866876391563610988745298012487512742581225782327168774132569194867539740370970693622275367453671253572801018727113577905556105740783969827321704735951754331114993233578475926897401324812037534156045547337009026448720745578771438172396637101081601751944255597985857235966300406734060589560458915703479705360724888756004530725991128298660565439220258956330122295289316445342629941778797028098591277538828612407187398471753887439817307014274652030853137755751335374766676578658988366066492098067735067774285587142436243629277792770331620229189417976012744178194478359492791440971496756965999107903731300836305779151881142249561583430596986541329665765173833128613481785147215606079195997656997012787981914324497049927503067283693251672404577583381573666796697906062497504759929409861876335910906828287729406143459586187214246279265720533414834614330120118511883441692871444929219021192847469800565140803852164848101196061111294260060221245512040663473471957395153447368209178551636176412837349381425950426409736558647533735898801123579268248843747503759674501178182497924666225470604742384046330450645007446733171326793258893008979333868864400101330357310474266268860543372707882098241521070840205147183529931527799422826205435234740123160062946554008297249049004921203659173962786332971108496049466296279566943206560893330474624780430873866998633927577498590225717207578712489121316205289656304549318312806507678882768374911927529317021438894330902086149193726052768232743185237930278280502304914039355769146968156165536684009185862620579687858967037579273551900348946019370103676411532177954802053530351385279557264147730189783513802043647747037175876197767229957610731359214280362901220545061079646031750736812636687960334462230258607308532411171929687642920504747915209611688312820572188159475646732894618032028683076645500956441229714736688918550152935743318260717058907998533534606775035095240153218681415499093601726162769926268675708254143934170260037829160892262053642529353623662292009876820374780073829337770162986795863649833007817400347172061517518674550431732008895913082795581870050579441329336270921896210405564736182406362072348084010162842712869835633149862767583665069693937031857611035192971194332110403232767612114876934252461096832091441611403548058337083171158215704027290794033564459951500555897051161885750663952575471862578917238634304312308484800001132241483420619509197475276750278026869284396843749752278335062842053874980350191653081222044429564299023739349495719451685046130663350105143858282720655321739348333148866500242900436868687868394153967739508495625661073130150382573281745878727854849587044671845397386593186616208702704952802563442959384370152128501869510853654316979053636675312349599614258678549497740146028643441697932752156309841404289288118897752614319849213450221180508950717440771164137866295659996558409761046665523953649166905289665878102444617496960144546242991736290468650307655314312609178751721574294723377144776927225778141021845715585050087872039926349887189960009325873734875824659600502284475108654695167470398336360911791575753724431460674971223199465812669724065339604619193231865307351886119812693088742600231068010603558765738808654430619371809050438284825759174152811897632562988710955419459965480985435513422729467500140125723353223536154055848836501006835354482154951864758242298537798912819915763657826352303379245915103383052762277207396819826321031555541768649782310229437460536673246511111212396319586791184366327736661084410729876014876041507865223662302027537688089655152400700288141435196870959217190155436503778684950143623295614460533589630746135133132190674029041445409496290082928068119451166482180073748238625761294233972924136098579282756468551143251706438597348964209528904741061319712225210019867008701707159332307521604721151810592584073357119098236717323043807338259028889236659543544843757892793130404830245425352906595975053455652675758970196819699402891127067701851613967113032057180155599761542218341698690808125192447864401700210249955092503835276475720711594255832696443839874189622157155851706242317187372364324391782743174591817950078093200570547721626285788747321891376917510355697602906941465040411441751450338847808932246428210353343596165114885471202317248854972343877072181061324193218524880018899950174704578960600355734586927210122655018370687887010887932451486090287896156793235615313341283249199003650542347732486339733287284894645799508067764584913411830937418332437835936154167316076464436982713672801557195620009525597868782116769603528962278169951348201774836062340632658585012218725412171284117308066912534687789506345354684777116829933331916862051334901563844148881809094810997298605634135048669864017206165159318466802849941194027838633808152940196879769541668513660790050109963514791381548260699579436029588812107556435232892429273669762644815109716482103338794187314365708994499464341637907063991580608733535046488354485030654185226093720970737199737071234897861958710362873757665257426806146727857074553024813741283648057788126577746226774573751100367928119118354274607009884164696138304196451823750801030741788452106880507936204894590964087452421870883754018179261437486491296273311088540189760135220924494174828709243366796143657848123097614664312931196132702811445030129379796646872518391671355311786812347281158790091608670699784592075398359699165640300373035332837584256085423738125400232753874063276880877402255185898965426672342836483610829975711525253398688440832082626704030510619918229506928445360696330951742246236362376161977734091270405358819565537599598342976174070949708947476694974984931023313815175291200047468306799011132919861534067736002531317844162070334947713863984021475742360920615681603759928532563615275803557811559293965920981451705714969254978665745537246416852213195520616264249868736545447471021789612631632600168129383809073164036950583666751767873032000992547571355028233169082921350019552948505721215728419596493777318264500910195296702861682956652012376322072272770803534911996212975713734423086470754527770802016378174125372648855082883161575644084282511164769860278830565929198312122193504360286124822238963758418852206661497682980613407990173845412679999253095646987472550078495447270440638544646401787749478541775613764953931638999168629403240831833408175258811652059617520290795381581342993941062382020777912992153412452636364787433318071323602581718994834237346748159797478664556186099766090019654446312149462097829681459405336503470480445650295987132013039957316044502557079762421954315225220654459224366480651162716380276428276109938064144096308485935626762030418933360254161387456574526789365004413148421913899024963301795168242973690131962226407455059329009302863910979323786294147999760166367504332399710005190809654401294623118404367335707836779511382418733590720433308353308142045651300514150542447565977974169091400801935732185633659695546366158362167570906789670875517168946144127383627440490643507052960993510107037100659651728407552322525912346013317945479311545707536628164862844050172160805842616803590360709018406067923778662835932510215444059034737744726562200246839288452110592512499997782239305277915582356482517646904205780662832736999208072441084746568627716995784601044479104438879562954739621191511551985073782630941296458332671832892378036051424348064182608271396691002881650492945788297617576237277244390610050036015972489768376785593053471974421654078068703594748274036498033638716332598140574677656056472553031078633313454586693325891871408279889471928306129487401043485596257281696877910218982648609557840157825605018464483980543495657801149114037962577051463720784873371674739347351888331215622260435865719797808083309572904116996031697650308113101191278771165495065126284797448633339866253447831077305662726502066150021273459098171343546348455053069374210931248133057835536973469383141068015653873345724175504093326956131473483550532995762982759944888354999027537353342411373870580920184977106680617006331735747450042157932436534857843902097943281558243061696964279551690378636896743831842349846103896676948306916516162105390442110813682928622401876312066887690049386851577265649573863647442850633305837373153112487290445075869174809631320197101877191637376158973194675620890320730815108883760188545174805420263788640873821847140607882669951556308945230474517306507767720748304033199815374674983295379157088147543076991313994662744578135511269410256452569693817991243796954943725618516701866426885269297506138444085450841152566625896153098952820251202270546120234026945166432496311407755781806271750142324627212181152173329161942618640916747118119680832896589601134752351419789722809277232125998364902514357109798079643944702388200799988241344925863519290537270754249041646195237531536832215864882704775835061060269828593304865312997605275020540464481694067532342396298166577496549008086062565112519502443435117255131060673144166263744262704486671551266893185462186863093001658112116492987896093436174416699999065987915937580123890863201626448053311943475231511945067107264914413097847233607379065230709081829573572960848719105537274873079635581753565352107836841653136878242284368830323693719588377338330851695274997387202747279424750871289646310568358520773045333634442641514015714967814049044301163508815894555186562150688277050250619581747622032397748769145790036092957576743421420469221729732307712746787218528079840475529974536611333882229461374842562406330633981956508792554013909401183150921438770526931080900628951734023545793632833510143118351449864738577202008847977018763952674053555932641127874543326185071008774276685374009407395570653010214251605087677947222001564140534107744611916068237700319986376933505311323839471330153725715294247685820156300981994346189676982408378951045974495175679918417179871941306365413738625833531568446842726422708166501141849839842038144353891605765507755391489320419756556389631550065021603711841139828699108528241904665683538476430948435137044598966218483091043172013460579773851498624385802536248327630680999890903791846689714551773420126604985313264202382391852080155317347046053363927489567020469829934650129238547107878998268621583787346223037216503912932648313329889425592736201591864905498285225576646788919723729456488872643148310079327262241309418763400900100051805150292339920808062442298636366293370199201318561326595814439979856329719089369664924669858331906429298354270358891852387448829566186207810184013718360338894171233655180407207756509753256922634679733146538891825496057160263990382802819466398262888934518515322082655249934334909267399355042183243090978114105174881191401680478328994048717055435644247013997598728911576055369530251408324578495753328909815276501376281009957681332182896579857186832989405662697791606222758327970571855442145749645698126265673957428922918975745956435661856944768488249791115445779863187696725291411152212727534540199475019155405219419767371602547277601853590811793077692108114929668431893212672371723813938848740374678421903881087824137858264851870185910958380572798613792782592608900676331845709736652551806183327543506496372370407348576767022252703713314653380004743265082854394114027370393692517830171981093396522115816803550132900472180837683557583673522141052443555006192571421537702650808481872397137053111604458431589446717530073107869929098523173307127521193911284760451543975913816240321182945356538941470860988458742949784213158975851891387084405346075605218870028506504940918369090480269262585337017727087194738451447645576012540566150750151523694366823038230163378105897913903951592122143983826995625732216528567197080051735104203747389456697513068824424392376050439286511945980988463616651561770512544853563603024897587329355770749385499594094500636845811696151857610317288268268645769323403410135932562739342728447669542901623717654327589813074400424139955776661455375957545351371056641222396613501624788993323981218201713417310207992494386951668957676471001403788954249808761446374546429509411183786115223703722577183701888979824940345105224444487472173144232310811235604000887905317576594097300410606372856704861054566549147588956362766982031633943775380932018487798713238375292034100796808939558795570352836355470284182829921114994411533944883283815371950899147212795900632796172545978641754813527310744449711378729968682984668239945952163872023745007187502985840508078964414731638542275240820457592039521968764764383201767059128725745276433128443995686729801014179496301170700491623939045911986370035480418920836349177922074923798152779647356920267247527593830654777241969862906535066243352266495684908909692734893139179412981315612312732045033726419677246160000881288296702794212653976189541081341555857332385435376157184702201926056848063617236747833885569643026290602965063014540406282302349890000661536804268287079720196733363258274640844196595301899385061274775909413135706275578174612974138649232359373844500849437359466706638295853596250543878637411207175262267940504767076802117312261727525927177720504004722735541095694475091296707389253178545342764779081803843938824848903072064543860513439045837553620085111665359855814824953043824952532089151769661532033614286104274250313683476497189632706288411176985771970006802437046025642933371512788513949137302220178077593092993560198950200542898716198684281410001009727553791346615446452080754218809906176483730391489407592993507413385006183068241297404834876720721048789504718812706172255036132185599052300644958795538682329758796944285652012314326361845600126422103019497728682244852479110439523796574046132413706832244488392659958753772114375920301470453408583691439335268364048827123736646956978483605458674063353492481858223062372394145033048775931761263492944716094589167813487576993300496902673495336065698600151145840198692380088889453626760131931771402478180694155651018637388829601429531153092633534325615310956599049917671696957994303889895756946530898742902836928588691651715695080552085653038370487871078492226174560446300649016760063099789818803643001093872726626588253688005175429238170843447053038373120616805282057130008350288601783258195378925470556940670670991326954505038484006048402432765364570939980295173129169812376173542918135767850043570992164011793745621083261835637069568467403998659725156441565029817824826498450361920098377612873881294469144480522346826029628459706371125546820847019858059429553990003283034328614335009134712318652963461083877160166748016502830994456950267723746350882337803725840449837883762968204834268521170810234052964060307321601149443748067115431448649649860882607190302200383453709098964918961422729412931892296597122385847881004281216022190031023648945892712576621918145069129503133373106151858136073983565407157207708532199896347463257030373187354595030587247632341726581547838929909184506883568257222341747899679017271280535522106099021078865392555914064756933956413398826229465116162085750912940281887913735111901032184866169086685584116522313624059227485481388812207680522748745517595671123303064043618384489698012385474917282036476719917684487025068867113625809485338091110140725411122095546664445208269050552085479524522851552602495444612496128700138108354734588297663782717913959468507774550442003165339516389961764235298022717194684482037645208055804176298082763908975475514244166318339043842941117120397416408775095546289360415359727153381906115649309015117209558304157967676927672724057373876696041054934534555989412331936707048463062860224830574611025041051797701078314567773622223037061901447648576545233492438842471293945000794858253367772144802425712092824039115325387399617937162660108138635362301565204365964957418029098048518956154857214273471496486231179961017400447340651427621055148234633144323306860090109904649459608449465707600011542274425395508222683648141596209871848048168949182705656749864381054393523140600649722932119339090776587821003051746508676853635196110447394349662072265573369782596194210869057671514825033281603825529427881858544924976581767811300624622712119179670692822917683659065299942591326659272249104868581193734032020877588090748743805930981720571760469172873220009129695051295408962428064088598340107366999239389946216669969679813148638036028624890924023427590793370277976787311862310871077094259981002001004111385929829210238796138933047949062835116394455807090799896821739648167971381246724351049315989151652380832481468871049536958963027704151632759342659290243017096198251384114856975170031190167439431430874851111222896917204175464043386886980434313804063362704078514736965232669964049482924989366939735280697777031001898095286048136473403211522758727792400546148153912119445294987123102897033396630313929061675904833404331257156062115453370283768804703501878634323673677146853445031109206025457935462305238213021143369777694483652770578441896944034071614880597946988281922301760340163683570281206621031780848679876191081326600067273203974735407112762951000338026826673353902468646931288349359560478955596837022372980466289561255044019728674353083731166821992565020745379088815616896573619594983544804067107177256296314739601958492795861419721085168433539389328045171399556798280699532602214796481943573064759274201684586743334323456695663532630171657844934433196198146947962655981584197617427690395386649316266113692653160505308963918012200997246313970673526437632272037854344510631683576466582284284708614258308319781683608744603852914772942316219118629402791093386426854902168936569081483099609598810052839082292494883565519485321006651176332307575336434244207361147092244283995532119117222377799686276752596792278487914441789779061016871980637556552248620987129852691599926490004286436994549989056861788072663096981928446374641317815253627754268111567464084306855764369448605699670880731459285479873491357971605326877600822892146473425536897011941166943878183809064962383733880988112506309962615362128811561836165964958976338758117516970778624890808533088646410861873610023860409151981807255013252541188186330823056887271697744335731915056353055884835285239073766140978180799907774474316541950115707528568800539306515689747454311400698121122321614029974506073825021279066469060850857543942430729765699578512186542089361566134534279443245632149779164130982642000723957179486368208557776094807449263857895913770448212217052245167956335678635890073105756009416659177283355976807856711910064205629956255569213535517345168230661665835786737317387319373797252854974757109407150980505056427618598579518991092150123257050703106536117913216444562793757220971210322095421724147117636606815801841370858310299183822412962376525039141245923075441509454627832933688452457367289209604634094201261235656307322156774301753654885316937083395951393416714163580624833675200219920073574735818645436448725254419446398206418877652105344760787987069857817230900844232078938921983263071520987999590648992679762291476039089609230740284195670684756485888509678400929458323619132142303369039420278518198041199519498847437472271356899296977929968366789964692587999583437026042991066577642893043436622159471450377095421619024884211300375215167453316006713026310245914703504412417768387531399855194875202868686466310346382374373329630998837881365166968523672518208914499310310541048611378797718042503474497147401803922214922744975907631578270641727186021920919330323864395292099465093807010253010203397152302716240230765632294708922096070834092811243727383834277169512427825427169784354502001203019482126452007801863738968092006331094577825530406246616126857700861032132935148331683293732155361895709153653421780971834982006580281594234734327815998393238256669944812809775667384189408660709117218460194946311973205758240074904312948822614557174187532359682709331662542572502483522716511600905321123051989767326031660137049380336363271927286607800252615880789648604204640477283830607646051609276116638916417722103669353407050612263239910123621072341945931867832743891338161327952402202162521925695780534338000393346355078826183498499650183279932787050578146406768206052323127318992964608639574975691400199373246864836257337305684011009536025397656544487279922985085766502331852606483785665331442738117141066395753722374819570167893283825211848759827724201663406286614009799759050337423704667633408638641735641079969453104257487108402360047231768891537625354216942671560370852790593909658476879638169568764562120987614961116300673650297967028105980447690751112696799662776794692023449844074054984101243273039703605668259130618335663225123540613262074599852379145017600200901770635837467534217244533146324462273510917210142715497582923229571837651685319072587188319466793856439001573812570874934056213815240466262814911247131232893804211099412875715889932276831464617765207875259892970709507145421310132310948573471017348156462185234297170590324588892268029538864168324495312977600150430406521336115166170554623676665047955461495347534438453008583605903726228593493190362818331276543007913340207943770403398473957648658891379988359518439384397612582504491055654159032052706965458259276868028819068646061049315817259896360311588490050911422563684902934327278276754817012130893587796541199172854359137682106888886082735641019047830438125614104285983201510726355011282789521104857507731826689757644577265086007916393444624032576300504050914037370030037851501347525873879358433383462513501662404209086637376983766132312910860990302430318207847710505476187760782442890623349518058446471306691493759473979961096476399195779279733320608073678461302732549115419413937126209181885703869990968654511622329056341847968844898128347000803897306574222652732209534099758903102012712800514331834647756070312230711050383820422328036746865321743166515795199274032777760251748408003210673801697796300498098263025556581191934122538018538525457230752422742118174769094283746188639406714507076600658133869659466402277514452589666595322103306231996671642685231255917282137525459017223117857963587211006194143707879524040121980614176991511662974477076737066175595891793134067113980931163465637953236721667147807743500295793767353239037212426464421856342846948734398754897818602438910684101685619434300124286375517213427544743250264147372614161581550023948296579953955529915695907574757704951606752820702737941975534174962992706254604287184701958923204586568365094206318812755820996878578243538945940728372137826010757097757920774491757985602539258517477181612597856240753886847874248721733755372205219317001311820478877194090554480717472788559515076358743183756184945176474525521893793001504456141123877152217695708134733756946283178311286267098793048318693125463090467584228117704447589083577943710550822453760748756833678846425112888397239760641771247256063183906989748442836331081678557081706941654648909123842405753324216205538143073987403118548909972984500366954993555458118104138617083473713429372732857587063056022229668686915224383854192415016061508217959890846118034621666149891248502384568637430551245811737787093206192154843149987864430743549375921207355963427191580302652978657395954084850288378798574780497533696113404180529804374691475349931211944698498616653065003322445846424672287569192599907444767355823071985776293255610776519356614653799257883254855418843501525224907303841832493773800985261592645642482055869683611118381021736679032941012573944233656653597486572985074036031901563879802784240319112705422702362630762399339777859290762161125677747234721348871293244469089726322211582742900256307362411804910971098823372777708073931689362115808160282799644107132156788339361130126057764829782201734904302669863674116169537604040404697841711848446194614615397642371905690457513852832616855780192897941506464459602693575625819602789611774148103087747641048806918587728789617404606777639149423575895820774755624501051293940715086113948328471461629011797062303467070489054614952595798519448642572314502217799738641751698056759245354211582994564749275801462971839065332172360814439267856353099000572415925168456039434266712371885652362655479336354179354318739233937394642518020501435568624754196323010922525439448616065798341953392752646978100989770678908469147433112564181255126811051638845518849913150146090087759303788931662655162833380676166736242146270672231009566776651494583697411208321005420551435356052061905870999683024821765296055166608399138177334157039073082162219432796431659900781357674632793727805127002228670059392276512042128887320519311203676046794490285217285067716572839299033928858573138616022346668219483783306442090769627099015570054036128504510926290227291170644664390446794983780237670539121407284446747697030111784834529203572134780878658819321897695182158404051583301218027744404294138975250337985110933619027559965031278166149584003816994250448745491621545149850190890152239249243577520581660782879271601153835990033691752312570534174577944541523657253544047828787578863279657544072105930113595750469412733210485428065090402369664085277154921933624384363579336607576204767385734212577777383955575798497312048172569207697150372371167285577500884635818240796832750698679901679739106164021781552650211142245823730731647567272984379135408602305488274212765664085269975699411192131358806166651012713629470642985000282206757303899254715637629719861405805664453661010767382936512142331624810753038525914902451265827500052741082536305297690582016721253499942008579428256694128880197862415214056427358153754593802237378489917850557102370032359622283537353483732333928882796290603626108746942264007119204125049511345326471133124898833012573638876245144244218302766163380785312656619137778641378602985247407347553064208252076000088908503963325776985766803893055804087388690123093165239251258097243949712379587484551948674499291687060828233669917530516158809958339973759067570545479148232970609906021488878252607105110089922672108150911592677661545488777116561428868997100411752577164121685970939024438299395913981709919890655742814931015487926069021509042063554561835059835186495028658003309495097262404346946259109363979508174592498030202774797555940904271164323503766477227479962686843027145640173667767205405772535984832450586187428909399872533536792325535922291506655709346653770646408233169080012258428788153434637324433582790553485967125535315483618535549196089399161238326979150100350188662581837766643099529273120145451169088016692414195176919640895509730292788230914710511664034889254987233916627674657836846907402945266915744380087214494832715662187490420032009188461809824813863951361972939962290125084315513473604107745649760531041653083456382816458568946719306774689195978906059903366050045749901890441193151174113662516950201474699844450478549722004352805249842457979777592880338640391081678425427320466572682545422687839214175120755095523487424592326549668055775931019550716630163433025707595096420402029857232104105698372144456627367133169596160810497249961880748941138376738609542917246686334408533315505466862900682778080291507675885489859700392259294238546989811060863616004815443162195199911680132232124136112616071124765789768510659135016746311280913823660715066038163360938528008681565245616404987057752574116804798992174445434978972335536692838050526116991917593324399267336859419296732128528556975712376048635099117403469723067203598664960637141779377357736977106413335423769626722307653879713297343991874376092983088663197599374306427142245905290678496987088424749621281939097098144956326294045819976445601944571531057892675469113645767336453295502712462828265002915872298164395707314466067365607479012961349162873304778476835870234269493109872779476283922547863435309248012908624864940378820823462132462610503486699884340753314943138166610546462775126953408168861154130107279628018248913900591417155355228452648025153897582642566148379746866902311621322797484432709262181381981293212233385325282964005530461642495946874675945854522917990732591575886287648154140204956227100130657582726068152461850131617649643957916530846005466016936678598710509727131824002421083084090249989978991036621460726128873772578099922207434608126735224765997698288774088294993788228546109002054963937459202446115760861874522223941129461432822191664612847448060889415299679647779923473568143116599974497715950617743147551669185764674770411131260832153270128130292032620250687813066385996271029176828633775509648407040426098530425560355562110103013983701500718516584536952198185683687095898909407727838442813411081563803657628046958810945051993147371783779286729471382915780055242389142669460766978742869678073471729672738682105902821713733665803411159379709875857577195177569929028592770245529566375615227056410717431781130866295180770076979527443686609114370441673079405083812762965056042734866570967033117902459998489993942398871662189661804455001495346430784235949531221057932713082384962604679463046634021779999862447457520012819831050760296549900838983331551351421946312463488153861916466943999788866487315639565143557527810139190145017335403741012849027423363434562420476477872679750167853874911189395746545424434853916208265264868106027281237859234806019709400229488647809235644038649856096365544826238466319400704988236434180527892370324404152468634895115274344633655241625402144053613833268215341826091200019337224903024792980253810485533145081316903628977927574313605048502516474389330199620166227651237715654446518681446220596881519772156396810679596013539657293967385931750237907994394440894230261586562408710032418214522227025683548098744218653257352363560863966176850112776845021253523319382615098101288422498570835767297687045127800663187952181722289394898296346824895743881732214170506394515117517832024520508008524267948224205456836067861183615562327445622026059653249857045041773574326401097529093674249069637089228564960016861552081719360914480123454491530297519181807699999340821102026914352623845349898010067593347859585055925469444394706481633956646661112178755585409412951993823728512456518819913459372336224040615538051703192971755933968975891276943982996361380541757313787694122585806979235047532144309186562278289429654926267290826430601252319338319200846222759551505601775859753001153116462767794184835402033931897274262301061686427406830904386565535859867930115125756199736719745865854525168761626868057247887421297595741061002263520470602735322252499287670925991160591070497115286893435499529203567202081009444037605790852643993398027023979126926384582775979472148087094237446772277754402029370124131993542982169438773781588189987628631332698969467147764416640554373627078229560584143408451835126687271722714125113757475904034365997257321078758832068166524579309941486059250482833457499370546156874356019895673778029302825809455188783422989235703143267558051261040491854080259704164216252676247592062159614018417454025780170964828661396837855431137781353477227895495418523031171034644192919933260446110684312953717714261442016537920643951073553751604552593697726774724135793309926406252905710853086872740650074358876188397202007053125701269707874930872626626205621969611449722940910192586241397627370981705439637299293370283023660848737772701884656922019792423900124792172766478298182351664162611191966656372260754233947680105006776739417953826786792398274351959804812886503524802315643947633206335348960295602992372357097989909724517519635981291553315374467825528233323885063108245301661360367627402661246468499530339410523430258500121032806578306038665297937866716995038134813482621139715081973521515878278360770757435795173924130387259887073145198644577558622072034266799797718149321266970454096272749951506008761540639795577953768440748987678882874723535689039037370676618948204987233767781586849888066547621738324732347748918269636860857523825446883914483094757858323137911144383713098182512255874029038571193455197068184913164924690966364212042378569169707754881451985448025908975868330488634485365232558856206198223314604296042408738335071287364620454383440815875278744737242254047411855907615742512540904546172511214540600489893562443120357901821794091799467711884803599800641146033264214495010809376595835335000502142139953778815345560872101678257959836017359911336428263450817006481657170035047363480337885643997697373878981286955395311706932703255352493768875310753723095832031939622147722081431917121665110635936254890596751264109725357059224529727215501011807375318447409202359993617852965991947421803121645176956094468885337135756944041207238032794352909100313058914520289183611555507043619350458949130564233652479727349246089361585429591654924436692223017247772413865872887438672822302892342938732755690330127924631467384930165075154873963480381742513845699637976844898782315698930484152218916430650422276907165522512009432123966574115612540213412106249083471386087737208039541343430419635518049223960374876047095020545722613301254934916645601021537672664455910071677379405294165652367193988326312505134649128125165710762316869897254934219995699942505051900561512426871037764865471888467039885135169036459374848730284412216119804340030749146040436437635068924398148546687793477853565677715921990918847452435289869323018909783584143427271863700429104790498617792385356343447068359368872802198680415420326333944772826682506187232978805489536550785654524877152639454037472134992484765486940698789397574681571280756094528680008646316572287984205861687073362685061987532890375814354142615857882044470656830327489969744773437280871546766531331289924022443269492966756579276676010324254482253730671126284069098160597201434745355619243471321360465211428823495503838625335330964117288646689516241935776835006440670627616880672391617944994596708272579472447492395220707361989834495449147463499447839740092479300080913064012050960656608548734539610382145429455402056814544909658299456925449917819977064900639443062951346427723940448428584205791190995043546650716861269615529858938200125757972197265895737913591589101719556940567534108702419133378504584246504423746545400572057416470105473865004688236867915142764870583640286910194139454349546959598991803380037621855031550383732815033898263481662702475345049102347624430053731920125988098765146856549428770444705687983963122946468049657521961661254003964994659825214799975968893775173180872459859441554730034621157011952066410381214561616206815288052956272942623638663146808837534468218379992638227212638018081361975031784138769925161346766992357778196131238060385376358255483141864367857539626838440477980899774281853571220489597557431015983262001426684553235766366250111745123525846926191150891715980781431674617118240951971029466398694590819797386453660195725961210727657179315763089856481804878209238841067287537927939662633353382820299971523273356694775360621408062351971082059800169497441462867887186408035414618965785103585547535407833922815395891917769927163115226747399344715303760131615522482753298774721108093437148116990473649147056146503318555665795943222861042776099697381168671058938616480124705253837202258565888392904640985034122755297836254570685564812115700703464224114490760925369095619705071991426497179991184167149425907718215675492679655587571249451824401845622062384788411865161788267865322721746535439559271313334722012707507496683862485400834755603013733873891971498600179217385400015058098211775361113812572522497459764868487310584566894997395569634749181629601448452233002828236528732929974239253648080167855089686631902542037462738932209728656497753009693500573911227826495112932266756875142801129310386611370822095984275557970476572358823156012715659310239304479020158053055126591864396715494997192227424154943775970337441682205451833756641700211587553950304095167441870079674183087485223356038399350760697741180274820701176314667017183878167411116901814745753669631322028132437301490986024513316002044740805048563370221528380618824802114823623420446661201998498601488836328906699142543591157830570845224165518108131060286655722371421378277079480501767351967931262481151256191703239463758591746615239198001802811913517790630138663373976686222677896213457847427313935687653125500262927573782954283949611865846554777943968129131903018618234826988270415143485190915048355591669601119336397938273863840623130280940562380630683258267906602977039255542104785405735482130590190052119300983590457414878694615094787347770859472351655311395024378110030911659957334060600054671009053277613846894220944593498370642169456250325995315724272022197932743187814610495185895677983125873821733638850970859247613283183662757942800335407574701804077037095802704461317285076268712323245442491659974357956968133307696639530383527373942185326481803389344702275972686388439272697219998846418580281130096562028425768230560481695249223913384079030064451328194546187283980777226838970521870750489324087521674904031200263125907830565065824232031180337163280602422710484984938680604341559662849915463959226513519996551554208146309319620144312507601251107918359823599979801216894108145194033738782065219973388191050776263859299193090318907773251021792795297506680914965193758884485784343040867483320238633133206130802975082431854043286666952262336191629084117673880931255627004691210834308848055736537055319079102535333840491245306796394609153440963551246668769691113286830575402000189557602281539456685923032066006349829998998013484656426603774009422000919056311191428960299815304812321963386727899760146466216354077706173235325862384058085016561597492771523965206071474244065205676315057930697803679216286975540630010422952757807186079049261697132616831482657150710076419239500971917792432088622841121175013368524530705210216788198094298950385952283326285481096786203336121383741633461447429062102628240319450849847793658296361936702378190443032298969288803200769272679841199225301951285681112382672141202463992408956669303630841607998164621947416688878874176653153232863140041002274932453204135880921727476345194346293106660943154611041674632267896399145095749334188788795499143047755424735737929862412901944265288122968462484815510295069345717002294266705129469692363400397289256961968296730879770826898810797194539799104151092308800982316101743551375832030193029474080432229289535279318233997030846890511485185342224816191762543293942584994111734757770028911751008037642587152544123588996072319907938246068076686736331927335592142305366291593359381109898199643810374812439468233550254605391932837138622080439651941141445235559461784585831307024792910203779759386945130323939929105418443594247781992219417838979106809446288467459262669946948679123639091326311997337731078407013150479167965555428917249207119135066643235236080052045496878459010258002471692415594965788878309385568228376920051558527032160117991241099781382540687066108359146598809654601829943879743813046892562920593750613049697486628208576580545075298502545491764038361769881066198439564768823737367305969441359225391745458494585960133489283854736975336668392401445207615918618022539715358678510305983275276457424334390162068230092056808848361970701348964587873804849548351199954695476256258924842942963183784398092680361220048497170165123609022557468994709951774186123396630355167466283180446965869787146519433054708312656502600845639402896547221842261706190687955153409296401039881369352050056016465640539127284650536059768121966365773877038495314422377510833212952917842371810273939997344282759526789063795819839652127460373760395051879281783535603047463166650822597660920938800608535597874146615759554773010532444290248045810119624000882932083953398342251858254392661597572440487015291344348867335632348604818214363214692385893513822098016959097688268281457988508694990334267524281782086008794238762861085339312970980883569922560366377139084681853804984856081340446645981147737374492046634978680556423810036652336814749487431075642094472530102797226314047478658286612882516486459438280469447919844733643542986042393850953519321707254615061766436626434106313702525498946557985499247510144821738090613891255775615056439065210867893179347544181227634281334529540450027019818109701463784688111532354610191863598365258462602522914011088143297840658031821771246338307017209219315938326153147317566775517042665718395923408300944227401394877124805491883868980713758564588017981380574869346012660534150250559679740454660096433781045652230250595063615162151261886751036735089668982984797024766226210041024274602683655012037492914391541857113288590867368389326519660838627409496437400103520918623759005339548620791987309082398563912459932572583445880897445418960930575378311131873085664020506323418718179992247194966955820890319051226204132675692510120170107737615452678068430961455662182992218325529464034310098068472032996981991921855896482050203702342658182709756080158392298469261621074507802296615508104106244307611820266382805576966128298195910027807437888668506867840713610560092697382954113249347848897423866519370056939802265559027353195110259826103294728621100166252959237130787517901913998828573637533195557923316879654175374835862517556100679754364011274076093024779525036185547794288086471022345763218924186487260345172198059008608294197564216235360291435043858201756688038367215750327050237967968588269058593937621360987470136521032432037880896025852987822742109859234881572706137492439877978225980509530509851567746307756520149802124864234691474640731665900642113164290503673729537045507848768232916489642293647948358726743293728210706795806205566692819604057737314655564218682227532178858689470824720700095031140223172542436445399195202459436363406664952874033325246382992542050936175032847345931861694459141491122570258289039867147339868834802478091418201551754302033191590481279716694319911643950801944998820894439463196685792118577406455051439067176892788170622809400490157633936365617840904458872725733302348319184883174626562859967935287191737185696106289030891680611290919156514233427352211996370340604027699196502651538759216076924023858775603382381524856896067679626351772037891824827441307572902179400646567006663452482281909520429869135043034171338946785357323535266212295068649359839259071070624835077628838845154729079420532324034875528756558461227941836906797447492522521749797972608685871821164765151554285663409151754804387606579309361482147370983397231511148723498695602724035253844750991383145933721967934193239456060612282214141285181788859485841791110234530940551599499703145590705168527722358335370415350207078742690576191936059868255739354274934169996700107799281971214305372423605613276221321215714634493973683583180727022270537366139030785923964069495256908820543725356887618188731049444839182113653983704181728617613970524805963015379804280446266184099402200237948337002353639121330062491449569499920501317306613881059072579415484729598055763230982280696687843922858124101342814793154271838920662259431976957716816141719976627671290729003996297234757994919992665698205402103969786104128534726300764995719269169828504273115671097447391476809199811619438282213634751680399276049161163975151751024377473255309790319776484619362900228781586915883633409718729090677398115400908764199010314745486040087460395207029641346861161492586328610623617898860945530865736413323483429791478012721129933479842038806491544542987013555665998614896394998410137110375573977104431285775150346591794430883964172540821058821988495686207693207535453235578721250340755880151752804578614519174315049274057311876354810146876545688136711129437968860922173458931415175051405758635506692540423478587418710932864534100652934768399640637331845203585659995386238406604464278293294110209724580071521670743603855985279786741745167343171439516485821936527201738633854261753456723050754218228537447457682746465808233540005330860820910729576119714990548768860355080605359475165493840034214476938578189334579733793763699784937496347303302512534520719070394326656485291302625460270070038995051453110342103158347763267678740732512110390446987786906281884688331870798099670199494770013953256141283225376960097637775002854318587608442183666706539784968940836379872373000501142714832700327551561512090057675334818257950124974281594243823634764541951571983066356908357166152480106727302938658559840476075568998610411009682643083571443809013628358335847392829078189365634152633073928665501271940363341003282639204882703850653171645894028384650884355770347488176062299156343919705135178915865545614046615826018112961859657930429952233374758369539117351605365834808340780995955868478007406564352791133680519083086183819978788744248318469116445048121149264571638714061837990246988835620827800476538930072543500360075019015382302107367431639839912247703359019171767579954384674441485482868505981916249594108337794163645673640236196008687811516344664751944979330198590317205814749449677138943129677380414915364665275379932211542502053971268939039580919864123927449383302016078697476010766836989445214581005814828569264939808468984725482272898222225148961868888543305859664440926994997768953400316551610473306804542723706378362979725145462885094531682661020706575501360300398973789517407364217513590879780877349379728556629398673686651662339989438317939406151879623191867917024128176928201494183390669793974320381621467047228020812815867752516571612842965887426415798406065864199728237512157408757860611326623251982151269810450186462704761298077864287362896713353350418722491630382874502958913122244405432070994669075178975527178737401914042776140607660763809490853081350258710908724098612251021315676526879098774238003149195248083756776259846406185439645913917892112787605126329643934841313361871131136329153730153710421885661618014442681701052019534687531942389347542881803587481182503314660919960766066223215894399699206384269870950159850738354332403253746554643400508254531635870948576119966350473062481647761205341511254060904454705252033936417801208128670174104834417766287436181547132301072245769068937919461395547088969354565212271343576323288776521594612491423209103997657300824681275403642215798367272499678707936857993265664014016966303024149414457331473159242292406738831996496046797039072341889140417961176358254628498832731044185770311093099589780805918847620354083544482146746039423277840329239733362311439001511002360550355085880397584488074421629848209355307613370431611448997261899607032203700095910531966115659208589017229139582490790699746141230434248043131659993288136582988231168737591722177544710464362887605065337370827638664448665964675180809978575166109884239344588327014471680045290060132172191893650170433387477038145764358383220292750157132026267047201864561662174892836939211135811421520679190435443758308980237668604460807224821854088562131075551184585021991726481530502152463035472099101881105750998955070826838079430673958683732965517134340079264699990075372286999595281966412273627454483126018928367638510270438120131346011360043534668663237039155272817306864287312924711247297896829922969831618195783759777232121715030487410677139943765907837945644126200035917816194257021411250330586958803958948520510165735361257715146051610548842010574208906798153112207686142051990271315148481663795821270614046281539866988537092938080146865670640158557643344822870438805462517993971102132969942032218028301936740839461143085671601986906625052274319400800401559084151403727502315600777188768181820327798016766461418336586263738358177291821698253822948953182295070481738989924617443794280598428027020765764919204082582735511694657736878854354140818361107496648200631757434289633406014195510390726499335131500990182780057146476901503820322302948522822311849655234102129311145594060776550724418132797482864065100584987479098963857777053506489656184592635675205992190634759668993768433589301607735126667182277308169040276694375750842225505097741602274199431582169600400034936586595370049190305206646047961573963853644107228388124122066745353345060143571641093090787546899761180738740255146931242829129964250644155826479239798110249066579912929503604597903260636588715654640315866404102554852029862928712299555151027441388427961229139151808359904399005293748380813945831636537217797895504450239119509051763313940523615331986418854698593388591106803179693426807660641757016619552329313067143007804915294511244591904713700643073051222752156569352445665552917102945530964615647314610285552433432741004535102632477263185948706877756733132149035546904668196510517675681191104081340004937483346563663424152741234977434169241495130974480634016638421193168743188614774807675334670694395602585770265762340065749366453614628320893896228701689354376749684717103942250067577108704929658728347469288574820151868071756038507341773438513585060590766409183623824491954022792763779307413810689422879781071297964897787532173598275385622917623005011152294658736015147812383792060506402043769295828347926065246557384044166642882931888150915943727377999872694399091473597221920508268663085597550896020798931409048153213940806124147185568192868446286324049734111160421144212931157559006811565433462303303475084985128445580930590251570196360191777729588653164058847672140734929677105182783496427245485321376022749769324208496206078707100714123839740058845812912084851793600137155131791688022622821809802378112734513183720487364386431853638446428688355108754118761111245460585110136141633419042773647002684737594380434524964351532600306579867258151761870446116540829518808999076793204218111341752223412572180200474604165064437353866970651649919245080321437958865901257183310316334230933188071721824466642199917294840674182116078555955607012457505775496987319719201606015463466187601501039252413949188492902087711469569464499393093193326872256245152291038037612460158481632752362464051524411581641780702549749704359414886508958054401711949739139160453277124465097539819636928134257187960702649864688586492210564646737003626728304259441828574834930730394449091522143506063037916817063074188998392668382438833057624278763087441490089126647226296390692339997690390831471290606652601746577116807348008765842686861724319696480780272191866023570080980399842390855859787532364949037965246747611058426850979615250595515343311203895766831741246568833295988549621899129507462680889401764495067980346139832504823716844235765701024645013192601442880028217146607635910132881329657065058088189480313527186334311588010363733681154369256334830134216724598293613134434207409377835875362661290214111933359158118892388273770124063282401875657002966142781942957592826155055137214367988236743881950885840173205173873493682643733738783184422121654338714877285462275829531116062714697089157055746076805151753256949354498139715789473025732972419631723826044955828131321665258636023272337441487481710950649722735380517931596238204286217899839184664538606413647608952700224806861851071834734273043595394291508970217778529317193795845965518498655156200582101223807988248045790450466556051413670032436819986436227922399024722203968031676487439791861826672684562411704109079725040327588510042609243039733804006514561573855545790431352131725089955602345062679226907837306044838213601174881592819220726404069460815580530687316148047335670603496929419417701863778265823834576796736757575431069921148166793276947432704538680506058649981002582939390996787500576568088973133133830487791085112698448599103329231540981436555412316021786154984913466680682018879557172607300214422684990646114619092404072322237067226917211822692902169843759003002025909616292779058589653567766688071710903148719322108574536978991445945612743970917732709106823644427075356173425748721894202971624060717725452524442248163180176090765674894715044403077029954501792642416951772251158990466191081475582375756608984020592002384565385171326735806943389308346912231667842678888577247691177390925905208638103418811899728416285582025804429619094097243547903507721953773232684097524830318345324583021889880616377864486715510174056226207053109555194243533089368407969567288275358582807222703735399724597721716137939605331295982642592827758082612150663005071132746194544487720590110380650110696479443389569694062651588764166839333546225083001602395889847616058564604243174575707253409310442617258614408515457410304250705525029461264907954567994063414586920840663565994046077187667816006359371073481351840299731359216515493092121082987224607331861509891246512605034151592904386802969374388195028139895937967040283668676219980972702430041891934077751212934878439635686348593793746540661888660547328836009351042208574530367803214640558534844729519549408075891908708083785549197561183967321237799598129526326192716978049579250537468417770214233335971415062213345858937893639256284762606561180769739973583767795443242093277326412288335510905155674596479088375968052696724467428671468390727271118153590928756223722085116487540348798655585037138703239232630172813824376565687316081610924946582857481121122623783813341179925227802817046556095812898624619560742079346350130024596207265522813441685173098113441360491636170064296610130898480318870470450353589916182378643765268174244573024007477135625195499076810782827096955101423849643711012290857970350768718036729367273839678271289599420873142120018401342538867159673788955980296405835943784619030168009191329324847666434695509897682997315234499727848970508039264899628088176012405226603258201041481411646115908918494741030404702646224332760161401406375269915812641131027871587288127162275985362216480569842567652623730514668509399197445918481307047102451240065903450876836018954288653110197669231093899982648340372553605509898737668555145012165408067264707769686987029841433336996664208852477672838311400700482611324636657978506655975340957961817372712592095017359191931065518631344638796959171520409007045449195397776637869446356129521051483743603159988654933842186040650288747375806898351229304249733897248130429898333703609391680537981941884979622399183142308663291925473459382958826285777256576236660220247128954860347123119377614675406822935294356949698135855224305117768239551499866947095461351441614503070045988336934641151282595171009791747467368575676766758395158346987809779799134686049604446860752159314034343477558433716385757271579548828270232602233610735605395543947924743002656464283681784621502785040892450173374700400744730493883157543340098297317203389084400538927762725610284537627516756850403241466377648535095163387107048796080749471715659548912659208410900403991262007555135652411234437039594879890595244805769978304516161376886098750860044152097027576454491326264394783679077003092185083991987940035183613919868043432784416958117086555107181406841164183498049224587596691883813331182057123069494859599619653011853930957499539696881381145972138664451601798128793170330673841697793126028029455853081738765967236858402612499785935608581595967767015287107794238711405115387181646009787064144189069168695564513498431988564251470804027997740888576754895015847160761896145594069405697333098942926395765300718372647934854926391029959933639570236122221295840373916022346735496264657470375441971564753631736945984278558347249170903847175116536789676916340214841537524774533701908965066375710737849086933045200110729972089160064052174197792722617795780109303754922327526942929175529171936040766144350597235273466762405784773615319735376756880702508780902798628477314365770562255159712467244225575569436196432560776072536677026074480000691894241920144879769984584937782519458432067938241152009741149749359949404647773309416252757210528451011106122630831002063450051144124114146596468012984703537426743595969110690782460908077385200105210917189748370618031370706017937840965870544709471648154445813157716297708607552050967752716040729567087661016877841353738199051180189707657191498167265946831634908355032141359711883190038888405456516609829764817060134551222767080912809265830284747733169079993804444736435337798472044037193577429682933970982864451877877723488660019962450553148748482217160727093223108005807200586715000659339132715221168025513196394720988490928512088270829833472548966175215446957205055009416717629626601603673309573179163855731590099916974308555444262581673651091460708978191595139977153193959119512603155874667011901993622764579406003761807900593751103576015828490169891408760837663470999032357232407339192319065118761740892983906495941710380809546047021818757060156178245554940643018789277376710423908150306059540782317725619269829257759166806650763471091057890215493027400331592217492062617828863383194387975517012840979439052085130099873091169843739653700990652693456291773171457370833885515845152955669907190513724586413345527048770946194180809005254227310925567694574161637412438812844706261214247666771673055625107764465480872805535757881107624308532904416959893893347472990234590470623054359406738444389597438307034317338499698238044446547670778810184245427631589332703408118092037112284649596369543147740122766348299643640685820274840109301822157606132653606160328049972479037479044351942687451253480418765239114368953197516813339757418249143680130760022144605192543956586136566807642476216742990647212101843888178218285653453101022779419973857729440886756870575821017748957097547646648466356552212936872503225779837037651414141934089995052423966839197641042256843155611573852133338081068549452737976337901815529600079937720287712608799100974011313805679009697056830311911537170138995907125793099222309528050111047463736999551317187384525545839729444712875693562966776876889728570595622739813184251761007517845923203052642907209366077469100509827128339447557451667342382540390695842582280116530246307978071403134199958849148631313432405297108426117646993801720683981542459796575143268890593573875588668845614510312990540551637282293159273339995013069154489117483048646681283476280589617554255366070692244574939326242965555066173105218081382511667263670745746386659895315734527223083160211041542453695871742631929410260916663289442198993381846952737588817037650923901385111533088040512500318178576565614010801946222591384096528598589361608777209806394042969406440941073369563251595306288719221303618821659392639213580582592043780601551327265421783139240405288105489105776610894123828486737327367137144737562188189856666957712959573109951625068014843773470210529393998048636106464242756764802808576413548353205251056615211774976047700686203126402939651362538604593047380742640057169912957508669003977067061378664919992336051528187149260472804015802025393121053632706200079852547998449132558329532837899851924359048850682951229457775183435760510382503200339004130420631872952143017175222714939644806705436251397546194284476355254960592298364419109157144418070796517090777907019060515531277440773461901952513483822066191246742363382714796054632066598232208183469294727335511817522423302799029189383830552037398569475160798148361126279248732305483777285930476347479912794152517838606520808477003508383272079070479076374180969050748847443953922799590250696197254954359990098714070628909650567481391870198287257441960913838716544178582195498720256747676641312605287281603537003369205525042598992184622821955807960156780989955344973156068003021561020590289329733698039266660484200823170771631749416204120920319058554190239250379259275593205073448770169005802624640522324548986790327685049964370570832369671605416361416651841793768452670103722494191487530760556927632578127025555212537355519693264685524291985598819911630238557324157964381949139417139517071462706913801045955939456372456634116263134777075385132696756789892156382337523338553807581914447542623877018592341703448438274109357743774635548778313090624293858688579289940751104065166559936962576323931628806652618943241954068876176653096935576371264030277248103952933026786683856694054305260436031209762806123116005693851472881673767813707952680327338289812071893299388575648132431051639048022656995357223059776023048032303891306560191459257342893819055231245588581645818985588301877253735791497849513214223893607007012367885741918630345050136442440153114858136806506098363996759252992216698296085116838531691270771852633961231867920998110599793972993989347503409680683034742570649458195418893532599577826847534035000932202754031641230077170413488739810498876639661023034172513283086259691397444031658613004407769974123417011086285289584442065737958545028995377239262179673748611143067307305896751317613525265077844298027789678246831161261632810631265050859598731414287915813152846758166936056194360352022900101185040536851907771846969829386507283098046147806303680072049664649283019610099879350331527753691607183044035820580551096965220365139021009771673691214869017763170863959220050351562524515882227645326376600249836853162517565975065723986357519231936800190919549314441083965959056576849887729396573888224739301021399172200977875560758746243393623254918389328653228943214796618971332494887595664360566162926645308186248094952944188299133249362987830908854695223344139325047343022686194363154372916157690299973469965370520179666908491916692249301858383161823073407902891905742787945338309224505495775039774435199932959323483220821649354817565426965591357119572297086965496518799007253285995363486508787433607542296792962393159848917934988864698078350183791382987753622102289122643299317751876550332061998332829595360636741488138477579241516866135648209380650462188457235106063392990637581918902196861010825974163438825843944598789697539319167737384326850903952966129198920237170278110753707643295242792341671711752399765899700631031386949082486345406582008658789465904727841270552193262358247189360219541888978221095317004469938546061389387622221299154319018786578930136612628811872394236922707913588244551999452886365493709065428943790129848241848456329693724632793363138272419811394877693750757763354950229766594282912707852453966205811428845175043233368212588172308074006524364669680719342401049591538897261246891175651140166785032507168217701041130177129872529200473490401110247382440149620097493537680518929555975529305008621918010566792469500617937185367540387711747539417053820817522931691848786368919877543551087606163354070480377489581476080890826318831221587215718532614836909658541209396495574956489963464718620505818569873069867874181298356255935382914471425232133834689891849962410098440075021791797136990686359600952901245755910341081741707053982297650820803385765619555148562306712975069468079260602352983011631555402494426925800444564622392703419110026996466578035786860313462678858628947752329700798772499856132709597885908922796775767418982349067756201861727545222575198858329714563613348857942394320649928417734742331758336754578521368238780703648482940565376109295130661366052455834638195102107813845160432959626270572889973303968564275601596289879563637348764702926672085695132623268202373426595305649536954580174777930229394695761234433582794994271350783144224955532723025869253970946322860251906554957070998042423288886968286421357955796865032721911938240231769729525760955629754526179614832854248340549174782573742202411468513768074386516131922320109446595120087261187284846839485787312925636124677155504306745262038445868025048854290529064564880811198250398338353882770651651814404774727057898669883260382509100560613396957320746032898635021568736918890792656221722570813405557008508052032237564927869604724315610432280443588617179484549613060970418942080465159879864590834874889845576898738433372531744370800683059181378890685542858273981411241726226483697379422859545943409895174529157968632566878213063416070890289667439330176250985921670738002322275037120507383853359460500354302094120202578572944808536055247511939973902805446068664942446465955883617186420390470911832656554480904215772579372857057625975348963809968667677602894398687153225311830827961481458841414224610284212738180971090208897928662826120924368026829450480609921972398215025294669407597476358591676779819177419232585709423519188725348656387909333843967682687116801855247971326307774270964652392789758725333294750282724708768865142167899522006857408071054001875192201883691277205202630191033319102636932935043373993273376439235674726197415576213503292629946751977653218342514725646422730418133499619200639323123151231630444777748159443616870080326714482643178281301133406721178020305933654070354817945837306830291105523365713571034282887930968353713954877927889466023225482677290464990251043697917172896398476905147612549878110206726837034338124511167280856469479667389348520932705708915100976962534366504603230851104239331358875306179205254169562201055875882753201309704685506571775478918506620757780957085349160247020232442087614264113213155320401025479166297622355449375590297503045764264850752193371837788608742384048047191633519891923318087939076048509391326830591378409534102197912638994711395203897170417150369887645277890823719627636387005928690179203779518327895158889982210671953461528349519880738221080109097684387727985307706705863390571050461229360991269260384846418939121528325228776995885120294616406595508785437461812517017678581741031554129679237861072866023323369498077852753062012965998082344009784634697126813271713685389582774065565202417398589994720614515651140996434849723567877237699152423883546646480139504536218685187466648278122197745409569719027131969746091255003699699969181238933985671035015604657621028479850493701156877588918908515438812374129142327655536771942888286985094548045970447218651261074051297084837896617061750624636766723777210494766360894309489708686418859036455409649372738911917715296324438020113412146144095278431127718055438911069960462995768280585146962322121126140768418782893585822069535076136398665459489859915283427270838193486396945881567255742128920530205971006402961456378099456078529625861520863917865334298101415659117976409806954612815700775340045533770045458981780500763415987685198662631403866751254858492096626130397231423669849832168356755871884923484227709675336225034430588294239076600596392191405642019840906212237470662550151487540329283774955510631275923672588526330425010177454959914113194415458275719092287936770062069403667762254588756399756528888895563600678542383563873539113207836965856866732985301632867616603257119510192888780306217407527340583720049073274694152291312021310084971157630412642158998902189188436813542158122098580187111407008664369746137694198166713295040208356015766488594481382451097869677054050321197088527238351233360798661392264197279569605070404248133424153258895530691346054391822078803396320353976288267535821297324695197107872520414614700250687447127852107681596641863577411017672084585910218763058011803565800024325875260756757758957192210993152269530052321515287869050705094270147061435609028496742109052807171067099314701995740117155850086659096920093664364928614585488046133610785725177533125703758462720448376022912724564047550957007688004363064570419557362610490935099984905341910279351632629932008719105304640857507851475769682198679608660440788994748546690899454671235007969281438026246311997032041978041040737172701780705847682951325122172308263618483869578372188090448418129787310626133850188098719962918253353258721431381514465567981245538730405414691370683121067722743906699244433716934645264742940958184635809169916437131006243117217827944642813362382143135945315329722798987907209733105649457519856751161845904802692517306404296517683335090915022755119764561798334012069935669197974586446786663347883438538863786182079907514146911937910677436273354862781307927988040212129007222450619151553069147879002315115910197955358294446416694659611812813520157684213422423753073602819627588319683724763984252116471416123594513601168029114771618899039140453140643000455767047375155265866662048884208007933283998539919407990194810830612346034526366076743433271810879135084660027957923011087230738424607673724441148653929947569558247342347022890832545096903201952345597194811395771702678221154307048266706155098351154177235202146550685051362402083787907963765203093368512074027136978995533082907919954499163824763814355379800197302848187746200385366540218487756728389473339321024484146538169108808275050019928604825993433770706080140006352382191577593664410192065570404257673059240894122864045526546705600285491074621475541703236099530841620173972124805615879885591265200003545727050342265035389478754674264610124507629227226340491657505330597437357772245967002191167794021991200374265564166309347538509400253763415159189855762672051239542682390780818438427256562023213675258188219366256690455706794545432209682968385061190315943214878489188430388033233956409818933823688640481526779834129843402739805555857456070885921792009372555509200416019488480032022044494759520841446879298734919993747182544731717081131212602058267273206984425943978841167008885864582935808518115909770273102680582549876542914505622701246516864778884205703997851518426398221523727986622097563743778424887459106884513421710354329766047707354283706330352835592301435416997738756473863550576489049835348769141259861607015763138494282497782822820654939461998241045726074806621880280796926705764185908561097739423666460589725712858659979692567927873709339108490430005919219899829113868866274235027838259563935446450844070571010139829940964862061138556844721081229499534484231766531691130925162360354656042891340465246779643391120849544646930120748990440176079876512929678485036446426098148993552629420489188297965632419044472223346999999275759603613011515700178604272762312732503291621112739528224396343736511995017759030854281359723182206245650903186326434190874865083275459703238820635903761574667657169677011294851437048388306683249739619925502153864734574696081118387599919035641594012402381711394211440938073519088851840727280448410261992183017434034902086262900805273890733946971836279406276383328476664532963806795021957238653692222509246153471242779355403788417964264591196738014181821032816880716031037570295002430253010260978242167697726259650744024030773957546649616999101635780118330369017018526563536386633927411395421726310369573391702771873437550398412875262307930517185495331239841999495675523483304531426572600061478497363469455160081515944535442148547816924167579156268897824016698160316449752949307024272048745013440382182993533938928620809592470457645765899598819498793863486274633223150477403899773756986921559160896643628836595809067583346542773633058590772108946422550068021954534334622685343204574163084826777892412025451099105434382152946074405150448697324219700887769356372403354016540575078139525512550816871491065287537295029036798585340314964786703240648565785220827013827284037081918532858014685984565658951662605136946251888146707017457367868919201453792214887530246007563371643363292851143890637560440939402100410259229716538078298445815805733337800128334439104996360320942727699898539276459491597568681885131606072980695493332077317983949506094159670703396967243075123739062026209848141473173850499713828602886738311633240673816681697058556655478943419803444815707605462918040423919904318318108233733476811115723602004806722191973949381998325369426155819863702355122868490344955247039910247200220799826620328683486212168706624357635348972356613760965919184530706574437882850932362623255972976372735100633107877741782273177130370173259562003849913103363301327258058918105636243032960615405816155701110657820870117934535035837591252290325495156627505884012111130796090851238495035323420626760118205092263322486725430627083948928263846305057121912560302325225097150474998872162397631140611613219332796661827883981942037261882579498186907018195482107631656623443968847428158163099077400872123252452162475252888630813160744331681298282092691681041786815411781646646103399531393958829743666424127354260169658192622592759056096636271883069725491966669572921480104981112587213358248231277895496094129232098326414012248750794187112096846051144771389263576306243073537646649876479250504318285127048317377432383966125105047658532239353097908245483601110402169713728262911229748410043453768093868954462228181591727116825850832803425310974053074871343393503066690297428346959363806254163503263420941916248073364075010755129701169376619421857580871872964212586865585518380090741812326973253030288537166541223775223520187683843720365432651091453249898827609762715503250998129918263761331766592168520122461952256726245971150342523531945197213083785358304851834269049462770781216660421778873671956758478900431017937472650033928132839798934069825157198147612183295303776119481976338413539558801083161686717502306685385171419990546288169857753725856258036630953777569803677868498112310953158017610971215820659494719659002823201633401850750521467733983170923183916061366380935126745100293191176746237889870699051700347860452654553959924622675709786774420682581193207211853279170057670220717462571705666094586429334926944559263893224201744967975433989761928332721348694838670358157987907179327699330687196427148325992279017526691792716575891818729582222708706999803845949469395075893079669954803846466416999824590851324828993371586292315568544605150611407489524595847840052975820828548185670609149856441270972113288769036384450142113016869768363335812385187420286035276040283832958260861446723448453353167460536979635347812310946373233320172845509462074625876901016118473381660534067195161727739562296438910914876098247650370764911047269031548482849150944131602666244396392524171938570113269107498746476426852096568859860785431968269359269163283361352314026320068403980233184671803710968308500950932464408358483865220784841667951908014224913956176772991680270270668547267546193535882233375713906511238000523502834180719877688687660581872452561125803723861919617647224822504305243132525429769734406210845129412710774401395196948083531049946871590013844022142920014191763174746863014163282428561146892489328718745898158799409994733986378863734142323904496746062765490206549096979026543144789165038030430532662708982594078900071075479511822014035671608647777920273833755287189180774713430405529373621514572138659957984250087351534162368668696911837014118947800654176267887043765320288177868846755423069442198124243197309392623411018538001647774572441563283063756706325015323503473880876583710046220320776571305294823047033009671877143325264674564549286843134728614266229860937353584218687293760382208748438153352007915220643064417929629658290078433842580933383948893652857447506517066387019941609950250200946328543366605779074611093271842511690181838980245699878453005605164775715039676244500465987994162115355188081437196963569487231542762328743293023195019360685757656127030105035425061129181625686173020430474380570572181982751388761118730607622261317315453437414790528502768747581401756064965056698040483289004894932048703893262909073292170393975181963329649682828092524828042609955494414644665814798174905359454724554974204566780671936702747238568017307561548749971509053976324428958473654799699241143084540749907916028120700114974457700346553330762647330289250700657306610508478116177017410115783344994999373849937629809368917002173802300552419151493331007872882913315011260397193187950311077477295886542174027694032829506295474076956359818081102583631101818474087121450480955260698092568259399519908694255667593473323051800098849419155910458988638684404435771785356779880507306329174271283024843102854876189016722712576955444425593587411740581406503084047969016545618230626064385048523943960493818140018633274916567539216510499938316381298640992924857591061346142553095893925864158175399869990367610203452941649509311094743923812955302308790206275586405656786853483330747617765358285910769670637048056906899871643478588296232548400968644501486467473218133212936682797817929736561047864328524961803233759081696181964050944525574374472228104215685404933980375810305333424815259755351837821706085794023871460465676030088159691605060743976700503530908679979373466881897863215317160154192259240839728591099497156235344058102433536332026240999522864738560931565015946005954534337478610140952311477061287304260031936978098152730043825901779378851696768003533916527737520547427541065443580101531647206103100612780293270868118674569971326521399856005203397724750151796739755286074176617317798413198323111400775327113351854870088577897558221895031692952149819015341059496419526483407992420243806495969338482617531914753584929741035459729982270919252930571551188295775262026295189860208489560664058201014533718574123740931650522419290159791265881338588612039003679831304501393690357308084610473888950345948677514182143011275191102055548034216590420084718295918137286662647707697355465068523971506242786851832715534595143623930280337014679432429832665195203898833525943147416680454898630744392497443885991851802054079346646652527521457247198164728531217537735388301236987927207550395640980326767629291409087111871640966357940429288041498121121563673045051830457214738035522423377094560175894713724732939182374064771789744914030183954444574419663265055588479801852180382617800655737675325254802619071056376056357931083734348635691220168709573550965679179886944491157704388040897021785499020730890185477453475138452430729243911489854936955619008955012651783226056650708798480187741920851695762477132391054018107737400120158306809254725147020272721770589225324563700517814998756159957377462044499155061511896376966441141094840447522039078958318626751912541018537678831061037088973676438124563123006259345533249480255203830476407030698552379748648379427660587561434176942064391823955172151023032642582371614133477332800306968511389288529821877222285807393718420489010686635003384312715506162912705547282037938476294461489691277344744586774677188835277527335809961585252367994128016718097810015884165472306366037984228928694224772204791101793235028037799957299185243111886951853917396079999141187850276941160668979055578306363581471050497731151490646417262547192982567133055114542404683555038622921664096692303292656518673808065496088215298153037829411795550667153833235415116483502153196529263625875084301979886918675571081667945372748394780172965057501185687857277959924387688609212409929604972589587284755691831731198235909480717724343835741641281029406284812638039856796784629969981664551065191993133376885490519856209076481557259608667245528657012201883044766923185017056803807359086912669641654869603678302800585703310792218707367532528467846351895208681793368905424887016660078029984682957732638258681042178777348561491834470193921303170965531797159565349504108814481547270256133718279587687830943463130390596533019244895970812965494112341175466208351971633170522556910171318713162560173881356839123849436596623642209114645632930945116955792691147363944834402079232704547409062011386778325059976472052193157130948564912617475768960058254891870035281955388858563074417104936989125704616162235713926688484016084684139989904812472567639312748615506275474034213959640211494547024920566083949332447645703197248433126638440044783814057961347770071832318146427472713943190704241217950105802302116824707965478080161811150665626225360899524036384970305213451387169972243694248614903570348317817972335187462359373076543623977431005050665295910362030192863312767224594271837542783634188009892378968907061193385579852423636630320295918898756271580842822894679086128874866810802494305149637166138104485248536073430625101884714234652787475501755708317213302745409892967845427602053066256901014788148860164317426534998032705442225361683217298878138746813321513650081802666613509025127398203463281060457227381919414386309566479527343093534931775904280022330239754725773153973856268964357434925208048969122300297386491458076162940796180757189818857292781068792851596209976617738017768912231708291162508313923004260033004372231396444132710756302430266285469286497321127261004968675953540417922596604961142448613962850554632919146401812899999699396528728448557144499202272212349519500944307278724872238899947781893398287877566139827627250442757653385039848849498973505265171221168234383446136996495120758413508202754054233662297904047828743164394773877688122082443881803771623631627078837162053211741807771340533339041032241515146830860776594639050619579463423624482380072049809812319197571487112235787557324111371117528064873337691712598507050002035346229958486847842193935182916285887663906762008090802192460479438026146300464180585528004741598308751507761975266052561469453331979774565937463734073056070760521482444507810834539494974014069843470827734340272661404410958702172433001927241787581102895258253314315012941956083945901024556401750652545166619680452012967474788574797672692644810961154044224447867378704697122022416055555281214619641402744201771690073125115476620937754650203750589634609867207521011245511639915540732951411010118511327507667365848251942590560364852257686612192341819356723339762577125073055977801649435962924465828873252859552348068945529617735252168396285338976637839012564741480613205030496793728347519779251453337569063191035455189525014302540644718902904675918253941922928139670514935656165932464892611794988624872950826204158055328493448775075503141306626701692174893658510542836533415969511522198157940297118141328205344977024660443271520412089108635094295575651858102225410235179171622173139633123913189049059272686945407123722320432394324438986397189968544851940768565076418519277053596212212613152192331350398208105742139989609810638794242369531676082966411938653370220877397997849254757985203699701596985521122377848915938050142348768503607326016178558046734855822347575266772791338543360510260533776136155669908179376114073746476881546379745533629591043547697166510114650359538117590407389749048344165978352432085575070766370046458176617244435850778039893684589971987269395374877801563590445247795281744623777250966646957863600831462216404214027962259687267048350897111990644963556991718400686561857535555344596900877698706282953006475321529714222731917986879902853805991597908308106878771958524658156675237192440618153399062841718707030255791767868513432284467547705722995109649048707585103709292227568928108951918293390879287573431472333615702289578626120078218770201218956960371893125383846980303866591584500160594953614749646555389684123900496659545740596790691775779363943752604055279863992760836719673091400808488831501506439520773580618432508126152164400889696722504183038701857354913225021674637419329953268838860861146598392470670254689736210787711349185879116691390531383843899027035726857318089284357538756967765827812797098169834862515848712589066850010719219426330331141699858890608970410107136156274124688962682951904095602971198382773826660451542876781580103391075337819005583369795350156422262631332827965710717507472178369361165587390546153234530242372884372225962201667701848292004299703911988554628608053650878847380181850876405553471939908298957977610123928454528877929576023704087522801367547657635796769207693534823844483525756692942636668657891898268504110710386814063557741101598200409067455518042741332299411155078209520323666248960386016527257164723953855491873195579477585749397210616670776069459961496158722762545078741509130100328963808993428334984183440499124210371338204723272337986738894202830673043989293483520629325944175214601348278017606268570772550992286620695671722643288651641752317451741150797697373001406519583679518105817778386889049322660033449015660834938957880770282039907385680021257126403815463415324895437866838405466426219050899875509292823144750513971773196555504846715126281979969136839700892748678805442712782713201946605684186572549440175529543771873335976634227519041075561975913336920220597878849119653575250229053118786548715567313019332144146173492146110977759700565537493107366484703956756934030106753264555747014198057635230936004529335216861664176011547919749535909739249643234277563299050380654178689010847053498671662093823861282325228584314841632975503504035990298220565134851105487507207450776524940788302050551192478446273849652278961176214652383457714281721476743367559692602071594675627404378234939961378475823852236164080409459607093712742627202507769043408938863315992132672966937434991328916752777998499108181105158405879737119435027120800682475015830836834558790107094104742680730182676369305580224581404225399711368324314603475023216481224133798523258944956413248566449200929502146301684737208750731682010998200372213353146506402632851446788415295712433547648282362480966486212366855931080718331727438603937458369106878918972189449425416779130683006623418124104258837435793290097380371715662147922007617064688913135040835315249366488508019225711473184078347132284636638291924996492386339583113167939720267945947847940338334886997377782547028938619250608004882706551116446554691669962026104913894689311905803989883480203262621252355856312614372501521429540822945700854980180420206851733222279604852317764905052611837410708741848253163338065035923007576446024151998182847734972474887482194229782013768984270934253609278227939869834903774734164851033333013861987382437773751617044288533435471315354425464364535934968281293845453623797077177473031809495989401770870793943102205844386526689748578869730848154158153302306397597561741628250550252349648760344885856603278054692195703867788295645739411072637926752011514815801549055074971131375954269954378102478925489330309464605929520737995948850350967142912678789180987499902378896597030257393207232355261622372466701007845836976121866395023538771740197708210120660384088083931087946549562817158738771371764129767255469703636845711406001330481047525437901459340475256973460096632328221123415508601713323708139356881226238226760008691471538215661268299401614609863702765691134335483772726129034419429118973230087333890704554402642234512730722914240060285697011275136514873099899623706804660977671882220661380014675830809070940909637071616039872194908816724685869388944083241642585966871835085816882198416400736160895990999981183399329837571892251185472099365922558689686928604452913904045922915254081661031853497064447729795680504624740894231112597414286537214128545446316358224557727522551915566632421426086783929668237798254806418523207119622543194198184728747875127315817594192735812168045572081843271413369145457331424276150188138480607484482989275809880184689644726671135378076130152121764005597341584696231418447179479885142591902269225291435914716054828462548184424659010620757393703024508522411974898206511444144840684057348082117092781525545219885884552137010448107394401486612250945462842335707400597648026006862914525624435533271516186271014787226712740618579889221253871553860642101975410835164455112804111572417438206546350318407291583254882544024455408868009244945277264700911622194390229898531937058606361611199279781622087291945074386873591920939934395677395413899889784068392969937483983035363909113743865493807116135030394215465357304671175195011421784426790855269150707838489161906932894323513513260477408058183464902206684197467384995826616341860683197988934892767837303009879764594508368300015123340353451261288291602120421988331312593493750180559254386707165776592758206603270762613849505519534555792235990830096600888004829644297983575853856587475013490407637493726901520661912946488436301402510196360500210402659491497558001141904234983145887105845910576760797803149764460126102920775212531244096977123458558022990399839350597969938334492390147089270247899251235044329223767055770518736330311565728502592494446167711873645099654215701158147581417336494385135648758281560278308819583817086667140656390129332795315216728376515957680912444101740521962597483094176312172921550958004403788128281808135925121150797711661530555719663742243737104381257759868131044901923302523545401162510618434869476856003556468856777762174979609097292004892350427590773431883186149883301885593789471204964207937515942752806811380918669578547287837406425745260079538692698848695566458104367774935526875993590884479522890087401031941650980949934641984620236263606363417272598850755189996125472062829133647049754087308883277862429447329114172299298423525350015624588379132595891570527830045606839643594129889267944353515613525072619436499056371280779838598116777673850884325092762507728706257989791904265777882329034995491191188718570055246846271279379600215977892028330214158560667727157739984734019872075366196231137316066148020901946234247128744345456341488002298308811073453580960644105958522792868142439961021177749864589102162998901610485538157322447169213826578520024533202642820216854660927053773273855367702767705215108181082702257763138410186388877246774820588560003233062381980102040848755727027693766491980188942945093199998889419423280374586865080123789344637516699278020184080860035001431716032220974736488315318657935325628614350323452415430731847773417784692426805408071625034478113344556006247830759920065377370613425098559875810830298396808085544241939870607396334488019279608064665353926945262462103284462695964125086710910818973900599846858220154153221766456111728472812373747409011423901906532586845235950329106441281551138428473710627826289877463220298119014645252705158541396794391034239464906675261070531341253272680957628099896916265445527191303156727071228807194173702270135624529588434972558222108389843694791815744241387229940348838981318952399775477870741301448124661999373675460197489590983557022864764449278243461117058309136412629465251642469619451162861392787740597200539372823358248883430815816483179838367166005413691465278999444928333259982451044471320864007984725469484071940820086739767327323077327919392270547462931185544834023020733350808277366558991876703670908472419387693866872196303592426319363989454398871495732534861106680020422007345439797275935738460683580304786675215446747238083076897328218856012816037916733358419093703628565345267281178624268616866149744613281782019324405063767061656848987810585112136059686819802650305441128437396692700634192965803060490752360486097065560672013242265063676804638178071818284431908289577187309470180876738220484813019361393828225103353832664014668719200150563481344531288278636867500821793693985713348630410978900135555344585469957240223995238360383590531351664851410509046026952747899408551970038020096109491961423556210300019386370720983517390403573770972788028218571312986430963752218319214945709153007799357484611737446245378412446437663326945393602721620350579634139908868101386386392283222900021987114415832539720410529728378828265104588245547838086578905287760710455312794549556480780030525159124739314548598879793646812296772083213195464873942995974815701119074269736411557395415741757704653851617741701325929998358361470522419615493275035105906332969782932023566446876866861860367838670760591154770332571772589618910032402052437390622430719226326233830667761262971191194538716388355887921402759746901831124775098811651767061737433693633656082246579331528341519952421049432245870164270231985586535275083360644585216378197013058773228485684796671514475380545348033817407986212764313082514169933250352330235489885281314067150098015199783092685732279294737275002735416501865811472629120824779384786791935916205826321405456911994653334747691438566789594835966726109455430440591322329600126154512775289015811236163684704653328779611929536960884923524873636336584117927116616347697054333672160827948470859024488960434934442411318645955136508501601951248740539351963102216934220187389971034318533729904567185452087916784071183930208790687910256562813705236897640220946470846937900706519149519069384295307158225339747862770927589037102092470671187558617703008471775847382200730515858454865394752535515582992105136623383230243216350324114692506909073176743263117393876612596242730745836233503723448827756086896793282379236670527774428331151631983426603054839273178918006726063762124376312419471941650991105542325609324830199956595059816111131358461513043495719490507845801219922407099886429353489287493807536792468837015639952844113774113120293609042557967657656655192537025348191232895515276844573386468392592403747685684884908627894605171488813115953264236576655659332469530852910508424999355123331928523474716406666669167127075476214787481139501327346951231494252485267595710473106791203106421035994493359416788259624224472134533023007567448789612410511059396523193178915392291375605123387169841258246194778141041732266767141300306856778813209398476334868148138559575299873464755615704236908375370418025879035039154615813684448829097701300937079764290050073985263322891633835846510370482464770349920868266987059135702523018878915727403097978606891644511508714895624390219724836790408552092428546881140142939107918227552475096188079441221414204664219256056735895491874628051007812207380187754401713362224495345185181967147410094915946056071721529176248818987279995780890692301013951326045343747327275122432815256245137433957646190033564003193512953230012727353207123579116429135344253280809856286437392930794248379623579591636116539329411356641603164253577513900813962475756354042386010039556228178412406910096482333090512966578121141338724593824511451436965592493477462850782518609805401149290849456817243706181142579174174105415826533817745000165626828716353235606653695869683365105861199871791768494199850533471936031924702570288247770874560824704292249838432838107135407413070371689965202880029591910947430375649750267415910188669125290065892831006373782769840195409353442791017425332933487308486904253427725186250485877664309595110006974258034308976573156955598492491559176581717368464630653573332032347508332720692368263964849589415761708439689792335779741612769797518592931307582078308321056286545456534513156207866168506908302699506318421947927165493824192101456667203166046373609165170833732783801930981754589735342125931523732120051495950798460401549332100822813327822668372253054063646985736597763090607617864708694535041974686093914006453065100501794698149630046737554660776218163559608801382942506647321775768107199734246364504230681130379981132540228850711086807173511836809894937983144072612853200034793331024856531784739880017516153350658070959423616876231826119277327734325173893346781418982519374595034762488407089068800979482794427247975158552859930844226616853731157554626745647523741289400563301855198556540847229060187617150828554727287567999661350292518668028283576504443842302971684722559651177290664520410509294327564708410390173923550796025162197304520227329066687998028501182767513790129523243730367026177929921914374822066760484439898324182373161471466252557552246898303842949692891979062496428431213823431520683093763541661534378505661761529024934968447602254249786197374521248695027919309379967429825429755971901186014788202942218880537499389130387154919796989314027837191635671405666780684566293313294711112077351571024867324542818649075157776875603372237571798676041227762830383719385446571634300404755969129221919846109528752446088219595426128699867441699536961215717335414477460336855052031791001956680642449254171611010397055332499937982644316577024959703352884953585524150050381540381177045476542323682643828214102242477186841468578690199914986534640370060364969073360152818974431955991107412776591407954434184130320785327366555787099968264390820519988430540261528535320845433331338723276851725993586646695480046513797779365679134175053372107371393000914685882359001749180559762320097569796002087684341532448109471657523430366289263951347401477691595926163542506872574247034839933872647992587497188746004545377409247076784461783766489321071112876959259440691157816357504736915693344702253838273813564164938633445463193851138786478669363483802211656300738747386831501108578646579282768297756016831443803900690944036155867225763909029707867365725765912912246126668406562970538670110829856535114230525191438965455778013157312414037419701277212539886424457829459688226733507571893450078253783859091280753933476691784215591164150945649033419388285051834710869515530494830530321129559476182455036301015510747500237228234707099398900828491269312331290063709498386765087146353041467155414335765047646180579875118271247156047053331478338473869797566749543859865867215696818187896606205399778200355608977490991336934726185968183131647432825545263134591895480114698317125886242236224970032464951201770928886255093594163295396391652370240113831245256613987749243789906749645838713969888386474918267813826815558428464910441482738468344830814103856743830531391307019424635190084333084833453017978237157633399090138529036378430968838446706320508974181843421886933749723743210117067709413730854346037867379520488055449449428549122804140237240296575281755259504107255356727502543967990028173402263769374211411125514317562981798994481608158197569186092932221282840010359562226458852650352638604044351812171031411538256105314955075467281947829034548444360106035143534754946843068923565569908978868177907608733840583122349669544737645630049747752647036902720241868755315320860277934358822472716583878654748770240078597510777884412682502040209618591470433370597984731481039830197493403903979554327230159769819438126023688600097479444846241152999160491174012449646754794282713717092100014052511007210876973058046310358031376107892412554035081412969739851505590472132472697841276155623846380234382002181165255953125298215050904993480452914804457196628781938269060181323201176571014339179932802808755571974249167447403079657963002865154227811702093663833313538051481790412742257257270256526718068331109917838135129103267655840319577854696598874371031788320055747649067335751612136062884343565822293524864943092691236052190811031271720244813610487177673219844199503115666145173991736773085479790164018386118483940524583544009034539948250011133205811005591190010991450629890611837241610050905963010633600824157592657144487528426257950029391093330708826279717893425102149525492564373323701599361835177723001719846665033362169131668720342444533111272497157031632621676977674297490741931249957249176863348191636892885691842433821555497771045446236806743412450950724359617333265670698759928402736927170460329157956418358779640431948481487299107865435403320165980907814312915000318310262302180609935630547982799833844481627373921178420395913454117860323937790577764765044482448042583829842047836175591888120546911950854551725212053375481144650577999312434549299415247122965965693825893666645291639065281925632860899606175813965696930350069460818641587749304440503303090186387351314247447616546609857740032262535557101601929795562563635522363029620907992458217964316369994191141942554611802767079154437363198176944243714222640568054972183225721470966505338039118931456821995715258160061708909706815870544870681121428035737002428974443025650323356614328949168332509900774951133377759076820432699648970150281768627806388675989947550082835383538869666560162033610607632916722931511919601434538314148794017986306067892581402781225689575576773833010881495789571453069578914560624675698927824464169581068278010696253594713479721220963254212445355409760756582120362774179751818752938058967199729363085885300855747827623135144379281401279229512519938711971034888159179232650063102608018957795149950829594938164101960856833304524280157548926702032190536159521355437458023216411527056471639532996276861064697668114381950055398838154613694456704608918487470686507147133521949123696411814298393727040302724996467915723720390837624612756423509817726800898428748710480831971423695304195738563898816236509583372089912879937347098639473750613939279690826766819993124242884706598576394074712834542294215661013364973789614159414624909639559901094284171087340894036072310277243458327145669352601007593957302475360479319647804693673304868233883597983121557384867162856229221967168802176136815126815300853604187780734818660525500707967039922536167923457901993568606266873969908868867222413935687475694796716316818835148976164732780304223498202947533443587306891972249966023829865820069738814523432242951349443482895131800077267323162462572306682900291846739178025339069809903001342907524857246057376210971346388082766358708004611702046803709979249388898912518132497548082569190315588676697846035177326089115828527245240177790489451942213922894484190093106025676370573503780231031671312709996410715518054852040808324344323914877054110421264312197235042630187214353841310497165653728231716207623786078468761480742599074378803559067375280640397969772223827301245424056093528912715377354973784662784877469825171469777117201056559915612141349909087808062659831110889280323343116604517763930548413443560120230087143243109498297840235062395658143649686760532538145749597282865412543523036324600490925539697777980299916878242017052057134051798013204441962596910883755304286712043393839905448915193724225056176748192306575540102221086300451643073556437358770219503121010564783379056715096490498375829126593978437405222186572160599495628699703388554827030210083049804444006129372134627179676306862487987347129119656514158635966419155884807197826442612872563827617397721638177364762113087639635547846058451700661550461514273430572618656101231336839375205786463784710874538997235876661803284331783571846241608494145208868069447643718170327331521408413032736687916096764957144917056808580382732383014316770561285734721703926448131813504370801710113296639250951767607250683792676133885672301015461976613239238581079713511077230918708284408150228460071272863991402081756288899554622582594830010314569130593064280744294353182700804854231215700141226527977199208542847533881866523842383446924858444563774785874041653372813387324803697983623589735459032298473296575698110290180540268644763979079466712823453255781946061422300979919628037254970311222169344306119988594396502797435519107343608177344121348866550297885210521842834049249468809373674608083316312992819940882799797706186943601058203407789847510630409037519066048187916892516032904997081068933604392643634001749700603209204076126227507311003004321349519455531122302370787070911842241759721011081210846267826850066809256548781265858605979133138700480519954614069162587705763194781185608006596127246099370894630480150879315451698492490169683305039407957736677037679166035531394626400858164927639588226711888255860558423027820045874360621037157154530875590560638950258872184530575061240983649530073888494336893557678008513950774196478761284108788030775216837598606868829898905326925637697441233423807689151647612324840809397574678754413405750968518728420699341473511098581028676200627171693359807452637579349659217690495428042329692503936448473910685969786021397382916949441950527914231405261138383066159802599996233795842365157168401069348753164801782790729455429106830317735773951508394682649765487286768807526541495861219405041788735171009065624105560071481606735775968253745693023847474630828097723214860153627012621735393315353225042744402645338478950596001002596894217432693970060319658321836787149493099408146186840268025592274852794209456493886990971187303945905558718261772867471542545432005356846420115046965002903306942595441060170085127349680032668633539436700252499685775282539633353569462996178307440590140572666722720103959870136423849000346245301518673628047592039219133324979950509027588441791247744434844015189901031850203632360808246412431299852092536995240569901631431715375928745876815621434398666858368524323387860202169271832947434684362624190013231884005647107299066184047486552026049634227677325563378427385333452883545475789288829435297236309441658533685286858320644563373635766948967824592203392033357784104949870012546357580216545237675644270905385617662903756479340776976879997952925045854809992990495294154036394562855606774818261169189544693709876913532967211774628471830299282610018949174292585103517545200757744248465052997799088966576543423957388231621989994803877951507291828103369799161113076492346223947776261646916888386793350326576854798599195748968014194881109744648936912569057954273119959572476631923911216918002905076533573651663673218519169584549939255155011588744193094868318736742551478237554953565796005726290919959248353030600339938680184795957050347349377126942020729416446064917933482725976684250184241237332569622233763572782446681291880554728791211573097468892147144692438353388766720804544386387317469642294396007591569965506224799860421528175214605727711887520380860994783665947762283033113183265290613580864157456133038434398977170934964753257361434625937383115833005846317913574114581583424188261231112418686589080714506716565460816730407594869119846067290666148676874348527982167234928621072118626098920460110392069613679458754130370090140427195570355158876505253027786750847885260804406342136032007664835376611563137459139296262932509124385375466617471467426327513874620531947725629753157598626722780717615139214670813163647651788039217906115074704071038715099295080631356144584141965725949421562801150514834869491046706466786779716809233505413933482230012456792705479043955717739083131319176617342825617510009250060362883811872129873810254314261847678315651039850610707112055791120381048560222173644577318709812785226402765234551796875975246949991940413427142650118225739077062576944638021607067894252122501692862043544913241776018670830208339792294946978997193236830964414302632353782209642587250082638115084566350778478201728982729989508162058821811385582395623801161490995555926088348818285335399447256873565706856552356421914999746125687947227619480660854567399578211958137330951120608842194134161384150348883732009705316963299396984630151741009409188595764513367854067147793486948138781349051020451808050427401063726556572871937336196759725970331471795518367998292967974557828177528726419704602144322785843429006420933867220377157082492733602579934773481465480346029524815448001642551207773365355482733753935506255337474625987506413264624367926392124654511317595506716337046552476474811298454554212432332137675762474687404857459278329597487688121772354176235812243698790021859462128512841285230904157744425737924875626752884725609323053349537620746062046181675931509693376331636958757423747853147043575791863774776370486467648580129523074906428193602382948079882390400360188671029944605547269346253917232300250395193592871656660624371826533272773389372592608867348588051258311376425548784589780067800472864551736484699141306601904631163973210400729844848695428919904878788635908287551646767504165828281213358937967691752254608895482863996756247868476923427115797486361649287080411640083511162101926910904463124602297013753054403873947463723618742849180359982755355599243228255095644595391006190243932737284693916732451719375657071075719817236088983935575437901900848889701724576647450567999412820636319701798049470165064327888595964919894199288360333705002551520095456194169515622494729036029918720488893074508340001727816357039459436466539933542257505725831663838011512105771927856511667874241425611746995008426131907235571922258854146095095633076079866072702096033690847216068051255615579804473186949433583219006027625120824553474565827326459267619392730709833547336788346974696560566765341493650091510494852017490406635949862241019722082500223542798281057221776305520372806015745054028265321081205231692619354749028072900628838127287679638124777823822263623457945538162675183592431826178471485281645112028084528088313445280127536859598075599490540311346963249240581079694695545564515456451611818960981449292548914364136817502106993873963092481851616723543184282192230043439467836234420004420494555434075557328545530030001178342814371894810170122154229692562929123903510746670190306255566097078870084305914485974791126401307931740987016220367619538952491744025448506276076824689736838343301182547003510461332186744436049321349285448725258851000330003596058914518481975349917893784720231057198154858317602481378802775170757870610085520567140005489744383059241915224639189555874843544384385542062751762864035305783975053986617376364277706546017323540708037312776646844301067243882479635841577150683785285195776505053876168768278151497330985454238203717275854179838676132014056620214188136087786348423490663153686695964555451898372913197358347246179504985607873176066702108720766810463959238881888211223615781616295552940855033913379127323280042238543402972609272382753997607667318668543983598078494204656669137463889550207441427512237533970009195176458258006155328874501571542036707773884583966910374833405959189865086998570014785206832050517418952442722242720177717889631808251984560881063122063312537075455683792146437573372092391114356262823057841562240862849459088222277553732391484390050875446394134447145145003017195763631493705099612883370508535672376541370438811181615849161738414229348557266569446048479370641008658046464721547407733198877483413205850214576303556217263478681472425155084601027882542315976013691267001125006029562073550386596844459841944223009472601697094692395273667283959889993406857126230994464344824463339057982894316583006620040959132009097875068615989131528223601830840217343166693054561829573817782377917490111963296505973669394179151962007794477281069230496704427987108638517084098087690452822318085395631250226944331447098568650203760483440641340691253839016514488002070866646073704730638614378055621172532141852486728914966313393113653572434807535768206264495082496795296629232898659316355573978893024040628484717436026734256360697076914504690481175167222851962742076838690384155210637495237006570218148500319139661836278199556497813365524700892352013200311549651754275603241095846676360555030286330926943832835459443810362095311075248494823999710390036352147456082327286594075605903345884108019862628186749868073282318113578494205347458106047858175868013423937973797807147073211518408265792337304582967591011364594807892462571540952705008417339615942107638883319735491754220247046227903210102016459997478267557103392017044623142821041382283093796585101737334437242905812107233223828857566690067170333608001311236766986848130962096817246228083871533684880430650663967253589642360593097641688871765294259465037258120805486444796300946335900933615380323761367366794752017390318167467908382019648431827238062293318193411795178861348548041524597532577405060513062907328954075404252376462532982617415156822477462301306694986847386173831803799627695823170714524263923334051110325968128402426496488801016374640655795229112810471167217052379317068379801123917439146104892998258262356112672527248041400635392359869039018335067785457788931608174610516532660890295654588059847225329508760232283879818486050699555206013267611622012345715721085125904005189698986211396824176035739453644209158077941076020596343588439302361018682211842119954380793152353893738143273385920597983878480381696021789818079670198986547077852128588494348088602733683109307069594519605385035036527333777289432309317148071654281772803183859049124545389137554522389996473848914358527163454566505698617650311724895761014738747079343146214632522749473125132719561495993658525066366476041682968853039852801879082127981525550101184990721853926345765076023409071930327396972213369965375994695507205720909288002110566508371461796381975109969251247697481262502632027800148429090319158171336834112951284293532981254494823102086297233761365212566186365928166363513716352875400193366664122705979029239539191957048940346715741124262142475053368529137839000915510031732340221128429282829382606867958859156097181215367737827087674908683641009947860671475629116951002985129993963763662362054714697465146117673790984827189944362704448184858573585219567172226823641669019808928774179893220895078430465200193260757273267572696843259538640989757607046309450598748033106965162696316486972309522150189840088385944181680385190969948861789062450296054870216060866154528642162728686375985773281596833676605939996930953952297187617542417243436580441290032856227371573008607239951246724961169454755913338467949854768029259146619237856393097295330347302910638368997685912777833415772686096813773142001508698477257670623322623240817950649633573044358232139604300841534937232232650133642068936398981534111530903831429753144416700313583089868839020591524125978596953031931312379430301231196841114672861272806792176618609984791138380404186827042506649620314937993588785335842577227838096971150167839878929822751241615006449982649076863539965687280311588857424541222419938980313764733840047631968278303571160860929248435173219017752686000863168456636955740048667493570373496496158812679940629874260881501726662045206448763044648379791226677121372430671459998718642973232204422754844141777875123729477892811431905639949674550042568778916956747786331202457527848950205471894714788393383709653857063723080960531105190578684814434186178011181056335409782375626121797923899397730955444303855489188177137145663211047347809358183482469136953601186755868149837044578007180704087621706193508852915358117961747100734440719127655202702710230663816926883220067635301756103919473173843455296991167661583943160638580046102209116472307280100583942728556713442812424000061446285365146274769182425608314134616739597923236367073443487313268926281538167894597773454973542776127714824397326960450000151300476230943082645356824717186546504914224227494909178305104536927069396128457855631729779359671534003600378882277383416289682495885746568656212433746914232757140836512351281059578902202121988947562283957515533391337208280842933195627655867828009728280965577965434557009748805783054860498183886294424768477195489823835320498473437322484534460418040787237613994188691762729972885863583719797117492263285745510568220493156723196291644661267974693796195274726398910732246430363706383065337869929822709069439197052595897525064755067797496585184051478866320259874547463865843031565877082114181989355219663204986477606183700509407950070339185418068557856949902754167568173492258642048354552090971831849483190728052874281683722266183227858699493404732202694612684940263403654189439333091518002556388568513897734957028752892075788058769198974170328033789614314226240887138194830793113407751412053268985779871408694017444313594440400447512082189165553688593817929889651216106874221441314866932861388880491942787785899415674721334867455803944472030716432822579899859311502837566794088810290888907800149481896162597644887626143299320918933372172075116108861314060591994549615294989508301478347054747783880995938343180385645633620904787045983831151556272586728185504700485858698098735516801394753045104554823106156844401348868769260046126819294960037015804240266242849610965085352232550597294078013034098743408639035435301875862506969566221961390891469601012614427790023788502007017498231967720942014157311279046245254177554877004577094377604395618495332927605821838655732589638183606637835087662205879573435411439940042217184123263491749337156130330288947504985588691401358431384934445911254204940912623424104116128434766488681677287024816214759656907919680186769852957970460776835830914085446264081239378039146864048844513384615761100555087295537804674301890571400892605294519217445928299096251429369074488838274257143373965313785247237278517188084275517651928890707684023679144817779486731802228526176684052806373962215513832766703585390625774695320900981677544243470428986385311777240046434099258932807219348030186075772920837627604844522944176087746076590070849936577773503750447709246344103278667079718301390787615497214061108715443205241600827831720961312360725907981838476642978009675480618414279033690855801300484787169581792911994373769611340783925777260442277992423278904363489600768380178959201422547503754190956818335958412195567916779041447547852239720908227794403054119521572890174062885445339281696881964126366586970963271155399243033978344581813642526312727097026846364805805062050532024081105902143460530809395453065871802628196801701151490717924238739969575219910063614422206877433862086985627121124589891277188318640135703535988054528013211716205728864296220085206519455365057908498204235668796540098438996538612468201757773653541194864615238449658903758776787839330678581761336633677533341372230422252704269607165413568749705704944781127554693810072165348914264765621959879526621215788165964733892661106960316968209166508308298695704885876136723142815721744908491859499784339149299576580173457474489906872970843895255134960979999956634830863658830049511915789846978888750742761123940224725504878531959211646286388407540188684261848323265367439012291274642586713758864479983548003803006565787171921375840084106227096318033558102753372473748523884450888904661832107024191934621089664310762034002115389527399243528421851915093014445641642905448284436422763927258267041876068496802813104027747931872572235438985278539606756025895059497746507738239567049935961353830935183837189505865591973634495888820787593458901943894413018112789893768809409473865769940542231769078366636367799745905082832231823411985090419266176349024877636775100561833616500791405094853422433218439941901828358594920360010925641551876295430158012352359985662878310410783807174322544427842441258700337916701210547035210829273877786496368373240889078705310549562553368957932891388538714206503431492173450816372422127644139812272013085810567903457984426750976468038653909230179978735946797765552079161452861342779926837415257372336618797413020918978624921341590846038217934621509481456420069181694087921291136903407564426625060312684771262405596954347748108058379167959708732215156014973173981247323733743042427608492708373427870713770757655013163749367199854129811489606836067367371753809753375856815979540643579214856590980279907592599046878304666822456365200039038622098862841441978012898396972375914262929635701877208723582911460151546896110455217051732452690565536477939550537620321410645441318118788235984615042523322029569774833166284687884061117157502762579709907154592017471900042910137678792602330911904694773951076465126602794145203765968688999746744798747465791087890336829033483442304241673960918829306247606710168106357760754113573197394058197514629994353936963938124501066043084218767888548031580481003366836798842478252436421203208618161029927550091626681747617021087669634116573353112878899310938862651561249535128606340524435505671746772852340717583827045545048660286817061463509624772471718511956340969184869085601578834000638823590793380465208833498448194682055135711751958588519268412583037984368927716935763213878907799763844969858068660877144018114584585499474830526567496208615818436741647380692288897008801217518231757671066641890155222294987207161890769589486631041866044083416554926646948483779586288475782248289603747205783955456925550072111740537320302243446513421417037753206351365168853847200363103449809376589712530534658022182407462757669530023214325805276550505465601434739857857720080036943091194954815488157865268067428465604725382276457843248933961875641523751293618576066089299270648422496383661329373116856503389272479958110830122080385530694195747779769202852444038993483949875867941862483488949970819739280729777752045910980502865650447144560939195628610108323811084429000498446551570700295453651273530998711494287187422441285020419898850452237202778388073014400666535713583652134997838789222315640631852629881819004764961097638256765139909233868988320021607766370409496558704559212778520575345420735061713570241316943763130125115453165295494579490497841526375102343732539468162453557377352176960221597823530592728096914592790678950211625080460293335184433479778365870544328948462136006611103529968502810386197153728307444479694614959727441930855865773706764325601396931897317208664024530183894945060612050409032764371157299285574179018745088454469081247360278402459755193574479066043062973820423779046077854049992512154633782768560666042344357177801504676088227988147500704386903397531596577952352108834739291514050411402531934018881533575294001588628615036234414048699952840537016463836916509558142129743268658455275121961927204723438380924302933772068312112942345741928053828270687679866584492717968263031419123492841396629189881199529726256233246269616034790023897226257389785637285573467564685985628863440511189099036595920846631272368681491829193066864881602414519576869936297604424199982821234534678892314193726468852486608837601131136885919657169229736249300262580019437824331921558227946213950009896399715323934000679590333412064339789652954047551150417045160393244006234197236478566130160867473264021672949470095276909579266876693673770052161082586921816243370754798713259579878867399254747786128727369363215977924727676049751213208000441383986260614114803863010397498457678671830344326046299372254066387777275247260446459467242693532844902662941882703257165685919811935073863398287059407020563145957863328475717290963170705252113714037109766893066446946081967647022190997372636470627596641936261576076160566451488913445529960866367010236187074113250867442316419254349961137439056764593791251068363536026478750122188986088437397933347445170971281702419962633780048051757246005078457963109450566135283671766168142044782175346001204630850142243481317128553173983230373624952302675772266366690905999686266146912129194478373650712300885159284935591848786243617151754514328524195706483732637902073121369673399558630203955590311453782756358146792400524194108265523800090817537793716192870285361098186911494302490851938587814554452320308864385345709864803116588435968622396942532460428368900064888177289042974393997642429432086097665752449972740810921980633744136046359553801220028780187185566327213313515861868286146410483896586550206297758572852623189704766299869542280550750169136892263428729762880540455230524800682443804829591093458972283047731304949733182569154822154761286602074960173066317411641780506467578820008919914367736046067629107953399177923792983590024356256122754930364551499693912942060757348775590959305006667882824165116309166607597362658386887949494782478926346507756429625861685198154741335627165605878601866246549650659157087630194079806231801881120612743789307162862712674330475228727077172916491652283561832256737868352926732075075290522588560121664465610172739554958431746331093684993571246252118597285086820311112298776452664582600490201874401302437064747884729520896971309592604134168571813362720587669572478916498230925361001881818764989790750968842799830936202304058347544592002371585136472546096757455237136850126970949931370428609060321844040769080428688547333203768935107387401015234761125350648258833991501424210553939122050105624803171100406981768880609975222846062622151703720246849346419922459614894117885987025382885172876768739303600038021108839086817420884283849657848852447178660205778295359747949059730790578808106537299378343592818137406856359028461626859530744966984328637911202111958575662196269966469768167881327395185489753078962227928638582195270209145861825438171341468385937574938353885290134072665606682519446426868860191942567912488456861034315787673338300782017052039160973127281322137749195764970659993202526522413371157323061237579802021520809662447439309668054687586915365068386837524644915381161677623236135080232343581699612421006139851216567416399578667507458789801545082202977832654589554656519789917541022043399580836943965472943085582979747042348024495926510455624141499602963929018413122823722794386394932598715326124718498174469646215533274545450514399458351388035869081994813784984992039929017610268080266860679369406249712303048768782186783750286015170518916603607168975315047908303918250477635916448661081287880867540057091154389647940761089998056750687036022035932959230995715180462818748092164621538717441874192687054244723222967962694555577832792759314590929571975362987723579255401494730284262489560877818166539155060608550684229253236616274656664043442476382286433043707698828431877479142893555018590488094700340565980446144260297591089332458456545474527936650367522292406761229501039977952160977401622199588107718473516840926473236532969811351210555232237521895084884181442760077515695500055763655357190072823409540713569476536297833758133792255216781946463140508856356213218859614965729221366335288889561422121356891618208452538675089240424195935312789936050415484193685050203658278683383453451859753037787744214367326281613112736708952610651926992493150951271822302908695299631701139717219139442639205716560534033514928228974938588049650712808124072483170489117423804411688958869993978647829446142249212172091208830619741375088412219688562390546301352432557680361657056331915911044131631486428968207525421864073478862369343819170847599428846935554598905395338454976328157047418463069993778528156935519331318432586369192076190010132013270373114922580101028895209194976430583822256794296091021598685326980548083694545448204450080542147393020389836211943231941537959792179941694034680332865519491157741853231305071688114885231165092984037925759357310082997363297448946245879198838470000658071688625813167280256528490447934832886454299720388022794538657316956066782649971949622495187338475550513431487391284243141043383639381660544222790578509321649683057338717823342611774468838355273603825396915589577295097555719919494928324001570163258864618841444376996088450297199422969626027513479775631017654452757512000989384711694921816385873483273430767969547999765937523256436984732802180487468680103686850414260409125191782983801910751343871470925475551846217479804613705376964852534032217197977426882478204339878488710674901196305767117676001172067011758293425125533278315222818993693669111585616585052535434418382456758952973073618145295486741493444903886152725031502833284026767631156812166482297092565983569542800581688084568569280305368247023075942761214649645751095324239684455227980532864780725064916628291917572000513958254778320519549402273230554799131379099961062481066077505226951401101127788886476066078120716080405355110379482033051607343612154711220193235216595620531493799733673910147697682889530736953353253938087648192732316832519015289797088498660314977469355052361899327493897219944067058332209698773914606038274418467519813609954547408499227350078909652726966797538505952832389095815526926089255923367580402452203033556339960125860367654246321776399314894927121447818876375550527324813646860527394742162973256637187493850463422601370965929731617256680348502870748351584722472431691228088253195090852260709870191568149484382205213775909133324856078684712265308237460654919762744226993440156291640622946460356773475536670030438728263371267444007939311683141359444885094444833894714694978204250405759973646705807427556246125792311976086682329439811695547878371198674299838129091837411879672454602324881904999594178868249087714079299176002433915650198554429632680181258120787518064590008942465819598598435717673958761114013249006025401576334051259956675094973050525288584238044541111786100865821298284497257304977023296504666179441021058625037188720556156449491073990544237570037738664322468893358682841615459736667321971891337814312521564338240379682865820872036335311326736420565731659177149632752100926173294863242306737288433415773013904332403841665243909183405013395427573061073350220501825831732649577065010075509480770075809848397962905836437381431308180703031739409638742203926058071992663799752786051131933083213316420313034278001287479178350777965711681042813995789977785534995350077883882453187862437767028303783836438506347960105968679890822073812339301253631617814032376025462184540007111462628271381393073692238522793256411227274367845072485616885201290388053493004017763939954898530077774987012493719104954378722051078241824833919862970307270804035291313648918161220409506994454675928536796183719847032819328757715747736524610830921958831881515362649977029241933034116948274371773542910642149360672486853112819614443977155955946340246570390584210818920527252119777581297148895306793932200459736521942859473480665288496857853840522972720571539129369209816689816386789084229685321100982602769017354417311364044311620151906350993892374439177432867513748029094239899117386831192692497402085354246655379393934124505753930027742647542588701680789141360972723716358949555860355560082612545955993834964630596112575755543641145391467719621260934004329222772984274806465282262960827592753527647925198590165001972468511880525262448557199368991003989977790158786074003589345069497806188468676214607084057088111573387431667943459908040007577091355423513717465293454574686610123508827563487195822360312715923833912805972408975358335837795192094841569674214412611481798869835999092283778694440474217132700688258113945819783274382566959120803554617682551779191196950401269049173929452894047578726622628391366106584517131174985336296718761993477488918079544302550147911098816887712640326975461744963314535443695989122620772692102508383567567214160165065276679966262774233997179857392461844228061317638995591968694147486908681786371546424694047899685930623010881711862793624837364325935600340462389167049385905571224531765570090372444244036718754936758643186017077671128880302222933461961420548063151774217824525469695047686232830462196819993385316872752483296937111674097965962938433316868713808834568700279385979544954343676168850418347615416994127257994539160562439453060759963484941541728573779487297725307669473623690735591476829560405544329519729295663049062614590167886763366940508047011112377400426174251207697732319227332867756379657908970396123290684485666042658059702636590079024115738820287728238397697186562882786032449208146376159024496683631198040502944002661627183942642108315144032708594068807199599888696470692741906586862070507796099654210025959673482427315878775475559293940480198922706469734188353305244769567946599750001403255039869861919269152150332530187931807382715955672479995272107201771052909224765625563165347184907055401240565836646684551461908018911281319574505579794711976101785111621693262475523724880336246439337171584519343376665681744867176784239934521837516911673652825007503099214074272785943216895996921696523634842042980290030578658705508929945014752187631327802141620615122812039799273356727637731958169178342814228976500638664802813661112662794290474080510846991510524339440590303782350963488964920085363751549332683121397359046499878263382315841297408947342924304579035621570796201371153505106848295159775638606044854066657888392947936387576163509719378732610271689607609352100133684430744042248240316248813294601585883959964885746812017061819062517440844697881321368624687573266817291403468558783656006901759082862419809326365615423514895684585961112852331423273082181805975646095658035347495918005401719336527102672939044427860933854302490246814614219551527191812434117817764251728089880584014957616833743343468239612137229484626294346770332927529240691901410915688246541943530044811868391544999517704666850844250653074276108567654208530707258439160375934190730852617836094269728034081540244601008634951314692479022475242269739968015875892618746474844964779894730484459898007377977042950669979582986204158627958665757949371472776027797446283504577797881870219219283340360228870224348997831809717380905432186997034738499325355755123116832194710001250224351198622759710511279886871196552462910338260930627468937202571828324020846123635062790891787288941873518385688489651552582317605123486239257357333067671604585097857722992067992283402528192105001348818095817696689050827961012981569101232609709686644037101508236660916993202376059092973099318342797299167681812776682212295571975952303734681464852958244403321947474558284688924558038919918788589469019805067554593822079169267223381499780432841031346304408397209080670663603670582992198425350831665541382753585888309701762698949097132299262943757979733335571678943589345818088339649902550278108543069250825973808379275377964864584627961116310063612887684401250402449266387455759250805358573771155750790422028554026809724606368649344043373970932663170405923809171335002175505768730315326345924227840945692974392843014278873253386899010201217199639389181851767522101487664194673695095805033498964136645038763183074355492191416485316948082678410946761973783982157724091710366225484633582880402048153228433116478800315014546171278787985838907706332124035250663658458475763435371337330895107399418169296074043763592201065476340321823567388978627645598851041784536774604642096809695818429047680616857637446870823100755905748706886933873476753144131140021563326130126239964029744599471806761040928339222071356501814691880269826193887684545613467631221290111154440434913161734649342309089029360391244356102677036991794245245880748795507840271432446048328547838270382017250043002926446209200627731166956964378466700602242973015348502913004166306073602469888289249221205272036157919197509457681341732398583966043548024090565400194575425979301745857936039348455086039501996005842805420922578814095693068011115870491602029607114975131585861588863850930009279219013719656384552938710353074254130377622525854338660965092510919149437042727152431826034989299002356324703851166018484638795547127848028013164256893123852330340459434025533460404082369161588279822685611052306581198791654872047408033401534303708453105214379205570058728139960507265642781846067864712714611352997569813578177500131193827199840608687317274816037934764638585329211749456216362600954379911230964475923458272788378328936551626953539823247599291729311353526161412399382502708791480922767049996428905411952081388737165939957344263272860142290404942297020992008926784899049869785346735775207003671433930892501575850102378745378528258064944843300543477337698240383669043470948123464040546639000335328168323648727659913163064308298644801534957615104916785683843812637450964085989976882364200352323491719364007412214489162593194578663506652480681332967335331248502228682121104536223601956316577121295984514850968209427641130790756507414776654411397556273196265667950782738241137866219360436966073507413486198886977657723769986615327080604408895814003653575307514947965077599320522614728762341043905451173972362496943446046570302742435298572502604661075459158608392487582239074710095616733668838503746401363986084792870989376511193152307486740775758332494040495985800535947200901785172801438420937117733534478335577447589012415142233540622738516685826275998863847790155992576022432104507466835452128876866741624844865876694737150440947924125522060952223430053962214998697282488566591638928303443373161665592813836405794965866850847883834472225450449997331791532348123197639786586879722241510155437558355562157047794975057651601628712816820668539631445155604792854208433975957807402638823738183177724536986874132477496867605702855034572565593805091052774623524988924414968749702028955416956930056769087195578527695570444331356664801887696259225598437333716711011345861745598630889303348080136432074659362780073705267327679912210869791531229703717150383825048758366360395924534315395707757253456729557425389667775685843005781129501319590453950352188088780984668366804555984914086932232571296059662053094440823929183990430808117155440163790145540934107859897605537462983478641853020726144114204450139219667604366107380507574110918271381115449778382777670084897238244741962738768743923921675506624356216195770600823390897109606851215990623807935077834006026407269552132938615687546877218323235156109840323703162288066238153195287645042681199346060862331026121241078097167848919260868741446297196874704782939359011010260595374606884027463207520901259349982274360294282813527446990029765106788874208594031222458382057008247091273756144428668834394123500726056686669806280024024726313030498117901379062093540837256069624466203533347462799653127060153195133172012316491444232393489596676136429047434387317344826493533740615840845138956054771129856747234206024489531224479902074660413236457930636469904162322502594326243518343740204200387891205278233790787700793039923476871776006713624209901279255899478025216394603460270653011521795212557228368386140298959121711746214092234154322705581272880840832774432335250090679467324225634304105104498164883105556236219106723330549846984535644661944525161827372492576849935372304668835948788219175457199393108137490466540890091380859089680200929720929745154219638281770570238747493087394845961249236141599623442598819610818247260126331202439150217155141663956388455496187467819029586276532385327594829876041703723802748201411224561288205215054238874265408924517085159338894107142509698773016055580505235882946839628615300549986712084860410321630100575944509940235599423002108263166924526287020812499746027546486402117446119629398201876897942340291651100223951809816333560619089402430223571770271235437690799571451689493096657902391232570375106604281345644162592993980758120615875875105721313346411253284384254649787712893060663904183605492385780384301446048950755733080898690284211930767193549753675306913775412890308269028781300965836374419674834946105845322416765236692748962541115086919808649664826500161029910336124498010254680096705019499734270041715679744622116515455512372388662955765070209773185280773771721172868159740189155761846680362091844406171392076748776233408187784001508319517391879407266172261697990285352749503246860157556255081791523412904898071458790974661543171822254787952630450609173812635096951254045229675498056718183789575394268103414339261573738323828481952310228381905342414213631544624099843272608705107726808910117138432848263214925062704430202084764015455101044843921660735003327394549819819025267313570915002104164621054210178826098485438844033343922661949685739639304870577195512051490388305316970656169982592273343573348862616494325323695206985236828229725712195174849383508853428744513842827183276463378885360265142512095021928375132794345444695832947986512526477541429171390815429939586347673518295397579185841566649477481358447707251204198516571130423851503866727481863155201642154535099518756036227018204368402913164414769451894404234637830266218504523312826602652907909187530490272464891943296982686006617220621206387110333419232150843460979109433023530840032443273787714538478401265623384042646688155299520866685526944554788626481854050567134049856918675495189163751636041089097453804843887272716908276462191034820842007857160452961373581301305216217862037824528992855997569120365474688838386496471927429507040258433366591205484714320133059201176856029825550025358755583257641711853433089342526796002936643717335280082630921703654084369806537611560758534150195097572408800136736118414433573144594554942042258904458285500927480148131535276172702923412789768065895594730237911877176239838620506549142773073178370792103734231490999733966403202820939953379001659631173126804723187223293971310414260169997181467232564190370295935786221304296948092295971431477686581972670721400801034367940599776850467696483538613783471590090131366980303800459948210291062894611966422612823864612223703016275611297818007174791358652691807017469588594235840348097154050667557223602991344294064563264484191052892140091828635383665736442711878924209424637854171106284316964777172431379504383615809430662625429426244233973524413932535153609130206510540782850541502004660261726513214758773205486382564321013997567077882452090038008579692367262872672638244813095665969779894215730761936345758339549957888972943565272867967390616054540275666203867218794575628572383145741884720578762901743884581194406929851551631137369167537294022121431709403953478245596340508211095895145336225570875986493236685192828946733082444235637655959305897260264950457307238859272505345335555400070093647008833980906707031028288755458787329635739608392654811729455225701757088667020437456818483181839721380452092899733949903497162394411913349295551265671607607125054024014645111300433580227716987313315894742606279961295145000789739525649768172536495084173335184007400045441082261520660878220384569998048546928541483246766736406481737399578224228393748591985611498064141325117399359017504400274647461487234451349797555332251184400477054301582382805537103033629325052536046442813550241167778226673122882615153701960288254918319372012739028116685925398973529475022106100083145117522254803999431580190103747930560781563446698318024831938357033785609972373933175764929367712848312574810298813234603981438223981255034723480162388549539598052641166689922591871082537547888467784175398871085566326517279763132946236418296656578763211747631360788718993267584019590975549881438225532052916980638198077935079600337520286155365755871062668517496685449431637890322851364547686315362927695363440773946241507325818371259809070360894336377977033135613764512299739238751904779181516813356108147936504184215118481380814140278414568176569230457843095957168546359372052338034676890843204287647487362639847956340255826649345542079379420843715947112412636459578024907538586521869354638855426196642981422101480201856664729351054280647187714994380154933777503727241067491212727742855091640082411652213174433731833321565762040293179468017926678861606391152610176648878979799241060502441819563393406271849037091811900546102480275832359129392518999149433484594275408624308452904367031571556167837057739723810420432325452831399926027288017194766223346912260088938462529982080355824293666862831559172512487275022406676762458666327891336595348748802770488677951257034565010384663436997030985892311698686937800917774267680096354359799340833929237489537851924418457595912056924191444289471756185682271025600248090774524416903932785375311987582168990662306296878695744054458768785617588685107250178477382807748204211646439619094938067003546413106683931130584166849428502335190256996165795562312811777922384570795452653562994702640200626992887038368314830882588581337468525456144145689778273070745872514419228803018410893877433968575115375287855789757777748697884358908563856741237695469931287534289976300077387851653743708542395912611927576531199692716566445146969888502018473832430394003619135380798382876472009189828866286963715947007386366735402193506525240885679150247127592147412006399720785802587720101733976392820926852396874402468530120880044387960602291126686764367277672811439460988920941919643599357737466018916493793227121356367304779041089486367469756989351255576852735712625224460156112469455307943228827633305364932064669462042874045971640614522764213046600804468836859167532745697271472797855990173444122495686643600061786340684945330813737156135192330483382735179469687706226045672020691926988989680764567244183271248184749389768108647290441637925730302469803452583403343442821465172050556356173273612539688460895605417294003749125194760242764029967136725808187761103910924612575756162761428894536350428214678915160316432244909749510106691405258809818288337380830077342302115083398872561415791335898300442995126646582696369083540972914634791730104494387399802539046672306008754570215422637063265841998182606136900107213163849362484254818687817363084846713172549924169443559519736499648954366958255361201816379787969995646467101040157613316552849156264883809628468863944324631470215270666050001167666199534244190034112977173651003033864855007213650736848109839868231548619312327556645868924187377111600732366760160807812663523290073602989428185130805403240732724502482460620175104296611779256579915577758900126430843796694797602915746956038569931216666620662894530802165770525520561089265113829044062613557840952925843555337548157715717128035012098484758233091141395816148642509542091619868020816398255705796949301777699589728341289460959696761530023896195002500171492077112237838177268235246115730504357302610569878683466665615131164043515195525479763345531369358363661085016280191653035732578688582156600922544803175791627680763869911069143434639717794303671842785799505071117445419627671489924485094986710733816902400223644547963412511228036779752800663390496810733364554184186794048223470588571670277458507321104432336858727952203491019253508271163745231457531177747083360786970707370677335356558767386250904905461975311071786124164954742199408211523350392004749863552659273655642710269576514944348767263820608774093311671207476228918218476428685965126388031223058159955917746799426221160719992863847358455928919374963211997691725120667767007682423865061876968251882127729080610384348661101601450059848210676371184619633923384094771731485813489953100517623188221456536034850071802377743646033432164527992570608914993877829377304294706269884571025464209336930825203011522186895940887650901413525197461380079684651324854275445692496743702975229298959629591330136396021414163436136418132192265167973162522566083640083847921266740052308681680345948732985395953017548057422030080505508714086930496948484473447644579576591394581744798677855060168856080999649568481509105907396257905133448464158929302779929407167655724516480147258172769892879645507506649731193411065531985097465408197764699147614841763560760643683693980026553726089686138670671947278558300497103144560719368448547050162635301780796417067254260968017212324473676569970797527134957838910586267650256100386234757906855110888643185174726022402352491153097763244786361173789783184081170106684997682944834228908244773610663034454527737138699750572681841740265779332630804947739525305945765110733490966816695289464766278052271853320084817436262905519277117270430694869273742476021412931014667269938085594115868625228514854793346141428832875131946098182179194437256612825941152519036712909423789055564658355144033149683113613995383775943801591162057612324974397542216387843626445755858105181923375968113301705580288110651964711655792294256745112984693971620237800775315695364331854629051351175978113050444698338311468474979698618222608865872152250330341348219248351726138852906666166295774130366490614602334031211530278155211730428658397181752472452080119619749326973526707464554068362885221619677561436254467153332378350552078290999140763173023844385434277188226677115285345487633628298557140192693500689459356739557802731297844672722598636237029210184789714076358048644671304014499603887651185634349708528838164581137409070275975105727999151315937934983251338213208163201287050383332152679455815075461495465984106491625382511431502357286964153918042762258867646439437896321271215627875756356094852519130565689777531730231691975272674493457005191428467563474091785758875694761700710971410607329938071603910262233381878026859493334860405191175131140692080105910797999033572607784715551099907012543634506389928643185071244650916825229701039409163602658630005770269051414511051874922090860259937610981662679938395852987988199646363082803208189083731481529857136138017748013887084364672938336101940908465234492666426922072390525639627768454878201193853714685534793787428752550419232169198221377398767793369187747425426943612065209579794388751484616053327231320475817317413151397604797608293242331980543637851714553035154850273865498922582985574585292469433872569035683821534351188358155216779034702084302763728358669022502820236856530333026181752926146712607389940775576245355347708586740788095183556229160095442616671227249787361441409189093276146929884716827110262659717237625144630507515967853874459582701485653712595590026133799450560404259728804296121739298153476684531393415671825225389787963909525766331632337708774048614474775137879116497735693130459658770489737687751884132425524295232158146843745969799758615454475974696747215257076909415946256015581610156482141124671659948680817155026146825819072722608470961758560280280538914356192780801975769267315438651679709571123239190139469259438098296789179662464560727066327311395445416820357618825213238300922963067193923293812491973087969041358150328582759889148281500167694725300029519577668115527211876427770989409427339596703477636096357103345086840994863677555855604850161342494206673569068067730833443851683185819714496127179374318756880589973150650279176361497578831121658206246031016784405190487186112118702919788512067609596756400289961260378833689800236353607740721077284124309655918207784517918151883323744899079155079486356567527765940989476035044473546564449514342955805871217995115131299876510127443317523807332539919445505473546734274593773639788812488361154760920872029619256789241619601728948166453895746792132338386521396197840680335540053915065996257350313456283248677075104300638088257565765093018262938902398184090596396914223742173967829426389313919911899335479052190605564301618582003659681202173174891786716969365851462450086096792415056327136317975379247254563234777824161414797201083032236156773692786843832215962260873724092589659478602219870165920381514633936394450806639467970170347159922668863910901938117817029559975576701379580841221662935568881908229316364902065352073772028861163172405531512644212561341729182416366664825356700128660149625544767360667653357764201207484931443610289556927736680957443985163335270275874645507916976649958645444946495500472994733059727177479006060698270199438581024207501631591423138125074162469085932840581425206707465978027329163128738518019153881456046692336285199720320600848535525689444246524217228238943077062177766633659548539866556491859736538037554101642522494112094635054120684014078854765321385153561991484295621067226260025933022224195884295978104064299011859609271506743085260071390437614333985262266260258252166560762119850136329324883915768328387256559804288639477436945783549744920161919368155820733617740280992196817921812058131425821576383383233429826863764337791380820500163710383284352605722398042887254611367066155221121101295355299964029367522718516131028451536970309498866291434295331746120369453579200232320620637809093692395252188102625979299363747770021191311105584502792799122367985524593588250052732686997709491695562016389125403982329164352847646855637132404500216926303614995028007961079093299652244131233016767495533359434833656157533730438693256599887553267808277251335735008277180737378005724535327437650633983928289278994037405308527564605422188868547112871390067970302533894011157960589028507527264648996539771704400587587611957616079090770190151371966052621854764580012321639820597965043049791498732415443252756985477949610497996356892252154122061490095427045411796284075853139286655346221485013286201001935416186703488922271691857546058169972190076363410778015616202807038068613956946669653939338616704914907195069382865894333862505354545675294173100524734997520954895002042023838875448315887298756690904606614196564752810926278136386219656100378336514046940083975658452623188641026710536573670306313413859144901385340212914552985058600913879048683819081676675234609917740521419940273258207646712703377073440927937844359604281069262239956372985685611485707477047620746650521717519074728364030610724683276169227120376287132336423895404946925706319990241108516508196015173434772474280876015615606727535440540284261564876735338650102351311326654445937857837514745801487288378376123543341669039923881570566408090949084997030425400133366751593638438847563651020006221126716022617895520660216501439893545966370199601829271573236110402977059664644617446719736382002083921432677158711048946676003727978044325939213978055982794786236345346320745472855126761434187933485236227560585883430356451362314184542338731686533138900726560546634173359008878849137008396283083754095744977739824919821178796152520311213107777185049045120863262393098120294832194125937161480230660692947495894034468682442481071962834744227945734222083847329199393176920065115222548239853287468473350435296830038066409582561465778803582888800399032548041572043674933692489029910212606175073927281380194831440086549800051671493819709752981148907209188656114098213617171214464421512262092235779370143920756760081651157651041644447457807414031815169417165844816884769831255760810778924393734309433011980586817995965705226083149784133053306442395880123415058768601268358803539648438722575728283660131959791906479415986181392840175222950088544196271196115582445939794545277904149209010245199455852655124266156668824189731602439636567687144567452734439996468716626056006051656996376500462738835447325416136748554014038690237442410929476885483070793567154958505041242664677846570729946033411930367397971382649247603359707748797321625658619479422478376183256901690019108210100507489848372246078959870492900096370057965719516326439343152623277317278041373674029923554321752134638404278112742487963403792524828510730651406091318976649469609967194132009521406633396488941384809234536709723289836906704509648643755409220910750434213761509454416517366240962204907446732472366729716077132116259598831726712145725541040136092958852042150612698821901068224063178672877358026075116059338841150979113429228372103138387210649898254268212600925949887074329671954816525504047194444778573999979713324334004077837680656635028118922419868529028277442649131342306846115207047797314449591218528251662468847683179100956467546545138984309655937085967646184935878642372062656181072004171324110759992929651512134659763836031110668047394649460457283904982662361430049458989887666462731354715422322958949390749133152624282015415590817685045329016279680083234631438208293236980696483612160992647840662786029997906152208212724145982310679855628438526549462269361127936216545717028800121705633624222885364980705316701994944405913611701827266353115113756793812795722623054300465829799003939613299181408599142637157550057955659630423906352041487106225350679725463547239355642760011010175096780796458632099505058797557040767037705552717150118126783308002038721824256821435547458698549511396323259035045310797264561029033338723858647108661044449315081933528553857633692792042628164781558844654288897835853255740494287035740264459332832046176963702119676693814790008140407590827680053264717122222430780503880707615270287825344336091506897523980476860805532262921786640000038168783538804987703712182047812584455609330003618081449683365107119598509966365253401558740202219966831532069652936861447952624826652852029465852101693665209757959930296346690712104174919747491583601753976494517603688353878795267494351480726057989229061905961506817513373422976131164855751049445314082009513057753337007982288230952053240924927823245612349166402891008452836670210187951650332078057408242429685297556369450045347729651429359615442603179036937788414060268965679673061108489282881007175310798822356723828274561267462310428151680163275502368749015539029992117500153880560773017544050766179204875822963999576873975321284564771726403272548987838968731478414573089206419613095045366238897486486426543540117081890407404770144965412828199684958866858008637755833606281777853572389275348150948479307723520924519080670434529361285633650623580845059705885986000302288359168041372255462012666656838509277866871762529387827909068277539309542879135958295726438608508728530979396380670311151800239208478453438432835997647933877205964829210380437222904439794577431210426339142920152388711708101603270112619804152311466239959220101071769488219915036166645297100824510804562746910987339665093184819710629751852228189425037221269354873153025528117752456002301908422860846088313715011293828658763699589736586630452017020010595909545863601389038236129227404350842890577715366940240454954566082388894033006835891518284483497467055048286196667857335448330071517288640882952059341806819451586366244301653546882353680123918352918501474574390352650315029382364784648238123888078631061956578095741747750511027651084967815965192579286704612914570086175522751943133544530858081653328006120187067862764343421704834842228555453921735033227664120539922256385076407630792995779511012630855151310559474290766606445783038191697142341896584693970544573615183412218450200575178555862703330798229151998247769066600860091151166286824723903698710425576410704504049157446335400731990786357512902527879488341753556485953611276908269170818449848919332002081115525276942602724507218600992049663926081528500857126212301112176607477117913459294488108524940872732772247953179534953155096102868806525332686592797409498144312394128854647350993520217685819741559880160267193603698767989686682011221971754651313406319231674922000902037684928031825753534643504819844788384126377634951795073270660661627113869462775072784482102465659895229475425901216881991404631747101637827183410301336679159289293034548951407806771437103643175176488225279911977274609053996449430711365412687623725785330955221224048047878169921389404697785886272566273220739550177926201579880575818628941592288484052033673351125328121408449705933998930915043659215727608790955045456377529176043158080325851687701416508260721258811975982395388391793108385297030513748991533823407136355562866319217428817184233527643685073113697869103542193964113565904451580846365020555704920194086673761625078167081560946589299096317241336021307724526426439094011648253098037045604429381829174091651873963330719957379769878046463808787761833462777756627234136443734649302586650040154835010927254282709186000487711018693771859439556222050079008273475174282421784598254320245310397506870791927416797116935361149928316635303646242893388658724595810785467530446384304052907143192799795986917103365143329491764493392878844955049670082430744779805266990157313080684131596546125093316274381252427746888177540073711875672163709175286879582474416095710294542906756595768418899231198117842736000498836043420660162157729772986258285756168739843241834333510774282239796436345032679372046710616531204630451245541650470242634796936139539682453968619453364003937314927903544580282284778659233172296656931425445111881755138989414545291221671749801748276642336350575507936732822034199384692196404928072490779532930157448999449767055116358556075328644171937981661312134276741871480772052513895795240401248531600260242368812452883740683697693565782866926826367804466720263108588098799995689198261008636480371769789383891598298581460715353915491299145778646011772698237799235983118137091789728989631736854121251260215183508860140370492866529518000519765567951743029096763401472515753537142112376414876615754048185505122145658285725628587683591681185033687617721996940012077307092000625056307058419465345445600797523680991863254153474806344481133802058603108320240885905281955982751570065848393864463227793467962747763978213731433557078410437697821652931678885078468022922529676122505466756841321989647216527976225825402839922274789269079819155012559817276127780573942770653548075134961866960224412021415166482679417883357307478684429451246485683915615093539176651495431044706107346177676609030964763907452210908963756289581124270186579593092528191572425676805941937939781700334101027343791743783741105121374378432926140347720859210838362063427300854136454072025154548172405790858428897937745629157738332231199179317123860402426994573693384759347343828421877964694518909074391850258502014471841378087040794987313315124471508988293781062878705599898939271698578222654408362789679178387941454208420099111313676861333357382905571190583380827077976958382670767580151484632536572280077965475620065661565891308951084483996615222797141805187328784900983636125054333687759748938445558056335616438996914798644656565034138686981283840395145694742858358080648526360830100121445700397029953998293857173296411358353350762927988719640494424605664883380611346976412139969565573924789048799600879454530420203439315206684316337841517843752557313360977414434399083480345966284299960016249913964599710502997088245942210545949354413829826080837572299277986378471395129852174370120424971572192984898140078974302082068666231806867832196224235790643033065853725826415273450561376008384989630159332946705378327943984526557418653472115279053537434319407475597725468566637719763268055423167995118718742661398882637806687977864217329414939090219057562380865642098155507493059131018737914606469938933750106450838621873612103496384262803445864413930123208444455498608618943404259130653438898667063931701496611962463711589172235727444614016210839679622292664160758483417487939767329599259605628954247723163525703297622880089736999616358076431528794796743267572318320504079111201484197451165020093560747192063305433860348213832289551406232440168659246098470125856078087843220770324741505594781847345762787883380914771032700890036023668197591995279952891711978500088862082194147697901808784479290304386597597046644533779548194094736502392002219571539912275222726597179811559118370270675491536588753218355352764548147749711620715589918188901932615790238188818415965571728563109367989808953117977954585012464170904111804001661301975231471782641291831468884551487844735399226732374665956416554579634480886587279705774836563791628874005810864374714388036555231869156690619163151774564341044718690173290073628489177078821175040220618312172025263107818909644021512064827008421896834921693145378003559378299513068783168685779818671335563277826210394139010940040039676269013155746934098080298801172422582769609539750866401417869667076966930408847986016786861528962902868128164843548718085282137649676660005330489600252287832396584318048133159594230219629688016121625887861785164334589831639107430157727952594238858201726437144706566946632781652388399702508741084779451658932399960798616123624406482126663668901141455737301934753809476412048342578903911138180953228377488648568896948433942573437023611988794479029650140196713878353744901244435845190203831601133115512549783451884309746125622733380229419562145066089868939875343476504318396726095362190723833112357071494909883126328417899155982237310193086123943164520831442201127399592324140861876243554577537890048313235585939383528721535676001947468225028573053891021048498546292060578465079652278371900205379064848453033277572950183937680879619761578606758332731131579768751014147884811954759852450966847162999545902212981991046224397437421359620446080807908427692796272086594169128743458134057629753317198983179304511994501965129511249899636228162601682366198398713686144130629076671181047771763435102407289261268079574889697224855954081422981053813278094683462476906955913130037912758984060026963866743090710456228245721823857710611952677981003978209169802201496728667734545245841063686135138469956207353129239531314915011850521795703657352712150875378103504340922441832585458484432869234567132970435925802533244265488354763498980052982869203027205451309267560410332812074444201931723560863727640131907924276807454936622366555358420028166173246985513314079138023445205766446143805560389782063504633947565496649317010892594571328866136433928236178019708744528587374995990677221811696049846435580426977008381867927028656171362272362025940897892841502006240368585244408011690330991050785750658924848900405448045900506699424061282214054479954878906053759477455018199387251140987655648601074722139776169751036199375574953998826000868198897445970015218045611498245092672688487825048200673428837291570335405750429578903201434915175640063755502980395341019109467761161429879867636597612685279006740717795525568308576372824463582894477570316686768490652264696966651969241991874438279657722250636084594802720471275460903654984949299065900073403605637082643653042219235098718087703107263292085152655669787482252286201574302743070312731648667135322373583159689022430513918634653155770109603804447430858738172510394403257222689421894976639705200202156709010359507145945405965091040389627488635743158272953443600447306012541117196783216282063715179147009412448331909293775155181529557731615659492968752934186453317786925713089143037190975036064033388315707572272109930279198580691571285296459394579779804573749774614806603816171151183656106245689209892033568553898436457006847181571811654344344261285136477442438450984566496513461673592794753839058474411692638544706101379976828245216571853396046276256319743585052628180242431329827099782180809312082296559127334321102176258482620858288757230195861178768926349249428590189223149141129173021288545969217118949947076866628987354982546885981629677197299681557946703785816376775207360447892506333961398242556041294761702748876787612787198649238295859963684237390809293107693416517755882430850584381786201189427701694687320269679227877472762428484173681501518438900595854130863818345596684462015276488679442949748365690719575595981784483625131815563827387051781359609831828235413696423722172854494663827159425481834756263240174804908217803529179409037238170024961816097115082884687581707652277179919286636807318157474215876461105789147967790015054847673072122046366084135195116575172071977773949048486166441896450740888793163745359879439953756701650476286912317290161618414718335849320818362847311298593202435835947601916179322956669872625487041136867983832004723356238582191744130607684063421380165393385739097754939862195615099168822885607828974079770195280631331866165644170143501519615768526499550873278059869057460305935660223969254417516224023665023883987019466865016321277010478210084159750859497885200059518231415346740805359717381598439343900160307278228571898526662549859388726389385347637725469872191359861952803432994183168143228630790244107178741282042109082435252811293474538415661234046367975178514243949440259976703558109436085918057667953971919398880958643557520193900665035615098670345572620361349594876168037158672864708296939555888276197537694204762808566186865085980381133803064313738224019101833003166843374626539543092808253696072389380231310920199331383479529634131276593753131440556610873392520945985685482017950791874490672700016671376710730708725825520159190983309917904925481154174967640620215652932861052775012516485540996971456544959191163132982583077091335495908453247347943443464530945588899888365165782792519217293234109473978709196251510393631764264132228810052959758726944165313453764063927521420856199976022212278096442089065027563694302539958813456648266797687115309218760762069101718266902214820687246774177864888983148169199702109794525444838001149195029333895261496839963292311369669025058742143923904268736669632553156788477752038281767073335508732624642142814159226891403514617908113777911370695495075314866883602808496795422623207491717001562451936078545836473306325022994477472681253251912446393985169183333297615785698675034072244776993294678818256961790568970673940382218785547675375266101620331871168950345186018388826778699315303053291570767365555106250530283954152705395940964209811229850113082989703695542242259348578045023195113569469625394204753272461458524998480285458876303667448768772981654374950092569498494570391923145569027554936984143215371801355058774776467161026627582414226858068367814028051561123693017549664715796483330665005982872484181366096891486734664200199545882547874424888203697936013382619868206276727062242661380328129030997797244726359450815958071067294656248068550581109941570116998341719691259949627534068502800148266469315114858434186004135369256027570341605258703360965607441706742933347446275949379323662701645492988029467050803221754123472663856444434265808920912677771244575223515216380270400179452881871851878476757053063767791300932857571228407000512209955068000887158839499067747436471550622147696904312179637658536896059541012486316677895060384941037085216718279277821892726729883126908693110584099529516617157624729663315879227117463054138097926490824955950826075098835296359610553721016200816241530689953903996405949982655358892144457646708547269514901141481960634640334036453409259798901070073494466390279834062162483679796116129915479861408231051702634444420624187935369347513989567854612094102089910748414395233299997819317937793467844435698384685991962768512966725052213584873239947189732503757162579459595563590221495361544327960555556842759149732945351433874040794748992621545858755852623555423057920057525949194972854932217316967904476137743050519515103169164506611362762304545358975495892962912018173006264093703327041493397437970129542863198639854511114169122184506431895172945171131177733404287953647929700569443674912333510546789779991860260340108907556183298621139174285069433381251068986569852699231640049713710169154933031550048325603466631656699897872744911672078748513165429292881329801584096646945502224825469881641456502531174966613256309949110746947535714455223510806338729245000087551672786383786743754209645888967005334342928813105266679514412240924958132694228413842769190580452144639307046362627110979782047579603811707974728539494938253767619835976882993200473196689666595947644870959749020089127791118415308556274160789250159390871842827289568517899195149608330522735245949835058161144438316054260345829485945514337067938526075275922432174895270759825876611715790777193228679985826514825896876467089148163358438018505908871827336038085685972160150706462383249645073363550207916989301629459192578151402287580739719874232055888348060886900230314040247955423611882888646360528392604886574492931217704090011373875835094802494243752716979463538286552457633037120980785154140478541572207810394539310809251784221216265525474114226052043179901038523079075445749864102474468108556858401051361149130372468402988680496497226598385887811122356896777923152101113185489979648218843314845276711228932900564010749885147686415755865181373089584369805608562645448996523940882581104601648261775884116017506295824922659058652739522701275025572048501522957307776571360589481816938717055076222746336986315084926968369913808046215131777052112097972158279754947198427543044511404121676827739203611983028109684873057531690397955735552332536948808444497368392904428922031752498937825914546964657033274199170506103901789144960373374190917206917545388117468342187700236251386558085075564296269304032664919616438155180573729641561124071909560885973145158005907222808675715374011939275358574536687669254425259303384754254779446327170871995644465387120242013745939682938337392870618615822373170179052529436170337845380392605808770266894682092924313116485265867424708463853825980247179795205426672260227547847692288677521982719198153771564078927314534460938028703024528890355375477535745341351357516311141573234185888335370861825772810288146351666934138745215877704795950157490062079950448322271066550683542548050913719135853112140393614278879366474631250104593829591000101460444728505698650214630369315651176103290126305571657768880564004473546202264520493243657296549244746975443246267052561789923166629144851310915079053183084528847317940253362852883211665786030439036357514136226019489514312677932616753494436984410064338650266881856965566065067918134998531674010755757222142105336110088254458715320106106381717729972462587228927220255011348161009243693108503184336357777487410074206505522021764110228705317213366141991159953369770261044654928188198600434000510116320789548020363397177165491951799888255557093850327368197494285994817059125330216987466275077706925138153200654900017753277388955031211551806516810983577510905606220541884420201139848591515629712508546396874114743905700762911210907607223905640730643716592702569437106687651357383049272944381844148901610280354924121231650541387221568202017132736439052679843087667174208698245904673200705330261144836107373325707660315494713654852516177445116826658237480613900033710813626981637749258508572571092934360248101549058178302504200132320161682860237179644300030296889707327843618574243730486950797200237541871296246406707216491062315311729492254793443123891425959132025703767883158947656400833907390218866463169281102052720896848593978181157262795162288644419953123416905725697530840899904002409670297262480865391626302866769494993266791304413319808708262676825837175895141679139273731877233965688550399495135667876505418187543609955624862545160750261947279227469375852273231339509082947897543370300754547425868454665995373423138584090869760805563890300162077670806309324199863005956481342170561361064836625256430600987040122028993361483006399858446070635913942058680543808124275314545273378053022032325589637762383585413522589760410795741701344390238421850541820074249795345198198320110393016493310393020953705440551006075423013535552199880932337242578010318307389858590108774777425985326876293338531960843897177945886621735254115142553459515491859760808682706802613677859377443795034049505400833586803420384748280993906064670504885374309800222638656118576947456133430820167399361088734435716105044337784264359200016699584451539674025404924819232006618760707540407115617238231970302839104873714637245474110312580745390318668120679540109658675386174789165942834158851706925564761756914858517110902267886056660569277294285529616485581450764379152202133133425912385836629819605335982938623153365796845948448757000789817625690808157541500660416250804458587733480464304612896153506521687935861027426829579320804657851970985875174733366212774591484200351477711692924628360672720743593971288629308819379846668895224872673149628417268316465804894171785977359918482306717605079889073090323169155408574289161159957606913242798209110166613746385429072840448497276459137543339012225779519388732018787586990399184813516332401734661165181554231465396970226004011911494591210703707243539618398672134670094348814307787767778464815000273637492661621874197796192256238411662942414743711559640700338420656269787056181341208343572542475112909988431176700899981634878323384857626040197511950301194129695784872606913706629714200579585572490176821442744081660190324700231026221050415451447351328603860805805698968800486617815697172617898678031637125680000584704014774164453786054738655563470133006925616056130611063084533974203218668674242866176836516839775535229492347340193653406232431946363272040919489882670675040658208108914576341267223339737602398897147535691691595923692163002333062388429657819717245692850344164157656286063683456564655298927147927385277222963968473076273052821100720145937900584760980384768954576920410579375299926442117672709532653736660949800596319589887887383611559329235044325651097116225693691861273262645477500837288612963791220431714967995910732529997073464495307036959547372155510781805362708852540504008336243155727952814219722892063951919215698247310719191977228249755713264025362184326946900503704824062837405721670638376006180272388728604936822411321824111241343330596154048078547046818326610665436423089002863018002288756517551502230645960824129262532620881033656251168563862791388762927414600350139445538282269722889753047415823771127146895728746067582050259206793525311150348304223654223116050590154061600633405733498674147367151061411630142954584946172777492684328694502885598151732460817303287265949706388528445014144362433694341201906132274576024841677557119022533675036893004707435152617830269437835295752293231836768930285700397388594140883616260502931787420299436582761080389264558068009496381163198759413156285156234222729102622339747415452047976491220833704410644430628990040545069853431900441568457361594567022113986455833847157501940241499407639008200322107483355135559814408406180631861542411223106797076572549648025017661735155583454780680862939337310813295315822180757351301905476970907365721143015579693948015452525871953472896683941162280212816100195105482762047600731956137157770134735331363374179896710476158520449659449267543176552349972100465737511525898973141404958997322852871817170113317023475820902569549893072270634831248476356959069411756156462061381113623192929683649814598225767034929515273772421971561425679293390400881647493631608351135276366930700867026652580219855396399777072590482817042817099200102796355970092761905239384650775688336126549159871157432782132666302312009881527808544845644316917567233504828302374204186939401151214462711165075722570581156031439739723913736567539004839014483653220897711501998760929489734855191970195494623163296312410714083833478854300070818270204143510977258890963831821019088558414523530914208867955777569051485073079363799147917688254384933682591781491663950822623397066400269913889682141444571007398030756701631111196693541121926025360481312359853437997891822949028786883358468809007217589065435086420671170393047160614749246597235311140077185645338953968314015851879028410095049134382161101677068652938063527952607613500879067881158512169575438024442915349009415876790264624020192768198512081168644901820240600265862004085921394670680646715020455599717433479138864392078460225437739441561252511105921622733818746593041743365078755980398798519423114530942224998949470834926506769225525539581177613466799847838676193521425552420668856409945642560597799089858328431483341736495602698021546868706035045603040261939238412419764905451499355125468696041968282406932530364530783833388363120751181628249574787392802413410834499383583743696077301056819361179086269185513006844397932103658369302094063375690098237579758821786328966385820368339989825057704601321623898820958594629608584918826657702283562821833093212453737541357342869090616036809008244417117567465764852517807035991578188448344095127447997435201399871056553394533843483743999613349412450505951322874330460855546477538499168187899092923205874555392332825720044311085221396834262936754872583754054024827463942123793802258231554956766128296999897039698704913028729488600125824235002373463093587389103572188162652153718971150937064730164459701548047057501752766016417334328526183509680318452158038649016356629752986047080410293837755494891025701125719267432507969977167828236749142546041203450015875979506598402576886808740999861343595774945157327330623223144343384378877658630571076708602822641669323101841858753687469333244453908643118941083786303835865067185051378133671290518159410737615977513088414182415100238056331264510003581382275207163013020783088908615016208790374146836472316891674032727262528056364119410308767802496807178068280599752384656214300403695900911314101315561511711622313742446573751773473250790926453848906479873427704998484087788339447258974844704042911261452137253062667392725096941818090989302150492317996224711068292209783002250930281123799463615904701586337751994059190557298597047086078533525496572227172370535597183973567260608037099703137508411315308547591859493389570537881467193334833673768839340096347114421602663148121854164749648842796481586317590240370072721972845301458484060661819491064694945708402855970400285010561176178652545365600828019528418491218613177730046122275916487051356992012871067070765320222498577471651436633916514575942933367958117421674249438978442198802444874590845720975917214615439130041085144753587730400428936484472758761480079052724909259898434196328140163352856538966947361897053608391297924438509625254979942400365915609544309315240398515593854975115288922665141208827402388154170343105294133564901343344989352284327831635907021291635865715967415681166178392361680509744253479657426106307774094984813929138305444237296649410769025430498984460462616509358780312528678701923098434829470474847494082950149794630803543687278009043037742555653051765265870778743523242319940455929253683674461621735440337408102588298882925846286295389185003164509578237894767256144862380855794273916142344076514464213869772208427553624232591161577061740617059496384159768255054827917499563920172340857590450622642132323693395438022831598850385234465313048040070359808083466551816105075177796166896777653138185562127519768338065527850339005318225212179318113072271525037791254914505275741782728553925124746461936149592373487685940510404292752045569459265101059802922418228197238364800343450938829688062734774661084317387693779805294803762760852900201640242789509094983390714208704263138376836793324431437341375907787043476652892233260626270219195622413609481301789527724987501032507037805108675508780323054049387270947197154450853081609252091918459732033817650259269327010926139078339454963927460935120936158000537312572642500174313527194913463287392468031986616851388628189873285883764552729363103047145162859450094862234734137065988500707872359693717265461345650418069290496940157815688938836152306663268911581503780182136928929943982592486717486793404301418178848596457537947688526300481261927231834602706802556048227845074739414663866800134018265768706768404247548874295406160204544634138470489712976605316027254859420009241552630155441703155038625432444916164630520150602244142092218084212973419665998982333554975232477523413371981160782842661155613144985109315190760432780515594385563106075594628914380180093659129843506081172541864538776033178113171307983452747981181503950380319190058423558152259411978598261875959319332774512707418942560221991102315311890233403014433113148850175075487519541948565316996651846514150680219971863592668076321611021938752336755685787752569834253752096597413205597316682966299691220061257128097324277301848076811622512820025276049775385262969227333235393951957641650846930170844557128086151091956268336072632717942607690540080179845361945582827897645112135642068095537144001053219500365365490140376525530728460167730508850832816327339445126061454773538759144366631150847926371017904051239774837854203552783933893810691061121929378527567734135697067065280286348067454726736739165452659702624934147275986507910911498166736869355451729382371731600048988933530567407093091699949598600033661304628892739958540433892188688124213942890468031723015246602096554655312434394840675027059306629017216341992621447706686735981613985862765413255697223940712978932905766190353373750831726956573519522723046847209995775308929671479337896104740114380362491616876931640290180465498153868977375892908347022627449338958470784297558884257400250794617755534533522017458123763660481304804749628262203272677977989992012759760630125669492687710599239654512051057727486760734939400433852040955209706481518892848201250239840498481493438321495293274570652602573205550059005271406621451566843639266388164498755829599163662713240658853755105731235471088295933287583729128797695448605156047315515485778816681112281099806942038357275768491238699386719501970643959095866898568811352832308435876087365187782900598110494226884868416682113084841128698441072723041854631188728475775037397503707190802204290711947676467384057462128423931825219011689675726997291312909085975829327225093383024247331801831766488911710956163301118100277545987283311416100705445777195450923572909487010109880353314006708052370211953968806869544770847294813943895513375212654305928910161719727533009463656359112686503320745030765350648960948882622227009117313709532499701170775425050959311154943039117726363160443870980089952999519897058901733870572759049053774209737544560084821034814536507071168734068178211620384835018639748096987008308648045515109015994575559280651598755913619474512517040933693217975572093184361087429928930896815626896951753612331509763027988470264445173647300176105543470542817492083061632701969274448318195541159018890999832356118645757971016881092614304246256208950361968608584950488228728706223199910024020972553714233908942688881031134006396782212931203734704916608461178026649652061077761578295972368590141368573278954767754218409949664332101990587353323880151312957503134451626487097759993513020688164553456825692061972176519959527708517484757987063489886345843425299725998320229417485135861328201064060704114680589578219048555004242946583323867901636672801361176992749529392896077178690467676574864594108377097071498094173343404532066648708750935864608839482977400705231420460647939011892526168900335093285613834799900569605296017427442143706279443743452251546711188076938343295418482104313908591262477999570317739744362617398033069432673619752323522433897422364070476864513061406749424552091926750703461874789064720976948698586452071192112924170978861061820090706980710581648711743684876262815422458420023659117173913383999567649828278581215357138393976999640204907475520437728842227728122591421406389450891987053769399288567648025693184009100705239130221653277613034742944122818631314270669259198394346447234044351226530165395252854309731104437421087036173745658095725070278652446828310057406605314184390446731419506176293247157860914714836877482907461024886966708752295590643546864216800641541624455873962290019928247845769398768256068580312546014240113146367750018915138045851640929854243318435274858239787221694924812626120897002326539857074358439195926925540120258432569527575996793341074152534742615392350909632056379456934987534731860244587726022496160777524181123594806190164423552545164767963888995838984548298322073749451908236991705541428229859456154912406781548990758946782409688426131470518727297119379037393538819874043438363433122963440136372041989278100407888844482203873491865542398595402968379853562799095608822112000237346495433522024023932776626651441570423153404923997740043346019663269303690738174696605222830705689534116155225647846119210375781993871150752329266253264861630268673732743566538041192184014263704807848344092879557190229041839960225306058590624804357977246172598960925090013191307073467964972705402524887871009777072212063595771669548630413851592219549590175507550921499109974713437423055711137513658177273107978120288909277642508321347037475990059466281698792946231197991711919223929863424241346282997236611127820313675333241565426952507494276547337756438030010818072936505249003982385074025211466191120321632298581237211483781380040377405419130438265363487976632697627616570237295333751257587968123231107664914344436672740771120307969528104821302574589563018194033641323106946756873830079334893073076977929564576683986291980786827267246454246864236710080443941385877437244648455883194236404207088376429684589986018422924434313186759265603732374360447704512994692253343725182903437021833081322875658204241598542395656210550724288112429879183845163965504413318122696653640430954574989615861956267255433499374980983970458433129657681172638331123399297242482277698491029414279552702975735390694462754323438667407496231151302798209317803188071812442859593650401440174863057042975199283459905873538151192419565771800865158112107413362565888209777388187484758093563152098974201016303400963922359960043453583165002410508546232475663235704191778686221285967558338282316467833414020413895823226430613171790107033319322089169625723196735798324331717345280397548310621624097215957213577010709019019440176329324685625397527128911264181622823702711808756810124437705703293720079474566401260849663715650715176334362514048344880879190661559101878576110999244659789243578907552559560707463566881490971547955071897583624836772428011740673500207615323875295255517543635046782873762288075009303971750802041988071301185287904217745263230082914542677506672427122496029881196032979920408695886624132728689572545248076635431281476142178593938527493621894954168761516855756972518120206360735271858427778698112317265747919815616198301797147304839564899547005313370221132128437130046597199431241105552861934698748450096890600932387360812816667288794458932905561427663694744057310359102794495330219327423973961400492987468920950080352479797342373640759610440580409435780468775535058167023626982953691970348677723266860009423831530187079997359107590249847504859129758988290494682985822678598637490350194960231841233272081749727372880550843286269529510454413110032993578637579287986949141528712560347884528919243821481196293755830660086971136176433256698559799053732846559791456117523068485568283023830469975869528223222410659373307292966687430715900541760602100504328452910089763913971512081108395641354957258535788040514129962684572761664645210962405201840974243879224793706563477791514360108006710434987939210256034017802313377336501946806358732883713621525197116783438924854095466515824594696400903826686354339909751891779065140699928610910317991847291169441331858914582750106276317135076674056360114572974255793781825450168797813525045700409714194921636795806644578500762248137199633026542162981674846896196079211945475968970215148204515535136504804549209792834794852190287064948778739102017896320272006174086690831499644743831706182505092043691423876925305110349348527760489348773183012329729634254338102811353294196889656036438731335760858430383220257362275006852061585808297146738608644924979680796869054418111384814730491185074735908410556657297024730793107919066208516490404485403986121667715956282266785444052391538868921352132479003233942509526040014019749575980703231561261309118360691531714315377537103458270760464954979356141376785865387971465298260246526847699511929025604511569346131467459633582851716452430661254477562308087570576129696192836645223315459545022592220190790669695539689275990452404467882008668848147414209112396651328238842713016572701201983160215492256967872142669153769454749325844258209480240854989660250773050374503769089082652360485723687378661329764562331198575057869806154071137357483962081380942965626121070973706777773493814871887944477116752405656279592436703102059224899893671216677655938529254417690495148125104941282016327649762652225940132164963890850848689387847133590929885972214080711305693200631530600195465706884665969525585310720962553966654087552006265397404500738768208130374535672249016963341350642225439782821601995320964789984910684260510598934981985890097937022521637829364742308548039512939130407844345900043964686507923253966727783901333605272913777363501934817148789333535924050199603284498777173676478193993765262480297168213973409467817523088683998388347031307799081348029745803225995450894523948323960256985030492190274324914316515165543537169239840134958041220549400671090790757789237652650779196400051781056074669042302174613671646529019159376153215674978611231750612129718747667614062947183596394759801799614537450038044087547298022823569513091139693221058836067265078008148412085529440620967684288332798126437224856714070670720255638655837546389768875645086665316744704831706666967870775222923019579913574200714401045975310808978559587084807519829567509080300293023926929012368806700734887059784275536224285295054762639306384103746022384724567845680461669631313439171011651056931760238554231335604821238325034072019763712584283269943031691439760222387003811575826165925634842859298712141821605119766367374459616168591041600862645722695585400531980663843254517959909519523898788953141303497641423394101405014200833512738186613533848857231495933941271984102456849839585301197462383358915668969290368174066349182630461779040558525535549581755678112521890618080286637597979311729163895581946674213019156967845251879089941529113903286861018096451243216524271233889977479576322507298830349518867338435145322349305245491337263425708336263603069015678535994126323569714244996820049384629429805957311449723586840836630969834613889150801604501604615632400173043745254077008841023961461918158768326868921375944150327601730555765096862218028631862342539278263112215663425274321947037109726907039332581223994216151898990676715387329007983344513635712324811273322778814161767723003562612311182832874775477456816666833824474942505357811285747282326621006176648411106496446412351040422591564873269890153207047287665002700924384764137589277956000601156526014674598863416948404187818845504218286351019502254754830364883400296080288339772333366055991509819392748642439423672799548568474556962740743252459704896968551623317409575054754940977572039188322926362508815529937784021210685267927161241371800375595274248984874582045273640794383127098959190866565264540293370509725010402251044477460122917775357307260637632814659712453036275711386178153294209512487102601480051773438509553814025646237964157860210148980205462939230061356449483763346644925178898616044496477455599866640525034707341976180678872442606888338915160852046375084096057111556532013844666138406916825796990581584482878860563045200264161415223728102902890106129877458086914525126941962030072334026598033513931835307200057689017745162695473112845304045782094310058724695182626429947312320376802307066753405593457261061496573922939754512645272526792080055081892897575730245982634492962428964166047794813323989178113527755558097828136818225555149379525391663349083340864525636452608380200041340625749060675203510415825873629010914158853861049251981407197458159607908767943488978263527748222984451379719386773920701405367434002378472028537762852461158412616645240453604500712535162702227903870050430241711273013239230289237830337980355270313488093355942217951772357466028165342276903126522975588514526478520640177926609876792535285331562782610785419433467022846009090444685080518611046304724664236924808396950925838577925568814006767759184487907962288100801161808224297894339471650582284801655552506900783779747709787578043871120219850147069980197887358252763161539721259977123525521027012660826978749305515211964606580436703941808333413992170885217278988663439098326560433001114312817647983400566626670922735542638528629577006793049655124086282247920701470876298567868176357516619499764897601931185381151915249846315496260216691960193425864959257814727084332530148251176139031250799402187632892056039731773396507800762462445917024775043110482225484959042730614502025189933387392431575823310942320027846881681726280891505186165142581952020236684026561530051694190212269000987883949058380117368664285651638463264078987539854153586305219953100523081222843421749905288644281906890300802648707130799581724274768195557803494808902307872665604634211778339003841566851060783019949758466079971607596917304794449565610467242917703748185786777367031212058862111148866796792643768142153738818847165894334827731520419454025854919021243714657774997880518464245876464572488520528685778909277601696366945872065430861592772903859952243213970823981985596341356183963294467247718548083138070021539675405862000115156515294739567804514014494500490086235454505537104092759135062474363595451672659209369400399668291048989265185061409547111749712020957281385695117735491568510087920053451804531661378552276645970672973693456284462385022922317213800953303143585955240491001653512902514142176096557842876938446346107471156669819964799776143477798215117005454068321908383564190615888395572821691666996217574155634496344909127166870035634965152679583799562048537777580540188238912362824301356935001102156425024477809969400901254401138251709229483608270480507880464633651151323977113730435057597337091110467126692216718837608759469835973034354639101696824007270849612865465708614507547517336225083499643524322783051026228030553556772282739759509771441756570831950278658473481677893383733426610831441854582055988843050836056279174179101465406213615055840771373665631888457679216541134561288664648594328823684696029467059907905573284005245037312590680487361923805601961563563901164185277257438425881000571546243887853597478669693606386289775754854733715023980811250481522929981923143727192110475598099265223203030623695251436996117014670989357803518611345168642136793007840615938189477519932378188696908291696206559356207371252135868622484419005782508621884027539324250549877205932435455599480611177526409563671636388624358992006143397224414559339355527568052986460085783632687638679068940016537448208086190563325061485963200988365542552040298918413343142726873642766424079614040335821190531303545179431327346972718725891860236631108160868976347259599733764711466580439679005375570884327183985101187817262359084045871257769377766268866459870218627123843919957955249106835316475186863498968566727478414649442349948981737798712490168767352832482498001296736804502351309544640956765059578689945046895875112986634226589871085755454858657910064318073336010312836926643006385161237475882716337194539953698281268276843719893597711705593504100394844161735625593808478729385515304709665247896010549980058472867250742845639041041427674056083843548887976110858399906754992088848844548281222735082369275265965579869387423392389690534746777376598817805220887578322686902080859684100761902526390942000921721778069540820416418710339168522886944165628060365315173220325868969999887407033112084492100364833417413609252888006645253927038990697078293280047401772919988163474687066338914779766574010689542254570762799450743972442624091863309253516174365127833892197303233631654689777821700166317298902217206566653911542004092248172343239997141877116744119944727674759576211632563346723976234559929623007270227541276375073699770244063363565715659554283896773561207430013012088155179508371810275756134514429764206823223362046206629350052945354672094612266030345055565787970425663560647553568850205282059549079949247046116472738756229836544635276651195735677779426924549100153392765799972528034484949361940688224733844049619399831790479375051553746472938935965372259131233335932439941456384113547495675759981418888467013536162216825542147022758303437762495967600608933436103329631270984790628796267666709604254494776225913325206483718877816633505736228879616087496596960196684130467538623743347698290938740493768211944761606598261849746827673371907275573087043349558654468433794268971574864888427487399309836427983742702384313392557991274372320445554678660899029955510137013122988553363218989423476641882621829115367920089086292070829245593434281021106131062699404270533032653128271782508452826841044997353488251701060802697355461350974771599431138448269620647657912107398265598924135804575416332563223593104905456582088373341715679361044417651566808178097797082911625241953980122159691986855025501805857039869361401657900602632440326937067742851362330060799645056956338840052057782806286782436441221702323941511978932721697433223614778092139104166767563868331238007135051598301155235953409582945036197293112228378176703989701495990310338064165878476183215168466367362911480449996649850889314205567859296064118641689926379188706458191954771370287880693755645366348228733628394476125943396430650716061590559463758978737842856608306263636541216238703421006262942473379102964290009220038006075927953852332375806084150820344516616613146756923615753094015939182423564165192515775426290185515473650990209339731913901497399180818047295619342213163293925637259694465451216450441959388070666373361590259315539985795865748907667064561750149648461920291579403474747823543089442509587014075128969090386605733544724022757825764793177994193207781855049995136983351829331931042138835122492313393806456394573226611935090508230197117741632641716897497698028582812748967793623907034325958119696344403400468824469268764934751784769028950238040792714136645783956766321339845175715660703582055240461774836569892293235532828901065425092070875933788600144272827789414466272024087387318843666787585115776917690734154545875168365109777481473967097801544503283712834197608875139706068951627825207138645162891725851936076731660173442716921216734049529376526150913770869772026643232347293673606854069128075800007626499542625730527187564769988162637889315565596710101633746032759524699529611948920331150850299461670571865320811592319600697852293769585327256762323706464420947300765948726451526651029102796050308049615501075619255756720159851891754019760233324083883403652366655445846135086371306146665627059483626604709283875479561291708906868353677845576521475064777355124361763253728517002593207693639054891069284305235676584417552778449798744168517084233850691504580362054503939029879665716099968874407609365592510718224489458106274488857924363246515646758499559556805714121355438039414372911631246142166252356433647736823841410830748795869548855026539226108607604429261508736624439999314507130575299841289258809906650891792975643360767935561414269205346922588572116412130158216460372628370691921280399972379657577644020696882181978015801967173435491281824687351312051883589911481855409239827020860425677565256575593064583362135240764308917909702340111078163778790780218269785427588677515797103358266842349308402437161918087532391705363920116969735024618387457616812393939940519589201381797348861397522785285503961778999928266196825354791199317902562709687620484927237521780833811982359318391968148728273083821427687002465095041893170360088094678812528783723911127228724142356453060454959270802504292483234059928064755629556979767402515020760079801902233700436866417445394381904023646947593924499763468707390902261570199888915762556672380217437940817230678495111722213030224723468627075260584936118900489815900835001412417049560666168321863962575748708800950590865291087633863145884786218389569763632966752925915967539718607248652635680832081653627970711053034696058781147954994511659537733165455485745080715594347382267872547623225049670013026615544263941870006982845591439325029026097740423268895681919053433629850534080695060322491053676246053403537137837953816789842955287401906380037632462970192167417484777750095141491118250269310752828615898549474797983464636950455300919623593721269428949120507633064105277303015253860395830609197089103268476591897746108329076416260783287101705359066235086444072608802554300572633019095145399910153494947534013791371790274179659492176822093132370823643106395695300456145629865588709617443268903119983388841747943248001586893171621939946377751009703744515610610087242682840610286478252705859782131371268747567625034441508867242111496919284419897317456878356276295505835237010720183230479690188097593577747320941465443224509083699864036797129162926765747540094112329841548355160583934955250362460874561240145590885540423434582159559248091471328162869403909175166657642939786505268632230841307399198904518420646590902353916972427044350589681401922371027211468405762765874934095823345332589056203651869529167436040077908831083571531964484127472050550024940269380622169596914078366884314150839483797579589310244596178018809894152073712945426390292958193946782870994175998815496157974234346790774968787577869121704718079453390787025091792492934554091022766686956182760078561136168794819850012906007448338127364869125235541477593155042363142573121179240016166475816213817333962130323389874871038614332974121531285328470031016621720051337548002282056262391071566351351788859999565952488877724378507313882862758461596685960880122821738397844484163230509358715525481651846560279373556157049561690759835484403218957419786912528181483413549711179052588238276039783441178298123599045248516598238258616799119258456869069797482582277823459273845961310910932685355149901862237124963984671764340381680651862982770380172209919393602235249658842502902733141003590901213405856475052409529683221797666690067187930419618714082698936375649108977288591522964194868739519190421500547002563832380858116620234492486129118587531080634302993440355327092738203591096816439851060608000964230419160708551938924281354078708066689229955928846561524894179878525430919576311384833368867510639052600495635767361518341599410894612416768120195092639904432242398956469483256760752373248119542331260416905772782974660034183942729620292266369028975295486333830639542323859821231218036095251197432837807916939327628632496872995600575449286986853890651843436907610036119534866398448294901359943982273357038397661620716869071689182461853089735717753985137023385173411542034360531426111931859871062451158922937166358793959837703559063337781619477616922316400896415976937537195666906232647037397893477888236906466835188039725821588862545175163406301504182942054526277980872455042689114982515244659432662787246036464149560149965657637306660060455239613818982879396117040720611249831275351789127134963377527624301455032690854410466801467860322824132613488250116129810806063650658106747166097203191607717603434031249753201090108373647094272624178673121884546187471051377500394868019657174276871694294727442283093447067125324306562699287554107715955329506355040878330724997630889580541465367239001851075304171405033209612728164123606318578868802689610648356327793041079559489122056453977164268616959211466568233901648881153835980159773078767893073187991131832883963106069562947379246930192559499559805670293259320296457797592814283276762379908917796486578668900487285132107946215559545318664173459494625922222993664049760545744225443440875763379924041073669147109314430755305356022955826668033450641740931536653325283021546205702973310725154917686108304197662639578708495489820678484132354165705119974597595131489435534564642799243233363334371049129200931995027815682749880152642533194925365797350608647583554436271028068046384403696259544090797393520427419010388472543009866053680198169130742526264102881411907143692740883193612535051957572122849210858132746344379874228142205561479206552050090274817272342142822270260249641619510054270035359569385786024882023171760183083318783208946883522863407149180253757075669926156671410442180938118004726787814751542607361756823064211506632339496052129752298478986478266706910613550220189060043533992591560641058981820350000436641592302581624496490438242834825106629602887430445626129614308998201116783809433933845382482228034664759647294603144152937187335896471129863699942128989359225889577073196602734735457034763099530368953399964986062285310820211924365088250944645873726668254574219048691931399464492459706790355260344118536420213037381886965185013942408535019687888345924318473808359036971261047560941130454070736800739599923051436095613116714640661791068360911725521308422573763407782480787063583761620645928126390639959908462028938213842054734545362538379273132131143129437740867915476387269292460814574494197667030101842551793088313611050943443616415627378963201882864978409748699864121556880544917223944369062494065493284251348370013538425983456891611638044829725637919839150559249758757536384214030460643470427950676040458347268499675170025160591479829021844331712134991729653953612595574791075217787058923151467129077939425174397435539829706986859931504419122416041551560473923376648426394493408905243422130967543172291834218112365620330839074131056550455214166758538578917673971575569712526163974978027461564973093880586752878944459029135534269727020379769727540755509693026532512250612976445920190559475064018612425755600208217012330336047220082159445587533222807123463127403096449985469518768172153472964346804486626824424709679564668382556445568804879491766871689758571835427218850477950233988410135012945224461380419556015954091273805017108744878102234814991600353651686067957188732066415866990642874987623721923757782385800166183522499194266272138070524452552476363498357766236415880737054836425062303410851472425517274198150703511100690371295963236451010765351372856577364303253967985316639157912398160792482767638706468774787370847933159936789927866950895697419190005162036901673711410332400350832137653198500250634711912050667603185325238008756269034662334519769288731354015433280001223361668645495971739342748243324595279296023945073550211305295009208204686320502790046635313787820768456160012086102066452251331248581910964573811594240892542237710047817623939883151939362702182187898668946368048453132764489851714313897353141077424530475186476244446601941616594305201659053635394222359745531971191504680339624936916442825623983231697635726207016917344473156897736175714134221789085578998312270662922956141161004089030075802628545494907576682255457467078099522052178124639496681741658969909801968484442908278661706759132961538415782735688367875957416942098942135792572840305535205100115710844466548582435809318848183299824753887566312857405659567457562943444417885030345194607032616913492059250133177772598821410312670619600571147637172223893254621948796668964755059197940303179606908346245757127219272791899311039622155876482674346191792308153998062816062348130319369799511612331068563783559180189198786824296163283871828897800909122782187748511825398578096235253806813135785692666689644501722801480895281685883961428984710095141844806653223122020072619384703739869900357828533033074492060112154519611962756272496140652892840711937565994022436607842726022740064890138399737033799640902550359775701958614744896306291572551994427497194727569683451905981991362338651592383561657217257829637118207754121825964035373570144936518458552797267046169052642664301070879984432187235859388041600331542481389536900230625936771262877702315195761145068263687100674180932858677154929766237479859428820908179387039645095111609856398248494572588103375429749416670135815200238370611275666254510164036750371728011766649117460792918829438889864591670846923481323686266245671222049903752275816081009971561578554216044540323741445266016762399506801211857306872898941115350024592664688285625841082269537656990961040483100800848332247752150690014804646530353479533485876487883147504061548765234067615558683153303052778595432513364501162338705051012783147519365969704594820186413221299147777834683713583614633679456269841595529654760491529497676132780679705309001502642163361285746001103522809073959696121853347813547423053499484164573348519669371684159083173472833042777823367118815804000731075643203857197495638497348138576680478926062207884470246159962856103401977455273762421481771225897723505157553545704195336299315605778969549294756135050907312831588249869715495677008244987149436733158559261307241792639752731084753081045116948716706178123588161422794350098539850317859824122136179089392967385721463581210491447566476482473424929220252867045604172343218408889550788941252417297870111742098306399110554440650443449345928950800447316777242308965317972320291342795519764967032976983736478185228217338179937197277745865784061661292946705138424236219596106739673358746827756187709342787428255726975825211783891493380580873078799619044788712362083629506853585685087229392137457791123776786096589367452962462438016860388228626391819265091438964249775422024993360787878985775752754634073451482411523114567446596700732839591858666801615030562801025340097773611924034211459598555144355303035504128714985591001321279674644692811640159713241667607131194644576895172576525134937006295825670390593802171579469027986607932578451203226271046849151800402317954640835400630922805063636054728367693133189858810986028362012708915969279305016014350012552536540682633689508717209832098205669638856804783101988257891421666380635436577517272257266861338030326353156087898457703425897347400854892572138335774956637659612385139862514313733056760560515971880226575152263930460842257105572047183231101707954016629435783850854437432560466408356165008041684335984115613365923424237792926243625719857242835366607271394226468563398564745548249066189615001002079105844889854910783008964016242407372176969560886099749961677992231394421219818062421372940224748264658914833227076949556685156671239234784305629412427885220769541023967657422702478225138070453065802311209340325684618105577680271974621690948960094568022116895023936990364222670486764018200259961198278735503154469694743396771442142549469479707268108150949625969723288422122983273098259529142662479088089712195967944813865022720449783013096791363127082494315704880298998523617293069360927925568721353393129628259338751023243797557859862288649188767439084613453189662129683437234620947095980245967610957731602179744536879103923476338918635654274565132923853735230086305919587782059124173361811254893664099943825981156547460270588393833002746721061384277648537139640871370159425215539294745774685693636036318883851039655596131680376757278910776717113974091643294253711796661758508509038195551291098276412944363030977117212778893513385513206981192370895920220564396869320916592662405794177991017472073011580158905305942146531506964901491442670009744436389557817111203765481846963708332602846524409934608734683685461859946284405235484619785871600201986943603297850015915926558773188423147764394798385305972875814508092946346852430339012512562192041854987428589273731457983237712788186934164659866629923698321555921691527663856127152724319638158048527832065976399769817508839061799798445666844738145214708719396675734715737142192616571588926937684801322347726584423141581684459005472815751021074997257620514478642897315100262713826849600630211233350112726579734160702233020830036856741856357421525630487658569248009972642605663597667681285689595498205602639770782698818075551430212679715619738815541701731010863773140216460620030113173487897254863296305705068673589921771737634176664127647686596501726972738308807118207630892749421022867945857946674365158279807994094522948033355975995716141575063584880265060191523677002040123635264439355537352053506969799437621026854869982675568624540026801490697291359497439830267209599007821281375261917084099893497538582444788432301089892229488015931422644098869213149600946588929233388932546450255709672193678528944027646649656414203832032776175917803807203512941765357706939873540944767356291654236165676987823578854114564326987380441460701208789329286292363058443229361045328242114959296689913789800562406085939063454928803230102145614466389284358873905251095465276363588176991295651136075913181660124219313222362886729008444754087370635929449465576118958512141637852528086824655183827364384251927787315138919187329347615886175430762795093524677770923968465081732134716512549909804444648549108039334623660501996258766021764922672621770944901560898011978894706668313658490578467935497839972758350863796410149559621342922868327322518269012963197294038129010811031374583701596570167783193765443212678696927638558797999393154357119483641151348134135428671661657730712349253823038975687240483632635070273913375760710594697832779640993817004451174269387500580128504578528275370759360469291641762823318596227571782556297777895606135298016494260144800678522552781791622713786084130234760370627664241306479416665469258427466759316801584562325462493825827924165253632975539134351081879507775854851153857546623124603454131612613368381884902030249542759128768586300090883348137212428218920552942959653631127140493676617122602197524877484104595647963469104330106343019330123081829718336316865748855580017999195538445463727055329652383121169731614867887752094132110747669666832343758930892095429802740244451980653153094688724793450338273065738810160082296504697594349490402638905521468639035622682416587613156194217411977843168324601056625536370185400578388710938529377437753693216730419043266951666689613052405213998140139848959276094954649377462900128057505173908310244867566170214719876896729786623593973137874384601898621234894869686385944396540113569855797084060468183731602173279268223012203692123428384511633187880891983492189158690824424968522853868822659096773949813468715886824264902717757513135163476501572519905216261520380137873447284649867213694255544760237095253684409546686075107332193121672282329730274222780327901245204543422423283785658367864784516306876008365568777004197855343714710356609601040401294350782756450602162367879252147467332957019025987352358267252023202759247664387048528737575636165419768433673987361756675497313662872087952649720921827787042469408210774794153629655603961138142500942836521115834759091875248706079783474846068726731346348878382333925048084521174053558956123046478623687430918143686221878610088312390354627799181982665276637476770380885132331852014147994974483873740006581612942062743469214873767461744839106237212957897202973115304009413245671572402795533577927748510045978977725175419474687629348342891782515727667466106758115995983361895486946329715249350326640070481247193065056408844064411811053487239549571083976328161674910000095616052093268903402786865567663446935013051508294174107892650875201589632226341890443166900784215943267562978554745081433557127661757515256988875441076573810003140157788937432484365992992081503395822971253613696600010791151078727529052480356741426134778931648063760805815196172998558090591453200528996461314119965966560719889825404268658042313155806839331226728708831110449531434523215955303337253822990617425152683705419826198003043544575520689461751530276136971192430395522801255759316981210194060839802806760296416712205358355128583287093299074007942395803796951156238985341316986852225551448044436473563881489032613984827062120551368299720143027861622543716469196191065417893765465304436567137410702920383392717015568140445627038131382202989334235191115154739260607276643904232412499057038139351681432891922575966427145739228639856279617109533812001291939288229240674585248429395684559707880754334113855491997606955659610662855450347689611750338905067441178669960318045845050934583867421568771730408619784916883740729637027471238277943722288248596564641813406827687171911871154288096511940373158473364833006251330225149074067412203350764260277333654277692401103294154335049913265128976506883048801226926359907935333424952216654876643806358761014588586279392773725589160671644463901006062026315501118094350995818888064690259599393555114886109806511273836122965270063586553686893646766200121463973470234404888803631449796900833922703329131884934925802810806664773957270679968735179367048265841446607834988381585532694447661230553516292273718618050894271596720441833685665197881673760533316923328650354174778629506524978124628251744300556344895390877555043407315646046519218912653768161648759092655354929030058169998790258938662966378563182117372139394411986176765394915369968673914270384559643146009836525890283021495742489609961947858892056070103750064924911774725356852368525176142038305684992303219889935775256865504467091682253853022151963515963636109856800504918698886707171118519886572959120534171524818614398777304924562200291923421120064809459208799430806690508656060250752218517587943418061566059928626599998207441715309849810103108901155297396765423345434759304004246074808248635453354778441175654928296766641648048394782447226809157354607834211829887434161003105423401873059280535962010082987940722382216029227114324114418403428228783601055779182095484566324169229252387576483490609726525368340742168076248688239514787477667533707306347205170590563017015855727972694140574495209291555785575766699696775630302675252819814456153364456798509253223299356775300404259878057351140396888524685382711471530964365258272263611693396284568018486386274219735408164495561282273979548387856364298985470957208173141388036700594051111712149653143985420021650845777066168095130904149572959508016330862110318017139543702504950114262095068750889338824360967539243489698170557205479358041975094030345095808529375126461970814569516153960374802051261678228416239023612167864100374791224553283166936683161102526248744106579129435465955963688373846446635000540854937255888171538377001808246837694117192226389334953706610572887822709877179079128879982202631038939243670430413375891264434354571602078411016857484079223784359802926501896245537928086761713672593541242149752025748077086029462666949960576272762096981063530916316851723550400683651956719382123559761658586513655959351688922339969801744156252335318545799752952028518864546778736694920241976509923406371353443470203191663381538294383308055964711241455578580193744247930267271757340596596115617620218501825233694646056945297924865889232563520009362916442805922790606603794447909531541375590880710023033054751071371306127670175042185658047436531265299053926652451262815634242565146205689618095647018058432709017844657227474890983346557296218883418318658808606471582984142971536541738321111349272944898281002727650879349325433239627816012710901339791723374192269846071862776226924851578736565532083655780934416079379356221337890077081711036959082167194507415281208704355526188713200531902281586513520652987565028345157219456557804065195440840843143291003754288864387518966103138177091701427298871058040925682200683337235987521823127479080266214884142036081539403607304466081479949358754345158464986855023436158167434364900788933938236366951642895260182188106978893356285044234036768284001697273870892370235037568950146850361939780342269639120778100332917940920237568193073430767274182991016177414673763031604561556845469577245238404399555274418994513588443249919611153018044131640192531319898685238291341570297750071072432494207705612118056224992437244682104836377004293194970315073911895489315976503319069058651738769925533963462414429976131706144922017606649856389412507534181087489722100418967106397954033311117989170219960736464626678559244500035383462145931472644120623154297751377236063277187235790006123362111676557576414469252094039519412985921925107539669067183165825101062607412051970365262607724228423280895467669383377023088045508959837091018511613205920543643449517265394790946130095813895362567813104538742222823939454120935007585745798871425988572349358783662893892999013915220705760663444918519870794827700520485461328296974338420755749077869994102381111798051695832879461549392362626575242991377544906280618591162080299227643460949403180905637232099298064674692343611910552595552557452594422337749172984794259106065682844594754918967116122943661838768765238322551844468783467140731911493109099289059141493860344986461844535467142932826279585718592970306885293828892154880572161818991373559150551629726902599125137464362218572737248681037854738648563515039966529844832664785037248136300871571505600747765067712300845034595555689232434722967041734041352222445391928085503781256855260952782023654793131070250577829499264980246408624281010863106998974073831192383677706829205850249237779419103501753641882549784343940254881969795278900191763798357894738106523053450182602523677021493366765265124130254564153909942292811024800598865028715628500096338777946139482367444058736605254655266608269580779885547273994935015519735770129237713559156632333367394874875356810452004614729386678922041149198923163379450817053780317416633871160046214970137229487495194937298486251283024323102433782267418648809936916081471067173657455467571666441170725229080078268401590769494544584645927918299516468433855106975176094236471280167432925127549140746193360781837502680854039309348147974123270708976743986470233215812237690345746335457642752449328836764938926117346006221332659171221846724709280351570846772781303681606063779121928229226044298448096501646680052769749462208169660194006317788956532887912767920853624226891000758532048907472545185054256915288283437819101922005011733157811253722095372024032728864058716057658898330098437339974195519766842933028177177827600754386339375672888894147332735921673027625391217962151985666062897089617638200075408543047563669565985469352120851520459123788697317489030960312000405423635478896907250907209213371696745082235297041170313507564986114020363114732726372891142930112373153785077789400018542007180625295763858644931731728239385656614652929881112770657455437894636015843778042770834764788855035865663234436569271303206472514924541718035709170452642989264983165785913277174139488298294997963660332897867708499501753892050379028841278823295216695785996197412858077854566905186334278498066497706514640701670158638428327038828835103707864344020403361141184977621404783248659491460993510255260376719795129934297802700780370835250000740615601357790209875872153680848603921864047910204557288295416566843201688285509214151191430357505327085331029402729387038039459857392240462208148607042564969358740919605700399334397386947862056100555045195700497992338618879877089317924392955118610979575069609760725297576587360522099754305253872934850372379269356343749440048434234122381211279787707664038714501803744652370151964949592537338736340493771864010353219186423627496880526540750683122575744950785006371387074077122142976929590638517696728921981837011212304547954601660401632606363122949400088489688100800384092342937111543025980015959873408283340240792061089500188578883135780587915486652152480787476144546846797074352147188038224202173483706104092048400560498317819082346283734742957873296254473964479536767915453281128020790668162981539619129511386406209774088903544703553414370655627792726201675180931641582382640218708457790067416320720352164223453805604626345536129652132046694660048292888246646480988373164763736867804792754086515756507949998172282298071783447632613838756483572049977217478547991657190702102534789799591489942947185263398362982557059138799301844650726918952340528381670830323535153594067738196063049470131468919935303813076619233407439760774795320928861898115863121481695137126193354617447248674147849653157572349732315241725368319811921826584893704097578966576189893968307429778020019870609875009087883466159066376888337778556714435138046321368265598745867951584794957302424293015193930362566610777510543424132856301846501360918990088794366261090135291568176664837080020326761615418505158663467350380276429145064144596007119394322069908213995713213762973136505401479558263636308937089143118695295105346186961982686743521992918400969910063096908577558557885673949868450887440462823820004205171107259903309188618373673077468909528779774018653073614223577854303565297114110660347057832728264521989594602268623736299814115722289048774547492929555559315743870118117836456586033701078388742085585538051185247312966945429905246553952805542881656160096463340110234775377588387486938917444666891375001955157795573164366302316504510670732298935455074120164913061395461043895586053599789884328696243088792317300511755327027523474540243805849767886545951272072783387471893442135331077816375427450766014483423309113394921496410135741613827280521167979756406116559477795104989156078251492245291126106904842252594072194476563418685649740222480139569511754005371423760542212430856254556333848576103865139760694393462092942890456900347383209655206252827306375661773576466931783636021538139545490497780697747481546876356672756618152880078392182720553379539992443858226437605799963113789074886521126135667087581762251799787869521200530170974939306252043310733561225052603684890700930600759799270301671993474381533788822353996868850525865207212457116059303566799582386686997974850467355454460064516704773075401630974389018710246605573358384110050214584342152013976346799692552247377424339067229453884484359412097557282514343550831916428590781920432507639210976511030791624010152053424137094993339924577036248902552463651535230325874614798589045561621429617269143969720213089055880626029386765641706895012153135715358648016736642999887135587050037977803704560035255695443912649606768693640432834153739207145257813337738687310777706280077332284256123480437384280867273335768696119399175297107020289881068895848901134283390928450294415983607873196169648368374862404718593378271408248219884371740316846035492052577055521633579205519892615012478578056568335630995977704044266196109328015324141085941198487923952305891445605256603758226531259337435322165882643957062211777553215403995928046700194374667658538939304831832309829996182615827871988721848136784256059002382503160986134567312067929756129216649683672914305616112011713416294360874317639784277410327689611290189059107907933473772003684254017293077695492693607194820838521805256723502407561483360986979946702129068433042515610505371436684431571817836586121188426776885492986438595758721648762225245864891177316229186295982321168430581865973750888438787184010253061902467461536699306432068995269179472133359143145782926237513559303432504014527315755396156344262213147089295592789316060649415418580388408362046295027696074397205387656871440062485750687347371580803439154087281748560229546035031414947671938124241129599470040287672881208417935555896123335181750124853924784438725223141422603294837088515977904924577678546643278970640945288770180516810370315760540185867729846069239409501989017511000297429359307491143706067745678971135858195479299312165218601339721171076032876131859139227573113602652549081322539540739148459054879917990011808598867513838718388365484722464871809657853108391946487801785337573028561282740020896464925212694716469214873758897712767452928904399197720710712437917008957616721268236346531881277983166201697028572458556111738821900473977773223338398278426527293588798338906282734902249090413095690746223263263181819689371671802607805162882256446958631346644985627132863539197506207797445475087889060245687195935790366842100374159671837873970750080463706055536128176466295866431610229038660509480735522131757006674111395094973434470559599563419890524664170250749594077391275101349004117870635011513103005102968772037408357249245317148685854584791693799906219295992419262004836749914701414696406856737806327132073964151510969720434363581435016307387659349633645205885619314683821362684352717710359796761992859695316218417703061349216712177484055452367293401378692253970631675352676189307126415434449954821520376871387211040157095972756496076764377991557391294997215932772563861247967750472508636754202189196435742212962238692962528089601367226335656385487884331701559255178685281124371274954460153441408063436394355144147784356621102326434882486059504633076903969328396433881280696472460440122803951161675522122095798860723012641124646599000425299021476180751283989077576935037809752937685861183832130215383447766043794932978124037951459653950440608824857921900962438849739093396933429112972950687988801127595283432563691390883262909591415437828811737953668095221199630414987799869614460845446411885241259500192328516368675315912695085650140546406800797875208697543272276480255389901997665271493580845073975058140680638638270877138482114007012714019732714689794047003181134750370774923008901931196477429410417659243935830759729032061427873821319323516906987894467209222921423952253705170938631108569157092771856855137421511871554967070172695048500130750301623410663502967119521358151409102570816885690004019921859621338337280346504612183135056227766189263197860349577923913273209067510976555837844835144906966734826867521927186039425557869804251415577791526950061085773609848710912556429200021957465321826845546660847550251881876556306281133362147557333537789505842180913307313838479130855879273881037241749838212295509612020115002549574384835851680733950652438027466787461910659741052070679638390500085407947435287637096186182511812797010359658318710777321353536643025052745832319447532642467412231684649650086572953740956517935563880635001057885111500118097783362439451414810086585258309944391194196183427879082280841343547173358517677934633663969127372008365110230454773357300697024426568955669431377273471068384821280113997620187317185214015692973062716643603316837167225391922180713879889242229350981507966099187487451078635337415734607273852003611488382200358031901289274249613921222713263465481101992770801656058387465882797579915952255935812992443073544034954238261182021181233402993137682492337176610507048444259629571443698671526677869328506280835447431296219707809968002122246237591300852529907252445538140657412981305458216581215440234026060685360770587229052075654344406604892486893898904035108508581749231822144601003420072542564361782822975941325174646138466317877930319225792057051988756105519018403722508275743639650058774103320448074372997934783244926707042993830652050187611542321499253620733054699255666798084849111800681379196719533227569029358718254318899713916464075216339317585682444033891668756041678880576892251370754854578397047821887277149446812733963821994038566202385572608825021866843968426286000911930964534653402856213836747156511045284999608110455825603891183820005778897198506461037515038101414378643098289217386223511307254594108285443659915670259489848552483343861052808884262616509571311650220989298552960693979449713367707355444273839438855523875408130359741706927784990108926764827729588212319874203703356040992525354119480596606636288864741518710742540960155101464180113787629897621702675891219292990189083981253524283860034591966572010262474582769978013587902318755112972830423222441831758936071247115022228464319859490295166084816605229255632641425886233719868544763355528228358564480507269370304769338149922874020161317781647182438577108372156652798321643916741341012536554419008809277693445122041157755477726030400851630067475326867056250934281840944707215636371486388995083408884558373773757037030177224129065971297710742508400770330955090219838280850952837721196423629950527395470130913577477641387462385337655597366613897811580820654921710038504953172215439974666549311783933540917615629095248956555923101015122167112475380816281804331173744472888564217059837320663876277055837778645958545859918965044812214261542469893152232613919027827748544098902435648028026964901429286364378391868966326181844328844321879941055587200237629000099397018238590061825971193766101594356180133590769606674648552704773317427537145603610274974480986863672440120040209663513882077417321067083961128482053949477829569326482437519529924946552048373107958948847521105054511257738085188726862515121048226520077311176691320793361950291251017520393943264072774070402045549850279293582064899549960755780672965882270051726253968916858827527618012496497251985165157810703991452682735914166709336658217591740010922938562968640820016649229421824039589029442530868179118913525450731040956486873764650609710513917656332116678146737014898273446490198473992049843490554083296580656010469838764480237995304665559785967386188347453484698021590243863314267672261394160990827603587840079010450165234833917488407197620169184073066624359610208725808994955920838036693704382647967183951208383004412175375847222012016814230598250383085723045571638987554149305751213849049922782986817568605732189718010913974453735181610660527881532064762388487929742466202368255066130322209416377285499529240299711015859345768985285544644635807984019932323934871208247218596957217559539090909629102189509141192834229458667298422093700733926894033049819110251309565220575247269126341684755219669804637720653396268978763708903482236384911846238926318621977364724087813936639184171288345475178492744020873190006075619337075503052111392488310024602097682927550518261649696029438928277064938672339661739058869798504430366861797695056668734522804256074718440681439102159076783486308469239852053691568986924889946131934505701958194578493650671383918550628959342280677994644048203645132223922797712502245806893584723219673089563393158158643818770607124368716896065707725162070938651231993563061079840889851857151657952542870383409295285462971598632473777218314350007042320318279170415490376916547145048441988906986096296019881402027771550484217413097733038666361008948670279587857570140441438502511846185801083293992630852068438841101510031858033675384363188343947548175051803440923667659683069881371625523685639943492134490944759043773093000633237251222151685450859845316001339714577641763545838893338798271177741392000279289038684518743682493306572036695092079242637294348133289959367302357174628248898106311196780110950764182384889728006860869223260073999151173224602918734678775518522631093108395773789168398632111399744951530812258048482781672487411291104196953768948339484944793475906190688129808964512332968004170961017492645393588593171562886276388957657493223092691694895873739706533289288528180083755602312794994189963222130418528715550531371985936129898676942952817268872078592166458566718780969137940297543052091252317040791460688557256496525496860214635649251598173957220275492574742698079831326644547853628129246143575737364048808800160895321143916373918289040181710408141557488844942728069979319906073803207348484300966054253870024646842820046317325011375015411251002418062352450348857122101603824423598641287238042990923688598546486806686791997356358685577309301909520856522664605362190092234060626678687313536676367702675231167799111793203681077256441343783372976139261255746377172304356587624318728348699079418050843053430029979278393820684122408049751574865584620061578872233414829973843987564833658818700010171234278179250469851739083185000541921559638585616599983565514857283533439629639817806025608695688551031611158804451355182759646697382129931587130282415289950840395617285769459634592823303921865530063451070035898798166339341791938264000028287043488496815269806499704724301691051644196355952128771935386429134913945565885640853504907565020314295603852444820418859466827695476523628896712878902751203757247672347835224282734567515688772595184618865014831776544602497783816849208242438718600879284669763396547810092374069899856519217283716804177254629694258382405737711912880321572259273735351814081366731885888100235068283936332250850919660778455812373720602474214149634504509821989146390837991730150380237720120415444243568001580451774606666058150000332205998813352102942313595963915143278043230797067387839808174571306096622593273935368853799704541282020196638301206464502315707208669070147885260201987194768024037692823580545165647172039926935931532934872501077331983785692663244581031616055007040193496661804066663065753095114643151077552123756938397142222351303122135301183491640629469863220594538704419246112194202771348559633814262710709856041164140068971313504781984362138129564158084396526435085213303792501334982451491542654201852634230330354746800992627515695053561993368675073840236881489101306316008289761827501534072949060112153060034682889104769740724271728557303132483445821978358594956023392246685932349368532556299073134766360366747868683769791608722977749059600713918310411903278811386631012961481453137811938754235996003318880304807072292049438567830083707221458147769729296334078231820388170474166308223529328313577923767975214778892057562459353143281650625795389714373941530717859824825843860019617267714833034336985842177032538438383516828217863159643152911047561718720273323015607210717677083040292432856480350181166143184512812439988465733004793530304697991111639792396554656894425916174965263894041647324194255647689606131408533584630985206056014798635639879888750568201579685503995659542936538825462229547221602806992558155863330690351871850605284786789340461960295664755751747146705968754320870489129244570077045684861019600949725314507907711444119508725657216247382313221559760482437395041975524595202512082306570320728665889203637565952784397626466155197232683563402577926518148692191770263194485088061700907085529179859364601892051991528154734281726994008072514288335005740018804579450815620930391772688827087558135152323236555354330779934742920781075120118262252432894186475592876018775315280080639129212783402818646552675289559200550211318301926434647664392841854799658591636409576850703264417851899727103412177239228083281772518065197059017706468103536601837059776938269946744929591009180088311123816739409257483885958882469577194615602467361011456363275663679722419938284006934685811814589815896236028938864656054880531504941338079152269168410036316868800115797044052817483498364230971141051553351797571720593241555595755931967542057878655849316636324519608712244056907927784682017344320562941716427026859657689113877032479951381037773798737853152043689292664056186879314734440152840262233189301740075878737365226878082084101954099732683893931129743512003783228885894060201015398810496161295489143473821907410000315889959061621024940141166267618376416051852046128830709449749887258088948973349746749857290235303290286487059208859152554646185760642499529242973692003535920656856746645632805654604347485764950852057917007610054909766556519124849309284599275030799779574899642267875758837559377743762972262984616332286328190385785367192725971049933512434607455402872642350716638382245728453726240041210395732399631729570736425256456790479115351086576417175940300516975699163355949811195014715939912589938755164602075018106048214201192644531505971773898492044513795681818555401844862997722901359879412122140094879926138509933281293210454801660227038336163022880905907639559394718708886918896527670152277199510944677462974848665456992943649973100581032108590615257176382901234977651465471380131284667444503239927498995865367709756313335057996162722898962512746206206117140588933681721874074562854202739466359683509213054331176928427798711320344653381343589955898565957307942545900927352178435277365520286134802365563985883493585103851448936525928250119589902460773768751130263541086247624074569264297540899275074517167577114873624613175171914271381446215171356657362205904376916885294205514673209272581700951159596990076364183067889541964139516187493646896114891005658172631859829281024044531521758934060044907370612596764497977674865951496995817269577235705398931568058085654063710050262524004832895284084872096154736071617916663840145439195640590693805269816195453475409516927370326413132140970513241984013383880439212089860675077054585633809617695389892726917272422173253639809732381093151995693646425553909623296965419589308870466235197105689967016981233546986440945240752204140953475533789313531132810962077602222217913490403301841306924957783870305108146585395765744527644145548943051310251661040414160724788207349616391276114912037548235853175625226148367420672265871100458164313855755033832172672349645167592512343057650037636314427910589479781392185386418689998925031101288081563639929045712286992953993153158240920900796533023116597047040493621236559212383757704988961895678143360186534150009145979688226051503711568403838557251954211530927756741254036713780505830722701750047535579589110197903239901602009070368200129041990249959538362983466763827672866658440171345151403287200576359724483326191311102703066696334426703533789607540569323799184998054439287519176932814279991494020902708512052115728601966109637384153789645703617991253442774957526512354585417893147565788811191866882443992063621013158960928202687606945438498411172807193482223984225797794198910818796869349838999265339917227560443957629760235106197920242738777917511569299942793945862167005279068167712078328467553329628894135965549726913447553344256861412474689512016547954511569941052997561038344757731272334042706581655322121015454554599320852100543353657028733385798457112328471291527241773320831387113672412492082253382301826583131482526692849055787704283644334665725984786129955208812507469457697237535483341260785436095996091501611109031576435718373118820861506084788206352105216636431108813731048913470819501212375872675615295044544697546341882077498871527170729291942406033536297600126894647749575433104583214071895094687514130046769418374362221421811242091971254898203290182756830898956137546035687306372177095591075499170869525334840698697406669341406586759030249171911783871745316499701243358011590592424354556173319259116766325683908225780244086088417375777787392647815389224847664192087498147124411902184513086950944559283218025260909352712725401171266353057729628269230103287712355089033247195919176452808304850649760520848303763928274263492523910836268098072432001601878282917193121058888476664526639780321195555277969954376696362445668794762543118321924992495735712859563552321122135690533831864373006711634817740416933466367646732127359279198784034272638585682598096568844399655782281365171071689766013244341068801491864904233154313215369139189035018368603069732092310058271209654084571376684395576838434914255031246964365279826325287367700209831545597736356831346674458918181568169129474967177413533392087454097005283687598581689227108081369957389397987213944885035056500891586701873977538924031157941320620026801300916282685819476693351333856791978632237345130209620165053432024865079238378773667816741374464118769190411424801819775132161622059008734094378113224611039794445475136552718224461752398124074959984173808990997347009054282998140188652904045959997952867541156633588928185305960740591820851550123616064286897382924382056216588876394302163567760047009288388266226559140174312425954970181601816618046788397747077204288914945455913625139916912751526137048619584821755464874142273292153173295495983980890179277671403016123895635874041476640449954846482965535614429482740997652983166410472626191610500189952641297909729839297987706041260897791874610400637883200036558152519235279526661507114082272342144008820414499787261757711135788501708993140528368517264846357636932870820843519515526674923812584848344449637347758640139682946261587704913374414734568650197203841817033386389729983229217050802563715439816790164324216880489049333492503687640206782108113100674987365288929443016735534603018567314143664567379434755467223417134526230120885612719675981482115458372951355937884716299667695614653333903806260989096317994964103551897816302744240512858236105010099607142166760471518553363390834532918850346344040710791541537311699122124932017796357208470898639853487020315453873376580589977014068870856130411169782562761172826931803455584164484020181714455466772214465208160160067176726919105526435045940013094041229753216539204865124555434584143038142641030970063230020678498856833137350584615700361256447975227490318942069490418557447577045798875028395179027121881649808145152550258168283660210899850328655362043032527813449509997250983498660172671416642944902032186153435503962597326952986635892442305227160564056984387897344561883161285463836818961533863158297956455492690329441756754916501175747010465812055571064575021834673147205270797934889712404162144961102578330792836032022010246661285673243263109587280358611310866371871447291890405893577543102741180902635802486574283809904349316720162188663408415362586573638481961518101761776901638109937613661223410388538384115716195074720201178311900352402941557598570679890679397584289167916192787632623294044945747822251881934704410910473253831467744553104869219457531579686849464427508765429435885078948956992503099013909176367653554915234939092272333006337776609835156899730061728251232313372843245424604359441190610684721857496063091486740304388954697472414068268587554266840213511362599572675271804760655283100597184200521267104807599509108612909699308852035314072210890796999586262846847559363378448364970318268342423456428918419909976444272711558270170877562094028348599337359088388128922771069470139293753463236714411568910993335374877143946120932081140487746663207465755876657275871994940226383491034853407492596440640410671247317066471899124980154659044222718329689573554105486467564887680758038526352030943143954663960040601905085448572387264649260591014494613848437343004182031967377262657444391838581124083831416305257854046981252997301774481486324682182901851331379184291903143886501726119525545299965947288187401398010512221958884554376541527428418911787860324939080514870560184896978786232110875162326417779079823543622162346248735533411383562309731652103495901432091209229275950438893907363438851650092244770583635943575783286907158544348892118028594475141089973979846289666169379955315855022824188053404846600960858362635555480647259150835516819393619934086425678792886946309311673168648104644212454079162496645558569351264567494995401289450251255486503906173574759377663265420785863140372209925240021147717996277083875206995176283280095415931827258276646166967060944965347541686409968827848729527414896669228907733988179276717155297052266680490045547067992847351818945319286919429372305420621382313889117953347376844314652690673852650925801076398033482344320265577146987298159994794025948399324441627410112302963255910405108327395963184649480707754508204965639786383029630746543825484870184036744542984670085783539560755998940099433454782374711013262887998651962744415941151394813655915908475089488140625205403981018945269102730689973391889198751920997629902063146082288405528905156331096768338572805575282720094818604111309662826511095329199506407228429252035036184174237158719480063990373970619629608893164794901505743661184018513048444845979039878006466782363911103914070513339287731205472448009371806423454926555983835138890869565004362123301582943061308108930882417580769757584926050749183608463602106397955025250403922908134251557004449516023081665624796856954422260856895960201499851843312460011547165206261758657385489072741421673517611804798883212635419669335844441722608686390183886222826387606346407944754518383204467924868900580609352009494814644099112838179332570783798324838309532655592261712765352990752869852889513465156394635824950275787183925420637687783488686370929810274359678654072698854950190937355312014754080083256982478249507857633458437786441614566326310838443109645706394227742528206902495147445339163684642213075629622891385619535224146127117690068321859042283412107670506418225187686092496168764145557309999434364433574915649582883233180562924408321745474409416989535856490693670102594181193760162425587451595126069787442699143382873440551750111845814154595527946314752306555925340959435191228214205800048348258887066687530491491462575601286742839114523439971945829166960325049227017418585961148377245218756863769870603350022686650262425285964284535129249696954634329870608443062479928829076110568663891707582421815559545869878658605209904184134186709809794536168523100156801064854746290524521399906449096982726392550127855328593001819578116261460460547256944874564777269283463627413410535885393732551900842974957286943213402237386909654164699551354583823075278947672581538064642719260264343589634267215456124064459653962581077636919018606552088213694021351971275166112680338486071058450591262114083011855622408186537972182335742715078981174727557888829075245582883296658760399917139541635150236619033903140503741931600791653686051521429964897581333072833881036428859897838919619356208473786551539726988494591817321330094453599251056222683532138977930345887498334696972876485131805541725683675060597569812877033010326104789210636577257746866549841989780262705980152221825951252758128518287851923688990321329867052028075308960600571314282243765342256987903622788642749002821774146429837043225469615567047319802975011003683342685044046189719684469627461164168957679747122781790423013918480669174066226275809132538860406463527985126823064107694238429505055197209312508104343033980539767806870098504033162536090249802708853203360809198407404637563463910693316142769165251579172818741605464493911790884998268064800712220349288403014692387922760480250619374119164171955102476416267980658445974607048680563601419964240140729378160927811504851985993250652612553588981151456663705848144784584539705525365088162821986119194945257128226920064737247259824209106449700288480071670805502264708811977772754932362089605658791265900487153720413561144713101062560937581728560998350801399166263033060156004462560137248817330392927252988176574595444382107475410451310258910047416877946714050659239220515758446588273064346260710221533484697098689395943487935122761538519121568484944326295981307161289751518993638831156927702122259823403009225502492464144558772160407098440381459236389166151601212696726247093922116339926569415523330441122747836689708818916326658648250742552499924749162633772961191913906301062952589241850615039979203463643870009028829794417149325977927962145509910689892038960818928102003050499145673706610884323532229860380191263551239029169222058684189361234905376504562368343118979195366207071720184942037715998205027560330833119332517330809951675893220224276137799610183211429808990336047379894018659204856665260219560654269535490420720044641057500667969969552393654701298989922006856157682981122887218920946545483483622944781708630956655021316976904204364410776966272203857894641313878918022639208422019426724055079563993949311117270470856518143627707488357731712441090177460291263849013186975208792199719587777644370141109272899366862817136918118228207707725737065110169900240982975373051579696236533713315442060107237670727330424212654539489216475396750546939379366014963661748205682700733558577006831251454732520126985819083607040445545704233772005071727122873099283580925262368203149714052223870885854310912838113137056110694538253023685009895550349426249272704774742449289906825664078320739023521888055737747376611492675234340666002396343712562024946534070795825778867291944949822538769629424544685783852985495582191767996705223824713269748525214612223814283470648315180869015063055607055741612431484866956309797996630288339176415162714003112943284655530605150380846233986270013562625035205758952909495048793373645056874256049722295181556880185644750866384908968008661204430430647929479839066424558482325635750009987062742955858274614622640429143337545387430811057481270122535304776708775629099479601463296915883692693631986411530303077044573266514639110904230292259209759504011419064114606297031539667234116230564695784343029889759749577516084753247883258706229853402213876018166645084515206000829881521888315785819785289798857645915854037884678629288500367001973961743430207434557970868477342587365520648304614640854765132765298357093308689389800208724231531733268426575535684804486473143227530025518393148927077632292439918400736089416048757106003175209620070712481608749465764620333310527622122797156737709995316124374248568699744568108309773191710885689702858214406231032677215366376119928143090463115315305411219297535642265283865896709618271768149685946531588927468894511135517046736175488311148785263810042169905280644556138027484931585209495532132129550800710791706541698585882417612822547929115871191637126723495015828029927751726329689489556723270515714241014483099039403252553901239869199147323720102655642398529033912697181636903768023026092871828897929274741196314771203910156241184992002731659177892985710617449834529398628137401356644631292672695186943383893342441708428043594291382358934054247078878824483820880884583364420098524126216185312315440115382598776559906531785215634008005588060723563243390873008137139886635690316610870006207658952105450530760094195185835829340138976623372250406471511687894389936727053225303914240854049930438141185850752666983809567391224321518348629378861937298618247097607156629459967635699146230432263822938422687012657020776684100902758484622834077356187948052948349298993555355290551527664158393921582123250074832540552456554367656606422789989962257946175792422392464899236080904750168568931383396631642848393874698876330497418524173104945135259959861234141417100786804606158888596581866696726801350261638877103480864070732556994086701902100127581394765427077083318472637739959436879648948995592649850754357144089418960281978460950039695938273750030424446626125494196724114480880410009384660788796921807291139388288631697037953442074866219837863746455977404617569205099336070676630959398746220317297858915112645814166434094065913588169589672128253452441021069228770440077520807531478730086670402727879575949177581066281932790139028819004655936305327167864102774681415873394203585672848583908826621324487680960888662825881550972138113267259377564432104694201907659006968698029953460650710666182423325499748962135745338131856882265220186416557205595494970790592217302690173600737404650484385170348721882592770396363217324808446802327138606446038313400048575291351341063445345080001377592499909676755220686941186594457718655830414687740070048120573278285003209547842400664103372325278457306243307963296849050243301240363099324589859169837877058605402094615495634581333929296300698657991141851592814992373488706570306730057758950950460293352883779920526868602265630984133387835665355794527386438582409939770307104291144686758568958272069731955701808431394570082496703480547231988006074972123823738174929179933704225667164739846075589752909796810795196809233622921643387235978969165115026247548061835010895197391176660335412318909049181553552640451978134919603937558449088948340934610270520841039683640490187738926963008615854069375903557961936383275388417600781108257673576250034848778924635562867005955405660851180977410882472952336437419952224737003602654029672089002272384568054573098143130481982236007357953593320160172345766892498340456955465058288232729956364390093443558170245707464538713553234945769361553566259318162737587605520088574050872063422645744016465635047517219570319464854368159738407034848793920511460367337102282946354953139292404819741979636126036155892069850666558246124429311099395430084506072287613196611546137539164404867685835521597439751087002141204786949300549735159295516681637926614837292511526110928105424632915999333530717753874075901581255114402941941738538403388311356435868761955979591011516345006094782021725566359916566307187665519305693839364143747694591037158361366908984512011272416801716908029075652508191501208968883615411460104623416279481377350392656433714133732688080172225992366477078303850286295459260235618755905758352646445545352304090040347822335301438748425570158138211179504917936532781210919113910649308747284633135675521695991357970436776841685350871760754209932357773998109474741197793615173941169315251266734951283565006993998803047889502971500955767983078091237635669997268353489525583834326199127329228251901231403067092531443821948675118830481913435978984433671592849068132453651050377362817147949110104393630905197526876905069856340681759278162840719149920709061158781597484516558201567248569646284123957256227577784025076638530994296275554595245459302993758808182837745927261559217182001402610946453537022073250761172726753918129759567706191296130636583186071618440938884602754756621248338132936795676621310330668932670084279431030320568880808710771593612868703642231432055809432698726165802598850231463811830049227174859706161650714296097587137062705636639802992053578928460808000323741862724338520248750716716845272089188605438728903968085929067939870320859084803627187768833234744552190066891850345853758026249840609148434004430305429479196758481257740845344606336944298982324021115195874445347802549004843139032277657911980228734021499776166179089616222634609733921516068879510412054642945926708870115155768158662329054276557406129231972276931787127861944784600036298911952546867995948563389608230871445773287963538225374787265608667743516859432837257701004013753697555022121944096566063557759880919880970809121191567162452666079508836931042108011612105077714547962187943583145268294440451327816974618926774585552994867036759473796112793452710231403074878239956806058727614192959351534172134671857649222906404097334155636811038311184782603636065558109112749515282756718751648631171408059673204721146156325056987338382692588152818164745516378037514205954856072294316319968817088912189875785214084062612831291443110638299197213303437572021346003741286659933111890598276124256522854990571722106615723669217957583039951627351739736963736644994732864223426300537224684132814969614196632549822043204076532368672507296854432201613121720978252009032400659790522580234027694017481477335777519588732854307928275630505530396595643905854308528040182046129308060690293183826127049771410098836039891284347153075256829806265913526440106387915742975750278197513530995262000372839926482434610749664128414739012170003212792552528153059682451140937122049122237795168410052463281107126421150393235354504090824311866975824776426342179465769205309275848129859327820331326725237290979017286417331524868263846144352636638675185444387446501866987252563821707418421798371786729611815613498222403454451319961633236303044189330414227614033546529936964129172097796159384611161302550075631988793462993822925009062015105051423865658901801216440635334577746716426934209974539697865917583603163703780415936506752045820018309143482365393531605090012278796381329036437679796355127822982727382823291553086259788170364531181131531497467452317742994142208953698182236352555427161216324335446219723776955416476233742510277551489074582433827741961105387907136577906369360911112166639963989713190423815065761917911486151673528201315383971555323206963093389545745422592561553727314177088158618378252529457800448994103145169234399827698939267342733513317898577755200752586347841496015324276499814638072027829591610741468727556788786691551128526034269148988445580638583282868630694381809726388689765937892433332170980185604552996139070139407291730332292378878251317243622603406071881708759775238249404422351050921670571238564067684662653383893789065533092199709297162255743971612514867029288552701347025598262268523785223118068302711270842226432241289821146891746653776056156874819986550413998783629139345377971563248613984302859989815379142064457422250110138805587471047994141031832211226693525460734674921228922141629231827923309074359576107273865755878157103412677163969977350900104813665549471443222289050529722079274376262278114739294733242084240842273317704619082480354921429225410355499136545532350065233052351858603494046259525801630135022659567552620350395787901028209267919523096381226948652215970263615210132638999522749749093942487356136939537504669691144445688901185175018073143606298565849386661813708458478419307881974523664906555231720934030573871005268834965709206584508728706514659248817413963557167556535240523721637923226798827542549191795203567417657848961277831020747325048507226063794540372851951386054004545194705814387932165893683608231219316637201190229281415395692179306615088277236382274773151628404052688393226505726550789085120449000088382780101014549497814552242130806673512027749705976183296055715414216697758018998224424276043781970532278889169720583502898235562723212758043181327205897634515599784028562666136247290005959245319097545804694401823584876141487579282701714116946613347775097531609279798248569044697591724413704423658426742379277954667470865983389233735248457682496466331741642233925851594310253713409384553330444148800286729133349074429158097827434028400572786258186718529828073542578625867571101944263823009686009411285240961973589415215468121222464993243066496428786634969361125165274551397298384718976768364557406150496927481219374313407425611001059581696374144410981878497224228607041432205809264870350358891911732272337626615993142258235179029911409653614677474670617932137983848870847048349232473239080045982822085534007396674394841954709848470461017454472772059805184417827497404817762702009526685748659070556042829388002882283971614065294490778218022115586377654960268813044090424202496657054332037992062521752322094125520540749228763325724910708463563508033038874859628120026725538812690976435832162406854818373795361268189250698796410490314389167586124891681189185697918290728207452180896419573430654686552082561107038637471115622499006480336493967114392924271751295176549364392333434987557036992810206160949383618494274619211764132131833346808361928540188022964432635032149646209767075297958584924944118406288323665606203976063346869504578331925770165192135752876843982096066624664884275727613570246584714546702912591481228481568765543007313554501305753281664214491483577172278793063729514298882402182089960950974625941658898119150557466747551523218765656466278472646178519158072314205709526494215867152225873768578071205378514553446623750720561473578293688029194379116836846819663100479105117231117585365632774103213983346153472983062949901422380388927607216831687457742237243349153085953628964706217364232457997421162090169024248026962180064687307930403346960332704148663075263048017541701140685382673589075941405132064933014374237589882939024672583335238044309471807019793705362899483460661005353541734996752851280129667845927420238004688200631067242131811703044264072545535173208570510284110992310502227341880068472848506567404545863475391707213743603122263401452094054795858816060814179636324390610703608992515009166676618759532227026150925731023531105065454444862842768047940668131684018116850494502627628901985078834966915296298612582971294080979854467157639341614548154357818807047528034194955506245291355274961164064905698088655080109452907701845599204332391205108973036572187548762386124673499885733085260928246310525076587678850476127737593302810048665955975612431295533733080938922389180340553236337247609931615696041856961023247738328906959614019639937885824639077310136483674844364127344381846991302996555396950860994045355469176389977189234788743940007392698877461093498017702194248732300450732836603680479382683034433134647002199337255946510767880785846221385623236517011857911456125254469093735973481910371448562304788070144049122140373424561175964561683718739054006775562618877656522041063101303796081345520868583280459866447066770010877946714038878870684844236652911108145415287433637172303663163374749281546078725108219774099066420715251170684101509710396219275732861553282046604754891792001243217677644256732686412013648458393809432153367838129039716475116575876198238723533481006918033167634444206287395117410335523636068984024833349032985552445108609964411559365374911276056722864473284328430780817845036865275027365625245217420105896716570073435875815028283536348367280396206648301211336712217474736201901762963738620964855147432752202243602953610048737405182814719139785792159704612925644577990654897453577445655045670180519137742432517344826160131219229737105628783584896408492297362542485917339398782623444390151324941725697098171414535676090634925083746331685662883795881873041782110437117216203803296910917891520874082843876800559387311294769130643474223793973188626790502015220957177247541507989232749706633049862726170355675147470940120703350190120343368025036026071984610635056963116823732846756580514374507381282616561332454150904085576143447477984406332966604849462094077594675108258191061671248933180709900774135057105661462633424626488452727032995336116896202354726871104638274163621090335142800619958249465478195794153654603189441992545169343298021282699903056638169816688420836846762251967174501221441375485334841037906400844563848477296887271486993668433784196094930266294492700055831869183283594361785490566494923273087905697218471086216537960291289609400942893238203552080685069568828828305918371733736018818742148535734001261799065393386707169078881918038719147101543395611258614614003565070753956984419524660094204262548955230614194570034228415552623734936726208337064874557660241854030624866386259475921860574570617006175070883649894145728967937421231829907602301532093108094896626355780230172771371827161834575266074818169131686490858294935959923712247607922423743500381419351605436776456376415040829269908539886469437118333917148825931039414562409188826663108109249350333001433012870286666749610714984708864593746799036263708201791206979840929578190925262598671342087363643117598126954978116671155902835363449155462660767552488046878231169467810091809527234431979437342561651139949465468085481158324891856933822191229110659929538578155606915807241547439523428632812820157668008230463299721302595656291994551874849747762956201137920186248919936231293557356229894433163225955867384241765963382081728775094555369554820284096692549344054411215874808905523767901817278485032875776882828271015823730244957746926968578116916634656330760395422658075812413981036588696921084992518462617721315825025753925234405323356858088841940636617554406722901890961292206875277925500759452329862096698798633567318022476874890527372120142268983090055882785846876027814468430720632866758135129961398006963612178397358529253134215534417540619714989491811420281394314924323009252707427845412799512785508643840370836092576119912918756501805078610044111459229342986985729543901695288042404909219699649704686891326103558297159636835082300027531993258464680554296709911332488673840296733820251889491826172864478398020533465948344920604548543691745785742109728095048774761011389606546183784180517223989095217527723510924094079733104136999624680200609556609039184846678206558512377938007635613581097563522257290592685081665890161496080599072196663280493731097483894045773002469873615003365335850004158951411141154012005674838573016512139518504463741165883606034975619658835631557325258053790853248850428526195820199007409312285084369252314545461746039682643441264404995390643107986878778377166672365220861668289439947492121694055627793008874248426642484568697416141751788431019834812437054020325769010002205477185776389272396518159760308899304203700839420704444197061660457801435095767565127035889296553081309789046069472953957593657041440138933172779815923601987389049439085884016473982282118779978973028724301116701898651118214191538725405803428986717118962420355813042401051953318375825251012928257454713222183950358196873041639122992139009063889792468671014202600295147296678826177680956485205652725606864168972146565180885943553084737933329358883298582147977326275529888073869232985663884520965716434367076878350218043516812270513889866859491720589520330694437698134308653624470072580973422370038727231383417997244577966129535673967900717666230393237682071704540239585037215654479595004001136111123599685469364249612375888596192012253263117168171936931176712337722941214334888410170381949303394942078820099583338701578840158269011171321620185063672108985400595357691927576425489797730891730349206877110280292919818051537146067106679125977266233048836822107798586411814967926090771698693770161755420883204836333427865934043797322213449464405733913773429665147783849491377321902467141465950509734212347536880404030560364797345979181630310134087674887826887457796358766314405068740803911547436663977952973557569710467256748287543235917219470758546705060476613185198257824182040978133031409452962990391246065269868630324727815017397215161451816867361323555150480737545712530766626717475757319004460221321262617521980482042226888761878865511267604278025773879645476236009996983700070054675035809575976670170473530979899593184774726335294532048182664616103588452630760732112699560042718607362592238396111691114135658678508005047746396253881602598075574551588936055496520322022082978076863140334330062910647649371118373511945725535807740423607490050446970469453283484224354984149985637970880870648432997791444974414088162091876693831313057689579176762370212195849200481576029848113769820338022388698488238653086644310304966215920667562818560215783523849939480665944502958632267044661379177120190893762232694272789885306799923734841843088586317615732205566789805318076121854362168899894825109407455792589057112160177136915307286081394216711964004719124555078355732174782624243940442033002658888380936369833257517488848655388372972743993137280168041856001342404729718895683903867024232883202304269703027865844481273675587426242568002851085241845905570162205478662348583483381523229093450227505470198132377007746675042168259396603616203126266084287539660908006930537350512090988822866189431401365697410331725338150347705858292297776783657489015133284725498633858561167382347799537515752876786089353943290014901524540627011568517587610345804479684720265390439082095816383192822606065884891900860676350664411889022713709235418691427395585759971254394660678318189627338274532042713504155313877681994127230414395308179397965940171542844680641242387127101650155518115097176333138881615855657016313645457257253148674899053817911347685445365234995095189670614247922152991551393629730038959515846757139000953604834615311273226441632250458997161229020626178990493551961017455816708112678976051092819745966578795544313582959190443211497892337656891484867008632220513830341350272273103703349764976143946327113929018190756515055218475550241568058172283440572851172192101857466732000757138595234296577707251546067250070079728787412267500570063261385674304669715063494002068543733010829186085188341540889474937969535129593958169090351438713833278292988492445140426574597153517698601211270998204962353234028983113974490400490150875633292738823324113971250235190201096581531996625403349219572345997225297975170177518927476501938481242846152855401298758668295670339411875250928710856742563142012381291770763361517074287212472778591760202287135394427510624322619918946510758306465279759054580043087796141583010305797240555892244894541298886699631986987421300445105996292250282119088764474638354687240581279583152519759319101357704234775611994497448891796489982184591580706328501071651703984710087262954046888971477553559966100918458221070611573463691627345180513271002487589355124181541207983347660701179707058362060277246035304069213996936499787873035992418482983933437465798398661696656567363055466934287431765521274019944977740600030670211906897408016589053002679283474347643433816229710246655078262483089481601176278129663445079716673557231726526954822900224622764967478230343604075076993262290496891857442808428881728681072617178236650048718657361066633533002239530716946330881976905004594786719238086208084125076915280222798332522176932893683630599286276739260476797060826720296350079769773118408010517565031718782647285872063669816130185036607755956193568968798225256833122146697621561612001334208346624086354566875308386674324342272511276435943719856941683912925283302629357242121915381551567389200512048879739701318937813327695083066579739109566339971133590425911002984203262506765420937043756436802240134108586672538425909859203653305815548668052635067087406948684887228821866308489802342259465420255111852854323165628156169204631402337250910659937233150861770892391209505610284247951409013909844514889406152959287426709026622386144902621493141440478677056593854268973506217060925465402232261672633467317962688133296451442881590050146001189927948104632793507567145405491537735742962752049542950839023587064909590694673720764388441742613221472704755281412949824219702646308077777318595097243578656318682017477792568464794299652640588786076464669062663640804258591095340569261733301560729623725278572989071420250359584556230669609968815380807505402297188085998659768835526994494542675135940559278402787785601545548676395253357180250257699623213934207615658517090654808906477464858039099397023825257935022571340570657897920085603792286129323335086591674151507167012455035735779298623737045206936779696810756206333917621822192761715672134102771417898015808073735403955205831689744641668492693400296506835021494928332724003785938346133943454575698307466190363767989229823536445770942746341318950462020036861246157565435332016256498111930939105659918194539927497884342981924635618126880644126800982243625467615909069254571299635611263360774966845498363995560515482916566800784054073439552028538948097136027927882676951359551233796745186742406009566616173201897508609814171740883882231893294319493479241594976775903697058073068764592696237363261048884430562086424879260351998027102101411988179980901658953941160450321750276722842162098626582251467928773863717254571382615447344131047320015381835991621913085298418782429170760498610416524386355378605408970665695572445579802222209584427610572557916674649754478047279664664889456431343041408918001122250764996995194313606929439514178335024347466471024179458089318222027834312172884921437713831846235283921738254881947906330105343992686590607378282239348409020655934985553262753255052583085621339876020940841889222292282604636521053470236073800418327183124588225515360978256742298430450511693262739087278771174900587847148573357318521693444540016311011662202214230990918593406531238777016634585000579040293685032148170854585827408154554212157369466312827037573318498592841610369795226332948188369733508996516946349329310675485831518184495109141074848820020727158809105654926882558825204562899674833974524813420428455278198557781721023909033468996686555234274315132580950619655456031835240784078305314312164536450302802401277611710262188026788053612929511834974732923855227393234755380254905486363425095705397014777886756710335019004017050619452118136061782875510738328463140165873442326184276887405790617129685484963023759407279445395111385862659626173822920885053763388681636386639275836199433616227237919455098284707271669337789318790449256122436160779956894130952055655100034403290334280622126993616172268185625248691688782082856213506056864561912122789734686705596868294308880328156442220964266867623319396969002109434010878476491290620225099522989994317283846267069143781905555927313702071344208448784331642027560012817627781006535496376605402453099930159200001635072815161141274366190420210811177141888194054982409883611181276994162441153601777960903186123969517799717946034928061867413121389695897218007978647542768647256246823922896642618970271326658346535091104290359911310007268029022396942339517683805234083639490725098769067419552817103483941476116661443209510888350378389241057013100204475136471873984230132264027162833936523547197880117331805979076400173684555879822123119023370815783850199839101383855505747367075955725609738628837285028920904374566176033415795764907811062405327340533444518748126729503412608692489030549850421038970119758215272335151176184705629912176659117887619842363669165146544941995422384047853492648618952370806520687748037737702934840326549420737876649941159145145798017763090467109547066028777627019438942868294129209795274346471068645599534663914087581842887069494113704275796868715920446755095041808584536902067869566492904617660869262820399052600725743486743006144522887767492492487993942233444212525910229578578935267117865223586691693432062278277579038072382009039804944973370869580756053176465311068639931153278760804820561286773692840244192296725757872230751877674417335509267665530151873804707029677039076316494357920526951565720927352226671817825108016584285043857112854211174380962301157570147652032777467587686184601837269315938699018727393696689782296330966216284500192397252595529130441068287289528803371575565504547255857512383859231838478183592857188413173776959292243952220890849423343688977242667463123912351975654848958329210227682735736605360849263225496164279920777698363479616553182350831529541778473645213681936707306052999268094728820543008174089621220176450031851358288181674628479166111486959202098421887140703637609524566217731435069585663553080226350311227870433856155533991002695454837249985721877603694085383670005589815624665407078924767795726094340360972472834050432655124045542260858411241939696113186939187303992609988983869887185434776180275729223548255424842126772879788811155365989639213974959749503369308267574117546987662708084480402496224776359921200980765198867600079688284132561540902870279335082079435575585177828162689439412970713944750045772182133726464915692012247813694912091931044357682131769524317480742929639599016338671534886425229191426086613419098525640565683765072425321266385951840924088767251925044023657665588744379308060113247497295747480637729505371941293360021936466701343707006921992881102606630320687470558160943058772975381817070555705217422425448951109760798595943511558522686758107239004271981699817407675795999062087440884103288935225122811299979577981340991984598548658513063771640414648993235512459837869715117964559525821454614272356870595208530293654825945708078087392055747299460940729522894657659468273802537298507371736846758319102653498115187553383153933717661819928818410865987110203619015521117151062074401684772351173109198314803308501922079458460735196288215210419975272800272356341550472443638956004102882403043603354489197406150114676523711442687207043674116454329036465843803483803036895128978301095618083537285724369894742250873562931000358294168089077405407062558673565711595811608188131258733711460881896531577478745656765081831018839014274064117867460232151046960977793054315610665471059260833263450682784468279425496193793976221465763371084926960188950823510940772768977976133152196247401683686814615015329018178873755568014740651517489676071266073942124712457173209734084749125821402180602203059915557435303298478055070754988558481733290603792599604508039260779105965762349719391097846244019457080822964438441895273498731288608989061388741819148939001927683438207571333047004839379852713576934323992436127732100308785593688842877964717339919483590331787893543759531768455931114276772004933356162460118248431593140610404681407429666568709768587254959897530536965319090901306846456737291502825861691245786831155244657624002605381602938816018839474764756958528794747415898847623063932147426555341070111117578449726157088161950110830479439050545464837860703173081425389147912531551414833451627118163862050721799313952246194472320681125154733165233122311826632786474503512038976016577130771272710173202819433274295696075575639055518227588830981900374993418538071007730297270608441840821979806893590343379118938092887945472492797171028784412913225356219738729712030455632455583269974214194464716874127394777548940913695165506195620384228012706258176998739172981341427683593769346921910370862256517160387620281247834359356548433673033144980736129879470179544547353156850366347526438845061549422628129583645719782245963466343362224824839917948083993315735800526399925357226644478901871856546062444603396716916740795680524168690948030022491344588049769415878054193280151304744528587411320850036558813979472834748771063249315690438562977498906713330888199760320555957249094771616026837933878949312010165529150850830956043950862899642390618896815896445929914039739889233874114410449661231905942252880465591787930636259274653618525825465947048930641071243890527574517604043533578354294009950088963214277960829059411530430448451979609868947854150811692628654332758850824559673430962729283059476306671111372627131941494794644460178665811232511433508007263138466556449458233057858362684816812020103969113365200777018781730971025512975263078020568347663418888876207434854361761948601196357991659252887984021585009375053892444527791398373270639556204664827618686765011217529695394644881822402303021104152448515627369429290639978276856722732873618954192184590475771812240022535803927405715060978891057956343464713113568591431899559285384212061696141615357323009199995046938008156744848367329986278317646073051167637481703447321471013125584939624756069625228611718813202175644138832359216776962854506091183327001970580472050377021871105094905385673371435809836064749609086190907910793975348487423474296836148795985704372515094461689802030593836348421588741880219111843439193319728756508649580269685980533423432336505634772320806855105043040292217506401052592236450804348644180061200168934615380009719618758205316890511756232184971936263262717758974566630167516002429143889104389247264779936538931147996779188276586975006321132846809170886461834629116376701948617348599035460605400916809694049278079552940697454854831569996781939796850893504074305984943259687960033760102155909136380864129950077942926730829776600025925684260974006224607763028335802053040742278112759101649792032934881449537978006976239642329552854790047711276260168593503521674534976634296836429446112012979737147065213974131788494092192558598583007687062613462164464075080485670432364829677006778906707773288832337099863470416368436699769679179075191515348000711947018493701807793489240156366089961505089679770077225443168578497079436964376154122463564756138681322541656986281874732706269075258667030353196949382230086819617498055639285756498276607887279816924106692032553083418135091871873293183434597161953278970878144500609761844139188721628210431879358299118585181408062716154564967786237818318101790292627591419053212042198716374615317180192946417159367586813952572900949218941282529645331671255077765924806382234960481905342169213995483836890301858795878975684289608516174845557223254816427541891834718728467568106515815066846163326062188394014531317778283122250438750801337457120090189246882322010979913104393291721358029312389470780055423899162489792256336399506688870605895854396923869704696344525276892788648572504414552574087681645993407657646452299353034084303618180838774282725833358980228489955302695979121846317757679213426509804529655621435048886620990473081787414837276309932975129869369876095536877594877237992012047851237009964831782562595753387288034535827586477368953576755492652438328625983467562695444640774825837938627707320019606022329698565606292112087832203619347973227032107417985234656583058437379998535843685702719831849904419072364497539895414966449600872948012807468005258171853972865425416528117415185441920152615194518633588576929876310743663230218673081286943988056276852547524791303660350418150509640252894187944421008179408265354957053564393547724982415120330316657704262111049319789128973634639018527006883176879739985955473333332377680831589342030485195918864274661624793280616524036392691887517021100078329226427427576565399837456650686928298738742885792603624222457336459353022187356390511547832167961800094818982245726637831632839614994416237906483911534151532516014841408433043769853502778724917096180686139393792197520085994024892859722515076752875080661433373071729874975340221191689290337710301984581628151775833964468422618528842653499462359191162101214464279027138222230246257349366894572194172085519635821376039521084487012003132592211228860488890788005753808348977119936824569810341756480851559547609999260025687080211307062711698368020249369454587258341856530538973205088747681580127269271803842671780336840063520696182391561783686241288427949366679605038563165387843167370557475097803994281156124737708823510942887019404810131844049574043345193305171429126488296840802045757303530841617559765544091942260889515743288138002550106354984664568705867952166053275938674403803954213188591082469389274411395197063229566705472907037744755576114745991804473873365540093954456313174843010832555515410353521650512430152705662468415015010771884898030757266477598661933915697903074669909864180078275741996442783159860438324118430049923969374776371419826554333579772312669023685268422399295755463270964178197979483184701549761103456470066016140595635865236205793648646742257080632040329326719067987740455546168190228441826554500544827372663803533521451949343916275073613757132011801528257266953698395209597104827597467961917498014884320547100556151436885473775138716442192606345537758947701486086922306075080919632799283985720582156257383163698427493374916665605526722938050037175896646363416457877201330671362706512628811694473739553508110361307908752398520447135192253033990641556200806597067385461009135626462932651939010947803246196634188903850408466575875078313726777056197811417961199917998125147898937008028307675869620159357059162277112986176571135933901452708588334517494682434725944509823366856585377401772810746168424448019411608509428167730092375806782472775337205545141664167291433958055841130053762441875989223860341977057464544751400692387791289544851494120458660686171917037451670285725826763831431180987568863705199744897547414635473496287083193097523133874654778828836079992857004330701434250491761102691593790888399879009612869600502502114901707719918778766854010200168754228473943909121998625141510435022272848749107161144678050306368778150566800244142485902629187731640818314295859161620051695753024004487820471626572235759368832031062667966432514205997159713672816146216211882326096594798918988684564076543710300316597300256379722557951617631443714955791051337119000299399212755740306453281412627083441587715240605131991996689248052650874114886261277012474717280104397522563522473027299242821507397351808738858648454130210591143121538519749218506982383754613045990792880383324995964303500832945710612695466462869720956025777097743966973170463267597723911220761072452154404095536902037473445858468486475828888152350006350714827662981144178058872644807546761103469691422966708222658925498104397169608929804415929836680551849873708469088511427823704834367148827429882217055091066716833752790476042331261930425496639372658627747146811762702103196907331933971100578895868840678326773643651696884032517630228801663777674802763191727987018364678798589887459161140820259604703020971645130318513262431025653581225535916694282032896039649143127903132733474334740563725180573505020909880004346766399006326814260688429515308208419220511049208749410740513541194238647611976666157628326000240499159849136987499414265197590496490683012556332271194213271114022318391056793179357543952941303480122902897720397114209629863356933435445180488797946077305407354724177633628110705223759377515773513418677497610249338970901057944371846211801299146591489244632214229533729836726444606332458106647560286326330016126127530798006983935445972063941259149184521877681730801000716084131491181486114876879869318155162188797829039873094818334327371040473782126003047189592270674974580856887109698719526577613944830835055193453745110806362884290665873885898297816167149935366037805486293352528788299649720730166990910784142268971300824354160826326099928404141455910165466273936658580969180362947194584882107515180416794622151637086395626743831051215183200590830261060114833444047143965961959002551577269913283049684575612149976551025842389457018139327181906255310968094544199658886535521110012456140789165693674310829295597369048873775210974670223729133770565310377710510239759652229667140254432755220235344971199937830067647957652008547223895397448091634670587083361852778244089056914607305511725713086564994417101771183350027302768216520423348467040985338304169670827972222586442586747346736673200542375826270990068245068069780238651140169746025470273969163130417009271190192445972266650030734728542717136700572823864978517275796679156297511161457741515056789952022093044560037850894820031746561492266560738033402981010574622169725339791229510830237599154584313041705001710951459248875366275641114169436685518905214421527385485726224579150809297551300925035493751803639493464741202929190119575429341071845233004745306525832900881417333717225753739216362295515676346759419169881333995711544731007877761627791126425800746336002620933045137014268986615681108196821587820000399350576652567986454278847982499159493571091984679244358897900854032319312006473718047950711539341922403321674436197131952902299805221460602820274013846317344457831272590772796678137596659771965942533098405073835917668495124507815409903086653490642055289852870187965585932054385860224216909494505380158661922578471016364534269834925993738098570714701694183900025372889084680646135414479725673455685212410796788794443349179283304349903258959269377441250245996092416257944202368272203182481250945572658285052893805144910410540950351354948360126609596022577194490292210690774456822610355938559915731365015279191461092711116243055645439950788766741839876593135834432914452440571093224095083740508636723631785172650172021669260662722995114991218522027794215905628932869360375514803919017079986077157311968218580357420146820869696593751980668683166497735012276146333411032649864688169064996339114336527207876790325682450732378363278263371336236909015144800917610804644433186319004229673871307728821908112669125672050692461156883017697786555545043569719206973511638997401154472122942259218478244467564233878340918586196674601202910632317573978512831907910051908813293135452701089738682943362012194294758303384357237948826939854368857952192128373366281181257534319941791144015624897695939808012858285748711685822730746796037813226127751473034370532818754321789675163570681608860751929859995178361676558945691625986642334922244822653075069507128561817257119036262219575945186728509713202106630998340656095120105882437303265164993566441513883734212712470327828408289345010087905565754620613690034218471267916000621350589150970791864553591680908237501268356977572527846962999315997230802878662482222014593986879927073774065937454362537457165186746512302185652924619798590109592532271750366316989872515025114400835964321084554710957248733217492854769164986752540078905193542186810178846768965236286979903228852855418236053393265283171185165375911609029239692824378643426625501047372865777401978912399750129441866336395136076038158098383321544209976823726489283281193016391949905661413351022353892188803571855693117877878769952134418763115636711738092219765933590036716795667209798498091948725842918603301075760171167978412699100936656616854585270841985318785393502895310643401776850395754940020716816134862280718225513409014438075667119565229274406364971927665470673290359679991261725225545643105600731006876494694237366472812670949792917580697677698583900722742221029735158349558134581717501617277950204334331677560316205379858328624518668825130264789159829065867500046973691285020235283647144053455979657441373758537640691120567333986886597425944819868904565798924586812759311036811458518861200213462309158277742604221151476969327925511475003939512758893993480153793907887136671706839148897266184646533416070927877127943276725042974242976877273217076817834117512319890226126224843110398452273822668621843627346069271844588283359917168506534177610034791228501899545505338551791133646834468838840527773406833940287631569513084633492744389437850958679394735899178814153678856007476368997936340908413110264828735208225295906934903785858420995123675709096932135727907149976665683905662199936676698290043218340010416869367171411584514872173356218222146236026394348786774025916724615505270588587096727241467056699864690145903816170685744154863857668104240720974413958511986731834272342350632153456549722687880355364533292722927010477341014589597322455461437329567311387983337116810280194426932773780060801415108536111783818219332525569425667702767644269689786267069701283678583618208795004180081730263001698220342259163989964576734983453521874434816691953588985209868262055016973683123803151253959888144499062642331443905370277471025844204443101947201135037271873524975474544389614813772795548585954404738956990875395734454785898027642043346113603860600869945503586302346708444794050398834936732138393280004639806303507245477756332624350036582292454684247704328415155597203184160225653017383209920424478796317631864587769729599778129542213993113323391312369833603891723060079255452801596297195664328321207897310613035222573372608472098198949159470885089854175713545887530222267242426103596923961541253750393643045079216723267656312860577376641162275758498606244512942478964939705032611305812143683724801981635928662342544895511990463586564015447335752981553348388275549523749500681902662823492311081137343486763966904409508564553188232385041034788054255018766744261455978240627418713992755187571188911227890990880298832897738003439644540390202991710729419794415935780006391821791175354188863867717916588866776478726792291708313711126784137936356615687297899736431150369899424447394259674807076408430335327760572903470201102188117151578009241491841956553468828430072822997694640884820363326443454869776994365700100768851570076214715859837593910972089181606609191696651350821307937147327634352095950893716133160561947971522816580840616895946695586544344410609732672498200822848566510529256403827290776873824165460699481370124195693905452840911498918978625182403045343563364399214339931990051736194073214240847949069414826780755980138886039720926599530099257862226152711050700887178760793683771404009619652070276764908705676988319729985003685012289417169700186762986626179511361674063061137270231963429594757176450485979259755066570199894553336138195411293940174147778954533484880414663060713929900565562806853015292914804068626961498045071719644124090362453855604624842766319580621863951418442004545096427621589981673686256562472087789279516248455413041643978049044000236946912917540171406046922705027576675786706246134437399348786077099895012804014417554283480544952223054404684900457956259579690445798827286219353546665430829835873535588129576539902992576718782473950008578515529436930617099777155482148913864299705673595151301618620501693215954453338321824539760117265866257500404437910332120068446086210415810603135825294261171908007897072779067213886830288172980828708294272653568769764568549166622200339829061220925019636492451509791074762885460501126564678954830428459988357952368045481121554955963104325659153021205194794488658160506013523750627696213239460453114991168259982565661134951917841995818208517929679199517058720155671413102184067071898821895843634287383911509362948069385267018177907189073508271633381397284881735481730799013679717567958160635924453242592201467391352901275801252579661984945466978785222984055617620431346837709082624833529683218335772621937935422006126429021505151228082073951664828059809632862502657598806954053177694231462976610220431773613886367011323497983822523560711866317853001543230929315496379185091408648843838048164028869969576038111469273287328665252099429914559093420418952698342279510344538963403383066824798657883750452386823335119144590256382210426467842840293907250431981190194607074802696401729134489668726275083694053757898331703052992312942573593406408096482136460491180282683199319149138643456014808015565752664260689141077554346764744845776184626716508290293737927443322090585623568134729675587253352066706831427552539090336605226656132341579307252058488704819428967627700172009968530644838787991183232166411935142230840037802180027781939030547836703293181775002196461079932244609021693149736641204799702984833369284483585861195352396469745423380991503647172259819718686952099124664346027421502719341262921964781861663082141009194528952676629090623875949632429586752263109235262095689892300852721901653874372762719184646208012275621535091731769868679055750935768291817782924101619011221729467504393965915022005928443705115862708436688485267786253600279915130553058657649646006322471791461583918827272214948075613083694840999194348126564939678858937738521287925367221024953693570207903981688948831250949283486121352763185061220913093901781394182423284407939737966575596378310136277279021083264281477330200178963021812459755401787261187373839330791362088423012125267661813407046275511358478072186483199467655974307199104664765876401197213874073071961218823944490735625944835527609953500627071165690133599360046911369803501902652407164886412797732559387586534928136813807730417646794584323644525056511506123991111347305598786964289543046160630230092036809094204338827577717570255015221275653112437075598191993329589690430485630657207507878151509733334495179801658958981933384021030184865903632021469971743357259424413323283265588927889780180715808184831149412817023050129041324992303906053803354515563940013779844527222960979152751412443384931805460085789657809073696407950231772157148810910042898673115475556843045192744944163881759526738827303878667081912275278262785546154130817097194553167298620537047249339006573348058577677820159065507798831946369363947885267159566968209554134251268238824962642956834281306327771549420742909630818885787187583666795369263595918131417997637454901033832731789447451876422874447753993202479624284287102837994208312986304152725838870501217470397509425423326183860642479672743660214106739355026172228641523377551131172345039844618106715398082421959858087226465978136834804661596455476608967411245482579927399732674033212273746900114407009575674495839199703633016337596898201477643445611429398159228703870403042883600298307009146954830371108218340723264289088414922760246344856209450498614758344964475316961134298933579852184854029481883970754900736720781256320162739345895477251606882861667814472306936580263567864596436836005110438492938035511850723276732092127371193670646414792847874377989779749194839343904979381525091637833328036581014867874904593305144121171747345902231991914191983115015715881448242997638914662203526536612166636940607001309539005670155217271654622212931154417394866406830646438368609126100047371955114346294193256924926953003173800621331692967803156566289533437816146481732501407531267397965722742135136988872850731955901544547572777264978265040369148645675911651632027839377934793178635592816873805626783642794080183035873943555990186864231211899914937692963684701963237969386662613913368616792219272049255151199735919582142746255741071051938996727747339040678877772955933683081227882627743699516841974863615098213002182504897355550925538493290423489543261991878212748048876614634655580675570364235770590015730762279496854188110545739879335163450719144836390602165645926728288824142377564813251859072716855684952067609330074258131329819623410911741814129126866282664278507790007394299100248841645476105615921442117277212181788777779315640697340222776544936762402331665020665389015578773758252202020969908558467173438285941278380032060317485551703622786532726478492805556705157677438528599597078616149551873802377713907372211041473482867569614569981124923897043938794384146568198080619218840276549294174221980041803575849510091029661787146832859387019346003650881645378132823528568788431395047888327631414561297754194509228378355763645986137245102979357015352852598461647382821463857923209434233521936119281035411812715643946480430254099989471662376638594112047473195400877396353120668018694098321150402672765907268132585043436090709968521736669198548642564958726023216781446462486984501391094995248088372391764505869112414755121538003959028473328908177956713614894673848606557387515051142292721780049400894753595835286131105958261114856171994142301068511922996044500899283540061453579862059113216194678071712100782038406371730485122376946491567388107520229128928210858484754746329675695070903912086216644861455760880269537275743695457867722545649522078277600098430702735264439890926198224630423260886771650075232170435127885273023332356073542518964686010081642981438176319347934275629661597481280732101063137960384047959266562624320421723402966185744824278861032034098849730630588544145428990651549113686611778878025225199565403606689669452793478406812934307519022756760215643663727158590742990123509309278548480168739169469191751021939767502960728728910082832489661514303552240457208092458752774415981010738219996614461028666112450305098450745790517586109269600096413230754661402540500289038044773903944236368156820163187956611732051150771718912242304186005990662559079315806659373794588694718440508594281975254026162518712685788162388031435949860344059995221864250515588669209731318840547483922259815325208364601716533997674479822234793902756725815836977606936835162945116306792946067382055139797296505299045888950589789655026524619430822737689761015628288224640905350060816220160554088932368123698212847354411364072776580562652020625735619344545986987769423037338865585299584166014738253189022857738777418583868131577054197398148859334852029281878936863494549526331373391156074039321695938969717920447735570777259573863107262852397766270788809370345413939282394871249873688634428154706487450539225110502429262642202662853231322336389769021697101139245446281808960669789658029597177722260252224437061272630199857535522857431510368818384095509258574756837411634338573652046942638703340340614809856069883133498763442477591025893673113689473861052743529299306721137499406445493375737896094376265331272815862061194083954906294178822833859515664211912692160221022949984975140460750923498374352180751482176111200568173531434354548463184071064421637768129371122754712312922763962519405914351398596595726227401976727756006992812588688515646176147999986087099916893263273972551348019350923530588753111962959033938149547773104925625070628587774803717501916899376261587527026724597167586808624468458084282804242908737855694974452197474334134344408137572509802694958828060958210852764673781752887641859521737721080310730717607591716157043323167601199019411660247276778452711569129407651849881186749133250514698192098879856725617684177478932698579330546117687086733606783358275449653607670428548872016100061619550651212266465035066348248627042273132527751664266641590632438605301233470081375334345831794070814296710130708521979725231031087144812309260986485782327350100914816770108545431263217467848382259210629064322855995653957397503516076416377553597782579190883100974217249684647070872111980868149254380056237129130524481496176515758759782188418964455625652405528572757986909487214372858618752649645656401342939726630477793979303799897664435957352384792874129426129896587301444997434920130277703487075702872219016662088810421657687433891865698280235689060839551278729303101750167401970831124131208866541252367583208969202761971038996747905237306512189964225382750226407573206559955052061295112919407287292784191087264242621291123506301466440866297419143208181697727458999593897734528117589424401863909504743670294035885063703794759139498907619518273590753225631242225058114684823404035159283224207182588324292545516437289166179774249444456085227504889798738827459837074934507302956872852553974120341726897603686653298740140740898516697341479967298429559556166671353189836581647486828749959326726388786259134106979621506466340472983962953539269591470861712017123077510648489247967765265922866932825249130087878204397595093998380524430646466052438427306827328133537482464939198872889744302200193992286367559310436753685851005408346535831870661852470154030587755449174964855155044697181892040184854845208431414764248375428907370351399467726132767274381065081090366549506097193202566042836853957437012803445252871628312066679260108462892185457073266235092170683175780168848941924853459395823671194962735295756938976167919009037775742763565946592715935653131680587622702969086005695968884732977267978716982357353556941548743481754149378158839045579424477791183645599496048269602598565831973289388761755007331565930765663133520510182153906467667090362073380094724553504222669984641768892885251682778590485350487482496849410510301294897491670789172260554726798575534331860363136820038431589513210683875233004622149917555281095620042660522828741274729353937255268967702842135817596048671988650372761736377789715397296888534851202695611019763766087947343316785812078539720182252918402043509220279586131715935563405301282678492432898874207468906783791878425866073175195000281229827693837961916014065184991390079042873538332114442094784670921279831285664577514666329580174430208634722619649437318938898148858244367458201281442950010122856278882752784997047555108221019429595917282980866330980018568725054192673498731563805970388566597111282335970607093386414686299589629358576644090420225164506222911574351615921340070088881192421873857304527722008176284826930434521392483166066564016489042265753503076301306867657991912159736335062249644554764672173830042461168171284189122625295259032386644691068819738865741792297143169943578608161982152051261277767073251996392566565388746606974935005940292461118167917109268938823369000399589178063934089579587700560577205873582947693217817708392888881933639431432236858621337707999072452269835686022802424731818912313360414020258467149280694715932584392784961323697618015412098905890107343286988014971945236434275592575281755931712688294659617656021156990636771267746639832921762761201460329937886999281255751836129676745030161411088911109758132547876260514474598219312223290848014417204860621248348421742116108475136638715951973748176973442084978164553863206648687882599525130948991186674648416275089233925323282987519195982904854172401430339198764462244768804518434104696918492690330904510366140858168465859416214745790670134032818001743862389003663765821437395033757042252277399352637623794379665594561666777993141554349360375743299734135568237666379951491109646164508942099658927634992140886325921663995198384374536691550583108450835759279219676431195154618257449439625559656717057224475631902776849772879009073873027391326902911543224078427265114043803423959979967132733357737824843936276732070127361414573503514396670294749236754327007634423765933274917082954284680801530685998063213819006491861939875365326479997064458618824919643140999097669958178389333814263498356177370793370206633399718606858212003685014976926781542588171212822519426986711910151520298519428363407935834649661788808431063112183171213310702229567717414776917370485408342969925985319175941938750930275668325716613781496267664553740092912612271290802888565469995185537733054077364231732073275482595853899941268933793478627854930445881251781579828061231401333871383727767818181120496279007745380054077282487199501009273800913118643231669283469501027127500235262162058009134894773179850723507185934484740512221542650766687981694204415012649497294080020299849582293265377861307577239485954960444340726945770005307556668013044186289559881049677038414955953240900790105873667905722490186585864567641693515317703661203462316540414311495623683052982374362560421384721832699809502696525589886923906874693307744422142618734896113531849284973240964627755506286467542074337160455437221656178415216579600177247295071768622804746465478869381280465343678105919717790050646900042737878641425651727613036047179411227915945659647985846669867236250432206016334576350020752803794270856386001445477724112944232783029663424500434395252894809177594248231786042838699190325476650239671457133284273549438840286104659252088226612434289198997815973807688363569155468988918726497050377328795014489142890826551630760524205331848453900225980166916548146000652658045725805510410894400527371669781099589812547804616024682264887050774059171438628125580820192777422876774741179751888092830772061019511337955962921083513414575198464784110613718855974637745830846797149979020764675209859417600512692762693861874850720055659661552115834151418218079363738165619407118858429222661740456529233209631850536093489600653942131830978610528383180802801729545408662420816118652461417569221944425780743522470807443125518373678550787180031476185574109446624838200555021989470965007492770192215017977256637093623538868722721519796124231036113244808378351315734868980148436973960917675972748778277255437354792609290179008508583568028228543415867581221273200744830719203523062152153795015779149178355170906495140001872296470712375856987508380037610451299931156626926269658428738475502392121632946632451857648530002739483198771514974576783044335949648214436337081305328751059517056226986818152036737351838135058260104267037077447948953377833264545709420196266596747356647933417390979374582590097552122804688938370688779098051058029703143732639418371724664418514582216533019402253553009991218194861777811861959990067463500701350720951416291444975665131857406279939916258581173163622803180241150748134903281426611213627347099897927918101791552048611271572681341435388550631792544718527731540797993302578543960978365722038460860159310954352516767853057745893751420580376982511118295153764407939998389426852448017432612846671386072722649129599922091462567663316554940356247311793516331449540402153262426163058863435376547246189999801651358540989451538267580482592539209477409825803082507599988800221054372243735094451558395414808407356457703593448794280998716952683191571994053653080128681883222402384661178917033623322143705923374852226300868490647456816462970323580859591890940964781942319889431617286394687811576390806450526407410412855802550547645632551329014566351133611304593045005405186935330317417478340875695540305098466095822003047227797389239406460972969377860260910097732137234716942637439918059961766556566288232098143570533520563115806388213534478021858307766632335336063849231352900330150765782647873323656056949661273724865082508889915257035452100378643062276412596820743660251480403903721998468432725470939322677412169921597019715119828046297200782908873132428011326534356816443082659239081605128174022868939673974767196119192218340760503292181468251541948467272433834678046829948858500422167344863466380780651268336059515538929431125370865971313876324800348678154155929626814510230269113390637125935292239279342076737548761278916777607982103299622485284796927569171088222655621480750136059904037820590803095873048023977189296827831526483720935278843505280561097685986789540633357132484435774362184526449847840447559844545237770390324535364679117641431296946108633892525984107527254398715120178753847137621727849629635520251163667399010928397767269917467770963108960951718444456709379018561266058838676486067270872625867734338438854575538150247701965204687296980188863539178728476751909534275917805954912091672328607872318218731017265483814785114808443127904620849049012232145047716432673302869965478177955437684324821564872682693855165579430622122205931393416559664128556484923612914912254822382684510742641804542343385331460035086858170039346647917248390276701181271711864961050873919107751581644450350772229119443768403482446396113221328477889837804780049229459500342764477081791813552320549000833828668218422865080709047388582991019994489792529063322121046741110391171329473135877440911220786109036781158365599847973311859146776073238707236524706477337826490340298392469852509754189147302268399456603406996742758935891244755547610132603534794393080327527861732319162185137021381606442689160715988224262111583869904227561220377622440473616885327029832955537524510526732990260923979782504407867469059846772308587515612724711034629778827022596495133747546906458067648657502394258663904405136607827392738663986111677084002093155176476728859681431403378460914174648718989856247290006231913121696438202276340565533385509414767964740623709109137109136705451632807894134703417012561419773209167557845018348727608517433726844406361129024029880641378852161632398481475986022559595823119086175329263455514875057811366875647993380063166238495358123169115727190789472001586748188088753331626564531270556752944885356044461139571785715049737850273071503599542393344413297692351026078251184751457973742254170095096837848464023887849373216716852532189267686830141964352600276273311315542399367623627187302015899261712258353051990655552289810308390071722294411334858665876702007355682497884451718759169015816225072504946212840852459759311741691045354524319046345806832792211317795735250821668659295415191998057031745831192014252218191043400270822485610792621566102863357648899944176905560647704642471656329063755657074576966551132980030529547187208716830148201399125708163966918602741919961240621766956290935221167089580469471726202459174515960681810052923189182529319484003304314856054418900542671539124638147418051696886746927480712732700525332757299341803606340486427745466792448773199795446532804846493186049933210908290663165582033437201030780773292195431597312364475417437506055059433530499467358752340152732345047931344565581588667809521391639512853921715649185789051847666934158640788710098530173731307205939629119056703389234667286867281016823816650637969580182389188815164496362656572204297763976909154015322163107982057285134168880227935116516668968906398733219664191044317378766680945930958208587270335534761390230647351660123987133256715386220026874119842372800826165858173543519826618869989129654312646420966325300202718154921139738379494664394010904572745567678849869869563432557910455147251030632352227639718328391927707051318046581898504146779351340605897772866265136897384182674541575727566273603435478259458717814604981918332359632000534605398511277024270451105786726069854394524192651960935994768955019120108537971254393598511151116796604631719406659919264298109345986101568115638061310802969973553898272199755662724571953720045668022965394739510157515678837087880620941500126135594417066883230838979286262466175964287976456300952492970850200724689770002359581370603875752975408175338122646823011954497002354948853291180985360993379529846698428863380059510103028497909586671706733949815450710119958680359154578361431578921849814680756015156029049462194775728466158646523770030902675943265685687529708053315539664128788126012431198353602790193654279910041995794943939562454634244749147943716152766997214229770159929901058612418515793423186283156755063443969490279721423536731780254110850625201017351020616705404554203841444425905517289274581999387475641628164751467277584942041472737615795381851751373123921922607410291602788775160317157805395347853128070966466594104814194294671964192698130696758751792498293110902815916399229299567659958722803052104991511755986030211702670301294183618949855758414803356358834965076968714158704143887917656587590811600322967298888528404660087694325976562071677728237490234877756925770167057792680917860897280568483004874008675068865535639548814438988458977653039540901489613205751767668425814202815778074125191258718639331623920063576305037012644234736188057693926569925419665096656488391220297579611285608086373431107704352741337096893768105545890558993018636032264091207441390092163115292454570845771907724307171585685405027918295325984781160658798578284609309325100828028867474862767722304382885997574333070350320486991960728365961643246385820364396347787934225474297612627464819228485310918254404525372765649025778334380113685308867814104000801386727385669869760317234580372935378021757705380734183465673195332210232528634252551391941966594067179038616374946832859913936096243736981859360864598743893551135472961263664048789020270834099545243695825628144670441670474848632473759331605389851171480547010632520422434112738822259506461738858447138632582205362363356991776905295715110532638018592345710875556923852965682018740289145833098492240044731869356085776398716951041424693679486503527115872763385695852761178756447758875166038556604134524084979692334153559804800918057033828739442454879769422257313348473274234486133626430935940513850825946800518775432615473671594166221642271339196587013102982975290415864615176198391162017932774562832013356698044680071678493125898106224923558591827823815599041282025224546633880693971054796431046830066914768119834713778177473792058669572361397360164963493975076445526822610848162581553805838735841808283098220494856541218296991745741316072023991779547215320121597250069109707721094422839623405770442577091649629334770029469350801385070064126727968722481968452965687262506492244189770747429017988156820593931866908436426791893285061390345921472787382836613667455926558765736504040686938988111548859154136558354792218813217623801422939779765479762435575753779583549457933566779906833494216870852662060939150223421394282491341233719730068430494489310338918717078697905833537425129303976757961150286531470007832500151179223865418877711343724763943901425804171895112465858908771283361835081754516343807229479664202998775727431600305634543025068242279959089732392727903387008336663981646820592359292642979770389007418887748026722681868682414466412422190466930782116495266818879473995419423474271716973039025920222350904946657745368529329034999358861788202210294585335930571990427986909161513257448636547093907506770513243043639860963979853650888967174618075661029485739710576977572074685824636407577383603173292586365641146279664607687756632211783377952199804241021609085643858615857955649597097519524803195442659277693528186528021202956107924237488067819939059666618282108266811416440560949295156831980375691029147032060756743464289029261252116417062364381691942390419055985996888551585771209128654101978968313615963357953260897722527507110346523817582844800141055178047306481323740540770012932265502512624277061077041469689465488750245103268894135316701165025700658959729148565043438155245273097005287375812489369653410677597563633448571635326153344708766439573410019293577739338007557706611466958005752564794879179439521575455356715125738375101509056271924064197281386022907318918337483938406436848981514181824927224359578396120063320860679275989451795083167524421545893020427638041233953836775673201851358517969420784572107864162762604567249235586052796662653677354851085764867522348270210488827251512898203027671136703362032727979351543370243417976858180980787089102858397958685435089412505692482623920224299930572535298825348922837080397828854178886256718769251544448961809527584566725764595000894821308692343686335580737442699040739942762272190142700709798508914976173543555314227947927457802049746045919191264596336960691370874012097683395239885810824307471961735884071488535511547413687582025122806448530450945244197041215622295164552973076842835450466918214382152753913896884298330003789477081629693763346360989633685645728194798863251170074306486102439087187560891159598150262320331740438059920963645278176216157743228028275808339115828772247331202174795043801243636868202136354651049348861094168486063240793842088896883900557827144812550693088497983306002390845903071814611631062902990963311058351869864253215285504155856872312591137376696598981407865212984223342688292079636090102777893254369628633010000300239164986419906515007299221288190594610256674096881868176030607696597805869743180501690388846078830746644833926332421421312835104758962855699751704542641264685394933268222928110257931765968351673407033113778783997429875802221798990296897538521987860902784804085503753490160414681504430425975054767668416472259969090991987414429500863760085439575059999146381351028519765568190094629037258236426472726870186876719094788911303370354899917952579763850117666459798599547321970240677936287714949278223790962349910838260710038142412400548096081245419814944184093819607826521466650607730242288759242405676311932397998640832480350777021266250153039305125871146264069783743231226930659024232766737199283222377609284408437455381236372581889992650802087297719737982568018281415462993181318010599523466336771934509221231818761198980098841731114134944116469685584283147880302242383072913175444756062147575740503492319649580782661272493078384667759809649163069810475002871762357737957915913481778435161180499153376843616271110429192658391212945238014896066453803179411810928133576114770043834933143144688082100970793845897491792117509539223703005014908167631732380400285726089106493270813693506485218112593002768365362399833763171371916935054709998142806955983165261237418719034526208825257116728709559174053770067122737715788922896266173028244205512821170020935948330655935053698889631731750927803337362727253378081891046303968586530350099701782810107099487036952077784795403042825876497257731526114115905533386167170277444273993376945503887455758593801202462645772877090357548810776095884931452921294837335595273184564008820345734669803625507863784103450023634872556099932970301839222417094985215023148899085288300697735641839842542536497982948815424769839782876636084537389740166793764250245181662506485384655478164608982382547563230065235406162320390673868984389610571701355276625208984561204917342655978684688873975624745231612281692648449400583655065125217957024150989572883219359598954579204771228264313688925842954110275893512784596448720315349209743964372873678133867491733458494879249083527620258197827610381320590037653510891011821799802741187792299999507559692589431674948444359472467075127794313039024109093402986043648480809913197794031114247802187861717103181637084096271071224062328134276285280473505861536308746423060808441607313688968313973160548021238016400132117446716244450953880892525854816306003983863487963376851040685971555110569126885464781467310032161589080999076044014532416261799763124121537827954740437186338322112855511750031287666739116680028151335856759948979050154483472416528843660286583285481599107497920269596047492944549336224105701051118673286594737227585781223197997665372284033016298743059494157721523107312393299195424446247692110938367216199186198174518494086977075775906375265511590757826823493916681271614970523722552222021260375355073855339474655343947010934548483968965551219632807728020219339233510571790820855036364295673338960408705746844648754215433054214568546016256595680623604773783756595111468249339382223631927813697033309313984862461827800252322512024982032568716516787070284927356428745153276930330455200762281919252484861274985514723803593154575420037273991360289745836502064451242477023664573410989481909609284512631016361889039980134935011199871552201681905742706085131594768648986535749727780965988781156421576156679206205796897363285285595756922498114119848176671863821548294876389525770211031555151295113866849441104791666777853908107316763285178451009510862937841657561579598723487722824969484992260650763193579665944153574954619544972659822026128328067282717720115552872286199083260256698025230057642757327851721995359570870179644400102809706804933193470216996426753829110059785315556711920440473630341280511866279036919809136984229025396338823831808248170760079157730575553413387755071096884582530318114127967131625928268419377988685938870068637248261227705960721121327431783148857032733059741257754721160785458853535320026458844582194326396382241109069808589567099840533762533726835353402116855354269353305094583044224376121324442362470373927181721931828793367539531084505127454654999284432400435369988126036481672630225975431628191562494231835503109598480605562831453245896304882855146436131195811437333335463216277511245699278157921504336603210771582124035540029753056816872820816263414406244218587145861703093168325113823135912227306712623560406721094318542741171269302162978784066985330800354459466987324576895851751735278476741412565205393023711944877740927031769602722686862617874565369546421277077137785242067666121754216303207044665857993495747025520725770364509277095415307290784297435610236377571581702909911433813543945161351199894869240843679221456184078004394004058205532591414474530839876933568050650910895391910462041180139881863818875216083616645461088415278016635449356565655651541937703594234349034934178728203025575814305670463943349016092183497075470073305848259843742084815272854177472120244980855885237774097007675748310220275202694070596643929690044165973421400229812437605502725098961052193083652361204228644163784570950085671792810633920335779066740397046616102944033722044551315810716145694937052384055448498601441192292614324922512912972932967827072592183738189644637794365955004725036893638777766200284634939686191875681140512696951960719823772102778280109015153673858129159617216411491587872688352533189316445386278040452585679805993113145379916621034962594558680083742020541054924384095377110135168296754126537731854706918894989759669511956974067392639858565159047466537258064227352670620381883382456955002036789779972139474389021987853621029097110252150024752615691806794700700796812548726055337750794533630974096585227431306403011291271405065949818373931908719541700657202288201492323285955677434520354712226832895114444709372676620308279737815009266394833843983378216114428013947993686267998846679613087501649763478575207857089454112894119735765890217791065769621281816663222987020419598869657639108760764413552584346393987821610994185576592102253332122635821370300665811909266225159082705536493848982912214946521305159612618699361782988261639932752787281304386693829208031324893638653712501828256750175808261490189041407594346660426726925710173879024514289449899384038525967762130627792871516785468878048691088801339452073584894646261205660023273094601623194138663268715739658002633919608947674202230687933930845228189207307254254161466901913862861624862672502501715634182760895808351350578463460535667841046337650500457077242474660364669238757701332546212619649921826619717782458530467080816685620259030838604162545766932775318918722880838823782075352024737461332867217855869501710764285435315841747522677166361844938957740653375135421024017688704644987950171533554340593346872792119964740340175766246725865761764509751744831323222737449309818247257033434464143566372434338362035113085386647152228166438763289838296129931187333807111143888331699624961766311554486131617154391424877222357181934297224977548181427946522260431841137243148811315898474908688881821216812098260587872585401238733324177292261005916795712004637737036158297994546268568765493740824099934263830315201307066841775283993187114768888578747228479291049854448891445020318899665940757067808157195747530877224462477317245272854954417962920628552156705837871995138046665204096728547511386699705750231269941318219035479880241436610140498372204830175841116302095496012046933581120050583003965657387737234014933641884975743182024676729552829345814697760924386216600930777820899052460471115644710184889131082504366662393547647914731074689960335332272201884822272895769862976160983386263483583818868833433536226138975560739648095474445621301106165406339249342037375602193513777395065544728440884792101178782491422067854517888931531422569129517811157787306921438962443760986335861495810726044297972799408301291712705019284218661396692660761081538958714968878825600672800537726520836213332456458609056023110825713580194520457123472434228445621696188196412927719136732956034934537656311718685216106941573584611794839162626215140869327107337310972200893121679340538569260227242611355640345721573524568560229271398768186494277494677427360774746374881270544437225984100923285904276465908596347609461004900959863438006729029181999484574451983505583298563240631788593525850837876933567115145303409647773067402832125579532044332282308768603572400795002869886052847784718139705074965604266166078125233441102345750089650559348142488777968954054832204167724637496983053308132932224284662843768089640501382248852612688608220578930999748407230926767354531369121840909572302154951416087469307399012651773021195973023262378913043501944855798426963866755595118907625104705720266812568232515195037370211721047764994490458242086775399081063917395232780950517417206660572904023852181960444682603180627120567269406477303216883424125837798037352045657217458889832313421165037588213396322238713619627690596088048626811850481682279499992689804940071961216419518579434033717762653721422156811503237472601996534802877386264979047271336763185113571041395347896085764943088318668234974676168604135438579222484299081244010708930467989132040964611073302186144920823411032356345674369083788629626632021041794947749551795885632048350760299918911002859774752029820984389791564853793960960561419194252137092250799682880768967240071476346330221071477444723413292437590241175223817005869514573888653958076873724138157219439595455818996127764228121617238512474618797230319671854232715658394433836687397215673347798477798365796686425072800044239680618297262878632042805435998930212732799046223702385879026667182438015467517104899172288478600424434551616435225201051324633876127023990468072447351126210628274859421057023893422622650707071666562868887652298505946648837505631713321299619339630455916636226192841413734202606672485894904311465990033419058727143600996866556755458061133520731744055283898420747409097356150731997622858266264833326803558341128190141519109744474849909598004991733781476227779591397871171634594978162964198281717081835110622891243569647584913364251217455756424088755537287194814973728797898208609242092189994540770834728915876953359166397459045660317896162175893823910972689753744392710319239227248233633953417364956772552998646393852816035498082173953817023875567441627428251894350888488887670044815097153010380617409215724853684777170475049308844636742425538533246706853913415501489347162520489230874772174136105313922825448692893569607775202058854265598320663463183169309993013427608817273321807418370998371144618580885204884981973422793464156450706254100441021154629485529428624453754818879093160671222939652136866590703037981907614260417295267223037643289908826254196004432447504955193292728360348101909060020606515875329359354950469247368315862271097637011428643884781935448666630041978556508659021876077786018551504403510825423748409713305871323860830308701458373354998648722164289472988243045065799702470685634097851043860297279250217553749860600912388784093249086144947057500753890092231190854275485640647997086032708392459110636293347809020388000160837480571954754862877124164556109434245574815571746080616669612312655971246942543421906810882921800210466262879380215315646454164070197669534478112367240801456634648796018955088184103029772257892376014734124253812946318941135361674040784756607500313037566466119449178026054470371377901804357343349738290726515010595331527434122143814426669063784396854075090280182000835463090051370971557289393370451310871572711935416289650374826583185182553745233480981773065038737190969052583210410742136091448920500501371887795832231795604983212640171268404025982899094405539243129729229658068418279852124430139702068048096178946515315792885425186889202668619510163976893813286870952750091934563024276241850056196486694240959270677630097095594055483434950323468522343529512442301468890638350154413096766400842343949278417944129890876998115486692573729792401100379835376293154874147208497863544373589957171850589128353318269529682683048981507884562199295674177224689932978144128164752894662764797627294833819186025997394516734826359252042143003749438737909303035871567578322662180441900210361846831722518279621329032554119767761376008636617789004938546031288601273207309065025358389532968638517664892376254759552382737228508000165045869836032637351984375007423249224566655118508719312258224596310539268671609830251557088266224921172086323484253715665455381982551550851516742401391003005682985743105723161000370309479850949832639745094276574874764572394467110699599056576665118401396561189022515794087524120886324046259189834794123153527066878607465159677396408255291871150508659660349666972951366943074328758753535531988679481261752499851775533078547046728491698773426766416021842118548792939289679566956958325205099897587039240268166273499006635368340734992304758887852181971037497128693301219366114804282253191764814020363876405537212149777123093320230954875722859913499261147584250624171198960037821392038176094189367990319651375906896515921951787422386014523580780848156885044315674806251588401165263181909745812949369032697747982004717686066934524550884627310601189040450237252427373203354827906453387948046365560887783468505425191237385665062632984814524962185995171167420208258189351293915139779508701367926937026332140445996604898279028773627231668748111818143087965960851009873721636402286516832058651051777725568361009758414263335579863332744726749970630874816335383023912576610695858425215248688583181311301073736868198632017399445013049088638172514243137333622485195178765640328943871322877901585469875234422529635304970592767204095176185778259259338326725396167689139861296189573723150378389175783444461612164925562720910282689553213485893151706454099047171240987388184562998067650522674529629888954352844547459828787432341761029281513581461630639014072144169960217925628901535063488734246144636007865289070389437711484575517073880617380180930885495513615905307715098766795504652850666641276379211969075833647992932024163400637284269862682032136904429507622131569432305409823614802032088612549002327278971819272975330899540242250087636940496519179969735869173880468097232980811169811562079648537183466053178536384999465375197193220668562416180826578664921833533670607238729834185272221249877704947483507423014426689859685635756895818475756304067106410312728199952488724999568050286128838294215856871927821264580871188623934108916774090629506905724008433684162931293648560558709697671987947524126557230795207774046353711528573290625055515743606138046675840275177443073904777248689423104047067008995902173285409659963072275215570058678893450343572235618253979996179415833304549938386723585222090216699505650095963690037904848502922469473041700619561049420031589026654305789456028200208780535597771345704005132950568823674297586767983205140417196818174052141412283184412329839599298655821560929175352493080592940578331640064967479932612757839247825387894067797213741641182191220614647670383701978931898344579611544194632740650776622743807028090471511876469342822162315051456463453306598931259195985927508910575330242918226192977220617648686142495470845981994833585048002879357703862362506973166343529058246748346716687093635557597899487646551534432945809266742260015674861852598385339532342762480006907190180651918987683592055185159274015425924367652560691225867648838225445452808293087616146217983589053659475190558821566430079615080823348703190868712230836104861343211174866408046581000409306251337613366383256497264272395652967437746160762233415519166536128693535350766646089219711421223899811665350562398652807995963950521845753584173454120416103108592568062547506914528985716500353826322147279342415412737244399439432348956389429700926519918146406433068897784069766960835722457246565811731483156907502894663856074424560429950105576532254255247603435613306643991076922366710272429777647071699073407354106108839633726390598677210541123550174113527155233979734582258689572699472284721139813764130746631957559556478554741832937015098601329588119222638998271647430965680153149936553813279937440350575668754286207450226446889043759426016902263950212030423275989525555799929580020355126196806034806855816700886583843219289844744219913112017310303477859062294881414327619591799407472587750029398963656473739961574797616418074108846902183362000184995452577814118385201325015120430033332046019074480332772254665988680075644369755228257244629844857583274142186094753081454538951074084523882340984730675279372100769599803016113261345610859603243326282058066121614323200437146380348380670550409844340054739147592573577496062310268975899808200356563638358831058441414111866891038916764312685346211451810789167485015493187889916116121010856293885386477349777858283730492916267206372557275046406189557567769422788824619309027552263414849929221370674103672300174311544147172441016089519313558320633852792821089416434149844709213213198808553039883147544616415428348774154040824694805498885109746768544784903349918865653906613490977194127719952305339815060368555004438682051693775244513115381862716190842446476525708747973064579037323458323415691508424035317201117297004402116310427511765324219220881610855155560477595709348992880490617032728989332604773320402714994096742207869179924620106693605256799532602832938256804544497741066968669731186678112531413428956845994564205241374737600853955900773398088317249633054967502064353185437085240993791638497810342826408971126682604882030212148607811574393408182164433134885984406857810617778872462400364097729070631678211943454639011202426960615638373760008895025718908162179955119551288359770468761602485957416573795296555661764920838272942657752392253137200606121160190157938411631839161613805498168210782892030130068086463846492548403748798742688366817414439653202772554119493325213051813500234260373036865677641550938439239572576073536015630960645163745256974525462022388793231465693008229426400869982112370062070872160618814034084711373689117256591423139946857669481845363324855578931870832077562791377062066836051700308547525655867231089033798414039372242310447767073918543785238772932099974029222175208596813546112660881526965133992666833760575953342722886394898667506396351500913381565931842232665676241272787945361136962944290191125479492482466232906919877680357947283150158731794469419273036881338745159647173686112418946113296896012926024877199083787155923850861082561633253732203753967440295144052555950776055446695573310685848448402861678159136878484861890671704785797809281134893933829302907059658247149881098868151155784274853519128734276292061881827037538712788771877500319530248196841545820051090388340606981949641132847622907849653760410303253347295288721074390827150720418810482704045815631392311485474109286679691658009412657550002396203844190138311537964427996968520226529525799937340322706471330380780201835585385737148481865074821810520167580015703524314054980908502056830553644284247191289417886701101732133266950483998533320875948517450500372574097228671531274247965597869842613081276439190117406590082907063423859084663937735492141310905590323373150249624493939341355375849097666070256640119403016850608380570454986087025038886283238224689851864874709766889442675552531930831447515744865335386336843675798287756368949156145418364071064562448035846048330523899362703887068903490261221013581773603942580364841795120690792034161784510682509043468821996693798185457192700018138591741669530039529218655012654047245489348895076281146036508464627035509102781117660687690989542598189671133143916185915638655696667512918171806389212328714500283970246102975227413901536277730595442661436702083013156622183360893504642127782421803414810440756598626093045749882650929415478284681505071773127150338510582963311643203141661647789687878646513101951833064897019338506805904042335222775479870091995582951074389009060697318478611239332729279089169079706195367444205248790555483456505575069183016495095651801802042981896503464315982191547331754557299499760556173625656530414894268303998681364373271719302587411358516471747873767444184228591420716875089762889817577980741421620316295852413010896285977922647767798390075254144553603604996912902071263974337169626727852556670123173261040128333931099643979314182020763469614763984847940888624894327177119625095301906703267533062897576716964095819953301828009455186229378167442541539338114434844440224241528116689956991661989992562022415677406372684318745124737569999550369712208610416998147600280245542260606157655882504229608409084138945468681701142430014586058944417819495187787373589838207736487219537509933259234974551497886545919416984280510941547062455165914989629832540719692425261780272156824591115500805099468684844496996638544058686185853687404782157356849892386485207586632932845978823214051020830139076822779040911178987712091997856295368720316941819547669791484967470567496002119336025374287751859799926291534888192752947996639300761811074934141043579605114501305634778239495436440247202820143888112439410892051360793865320704516722771991663423052068031329759048959836282568529368359879118678921044420795951128172368860497972339460222420343756158670692286861278772378817971467487329481140853820382126091665716494750932862910279769380514614166441681768006859105915506037558816789464970837374163519644588650027431992294045996910258169555897566842675573038650084972124670445259017621833648578493652594605688729374589282512448971603334806059602524995468983299673059357375554145349016307179563079271476303764235827214319999804298016093899483657936059028810826546306360330362806771458835961390786033057927113725053935550519468121175570294505254577952859160404252883507898268587325834369973284610058067667480591552347057180298240483217450649316434710329758738537305951692730102222464182708213357882687618362216969200719765157098597523246115529069021192964565852978902608279435494715076362816405546815653652201314659726809220097936603119728855305017723914855316983446178926494554832566636335564899015355974885157481101559661280199305409591146939707708245879909818285198881812832512798332331025852589483658316716239139416365605204096217511065634111231154212736475562746421740769699116575274499555243583630198509931552378460402525553873587574828897286875493245031215960798252841091503912167097010374501442467988848151089593911894947809333423490407298521850257860375693436988751961469817278233803019292824394266628610583110618845099799051609004897495751334482051205980287186050591257460241285300290811653965803677321788838227064943083864841483784015355603032391985628204915560561657560779248137417839429134924701136951337821288772257004950750308526976025523605192202130300928117392699806461810389012096795669294831627585575682121271617858776730063617573243539018488980117698179788353946269977480694168436384881913410135308817620315514326854290945595601543374496027449137019201535693508617569157944722593737498310084924158817486896042506853947209730073405066368398541982957281719308546119832723240120938661804830158295759581997741192319749341712567703322146793250872254466074348875249403654169839985570404771530877531204797477629018692823498968840191755194360599524412640914289695169664136012671569392284310043332972508559610221163306729173497292845650143482671244150345441673748948369118125481816848807273181562630889747601048106795607036735615395521091631228106567880287978088391539780620237490501905431431110851324359557086895341111945988216144238539489796414997991989578497627473111025759017858495867229498553876845070467850021515000008593085902493615418887455499190280775482595358546516888784136118891061099126071138148084974832459984090123372193899597592725338085844268661397909295675838065975650258892499648033273207741014396430690564456157209853107946031908901902971254697866363457255071814598227167564639330993270621525506486579775171516813595938933456303675031889813528948991397305765867770617744179822989775873897150926163765456735998900422367622234751079033384112468059428670341303368380937575947956828563793410795307818121538584106714255914392020271864261034768022774218599991623516320925747756959781635342617489981833940044279925864625185951144512426319946222457023195910127291150192692928112217746460694425639633385783590454847611031021850021740727634733200181765569283059455002992352560473675140948380629597691237055709631713464720476497926056853118985726661848431641436163832818680371059267069029111696773508646673669987472310726770743185404492989726229934571330685787227332794278817833056179451302424124619373432257908499315218913594739653328315863782128772301948446673532697654634871499215993040543856601807393335889196928462452034384689195237486946558052588383190104157016521273602477928630633169520667112288765947312381070524535752751602506680533601844460368491779823919068765242819840243735828219758718888849756719561291146356634770763276001686761075110270977548030365698949625166418460339492403986716586130212860333738306887573206043153903276977746951944097640552437366223367402214451395507476835888328897907373757852213440869364947369520218767150354495286043844393242329308961564331265219235791181064881754369360215096705449677839191541873783585409233278553336101161568564505479656295853656840258238918211149389241178010677117610872751328287859521142556899764290720948827608806351016581211258096146848106182413847859229917935758569360642257665062032061399630419464345881657288010438012738417960863740557407913201806920145523027558957532791993133811494255622190401494253387403105295797641157866354478485972331046316559232194577022818641573727105285598468051368932191693467877486105709562483580169637033350333402802388615229440972350529661309428088474065984319870882125248675145378929405335286972501288017697534672276412452099457884250068783788109068552553256688220700925938687806025117830856854746556532248438991322679754382737296256152540803610924601883876436823755292153709454104914537720431555143551479945339613401459356228380175729634214311337194186158859697792238394246912977154604846280626569118900335644376628141362813074173807967408545642623559245830944579056348378837755661473164177035731238389780082943692989800274823005425488658074576385316103380570450532204435949201883832922615496607656477200408085239319822145399037418436845007179940632975073794831407936820187187301598051604289208824298989775548428357294143456065217022329534816708831525077403720991076664516466203456232935263577721152308934161638068613095932809142916110687244884196383862883414360327022742411811907131190356641572730792307212960712100628528647318586474340313239456856647335517506014568527745844738087310219937249529092925068791714602320349497904369879376309595553269183730645967612482388153571328078249362230745327837369391109936061981010534933446793940374050847935743001578193281801189918905625031020033026692622305120533726144150982451577736908303828813591852143937201819533538209780838046620230766379114041153308895417965711511422128165365654254178649661468608326118537330483145648547450973932561973126181438658219679603072191494705886234041994271664818753257753875450046203694528300793870149646720102015269582787647890374473920982838427650750524504953471789498955575628802029722683748527214269656897884499762955686411867000133508064373043426483581728657275355912513475847902276512202788973334063601900432561985120385050985764780371874855389108381078436609683442692049140951625373778751836689788396196815197664812314765830640395031413088416541721716222425026917230899359863353344505717444063278166751104797475801776064504472664535909783000205860767203546937341801557461043883575570601862330406536296774912995790482280261010055273266024117513707744802487317100191330371185749024024906260105734788326549593926512932404121448805095319067243688526663693809895129046422306828232839826645385222364218930892367533800041623759824149997600463254019127976133705114939044615573778535572888547479239710474351037913480135114730778756077891402357635012818802823688462427878039665048757931483710518394218799464138377112940414574006775844932066656556557337460855842560366051291538344500837417252168695250730048350091745243543247392806328646156462895863824752690025222826646040956475299671343794681714525470707503241167312627519656607500073040186156804359662957630877338575937281333920659638655810467749907913240412284709279619698200938719341274466378761685078918190494603767572955985892518840990607550489336807244681609119533434277966571935638304305633546118655704762107271380832078081883663313880104759638462524397214906553474396731383420139287196682046996990404980041820073203078556187593265718676032642703009233874481153464326233622216333352543243045350827271033302156371135768511439546804316041084517020511396370914029398302345262986574863686348323037962888393233985835439990499099224543242721968712472678850356003869086391217267801542950873691703661843068956587607214283129459682932512574104344175658572032924680761240712802897812362589591906496489247667871557900813806850927983710616134579762110972249966580924310250850235373669543216265344248393803949956206937864885368170858182579052084886041611436736655672059035289602090638317949505677110795705185917474267981891126704009033565135338095463120593677435319006696798262288445077005084428222222166442391690239728882294590381758537060890363933707441715319771210966867308850051888604247147004214355356585781061993278124589179601553146968571321412021826632600792534722228304663735504298277812666409459096450964828575894980855241310412622619797189738874689422836228160304524425170796107656422597797079202373610119553370412240074483659631028168828305614492315523088100910434969218762488732750053495482806142053384467582604387958715519840161752336313233926172382945662269809628649456639017348913815741882165489008726731852800729003314168975701633957618906441918901682947095487364381598063825602524155472679224170638170016795963923394237844653520271383902229033828309865390199781196468472682703494606428552724298728769683358567602930967393770043962894463105021529493516501819371728652722731086779206650003314213863969664094464555476262883000724410091795882462897057682835379640533376779901427808492263262021862203147718523086383204390394334908034598162535581230607316871991012518886953783847103622079739355005637543702594044517264183881128415062437890525662062584599086035955810421411671904106229091978276347937063741424232594847673667020110458264797221070757034266037403221419890173909656335791370095940484805389895171265576764350155803936910157739701300208536956916620331199164435503482464363871653252886663289002174518679953955942869966827386388418607748505845530271129953669088262868702480435853955479810859444715494204321952036807349240410129820597688180675306641013160519871000978626089003382734699046887914154121947106505361828290356068520097277193847037182140682950121380683328218441842456602631263619451778426861798416441558297235150533661697348504703779912526164578356809742200575784491066919379551248339595017296591294394367868948344443295141842959654114211788329168388669231068629687718061832353903458159309908330113050457677563021714362576944007667073228882941121029041157087356649658701705029023882214210290146304303239624656499167628980917407507486567108062921534422903775140715202879955471184967063690334096784785230452690381556912579403445386923921286606281083341853969996947240772982416977327423591519295767015353749803778551820026565290184445326826945702050476680183659640908724181236454269123535826708014484465582999183117059217555856330442839667517049080327310204108696766298646023830398503523310084660404897691920319860000936420457793735499254345042145932763562555753534543057544778625270857136987529858780179876733035988900534412122357247892484999312970384459101776569374517080640298203531384970635726534048163196005223232716450908052680902690330158685570716546018805148107828390006606702549847733069303100500145046732043465934483548719380938494547428080191593271397282417269177538051224556294624803902193081932850086593980115703331220361260652105923678860819989154519393087809409312788243474900909772988921557326409721359333632924292397121613746907256089641376993087180146246343208557406246241543434571895385669136689320087190275474145823583451914088671388792440217990486676153264736457698856069022611064733198205847985600653024858695205177710762513598415340970280991827398227933607967297624949486692838501915449157325252795687068535709902885714073233348631584443389844371124098925226066600283504324663929859791335070442318872645494041216638065368628406380357820687789251585532073243966434309035380241753923017704162712134377582912168076052792399952908551068416757902478046516475992665412713481031095571702174992230867415796401253681019099425609218939346912362129781526794864568474554373875680083794742588264817794379965456241151273008627086348456677286336110817949591956859772545680222918169775905615564571190641920344697294614340519829172930719676039068691713507606242620884916296365342895075501925644259336652380533398146815434847263946003706579023218039645845770606851146750648358234133131935796759178770040689719006840394338114267660419493198579984424195810828845499337545712533362452692342712296364035592296694772048486852978896055524461592914757711269756289947494746269406360184027383063578551100539941406507540374863889472801071444791054298855477034116212680838177396311217950226711689040759042540767076071191872171677976974394613361222034048301942485739460919808191548766651107843141511257891767163768251368017929816318138211078672834334939986509658987363245845386542404941026215669635248710122487068609802144443431299111911813396082990415943223494776039760380938758130920609730571820666042485249779837641099524892235265705726788693178311035987069844318754642187966184877511506286985731820180527493504398408797704003787991934924849436222523710320913877922982631176712055665284527798584699590303483159496486350552710255577210938253006767072351742650012106295038875322042426733927492214218525816316511820446855019738642232620021460765349317040057340780670937926903960677566429500222296469372668743671964907075483169943520881303163616750623683213234030791513535898251933725367855029632349197520596327224222781573107866355703035572133960041620409636496059496706380182911579430139075985226088874473271916984703277470609920911603595004894293591689777789214977216462017376467135583229842575594284761425698452960600464255697985554789459185007596973832344746663958573480969442104683700776488960543232045265191488275171890582191345815889745937016781452826649047348725628192840020266161665966273282643067884801849209578352047107459752864230576558355934387243956640672934817991161608868169639234206041743663565299419199778576572087643604102717684497328561355071040220855716783877952136867004278438261001353792829587557304628020372774834401432008623310621942714836485589949798034612993196769737805692469946709239414671910429008377458581264401046557969915285930190326883252179360358732301239333995589654565134018087962302618671532325227919789535536512134502402774189699775973275799769135017195504286094373583384677401801075661538230282739161042343537492997028274432493547661382106608502706893696450767829174086411217543995274108193927238189798789979257873996861601704294783503330375311861347611312530847164597984736175375326666933821320863950082267542507737505558417840962619239503791911035584364743949143954886540739409395202643583643938366069491366864828182149501834133895024999032082330633274425049122331581183513489038089628501731455871633655439710189406088238579678254298854593375011462231142500688557480738365616648759905080603272497539713892768401996234761425574745944027950538643418561849219397306568693433158767772758877970821311697025060176866602665038130357681177554472477328461414954147215308362232229752732204867296864943991964502645392049774513118085274346011641202505007223481841370159742189961375592250767356634420169210459515571108696158505058618925554770524005034429544089171039799445353972556277820432316078272713418126699218783219074414267010978783355164150047497271162606394684228428037184464358810237178339140547357507554873022963309544343785307613846500107971978610529237426526287041387614615924020557202665390336516881916082101013757239402726542227102043201057255209884790759265073082825951386000819296518576925607220899321701309919877314711855584634642581092430746783909303129905218472955790622568365522397440580084396781257782118171668871179440696146159089395746361590517365071864866276511860411549126487825850887830419617733513509925427437198749623173633297443564799142063004129414559010466324891493577257571601669108471482871175865500110323139499867460838504642353911140553429147941815108920964777988975936494461312718904969411235405732232832853768940843069451786142173938477750844638374697358956906985657334153948794290846278368774464592219879668198522688820721128858501110422355567431815590340189168239654448263455663781917454885491635601819690102007812011309301278584176980888324258977659634419850293429093269312804359113597074541495507742483541602072372200013071254291050366049928506835464580320737470124425855978877025174411525871445159628766187159858450296347204261754336094145355399235286318016815687215147610503990527405065516119108647642162699482949809626445791113148987982916489243752729363375295677668697070891526259457324781669964350798189491082724955710272513484138899146550531001305786481239789265443711470315237794978141640689118997020961256591287421342929084763736296795466862367216389471677809373789053787004703813754662903615474094653771506107183470344700057764226519497116229860987222772869724288451581585128677676864009999642137738882439832508464463074157323782462300948470728506517727007633381632681193626794252349838472447783840780713441020423728572142638445454981273973604713838785782995606555075905891930084486627207832018258690008769015678622285961169521808437118965935934698640288257017668352022564608790084808848642194625918899425852150054475097186772313951247187136967607496421551768177067089346084895136831869118011318438483373251580298223569823442915623278334819414907418843158170257344578132092655663371942356935200737762645842714951719773817009772972109623247328086940960801697995746880309632985898078109015809046001161415285769746801840838228579053589564755662573238255384928454173635799729115918887985084189937259237978997914551439136571851543414931614538547573150691725982014688202673930997064942025901585420359682498676821838529636181117396800147397009773682537716332174814998054441437077237097572551369892398299976434220417633936112374189502082766217957527406935851409399384889300280550085508920886025136292842698144940494132445718060176452386185285646711618721750648319419421116188235110090806744044692122916875068982889611231559660593681627588393520565682890095700299542172705629731158219505080960557345087854202511958473023878097044817565564093175619844305534870098533561508507446982243181805628241661525535120732256052201621944759494848521118986420202046522490718568155693515494501667200298825119373918896702785730921622641257189290406572939376079245874639554795654214894012147678838772233229674535868899108916775838039040124879301017654874755867047603233131962017163779953922136611660578675030553583778761594401967822555926541822020478270737993848689590424498755891856991967670593031010857857464421698129941239427932064195606602691015417877797158587441091609808129605109291061073081712201847008697005802887449155916336295950003310333937551590834639592561160677850268452145022490326287136871463553001588068571453690374717502035605706820681542985365579865147992107574896275514974787439605655114541638525911273480064279909999903148684909163537692133427000790003851219479336903685635509503684325141772213261337630086035754083438037062837325700035988280885973158439112914011435186045345889963006191129224569457223028392351291522320333373885486601183014894975809276977150876285537217625697210554456346005657507163513495022076004396985694789356652263936072490434505936924872173082310530540389178674821082193251076346302576572626990097779991988242572431408784429164487252848685881181653566760001632796535418896577898977252172962466552592990552771681890622951958907764845244703710398476739533006132697820433313704769223346018002302858218817164659260104049211934515082245537829270514872098541215271125392350066528573303301373158730383746372138866306867123504593881443064227241562686530969719498001478035386353040857439030686607230966536715080986151110015977971872658244510353548945183054296508956361146773819587889846087464136178749183037965482248573429210566948187343369028470581680130961040044525230265925681299307741996824751834822372803295299967148834606123059871617808511024316600226411095997957522655841026406522018570084869055946704986778923984469254278243077345758429201686667592311211195416468257077016127114694464958340817348012521533479659102189947938293424526836912516656572885981646666704893994824896073590264491437735664271260132250665232910609016614169637657253307330241510175047360057489690152660809190426940298292113885321286524851007354672787770775227092566909000434260357714318073969145805743215872024839662065983316886301125217967932186828343361377195029489044801769602575117987523340156226014501209918350280525272885333291313687407695333625453598148558449448322568894064682767621836291475273772192571512381604228712554984165578799548422857045451719247058293739190196298004943211949719542942166141015040656894845531783590036402922513597117623356109870176393523838536127204057222147576751453848793224154312975001988291488845389731954335745128322177974116675888569390545285199879184000281458158880476405559796626348520409682509439735341516138252101642639029039979452402541717356119655216924313216416400760010665726804091231594597732836770707554623716883264841043443015230339833794296276818723271773937415512237289759505223875838296508498418602728447934846669417881063929205898110492163857288474938123516693655285314703296706684344502825087410102234242942806049731247768668888737149600587538980502471419142100125950020133128030915145965574772658136918342536298703938221113313714506297202417400844566494780386096396892838994395666767753061101654702669674453061985144637986676917730804802942040705964344158660157883935958968070777594069852806574257870249105439704119513572991846456861406093881426093289811301636653753669067927412579541945230441786942455960077111129280471168099080273214121306160923807560458084050877791690564402967183580024786783362466306488889587467605952551894621866151983895718687498180284349458940308209817533494177589004639377674928517239224808118646388234404722730007994995555402355333003350858941953455555079829396254505224699731805168693464039330231505535490495216926205656580549493851040498010937062799187992847203402954172826863632933089341934973983435985031075726084573480934292446689299924123416122925360922076045479164520785981012331984587820648906171679137037954852474234761451273312820679468980689565258414073974532068220532044484675910750708651241569671891356950998217362521246432139564010936474459561730163893234290336881593018949258271071132893294368698301371813215198650907107033791608922515964966601482803999612244119068259129361230147839598228227601873150890880440874552202212025393255346156519394566044355569223209439012072993788050999251783335397139163792206911132820741977133471060752021795570381823456989280188812998639433334498272864532142986455526293295173477286121715074148063747000616166177438968762677330522753718434286011679062590589309329172654432827994219474927784223631810102094397607848387630388047184228811484446531096794429249265284283122699308708140787419036008173848131690754376116894638995290099747495408255003154055109990205590941597142805859064171582309867467791272390639005015706628947873527964429274666048528723083206685046611704748790393112419984847076196899680271825730068795767882314791035155379586515214456742524485888876032040243287362574104238449837257141027074125759179518224877425832421850619200756406933668407953521315517192932864934693066467490443542528746724409668424724736101292283526596002555499938577327950923843045516782407306093464594031219239169529017255151386672280069058690530593887659176202793695301638650915388123263898863748230701824884840971835218215003049425999961069737521419107395222712771564718647932877167472576778407367818799027544163999724619488725871592389347776834451029310388713599082452845186501713215827905187252168237783106122966383461428754139773983311248854333731202692742013438992302473033102720794602955038162112236246894681111581059004045432734315197295418488628636038819027073715428744874957293809098675528034928063524304751751849936374700113232377906018108751248821855728675408984936828331904348467293768816050509839544095700814459876581629877698378721793131264443101187412726120997181841076331915825161701291319301908113004997158619604092134144704859091205767927739049270832297059457492226183472612598232573309422764261097190841797633124095960360399604616888055671934544151498196111841901628312996791633885733591438780852176544159311775635834944416696997965836167616964606598475778378200437316490021987548203353583789445122093815354732274009728580800262793226698754066891355702984619927617434470966778115114161051175366291072663257735400745197057781102610004662117134001235245661750627777040600018947290610565509632934618205156153771383527764383575564980265104490402536366965476614180911122282917319147322326055555408410050960156717746220021079247162806496256701448526248464825436787696492395816676560693142478808443330629637220348073065598061928253503518776723022724699128872630197766724819353046931564168985213991249285539690767887839029009905236738547290471079159183617940147797483282212136367704884676582464625331849806650829729833258396249869327075266111180865910672223431907622223025997783118881250112485551677913457942057509824145776657974973353757599463688797580636746755365056925733031171927990959669855932655649407583058527361980430100132284196944643169060399232412096804210164135054829815250767423510734783591252783527182696349377875959212893621795103923529998972263479497051545800453380659326334633354960484213689115401730887599499420695813861053860586477032086033744677114461256513013207446275853306796866403449207503774834699399658240738943988057455893819577321887656403699517904163403876992725902548678989973452276873032938308712746341200862417645459684198294686398999759204095719303699390264700119219698648575530151601504723695321952356075907419442362896753595108562521876529583556572226551771194293218303885190074010960802149926510918459367557820888507265526607574476881340907971050401938476555607706156381717404041376739426625584565781948413861751776509612183702633022658175728962852648025007689835066949760875565165452724407639289440437956370401885988309697004193676769495935551834990522384426136956131406342344453901177262464386737060430076703951695304848965305066307955102347408014479726273885707321550596210379836782386526215984282247535551733931926416551279290613978711767855438708916291901863711782005568875091133777537087424194875709945779687269299493230202950117597562223592640295950590990770359166427596518752804557279134565901657276814636291618155731243725469207856116662056382322961911116592122858838645685951327767442840926255619789396004125111801152317036911897555982103144555711441016013952860300414121660685930755153435386505341355787950026133154774653603128150303720101450365235853253904608723273661929067663506591185436180575183398024914769491235006683919822935201461646423515907565925025111373609306541914380485636521816677758062889174639758443078196407102850424940870311701081317059791829231810525301047198855511053310225442890853755738823560003770348138208260759485699567194733245162785134905829842135884239713275242514411103202392461872047103348385886617095139332344477063790200829732691424272061194332947057068127794480705474664235577300643766820257172003986602681522220955615357644253291834735018796002863019118269384792055606760555855656795605460691642846375525472080533940662139653964655677003166029097131842687796865932634602331742393414948494815586641000046848851443479411423193429250544632167255629901862548728282505759679515573709188356698351926675394029379043900283491609317042820457543429519425919943546884656699631462009361360661885927542873800026902516995769656412831816782151056443711087813696984818844051134695743860777440245788071761217336872789789594343132898917572940605889260291385852356947069229693414196462729766252958851883174635123708979088639885427718745566608334424875935644639949767833304734531608846744648559841848091968575217568385800250479895291477907002631579185800026398949787032501849833639961566436297219114167817333860791755663408845649492914442771795102073231008298570989773452193678397616396050717862018412182847643617750739520309824461794808750153092974341043290683699254066249517630886876613720564299189780291351829372179504233652636480344920942084324549627187623112731901784336760629422465713412286397561324296713901981183324491998564644791393124416579798664458498750325206766021300489621025472340582693559197070587257477178890564350424497554074516057656196723674377757631682796396361144891348271215222777940652431465354426831383070075482687188523580297254348229581588138263005313333282153772305505886233507071360187755124533417936952132482871162714221698352956632662200910429496950997506775211394536308595133622385299281536786754466192209274524920312212410543448318548289586501288787845282406405167462629936063846738271825998634745840028462380810332078368973877818533426567547879650802866807225339973649578196983262502309276791400523157868715157898737935662875329366685604017210370220005615817839129663421866272329256640950502019865548441314392524181198542407766523049671714349293785259211940201991915209666850652152061509900834518280616984477208288455483775244092656317272395612866719655541999645335366619145429443051497238459490474008231487240824535030932317432638230381332920983860192011202938182349521035566032098436782448177686032326174700910177522700764247175411726136065958489600467070235821532277262471702235996661230556789775955134954252116470146196078255033431528050749617971514841407664407116505139398800572287102202929676452387974912714174524121345897111498657540085714022526103034347804238371620627623185389557150034400398223775251739733014782895964879555881873721004178512346608073601988815672123086850315814294321576711888339807732687365893733261804532934649799535212518139027607653211548678677044908868203438022632863189005993657979092744664703826684969100561759962444895554343147645289818911054169560186625595746500605556019365650300764811080467260947424919668063579216807684010231772242816914281081987009768228673114115194216037192491062305519039771499927142099557587520941156510859030874100852769407973188231245867832219564677442320559591409096151122875336529744479971766665457936885117094918455766640852658271717307613976345732446816020845001002619274145062214174614918681240011993548633617302294531071058442241246647045226527130168215175522286274116781184024509535633007332478402053875355106065211146715631196568657160302861467051009379627193579429771113208502877441130496430050312092549988686564382701003475282588884296020900737997607111112168691098153939938173481609982146467254934538942704054531248832769442804292635699988185510120177772111766182479028838137388507745571988695006990572087641475938191256674865456356466380075012228299946466623725493376195263090951113125472150994781582155733518316441351464700611200832583613341112654869598639326171407238487203791348650203946038901286142213514621895527152145516331892111213974303117395268726094333129304250416743614441398278642701628870949213458726094496346494903657668110992377687574190520166829178809764904071287960804074510588015979625253344510979011375374289082820983639174436709566818362596664267265911840350118136321776024068332974272844035390016716660123720417209716014919220535974563910596594294988546856007518776075045439213918381467513668392298835866006124209257209277361439448476704924857859534062971544433249537856318928832421652129643753105482340560954879422627441770512141405148012966053098706099349368195790281332693495047771628637831680886081373422361801371323211495482447724575866793603054411949625560069337249364832932314178328219275609495971111419850601257999763987527111122558477259506691978851305894425132786305961019582627362439561711885913938364482827213542706039028720488692365727622363148842009191834530277598709322763945139350150254133880216495383315280450785688841350401637636498450581456996978816213372969974232275356232982207284222832968640694588319057180402849902154319936490215183971114610021004248711757057102298954469877828342920400396140855517000743148147738899873652919219602064477743349315291070273820206827920692580348065312955530667687131095328542835651733447408644561619278024176711217984177368070409907389374810102513022871892667733056611927531322057657290383129332661977572989659934614398130413756387304571258849888666072128166919879471040867030916343144424162692751418780837680153552823974455070220797871873933717801696086329978900717450489317483260327464801568072738247457555820852005268239888865336238937105846458425885364982429046368565142539193791434555471207567045456947969566088408080797655803342227079028302284585566414576071746089844085841319445238853627868688243423242084871157267863863366418901759121215166789807317832199666302252033397733946244614224044562838649311923001073176892419808583563337734258561594625088989476926367998442534532888431503643283494343904066686771009960138108631430944147507964353728878838885432481949959054469917564147587915913534862364495664810129070189818752452358712597594006003853428865384871729573071268355141616987709641536192288466502701705044357849651586931408530988043439931719938065925010899624543831784640652451092409337597873259780526010482417072013395208066600083807584245841279012819729271061758572508563303010169480365475664483917460241467817068689947798918548296099979757739124775598335619355429578793748559202863371098339349813918947736022135249544139102937377249965009914934809670161149064525221276826394012823337765028868194530206427051122157698342043623983958738781048288075832443424653368478912994558099057671163248509257959281065897198717511116387421956817809247071765587517968718664433534709758669354117774461087388526936634780542836334518606972602044754662249377492236411945909373503343429146615841314004901990260511517397921469472621174056571558904220111565281935260373631170973638990006334282090776739630294231959511011330898852209251019985500300486604220922192632467663595322763915817862764417187255835484900770579677650593922906215060982396781968997884308545491141148514390361070923542678765671465863556178546770352857212064814301298721921881384850853538371385221867354839419535701317408127596080621922142779637217176664600738794970159825096526215266791676456825299839011685571215450162376526239344580684157460160419169081705553149783020510513407927591018923740555250089196953012082838208751671176050291890820732794640268790059036453620879782738419691655107595432743345614790140615708851758481400055284162927521507497394816524804996633833973534512147731376458723261966926086731159638704464361905276979795840344992350495549721159784125307308583371832633316192380478685111506618563778603808361164708182063833390309914540569408542570524303999120283312423632114235936560243745771502264068932153216654950714020989946361204154062999360003161249965760813280911830978338805066343058677920531098308455201762085872687515286113953039538581044953185398605876710072941681860351756941370474434882629003311718509111926425428074596123823267420674888356472826402953144540289158831641807045708147868062080240003001032296370630323419071324475278241663226074355523067894946196114599947607208018485021257757313771823508619999644173443410156975243399015929246583216618343235675313118333216702159316916828198975833678566040298672171224363353489456576859173138488336547331954220492317240206364508779050804789411941979160482369024946217052127710136540919149638595151678467905088779577014991587305381784182592092588672613714917713153091267649575983071594855803675555352897124345872620436616422289951822829089867256756268637353152675852212783314458583967981494890767756070903950303134032097671723825553934716791095439724787351070465794514051926377150482244820672780096418107424445150896726956998378618986385597862911933013037241893966214285788751521418648773015016534314319754008468788634160837853371488656366860922216257910926623339730596301901311183274533295647830960684502329353974860658842452072069942854870354988126418975442103755318813037347306304583425079109187359658530780410779667933195439280335192973115900625173863544342682880332203886894228407624068423994996444094659312359853457783606913153999329355637421778702599945664089831678565454046261217518397736949809650115122040545754711456213741758808718557721728764764398923449523527356800169635993910315151347162161817998110319156605679560390950735204148821425885835383716709824219243244662106026476689756184068594620934629739069248320600241733080859834265304935441756232504001126387592028815171770816974671866133227225322718708578258814358261213847888744096796909702194328977451412995558753560462769813161753911544195967203778150488488758962598480661380242942137865411199092891049874712359021366024281584469156652793586702796952393128303194820436969808011875182996579959883976275050300243936936737426438654287925738629313451471125449392533643196080958487217204211750834788343461558085902534410878569493176484586826035408458040527426820225289575910629810453471568969734973554345366986355596557505878876968024413227267542127373197439413564828186745209179979072988081661227675731352548264591860327317835821455088738197853406845939228048456740835109691337882098085397132303735658658538045475061667099676684841067895741345226542955581466445769616428559593988095833601290068596625284724505188016466540155874456449486664632080631604206911333321878656009283785380238977751360656236754917034831212403427132507634719933266156303565126588291196237633222846553338494754221170413280714754211577352585773640857459879218412569276023286950419599178991657949142033002389547427363517950599231989500073867724199499885053053355081921088282040315831102024983036683343844999884554801360722934735073961210457274083931569870127623340573035425617751559510505506899727629604669414214430990930206121060982356693759873994806560057184288717041908669216227574811282929020025196570241260388218352263876769842261717839983612030149516827605067228133312820436956397655846989283986612989558577011116781942462448012431228751656919281469116410583863945827974906538027951856699856331047669677323800368132484625400129256386686111407495291319072808763042184230446646957805636579586728616393781115333574888086670571003077445622872866358932293473228507629455872041070983500438544682322301124860126939245655803320774118525781365386150351600648262396144211123044346534831292954552543479203321440209701431263226731672134541937914718758645715678328289964370416072330768222383009066960971855742426163000683462256942653759856631734359413164132425308440907606294723424323074628615634041358998782142159472550024344727133246081718780324176865776422230490381131379262708613737783537935007060940988471958422703979806174202127565598859508264601738191774141123166524179308965515820252068314366517523852349563777457612657202620251601595172028248469608444533338067198593822793706268708491912045526283762765862867135597234953243297990620171703186965888106388030305791581411020583572545801278196398199914084961981978565387513060198809342563078387916288733951972133725142070586542656763469315895686278078364455361129127508056800991352502571420904011419966586090623345115884473259644679636624205585623439650784605130892360133565905654408201167646278757969066045974323903556209284173741675584984221015046614933465884404658321019454794242333926916556174472341705972017006495007488592982712738341743029407435407316523276471538310289579870604646548103198475423085038523653423407478795550558239663900442125499373618432456207390973287095744960057939056041013048969413923477065084305891151232070100605108537092541152597007345297477929819038471461100430521661491693331331950316117417588486160336806500096550380746458476777363872835233518562174651336188876703270887166065127086822792155374574954836169161098174035219519443935622697608100834673584614451036874794963107407439595833372005331420758853430746444459589685433457649104587572309187025820414498465669304007447162381108233100329080207134503363133751372762504706396974606070011484901403842447551992354980893680350326277301991859252413587140207686962367847731045050364196702952222653369306257233401450551120016679070364139013042698342750567027634843024561242658876230632284166839345318593397955176296016087665272620686124940691114530663428401113428320637367973919401819981771433174339839342534806373401239715033011450327785754963254463165240103782073143557237782275391261135603940894633032797379257784292136873206231984742794905387970053350666831207010255847949729101817529600479793433613738702092142192193242661785135597652720151640698977236495034656973244339214678177776576541998521416561856763119793174714117047249300357433046225462527770264949018352053305537151960418823344079874588670325511498680429758901609459291269338198232434777655686274268912113643188537318672504223465647299792897786252713666262905416055246794226099420834535941028724196967094135825506116927065271895445973925404025284526812247857930595291762321103285974806918522689165685675835275240825391814721938036639920470687580736344433754508545904216480968007357992779824761119823314418493903410670571836410229421161631915782172631745321876790753569056159199903151718108803330271347364479479172130276400341622622894531035054532557640007385469516494623495305960121163076112133981153684854165395704357308518312848512494274859993917986001195950887258150705485574853296747263589183814079451129314600769436302818161892207475445702754629094551961905417343936564556849879411234367657921943116931213045264251333130487016843530904814038495889837921802567558671489603180698333852361115912956014868659849222111142080253595501729360993709764563086454590388367084137088143293281062089280953602072000978605844234055050295602237313072306019836912546453058471706798586010949689553471850019206798226553973848819705796419912422686062886412016011997728836751630425005730986258647945512831314704730747605889960204219986245387049672600705360298836973236230590473884783990061199358212455632763760504619002605649671338681788852016508228423125980852164132155568901501646722998419982046113836811403189328999094959997667839224065244427407195276026746315666719943908198326156782567223606426228114050147077436535312392552228113238584790806366545731014590791291064831552430869491536703081009726347374963898592786165565433938766263956536504010491684167496800331204442300010663825058167108985109756720738437311827225170680900387572706138638629780663775343229462771389630412349984903499250806075748704224409292772478986677911109364828954730736151764103896497622815956387531805503293927812869369207924160118810982459362212000549674415456363968861586149622544745007547101066805951583000083158533706408431706408308327377357901630028202631187669021196319365640428498982897173875779061590922988587381665794216762148680566256829238099792115232563573201268267982948783439098672267032591994004907394122050431378698043851257924021865474568042616914159360932360689401523046587641978366543667137189756550664023757914125991581039411179704532954836840790322697849367212516099919326422080099178549027857789820664632945456313278249264536945213160945050415012377529626136293860226978251756443018963802129768049694358820631594006293382840990486397042307797545166259437119607231918025133870087984303743250573039335188829739855004614544335493366829280223303370983823545169616738723646745892341126255358389678400778979347337431434377742695232443949183121902927531435212958831269463219659440686043850657300995295234876755819781059032352320749119398596843355818186521905796108362410485703880496667401280754595189984571373756951892698629677864796547484213251736047010873444183607340025014917162762601884765196915150549053277481833852737806589178837461579550961480439118948100585695285645357420525043361694484262024621775106732022631766381785939454757665892817656087490707079513830895949922736925071200450257095189335386513537393952702720568783865495519316069514536581207314550868336896095597383601392565947359198137504998370977386967358901976122622842604395714562197262050092601071979133385979201061480077516359657284362174274102215312360848809063643786079721313335401081284882858870690193756318636196983745355991047623017854650632076340055936679650571082988554899356192081530022701667264205038045455855967369042429834457129073829122684871584098101232742574757452785070386070557233919480403394603552439253844085514925845821024798646106758548498858975367549182463280216482769979070238990322391743728636324045603304067274071968516907101947943381505333123255309314563401282943680796681984333811606532610706129218228543017332011130817671315444733601501894268965075903511995032849596771090938090912775757254018567085584306793970019574770810788079335510289567493109798495253249518993025097821389520362173777105598896361985427586472262532367772553717937866482571413470402089389697077108260928016488429661114767814330575383086814285422334526275424531811323414215948043426527644341910559128651601601372446668250260488503976575264418857646047260498753715586973612849677928413760372296968863277986272650589193975901620738912605524502048891656534918467655827374460787811437544600313992189114911914033558495153566105907950354184478655648430423447103122523754739466872192783719580274466315653573893434130226641402111751852062134012125593368263702146088441285753876013466980695637720652307501118634965011778668087437233184595632507543907181757716299333661981407170135304995125590377034219663329008893664224799979866772637440342271369020470919524041644798306102880612226613110348536413570616892405114475205470535387936678561211194946733005586119814027732868049824214868046780840738976332102566265427600533618246137290001954001226039975958758490555192042366597831499257868878197694084873804760378995603808696720027756456932116934679848432172296567252956407698919991169205193760202817955153882932615612175998577130732034644383277124594252448296374321881836860971575361616127703537796916570318974994302785093290228756331580302690510062248034658842543377337594436058257673979901627597659691282645548904410636937493247469759545519434746370403457231293293187125127599598442312313544760941685320286331943432084110247497176394274971121098574763394487575149454118939931929237547703519385546840444606489075516397909767554027064774859677474122904673711759122532130083067187417458349719281470160322498044637709002250779974043993412782256090051979053816242988646973702487872661269598717131955421448445700116803355430287076790781025059149858242640050936868462324473914520368486498712715757809595843882927080730431918409807704381727251254608973693782669681430068602211569133062267374040797208867475013433530013047936679026532097868355293913228322453578645029599308015237914366619676929218284217188074201222760659614755608555470666680720604429198123730550983350032667508688994891671653813549912433716674808208026513170239083470527186036272108074168617406072737018664358597981445968312929395820956463088872211936176115843299240976061581792602224000253518313716144628319707803051875194340276108053775898411154737837172263054474744452524784718711778110180344447251106484009870216650559763734727986523044720090682277463092807068755829622730207278175031749683536432481637571359390976127841859697583267616409494789333059677657316798614441686204836759380073911849905929383301003113430539862673177056008756583740585829444958922523705705714755466758079423969096904218982042821674445194141091246850876514575631111458662049579191428012917912188144566882171437058353986266102101653914441558236964198613351864194865321852576858096496408661450882983768157916624296554805093828281958265941774072325099335706973714062101695425605246944455546769006062466984650744427309015348597880620509925598529982359158432656363736271691339456464835819169204355036675197095876117596408573997957739548071089312851370922274527169718251783052814593792648829011618535745307881885705696535217340242382375102578095341863344429876264872469099856930955767743288990783441667409117658570588529338141766740373925455437197451956521437884100525286153195635554230760515434001786616427640642703540700172887004701737092613508351964683880788960620849795222177064113437626543997640717026893231470546255348058797792138657881746381360962260617432700868036472994326115139031062484476985376726923189121872799810187246911156486012260723649421596920096415634970699076024553997740883197604014327568985544700869155437736772037295222400204109958697702938118483783775538632970508165363138354990941267691127930853853423730067995080120680287418149321732368444710494312154224140393551749398249101379327867845952170866693682152365526686149227848155117184249996393389273420816621420837763284404918064562156976083843880861966285474134656618913251433395965789257339239054562984694459055385501235514048119448279752158404264454913470321375000061521669048665541079961228713200610660996585363255263723059126879422725537791004847890778246578742610398909286812105211969485360832382156480549559576665481629478593974653748840636545361454192105620140018704200183521412878543441741119232181620088124014434045596824756389684123002647474318396773586321256962188268056678981852916358207764356647381650253522454920746915485728135078241041146330304706663923123566286953484359782641877866660346309135395271891820549160815137121777613749610520533845477112543494127031328756565875340345328331082772201494619480967799122018534852298183915199312196348938115997958278729545265941417689544998834997029113093753862952055128930002143232198481685471542611047301751373847175413566485738622967717640089889732346836856017558868624679677190976177672439125352803486017028443372922772923555898691478855431406501304038425617618350365627028036375356497122783352104021004513165993982253337295555334711349432979210603092444828869023886215238036420982479482739981724848971942803934615136486855414766248793873803131036564748911700890384141465591534103233899221104132410415110655793304270295396037222000656822619662481032452435664075713533557351499510865231236732324529671895226937701883491869084280868777775856698452021302281211247256418149817174679321869195427666450820138707867261030080194434434195881395308133066347124827319168413245453925076413741635080370932434503425540581956077566119938855099975907351325318119642311498707119531012851800918680944919049523885831977610207748470565974961122915521478189828914878420211347039056761629435655182103962572536051916383634874570673514090268909695301508722050689929911567930470712057656556807482974003105829822941577521424117576682622438028282746442531856762652590049488617501652630878061365045376518357536685072500888747934455348046267693818333938200411228926097064807495111246946965901473380654415032390729761902456752178570525602485330090980221387554036757455115773276914983898961327288332486659228676682860740413089022757396367661196023664105361915081799213618897326078163539084799166352483520355835961737437686788173196770401255476200185593534388413048265093570862860310461307353829695220894080582743183147626341925262329410354401900476631362594684804766061833479998319789654733292651189089893660978626858208163879899341484734228617763782508291072925823246712142560564130045569142835433844542949630883706037140968695997297555718726884505800412823629940096956658499207770314328581193288785375488509760135301331772869905880491372889212472440244661915919800889396676999202483330967927807352628773556944554403022872371646104025027664493258956279383866943518613718286663247773359197299732034388374741896399993295528668212369624805212993620098826277441533933839993234753083717904568814180673430594923378748431056847662403638645903075330855227675890169813538171567805809309048329709905632435490963289953255391904173691661067455522300809239252169390613649619725353362013365008479865369425595530345844247218939429467101715929808069414189965062476696887148088073109280034290314271716397264612006890300997592873439014584517787692650424141866142641777821335167221253140159488613902170870881063959611410538778384660608626480661950814232901286719201990088565439118727454696027304029949433131761531077514371458978305898677496091655086576256734172022184610399038879214315479394020302710886019639933450061235575422799929203609006258585241767789149473136416132155938436199617104254148310892361929640774731603737471260190182060299091268909831271947063980402708676395312780611112613721755529504178655103801197600435861384716427749800860706913636085178599780916680936624168947827161823924779540611861774601927631948580442677845896371108028133394055271668286986823082486955997407458025148850947374187322777391102665634312465975961224918211321890037372558892131011627153466426665826019473315431517229383382491294105437155531264968391054602599729373271636105777661102021242827571408911146769894236715523240257459407863789088229243274453731528172507833789608992032624559366350796722856921855280287546780418213536779275959747163051599818369564289013542684857395638879149274060406835364863711807174587049546732921623099596344780958033527729130207745978200637332007877295876369326231323421625969591425550044073731390603123126515889735222752614461050128758074949657622971804582926145502225979448447061016038410727149181936998286767340836773922497157702317736449788876602172029940315067404386909746063214077955914809194619238792563953152291508878441610463133755230103154026428304687377030025010583579831444640403759523901248716620618608585557876994070221777101604923897886107542484093686999431078000324191539735006710422487633412857642857455500930963171176058777485769856519538736167416098393631491627587306152575295810838354824824111260973745916442942210194020571515583418460267490021933277387487690163430579447413324787033603944084991626386317443141130718534994354112396358763863196787746148526065713679512841131702937977852069767421007068484363764603185176788487032685918459180550613521450269606299213690619913922004227745105169709237602083749620901457014620048752899208922261796412848630738680341760645250013046072704975677500011148313283716394025730979158330663054359703767378330174059371209992277738052981318710035549123072961373997744549241302781046272513782740729661732184955381764522312699414184224136549706308038728388100967193203471980900279689292332110132314658973974448235092231041649350648220716607537580700068636005983873066241946866114902272013424674016020557094861175271274884758000706157486101698912170201377850124122907800423948203765813405376059713490812179065855207116112780946507318181720219592938274357472166621055067987265019491447968359543693432645441991363327921281805794274954261249613014774982063262629172423949284931648856256119789711676345146528405657708869981852097972157969577669306214916421054340003057878176260251358850812970564073377166440778427645234538584433600975739506705040605394830095611259739985016414738147770006287486306572795587259943101112986297910163082738470648094163857096044649384605922029242259123137599468170448850217687086685091412140435011222358430051984047082812672528417538808736209558705944565097937793945856041284446840872118535569882010201533329844743625837663459506240736606106022498654728121386973784748073310057560497345896514135058689989579129510837880213089902702806417828738136181447135845016952753897455290229675616788867750754699252079633870642295440399379906283349886913000213743433701735454035763310685510613735596163930895368954791918324880646935997285941888711988595658538741125322928576893295614097054357374399518666741033946367941463579317384493551539520164383672137161166973888069066707743467920915343675416988214688789870890628901658860570853203740653204621826111464219487074616150874013152756967891019236376104941798544700533155407569974814730948633842827923585776337859670705239491903296245051699189447696843049109406218953976264727417623147606923695866034111156526496614309550588741276182261929757764386411881214107797599613660436598724665117730625419731010307223439407044484748684164691288993564909700402994592604960152340303506133668315902043632883211943874776558542433495578105871209316645848567975026371517525513990770423914124653026910678487568269913074140316474721085960897014926987254311389036325263998148031188070668867435640396419279444516425130862653581959437485855574116821490132553502578624240984345127975098151595700670945612197491547984333561133230947621590249490153035301867321469932848671551600179931642716772213450788696273055220008569915288511404163988244551137755676493501170159499430053749369074618720075286880439672800701206332053730509879162037705669532442455123396526745711864876085937485915316899716268480198719808458185644242856498477571890978715260328919095179121487144933976981554759529878286760492110892939007033007451903184083175761800575775789196354705103563980793077118259126223201810766775175972781274348714537570099882633505842055475527712931396937480293984764773561683182376986154412345171931912568587513257246900605319102133334776443859013595270384680112212046316645732563356820874726066780038836193208018777385453808815310501637841967452111588067036968489879515632309780201250862434452182014278758398118971834361689082809341300537252424562545861367277810315163933524790885616970636443665570419136837532637886032559567434973235386933810521669977702725728014287791358509506130020555255800167978736996881168896465510652233120546067088952074863206077369356127540988064454008949730787572613170947363244230170209181526013604508793629746536578545868295621918939813728257103139973956297701644970403237205289099598201626323013653245336929697116128864823913387888961044077923107237909843208772836747909889999310450097501502579727633607003863971345307498692952678970244876071218626179073938780765908834470568852217590397762382114629922258408742623261163592318136604491827011792629777988380527169481378974074355236244708748511614068678638922032665306158190142180713626579270030767893036638878971416352507272081125966842141409518140181651173147447721932529428469624872390080650708147884724607740436869511859137617826516640241324541852430209243405317613518340990894980842147793540797738471112296785866737811938494201911724538303248390670562341421136554659665501660777023555265701377587133899188577903667678036729278997934952431598860641998528197598100779250669886110419969863768942543479282981267807130295338469814634275083808236585442164959238340630174984201481134941432242393534657090035273165640920984320363381653946711899973090779184663289999177408679323752914068713479377507369657156046421510090267944346090287012854886948922460777421823802268861787335167887838687419868540765958568740347068291005381057972306936474047234548138740177149217343167517178566329796579238085500841003429812472360173160024858875593582918368781643979236324050005406565792856197476690056766551211591690970817561088580680784620035540730605072215937355950766339859398828053704893939568555873496467378582023100768614356076924752508760189423144303446510392815503872638422235077433334232467433998338301368243188082022642708099064105794723007281562593535099152012402598117699770099036134177998869464241972981913064656589891226028922802877103430915314487651877707808450885126221994868308916839057478187602700324179132047493887190833647930812626111889099140707297809495329400674659027713275503161774080113837316577016890903079462925965933759803714119601566773281825741177909080230860952169865355056648193029841162505093856696587788310467755763175057011324836034973703244318475710375918232560637604012006706622142550674814309460178532424436683584164788752085807178854804811904549898903841646514325130088776574683620768708942823086156451175701464426764311332275784288350081849839446203096972120388909607888439101540243505281998754458408555301972425811177456462115389842870692676586952924133744268809078654328463432430961820842694930199162361108983203780177140052715734952082959685368958874142512793074078231217973379450191507188286500675703006800248455502565457233377390629033589628922319528435161749635122650705646687710562439631600800462633026292825660243212349818129006536790447121722738296013705710479792494252973626884563577488458884534164184305014529815404187399805618813436385283879544984652194339278713609147321709865076695080501197259861338013361183496262485415957507018063377892299506834894510196092305356088641608886743173400346375373648638059713687219478041576923787808958406477977190143958251423821970610844871382763785177936508716812356664490542888520845367432414088964158576029756959884064114947720799228982709383991840391326637243048287516450534163221962575883308707359900937967461556095692578978848776346182980860413158152864631038541654284932132032642060510677185884486090131110449862672799831987879277756976397549484755467059521540380166372614834991999402235817450378926300862172945537163774824797877180284889707474006271034259652594771974268920646044429381569250337470972258651751371793492932314642094382914538345975608587253129886517665209765166159113625273837766924323863815954334164107938252434900525861353371182392706966698485254488506284129256406310288378052700655028632627751399480140916216448832635421609372292072656774907856822812266312787984263847235167298705388081143145872786594123902803631179379246813773708040244831577534412188048886179155777768912046445264806595569285728131125379486042443179591536210576318003036007364088587751323715853528226039862760620869532030342554703921040316269368983308870348436176153829560971856587260728246011472720433223406560547648150256396340117763155749295646819463837271958961951709589122094713218400292589253775567106834911322067341085316411182206040493158508413995992955115268892562256205484989983706841006779864608941286120088168891982927720134240958303790529871409614579921506806844878753821434717529655954162419879944351326746705277002654293487503546331125846944071246570489875841060123610983216314608874664303524700472516001392309448031201184494917525756388053615149953035730344257866388812804688907469518630296323637866668080917748394311926297962380777863691473750439812728737104441096915346816288811102305563643893197486148027639258965083885550868372434977639969499425742315495383099831819775661855393499129598711955210009550307212665468172155028904103721365413647081413628895990699090535305147725107180718717017792485626736354154728233337570235229718295709660501633859794046464017686873120098692555793296571303610263733227973441986857409767236877910157644166821590280214436355709020082217050025746049438039176913928025384411018527138730878671640158695014602148757157118955708908133286132663110776834814138791850276880105853442300969238493305803917679180908580651659282153620000478001671323795247562773466392995051865463220986916125901420872712526265843682095126371205932712572873664953045271895114641488755077873931556480509663582303481495690129831409478246152825928913452816446420551100454203833729686353480591852218118500448782543140332971180915989573183887490966010737311441649106559994172515503028171896831492964032058512930469695254434464743219312479926737548682008785751821904802212186968067804098278424264690558913154949009752254902432326449729617817991378664159600779686215842074160284823172912480875693133316834103632690442639953552913538484893813066503117175701437706217353840721471439192868990249837509531518901422524720451726157646027724381648411208515214806846957689464373583514711627158078536116017952585165422391990588227359072478496664696353673833407259567912283533217777893265952436989796745891305637425445172793375812694701472390771150670228279124592027897002003244626862520266950269750186372506114531498948939636677781483747225905272700917176791492962850387538636114411750185125307371173316762662928107351827756614711709668344295722020169451757291952521617028642103068060374375184693117175480856140342776905192292800621488098578134923518517339700750494850617706757633812598615829881911000651899376998668323836216922286247052892508279141227761538656419268870303373413951137359425800173065673988433721270471021622511333183527950138623150919816394779914384670278374318716719969912136171269360857312858088414373658858770479755185618753512653697345215313690059599112227322543080382998442911430937635458105136647078025270378281936818920372920129903697234224023717123538677264519697003958455130222225264025025610432818590514250438014930083128672672432734959416517272080286512081153708767931628838272225761204526659161274991430637461163754457195415803204881269294705100537329749620387052889399698957823528633977408794678791786479184248172555470714830498762052924126743989171255222281582409810846306361881797704891744512135037901867441210041612306731900852210173007950244103744528856479377805660083722432749721230856859590802839934851456908419573862412191838473705892121445794228405054190089191646158230032949990183448745654965843609672110845878202707871034893503998036424621786802847204787971240730617079238727033239449442229715636699506186009952455963053456170055332680701706489191675315188885416838242786513160227473640935937537440117718631599041250983375269964885412561936296251208352234326693564292632369178072239328496945179428105624435159286378254590286417355718988612416169820846040295881622340799740808081129893914269164441069741209071599224858290372865433034568800845652263190467115313556241432756174828757322912649686818177925479757586248806187390153250050146200175204846902591983645644467553711697647826230171509378310425033856992990271112196773205817159959742108179660484751870257930894160980507453240856010137689599806320755059189446437346725572605827288884047734576141349251994354259166558997383964599449413165886642179726372579052183795309722500770728520042340482029435022817112639093012406481471576162919279954232099566629352681519527645769638381169567798724312068234609212854423189545779180948579642825056692168036104297379649323951768848982203413264838233502700389326543665136544223947748633772248072292619507751106172263648640234425925337670894602631166967597854059651628463400810538713280816276062168385435133295205985857575982101397631343988387212795509585235614682928512701137548500925234274398510201033784192575487478898092150581905818101146188627985171828655412679591706532883713616086430333216697449506331733372422020945015762866409537175797257754789306892711982754913633782253144014957656090563549450022711866101883893393622032826096106586366955957664963333528964532306398810446107547667194556670118607339812989074914613537860624093683951080610686824108539183829014038663510257251080072315294642453914291458393305791060685216516073185440873163884155750418351890950583965305468820888987963120553662182425870263746958683005705144048896406757441479322024064227008195187143646010631317124501249002565000659913673607664294354529284107032622091283265022711432609727658608158752044139736610375471076475341252911046713834671715980385700184376304280145126576449615220171217989218566366848305254271128379781198245417785276089706219974641855917537261623360143514418043879802031314916004721563115249027267813136190492751425034708825923561797908543549503659218883636763676284088716054439845918065155205327589435330746606154778284267614340132833435883370674881894518691077923015463520382125031504628695391354694251067343599781291002808057684735539302346082023920517499762451004934338850116086486711782543458363652983340833700105865548115502053846185127970014265202210526217402029696497540595091537072563306457039776286091316575057603254099337001131054085497523568838752457151342861021124404448855955937591727559099279477919790714387621968354135578095935869847122643652559364963671016574045724686249127121644222901870939095202542396817287653264850274373578804851466068085246784478064587699278916917558817719440818598229928200904480366266063490860801782804121000429823343332353063835117510425031093341753242185711002543659132282060205336558024505311472826166539734050243863714519788005493028852550778134748460403512658710643208891042290544055739820323629135561742569206210378622754839849856271643981162406196663868042594630311268490126637362761778015554905671110071271833325386189414291718442121170237812223449094919521151691261338026636965912151425237237900414971492618352880694359442712987971547438700115482244587051184834784125439703954021303959899019894507549967928064203410574515578998755991376873182809102913916563910984038907136439585049012122050723068399743046957683035987805355404943693377274223753131497226296250041281782400007116941104290737743023408170509920736812133350109211081216455507525344252988925196409380368804662758040691549517462164978607543715703700358134093500796815708801156912762909415662820508472000110837123474651087730459615246760734355100007260577409141211092318986386502450045324107048594046383251760695482829694483526361245399654691228218208480317139585128577415211639404986184568687917711443747829781443987672031967396229304475851690778402844649028518883588302208544030211304841806212690073604247356086601380057060758276850055691363465855596585707970834616311364233238360299687825804049464150071029609767593153230549018745795435483619077495991595533984642210759296381722730729832919832349869474402518303670602368972584060921036022237729345423179776816636534893577499857414856403819602721356302534655544798798468987845378390519596819648264086173088462137427637616572990550478303798535035687959680410296971151674031900939862903833154097421703173702380354655808276464132602893889896599086680464723230801300726706994158878589245532732755543983962885352292417215050764168355671641109301244707623822882972625008408904574988719356484406269909821334433769898020221207721542446670884789015409287737604909988992095656383060732419839353763887007271012694574972830520061112003631810183547786670383268118373795928931050360129329554990645118580241483912713186531205721669905279223342832633919776176274147037545939926233799085330670526752878203458744244786672558455335326453172528122193845696230479186344535507931509024159667674850642799216218387760747160429232931954645325415643207585231755663911728318898165281934401302207983652926716729242286436149977548860571441082093234856332076441293117242682293921950209737938159616185014887233402011012575908963467144145462833846920588100720134196495122353482322837323584496635288780097739476690198916182871429614605502852812354369843577861039069914260882266643774293232552722428016179685951291190809032406295494593828167570309604036147637546779155253244934809929795991177770230912296515631288847364012531443928202011195324209879790158014109901639678464447413759588957437983009655042556664388606378553957112473671405660860971334492576428492179391894768161743758480540102338152479991049486403495755914200597736071225270972027483043257004132939553004808365077247520033810055365454283503516636014630512145001401086672515003704131464289940090816137455701745906547093929562974540381370638091136896025268664481657477234714708179556786622186606463944200565599795940523553757016786743018783603212615344508235219003050242501321737102730782007662956678949717037178361596627943378660644253205788919400478681069259295226341686602766668279526564018301688381768751413760166594803421227428524823138831671283788939321102243067628932526392768516173047955935035374611972976479770884081027187160893006284888780295282629823972554058333826437490575206602569125566107176424416090985395315611894314127608136588859830194032451170777049786309867673152054557321386949014838801480598003953348860013928420422161783932531237666669995270557655265484327316173352587635357085658352593502140342340598254243688346314523900016310326458339585912051479976389153934383255413657333565829733276448061449603414955843069817954097443917157992066011480391262323474098751291119228093640789553849090809260996568140221697222162837859115260257216461507155576159708054048141852583246819887657517714228612102734615851159338769703864386751623369714919226804563792106775583047693701515645992783001062843523164886509360516065177872909029024590319076125260436949899770560666645408912040517164474009078107519285310127667155524865374032814685668598125544801220625077309330718066781108261779315223007873063775919791501670579492349487283062386930540995548074323200439465495005071354588432454079309292588229729914847188063230954081186097148687808629313901702670859249013009254850913879388926802755549460931563791831967611877576346122909276165556631790862266290834201843609629446461658391327808796960620414289662690026766439992046947770388345604434812992277458520644695430457123583015882769779461788975489114989690813805986325131314879435068573446043026017404863353251959237257520141993690624415167548673318347163411188006256202126953943374567310804379238559749723395287630501640547818602062399948020283537935853709340575815975154752597147738423527972465243513139651748205959916017659500708447902844472500012057561601097157651355147917237161767105354517205815900145453910005694375637210987095239985149745064634200041818487836045325463810776275383094577620373392947464437226468424827617180424960048510091484177171687604795585598306520470279050797731835123021096830966388746004712692488306522678297725075251054713672960268496667063229264884045952267790760321468576182298757681773811065567457032635135490192397549635936481787488983906408810211905420284811939189985464528186553984837832081845153743769796858165872236192001594011132345078851644823332192107487946596757536770054386587627371303941879114404435929116456572012255431865798237796408627340624900287984789580605082775909037470401596776393441834116462097471359298480439903851473672871983107562081946445407769288223951925707815507423028134355788418565717060688087075173836424375355198286737636835683928881777333567452487963641215071681434734672103126045362653976489200788896944095058100700171248972652419860039585030105666810558607017074349243344154759749773137392485571843600806484881526335574992797602935757411599509796340101236064934450734385037098919122953116079880163987526788766317698466039284478689957452783997423574685357344464214719119228639927707888250920660110560787889236076772158714767324152928730364535101179543261381706385051373014947797683707616250722844479696943229595266189898549474093100131874557612501257336640334362279566827793463707478837722693677456218016744562521330197279185343143207609932514134752899384608929436508173705886498201391946019168213334326942063234287307322008469596548788964447687629350019229105901518851066420898200057649457347584680785404003389171974027875660821091511768237221512047586083857080075448058132401726569596009039267442470159594807030232871282138973271494450698028119935551354199508349514182615842472496464484582777531483599572270217723833193569495099272076995797497808271104074240928495819176877121777726257041843294276228785158763511156029630117986087565982365552087282633591173731041521648813116738213147720065001628403733776507042613991987331946930933230319169666757941244364952327583999646199540384149145222571224572837220614214129107326910845819145919607074128001881402027692445374968101187051096017363781091493241871780981245438734877810440655428042475549400370532127473686177025306835826848264206005402479662587748534935637155311471697576909612427884905334880663062286556709199477658021200366310980282162906540580609071245486683865755009746147215675957163755119069995356018999693140931968830733977671688829934709842275159767367927324955887009875584170106508086657136698650334909713219725394287757976776277413132309291699008499123280559411015200213680026721815548354878453714420872016251193724610312691848320298068398792219726352282392384761747136430224141649902516984444614562057779494896831439500204061304337017062060512903788277169128152610762466901078468595729236432644942438879540081322343472743831417174592525500045586483562724714810087097652594022591676185312627514416835153729921053687332743815016669074074281674655606658104505597847137431636803121970054289759911026303972070502020094886560117367029722142478249254474286452622901909014923624086118410733563260931838273018372000695159972708269233473431176637207183772175325186482680429083753073648530675039909539652194475793387830909463942221291744967333121927130830574122083735931250970862343968690281424260512171162957669590972554637226573280050393798749759615339533106267840347312078471215271544949921596094331692518140844405914812986929745296792421226366894009963548737152600045758687623779112731235111903421128209195366314117002205059844415496020659053687561614120250637581360342859024678852852765473342047753764196007393433877712286131744427018863143372733886426405960414140037342303242197677797670941944428235103738746254735805860244505374284438004913860723915569771004358411816018063573890745309832442494480542658313773160236227037346065671279417470738209658799966382398383054278578532698936916984817691919795699576359528104998577358833705102794335933321273711547918155330489356187006369698293322465562927035499212399769936745361884286211339559191869010926027014282948535066430289322184562117756562618719609667741410770834759938602830884241536950820412365250644341793998286124697776495109369155507572901833285896026413538262823287564474402478244878059844111746459494824945056509896844967653255704755451201162836696656380401672632297029562958920839023109906684063702315092043093022256364948091420055105101450692233912500675055927955895221119438535960959137537316129786987741693100103715553425973851957593709083557594670607259182188290498918702038970054805735726550675667786948729574669307823371967935432674652494526955050877096707477797023069874872934987018957621004767754970734829847741446763632030618953961966806847663955472215510015321024546700778075287002278276682979431187500326831280217328900994614568462876211826867784191789029136354734956703476411020652031978772282062133016939750253582317323534224227787828939471535685113955629716308252536617333664760541229604310884961972920209494797136179810460978536265406599781381892144663433006383500835008087231590446929324093378135467135433547177458049006776803175206014779584313402901793450410470817450041964982607121649673278710643428388036181312527889135958728233307766409624451447440498894578611329610523866467991925908036781248663419500662206970073354120515683630277960483725196982539378497448521357804347322890557972835702568495008401118336703771410339289727910212696283344658835546784239691106661276586781876244019076955607152634112079831596455421583929112135394588594826975565945782262660137288929779634451526224338710164715830112837704614869528921289412290498765765415541948555906786426453431241525785314016295860826556789117035922947483649841231591411988440675803742263119995778280853775596899505243489221094711070416179153689381039829867438724749575490234020139225885679108915362073200710633078420851602670084717688018452945921283789849517766317813757976818924378068455114276277476335277288487824436969639082365143576151085033124167171622305697323485887670194684900204444307300191508211036891648394154685099139037439702277225198606608382162149776660662722574766532790437193558520716785068901224314927015088537630685804652781820302739098079606428233202389319945887633408885306555091847529064730126322667704555637970627993862941416872292322912373468628318155703869124769610005653996380263458509304098342904608946061775670239882237809523265849994087473755530155373659389273405214725800591978567214273469143962595505330524036993462847401996897062422032920999524201049081867233507088828361943064352503879734526605904608728336801748390352665470619799781115120982129457864836467324317661405706449499992343703359671386140924713265406094137460845611249276306472254031922508910529883734542558599166468583432036286247893850986443467065496949260538506847549950559960011141265883817804862380994915945174078567639962420250368592859871846840545637902525979673788858765668347346827375449730684739881745764527862741022881109359689386122715626235538946343301242721797465479753610333944064394383608030084412796884973944808200362579704175721042444629411503587311422445178087391696199176541065407513178176611183260223717750715582501482796719931742361981418162804208004254813695623188643917084126846174743122564519927804580738737848581660998688910946730212085248279023916825151687432806704376849234853578653390868418610797926478363045832977997081306466494303922735266372889970636448796076320924464233209504984293175449352011284134890056270043963795142135591089768050955735907987488596082417638596116095967217142744962818917120018641448278671064947525812935626642562276252955330184404069897164606776118763908069858265546526137164776274204711704973089636331212270141317735428675152202351501718757348410366824758188649226892142153755092361803099477568353855267722670322073736463271507711826153123496721259488381224577940135106225199288539249512123311257573977948161733624508851331320223943744526379322551008599807976929262949524333161279826194687179724322104227454874236510811850984760707656220381808845082814341936935214649849707118027451112364329153831571025334091041442445690228100403693261841882300606456406995309178906913900865035979271768549875467588482676070444090338551617062390579966023996595710673639936250819177676173572100347163887305036314782632863193240564550899037845573943919132850242041505582016290360383890674330837823248297538221716984860282210191794509735737015559507210202260689815882121504012073632621491073114307606851053985896990679974582195997028801074962576197808754438456721344328163685469608226387364487230202723259672666693397537341031112854559887296862256654161637493164506031775213855796570528693601689912281302183723052544170839339424951134654824224458935907474317860989173282176642065234603506552965927819840640408657448866369517211237485966751548798709882407718136584575985508154395950702930001873256793344284580136822995047739490676521356180861093061353468496840812739207934038101486220671019616249816769655074950813647389681912824697505290800378249662664100347691611389275146933051959690628102553815946446096129870807524699537859630246043751412695222457172441111824832049593739992636660871659879041880038460172519319365661954138793426268159914954808991472051705836933565475895909526078928047402380621109149813937153511611388625115793272763965424059725903816399124201683038865717235321731499616055404777248948382291200778050274550215863903341800324985972161507576108516627799309556047253983196481361225534380425811641243348257648627472769891983747832482889949674544213523492001129530290629472253902153979166808779640623480938687199651440389559192326238924808992780310664703811385970209139501673860563828860028610771467499109002576446427437473813614411870002982001910065121167727597795874278134082681675236364539633044897202302851925884834640216401766769644289890723934860863875720549674159767316508798978260192204291478143920239164830239077853681259534318228774979059317589886643082468731673717669081822760248095415824662388286512909890083730725833863675982047983442982007791841324857074629884603053183285080647345398858395750336687994898982556294090444368743168718986406282842683248583513168278207590916266577935310851900241453046060503769872954400634793646122348897495849989275585150548476654725528216625354152749323942914261105007000470896396977449055846038776198962321287961427206228945628420101009241878168894287944455054265083920153629397111890220050893637464457836443207449736959142712689269623480683334663046424763589212169090719783288780036211496845377434904850372237682131551237673479462727298551287072629140758394924048801765861082249237166677193789752440413109999970785977082129799835242093465843410599509767306738758423428747933522493617456607803874074089228119143200456964246918319489924228940287701293421558682455742809442912582063713076708925713479428100285404022775496330402901920556028225589667635111288488689331147051381718235124193809565110518168135482080265146633098533548593177412430144220954655731165681595645722663686218836189966502489764079298308861239911314960151038954907544124279308033267988518447313058600517254203455895157572306357992792810225628769223229983169259315093375587205841092423876606904592880733799870316610597938865540170376753989149466983879525266419924550899805492396174475751778126539883060336900655831261427416915719656650091555721067383356998707153047683665213227406500575135764868212793757587890752494683419664488822921351621169281665338808128390542366427951845872735087785290528569054189047014699509580052847803739555344884833374067987511002598410235792553910069269852230058808751182085115009358098930301726269560378886234899451102377105684946832998207542895101362420032680212283927616631818261962665427214255889324757058996482194392256773500069312682821466825685847393168243929707930452118328864284201430713162801339456332309698304993139621164199245728962525320826454395613914389501930004984878860761411581266768503227798222072988921030624582154801765776543639795044964085926944637181548129926403041470616159890070825694394804225361775052895180695365566092354175218466640266062904285538481879867827794733312525971942500883486980294011755761693320862925000641373864986969132303364795374265304032535066468959427137382297432773634042601840708924140682634860882209288684421497709262522721455065251583503351214317255928549265734838904551797354365325674692192187176670400916383863767177933987484920590367690753892392201015407033121003915442047460480938309165931071281973573077053527427744154859859181444219786109464546265724967795102891703600763486015576332598334154655776107723863254261343696434726250385927931393504244951858790490725725449749043219933381786929519215699602687815936045527247653817546675575438726055743626059023627543968797742031999128416682109999263625757967883446360600294936722759255838768094163591809857883662963363076979172719737977063961813701288293440523703711413297785528862633354433233830511350193510054264186685762794000873500434623253673967450317989482075082472039842906632668877158790077877083426599098709825219434905192776494768375828210853728614606159577401261221096277704620113361423756646772191166190897582150931322038670419042959738053026359818436725117899095881126826944897270844707746025903422904308876285721941489001004707390329794708451060514750422316991962434764076474733439097347786713070987451054864979716250055261424020166573055165328893060185509803142073121296757323518122762610643187599312703944560563836717983837333256906195439035119997054442174727199715325418815640180098151806882490724847428657529454084762017568801472652386992260007802354564571640550924982257471495222757413915603268141733513070214433732187784316536297685749106824588663961738216918363169745131490535198393333890941858242428325530037371311400121586663335399657811512441461943712138255334616019309636704383273827483770183438743226875809426272030324204995814451825406553257282893657718862264040683995013479695699427349681877517976617670406935987410712393320201541622695785538646023831893083802841056687075892308110866227742552723746523386105617066848887055840582764848379713259509020684013525091689385008918197436882191916987820243528546712622433155085026723340208231199632011548841959032833586228567413582006165406029694346721814508136753444132073577476395318740169165395087715422815520574064116900859171405791422373363379209742146658433727139036202444982102946373087903879570463457378304665799467143750867603569381373419176833082337785721591578497465287312185344452547519622106083066177784695294748640786428960784119467264143118348619326636677465008688806328932356544536589007577161580812771450195298726879232685322052587401712200362755288861791162852367484706460381998882498062024534399172429801950442235308547974690494169163123875541544728956894416103312768215910511342377934320596236248673840469493923746559191568255718450597564880045472410284819049090765509149816373389390071334867007001047290855000622809353121478713351024028544472868173349997171788367217685929223466728216675868117812924491454492052197381984980588237995276269275199651753553182984249048989569822646017587647864538611913705587241352158346150375481324661429315315851484686361622137156379567217227744064259272805986677754189019087306507320750909279393205423316049268102550763165207567542475396220602526001190696150254441342996439884729304654091365860517724383659765043724391170587544560054151300115440421229201884193656872249954636180845590960751606121999357074971867133434286916334497803199714577023699629293812680728038198716118831300577545622558358402698567628770265716493191912487188822913186762732009322633852096090142939832443747275815627920075908668969640150594463012583026966599556392851773619940004714709658680854869388550250467312610763583422792786084529702365483034979046339523319830433475724294818177469352839165061115207817947951926991964748566318436476765126306027627387290271927912240833573353950348571622175171168963583291852954547791685766612944434663492512595141700163919037656991178492981412883849350991698143846900463212889228536630259222605980255003392851793294902638000286034732240916067520836250634726760757137086243638588395292249980051478850758440437660366378273539105049371137612995153169601549233301286838307148881965073017530446113289301627994007825165854299990989368499679305069332185661693942336291815092419055536077766660131676541829729305382609454314333822239346055827548709700957091488518657183905785527425719590274344148769144987514318836918185521054596224392362756862747890414248518078195342640398240680454884352145920253862375899488459195672227697284526124778916219461421121936826777883165011356226490364806725301741249249135684423745567296874020620989433962583091011954339561610372775783444045099609470902007913638932798698227829070697797934873601437792776795157658163368857958977876520381332587171688254457599775733928379336319420964315063012648537067452059371617322945614072381435222377916822347918638335917147655276541563825004297540312219479553006871507161678549877099963818455472808742958355077765872832199309021397003993061465745366287772426743772801696714528693353031851378040924430112261477275564395381037478892104104338767909586261520132261551292362110316812188089823336244223087544649719839804527931279618499404307980349529617734593058168572931354907033757074201526409760161832385452541496941917309552691434793578750276617360049335159847151677097545983566494056003621250269314678793105368238716209760761153957483201972877516791427968473737996390737102510123466003696906227161584481279549985677536209593401024733044140690156258006770418408761199379095303946318926165110204848393141596923987385424767098858105029825540445977343770023835681634745552601047716948466508373128157027037598041765751662579364183464612092002223840490177430119901162012331015337909787692038677989839086182613977813329206760936947653926849686779021758529638455348105870002332460568717490288678662683211094807754254013699794029559492803086771697025656522167587184925001089143918399203146377070094241502286144314510146235047945840451198786783484332001300001942408314208637486400844573725444698029188638459157871966216881230696221193447670104081134675532656084297549954744528344801104934771308760071406178074989903266757365120679847740823814304457041115056604225312169601485454556364379303667506828971464673840114956214525553483589543235857851487730971026010720276825803271241395089588144859085190816746150281515622666588116441170290105936994636527898036453015663341811991544699942871995674265335015367352498840390651814202622784652322914544498898240710745481811423545750545502347390592578124205939442364252966089360735262890295775602530919934501602101043273623521003559901047305189311770568603636115914686819697344062901759155878850990355371436987344978608658909765851882998496584387303589860817023188289276163096487960937343829902650232333164243636788512576206163948598491688944225244525479068998235578474112178634625720452589336139685362428225213234154982530194371837278062760986533911191526589827722900001033909976123101515271759229627253238778061498598506348460371410196503377012619065446846793065463798620901031086120429877970095593876984297778628006867110276019261680080222177688312598295937258664556853789278342137008608662755746197629839715694816841586984784974938209716554411611497058633691517898261961743643799312934914989628283163128920060283860785583368002974446681978093880244344120128876250948364443551429629489991536832676823369807539209196809979500561841487808227603693259055717121124390236471656671947303874720101687149089253259999397986421986892420444280321586417640697968260598055498857980836410261851965027896807423606704592801589816453548948186933480955085597634275732225304263293385235172355425811765194710346200123460778298516450641916351854799002016514909282755640967163608087881249884477441096400711645010703263016539089832585996599669292739542654542430062867523451865219703458606918010698530151359613365937276879726688880654162396919301857154652947838191986033933835728386433959222860345109880092733212718345035875370471185819559265078802956885699297595049755397139247426408732640316073908211472897456931108683927818746818416124748520075436143468555185323978196648798846727397156758768086156085974965240924711482895598982516780267679246588471588728262207822449880720591409556106578863529298133711111277934605976960808702396246428983485581496445418522176773708813325905421424060986603000563614420858456511432419973384660234845837206702436290802413350020311334891439526601336538254711786195197758385900759621110658377856969949572598840834979402639728471547734894811854523013857723652172110813094075680962152289079941315853161030246097961152974598830000403333213283665227210841550611668643049530642583750602723841685016066283547157246974688784026274523152027441867166156202140680074775398200903288112717144176855506829861234016400571834633210809674311909045300277379172410377965382520575614377831128047077664117753888935909039929389650381314301249497882153445756533585625764003341533208289715880558836660211041991308285568365230760378648838458588997865373156716700401609715825994283073663913920120955547324711993623444005920611327322231734037594760477885184802961739482394449047490193747153099320270297018778767905240436487014702596122628697146219487038826502423416026470926064197743631505117874009552570364811185504485617403349625393057590903177028891334062824561297963534101813726995581113839620378343723954946045160964652839695685454072500205748209405216752168061390387476188322826492276167182539923606281039899140168225978219845040194765353194012587693551100857166770223035927625406482766542102293757166985053446970333131848623663564852883922972494373132288397346332261674806771451817108344492097598057807816098250930730827228206389418867833069208217644114050745560971864319888527348412806271912586898537672195598615128498844321213010872467251975576562997676383288822565767932452581978820824809931049006402672937013436589475634197572562796763595999555004424787334232378220433082207865356804297339308343751499388960895489107403848809841895570593277067217161177595482932330016680565651512547291160887235979392605112021086607081159080457034385923539471147952615454690946712907790070088127815080044063119723694208933202254343501584045311236300805995543322758386229408888376869807142277805455187470972530889329437661350828583661540581138978628151435652034722813618753281765159369015636521298252822021956849169048948337275336540507975146342438464545418456858791547693531636551077869467604774155463961734530490339032216581536763567888104430145081948869305679664617433485899177394066392876148998520991053055409790089734094875966186407031261076606939421093827162536404326198806769464722845388482937925668426025785180700799233198643478614053554860141572485898523686398242701548752788000789882449894822323205616810669828940097591097207902478672918495205603384566034535005574802981130643520066307652138002280016909441904688560535456626322774122421553723304986774076640821381317846637191635859583385396667785012325960819177904034998634809917349139492165710368503050985019716546717181938339879622030663579789824654834467946460839880735727697167542567989836049276681299692452407517519027230997514577075839639444899779683267100879624996204103104866453005525100348980013483295985881929563233277134523439642720510310695660955972516544904886788088975458770922887818964868753482537373697596676053312636266367251223766280009344282084481232092825284626381388968820697811807254562974963483929403601763648284706451232250228743552600565143477768426885638989647126816023064242084245406060299717302465951805725860858130528517057357814402496236544920951550855345325553720799396272493841293777336544500217197789974954420204843272169034422734425639753111493679404315756526085114278481186475637690221429105784316077401984191139391198229817688926711424781601502735431338091735108772028527808554519271495156566204227067784518187779877095240647101572606297918004607232382539195417022851686115806876985500981753789501678806503365816217612048049760751249774171218603787982201404356635652560039783694838196701693052660705262265315051092952407574889470095736029482754340903616533333932198568185959785729739238568999275767375253649568627159536287339954776849334404189530162652847710476613485246651599156689068779058513100727725636163594646368303046120945274390195454168761977555525491747421211239373131251314353240221762331143705999180821183937422862403274217697203435688314008458164957997562620560886261742852886097981918398386245201996391542185636685362073617825561903668361235847117018822929515848986294829751397350200237619881374849889674282072062720989160307755384653336771019969606099867010419314136182160382179105581860001376753373581173302532821383597976746703150950667356362747918505597974719411736094653678845196369590756058809625114798883350221247245725235831118215659682900676075819778134343206398909635868932514915365095281971637845308937611214636784562920404284268096186651961153635094213665311834776658369854984599343315140107052939963745254721312962310908669367284743620791090185183687273030135896395884103309592520261524510441990273768565088843680125575098030894155813371571811027556083382349286299048357733293312003575155736258041165861640750060000252629964043056066573614579635038184699686273606725150429536999111291149997804973630989664183616668088525725639679448315163886418190657753690319036295770452258728867163987805565072613247692987607000790894237574368927472307854090366746361036344033997969805011236729063763857269420910449063536031490807361911227662559338958880417756272602613675727505741947765004759612094649921699169397518164230085710490116724321212944472197479808583331806689012408574516014664858126575496158365281521997755542702547760258759744071459269906273476199367111905568950455416309473746507254614646354575254291720639181997688052595727874414256674207311251175145560257669297982904077403768468402589328573432347686441147242922444735208196331987840255656810070982962322091996007697927038502966144699465591958202228022869791221944837648722486451193554477225348043064337992217519043957607015070970019126791110527567363354099755682278651620564834631201641694203749940870494451310412984683051738750729212759283742323794719847040032797311317176722971964757211755736134202927076653219977429276753664197060562601548057236423944933587524870405154711808871760411855796280269176140940303748261732172272326267928512914841804690906551084128697393640781360112037208536878395590534565283348413840526807910328702609011342062520283952302203623796482220749019197773528724821984447629526347265569962045638634168960350769722929319156709746734401982479494851737327551951717265817521751465000577786215599981584887122842894624239713605879454497602413235799501548421724504852127659908289544416879058386366980084314830232957552763320474037913201324283879940297061161681707955446580027004726877297710010360440067991537237459040449915345478066060507242058641816415815485386560898703972228230176239542270877943019073453636155292226386067318996408078146527917247730822925033212306338900391502694676601028605137127707719622143995011463158932505690365451517989043626725308251773105217684336310409467814640929826350488131070339638146994058005979824614437143301736926245413081379036116509091468057957398632940668393763821071148150411155633188631884896852327088103249606853843420889114956747537097026685676060677860809412064227125702742738231219382632943041381556047041026097812259345693795611092361758162081627591868727560037000059783342556724034271451520947304635843685683393065631953157244496713736392621886116000876572386406780311692096173622288191510917982373253917766504986296915233136919850997721571406180141994762103805295132731479015473772916433441288750482153784643555101478474325811672001676856824753014538202052687577878470974316776123719761666619505584553323057523270242439956766282450419915821189898626008845837915464046766098457758164304505531833648025377068480558524588796593583234884765780690908776653952907877478504956641762804649016875488807575154948890591048769891745998530840231401852073350011087940624947643435651117161838573982706922719652958092696904194940042222300757748449291741812873540794521983878903974422150440365507750337088196602768016357985536130187989968024067928671931833891692227576057628692031167198973409779611091896306048735783546986206970632887650411965146864986514238132224585697991316847811124653871292755631250095541907524587000867038262785478897418387105565787064802570023263906013193017764003310162311103249355448769346069964354405513162362751769502576216652852236741747386976447462305552086421227937786616186696339880349418779030647240378816089220714484839869170828864436271789330975558660816959155206433702532539021760803145356882225312392713928308804897623707725235679470173333923761926007293888890440190583508767609934658455197717381731172123502803242333137215855143392746715666708873176978971318521883890487670508606078101524196196895347254539499413565679140999665949179145788496611241811009019668162784134342260264257706670124870332112250867717170522931410939389425253261325518148282036745474566949200190369994635626789705530878551316821299123602622957039245087274764053042898635131345182647127834618345999282385195753304084673700843736027064852024535244360491283590885869327027599981875803915948946142814899591339984634203177143048949425378509378019459838861624803747806943869223422644264709985770179011941115619296092960121669260679154226770736630887301249191292096985185250987176895482977440856803399587352891226807609884692739818836290422508694656808225670940914993697379271326780037988971111913931872351959060760382440108525373390886717054271445454796975249325395759095148606415651511501858837431130326491520997822442772627961530659074854048016024605510819350994434863261816537537113310277049955520230311262024852477159494376091146959742198114366435741871623099417424190969439931764344024019566494348502662165834896836045473739138440745110155023934646098156623074968895291172478548513526762459134723510851357125276103988545319904537635690382384245910095335157034441741604272117526934453307970658476853526729281849792687274719779265992438789895187778448633478862347077156764184045445573719657791117287789333925293873437477411147411460425717093712550688132288531104298663324376160687838600671160063250891671048980519085761598261280110202575449179606009581793771014258678797514839094874982327783057491813277482142016778138652612440521077407706434527834525237179847025658689122079469431592331173549056803699093408519593353906052649286520702077323775623299429818216725273424877831724325485088673818794814569491127387782305796530817769655750193061251751967093707692333434959821777490533456239012233204811811529606488782955223703113798336212810808832119291326165517875727436525337588632376921625967374162559217111568513538103164254701075740208762261602410870837647069571375411228442483642938018815588863015197140699865951681307358422272929041600139931499821746465536314284350959819975745386150421706939888142018139320121963955688770289705455192002638276267603195386063741923611173617965063628849838586868853117551959483069937152695864724417410944980566973634538358264698551733491663579190044601345700617343141295267883687738164697542610694675765636646025760154727482798439237808759388851026471407063762690308159730917495805058786063426393084074680948764880543465565746031551156233001901231986488692098085944613386810817614686285546518445754968417335963223943965212529675746516324355376059558864799615434749705456159205289168831503980988514007831832893219799761778221749262993876384250836255004982241831294662599782211741042804137721930129087385589990023897846943764080841241396947515100561004378594539771218944969136357275492755297707644484543608552351258460938011134743787779778649894563834424060551708400270136277913154969600453314056105914669563326166240332799200350826129775108734428887492338486491553817393693020871318446664141955708783409634214533305421335863277186860948445398798797918240643691208445050259873134086893547985099330014157028473983676737989108855565357316478624793170655312450727273556898112799594289845426292233751003941428288404073877442875363918996066769196464006400713343823283885461985595017238935343731192766976600448643482407055501558390227061121950958399965332773748523259414929516147189384254606647892012293733818828344282316681724660085333352123303868157812639305137821821344703068659164071075703995813205414428875858428183669240323648777781809417522695080047608180641161597271668664137126744173355327946659450430576455524060926017825078266074990534815805909021407353987597780701091448053631169969259696708541256402626382727134298021654834890595944341721560301503815975824843375841224946500236084957294160525340049340662559348976526141024129052440421282484215921351930459838533960378135746752648571062329479547910898395496931727604594977026031919654489852493153289028916510056503350571624255564393503152458465763668612818372523955552109293326370983219096208300268177002923618997653509153728067167373941233593533558368214269900897828884639816680361831874786719579916615732754967017957495140065618111032187355636201438145345874104988279214717724791128649913153454333622162137968814096541573018383773796643715164204702118538506363991701394720927867455261795428543505009591379333972075421871996795459679393324828559316784766251143193168715280429518689180197890412567228971840993977031178019920523892104392236267536167434392801074236724143910814037376980241110070660216539303503863639940444740152826126972017414203251191147582421098383636412461525321940214991425264972811398103814793346086072157224756961063725352112949292864912782689969774590402285680492341266179528295625200809062810881471468277368786750175880336720265990555420791045521684888496311561376330599776757272319163387367437479538348501858118228033694113197633395502737301088521260970476862701352057716563918272807137145336411048708835281381112620691054777013180940052528771439540935901418515323639275230076131559856569859985114420107115517327716063450925336814949319447631054000339786467430995917204611679314935799001754678728596556834202343992654443776148031109047064777404493248599322217215883130028519273305954213812184680409580457458002776915254560359968230052651057393914468418045847223638831998260384097188595251979254415961875667213911677427394404241596246636585420593247416956795048836907775593562536710666626994407027402609645827891441940512384724503447086672237342030140887336050647876363542509009085406657077675337119997703782119715040636536995395883604268302295917221036235625639557937489185457175523622401666291082065853435927462989936962051358051652988316670119431622617437548933471859025553137250793284953478344546055551148545578622396658503162704253286719526569469121231312312880003949315290387345214359941087594126338695819716726250664405917520456176586402410956793002802426083472801357375933336014648734500256181813478691700210203571401915828085005431120746153036919468726571279613963706732843063728080004540247864336553746683450472192004935121674654609486758389022698243351640752937399860832260043315099952027147507016304604333208522086587262306545605013866490839439924644804972557068750444907211229417886498617649341029326327052101545108846910348707494606791971702162230719983420035926243199273086060076442110015475802628212253662952088520448375515916975688011784520667793414045178467090833495655687213708191139419221034432277648750164816356070619888986495941019498528093661486157190020450697377342352653269419930338009736327484828137025653484828149121573987288957389230274398394163868340073899259323596088980387194833140685906752341951731665151202042932342611244465046085064781215315003073827263079449369942186373784586494138218009607704652137385439467430859455931465660543536803670121271802350297796062186117033317575148720668887002318256375978830363406209561268509696414932241952495833182849431729085132601976140162030833973734736198749667767623338837939960256460819207958200665858486028996308946090229937966715685057784284350698236312719316407803189304028652029343885484030367216632810554804513015420872066896865719624494399120011544892805406363679345546674977266625413335785756900046776550084480304127593730071671430424930689454994315530533727839288084442564207608317647950570658982157365760189653904312342341617924327385225694282047306601711412852208453794416250389305468933322442790858105561909082902256307080891068361537948868581368945014624895393808659440696874133017486606494581676888809977212958529380056320342436596659260821335018135835923510675133298469942287649339499560846391342836966393406035393845243336459683354036535203814039095238999402467496853345563655358886940977574223126304731399855886677695895340692226868215502809090691294493417617461166881494395818614298785958470134368578431105314609395396350934655398315775598519951704771397439297286405998902652194223143334051389584230679522770003534740936348469605798523944769570796201959937820774633923416389459106448049930245532821029864291112100270590725538781688544274462476015238727693041991825263597883721891893701039521716643214084186646776647897892403621924290799670340683892595193797618831286764240752003201818073617318100969224240825308787076300410874104935852412488204244648369175119855941841366666275030833123678881338592918260304470326541043714436980256521352166178078601719337098473476746242233194354831358008833335998474317057603590865503828493155003086979981354326029419919386329383135921353208939336016942769752872005242730401683085364467943063453366227554625808472900052454938531831242394337379945110680124691110441155031459090209785512173341763254621590389245862517392611493554197011391291981848837650270515801961318878801434328823983536437295270461972287082964432501449288892432510213892218732511537942372980585741217349068915123177898042068715869796048843298325243828589211568144318204756005441672515407858256173924503768461133069272012370894150693350496263036457948302388414976400909717548669381677362278359015259924119792367996793690621270714209763311064796677024004484541413335444003702433559192809826629986877915159523192208998157942392941380098227244109773114553568872733937158814582467102821173230878468928707630601530223865032871684223402233391238843225362709459771676781836954824207098530402951010937158198348489915553901503852098653701744659183832483653015852519030394720275228103677019325801670118921886062196764594906734907957819867116995939355814613129179583823853714305982354833709388231703656258313180415235227845679224536895751415909245835808697748179223608789920690689102168716948190186032803896865860712511164182603664053722517528191488578156875353449631047722566877190777187051633815647153180026111416286900764481303713471919481925697285272432125443842398421659386246584645693374630383222003768382432623372615055338359914192152167030867875367484879781594015120298464307559376164672088976164946019290419638234762123229286411052668889137862281204124676776549438776453616153149843006438277919132891156642608295262473613301255956472996681877988427691713175858601140721532212399864181620988359487771460295891013983381154795920875405591523030104118686063994957309996360006985071339323530714448472033168231060743942173683509533886661429378071890704049318626577093967899044086249857255538874685815350718105931834243187307101058240207831970173088161582058866816507757552248959953238539464071045440582317280919146264721623835478614032463686116577716367847451151302381430249886563193053421990757930765205547660418826168049531809232161509021277467951414020439460757126160745097811209447573077180136025658903213642338326221834941290032555362856446674533571710340386995227054761528568705111548287975229965827622080717680229539991873609570749988544475905994324068168814289955762228604867836972432527996298516276733998114619625680316360536920565424589102964333700603216075666638269226061301247153106316497947954441054001567296219360204138684877952680195107903163153448404026393442141688637387736380271559484473584558409682063997400369445615696397907262430714644890155501090042856441191970119779043829500490683963976697077246976554619648768189697377541206501858338782938593934171063442505205006743623754986182396108403387698617647222607405126023922717035933141741819508118754526358567498761003426731110914933275212912097671961539398825841921327408548615027287077571460562365016177323233587895486021852577249622416632454595602131458873626702667544593759415268407642484076227076865575107878088288780538344013817966824602854237889685183252282497319616710554845646541760981397592273681089971032264858025338486119775857837714682459751819217808329709429970863546397446751190697031473553892147776102021650341135192930024101027428459095312095183156399834255952471483660709042994622978067837887786652814345930451217718410778267972774214911936090020011538137329805552220781372251839917712136492362551743866367916058191724444681618483546935750541869418255087088164809505468920028647638320654878642683112346724149130934352819910755117999373829023202973305833584681576510350699852498768728529654917878260698960849214905981003216254888220893516567978773691882177634943748933073404344343283086732917398632802013079616249846789978513511987949253786591286950469880151656762130292102401558327035320562914307244721109251593188844089132647588050127429802256654659686241081593660358667669594433727636882088935979263047456801908167089931549012042797344560672381290563672865788929803649185150838474187320209887696179322402797713561121749322754489114582000448044558498471060950896406839413426220689792530380723578979639349939473734006246686598634932441457140995705240517605153551764755774502314789905341558135099765803569430131660273543954816354273173488571705785378870673258006386091110640466728963580189003077615573567569710307214543919541526363744918375176320062223766843228802365688943584794011138733776074291231379504278094807638647619335946525779707119301178784558379952437534444629709447233659770136545136940594138920464263568966634809761528141383987621465609567556420690453657407701611513353139559997028597823467926346452193910085189548738966031549245064370693331029114788193572893736052713776736747512338228464142524562582828805390942114968089458523648479750222037799998510842345559393543250890542087235245082877500189824921002314364154671273792674112126557021545464188708450286949404298940001059582210438514874036986938890288133001761790504388877104054095511226520132467503710367795206713651838526187123198590029428277783802974201314239410007590711651632424368472694336096462091759634034891155774570705271484688953538318684862467300023452000092176909295823896868392416972659159350305281671522361148702085944114308833247649848957450844746643062344880155141529337784758737811846163236475058734529969929745201885967245639671147349443654402561840989345799400692641036595637870215811051150329867045339177010955441437380888331258106436078890012420299953662205991826268564755154674479905218049857100753931765380082915367153048681213650575437711611835762031373402047696895753859685405374336842143598726891037779311824829972123851227492364846101169583279150079537630833679760201396206549716047468210614878067198971375869918495198760502394120867369967892070554763105558652642847407062480778440645775933875967725074528615733753742587377241507261398502232812340309752798538894341200953770991704071595072166598848264835086096771646860500624795004375945452843093250188614735548355840966192577818356116920753958967779161829585797167843884521251958096477545959242090207393072208536902217446023656728915294002319530772663423678812693821800577090741100255846083009550587675701074706000114428053812055223581635599970454553480302309501650644477874893645073264041249652906177341825208035225867732905639349799099351219519789427934392722638887412174511313400559509516298690245765779569834519849869729676948266345132292001528978305494368944399679108812596333837108689926752374148082125674465454530364067366965402433924209851419606210245652115322337342715448367750123691676030055229608696452180384812893614382976031323867358123663457284868603619487316786981364387591146398660327868449450463571861122887031489681466276078032559682042761257742960029845987812848374300269895845454433758416734182211609858930620302796900082931257436164575312496039288468937527071165650546959977026222731425998930793418950293968096989342520541353207387901332854609018212468234687405855004848834581131644714321981381748954604122413043231699512654523804170104870410385416673521413578112739372723874027768290290464938717130556397956369180116425913216594393158777752357542075332335834881633227045292065889113830800654918075443263572493628114589390849638210613420958116857031526052905538257900513116202741346163860981308754275669487999197650336771894819642584065331038853370120637792362001800382018620725506422076791480623386692076775232004554745992969870558265916910385617327456102160994540897002275156913336003003955969386597357858657088649098762550572652384696018388104529037655469461416369767329240870358548059776036861853631973397293974409888620352784476519931558455315882948102825919014280123674920800167680078186577618097715034700313150074867612683113294874883000054058889308544753069505693117276356159734355388154314276398276235272953989726715301106295436472185150035229248796985425371563856058174623514915122230195911023312895913734054040093443440069240755119755270628092610957925286400556061576489726931666097191893709816712657389605727254367982450926664003665564324336251111316885174045153367011986453685938487210616918338804372864696141840683128894246198235478432580388173155757675398524799935419966415510315868223915604625607644140893486692749835169291344933444236964515646341141728939997758207684045314285242604128597222999690944548592096730695572662561085553882464488156305139256554360445114970167595560281174933818316896230091513176577437720474336004816067466626191365234037295165049727655075576858126593718378396571424314476963131236028138610375251278684742928019323673545142643165891664858392097979648616179918754104822577297745052681456177565937464086140059922202902543841255346949363708779559180118276310276976099914759198526215649030112025257994689757278107231553092180028841341294523522048597023162099517903231153958116486314862959044150257644627504054246893717999710351846555601435156135128901598565071792046872957352108811550849864644010955880836113808966540823361330975806966407891193477711390091780461722796920544922047140812335915759192380896600361003665038215163970537301417792600977792033928444771029044459106238097699308690643672209230310581064944975509307166757660486551801798246242841987574346117351508294146345477208889315358482229678600529646831298860286091210297334598308174721803669285920229271997344795661269205825893467344958156655834929366467297314845159664150120530463862485411931456264744503707148244539916298792777665482724506972827697841984918609185324662414216140666550816085301328800355601356684045261777265531224530600761086203525044058097846064458014841037752260585189519018153294136119109937195340553065828892209239463495125111498160810784609269122952740710247198128127678975943993604722042945599328019019315150036176430527046995180051987209649455565160834366181985509278636222148530642925141315179132109960570146563788836119310707179516909879082891447581450450086620180136388088646675953056369901017763608714666096660975033572253182352493093620029461687285693201616907614287337066813332749345552037808795890439535156035209358773907689023640145596873582034227808181323773040731245854052557209145720138704304136821684803095832814377215370119587226388557762601040000673960477178337788247265577912293235391281439855972783049084867611870062198568077417527539471544327491568630469807738664024399004652125627909490140276448730191987951094150199910271205752410647083517384026716736459211983488237838336476347604140557754778247871157930353010013763330043406364063380530881387258137611776221880566803803506777404197002334840125244313630999439223829926458278330652131846938096647437278261994999607535217486545720676865008619016618316467090468124379472204043914109345743131316293250740020762029405744326012370788123921448382625775872575757838570971930383002112721104881568245762575189958277597423219371729048028273473188772328960071654822927853205991545921138411037123755224029775150792682427001999332330316569587421811952583667816763867777052425261812560500113053976382214002932695377498967812385614211030278958624778224721791601200475194917145278645557557953587889838738730286459856513363769209054861561509905291006168477887544174324014461241009091598854263836999114877089957595892414127545718365654225098700102555858628232163792825257612670295146815878357582392375013324166205705752861149466267802771158911777755292771713593902676822579013608207068416790922511463963459476758950261810716282572944610318137751121028591272408687824731460859179311068853133807794490295263882412635717071170897149327976962518961396165170355167545640751254200197782168262783046661055274296930926887384561499944507386164693093155072617804566402312579187204880712846594769679890436819458177119155686859577781589507862112320715118024774969906609186007834838161891709992492458181653728206807070425173569879784292253160246839762752297165703911559564515858105189600166213653962982764083620593706677771859142244617868014711700783767498733243201599843501736996336173824050127464156974219163721396685355115817457895990880928323330873979195220503024867383986684054541149953124522216770074514250319267174702753755111840522961855916477824160319007489392267169187227661801547526398053485937983127214810060987485990779865084020328577508643030939596570896912012660181199226041611618078486505641734739726830804436124974893372119428272492457417925986787099998743355374671421049340211741134187940545991577570168177722972515285173006790274811268009362581842048076450427923354087760875211564316488976249379610689532801198150212485076263429660944466979261648005579371945910312222333600438218169120691741844174169316501075226810950917283316837119700893317549131373846435315822650476809970078994190895840257058837374935535938689991988643471501826430988585520378746646337718536563679656193825371306796720328559370690365130180603026950993704637281657114662651923135796661202426831457602623330566228538318470951362667166807757979562329299851454937577417624304252743868157822034235088516925135611608311093488691118967524766881101183077883580738349982716650099811539932823265391563239953586002361581217936177697011022317308809083439852233998248362637612902996687585952135320773694742118622294704626146693760900569292204669288516086200616285820919309676529936424773413225943938422440327211275734189111404242382096585376574182840854529038541111599531060158606942541396889383362968327346773762910551978677073523551215373616115814153622520607022478057315523640416118328692108456823643227170197193336588726349241362656543788586398772064173723634044981649135241368347994196263420483256347599743453794120014914763347243124938483273804619722753979427586041148219012030207440466694577440801638657144788060902359307563326826157800595964936849500502076907297918517334239411438480120415793959277535809406582571621884704772232731297003209620585444818290692233451885177826439959856520386152122998240788195444921180475960432327144854875315237280609451287714820348837522872336321231648124967419715966525493045112730755915983720985568654775292640263564115405808896616413756523984186453191840841897450402776723631993532586720871079450839728332860954457128722794381055683122012866163308755227188783215059945759222403422177921544915056057581120077266444321298133849408567457572228483151190777366028579818159787437528639673858228910478729528583666000855248438869571394132105192966168394987675923627659830853470777936845723145928983599209423700884876371853527062113557399479154328683574753030824956532936424258131941707309127478767689689970768757940911753370299100799812385457635902921124679120636568911018601229997971943102276082562917729446428777888283055151186503501910861954061410938602886509537529701918738091735328198383558441792349235634209181140804404201769353155890615084472299248927848730655967684857004345365490407403478995732012309856008891178707909222825818352048551914972612990841901250344551951688725270944884494715460562342405409595826247756508077668003865249879269788054967039030598017486276065524499175090420619144846619845286665872914511347464934749583464506378335608750573065424734285073722318670389014966210840847136665422043103382608859543395600982988442130988037384819245884556398185829917678883173962729528602903351309966004883023964706629321582597205114078870141592744170962183338703395084472558470396837458163477291182269447815035088348544007388840627071116188822767054669868499134792768373412536750485990628266867332840867109239031755793331529990126547323697464558996849014873352977039093667158089845537065844586342165681246129840415866639558739185971007303179853750537473739075391167123403693472022066088072616797794465884975204457288861734420629110572469369652764366682279204543227252686203593992995177343932543210074993252083450212816843767702666836223265248834833956664021006884378318810855006313219691308437292860960188185824564722430607218062216257763273308089550513880909373629700377763252706362405859649510058566064749807714704241872165170210143070442984586509458742380211423691150748178892622958668979117813907986924778983374042078737226312587112131364903697504210664072691229358639687914014039035275181006636649893303851712651973620888514329347368484406082249092755954708954616815156930699445325280408078613640826483501855728235171546598121461716195985482919379545300192597432239321626957624683003489563115184589084384491388653304301370799911979914791344539329430172745107251642805668051431664979821391502075448388116631960774352817789130923841009151909582206381175984765071209702072849729135756839170539371789598488810383733093279338787967358136569845234695995361485289127692746979695945155282770983397599924411247478779668535704802636135818044530184056419815439305228403882109533506023153038042627993127185662917204245973101428872675244489112983210950599303245518291071356794651641310461583367595627330132048557857628532429432948616734899448710360653729210670353085362529983136566398692004640910583302066388256083417183121376816404803262016148384734419838689251619687997976118300524268834345931364151936132366807043335375101196998079125800337068327396696882317286840126145224414599230969843365783708554327892747090288821484608346655154182181589372974450820165543531418150763490336307090915032609751025739611352396198417112755151670193451618175170445448434704568527700855461907847655304742498391274046916384067848391381195857234893255194470994067245322929945414796563880163414450374843587162877940562076076594692589048586637970184035633430850542026648634842725445609298713629996661958255888682741273651679962553095077601433084597123712775320116724174659116087766591579749047676299878759158109242102171909185369547128719623674567462871142568471006762397722154195160138384829248380505955701333602015831509086201589715786411297752914789309818800098257021509694623586551761629094589826199533808785414060512471919380714094344579615669152780486136905514316794852532324652550787621554022192367702798457979250014263313127712467728337283359438331193436895124974242020634277082699626484039337288945065260417653340026013940326997780023384266641922881816744821222248503615567804935827309362369478329424099575841879559016141237711465580283450288207774408572727344435731929767516273879926972552446985973552510171736794172786090067673023935940910217075008784919015133410461648223493045993303622034646684077191027850601661172308700374948023168534281046016774986709154735513663455627329970765215809314001013606890678686555160601924539673649977225165433461098245850526403099716990441569648857978596377137601607892378662946075328438525828863913024496130860518672468473306182407466000052862125094875429479130437256163907974509347510177634867530587823879085159123145587629660566119368796564696943997711584260284230127787272502894895933034415704928478835921973008133523798589808934271714618434149941010530906079619875563144180298580562440694620597927735031990492883670117622064411320751896514638499209587309808096052877272782673448660385593686133853904071899243205628894973190295626189230696054849768532148732938186804908861954078204651742263037498925003400475315739934174630348098707571044844448105361672332329513028710010314464755789333448425521876422294533022131004426883311801005997751791635696932796545310982563963160891916271430891011733178115164764282482396967439228007045066503030560699021722381033898054146585696923012316313676482222909061736357086633143589138308959665741760041941501060830931661914798285575302251859060703547208416786672659750066076249679467716643468728870253038513463562405684244993991281853886441881515123969462556592371031365195079858264482791336788244962652652065809742276599941928168319097815607284760851697615569799176246585570410523816590206918841561837542192223552400973426602460298972882561154882419610473730068730451959947904809036850980103863833484095312948775440602333198513750360081127374282361472644272268200573762588868883045263613831986631684022583350005548832575287935395299023233580237745942856478061991742658320235326477229488090352415139240729455344805926967190950357674238010679996421965480871424309017873550140061798612050983400231057998739495809628999303947609222299124826736732900113461928821392840154238009641161882307498280149612149184582790275389806616006748699152763275258021055041345949731769890502910931184123732583516909672443176474361033710289870975821093918380078149561552675170531724382166897385913877940497537256120645000614187193805743789580136501937381725107558358259074722247141618445063193524427218580698291945492616039124467291759309082603204336437774643227365760781790371686525978653904206307360218095497270541221885789138917207307675954227114053984898800636164600276990270695038155010612580022475331052504422559584688469917366392811010413665337872248777143105257849429552918403994295858780100642454978731647357964180739048359672996624650051084518089603323427535051098636363536554330551844002611131867665554594043606586339746689105233715878556172317501174392997640498049119874977004432922527748424834346588892520224183026827081691531350387215686944492045038268693323428406860404399289984362609591587477431426112965083795934342593394630406740233340283013643290494456700484353531982035429199048790902113834510552110433648280087181145095989925896284936886695019211845213351559366187261056928922024291413728700682278842598550597031696941024629067275211425912427347416536690850955331958448883901019247889597790923246974670317534501067206622592452694490968253864919371772425814164884547950978189000419290167662288568113181393369316339966226417742019113461123362650390696788616689958032852223369404576829432706527160209314521841173804949796795664487241212829661392631331472502631255144819440546504613955958897282816702461849674085633509556444301193838550920202824439523495787902977053630906305437038138073301270867126213666630053426401759807761498911794510838717228569915427658621963239766435924803620611984717794263110748818243432799766104426172043718164953598222956505443882463816015332086356496384208886824304248848968706388100785458058560875224072428669979571419937784973980414313151955141801836707254157195792319082117079904591599510190231128213741329910786580573445964969533519481668258651199028337893078772210731029612534025375603816496359308097483032025622781927859818315960439466853175732040282204063924597510163557860212965610032253958919271564730193529134744848941179955730716180315410981275686970780409749557685994643072113825412270183727679402125540812115177043129662911273145166969831428361724540473027257491393222164084850500052130341623472749271970099628808311434374512998562880911296538372553174323785144591315602776244451499440132662734556153293521765252408629675087382165046872233073596706600749989075094462130022765210382899583208931250722409771324551948587049222653739678569413096376917412716462058889779405153390907910428990041985090362675732639215159061201029796872005229196535067358377565953542476959285084827499785637119218911974747395159885555481384985823754505719307231129895778902281550153052754645388959026237878062911402358616013785058533163933951679253315506279666270286333402022774475023423419061647954394004837520036584414571677380496991297216145696007065674902409317719222668501725038902744084217396881813576294710850179270832641460014883477620765856195611770756308427324175228499308770093587764995333555854742066514361906920363813344653490675380141449384047791326430202111771719811924316842544485217547589859989092657715185256235126146446017019300339089433003263403295925042823931101512680259430224725692423344063241143734135315653118060474048496526636188150561713476579395140659516779006060671773855499471722230325479002884001117712227950278015461441137918057838485583779390860037545833711073414210955729717323440652925673982053084658273651781540671854871679722413828761064976577697682718502436612491411353413531287474769666372743944812093489747186923807627926761863329792346420948365467863768084176654757241061851999340143577718756757543031211344429387675719791145751117720690705787287032320082313867928601563648293987047832931753130561740845067816291100792658359801805113838624679698249084837820426951895647470930662951746944929343893089935521804078609239383951694863979801140871927498911557384138758229459145181448392140482710462139279832166563519438806289289284002446729826080081214775860996224665040604889776648339794951441738409633224480578245972628204562356445633613885174666646445559084209457529613267135943463108510408379277798847363355207877548571538206148615240255345498272147498391515250464540481919000331370393416827740899050210633704652322830549305542104061969890548958637901400645198315180385233518189005457926986258924877065729191983577634952331721525821524585709201933483226066661372900411668087338471637669585397128468914143530683231072454592864471688151137524989884010818097357387768641952676572177592870302093040626629715646746669294401879396897709085797314547073022402325452821707949415018110623438811829816173795652261843169960220247422561726721559922581652111751345532624204600798996099045426651569397293350327562381756605948509780766611673004197113613256921839686598989798516919211016495875599757592925026695658900216448457168540331543444840342722602772663311204708181961324538727569139561931038074988832996895788626205192743158775374013095571398430339756668474057744495102231554518512739939421248418714468641369819275375475654103637932820363479083822192841530668736429844239516761667798866902687555487930219621231936199871663820331673181366061871357838661403085990435296475663069897813224371221931729645576977828641879566535411863099147956091906006508923190272056911511249000826920947749154390289587362425422227080879604913847257021149680976376800991370949419509526402115068765230670176303769458890711567453140145033493706009482992149412181891370186367456166020947106267385091669178987789711163656393363169794686614581770417473617181204034498898521110049307137289342992120102771481242534742613646479155902294734306315632951021332472297432669475691618055906216255576847985794377156287434363632450029906716345013530741334731336532070543607487518982353987017374313718561291004346030055711042779940179373320947413261175665195849581966923670413186823562466920864578681064937101686662312887966725154448832708682602840393040731559695356039981873259114821094946323442589689008180241277790098447585925145052980943095748884759358821872653968088027444341236925443809752314511097471009475798030102699965865596219653679712384799916241733643079152056882765705875777453463675865200862569612921236845467955279054301648385307879158679798036773775737016894867071044877939733761213990797608771332345778237498594004079718186642069251659171983725074202539081745743280694249365787065026612712864942891160854549655270643998067184712996305500761766272174824849345173709491034927527209415079670923873567540413944615648998497295620118330641934134689627597041710514707290963890259454690533883821205933110889120181437942541113337678486156617208214273475715135014113001971906530539945681153140106854956192766038994251563564143589398920692554740216459212906746867398880957812917979868352632011385512052513754528164850615442264737176956459748067604325210036613707343992229799711745163108479873353762758408228643136259074241388091939623432255616828559601565159992786929300239565068771329932708187353580429541672326304137607944208633941418252874969740800327682451062041696567019462917721186217564905892143167758721554798298717954967979930911590719223786305344716336574587845244710235061243325762168048072157558342151374795171010108344936101146596043519434487051386296413140837961167810167568196038221650578922730448717756864155587952862166620623679265080816773981483712146875456599892652515991509203053187068069691383406000107387632448632898194914286348906946457432181524762928056041617703417334099309518117922387498529631691755424368393349697855346611336117923531342017407202991170024507710501725727819126054629253298578568131678813609924360820776305523460890321431612384351511056982884328750585078134616495577441913374713867077960119110814801538715092372154610267591235863684370138418584849387412233369460935638470002168642152800446150875384534985207815283834974719362415454801547649320132516458561215722047746785050863277596915621454138040164303601667091520101892699324921377107083560724210215512091396990170880082989597244730940595150970438142643615981563926587889898085937145838373460591328372641792225067488953188681882523047991382995821616849811229897783428147301061372490683341462070407212905307957601236825806588924914540044210549738256206380266826808475523689901042762334240354328548648402620120111479249218177668907805315979912471779190045411091200941327690176326436546234352790008631390394723519642328733295196027845901649106542051003508956541384668400605952703179710172736278824637845540898569483979142913991965723417995860191653944991702391337045437374943651338300941629982290787947715445315627680050220138626637671786649653162630974796976694213637801994474731767227167275376989207023748665725250357778755952668244330072590398527423262920946051794768307815348474517324380466003912950167874366145716029539404528976824537209935437120257381454596644307810583974790162910692643666821209708337475557997634730367038349585698478480753617627844248749524449289693351752507026786792714780230080400270963108224830835917556192119387233697955972147096656345979927705506306079631564083371057462110437144239081762600932706457431230846971946044033603839024071200883903845072002725613514387511167474212305222277340220133632298236924919031196190947256979083571450757177195259669909873948045233437962385418539033308280488759333684361395598207091462864103354956474496427492420753069534564000574911090557301943263388277600511237569885009988090527604865102331177941050219996460312234769491435615781387106942100659054717649212878166640552419297779737888439260694039893618065010243033229366040389339735037988339986616977210711511155409895088139178854983693672403554589320478031032658663828884677442475869838869486191199313587507516504958183857609336816303627691736306821648921591022962863415394915202033390797127210794244714798000426869511038726892444112672549163781023163668740646497750855137742974230073137490556066109664418336144162828525517829883679138146278989365104107230884641721333334990411440115567640692807473556795406821980911636006907542106124483797412480338821419485561798263415712369399873462402041642007893731854870156481510283205428748894046876999317177563184659196977538883147755771272983701257937216574465725925705077227020957962845482588154494919148564369416111158607646545219697610766325101753133836413949447164685128866268691888346828455524496792699435501251724785807396537383985319788390823989903788831876680027584620146422492003248353328875293033329539701405501124526501773255413312048198373026693227340337625767135947483427131082911354429058910592543899338972966221738806176916398185811426672076340356520389954761088578613324101453974438414969987395070710836859893708922465561072568330478315580302029253680363335650729358975806314787952315715641741120022713950938054132541153753656917834631243896225919467422533202656936706974519646982517124273035073536213776641245829559350637984154974310263559231067256670443578760433110369358593362075570193171842950313255643138950481058582885788508224725866205434932658905246175097894086057594194366567493200356480357117772839212600392883009422736949634641134650228470968476637476912840035726068162908412966590461605103940453924730516406632567722618206584989513391476597357101852352063646552362810409067731373078797427321581440571287122766197236563017572446083513436444986182907969955580476399426658880429064684666694484755455574800833668385260894436984403542312148108613064862729408731782235404573211342448087988431002368485220110362341247622558924016489547600837935628420647217201758472196625652721665207828192322709466959854720997902295393103714640227468200757952462256611866729787556416431368495970210503110103278430354773466621352048260992200709549325761766998775249338114110909514623162037937218054231682081130187997601072597342607397535408768470075199138885205508732417638315154472071893528595604496573062969226242590541883413967047619584727908329182496763807331050202403676435612958481801855628976940953500848208619661528394844385791997761519731536801947483149780045069053282871825264403033147418878651546547836453374508257549772066815256771264412674034067707606196470913760733176785155792347744744913494357654086105806983804625918988234917621238982309851070226875213074360455682037415438870216772541087698732398690058447369087578324365177310991815223479216966504336083009962060925203922283734396527559307791000867475951281190545043748670851841353674083788294380125722706014862223941108232629496437530353686363154897555058054896190023518216972506769383406365705852371681393011565589074239990506439308307427265626416574137400245914833581843538534659336398306107556472606520846066792368396781735687618670715040036599661303580067076075472141844862027028267724397712387979737095485063351327402748222448868799237212154530964551438509846577559688413291740547024437231656165628015591919548213475283748236250804093841896287442993798419409824281051508814155796211009891992258578872475276793343521576574524806415519689286494732959557129346543881560744746566315393088079634801338966663513292365257135937771704852706662262705766739669188077051758114776820415722634358162899060273883985079518079850748549401643743465903751787374389702764867589945705548479917016250837148377555923295937119500048834691756398300827736025652666438984001423405294073566367636994704464930520187236423772230435291194890777535988823455027994460926859345568819675624421940405662481904385443688674923387501203229094859903523885527947163887776826805331486342733174159155832266208189015712384514957990647228620231673335116666113852584199874172828610226994729821702865838611194831660331023350009852530158670611259633996553846779172985178591749499522839413502295225463227676173050066793318513053727880246822500608780402394302168528029479759446506580223060634368995101639114245323946070116323280448289902729470459888080197915082970586865636121229093706937121830187196983356573581159901497154489069827889634652349707002919978529092661107123311830647958050253283445143979060344616836090830188712323316829599795507795925019505197462693525101105320338691943304148721791427794728549598478333267815872576811076340227280783511833432479483805658760448357615941813998829877625997114148770547528489627768855742249810485042516103921795223165791408852651383389990593261443140056215011338796814230183952034955514384721927856851352370871542252244153348949171419054835187248531351410406948704635944799735889438234900164834994567348893293061923738670076064500112591257445007239381411265149084582807330295190471463055587942694282462430526184373808695887711921161797137488295140688740704707767688251350798710734172917307126128525957832820645509704631749445651669435120472306011990046520407728006932001391853277831950911091554316404862117453723911807433946242175392111863329446598336117429761963962007418640527963961521992644985505994219563259980488308526409912835587654681882484607553802196268875916650518221608601447442901835217306790187267733237708874185726038214513519034493633643462273348414995309067316052005765386370963355617936298494473866285174785141926582839893851553129139888781457221092083267338453805201018315615350570197320749877794762949741258855914222886456453941540843663123799926961890583845741308163733514201827292148461307349791989534535401936114698274641465818076277516077470352403598375170428639531155653849322019727549972051473796956819037357806041879141146764627984255076074663717267045016830973944928249669646913540893843226193275453115341367195815028840251507944618222826574973911432667575714166656309720579236819789201653130613115095567873802131523572896488629660230686764787204830357013872116922634848300573490066533383127126784016730624614338002721036989601085787629199927557845344189746041178923385229925634139143672023211837473401485957064496186730576808918162634356885037069762533543236189338342995085341315443159287488325200305717438393566982074614350242164673095201235744920198924622006902699043169544702767018330828164506239959551005900674957143720103533754898327106855563938728518178467615151237254876303403442873753946780203628908705278202097866965872771016035586914893426013679669025794087291264169397890340431738758062692050117972542106560399034903461797287080477041509268119589618324202994467660643442286437306170766486545145724021206509393937184629249813537778879125332926064043723160197430479976382608491877120985294121872722002321166200704042615658309484786951873168049563800377191004315109970007054442712294808052124950003354900977242706954540044749102549090624500182485380141213365997546568943398310414538555006322843106896933861176182176024873272030330158866148980175919196938297097740940726181264837424307797252671125824847638631521531187132792527958460674630377828299977212352539497518875149311672011876066680917391987696121057979231176334986510179468336790064523885908653927203515521772906213580941254959398363225952495557671689069007188494183296995380057629468507733160409928153713907008239431797402895981310572076886918466051791228070551906176227763797747587767896227343273121547480808226608414584387713971944381988377561265009102427950501534232757729166177301036628798545906714897905838433970550628705633887160363315723988489560354443002685624487325659682542343672665133923583936140653410757314411703193527909265077232297800059086993084668735485894761809208665659911758096722631874089025472118296807485342807039476976169035050231868697708566414455650938698056235056426714770657665429418743029511553812812401241448935615101873244383057379613296152167352402669914275367581560667926332585692367820215068853138137685925716050581149889642788271246638715445132333274497928269475647825252391364576406594784394152937163323476009234518578348078059457817669811663663390218293062788001260092798845630507986137366556099565445593548232330654076816761993309605859294772850736375804421090021741812132854786298190423350005281409985223620161195859542099900467366028959553809481166601494114239044781687776593634535658076260502275494847399043154242904723540525235909461642598401804043312773713865246811571599317831939290205621483297240487215320651244589527402055623962486952545975730973329512407692657301573417343319316248891078645127240863688970292708542245262168850227121727474568843584172516647843298933341499463122720330645780642837437944868128307188038114509342264527973851017978448058830033979032450621635951683830366051306187072998071067726888576030809504925245077039601041485536612789298390557317649754950697610292975391831703582281498694907955281808411569064017710254327459283713909181244928916735551928218748458477039660560766912052933225661629480953818852365314465585307759716759951821500811622426862231958637670237648368816070607096268480835051746065914742740523970012038222022635885124152007553241710038341876281399564711039779278495297893157923112729230929827619375045857891555353144691763519910506314703467140433293114180153615629591740807157376754324017528523483618904141002516675929832732182424797373956435027820209144504596351483763675878718909035280275906445556029590531862973227082012377419392369855054777018237997274837025464393381207532449104376945088608596289111995190315090285759564084438441674518948536396823229868306503598078431812844038297238682211183583970252808386820676321675942470480926882409258579633210292958493849558396567797643967312283229905320305582198886988806707097439644061649412500510543094590435794225065306375209342900603709499896511719627786290218154001333833774075556314123761627005073258726096010235123911342678461689937806565183807827400829232289876699742593529938517571751670240306173352123317232662126207573957137862693720927455921903846187101796043610795300253572411458451841616889934308306757445628660766624646984076799881069118386148298979215484976055851937872109236740917896953426071189408179205339098350263808327853098701735214675313499763212942664531071778082125786921856041681816425902599740590571019661882254789811737322273633736475583673717906324149957849539861368389446245812787889589713600494986630775541315278714887965935676371804462485749512422117333014668683794628525374655581123902556248748463190132422403185713661043353976821525774320738770232327011730730410789082036653095912806659003939949498667182192221817825704949061294363004818845754841274748014772152078741994247243363367759321028208559530976039287193496095696698475821906833695150165327980799966952335553547320482877103032040807976683307984810442364755943767150905593999379744000711854311750972179148229331264616798107350084984812526558356428424477282947158396447765851942906987529084113080425085295646099231569633170947432449155688604363329696955486749126919055148641092408945458004698554042241080835951001971317877364031513772245628800304674053244247717808386137957391980487900927685660323453656615069457573345406150040142559727445607369266220589793901702870395914040689075183694321897628355986995852778737449209330205047738900499145758193056065399499057212809369688001338965012924454665654227167490073847710985820524032903520404992358910541622188360376644686222875822101370543983340953128785546163159195942921424832268086837518434091810599722600164346725175813482422238182767189440638531702313177907467997388731130925544539343197132557065795558608537946645216156143369754770508318590342562147649722914472166341942898894379569446323563068859474677271928556082805151272490671512194290833082125499098929471549092899591765073117232542656514739786901459041943664240618385406847564937378288503111754684513212204343032911265079284524433318791262385005240938542469277437411150028531298373618149175827252480077668888079691377806587714501217480967627196895914669419533602309539319203898700526541395980211767702058742952784888090818569429432364218145542005734851257205026222875188063916913114212538231477880063222497722101968679766618053340845448122094518308522895356078278345061973951232451400933479976438308296446330077987024378371166553979714146550572205358256371654580764583647922721050326472458052367519926771300605654231059957818265766572402071765149116192645004641539806761092917963264977922750690203766513469988550414285709290496838372663307746965728705888826341675790944998955790175727589213187328788578769481611324832764627995664740723550081622102000102929999554766153919556263945603385109583419464988804413741818787163240388802917336804746388462872629618780190206964319397414503477002965366051485999792477151225002804445932552522727315153393035190958489129558347812279464882385690045972868907696736507926750817010269097512656522586832383214506667333971017092234575538271619424648205697160771739588621598709827385021425176350051840424896349701346363255055706187258872963130457426328553593321958286904545370841787848698381997240339631444622269002949916444488214449325581820534747274205140894642706123277736854336575810968281918018576755969363142253321474781777707629575185719340877134603948741966258239520145521220445351261190612713186116458906213715401178846402277271803464567355504982000376345230541161048438042433002899098016842681312705038494063026966933203644736445461990804077620434016127136277746487217931457610031572992678595092283464275613345042286573988979299672938687457682137794680692251955912882289397878072850356691411933916700384825119085110469098456482675587137401348930026911810622291388532430963971208698021956101014706101897645111160572746486874633872125341964962690748571330241280905775361308434614185878682575943407930389429878228060418461063447917931516805811740073356454944925589870376521691374016086513616947647837089320456197216503671399101699225848152250393279617177144230441023893462793527522867251471605846333986412406241718263047466598920203167776942303419803442000160425333094681508820242654472214403618738018586567438864371852186966463174188372655345277784088083037779158034601887684257091001034467151636934625452131820259344807463401484813640499800397034308990076091843964472882777817007472986871899431985308960317948718397161805092326403408287810877942858493888625472622998994648600359512982905561822924973696758429877825124298310603181624825953525289233191007023143439029515881497484581173408523592196819026571670567875501335493485834539200228558874884254378663349253526600217873936175372380050132396473903637857288500223432967119616763602376020307575339014873267233573343481390220404965595361978987525149827334166825540030638229567801393496219532898693370906627918947930088463884107056341524873465847228815924833139868543884926088580840661267689732313751850106230030138702077191171811774109728546275648175670295485386352179617479573816234297593087222568782097894765355633539410258954168982700069347933964641295080692874994835286214886079064373836661317321795474275839787584225606582153529548181194816743635422927723960246758190692647789865813140948377855475907378647253113022576363408596239689787954877676470040685133942144281562207074868419473275731470328477446188216640685186251076820594608985535191824706739403416473349319905592446339614265734289236158552698469009462641241154975203277291678987279171870773954502843549370185766384815492455879852152221354574831357529423623385003344691052584528161143335356072118110242096743210585204503880831522141022162959086122012517204573418865912923186234398335792570874689486415923617121699316567509726075884967151855414092144434090014535677676969059534962361119022513805087866603956410280898289860665554898144479746076161279048897959742466636808989298990842306967859184754984987816851222565482200996261996282790335477863060689876972131994469863564642367756139374861186545679500913671912061324567409576027255631449407171164849747863774146256051625291777857394670493092681242859278264730947195543435266230044129385820551994572318626605618442117291848784238938190166878702974031891217814947687629630287056304566543615692248060166512847441064051659479011646982812933399565694906584249356136682359182608701816538435801347387207674686320770923094448549280648485018799189415294021536028676766274551830076702333458678105318739045966598476569733584272695183043727496923476852661819259840680609643706616890070171452809648203826744802857212419671562637413204560225111155508877282926729095833939775908876359369347968902107692737900786129781468197795164711935661453678676036785527091511308306652387885433320159606087449909361485518689510146075647759973389386486137534558587361179532535026891691296111764559625664253233879040655232395424606592359713990083625479289735024367490026834663448649881469510025945580822175626237304854846746447359857902521172461406562822894323478994839201573326425077431709721949901676255346978854032417545856760458711961528226732715317604239926757166962530522460692638682268990247220502670454268943726933959095877375904942581434063868625227796161563250252253276317651630718647440357842082162115369679244995578346623973121241042627569474745718732535259037008359729201332293804958530618249217982163637226380019161315232376293189438452701034317639894195768916376670890205405572234390597990865791406018714235779730393568207081164507482590601267107549901652434952362260648432301887410498653560061167386474317130651045744408170572323036860654709105534124616342606840330798878335762543039882647478759264707888768328423715497265201205965649158658941962965245892275396549540954334650012626986910136629326353237284229704992724546052145641979290964509638272424347208865653740440098797994296179521099110355438490890693106334333581524665346911720208578635334002628043658947444165040460300484417849221728463285613956502425526534595500903968228106208254528433411985031081595618396875742376787907043389289271550158979862683727695877086070829927334653805943044529339652264625226989445047399847696367690632772482975801380850823936508444775656222581778350975936211381234284692600805941372678683859062966639027572488454365584246741968853606811889707906726608845089538972462067737727924779891495683795368395228016330287621909485203231268423405147028519138993383201186388299603106304652456861525442218525199020919344713720931106658578113858052615794156371281010324114857990038261837888205701895601979849226351910803447338709753398938889456833254833580810639574632821177265953075395452842418239050908647352094868507082502671245760692856132702313630128064846200086149785584819943091668248411553819286983092962921294064420257318648687563204181832454815731456828492723077181059271680184148725342395939266709163569452089584375595256540908375923423953181465608775470991951447747469585748502105460516625007674466554170499309428226132568915831174783116111315313414078689647147082395173672714313180285699615339286931298073462327096191614757068462235553758534981579302395374002199111773653731984792193403447662777630533162663781492042765715339076366692152613916283803182492534477784234106151314606846180875367606549148413834468039464727062202162791672012235722663674241857292833832711396561670122709390421994671214207049314133785535891971751202186307374423521850130165405175034768218368389855422234599633644582047619611976020957335837939334800525776535712994140763004157477371371683855755421176707335999335484539512815489510176745699970186557910834500766760850118148604173333129905451414188530998691206302705791645470805290502563926641965311564713020417275844096187076107826426588083971265721199244368386962268281761801434004373737984362822160204779655861309995727049121069641538334320562790136087204657278556677532523815700703338335389988588730732881285663580302246206334211660703201355270731444324697496991073366538424004064425045951630826755960454334644808564990957922895466568828515639865649473130064317534478806688147870361239238606223814772611756936696691719083948535471052452029266884198771894426843337927762471255207072473383138898606509450224259453148068983552273403577677942352707843383364772195794556436173914638674926238514206805436290412422066452259710283583122296488876482793967391635885935925698883629216095503317042324287557855451506263353270060980820022305041698454008841308704178367931036399302915052338508131382515149720991524154621655075402909007910118900286335626565252107008407269993332151162386060727288577789346602617792039239549088796617903805977019256981034012818530505611490807724079606601607858901245816288777819871323557367967338217107883715182300982674176042695394118016871045479390274826179333710282030298114708544108207583373707925831732404364394795332055281878621403045580503805964695815063958230427769561893668911267180119381984146814330258298966947765386076516192601966821318150780747817864686382931130648199080341752703940389775928912571549658322588883397641693398271047370821744023147867474994060661000144151536519455456407879242752890891702000408126179710965909540580694164604304804801764114043899702254536756242916590432754212350068256555676575624405284459475580896338241601096761157436188913539485273857969865221423083807575123627486466634224249113697431817511373527019001064546186403797384319427742022086501032880087359463078246394873334698601000319995110169025020217339748367779726002133259814087659784993453415037149142261919589891752665920919484114310769887748266275024772056709052343089487272342882215830447500486196860558268543712949451094519181452258304712701183886839773171614255539421031873743804487027049441739153270247201121596921591490957688736033208767183366126111450693741990757616550286887394470468989974545275815003267218838708102134408167589575619574740536458926600977933501525900012165746216690385363271519031738204057724531585024637263055507099687862365141796620939854801052976066401443669932964079105776636848506238055040338152988836210212877306643775984246630337886027974932117116935572032270611010728952364052086090722863220886671981020991257366422183863455406334851108198412711321973289831838420759296007967364855504384413203402429762712869101931500674908468305166190455150444563945129493474816190904065898393139631666311281602373886157143051642723348150199119724092961116286609464526945145840469139515363720297062899787195643339007748459242317905132137172399186885733789681160912583305581385584837592544051539156123748659652980243628372533262506999693108517384593633762230967777164772234104831984422609756362283528858619765710443154642177993246671114066107218308986874721535592622226455970302297588280769238406416172764509720325548817645613904118738384692839760920989112128388981149836724624675194469384747365842843615393964846448483209653304507750283712175982427565257501524587960140011400583426573351929923263989143272179763914270435388389831347529811908317718616497567872498764347411175190508275057889435657017705969225259178135742799675924601354346179755484252302845406723629884601245771791627018517995544048952547839086663470197927259855692703844730670151399895808673958081727631413286594619460228064492910104504057673253937789981217876681138745969230577833558220524318981689019011322350716849553803660782656031545429992529608032797975960947981125851840106280493927707148008079728794547200838735229802421421884083345953148380278956952820109167871095542591147509785522322325028613754976777761817741285663257595454006704469077046429498782417763616124927874465510126866261806949997397559047078235055304943683831768225988226673937502423132120716925357038660484788937429168285913057693934784022448647654262811259989941185390684273763055968395275504938758442146433654760261444849851157624931762029943484547049090687289749221748047055683590197364757977836326018929019608998993131153425143726911025039429476352451856533573085739765235924930110135131871344704606029622831279020244351029501782327810732022246190570961979983317931149841492679385429638234238440184182599427455231932859361485895809837497283243051595828214731765939873162144322988223344835761077967830898672591074007238729704815827084081732730619562988489454700360207310534388898003908369927423759846914278902200270513942789284685461301558551598074320718945598662949045124443899808628752383607649748828959994556207142881418269913510616888756235268336236802527214168123564012951371611122348851556249911837457432868261249553113807876484988430526355712023848153356801664680824331894004778316283056303909991571256662476065052574496463754088481895728963077213824174281780690097495955539558185824526286973763678136467030919053024586194378468025323984362477653665249236765318072334499506577880276924246651312620955850911380675868758506846994144957657939593806725463144124736364122164532323346613230780655772333810332007646773592026427815454512926893348887044256434101226161269309231898499036883012169876399599375317714955077443993022930651677624058942147878538328385501223786377714516854003473410916154109082636409023333755000842102262987513208447815377482871893394605122758149385575917795947567869015532764708826593957087363412641979830287603698987950532276093774229573613314489949423669594916566652519001109048028785658741089745464155761754130398953628956118381776672314263264731897732625223614371519010786046342999367818890008993111893599499684878760939966239642064665001995517854842998919431142161023548459912560029574757912568656078931855746358745254781964399336782565497856006306295195792090506927600889276173522657010680742957492243186302644185447441588729595005884682165293227966598895921687680549564492121757722073684079801429844766001455194359501626056716326545025812118425371622181360200589352574110120221156656949739041967095024221931846792574334877557247019216228485950211414527806526832230942937713712773924526814781544638512210051191446887521611757639818494298502538562731354033315350836462762281366206839154625716266579599610501955871369225400670292382545017240086146114434537203192863845318552814745071973794531589529512339829281874898006122380980934030768315035638849316710563574073799386140153407869778112835005889671824975936261474718863532167589263742430814653973109921521720694699379128035049389026917147299845855057748431767027756534793008578677869535218475782780899072902613169390886941414706087185202316193850849080729130020767892540113389263366892770338711925546234325066978852750320629071744206885333017608365898734464087534662763214678555466319108865438205689946295067311289397944458014325453824744457144841830998028712992110996148899667173846621532154445271575714700010416139328066198767261185552282823525937346335239172338677047135385166586980481483295041423979490568239031599007755699462039962287234494881380705132663348950011120742324789348376569270130164311253400852986998967551740788895426513312408391443768525662134394722183955391072529208211472721240301874486820618241956449822462804686707271157599671586819204798252081046182054034356799511736772281898895508932430150767435610504598997782014696034703351648662535973464900858258508733681096816913177645356820907886228714990439478639903629788688009765399553108926601894688698195375688150867074606867079180103642219468886611274893529475403901240040824701916837480782824289205489943434960432571234429067175756714164146193378522091097195959176888152607632517777849929654280571129217026414558027660016965005183267204433834238974209592654727255347294068431580533707345441845637227519334054521604309295925091320411192724513044795767524020816347406664799610821724604922985294731303111278076182601816244426601586784000361536133949528746300420635360981390209132909645389249822579753385938454213222262002142458322131208985171695165037338684703725004797724979556791946903687510994107948463767829567430943958608332057901205335232561457835318555966392258509766140505097155522940405624183046437867564221494875433695861485387353317459590944526482369929200339737230617973579586485261842297703596324503541648532706437159131468274941788971040613096433196551535718075290512868810733141841071254587291589521336280807042615180975604040659824410160191709099650812584494070161511718218945789818826201030035695980591014548205084504282403867680188372898747044614920821799552251268579623398948514328299986746278118973677773366878281569804501650182309586338994352906741741928331005938416408747645126833388989555799062158022630486771634923011300633305113189018816480563031286592181423001308370376963851543729036466056416289031898217242042504110322755798726800776097301787172827622851745001955312555928612394670140578941954701018877550478336823875318367530645858921605197157021921793218772402763201111648608819397660315989689838049043487809781852543245956001258302528637917485942235335529914242537159401566006472847245708732634908323824325804922393841239195843821755720322430688903474271135472362843441160376849211184145951202651198586111586474050886485011250735704999098384472122215475350130191687752445180029355926913254453445985498173909561968678799765176559839585280652651060594280706162211846285874877986933895005462365264635713042264088343541595079217572134294707508667860124388648566132764017537928717778165856769955199678085131913156407463017699410368070391486841338229199882069732689087312494291352759555349881000914335116050366977944368686946394085606002786643290661697719239821114867858938898532504105822256869843438745497559893931968559765953576108250127540202428405486487105686285253753641963416283246703616234956034062953422608495902913746397606701617368758349151288653315884984168132136668348748121057917330509547017966573163380126881741349001490536836479351076929497294710979491379370915543332849005734366242931202151701546575335073566571907144286476701325058582936760940889881691091104310018729822957483129824731687211862746624542690242252475214730685892746089560228020771262760553171462891356275482601247411099816431828691198120319311158224841080777299383435603164016238919371944348727913601758048777802767290021461728222067771134619753913901092198924757192228404051049527359979144145131709356007861600856648137091024863288590219394022127562894961961309533039682618834722277493409593651933173877920620156027426985982499247544447415441308322989416355927748475188518107505291030300918492727822910082414024945166901074803053817430025939582949142016006639840164427472021674802254670037784350721403024105847169291635037818414648331560658374824991441341232313638507945917162852618710261459756655575548001669777474475410671620860132698246549543664567585804624661913724423814276582754947379634796981383481697927011181761254074604396819570772039319111319764861437022657908366817655682110723296144710779487582888306627911934225526882350628995584069127211591112797837052396180246411298672316696635342617589654682040336775630727863929538140847475228049860457971645256825419489733100702151884965237174629717980729947298727478113546742706532071908210872700155874216992555923603260345594838316622729928885607900797744595197012657853765330213534575948217169704036563217669969042922526849086441389620749719726623795350303832430856117927615929870542499204158687618861984926225642760871206015328657952762584583208107243461145260393446009050766626613517168707208973643719910639638497136338422174010465660726505572911967063442999525259544442286044224251549080902224077397229441286484860040036763308350161930440017602425869200484207802400989574833475318303438284916593026099634326636036874719121849526508126741662963225408204352219792035722164066883880038590420911808147086951494438119566708559225285119166179292230111575799192275545971358502410219688365847229313027450478699726679581094197773509226438129936443181637970388115007921651811024620358888169200007288646854930197768534949446459353478026837939419147448789778504355357368169981724113560050118390870958569477333543570327767312384437378242111482519156070460852429180410006115114569702832537688339422109098664745063316553969781846517979530669058837521203573205562626922855284731940688707848376224365169083573130701126695037234591255065650723501864770206599467167680082958988082680284456990276309129159124277453538911482529167515158858514099681960136004563689680938175704519981821873058558735829150985141293935961829561646019074396647201092616673319614849064521338315015577002742563466118242807942431521043868671115838236220290475883526734798560224753342425260520169148409389521815468007551790591752114257241592810661344304991233690996768701686442145323619328898036606705060838319683237138685652956214925995472050642162894251513257620920578225480070901965734562717145087886457838715984183282368071994175085475670163208196420697341494681818530633437810474653781721718499198547924301978820525737986530688684068016411699420641931405434375702783909418131575610063395868085141032356773283240730260944752735983731520171933137732648928257145721267079436170470544101298502044961271728468006642285003137019903496341282156132511207071551971448581706376717491963345377240399650910467688243513390735845295388640692621519251812377938186019123211113833518033711860768753137896395153931098197676313652804244715666433012611768505776446486411099325224844269635940987044515480617419043956595297580548525761333441984942647900613796994380372316220777339460997613308231133810303447593276527469170535446720442296906448430938016358960895182396969863961162162667519894229030738229818657196096632631114271123942565330402175350004743399366440439806634686423964983838396535608507115760357916969201710529604590721600228800825221208659659364280068450776223511502589289455835767518249377079455399411533426066190669412123772652651006115679749843796926913023634481425415697490382719926149530921293538470317442564436321380515746886447631224832549848377001369404456092007106913145693432626245042137114235493299016545707423877258233303325204487110597299001032946998139026749337268642308578940593988910885520805280825935378210652620846026156413002229150348009289314914050530898531839926329652287714983264527679370354913271428402751974710380664583069967995661061351550726129334855393754552277093497345368828728111683429283975846139499838462078408528879958256762583963825723976101847140221970481383750486002333408049575310608550145476142074292330685224109557668815179773589061173928833333344424552895891431104520165267908049951648078975670410724964040260359850457375186133082136706460712313370806777804761040240883831088997798549596429899775677178377103716229266020210059577294660994324895845018877304773936099671555807113873391901893613952769044777958991360886382719582123060837458552950513401127158101918404266719801675248254844467223315361340556132608493342653693446513366547991002404654623769688345961665918838711194604726868520192839256244166369902426643968752228476001233179514845566254591595969145185556385025869511086718438154277446913601242954759043293534220682597289994432421983154375400199747330295743152285334011392503453476760504610642260632340681528831289803887454485296669807924885574377493461673920779936719880590185130948200787802868226077498856565681885290226014605103879667924110959862379392897158687198377355736820173396437713638734377924217796082589625562699429041741348021964959466627848917627727051801296285574527761006428225582130501141261621379037079718000576260711769322547801417280704370551574232873099232790407313819665265360456669730556565899797216081353446116773431094058574549193413607687597134984164542276553040200454861219771855229220471077523023167099650761032901572950891107826735066164941608246985879205045539919015228412735485445655371559825918150165756636062362071532125694753796922750353456330008701079121215822947904728852878349156427243907723509471569046010128035628090048351978105967223606990023757173848580362042446267109955761994291956770886306667379192183300352419975985584990025794236010327526261963659764726518103172031930938871329343180539388202624390342586431773242909800443485094793788956590123563523953048722711186371888563591896799117836624577484975339237893990727695828034709869236550343417789643263420395396426789589228133475116408288990784297691179641373531967961743251820033545469861236485589258733248632359651083218467037334819535646160463755703023346112119667834131937212293979184118844004264914622059744829177791140120111637681096043349384558822669345699616182093990498363956127331511338251967422947980548082045844028467065216057066227905775963211323925252742159834896969345831131567853771951376431681496723064768127891327856280165033014485833796241398236974233756292060139588167964063732603658424023897055567337951186258811986046896359150850320445196095364193981958143244739715497130538207683053391941811859880567225551337127868943860160915628467072773076652419518987120926278422207580122611747210921984225817025421296369159396178678741284524938930711856062364540824133276057640004687099432228452979408280844327707701884304775210311065744451750423372765980856820568841740470995589012956480459341470009718918914344077811141261309127018767215828612541860164491743249954445302864117873054920218975599725620249273274435571640110794172794626054925001393704559029246747968098733619972014202675740427372331416673069663567934913594368203717837172365577303384323351074301600488353718969001485225116428559138206884890449008390192284664966542117158668239237488053107019188772342755421843798438697166776545630390284836982112219370692432101812107485760916392948558487761658229888937707952399928813461044853663160813781337146816889898819641086367553245192607964955033023382564918610441328898824676389516227281857396489423405337967854139410939681628445131035681994637160761098552559683826273956116930174509972002427807505763816765109753704360649692148513914972470845936768850065057647879139450696110567250074897056807536261324591303982451444122344276292373626881535018201981086866683201640024843402911803709644098917972067763349200255822957964308191439557611586538622115231855020470252285679976159547092747433601172533774820794511813476781364156507391081094462331067185330628723346918625612459254386618571166694935488822214493576751748698905262738379969298600041917321434486623810952530727750572363037511129736542839847015041963635997682369854883939575573369567360458567579048186539127930502013485934518100948699683063037447836664074577492496778368616016783267745655359618918901508895937741145575942072757003458553795186925920839227246581445742619168346608597336566626147615056987343322959240373318798365855499025686183547432068092323540058248971839596062127000035924360679668464225753078327203335581722680737525531404836581972908227889095775853237922465517734498547127612048891584837255048205821768459179443840407952904023873441059494919572029790647042857166280262384720434564801212271715751428565313118442948721762834477665040376006715086428243515957350503672851116687755408474898016574103049370219437516331171124097990974349201301337199228326759701731722931673007913484578658550048180776289271205380986137211338523010681221736702974037234941548240396610252098994731001793330214704979530522485821585492334501702502634136355242786395297686959719648873628196062082517242868576936079257644144307820335097420022236430518848300028237174272105717249874618111422925776058013601183052020994797269813710738721525060339484872472424900088759080604608265370316171932885031172442260106395861225752279881833309174257040210774811853752349420241221697972513523410433892211782736504153608149578044009250945852228580889645999885655184818727183632163189261226894494703341710726194298354537243313157956910281403456184307442981526899181299084900279019026038191859129096262130113381581229437124915215417263053069505173871792802194062299550260835291054496648127383423933628062922830450599053597244273810230349946112815883788355666646011938027812756210746991445189713887028844260116882617139843911999070927389215287327371629988556384431384126818087561402679302527097507775863131072565225702852690496013656119845563272369768986171862199358895664832783235834152201183998760536364133507478392274510806547437174981592307820962918354584694075284301083997486589919593139143238099104224027711794542213211412022035227169425102755069611167802496514904214703601339572319718878472453766849721160088087552175485086208390600614886567718618081907856189254397860105790020023891289946782021441787466745063070103946825175664131008649528110371598700070071473222350578067706620529965646037819554526099708655048925400742454678537467161333372074085993147539015806184364389762626545723941900100561341607335701742532196789992876402560856946814184831200543183171912077302011507497413767295571506502914327257947508957814692220906290647813330101587709788755407520086603912135935842324866482993104302684829206273052553822960067542039322024633932273470210202291014390471896487946744774490911089304815480083292045661146123586176100189841689018023252887751864324716058633534260296360427562484631374881323666872409734315766900758490877046665484504983330875959707390288746573616155072593000283346165579616590987115200951551218643791623343547894823009397979773046011432519727652840868573357229241943959763691110320395816438807363897726100434029357236528878694519941352391966598422146757335500384869762300948165962923315705476011300759201162620884521412613182069769421653507230585105119804844506552775180438847854244014311734656411667060867468452066531085385354383409758039032480647059464756268683415903896787501130548523533703033879359055815686949224456818543257723425633103157324516940990974333464363692388751081146526777949510697845160689661468367251101944242418583193003124100185136617161995056014851815654102540988877288115765816175793077481679975018194493482282417391495991546363252064870689952970710059521746794483304874709530112303957087696329551944927636292018644194517402928742441919324440948972802296460179317567417116821512682027352104066204766933717655470026571054228886510987466233516488158195737384392601239895067244583890225239220482504968314139999394956192225625331164516614671999673585699227370762188536119997536174692901233625267344282013404867163496687419220805213451079250059144011936314885626202016406288377079668339489867254414259885579000880257756880131302604400327100144480174851586094910551314276394028096812639591032842641582240673930442762983548892705572673877123871705215782993596789923971341127215348861713184927798180284112740232116165591255979967691455204696205052492413225935448135434377856902962594455281562046326254672005342524925925379851039069401113882366709946231899663840857915954325155498997468335348265910672556234741202481822946405468494885421584292492847111805158301140985956872094026514189705186476331620012594060501162505969857727094119171589119786732570843865547382754893900960021243594190456978130966782358281782920329994071590966300295698465551371864336264589975884380814905472749864781279186086862879985248605288110721236631257263655087801118511636569896390587582683533813156334987525260890467707535773740677395734613182386853842720346686088787165938192841079875727861727720269234565626680441513614706936642392933518239352822262562568155275374706136979106785096383548433644052863700423451245016605317093270632295459395029592865239065981662916204694490445933966183181817977450482610984078447657476148400713902477586365202349439033470958475383598462286086437606412562117005437449812050679499488974537642942933033669056591515749828840225433205059784569118040519399793039143351810224626866474533423126174353436617325606115108741152305072638972885278998638890019419784938795431056031754358108012181423109737355354087844266354129942091045931162360217741674750044039849641401492837598675582958876003399235257623194035160270294044571687956041591353623560733826093463730537721060494433578506143645987531314965106827278767373120221424127376336700498680629707968846665097127183679335570038509412187832304803558474636746817066901977045048569813513997519102623731410600395913090052939265686986601695407962274951242732607666981496810551127802446928161983163469710859386464580358810950530653352794245852358604379411203112431652994324763931343908737908300054908786113644327848070783319607400688252474524325196304678869763285652071001378099583929099955537678721696879611970054666056623248709301692290224303123542248151320057008537175884165374476726584890476413227970444155780645270106123690576232020892033133302537373059757886601366378097245545299867526499273854441529731456247552950556677471002474477408693979378852427400051597975114411310969849297499136082935300618500491281463191570251782826085730852307314230769241186336191131254079602666561699199049953562537185752397630355035750704833800708242434627274849686539832326817816521033178312538119031182270454126422287021360021109251196036534343580226797331033157279833730930282580079394641696153262688910374090265084103785942512966997277370637912050917076766965832694851373097027236684931721242210091118006009596110455287448662717333691338705045831859369052368179133770133952653140785886725881916439240868212725493161836939386762337422057273484288285359945061231869392022433357476382580835488222233049827199550322178169563444219336630260574833846656428391637502054470972279279259373435601722461292499171650624073031617409266074435453581154910057498662446760479353149386522802189494960308389526922886083766654800899698789621703455637534022735282256053499477875567365445342889165321861094625958382716348038282444014843384888140478912137019501582892524536194470045495603494979884074009037682890408886021970096110585885250922536062351375480343691188754042362452255421248533570246736783621328793338111779573023904787101096258469471590713422976494016402720885822779479008982665903990485877281822612411142841910708994374030564683790405352193428410105315100893507968373009884574547039371473917249193181272057376835188763460074486385879081378187587504040095313456418559883528075584490100333073959031875402091442468394187203641114954101503682647522101606402112371387780204665780668292512426012058727970715837710343006970095954451810337263681135406422675223748654815589703188833630684370218127065732333847212270945488854273547154313047231922710581973289962639561016216852064706464305313201219051177401282859459164244090303467229128732433517923840239092660920568854172695374911807172883683475350018759837122269497530268105169433331418961289192386387704126116385928337639429566510857195883622281943151527453751200456684232841780456982685915410364156763803377083642365186829741840779958243021117517458917426968811444700235622167728008385053523884911906789731234222526433916608866978460885470796256199628435776544499566452231123028232924295859847808686869733760647105624309938190863830898701584248855606743892426996873780001772736208014785041212247031502850695173970091577695627434119689110637897867171270999319458510585869719617790684548412562219724185417678389152096513470643626472326012488847462562187075361975226714259242811381405030046013433889999744186311565535866822429937224260235297546930398150399877259990670936546015812211285142917017057001221160560367313337177543559842020364709128989034927066841467831512683384238563170692352448869931519996971343927347790063502563960276628617032589463699832631451077298241848774840469055810428424669615593799650580382435704091637265579761437528144309871756543622091747022110191865487153660303141261921117403385878106001442851906703781565646065346916973824989300884449356865697838523739205088281402829733228714508761347474838110415597189551315382362298276879425934553621845451954064941244218653313044090982779105481596910106951968887571636220540105085832731794566243018390947217300785513885461284982406032992604980615704298004595013781386937971935156323782892521173989021985362292873939762733433109962296712147055413144140699633057239031478037799283860071453362551516179141695975059933717202992677652929506344481048330318623160794069063983861372332838172668084840421644411772582243185180647667430616094583293578161467886735397067704759285223307161110422476719371820069809057978132252167143342608348547354848132529545512485128607459466986643068907767801192055229562545004762368215750509487985388772147286793460326804601709519911638250250181842645260279703495410850370503220494098355619949696116056631260378442482889829788757659918888346615296170391371769253475119675170092979936646590133755558629306179410477583361041324893857839503386624545861493301244489880597207204948644080869480857748252376792753162593146308673376427386387351845574595343835994719287412505137160953202626243910229187403855643878170114464376063938642968581382249205500885582215478383789038381733140551201841597044666955486044041289346192001837019136455203330398823725072576509263198035410382076721053327080208273545622546895493539686175004521547266402911463935576691955156730564226897145719363630067794291485967685477821235098208077861807188506374588004108496167419399749034705065045115710803817082610998466549654546056722579638370115126852254773986005868273103375429236713584278810129665929992442990100069284000934405760256175771260563634663555061774247482217524826107929072027675489008118640285132563139654888795255221083253021572877217293670720811978990787427950490325651327539081355956796202607765968151287990946179520436628512026187829249561843160158960525481262525825703782691446598410220121406333091965104058437376332482804543110699366189661410041674618451310218204316040008350448385005333405127347263738203806756600969745945939760618319241906509804806884814321360616809352823980239130886737777823201951120855079156173663463072282207151472484471108189172899513825445347193805866128165199395959157068822136268519615419584951311448254149925129924823781578058400934200932427150998407365851585935745264690914466860278354165333037402387360678280740791761923511484677587396703023481775952654340503579055862222300676022454413895346817445922310018673120200669054576811247661895436831465811288770652839644835105089793367515644810364577443134029530181719803310375219357576187345831860214860308811041736098781193380498535084696307371439946944458664024215411162537781639143152224457664656523038156993435364303403886711702497653912567250742516699971535235788897310623164995602538183009259747095620429741034507877437640292405651957746411519730909122606077662505730038834064288488846822255057519830974975119930097692919051367811352678276225203118398284357033271590104689784957539685976880235590607135282834602486101547361914892636679487844727304643092874103251393613333225858414186909943520646391503848606934134033069754009423924743399348629716822153399881489520333532669676231184441635986333202180582025100011148886551705876691428462983684398038747887542465433640941719480802953330974914081372141234868813415397971831107654297891445620456319875016819518228127762246514619539140426970706014570655925800758607013283684794212641912434924847264337658295501593106211544520141840789961865037041715370130842096438667353090039068576516076719437239003593826362117538133382434348904171570243889346059686616606453477420700651288593902008504008473192291671192634424938142863445366692938729798158081712434048306131558496607134667462121553284672821741719580411498006957225435650671322227259027527034802577428983281743598896726237172427021654782051904755614087185306799466546904692765961790486179432828659320655745153037858434019229572263087271155032184138161054679535488243361375827475533934602769875587723140108623757958350021103851383851672140091888356321953471618035298338707331051914034098469503281730354584739274999283242556780518869076166231769120278212144273267419243500133539997051963148205807436214944561256112217607814783687445033753252175353093759632721710203283534285828455579718584857191291092691189801302409849732015446587423059077371501929797085126122942281235446477923981927616265250417210962752908640781511845678408893072845633189278599692411940537220243135867010530453351403154897255298040228534102193116634929978552595129797879227681863433024490240087560306497429802931363087753003989720607868008411586110668726748941761206403531756191578266375478310757185373669737155873818173636258489703204447115398064340374185642005415793121549846992209221471325092327778338134717724092683863252684205735131673745131481113124128775256831534676684355810482932212652836054188864222597629119718387600626621550955779391108044235824077320050853228140739276233387585208866336231937798916463338144715746387404534180947003438396399851311874382589617903085350751147572011911055014472167945944000894479790507616842359553745941854437661323273797593616161371840892105043614002104281059973678795140279063601828908748347530694655778306114938028789325411045435286617221286672948693354196913086994751436462300094205592751918891793162278072460176916468526028505628099905135905361424677413826389556308192859723710997644703210865273794144229787489237725589027887303212020251729072925546310163021133339825437246979577592156532258053201918568600530704074449892279065740385967601925327287797827713315257726621133273991599486079932087246742735211803326363502024419221942041079473634099095331561420215565447388040430560113377181517569272348674368276743905063703237029298376993132728876179928723212750604838061153005130031468065039067971989873110330383994342893154433014563674813105091880210296092358081270686142080323503538324755030554505854185525034724132885352494772954619567827217332374352148619925930196686043706472555168510780200220779577305719025082582151142494156706032171765096254306671230907358335960678812165996087418523366460270744861392978463723733117267253983884121718004249731124983346533453242257676140127257661756937406160189108348741754880892039252081960265434093472562083205732050825020865879218276746388998641444167114772209414409234432026285224331197746570015364284020518546664746013488668366090728788047805592202663843937435459907786527019293045299612641939924665524647210498627393690965533361171964407227676093569599019258192387948239986755999075152881524341545494174463843339441253158104346939285756778627077057644662033881415253622951825390414527841434022429940842160147938580795003640130040614114097908923080522786781231803576632174476537771062240234012353053937118817856425753773594507098780727022652423612863146165605796053005998543566250089150720269887603026950782458787645334924666001694868335990431599153130612357065780815404954359197594849079247458760718868781618277625932701425415606026701114779532619868648497576472426851431320569655912590701275644213579318994108733300529840807470404066983567541598266290306420461356644911361487442482152568575753138913735677076138118879094059281822253051522825995339062401972860300794328608148027062192968854226649447410260153601946851746467750086192589356580732177364920860164130168623415138892143222388497835020482531192523678373547756319312389941375182212177701348032403144236585216950251174330824864280293065608038146350062960492683256142518009622029816770732005391707064936799658293760925016492497733798232807686267898692360758052537541964821066095088503811358431648542497201188821949125279820124623692964674578408653621864952468303795110366512410680402004431070019378483973160968063878886178309145182522344560493536285784126210437410730190193753553296913896082370402081232137031559194025147023629203996337853163881904158896429707733080681889799274022027115213007504523346915424197758463928508699840765536400869718597212252471283041828047134865553208800068575464192327677862741850294576572141798603589307751085070652204698371631077990892065809311836484390394091701046518527899339723312888889319068617240612861890786705568863066305817186494156044907286101254708708488738633119575393965109653404396851358295196180774451310930944698649764672260297491963798275765216303386517854073623207349443757919619138494319837890956887854472156320238303876800128419126968421630879302729804728758739002267540495524320708540673058474685938791497810012269889841325193064747533255479403480128015753881937052052594777566639247694437419793129203904497094956877909041407356378032865317481184712624861473233092873245019508790948158846230296254259873203691318712672796473343445276484254547898859245653627244230700261899840339946719729338190136719702387415552714103389093569857236377410310468509175357233541054659561354429044477994858492896225453951939431402763771290929409485479551018134481673719838029732596666538961270586506571062239710292196456252556928835425916736063198625857317287573025246672220030014968156829504953990439855362129789635779389295715988330608611174950626446773529242486791770309157198841483303665685306188039057210287762341507900116881705749880783129948219502234622799896769438744567119322437023075105238497530847182635734183447181028279769168933252702522207793099436180690098419448769453646730661759937736028709698172475499388849594584516945727327887090220369725706788478156185593698697488699082503981529856141639602488228815942600599979945062145348967756827784813590990664687884206980740316509352766295653005521394235608829386946719107794542177980017330188101755506765035595955622004741142569340212197033260712690062525542881071124939975942333857456033942048816399896568962807316227911054047660189775749895953389558316182859327529045622156840309926860656003272450271833682848440793653005758272601696760452440190474891395229329672627462019024327417265495297852893871970759963119498453139350678228766050089621512474656908227245175575158378639446906205803686988809394064345195188765382737695836438794421146302666761288841962650169624606004559391833864538230495627824261025739119776886513151438224929486464618783436587782353933144925797312396319404986932567086964960804205500753918592204572866799108929591903822257248396508815224448309847823267963422848831744330644521585454316051303385717866943563661089731732327124793130201821630326004556456042962662988546468693630459512849587647842696560013241597965609671944065904789035846878934463451998160339671117636139768823658963457242054327736589274148048813817614482695894296486470985445818485307794310268239966252876923159890404365756393071482749397276693531722297474654506580001618226325831275377488917453799960904960683677978956891790320619302025142705260971731204696499366373555025413440782454198926175950367346910840140979713028321781762634497488941109889640196097280382506429570007813760950721988436631168686274243260243216622456800905443816288422769565680366409634724760458438328739279993784103356945204469334975592490145919003971853483672508844950575828715882501875449907728155851405944255592881565612908670131396051404677583069715207964562149077967845898364507221565382853568160410297886707605475412044814936558214459873595614969716734712339669654902849582981075085344246997151122919060215428004947343683453485442301150931989904213383971629804942067513291901812172801732826097404790265684924821117511085336729136371049746392157454778029962698314011491395864544173034769629153665017001495776402151364561283505531720013682659436891848788704891398674823117613688325106655924725933982726175799945621412203213982022986834338070310357543452942428909061691587661750648543091546920041705207595739389833381910560794788902613419848652688427616382559058258927795188617685939981335338307608205060503735485008589983507753848872570270712966357906221650296997880281071952249054385624333881603732394237226812628911802721660389401337754017351570970094245785302723038834343554272772257629230632272604343681034517228844861060122147977175168117228382261538080104424102091540648788995269253990095760259076548706494693300717316830101540005413801881913237020079216690910969341310909411669677021552920828663065354880803435846957982110229334707601998207342479750770072076631156737193019292180986997370970084688781739656253731202685652148065507026173612821290088145321077293688694990266465270251087973821386819316587970425763217502348876224218925990282629972353299958442844936647545259052583852905454835214718984839902862281004191344620788401020316579546844370952124735908078775409639067389483257082847447196681255703667126987469039289979591320992854719863278940459875951530959212709728287220052107431748883351691101921717323215447950749840879481702371883388478757652172856368339178572826127637666432919859120703084962771902618981918107395579726075417590924748280125130842084094304654738197492703076339652808382869062220207428540761002095626039653113275519209835401477940387446803704095083885953543130844295315359896647463189229142328633629298999681176000668575007424186073385646069305181212974893298665380792485859135336229320656218752086587938447311282066688149983187972237192395209659470060711988738200801675562377623014704884453988655260359361498436911028420316117399556369120024752586252963897700788893169933956850756465574586444474333258002308014122415868752975589715888562305694698828077954969726730850776896092316026064682715386601028290228512372546161411111210607935099584964182042778266342036009229403046210278875228021657246016299210244515412062270547741441403037455429124633822374182293428046261656522664473698524921450319391858881750805015915543769698377450773270086917991256541509605812381910693294696228099981328124247819217393360355305932990959939322315138888271372343158187437727872952392461814636763365538797356293897611895075319364331759925305313431642302359411742113399050888491794096068879309736846228122119124122415014329486670930631184633133266693761639831895062059880972392083058904180347349694735047360564676885296832068499105249848469515297692267980559418832377244108179278544786549645019016552683677428954343001903647814074800780477910040239340558918582788610848890552228205272744264689542405296701874079018247392987868809078932493786375969520852696130602040285861823782152269305096452906672706517021035285046582403221241057513436441483392681945383658040384237704610548415572108074133720251062400417187595057858205848124671979501209529475027754117381436851141317144434818005007663296162138575116967827685726972207595112006509579146098188575999309431115131729838682443571270433167191766089097491074502688648788906746680989985165897217889747064504749212999967467697352395220282985718321770330894943632285961032154670289904424356119468866042442328667268641701080369444035086367057867789004768724923092417207203748513834365263695797787908163362380948773201823374544581454260344476673693847057608606889174732992786304447074573354055576386618952493817308105809399340625151523500167312309905376871993275829911658215122160290612526610394181901427597693249539997702605596094624502267840751957309458637049314275724297865355464077529445359707288113611577758164029450309276339259028184804662496850018725751932160839903726315740647562904323607627377529917165044199790561774992895412785472545435417976101543363517534097579114270970899350292150731691970509665998813304761940535346351260892985243734334195666869335371978257444018082234642041403457359360668288593493595380724598163799550057328218786441192093312217861584619386520940302755138701851301164691581846657366441047534298788596870535819031646493187848565962132834559413669056184226394689118780061463022296232254176386835919737348912654039540903995238901414624799678035789568662293907828390048571773068982276243907691956940841901500344856050926439811380686182132888290119874727426489238331561989265071341560369013400449533609165620160740312351701453314964115522536519368208514520956512034654171729485252087236057745009898062640857685301760487383676605270280612497645438195841143014867757912948380295754771032500619845939075654142605691401876542275544658085618017785665486927611465857183322102048746187704689442281268999966818169778141689708507732255512231898924572984836678437194219313585920481896040551376633982451552993880742460888566308693244980318116553634543716338396220514735540928655473533039072131115379799579320883544904672773694672861501179405226003962230065376439544924894132408990947795603688781192498527971803895490756021433394171387847270298192717933091454383188662858077208838598667243733217377986409044606079028474764826494327848748146043442338641669591311805051443732474531668759423077175766385635982909579672856718884792060755485942165689655722906985389918077617171960112061092334454143414462731769117473193410048958522758599129086991124187463361886948810766557451937593595789573846368822362850294969005752208415196483903543325459350591704946038225716327689542009614538530827259481373365488199714585839923772794962979329901898735893460521505180771333849064343724717959148764189917286438602839008249330668406803957352553007752567777866043337498897605258908084291571294531714737470564929676903372167377783981220320497225394841952368739923472438726276869471088047353173815220368320111479760271932394369695452657613443324815076667597902001429916179393960374393458816123315550875324092809433373701037491997144723354078009133988726470524607277176827450470208901712236929883107867239615756733328437375169258444197606808951157538326976252336536992496195772834328753422071233612146187010124775606019687567660477858269161272107373421635196071480256729886433356478060027554593854235011263229330402285730249931531608435845482374309561321329263462295190582509954125289505942993984784823239463068550583437302023134028488649877237097539912804750275107137907072446512161530367977241297338399159280072127511201522058077127273081149379250630309179610476508635141593034565763959363010154501730433812962186436868239766818391183617282255679707978775564286120778641024735202818184872397831361367526310880249936656098330684011501457554018063788490658732295389424581173533446604674017429998110488924836161694085537212137856870807952061090714375824368040259157187947327258370414211149983975996886025156523676811709018350928011170831533430797335483556198556928711681601555843504646984471980452787204001095796896548464209817202701155338606163127987613659501225649411932596732908498608892986244712644332083792099396108246596981943486074526782472994145722804073232703271758342766648712042420347176073374662616154896362748991442863473738080667566702507353488640739030144190054009660251680350308146100928166666642263280537967743842068141816846680307609000238403756016711578977816372459176066592449345721327152464499627399453168131681807751925655627385755382789725807216355858862053681656761461150274669653899404022777561479474724584219990137615909059229249985111789708504115023719190749158801024290699114478232930678293269278883484770155738090169429285753495324278809129845206012130166652084759300592397575423669808323144900706623623324169319613806082728574120227846208448072681156536568623058193407897731892711023609366428091678654037364141009735897430451660044366080038071574166406427076632380667742238127451738925940389645753468116178875252562714527535674116226435770505892712950017662558294231834510187559276918639549927315951259151608304845648882632541979159805541312532186494802191323135569100984827287329556818976758088984502316385817378962711043667480442013136394684947124179564779230207194036449840170939474072792714789057559935328108414930738096221287031479708431948097564107572333571730006274600315021966057701393228446751645643544175064489239796183236359729160898770201770420349805021696857214484109611569561182278600117196536997229741656943471684758979480474498519266443130197725867280235093070285827935158538639177249690386588672344209340582619617497513112747089154664710417341618337665205698114918193600116555157869863473177088776868512796396731686243139644035383085635978556567784749732775788566136015820799206333542110852114781407512574769651957215938906624236151668011894147258027660823762055769471939568417238365092222178903167050016204993999978961549714701907154622647113842533801947644806197512818144590961886170911711366918203038005069559931759375469152705955090191402056465161552836379311658194539489384222801239946050996494126375454857350601358111092078904826848598192313712473353853978747119604851840230780712027745133444357382689271229927978881200802337911736232076223831627407628085060296614628128507953029716391242226691626504183680634134625642807338199162702826118802561623063676229860607011305770346707478452964879832041685501053828452785506933975221769740773441665789181311544005440430225666540546939693483765601925652808094331065176925514359071924861216829112238200686856570068021526736991240130094175967858638120903398472950839391681045320226408610715162531443027675443796224449999427427901894468098000035206249892155598961419576812896947602173450341505635413175663866170278100092115535619666094990227684502201131445975475602905534239009638000420471882936884295016925764950019438690156759137687612020942226790708734447123701138665189798379055144400610453204437222669698406918714422787807127326683290734816884022046499325345987312805308565292935783649072203245139696470046319488675725790018063953843178000446547892843239293783566496958815607275199818446245360734976482116690120473402287375168549298110821867031896688528024554044657374719847025680216501697078229007072102541456418956296803881680514020508933583295989500896243363517584312637248402933013482073972099462207827594954955962347636248525444306394623874391975105603769576681361124990578265896783718584067277321428704971151978188585730787863433159927127225812905446339683026991556872720816525144308879879712207928966064500679034103114320935566502514013998335418416545550910154865549775335139652041526797126615266553015295630133369299701417777324341616781400991108709048259895221717963502554365379964107175840536074476362043840394527902557197526735143021036116550739139231442789705400754066158052669231790550358032446226563896084792322162123491751455190276010048874639855938627709993491079383045939611331393094354917119753620868009981814977301361217148943358191146486439492330152941086279586549027313213680345628214303079907881916962790532814989818508311799218915469530305180966308943711488488950073519594772679625444116060913842786711198806743044149058012119549710078586790603439157921305461423180890250451808561121735446713732925547418869779703465582483123924466764092195506417877938699486820507596538715488378981995014292019986921646933608981481895683701137767618794847142692088468664973203113519449108140678752121656780173383587131095085699543121020173789452189168045644415102927521577613103163183768640667502787694410916495604783175621542861616730480564343277561102246206482347870905654049540780262424690743132975753893930104925607811232036669794870276522277386002913092638151131169838864770915149986409111470949727444637107480634962745989172525459754717218164920521455137558639654715732706361994626608644993420875474775666474683543971227815042025367038097644828330196161172166578008428557005368846066252608423062272334175917736104236003473350458454522489676140576356421035717273777649169916257602964686830284359898405202828203718653777996052306422567310767637198044045302890612739301978902859447671698201424288873935684086060465084410928267699845667928773078062563532676149526661144473597280344130278524886486945973841725384805262313013735885648560003972374579537996461272458870532370947223571600391477358520740540112015205733332442515274273714133203533589368415665490550186465769378286996467565199500678470083922349824563897364792492621439190421743060241874005913996767445826427730041205614231152619493804265059045274716881843906329131417220122799870433220320819174708456727501148309416099619948571869167204590704714962530742095824786737358798061129744707063767355256585853172685137611887521000225939388060187911572735630840386233916716531029653116489617034989676309021315566647520199817733859422585557147742365166742695819545592440766049842763938452145852658457593685067964822303360614840110426208855297820113844599091849730908419775296212819339248515757592982813691930926416697989087662885844805327994187913423877253093380994173446409551624232432188779638751083372673471470171718338824231891441743394588215815946928383586244562737748738594501672496982283313977902518278480038894267023505775688814844591015300552059670618206710109578337199287103736056766791460736482081820274048935452850368128407269492798797458905056513159287131941888190554093188534612477967270596391630923092651826226929834506997100149168634234301088286242071993628523066944133794850674561429937493684344192921613655773714842716395542697839239652611905347363322650724292137418864087805632004673427376912190131061979499623114862311337262709434376836296882078938842099988108874892797301939973546488260903408907154262724024879181189553325363704652335116021584216483044163152144987251487368692077604554080858127818839728210513018417750411421828045982766379186105009911787398572472242264586503347126496701774661515606710798193283610796470422189847250093476559240438466263403536264219867116943125076105125856333050894573118795205943118601808150416496752280835655816172823347712226458397881907836739583233955357352421413052199109364895214485173852066950764199935330180751651353023041561824177581705277390306325073803327414837728002606642709312135611849122121122593197238363891055259623510888647525466369368295086302327498973194260144746015437761029750895865733761644769098058694100295269224725775302500666926155958114452659954405382927275364320270304235080608966608857790592577053321368402688415932872998376381296902980060306965498998343131974863422548169418286748231753265244430107559629010652560759098010767853931762233895840463330612075380881718191997474287022374070239906604604876333774853258041140140260743185759864314886651174109519317703212887817201446845881266622833646719676933275361507878693329052990457909597470458194800432933876137325919139283797250931404686762470682444103067208258135169586331125295333160482419660001188871551393167769605816988446577062126587366785506912798611235869511718050672680691024563120922037091006964660469075214743260881618866293421892715093565928278393868582433330645474778468052106244161653871940157274283746781071265964568352625264580816309413032340513148038378429615266942865143271465890187344913285629192331223541926612511142079509484316909426041572637491735359732327693593803636530189780077776332404063411297897783604373127591233010354126869470512232235679103845438527544157719042685950125619368683742151392072001645342482475540180525384876313583835052573934812685392493954538498120300307908630456122349501738754600961664893806665623887422702217430117126428461783771309688509414686212051459996746753970033296437358551530916974602574385054609143648284354594103248135261444934279443199416887834973716555539634073345816327194298074158136960711423874149326564228200330503659708258791309731996712528581443024190745657847890629350027091556719895305059344777689353403472757603885821241988244371694831092360771688203853168156652781647450872206775095588414599452608418265375692896547308436154070129759546391528046051375576497549944184397363472575604042293703447937755626534519043149577907120171819232376727118743195779354092951342324067449697590999559156891578260675156356555858153636259592732515448413639826308310380108987733536801217851014813513853466630659863711811721995901178216406626698016988236384861036057659932888860328148016746507563721303753130165622320552936143302189591468696718232601111679919125548549601489087963779072881282712359292588683679929101530656091843667590838038108056792855910407948412944385054393356679559475040003116269380050903246093110913374473447540478469337884583376816846890481481884128034099250813432295634898065009075028586435692756341776199489167208548645844994678711476411180642098182672309449551702107367550354616535110091819301658573864874318030027622363863417352065449809605970522508678019854099921071575323710579890336124011529459992370107396910211889073820276255298287544911663648915069325526988239533038536480625375036477021259307079909274600293678911993908194908423282185930590702733158898654347681415825966329020079770250832149755486945373025548576372119397873908869070088678906084197198266706688043003443074471528985860334729945828943282944143227444930382572238322530604637011601472600536277447754888831280459777404260889447000289976717363862647684397642767630409360986326824402615333092043520136838408466888868502366320762562827907466343911465169764526781258784820839592366267811816164679922971666422774627769254067973431183748985624924809328047101048925260394040889168593843128673690295220888440338794110794114652588307821795541788618140342573036960148148742791017088693202604690205202835764846342872415546714850015927989823994474618537209155701903976216540702949758758556922515092160490946253434876442515717514171358536440332859370365621959895767399981315925618693629318902161734890225355905216375056380171737228029859031627454509428215248173891211238554226795010758565426100255851000516269719709614796605168815711446826133807754529167630377120247530636751350092043473718475774562179161143426351541044111644619125981207945020982090159999953533191388092420009497138054353829100284719620478594515765526621407144280032990635713576347289482534492364309927395138228596141384166919820296062900101860975537817436661880323725880029103222356927642596320559606871057166078034446157883784300604558822397947313413243008597609524237525674150557774170005632028737525154182245891844781887183029403543261452112365003068102702152129957130354731323110231789004282083148080828298081308862215307397741877832879986544624065023541169577585645176709797750795904666645569415882847094141787086077221767280454269265945065865001612412540701262055039775157151988676831788551205695129978737963931326399862756257490065815416113625154471330859362615233020257151780523552961144458278580204586641649075458060042497518403137749981344028922636424339934092485966981354651196104107174155018372973106802009045443877512102283448202186731952177524947005825528435302089125714531192296414127665096143627662843838895565029020582798218643604202669595776957718170355462548162496149025967149578339727950236750121378588963697779141856286190416642299556311332322155596622265133660120738451657281500739695088985426134036619787934999855103598306406451583741359557886954406387293770711307876699904066315924036955742655679574244401133693739525120798436623911903352323139679689571706345597372958635176820279057686672994701103545960148270623244587036991556991748041469853852225242506043490869079905240132265754975207242300714093180448295699913505562465675248515660321159211017822698607878641163651529115571248771601582917321041358010303892277785096765281286309944453741276252141973246841772342169624600630728304548249680243400042604385641281996635746692343544544043738876725069831740913870334307371911136570924719937635009133158644296163505007368559126059139555140491132039261010499926323904722289949765017427147051967690378425028766010237000962856924918789761226582724354289903342036333668360617937114991027967388952185175096186698677350790107541295520736631406381216057525878723240647850300288055759179543878876383262822443860339903842549778257840755093350619265963444553732959038400498880191140794367764677883385409018341118273552749730537553581685726388024609819297130185135779988883160244560185279878839132398801202260016545117622029832042920108762769039735632055569307470347205467884642863781829907116460392946342909924335377148130544221081906570091128663142755693946740290645268198630225510009565323459670860099001620943954899283318297577701294818419776690327846521915671300274797340642153014883011001496101572317342262909404580185872979183003708743054511786910091285078018819087478137590569693247410266150759417007134888478467530224267814002275437221766642391457284579161778375935626369432624151728552080231733568355028569985998336081971896024887626205951603636098333782765395735809648290562698261927708844892629305704436192529424966331002173555588098725801990036418014676394641608717084502177339534329246671168544107551256428113905296371211780399999595936949892495193002819331606310890595893837042412932158932192779079751490131292308492274807200008742869232866095423191235352213199798847059786963684330539487552562054272904247876560157132727418988309040983231164437434788752427210697527831071323397082756487245942808575024545560161158093892591300387917460836553935570759465301541180031600539501570872203130198990515523691372339618831257910691350754963819104649769246576581065458908956797265157101526494138976641216668263854519827052592566110346021877989484100022488978119030787578199538643889406771828743272977582076140141079264217692515817911821488585842641778478358920239338243681320120236646719842340161436531263019307323653528158973185697343709132123241146802898109279990784067838133318394129492133027792648725716169542859915549005540086931181626267566861679528732029987794074654618521891863881216414063636196027887740630957082953560750021985922363521252569522016341824351358927787584697081204085621136028671432032553113624983707768120380716922999081273725593894272806886175186550166401856328772988779845729736131075146874575638176608382643611491866500490232462925423439054342867327640808592508870309048978537904737274387010907450719901418304621078461560513705810302208186932082682143454934651202663235611328487565790955697806714404080843212720102976134506188828812319975160112206494905235517092399015280391652395561810026702266104495347727137407921490599311999021396686519569535194740848299338707284322444995453107380356367698786818413106495579995402980097312952347192533375144463443936350360179575900219032143440215638286967490874702602196026398801682833257886735905987667966280347385190274972420984198062434431168800935122489703632544842530323100605064173436301477848302190984666822922263050135016790100935111279599413477697318017278335676825376478931547822818555788756737343820884167625958156802819270566139995176864410461973358468284122080831403996433146513798614803829361778916607073363282267880934712313454903304185563678441437739802490414989210689922633454175602590960140096861160292565639641637774193095532595800256653916236847801602408426518081629188612211023478333007922931157792959102846795768101570668350683085206507255704113986641067123376758095912995392806905825287156797010244890662780791935728169811488573048648558801981479662039944578892920570662834562751812432969986234348359052068582092780249044880195379782990831581940625633228926372137813773390414484107849863906464045232053043991039896034057316289621929287642028857053422018821341934060036695871121190614491161961433282953661547540464435627114833790692637120892843141249059078502597764294280285887082980500324267560144623950670611253704864778881627596439217587794915445959914525653962495709357181974511783549207064767684524664647228526061174826074882593526440828764295277126909704447806524345303084615371914600164884504860767355533627282354218891353968999093540416969534184246026630492449104221853005569722775825681642103530681645723656030303319075316933296618158325819240381232402341007421997363415709905182225351122249445996679251490265822036962965063332986764524188621862612415277487213307668572248431065879090341536934592156712162932066751443038946327051669318914083603003974201003202792039952626045410580404180079408681384373843058362262550261226957083200129338831609960857023075411634601041650864797209238409928029883388722210096903652487172525717056649202482770518291519445919511787553021910170760852700898149645123831928532596031316668697822912906147920228471081006866549126215164098588181814177037329542193206025086647475171332304828085576921000550801652778404401236404446980450958496548526363313063616089119804938931983842131387294338643165548520570928984173582762021933871453414094804973321169828251799152746963820906348385703056077836373320818965391455971585507973007420643162960979163982460877358194797480201048922010463906632510360536127602624855309362369377895375651350932864201358990932302570470787703521371568305419506237620799159319236036483480746758510863860911812337114675105872812930761491762293906931619196622362928152534125172174889208202738541301022527168630563297345416497406145260659765420445994707154298584280675043312017829973459095694315166717684014473619955796568591042869673692358299132982861435853747088901277348976120307075090877818029012389120146936366637274989650583960397538940274342332891489133543963763985359038310354520170741001192793664462845564288710655449391573297580240970811239626789604487374329507925340495330106627167744838307113563668187763224965761079297365275178720957090015631817842039047331263930158913830938780841680488080646666473740202010452975666011004139106019961049064453803037088816355286359418004564834892461927786796701796106573616801360073064118554545227590099044797143631645893905888957194135422200139852441702896209528781016453941960019445238857801517836895781880645322541452811327918853628162125460580300784359390875818216888649815576438321727940761246525633937569105375703811667212442262743901566016373825207672777301013149676110882257686343067957427913615320339892730728711972866847454672297158647103610947530497445990135254457638588999132444440255577969978816806292533911595060794093264345063034691399884315582062564304509170727752000391342012694032916155520469968174941587345945388635057622770012700676611824699894484623972981633727789367387402381838291291383697002368462924655355155634538551912696513488692662697409937602254012321221826660188130262307097137016373491394037479449565838443682454444491887803394943492570246591192386567103194399023364731153991415775425527072727214695594169963120032772093096892389822865176480720428555972990595271397637539168878414561928549917191518533803347629998706326092326323247779316730479420511330035075539641820878224073266237444715547790350892794904395373130695751984804673243875799911842890628326795487090584033699213670009984541640563066268204283648426469128148132765901865843621993440212889869102580694779069562089050799090473116993739561804201462758577537998577232824358224258471117364036635778668403981939570529130985538871991068617134693351359870991554581149071995509524461458888351633980431400179504746059262623130284398379596896991883786793896290825940400321811035530472893788364282678694990102111793082124169467022683676314197741698379857975065223092651470233914919705166173774622946055958432913620279955273375193867730027952424655570931613463780420634779602028614067624819032982766845180921884717713284997844131411265035525112753054433910609330292072642767116163617764315022822991559831210572546978356541349592007998282498613741823617792833236177157361161241584500177879054045095636185452877604331268134638859719654892277773069362151188787115952066283284694527444911959424149982884203466827470525795155351043600957960631128575886839556440697505968988569571068686135092985129339423691956141095381615865299881443746630058886250758913029961594149092169634016611874368732669557190228617257146450787800068395151519375777923467731932199672720560047189931404818645960292549758582747068244042498184601046845960593766152942113934589149357287362973555143104329080779954955604313710014090888575642161343765030145587009997700808806809495662837131538680910032700649305374972511195514878231390251530718685005603948477839643696147416460022979137028727967474173906385497826997072369228502931761280887364049476540331550823080988624344315937417111673611914835696184849882420591674628963132343052056293898199290794545878498003822219266506056458295761172596375201546798721569686299454477473736909143385283247909273401897191493271840225562316097381974615084817871729413547147774979964317582705574986279479166477371184505839720340944842564116860823378835691041229108548128631267298927901542684171881937026200570517677981611777850595636159667022908592677794521706958367790733674733884367457181447200895521064303610261892042452797471280774082331921197307697227567824427008465309734612341819859012762402762796705865286396577479288206501820790919307772305474997564870261703701771367469763109042324782283761100173600694277762246061005372662025944452161172029316249446555924614927190179299681904620488381093335022673123854846554542903380932847846216075095909549125697568884357951394494222500016517908816231805074625359215963234743974745389713423179916630521030541973778331784070914121072445723241382769265893226855826142843079908507644766197307844106551595536011318207094773986198179740115471104629713446895454110991887052091699585709309909034828801139209308171650054628236666219111327298720352322979381146266563036021175565596583497254270050681932972572959692321519156573734287439591852309353133728947124611870755210447200475105676234242830249249170327206914504810734027261391238824067448664857429940373116820591128816328134339048617072072624975486016291718359588177747915825644209251218213523121763297301376152456874194602348119980233509661049372464702548429118419474042482505202770132590590345385325533886726168471924492672499144828326887000191397898337582542495111646222896867273605796720158960499883697141066052766118831886124903015648338779742424479965211586383048126153580853365979531213031865591667737256044324343625906933557101748856844130444001103223091404451264780676383728080863934065767945847066355300209363785956889672690886018066624856964507490481491866302323036861528758974980004694757619768969589929420885516949364111715399968438438315080266919504443623859542413632850582639098072853090079518718081397349694623124737596190484744280765695979920247199028372769329500826658460182796158720675262079368168190753377468682605643014472045806589900184484739031065845976387331333381233133396119299381594280550609451173391897067001872255636565958231803917505944194274673427571186569043338555129746788604557500229300858643149791321109922437186249513694995605272515768826513541556199627548720979041433162416571037773605674019961591194344000478598029302948735490468219318479444365529338699882620382781852557436661648428289344768915353999496770855816979132526571940077570381190232245886068093881686365620829532082607392959058821368499472523415707106181754977308235478368631432947883705525309086337281269983264077353759125504498280097201684673316258514399992653988723040815544353313489811706896437664970271416590378739228203233190265942643775920205391523221838075304188155455106161677885899901543145040247093876306973551169007753372134274995645397322780140341964081555282033662425624411861723928193555186411487894440198211363021058807693851983968559752365906518788027415579619474554497233117664182254499644347182936359699839610496105407298974416418521726241727111534898917961890836109202870904471380099587594159894534414449358488148751202341752205896942689974798676933737454407791489631402441672833702501530071765562247488838849374435792754824244304771503964604794347251688560800694084798404065227575427527828808940557100235984639647642550893194328626645519117818199105615712518078878048933906111882164520408010822419072719287660128275453779294928109282876885631259335807178903439383371066874458822161840774291829688576023910799077558892919792715125693801870568178503806321834707784488423493714144967475053179175822241839752712910023437406805438572577128013783629807720400717261051035385396343101071739059954982051445160893366462869149906065701058474098660716064845587623643850351943900789562082292604663968295274736839475998438756599843679234229759584985878967872508042186055647673636800994160629309474314912159127662503277272750886264093749484434419380371513231724355110004470122283838469264866989010852694021287237275310342772860245696048364348637244264909373168386097707134479485606840375488847444275611371969473197483702888372304531120484892009588741911851278617025977356773278343712512934397927868845475623736380378657095312137274867201283560892866612871946251162168648334255794726720447852219714271506221826203005297906740922047759422721264492490288049922069540304057790709789245103983283597631567763980560394364029194015069151584075457762296343860923904038736063260456518211367391455051525022995964034317806277550249374522617563920999772956637838796640824692931071093044201490315268260879137569155240189490061722137559736010057908819592313835009342749919137402451224226451857593617918011715999021364545222760955900638027341588020231557592121724948468088847857330002998199256888204339280595274712643021642629760680850931179436391733584295487370191596095600339244499026524105759653787015764873577166754348567369517233962552197495808167462720990713983889285374931650190554215019433887764536499609852668384380967472901448591990121797839431676673467611926495045006377721232230970636226889844291856836204294578318618571858237099059121366722085088164593610172966292510822095455054938106986702345395914943348307244367414794180179033884876072507189946067320543852517166581282907426732404279360667181126107907156226185236525267700224059265002195721729978375214885794045418620113166169259708327323866523129825164525280384705084161796024516637124654233986889380895766844902586685020148423013666094449544882153580405466410212977365331482140430277148488208268243936884882157949062878212519701617925206353601670975413503622001978526724295141822540505394996152288345818158873192119149841890885277427992243062956898033717373215285393219747126298075766193361436558143479974718690312557182856774085293078666441045033353591436649428335524848042077141446177131861140062419309268648424874940402104627014891359013239333096128920719271602485304352560358439455695940803005422458180431333421370564020645621771287390936903966443618060147643820918512773273454723329752813988183962055903258512129100858286614953251722327123286346041698822015682569445520996106050874670150673484233490329700805582308800648922403835702653684578780749492250036291701023459646965908784382728658940953915715933957203731939509337483475845953159781206834686825924355453784431295726858920470900454914530596923350821342853103958951255185833893421912669084384783150448876134275616881854728500131846163434657917143205417741646668960734635117761402115381566549508643300201087320888765800881746167302046262591171683390242640999678873263886944055442519848416980714594040404834697336922684916291325626913622576223214127666342574982257711945667856541262551277448326663620810906515323574625895398559671658335259151956510803594832209505822051835565311959310202785170125406121895495490748358552550794420346632683831244884930806092214391428739640199985419773431145181471536318445346410925227507953528154780329005107122265992287816255487934320477066308282762982227174682691006596116052462358258605090318148442083994997134007088667114544021599080708450222762375440068728616963674843774017995034934286581593991558211875143942128252336882271665045521545114020791354649008518888662929633451700579203741255261465288587961511098945959520525762560547923743487462068343163618907592513078784097136503423245881665869526539005549130923629550111100642409971807412061223980524087447307006137488495209398779435406516543024588990345944072599448763870925100293446529035782615301212958094395280166733089974794310639603644999458075358022870213954874358812936912664131102509255495552645742133640038920317530816643297820893375583385187757045969682567819883238381027262815914773055138842564763021934885266839735720144108916199628536435972286656028507224065296182894300079648586065948381418326285082323248845789388988925587669530009555798700274951053147625737634615878142961419987838789042356319380283071987079684376979076403204497830046019323871766439707570447484541170021029322119082711860409352107974368585137827658402374087007601712882115509055397107326544951162740691637963185887255508980754186241796903027564053232384856312319072482149815664915272984427433295897776309692671716564160180431593901498592817484822457206050147086509186446661827555548176817502384064922005601568947781736220859245064143883804410250098816202195697393517794795688468092852567993790173367516095966039731647907232749290480889713743896305540884989471469675208725790759886276833284395224730796892322180767788006256804984526446757945140834294956073825118918358252468871759364721718349264598314807002764240832306947203391387099800765359838174631876519060517261550962697686783669018463162665681870799574799322590689897776203155031611935175745103254468317635253928366070987558972368355744881137452047808935710239105716908979809326222713836076513856733040731031534829479516651642724673155032489710948071620051089903790292844966413693615571595214017790230701040882941779846886479022425422564303147217443377177538769703049892104635364075352081630400843403949953953714247169483025372320932853653112409677405057062325366139185944718895772169713939017202541413907789259945722694532250811100420804127547150578341628380714622510976104319078432989198115301104363929917545443607958301293487585981018664443569610022132787314783343355967734456849160156578938342458042476641170232617907563893730631097824352598265603820480313847236837225303770150216341942459000382114983437202905270656319211342023439268275086977968815985396155637516332711285302944431739404407800596831341882814866652428294235604085328873424188409789242795664575741106920770418669775004318959451627234048922155142992759752877103011507812975847973299973728126132803651937868187737508181086305606263452319717029382975886020245649144217343897533784101436544347599731814599700917637634365126140153235605283549206824871048341039404130094547456210354414011047859010807380254966565381101495422460369751208651012694022848937020927447350051892689264445955879536631578694430718676577857786909967075686200276503223186717727951743650726099210715670768971447872630618854298815507672160529314744236634507194404264667389789840532773142129981369759434122097844774948186667015154701525378820387028829643890301651397356452537467683731121800053512825301169750347137876518957013765601154256621730572119385680664192209558355566241532798381326292900127556261720525301322728378194894998399313263383615595995722954991513367231729441128871539661000265807996954483658759143534415396257088895302543937064015243556106669915959956495099114013872745058504119100367782114982760726849586408434915655477635184363076606411924390898170818793321012101650660127971849957671802869354658352381724129475148033209152165573799684244454276551035178213635323358725372234851002044926117479260841205786769569472003797832842393313560577156870916876272116802090658131881120869660870170000465799145230668345590451407988697338708252408220316420925271524056216793426395032959573960703706164367672784748417079781166701788597258124482568673774429073954613348635478573687305810549318627811375358485010055018155579752472996987617687323409087869011959489259644965899305246167026358206254575039039645387402996454128150918370438952341108819280345474204252530233786802311973027344434823226279649904907938857414230795420438694015658171893484789878601643450490093208799215850280774789276958003561357279536759202808135587682589901332849551769386446180104910587022560249629170569588848545694397073518129450972443726727723397716454659130379065380666163216050665895692856170595159575150111407609354966836490961380298789130050452915889271813568769967430021489726838216339126700308694244435500620045677723105179237151602397439835495071466995456906215775028485871557458741726047529413298506393073936704310948600306999779916445016656395951990736220179467949349935915067280642602197561404384749787493266512387926609732130767647242533417384227440222822666466425091721765874419995724984342226252640795606047474596410696861511352650158766679197898212346212867389817992361326051747547123252091639764378473482765662646885831076054983598706656823130050500080136057699347847890807971005209712010785618262234733505560314469142176895758332368056712338450047645224917144977541782636706934109200163905511462581792962455005313870428854628994123520254513792431053613850920749526603443896756366740897879991565943870155315776309986718610267862049283584838829834550053849681197331799915991364587060858513535815922708561168290099763902068992254880227507105668873961350195121953012036969222777666194514477664978493261927141396014873643914925260840228695549187649368945107302552471006059018160367367088318255628522095035623811328240099892599788189010570075871821924803083519521680402177989562453352800238488434973183269210401663830459433824245215306883768457167493981224838566737193079742900421803424677536742388745789328179508621418362282019655350614700854576669741103206881019598712268048525371104058549574475019253565629872301159554792499524655066142706940134615062213461415897619776660834270923052489519115573448383645430656616058478595385377080824366937564083468463290228537241250770647589834463708473092532024591346986684562241348270552829380712936475876135488752058737495214513243315761300044588044210161039089861600886913625521208548943416291800118085767786640001412024444021728986439288635239097673437134678346568109842564143421298048556050189361624761347595910736629035940481898137087065264498991764073611132172243378300578592091027114397976663400343625141099961675531862486816861379928216095433449677383617762851175421408158904574481189294428094164318271531407621004724344005303888996341102790513666767740261840349321906507510609240975499315479671542191218904506064040547306734830915483094483125562436937933569840119217440150747027075278338707641865724997117970538905827191486828851381533856956434952703232751479281793405672413414191627630496028186724047707882050339877397573679917940779897172963396654923010468966644253986352769157259287423545512193055345899758164696529371516577259181208552472003336281623297575890569429855254694870302163816855665221551290950877000495730300662618838721110218036097769700192561712020890988585824842120884016703265731817203457901725247396015693156740770774094963119228427844375783062796918145108349891140053881257132893740266908320988231590993102110124097391208850521693138008757627078752543747996461754127002616360978069548628186536932313805133155058208603296057623905717154771706014405805091609678004183432231351840732568244828317345001816087405005733952113663925309517501555417558669781005509430442965392587125054763628952089374237956628672609771533316694212844649041579457666074404701562899758079196660060234970343615151048069389996645801702777052165149644439079094795277241822205552481677868309115687626537219058973110836463045431990146553730642133443768309190376536445569806735426046048563605563730389403189680490620730159767435690615507582974576659943248517891121894797569274168427844324309550330300852061107600283995192642914756840164142080803402401083689318967657524131818367487448622892615572307092043144414780190447911315060767852813815060114504988537720299038141340892461725278842646476681502830001369264838100810887179225172062828392199971539334610774463725435047116778861101703079407560390221249877269687778057445859376804910285653292061412458369442570426118678856806494176624809888844579720494448627981636549569681084145857559938464273302943876807974957920648858891379873069381602219130175009154855384576710654507792158858433314035504555262016335007987957105847249194997062806110443724477790976246794124294934868078312225683901074105340841376513931404414372209974086181915355715773462944697924864316654247080807251337631186350335357913207032978328730254123790509152522587049381242270592891752311082940403540395690863113612674802853059049286952377818991491387468291571854044791878201323745676840131303311942583508837394891772910753654223177142919193547724401272634083130033656729494654535091668079666126045746627000615776373591330507711848735553136174814183738333655921549546948501875122155150198868938869903696825559305621981552524874786990790387840045652871340118461225337155166345713889838205285516161735562046673297815330174897278257465226015726818836150722960570762061782066518144854623492449187493966795580469500437627925598038580474407368815164274887836965546565079282458247798924263772409975416586078251333399333187910367136424549349844972022728034270077885645520828002604944197423327117765337089575773787503688227392706903193994274492097532121161809817578544762662586737896445888187208070808743363635360523591046849396537982342900234601406685743340241988616025481787586201836288338405878085944934473326261487343463870448421033726626658653373604977983028270689227091599573360624050491162157836032219956937967430053030814136813304537195840260630203523909950103589876812602529385837968958970928424455876674018090308256455309489742018543215215603352635854874681367250788043435045357041186804659654378673474960986605081767943999661052126057242736899050184786324656142291809776016821955503382126962647298224087666860063428664480399713674287980389938511762717966920426356138040309330536137949957214336838252563480953799880746667098065262583086049023473596153275981234834969925216991630153697873393237378639845123604247690735252094664864236241915225359131505114724475082139339901154672383307635621238289081864476115369325183770421953413550176691114012996648719326140074965584538428703099820451777118431602607201451575701445774469403582719644468738617038783812192367091822351400282974167034603083044906661584848800434773415034559893413826771870248935757629961420214041040342111498073015620242622297889340810063147821428814669352236093634126347484160695423066504564797763691171349276907899705222202054505835904631214767050453831077038124385958847910641211405221690398353178730369400970772873600126410156983500513896177589764680157535348202336963614419615497158079767299455309912470653395615712433230755256429793273144802912025233348890785962169016363254730270523352815693611130363551099679157394955577638169272489558637740545361277393943631888021463906700693074000501115812471358347959852302184653265342271932994041462156985256054602946207221339357532838791107260862935374768343581205856735791048434801438485182495266970492729184106614805866686844617614190522393560603028419786296142594667671965322111696049650224372324086921940137250091299268019391170791928834446367311256256592210377013358880654238650270670804127478041904055291676350955760565014619693300530258871321073183512057335017371075647176569721885462214701909175510140104573339048343428213812115225445996102368838066638679820453475487037928858370619542124235163862695468537595045140335462341089871914651695163494407027320376109508835337837253815060975031010589173836284821767446063339825582695555363766108467526221681514122315395683983909037442261923540959968090993848198706983926125014664564447655916415383671409660750956139859626516356270384452862185163592914547288554368657921511767957724134789354065360201092206760660434823508823348152222343308140087656872686480829850546838107583815468463547749351059930236050787850325658842763727333890372279315100160193173199480697987563271808294440273083982201879648618953741081347843063889229327719188408981087425049642074499563059086533966694405402662548152396391406744781682327360343028418644721225137990387128106032599009969990424531153171127537421188762679767008528029434741011455494268529552594288339009716208812248556224536906303261663206170910093016712242895674994237083818159433476240106244394351081525133603874026356187058390342339425373799071191205273921109161021318500103712371065303488293619955856909766112304753825077427225201494705135892995491617936084333327205070170652863771090427601823049089444217470258885901127218355713003027161936614404514796929819204512261620080659137068164209715334636422868688964685888542888171965061084428635283291195168943444458604549434696918297483764553540568777241610228667303938042469760307620827282381906593963396133891041372260175317584269397875745988739162759656497597553035130766629863976884191855857107786927904751973491055924774800504982742198203745637000939893746223190420846181724810599591813474406889967193864611336656632128691053936737762150264136009243384977508234701414421479464578592755782908214322346220513014975765939677546518442397308949067246239557601973066801731482732176894814175389695951345040072840717729507657156016830294006830500828020059007533933506688972479808785316701890058161251384682299681839105571417662132203603806284936178019046920417803330189612088977678035929025125107938743153851778603819564346492087591774109033459306282595602705269387733825669092338448385425148597916024364597810821530763976161251443983815220772146591488435355509196170338477261247302663808117147192582889961238047758270634439217020607858601992229772850381453719624583494251274720892093105014636576348887070751798701866668758252768911707201555104333014426799948927963548089332995618733040128454924554869690860062549108244612512460388830577099669716886328794274134597561239516156762107517392769297409748340318377994896860462471668479999302913472537131619599533781173203802232843362180549436007828174789963137292875386900379564633799433695485016787411214069245837302207365836397052520749944122207615261293067258480656761050170218897210241172819590506088689660672874844723287610591011842860438919034507868324817866239035236411137080872102680906754412886548924202536396513777126166730958586406192250983068546708125173945019962805057146530945051898006436251286658011914134847617704384440581274184133788980846655174092756741538878579972288621633142192691813252743588160264255540115476206654511392773901598910888476825189272727820446987047013431961642234845266610322564344623419480683618150366777002063137392879918968969261928093160686770902090825441492450479595734879411378079407897925854794727027927013301388465694507017166784360720474351931396190047352885902040532525217953643128107770197454725967169449875012589411939076615649499560775472510107617022584838925898019421510388756850096390360757772032049421617981879064725924126620259622799979351219507724753662615353974569643612795251489339418534058294348501074711540589151028103278591908662156019760057517113084125888511193549692513436532886212127404236996755648734730323406570108831243212058096130848723485710380660951693625253835253490222031681051269762650789750789385367783263344522514382598951199617109703499537433747188226070779920810954174922042152135654833099016951723088227109651881019893939104586541851780856950379003913127943113195729726899730180540680439001140357545138585805042423356737625319730770006954788928090016679853746719242696285008999248425699618503233403343901248446549928809516399504056761825199064251260219261904468557764866285999914077083116047906913820578198374074671832778849298595616114248314225031679481841619747272124512807301566256997300201996631320700342915472904041618604340226059764412370402837763592831327747804037407632901542048277467237150878090827704279746876572941857869927401662316457672748044289463107284535751677491870359209790050045647309002177828143866409130401181429419425938555782677760757442278649539199479608991112439813525954906454202846338967049245292608896280589440126344784670273440634447202164371396782481724380885607051431816040033854449628978341671998313513646375881045756792462795288598205536574979904213104827029422094458007205505545640499499979849939251957130626911082582058594604011372602844770822416384964020379290048937279421177218868722642109913687247281672085861243008008091328678738472070889401358241805591389670888300048634935454097058070114780087071508420040124653343792787744202881943634174115036104359448590270863371349637842078977845253971410347905175708516015307140869661755016855439962256678908018374926486262495501174283989707651917614590573063500417022305262878377872001978363213549738523530804457347645065273335780149727230244077852591372533513455340389291879346545874374177442182590337131585336264044336834794730141710411285316273316471478371865281567294939217037512986455111178562259135162208247277243813724811524480858289239501608384563940575492798466028702559752606275110334779557669378312869527503703377656840002666155599171420065376413397048705412711190748299755131007034342721935368151801839458702442542513101740752212141426013637358657447200068302724798074413295998368622748071498227024993932351378593467889557714078212899133996179626247545182826024920912338803507387345245514966438071965771326044759105950034614407987137362865337222467127414184103244181218248480177702947734449869105635049397698155501310912052959255547914868958602042218962591186008563739576459617633561244175576625793320764345564702403861951779443461018160164163057344947877376819531482914309069936066289931740841925568613193280653026604126777078326535516543218061019286773649095742642514138584701118066785994688955114738057087357200842718188224884603841612650445363818055726490015537807115995120873354155203952207229629746884832683426592105219766644276979695052734793064705180094114202997381876523755477630022280983714746261168455875152810391224172421992704867765350931803258741416285824613617031082949612039384992020245469306265161949111151611025250186184241840376983566146244387311966710151796419230682851697942310586790665335978488093719118012851832036037554830748446780557256074321937639902562621450526985183098224452931074871668940772611728913261937399382846666906411854943763750698280314564360352461589964383085146246690126086766973224240870921761877347405144129981965339231765282986027759937931242283024653885236752428231156965357322522409309063897876426136494752562037706009412188216065364216736362237603167880784774657517316661697486868917157835697380164280160192011245976154578239913245033384132478672495401458266763702880299240683483100948700507377562132078907624355885829261283075883404988574522447663778121313735930236384632741323571666508908101807804154020555709459171475936320712636636488854776039584670386662504194276417814731268783980196260073430017965723339498404064448970980335308145800426327102762535588945812813343143986267360463406825300817008278282660072541871905351868936758867251200087774181590112109073402643303441193551110347443241669672927197191470493940856288021242560300631856340668039724739977873445835097123385972813387118924042456593623928595753952054732860760360820809078705625393163045069014535019997848958674135411956369710671451560026263106981042100988122164631618747473492160717189402216138640241818415143744868843025582433489879055997628201905323652590799919021568807090962094372587765643785671227083383531354092492046769372792970256232550974129172907563954058263535841061970489744537104013808097995127651463603239240661239387584137215791067355209441667801775764209145648282496933473653217234071831107056238181570982990546871814263712218729682827508703672230395975675622823218590796114331879979128020496467559727484626318308299862022796140983684691536941757350283604107030345684085646343127340611477087321416944571913272691224283159817325235946736004209307557437802173815591625318099680863786262781372536981255679772312579988537271881233137292311801838771976779007339653467729278465756608872851824861046901885878827956937959480269388460507948144259141739062718408231566888201441443780290496271705115417709153816147841081134807815715082882653242698587284129769413591788760720669594407726261085782756238503043006847669466144124483419901219215242697740166091067978041284719380069298237201692253707025607580468109382571580145224604853954788658330751535333502250579874739904199525665050651405532696692470313914875970139363238884476704711000894168332948532203771030582666852028693862706765550060786884731987891037803602810364857460410611291299992970062587949489540116575127736183508419253530684576816119333270169633568689450113139251287067148060897802872864267842999918003744799021075202120072866337412944650536071834780254265762153312471774032284723073119417280471545503220251138001284368729111813753181089353406015312533519566225237658267991818299059804961264000385163743153551801793263440045422900582308321887109587507950989442702149627032616828189620520938639428548446629781153584024156916312376811952787280368422683054812815300350296358515981955017796431627735587746048326789443459843428212706187841745061467351644020324173741706161128767600796427601940219498008499826452903504290921637392922302397804577431498388917687869990717778260213044713990760178971986976510761366323147868670877280335902721079635171148047931348888913099978789320847686598656243862425340611275259855919591990908364272810546845841699699858022573345868539222988059724519753837000403718035669955932117851753370496251084927277044833202363243698759174751330011102358570400408088220573913996236220653843171324950709039598162992599801477646755768899545470963799322699586385190348594480149555160038803419229318646022326048114120070188605075925497045141779131664916877509111046413986510252178403988527050361035199436900256903504687233180161953645620371828616637845672167757579158693724680250016471529612806977434471470769064455333094020349375441379981077594076093825702316305188087703334470653342528269722125583065844651774277368520283499524278298968567480895593788610456993858163730109434642370336525322465160213654717714017998058711486490619320240271439634875716287331671987823961304902238858936739715371718318992834982304940141337014965316065833077200743836104334745144321952412454188764923272737876323137414157882905156584587333822626798573441856414941804281764747986769019776426627910072039186221806999424338414827356477350940497535464471792929129753118484942824539568071497094213385735730996600344422318525535867943373901931746247188387183224314807493504336621993881177835852951227928652772885884942006166838740966272319228522657405781165814240371840834644189606646633634948881047416594743376740858714421370151542820702910733291102420375331405504628123467099239547889343875164489809964992732614599404021973686064610790165575500193740920736400969334940933052255863765975055214357164273723253048937528905721168447200038951283675608202129681731100097595950621176996754278634772689280571105018544726530811798963822496400742506890006981659859156712361031154971012233687328544513664311254539429820439624112076136114692107966708138821856973483698870126764147318029035529776533992281330336339994511246898246048972942703422699121216608386220269485764438313911084670208388703702977589136928926053575598951988463082163187703217557426818838929139709636212761368338089348720000610828759026415500479650007950858567828537483947452805403643674615823902456675441899827134274921344690124642624469907689496174164054123949388080203685135697054667121256377596662204227337692721111768599438344609307180743395509900242888338793840359244819623691547427459592449587199921350348601965527707353087673043206990244585107809534432710942314020053102454448055751462801081211873739064698459723573115076139492420883965026851647692980375304297254141346635537142926434873248090453617795972864261061116010295468125215021734248256921011456431361383786923676715904398248821796407125600191437980735228747829430244596745599749398846821021704028169916199996242280934954227196311991694671354696225803524457215094670131053644778334163364703955244111114830318030824274897324878562211531617235249512330713711896280269151254633960167723900340414451958329563754317657525319781679031018745608047523424251534597709547089185323468363157659114257787906622782282473643094201215790326407712976979798475644768875531739965158287365478915525063128030361132473125683229743983774846609980151963688818398821534595099715395830638121611556515995015075290358438118069024345667822985025241941539461406099362412928086842694075012373049099620126125241508767356405461249438946940522526947856069824741780902430828001280291097457664039190071866361917699365374397581800155102592942738852125173803355532182130698050552547757409669075251156374643195661686159948863094019373990300116892056439135703888906139730989378557577920339859967038569290464604176283975573090755732535198858264032782905014886048912683750243062524079123314521899681324426945511138016567559974738805185366485113194365714610177963107872695998364477458788753823311842287854822977103656021026320245149300956284654617910481159721522691082300314689739698094994505058366002277067425147328072923077906760912410984731002063796637695355423507124683152031125695653774709557399831407906390691402361112984596307473358590820670974377832746309692279977696768318565283239112218465083914305332063017478214987781737084911847764139737944116747224062486858072537744635311134734837283221332136151573493500306888283510971304376926364145436979244094774562410662128512168306908837251785947516037837846664309967278014907403365339040671996022409150635467056428452360779696374008866489877176077191319647632788720098894687497035496269288721232511903689452561623055696883537630521336192068074263721879775908594176157620576726309970613791688061373838407992689027225303225117408102278492502613868866923128194096064837497413640685595756090244479959884653141069227721202546666626069054994228036739582738271892113932933243444322197203546440147964530405247960331884378721828565105944257569843560081736308765098125511524065818730397706943915129588785670159005447818358315122430780313431537232184960699905333065310471241813851541638471267535195271282991064976115586364763017982031778257410851690139384416693498879854689080878722157300875241589358314839069452739544957644413124077604811424223985189009216081870574459603614157596041108762511870608668144957299162467282182978075301501232902774782172790287679083202273033671750213151635325176058258963043637601549943112299989741423371970503318289750954236659053790931088211955116342471328818294444245538431146702531687150770611721726487919219187992826040247359751167663224760205406717214040786238196153637470276403286229675541321698359534863526123005942038915031480215515749387731299655439272159219267341867179008973700676530767767711723080789780309001627984305196195863456773796476608807931264101915032608441954568443695362146804620023114963847036899178198611099259253177171025283849763636423333612662206083478287909832410488674489060000661292595803517001270547791277346313414153382361946737347281405124120164930174407066656831486875116235860369442198470856570192995921800862317988506958808327021339371368754001894674075739282364298422240196465689407635634818610294920947655947558790702042785867172837023050531916518976981109229101515301468650564175331216765228332914169665159395075700641490557341616438124213181194659278495821385964297033024338479938189577598751371589801414109604973029849490980986094340428252371337861413493598077622912134718206070274507269319338894444553913017171494864059721488971591637513151566786149895277866220544940908801900091865615427619059112116793472337866231351731747972503526643241866212494018570656679616393182023239554534479592869085584091581750649770366407790272634294261991879516664401036343363837158351418268785293751256928578750338745926546183152688230119094574265392615249712196118505573433411047051687516285504709148875745242043941435546977132833175524808849878938771086611862719739096848782721625795342918795983651795859908976828580488873224106528790126095358663663311474267963481301020721974716480336577286869887879856841998135598060690840722341051536567821363055971581733231613677865751097307688567330120485247347749925842361706500951907317015339231624637262663282939576522548578635991751022301587544011950059425001559648290002161982125687755784314312372657449330576590065739356603801063281197034789016322471301259649821289376063125986618897888452576404727588989793327661711613166472827428700268636672006299662243081462330751027738472108006514976605521893835260166043706374233804902072494395005315415969922955525445674633956177617964814621136507735552765424596329450836098260409730210852486591629399226797847617928401640689423500418374232679456814735917878270203624805472213766502333004617878997202073805242436710027193499490655306057083687045028407792220489274294433038342835094539691114031338841513142587944017138680004387383194414625608443479604323763404845381008429239133143784697335869074243750921856303001332858719139206537834882862436477526008472934809022907771075732273906448217214167128764424780369558662657752986731119366756103957715174244557281057166758153403308728218604509827746748854193044629339024243752189463959812395007225142961387679300796048451476006263214052968773607784380006356461500795263228967838364356686323858922259288748941827324607399198369975523211443290271068101278433458718449509053632657407490396640943075597359766653803080456454136177080645565719630189008028131940206519825295545124702178076406066047676057735632587674418511659347742375742033320973994669810325146790310980700774832662207600727640375111659347168457388215474207072764157896660940492306860411098706626137268152601929084656859575168304297592161916053690496740623899787055535908275251079350312705537607494501267850817700782242615652614548791344440463340686904033882568545893077780770535683022240910280659595140845588760030751995290330806244829289330286765734393114796886822760546407193750279391565917415024639245037713127649386359658103995869120539426814616234591261437074813826698222641099617513727416159733998786788714501951745239621273773879665406190257094557698091685283961117307587501839491295771232389059917689038422604120770250048106588654070068863145175178475588183575804007838403980799067719199648638202986007355681651729685415517037208558580714265493330899943922471709058503609501473446265516652842874399952939558513990065699491785944377179612541834587633234888348301495096344374557306464918953689078575654774737618798073537102990267332802721351052882585967777209432354954084573542504090363239556329019918241839710633005682279894694652742051891842501238922826543918912711010949322054703472640615667569905050767314677233763024424077305550074022009679969769495820215043093997672855878638449455821973411552036382928039694897098762565513289470681962133253775410248366688196143308961657798410178999373927428473676440562148143672089552473543798425341218827488947760646692965226248290454776972362775726009643094023194386876657527158712169066632041554795219638447485386395184897397606956533206833321097709381239031068532497657468220037164657067086652957421550516314767738185594070738525026670824003116462784340913401972393731379405640426197974393357373733853696547389197450192976369105335030771184864838082434276627593060277821988835786654939555017840240275907453840793052502814123323620512668074813479198767931395201903073634290518118093395946738694637391949164761658753120405419845393191585458105273747348301395612492060812195116687031152359624039169056867556068997136337565055647593521282924291095841212145050587142312452412315897941735707564324945606729910341631617556951898765651123175811457242627753561833576563383263844417493789836449613878130109270431693894590399130556458578194164509090780910232768342505631219261111078191414822864145675472932515006750305157759199035105464191321774238659198680724507192307344645137296740426179617791198094294611429282421939178094091832195003004430150855617233516476917924792628533902882572147793857018620298068619219828422224499560083206167739403920481467063169027829344042865653501205719114829557322687415755968862892291437953560998851391799354547480075376994507649188957277827811755516614982134776106966495084067932027016418091174040529182069233715799314242774378704838999792113848938748428002057309563016758048249140218970937270948981738124555775284347727932773039770807702635158643385915256639599841799784278787728247616909629802711839834214781912091009193092225338591091569545118231086267979030233411426541315348269324881336113912101097992090948746949526203592312851566565373874125348263874220127630847487074825463418824605725361708518854071980794922403991578844105648482392605114941684246008888853347610627184902917217080122046898403713550879392756403959442767775126858490329845704227197644828424607231915577167228180517583043874834235216447475397190648057136698304883720886619914550360695089694054993234997576758081249802821739817970871539391895766957002790006262533835241216173602268551580333768730646572921908039594292879040979944996618981320776325504457844702585502999998698897643806823157244423478357490308024175176422167463594135883138824737192250262985892899720749464850258298483907232384337809543959249935480741693545225278904284852900455107004426314813744226157993785446845501492233609055776859139841370814800338687373347397776062813092272263607035164344071969910649907279846093562478610661774180022694119820617161020893035963991345998412536511776358335629167036947352085083504684331039568695431750797651039808823856348207304769937146842454024731254165816052735735452577890027831551165238660249856238787015762472610619196039135169917163225629418516730593347952856034205166688543819307036002648855023259631602486875902794037669800437226097310339668983873632195557626313328169446575759030567107704807661644750691519680690877711823184514342406517283724057587192973708471202744996500945323937374365396101285768688213211412746626009835006717970809353288899111097560356127928403294998970962642136616108951804001959151745137670344771089119228805793452588282870232854534674779770103037691540303580489919564799919909138501034848977063164044888834717036500990287780129900098507710059951346444447087213574502758913789553331010914782364859719324097494467477966188944508366612516110752169797261593098773017368349633760900490411698396204504302582300347788950740644777688325225524841817757477664728976258439392433328805685652213150375590577877667636456894383266356987814456415187584482405434665084355600533828421299534134671360220609219643868601313275058647344187745834033764331581640764063206521201070023269427465872447101476390974320382104270216787996688966076962669419032491328368602103332847150986226552087155317511165907290411850562268752226966940908916018802666042676611392595918366970773808517503073723099888614627447894442003735627686268161532593542057820041185205928833841530056153487752507597871626222178604585455410801284745130267343448538367853079720222034874388497780944403874471286688427946717286278860100070529093220379672228797768152321640779008459968401640355451158577173376837323695520823855293364317744136326715008415387062066798800076791966301665582091104586668473883864224215097592542008840566251955701091791291295187148779309158704790055990924903285593876040097703295923463449475199964472476008480694860344914778281642876046587556261335978209344595052419352032773357402466861107024394542289053250722725472700314226391171152718500331585574938052720721985289740358447332647345250018255995491052020940819504578551761130161486120841596515941569748419254184904735119290102084701171235896733883684357956252299611155796173953309212863489680338683568068634177998161878486843663053399741868929212789323861599174253814125394122473120536531917486818822268001971155460011026686941395130021293070677467949890800444944027271201270907444171081045072751848807779192255455133368876028839104246205214184694666123715221043371668591607618307510244357392650443388186932676718975879165421236627412678454190551510655907470978457553538219761055626678623456118896972963751348385870914092154173797172541487598169409036309854352537869292756410211808361767334132728327284743381439747135202624257535389746196342190223966065086283565589709797642418676091299016857566523231299181157660028840511020021885475190928507394023779105866221431710861126425297885364572600417710559693589240397147892639027794766853918003893681335432705524388681814433987188085125129212567027960353036876385973670716756977810479198093035818852092667934469412493510592287773233658844062424684238198892868869744827503317731937233927950014272187039385346156342743657918694604875857827246257159935013891764462373535558526579484819762894559945877131675892238971527914454934655341037138933933336887996436386381668818903548974942555467620373390365682053527676597446179476982947063285713991642318186458931569182330342275618836098188180288156187626551018701301675503643698461126976689364858951701012647527774022711588722249283989526703573753338227820611641669951311348792353960284907432978865832582208995540442133480611563619559359186528573304989114890150338746343186923400462227598750166253992299945252851068848752108592293566302729707571689352821766486306197308102796073951028350817872557410079420597917395002129501512372140949920701006904300333011252635292830572258585996220867988646170012140041062233824131084571841086246577309189961744233506553403787122092245641053372248551149299867556900346092587171542961588651311605792949951335041959048044264016530227403421990578508456663559665291979254891036621583887799810445185160391590950214763436399967252376454947029517252443625191771096452680957200497546105570647438690197278238137789158805420985725007955303072727521351725122335817266984863878413573855416312762206594867006748910467986823777790188259058761954773326970083274685612222227829531892526109257343205913582990385338398290074481605145528416617058650951684040288276310175785943046256205100997742153014299914542917110743564657403543511021602961942925244405092505822715040481168735586911881710669479586356542989874046924419669664342190290381928510252061466403347816342208885094610059261316294661343477340751200379483242517089575209586221559435119335572343690235176428412578362604490078866228173985312432822868040184511459266580019566461587272479390517979435454902335180222434475785261334887067860524972295828164586216828850703280217957770212696377569249956584118913640681826506661675315012763602197201067822137989342222550283064448704874071624416957100282427794736627418896759111974360642578511967688257778852165950615602370332122732386604511299723591508547815493362756885434699475498140813420527278999371261723013356740048747537089576833832473581472849114887269337472462689421735772465627946470949786064017317291458309555173048205927375920706922074466623487357128270561882511511111639735071165819964101304983925451888706362054622370773988415579352029442054028884944293469135083706924364161702922978515454330498051938910606763134308175145238852780728400956034670145367103173751890306026665548932610793916637419748955845643598797806846583551545478224647986958515790813390402616105664450397721200710892294739585027601697617335276935028478883716558510460233301459506077218059156336997776003442742631198877558589166743807670232875433677462739693563937384364791558176035575050541178751686602868291956498321431101163922615135285347507299874000324275158986213236815524840175502170301443567802937985265217613014792886317353804153431893834804234913710654187609262890659212958151088511268721380988097776356527052364187289799479827581769720962180271789447825975129924416886550191532158501706806603764831960783889203690990720292881805178914614670711313025685068319803606835692803874361452524521346172645096600017577329904549783697578744138458654085333414656710978887777400665358901500088354515118677039725539282812381311474204107639266114977446598286529137511792112781978443957619047525422472583420663994935015983873410262583790621548622016754407084133114191547407235203223680933426931330469429332131319667851910367381272909978368000154970912577690835399084602004071798564865214368312514336982246153569760895407685985268439297235824422055300970647380067970471339353247750182725130072453570383277982625450628921807898178910704844990527075975422586229363632800038916499537236146856110987437814650518708426197224595828064030437207263563322919005109466668860919954199259817746610578244689507629032202778118066480153408034420177787192802624481286659375521710347107644720746411312538258942746186038125920280238683533052671675354960609854142368780027370347984658126189408354368790502723009384810473025489897501416969487889601266102780137468275535522995209328261302186639961038661795099196672899517069120638716588630266242177915419772357632347147614008361460451091396197300476228120263232965638648045704556819651696334347917194597760673929699564957261901328574817148188415757873341300472473900965396205801430392619063684943789346737517236189303848454236204640654860402813035769652923241447892307551291017438064394846757603048500264050042628054048667378115039225513113785126787299256054997738975286893819893732992837697925523169483353010032359691661367308280166195724717175578235592687050167856701292952467475111620719325035515443755093245010243446302072042918544906087319003882023815861424096052852034405831152815355517313455233015302702525451319395165138929442298302526601709297736501277800431356998226932542689959191349934393829781968363849303382295827984112663895813069490582200478982858721653136964479599991054488559716403535331731518790452250534140405847527121762296914824667195313949342544172371439812767189676625543917452793997979691056895034962351309098569742704720793562391171120238771697230533674099790602824432913983472968259904701365155160116359616772500795105158374416853340242183871337235431950501316402305933724593234687866496498274654865060457024665104495829943526680820193797273144781534818033186189011940001605615298488903066676484019587183657542138281613350496573422259966222312304063495226097766272341707615713891609708903818473341091077861507778800163213067052949330974269977378954915500232337326958564270946874488025828549120561814632483625066708464633037420192363905671185711150821834442693774205022356367463573553066583923818305930544962835339078003777201316213344036959340382800196348520527456695437045919542866329722189819398978811009595244632782421840728548642511001578851506437994048778590566411998498177855965438634902276542105754173533428125081255087463514765301738697731420173648027884353909443937385959154835006612720857922728515073289156848320002257646371443043942118635456530191247574456546446540256792828807950891615014401569411944079151715332552752796046917236365587505833940693362163965668699631057727735247613897956095809220395178576337821876834636019328397343081076194797024734025104192750200277732094068253488457130182127143829614352841655970878274536856997186479881479907821827108275207269575217981516357255320831444880885006318489594036870926857741428904113793761700018393910776714859322169024333744059215852220190108105002884313574727252841155344162144015902893701649497895189746760743313099148009496767860968862810783105520854838410846627365980884382732202561840461217276594208583719229822522428924778817875735120761253697276481417826228655320186620782268203034709495614153966139035753186492814677728220685275327458690159411436246562421113568840782089674142658824685698070185974225301908960629263172305356024598868757754465850921572034771670814453651308068087330547236748102250203362783832345453076430330765210984918158858483225205044690715564841107068954486055500273332282959851155364256527001823607168533229746066312803711225049166645252204474038633936995242180820468937286142462064669675434813491853038333446733150959686673134418060133959004426968885594931011432774842605402354356205401278680025467546583014398506412298228829505446777109165698628402178730336359001569549214755856668417119764951667183249769366852148628582797405420313836283415937827658213816441130235716933446024304930027796606742113819875944840339526557668254825787443076283077282994187301721393337051930547309774947540558437714431363905899655159355609077467605700164384040677204411464050202985034906896493711896294127545301748755466631916659778805360462261624467908498505533309633632831874682195589732975686032494078946302085096415302838246779995407192494772020775455161145233654957245935033072385054779208321430397667091978168323975105330516577445471267676800868816486301699290372298702339940170223718281930850103489760514306947175793019298442818429352929881024029951974961489569094423712797037470955302865051517228437093287098509599017731167487262976904708680040117247838292541618252821635920367320263555960805470250681377115966860664602129776012458173892191274579964654407877874649082313470156727332844165689175433527789426762276028906268739408192074707049481357992290025696455424151796626805303469524108216786369804865660959781538813734544792835842552067299329755669359273327878009430703285154795767719894677900421540124604037256902796090743446678872090098371882631265889524709449598192632417945833354202861238087818945354254294942555360532065058708956127544719057648292770784129901467410979816224099641182958720096805175005677383030125730733947120057922747959448306541942519066682556512327440494900170882743656054667290966899980670659647674477542638382235226229957372582426679621210063820610462013333899102827277779125646116940492084855307497622208988821319666131897755823112014336474441221173681745020718945884626686402546855246150516871266071283658045074648575064718920435324661145889910855858792979601247081242568617272963011586085468935457208565084839564896344057482490750473081639698971849529600096631294971872709013085779517559610865163381385655546538100618645944431843826249978064119695037631709012158061330580281804443297691222998732242996337054826287683829553015604028226749288665771561941528500428972701782110437203651965913449847697380478109353341464943535860468513345245794023979558764517465182997110973951531820432557869765624960621322670920322017947069783629012676749117722029107724670432862940653758076465877478740619444343531256950861009287316649013715004823505098880628066366482134295782251166779904751980297352203438934635044426896229332075468743114734938838720480619678101407364256897387045484275539110350824548328395716576881324044349153310158264975119050905894163833144028308829372564796433468627341021435138247270935066043698308927265735168344843372841554971354791672127928938568372446144633536684840883068050274913521061633347999303871238339504157821066760018849397101343838570376160513192549437247936382812564381853434446867788083076718998618131993423282564513834229722456593510998978350068040985474140578852898963256804056421606996115343083470520193301868640517465501271454008527604635255716247246068044464990684653918722947732985327351100374423461970621625058969944505064213941800527537260574733168762402021505895763319277085289375971213751974618862288095478059459939939719870714584869015074165906466498525773968035606411064002979612338536228591934900756467648471853246664880108833557900906985319819573504523146807230009355141962489422050936239218663079373905743126171799489542852950629178982491378431278862544575057153686886480610547558512990268531362716057858138959717711415531882979595481522730422083572635734744143395508904589630152735685806304632604111058225259434605486442083660410563632640935972050876375866269841508255239832626799813487216391822349515929406017767657196579474735275782902504055412826227035631207655815142592935322104270066435624089332643595454623352187566894153547171981127558859956155419629270483695183886886720933505608147382581954847613633538236851309622664252051223280706212981250918651131586279071245333948112089507926353015078784570817077060689011234415410036776839132584743451137468379034117687537283461337997008057684025700216615362264444374614386859959750993276191915641601905398317751548549212882877677053752370633644316470307656885885058100477752843272699856028881005714096919749616092580396245615847132037068095088504400407786103730003069413819681832068528051197476672401627734752743096085431082749704545540952458777474084413940913232233384285733469209339261207275017260028169208837184773127763884443026505135661188928789223350986483967763446778119933104314429536806488754335074359360214117627563037987358429236192724617313319303479977739330748146826773964800491949187838496958646900070478489593952386446564766093003691646154049378996961288102446427204227479240520146013522008871427728805008750927334048075938889915056674728668945985027611914520864082633852160144154397250120025624839508599264933506973204519752250892169988278690954923630189950674638235879215973694724652481652301494419694062268005925469362622750805612861980883954257810840144391120557969978606728648470013803384177540222549342880594316752704879543826626704357508651032390140506074420930337304953495742217808424816739628836726975392408516982570501296783208294810250151891695105870221407108531815256978813845012550640420416844371071232159964296988705469430287432391099063703498582728684581376754953618497420165650452296899352253227603539995943575471473200410063109679562903436154059322671634487100067962561628349084244135770117184107741245069850643850561504253662783049489423687020757140063997792297566410683531548341057764955514293359917303835601968187599046951111285539779981105827310032477003009556436652135142963621001321373895114199790041036793893564391419485346952001614981041728672476250091585080902546085228322174845887747671070557781943587962398624536488555650600204965953448727505829973789279491824946601127065813581091394573873392499285138552139489726203362232811399964247866617075592514291560628013839708217560553272232124485896922174564483286053058082623875432987248126842205312425440125641114629524264070680849900056639071923114652542274446685694038278883542477270333057036571728687125386893428389408634562622355707343750628972549371452030636132742451286894891041288580869567824433676717337163967223606445534644846356358273229915717331118810760861582945274636161673349813410047538998793506777877940731157698550185671627054603375418882969835250518558111920917238923244412886781653421924739720776543257917049083978290798878052417835318484287899749261981368182759472101874043811806672813444058026135321972889160127094990197854244314988749121853982137797203620708459484849400485641352743888742417141062774056399273594577962643798497717401672662257418609722456278647704685101774244238108513239372703823867331670164244984115349286863521408613546509007319473453953195032061864985924676675558853340538222163342429616525972600108258059989045990578352188676626942450503070399651668934282460278341112223047391111767771603182978726918155658916399087983706975454039816535200547649366578311064400568284193846345977834047407911315306430987813338925371752268861847262815813181642689903146484713820286996340844150302314858752104019297772407742889037886925950616752792277144698927768142016605575421566716193561534118530820255546901266665210943697576474703362765629836496504271756821476387722247351459093351479108638853644810264503425401842391018025208216050018111913669449990461767303538572663336589038021269870699129542292313767447686749247780969341809968796156877996034213333475991024061847893215351926419689648797007692823992144897566291278257016425291613140503680051418727654762227635312449250297136760426515087038217325319335996811638016726891168464074636338188958213580966215618725184343527353131738630154218632461287679819404601600697938690426031858737489071835404625016186771559199234223177881779291306784372048601312802092759087287202437182351539659635932508363935170623630013414631451344542424587062522211717139312623656001779250821371233795429132121000389899297834835596713573056694196231673613535679114044928785591005100789304648192756942663452803422108653420815193922779169655671741520945802814147836122938193212392155385544710289347193253382790992326090828033092617227567738808783951617343130495049006676796919049079263199641614919636095404153857943420732184066589048184673665866080413069294371314057349222429544918762259901476868258017045814834984711419268020687874988511283124623653057242148393343501185411142804804621419905694881669800756764347524770548229457557693255139375337119769166825796860414012970322113633597637459233146971906559767777486153292881409211451310841488643917224239731678671716048017690611295705630509365596173942540046379263476522302468138096270425588274908611601313588794494961432705111827724007901945121640541072791837575821618020873018123314336351210813373135913339513143631977823837892515736863907572161724185109411705941936962400763810440988440678972499161946595325318735168166925101011000148580079403006464676470952982582664680199606981796106597720519049644058922905250070060456585495516101145622047486959540686409401091289939074520053316443522560648290861561884210795744012427369630433009267482756663478895650229934907737526114464796499080384318156650507995152012431716929427884281789288878997175187261584894614399688439415612475357602867773674749499797586248867741407803324072108658961424364866173010251160528573075464429638726683864581715230846779963798303199400601767019868351289120219229185763601761394440678607119730180988553394438559436997282924497270163653800314043603150062310606968652943400921661584457253254769634635296681012632403008903694658514614280552696611137792852757901843116092114523262425116597215828324748049890388140720962937949739546968899970651792216904023889084096186934034679554109177646174334045750033073183292829720895087190733907901845472659599272572932695562739253924186251299769861703417498244204603914008504651313523764876151476698326754366952634407130841174999478715384767797313623320033528601723460382709450282083311168519541674701301186769121712535027409646555858146778267684513240015339681912373131193072168471578445471287039153430991206448787435747641759290773143226375466316686228367251161773199240908707384215438338703353540729028938642097902576817679118908221296437460776843892392934677973755485200385741804761522436907096215226991399451560832402894026345192187273138940477403687151851739488231796160414984446420500908468657145855020074549352802546267566491808334596843952660612160774545433599944813161538744178293544999376669498098786754506915538236265219891423286736880359281399772915023947702416831055360659608114301373868762302065575992528513754402519298367846017236973077767856810255680432144840280475432422908725748414526322319031016245411956776330733375210229225052666759815723543388193947403982420002823987017281075093030797057030217024427797412635608381842118217335077644056330921901801195822194789966943102803783360728278710784712724050571062538410565868164538679784876680907803553882761891296038786811076840016445954560580548086913866413936750360264299433354786437590468238088670073188486680939980325021132983831887234925007107368366391649668771456128202339076767162951940771557984411366901030551492538657858689148593183448217843827324177185202264727112833247856543460009964305426334677184999742615834527765868262422525400242164483750204843374523300875392787223947893050384257323732634892080535742720992817707416736219429096118699381164851550877172942741321867688455667727231992033852942029358553829902933930788830898249913961403882259238637169791647525562076125036293298679494612057976522548201792574868040788041861858928382739288950805306555257908713139458931281293381757917499697279591311679197376833967711335000468944820048079711528820378829829247213139551595724538056576769683483845240284368455979916739774822538699860622002672433178281578130086620334866745808790726334938923280280334853824633930826418705778907957949805095690868990876217173510155904875289246914137577768742352848185606842107981867340942637783823164306705438801336455450428922751422884821206432772351827465167778285502883921877656180687788553518736427727737494347233144180868913643574844227889236398031443521651072769970434558817115126168241483687630263581228828917921406508641683913900514536235833625395579633438541741143592083578475462597416483684006788982257404291958286055348549472319217183848308350589472416156858931979924318274299683518862431213218204380305656533409772438579722058419437545209359099656914442344500138563547911250707383246073569645465268176698931363451564997626695080619899038422951682713524693388889475194506252720796260786695213897424786603655615051684882127567463818967349561722574374215744470470734684534555661850128018176587999565120497439538122886179536712934788841527822467968396468473457688785586256303144354289296427503213438724008996189831443719276648623094112455644452563048301089824066251731678593861293622685842061110539225898414007552825883552537597068252189576264729403782850256171416089632011859464365756455241032268076069160242786816650805855945249590851364100058641196860840127942963946111921927502084677357608026894110691902332186737998644919284856182007617293706183291735438859568178639243672267684437321175965113960596853066805104900398608012418886527674363324095739720583425758827653461086602079220114582120387359350357174365202248639664689286198206423471441688561738266556264390221305930461801280116596120688614952314122328755383020814022468697589470136941494445539167790637793985711596925234303628518183247755729390834866526920903774071460538693376842749267096850964985728216366635741226244785575045299004883847240985248844290276709961931794726630767705704417067776942769109409087161030899162636813885569837616606382167608367479990409794386603055164670809073212763728066859587553136035126321985085600905213929109558928156129312750294609200066144379278638399672875583905145652427857323992483173555765353251231016213627382915937522629765890798764304401573788216292051036208474265778340890337129116807213925640451467906922707223931411034000166071351671456129709397529308460222312369551888959913069376841862250637232418981101695931707362519689030063267831325840879011955555870920454809377405695379771949584185388302048593196839365314473483601107491222366984083592001599087016719073633435427960256588366481505976215257268315490167716038587386797140158773066030386115104123623844694375337836333267246147818615854502255692708338015131991162909215890577411713005183213216389968549122409565670169197266017971018097821350564215271453880145162033642970013261872627068171274271579309823828915127375395740055202758437760232591856734096494397742373078690338703559420445495255962467348849839636155231825729057974313533405307482533273862681463012462601126351707060137440010256865408825307314363295756765091933900221761428946883129804072457129504801061143151276106815920070921478764721478663597464913776570964650142386063340559402666809176957144495738804301515108681979006705748219404987783018344964695336759361007342154517318064611111217619716086410184022736706280840561927044965832216713604639351612260429254307347087721840230925031933164364486763514988617049906064865526242962294688074664874294126042451259789944530938067485567970834849893827288292078056579801107185115805861937148691391914780328378827823891004747101729057601952468199946967006824267872161954297510160952641139832323903135034239332077248786374162530931189750166161358337980773329405793736761513382412229441048013991496130462383616243393478467820771233828138434135507684521172657463255968342174518597562561983071578706393202754841489811504617466578606218335046901324082300195591512100844274066746889910557432123234520127782048865690750045214991250840245402226068992416324126623097912153884407420366735427833241089584604002597957218616679040786962400843026457602576815003156330098135089510267100086056865247992544701814667749638847455968039513013549543891352194620939787792828500855424811196554631495109973498371275635596862187059430175072068428472702871990428415936613083239113192317582019734621375265865842136207098946862313513533617488915538878230240196790300765236759351474973215966324937175214564361384064648177669282342458833857212514818978543126381044235930246335985855332916040184964443951373362171411782325329063172690001990621575502984348679951638025342416256739428255752322740800714123746339894247632792047899394839884451492145983294377662505539868527357716200635841575331190715952022992539717547048947228421376400773090296555743348691661632806589783741083850919646843566174741093628981002334304673825111707647121172320362265601631281738555171359388550719336080704380130641441279331912855528220964978510680143670093545221196347534590066748645070493531542947682429866724125280094512482464369227385279696647587295340354031474204978058137028924346479214379270736377268025499082330505875047415161152885487313346551038117407149628413717472828919613349606359924438434141102826796139163787855605076538337464136816920937644702525817054257656430769834908274735195980682754808518290091985300457177735785657195360869180333431787397223725870894044147635622192011818175618256645416023999210989062690744249373056515855970001956606714420465604023417659694492869792734580420577487433235098102382312983659188493375137714008301030617717660120775785329237613530895247585620121839456704824913359853974518697430985707060562741343498053496343365261647385856665410470742511727401984232651040704305910499432853084742247226452619767424909017342307537904596625136608076668453459488987633236895518833275558386076501858395226764090416203047553008323818507943967267313376911519855630611620680866306376037889878571291832445835939962870726452445375666515056064906327708150682275147375873859003433383116076963863825342197487658793480797743911750165983989011462263076752131206059313705300901009952869071007929851792360417965530170249727580813169527184724479046496563140790952228807008478373882047825472031780260791321247622814145845256474949311904068304248572015588051538103361682645712422309006150869701680979046104987350485038868377030049230322727092401338965992722656248986663567383502182983079737776920776281570545708210813982069556583083887954266633739765686391905121050705097066459178878850768370781900443201309532650779466500509803505644484282639185490637773402002474656865212714495981598981883197409861340845467344664364573418808211943719042163165500137651222783304000958682056901615760682735827014756853721338492192970674804494533492407630116755307878116624348597466854846519154664738191380201127919468544820416870354185780729731953981528711776882203426745627642686368067901175062546375031182315152476994670963881347888763501862089784970563308908099497294734760667414496678484237126914876988769684202260247340770882146936692652016048908708614302149680773032497112313581726538081618074620066989648652971687988762054347913663070281693596399383866273853760111221066937662468965748165366011768406974396644514604046284433557396420473383057536612797261163032807571617694092123319224991911685414366294171064525864009957082364651788945664602540324546077353322892151826146315624473275831145074285382408257186490800249546534673110105242781345963590958156542687669334574614847372422346880636720147359636839982114095779625051317720978091590696678601021653378113827863041013798589543177540476199100196826502033883434484388797641995308614340910885962970444521162765916497463290829822193564916249879634913995275507462897735254399889768635742903514089900021650269151296294277350402240084096527544150276738246275410280089645526748327138377661139511248418640109375663685626972479212073860307617501835636335654328207336100982482011103431078525723312150093705100917567904425443932882191121037351002715769986685859216084864500438646574620524827699003684751963572630116037455581947916553553656344727427353745844215739575426694446093869058887474617524226061083211232115368808807227545655855272849912500121902651313559162073628590001363711339295998606632233544972165894672322261789552308232208622586278751907742591363349378308288387817764833324448173917036467326841512150143646387785449599998771914387303644164650692303953073707341995063551724014132485157476056882979633730275905477608519172572515327818095597778650929312114329042936497524910419972894840393093432510778002611310170233213116619684007815070705803683750340675790930274480048868018926965599016676116411651637426030301494219812147806280139429354064145836253577709962504333276938434043824048530079231071384392610847608093196322794849871669015110331266461346119697092018315430749563691278893170372897720896949447712980037996050889140182553314876811215423607459924395874609962191433008506727031198999387219617796036537604530186633821081064290854836886975348600391678937481463426524958619870728229800888859393021612172989000215892159303168095852972017514877014341438524799395811319538144023829836385724885650696799341110936874021857775276546970488000992564174242488676939252871620504363317621192187041844028390419396845762110015715036896601193346094184333207365130524658220636699944437287403636903089627977332472321642388878736299829843720615723072666034013709853074330532055996984001521891151803099055567613029387185700852789318501687086739814842145121653932171027902118915112040181654027654623276158160992394534066388860191462414689024631316372608319292995289503213001140149689076649855357203619038300795538107826415972293993582557838353227848064610411037619561473702042446394991340927222938888936511759854922366332596107502751721248006873719911775750127950081546961550139879786999358027752851130390335458017497947701897512315725003319568083300659311907760045655654913770916131933141229840121419823295688629893952898366189342436945103833525503966105414307358513924871541822437613516355076089535150452474941529396700623394617400807227473368391351764857380276794565116047159433751287936101870651288297555242550519490583970741377773083225314476069016537743315593733499203923590110003171318908742181053654800178216332667633920394355762694979115144272591321040587349124083866717671590512213248676707509529264917033364448426545764214147490554756823753755539317265665618855218956843729034344703885586259406319414884524483267344263928179256027368897703493997217969525480672565465824207220645354285636826894262931026006785458798607939155687285873073735859158640357157179096260255108213784676586466571648261249131632228576251206555322514571686208699078088019979469938958979808630698412376589943997374933513310428688003408718196249636836273092520178814423771654934583085999207077394704030399949903353325844065655129528988078208678107689269056946963882833734122304445399920425503594303446376522217066388108005151924340806657558256064659935240864428814796562776744166405740887772693922410506862540717374731503793684234511513210798766080434740987689958688755375769959816251375686187569692351544032369947011053439178663855535070953166812450562638408739239688171253730400679994424336640431894486847544808100118837021525661406798497431294871254188799491995183043727254448067108664401343945023700847806213117577618526157590438726859350805311363649440610379093975426456448031191966548723021610061741182069339395766113824985414487704893005057790700080685398946832038540963977143120799952357367546848365804129926962877709651435249748901313776672587014622185437147109293418080966846177552406817089305245058004317544721708494223061085317693922473112262147831520189255548928636254221026818095046354751759927240335233668836908090977833695446284165473096304587367789137302260418205945628838640973858436846309489040447469459307099411838269698595992280472282320758906640243846314080205795013891696317656929133525732515803583513782477963105280302225575236266670083119500665724180005771185104887816333304575201941919984678488373707322683356923519088290145955270421002618029383572113867780310068395442017407348832709151411062566985741380394727523815502242678224522790940383089748075302262846965203351026190362257929045518378861262977245593152788315592350716145019575357463618840704677555771827453598189263686374535897587072903794857314714172252408518705745013400284625596556026839004584971176868108051453109174308850396661494219070566101123557538583093922335836376662977217894082387521890428686780644189899826259198911103484626794408122677301128672096553103365059652989891239420711192910569408237421596493534042901774567143326057137105948594425433370780703976942823853835879491959256384651873544690616040368895985680206429336260616990976710607438831817206446765617788923974945131262996097692610150096798776588429426884035142873995700249560376273563503750803254213546653550597675861272486547856853864390451011118750152069719175320245308943269981169156077811451384527237273628972039778247115233337557443951115292898956212182145194189595088315602317082665317352344871031804488835612158124461543197551893908837700610931371556964990893353236874686133696634963136861865839263780333170422162936762146156545812502085725341913080376462864128388025460431924182266067667345062979903160951803871598605130142671898964869450239931575534831660149562639929731108434146170638101492552486199586739140542946485198130338045029413083432073003886747766090323824991108130242638848790616887151458141034800117692787252689176690822301120784264469179110796581794857248895809459391713799970379452522042253264922150227943804254044621292426825876293666713492884043713031262090793512225678914946670786941880928452355041239438548901836544245525969088646806865910720989797311710341843322970322138126042834318445031069027635109023140116932317278211783288789722249750347583221519840803594292264134348482672046012722727010387979607917167928367496255071743142099831961759915546701811321031354615665455135211882984214474616894952749190309892795817468835349995401905507539557028714542712134882023257005595999225120085283451891636913876902918019773320931752248501177447937555620195212987127999471513282170237131066043428100254424966045080633841633329878030525677650673837475521429391087941450645323657545492116009724111398872814692771517225183697204091481537090028841551166261940690151028828048527819616467036073130156300335703255471683781323049118161055983497832985624880508293006022812168494330452992308061260370210944427560531582638521766055448527945631423445436483594135304762869313796227660202069860459974657543195492856269905382871530850861407166415493946717272209962097216447673197226877518647235220386206423587016544718237970074663513715841042854758708947911256554404320761312905228787862793895467531066482488292319266318994139413851596258253218567714993131665566937719857752704122644650101218038276799415015541715505050177983647428662432338010202155739679389812082888999623511236528516699985457484290311507545439118763384831069589402221700724774816803276607275006715541902560968165468472208539643000541873422714099119157967285248150177317839718796481348472853787802055834289018627754260581274597968228819940775801947684516901708179110067391894143311917804350789992040195117072059091758504468104617552167810678001688077640103421557047723663600044898842244865650854707823004898437741206589730243541314587788019595581952603627145150469147166838919973915663781967084569472817106078364270431161879759773917344443606668453104793607870514249645467454516873081050578738183735385696742309431886528232665480919088435259660528485182568043453960804561110052016878100750967744982454438570150248050570364542027787414226009442786505207864764073378419609761142586087837242071783313886583084316153160853587058502513983947620743280302483856369301116588619714718005398271601520546071712772855385520747878712034529791704014062121661847738150530935908751080802809637455162983014783169976339398787611466435604826605161466140251977572812206928196538645564001792413966302217474001356049745077378560955873546654233811850378250919131090131422444389039998484551799221422791200129373109451464465546395178772731250661892162816868964374875581082472957121324033369121363834815637510739566677422526169432496366718721393272561914674286718603467002643370149526553160900074376394070147769832456664887321295221721423525299533196045431458371702918433322670768752105511960068457639864686064477641117753461611758344093078082291065249570787691889131925380422826174294767194736682327888343922882355720906755214430946521736171210573254622525458835599612452776827103278174303573634108127939209162094895731458417927130695279277018410602231387299162854868842194176906691672918703391586772550337775421393410446668672924031736017322244962070534449584365572998012339979619803724991774232232233824204367292155509060306384320316315200158875603697912143017325692753699464125571661778393670846906336244006067891098056486803924807080000594197726094182403442779503156211026011081402643781172862085627212365355630526842386703644617601478708547304200400711142273109424822056438456223149170465474004177904236201229316171172898189877522692015557394133112287851088897799739910991698469490766390260889738816603280083698670884893004715469851880081455122090218035295764185984732640768815156940210723859957614974594199554871729563535522805794390636793607671051471953833017683935213664404086044228966203859057561673115181172296009172082393609094326983505352630333356703723223793221909536703690730727842939863225856148470458383953670335737997723390050381769748800681040193394693990425317918095983730029545940833457906542360920199275378436276079663439501054541980029710777398421974108426995783379435860457350221294410013641780169558068350402913455671491476500419786425938517828404699891477203019961222715910060209162045590158904230046868622322497783256279949200967078151515845365381213705344658402333086496617890605535737862962755659696595379506024635706115667050793742983510774337224214288545421348300502186410442110053693725409862202687378692940555711990365574860456160403334601156454055613871220745712533497500837974470625323058475380747122253911195897677354091011153722028222570016167128029543626266896060568781020458938682001938306431860277944786363489342094275556152621814131038395780354018919284161563884975603959368055805913495559517698066677003168571388642805131956761444951391058167428010149954381726171909191831056114518270184327960533256001566270132480257402229900165357152199921709509730788434165327871925561565417441394209296784443917454062098853579714013162382158057886175726184983558068640012017737155739435255688605802631044769992457589980991854103763283798539679503100358485164534760089117157903915571533952518023366745671851471600184495140215184680861988260217569902506349209423937824326859721773193366357657405357253873505331911339958030325550312039009612877631749578031198059770632429040117321907512899373899808969526640878606426853408455057326411766615652982259539183950483779980573679592519582331224636649185456989878001880975094310730403882293833693707551242420817871686363397562226743717815468183554375086353551863979872675545381577901815888904651024836216166020032318549477159974042934203313805087206382694430191336819786470250166628410648700959444248709617535601526516715810177111771553222057230323684253988202346929892048395427824263283809043879286063900282082060818786078426681810053012374050692091499110171853978746835224584230794366867443785147967019403968043620616754131999678722428973173603775500104026362887690091744735140625023389058197380217511359291217635169615184326792914186256269664441983485880088284995029163462323883655238118351698989822346666286602200453284212600312873734536129553426758150538086081084093655727895717516223476885485690588341979312712925921954122193282616122934933184973562924470776757640966200696840934491868083958976893684024433459169255567901213358692746702092134191380489481776092207757461407490268552424560971622140261182244230654550821285977548331216657571843039072399910290254311516013397820414616906339115685699685464083003745973541941746400510447950434883092762370640689612931541785337840190931789434625395945021082510443740612422182491797963094783388608027085060946004859452906899024344201234294932246669333275953544372418633663946004568166858874730217004411445409249387995093685135058607492306167857507426513717248864614090505873517507423176576434831760801171810982007044206710408543759955670120668416638417032928103323099634942646597027060992216834084053261146389505288250337739966158606963985888949176471717709045335598024339690368487689270822522777248344482961673705349681341578459976538744475346664643843401682182812247207875867740600750285446150451223107103856156596539284820854894511178522172339362202675733675282461216746658198710185507088942955690537965878001046710222844854365649437453955134630647867852258544623102242359542195887865070730957980726387276040211435911249701436096637240771526894446401365146175721858351204867942905474706961435521461191424214767732550928805524858208625673973368125100557865464092012339617291550169756686592338652938594906427056099296577924380897961157424521359217089511657049874689204103670565269714705731918901573402400666910097225276701960207722805372327523847574454197732582952512187794182879519148375173987464114190400788770456701761046004101910758725674097670231592034290042231562457711937614584676651275808776457127554937567985758714958343716890363130957116530097341409037988016863862483720303796446079613179743833128816464001482765000167848136709668370988275851737259184091990426879539921861499103631855760353153530181847083563650407766544081732269560407151228646106977578354489257056271942162798375604979602737600787674506313703567974048579588810857310218017241786823522199691703467816376339770076040646506816674077790200279023948783970110674806196093082713843049418932773437029202097339634499951988284758991299897582220605046564232587750705251103486448809837197203432268667248371845131725586663017219452608811708039834190246250057867433499586021346598368110502567600599346267900420279475485804781636488046191037190106943482973524001158344918370566489437941303796468024408004194680049171050204633458425191347541306029546687156058717183216097926200825177289629210803461912938249592015491722844818990294081193588226617276532516353849154301299766889032938224932983624392865571901171805851210468491026238176438570514997785646535470486609401304600976594004777897859550071710337990166774355459080325819169168251963542826618018929678824534053336184814227071058314504546289401007092780190796512620907278381103981292303081320580757718014884899869992940701166108077446504960146651831847118125010066832152081931125963880547838246434914916223526416520399362279817149303907727837004117775205843066073550652919987935085467544186128626334577736152143043889939969509232556914590680777077076049499052719332462508715786221458634235239365823548177119964330062955300905566684824259469490993551845218440576156787309169928160115771975493492735014402094093172782794082942841433891574574278568177117762987616122766877626730852753408167541194449552874682314601703270996678342854784710332287101717639731502451970026363214664009797989489333078539911715411233111586882306991849683634430342042322151267466254857158501178837243902711136299892862632634650149111417291878197205124075073999334067578032704641723655615006695668483322249983013961841572235454553788292989398273371639520423794249069953568160427963157314874897087000023170575151962786083006348432323161641986235693602375285370980048240207592506531447525723556816738130849617986889941334815716444033791697051799275112576199645701570548470401236540389052891346813243372333329146025332948958994677466579434847539068224691743331703710807561722503975096784728881813913755982412519260847683929870822775110274303763380413541152276764110948572267197182954000266660998715654265915544872767854806332297962436504926151740281493440037829238693187116570363083232800275910091006485709635013198616872998494231438873608301369430027496743447976288052452112820084681872408245789115763509229187204639758366229758115661748478739952818273626691834360902999839149422287050131540267519083670043251189891305861245256892236651976940083688800384853977764020681583351767965377537305535944069192703850425574276066534571729149538312830006608116234558722205198367981974270937274030010872442553574123804837163349158732098200108706383206292277862103373485473699933351476186685554786693127479724357099097149736389192497965403141278935968997209235742090611393741219614368910749770808275318560690430597327660496833645125387004389317049297176757087220960718653217214300895344986676502263162610535107809610572355590192230574985938827778993206118733569753511365427667046051159319765242316313869791953716245113754934928532592006398632373517717039332604835099327815365917595821248114487711424924107022455681511103423599357754725191304129236553791016844564373760469243379113966903882081074269078391125166772330894684051383330314765123515170502322683660425858414936624318951083926864100078673109578435308230052981528146244773479078847141266311881032619199248749852162772233046021659621263826527355161813117736715592915438325058961871794273421170551349971175415121253640744416320399854610702044052971069678892165959525599197331876706555166201139288675362517996897624538934928616863389543438234705885120498614720747512749847158541277353052913155377344416664605397168649588105084625501674432855215597618022901264573458349604763261856444348212153729110889919468229670172821710807189506798021532437367357453309534388487289433357324424826057502314356860742265826490854755997931942030036760473214522581998024036598736798641445927149131446678415175191834698250924416688706449422857657391010508619404562761817969272748394053967202080820915437719981671093925215858238173246440752032655671669810322850320016821764935811627543312803463484819108517656215156997033319579321020720235310842666776934674076471426958422409487044477453862710846141991012888299338139587826808207594109355705165084956856120326337714674987782000810238439883148912716416785127092120417663972531795736561645199980210276532624414549546188140671915483226314735772164872158968308158973947698951674198842523959039767522743813837092058336357733890980519997990175663076239769930010396108580851497058315375582311255194765304718496811509728537895304386953844365837109038151316445494146709832740511160557210711900921800112359310869869695180020750389095677160057188212400873007332653562204113517977322745854128619070318462312885348293092413421084068415170461134995308735207530963331625938104323954141587911185267083326194942302534166666628324428538631969363797427816097413866724727710294741709790200233659885430353042734752270942270568115001052967500138009603201479686551283211200749774701616488887380231287704185368272313081486416400451871301438376448766357641966757476630291875486208420092001786857941651941949674806330442092268124310372437530211748740800951457323560166092328607845047696196095772379703445050734636547595098429142273988992316375435921796108633899421589592070749381717042141284549980074020868368399283939315811772403098623034393602432124405094986811509218845264557141131678398988659360517546958840948040117802236337758056435572431265773798349630820817525961759828550171344803927659175769238442573359593272502608425568524733622993146521252152986766205477237373598058277110467520736710930948567553592654109566660254303150099747244443575982760746791892574486516007496646980956655247166192663447783382272543967901885041602721202948047872021207511992112441853716668390404224932924963957643875070503191273592774610907444898536011281671309146239028446503197385857993981125737062538814975512184937665569314725119659395494041937553225899933894301340107566738235927637589886391361928561547929651231842721968766491402447929914929242866308918301987808125471924232388089157478204524795253021364390423330700344315726622903051416986155266185418702547681521921671428117999196015495386337491547039453116841440169066777642655972301274289094034968363438416137600099815912021527969778860294340164490547983013326203577831586999693383942873050967519098778118257486786510172491348786671951555487874136202528853207145478674579019434464295770458097465790179910536582181114868665996353980964464264870638606241633780118287826168118937133038752711899846330846712549921181898776666182130117686802212078335295204792858029813521040203429335521760915088688341823052819947275527149286978410346300521387933752782552307700363966641027430062344184886912815679418347903691657214245704844039426999300166997761532571833733254895138061147379019988189539687745693503205456420588548258932057520686780514384526017171557849574148866156166452934223618859692368931158191256640836040179751635738714754320987581031642075964826771025973751284927088717865120489846175856301724582137812657444449691570957864524764281499016664365794655762591340925336109811203519946849042228273611623614807963042848915801820250771927248192005804863718477696645821152828761804810414580870556444577646265036084303071740427601306892851223339909700798311528538801151200591645106679355335346500232699531907605618295515188580854080428013411088119239673923181024314396910473260142240131070128766346145425892721159941466353903749385639564551741394144413563689749519530560280714238696926287545795217518583010129949116874657593853657874042197124249480357953159069917507974123519733439113702243210091581790527633374142482485812146849529633425832136167776948317711303748184747713745373250466617822142660215603106602562637404723215985145388219157548132919912300568163676026938016589978086769975845880716575736924309938323694715934684805114973772956767314259278635203785622408850577335740424772128964698996841055734083859633595629171322681657597645654729418824675373044524177599722562846905662663607781362755360336460838394730357461441467664961145447024239708017504620379140774064707253284700514378386290596275636816756795120142651882939067327729455345333443285319162625728651388192325624377577279976292040923365306702128736918296248954627519861913070073377839939023756911882355220385584559943967355188330612159018933119390766682446403834127740224553277167072751496179277256319142553749243596077126739089792484073795341320348156498251870176241416658431398750661133613538543927916233743111053672805252732599288592529055009215266752469897535663764025304399626106065448320368324361527192201413059905845620088156672198227168481600651073985322707454856079865655652678558832956364649726140787769884634853135488178180255543300269081379350426590015505045875770291358611507429349420416511711020030055706045398228382420633633386411785222277625215890008143993925791836672641807427902248913479677661659309013124277839158057282937059869782672773131423045474721495339298424021708710341188739956857508573775212656287169155047205607871378864520810797538903971858052795159615631325606420420001681438553455055408064868841880490384537794071294818939156050639807358023109372923326261863353712742573417811674026266962127714390759265956700821132155787719084805899225293859422381387838869257987256947478783821875372543673653779962979758735403724782231189907893395646026119748649274688603084942714546496259518411717701476618837595950293893569054644709533906749094746417791484131684168294912719445732206633031907067413100156403898683081893926563985917907298921701765074060182331713203724137381416141403829682909855189034456450938789445412280173872862853122755208286908381355547042354672822681673824272026374555558986514421979695549514080401515550984684228922589687439617340189825729137287701219085398783667209114136033016956156090292038604094563389785627891492877588161314641196161576146382782637906472575483168658489457635101996154210072049396772683301113514479072922690879103417389753037326930858510872834530112660239896405171204476217040591776725806762717266662173092207658046618306199828919867033545471173413524207963293794653604084438207528631361113912735657060328037164531225809026124094523908990307030594236973554067846911418998638777374447093350621464821551610831439041754575889110134850778048798653462482203660359243157994830345662529606519262661581680586584631769679247103329937994269030741412406452215079165301146037715085406052701483631105164714652809093913145431600898242170490196608641051956210165640655698118815966007303417682046967285917096048528582164233836091733505277368300056543091259988154269479155949714057777514200920124541818801709066900783281852183768854741980687458907835154690977131021298878849982117080086324327657994302251023000788707236779992257414868908173057693322652235142260817181148729245084133506839665441303090985556383065584051696067212438145350689769819348456541748900419190774572316861580241271886903043178815035534190015862104202405380966157145451160089119932554521250791575267436434836507153379773820230235073850382769622052850273593669108915436019064973944955263938799722971271123871693091917835176985226813906788571525073009168851805594733135116408351738917308895514044937602945919427943415845515816716509123390083176605298071592619898784882844446192599998221630838633948120806633250967141730631391521624911572986349466828283318524113906258780049013793460326525313892169869788883286378943682069530205717794834297297353723049738444151889373258823649299437306367130174036539658272086483641436736190944005516591496151692546656638698079602193112155753609781558155885331255152848724664370034265308689816053633192930097554236938842247685829961287009314803388318018329622579334167650643181805043509304036941091984148598155171506824070396226032124201338818915255240909368606753275094615261769279567019818075767982294459283306589262988856702637050482761479166002172257901931395108016830498796163220780617276950838512454141113009308829133220564223923894023880251679438688327637802202563567019901878239278375160667368468047546084425594908484158461992883883849193306903679746825410534681823876301008135129350441134346994073203062327324786839233240267917888374776183774504502418287630947759878943155329759509545765928634354314722676065176433780072662956093547565980586184897565936082039945892844391138978937387183600357807885087307626870804366625722565760747393111277498791311013892670301920820224102924504689163485515901139908110328895758882803271119922185189769862004640004521688778459010223794415022605542572828876609269585894050218202473415292965582728102447232437758153240384830541873891673504117743813103575383301577294822766172995257785176105037731640719778656095883089446310516633927930247143268480555337513440828140308423068600570970556332105698257039226626153025810976479709183701489318740373693852608595017985091648818832963325255748906587379430475819058725857610657360864359069073374733704054577740216017340724069877415228255052821411170429491418710997656600018199362291917393182061361404060548888715452906381603893563520904732494925387005946162241029345318306821169498873634853420728508679664664829280590104268204189450085082277795963685005669719349478270198864481303840787224170453931428002976359098244215117131307907911006495286019535535293523678940767183221042285570899037017478308606285340524711789404770990618965301984402087428298816919749653727613254608821399077089600634398802327617678081319412312698421162839454209198929356203237233680737261938976817488017688192903477186920954493859173624283207941203793308157933835823192692422088109515227279985189190145897162548759064939806944278554071144218620933278163440746353185343627283476759713565496070844466385476231939076128928583210037134351577000920897696231726567885798347859894686769380666534739454295238461288088092023909916172574997883155897874833291898566043358239302704857798106293222482591891528611482221775055109111836915601831994968301843658268307923174855103953846215765533783534925563749388723016177383162250736079070125914574792535174876553718615524799501186921941357528187729642104663314277977891886896390244560373941617232913267899249079321379839670111440699247604950767155012754111320411729509005869438642006346927350363473574841556373932591389718483856193893848683563181951428622022905788380114285329965886937609887264045416997667501610294657637590208475309793248983737125336717618770649291220456507186823799721865291381501759831218287842168963802130199290902289017706013252119680145873602812783460009159391338974568502361591736721319070772835331609237932219626390305045064696578423358109415566934568226836289722883033318872164754996623681113854570206694701321798248186052735452866814281667398300172469602530458697886284857947497700811157027034291224507349045913299089646163724595290748775068402482557640283129005737777314309549006819353152386032681922889705271841506625741185089465247740105019591829168058598887172319428925154757595741416845627520888534543508573880045484025700234947932813297529460498433737543986231340901831284765506155710073979094761818804686639525203395375128791623291888280403974159136231754178538401644298843697471631210819565006985648016882609115087032893472614082169229117937732040974709133679148763228220697453259045445723373084364121796495215913609824254298997499437345899275277688924356880582660476121588895455636908139255197159450846570162862448066497176621858971538056035588411782245032211637217082371268872931941672278087658590389978647511847220223038330656484057253603969466821169857547757649862938959044441398224932864613877461344619821424486282226074014403622940231327873032167089784511820743367895519603975212291557031613150156424405612085776004338808041148901574535109475999548154217394485925585221372896076261981008047853029410252363171265006951312633286125822272162507243631799248558714374867665442322300050836767292859663483016313671393290033649274666940157679027116468501746837306288320371771813340364693061427438390766626023459806087845261417939179052401158979261126907299279389672338728848503391167481355616937695351420671200918369209720799386833265908525133252202774770098789890000604567409070372701693436644786570141196103379263985611958034209431092588206323312143211390866435340681945724297583951303412511807897149016688602001076922842985996952071500214594647714986034803510756924219430407681594685605607117271843653282987319070401101445297243637144492258514866122186905567098758398896187792422036913887328119317838540380646679033302229159764508393848522266416606284803916897590223633274755178560341371155693688115437807181688642723956938954142825353190397996329459717493532193649492531238538645749912718199069661537019159995407357923378056466692715981276867308249471612060413255941078711746533711006632199239177935934961204021731482251210859210973576501296106720438165341736563713176411745852824534541971385841922189829136784799829661064621350909495092248713963437474083453609579624531897192530863788340372114576196447769226416216465033255677057992219161322956037624960840296467411663969300515384008563633191744090469331109273711768969270221499946967278452482466626819491170836284477760259034600104810610811508581428235304717178201777202368135262407304968339743624441469801599644011081674262907368851767389587518946313771419527766370323287060391238739225024002578918595940667832834546361248254379909041954693799246256091466095857369422137696032921530333382533547122817733455690034698301624870294094543356381329375705525808699985459722890629780059213499142072101809084587380018035054479578588220835012063414132328806514935522092184051795096982127079064242521734174884926520238896238113217761518448745850473743970891792765219708287648912688700955474653754633435757768016190696934002968012821384675735430550578718197549229234030135150692652228390554377349870381896586132379053218972166342373651866428538685002090954622237934025565301379700667311373299791615665244459393489092986338324445700657994581497100233133643500833132608398607804388537046230343837140589097391052860215085308802742521573568807658618156074956255592886553724421395131845644794484361797689093226392055283096418994607885637209730481152133610491431490056973674936428514090240052016914315850264060818718537269827542947244842832953977997505753705735162330712181870178065835414014467698735315948764677731679830223433081951260921292838772265491962597622222945481053273493452488407465672776504006517729600618173367599656044546343507226515145355833295068227503788083958967403429598718639074943984337560244706637721784402103584689641504181461590814447362159971612355487392173144168456596645203024764802927097758345023242668103089800756126394847077766266977890425255831213488836145417421401813709182204109797473554379229342392017275311484467641778111847796881253560405623170692015622059687911322491404949340951877962719741906706556006065749610663329698162178050726550867154160906850303880916711320816987566055346286928215418936514335424268018953731128977674182915400421167064369371721186340441282221993695754946478770575280766196868714673257219941102886817889218215895003004676233226413393003511159933791321621421358449260233107053131159788147504523545267726738516712135650515634236097024193292552480393038379833210513494207059766191728765913268182176441600167290471100886378306271969010641175389102966594627358264205694665181566854531611294545413739286062255040551881543789602879112339210620453061718850980664873594530159677007368517836910282563001036166007536107665823124773269145389906492097483400380157310214003164985732761943689593551642486035407877598298087719962864913537658667965607828518297540338449354143854199923271888997602361297383705158581223816619119245267996646476771839400332404337119383904056446824013444156609058426672465316516152196956068348450231612837721115966812802909098119086875658341792428623226048485542847055805507112065015016727496588337881050146887450625967190254102466031350353713983136827714960683989467542751677082232055388358771330061622873036983289274497601638822517910887136300943856753315627978155776617220881240140914323734272295476886793030481483776915798684243654665665544937846262271778683982259411522975205178848261836725783667881032808748668701420618399345510188094842988205932853751249048185035169235074484636147735989591348954349494944760041726546095588494101268744446724685545376248152052949377865561696985791319467163013843355677669642896805330996437928338903276039485407023069656350485805995246174585319446152568244543786027104169168497947817967480445797432565858458134666624033221554180119146913352716324619322785528959407240337019935134759915565719434472041535893174778730219500075243317868075539464442863494496777122867152547973566901519653890950609209699111990114510798506620663543704965180424981256874211868938571745277934090535600881160477694910396734231361275752929786330084527240203275429357619786154656634728277362702466917420189452052411518459862858944946689645166921241215832314696830312325277275997161546246866222061337671971477999273467603960531290690148157467121016916357461071024886079823341290865695231836369227871972423577980978447295258867333751915410509495179099986975619009147193924029447265971274186719169039477411886058462874853688375712267583100750396855534682638734132244624496007370126862482713431392688268063688390026708643983384232327443080887261231649349397619436848896896711209135047566472534584997543130276030743316801826575457336342591963092834775709239608351390708829001197022502097632098716214732280751488515247647579081374903832462544219466176757998517594961306116592381258266630920895015525988305898574867293940750111944355095816974736283661575543578966633086507276237704894969971925514353177221445746374285902124497893531518606484877458057650857581049851927064428260174929688681851847552270456373109054314108345705056241374842522066447182576239217485537486604152238978854968181891863003318050178456016201031707926161621038432464148316745073526437540655104017838021702105496143520442622185407155864766019121518839607417110739639180446204461613928060008126328832948088746460884629716709568109479799573425630318763664204974651998056275755828571054824586380187103280009080402742874734170251570192911055084129152793886216130483135451179950393489545400191452314884630373715602307561076607564526491292806625345598700018569850068214922618518007270802402602709281896452975124537542479071915377209251802484189411996797428139018116885881350884637160527739485430556556940592827469914299591554285541800276930991806755613883378536250549821398129423084035028685126439655675882671208812186911646589402411509090221770056669423439564771091591656112447160195851697837925382372138772066751681053982538139581732675361050931847274115051192366795805352459163236370029589938880266390323930880669785165344359718462885739481443458656147666935621252634286154746659211876445556100689612380816239541083875353244082157762107232533210064787563726970964481215963410548008854906722432691050642074058769601740232048064315272352011305009641396783160709510613294973129803576759214703661342634794311152532726497413954551429446327658171930792762950137176402681570121508277590779527282469421669716329497956441383348619627784339944684936805242469506826969924724919097770696813747311388829530210919836805197830053425679549763199677941909095320510429270931938536757802767038285798838971245321043264791630215903959593674939226332554964286698036288440565343877921447659125583718036481071789634210731837375877232626519926172878552610339874486580131936243921553983390382146848083288693294248151120068772106850122261305711012535596572402622332159520686490284542733679962023789903579737814341169989552667931681468769051420732725879448129434534286868150827509964027925792234077881102836142238663323760768714692312719541953739203139005148360443118126842644237056364180991781737288525476294068493036612961224598834043502966383458423905350880171531047303678672245398680337405140927735189296390646170110911365112761288214585735045838825974236307565063217851148968737321878095597992504625259265468760140564717258748565500997249947889217017702411572171087044393784275259894703423714499365894542168838421109103429967071312454125911173611760228295441492990431846303488171672266543827171280672141597240695701517675751594128898590158665878775464240191777289608463716547730175687131770240651283236252864627500078781098966642750669031809431437996686931360967484515724649383160033435200475876632983727500291113220837977510330042416403374638018415059319444807081637832400250849001674766727372705146632122732728847053879865268029689697872908544807643462866624599408083813859911321542860599917621591607301535315861159168451738801008181918908961507642641779844976476606222236792107838667791854919233101834930653013944493845619203573770328650845121170027616680068342836891798321892819935574509677458790289009195922307252181918585322755441279268197599903009714043544893867098058483570886791927574150958195798441696381475807902067168785466555515809097092389161316417552906521135677356339461689242678740861769495478962463923201249863274922782076980180541217928228721782464370426236189709628084621316998648845162284407546394422314174052866206060325820489078778308361092484336649344863962146318156301236057211593138927392876282427047631716801286745326260681664818377881362125689058709902258064668096606559208645272618011103731773791700889325345989283556525176144314214528444689132238729778884187722910130534486749912461844471936292566213511579758327561267748341624485664165155158176548398321267817361093307956264418689674330738137007305266353012094829782884039398789545215518129752439521712556024688582549993261090139444940594482746794716268276047070919337876758147433139865986565122572313449093699157512035645862696338658323791165511801308542395977319360377574311713710771100354021748693511280113330929730635751589913064501141453690529577498371433740385313791103090595802653414621495701015678896951352472183411224874208418055180941870343961973586092721452614472722844185948450523489611172673627228019080601399905579825530517161579630973829378052525916663004660402740244957566376347846056096859776419615731533176438816816717795061069308901730613350408314333591025158610634167902950796843849837904391130125366484018482156581793671261392228227332403102079618939918395764954994355198216520171071338234830980676157459600324932714932706380555459465268932743729920770129285543031278050071343700599437328997009346742086254909130078852686486222519866331903194794271306273229444101087363419928589036713110476459415078472190217435213510616118603329270905016395132818911838126606740418457446910960506236628695153046798728302762957783450073373311979854525636862806286061475896289923540146374384983590528583066695824773927128571547982035140001845495788890129576387965188808208004341653486870431650658541532923418345179462013025169051145239897987756655895104414560572347269405032887198668374435437532060525930150970079270059496294905433960855628995324331532871786328071531167807313530793048146939835943150116706130123667243605965627618854216107771798863406319219799099792578207631584593298751233246445702420193063255265280544934734844021095364753347595569262205879618163979198442340350923621090492062150150103619070962243975574421786615195093598506809512969788284639039378798493178924876472220986418494621530750706345060181640318986389262917032218937628367613108440950554569395368699158354177341934083616485883897249436207544497601410379174941018889737891891691320174348714511929770340766555058332279698408741447946584280599813804556478735817861247579592072745747107766459454608209065377682249849514780679114156647683342123955920998390776938354118510513224769764237413460732361175413523607246905417076006653800794391001668662575956672076210999712283637710902301761397968570089265032838951706422519120924003390009613705487108472550909119205749005160584354008629605227256908732145273264171245053319031850994014088707560194016604178713489425213775623146675932538095860643875175009675789542743401715839243425226975512790023597029159981510875803721080233239754239351844499259427896880361688440101066939663976005103044468633860312064668127178284785868949981395849119020776914831809172948473083874192459370416756586925161407150705583050892937708749363057559594957073258099359815858121095476360463240009456017102600902793666684080046923288929045403870755779694404008168207227263096826350027219276126273072800134454696092638566081438048417442729215344547998091184230728776754653812302219596646074721517476308839131384573512431578836770921747495499084863415622487445689103142851109702331961641726224699184354288835029155145885848955426599192092891811262351292340437392216484158299337373939050196300824503671793445587967624820690950247848383234367367772282496471978211407914974171278587746745335530409093150833413031342690823519867156825595090543306994828533996022687017012453554783011811316509074474227524724752025591740004246356780475536182664554347441131629105820323918325675510774453908299376905204874106406259147096073922182592617063765590226053752834775890575631545073311792776651985875393981510598770350991739871143709515756599373851630385047143747276125171926532882681010030643725058197196375437682307921738144015666718837351763406644827803809016012516944567069448604658223649116709458850578950072930447586552965700978282167561022307146153005721255265627659929875649655284811576202824408511564918611589796164391999302385717756667072816925752091780099369380924132935478592348098508511661449719372183918841305346492962193671511757821938457103033872432271017911991935525157109468144011545126850775453317898911308137719713144511042804641045642153021095472210129287823676083046085246013158989621073465432122491107594637901984092205200338569786241349075572866168604644234922712661767259741566459341724915316359327851711464797149080626003032017546823333762871967413816907170042077030926087609154929504501402205594699379169926877037818581358854237790810374614403755181550579679799119428311613031433029242880829103583199583616930954497123217259815424937745754575664438551212582733636348255015292808363044384830071285982550956540526940594004981724668005111690835435022392804658988823188205079425015696674702057870644894628105556543654659727493033854053840487445157378713574116902726192057870914184405015794382840178112896591522439628428083594196001699076078389342102581234685447906157922610616792325957977620327138985500384691835251648942842095114644307852280058308120914136238283969249466863963891827353527395118478359879589773335417539840493715828738561218897793376478195032471727103828638664583897891079975824005067907642965345692274076972952784816191193471157496714571397230886313341137791310920203906813278676693925765118481392627095969354150877618726051220540436977464903193080474434283601190243237037023965861258379991277051876085821826372579630367413844978652775269283066515230339914994479718774968670777088049131191727179130743494877583371755867961652460528175121381270675508675786072992989958714960132704252190982101974914003695798835671820154221135129818249993390881916256452445703300386176973364445999678538126818895631431836964208561107002459872782893971154917427683486576821125198602562251514081476625734275663667547115536508187260895963720654303065299648768673618630751514611919854507124331486380745697207996025621228454227930572025304825182378528349611374412412772159962648762251081193825475353278903263303237582802824264877760533635719573248308351259357200447870803846325018611112063134265884943145005840088843552091637022810320256310371743028878561516149249795115332699313164022515670835383008976168879023303873171283446041675328190788707428589939034523312479100541361466090126387071990286144557940840469540733649524775300928889209376747325723412384641309245269532497009920372295555726149198511251427042503715255020429390231463429382697643522455140152102917975116135717640036359359163912636783968900588173781254785972407725593230490332862450153814318547289278242514142155162511086948177695280806614255791324989229734905390134430209659987607614371849548066236737706979576211287192994031830137425693959064426728268153897932943840254606375025100074196657470162036699588633647328047368095125692686547714874223855783106071208729104758577475027616225968716563385353127223155709856283133063866372850370842430967796246265371886493418398581299173744022928835299961048397089754094442499944570339722374603078183263442165298742873092037449457337356556471386925398495979756188207133525151033248565101330824482829179101801687821133019346904098606398212691654325122494028511847044839698656113863185758155423736895632769573270949770689201882086189134164061376417917606590873816157337857245021953400110246383836546310966877733521058384519450487673573793430731058788577406402408699928870757344959183716756141236472396172173786341343806434058655641459127452198442121520928112803223759727314539417641898796373905211570227611342108448134000847618700485970521119710814513283287262239653075536404189094933867282237059317778297906088662761122450051018136451527694987071000776674081613748981969341040841253447618601585153488022763042783574538886449011031948075161589886073184841238103956078920462578871726950144001021567410025469897998799254016584173696329279131452518658855390261352602348620465518093270911216263743014576298158963462897440933563902159673400020660875115510955868116538736845383195637122253487937394841054824939384621763413851241842858575847599580975967113643711822464132038027871605160750771642548566149685921443918229374494935216347935614423865914225631139335399732222107004347422697930440642472073238112097995914632853443210685594476518505820308516057715078886858081310211047920227731778174947584043126755522613102857473717051319730998661568188019593079430076945998540966871822877408541907830017799973069548323894443425893894350499454252765190100681742316139419466299552293584866539950418642304034897439604579233412194798114428933953589084325015236007242344150012522949736617798079986428886313796994064685024484386956655084386931128775008007976153827392445845954456087724247034725361136384622783571498977923777418090088104594084350183459035135787133900937705089445016028740973045643424677434209741429639308078038777995306147394147770517995499882849630528683529413529482333999741235622840421999309500306713639726886777797270763055801237755794087632290878703022628886515473841629957109926407654020151055278430647952034998133229737719116234689843839877547455776698129447330277340769642749258362764478148937740746218223312443295673042264170609980456061045535808352895394359057779586005766051891790739899482459664198209632554288548262742926151891221069179564167843102731134549805054779581179322729531328964516199656762814390988317840727992849487845244743809686085476407976175160822843971415069995242264438107676055887043176556907085159725116256638170652011728208628044234668109901696286369937644262545538201485885171034156302835361155108280676325720645068201730140150377639996735323189036445050190507061264737133689036994342795544173647447733032064067864897380045137227747681133581991072783755507452599457730036505473202809899029251072924187239827250912479848260859264587712975012284502806836236893056362092497021906133043704194838427928711492438597178683929648096976983607018066664109648518089809088490357707791543608473885002150571650264982624065199627783597755372742847373667807526060355135673594484588429799175478113641333490545032045106902393587641880492142997370199522762651462199516379820295016042471136783687143694972527193139160963549591494432064590962818843407419028381478031606998523409834172503454997519584957987973774580321417055705176023313831507666987548321778179518197558118616558243031297594323182162456960926174487382576458649494465801357130826494532543071241763226438732499352760326655980945859586564499188500183703532866060289899008031781660733856411679544924037048371986979755329546971703530937210334242996438828912718616437291494536123672826044435010181115246082258017967855997670460883834126023580806228496204324071965417433120857973223721609032856782856620605587299598447361197600206661808155896733315373792272225173546877738837775319747109319806888864377183732099103934614983041768961647597727058623753634327638518176080079980424266444076033317796413276948984000488721527686609789930277359232012861243288218641419327179489985089350616721570815785894267415476790919879503598456618730040019033470815841379424990705842181277843124162171520530262033420797285205244042593905278069949853289600784577910753928961085328316872402658714691294153674061005685547057838143720930485934429563585860391748978428970390852358863261060659813634329252411476353115258501598589754705650249126626863484359338816186084947747900535641522704663755020620443041243171740557776925815794156582160311075330726295160186127424419968249407499070162391056244762893120541237842079184822195913626001629888037519374970928027649100758844820445899510969119817078308745553862324473116095905151840586820222491475473904458229801235314978111214329364418692900102196527489782062348053984116809953130254581047739283535411996767991763813579281275683352234943863508827195962608304343938111791454077547922529222319268907256203799131334930109013571484061153701315803712004687684609843176662884586579716027846193193536688111789292586135398040229284103326621392548334975205803853747475037744783274642495878513876557921307479674845556992251938654592173357626017557053530731604316157107778713400837542870590816233291583272047170995547822156352431250800225978002294755078413422976579444849869056628317189247883434330731764827008474896345395686445247352445357194188873875456759476868521892675985966681292434876723611398323456114350833811034467155094312169149946826782175129635888881928490608828525332149906710711876566446992843780246754535368543892648847043831193463460170580926176783411376662019670351034918305958600602672090184483915951910461290281538185927336019224113151973003685871606310831465040182477924175906432733271346905532727461872110268753456793562579692108009861628891444708661638812951915813706969326678641696688089384914931438134192481950717143616197389686130395618446302047266056547808881099247282881778709008829643408843876918581147000496881582908910972984177882134622693489655848764645023018790205072710270469476986332825898896447280062515104674588881867109948264594874361433188208596139856826189027350858650016019143244359189834247039658107822219897439286522132842379440389682626694719288907417288016933343998708548329374358570345206020432890113823351323108497867070413450729654878526655334195343311150736402018744426599227205223005997970086631031029732641154281914734452003846447999726002825675164603119495322975813911061145510777280822756023988776009842175161546808244943567883374877734356266734151590690827530682763140337099303340423304677946614167823141734681217029805623428755567024495688348464045409927117774143130106518731363614068934943515064342170997871701435499665260312088650864886899840572607140841530906564709972601064767619482791287917597985875735554339883539631941163949400200344735248285044981722944261246353939511921005745378122950157780741971959489384458196914166740159565688308149458429753139691243852737719287987599560985889138414679385827616969480288513077163166981782153280147161001739496725160224148853413898547849823350095619777486237978489800122427950730828051628173305858411917411981665703127477483711526218669592780528918322764308333130872376378882176891789815528457832210117668163044319254730987066165452182490504260539046110203358695538744251879546968216711544578127003654939183707170889915316100856100490327054641406010628489198999272095336459871541599067985024394165286303892680395504731761214582068567269113031138633428663182331425813264829236878462565182339821368520360160293857762620235935935827015848289195667475423485017095265039983231480498538727267289470050391556983093088476107733595056233581113646532361912585196673327752064223300388103120865402723081036763398895404756301983232240688531938741852937328751067571256198405899814658056549286350129799053413759452404168550583876677286071525770038853320426747774923242148939613342719381177503447056650545068033175039550402764876871542036912904248980859824966420684496344486164512413935309499306339810797586345321661001930225190188354235639567448935396270379671313701721467063143324958848423030411527118415413674804459319977717641458328280988245617845631335470608543793519879664929321288242013996421415182848207836718587137720402700747240053422504699098160656678478961461869187793924059904827369656173492857333217009372697463954122541012468981811924019773658272277317175324372119489407636952247519170871233328965531556935730975469191176889345828415583437279389076389196775887657068895569185860968653616745337059458779935400612884433537718037890148602862055572345127278730422763632318466740749826006733426471134464892961996180525930068963961809442999324473440812882960640147744794282908162703585259471237039932539577112324047962963756772928936532633864236529319509342688617942788531006938129011127249056121756973520916938479151121864007787440127452350626741679935080836712067900165035653089595516925659832024145488642928609472950517735025424076731966005930381027527909598329667543700118846516255174378048715266071429427144762663126232743848978712955058069764320706470074603514832050957876817881813688683356001697986117958979111634273652674301232004483909176639474508288414578674365629621882495446212898357027714293974574226052637039581771533995227866265753508582882557169600545636694440359640812154813046410549366923837778413527389084180850176748332650527625552377229156123295504980109234998442492764993304789162990650353251243316219994847200770187407762722592145005350768845192224759724607054534492214984714421026500031848586917637673962082432811969951407238140975967492280128107863886329651482999126812036983687860767889494273434827247250188219634113760948474194294462377481516747461373153483457035154840559350344063563189784064509333729435324196661691877598489357128296693438585784669028248442728749921842359256887525482012291884681360892838362094377628961929222176671760996255448084627806683235000278179122598720514365620733004556522370182046329993908576284566864500046821686097820144090299679424097810818360419387933796399851846137880368104340560450252862657368562789610224582324102701211727133815796949146064192276629262610182632914740692356337386855402525719352689359549497687093809483626927040072936004843633560775854796325579675204594268451510369932267630325465545227019573557245318130250159047009446721524363802655143631793111997419594107091565579222115274123639796553713883205359508562835922923832492047620416623414037267829319767666890534029276798201074078202514201892875392047744726511500456589662224441057564751799402667764666008318508430811803862738906838212851502610333430150890035938217408024475736381123591460851101477088262657532265809342500656869046514216612353902796547373785636426898983670891917507126969001632594884767213196611952836151034616484957971830944775195081926612757969570098936984453128311700236764131139910748318548889452365021491747278814058702805314674791213472335252802191829277393825701996321530461661336272535780639266998003797178581789529398237409606824681265366136414100694370402892628424752134733797061057214337636665522242417483998239981367240998299768185475929315180426096357051297351940340908111418469293063798323113238347478632286191588305401704471272589949024638832037463820283339928729335183227789955996105007650025611095690971995363172115174140203753825131518009800437399859970631597726011725987396193952381845086354731268370130942595456474057333015782796001017448776226839464745437004778862135000028145766059179880832892089539926967482696769646224970680447015103379662781751152929912329347862523821099483165072711800514471680081591305488393796079732547401689092537527236837435181609865401185707047530758122519660430198419878380847951512512159964096087614399591693213844548196394517967113105057235640334884485462954716915901258206428122038972924972278863789741215674540616867471415784778547677053111591761376697926524701962887768651621305620454699212884487056780251047557023153218935459784935943814834369378010103089928541360624562869850660798933176752836104447323759715705281017282542737832233721514779203918975363940563342210535188445667642595195068146805140005498913550159998545321001278903372090537615942338926533051840270546833596634242883960470536965596889444987986838141349775347968988088918548443577527664431046957020548351056486450549496256117134919465706984079608081599776862938324767374233918899434479914214993224475967877530356255671772519077932919608014488986427396885963223217752413279125807476149523707662679402160434842376876112003291943009365365437156238490999627605979923985023196643973106826067640810081247956136243158229681470040861687683530522693983788268185717338249275507173754813581242706649570469784788482915778296942694141593870293974812906000166056637437494708410576210086955089046689546825063002743094140350552772618161001292332900975384049923030950514077845764094062231489220309797221717004411680770495065336060377537024307292633741842434350343077706766072382523335021219532274164149254184369924279931922747479058651334863268454328079815450881226524531946906949953922617725284322852873693752085990167766812659205764488827036283889623989476672885448000320456887958790733258375011639539271717436540351501285307029148417358930916954563392518855331523034858846345863813924995186719206012629768417553417479942827893487019572495960586400609072719142747196216054668916757674459621379516924472954907687741930776842721540481933797959547011351506838435085730623057761873905601144519426387541299175721083359756903238549356702605292639839834842562554600072299503100891067715309815301406161163693201641624430411719828541125730331193669347743215393702498744376894473317158930167665060856226007284849906992510991196578867698974673240477094553025133476179034528155071930781454249702468133602520434177244628689563727999974561999583437810023506336448610160985313653740572392792353123232363308874953695127832374459880334625724174016142638105425399554813183967405417643150178440551542419733243853765037071246011488895822764158978980476399165642750848122766213087901243531071513324581897732595791652495889056646838566303813370776446048162271290103794809665163753858222352577375983488713220838196236798502040016891998069240982735319679547443589993254415485940790782211686653992611812708373945686199880102189691031043873182993947345764357687284936846591869468797371853296700667960676003053228652513236034039556196000708667733882929010776287207294396574364840495113090261189255512210749498142693010915788202295453465180675046060097313305507749940411853519576591920642835304192236859320337442503800370473923589063375624369281236130489666567973375054320133051337534552301102380640852310564724847296552487527857938991247316619741683292291944655224229098403033297779521507113228946394078354824820000437998406824758221635720033685418574336683195321911487643879447833869704673880880540586887966638673973770784395106268509028855767429471478510967232855965962882873166586963891552757895309531889840708386454243624735434999061053273876162957574289087673597285189168094415162556028283978383640829131332271713581824100445010916546331541501276503954166851038170417444578292147805422114110051674873324486601068846081702764283767294240582056856443945858490038042196778303080190347815218476175928208625872880506786789873330610946965258307166850652208709337271227736149641482875375047482411893664836314473044293178412433447252788818595734866570499600620852024575780134136217988532994623409743309725159466467406992030976490102728747240788025073836293254953362209637086452419832243632357990829833219583404579411164459549556899730286465855371493555388333712854304492817168344889677992472836074508518647629762925263397138308969223246267203361214842986979454889287146797483954619929232753867214846224934328951655264809675678785063965252108610462502322024448083169787152094853044481948961075722918349633834540136382297767305014749330353077492120694094790501186912914556139251711104764389224319895202141686341759285948354965145855075365977783643610202417456155550047034265983100080606715082720791740570668510937583086339938218559868671941026068496415585303366966736141371735479799598513117345077811269191590634543017954533532259925954847763251701857924601218398585245167434204185817895791531272446758881021218211517367244078163765851977892072206657398536006160170409194339390146213104328216166164537117194896734644378943549198327332919322089184910532552680384894540349140599240069555105051620869022709210130660933902184555440165237867534447362461013781320263103042676233363167469286427780449191396023656618766718209140826903467715127176556726231296615309573762905056273672856760494423539783147295731930525349798074879232565819640609622392432039153033309063940720905083536626474346227409913699971313396537502008055186315858787609723132291087541515633900758258935780586627258622796139806704592572513243601618549679185813745455627829168375868412859690954564842434967559080762357294303744633333704873123374438839934267628626259764211276854644776360583246809217110567218940297424007725624323589597600665083904784820621522331688088609437160395890148322102242443335362939527465599890759244211568915221599935850304930100734696664520635619042228886622203627931052468471201725049935502248444896509619706125424506821032784345154531789962069952779935427684302495269950448644195369036489036572819047519333796046392919508093134164440432692780708999864885744671062156811187288929112423552210155291188443895212351491103957048915180550184315082789955538021073158259964464764222735548157702721605666574293651717526876135038616846642012059740194551055451057278173862401177245676649602675373077611980378908554627596346380227167215781334950119176231290807853110863735077439975084812169662031718789551305357312529025055571429310950959356068801342766605697325569978788943991911907868541482810033886454897403543618425365363745201839897809727096791716603382058364036359518673167277082388061851875237822072758271870498105557853690878370186074744332614248547686856318669547346676185190479001596048655341144417331358413369518684560571656106390488690967433428219799760063647871887497235746893242963379209110340035386131601165357220006373884100901527544095417589895135170609913672654634466748028736465661956335165467092787899798117040273107887322389292442545900015116939701723714628472380674054624735169628640561484009409860803188205896513471722117184712012570163844885485735236785396255217271853641158735597285662705562309181959005547895067275395977661176088511380589632663125092930937257456041251040076474135127655943412514525167659138207542602925298411316085388018527113412587408855740220280415689786425635746986000070423958553614185382051213863192586512484455606652603498427911032574587649289356476540027643249647597429928459158902289311437216117020880268850789695481614391310855090319969951886817747170493006841842251556814361503920562351084591861070945429961386911909782560222533131738948602854766052888806699889197707500153289009257139815388106865863811824992446348243056783141443140437530794530521350440837371479576041117143756366818865123787642961398049482838749769851751592781471805034120462248353506110643270137537321003356582176792867406610916661524014937688200123046847340133883586427265231897901747960881093589177167387454063650162870785736670455811314550979920281588451988700629336755273934826430631339290462854978559342161835739723857383246948633467938374276219913745772603784795032249997012482100757323731552791963126176350207144287707943266675843658291591064334584661293451662955624239441612288954917274973285036650532823645354284594760750330623435494497349654094991497104065382098967224648880893202212425277520529931638342032563404604163331811015429533519503535261438232290983472097592938458492434599919240988817260785566984377499450304896832254635253964824103104515905519857884884234098652964879961635696506592296955051798821068952599354000504336618039084876779960512561023314325312660646652191114712057465415124275834464881162509733196072249572823617967773678637282369685785644108928446557842596006182823314270530422209362170246675753652492778586427004574901637541293913117887578355915750929638451193401838924258021168861857257405796347062895729494133307537165450750183615638055765343360088225704240759047568078894663934892766307169090982152174122307134919834455753117804252648919869414243103247711817763944124490775581659817231684319949813338032807862506587219148693637702604306453603889014938187720728362047748932033109666182694746317942586308632957386351232110480790847016571705629887989310069346461068548836717160016503544965170023304458936977029157137561091038532078483946716222441820948132237780484518957326952164034730520933158216617709053839527904310011333270247041789682162227070529556326150458825749305903013626812842851986199220131892947319449512020021340740341342453848387063962669538666284532136128116582726768100351969105778864592075403587428863203712365939885045703041443919203797069322194031079716851754006455066679516622841925750243580968287664239476977753184829591173238015570133731325020889812398694454542239926738236480018698429235738936121020754729436341636181091163660058568155517084654786764779883389989878902762432351647904301334809525243266651422740524761825168509003778319250899196596308063159224697432210852665358779426839106943635657973534646444352745280928549842162907409180824673537881658714719781935774707801355501338033362697600240411347340165390445337926476701128589935044922492991371241307008642582544646469696325504527341910816367898541251869408946335735482199064719185265688732788462818286094459396525745515610087101896290584170890054087597078386325878186417391098896189832951933125480654790755981814592468674543715172109717375566995607020156860924583957473678018224801500208119487010548800547323185194388486410249876765181270323857826696295389988156028509167368410013141449325854688000451226465106097818410953172275372921275626978732315070908466176543227143218968240469014043480682515524605111031269851357460754406651939623520429866792532654956270576830158158626389098131742282480675457814794593409638067753760932493922534888773351364313304354250283012034599550974946891212570241992092212524607485830603472297599314779621882758800744476214625869489181649274714932217201397203137162068353892021854794375845891424549638740359509188889626531828952259251252293407714229718438876117332143615490461328704533637152454940104948505452673931255730814088631891742931207871329181279046134796000112198044900622786785355072058932931454672358312099713359891469648825836328038679538459073184205440304351315768727320192870225418992591996529480836784681238154680511474031561250098225609379718690739818907909996747122501267454521640500534868919464927238134082357429840829984770696720455401833604873228327639102447895191449798159209913991308876112031825224953718640403216608531294222791067028239161560240121846666209598961003304589684732259920286153835159782539989041218273033874261420925898426519255829183202690933979398501526613803002645396262371992179316841542239424064012952866376033156823455129159586742929389127777367214614454926451695870286364769063643416032596139572023528322014110859683757442962645844797491488306086555472261149024400002776471467816177419882077491984992285064308556388327930925379585156286733289882996451999112234316594972440741847235414134381380633848518639419217218412674167359062746636124141103990390143171650992115407883932369042315026167515089011031025778704444850276059851505089783012566133656166924944479881283601179692479174154365062551495603318387017834210634872373204249970230057678479469819184175551693529683343308382933377763052791255432232110790227798335459197731344068122349190193003002824114830457680870732286170231628918772995174824846927137283896326336793898307708732459461458472671997501105651831825667351738529765665169867898720773520686526655494284147462099189092955879367242291489058302934518881725733613251203972495596028859472220188135245924155467915877157250120279767543389950114772782708322536708646655802869950707915888208506664336892214971380525790165434893947592734737608639407106473019713231563922657480563220064408984517582705173091792806004621104587406820272703182855182708572277635554078401695908586119130020561454259089247731089219180936107748326064858360192364105681501614709885001240305675029815289779050366764969912669168206824371863045735614318996615041457022579792919935656009807851977692336855669105209523034256480689201122627088197128873691804338011885595578885931203509686124370282570329793691084319143230882426322041574561721074321957986987670270100481999076435311631668530115244048958794163539206110090265672122216300526278737429580616417302541262319822122321124537497612445609243311023319990416331968185196236278210803935632553263637874346522663118199504445349544946969978347228243858837374300113541187736024258536445471375323425093333970349255671302145448831637895640899614577423438729779239352700744807426496902029482060615322733225691581167321026563958402847508830759962916676962987359266645461303402135610852886747396188290624908248821095728103299750430433197456865457950314250676757075014102477298988777992233032653063990138000207337776846818791688679235993540930642004618092407314952046650796101227455788294867571539391960023995141575303852901325861755126270777226046875497231296554305459456798269351669049221412136864881510248872572989954544706290309982476908553283759102925909453431561385266800874524636376306055567573296419706288795992586216625946509117122248407229489164914339833932733033978086154075827148679173857620192677850233660349861292320199410711191360739661779227094404672238672692575871523116094744649237557014921548670305887365261681273564162053711923948879552641023290304926852425215728567311293540389298894471608719628536005907369319124543128501214292562948087451720109507037790220964424655739679991172327254871410706075885042227650719672120853072081518861397988635034905937696707884154624820913150701961229896067107446453269487447792896442555136781172050116386960031169969101955470398997973164790345207260812206428414216705870425405962014959923458856535007693030576408099159482506534974550554943409859759807275840368709099400075751552462903279515959309353695706488873838658402800551839451037366829876468372604235062449207145641860623244551057996408962318743725783688413050261180836616477491535849650854496415206243651456168068436419302000942421864087742610972171719286142472683731744714707523373573095435406860216223057459207807114975043040037255411670301603678975902471184873033260175650057085776994670801673442648157973139653712248270282362410413018377455288059135552281026144445015883510734238763866608487710649489468279089542608885236156286388943600089530546210383345327220606249084100114002300829412714843942219083159718764675438314775206745598959556248005843695209207458979937394186115074075162515247211122897648668020167113822442042156966449855221185494675385746861935252090132885497771665635695913445867934858442510167741586180200710096318879850337226032522414974148746566349799522880657949856532475902906213835459226479387211553338033601267725246173162118112856499407835527750740318096528813599610249812858769211600058720959624423518603920383443798800612308072786241237518336233222947333432186314953055211983039772579173519935807417482924508953971059753603514668267718914874402469480988302302505466658550051878570888484855465832304758522138665421394584874868614107613998123429822552783931531239466304297029731420034851833329913720997081290278207196194186388730320621115848070707043687937501070960583745421186069850734684560696169788841050064384121596014918531787142360074517318467572476291653291876727034845564852930582918201008789928167305339651003300490176219460185074999697670214802617375713363381317868811617260444670547731628380395313818760608860021620621698006470329190424198052830536413653842145592881037896627305045309386466837734246598718085332677002370335248060820130941254385679676977717956578557181037152897210625326797672183066607328213381846192121550620847786145399909324605610399104041955618525782604115243760897659556470467444025491349542083657867786815584395147242215178361597396556556857447386797617002526042740607220225696333735710413161937634904441973396318958679459556743401034144209066410130281773450049053601761635726456355721319857705132197015290304178675330917964957380489893954105961922055264551712261789394954856271781540279072185337972626985957183798858458531280043219837238354718706243907346101643052546777479587485463403835440611889531297296856456607677393029218837115168688559331146830796911730990919118083090462529903809817678700245273872776346190574157173905451190315618366736209738831630616926554740275210141570989342552762032829239129148143847055633564527678529909134874884135962131089732273140208961498398057658980050604691396580076393242547803248856971428948812058146086500487168047030665960022249343469220457377489221742909484819634296665693305009194342209878149361446004538089188419881123511105936803016508950306902154649207201803113960824167130299445660455855622280418173994457326043322539423442034524686606731723560500474253297950887049879639237682180470481671834091450254834901433724573009473261822921084950682290384698937949608926263535242838651565580283075161585739313079718896829625687927776832959234821860557996720103538801107681027244336515553588261486598811300741468257182619019032862539755568333058833612756964014998453215568335165478229323375565408159659836954354606262032196111876859631175186924698085121298024592193472119013056735710491188798127349209668609264440001409095139620858980448049494249576306027268088552357915542540964362380892017374542531617604325209052963982048717578816463317866749748239734727233667373031444226889451606306623349225762848007369983883477555308581545141586794580289517961936431583281505755270440929518306456324117952758528365776874822408475361150166395299047356777673879634079258064466477705621413838731285005076859021463135563188593784719504926867008784386648978965618995618766201802857142276682116631218988400801648910618103280457690008839061699732673282771169463886365781518727885307161624101680657754416402928310480311083658436930736967081455244915440273132221489594371516936252722056116670199552582391508162011189642087519483678711123663999834210418408338617690106419676763751712820482821563151509816371606750588258181749150259661839761677626021018169164291028475738309736664540652074941019869951711053538397743271596446234896977241558054065851383256964039595024259567860512596943842028421802707265315910788642387269575844685225065145826161793851928848757880962476308438518581127323759616956236706080708173638148340554111525715874454493152783324761063151097971948902364566783035789773409492521360999320800238335815801011970447468777736567645257348099621577796885047519259499965124944926991464493479907181068928247419681479288299276946849748077745739299588951724757653829712539470101517635557811972564312012521840855546957624760358422515816747637758166492090105674560655116078111315393666331812064264987404232000019883527547563894684031603621072505146034439505201688783129532536806487343488238691594213674686444273372603579259898139107448081665047556394846348316382693491271951185487953875347430409088449113819924487588553372380240555281474879578660536892713274102417425026331159228472926320023930838032962972520012453174926383306760668783285606834202510511135711666347364583744877532844023404890194173256079281669620239389439522565349463491493850777486269790366670312047415533120467372405536957288118305178869433288779783005583302106714262247786916629348730673800652327735924952933335586730152052799192619461996181815412975553298572682053078233539325537065002827479211220405360121726174553503835920475987771997061246638378556496783556283668951644557734249375338380403017023104765570350156916091714033028585613166717660273177387076502872860973968998506607408810554185631438710859899224455649266742886469978471901717618470032751765572871350898471983169341031647483798291560693574003519454062923207889846420761324774694760699557589260915903005787040249045720448724633433956506798052222567506375766934476769667356522710852966198976437651670773954875105739934251287216313020595892607129037746874906985851595928574572827869950682952922850463109084313214513908933812269762678642626838702448797112660401933409558388388179014933322767018715284457293345923545588335016326759817794131524458967665334726599835620102611157267470405701799793911463730044032221867209196989823024571740805802596147480785894187170886488417136782353751241836145575144975384019679278140687678472829742548116175008731800222616587839542921598295771338384655487874330757910394927233339467513864714939787891500765271044193944102697543170161141160434851458643197559393492819456810188338613821677030607640653739708482779301200615444054075885539396219132228680137135574137162067143806133251370950811660320788455058291978866901282429240034977167334553386467590824333554832663906916111792476231688180198647697489600454632575099013040630890652563378313852699243279117651234697728956098482390542500720209140766060011982681451002521335273275935760583110516869691635068787831029974881513901056491300065138503907220209477696577356750818374506132554673051406648821486406454758088681386125671077010088531427576836634530305267177538631878032095679039802660587527754469530485605504471563810008960730625811975328231537883925076640780938997971108442775488252950682067153776886233736925233285158004165272555953218399720823437661543504156714880536035800441416483745471756520453119489697013087607660152907220622773195786964480985184959593379878615070809977734332827646276117884552528122735314997586553030251944928679830847054539589653856440036118799437997184331682623998778513740375865559520076198552505113868999628799538883779479155843862416877018614599025555800788419948526221037913647010227380951299032919265729733182706826476169071315236847492800558452641861355769707686794037319439029484816113802796406450439836232317153234222621424898398038445390774877216314087229931463674828721847876430382190869378451335149601427507256572428903882986832082907971366435501166476037671132255323070541766000338423550461579189999257466204185304254991869964379747445089798436718128755663491769573498175080317771416477151844874434240366284716544551302782564154894207334088442427762193258497867031733700434008835101225013720735531545967788979418506830039950987177827610992386212242139192783092308084842555363659103554358652284745396647382609449537619822112398445863534471853055053683902898240045749257902786014584849905966433893132749620539617122512095011406340274673591832842530541545419338681317904977941579454042095589817182386167160198799147467209087499729342526283470272578675998036616316728347442758160055028979989646521808494501462134371175388520164015140035565363545717483889276472034681591928583007694554829237091508335402010712191902944649052179687232542898947637646817126917870409832328154764846071532243871849404692059915640618435872317726258848170818738568508218154893891736188061758579398563391447583204218172090692008112564793618276777898681673489399969934845937655769684235847272672005122213700248560051318575695193076110308855987454918794960062481554786752005840889430572668493581182259661270982886244398065265495590026679515104251289014697513498961706276140238625117941888829047798932492515729188489269048249865251194525479687433341952164881422793672926831936798134232125509067527935318255845389529686498167129372430104724397841609695775444572395173434707103475419043581174008142413194030781871100410740310046773777997136225566938828781834286208784550770783217344262864763708088729200915829843496596391450567086705217789501004543718613996279024481785738802661895357930556667754955625555035905087369333845357584174945136239417992299482241615582323387297326591785178726286392676574836849664965034492211847260617232915945190168121265104244265779737935827058920650669744440328883521645837539632903659943346597346056454784333053120308243700096547540212773604369745962543963694195199216187584352988748333112860952439545573251644036237319170672022520879164602319109371565618887401667311076989228141493237589257211412554042040573632924588738459063428837757197578504913279773051224319738431678013976536938165560037195973408755353980699767472317806643822162330262060580753032450122426022185945903820765972228684204122765417552835235957112389118392190690552609591967711764234648466204738991981145150788285358965321437593083759542211140123320168532393253445383136569045504139541280155678852466002813840380670944347208330304746155449310178128389822913856052585651600122740338264613320740888780211413634324428845769017294828255155249112049931012112822450761417748559420406181282017806935866190004191316626168144883870692732721130568437747288282965923646019036149556892943980032652125372285691509943682433273936632504725029162764102617814941545249726747945497144324347402275121194414236012093943287810796798510432918534189741208350589517493963550173678905967185338446680865887702968660870798622353857880352406233159157335030738125311916923102921861678557061342016603488125242271604269625452341809695558862293339074784768471405939298930984952148285131781434806868939284976988807150077177079671223739035015723551638375449075981452313240702404024584019864954799689081529761165169675573716032132928211827526296807056945885684558384549775037135204020757718685332656737941522477536432631897211160782599335132723464455481084229894821164947695263640667909984504056035819192039065960117375872258657470122008158648174559474130043688357149601402800118570900578382005104815272804619976892691088550324281063109037943841041027627811184878320824597019037178408231782288921459219427065120832388993436679813378743543375423412158974592777791938489540555249657384849546867381926339383561059528043519562751982463394060119095859043713503491195744509750003810881182287443429353595992403683483068333495596802390612223357490534435502922645921025393196453843955197667718397148582980712957688256786992358714784898933140186266966994364647516731408760880222176149945848654379885222190696705020993543947393756996149470103409586255029061840973912510762446833870807191122833806986710353912715457607668306111525904559751228836655052010771309967026592898482750494596423795972637606690326759804889039979010312109111912243007609267193588897924447114301013761351501640656720396015626684137277681925580543634761676626579709039719218119174290959934335013288317325796923295144152723839563210413277352836443831862945180397994348624389669705222299880169872234143887975871942050541352471908510643592358395913233205161694789224627924869272855356359804321675864473470625504759244185689768418395291998452326168572850442335814343952496527886051040654495953373379147264993490419483314623276385083245278631252525413434777077040118023568338305180428266410849599784132681566671307979054822568872222269036515408606456023357820362758973994219016389969292125538031670811647785866386011393601939091441877404052117555469701231071774705769855816869086133039069083622545404143078948084041332448364937746706253110073403677187945928408913959864682519555950264718632703851915339474648168607475790172788170603385113867232267177054267219795661868836137379774067281944506909418056548505006074936906942740305443319024812659585066405762488164195533921714917718465625649368474418992300295032725461629667539531442005069837362157312876591913875845247814602576935470047315414756559227454136068943622051051168080981658393722687331906871680758751592327677902057085163701269965286692756192463504103998625578003281072760980134915684811292469378539832768290452882816105182568357909527296622210833036211112179218192050838037672516090043322231125535273765299197380569926290706194603894141755468940725781030593260909165497625644338403799456088645632531701655388639687640867945294497306277690413865431572298691594212689544432108817885074582245730645511318928658825242640193582033742492622573647109964329153013847922438982582280655592416306508835078382262374397582934892455070884335073458694119886540739170352500987924439500574701620603914954235514003398981717835161621626901578150949727395190021784904413366016019550902578527256733027859376176021161186032408449691637740041777958440723783180625567026886987281068632530425252787025633251819969101772452291740941243300715599268689795218098670084054494975368807361844881164156761091204463416893689398312021487698239434739977598640125791379135606951447495983074609181903776020598993582835304540037648165805468968111273557819416354002060291485827536017090983886683350676110024392567123469803063634468803185578441303523069763980495336029289545447439341884364462764940021604159346791806499273001860900157763615735794038170688223359571316391098185490357896299951390425403086387254641776389329017522221762060683848727900914927703921634689247454996554402703963971593141579173527872914423345473625128726060521504234248090390511918203792826867155899579410897767713560579585281279424303791144860254621573075588320210669305927596811839965673360971275627813056708824593119938291609865713904745876402660963247358684655766502819014288758971217954398390177834346765185944918750928840114893994029981068346442495095739597384031681198767429317263346823547193364940408941595504322301777369511995207562695187739132183404798879847095745696767357334518422308511362847422045058127238719869216351892978351782732426633969035142282676942272307968696059156018928283372961823706110574341488229512541001918800082070174608373504935780391235518024597545493728670549748953521700044132758916771397302314564836971970207017388769126216419347042179407043472626063533870322444109268271144533371357663071352753817544621585047355322702249998032898201226249644543541553865717712546000986549145343710059725223400444460033882520215895934099400706408313272331071388375275503792047863868331691200794180205810171903125424835682428721946769750031650216541825529895435024261869376833493456974501301620421470605579955652714644253579799783721357830843921147703381786996246291300612330471065382462830094745376719085754315268810226329662799377298291128957934196128491241879992054973358690355044246662616425131119482914757904684976514059408034559951880645519401390133657166348699618093546966780816535959617266573205470463825736938902068618754376800829473299150206674137120337829549406967037696515162795499035696761903853605847840161749978489266515417695568012345509464533414381488815181507987796013166053972317070037837692675604020163656103992999265116305474305246714448001748028242803291199766298752845253757883990130455776961429543914905344752062438844282323641508374970903016373362412791449440074500368307985323527916522833563238648807340446229442691714190791679337747015050771325297416684769721992439140779267115235652723355727468576255405104489334942811059149820398261926703733857701393650228106049774171286208151722648748712681033513685981109680046991779514288750367776792641294110779815439491344962454610708071366471487134589842456824909789455651922081757330492643338673384125825633615652161843662943326405528730718141468141813662220645334629264020548756069830604690408628213727069490743142671239426441669503063245435022633110430124638202218726839603755244147256141797065993925944084385348139729857486244549407089519100688339840009360326091886263151182150390915985110986739624504772119782417340902345055323083705251678577231761401868334787678116398858145112592710688818086639655192240519006739303459449653506332253782576766413890278086005450732262267985578160618966418110738167871503016312810094800469703595721655976879072997200447879151872936993052144526474823201811253188821511209323342086991373004165217359663955597712319362383665466988781455409409934692163562286413925138071691535205537631511313298361708491339658597132620589422703520156171169100402690280815210603887554136964684614703389093364158081829837625046034700920621232592337487244360377082428275924042747217470211840767303464288016369732782144689496354999695152435059456003382144974533785525249403110809199142255786576250116355102652974355228824048607164029504748522789734558004111103522702096796224468403053280765181282556971610155453454257016650650643296027286987965366916910179108052329195941148245755666499065285723882098324612257285127870226903369537957582611175467633698344714497564348360665949040016406494734878048094227308457140382104409042338508625326061554906924986573122939238779494440898662985874506926586034040069270488806737204222594515790410689724346852550189977134354608138949815276326657771445459104222430214642447464520599241883535317497726211868228956902046497299309464620397570051924440517990030568196598531366531549239343379464904317302239132059942420275321328142103209027141367773583012171952973523897044234081225280779692760512215897642151042262111607309258643606679229773912869611443457334721376920601602617552643378704812444007341772844870706318619110626900915319207876030443076949757753097426611609343958417829570353484289694149185908981527761131625955174641513717171244314713212643788224812682349567019372361806193850884302860722773918869240522837163439309013463971613148863053779898153735555050537740200079883792040405641941884566953878053880151475982347253738451715453488542358302040599145406236266635801321760552351140515501447356030238091927209549247866178041693142235948486444796547802577496488617271916623481131830476026073336186297513660880816991621081251639005916320342350558243131293172596534182722538839839921016042224880940166309784020541276026057768700608990369111656163145194145053218017182676906932306405807266028097435397972441258527272612135711237594771164956373871405446533449288747252693277550448934311742242523244682019902912143150087391052398460175962367805735614127170337145571071816653379542808010368270520864520257629795669156472641239236317110393681759319143703346594380929138881069577052850557396146010884121606075802468042023609540212817403212634331548423494595263131621811191167439215589610445445758363257406020010895312940769064741840854100817815242079705364467258760358147708504706184567758260166766922986313904658117852274784418529165160614471699628462974687786033133830016451956722751076108974286295089863863543876112978095728851359370331041545395434380237056836525005547410302826523322536133974004405812024869147093736268063987889484984315557679201625340741691736532322572365293586709861903264670033460890096058045417419178821288842216329252859282048664108645525623024815362582441725958445694804524945341193805519405014421205769319760232879511150464763427119500323004271551512891429262646763503116506406612548685954359303318922537949453061841135951994071733079130792399612364972870907224514533526824873853891315630224893356721150223365576830619907750711270781201166436325481697135596168559222913320227302829424748447086221817289628818462244693607129908915152760033869673817034920964313079510285862903636584798078985099520162240201854711381027442269833325974327920737681084736016901886145895912489064103358170945571148688685496254059109734951725751474113143600265949754731941142560482288793586423468520452648322053237862822824552500228049583615759880555279627395013696610159844157251551542175025078507746031060577572664702068269297694662861836581671535977690319470653578445538581993199604599420468980988820945392202387417037938911703506285028605330376892083438921028645024749096671111715190703658347604643629005562384490274691696004514002669346285480953924754274791518402491861442067097206367411941474087041078210150885662598838640416441447246469564549286160534272082414664894725429831235985687849610141275235764683939822464089587353882481896166227806024103030539205727201256465494397454169010615788387673275467886831351425288526669934903729132952570285342917208119557530237872222778359499440511798491810300985529214118221540558741427278521372269800569900519284720468764811852406908906645943914239178088670234809463424822464728229531232577123106890575790763629155521130313828438200005048942423444695517633537173005169405003770143480722749540553224990792440457652968813845351558110017999176380958274554800132163243858560767370660127068558017162617533792672221009802075382353149267502336924976167499527668812045701433742748581502537292362365841342499211673444173497086913092039174048310119975472483263491108485161197543385743763828218567948374443232688552323417191889029599447618861145780060144269518302760850419307636838951290211100100757481852418652585661337665401837346204868372811898139448867292778713683762612427151038706978771147762376341375685419256352231236847697144801783781574561261749680419220149948493400098596499367621440723007316230162515001407403392181184279606141384355487592994138952065329463438981336353103160750360410372381562019655825142721946314938357820175852474092320618829640822692456593352010448170448179950821361936910982707824386506372547706216222536677260623524422385302331843897616204436635411366398550802775559738806168821422248789512373624034482808328191150285175534747186150476336311679341120505793480181732649152352465887778823373539624849800034698002339416912747006752626801527402002269092609690277673353199107277057076071999106802309584613947305691367122606278466550060477280051043676134697984229466134104510238661738176442709734909063838909501136768877615378813299903370722006966793423855576418874919800771219702029676623662371013678437885279799724352355962771679277832474911673022849914889033391019687130146772117670404748308707728855283559933197053434199384000092910671269239210660989055597122838313500562343503868308347864795052829582749867913410741612154676099180437133988571029891833399565746887061270697311509191680808917834460410672572366367856582355668472418878625586114753071341675009514099654553711848007184091020144854374587373795848840671855922969843414078239610898093358833028221647754519445136702153247075468388714071624201909008702170719190206930250017033590923330823944272374233498673293291019329167411324102381770916637273211148267400702976394830209095756591307105810978749660968800604619400063431497230457014614384864282878695907411817789098220204449705860891842571228732275837492068848629996347261713700742888035201207957626836449769089291538957878329125069770457387652640518915050055108836045370009946285847345269421587797907501577377613436787432271363274173386141160816965193748051110035946857467955447096061527475047244994680575276230226613070776374276056670204702756098445341489090797792033494420177073324864562309261698307282714646417322775326110173400624699064204335258316387528124276104421723551569153088198345976092768662526237349256803860388102948006745444354811112871722763028111982357077986168693635266205645068590257998103235853674159425969825886694298966749415137920029571419744598340445859789933175079985174792079020940283925149714086231121890575808149198708663483496822982952388519830261652009128574915141523331974843353653082101516751415938654629937769327696128264062898384875395000569822888594444061891996247135553228708055725240145756249721533391510217099763670112841568611824364681831901823402133887699754526061897210091437950764711649165924416571678359959594034463565948269921996683979059547293762806894202952899091965396831264259254476260978513137619387235038408019052156179164584623030550139710656615615725091245416680023292386163530383275412231978730076510720426826439581972708453666217551575258749602991788575378763353876491340320798601576335061790703297032373597998448422569638110508378657062072273937996910059859425259029127597971743513108324086557044295487295722075949683810341394103769948932610844448383641891145056944487142142476367817177624367174025007462156843442800542400706468382599692405921768727319724824751653807509430518041246677120235367116674923598108081914158162276070264205443077884948044367843436444826863243057411859307575500393676040044810990719021908653598375561811811390870313557162375778667140884698085398767044224186164591967924145336508876176877635474626841850838833855478311973976485168853700160077303902612477601911877095369688609240547903925825209539982195039936252690783891771971650672012950011859559426819603789397332296052392611140159343375902861791686941274398425958613278998902959956943842853660527634101600955870316323184245334039458137906972234747455567272437996961949372293705827992130417496916366784985624944961131824957564596724871724358951890441844250070358108857001793928851773995466299250177524867131432728545285333672107731105036460611183225239042457191076592353460769689731592622137233617773480673160966761794346137024510466569753364704157424759297146812532789233767201164563033158987450506629324962786680284911803055016811727993602583689802931080042192279506065691335035154215848970779134073779711462371847798727839937593617044188378453106776113575838698709324652969939015673891896072158935128871570049608142262744585785334611323047368909817818210031277626236544977363866079245606139691304618298547336538758287024601668746492015537695084624658911118069776061268493097247550571366577644882328228279804325054034332437397709047885030169303056208548320746348680108329416078644738247874400412179261377497088241385913852514275485061129054543609518459409275867034039068507242131127781406042752201546815001119757596155997261683021839323329978639781980732948505612413699729143449810236136226104170973186737854209825053512791077484154483644938907333690917258767956857227797714779438650636957144320404892972510491033671072293251955923622043213031910047126330938935307091804343134239916201107661954276027184826346982381556982972555954332560228076524736774842620512894058337050843955775214157111049785279683285594531785010725555216467343834806301407502794808394024937740337109937773061266077770142584360942098455861179217762661109223877168516598625246064090702193102263781053866976976693504380119012581269375919166459147811166894677458343108533386771600850100236125535674128747104157631788821054085632985397424893269464924526930636613783268243324733634060106411181579788993474749644725793417485367363374121720542506676383902823772105051342394222948998016765439778961065567229504620349118897139419438246509343104909260367004979818660421890636197810011324640168940179407483941016560130815102979261900158261800877457471548654031219715650606230704267045735539935277990131755838891772861273146529621830647257493066235164416123318970396324809625790342984876578634048104442836800434574612010820372582496833057260654436151458921497140691510678555595708036465450095227886027960910141411842485670694404808360784090917955047779876740656147111142808601828687333539723720545957106988613495089558484142934030937174751497129487244477571983490144835163556790843060390577272064284992249019747102118624828986031531209067237374592248384315659748972664749676710421593407939222462287393789959487906240284107194804339482934716453252505989460632905421626884986103861886594515362495369662995983477101625381785643679870852010016233346171094056700818981620628080531220012726572914044824488546263606582039139544860562199254516952312192043413081666822242549417398782145886205772842513561870507483702963024937077683999336887858219261715182272735915059036389404451682213451751699329779091725733115287194596942482938882946944980515502410918826571061566370024941024967511791179754719119524121472165250292990520573964809935955681238105580763626471260547362967868044479008302050289452334205167497753018347789910116687471034393447535448416740382310808718115523977407647892146632488804108209191044675564732010443048390510181873258433678888398039540489666067169216908502983925886870651744208560170389859399375868003075820810198664041814943892664713880619126022434389080411544259911506859468150976622945387003295941567050915559481321091206343946556018949715563837852775866237792603902898265806076189781389361198797768898720464913263827563777410765065907854072881261655774661488127022541740394548072595763530035894073313242626433471621481008506799588657618655422336675120163921345469202267594022893126915944767251772168979594907363770207209560808700950253868339077541477465813083965018552848903047790064683294084302203054577246360046281304385876230341335079949733817858376967478460576862544190862624929554470149940971319687542380818368790054053906168880779773522591471123626961796455836928200813520185776081167563150072674834901702948515529662157647136118309615995245395511783325903618262048804315904717689068984402266451858828753347676312054765174506482423129448271935281007989925985628681574467512638611428698330443313616046291823836601589872989979001320526207515111759652863827298153584423490978887296925419762793221431419503930799498848387831490148434198024434561458662284327029749063063913638764917272565764207119109112952972943250743852186038081251022326463385220810248375371952070571078149382226461887589219191159201465792050177660261233281019276830703732039362468662980809157361008728750206039318997241735713635472374894348701833926320094888549807480724013078463657095564712971575206245461539594541014698966204276710247061788289197265793362636687959166414098217938846704300011959852837277935375088561173122335532686708875426005775122032846606889982983895558486327607239553722510315090786036382511139033263380352689323873771357053030093795170643139216468216110231421927105442485104307633011094040628005989130770470121458439681166064409326519409157582370177818253546041328897627159313330873708341769060424248494762775826259943896154540475569903660423023040546558598944752083106858243947445919486605217164875076920784841703714047972145734665936360041463804343540911370265114018201723364463715962371490059726944940154660933247791318564869650191410043744203498033975558543529487912108479905904183884686465410487246778268523297463742756776721264130052787239847305105932563667977681840091704630225736220513248697724675213833845206535245538103799655790981247524375154162023026747733694224743427372179371577361150618604337678985863109203277693088323520021341885664065651107826738916497273299413228158382411198354746354183377280519431963476233897849228279728473291438843796942077713588889368764574965318187319888101217035442431145619545380936108356106342207210646476657172273027448866960270637738593185535478636618557852925590044243039324399121288351911553798184665489796347674741533026358096195122207038616274148766984654768210543210865980984215426150894354191487022175843566797122898236163212574029851193928744696893081366229811715741435671869228084700179546555393041341331296440616445472948905282778084395074463193786918388695848077460697408087183739168009290747710336501132996192312360550623825355649357505673425892571206250410848303148030231044937500433489363952739604610227572479420559312091757537988768659591721250677408493370139370292034583104753972814055569903357600915312569956408391407816523292361506116633937380460386344146793023078383945987473780336015184194695817560902646712845496653256992538505437141020602061038518374214388764375159800698765854580566869064813612996536388899844281529618694600118369335389922933344402918444191522036592410122841735074349206000964877015820827425859858270554161057370443987433900278828163696063589538842976451947341979223047024554622264617047106597908708619764493789749091269862585444501396338206370836359565052433726288946839738131931574928292085379865537733825863410578089022463450686521008528831335333940347652869283394627410825746080197752381724064667686893898978435394817783954754210020436270955883772540711459514931184857891930136671322322495289087019192615398759764636911206125191365745316418772354879268546216684350109846677102837868403072080298871697921847500072308903319290027712771121135237100616160187408042108121537719321310319569596677734179535485260871709418269673047766148168136069680920318088002170881334745518052058714632507950258000370986866527725138975197568096671735365665693750063596684880567730064182444880405438278277205378653195934389199366280677523529738930010060847559482016839943128734657529501346183667564817888732131732239720639724282725664624479781129021798313554095741980261275945649240080458169617955183551369848858902939781831034478445699442766688614056708626620878551294898900596239763874840597928534905577688012469865123669094002896087392177927444856438182754878007803440995818616233184217102333013715777331078788198954049816077538196398641512773733568502593478846683989445298617752171713820764118362647381260717340247966792208806716789670945410249723602366942356973313752654923851252126692783953575354456391852748608831215607534486140762547334257033250588883432305675524808462486208400991132726069938381619116538660840683742056043404517023540727159355608364439770140169865219009998995806548393692931757553730414160495648046232724055807309413183862015561950614439878509745773722421041147908870867721551324452323169046322393116876786604645909084539754937534289379693449990549637152757365944439668259140331524946331555187230084293196313520058497312725132090724311276451789847493636916128712345224232286007108515002640394241350664537923814322328213745727583110054258857675483545924047132607564042804374211566116208947147500834604555007592154751768591854674467415765976310609321106600902951026307502508595375407970994311310053302864492311641268015025790677489829416457147213446029068143598891089731033901928417651887349183581593490642363367240010332354562084045652749581541663385199577235697169765347754634991512524568991725261509902603035071102716833944306254054319004028550949951186963975256366309638325295692943028826792706884945820175147779780350087750219011098138410286364109302748246453449286242899696115466406808744791414079161638728743099692363640148867511340981683302545477642136738093608654257086474465802754137028365231261556114152874819992239380267591065522701563203892782952480836711774961838160740282488180956704478991788263576971456726479673923161800409076020610299333064634685029361783426134588476148950567333598969524349554192069785178117929906963464062857392812220940562028318696374145224101150217692421588301212915804119282011758991847751973836606770271462302875757676286568310901760447681606170041228206354024706802711800102971991328984397258554986080763816840646928767736294999735081455591401966538009416568261070034943486152435429595312162879741943580385099038565164809472272320733684366455180573432129488556077830219377121468730963849149301152655568859998193291475404720034051439407077226034577727156697964413384532539222498878842041275572790369550848069457357748603648888910095755818663743024523329207826039780487765951752481366198876834257740915480428700936701104177197843026165855715955470052143660080212972647254247822865916827687014958527077117767494400324200815461787065542250976175716455603897652956559545242083250723983450463440420357832699221214540595105680208940977752537047365373230003808237877729170354663711773307581389063400498896662951359877015316751700192413461518970819051039669489716534536495291388348565485215431257511828412091565703397102012671135430437096302209197107187025673437244733456414012527408477994741148310807503991454253746486371606204745202341639967934460588161931478956586129673362310030605513486948417251771366011291879477186955882318567158918257464910077839967731853397904314123403907738713203735633644065097171500942421936248615038240463684139722714356594680613927319468264813657462952101490775675347523599531833336567084205374326647531263490321758793519016928103528525492326985777065486483004643182098404379175328769652648800435630989080198536967295669422219763600713289160560195602302182512854502633079047284429419786860494632858668281665532072989759428084014299539396333365980236504835404236616888328457281822654663031216912562141610434708996863672653063652008199960530261382392071546124657512519792496037447182569459365802119571931607737629646506081494298943688264853504603423808161985779472952669385410656503264802311588229341681630140123219203316025376515543307388265349345686306307141129416871831900926617557004956009322559648290041357103025385403655923578094009633369571238421087153076799338584740084199850345589081876811633213504538762526917845020290124712099148997984509418155407663485004693805509513920533071119960065858994696166065333938297683005858146127581698507935729780134318781131160161331920352876280809056022659293572482712681817285297092779604372704336685626729651351642885332992732232866209266850958624578103389388645409397750688336321764509426206464858232725454542704381677405124511041998242406143572613338433597812419425262877941292821877544960665933391680618028021490833069360863776357461199268842211447876540341189739522859872385709037061539156671559861679606947471450776332667147351409036787511827089450638187475585340170810906688102053523800350695594035991874541407339252491640072506717221433781810253738193537788271884844058369254653541769350594117607657578106253921357399321994255348747481078534771775639846190631150268545127252514331633830336508026593192334667281441625996196934391087931993037250945132898528809880208798267557581937375454531210448534485464116887797976776912347963996804845710946382255289740692595272192874913846035467221562522204424443450728761293014799857998232251205722491926530370054216395304176277717249571234257916624311863869616068711970206575730771095384706355693810015762939566855280784461824051653735343759119612657576713254934964251856039642848592117068064451371855775460374150333299370309716008425796483817089477739755606906774260861692896657257058477371680597516249594038882443948130112202902567136750157578100710295856685786528817777188838759039769614634413965349925360889117492199154905905272940513599835938885297142123465554380079150289055654913616096054801429374336290804801945229091743511851253127232959404303686127038729142195429866835881564947557767489537528962431447409962863110941581756441899720014449004148696018763132763948029294877139792580889687192092225165711805318338652975164434816224114404195327408515905820980482536113598013291824757310366530848500229518318296410571086223819482235888359636134298670623811756174446279055814612424172764960460138723206981073779563410021280815833668767830252871248400865664097915690954351529300092929429073082120423715220611932643669324933561482939646939712972012132152440649708005944663230438236204030942365837748096375683495761449685279255972501606882587134648801658601396584854825287927056007907217670850592968509827705877184682688736686872805502271848589340694563642662834018798678183179491961914103394623873091855411329952125067015037931872776967199389398396302703393264077154027073257973182601411540103917379221281417082660613633407874015004810105955078846539231789859033412957205686546048803625121600194116434150683789947455777111819219343661465325565783880852858911289307278183888786954810034168447802220215395816695031254449298067474949685206445548430701130376163355904736016054990711536079338421390727221245276207950289892963870556093392869915435797571763150328295284999500929903461703386168617340006687305355850575144680027564547529747936231373610908031277709075262032520207950859597848117178016020626526340670725263450916219199892224612230501210829806361808711671941415466437969040573832265204602431284133825087761944154732040584160156339114719175388083359735222280046871366818743146757804910191793139221729623204903268193558154797693493055351883948269743114417475721754868382103430732610062392183161464082087774905137806692935656278357901731059402464751581473043997559781451846059649297060055107735167484963864128795589489179913781787918028561030172402372086435795549643825993197899892142033334639468821698295785483774063418780334764426477032188813132019047814312070981221813582937844749415347378249822457131105551285967451434467862687524558448050235246054896177927018191333263874818133781863407205833075814503429616053672055742435421605651329722216381161126738421602741529089272125153912635120675760220102388710067569760634776970202050897113300410092406327890219274498850011069870687010520634517165402407583831940177895676023247186069470629277994876331728960648141635603702375739134411105003371303423635104657318008522525092852339328949862940444724937243999152151568273646238829999190985603520912052634730755672423709204328531929948332627214431636389473744169736572894388806170078234687429187036169902812632604192972198912167727207470429839659490454425574620062136893005014274191105984910723200566869097464870317872470480989095448653130441643044751789407292758236199637108687745409663119104813200195797479049394076066960037419655375686667207655720106091841931530518371706687533306648539043388366445182887451650816829893936702197910222533820758661778513118087309355653492403053970256595151529819351150792491056281578664035368902274245772782919616103017268924289277987232336489796426493017810176091268956952653094852129210612541257756679907225383245456439245852458560584962149707499204193704612834997275085225468930468293173079570192198681281536708587905952206529510216639605510486898981069852886796155085167034575502282488025846959408105619739641242614397880881908149667962585734495553039890988597313401764907546137722096343369948420074698378876604042746028294520441511501951014777575269647165474581790759007068200809822124926375293041206257606872355425815132663665545974592467470891860141500610514799139133452009350726580771551867954958210653371465931180027830605435112674986559382581263656135473055388696880618068898231876502642261701060466060620065965929879127906120669776198396748919045622988224593558559424463906786632823670734563437611359588748128436696958210534458936437105742111149721393029183024900567481170112352339031345498559884678715246450577422615622626742350960242038922557850227188455904794662791686469965994026147731474720137884756146839155844465454707552019209525002452392560922677857909666451207356433250112117277832374621480849958918372720179035891195103869347467528645784189490023150670297514861428851497540280268476079660706522911068204166530851452077053854459560491157185777906702965882947507234911574379810111835019482948982217512752410110360017156887192047772350792212566413250052100862747851796361570372284306425448176820756183182929348249861291022099249869739393359976598055513437793461705511527961319318596587663546180196090022210725917139565571178122314700840864215265834645808258314555966878788810447399258497064787665640781088823902420956901409670433622771641533116879805816753851221387806680981347814091449961470517218680436921933159533053197705217015802606890143669026520651304521371352819500148541890173733591851327230020605658921641917509357685655593276139603899693781740306231529548997608147854376217309239180634599447472673964145941605990000989074837243694128804024598838569932067060909425203508442658949522319555259446242614144114178404474585860484148577709117725078657568260121373661751264051907743855402601273235428510170005554119694516489327326231861072416028238279573416739485690397250089065695589838355889378314969215940018909723874990045363175447987957758641870562159676353799913113277906781537581840375282568649256771164149604718944380025289889754374234339454949431127915275337570665446858820142422214787619531589247954390690348197938270021221458917823598081148865192229617676383595117500857834588199521178408097644131718103219143959820518740728307181249927741641064109073422330337975604482508391151969167957740719511833812400025665136749614232704471730732777649284450680270826542031482722945086555988069652005108265566764890440626750805103693967983446224798877547867925918408532361704753564327208684872587281058874874232563137601692628592383431521351844136937487882274682706484374372134059262149221204852705014699547582217862908249735816305123041966897512287288703591368726909088815829537678397729185957865449054642464438737246276921343381867470543223767360837907011143278106278102328680348327766065582613888474046448036849055172521706677595920511952070502207772635621077142610009829358946652134666500373935123514541711241516142147971983151557454752315651066957344471072853864995195067991162470547359594238627318766927675309472053042058669100573810397625484589693438308569350263440633938669168462316479270183681484501387630124542531786477233009200333123800858075510049651397367824305314973732785128079549558710387810145291401836103124565237653058670686631244053828257791372918086447261251738230764480845752544322012728439322200247989539333543947382215836505917966912012714908380543921634866369492180356529095578426168866944464535719468633389627039551086713700647074934835044416983595662236583942040299898203565468280268452792135403904787645012385692047119497840103706809650204375987718258779581289581806508944110140012380031510847770745352439904377622252790233630997167517866100398562458216401127558701741831959275753013908868872744274761356751436100931635626147863834270014736647490660617891330440056999672902213606988848724548040888667752400180963170781699080139871593274289763075548491585280554188953399390700170541150584753398429101115003702244063735383122859494077261256245894539283944108071603308891955870797103422999021273199644832291668100223458023844861635107943918003383810027266800485356673354342299219197131794503212133937455056369528015529707277422727724669517007212223839712602448823354369561393257841170879397187589546078322078963296960858302140656090097793844259924087202864868310265417971696730027795274688813162830803462960259509930747752802647692908362951234485957336440043717724256418616444246319979641215749366474383483051049003214709509777854481544867876867923364436459469537163780980660678481571442174081983556894817131649938293676079924803941562414724525390519701993578099894286824020260864736485549986112809732363439745500027873765856356623056030603358920079099985581663478778583178575015181460258483485192919934663986396500365265469623610524914770693501158599331733150973966108532778909762663722583348071647182616908773857926679178953966671792140133569720013390001067952429864135517607519842328870404422712703809021366662016733120737662456981724806753127682104633553919299402534495496575093007452796790764401746321869137512401131612464632890454581636564574970911390613962028992784079984867052510680029907075235165233216247630322075115239361733778514667749705124213824517630247219564735419908564133837899417902380899367454719453039683451019403970913220559889257736139760518467815893838986396373193801571850783346312589998599625869730632211962910018605115140051302672231286541312261031693030303647843469468154619635349019386845573842298650818151521855488600986473530108724327080541008640112211477438229632587499699834464268170026175237920494658214881967023599527274944052079280842940670202477903331055413717026144578934032226808764365319752578071597875469651655367369357817472251868716467978835080105674076965446926093125278379402352188437108086172167069053374305582205051838981214842189288803430108459815924717575859847421736259405194690860185595083609401290733250093739045560922962273918201930216774887529409462723639181172422200255061841560596449934019347744703237050545810046483752484243145564551358542280164574445261961057767778340018406088264141641844143675649006789580706543716114574258856395579757320133577466853713219184715147429495510241961980782655259374768516583959054292819742946336245375137073604359334404565976484934542266277978966415748675486622805562341783856928705802409355953112663111666551056520483043439086215322810460924145118859519359508811174611042205409984278645101928202557058536024382541857095789416229971908708981964076575788821191131229444970952443486736995963995287318493766145349466047658802375055149185507523550011990024545076622839552633642184451880349849254206326309067387493007771948666304276668209821161773243844431292497193641099265030734122422523304536121234482594173720099359014102612570949018727417274743043061498512314120401368732180333435877632590631029632206069920834027332549988982649271026071532285573197559566845158740757326491863319623742993318405476639050728242503361815526159603897719613921503863204313879450331699124988771413237661611444308053960260981185921264170832699502922593524577318585725401030309971222525403817037429785991126737049333992732026401149282498642580025705254627310539370287617379437452056757870606578138102831888604060037154145991103834329095139700271706079263370708622471857505302696376388038848885920562044524421100107657219064726247827652798474765299828942540661334931288817452217757005320857719965869776970661400162150329931020098777145347086203629667094701042062677537675732227973439343022162658350015256394226958897508426978439009309600366296867373405369727241581966227710247716730390920573382002200362968422606545162704674449480106648139132038046452170539801202667218543190390005988769768885460637229113065924468595756983411779776529030155503217511465818303106651931767298911100871907529777433818242842652392030517701253850044013056407533414687199132500195924029062283494372794061595091679818029334146121685667784422593923616141428997068231521641584835986177462983405698460039075495584710431767061550554535764391636004674319344955077676190885166126201547316517711963507513926207814297450381862697911589930613162505774472516664350825464514222740145319001936390080902933593772931829339756799890183559560570572374839394168307056042357221184603851576515658843908902461223592821624852652567145320236263640827155886634779200161458268957371193187913492073590396773462302076584869433058815338213076854810637553833862854327276454160158646451895548829517398363444598161024304479510095475662167460853869214719395917904243950043390595617862472137916487421609408375586386190623692399117117965640201105056011970151998838038212349919203904975482048911243815166244875966253982244228911100125211288064132689389601376790751798691151612650010089283220996522873684552828359295947321387824663801644439470617847366395783885801554797928151970690098581339054598570996655110727738349996632650067705610387182003397212052900321183894287898911866220003622636665768513946145245433719674070973882270909818995365936602060792482166831261526927729605329711247794864222315194926451003358104263370091090762397933229083139311016349786280261726173252453978939468610240323692595837042473960262199959081556481007539587912218605335332420291175644245988887448315387552190127292354483178144784146721547435931695707412223710094060799202770135196982535006161188035611846935448991356521702801163566668344339343870872592193481144278644817868796320019085543794447912624914531150942794805133536421081029102034319149866204449120242527685525784892763091184541287335784750163509022792135980652712557132986726614587241275487040288630716012111699393599069819918334574666500934238660577040540071888977135454672255200949477398791198310328205672066903015944068580459318540363421090076643080604528111002361769461652836549769844683971872196171483192334713417516848335305399571990286257065165183777772450076019438346865809857934868719166375660994723247579684098536779784732028464515675998321944552061873397423615460391609133526186738800333205749468922796190825526595775629212552389926884987974115211364460995895556468641990712118506962144808366740558219261468138029653884139173491397682697116147504544983339960599122390908871167868710576248979767311933411446488159778965230229758010199588881557817817259842307975079297747006370764760553763890395100701959601924504987719983886995982807331847159633245391731516974784156966437816517234721265424965762131103179227639491013470221735654079782249899834964285283980531968992648218613752604052284634609599689195308549358572576227899817526719736765472008860408067651562043445732719585165846693349543296106334725347126675814685690911064178643448776202962374104857682024365877465112739902878631951924084090099078108597702556804801306151988552891145906633670592405769947513941705383811836261721179125432161639926587875927605952419134897892590900969443260142527715257583097783041357187868797450552568931008495163973779225140231456866883270076208018135799866871801862210823179391855141982955090742969653818140993776925930336795462474839993892862227510086825440665586737565639251843061983623497171079274634801191940111872809249750628857498103577492666547236731708035791529352457892866529188176345747528133803734560797448395415529446757563383537145130615389313497217967162035577264550618278761942047622277561592122406535278703524107747744785005150272065729675937598858321002167759505758114889365351986659468470695226122629258736950905592277130715651084114503496579553508241688936111888648113802775973647942645207076040331638441310795071177723017723835088730863170782902417998870249041067350560911394464949709683821293058694487918120356331165886454772046130702191588596001441814205303363490671796710022642667345851334229673249503540443236412119975609719444453662332872524561182016663155159487701259842890869670816433219795877810640784386485972820544809959776360619825413464220740185204280829520507264793739891369368092811798743138836966555019726597247248275733063927553786280974454580996383955857825298336318733310363535356168338189568709454711026518386546061201890192981294931375787206377998005434938244738074077236013849988300164355880478579893035071303013058858768042563057621516648616113745920763504629691680644132970138235845458088135798168310419786334434103249459357246320904766062537253880671124598495237595861844073500488995799995516921579334546148038200437861582032783111766522886255235980402183275450233584412958689946149224934838115435928356773906756643253910012091188203126896911925535888239206192305997886996732525727595394269258011668147838596613565893227109200600968123468298898678021913506937848105401673361444649325236867834071642962293689977823853628761000152065792809701743287822176146253069807955124801463775107665321648068291760504789856886735633706138732816829962041228171847761000139643526649959167272542212910317760769995900441795099011958480380979545256036015829510656054197284543092770044575838432070919174619839413923381215377830647620917276269470881268980241712154018843377697607743694555257279345823154552351532274952012800095839868723091778999269595305597133791452533309387764330854553785622708041984284729081023655120109273844268486140625072383609624296601350643719256346347832637119064634574223960010211982853645302501781829611097875048115568266823446959314938993169887733513567850516239840511193365043400572270881286614402732551485914675775764518014278622612029065157575324700744599144969921853799599745162766253918949777201668331255504937693086942921611485970911799418129467419974718308017867378012778262815537836159625609607776288026717468852288911247955565864716156999728190557633694111572411106782748937894712527117530657128429437004222397038030582560187574571427321503381307051387676953439987384055614654074568298532918255083763021085980011130088358549477160724706681936997622397568106723690992819429427542668823616113305250918438574103972116873554549518158075267666361874197221762797396074965036455870875631173101104089836390777748170983554527191818353149755280897814564080911746956802169380303586629825934617308345978059572183733440920559398147474084976252986020247079808349138281210228946937763742612335831137809529973260113501426955830256543835509915543238823933406425865699283847108160456123355205948143334670594900112889038808358179988837450871858368882952950763406890775300096975919891150743986241576119012543734484361414687945919347993234418486284219593737643626819047850377500011315040782104825010623838986895477633482716299859222518230219202081835678209697537979198211325426014512744987909352751116923027184547602057491118462465668709895255404539936447534740693425238018146667823188660882326117673056996151165737209907680083205449704059927693418639277874233060557049930725971902612127845904852809402094350522251356050808755568507676428210242940064246360761001991752893326953665710888708620172993195017795956036117325388746169950784062754035176889858321363454803463900881345608701310118039341973712494587929654397881293807754235945185011572298072974328530937980566692336107230920075341745052636278818504756754284905852446594079684179132718638976558985720599598667837361536317634922414049212388510237661635648842913893801111903637101479262016638473714740678781440061622582683283671007557425645431763373648080738868514446597976543270676275304330855068635703419907946840622432441738396023929927539125080459076991393517353060393938469084286954136299130613726156885289981747845734558002331296187334079045383279802208561779962201653076327998928532289991882735521214871628111612322241319632102448767277689943569955208116431131260025363742214886364466650056058255622041065372799718272483811537967925770471043923844680842845109503508978882726292578624209409270498269075147730403126003863808136878588294460235410729585179228515531005213072594452177306047561728380748859260275463189390917506144889067521314644873012877686488819214795247892024828551779865020841940986284395867924562527608391309382768935595599168581238206434539205846689073963376165892356709354219679782568796933923532741886952093246584460986276146025496042417794054244078950516645742297360298729103586410315533525149238990542516939250642606377610248503298188261179953211925290396458938797351760071265440336931591734196800812935169757916951238164133487215206396905698912582770450492299974191980063850138847593428442736641790151531962179075140105372369765876869618864980687846150374063069967238525944484718926441713321573148604367682717884516747899428254749057192745617112170578643778588628572351242067552374899604660272212086882837356906834854415414551233885410576024140081241989022247885136572013552498714747789880373141236370833740418194070008155601581641898027262128398787210435699831348523634556615400396836006476541782422908715147505075387579986965759038135443139654347790596735004679482356285401861019785593726303266098146575189873373080272949460800831451517878246181606083307103702109936422692028162798770305541320675371358976185227817044839143172972355483106331028269369619243722277112691685384638824101746420299507288828900598300711330695940805670408361332647418891144205541566142973351945579642661212671866475279226413691650236583962702694702629419814445437304362378261087499484345690807904253001579129299551435805530248472660116921298887088160367262405065315030472764820917853744453544737850975151762798318494899878100829940523352582554970624481818070227180075599794418178310999181483907795389684050303141338732053579159040168798157989133805074433273326296094731500860804123406876984800034537075809304805645253728345804566639838307221674818054559524163728255330082382868892315244179885951785905699782308530181017109973405884575573416361569093579717482418682580907650950095650529745742765801150917104010029710017052751769058510688177032062553919060091851539379392560752980593550661136215384916317842721049776418911378942324437530295624809253998231639345267570819189670768486442519813405448483233174794722006925969227269215862487797622516866910162180123219701245402993801354203303717566072959901470358713080368326120178908979042857043219572513048585253279994231412401591987319726409350223016483171919898914044759864145847921457635146114507489249466599970430549888532654079314599813240274624128900157385756910495394308041611546257090660447172701349432201688501929452879502570528560026168074045263862653023837643604834630110164580330969205454671912832629310955553510825129022618314387647878409039006895093312523158888347310228542661672940195277308623008408559993092786063868652842414136843150152837711781733758025167210571696937723405989480416209621069107773615370025142284285684503192063280379552023190396294242573625369554819089912239251988080833607218823276383573891316542695653473222218582396800390737233444722923543350039207845182373927145299487576868781513541023304325462746135040849729694925916449481016690365462055444395292908695802167904088492721749582504686340796546400512528943497555432954259632988623326224066712850902084256703662011445889056849799861567108640824374001337222603235862280770605999242679737357340042010126349181212676721574537332759820947007389680275323874111639724969056710172343357520498422451377422970249431389182937803587304704708759612414828861473989262166814866319848885580632830358708329855408102521496398429396978100411593303136520756580817622866296752841654182460176679643289641931147644747894260153355791479025803967524920939680012767521123243069752093326223548499131309470516372452178897115919666831593223237482484197826774883153675651138551253776688538668749209594439461719495113236744575703336054754720772513467618306469853499229155937254204955773945311659624878034840864574613575238269413728512549109504294322852303243338611171616586463876863644075614269739897664175040176605316389219565259306073532209106576878970787987585407422471582664028588888976711844154666491763657039974231970407819737125754833435353967344609160133867378889624357807545389170073772294988608071938089947457870087256513998865817668791593108809336355528832918074248156901342820024887760598025589413462280554307046076700502614189205164654388082384987477570674915296137920635852396630863736937413957470704766152335454777275093254525074848148809032474616493523790258237198311645545777064634177354031480669928563799731681578264741447281384768592542006875097816059146273619841627893019968348479478352760820799408620582647697128063525752466442202004466903243237596608111205386067580534393303320337159255046663036467625247018239338349677718273144333359509171531851102890272125596604104899191221053077596522121874167135864671387168059703681981676062361882218608989062459086008558405386504231780176559748011219293871641937895178276067519470354376705244009955427551763948279165626086248212112111247502342851492447229235542166139790674662910883176415399653565791158586094349578930552117220905867268419200145077890467723284971035156347447400884253359425437638196911905628217571513462117445988719197070191329442393710777247235364642327953108969357146535631238289942501491916248612011173223622053592582934966950841745673027364019203855848165209639154358785797638523428219949526554338872285107841108512028685387435038057721951244452557379754342484364046037021461790269670868492686940589332312103311565806506531235672225229332856011278915852679145843484515711186457967125871985257750627520002706619756617828563235505968127085952402549456338330431674170872221603009203760257011573738331884272108464588775201777296136196327716078789704682811622595789937768890866536186396502767670396728542326942752125331869066140816384151045566632134022524878659880480650821065050162159677344441656636244417088873266163414486899548736168341182435030017803164246087530181667013125405505876982135558404958927846451307119970224642900037343391905455555708333286420993270792951748703247498336028873091752312093399915647270521379290849972336294694045213138374000042774851221211463230205751018739574373353953096765943471887794008371501406223583537055818883217225945586440892708832748906239894407177186973919621319853827646473714498509708130033016606860390848713009898559610322355808944763123965409179382676723393743925243432964967628887348284098858461443740382553035844933193736267643166786819171692113942428513031568292909648792893253415461187473263199117880306652851143133869304764724766506434931267240117806466836445327748394968558005756125970426155540511138583666787258399368167495652943309654684659654797323547550468333348701284796905660254084455072342467487345461207013341236572654431117303877226953943329199180591982340056876644625594756143098044292316585904692040389005112709387858745332556482418228180854701157583043613822916213245487301808500877803113465333806066496502910956515323448925101068628963975132281484649497538747189639216476406963465449689948316254007930071327178371962005053340303132377984687408252505606834034912609799274668570604719595612585600722308454990516629309609458982101991426229503916541196841729591262474702987381349080877113920199796376416885592286647644675483378633221722046687779549593074069984128871202912888975914856559745980613274170223142224639668411581614119542071011344772281903644741510098023284465718269757663213196721257245826999179771452961695525088789410970742625092735449612713654469792097977990975345233832304629336222683761903980206629149954893596447062451421703552498815691272639118481014962205141898266262470595165628034900811353042483413098753367285730259067770317320300601126392423481250245814164402500266342214213996632363080692473539141451089700671909143059812606556976167369212833472405020680352094364379108416969937174027598598964870373487984386500084799630238882438014796347373530227090864701972956457417941192721292091074051166854850121132030128208638303942094222841657175919138833432917838070607233933752806428320670946325969936986730285904858694839708904490577727212031410060884258373257211845021979789523115111926797838449641308789811779150326630846444515857625260493845031321884307817503125461565491360616379008567588993909333272556084052276452696378778566387934079183697591350523600968088066862053949093417664434668395478088610726936511898616584921095410770373529993330097040821775016281748937342650168010314030330616693056015188913076979416676331881000530285088294900952237552693490566124749597317769991029679715189757835420933017104890565173579826660658104766166038127677751674767250689451543104155907252031249780890826176821414588979899596755515772766597686954371617808074456212273712226607722555242639624054941560136146513350502961051248529469382405169143635691766235871891323410282071344868526688119026390368152993233829120727039258907679739973791111307065154983961859206446914942238044804947203806184600780843189602738324977367531732391258736522607210298293357619120989705068250161168192210393394934372951829992408535494688046820059922625854067906417160336452385991658930321677835988222901313014639963582584742852777756191967784461578858042546366940000245820450325911470294734371993907253887259193033036686023656040564934487079763737122850001591124578534555172537655435226293250426441505616246442621661891985153538801569268834321631125249896499567888746525430621101426907847397249788054380521797291299994252032986807650908502382822157661361534539984398027811184115914046154588544393838653585871063173086385468066777507772419308211704207814249245173924815089055899643603717214028831132957772667214583666320546814043673529930806570392129930141382416562786629357178259411869051939663814449130754985646781483936863924999666753496941472145345631585594076916936718078005660594972932136469217873084714315708582218611916867048495567397174373104585463316884859333734752415707815371036494594223120689101153534617791188597316106480960520305345956691841918018196398894447958020214967194535023263769650223141603288320490165987804906481825372753174858344323003573474505691495078178869539483731376222305392887714711235974103793728141812530254702690438856609002409173675869240789942280624123398557468082816032283870146910261368520368033815708709329756223537556081709233111968798828461392776241165674219990596212719396913043638585351924411316716786418202522366225184817448571621968213732191952411430415103081813264760572791678862744127539635522770379295422220984281762948224143335993688379817674847355144771238747256304883720329467808397396095572143604348968618387899700558307104208302601353860455402170223292432194379530219849431442317032721938473600777415047195346110641374396713567368516570314591284794369465963462042658497162018319220534540670355187895352461083934407340932885358404063572061843437431404091871148139542866704972795800333039629413171852822731205992236556127700548086162636590802037931885823409154069828946281385167214195411904316470564728198331444209281008853212301237074794690223128736133057635877735687572636963213681889169316875816227939853465772697099318148271842904335958963499170960531694963198685484371874132344218963877435420898953925184628325033000358087746575026576199385133990968440903134575759329381278752174964535285132654417827591324690547032309687801533538286201622405594243646985091718314270484644689631154878645103321417870122353478933331911914306660750983362739770207366268168609313991613232589315934878004711055909708031423090777469313607681851206765824211321848737249727881989579679691302062794730233521671388155642280497761265184997153525608826162338565633292538620511696543862946939735877308838677593496710727739041855069881603091978939781083585817417784765422627028176811244337748812548527255178600015299415995638433146385899158795453686711665435774424006294493392347540566700183891221711889868815043822852150312323062625313233219875991088766014442064030975886296996429195590478215671067897558491483305214032083116581875006538479755196546697747308656548568487986363160232655250403898172886803489447416180964871121270195347493936165210763811874229854081050432167500857788163686541958724797425297717837186049839955727436102705300479161156852160398793215515768944078721279546491972992977690910483778323324159698951247103278253007284921883414650479666334180665378110568579129555477842390907963638425978601689625385721447179353938739759641081081447770486299931946727185568179803842002350432140940421112587788092629860494101666404221642166463573646168704015860801650655135446967118720838080348033930354072046008576974257227576555796952119584177570025848577564184170864477600602220028879242649025501344996107765178906009486326231759241041737595394503971098269386120987854462104833450946845448309627773016838193082452764324366481847586923631478624149602326074281831670730030671029571417639166650912182405303179703128330173353695622403419490012010545359746675862263566548649331196690759184686597761694950137413425462585154159886076092175547367323299587244975587712065826024748287391172755241354426977291782120309602884510648311988598500625877956053276878399193421345214372833226593999637722088885499729725383475995016244894012228826128062955684605379588647129461693712183417576215053459019355412727316169866318092740660108614026389397470379807707770637483296306505559220002863774302702693875874234139225255365102995852060185749523374808304026566841641431315026389683120008095270499841935197992086304580134345203360854097207385593988415234436414142183861303186866005163273188189071147666810317150294793766913783364128706193606332232606623418549272569840416369177309915519516463639124305558470855887002088091829701607813429502408997745656863939698140040136036582000358773705550386548842289083672274609548655377386627667601715557198409140191208194074105043236451477194522915596643898544289096103393943497224184144541704768936095000857388881516960153652265976447490246792129723662227621838496032443240099356304599812292618377612324208145342236928941284194999767562758175247375629901484474997279326388152678408290121066627739816616853298727839683297164328845106297701639977777455728407759233200715857832072022123618922275503113373278118113200382153580009450647246340442947565739409312407751347289219534496632695852900139742423834123000938575833893417179771489682579589965032568722658686264193682872604740275705447895295370722998631850999230257149585491052380661918233990214279466411883379033850584023652837191690072422705766774457251650635204533494219133181270715756518817732326205419941639766354725786373027810774754180188662804391725897805343603282381672189576782261395419813668713256203985134995609175279412589410170785930328525871465364447246523619377973631197876359496913369457826532817787077203837824700474024527066911393496607356142948656379008044358810655484818107803488739444714990514175403402067476998369250218367366458470372583315577229744476643856589486351911663050974279841247002681186321478830361220841774200189635869718504144254978265778483473425537309816210531681286436984554993394449691318891647970882637095279430195999012430848180070364477577177049174134792960043868753508991790193330746356997367348537902311990999265975498646575612141682638954215317585963626838646136805940783611508558804354839406808145666440456386945258702066605190953618105973658975710933572858823831094147698853336235338962564160110052511678317506342092877096018924338174698579220879847248894327297948125381475122417364556482777439186535729669056138722631240821688019726969903156565566830548400544024190106351589808662026325174967366863467351948585039276856268069508435271129663583991104420696569619801849545515583899416998480852470521146670189649553933034407871398726851736497441830629654629311577686875402587726038348093276853830045953149640974517400423758865031666387013118134142836270513665671611671404219903152104713247527964466370188076100329194773955119026614856681131220021922659031778448670561617810338369445178358965661272715189079317162538754627480961187167132954776174573636647313942979025259681658732286081932638158721844833323012137922016669537301528169854206155551782510821595245760626252302501650211998844686282693620915050973095847490186329494106722439607143412111333066643178539163305756196823423383751349899549496067266145114987246179105449161933144485550609619378632039439109672158452557365602314250304034763595159517983786345991481806080599737141394612984163799107418951085882872868190811863892608173863244712252299238507996510827483697191471033267380764230230014827533483819035157749346163461968262255732356900138150690899225839777081513109534461582011547246895793805298818047260435643431763241959296871657448417778962558780130410207119767925947172934736344306515118996518135115773210288007677453409274869366439515030317826389485153083470326189777715905423633578530251872871516071480497353587108761784561008552511993947931698872273623259073739017470969521908512102324876941209622835215610086056632112831775447192578032714229855176469082536025153681197147051721196058169842221183494497784313039861845713549827357313654179502416948642132276132730210735254301638074566728895479609084131902159330381446575541956196202433464391302053900029142673734442644991467855693136633798210910072795276464712668429810175986397823717576370211736325555663076988049077291461800309980927942183208021162341288280118202532105162181114892061474218824110629288250484433406058209000426940070629732049566407564975364775159527245653220414890967211394818418999840904458575518128497739653071843027852200506602380926847833892915934525890641494703523066892028585119063765307471838955215710552601678644981332788184234152510898017382161922244397021550805416704418919877732754270659603414640656318255291335432332801474716313814382516169361799436132458940989047456169239823854913395761458925346614963464075647640913809017784685725751646079066991881242184136572956395603988656075615205569160358905270283311216498596176398674653466894151331264958767010512863949710262310801787711408664276329209064459216739386187725263268279706578547232740914744115917264914765009596284455889676157523739990667734201359138592127951065133686488174949794486846632908849688310019488428382401327155178325558032528536102256146433089632773289303232683234151939292993805107341879955513369610772842823378927798188286380868500956828200867460496564804529454670436418291591459604766027070236925944806986075536909882230409872055029710518309080896331120687017351191070707518401481291134764792579826444057552702339100201235331399279850430912646887557093787893681443225012488988420314970451793586184900856153565773983912448018842989870670758545834960805924419922361856347799918491121880307599033463047901692341563075787848753503363884374419264276901556733605855634479702573623375120522926014353906988709594855779335190799328504026228210753350013533133458542421988214512431063571247728561832819600424046615407095601771042944609248761938329584949320459470219253106646941014281730220536211808334733250696143075483159375542416032301018500158304351378473209863415204076064911114699126361326620579068771766935037802216626088457511602532501451449215008344801961550491844476775752858614254673411295573080724933006025890781194016620747271479169631632808078911763736342208203673001616134590313614494913695709979868518841093564994830360164013403101113201268083366065015268376552712496403356711020704939723617838296617237899689561528038877856355082602077444800476161426304276189268015228962192708467576444272909973162082370262954704134051966711907053191672468031474030162902076476866938198816697355735605257384964093507714682404287530503593582182952002944241372985316126576513945258641980009743551850712095808487373706047546323198582988373424118636409366892428500623421162930034557081341926648939886972163199035934555570171833115145848678591934388527462835986101735437455054333422594430185810269305563397851221476163523755181787984111283069810374220387666005110863903599084658947021066185286852968347134223215704910184922038879432647346728007062412918365648977114972253810691391286921237489143482649279441214604941760221412934305739034455062091404220037860104810066437859127095673005702774715659855645695123305172317686505970320845484674749473632598987174674681129245519897222463619881729563430807463754689696927079199781898996532542617050693121553795056722584049094901510759898579874466695712488816473300387401622867160054992288648689722364104287581221373180673759872853063549205608703878446572215176305067415314218279820614181326950996140855831243832762171072577392292845578291157882043315214295693438229797911098077651287409270001519955078708124761541749766869421327944194227180999823930451472184324626300245638531524322081370519508962833786211330250210653063041996001120133875434566085974155063116407480754425430911041466602416171609454827965814792080613764289748928050919590041656452040222091540807152450142039530933285722015460835206101484544058785477237539922634752688643500141919939323002948428328431018098899529639892852946503575533037938427650149957801070056946920681429769682343381455984894403217336797686985461048086654024677097747540328952861574122625759839551461866935889838756456619843748474728481306228190414250908228325141174939484637307005514982367410769879753626614356547903791792568742589939922746955660293904463933238891556721226390705161575626612049107027494972205668376707298185094482807030867096826736617983584030962210216896650299711189399991867648477297717098829068779886179700493318914051448467454308718270993575330903910737206249847998795297477532479879692788413647914059862276559216615828576842973320000902024190805290712890418119825725651072941245051233591850345493474756278185498306211843991839625656442509731745975806523159090811576603685354953422767423975830768480434399634699039109575962691556229146539161325194472971132648761671820271826387954539475824681926470208925302925267205494271808633220853396865601107344344301027792636412176041419685310620124450164813980546414190240329578595093617386068042096901035984051117021558119393926928307939705331377591648357420244277003799609334430530648545070411329619331769754981283515279184187953637492604828840829824115575339264318885304928886371497616766889014190011553573979326715777420095212603565787611297349978246426220574263443647814849650025038699477818341510145759135535221953309927147295949968544428436473383772867964952774401231723405135196436763457107811387201169345000554454637934474184190601046029972963157587947878697473535152227892267952236295792701870057714383142896289205509846465838121449495351943380342674097701415558356846222194865000981736903325818337426150030055882790183309283301247556570837717274687690038594268868525986853273884567812696666504391367126421153978130696105403387484785690555471929579660086527891135708166721085425376000330700263886792030817736489052640381641334298830323910589374283377283112877669377628859903580014472322817557264503595673138590775194507183770573796759172323762028785868470148708257590652962666982999419167163957198772148294248817057990247464355219614716558654175155526645997154262376097932853275989684454988751304587851025625923557190887468121076492994475725213553801689661212008744572490191947447911380294853271180827185869433551916807083292375268422872633092794624070941669826842508284043893369606932646415070167850360459402813137417807958507801694027972226158538519361294097300221303682390020297738831979223485600780002782979549802441912536689520104631165196326135838117907848698551980659515967225812044524175272731734668998785792961921901154506997408256510940305636020867071847745100681640529256753536594501841216861886345036247306897867505574105474876844342394127439227488250492114905225924994450346741762988112539876644249708151783043283281955972257078024422200096679903343259394364871257191483673091582364427321763203462704513033044853616636092503184349237550459979135815613128431158936370406619648932082547290263434890717553316795270907753964638249504501128617309370059778079363203434958617241190603474481967063901428237917696895131968283770046644313213208136854249798254893071696425142458337339213017799830609718283493764281122790907638729038901195976118548081333331283135167095254378840901528212599703682897344721796731015383518319497746472155113574344087991685788378933180130140532583137957736242713438742033078318341771567414623913847540240478276202811556084126511183861586096857908520870021272570448937328424122245157543911137189564594628473711094767420369346001128700338018920483128828136208470936232606617423213772911489564779617817522992181489471384973355937943034256562719510010375730137660748208465226429877096592001729972105644463374814732617555635599816137722822400125927314922835929974512813854319879250666228884169570173884001839468247922652208728435481056380140953873115657664098443440868821737341279002906458997263748627909030990028983092762108011189074844801822785886837317310079190923299168069051733759174231932623740557300804857972082666069565666779882584243902570655220418042794938363521896874225926092288512891029920111690624314511789215430413967124225962788483544619573658969830177904239278817020405777893400242563981759274803900279415459018925872360667334827826505267264140641626081799214473887776515158492381107104625424605063083637842700999563440256624670292255952121169419853110828917133334735180419144702823483225298815932604685945741554138386515967048976610393335510123450726791590585721265585196969018162609364349819815877146750417115665286845134384854015417762831239849556350606530414457641488464672185755367358795758012755048122157586495316380000308967051230713018660230831979516489695860492041411226194912392657458973885887708345155904124302179301053394987159792926691745132757269760982856450005560155334027363496363276429597822594004233933375235239769088821908120707116298828171224280128540306011053223817587178382285624762967539301915004228903577329418442837194296762173764223796797378299630821572556467447505256832807664024445153270307024692730615908300987194572992562801247121333881886730766387385237515702244128603942108494197827860278035705607705036672062015522979031741606420088647421374481197195994043975917389107184287023637492791499637433363836954878974617973582264139810865184924617917593666424020372239503695692335502050987646792982752016470899711780649580558757515252250610973492497383879413391104437050716981626894559760271677348795052093843603670343693243799633864346720552393118589458098864706377751558749622282005273063987976119038120474534503556237304886823565747618374750688669449929203277813430504587505327794808445607648939900489300420122045023693457246940495697956638320999044061720410923615577606621170760468182921441713289325489133757651845742942296221234950047899868424316646014978876950049812995572388129320109459745276486796948059546693991624605173577064490135508383545840990202844511926753770599695193818132498188717481414992047344935396660963694336306544086887008057494777740765720893464257120014767481925030466509201881781044652907902386703929889215680878692373632578243267206135809557158183273525844151607032488119362774025441782682659793465329009536584483017655112333128967674781474305308946796019989651534156522500076807733748235649397932837848474535787932751416916140163537460771664944802030669856773317782813643216009778750178733802125664941652675420375317068320373540598109221798629365864007718981492890839204929080059326176289158108356117081833575540647047001221995265717687029130486684690732269337058253034187621162686942941640374694431061887319202800666107385113422942836846252380352288689964616639447592407568587954394281836136920037858845973301316745973483409540508390328139422572162027776447321619868142671193914983546636619810371460713944031555596904131993932412794463056194195455448301932773136222158388912227660260483759059524088976269096754973397128523012009437233017299159194748402392044314718969223132762043738318354327086001063990980670025008635838493398281883439355600472349569048735864005628033309453761273683476586538665977843498453680957708433885378473856439265378394983859047848032280028427283916598625457961891051588965025116121724930447091010043053685359856120742832196024643121525905008161424269936251923754050691643052623014329094107870174531057511701207690752492847197859747112747222506082747053658903761460422052357313428916155615614040940161120886263508723181304989299442958057094249689138727128113972398609407474748724288882774983329258034667099040780616640345803553517914495502509899440432573689099234991279896714490862240712316101432204131679600543445768666166522368097389017924789415445933747465816783997597614906895641916155123601526638553892301110016242348245073121583935883908140457686675329379836333275445569378283065683291614910671514615053280058647510886006908991198371115641843061900599399891014829500701829874648200142266622589043321681236258467374862394726255491146956419322541614439250697486825559028699793708536794329632102734196055105505188633365671198097253956156444624173294089108089557511899240311453495766827088915919356654074221220451308800665694630434320202412421990102989348904668831696813109351864286330966867036618437063665744127452617945026455072504709641388320259265377008746204239772230590167367758936174074310856194205329868959177770802625055359149307748618624635832625464242346971006636419629256808237695468365458614988980733689305910034367869653141963739527216745448371865358625351327773193050248195666627988754189343653184091469896950552395464868893367935200109757381854095175544569307677752196953626638680974292767790358979776170133554002512923774594314731805504984008955381932544902352425540566479267407307554273319179917525719316488956362520495916526304749416935071819997108921108304294123979152749006647327593873374944579504833013739819428682218110041561362585130064847751423196458431673612596011792204989822463958576113516773813793614699307487332556604219322881327364912001479722911984051921261594206504478935814635869414879205228446233925252709431152359189095674775489158344782777918638910875412828807038805552850026229235806655064834134980809330406486532847583212609952887526096731959804420828218062244507542404123196842238145702313925263789495231881147442726948403836869472371593019362457306343629460337430558026532864881079456388481585908065132300644719299033952877792475779437706418262568400198725616962494912865087145831763923206673596987025497456549138606365448118653122526516287751303665815682369146269879928863149418653913651657453461428815475298660356472170363313300963821790727717249464624878838853607538480630643179679022748985887705856213037019200359907379881732217793554732469156550974285420046256273956475088648492096653763249340654388416609050677404292855370173356477622368314278406477337999919323161821800719672656162898505168914091536858454194490311966909198466057853991682274587314208524998067623077787706376667503219253776428998106811861497312419334570173369130708339344156551253772435230661434823769118383595491126460070765730268565521154685207698589973189537063447719898808111170588116831645564519209397588799788133890125460194891970287149934566979158471306046946568231724415357567524562162452408453148494398587375665530546007444665497442488198178891146261118013910402362851680581026845884017782082641943556247397425676670463890548721315642862055751009141121641342475649124464560315146453005619776492605946616857047402013068371486046234194712126121849021328445091612103571546198530624450734343489556643850220323321374917876288741394334076573182996531075470584525356112282547731564224704362211194851137933933885711645358243645161335358521649825766232789220933196815799151746150516202758513855365872303395670740724790759162960976106907053441869684552952868567957472312054276627477949321389971161028979062520039582721495898355389490488402298547479647923601281406594415380849690741205451943760812763780321225750152149236008465645083245808901120856251247008556699233983687347915592236929723144772299100297902992429660507821370724020092468019945872805387082820776338217507745523648690028548762064230960691395313124522133862934469631817100476332631894676068619699775655229989014453395878302342528077148815880711593884332450221364858559640583353428555523512353095278362642994050533078862402735914009703458955310280856801007642969797506366448447386512667292693874760926131325956188939086474609872006014886308712058777176033370605097961151065975251964396200424986172427284852440883102695258604299845095827908673906279867949994044002807375425641822135678180314805085360400843093978243525748117702590246839174564649954766425119563916263818730608586549193026527153183633013882979207274174841464336215430069032325802641215869957221403661252805811588335515549834720015873267781951389024704713947210689279232098509344738067781661571087627685428722129857823729568871803533308321170228979864771948147429141448959391961678399519483871531614436223718840531870382348584565990982477419760878426403407626091957853648433513581841216362128397448606047395304423787253885527830956898308332328193339874530625404869517652835723814778492587424490720587763805187823336646002163835057487363993025850567929179448892092884582253316570286085715494234150370864142921648135677526711633774739889484976670518251564608699190959893260416899983752169561678305384090613090989285160279198998827752594718835257998388786134422949959340334917975117125869844803521332873876323747528281837010770736630897243710343600458858872837492895585047555203243555664312129908559543031164463941762108845129090930667453273922180439637107311530900224654217549259778944984570684268689281411855886582440440152798206924074784831579847419137677880226469157340372248579131258785943859975414167978349486123611909780954796100365354190311573042512614885277672355945942367741180222771483537929257358010435967415597547371328391696756500567394229163376619747120522709215498780441877768090205841851817555982025048555463169421301774942067575512132140010360417054332105030535809764149678155823634657032837067915197412209654970982129922297635355169554232839678862156264667138124212772493715901794741734003044668240885379488844325121450925497332937043346396107239083434774431289496623844932753942748230476531506930825956396388065250589804518165738346863545103280675665979047164727087290966321923254301052942736765333089325222438480303658166802033484637803770584959316853357462848336391625270724290890199600677662985471267073169600411382286498683395048954779849281352057104171743295621110428449628136085477103979797715362927369505790632701186896687050927635885690054751338561281480307401648403532567316827785182822235003336832384865630328334793853892465874253513043787117088414712558005489818957185094213012759974893974707170714594305348003631681719296537054678339086160132741835914084559552808029241240412014083165190419747296483462666049519346837958944379267735819425456526618320285021805641383488271311843450391094615250038489398877233924162876400816450743513301455226506048346218728503289476167745848768710074880283552619090292393309246069635382258395694896262148769684538938650628536729756025272910068122714005284887202832979797780579306931107447001678732307410310270360096915987157257318705579714966739248927397725606954342621942619658746356679829298268207269821735204041452866149417185060096321606481216259182302845839362563333078303869527375892409198385535668006239493637366383238802590141923488682637956772642281765524255176784424758370276875958335693527269487820480966470390177991703918171805079588658474538218021612786177654809036847582572828881865515527493980505147035168314096288719082667271633720269626289267880844937448711954209517356459109249901688148105223734227927012881283352165075275186291071249820133106525750794669315239656960380292013730932087194323961488869541248038760071718291104768258607919459475090301918925955718040693031348292532681241401636742026884116572377455447528633661891943053739969636719824467582251721553281821501597064866432340476922238054884361756292158094363427016553490920493054691799306656414486201996187740116132766291496308576161461847438856559351987319497632218449974056978679588382617548250416362318222284516405286688805261229189234190091360085984132344281888917083599997960891703336212584626669342095757517104078087948354551658224368021155333471572219198586030702358072180107176683648446230830416437394870452216201153107309739744342474999069965018658938058025580391061723082954408786706429033879659043436585975237506823702631173857478682191697478995283023618827456669421710903470365575940814073153888433458722766735173569034131395900039678447742920247503203469380555374216497768754238120459733497630295006582198813266811874836919920729106387356936694282873892480438139202482111177427650633910928583126159139387427683750555207884182406206918398920951086512271878490677962973699134871010680522436245390611793420461269864999340447429138852697630120157812712476508917947435424519565601855719423669736123091958631015074808762163115798589362788028833399363170766281194579410359763471544875463998107997438838919029179785415582806653876335788740357675693729720138526964792100006557532631676720035663037585278665065620056064305074764576495493141338238920807179332320712051547524159652140076896912019167327037015135705962701594728855548868807305309155946181867596276431346410513879836647475123100384011154128525783264747785932753960486146994539730073609177697877195928125509701884975646823474625910418976664894146693877778901267848132002120088497454832920794062818401582370028833245259980087691482536757066245272661390796933750612041590155016857225288421671999315958992813546855653042033325946561534431271563200075077047194115295717863220882169861670366157301225430522436573836706236291951718941425989864838646184551391482813181732830349757204135315049320992391615619910392025780445775948897966312438479208323074670456385147282191364547057253247537918518941716701136600671393630239564655549458080647073938801259608755977559987301934869673888423067949913056451994765071711618880170977611261108376704121889346058546468394440283879892195332634259205724907309882551808414889557434038381076946298416057297275332765262465671804620848775502610981063513749316398992573775001833989849349398475859074688746265972543691351409388872412305340517511809023382595454235950784490824988212255632513594661849872446541707978538559573904471975049120703681738491073779184830478961627959200054184845801530916885905896622675538553263766011717599025237644145317923064334448137304298919750131160676138646728970170051696664867481521616586758365920962048084699056023060712271966765577017215229347688137206380740973999310136111701695889612180107144316841775270962768980170348599087393173633209670081796542104038776509927565270509466795495081984730815643021367517012572100762190063802305458594346283280493145438148794386707421379852055033089459718930078362743520795247450410130371958361620672087414241030219012084408272491561454641266535389614679394776609968485643801849974053436784610484861152398990188975648572195601803170845591663164180051528377541403809044396304525042146880429478070506455534913440801987310268194367514155285813435181429005683273646188687174106715443738025892570337090498660828294743649890323825269708414823142770587644489478220031769820036981660816860956594332015759865940069783265337669442054719707575311343854553477437566380160872616586512557017381158277329561656389641735106862670242464619432137439354491577794298970137128678989477886343640494252395196272807101843661527732695281524722105642268996517504607529890000925386331850454146708490166100553509022381005236295968000903953331922793501721847394196697278576515375273783777008240973734098264425780229422613989247872167528103914758461483985561266410581511952493001014754236130873192522912142927570856893531436964572175878293265835302082238584105290802255865804201995860995965370192177804744031285805344785879047099245726303507123946767636166390206334050107210551655059855825317352828089910739647140304727523125406287445822285767798856049814392023856664194748969627934170662354014325760610629948113092292558324570608670913550294713745602554277134740240599411685186359574102653557675241714983149264381354954342456454769070047853296972814938312509917131363523422690402936483845031345259999955294321344504068198737204064963838736490265422914196170476019083200318076929551859143633188718451862946299465443845220573291060965369235399026547227731076340619365967899944201061640018136250263490148335467988362430638658481583939780254592737017589239764752300700749320394776481439165746686898751418615179918755385274196028083257268162846128399614818246814125494789599790449960903715472553624102222008479706831894190872523036388666200194016906064091247712642630988350769408987590010958591733091373847555386022877672721349837248577655472885893881760951511336582809550241330101010967107631671651141187597449427033871367941119369253654951955373493622897659520555770237891852831050251839519503944872932336237618155095338546247952477700324384699656928910604739078209016166105823405049690365541001783955757933399651368634151245178213549523052522440303416373117716365332353604192147881291964446955202909495958214011162774703011043978612262248486573881456232158336100526958003106192080611502784589934611817400526424694479810121530494887060258835674517968779663149623727296902786713396829799931702760047227474940125825894704127961285622258643726466371708867386829205996607791546075128841851973219462435441171023504766840314948044686884979700310784244215327225745585091984584217191227587388209890738430462489686984821290597311460885767241876298117757018643689763704257520265508290673153146833984101553357614350163337546572449603612331705461634088376896458829547894733630668387804710715624137247026188365168211712479651608898526501387713115665915304155136834477897631712776530015519363131415498841532490168361352960059254152167550295790744384105863349825545762008882482990433854859585737578120118848255079514295301035522520079449474429579624396342075408357660587478098797710314782587276965802395007867587938240848453832699567124534405737848029649012202757085639502077702770339581673724263829996937483141500995000202391467655297218071141462747727723355480265584686002367825136005357915242424304140468020551914791766126338936501024786251082455973964230013443868336279820389817265349883982009907626285098811384665526707233168460119819873431882953752444664249356389734981956607996773290423947078176968719102785152835222928507299730574896767014452466658220933945892851790396795180118731357442375409389193521062065158614651528486630483694573025523417378382014995315331749346444637089567961179334308743202701624472730441869324816247003748247248679940406611587833723468700687155165528789758741856341136669761259701143206112273745599506750223793537833601133271123325225408613830398606708372620628681328603672858467186975024598482846268469253880529165313640307921976245606502691462524934820458577883291595755084986380052755557962809612775543055312542756012308124992811388200384582300971770715806564851112742357062054824012732290319055932307566138305470057799084695471265110567474748211468776789684982523608855104379608610202557111424704476650480433934612023452190892421065331425338617940504969537988356647978375653062300512132818589029901923857225437941460246451081967668036331216395931839639709488494744615145123400887382131541759902615151385500719171265230421449449963427861048878334987726382725269764974254650601072749974017825795073962545076962624762254335065939789865911684807486249300720733885612869012396495027393810863179270492555661137881150041337576610934953681351567846192988771448480250198887721103182820375997619098097125790034397452806545221376336603117257883076326881348567605129800616900963944302253489050547420740081988611051426932894612976720745105291478717825416877290514686475829708125829947299815362290928059463821971056089962798842906594298480473672937859991963994056697787000629342037034235179443877573147596297326846053681252216276160236342742334727187683549108522958340271830742392169307443961757360622283865132013203053842463722036244663233066657134834623657649219670457259581079868368713929828764729537446092951628898561324964844348237944716296985548195720779842388294797670175765514970907312709039188640957121837086708909506762810627233518203793516086350263093174689762649172375470807779682182061737940730361698304737727457639741774505531521338743830017203957374185932893473687244704961676896701783932130968907016036607338945198778620646755644354448645358997676602409732146311305472444768169004371236446814526905863658129106902160176955215259664994977546563385217872664762902950434133653598862555473655544110026556466139765874418153987763059688680625227848726170253208837245168829215881967606102280435714519223221494174462114441956395271395160696656318506900069869754907374624686984949898484983373053895850089951957945586752025081127991058379803180862943818142692762689442924785186174520500063580713803151827700669850927034200494982013356121829861772597358570118337478857343797649980556097979068928896840744162973639565446667532220053695071259638476083794694428717270592020060211248460774859816269846021878372949384534580239983232103952665229242583782381170485604466417170356785789703803844723750501673956757856461635254382837194776272253255255910116728125382663763001158558289203184520540904848946582488720891754970758740236101672327317689485704267213691524602910973016187004572012891016664107608065320406339733061255399804940772340547533925072381752279519846751794318198574038313087895064604581208098089155984850801646305520394136788660156783990913848606128595268430011261578922087807854865389511494428996069045549137448606073784022988159492327380449202673953122118508340062112581948045826300485898414251364116895241535778092995704096046875523039910005338157592618419307720582469628681579312463516049533788942376732517670713278760731350457414170098154739497901348924821026248053082345807251787707744449205122962333437616713004917281019348548871229113342156268969542965367465815609731666635173299249426921974737582953088129526689420439417475014375298950486834892626926727238229362747766442175726087877978053513983491343184732865644700085417810651234727231721472683971871400817789768417603890700571202097472687558064493671949610949839962160330691541224585920673075643911793424342213417929517117080159283264609328899032169208502680204818750751466587494416148056575684016725583827273788075056875308774689655737208184897149585287312856815321340177230051004305649147699225312123174783600229679757831665995627427929389350518183152210414871036306172220836301551377950861467081668551293651287072457714409614152057715677302536646250349419730428749642013133381121684371636953155736749037249763625439049735083462963329706809564349929468719245757219165747766059375291375796141694931772056199430056886603317611142773478697874809423848896892682260306725074739294334527251403930394423697421108311158678411999007564637682041329981732255464455410962902218755135424965851772303883701856468272598465100972545957640887510262854717117533929737875551842367678729481976547745209059440703718974607949125213328797553260631270328376607907196058638808510475789632336907008137478909313006105216622032592816538543664475400939644610932010263913557659377252524950799155539181414969377761338916393980459267553056243275083477969004077758492290698888970625112891217391843636517234342765805178255337980489346488441254392980690210500115640324602375040246516096571494431899914933197979310019330130466625562857180676158819233046973165089052219274497663240483986136010389857903905978277653213947964624366495543633847838152821901748396422088753254265413914839212079223064421460303122181117283644033559611690630483852534601123562020273377966526660587128049609643739153350532744705773541390150778933559820832655289423532430560767664096331337033676022342282783766080277992706428158270904925400124532686435248720829239051118694968415165253376651449133221640454439338288543129371287637214856916719195480810505879155569512831195259131693446063161408695508598204074099074220830953605558793716532792908690059715776539871511849023568057306300388926133282471030310060912534605275887833233040433312940141713936905148721983306695538910577495814668800245711238875216859055720375542308598308570018036609523742786845747303939736237340737954855805291880976991312026921091199254067383711213771207743102265006178275377873746845686512928755355536241892711665133261167552968154824683558054928817200399028736501948717111424173270550475517811133286900472706842204007790325055065420825376366411421977202561474637863542241007537082775069704124789160075295379238948051220844644577527249236557636913057977542981113650305897838285734411349378569172116224962793814616082987578103204864575973296767890411879814916296741391629712047711699716259805647419766633470788426755788729487950105819407329668800478460528125294082237970224994002345747064405087613922126057020007310998224284011382282088148042597952425615530064018397687381975520242496444021615899187649574031214604188404753479543088094253717252752516435286367312108813351115299391743405654061673255971249825037965191121991368312511615635385184576527865238192469368989797853481304511452753702811163681563118556761444357777470319649194511330081438703641493109813680427917643488203084386738646429168463825510039808704114944720005955984509244362034526899637439701758203059699232088928430012100312092185543586186075436679032948920466179636915760219615548734602599318648003426320622653198382013054853404267835818628666136213122906689010227057733964654301795713950754772219517895063825131029204952592198189301023690610670954044502626847113831493663635918218226463602840351399438878585520463489924309013859338987729450304638735215717581287400673459603007334114982443846212505898150454053332534689247516063345310178979505161276410463231115725645223101659175939272678966243681968759369398868038079739044131038884423868454229486680804618146556117355704188363782885463240284127248637854577038532775946792562014041058696268511612934809753713428512915448059445285304965991815468411570177048222520725769847155710399440737842459266800518201503398654622883991720108222104803297175999611166001144758239244228228321855798993656519049509275652471866053886175363665292721163531948582470263324929859632700438510381663014158791995655764649411224628524912314612753175471661399752607029088445305800865654831674411102995872905605647708779263697636436681223559361432895278471905551651110326116248950560385692967129463332226968702457590416945943224208158440569437500439759815582879189033762605285573605862610502200162076779187142620578145270006493623323650519484342337684863457637471044105860663560898813802656523267275494574363029040329659723746473318789797069286878557547372168678563505499286450794070306833218654319981666037173817787183168880513284373113453365668681925683217916834962818546440400187741018509344744453607528993276087064714457379094549885684770214635308229077659314090382770342680608042260747089697700269741475916475835668960670778366067352007752404621571218138947696623432068026540015631107290949449698566908851603711164715408183660176379206995785138754467483665394289572173611826293795640161530948468146968021915261838772705440879327230178034576225863437109682675929559878394241204172890179826907891635177478915669627805330320629675906171427046501498688061249745117766950250970505637925228745581121149737838454184466787037446768203645859444652296572221877175057655339904173490915004381774684132363274092311110098180077277164397140074251555520037719950980040729365076403865546582342146818895222370744159175120393529794917591022074490512400471117498979898354408580287272666996682410450261997185863993084904017263397267121181829510136992174919813007225316335721642911594977407051640999424973951585009767310140234091550256269218969057159002694206898030845909390399182306973547033959199249012045642856269076539595377731192896048625609207908195564759588198941456066021752059021748754164428402196194072701161952465027265039510322089318333032664588530716830282302558396471000452859563784049486669943023772756657207462522390759792626894696335246755446317130822056733524613506233631188357808657716004418374315417154690525064416118683141097486672684637911230666646196888899344732644185952037600625841378716777308089731398239121774542142248491142686124047404771967975043253878230503528222239754951634227907282565278576163195652973218931352707656907087111453260000628053378272387694645702244270198547860274680423237696501724038414750487873240994110396357307646678128616208749135756533411644971399729708055667071187515992095352683285786477911267015392087239411997638496381087985413506480193368610800801413482725755490746779998923467458945762425239736682301505434660094222368058643925918544745674938476702698033032649491016782801209368979304572379496302953632844032114799019975720440585467184119401104221411945816195415205095600584931900924101343988027289244336038723077492496185145785685320562533255181749241341783625096117626752954051385954947380566272206637058211364544910139204311384685213321710351979248290198047617370593080621936888851635172269419250167227737582962419801736609791970157622726619304502646126156879218692210009491095366493785758504976849187993575087754070535891007736357317598734773608172978701605858377066325499895329875118950785106628047378026722199870929297868579575031499635648511951464597034462022596592268099628195418145398591097723309519173837329581045120065516645856476982643300995710317161787785923193254955458118705849797514863969900223392368046779359576513552755677781376395619416343937266791898543392104412475164780227681909752089726766120572902194185215044551593662772683534763800669845364883987177766547235632419806876166294049477330915852752567503261904964951682031572442606402033264523261859130366669086784491172432170058467783011866065886192406709510278735598807838195822017961166157459211051315042183798269151389691479886275771249302680575990282930989851294146927504680747890070259654197309778812198045756804898312221217039711963384097361105563954309094228424814603577254379564673832523652333827543202412954504552735473666623686773375390241015570872540290118422807754367906638044343134559305058717375440152051601429394017368938645403842734692273463078113805556379988531949523621651663120886517196986054090115843431097666939303406150522478448201980502172723602778652537638337224770790032890015771413099756936258941043718650193370544678461213568188023166968128763983983638308957095406803233179741491597729162054878948942932006829726715125788716516718147806852584844615679522348299531989432052676779463880516073788370799608720710731785194040696182452749825729489629823330212699635746623039672059228262062344368523210785317580074492850493148603027066161976611125754435307782576691853711698746162614650428642034304595334678487855268796968753972917647885008917328322633221430049385420845326970278815430024057811354670211057814147834540794270924821978413198791937006507585393364977591460463524888453233033270531858343079596240913002057196165493552575474120973441774780781543928879805207977548963010877849815954315268432955235489261473691122363499209355730611966084315096402429294696094170305911559066608094396199252090139850946940557894668562085756372762701895064490036197868943931084828016184490971581642618522525427200534187050309838110741409772240100562794392812279071770413707894740252960373907273466172020276407931082473431879570401058416666567500161249377594324854906094132797063063643266702255278566213289188310838032493017500434508075509676895320527383539032432946948258518349325584030850233340541099764255467951801009217627006127315914006240305723734418505751960676131158554788587626394385980280863965391268300710618584700821126776031678409537141076463641947190018322435653319933959821855363566793678672805803305202372198417972867979109988669586122155617356583187384202460660870524564527884959399676960512023060169740414555044480708034739330762542192361913017854104507512913793208087193215272265829469612364215006441922920494683402890528740230843483354678845753105994125323828495395692373950712528434684208442738135723664558504460293740026043592557009446265712473210082847429089130361517467233120423534416868450373564927521259766648895989861619220662172014756423771114309028310596192726514395183317720451770010783119615158375658490430878930857813911904639897007226824057628591770473565637520836902032743713232046929061831878230783561845775402193482614818190630131923449409894119590157109814354533225023383008667362736015527936224807861380228478995236843086053951020879120407624575685127914649273713735022271542938513158063373675387163866342419251007720575544306226232156460679354252358990956276540447265681866205911514940811690599188494687470335368505737946138669211091593898247877618043784472201028237042660911594707152915528564024061080947556330840537284425745716672751803757503067437291450699611945149757183035680448791143823596545644457908154753102549789932068675519234650197181127637594273315406110578875200880159912374823701799114761869674303110846915318898224103887549422160345703615013665371501083712508997483456170581024889209378570697791742254584898484809731758190026857422283597710085848895268537601402273684154529652886574565245247080563635687585992090290497185847332292306247467549436416013504154759819658712778074615665488551589208987036732871567803048754768030026587502783559793570845506607980184750827130782223634223986398983422611454542512261564781625175392333099869120233901194053290899295733144876813709226998582569579763204850537847857913030547708452294141493297207705251488865007530336292254887282313937605947081199032489343473697370780700136766151471791497363811388990499231770258284300268911109563634123931347617027596922537317860142947305571942366764959995347842339168423580498606273086202465831153594662028471752952695455052055295607312772338889977192333660836685478228513779265341515745319392257479402468982258929612816058215790173936850446718811029602695191375647271988734679012422914557754538153130650109253378676051336538411506261553567181678753997762168943210471821676127105594850670990937032902240847770818748967952804598302770171969550866363855267232833902304046799400968289942589242368014947191475229763728492593254675548236655729847543641547459593501315756761349259761477067801664947490152804480417094170855571676354918727839749257413000199177167886850887292892726582822845764748664809599862298194156961665123695154586708866290095110003197779152048955874455063352158843724798920796747339955687783537355549433296176387952509094320267883876353229648845707287363329916209516539245160753196330871845259296941667912737139561790691459322912673873852081313403129553825827057609278570810451888994095731012536959599940821341760252795575014216745524252957178164825532982248672602443750908371448575718439174719761199224003000228296013138286905650006276536068990426761619996746875291570947483693268533840241848307983261954196350551596411126141987153909083745914253677853468570287808970587476006778130769492015813708983381280335907182136170011870957036970079539771157876497689475735753424874397032682090480941793357712898673852173842208032439189619196677693775005196370095268373791030496331147569135398373470150445971003949038842208239638944852492802973974463982109199546751175384644276963474287330686031945860053067128372860155576256283988545525389836704465101766523407240967479472944573091328076295956033054360351845833242703700882630959582897641680001639515563883049565650117286642853689011362506028960800324179358104472011446313903628203421054964318446712945662569690844311888848272809820741749585163528298530775619594330684262434436746255194134234002989547459631859316682674368366607748236754622773050815983834635015302049073876952322916912557843218044408593667633760267476664389344268377581560622717551253139766231006185022023354527731484747652595221727496686913410811255769131176298790007833584656406685769499636186294302679019548022397585843890013168029729971624608997429454247553068847347596400411546618117205682978545613147497381225612967714454988391628664816998976602956315864762449983289440177281966740623647202313845618570285058065462202382290082169952536124018262784472246163170560560098078527961928630827994444875566351282474223565721683447700895688435299919411613497501823839851593799462759090399176196524535324036648947219048686385795152036741208598999022848215604180216690851922320845762590021813702633890261203549118956559198594788947027476515687821940133439198430528430934633049363329991328728524945628469431051081102112359531010054034697784079579398339034015648989124483440974788462903671565467653975774550981842370730855655027066771134285646798205607175503783782610039612927299253365885599992967797300181577542559937543956385144702402287621377759503960841967059559576236612149257920766042299859673535566186117122038003357035411617617664510519903988304272495739639871414259256608129532825891066601128983566927791614317085487537590579235635841017987781371188954959063728738918445226411779897358029370328288224761752308235236374057528316295969019807660377280438113076828578601570412952018059356464254000825804218164970929709968665263529737437918791079281927114934138160434211402121184904658170879455433089368439356746317716552449213601719542874250667351399851175221289750608311932795075636066697938078959534942093169128678137380760447855454324565398223563768140634578905325255466905745046548783286803355725334660162351682052307136497860673759989692295646439149655876194842854488495542294482680838338663062195375215717967994210482250633293940643343660898974539237472621003456188085576987617533989189498690400195911396440240994839600492309956338599631116211191513853195919646132835754086153764517603877670973481913769097305077294989661621084901116736360511118097041689713451777087693242524171243079565047231949869964488667946939856547920105197436762157131161550401580737671858669892883150649669903054688607875762706654385093937765082228294435204104359260651145954819519856523000940055178890008447547543181908907495820143001555533556944658100372966810722408976017771177045208890576379024284884129937133859320438263741748394477486534050399482150559233050126251949260588017545474161113552289837225256362536863056761834262107367531791835273265969033728660380259996537327510513907552596805491419806131442480356251293722373367293696132948064044454414642232347009708637893694134133329365130645365957408725460680897831668301940469488825977307697620753038448449417777194078605226902341242175648122423691325594458882792441943429391291521359717506913969964875594883181023239981774794924049700045842321584913840400046223250582137178452557580442714258652492169279426535395995258440055990799345733561896480042507250900731194787172766120376252236085262538691645534199058245594272632242667683462701089107298416334277358825152491635836389864345147607589900386401160490924382222298270966175891515545632692683655743529605443448742826006900964022960790023609281290559480102171073068830761162536501855392757721667295995307069169106235004397441584966835456175097347172191891270716935253386596027992642085363880761891356543440089751411154749786108207834861329348826922247609691553362454028001466544518831744239652033521397979477180822134500795388761911859728913910130273717264341664394968514536503059110387814079833697358361329558376881971610150425460978700646087689160614166508801243208074987984295004989695596636270024909644147411905792538686841087330547856881369102521700536458067978771820512639399410339400791092138311076100102194388962260151933069858969458609044180101496847281440641159249922233277774094541196041606797470753125155072183062549210680140580224084394675245819645973530489177837502077961769440621979954137970096995636622242950273376488549105303237289174578822632389448170069373624371773988947310026030272260525275885004337230603791894124716236202181635657042770937014412647673611458072240150026895100816934922518441292953189589376240858725069731835761721759682534884814551917316109520636029995602966747342642699449574763928472515177501656058331763425863816804697807406497010060503937369410585386611306294395160568123263243695203245148337208036269190926679229223153535881897244918253823994878454405024110307909995152376861896122887216301156333328942999485802072955080543501964534458771217882440116450935989759364895010017214434238058205013854429603913330570219356824985097372602858142139080307740672091191283640002897356631258428522065908339488319444224140875837350035785523260935745504057413609788513834499658251273180538248287685387650167500929375773096901543887398044680903014918950382576644202706207750671572521950018267470583544556803489833763413786090550314922246832129733920063634316701328572110817083503353102987958870281796999886742492185360855658734435131812718218384033861400579790434701671853495035720017334637466914378044856431148135867455928030563210621374039736902923268488429444002765548423554168572953665225092514976461158682348091250124376759538433795471883065806029673638500670573176069926708146632275419361163309164448072419707679534011220205041084132292441394014706449552155414752127711979218014298557474271614594325050199634472139179381430067062674937694699804479876402744364801655724647269768290276254357115192906686657506090494614838367017146359402131673966934247857161289331980839975284677947288152755989409056651151973272684074202828861855080563890206034525095205364036361603722477110696184391028400012843032304846430420329823590919522182358778286485348416635457765169016965943658298252015233513057173808620857405835505509639715029639397611343232552953331760980745309722781572196233247874405285455979379934382244710646658117619222422485576759712151440292135514388387186764787538502984304791837977372718148079035888177838407404715294393948017556970358337814117749932369241176542441526169181745185700889021245924906903082364607053025306652001216625446090788633670415960710106293330937057696362774976204014760374530052733258996777681543597369786826897468164840159578256685922348898998970962216197508056824521188867591770500647816983452870864184198410414569608088877985659638596761258451708108555018728597614907559730743196089983003667235957801730955799241999483369099165181196428794244854542775651392337978874207018745084815018275624255250725091952447667648784216010249029295175138147384600928955247466545599490982818620203480438088427308442280378985703048089498847790258307224926708262346635527013311942239211727711367357072242202922864362809806037702888380473495677828299092762895568202265966412680158537889740516103812079456975110557110942264459219183479128006347808006504224058031926423229888615580477427654859585032849801697187401039080952684092107823153442707200581354816179198030648500233425508618197771726861451155268842259669335797945111799755990734835399499613452793672493126446475246073133144067718325419008419481990745620420515467307717404305724181946335151389818721869373002818663617489340664892798037686689634943637207539460918986839184961869004639173741402860159674414827924523442790903203547420749696276182168387596421424976091932529586213287649089175626088203672071159016144217925338971061532646510136955474306874805858170890589800327332485565627949273001144183562072502673063742410394474483690853399271525880917979263057863265656008600561411069462113810538811912687823492565100832477117683087769111645682907095671306799083196274951110851567646286452138155807859438735809235870332308191238594128939325111321427549711434786462717577669548514614912839691705307107206481002405066012288146910079881067310467342045009348900841410887912738485196432916494890571063386340042684093023831270295018229896385308463967441894691972565221566826168607998758402155498242612190248150892696050834239647628858817413803468169069168157549656048027584083389891931885733657650955416342052933017732521063497477638236745044049011325459461079523509450922902999393447603324423426990067068927394427908390590370454670385701655229785404056084942567510361926023077198266678741991400421650078624280558472734143230847308997331395199841992511347915131504168725105788430030864815747102615800635910963253316119451412571230354848262851806706029907693747839675019134690629604394683051852338393051796476881015987574506006994390487606377151791449867441531054536320418146488019185956928341224136613670173669264305170025517644284819370333604290411149127460335030065766394166858833617583280718648823066133821242026306611573279578215249624510138436437689772829832635359877606750922672025003513411837396263441851358511696553621818765759897187618539359397206499955615237839825079266313169522768185135397438995955711651828144674539491481455250317487845288596253148921637270149218344461986713085661647077748783415595260147942565755120447527934527764744663297038675601188797388323236745365886224343329169481793175523953708809106247905066610619571852413139392465527728902461575130289474833533424161509168204137394555607280729324235889056067788921154342636956299080746506529348932538014954447607680493238819980160559011495337225571949505201603419044915086397274652243902910719832267721038117538828968712238427375018860293312142738742921098618387526762154960055071761738292089375703012158015272093256393154773475888087630196586703639890308852100471037224975469330147856420880241441378269453836557216567155703194660531512306599150191144801271463542901487476317650025618238009827665520318392856404215788315510109509054206087417285528170225677831681759344135452745878651207330601353110627573933555582199195909754585489127739119431086641013295982440350874766150547079342149196144343979036918203213491077370163909059688120655396530883017436037124996034328850036562922194223108763071436494670389883627402556974732706448869385228804284053877083447458271892469266857466564004180989684907457647193459269566497466220675159832136233163842846172488441332301689903938722635007903829998950445845757318539664634340259556679198281002170415833471840095434140375816472267459985126311898683595542597896925614756213532828311497542618708240733538169768770272232489804057281316828994493558552745957659999409634710766480829205522303204279339724115786192199706401089781054053600265983881581742478426033436961586165329670505814651143347634582619317528940103728557235078743601422491563521520886456474289546336147437676034712974256067413480203906752399476704583773572664803800610598954259091468265271496511737322422224277610110563504715876206404580684108001791726718507125452564637315545522394791924002598908078425317574436084338083594337347340934777549699151656560897009179852149327355397462415519143914977380655134236954809136053848145089303690483064953946067279563564433818997207440413262874043969518843267528441989110907545693521200884475510015314754405850708567194148634180092889323249011044279000232504718658537727969098128269910314696062755396957379691661624748978654986435728501446150218411047610546470228864789456532456894371614367301129874335772872610598804083399145008657803772524957384973458876242983678836218430346701907733424221473430824510740317693584594206197030545374238264605212833706686985384849436617944542033222355456961133952953787878121952129653903436937850163623033892048655816119202211267410893613451021680544409602093122036343288387669163798806288030900777756017613763660139435859420287706931289461208825320292777685752354437580156433846552567919447731029224665643975852472230014012246169307380641201141035601108579444809873612866015660707883976510797312610537250342293344499416842205301949801284688180326076367713559201077681850812654028596937869087883484676450464801412360144921128607751798451420893189830404022313054728247907075007678426847457750195494546134924791645226510248079681331009218658324316304748814492872286032145377489285626416404995179762555979588413225783591851218207200398078742720527824311177275093719482519395591838407302680473162474794728151817253607912143570120155187478227740003074723658165318823931562173048949965708511206855844541465955463963423601942936616474887495166605515978085623165137437328453136065721146753087325214964348023745251586837111227067649357977237672039537314067842664744408876856697386945942342328133963538013511422136065020617548161353590654855811777171798448148029496012616141604029978162997689399266272380088117365819968928970488048828044692675503588182166949697506017711166717502195352264116901536952721900293078338845724936920568275860678390958933408994805619108386892188407411567461285681289116738230455794288782209242858185641022635759283509474396248496659344888354200483754606834733877632626045292299263299689198323691931995370256070374065549338511616492057833822543212583506904373046297798650402576651532874451807603159026773753023092228394368423245999545355119008028010340452402233476166754167993220930037548970479259629413809922785774463599063754325104813410039920200322210905780948711959987331539518824422880530402006129636945298443176748626038433415048582562309740877949179113460834442203828595823042397577086754692463215583092726903373986554213904223380139852777237925276566431629467261388169732763523414755224240877832699240799921340477689809724000935726281670410056002365995717868163209598374375431368925835397515875471917694430238044200382135515002296185055034313691290986046205666279388171082084396586857097501006525188118462989267718090292314591515720182637778911669083251650384798875502400911545642705003766271824627134416827415450373828865545239622829853558912479083436244742919590808533552006781712577885259905287910388190692192434173751161057840673631224884661502127733067616133982739085352018285476305120740913442469264528106627901345084480727127504373065061630405615838232658904462053968975812971898883005856900014261044053300562103616640203282837615093710534393802452313627893357846516214417448620210991313200870045567135785533261014639110488094529641145154989758740864553919449722116818044744904358422246786182184020710076691902830810073759245132978442903320968653297032771127070780960579413259014179262154525939437002284365568945511546681120345793571692419703345120057925684166252051789683947785125611647472440811275024963408587142383570398031267179806102925714940972412675202329962374900464992200895181848791513551542656314880439612044630069998351694234172542468353129710669884214373571483950234278381371958174122594672038374356098119402369841405210704439732173595934536283216390804086248741916140622160021304347458967620241564913148040969918106053778280410646568759735185193055448679917402379873750403268305884858099101556559792504566172073419781345223443034258093269470367198114355960523315963943791038501533724264859056259364360108657939462515091429148548913104022165934322616702588233044387024315935310651639628215112498302658126458872190144100681667876777461436142235432376377629785692466916200850933281857412504452937729364098999781682166392852307439878537463670879761704723521747167871837374611433915896043868348156033073937110201337904569276166351461724055096427300469251220508180668521307400500166437692775523154039180279560794227893554335007269590447593738666966762135783998261593936172356490459862462984969077306589210002701469557052761973129699997649898093188704765616581813201676884489485751910738806600792209421781318091958527451113521354891871103927648686579525690318430441649739352797470843570096813547493228649094256491994053040383787725047837992570629257598881437443379127147634715657484741890543169715810087477351940811490503283700666199830050515885589397639432379461563824118906759138670704829713185265681936507097133888496270743482980910001777972485846829526959001464690261021486425088909953458700427752217302231371560097327416998860980166476072634350311593388963356125675058831531820103282933901785691289676489155746275851732863768125302440770161833364798004198036328699195019994060834764498749903657554004085753365422632046801728952928703332234980665606570855928726206288978811307908840862473148216216212631249966765734435136013041733160573741020250260665411720785678888959210686761323846786738681117106613352996848726016352280678258023011272273019175087874249165129698566501738769801034526474713563041341225547387834679098519005519093622680473223984177973958207297942465324545255094979038082181484339558346642880372247073856223909647010844357500869443810272334708908881794866384801796880471983269357422144648642020621500399305833392942478536802765558070454676343426457519550403795981336574302079555810506619539789008845222452527256686705981534613368298952179275147690822838768483321971419528663485906214461086340546261956472656913160230148789971721395412337545582012135179975194050163845209269377543768011613272290856443999330565000205415038254410778152538748764094329378531548809827469065360405212841150320695504263782979380521295376060631095218219588083591859898478399588257207428686508259121789235832916693071069918877907091625871135839653324949642216647065871084778438925779684996088358965240087749412855233467901872173097909228666563999418203341306565610612349818649893243318712252386114785568506534839487186510535750925384523118844149459989556230095140985126694253254274868873069255080421565698932985183533932696473304138820669817885562545584983410222930665691080360359176192142627078058577227372012519241593597484340429550156160665140596461140996317407496563510927017459995631445116629643750925672278059146753157539715334674472178108919226414598576849695978988972213299273590186030659170208820827895393526365402142395670098927305389921538073774354735063336713714464496062271510481204275984562492578197629968231462319035714481836359351635891677147665287926626979661245699275178837473931528653392671439014895660571198736066825697410697221233551995378032804161153111153530230280136342505894920306527634148145424268125120725823256840238307485275769036613327465201380525323054561249108815737681395156993796525278230025037063622804166255127013493173565849541897920765969115729108394788296444828433879569078528519678451321259305476004273925079449195136496171864662012590716916192959329347647352278380281430659265768657807889026073373591046451272620341661502497862833766636697578390634093118667014082164749356927394450507584062848826394810356465245413369236182940591668498310738488317445498374950392278102554499334518764992157087841307947553473917054829438626068320933004111183841560914648303820857278016047884622719173283105038151653329152887346587228601559701528374875358965467506651288441136321771760301935686408266957035868923615256497824431722014060786979931526152611449399226861630735799512484681991518562816406243515539389524787747782587596734226732900073781905683716520259342109068667520923503860456674603144087690378523983117424923774841526489335290229429586779868349755380212864227667130773486247692625884218426939122500894153049719024866579988969889327659503534227181836724195121528783414501371618046799691362298978722860820382278433102278415476100879737789311984401916044484929345938813906056812975156366815344887255191193813612807052850437239127921918935137092200826571517804017171424190861314556520120049359044881681774292726126883725356232329863853381739015070534219109161611381293267975993912129054906768855534405869982983925609160772943967435833322959619068366650200917181928862642384334485427622350084200377648435834251332805162228759735261230717264468590944167820899380036057004748484614961048823036854019387370806980774359480424330429490902402714432841569081645904071923259441881882676250198270695716766709196084112587530453230469706399537579348137296002439874846010965849190677207540411914358517945989875196774831643980744452096584989016106229711675385738493994680018631315801534380401180415306111996722951251771512052224269707839165974375491651724306419848145656720218919633609278299771874414169180636103394141990102871263702146493732914918712483161393264132749780912194180705360091495922950675602655040498357409017860914078767611824224211430582112045255934869999740170358887174941925542292217877898327862909174370074832266467919081384855924434982876653906253779776483113005899802907650204193073790166476859085034175559688296641961537569818834021501752331686638455150413042671964768238513857455593734513820919533661395601031765489268700946620818127209991212008139818605987989814312054752501689633213345588641148809186923600679322030117835070463498883625432396954403925948274378381628718718181893383263231457293184963765937858186815625693794508342330354474603794524665153787322461982944976009173736587259499546699755555940912801353701091093821730716408949797516297965554814809512744254735130919520818908437014456480689896679972415582211471461085988247480240332682934087407666191200278312795220778449709374451627870093697947031099204774149545555323971629856791032258044903056121628758459764464491817064162314555603858406114183370047433225471228520675413521909050725370472924172104766039289603380333664702652162798574090479082656380429776537322230800789770926824142397861459080653435036475708499351519793692204104872732485533581398353722695394808472093232317875769808553210916173360663309478957361906358673712531147461928388551946276193990402016912783620047484977365413811289620130018721847931607832302191779458255338826942780452327650920660603832412972413822517408002825253313028459496213094134346975009571985528002917326514991594610692572919747609642767209168979397487595811411191564570511655577855446993291357274265025623499139085933595242835046931214834685049412807603288382403571359261460833137292382247996216284563527963361107719836112486332783242843794574801997392794687858227973901271387994835524551432340263343850800876145109509528300903983720131529769803676544482403826435609103162948309583739480097463480938899955331098989295030675552617722802465136166272367635262036226873520506239555066306326415460087095647512089124638822611973301556005757453245431222328997051897748971210167537491449267595005728065520401259995185677098174825960174118307008464153563716218536723986373246008221019585965636180006774447138584317241371993370549795304193741681559031458275845590718230796711206764052235147478795128483703129370339810560653663867411179013633990994220443709350903607275294919667451621066371615933574980781991312219460211913038342244038670105535072636559859226818417306123624053495878630852509259647790540356940280501854551001028058132510625837112604919723358684297546236926910143243364206272181025960739052892094462673617601738922651648975797680389413754580596476077128507616791444936924138867651697624041977866517712930311770479980694766745569528851575573221371617498153847157100309392836878989134180557250479801425253037879086177828076623030221128765632329467450101552295235117106092630616522389997063732395208709587921943681387518245108798530279761861292167082231498814709148359015015654674752259319522086709211625340392114189105453256928281507715407635881886482194323299193460385628475435404574153563306205935276919291139728802025293990348306370460596009705509672058820836986464040079694960614839961752784122419631947517594053533325331007779230187178048915929019565774489876627573708630470431933513062638624573913253822108164399283552326783411266589331988566109744427751013137088207854366237127807824192648028755404428871740253826165032020659409035730999893450967272658924100872808869541282490043856153994706579718591385148560882439366108628439714049007393834441649177028081871827731130016520251509029311437713484514085783984447286102590995556441861602552211497131312225988460584602875561742387322168551917895950624129113546633820057633269957833900326595390873384905239401356410045062646825912529729952755906831481059950746469056171673999423497824869940287002034849019578468580621539172098869277755273428034407693149026638508494903899349729882520213141350794601898539344257109628243404238044413243970939560547337219919123905586763476372491997625439297203223362434621136749523687163969308924778023979053311072108101383205530670586390967582531294386205424706655783607136556890963582563356294869823081649333601395196306491668096933391860396597977339235191220210972192462194372828934794278141399991897786005695631076456164641294856103099157742938806310099162979366580075975476381499446320251276337059974849022646427546585236153295826333764767446787929648857879319520016322978782826622928011299318148514372006978689345317677363776901454580231628467948042284117073532434616999351168073761190262517371118288339217541256159711727926507697985455179154343090980992771953567578691783339056211757740538621589718390333611808112751436630260371009060519750353930502354044099555941383864977691635535028000307952052563686635330536794741561168895240206473934729557511145605380628495000336264802832472117387349281431962842609029596006806855608675470366994742489373314697944015300394969606458856039543469788685417181508364416596721486684187482651216898153154726539510203613700982841309685584836648925284611939604456562327969623830981340280251418339025707804285193003502999112536752956762995069665059414999133696293751175278451970708461194051290598130365483799895849467200532077807761162937177817010572546580242685854961989965587779116555419856175170974045099247520236059928429363923152113492354917916526558764442962046535894009694950842121654818148532468240527402989612012754171551020302170858072423295639684892920407609936416760649618531543264947505395154050282010005038582435137441698560033203662033372063185363287713599430414017645252027089855371244694772789531449646944145968037371967520010439483544543320933691397184669288144503538315533642643723275622618300398117610746453479384011614485057767688522137500461313397496491259133643298594885535468643864353194393953144795328226680792048046684575390509165974489394129004808954055977146159637094947603773619532208750527204776965899599151529265326470764464416119996934486751265402570250022017111294848817411436883727660675123256096249491036012115321353966864944147670564568537588345862324356731364277368641522068854050812306637962705121742880781196489963748805609635119310039648933319332169186856298468345709289546629279228427246119043974581038872672797974356790525841093386905575086479815949044608240568792131433838787127607787937850958213310227050043866103888156850039036213972935068499670376088775583533129511965888126246192242229299622620095307744185936079639179434842456954284378240730515340421034163353752491764514848630157660227875737159109476287321577411306679016474324674305067568271158881303214916945927840461946093703024047371493969742910677302186159327823319291083778670462487411930709851246119076484961042106358307654845890967634923564542786448819927195671834106314645799430484228207670645636173994720478689578343614294828756411113484556330096663102784258573165384551391649112114418632839960517255087790978524489754777630779946728477751704440603256207376479291385804609539480314985663025212956479926500785124303205239372096154225020719749022435979572313705681963861284754709340237197746957818988132611436652952464011656275376316904236995918936542073641436465694738114231174225743464019045090685840921693027286936061354075202496079557628888037623623351556817238711710088314264257234853539095447491340260078939914947281884201427982640651332841046780083488659561336826312698878513914107999260352983647731956323098705960312788772040070909865981981786280737087011723632960196999386579120638635985688734989765952134107833290463682607317149963821109182339459557503609781593255040197061980745264601416988756689179118146181389258908887038957040617687012476029333732428304317173371092118512737121763475684699034241728411391138974157713724683389192314390180619819495852151695710356225536718465796112589501326539139808878771455129929071771229959118148012665540274967775219789458929973198463290888379204499862968022957281872367588074512806551400457831077654540456140268411989289978703421277509515413368169985912150683701520371432789523675119330328185655741521365173272684450891044812633869022643653222821255514965361505071152703530475803576670908204873447599715436483890139725404990138948639919979416999911083173736411034453770982521943173361776896873932745088473618066574671166418319342193605152343691005139295113708103966562166638643501053001430411240985161096694990198277611643463196703881249085890026604325382496195076353368643927199575707484983516869654739356883714170295417244008599077545944483671337793001103200764008255482993563602717459951364123358681410376520602192188731952194168710595143932705524423280108517731998836863019342243872674698843334886068738027111145515433602499606586755423254226205313375496465097950381092910777782601655897201541787420491431892644975999424319039992883318144086120062563102014124236062837432634943205823056555786846328299988368703329158288115721196478658708109534200752250152996449586531057557263526257692081524655910141379941682393026390539008592457457528737797563448206541543915354087302045461084943347193825272913650171726913038016799896263481517668888761309783155605529886524064286251339099817199912416310487224700969323800664449274989662507883625543806423386109734401515476431699288507633456562069592806587904294206601583992720636412343479407053835673994818135949567719119515164466036825999261884312308087559251239101527941716990346331852841932199382994227466012213999619555928108632638730877235510390415957799865608369982446689241594508148264732720368139803936439019211880745087880611214385501200940732120208858583342696167844656380147555125764808069463694275268647021818608159287244809788829644017372405744702572777087566469066940752264113904159234434503471020941536359547296749257499072355402937887191122776942999529393174645877607317874440076359286051527940510286286238545795031642013144118893825591035949711144716989394722675133323913604360585543810840022025967656190122950322565684162853697533782308901089723751364844707925591044902838104473147200142183316342874776099137541414101568506551646394273078493031528533387588563858301639926189001351425140893982025290630302204881990774665420963424517962294010620952636808194379230010337765782987050061218450391037804564226163681093716667439318047246651055687527732128020895151007705063712544933495188801044388411784491177048417072452384977274599576890515733529211295120034478528315959870130790501393407159721860680389232663726696792384354548437164400508692414334808693409141086155591702825140680065759411064203449868983481723119080916745590474118279909251276642978952056654278406019377956747286938699181050170343932465182306713246251120935918258795543333255483647819987646791142194917324748409038833495198840788712077841090446067055913569562652649165937288929309835893222989936125619864679814408968851712177079526791277320715895818285767978500407731518839624987633667585771926242214487476827670289367290548994385293659533108639157518098476891729947994827738131742425151521635525585326771652831511791539767647589599983473494476110641273619379369978149257413327717161185415644207103813094451700017958782817095938766952708416302331984549628244164682450120673435103696833975519090862428972575249304821262718629838389739479106902954503319031028012848477324564996667425692467425647038328386976289574018315303037651898903990207732621802405305770868398428257126260419911605925118325908930706092261420822824510358406431628733851427738544248224996987069726043704578389065207716844727825673092044610952810768434733638408268613039467461767470824881435497431144721740180742936351731886374623497397564777921244828648172429886107214594934080061898031457813729370988430309965280872001439053623820544037594089153295362514683689952177815167245355527001928469314337777513542436005045578644700968996905482094555730338651349730867738082526222951246874108594780035099919159531701691820929759807168009721269537457532882210907600334194951507594466022280635053391300202714344748775799874588120817179599011674395459852708736644971743497216757390293666984274619522098650398861970548759687206105019887242103013057736289852788637596370417584242311926117572294026043927881176718054061987437489457828480665849607542306127735851407909815028088501444810853359739183690491698815687764067105426752924484523606296585187511743833250535648330651839165919093162702814403869215299010760574228590521520468374328651201093624428710535033029328030490046564739264608106429618705181633509801838500189887213724139986267281065494698858934437720336029676154868978957147044872356071788618300009804659380144457064420024934520388133863089927933638697196584193584595476140332266619104228859195099211769320418997510468397090424247802704557293504937662900124714297866122717064938752034719931198079917823987710270844915082611052468246496890693012207889892304056386329781993445875164358725695888462161932698434037974419159965129772197371393709952722265963693164898860971609925353809089896760594641708439042460179745557236144047296893846933450824091838653968554033146004582094289797442435911384385115181993781630836736818802268321626938346277829806117347794543302100907197873230970072350190215083524480347956501149602553823700008016559853467905937967364604840462348298468779711533461994333509944827963686972938134888641670901849400677601319424042386093074542985964617597223129019370672786803573053001142769625473409868628505774079147533096398467947158434883000981318300009251690311339002015513390374172653184563955245871611110150872517554298286577602727935884610654188381551571038816221860491603503022416604335374781894587694524241572494013680002936033891076927840789869382557116434032219485395778233187426114111545045612195468393200481222316231064420727371712061055048580228140054506684705092947439141316792144226596973454248833877599848024580850816458784285961517531462036232658002366561635420204911999106666313288128878481099159359573346159726418771287477753042817065703499708520592470191360439654019713897920845562552686457598637989438148297585792078784959468822358595165446275753298997294287111924416029650533373868649866745564274864305446744933966851570166741563123764089887128625679176256417519380755018503629445853485207216129720974151042504632925117595283387924421413877198501087672661060381948535043712930581154068698461220705354191201832793193139754554574063319498478609474719804630512984035292369493931501683117785663628434570834497183352312583334237411368136735162521339473409890138035219381027727658797417429522522005135083177919097703157069405965475194302497562409915881626674746637469621231859197773824051790029154002393039446266197365680630173010013213815487395673124519276911662527103998469652650964645496059659725207044195716072068293384494222084995658470416120478616470710998923516821297176324556046141483208926550775049642648214253439778822013697252021256140772012892385065695498056773324650738256867861451011316983545281757597201086443769765963413265674010296147250534666645597780728052901208433738739939776957751910465825884203315565461748484915832764655174923008172515414756114814193326165904425976672449905133640006412104816715545265369376695947659715478058124158761294534333479892534452902210768544870916258816652130036921634574337162090950103905702244448631553645459369267733914396709587783355039545343097330467428482794254347050711664642990471914664404200102666468179492445252238592731322647549513759686840463742705059006374558531483059474114718400276072934759872274897406319849754379195284233885704638220927578876390895707956200492121646019815932226684793001881248972136894020925604019314039030734713153260165964899254535805764454891526051327027146052971637286902129359355622350281946633105128139355561635647890196076880878708123856471089621149082636435408911991044975277016145089686890890459028029354351030653212167983724047477356571410430360671614050831098382886222497283711018952712516374494469176242879577037417729845790831313915944056838335390804062393401732929281388322104481980305243372432472934605442272938702460966410992898144988495844364387143669691138335516143332050880464722078208564077745569609083527334796176179645329396324113617699403388159332780382604251010348664788416625350347496253871382313740088257883233532249362558242013089059589159573010052508115977458445224317624365341869588380690568206691060287578061264021871411868622943750648008038517413450760264794192445636143327033828624745350220923475310998577328557850326527059745907225343201244178504947784384569018181793522777002454572271595062669453898982355269664410609548463924249469855557040404055538508986942106379814358391542173227894695977261911091798215625304177178842339892193482137908766385292803424188114961468336014866541985026832769853958505332490677840562490602846855441716034853247841600436943615850952367913410756298795784736408790467900772704723548793048544318388390136953363093196764288634060460507465261704262161997533810196503481626803246403753558800407428753258163016394693591231340210000981513821324839202886941132838343577864011525028353253421759649752561461664201987142292066735298591957827388001470455483836585330892507402158984995274045419434817088297604771431962321166980062360188297123091422398839611709187530694082565170086488812253518900013338364005893779967624603059813135358097913959765329099121219246027681044603717997472479021167619969672547277721126948478534127418937945767912980126143799881571907716478969480046334043936396305821754772642254355147754452404228052450761201200351493255981114492811000875038385677109611347187531420684736725833855108289997874076644931641620148990492902796019442920009951872172797283810869239429354797593611317546470117550755467675996134095552471637972171397234200334717626404958194913878300398572750566947162697661313523980300726458949880011302740256345570223625680217903352023500641277108075116722142825440951427089507060555614495572107841617450882889570172776530959393403581663560882607149474363060809883894959606367681786040702928146684983423329393216872315660766674050246446283247246252858140846027844206437047070483217531340473678967006868229682591727220012127695195283527030270042795451376280645117056569178664723192210335039296596071340998147348958005372586473751973377581726170162675297858957575275577980065110545205305637359224105131861157014124766643639534828054785280060344957427531745185178573539744467053425131434297901852497535517158946666575033221163494884173575809629256453919738716852623488238210640897113109872110458244039806819631406673719885823844988212952693866469992485104845175401508796050147370090470332590964618937922834289425365684015009725638285817143458174875427606426599439476625415891163687465003984558187327165015332706816298515732169073464350693749539859222386122734418990021199475849430992306572048408779601846522216675257833791070721777054505620993493990754053911186925632694172565814042609459117504122140405932491428269623957223612115960516134910222175953680215798681475736481491386258275453464937699088897568372070243293480034405815709375224054206265572632120911104629892420058592147163930907892688961446868446231127053335928165148602256504470999614487614034638719864662218200346210536013413729553645430325254622865164567156967601581627042011025380261741003272280319785820396676257932315573087716547968421533634271040100361188815780371146888326130502978763770567179728951665550970727653137612171060632974971529338904848742088067291822859967456338343520953755206867396202041467866708285465817057934019912936549427945069885323854314367072424450259219223784767054869913743438243346705145911415471731775899994017452323053645824627825622024813011173307938498341442354787547717864142327136067830678529286361461560301553539255138895550641524252911819100574493488618875448393082760845190268395886821654573195560354177830818803895327696957153539731381866283144808354605503285313769198601503587734500194331749124355454940940250798195282753188001565972047765622570071286479001219930382618774460641074406297402713444520344691254430639267803029426564578436671565118523555878219888923915508263966354688760918001709598128255298175953206911351555207026220335358497364630195106754224482600522666662395551471053464014301147473933324706077761700339906170285717193589861461249882447123812750291644197549337850915377723796448422255856324834526589845685201629116055693498207237828245918639924448427522002292717442847301564068595875624953186229928097680142824186810943923388027859465455643989970388148028547723017948089406838285196770667575968364457405664743868465869420417459555166138691760085901927288864700006293219194602665746177652864444099440227420229201765958021123947084053609047840705407189269454390930401520600104230432769072753407489319258547050726504676243631711702286799218266194008112191828357776146464391423826962232267859550723800347004623120015416499894958378920029861598019717760717716668854483950218276231912916129968906730743633960280980048462908470515243297045723788110644640881208443051504349675303354565265499037597869978862601152641986396723518305612221108680286872372584728978156329797986522739498580729109824006002777640724071792919563517177636416967075016201771269226595640253111744907725597643464780283237353398922048753717993731977773429699734182195000333368660009465841968164143762784190549819440452376710318442520688895130768045302963843362359806277682408141232283924779869171414688903317592196131462493627352443278186908705601954804755326020030278598363915905312979270377417547905070725919805929088686840720320089346683110994589120611004087029148344464931783653153309993088333121368750490547149151791934252332447427836150341521826551495259522329270112851991059881942333443166758408702547090042858262888383095143621980060318464717918791718862160840672956400108051159156686040116077854157770992034404250702821198102561434344578350964961163011468993015693258985714553813378907333343395896218467904151190820137230434440331843521712381223756729451558246912423400234677474707106642726228061400421473417418553017780297298466347160954631085229582304264141572312816108661042598164048341352954041246364192510541478667636008572628831610825999278734857428845410535649044036516550758969598846770690042816461831305470179942039611392710182359056868874828765808303455641720764248994334513980686917161618391938512869142881458530607134974116555076394533359015274161263283780510439370857931480450756551496067234766500181730637670919299579662742997608348025493155764047653869460114699249212186343620749427690597219999863304579174347343397034184919451715716269628137153780639453081165793109336259795469024087135160299756805502472350531864975601275387421507486199629455884712395918168061932156480649331169206793303495836546888129119269257911549457096612029560033337468357512551386934112119947519291282304619676612401115067258157772054356074402553175560849337148802581439898456334001997576349395709052641489750814413001668815800160128475560024570038048616487097919774058903430507124377697252390327322964990898072670885399326492600854654526346049145472688403979874736290138966850631195153332484357965444504919479426588045462293948342132786731750946651078759430634015705378249683161068558065375985006173290177905785005903472669429100208634973279948337336375882788708194503274802745708763696622117951041599407919135722322676416455642290747340249105849639349691511580710027961166901920151463199545641252434527798414620686218538435190216971456123954856528913377220630593070819989650905618149643093788520917681862829822512546284193831848877204660140255662187769603743244244511163959239086877674448615235839122983673854406166506631756319249492000696408152530972163059797044426671874771937024344396594316032452076114418736947827243941294045285870973447378686753691818679840452194818270531743566464923334084757351868329005849104184245710237954338177291853917251550189819128384037598155965429432773339368295477356019025800369230169090609046178573376192107498908740961882748794763462778877397945092109673614718619836690388107236918838487493898825099355891768624958022273817792700317299906440411899463578835298630323252299641174451862912003323968959013384187029603229924949136682540353411483883952962947283736615904041565729699961322880515789748264541986410795624569941751189430822735402973411179063658588176591513617821141083134641648367341831124152807842010090661867882705852417925779771119619049175949762308050110486476731913151937642991844636936697160819748992901052653813230651670308635518769785725069710214499767295774973199370712186792337510808890384348582239017307638435701878579033865689289291381923998150613747584572683407524101029061060222509192978125354194320486337538264991206827150832463901324500535413756019278679702340760783823215962505744648524256227381703819199381814818031680306472260924373162588971644662952615903071233804326575844196093298525699283688064217244339190528068979107805768840708932648933729726354379529181626462724437060001325678051458553443355003719491096037267308121996185778617755155329280436891312282314121079736783255830630994879794762712147205383375521531469126035103924676412766497752378160385164847224645284514539994338735663395681295822769827380762085803428747602436603881618575976021315487920197085418853346069859758764095852261828824183489354008145168035816731659981908615589027006245518695099005352134881484522802074056836456566853739529911838797181383867030050290992440544241925953628208882998571987134492071945560851774255273691489201779023865542400657390925866774199430075462881497696208231299992902714338542063577241473094573759431138054630766751277695797931822113538036017243665513815035328129600391190525841718148185115085518097385085158161687464555947919213912731078995186208420814637157661730882021739054957607739780752088664615178122982763622818809619252229081735595856196816369986872457981391164082134464669335045576258952449699306512878003011605673884646198558548115251007709670769224491813532164179969675557579600741905795812098648621076959617132560379430014368139733999503434923838623453419388098500701770079454779697826749685683235434871000459504112060302988643130191547058073284812738068680887462101566999391947252492974936574585276100745848696964763248842261877910000521503158825037196097927874346815521774413569598200018444701599400187389038755883048610868894865486099709517339238550022913950266011289551116196886898309630894125796030113080112282828138063718043495180413410102710823924618502327834377859608696983468547241826459707230080901892042892751663864533206859655785331589832106577033668675323434820411432986058945535557868945926867533322924147417925292035507415339084598802044512979130099518961110409710545268924157410069155256925003307706303415525301671087963299888476780271060788999768764412460079372084843582698855337069880867452189432100088959787930283144748179780500032212960816497672881942134654921023424893241393768234259802638478893923674497332317565250022339918072906970526667127528104318819981632937481004811443291681405015497527741594564484129924666863010055853713419890444796210036600378800936279302770895017284532019986526047648789841803529041031000132944857469069116421875589604106274053080651810680520486804607322949438745376870308071014033263163773017265299606449310311481713140379634458463711547574349438714983473770615753501556709126818449982084668088918746664844323363852630702334698810655839900389647984024857626598566874900698118317654968570131486201385573331089790397927883607672498836959773516195008296780451349332210565667260091910794546564152585204615979060477611781327805130311819807036823155535187957535184608475400678240377983199585660520059534738678883649857384346947476059849845789799568469559424066232071954009600466316279793056737115060648896300281834699854755231176108927263996420431978799976507242099524104624153198899429150318447582388886985962426249085445896537218989326258235750329023585099135886099688275231829337586451236512341545845974478806809364868219931485861070058376949907205182036867253616649125445427796285273889296408817652238362349451443287151987985839973596914612136540971442838259964519380664407949951186895886068220089904825630155426675575248364169847010916029315886758563180891007201006720615023305411317307108232954698145894726351299803804127376021459859887331297353253419764117652485500540786605605126582334607179416067438857491099191050024102690454956679304126401233799309820891822965331176579475563017829917676723419472798672900141251535677427823199156083934706709250636240640331833663515121995203719695185128400123596042123550888410906766922428026392946326741661675648377013318522489140140545927386037869125333009659998557563826246087262079803071402426584996890734002416089567255655202308210746553952001601497769328226108335699565940440821379312524434420738422976348254372013467082983427389982981296764742785869507746334761761078212513955500789473501152467545089672252664187807883545080296553403587548638224283407517855258415306035953449184072488828126899433285561404548834644303439206087921547930953502926155256483987908669762502404375924825123035153977304681931185138282245428056997488811603292325297089246525978492175028356627707330979153127562602557378273465073181835296481678460696991326621400746479763464835736576078343478340103459147279228249817919126287363614012836124630241982709433410332865026271959548602115112882754369822526724858355064372849268800754272179641032137121172429396772869547450355433968472583106576233856913032738721878096829110808332634728034522039096024575734150555146190005581715307825347126094004594784919000864828341295191217314752834240532471359062674022012771621937711613771807644206786293040583633605303385130411413230521108390152528560340809314600490391277095189620875966865841770422271594455899780895105930256031066951975810820896304541833496987714743312436636449513496413531869564406828144642570779259096340658983661364239105977552770033300580978564938520884692951438401872163832571568133695566231791453625167381667501592681110170906503290969988551219332609504776355980380691766362283807363353263123446139882468840388781494483409052435514382430420170134436110314774164104965102125739785985836439431808484168264957357423524329366069515319309878633355114817244387029313266509353093058523776142557563667899586852598620380384650123252819295489333817328013359415027311299124676354714099694868283399298612669377925853645253892783330746480152151589579508762754248684389916197694149413134350259736530223693727589219958593708151866922221239688577385411711776662188854726319041779141768104625192711667397444726031424905296181993115478348652314452600562648450943810562060483835764615272924866057372904764576205307300515655577071257912408942313205087588678946034206471404891930311349993412686828444354437438830053012235332891449739212410186135304785918099085015272098436368233272588440729705827499066988353523678288486986358480138117659074149326784690926412868016337565608317964947463972504193448964771478434360945487787822896420457244382088508985836485318499357729062338670377008983642193646456152352359165994359345594865129524501228601968885326825985246649188220607160530306067528261738978163099995298012654230212656758422610896927619584517884782131143347673900102532964393239693142763784349827382438446997421582285512407610414592299936848813520952584643126069315944623209674639305572854353182829599543784711054560203513520094762129859446532060594323881203006395355031610654843492157971960154639407256710924519758277548264374329216418635166335155264934091946554681619787001091663825961138536661363886280352290988237053280686692482481934791707156373932604192442221746615768307338623542881376954033883681602165593247762122960792661836799274880020771846670652679645247480301731732254833515266510820749141158640991258255508067972119259599675308126350428942956884916954258129068621521567925541148747123016115415639279731545523843859012034924543480494997483948421638211331783175427894880367013783938244340395664233695647521212652599315489292051693524468546800179776829308837457871159382290634951107029263929883619272987012266123240333469979420012823462659293438102784195536413553456544274791264885853816085321176232825223189834602825991308265832846657717659204122569510908798101267815315984415253697218897139251200778571968039728140432420723767327395958677320041127486466247086489877711370883149924311222028852759889214803857711343959752191355209128345188205058296845519630580681621415427519990357845905446683984224556167371133155256581755509497520644166605344810701938254582269692388640101638838819559544166986414798202846072787420568675377916553483918978169592509521438282236031566194459484984601074018382459727093743696833337870847863092976569852627901115865460861291627265814013271817550583345325438268711043070179964323559501056146364333926802578050173410235659290041071722001707536238572444129756852622711703923452561949347187843916826962027359826911705463429348464517827951001800231032703124805458300389568629516389823919835788857252055743795017059146539015395576015994803606460691549078133367715288212328659205244716328417997528836144798603751669046679558052489262949369557617714084429420670339944371800342297662580478496229400049959034640135338501692726455301125909092614197506457978755558587095585391827501704659395897904668782639897083265350410557818063417005129047021880952708449608863368825077756075413175794464457115230958975010683143785759042421693607956264921961194933937654603137079941791832561639416203338621008595355511066450383007871158166375776962975066253205240845451262588455399536117150805027248736853787765685611045534343459406540396611970296339615988558417909873945870001753533795754530468507037086301206424908445925973559195885721357407028920649888883135188227078396259354185387702933422291119284006178774568168715185748232511529081510891707871124064551655674963939656757541808897649119372390671920279443896873957218445616597340156711527545576044844508117305799678836103176943265880111687659699642357941121942537290674680129854719298987132910316751079308866393744636311375081800901370220230341255433699883159880786529830840530450015143856922848662585033943652255467345355428102506215768729775015022648186087721421058473138237176513117816295545635808705964459177718040262305560981347090761731818550848774525715847796121857142533885792774946357202036338418061213120109331755054928721419442087998467311619383758420196596290204671454807916825254697163751168304899125444593360506067883288745080917160192006683788376929863898088493869922337776467460246209328906440733487656605217172352175943337272730814285056631991420100906513279197895426580642318899823004428309672046208121947686080688709797563397576792607189488555373312926319030525893493930288574249881288643246405072673909458259856632495089080885255502589382949629035733730562608547023236019896564521868622094443986513848871300901826644167795748775583280256311884637252727421483753924868068096270220273695553177581455441040891712070316523053756407268232032544364351059024020987968623863114338100632991206473635889611898550414090808397918032255165074230044656789168041118275970709558987482144028215073439895581534442304570179610218655184165291444163111815570108035393338380069047574753744189359918772496565985830474896642035418631912911546980209276786547388226906958916511020918585621195195639458208170002255830194026443080246336752345089152146326063778150103504592888135234645429575372466897108492075144324970075621661957611846671326787822289519241225491758818434276226392398716189296759783109252275984702522051762991021717351540804889752484514787321290929047627145906793841124783406784950117634299796952924586986075235233816569073426218809314507220234697784442566784073898610224602856552784544962379537334238829911441481189624143352101806735756827435992816777848346716656745984739430693620175115840826361638440684594537993181290680427349163116487477467563213375445532038879219876842633315359886711321763680593635424900639076942391741655883003403438720776597248228334478283901590866677962142486945318719754570979538232300358954215842219383245604968612765846593687840749888318159710687349268589721992526671366480914218020208522973000569408256056610547010953047823971070909306414185374181275765942961846476265005459934484292613090762050415378066342238846998187604063598740437215152846144540478881580031902814470400478752482469427686573839216784126228192335783499353066761119216654688881208568039187215049497187791098220423679488511579619968728067956756586733512731515381663101743779196506209072851060437638923027853903608048524624236782998910112908013451112522747002346155476013184626460833338193224636892354108140916766550751627407328944203598081431266505095063731097470497483990610675380212839662810857003790991479044651323970338056941852402194460326345726782646804911343060483573636313383405853015918266973413560508384354512321150868674613276282574120719990149184542199201901080529204195561216384085943881993885973961701793605885582358624688071707297523413515754607327583763204790235132596437648400003477178900775626790057047714295212215690367453376194166989180477910724472967580263478680679182156113170925024598240084849218075800622591513467746455601481482419459596365357308608633415709999264523344565627096232213006691500273499472439849701118063553069614629385649370802129903601039286938958386610271181103335979818241471367027006076258937003813851928446910595512234115169205556688298448023812571934899481962686579562086239996295545466126061533102361762588118674675089483824717936619784045472527236527338249112408348709091779668766410990427573044845759151425901269800786109167133098399194834757391755883543626572641041291557923376833746463835081442955959928374489417116414342260264659349006283451227991251144862208777010382909036970199851925358581601505805849714018688616750350500367637470752334852485573923702132095660464655990284153295853815258603621386115153595894159780321713837813814726226817178638563436883178946169659120124051794984258065906719656542987878217040561025722287263160869330368775093025836406029309639234436783217095858248742155532737090965819345939508113357763954061602332155428285173099584355684520322333724883363441065937285214047282848942423061790452345952793157537394014976532572126804438592366810298471402148718952618217500788034679691627517710757262773068752121354083226313604165571005660532560576066657860719210331964696872175609646224239781932387713484916470474047959069885529923262033570527495020776071481423432670130720714677895921445102112208494536768861287905807059568484589878341103759591281922708095874323259983189269800252748611970522926016780703040053957401097913716566325596351040772024482379948816819780868406729208474713595788941375311683374731937896625207442565034775688645363120085201396370411084003781932545182391504708790850242192949463125411521389743506847225077564658267618871470359132144330373898717896963676616787625962011406455185763809660612743344428823756586037933593913595637670004016106687743610993054049556150353846833713019180504263495176419462290895142530858376969348783499379370765276440478969589034962795305450567075166198486686166083980948065694662215591235667371697762133936081489479528303191226733307404987925503773278511505474705271969080976084470731976588679993384394465260416768598172592270086549769873517178864573452722723726958123550931774086473956650803794688932359316437560597365656879842843761146431590376021223337020367455084161240925735541302634001562490616009954564386972346343300693721518182331485637167124538274617785665029052866047994620211367200535668547621092590772973291394471079228490792340699611712225320119480985064613054409498486059356497163121300849675747091930411977807157184821245499295703711117864815628315266731556692054084169395322412010700828424784030644689844103926596539494933096773313301015452315095732923567943114783504531571518496542575586213578526827696082247656844488555578359659035996668154196418974337468265734813486949193201920713002468285039019328376904575705416998477391665379649203885348888080804165019912712466964761272180593119900328863688474938301380845022420931875712917521737556888127812625343723273020430676290461611883828259330983655130123947759817462382103394600834455476624981286930402779869333494196714084668722058910602959957697757973033034435486232973556809937835750535015430615131760748608857619703866843608663355742297513650260034728487264261533786890224958232929208238769047227018706332290488102756824559668006917732472944662328360308679726872056536830563697544187627163258712712462441491625667856896717335429000119062539998491616390351458737287961723249902334722207465516932025158064620695139348886929317302131461902157712874629217141009303402530418551978152097020341329469139919524258452629498957320107099067762350454284986413500298413411927711550067683160637284661968970075262880194627251869940910056325608125841689581354654262625193216074430507739539186316892455138205641573602805155785888663456389328374752255853005939459310412916682699307731891499558357812711670387333777682163810680732651722583161836625011838604031851850100806774551162426259265566850557962164300463554008514898942498157857435654051808000958848446291970301554316508627040508428471782591215049535252613812708813922763297301832830850119645414355946049558460722702763450855884684200090394391940835035581311574546622976600538518191509034818809369447894908365150450759933791433359991371784082382081918586307205959173183627315182308490544868983315592147000558099690430346971217639247855502591009418567728793030307574050935202115569095030409057727241681337689984816173542279740922761474493628083322261155022323748168134883902808736184445955084249161087611097483908804894600520401128179008779264603614968248308832172010791574765194327143920523487490058811105096032160503430752245649317866980223264190810508606603538216505628107263294951714410622453966930326242332126691212169749286391573350897652508997287219299727488832157245602826392466816228056493045322842363654524891481459901389139919913919787829762194745706609372571340273149432039943070400311695945265017201767600126931180268668139753887374137277504785414104055760923840280802580483673024584702166433428901427128039184863488850039455372830858123651839565203558359048470474561365713153157945810377906038464514030444960054118915775507394780811495793996649033245734069271729386406537569325696684684463970316814416947397669751569527689684826817201694433276965113252636466203693139687592636449931767061413565635561189977570784425365732871512326948732082670166012857475117467103414113209744301696147567002826443475315403110013593217369311482300436153893745555318644852287671316759408131004083051911943317798448391777759898967986803773341098203164480712452032849279933113696249211440855552070336345262716798903230830495236128802088998339538235135463058830349194698500601950844736600278687844344942696709552412687739762859132255046288619919513211274649707467132493685240848416031744291861741459528397024099715016849309858132753967097694272269657493455855168070419351194812171571548664528315705884493377835102111558485873992479159283714786237632564143940415617721273488394571180147042393166519013076402943585643229632224635119453400494158824140298665206150623680406107719915284041720897770061872451681722558290010135720579373742866615216686999103248957714763444643893652480527975517460383630254878709915753480989751702870881911598804631254178778390710638790391830803683759762986630090465661836160830779983376350549549097946101197929134321800229567384543283575379455577526795463627491724647065221812577103677927761971939266070986617134304250911904333384633909550687103419226692603235996865272109111170473553697770458798232453217082940809698908544606444841516874999827877039371844803891797442274999751604837933704040228321380215008593301478873855433640080465562504043665914786244032175906905588588707871001189017420766302353885618086537540227579075909845331786048844554083828240199122157771585048492689093851537580967762679142041626721333086670780760876213065650682116007571501694610177123816148740023862413558718353898009016378019064688349507488595703561612681193649817033778378241108911472755698449048255294586943343781184052389754680480809126297576782427582810078371864260799282218636354567336377103887975582285215189148250508154177285121886286563121565931092293826636098207154151618025670272535844245532894530402182025216171971073543732939512238109622398582549420515633644096715748553161376489890185260976561086589834914504693676633057129259944898376876240464487939899040358209296727873978187507168184065537859586574152845322487790782485527216333093829599980685866133503980068097930504111626383772317049846400064554285022461774240486642770121047721291793979327077412294766846320640837596031901543680777842799482545138869226820871371481260233171688297468474600662312538048916732907520814674992801325893999231212998391510250145524620061048376758035213123660006956382692111857500699344699195882980587967193106200639725490999936504709878116495484644913283452506288023759456441974115583703663925363025181820627765838491647594731408453621269539277144219404282775639968240467245495287855216342618224762327041255392044134400675354073636526801123000881999262878955275797627231665924472144035459815472334589910148717991249744384482615835947559974928970127748528140186767391885272321419656147178491350512386839415040479848589649441934869362102205270594508434054716794800821464190479514906987242437301016305455323563931221399752837776110765893909965258353347403519696382320103602887031007375355365502675631280507538170373146377015353120621046517392420513174973179683561825708588296229993026645580891740460195121991581398751096314914663350425618075926605562979103230614169215145717938800292109453318345425785319113416050556225577928248363970261556173002810159317507746362042275087695249152142241271017011271169000349785990995948736855909668897206828843602546169996915509674628612698603292695144739354788311224246569403160921186832835091954762431708329387219892589410485184059520115829720617809023751885631431680377494764057718531608358715038090476329810786305702515419091620961840201545805161497483227882359656373048677395975351162763896720842350663714233709961074928723833319198633987272933400454872443234881354913428713301427848096514938008985646609471199901048168422962635156279636180878200455917732161061271568995235022402080248018496636649325374584814995754393330333250310137165735945508194674518438310842473572584092285973312839023399519443976000912619169508659261541165273900096756321808438501950602219012836600614542864914784974351616008924998269930443472301822918352578643165028344006516087796812382379934844244352561691688623247066722816430746105446637938972669259717289014273013768608518693749412563090174341061949567687138343363880892051089336740760613664640548594224117090288910813666363129611235749918075817608611268683909803006990613140982566511463172631237874299242338601083982356297592933916506105277517675494543009405192412736735371518005402711675303255358999341390062902283927038141462556628141548293658963536857869658633380349885622987109184999183683810940616174380396325813572196046229031006905888379553967935182730224093833198469194751896188315611960040377270304899909934001233504453520418206695778584603551890046705292920294318239783353189852870714460104884618863024197343251779301736465158569243424189355797122090144551802653120965592333913118835469769529137720112520852947415144280269815437173759683905735376409578004175517477110584576641314727364667805834197476578843598780564062759423103304901917209560723815386222726816564677999837642105219145149969429156496346723475983347939939755259900832442250717988270927135005831282320144964720352073886010401646372016944380279012672773176114619999536418687848868179250379186636206367784517450797679093726021882635536387220441070101770469010242502945993152417859035907660372193536571316431714533417397832398715884544564253201124266970854841627622796516189738913567552448567342229498289982305357672409144431202272086554982577314773038113728069764386032973706053831420428511263177640710839673750004546549396795551972944340373123434547767959840957350806539833046639671399823959977022670669263046955150109150405346377002969655421941374856987107525202299385296819701154764337319662436327305525855392901586500482748462212056300895398822836424131183303922607970175159607786442118227171263617802554705775688971691084764762232830116519065182625981958181874157056698341401297303884784059801961198333289272449892860794017027706279150832824708788015630658730039140887277644103670571974365391858387195720153013204150711836841502172181181459072108147791070519883728922279660003643200461985861545669041091106903813049670106364342615378293608052042958495795140669787808100789837732123749600106132870766132217771550035857788049782395450625134161588773619994079327406215022027736519389373330852143780402205481616206945600459701466835031819981121074295742151845591102085446975795963704847833333819443250299497077081226570068903338594181962894746151403679299398183826373849800688907152127341172104434072156866006550574936071268621648296464027825949435855017978426059514169864825421593815803897069463276255747115876517562301178971896457220825741824544680709349109609832325712689639419894474539201664120225308209907364102396997939350388239272314366145923382614275250750684150304408174386787257320341589437443567793082124769135764072314404000363513177009624956517795934744806774514466346856427336616952404744788584501405884610564980685339422708008326850967403686190991846838782481500227227264992388788908711745170132874431523936343487359243350566741141941269548616673591089001254530720475654566233384077502433713614995415911818532124687761273954445288495508944972973828346043310771386236981582666134130530694130388320919229738052421031818403948558657918906266754132871306287222002804176664872041076912254993682366640786902837982910842885640346048671450306095911795142206300042016478730859508906834236311214773344586116623695876492785937526160112591348136802501769497852092797651852318303548177622596465376154943882915524429441887114003734295038166551322584337585872373014366117405217102211866404428515253968074190457871954894428254187533146377628368693611168254592305649772139078493713554120936246610262640702828384714426609895004747913084483170754484971042741808720784572339321881412969338987977438958130768187037978710579558651308548233696228902396939752124890328833161313705891680951501739087968725838046743594754621976496999850455634588187423210356318854073141742429152979685778231014092527836649615130151832648546766056965527596937051242245468385941904015265731502661944716754065039303248249381051492234546207285612251411329538495825161462707042841644253396082108073228098725870652007675714809106740301590226769234675077943387955918851570862508790979223670112484633945817851471029737947190459334678487072723393743233566432586091464860155041454879655517403940636194544992416141356345175535018986167510278768674784724086499705286397189857065626189412143128088363374431261928766326856920227159644219735798650826645144606785336899465723450339120505403113446991020791546138400354870448500481822946905621681122961003175989599141944751173199489236863290571417468348405329198012514246197517988184342279990139781108105613398612081145251144984651003863279937629603923084295363688478305031458901718195820562991093045344829444643389500650247189658614856342452306086649593397528804105424705377744302780806036703690263499797378501662344845917660944825128537569704145520925421469433697643294756907415376713134059495587598843278221236939753785575022856296950463726058733766474320209820336296414334871660988028040703246634724682883136563557566587206755821930822320343937287470127891189672869211801211750414393837965790078055761574629738610323042689813190292986178367846119276114101253796537170848113233456820858841904244967884069301472763115760826066109051392342398988264499299958451046210843535226138193162671411508442715829280935821412113092748687009133096669714743701461511051721445118849632902722356252063308337461760116801361506958061369583750421625487026630169095830369161693678466743565285723931229682604342790726066998464915223450572910309229019430911253978982009517957601071540127647671289728440400598198588555929560533212314432077790898183756570353856588760770519915451879798070964221576194281243539607439560797667899755103987466588816715833386749619392197285221982374754075736601372662475589335057191090004625786879337229551654049220163410484218792613704376080951685047761760051630782974302233306471482273931762914576757965007790030642796265235097766837692288423807322037756331359505301631988900495490310829310428474183403816674419703396996536301706244486264266300919863527834680375558328024202417516588905343904603632340824442171889637130973688912649462538527474771395678092112106845801655001085703333711460127450649798348377692612246553824749369374426472810789800371282928538230399462056803874615386276819148497831078345797843701210634684529872538908487065133377999023119413669872760839265909418370917027008211394128461609187691253690961281132553786343461386381614548055156544187033919917287029249923321931978534686588405889625838670135211510901629437324194065197724795026214361013339005955869406021915839185791137752663213567929736287978581736914599581886380158161984358672794936658364868420375852068517730268379879165241055572714340084956787288328155113770841442983196556099442200686335711354882445053732803589747076816289496818136755957950909644222919874697208629244544676594090254596593107145259174586658149551828349405579487661215503191197639392463577323820865026088878057107767829165444427276624660127650615041811783464109807640805656460586508168503930061064183384244799831275506521366568544803596802440538939403443477749604582963244472444814043760485146710408956223660387272838396447227866715316703861333177235438466478969350175837571384276197856308437872655404048891913973983703096046415599766121577112940705993845243379818031560654726005753296015355512687350005963760479646369512600358949667895937629032445263649631715217733127152557008498850615130787182599457502581919867878494412978309534746088460704981550059163669042331906350444388734526819809722644053813677386236844044238894416377057099148736779056424142424519346319867018428842966465638745411066803848001752501093052621872776146188420962181306250781102131458136492242303154256233950750803903561551877316153168926737664121001466506945244678781974114036074180696442489568448462877802156788420737603380854529171697176898967946138509634644945148369289515697503250449971047031180997829966370138291870678270855170652846872158147559684693536414006008350436967336788815029439405551912796612900087574028434301826428113527127624672739032685523067188021359960251857466987528678490904943653557625272798524022291760777346211462558343698316533712396115673179941199757977604356053213187041002905481849287361599373873973020928463065282969000450659909070722540018859082455707117755349353640139514045241851316534259178969738863421665239986333742942615356970792792586886756824984916553178874319871074559996076713036803911487378811584283577349434827191483194298128815556759363011763504084884104934727343950275329016054429433751611975329308540776748398746402681158713138330658442023285893357010734033189212301669552323204905163376446348935989560836249888374374460271911195946074597312680042866958326968483491656617588087912112661688035515990520663837647472557322707748666611434076315519854836923491517569779409115009157736330311117079722338579418181403100876179744796319848837575923003469941256698280724157537195329275063458717488732399163547791647799953276287954809007792084489347936148432453339924066745556755265350807630228047403992701366858695081695956426947670802398249222676319712958934643278922888755397432873309634639135162323939263122843877651606138175777183766364465022801169796767164123224447654302476332507749603508374309477794509882003584919078735130505421318146104824904301774820600539388824960603558444434840121088145773329811323671621843196412536799140241752820441462605492784346044682245264993253859454943810437616017544190907877985593710430611421290519309858489448689850242552754802381378425993640989490789939924280609660725228518979486274110756056290079342260617304704649200202720791184315372026006046152556608509928848725575118824976432738521285045756712007683563583824758474707168417412174458081689055914974444629313334404979355687221722985141653143945517613098847399694214183853268838907461336318639214347766808805783217738542822618380042672447139441412255208959659620723817034254515922551464261667491420353433159232332963625015914809870770805222360819279576323656980387929383339920920222808522155423137007538195771312008782271777109207242989459131309942024082205229118089868113173518830929280065066021828974329391628758001523693862315390237263216858538074610321709852070585922390597818013738429239728224669067760492264930947130554735914756187815542614044699574271324723292178149020876523915808149469565307549462471942842058129696932601046052086838718024412267154118958191346183648953127069927509620531725891564998849912072295685701298116398140198126087861621571813953351026484299455941742006407969855309786851884298201151347362714114200211743365215603118008921434810600834981784704145997369433127301689953711701519924828579182760261089869084197511576519264564250791805299988397061911032701256804942235623110216219102179713742423432000208518668445157062347319498006844525791524538180950697056068194391328504263666382278068010987384439862061308953387328447424547900902346466794770381108875256731673290621469824891684219805800144558995953064380069963153106197687781241153620689453801056838413036231880523753823500225803247284534132723177704346681402096075862204089188191987290841303047508121955532485978553564225785369305028701188182781291595265630909524966175186925351352733384507726287660187023328340246990778031183331722058812818901603039117048630046726709271726135961280205130182021029068008550767690014107820543056876086526535991485424219499308706573884712814792986848400239490818051638362488101271267715612856141700127377590904916294018381680997977204623239121538753201666274082043169545058872859684902755731725063323593195006205240336358181688277059004108634448585121560513472490643767343776413084901500544544974104962741271660843589015923233376556832508238706982640354759946057742457542442933412923459854832161778485781486921465208975547622268808369871702041125699957843249973070429266123608844766230388257247330860353172732607925505706219045811833337524076618577987125988188057795870891737328854088078233598842716141469203397623858701547862003789723618964704207729020066888001238079991845726995243638102502215169334935395656508888121282405598362705899096535697494202420948237834141303814781890451600763275705644747569428990910355895631911646116097024755886384691883480172156529034092073201270103859649330175103494893446802609044919940616875744055418363464213350189996472239012408558743471637766144667240915916227104676167771383537159060499436844106397753115927097352140450535239722868595887614771752881647512323201242169964043676395057611867140561308419528275952791644467687411857413503399736372053725450841684670146021975318125061453099841576993592317807741615617587453986456876471134130345663137580883559395516310902359484118948302854585847634297160043953337234272560825349559962962046132806178594771389638242091824598411233106132282390121801540622696207134050620109805212927797135652286587394500835176055422385127885420898290225359974048595975156613681668033024086495456454871362520985302832082976055902692296806699831960170987497164672554530011649873857984128335925057721457571919083433272958054131706507499817019018504943336834052289534780347461524835940119635531507377868767809224206520899674497650802700894717172766905417124174339009496689340777351625596222396979442340288487374091795856930683278127984765482816689187697751633417901578115523511099538269742338889807616578510069081152876376757205484015328492582909254621455501354363196978677273058764023243324812903313071044882451882601630793551354980904327880284316440522231787567410858039296345388998010243715177561931831174015779938742571739983841536850606569054001157879344942830591358623394223980834037195690744817820783525506165730266444296332067675709288620178796155632407791431209147957188947877504586684931312844563090116791746029903471480714622418336680342935730588113501798954779791064735001723680047907279620245269506496766663728103612043469187762024396990721846719680670166230750880828076239804265878808945759790527527853404435485302225220216181941427992217739662078398316139837631602604198292926770057704998910292711667110456380743734680858997856138243848191762670721666430650848341697465590224575325770990998299418703626971302870145108685166888023707710598894010487292576256621844326061084857691067353900197480658251424100662871726975406333691774682694533695647371161826158596847389860681658941679266529046670116696986391670982457450557149609813010527684988276714542735145276999269885879376842283363630993414185978135106272149808366336232110933503964908921352857940433893721375118745231483392839822059407402254903780202696199375972895655296392951627958421252005553519047393124218422605114728779997585998949882889391673387760155331713240732584287450530248876229331905210580297719129578727832273674414337231626844043801060767197868405085213752156938937774122258174801917883437112566829537508302407495020314081860856339259447078162589212590055647164989488016461203674518073816786917520350659617990875906777109325352497335041998704588278624709175353957246541140743775172233237383728550876369419716599530613666138542522488101836185231614495238297714421101270508649963154585257680552838474284730523627562853879579559692965321410040612288168505446996405774520718830447745127709877792687080692329388860738591260807117753081877525027453063392040464917087564288196153030131387599163876054724243284853324524688267398441745476011803282249749574239451810066215653924770009535470507310055607190530545987710619735960462208992110040604174996357914292480021966316647475112234712300179487359080339488177172789513268280606690838429752116489548581139879841673641176232634233068290422730551440902407759888604431982588940852611788222217678572297273293188213834336470666738127213288671525902736808187356613059612904421837114043949733391446116224534769386169628623755159353252161417960602803804506517860137057471952526527373205953385745523852505018350129069152610086516947774777699980876898627891989713195929573804005514436124379440615841458846216403631933160390760920064216500907587797033731153361768034103874588701917259184705414628235384169799974149858298246834879497694904175442165536803348141176468099217091248763484336367464275188845853323300351091535315849523366504154252893524196350824514736871560447053454979005739722496217624676459304888696164939907926208419133312740232775837898064527233683353832737018500915754786562769196190753234001790760523307971678902578681229758587169635500368306558215735010119991323584317316705148974296630313435688946146634589007249446644126762386705072530305404418419652276901822516378377944307602615206854644754385775860351769092127767919983457395384433894559962393757800172151747766807714574815653946951664285213407089438652398674210781845362460651286500629224560481469650527148553535265247628392831892037025495361718132637807460566189709446615745856325908767482319031919689145051009168374404176032968880004127911775993590465421368639502477088118436354768610487510950254327600082945813949953905484848995114433783613536457288382800752233699870590242457898303391679328010126895736854348148838686855173085826508892024328963495216778139500380612693331367265553143978984731933291850705331781332193449738620814243792607689545544717289290042314029031543638845669051094160055307333521410425333803794656342021008113010257997392828372098194678061818085099237315662835193777544735479359364497834250297739724164602175329460606856400501510666761514169363292252636453200648802210563785112739048114647289359848175834239983113876586248173347368344664178869119942044233657369932222335104673971804151138479211307980667209446080986348609246829327302282170070114809721801273736964137617920545804072461391778425946333992657115156735451191348316304902324065334919286298200170812851947796044932281550145277798264409933939945717876817418831370872324602916361604665506528376805816747931619149607056100881589886217653988694082285502243548870642306213297705320708631148004268038362525461667169276235688249062185667109465580763051929750224585290469574159124591062436361670026614882516823103091738153555596081151715702073599118708538370860498458319318508453134545936765295161417949682623951056746243979948630623714736927280923250422385959215262383648183489402328115570266260726552458166313884225304319168420926632377841789192352622143100950642690765332719574974733855046491985913880261093262717392822720159947130423257780091026639342690844078880640247581789482273990182383806214794825548636940427010457445595853485183378601734796947603496991320635598891601128819363059224814689813899867871556616492122023007186751068010735042216221477331432410377547833053068152881139567535000771208672834144103046055148913261406501239180398215121438257333641871877750153821725400632677699101032673042578610030651291598829964364339415915672920577191925132708130197578012650373289381212733664530657764161243898830636755431715886776700190005662281402141139585067813721329172949928714011533806562602473790187972974728291499245351657862416798878217679170036063506242272506629072489187399415331225211424782442320386657060313734847305823480141050161871194287941256502488165394334074724767836833136488848230449330875686935289379669150934857750044632378812274698690372386449089301387207022315993500754190354735665095466682934904980935882788650860097247746852997403755075813030492781653957017211784243069299981609660279892458961900115732342522706746438562419891442754504558848012435066460311443693229797315015002606703789115396854066838172696701251429668782976132322251341218481076128718945937675980914955576015810196280538049671093461577232644255696742661585879764240078452851488062349741212082487871477592449339436879391982843476031900578534787407018284226192874196925514436701705314834760794756005875944671284243969406750220536219502832188979962829484611025768788594867685509408862098334547074339549415734345338418091721688618643455902859819252778042885817214864892815694226809991371465382389082898145643837974933017517019498007727400212376525652904428357350539975231083984033332022173256020678390121264032547040346846778010160885466200064651937061172337200264386191333899253193576849375956226618793532678469891831697346507028917084935021240726923630051165377633559017120979142303719500105256355827097472560044787707670126416581994012327917782570343434407497282546787666608057817781221711341811143880896818046002403846319793108656918922652365828814771505219980616922735147961026583088192344643878847466323503396793812131641620613359284726875485882898579033469526736764411796779158597241545233220215647427915268509338013479353519184571897194362127258472051180474160555158340879276484564339928355113419235938707482905778002663022385035041261999355720211599272853689641143815043348557258178517336165126809499058449550790355676308677410480703161633828842122553618563374091068515860042294327833415813872087948954639069102494366376383054840685546926632363921329890511825785333429259531728190558554337710805589789716251651117406210707681122082157525887468935240024667998125896647544181094483367464784654604964191285478466480396545943424726938529360540129769356267709894602263220318099194629128018786223795625180193041895726480557056978932650499550932820945128836647321058431717553887058175527692684383688514043240218057350161815664590731241662453003060596971309238010332283471075225185642109060161931074006899471502151669818786815698077482666967891781358979767846851115916832482750921693644526466770480666934166483442944218292387008693701905563171041111136735097479840586628439563477354519112181800338407608016537746929079734948651055046328401494330148309669464108790044452864133049407517797581241856720770751880746362621628793178254619177517634589735919411848308151786592692930628605708720384866368868946342479723895297309149603741630124178722538401654216007252601633166068094943205964236708192075209386792448592533946434748238638323352002822408483986801057705299047367167291815555922163025888715541786260303366659752141927047120510128565391161776118483492786032825952394052499758232498477845538725064159710192707961033634996589668728171584607000658740780604751688304231577101625879833286488898855341566387881396887407971510709581281386352455626268983353553353132566961655853938104578681882067443750261883655455664790128223804912332422388779096800174245725461449731442194441756828726502430611833281953054436702227587332831145291319966376122025783324382613567950194696316116743384676306856311539783634987100720052686317613075349849766533677586599320105047033046392323888891932369337015201214785781796826877061362792685184829696471814478782530661813126231407493093317621183100460727852214120892214369352519248033497576588718678117621007599949750191901419100423724754032298772111908935207927286121216127162938896968929209701904685261604749465613904940496273609987499436478267786412244494110676562967217113424222731177002289753188568663567843237219271333243450738212185517912604078344116740872182888782966491530969172609017328606971149085900427492820385343579658808587061072234550578111142847838626447905670744550141828455377117497099537463478693715131806901301800367293910551253299390066416546040125117085171587913407644798001499781117165701751953363071434645045276947737847482231738097743054996342737781553316845354542036078773382069811773465721024307298619265995573005469568324493353048335427592585807549199990771092063428130665279791912628452726297168920228617333730421257206283551526767390621528200701014455242295951858417865316920323169950909337513227670957133251127953827331320364129504994200419724010699587238316663652164224889291105849388565349091039083822892444109560447184766384669303938730108732007154518838453799108463615134817884678991348321897788139846856194894582133546472765192600921943745902250703686931908395370489642629975717075398249490844840082419778369293404003159457722193561942203366714303032739263857949606938094281298449702698329691189346759389648970321486737698810637737732665424047418658333436116640904096540031234883744393419420956272074813989346211241165004365501153856111752814022446187518549713635074588630783835836658233501583455084982167915563469001176667908967122035486086514137321272751967147510329729227042339383299619819649996103312726880877159128821719477622112037125836630233528272106683912419997191207997079678689035621742774022603997037848346405382710436251059555826389721898378213463099522298874743590674753339740159906748238438475880116131432704837588523806264220534528252767589772499711815509321646683380476888917828960563820664277813040759389645125761478384418002990087989469252428175369508695938754348373946101437269393159591607561441523524484307988108874209520106919210065844714749041782345196123089109827894794002533894540245397320606329858563861370302085697965988926052767720795519236224721382480261797322768561404336463885456423561096917730107945141215316587956125095262934703108378734972722524765057329855020665667024190721556376369418860869940789591677638549772500011211742942054987037339709236102730261133659817964496568941811149456232769692631663499994257188385164908481862956209271562714809056249765838853805141648956160743542540073934446361509762778068087621634366286455153931055860343106041269452818875336491752628608659299745207308004284183608837076587219980730715233287915313056216035653464313769543280446216336041147227567602940667124227599702675736855585514524471673975122245270096765563234326176715306334391758061187424078409877872614109110082056900613397165384053776902293378936504772823917585340649294327789421024149512574241684456484833548980965067312066879366963631430968608734817132893970224285466786080480299813630932223311221510905820447052275982242198483791029305184176797127848663341458639437149757789268283225713288633302851415605409448931248100706273790149766297558141685311196060281552861488408942125949843396575418959364855086025845008761986880189195715152451470446851533620609688972629005894356273016819472590372171526636961958707042873132742559921567502919193184402466426809923902363657620640413929046442267637567011806846340264439597312982315936377998949505077683291312111195081720653168581160022820709166445070909162007817476936085922807544899361911826095107546628034815030078801748138452842937417334091695684016556776970285161451479780111871987472127785102372389233576301832096811287474766218400453189992130140292168272544146520101761136893715814401839505058870446554502207500721250219269976655435419917945027226348148781896810123549072447968941259507550931574565445350034450313101305870421179300105008831659761876004048683796912765829517602639231709165351708063707543958612447797243445978629431947586908526515342373328060431378849904273068934565894827642964074416686429912083004259502206251841525972323050604435840686926423110741927999933459562468614434729278039357814473061338889155700673729869338274703674999429052121570687958032472513800533420532143036673802124683459165585508837409101281573061984268080136799600249726489061179813882522979775069730121178820919691237141547171961889713223286009849002962691425590126291115529707425627942920888217293356695504200912650731380232727171914313234482830189543947739925858742650620466666305376314997975911988068678930286091240985218071894568017434281874276925318533477199804799973768339532229085560835076770117618593579706627571415865982202120984406137477764016234197670650132339682787176398901046433612044115126989552881719337887824242856035265456637775079418229245778008218323811236142861842283495980501699971534397237132391180989707073699040022994726596921341688874449045063855795738383128027457459580002653167946500470316542564980029691491396019888055234983503264289409235901819188596978245590243855298820592779454157072468733961628635083789146290272527554398579857671376250228373133561923491586098249328948810595964404557487394608859389281420918921363990439149651352757015389333130771918942247119056091527389369588540751580986850430767967409567856564775143500470904176848307615986258522638397693113263428032240023404206928361627912973845192088037166357685529024105864428159931402124273348892330394330795168796026120423002593725251623732318675132636233315015342554427179008776428113446016345207590024018674713834922446505137689698222708132019937840231671171296121997577117735753736756251218850409458215118230335780788897990796730559182771145891872130660167761199882126550802345808905766333078288636642144569858023524782920388959723604589311888486844012740134493024087098226466182610585402350760703385020869485628821492366368910937927452598478621135186245534870253998974934760318869747262663007637755863120190344578193520368136994113556445059860575410077910502203207166616997471880144867056115635658997788024427284169693276748641915239116195262831328408505753655381752066450078820131669553479532088024402302106436649462303968028264663991312941533875913574934811619731376788266410219327449981807457263606695276153064255333689013914726290381105062675806124421981944528331063147134743742501735517781321095181101695709278836256411694072476076004104330658396349638881561136978938345677965110225551071274798092759672541288189842552559112068006540935395076803848839797423133453849042556333071094770006959650791374714658636145920358464217120710524143319973855142977144241213975560911607786658560374472168830103980442824644819597106909777347437142066160027069925494857073792049877279804982977684925161292188372513471081528564021303353105746879845842564648738768511382368846517437110286601375939897978793046756784229244169986716533375779280616291401448220201907339189948383763710817054968435601320151612827063379116671890408411012043088950125160120780635469003557104573824534299628694306746336744856972785267111608985848797955879662834434877036995320832976947926737207511626763768696183704575733980859453718784470300577939931395613002136308007611064598653994244623591979528336495993831590544233942193104519105588910296896779432783430314882752744018881576772134911385246095776743125720913037855291762446323162929723673393068551070235555571096216059328520685079490808713186887455799145250041116123488508671248538984219853077413954191823738931603832035172782203814582887668845029817874524354620517005029559172440028446405902864813968923058677860009859929303425054106673834333750739138955220190230531392068327843856896742782850418622862171689553660304729183310233751327137439595675385968321930604880740600087655065747482857710830077301145254055941670251541770254951843451341271689504513512836105027157696115590177197165894167592968137081550862852952421968948587726136403830991078524712849491420979835161477483213131812707311478908997721170101284788896390271943976353696674877107656313570507513769421240309360250329627096111927434450174313058236650779500636290098205144017835671563309381633315863390126867125111925839239371079861781591404210121748293156477281866803445480167431425460936529810795921106384007880944449375097089632039280680768322007664196158472659522418535495601732697623635996354134323951473378030613413995721927702007252603407170271384272478871040316833645974777374105461490947201441178029857477437689862012834662308577313451127895813679977294109658791769951380914533495659727528538928016609237662338543910103811949292697135911247597443760981318568011774740975183600712622416416000492854111038644561223018242031364620350753259030004144179683497469183016298502625268147323580583724308018629312604451088384981692123423899411915240137779521464287553435583832558283551952351036403705703970215200157093369010139493645426897254158932962642959899053066736708931380289572644300122012321496908815677083500876051226653510573594188174621830393934599751917357966197848726819224886320586829246563825565367109449538775144852752075493609434484308782983024374215187947255510362812163622704565484117613020619526893716927049952554124040037654693393921883416032891072203644653289571285152275875817794492811614118000559534251374118070799892777496891679222974447796434180429251166252494267520342551100014765186688781857871170257221957736004061710441884899829094100162555567205381250427053108579972996760990742196774933767766171982926880420746315821044342993439550395493225577861971611019388240018666593767747836881838590423239689282821365450340069450680763010354282589260692932250696783707904810792452579407611742034740392070966426912060701901271771221842956220188295033115763592003708118440410737741921217743785585743093901538097381868568344878124427943239273371992673309628036601108053379540728185583020128933187072199073174566382061489587692125129297869282107142735977564038029815822789500891903763529841863382655589672514825524966595882189866190472696349250119578692514189892170232603040066023661334792870251629104983501309847305685090864512682147880943168990142918652246213367220683217534148061925660158503733057076506891375744050249241747554057037428311159302217572044616912436704687329807374349257786132870153119695464427609668982216522173521034927899416616719840994759836726334399317276294061659528709286425497804023219472309071549780529232686490947521668080258067867496948712417345868406431507507775011088101376657095473304213343847844028447603630310639630220950276046556033717573769254777154973667554969995091792884014406229595424400753962445796776378532531765946787028631173994652077927996534054114370963379386880762661632174818602323076881105438111320127904227313158201941550308984524545925701906225921154662288397282690105095258383452389366153547370270825165095374573427390942966009031936685711284481108889040390313962949487769264922083777940257014789866788174769971415750019460166354961545957172773530726462539164721340599397294196512651207457303986330162041897034264064994564336821245390341519594703944503051834161581595139703440697441027611752081920708138496133492200787721672960669303435536659372077311301884271853629319394260978194878493632577245231145128122307789183406489358192059063473672862924772474076489527505826683605587196720562390204752748734615811237543448544630525053849961763266536895068472162522829921368854839435545598193829535497881467650974858424739881126030216030586611163180687729308754105469647790057892322205406951006374031446671897873740679546187950129968839563161035580463933808274045023752527081314150060967515553259093850189296702374209782383733755006839019172949013123374314956514075569419012516100211835363060298652246924428342616111539367188487979886390641382841191627060626865190180193399234551894350125693135005544388452954401560870046266267645671125713838679261366399377842822288361500697124116820153584957402434254631515209838611110022115516226032238435038880137424872303576456492614884837692649314038091733165285519423346497960229579392499510515934755916594639032064111775367752851164329835936484934382116507285351529335797645493903508290726640757321214254569607438003546602821788555841710317953047245047356214174059273295719701974854020113386309274729446429723402394213301660628049196515499815552657070409327209281448717671126751838306307892588500754484014251315598053478906451358873593348929560488920394314120506624952970986982237465374566188193611044909439672681278687219890625238260483900907378302034380537858775921568377748974510582291318661371219160093507538658792478879965825579140218772441980799426729953909797652042391281604200085669840306112733735360231866820667024047667107312763256045297795472033272476443115349492727112562929653927240907768003711534165339259439453526161524941580448393500054374891776061402538175038392582915829856418287299712748035186161621785671821210445128572721476507344263842838712531176694035071205886319340562207344532597375800941726180564761516017094781002937129936245025077023853620345920773438664604506180140920002555880770467370537612124798035365732891181885350790859845806680448923128713028267638890383425281247801817698156231495128314244280027133166392027434021169260278024946307472246937820954026887754444542262619185451160600840057735747192544323383951828884338972824057728614840748743807085387552030683926883953053111554514613266453092010171561638537607829915647300446174557613726878839381392081230090089391400539777422578854079809050379934735690126566815907843818202447119806380490722768832507588358336929046893730274492258288549335323107997218665030204756829447865848813803311777955544861433113209232631629099109132467954929043224050603272470239871198589322769419217530424314541245677558383555693144077203212991127993685079235601569579052993852767965940284373178402747359512945548215305049055046602484936154724305406786009349054943943720061217544186818587389766196550329968044559489801416252081352264019580813349330620934390566901745646399350879139509419137327630191244552195362061282233167324981212754725808272732305330934424398653462701782394057038944672944454726009684512970519906836145094111703969180123916633640825123257723298985527044478266112126944178708675645514608454896258883970039849900940926766509323242923104037488310643874971212145352244843999643821076923878013528012962843666662191270840601218657205810179446444387230925055254038759213346537838003545828215729769022326120058408689885258680613539565798360727970235447707082193628122917872137868901018245740761539338655077725327922616466095673330573424308017059010359150078169215188506158879537029401937980642090922459217257189627877444399015057949518812685229577813679403259625975552674439393823416575514917022487685374244136784343024162880282794016301760210113560853354508168267283850835447452996330218442585086988389361634605617031007092574923521773377531144040642595613953073913685752026542680289500930018327768486182717819577297934393414565496101722042334178647867580558649413875627193446859204315239948265644307164875175950754160089962393830553103267728779993834431441031981713374645512780815975682268668149027975222940958775274116495864438920152810475261350631488969730146900739526886742099695500526968051850839384329669889678342982180956861771055439344563367054691005987537070854370779944365966237132197461254125548985805648125468616439067069190716316910144868675702475737972244214009112177070019443090116681711892674782147275842673921204374815054630831998315016748610371380660414298081513505481770242210224616323535358062054220785981449587268128647402311977113080476151345078097203006970642373185097637737735152531717115597737444381150201208268961370118397991074838837879646709429386983014530758431460451526194575728536783259841831560755651117978176905065790749527556100017031406367460882504298090787841477494771531063901560740237167408975663400178413328569593159897713896991365229478751703763391450451515826210201950132259264320393354485958350685530605586275699528514445549346813522596227339334845501952938864333193252428378259757349507743373443625335030090818856522126045365304558348588363329556697510162017721562590647550211565583143630945332674993020779449935017122104465385244475462939656347770165293138731956506114143318228349187675940411934159631848355004591039440362143619246750819582725440477100247943263318862685839934918245700116473524073072397775982681987905429455713197973026767400044410931928784276305660078175398289019029169155979848740254693560884464711106929854694370658565396655089548134243313023008561285576787945781739183235427482299411877140081252776587565325662433974028297883474831435714111215199270976522408707949815797456837476781000931712771789852520737135797358236298929332842049899472250727521539104668898607266126225533286470567262855059941931112436008585016952214595595192965209867552577453002523575803922099237180873604753487557514698009821399337152928027714633640332869925943237232243396996682476688482704452398726699426801171838257417366629972160812399509028476378973310963259346518405735017034758748372151139285353911689314553175542219008482867694576726485440528732972879650276196371264337033397468904248380158852520885540516391642774153107718664854294771561951262140229574557959414628303387523462779273364179685698102797658955296824513079044303980688381893362583916016851047394573624949064316007889381937315804911054297379639747783560447245517586682175403524531315456313063605461663564860660572071727042094946321662849029783302200974248513051991233453019131724386603607629996439762414893623524324592613467005968109189860367765125959059398731401351098215963583390007342677465344365249341639347817897905260862401606109135455240867576845132411654490292366815396196841631196968787294809981937786953573143513280368110373367750231152111450410300342596077903951764340188920426471301991465441962258085350360540850148837232157573139581100298003407738213517118357043293167555533906772906240617463057282938694839042987218437127107753247432825783352354252586945176783436419635134279493204920015783658807757739104458762389917537458924688113561183383966345066545364879219134517741513018895557636987016228852234496505983950125843027427019354100437831698730655687510355484358730200553167724983868380611694699557248031314059995007027228403248654799571854142568102344595656090292062434366499726550015815925329415304064761880844176073311853212129634243598529989116484478963523124785683897460598432252193182620358572676671386283271667829268197022227807866590422150296297938529152339575621006360976299923997053341799747838949306130121903730358879329245491389744145069915786617684109245151537114107541312132964440226106170705572322728692886428361571900882901920981294101290849843651434761102921101466069292811193532352789078112552502847337593408558766044160455376783905057636095508972755197082146272017764893228189829695194561952009538217900208559126100932585844696100663026704185859105335256583557594759655257336005181701672013488675489907350238059172618208328223848926421379914084961963462602816036822000979723663020169222012173183743083818636288568674306467518348777635158020397947257915622286647227760162778525350117344135384769226861725608620650941872686736035156360951635509822305188840512975488653012563060195948089088946391746391351516895751539200322175370794952212972712111533052301879713973760511706430495309423664179962270423907309089830771184506712080805218322706941328526649765607888626957465559333094812437467373976070522505473581449868538033698009172340393201831970715161519635551737901028301870693604160215980210343078729650682035231154888586136492249837227550856724779137847189270374340172758762031366151532037022696140722886039266102214217889910186143153222039395772570142143723950055983789694828227535242612992681890095140777893152990236795622352342775158071621687703954695166356094691246346907693120369346472529906602231712399079792254022800016425364257866736555018096651646893768864050094987584478134204355583712899481643635449654381408425019074166016489069613451779545723378132684242653640738463355610331809156781865661863262844292671104936108593732235560671546996105843434563534418770246981838892157981119031938303659853110204849235124400401694887057298254696897119812041573033564803782058761790102969071644558576400860868430207613817421923853692834108283637372904011640365544891184350856299059441086528574609728846028531425900430042666500467932234155353062850283286429546490247395086767021963596137110745402814338703327011389128884847404882275510522282000868702391686474473939809723482005426501887542207359422556862244758242686100111142754871344194226769269505585457311569109007760779834108557104851973162444043153443646878673774612004442719349352900508334997705857987348444865135818419811317450922347401238394995523079341092136223559181158267792051070886690322943873299645372515338275120053140042639436492476831373145333290610367193848275774978060142043129369029565087952078761897988244463738541874466662996734636315135497714201953703768158447111997580337394312284639811878357007919040047140721718008294044257959922959759590707906470333214811758374197862555155403718033558993149404714427913554064399326169387921601499890245573540725240147378776877922494671546278808414684373392334809192534127933259146142624395315202101848463592469100330064794496411798803550866180515599893000060262744633823626790180868135539925014590731548159125071399076705286888781287170824050371023748971453780409488768303287134219081216206658863594700971600236605375693112133301458837407654379113445620044188282703355056208650971563090498364755001061018837961564858733954149295253249924600128100825546682000062006848296309737483169956385949606072663604723990584838988204733783637663940568911746794681648345264452576450657145934315377408083903243736264313809932896766565622065011309881599442541179059211401624647282301531277291839259753466799991517213816907768923294358649377101341077145491959769126092819250225617506495393909347226219918714598229924132564317216044090112935159141723853217853876983755039775951043359220302857315830138286671794927104659736538317869358716622025703084718488331754055018613308844286807826389816460953542924656480934336262147759649816220932372650341359728152117120632160204316047920174072433868757275316579908518657760938526821818160497950665397166143249719429378946997019546503972942741619096869915885148006168386626204460070844149441803262973384944135712798091771399371893805332107394030401599726530402659954822114335280282249826880469079388295055617266274561615835330232125177467181243860176848921320070855950548112407827903848580379270982603994465808630034905746336818491349739696747324342892356980031354796419452364728408360634401149407250771876099315363521281847227030299915716785711953854316198473649951752512422946446772302338512985855003033630189982964815024537279259166435164123261920265144144360977238744610154361364806469392939936365803036226388800086674776516006188281603440490012563931664186203642588467326603983891177335953998584635403317251772130638244920847119307725945326824146488097354059201962093632956142791740360007465372352767803244262767670007988837889803516203766082870115285074277960676553123099800718597039066493229052162712157223715780187360766040998926845171428926653425710208768448339734591000017786797929202656489280971390898016333698153398301554605250276941061591303663716560982049790355447325183963280107748545721697565332122483607629166115143768297944473506351651982868401127764769103803694033998209543944708421088110044399732999479701204351131409592339851434364236297394854302911482941284390160480816903909859364678059558533455993545117211603546671090469449687253775251245360314314758226876325342854752197538451664731546510070444616333733988536575583025614381631330810156846959673711203158878999572209522719298853229135033761605376120509356857964326465496892981952897987684264621316298796440366817198629635306320251424366501291019066544885674151722170117312033968640135883355216940051449720079812131910673890267693630944921576854395370348849142934189115915019801496414180970656606786339187177054319983918262144231597446119761506899520354677595558172592367182451522452681863820827092442740441789095636639209113947301210154837827063237007720905502045129907327201064690142922938592740565621946074794960211762722238396437647413934073994180979157136903548644475462328626392270258103768730348409104398211230675181579651911062562734338250704017025396480619293468336204692899854029191338034794087754532855415777970707693403413271123842371878029706754266488546101981516755327614034817625494104528634066736210144594058918573965675153448877990987269053872867825169647656510103351979554860068459972917899704546629940784465767357432348874175090260588309161334609604518547735756628330232636892352539382992734750262734574645831582640990291649018257345573487089331036226041727464630486695696369652849437674559776260061192053991172238267127503656192218956019919665734165326124925644333292885722441525866170371823608431070795969898479541108939797767114182154062927292000441737116510834699150212005821499377865748634406932268733336921987735123473504603794074012707159780274399811248497179700038335477716512157473351258673528137202196163217646809252079513170380930677902202082570143325095842493382658907757906926462946838764772102870282135094206393604018186793032770847386449288490347290532585363474991282088752641436313515986643033198504140718446676525206599810614425280720432518962083539566270221817159794051168771559635218655583819960670830432379369079398099823365151585745630718439454474391725518675477330075447972851107423353948245956292006514184703549632021081575024287891313476290706925516612326688592671913504408717206490722084559414448542610316836983023225106333756719895085483585576368021248496140565860740015674742977922486953810158777919031412980833461076904065297465952615595508675204711238534662938877773316825080159988889866273867579124643018680355666455474676275464362915914476364970207103432389923217152526720511836769528209013575275645089628100715833377773213989941485410881211809973023855570848968334091946815295481000235165093303452345363212311694096341226217127514412352891115128953351222227055586111549918318702056727942279630872157438893070895658984583652527301966096839689445020435592469615925751227865485096724546595715160189456572450330339771183998691975338431071536868756768507008823164362948741149446093508543694220524932653809974237591486021662571099149587545419217157401073707872421192500952134992578492177527167140019523945536934004157115310668730970952791136958715397786713304179513280377709412476674611205144862108085593817335756301920430181771099256291039417328442789524751473135119890517690509680468299443245359950910371083536541668953473490162977560535960311857773870243347558563548639947788177079534599876830380349659658037876942626594155707160738403568109551610721044574660601170010924273755648032317515688531759567043628850176165067399570978585493074288865553459358772121341359105309222624412599534977131836441076519383731825594752840507722089407694920377481836303346197445444230233060027907009851078889924703759350150202736863062976259573026301181243548676184489934661896847827663684945616848714141431397146961749892917288421395917948571179597731218106891936444269869035265802589433404893253383137851083029872589779089854913361217211952326852821526095354433579561736789939538379912287214729652042637066987089072973703511500804921647903509829720407971215398883301700663470509734841439033142916519415707060041318030378653891478426921691759966283377682691129065686111295461438189177490653594191522051028346031916033906506145343980525039566105997229871118302084116500553182666045509680580942034062913337973748062966344013131133536057134985413038081167921085505584049424030972569378565459864173373037626304300999077461435356930623143328197521692873352555678267688247175881000492330215001164235013712860266507168656782653628181200456501489375434817791037681578290209368730069103966760610819294646311997383709651446767938074883075778694656318387509380255463745252613459661845053123142884995798922961136447647394797305769203586272195290139016889436688032261036461009102623920721447398890988287849557214598556724688761561840595685876947976219726873659157224210751858455833398651642934704085318346106630897588637346825124550752958290701059976615985815801093093106822186466217932880239100577902797483759844048478079578137042932065808047043829654230920444005702041275188225014856521927041644284590941330550600473586720379284886886256921609443095563401158525278809120555598848515740108552492792078881664157849869191607480524053701725117468617280500555815468210423290598264568414099595164288738989051955612399640907492591326844389320095764089620332850229770209360482938564482696120752935930723471319397817566539056721216146289158480940878619056980048542252860652721068623881863581033523404135673589059644573048272129590253024125470186333601935242027753493979240048472778151662328005784296727391284640785032659544060698385063643430843598073810408139509062928714551078511278084652315701873420174065202851187002065915238095221686633002635536819130295129384461631314822120365114027376800447125085907484495242685316963214641414525845441911538028239347331002591527331950086915730374562696751738738401928317341964194740886014342781306339266150850907832870099069172090093496105785356857430208167824394440063875812153107872993628069614132046309765507101590882758755315350303572592325898417540895127892928488476298180364456823880117663279783820206629230889297289307618659780906104251779649292437372452423886718634836825151088497097058568431788967840527132440637778750730534767988105313789445004979658270096595875754900303638872243858256442958862822116366489897497080850280435681682226937463446929465522289237287662222745712847738266083180133600474376266292407011030295760038417984777433114129588263086395137023483714975833114369125524705861071877873997667612575467980192147241382659414795616139654213129621349835822663113365013471306872987795154134054470248064753961826959371901801337583581014462080143304046418822823881082743626832762134279304736794325136553020172131472594358452201598133954354064540974444327909372766770993613110964791521765101687557468169293098630026423634756775579511778828685386800081771433383485160667866320161402609268393704005128914321430828313772751518064680144405194907570437568394271892218581377289995824819986406355602084198868157575646320674437075134591962497561458328015166727447259763188811067157809246970565058625397525025871304743606080200035243479372198704795516709779978317675826961184800291899579899387905481763545931491682869468460298239992161777647137138904521769473313692049117278465987431615407035174567379788835157262020736219427898071120491140004191533054829678036566545017494417543819452688996068327935552407023342920947817861458226660690887053980164249684918835188489362895611866151820057718240643056463247610399063936619997546717582175045214408203521358435684598098521350212835619968590137771767773457334564823936310385879389060368936063166020643019720129213597923586873385204561823502142555673577721677185324272117920264481374628841300102633438304995181149185959887635402449669953776069746676334057446021854703347511263883756791876734564157162184669639007182135776400763158540319971953051530606339508940660958194113086391839210934357483994808593848492439534557256190508973180166805813332708592660462540673311248641154540245678077126261204364510916928163077343277905322502963177736169059029948400441997320933826649338514303921930515238038854522639327970936903942922729921613313219390873160741910793077460495150017897827606708608653581359605570590516189322445513726970566772184024144868614073134484891421626800140856158997282460869535719933340671461164738069428167016592074916258163194860906165730954273861771094294975247586435579033898873135292870211487080279199229607973764630318811951689708990825583475129034057490495064341281902886123458136138881549515223991164301695126669431641915151557105423546162671643514748329816149439497323625371045883070422548757432005213618578048556386312317395818351897303261355790348618559071801326892093197631558335462216306719249233357678675540142856825984689397536307888689640426726493053076301379494164921926486528440950953680413826244063676796418012837149626917246257428607539714449069639643630875946359232023914108153789218604858516120325325547821456564764697112853741877402582196171193470040454469977531784845000353533407694330443090347587897063031854312657250524675900137893442029961974711355276450424597481167509709004101437578338431096366918037103961635586075747384612771117656530431661178910531992381935936360837220787781998392756910020974669843238597346673544126730194670434714788810737299132657174420365223827414622109541842933740795428071552019592003868332722957336772618523469789777366859732942648318542203687362007132263812933265248484849789021951497803491128516594845533034079229973540700571415746192180709546410720266244461975331497282370104560012193370609724143746264169766053151140321224494835825309215639347024667297817362124939060749782587555884924867077643891030087446139171279462944741227455093903688297391749089389252088062533787834410218547680478266211992779526789729563075230578964326795390161477872400634377407822992933483777665409381692063939606488034387985911778992223081394972545376229909886533585511257488982290598439078426808134699544257015080879294797198881691692438440719618434975098703818629423776132908640906571586616299850639912281662089980123157905713439595594563421790737794946227612860227751672065614955162173542987123650125292801822681712994601900467048516983863418901225433068566209052913520077839054820196180227866597265446348907880907472034023383008720779521531539910380030647848975321157124421427031744976623924639934041536925902015614854272695510133114430895831356339503862655818111183978466472096637752096343346521567695039693428180556505864970721095174520750908166378411961867910881055544989833008902096423221654887701064080589546070824146208242199800045392854278295705320085032627228765493725439358606330256662078770515070387151393401920564076817227259425429659211077354296383068679925114105794148780203670766743743662130721041250510257576647898592279419199115081744724683982590487203323747059843417282817017817007055699293589630525113176541495098274982998505932344084371649591549218478312686350019191263368223217099265197612518106831198497570493667935645492311541583748161382391091352931024472824683366829445099339650431352862086677276332289313062033267960074267706617515588715851375612462819561860351524557688906084706231098832218286797795061144190076855565692726073689840056369392170776137146347656237299536436244470343181756721443193043609241437053293062498102093301085531621313505669766765120780412992550199022036992736932639614696535448614335706761419634216132158798517968830454480824145653529652055224208668336796936126270973310990399957434610224713973622243701928153411304871957380853845375656250820538245399063275384792104969443732879228580595504253638835252233662475715153676270633634394637237026422776911179722913004682463007165951800690454023717464955869488817418729712944116781269051407011810249912819864017043923903973940521450515932292151903991910021024397350229749671962033732394125401936524671431947139160486157736120108149564341700550188350076742834537496687139351654368535625317106901103456593860103047226330641468207162716682199019358096805368171643598204029240109556440072028727999345674069566335594785835677362369677522807306783199989403445031834809473285088478199913920887223854734788992091064362803871265826465082840277142748007902104009347115089076134969844138864464045839136602593672865124743562105729906514956194470002123274157077230742028430143531122019990043202406781847296965555861785872316828023549831284867503724272348887281037291720618818689580865307362795564759466070452493946422238983954571160678941146113730678106498257749129674240351887385363033729695355985410821663071107321159186375135498976320861231445024319690167694268336331081064702207572967983229597776120375185653522594468544906340772436968999253353830357188784414354008244872008716231219721079884642635980064025395083495295755284202147465227352085958957239060668571118992756727094140112218878928747133410662715418177224326975042682190568131322954375930999135526489055433482824517293652670980710534426558738061518462158479783476388770509087522087018205752835201409122067335041664374800505273583721536624622371435879116249749402074750485708013906936625465932727293918149153830629585990159499266302290020042159155072367335270448168153536921022058018754443866759024811691116104988604478563114595391785659165129309772079019094831580885207760789021329819134759835959342963958568793919403768234432144351148985781929551103779102069485386951558775439260782880897446499285787474874547662246996202116407881811655692661013137344543099324695403337635051486124785378875997758213197277541507529750234363872534531735442107168713242970542341905789379521151240956997671187887189325241755250329104295725826025414969808792420449191534365697000614046603113509354463837478583363302191095564568994232216085743549384409634126938436317621833404677641706743218445751331131286702429359010916315657354366157406746051947472357733525102608671662578478840225362056596897989323082108837269033337736252427497439975234354707217720713135524758155016075857161422522948067032880444254599892001622189620446020201251613728676753019804055712166447680673076129411553501113496121363504061283998717757474250963841262920763972980064840361947779345923259387616350166655730207516815207368036608150260441664003499751591383095501568331851766459930987067299971028503199120663131350476453653389085158954165402621660555993495527544933031293305409912598518468092859276298234852806117161077084249316992133301169385713700610154925333909338323595765932895496780134889129089800690042665214829048818699876953194023895296842330963193300582014111207528697724878739503262890506734715921589752022673404635974491712825978100305747233383665503194587824688482568281277410117784979916622091448131705215387230006960565073329516962299107398932616405079980656164439761004952523263132682335927152341427756642383242400068602864291204822680041022444715012197398419546122281011930921498140770422221511910133189663355972762039091392488235818886569018476965416736141963022131823987826961382209321478807523229027575690949622828189816819019079829437266547025908539528006143208141422411800676107184083051462428077235797860951623040114294429932154789125222227574260569880309574842613657278473464400179573737564165125624309488817039791669027767267913800452597110694688743120788835048090300897293996392395674520098698379328604912813883308877712842547593179432282900122364147901245215825237739252836694249174174833336076458553871340479912581490079174847396966589846589965564577735308839071977992662523882848617273407786996722240533182578061720480615419763556512696874816510505581800770932207825865741675424694300916616080279266432721835866238627646663309842971403145461755947782783504987295162532884532612137701159303876030233302634436902501916464256907173778813191301785909929283803687308917347506720378345502988670184664279102037211481872744354739910759504769692318067139706320620922371016091249044323961131829506440545054971857563941565363034220516680639310086375979035612263789723003591121841620834734962366176497839087233552171289592398509984087757591917309513113602831621615055615454500626432155132689951119702840980271633314472751636508933668806501611448999424784184137361680206550808675297340080119976511216524929357984265710119647694025407580106679462632395484933773446086366795533983493619066984496143112891082409739336989479447815144375921848544400396700700589964000557957201847411346874440166414656131178779904243871870610246133736011021614231547631301023638304721755313390998964389500556196051649272406302393971890780463457687918002803570958825870678326447827374252207972376529098827659534594734020247385400218958992466800213033761083923814689768623248752501386566342533748556315709967333851229988213987504452030572486120569107796342199962759619460719518704144934265274745561332226340329431086218350668806899463576620888131532982184667104947756997027054197034991613776947258909366423024086116951134728670481706402961310200091911874876093507462661500497040676689721504631844407043180837568623902257703324052210673174256208313598021825098916877264334060456575240169465772776748582562349605983765239640790053762231530038433507924484317610289818906430475116662750719168601853369043097680850114950790548061528936175674453840783942206287637838854264260466776884945692371226925359093406978758936583385001038546834503523530064929612362583069807061187649428928688072942882046239643688930249260056296471567361781572259640742706114500482134762162840843865039029569520232050548582990470582392444603269804964581527557639546699915844910703481659399321086982271072618240246704963766942140702129273927909695510927640087743485855226113539002999956204883775918581574114032011947070098864999920062559306920731105321924774868163928604461490284715379095203262602872085656597258934417596368181480347098128602451004381921396371253511823002568594127923857156163673809859401174085687463296704312262943541815661412897401277681171979278082544113130150660192594547242354613742569151330989846078997789137620517065498807861656684580292575674655769700375447943166432748455609905344824220130116105497114445558867459581857740317731921886757642127459481013439103821819192878843444305565211846868027419907386878629030972886991212658241034007471375559965747656431501163539093205149731467552958656225618703777902109769329834005317845644392630117052729301964645575446318642662151632006409244458417686295274713387366998542835527775537081051912325879100359012988569412587494960588890137966921718943170125040429621984918841197969187462706203350447359267070857469254573686270648510379663548140791477445876553178045479401458228744357712677414714519725049996036743704442299370126322783688468037772655230589963180958900499919063382644340404292118901450642699453447464448457653250893777452408079412629823296184464956562674026006985818302969609080092498783025852660846656853267929779654613408847255557775659848747253965871697382881871436774831992426868822399898771222278580588155605191808060820503912136195322522314329360616609310453070391217550260712193273328016376373719432502036852681063059489004682646350003359597745595455930394009384508057851965923972855292145150423487625808453333298199193834381777808693410632444214117647034600876493950736210525886651100759621938487009336451736453513861814525186887788587164992038643502877249838633859116483448100512338325078006038847313732616400147962047278452371796853368698353677203238674020312327901770087695722771756066711569135231370746765749180947559188870819277098368124983678065497911828368115255278615423285265659694767315515338528333903842197647633330748235935708689706071658316224112716479430999109667997929874432716941949188310108546741990957666021262445223682502400199586494716583818715854812057745905796720077232039691601196687720203047908785083832042977054328088147384598387344767222655620961435017419756306613948816410296893794159697988416419864334361802393033188763170526124986643367504562392684345949322654136816174975946511148121897461859653274050635182568388678451616264433664390047674801760735579956668950788158402709982625422488214612526170298801827558779534556534613278154970090539777138283693040849861345644460281531558308506621834173877633315557063374290709434066580064569591365409897079566313762745614235171984458088199832840469775875338982855657990937078373578581419937993755143383722692210239930574612926092800341005168477049817046065997183421446017725843833069997330906990905104449327669342918500904269387709089950191699854123576823628560832202996313664161059991989226834902603490431884196576439398553373781366165243666496284727829148112952769862654516880668928278277672331780261412730112797204724546924838496438248264694511996422662753430204144316680951738183088045360057960577009855866826342881946469384608111259495387363591897780809451730406982498505150674531166379604032742401812352201393230425160073670782576711839005075179166314936057554175124293359183627136437181553059714159748141251245141941701991672092929131271402049820298678846940185083302880392131740491192961961098694797918356105923563447718030908224596977513065102720466375412227029018072411452902447457963176204096276690990739738547554345856574973585469537495958027497870001370391784551613857308776958703002091221887972544392926415220085653211596836102746464122556170583062120293774316171223351713921345506239680509115329422394189822721250350960256782558309385022480123269810078056304174523618751422884526382599848927405409273140864466194234493191102323744961207285701470509242970426436010818179588260886556997395241505338572476743834716694242364855330904120873603838183550956326088283340898965090389133958025059564874341988747961203700256471617277487388009909288608349915630745450550624809663199929235161696406787015252779470302897436113417276196549925431972939423934845469984229446251531842648173527747525366708090647648049106381372662574357641002289310121103753339675522472056826354557716253676744831937545968733524399789305109171981445452412719738266693206131114695006238595289994032394562259761357334659664992567661015164215562032688774981776698008226661203622218264800712477791330712847244662019444083374132662763334721107232037407223473741659443210223253969576032640389193374998466795539851694620278224661578027488539683665053624771314621238496929916550271672072059342343825920867399617442537366704382014068664177581098688403199469630964812812898563750797926142826792390282219409660431129843192530171408338615094685191588966324645595633624442922078663433947975335471592873597397921205519546777198828264921755179907824822283609035883897227528878280921280970219804246856366967073641814259313244436861116717019194962086378808457057921017561068381727701159948961997619141984184540161969108365782363031622099747070043427217026487164928960037278143455784314221423389346185327265796361479081644421928620589235985203376646400304827215946795450411180213277365271764383963189589844163450010995900735298517229847888655017062481392677915662973564213132527715514600715646898606812651594003863529461723441753617257019252929264363807226771634918388112164747516899017549659288267721874456979344115513516935608237452610603383154345448267088712215923841349978239454883403740634151501147071263984656358916830360691504943702966233292890733072116869809145013473247228296246116658158968324449169733549510094711579439528055134517593308716039280729573114717166246191549698958207854096348996756958017352934914769511212408889918167966496856820262679569965862625270098459780605100413128716387676095415710491873438590464867096565107688079290534014263999189856174098965085571848667050361067621996751973687623577655157425499812717410153268659010274745614863401129349943017801269644349413369704441839864664084516227981222841791052743965568070494008890353288705366563588718834973989680870931090769336440198410744995323720565115039748978912739743334939071504518181630287853778713041560013525719340457524643490226956248728403648665911225016924752452473448793689928575744333941311666052598172236729036630729345367823729204347198188614689862447134105075998695811666200695935611125001390329937674918594304895124985193908927800947902789161721520518527216038402209361238551342400002906364586370633058600451251193982728284778088878494678754765618197087601432957834631875831816161792437729022883346071112335759869831230915955324186968260575935706524568953891758667201889125026329554678006210159997148036679055470199679051460254652149623747967947339191646635833550466833205426492803208935307603956677338099292869021528639404237946296980319608359301348331762264079343191683084733479450050313138661290949715478403927721876026460748147678101235973801716071408645876555675369932829046095347467221034476716298534650467872015538641658771749015082890201864470138260881612821792910095253802453843740063173889019188395729557239578383024346617334163882332424177640532107677982243566323130617012662287613510441066290225827651998293752136377060114065294250498523411163452088895927438257819693571445028685979643462059162969357840557022542198393074746882610697494992588308056497804875198555342157100653621632993317160655531982004567289411749613337100366942544598152865034993745689713723928500343007808898783465644077368331877154843269614911946574606655336850457559149807175393807337907712031151224533650722660067686984605322478739748485124745184222925602186030735690234014685658835461772058119596829365569939715662233681269357998928731456396056153027217501614303249769362168826308473582536564354724814837526044373538099095721231729756871076935804625400836350687858709631721119512538287277135649264535872194608920405988761439574811495831250361304212241475752451886620438117438666725590684793435939786526678385947222776741300659535693747640981019223945691327827199078184794673529635774828352284200955135982750917706506902659243235979778360975308663131767595096657930260245902859241241800881315498855049105517878155265450903273221170510747859958777155609657830602598579702770747813479208184419835652557828621395425327520102271262040361002044112391202746409654821111443860610653172332599302834892115559944444147970389474782256619174393734277914425243811961672511823414569922620092224309299317792219073963131800673604169895517210438999587933721942401832573888718051131330254374997923859974642524373798193890624149337225004898374388998295750755963131588285244524791500785726229087938424771460942970317250777605845302733510073296713310478231822892490268248725419878586382720336436527144054089818526965617459171031550806864738836757080070652511252617138195585577341966165021279357801362632814351594046750809597634320178812178302134717133131599005962689292697789894339011161632631123178515245705040019132105511222674514229627893188442473390880042570899902208881910851561389137861150381760512214969515300953482543498387505595006226951364172363538986913719018987405467978085592709971709642732709072227570208860995598598116619249652596695776436948535287382256712803829560605689475641570601490504861471797274608278540913059194201873860139920444023033509417335328902472124627389405248593331550604015484810388856992730651638421220388076259567760154943582687656028147823990709724904977259209549894243558840236209598261266717036548462741178588852280757983576573723050251854826834796802979710320659691180143555949212956890790090882647733206955926013605687616080869155871985681619775795333274888673491976800948400267052320706735782057619168282460275416257568978234997203961291165750494710165487399348662562134237533310050811663406634156459097890156666502563867227205243458803492085856024337692371118817069639199516387285710855244008177579001916796272448310807538764781090171590819298868993994947247613946626829238567910747745155803763705652334948905969229499050846897653832612070594277452051038494184793069298969580228240650030432522190569957266298049699226196719340077606543960258096010775629932601962660361215106279094983595891815907018660613169264916046394702324688879491115173581968694927157631452900699426028943674736002940495847284721205330475994868254757320160508004153110811581717618270546960081337226582964446485012349735958788913302930305131343522514213142322905520929335422259814478075422007292897107939055185247471251770487828202465684307779516269133618953740491540915394493015695093908819176368204087911115130434092185317127196525324859419834000317769991996989758302803591596153656180305694921007016715586370819197335366805500077712408649952541939291928747495998445793470109674592981238705345231412179279062291733358687232909559131541765593442467941412705109434250564286406382143586649605390959793092466536421957059917651715596989042675064777112349664614971337549843843641900523912282205434817744337206091121275751811184827702825090114672332904071273295696112289737959520092324305429498427883654041479301373479769681399974717257570145386032870086535974113348838396403140413492883226843212102715604626380252930897227608318329089424678865018521507416579073902097194058352288556369213185097836094368289789966031570334819910384442733642928051707594968865731889524822778201594820954659987206804248603052850932552280713340978626553258887079089184634550680217198487734013043162875912576614200233463755256489226306879514550018026595162132170594637870983267994772485844342656230042661106054033609756863598941943198905742120316824340133963005367301864637580559746768899618959685750031991325597040795823706792163854920155834933974784478783040797830746366236545859365878678822079448495231759809523594881937922903722164852105804322193899491114568769021149200709504061215348367813102404660203504225117759947648216782761646150328025286668316172830798839013377671950169708536324047235396231283916979662219793315509914688331945278345727728397702227244869711838532107882916188154945216659049283997495792202245925366730810524900212143890476475076776663286597215796074812016693813878215106729607457271316582710980535625541865049787175122110144359970071196481715342300860846897567287146028387751405884275718831910622846852322681977831031717761892032253142155773734823942677903715897921053724962872904213523449879722148464190738181512438118720584213635357242128963919630651131770788652640081447255941341995604600590274124105355038584397269130460893262927285425732171785930525778376212563845467848870459978187935992552655452479045121050872949513637834776596100788531094051260672329671701735411696041388225708086542022118698113720504141252947359710899537194336098139485891657743067472098042050117290936373428818107586599661395694665831549112151539128371079402477066727160025976635439794202985425845782711397357438617382313812280011063644368531979990030391633410527764827086150709917496598807537257850603589725112469931252048323904942049755794512129222246670130116610016450253223007705715277332266472535540607269584605982634480409018357375731113800352378658338712386725856137339460272671318839753291085090701693365950555973513305053104182147081716144485668858697898998620923174623005007574566891075756645092184069024550659686730065616144165081010001983485677943499726856956173435086734901996337744901968093536041598483320732657066876983010289800044499552948509769433127475974600371234849456916650399476895778597418316717468020231389540645643997010296084152654474543388000558713784763604810996038662939289771332362946352508154201337774622641935236693131825174222736143244427229919946400954889496653990888165851652643388331969402630903675733012873727295778695659683991187022660985341721589168735805719939059147822921735520604162352106456986196708475482304371619849555791477227928498316345347804189276794079367056246539289392721458819251575088176888829633397608733836326514761874000554548105800328649306609026253356185490022739570463862326610819128991440783745045047407834527978113715972006853044235966768582362919211334400477045007449346759779089141067025167467579668809140229505320653478825182228742417493954317020096504907381243720543171155866814594908726949091213724300948505663095761718009360217797103763698693893501677163313377496362395041209467116225247890103523384644924737187929391012113798068451091970581593475931881590297241126024699580361114132924903483344437162413925420077217913790981978333024030179740730206716230014434062952322728895225380777166307593754822402029848432995382924495826940644377698341878204953359994903839742821709117968502821347705560637424714572167035912143747343571246668915659775132590212386228993906681743565856648326325531599906737879249360198154215930599187083836135408888534363391913525806927333735691081658100986808708624819687847868645304110983775974422906624581032472942017176124708979212902437468609214443757488475950310825564292874460445108648465580634645680500983907038367801135129905059128492859623101216171372131065271323939167049395604200520566108541831227426299259920192506861633788591896122479318303001113999872092537000283835761620714267364909977372839225221392955254430819258076104306066094165904000074439955974816926302025568729084583547884621782727207219870887170368070580543065068777676153026519330805626943184038739523683888478990864864843469163371724937065698121103379082902881976253794022549210919963473238556184104036411391946297509795920653140342395164636259852304771815793701215588923664058664931516197440623699214253121162860083183182708798047171532514832578173612961906779990012168743039092228384043563799894726339385476314358267787521752344498470606046561474644003736256026050344682163116263698399817646782901510389123126026897268353328467574578293877648977611837360150795295654925814778811464681221083098741390011471588508458627505068721723143532081128255027055552106535601161254688485870823572768871356938611022991265731964948129192113695836845961981169940608746618026087835054351917633978655276593039982803035217747615813753642896900531552016537703019036967842696366333113983687648447369610094220982485191786246034497407153112501101193770960330650007705381493642638631868938239984228987288041314056442714225623682316637090957758782897803484452264822723571731113678421139734154509161588529559872997285376314055984118949029803655838899832938592802019802653279485211593142473868330340398245706799066041120284331059014329729207758602371360860116534286661656384275287824304067863977224703979556864016297236709814369149147518035886930549618727340189392776225117089420859670050402686697855626203192711178198278090365456773131546132287848693457446185698248133577775199722389571554841318474400484611556471493827911227930389766900843167189368332233702454681945152456602114815706105185321280453369617310409247713024360352874977622461185772120107684556253480251260549323832538547943917210908982058414820892933700024373019839128857700008195842444266303046918213689547062812806287409319628593950499773303659263594894497749317667468444420605470429407821443772662500937644961942891592201057507249672724293316645580154746817034567562192982594374065791905432202302683357725673765557239022176082755561607777352649853991472425466506070838311678065472374871272816029854307092768841870603181100454465984767129421122324048058960061738069083455481660033278212390793394717086002268369538881090415847315784032985059954306874258945799036125333800547061732477267275457075626314589218075192621563469278277818972678220847725386457264518904341901625615795552016768864410466811923598451976619393877116057452992377472209903233012549699761218461312178921904031620757061713726562678761174844206092643308418959007402061850439478491918842326028050332730112204277069304333095971758387406366010950884682272865558758508909548129594950938619492296462667972375694180187351000958001406612601453915215541037302971195759973031817401559533023643942313770883412795916314222898594842259748572147722633536925801904278851879486582589199857545270605026444353490586148260527556846480419743838558176818028542282559882781706204366060611523528104502221759275432635368828096363735060772489517288452083699191568337653046466682170925909323619288195755694867543768729877467304920589438221112829257140751367201812313229493984902253235388899037219898524566656925126296856445328963247348754158713857856651855248000109312420898018617416212328522329393015596266156784637448430329082898075427882015611061696409477261876431134950192147059879167218167612136060761628573906659197598990848939664564632822603983444532296145876921881883779542890140015886329871524059975502419388244198773554829503833116820998914565346774511733134483529443732781027745164914279682727362993642887406263433424564244992607447060623354460286559692658165198605701124825845951658454762176661858641864079668731268535977641963381136212320077903407741702237781589722865462067891101399661577524815849881960464430280215956697938271119214403596651582952101752708392350800538694338885447365665211942665544504053208582055105599109199993584529944102385844196909692900926304907523049575519024840964660942737859981312766562749516333858765995907064685955487030340680688699771633820040926499538483258720612663506005875095553124033965981427660731046689786604659153540401061222200645941152929659005102631212929172807758164657160936653097683426979159323784164095020013644259620123002768404826071250104241104486780555555246685576951838270195865899180366542310476387663084061351939925766191877502390921181838016844702122588662001967412946578248829079064764963103666193312436929762629317037931373506596582327459241106165276521297226176118807208526651513367808408810782919095196295048485028960179144737027507585380705266925002833455514582520641353849998648314047780322680291344621250853410921957605054626516222180343935594506352261763487378907862868980102319591805982992047037381750566367338369785169683646560078851229631665262662395907342829381311838647022401698846903948371916453625137495811729303135126402294141345459841834480287674248191584134550524129120658411752233284662590209967503159396799830426918723239428276158633150230982546571893003391631160121536050597936031718787161800907441036855380869435053745660939627246773083674031551948416558984705401399393306308669418897379394452682160156228625710971841234860580910368342636426918701759670131726918993269264124878635531188246268336962742830273167477006855191516691448735337458433389018740749652133738218497381039645565207427098431593393870554880654512192984296131047257735964636946495673383383352555463917387923215850260991682041416002832906018262785361117681456785580699637662397047352930611942048092702272139273402282921012056874713741667519837869660811854804276180302896909327762171157180830610762655000807485082165529922024588727100400227904228299316081347126659167421557404180137784432832006449319830154878951019566272531975974103841717976534935809690393963629198366504743893490399177454998804458300902578768911517776543246813620671074426681382334135966724021456295195677540919651991103726739376361694624984745757597454283947206873813134586751563898886919572645196672059566332261065487633072014261757766836509289647074850291810685222388509405119416944827469391402051568665280049507131670941332643462867141931386798867302285074961625348636795403247841600360275453607800092301225648175378834822028508203371764405504587525751102523608463404986571452413946870790948843836956975498374959703482065732271674794837285326833107542787617997399212430456361658106285064338311709989359901843399883031870520536200724986063484831674277520911508986265763851998754948275854226119429495460564032537960143106080533689981809093071000298258639686188912483958500584703699499530728257548378416983717793964026048403911586148658496110693420733253712441902558418741356352245681639504218875858457027258667556685109787818343531994658179570020697837382028866253898458237798536427818710009239806474012179503521886220805751907917287451982612687172470065085434816575087219715260715039334322726523217181376664146498510788461139618843854092962298280585954754736836058522856966214513333601502194306499494886910537786052790245187364408925336035893277927252801470404594460908530708784290157511541138314081883556943901500466556127316738232605696449323687363683662714530573215740223925991909600117334911448372534171069078976083787631551562456840077792150132804408138342037713962347416367511476218558281164540447721652678822487938048414858529182950467148721530535118146556116185925570924811153056285165010435062274949150433577172279471179026853919214747204362982803643281083602191525072505992236904237165410103275016101262646291780739409006967714253896925570880433776756334865564587415704642529016740338369018566673352028056494140728439897871065494008405973646285420503601917247657183087255878986369425751016414007233455555200835270699130030945407590210508996773217830743195986717323324326916667290689607070436961193149513379365253745972911262831508896731539605993217694247262454861408576500807613255265340782846580393103207892033252188785542092059790107452620477405469635150305498616077049986321330275564829164021015344184769032134240099039194276819918347273090424991439678051676904945947357730865452095969668193968459243519296299927511099840194701074720297201938003128129273672670591825302971245720994567590372388543889428852026048381315651354905349184256404479038628635246233762153212057510244977052912167545014420438583873683357599370863933893384393150135073337963492115495172457878285080848943159595240797980055566291764646498575498191822006426744458824566125283608527452985342598729116071668293781671954681325071081869438581928028664776020001847233485383548020794417509002685792469564136729015416315898412373896460289051798673418582276832044037969818470014234923218117696663095630064890363056047109438171598292384194868344784119166891526796494375355011883679353272918200959607473758792104470140319576267060207128571916982355335701840945929118788751509279337261193268296981639492272947764308298355847066904780042148815880901634632815923786308799768080010559463182424575414382025889644242566393742758035121721175326859088183166187880964383535460478839604550595962722465879051514692199100995042086531882937279711268950358663397592994284001489879397792181020426384387197796835727787990438238840166639382583148327875699381746813794899621991647965534074681229669475034631414265176916418507824982858508157464648307203215348465724631092693144773330217695340057248215414647075371128653136576067051290782497811795764687192990662520496518982815013846029228240704346122915670960024506808385829081416116700981459984693171200757543343962482400159135106725628062416565157856069272170214740868826706368300190205073464213511310535829220531538122518050660614766555778317200986015353526010607365812068135472865369220505611273038352047427237146719875726476030011764499168906532664199944724242816036130874452594101259205136812980795361172542538380273978113106623015774761414577659016663612968921542923916567242266236070411662726387950314362939038845737813421101803854782790402575915526196526306802217193261176340515567715255817218487770346307402542075069770389178918074632916366778205970915884260550284394838448885448824711083137511906141330693969219565032518574863294829655026177935538810695732991359685839395964181770881426999974925533660546462869129432551212642567570706624305406639147841053039044572473070339255719124236823439514640808948284842843845666169252551336984778086004707463088796421055308996690453235055788305997074882916307430714502049671527353137309879960123083293771672067441439783052594496425232764883339303480721603614552340867386254287504040447972883679908132560311328151335796610758447838905104669724056837795933432641493564330446287367357192672567875770699226326332388015906330943387586467949209972999463814470875421590216539728523412715634103823862760200652939486951205510649478271497935675222268935248504591582515452199703553406976540769076035649525026362941413364033822589207353107101214051890296101010841413129322958883312133885077037601164799705048241007210087852928034289637089424254078049112019674957828923892807551376203148712447117306269535211928374106688258748767928212763098671216607222342068036368874887682968975184278756720517686615551989621044353891488563118918732407898573950487589364887162990330797221559102477572758797802147663362171041597935232106613536927365155198146018642227312671906790578771452856403067658584239603356332919487032081339773184478942569999073737958651282767139003131892423427114014379369952800430522800317819610925588141151602362971163092645468749186816294698768104559811548003597501036936886135132291225168955262548016722643785053020132975085355738852853472089340657869684241659530686910401617114674821242072779317352150658315251112581670641446543942291266677331638190139323419022165369332371155521091177270213831780158927995789176180801279258161510781515636390945341966429903816498307345705119996550323121258444620747721892107253070722353259387258134367078546579876783110300814131402388994707461593000574913431033454253674374689349495804513134780277651061350607988550050540877533187193587853461243687368005669310500245305692677577875813306132452662344797489738352425486328358863837830953237032903298915420415056826294488758987704574679097677944232746075212007582839295159888742752598407018013898837004947589804001845374370831972291215186004789810391449737332224472327420007201553790082318570594358029037201346315673421693435527055964853084156280353963803073797911936371035778353624189366761803179637319887166090129572493436067882290340253781822071438644115515849895080885611465227419906586461419033447961667284483478189434647599444474828034213814609285188831553294489175217057240397912096620168370773694453672274270150571240951962983076984844356405854103493800612678595441393362162341028642827308493339526400670805905979959815920923106376212333479916731372211992416238255335094584959707130928372414079977104521618495620218539670661265286422142870745797110686910726072339717491993228206852623101667090347982763069227970246479965024821323068567098149999510755711959579150593013372702506184435312824413742753023071984165003087131286586985174850636458726033267416930996721795526867966437085454332451448588476520199981470807698363919914659173621775827993228422662569132980665103623738896307557137498290393011412546986535664113658759479852594851567019773571271806677502592532130973945772529382978031546667571208079851082605968621802294268197954853286393101600112353315338726495229562328860848756960574798969144317116294979294501763814535145367612888484834491209482938139722331987982602288748073522017762350829471745344217361062885276435983557382174105363449310707091006689692513941184228513786012628232458015287151983544392331829805666154168030269392343318765378334868096586682154750119495870271427512974704341761238123088049069630059979899298516365111132425721142297288889038053265518978676851993218807970370718602039303989470120215268662665241056070193502044547308697052960632004707515242398655671204946430933930505993645186270661882257478701889127492963960177000096779369001947565368901375759970151809745423999396613422397837429124616332018791767198308213286873672276510028878942239063418076005327073501672521574884648404575341069176178578243754629303005864663702883361741345842199430003713550469085865987599732338050378378610221502087364301780015491942607002800628841687839380889166211967054176467753766506541576401522372057523976578800942178698806225805653692595010626369033771148420999120878889576247132438781284043964718277071598037378195852949088926451774839754593002249188082732284873093570812805360948406788288010721638994583249214312409352927140164154264395770959128118719088335599079647330823161200295461595475670439264935379179285654207125874900691148694090870044089555105083281339899453810838808557195362086827852245007459034569877609770560002642697151868634287276215325996003770919664470789836002440569376358296252864032285216025996049057239427549136792995261107087174447758041516938242501772742639651199710672683849313718668993329601360950980022441414448843156232716086584822973096089749596343843747703009465692820267461949928150900751700358829127450072723762042708008408601209488523360435523623461080812220963060024145069922273141323635824917022641853519775139431910778391631525168858766517666852376509586602113272430770719217840914354393553496376925675218719046939452961657697062884679190060334028669275988892052157343260807565386896297307346901708654433989690890934092783548321678014335058392908873277302422330299576941412186152473285582448431800215265973519549885545535515035083947976791597006330228426974694503706786699279485894612403610680920247100888292054143539178971955677118896841777541699414419055226640580216930749669569659005229116690539888127007062604727131607531549886583787123261123446275516160731664636515148199770934200712954166101374979342623026602974167214580658027252848029218248881172191295476736264158042896436416268093089589759115630324508725173400856327555242850815652515031435993405727931519851271171013475024900091185025179409551363619885658199968302168697364295248344847120117016745106598307934106952648961547991097439366824837882401775457660621159009526412626240364025696371995415304799018413671464975297748340285161257225823117275934748425725788108468521674616362956884470720412426900015750737351471101638892735478625146795583045990016753919430329191352367564942768654721615690183310651976955093877959290985881561261889430310755828961186623099876920448855341046762941197761751190139690461076882272861254672612250412820206289754379247770524121635866851315002382036157279009648461806867997437988936227325441805481252487277015136072546031026602807431489764845324579368719901401838216212294043637031541565723232284974342846935339914548385674012761388310255830934300043747030614529026356060342246490938039958226466750413440803840843636046680289032281735417355221237366965392289772203519292002972882550660985298846539472703846340261075727881517949346743834357850786027172938439861287633831966183944226231854240031581029161181630332453502145983216374924594247910974255451141254978676402433367172409360935675755444554077953428127624369094850900709016217336545765137131821519216663789349912081624628789017419521112328768711738283773492308934706889093080963214278243274870571630546179211003661022904016034105575120158212202781966211348729802040494897771669180155642671412781173173930716428347020781347389057415198015914998862239704019386226579047764840873844029662613189444691354999294734591934060541314181735680334964847193523330257992369414616312378100456187978399514502088287457934448592885175516032086428222599508523728037259540871873371639964517664838307186966860315116087988108580044921163634743257016045910305960217130877331335390832610246949231766307140509029538132793147382821807375593816001835312628244437605507543200172791161944228180025072361026122022265452183054421859664376794180770878709271738489476220086287310453593975097929855301368779122719432069106494866047244270395107780272121170801123126811913953329114252879825907283307047948915957501969438697228606163371342377828970781501620748699095462610464569641540045834612765772281805196090749550001072624377846813998382048476395271825944301147829233380894181623259363531630920598952698258210639556938873531527572207480656830782961179756247089991691414869228366641758063809105900076991906423943979015091605770452530600807098446147622547361887713851744703435630323957472561746705397315724954200259052784037831290664132059049247826876042476793569203922034113847782619747630047824781176762335725993945781361023473418028047000632326953576868064593157421417814641552326801687084480552661606169068689712454312722388194556167778892281808635243080557354683357763932976478891084073911858139059027224193890240380132437763927181054117994614114661814192091073813443307325749333316236994370830052624134561718682255715503868322574766905047357690511792764102413961146172006564852577658603895021927934478619877165557648290225816529818939763043562707583004004219513771308348665883242450919463097669396144981227786423220005147250089874182533844467261320689808568807252816896680198846473710112910479574835168687008862858631316778472462018044228334246343357117879347280156176775351210413214832626403599571270572866744795363729682550029106874716460017640319800066962490125777371353175056996892818131317426631784778516177536893247950306479882512552983633541302582268752661702379647245422816782531795676425448952949442702086315261179900709058956849314005006774978417657264915678617898699371077248440918049584261399107096778745825196132228027249567438964975797337042393560086446055276514693368683790555695868687344840805300094300267567736096125987393861696393593727992742268510590478091859507465666430886193603939836197683852950798186467241474393371241265857583711603227861593328877807783363932092299931329064518283519969778587500054415354632041426474472885125096702454239725756999998771973334216890723135633863432032799076797935694810321704137182713354661273528874515441898844343281560432845762921157559306253625035529868471277398929882947763494042683350692521355089708794106024374850500613559521140035571622877542719580832654258244364351985744319467866854037828144547497400812753896296271875454076037125729379955295026817599045976401889425907910335167153321552532941391735423683093565146334714642125457697972701187640563763890762014830323604286409124488650833921581885440881476206809189214926062687674310099029266747615148868261802783964426367589551825917159547937692243430822611646823423833202162173348283192944430182541516443947962275411441895927198345902013162721466522855804163192501672711259770439289532673208087843552576996837989437661231005862082362894348196146809444241640409662524408140591967694197057954853969912807241514067576750979195570960483981813241448492037765451214829127427667408339754050325910299776940294091050398491017712250704621502371289602477061879453231401721064261518619587620307193540363463761118723248427536928560081390143423402983081568674332110154719619212459588692121122460774132066527112109578546349752956162486161309479900882614218645418292401073873546855090147660502738290439329161150650772724490746733161061374386397405160688875349378586855676625219032363469808215659518129644448357217523431822280645321960918807651746877642323449926428230322603043276694059901947822785994740300217620587655142765144778331324402855836410803518661876686590259213294982682332239915656169396104831375490507557599677166946893789547430013293868592162304227899894909674111664207803029648185929193105641551737284454791589683656406659982715849904716892772063263357824063294968799620251868735982272441761347585180486626158427916148916531261346406769774155341549467093031524223683239311230874019218982961539295489849338438429811052882498758743566042723001012657416630196847908270258026945343015996270854092396768337155568293159600678477583034145899001292237445598944221348683123827258657451181855434961699210098811409719288448328400831278431716985268336754056616736378758596071065055710601779193871231775555476870579729599535040671220955807490735437829497308189102568159504669609844370773367467618455628411282833709894681337447921257343510377885013959923207430395393537191238411641957753598361794232565180246479464059060292523335312427047759697064346819760014312401247225241569875151825045052384401883333219754159816333512182189623602759501467563208647999142332962770926596567765821503612601998834413921306730101772715890225937146789255169877775501984619242808816989127751314718881607914310468488365758674355142292587400387531277213686781972193695139856514524978148905516011957689963522209381222177207193120132043519777276770813600923183306316227468947197688301919080788320740845472375808607490310521577245456705514562815754718168539776047415820910514768189801471645013837648527765549959921840448416211042491600371316252183574253118484354878957725011283758532247644216687304735937867676809994071575764834834016707107476154983665577337669172873577247191057409633539954514578541910238258955447832091806497474849804809290413557291278563507491610139408970442254837466066258553030799815237802273676408249844444900407476198159526277038276343962558737097320554827974342977504641058834800505548012754547149534762388603729326607666254393073219858135179562766317875161062638117090340796242662325957121571537967143885928283738486973750203713862256277324612667094653500291916007363868276560787188580220646873431395148535190395514266248605571928016600009983876493121093166152594952872939965880729040332193875192762744996628840528420279587481777902809590154731022887189491274247509008104124028931952598412852591529411754447397584531745966628272824020886998281164856103525831169672915204399746536628354536240510683709701489150524133238230061370280684187594336276886276795301772123800599709626295080111997826469418451656322894904295770969275300878635749480121478082205017816867185548503605093514478268741053546565385815709564584178387713581818014856487329292147830885424910494407694548764492099392037005258488080827794079176269688911497260099547511598835499345031296340096039316790487104897672559280137559502832030882809196972141175290166352752294087649400814319232655287529198443467960272909410526324812039986189525881943257613808988588832869662821435560592213607597904737839896515421438861956194206313736462854143223159161302534477547661043061197305077084203799492686343894876497745939453053496257074754446090521115451545690176193343426628543046289630262858468274998456455570751217426988762001773353790751459042268561751009132524176378467706990969243563574709478664940171259026988405061047141087086365824135869236002748639609295049587197291922082266913523479991152974839029620750041043281022481569831865256860806274519240611253256485058795004070360685813177005576557077899085191693807839532135801261113382266686900132025545097898957893697746682617144362019946889058634156888113603792534086288530637721518598974318045031104157234404433071115012178509408085822408480524753678018295614676935020856414783663238542702604189881922057084329436365739406616785090353918104639907020979419680391447839717771458971030336289332767521303406288684332089823711816151894659886964095491714171073634673329198777383012410476592635220528606848683350640024893751548771099640636837026290244103781880689978803832041228546062730974436187373213826957753053156156645978933642215862424487163008871871472831716398628733037787512807072894976100803682041637447457091298174559161943897724338843469986489902411215558889177765509044202813055953579663479575144943676532837899749757180931034095162966553935617734736932448228688586051389898810163762461973461132157836314385490362968065694446872100246541497518263545312924834809294403944547469516883939774602744366770920778112468738998425891167893649753605443815455759123587378755370680946851736198919091288357963392231083107207687940645782101095741563307720399786462672792471143401133003458897080545274551584561975834046981408920515521298770468731819044979849445214491672432468524391677447007259277038843474002987546366756342798817832638997366805612152280113825440628015144438141576809251145020499610668720401251963726586462321746020326972589983145957596261516144710313699246805139618756975652587355529689647163565568032430885523110019125192991154811968462131086886211887161991265935008486158261592689357029410135178311813096206625574004143809577844894099438754077419432800895001967281403816639104704536316996048160530729628644516012688555067905931326620315099850013582461443803282054371670929858104288720819237222685511507168061578483071623441068166456526839214049127885414933894220132951179236798536291159779559588128806284193456568270916010496597080916453388898025660389612323030533989911158179594527167184504927866419975144086293184110868695553071827566364751236929027006713051264668871825141307258926695618263187124555460995183739350289311777958847313516817791271597781527309379258797112540722265361429052136052806115947795025996603649730556202182539649020772882046234501436706009366462856391439935523565075551361704599669910542937249585810958179235692136606646550144743979252310855123422206305325955957906108079377145059296765477491462721924957029919921500476302528432070634137165250191905022737538605885408120520915403108814908548358588542150105958899579865363073040537390673250060203643057308785302506430167733250820783956930461634897354108915919203005950767082896756759508058733580082223673278030209077425024835106402760007809306617275372599235182288087556055343119342358483476089184081449933707881150301861917362074952019197237617803717613947317094754107882684273416141584822401089153243558187043747154222258533383568035123138317018281021031470746614628935210672866596095812907360599637333557492410240946691057965930497509762261444475572066357454568425702572588928107109561010384966216900804582418928872141684577192016995631390842813441848196022091643913089349648602275791172721520334888107530987214345203166858084422856337357888659545055562660050956302481210263100495354628141431600842683146686712303761742518413185502723872997696701819442624759154384271524174530762328224456722301786883609452281601775153002997342832530495922472644024291059462936741992367703968498060183453373688602799389272676718881483865622896619617749858789170718785777850555883935381726514673111976877570223128442835210340738681752240457911506347272217480999399002065087904561325373970235063160923752764669914748247783241942686001687636277856701440161727569748273008095881554926572525485686823434890587497390477973557734839780490754898610493492094019142682476919021919337539109698868490965243989883606708730106435775048303659630255428174009536384459310342313762248902971292413465684248237933385957767863794727192366510340147931804902442728668137040056853510498892139215895898155282319790848016791855415710084665884941106349129471461568060304069179549058606524355848833438405383762431723641335626075898367846572184625579800015733049624331763581810768179092394480740481376582010242211750868552189898958701718731337264982470350763442012694843020107695106619508478733439914058449676351027863173981383323083607823944627039311526444060502897599430379024175508396193967923425741512690079343601223906927561219150860101731054324501599312623956552012118277641288906560304745180284576085037002901391773190277534993472623910253777614131689406232663235793539914437989425114366900401505402092140052220540903174271544954719177788603854854196012194875078449310139973371315932296361071886154620822352033162523007363936946597481561626395843054534994931406988057006668414288248624731592653770943830601126277308189329234963570810818874952464713743574914489080654717054797149831869341298979387806309056542450000861130264220833593994190388771200135534475915973924019478161262449970294837096294987849365085979948314051124760796330573323103122665005458291578103707117293604575880970289080361405991448136757492743051189143383560325450127150435247546619046969493681590875476483018040337918826222776016571424606593711509111707016695932885550965236805880254389933750217928501021543864363529920266200464598223870731038392712488196426528411656559126160598565603991730970142861030549980604714444815152527959818215349809462224632067685702949831888513119818287685546643933776305831561323085851974032398313005432607043804891046599772309251079833570255835863010813024145195697252435569423500845545088352322198984171957700517320852218279210422763802637198327998475079519305967668084166638758704630957162826940905459676888815896051777272543922535357895499644681258014265888780655590211373848608410013892094721930107703056198956472367827724706221780907482484964968181861385143843670261279945952235806804152233678547015627276709179390295139329707447238409920565600769131041688222377488998636585177823502459434296491101025126145847168270674207183266839128860100131670899773659078653311508753040579185644377435317234582581631824287270734409403495247361608649216810304740110809238875624969335486544282149307336879518022782726631527276886778628301489314894143561033933701951919899241535049765532925718586436093255581110267338426023697091153342935391218394808841523286025814080529997960906108071973731643243988414319238142658631079232211187307870403899583864942839161833007118511036405496493989435055573500766979177066914011647780258614027466671470355956302047009731422978190391233396763544032483679539122490275506582707926331062404042269582988812246681417246228777409591430099832271033031377339745074008738726897079733803733054231364165647368539003008541199489420825928330234436721726186622602120097707348419546237117556450635853128419842934039867760204538773643962698243355980749317808450276270308614408436736716089984788255408435175058609147289902816354841535621645503146940804465268487927608652574961707943000483855407957613818362949414703387787661711196836876553709272532594316681651586105474326546016575619937954136512127268763867448970396188177198788959590247586453271446867942193974349121703148873259356389384202333449460594472279905634343675488222900030456110754106144058687560467411575604841603337978188123860197325714166626865068290901737387860024987513636038278556116392148101555350064595191660113264898606806965464400743677571885669778500489114104021691760944918409316045780647833988363327395686129538339821577950702110220541546500709246476495181931796137656464461422433641286850720146011609891895112205547382301860257737499068132432207439417994768483969298397287624481734633517821163824937344346065364732971786614289889486915546655633989542556936043182570880985138512250575081971691889940107642334491546343161553088654861244184328637208033230272534934442944975264334746919283505598823158141162335308043933431577507191558484264362435226716199640959493516907464328276998699131350919465915674690003242030494603175239651146479446542973387864648357467533909658222782564836141144353522227735671237222003094595703907602067861576488718542427455938466412231395366835732368212884451936157757590319742947142491845573677199558363085892604256886289205136327088652890388504915956108778976842547055320613035594785193993707875967203782502251526209539278966419083594945235737460730409144572061006852487829088259110015647880049948600867656144291656577748013497846873953400971009995668650583177165655843487514534423005110000111384935304352015135022764204355410826978635256807545571067307319278350917963535318106327311093814599173226213959268573044226725242015825416461089914069929494967732918465407595766174321899754471175423291800494082425747793956508913655823637913797532758344360859933476046189732293171560546513860334094419028739469989634789424369933957634898252437973234633245811496451582364170095892412610640989503363340923739827710876227168428363871060038145449412979675152338173089883945464822186790572912979385260997877368270411220323282350135310783835947614360897771776408260924834737206381059871839098198880883116478438962804353704193866655591726651441731337867056574030701641399715772648100377207958646196670567073517025617429111318929109135547730209741275998857255407736421383800784054736068860322986106637232382257450524751952463702589710969407801832884432190326589899548533449167963990769374870192404839333747753434498980361943540013583335640357692124476523078870598738795301858954128858509079348739808952855314556221450878757226570956639718295997128628197919309952948420031391604501453133426807664235333600814278694099400383882285553472296122493045047002702001787305152623694416116161209756972783070855029061511715941317733369350276500044944807933995389030902424429463983888313892458875757843540183302013880349095758002300001580614406684038651012858162671872830776103760031722774356643154086235914506250953113264642046568587830963645683358738968818914082556080075113638237727124035973556534091824404833783507781492736719354195416250504364024197626714139834333091678163174125744959928811231114123587957101374535535260635911957527719311800784771967146586466261731474341294458552053741450147970920867959807880179309640184764832100008990061467202383863278734719388819631913218005231174953463817379804638771621239755521771987888084206587381382344051872775251316294234170019690327434434737347428638762130083515243905334796192065321455411722597005275351614805795237564946886030525805121392967933328901890072071817736492677665428442323054326389087541339249415882506816955850955641244539858505655283621332550928296160446669078852554313491257040564930299064563349650810288072202513981884680379946910260983493354219792284177471886488525888187647071271082504819573119747215780721701581220183419458624981403659710714569345364073299718396927401988032991989892462626063717505145549513609038572046394276212092837051599887235929713708918850348062996072707490458673415183707022675305011243348154989157398164778679086651165922743102472844226448146672019844478958050831466670017402021901427917796149514359010485635163629386172746974011790763541323328273596987133462322183607342521873624346672638259798422253381743756346273725864553255739171520963366458614926269661306258753409596957301980282540312570003141591027054162935329037799295037713962658782350568362585408039133700872396216663544960954161274430322014688241282942181826842071811872432127051570122888491572832579819038878618105823838407098746020994285471703319424014303627969023018986407319415252073766175240961444867818702138555216643049086822440458525640832175629419720823605731141253329673261881849512761764798497263843608540395412396134295299855499796090672194658097879733775765544641388730473104715493416925218387142393762819724695990905866426356061122061040855795776300785748089571090437616994182639472853222157333745527302957406965660412772504616785118916970402842516612710938736329957658138861448537547377291985426345630605927649479578942110687663794606526320071843874788337261517210241258569252005814636083952353806351451483699581540135115384456950063307322598556730433574239309711126072369495137890504984193788727365946344938703071183588965320737419886750337935623996640521628152378755509600139037198169740995324671199239024717374870881585511187857673966419490620896832935351537475921095355840424275376755507559461466141196983138227123020349224723825823906940219913388680265299400820622194469601001682891030927626171716034634405004142961343470708417250906123271682399723638418152687195994185941558163841540647281009221495111426508132492641546222926833738236420519579188214991674823258418577707089271618326945690701323095694630213691251363937980225061188120418004904149927532470551213978042569434333485196947320277745942380878434563359701290320286233231728595194332295472324976347295252642153340311460745429071518301270206912385894670390056843915834103816942266588457174190788990625725602513106296368621771366012643817136095400773816461199816424597941209976057842520441045023147925897720309199377401854777865510597237554078463710570107715270374430630626890967153788297954465390100650134216916190173276623223541233595706364490519658492929604652432898582429199626757381402602207005242574800525935865586953122333456173293794106430699536940615080855356351608413713045897804664055540122808541577964847949539329249571798625685069244622641448278036209093284988771908041602388956867669120233781927641956860488464962947654356721018874870601878591805594898095079584976135768423350414504022272424507760141496270418129062586995902632311487352076609081246068489365107148179785753791029177353843788095044543400600581163945843933084443879892203552052933909906438752578319814012495462191191410558841916381778751324917348507482501085511924408709335618238437651036468079645267956178858091389763598585692563883972187563104422013515108564342082286787036535023972583763736168594487749146605466419178648783321422477561547129053558668444715975774037926268512415543139200585851459981976030545014379898145292408155260058913790475397878910200394632965050183216990171305631050946018852873068397948640614699443758862428622977542364410347154476111606526045697131704705532051229753164460349827398964528870541167952901390163789379204524012858607151450639701358904545507627647185031321675394679599217440574979828052380434223959695499844768101898493623449647620706862098480551091571157868176417694299697226453520208995956379089947604687922055808882223235206822710083719745723535051802261345847660971391540897401502556723392984829189326139879672847305303439495878226920563818206711697996625038668837400764274342279258990254783159361451322768397773961454910327491121025925954425517442272960290519469343812095590125622179359566650564972607523779301608276608476126292542588072485105694836775735938887945383074857540979927306248953257427688526903373868493613360651674376151470579238687860604715179174216236224721196146894291392658854752212908173672872313933628683976156385194154135774051405690997951387955670234001933238232554821590895840680223579054854601465892397167663868616748892673243518881537010403999084210788716721983891648091054896502235895467855755106378359607644267218000305495418529005474002382443233003138873882447550770186238548861685311555818928556499035953932202354092743138666064526046128124799732507088868193000669429028967211503698181626553416867097060857682789312003288831304322207279158467404299233175950219690377358280984258994361666235673652882089045622995531126867200041315260500041858971362826210384027247538700408197305933488794596795265091684976930354480074290881790255243050182063638027822361048625592242560217202762648266910069135924221674830703502499034966325295596404765136733700455824248380152876253206457945494535706930989669825601379077154303567319906408267064712551927628896751673484847548687395902448753139315346719119286239721461114321827697102387700719300246018125518907114152523596986087771297910066359480373009331311068511874317729367503124280890907803043331089869574457428457412970092492998454351613029884291314898926745042898222081113098686976374168678251694963394704986788724283019467488670561666957854624236656772591926624851933752473406268870316436110274397746764883014328197415258155250162385214023588975314279496536341614806565756567307641974237661126702644600855988458388644287177315128113510294920739005446908918459721451397111021507161398061574948658358157247688817297016252609279601926831801790748688021884404740299599289068778701190461772141242867884692447464059850718926863047638031428001413922161113160469903382253982939772665152508767602677126866740874964335448198561968450616019120404297747950693612392912872334028172433887788082175366939639712611668068755060772408223850196387862545607684790012338081280433687861515484914495272412932143612826458651029437659431953083907013363004146530827776178659920513908292560090452332622066216401459201276782379196698833466567194716545310717544694813297263557360805471178557511134467600624721792716504839448579133924980700827803660165581651620848232084599338283363134089863743149429336561012686016042317556499660465966182556667089987029887049698482347409741937541228349066691824629668451627298258025998460006581241345340313186444787514579477487320192298740764303567025057224829334139642082500559714942792426483357783614672297559627745535259633229346239303729733702810633866042543522563687740168368014091517103165429781210841906063123626139562928124568507350589125403363690808461381763439102308740015329247804300936543600157632166550637020878865136939052186209711630191730790026420815638262851962768839017095455719228131863961761535821147364347280377688516393373746323916645526971059236561770257663914030426133254350392364119647761816892722835131511472757214664325191260039079472697455930278249796516446465123742418864740307702714290602137706020872368437253428682320411243101063599328801307683325123199789119344894507588534614523723665774485339294254851885491262656163698147509545786251653469951200536065605274538835600369662180628826626734998948263079637341146582269906277079692149759218873190752650597094607442380825850297729129284336167475929685752457929976956345164631883759666767333763174854853364241855544129276626720988474869477355539538154194583681677685191657891028630535691759799071440151222871195146043237223144235755694365518375744394711506800244368295378397092528044040109362991171970099669044865790851709974693056692415610127515634135845839621599963739161748499322479158053480920205156262076882989070745218150630304450323562965396214777789513439458318435242794361053507677002705218730362240081445938842633244596724238180594847676987204808013814143138147127654110098510970849188903277802325991208433768887549823711349127269885244396065272776135313847147275266028478520054968558668484813519115248032892307042490267694187588949463671548826773194715627079834982866840249248218316081181213117659849816549379356779586872792141631164444269567339003434705572144799080615490461583227397591208694532471081041942986648669133010333813373322624600201199455900415694542121718204912571504372129735236559448275569171383898073805362760419665934201592969632063750964229709484581971617733605990555181803786168399523753931509493596326083790949685399917741318470605700496674953894920247635891861707581782015980413415574796796544021367965662614870552753850051438684153850074631183282596691641542610143040062738522395233881070900081121803961384792273809845070088150759007221547801022421712876283063166767070209772148337469161676549880563699691362127477532853547518981902752719754362707308700315094782144110729755787254648633648800240009322320544254120097939213104027360087508288604667975305475148105424849634602893649266528920189776649202078138802774814142125936616058206454123232254981215963867132722228288625818197096427271838014487995238955573101345779878723273129150300958655568157700143311353141915818138051583458641361739365606288306362608621543386697283531778052435924184902670628543499878513036044524958988362594238364229634508010720504790446404386140070741986364821345967366250988312934376454703529756026060176327476459793320335605098756174195239917495499748688603838227069338591320171565808280582947042248125493384246214414876098155892607914767875573129911290848926689065049758650041684226581418258758145124400182443934004453351466409862672560274587739151073580230759592841019110853325085176517627626748048898036769681307096895967663485009998884310065531141449318486319558753908829370929601409929576569158378727614975892911395012732364932815683453540318754737457294899946025931633210972300796978742008653528643559420775727238134087967572107033702515250216214470117690345474829323771607619352996073424944025413154086352281430331878774044507457259883291974313682777129221839494388323574576740970671351707648620362225925402018313612949465867868549183279217797174924277109655784934587101039435559823319501161927129371473142402176557283291056356841387472614625955679310388581935823078401639361890789230251910799326852224782630925496101903361544766173504268079852745534948868972894467403751393910282257849832176079245409414270954287484899778769160744876685567287687594431708619683577373930966549586872038283450828820576897723378988360830299990547546538520714594852747694206119480260302271671111507465046180329492791899745915581978826670334373168414529849150376281604303506521740804602668088794015628900214277675971781698410109790624293147635018779595179762472373837741238022896074560008960958843508587605487860277885888537519060618054209865393407748116833756735597466218505901664217649618837347939610515926381048537328801407623662231849265714003946516216214413472825414417069443283234508493883356939732194348812394300079540407601178239645771187934904539507043565638000926191919129736596387904672190229723532355827940468218997046688043842871465850622725910188599916252699487385706148836425765460771679122701838446758339373605417504577019986454327230979691540062132480735161969824431447701029586847709552405287087871864787010781847767516826514860685624892772557705114786464264997288057754824220386421742605968784905905820323769689616810446630283134679654459876001345816988177954914893291609238739857366183139175872291368251281199205121901357854890216756658659345155722293665580490298328436475663729335742610363729136776659939098879800508380666322443248937318773065245132349366211071012519475622172032739064739823974907850749813308414315847907568259941999494083688480610053838142005066841404257073511024978850286517032074519317144928275882508721340688381460003046568827657884295029584147619635105006174922424814158574303160178626868023103887160744203343269185295389443160338473840033684714822351429619584445558501399945670817402017220182398675780508153616579068022620549895687135728657059599043286330425925801368492053978737446565168544197218784941431647424688720012802740439461036089645536067371310886146688171338744931994291036668204818140410137473866740350882366793218617175422019094761926111019009746965217117626108562138957166606228578366724022236414964093686056026709033834675110519387917755865168567907386298089459350333907038532673531030024604798631541533437677892790553607835331598044651993365205236515007272691383386958562645477447533196570454439619476450038225014362659610819001073674494384802303695232321027833232982129217426956112974321711202647718242087396547149590916474506709686725027957897065361574932068448304486728966631790213174830953170525246213905617944255841273969806886630264150698172373759028084079454823524354737984423580063500557196167804023040988991816354030826276897442288517062546624167224635554533484330652470819764728477261053323467855799095788856397147750232944249462509934558884019387982241215667094191352383965789758431366135195834465588236688426260471441741387402504335456932267970691081461338341520298833387878781761257966290914541594272109408648168838080292286146178055307744136397127294934689464437244282707496612839910317570326831506274223561613951234947179366143252705457861802186675191540909936295156009310119833395948643933129950786226277344103694482681170745744492556464394864776365116467443059220721853476337231857296468403274166933557147868674258999910169720466933484753038961473711802649562800016086124065691330488610176055132939336777157007676568560952718386190799001458445670532569477562308383461297929731855902621332084856263481735288075453140736363262621610442120795989527637545981711204479388048060352427790943270105167145668043710323872286848265796600151798254951993858445928508114211072500192668159742418218864189909803122848061783097128664602222159988222857433003788318498334894168786774917769982872082712921184832614066225789949211820091287647156108193560149934056125923192394967616449373406821024097855325227598050764584350064284573164962072131254706582642299721191157566519231438354577075360092025807351579938379494191303255192903542272795535052931330094974007468125344144651425363159373894233041099406616603278901625311305213521548695706828770534189175100371506421551871073697946067371954280861853843205513718686777954884545349386995905963158093321485213867517791561852677344716049799772714279586687549618610791741868347469594094024672045573246916568385708066351570411673298155640569529101623616997201760494675073182962105729226702251146571869711397904154297629439904083576128894001636096799607365886247196209432279718342529754298549815762565017052530660580089919726305978453894175116020403835802973610899384132748144634254505902928903427052280148029802918296550634877192622809674883527959678330992306757778880624303406424369520240285816797579798971545152848791282106916735928362614313740685171346476512854640339312928165997187481513206622245508096100220009065212676716558140541042594292013144564339518513922720454530648978840582164680574168653316945001748814329415880366458395624832801680604943187857004407401780766050371390421620588375193243810079898073201537712110808942462221785399883034828045485479475488371939318863000920650865190648032098885465928530720115269044993028249084207059327872021450065341962143583435568736790341172185211013380202681336550654326192574280350640427326195961527972012688992184168986862983444788830082337774671280373963423878787328583538257819270691767107996681349861384420820762351977317664802659828136779911406738244874496697364596597357353081109388364657582538542172428869642593266659748836619605400017748407348971720975200698301686464898607360774709955782084055250815722904202252244178162752213305735708960938901106381755428765428146631736793783720515876168918112096635429429747082009489513697660160292503726427773497063602941452175636588575461131075280979883761000168658859768657454906124207962234223508872660647653142069885032100700812630323307288254103877737779193779082270556585274153135889686908267916680403325520819578525054001831395485253999902787951546625983175067509949837218471240648689181621521351563007785927023592243316318258106909912248004990180161180963030983408457517218669577802952490834126612350908599707017990245900072745861588479644864480594638543549651592001596616239007176526381482429098036724078299001802532531761168478671482038493656084130608111172098200673085762051303488360306294289142584676916826704811527370375999109524799093640038708937495657207545204938859856090131454545868925157870801141102965437938612788949743304035740824603657476796289355762819207969096723367704865437738079742741454382871911669954123086364900873344115458552981285022398465913378760706798756770113528611845791449444013658205971156429967734624525159711526444775216340630180605064479531107552648171318590255506961658390688645397579925010649643831754969350376062475770398744993667242458468443423421745599251856032597622706730158035761478377645641289849357005930501485512597894471328712771000990181869260161018189339487195102697674283495536544023944316948057251041594959101606652833936280855864051011605526231194943212188303792331078655026679361672111297390013723262681989368451047655850226778673707966762369924146039850508487095966871916491292030285482417019793322043421328808552958525679739456976288678595791188727245267137695798043580602927676551471462075955549676105816908640272024002562430159475543702472272063316293980699033809120356561405308659343455286944255040641200477464476148988862645683072886803129580433532465818959304293965758075021099503431179938851830025730754170013800787050670223643726065381488998776104831298419460967139139339111858867100644697882840688800254140250658555029989970338921080433535489925250800618933228931022487986486843396001815281842753340017657497210024719748365247593909790940562200675171595027391548941253050382690394273336499807103669339086304123196437205449851762593455910204053369347600755968366582911967289313173288814704345488160090255723765352942562899269130152821734898191395297620108749248242870886390608342316714312238866020097156241629365899094731444271186079420617660863100709103468339460170245213863261047723000318661590291851928601329489054164983328158321392424822650880586662156796242910143364591499793466037156731576568996290222970598202814942166035920091738108628083370074326573410027402234146123179463499241006118988012393651283955903357860703772678414824247462606014817025734140646773849897647469702038773108682243868335543782497098641588692065172234280135682426507984047220909993212746275315172185994021426541478676256168838051437659379561275566166697519091997962961552664907737374090754197820843423794467648556561199030120350631848939218218776447794995608788701240949538273730374826245683248299322573533722408612727672908043079344769388467016944866876573063840791285921995355393564182979050683566202679532745175511901036250125494362644535117878093367543129278633452790199544180764765722033391908556480125035388000855587966718475638756400422007251824981885263572359058475812277801596949207779780491089149556648012877857798576001493645049832716896848510389426257161546537861318330058249824675043755563869959485132941866903599223546123974515397459550952077209411550128408543946652411562602279096802907806945009343086092018524267279470517233869954971469818539299249454373352394502884849864139978994100870118260486009193320910384244513961101615515952965772883701610536659382552518833011843815876914261478552427987012137572553705918230830173106965560743505538090493104861606202573810735447168529198806086997081724694005835895062327393868912458130433483720497756056972251575356674336110768906125408695553538578642388005600527879684566071655747951134300815734952014368071189173455405274403948407034353502433997801189804468661928592545581319524307646211284035764298355127281467429272979724194497439902597212712619687946887436227952570909516258752519192807458135350972409273583031592545448146473641939826204483822630772064224043570700034345394981131903828114047071982702775983605957514780155275430260274948938050809308460748266292045047983194307431159872964138754301792854332631230684597818461788591068017347506337810717786648771922424810459313523762352828544747485122536576645776783450979339445849054491385471368667942679760153505676924932629117252016669185294724462081278507177335760891462329569638319407169797756635774135505244766007995516805367741263135665989799885534518551088183013910680520249342230931509227140156677824444326237328253348878676674081707360572789526345468399634867279766557975885966383899408530681853373390958689182602683862470824001491431999523295388992576719456797813833451730492736562033199154803875850975999330012290376953429956610718343689790075957605639831988486434209044321658541736184578411735724768274875319065891037814131434232583099240156968629586865777184998956560022608458451427804976079565633898059070422108673901306518963888061524338030960992445886267091612929598231481053361795366730537314230666346773289836436338266704950513185470434360800455145293230607867946431443622169555390448867024185321357781938064622051613849208661219587737188232892232381376478735287844178448462814270254045438428289034747598422238346059161928568272010246118660506286846868218614832623479782470175998443340114373722375970582472206561706421862360914212632900835525215552986152220697985959606086090837870328650822123430028461132834971313465273129255314949978468227939012716888795572452954874294000698761046232514343849563377202030941088602881564788237887425792591035241084147862547691402940411067413799150427812499068722321361012280323230672224934072606651953790749331867600275621090909602219052569702866666236610248543128421817042208679818913485605550055013993793194425598851421975394899063926446983118654923141913078063974745028968442487657607971066671116528514661585417127394220790790518701958291920467309576095833204927140436888196386692624096088513362376751059451145726757429709582290087473659956635644800501560323576616397506150915944800660491512469527945652662845051100661256693615549037570861098436015004511903667108157576873559320115204472371975042312679861589054804580941180554286297343915889314166770125346608768281033986168248366667218434664448864206484913454288942188422418160626741505785078659515785090546513712438622827116163450241317168661810658819896929322007934620009187841256158575062505700207592926371404645722305368073169388352527192719641128509614345410107465287288156017404564045161836721134971229508498093747407190395283601225804563223896376971224409051179224607970785553040821794463029303524264514708714499900857027701706993354436335316687988163311555608026761286598990869079759034194250123562901082286508273672537197304738121128134908290060863732016943089925743956062637764115838781918709501142575681003827912812241810971513765842748989550166090503115414679487945162336979023297111118607255493089452527440701835557987510559016454855621370336021659568302386087185861053984074658986020343457437928427903102944454762657805448202472208781251689522577251362568163054118787593668135059880946340807698149036555188309559239238337655159035889523583569088055852209073671532345885438067805168544374316142427999793643686797761084573581188092316186778963775453750013447003647798896641074629608947280502289024713540698015562971971299807536497439709190669002413584991643041062168557275505593155368121565430838101250594105835075487164080966211434244506208320014442542277831002008413752374713110800575477630522998910543436514955719686176394743670200438664554775164827555405897473620632109269852649389941216624139324164022340798376793086158296743017143616221325589240142909042231160290697614600863833535633213956349295468942839487923765716823209220795543946272009558480354974396159692751161750091001375164673743396273333351873287006116421367331658991747955088536511441442439658800806934357935246642269536473056195852787300813829490203094574497367615906518109908251247764412509714421998977733213187310296029821331026655362608452303417333657947241149097645493463122834247313363385841124299503247731540559016957303551871508882217122077315576313924127815705196203634361270586215471008161413248101800179685945998716800566618051770170907886160690608155186926738508753867840725436559833202876837136490878388528721432609888614795422495329970649240681235297341047843133576164071600566724912687525097020495397162563110002063745566126577120522409194359539748716456845047832542829691694953994801919412445349805352830215926854902734838579616856642538205391412249794686616604156907371224311555198949810307612921993743212757705717173506589317671263260307615447499149099820819694531534120979898309788706500933810723856220413729047630522593946865876590702701378184885448036751087976111644478048730006323767462445639778631888690259959235357530463386510649090546424094317257096480108864791064878999651050271577481148688576752393281935231853385465442706747877604892133733435496873669839194112960520149988950269772014422366262558938578508358801805611753977992682489959368123381273301509576634989358627758231007009290077666322226721565028819637272914525510336834945303801265999921621589245593213931574137195424187897080270960007766463276395206685592367158095996169217272052922329984387336443916605914278934841583084538888800964833382915361658659092072867466666744390026681343247653777235842766507761545423935407359325503140842668553147678403945566625977493128298435512908505617724145649935181497819020370729465935009759738111667949286287224158557657177329754179418355563793570584265640499748406420989250961490429582616925036554998291960444721630966347179246303799170526838922569651970389037038106210815321905255455423851259295013348527529379362663967861595870764799226690819192069129668529556279198725130484164597423671535103689063672212806497397615469221889956501754813608211851182899975162503883887839954448945909234448913595915249480845354386106196297945473615910615274562979591963584585882229701078942423925964504348933343997876861844402990329189010417705416811334657345409745380233468906645830318253604193834801450709701476987562129236943707346621109368363289447349125518689711033143496873935857313330110626938678441828408975014507021135040762636524545175973480268390488949343478731828874474803214156383173167359327125886105510429755911788569690696717151913341673223985338286168974753926827555485070800143866117964380659092698543458385890415266226823776839407683169672477997847412919302751731075529967559967442875259683041491250146060758907282417767668076823120396018138770327455764959999134840167751413078278083091098929887448832361921181377910720723611137849212298878028810796569944803169541195361149575156841863029417848578724804152338870704439868752854898680634838142635797515849976378362965336349487081046130410817312371702756233296845410495678296848253587658854200690773765485818541796730199674179695077384030120045495496637968298378767301186240755337213609435747137550134223119457174655185290911910463177644185116319782297604540922013431293481869370133563346716682973858782375155460246711078800264576916298292780370116192997570009156071083042573282198283371786688017553090033567620085332844294791303767353433809666204640793876851441748364250455534956161209096741425939798228483421143645787497151457913573504193161763131897652622766717272803990878010105303922846660873687441399289855607029817492758506670107241280100781041959957680847961293099446435720628217033704864058000918924768729120469399148849552492762713359204570295168965413309438805847363752649445818220479271086854823653348027250263988949423059854424846837579259863537277088798724711943081003739921831426037113809735765477118363379353387086600874936380940363869562623858066821441064772815167486822624818651316736280906868335087378741258422223128690911472799489112428030321223895562056840056627756955766739312074435591365093161129662701857068822704746333757388356686259370026233884976352881147406771795697053832402785577631969605689044949344175696767651082503016716988930668085408473057148917499501035430618345998429054554444610935038169445636568838624522788909848638278905963969502597655453373652039275437084206757421015337391819615813314007248257262808362223799018246399267588788961234748546013867046557469838708116017423203172241095606852646926908458484366270040740832760088247262149540216271716076060601789870527868998693388666896475506201847466075629420401958279327031539499345488645639536325190831647859249394909904003784281762955061240163213854828471276447812409083343648564516625738210561689998623451862905050722997131306373700078650006276466139610899300758688310187482922598463679257735550366619037722301365410923566548776772396764829684224992453972766404476154659470827183435158510716526743401000721790881035175504333198468175379772081757843330731719253555933728123291996775736708738032381121980407722806296280451589447755532976137976090118092278233093405322358725620515652198059393221896106742662482098986169861086530134502017361860368555527401419592710353473627703840080233025477046380284395038005806534160353305772653835299828527154228028760897915417688773750168491997126860729014563936262815029852966878643318417341221191565783061071515122273343796914797740717312705191736928585507624260238628873435681453590627302868080299678999429642698658470340444508310453535119393068263725236521655412829103683288969618188398700882497164648780533903898428860215708901460730394289656734727365106496815191733328415004074176900516402269824537096766402438614106138434469248521918134934365969220517796696430753626818695573717450795365675345450118907055741803523902223829800580290823444732474915338318645969380100679731528148780197056326153684354361492012528789642867260297058782091829392770955915120120940075227663205039516185715388489264172880667151801768609672304306976444314615272946583422195637113716589746467675767117073407332945247987393342109780105604345477725002460046191777481189523480261881718476320559725352988461255651830385103573398268606901775702994839528625748417844248808273873859325288757450873012628008381620640361800406887482868296578244802031883842499923838248167010377910855671782026094581702033467351598453986697964708347728993196306665048415778657016298997268455232427392549588166497862469300976902654977352251732143006992414239472819670453892058841643732144323235869663563422429649626321997853063918890192170189731361317423454099509929122972735370610732421500751197042730368206063132020711863850337943893351039612437885937890199830338384872139472909687977991625309367166365437136558844076528121008468154959464231252742260144240055933921733685285593358789852777396629954330613525625429835879507764669552253226146765246218750634505927952387286992450635042733094593909467803546102616996533278809723047555044835255415948924918412105194672065758157949183945781012752401723029661013058642781841590230802590716896056884596167309045097392890011723960617238987647163710670218387134766893938639022441475875091266602549445681776611699545577768223190521497624872879045488047639714010539915761219959661043334148155947928962134515705475924136555376195788670094720410688533560034126946210227346117184146831637047587543281785079206371663068830553705339201427995636816745264650422928849279409714854534004259491263539221636236312068488958016175873647476528332637809232559636480635789592914118646168609662471792090674212120011068667906487693900059637213008515206377677128959096288182687665141950688167577374521843474568710243529259151563317763590578287312072052099717938477980017928038903012011145888112256750699836525671974294299627340342954342886034756404090584416709685919313014591383123760780053094169907290153661129184868869597502841859647981612865971928506803793213730822500768660004183444982940956379674614729862225339320452788211977330636107816071705483542620092215645973872317391277726120191813609601924761265838384556710135617765938513488475853428757261160239394309560771614270373652945147696340802339969490573946904314170897472802927184452455914754931911390750111256870262533592575230778285772925635168678859897670456337491324117828219373863134258687186671513997496782392804784357882400991961368061728844140253064699377363232729786766544036431025579455148746241946482547608328358694002772770518511567235702575351011163187050271594461736199968018878444156570051856772203474154264179843180668907515257975975976498173522316606992483189926571927460538103825625413744848601642777063226938731348510322780438573929820509881524009071571280818646264798501731700235506002657589679854346434647410011101938253344004977205702640828431518388976503501258099776362097937605787474000171285776047843049399122814483324709074522908472628372631593398041823002974580931314413486703498429993220602986678116933352903915588826799695498668447106679145290936821600510375169754801013118235839767664814219754492618919382040023462210457913255089758813574647664072795027051466364210544253988786553462057997396756954923513088007499109218234085274111422775944718179324282010436434562162006679898433507261281545838855351174316934682479283374279348654195148903698533040448669519129207053721849103601274141852106735259393942229843767750742867133413360115571935877647491591941054086519493344418143436785976537596666399935098062506219196589010835306944291958778192376286737732497062898985251340292550972268020488759958036920164125922090791165771695322227537530121022580315246926465212962155691175382924754732345171705103126217637359838657019891873532993770429114100454370763785280741725190604605211673474496749161888141688976596380669585929799784393933465649460799413386260362378580613844152141587087106894517582974172023832663187997085320282933708345039443890796269506860385620598521613979166174263612345537882959601325909427414661543854397475014296345561322299196150455497300396064494529278506727928910276423168442835996386873724797425071141404231172360206614547567219156748320836886843902653707950191293523134764619611756693230034921843375016168055615869194482004265602841424283605257363555157883982164708002834146003287059550410598066962460773656097673467316492366044779110163214170278312500673805402627502435891586945302516695538456974638349543831140647108282736784324393356977672715045133937208450203183659555021382898944119018045612721580881987776646779800374885949839809064757430080638732695396294052486811927995745521268870547111237930519274129796036839599778308935961301559575691224395211144139045437847864358712737494971850105523069396020550742684124510242780674218195508871462798637996908445259918531755929024243079145918270532565563665129210856311757590691315262271823222035401453062887547162225030632437066808936828203133157269666000616881965398166318116831063134927884378813128675573835456680475581724470325009694966068890292225890028562745876419556675523486314944608681306423490453360655909115054907601597396887104884642722779605734020180389683825859325159136792603720220911023286595286480754591757776387385765135501695515213925404589966812804704065162809351631523331933871818250888634974283717796550558264053257167772555939392804346909441987048208051344316915143011591758172584736919510442994677575162074703887926918652905797419506416180997865738949447933578709569898873340418407642451174727632675438833711776811470627336516812903828260426928159901785286418373988311671224621711846167286449716694385260782631114836526144292899715161462965497137470485896440543767513286063045002048942997949717215796098705331413487922359428061231245486177136260033438846844771614513849466465174461384183730891422638982868127420758332263124870992717102720720726557266246127762211404617817925319033391026154622807675999506747565227773641609482398617161207906914501475624039657853290407643745845352989222343118071886410368759054251820552868012675944113394031866561021678521906819935284965352255825649051208814691006367073483152165058547360935214952789243046797065866519609773475992828162483250233631277602444196664555573069814865805896920799438918452147030755190696688134243384596659791266412615575459189374577676012257021124096479605303857260452606544442521820313996031798654361565307261450650260357041116239967831580670528474116417857049132229939170079956707688586960400008786253543573341818859558401273287289748929179778113922369401541223212432091414024757739936362542474274556824634789683801088896257019503262755553430629120566805171064513020749146051399409299347408910293011391074754961110198515013593013350612834773707787064269842783481072721482338067538952746854524999808924263741624069833117618755189896150968708961008217738109910261705663466497127233536084262566596623172789146322276645185940939288750817883383462485498299319923722957215093729283557234101319771552194564633483605651036077004710607879712517552251787743944652074474227210427665497435509556337491084729112156410603372892221900737861087714250919655583462823175001269983992496170206852169490850326768981333836151500855046003348003286249485369224821353590490702206036673020999745537125004808291659869988203616702939421514284196393027922146966783802550493083435563442299388887754395042401829560516369510090882687718563701944926499677622699539243960581871619002317853683305770478753357494987686798180406747304316887628302594428764005243874441674920418555696576083558060379734815485512374020476133377049253629345812068765228832145993054025047510431136010039070435707455569321535043432824777762168382503274604065981294328848930873331187153988260218232202803132460263566476503600147190030909700210345622556132689802141006064065224089515068878170459634715547759573713969133240750681168455992617498211762142255593084162608097271454553018245991405919218737750609358926859660161179721930540405641398060840451155167784176938540329039452485360207176775729729211533423110967752012114774991081571840227273804557555244577592673435510543459183177935483989210876967285698239808020510437455766859894708646800331690661085100078934561804145394336307472817628200853135595589497957505960866122376215857239171741580093200077765206892102244418323120025320105694622289486918704030901000112848566422725400727747566165728517121524198831277472028172418645807935487922215955314979724961383754954312458004816320931350445859331569557541654523873293621644929995240895110299179444738040734550060040528089586237673807812531673910528029816246326508993546309836623653607419250506924679743035176615356118453924158329808432344787172450640447422229694628807517985825211558254489648667156084772875857832257112825797887018636555015946636255848216545374108533134203015627302705974412589318567528549536852695979513606145308344031818111990294548760968426593471308896959156953970490567180694435912110048816785318166989851877884236500040354525785278989800881522843530791016696085048398237849732338237772725568757038667624190147843445935289850256647870235558255557725779623734229354688576557656889125457616999263619653698876550383074438585526801735238637564704801604631845312158079510639090960791903079357953333705644806438244878555442804641088471776300671727679612015789463632661241133189371353932731054651507989383954677133656665796789900547147434689151493858472900747853667006013137933284624963462707550738970303104197807530381683748634666237984703784655414988626928488033392871138546684388511022816605194174871901385187357212130064404726199966475326889182052427208719659864068272879117315649256067228697966279783676174884757550864406378331901761501737827816941485194411551865978011667007069297445472443460003719750983083741007418279815959735064627059805276214487806757204180280869088517545011867007879180269598265942584863900184668296020848843014412889440668612458833242469605306395582505817502778694434356918767346537580894411869960756243782831242202473462931445402707109637660746951829270128822910422513294729917448740414802472757675487453555345706879918586490342005786956964655533749705125044668934933978538528105154981827875496942417107727483060296137789985835863205060440031572102080323327977198681011724689608375741297392006363348753536293380482721269304808886395547956106575634894576081706396298456871499513446153282105471931063293412150329083029047332650353760088803448375461926628917155184289772466221030105179178567897965108429633206504757355571455833928814443530612054553884061503254320991505118584168984133476308757183710735632438018726173882256571734038071046505342040308264644308260434604788624076111686556063599075372617468405276559713007502803739369753672590789860253343601335795804347490587685441971431208110939074769491490161522145169372585034826009156590854905398200335460295704531318654792384103903706668676964607373147004977979878685319559785932090345169102014910578511118328240017160257738178192649652055397921886500920502528723943435458087242382788679072175156968772713022383546092072808227308810217748026695752097228867898855259215586083513855066831844779514738446403963279382806451942638611553145758619716825499534210466993895835711875858429560904314533152948256758979329076560594557574866466489191440323128920404191654619972447778776737131755788295458283233123966433662035414111188255541214130666264940573508913732220832154834406471966233353291958919214275570936749572885501251549350713242701943045588351789227036698569530185221730327753918780394500446687663320471755707787727676795631934731660532722237125332025645590570391983856132654366855581009729662414460279970133384814653975818625075100982687391183827025063679129196462269242652354341822640779185945773528659320066960835759092297277602340089123688416583408057324535089201053205926097340325042028122804273853617670703286951430460406646980096938894737316622482315719519465924884685055331319600471919236809785194326379876439499437278363744601767526129851663056983351937322034712399991113966954246860507220552516505925764343908155606833796439972881764626763103898738029401573055162633592798729598225496501117724669898208112653242967978004935453026259126782526841776489132414773550062626809902328332903678974194464825160564498678289232085399997419290175790703032508193046073675874799020808704631818758251077131588157924609775640025129893156220555736755264807694195500430594981181991168698769299262252126946380446278094839153875344598458215939682084000829211132630834447553647391865922028793328856735319177826594898065700277520354225702745170928329212922469649173514655662864579298415168021997926814366427397420835930350010739083331037373534478194139687287198498579367256538254436747775060884193614184886078533207924111691288656094122277466078542099508152377139005183035759851222385804570731647629972393179401621585428012187703196072622457259025357670589987939493922443088475023272718220234223705480127529734314414266550139998297934913282021814380419217900324376005069389174247223653495609711836306476088116448759950821945931437822024479665011142983691899729972303996245442932258565374714456647887812219162100385282756944051836972679943889001340999275479147176152414173466915523878127282857717064917083066842493419738303822180477185245726444044026007530592540680233166350953452521231924972583647071571997355061679581354277578875693252049925314396534401291145891249733753362256920599166187970581212627598814122992954267348654056354786390032066268214706766985262271487130890091915805302883236352716145311122717525985224578436633027703656383100422648472976604892224557564063584304141228572718266839011797142478923271288580433948749598391478606231953631441442581174841127886029165774023531076233382216554769370444235481976479294590293978991464093056249588227934850783953444501272373706919536960485747973455425103824474289370958863136002453774666757265796125102933246297015346154487676751459108652367951746196437141327727155093699505517698789673953476163408211954362862385177083553830139618443962223429325886169351004228799786112467992931655154044501428095464334336479914229152713515980542258084742097550128183615056216857342747090069256681216342733607537935542665726775882203299227439021970965181409103115585016465585502091508745223536157437235121898535966148022866259546022215242877138560295209228768632072447054682663425272973050263499044356552160969862150838221344350064264104376040246117247645734742330969829582833492193791967295120461519907490044951182706627308539123525326211371562354527979989577162979860616891675169033426737396805804519003792435055713076508561660931418845841015592716831244546714327937080558445867259281230499809561559902531972698163478592005908461049508652530437738575244188409298974582748745409263499624436977452002456239732565397642816384031546851177502730932225500679982519365636114347352955459362877595785553237051311898212426641709421710848115009349741690132397193280847240708589258289699401485676753860672338347314722090285703728502413913744359624464715570889049438923605210764753753728582140158954187907927672961451522250804527781989696798606246703552314541521652279180695678969478067133162551989295653981810991493632787384847469265468985322790680644131340207142452992891955923304060138255186793392611312251286080856782120526523020646597980364195654186036437386860179263779438444195951066036611394873457108616631795488514299384648110273938420662095606505387882367990189329562207976319985299001129142702369576895192208638784360670721023948532595152197740676437288895577601704128251604221439189412551621369641202772927717928675635325303416212701883659041188569754062408797631020159249312482303348524926310277145124224155658032551275940400793282280694290416896158154249081637951985160533015694930980380121254104534453769277358056608892544016222335732791586940912643419968521432442626205412695719573539122243685688667991773767779084292163188178987749148734157115428905112811046349461056429881465124560604582163132921062417948643371350430517516468446037227384589043231466757057414334657502908030120151263397963356359521609443145787653195317308050551080229930911842241687009244517489012653991235241551525263922513857349796292348224164748625629643751144463468903318968321505046676877313215181641483392903055688310019281096790772823689032505922204120203151626452469328244622102363299462933758484481959299741533998683046726456473931675536991032017245199368892224852725240839857243104778244580404964963948274170343674870008858256769485504061290021791599279088864468291542275155055083341062424960327871090167791099858054910308931015237805121285599289916521393604363606198438444602423164677700700986375227534697090694934745605142211717134431991460351084848397144626239798097680324313632928164323208070885367938566025341906720015024766201065411667338282662561234010191187705831562065787449174670236064248512422111136357911529045451229721049106406237782340754160469461806172886311912950308702074566808199850310450043731861224481985949798040645949230087000764737482360815513395345097877275459304801892165419546626592101947737577327426622680257187326316391713513895901292465590401294646518312632336655510013498861445333636430521978911887113727029194729030658445248013437417576363806633384356830349217756489541504524331223215219903226822522199979291022037158044916798439470597188508722037222540233473420378651303446132118924678293287591346396907995993067013317681839560021993531805109706343922669808925570222973747876896951484077732109458720816444122812964874185892946354352672954586895778386846329574487951057987957825168224653480945401662362925282696776972080122196753268564503307663155246483541450929236219081036055110035785893866123186099909533301783173805124393753021769702796761683398585469784925009934166909051130098293015182334758516251643773855713504174885983908396157340636011298209055326108428135282569679062918077820824180352272171719191702970529589093651257404609402323490595049284016003859896877866279800236225128283616919245542193550947439164147173504292613889711531836335285072694410880599190828204490476169947872715220381182420043089478054093163275564848761161305188519743082678423845829041764814717238871645922373738906698715344730475491225902536631347741787043669362956995367563914869677353651459086447626021324035943777264794732674556450988020077277548199243613993723286511292860674832435289351076612578733480878199515569624451009469913213419118181610701616782391942502695309002815351951882315990598334881468662259133160930495273315125776854629473812388496903253512343370384117323613543252475795656204232139725700583909271067741316070390048635197395615303263640450827362286160826024721669087594394135593587208194486520712144607536607604820711876515333383987811503729065849254707457975040650491744253263950005603213348897943352556057072571046574013108615264745176896648320366961013599786588620456513781053138450703517490855582649497760609797561095924170240885343776819672949792458576498673145750489715882173950605078109014620579299853111258837772608997025579850277298398230639961702271813751740299514138821681595927360799078709941514486994776060286694020834133680949069649866761972225973857751045416901138284002587331356298561877011542350476734441062161841364941028923523003792804445646142693422142977551998891165208234823104341976729259767266081503362202883864176941751925782790986934807249463539410676401651111166333939736724358501468159937102456296433808548312762672696790198543639789667762882852633483744784808173934570410244301614819899355515118604377550750406785852191412810901793180130526409704194846324032694224855118360030221416114674790038177491816521107884883033258251909956957470969416868408098921848742837156043575717478666896820324086524077262634309311321867878727903603556934838606070869463047670183909782651271033182229361925329369613388750985500150460101288809205806999939032139211701007131035441949934400744246335974231956159882640907507802028723208813155482519964536693978484021866419577858207099941289666793638952388875360045714192808536148561401027677185714395469514768578608287096713456629954299177435063393558935306502751227970465106062150522581628518289228725978834102268577040800004256828007798293997764270258258014180559573057041604412569562404604552161777017524158305423472014604529959702330343339338205588973719885458152810476981658486072137222449801046722332965894995136350025356101016217949684624034224485452678718884986271703948304714819827408939158788125209023566477181285481973887532268574757022207693418308832403140334654315167248541459936035483857197098003709012288993384619729406724570402790763028092373932223869464094247807379112840511202376240555033899114516871881146652661416497134907130735440459887031286471739009147490871268082550653617649465353412330327762444558242115623884477341665354461010237544857660424293736968638001967611468992018174183082055501404004716066346429177463807034759992127637212398652900787460977908518267791513075426433972046564215419302899477414447529017856587281378069720709614073656727469354197712022436317913293010140520883821809949089382218861170145060181611240599396742859015209961142744848851547393769859804640191491970713938881626013055599911933829380731921745828475763018399971570460203940354866739755980586785467186386240628433704807373278917661860066418241683869389009602543218124941316819716088207501959869227951743869320255855192059431054020689122837168016254461559516252557599934073828336231695231587607731336288789824613116127259307344949621399367248158643595992697803815516017981896588511108748239415186502052971194448897739507081228754652931407821532468873295859849153422312934626035005125338575023805621667995925753554629321565508233112246765454552677924414930836518972723418903219009847779114095901796442660484834004282313033210860545972540354846940437455236828906285864908797871755012848214285466283005191875241961179108926970238347051738992867387556142644525087473830628605853604539951631287288335475376131074807875862230105274935477701158654991342447489644882599175198549577654942280684054499681590033266260664005214880775784195555955163583717838049525133813425052784179024104965768306340896194889789018726843404135113094605661846643989696185030741094550426225904795897563976698755342958097929840166140112359534044348567037014496117066386529218842856191818580502828916699640308906840150181295656033243813294928055191527692230540881123172971774667389393856968986487201184406174070162591802757446307661714988628501185305777089479860422406811297622583923853139296884589130127335950394661677121397436679000020658586292011766432049779604086450337591746951911757866828077845646753431206796668348115395581798756069334809224323784061183967830945021850563876213993678693646569255128664951758488662464840897543468338870281592181566098522525475600233450275017393251333484379863954645016716740516116901400670463765746388374889792957742961048555560926083981526069596930974272104174399355045679086267851113127936731165614499351383628409235917347314888116443944662232386643499166103375913331105257529626954529628111986810094494974958458596232726819399727171140856714512480017403856138365204041002266461553016059204431415902271698019311685244953923012554632107615083029637648855768691955271019374500185357784879919545380163547995784201220617463817970212857111002169978011101367396703886678492124872404218007572677901256888509176671475217065770183836525218111908633101381701966095672365609132145154387457181455340417627933684030306120129642555664847116989555323445668629884688975683724909856733543621447429268611915120556602139503315978040068722312117054546095387269798570867624150106949316941022760749277327617349605171750855192670453443786558538130634114998145832641593142079182794791299934159172565092353862113896789472233601517990197022054003608435895579427645527735460736546705192948597902363031011527877771270979519403458162925533214879734600502089639137630925345138099131673388715726341469997881255853114114538053139605076661897373685581004100954475627526694218372197170702530323641586144731265869535953771785233281339657477775730298229857487188799452663438260987096787813194880469208783529863563760393785627469811031021834756015350489366692673033280427820254696649818192398776095282536854036535031280290759972580325056546745119742384015365982609050732978895590749039489817923627856140258796469359895416731375320196553561544878067137880597679407327283831409133538660213402389379946983312776327055279578886176048765597502953394915840422904835515118205065147447553837338787161209220428023363769650741097586425383453437919407426066845253503090322302106535044218370748629570602115506692310931416963760782484305675257638741269788552808052714812857434731996348784791977501924881469982284470610711648765764803889557890473185311259397742335833535210236763561125905969442134339937672502041967509889494134778209663521645783345833988977905534020581235060731962216460313573798097934729175989620498287569309693463157743010097312319192691727971929382371785163501836281219012589729647199048724959223636652481132524060851481164911714413878727550007479398414938553946242570672228873412993711781747731656468808885217171254755654880118439006103228140969600099856692361584168384557073691858618950624056248305420858512687832788220954261772374803177121795939649397075364630005454075805963270593662253183307163245970898144261981061597948514219346481685539969069795564304879825453912809702319260163056334882456675540027244489068819835508264184486404396462592025718476078705472009675085472281619575583994966070099956599247321690106011353084781941286088937838838240649206151035606720504561618529983671565912857383614385895979100554099979985475426701774937389770886589695051503083176028935711413019595182431966864200589702967867214345403078754852306696248206999674665345546844400918084757033125738599599459007225836905076247063828065348802852447904367952783279501352785143498631033934691919757578706620131947902838465908278570369194925367235310315766607981172302888273283342325192789007094925284499785047464945984315228242137756165070910646908329225550923807180749665322834146635052273242516233230726178003755372593320454560057097415520193969252009850334405200871188924497308120326116698506187656704053192578953131423758273709026690910012983085330345414132901613961824097611286539298993497350899437846577255556081664649213910711219580746082662201586665000602903856597584531376013356985202125803326798220436546845679376898217997918392332275990458712516160994072379920424768445336300094081510419201346489646780774878135812097405997346082180817366161571686966238684377746743698765020227632411608859854267014989671203836049842388345920257442542325787138915892549687016947450076264188606335897796902392802985665881459469341271160145198052729299459918618101125743872603089088802476783650851060225736272204584875080350542871292615798225298061208338212460781649118691917882249104880270955514486500100705636986405799305510594942318953738468499078627099692120942018314515828970233301052873739451486451955023267662953776537488200363005083360959857407542595001576387287549027521341234345138610946737295223108355462783901415792488029730293862455014415049034621654337929276231394969890906076432377260345760640143541467466393280570040907944476550914813702403809836608516065329607715478753031285059814302782571384792340013916977894540879951721180357143268476729614818650041050225222059353305936620371384570864834589847013528433220864298103323563814205020367673205261933952745742342925435207854651838388373636816408083387263599360168216421335043648355965811925714937649565399148641205355875973831059445865361680642385660888663521079095922372972923410843266471991854198073114001432847832143294038193109762770808142437524518687658698859380394198392444933000768247332149089964174838741061346403722717610951450932278963067078013696427749723755452885590927033851219752616715738146845458348326482587251107039510995734731927725472890523079863162186306709676244046030202388751247575329586506053730441637934635204187008530926184728521851112087410134673289418449992478929316683922407356001767582314622920509888762063213255764458535714569784052346538194835984281915078330568611774984626359836235251818338841809963140046945300924123507871492745745721008280115311999015856821280278998931373344159797622287226300895821603899316340055785006696368897968875073046996903523212286395874641896463185549639543265967256881385524096559560102120168496322915646013286600716363677197086464558953000508276077112913841500570088668533063749365825642436073248313475737190141761516261085452174933763813378858722028797218937722715441974474790958034839649677634718831688999553987343342434764154594234931236883782070089370353730361571462389343595554436256875908119631123964624662998769119871958262768639913166092376299242374876097091259418058520807272350562056427086253489949087970451236182692663839354905566201409289225859258860199933246707402923870182067658376820927887596296794319149879248467406060492437861547855487115840656447061118368406934048554553148065010280837709073057202372371898299334209293123964974554279025286012766352014412963446382783003323081536104520464819971433296876917605423356810206034140557876901895173638600735839806949471621158273014794315084807942353220505924430927525997493465852499952307839248228441562015811820416759644729611083156001761238486342892030385905613071898386141484673256044860810501371969955691264999204723302426590032958693921253083926479930758797710581551613627451474352396251262935172256174223444698909654927443088212127798842644774937106928876297217835910060322661137448097100254991278148867099773364648471564349417526795593553714753733297895820715882773490900209506141631395098522567985785832489529871703273862433530668063816775602390797051110836789435244088917049579178788969284959168760419534057867420767440583205420070154406485504187261543028048824676607937024506387207402535646252205575513599725947448445480919506874811553420864000618188640423368040936391522035418269647349805067232691457328090937698228315005280004282605420524839909779313462427297789405692949340157110540085065642198089739849356430975299561157325785968310207406907300817427565923748327150247130554770609758960150492360239224616807474907824890927447908729392295958875260019450386327871089315884010227057356748887130148928867245292176961401476952839707074877536795675980683653775258151339352817102118352698330331582745827348107267924158457418455933469841889061888028123868473274968052594017696082577673679408595767998785824506519250583077832793364954747240587223534962880462248932585954888526191508222581048192552121857955634766565520256313302004678995999737760508679917251567705785879897921805193919714269453048971391529612307248525470515568491462548139872591829206734481396457342601787077641372609862359448406322599178278503836119438882601484335526603148579218105133704915882117675869845654601736273223846460129314419423397788736073900429329669747921082075636852707828459322751888101553931145153787911875253938082422203867192776541292844324521008925451564932647843901233631686824433431945722003410529366067857222933803195347227634185829578672686927772807053451045750733437736990573498490088572496764922178448423870137226406612766281657602059270108067631113806965555395070713090005236953030665132522736583530641441076666158530080851662590568502194325998663756529863523199945153067521249067476182041517363819079289941459084979706765378573219453865645759860694176475268097021761282798350633676296832054584006533924265149391923404949732978543376909980043877375797780895232417056306996346549551158271281946047887504547034684753371891223706517551349402658159628632635855187978538036687799821171826025701495857196108946291635329427988734799344967760783268448052744831742043610835344160896961921961758296001288131567641623553810915165415097392231873303836874485546999844636526509245688051383169650431185471093675229380803410342887132204597640639122411041523222537216764059233988384654634110090110934966181895626616978582420534977901295354366517767280689899699917813917655921250007725001083609757647801783207724946860879716385030016667767540533609153171366045686626500989096534663372319905221167579565274523578290119648080598873743407455574782721290619718123230624759277415059325419101689763918318045461844474662993781146655748528958054118476526843917628461209681393820264141676783792278202249392146688547188613109188603969174982020195381964815296916610848492687447484176514879750626060464870208082792937358011717430485579687498800581629795339410953942471659121582218500331189849813157138088341107936236394720035208153311007126479953805799374311972740809493800505404217950766228829830239288735066549156025456214832075827095744752826129749852853336962516743217205408286359843795401308637895069065733240760200788137936062377671660498147773864539966953724415992417035179951260077137238070084222755786922750416315827894503395278975339945814950644876117452353605864005263032530941397231656026472527130729600074368174492577710228027097520116115381671071274052977578667893819319077898132451537398290744830249268074541651546551223962603925786568929944878712782810417818945029660937276777873557529229758970258695800820971502015073470179612183539281074939955134502392974741602132804697467897327920009259565020376873331413514029682683597048138970075914937852756921727217672311550590287295944682881230847301673744394487205987120853344255731115167175114288464689842057849302153576955476081333079699536161050553831014712518450297725036209360024783770562535544058230093979775734130205246540063754615516024737792415955491671498184343569668607071708858109519133664652651522296817435863015974577210629346170962071213555338201269192677761480796769765205376595722380203077701343292649441971282041217315802270141807628040324212295039034124293019248693985135273281416538658865979580872341180945367216373745029524439710464638118595843354161703460117795507944790431854480488129087300700517878442342802318212405132612127991917410372578915961103922120120971477600590482932929791568956360529966344506745592401552938350277461039220271378172240505887288872531646020904507666865673689466854375406045422361807354875736478916814324076773765016039297417459509965958648133253939503143894286984360525573618031416388753762028347648315943155759837942868918274430608346017504239549208188289027458981536669947914546124118339488657442094924465688255458365758865816632078481561236246078762525587222134030677940341756311838302483932412584247681377553896942633020214849006284164746248963112920358223585326609393040426259730682116315633386684218156442618155298383321876389169786742097978204121489848840923319856550140679988627016468268935382894376324055608953841812792317825025903395870985263151300619079320470736627908095643271488591167798848843536737045040524737251586681628569030600743337978812901509124456794905441723028090196252806058908087946247773300905698575404999077308407338046823271271236391717464770412163883071025681143527274122348298493286274021680608868957315296233516824458610086598463874646239262207440255980028854746815403653812871285240642869309184071950911507848051732101941294393182505689930414758110470124001236144661100125741996325245197466057256376293534783423488200928107957964865428289692631313239506548701663731573800135321697830827434326556151056920630928915968994254874600994335455916369589413990487034569575786336519078651035196231335462580377846564269476336279780454898730014113118360919889925766737686483530955916496742285997389189228262405646444550150581732643190663749816399455495337708588905308124459609385707761127388021814334495088142879481939560065865060586970633444074391279807284032188050958143072359138912883779264169317971751591316022245064294610899934814366585729242328012736335566252312397762908518011817980287942882005259395429317667273475902069772298346905395702197976091524226858089217578544343974762519271444920626898876631217899403343165250349175677602050247472424159760798813522716173227220527407656544401005672898463414697770666094478308487124612125571142520963492119515701617547116434255180060527170557306554057867477682975367617324853530283193218517873426937983323691821512677725670430718085400241477993634902754354276498433066966788106852851410196469055940466945399233608873504352093419310408247323461598145811509472508845347390729021372601660538282326337342017212303200364835330165907082495147261002855418722075351462838798170792472755426165949855076303540913574631627632864583095135467626529659985089826975734885147417918529773589542756272014138995310362129394271571348058001166818938769271532045417566574540032865971778660761533807037305041097099530820912601119570740617348633080384482949049048750874111895292708462403372331274609611599695853155598160479640631285122769321462308397529532043658794791372266662577032778527767900105133448955916051189588130597281219104765728934096101442377783856858186165594280888014536542840520763675152256156203957192679369796524141318897408438639676124005999500060725008440809810867280864827660055690909598867881113945922312802310083931637390027751041345196431022561010223063940205576950002428716133249213353843615626254410037602028535540723171813215918987202741519154212329492032108884172963796009767436993139419772217039990928706098331981402551643695260372238365315282511001122418548042357386191648270635525027678471453721031337874764029655131999099423882672456338934320497653830549358084983091235028257413810329096944565101246443213896155436973185768046281862251450324457068857219142870797039049847412771305773998919492914809813501921249360251169231237010616282836229300840105229679603677841416963803074273549646231190183227739033703523373824831024622963723584816721507551547343277544776596806928018308777710330808302131963140012708452246990259859159327103483532330217437899405998568460922217688987252843360085169237575182325168904714899171967147905754699383326568096704232591866986415771775198646405617300078084389767586611807482982920344285824083952768828320384615714710270818820299485805602432062531848926804617316921950493276368988774884952582962522436786077646001915454961197460768169971327211151129967226320269458623812540576419479998113654405878464785100358743681023968008163741036983207825272936387037313850515116322320572161093431718231759266061374551169440171914054197086363988796760104652911224133945323256638803684192309133062185446551692647761667326719903500032625211814658118899909236740113597289650467488123469628268772862858733324883186358828437345996698559176864256872646462418542855244690837055061887092460207591628668628156902151932151259669260665484909897043400881038113371517890830491442207588281764018558410331778608279419850465632675746952508688786916398592807133518582131549046614463967574919093537008107918316951195098663042511480366030608833524825403230166877054586924408349682042042280542111749903082737922093495045523798437668041355507596335988286396523511198122717704235519936859955121360997537684059428617045099730364803493331682612162490136686566616647481108500695471416839351348989090397693604952362330367588053108052720544418145337782416146890391839770577735861926315804629529595655891495234229546924867153740377117015220348612867403106685504485720964032865877026841971554486706749396237399338245980047131223407865051879612574122564010097312081785065696035875531954736958011914235489966283329088908758391951759054340026516788549101601007650486646241444426812061788706231715335506573038358851407971822006158331880164648846919990712810558522579213381370939937735969901936414943260857271913780488233386142912176667792241284273103591435264193374899394597681937724346166239996343036446482148564704401152740975359886545556158702244885730677086084152240230975257324502537452042914360943663893257804189848705730086887412243733983839958017557243697473732233381727606541233267723361242366658440737262047123866015190576387510491629629167756467602264032910022616634311000612346829798677442228581356505089533562438835678642155728178187834604734437788034353981325391836518592049741850907946203785421668792840738331305524346185746680203778172122084083614024066422588246155812011645092671650029187066862764494759168567148734033086556784714092188765870033568446669809868082426499581727814281443506038830950660181583626492589609825195096692817702001881423342129012739061511617727127603042125926720278719015027450639104252715466107869808581628614412316965350897355902603951946571548646073141865451815278844824632901246498923723129174765748119271625002119451812884763970131915177156086421767761423255790719415376458470629615424872172569663102354832653185659216130354899465816236947743658458565948586518385577894684806920308319568538212915933957693582845044961498962391759323602485224791607520806965527875208714049862380422225514811572160395073767757237980025560892303949510478634804483092057714059467907488216745782356798762153743722429763440107480860467944995563019418666085734651158050513446120547814676859976092897275274739812180112204758867730465544979078693814502517518917394873214020816861206755564935721296650142494783760091967162358249529138180318464445832724658594471626491646073967010333496286412720132929188906108757564043780002060624795170891535921359886055914431673751342602600008345538567788886248896867098492520731335218351892038287775123146092488780494654669237249595829632238414938238475087387067069887249037462049757708194120566393765278764092538086479296459756325418766750051886312421457258156043723214933971412727118648679897494138646416384791496276119305164907883462945033734925140435279944275683864117866638726287078044559548647125997817076565465912667209100600051123825921851480676819972931833137776198908652943637620787701269849491734111283199015200688633461717304483679136454911599505227077802372758238313076767807500079537775330844612905571191211952733394185087969778093018350003252179732973184951922851992393809295675473927140953346216911436950676215289753733488434650230912890155871148918933597953413961998878050168894298704736908035724359544463854828858189041604918930011455307312991560775007895179194953289375127752076717242384948867356999448582974857322162094603483151738450108879416174665089384813058663259389502646121506579107209344572495117083557627845333962869589142116685395493993702286451807922465183334481129425334010267472959785093437495560146573814731584647426534647560946391147096649514324741760783730439863578479458126918346270176629177088817697634845028133462226347576809026566989696545987785881955794217159818158424547159983661046597930858091431255747959704529282473420495465523703561011859219881608208230378133774246783965925633435922465020609196727877874966947940634305975686831887395189707709954548859175630454577546608872324550555144632868512885083597770755125792626722293674061377408732014145559087424947288313414055916097505480581456036399955428725351824006415163510378551899650175188342446321199001434167679247534080214694121147781660731096109697304840414328746857671952167568609624069012729837980786582964674519723220684574173186635089531960942965424548754959526933511594989151097859077698352453726516964783620441558397719553526120682752758398005332907999039683581672883769004835701046537340917435760541936948401948438904984026937699944545243338197426566371460160250858649577611065170673005853781335412388170571897339352872374990910218343865969039834060734281407707044775424341008901200802183442646071179493318990562854439782118093851215656594414985883635215542525154944988838887646378587361933379527573804954695837026293482994671616911771412089577366914900768376583688829595763697488677265129193300128930222521045352216066049761900206323702203974689321428914658651455915698404658753611200120622466368938673050662277335488788258918931318352696813735370461360816026720381755623865710978886613976362637312446204238712121397176050402368777820377001205770099358789513900657031425355077075164170859645332020942508611224107688149469237631449537166944355174623779292362534230340497410167899998900819998906739928444333520563369240660370159868018993056177953336368339257684426749774267677600352333074195335697224624095661693832924203993485743873109566977158692643131965434836330763673881271147231022562809318441133960553610659325974095696074491870092635756016205131250289538033982079956411689239289411251347968286339844194540248118187924324720305133580198055005053300112546065748385893529877265384470166105743041749852004925600655565181687719822458974632989309467933088060258668079989354682639982552446563238613280663921191889768045529132775358818699428233536346764872974971815079155699823636535362783469212593233087894521783193807264869869860411675117659646053183116938881415255491975699934631760813604899418620322546794672269747922806690973733570914746269836610707009018545871454295924724090201346114240527135072729176334368979415474308893848341337088429445218238472506118596503132273279402939650859821311678370452977419410713728963909921544192525726806770811769795617426696607116219298453267335754899656896703847329240487688844312785038151439997373822042427473741912724478381045806004253572621419163809370035531666040291818868993307404974496344135698952775337470315483557669129804967424158972086156023107905121529594669853157605970185925013003369485428613774647808858525210833166893186753934059329529748893275528303834166217865830088437432823442106571195396557875759465988015967241287740200105369119375629460640332008718249819600451804564175183640826538739495301471777075662987863117690655940108028461692010819117824278051408713467828030130958729374818534217807642643734205116988058613619087777818887017378563125525515481373598084871426535849184264291022636730553075823596962661471943017055454557693752212441699464335978920410025021716018342330062209280096687681206999305496897736869939344079805842671656530677694288627105816311665488708658685892166932169095369386851982615179263208369390390406770197134673967854448495959071449928948431230630084999017427792126064622383046191342425958939322599539006533063226200149525804574072904348382098272553044412485847225944195006011427028829309702439370019936545647661219709560136606980609478678758179602802986185367758786169746790677775195680821207731031639598050951564637958507695780180782145288752476613146014844285005301181435857492211874246395479904237709654017289415416356037522995760122122510753330480815212996239764743259642387494529771375239396732461686171934986528216276390843309128881630879807543326980279560136921931968511700363673648976882359120716874502308013357911738676812734585121176423726065361526225794193429805396758660354258826550129451230597321986576536954565084548540882181967570823653682442628530317005663460487715690500188050247653524929789484069840188783764984622413872907907951352664712324387034212898163159644199462641707770997170986306380363552578357557749598823585519562322264546952365264364718745909284222689501597569592179489145018585056322269117956039559637224275754704959944991139360037261520845300883426617999006197271367463019485297138016159852499850759752505951351619141895238374776755052131455571069581533911364316837097138318173955683411105284330056504647315099711543679758071288050595362743403130323041991573752383093276795439430188984649455980001398510124913463644932800535594816125902973501408410131609502725874023446620087023632032652279262005977143448483052727858919937496141225530441185611129006053545748223543235244588256582300977496676473052552907639874956927471700817316977107312702136760503420022782138739897640851503348702284141412832516729026182371912055477279151935932464630216402523384092366861545728166944227646873374377692667564660179786147054852432521670165736063429042768591010023270665242833225878820549464995883553337875458554938055050669368872829256342976988248717006912926578676672579074686012249697748636214875484954463218333421839004719327831042046210719933819489353004648221652977044191326974885924596618700986235867787988969498884075820243629160349147082153570026676734761977195846310948587815208866104602210487647793194281993711248089425435289955883571514790457048655964257326986842120210836702701962029465378745670541924040189245829123865125742679982494597654069501239806495467538551201426109756409532677035517200698192505531973314121641333460062947679118762595640120142500074337213651656012441936935138110622355484557941595123979454099511849180719102524474792317508513057243814952559847130400712072806867367250382373358010184074296514139640585774618898912207390541486341899259218427132480157443318020699268370358139645505132067012802297767146562238414943041800258744914693833804419334336062978873217786628972291309147840806408748205991839069817330135420369935051529614181056397889949849003344469979405040654933271482620912254986606230249607208089305398434893050596162070177901411976008250993739129102932038268702949011652651730992840501895250009108407456313199258984759774221474963006328947076754304441776292868052053878125786292379172265709262069106348199849657098782685781545948648356173526252847839237834513879010638891067623177454985967788983864517524624470085408283830733695261964164710034391102846548910443238456853810835590677599401002333160351679476166149028297451495498722954325513686897452435323333698082753450888509224932347553100520719676591845552516070217854994919579736747050260393435052439487590365950643059284971717332745142807971113869428853385925114106150342732337535282897428948683906734429294790053749135964678787902020449696396458691028831084906831057565694192410969388886843400959224827950813398905795576243961793985490225398902230094409332058676675973314786898070243833152541856104219306411288750018547315351565147018314198418043423969237231171378779070274417256634828272120781816317509194029718868597358738721678456850531939487534991301160113348390396198501367586150307778806867157676389267068338370105648894786778617194089103536817083621293482854717901046644148220675969659687499703920666167214406143204395470805096310000182816442946362751212026229573613703938205268203890173987808254373083240428642326936050286161458004925568670514510383031671732325968246656318745306399888921048758322844761685292030418129333408152453394884295319552427462472689995892143938672080140616332657906499149054721990049433177030423899124950536906334447448673703092146307492339116622244604482171377292824070692623951853343941296005211126159667851244961797645528291918106340329844287223219043483175100285014128788028364169038990234254996301971397276931639393423501550210206235685802387903112043044002870256264240646036547515067834684928337078451841817545534244364337514622457162916222377513955362724184790388832934081504690978034818384749875217281044908206927614899106030397292032412002045343547708068449263477551323472871500702137313706430745071615580533391561264014300212177971907862882960230956240397439292368321876738814672216873748596772830899664727162141306961116534736758412719087589843005724178029948143144502012957630241357404795210509650006296385098500979955803182092101519627616123247358247786963678385436761943358956562071557227646641029718386946698462584334180318329244468975461939554937289431317603521011372193350534279644693879981208921873347120546232685403032944695130645888907507366952474496119020722354262367818928841268839556142136339687982259576558522003405807314573683266265954016810129053302925956318869734763877530510966774829828876693871209872130212105991353570586952111340911182807835628552119984347398033643887352706645804891395242866684406477186004048317070526610755841867522266112729165351120170964405904419821251236747561373342429275589162010230300708593421061959029096767782131495267143201646668006685182278522306627208153081748391595466358956482582184598423865334868582718974205867316178364095901073788880101664176660546114567601219525768337952034560110170568126746754664553331775868121697418600650284313582928621311402550574481008294738917504607042886302631706550352283904182140898362290086172843860672666202528642998057058649573331630141871167419571978105592888927186197780644491810872222638804918854359613512615193270028749379354817423124570194787570254395821045499183716392863588917243604429337684874933701240638068440735755449787407492655635908396139325150887462352137204435767899620237853981551654029987306198136846066821768885887260442236963513144194576004477767424991327005894393772749111143801436057289092810631729983681553687627339386798079722770555947620775959446414476369849548627102619376577919677628733011017797476417073315890074447597618476614069185304623555059318661552117012611942366571881779127071771605718801845697776982456443275256943510454973116184076297526948471618368525387808010398152374171296938187309315845167366820539128113388317820631392845828858277426955670658145539620570373222628850234960761802417952364627108181256922530667787179459931487609499295141464265602585237468884185247150953896286873707577331111714179860211406807735067615341000974261272641752023098386362939690867918647776184089760078614451220701987023572294687224962453334962452965839818377418687314551531074800547218470820481723055855717473772177997770998790573236002472041641514937800692662465526288968753756534352165736702642595756572217456238225326286072806446570173310326177241168214181494305672932238157510584326833131555871854292074636057457935843499958359721354235407937435635380823047917184608386744836708521512455749316783532880686520578101427702761462000823465633240342871049908710996029571839115383667996569711841641404750273463016406354507831031132311051573008643072657013532343786195251586952912552538442405335336326690086738034277952493897835314642298033580000921600780015038615462666886206566234930517641790208877387066863849063282271011986386469951212977412669012852337842616107293431274909485620709955438996254561566168880982555084614267462626773327513866074299123144512676835163249105238325667544068484097035306739925211492765042789663106866473402884868074378812708145625954439724655104997216039745880643680948474963192216943777722316061668264712551297817312116048337629987045917672773713482204684560504604400893268286577219839118341271951887399641104391410855668977535817567508121934772405371973793391604935791202896404442456568118825106524111848974062377394915471630860381189365065954915252687721757062168875702815089847189696779487996556044803061597786465298641946270042171491428929932868443489816258089877633287710686255071980884965926995833488202162029256627012005615596152030266590260642634612185679900749433202878072743328158930460559497245020677165940389899431457969486742004017206538072057998129296293271950000903093312014054422702312674741742858597496418376509471664068494615275498633318012242377690008233407580521566657391717175741617980348544620723143945830040284064998532117426417018604431700149445514788005743789844456818434605039396497104668183187363932606823920871659291201962370477251956140356180698366464365918286813751909569120668433756419625453907698699253110655147819573471085495398135513752310049843063524959785376725410010481677119926702901450663245549074648187128124647955671785119424937504315897906809241592092354285097411424800866234337115618365950332409319613953025805528204776136914769033897039648930583861013620985622125561489080126540584986308182411613465386377740960162349181268116741098727466415143039192572241558843278617711243070047589865203665749575189462910913863488223558677169817418743146084558530104021582469965107511534459547692390421678621774585325899608775058242307197908047597545515510502707399352568114396009754664035355712751965925759473256997258348943956587892952633003877647422443666475010335513164502239748839043676815536481158559625800854251642712165237002492600353907399344043896004224511087835206660275943150185099616443354649563107600240463195402348688055558391605324041130335316187496320727123418052428558721016270919155936149063357651875789074901101276891779556855939451531486059756368263099331132778998978081529984977913620048606761931480121856890867618178660103703655703981335893465685095010798514057310518502782028821085092583576075505204904016611421913742151816568748205760224068633437314028274926207015381216900763773696626330397998750535679925215737140949240664210410316359116492326017180383162214586695884247689353797726348842783885236240355987153858857045965105035035187903065147686052554840217145286709852270190923439999373572484643145747818148925256754301205688012591342438300280290793706073392656747772910022802553600889754731465330003034780839358029789318253866181029438289329210585823348079473301275761818509776211422391631866026988308054447636697935694576353319339937751879826656152629218117065795715501024887358200964911555380587385920294200559278139270812460325722017468932901809783860070237237222318987881488708572661405113239098491308746900262467532250956390277162749838749737525264051192230505361905403229504754612443474992092930357243525841727918308952886420369746416183677866913963256130564746858861533381379126113802058534170663324962600071142487265481698361993822586323261722028312444725224160836422067511600365981609764831428098978419926297644113186811900516707202535836087371419909254952948453166512821443355018597366397447357243735634603861446369422014396226445964563413106847504874900958610628078695857084557173281280595685570490922038703060432747737550638901104590818349194478916366925193554749554739488585864645879983839598035830114641762855729104989375632852838921482342838426406318145716571915494165013244254575517041053831359460268461946650752516744911534062509448382934097249384832876785264551980782161318707489533552965392967055418127345206819202613035461914019353437325686926097305600094843094436325253887132935995573009938576877945541571268785060810764405996128879081123775750442326893477818227021818434469251173547073459828783464873645669547080288386273788058524211674268736419632169241027519996753442924086653131382508935936245688709293224673551137520819554628283172225791960683696804265084741149841049190071771719735019503261504875216067953353820197203086508094094234450544808428413653678308650827727435484231800475957105412682372488245080357622274124062819253442217797392066813907961083832963824086272801114828331795323049965782673724323626820907286112258171882062212940154260897992435570815142153909572293231035506830434408035711146723834505826812760745551931797603963119635331886077009909761280411182743493103630017708878552416451505835048838534466465258039692369643821534718908034840268352678441051792143070176217894244364124825852425058252401469832110881008285931934035428181390098301204948964010722900932628924469242498752035996747149038446505593422856438414958676476283016237627048515902713091528644832210346761864705119429882146002038120522104293411509212516026145435098063615030230962770134904094997715148132792622952231123716504383924524551115806390151145405871650589711367206418098036925931716436034519664548458801051581384342219165577816270292158591210753604419693074652647121657717798745761201725861448885634704557216203981876400721135072355822408892331784138452387466617905601188759881749756099970350619025519020725169235911181390479987309179692112978949774797606427965854742936905224996634873936553439545585268603789298480406352009054941498360813655067163013269015489309898648864170895150722237891309804798160320274932583215842274406201838366469362328949868673282620857688443674566794230969405791403703204404753976346523654319213713172019629072817474888400422051371441551905866439161840205329546469872267199118636866695986229316937858666996294189179719048444025951217882697531320700770661654106590110331291718940106447108751831738711346303608036124166222374231680403668176453481214783763400786084234724020221535072267186209328997702344965552458391841411241903976563772954014032699338112365930404633572430753403477167873816401745968441173752667038176067252507251178067977500269259176165461360052688070104551661044786473800150581291006946628451605407442569353453078938749064379167293496632242475860606356711354045847748229240020016307239710408799697594282742371101365775043336005003173027509054946886324470121451227345401873856112586567403413790898853953653071697974336870395393462186520802180406350468184757619506292508768589164718288823191033718277288412238574683702095887018448963511302021614824518595167296235943431136663496167108419160089267859293465650152393423008263437700239787851547810610260657043317457955027542246042653275867386482020374228393973713603266442136916035575650529597591913205427247955515699726940434485264058736531168507360106353200944699281793696610837384472570549034240343443119998495934333187651753743373398692059157883622331291622344526460652892744071002724669776718614829336042255907343099571573456098432567489367891284488354728203898902842132239510383605504146023355018265821079671732656147173327286757611881582838860678130311582064667293696682514046330399215854049754876558728756139682942382420353517959895099984235533068349276310013185242304755919195326735771539509629728277052983667250396018611794336711319159916497941716292945950256418766817244214773555351492808938964642641413395752997723329812455150426877533505956124769444529637832230846521744946028345165121319908605177903935738301890996133846778046244270205204215474452253492640668550149669444349159188177311192106865218952103572747013587705607631856013437409827482724873760582670636197074069985979396440533228799788485230597548227814078185687752543929140689562376442963905646719174891448663653517290084008248540389774338703369478395436170884522993464329978352488547133571194983717179461749614335802082978635380993683856808041255320083346597349616120176560349648883209624439239118074621173470649053363693081581152966591969399893575103611977875943597806260658855789074923918898717318793750573935230431035613864859730050746522391711217877552991372089535222354108042526592461507262680112785557035015750164966605955722563376887866602495093484776243116038884809222380840334756730695871216622115929640707731833614619642576698881943052321402106880218763534009437136168592434703751885212134105682846214602457816478153689639510382401252721275542250885620765077069565661258928566060206913873454979939052412745524018501497477814310817086734381636649724786821434363854323218967642232031123353450640733411258556547786159867495292709230695467996343117397864197547913193769475408005550131968242209639843923016898553491797657245473259024669499003674143694165280942643422694407334487673348444809140472883758197272351221542349406850926556811286404022247217080720966965073500758370597579520158840483907821196685551893806726677941320348170686808972942653285981507778764643934226710555348268651571568967084469760832032852239398816688214948078606346256324683319908932489223464764468010817423746281851705031566402302270790850465289215322069729685181808023548209415502548817235923446737334359047526259337675490286951696468488380941886549628120831924800356667776329906422679806158833250852476140533748556149162349853533807039291533566972234326949968537660916747198761662446126022478939259815672246975610855797053359785531966307447053922705100851928164712439149648085418006440234771002764817591557814033269478493351993990686438640093676608872148216924973285083244823661142707606771524212800545371197057241597388828926916857988679025591188276836617426600485603023551464318440424608367377494587883682526792162156960970120149867133826439213531623098724018554096032734187102320553813903469407925881125304211672089343863028593505631792616329658331875351701274610153491532892390225183964260099813076589450011993818283971048061113285481198108728446838052931359565382504148595863162283660874034245159293970508648677160571120617226546948772309227199283079407133995371014061786033903438630876059987501157868570514835038638477996778720378434440819188205333163246294670144687057117317072673230901222807422268044296259104624377953278342897032349005441208570839754553436587834373998941340050488504892756217014548784114881932114133769236166666772536300039383258572169145896945842938717859455327648473008500861450064725559891208381842358704452724012862396563751687983775140999529616357608240689585193127539787954392865086907040228639572720270441533045556405388258830838062430028084711757195718164838732410688745474692917564499310228048174020953418294653176398400167247488007474052427861458309466024739399060792416801767761901968969867207796044578543946219978978883116413114002882044243891388752929948698480274823305375697202644151670533421686122453262323954394632042774360557929622409617546830969229959447755061563334352980848306618019248910270365402276545386668601860411942564622224623765328438170538669587430264997973085172556061763852676205532173340160244755577177270432032580278814684214307590795709768517629893319785463883577280919246999277685919534473016516618859696916004937165348729958092915530888547348399830059802762421445391142793065269035223802621315471172439967773841734205664424225839790259197681399568859244650182783151783589631533283828892587361594008764768301637557883678262467999061467226267500584048066791587417019529229715055590713877405928183080016666223853189554756183758022457768827306453632125714559482229233260470978567282094265652194491424500243106302278096364291532970539579066154603769537482083208567243439206381997035984242888436795598237401865840372907556157511662847837212442556989481346947479644001442503330447863949390313814878707021281620515662212585762327559002182579272427269471467443700262868366398818793034467911104749330685750955787167457034795701869298318287268950185669006168782831963103296134349357830791798109177329367783833005847668317413345975191326104919767189781224435457957428379154013059980902551589514938991103768024559803836940408604729434251485636163072302962943067892797778416034011248250460587395971304299514338966623805201435984745449113309289665754269156562120278127898901072194375285524276776098644060951383564772233938985578962015159252419787302671260580813128635351948648653790088585794323013550701920525318570499357844169846384343622152108065575649118219244364034684105403550405424680677313767578264614117736875624774632016356806507607269009364050524518489646775037538234923589159654971283019505639922846143216256058512608924081357369325887885331216069627820711469822553648235809566677856923030279266156743165161152253627885536519008782602882080142632929672273968070770437170060265493180829765807635112971427303612726238383062621564604663863858632331949082778024549263250874026875622761220610818854992972427890295269089787060508896900269686210529518231516442376290037836124025462724210575488441591603999564697309245246499299819253048312681758944458188607436539153427410140891598401127823688381390123474479821649763607030565406746932768839092339910008006999572753418095314639449193699010223654470818163684420945953063411722825030694083857613906688867346683427302071606072336146321551121373716045052672425859314288267170402466272686959678633152416468358071457033627585388110011804219703814021702838002832395069737600071810519602523237209234261206384993509421611996272661088134644504142030973823207943526652101774628822154296056542136594310894258926654081442142714640106557327516175291935896333781016177176120781483363700587323569162556449828127461766536900755139543428589553763266150887573265637867962170877108360736655816685704719348864762919514201259451999207340870974917545542886352833537230198056320658258928249235467666799447677523760361013427046146435277211432913564818989686193096975131040427944978929715508486852887435812256959146705462465618735113837348530257702233248113235800081501244889206022769016981442470392421875146189773549001184740235192861952813385905804621509614587046337781112890732561641596086641783283261198960451580375278783293494315234177185619813511683458550321641229958999738183997023124683744672505425799783903948129580491952282622758050955737670407620952786262561192002009326802975613878645187734958650661475385457431073796573470903098538511568929253622068584377358870626218586313490496250393127961280623077464183628019756299862140097505340655092511874302561056676186313693539246561428864862393407801163629398350643824136913172431566620653592903413020746596609612703926633092503608268592329904100221421041571350962830351357609272160378592935270268988878108624834023802122087495051737598304104695972673214592313907825837162918370857850795708477003253894557443788930837252593167834332027521217602469992901350416742721013824877941693447078809059253813217808565475341953359646022236281695654882636852516955976379735375587512496529315685456994198481555599166106895034789733635109954872850621599406062086867371708916558323707701149827609737328093849955517817522163350647393311960517662549211208569768793858687929199758058026027770924658777249306712358805652746203172700840753602632320137531330030850241857395507621420849433910751444526197388980423164153076287940382459764164156174020448924225287321143696610070136290326494124390802229919124132887420753452975370016977217499217804794565557539876665814124179859993874266268227097284849420126021414297093698009403346082094081015537959919477327414849320341288624000891800420864712375961548595049344297746124396573460222318278606901628674104093657488941687458223762696233392316295768516426762193369428735319366633165515517685580142995222459341872393965551577325383485284777776157914480524412730906706501320083088486064456905910818224501099636577409545244348676516674103043977839226548761343353359065048603176950859989448909165942826103927870163779520262904939549340992994132397314760585589032050251049037114210449383179767894250981553835665017581217573640337513378196812777177108411224590082939438810952131308999971114177019735677228992606414037858224069536878009545145173019837865850434172125747717511403986014973722175368113707265455542692608268633775518980731850639310159682815402476359972502411108400417904987381965262397722400341637887853340724793994522909776339764482823473657617699261571898699793190927825261866513674291776252331938613398033242162920391565917965636772123180592286010227815125599842278779790849648933769933996358987503433583615940043474956306786110169514234767725325656397521021223537738523784171740395882276006083040508396613897244296406079304276862053317887628692933791897686387182401033230837506246137702201221140932948465155932325538471048719188053949829953359366024505681565082419359136011322243198262126434520899091764583713341262788249588557223675539018622298774053763443197960459941583022272091020935054988803717849173149055053842147484929527721213712592897643599374357039057657641088765632904734210100147257559399155429002123925049432831291663122645643590066041747529725068491411788176353322605280986357529336949351059535159673404541088934133598043378126218952567669210451742764912157170784072696069841822409892056892017522162953824775107320617837693094008070579724191037557560279795167024864665197676122416422842338690550652715155981091441947408263797390496760932862693429351685247106635825393969730074433340513344094707327961375039171185305805642636243078729888667655244081357272742860153042691697949612238973209044426131976665530161366016676783310768900418125704033136340110716870189902879373946217054712836850737981649663244971117690445032044523041939910120555277559408674589210342683962091644800339183676882174222019168920646171027400789149123590716688414013401807819768592583107464481644116047894229537496492385998117413390058915955163126045291997322311074519084136955977273191406350497347627811036832032344276052080608681444111499037126636239202387972695409845515816364883963218648767563210894336672306683016646822916460051530046119245124557913942268063705971567470079512965335345329513945176151884454828692449760742477384612732225672987466790674268665173795021364064877417262872498780267029575662847369447667573285870023569161984598065020707060455809887445302078485884749662975701372033660621409129306776167541291914308924653752507333285063281053564820479004413119668336246649428664971244678394511171619479955331445515339407574940417736931076776855212785598419138262721289351199676835384870025302660932597439214226930464382549932332627724450813405645469658542415453411241564216375114405653084798145114195676255316577415915795622643934618574087855008075979028506114663894132958335511430987998844571705222446648533214902731302108207986490365163854414074882631805533031481502132446080445011134177891223045737173102559809958642130675517132034949255328283978182651247579374251255596976563959216884218027094030242985214023663329286785983223759429775285474426117706691684377633988968769637749538990467021031715770811737092564090358292982570333254673524552231233799796780579333851231624503105880552009351620568180757855179286652901709616481123693052589611764930346335199741260339855799587367848663806903481109150463886879534885301604320770744294701418173142145660441205910992769119198117118962006256914922286665214780481050785045423025317179172914564383917384007882925998376002878602998539306444976477843618040997123489232792109178008924239922771295688925716082230161216644302410859198917454301182157189715038228405401094171918555970315883197518279086213042029227960934621793595016508110581740795540407506841438158598651630400374270916106354947157069290456430838258667342326375286060906608203332951645251495051331508111188167524226915564982178865248585686973805917554006229588289345421880332689427923771854709336193444920948853191039381895588467145578319951106974139417971807574269225857186578480363507017287048328744925378727584544995016856478061709520032858230583162668682232307720134868486570823645729247386013271296397759056388901085830830948525709477232306340538043132525919585878500911596767101907445921557259313937850456060926136363295546919432659409339544360527023477799478488874256519078601042437274786563328884938836247283505288069597798221413602171353042855422070433274517924475485275833138736385032403196312607685285003657516364340187931172056019788271171857428090750657815262799136975468182241858858916387804212568829292361443476095866693059255490752174017950011420317172823600914740148751623796473647224946913786490463881947004906290905944601475317355288739366734696949840131276871132080408926105944122388271599669899615618351874853758723733564426476655384222795900294537094034126384328485903125977031352357264944806955065734431593110059040265788272076929498975648969017341006516462162526759438131894492277413985004562058383793362515158865169592943803377884189714533853485597441464874175937956361085813896672325449246125563978897089497148268812943963281793914616010639132995704292028853458085140022282056767384683949055040555289765348672353001638160541714656423300024671887602312147382573246163943898203844569650264093497065949421980083721425735208722766104112274126352917143814929891175708108206050087697771153737597601116613908813526539553005359062545927118001433687437647788260760057306183684543068777711947899294805902640433794829629145751887658111941809157838713024233465233944994035766174923329144347166065325678742421769320788655066184112343232846824694370372228621478960075287010702838510809249249501270299778268316310065701347956265526917296768300639460357654896682489143305610743926925783739722489003790610259334637725929832281073476060576872554967554131149523432545152885132663314270064617565420587546339083410482494412824865718523051871208996208898554886541291950466120022419585891278862984791107176532843963712554266440026925451297399826868868401798194759108299023621071999960580686476171161305560287320755157721562910814626319655834462917499441879182240323732094908020294630376425480795963262086853439372881791553589107965579234599057827650740687800508031938095190026082914514695776685308312534542224006100784141162050754577667587245185392470566854469762816467656527867817136532332251644173496412961278420815270355178872295842782747239502633291622847670137196207953684141826306286514606837156686413902739533896866441081839006012696365959912174138038357009527604766213987881369828426990375744138993999847817068758065694512456103958084663610998822497305898808671424471593904635654680219579841834270485704037794305404457062557712560238155559341936802628722207870997344277617121765666889435542809499265474964130372445653090884867907317626664517494051794985255113160552977681180063530406282307177980844980461024871530769024099181418107999930023816366858212567475201142051071287028833143763559321281442256614240067378302407747886207042622684335870348282947122570719063244622251812031448089554371140170510714192955002190163339655025516168066345571066077908099808766963795034094307919313471830013122817210994627718363376946089710817965284473389097155123940982780060476763107846493777042028761326591506971305358478605450913518148954726510107111779815587941867284813806525088647577235551847410758381840150269993151206978553700037658016012968700839782824856387897433467242330813843886807596020914898424053550569144874902024382240001799720812803936577501664200690735770385749289945304702865936846252784485407239935902736169871878451493835042674779817756152875754855367689725794015956387516810054417290615286964485981300047319220752026314480214416468599562451710259935990687267909514527906000644404363381411468778594922409982912788537667794364141041425929056608334314676167587562497591290860275892616642066264761157276055010026547689073629881145334714089680101853300141448172716258764656116331617378351073026785582676010967090005887468741096271086731967119527448482254964496436210933728721840681548482511160491870874081120719684170119975231617660773708305946017761555708472748076814318802792594323395128675109604469668964679319279113319863081782220719693569039977259052269096603987158974915413839542083696543730278748795182291210948714158738110251453600069508678577313237398329802549847953763805663249796095501572741322539919446993459676146043984360838317796950253808744377176047757270388097833638349260018770432446075397828760236141886806558370488979537036098914398738908515407945888795909113114254245504902374479392379465933912618910052293437111724905291949993836130233918930462885696340448889360106674417938058360003344156218707452003855140423956438262890174015568333759579138477169169789650632653082477006820200710167196432448821749164001125405070387241266971204931160215464682489200064059665159520406559738142213516448715922135945072823175974714198566025653803738577124018189445610127822613664202778118904549041676008596913509556263553164183060832308861009688409638156917919735110409655689635077046565070011679199700622609206119141137474816047062071184969643010795811284082148991658440728727097638836182196281723029634861552920520848162213957084421117596717702135053138784373793993123571562895422179200231064331701847937337016300871280702506830602387805437735101728790059806600594931902081135447890571427276180393501021923366427151651968026748018605857946193223111969227556299708555937755799118898730868469149988457998824186633082895687459231552684044848940622993480549212604194586033411023412162844295691672242946844730943741857107112896418320810315510554536936690873420628159300317051115686801193215970886026639009162587155037961053603712386132219061228441555154339288186449180419351186200111908871463140797448480563215774614834462126672654314176902098252957169764806046834195354147496221775139090188979444872013804973435666347876714155116247615673015208098846948116814470811109324178432058962725724571105275279963749314901361062405094531250052641890943477436018775201134699222647454250090832262812153661327678607367244146636727013497387981007183609163808693813904590426393171621110045646542210972360966475194069533967323619484180260176728384478396490982598457047427565610443755470690504026422831331142308786089971919423755236094678193225623612602839865147105424898801609826898244744870925718138162961000963622407263100354626337839776108520116398480722418177527595049945575133030869013829087502644198995342801487590047142579889421611545833094203610177656722887423027098878260748730198197789589198416318148149253964707863316710037720156580062163191111749458014720394010001094651595060530795297505477958996136239280133757024119364629654167624789053513222866782262931231818263359539025124406710126924759772306055107974558557275562823375478939092570709852832915178799470019087276759415263886257893731782551261398813462279940604884443624888494349833759088897571765885516760458342345249841130597394082667687086830863806063018639330866222919676981057680467658920435906268659524933085594744273577132373903903012916588386885100267487079280263102068171705947952343639202136672268653669542011955718134655661872605713664650951250376973045618988759874784194839400223417152456293767884314810208988683047874711510765297577844980882561585947398136924196776340035166454474928155267108377223922612400846935559712687565799118440165097399795143409599900710907717164188054044148834095655602247213493578941961567827691294032450961404486675532405808287415368483257411032905154845369392911928819083888962736006726423440430789266144907152865930136654601633783918252515325443164234574765484344497429865280264906047805361796423549314113895184634822599983451748849206622535699243439849666695162082849710482517108774410484551732825737736579604851169636424248920596402288122993616875817537170638785775038268655728021001953728674136667296478471040322927590891629548589481457803539527176254877636255960704941412177289271013005690256727833955331185799878054338369515781035773881659631019998430169293586102175115759764376159801504505466642675909888172337142933885778246862375709583638737862895422029713489694709669834144825719722463159451411973927902558052206975575308834987571923227272459322455597576859762371918238813663196928959142749111884212145445292720815662540211246136778253710385503608708418062295573470941868662654801357440980474734203122744340000707560989059007809284825206567589146179618995678087784080538608588344598148757957254008408303189607466266928588390980662435651316427504130068149750006068102291598630880637472828566644970505076615800581979092490438766733435041463952637426729442913545980537851260730237599228536432980726317330521783176613997240601406982265225382419062427801637237709125070207921790324373148429714887487013528060497338295119097823839360669146582919532701708266578584773953557824058109607650117152848728910317132976178719004462924767690328569854271977889224473469981703856525088040429563281530140295141893803831066447376140024888438010295651926376808443757535606457052695501695399362125221142407585934359263976710246739373020825196327823393487408414802294922114178520520154752573070159785153475129656916377265546303481836123027161154497726391563002162110771575823691923671218590048465291727455839297643483829842587126929240248066832153676784472476718166812421399106384156186767605099207855277643578314909595362981710584902384127876113757095545991074590893756546818710815738416214093722484620751848457078410467280815457328642907691311534902755360225747047922716404260717471530105600721739887020974904970388538825885340748778525450637547410987653204672637999206126009966115084093945133103473035788074245540001466796859065944639266150931903297096832373230885988827420773583781838764715355555909493372290730260483964855769428863021840074415700899804417142438647164554662236398560387976077421263723996269939016557927969077228938577544615309276653523181349180783207593141589772838952841376734880231588255191143209018763496433175183920883756989916881312845530908997935046028220118557332761081071104462206811141305591365385001927445375698281497359239068194091046786130941646881399402012500557360352783282109654350272306584587328853509115901489924136145483280740031203476545418166426790995101545625503754962402202600534523694451027689149290302112342833707754719584346627551598834920563852586401403364194983698222426243776380215381269907653726150838234810453692161686931717359419006233231375130045565366945306436660236757682135276317136863466432750794531755988084984497614599240097035024119865445510548442289036995335828866167075409376136665275388442067381349513606914179578765271910905693990909714693572902470154193838673343151409527919066071345361348587701872617572245079568234114868044292379091409701735844727801083438202696263162383770815243362980017237684387494346659227683014984170045589086806358925762607297026945214627578717433242131351381738613393199627751928745686030524653981890983129095965044508089432745951451857607811709508960382445633215419954002893021079132939520263963883074837147412651086573853778753439364419505845134165928307952439194183700665683302435917450191048167767964452053908472562695569154820781253454437010936227864742238137678994230025014427834275019630023366537056054115509585907932452407975809480566595667242302850362058016390177438615257670263048261933044738429120715075760145099401984107247881785802849981647660356643913995273958331992673019986861928110643742536378330911835735084383027663874865482080686642655991877413079495460230003175067115440150040542856531592523521184640791717956026707494267636558166541819161078329469116452447076497482350192924005372542411839632443822621580566758342379737824128686743455966655171317148338477305043986153854057961922805996905688651328647025246156072912924302619994581287704277927235160760590742071940820363182608812262783451738158923516285864686041135898888090495006155460037988640658401781122897225127735767896871042542278728915915778516194392185371724817016824965807536814099023876596026787989216906987974397914754702801239923757990672512141810083765320254230192562960958465067452445197360215524546571461619403657199330365696889458370166937544934444931167275685416120456079899743784128792109578656923350852565122828342066363345846980896798914533221110191816324852541989271290600223854355737433764082628586102677801125163339320159304545429576420848699621238346471203814344323686821444808134673979636304098301638220799703208150141427211140942995294322844460443307739703657921256734734960788896204848033918812488246681418772175220114000839346573668759170917005086020677287487341310305382358126714326531070732668599081280831510389858378393425048143048569368405073811075428410683438858101036830474727076555110209754595237356444068446036381064339541057048607659868377007290928568773478016080911668321014344118727913210396337084331304995792237881341589612338217851710927612324846749656128714423730883341411464698279426157639096713207680503557160392650989879067073298681688240807414125888544649923567238115911566692020445803910423109853746613180179419440010018773089828671587659370863564772513196479342169515601246819959840365600065663057776718832984834072326922781840354147858307801003179046526098078716810859949338710477214471566879707563689490956221113420350427050187464799513637153934725001671897198723308454327967887180068849110328995941707771810420160823532502559858909779495361902818618657459615190529748775301622418872596111476085711136461488037956793158638372633613552462008232518646206047528428736334218305353284561485351576065662455108150064326967367249166731277584673948685881937909900202312371132943687335542635652134425912655244726684042379336759472632188566625442699054452377821938831729581189441704366197070048145651074933934069137495468611493114901755737059263539754664350850877897990346031822391904600652082731561852382538093372597870501590742411045865390836849345914437435399452724990362978979854790384465019153223906779494263082866595482953067504818455393891846372641399469686285684336501503103141578687900413040552628835663034874767862062570613794790126094577279529459728617536699046895328101639955305073239674557064183034417808475415697483303453801475721595824709955025728698527731392514650600853534154121265920731015499402021702688474422516214317215077424573988364629234490761734711373414205359633594157254656523425157318701228730723146214585499702524152841701964058079623322583650023913765330813534712859207689572105803328357240685433633925269080786131324336588617163852876217354125281148567680488617902189171502583709740964822564259109065367314099051087056871146303473348394181788135414261110855155179887195212503380773596758808709628125706854957877652072148061420398102396087053565190065349656567224902835222943432071555297238395102933066429350453555216611466329309591660609955582532856087746283887527779343753627038472761565834033628173874727449325836529837382268050136222724727350454869105684356155410484738859070720519290929412965641150697108927414641495444544160084222031386960053511477801243408541626550664324347255313013966867310018180220184930002008511347630946050237000665350761397364216217903502262091747028607199363030763387250154342563998057664180625218738704144235287296593434046768637150904533659653210437181732401014177272330645029045253796222875569686389392570448626846383955816477343778077455144092488541875630378278001975230288665507126197945395694273613421335285674320052825661036090566158861459281725205296401906726322064128989989790756142425359996502205775892057549830433943517230008258556072421395758423526338636680487212315492998537792601563017439000013733773499005929381443599245586736812573092288662027531835896761582480393834823682769204923953206426292493083708736074837215009365507868243286496458511123138292144726453945924067510379434200654121173587750761875269015405987265915951183168431062199692713343497467217875873061562832204820166471802513361795001216852647997633384913946712875535045580817916573400792451089076668935403952393518342862968050009033161465009169240451098506893881124436745228847218566015061151312847804714498594253551750942736693753905141695427598466045134923721940576186509166626215208888031133484360449300126347042920589617886730604488530775333297164955156555870581523992618194673740758472235044466817098739602645280126452304394041280569679635288117248824559590003006316155311800391063935286153093042738613321917420342488917992366219903378048596445411766186984366290753173226898499663024813613492803710250530589325922860417987933003726090055379766823284231351403155626037878841861075501710433808245681217220251740343949839935833165497053139529823898680193821363200014641209806384773976578431452796100394326049859217031487616077406203848158493523233936838176623667031509461913879467475545975443286845438180034468023066779987792002946042522312114883577444948227093201266082109602951893220785523198410025095316645865224169380074383635505971658976131900837343185217909484493321099336981181931671857012108851333634873087920402511846045876282116743617193775300172840347517917436557879500392519975711539895578238900813741550542218570005381575858472523936105488889365038764582712786924245179715326075884773088830096952500152621811950719188236485578969965640358337594222061335518978588552191894438932758369017876194597245600275968218599002378496009217178301346650162081071266334103538195590317334769256907954810407101904285987523005322054708518179761186537328776179412889379797167182525410540944496916359229475282809078765500590568823723412194169842015121698163764395328390777485433635470281669147664581784804294283698644229106407564129206087228868671030803285457059968220413146775631653814781848558264994751123153678327245675360918709809453006193287579467661099854115833047605417973633779522940828766583641404607729428056873875767492724362592189555197232744222012007096685127239418111989834380787651867047926559885671669952708225414607486362219419086847841412035872011530807840575045251693118562885024118180082122180724710777909337167833843463933235521925637643676223088624651050675397132992412848689098026311898562661162292556627478782895507403186916221367837058028857388537865284957566619794890582869663788979779213159851003169658009285050133198432249194347488959337978242945437420015754664251907302590631667037531619739196385310000524688301970164237023336405806246154575365588510953153200265792436268168536638015460167474368768559796995841278992107997439248882547282172773366656745773448991639320725468412348723340728540859654620501748260985697680182094395827703161112823934190397947946757431797006741447485840164193828271758225311718133523252976058505493830460082935984274226950476604255540252231852083367629830074551440711509232865304060429059823128016265971667786941668174219304336837490985067763913146973175014099188844831676288176982960492336029964410453236124635576589283376174370479137019944850287879640171371770235046108806300984917487877630752462554436656289158738872841684704717956471859885308148552273217135388251587723843852345220581658903158286921660635667753353037067542998918429896014099028521346461516842849857927091945898629677542463132814109371067204684095888000455501487309690256322518691600912049900792326424662228468754722391742708217381243456004275806853848346809092383270141246905718549357241239505554541093718780245185998178319946697671658248298450298414607007455824096962235833755949160631638478242890361347757461618676024587263682888640623804642949634914980416074922706536211290202966494984453251036204512248479169829599217699762482917708156682440495482543288483921444614287506109110042126030620434091759375535306704272471418597372413540668482842021933085102670651188180011622670398314636958939710016858871420900708710355593376116039891887438709274350759869623656135510876978042017174780822464412182013210608847652995500623565476503480773320404841342597011381309127968087790650108405600015612918389301768994789535137968793336818560743960931952010883870335962732118979393228320909627083861764005748808947982278331561945976171401146142967717159255372002032726484367099235036919949665385286528543428845205305897168250909417120500256902372387080011996161374746190763740531802499409766297988724563819638096108147466676892059724819251368056463260543365436725524673297474853556060595956068116716220237029533783542728501325980693769774680522190951003912472167669315026436796868298719367917026039520259148468543667180910405834756973822247373946809716334945571710624356322240055847731074631032534574855269831598191987800184181182012612041017281309632399877737893212815164530061277518408706076880932643818610220693639818860139692130349298618033799880603531084955047761393854945276502523277727307676790019915571179431014597292823508225130506189995584239916098717690708938052446645734885753165766549937186184946146626692950235169710338993523139074618824089161040359204142044589317537730545558991312081552269057371393893742514587806637196082729037597289335898337413649035009568983482874266733004708500246659931242960706445996339293848752217679702187051687720861412640812768527612657002710781757133449226368920006350600174868562159942796447443302541623443208078815853124610373699831492414376019476123279643061292101430431464412613414506220194054761064970185187070105987533968659521600257643241285877021718231015111053416212062144058010080142014074709649776044032541608985367440360145183604540964897958537293836104254017279244404187745650286857934613258739183875016288001025012970239038661200925475085741125199159808857722827929894151345191970884122190074072514899786170816964309765206503730407989177348231088596128957472263567437405663851302110273256630187390322110830393324200278682505692707676291984131790914454611736546110037120113838407223236723867812528583117320330286756697385319249712974426612663676045945965410650360930613067748628715442574207616489449700893579525902614642649580521600227269039629733371591837424356737734826582798090913514764501227887109499017715593095943249391755336509728711882238728065951888159883939867817985016951927407807113341768237416548106856952541476343151118654877681234195013322003915131176743102700509283221058063383434316685666485481948438455333169764585829667711375364986155557342793765469819744646534674375784531843457146672076971933130780631923080661526151701710243720464942143967741651759900757716284052638909251537821422596316903464393778080281676131744063878458953784834129934000351187140824971045284633351505530346988416757492206406900726246194791214715296421595121811631720721960507873455172670983080399686861424514886590718951979804600716211058213920419291798722591883727337176994619402408614054628794887938940902181467177158376014194301403721682536247962657549195185761570750278336879895819326020570066457107337022772924950511457016037357670930984442908320654628666981363126387832352693129529690746634468257022665511458454099243118573084199996448153435430670365457071297185381334273605241128018256908633045891492896026868514691063300676126038054087948292419807163100985028981589828175227822822204115871288059912565386195681378055175939790406621776777723423356626543539198380631631841329303022902309826155001504978494954652819243139083133009114784394114739056241094462891543696140975326765856200080646350438545659171472770775263953921195578774789047880882943568843006366402365907335431875431232913951366167122561496321522561844430986662635430837931189910017718466796236140272266182881680021609876144752194545284632486239744968169198108774916743583860280681771013242539017600803509603223714541451063770896617525232070367185679074609991801012047011384521910761613714614900882897680714508903029822097006585840655099967802836828938838168162798523389710448826761492874986776542623441380765452707900152928555731549313425087386035911963053846303111109921748160832104097100204554605117430861071190327304621301740484926550363478583798972824551780011742766407682087548405274788556294136946678652299212056478766125090451035886063937032142357855271723136330027054951035435112726165493610117492683322328124026168930745905023848059506256985073526607362246141052079868106114847592398818657753399045163768620373506358859126133624305371614981893217828431350670674213491421110550027423339348012604096765397664900442110717384476259390387954436696420839855432689881813405965621836825278906374586578680343690599930873267326593208553323390539563057162084306134838475565409615661014035529976208848190570131003099007027767246062984681761521809941392140675420712380381717093224995730491368221496746103387805706810163262410550287425574061890710580360206120643031215129763310055245234076116621237858333753599501830062281304654261124178580828009849521904144968736762028121640307771365363181749878120491858411299247368617981519996592933208896369131304939161324140225986035416190002665314880776046786103803433806418739219437668204594434235091760380036843628125855165167241040289843437162316913398101253313486719826525145174937945229664251739632271900038482126573371804597683103678419981286801279511836961223805872699139232834314136427773022103496792649062597679662445247925053645507661576212599221082965174239967942395912607115391437396670503479589020467375719401283516189128857854736216297641121606549306852275792172021718160141338918698853077423690628985820570214384220751255068003256216687638126397780864118726371642367678295905023125848501455282487881835809134544062080481371386361767441792769474857889351782835077933400415962461451701459770625194409955910458658029909517942001160620570751890934382014295627738307734591607164966700160254287921399900561124931641894645338990981308906657426829450647776114778831677967970594885914841484399722629172621130971480773162358841436279544972762491367543176301521970769770013356046905720828532534984298117009039168652737490543885117023653975496561108029997113796829612994702712528734961966213743212679672484272150924675166219611007912336484935012326887038863813555166372479984691018580340507477757207663288801211042595217661595651028234839054362356823333299272059495195572037107382927156868351548488447788422548562536950099981004254686552298380045055236097964100080388801706761492937332131515860870120220455200290739584526004791450883933824625640721417977060283077849549447526838429700880290228106809486229274083340631843396607144283164253727612412749901344558070011586990882219400923578493410258623757316784443532067151833897430831835867752606425462473290868500326124931361610160283227990821676530791745242730323588798901426272457272008768947535053502079698492872945282930605688696581393223751207197458170493592845839555212612571180583296681189162699207245326191827129402409310484935116841915268824481675184588482556210134579879686780832273678526462379696976150264068031397143015465169233559778201293621484913571527910717511035418685693098930834233650140851010350851083849353718218395137020518161468768930096348142012483870531189643135526100195714613122292347583648296937307890560190601695757800186038086568069262677925992612528303042644939034856850654241139052079323522132437202592953733968007847265434094292290722460570435200280426659626746077337948307337033306235374501597362397315719390596532032088971715788577764352559415177299169191633397928862200318819706084154922826820112587424215890969838805212536639406872058287903205405006822620079266800163826968587454475004300711070789473307663419511583997121099708703168709850348482732384749568215409754343061892853515199982027859303319195120336379245580773173617171972801635378258203866009983131936733599823882022769079956397107058317283412117399752151537308195433177814822978741560688811381150083119033209896641994774635345912375730875842534580786423600221382878789552438779095403821806766694999226081120434787353073255429046469817079629290408094010545217500694912696514754408949149649161283447071682249775413967275005542548781541192764226915400826113925869327341752038176117358290157478988212158929927154133519911776232007732153017592883668959763350730732027479044597278332901414528010288463933092733763190563402005065400213823620313316428140703079181670912847336181331893077952003636047285318992100122501422002601978422016379088910421955869703651824288248312334951002388663498313318297752787739401644377848757186958752045515524797535869230915428994614882554584468835671447293469385661445407661574038847778106687233574413519262326926679786863745369505158478001644948191162907672289517631031360166475877106972295550298116778686480654242511277945943300081687655168518685485950915481565329982760016297370198053069466719392167272091675189455825108638215458871666133541959227335613487389257964716385780983132914378340417597322737525150134721499372934332866131586319456703617149045783251857882532129197213946308376793448949361525206506614338852231653557070755586390442529076747652077828287715794067550653839926912466693367595276631633077409450705365254265868723792702108530510336004092018701246243432795852426273077878450111190913697179336404594835509756220172171839053057857421913270965182516243529140233657824534588162513668154918190991359129627504848627933696557423507150725042873118316471117591985833677625801239386404180772305608638039333895252029536343561984779749454858305909339254388197788965323834508510776071058913366977344326748086662837756212754722429979746549249765574842226055925640957301936804038869104849119543534925168076890540433682651213251331008175142982142012828523136277159988845003656158015077348259415635486334587995737235285616673627074161217977626110082821533162937845336489318910975204127884782589134628543495164271405510182033676565857332677868931885656909434679665980646351590249784242083878363256314423171707878177199310467114394373504485858597080485289756335198979612441937983821016409800806728387465315834900345904258303859736758806078110045457089745951487779688382450140788968529984474839451326684382994172598141174856522193250264014814467490252470080714353482721564557459027797999201184086678323069160638052876555926690474628189337150543377168924435912827313849083416307174102670889819849845549709106832861583544570610925436944895888730852767069140708559451168940218868096410183432369021132463610301152498302838410240655683642610382123516298747177128753103045747269531819452066599566812393586612895533402342303000722338524007516585491757453776014868667432315502671094902700751045698003318659481774238488581349285401591832489795646082764618535126756070827575915891639339753931073872398108064812903029536337697553641372738699636459402858611569588229302429156937654875654098119173445421240616829393924432466894549436590554508811381069337101309770998604632687135319848867783021233502091539593621326988224630913432924630814007371807194805378457337871714367756617146839525412819332322780475905617486620564876788401830154712891852709373877935443790364230618907088873070124642571040490208296147275847220306499757394251748584437192407635275943355033328972448329074378761312849256149933350461948975048444359548682444812245639843687358375839701199130866170711806598733297536259502465382007856732909361252047345417569425301329271177772372931328747153226920609010794575051121237601272472845442675638724275540796236563136343713847820381759662540672647888692723015180387248729914137802109156162528718931954696156270511316539704542612640957361861629944171928091201252719372681227778903227839262600616491470954582674041857214652591442398717343452663388492330944620091313222720623933459710800308128878178031612019464984922243988376733865968596139268009074625177353781802989011539677869564485263099906764865060243836945905731720421934684017690002252827254063363736662533788895126668566733217518361232020126419638201587029843928615632011687227126388788812760083291842912596337635302365329922948697231456771829182709166187856883916415436187845089447407098388997262588812166781872857550101728892999720493594432029815187705854816899136010578040683094013522686591152919741461377394058809525881811682305545693547668695373995252031383723579954075584752068042035878791287591732378220303078855517137624942249542838094887453464968800031715051501632975601473994249303412217271502876715010508928997786820217874222899882762312370928354801027192858907121422622946896094927513004455235828149531288425174293466753801807466644455495689596521002786604266912195833129500910930377048950511968991028280950555404474160713747829507800793906059017313382771952004407963196497014048893797589634299069772972365669861173055875313280103924077349356368163432515900032512496743131290427200999503646522985154461500939296187396714696898724383873189897156297380782780234694896225857946835129322061557526193329000659169849706113475090884889954578252636020734658613322700897521374120551539215771563886180572930067351867235432415807856800693752852865301413510301761002228051118734798019094085357543856423158807887068406608362550698325273882279997896981857054779366455266027047469610292705477034361370735782935492166822520313126778955002954086989153826804045245838754340158537163536382150841827860439748900760525307900868194989707534387622921921564791135293351500622550396583557245705330908776135657756366896681279987202598558526066125098976914063630738506873421566660550323687444951637466978617485315239495571617806382227369374913957411862142896082420743417520646868424612399633424536144153588942598837472539616614128866984930363102133852070522064334549998934945963184795855671464358977729266521399338875152424934125632010312970120147217828756202205189302753349007403726845328077605694991434989673220793548408342536647699696655634689944178931667766776191413038144129684817217411946614381208996089645679033212832637515859725968494830648297574455172505875992920451603535903009622862300779917366963368772408977075036988066595141524358268124973355077354503614711186107267692793140210565800683814707511592609804454200528996900981198150408052460183291384016500639442589768524544868881368547128816115843581168907303418131890345784099566795458472843126017755787688745353711813083704323801432472653032713877894701480357336957985934095666625126547749510736698307059795145072021874766720350882240285498097219934410319252835323896560973718972360623990408090398647607531361709599033232604200917792459077115743983641419008347001726039293120409842474347766200618386187315186949828223168587745132465440550641909772308076883914090009166187161592783934211302291310205594300377787912471267999410045463803820694710387006307878109853253757165973364648762907147206450199211941862261583479888429522898013283664490907592931783008799679612631540560238183533646777140818477729187336615110811961881958806803078945272454333738479248546521912728008372153736836188550082803031001811535884710966118712801962429893512423804021854729809457209932150353723590299260549647479853175879235741452217004178465539868413507124443945018866332572637007928146302701131251447190230028677830372653886482360038628707015421387053655491988722883419139704994785214374245735790081996428620781346464277681317743824574148402822808470245842668980470628984673523407577981179415600658735643012259273795545575066743035530141181232235586894132277008528665612146632802560363214527927480282047056293914127565036191514946824983088353955915926556048372785068842519400739131769871442758084239511395341400704300496465930119778673031283610726266702585576185567808397291537106037052096646220382275270735215974176682915395593239289764017490022781961703699740309776465529585737893115149612740293240412751127670101306515612268498422772472057749271197235881771170329960707131752416178521131383795133502017246521029568353181753870241486835364625821541434925123410846011726554456677326152778857982285870661211987744955108253633693477769562247332268129936942353866917957413393744175743842628718531935557427002923479966706268340624970367200004148480144283831757171746919270816324423698017295568249041701920252557772591209502778837555045102784872915141561690845369258086817675479830436307444784553607507395453776191630663110790622198225069893513202985265368773885179762434025077644688830915879703614438840473657545772072002497833265674854863927070066417801696871161927730776689417630235488909545035994638432858912168284127327295877747100916791549125235679936342126432649980049640340394775098527176592088439611126513791132795936361840870741929996978418954011948694048800855035140607568435783918884338222960103250434730627307020498567837322753129217638403698333759678590063221921407646006339793374928033146288117209445689561296913999577535923979768232634905465662401368940473756982270983388882242589882204140813718553890930932148105844252850869760923047152682665988452417796075003609582403841790527262671982144462300192106257119520945898245796456185100863798435258793136684232519711982908068509525510706647985244140188266942248964321059957735284829553250574803839241286903160657131692509857069992811126200039610719720760042638950348919965701426181870575306822597616143571812545661912871980104273440018407356024528225353239662241035024809642598915462303905643292151083209201031798488724038819807566711844591211196547826630012753946646528451917013467661065973485351970759513451525769186723581494925176698528966628760943623916896410864056861358198449122730237837433203477760817128578620237065910285504804280044657782811785529458376442778304785195482966656271773036340394157578508420651152535408016166157980124156545877393400118430456053571798640300164911332783751995609902770701746834819177859020302342209196335352383618239831779834199120810912814155643335607875508078637411335127627681630827012346868867649813123604370444102458747957492018119142076646398057182075786873031928398952755175964707614072348274307575398702252739969336688244061480040874594158666655904889009535332953270980371020784486051721202124397371022111246142716787683706463440736849636098361931518813200153948235695870178286208976654715948077989073581806699911796674764163923833446113754570502776220412011350160306540273862548487343661364576467185974654097585406767668299420251617924993297513140339128614803053617923288520994354693879535930424130762020557678390136501935964212008888879012809382391385685959457338689688966052411644910712760343307194270444315522464576305727929383955645014039065384436022524489835551482417264784180833830381493070688317901728651820244413689589312254319698706570605543437370644465527497651002852332471640073193179402503368447444472532659174197585563938768327369923695080246288312815635521205347804973821117244776143116809579887919590605283465569329307395721038220806190618202242262521962284162052741337417686980477937822384365345159178593147687194510859280330869163525587098164605175856578756708766258722257223099325607291229881912476695183995228854841888804006048413143452706118729593347414972290161633242471978395102535121638660173211688128472450566759928736822811381252697694056915970655285752957829891649942511521475558068602341665886518096779457060169551090095057565751348634792134817878880562006295660040220747416858274903843941120939655673144103972800817334215540415619466168572062720760916470968870065434373759587092717276248550678462644262980103546013688639033899328901650213137887695823702388582603913283068005672770308087961566363858332773300622999103958644696577003501347346671234186803212524337047544944471203905985410966751121490074977190086639163184389004680326529762090415926070170531011187156417447463436924479654050305786032387613010619756621730799538451446868305119836952006045120233152015039413583810509010248103538871593573863484531295557214738196320942053866002956888764606140080774605317125218216217733543068646432571383448587669719684424375575942912918123530791551353336571741232078165835787091078520895191938145384734052301274647145878274515825557512350624078567559642189106214992531818859597768883730651358158943234343602546871407347961707287648954190463826841981403502746326913081794216439916085123818389341082074392402495270993042267451174109178017719552860177930068140894211367804833770004014589977696863560906856830217224518182427037925326505637294243774100350460541446597316042758981638027100323191899353057864463037762274762798839506046170953566847406845457293647730070875338640736142899969354750654040870337135929781387514574133271737959122091733915408283202698956478839729062621729089373515025168464663904239286299577726968215499013340229563638590262211124533942100581499220519924581725291688885691061339005882668499174526790366174286642104419531819411169061479009615717780901199311680927857553478764860707845538403184338266111405077937823574132967894680211402055068254509740450451836360317741118416305398423176681322124531103551836493304028038450216876521342310498195368170942424007950779100377619556069526746715169144614379380542139631952455132818902830491292449674837261976915268692959718873990180414011082485302213926540009209438642934904703653652307070961447921647525961111125105908260966433042495735934111808384882972071721014312662555051686892788622108262693399387432432751241666157675564751289590002265890753463328594213660369160391056201460232553653474528903083332869250725906032059870762058461128420652589284540486017825127651608402071649927891852633102263485214889639120034015809623424367365425590757288601740524755467405554646518848880301080695680362793914643007615767752967364310437623175098824990984224968009076392268440780386218075469463294515078210894563931058711313387655020082898469426445363900745340215678901047157614755955335536734992599409371520647384123880053073150337734842013523773019477646176743633606777573357888496113659263160520826747018784920044541122958735743025980134730352619676373740755835184846537672265939975539181518913001322713721987038448710137880247346633532357004190794039925386990497342519654459634996339704488710045530038752115606113024061009065492949872012371222730516495759682848815803834768803919954310055478076589298641063515613898678495231300783926798680380068798038163912223511986282356895369649278828228327488248499849212715648771732952180279262365240426353089862634602957910120093824011881928957417676521649684875084168609827449600767123275089937354020929104139359670120959283591753449063448407808309193266149400107059584068100931840507718721289094213233531026461163171777555961076920877750096839578406624623963165172621043815627931450210053826471976800066829248592276150904525958432864523492118413273975756572900919961499838117488799033111676278301708159822592001212473786772330847410581015637929157962797892329272952046843949906623242048686328127881572382494967295710229544973787063939922687878885020566123935988416286259753174142376295761251688959069792067696643756462526698675379412652420351132912033924810994563427450544897705258648069114859272686027118660922211267365729052503279080405157040622457186904408132850137396688135574668985977431172486676925133211446475604197863327916448930359727602673094326695470022700164854111148962601127392856519986621225955356558335450743356292513819919431245100411865393950983008899838395459222662464309304783082912962776638648106687740926487984440610563732251590960073563997602007911335443656711483131175361115236036604774546775709033726677819308602562314312579046176131019116114482029253291487190585357366711633964041834543174682021720269300803810973941149561738631476135643190881834235120569128823750983408562735864499796798262673029882951010609097683074316984524872271385158819999669384347558701852415739368338590067297767435224637029633170225510642450933839397034502788418648346131651291104279237642848852222691293977295860636983377363232474008410783976490410403758942592828045198547285890631941860133904067231913516093135711618986087529796356207049895120951736206802435636524682819531380293211861157488438880404758164400343545389476300097376957041445934819848836533465108630177226898779239621234079386930835804735777049247121661477100132134325085119993780766197746240803055517348989312982536365046286531747136741678022478755671718024800497126233782761026039838148207797042754947624573711498396178805788947408864116828920401092115072582796981014646257903037146483023658984676998496907800329691531191920199138932883208416533850118462195877412621838829605010590871238434175466148669808491265111067219631964592129062987573095676296805483294001131653641327802513552633994403818461041541935525012197482552332606618277326177323049610573244884991132640456408215320412018127364578486676711368812328786297589544403074910999750155555923721131290369241195004402352575262003852303613261088430202445629848410050563450732086628855871956048204834522412662790854662869688197493672440599315543274321377408928243833732176056120959609043242244792677925746705413097520670787446503677949660178833282614077537257014331252574022330724049939603717539205073560450348430792742037022255824661843961724187622634416857560998705209645031416585993628710420708105235824655857549600777376571032227798869918258346130982947055866546405742062358150619849189129196696345404537539306664510775416169099309375661304155501576707128158738510607591073531941024131112986485638052509913052255225626140635085413105559935126987470213459154805059809683090518626255444235389149596882029676076274960426334990898025092037928499333972323467219459257428373825669763761363286912657698384005952165041976042806249093483272269855268136113023812203620875226176764459372690224358589065067920323347188587627081361681584784011845767604682008069600880496648729491061105824151358011777189751636859545864496925035027477145351698327713382650723747459159748202873705476030134511816687547372607586560182272204299185606048748409361367631943007905693988439395927693318145310646000933677368987653712458268981806000628864136812193342226568857487644749843480209635591921631446924887620827445640801983739258800803629323032862307614872517113107833026190472382205156546004400004522247716964781412721169271775131985685915068631019955996758320384891989903053113337346847187860575379721989373794808815905108072958387072515024531379301091860945938482327024332929322600514752989219000707095875787275869673513981217937771680841001831852367229424401122563404019570017285609833159224323191979490640486556682067937134835248117073740095708517629843144922671071003221752462882926540795460490058903343211492120250994818737159306118801116621519630480828357325812530893898063652403956169851756534646736936479893376669232459708612682205535532458081949804351997889630661416009898509560295745157461808698761410217823701156786979199269399368826551262126383706132591322374313718912641912166583606308240794777993883635889335761357425624098567715136360342720927743647373589350077080704656775787272875989363345232502348687673135060853212305242244860760505261521664373143304845496434439267356531546315483656593595951997530690190953385064561579178809548581867607787401817782347740924441901723572585317305053083817639202103300758098821428513114393870389786549807734400872350801086177993756517574331843164729172070480662753141984941924551498625343042663648244383536566869698758482990896732470705922244386020472107556494287066264564978000674569612946249879056070876802915741944882465949946017102601761972371320725493754957623377047202724281871071574043893187468023381932192059075096933342720513705198864151051201427994026190030629333181129162690599065483532024470202830568505849848489493871999998292669246184018731166034072316612216934888738403543793206600340543137313563216215663291427424765247237892358967271178574276063592771941667742294456703338092735169973405175767646537611009448039376313684507576479336343986736282104614125551104937672743809478684873223016818780225475158114507007106562831693153645708897940785025926192810537190662518201649324143634298938273962425186260475979388196762077043153773687408297292732710778461924996040204536387739996109911227795650777253566839563785167246756209792662678279701404233266530907710666286475182143182213512650451928030676976377891858486938198504313727295815316912238453991824090325971818886251161729320647958047517148382130800482078221237130426031692991907971459189715108475758459565754280226209516050921988344486338417598515680867183899865657161599320226412238653425725947737710031142712391919266950458286396184748165071536609264477264725536057125842787523076223049272236454227260348756963491894272835680280539425425145617009796322790952360213571742141304187392197951796480549738025252303670581942602220342722234518567872027816475443765182615093608510626931936774245712139408748024145363941704875943999454156684874360823703263514899357449183872289441944170369567353199562083978813327262957504075521281356209444955677563471799396208586613961494043588030764896344040589817363776953735753094169189901981928467503758507819462947821844098335733978915221163972776144644584569097137494223271732822878302027646243992141113763120480298367567696872937832261720083511201345852516706442333525394684984395472526404020858139348338836672961166984430524015246586006178275549416407644399945523946114998658070586899827798650954823831485229960180130961859633633810306312697394442626475816438200388990842354939119608882880997659393943819729395305368182325763128753994310217744600928972936620690545919162345723735638952551740259188128749355192974302684618856708835629132718863217798427513444685323520559359545998181449423889509096773454232161612055309664732996015756871156458916614960743395638507368462904602155105221111161320813991459252844511127166792125916740222401819756132079499679039138708040860258284241677412705023849143014282856216723276598054764931569232019519828497636399295402066245765379192377163012682897303389125777458988731468921150470127622172912496213205837375582836218047850243464419737725716431825629884362942575681017390287939051464245016251701678555655492832730399996689886766812298103084700143651592987905755875287533931760754415556755548668090351714417166216644188499528647200749281126435281983326177909564265783442032859070946798680859073933740052660908468677792488420338694416394175697746029806642280833306191587447045353159721829870871587462455462314760567566470593924374006832616302280104917376688910588155730200418620873587505812293354589519141110480672392864548834391612499014692143899359907673571529522686867685381839900728005664109713138225620818149253862229218105832320981682236067463322171875442029445344502836865555302440600334487157612933418586750416536986375427276845429715055642752610622113263802003668256800151050602432295514334737940970842863975234609388465041298608127301143421968587220182671377068660808293373090138260940661165154282352809780249846271953860847571421052330573402172061714351331596015209951310325375575924510604456503490695634735823303704517605698724520339933693474607285637984616825326240139970199201458009595401054217063556276987891954601370259905328366655703075734088374726118890111256728253356391720599382565233777680051264667219247917037731482576151871265477980945463217108021414035947139773829703100115415610426162791536694588063788220769843407655454670381004854395733840930580870841702583150087538417290886058481236022940491190912316647878164797129904782486077304470771837416632681692024868060902728844221847280630032826282755328243849846486111537172642147872303944747458192498019866192616826625356869596093970424563285447382304687508206889628173964463962322349829128923192234519835765142313465413938467352131719032860997208696571830296898388876611736973051911136857646086925290651126900602608579320084276580449165275623389950750442767681142639866941414082805171371412008824301013697743129413006683354904204861028937655122118705654604256444759694462539119549473368161924091295641873319220599717547019026605691311216873488940621792040951371854134902716641297675349743544973827215669007581683293235667290215707420302234203470231125836073299023597884283694581872607327847786417743452128307795933306466231909375352082343291844935369669982674804190087315750597121190279849082332107450753292102494512778535456754377652661448355904197182522124338103730125672001115208679743647620973540169313151575982466936761010772321402790036873158660971331468995834948601458125312120516037322764822924656195876251668891375846121379356254363808220739339613523397572309254946533065594066161213061112803411286795151745636386439625147214397796872708357866129675939799974803762828159276367582728474272848718176506746738228773612080774877896841790799565998116766665022655881766810510513826682609046641372688802626892652743373167875380996923254195328899661471607927964219649750958673987472622297463001394677233263092183657329385936638836453600109644550599765442259987332019532834949629113642928967477056252419527973846889824208509735461473247469233658225581862200671527712573767912980062768673306014017083689105554212304824300785571868804031504980832525646053704342884826631283054863132205505255654357168088296869624217957490325644234687243993154384007758511631399117432497148679764519785187957028292271269237566176726601821255356387658379880960461529784975965765170933332486869274113083110453693587428063827499216958626743690154254164346797580594805389791608712447462079740452693840488979358540553567578569557203104949802209815089817849576499109952480069870371477614708054501122088401758083046863437311735616078031030149407549068615166156674430671170354294254241382778880137727544885186016111903773071842335865367767529221437954743374618801158577122327368331706511966697504155922545998728257494662077934288703682740713172465041242293505241904600867394977109545949301056296390363680663915721632379003787346291164871280869566531032063437232344398712114062177219044938361856534886269911733905012391607192434108783444323271314088733331156399471044546721160746683150612980838099758336762864457403578284376746225016025717988613466214452035051858052759790098867117441859729899806140189899638055891044619871221039460122548783472196460649122704916493575122598392099600110440465780522991184399684297760206786918895344706680706075090717644959556447416622829872766041707658168913111221759907567785729796735490931438113965863203067301518244594633476983450086201932982081795888785214089969149337792273127943950096276170079565122571737013929286835581042159434746278288698626927856164346374573843510143343628032960490034410829598892038467063578160579494009141906150275281988691128350924356690007129286461154245650546286608277852447149273930649109752608026244229549342528402629564170893478835173515321059979761919844462345911637923407711145174882870214960966084625506488856720047336746602567748567558838435935098925731547209212206664669210560196006801305046544248796452704810365907538826845319707881777545570608148570345336720135124502624854139222888840359451167653222380168526662637499720043310760715471741504257724912989434102571243472088172081583325113787756186044704836224344531033769088382119477538226344914479275273945618515985814720878351067430800135513257158675364564576732039443446041904423837504134990132490333744758175831202536371404614641003940534566563860385350984079498778770581278262337543772169512380534047675265631412692793080833825890756118704038930734933287040776293688026790367576087625534186347409785498697954255849353535483497084590392713076162483584243967966382243471441239922462229400383167806139205830821708345575024617041335991116307524797053936701667740355204035688097615132343710213695946623786211182529869591678592546907571384336972313644505547823505401321214343656028077004769330384913364367688747390316907647943436954900749508359743714943840495259373783549681627501618742315332158913788003128608426148721748400061377686759320444585313048055107095727927027585863425077642291588841434487120642505984344951863565750462465742301198794949093897984856879205145728745966324703638169901401874507928660966761926775042665938034143553562940452511536640125090467126688923874274770415822055466177880970250520284162346436255926962777613500291306980274290433237631848568473562942693698786672461103834690975101081407523139075158317139136252810075949448429382212184739300430675166508988623760464952675217727662021747846617022742139252765195303195875116546813292867759270481581588490584059220326324762130509664395394984347103543129264663912791125073887367164703331576889845497105980849965620169831815949874800066830371862329448109531145213880185333957585355907929170717143993979581678525345767172768413232378937435212269560147825449780466501955044558581958818100286077189709710888703719728461473658410835695484271916903272534646051382696619940685496571371028650452350802312951401767421439301876383229512950126158225270187399690474257535015397906023695335977459947360790015063432757454644140420301905107871918346934161011371174882262715123066511368764433828141281387691646768122903458351926994327478335989486210785981479486487108543681010490151190642270920148641667039128580218244187816212647322297356922558434836948341555894532177539789425425951079095822438578525065854375593126569241600321192643803321078884614721232975031676251953559057260164043156783006440390140098712726800891736345398027082194025457935532954294005039858906349435478934920475990243427556539223927694471515394986783285560611824175493609784814135156622920133731844231310358261692725408324462906393145770310027687072115745104260970288384003779656089704873155698455458337116640106620604112334524210418572027832748084427878390531807199730087138739104367867408506054055782339157638662590278407128184904697267277653327507684821558550392217213151062143908448732112390835068448119517946813043588443174204359146787152414852314449079028808498892682755448615753352773968246296672224989891397816947842982946409894126199367644939937305664599718074626857786777750477421230738168775342602004094173168129456237420205507319611988139513234435750091292857461123753505956987666258905192546946429591948347831182160731162700644531500450451705365175251778083066321703137548444128156352524302908799459927195392219316368121706554006311332271532620683800597466295836287820718591567974271634779717557593634452788354030446728128452719956532248680384604907583234667067389031829512966265301982865867776578709387468911549850609952793960614719352636173425036841573291494079849242775752982623327846348798996712352440795122808865094331150196040477454631955027146168100536356172909407910485822398253548843532356036647871415171014228713966683130057831117733370809868419580873590160597374782465868296289203827523892018320067709737362532574750033357827222402584538802966127947753401197002786651778008415160180916006935085585750496129700058534586404940775585752729789710678526261601503295598214162578975221536983928445618057343336783570672790936921227434378404041285922734950104014947174128522355838643937679895763370645978301873770941756571696603753516295485860196256515421076433474967644103785049398684969999059165649013214450812039013628680052243757614658710687645997799632945243047608665924056174179448308977234519639501459419109484726327654499916654316682887339198398959824852991498613764783713420033331734756298059068251779456872904219984505659030746124787085022894692137827958318849266459243262026314307325964988693829101117899263852034883343040526218066883351876202617311685581834112610592008195309060737613215761905928555001765049533208047644911920920474143356905748150466662874797173005879926904155512937230144989994085582352395322537189699870406602102452956157321306536556090651909034940585374617803255927537805442849866205981885622173640673039969843519896784025141855766910117742430504657278604830530799924253277940958351935719606896538181298870905360288668569707087563682844835062754335240154156669195473685569412353743255734218815477369480245369824921702215582989166321350808594661701079763523870392408339465847887910934006607841896245910433122417968206848929989675746990751103737106476286521528504917278320110189579444611154399333720300572618028688401490822356435970745780716973286242700562607066099287140159323484343175866791298699682408167652438266169588935008561321905006291789616277154798106528503177681696318020025513843782917000769944975623263704077371236016660738686406205379367440523241839142783319311841774177042707518006028544933388989644605027086681116072682312803362798007352825808521584659361588328861683515666273281660688551699059066954992382707717713685022581508238390611357991480034348257249672838614982103572089899371235215795165950054764631483830003537996471017123116685180542557287910422994326791426174450304079627489575012025728562023013851140577591272638286560166044595110458609799220909365282552911779995105384765259856496231004944518041148103491705747734666259209391484232854105274345393295451353629793251011273484294122534829653296963574443960873333106061432040672248665276311841199497631318278486568469121800812464121816246928644347083720925780131934068251420059148048680388202212365859728816834666718080745603262404456068742584515605813224742489889184045647897250583270264513075131296754699025059198639421281389639230940253720585478339266107700710869575502223296027410369074174753819624735007630229201570193392670664348049835632379900758348662168824566236464701031154994527961392661581149982839643438028048623239427478401606134480769848457403689799567454952962160423047393035791166889115167871600352255897156963996038468182938002112007677885755685755947732789080347530232208770822887447059938935246800408819045524838890475977546564400624401968179032973859682645920702916002059520255158112196971067301039855543532241453661572767708567492923672271348224563345823545356153395788439135892475011541783935554542716242697878979049121667422386745859157872385568039443641842486016871751100144092296094139631646765501721113039597504823353110680651565974739918031424676472825786644576737699181603422393067259117110259096297392537062143962643493941406627428397105095130377620262913623642617417568356966195794579281686800749747439102656585606757579669345840068725158544819902130196552608576473919834872810013434605582576364293626685588538667308120322088076973055376343981152986440620226842669643507821896140661580677754416560235723250836143713465244989719853798594826369910677595292516916510129642438709472439093051116927084072040075291713862117408007140178270076277387026988465858466640006631945941341407352278112118823733695214869991388883039173835684312782990151650262419990331436652444857218142684440151161444952373002113793821201252967153820755389609223517435114434739576989266236715807958161528173973018563253251757803590079217884113103969462768018708591533363070313071372944610838606369832206235329258612987206847269104738951239283825587089902697621857268667486842157380958496830037751235542873477151648683503424499597641576944522832461852450456683772163028949729612176572614773611351852975239382611625610349309485829588251027802860152702554878001387096563324391301226889014165474244126372733332858342302975583327217597385677501846178996638309006368587751528912762197955790096978765229156276310083626421370383469991262346196618410465719672676957252025150384953573783599383595870719654711215152789380806318924840170383910845092923068071109824342336052254668547952629206879764844782210242529029078368831670647933472635911994653891306542263095292574219334876411862383269964160590890075698415615298678851390300116626249561497929831461472844807122543578834958461231587967385439708040531673944313991554205227627340873840009011941054341348511840181789884133729937761293530466357105339609989952003269262422182911370896100635344365481349737260374424268515219203019203056968217826625185130963481104466007955343255463793748369656338725108027224521085196483196354580148592349831183109193942392190998464776686032724999410961587722923262529539903387367711356566270713075589647004056797083771045476326279788614924601592288869251415595372011160382600864045370162993982514730483490062489813301917566650196983627264647165811206613051124762948597555542622332342584451799863879062124157082948480536532643699370754410934102521642699510123190129602862254307158667092852456476992222918991563834889236292777458078009629053781533506263668459050735993539678157732783543471068743010789578005828861537059005010238206303161116351664772589323201003371144547865217788110678190913050574327141437145544896662235911386045214745834575889453839105946175781112590670808625185632092015062124543059680730242614958687120641462663371746347326727035321986735468726377518365699617655247202775398263257088384530200324053242231079147800113809642964483478073459794252243412488477115203070675747025544967031205238739286578053662059540231762410808042107280817501657673439266194693695707472146693770016421155110028057204858225574514654007662408468555047763881510169342263979066382240820159073668759453351177638339891389062043840346037165776852941138146825037812052616280559496069318832154612083406014826323233964747263732722084960229367479514991481036384562733664020137788656449832293443482917697927385026549743681720286719759125767547722295372722067769529314740594635716286427650673295025841843140100308618175158754769421926873987005509326311208663632043273453061070131350028570417147264666292612073664725452743006545850090041564881879359340014653654806678300260571609912831138211150499635963850191410219483882808734415828122151307467248317206654786783376239271770240838205570311982069253788108268768874691045725944157399752556164533621401720632171923145194033898612095731052588783078933931671025674494216631391661215884118126393058625403059235268664719507203162979133039116786787110614014275107209542512940743733001811002233429716572558703680245287833993332848944989769043311244231736602242159859061078466290238364268085102402899184969714511793095725085377502813477793305957831172538163792349413373290196246373004910260607722916633649830232003209258923517064743338364072334956149096674815991055770454412212357782444429654740406890034461781695060162054756227201127915105746845523670782211737257229923221401007512305363827431427834323982082907702530950084824571890282455615089666889909901884934016599136159447208986624426056988222683938731927206565097310013580335383008361077939429411808845528669423041722006713723867381426498677077617498986186905185995985387674122132699425703090799658441845361186177467790524666327116060628458202786445489560406244658295928586964229667882713011971403597322831185639216175833236969044690372302924802052100063267254931633650065977924223083850175711544143152524168422322989915448329008336165882770106895248855706011728718813415986277486694299512071897854216959148685871407680873757243902330301324172629110672996394564157924825615920930566206786365709623448499484321558641611705694669194729562837952048044947956822656509895055529234764581333184933506197802117583431216606524957665362451490358222923917136414694851463994717724215386192982258633484219325775792972759398943383151234445032565639373166987880626831996542102098683694759396124429466191711821590134304460021279490186294646411180032760994213783708771291115525731285947507358216505925834992209125758509229738893223014077411119550548943734525262572338150397286582967675010676744369892417064970607805992141036100203856986007051856859521675805883018374004661637566046506661556168974659769697750033146169846400892043633551499240083512390679460756214709429899212070359374308746495198739963411568282459649891969644809388035507061591437015023556052122781320853418251274574332282594836363036399823230587190996747900590558514114139233154587057275724417668598256492408316572740252451502289204768648411356657496060959072022581907442636867472213022875493352998497857249988095830198409651303447082999662786213530680466805989416838212465911555005961840399241103678701516487904425619848647475604932767556375162643958643683964585199060326000235765972830688096705470942141561817909191054777754902035741674731871349692964543951382574411635864716982261406963831535933642151269546850561936956724580477452928135185745643280050965077533831446301249720834478176021912110823480347773608090946738284733676644349073216150138990326557372912625370148933312071661580295505169655511466867052314074214693001384374857399750734483727407919553615296428685603772093883043254442061956145990074322540463895491253979625163414518664321510411361714545610028317317886787472821725305805998577720644486745950175315091457618920724561544487474671268569564150525686533915135522496844775879606822271707291397117181415718109355204793477494373218306958975853541968397388887533523686078930207057344090338703259778388670394957803657024895331082087297496436999229807046601083116844427343653479429933320225866295680012281460536422835296734479304879493317979654482371788163826985358247395254113329950222680785394046912318676934581380447799636336022072795238342370172907052792069803946187011038557995520284408958193593305928587331258169232952979221663524334285050907573998759026241276759364742326502309809908708445406578463736841427164771420660333323550292774744225641681691243807775798798104718450252275082311573937138707080518575555415668545784123257476739574565403316224885573724971890363991386094466122567368700845071289142217630680131196577895655997443054804005787664831534096266768862832219460188828021938199915030215482004613818452530741132828267145200689256563501833746439194372088347539956050756021101645430893677098883289982787565415676070621331540740875580481309005263068064304238121421893987202961325162584795614561234981472269659012512848386287887088113815657657321756724151323593819918754338310040223224182387649678936984285443128438431757563469938012476098888060040381641308820498252256308807862780479574436039095715441748162762531190204319406910191090955320586652800663701430062383876176343385148324071906184867159805371181946415051137484132959239100880484278943670800284013488861578215843846316405759630907017575785953874691166892123834338142300998819379227622249459647550235146851533895463157239457197225491202623830510627164187598289390645158597980721046565712937514881764375135962508435748435797706886437082493132484378272578791942736848446606767337120198843804883788470755543426124471592777600232179801343552554797469819114579109781404104512733188814194201902522688887246371566907739399448491798952991820455916474550357431140605422934992290707374477291509607801868648073748341638543798614687794930773622407330386283691278879959610781888715788512156935428038661860908483331214994482174020646257516414336344482068147987167700085729172568068839576728900945777153397068800579566478532329420241783858483986405536085647723986287966631670744085602851525804744242736666969430865580741138621508358531334900093127898604588059039205891349197654710289770973682718551133876412108280101157555902010053659218584575189857270340216714071450212214063023502515742453428496405561370597716997596772970102310234342626254453376410842946750350148051717470370045712692194601932105508502134116437421776842404326357943761202383926344721428413430787934078769583922432710049683902033629387878674349512539715315961356935771856246961002710210025377586558403572703495596770265121331809550580989084576263548625465113480411808646530098116690005867845290983731302142890555862426551894219181817162171747652646316380256538338895522391733463740608771341351953677317970901222408580315504911317048144218805119024028609480441325435273707472686864682824254845216269233157839364477256655926447469501075400515459026608328096800241008959464996130135214417265814736775380475546451866135257631189505366164534864105214321958030471967201069958425244293637604285855390813312176942761004088256344221425710498599623699886682322990456105287585105068899382286977997055437722944950081848065821480654620155201220925772427130481183161430225128401613705146913015957235249440969620299726139817846364490210896523734235678117736276552961125203267185152703754658110464932921961775892295893851002475372336522708314178627883682666224025163128351000123618005602061853248931891570098119696515299819058308380624834212702943501428163482345519790451798891681973764361223948671070398022781999432027403721489196739976423587893423504449572675902665501263020106424863712703773250190918876014588871057884261199337465502225298319377046690933078697548605883168490246982827801387912812232602667482962351732969593953267139389081953600026330403819549771817789850719519185836530435027610802669588177978270064575074066597669559895393931203918235925320665076743062903950897403385798517573499703570534014242488494658179512296932241232628539330505716235028879475610455920345387013915721008617990250180560512296410846221243980369180931291674443365440613904799556760841567430450701851401869248496208498341685546854138009281965723144585860493784613970174094102412703869312730487390636489033146507359732557982167159715645952135559283997094027549983832641803404509087338196036107230496814023441831474297659786620114605182454812632079057001032896994677801896773502057821246400098416562041146169139457182251489141456917557669088715703568032325941129195275737476035748560606324438333635224761722241219496156026210301360344518333115285220755356013914455721650875561023785378113598167475112376279168037846244176380311726413441044175667635814967208668394725177506126703717534444547628103676878416598630126219622542990812183136602073189991741243197335099319590544569192017116431897250483154761056931147591999690885346123579532618463074342834455912152730487565932094901695112839999374652772029940657176172823513293806014845919166878015822296430416589586551220256918311507309811041133272970885658148999154280049779623386608883454711355749230995115177078623217015060314506863788702881113113687533966317892884511501337249595516576214610502109635912175563466411975746759489584983089421927534767836616509486194988992629302181356963935898823666384272621212672103346803258731827251478380540942732532734946138670594783128154644340437246477519357616387755879941170287869250245596328868163317025160361321966395550093339952371029476243023006289922773755848398633629291192048958958577230220843176935325924186112528769776343372211574541802761305899345833964457003034131576833011497214614323464822925418222056734767158035113916458837984718753170264304767901292409161150379654883888137779068618592119216883008140241817269696220932587067870471209525883893525066799422048970065927836030768786986486608936566219270261309122729604233964986773499064446149813001036041875461832443387035190544025248199514142871901574645602993272618819657601167417995507979029011198831213462590995930337863780721719613828020604015841511201660013934172274857391267791697140090944228185250132375575796416967893393928656807097375912259236253746155967591930332183919829509072390872669348940879106966514283159616136720762967547368002551983044303588750232092009727584745797960570807662359404384030018747812314623139489613906103682014491661035401748784311449112297432992897021517763603244393524267582627114393689089361447678426311680926532924268410293770609000385810445592449867059578682329629854418752897640751778907703882893695845038218420035072585452007934743609358693358360619891922741171410934072991733834231305670474040890947469295250724925317592443969681738743971989895220766530353802118983483009148057976576165567307397087472609806393317970885091140918765081620947791126584697964249507872213649487082455993895371039917487426029685430699787103286217353724807359728763183577459459481654977687022613946106247830099273487594189578701792722076977383597356788013718355590320965687419354635842462754783475090956164646225534527668124110019769373419971487621018348667904484805874240526445694166400552898572775704045342086104374438048472945970754714120867237582982923114590542233959762807772019841779898183096990565150738056756264914999945368493429068821320966730482322340549613993317906167865279541179372420599638257304549368558348776603815383619960656347272802341086567674885400490545196850040534273375560947785848075019925392831998263859324054202405287993413168758298558600303627333709048019605585634263300476132486473256814885365282404323773043762947210316266817850358605599791601308423307340280866797602003459680706079855146680601715301634419328950011632774747729003217547654027354991052133809920355257994164525559254815307912605912137598989393909024043648946138388101396781106663697698631235986038790313886404462629685832630083182905302348560506627879670113294321740340415103586108376626313718324569303723164608593865861777145987740415593882568501196585461136419847107781489242663933554003298001655483125252793620660589818830408642176510131553785097100898540182701065124509363049982531104823061779708052687257049173228983401059953407602844168060952980034559453370157062184792952886271806501116443049874099010709593720644534007714583542565502021075616027529828950869888502836946652095213342647741433562196131782512665101034024900406141336072865759365874012622108945073474715650254140139240741524640672128725480780902556173552635367421794578466360320609347063377984378115506410407404059151247999150361230352288697153472018315389844970817759215743046715963595122382010316212356731578907641434750747897893532724875727543699939711224957817848747743848878497102730453706066272665498675863429004374011466188992084670759829886507245867731818622947671791545001907186998810810490311904281547151163613322342165844815492616493846179971624243037136442735407841699939435307090446584833677526666315192556414169394765954069763568825698872891901248040270643661081343780230371291122466630882279597756836851257900662258075123438314875229147068761968805056450016466068201627289685573396484355214197415782010556892438379761532442712759820525610604276797228255509719117086578535078043413193076200547151574698315547856227561313083980550973919503104000034428197186640650935874408188191927276215613765370781835714401590381442038563298038176816899282301876266538621454592229419364512745479262216095498563400483272148176695060414361402945249970339925554218861826167749891242447749110104013417983285690052534384197994558718938890253821401215670659101621455256387320500072862113187657619846822773831180807403891502627210223713527906938327900669679763468398684585334303917769736221180600338117251638458636994812346139803831355005601753517861703729182783719448137923553722229054429607028991470499089060511018183182947468374304905705570176612230023558425542745752992169850656070483855186922609896901652922692647573650967241730433815399818356888352429453493852399366532070659623826584441570069218558199208769265872683978698798895791011451322868312269198540980545756681495563576445911075840103167427813078922900390412760589059813287724425764888411594401820848959755622231250784416801858783848854778885176073166564477232980132790943322558806709169267348282792714571006762956867447568608314317174767225034072557952625721081696678699007276929163293371124519471885993171150799500212241506675674540712465629820699031859612370142296535277148516910473640950967597507134249477778106473824692343733545151868703182337685971350446536456124806134167155418777300230714196662131273815115312706486040147663100369429318357431879285959072176337075619409577481710304617881933845102464296398547296395407044614077063555688460544192444638648781852329781840906538141137123936636554298480916471829721992342232777781538115808963967660415730451614749029594304386393759221373923375268288984495308783681792242921252885126535143465239351177420221261870512377959565853817233888090400682006408451460004205379723158511315677863350999022962404409505098220374326990465241202322898951613715398015612949008636807778813600342759001976872898145280406273877293260124973338992869238619415893136700469853641364306862928440013962792567900496471341173729916629465449149259072956048458132233214031201427391652534542350126496888031405352734157234415565013638741084815456637401979286734911123694197514706289699535059225201331053182724917345253323173427416333212795258102213058572467739919254911133190202732212528466620737466716138155513623413502186804691569632048614643171670119606956996352732735537674087231289745717249366841025031652755551740025082275524989164250306140918121207950458244885681882420634572819218821323301128598527686605489767494191729662788081933996290042470867769987612256120475943630637801451100963105612593693161057777365577611631861523384617457500000305116501784658532387157161039411424870212646286234468090943555507873530251207836321660334014124671989511840830911538067848875464574014587402152565136576677749747200245193086571648071021984538605979207720661126072002859955521505687998608814472900342325382233397559184771762437920401038219020229462401329167748872202669625655853209362829966942665986044725783434851898145517441921112224783952736803657589155361765146179916203699231011805808300390535668720176527434636525896850237594811163596383041060970949645966572198936723491710127718184734428917446587487342221169028301448475461900028101150344744371158638033205251523805013142794486747321949463325452149169954667855620407481792596307039656018101047337790953844974810912070222590367126622404952877120827518807930380003388530565113585568311182702568315755489093505263547000425819986709027633344696458942106370607181548569459421085240936277169439293378463836650311652642699583857430590015220632730235781247998566581272055107794222590301166471139906237180048562057515714174621128484898692251643089214446132453345677233236288969193030861396375432024171526187429201265753188206357715502364185734923089988869744585334205614459705717909372625715189522797944155716356881918580865776246022145161375628299420648398839891710891569679376584046242819058396215665953537755280252116900587230601071853590169206308070074124862388003720498021078934375140759169147890049828353096358097516842068299897962110025203166441060566511325274396274496145463290950651249056337145174955050871773460831712979173950514371908116850760271542369402171491501962914435579638603873032636337628791827750569944954430727597702242915456544496481584222158278964147144242278572859942958951206202893582128794598096243627299311552370653168838645539503274426026012416677417608209842935887648442756917681836549835728479394121458845356173866534328586862637075893969283896970701641230928499086388967613449645635351245826184863881199127858420315192982022788473418808893392874773633652932637886621956904647466450434900702562491244775111579325534385507783448646326409063119555608981976244097747724011647415130068590125930602632244406583584790603243757605017907241041246475080779244362835494499234634658672418515418716176275071293867384432578007361353325565521024227045792940415812564113091660321897814374803212447438157006064921243889260667319655164784900243805526437248299693853793361872964128044201444060496401976580147698126262146590659025900630780124061073292209298437276594658633799036337159366249604184360570893271942131043985286053850391558211029340838191353711914030719440219885633217648925743865626723342470284182800061136547567083965156691738440347003481725912160635154171842985991183968525996503866581225190524491567147291514770913179222339068309313858284429105817092597292523397956228103901144381608047016053613939983805699075263290572915825673724609762167013784665899283353638353808922477533592228947503524004978968735996356707309601047681348787592729387860610360556435423283576803761600485918929439502978586758950375488623739717010077019313257177736558129817733988860946266765600854685536689303641242115834617920823892207003516143383299406534039891669819824137976048094251079751698361880014474698766056056911720889433951874503772235469524418756005877839122059792193861190942784663134147171954510291060679873766087021224371438324061364131764615912236276519820973392114396730792396448058564597630512519027333741975372319134451104961183808270524017907070357907937631989283649153093766347227030180605193925461791508892221334707762256523779917515848477107854433921350766883305335214503954106494360585984053270375054541703500267084191305573411917526711138483259046599042380978526300098285875554937754057029022628170188789351632692038263065030002951911581135323213926216681419564478180121318235542177310414848027291390174780355104416022897445561918414614335072001732909591922403841522932067165186383915595772050234025181825007833706443474163442717256183435724197412146248959508140613477141552460924738287671476071418207966479496542461549544630337839068489889062048595243048837344825120484715777065193393808841477419463963971409044407275809176155357521931110082700924659425131652431150059402937061847646563418000360109113695418908456397798020974727366994473850992227841140311817685083614726915519408291014697627366823790562119329292365600708811063222451731968697784269750817181682020548209064450317835838724755611402153864684644355790708180703647659179365788097175727096088623416171570729728680729636255340180477516863412022060870314320555947098727344446353175017246165171143373321138549100796965616162899811687163314765922550493180140687899203097919187397385577720293571472520832590139319179381464125768639839405229474952498383702206675672381025062034331115614928437919807074310025547963385258592282087122990529412374246649429525765272985258524737177623791443716528725612439684997769210111231480550993434689152758664253503084463302105115473844326235772317038675519186897607156807581123721954483170245496714963408298850260211080439846990462234627673850090006505625601027366206316260310543835883729886331018446437197869458690385860107847159649503665545155496671381260587606581335380856972492958227775486347497613707198129672334946057348015673641397389096537062012005628233322519457423943790770523475546221017956279688866963250628984139071766135418551871135432105271767081819957828852026128905661603384989108556274020831405707956242003383966169142418116649253831323337651664214014097954048832568123138101851312855285946743633159661097311008773929373805079629375228397982275325560653184417668840466753880183000342749786059071060672307422436679408146093891059648581923412382441847996439751288635595482625453397926011818416957496069398974167960534368024553864528705450209870771846996627050061524588743119586644979487058019815080490787804232289523922891522632100726590753682112128544083468132453321044304719961502147320668703395856176146167619443460251431812319879488872452564246913712919048337085892901693578263385595249261007558563685366972046299922856418788534363764710943489673471204428282254078731570515085742627972718596308019560796035916410568381469707775538005193931471553372512256700490434120599599451607172596276723782625936005988715368882326438762687390623013761799922312111510840430246605310159754416317741816545499996880967380642638588360164758363625160147428071322472373168718884628069897861484429549149600967631207972263857542033428756459544615980183742543999900853643582547488531556417027739350501512699793260054311843469428228619714539507860247400430949210905700706527622077360442116905923879793978046052477475112866462700130390616842768896449398200594110964030235824083282740534303264923246939646563593724535514364036886378332027553108815928263143228629956063823320131903883839612672766397711430653309727913660949028541167738364900889206687813738607803183974798785747335184174789022268709852738174582441541339640721508144573698836617408210409344712803858610632669267502888786443580706866290408695408580296533619609350457447948582367645521082428150797269166074725561194409038394343477473795020660586838633909837561799225964513622636633852707415608669742649511970745837355344735965190040520125487607082458247741928070317261628578035704497234250221410785354489796514803238508876306796318616205265500095516381798123186293483336260479008062254200631110630611602869933608406667595906117791629682931157805733637573294087361268919143855425709473445480561114434519231738783770136800384196219520045795689911285159305839292380203903446041664364380718029555080636190712254918159797030831293387279243891207563116899210275159855371103240742264784135196021855041582990154172318967388782787107198931596890403568769875480275242663737321001841752018516609680368233753759936964264412842032320007142814551352027610146525018802943145444442486574865592272949308112637894381153454044154743496658617518669672170157363677983810464928854687530837991739212236643598921001746302792073112215103534310910883976195916815834459157081442606588643158143700467288917389003860257255810512012103738831051704693371578795549948773347802738713183742669305638674089949720681517714082602495744133889428043270731245365702296378564589110268692739450878008042449966836358026699490136911057698505516158994830389046578943944346099082829195509528945472496156440136382135034367640286080325001883907867046035748646040097332200952595653390164389279083771085454801305160958936480734907881463170463024738823998435769286730748071990942740411636340287635166409008118145900272751918135425528243928721956375936234304275779294423701120312802518855025964001017637970209072943643885481709700372459765945581612684637248236879777664191610111897653558970514878140818522845711203256378919743652424115932792869592728201227445333135598469721803480747434059789792327493285196507516718195946401889490671577686022288235444095983145305776098425893638432544388578381136041402200500744059675107708967336786462635780043645333026053686085978494644704723815545555607588130221026749076846236176087929157603835571340273628524049046222225843025033762660091449868846408800886078692551973734643158083974908381390655601028791762583571983091148318462773321956829404756939001417155255842379191566139428586621295443315465111104097276117049508036631103835510750716882940146857469854397434148086431466893993104543587256857638204353375472792118810625059488295771524021402699528043744680703462759867603474910671120226049577540626186796939355838053550101053163511714080436309708234978376053838815727995700175875620662489250686850577148579665869904404958604798117116933831894118664530587012423416501969786833329508433329071571101399697804689025731689033130756897855305806672618041768221553346454791197539905651747877280672074240534767837644912058179817015555036213846546720113401553117056217559506017931403393254649122999315962140788531608434488564880433733937414630893414121754162547880993062364052951103564892071999736956566002261961225262148616065319419617916670260297106681755181339797871058239041236444255935354459897010376906858548326474331402827076566075074618364639849734680949634382873909277168210043088193748340640913058786119729465327471223039187535903490872386843255371659661931454532642664062310707144679528382108598320614569980184140113489310755819912594873706285150935946908017358880672156949870237167454961863601293119766545887279684842692628728758451691552906072780613497504566928877426605468186182008961441460156890831785644998767097577757489050568507880343986560780695036133384023405149877219235621540175205410832906832061134304658574189604231046132188677160061183656805239480512913184591716501391181617565743515712034524486003548665156200025944646505187975388501884865585707918531843854272302811820959028847232355773249734438107139154629666395696408519729827423714164116458998764076061598707570181875347498554521402167598971337854317427851989108265223679656307302385364936767499764923026924668750312477693595512505563970773756599629023510454999548250741416496059093668905300114763987668895429339170179926857090945179827304983595893097856819568350794580344553225036006462347353290644662771062893142392073015596783910976594008940195876411510607336699082504827433893328481119667292106878813545203165229899118616482257279438036063781385939230310153183516777587710236957274716987354728779118879202768405504261559422103179767509796059343417660655348569486566679832864344908382233581114193737853003818154096043569279547736235301560477592015788873158170402599111637034420611250409207512621526612047916511235680788240851347728479226798972230908398987784771482091040817731713159905425299302227401899766418340052794816756162023007691419639176050191446831689549940625383536017104204811085403640755357375641535092365771524970513632653725543222189346769383539998122119199332933453483831017107917985267109745004630785265355059608843271851385743856352264790389352465973569298033801129479709061464581673158925358246226216985812025640460256011331429494880961064738688398084668716323934053374270197892745425147341655970774063538953869858873028843650015453530061167583472855502408434187423324428850903027906916806069700684726587285226742023783014037706969359494022816620732977480890855664644376002523382901752690596851825802264753943303090420298551033574456662703848228826845777876371944981544486198382502714983723714182687545986885098667677283141020574227179333895002241165718030178449518974772581320044159862595551572069381312321195168761826748889135560908397727472277921963145924003071262487275897547344221928803295646333535026694361633895878597324833877094944952616717491473883903385460018079330449733493743208859740843318678533282733698965134971327534818628144664478369291117785115491305672314124260051128591416902635182288659787362113446135955484096271185285237995441031820985452250115069396273906063755888425296504483295114033065612552640623059325302910699340441890126839677801970343963192194055664655571512770763743760264859851907598886384708566208427393197076613849402947729362112612491469967676391459022875273379167171070568078435063135304999935929255318947094061016641990586809576070291887420734870472847076082559866358292326415041416784685512508451757676515954297736858935361238301494225805898849355020959180456267200099404167144224694553100777740631201856515815736678825390831834160022202444258515397393811429089036085668426927947115793948417141707988413008256946975871034083153814862232751275719742131650461328705306097302609333478667684978955591211052414802822017665667836945519612955576699528946988649838331695136648523401262065754221567760314013621692023693258682666490831117867745870174341128757871080330882967795356860235181161467307628222056657030089910231429316980656353491301545639050557596691916640878685162845551819324167030688639660971845287016480167167251242773310217643809209311007129067707434844500336211131383872579047056523869506048604637664825337086637894378313660419584329200708574146305114670217885127645470796821098592448771218447073613047073895639511523302613479797515956577245859074665620849832051100210107922310309295685269952502825031225002076543657688757686478844172490522065418473897804344594991049611562783459144283812169254901446643260401125459017684843910397243961412309709410126248090252757749883763376669035881810507569039924799523974583636359897791823448582089173710328142258233586063323762696676356356183242368357296258631209157168545319953267937075860690585676903341033675605562725799855657864484001171906362197667577922112151116357524643058379842356688355548724729749216265181886542970115104167191644719674431224033844501190627478988594978668544044855548581381907825167035543907751344106725045335676165243307731736448628654575019665615654343544325306380238351903614931004391375136414168642986991199111727754818437843813978480665140678980632841192692566590902727196828394203959578613036635169256475548203354509613783727662849041403531309609926658294082908833784219606830642611987401546532317930898878262433329432183276796568528399112325269923777831189267021748716699275716392933288338116369222783432477619115744301758415448929698724801150785349475678634262731283810133129732659656611009796306972661250973365091917256669558595921423385026240880623242315820567371126907969151637399144473506302174043916147303930758888997021799986996791714346808366634099514352766092861737564970382525019901165487454164561299810283797666308767856109271492468353422993738295973981151578829238749841629335627952694488833352522535197210045161858492490629038110268916606470580504139437150554495638837971363252936635564569207380888870921491727595456566275793237566005816683266786970322715721686054412530966550151361300564842369479320282281274851289065225539389450789911090838633076546098885688221378140602350232573710456775194930141478951505438394356562547247696026632006312752154464537682313458484788047191937204853842259387379520034650714082044535787260667771317172277163546883111590105923437124648684650840751298602057987168176381071150996349655430580354611315234029726408317159646151662299101267187980794429579241002522614545264788159943062432315992529976456330190673542153328304017961806753695344783192678346182708773559946015086377467822410367197655812053442293977301459179767227570037781769481499622739772633498341566817884573136083130760728137669124707539282139209606039193146207337213144639337388411685326930263351756034726366542932708718426151878364042553922682432779097136954040742659540393104257911284293415381008222311150773979856591070241918644795632160067212107001701106568609632545553009438410702185705449065638157434988885114996406747323857487067464142765209702250257815532155086189510977405971868038685653431889809995307915019654563881980353033613027698555829772894356255022381418761713433622325201683834856720774890873687234313948842762599684880430104719800860121394537474888067756684745252365446527426223502350890584010349455659130155312293432505381731324846408386885401619879852050690232060956621012869208397014656673579965645911381821838449894386478407180539078162511979918608877804205528032614911502713854141094858758220291690739283212439480584932105680763403335258535097738802600428155186234816712948394299723421540191188544546084538932038048520894275285253399814153515681157565449178052520454721788595189201814666835028045212029349499812077423362202017727276107919793828852070174429108937947596537643646356389470272106266290280539061432598544476131903668333819341642745827678159306355195358429064239528235090063953280703869393034439255374283296859966414792597382686696341218231923916332854556456461380347449773445901123437828441355833685273409030909033616881857041359663544281029547735553640632366951898670531112475693702067854787663759848644045869883529000439413047914512272590508410189692661092423825781431253556740227592936955716236234826127420626558064430895398697425249560158665778641799819118600409105005672019953974769899513682163252184780822371137244509971106597387543853084036080773862875645562712459534866798064843661895206973150416609224013183713047703153707527067060740484858893874030035854620810562974641794680612082214600767938569202005486875000266393594383443169484333129265160949976845462072185698320974248234964347444886067039189704067647065028901076133147150527449666906139265812799228956712466212396353273061736022627837087800315634629670527271705204303753071542086646640439325320748956044639647519251954333644503372435002485487213299382152707322399161442763884423633903756978029003852332026918564276292917988689554320980715745708920065777681663862017345438809456728984062418094280576750921077477336271529687833167908893055159748331995911244896531050369587410003912585825756680537296770084078130696783822529045148780126592181835505780926587840428921230425409514782422264935018222175690561486486047457725151999524886559506142100028295889568586233666409371271526644365915062607791150868143661986092818026110806058611807687365508508905821960694333230232285868434791686848415744776317368986151539333162802346290965842191226401438952741680108850147468629869904246007967797350135273294338978303863630600479208279439395750439111735734522779369115155169148236467900691741380199046120888222450888099474457400116422506334266662802906599621164417896632428974005747836291912656883471849487050209612766877440241355413642453331693287468788947389157744636926365769735505804127969565089357241183021589082997302785964486290941552737133156227729047673345244113993473434648643481247223780669586757369229815902259276886583271480175449438619890859657828027647177457890320180226049267481640163459161623003955680338916774865243835149252669784396208446884230134156100400702032947998796623656334082615427658853476001009269358950781674085791858900947145770099821489779518023771172371176152333827895042236598288259676878014012439392044255909749577612068801713184284134592896852646148159191450568760879564089705663933727150562307146109379078389006984814881273437998590294616895031596361007549038472170445111681477331071066283847642454033187344958349724342184103660755005563183549790672195077055220458804665443428179790320834807069256653911435974576471620673600679916939664865991882460706336117488494681495626406452059858346502023719308782498586749492041315228633429542605143174945228860950297689701590546559810281848203059148727043830772861638432968490854515823745033482559170563920310903772275482588304156986717271902813590090195306129314920271448326659816750296574500946319325542808140155861699569982629030918176478488098035467236037764241758228995025576948491639936630534455911569923786842772714215658369485365991809829124330461437695920458731614576535493561518586282772586360874883231229764831648354768080150629040227222798711842578007659426659624385093668408993475206945083419949818314084978434766362185502460782997218019452213780938526717804301272038508053863127462008224696299877063733195568847756382010378313900191654849279956379924355997200266784665748343239343109810752910655808805798293154763857121910449367797051023355397580028008254177347682055962896663872337422388857645934256532348656941581597804742753709169980295101999571552631363687064958772848834491424054093113239738590036351952654662138702784003983915674142629678203938957502683363016094561425790198604399099700258102522143841858055804851293669911774712954321831257334054527933518878799419683659399492556391265123896343336615004558397212530024608248405937385285746174294723796644978827420195850165126559103391717367138024475793612301542067275131919022212969348243323220664880253261323154475624901557061364103082378799438459024998009456573682463588665559665662810792592186081069475119749362352320165186355389769423586571208660314877607013997839029466041985931652251051613641202950242726800651422445739815793091018964542574400280263095734226613387990522802042234147086651589948667687131649401587766699825467192866170237333691189897351851754596815920926295378182755170639351685404746204951586867346342538060669287677214540989309941755275434504195490876724827544870264640787077043916783548701003126600913215891774914790427762075473328558838205862782908881461352881671342668313504203337177834246995304164353866518382872046321884823121575167824744814395862282773459142442342571204642613652997308182568057119671082794849303735900647319378998354192883224331333231374282809010569528925555741241306714014546315893176970235139816255991580834343328642612182384364968597110615091274944466024176057338386492297901580140430303108884538359752143672544841521464178678754496897016560228596078695692673456309104162973996575360526426922857606007878663890009668655557638881688010743613554761993187836225097974083141797252322948948948018056327079866243642895131211158930950509761141868432929791057463029665053057909542554567690002660750935066677431512980234109709925088745126144452161543194290105720650099734636052755203171762873950345763735132554022426124014665708305174577055259802315703783216857984145046347480498983592367126462704774587844658927650741817600731245434914951536727163000473506347285596467938491653670964505428372153700959838582569244466567311927576090414533117727751475100492881843819445768712641677729146925246811282153241959611420773506511144292828872024434388013373161838364799807444182259390078842418547068043792932578235806562146809948638286699922802643189012815076984594644242643963487010358226544372167549539911031688447054506571374063949195616861321145881935786843472541494937807667339980062766287011803984051613788739246422278713401085167237048709749794539379268738117663632693684654711707327935069939171898273427409781425641781380195915490904039755715803916066793045612624762435987426936651801509675968895816986608738131280021354098906670906316805058083690157868746706660712834035564981488481234842095854568983496784947993979095636894890863436631562061339349048852673373989712861699239974167472004522890516834131805049723341126295025141835908850698685103021345318117051683868432415661244436960302012946954364688994913683100935280498110073203073778511908664735149413829654003756874568989870107209239266800287835289837560603374968865110913944787625677589196888203241696541902510841626675817143308441025342658930006770885655824165184867462732518215798781627667715167281199534926126566005725145135116072555032406039435509820266424210776247592423440619533826806263871653024296324376448964386368128720493770874025921206575020025889466512529124721619345496654064630567059406585516846285505448846404514825605517306170864121145596507009930856733073168446813717249122745343643049057474593862206310740236913361526985658907880157594270683273207712171197143284143471296060018470709137071557819012823292032864739112077153257900876307121599299385014049374588336907461602901708012601022980775983854219596688773472829194734055814596367436985384554079097172600978534212573234018545707327669167509223296929771092716169984322686269357424012969227075696467688970698666050281675622432196254847521775273844516530914587173015954373454276193577740745832305269841610441668775313889698707808390532398273778649238414637178225032689143544126734180842107644266105488015913042988933778069421361730535170135985446366476382623244622232854747160820854797514721354035445075113791123510065563297810045208283595722176000731006214050571073359769864487041295099851845213922485955075756766851797095845783740219817002983046053875760666805993057733484103521761863037907827062856881349124511438237233944329927199312803558125863467272721251871300459555394416860023912478414345544198896838480611495270542283513179229381655947056645494922872078749238089540339990398822740939756423228640009737642995637567538485119038954988238583665409828449629756130714658081602837912238051565316188508876581259808600787144659746463627311219388796264017589030043900355540345884015652896654999701017303146280918789244091146706047149977874009215344167368635706878149735273284581146208449018356704116357950926747444990068419061246274593065909754238508313164089197998629267562314532864689160831030199851404813506812273228657793687670651140704992345978517648249608225906332927858789077198340145995380735435684006646867930382412804803623567203598327884350281363284099177367156072821307706977097902699778346060160386056922016581306467847664324663989497315372989683375074284202359561148138578552640023569795119149098562043958101900054025519149291008633631558149834017518454978933231180938147752494242860109386416416191807947596191860839313197355864671942965918184924444410279533283266581223324403805157264232609330063969594314727444108637102894604073223395182720061712022833801381477496795835235097991932673903590188985108788954497127781328506823606180012027813097823205595622990853340115515101260320706050955310015962984014534348257811390067308265732680926821842038169484684524251226915630400740041382222076531198627690064052975278230649847715421098540159130909426740342047340846121493280622974433840132141591275195708526362316901082204821778991605777730698004001498295100235683682761519865232753549098652247555023482358089650563419501463521886088445539293448340930818800629725329100148054743135391597072562153196564940877742491096872411854416964201630814943603125386654079466297365729682941035279758591838002270254694425707317172765703321049578770060877921514843686880474821446666837743763109496663197768833717757889647209439888590454006969329455201737667604027341481862522186905855558758748792836566375562373977925401699496870526895844703020753416303531324807946495845096606618756227732198227019923582887449496683633870187602065445661788235658558438145721889562196225662876786476622614755826763315436895315500091911067205446182449970572529132538276848368811461928663309311974701242550976810536397136099091170382191455316583201520339620675525867283182823571979008728108045997451336159899119612351208519055338855021613392104275750715953796209860909213216541974538118142851935475399836980523551556033361501186485027985371242476689388392290353421843913495709047541745916681755127376958628822905358320501051661507709482142895086806931663473280616957387475023099958469374127859779535816888090210536836029116293432378171359820067046783808997088379851664463994381611289105006931232025639239480075420909229906163292001816692415863150486808821081204952668113474550162448204834795132152727842744968557761095284359807973307923627392858333090176868622205905707167919335586642877043315662169018568341125159720506320919567349382188328054214833818023616399357713889426181769291230404846047146578405418679891456033507322758777002157548437484852836992953245716821351714882572756088476341491650401288594000162899401457871825943712530031648093243611466456833773743571467753051461854996128240067259106706621913864053502111806918282594388590995732148694259604673234807258000993762080460523589624338854890739327538367621864286754874495828183440102677609515991456826862786627823220066697199727895309328685326212011898099454671326140758691321657302766262444091894445290570339827822974898796192020992427584230088664030975956874729641566011463943824724890086174083938512385725838265409865197638187737100565002201261286234078692523756388437207107553799289244699968969946126300692375795061942580628755237426501172345931910711313127806576132031007634416456750617673389400993589175873215020097431527060211004331836012351380362022529527867271241304521629419692624539934443584795244328969325286923020417845633266923970841725911816109440190151630820704617021467545061899198050014156600998997270997902794135084408815195142590879413494330642633221567780308351829036206528729242198135187825098739743705714977055767011696964978859910612513763905003367182751615526576685873617655287412419378896843361317421061921037015033212912785216257074883396273404260035149124123461613472427354953459197157101597180735379031564162202908098067986733720201120437080079392867023738296509802974509890798622342948947563019078372747441802250207983966391237505154622146610593269872533340984440810111883775704147635454728120835903885658302684948465282070246259313936386190801543032445447615589958580724997490133084587459043726299526508041057581574624502482743987747079820654957648608242796434603733871589526933490220693653807014431888805203419977912773710276811948679565746780948759374689164790394197008158947983670701799859736899944359238654569590055544889479848082490113209305475362252101412474482588497139324497749122597543315049083175648852694792774928851803805155844646053743169403530395406671975717429964333695837835219500643975116552159915348971820937278265000867185117609641215559025575235264556819497488012525447727031898018844710931115087322178447348741442228876417972991865022136170021055871864996688540420142715465789913554682045147981457803142738983802406904328333038610912314496562857068155917567956204613266140052201433235936207790561164756940146407396657719262901992443062183987077106723111808212944471117358514344274912368975410886793789439853551536279389042489129459996693379659012762803480935139391885037606994554928917747392455457526541490220477697103538913402162264352252997981969874042371785479735101468551956870033768302230961362066132806070632365514998162846697292514393020801871000622897823357529628284211916373436249644435708741220314439729951689454009050967055907731424722259375481639222299720943081681441908867987756985080250748994583022436916201537013164786553389044476453650524987034853905232963427808521386599645578275991475092078264410070365352436881501676123920188199898638962294032140094588119073516152975173568472366019773890336698082561726448546406761962229907677330395612817853616267288652738771183968404241921331997015709168308788577222760857520924745204133167876889253507350975472135221265457181027214258061748671284212149590557926381950475271763443132311096046822007139281890912219487950109436535445482841623483278759755765992709992705887742114299258023180335568004967933380333971095078465723978573987548721405207664021448414641340853405631456272680415791990300119790406192701167733226086440462473117806216132768030441028122620447095455595943318646066095267189688046665660934425390128827679754166289460327925010844715392781263672273730017247004517225944025712652095951121714909246189387136880955785855421287746063072714145309169433147636891204157561520313498137104273281647839540009659005011778681289632285633977481455733923303201285546904893382704735210023483244300912830088830655853197475452480935042756126768318759947154700617872045016364064224793517053668079575185438131695572622415868394409235682918283705232924439658350765600931053701464702513437540287170019403001545047385488039521189815599380516707242362479955393525041423682789480967510551767491489406268788331725170382597977828415298684762552124605003452988494786304291062306524436708574774745225657615952195257256957542845229291911643216164444846595812991277007045461766823254095400721479546489533294759072860868871126498283903256872305046976467471147711699385062136076240278643593579119476587705626784449750734857055757211677758168190240035042004262477851660873409590291518682965487400065551316283637088653399595609819619149116734251908102836642265549912842761682618566715105754768254249000689137754605480007350658622709241114246185861340764169133879090062040109120584752682771077229078688426244859601036701368179909327593442415981513890720210008018230997085656217032670812020079352667169802787249592588104767613197086041436149980176032200819286460162329956585980759492903137700576517033822001881404017916099951719737730720063398879434257777158355066616214164916165856178249751451252443991467180193743967305034804760975272553945353876925841761837562469923350404388297426376858266137736566946519598374712101575370598929491061117555662165785503911407370772104466114586292028365047261284404498641737092947568624095902648460773791797390461497040828725212964195082262846853199633303889323086173197609075455313688077591886462087716581140100018926672928947596206043779627528471429974318575489956515498609471389786704148969435553794990590340656554903501481418513356467178008849292606072086464882679965601296881570827198952059691749146488096233362885268077665409695179887216883228446148172874414016510465986985285951021924580682181333538877479587751329751192935140616031659611588226128572289957554683244707821912736839543894899932626778595800299434999532941461274057830347517053394251129883384014654901238099847880656552720580433329729508114644662574343629582492265238247648811070700664636938288412643282492433195802756608451605570612655822114363099925602414326458672501314566938924941158057858102780120848128590232346036255274623185465726382328465156561951207708219413518682000609418094654887736500444450379758955122661384424238955107786208735163597661110391455538255230962765568809759115539152939927906533123623559913408955010040738213300987660190671425613777947589442944219479217945657039039476893090198999438997318284769028801384006171515193397329100587184404974783133599982614999065528547319518924692270145593453613781317506140348020746066151861040486852646563537984492424165091311730606345368478113330147420445487854663746434431142270382030159724199849871024193919455188214147411157769449932074804023674212717468481689543598636008177728151341512387762971634160685471969665310361289879965668744552019470360259895384726478054817444901789754379942943067698477506106541779431281934922549594344883490948181604915787770076645879203685914569199513158332059205273086975048609754130246452047911201508961688715272252418861125416333970325248447031688826549083785071003599161865712725298377071326232660495038934183668312175483402089603960072686664731033974372321688159427668846795184377611305415117507588409934574981934431621958408406136084036209458255545990703261747131051407939314162652787475725435313841040430561435887723840668192168332059221457623202195067113767860609043956449802944728457232271306325986398118502658106135395644758226181722418694904678648089939487497255492846915336122545253337221482766895893031576121612209815151330104827851006225730528472398682112688998664159580351184636861225464794185383170826293890852873342209500222755583249052243081605862966475623868593592724364431871721487178553796686669917857243841809466042657803494539400566509990124808247525982232503623812713875840132699810506938976612351616205802267795120258763887037441489295922473544544370173248702772646769484806230976703160676331985133863889220558594641963185967429243605455850818629413744770126444567190917885657904355414925902041551573941560362128306891461875132633284505963273670569438513048907869005280953345522885272381149954209253937983854369057819961170240396700551630667940812261539502166064958270093426750822287488118674160858766114758360591202309937531020544441753718618445638579797396004591482749623916853704397581952615580512755994736085080407475843742540278470197126703602641934977027083781406799385410720659913063258378370843860391871184472245330826179465599014960164489825283107850281397305335134144746211851362424898813412311695470485210125143870276022250099291057663738332629394885565196421336946301839368318082296048965380030678384425220937692790628118958674950811733396053710258849837288901837513716511954424750684546714021244879213820404543067857414251225991886189107258907949724826654967677907822716474535742866628350930611597952351604440285125085719634671687587046110329203566599601962014772815267017319726443295835444328533982655626671022438638859890107214354394393435543561302901121955288613491332789307563121360123899247453355973372958799394344639613897736966846115811664801946715782326321184531903679207864827747387207846443222855573942846103095160343256442545400303421339981479321440658640162391579610459608203947821136219647819018154722263885883626482679117234697510123889827669853799827072265590423444787668007282041772973972976572875623260512698392017412805097229313846438856718272062957510996121348615071638352072190586843143247858722827587929815273493308220364918513265803351380146366576313822022450785428864833512396462687615603249513467057361557140923080780918557138317799992491083064710051846245668767008657084369248396072978470955869142211992769186038134344478929862107179246038319441108448990589443206028796692813532254204873894852412688797357979155723952334710985422984235025481254878377682164402327053615428206590225692085296159928739694215346115041918823081521573881575474838525781612960297519628855113357033030385698120632782532736334887174970865205726845555642130963865573009885867512644855617329072317535449824550738360005271825278190588970334099553136605443156884421001962501979626118303441557782918490238350062920882299000580596876035838902827999711595169518623294203431213254115244879259126761165017484227144717468933615472291064194896767091109574616623739540347137034404684020491089083085360478822857885737607631329833541970145958672461311085792299647793995510005756295115324090959882305675159012423559112895801011075788020811383942161628003622232471364420162977505363600574945700511810846151247577989383356397774782793475447260903839481746373626107781418292561694022410630645324468751703252871816153558881170466296523193057873052924666881895235528800850651824650974568193732087067089357160126177828437816662260414511832698653765312966222750659936036073372111378955075598024969803287837254979163646249443976868895328498747682266440565588472149011418473212968575136859033786809566880766750680438347518930015653863800545326338423771237587322625753458410050400247042072787659877016708674558830566137377460539563459025437210113889872925089808021302966339856897570833726889050818209758068239364845067751746150112423675228907420687092718289088865504137901989469487380177093987871582135686123953399583224936354990311084823484954497529810524672654432251783439061515094692596937477347758364310625677204006944570112039921797556729616023110490666440704424552970999275525198090656744262693486504539491392871468237492473849162488341549564226006478866414402913872601428886862978359616838074655205007572495923842516705698897812218190539318692720867236479467645507630210912559544177459866572993278465537463249756013120064185600530022917691959857220053035972563723665153004763583007423472624081547652967959978303632071518502930192240658190211507973502465383384524967521408165596764828727333590764012265834627103017745566230441710511058938231486854917823906346956857629483960245072274778561193596198727397344747911442505745266164696469099657943929122981587656000863283197203448920763739416049875980007595824868392172680717881386857026475337754632196098076047248759226151371240705295652223179593590941563918341399893837200613129436354232827543688967074400716953412478251193354272882096925495927493757197507296086572787364415663955497344319505348672941103737823370307892625491174002760128596385491968804693739839510525247336214784789194363475999230736277044970005350438743055432148034479512723565090357615818282876775815835322546397808447608928969320801790277799534068480505685213479475038186584751565655318198197358655975188742605494046090730198339077186544513580586103054855773963601877965840487876230323047406943193019626904342054847269639409473673877250421718267970440008806834945774400454221652432882286369377942803201902762383352640544854455829870986903364119246187665156074996333680292959725309218242827069131413080544937720094691615074735766131775548157913080668249782498097769216738518398611014563915933782628035069531212854644271380128472090969869769611700265991493689288123123194586937001668704890210809563000795568827752841059847002811428586579642558831117399718070810265260036625389584338332977634665299059169763404159459350591701817256533119019172840600409457323463314691397057482139876734068148755354441370671832159136123573905920533982400624600695436643691582493715647531433856737791684646162293101274200668717001787417162439319215684244062374429203480598186801477102888858750151377762443914156711803245055758681800470745016063058055453221888476235053467544136529061009777001477992359809803232876117024982284807313145451490097302384972428108411596586447695382050473541418716796594872737947842404208538671559511847342190714851974186060151316322496485329902255953123619017477916972424756606359612662757604767929874288785598256009875698051278991306680447546554906489374475613048567988255256010431245104202121560608743956684804034136048210574285900761215785132083263396654492562595621518971745100624041977313054057746108464875802444922876235201826882779535005594104370100760728570180660063398831687191744599381749097985251537849838440710927080740381294581815213928547180041175301008590655336214556755392462300933417898790908414583658348677980839660242510955912182159810215996486404637504712159137107859363643502406534844759449995251385912457905745490363489065791790959080776511910268464276220975305765982473958928171471646360092709666517894957133391232678875043162696897224163750071885316940435117076962278580521112267442519962916360703855249608593412863079521145344550714575613123430075122486159304370683407749885350489504420454718988982558984062518943493106699074067342313807915649019756845871031221962324728553375586893549286195175289017216660846717896891154518178305995444312978016575349174635722387300144267220796867766370955246599491666568841684471144535782719074307329717956484747639464966903226242168980412889614853643128872502436573972793470627398216100639934312247691027577721558385584797864585706278446357165233501068219878934276568931889629790716748279398090342038396254242282310337434464207249199304413024510044979228040793395784872968446271717885013153522850209343919731375816231975139487456548438895346215320118682321165234372531973750675205331530667610884217782667083914652822891955737101438447594505219154731871474759573518388673795986444532867038579040781570973515471977215424199320402655957912330845991262866302041638484533020714623331163194412810740659219632784544834531462260161161952721907918296280305593105181037033387240879543840151841684587043322751195456318151882319992795398604669250095302694761030813227881984238239324814579115806168355019134354303894274231766142343398102818970119087211438050642055083627624005964412935231689981042528717651069701824780721152301547625187861396625139963446778551194374854344140280809635027297001731652340391647012537551023439544877997094953950178064142006033517455843910664914685604909764166427585090574998343302253073462915757211979907326678315943115394747254549640866426482991260723833073908134111856299181534807163105041530466818942109812357122353934424194847195625666943890362841432571108366739511511531992088863352928446740801111001871948314128254474030722457129787229953564757481998350596444770066460063774509222103366378010810284630301256772041452470287228255262375865577509404797856426906358551826081734102754440545946826153508772895973242198766357420190200013246732722665949257013330900556509812221051232680103396439051018039312153286600979129720537728340455507717299212209025393632796359909621262435212293365917476719358296153325165034573222619348313262274995931682180382266172396975295502186193394797524667481874022765693944116243009454050950839923958837674695060397239483718084231801967961678553427962356288886753067723900834232020549713424510107862707745754300072354426131797485103140423679827435314330909879358379797475150062901069583660072545481585107029456325808939120827589009215440184869170130252353690192500649515315150160173469892506264737505091282670342900491767250868749947408292220923808055398231532500928355791340292574395362138681679924343493076316132351337755603527252409584142393440408953971465901480917798750647320170111129171835855470943118460433948204619171871415397319930485822735842027785108496742061881928911081099777568886053410559982760208509504515000976367497981718178919236702896448658762402230213528849193732894439907393446242762137120198787221245842529764347439397066661276648346431155646158191350881574869353276493674342728639741548416239214142085100093402218343547164018596852965065951321154190851866370177018761376913638799050819690794630130608319944690109948371953530428900619003704739926447386706875904820008449504761040146236561589343685696965732661290712091218812462945077399401657521883510901203824940615353276582753127709479984739440530255828050225846110373021794057601392687259774684825203303975796907489587157334894288175187905619380923280923276306720845644340940210702262729453134901499032729319669903841954534817795856680855543897899521593757469273790800762310967104596223237199735398077697441474070744518458922819648773811014004290732039865300656617009618972907063271561590060294463903297590052168325245490466030760337116313055883085445658746247893704577975514380322112175114573697853539860293253973000232604267790384288217871680963847772049889406562951734114723082103322411638154096032380253842663199747632601820572615232917810510691795778911588996133312462377080409515223374943024092791683825927033054580952831879295985394776895198254335399403416248172484679161818756793315462111963780379686869949366458199358663524414275891948044070405120090094954219955966879826269778924888683518185645937255174444766232101234789421168180555623175241961647750748442287544261629414512465557701278213547321583999627335210595347217148272420394449122182431033569797925176501926391437047163643319249540329777253763594551281920970117472980358566161742603394574759708157718673709369132443499444237704515612755533749394355674930338497673654691180476131193933866550607269213265140361728219622971702973580299258936832466230012136673918299164109408817449562771238094390952376448343755564994697253076540778572476442649187202364505139956539289234908849641176140448451367870006979378455098690920048185854556925002924853190063272056218706698924492462617479584995651874720635631735890644190431178522116182054462052774008992503116979791586056884716364015810081902512579784320620874360490872378692471200129329327380669373052843774930267362904697895097330583911422421050013648192087933370087700648134842538688416962276032856690758144268483215539530322372181387055637338014069047633916053289135724612067366431279129899123098185761779744459349163504615167181202369255553750671506320937046903532773735185444659441685940308409551499060310687708498604965110891012208550743208456176725733773258447250174995769245055384255559630613077061420445829886182942126798132405242502627551826628431886494849358545034258530656357207362443788491700135215172031027012947927641110561962661707849157591995750598584302958826050613285483047359377505450430744081944285789911997428834480856196472890281087618760569917706762074178386595884430069063374427672788307434668374420591013968300190429666231645986025786970229571002310575480187786025651577454428512739866051844376777113225597308969017290973230986858648357239915780239140889123148123764952371497741594147922030023116335078671122721930684750470416489187560505641582192322064316389922628112468033305186904275130880738638755944515323020631392849174115654856012015151142281924589737757048684841298706552344223372740728946038208676986219076986635587783807080610691373906989304471710855923168957459003142196608437153849751164399592842465927221182433839649663252648651019665636350009717346656590851552127043757183812464034302316760276176478130106353367733680393734564229435254540492493423834262554306318077244883302784495699496940485412987571032648676216410559768849883510249313560841465459106916658368005479486551034144459047570473593925988968381700778734527005036137711987359615306436776992875703330332694271961251338187214913267293896450995807662574049409695113457881669366636854021333148976903660171319713836893408401435397222290647347865744881704388479447604121990192742409392682069040688051073178392523856498509685528691922288135762801115476451686571584601101198768771308452385089081676064817742949690940589619280187427080775927640144978259083335579019525357051037531875384793583274449461327625160987283590404959261593767059789106073499571088838999925001818498211343182865166886458967669262591728566020940843562106237787983798596209239345989896116270791743399706656148420330013298929496379907817631219535593972389907848944949588557163030839463880677042894564597782666121253505862738308731780220585428687294760365251699296619262593580565006237249748331491351936781253602767929867947567266089944984624935047109071730951416051753220138656121758676230897851800786486493598507003021105271615198963594139232731157533963443701842711744431379724540231153530388160413180008449720769717455775304574834094065968530479578272392528676243120806447619377137224394959579136455647059722446578782051391238614236689244469222078105982843589562466463212358594476600798687694019178163203463267575603312987689144898984599403857031580416247745384062706970705703837941889609083253414889661431576335970773710782913557711484808927742790270096673568447069514154394976644017144952215796570826799604502107824011930641603454824834422855361280519060357872654653993908895441944716815585968838576585003985538779081505680178752128287236261767132087016702962581797935347441954189499598803336358042285374467237694551762095697329958153415022331217602144439173804946578981737373918048334101844875844711919166576191651686739337021170639748064262547949237476021636415768877817402728241531946136174945558819011013324697997206060998190852072488869282687743664551082064523730374628576798167710217222719932887540764281289492703080497619979681908227105919348691871403322099529880252149143914251230278887610450341739502686335253428136490763178065041666960739276837694470961236118182945434056445527417850899653408499147051642485495957176933223253500466007678871527216227406789150438489283209653337445000412111312667061939202938460496447302910152554026175195027207887880933037124054893908879913077048704827752606725553496075922420770774550367511524272854334227160157957563771687089088489801994647660163725243916150713346506796046139773745988831938555862777403095471785590368607075528822469913223160808011537649332826079654245649270306840585773074373311688136901477537522708509772211874166280554471473491831489358782624004585795481904507511060663216146035900031518553395558723621183854353279294250641838322641147484654054708025632642850267767200079089073042278356509135832918131519421140957704626978676006571616893378012429212595437899214935140161617496073150787514117501208879769841635318389146146324769214508749993278759340852314504041157221521487206784046872382088516480585302310824492153174514886854335563182807040815859662128454312724071489230649382157675563514663727525773530917874479423339554924766917149396706958315160789144283232991138025383178216135262748755536349503978430981498061294086437424941235715503687487195921286156352051257030972910783417010993086484507110016063498581126908304847905631309514427859378265817753534411742865765386932652315679093147220029916768595770373888906049124530922444865416571305282212629620687006993278514894114061296968245803376819962958872410701575916692053823486238186717086339973169675733957815270091072468327848314511876242526470246845038331442454585867232223182259024404768812340849490372886618941247065763102729762110752240664274557986570646395097044928778323197542072324253017424267305322001671352504071075444639055263276412320180341760536186008652376633153116244255608826348916453825063810616798633675136319477505265886115375014122036246544515560282611733782037718287648636457665128328523778650114557135587767292013961887376218349386708833054390442985219821112151854514622046214132987509591247296341205379401964665908853268277904826870585814935013084115691167778894031949395688199114362126859907443436974366797195581247883641268084998360461102448943557251253693053323685801865027029619017122605296049533693471304093708184500072768373851537072231637543686963190658337992569153407732280625661006443521053132218888185427359192380914440425510635261103793461491543618476160388357277955421061370923684315313830583500263535169653178219056472460967734098046445642975206484217337144815633310464969836848962107914312027868458741921068602846382521426363570427969832162104723313733550844161089594542025036152950707047654766270595547808656413169156835055926670933361846758072762329504220110487891609494581960397433254957536217208804623767903665355717443590400343706605964158066022938339090991892855041549929319369679918028330961657556547692659782542739382263074052266037420317431766313444599683383689630873006932632444150022633203535851737895890325687883504310559246747380880073687865156106544682393693855438677899435238205678410708060509426587636761995843334658455860035331941589052542092150238868109541848812884482739968669681388957315616655211412505365107206304808339750843285863808254672252341132027827342620166527125304554234933892370455838395970730430375301072886411972342826667979120898825381563830444466747012706490267679958749849716052083295268342505563324360671619345113125485181080349718419265060130427951252088350768063064829603254675255783759485886942242334492960189020181400728361152140730715083670318595995210784569259516906426739193297625342759841438690462990348771865278620700960607308830291622367591634896606552006799055093948652852984957667592168798131760622312687644594820477798426615477594719280989858309213866120856353866739854142127066913927944101412250692450610159493120589874278682407854232133245475467349384129525175328103324248057763500513634038962314005046113448347185724392796064574099015726103087845933598791866620829254544805225822581000501127846026794054895739493394362848089961834922783495766328079613672805543249243462582889339327239281372126186314687551417229804568019316326163811180974639573448975906454743541197345589590122865018885349936823295963052432060775194595817053118371273417087425619286589508326447189961215351326619744673874352468643054611040369534826455617394806888634160889319510752995108818096513937458710666088785229964178577354848928729707758606175675217991138242782870312599467634898890874555654906053490010770233527634715177517779954415441416326573614113307412589283175428528386459234301784494033282505971617671938084815688296256726819582046392703769120009584553202056603983348056182119635925354157609181131187599530727073355235804560826238022666493890198944001645874838608622939272424207352119256973893102560115546347498023893749561328719609153080829834220748722952134496662325323328359857045297054576897698953444573781044874645490783481329589199984022786022385784921112832365545481756946198305429901591694300001628140244976541599165185331901933522828001725484147324723854683607085323553514266825515716610158611365898828762249480724909412426054280839959746987573467403204752690944303792636997934302845108897612982063272632170321051185944491508263392475604505491881017231145975990591386233368726477957937379109691525162033068326385187610891992414060072824748803400677802169825051071051528107122792577026540495839232094833031365252156573275322083695633763886444419887023047162100287267695408961626515752083025402677097415254666264622214833879840467933914126982768487826343018511031120329411738214883560898143983790556071312177895662135170130328334139678210786464497378625914107449315662587839264160913519564241621495395319161835233058506285833422477167096318508497325193486735673239346939147685814939426938116646295604755504733735313372784039317753497477683380136981255579500182197719056644827269351850940402085311885307273638019896006421704872826734043718385726679512761239510857231266535051799524494823869299883079783423378694912404539942239912963560567966742042491166147197050900183490101446803228598210781812372468183552409086613074383363717061196426661119701883994399178415327900981136011934916633845639963658208502701761585042344724687282563657370240624986798173706317531510819990389914956742658053665970307851640857953214803482477633457231519046784202874829780462733426149659731261514049920542048920447825976453378556061063459592077086765689537088490981152590588140088988905538241460004656255314057942824210940926655147957741855878503050479291842375453732656087665822874234745127180805267764697748567909339718010833263029570413127644850214935813606618384918204434394133208459721218488306293254568810748678838341200166495108312753213228222175307514637110484558873593080222734031522221088590191797292720187900723127091570197174882139725054587555647968592920136183354801599957745627431927425016540462979742217884876870447980774611434392867510345716248651440838988040273549173194710996592932516714208000990797320931500224632782008058523101856086271814335811807489199337949556572115975675014002328550806758598169579661241139066511757092766554595473490501712312879051136338055183228596613316694118865123733643234376141481989365715548846463014608961402248632470628912865247701645581468766549521462030614895680693605685418599513783323837164875125533195761587922553128880432459284231165132751326732539274882861244860313322157613006469557067375051955600735101181843314890402238752982555671815672048645656998265868841313701518679920441734329834365232967454856753843818400517176627706558276988137641835278841498869645271400554502675336110360434152221870269191244933248121994460042862686218318982508011191047080267159088112499133116058547527358938663704969893896211357944641752249209665264793784447304259458988389680787706187108983037158423378296663677872796485744101641441187941272291795788617805978215310634352643094123554362368311194983890338753251412787266927362565713013807147411048298842912560231103525986491784953046491973300141530802721490061548886178393455192871332314158686773280708522310027056323784454042161576298591833891578458685861195239420622811234337468475107294260343762639757698219698308134545168306230502302339187840172862779206501343957733762152678881852073743700199532687886867136300712520031902812981461596560161181623974561351322023411584079062915902886396034125839259504551933600696523261105496544016618417707900378344195603124249250798302517735050432319946673938867636195086675845254149998835329938769162913607514890495763179036846808258801894660458749489148052724669180209764937674132647558164935505081510728174214228124513993338957693782244634449650331264713236746793513781497890806902323488521616994670528696417245775726287083014943784307066676980626472869640980983467881939197794693420636438898801111605494592630928166758227541236103739326530076251129474724307054802420981242259382446061013496586940350847965353156180084138399630146597735878053676871933818297063493143085325487362246614613844380506418654363254883993756035998796401945563639649438815580735869553094469704173101278004025850236773359704394835293307902341414928925444648065370255507572858045533552806507009570872498016192758163822019304505130465319331901308049099607720117431161828748535223072245345179683774753542477558890971190859665502237161221085361933812864261706103992427201196169490388136618902246039309740048730016743534629302038006620370378936288591412064440829935575906656539105667224325994873795632062823485909456263936364789902076159642029314128234354316291953980388902322487894331257990764910870245891622465612739088655171732988053628733827980082708524574945169314670554664685192952794526189679002449522495063643708103728878566399826663077206134176588972781109256590969386215807798346670702804482610895067972571406172412641006569790709409392687326364945061780956659966043243936569195789643669349081941723744034505675537738888552562213001637859075626355181616023495353404197450463034412971082609500722436878209305145620544830044859441580562108770862853929990453289357804590682248853000030970987248870863866806967415213069480054704943245257060451688131972587551063381833326116980742948267771501838098717477572899253905530452122466627364976073709783744932514283765574326708036995959543537909018409248118452406673357721654548560949375550309121230870337300445946649976133499468284149956277772514809495818461920183985502837322865814493581825547949702941570567860153470332418728640137309940608771078781911328310918032873485131463881845275454787623885162836593531052250562365042889540947127699594132746148169052804194701104411043978691941175742454178372203225420383368558091542382766672282007549433724088183315481630932798641626042996389196236556305979313076971139355700823481397698799496456288462981194152870786180438142117724218458486926494725556167624550913078630783434218472132810307704947011081269855109311671241182411391401055330941120394424233607295911625364147430695441120504768772076476916307906344792364002847475268633622851797322367611205654798511996178870880147755452695561186485049930889556607396584779401312212414817935782044442359601519340408620575083660507370010391343910689652669783399541803950108901977984663628593844796195676915111452652201796537727653702666562310278405529946890028598792618088649664667583381435381826646240729562811915500238338233651171740086983011753510746184351786160340381256748861703479196806041297794937243139561368417104035947005793336315596855950302921078952852436481114008037161166526102940043591854561839436312619020989901429612041913681221355176027032209330271333728866227081246090056037013016169040148156967444032144398516390428254473013153843434739845992456359381220251157283937681382144693782809645254418839222878087794798249807952928070043199549596350293185386918461196365034180131029652264413917279217736490169119185214561322169293981348846367926700846108464726891104678515215188566037351282367624415375057423832033611857342416551128055914602112371085942864330000981883360353731264761960969894422797769858071577716702070991194308278981253252441324935497530654726315082214711815295004600061837688173106447449749170502151719627460491259197119423689842175481144694186444941139205429297503930717842883932871493426476141735115188286794062839187327045878272532856597879034170711520141020265792981421814390409454409159747123005072943439172376312809675663767298044477791467902885825302280768252271549739696791382440788648985828579558688003576912225798224971696385055297348466532738529927853984801582020924814178835173824334759094807662503859931264950694100691844567015311037402760794705662658399023705287826760928937816369640832509154254090946743452521062682138713259157185223768852638597120788040107710113592367071432780163423468325657159674905959575259640049736515527416325772729958337716732647852335549684079604470350253435459675906115890810664248990268072403742071425048414822756572508958480618591557427340143658920931596004526413047433559081525906434726660898335983102205294095763233776139731268426233441881274853782544067533954699456526612265081274429897406075421662395644404622377542371100947153958442308590762705572417919867843192993933680817016764241558050310679313660239015295208102569152720278669656879476281319552503694079409425313439853815190043321934553912925755759761735455774603265142007864068274545469303854971912980942102396554503106223041864636722210954944672263101142058882913062258829430173740360433813186175445231907384122818469874020885774764439141654975017742847669449159153021799317463459433583036021117012790328360993491215386331243129210672005017062422526059016435823202743309812649442344964093894690838826197964065783723916360027837905014905725517018620138434652836659186143738693765960625140232979044770944933997338075012028529303825074138113358936330043503942087109254828070448824755364146046828517400100459579077360742414358562713142719001175492283146088438860565362864014323560628292745830551001536870626336038584794242674570389617022862317748106231979501971440423358802327462138271334765902395910482530052199581137471456101765349779022959713819759137424173641937197471057851546656101929163780573875706504187038315616680603310453594109898279835695801602850817971766988389211526532217547151520969473819183555337776456019206988027228997702004722414056419154735227720785464518553328692445337815825757361115485331847972057088909451055903463260133111566981514657801784523860807316126510810037570455470066874523371563056321506343243949288271899576076580511352471617358110275266524564193751251084273815004324136239357736005672424128544358911356685796707907360234011172001615146618427647124203415902941769808414641237688602136668950427475853716094761458343907345405542354573000290899662179269123573404094454813428295036731338345953882469837991222122227935175818331772355076012184878417919422420107068706385414876426596394389479278557808163023457679575447559293181464359041832311118497524213775272975251871359127489491091555721814349115605108020648710055146764698789743563447854931378569362051624535887214000188573372184552169762117762568390176390257371902644120956911529121848843036869849746816111858061513344609780603508448352127012059658034426738751715873508672034171337480224338395720127477496814210463198326515389881453788392411935327281351756688275097919072597081036353682923858618487303883550729172213791182088777956463686170621312853949017320720567172607503383030850872569058643981353021862323797395015722274938886493267637932905456417985538593764017434731237673476890680725145038055784346622589643500982279849665469108668614886060936066671383822204765027866264647968788063781877918944005816431502921896509976628168406239988650444573384234033540532990314329753363696150978330378448321185194941866782178828050464441934333942597313134833423944643517937033939039673691084030909191167997990540292907160561408184314728813856704619681455694106502071610729322457575632893790271923891194147579662409830774378485963320186151801977403852752337036775468371055543968220173003965718888058051839477241639597238736850478505267561157758106677638950396122694570719470377315212292831067363635132670771048113793410066590534564757150872034087723504186676335151825891512426212179735032998577179360508476851157764804475064169449262826809845106575738983530057237821837177789926165419607291460232936543031519175988981619190846026239586731562845661935400232693703321502438980862108912153019258042623831671091776053478322900596119660748543307957173011205338303210903001879142678404202424337395526063029455689204021795102022026829142375729390621411825764153635570757106799962555002501574473696791453071047123108300643699191440253987791825049270414120790827124716567439498639636522379521753825743472035101910403523533936813014158684871259928329699767837531611486941721543616044856896522195161396427283983291638211094299661483299488524344489846981226670321124025633046869926511338466215092780471777851629220429307644425030260961225900415061638884940525488758207383722401890165202845660872715249539961910684191635072677704629994681961025967687527702857929981254328662599537162633729052223585254186828828488743270545513687432912060636640909572903438660766357856033996344386717947692635842459522814402143282732278310219745528061253018851256759356225637000138041310707702264504607181701664654013300858717041624369441678094524502825361912968753433275103547533814620142690032599112730786085538675819191596244974625451649784440831776722778567286250952931950653415346749818461373129319820294168303101346064950316012378444910708209982036504207022624609532984290961394531450848505630872132018697591056859738908998292248651871624138781216660195849968804989826019595075224314646869716872312826543097788595566646583420979012062684611586366707003231861847594659834274310311959377601888757494212120592008926953746872107672210774828280714026327052527607301541401964779044662646637700394604833051030337215493605641145265708613965101065373112432585188812954766792615809783619901813801080217797972479363278958390679545480416859672161536342210068834382393022478377800565303533682240155324502028535456689715877639216486863506702783208042178842660818348530352741612408393864431822214867467746660331358569841765616195505010196700819814449820242815102431750445039278894277911743482678953757012296509755462042164958547967336508240337223598181041044369749508047830056256257788996611830969065322568050483678606543565519139191506271361071968315061961089404793469673308806402066752990597765613828802054485992309571557316089663438387060710260968651210476132414453385833237269264655059891882031096064038437882804074101483548135258464645808199070324974512869394336484083652893399006176489317935523499151952799798583956335100163142644595450371529293336100419738140216549092836213815153464353592022140444020457875830433036031760931209822943459250492334379489530244594362792227328047487351478623817491577894756538984459870824690057046166042566886817888954919145330041830453329419867386495919802926567697271697768779792067817638571686372261681652924155291507651264293797756417017231211307235465700503485909439498985690699336698798827700255660742357782390446204501290903895455668514721992681703032197329411655422743825045388300148783120050845943642663338430883622994470994368962042741488353114037630110761699712117684777429550401636301278068258293004537875531645024916374278583757296832802000659808083947768126216476578591076782108683927222911854673425535725774476676263883447235960925618724811150236034310048367083974678585443540974413859063155677362354180720836421564836362482016176082186750679509751412196186451183723007840531589710680450451638217935071927918073713973785130037000908808833942419780755429041057085720563978718120185400615425267346810045395473587791638534605271284123997349658037969390335644982227104294122736265464250412451251444435829760603861774151673481247119216033930890218484586675551148503271899993076900900623515473330513926728435828433088155163847454250297054946338874745071414111754144421786156717535481911171258450318544578440647442356829898410455787574930448988356882544225342786682283399156583834690350283371770283848426185835508703491322103424318925500377467189400379056888478758840269743965213663326448002097575873332429964081590709898439358942820085568479417786061604170090668768294451922787622557900712375882258003263397893304516462747233497320128933760300163397558069842059534541040178252571139999429181301725300682277621875504376365161146237673687855415048615832389334746616802493103874585781450570077017999912539681566541782123806428735018477087718818155540264485737483060197913643595982080546120437665650023771355428358093449765920995250661136687145965275201861511867422718859590481371802371707674841733023366858317120403488187882883906221581923474387714162604466968475275878034884084019948244518829171298446868908698037504019266973615618112196096012575723810306256158626443076789511659149886518696542361363735136708259161848644955063678727087066671387553551022428213097899998967411568713496928952936742780005750179166864707415354152672432939929791877996227348213401310039248359441817890971498664723797888347992629990919270369199072875906895863260530967984671276652041351576743687058856554684016863049292249619700640238174678730394762431199566577508170287208711056779577253821154686439012236486345201022759924731115578569300434438975302887525970033895627119734845738343302270429414217468810903052010834122660984588497553324809928995275602650053320604603640127721713166078851610772852829774250487149158944966757985526567329500755855376661584813870440912846689398399213988716088906256054985119146460392541999495518556968738909260740426665354777633259872593486806317549147733517904076229629463567298150092731965960622579017307086951486395871190446170303621732238776911972083284701046026843167630501083470786045567394529742925505608199071153792389936781979547297814842471783699279622793620103238788121897532032992658990905481951620978263033751157899292132658739207322568385841662910543702388510207045155780500257526825010045714716668193264351157374150181525626182714843325934174622052232697719464522776508069491877756414037974617874364985734998586276837366836102236630741712992761734052318231678592824088337802533450803379259402875030922599009599648747528439080247953114383332592998944008988030264041419814270789644208231873221076196829083970843467440309235067264352955096003185183864835109760006040364719062635475423820871146584678046847601976547403493542383327561791027847927751836935964050393500405440418247160251438838030221353721534207692478248888435504875160833231851139569726053435171755398330288018473631234246474880333695917188461607212340873143913119345099540641647611253702187389691302575766267431951648970432348738239093108403527693887591203606138292367629708091547856086702487596209110192269152828559560391641391468408566837923764368426657382977809537073430247607238052243135162901273723522974895353277973055044393242343415781780121680961028847391380023576505615728090895347323203659848871523968181718695810689296601621243893052707323545947270986856689456586184442365599798010173452918936382102130313096317197825168085597489838387301585523562049019071257807061642993113922290687588251101857460481620844842512195357048924297544550569292880667062069241657240822826419083448956234784186246906124929020190974294445266546336758425030219812860920394773280157565979548167902713226415754955155041234946565390104365101179273372470461425114960289712149196463493345563331743833113717363503015608670066839855626205921226604775709137896184992271878867438586616548938522735790162686897686822939596540975720323302175276606252881342896861718549219758639887330409893017539256189982275855281337189704688595873088766616282261831759650694738980829259346196592377174078113404558468393676983141320581508441983258232672394180873275089652696482931751219509692904142649581020481647173765859501969552207503986131694142577801602135727398143974737787132948359389830535219458826143107386103303852473270225124093384073748465293303248194132353669328474453436710039675696111090669500293834282023397407249132978730459247216746692687972751143738611669880156304026729762718430262180726150117591340458135288499668456486645506280128048613246099059247392727638134014352039041472687782009756611979151781546733188497078670131258503633515378415916580100846786072357474102679812055069577034765827569918859174498449372782358942990976279701821414145834364031229997211601111037875069674483583817818780448960037445398392505826163594286598608306314595810034279667977325811823116211143109423605534555713497747030369740725781142250831640393291059969362921665541627174990268290594490335283338644631647286983769458417990530194604101029876492396319473155861553995404025627952813841333922787703088914196190739210498171326337896203632888748550706272130860582137038091664504511059737952806702290081771333509264060496721359826563933872950399428143539444893740743938994962853971031569822448917666948783310660753476778529267510317186913809442214329914189198810709703270050229866209949860989523854013071853915408259791031662634547773218598769279905416215172555089396708575501787846723213037044723558682085339570112194673181341366788100076233715198441982912783797408744855120754872948754716614302017372786674336125120922811748740594426876667112555212972629984261916269059018978239137870504279805349643655446743517406055346233256070522042030141675225096307531938628760637204862789930992497149728335357048058261162399292679157607650036483408553142470423903247787772602099762804385669927336035270958568472919483382661446367572768720358779926718316746691336572906010062981381402298751305268039639713953173514955731971742144919003241746141112906766097645309369953825325416389445705243338958781294215905009250267597723202256109495829508131737007744248267499724293236267275896039292289110787267608653582382174160420006158867454859828933065233545651868693301047750266575664244978097979957683690418155164168873957153870266949775759729057415793587485048534062914380028187552207862957711812008500301132612164476150009399683780002664459236709819696649156102883730914158430700047099058492464343894790015798608337329799787909824396475742788542782024872866747163645196070494985094444921101809895406241078203713324000635576611431008233137295033118362841273072722026407088386229221844470781019432800540046800932354079951566800450608072963894155443994247855648186120504356696411225331177451608033425707944478817044283714889872548559221395833731903382290551421149877847165323107465988314425765056857678725050337461751525442467858526286146733313889763867493029342177065874632763529627533253475659698536430832680586076060039157453352322758819998428195229247239007977724291967100602792387183499553434250788305705574546380898240587052041715169293424434275597571913394537417284661796529821657264356542281862787112067672514564081898014263569968275170255658917846043165646950908328657907870385835427482105946952993563273938479473090812601710162167912116954414573822015162828341391667292819914440385298954425543616798151158157208272383306801477531466629408147622193577948419503126291353432611830321073996487977114287629391906412961133623094233008994033344171055219524965913268495665595054009117443550630258154786507372970730145185728888360984146905922542880804680034978750537243018369038639275928927903665275334221440499353877848633371375226289813674005904271564470609758663870852318871017971100508205262289225105470884036272905530751878706881089550723150524161822872132002403041864600998588698532803607428643256875460430948650917622296128180538088183406037236220385066253294740231039347866624959071495167102885460925238579151826532534257654798867104300239564712701672463492009546152984126838628015540631352507598807627991567387337151041690889991975798870780013323420387218691732568056652258077432963142171660862809424620427051785057244464984743523298043765635164400117873674959530798851490418195081634548940215356112508071215773023432948429375600916214135753325753458223479839510531268999313462300738219527193857116170207060803128657813391595148501310402302338869826307030449016299686603460706641059534141087211590849215648945959985875330071522748907094436062155991095209435186717858114678102468918323536444821320902936502196189916818454121123994670029661613962142926739725117049291282189123771292485036740139762583056495595719670028721533499612026410991162535319686199362475719642298949789719990149447268310882821940619218552672164928343472492141695978004675000152067447358340395502735232441114925895950934879705860969032601254391747957362170780656805837589071906928225369031681419565416476629387903246425017603625047235217875857796601603539791465870014599282372244826615242763309896929274942052776553556326260936944444921645488229759990382720155195511450806704632911579873969512789962891530403584176178504355101464278489053824721813320005859203258648584175717061392569689728759667224173229070834289783290047395792935219042350475202146424411389142263130576995299089954137887002212703519906197859764061227607732386443101794837020029040595406516032593199924508734988392280759508696084625888247146035777531336416155705181340057319477762862068595349061188616649148784853455320899397892929247082020314338898153700500929526727793853403159031518543270860050570475044932750598104864653740073756412893254288909426873609301897785527215812419271304436005087499120352229658831894267433112224611456499931976121595507736948455082707324614455694615670421699841615656699845162860273844895589210273708683360690267960704768440577405039067371514514468206392238950754492564882553334931122202439151553386489253239492339019645544171810200597230694081627882451641634116671391676145512720077649936907400981040429352483126303842468623036925490917575438678008581181685419631353970903234118780302093424543848040326484651674803691492169721815393042733040100061398485316583696793766136661999915105849111868245187855499960963979183584431984660259058057717000018859735580534587223118110362501410821760704287368451543937028474787737998572997070559199625736215142055287415636537932047933714433134422899083294567017130154234431318078974486811776646511811938886293270864228138500893124203549806339093592433355703110674031104246989753554705157156693361570124541633892967824951830016681864970276734613242755531863167670518846573581097982431889661097594505338218703345753522677655629824650336913130832702849663108664338773029775239851998825824724130114291585755937181228933552575876664974377582905144186676946935449578417338874602609504167694358134075859183157833403292158960442548209520972339822063868825238288558590058381819391026009441800890098657396304596729604403211683373770703750293064549689280899505148873010381070531763894730000107646564283187189091715606965277288348377773473566329203227756851281888683223027774884179943997263346741735252958191719581591907358496088456467345065165753644274829682693387352920681592300643689338289578846690340744516337247449313314270778002218891885548935082569270894896597384971563120398033826123211416200900267830130850176744484320250021199248531846648655902976194234695562706614243312662414669606151227904528005492908715437321347587747831494698974021675161833045436774347517478625717283652933940135541033199845809708228669581838891316358823398547170373032763927510250486310102968942581112220652491878009312112326395697513200051938247915939871426024684678907184484051676418240103885579298958061419429091326025929015150170372670684884021481433777684453038518327226110574122455431449536438505383352327598090865979717626009467694131384980330580911204631406881162363963965635865304811915964897654634403339402307569350089414891954570937624976111917546278083732510028164418789826343067704200520688945068089297431847347597384945497290434720139828796696399670260080192797006843155804733064313732400804962003949165966464402471886931118769560270980371541475498766018895238696889801288668229076935758339309063538847207816880180753441985700619915845956510599825520173058553265908859962638757215180018159210026275890581694429908187098549039656392122402583490885627593118130201957181192369680870953258896621570087478125349825438858739647693358728978642868485985557374184283022769666183790009589557672067942774726717876108651218175285480111040607087812437238435804907866088796109059904921816933977760700200149452389042048684164665134644663259220015044857514734250981044375902983046874015689473545613093299478915252356921313539382064231690295280400381000806920581934196253619321515660942498064046804262747099227550681609354612160268946915496238188708466358755458006119902748256140210780437103077553427760931769900026743088459981821672249268751387096241225645868416778063658176548134201822821740372613386247160744448716611378969826676072456251617768422997636983532870283657706160186476067703919428773657690488992470302047931804862885583611510646538665776332918359561499268150520595406147276016097470572912553324736378466152501159494715354977938422462047148392692008497129678451515947739494865313703888716709019593833626981785619030786099846134923582723542153973105031520533220458281145086483608761201216106607830281846620173915190430431168850248269011675786346125103243062291778573576702361735367281701316363641933747281558353621147948359006520201009319774226257318426491505711023708117820271333316203615018453129324312225920231204045991007428174352017313446878577610584972614526289982305246866136992711129967359513612536153672796130994450101208727630812164600842872320569747561448242649387379474151884049721310377843858827379712181786731795509746685382854212003991121104676162264270804895429407713144452067805061664869117403459043954192956047100330275098379545510659206113547387536132678487519967842430531122794184836466056322531939576216372647834921998071825496910503841751424993757917361886624690081041590327820855322429325426399619944838035386756662340053293553362087790620313048133843973420306006948767001766179885886862813458426791435524927031728973248318060743804009733960168645036464567468084678242989713203860954925367892333398770810488593433745865672884639317078630653231078163111247666600979255838714029468810282684988801682511576944393877308081040340844063170880605868486656904940328881534066966457552769617709882003899232465667339796496244649037990771830913972707600598596213628226158637083314515746897682737306079113059546411160741647816862126189464139351879876704515695206018151178003465768281086307854033493955688048589543419977394049157610452908807291722767531987985124678406216620141895185108394082768701996130144155068550496209569204958825994519703947334706433289594700944393205281691401212912861108586868884620907542360787408154600467761117512427851376226873105771677256193258825328577702884266126446133588179994034290675013153286445946342911329355296642882654700272348372991536541138043356142429493194977654058250417203531866876368189757676030294129136766145353478423234174995739601749794804513257530298071341564165819591287346179106247885329465935278692481107573406855996639998856727947273946597147037599207513858052457080434254153058360596947143918505861223541108509470068499767054240631157223916117714852797617124789918066514830868187312644601273404811605871141751766004268014958467134449105714273974516295938911021425824980081465748970660184622002209534933446933809223818076174319086195283565492501061307975100214526457298238163809338256381399195044515096063666963744132083637803072259076389502132378317272746361554699677649726476257355214916438309769087321887087001240516013976704654125723265847981672850263401433525285133173340124139315796151363135095020402389040159419665123213065552429912519262035303568093332811589709188246463955795798371808236648317971645193450743789724793846160743597236639579814666111272982349252382625116234392317233950847790754141264148478831039666397711632419361126621763180455873777138745603846483776556952837978674942119097119248242568468571525725145679355359936253789884974113421166077297786735586648998471829778839218531690541205995352949596864586341212260837148305848707935489675632603662300436538136714372686639850487992198858706711771818887061854558519589466894013271815438334251309821104182005279499636737560391527675341294679691381482624387541537294437665218393753890489827988852154187889008779485556000923596941269306268799783019300997132677940576370583673687992188611409704838695712661897705065122967156588277785786271111518828898173760412266167406606356709201790008074282027841339408958190781675444718354997045997431351984714061272391518668430455688705559300201665734587650829714395490443075902050008657377339638428496687693190368932556649635806684501687021119750624288220843473666448569673794585618210111877039958571149409439349553452121793396368544514692278635033546609168951304582797538551870631936635420581575780180057628108555327606418520507641814077915740095166549347270444321537729081555900019342403171463202330711345409217534012377454383975180993622513871175434117867095503709635466642696907700994798884319313132307329777696561784998627050639302651893478303290697329017950022974500440643477141529777466694005791284603084078545200660894924850933818802327556271670790203990505889812150065951585449208230522450398626729856420458316763878471642572729372902975684364082834335540865243023436304652435893347830544446889821522009207888643998706849088551413657459858447371244918504555358951617277348596802308277426638404063353916545767714519588479996067267805461798823176701052661171132680267334934864140424845137229651353031955342453343356310588889461329972453761530367924939767103134335037519890004882080565534811598443305938231804461479280451257475521395463168837482939202484376725966656030694520084991430701541959936003129264277864878449400004542562926974794272201194953906868255897427853014338825001435033714982387428274645861194677030183779840251742388345329235616406320001933086129624168506833126317813604984974515963032014774464263837148993231629330833554225133416695627468773585329087215917230089609527910925269313853922892867799220876791410364254003463806788423626734720843830602405621147441301567573473049604292102344730033597205266454228490014620943788741431617699333656597582476709860575938663805529067886920672957215322749990960419355122393756001009925165476269530467454503386018393183275476237783760449437244580768407726346941032538337751487374726197209630082159592638261251864049666605770927734811584571749172894612135544263763778582419364063936437831029422528783617748088353736651713247215763914077920122003547472225400967955536448235506173644424799404687415656387600050394224330975445958831060437564202323908411929166551431690476255287879554822244412910139777586956197451112400986744221839648245581566465095751530359362822244239782495263449484900367517876320926348226698101271485573447405696002460193472359428268946818833962783554156832626916677706716470005737576435701401123152174062861584160577599428582881258421552291654029992900578777193352154461698182657903642777064822900264293404110557751611075092388345861408571649970776864553268028756719577685563575900687304437998201766580680730266054651282009264213934577856839011296831580984807707298204398124906810088606099161440508735826999867628282945870162500300924569164628749653098852234811839457643952099802082092162001241127750587651013051300896644850986455968521765304437204291744392287963986110872840806512764204240443005105986892306300066058838427221694901874012759626655905861595610205490091201661652795590395165555277526324468050693256800297930837007686353252011790632259469807781659312074571546698170914335382174759420839994452653470881259877268090281005932126393482090195596862400405707615157987083555542494952565988760659916407970018053919714988055612745407006693409366692953766037630635456640817408231435939040876370238864911408568751004549282883977976616892872268625382950857628878914087973438997514699934924756484259700554878028634528101141229567570647690092466125904188160811094067175589640307732106734386932351877407018710295698595438001057038224198316940959541752018117660877870424785723224395944231108153469471128023742981517981839423447974582455573248263236036422396262140274181805291194431472695501653975994103655556658815850269687596010389513701670701819885215498879341768563608011898872304997493392724170246741919031033624980492380397742588336101236825358533647887557120609856254881445254834025587131921910948625300650108338423806275778788058919343859646756240260090635858710909579595828157495896852085542703091222011131288590932516816701230222734919440561425874046990016173669703649829037231381467273233640011590959280543937800628971872453262947091256379707215063096241143434750335724907472855873894381918451440151208197684993812800367253585038689498945558958088965413966001410711229256300929808773206077750978260785800052982475110879037195432297051618962927214296515591141857432871546097419416382563449841514537869074345498508515811375826833341843802761583371977422186887762771494828410452711452261214502189261399955689186645448900892876242115480261976140453272112672815395685096740662405387914581391397486342968090101951285183145629874935991394244092820998379765100073975653325644017556770528853512361244028731241403805672734123473559704039910376898754630696486664296141187421863769971857979457976985839766385669159714509954582423039208651776389234263475830594065023066807913305522334226955864619503611342286243791426310438791282453642866382764904405666193760167616481484814705066901754847215598078327890584956536147330062332646309488472960936937976694392263569691468902416669797882833888960794452273673168411568962829659952767583974522671077832509189533181851723304120345284613772875144140508564974342922870895489726106262456473891404932868695364693210580674215930283118559642234397224056762449962266196731279931844245016288103400079616086832429985606765160356651173650033452057101769585196851766407639831207778452359491677355026083030042731442322504615293286098279428976485249105142857739062296071437454202374334069849993163412152243063978994931500057366627396686115963956598804086438815915263705696410322765688168570188598025634063678969040800686754511829770061943978034107624101956688087044667443847343267494479455781476294299452361652192024752846193419202887636288095726629617519884541597566877519233268434444105237045484081570088380267197164135241698429632936543699616538018849409754063733437661496982566787550821819255347933364454880402267468451636026977796158723501240959647661836373357821876129224505875529356090285276277118084972477504696219494671851384349752672500261312084305454131831458014044370611740728341235989652165754502404074553420220484749052566566936005939693628687075915781502038604149310018712235399693346412497328909671827690439828189021962685353794996173899709122454362365535819310155962288313204768607229975720128765543433795935346459805180660651457683289234787305042511504823284055456833027856850014105988985646419811255725415928667219162895059906467904082700280976190105160878124399641813277575407401238660922011260032116835228914977101752961029684222755078008559276668445340313128168417747697221227068365438034933831772360500982739262882006234732865232430777761264332839016127127055760648878412942525677740493916798626285966192729735879241877863451130875789187935453521840558170752271466143254963075721502829175704168159252938503066430327755960015153543929278517299952215513583571326127920883511796847042206975367632897498118113240846827578276804802606992495920186425839395335749946955806711240530423707409940819175239383516813290179654202373533026435628678417476412953472330611967105833317463885215377334961532279259138924391780307285663236809279771542634747790355899029285799071660905757232634851050505601739870927174066340465250036527165222557278988621586178299570941221665517896779340790054677833311771726720057976628023276003942452600443629544835288583986037869371895300298651301003651007937044525050462373321630328196588047605212285085930663532784857239597068372135336280770168239343457522992616421407507966259961859859974446525489629665994188378238315915195517399352422382737388569232360491110098076200773584593691048928537479059562297924003804731496676682038213492301004311307889902321305789911822497675044129724392759644389433196010439290033008672570181339909944806635185401925528307432971049388758158704334267435355660491056435187973801220713350134136146026865821024372432824607014715129312263672784250009958586309874238549701423239440057673792479947371943847320655337452670301646352694551913230777596613690384966306709188941909313696600934674852696304126051738353091033751913368243384676849788552854786634217421440197524160619875357217089753538907440098896279563906946027191399670085549724779927300846664646441925934820059297569363914071490825669322416655201731523154264513933416512137236309418851834082576406305629845967080387716284214935125343504281487472436586067672322186944592079019125041755971905029340647304605937060506048247330378400405380956068086654871421426743561317077787989422726234371834558534848619398415030477597578385415439880560789784298928012464395746505051976836070409879675361604472092060839661050268735417415993771084635107607402142962599461551435541291437426361282548416081389152178168848938711560515289605326853206003393358903848942299743585179044580534932876473129423490305481297538249765723781904556278707311871325083727742483278855292997788092551031022746898191117118669164169875365925724359986753663296575219736481053319097883513595249522968464082428671650966695373744843706148538878129679347941733536345698547366827880819245256033501994957255188570447142191258927485160606155669574659394328235578796274047003527706399363643967431379363706998952977523996205619197194655968675602852799824023223259237131333191779890136215077466393005205675122332024558345774120116888484293753570291315375995808878198416897486786494092974446840717362090228736225890743306910557546309345610886309808246884871541204624288125211098917694157468615257112806947410767573505849620740869795535682845335306720270250870440545740922518425884078697496764081354172656498970885047993839691774739013689869511285221214434524816465011198602836408212542204836980003025084609144746435023303066063253933266407544330592092189217429325258814655239560684016755548429800687533035550970348691522808096761407176704974512071136038743621750158841999979904417306921402623566694724155965511916594899791616977667199232193951099461858632923817144486668902137883216387638606846310971723392742214328681236264982962805525346497954696801992733686217265256898270802008691658014189114187911224469090881505941220445180461117643207779481136656788088316632687264872836781037120880987163138922957989030816775856525789260207526999830212608072172894537598742530040169545503657641676254412332188188968319354441170142242317660472261414992742681642476470789361302535924730258653793861487064919848372304044703832567335904386721604072386290570029231677362431137837715975738854834652791184242056019046017282356272493448593967426245030746620585646146175698286958342542007554876599987196460938001122832368183541823408600665224574117255530613028587556247563236292166352312793699329215402587507997144311140817711234988581746139676313725261454067637223124789013462460253906885923735707796375181060594590638764157107686241622209452844062214091521936202920397448442311875946577154179754183561389455261230607681142719569993897740580825748846567076095613803689340512911864545386733462945751091417045658040870258758876856936036442081869400295369816875449402593002959723752529663168801436020955469913230331177012498900932545277082230863037089270454742296846930937583309486694071458750267724683415686558000701294075382540193140617964129715835444189481739800454354987042206717005949729139658333580180021020817673693477649246091338377307799711680006369297243264545126705149305259836134126773672667183605072832608437206383440223613639584571997062172790418431956032585840900411409684695848678889951946087454278481684465261288347280654414545134724016655652867209246806072987174821944404943088105636565511096266162513009509719939381896034426687800181273264768749166501595893596652776040648172257887617292571934064026385067276953701207069794297792371523373906599279951848050194101002403011539227301694848727099068483536026109908436515111116868893880619005093194759742073480436376867081103141144976300605603505318490719374471463257125456329804439388457877328586336596620360156371560832191885592220104943205305949406208309086949909035295998638469090624403352751036233593084151333495991245282359313435576917060744623696178145962864849018293471992802017459065067046708730771658329617096344597316449554552062851848434215849576152193735437906601679451029430342080363557002796834616085684672195387794681597115416835405769870247351096259243649375453850211976325781717648865915853685854901871256317879213897844682886798571760101971762877465848649112484214457228537597781566399628752995155288509686247588734666417556608070200666535241034152698338293547927475844229160300658579561045326912334238562281497961538928945244643091349262040352495029060746828582760150916271156289957371235228685383691427519303855150870021948105455490529457922095411329129377729569725528313510336441035447276015130537518838883287088018611051325718971806698973052422868507783337540791102415484019212812982218926917377241711433932042959498648517003964543874418883863846097028530495813670682581541477850534985103607991072866781122438360668652642334457891897811526433452741119263382331028151773314812702499502138385138161316495230211250753547541971135266528938542803326855021222971667735313840625742049501290527616897737792888489492420638775153808623899827086098591022255170119910150103968457040274008931537584281546049641021826072356630901420360293959082868269234859203347539372595835459071294976925252527717742843741650700670434234527253812526681884894674850690843572598152913736199092264008211298672983836390009830364878537481960202028606313582206532961991724041359080903896676795022719929864598656317595730993847314173070884935209444634961552324099657860777429297135405541000394781546767400799846054028416132786146982085379640753920981684381856300550518362994865617837346429057504646708676299969552128782474907227494380608934474228947179288736839474072992036386136372797470835432488646969952861233970207371453223510406061997651317957024369895206992335157265361165296955726678853401723081607492085714669293454130595965362540529014692029653989272325535916610765873383341692542407955447279949262714319400711856113501333242718241933404531335158232818384875968498273118596155116327129187287440024837667087355474086137739870665128548625812131364063471344801422394459320591056957455874808204283861345716258983839328867789499528593229483433223537956771132293140286023209518900492090433850250269201587369317529884785039976826630834866050315769376948800903990069168001486888051843832584933341706462621588167730780991035633672870440649853377249252449341776895993719642215575626715858154524747617903358271288355036294899538369665014399795177465580863622171419023879725114664269885214562920319181131692999135001165232324778661733941223667790775140974710124314114158412795892874597689462558065290999036212923544090163068419413756914016712362225447715756328178904669889984460668503463994318921647941186761213224557001593078122215381344971285710819509759283069941217546777305739809392554839222436860916636610939337065377736898078320967838753027710279818328456685539458624742030844614280225959835759399341115667491951216949438928494415431679876228493719968713625406296803099520194456876555824246063044742004332411215384275235969445403354150431892084806668674940625103707123647168059059308496517887178513359739670578339026910111825773773209943425112152392730005616077445693768405834561346256842581704796793751927830382932827836505240693122412057658048871732306538350789708798384326580962132895926138290834769092297220364339048827894620324821674303796219522480183778642706951795977402466704265907612165557418264429981853526248640399643356468110158732059724400329915837426396176531379321302611282483043543119344601838545068718214721047816363704018062405845713331095140783932175630870593351427246085827196426757492441851301286775360446868146803278460057997673860953406129019491725328217094494047197089574561356642012416677434030875637749329225456846681581158597866003789066464179978753646302236884405449731649666938146023729964958339597677383074550654637924650014904807179746730818140351382878406540216782031170703752699824554767242584331592963976161357144405768173423466626869679461142082689902740423654350045538693041226810939447306809136610216470449679476590757724847415411379339300751913551244348029877516959937953045535757105510612696282524909153956184173214354582303305326530799193935890341509987011699435538866192752013191305004674041948478180192358772434439201619874568180954040006858922858841314688990896450258770055066834615501844741581465907923693459107760834560226272870471116242627747462130212774640521035243057125967592279361878129292987293405818232163376867940250669335244474399932540771040993751886869223720621643898306974107681859378540867815955168821373986336113957204203423089992907436894531174641427151571520752408943001973620440564218373411697651901922311502955730096784098974648459678327834134128225399358800110712092861698667256400953146987375592416002030825375362736877219449561832744500072782561461030379625096198791002714679821668121431538729962049291665964796892333026723909085220025997384735538589359952727230104730576624311038315216089879467980048196091622228439746995244014734325110570653697051416833527590444458644707225145300227524790290451194774895323652916751222640615779281125849685040931706785308902787478459504263200228344040970751030450310257179173243663090609144706268860612170223056963323133088664601176229110490954121708601518845304341536323869486053688163560843886959525065144671794356833113220427471125601372736962392752614706208731542402283460378135116656118244293659271077997911071098110886131193507161168485814980187367597156800507429402942725062278449031278912369076480503370589056672758658318294439232791374148659434863713986337957385370351222029882189296105787495747359220011878945463042999576621357967180244665680377942756460377865627543773375084575670196942978202799550601866318951697305456897880127018255694435651094749462888849249419617678801882623486562167537265977956679555396797932445837710528061824981790101149888894421658896464223149769723664961461521466129957360827325723538225379315154225741848028622655493088413613680039781537554811095590664979483036389000801512106301382908825654483820359644200250724662105718232984718543583185962547648246227948199500532140344972564018999955484630155098069800895534073357062484833171422287672521482766833113467443368854896606281581622189450288382111459544663127034593267180278385094147430538517331172931812125308569490837669776649201295569944861320953633408557232207186542902141383657683465038060514203450399773448345976477552156449180499042751530892597334975761719770470831044660570285801261804172734332785458051385075652530496021875099816925646735906084509461733482095011826852811721319093450220895872612592367309413460488014203843992094399129607923052912857124966154282075221987812653237163509190858238260345313057149459336784381506620286877495129646624539192370485002687828084863774752639968843840577665555678210895167433934381798558996474847939627608804864865765557406596125658204500441577067672009909408393806587273505182312620951925958008344687172561899653207790438878274967935359925721344151086828261751594815757028298429416556680565516569063385065706828970779481942970252548925758965836339404146751974089605722119466616381761846073593845618587907485523534912242930829156668689226241258784032755347543006187471388872588226925344743156110395501713185790349087897027043812241966883057584129998117685660957354622094942171144110528600513924793597798292593052200541513833853599906557308922660189060277819444588424380405717425913511691503149985063750621348502706455931817979291549345840371248908445744467257653657885148814440674095435545546114717083561338856318060530678304327349716886629722828616493351429234079065796166581723658640667200856595322907245679507710637010435116405976016352070974642761598752572323124273354709309643040654036159742940192795664711416317939924461115799141979206609305144118059533555203109817976459633756212628680716580707449658163709890159539154079149158785079372456358504989189200240228391306060532376515208783030600719582877037525078563765285392384712454032776215188081545657486994743581042833926375510433048376545047219005614659615285047819734031628377437375263846130578002403501266378849254894067448036924209785046512044015286143353759713681998502247587281248461628902814607529657766153653938460483418737623035200100098847496261926437212798507526333596826549844644369907284703172995954311313481490506785247866605920778810083453575534761354842228231118675036050166917338535037078085502222979389437015131589937103303944962756339134447515004258892453160714449423856505751377709806685623064929404627275893773583329215696836395921714480418275277402613467513268558953216696772623743235498123218862217803194470652583951644195601601428260500478001897919198912783469730719576967938590695358548228277306085901443532055525991100152368082113260719682947725336614624301828767197589777808775108151564038322538677719403257512592184336867362163662342804122331285030376095647148985276413199455362913707914539614739570602801660401402780283556756892504548738262959900760766093201450876210488000109634987363721803358887853293524584882867009980707621194415652829695151094303049518816589152480674798752680528598092504820482192260053562904791647634706277372782752524884288093277844579630901214151620327683623567352491301882164484571800127370667151588531424399977231749301547389154685718467948157014870831444312463660988977772274524093070378013659590786584251265380246044033021687089945349481322817165575661418427378645414943086062233068773350891694984888454025462372956970025168745715537305689516882758988179391437960103804270849077104792634649993341462223796911467630199479231092969697963547005134140639454022906607310824567515879279867172281937544312891770130182916211002262375148315441751126783257245496568118798266083589300131433962390726463656553955238002003674287558421719818764364068659594941147213979592374328979322271710204687154193485460097572148462705510813683885320681966529156793763031689333933416865871115920960969305578680034641750056434694585915269500294059356800793697722141309167829508042129655915823521576541805424317316038739098331024025666189499721731479171686560243150960605865629963822277527653400238150539418344378246456337109921509404961197673053992136491885096509175913505421523566578520824825900893140920608783774295317508879738653044606294715021567017511516394482066955237107058589491299586153767053629566451237272170764389581763520621886122744723098090035468071847573555507490371988220977060131830906726861814113841318361911439610798139521104129304559219784623147097656224131571296909708573416554441318777308077746357282180688613469251726958910353136828519382944896926969399744953949062418200574731306853357467256301381809183820916878836635050151397149960945135410854625708575622873460667779652545262654746268933372277219778587802731620742029059443081524462712230496699397343614991974649054506080726809941211179871110930212676806310267765211376818903723711145353973654332090720338010743901562076072325533136649873608401097050543089034256910988450786975737976659917890376524099471940997819435844265006955589621080668433833330420043664799716989090642271603232958790667120110799669973524537079996780652979172528183267214080093802176095378508313455253355710928048044341610037374352564540045709195986864470525398009641942007870626798846098969664631317867993544678245524077327699114487908210321518027243652289900796446080902169996572994870971641983202949175780905793695328111726705989453741686008809276659212889039445346709540080751171341830733266139281614736171713932606167138786773169761086084671896483285301975418067071127795600514152772288397134394444461075926079447402058418032981278082542955964556154604591496541023344893118635100718005120996018059026771513738340911721507674633212034258269808665958745533933243709957947048303832892484437939906438900455524863530697755226117486528880782132615745103250133613055659581987634366771851386287733019361161911449155928546005690209473322138998980470642458120561575292612133686117358981657498227344789129178350609550232451382563041248589090442203335064877364307240660168620592607147950109371114651371774440317917649351210428543815018032964398202766639863559101830328879322694432704165779954913468462519831569142575788333702607127634122303127462418947842382711604746296467442770507967729020223758138955351050424148474543956859359742023843876052330933746170470735714853633601134693166355681698630530147829786586083563291122549957123160980467267482187168673705277568543850061545074652178824703626855252727074672133276228023490289627833335343195167827616241237862069496996383583299547857592356643396403065318455521340987365813025419654194204477426683649093520435385868018312771168181895245745245828564945941301317220302677839482025280964374019268955529722604672722186758037657115689440996125777119711797165090894246785946878141245683042851240930892728067200192382655702819442449755483677354780072366131528705409839236445551553240322612808846029497181049729818027086357797053202551400880047902002470987968288568196977999657618669205472395805494227184900034926981115543271846854979679023339368403819392768090155969869257023458760640380729656187432347795305167881644622013375725970777357043906698799597121282373268493832592263318265174387748527719415917006734333698786708389676398812251658684237208162805727658505776675310904080045065368111560858554161617762851960181219481216918910675674060818954554465300161380018675048344704873913312968815931682570556689644780644097556123310094610003550233180735665188016685673802802915160617434454878886463389240400509397847711767206574388926327483160979319276088072018492905572666840703379739541436791563677794745720343455058990211383153508653947159678350653320518393016253187192146281456582652269123000325946501372629709635573640451928348293169471726720763935250789923538348779453280940084101411811764244271115709361451806444154108030513401333861206182537891982207254213969860742706458044610917458824413569784588560721647959203303673235175636136670303838054505863758090591997324296813554216889100593363470629946679054456494057175702663452557604932123418435303792615828733897830425525935528206314291381994030864236880197356312488408189814761955715849048541810055762963466330018510850669524479538908041217854112406977721433083334996138115786310169232233975995693884899628826519666765201162005499880022020810047785059754987829623394395359803252105068009551320102693007830042565455106949016840874996879146533378023500344822681970800991887380420172934100150534068459326232898237306570074033956382626050521484025405408397354916274348882771752606855628517101011993742278339476272058736583703651145876973326497872883079472006608514601317062142406300603550361710709966785644682127593940907534352221568333658204554100045944490828336180087279039210720980668075911085047988321923242353691432439940676775137628369936334483050278105637914582891539833037173311013031052900687885223588290565527224353032531428466194284678181602019736600628298815292439339537526945999790586997582819119553645807856216669707616803500415266075686924208886202079999085027169833247148782032997636592085166299348775445732902848225030225852595137018898970303947650410034475291802600712894156432276858089292441855794826218472271408480299721547230428963932787314579950898988595392511863204886566825800108364091772294333988576327487336329156539860516500935752378196124990529763642194463782487225540053124481272067015289543847115782439644061581554880099284602478722901511911462080870911156030825489926227873161716318198225375544387932725158193792303827106814501977134208790068094010907100611031355306412467131418193399344026780831078353116385495866602862680815772342282706506530421505764018263661908879827970866106445378310938847659100929295881444859588296889470183746304379275678869134528894629810011937939977380509071418803466666691899531322121340366893915885913968960129915128699551682180748447877945308372774313296286107295032944413334000391300802850434167717212812813635228638081150602123665787777313275298942999680179464317717625809474461779120399571156902069122216878042193519141548667827444486793849052411874345413747458871583945713863156086587756500180056668724887642311927864109124818736494261550016131890588602845802355755976056309702435395956699853523522511693956250116308852899210221245212696565481231660899050615669619191703690835780314642458738166239814954454555644207099538682016901540605286616884410800059686781149735690803347914420679841493534230571321461742823564855457103985091023667199081789430811762149148913516915046085877819277103573051565300324145224149660564716811734484083110270116778146562990786200738882027020096161663466703533937576964039376867389501432953863127855290625713468490871292730316271219628179456371338371712369166399495885609878291387554829180056682857353589248511610163811496654038775051284085592993070566892986474727772786601479962253765559337780604542622023074358643169907023630818728573267611331141512072309069823968109166032145360772199798658049928698668314011925927121701933669936241511157662843517932079298846624857918025598681454756229057865077777223286019696657472368510658903154062117984745172808534766843363884173254945841692952823069556725333253405771968273257052561840320277563982838222278254080026458278850887823613199160047710069765765826640842308224971805523269210418770250378135149129441909285647915392958827030447377472102680276020146271402415903198843956153380734431613637803897694811975216036590434806853728398479979385038029729408112265681447267711134541078335558742132721858218036761866405403890210309175671920437301354980449560505581748671242796096083392609642376231295383027293123642055464139208960324971185571236375982541671122760220376384948400223043837778384767085191579807505975713466965277355025172347144987075236353867976605515958617190058336971025223761891831810381382646041977691226643743305971965017982053346049370862992169822213592459707814927247256270188996846841276030358197437043856167362571546672555882355893458344879635725468965567945857948418709000391230822866521921938761252420761650337494440081769159256925528080950394447245133551362108408198680685322880702826478775228610856941052105437499810220364343616084330774503190252364478367295898598936995083574891447738623369918502510451470176246890309168291196082309697350466038132147888715542151918554271658866850625531634189350022119683972420095832596533939168737118463029750915229176521047828726033571900084989001179775213930768852027961202130760691806144989328721705236385296318389059758824656088001281251243119902100681108039589700720258868974238955122618258149275245643275339497776897892736064088547228722341285026559915462868322342515718014677929277886037247939558574904943869433377356610305445130776592236826971649973422487891982908746434624800187484840380722819071145979215823372789488192831570914655760955119641795320971775945862891367498658480146651240381372915336802083592347420382989014718375675024805184014837575673658027205276160614779742607012891642083117573210672082481218922761426325697471030254980830773651081919971315194344802757039931970200291880279107049703306275301753340328638555725692766335580423547815593739680990237586594397178187348071704535094230094603330886261416520222245384341458203289317579526635133207329316620005651901653091168900175595154348227371812501841456706364122602360080349946439511291979260995833608181510098515587011772891050217256938550024555911541950063896971431063470168610500537314186279116168054451356678855718038771779294796781448986649803236028380223860474764838924145765548755585038648617604428843947996258627961225599989834819512093836386871387166626539013264492113452182372164371051861723171937365917830642324421649096537183861888268664875961365718422478769490474112554586354940047026273182635443591032058990061564521098555675431569092469137490041522420801224301764058722606541595486477595698147512226793678834342816294111723009030190461344079490303138395724596136033320341887146945957004612226460037573686331956939656112340767375252432514891570408963878593697480065718466009545666653031695315575542446383529721608570369455916257338753950768858869363348089476817582581886140890746880462074143363928518592156736965942761990762423043991002730278048839117618918842792713148298817157928980199069549418039805889372445593877392433881918895396020214193284925488904387086297911182583925901416473532996876394582781037028621017603015458442150202247534773188224292812058015462350897114731894274960754182733839901220540725810204197671437558956462186697612963481911885572170118049097792605969795038825576886540501190955748988819013745558622624538571874169157684726171862247835046947441678981241560556739127043810118636396147647338401409889267608633974732882895843448798473621500098400906046803859955005951494206886934617240731687607989448268416840245765036564363914835397547764541892275669589812824979043194864491785039867762771204528030312459557333312895136810497526898484938121288212921979019931271882168309027623290023894566247724879929340517455625434675411908910125075711315413494774004717275901605649684240427393494998782170190396680835908528762117028046097509947118317031855646629716082416837545355189887424117039864522287008277823352427162098583143083957839108218013018008146564790041007009252125466750144797778681002690931506246884337534404679591436954406992488287074692138458536521742978067282142280362028337343940850535262593315810935380214588921244561974920551455948347067837365824446340188292663515596429165524627296398901838004646228032887712817244012246675158781804503970497705281901448069004321506450327263943692957178745557361089579170034875511914561898476811587642162537498034077931510696671531429203083940011291230332816705747969587166081845976392515447325713301595692668145500412394959771797966350008535683078643334864403231409510088746927959154943871364358870409519072883481375051836047970867305724349960153616001472177121117514287749396668165182465250626853848754553937781169733271519223333953428795108320064722652905086912371646025617465583112396129824098131493803088497907382940785757629585243468377508213905276982876510257010750241883944149590611428350954799272649564721554957415073531154917578565335188745526554475236992136283471905507386787851892572222062973087047376385209484058982701302717031464721943335439745961705095138301673144725805063909251704081554695577639424721911818623983110087561748013001000018681749041022495531544484845677897147875817751491555864945642386622053353760394040074889309589334119715939977431070220042775957069629412537577892128507411583540807453213733641676525367112447405789787211984002737607012449101093584247021634117731050449871765860435976411118219668690453316980648293214806167762681551818566218303699646461204516080324505433538918119751347709500368713406270381558512499580177560283455962115143653418635272628125431774509079642823071329504310668379625947382274331489693757405189505068006135841296316196969461080685329314092219415439972435334248743782074654199674074990475008829106254602409848800096905524385481349944767544873940255307252331188396986638083297802774755993758714950021026797613327361084770881047728575810683027685316913365739490718756502503012263278877162950082877300645640951377996736413347020675267425801906928746815343531434167284611620511027815589827645817557734515410166894503392634775818944812138056339717156053610733656504893561481493136956005606843600398798900711653371689167918837252041075763606796721622571474452852452960924160449223086973102207484373921879776401496277509275013924182818839243929792496155123966887522180584637595738758490891632332684056009542386501824619369918814762101657092906135461536717373937504620226896087113256829791789954889754270822072307010403757183851653191010022779067192023837611701429051592581808423062378996444587200679089565311482662265974733626283441087048612375081320700159621782350796430844912294294725715566224691545106976898995127240420526217284846588459388235289801377674608289305302180756887798655185614921909452555230964492700175532536863033459871927512019017976526641417098373493573925358425626031086128383573110563405720293144946228607929822444154835539881697449341681898680343873318216758397073204659960848198409939796942980941388273121951558204643992259315654749209730633819300508516413552481435934955159440219296703538174603364570889367913478300840384539163157702556576556644632979773258875540120273350491534683930691532875763783414784940581560798113137965605156892106149593162807246729271470966203347852168830087486094985142911039904209653154102581520936070003283483499440416070948068186236037090412264796295579477887601413428492939785221211530788927639027541959152499043379953506923328300674474170268950845114156413184502105430925726901274171111816364910053647738511279219449184133214071351502212529021467042699975853568961507585015373348345441196093410913533232325719331515915465233718160233066340161427982342342717445080729815085594926810384100597965844817612800064363757376657879587566243230746382281592685306387317714752078888553280880418173872790529817917921345777622751660667512775811136794307886149090856073867857626259583683558455816213463876737725431081377274213537104438540144688380491722504687210898010904466240114461673871193223593938568404918146615897774659195562151943045770037991647561349980888383955440771202751040040175596437978639693298088305370328488016444603386950036557170801804443988098487777606513449935853514008734643946526898111449354840198319347051539976313193059659922481673687029922892326414634694984962295393617799833275657552197774907780892471808725604845301406757213957140537946385532251963608880588108143098590931655159838290302712116323199079682014223235996733834989734090331556263119213887846754092684915886998797976599329169819090306521076649218835685114359240381500420298608558972578655202907578143651406727092077414415485095834772056308843244934343871050223582394736098978890633474837917909807873284522090558022284443310703101500481291470180319364937231188400651188122035375591974870580923426176102774963251875989968924607053929311544618719835001951267854675679530698840710827320061500031308357135820888463519800278212053332347257492432102338241056022555113276094112787163194913931371146585828885305807485257603553002109760861686146742674723511097734363712997328213489124975544439411194478582480131454619246523492138693464785313819745987368922654340245622861627230061096979481447039460377536413969462585786528966745698936765301633199238911207603247652460109287039549541267591695190541147930531132756580922134008802553272788328409488817808287446117346332985328344182474746395007440810790344417732007290654219063035290209651902254459042355616865490655722466115296459427955410773976359810335502595955050090057894995508283638603328999557174086612623902328473180685066655156316595602687593043370749398125574921412198174915165741422505105990145446462011973066139739720146011852127160453298329168804387222304457213470638270968368788927141431545980289630505802346298038625265986399483363622265049706379088592838959227778636926381434402654001579536377035374888804288000488437539709839886021157436162274663207844078766239745266813207989876793803951507482764809831251377135316248164030697466579045502499509317805891869949579106732616595104348796667441212881520396927945320717172359019107520943631749481950301654772261293955226768120118860797254051150495036747760101310486008286862512956566981824863275881006158358350468406413179425407152653621702507458230682124838619107014525837166276102769333157308453782388423218061854603114949235620781071548670730054638947663362365273250259206948595747007723175637774729848946198656102145955978638464765033221172658984762419241218787227606215083723643545380359789950613625893711300440764824389914805883965565654674301374744350948863996045071942694336267098881282093524524454440624236252743002335882942668995192411906857164411539505260132318709243440477518899302506097802264134657368847836761946049896286890111244429850803843838569702276343787899817045078116776916792826636566045351517400521227574932504683752338738061913321890349608662736512678988286321477448883509800504832592089541564586660986677664007351844795000470208048890315222679245483944041315935250981263348940994978884494832780622549246406024277663597564167083181742229419057553901100626156242916417030629894884865950735555637879123017595707728215004935700792962867500898007065626293148312501985995076175597290866867285273792108389355498672665024491984290503335696596519672523415746259571172070282497911267169643299725746678629027287749895439851471459043827911008047988843270267491892122964564669276312614375438633082646671846125560961857164306242397307837788645812319606524561708169754588967466192839136474738392692769830384764751947729526877603066743428263658949012399774999638653517426922440977029937490308059616227841766607054687542582042586401218005286739418610208037741016210458969694450838693634293269394080144171867684606570808889212634135660274041848393199694697763265435879049402929194770746861068621898693233035622035339884453743053546591534888498331157701192130463173662930614789597674162715438095629654820560275124829987720069309867965058976783053888894502593941966700921494958120234153453416393350353906118030074751884289392540513678085648693101633036000276498778664905585135223461835836796718496060049853566918139653370495129517273112750636683673941798712702367702160577631097248732346486814109189513845399602480318204767306634672587597906063943100272516852263360989640145379166623791365554277271286011987371263134891681399403481573869877664830125593957757266172474397062737742446766081696573811809915972650416718703306774172448915993482855400215150290301224664592660711846956704569856183051243835270634043472972101384715014534153259062301682941685993865832423328196095107879660559252203896894527478643106348939112003055398705516836198880101127287467950334730138558967896296337130790014541445701552373572836118459006614411999875942920240997567351205935543377139311297688744136111500933584399092334037335333701405961550236160675793406975930675395414382187816279881364077833656576547165790165052083429677726547766035738631021317479479142067687551972298106248122206100774009182272770362842143425104275818832092962285931305344500176145670933260519566842139850973164215343230100042814159722476895433338838815419391365116727080379009915018570981290561415919532436307000456365373472890848360155085918376521810547442828176006036608813650818678749315384117989740114077979588941510335502498457069235614042585479123049983090270901635221089798696349097255602569757852567043799720355121546609730962494299584543740041527213440519969714447644955500157313720166063605569193284973537368982394672149443732372420866112120205682879058390529911125814306187413380395037899459229865692937088302580758371483906979596019168601245995630320711410924776016462842960378837564099442523619250688130531969958109363603740771713874322728932978180013051394629658690551834689462372984598027424469643772107449929584983224783035547366613475141047416896668045169290281315241598483863948289573853046247366167324879353449583340026428898097990094727796832554026017936471143993803244258669299844856409965009958873723200670886412657239588609105291093758260737958690604308280639603665615134043924679944539733057073670583165203905216991672919852703066023738884278105237064617456500673616030828098543129644260507915452986574576163734943290060351471240777110047591179384808584104914351465557765928868809713753589635173448741449983070869236594572616311076791745768456890245667831984962054749187286899416466750627359669835532261389180818750210413153087953836835858994120434735925294195075626091492230375997853900487374830556108961277959073227515606430150196144248938092040526267515503475350782410788126701237189179137845203740454138280156855859612676757136176578906972094520275777553157725753097687969365694266361401785049611211968985086286788027680522838332854026408220765897941113352471080804689851894354096819741445119837646396561652432994913358484213577772998260708352943546215809399853489599180728141381088823535127865320801093206368928489615396236884044729705258657640167314991585824060707644873900225980098788141455868981787960900477955169718288130948165792132146516247339576038837418533728052443419485423778622321413578960727713582700874882357320537945436520777668097947651277732883193105141580613382887033792321375788003946111642337193761627040953068377152300206985999533673175894018520532480437874901211359492757349443915525142254476621880005688951073555013533626647548711813451541157225649256941189901420342270536081886099203212694613000011666703188885331987332237109182838019453804408257241220945335166971510424421072783202774242517565483816670445655939325867654274017794518294923068073099188712194820987986866023992454907252725159764476609833969630196478231754265401855953387525036000415145807127410682658904590999216810467066496438047520750587038519331023681111760599527803876671066169705587019056072088873618137331097568817769059430731368867470881473388579671540783890382864988496269167826904250170174427963370016629595545304559204472717682592696614763393085893985715387485240748459430504359313535367772193673408103414262521504228927676614054971676343415309026398946125349302270801721967180070671833478925737622621481430499783313411807078619742486954119338829202155946453715503226449879923797014676021891260127877524349653282054097359657785425782491310234718752824465981498639903543478964390190758366894280031862036308089712059367057132992779070350541642085377355020891281349881930042770165328993424747466941775326953213681531624829288773815017245982202415866288191076555293381654851550414236622127746313860314934718745317338622398719357527805529978787889120336703783332918545114433016589163843576497829210713929285621504112561153861729398131082644311082216173983837607147125652052569604501511153603758867151883411128557253996295136807660450720977320146384374861493853816871287814385987542713172011904433927147505530675119631398875933011873499393011870735556432917104786032736259513777087468487950149197424334749303311863461889790412662378925738085155548952916354030972426015586799985158701173244622912115344738976739618716509607109434817978279023565014606846877964224868882513989508447473793321237395238073916385606089617752235029521226159055986264703563204979183489596164932418799509670235529165428384568944371266403209112421488053491410918284722630682748184170949028686393985782925551018429727747839025976498253597825556763341462349109883762556037616955356640681539980213759924884446389596128496077407922747493066973925279876000683703291185172199852387941645440866591214374065017995415248394736864500246752999776359232688217169055382531105618100500561643223326862232689108493698394324890821765261749553986802391237752138673184756616699527132657235807941962717090605094044134572603953004120037584801260075458193402827265865297989881597881000725530480019765385285076004535260569099246375831579177585123678893836880639203765094128670710686318112321882551286186434983486278286106156582510195619215745518671817205571918794486481917763442141775628056341136285234172069636055553067805783808788605805008023509566150256894266536236733129974477789741537318324810139487151701393042963218679831071542197947919182082526376861641260973825425539797219533392780358504168997030074188631334831227486031905473061788974889925027345095683003730769305485886308243040192282339373932377916132991599694810294434945368489470583282869017586447166772827014838059320882347977216751535682869636490993452951187333547042359939732579435993219784130714299877263305789797171076779969829952937462989630178863118758587533415853907557269756390489560668716837079008671352820112572350902800728226901523132706186527579263875754458648989342383322451962546575164645393274913873855179990821218426440008700376459535994940799313712377933708923905569545734544417731542309556035983934663932628622297055189619227974607966306964469854051155662718064998203689487858769935525549786671435256604110113757576416778989632552436300838729886247724696685628357923102380295593516555947664148283955048199493671737221855079013152856463076104422593945512523785933940498190344397655666017432189864791699960370549300109306902460647366088393695554882553761694205686294541735146855532051539330501859939829808755160288831871048124656577397818301147397029910212933456431079176714548443960582100890609343064519805907542103228889799587074025124942480390256002092175440692971949274915911054857165079674640482150993248200337400009851021739278508626033499611238763890719963750905345210924773176299374810167069303455564635244253848392348507942327488374058284780754677421817320542504974135422392124928640098518066435807597072962121253239832951915849331656123002252199760269920272146260000351480228280974018455014272920495698987858133744257855876161220689151487138570540377577147320949081179981751365237897764725313644937378801625848534171930186785704214825487910365581249589276608644203801484680501536102646196660872411708928339688193033234853088045446617685060612354288949689944987068593605356225726960254815077075190897182834341040305831248497188046615049619643266161433435946882967627127618216926001416875547630486783661147050986671916584910600003237792292565065736123349564001712529577834178517709164427154737087032364000148714867837023785588230143580461034705842388522996042701389608117741616766917690395316146490010827192371378118800645563444166139059300728781374627960432631531000768454170387588517813694387026533821693001028741348079501184254011085544798888846474202490514333208437146031980388267780523708738076479930023984003372435014893785781977946038773784984918205333173748784828421807995061505118829507343928333402208144292060480525567978542185914470940081922578462133719734392538235557155359730245462422328126968772610837984955090445100161781655098289014394602175805416659231233668578342046131436545653614555710329495413362899550881654644818936024576793579981621924095209792800515846860084115975092322512408946259141948063415097969728863568768878854313898778528568307634479710258020705454035596649079702544048205672190845313848576671262459207314266171569151303074675812698276021154466382221051866363070513650338611685555660279258366267752352588434941519925053550640349054507905581812202441806443841533145346592518466238748577002779926337991647532854591498711248267338551122558150290495891016220149169484184245115876962105415729947361174702197962919869058693875217062302841911385614401240799744226584373821305435792381742053707657978045927875555885310226827262260437581126865716694210592341933062638095701662523117067655638521278027968925985493881902323168633655629041697193285539998516504261263884940189619777295398155788983054741054983418803997581226475773242800235473655639769874555146909754557439631417950595481632971486886176337914080420879504489810656982333932311140908289309485171870494817782861455846787025391521280190051063650976954788736841063504074323757664734595373055086881959371056998355932810390706549609858706303507567775616099626254624328936390383613313222348744833798213284176378071675149363109405748279813061286504351539931658324544354883926981664250194644682959847231871646892208148793843853734977025982162728117602264595050826192830996268921477431400049627881735192079333173160137193730808380473909138065066103223484153302040428573575216851532762684709604733981754271887467333396393829569229179576109703017507875686186348089359086172965776183894370478341463540785749300037425291819527488622530228195330260370715553574859648277976088916963002476417578544541740640883344061171933083146781919672725698023720206874068236743631756295444881507578377424596613482543872368926096276143462403656422662084296614784489584855865883096023061418412860826082488004744240927996732246350018336152746104192448001452899869125598231153793669013308460644980580844146579185757375662780027424527179492538615483522154226735358823987007281051138007920254891694381431370922021369692522732628411809823986152676086267337872535983734290675970734546685852010069986497732423970815337324361352493548940523321235789173110604580643810891412830513322357138523136198215471165871831865064631709905618112193943176676038936671542206036041687151524267304514245337123678619287831369762872717281718083896357289094081497029675756474886927172232259135134389235944213084471792740181118120973923036615353555425202826109925984870407291976259678819856963272382540665900084501800148532046288973493449591737407859554012691010869207590977373294824715509438983502297966221383046120423964956005032337212109996611725946582538615501417737162351292343007812368004688851312507425016746114016198958937025406558254210618774717339615784310437957615996118794217934346094492069295608124475241739231203966899544874619162367641391972892920080875265555851613126172673546502494470130552765453028485009551570982766604490471322470596074998911355019584415530126811793798366559189040058858100303623227643140073372957095571046400081507178843980935947971174449035358203699128716324997144485196910160311220142931585851863901725638176319849899860638223319939858469013194822593721298721467206860473185645703238595301523374513939715893002470118812667875242551856204071829899922924369143401906995625356934892979134440224642964869360185994830940994926199811701670010910635084028655465844839419079270293315976042560536972144433871368979558855275057761648558023970679185137160018703653864326372127087629221011887017787070131411287907931203402497127342319490851219969462035672671718720702370630133119780080255509156593278120859889757359455248219444883491697235056937338650246018811465764942235571160159546986102141239788019965970759050109397466036418361237274065723482765873579855894470384445160312271361920472024082922593623975245618555492628108611498603964494471064574445249824498283651308447827920521282204655930752827915165715473179477811433610946033528343582694890265355144896635572418713609638026747020726297752001108746292360389941169134888422559465625920567611718351953077246343768765663618712345969445952837587682431909250001821749647069752700330877013782679590884037753207845661540979042569371585507486590909710941408868404161285740326527340784601595964436925854591447728564899117898486904211868742939152556023784723658711538097209304336454735328731383885673678723482687033276974451387920642348579283308548244530661655909064310830661903341908805311977773005552986297605701646739810511725568143159055738860602251015089000760899409380138080114683101485953374452102797014444231265921629088228434030500986150227689238712330052842601067495778564195597285930385484944060033813771882497529980913382387669739122868310671959104452293038260480656050708593970671280957357619554984698432785536706036743457362434926090185037810585398868876367032349801465230243397672328911596847581295136171138881775024367811790536000678036243089802711773627866278707282819619859218319641910752571617511418821301758346782929358243386987094786444433993621027680079070123760313977297449896291427488419253654678176311338390334299505825949542351940979329947665374671494720542549484201338837365562111024359280168322807583738072007380480664087012654588751545893716928465477041971273781438559023613665433139659495933253657455023703213168273655077881494849679655339239948125108151704295920093783738604495096220277242622761818133167807190001982432156649744778039958326007064252246159740560356923373515457105387484185745582835173236618755837598936686029304723314922127974359040033496950759503279981550567206217993353484058090644263358166438464003172094330577724277320608133287851733128585156971874933775298978102318553658583920498250499429520662330798672023406891788361168222963088028786433542342728787712958129173398686366712369288152948145920896385318200015875752963899770468811129542014409519861059016319509220589038198722833543659664723195278171161453793835632499051072050337016660302018987498887789634259098882958415329830225042331912281268445337841955100552098762359769445534705837065865518006677599406999649375487296049753232042208187935374792027829581751956918845901757305770542493917024126066627160796525073253617328737013458648829911872389770887294996111764166669348996611905774612952797769605087697138531694241346086008076765494402025840520674259082490045515430122504739720179273085946490567138950555650220711343407732223680010502876310980786569531132500445327519710485303474152001199257078248544497503088586431528697771863852135980982149353470913175960594398698438500796274220142074347349355829127258684662489760922041918124906731562887302416141150320468779630418053197595779566796411104874990994397824192572085291613568452592767082686979485434538844595094841484665834506574857315395976979747870896036901854176910159861177518317164552914381402331087857135902350333564970861575238956038349445293300589310304763662015773241715988082290542362900824602549765048070349751403380428601479806524720560550925485276442066544085470416021631601905077069677417276512970490304767423124589768590929319095636946354945441909033471203892315790732694948278147306801529245577123075244087301310687603239761556826012002269797548495556093460759176549456684171352127444312163408085415713255326845492886473613745183686584119376952147782456049197729135455568468489469403800723574009265024372260562339717414201725444969451021460084960579013644531716524492967906873023862360312177498129257302989051307553453049639166188725695475065312512454114101082036197281132885345064461482752470859676215971758872923250804212707100967375420913744119223502568677861665461581836964792192845175401064600205601525971777129566578697434213624977709384616296394548159595190989684392063750564872228972250862927563025875524885753709921563365779461206416789829494997277313433758018603476133124195100001326884051608174123222577386133046545939325369323936332841003643433182495213168637959242908427414835421269161879279409696002313689403658340307993240086407556513656975482768956260438112383985683856657928366206224736342813366517045269602030307439232103529344137738032637459481804391550450592945751080172344002208481938814654655377499312901964578744812240836518507935937138963511883568369543219263462456734302126755279236686603036408647405343267022154233188213123642928075543552889893633680882638603836869700290250207799253583105115160624284247012976610677369136843570838695882164650008559901865181477986971186589718001982639625125635714856136578580818166236178788904439758638204985639845574514575486769788926460835011856933317152173118487563553106288963870766812777656745315247091940813564037051365906652363319448070994700294397754946307551194614123250614683401211155187440889989477718540212766758474061442193311806378943457267404170099029128571065875114294688989259033371529021746231741258230136794459180223381778714139351104786946489309791553021225458558183470785593069600657206935202888470239202633970239706896224119854208507105182505187556629555472448091581407055799320333050496982839227886100867227077486019204196524746340878459592555880218417928093827791034422081800021924274551523233246131666779301932158382389678824569152397740086749517926159266172908323248743942835297177600443696464255959925853970834877007470586536840421118292472299430909191830478907990951539140458990949626615770492825847329980017145449617725400288502332859363775712258193034746710900816465647202857679360570924137168045133244189803780167757353183070874713249306361130095452278292310754847316492368216041195773701946225197089922588891897642110709772143897479857610396141608026954083985577766262353418690916519155026451760989300362123283272234529549068628820639943601644671756417216294126879343009713969982575137907983971357909769499530891881998793535077582520616243132290097822643055124002517351081555542774577406465133046604235182566321101602834866509649629831591179499470144546641380176030451736362559633474580342698866079255053406540299800812168391445737450560059867539372345444979492306858847777536994532261675510200640615128052991776491609385533520423603865089342281428799846773869171802832263711772673162283243101695664626240043322876891115333425359472132203814589716984619281273627877410117931740543155093724019348633601628811857786919802652321003180178423498407073713265637649613139571683649695505205470012649288022113894292254992515106125984587874558548820440032967612178861701727964304712513015322507970986650159641867624750965556772945738788730073021187634077951173933329919906727074730613530065780923427871624394207603337089469560205210881063498779403566422722919132113852644290513775979661651380763131002143574711806922861220805467400361545750833656974286773380718086715422373573558204616127444690633170422926671429585279030986420326307240982920751595839410278763839452340948175981088832035609683435646588948305307593406319426271086672068395876701082761418112045488340110977642924995312031254289191578563677024610431641027420520947315354644696553159645223137549369848750303806559604212518357516406179803400142318540176111312898042782818262473726523129483217630118032718991522024981939532675014762858677802560498345183705493773082591472149565704029952455058763204326381699483562107232910396207699820365192179219126877724743285191898092441319607962916627544674533853455874869309668087311809765245980793966282317034191852889545816352177621595025583476172983637990006876362945380103425704188553079174476339223158682670862819526628097802721327143174974725666611380459415739498212062809692208894471761641257900298151475289691345517885094998818970389777567984959435215436474235062353763063671856614997475205510498316924241349329885253807501857897117238395466545041661695295904097970284603285043802626793054755291231011834666319505033553313231995620805957806965036675810341545158865194931240145623356348671808886981060221053180347686074279257060141079563315289551892346464697090161854288613350021981767758248796682624589415855168961936148877171903866554654970506491897310829967327765895205269223941152109153051084594817613498117676978905918081492655889453478386166730964620703413751199971144193394641856024130643856377971117732011907030375528928656178267223453549429844547794224360442559032417627211163563222573770731933860126734051340322942639549664177663094454731955433492102249930021413810874796979175251295982614592233098030287373305945607089327799570715022551930467210036850932873637078321218213209416026732795513047874465532670565690879805655492204482516146439411145469714383300910266349132869393212302858677272456677518187335037008297772794750307053712355135585488063188612221348961869193145725678546554360528883745972064332773271032783913540426831538883880469782834084867214351279399979753105841367291008633661265086315386282260951914938341467172009704803689677835766840059520408103388334741222645376953180247218365529285803155072170790424446392313875572750994576228390972478898903771256706310012586640849281703563661294363935048335685902536202955893840977707062174236475720803340260603407586000393766955188185289647268889424291310755743302106816933924841520307597040768004782433903075645066902956551106858349522468725582530666060658058951073432359212830987366319726916987535512315927998524267627203826280520432325207310678148220600109167354032422917541176557201719165815964355897745185597658803224805965374374273158985365009978224222455386050873373736524903306091354713191065279032033386947249268403651654592517954083837650338840955703074310824302339463762750404512565440109105227702441010957834197174852496669766735940945037109196372081713018237003084051357801209806838903509917110602194706745578856926562615889558915538300317553681197103724360441440882629606266217564862441616726788234837511760329405932130187882141551733152595705234131095187719813589398474536833760750119003112222666701259364708700823325311370945617946829240528582428923954679699095268090524054248857035231313627283513937017257840365599292847191586832061687082926244028816355213938742591882842002351521549089544426013358937741725814527677886548902814522821965330571212677644176152541927928382036748729307974644563260886418217601766604015248003958503321096992390788995886634967563389596547808008809695810731134222856389664099505273660777450064740933252703458847295740303871064799023936436151628431271720917153751430499694074357015597176310791322864442065990654830450212262247662047862524252680599511747027820850561017668330035708670439257586162505242531138743237414955720466582819459668409413761728729661514803478114649067703506622938012772034447361416327662519295269094911247482111069225135274498238448152516315663373888482942231550583605986896855791638135440373235302945260179232765081837992770674105980734735430212371403355255357830724084489153302159771164945481879103600207790568607115952504943017934372461364906782551144192165595194074549926743862184677501262542559665042110292409756760268110188124650299508206851213659232039230813539098436946338865384474619208893759864585628146110085499451660592722746830929841880870253069935176710448596586250662490740158789147501791186322003256253995415356117584101808263556145608160698322608042645809607454448283245067933268001908552719491872867585695297645721263780939731437738744234781008041430078304680455136593191359455063137048713695680267246196695417086723221941187709033747089153046625018538737580881193579278384930336520153604479427716551648186963950159984729757816614512080123204061763616955093474241996658453733194167517331928035614564057514938434231551125999618751219993762370969384836113419224102866445195252752214055504708278508357142366194563815561757463628183602381294071760563503334310240307452942210778718369466924123127108103505955938514868035789959128583992424512857930789576094650769480650410650140715808846034906991314257538935081317496768401300713929008253658861463479069962900931997778070200214342454773356802017748271069293489267853671968251997973055920958954974712030812473414748449729989011555562854389060236101570310170481614219048348792361063728828463274946085553208445071934684631315088639585747324960577619534832523773489168722298889041233173040769733879970598078228108874982563138649524239743047571228796094183552814766258606953103270366984076139544811637826852646739054041393552723208396716832646855036981891977861639498695826198895596993937416925939501872566640961136038538219581324339063921593565390313048031636633122107008324380568783504061807967682558956150327429583861197777738777633691232086792109962603941564988832531425897228498751925385929227668311674698949705968248701299599178818306297221295209470276181638311015938080327201820790719775135830781743666884807382688423293142708147900545559124925916643466985710480988624708414846640407395028680531525862748397237949638193425615150237248830868498371334787227744805996539165090159034292803358586637957601663504751356471326781558139051587908560041606176272371484315518017955180645276683645871762584798394237759640176009277381719798277992380127494424649911643868597368897094487671892937350468994129226652080016929634933753660015659425886400474161126966942363004199884758943395826674460430205438325143401335306828809676039864377523014250417665790613265025424245896294691240818238287972874917467371296329637793262881303412017733580670321677634009068696068224034503391463305434377664676779754717317109904253347981841963303070526577336065601161345363010822696425484174159659883695818649827392562405400197406656701493348942971450839684559762196583544246488699195828492224985668414449568642639464355909537088180800351308373195261900473294864463707844982398286200554130544476140853569083814921271888421503555484685972429930736089425066773128725389510329111477022756871013510717633025857636846370890755459887255988856058648711350981640732126391168152965885198906782874690708684067321733547910545078098147967586907160987951281304757388807976704965198071599441595631575882310677287812325509685423433505586011149030803060477546195830640143799900488574722756258809089992281858356903425829653875449581477149503400625708409490577489417317295088372201378439766426209574355795419540531839226035206993497337088571098050430181013339135599956648013178755314217231605903678681260000324810613363886160050530434847903822244561746739340902557491950736473615743802654544445741872694086035686702162896059288846543950563779664132060209970664247939441351536627887763103315222661652259340319386802853346344304701109461065718050433583792796005079275891682839948868656391170800680023382951700617172768792760314550735066698364594536046029470538918987138678013365498783008423759486471869654479354550318430303475335085264839309952130548659233484699913008256144214613348922614047065490612404549486253879683960341536546351952823997800359322033540424599939084912216163629883758993372237427137057584959116749038116526410280540664059910148954880790868171288204652341670576981031008497022960058504659954790487609050862533499694244377022313699129951827748188369353316314405126550120514590120693352963204043885369836830084140657247970195973012833917781312771002610659451242502189580610430901848240489090925997621173312035150631672372778565801829646954669576244559514153793375143534617154585296268832720778874759008913395689207195287626571447378323054025711837996311016109271509084141247971308130143384534239749678422064047011361337776680582110974024960409540544487134376751668272202675503035540786232365323639591545823443041735611860100595325560181309429119746323974938448011534917690521428558615295228504241463408696378549927815732559073646409730243481938914640582378562247041618970414379182609203881647075671634714763779035647263517952478477188412705242782681584798666496582852842647591173201102685928831370351930369344678601521272826926251510102380342435443691937733973050209614747647389055040455401046660046984795009278926603105821625230699381967737178264016173145038831062381645087230904762417875558304094074532669902683177108597126550937167238894505088346681251067489097301585407515127341528706103039252279172586869984321885687054437840699348712725047052143572871530539236598993204882912158623997204245156651084180755002437442869291841119264993951069410537607373222263985924666954740762402376594187337571150936034278718368706524005625541590093426371945353663331767333728532034140304750059511817216934010288194372819310769696733030080101595787450696263670013649798994323733836753494833008075653471339927254316362763071359485799593635216362160135060456556874065227979141067470771668525638233791174295109807164493950575954676980670176004453613079226696899214626365645466976694529728717826121707340696266397139977232343771799016739274447980241426312999098209582678148309048622268797732947086421669882267277698471131486231986223139537879945441115837869807742309746151835173826357546940863667331759367660681912933719474401361501977266973959253596241609217934069737370469122231986012861184496863636872171924891658030253293039717300903056617933613598408387470035569096973905141694396739872986817007295028298746925601258565927893483639457598497654073414039384061667014923223327947085067929990427462157264397935944783040662923497199173999527475906378950869195752766207065102955708906006056410923937646290279700600612963146977194920054002736917395860642112976317513036919601735307136659486371102487967227637496528938540736114568185023113194634795910648857907122971864127891016481380070150956642228453690924365807990918398320470919529048995749803371504777575459690039065985652992616445482086664553942906474200993518115629295932761333194396117090434271147113434968298973140283683609838737708645991096092461678812396741912674325718028084393432172863440220187727665445103768348128778127890609830837406050551328523070430554221111250452345770794134975103758762120520486511920254161993763239595194757007257380771754875178010574151897128050045227732353496477166744230148058510058618748877565690138960628190075241849055647516620256145477565743879669559247787517719949636259859237471206180029194152084690291678997876628894927201341248239389457930521084356511725787981724042465529043202382255324949664121033773362932811261756998018917137295607995159722076216727792840510493603441191033792913827273174594808628893456576510054292088613343642807852944271377349128812988345689852685751807960018862973072672545449339244250110789516556431680052471806701637098873072399781564695249863721851484312845780782750148373508361159710775130768709527691579911472334398561453425243489496238638060700368830842216728454941407852064254141342379402632907470685538350735773023866954206554755051915467648901338028403321173459780805921197140399558536056627203571048115261774700007736368191083272684446192590125357555441127592168588319452641931797422725806744336433573028937256071419402989195398999311243081380523410951311732234636515692908844417348674518776964850754914616833597965839859256279598158709925098291107992108389738235031215851786941265374906799228236425845559446582464962739750325216559872371047842341750494089370362032360871544199027539043644548779507222319334762646707305259832676966720513007683333112697254797794305513587038787979170669681442875125883671859498604957363321257845093865641179402300816894204884619022099828536628763239309121574472369854066688107660279800314715101585633846229758357208605810165121602430682375186631347073097852810170754118306524126583183889788583278752648047339060659010113630689586322639815161742052054346051701240356578763731846349214355841726097373073198170421318392862827108552712282444613739144430731560379286068821119927266307911946576260487445908801174246654822676320230289058853325312805723434017019289061910364856769276924931156469055168395185490189330727394235504399126720695690003069082477236041686061133377971024543455245021724947408492650788312305646689829624557851667338124206643700317692608013285430146943847786183192547680605420613611209625577180711466971567830391671551695709018308463510141814139910265019192622261800309632534064511498731826995158858591854911444286337423459724641314751572496645007445839846140951897670557175012378235997733494057385302633277366897856854635619446091438822517904575055523935934534831305752178751776143846280887885431891385902671759704799251192600168447376893861894171078745066053769934022139259908211056979647901842514605324510567749119677103389734756384954508877974458763167809885172505068924970675845881237465212339151966117080434407703094030880054787653451021364015422059946679463242630503205047643296257697048192793007014152997690796623839599214342354255210100331529471883963432527402725590572258680120313552583073299288539951245898263412751338925209876772758156257372345455169636559968937475039419376942287181783752648438832723936297254734912042978614263771358364817623892777264073053762873961806179531435333398881516218796743259512272232838514832605918819790440169787234721684858062726487537406562878294551258001424921798808173545665503684383084445074347594340322715820984008709533380278493576436687993539039440545915259918924972586343938278116413235922600887906570454209182602994997449794413020030060259439167264125573879655889386124069824170288823948180998938914948404994110322826987836461551517104337962333415716593711938534789095393341577519701864358498963326532715477900757878403880876925337830497753724225418014531564417467471793956592857903292054233990186408837426018297660443399256180404111635024847764429493193900018409463308835169801962986259988829285374106759325788532230223285065539069195666797772005397249003504254356064843984695915764461804996826619571347616842454379386654755708576020361921130023514229910985673707147555764109112526042772708893645584396221543185092275566023919375405090138754042581265407279254988520840278018881840312446288318264281053429861220351732625366829733920717825408728812759216687099979851403577412367629798114615527034999751465371323401863792633577994144102732182008888227749512673629953199719879563650773747586643855335776099834698798004785301631467553973427256537611969907025386896479478874548213090413968441624048639609829671480234049892552993162011532122988364611717544147442422799798356010978591650550017815974770339982075639080361327642912582460404539216666803576366735337256669767742039371332450082493729186276814575064731927030166846745952169372402705378835693021790127279474592382244457077099827602968064545752413690468209856997827514171729176510050833545973280682942437925001259571797878948361123682493494767157607438062582224310287026278058742242159462839645330317276716324798350025530834831404888304801312689885880070110105035131891234944741518457002006288295152066305592135945958573145363718863662505986753130691550917732032484827307450767050731385512792491280395163732795518813915948916348514760519446930109202423685410500193340743422495921478770127838515386098126281742694591192635290438550964812704094973521786811133796632687342828169242031916221183676087501031830719922210714442172381837157981198200504188059796707891205063605934209417612967977891900764071077915836343070018026103297918242206403386137999953674334786914784097653995163825377429462510966048633777808765802685643785086026505510182892185533906537289015110972667982012735005927607533029965975222096286017255015753946407214499265642196606771653911927430064845848238408004197018016870515314446652112974708177846284488530328571399337026500146212758807510422851421719387682940025742013236666362419826746554654845376574264094295430797732141691087504601670182135417028809189501917214996535740295633986645398972418534559046033643872135645748424032464466924931770701617122192276417171977713596980326027382161915171344862493199343578451698618446248259977871134888968946068011093938113935854971218071141749393523080551558600604040725296617086597452103593671715523833770859621834508359233292462848061676480244361854345890943060075671827753180300013969990804984128502317885200112080880431833371617448914093547271346358018379155046810832323287361238134688421193529436041265636746714423576415340345552788101695268761157796379023107703908452652035010868036554474728479419565919825250673268365554867955907541113927242836514456912249045855421298501052690364307136276657569669939065473811514956847112005444383228486368014624443393173072663886999775024191673750039561350752495692191425644625203267059388376442633096253533554408728420843056383672219952473225773764972142366144150426064672082922621953280393671888845283336237772808531638998746239492910763148286223261008554504855357002758348166485351030152703051982873981007106127044893442326202686277521635228073901260255292556004373000508482350640646871323200773984195683504599913698123818504210740103389796966845573711894576155799592357816227399934307819674236676961627894120407115676471718984012120904331518977918555054121851777380286951861732896825638426563837189617754367608820390186229574960323202286155481133288816725725384851059989658375791747379430250438725330423916065529504222116355072654527358945967475432426784701885135107919408770506954363271615060138022510125889247439724507404330227649700996360624694409574083468581076641180245332401650385160230079369225728694163201349969441723168899046687039325306977270038931140705583052158935888995680763888812142595149481240536452155448458998271665834670436053779893168839637678064769158569419675906122878303424265381457028520490448778271919730007560747855789345110934581679828778135078715848846440178131341742760628284457806081387504565354573645540900447185258750783843937923404316029339843801747984812991740173115052458624992459903625886220591459671791724308508920508040695962023378436633622510704331503027317984989289216247587943990245788779527417713246192028160552045862895538563507032608795683222520505232230619729688524020406011022245786185872398807970840843653088170006296448619706960525023699008251443281891965152220395075022855525175661500400072221374119618173219622913331684935942925052153473932311222970606383966844962396188109489767873169031398249593267349855435107851601372317515966957391519034503714167719362549710987924167004009559941305502662751412432207000553699376299091470761627242830258569749053477502489602723176085980329064953099788342176111729591910598543594306794776978630748174268746702803703646888373143239254688183284044540239267001820589013214624534188131329271263975046554611966145541026132987143165514970261134957806739530447374438769704625240902800383261526636820882899992530073399133520852936534423087253318980220457164207106619041851363767829872926598871916719302880235469895677278098870800638792047606065000561554756451668302118931146078755527693827075709189746517015822606379907205485114871992339937423883965578317839627144944817529821773262074308082608603498073941464810948139024233930074408599324920989052890342888660283467580915683974152358377485352720188880962696640075803024627842151775365401815353626863501744965491476725767715351225238704019506708139830059098006708152012010532069003006966642464240783074784681495624303972400265044148741490324418142790205178167445545275090709862372969204746987362434874616906274899066517547083681737666660431037108817669846458116368796287247379687805229834070221937968053714052275682345160108006047204648113719705909174408207308774298976457358989642051164516047302089337490494252704986874971326478195384206678597516908639986558773144947131915678481239180258450892971066699884455414582194063406799778648890937360935152938485810889269932603060417580264682676536278145909704202905642866723828556624048397932559875454006971785328616948967122786548031665715918680202879468327405123731685492527722515040455064767988132364599510576202227976013833674553620948593306465071251465225203469144297194392195512449429569225442767003372349182366992828145398736718546100116861175450742585824255158835758146981045199103162838945693999241273075070678363144462564789686897209023912295773785743413313513888855120265894347462068764740201803238778915060622013214198908316999457197009689330565574350627034072255160817780194108468293029511788514275355708285286809864952220119384983335011334479199025101158461681047875303003731916701311698980797154111951940381244207714829686080135787985964622495788297345292819678418271053707728533674841947001653700867008200297808174478301329840982249825168388307143845958838912995400605208483311816182861335050572680646973475775709073604957782012023571515100642644996624612931424086721089818437250933721930713189739277481765315602880873365577000542375706606403820690563360823300835286084736445059534082541342082137443585804888771666359731172241155421723746000003722627514522055187149840396085132194507737649763430212052799109340460711243076089203426371486964383264143698868934834976314448107847911621684394550207693195984382031189450493351213813700895399095598386805039825629004125294095431440562290157785024233543220288713696273712682041354672102890497751800616227495927542367257182508136664918601459985434328251016647067511720081621462383617338226331609286141343778417331989360338878442216983346936584477837104337042114036951058416939052926378061619885877900906219321727432319552525192525454176470212148892846406223573303621424155567894007703708567894882334180236098302430661331273334252311979196732536381912410723631186904042407178799346821636387100182084923047859505393974020591963383335048655141060975445285793702099375268339422953524550925979243802343101368072746694662578727453381645395064749400705910090718548020794812517583814718286219187368161111002401426310513143588310733657437030209518730622604752240431092916700220936308930069657639058503058236985284785346348251193817897297771584104379265284746305119324972177508407235948580075867742218725898074452705709827745799884547774854209770014183665117460560166083789767342570779478435453135719140387980523158622595900804932854967290398444249947627232636288562856024126936501961178382159297518720124947128286341009190815285595769260875976433881844211600202024274560959271563853577888198135424699212883795221081063051960960001459487275424615081914446154416736821660901497576806376859338499039797660258054341758083852667296375368370860800839863625816776873406713222932392599335267453563875196485538678417791421508995977210394854995261995855773593307988385820314259645964916366800909841195974806593608951498539405453867215789432138493021809114306117592263102333938239633797399540313344289621482496438057104501912086298860634512524590695227986539817175145622462349868277790219208358663501450148959220584748402838828085343203636927508700793687293194911311847516668106384675325920429367959352662631056315189042571549081934985748394844593176415944246160011283937298727622875679506943955483745650135350845433995423761488119325275162735112875568273249297981909452402539520950145811908876036181886982890997530153131151640138010836707827229612272345207830524414980556801372054160870234972714146744540488447701889950399057093792658734513389938314971172688441049212007642599100467147785077553739202063735441759549862225681554493262529434681761021845767541553920892712759460234066646845978837640617343617372192415465430622886511426490063806242413218019769917810713178836353631614244568893225981175196160308407981487294100049059482077312242207015071893857092684907098751596886092343074282201281652901325787728181999443239594410967132112468633246664926303210703221462465171654635272017691962117021611461340864917966043092477804417380318347847161033641722430798232319536014842043751020240090508140670494569531866100135814212784958198054324709544675510365287424346060535182551656920312741290664369797097746143303096066919068139076280973667706579234893701122385148891279971977297707236270274471873543751346209676761757729190734356418882191756859532570531410022527843623064067394101628866377705123337019530235428838105193148923346789369012230005459184620431897571614259681575786193262815901083107229654754424145693588205742686185399202027408035432854922030277443241982941741636319097763367909575643316311937251023824882778382500974939906253879115040490772840227304957217850904481658220299869756976523739402429409781542900177449572673194192170205207813258763657611174094978119115496336454436006403079520973539917030826138969217918572326650951382941845002828295248695345945013025661556248478694737653969194908912057289056368205769009464161958530932541148274564116639173277602868134175815138170388721138016049032075824226384509574205520260654401274216607357344674327580483546559479993025907785601381943178456556085358543463169850995926724872705420200244721917755382265746955019621096618097601849978098058042832774543757613547302470385351717221046810360475526606994128148087322827420956500468810355459805472034992502632721699780363382684301319015318360216057581994613938607422426826144499085992079000581695367854442243772431485604963034408431613936026923403163811702160247593188747792966412226790665074743376586241965820451796227148453823981931116661091288476547212809852168589830387907262560693909228348306208679113306533552119266770601800292415942403376442787280167472788928297318297711478287044193732254601464930850707267447701147375061326222614318926078438758658528150480992017029588725062833838199033943320078382529716457408584587219443200654169740769703150467058724999067113638508894975926078376663641174625185935827359643077017648547037885250553281070699907482170152139440641111547969058646559123804662448908798277098437028331924843930786352907779522794517324862943790123639490372367329462212560573281710384617367280937539634663985522546919168224855828847294694062372675640704683466933625768497738415363839452173758701218229801305628440026799415539613242469972555667836756475638713004983349275865267807817012681304951451396029095880448502968267483107551986601773380901737566943437064686733827058245645986343152807998631081952009624203207171469442060040175269489375712262231835240646328961381829899169130147620773700422879762692465914838871710153175628984503485716370553468598130246434885359778054406506224418581233690921078559762615096586844610805842106051628438788105121107997365113103898415179903328737923616520511547290828086097097033107883192778832898827166429827728762121378656778754717857913116046613105011838497883662177026343932286757392300024072069473063779360186777986918585118094437470526472656443220694568560416093441999930692562254802873588043816488271467429387548146360083637563066284180084480977874637249312737756095196194787986230042507549753373613808320595241426852856972443294899327555158680383507452490809225095614314646829192054222647646025841645147129754585219619210571818016069787697916624059022365242302736975237206250794461300521282621949398255924457122877295823728793391524803808391690914054180250605191812678393025656465459118222034373866211058821409115924913752444748698294644273976248235662163503978260839904085604620009810496026951836671625623497502414074988587047413811700859193191705835617064812861500388398246811513137590205446205202547049164910581018508102311813362676082265571691432543065103672202512251432558738208415583046919525802332398419704049468200600573002407653990357907128908248067385573541185650448855295106232733408649117344009504134249306321498388281867169226668138392819359498017867650006308821469140634198275385427681910460675786401837711619476272052240521315776903133904192527266792523727067324876353413954391284270834593394164828923573096396820441435636516917171589072329629121653210948150698726878011829493773803311373061874851188123090736633544097626112538574474690376697506536434001147320782230621215033449888930848129103041444651271165746543532867705469469943556407762475488569518939275785469436032754735639712323273928812632402380807076465053244987033795906638693666896585719941697314387596377184015980395808403659478219451752503435264744612270497486466563654876931325055360774337762021978932685771435018048869216249683094796496593524481597739089025361741460027220570395580974186752080516068791760624559227192108505895001938561467836164838440780261603423471952635548983734886420132060561476309469557761623055262506545896994784119651138985321777684657786146702524518693113871975555976954983472325766416488520740643271873119216186687130174731232938403540432215145426770844495164373896078266923268143217278427476110897280120155289698050353919196116195901335211738630037754986968976709273594441024096617426505499517032220387648658340763467041304444029289084016182715406447659265047213703032320896030250022673745276750271461277650947133254849170844374242939698586721463096220422047663976550863468347649922276882737046127014071187838781830094763035421785517800280425859738257716810363734990452128712050945755302258172629831854534779893018003220647364144513230157616406627776002613161754487648264071229937908133783942513612935281697102514326434587422734550258467831175075928427986215735487758366793513527061323411678705583985143257463042522208256007579085697841919978703188082183693405923629067245716163482277925846604325725872546091329686616592001894224363610394848226677450725297149926290725470583014680444788840792387150170671757778280897053549611556637309518204455938135063801481762148380118557497180621905864999743267281223902438049463349681196559338407826530148755205951663548426903044211029675675098231055524976026974190368739804314101956028233244232794114684163203700069290719775576939538506128278335912839370591592624521706359428973509242419314509068170060289565167803471297407056400964683841284285110357326019518079682576329772391391024479983844044357066521544434952022738533496675737847229817768620584308911702126194196782158862696114683566704188656762771827561093470624944995587872660880251045353378816900267423232638118949384227504835779757988800441036374919002540855343057100141593977113668501120945751963724804882916556691988054759568775357953437028812409465609381506948404402349109217880129908792473376562020699828131193578630886591024763582894774390605939945540673890225956858466552360422163712362755744591753130423253147199119463944370063315504267775429681718359134450715250339951831503214053664630886726403991800793245651116946768571956962048296618454793488886750668030917560536959962936609166807761094596471734147582140403765059185011913181707025569421065624945314960861372778089434064325355318239466235477368751054710871338305948996259861790072872853712794809473747575130017660522067501480581572576694072542889365395169325201947321075182369441282328756119401658917894649086635041944876693495251227791044576593715885186584790115215523184531316341629636374586590054259094773928727321097176112792992561874361082643817544830458343884774672887504418086528211936034116004623914072212295095482536309059538054095977128397172431203122103714885036254290177098006951130261640934698730861357204150499048993846147432260375198623529571422225814917585996684565690186695245648455861220983334479430302122491539037137400852647172781566995586044601639684060911241969949594841041212070877466439067427446400347389269047102882773942580472194245245382495864447210538659516668672042142843424201697318203943758804929874107756699783898379228128512330463744207363292001502120499066455787759215406485627463472869593300829901521271645632661120339001474961294662141277106086049439247550323293337532422698828321209326197412720764118242772286275734573335972775776934287167775585787342427904174487974204066792199344211407419223970236159036504715202308177854947087678772089241002291612393319032077793675390805424505003143473240468180451515277277141206655146903730598672207179924067137566086542353258535047631023020749824830298453927123351720990822087079200836863493098886936494927146352214632661970842256635598125780154495036331469439921325357167201880659736589450926515167284809861208304486269930930864828621224717025789474848028135994421937812370354874650440360601584311643749404244123084028641719010480288448491986623705879610387598526560595933907739055625720081916350581654057079368043314941397087027725194541661561876957631520520441286396236551670174415907280805018446114613581713867383562181007456671958989772781868006178467845516503499229028726853558688069775333333660551105372486335653975312835451284534461357193981279021915867073482673696733760862473866322724803004269365009245295205731795460197552796280418588654880581493140635634252156256626445948337155804946467147745907886509579567541637671444992976466758688518889071915707933285036531676732479608389748832418607487013085887485161238466632258529871624047069485977094061045189170393730485469777532286504714979572736310096448852056181708112482424223446092861301367411366103914712947361679527505717519787311454047546855127228959218466961694981566790027468404445753166791188208120144064150860216118457521543849776605213424681510694188125823797489584647140946025750456208937125536906010045410867608748669906830519124772891087716046103475199929040649917272892405232944481954091884932743747279597009779304851952378300790663558632101676048333950425011571231819285757204795716880671036769692045642597242364545675710861397573004301792006573527749962088809873749158474429698014176656520091030786107528399630744326578529677569155337370974749192808077194889941958866778277604185135326375666403119786659866075025306751297969857770782413586722699997446710854019356498282114549847416682409586387857220525663995627254092265340854953238814170135250430661062253224818960888245035034956941414701928146720934774935496128640870715457395722390460938948220781624692973196829348399230583538741632407664426213571590050661008293085892645439682053591791213863335861011816210077554547303791892575756998277819497165921263767210230318375692669349275165388111563615472363867303528396609790326036619850849149711932966005373031059970710267089991881092933156446503724671650505719316138742569766927565582659919909960242236536861574306752362523060728666603015794003755121276970223514609394312628041059701024736878032831112337788974674116716455057155755137362348298973952732846863316626194135866476935076331780513644748437999255788421336476318897142062536173573688878469661403047569612083950116431524849006260100145209902811970349090046173561412357638212823052100748773591171588234488994422202257440327486226810947801050991906937736220898238469025955260329681767231325805939920081252632606504060264346933859564700670232845356049272645640714286777235863639594927124239269781422389603855466498027326900386130288469628779943704466699241734084743556096404625085580488837988117341466183262786393333341538698019139884003255482195257433761672128015845449943702661629871687116939742097352358485249313513350753817266922793928415614693075995552133080263296790442402454386458269176296050969102404976488706068557815956981889670139473010729174104234710852638350126631583735577290460669945962898325860352826823903131019950822746146319149245549505396210665748808448623215282259194785521690946738681180375348533949361255110705086531080193627332731888208100131570464961742525533741390902425822881464612329926491173359497059419984606408500324021135344193271678306513059481764303616957066408573003478704191025060838434184469163909698838603019380654887555954606989559659257330108162378359706650659141661670353284109373376590195604418719435313721346613882294023194456026021298656200400168015182282574063978148436265961407227996993799214027790447643115611236987004160080279840677355048542676492800449424501570681977313545789309216537730492885977705001587768812121003105786250157785429422704059001587569267501751315301020561196235259718553913746298425906195704168154614907418420657483441162037819674203540022752015305594406652730712245385267893436464206470762112258040695021783568698062189437315549183138028356969644795159141258998693666353869038746195276971536223240502430953899484773322235167387299685148592696063819521400655657185172148016943733270437085785017383867081100251704317186511299583665819427005276079563594996962515498573253254960012755278288330661711121643979279690066166216834254580414079199341185371535429091307527478448561647237215176170364775944204736543027957889958971662337032944693316256684870153553456101090878222085469075776188229569782457842060289776426231151704177879159899874777799245214547159484834015571269498775154930395370677182083516615931852868998611952725577826115837297971981663143153085594967524415865815111958899854211534452687958503529064630805981681668876044377660428446084346210451847068161291776718282770199119797181918654791915986715896719842116538101820413490618280396323236129388566316656834246261119378953679466473592381389523051957989608945930865993304531344327966741611655489489571922481522380406578357760871243670311957602786634683705330834001048124589525950960832889424840254717311314284123032068799555008263436161963967669717871691059160558567712184431628151679257940582612054234923680345150990264097448561252039614332163393310038386703281959824819747623729842914789524333070649382940185470206860046822110279831541213978439812949560316932803883859129810681087939181340439090333062042738743554873149773562706373955019371368528705240716736006200688319907695949764699194895199545540825900455402063692753433714972623888536949967991348684144876073567876181127129076726346492988250093125803800612752812466195001624167128695953551012509438087643095551430382687729373096147445067785550870737265619844149387916247169406937972886177672780963189575176999411819435110269226437889498403791308741830471072414536786680415211258991245054003955384275920296341170127824996993948194575204088374322165834044266030283805446871525350642293807820597938504222770684850391566126937924694875296870619846737160079205512739390100575910350274829162101453983823621126609076276963358044386334251267738097724575482539851627271897425163355210885482213366321521569979274406887401387243885957874513870114456627312136752149898178919913136499742751144624938656361111761752557378492872748544611550907851519920322569012922255245308526314283073327565605592349358938616506567733507546470888261262707579589829611333013683032308347029461923050249401322986448997558894072755334513986605921380276498235887431691898583904347231444103391918955345648402591719751314605809643386994758447650722610035712535087995339570213969381133643857923374677532479309567545772801815913744505763147948608122529793858229791278917786491022655261948502294640174802898028563267125377260796389539073412031803896469473530096678475886775515597592482044413460480244950972859940689552853680705306321703215410308409953177784757116859047227141351007107067961345309730348575978223448033173630573541324663307050470885495090949710768356405716563540349417714550471783292695191323111412317762707528262552795932960657308307663098713234684895382906751839636543095705941487329442527364490264726542954004901779068070324960814713123308883160329638618598832325720270365828106789112006638127372520157685391340267166638371060844924920995324926133484115483333237722066427689254167269588717003199649274111671168439056882714686688560704753415675790725677283713331469161786781425869892887654237929831543450643845246005265869372612526946686491113534135345741638176413956581232871406173870682414063032882698476524182709522731667548414145382946435044619094031079060923277567911552137184289016795512995704421523691078362608717523999879165081380416730280436218618245826400087336367662922433763112150307098329570428815013856738362235546430178984657188138787793368196906107683421122904314577054945747886649509437968862790298028204166224143203482976440986176730793932516336915819941458885429908959923620956349502574245046664631052708038604042778114811521181242185311113316434347357954670613729096953782703095896761909985550441130695393076143455991261900463012360863046294824907469882542194430506192948190444457163739206165040684728154695995074349958666914733224273365035168675912985800719129002765077111107413615995808161566720988573675507183974642555143583711160015275633001062818344760826877801193290546194718759331785907614799825932419658639797274177626445713038616211791320239817579059956834620584974547301876437107961881685667768634424860206547471897671995136534010447438146390337968492487625210163723793319827411654056180822818631208721465765616530345444375286132034497682177334666856661685964567348483061894477901317965264070864866534352148136531127434018045077528509304226739123640167010021237431857168055455645994506023684987029181737272068668584290723997307993271459024438667043490642106183826682665763379108672582880424448108997403030435077520692516796924474524771009863890636889733354935050371241140061255543246826753386612451442340142035513123487431215520461917025701955746247750403510296340249860276735240082093015486425238594920406389153495748481969474242973726333394747501327275772269695042931983948837643121215304278805527365048627363927191372369266036801241230388882059171807650209480409271650706457469331261222176635172335379744484773662185582830436209302841197242513411497852573240555624527741214638037278307835465272523986900384408116364373026581878150186796950484986495532660028960476075109155426665017413262011128137785727593491361647205953225040661130824626463389020829943407668948130106672355303168579352389496329389194379584397636264491816411249750525487933462880483344677453150520316140638608854666342778017201650379420999519696100543739677974022341849157274868273813968149514896532161965758719277652194229359157687804923206588585577915187438522512548642368118867264495028163105024458231494713942741589084594391320747932185982506391792578002990326296460499248628111861887619520676568060292400602784927943710015902339934680271485098800229729591692127344700043480492220627152328885591652746863448376006282315874617008958809657220086568524729491597381453443296578305862284313983203813335034647693879144952826189095762820328813903824542404919801298366205156946718726876430792702345420967159610763883406212604035631082079298894154732441709382353568414810248116332727315877140456307210655475354047369550778792907019608913925990784717912324285983343207827707844560238287361383198069848149448164261219697928144192484960403911855447795156167355134103098822024508370327267200806739538782207972075040140035237278910386234886039160749529696864636474103291761516387875393939583209583940289423360659143014627986474867261105239630538342253457925043009208555891571836229353818724735291178707838748440736693872738342102726677531463088461191031858803031830184534528138945109978089756743325558695428049739992430388766116387154343501372119406621903269940551491443858877260296041390761023068898504374135296693037262509298852110364032073516973910634957967359453663318142142988291425885908349977439389980178467576734140931743954900853932472610705652037564698964929736863494971122798239961326033954496096603553584646204617068115511842172493277935959745106698535101880688270632975838718024864854781809930677642973093373413700357295020735900338085826189159902857218270161347338815347723507946219955705254970309083263480714004247619818650505449127728466064540401498552354857855535645850871802790953168849506293966130890266069948719029168971615821588798933568702178425584542756085741330988664772827383332780684369446058989276177949352874862808602096584615226437833414175422921691319241138340992692131876405008616023384452119478472975678546270346878369390054833129457400688511679684513460257034236255158145882071551126839055888568827887142289484642678626585549422290421089226864731385344205753803851401459570890750567659038570473687332439114940783050959092542630365003073051774918328368531747393126209466449200112145632141834073140035313352531724107570935353317903937873264776622551715064469632407639009580007506489557126162366448180439517101076696188928248241442363335602774950746073851957726826963524757369182113417777644184166374649341540149856840672005089012517669626986670018120753427441730659979177238042782345349287529930142372345371510822815987276957454530218594154759457869131418134237341205631524299241688013291622367682192641255705603006116182749443869853905239774336549008770691990487642108215545176095204614687488448066252136408971793994041489231835974443480610485059857471522875123871239574617854283419169619445531281431507747294453264873759846487877114083678505280208797793333489780579632441185309492824542547991218130410436637261527964269627973413972415443278729118772597093135236452008296024705555126159248031740993225804901290478510500552287796522390321909609762174772466384865069280730545759832097489678537424188087001785805817611548410303422174123488490871521396701059580548820173714748098493607269322416848290196841620147167238118756092934806630545659403593399105542292984022782475248956921625648787217498837167043715527083707054654788899582879825590505631848580336702556896874008279139732873190893295756697336723540764304331545228556530457587161514896068822297556781836081710904426837220578628912217533988815392760173165180157883907127231462572120038149689716499379475582034720009284974575414712598496559632144622136305904813493608479626776473817110108819398101513222171508266749326585309805804007348796564616871619195049882572217785303790614291170662941211456656430550590164773646967199319653046170117241800935318940153722162746145419077152036479745662379681420261678789602936580201460404708116647531330150797303994870515889461417581202939481939137355872074266478091871239348778344733548651630283516192146332823343528919693596944093644099770474220394752585499500210657247032871990394251116643866005835106205193783578907302953549122267154140484386209554904233652121244244355782705083001371365419331281957945424750869205382368686195369231380387129893816189544390505320379749559313977820663031605497947894740913004721716738731800414531382046027872406077299183441117015800142472035248438539315048029058275330787078762720681475221063965607619509404191325263332907074334823894788511980636352835078660625839088566564903958765370109542417392968230265321151979920484993566834433367716327539457508249644435384553872746488185909831690627904794074972889634906101503064041537760766184925150969261284482712548194409515697398489592681321635141629364439175414684103156008558878888055834734483445838582199365779995329876331218889197787894046010075858507528410241982270891549018743381926678773103815166635502903117863188636272307469146649019005598677416553690340281631595862044294272670946475333320201744888964620668320863145470277590964710875868140125532222171543871144142418626258853391565472592459294821679261350702686034118979995848869786429065172075412521938739044279856166269239180287641862331043408896497581104224401080324258531769244880524841043468992609064964910055062338503282477393122529525880650820972438379003394989997321469930052154726146402398316991610625485600286597218416965866014015473756505207226424718476056733356923312696320441681649962956466609904169673964829299450684693070629517608571364132854559251382221362202019916717769547181619570523565695751672205484000365873852015805013957444220258010714103458658080675022811890679988357980860336483938463954546280625288078158559755371106407915657842943245360196283994389430504235874370638561526673881815321916888287551008131806347462876917910604474377282008709913794614210828527263670987508880859643512674626226234126910736343659199437446813162820145462488964530228028376302597469312930123763118117910083182698991329230238600955157408279261077079215668985910873929860147000191451466240293440028820983682084370116042978792465855797525406277658645637551144087291743224185670721248750674161993772784227587227021213046819609657818390681527580651503825954473128199306590355167535866987792414241517428948438241197254236175816993506674175328267521402215014522093777801697495009562051968954535744806853390086996730447366031532192887729360743938513981538871102186260996537729244073607020837859433837676153213290648678148430137464234178335206026217516055197003902657123026115130680704922863064767804322758512444835166289462373924647676915702650279941429161696087880991785747776807507406417465655097850189441083764105300059563505602143855243844299947260469425023024971451297132957626566713724083791531520505025799511092414333066879614588553531328207542833235765235667597715896355245338768432712916939566782227806031165868488822829173769326147665478820994302469686187107570621528176882299724091094630120052894933160345199653008683837370058832483687881957088567516116982875211100299747706631246699362506815783472209267310554640851611703179934470898833778156277659601553287408254101835353624892358669658732429168797386851217901505996283120575264760390799622358482365471551296973258380701696966861872499188917859175370383350529183826438992629860322874653176331473452139696033700979255826742643275871267229438879403518392097567132824188738983745387384525921894214628375603117788210076649987328060256740028258725196037375543587228590461844354148977826530750758912603771864311602959730107727837599428526331388368021605714911462042794772362219433725094775580867799215945551917983066245006958902058184312203536705552711598740896485529226902584283026912857054283522011654818711206069869274193203651667018641890910435617986125411497976580470228409021838814864436742568277157117893539858503190749745377306626252891519313347927844644320333199501784665548559094867139135078488418766137554337370234218029728924002318581684329686456851844701526173026620732347371612053450899402257167916739892463134227560484358211233736770978718238277323494681743574900073394505636250716714064102781948260493898932892802125087268443743326970407536470320259128364325456888740743638928502869610350327531324325002276810532421031851198618370130587961961593813333778201986146205511497520725584122246679419038845986242093902025273714342280670444434579612466173050876784165086917430339800693279692345438568722256827367583984138381333260375020011011183784175654737611144704802681008406008885608379668880328898458256289647262295973401146219695027385648429808123472342204774186103168234742567260943947571743248183117978009887412833149252434472168450935696592491135750774357978913338189827244059789469426246092964216306648673143806135090935050381498896639392051827675428101897907467959890784373105302694432157901779442775948456255595314738287059253965645813509845077757367092453707509287978124681313306616981565414838412852431820112358080353375118975076718554863347821593796409613005887207280604979902713813010387101038374488320081490874036600047326608335470962541707517411696911108345860147852876526900035724846989517962272190425574643004045342137187469677757965419091876633089158010258744129799744940175008951127662320303757426570023275000956479180655262685515148784121700486069072326407734621054565725949855212918511052010931686692827616081933050933210244521186692433492059618554502069121973722546915007584009379035394084037881166563696117039113467586076620996647696446487637976461685210806620079018447230894110579147108447720048064439218694530606836328060580580349642256155597506149385443522347797348125241695651069064208138822588730149897950171814117868292231341649167570708795176018966489147271469174859061055502309497897206106799259956475125243067258592151857757107568910417141386744677690698841548082364861531436779266775584723861760559883234940328280310147899021434794120729354146935255564742040097156285987315988986559766376028545519334002153075464577141756316084088105024131073873536266488620116740957640207495680629879630032687509709901549631500420743570387481599509469649565849847740947911251928554536216134773802055732278460223564129345434083134079048066205099488948900525775780618012444859110962548842003919109032194690914388627525120218111879659577570454822604998848781833429165720588525577384833395576010117925704144637941905688472404395772616716371103812871329232685632595343539177444271061307302400943257361575231317832112442152949979365985861157755868114540343206029698891233641810173197402672770145855157389195449757491008041360214114326273746031402245135837052150741475753966519960748519704517073628751094542449582270769168308632759349332692393346469676521860885066629835217214802989342427012119414526235509065584587667286147783195896722196994137037771489628962800911453245383176907501819827140923438735935432197597078323233647233611508831350417696594681800564351595144933656907749602318548594774619450432920866251866401838448940296323124977883346452684218396562966590206275781662111314097451550900223378472983032451373007796277506515224592827917121848120747562623762181681037846508958309212276000406859185856063132752924846193369050477189417260745296085133036277786102503829996219332605181001183935985129487141540962069232537768825334299453779025050452870343999021997676814328076619596257517108836572615760671874781966275026339142527690050865786928232299828220375383959315892164892461478271485609509790375000624243518958117272766971996228802690896906742441717108275437460590933564381997133236741120214045787871557743333129353708507119443514113132097100595062045149857021029955391374716142003753430816490678015810313810507952184102360751750468987258546642522043080521211686215341907466013661346456324588819938144260693003561069182665653610082544540418917635375911536743589606495591447364732616157441262769132217134969916855280628897877672138253410531687289528922804238235861207430790439554579747557374115364351704740186070093946727107724450668640273788127677476416924958137148438921148480108204362214645109831490732071042309820730386877906541825729069935144364024962501819829426731102475578683965088333136251679641132352074876346787890210458991314933516741475579562033772549146330869063597240563965536840764920504002468477472324903459492049839857039431120730077583508072546416045257196779052558593806132691823794929075632863541545303216492687758681890243742242818046335168825876073303069936377324448465766940040792795228743167968767736437300136965944081609669691768849127574814579203147909751441397108164356060515901364261847328065410527759967512899910259258533134584362124349153680771173463381445106453091682775301568167682075107385522474186776715052774659085531582372877868338624878111696823218381502802707783248115717755400593732910646321758451267845188055186857246716206499888609839852616603589874612802044155729732281319180020701636873407837644419301930100330855260796262972022816896009238688889838034449673647139669175540162278377698718955839551031586854836421976135089173992286410563591495520177959181057663707894112682995164646719472998582281135424874120755055943324767586635258637437515157965760545834229038276137038763415107233201874946572686139482928081635653280373439289374775065881739163132019551173899483266482972315448636220448039157620499488334832741042705390355779744089433745534092000495976982005816724936203292398705609144416459693485504402898592314388288052301561844539025682704878141200777494361639739986463716738365714894174293226591383308615976247623971633139625525088218233995269133084721585530839169575027026919340331803162180863974132464608319569588761949829247399739731567246247833166049242105498183765415593242731288786240168989939218834844673146636613685529234313429199664291051987111400196890509368803435221751073467944920583849834516277413848249174699408065332261766524917063995129863044212868273435371761526066561634248135019625017967735790804586733853877012006438327955116953835647039203897085356679693120427537764873180970482638130454932787095356543372886759486834065541899802267342603778353296533210621849845980869636062654047140542282622429426588716594584671067510353343418584115117278922631079026563175295566199188731101054165912319378634657026630385282829740383492121250867325083216518972693778483287248763728296592142007943325439442155234204944489615213407347256498711090798200650219090554999285771981037552861204757547142699985127512446228663838355958334467326138614657169034730405435559982960259725679440774605210349192019195329747282761285951073971288399089106053658982696279256798582040700382215417653468080691607822700349200716344974700825882657799132831373365030794789024872316991324618073439114066851330358962800810844550879588924294020086643628685141089677932690773614514836782690748502588680874847791712405519672080909786875029721055352611701376915660732712632989981428054637338878970708926848152827912305074684950894614864440554927383128251412452999116028689826399698226643318721190147593762436867623016397446922857493272403235728782879055001911376019973469089813609992259566581826662131136249203468878639085640349100933098886293449965730270101813445821228638956913305012647512437536606399790790580128019462091724498077273925787053458139754844902973350410031735734255535578038121479080251373044223245112254825597313970505467022521154688108703201181422127393301474497136472739738452596726642073631597526750320634768089596245202788363535746820127760967378998221787788564384638589323804269462203645586966376148155267226566643137072866441032745906538520848076364972826552675392345066039599911937654077532480660907025679210950871492034779752823751896095235061361782166650440700079498511307081235156324961829467994612835278107617901555516890753609174162999959609768762235299541529730118108277705743599961606271935905792680488548999763631313562498934164916629126177906167946674345706499404207268122200141746799935571731341876670837827483974638560325367206954678153628047083015591741851656728518312324406809521224501893834498962752693076737757630778150947688700862289175419965078342405136587190986768961816355706236591266073392143457808144795126329631131431858972226524668027042766528692623962662875317396337079894437957849702339789069985063078672780120230394993776029729786612021063647529079857107480283014067629318203393869953194816491031934776337022324264197149704763856090852283765824044243039606796101936983958886856178919644676372676405607068383298518665315062426342527782380415278961869183916377568816731679197488139665788568595281883370259021051504354898581397175346208423756205717711933205131148098408864343899535117489448080192957733784545491858900145959335379294022648030130767656610131751633187077087678111691719807829442532418598215220605615622628944487503311744975390650550747645364669333496087782695973705493458926115882653709903031827418414771654136396874877437451714002345404519137083149292435810948350267026019331508755822337248374096232183121228588174309034180835064432750449300622034319007481898609217293621578085723501187673308356406967461977926872898909572353707083518676344976441225145812550588861031940999765327081841254277747102988387926021214214809142309762261800627186079078024530707183549882753684109313414071000938650865246683270311709804462356046740337707740903379467144372960246940334824075191275666626486664656840720985963833173707028554404519796005831591499327116283806362372311679157038389287134037185536837202876974275236057034120313566214617045497372405107866858976151810011914442679939223740905090016755979394478767862918348563575975501650164829858899845521283250819118463624391118114920814636025484240572915018389979111973923022402717619639126443257265853289898135033972755629464390737900350514194277597650707912471775919565403110543155303959206088110894372199035364151749239500751549460652642847632091378129774674310603417810500053481613889030922282649564655987814897943556398154481486533914600498965977819248613848981793344667615739818623590733322693803455674943852273767051750067011612123344624066133620010437791607977271674156278675619037333772603203551935636906399979971238926499170928693413459952283849150402036428782845459341393462104022778566261532050200174472345977594779046254404832206795534397963168248845844478246196369221743320341861433050456567017139354668637084850964021071894249081092525262577136184674434490116141891520657509689452311811319277732423202276817197388366823037376539451633953177662817553202515002700180459886437350814827224027659621013566234643628498250342319207319503377024683378472811056667231776932611153215608713010549411080696488178946833651365830942677559252140497244223364068813266829509632929892980681168012811919536301180520354127344960336815170276073000384059903998982049792188800470052295075384612995542432680320239514490353097975089426404913103789972678627226352542187867238302589357901501492565985534554781158193410122778170364523526314877858574073601479510641389784596509671960607067537355268320125465710062833231414558914911531958277319680083843337453816382472718984049179592984822161471655043656586052207280559140720284042851944296608172195706031785350849136170228533708002759889887658317497003930516808069192559037948660904746594461445745477380371089555187839699456830127850751619809243873581016872023191637918185570837364034663244456720508333324611196652162520666540344053866566136053657030162120594153254108240217407574115461666523886026980421578387754692934988624040916513924187175520595065325228778338046499360020443758963657138236844584568999445995116983528656510808491719853138453473709016083983581843992727085035599584489135538696809248595969830266114490123875977358747549530648846284627964020536958011502089118590624894563077922502336670747553598699996282387495576878715448852466360198945964466331978839968148655242904442339736644893684197106413700439779545503007445539395035388105640933527384653711550836265086945660889751996666757911900720814884481960202439119059242764740280528317755447711925367963247451992517415132536770259531765307939201820045556351326579179825960536240299038090509675637669492193199564393911535233067396395183429535749015132829930191335094649100155168143132094575710372717989279840131295432198162725801097843647481090609174623087040446963487328651273027238229037939314794964570344623348872900867488060477537952766412775527106527535313012451146962645418583713541217352626256547396841373364803637287004084520935445311007847513882594313101009017151196310145581256200521076388492682419405668632174460393330326122367354996449356282869780415203902787335675068556967090741506469888839928997622825170831279675141834108871134370376718040343259176645397531186135414592557219438346685218959400897204014217431561421666172964725312238183515876266335827559804753277826583206293551830402716052510880323313717110885547523453022501063221169650151723653482031705333782506601659582340675061853308854589360643141824709096522914591430459634062716389639042188148442047886351160375626057471335558520891453615954867231156245184382865145741989736098370590482287763253998409903804902352998633759092302228798977363965042995282634716783035425144225572551335705724850649499375740096190053304200208872129667203884781274744982260435939590344803729925984805977387735678207557781115120708476062550128435961263838150207596770764198122856562716486003962066585969611285318406543855167178990341147433379489221855726868209900053102295549127036211643135714963910678750648696594794887086077169563798622606795245035395348982652889165092553174371934898888657987161747978314057208876546816252019011533391738476984220171893537661661420649082807001154492864122184472415902675957833961603711234846163127116910206191046124604734853811298984609387779879431891147956461686578447589166730564566122427479649991164592452130920586480813065249379528517870606173403388653854150905022773712583055823968958429703447104307746526995693403322541784787464796309822122581959308596369672237988776285036177284752223540393750704387045049840206731841853713190392461545400171192224518235153124610473817686101070757818327551167642397729305693916751356862235935960574115715200446030503226075696259520063024949989534199981811915183679289190571831115580043023194379662379447387376862364237042222565039099821652828919956753518771262356199901404863129628688912254377877121553724695302039928810493564620324004867475763426565586119541296029098194557565246786301083199540338455844165552832160193534364960934642252768662416024334154257132217039694096146548106761129236899613454410523551515789563467431902281943957650004259451569729023586545990736944716961458242673027836624152946830311154986850347893541298004737953196391004542033779420261865696998308782982120268580577919637830932595521780448483953241893165571626400206641439141682428739410165889800903879933611244421986874911971842279578220097411804510616848188337365866427758234554218512504946992535758939329232956046132943345291215939994732636377038924020821013702153322073973650299700334372443880331403993419303191563689497810245502628484602848698009926729364068961351242017228121987142001411533716478559052801952723078285224904590980792733533832369291477318642959743691220316377380622197001180306377090145506642833860870622583179120996793226948499762177593063265279567929540978247668083391227467204084979094848743014401411674552658932155014650513470133035722320281656610901212910099064589301604689492246637436903782673540155324610634378307307284015356365617976324554831604061312917439123981637962295393580426873471752512651835917913503024872422475838082695844877746336658140889297832660543789854636972526689381251253492469653702328301461748340690484262911584340559955528526219965084427514513416846860074673172629359446845196250718563858705373628613540950347791510714558470760002098466873916940714767861650096031082273518685442053357018151261686770044371788949579611967733502574867529465477130009633671245802651644735444991803078697981419719996842185545844996187010714960876334749654406478135391792698115258064344550090203441726788384579291072595850159253897222504702082055249406586897092316990682005100050879945027372546376167969578177719683783863081263462851516593574344899835591617526628378764675525112153307768503922798670193291874588599814032138720559162512543490869950216364386255938534396065847136008098657923248957654890821578232460249580592043236260041261312880920388325942978654070552580749762197719222816228715043465449684342238957722067252035894847647638306391840957988454476786315988733118829403219479369850421508345950134512107525588638809998872972170103062167610592087000425647094820516376564524872613120970645501964618789975817604065859473086359338017945913471565076503814035619187895945083535304646614175694481683750673324147754001354935844472443759689854908082351621621946316107794434044591741303479876487159361883370136624681218551329886673024232244100728365686306894471691536550460729684524846999723397883326626009746478399945890985223789887883038312768779551551125256884192067253766133806967964963911198859298054876774064465223253601213506806716187777370258751027350162949292535996727904517341946270173103432309607385307398767143831875448475401390499498705940509510617635884589528505240875303299525447802522536649690539085868626706988310774025547740957805879561222305603218011704823365848132236021225557599119586142729317784307645485838013937023677241552629870185516452937840629124229689696895275651923116832153332590463953067772300331315055418315816792388490388035494920535152591974430365375273548882972286514976333022920889016879723981034909498401915378448377824811918342218005461411650383815216595773412345265618348498360439056250484996062664587733066830225950939381950787789622262907482347559209305828553228928650741141479209633872295032391556600054471007981087209562573609781827543066284663594335405012823886576257978909903778622403140139250672399724455928538068581688792573621059024048557400335189901890036673371622077983760444566012507083583103938469820984712958117453179559483178667021336163816958455434941523863743736788315789360485964263632189907050529108283522259721542978510624496897769983990118122632089899816936532052894052987559757865538085943761610503244389991476677178587294209947524792530577645025524073429855555997329437455172610284655759163229375646935233932389083725440307528150971282372108351292505907860600072039056370951622150545429135221184978958840931625809160241217539060597196950676959075623456621653929032814737478039229085883955585779181303976168463241849299672600431215937762073262583001663961573516656472160270036037935975333548675426127352179265545764800803543458767037682554963005767366319213462508974699849601941403594565990466431619392538852705083003203701273659598325115294673832574323132484042374165843278072893364964866689739851052351406081159821558585279775096368004263932969659111378599757386700864723582281804790937430169350341310023347791737606302712688277517068083875827379386512600860010949987764638250604765161425510553083205621414441435083132947747008793880606711756867285469973548431924117754721074624159404053373560340971195374959216327192236162004092727039936524800175097887115895796938477834317160510025520117701062942077654874958869477143797260759848774824626649852137324979503038653018367509725954577469741470202714384401325602982760032197658012685263719007002076220851102109362267431311888073391620435598504311202862729011935418559294070706316008735365026258135994320760288689080909518522243690720852098125626137690319439663208804005086503930265186522520846138434796330711252693479587085642264323764654949079559558887808531030359414811583463701819457031050816462593512221392257851897144103496843807661225813817346080366057931867407467115266073492439530553940901373097960324723720941913358070606121397543034343431318760207817686409490699212546436245940985468088033189898977294018128654427529011761490336204069315850578983243783787189797088015818627749730173824282962374145727842089321993816704107277550811413109637990270887828155737872254043361279530311598092467760990574830206485241809285345316175170300668123163430775371370318043942537181517048362835573980541077826058770456837733096252627051782471019969591043870827318380212444334894584932671867364971750039547070127064655856076218696289008651212956420313946944352641085214576955008647142658540999052703427822022337206286605563701600948652736149530161179753706469986230090828036996445360415392223986956170874675978887508517860361976032753711043230094004918532778189531522466342597042956950114033272067702278635281978737535344612653172728257148395609443449653107457961490532239408502197695267201964569879755521874653182906276349946127899563674403740177680584271290249541948943851050238314866130051094128156560030823118811398553366962964904054086671826374929351691096479444006214172187551917774254080500861195364107208440039123067735240595013028337940556541812907091309393490417674810801214162151026881915348567812015055964320792813557491792548675632936858676445564132428468627839570445734162545009302248142861454210769127112228650332522994512487110731222374512932801781237933649257090742340904213435554818615325448558493834410992644574913158485744307567571817868514327023011463914624856085489393048326952574544566795006748914771755280084719153438276304522392786370474597641174177888621801385976870108344519548721532553124177500966903496740532727340016194618866860912640901745146733014630689023320443143298283212524089229194947056058230864154586081668422350009199013022990623107117351382927626536773342361756679624606057242127489665889994298544246512851226531958450508798514394379640133130615241439107389019423222879805765227418060126814986703648572429018777119567182128858489577303743580315357842763227382950687646320986154480541755086795954044710208475161084559744872681443151739781743627352339499687230104251863556156887385552593462197045849977401997904695831387281151760423561359808126588225008441377872095171447418286058602865526921546501124717799107712003548615222602086851799977013852543908322226525846583283617701026863668781543500971803138403572559578904239823278315361208539657474094124744796401627586134685038388809984700253846581454110530366664112375874011987607297779856178552746344315277728921641242300292415333342018718950402780627066557702706364330627678558011772220266860606852787979394196567311958047040196570475025316854924652129950212885435117697308441256353099909553610986598579706812038317337318238202468724237753689989768107611528799936212596207917891567342079901559603145367021081414802641744782156591871272765928271531011345614999022123263902363937075477123049662366950296925941194072537197358741262312471936582136305889581264386096480119780944118462921884896866260329790514155747588597486820324117475079682960003408291422693888474898714158682242320241701859638423494457445175147408578879900330958700712448407093275529989146849395181715944811163787519935206935133157037617168171334132837774670515574918371302766566290908700730539020746196656949305084612723787933180730771851805053783026070371752344039494228489124905052759075330685689304761395801006668349200473816275330947798006593794731590719219595319390367174078823945954830470471196340874652080270414593817823636880480861446690495506439911215821339250095205095513890500019111348192894671989286066903406001476946306032277712222236480222591425912313424666109060363297897215818476684431344583745321738826600110450211824221486351878219478552293682370614875554839993613615779182082847186718462216959488211335325621756902706664065934683546344491193016583996862630022669769241139603847603340761691694041415672116702303734733261417735221202634593925839305280370866294220213432504818629273099374607943360870627462348989097248584124326034093035678512669124736204323572054580854528477528687207473341213881005639301480440585627041325924844228385689220498713925092820994739826784920315748566937984965649502686121228133699830192343456335925212428559019683431854415719325294565309911401232336268719989000902553488610412536370822431604003779255023031888600471629546576363297560692454444507088896903822373381656745935207575166297588822726005587993215391779624684473273794203101458157888974608396448829449891938588606556125586628666252750454630873259075870314077865248746051339490722727040397070626599384717552130499913599196220097692679750078947800931591489403912832887179577593779695006889181405627115075108967938850938651753685240171855165736347740922172258629325763844376554709228200520152049175433538934338988241390726296562384279267295359590861853358008278224036541587671855740665545564634554276964270791635241875562516557617485978404926170992182046983124189460956938590429485535543494124333591870894248118841591499197011620942426642958969571199484789459689074775161061752017855492034284655713270220364194359782363359488237792042417479929927182988928066742627647612860624230967814510459672114712921884472622761127905776094564458783516205507106308680378278465900697301508269612583821003529417132621084280376571607680567829451689973886053790193974712169466427941538724597224575622997061545356789417168505478537418536903359091299819518011498282411536745296143794867676767099401464843863423248081924162146381953422820122562329169951676685293073312120943649508290009041076536020107840830703860334278136441703432947481314242237265672582550088595297497577470930029468415828336478758781427199407444751466761763777489593325610095121228775321286746563749271043270051585162026626407094509401041426923812847353924384250200237394979268933630023061198868650614829437435310441414285538962336786471391050552283947441504766209518561815626781158969759249317520119600535768284642196071926622648248528007813242491510160787428466496739175040422036017623467666746641744919314337589610849127132746858751421324041916090275150006251345761002164449240695999505264030176084136685432625328111902347829576599592803601805634903672566463820358835634657381028740816030464786401293550963422638524146747157577207392631530893126988751772383940857133718463485584155539268821690463049932153915619971518889867247733210124388726332749938293143904937426268471892411704462099762835456541711466062254509552694607171565072509894194122168976767169484282604230411252084318804898543779563212966567139643412905338130279907353270545615967654952607080008986435534057247947359819271293247060646798914794500301553188222909043670352244128910496666695097633487694641216630481816522162908799253565542198338431096470373686956000673178964910998274443232177125353391879130606190222788130497114725176690673063251735021884668171160804931794522904461325484503206889022782065506965318338683400589265069027447471859119675945253361640787514888655377474039414412900385565878799099566741847508073422278606287863626165986154654482571979013198384710665224099608016133859588931549650333289950803848972738223077756483171958108659688590296731626735937904454736595983029632187402778998594703657608973140636320141299138747839608965699996937412369613865145839077482261167212377979481880876895374723451837587203646601821926562270997751885119391262831356020432200736740330970273120311793550704222819544278188228361584868273095898831813382655138030747211315610698152202513908450360626913509592111540608357900461946804968814673113564397359853929008445088207342381927385080943546739143602722506041094631574125187196609092556437627077286414266312807057191203176687257639660150718490732097746582240126542249190139348303603278374264120492917348588029146682166678056239845579637055678453634240392057879222136555868346844369736802225626297594018898030413195530056283295793500906087878993844586020514428217456312947939148592518962329109384806026068446764796288504815948594873608173611023013816294667737415450708916341934877458652871704529965145220889915393788383792276463941251654577383474177761102310702182852583791954418247726814358811364417094597096338717787348173732116999636479510289157555114684252741014541510687598106146354979614021300002606062053668674907834454443508073124747180936060091314976779552153236764699173683554429405642623302752707975261403939191994211929062226694227378755267500334733652559126781550759157620806557731663631975585772157101410315269414269762557308074892418466703392936903986880509106000429988899532975695742004050481279665364284037413373031971237402494866620170516911441860322998168379887185078283031296639926870806615659904536045273572225417444651461082081577429210587081274996505734498584316163756991256684137538921456826511117876273311085505536177910288686240786507136513231056790852249035957005643949290331214396891172308298631025318154681855395684316211466228578784758071875838312656897496570985580926045611553679416389535637535893045321521532654788485988790322131515518281164828201204443667389589851396386987355716855500897996712533493571995810227584662755293678928588594292317674912494755235972024154873150268984653846979835879468607073411417097006137506063457788945052944747536315556885185099895142446967233158298778113584803528122934553453526326316149802307794146765461079368800884388160725880309276524970043135149764050501308673369753597664042715079076277138452060450050621831042625059081821958127984115843492894513978823839210853735372435825835281907213497422547355811958329232818523260752910947489337252535180931365051045367193789873266462948419640506594503594756260498416238474820690450397743097136599576695682282819634099066344226712548452649330633495861739212385850381100708579510181245532437426044710860186170299355145836880829090895635911548847398362992351536759262052530925782596210857946095258533524674705109491983302324322469584724513361617933341719554210410726834559905251115663036134162123322103273832115000329813640438038750182633653115160018966658821476146640512069578590638021562433808003172137339331751303413715589624530925976665189258815680717102133174998217989725468782020066117583305865590462804134289708079975188519040725833873476969103367546093389328361449299256567966798970906883945188037693694676241623016791069190739540749904165410212629374052077026587063163321670189073012309520867052120511361537525962850240462436527351912070572626072106536725255876590429825573747024794801874095183087183938584256556480382807438362933094410089255789386887065343940363178700963849696746581840656553027470610905476638271171002952264774955143485791571474203717504579867403865364179890094734479225242353726174698836541295545348222922297579569032236284980053094303087160505063426686022285348456704611012417752464562791381269420934501646293896650089058393026005978070448534298011176826832520621296324013304171822485473760855943968745248560534952599633232989992598515826378607632785917860210770773034963639910944519081966158094458119604843598331431212875527803431008495706899899506820060833546033545889823438781837108804949606731591228862156296522837124605908890669879662643027784024001091259876523014008043041244308407867181324800697851034218939110841251549065983382604642046976193221040074467815725546782854068362160054382968511200470479981462576409091427650721994237019889074545745785614266123935823870476984492420693731277647250943058789177774353783063510756372971513204558536378301527863565934619592614778026596069033939514863420502196723893277191180234044107161699364513745354761868468090782595583128978175191124639466828016089805379095777826793518361305368069404433195779990670100380935987882631962943239608206064254523736967652861374690016181602819867248541530446631742272595512566798621027103459864316932701877165842681841977673219439693398574341864393048649289916961998042976383892904825613301370804965274380568508083854053207585774132164365189814336412554475779405150919590213239217416273562879883661440737448201124229034621799839986543307047694342459318200877304037788238558847848098989366393157063405784890441734195143208671015561904399154030018063192486134596571477142041031826019797189815481573994999476734900522548251809360100222513610149182231459707963167631793906752757504733928410582231418636808109788578126627413326403436166665997744062801071864822768033584247473836367533952128102737349664806530648963048152364946428621174693071200680169005878955722818322814915414365711359838722181945981622921638674886007802907268198022194041813961278466790416153892531256678605175071078019665265798278410225045959185612472698368427775428987035657473446557196402607374750955429428190240886456644643341758090021077923820274850658276320688125872715045789130205361833033929472772864670479589697054857404204982482113836521249453252041372549242806869834382950472686893644508506068753592763553226172100134686638417551060619953233600236998819170505528892534310471514754486795205998186181247585415263824861435009578777227892554960440333533121697967364665007502888366962593912402175804651637272236983352856336028815485332428496527262562482379731983280320214106005589012566410206594636021454625157016544894246226215376250205825076411585281251917271007163219327975787639382233649695878544555356427275111922901045201022478787130607711018896974382653037807765691062310169411646072700945292236467673356982214989518382372417160815905497727481671099353267056024429848684797937471209326932892452485278151756417402579526023785290840527299863076461182797309818187690708505785200546993728613175313957199409885099779666699340649572171927904081899163203263570176702358452591446035732209603967976081061374506041172937952186274945019521075911723648176724360733328383169570073912568517219675530261701143805684267817697361259279543385737109562786597345484436785964654783652885407751089193356573882414271372575337904856012146900964375073780236222843714707240905695895516901510742172554494165824982359211133728816023461892863597783961755012726537627930621896604450439824192392354166580257437335915954790661915620175570211308202755342473218022357483552712926500482294010965609567727885384201054931414953765608812475752092086020362541688022060753736361224604849703846869728851508545312993266738492615346539500660049222591260564842386859908297778748390552524994025915920388717638484871415442657997798062040927056073980835130878691901702703816784173634952245664989674215295994582056398103601772569985198120585640886076171576968960046642332307230462150726647349354745487445285562948562838425069366847264390136592581473625137578972620066432891462649228962738166065879802911485726598451067522387005899958642916261635737700619839311866434012542287727555114763169779537798729976161678372545087335603836038488358458987868431093287233799548520945147848482132208324565271930668276595568918917486384379723945859752216725782144723749893634014023300061315359760488784725362896932851346147435283250308394935205925245017444527493214202784296760678630563003571176278577625248324688185519140894405784516707967651282122983524063180701749733917187236100804451722758412718188405833330852200568471798089574469033978559171029921305683590266180403313584001183328513800089721859065662146134334880663831108132545474975673530717909406226766180069406435005426090188627462075630171791032317061256678927429623377099470075792534503948519109664145779932240963860221858391323999755899367487533244438316655847412710293002420158472675417115304728662357461882857458462587126651795021720639607559717924205918807215841618150591545402846669059029504263285049576956215066804608917797856921503392337903965588804216800239224496702050409534892862187257360054691321049605824040762569562800882596814125640372685261109543997960895605176326427965361943282364504414663198135037981680153080107546542289402833696987321985378721434637978533545633464353780463014397943682475457732660159347611185725802922977328683314201923225552462956224354453728210444857078060521739378284491998637341936289291622752460860860966194357568532189209184916278357744794346015428903230918812509573040001427008601832454968066251937469584254359620783086070005724658814853259122024979754468926151745773959626332329302456937021757581047631644787923291454027957787147573836897746911006112098575219474421730132901465590592347158348437326597037501845454921727182201566797175369860857804349919551447797334848531835731023397745153497641920453096195251562997994732390746077192741221602148905676263279320877160980486029580394213462201205694362033910150825874355936280089507961430603191630406067740685168397482596122479517344361908123468001959139203881942941075241717539479171896710290473766922558337956927082796846774601325165078978480997520481095882040616471911418394102346816213948042803496773692037783509378594717486310767963872410407788436890264726445216403431885078991324920270971695023034170515599937705314019575562956481847243717596760393800104955028700412305945844468205805429692642337457060570396291169052475434957256106725996992451562922066121901877167355146696415841728668246954128723807887610493627669502842642488919961168527237863917676640594944101811211190642638576446784712894609442372195869770369270950839492961080489865028023577288382567760700293653828150737577946917516399708451431984281871236138529049248476504302176243862891410270233516180390437470956393322006625471426502201183812160545190556732980883657460566470577454208372335181350251150766593613979363226213619509088724737028591587889121869355495934539065776795347540882970249176990640066275379401126605092149788055720567304793425068792718099467991783126927585994583111826547734411980722490553366819806940211995037498442113907210637110831943948877956190741361766976911550526912111170461928260843384669599397751141910619436987795980649291655867448814352716063851088851119258104917812460906212911396044707514373995101452475600689496983458945027024742650521203048062027633692190377304791455385416254803997875881459249522362833575833813743491116058687544038703557925587729316093488893579762185949366335698422026993260809957875241264426255506480396402424777154677243616389770751805022589958285731243003880649303793153677589800670222809626866602812206533961186901621813736421348403982841938521407375488202898863664520375079919237960459792043835279422407792607636788623191888893527580422173507042466963963388812735079040886862746443606744821914414163637767267164525542739412504361994127679748068820972572941547263185559774061076157557295946349430234155011535047239636787353442039651088515855667427729719269553044854273444216486412373326425734248106523364755183911118537144152998246368348511146666277731638045159161377170501030879224077276051183674338870750197990181110912398671485582960971767224583182240261818766258463086018793900461231869403540057037362887289329382589777112342635983660360843951221231479844493022613337898011024727272494317201432227555061453258231385794237415357301410277055797043827372150234576254629009071659206655168675144998046723138668201322072404911895869362882914255432141750889222525534853186340136269192131952234530275828870219197901751189218088914372623694360029359752752198230300050870756572407275977869205805967363283592884160362338969111554368332513985180119488713704898510020259856878663151333591990023863222920484515137909418873129841872564246965895799404495127908485576461971333275187114004392833706923697553711552944322229657288795809929354514597099307915697696944333585844245115555242338658785905174906829682291298747871871739920631197838467053604322376125367013850453904949197861851684209840937480954518829003394617433622743613326688970737623834995898952962930773841515454655264215209274949250569314024433783684334560980190943576146240146166784642837666952221259355168452381131740951144319594213065713113489512602215590132663767690736244809013682842819582350187679407076970525747851102346151489801155619594064230849922454152578227191433369101753629076157659896836116061363454642074890122270883886642013905642757119623942080495922776762804121027602729634339932724567387222101927645872730803096323243841325174715405895911732291061620751074281448393862169976185739657411200529262491661904125514200787320097886857555265845255553544986995369334461102981245230125112199377216890367410615227185601213647634487370853517654216491575319189178935326437918647698989675829227873026515423330908300612259747431161947405582727283475174715405915485502787873131419500892843307953109372066857417790287874995179922035972693038717200455175050502874421000785742412880709947139094543187257385519346811293957479836040564157910765321589580435008179850406549783075661811081315919557028437148669589846525027700122769439981711697717141806463755807209421637742091310954551659302924114908530896866396398176345271013219493504730455097615075008939141677390677807516115155260901879349886826192642386900921928902388750311238499722575980199549717713097235445542737746381546294713451569591911875692577710800343876706715644347907315223765280385044741540603811849976191292365548874376853313314754710024785215404332442190816752322177183501214729719197589900303820918700721653342982155571532377758172914792635280505477919930275432745744864153631122212237565904803137313737723457259006829373637828927402635869998877480142485385776906796639247235936609119136907319643466386847671842418012815863609250420213446162394837633741949956821084424129156584320985414217750811413906996093454179695912215147129105042059269801107421319640892248157506851237187264086007380221156944981102382041506799654281590040342180745959386177510521734306860420822530123182350844877463265372504558755573239115324313774095979158054686935271504012298914749206509759805257317679581842864011987350270114075385000963408952142355018879567988860655295292212703326637979484518074978649995828614513624778233561394192244409580172512944510748605842413292715080872553603199231095897151781812019490404161277473455610709961420679564483286253600586460246343486282158847069018988357435068375353890194461947318940927862606489697543764960900087715090940844435760789188653918616352910810589812762717855447019988726966892935992062779399425637946796965380741817886835836661528554120585676647943248591412852481847735511740010863319169759563248191928293331973747624455872723958008442138807989411029977098969869603348935156908060147197506192348875773549920531580415281831524799020280059136089377418951881501243766210595092981433480138483934896707819561069935123662465657114856728615865125672214248776672928014495859672369126289050701395369373863838151664489616109049938250598969109843928604281653566088059050530756136753191768826779818745602074868444600708469322209455247888032295894509219540389107655787869579029116092519400162558893486925432582963861803918156469360424900810599693591731505287314870387945174234107345642454410747670134743717978737043067179640379223249729332058291018229241125037230946168469956912702096468174888420773592005298638180550056655662908990656727488490573104349826813548453279588840779990096214540149024539192485886793635185666419583663960558184503773016616294368487753599987732079746009874288625989796957909338493095669255435319561596645891991365534527285343559325935883780756987899592231130862520342875125070007656566910548536868323822119872177497342409729539128234595896940055582461011113623623441208088713696924398148861410080002858676037529938145988535718471741530432243243533717956258842661635188805133983182954234449135842809199106494492836496781718260266330338646520705797465924342354726568864688975117694190327882724193900906903643543077359123197474592162180183711157710376580276842398667639687907825460419201682869300511769400947853978617527205874985810439821339724430588969312588516155479914754607406877461044535384352514444503763876791002205142011955668019922934891057683817681601306712041577699488328823929138226556986052701151531801357699475543511563602107562197801982982428063267270383332600164437438443884930957804330200559452229653735941653920359279372044959452577904477316968801649896943485038789460354831004482370075580148104718953337070394159078285204466944324554165872831619737890484468792830475936814949483391702424343575716645730478949027706451399323467247672394969933790393699631238619135161628746167135549575342026524667385752934224199025094262527213932775301048069007797383736418707040690080868186202650568829742247191599491558867029765424634034391182470554996168586977103502496228025696833779536782382084446977017806424953403497397801760244863858228988233631513574680588541954487261989049845809791762990935320294942899926884495714228433539881649065076177363903406343494863682792989096569052303302310933914283057642949578951406812871361682230794184429220234444817015446479727643807339439191995610121879516288487216680480938948957753006934593779093130444708697474849393419568590072090932734170998566110076716613066019244164829628751304888222185530900724611014364994007267610330422848772949627455662119649852618271914676590633736778067240431540146477405931896412291814606589471536491514485656047906278833647706079517664220422066374865217851446819953618324458716001211269561073696772610735575481052766320578270804655343072433284473323647917932762542597888641612002255959425158725009925135687932723525602418755736420767068692649874168330994162212337539624095958289020133081103694698462307082984736761556706376566522052178393472765504411623023886479348838312452105547713119284572060573539175830853341364840585237229813895333481966690202675430117734926685713000201657408525941992116508641462450015247972430720088597228803628532342714519183138792284032991671740934902930792324425512308799002071628701221297034584210786096218473951913057277838588973372088192494166913629132206928091267527179578741514385677105540312995244912514245300669246401416002296094140926504373326643780077122998152548780544376257757771132449555140515539856433704110980715298885875268090673375104138219933833115482055252487062801539325356678984386319431789579769114286057222104205082104925925244568294600068375110711569552554268012652363849366499572647514126197692685404916308682204891278722632638179330004798829953560193388261682495646829776045680094499663157804948902100198277472854717911808120808942229428000599446440624267553304863876173396486346560689613337201745512978651953142706047900421529190261522147681050287533785099580548091341770706747251636836939841989674746687898543021524003908624032878824677118780411045228654198375802209571020348649994348798492360642189643757088627657379506227679979828967509464748203902619878055110287011780649652437443746552545383022927929461191132145199246794679476970314295662492772094563022434596526942170766498202609862137640524601423104620000706239251578462600259831892992807416376535743237891511693279264654892703617863887792496699761502051318630338071357158719116643213103271432947650274105349519089493818028076172569640608299872573759506566160860335657196731319891164819246172854128589762625823333931020018407063597081137686764062933233887680279866380882433373759493875013196963803126392530993003857483403148198473152827314551171234380357330857696944133477688898514667852608342707890282182701783226423093790532751781194552067529601630668366176945054956720923855200644322480292252516329919818120250567206472028194274171593029969900098992898112067979912065378923933168199889488006663874914178149253818420440090763214854913480181831334068725937455665199188207879427468479016483943516805684573152095254970695665747662297469441762030721214004171871986438932285518894454491605493355486477678011492283507125980372091454195257782288743003674202674885169994378024419850549530086907959906848179457694994481860648393671604589438787643883872610793278595235434480081212864348744437108933570657603091807606250954261184035865012129500994833378139090280379378871753853021882369249693248628229302837235107261405621617446552129275586767589896347920238714503655550495965138132682269787478726463703179094639486588706988018412589178638882543951375660905696904413652965125618828137419171778544993317436599941180782011309587958831462311786913167932658739234558244974086305674626132564573641294791043949017849325559212326776879047005892989367256257571696185474231678583079279918958512247049645493218859675614008049232965264023573562369374199573612030642880306111657254848137497691557584043117598525719310590007664719844197049618255266174766500638304290143086153620504875929809622007959570398114371444020899237692304216274677749130706421528583659845455681641521989458838561054655467580998578645759958999224571508651683735928715979427497159257604959091215184798091772343486305984370316829120722804596683406815315246084234976870823681986158133307621899410498306763861542875882509623883638467951466423219943530936708000246239377333488427614754870320362357814485870061259570091457206254491453620541754482367366903950331503936401362042721098279894649281409840485062874788091105148561369415244565970953855326331466292140841574481818797518636122387399528565460948538581061260907412800737657551527200339175860167414780917295212606245129657278595844822014523797459674379872431176309948215426134567148759171962204736552282204970986055470434329380374328792246536391589198606352738468266608095575251998704684060851254464766192878780911438880705312115823599416137354919582427968576130843231352759010608256974795180543235787367041396579812467537268040323195737434868051960512332191287694856626115357601913491421823699032855953308239681921804755449240309783893497303132846495639888331781652212603148208341285796771899371126246907840999880691036567959469156593475572533872889916510075701993973363329247062182029748364389362658804883903333046493939928107062915530657873218187574939681928715183003666336207009592304795121888846395451798325640898535620262744149506797742028568916598448534888957088198888303550219830571655437946209169573641606761777356388273252041454027613400369403773210634431536114616226810338716585480963150522131254382382028279807568583412349048056565578657441725837860814297971220823347883783017405128191790949605979977114958803829909243900647003039199390142888476902329928035282773226405286115528143545736557544731718757916370666224699712328239988877187479989752863598469749999750652384289391687414831224481625303257873461759923387214906665049812354566750821966534936011831580950915123828543951384273366268195230024668975697569835074577099545043035147782694457374729112706140958355816176634638048632898737538900825616883724939928825842936825037174889459385636744660830228428990206376742634272022619965436767566337784527947346919069062508914849913358940880773876449872077914755902123134313442032129990536222231892096130029941403470309949105852964185449866509436595619270343914122603483214915007301347631751267234002574675960591208692871370282526612704697796749445857470815200192259967048781739462018922687679173581296121531225705092275846950545938618880808042692611413211904174511711507006681355797869153314585012686913513752027624911785013878029071333150848239243497562661884746401294173260805605043531797161142083671009359885913408692293147769061183249245865725506003442196428722900714512805353102195604872765191425108350877323810209025178428237133488849971824800967085157211135583230165033108848615582030239580361862633670541452723604708015746471544148914227629542467870420329813707129777671104798971289970464817431940388874905653670639072590603168372620340331057177173891615178475000410018608338915431769600012886593155783564471868659280523190552895625067974309401535761925010510267837323581337364278085076240262828166769824295672853401505023303002072485707866462682881504981067815494286413813571420165430066119169897927665392179480849540050711262869604367941729940312509808830626502391375100787648053089678476158782854467629026936078955923762250788299636360905828781671758575312026891108811507453750492450016373727052713291409520053464229843745207113203640486338795295131709823104788564873962904656275810442888450779351516863967459143892985586855432719385639774421499111235725313338679837976649659015525028502891843808798616154506026931917560896163862423850119709606858800047248228196494595422246824347214248982406346311840460553054714657232654758509223531783951058834042779364610686583920741314756778443280117846084242617677982074803307600386451258436943377937828417010665912268638853805878808633803274341158669998157539968120573706742095746340309043181599463124453251994558958915250880912260577176860207833793159685826846777691416917792202458677309418316682938237693596191465018036759935782584717617461331832759107886267622553864346174109549165570990893917752897554518025741654991452922594598531810254651433888638899886570041678894337232367336572184730921279738651075607688653118124499681829787319717351071072944083750563781015821036059180347409548403420686361281090406059128348999200680131238768490644924261175539936267570942465556095472874456381516996771183863099526938972208630693013034430795311437334084653051431960629773345185933746393913598820151976692867260777719487300059534704964841355898565185473487008477927282600817691323727272653373341113121031851137974015262739812905601116699355581590877733338827514026613069739151222629125717911572270595096302115312977067895612216802658147636486860461950845638897248958644133940898042212813440015000116292195165052992945929774599727727982256540989035202664621299776561028787855813164898940381278617267169627871476898596313721150092127325721283276070134294941394888285239457114409292981293600704542819392154165251483895276972459441200339209220526133915855772047226582949978726756357061039356725788264096154543565305702597091312732784438705697174525188646020158484423880779747214782745677632344325889999302358998226215380373153036514035055226007379302388316114200737043852918682273912850839468141726918597387568355253745889183854448770802274550373192397757028140979997422279410057864606324004034756450341211199432166919214291280415367905141409316081755534903612826503892203104793631553916507209194727601894344989411915182214278219693010704892305104297294959829843201284271533744182951873123018829002467791644897864527703432491952444594681837276467709844743472596874450728723602011920798658160522906340282288431503634210235907124249640311984046838884768525083795115575270858999824020621193625817263992013658928153702791079079920457968199713785053188484860733907807465742743872215040246373092133044135722123591269532375940432639164746307615832101458612677167176672914235726396250474606713956493769580590146325889690511104461457868216666853201386255602892528481780088279354946225502741295712711580015165776210193400410706820720606772856781594080956958688761235753955498930329472041469588026198330073868532519193837135317156572442450551060735912035916123716561116158697470773573022548205647806578119806243309754988019760864291724166589570584993055199155707983092917985198655970861043392704882759974999946334736406152926313580888194385143781825250009427071297134337051164398167437804870315808936320838928446154998301401782146790600278673188035586640726523098690047246610310534286337159266396454250414791383346441908754285921381535436048003323155099124453001150370771990256223249697594461054629740574705655772506088344851978144039092235359633337686309806261669713399214079202343893848737362479470984088701948652172661284344334031036272828681397172164455432084954673286963751746995632740570271952483887190742732189822194458513970376951548494880902192566517056790970360756735179023072583703162048677406537653576150880728556851106788537373116969020016748228355105243564623340260824365465433581781398962600776240107117905691635817183764857391031095336838424210471007061775683285207156110769895849005293294507603122361467324465807080874764954631178092547673075409370622879842291541088568895559294593399805620006654856749239448372529947357206357098335930431413447764971558982017304644278904650535072930479804182288581910150994962605862233958888351499149472733346117820265929766062857524054325888214142763232634292648302428336781791912753351657639186301272727341530080623572055685000940385877051786774723096129622362084999255437501338508472014302804775454999834556009505824565677031278359708653969031183401608624494608809085052517478262070200887555700174907696068929122071482073564186184190836189769891017671885506908309930228778579943844273396726668118233464250284211099231523471407083741078305244152279741473079727914809884694443674028177756858051129371991427484673970813995987589338140128612610188860772133676020813401635707864204134408410853505023008230912569903802250658398168884702864560939751451745394930325121977934351178044199563818196349341740988522077090759706340480030886765424757682574186733350774581846826034145169934079885910818889660310930022575343400454852321382215137900025839188748622663126036533366879759696143818061642533729149762815374920348071533964782445842401746371339845730428843324193316420390962897197051542078477168524961315435813035794996056737937897389764700377890760249853229087116349682562115458445444157330258838570930403802282654165244666337347259495179939348614186523691026178525890824337125820644646100609181551776368953870690278000719694813077771088586802863577558195903750788428926165352739134362245632021364184150569741094930785664795307505947088933951201080292285609243819101926909995893659337084150628261554536910452470844913571156199663451953738330263652961258434092374714885579192260856295071304541331038386978818167781863932294959948438170790303504021245062614378182866834328564247166815713194108669589118880570700377629915073656540923729069795481478024490182359788845812849356369082170292058524892951134125518978807878569507059606624322096690066062952811753877846694966277381813204114054452657810114438417462846268062237846088132542550729602842125824753084565922861504211349253811334358857357978970581919444962097785558120220090359165740087749280875645197239619896161576541754419941595382591606897575445247327108311304557400201927823959035353135502689966213225305240276007528517534645946917052980376251883110053471147587382117878556102391599909937737221566891741770730526678537445263744147321370069697522239532438602527039175242911754107293543833000474974713139325673211769829560644642911144482541643980654147546893197426146532781745629528872819738671666597662590193811043632545690712879708784198385201596417518684923364615301964573214531441407775503462480431638443999446517947364514238992197433562237831485422773545566722545432461805445275427617933577574509879471431562187075943628127944027687981400756936236481740073777188209921622818083553143083595046616399730169151368841568947770008095759071079460883283365850404883601647231838528860342982947430935484297027550801445728924989875567141669479192037440190415783230895990942143947302240148214580200312081786215303784597324553803499525242297645632691581204364179843536119088630619104644895343874089897472596907712422390112612107292974983376119841875261542522055388483356715158069984114355181076773489796342801216752238766564406105089769461748823012537772745392283808548680764683895735932879513435022024688478911647880825270772302685395718048271078927117385996154408000019410114857681464433867705417577000301416359183870507489017398665626816050818134725502325991387028279063467837494980389952810249849262579522093046591559097515491615744115190258846377740739407368195660496368971601904111829341382030420224259101785343305857608779680320557998111491243751881429701395793454180560022668643689281339172053824098018834438384187068600698886638782330109990945790009706441855902922365171887980776921902462938199703828602947969502376292705571026279959526915882853534367509567817368708623648256984365620557524100666412543492092575936700537395458794539834748479891033312100115995061301771196431060312393104196817231959930210504499672680850337164951493474805893074963672280786111438713903570214632315956250048382501192314030405402432909071966068139369826630117589425796563563726823774005759108264640884368179242272286225540117467049194879176703817666805249675466118272292379244732637859356054632909581763324978145400642803988146753326239573320899394024642048678281999458354412581133817918242133625750714231481240146001431869328934612423175251451257232787682958014725348051611549907220427606805824027709814880269005683164812257404296301925918738874543547492916208858950066767335984069288340978057706627004682667630338693699134297491586692983177958469583796948108633344007779861242906332874485706579839951441593721059627918073152496605182630986962121207457179675951356670248579747943405555106462843695526787659373323198695340529590910216173586575466208371859238014419162792580149838076192723974479782497299295943249649016613651208615987077017364094618165872611279058494261263078823078345709078885836012078526138430815676460368323685886739123133434644086333577586127678109277669896048742410551435233763056106687234382251145569979949119353534629273513837439833157804065942286185075396058742478603701392023474680907792084072597891062499029588261558345546849809927250070413358979339812812108754680287441659005933104154916188619110836522485669486842368174129302431481895596399939395878585884033028428323409678067786251306905417849781163962958401472286628032492944624697049763374966218824399325331057608486521550533096999311453566753134231835013907182628170087467708904356804258510275101597266091533191269329582953263794406433326982472838763199391977772163092835019789336831836575037802952764425640240454674419452642078317317107619274387413646994132274109537673981084424916412362785790139540155322840999243528069565818806433672818744138165074382374949253154751792920110079205007900836810542043376193895006943535634212340081242889945552436897164363227962973621199771821590245994282904871929402818924717948971670623625561104846811594960749022061754211583008796266036580722942346731333354160255278417087485693967953904604835740505784226610682361555053081176447086531996802890177020815649439022026771929938349138159602348342290893454911212566748084531575128215771116913719218837463024864043375921873085946575979049185677950188037394031618354240709706946253674196288448862989018197950955219650381978623344359295992518366276622762988949314527426059383860977001713148981303368668840463499251505374476932525459672450658103085393430006074864195565294413361033247039050466979338794299817486523410727642940366087003398982571471229541290613161280558174053127762461237094851115675920577028551568167925563388417136182749111627161746782658457347587862600210618321771081768358392025324515098138353855639183670181449457484060939846222780954345709132230064851632852001770210353279767286620030574659758114965654646911436792474259221274368761491807124984993195543598147290164192749553862245697516463031223104578704003421077538631491619746563702512093055649200903896814990361101650431158481887274011453916357015929044783078217790774819105749360355790760917475919167005776536886111728054284364742976833102607681072021953843263458512166809493928607856655846902394317884112738901723331439188363825261090705679197541998717585604571071125726453045451975689258130029817405942024209126159663431455535714531739088557180221126450285374592887895218963151996934145239375155270109163545335786888097915944075769967455187773503380017846882806596210329314381692470419496131430077173101381827936800294529412797637908718277246318887806643291911117606932422320167626960670701103118992963392799854837505222068711478749193133449550171428203101229658874238465186755187526805702008997824980010458782422805455706017029670003350681170912218541843216076272549740355229213004559043445968432473770081609479989518675806845464171653094899655351305162958678893220957092396952647541765221701988722164521896346222944868169817728107737083380437816242575061172548339281041109019349246590281292030377836304920813677010544239395915726188174451528237526034592268809978623139643991987762951050686916254053309313297287916989144919326971335023644518265892534433831499659894876999960345679250615165989326379479362163356110696203966048865370315972874808636905746130122879550635949144670191946737073649223614245323059297040880705407225215415705570662918018472801945173632604237790449596573795360816006509229530730877511434692470804832501405439635457707453570962843028229030137500999819116246819805373773752436878532686251030783316311258073854996615125675353565056064091410143658948531473802955620868614948708104917622693562905076461161433379201801885770842450790851773977636345765435693465949822803547118969998427668812521847257223995386391648340580851444955590368616163915571647520601699948852741444003063436346821925011231824126372816413169981737498217763159624620492063192030195661618473457816480062200572574790874856012646027806583998759956938698922580192045875758145098138136395959671429546411029911537224723477617063408186839493138555134197040902082718821180114466135697941058565652164581241891913770902035859997250472153595880532485178601151491531321669833640244892479191297729649669182474756557165215588118676782286073063295921559587481815571654757267515376655329804456680565006098747466516446905373866605128435448249722989884495929846153699023643401828912941624572859084227255773506019926528276125885468435133474501539597924980211803076023376514346865530311766533251768626963608780670566225716469365130180059693385710873852530337591994964809193822699126485409223856155542372115726979905399989309402412721324349121646090139325186158997864362920489637999587905457476618376636448939585075973701611034441883050614626527535741769828272336413754166417376993902116130564512361880569167769189545952117602192420773117901886134527981900784626478986747680613332190985845890326299160701588504479213555236405164225607808952208333471285174925329172919006038509151318967641893284887238890520168977378238740841257132143018942074490165411870965449428610681368726646453348228622197738583222381870596309487001228153953068717374262882500550158148996191202235128525493852805703460560909544760818119906982140379328200322307014058322433956611839552978845094749697851264776238096241391458026687186784875432854930785780890074922733714328051061211949369260743654576933593719336292061022227901363748415676703647923443727182527525576132773001782997354604025217940629953182844725727809164023463767587394989221868528621671969615479855025107083333825173549541154212452039838737972654552353989393792805292943190905459769976045571966614785103753334550162167063555622870837433451296820065990257499991370461334561175916664947614692070284889232857840606163105952932553026340222036344127648059113415344865299999295282743925907137923538683416907786441475880126760071651179496758919208700243780003363571480007213771419217224785082297932569022092762677958729880275772288048584794299914400824074333698946528650247311070635671163536941457989499383237737968680349298888008806300926378597987058173588422886840629112832190530451656542361216112034908918431518612978580499174332374161753124323381620150121328948967654878068259849207061565022586943061466764375625719117831591029060180720827473748913806784652178656930626170474175962959158213632025346062591646796494176792019626500001328358976417829510244454213940513706089076359590165697854903183901986713828262878808848307127979095351018406603478772393574044913269240163835848316908080104323422155152919371002478146526807585439068568762475916049096882933987882137268799813489456534098812446907249955771742800078745434627804285332044912198010281421680326557872517440237788333856198337423528270209291138382523540472028194255843543765535253685593380032097248034600964184359051912653506943973520756452010624053402764840549710619820276804477207123290355440257364944898741234637284460338704780920489801929233497538594721767264757668640529051562363895697542158430137686770066916801509402394240801783150417369672888000886759476352956524697822913075386516199072917996242036550718472664317807566379163630223624173441632304295000998854375374790927437035531922257187530532814058887577883503104685720293641376460676239935991200422851549159469868359022367560155798373020239371558243311164629567065364235726678728267986384568338504987220037337286380192725904176471154104861741481400478447036295724704931202415887009383206320315136198731328501950782309037090429937833603860788293885873824276062421378178892156356857886540292481875077519907628024606157262943190627372104177661112615469549584343146827826900445903784889378035807474551123068075025111100620092174497917215973967100343863787364526751152680971803025607767354104602333165197708348063347180119002518035953018520023341905829884775657697910874944046329823837318595838107374485672057743965968641766149293449418560660383084437002746752135581081099594712236919287492730748396151130097555607017453377980493571924360634433057188119408969252204051649825660403342040118370950422444937078857026136843979296653921621516200402443546906384632625524730090204650923232507301077870588759208107970655512091873443368293065693020646140909143447967592100545520273428574589030894980771476183752387741055634447438584814587690371245227500026413295337259915486097851007259163034939215711167930444770961478062636720853881218443801013176435345010807393924209664764952986855698297730249589369986126690655069605263847417611490453141230841804748163611237163071771545984877622838144005251547909304458693098461906339146144348515885025289657030380799741170151350395919526861296668266930010060731345677419123500831881552684202425969305824337646399456481536897950853169779718467603254475293628561055662205653308228182176606953144971330913717316653770327346785066070475445692479064350442058928358054628134129267210467397758370848320809419067714772822022130438788611666775230018597507817316878683130175724097610946398500029501838191381630598593670064740164648787044339427265207137676601046263288001129373029727772231313196737564744599522137758107391729311771856947654945872840748486924828898055304730997999255172746620701455127374536211523800314835105682423384831457928071296659823203766175552770378429420205484162694235028664594072154506014417897563466886340766925841415320112075509523137546370750864641373151670960637426017196682125369642342774096415181664643888360781319241715361158983757290290600975995125834950392366281181521016059396115250947928168133295304404249406926994609233032939346525615376111846155364990153645633918994912245132223085918281889721790163444315050494612905219394051067138957221621661848784210131647165004455090209838006695808536487315002453342784507703336579933091428742996495859834092632893928500554559536239085895078682523170505776044932005523046716466256119208953356002402574018053757795967321258204007183938499047929616105667283335267482878142657170016874745773148584426348618381047277596046245947361632930538708886925256853226756165040331810676466580722964200190000890250523596020853054305105751936928089448783380788291399152394415766277554856153967635647945265104916730191624605553607373101429205998396888437350245031443261164256735058659539323517888165042082094368197662015387024054616733827788484988507737668328549255182889985336524396076451703873379797546429930052596313493135466822799097828771619099512652977861833240003776016790127733148359394980322169513389226018695335947093825824407468765162214701002056360168631862235095726614925427328485172721111353614805467078521108057839641194506927896307491520258974395647053428919079495888857240161888852625285073059101291653875820119605782806326291557834460870377408404669497529202750612583377908458846259441555853599507632188721279421904906458928825942514956036987301175195766215371392538769737620925664890021799070682667447175425953137900118702484517135970653564606685953309046590918932503923297666073907755220811114855906294192292540455636495273484934249756729032326969987627587663248514569749088775073270144594074539431970116126397118126112605318472602815925745459696278412424306475181050817712113804844615408786111453673107698912550927415109769711263527678441969646211524408425970549898382077025057351366686215224287079256349197095893935765579325406815108495441846919627344863922776139070685341589005301122169544772838353432586563684646466880955523077800792118605131242180961134548457884756486440356601570045053420627448081943678408927045845320260935629384419795124723988965822022810889837671287655439295328199045086332695692065313005572565363614737137356965686797428787571587992173501007008754366172773543163215289281489775441785248815924615959790220037990721741656565898400059704438924707081224136306773504406538103275865657836580009829736171561796045790149645782377192635629450766353033117561386479445893059152351357858480344567394605975881300131588969441470019997358148101345171795630294698961472754984160839556722713093623550695856625028511815815036192901780143363465502560813610283106147730359644273863861827512924542518744590942592577703641044869685930673801792112405609546899217910405576825208751463565713526303383104201677258362594593138848481081940573252449806656492691558993245470968601037985292104429792344287945957887044515988908626048018552186474056423211184116844575656557763984555001536092117163012762640274465091172550180991552381176677232101791051996638456583859824409220006234837312840417487756267184943833181291372713519992899360039076092909150599726348531595239557021079600346483044156204655953931786185004999608648747610016185414368106820052161734844319971430328283389746538875393399631572688979539952895579524044441790291175702050983632177378532754485787267001113977349898547751473367821419756393345965748090815905922934703201148834194375808526182157962017283005327678224428022785885491704102001611138554808594208317859889659505301881604359549134811699446073370593432821601684364015580926747833917460436761210165135278735658835443092892359123022146647506707204165193875085356420291398217624872380578054739801135617315143400891530569425943274223653223728956880239797856513464822804877040968880541519457110818253285230877849857353306941730740382465490982116233261713882962219993331561858213940308706088399542673243466453580177802519704107795287883179415377015157490080777549403685224687688651866216533421968169087094375538732685675318771658829565070200830864208509576234921131259043712002370694548983931134405614679455102695435411782158175369937398817857190929896606244192995306711546395185661118600916191518611713707995597142835499403081030089192979540543037447114860083127380855770959376786898912910037132522576763216365097684680574476662219454320893622720054243743644753958350254823956895893512078432212090983907441289044201922040222826071962467594085363765037469374916144190840086356797667181648709124194827661750280606860840041509907090161654622737495144296104766063202237712207724307781084421408993059928066959666646876687141157098567286302527256858553189240207461000033323093348616499042087746938419432550034133245601411557973831357146958165619846123013466579175298196890485592759777918525616732196394662085959198518868426872646365906062185286926705525549862508761688055774809933668219030964401476307881989093237355576324732497125208958829062643238695646179164870248683935589218551101262872287369001374189113444186940534849843876416914046090843112969122870910684575918881656956583412106132972984277013944772231424691773192599682676331452211494798466761521892356496989135809945603249626164418866728330795056951660957879812170791964306378869123984534841152698517176978222523866323260637524875230766269493606520632318453783215092129218389379657319582231541188646633252979796574116944736216850946497180188039445314564711384759849745543916269183963533074202218532025741873476486162117036996775164350063501845648933580436689768397182858469535822122595676767643728935151047966270740043091157752229515387023680112628864162672979535686158726203173732312218930555887645205144410256564180500959419821067686586286280414399713807181504068590613364917126236497902647343744121874344491511928376107651629414231674458055342443862405878391378079271016615387998140110780933566423589898406600499206709659511678492259642527154279144770966351709892515135449588383175454964918640510810286796019979019342215579423008219205359956527558733341356280917543368061470641679290265348366770597362547437705299386602426408769289556173844155637356204795220029616193275904763583435124094467201697839914755560741332481633411070630385386391577050473392972054003308524484540627051943871426470511003078779886495100915859869067771793400783340586346568974007281890281947868032672346976398895557200874980147870287822806929417742256135293365444394150678457451538095664310105110395528964058849957962845394413904082708801540940054825071456769174557996415428256393464168118227812997323285713472305795665192332458963961680549614393838182819113056612337432924528079072181220502738394326619229219883098103624732130178329886352335381082439395156497364383541376400611229296299259124322764671575820090989462829137428805087321230019488830164768454990887134680431893697313499570420876274728894539139758402113874858325213794508245581169283215232482563007551034656065225578283149404995701886788957628462796041392126418631688996940509739633984771607759337212219612270953648950162587338166159543454098177999751992829468998793214034710560099373525637648314909076644323836186166483775876071000629813201663357445574848137278231197667814007721882380525658847880110546570037069530250070396958879150089786510817591077641529882262609242078070031139850805164015093147113407477837520286139957856300837696202990121580297040668263595487799603346160755141862550833155504961826289900129835023575187922229659056184833368655450377911306432941431039437890919198379014159059718828726488859862124756645956182598796957044716635253370182537874986030821742785695245785465461850389462101516462766632509069350483012890966035893994135350132374025516981741386053402173341791077851436511076974752995992540346394822143246379209435406165641194895026684847738599667020540192703564817567612871792865314201893605426514740172380638177393967008376752210503912541654825488674186106619331898548001590719291284204201505300359805860422093933319753609214341016407451572864210662794425886249935213306268523618860700341544392673646433557667644130300824804457531344308714290357074610877163566757071155594692326959402925104734812951593950989545231079800604215522754381273108524495619850454358643051803466306701821807203971502400636913087735699958200711122673938432141289866577294621426044232531852822507059432556308605410113911949315172817354684351489494666219634854798535990553416783148478725417460104355519344905937981089077628624730622228256776423649739200548023252756057680381712065223095863591900570622278974752571693677124771969378295068440060313355597014204962276869794063206245602084384468846925985345469415888710066921395280647241441471014400816861035264773730973800626056825654002491325957967384443483083598058398364331221377376792299824020437382925602880228683183667079364488628048080093464355822709696478015474414996108728150710567700065050640410792211969733840726785591162040747544616931299182858961709499845071943477894779787971764670616756223876951789943888651151059648379383575535943192213123220599580142655359707841117107113390991200362754591807219934956925415994578370954950383901546714343848023294567131732009616520879416698191291367113365695613973257458690157595804526609884517352951637715584384611733356445292019659858726504544906697070055290576408739259209558666024771907334423023158838996844352420616838807325931565550597124703665946621392435363255892326084731876817873411782410140333239523692781158345195141970489696209621648291678341811617377642507395657736301793747397852783153415503747427869315957750198596402002644196827018643243290488694465066663886890862108752281669863123884999048071838846875937538458923889471687686553561916757771047565924036040156791257545987831434616552654195254684200098133923143979528225784628581423352818329514377404563386832082406923992492352016189830765946558785885038179923346163135480433805710263098439661974903149030373064373667205561662798741042462714187649335968054466750724542496001348283897144583827610737791048388022600271505176918626633291533941249695643024391737720488144552276701774622308519269871654918021321398747029066955184706266237721314013273715895589781993217059817614919430393829644769062860509619174354489567879035984189580272316827361958531574619258935518281292481074463006980383661472059284732408603325488298533205330438178669027915149589294667909945301949062360098247157564110806123590602282190210693341021721235665415536502382077811935129909087237435228797937091690310090508777920315354191866451606847084717742478515377801186636651924126786353240705794950349627666382516988391709674282219816758384339453676484885203765950176959473713527371053961568873331707915517119901185582865871464946001506957705737376419927002053215816234025189346177776228630085403104903969349776674746380194635201831093201390682108198905278149434092092107181005764768014279868408604248883422196891267169413753555564728862081755071137335600957714850289838206868184494753602882797098081019949131253640885073684861434064082284224390069832676930352742650886743612316174469085724765345719322787292314532331540407467534931366430645415554366770769454890942986942263337556643615438247607980085589332288187811795497066735351316021157719029193915675830076416707909667157980147739982654565991699100343230447872102804607007549958491365855384455136418373016540164715911440777937460897040720815462261885072073383062777946753734520879140298945730508168191012090592194827359860910411364367836934139517976437415661950402784999137874505742308194878067786279609901277877596803561300044726031489532562652998902302925178455177953972492817895485807626483375535560253031826321253780112721491176320324049380683818240526369771472218511628454385321278213407588435466563612963286016415059474713062097649367766605266680593200443706889758797130456044843383890386810893216305985640798728776229762430915344016636432394485745923484060876566986944420365508188249927885861244448095078856893714998950284445780020735981316388920836477097955216807605084137235097109456661599965013244353661477425492249589911553424353603547924890271667407206006438040416389501550482929752052419484531584897144556859866685006402265855975857147597390801288455434646852992463443339649568294340055959285744308133637225669347563053547513170246614662265119329984804597058102663223948133269271927629030555565631491666727937834170371975844711147406947350009188799967080123544220523258188745409580644087069386793171412511311206242757935481710062820027973087700805849906087198733390845791869729185392339899502001103899046549950527874340483694602934418491189484889535736879454250177364548087235487887186682257821034694690716844148474539004958160582753057729197631395477903173575409133155392252609574966158897787668354016193286722187782453315238854504091356838278560401665613145112433673819188061361513357869829597150838653871519404126631638944865026732460853582937797503096950322159348454782167745161861096974364277949542495233849417659421862163319847044312407721460597185746939227523966861634293134530752312433811427224466154526657878278173216261521871937743732348075225558835957650003017528474494783555781554411420808531199478182423379364395457354809249726340729057717150328526070321500934768261158505305653714342738062588592791782955748857840662053489866920887719015851098942625504711442410210962786548771089868413217440661587053501081923462038942943136021282990249518206532456055066699431813316846552295895418983366376399639748805047903542387438126349615512955564405727974586923134110020168174857283404414794892948893159414231386150210553379101421706907546365903015546015780071744832036175951632612837428231919015699097089811388460783971777197345177451016135415354249064597069733980498455699994775523563676305061213294754262597921655912518917589847532935120122144678088870583632959378420091431651292350041007985866700935979357187121201252439733560930602462809052813640027651101396025870184253939484206396687756157466749795392097687887354227857505719971498801151094580270232913213166699987148568929268055549106446866914043841691609119704119740752546372002908452346335812859362756222489605468228113690803775198307663541707106558942182413735307905950102962909917503841886170143022801973567633644071693133244660637616606770242135727656311083956025766895870520936586881355400960762203900638228053208336839702841802262515358972572081459732595101800879490950660145168673789212743624468607985625280661143811992340170916650132743252708763741656726586247345114500485745838009992833196190520010811489937294703688530127978492550643150991869185722809372657230849010143197896882231199227685153182349376102357783354654531446866085205385452855350309946409042815269710884670129226761010288104058163915166021177928773545606246203180060750162925386198097805146670568736375273681439623880303817513641564333557027828588512971204010982486287796777737834766271245726001972030615031134191150958662999027727748152599470326739071219657849833947109449835007010358941601386932159856720337486370959621219542175396910268481535820742621558368795885911113686530714239362866683920334769826205758742279371245796567045456135957783196151479217084092558379586623784837616993588695826338947400793083704287835215448543026542489795475541580374394967455590903934430664144528017292882645116355824512417909957699555624527672103395317979386335172781253780042855142373681991887904651597851010262456953278096819921733151339263672175954389622459363026237031083767211353895465556221042177962787959825439410159967019420723091167596806640167221642257287368769771283779970160340668777360235209884879027377225946105033161308920069708676380477325004825772732081891467549763231122538491879037592553062918439251285076986282074541214635137436528646268383243746379862764577955653152468520467576144657203310475653911134821331860906583879678460730245630451960978507053365669797993805680508600746375278612293174158263505084131593778422597972513644637889337465385388672800158165404620893966735282630395146363351023791289192218567104987456760820498170595806484427265195010736974020733943053710413236361679877509673858571567992689545743485920537728928349436101724721241054839817762936360195053600134957316673606794805280097735645224858506556571129109708330505549369306628834852622231688623970070511276463055330710870582737369443523224911935470984356894008958725179945644767371391232374447264140347534625121100773962717461467341016236036078069932199315239068345692201854733547127732202104802017200300076172456937424148800177662984703867766718232905484071861307499161864358641823717055399241964454734620151591854829465045749695930911644184402046774512622927143278340665560213794376752945254468333758186603303708886759260860007811457089826471858021424120048740273062937386597549498282358401030256739839760030566973005353610036387153303572042121179538370651507960604467164978048653133969363985550210261192835277672227454299488125938284795618841044871257062241361346694441310745765372070084235023265752683808975599034913951477460648478007713024539283076144967385991632278948326146072904952607461952916758081603642600597493774918563581281039764671269160052926568227761316069063231251081857061398040283908819857887177590130510882512600345579984303055341097475026034546854005157032986305899226281649649218492660789533087462221642113667926334393141836136586857442110282099763503166685070544110401202014359571736747005249287588648828732292846821130261849434659578898724986525466524241800008822540091515149049007851577672248631967788009973502163588380866527162761471508966933744705748002853007379206929508606035406687160472346237126895807341704585906424961335850261089284687661400803547495670004818644325575608905463720125960990499063289551180507721660770918425559018108469972684001040898888918050549377629934473364033316678758666356794930793129651645802233313206196964400995480344587016274495781766906778162091472019543896742432397161499426799096983929382108485825948056085308950054854622820796413290779093617385422399343751067822086087738094565307337750784147418130588432958112206680934315830808190277889001274162509706757883493722637299365687359497106786443961823321280115399313874378630345221159950712832225039702595084883055614248987946040643570170030396960290636449481938024482237116498684811758439299828465070894069494920572079670121488676515629844589366689420969524145994958197799765004017848204596104327488509885415710971790918734925247753458272764465128502490901683128647151988364835746639641923571612697960806984764246073875425112556963864243099121155196695243300663559467660645567277280624515175824313663710864698202894463272295151354246573641028357641626453070406818633888242280643870637464103912002000537429784954807904291026371613314475159651726741183743347836935542724756394946777156858666890752470464966729348648283570451119865098914393323960282158667060615413583045895177070563538414385918286361702113315481079323398115163049735379940321386081428059857172713438691308253242706117210459010982930660125693807391010112534226113012755764161361018788440249847207679272749538184319253625576610149457216329786414153041979304103905262068245501559187886722140391051575351665734448213747374932875264961671027792597645144583286809660470723423080888973106315405654574966259298085512858235471639965580353940461369690282928929737389753437425110164742671253837413756432474383631406548964991462254208687608172429656476847908793636343663611468449993406792509782952543244582681572812290650611120867995752739669644117725390882593170776204694204793555240616439750981807186751764001890013717536370747574551258920048903259524211172376426783520869319745889402208913760418174934399367822846095024127018293302893769857714309007743126209759255329653627500884650683077731387298715921099610980912647024152492176969982307049995307563749917762839636905222597149099683933612477126936483669345829878005086705332752762100081333533058266440570815247596773973615798414569737801616834376416321341499080887297868202094855919482662989081940852669743312755186197179038102387124024184777520729057862548731907055269009273522782292152775375915423460914869077732769160344373843391765544407520336683685200893887803742203533058987031744146230567946077757210924274288673453685252275457130810492684095933573746771453958636842316227754361788608659350084972014585839401901427878988743826458312063367907313258912639173732717193210260345734489689429524505218100382751278805646694571726718899613019138387240633649949951298393023982810759107568133369003436306637453723151997717302111967588225843956047177564304770506620855448971801101895584373125607544556153470497962464566243210884403835411709937420791514701378784712525476233370916270302755317407760070045668496516764432111316553461653499542227051573883283738649325727389367167169321721472562352193756323195134922416784885960700498009433760270808375191207436435572656526308747823233020188190794791082847500268856122732066269887273574005198614246757145605470316385167322249399676349716445579767188071556797324458654541233253496145659560893158026572943849234213004716638236685852556011974826322566149027800145090980458957470890356061800430963738769151811142967675109170608538594820080620319465698101476210401277690442306107346554862899079316593327004663271439405933683161362448480835224382718200946653183405988247774962112823161574123042071093399723836996426848227284629170353610317967894340751681161367953034477158754175276303519206941176035558501490351736304864943351742975832696444038923144544276064672480567506952568355235578976726829307499686532614451818398309106485001454686695408939260239427441620221276742581699872773077701856019016159000154195916831863911000394260504841755495022644559871896544090753761065008747557519725212881773091792624846414201864227556876355950896804806728890184191507362815407563255787569683990579239216099601681160607683495725145903889467585901094665960703813101553999157410574280877365863558554385916675051262611568494255510460332847870466892348843513419639596066240587714753337036560230281943289515170644774988529415049613376655224327985394412531402429989633140339694400958187586494271530905783602859638881254649642029839355539624449899715581222095450209130204284146684612398122414798744467177123325021000648187310575709400794006048247446182225103091601076357540684566014623342499156548712932450214490187643846412873659155285069722504396050517641390058159681898396473183135351747025259788896388687271814090373118560909148672897039069307133094199605332887456502517211657577334872868340559576063207355215690511616431586440116737144776541274300682349679255401370113868066783561213783497526384614654409300241599625670167599931537060593743705975536793312819283169874159961972235236768469940566794842552189240008865949541840828495031976069063468256036276640332874170852942734507292191023268770807696055147683679438306526894069431921665401256863340091054955113199297101079678850310851177861559309335329987363203783673027335518598248228045106285811435735035913620554807123814359187550503794058188815969824952308117477440888702867783786826515997136657554232610557020907541367718374642179068520058860761304201006613401375623731470610982856170261263502150073153172048809235534234466077666766527576933714275712561660452705033577934924066789449321864826317993759202710865044564644968258074902611952691622152040700922167334100338224846466856976022708171878914102956992404012141365850718017033225564596565037623742597953260831317209096955086784235842483864366366319027232159571156927260439474598530606528301217030948892475572006785233363129198055206226887988616915730056525210172053148119000855915554379174704986766462797611679062000975733310855783162907475320660471631198066400106080473631593057957441908814700395804691461273462461666947840286296772384022142341441236084503278309651512866835597555707552156552190756172821433968553954797956286978416809575770787388759602773348514009583702704335625844920332865562255118087840539025929063582416587361745644780961232197483816035007105923230837840463595205205996273812043470222844486199592059073324292906972957882563100931965433943007072723766342258728045799536855886884481612195136565060068670622670871765001598482179453002201411257800974166168379899388008492541280129057733276197102762301850011938677480137021777357208932456703080826652678141636258470038358256768195264736797302384203185329140685400422170604275708780537586957902067320987547932518879715548671096473964274719113461002844636929715994064546206728129963862934006658567446807689061710965417271969788446204510816203547036258979692386750265109343086470227715144385612236997599143626402237120101293899646475029989287173746150801317815050851857343364032474305483273886775630091197327395382211697444119709228288795817804101000163037609264632153707255993670123810167163842405009490687572368021745612562565821042167020026624861739792690408670938734432971135300526920995663307360547324661690751656573716837803180915216916498586405036181248370016948912444042406667631956809100331107681258025839729846483338427748526517347259760944786421837901384098918546675516583036325409850868938198343060937640733208902237919056895094253343473005131121846450588084302346346975537143132506109959792443901867430872409546576852211118533129216965989599680355891057503270249793994256425363051050485762589924446201244656009940162903866814644201344771715884328817951547956504280426319160196954833533818544366503069624862965394871023811434081022568146548570844584529821466843415855316292760601270546318552488042594859453505009349323903442441223589126942272326687136271550858831440186786181563607913843243733061316672873825854382656776644197027033141584111108346768378443632373371031845763446195632315373191215443719913044688674167230809839095064141493036349177802236419195564709188578098709710303914681782360010106054009157667116680965311687967833220835795852858817243477683765353499512759575361348552887033331227603747917013607290028684387088122320182654977927479287153655733903400893745067833508498658038372436790859401937955565039652021043155164359422515943995689980721306091007771345627614898116857121487097495145454258681086046800740312528377378017633158030756781607659377851342877744421962100770243640249810147707287477052721246004051159707611997922063910982864291101246507960126026304920798412112127787787744339705988446376771961367744946335871416347673501696248832660115302639012051872636446285304488956213246712210037153258505837011003833983588472768570802476739640862073734782177285827531360410179433319829830530817407650199535188438670363503294563161598349358123359058083457585971309210910105485767148503648475536809743458361483725889011545511049694760924342369546490907262490217146596967174813187081276773164047172798709851215183533055859705499507112472190777537747450129646316223494746311566218728033378814684885058411220444745793452786987980880662702493166924378646662727942858224531653020793633104965524673470688302037660147280249316692652764130913590317230110038813817155393147031979525759451612390319957243125921960162722176558970434270907996988332881499470046220390770575718252425128513422695028886110639781435704822101576184420407161697911705689179339618056607444985822859970160672773635009342349096529693758825384373718005899266791620735347270751876537070259158526313892506646473475197904490609039307877998764777238361638445559361012158388438203392466182175239004136373051935446476140647395641973912794687274908050842128495150926525783114830216175634473402611767910294627350208124848211392091159475531092415027337812036620999385804626024302945951160797778447513612815778130755342696010024809211596396763057638316435105287241600938572795661205425764234210163837361830892386563236028809673239941139142365670913184371072076509318779526642787185299905634378067813210262297861474199387706297202846710766886394448358184031620366392410372346848829309800627551227486481200238654227717384848038238569830122591190340005481934603194452697939516279301728630943364672019724499775097068191903992290592626414280077834423814311901416219496833144304575504981108745499041860937618271677037555364997866926133115318867674485071150673749754442224392587154966960852154604548078165074966809372790852137365629754898882826498721147616206918295524016817245427743059423734909484032744161662199438595623026666065741460004087855422385157052170495821345197078380301209694281040295780589302249539973160717128205992388563219460368351370100783551436176888245163295711669594850199813959711531438426500767006016800128487897989658745903186665303136315012813151087944430316832412656250803516664734260897194051329731685801920614151892110410163081105205404841266392387210586760039024762589489780378480593137372140372827907919553750875039890185824289839281713684323803548913504015550188263833995421094569405719138873145700763342024696229040674676434743329618706008931593261426217994300904544199858195409935444320706301119494272455125879787827606327941480623362161858526175609634022358454549582216507701899011437367640669585422826540734185589992641419253217038772307255920544872752539155937687940170701918147169326369367989138978117394738549442530875544477286120263710798609128457224207289284704016138897374603328889012881998842284956241916811823833825222089152148859070949774374359366521395128834342525217178155415742008222592695645809849287404437474438936597744832218893589282417545037010137319458547483081070178542542864888391299191400729073281036942931537187983966379639805147465659952683694197639008825809178253207019334021164345492015584265897688823393439896538780455455594135512736862692976612917562473029766573032501984480177481137892440563107360847717648637647303530486334874592172590131091706659118413714602662380589664942051245527040946522682624931989321179781083164804748975583939668819879515459494327925238630814254314683171617713402694875557869005898594645520475416203448591173704666255095685661849402389581713961894795892429864271947278526687519197662308615217438977178453453015821877130215385151167158367338018147334150418304275502756974359817461388549419332692596099018929087567096523772665559154507596142607339909790258455673808725919073631146116300438666645184175551248247997557642403686821271618617350386795341685305057912531876449286508693481605557525205610800591216407897798801354592506714575277042655099645100130451735646692374595695862970972148709689046381656318380359466091839065518878188614362293936772804209769005701609143312442215242014823582204177575859760315020777693955431576227066718391476079428434501605432172630405472149320270323508694761426896729185692498786910006518826519673510171230914242036688320332912289374942594186160080565084182698135833900688636531599826397272205598230999165279297269019183526472563796207172144287946808354197355482211123765993358235181215992328555292113543941572416329554396909486890451209171937067250617675706393720932785126671942006597756427011351882410330974761191528884838715280229343502437808163705836474069161407492040814376435955526346807196646612803584384169130191547617755457637380992215193106841643961521474842825664293003822982877323948842520081331879325271033277872367462844458732041375976173736386927039032212427854764463950152500850406117790342290104610593370155623887685114771094148788020804476315608890984949444733731842096663319357899927908074497481602787947217174108995174994194319863885603430593300781079573367066318981590645514654236987585662427035551858548311923899871029105360567988238568338249841382515390471739816002358951811673062638633977911772523189030401707275973630840630643259435245338624094734098151529265956981149051211685095647725147530028812592193514594842752871669795654077692078797267656782040436939281793660278967685943503661749315166911007193741818689610812819978607338119640326258762779713898105127570567641517653215358053647815056312735314671710798492289506288247190623898996837070733919142655139849950320269476998729126971931288133289524408550902625146625190072805461941095544153900816165880166100652251597852184846884965675641553955661374158496375305649203644087380320267319589612858225065907237395502620172768919599119213442624664027867548401242762670068814545933334220669270219213977987547104347222811779249235199371775711932823693620816023948664372621387637900404559774053978038223318113083985894028974648523989688293865798662577323851702074330931224274674215721757841813775836785790977433992073864682525386546565505057245553030323703687848725660471274728937088482965737401953320291884720282380490185749110196610057642950923478580860114391793170335870620871261381524920690011100860971332699321735146356936625343193880530125673957996227998018553709178590256551133615515328513416947704244053765765603222446355509627536731409975569220147726896362999910141206244011214849329487892013182433460064498985273542129232385140850126195187092631650530857509171968460430666645499924860235337017414723809516972462223065307696968114874136030221236758132333495379069141110203148983863957910636177940801746051327571021871736243416449579120577838010347692285719970498991938394109010723697024817238525460842386656968086162732253887790922063993381337361351915976475759834396520542782510300687636298247339761424372845593124505635084067381449703763625226853108810750169611149193556594472068771978261082856665193527424011391550249929513804818912729637621875173773421513243739141491312726053485276967546393791158693615649187317176418733746073211111884556047825587717543565654414549919790880945269852763865388346704045739492064541852957531915477958673951586846688248076980386101666386660750625229848911236653509225776944999369450362561533560793509777518000210219166663116973483312711300696082189330897581793327256882749522447711734468295665986016996905412500142795696098161432334265372069880551206396332532971887150990198732302020987324085658010008860398448101534310351831122720481274635661031501536529034102326667460009911531391153261052903703632808448117909120425205877718649183970867239042041128596208930079064197992708777279445665049877875416367083999689904816177965143804691577689205052597040449484496331846353921278251543746457250304712305461489700548404984232711011038812748607119096721708901427340692947353641582500347816838986523276899521062653745605363766111345306408074034684375035146432909181006036734630016018675030110046055435258960537832017988765019676288910006372244439429883741513418139305563921861235739476058397681619293090619619813346956591446475837273167563732664721108251039982868506851906355116313671132247444889739381365197964509883604707512848042747648693344952798883283812717233510690262747976429150577210080873056019651093006741521120015355802936967454272077401286364245243943139556866471947175890254147963775375937161700994531848871292694571134802363717213657431516961363445478075925205814991079822729535619285722317228130180126519729080632748850241926179764246491912843797397394420895018317596444175009841174073513603447801736293805530152602850499679652266827671101095790283348316878255493978581445555467414057702208070723177664516639524313840928690414999936696386001466158697014166424964731759029227623452878526291860823320777902995354152012133522793204976174418735965480027339661865626500835776592557374682837736672152045098975060369114913575377009105905606270551251281827046421596494130813613590057262992572078790957594069221845780310710753910777467314396894279605615038098430224566293061670854191405442338805685304188014028331540886856029691618209543235974658601476961378023383903200838468834033100495656543707658970007746633396446083723400291825753157787781029057974757672350679244229223277608509744673173189460813551981395111039598993466182762359305450716388872297937908803309300272203302944843987878695922710656886042373806525060780785622703868685129593067650158031398323394395068903007229205710690430649340676121212843287835656753193694102526672613810744328692974172648805527497623023693645184085759783402968144180269068009566598222588340259911534033019494758961866362053218865828301182325273240179688348588225602095130081596972845018123831470028294139105472639858437977177740137796563295742979542382641420197629949778141531706667154552356960494253174057185703722816689412674602280892323889330225897982469681024499564108627906161647672895720774315268939063025885363476249849351915213495449040164806880655722114708645835935713986015651978359528790541645951817556356502079688377249901459757039523050857161008353723859138295012143792181951904496648340307919283711204232599611533339944385863811110458902924527779521212503953961797269769921522011461085810930423541539929585059438330718942234873210892699536879354865705513610963229446656527059606393777518536406086311821458057992674119016802351501367247509503920287375251981564793429724675831350352244087108057064388384157866156990771483053262386129146415344763640853826674975355934227849976963523456990556870629160135619984724305470247368993721898729833044915390495770946756717283018768775080177676498494293532879611665759830968469683794288142012347795401331082892677637142600000938366334949852770448186547004081006708478993559872824323608807684613925294681603389629116910288953384857668873256596872992146653477206362320157001584149257958325985576744703293921873412284531099601547478080468105780494928522594081755301866472960375123542776545393323133988447717837113623402024050988860605550013614127884843389768158566541406745866405221634665667679705603863311710839948369174476175829779089292063997862994745313043231027370141891197489641904048571413618243690684360798212950027995887173718710278988990457453640431630990125775438243504158845290558605972143958196601289501350296573624160580169377001658595164896950293825569350250288662643960764440128820869335828144293482544008419097874221514117450068231702891170564289709534530287409076340418316160650750074289763701785156102718363086832696437019038804388080079555096040386133123419402298934599465177833261298553349581288212396982155353582704111085460041733864465299384291062906528642406757611248564495828560452030002118514287309868705600039440983187818509605494495806148693755992249115162606070020931267364479457750665221173754830678561921788529023131591076380405341146919758325104345551839591936812380695780592536637279425356759760154821270313342782006902220541120528035642777822381249321592527841392323489684964751292751632948812263649942704861550828277642952333873911665618963965108238430010560543893194261805895550238801049404319541759166959188817030636794446756162990327169533114816955855148686597184042668755637360161103311143347814658727966493286253780112398062143497551130180998357957158196817711516676919660734950855483633981871859657848674402187268964004025427859444268454936096252588017596846362479069049613031107204024494969760016067948258395504379060826790864997991269902756155276077034177746716192407998745219121278035317185828721580194119346938063174087397837823093412255137682536088421522713256515188873384934102285458257049550624738934673034047785259279474697749196839049452300388433033536615477459743268904205755521391386424372070421237423286699653702212674039356524603296262346739972208058192741252719899177520069405336010776262296638554827215940170761206288475899770037330990082208885259546396749043919998079171342544138872931466396008616014614721580191012075436418959280856798551839528986456628737676511196975432310012489504532810396671309985843123559065361437558835422136195481007927192952534616935855206544542740075369648472831547192970461861109878695207685909632035950577766381313003563978992983564124966845744365178370662535601439514718086656364483368294147511709736668899618863514994036093123737738678506118586321448164595310907183542171584748939405176804379518577804772442237570897809155994380368390350209095089242012279995669050060636826105935557967269267171937921190337157492929077637106459574815819596359011842037417228725287534567224364213093270083203855999035872307678886459752628232172594115561507414931959946833674493302374466021306068206731408119890801926616911320405164718481383369878049496661020931693999662220282841850461525582567253075527710179807846738179669445229230799912639576963806868581852379206196734553121461946310735018647288252844006557758565753614023498141496326083585299643920765035187343496934779257268780565198675042740606792670515276482654918208833847617237630049910127073798905660632913738083888494336139480264967809047151636923697986774834816892932769091644820279703077872684958550924472522446821167658661861449789890191089945316391257129879864870137591606659326564780395482742165182985519668143442114508311102089187283758759842513286384484256393231132138349407769096676490258638251562499874319375413200870171488236306983321480265222524688140605871337944875203738957679711541699784661636187308894296426292398899780596694383046272800915011380338558817962590040924641106853313137815735312572375013849579519747254196114933750111333223017556789227349371023075311958255616005187999462617922972549736709228105052136976402750464158597628389752570392207765177834943520831306265035549828861700089827982264603282759751083908492137263955164260870569896132916258457398644562197668171852437420111743975096264958704538728676144214984680908225952796160221773993209959885402760888436874969254570678038257410104161334496156901126046580123247505842950286472893519681955319106220288887301195180276092966825398505838620144281244598877609394011808119905033936097217174328849013301228976466619928849423187812941472822936942830668109152193929312482954720708235459190364894184216319460805331095292701604722443506790920926740963283977942885335720211016454842139647360180255220665376810762271212519918891133723795541276221684851363265795617574833945550774899112695653105392789739859838477647368359916259899831720974572109731599365780162383575251049169418832907246674000156130463445981462123556954687897825650861741691108089388408493572275781252101952070928325773185253366986525234184196315892756891296302188885709407441990793249921059563198858350052579265092863957551118154195267282951799497566776477233160441238389651201485250196642489541452496276969884218382600991773877260140566707386568224932541789448881266023563679863500139135226169462687793165204047372601598138112218559650639637453113822323217674039139692831978473126455707740035703540682593714979414881504026769499532268922466125832652467374179918397938199558076506227660402924625161306003160885486144056278006940182499576486909183611584521856463172758089482513943874249509285808135366473032273469752242722741318738270508260009155676584203145757507732128155390255265302643295667768582476083165972453303938547509332112892919065187928363147794972414615891649793198718129487273598926650182329199238471426234500152587860724324885703795873817618791292031156634128368168662458139695099925476775569425917610490267613814719414926033808938514266554078420464863860194853572852913063939121929254569589270773956786642353829379704918063989594519110417779319768806464006060311670245686796458988968828680555647500042948236023960002895044093750446287020403596620215574093042731877737414902746926824534784765179755933204772192821278867223611077348859177805746257869442809806760857535560642330803289790165383839451563880826161287908214564305669122443539758134321750646614579491577123030086574946467168321500390219831146389531642234820753557187368905400820465886693409722254505390844969317058008045796837095047313729542578624455325711639290282961932571739729284940070491708241630869610702024328940486199476974275315569659586340182124368303797477213708664599264482850630918174911333475097279789732050181118649551945817835036574360145969695354580123745210490174853452998552808094253510417111943988061625111513175481219440854349045409698568702244416446236457430408828337327163105477656415125683179043673764181541728546574756758463734192874716927835355667085897350970942038644966591457613599756828046114679786487276032910819728696064145059684528243797763614302579524397183752987423765114103752963106484884488520050970532578913180215124854678960373276445422566240709000464759365686785177059000457770516775260768256373703297083226934059907831201110511699698126125040307648585622757429796450094581329907855498524145333024610838381493535144851426943945408015573690765240765891186002374489321496148072721284275108884580386902054806626434046083642506084441931021262594489994837846172688853416699723995036511819883778642192774017081919095017467527077051370719086190354132068449676638205618360757015615202137535929647665101377736822327733439631279816244585243878728004017357299222838271942880250020800941776317415125533542347543553467361440686533145335922262230705843486587228608925023431814626820446777848000380040063570326765809101663564642769085904300185286027695047975064215734427590804738044056138163952002328948423074683878342913278803419595087345183260071323791872645052338827686452619814672855650590978618720448947465719190437466315647839367317298989159320219789464866574306310396566668259224181444979305987778960034767556057218550502175880795951968965929968859227213780747146301527250493287497782463895083658148800151839003319418333244697563921350433985566420930834034163266141282925960059027947382819290918842387514822333512033188063602748241459957357071011390543335959708577660990740703575920151329713496593100107094527759291148197490166267593256923797216465168984781349399418215294748231403016119318862566830303036603559688644443868175465235224167804986849481799214637688379902294800596824410020892392768522000017608333229828049167396127501459637236207751318199053630449320630879850059602890372394633624041703427852121979624422122967410243146705916673286820719264995172601920085766882778166393588467369951230682311311866208165914442637614293613956735687871798749972217715647538034827916926510306487903264940019319955795823024217756009987216054232385704978034618947555573048405385714257620059587101301558035116405107204713876349982665768017770316548018757119422873587391904902694013917858761724566119030297752679791386563213347556318826004362633610052830908278730393793259378231382799649896031262026376640430662669801585540903178926393567643258702810257812634980815053498964262583498359221528955404904429626174468825509516449779609560034541405176752372350983084536259885014946068138510656907803156534681664060430171287638749873837210020543306696347557630794104123851471205470041333710430030124614686214269915824983958653632085437913961089146662456050526605509871326985657224974379250294057487745749847904771000606643930618854919578832549801045662389176034506859268288955568863973821955467319010054691908082981583430711746195025603224516196415954145305998611645323734591306165882736109822058295380181594525381821490952870148219237712900143316493592325857249310281875597512464489580285450622544253564307349654169772963962640013580789217151832186078782676485949917557221489156261493259076787923072323614615781717590516422415212403141175226050398912223261842430123852738739780099354788271711682908061405482801750897909661614183468781175805486311914314745076840827100281777578475234002534393710104346804868241513566274838244608472022856906960286863359845427521392405129974838295884716876729805817491296704286042794738558094236460442502365182987446338526157371180844010491727163857044611332601336533402457595132187003415941862561067355593006525002639899154680661746420719565715430397012146811382065522912213738246273246421448087905754256370056359945795239036300478258668144822717893229740667058003793529453623800605969650822021180670390035935386505095179833751213380705272394246386931854708397853946181071284715512500397714767332786941645506385443753948614730543068106313826606467949086699477191280741235483710235985760801603546907769815540322504134297555230867882192433474175715353744621718366561569530885594723581508072729740908296154525103907843517248785191175820078667609302670456320352552594208246702036336949123065409705509588527368553819409507259994096376232154470751672235094046630434131009014029888784218168429952107339362595443390633593590615620000936293314686646620999363950374686992455898655615226522773492230609749844146302329631645865835414805202586975328625959196722146162002996264856650239883288957065389725260887555512585320218196675361847244671747929725406584040499853070365564667581692895113388069950370216825728289565401922574405296423251249544634672721748100131191516210616081365144826469943790636071376974534231906268220077797273945343159835510947025358280533233594490065843803904526242415742988445532890447959393018769611701421445367403059760722974310718957670818538001840540105963606502721641300045811638375836303038931731484278854577904057320208188773457703933930246088312483662360958615980291329363504613031203460464280480447104580069935350332006622566628473707882939563395005633705666302877936738422728557898480268707213128312652015142436910394651445970524499724815081872988766411135476271973040388266338499756602848086817282560864327814085080568740514368474686413294318345598924623754903777010069828394015239901672173880892584835855478345205677860876019271359544643456155170380070876643540485475244817630323090083109453023554785509675818209066681322136426465902615737553647046148493122211006677525564479780285390056539669357174188718257918162364368405555471495233480243694147948335171191330318666997822918156979733814826644981987715873178381656348598481733913013861477555749661892844675421835333436109472076033633882618619142003938302134363699424349185287227982111593186910123937917508756898963322521719869257224244575835594749771676667508671730442278379650568940440391403131144472497882225132120639276573951995119091051295589721632274953111367353342105569334525884657565943230029068974043346064070555622178984455608192481345964913649824507132162779189670963143002755671785211103768066309832586015386411473708207010057412655839725486045035289536604951730349373748256773271998236415068388481331119560364319174271707822376156959169412122956867622673114943581521800713585244191483869307591021874351119720923151372877736141758817822617822693863975895624639795379112532856880210269625094834531486745174343697375613061791584656862948452203420812481157153220599170591395940674733223313857567567135517440258713043550425556449619141433161941582562818710468866737260374339149271322116278688217723513810751919545999663588918292244063457652122271152601383861437018029914865575809912307872677600348703658588518441562152906423411305613176156110520547485829930985524831238171855890114333714054124019120870761874995380321628241279741142891852151379698648124866557685054892530882533242134317197649054564156518800733356563306962664382984512627460864863894719040974837607733441947454732744169434195567018912499621272857092493256987302015380629027291091925694151663000226013868290699651624235408471301505329481739477902103432082965529337314431680457462508740800413310838669369229021636928370276914993128751835330741227394177725660016650352354719215439933749019958139964937686085628641883075440417420313690982044836701542651066779607269100046662943460163802043828607986145498204500686514139055428390009360833035058716179220481001846544577574139104617065596098747513995625691948292765280094634107266811166908531616590951305977277157608125688655918713517476248030725530477532807878970478357467348209537547193009840069776567474698525374593076941626336642452882128380562835115074698310675225482108064081638176901543482573457277960500719203573272431713893913047083044364486307965261753678058526915878042958140266865864947816028330641538727387083551494556515921130669852697236860493177899688413673006280008891414207671709204378185044173832078735019481380468012780614990175984493903565827774117522853407261048046306825342276719653577229453527482027587405382351611059901429817845715634039525621404833363514246050856519726376814308611690863228192600434363534104683613752252040633943739628023651576310276308249352601982960457548099070256846362455956613263272910185940615803359660128740171057898209349770366102588787470005409707668624825830781512398065929967107078901652239672191799622476623528825251918079097203352542308862253850497932852996136566565371835219604489853702418422582262282857612956803918096075843966210368194057261363268242367882788339938963202350477114343769303943469080628532709617517683524359564369487068533996209933658262649282974413726146052672159669445505733740845845054474795301042842112350667322760297970401361221597955172499163781354169172786224364869052714002202077697761411221404798365286416920707704121683689707697564267208458886900242713971892093669702539092462537634477976773188235486342005259469646601337468955673565645899966474911256237716541296031534147522820448519866649144000493578100609989704906584932763152172106913938651287585205689519483347384963068429810016297193974595648564587258454865986806221125595244837166826354515861627730219541895919129801952551594993939173992338762508684814660262034155751516772672498693602232867898202912712394665813970726038004841566582276016682444298875635200798484425159380566030424137646629818628936260651100069353956117572437051698090825315779172557708833155304133095561940111924866286365272053327360333294852597556983563278679106087541888464044404038104177729117340061448695645824992068275636526273795251277086449108235976571061600863336018234295567536253022874783874315166515530138352143139120289824983137412444624898197967037637550580007178132760255230205432822759913327709443261080118064507963278747793580554436073367340503092455731464781133012827294333218715131578670070632861217543952620785977018770003449148487912385660241018069924110923129415363083472013146220209437567503287750010370817484320704610745110982585958703369028236359380182068819212828569228574492894289156696349196023470148342656369170879356601933577235841142459542955571708138315850662609609977352826955395675290677227746129040503269900873659266450796301193007905114707693716999201339698347252233280684923685762422358509426445318731794838856823854402681408520699229673601396515863644578849505626668216235252253279686572046908956935140778863758377339776551824672393645975770982185189726163913021842588639020147172729077824302279910765279586401704094468655110208840926102180511089891822911538099661738851043697610257119373478180190085975191840253605888672416492599911374164360763777242611078529737295167346956197651346843125554232403535632937310424999415935690933539973117204184530140094082082995291491367837918220751680229374065034097337976748015614485557585165886196833836974344146769808685060689201014101952491538422707193052694300220414616238291672564950058765897323339775025434244191977116572598791146030433616282515512357445972935589054747114599633873305092202199493472770241057119322522736545306678927534927412561702392970865248068278414911450772303182753408069796101503203256465975587763443560438541583479101422793885140625705829012050652075519141455855924411178011699345545203377160901194598650316287278695778117031191602344483992014024831351914062422764934857272885467483815426792860770161575125914945739914819113189547706106808495517188845733700234743366147800993994728272666856429769378391707290601494527202569314910489484667519180547964778564816145623370935102248911128366056595215873039470597698912035707217399297747094693260114635704363587522919151166330887211633022760225905899264825116201161184484068436779034592250310934876558322199282221135030951218540157454352338537728022368543394860400529528325760812189577741058594726912124466157271902081372448459817515546569840881974068637610430897080880239559203578918421866105349608223610317763401466087056219025446997695496064301779649575124314280549094178373289170839790629583919186022062114530047905893938442605281541881449240506484743463661161126232309371159105626047753024534847918848108708502073376241317070276888550992989368149485255219358303031765101336683855423419878266476013178745507768481442103041259131304799333031282020372632577701698171510847627935511688160808704763137139666996343377481940271216705888286576906786070241833393316146930558186122397691343736978172321364336337964741305827432826272355034598917735496992982278715916313696246179082252376488415509306551678723679994523977694279362528614789445014327102875336359894650691327308141734513691618361687762538731262231528810190359993866743945326148911742761304369340980054069927287613504433363235027795962663003850482244038538598850746839222416864026507417249241168732704850095566814615574172071261695104253295284408072461696127641840521298243997261538904678492196131560512277356053940011235693480291738352161754037213326155922513374763122095893074578349265098675447279088332852005356721481529643070546719321585393651197368512442420640926099778188076730067987977597334795007550690132589528371481835245562244647400371246513339266676976557713407617223424530852316811789474107284590203318960979749585534603341785223170385656866257488308402211251958598910602642160514279356559212769889978455364113920111147749413762376063197421633409410123540742443247262492955565373710565643708896861956623435104364489492119617992020199779609000294579470515848118822661684490386703542208326815244484090390707830845466871881382504927386142006494265350784874298055383512727792050378775713741010918482784153832582297884803323983647749701443596287487175597523457283171430736022442751537523288308126915151572627925666318555394461872951794100695835801292909738611468648128574852218253311731251151345936987228903567069965739194979776567962484740067506072993583362095139818613227271414633705043881828662246097068046049581752245576826216918947442553436659181165284378432663304729254396199373257631911202536039242088060798855829407527244487609444373266741387405904188199058600536966919709045698896842498583973381511640486650774030021965377590718066505935646227275191072038276464429448547693220815054175390706991654284872277228446006348919894080085161194926113497034030816684298731256005042395127544205722161142086692444829862289255006833699324394585712824692632282514483342213729860258994581993200728461775751657991888998633204287231336919194978394308008061435476818816648251032469076858564331521891179271267468364439633618245853971316550304028978459014065605477995374394755144752657327492543691062148544195615645684835329537994883595376562198308793327105630809030444805112174657919556717180655896657566620921952090370307632176009388972160146416713063420516755315277808345142794361796488335139453961451612399875599871730437759880876212722656285058788612282027385446185711740364208976413276254899105660978618000074503451074957709042273111351021999924149275718295463108293199978161280091151921684493637778748807150878011005717727889483571849249313361365331744889652390052494144886419023352847030912728347855219225119205773723431542317874274326562810105809732318597537342192981768693674465467308708718090632271606159098748242938636029400969381946515023622840273300022190130682371944060082551275985495476649125313608759361273881490100845744804155924766970322798594812189567365545507470768551647616253562386733342199527279934723277996515389025369839745154793027553398078324510122978631075810101944311087334030659163634168233978983585512736787814878492248473479508953771738564011480983313137486614586176576609039488387809515858190185006796571905174783307179692718252831893000935518400406337215146446320438937754304624855945598832036112807217611459394150998207066372796064497246613880440990320657831276354955300969514663766563238689805448717117371701578528412667373425621576685903248016729249149232581910022313426059486998044588111654464467739588494327735408035578765771418574911242745241614725378629953333260657636162557854982626205338150580449469324422070707626109241015108632834628323932367507401485904998789388485422704546967892055239278273403038684873537151297257954055365177865621260629105359076308453230282206478236245688293074140773741543096632949746373122411423825270990308033973969561952214459728566169777244523624531038034099051139965025948299400915096967511131265047221514322374617293526712223133952751299924496623940997975944429901235617480897852528374117349139699606936515501589559230433002093222572714023812758230776150273615413762270308718524674698912263258710637312579780651506862090648109521895359251388243158438319413006841772716798053626850338985927841961336816643380502141330419767149431494219753837372424686521068454953252874166386282891359853314308923322980090833555286417285013061462702383578132811339440730128449132604720825832760253243206036068618855868125134337452527213767641273394416607941699480076314346983709063139344620626336941336506832581177549571704978308719028249043066044099655152763169487698628895154778021347169827290115853476795336107198997616477740949613237387604804868266693649026121746146799591060683859560626470981917221847240262179997258221757020760378061913434597951034674524767569480330139403331540388378749379960015950732505363596524384160228749888000897581776757475400342620192129033105092756599344926959351964753197530566413467192736062687982310296254260217730878770209985433052915050284285372466818937116895447605766020922577072808810530508840840432053661207171034442243543238082361252982910449617628133296361866737723158616280938173714965628697562040070569280419490334399436717052302952307468103556613395509216715638729007638847751907542602466589317448375407939908476669034872676014725732174586453657404938244826476455657963549763552049309182202993850139847975886169526028654456037071950411848811474367132801190435428782270644101325126200530967076505572480243713029873870769494690770611207345250508071176675428703719382954714872040923520794254462730267336373787996141221787580742828787382441291889322516298564916247952123774413259700143100034804014867181856760570790510694754426229170883705914942096950856630776181780234721595543045766999117844568684750052814739837183354670658252345025980971678805005977638136034547889318283985460115791171927725074568514227018549523719551915017045264432461121706013483082158728753950932084226591679556542583415689418512651698722904378314916305536142477276118022971723705434027370409149385797197320709297099996436928791584182223339689954752728554199107433631356690407789409308634011923524386108548885983652413253946824152330610702154722948710152215377887694372842232013994396445944449732521871747405121624944898091726589764860728644128527004578027312124120787675811664865734622360244782547525402673675266120189044810788587149880164839523182101269671245570442853637644178900126621006645704575234089700639669660393148523744921550740639111575622436755937476837013369291471772600116646838576815448600555993993064993809285134568259878107361056387845320400267062609135438818273527724694176301064181005679606427363750189221125642096821170564780983594543633273953069791394571689596602216899338519996870313677500351716442757061888391343904535780092972401084274490929311485999049438358075220863138270912966152881055128936055690504913201484747854082479027673691743487786340302107215125916675868747555165801518714124880198236977788173858354636479711493571608785557131451200351733201964976940250782900736460215101324046838068183381681703198347043669925653251005783449254933815595918756344210310626777228528615115378124237041335922791733438691876792091295834604128400870786543974548639876319978281027193758145542936739530191311859375744330573970417842137077931281198186962434620865352347399745192278581943399905136166787492454246067113665803441735845580383103593134278112089848725980711928939335702081094563188001622916204539827547751512964245462574741193537175672367096971440653110884833347382365102330827161350079021293933844163714953496216351245813353033372529374363563926245335611576916347684251959777545700356526704778243675044135355234026789135215821523442485588038106310478323076077500170189168951574485715846196282129509888958863621401787299167091155442567635882544509206701403423516008995196736644572444224213173628248868481301128513578727863229260671890256859966821827422097805536767802258669837344527383148910956021978436211973573163867908498917958358741360753655177162131800017747742310278502301860141008494043373114253586840538328906701321151801093521276488183764607417767160007312210574758119185994287258658230766682500762680206202810953251285483294748737400634126806131220663780825699394031677760831519713569062341901275009466494332563237715754442766021365443065726446372997699965363296738572541193113562655663514654647733119209103743554352179910406561783491438282570196882147748135817232988977401130326782390687288193894694136565351026929593293674855168110792644494395109204723462180753695009323340233125330188803487634313056582239343675973925506268967211944245029316348231388789426473397661101979561539705206369046700822223563938827393460423649574001080288079362487982845658511212357570606214734844490472647153682606348393560910073429208273952121590759799963086001994298292897305909670806032288895894060567094687290321425113462700109435292339569785360187287686020295949606464892900335054702204671544537817208857662258986563045867798814091446990469696512895930483187114796246673441112161599494207216864280460219090379731330838549775954805486119120347963221135111760034629876123002178690726034606370453718168874299293431508482030958698823995068260418977934236251270173099188979345894811319826877469515457536958303528026282536723407179358770187130669318190863971795095845035957417174668435022727586879630484589666294660389478863058644667034923926085600163903359480989600802042845662715895395130600199658345871903577526392130732088321356947182847404535605880789501751708397463892829285635473429499616497777477217600089469102224634002315782867218533387313364490915455954473205117716306895863518245279271972907714360817697906551697791584149518705802876664899640884094972774147060665288795773269252521184389762595726508532498589082437480228413930517723566885797775261965131326856142942986856209362044826318998597707622351974490159022949318441705345509005022590255830038737954651237124150883712120321706714811813646378730300932064782889067020286532654860376123521562324873371673689459230232951910223581924394031847029345353416338874832116448850253006331524422382715568775200276075832212502450856808409320144968716730385729820147068999178090938742482397947747102919311084369208168545140510390588094748168838181426350982961640418896408715468691800130331859832741081700505958001585139423475252014716726157413112874010665071549767625307978720040279817689942817723632640310451060242345886195190055331545091498261929217198154095950918522696071582064254293324785098014002434716696994138593498931088317356212804857785781935275068263857166826577268978808846306259701575814395654566380256700536316011333785082466826261558968144559173639394163279846306051908526785097307733997307857281040789018096054921505246479361044702637496841565968665972940934374475127365333236161102767157260647486494599720725018539817944866260622373474212638673678568904579583383611374349713082679611106899116631101485922629467750635511454240943868310782103090900868075179927751979831629565331830047675164529771159344609338573246654755804670211607700110158242741532841293678449515530259437413319947619110897782230425473263548659381146940615280529067886840447109949740601909668039071474604626694430020048093943780595593132194945974187430318332268664339506121263950117663322871291274138599487816244347653726676241957168209533110691784884865319511684863561489073710924909638178935917327066521887705474291969554686829182880124536450665816532415446611064278080501880378376990784693017010431085294374598434715022171612854902929910117049447616913671868117611174832505156381044697076676108478105177055053845480019891328548700692293888356481717071880411544440976320693614499859326738972703628628367812602093136976252004638872697605268774667008288908329711621541642809989976671793498535029971957074086504247587907694895160941788209095210676007811743120354165730657463026133351244835443022555762594409668666706968045181202526162077166434826289636091135868418039495576566999934731003639866996420530652463246637286757841960781285150651510840076134710337181822421654071328653710996131216901976238351887883684026493896597528496407508630485797418758154159784755844316146399443465687521696336014454151172004123696723611601743367019838171610800262073034852962265215054161742076452421165463632944526961377496902392589294972986288405075253264091430477863345736332338674541110109939445670346130454416069290860216098969564139291102308303423405005596567099377012310211807000196827399623324598211755233742331544596511732144552831373961435521919373447174387372739952594028627311220419195420824630286277724910360358660845061535529980107145642939792456941168779028222181809246145010746190925285701984369857415253754154398599316018962709699408519155702922916114060838584124339335957109315693272549072010139208000235280495927019727478506018444515349508349374634573993801456353093735752737530860944756632051739472936084532471861645868984099913399555009948939760385171811087305411051091931612105803744981805049524521653823751743079521288640594714746303988780853303718390453557481097193485578506209912370502504861269442990143325863348855604233765707779317627073464590933566062117045054947806635561032185047387147267350226796375676391507848929707326952465641184846407400492617954542977364015200744824422165847903483100525296340644796622456048285460398273163432575696914077065196570097442293741656762748821148609082599677561872189895327620256323351029520253043900883483003721318057504556663733931113487116238642446037083253253573280922440238346260437378022024219285448076744803238745313156344567785319231026327773844246488639300875563584170185947410277360729761662462571164530709651309134556168093967728536976343878921287011008967159923700850411535490805848572181324279743126296617560586284098935106582956283998857320995790655253910874108147048911390167807369716523483373817871851229130426907108458835840157171739897330774211105648235989195953895666824933816909826988290720837557331064881514681707381013889240157460040101229974689591683800734770819167054469235344922912759101667731654741191831925625501117254030378225640952610163147959649393321174892469042919577708136845518175808788290397473950575595298737656032590627948045880236020239961402770726953348819204012912626370405543824329425874279026482353899038683244605226997899475793735068431865099509130024631654124587862049598879758566072341760818272612223816851957455785023297291588099319163662562525951894627936318359449077195941202550999805543287771586105719807657403947140990124933064827306761416398120574734780159848915469530823252814740565990788515585331089839429394489876307171345563942092500768609361420740683384692647132616823784540928230692871979855991099917736433988112085344843400942584510015943873998602501172303147324255685606243259738911479398270759765855293932695122194637008905885049360930200250491874100697090450003009553213197638509078837215539514800549237569592558783479637004311841999276194137563294015920284975570447610862583403705792614583320576315606622590014731161788011045623931057079260660631021103767480881847239921853925449273038733727358634038885045615919663837357566148232266842521741826471878103816884349828056554710297016556102221083577569529422957432975084365800751895980443125917560776903481680556045958959659454675520363950604822799269608107097653405556141534159322299942351013974736580282167554190868780718605833506603900705660273809745419874912941330162219247479657803424229331480766997476677244823045686894803209282151025182831015745839499396166233295666184499180036440169632586084454689687039443499724030842011414711176109928133107775035085905821528574623167743167662832879664917641608815805399732009359875293053981274248052502185116307946808120078805349933599850962380987300838379501646083006581474841851078965431989453555893960953088956968464743669548960547955005426995485085645632557638720397717034687808860355002917165430583765385117466987034824098079306021254816445189806994937631792026635654088963576616360848515745041961591975678545430393052563544834035182195884357572063822936900681056762183837937598799390325086948891687655302790215912632886629464548261434812788802168448023111747202463411721751211843788802648565382093124121661193861690211534320482262693232339204784669570189945303917842350318662283922889741378876863197119146842539788182935853179239332826836183559585039322332025341150923332158117789001820252288143330049097745966711817317876766035054861379116969259563118660653947487439888994108445334653612859865235541919620300180829749212043844447285914261643747631137925527299655129885869809739672998370661110688370987778360388787068541271797163487986340641186122835111195453797067396946372027958252534725785290604146492774122605089252484695527688482437858602467895515370804255222975303262966045665259351042811992606055779721535647290011237690992259044588050837145240705716042357250616309854427029430889249243955516518711220359865713860948717379666146080557210217909429067380181344846621615534385091212658494086317727597536670426070286975652926348006901481701488115639081875052299493397609550347683734113702238905789721137907316956933366748764513365692818854376293082389695972201997755367089703033796151159267709455629218022038404622711563160132398253491878378354952235535652284244345197845904545596776236299401061284272059467591062066616178908836978791156325259403310165127763192795713061145293995125183025349574172000890738778246706940260557565735661420907711101478778640581903384958783471547757238656392507401850102590147535642034130113276979002739824827263677860312385042341024879965782759119725738367029094977927148379052863885713917029414249855728446973052304101503085839420389473581259341545214512740828610804778264953680752685428571465079687638142558918468925637724824602481258490952612384281812139704185085945900865494165085624775122535569706924045453450341156874832850242620188691310419547571110177273764753085497231673770193634482292307703734088824808439702275335388014264527580770378392572286710582665728047525646089899574131143217610768237578943035523977713110627986744585392773103518251307959682951862989414936540693088005366188324566090960760840667193695795276048734061450144832656598727028050925923086070777289209965045494702491780522218000701100093052864174497676243466351630773050307628191586953263987614985087652510396501300358506599734909143870232541039523827053041878623539749367910704862273090902462076037293244270093360121081782158032632158842899555277486591578103107536557028013055330791243084658823634452195617150074852089428534776785555468084143164457330464193762906054648540823155746989395146369771849379235429775238074303335435636094298080155065340049202568707258844356803123381714567017820900456385973894690618054120677874407237091277884827929672331616707728688260692077592906703668833311875386372556254864563777234394630569740704181701722490959000453422261330266417220038742185197984758921828119914483531645684506384784721697988573776034547385005822280679233631889226027900255666902699663255987598242462659174967230456720857019344701033023461448888355364094945132818466380866809482894865773600085192859344017634047283032251700479123394309722513921689539413252224744890594473887797927031595168420285619095892909896380711910051884555644730113492503863250908172083726325766938429730161882784079431687805536308352684514012433383740378163438370538887246885407405494789077345347807192736795333790261641265240308904038819610730078650444251532167641034544261518902536658978644333334271260766693959303877842771139914016163675605891849889447739645904678322501940744842903911905049598031573226634953887258833095171015930138142243178072552083546727266584060669523174553380823909160705591466491459746619509634544252860522452162127792146366362037990292657390601257790592485255005371439739467227282260533540874451811503944843043972757021402645386036002070061708975279842201324110218121250454809328262096656579423137097325603054140995103585033693701671213884352644896611916191922958450416247943931371214640167026971972396630163912682762729674875641560835045552462140203488547443203647829693428404308859163026906350258322331240101476733799836088511776067763025950485953390689359461487172599764683891077423367766103492361687946245646614429845604411184239327454034021487890373321880079092686781093627413821945633672636112836897084760703309870517465052673511799389789156572296412693636444976978053255919451637982284634568442488599298349169674580611558587029237757871924421733040120148657820094529199351670685208765945844561177499799479272605790220030713664791903816956816871679081985106760019997512181785546990003364212922346353203441801037990417046552172492670438942785016073625637525596236512201133356821447341131443481358989160057076736812987472015086976301342705725306276251345892877214206788084757738161851865600708010368709492914447546298678445915080195041516055833729922124967037886172919314168081072036448870582504190808255950261902004562663359793352821878721302545548008707813425859720352815398490090084568410612640452556652853720864290368912623461797426976225873563859566175544054810533982457261131393359721842479077383783776326104743190798244089876252713370286171928495975754315822598274016784456814839509772047583910035779841302029239290717507469814154505563465197238847000427562232885874158901870729551868929500989315785878707967525531032256541587682846180596119908466217972755345808574610955135593011656329692350043767839054254824620498008283400083457672084986003032902169882598962072481479131645481126589398785721821091898710235072805370353825953476360568647029847386420230554318112018550493429469578697485369486770074710116650531166531231686958219712952562804232884844378266623510821694826711797558804308056946472294429200170369544934805241250640624395188248543301171495494866132798872085899498362365949095616583270866102071808116367323786893200808619536997346654155102080252684255757920795893459793491499433279629341541313075970518868522326970523357264252797808899441032002931975545658200760823954627111990098113141912679233156420799200344381129275460286175738634223945908194618685740959681595209903048227826178404314265163254545141639359802315924590978363254000855012149803807014963175542861393707982219822257067708355502093494901496293962433611226243960970662704037104333681117056082175943200420096891918817116553380748180975974480755092288159395639054991825528039835835132496344678476804151759412642617068705857310776684814248292067610062058694714757281323057777935483830948503425792943754389937838338782073729115281528133919447433114396360322126686017147283244565838360642777797331931863565526954911501540037024447035588749232387779091346280524710526489031177825652062604064029239350365146503360813267437177372656622186309036961320515284507912608185858595470396670357635913301349245649335029798141284404022081182833694868226923890567579800996986576589398254575771443881301137443159134608103531539256070915034113934922486321128502617028897752126826432928909506815393301231188432318082913230358189519593845144776596408203653307874583496404504938224897643903156223121117063820052991518204996105548683957968832757471200635665741343090894961366683145556869557768597860529265721328929001274467176514655089437648622606196543906546145157097764123863925684126676043764106880379157043091210883825742515832638040341481262627444941325900095857206512127669257202859632912243176781046379751068005773717061380937309744915430490473519279035574902047981134902962421703831182414774512586453942684126047497064242873503566273056890595995172182138721254149150150110461049889377066733554978248290747558811217619383794127000783765601642416779801821169723410395276799919345650244143414144783352775023956893745113822034994827052341812217932860342468049082303756973470961472151758287058110444386147839224879622764908710359420252847040829492726275767148166327727953429644377260779025056979593770076751496191982693555277430797980162733367785545539659450799118933231048093124682854051583736324194155066220966727748023785801913967064802965651724127820281278823747081905191079705327755610690880331931802650658065657256745726182577094649690406257477007338537753969993074063181324178124638370133351015983209211139897708256265758516027660878794641430713774675604557971529379539793637823546767279469105217959275031417605932579187054382204728355109254221629380052288723770014261457171535318788351172158155102461175780067549737258413788440349940375652114049564148955513642294130985311721527736495614504500363700630350037921146304621065910142888107845414420070321470584882967220920221451501684340743111966158589109173795247662051765448229426818257452489765251255606617541679847455132146354141258915498522507605012167218944689035493615694273339250977552676946733084400901287109644358351994084755319714801853200597282056302761956026247233326766696849034789374039821580414957647126350070296058964448586048837029916497715164742247922710078458711791726841948928823498672099395473651034100527518565772186647957978716178977752403987127493357949205948612402514225770444809803232660392692671865986906942943970459199847504036017125695017565021845885394463676213593933857321203588061921887092383965698880595553828256062378177087067522200855010972791376392714723100596829558841709825092616946568307964135559103620288653737842972641331653741213841067052609113606912702920901235104479730349838146400710959801810879011655114968848681063671377510428802373106526566181619027523287133543163732999704480856367858057568155514671154652142523763251688981011117673811746574997885451234775002052234448324145948524428967521880549406244723696018955978882078763029081735994545663168960932469614998429136370847729812009641384925978775671509107451033609109022335389465433779854738824866215828770424578665895977336979288875290506557401185049882818856618655992370832586762735826292518955685587238947431622389114500566662731547102860477269759301273962506847967086721440320714993833553900295339831231479481843773693714587209833463593832401934615359631353512898200966512228208222692952872316583044820227256954422906589169314162332150523813119646129564398389177578662114804912134967108447441883292938085758611583497916009941397137898786437618908994468856364159981007150788935518102350011260926691224483904384635518429451376793511984162673800610707166132018296741712841779282272902428256608451927798706342855677630845429435762493567182722214110828300146945057394773043643483132719617350189548506939721407768534385606712206215867629322173168135075881944306934424683533530633689891778926390570482635492122936307187430356623161564072900318510812500475349121451653478531292282660982982129948198417925613653942316007440832004821601142461648726666144375411548466812774655091884815459452835381770262216452235981503615129963679672050198937442302345671978441785818285448148217278302024321912274231213995280040898038106052570372988064887779525132645650568882072350811285954040765723610069137668727399285459279386920572525403909871427712292709636589901530833816628658150227399829952776905358418737246919412942769076650982397790699253742839704173183655259702404952913694764478956570907555286993746809917199420798970248107422971215719062583884354378822660892485001814534603646652642309983156892566833013002426909859022177919805984231552329396516037759273138694207460707021926278231276724776010012878277733736623109802873529347193273284461227506437129901635773050688404918858126765687488997070650502155995521337281436816999707566209837793914030003968984206310590557750144666111992497260409456790256394314728201644811305131303706612455896465379264766761763816462765640460810391174681358593692828771190553998582484694144432004188897252383458787948965114254593484282730491844083275723907640636285887742984340118670029675606582957209313894636762992571113516658031466569801886462978191676979612917668285926537026105004277464394667858533684785223692222834695993807498336968372540136078412265730387252638921330314816529400616510437060189072125814861568868633056802247550960849052606640694507641815522193959476488258517537240012726665583572543606387766849969098368778489715505423133317263032054740585022971875721847680308397453391304175586992578970249264734152658390103728590860859561167596010440558099248437494528725901046837171000418789054180219674909960339849079160121585356049197759509796162348236090407965707071857116991662656556121227480308240361570552850877757344719726958072377632701988981224240219719635308620641101842707207427453601136231912011470435891415997752535451132353642133614916737112230626625654942705009003982664416163898263815821652411130865309852292027529942827630198493031983840867030847146362025015706749755565934217802302929311807449720515037589550246641431121085604687922480214512174113559900154861004281920275987094351584783197772960683094467292217806831003881265759725875500284155612538758491472201002573220462279511891129001760947959961578199068608929927368081723033791599134241595635696172250925411717563172819617308541315723688207967630171070965284958641081345377856913801580929664237869734165288713589059638464840552171491901574961713651594661616342730879427715044589210412095965397754188901928474336220815792332104679835343683106829364888446996465514922963990089610159284065626775108572061169089538106468739960822311349782970261786925809876918523094849063332519397690285153062936349670481734060386627627084782261044463209176050746163170190112419886416712693352868657907865553531787325596832813005531054479791854554531134751954699068031716613453049935467437287008428843453183383377176552790044740117193067517778035920573416260861606905607743267492838817595285774609390247185721054626597097175487061403686797364869637403798466549897332778774668617890178118604445586093753731622670787618234741978258229340521018837494219507614905441314124361380957773593191378819463892070056957732477008975484551973962131614918541927426540661013032032707362020878099373473778329908224624628860059664466817800219421322034159749404079594770440023517933263619647228120262395150642720964910917916088554911583534013916227786117661065609208472971517092297831059604525731018843287943312486024259126193718107688679132921575385853221091257366940404065456281500071852471194471142917086058977228915347475031534628418045259558202156581542991622891104189932847518647159918805993935264532256002512809767735744205257169885567382256263157939078816600114519250628896590736248612221601267581783198444774679557298793499191190445719710626372295734777643602314814741164981151719238787253207624754627743403921406244389508122575580519557158276871214559550193331578058333636326253198740677810395495108634356463518209626868555320441946472619164934097492208363617296604228561744608788204582228772642519563666566393640814649555080123010916378120449498698114560004806686425374705560417203281541982372178611406998285450693765982601537533415488073952022585813885387937048496653588452238978852353850482784718374633780869098083657295310070673881960314272970220150262277118776436663898432677568275667581858238235260772518401743730226037785041024263957521332870477617197190941358565089362983163385704191561517239793715638299469879138323251032923758734318809140752878945636304587221226320276199797231511983183216110417943333151570100043080827684379974575281704760240052562660788830015622930255399900126026412348284364676931122010971440378145447185591136561894133050277090769672231760689560421720922486839648046924197065163392899880749693381206025641218647537765118189105534260060362979744492149768653856186717427778276888165772835964364342299584924163422846050035149901049986056001364196766406948875819360175610750217500220893068237222084274837855716814766814224599562091799681620062959246972595760997049228039783647750323707334048276789488680634338656857909198972751337142484134683823427800423662969106896882576340898487854698077193090181262694458576588279916700477371026413829498216661454074766021211721243291409103877366886239099055210132788353988603672553523070945833069058852479053649508836341409605044199602326843742003732813987592218916897627735979342760476129046688524028565570021753962089787527178950741071501738663184018086955900196440954971536320063179874101606502932984574124261916875005753793069053347086889515877569014115606996940455015706460975628604936472847836893732314609360313664249850650627038728396910804362474243953908836438114254528559116589918163610031555316163285174748043745280470534537620645868723094060671294409996897274434972247160293610853980001689349446762665933510426561025959489639036990392865688903990778395303463790427104517866553111383288260278185185978430361654461375599912479872445922076492184660599021598613583072891079187227000513710601512638292761268630207893187228172380423975089151301405749054613888430061014599048690867667448775500934181502099058905090086820099682405226651486274609736165877020072424226779653995264239247100359685481435356895711084836362232678996538816844552306245593393954575579480263361772594706971822472516126273563550260016901598033815900833197788133705997885953204449950634555682256650339893341495137542856569932096762401417822009315226545801702551825544424348215471340468490068715109809235562452087503131827528860753997187244371297700528664787695526178262128119994593393877305813931141100126431258347030529315058407297114555929956086155046664202327565228039967580614408072662828946005194766927649235151932959736404277377126309843185354972614033171927478679258809564943732804409922247097630062704235459904502055211350557630182962811530924939566979002228773762402199300213889716042546173167150768590338583834479401710752070070488907607130236257286291604748724473308836065161727456544450454297588659701835711233355247107953421953894754323544022880354059501923841177958211749400877333064966500147684749166177351836310045044179730413243706200346648549714226789978691045903193153769792141350416304623257715572789637543251028437095812692427708782825783738767706720080120042021563012943685391815833324903492230314297329857965492174693890406997103396482451363937614149605323427456036825562348585699330573635303695299424071314477375308998559268502737420162833940176102810296517952808039898453186906767779914135133084406343681489547416680700583668778201888935068834923042877602078532286492728950745594553734618526061107131902542280237367258534583846629142500047794379198169989224091994453757718417774962808285276765390070380179976344778556656625343293477808881606960601948455732799569488302662206329838725294142092589428640430973847804067335987149741163595329904829237378024641558766717529046585943442594644224607182348563310232499663729627879972266757629900092416975638043129065980582022607691202184688724433566779149391896731133606027004391607241977198261051635092825270356532771321367470563047503185213173623648797239670478976357173228872737688641443392396162222868637104173273630229103735839415537576927804215983670771900998775830802037342099713093411667899219128489682296521779940524625269836739047109413139609470668094811471446147227038906633737791765886462336996421631935386452115331713282667310975846157757488420498592108622115287038497187879307691035220599555581335819968257044164254473621208053914248458892834086244268267613704403571019518974056600451741637699959795363017132365935748897219688683214487559166367815051429874270799457801930069575552529220048142289435710749500235688878123600451337695977361219908459304164994854345966351250449155824834291308645076384228075828425199597947922119517308802889688125922887630563229283014450262710640655428781483047668304122170317897573153411255885006769572336966980653662396555128438121878479902438074650178293985318392023024785000230433771230177457207437348295352613511372198506201372099757008530986424549940368675245519410515312503169851383578041681839683259455821960301903318613777746200113452524246529104646634287510887401195312265171886515014834327385209223371950517104091423736607170392585718061646398882511547337555026160498971888828438694135451261488398329525448437279138718436336843980109202848434883746763865151969349141806347616363417296479823831635824155125798830508316675933675520560376195801915807319567678339047035763003066878400451058477788590045755476728568858584057584497404076810204653721352805625227142967911826589570544514875699543617209477224645440806052382004349454122829950388168674614237823579354152198200427359200880692754020611287959273975242017558592600181809749902298847386218331407133352435343446976133557509321859688962008107294134559454109023676448176127212452543940493913423365187016127005934876023143325841767683099747617873499408272263882587098035946027059638173942951990729341559371446975121319868427154782758167869470158204285701783393019786261777975012773655599282337888045811614351114419498970420554078139969013420623868678492319549348887716206824211421220296401218045591921943045672579995856645366161324242871159058591838432375911823715252412149922540728492005254816808345058678275392926813238456463871025274586005514184748730572204120510702742858580480327614722823436181345884677501533317413244916043036330694550597059196434935785201477464768672027677934786023498021498268358389475607797198960412284283757939549992094230547038469052651233457846889208859342443161437826552915948454368795576052145793326468401725229040146447707610863051672328339926696715015860273656468033940479160004894037951807237597246626229562096251177159885248505017397630191709951794671426841662239733486429241099279379202980028862927448413540115166516927429168977134451362751106108896325068282520666622348809468116988112808559863691968581852797678053151141070188687966379298086222247853637501443242721538731739418380794030796757657961311947075928017839569740184280900111267520584493011416149234556631944313476143114053911811438376540691682980305051058801945304128661793569629473321988943639893534792042095547660962533722417129818971381383329749698413779161855937515040502717137695207598963724481436252218747957074116597215151540036824507428019409717054745442575667909733794853925158359991533527860267840573962179982938253624321273282699887892942206978190025091138582666427211655190587270862091531272957887643157697234096426775652106114880388994832119363892755200705206728461516604520122644371044570148835409113410112673158151423221973109195459591693619032467790231790014921866157751107134095218157518407516215555595760376213871281997285041683760844474579449040321999249591866029163870256973111783857240710515844031441255666247285573302857086817224125815281297599088140413748413998750003034643233541623023871357271529785646622827213349509305306833441984271695220589235065337298401518886265570555933500690355405016690116243025060793782561620967222089641550000652721228211303427569873295005263635600759020050735086147815259793309695667200425649100206327977532730558763310690188009857520156935146524367537530652418854548776025615372151696017718139974515793748549761529546347057562951221804542795665671765802851405428600192462712698507368947302331530943932304665909198803307946367928045308265251474278320239708368878464047265063620806667089612662072378625250558656618980215175732275351657943917279196773822150227964447147207995558146983982492753669960107839731140169969693043145122027999630418759158424995900625288692227525849051060921088161202695150533401285071963430332301178304213908075443004857338275989148791373401508554756233420328592288655697497782513331166578348555724651696684614368142413573267169383798014536917654000016758943007986360986767332329908089628864644878371188707426777081581818634535234206031530630175202331268110537755817229260664519330688818463176425397108521880737579943276112709524289230694310737380371151013965305420153900927866953125874810388253679737399569907782621096923090821210900963181983781952739230333320813081223420050777196813635753172273764465690390881202364968881975637050396120492466667312733053856537308895004292273784720944061770248159335760734653016696384632903401976044917032436367805200747787199403056940817408368317593246322847656350290200609571658330364456881527085008299735368936293576245590472796369164825682426207836920780155699400758236578431174153357153086641440248500032499947832423522947138280148157532322485506477586621531850119691855072180500557324328460264060159743390934716365595057380728848981245653738416701321956024251340848716172203461288267118091782973571337519010602411715246725845782267077046337856226733814665981004691238383702250266568654395515975498781199243942377983663149075364466214463001561341442491366049150017740135589094007922357159079421728505967734449108818778486174186250791433125422845902534551454067124381418208169396983457669779136292322593902353569925219934524860021966184712516946713512862639616053407462393017813535733168424795617427185800586089961617490692200734180084373072814959004365427260073431334111918588153166506274524356172787881036511869414376175559809592594029476357937160009847188697386192440785644437947491219142493675830775539439228548459639296296851321125313176517529971177209579852449517744729987559015667246873964063030002645034946668489617053089217216272740264281050186183672636262808941135490503873674825199482350339191070420207639900113022069842050678090356266053313529430542207224954981574705476062893003458722299017651392485427862653932501961785774569281102638501344960579848259393913980884357431609579316047079027522963906996391334497967823468403618822148902581155274722513954157807871162468716736072154246785357302311460844262413631042708262987876583380933237914068321777540641190023067822298280200553421301398919159198979828531389394735133472020077692829532658933614646654598457995722895355449853568958179279939646502301088834592804354787528908095694769838451770867034679819945673434188425957240752563779719761098701696932851475303880821757416240625732754321735022657306365231226182411717977946276602991674603724190191111467231587033268083179339138105932322041499380897561815894503125812975481742150534381464875819484023502968995986620302897946814736768020203203831779568418690416974278711752023781045590216474849168434210195924977153075100874311247962190267919102427802503171439218193948551931180366597313951574900500937767669252474402655814448446673065028182429887316679603702748688462062159759783259953379192041592869494189204784111889347466850653601958316736183209263766185172592356468479670819328760688653037854971918108655842746322488269135953428111966955070809979047402774096421624586928441119406483899004892870147984108603912506012997409340657434618782798239679912656036610710731613535039854954916806314218736881670404330080257980342383933745701316863018092871940686888765432218534976496289819396494264210183278111434327829765745637461337580927483920832236802237742580569787044242113388139579066404194429121108011341031656335544487004293099867437422545390597086594537532979885076221079629290080725955104726682954279898856938385395876831688112070273637830416991047235800410295953936562731572707041156133021980312398734987564084704171773208364065254314754004326847591723831870187151136753263491256592972321620490067708746664799218597036266289155142355370465772331565008039169831144733824889038879679858108799200294290615557451202301432532221797344136875601956050308889940404414369385555327143064401175329700269461414859410981674059800953636513404401619182360591018160591059931441326994551561289269438653053175745321470376858036893921325140456818932121280932194791030142066799291230209785166482653528935710874726059288652021507896074226238079873817839837261795279463832167452770771848607890042531941768138011497352059546899840798555354756341047912336746075993670990663485919723796328726571131077542983908470914926360067890748427797372022120566816349630665571942279143663161912695181492849554184623909294615024627549681803709007736342168720500812194840605200533950759665496182365571991960150954222520544095773896017259371763453247604162574054441275489294922704241366718859723125939257191805075187084896632326103977535160506209595675317729143944780320864841019016434771947923830923167018669703478913516193312794495604818661995684800149708963323063335840445034749482770805624900124883378552151197562622646609414862704091145907031511007687298418267834820316876271745404712737365823519701383938665708694366703484772983501822449951329391576568862941460336170562503708490761321284116477117054087153108893515997428790484187360400551963712049500692542604818779918001442855242380249189505101197653612587638983202050103926567154407720595793027052430319425968314905771026591916142704679801731038143190979783705890015228660925316985606214053416945722776881342292860343487754778319487182457163212959214876464707129149853615076320144868012426920411414203295674720752216065368087478229129132385555596518657468998492692023221472767487504925500729217342711888831391907366136011846457096248237684825553893230808155673188625923569787531452260986546859245278759751848532795234036184968157788310878265133261170821314852834733986362235379015801003612117017287613920195805584849611225351963262483082973929691808570392472681150979651902571195464800437352833467320287283412807427349384087373248059308403603301912154618415107551707565888133315654119821581629387640741512045364914749349821218273141285399171925962635221126868291424863475240220810655380788348448227140689181356290066645978269439913507919898878658367694056523258134437791256652979313822082526125002754857800589243627253711020767841513463144449856241598529956377692952132236146571408319502557833846652002497882319986477758312106250732014920200229581877265272943363044195898606654115995108062695256968872711963950689896742124558142241464484851217811653292709230695043047485217585191646534690439575507699510961293307179357436492635575982764725690217749049849382570642759157968054334380756133212919396254814779495927540708318410551448532920367572578865933151954800993292909717979361373399132431826565453373748627796335070096551430507072942608168264503097117592732179444289061355412901097352467829948854671886827991572894502535645775351738310864910052120659091113449798268097253505640320813959001613958220302010236879971584395384901755388418368816762405910421356798255445268597932560218431679124994737199270357197262971235620257811260050546747273994657057305482069727730749139620745557882237336687716180456327386383195691443862681887806029482058388284439938801565684851071833485283414473707255173729780563940532175678844229971043470656274192756872326119920381324615644900231250375264684180443413364377374825036257391641979501849521102111261139999658045153870760058382478807310434547183176186227204993534541114119787521804273727043628270156289591883681233915149895965463705614760264311983288211090723807246292683253457204475676662613011341397055228426030814282615945460456563475363236994781073159572457215041688544437943217047680902489566019312259846899943035936958883453680201491805189372660130876144869810298388857687688434969407534656916327041133180644836670683757430906865461635378258851455586937223921364421191539285545972685921926498510664290133700637055688009470449817406811662919508971251082381232103842387326992821752003905404248197955134154015235767777367242459023854409326075656921722337653132061700752124330016931127895074545175183904965433716878209927509545578850802605779319515031279446325223949980531029076632511654117472637679582856469818655333601142513014110175639647058571227830824743437713511945601970972301432346338090556074610534305544311193244107412574863999362471183070025484881306376111198796361289476684064984448141180844152541023034735830923433527142584450308243596068103585215202505335427262152128322380467439368873297799936027211803391962019083205924516358490897071186026192281701318903303711570817880063746986954367320242094593121960711924622669819840296253065040695807162788420809630025798981645306932499833423752400564130811683686299760312856481882048175858295131690235501958803102013890809065272274812574751848259393729905968945126925938891025449273265796721793705180844083123410105949375853579202994797428737975262380254095287561511292440834712479041704528059690666674017907210051695529048941871192453272200452638518669892673565297760900754489521505690475817343866950390923098572559932689315946393363063208525408122474755473927509188570754943312709019122632630241323999600686186270240289950176034495142498637822818581646710389466894639738596762241750109502746903451756363651786702344639965877808278375376083719640827671090287937556467757575666256476996979599902373623197359831547435699147283871003827109916964791235104610286727474595696683656868764670997110247153144630166635392687184425818695349177756324156445485524763714879390780541315777945812262051049851514249811122671539228027328502301048691133587885806376622287760638669936636180401848821129127534657397381908280640431380158796303967654056645920995577431102335253979892045186005987285205979099644033562590731120963932151070073560026364564587832744933645744406712285043724453783840482351723769138911414199947372715408989852919701452526653039505997688810594800374042537267836661111349399076101898494060627267243506391342803792701539815802940499514015941195874699647055816742621448633063742178659302738591155488405323516972575216390844573677960862460924759326172111740720983414414660513066856810377775634426532240466764168140050866681656832758328008613228856871693454887210682289961877987227686686348831281141669357285859568635040322767635060987037772558797651590483260930538376485614975588160381732092565787804793304965685007388946512276271938980340010437679859105884243208199440234277934792138668340640477062607463474225928129512329146222772914032549737687649081865780462574157162715335769051877192694051019084278202896584155452604899049352943868613058861969200177946601821927170404238173358085933492677113286758751862139944820602974826213122378632559571339552685868296866108061084796636385674470584773398417465073786726048000492128378811477833452604449123385861420772955506565430410376002963651519759944674016115202332200966943301389862138802784146304936564769186303013799907261975929260021681548422919734870615368510209794698434616098257666977129245832444026854264538787094608105610508355405338126984744403886419926212166946372905320992831367542288870722892534199780724183162075558097534575869529668677824136503264602194947517431495580399106121484633745165392933840076894598037692996468052171227278893475861727822523500615045913516343271476499069450621741280264904828566018446981741252369064659125056848799340124676122444210010897433899987430126547213170767974164533165167531409263292010976091066609069716580640722107879098831117375527536301837957871658650406095461763167293869514327573285811677040339183110087200465619004803347075763996776139774776842790450373463866130118606008853855204948574669596827348705113130722425328972358940936820956449063988954993199900861096480135894871259089699548986995016937332455173851383060939490356906587952113110771757002808738719194504271102772810597759892292229922043692510828589297208944006701405508379950580509476003670452665596132809010335377583515872772284507956873304452986274701888431794867667740521793392870520076793567987095207432949719053336266021654209939758848170545322879961237686502623979249341853181153175231237804013316980280993222287462682703528032464132587355050048498956473832070940314592525455464909819745645857056101751843133861120488717741550900968912842296697417516351325790240566896564234795183243703398749284023066229202885616311962889297069694512850122757714642476398347129758704945993828552172731815490165391100056026116823791966950532074813415865992663577625295630916291956908549634111144699901592716476808882363302598932152172493237367783897961312213189973997577098215342594598496331225776440333806302794640124136032427934553178565186188253051302323242656050404385452004342522266663881851626784292023856225875177980122156103570667027855314362228154296244926016404595962558898420789830327576248365413391160266077940155248758477859497267979520787686467995827591182158143939866081714913181572245718424560001755455424076059234896964463394325342252957983888359001087543011474157586814917736286651804714772507336809393485804564362769022834590364831927549583933844934198603182630971325213541378382966630058497535755633247937400591612400364176611795196930130746356473856672931118404367498533580537364946385289867807106672780818145732219768908806398952705806213249466130806346260584907681124682626910222064328203410655701185257229378536607065719310570930366580263941641649045634392726081858364996106993982186310109611821436935686892488209514084191725592857453591340082096349162360986565012585567025354652167266011480421891015448724271943470504584020829911287819257851871940113304607893568603070597864390205890504951670519473991407064480065438357837320640214629433147475464063219080096429040698786273304060146870869692306671227644484960701700477547404789270389989934734155786986973969480005376105162853865783930911063957160060468013676164617444467100893235252556021269002139520141325809176066137688204090828028778438897066569388728464570853314252245564568334684209498590886967866658829013872742741928043573957452801076013818163950051326050482792999280962473380111221448627524676750272123853487164572446775808057805295721563118905454007742701864757291643845471311865198069680283341834329380966160808824335373798887763646695723562261013359172310306358473853594353755805647653522694344926276330428888122464472769728373375260308437045804307393791334437637658548133359619399582309645167517512710624205975607685438713049373435445549981478658185520843346032854917556065546934825576184085525346703382522656507444265134841688127268870600347061836471193648476133648547287703232471227026508821308922348612896498424443676474240424589175784701123256898559985110952596702994198057380830849179076771464262046528046633497163747377913486203437559580782298802152586316118364128027360279787187227394013554512802780021813063795319892295250159233990258810647851999565076589012686230048718828757275352802803716914240781469076089885431427683458956674977497608446420931557046734448781229026255267563938614062044862230028482030027435032295022172545979788328162899332144700684174483097395039554378966165976735585541583842880313340874709067785045389247171748797529487286025905058053920386390229752450675258083850740119505367646071160428358614197792361981037716445576965605228085005026821398220063037811900861562877798250406434070281317754504206554064865039158977945484087505333548736424518668210959280867466444802562444730514577007719818992207070518071055085511420305617450074234100857801457849283507486437429679374288934630732447305013359816292022178065656409530075881353834982655562443231849325497133474460889631413239154275036886371215338187337085443175500151034173426695494145031315696041498789285171061607386260574767914513495995082637957299372297671105025424016814372895505168503923392288070657353157353596832273838579207182727013545245385431660166888955916407018965051471904014088919889074811907526758078125124622917462929699723212396722446409357241597595045687035656051252263131196072814973643450645768438697459158218762005109548814837055467372775863425733504554138220253814857892129406859614237606913406848463358799440399518748463520517964925943807431974325773653158088643044641266180479238120741573538111871142559784060308958780265969987425444149041872368095455099529587898075010810252684673011955069283635250753273101450459489326899288042784053634262167443753561312574190146156026108943834696770032569518556539288958135901272570281533104981494076170401584262522770297454507364144751696723207689010176265206599221136363244282460132405480963456292472440385794139329166801053078316013653222835063805410856036436272322108199437231220725195022270224240905110320350789867240616909868220654281488816734007685828434144413294703715085106679715840974850017759816008231099066570026098410006538783149975144907288336282793473314340206991283357625307423118615635387972290536163143743106260306928732018009921975504335382027438387538465825198355293205635992224502397666831596863279670327186790581793079516479342290560410257372849342708609862733116779773776133352797448064603696143708934873218220786747358149188403573509651980991385156370038786812423096496843717397090279522120835290654504440187858339426563698810644268304423431318080849022700525232554278344763557351117765974036534957049770060980514213161373279463764012287276745710314797326323078254645012581981175144273788347486600446953025855907803041452677303496276162861782278949931030572723463924273013576604411403985084453652686035313257616237582914736041205277755120657217130516785605790262857906525609457729590430723580714564685475153713681271887771873316553552538181068250351238950620046001638572323799481736549058102329523931349316581512574520225337409188064409483841768472644709682867387367499966776360765536129877082956852704223935252795482711354108928321375463564066196177288335281752579074478474562456633979210186216086849275699404379578363414433793173587323498235008132064674684139343963325490859966405515689852380906387916809422372659402450855331082630636258756323656810900977383939694773646425612763021228584853449566182909150680993488027450110457536691224492270990443668077322923878722885868629552202342568050015944395292919438246535981908462962713707210580909146531604750855955160709296100739940070067832891929494946248653949155700649887090133783827698888852118124087590764372287046963251424470064877247040441251205221102321916623516515912055307952938107712444767347687425573592332168993479466517368100712269144160400015405242564741722389788110056501978682975170089283550615662840281680943403210240241256867014911369221595761110776016246271906711073629761363885234555552702517044137204739395960951778623070455412301921335894656774161600315943320512459847799823413391808568315021294953324736521805480152709346196304229475537159955131218531331166360131144578596121355887643919013717553061638199135055664030057986507585839274889805732591401745126011481511198449853331004030464554815758570977807823424473379393911133249457703628976883363212908859143206941479233021388121023043575442384745854645788528986167255737033161069580276800317640440890452922254705929576100213385196780814306013323381434803604543112800250057190661828627238688584848843517288201827088091369008416204864523277557413003285031222102102643480248184005227638308237158135680815785220217061360331686384422995902821463480362379511018003568529158839060619218034826567952537220456789272250197413591961454017735340798100533616624947917564645721547100679142764502103133920525262074931317121054371539943502787857806881111724308558032503611392096286792776267552495347362184175928085321963418860635519046995713043180465274111583800323668247841505838479835307619924969137296793339320753480808688490623763647577432937872479686492756435331884775024824701145608144074520566890721559024766897725781306075247207880437497821494673534365514355440809442395415555342443720226781041799683928786756991703332863065614506104537665432845742855566128717396621989917294374086003704104304165226340004305942026973538628878390604944225985852000626688266026272583251858080515111273768261696236711789645494177869032733923807919594378642768622642788725084063406296909487776206549673456743494694337066626870751905944058201314532281527482813296682252419858612385053540790590511291501999131008875118856254072045690989403166700641710641630333998369919490471914799210014689299883501799082237337471567779158211298762724620781538939031773407256031602255028338326732772476428788437532854598251076354041066715641941625532308455672833772786063131076447456362938316445274824475499832376232360929485729016704711695111058572385893888121710418676690068010952424140609243157210587537489582555809877724928273185159965852232884852701840874118146628669005287729342456275801065572669152612195764879929905692034360211055869923218594475900381631575912237714211498748207317094402032442699484453825488903574510186680655479775323950550927132236217598595680536244309333501495325214060343753575966824140752201789263914432685021525495094005562316478407753265364897144409380489849217832630399854817196870710623169402963211287490819761669589112826182595654666031628885387359491903742966365978850947743627721028037775939214572432894494021094570740488130635910171589226897484905523958317433147029488765322225997253750438416693174884257693563313153788673901111000982639370060892313907905559307533942100009674155271041540760056473189225314676588393487301224857042550680423947814529127597167919060321869980973386010735559849250584939067671165261578503233212072080308901341815366296181852488584463517309065745923325726968263444439349212442276688367233867415744982891555983571824978601177943276761769619427315009977122473138714877263940397539941917111311115830942927890838994156204303765812709951798613858167538596887502304510560986872252254619085717004090399002828330339304471144408659541409762062161348022356775020610880294019812680773595364777186917656810778810152063868981521750379164553012678290185450025994944153225072046356592390371342191411934462991115174457977303078911696935659882261092364109305954724984911558461857874988727217626858603594517484895275553578295156972037922343183835659456612106460126837110253704618275632773973014930049268034434937814027956740885473167815724406409228873491652913341667611750376150373292213586621990293691486867365291026225787215630862476301296079964630579646631227323666359073882916392148827698724381646826664238621533580208112770741643037488178210736114210259506355095550828937877294664184021711242015785015775100298435003420852794462635217859829210229840531690255856215993000785861924349292300166492084354146558687871452024265905619662197012751622893313460711719104622161261035896825925084164672069079654426276961340539899222289124156024444348200911559891677908528166455699072971790247649341562583360334566622728476639876853197171365537989349156140000179949904060610239064487486831947196122654395649776822493742111086801608790590660492154607697790803946817135939398197655270175159292249224495222714054552209256926024829326647311407251175673640454718148430788327930129665729290928558116935723687127062969684717932364530943215978877971771086659350157972200724591934319477566540025806165153211406955290920173905614853863946718294986402537028747557453169772887469093201425194312557490259210928884178020214628195912509616772424511130827468895972387480800232971005701839220428462968165236397619614357449125847620212228745759911242874243070223166521456655598119149355323448295561567363781758643442617915934163246628222488320216103091170340431071862082374610594560545065046854456964806197563490086368167993442306748777392529462618025318739378624865566566616910979292107211521366033949833454872811734644511579986468502059559619631940107069005237010802662826549731916545610472434288927628983362146264957087094494225307005023726987709292337930902322373105977934912367945597892492595676986606716745267720290731973074240288426901566676184035038479290733686313103277628142423646206460248764428181726190737701424116175676102202277494099140557351287644521737260308904813457449824463929916356165767504819356791251771577312235275876556059732704470892112618354236293415476930702111658986928235153477728980665339571009387553295762018658793152317605233402373317012695404620418959977778773504270538169193139976492349624624779856458549116276260266162943557515477272536391305175309338073789075000577921528781422738636685508755778309890950175092969159606373655270847955435189503068114366854015344272000461232500129696217897127848841621291863116972744489570651620673973824774171167037070539211793509405028233649140529445210046578469457618397187312660654515362469387451417356814996338837427668613438442832773083209917586208980323343156139562409077964741658797774058554801127121872497567813370411060349399331033503219123456476525255007893496857356066470379060774422755372252825715050373889236037384882524608977955318667331298012828179720810372606592049388338152519273853037812030031321672001936887370187950013692684135577501930959293798619135954026428093924471336106533608112275905846396574037497829634750916706920230835410192788172213067321000007889225746877365881169434067780394426593780719470702385192687332047719503847502691275573730036546158313994370954655028306131043990861958009046952343820755172544911814175815674511347173727047753585156772718600198459541184955034239110895731219899353016860668712763939950785269857455351311550885132026045010833416757202353680595280103007342079961193564453231753617097557448662295854684897018590135285459124015261939545752579416407368876913328035539882110655697660469726981375142515698069634132148298514113509945507582035685735110607736355383220468646479063062428505773087219040151499000095546438835032030329130258974444311314474967108212540962474743027401888908743076499319189043127572589733156553100939056680668027569604632649049511556444230052922448929813718379868400073679745000339080247326467786155583479911338761118201914988734245821083979355524494776113979968403728433110366848587822518885310055881364159590713873520724266222743373340052163391789339394854868430369890394488065713987616077385193049668971276202298209854997486015495533815777562603549827167265001238694927621029760308165180395555471428726239202838812965010934529081278602112792946691239442693302736465536487929383592054455298249307075695716481323617744101000996212923667925922248966746126348861512429718494731135035781110559163629600497783399429503337410547228416878553366022146769284059644077949456361038011751700576606670860316210546457482305548341598474497676144897932720062404735980861656876700809483360566359210425093087371268248094416521431217727460048355714184113075190300106467468382584357851435757471346350247495356162332492782025163229805288176773584718879516036747252101977999273465354680969298334888803972095134722895857065966009062572259355981630571707953357453648858547413897263511708038416755306486471779906945553439464562944100169503079740333774215658618950920879171760345578352135181821615949112147994188071703141369740942585660478799102049041936477699213841032113191152629724226231747222655389214500753670199818520221144697656518288280394556690615711109861639748146728365382088875579645197855986247454832637241861454820085982662962537972735997342040592317345382206748460272412331751190816506570444714231837322624309243604615730353827558613751857168017991611538323639732492931760641456617249100755141608589683224723206108079834072118290988037916564325025556558869248325809288276198300481697866047703723664150554288485963193993617977707113689883301799706264913212707766645261824688813476456400961199355937644453732240481936280995100240929046766838952273675917915439340634780815122583138848511263341767874107711348733864622550296650074838789970356549300051641014325943038497892453360353853945526605107045611657614334578712834517352014291232521859131439539151979509795541025426299477882664115743572887186130540803413490596719618718228252266098042570449068424495091186048839288098131763768556353040481218400346532614796058119077459540344452727922349802931559139739855882001188377711737187074448850181738390890254930032431550981264864763923720815046234129631310875362511481038669526767194435124550571537884424492422665217398100160908125572169768078849501764883041184333805892453742380781280189488090983184116666817476319601820572664070092849779211982826817574830964463060479848286969864835305494362100946390141872988762267051005331213063108648932511651325174599906661607954492328488101167698440466016980972337613629181277155999316680522732856590373194685580586904716048329029934112901341215104426383730049214863583402865138534160673416068287275439317888122213945272392037746430821363545231037051628534234109405233526554764015498191072027185371164262178460723978475649201577137286020110774701227580971076414416352880173679606778016934556147455162068008463994391116799127088998777310518152024155449932598805036387156017290900991196016241735516194090864767383983822851041803750802047070319043374857299143267997556595575456531560299141599045682505930628565951991684383426925007146992344686811893734995876687001558228302111955826695810381935525812155042321067116453296370817068384132885507438715117439481882288560319343774889667601306972926536297673293529697490080706663262226957870722566510574656873411749618812430351779099066652438169521577497039533125442606521865498135209627462134529157492984923434145794360675083687805435897770676552135613411118701593608761720013979614839531383949350643160869299655144553684453345958508535966516408319506258964401738926384926541979970684963010239228351730192723192949382346690283955698524209225706185720881738106413469998932185687581454117623877992126131507645426323530011182500200927735124069043966907901745130762227866547294054087829309043481473686169832227474189891451900375462012543943219860344082273756811651742237430741809283423589387462682786098879428890634588918056472252131094513675900389455757574970743456878427041529570767779477091769001574850231667683758048876706689443234655343597385250489491744613036277433433691519148295473891808599267198926229065055526498936872029742193039874452419614161162195084685126436493121144773766362659724239558595132134017272378366083773913219260514126589821727157393935234290727630765106773983333435113303607379608273281405281433378427047855032692308863713969920242955401443184795971858209903773017860678493143751384541993373613427416213953349301231514077538815516035935469153348901926763991796459623271287820559156328382043556065045121843434188812866516667207247833136868593843210704947272002286467446162558208543410873512137843944073338481416402641084118651950464577644981064278319078897591665836677720110578658240675842471045356133950341360487481622236794019329394138566721293176478692919215394705884600490351649295599344671072989911875520025977549670669049198121553009691953562736942986599023153604875875327668985256428841991152337843246719768815023127905352119616711103811290371302785170063675371831108196332266524002522666831722306202046801927110014330297702475939805383317845705404383869210314944779627254571549056707660421475859209765816232015458340691699535931851062460402138640590695628034306270663385326002599095596736798536749431658385600356767393285350661730115341945335964213326628173135388359628083857714452944237039269526060389598802098732252706922817482261608171188890258296590338462018886260302758911896596153578838806101663903199927335892454020430894595162389111071418129354579801074881001220427241648110891445091564015957826081555947482909384959656013717605891653329077417262081222260771329335357836852903260241937754318362023311390040422379808437733355751905417824840801468075079081164069779346701426820620413203149963300237465908144368915972060114949219470976951777117834027118081843076561607210149560226181687189416533518878612464050292765089091431051369993854327609754031895188623576335570615120250595997535206667485129352836293095792864819161752272442859432060025569030085376714822080671529869461125148045839594106720135264691677885861112052824175991287596073713148239803180531154851604846846536656963972348765103062027228135250960246718881797820278716108666040800063365920937092574823842301487793539302099993931793549454261276852156815787108540500139454983511028401506234044111328691930233268035194066087590384401398821427640202041271410007239430884292587257681406020122890193197888023551868546444539853433993753882626483999691454934888480331900458111278390242766118600465277179602514660161303351945264144325212095772773949035450528825714354692814498268003112760208056799868888210377444779735384434633937050005824776412443399085601721345825479759677599279746259391058788247604764739539425975939467056521096296424741162178447400201673367069963395322872286908320758656687870689376723641737712120574701395419348630086901012638634202093867856483243315411368823988729083215085277556029182319736051181763343028172459036088427049806553003725257214296425019394256867761282214437967891950809885421934818718899222817189438807591058343621216289584777227817809127439852120635796481917610952683459590116528665331103150876904330383484840506240626372921559970363651453631934924433418377229615727900571146919176091635849883700592923904029672242933082703691653942042957437305152083541984044491128031449733594708261275778872065687232523798223415342813082583651429107264025902671063413219160440833172752865893899083042519475526653436773132990026258400724100938154236366716391090698763601672340282440744724411780985938086347707725645021153213236780980949250061105620428486031462619190129211129320877209743653115726883099509544935552165382707239372648168990686113395645231262950307602600247671754322465267281557317858478847386205965808935558600983541539326799614974186740065485466874822051663206611268618279739958503015278284025655027090905517811338229888392301928896383536100259305785760150633901141181182613503682546998228223031943216224124412500788043607702452860080577165622526374701463555153898019674623933152755994990455799824015651836236150348230846458612173075008262622387570958763497158952300232493461272778883375087534497466017675344621784678718160471935241606766902528627876033733226357428828259794545203918455983253860006666282000645516321162967392020662553148201238992200659534541727749149659407024795794764708649756473166421763765307758958528868837611388249854818829068739342425226159841772859502645180694013881134219892063761870306734361157288630044622587039939508072592942832946616153115219531073456111859290427170429602962133475965932100828767896360189362184662888120592841351180113308057622240669708762020970422711441265464301371416950266065767942118087118297964935152008186787356041582257777384637883136759560168920013205090229768425273231726278253640804213682038489414508635415620021693492841219339999100908370203829136507532500828422823945699344027047002311584985806124143945008322217250912658549835419359544963634797775543287998678420435541595048290856972758684738030930180172949642946316795342771861211333047596632129283089698846042784116837984144850307445545776371427311745296352551142073899898375967560692300712129977062889085505789684623421931971924444560474287995268442332947966795134896920209167942005375027251891295532260868359791195403984730671905110671784677599868727114470084772876030624697891728057822789285797906134356973811878044173692186525215436520248904258086050981166781142326828193954723833870668210903184874473757922759020011650200794302463808080219105986640680725266081772410492039842120524676961825408299584330555544927772965570300595680873378674891776713091068215902044599024317042120755217413438646090971422350402412744762705011512207692440061904062222176699080757868354748468258286540035448763564661691970284874508752509123476200389114289718585275371675665565100910073793403804495978241736794952766489129473749017590294965700720582378852085521621504682696504794787294279818245140444037028505769263911437319620174053731850069390228945490834992668665696271282974954475619705416137648109109460634915981645083976149905444724727099555041404860329056354110694603348042255016575194417732042355366060834018551844422253529540539163876685570227614161408459773446128792031749795098695192485601670094165479703071506148204604526994668839475716231998311505651554492214802815700765723672752850925852501853533028619487887893755300430703133071596106343797953872530142966856816709524397609876938798462426984540602205618913532255652655342926348567246584689787817483886649897823978739919910748371206611254397894217199699689095821652247219399624548138836353358626145725977542094450159702797349634784525776687239823585033324398138257480033054445771051722661500389088231507716963827118790145543728417045305528161677225302885243018713796740950809790112031407650350760347660984593780385070466279200795897625433518030745849410434616887086125336916406624635682249117273047421325316042950249968986884372533856066265620507593771592004144553051504058662425478191870017017933558442433362417581947496990917165049176105503254700809310160668339459337147637851472787553043040892209978477557419025430063983617809490506206383554652769380578888141050201574037563497037023584339319145432803919825672226745853213201373140771705290035913988418662548443243472217776136683068277423787854347888261084645611183174650621158818428187673231895813833021717547035941314996875325082763635849478149292723669123144327222928366660351911705077324314261972280510066049853585759693063642698087440996098795919064580579746898419314140897924704514787770690274756159177600641637120589843024048189539453377843086308560419148016255927488453578141523267269619561004985575082148458634127370242191513426291360937907533780516596449207275593697010440908418712459430938863414411804488195774922780653059257879436606352352265498583677471600452885378833486134584331409094328139226408826562116069649459519815757360874134046492122449777985568485451356332156844860742571456912813093427477009299423541667871468855798345443224907922370062761359506883826674398254430364244672270259455311691150575156182155332914499643280748599323835448649840661243240506209010015091119572327990828571270689969081422322172176591719830948968630332646493007789374735632047101742592978947214881611375242843943636238538988470190607235370963006874419962407520073309412540927143220860043724270037918915023662444871912681447779438098231507184563766840853473051383523031760948278742581257812160360108639815369746308939047715703487694963860000831970112250126400515824728639447014047695829221491849048641791699095831471747541194159424971513290589858705765183303168651749779007305677220547925743704811457891029004638324261835100942746761669172061585924180389405038459550976953817034009759019140111967569058474263612661134203561416962327091395651274712038888608013420739013612736981628696591423906758300266023583427922806066864693396534912534891063795961196156512312420611279142733345735864581677384886290603692472235915524099534681024889083608984607902814790152208460021763088991625940940692880400022367061009414298721692049055130278744832448107415446227970043161718727313271278058403644387001189658558838344358444227440272755859695082292791845449783136660948278784647925681684644059688079688921566526672994895809491992080896513246049744081511623135899330343200103184673436854343066842825839653429080246579781247449944793339260171970644871621005974187324106046560098587743681812890153196671480086101304154798698988680521346809688697337420014614643204661558663481107625129503913066380769039926242256648813054209408032089849762587093413974054149811881981618672111005515393540127724331503936600720403183675717337013276913174849839571400525987320768614114571060976734437927624383758280943845371530323791240819662935031178480266157646236596170583061624823455146156798292601471358311764306453776363393380999843680560598117147071168531632726742736484759393840463456110511640929354118767495460590719464502183017965910459699794269815099440618277412632604763012618687807291164675288906713046775697544772573964119063021822801526405348572164543876302312354267008939490942075920699165108224128808076866653115368976784948146865744766795581917723090652127736417271993581043800147665712489116900519232110744502368650747063638788798657872225627554000556717178743245234308206676992002220751798606053532964932687551371627821827524230387097270586179197304026701831954277142624004296445393478733815383242544320162753612007961076863973227545848344209314609356009072216916716310633851963072903495144332285586550351937042118673475901919154641774044188001928152078293959207610284169418094243153704843167686821392318879526275139061819604170857302656222089900606762198474214575171025130170415873680832206422713695641940760206503930909542014775510370946986011790532552219263059672912627239214281269406456310843958531507706896736718282917223163609917753675691785120226544995464177553328506379428102355042061473766142008815211880136589818006407250199617861734466622701489594301462275452469601025996662828802699229254739873551760641944702576260968897563965515565244827401215935494040734815941860591535570807900604453407965456095144107362645552724090488558060701432585654138047043828997428640814424672308416897666633877441832361033062523674196883973528766819161846205061162606516229000618216507336109743318309940642872554718778712603034149355496980422779306575235430057220969695972583742913929595239259135687675176725829930076487883042636696690553800767201797303007305157511235180589145008459231785956312307668082890696657606795332066253018199122521060766003464811693509049338731094015595787533204893832427910283426833230070486401127405286783882528639080247417765887717278787741207285911690381890562660802873023439019619042525896862512914002605328700201761518694887840044489033004909738632641356232115684495465391302911990758278188066653931910491687588089213133077724881960480793218215536791047687328702147803011049297579426503273083113929290235119672221995118352511893110161042917486186875541216565055019521680609674044664566201953049695533066712506574049179769637692897814760314115763258269774530655750983748492897311977260464603784094100052470956760083753582304259542844139765487614570016332695705184214063655535251457917474126158375800113908961683366681572708254286234800230774839453351545039799964892103004795789669021054768930817367976545411162685809294616717732098546330241835487169322779500999935390130219344022181060625067795947818185071035562755431420209914978114061024049711218162024891517394614341678989016134448921802516733596338688362449322378191294816827142169423101124324878587757914641913473247535480774111795128271018942466152509528246427418081456256582722399937793191513319652802754721555906004072867327324777880989412553910022887655115146491827128895603143576616704085920954387252440260306882332997961597090221330686256400939879234921138309189745920168036690452375459274999553407443247347027157413614527771291863410086851548300583811095938142785174589022505931469886303139801736366767685946894189988649856233781442917645641023283731474098477939408425840624963542716909449388783715381727979760566994415911841702605657786218377203048707446602099786707332293975171272050305589086495530405889685343427903886313367934459442043553173005222854433634115940242659107475299535060460061178898425195561596859237933066360740971819019655414600790986030377241353626436445757001239708265680284684132862169349681025997799946289075512088561823397792517423612525863740011874616745310558522954820348607584272839095766277563279560884010801970974553053427518583782386941334035012110485766437062066442107658281150779724173582317478856162620829804055825475591260914734629943485409711220250440198392056916757408223576688630737597032739471670719166450522454582093313182232028394170541172648734927265250511018882479789202263918972795028461790085330000482860380639305993275157862264418134751976029687946040009557937826750886264821148979629003242616062666855064379821103098644003873884325276123341338830820669506914541282649777495324534277855908484840718794727431421457696276565242108368129381664731294490266479495233802112493473314408774537602105468599337374887645177807973707895206817933782982276424121785480607532134708695296437322860910131824831826672820970078456884244201346937155577226069073579062828941543475685800646405576243310541798591753835378999667692510444029478594845645737818428974903024760894887160521531830272619721929950259073717176499304250462739405650055612482415807237162802355502696946221625836281495061503391787451637078550645517318090894187342908503498397347256909919127392869511601354113797491827918096840592237283958125859859289681854201890107399683357056176013303756882258421136993126415431190561659986791322420711588209343546088196416779422695630083330680515509451888044598572569677262702471814271154490947598680840579339068043113205591365252650136509186361794920443918687569460367922648120659241889603222957506748824182161334126214494504549609769746260834205691155041651393012914019418103266600350305995591205063172498541753139045627218505729524817965498656098338078499159396199545599725620903940631823100029780157269090058337169610718498623550439396094890246348565639090620831785792628534637559877438946275537700909498335239498536160935868769985756839653207435620569605563034785811002979323759182531973001268332387451922258207059916745625989918483097569268203350347138839534139047506984735968332112993954616292284676070565274662415826278448017072465220273559094803089054426821909044111283682285903407566414188989031457956111309880433610672229943808803473781778217529182908208118608346854003476262520892928974181457671112846412136043063404825530865633478958317057051943771427357797081778758445416121960242448259494707358075899634946895285743816242361871339390522810877700758162566305241772806393960285076321279015932066172744405710330592899852941395704591184388708225740005869708773702973023362511826401222883233957209431188019888489607562369693226291383297821993882666252692647541655089085215762973583791350078956116084008734403689929557816083765623166502625613045686744228279498593533205125533941820874930603660187189891054325968951942489051307906730546286814071854272435865100487920652772442103472503020244276009948365123544983133170613757946745141417475939912524354883844912275599413287560376243738487140479839036712827269911030396538723626960145764843713245178220646975491240524578167856327189295660578112494562307995577334437564010890726898117823552281155658004912460279677115500945634215549367878348334383506640050222520213047560966382507921957113157267173142478080412539945182290541364920250300046106732571883292431953258094448618155051607932447875053576429824436971469346905894147138285089016464531365258788281726597320468798260614772999728259262644164388858552890367936656568849515922798540910553673008152297784524897943742085233258071869881709909825944094591408196998095426336598759530508572879994111224028058695352075010584162637814880296559158622039992504459884292463300082196975976292476852096352298948254018083391005499676593935110087668892422049631967093384336638834534067305019726850599899089641921670375521675857930849408221226078776022080702810996216205899611394509459783726721136353656869959598254760978592079690855313603072429993875196347728158860065891176042989517880224975259264288162994955704869058951571466617595590999558432517427624510855879412443105414567593560614230887996601399861073568241931687621743961332100096236254036830539804276596889882586122370113767518452387923044784279187463501695818722427311421960451089177738664633352553814103756117907018976578530164564182084440084717653301358253594168599534920581286371378426809506503440034237046923448295360039108467171408503493278956996031733305298335246570347376746302544088050544234816436821091264919882130384233426965152825228067887852044483722228060998299765679445111698713466941547629677092411959579733998869482898355614037671553724664901892926071115392658842287630452368237025629549535424383522130624950014151378449433774489150100691660615914874317632036484896576255604492436558312080645222746706592025384928004560955089807748369216540220214795117510803636256337324979871386133381459334158841930090531440915825005805106960599170596191549020475960376917920612354968195688671143569369308008122911943849773446137718772655840831696711933941238915206413793496692936681007743978563714829074637770579374663588627179943538490810375601054444392152989462195841629736262834309356379825411881544086636861841783057753918461639431188859344833426676419805185163436217867403862535348627727404916519742728215079333909361356108505168331719133735718430104824820762653605366315936803029593849083262404810131204104301064820588102501681983748108116007177908635193167664275370900968824079018506077516769745142124046487188560447126912846938426404597272046396858008921073631675889399315057423182290659797197046558384220736512814565415547814104997875840209232936920257095009741407339489235805215310746844846264772465019843386246746799520516930701676804002207815492764439641957581859878544785569644078679740528730059661359560228117168715520759146635414589371393473128198966944602509637752077069910285958426637778209836238794674638607581417548955418266796275775627197648627284326882207138397165191836818867887387282182886184690827131815452681366835385526507644976079722839126484149646807609492040815069105165624039131888067975550131734656500606509603138567742267292508226491007312554235826092481379595000665875318105775920084130516983499142504442379061472669296737227209515234835422810063904709130855823653840129472442545116171468525664813311458678946374720807522092922060636901512535784333115383681869454533209526736372010171247364798455758390812633900532856188282176547009273042674025360848172633687599085736149806915376200507977171812433044191145747087325034280903502137947602572055518052622412281301706849151435442586371340702027415757580254525935751173772975366859697801814910075646664407051980575401837991958113490852179993456151056231793636882526901210701393001975875686615450479869884551338511030149876061365060444986492422906873488042598112266858780365807813265442675980924045117161808667135897069461378784513750036589861361610872571120806097410700441917559636710401149898801058377944633450222621522852594758765637296613823972607457238176320729264757792748374317046780670667664657164390221844390509246177496126323229817622623616692731505899622975019698368280125476763163135706957686388517816411383727239343144285187724886740953699199193867391620243654620539123644987058161959495084797630299253623736908641851428033944510514423758351829016304294862999426797470417698805112650693588907819783574688012400927006967751405347482202436624571421484786912053075935477596557668314741191605287188888011726222960437542421179024115600263939398677659597310101114554654631895003222816748222591797636707440232970767967034098314227996573817307600870549189212324732422517474917271397169570146812129595538010680969706619630405868611697818560524225637667480163984018141147295650180781805035281323506666934189952615936536475419501498044290198615357043966677264526746387336432427963588257374666966845679037921366772262360872291517019269135330678562712742069767748568202727129454041023583295359715992820954071456126208427843199872068994843244390156450985626728088957926042717782825452550786656575891135679174944525019389717337607775434930546692101423461580607994181497684738668424374744239108548319988277324703111848390587123875628800782868933536570558980173327361408012067388103785364873417952308327486793896192995792430359931380632716697839872952973057242124278796282402681479538442795328229862730917587835797024262293714861239566171398684970785703092381880364193058013433050579348048312603218468992805360336016885334870266841778629829187169899709549268635582771406940004267833437979578912456734960076364540317886433007792602948049209916962228668141493106909622915473762806775828914631841462829696408309243729859091020346209845266032644101477059194586060899305300822874309416843725948928855784724367931037900315655214493229461450284270308547551891194980578693378025734262024607772257982315789457065012469657106311226479177930682684097938142582206802828741745263169069104390277755551651973626613221542676304930676677698648204596023003221876067032020780944730507854887935476070592833735730145966348593536092538654987221551491652790267787021047056131641174520642625683378802996514936965892868259291607795097885688010978763379734953487335470565786396899457858514132541860505024893957137895094555602088964682860550346213355252990678818992798204545021333663856986428158672563124118069709287387514161730509831250767854908643408559818888289695145388375800652616365160836426258276151185579440202944128328428840294812318519040018154510090708547258769785338987818938888619681240178461923177010970751732415487448402168259971379573480503491156270526730485997012041399820124922991367495809793682601352214367214389961014429854659828794481326866485049300095664638285227206161176382668763124637578344067275017511865893639554317957183664078877025359034000275972429919030237463005191481600264177289236383138688001067786475177714234061578450176722653902968547385100422434084283359806906408438143742225121462029415343091297872744483206202694285751570157255924387075941677965130641273576322087026660521478476967616497155507729175912675332456630867915564171504608579938534157918291958878742552555316706189609820756381673119335635333541048292585868124662569443118938926002377321464658247297316045290584519408970663238957855464348865072364573420793348399418324217726507609741096350204020968237429064955577557537424165850398573334094561379858720265008433127705116476698277625800469556752237891595878414258165155966862832922966402678310973529998037028739496777806267202600138259872418930310988828692986285257496232168784835845979337414035950484614181756251023120617649717482907081221086477280321700508784488206832669995554277833812510195039795638467148463216683840716492962944993892292769866716673245363526845568098485235840394628240691910943143664514970925153011611586837399354249583195237750959004986539267339741334254270233907718818342646583546502373590020940784710659410155361655142768896477520917082947990539647581864026457630564415023366479384836062508406467193798884304070576918244358026745312520599809172124531313060974805152683702703298451988507116848246763283928040093411364797357003165550225581433552361095398531585471691432546270889686429536801490264338053124027795168296035396774036676065396261357781804425360744453191036574042947801035909992238854168377345703800220728142735214326783754209312804878036878843543455783271445706752761527885071827698002846866626775803019827752653816209071581120526074591912277453867813414998541225609846893166479284164110829137971143543899881414941059709378754292566850474856103169434707298417838055269054815017307582275484621904974312690928495152668880504263565468975008712865288956412272689790898541608161550686384787410606230025010544059049618898826913952151661689224769473716528480778423848366067355514917637600037684090599049758219106237037573029213378593337674943054235622604779826715168711111131996352830981705251796015702203833388867248201104605961816681194035795601922889449182619651890364553254221035985398891224978429349905692072847177444302359216849889025053770973262863137444000964253355012814009871114226667019553704223230462822460969983025484994593698100218914869810322486854777713401648315200996822989360386393644652277047672692122839153986409294747108158286310423268302226077406102582327035319509065760893162435426634720959751384153919974819014293619163359270128021680359396176949922521809201694891722223068387053459558540162341647096712856515093304592309252849699706764352566509080785536119882976774235003866771441952039365824246389897898072250720691337622988263234298968672715970250294623892984695527503497425706582440242128787860766107876738776700562678517226539165384571547088469535460538062074664561657356191409325753737319227895241255006243315084494067530453681890442790471724349465202585131560605555864182842036366160629464227171589819097555339459179314820111042130729823089886799207123729191117380378726585724446543398723448110867023183858755242084693570450420984282739773733863720913512705100836881766357596938255769204710946293947399632320497925689407694158419910272775289887350011875177199715763204268019506282279835252038206463837872978676359793578710199721173768692565336122326136491181569702699261120390868365457146765064382565978974424232321836355622547531228183417670472572516404874443276549633670362317462362479237321039213249515481755685477762413062151470120567376962030798375893320408296744328715976161157053239890690363675834226341035272717189586435348380309854271457392596672055290418080377655374792821069078231477459979247954472125858401161321096554703406499499020324145491646035508683462044370549523933767956884574456090465941859787541588365168030859760968057552917226779023681239266482412574795514191120600477224098277602667669567555466995882317212944119053673686000277231051096469903411060833479116398984567641545491876460935147180060591797994418682351891743891298614802899464388162582360145173580102549266417455058579199905025875788958489408654098692272151827335206637017848774486672238392173870744177156942043057428563261624889025184132025324515371653067146761613743362536154825978361294729552990540734044859476267402888042849647782191698851971447239856272959976154123313553935999786460508223217969222396476906676221541578623493527185733813711562034436490864603839380849954166494033645649373101466832998744800819909362298500313801863379764648466697736518438947050346852645387389829633461742841855210759900948608899319635479926780958036289332122859456609328543406920058605885079289534590365676598496552412187149747438098593523410401532872567167043152912567208022598620896729349850852470975592690366997229820227898692575851470760680568201369092891438146911366474832746752345075237547678336832204906501961162394897243558800153901589918554677531110387333358719794192253848263712874821788121792945344292007052740164061769361885529868647736080228785239712755798035694034543103868251097766293413636198895043017532065795581901132649876223183354294393347154959150877028876536047880822403838010162968024858305905408718756621725123669965711138479526346732597220426694244552145865265432542699711480654305107159141374652022505400251891341338740394335744392951479667100894005699347831764318288285066315151165223435050570040197135205540739311645810894766192162797772004393526657619151514925607808012098937522943987719468772419747861757479479726738980738085693936298941584391526388312853893544817754202875658290808170860783677293044179449372587940083278497015183513606109596930227647283342891988929637224639499138005227873488991542404345873100467644687652163953190852200612651845509234173232032807961148215145998926241589859724015914581209233137676985169175877145726874158370785932121765928375391569584806163681600981502462818998543833237646382423964659681175120972746344738454818964395810898565277023339067988720934923364737498423903323030652477060791984067945599529438121436618356687765082718453140628788080325213102658095347377980866982953341161488841415541055333451744470065250382803861632779784856069815560880834474972079485988998595674171367743492261963443941890255397163881156881288057696849987824458533916698121997751649964477509940770046719318470363467320602086745682897035431695965283642109107691355964385787020590584681448672512710134685917243009300651155251275556915991615443839764218500491955140999378580816251117139466300662918679021988906504360389362668882812061120544648729156909448125861300565849013714453500130816639482346574344533258596508485817946445113495766503781923528904769868037582383249621119920617809413324603822137890950013696801211608845898395260443851147628576254457297874866590349903046098752700019611681550961061835746185133695553372821841269298131785209671306749798514671121957971615659349084128033601091060456011408734591590392958963972192668326083788682831463362710552233327350159413639442058765871046225382970861779479327755518106422064809610790337139464840878625927370196480621285262742076772164562858966298707066096561962007491940323367118518667613084198844035328881850080129907173177380415959249669017495972540604448937155188052902226435865049130818880158771797057410009648780197869361610507418611075268101377185382525010886356758562521978581373663643951443976473101448307401874828678045601790534928003278363341680824825020691630303056690056446438393658638993237190672306186719102134298406588764696657654382972911778239901674951199978760244806126136649691144094358921172943481079911727196033174638683945953499528246474359699313274837754140194487765784421717322998262171678156303579213182826712135981431572020298840532354407764940915307700830978057641977091293708575797635801788364184535358899717077644376303012275574990948099435721245947976576661743109065058951332707077858872912544622481675419058353525439140371696910233138694837908167187705175914082644672680829385020695293225041220633949400754060542569400723155989117814540460126039693258591048067435086577474302587693312731319813818662226476962546553982100553962687206798197037348410406660862040085717537597487843390974900082076873934932859567100133544118425404049436156892261870583299166976519697872859001214666572358623014229857709099166605887648684771517784481463953039735443286388602966670932647138687069374044955890876764895221268366147066309109377034688748968440567587591143822097597289292232700163428831556100735835081852178015908251031198500464839208638572374600733812718612013084490795242416161984956934758979437875338130390171477379536996056748071530788846023170421272957788906288111364400028822636355774310379257631530173917509552635174218547199212917529566026282401499311059248815655413041798669983875352376510212751552153295007907207125734330546160950958093840093418660947301723237519506839123142734563906482904003886814299856425343294175395302595306978838876836791181375944790665205746627125157713136851081224135286214674140227644039513599298139250683313690885440042760452599927213676667464078746337880404014528305468074800007950339218350852901227580321544954175339681979046930595436870535057365388980147372179569221358900327914983371167493837033601698290698900403569413551972911893375779191133238102122600133878978946313038164139814576615625347904408371136677722412890284114622032536278971492202235794277560925927184660325083901007579204832116136296831910227772348675179117074764134178501831510841539874376574838067783238060906877763115009563867355628437398880674200241715168775413835848271235188940747531043885599804074942794098121534277352723654840183186189213569036791199976044733622250783813346453986254100724799386490195542429215094305722031221072029914220305960707644414568551259065497211169656066291496148813469563534203345980166985942116731886613632257224018986482437676931198479756361072411991492096013747307792424470034593160964493105749999517502602871724759693532656256312455361532920904396229278096875918308626288146842283045439428319643458925650884038819717145324388739090611797113630101775575984108104888299460543313769291102836095372918694454378127310631513905280271270810976435606272125256488439077060616451552434913537022227632489699955697719820703180995164715717419105870878816249544563599100772572245046680796691593151235334156906646067405720853988874692675244377079302967780182495339435346999521285328389135070326774221750390391502936699807684198777778744732436827291117946568724050694198547856084633534643149501775746257194880074759998534955153235930007516892756944680191329559280920121188667144746210445336987842692216597343041145085420498906111455269282874148513177599643867351307989736912963787967893188651908271153339157527582772521650649480960715946224537379465119522052236577469110300218902636613492677942423769555399567469935211990090773140204902380603809104059608053624903910114332443754168031924116914472686034851453811211942827963483255103072998539608740934276868231059090984845657791231157914390585484229139039916900156317520936694756023580334318062774779481359570257283806448021953068098471827615948755854319279987472572883165068680104554801785780613189946941759314266412691229236856619621996879835421172207150917149159638070681118140414783267998463309485162683854944647715083801936669261312433435666297519810229211810650066900139033444763785288821229834571805253313826531027537706566533914225757905440114884610643083584854429377155045201720231350502581108550879476457822267405805091109266117453181027028481263385731083995294120524764521368740508892570688360923512988262803418869862314556068812459226550604036307768934343181681106959688520997627880583484861691997118413781974540310214712265276983574101728672388828876947011394163341965588065772578617274292533006881700228779952301771976811677849244003176336248813643463762463196867588887174077915275066253992532084414230169711237345957829788871958775953736842679473903544392642593460638241272945336447419939874703512276706725797381714820412732318004512631013560277384880973655149236133654996731316153295511048269358003217670653074493205405328053646923479730549693708688721441083044662387491715213294735459702074068975454023624310816517014095588489611111075268238632836731106664001454879989511775678690197425657342402416244270539652893596049180291745582679002906441714878129490197661008855898422513850066550153449034575217854598119453798541323782474918660899760682629909405844806360578421103567022768767160851353636551411739361228570377341292136664792117071331847721734077288103290244045481541671515520420691777484506209784146448103478512879733318159689599427129140458966689020863501825042177999771811169866158609882242977570598952921815669023779706442636307011907586646833296832872011439936777439162341472409418942954919723770359053405330164760681504153711412063173487836997890262487830230798811825059366102219507109747879302807426946992182624674426213171065357058976726131239081737702057697474232543157468469713807669706836981829834773499252325554788378191158012094762011351133190894950827597270649023846865624113842276675768099075511368550620264010185173120370922076637232342550608647228232308916068758891293310377064062825421030015725169307565117051575835471372292048474231866330558243505050800185560656782624839723844602282557728839820063001617629491814268292961441768056479325660734639428644822876384609965447100895151615125516558530792213267656606365133485557920081097983208335974425680123130980597437301187625500886830569011731218597133520133335788181058332719016497882983424636265495584018033229555922172241801308037559065139155686482149752335094212534418280482706655989895324373521488029745627367565024068021441885548296084785926287182132718297459440535857653673619738903798568722271665443410526846864417274489658113432938099097627073632408727313841499068275280080336487933164560415498568453483808583405682528278140675256015668602222895939064187217649158853095217484070066004648933663084904853579541416118932212442623466654467926105424000162394165886469228229139748240323673360926715142887777512795372655097019689812687854303462941729132296707499516632555369862794271374198930440549581373120750167650614889514247398469107466107984367322411641752548327306165731032671915914918520723505968156658253159023941946300035723693053258412212468140547492756758611214432436562266227640611402618281830401959750189363541141332777491655353596995095503693980242266505086348291919913971485860786968202353232855904621491131438366365782534036545852957378602216839751329120385975373874901895433886246018615547130101544603137797027414235794721322134903765704905007861968077577118516672519777939934911149643386955765630757188637760676959703052047656016288906274370892485522605434233745306526174258931195373995642506702999244784370644116989464526755691699604411890419883243988911674112057559940121730740886143944218359021908741133075989450996238407832870100164773875804307920532461135857301564212271751659641255318120863665090869914394330225393524311794390568184457322718775405817931513362407916665912481003953337636118687635726118945057894230793443236968164756538994994718582186859245438360994611041114074904965350921341572933040227687312158248265648134550484334287850511498411713622069963445971026968286685235286713889510535042462272275118222426896318668885334937897473537944643605716470048144886773649199130065350249315351477945118858102916126059885581654015215941742906629804894732056669572995076659011492584518522862123439608252770647009265837321091767616431031930392172301142761736657608629413249085741751450218998046422099768851748251698410929966620273820634620115850266833967707430600856026566783883150237539598065880832932008161626378497820136396222518088576094998964089205040785233300168146333602909554206106589275613314940967147806872900985537867103670913258675467014036496436624253222272851819946027304094063228852060386141878851534673636618145454010991861880503349086334479327049799521112389005990125214470593950885493784621415687697726184138449517356065176974478420504216776112422592640613110705851240764435932325049360088331470238382074796656117352782378532053282796177093629289869834536046338572276850375394365789688143169406575930274109940381993204980402074492799767035011724859853206907042996223573943432519953437035947496957412666333014787349864363023163960582736293654234727291218676996106922722000989423996057275401783869106375719209511324619612951914280129910798918039464040347189193448672366361713270774898380704090585267915968594777060929568875222402187001122236453273078111799028566110831569290506051626655528914810051721477207929955262903529982541730980540338045486655700976465919603667160089383724668260273913604791400964222108258835080896424788122828167710631498520414904407191820406988475916764810993098053547033215520595606117779684300216721147830747928107540819590010424809447593643575809885198957399234566282166704208690100408081934878740746964347455471884027012166636622410515558470685854684298531754825184489858514724685789537379085606323391027514016447326995173677517707904328298309241790338164438003190205835002826209072571019365397440881595831253203778981321114775443844948946518905776551326216242992012073019546528511117004552590989926361528247330947204033257442047211521363393142383850656038827083541800786854689304930350379083873958363743682866684978059404196624572234365722504646563979346622291313781981093027837723485440290287737973494119734376646143198360678587235744444610014249975086750592514587161758732522030709721846005941476757815220354472073243576017859302260893387489708523520870382212884033152627254258735437183254563870289199949985278732855365384787620429603465781937583044658323806437660603569608983127452820996284733649988837251746283379243082065291114031155205127881000566444356766170837388445441253548328808646951677451505916038954349063354410513764001217644925401921546605312288160146193062218953680578399948668393853028344329875956949052059796543017581513908434476463130146836014436430662637852017907562313865741355483390978167916874827277295371607109663431660500557120319279789788800459931648373985708744307312538130420743642777331999798388401420120689225432185927231702193284252217625664228123622307120597821942280473721653933681277547323360263785956761673542668328267230350211664046557952044851548484434324061988942174342199483010857445147689990736756212839042228421732492350326079680746818344375554307996826245628617776162975207816255529730842585752335028879488229203214483013608857384660916209210951381432426373296176944302273724516181598114808214852533108140026370342733284891680123772965869057899503485274400260258858945080339090874571832785417721318069182598724082848164481266360059747848394594525077850509320268223997238147662092252419547867071181414953054945824838304561113693003863317084179890272054763980221922930636565483499552130575733708832661847053238179955576606760474102745337876198890670173725534235557167972875953662757049053003982698245418031342206249143250666592771049189317299914239988024470860550241718912534385252536741863682086639561811462021826171516373746109493651820722554853610646059378382017019351967224618160370286596992106989461628978606681088704880831959675791595602971439825204658664815234105528496754052885816445664044068008423312016135999516804398941813005922078046988336130490179843096047535726691983884483209190291500079858039267103520582301578947988346447377969221027721053648054901373888147573937374483129599587732171983430528251221069845942324665589794508297926724465786214367410386799632115617211576568070651947737453061032298989821463329348114798669937208784201400334546547835083895116822486465725731005734823099319362691659035150083199025493358810882397847886114549688633120757962851324198132029234131136406320297286370642803875492362526367249500937112339584984649058079172227411702954692171293334134962546692893038614034350651456729994086422677528231483086867576650211110994436510396203338741556684599995845581858920936207109192520565642064195441760109421588640255383397609811875802513443475427899475578459281646731607842971752145421806913694723848264350525789444617104068603688799682579382814083998586959667077860261555121347439758835059214012553616147287239326016281166885138985318004242964321222713211876381289956312009935857454121748651371925725867497837128078514968563088902243969334968242425657866789856789971915565091516608056196526164508922718224527753652002112165005419992881364598491689351156016324744876236319200608961853838866440346868793972365343924260302775375452293268104200296050439088479920039955553475158059222129589802910024544451410049711663046689099087217636955811724898852475336614588831412317626309030587631633520230125025190210108641923850004612128321029020280151060759619707019242690349951851595623212842845229367475219018461421679551155583789299225672660359826977549291097732713926006426149203457737982563702433135779749408889483847718542187664987699357653319683376566600229037375057707467542374062842541356358122703201075648199053737772116958819133875562374362814371624603616587925282163476425647103253424821906893144632636787385133431349871866237932761764890594603714149924322797630813938582304182304202771009821936215197044045690854156549523890084599390074184095876632780385040370357954242292395921163395111065195857267973327061247865303646058686767321030995089799385042920128116158898195492581713788848317987512820130354656232242435485419513348810378864145717749022030857484248866532145382820489011652887803082903517350439103129307922809635283986684515076962222533157800772755743357360485571689890321667580528582450213700532774225121140975404316741264063326724398016092655751370922905935253858436104768242701062641515866038847287680209998788525500767998932140827401055169798038047618472815224990178822442449019430824388132986613873601155561975780548070565345655230364252807579020287569236878096281729926068910315280032954351458167730156757071588377219556665786353801885470046146877858366499879525550910463282312769084560163904633479113450977980158519528365120519746290221477424619271162305060558470655539721365379363174933904830820877168527302565291386109602800926257622145726061498296844653829962896630904418264635096584793979123427626844626309133027719889631888393269262857811382293455362363363368694809291644934776705972725663821639306002747791127670635586925995408337031397298276718703066605962105926242490044295923822804224171288516506709481230307356297812145188659639107116615509568108237208182742556186892766534464587858710123128130559999744708630543811440907930621383288332349568236794095341819388627661238455558673770095748871019479318195649704868771269198892579487079295254011847496593394112212980437831176257058111073759406011407381569389438615034864623937163167923697293098536969532201473612184720572884870093353560106539894120541648156601945223465367702229082041614041010829340382304985909831402453385389294131221493069889815862743582359746091664831300187188143054290358743886252302278008094473784010475497772180014446362436210313751694307874858315034922806511050272104706984250025777137520496299072043078180787967239726133876783342829995102745359142758678810906950140922831456346829998437842780477768614067976178556313300256285529826210003311744415546916036409070714067012439065642093928076332743096471686103264743804597274414790530157252636099018337413021676934085358836474785652190984458232591826365587993947182375573754227155744673243824068563689694900627074233252095917983567079614454857158319487157873581508017864535013817912548278659620969027958419618550815384637241630325711889330862999441513855901652228883187140186403412499757538524102288098681837353797368716077944544681277336436971152011872646669909022924194341121730569845761723893883711662306463529286404385270491877356456490662386101661800394614820409888543296631653742032536526619305195572887681735166192990295711771846317253458731937159866149184469651276878282255393688725930268449838661212537975922292304428485726648561307373082005811031094037236605822981461448605917099757251239266892439772965758075572468488807728742667918084203315895737366686382368052026408206405275087745375659233889549506700089359209537097752779956720011497558172172714250056761715338365827940355867846417653305342767821993769560760446139406575172874496293051026455341095752688568627611460370616964812549659820149850576908470662217139641839702214375047546824500914271895673182464517170338724871208567055079729704037815974535175007087850169032634772335268030030089168165685905145620767654452965268669017906843675810743538011601464631755497620692669813363635450015775396591865446827253108592977230289231575869324116810282079214512883763902532035896981774996152692815220912090493873305155954722745869615138687801404859451117350547798197800514569435204109661104273398695529027781134327353679042534311163756331070068033877466110392277035044909115699325206159147487917224580165588648200647196700677665011719437333767938787558851487836758967214754373679765030985769373980632098717178877870777533790239383204915215773409942162515339319630365677364000625404006552434047081020455988071206942670468141094965465884664578236182726233842904587837805159247720194793411829330460248162527235372305651907969919494543182541040079236830614361680376267581560910034624391159089512423009533149156016865749034271012588215982366160260371764145621098479929878500388052687859684716549266249762417142951874322971700761838273957778757785529246626983705120726166068158039833158311137496000478433350191638309840829974771803939321462122195331549650128294161030178081676667083396754648941211650422742337725474765961516891465631973435208505783169967833146998848608950323672560417600872782446322420754663496633687571707720607675460947873437793766014281236649001883340366670778363557626979832849844425381608204222288231218447490397077278647065708960062459829305337512601138191345966125261616900154316966937379892469809657190848049036407873309133353953710699978234838159279370478369554094803356079334158233027537790124770911163412506274501268494476626007982472230398343318417544031266125226276824731785080512710382865994815863902839792917812447931521729148790430525047579458198725156889287035533413249463899495443909111308167796065351585841380392171171455624670387721234510656122034842738506913834476088628346455294000480157199894261719257313561175799891422108638611849202852026483862737187712847518294056461592213066401460508641430586104710792138722740786052529449046912525899217523140985726324085314978838454299519315846860864627444142442111874804276426162466035306609931805154501937548931271801714631965501640743138731584153314344959488008525916927490206640838367893758635718706708243810552279439183766692081110263760050306321796547945244000161229429977979815943472857536129659364880241223720252591236717717323166632853006979122576851345491183920113458112484423442939053901646075612419414551617412598343218260177696277757124708753476905152200509367934499711796789139358075536065930514500098457911363731940599509775186081585388062511318273851200249635176853429888850407251855419541879730644387137854664915669874441324665432468351925838620175875617203119505996189915683269697340665716147450423003536157619374870573560552058610384958202554515133841573730432702657299934454651843872467852819414544593449389509205336916055303105986598079195981906783545279488389812198339930848511268917747151011114488380519680823907213559946402688205479317389715661293184279205622554318687660709976438410554254571728965556780835887018211439784511074325670307796966725065142767088248536811584521922422042501312803899758538674930238500135282606143585316187921061423476535512425549687209197466401373434770891814878313683194170433384420755652974437414333389436076729112730267590764857088300016995222454867242309518475210296336644838459632163068219231237425329748468128288433796495092380860649961863464187196672166168982929131988804583278405267180062328095892493719154943248968648502131315023376395429950404243617130291848088789160703262126730207850305426244252290579022480280114345968347716147668210646580452415718554114561898239352809989168187736705378959583869037309428583800587283631352745574507592723029565071322116691044278875325661817027313564387560368142106867185786090179508928154147474128462563358101991358460972237474273073133259861638547399643561297186675827886305231180229627421294181155741046050072608412449255986476167459786641497597119553653736853260795910605564358674972076044815069163798599891902115256008475498867687290892648420319279587852858406994270472212989693626930022180850234955943960404150374366138896912627751117839441437723317688173706749842057671416930295297942597707397153930149531199429243961854469746126062436843635750118480855715337579134529153203899062174476828513890789926660615061836645319438108731330498923372728475043641931776547046645096567674425751917443042477796260874083668926525717169858642112278728217684407466036729745454571970968651851471035703191383693022355589247206072704483014943627104050786382933003031348898438653098989829641691104950340106364205442257903107200482997169445343836973823914154923055988471811652631661413611193730303405791717776836728938931327974551367297229549315059315263305621097022734931957342721231189612726703518260512579513036152074807266902911982133375317939921741379441014862505080676987016509055505356758630712376001936586304581548750579929611890800219970855273396216006115571124145172756493353996903053942946602508347315104285299855605027936813786328442905995368362508507210850047806975661194426164393018156178221050228667848395410410557772599436853910776424717805225946437189665675496374003565719934689488643725551604596026822751540001329305664010121808317962171952836471180786382978002539301419978816926017832806983072086654396042066945430559848884903430676411485729685070790161318506123868924899136114008164931134557226707009064860420891438125285381517936441815875496463645848360087281934102351965668552854923224847472689080731801162991843189076390017858870506754567221926980340813701349462547591190151400529795754452782809429283676551121988218605729923043586290801537934604682954937463502158380147735596574752883391478238898094155007475713076353101785604621770176737318975287331161297552591758712742813096554975514900987659973091465486808985932257147277408435288328999682942248893181476578723473515227498062006872320227799026291309594522962762288742903757982277630015387196615272165641681851620603506496482195410302078652516265544528862470358284669742548730835409448987392300179306581746693151804274807661594865784254624171392698178415321450150362038855765005216500778674060510345687944898107288167388132432374204358836935761772034047479403020495873058213113449332726783604899973897046208465864197370544434882723373935214790294935036310659759867920513772298181767900922167519278523908588070018862041432659359896740369124733909543158413823410999345289364189023085925071842210547352730065215529268491671627313517447528315587199684132551530614947657197948245398874412886244587702379934845850337651289679405760780923483604177174817660332676515389053395687088461357843590288091621550129631978822786735024404329269561497996601051369763482148741865019565079718753931374561206424682746247637434308279736159295749834893789897170922307440309755905227964266839414549018492510935049676291674380011065128613473135230590953714322282671465982372922441803322397040691139586760002083847123214047328015113945710906170023688180860264397536532578930981812399439260982914233800052707546765503467255807838801701636269588901969164124034181546909966790084429294849132217634221424251367472909192450362682322976034617096235281686448408142139111880742009614327552329255642538792729443499452122506266054463382797268875174112875530850949793700213619431099152490576229013583426654781688180008577105836409940508152899759839620511278211572062804581038789070448735206397247194441994025286240878624585779889550889761225726073480134643972246301056038299908187031634165005849866388224942906866094218366442797783428007095243282876203279471609983075166132928618222078102555534428588367294621820746619225751627767633008406815425460471550352524586768052822692792239450962876036133087620764869680688109074165426388527740989118249167790876896897549113127854117939734922435544327170144486969432202885175226914242920832983074751607598326729256526746995823481033896845852847778750462119275552186748070703478251095946797619391961571060484335260947887263803991740831558794487104073536892543651899156976186972062278688051600005114182988152531121579059187040142685094040251490329838934579033201529304999982661363370420665929128694679450054446195735624954314795896784105656734251134043847929062964303723906783914678650309854637049390535654508489153138206901516320877736382080920483658158473231271797997109829047044484689364382476592966537109561863932973311044303250916704876984677203209294906467185817044776771545267944979283035987458649775682594137328426929647742720607679329467417106093798235628364201286275179392200039184454564578787129979809453084968031049225265152359912379773539787340468234857748064136332823162409451161785298150925705832785594810823764376683389967795138535571472933983289704148578434921358400792281270652261155437388234019902019734335145303513195151834902462033434567719757648374352121648026401297391139428055414650140780944763789576909457877766931767532275826686915082812044917407641597102418254717402487911589125348276341166074673064887881774056515987700783721051575619929237881872998840902846203015958394628533051235634098868147236754037491947820852022463196934654893278517102424364321733023894657543336951232191002840389561820051046828750841884071859470923444511017634979713769769099190854598129347782687696571105345660584407403522018942755973875940270638410774063027502588806382196587770006475895239443553102069673826050016913068723807268366362783892574308417726789367435448973332890732233860368498758307747287985322957033806554793559659955029718751020845062420967693093250724009382824168206210340587731417012543907899225305953799664157077568417286213779376213583399914761649116231625674787513156506248540103281527295656293334510309739204265366463227068344122334707571871678438895828270797376380811089695256134571065605568565151883967804739629640586815233797902438057737441455535610005887807054250281655873502783482995151025208815679022717489200662051720976947920247884063318575547943075567903906706347471450239807030673169591274800957972035958498385442441207569225914946359734389715152399411316773478721224513672815070941425127162315810841082326109652192148500808921157446415125010470567184211172351402429488029619446217014237600337323259522040139520476589534563837312740443595674182504112739567195850155959795112942020561657667517273497187476285797018752978711260040335812477090191496686682497707696818147589886252495712133379679514026074744831860749802578759081687578970527032524058423488703188810711204738620384751480024250608884779042985611050624459244560315107199946797937218898843698732235709242246515991281547575832234555652551730287540938061738868577284779261445570429977197620277867274339471776649932732426355675391620222697620104002545592926468265479751449973210001744767552545714101181889524270576241870550351238359630964501868648769644885958052836316533647252096552975677097642621817840059826314712133002497130448824399519169171251537186559700692253763915846490965679692952980279582590383017694274788329085653701726669804393566370951484151658852162522637775109277718417866685775586601394195172887623753675326028889005029553459709069728539770273049222697757642216159174244407969482488577172516490208022699019022809119495924171113390338191708103746620338524411052327452041576641286736831209355335756673896525901069382722719340634843291187354819811530449520462513378383087738234280901713290608952804009808460380944821264788513334123185517785609829635735182630349354148246945288927301544124325137333370895158890792195995119041410220414645125423418331852032072278933879689360978957671533273629256892431899588338031378289936779439003504332905957565850914759024610831056766704918395108772978544667343828694904171245079213385539040822111305585519540714209250275367300901158395859336193986114858418817510058337915131173402557260243664338598444364021904300553859897197864091814822668297476126790370004135888023584437250457035643081053475263742880313691366827369190911348978233612947573237692163392966534117499785977310170424653391648350089986717220290813330247621792690147288501553896483129264424490156275809015940963813281402758557276012026151229079096547233854405016311897257974616636369942195873869301400231358986698899311010916431840418045676641077045394802557710221378556922903426621671343748402638009656231171040217324777984065180392813424579802869286286097681800817108168179327530409941725323525494443098675600332204450366355754793612402452900676871691277399615351141634255382421896084803858357322994089803766336673223062887124139395980190464343466102769378800592590454517135319996919639603425835161403316157048727089829806296200609665218303241053054012070455263591453223793780955360366498837957120058929597389302905846749391689456515073347530413737575837285952972053058766553458719443807238508226356865547697761596004285282146544592373858909609511334578671880298792418777934075554118785260399013321633085888354613859705407717292343292664167244120301526138448577210546349012386038490793888932641304889334035366090533206605485082566923507443123962104429058210100781160779971443356111912843571905736518513193728171762284266687743481133116900443286123888704806241154503047104085431697949069039262244878136794311675300713173447933662091511772889787588736965331593980548710274444698961824200744227362002249694205835941924509410090883877570261950964550107851066770576628618498137870085242531579059172308745227147940293183281360908144334277689191811296258500529408176517998161301823745873193239688682593729469776405436553965966671039077187440746320304307321697211089004251294846088756917579220733827194121240654445455734915418070278257829519589487258567463493876975544849749361655394247133610123583377001415097683835456888379821663778312725192118327622624331440186459406026200364719307085531495617260127446091440818622317714545196474518211638260353265144316900179675722781986150123076325373250882756739011752237067317987377091532593339915876640746588006890917047093939010710682606427417759166626460551521837606230700332451193967363344585237196625268231593054151792952726551798833689937437046501342445195822294230908621054963875842007984577351632489563479907716926757822192007795384144498868293993641779273163899843203913325618841430767554004467934260616121433127645164875139220065285511593209695584030597323864131744280830156208149426955201075374761059417306346301233401815585765135290486228102511995904065670593643296576022333086744846150354417035632191915442072056409145195601067231320161034767366812367351672134987421693628557545228032741085211798577326098809737079220458287348583345261887680122954807938386376220441510469493220208819942088300509756339328087062871237117974768160304035349287223518939331396346595468981198285306995887815392570053832481069736012029080667043566687219674570871735311582843884968805814500061874273745491436199493322934854359515464192238905268535823185338086982720528913493228104482062196890404210454950909324312896174072435727204333791502307542297202186935315267041004101678567252056597378246774786549109420558596371668175080372176815789806921349144306928431164320858284396001371413309232070334713955739869721631641785329167374815024544167804369785247543335484151704538032276614543572989153805853581193671594612734032510527173889200192691242775733795182057106180131689473674047447142677743928542693277501961969831914858656657596556527181270809063436657062760544267943443855736753400489088295994063568564702541786131056063874338337170794703756981177826404776306778270245936064605600103033611929466147484132374018227911555243371719476539580165416456854208165189052818470970711704771928480429983594551022473568313514611587910679048337093854578566571699914921652465134466883257785178631296095584952904445398040621171791582061189567100811094094428387685128206218672234786086751787019049745403066326868778893256125164797250503844771229631000851233291203514096932189175723855729684446817742908335331725466875399790760889731084014609160605776483015365947834903682276355573995161967097515100260036810896272765414466711416937529988473983150701965405417258350204485657177480433680913464376500596757779511649017570038373009918786261086913168242585284676307953957895205039403006950331851172864692845411075334006770075964562262381482484571844666637467823544293864960957327484676599471413899834253706917667470537301912122005765344821263669389895450602101217931880305481650674096057529480243246025356636042656438056877619005336479419741851132227878906411014774877610342463651518908427362027312820280947687481623696380093828566049775845924578227503721877634074581951909085619884226381255179035341584067758517373861788628983326484656023481032136007102275205879272743658707282254496926889116168611709164873138328732046207596976286039457511609287264863955140767269444144049309562018510470714183522832188977296296036188461261876461271717646383502046626491904661767422368119101566999755189207138561628044548757007614817737370644361729002276762442245866867541652420333028827321978370909175365019758175684089903589905458241247914783153073495149770159995399981339764181161963133045035720318064517767629236056166298406642849319070331408378722238504241186174918672397419841782563389323897614488412536777726951928268725929700965358716110675630272177895164539910216142375644718277331546949470057649726328029562777835917911979882496797973001282431764328769681970982270859072130835174643327653499925045639157957420597374770145947219343702743447419263998995559986225799705425685568533663236182302987963128607428750503973688320892036573915561649050805948080130737925156024366499563554617105304805647680555795762138737577442561101616832464224116773719620469961738479389432720173552157212446230914409172372527461333649311608673967518943777081685089717416839328279098458041282304041213244550250827428616872133410898037881229830676096865722715972215703996231174515990733215891432430607464697255168623599509011937977772078385071483528302374766342156995859085939596808961290212071795443903574368767536400804780865029728513224997329413176148668310467076972148893671483813592288744985043277967602932038665866652176353375489342018984898038705069530484889055178905020745195812147743905874205958926537634919547862383125258047517865070043784177919554160055868745893655068438017464178543582354370099726960906737678674329803145952751701988193535361420507840135357291963432278983194554944626182089653253521762660526610485616816517424727641114232052921173278219802121699335510215839510171366106028942803257657278873004313675072328430255290693084112446662695979071628062542009490729907422477755155408855582812012574118463565805217744888671712330432475503247337249142205723778572898804073472029976329440146975401924748429033916143042308656046034943257238221612049377602101405491989021040332098873849469890662946292805657113041754392302519054998280850185355689886201946226910344153110695040653813805897347535176381351142239513559196602396904708775598953285890262758633690376914008114186184447876974735198354704240427762795611342523864191561398686206437223596855210893836259498127487094572509998641938146195563027919500921617496461160130645070121753989159108198236833865970483070787080925511351945467699373333081778594432161803584460168201241452874093837201930567288338632182691072047411455737647078467512752675991443378453941488930262222684705090531048904115050919662847360021926843063565418601451609745778648974139952256484068739147708648178571553664030908176813864024332195839337835099750497509266809639837232233286794013881218501815848945109818019339950909759492831837111112470671542698769270498954524497305624701336806774359106092995323755628749742170826919198894834404571403521304119761587617336973425475500317125169008007278485643485979550495557332562671116542550936788217860041862728808555731992801955382103668775439351190798541081807354375595673490635923922655903195294204098324404555598975519271499239487679270187186726794697695983563627065049714046500841338496310133297541157056287088406027038260707583273914933160810104454013851808774912665912747332596052657291884433301850579619112154883213634522696300305499199528649753110540507140445700514764590483247243957311204018552723422412144038763704523611255483991387150446960460134736757799877559932799555451771181403409290577676007183090786546901204136384503055449893612672533948775906498113252386386582589122355628092996182301106671482601631660989144626930501518308083313717123522740812750868518025588049724809341154723577997552552968916472807379152670734765733356707087537203238455611963032988199386690767653179618141823140721212774898287846382103572778064538351098600900873203278793601621980458429145901673765853792184435014807983931270237021396535217106173049407793381341392980839579046181218533376449764269594730338197613420322787129406259564720822232464614031340814208251817739991364888972989403621127606523142415676651727930751109206921508740917308816238483044203781708630379772071101371156167341624588233945193701852894115294654690633106962235035493099647747386285292778227457259400272824766182483486447698526212746209916088143777755851781266990178730130960142655647605930511138489957690419767389001452287858369085396424178618661441987852485355472467641955380939951567156319359680342409879828494423967460599701895051558976580514299044044503319133328595417665100580177646471694069744121730066584455989481620565767104225968381008927019257717508682854754302101568428123879136078456969012669251446528082793863769521624260686174087119495977514082476397229324997616888816114070337506317061823063747185107500768162214832983679612417415855627416199473467048331906374764839180477607153603753807722627964842138188618565754686701451794234446036849262258395045275686261211235247206993420713897746161287426800366852033873926368860253456483214978110666882849678252002698985849332660557112206664324462957804501571255017019651481943235339201841586531592227604144311700095010434211787410905358225245888901236493935212712024412672950175179583543996854126365866050115354289083626541444992599399042370706913154068918873247140859687078847201102603108890377533775068949822450084365749756396776034868358241785804872012831702849753663750507478111286318945688854421395577444228022417018223867787492647789781180075762531093656070116216540278660152857797159479711241101597248063979876445853457177207538116638527172515824592729251570972655521886917650970170146024185897854867580934828706778126111493470009582815264081349179593421447154379500296333958182004975831086541364314979375418330665164825347246546099935083688934611582948747856016868261195348860087349412358860682991213030554403631017759116018994097034897648410819833801218314225329317695024931408211465128955452304617581978420380125177925656678262688822185113106389315093971592968581332624647937971729584466763286287898736494756129474849468830681240112579236361238330507947638369699490806460675677740788286251437902727168050307984154593713991601874360501577937224178418922180808518878252460335710677213573569915998612897353722281234046222451983501053484213411526147225905648028913900933723313879195769840025513712622728437246185668275318313331199431382483456821251770974912749196746863467082169501125407675311892270345238702727173565925312394602205621422936514411759975670134480676229713277900994624889500174695072652588074788901491860297421591635908043512142367032309351905369884330908888920315341368133475414007291955959645796589044901719663156673765207939050547315390490823086384991742706304349244529521855280210194487711769103369657200328651953277881573455446674672041818658822836925030665222871338040229971292236137004423623599111742460513986507384637042159407771996300383121814022086993823880359689060295650399801491675514726223784580789410670636937805164315346657171386905292255022430591388125681161465075477949986541950693170516726156951133968767047433697595938283420715647515384938370878867462307577325019816552968939539519783339955281170150701777636927537816802133964786902918815348908771789759360968300603688888491720581493057750141220502613946070599635956482749144860158211832869064899344679018009200839283532009154409481574725733137915904000325855038795915964392462236339691837586387513264910742521538460248387688383774499563055764867014303368488756024311707033842986465751049420436239225680128661087316594497456025639746744433263457201079763270494832062118831597495305257343279425973277391543888216900362505062476657029461205838161762119690991856015017590532384937678040814664831219984438899343465649365091208969325097717256839369005338564325456372986499178002890654826615014709527537427472610890064541674488127864677789178420674165803589084204830594467890088471178386148031669638566280880916801360879619836897045526527270289316300468642577770380343480064531231035413962131312793415892161876804084761998357537718627722310579762041032734871681815394890501319419241466401087485854578891980187956674559898643532352521676283671804824140735253137201780420789834791672232359442819196501733755054933957662229447490698812208681593266130622715804433428356293462213552921499867256887552932477131874677654699622761490669508713466733249024107170764745139536351260486246673308495032504399548671792206847553645554057808194617789388623551900306991746926552891574981675835473203688268287889825119127107601885107913493816323332819849918200142413270155733364366905177392813687777186444116282988567076109143608757858307460083854907230374219307184505975345943504501209133457866452159754091280792945598479271218480243203862554027898471857045216537725880529565805399389753921593202638145894270318112931830204020015387061887230009049106929595311745649898811622475559683186731074066328063708699630119675333825225770333257941944608709855706363066681743504444050362892473517349863306305556063478975428606519781588453849088546019889568864374057549758251865449290952452513989967612131542364981802545890837332133533999773548205110870892323922400714092972321125757492246720195838583073420844187760958964227549546049609083601986687368276470201202809083338529890140344546111229436345461203813901344094981360347993570141747657661101942575380632437720657251980674280133085616250900452485570329143560952234135719153940850789596129603539700848047844841937531892183361900149920949233399303836712892501289129745772208008889022126941269342776419867081406094550225774940283197838883474853573433591262422278893840908898895308172877908098823566301370361560873460309426834816882015737801702510536650564837860351023370103926754456191346544780963018016855816948111585859152890666096641909303505248521038311854613726616023083213101885880370443888577540371812316537446763460389191595601349956552154619853042329724682613307911643238415621791251755556229677356076464408492624920463898474593829331111354959276825175284873371046784966030507593791194411303656883044542376092102116657188461074947673415741963540611314768801923077085819854326639827718466922565180845827449130457799600239157060122472721934214002430671213826606515079817369532605888653000565568326171330875866553004994481814735822879559831723449794908222345178487089341149066208959803828457644592294598276810219269365918396498556621376863554738859123377901052297982966216554789097533158875631724514041184627350390179188480997959179651873300676013371329549248531347293733238774393648051097562195215720908470951916602780593303389046935921446527380792815580105201964160446243049005245077807856941017427663924618687388434227289988734948260184452705258331256059077535567417079460162375020691701074834930137745343061092053123786329113496053754280699379635932089771307795191960260211732756811465731777707413987750925144496012975529660984698876301168491296990423808159226944387877380893159142757723093976531753132186546817927907038018550802878327847372710422232689629582901167652842573466787875630627382890757110855234976351886356180516686672490388644362424381081503650536062024559483841769847423831112710103101072067514605590736054726048226245029412215801554293036315874081170295237038663792115799535109359085730391838955530136867800021337096558432778427178314554626032418438615631106920085463180020774716217911758430207332195804975805866665205722090831959485553509362298208788021829580193676004789244783708168168792921093882470222694901899130478597732691249209530452463708912941512781121281133844646273742230062818568931313536112209923811716701046760697941627874281632399911240349956283934900958134595077064444608202988730050636110276334914121327401606794798156405435566592607492977136641233741512520045254965768176767386973235202935947827825374867016450955234716605477870186626590892954794783880381485560670600769454382632205319855505891982559414133166798195377132078803048569766122956158416840765055415346094228253639241470143181333869962710625640663077701501422451106268235568182334701891442986484022510929776399382388081527378216378665628247297718671162700049691245669434129025881756197097356067961119546207724861566602456330104317076367514121604352208812268673973268683389311219027746124576903459539907375659627372076903669284244735536734407526785536543926992104479083490335426781593755304245567133644582135721389768949787274881962098416247774583975571791993033969698316985297767197106781165963945482393000246990255591353910992420378678011216104580683671828655240731617243889756837308017656362151231412375257217668808896233444922043456238243228722399758862115502115907049399211545909512670297506567988006920561198712900765049247505142098858889053219476843788283599679997970997711270473790603292707332749824570788677219440338117534622061496555849260424199561133165229826575705466537731342290141912604471182430040411133387729424502923436501583619424626411211798331130136628876810806258870797118042414034884385042518734295532016028443138920380227641707705681919894914909962054285870899713325027605081771527651280334319474751490343881561053891841003850301648821839422535500126130961716330898061175709302487434292034567053125286267652744879304101122654097394476906460668490060745391280265973672125686048999344261505006628141074859505768870495030205646515347143952538524880404143280428462823950017816813170521459335154323962352115260752494783268913753952288896369351571138222491878212204811317729828206685299639567190608028028789087876286938551649404095178508199400828869593527142915821664909828433685198414888589639040731513372323156768153782613433822610945461159645383159975692276177749322276926013736547506729069320487774237833541667097497901728035147028704008896045350069107286988199897347726187100953177352363658569454448362278944667892358994574228387112952623975747855471542625353113125084280420973847262409526212988595452499186435830333279217297394584325834204393362710501523058799736104194826053315064130435857129087836573960579794479707164113175863737716605897587066610007491450121635442279816683187647588604014915611707404113646970065601754500972507046232320056726087110105986723764500880691652172062574219324200713268853160216390480346573114301701511423933527587478101061036036357265199037063886105216295986342018975272968260308271375748585589318184420301307884568532902471246649862295494448593922332527283472844086024995055039087193673249522551802640699428392818447542296529908196561778909425300384832887740355621596928447415822592546809311501390472343781906456945093784430821737455212213007298246940199084768676066517265692050409774063246893675530947981915041442727968380304549310810926797394518391568121681543937516097034319517892357983476451314377749862687350032910592221113801639789883307304270797265230351042211259007811866995343173462797094669782925112740898258414635492582655709728068641656900634795652549952835121313809966106674855316925738924799429275919777372883154746949842192827372140011459366042864719453099551577070832969077122950906998889160295767953904504462704913521860521155580588359376623092800132864042779955081621936242088495402744033912729137247131612314265804476805465730276658951277820727012225326660885627848069107280624729313465828373103669405588096472995256565348393316411060335329238532862462232259679308279932599278457305147533718353913872765781558177312664965437810521123989197350341659299589687353869655597242522322320656471858047534837886615309805026312638196934788448525793681135874168752783541197971665380828330914401405405189133726666239786421047875169578396697189453545477470137128592531074588041839339596948098080881620068947412337425357189314294792094233743031015403148619129047378445085060431755525088031594424822284566832198781882834048077374525120733761646315375933233241851163381305474287969147945289593302376559048542037835636104554085342314807567324858738738573928295135051513475903812117440748860067467351023004635280096196335604547923247632610489173497218465022828283972864371837667359970841006028326050026199758876663792620517325659703598834372525251671954303339186030257050073682480383638869515820484175514208716278725637920429490964254791675199681557132916393312453817607089306778776499622804013526044260909607939022292150959087299099464268913077670102228881383752285155380025496276347509668058079157266350876791422470758279784171060598022119683786897990659024236845952361735120023579424147936176562885280962329100708206336029036189098444931978235631850755135118497351658297430668663305586022393135248536064683179810595226794135586896534404540586081807262059758064578095038864508797255164074468046201151382444337985850613741779891350483116849043286030481834001551669473500411743634201473028590282544597922007487611878997574778415051041358427307681008556662483177660808604486675484942894477653848483015990119728280166123974349935527482948135611921376183835193171954050610720061844476217257931844065356804331842603492972066076462798511518985480519023295229571173280186718782127744720889177945400632496275841070749903503643899135476758679098768099020975994759435221268869656611182851622388839632744066277265624072713470261250013412496131795310286222808753149346086216591299066564282314698884012896477541878280210392300188145784793822514214734686346162874270362594027982093449049842488793345065829893461241777457369059744549531954739794039857784968994667096463292429888485566353282491934335302822149004092598328324826100514077544985014211804153223473492760489537541683748189268710681085851396203285217334366913900519129529538000911833383833939614895068674886451263739326615880601394106947481268978668615886281623004649115005857228662998159179528420609878671579472508223925525041370509678108699194059575087622370747455201381723341402714568121744031859026490594976117862393270239684733864528624561599098079061786033067112232026507134121928669594561270690864043111997413212286417913678797906176358403869372418371910929339942756333436372653696601355014120692852680502512934968349801091365465156232028709280969661522317440597679387683341052336832514127417587497715274090066355349019432978931051257359674543153176932535739762592597406197616699866691783884263433730949322244623616190831196443317035851426829406720828608887399800979200364115822441510879538153353177794388945373373266513534455667712075022819933278625063394874951617789468623598007135787273652705588319047416462968362435077500691892241395793013883976358933153670685709454599672177087496028913442936517066279867469707471836424908175173936026814146671674352358447450481528595933022721814007415797474583447677614591505721013989555861988516635336078095525036842932943418169205003365715029641055974685484368081622058271156677442494527041449910563286479265476669493660115585513603492171700370572839972065056108073307823051280450420201955402471882724268185378332482818072065287449081509574105939438356687469749733501289610140011491136118584578418896881255626860863993956957993577645198876599116417449568053937861516239078022112326895101584221198713358283879383375684866106514886768266024318873678133752723648585481258050669840598509541747660947235664335355839554143251385854426145238552528414035004603078511286451909924748193105717505899609055688053467063896907211163700189301028033857614866154873814151565636284893078905196657400515556836304755468977686786601720856233730318762354368672513837308276234447336259408409008687640934355456218716489110218341946792954913267252495281804855859800387520569366737987322636551259390396149152223638190038641233531392896280829304125600673503654092819181909761094992325509941620459882709581192257266638128942027281653629453999272701919004813939682817607472700167535053351678019211207404751263283484022846399397713504889249075899436259596493738033936027226456562368931295639327999250055827354704889229271623080185181354192426191827913418958348077646531701159890911322488753171599775305148017816443972693421358979870264135509163020540757536298211279486739841591186334232431932738012265835273955633777500320208725482156186253489191320957972371197809136120939037061284874466715552519681153458956321086694215630181534962050119868266248344052341118204088610417712447201294619103927113374212719828005120758571010408262573847189154722854165570356762117167181863532233750615658029619279775352411934785460774284843669311536132091119890010409369507090411356125943586011209006790251644434723938051216376683441647396007439328332182276505849207595313210644939983564625655192604167920468616787483374266673908261446841643722709501470859821425395585493994740421437048258044888213970834398705876874881487624324360513797813756719415892379637882683794698775731275837652819504060009227839883229858200946465765926448827527374961348571095709314668965863594086980375148675109142546025649593195203836361699132782812001139289454734912126139617044582281313428058927598888984022341896424759256200267576596747080824729047980932942098530933925490688955032602177194142964673243930495299141539336214821786650939106708739356607439744934882303597526981449174227289060062892769713637823148922765424468535074475323732366995723363578916630988863261649456336783842289724451257955165599213885777183573894425303109100041100366646663779307969850706431918622344885512886888826115590288244676408924291022459478325197965240464153919955710101132742245650810367018435155435536199901939222018290145106837636136766921546147747692040029891900011828135838502403649749867198987964719641630533327476049031974111466148822830945894021949038675918571616733673725219865873618934731858603654627397895440732660442209440893841441012693558458069744108551874366627036755964307176212687317512935913192366658681331849882079336596235074543198217220175405425978291563961680553251192804049335228971997052564270097072946527284220319263896791374860108169993077925014225232520480491736219922444838139568413294970441861468912298516574499015283275206175268656218388020002011670412788667075248025702215863453269811769942380578027859385924432735315062602624508173676918618345684272151779513324238225231238277441907527115936624251630138035433863323353279254685632136381750758068172979780076424753121370042239722699900979692730704611753456546500192950805148641420570280679383112954699957025251465038466051159170201165055184842416778826965280191342936526264275577069410293035327327961876665168566206129473544486938503213454611843143785454822946731328284631752229832443238493086500242797197940090112450971587607514015458221794366390545228466236046432465333039124322613723504717716123623411582536253200501976296416847934710919089577386800146147523648417287982305322028000850214910243030855748850896481171211072147693752899300096258051496727468705784764237050861297074883372019245860670385732177765216981086952454885692295011889799699993201693909682354542852434218362855170140909979444628555297683238892465135064625546701237004180112203547100907969088563218444593458307482030690794392426089269389228302661392385912053326314598529156559455831786964610170136160985466169840933369741075510086068044626711518681371179453481277348720382742381750119194868165630028931061001413403918366285070173850934871150893952520695904279072352119589434111916486916544843683568731152653035885328924172006665377937968002272557653010053302217933042679574632331380154427478492412118106498895514401177289151885826893223339458161187503772025184933495136514824135325865587265995945218838217242108325381937117514807353627489339288193528237876418264301936914390622110471781348863787055671753909159768289997348127732872976986029235057162647194589943849595399253039405896518926036907348372591480791499817803246321746399882284364473495896516825768631379877342629663508331659110897441313558238526042918375341933362248269166075241262409403076504110187248664151282014713804512418338323671375662601123479327512100993677385577939277527626969270001696212596965852640731753196377034763667347808281369467473621255000156435073170860378687647538249542643503267279117592948178348549486225180192572582879134144533710874696669780657914290163128998303139709723619615184197527402992286817149608802596318523409958536535998586495101565547327292849527207742217036376909997029913770665871897998452933408761740156165280760074031822567794416299513876057598136093304441833850957706038523398539513438696977548601393100858921443286780865819052303389547819462676158883220183939621105745898392378468864864613364180861323668044558456346289232178820768356339789889891741300061575796759370198756675933296431998425217966345030482745098399666260942203598655339792373225943903050882488694540112142756760318461872181121695453099847878048706933614910564692213044372769166651059631855612178281470735405324831478709531443999079337846682063210590987197227362594742742560287038565360479511086562964992825388261170619187824534373129511365786098974599149365635976294760705463159630071204323285514463237565041123528604338962359429201732467302112255459686131143748518927787459985355836241371241053561511103481665473030879988421017024931292581894209808625361750207471328487457080442897784662484503039448402180606114192973210865357100593260223522658915709804993417674173542243293849120658375567488853510549987978531133012451297713756823120105362531830824727482510965103901418774557914760362106406843821902901341768351686227412104902184567863977081406080791421689110634096462201057917169560488996973198865844741072986192427728395482912955170802789878765235315100943285761423599159166547421530390173589239255426450259503540944633353903867312765702258870685105138716073648247811521852790016441786894526549991080401512403745418804844935287623898724401383886928499205193243542104482649448132763658751448439982789799054180028594450066729591518343572382920435524916242044351922118071869949495574898821774582013276748524904742234996010513662331141042508109486326509905956571747403887466086357556238895276750034838894470330678862246764122961971124746120418232738146965704975436162324963531201546254726453319156659852919435441478917576318882627980658175999737241348340160357878782523045840139036410033680245441942505464271189467859230219989802911462134419474975809027778265327536078292538104334407660952106356012534988649366597426151840851752181263687428846175473503395807209090801674803148557697212908125466598478820562085327414488908948113100646427741509152789931980551269084534371159769009867974502719214646462023316581088250519505869171986544000431660224177898610931552243955059264819772844227969236597826922646989297078496470047374847348362284131160795038183197540557823987084948903827773257432668347505610654491180433529292433497080219759679517173970837997017610729678134999864725569302034604065992672944806039749382278135129543529329523030511525750871773681721296993726171681931001176055416010642304500625427990490704169892304166823350359026532756969779882872814567108223795751768863215210339110683336262115923721844652050311463977921259284277098031520898464489276946303206185673549962723113978176889855743865708055684275423956636676079711759115738378541954613863026101385750469394207269470379549483687411984856180803882271993227716414554449346775757288360650469984694464365263761616548371252710251925957170966850727212584663043855375305480076431441703477736074643629391420930570087195256343620483319483958943520330602966087841802196600862772810997531467470912064585526139882856986592637009732655442897789009016927405570750587736341976738224284619528681399010902803307197319598973270960243976929763983030653520501407484940171565230807804877979707110937816957730502006747614172381396415646205754164541176775371461135778143609566988115714854544663003158473254689172800235370472629251663130999994879277744106511735567215975811241511387158097457148062976445217460573921550873431428553133970074730437356496169822444472766328738201929852928125503175329150300224684487571273977993838332493024805097426506627324331578777263122475570169102949552727849510584152716700602910424512393317024008914051116695041370843261607439938290030604484864816611571854409705563173553842352320589122822943928690917655742901294033505397157951134542487819602891803476648266787984075197117063900904742455578213302996249287950769352402065617741106244446659142035251007473019541430937022021086474972913921278409917570755464087994490831593998113826238464891157245779669042168266096606310291002572719140361072250398108109412661621634739826400331797403762186557290105637904573579094563532479048981821543431305663507173786427631942513716769140627925654508007287663477218612995790039915958222895562830338332276715219806914478477050492528708679449753402351175845856242589122854432979157427692840508854884812351713193550262759766824479386734434725792444836850765126096648584240779976662581475276944879798655894251718104403242540747848356058094460589829786423029667528228840998825617376082109389376361759252674700391257519520252888185763610788238218990383264356043174127753695115690487882890124310247141448346305600039325058167412823144271311057766111092006696460832539835091122877709152472137751379236296631811856686884548801228299873302863658988368597316752445076534576664315755703966340635719855683096514236037603605529890482014412814664809834596120230538933791777836870166687105549452643188027499721474634377652969744199530043427658438230177436954471591824104160455124774954914673121518493736624800962353148744381323979240356079702052017324081233416133302161276069107703604141629623806079635196331166010896072116332994795595012674016751533866266756397099516911373104325908046231095037535106546475549700101942038388321019183272177511188934112497455257663908258590711871856207494378418547650101662559837975451692142459357345173166085662407179406395518456226453272439904964329497374524045680961164799128302663081086337862225407277274022759439554666697071560287603800266013465148889594106878682832636803644525077564362390909349651600086638238559565659861982425452811566207166676229120036387552771063643323380201668967768659492294926083889816274764348874347212013795782813561811150887801109418338105602228306500053202852861937037587226893417817842731652049500106390334518554247886060194878285279682259427334143279337769551753613168177679846843546388326233753513367103882395472829424896655233637961624972939921607495630252014671927805744932966139632186147317656527023842731754671763528686028984708805880730546863317305272944406590724600364528091702754755989589331491518995142474797874985998758588622227543275362050297018543825378555434829804389745953652449297149032948732973410861191584322625989017982823535696567317713651927454958387232790135831330203782324525502034448377474017539342686962426822052699289250775825901625696490148989952638713347671882118401263883802943901847253521787145465525226226546445232885343841625497759598802591924973972998590162679671939789659898851577280380300613471805205219286564620784143527803142642623934445791172887850327333847862280908204728655870428830195791706659807098768913042335586639850130633025192685559194423741731314729880483697406507090255977333539923877028826888855463729919414297126948600155087654051152374468351116004836484377020552806462777559301069494867214118227336219905838409450093961433099752143221986433200706074828880918137795511049994222858758187232949735250789966046352465088066436111237173840669289867993583765029318453218640647739076041384982568299814688061236226515968278160877497836033467648861951414593142651594004371742406317627420498109991260588457761589960576688620325476044247182108280051495641772343897418644852247979219003679944116566264315247064467530089865783321571911163184516755737344447565399245802219359061406571273832865860562213506553799276141376054569898477021368067792044988938988556594575509140596075136933242087084250000744763768676068758831828084156444361680774742351621666767363966608890298564355572440134996314338673235872562333414929490784217767467907595917979831865384400367414412345419115526614436714212857795403954914617343264959340979276767734818917880880660422578171592848142184151802095710917533780207511506012240206014451860043772643405195883148663008676522309543501095984431235911664050106745657363074837819949727430378840708683586862872299180909416595904409003934212311771968950422037734961365931320155100171708976281610256772577000012863508571802777319361522214694271449272221909828287270058411735845044510964791640590026724836585302920763608351004765243341384853003713706651914108600476303558668891556569467001198760237197922960328018447410593044160722929173976253780144883762704176398952638699635482215237820878170318836291543955737747023130423865214307324829036584696571341323255494171813508759393377632086916297444920227554522110690514045901366348289257040317975063735598960588611701658058710813174138885890116142086568132233112024360943474838817364434718850574457155464907137158332484924077226962376451039837541241971616906556153328248403915520348393845075668959192749844655337687934702320491863948303756449939826121317122159917472136337364817684077161441473684000319543719533732665986313478573486910304519639499966770335851752054340461820081590486373063301739654062650261990830708458710510234905552266211362387585490857749084426627474751526279351462550566663769433926415146306933064348471603191581565570430579123367614323233009419202821591192995784516739469878804572560579173504479813040059254573866524970350444794544775259592248139326625749580727050686035109014791397543119297264979261746429625172777606108278773570737513822203668001049986912123661045972167092221697510707902961935288934479219920135961804071466071298592139501496912629650994833225415459419948844786317580917773619595362824082883311240735156485046439105316507299361447797096091329785484706962575016859443299849271570830960739441049597031022233745368568254703450481653021562836370853818863338841660691433058945143174123788287193803221044143550670095007656699051504011599010895927127648371732653420865743847285547721835592836811367227225542594738777191036800967064942538125685083305183009381925074486923158329037343924730264384191619432076792957274227900591913108495963247177966028117890124135968191478422818725664767772125336296806649700090439173672678540967804847148681717206844596487560603588217043644322971039210481666061003322433224324305704514071854199443763755266841639683632674648856484995736248610402432846098473336074217836228365335101844255572777590775863607282123015301130899369863236520834876352534623556886309529117561693240718401838295070652404017203422467384932536895121204649518479073122891613343698789565173989318751129670862465915260938868670126014943715913346779111306184966005934408899910916198837808373805120718857079102593077438161646818446074271653832234350494267088858598499300278257867074456303218532336972341002522769329505968640749213520788186122731908086830891405137975327598775644741256720138651891681386398128049940193566708830049524029340823168599763107926415574548588130810857581400082579404111327977755974117339124122521134359140449792193587158902884993248186929113421574625100797358002073323112283581915776270664054882748801938666234330425996029005183750902907591476805009250205888543815629105586855273464794999309246944857596536529267498781592449172323829095940717909331121410789142439632279671316759833453853594714888721244628881551989610282193535308339398648885587634926373109438455661290161398770517450273868700531673921542671827443954384839801554026991509395229763805183255874607749627935987134382759238055349111684683981295958282030106502999108021128250438042579153418396043894115643411545886471377677902982874223651457569113877002323300174632143060113541793204881120116749866889456525913855821103896315415747805933661664697569631284812437258120491840252596933401062708183666386658051860426568594961582685973723616726537517209051714479620006126891789009676375969966489037979611233368208861627890670712623470080360933936026704615412811589110551592216857301161973022246497952638556868385861514544984986216293456064858845432056348666728132921503944996380049259387383119850493469116827907270645230621898682927263159356110643268143581507136484926287440343918858795271530834155595510228533615709820706190744594621307980816896984708925746321205602097785229177236136062489502396880695465088295542480909362666651723041758725024379415097699851896472415637580549486457480227757059918090152442508339363444847095693892165398923288932109220267087575444534975250123428359788443362258444924469088439777601156700826753718883764541274255687823015190275242074346800715785453742589520021499612901604239764225884317685052518110076644957755761599151382275075814922689784713665101160363691418767212277635024910181375401473989628922746635716321292681529157753098772580277388769969074075520951142906621194816625257039809634408540755508194544372871056530281387090999337398135405174920360871126411405700282676814583366699418766502486127012684382823379009806990063363694739849364348641542657202901962982105665258336323405477439102074161531403650658583910617487964180883422387705504667465254071687228382556643035904464519216078071602143828658976216530444420931129330937905147286766104313845033998661795890205737273045742815088134978453368067106320742627517150021746907095979052736302478016365246816595826908966130130286165062229127996324597806926127373308246045789101486629718046220900907563927435101604440784730754231225992063170934444778887584921402547965658965127581728494572239536607024376218991225101896197289529010553538981945349601813043958823360426337726278739244947248227532999749337726059931756219954200142029047140358940650098647238639360725106213637031299555785901676564475811732823756474508400643095764995897284236127876799648613823324144134287513020614674302720461514097299711953487083078951653499577578103555596659867485453690626422324942704202277516733543294263808049476553951253572904619187078996556199593335493560508860194142304435343822397733296300447852843488801434920381529829110410494998475589658449552481078033233528188339458377599898811638241732939018556388318293710448612804579154753401581609067140924287820072578062256407966171693698547534054142098204675576277380572953781037393237508729727056039186942132472369702261913963177901710434988209374372103988768459503010131103622986592146374020878982385350206311055231799726840362761939827489994036976123637050174589047145617752941778401965836711835735672549532800102174302508173807314464997848327121454266845690294534860365041062672860206943876660820030416061166682982787148425508477487291970703583175668754983547338484582572550859255606463801994411381234901562278128961506865207210577924155111684497816028194248960533754057016615997064229535167471450356862185580512970895660349864360447500030322230130856224218803591433911108354266613488079325803279698704220821332605782085670057589551222845257209475301787897095104913000180733019339994920144703734965316573748100577939051793638263155027929753618901442947589312372320935439835842526401723225858010827538344490437159524028926085358008029550029841106518760469096125809271561154091936257996349912008258239565057316238142783286817385268587002181991828735096580566474600722663171096965151227269707712816606891788058514052888053091528295595609053849232375652414789155357694652591167326776413483356398251683616695721429583327140223383949075821209154541072476509445971714492413058974735449978552119762387915325880644350408987553049252788002837277394704087789191606178063431515059167160824145153048497271254157687866176392796688454608191384556270562798172868378258657427588002882546363534983797984638411471210944595359925256366364489846419693457759639390382514157826530520868453809268749484779021590487450747153545393632717172627536400784403723835822016309723136938922846529544447615724475772945316031869291425243869688964023880066074711373592939396487370478240414245326500683833784866290540149194868166024183006522572821047869410878484140836404744306568748173445115909326162199132674924979631616026536476454094038535892342570688870695961367932000661090462840565543282418010157928148004740825855364958493769404664914400982618921931187892319602346747394539545284418109884992310355818642748731942230570651364521661504456267672072137933774273537510900194976568331862447491357364674896999038404374033774742209046678245362197565118043913053194173472819625079144017304014392278096642458626496118914007103607904177528817677172610169907913067076284678317411316606383087532537775185126904251571200148970525689918711575552519504684471501622082425540223049293190133667964282406889410252677438524096697387393270865395720637601801595656686368400162741411738514332426127106163987231099395966021791465371761135950640679266827632025511566183004111381772397378262664011490962969198126430718505125524442262693528613983828756117188202754764830312225774008557172402714936105389484361817113629417840852351416996925672682680649287576422090139347997433675805654285596633791651152078862829933966934278949631880723743459109775378278444916223758230046130523466912041552031403126220693344374560093939574591126414960983315127962749987864334004741643927974046907650778543035084806340500969210744100289107828278203622833439406264859690079490736372532719919082656184237371481344917241606216357969447580224213096417691578206162657182605888390001134638566153742817530594714571938651323759212035329355422085897201346095929612569689452525293807083223732974200274967114410260845875557312913891569207347481835325286627078808691133351172593934312130337903361127847998684720201762196205403202856543228067918532746751975938295174636367214614984388234868604017896883339676079914413480707869075856373463694882804137175834221673805308849467500707270689662629232658088299079042233492742637054663388378050644895734979251489537980967235609543998931295517057224343128897365676785175535704176633070859307750490892081644307980591985040946881908650376321572052513878605788415039774418370453764926476480345627765932770082189550111248701424366350760381217753888533607083123784805971398661742023921957993546948205977820899694642646024401390903129233174640279185191852244925857984750852151438734645756389525684672542559988679993902769975573958794379538103193722419970700294754524144025853582880650066010657543729367385802102369976849403127668466476180010408845789283788262870875009066212254892639593852191352317051375666737172396621090945174007824632087907168092016668587984573629958217399716896004694660178603834390669247248891589012325852805562532378164760713257039213474989535098294911391219870819921136322280175635311368164657103488737201975030291139034395986666553958021381144688919985813954854904834376202987354160294763295035283567879322824441878826837093397764114768257485181037281376011058228143064411846553258886506180476574491135935291579703642033519632166738493926732438762512936711669221656347341788696078783173133102177663795471335508775026026572110651188869150775710940721239935565378910933156010292053419135908642365815460632697891518023689753262076851562844488861914126633972613692963469108794620345604942719562270795889031400205020976568907531388802545048140873432964997400057130403200656971160512900866895943328966811734111950242678254556837865290900081240995090693600085788184293424842647989337367327879495304206603838098813736208787316192980600022188700190932493955863121751617081120694248421449258762018878704683344701719202174174126066074934221028288747868367732769260970431285416076502828179013151992698415002602514089050144940111765892365998271137257214296165926647955434869676870117449084227026371999607500518090375070285191038422689141663959079072813848125643086346487097514631450816391496688172966939488317900947311719192443502389362304654072240832828741812727293021437615894006905456826205987245115506167429538490401881037262000706905526556563252632335937479162909687787865093058692328923280255457966962059021415387963081486683010283350635329702149260420685707448760411329982384901435469270384489672178009641014893938021446460413479675749123750468597068049328091586156474364161608298657611821638324800184636875134088080656340648846506864104595419801147414166067102961814680945365292137986017166165477406381136262019827543666935249777631989126688700108465741237659509899177444904110148609270757300314526571676516876306923569392708082113994220927044451472181305035956800236916121084521123798561499033471293005699918210376085390048741268471170464170874352279990819509846642736565230711447714401967084826539218443521445466474448080725483135685676858655880410573669301414705745509306874797050605383189314734596164082079747993696591922811347020720672135862898645998775605886617948300678579729130809296041142087185384982836604100348104707289951988924492766098198312982051143728811400362076043759928287512548042161200390652145656897312863051639983946702958705653228217674212884703339352507632476549396189483544052769191445315763439994340081754995687035366061490374501117974101834515084331924317126002098581079810938244210753420592019361640616979607628114279247764796726543913513502252692463483607825912582273676925518888011347758055226948288619309994376678371531192689321875455779125797703029053402889095012297046058549118652755305592167430622039055864420001694596391658834448095023110992220932186698335116309734159154761314552055073338570255416079280783664544841338287940534295624680014238354547762439875207866278871536809776439771693581224686886131648274451876900373181546735347940914306885101530439574285631247261356524813459931996570588125042751288858067505268693022758362175514657060506615699355028570700909293814957603365144803968293093738618179053023089540840307089913893568646421557509332605208487088665789613153006422511973962901514917608415305261310638380800998767726292647624157382892217180427390807866799519204873388905953776626331099433947346731507145447938975246947254098155403009333039952809087350338532120166419881982551933736126091473443040195468869090738915272917012332676083949657648935114505322373850854903433801539238216589186222366274770220269912486259721480072042197854526197764306904310135727638969748941741389868037784064068346009007202753660175596170670726187754209484890803546429214012979945058809811826374990325024844613901112905593798519620001770180743558858871439460261541710005326043923000184678477231882506988765122296299121641556969362360824444459833119743765591754282206276539963724071402630766784939729845125331455055418250448848039262087691851310026197532786544502201422018208397344689973933556347972473579616787721754708883537582406156143236412423190701939827917413782123292889435095879015264921603821421752255216027809009187760769716453962755208264373069369731074727702434436601551062674905552733804641974369028318731547931861903713420171388764064261403809879023075286374012081408845148939587651349307449832099692750681938358302545655857696732609948426108095423640446712121088865614802963435003588021300226763994671101784067050116564065642018661754459163831121185027660287165185131914682236630972912438078140169611350090906522432107308163582768437276366181256666279074924004795017032386513362047474381245240141226961670131296854027671782128451049358919818518779402530305794053651182302031367368611872991881133071819766405058347854150280944556827746128965957005193812590501319804920288198676409602534878619034116397865287353405598546247112411508395619018710286347492165429657068031785637844062825166229833568907546073617793460986037037489755808311787322084928322692398604028300388452072899099197566275131940269195673464211630415804119729737046925618070396395609335376013228775510063836199842077703987388164821293729692179013760383695743377247687845765808737325528937267941760644010975185705685329186867422111158590936687512276322689346045392731918706366425353373599250614863030651851592654234420156552887823856319853108436834987353682275133609625846734885682741049443613795924076802170069892978446211953730309656658072837696005039100720336695726150669397213603173086410165414658764190381089073592067497523541975630901818129020298768433479267288235167579395889163052404583627077572380087395710502968468149850183489724625016804329211145102087776428821891252085774814578476430246675015420415698879099883123276547989176872732310348648402868466699638879108956175179447534151325512418828359764244278528698120112165721720899542560612426387167607871651370304768970638667301772224569907886348416124477221758535135741626056821026395798415045326316269417084619409113875045845989010386525138277862422015620959525985497757141100942555593176618724111736373998520374793831161804003269181000421187566880531026688490400031953640896147848773200583584065547959960403024782373328376372600069400089972287362826299156068224545300214656146118970981363029575654937484792805875883921775425550986623907723177638918393338505595479865480180466389615740614996731225260621314220354548623752405555310316867090545829369107381779891285499801866586540933137276005388777582292925385920381863758151532836911928786447197091416410953067168766967620634440408347183862834970390922917361133178972713680173225081819789853313777501552216243496894925138006296734432409837278208078829560823747319875212600678252821196698728136454957189939494861658790552496840086144062189008441137191487063454506296070566559080537446296124542223639240505745040005146996264228444838284345757168728661823856722096136035971304740209688100961077269167516651544362917245507665581162098836069433528966229703921731959016424019683024537541045012787031246766476432321118479454621709456201501509486159661940566522810760640994965799999317644449303343162312170007652772895181808319440351616990923653971901705667587509582021933058826106467428844742170835424105135617134485382136994621668872081754472729543206682807222788419078697151161213271703157302888111808486638935348831340339980603220500375854415889196793828966911734380498399693399249615558312795804455949423170287445225283577292425510650603193125172407277904274628139181229532395012919828644392578806473030121809492010397789871019430138154361844646606183191898859141067861776413201631137004226948783105513176401218111253401200790600297711510287811804056948328172107633024378397334933303713284054347658943993528307566745454777890237758066729733350932676011383086434387342804251710774764117617715584679799597170143105095161106017196050319420226303288324662105429348342771176961897825062444550185110106543688966233743598968269138759640289836188099242658010625767081650349443890065691864007554459329378730861429334214865226709432850853925441899134621716518237837917585950686133090330625198307009961382192926613170523563308099108281133680277407453865636109661073787544310504794461045891358633650944451254158426355943287190503932449827030928810840802762577484554793635098516646430726406824851313992308955604555325016404951059096370327988670427358254070300132415392876118757765827518973714663323973623483210009200876372660535522794713489303759344860331717352509024470157271130781544513624701448839036454618365802071647718110748514284886196902581043221998623182646970347397180150267771617642236236996320044815483133515300115247827231158617717162259472656103835607596656240255997608217343471499682417618544833290170765099490442095417461531689666878308907712190330057670261160776269760711867586640703303224305556501765362116272789451993242942255504598941700401767407839870375736303581300350735123470441040749217814883034767988669550968468984061336435059146638160987277978053050310012137157635195623271877204255558274950517300578260588562002967087410086057275165662152054136530288296694318471802365882703237349073340603899376825787769835859022687677535962462306018024086098588955298657452828668709806917478513523034127582916230938024771033292198193629730711870453847797100448394441543892296005145948265046999057966353377902569432702868446980285692834197134431751315060209112047462126842309426073334961895127759488623949923153904714466801643720878969332000203127049299156509759480388525934413575075495761901032348980026347546532266014183829199910508398177271324986200740121525386912244772027140333551177662776591447140626045269411656836217757305260787628935997226134927337800606225489538013446772419467886830220190173892924287534977840296098431724685812950824368618871242228356648246878920881512268775807021747035831340796365188193972200422976928943030425103017143249913250553229983137147445823746514743926805762422519502080263175438219217714132316395071865386057986817001055311041357968548006529994851240564235888556369537145541306553737018569844493156658811459413832928280787112946688599385025843594074184035361611622418772437422725619829410645197053577784443024459581297154755131600214483879619541145284349208928415206322402067342146872320145291459624205880875655983554614643284307769680577523960129894922224918461107784508257754395899845400119245800191554872874500847924767862995991874343900438079984574581304640223535781117128655707726350170424080421639369809984921925022718999202435305355079543397219535244672460021681992885849620733511532964840523117590494786013623863738808783607408757198924890753699169487140607292202145843563192611748318239515839913437075274036100695079383277760842099217504261217088360046237394297758600017918038185116850170547965053658168264450514562204481765377780102850286033457669930110518938804606662192024076233991587129463376694819548797107256342302127980860344653663091373590780129464782256792140824041369962617233951970471781251510883689601059239109370630434052065714121773782075161247724793390323888548442896656829342168119708769892145001002635522268580455761734372079863613963808476822017902209906520733351096289209469599335241497488508997566985527562462417849113268813893009793053789278211156169544258551263443353475503635424877834729258142629853827825615589102327216079083707150359320103583993606818190949552974247042502496299379074599180065976537501408320316094315012876730911468040111255861588358663232292346217847443542860822000155962248969966555923976256987047845474422059468068994410180922398265045959573962956881626342320957982019204236863155655443588507412273150311380905854423972801207547190359321122355142603553612355948542200781756666356672001338176208856431480077320467000685068923846139520740971967465095259760579490348611338974670003512743209455476508589907559194505964742209528655402752656502995534394090513532119188977931366825969206003757672625088452633845073254804951121859187132631060461454998066601399657009586866643864894343909589486488754283406252238309241520282796919542179298136626379984957494930925141370928489042045083204690134382342649182549482757747811101252141117939237553076265608085568127297755254648623231733849633230659276466937988710616377005927414281091797970631089898918199556851168350080749816844118886472912839882861990069109442326189673251562708857024450146429824716619377209931999013698805396859859542991380237483534423632651219539739798228329121974439777348267450310395980921812812990544533027038784554698858537979851889536741487723147834031456190084899561438784330702337956237449171304253063360425983263308358141671223593675163383101702245394696053272567176751065740933756291381542747265256456562942238283248019542687319601119093860600448986493200207969157205233095417346042512074041628398320339190057724171563626784335852657735249503893097934373363160970029909652986948816963831628634717586847994314209686029030861590167028093326163804249181361094147656980110784499492949139410319284539910799024128052864838770328375977080891055826698916428364384453978098154138606592648465566340822570648691066972155687447024126019171116563544947386988516716515563954142562773843885186668851537940470975193807935203636761237666547038771765282574386362216233843957980324883156463113316684099124237039586876506522867551480273203604139445010797035944655668520401329520602104227450138841916413554361677906021206431167663748754187422275578188735287474575425437991373642502479383500827139278302382269084896661700869861121371940706118617555610266741543068649090028875801216522279875565042866271392701332465308653635513282806953218489318006761537046017176155426052493026839292465027913980814135695574564361653188586312149324343293375023378938378623462580518760781635187131501286514155210173739879274692988272599299383331067500398536623239367365968173000110556573212311768019670046519885071644468578359528205186952251107844646727558840156190918008559372566970965608664469270316524512396766393987398438614755699473590687288860019272450179076167147110445699017730795578587882071235011242193874800213558583533630218374461570798877704444620843986828568572674616623792575112146284240905207042864837854487199560962191393593200816919571719262365081976341006565633396796461194238769967990972597836330716538833461154592626232004380089858850179921864662093830800141896409375963533371392994265834751468391742731594396089172826518982111028850839600506777564963819978936387843836790191843186087337487099927624099464214470672351526443986162082956172407434548783594106004599147840298468583950932090301944891654446294495601001814915801131289323109863103696054330659090016015045404454873259904610810748312451371404920077291851613923156487590346955703023912357597146233590796131691787745969470412431157027769149837952771815780467546792997642155933315639676857536591883236676914119538272757825928927281025058406209823815849714969993915804841074802535340051256785323591934866311320666637679676662937786727684816070881357294257838390880193028273442769129016742231285715499074432962042437405817887602925308289209890777034512668453139423149090126824433736590371212618733084626722228661832872999996417406789180926767203476522088801414563568594446580419183562689644962371031018849476249642040740633214598813679549224698974838198678984747421958531258975316090004414810453317233379952357637684879594919404002871330070918808395772273502040977491406489192478253073389455607915770526781013150068563260568890991122085493057473506724603033011613711843817932895055417279497309490895461251589759803956701965214914012319824181789798532495468876276893800423490671489092306456314938060472390801402127992315629648548259004240171772628333996926819454135337278412632117206803125597934751198229246970356712961840874359762622200502277792270275676505255354836443368011726877978269451541660799821052222084751432809781194017315166016086057388111635883734923852090884563045115391933402823971075334553616336555157501792299027070973631904445973993812686909267784160366245571399085126798177927507341379128416004394141141140500237083212112694841155471048517752381882640857209054602112259094471189017804649621528444041233671821464788155877225956203951703450620252463718644697805737936615420835667793901864522385940719938606552378073543297566483604597001649398184674890399042720540212779875122500418469059706416025813701960848211465838270925794117091533916076831528755656015804539017231926020735207261933917193566502488689641646941603623198632106424753475595185367903165911964923563403912002713679539436245235709357506518613439580589216925093099109513363588568745731469324957902290772098635272511440379238976501540290967844362984679048173952954432406034110434863635398132494272609703254991413733501968716550067753750636830621458234261298345953179222382692592029838266349987774615137400977627178042654595276925429171794247808212173968075621325716509094735685049412967204001014292119283446995575457165888825088341706498917587068841934574910739456752825071636275883346628338216678174199864786179939260920912312306456727396277710733526143854676085044496437446715162149016217340786037373166281286848627541505975302772348643400474128852221234141364307558399677035946092521268164168969726951670851618423016492030008962994224884512154682375269326695297615706806780837219219471418477798953612686350047183034495353914835164901417501124628784301295814778034983007666102411830318350524104605212140454786198823598925202629821380022134093896544389371065134976149547857392461678739350753917463681191379861724415818164615298004098943315444393451111425029098731727276357779412720300591500096776988006751681055010838606435371456950483071094906820931468692889045070822490772813493795513294515606338211976748268491466009243408306419195595268562520798201261699561430116863835010158646467411038660214662051207960530109900632907671967344598049168690463218559592182998070911189990566752188974731986808350020591097733699750968828521918013240383720853367687408942174007717182510886412197075732152095861219170172198354523011602636577446719507049219030187070314371663132111455831932933317226626272638470505095329042497839543659179176886623707020439572040327357789662574220442426772128011278024897252039483302385633565986469452685237699895477206428063022586824588656576124469919578555955153008545820130766343607782239085226560280848345856914572401966677708609407657768256155008445189144769391629036588279983551947365647922592176852977908687177747593458204991946803550720236467422197628378778308806715069057090980649370789970827078497631990907738314510961146947039580142611408757690268401018810865338963091731772348334086670438431563690996051163181437964893879185847218147142427265546361942516965245625218345202379141749066037274349279438630644257511537946681819817205277763170827949072463333468753171887067843082734332877594204421898380293235541033253028957511025009920983211665658572759587215835839983487625085843812676422596564138485002833262838020749088905383483447246168810649448530044977531996715425177933559500753675079014015097617555158517386013223826444691171670428704186947872715514693667923710368797842283116183900471954633165641714005711522754540119224574905999755912829189507974386278414542737107244363349878595385854918138093208783764044988962570288278238598981064811374290833307809735652403758033800938620732811207688990392586994460089258919105204724495547517229098081728977169030058807224002996597280381731671698920788466142161993826908037123490554242179966493515561952361057767830545442822775083849561414738489668360180643087780570514766008017576038857216732150360220038156883480222769629681542444754386963411084020195316585024995730104298573191057413873892396890703440055245487687198902898917446708225797824807521705912017444534363042495110439606330808432214513485890327578490269303075200538250349211296062231687262159405655613615322627953981636646099957972952899890680238361910500574431273535295896739881515923715839936474730929346940367192681185401792380729379889135284731782090628650327842580511372591124105798607593285855423016467772582321212394213803925120014205839316186548290559579558954218921305990254541550644860237640228268272830372692554721783966271755412317192244235162404240567785855127647518872396233153016031509327162349836825526132243766095317609135739453281653008148996898633001218130177558487925385347249829248495626188132170184072076430867971680135531076200660189922911285051177537405436568646354762282284876483611627111894894510758874033142256212631620381640979513320993444830625922593697626719514258716701562511597459450256044905413607388044179885804262006215272921968893945542536551013963289089594820306364130746450415975721992688829301909149102618581387822108467941981774976244781969816223200889378558940171687687056664156380401427736348875009402719351650722175334929312835644576434502942116555990370085603187246561943625012313785340201146611541298334338285831593149887139652201262147633516500129420454357062602441551496463783653353039711848200024009073691233103363382270235208288012128899222118935025760178606043519604562348233851988444470289823108524827622034429526728667669174630141963661118693536004328944266817309160298014184125865860114466495588845960608892754472629108994451140994126832546042016462801247339826210360893825796497939496472612389428349644243215082137408694790063049812055685954131235885921434390513990349070904493111631903286177783757837993935558142628332820224333204146339104705746886396412185085086588922269388134921567422081318376721614317462954854571859141854979551442008657038348409135343711350126302546045370918233975618739899948131884264474124489111406413316315152669461130061994240988310114768876765190752749343125670763760008339603196666122754457285913782290029903022548370425473665693105829016338730261385588226868667057264204227194693859903236879751564502184712480722474475957667580447248875735127685106224094974174913862307300439252132715450352810528673767187707798173023696478349122955117337041218585981246553165465387883486301884861260851486656304649313150224512566057377406484530120882194889297620412254887391737936215633192636852880029460167351972911752307782983806031624184174440000745919795649862662448320181850599921889825193126290545530666337583723749100174681837880319028429163261125967078345498675821213435794287112798903247433879567620959342676848356684629954768090534096668352122240233463444067643863795662978833864069926299105745500144291856656776974493508796997047654630289078109587030252934416596271468859262799397347271495354792010635583642735990046086482299764810990590697147996372225623424625287828364839397799830678086723057187659900359923822714605240696237782545014790000898720524808002847142401983210396720019560322359986332641311441302558317168332000335527536848267282157778551435229898061254988092940275294949125698001266692986779775259627030229630201086994482984968531025309567298902628993395079738730537433387504391806776252861540278787617421004628841158244537673166303410218569513604357052906089350680131631668593644853482732537391814098273547922546950732367567016521550439895171425528499575908706747544099906480749864990231146917669629319335094110787129199195519223396600535526728769713991865729785639290732365220398908024049451559391567768611653783352808496859307415813449914787873581559887780058250998318772710799979726105789975684644554337853317672835141092272049468964277341667566976491875107272815599871372812771027500214877107869227994994074585161594626348232199820625889923626705944494038964131893861591388527627752716756348446734341184226264500977994982620074114822801397188142401661035070760979375061194792573782842180535081600036613467534588305717698851835943348129817308555122820005972979550172276672069643536518314843175182295717027892894537083571699378430970813493809134386288041283437270626347835134901818051386892962404049523096920915007996239430209391724773264578082669784923856092789935399747608476509796927133174590525640845385851474561054805052067114167828447293353041572110575751248170564969534942499406990294085872381295077992386835355012141989227981435818295076745826980868750238290341477647326747326716978526176982705227192908626966146170023243472423212821326737239595626000137203524084340987105692177187272641811378480850146145579206259254111832891826910621830534611573881516005465571839301261470154019412738663913585366523435949996597514969768563014514871344687197264792290034793996401666818488454712653994729094507862478568424633151601158137938166014005919242262002217089386940107547863039688806762838501593635233049907140751222781966479639197688090071235864142535625463824541478695793696579077287839803750393933349385852388624178663282653591314135247887795919943225568838184278702471473661056599883201698418703062844391724724520852681727702388746248600187713796103014522450657316052267393019966027256230727106877644632452021321055396150558356060899030542395767274068575015703450042432707709269313768754931269701315762065564290405626343293893697486129955366817590518117862508911164056903094634122063192944543395697533195291625378619311106726947716884345931225324388468745346890831245904470624322723121332847793346078475687985173249537380729576218564899982122310187582845358206224906156664131388146362447015134805681434318532622685105449460056393338638985825906084317251204193336921625340716130468633272004323845686874909136692412714078074442867426740507738730001156933862992844235783994019301510735030203895214505288383203450707600033724313901866251541075683059623179274447831909298913798811664243148393808172830071425936917314423624496866631796076700000061023799722652755610678260157745493932286364292345842318177934944619337641568585521368539553712894326710972289532606798438721276459084612601229183636599752314713586471088762023198376589403291699852693125644934785837192781711036215637599697083267910818839728229094058294086422249107846587126039386800575664828300430972084487691038510246752498506013740277387484147857860695055773256049092336200146418432893029035003375827712539640651391498028782348117758064772935898171376049765469671989415127933561247922512413382145392657969812723962821978150207166838740213219388169789289016227627854041545166743810495150114290738120235313714057291593185876846242433652557661958644762240894973929500078789180541538970299539830780594008986624133342611119547053743851540328905846851344006657118739805288069942412184580405819870197753654660025894139205823660611382697228741941573950185267587656579594052319850371936468090874499437142789169097969728071077132789660107671206448215040241016822419043634728076336664621288229452945308056144947876732475606168640899439316242996867174300532356722503654023191858668990186591242055313325616538878754922089486062202994737896853516418219839393992672279174984695554974209671328374305964242929896378733197103697127597355487864152299861086559047006295079728971111113794499483044855372575547973030393873178101610968541757018510592743064356443676367990435521815362212885604249159189242082045551240449862620714699150689454428416028726380980529882313414670061548018888616653290630216473469519868088081325521773416324639321514802246582581275373207868111022310775908612367096974159487488844090172872178921514422953940454587026914513022985268285055349609521415670648223198127747282390565368345245225331912851621953107098157417285067996149865009672247010682111893166523144989371203672174040615944427075871964952293421137361155970157114695653288655336436160715475056714497677697880236286665333940518537666600049945522636718264044825217838253996636576336395320794286745756214488469652984264719146304272494819965218114885357192628136263560805992113703171670577955157670785856012369676355081944180599107164147828372918523254536720887057669342252431447813752061141386357645920052823862792855651760161872123149265151762445957699639932851913400465024377162812497685045932252819285237733916200140382455378253133759414833643593219381185910027767691323762990644712842876353669823110353311400482142802833519775981784711653210332984954925188203924012645090788379229745063108493025533749796893596956163332730445537631870410704639922864019738061194275490837886509545837070608045342763079773026669406226304090048906319249238614466540738612288674243956908923664856599582723669252485020021180096426234543613459456362725061014385311799136002202876882105285535089089169728263123121964405099187210602040669123723292749203453937376757398436761066076942067450518179346208934938665118552086639384841570258692663440909626599760154666599469526314077063322997395564941235708833543442499751749458098991658488552609141457465278098251202335739919155316058795876618178571629572108605094497450496384773313332234027029862077647118477262776832344609048774958624216374602161534218991222994184608705551757750872171282062998674580006907901573831957652221474671879835117235430438905269074113991856143338509355386534781309829617372682052863838036179516379525753123418322574800623369562552087562401612449796769750355290769828078884839682650470061550330788008672642781628437847028659865264435173018013722706766250318891389767410516664924704033611942766286492284664493713048094267354460378174219256200938822699496270194387064635678265746486211771009777950458032751374246680226613941058055943938106203096572449703869676749333900044534138698761128033911952240076661680120991914839152400260880974786805830594396406668654913268387836534753514032561312758634148976339059095425251233540729148331036508314837472701477834739015126155165973918632060777076963679613890868719190432037678491540876554573751568271110748421536172695481075185565073742188665221660559791076458384262497695384926901389649749769158131375025501169588764222177855208542025553160661032925895849033077105288747064264775581431696279950200927794870520729172317769321424698576769737179185231404057245203538702089327777414067217018927220040132551623873680942924240338935799784027917395467459225561596467226948771624343343171965275941063509582862149914254539886363464631788753202208031220532870294304659216237788360651726971120366536865933636321804222012836087177026925118648846607659189372081355980277011695612610910757108798539340904841960465823901600091811154984572395461986427502144200947417587524034420390064844338450134247691358676993651176884710444514640390172659692489257533379157468725348125409505207853377173925750880288729891715859538478633846659191614595759992022055206565399771455376054346412815370585840121328258891936170364892908956594447727346326314129470508928138526191026220829811143600675193971882694273541710590096320792192254889108095167334417520454715786268350795039049256063029046829414306859802870350149802232699383443502405085136808613859264952632385588496402100563177494576908939739313158404931392835169132219570390629819418687943380563119572562220362287083559110727032416533051444984204512906465739105660106260720002452874871261259994183958915733509665426935385274143264394878132735370866279552382269788799537650006498348715490042071427943841106733217941778985873726051304343511340828258153689188218292008928656610866316129490145154297071736001863636029051027671510166520203009202625146651962404968496650320397446278442672441907685177116919210655543834718522144612976605633745228330061032735349923146138676268002848707244422555373441496947599059431299673546331722030788108608797157755747706433575705414514626650451765445886746276781616553756516829938253538097395917033740169812668831065628807314404888215240200758043810578486477541608665744413982582693599005172415137580817922013174979514644365176597022716388518134971968870619791816613863281327378885572889036621004399849268813827642921536131479936685430979433252809155950032469584632233251952096395746177603272206343204546788947006725614530724064828323579637952373505899990730411284406023359854566806018584486697580756814518571639905515048819754467598481657966562644767804243286989699304216273249470455049947711494881841713661833488723614151207663543412274016764232483777018816588751767192531869463730653077323309776291678065293063729596875877129857584742345024795272470025964108212556789810272689622198868256434108027446729388045373134390397474632154496478389432539142225259789258999340741997168092443746376525184846384199608001076304935704265197079720642692691926699816403626092309854040139594565827728044764393502729480282503051358100587868860549955607982108181174041046271385981589576326857796310995642106353975309463301077041710511082183814665922961249807363421401740165885192850688198989188458223640167402147820282914374992956618014886978038436290225676147569932544060293582162877389072931457387133260308863869215400286086929929404219566393960220295725690780886622920774924848393307570588356707714227132472738481000593430447507316601485681410305889727484819031915701945190285215767648104911753817752293656401197087236721443796278663302805977699704907178094066466939967120578058462127269776752808065361335314852955264585457217665535714651894127864216422745487138973944329362952957946255907665242452174401879599579688889345361906430706641788070230231578242028577325963250795683918371733854902942868714272794290776228750533911365024832607126273243259601437533865493002538933355258017897705338674917712678798287205591263165168932268078214562105573757083582937310974359492540201679244382745110933895362533293653370408291931305689915361307817939011327917296292047211409596898459729293623681451555758050536379579997999661688318656805284687330091962066817686911948501765053124193226024946207711125134034922180782729931220504394202478146781392460607886403843175537792344946627457955215547900844656776493950174777320578614648983292555578990308421308932093696513069640523821524619235811591952570913201771864587996181168367731068239522710045428899779110810812126900071257172746719924602915818514049745239053606962750677848642596173477530208637835711532288838321655423823630590537044536570161049294855272679526314227136202125060981928109045630537984125336649872768127025393971948773273700270524351496175829755561863681418741087037564353205048633436178594599201267369154670920277163147409956692849047640367965336988037921901453559173939398597874337417597396402496948543324741747347094931101501520989775053683244433499632077007658742071015043882613129541322932791825320515359450936663940642176491856259678897860215454204640980714662083223452805600581813754702032160768070826550999641828356606383200306589117185181274352235983273096275329692905396075301633089224672381811829587977146001705901059162539022962810741680466486659052364910529269277855983367696513021746261361553877409814131259402830164034239950083725912650655784078501392618483747490208622479593082274899544311643503361594239795066059391789867199166065597976602413975632576460393285997670002199025485179408424894841102562936860416503455602380539397088050237217617354339569591922196906947099092874079332297724817744240466704615513355146903046395567375689351588141803438054433901514801477842429718051961963589082379365301541830069886765059571599497985036074772394050626860680942237493764173618189630373889288014657487752009060419835086230495192107667717830057910989631645215588829192729836852663937479586110447863154192576282658747730548411491372736017152165242811867097327821377883394405747847545690073637522591621658592437105897622122145199443640204518747137282518518899338049503842850724086591911927126892153085133177063620786714864370438275525579406778576615490312476940763247430844822422045732924839993907299740377479667257433665337486234122029887150600094003942263911946144609662120007055104379767196179784644581622363307224277523159225184906971495819303687385714250265927200564520977496331880163371691055865688557902513797685258316775408690542940215854768162558116482810481160676492553237262191625860850765632144101728217171038149638531659752127637908055072792905888016351355806755020888379378596123537755311042074097432863629547562810006740196384453029374644936178339804731890347218264519219147062658557599440408551323223295992040730614645669458525413547367006518459089067963089986876602098478061374575895959957021712019401069104926417340838902571274236394087289165352988358704046015310974048280910740936153823764420640801362456535956932311990026507012893344552263007053889638995987636894257162927063201021708364212934481140482173159652590568820728818408725268082888820573363320315275964837110628926429829904252953384210983380189265665354363969998009712850175673994259112079112600565908212392908792035111254484210940926807627979242550548299870159142396987259918798166245824757831702544274345458261670669689255168266356992340801842300697096597731400110898993467712871437796971713113153880029279325394618416790252179580606022824605206964805532655101037011300678309265705729593829152650695785172315056449088956286877007798072662542027643899828942332006875772624533152311240608515253184962876215896103884702082935041422505304414754162558287510205185595276715014179083703835493437588461058667256565131895394128415947097772019531863910807760248506359205393939720812645903540315575484040642445118449381944211176071553074991643878633450257628101203967054381338024499722749021200332419533968826630729342269824599743474305887284455223245537411473888441393713728943520783397192314816355669220932720109417559652177777504160969528639921344753933184696433781043513847406475900572497218157596885296051647938460322143410288936148922560474390446090813646998196108686724304497868364066822779495237200013500856532191620237310846648842478716420378164627810002063635229558032222356609766609136482136198019680419581925429552199058597958318059516503787361089358509620694741214877263311203933633543354247962108650057280696311968056660433624863279101446074653835917789595252908741933560355364703825782179207697444613119370472413882151598979186579271720052739145022361822322658113704978487970685589381560317273596221858538926286880847786797339463543940276775195848861509305348573881493470733644221951925874963854076486448539659030092772415749902215889139821553744078501463558779453964396648073991424386118069911631885980047466726284832534816912522959104043814516128558463608400751971426178607761629436691567646749946199405457070993051809122108746627326232783929235039969832816969383326165104509426694298584775940353203721733535979602025492566236904397733055502653361084180018078566263931858205533275440157432366882965003874678878323081714951067121117560325983671803306978147196901023337325108264306990671400610425857406441965525223327354845001180179254707047172103500608891140035602620960168452916853051913446489451384046684759973490189002721925796851180174045993920449795038078284272481341957440137652652429724967131893424842302248881742807442659403820667818481021485534747035415934514759989092856270703344515526477625088081404294056887813668754884951623993492241310117144635874872432175924581073718948011083610391284089900140618632357229014259853077785807585430070059438389888796933006954014457559668966449183635996822804666061428646545509993392688664440015284939437595972702345391021600445332605687278796069217755209608087233373512200815798643402728363863003688764556540791301668274239456840735668655962272122643032139102734159539206141531967497867503666876695174742426690526905062826707706477245014814278053443224209610655042020229677487814948353635334274422006558525665370356357667691092730317217425716916817795908065492202193917068835789840098636358432017633806749901044471191305914003111870934872466799419493235394057597955930494939000958265033051448762599036061276413290094565916357652611592472986352033557272636838664165939621720092389110885639260945739620480907470305574718581916714978983992795281355530361003745845546404732049120192502415328277640045361861216302239376573855254462046611071651021391983329951625528350301483042992823456605231837355680786848144400394791417313350994960088075512413927509548336081771711165358125164419660138302453945579285053290756771146722515475783509776653116865105905213225895117747500672290930172653282079196199506609511675549435161938187832895149724473578759162957392246425561873535936660493156028933052625771891046428185235366188724782222110281266165149373547774534177009373846365115087460023508039811129781340119944977925589610058015077671471718184015744011695642320904652271186304396389158071084917844319584714758793128187840523201322917548352324790536689314483432925784835632451127316111008995463743028354065101079929464590941377040845797259083183333664003621826837419580819083262123751585877491202055235233800300824902558712783014496795320551487011394364667377507396472851685796590048662078117292602618576200502397614213668674937475675898331621290519427313448934467772427923143381810763675371227904344842213447127090895311583269478897481757577789328737399410127903291204043664553626433895784697163960947966902769637234409587948593677404368136833351965967442449309227761484300205046562351346055527069035368240765501495768579095879465292847344456893751122449699505361261292942804763346975650390280816267817168489419606618885176647585563416654861333064259224851254202813164222988390459603417036730429263020584780400851010733127423166590022826057542252577456417778132106114327462996902562332792859151252144260012971466595321730745153729287998672457680960906627220883411633241020907240242433144785173658304229478532996049038809343398841575849832217146664134138180700194555263880840155449533338232291486456386633438918549550631266143280487394943889639534466754936020023542511881745013058319638484968370407166202389240598138793516532030443335762374641335771468670503591650172070944243090358039705482084863246839443943653062029204090245547087992166460841242933304372689901284377596165639345912373954045238393185744362853132048298724865783159860610268108182610684325522615006889039047280528983329786674102963090434702643868603567212013406637488697371886287933647155741163809482903155835568402875818400054939371662591361832453289075305091862134891686448246724691932932115380943506799244306199372938393571622069374655750420358568669870095348440351743050645988807634422872497755210405883825404498899771697615463547511399232895566490319728704259232164435207144264664780662057561841001260313872433725739588149025653361237418266282117110837419403013968239375219060055622435812035590080418820201520956480413207791004640739018593365468174873049156012357556601628225701722163253578304249746892018869875984045049641146662947073031960514441300406971311863740168695122217140976720515359762870741512051303536462029578682210849209183088297919444987314386783308329526629843861315593564584821666887896001567032668464049683445801597022496408969284371680754511578264466895964728140073479646922944545020367147296578947014565463187156068418229847824630297759845019132204331856212689710177834362126282674224151487881657680137658977317406604074743758583207702043448580786739166238787460132511751611472658608818860380926933673534480354450921369391894038447379888864731441889085289718750564260964822489874885086256015119810784812491001443125831479063174569255244461532094011658370263549391053843800084600527705184035539290532515581057105131344379516198742459696912309996968864344733116628468746642094644655295982498028327969686434709313080148553531617870587564946332323300585625222921023377908662069797256234147930368320445777650050161390173522385173570768827800384635917440717512914493440210715287133958388136330616683133089036144279520728941595547516404094192787104526349209749038315310439686337850657414051473285578482593627497795996331313878236998854111595135005426950177918470701565296779501179400008129776921851783785035666066548999317004873262634825440858936480742387950075656048782766261195231434450548251955922271059168176316721897143706164167559661300390771536820899162455940182972225951767076771355799234898037510476991888286378980884705395484991887643324069649795981187903820971578228631715819710436854200256932211876703250712210440460492066458336870559749527249203709035291348761467046454344384911113236836860710802029088498104133926060851131275831525056240820082675524639923961337182406767049244151808191782958067503913901562035802410317342136634732214582569556192552178764239209806073787089112336670183859770634690928585857750123817636820975214614009480189822075089743763571930712685603240317357237469599353648112870598064052549160984370264549007511404160616835422130901645803811107616128846355038372630257820530486242375800582695345091861356658725726113493040776825214145596957772698173374771785245725650451804446099640849114465770345471463940003851201404411815904685597719263268342891926723985462912306011966629404126499071995051241442137410255159924342175212483125210949819724485311039498769357921088608717836859713125445171755247787662224929962001884159512348721555327735768677286022120353785965724912510618968030916562309426608945396303131460776015303543813032157874606558116624817088824743058170525805241162227614028263027769514201931344123777721480641166557572292517089555726813654667869723717685632629286280181928189958425430151308090853924885026014306404631064271383669476132222090139739090266189714748429672049034755387481663374764493334369624103348346060220986287217956222168607148597848423226619088057764644528394039645188258065236944133790028173547056650448552484389418801507992928017499486318433980594427855161945605597384646134446991766411837339518352884768058467129830085228006975745119068229187463350255743038119649397440127849315250417402354666349260788577752879515457132872298618974165479366463341990607513191189113052774633977111910200573916296365064221899537937841681212229207347463115489105749901565356869698819631119985197273639283829032612699181191260613521132218228870685128143363743322078603743969107666422432572991174423758269937417936401978997167367143698414536449302824232972618496280846756289601317511197768160087910435054961188738670014559338049980113151919175863581136571306098620842394296424841393667419247483435132546404434687105353837710504691178895399850249825371851955943883658698053430706575294167965296521982242837144482073899486183097014114844116581980130903445305977686186057867241060767152218227801777223078661154201019940210994331880231019636293326917494716310555971126675276833389435869203769019822102070236292429593583121630509029348284383813098635533621747971300446114104742806641851376535466006879483633776924583200550956581900298816455145705743263434050867390305361846399046764227220724749724953252109520747483073148471424793488766449413916022901810471550355997670464129460654113097488580210098313714747975648884333253234597256595494731203795919848360608920133993758329082159165915587936436347351522789931743822878414709711557791911681334161080087535743668187926972980100413052482077373720488761058061738415206694219433928653932211071841642059867055556911183754477756371600032812633433474507596856411310474519390258022887717654311967720980692316059161967884935849381389400540558492856334972029344094696145789178482351054458621615259904863421860641874462938076261791539207799528093945184631895008982970831769443382180558937335180688583510918187626242232275497195144176563149414731195309200114384553662960500002917292768177016671989568561064118700774536400054977795780712857018340428201539044047773281887151973603428855777114046668562222848817369756205340937344253540784744915208167167423377273162919333113129842029063862061533053767986961823408213400981025156904839546070706816087837891300418926970962154084675618869290752434197286717005406393442525562858308383473289395757182148048031252260380497840861617793135422221180642587217693261353225372729166491015100004671084255478613682025129599116039288198404962282562420027121250860868048976016566298638656122087289045745057490069293761530855600176952774147674971431807118183458095814278837145831273374221924902295047693538209905298056703781299949861199358432910552543731110745401586578855081671099769327017332999626957839633594613313060966870352523921456944186994569166403278393870894744618344105929599189067781898737423701290582954970161417635447197644945651164432790643917939668988232174530858207131733508579599801743483001493155877459567939360462292384530845320419900834017080945033820506457897117398899472773254907914438481902975791915372665736742953607283754868336778771771585619200254097648468775119880481044964587212766193978932586960821164148874666618259434193337450238618461475755528890008709159755905358495301270535394517677192632700995798625585234917094128555475762534496622643484212433212916571913296974186970835644784967192242839401199135093796801966816815991322882644990954095784553301088871132361261700336518885298076908356086112941718982116147347392974966922447319611281528168604578587527270208353477796732858440143078508467629640627751963989217987315040419247002014079275705234702038362077936512760441053410695540121992667904005841076375748046355059817836759036988209629881285931056740527661771718201624845940109452247041741580250381718610933684140400567963200460090951246084295386594531088357918173526854973711645952073398104372955798813031847823769424387066760542719428311492685182617610890771180984983625139049767492407316056216043254777103321309829964304540660240133287898969050410504888189932692886688390191539572391069300891853666143133626776029849607016534701784609714546161567777601929139648544736832332826478189440680716227702537986931137282403165454333308754258009919407529898509643576415963040783604162412572543117244504501862661374281080609051699404285747187917174964653463225588215612957410252904256304763474318577342761154776458089764627994365197306899528822772518407867548124805420732684519111254729252690651977786358000848403812934349813791779882617867263527912234516948907601552395296592428068749629914045505387190482072801858633615060263977389507241684707880385380070378895413048430239466983099637068849278680927556533204360249656662699942293642318191428992927545594386180808331086235388394456224305978530826478982769144623398135426495232921078820175975659566063593586626869821051814600660179112330555602350517624818218094599828328603716595664456408819593875400926223609319295438087253488046324370596880199931939841383254934418564302242022911067506334052223483874302962213024869365639534639319931526476067338133440490633225749270692310786285792882002133311255215485907212219642327896733097736760670663696924109328075095789235266592388527123089590657939804869152468282023956145789240797248341148008346688225571967796562088225756606381667423214893880647641115146154612031903111666675408965093775200085592373648010830959822071459646854269668226693379219448055938141269624487555388917015683080553537187337853292908618837035418325646370624619991198072254006618321523823958700339014241508356402425404665480114664270749015657979288950389350885128589706205061408877637845433078012919673427963677202279298389457880458969773778974085750243435104278736535399169588855182093059902934793982782456371836966868635159742392275006776434929971409799769509595878961719159584023837438795119668615106325311762500676575055093743223896708974986622508507094722645809949746607930783518640171923454376362000811373219651907559039659342420470916919113540133756846089791842175188158219540539450146990891168827061405878055077430754527093752186531900491786540221352395876189102585895566340520181527378644692131503498947435408145558204888292571023080880450183155109779685667444699930871597078611934346385494031713890954412590359173790577270309252983705677430990480024122720003777076754871834329204516095564613529893231581292938574096560312769713511850690881545651880284143594139791589400531881175703170172561395626446150641026679990332752735935989118129042772855925151789178232769992501317058564712633257961066850911318646508070602475912715030058010528397526935606540933759247262699680366409920296542792288493144803084458712038901561591842774776487354005747757573911902216478061982092662576983865318150322538659808725586812567149697441287728204444465661326033877992329782811921611670048793952008852644475649919991536102470171947895189148877968456243790409767042380639702932323906877539613636439648103378622446465956721212240707631717731595774822652840314130811829788910761214682437335344314856206812280707827862929303678846511772872637682914627798435362475749905392116102760662704934913300035440660354741062404649106711483305319204321387318595198142883160989984456073276568904137898663455720722337637621820864915279598055195154010171200380585658690877486101186305519565609171229256252426753786496004842608584694997661676632769136418047363839618385828869339580168994772131351469463609816778392844593974087808233763242145208620139651602742576426257347437364050684580599225425460029976088096047112215949794801831486700239498347460545444226973158507364934352509914114177871331887296390667525234471738534511180920344309993983551008599183398487535551080552622498772930142924056295715292839788944690859172538807894078562731687058341871659951037763478104071543842721342317208482707676353625771242525015134233772730080977963415832588997295406494963566174786989353503590403899248937573860474946156252687286470220471860598043186342483883352347576748951556751847680119289720951720597802784824393592736836412178431721799890282876115302025638026174978937969181408856848297859189352183644493854272340574290818858972039425642530151792758459083153090328574186473505534136544782618931627446426360081881928764561204200917902312590133623983782674647947346101687689335732586013324210244514987409918343620165158300734798475212616592285412092081566482611022529464182147433077405382160379256898207260384931255929499508763031896006367409612401187439201231926831640293996356563374171756700940571736178973471558998885270226471723144067823534080148651693743010512644471057455705401062037120552373895378397974299120395561604453614942116816732262590005556318551689203195391472959684147227478167115251693048007384300810013332283376761355175138095273920088312698448668849540349664163609650484248966197634639597672420790543033594445741145055533270309992760742349896284119984749175529279539637778982005722581751573610255811127734241940801652523877847238113143564725060993550237556540753884522356065261050984946380084895200430182706029380194583748705029210698088239206129643736023315822945788389935285558044206439625315622289131889179439031722821119323059417842022072171344379403475426463725477498874218509345051787720880076353850708328688059411213957644475934852759809608292684920304538338370525466959995749390818891401349470938853542925509863937510543655668708378277063610052361782197296213729845988022656554792393901278096213965342210942091153053751402618375051731598750442889582608268355582700465697701952199753978376440209802726847797635354578760839822579067527669944336048446673244687882162537873336758586460562051576921143774332312195132052265648980004644932275232443322989489742918705356570231556630139941668981794600252876525287044393705743977366591030131576928043685561818417121306870702826104565950132668148943027893818315329161544816674148188604417427428080891257162279897416188853417331083073945031777504885069336194135255321779934361820847114076180874880217435120376761165083939714868532483199780186978433874912124481167487266963018004594558857110633587090919243932598934229911812949650647482852295455643362393401119859516932526373663682378076994570849034883787548937024506193167139216870737032998577185532220463819848312540217874723627691644873646736072703155559301871094709802505659192256285934894394856024634191125376682507278148020374499086119183042643844438741278573968833993523278596479035914323671558339448937334410293929386825723904595740172227136935384048849920364905422496325343599229617413538946969108952756755442857419892655525095905239084174581382512554643668155948598919818646235301982477371742735811116397949205762241951515189130457836067514381128186873569860916631838918559939421552626305154368483077406368050294607782775396313200701803212782309316552396505763257019875061857496343987763527310105621762638002979118217111945244076920994457446367710401133263594303827457203454281092579368502323312304015403787594559385356406179903319982487419445969598619469796431431998907797037805540509223910929097102592843128904217407633924133602087552737028868545320505776823693751654827771195546899625641704371382656232472210242895933916632250865394233522802912657115708323205334360823147224365000372002067557721475653610345011028187117014981655621734427332988128078665677139032353063986778404505966801817374435443603388184244025903274828960956277076906197502072239067987702269195025006879002484690097104309285851647736088579287787001969996104845922508821271971631288014603987669938663003357825922188687340337485688768914226644362565079299727600936677994874617314632157707785150241115057496192173301424487945745872036657330719079319495758589751230475793599644389331259543085070901987646835750139337111788438121779787726000870441190943858999012196642756510981895786645855369841859459746831625563358971535046160452504903979957072875944545547832149549429068701449488101806456730145159056332040968807443917506225213466503724720466235257402050512943281343394173723079956258690883117197293250640707621063151203819104118485519340075997864488475746138282012918919356682328016358374160189137316740306008851131209831996259746076613484337412517646362503755738260731252943014236530617057225680451681827373281043260473879673851792795938484459681046957553555476362802290456949247065335613618646171172627314918128070291164161452032080054954410148357191175666234675831285329779156384397209315918954190026248420750301072735563325726310962800392536340199551739348426340863608910863214221883107435116099382168022282292461243232035073454906596370833302548914953099038179411118253362588799476351373302378255025687647132060639091248254272822027629230922471802101984696897606695666037220193598377673937255299448532435235190309104644516198286279810887158283642106498923975092488717793865665744240460282864565353898343397019799766283555541624749836409281573730539933087790530317948649684933615721882703102504548823509834777395592320710107656922319121997823720077734899696342825695178815754394072467984946062349165805415525438076353595962018152686081070895478394920856029881988173919766511612557248941673259587662181371973717243433690724576261309707795708970312974672723933366866801625566273781403620185620112535020912267026918619713174835522707039924949355266502907329642052023869881624585604036160442535527830959262055613186868206832879670862143795719750802682558481071311607873981765700895860489962552282372889894697908040595975200621140638601552593883375853470622426787593919030893641836972567502785155877030295283075707074328390394080179898223625087315029643045620620018601804133103600931610174860267284325379432124599778082839083408919468216704228065092077734798527865878328036299261374509515054160721669507769560083406663776582735667147375242875581514964493321162690357198944505070874938241862527792911373010494305088583388808565712627165983861404753543730309651246639435226272479006736097945619820477197474945191811597500508266478425525055861686630158724234581416241910558401726268042142365252916362162769721018129084791805487791435862514635383771784527419432360533145603677313003695176774830290211962668644964955908419796512029555507095736678160520355793351269780401877245863254578673255422546910024399238966003205599551744415108308426880735391193046785735431419779068903538124216572135329178355114750144882371155974246637746391998764001760280839991226700530309299455313779379580569486826733639040581162578980855826524217827929723226728182233698885214470108435136813942078728227020615959395490379043813039532401022409511343238074332198810773794382709248236833941316321158715393842684844845916459865602026271394092933523438191717249991899568839226295901422771956531732156041167703225133592108284987749265880599329372129494876455291348892745138880941712865051860781891764435048447593836420540837699315582205052243857078411630692110909436294212631398859669340424450155885323734595462958689745622540434588158524616164043882410262125216481907423962950179372730619529913882703252951679507576121132145566775402103336702563728270881861725950882142774246838027622107580297201998037897576503419233807792214907393724123856575173656562797848115262463886241849088809815988052527373224105632897913551274042084305449091016193718301690986636243261222419468835596028975723692829139882879675087614836040547285988526197854080127130796840015142188285049795819505889944020978072790271895057720410919633890473300788417846976200938866794560621523908580831190946160092494512567377959497755249804950234949253910975191828911728112383118261534107248710661588214971293226853762578374920579154706164536296953231549869909786468317005098290648233079988495546175075141844890862176419086588442323140582528803830264953507391871170262545347688368184782425544527033223639615638824787658321781839982713836377971922596177623034090809481186514875368771736807010757943946789155049792988108310697932435012729772170070397252638887015896690294777562846690256085403509385614421748186239757437009128093216816089625394536381574574818747139066905538617034252240624651311623582533027652900570495714182428333447693030413159304495881122424804791841212167582442109650573035476153874991620659503613984684911014390047493048222998494317976089972239574932698132068232343481450971034665842992649787212964426020577960889353402027193397462016320719694664446127083446393602131964336459040164267909270495489666678391579903082659258668472903874682816732561407381908485099604680674407921586740780744921289762116418721585004494394006491479906249198521945388799860520770799517595165546530394261785893218469880965370660705976258034246606146864067896893200053146556064215833750279107701653671953319368847891384545696235689721183576996681185091650476883728121164229154638971283041890241671478241162448347026883577061845685651792950770085513884941948081020432507821336562293024631182143140672157182615873236343943234967666357356031568448981486204852636133647705125086244390861489982041303778797009843889362862855711366116092076654128584453488484397042681051690454400738843824375669918941147896853742324386646272424532951013912466933972889361330613507323053133504619553483108345650125194803087962364285108981905878144273309883342333606610774335729568042394148932878066899581481898142102801072495820029437453605550353344472918131365984472364129174798836048102346354082773015734647030579531627661347969708466889822160519658855944039127355204901370600164828300439354033583021046810938098951989489914970890364412530382603490743676238336832647210491442826788616607982007325342333594410589602518940791163318122119604377663998012800798117242780555047179198441334391951868332773666059447485947205545635003492965449512643367589999890166618635813183124671284986333307701843127609092610704263795274219889377651862738729663535134630833945629299378153371995960398186913745351425522612112830688775110073488815067771307239702095185005516694474338381288201238695052930437007302279986958172926915813873377738715620162047427242063690622595673697835339480807639527788811296493329700173913020660364394993711703840221482215608198562006835153885912577594155396383496049592738099791703782583285274086831619284745589497601538464141001222931945530936729987257880256467042402947786284567060716808222758927879442825774301644461698237052755794133527425095213369065518071812380642629286603672430500273003704133150250661266017733611718246739652382297494518263407765446205644239769700383474238338389493759248521009588062666824677561206646331972707063527123043802078284279613253879519420690351837166176405102530221355103993396448606730049988969656246239520325177451674966263909677950135611996880208324010494232827143567390143724940739951012300396621781503154080356591751864685777127788270790154652636312784210537113350742840563737402577564047199271025202670758315206945664367903262901199097196280231755966528726067567828675150534894178696139740411902197650584702870431318512180547681629239392142043972409407000265473812983575684418944074108396916445439226905453304453136707204347813578005851516645882515201903329737654431109853579421132290855616685130543921088623470732727003690142611214791045902541008807941932866643543121841221788750176825137857898753008891039196192153985127304857139824743039442606601308408632644816901112967643286656921505162689932973412950486125292539203128851944539212527588969165587030488946842826998275108852232188243126871742165216913778708078356780106515357718984518294565686242215430327330998250049838471831157643678001846149669641402497032234768131267936447419419296235601411056624813434853856217553106572713863974893060814157200387891688232457471005845598389077622599211707257016454828900414481088477234425812132540098139351674398603547145963753780856593769149201806854237731493298253047433940041213495718380776445304414501205953835426092679615881701978104229792794672811519883873092138809311501253920074500590344560682385212785250088434344139146406932912766600826254407343460336855973214507254875131383968309386333133694545794546095918452717952591424542803480242677536713217650515296402480160332582278604639097039638503847594582446194846434847925519389499926675063283571955154204919989954428805556044733362302838221485731623987085966550132735373481864791652495678134761084336821605032043974294174960724442998158949105470562877883623843133072220753991551673399548667014946071597028388667364351937238585208399610715071320746763350250617704973880274800199371642310007826345927193684361436455441593557221740317887874634057559607346991368628599983053295473044451561300715632033833877808877668497192387664795022480463963354587139948767765845920202661784196426372337457448286904200522941434176670028016164623181832908871444167173242453843303325109188012154924835032246927046963171548905239556454769851548372667792464034734108822071756516541027636991374344699867356372432427014952741905652920901807544884406876739446687395278502405402621363173146525935826855908105640572881469740039918825021688045256378845522908859623371239287780349729400555327582433451640163566799319610836422256006817614054098456560229360987658732337662122949324040023831382982653029938827211130968265172557675577969897755155139748325232251914891218981054188268578826533169297723275784120218151778547496452822333896207016282429055117027323359272743564547266456223568718558107050901251376988887220710587087476611662247714585726112553929429803745139988953338963057544814156900923701163030727466077928154314159902948595830750989580484196209054611094166122508339190635312765329617627521004987753823281399545122853111206510580514013013545047097604614172768458472878348088050953562619178674838467102495546825922685016975406535603102687775899975728858123209121666087346952330118918411692980968698809843737993903715642777154824417726781176337456071014587396947634353329138179786422629654459777385273663505162306236403202454966556954686774649471150690754449680028240575503440123596458591971539727558924912607369159895783688055535885401464037756774407981224680318964589235498212062067690385819434904630356537102877100798810439208032610608093836261147602708309543841916531720503213557233796370169574640867213202203131641384262063162880776948603236701294443984425640217920186973086193961210121623712431806540835421667479567351239984128418496955536623352994395042187332588311726102044681914265207597713892529018807394124141527911636993224718015460644879321573578329419919560327404289372971131968810269390210483907759629882041789135503772223516091801729204323964011506998346959953990237069230545226039464222681005924563151000488152525236453941693457372082641513272958856541378349284581237898172554254553022168380434626721933507413534391921726008670547670688616667008615250709039981365968276720348784394259089254155119729940338738922953703917887274837443361889683831233143498675628087400521770048383798510362185215856207421280238796529861823241454687970856348712866321434531058729102606067115031233304985317340836432397417323322502054452192780079196547443737766213479586386578382475506662050825530157187232063913206879168924725237260955022561725620375467510413271103529743800781235832813558145339964053871668473501311269395627999037016466274238694980523530271075851765534373618051405508168115762740579329297556626991257813922413880370326167090123291755456206539834394771740013062361368657335904360639937529290198192752707164365489401331033218560350076000724354385150566817098865311224419298207745781294294330577819000668357647454684454502183226539738990777885484748029214081711225074807922666234482127590622346534318735559903797137767533688565482640312596028023513223221912995709383345468655108919922386321918656347615872580074734005085419425784188799734222209327718570282456438969392730706591322367031981483959371287692933759903140983646465688998918697303648399385711840963741546773407752683488175963437782190268235595992343511370888036435375185906484671091559865139439777999605340901627034669318106960207416029135027754355132584381075399887004043527578226809048349531398054214898842735468645578480882981462654822843326116422903937664536108006721064205766240895101882357687747223059234771923966682823267648625782063810713403910497770932636773707846328376744330266438785415505003156157615828876204559020345837055658580751321912619780927491423654536705144024901101276326559250269432294526716632159977741912427600745811916183284337215549680486100900868436434287409633962364399102448820543514533066774062427572482531701217219031261605371683975035578043477463145958777330805356720155410568278324082825749841876159568021155902963673321969315470690606094508389687522934584630866128044287131404249174561724162809388856433337128827334525542733579590227438818428509377563451713762882435311027369382717497793677464833390845082876417440869540104755880155431339334814725872919395396690278666976297996465187019544233953893791274635237143895953689223262526725052330113282053516213681772481675074667736355919896526018516970383026618283015086165751769106073235516159132737750925290190460369724230440108500636297317833024980560728152402649228419399023666821827689126896280113599485133645462035422167097766783699390188776395230829848244511613992180090732369189209737426545806475240169268246334801432825691957665267391258234071487394958898780943736737834828665743825803599271182679548692357056785892820295271084872033713098289554669035537719819453155700247426304897447112631624954203830590507693033652278758726458892104753056251301152886408676268750261550501600627847125051811208177869221966477062469401625806249618857660703614904587492521760652570850493864080960051248638500567258336089771775272952637783380162095916868001466349748026972817325011955529616032216656328600216806192690548868669716527702649298933943214752357177585778537343170872644174002401325850548162878567246445423476200449855819242635764451983012020902622511969914446346533153618602658432336428100259581433699654570083859397219865658200895046923602148646387254192167442282969541330552565986089819644999611138462341171270099333336076350696179470662811327293145895916366305435815289217965406016897139780888440847855819800128608264569984696497741559593968818408028164491026964120702273253278821486699564083426058102339175763174601196645256114248976023884675190096606370643692344515042477073601296455242302002891025289554228696239429406202192818248983806794738150304049203624617806089294636699231086751283589943882722472779190412490834236479160959038011577114747845416432359778849742823912652068413911688187129249766851373266796852096746385892194535734131867732424514283863447761928565742581590704063454610463357297106976323443966794650128405853594810100819081446532570945797736983270494730487930499957965006944607800460957469348184096766695494142083234740228406976141472493406410337894584584556651950678841283239657421458177240820994708022685920003724685523108772138270568853874251386862426778154672251953699762804924792447466006463754135797642620503873542006364142722572231749855833289100631084363545161575878879435933342736873618289774932611460308831811611506187904149524551453695112360121289585600673349733135644768151842491261293595671874307374419716222098692615709338601645940211710274312753310000042481385038447506596169300477366669909643422357664888014077394229341410934185244276791785913420033179276614734380202597526996147855480340919671478704886523486505129251698657433593093465358017173454858878967746921556444960015596698010203195720730259624420508679797944023870378504862985806860688351373703956082630631514992908370851745233847346582625465325121026053175083106886562656790563727732799702034898634764045194752276323644262200074223405649194711003862144298112327184376496271408934034833932535337356660293684578704128556675558329931356410245019859700772048868845513625178499007487199971855935888701429967909111155499986200003461243012145180516040129969291063578360824186811746833049417457778684533107913904408021209893253379424923208662733741280031299453325774880173176111096646782679010730678935282039137900903428234276848226104508853875239375859089981674191339322925212844692390054173422960006755860906291393857253806637005424379924308706228814245096098069349607640733937692797290794324321488743383679424497295245237036368995079533901086819292385103093477803118040836633628081681562600917416215314172422245354214264289052187954122653591747046140005766151866235804578052238221352955460193756754729606522115158390866926376693747043481622150047192075407561524187033169456551953580586751938262052296969575365063209090353624125821980830488878853099383007027388132428511268886757270964433061302478043760089658968078979942625071828911975852139163392349854223331217789421225246288250209703748844128493117089526949995874154115177657622426858572841158085556950081576195878672274141658717517410450742005513901393754426724487607460724459958838068829213311946950685060306354734560425962829348678421755892418320574770227302228316468911681366660712650733549674962279504594550361685390872150851575203470282876179645036190234735140438935323836038467998902159945225283730239696204863050642204748076395498470502016707512507634043102363752827330017672713772888576590276580882411924072763952769318993670602776389775513722957716513932093888221768942012563451165996099226158516454035455694065886229532876342270966458685369957504008116470600716680482177234366426344189423762040365663435987347710761870468184940470084009158471125123153689908566358959020405060094995229429375825174277679977863244503998153085531034999354239183256174005827558439327935930171916536301166649954458569412909160271674753084899629341671369415140935738201899797728841082472323013291524313097759745742837045358233985575549521370790285632476706190840022688042506353980213852608915435569590143063030566358114146967250652186488239256868339601935514195364490436775126272459347691213457855300019591203883821368426048890035562636668859722058272297838545225045841137362835487598401458560510470265212564861815862108270296803487922411989992593046326423511817378700554802560226126615184181103230148429030326508246198879501177457519158936045094402553132691450928702815663098324290647118980796433333780246546282610256884212320149951926286430415569368643282539224574065940426197480547840422804606715630512369892961571997868663792335246781897996291470977936370262976076150984877574657166439061135714370975284700919220569147829742974222903204374336295254203810076277898014181938224158302445481248705564350969423378474747251860843331832532982694950792177800657262220175137825317383627769866095137766300969713963112440019780557374113304952986176843643481495379423785001970518955960267046093311480240283102490789580266614717607883017760150931491717786866159233289108024214386397163461569831681117463261406041095642088719298723614497050612173771628512651730333342226040256894274190839670727643752847086034829581736244973708111523551364245214592588336720382314579919487100247900472931908085635511801575130495178810876901959850413167568012623036900258918433069646982124437467040282043912812260691505699102981142870440649978297259244684681059721648159412233646816168900176651076160041185638704750538893405973918760580588664036271957949353110172458231625581965140808186110390635956455957756774740307913727989279319671764461238657168120101144442526607485105957369732445357506364151971978789990906682115044389038583812012833445293642574350142982987790746602073142803264988121600648749054023709073168466672738368708415042630884199943702845692403444356867683005928033038040055565941217781515060403592897082322553474393165400680622934805046040501739729188673638257647137446999464235494983885270969447889958842074113112807454283200706026624811315494815183795408741322214056865330323454238048784307787182184167903945269287455042935407161917335421166210718752595664423631713067122372095223668240676884635143224241545415390898804439916069473998425497800453758089576989482673967178539280942405206806243883666646974457907306017510428358276558284808954750755604739209222136045000745338219808577547814765685956011395016144881914279119167971242020854254877419694556322779019591003836387980865294408480166761234808347418946080626748408892291609373448805331596424863489877642130724438612859331578394532571628287419282087415800878656180083581554237053582423052445094584366063654066205404103458516220282334288632724803171582427293422795884756616507170907760538343914514299045402169810792029611442780962617118764626589396173129663263539277494151945249448055968855255484997555964629321920042074119091157123137311952624311144892014212729429934438509088369316504692121921538531195448627604097420230018886974835145548791443955419969722090409258808582985348113738757656587527468087832666005781862106539961723380868477561095975771344933032346159335140355166175469216170709340478870319439259304406581620939143881227749352863194962406539005424575710560922702672989044668430567455453666592660334678984502156038868860812393539876347689146028410753803737940062297860927252926426120374099405261253353513930251421962142295698898678015833741190399176395667989158629968730567149201599759378592775231473573250490646549922455140658679028774904130766480238466579893315673429951023020420005821271038377430202182009164461177163657485248264759091118759902269003226770401827001230884416000462353841147534731950562566985174672328161976383985014569698267423499214472566894978920234970308144601198258161447696220624530401130586396897656248523575894322913997837278527811261035288988090184443561639162076191185472019590738400808195011993624678791957525325525105665942629155483118510497206540326077603049257762801061005502902444705657866138107492889528861234885131055229080377165189847189956288376886853959195236309686411343391291642447025652255301511811848535062832381908671736919074607619642188302360405489743517096750699673115439207155155846636397454262655416960154260836399947798344035372686691289220802411368496669441022869907220835541739224580368357039938273251295164087542032926210409175517577225941608444709823074288361996509253304418189666284251181053113913683284807415745791672024945986502007001815649282659901503755170282034432008764145297900273840498628625109928727363535212208211239937950436760422493430113306672822129055815060248696471754023150710780445239848866713205753527655963109938031396562774973400813227171514595528935002500281703591896775185649441330299021153496515022874795942063473114960305274064235534621843628285748970383916064015491202353722447231375006134795992079636654373497928273609731460767086006710232130891759844239716991169648154373668472435369090618852422068871255306328553479651949331874333191486951261723091154700161425444474111847339307040242212677382411910163692140188369482715142628692118568881837460059654841109869978234260285006786091654505481446080123187204043231058654921461485579824208779371104792556623869710780408218046359692922115250446939376402612061656929419969454544175205025777439387414955578793444921703088443315134987421415269449664169995020908785543429826865222482586390725286614233639588937560078104770446857040298508191658417970151070315412875078027492986627220710186817604252000865881470831652112055089650664103714595908484300027382245003095957324605788082212656743700975204293908155254464638613451862362403729151024996691581692331818187580674003934637428585817145675063963043837483930085514204229605915646249277255560482081510295261762884859647457390327007001401858507471820853320678926571453563659173926432012270527852168037438292208914545380045337107331598767808198178657033825953543194027034696410784570165896702181408247226420205093948163375551087980586117584607979428862485450238557275050429871264571285711332907297634468183131510706831786887487619251726343426521669853203819210168631468153336780209772645914749305769533450936684304566586312074734133441554776793853799981233314686284562005462616773848814288936697033174832004952693438303438098151928650669177586321452845693318511096410694298629325398454534123348486452906928783862911215982138340229087109719648546504218898652997506039468032403377456422173106873957384083404509791743902127556575493676469569820048696207912319923506080745267939266167555187543722365751476891303636279373948414502696263729355230160649195851826776430189853200115796477742519229118915739051217291533635921956404301905183822827525734163410333619596187045496642253852311611568101090237601077205061348125758581882797192228058796929478939318876352737430463382997073832776671147154066546633274607430260994098438763515798765086155483134586399087258978257520611829056441336737928557984726551660986812503950402910767498075723075514471518390696238399594710986899298361997497682141219969893599605605792014125584623421956527998194575355448723036609053271500318533297459389333933512961972902518489541348055124091967137011067701532587828118471922741667014048843298225416845282149577646818143498258494598483974446398658638077514254421620666586353013528212920846409014288315325637796077791957240921903559436964217026850257574768746394608843286970810305563993216475799122415007720453788120015917424931407123772696730342288796563197422936315846655910574687906318413859126930184700378547712076719946857139796099262000467026495513375297371491510588946656319944553584082683414292625099670094750671035804201929440128023375510143594723303864116640937396672553375824896994452702030994362156004350091277242236281980894384852953760645765302798674349579901661544876790823944788891420952930753338637846995014971469731402829132330547612155537856338526409760495817880444929205576246066805712131076881653140330266844594955076785961223513223003995844349260703509717145487007930104340071879555759835931430053130394387060817485226660780153687843465432227292704746219713925063653735091602222602652522567781050836724622661180960291837548608965410702520284923220576412412898830954412616854453930782933758478506465243971890908072440418705645468842066787092981549540757416353554884924078363682717223526412032690439286459595780277941755227377919800964354014780386343073605664126203619415475078536824472518581356058976163149963386514985065454372845059148746987403210093045094128688381256344932906814926038663981325929542922778135712479920898774508635428328697029140555461652161428686294491570997102491788705462964868744365497731258810026379812804318101507701818828359813064621534408354701670751224863661419505725076729838448866771846582954156424786995936922196821409339934229599131880603004752039663364988398993514006459218787439528952713331114479286854140282940912615956596465307448152907490193957153311570716998702982166985091091536564237129286552443819155120526356847578807288960118176248984442539753489775339926906211120145536528656536686104117589186607696287847869931786590049847532326458475153402981957742369789909797784736924347465127623658343422998995452824551070196152522109284321243846416719797444717050028523209998693285663062062530022893950671951980954311020598478979689892487736814553673655336955590458987336624414068001016509126429477021567303580248643663182001985051147209910705275711190621020184400143015203813375923230033215033988793842343495215363739724549209314623976714408816967587267774524114952056088294189035021866009383029372511552447507948843239100894950650552942038859032423252919210017464841613992909608873791083676234306764722305853472386855863868074721868827945846080296762562330726711352342247282725935487570864556516485471441715823472316111955329552375166416360087753281623543968345970355111022251524503378389188192854249790543936766789227143967797287525605278849299712015553986202488443535288380149937948613856463740503029434833216105315128778248612978994221892108703106466776054956412688526428817764746806246885874369485949600364692618544579711944335657727893314159341099020169567886358891626333091389477044262830913784232155869900045401634307145435394354741868591022096477202741356749693601475287088509231702572033413127788409234581255032621153547678745173120044677497393622176378035378313383722418334726101875062264776032076732012914167756956632582885311212417134198068753476098297803365951525740867898586106133796075628237708867463146363720727328192177258568689710507596386433444366231277209099477550260322823192131972457746965109491992545470682439994088678751535159081386864084241613862758639577847196194765083288889307931135104394206791143864331322115239750915899246627878958687595148524020098553632735557984307510008950086789606400116422199963202006958296449820761531202504547526516390632187294373834987469154204742944984320530813743572134640125622370765399277432855114884470037496249140880349772560788486273541336658899356672264724637356683720564416694670542654617002090616981257751455899523443782719640733965455994781916780610953320539262958397721331869096084209288678024050195420620295681056671011741750328064066250409500747363775043313936151575256161960059454238374885055284387250670744756019241753894163824805629843388008195004437572291094650307264872852276440133304764465411488443578564964031677337649482353039079522771833213871835875650769000595209818747299491690430875047765428182537476130575903219296716657938615538158103273180939259497634272965209032437745683583856097896645842844280028836737575621683507256703214427974321934331704030332247216058591840951831059366922293416502545816341817951585080944003234025721734806494708554284326025505642751853330894793934312795389408227586694594769278526551228492531201143754552853583376124224124369653007770473725106598697920442126899436040384409121321749056178946701418684862648030494225564320707729876288614030302556260326634640400982604806609362003819220994880139507258681339347089830213226856448839561700259415631959010785218202523893897439005601716967927969299292288933825432196167563724534931445228074219200657480181486100824295940778597210129832794978883600202529180564947062918980971547049847102901418740231562561362943501487581137785764665804950079776580836658482743561664537803510722849622664226646266577953254732857925163780718906815566995476980994737646800780489429857800189590008622345444367638993812158612932665421255563374566361804675803991459763426788946709284394646761104496137991606306176730084834670872151069880569472822871933987959950572874756321555640863646267643647059412860872637807869098327886743843192285484956432621561964085937535836931116794326522820540916375504548702069592548145359277257319054477856418948057461399667378314856082430571996093485360183048942739445925926921418361824564686900372123546262789553227711773596795480263114737180174814065830120449544449334175130105064934880354410668097148748391391260251565513450407748027872994621947375082973842887476402901425931266561344554738656408433387967800622119994984025318976196237710085642382710617899656225501889986937622427552921345095802408297588683940264484558441641197085510665780429657799939232118726557519976778334421640637982062872247248119724881013928123730527029948892446761372433012668719751949117458983285336964164501572525773106437820533329836999617925586895297530677959398506215536738763098607518158596352802221240493253982840905265435316054421174927874953826025453834381116372549175152185765763708548972662365564231463895874368427549829570768245813336314924686453150688504925891784811806854080787079493905010123516065996786715449513363325292210314192571074632404384729287847268407027163177841725256009893470687614556792730699692595340427597917692582466678269715753025188601816099352051198572370747487468398964250479016652632769900271190949795428893263917855320650259517915556595890811301648257533076080541409697302571046501047469736549983067315561045617687630182557553900641064183447469410491040957874699128123988284089233738574368903656437595940664284210287732845395628589336237474711717048193142107570023067644420243196697428394185701003213359956814033515073302106772274938608531824588638737768657932899666159424612417590884584982527827625250478461458224545726346909086935542990493859778192965076888115583851807017096875317832275442281805728836588822995119689507492578826209308832436321617910361579519502815122150883470461395929868536791917100240847021024147586416516331554687585676839252930373305831972120941884935277914379978304095484481121729536919204585219022465234422921054138551018277807437082782316766562096585669059375513089023779773417601159843665387328108254873060833833451733932448842594256116304735043892265219762882116649512345707896520287364812836931862857180096292586207198308530442597042795916009753772769608523578561395920600576415663488826862799584959777719064681242037852685365556438959418452035883470113386803205263835075095011298290164388888970160405065169237063981220127252200509506043550787083902850133237030055007782749896909946428323349785774143782864946806867245063062161197795662799773358325029606936382747499780572225973173554428976321337580699233579891369827786823502709044199047653609947501735768218034621389363890239749545428205668214180405377249669886416158967051686990816656042060131809713019726815672257694727069703896471208976549214552935759572793283132811584034655726247138519521684556406921329926294381475649004179967979801319034434041243422224944146677718763230343772010165871748695904426015681796954641057281523123771879234559779286921345086945681210916031565270605274837726674531514508250635134922222243422333981378939939032622630217365953810624147951302519411782542198359299601729498055303567871521947532295619305389611471440324793102354328290696581826365915185701962728474397478861774747923380825943699189675464233466485581209292737816295049067220912021263278584599003989383012764809092730209465948320628666956020134321294578198664215208121199796032180517796055415533577929581025883545019682632071908472535721101989681604534287609764306522557616275598118929082330450136751468096187230154825703559608921494984239204223558143917891470350737254437017442936159183359032100408109261966994771955860476729118155322620856440128909499110891771983516163213254167636370411777241634677457111021993875581575628924071592525762372465371950528785693625372396120211660113408831917528788967839395760871858689250050367030787788356799326473187652375747603190346680393817824035099866718457315055555759782655336199986869950093789944012895803134612989962803836347100656701933713934323893887437112545841879068551725532164382820840519900023883899631437628788819965507962372976138956661421325053482023501554940911563730737091672679296567568648745418576061914148393009163247974902326048149824649493792810375755670698596401146724737161096836652636458932169494025019441600493597955421402619364053187340678802058422039890886097041685921025817510918114008890227283566361515785311614583811342161068204816248070972816179377634417789244562704026708799394387702570582485861654212861786872860931269170679087949810565065328788201885528755308572249510262231490484861862400584374208931926490861344784343563686540843527973043271270323682413374551853083343756203760004749591561356514524984690575649510034748111552839537495524245517177825907322049036295761953796040994171025268479196330485493079517895228218192290804104547450583066823577211030199844515877406106586288509173197598235235005900233563247399890037433643018135791823074449130331999540238583734572163171809586202707640802969825909792000592356859454863612231508275648089639946221352213240477310539104434469439889569618594950756293947297643834398029531414947040933394217375448962891998462618397177796241597814185636954451367776910094307012297188867933787476282132883799896215343545465198534418394039401618410875216974000148492465283338637762060007033921056696159525126993747740923345427468672617964342165795511374629165571632624061569089406140914110399968105124326904670664585576822585711590270769050698527125549971592583043656364414497513066097878314898553690021326490058667769572464223170765551827620922396511106815566101189236571969770514707710959048660657691012179279059222069667120175691635169234516048901261208179779827383786091557433851758393830202363665736319501406915479337607665971083257707529633467691825807984866539257752623797250965390915179452559935143749670530877156736273323401246405833535151722137716323924728148632961606348784011627857610611304173267668490637898195489303446589616856131007250172032968304018203480012168246449043902826927284186797959855864237720938409481714799118707471299011078573751551815500068464853644360140705702101741093414945462856359547326776274620781534540776913284103088766761275031014293339361386395996636238561493748520231219288845757871658663778110931163150878237025100265868088970039125211967069094417174775279055579617837549493452609335535018432627910172698599000485407636551419559593904520993123111360690798578420202190383936373445669088898978127493207834681499316132874881933051347141346535708213393909075573668144308889788214946403770284550062224244896547684799796699427641658067939852726726036505248610832790439037291781826188301497796151498446100175470209866384686996354451200872404452474148449945892867621404191364530422996022959591346141648630622525682263130446599509094606010548444602239834980111326391743806694156119025029648710131897714374489982077757947430780723418804790133202531793313759541020516309730363835555299603211424098852596422244848476605935280344385776504458051489187815809605999871788319307077944726719381484105231516340430302742115644437052474572427666717776794672755467371862660343558750921711713924303359637010220191901551918279448449174486375753694154600386322144801715850527866354207975503826337377097837749659776845000293481669769104126161228036755220393173112332561356585475517552958866968111105846141162314077755753244568788029344940514032734145108172105010642500852489253892150150440723682136683809161086332711987922857901769235051137354038980838607606439964990096113773321506056761939013061560889897975796609325562610855620377159370271269993232534583291099759066724593373712745356302315966624158229379731479351671072082354279222727925452092302782921671460009056468272482385509899820186512830377664245516435704506958317862043290132638195766150939684722907612311384925205750357030224845613698209088685395609482702683526621951304511093071134395068344993516598637492959529255260782677884776736222110790651778912694763216599231641269832740128836755848761763539221575111517958051001147779057437679108273161910552119803562305326414268146273300236931777477656574974095561044370259595999331241671294096383430619352236251771333587294437401781172390148869873427894989153266175851891028700277509697354182476007315311086453352234086615024532405100754446730617223103503365987325360586751157913099742170333691285189188751278920491702030620685964139298513832502003756557224245770498905955257537485913601437309511331981915950270981103034689718341185643740456820395386501755383214837312403766983280499988625048015651501675469798547739859106034157399227183355087323919328816111336754051240080115620815769828965391395937656451608936759394104565017010868363552170921149185810031133842143294867401919904154822733581730990329753951546839005524501986058962371657689992095511524958046716152619795801379385163203290986908415610250799143566601177896337641916823446900839918476818534458493152770511061923641271576224549151139306505948636214659307820720279650260552867845673191730146220402969368171374437147843658525406952283215163418125534520342321038913732094733138832383581941699465550993900048442035211828082240721280100348246458449167198114907895097155341927024893829230933816380350006279223015675696525709689308783300308466510314783049341768682355120997487094182556996626270404649673254195905084586614666774515542720022251021150484070176671752198605555826517418318872329879399549455590062741343414315186559679857996876534190648789094131209634477813379953265294797887448753935937100613196405760997404603490514746421239854518631121317629177259016933104882313736250930186775573860122745102525517705543768257394330312412945027809989084948884342416807699022895409120124511179638963341914693898496594757905175434478663012408144705279584181586082775187924530802365232604204424989059171279138882331832516826522058601781287915273685546027973074006232766904406710025282995313970966710324215341763185112169276478314519068234514721295521564853145400636925833651442909839663527840816769215435115970954328415848361863307580797678155331880056169588077717427921237670222301970454064023907784803222197561480138055360307878955437618484676578512111452962446599593641906454121103545262487732455500665074777517629385661895372902036832339434524007204365599747614177118012399656796515053285451824563875239360452197003379912035286471125673437502860823561980081133237014155247944832388174985405917136777597821250464264146548951307148686068873707613078765510123256609149339731258379765732452270236979002578186922965707956744126746706602399337591262457340699990889247374548836770433518854355448214945178491127669024225782625236552500137137977315827242214034176788297313777937673734768027428922112099503485481523936161206559157334184184931571652260277001876401974701751184193273863769187474372299061527370717609878850112828051865357466847058109814449870471353644580088853142777305480727460770275496518770008558698049879412670368950530197755939545884060131427934236987382064358408708734446861513349288166279905848552903768149825929069662966971222838821115613536303853489911052690923427231652285496743578477152159206517071749181886803269138421117771254544355067777802456023839458222883350963539249191496709995430106584347080796293201724576751299436042261115446485879421506503330085339715643604113542443528580036471435005733638943473775629319227750107321625779798083180923225546690650728774732967570094142486148337867268986329084097846097018588391027780998745383355208393629084874389252789867227495320012957240338482494844274425851696392714777629457259437710413231662082930008300616692454967580537298034570933635828425326627560487437094740327711796527461464872038806941857016563820875829654257336695502824632490018345646265066436219385410896628054615016693364218877365326117012524106229989936052082227772134902132821309822225548693236727817532358423180528364947007266894612329395600922647505833865747363594570663068211053069168246821307720936353471590253326997374781615455825615496506833795889988302287050200120896460837722429244971276971093592636968127613565714750956969949375976475147144606762076018804894458254108695643849628033641319768094190600504892536043764001986794149924389935647115942500669113838018012916887500347651786805912631917083558032723615044290497965587567172342359343914584420509942408705729559322184524771290823293860362411179631026283026186728013482576932469556633198189436837899416238130980196649741312231071981548919705515025479398969160152896906806858227750077723530801040524691482207039760643940299811757802962291454456747319965300105154267301432591770483591987390948178061763690149453165279481867493773255043094099193185671796810032757418707719756884273792420516566804868801991144585916219882134331600359569418083408683621878720731060493449244715263896341420747675737747805624027518162268516225928026894305183719242347795191497876204835147008800009480007325017444553402749317499805738376444756259965707148856239641868395469161556819911976043624331174922328194658600495235953588794711070749540030791696274024526295875124523224484837117302682262334107597325239917774936549262501912879025031139287991320592716123363288848700300844397811041400544294483137435732411601068037852940638748918732525656921077348723600787313855801213384088756594479976835815032810077157777882524157322787423332167552526194142730995401711269209316962609224801011640803793165477505610935683405381902656586233356529312987627988368032455100179463866296489150365765937667476270774241909806383611147016056104245276452567966588080971679871116048632714581081841901786389238412759871530690672131888792969998744415272357176328564998342499600435517968189425154203987013093545116492003517154799248966257847038106475291620279357625703984099290154291406436428958487046632915543342739419065242355456293431614039861060003241741007959810424790882456837570672815442216819271779294293462285219785854359085134538771732280326219627445804881190816635132424525844275222072153487426375474052091228187710264101111962919406461897067427626425238557780298946231346958896361475232338954696990234462723490034725634224330713592499389088359780888690155443849452917563049429191222338400696324561203127526368941148842256963063689964962500119917514459196428100848338949141703243049221982266904746424321612493157459708427743109791081522055054283513182888140232343533911778854716709371385325088826743593558239548598177650415339462535651139606013526190213641671184344920288807795220011685274992100632435073201497549966379871906257014220280612553211983576230552937140547145460070279302037815871903633725176876564312708135751863226431096046842292821476580669760543663848495449509898191419244312967509060333475262916830087951851432794526068269770027757133003459423652473438599253712178077678915831621083110936693984160643245392455606606670056517438829222796005038060088986147419381307741461055680886163659998662274423152063672829021823803967558322216715118250563935266313199953850338767774939610273620643664235526663089993900646963680722640800676445911674341878919972416151435446517279202821575973171305656680280945912743193864587878984048500455625429704973525544547995807585403908755697562266224614126272069683075370438557660041841379918357299143842728993672961205437339394024156822886292430126286293505025205636727202694911391141670675614990131172118814326978425519023447304742585965537064148134562214689824438308931350331538169965410422844968870135722498709682244511655963893812282953801944751650354996808530935276012084347983028725213698808838438828784104100994501631578412198902268815582492600326014744478929585039975608774456816486612196669846527850555102451457522000320884353866228143017732773430584079932689853912878259881982011472441442313971456627882759518345645012171338751634664547807685838951089152286684278185294342042550727061345970584686312915685411265228712924008350596164802659316325331961797591784392751353449551390893651578556820285411776990483757324330220149357377463717148909552018628819914980798765018932333804030351122314846235758238408688056147402919066458268871464481353654979503318946822538729260021760495753368989355573443815176363985223334991990686956776153954032824698767666971371106924676155469115666909795622784392215415563821233063366265114491052757567306607570361021381235633384143767580372079811290775400988990340178292074001222016747359164899232891626327233468238138758476790382096897892144594301174304988544136703398733876168266672854030501383497694001216905522369614613058608281512628672489650144327103222613886487404412927659200547846211926100186522951148935213720115064468988260985474396785073692947722022048433609442746427319877313333980272176408034401664059355240391358467486717479002584557990716570937277739635736438280284983728580373003840955297132804311041455427998182930705700071309606200779925647736768424466511536521758422833337438722942364957849039329552410914390867653826444906605885648492135300123104459637324743233182208187381553302651686349948256726384365024871759543699966203858703796609505489695567401036547838177549253069628042564240597455715892857478336394027619372636620062696602749037353881096793438047494419093908894330843905033944471420942445662337302495766267518062993755386946608168285595754103238719585936758262694728409250222256812575637717350615679676212443017098756045966979386572850407484502921973732755487093945583470232401798600065991165292031707399150120703943427035058055918823870246665655302123478066738902695258023842973500199122374362668554795407336884563034853527898074235955466617598423984955448882496266524315717931370908885409175475317867512610733434540570474195035884158264453493800118235270885082519095809376006624653252217009572776610181752158473660775456992520494004489626132774281550707512582707848590247502767929356670187419099372481613357500399385902865022420512333700753210358305841889344744229592726677948020234195363947777855700641163407723390387641734637962464085944520382739310754886939132148127519051591102785519720919267431367723224082747576152814847373184288431237672841780005862200986085126029572128443800753568868781393521922692102850364643839066492676013812327434100796883000763374345248592499670884818959581258343571354938061207565365855798365860382768866481928783034407233520428685306801422881085635607099027774358544645005699174657453544651324096435010352568584538652400894264872262940620074931992111256760347475777328973578285371536636878525946201589140830864459931541015366986569431926297073051184416340248283269257679434310986047764467275897167045780530261545900959361333438990640242578887429473277403850905295548086642458141712593971144991029083141649038951024442461070050702667095608512316672538004919336399032464994983680126696710949462281910378173777721869761571402877275361070724713958715124446297554963837502563089222768766931859249110556395589914874731894428250727376108992498224442558755524182126501775782232940100670952277107598242673992033669057266601155114954040863564320916964358270636988119526249024666358807893353942316355342372236250427220542136908354985946696879496798919901392135081979511720956155286625170190214934068576910622595586466890522086022189666370741982059862555169582164103823861296736265646181624846034182389337373688077626881346347028319279964878982018216704244868489909737637155849937910344989824497198444378859332948044596128632535158967446711796055325564006272672935494479314626840278815976447462809378278116476025940132304926564374180851432031930663868320037944500953714136047057062237101319022709245027494714044965888247602011010436961873609108314761352974124921453877205041691839267697946914611544859758524755828580899959248199610988426694613521093566623438182324491567736443984126703373217243290541352816142471582840750289097608279080500388795741471231429622795544415275766752460274996327222149788074340397199517228348710726936073168999669527506807905242070499052187086465474223626310076327302837940967509529577897142575757903157832272719825873354035467519004227245999367399725841196413850623564492589222967732796263371863926680266667317075724773657759548732212757298317590704955675901282006716117579045864708283630522161833641834086376824854443257771681731417548730523374833827877730271784701980349279053993214229866568801600329472222258346009541237233030203096390859122494542227863962087587906802691099247208443500470056563198524520413499915431312635013641116114055329511099158636452517382921348571979198336573892695555480546382419326686493285077240851010941862882379857084306232509322802984026454943992737660641631876086120017627848039283289643476102391794740722299641319536023931140214066106858849108531052261093317409964925210560709010413899022135278252126901966984441842772345142715223510519828181029612140011482078281598693511688544673312934382906524707761563368671885753069013887295345363832403377755384434998242254597289173464375910215217848850410022053750321327633652666750693894442100619085114156694993755854280802057285290280143294604646250685071897466505375624714188449789040896652266326298109647607055065532824299082637645815823747504762025212476693531717421695706117502831592027891891689052880918535356190633154409801787164692376957933881047593785676915801064395940079882822768719107171328403255231511435498784954936868239329889943345765476152013448756904859739802575068399172177045574829347341578352323750815954598419595082015101349576049573391741348196068444138078111202347157634945299383989349205512271734682980654763246077849007250006469879061996153089466973857939942581834566660783896838733750515757213515781702027140269416490460552131221406711337701863480879635513832996904042104477772534912936203542027233127830096638345908419009263398516587988626206241454255578738834777679947595474469879821966635703511715681422182444676201256667389492532515843160339717269102204848255604241583636446476393895851687141127141400192880388392255236057861118750198080263131784687043015667362452223516245447372281875177598390407679690642946171864976328406810716430520130876234154585150656660731013181633601383229999316850706581767358364466482614077431997383099955087844765073323913519713220943027730267867693362207939092546448834458734440264082959793008268817286707704053697544391379511068240764938759470621776555141669914926917569113288767266306372245608659978066739221165078380579566984603179897895474091397796373845971597601132829432731600492686431810099780008064911768098957892300670725390282468121306732269230828124909197565820825742918452266338941308207757465765527287124019154046118067779058783577120673350071277005009194139649977111944754854484451146192622427976882627395715598788041171967914268666469594595460275012783230273619785101741342012387545910471123379466376601599347372215213652221449830091220995811421919598811127790871782854994200434506188603568903177328800929768451352351117822071220319600399562995717615644234221707245699599630451186381711975976532245425925309178848201887391727603900564695916407808617244666403604101354539430548943073545018739488291287156004743412216846087828679787405126716318245415904216862086895561180295418374344735903476372827558934131649430996003631312933479589110556682961934058424406470130632647689712724792010157528418038765800518302698461177940180671070563626061568692360588522109874589467896474069525057257255065959199144936435427299249971102267231581679720967478294368019625219301602384063509367702821715955762806398744289661317864008915870874535287071091078184848190906869005459935916636753741603193406928794095593109372818583913697381427959783365174409051861802559716739092996536307953235417723078622966062143305690864438424781246722399321795871040660800496359997350784137318618869792632337610969905625568076982353461201084372118746742660463060916843465066343812258110951403036991264510998227100902446120803100319135954965478841422660570595328898792701635233583037968810724719899695810810329701174574336328621531849626402913042344227427683356440086603143295358247596894792699122285428219948351714423680765440157263671806364244779120603342973598744387576227387903148669369718124645348233908257824074636025044604718168221884141768789048719158905086406835421275998455904502712429700819358436088039570693069926328467937147064711295151823553537921775931832244640433535915072458142217545064490458218122778662609574628702364445178092426744986718727706355285282569598693389934723614319069445088608986496285342095236878446143650685838319521771581993212773626669061329457162462644803603381002256001527720485997887674214455257908744471374728309496380949779682282168815031225274274430670958223138333831634022128277923603225946070360149406791175229701008037849868191255494506829847595395917632780496518883840928369136171924414065948726619385809238584544608954504517782600056213334220112452921518602212959123336619537998734656215892400758215142778205024763427908499552306478215346046339254517498252725744434781419135994515481917727391281770294837368913942968722723900404717096157868600571867065521619288095682468138680887609796284099875506688745942623926487085957823902127435005053799142985080498691624961354507470287099128579231561838379812035146490234132605228740073641009202303235444843601596851641131201971924417649460677521253709477116189622459519417223105522792250090467664220079717661631867819572246030574458632751033436877895874904147700913354607902500172659176735959427241252094713193795193228543127025809862201050611121718861268404498835327951090480684259834919710204982316378999359824734523193948972032826257162053076240360136550163729736854954891598403787272734844909824305275758030831707975724238719282891450334466855184084245487938952920395969052424954076614241927267153662927513158696974716503900946057880290529816118843330884843252130643934316159365717967954023549520196815827170968143842431639246510741387317794721802276176664355481902415630373459087178124717872807040473126688305578309051306004392747330086326145865981669027312134670110153745448855418463010431408097995743598857917204578551757611150978282111357575531551012074179027424248990106854611476025671709456217604830024696489655816478627094088244996850304303294213137336280016537179027645653299743873056305595921925679778324972138846372368750364906930279354667597655192647409518286922751523146967086224536366336944486931360214091553122600344166100067264601681763701145142140369887216937871525493627025526045095421031693798303855499772207837363869377797194323608617444884637182247964085806677006005065314679877267158848126678090392441665948747367484461460408657254172330320274513575640734397848886644278064445844513501875715846112642141370055640197682124502148815480386642544737189449080291344926603644561605284542209941578540604676620081013849941672842047113683800650684356818217044468160897983706506815725850823941861896145392022656988146326926530083103998913156730281988640475650134395067431946359801003816451832805240790147820247657975833171827679555696104605323389033757430505102371887236991578249103913712938084726837917993108276046542594294724388193598310168376787499403352338679499352469189279445887641951796016808814434425986980405785360204987654049470013008710369419578831645166079839258117344825509816104341915048837996844090601343972563439452178721718627529675693540799573176644861994490807082930692886239712646651331040921843724237170069067804870935018025021215631125114607346085989889542548049564769617825895922648291249627133349530118454826525850484087545165550689283797003632443899378291035913389710158484102977236552502386817539856303835990532826683181493678694207573969311398648450858178346829287678510303458875137866947396554611694192971396169767048622197995131000386602583329488547871102567809305642736630090584251929916686071387758555167149937010917258599172144226388323451409928673641870239480557773620407521832962572923955661195268074444551518123817721048639928408860653063818608563800596760601800716809868873162628444443344477168356681102318484450245496737218785009982850639783966625953561987898883074898539437892162727811268216608574529336543629095648167521367115337203701287215747700362356661329185038868343308312857613687081878692970576498341550211802256614843153981827830629735036158802987368308406967448627860399532959381598506112586719240774964652302368583815703910384273569015822706177713433407861969571623775327446979840409936658160660579108038948773653807553937214906931410555130482168220909142132472581538794205823223423373021919562890706123116339755254128248656119912170920408392045832706614833895495969581094762378588336950711184977665887648746576057241590905895813158330459972187015480817601244481015889197444274854728273453548816817714480567164782217420234623215485200416629666038705302517088139144403510588062587414101893817958231640749544641409491047280431647504066721991892855102003102485148159471077651384877174188420331305867729184900468872634331399276090613932900636453453576857336969011343120707041820282484526380735682333715539354186838608978812751399154252754546715556703769794489584748108113970387411757170680262916156831018577696485192634312161807672359031718538675389173898836722376369486572712863151887242990105764174726457625519736008631433678083370093422503082985466101698722548128058726492063343134117440040360600657730602986575953130694575151979084980911613518742197514376656306513654039959509797185783152418644483127712321196654472568723433868111476554079630251454940202778897103199970564534339358805112208618232702096712564537897991376398548578233826337412206104086097272834282600247231332794907540002698389297676149079740383688907659763904925580952699497412578696100062334707056175931407511300628409341788246368157005443382308142607576210268733201216321330865003182703484451162758754983882154654726166157790957769919770906094062102685301138751861901954470924646938262407145525538219830888809493102908926903447776001206130357598140284934284875416294406694121016275665882192381620526450989691240371729501290188930682356672711960736318141942688716023093970643081004206983555757248271333504630174239349208751447542077689094606221285848740578343771736464775447964072195795718976326867425791801793943187278550606852232411826710967602467786535856312992412217614888995797467782024909023888906065679846910821623693787498283773239230426212884956426755058987242683648401509536186783123353371654190506944934520203592086550699118095704712610963193865943840300208897546831286198533744658693331300634712470171589420156480106302931129899222241326842488569566146383198448268800366075665360486393647283732457383258328997007113540313062222801957238563181737224866061775316139385992341850040148588634099591014727132564048788739847021536924620275903312629260928434191166655894177832599641572071611091826065321344456303942281302304438524625366699160879393002700391452722530382485478547103195747811464993851816028997599363405334012378843486740758787472880002176498409819451533305523497113842466092008410776792887011684963986569939518031330839921506938399630688455700069615387613757372359556107034183927787604681163816719573910777755788425370599147195312579323994338713761861707869031531064991597965786689089928585726017982588242005379048018584212302627881190689521878472954546375982248746245812128834227352205535575941767859149643321807428471617759861207055391869834980579676964323513913478324317866845930069411509773105580799435863642127813919498170009799578130140689112796683926660926515146201748676030969599822294487139004159025865330410624239479560868440209798979432499915834546344311086153216189832312344668805984344847901422775717819117974664539491616891842654818895460899224901374659214468718268215672777615362426679933875008795463841278314536787409338892874009358177220164606881445363317793047096561842893660349985215072513932660032909797227833560672841798219348187297805446820145868402752074363866277167219909343040599279542225181470031473229676612130695338578252645304548437721133321479170665974319952545814174947917262836253262942718382429338494016032161368098724752405491033827232353770671433924272262718368178725973906054263226849842728042327696030790514050523037504047905855172779142870647193206423363281633164000196929986042461984244020441542258514045067525011907836892927934363642828750262911682532015493004940314797721207076951731454817515182670918018194647150813428187674326364331931409616709170994264464235113597473238056213050995023825910886156719628232793318690618548653112540738187511851207364583988053575184227568582660415444774451009707974894320340854186987131965716729434960737308916156232182719404047972480429125446593379092391325985914824166801949826681424169343651826894652937970033705775473045294633859618099695363123785275580647109448605378650062385841246028228373842924508593421450066622795494197369926949923436437890988941033288383073912906656328604441543458227564040955817761546437529947941660277420762824970077402543521124849128161711183011780613925222566889871127234508956684769808532586973255141737330318854019939380691798843255233967032221504982798514460155176461451793987438139944692825244386960139405578618384034318311944706133356977733799587459922698726611760262633415822741557224410624991124481651003639368685255848483373571253200803852324460508763450306196812863820594876605280266444477777804587709403476276503306612667375114679517099030250924549333900397800120192445448400318096057830911567113985710823933872590713667961970070042700964521223832304976646717618058627419347000289018493488309395192440863331542416932777210283659339788008675519280762648636093911701823316420893518645796610028763626689449133646329862035101058678729853233674201005693857201861463592844397071535088788501571828573208384313750241988987938143397704526536865586060312204950904954620754900408320169959919042654609077919838603098525224639870869421241368400713971694246762824395486456328380244113155008975852785687102083338716064960513927813962228561455521974484957261192724052278134860676918214535037762197715454583385143798873690395764598581147102161334311520331174179587199204627324413568175248436245704868583773499571404614549955578431189340957523076897458888383762021115605757115315027258941031810229618537876897204307940216396803777392902934209147020338977281554162504583079971062788525221645578150932439668939817638006671686258909642316008777543293775757861657122700546077693967640844910322211662671231873258863060613690825088796555974737075148558157514529746835638618511407685836784171476704946487667232970955564916000968315000070542307350856161494202126718917521309645129992696187281793378448458591873755873413781005530278103071190910427836941782283338697009296984266298411352145946767120444376454720401272220527242142282443852304131542263184589614896814431433439200700732300734280453585337209500760738189910536050273669899727060935845532539078477329252419313690474602632191262575784942992536408714625493561080196681422844241858343458216830061586628208435853406137122458789859560596200411430666711415480566936051364138859528372356746515639365993538479091224695823723824444243319984958867529844135240111340281998170149403182706692963687081386952005226057360962786875960375317557836605156331679627370510148378530406887412979365995428478904857234619871094709429688302532512254372962513359060511887443587459259896228318011571451463742142551495724421033235303767653906179313273805058941045474241690293526889499373641592551610680366572945385583443167060246562806539894753298764194323554998200060011739069397754703854492099112964789046486500047123938319776097920550297260636474731640482337881478178218084803706439120529556769418117989823975462204221127338971910993908749638464063740362603976106294952160063903573294716649124681505700020425485423380773012362762932185015369669111782031740705280132422692666806986961165603528416885494451747061741149798630342538239834303180078608057597757570276021492463095957794920094303538827414815251728159224150191862037805702645994033991868636341077177850613852047956951718127952335005970307927062773862967526166087884056710850419122630007031004701061091919061204204677048561092687310323629297360906242469186208231224652159852082106249177981771306350234940172350515118914508813795587415487033065077698719501575698449056077847195271130475469772947782181514199036557538403867064286546417242550702025792087410642530112600724862548760219361129956113706938156148925127411471182883912914606663316338224773505830982971072300586641194492564903279214710231710216359402711829051206761217623299567249160707414763064301797744007078128055924231133800289505479822426314929589919699825347827153128253519289690893843496523063384711230448193110120721685253332332819469574065341058771172139617459504394505166144381720070087606009217793549571715104992292905402267591578076335333916543595004199373353932835326493221841647637728256551117869397044360559402042462837050373086292986062250060673805891795298886641307500275260240862265105908047813591880563645984141690281146809586863535914457508480417538918054274395694405767532831778951743736137812010738987593239848662144860626984339670983951347798425894708051769491292330827675582288194874962547596834178996416245053913223662535291372261164193186471231962557798779668223916736656788943141944436726824949290229574680676474808789526921110260813431526088816623669760077445719451247278190873781774418523741960968121771135556365765593762678851998896128604836374767944107019634859648804210262510917160371487154411875471792163593709866389760226101042659133670745335870446065776954223126980242808057745911486045439308390284419406795009159847682097638912637262916867151757279163577952156576160942857368366815542202081519008842434463491209947130512462629414396658080682126493048363630729656009124638384193528445545319451298492073555566995429766195678288953153182613246856323061846905132154084320296538774509984716888470466439356733008988878080558866176544838272229047647750546187202540699211129227160313428017121532891542518748501001443796388895210705709342419322436812584415436922154211310988705066973085171832335693256875599535178330047451557637363879697704888029890996469065638080466636773647604829149431254937735008789383932509859902587267990855812172950393715970420871502716963549277346587666863711676244104331518345766289506953875224050000045830998141403883345592697956436799739467146806146970804167597999453892501382313982795838887993584202563150683269824498866590383311091363419364637280392371982534832021257289208186975103986298909696491096418197617543250266154104970215473913929818610561873438826876043608179462865394991474746311680049399465948281527232015766639050071695173817360404233694034577827249622911570690247028015706959966788446402391783323860818059544788799108176002850986002286850128963236398250344550085721368865557084294592963281467797554424936370270096399544554534378228146591419070877323017168445295343164817012920263501613589456887690431467370594310110650002094064977101323058649895950926172848208904569830805992409077758293315579172573979091730564381329414265593582207354197704405974111405469318240476891828553625427301274126277527403077189742226000988614154145962365840753735951098169705870201144178470813370325903135804789328203444617479743621945543945215602947621319778060362417725191759028140774407026547758135839523134802495879937231985663272459044482025905652372524253007008414283716217016374336321597227593913504332903174255413603686108289735082610880241020734585732722669684512374965343430973441237313516606366125223096988525610942631612843432961162672939908788704077636163087426033054413000210552745881410942292856130454107581872729565583119834668494060378795777939673268576323947665023581654156425884569328762311195898450783230340365795488130339241869395354963590275062205592270555816025747433531180292921696568386862030513194620689337098932169319332385026713582192113732532515675392368923659041051389072156699440535376028395992221937194582517131363374933282979389152288229806251061991157392514214477466935368980700828389553805972316040063940405033024672660542599447709486188014744533533092994907738073852425828703396666649147554965439492886954479308429806897146172867732018353491095992959822587284336227150448938828761293377099552459660686609904091763200448433176601968467045390233138443598277708879450328008595964255098700307698408230860620599676915608563253154786869277177313879545420571371210688381525669030073450325397107885304174743326669818570763936589411309646553300226995356017450219017853374671238971045064390028040917591154881344061713428648232230342553490278111296103636069685333796794934800338845536998584730649184830114674743751624605141267088606134631559073364798445142918054239882961016967123477351262294713831265222585948410558339569130217396445705358185347128317506689941115280146386343877971184222153769205298471596433594367747072149312616574188529534907632211009805890924141806630811393654307690276043393398628807599827519109293491798428094592721791570497259225308974358789298810256190907824486213891226482695242031794412874397763739044711422057584205504961091593324631002622653484091524074414606940835988445208981854823985093447946412626529926182192884571660634388460192863615130465317201001604774691871437387672774595463351978808351461062297882117100671805693671282694465670873437484302817239360260797972907764068368903315178055259983967571576687058643811821252507051829099374271637418885241318164961216470510283368180132476661341104015039354066985410807412877327891098965420003982330959939450530704944859741755306088442435916546706856935065673378099274491267527989607675728779904465261080002188667812050076050325757606017925061911372512175911828576038105128543844985535462049954186922255968252719079693764751697231741935612689552606722909330470090942735310350906234656707082371890550733669846895424989302094705444278242974856350335885062720824539326640072518472792679781625015908496808351766758244724451607244952939230924996507199348267288303782436724584683210379396863658648471955090743255186819762218248106413056104939142835985736744930682634763692273205100402501668813964051425164052148404424431504402372122863683330100609316079655883766741760654477503648108645090573831052905055259064542045426984006487732883278926353934933970349884843132502226018491545957208254511195558467856554226561034006844701871275009692357194860494679448376737749148114480189052313854580246135712251886195639534198682547371288234688831705767275186269483423075968353746382699593617078255819531868285233089987092003622993919225020868920408926835280302381719078222722491119940107792492040332648356706044231222324499806126951990747055294808338779689978741450057051000712934626133638088316935675157233192379835818134957024781374211038729826297261587825904521628148391364928697011634368909717809444842324956089811005713094883852183158367476635763165463116623520337778035593187149209070654824999815483250873616141379366458089329020206868083988889535441234050860824020104164239282264491468409052976636901061920758559527385782812297604281984826403893272822677673587169063729498528729007852715293083077206512259158379716085507133656286917182204450735473653787493883190003038284216862621049185009094296658129305464740805281817292490106798859726288381079769751716016760977407316721784167348877835638173473312150211431026815722413809716013238229039914094283550734714838583436695483632588926676554715292008291860844786483567861776323659645072938604126020032177880829480412892110704898028494337391274973344906128751648091365871533124477019577384548658923081961866201279573676652445276600770940890396047118902519336349352148874761349889679130797177135836517737026772608442086385807726487466626995235174127159024589548492408052819092119142179800144943860945001262488729266718831990675224614891678070083502569935439669843905388820454072103430409671252682638950358178949982389792666469353479158834975100670280995007363130308585077383277447903974754021722521453862155649349535681999702345673060999622992948492495652810776654607812528041255382161387197475811807359619970078050368682376086297318928863922144457919116874561169657146874777667955529424397971117350298415877079385058076361573648392756124575342251442278486337097119385405837660389230139993945644443169195868180313557350337123888454958621812901718211954483289022496291952597033128619893024365003460435509297981857004996769131402479703683593682301378375926055043509430877197201569604914655483469597953457937913616228567784476136102976565426278636512710485682124685055977448587768606508885083776115955470622252380246596985167411051208519377299060944045659319647459816843150513795234100636301761880538087927088229837862297094318175660743352320575520756400258932510205133598407647920370648877346507836459934756368093783852721352404195614163422586292400808146931107248917029617470946837314742713385435128158820857820574880428579254891977460109612151094938344417377790955027248938226427231941624607499450707666365431747680803805100552178089065393659448803857196871442295049558605534851498301079469499923469661869023680495316777991922090646849031585810763465358472375198630542107120388898374845737584041661400104453501363223620327237882434284695846040830080929257895142927457535072853309450724559112348403550722233349966094439423708243983684666275916474280548778562076075644919609997086135545185510138203439739868151969020698601841064062563003162772065716164851958927028976632869267005548160376062067847279400828863840102043149998818066737269539726659122993225101472790898063988021437548969560418080725815277050663067095682037495976746898567583847506744208820836141434818001072280475809300224954594163530340836472526465614471725929882113912617724580379489452003150450030212250317861915906387084760797865612771764960220579710791728494869110395791515879557785235615881928444424706238295616970457757275859448585529493106227061230677797063773571329235545447228102977171418416420288315365919017977259846254931952570675942079103738097835733284338744668122710338424501111900337956650387467992796593318756307646090376064493282172930584379884648099086793133197006553009600301270491431169752379729849758398342267288884920139918189679222112361334041799158770418730593563640762219659471258811072220692028297141932688967333983529501988343026988518856144851707918011801555988040950064477582923961499830586084888634861678542145321747177290802296864694130819152652983934770016433513131915838526255470885572987263328053988939642438351931449172302559987560765988369431028748987448196090683015895819216708688700093282713128619327161808286068920837943940488726405461450829141721404666496101214123860278347782421827686143603464722985115846347883106105827500790667148192812518614820871397906436483204285081337164895926815250213682468195607987205152504601488352986396591073214259851462317438591785023365870803794377971086391820699616095222269356937667473518562169968576860937393118694959455813605156016782836145615547242896615220116314000944472427673502353684197933583607739100681825098201860920541934586479231760788259795071218660685096555790153443235224914339097825353656355364908144033559108218733977422058516796569729288391568987121104456362385203867407535095993202520499245834138281815657037385341564773662653508363313383840169601680211061659900321858081496181857080990563899594570076538690514855668816508939918978858374829965972433445748329516420501178788591853922218352867290038034751783278458005645566982984805909920893995555483828893567658150538786042229186061616388931844414969627584478002010756640604476153012822214665213683437461534349607855136748517459889640930830455402134857425411673441352548461152632133249156265417487910321692177327090996556800440569990542625622407104815262344354100940206893259164666303865211669859180826547874583726147141448711752056521403525000140673493137652240628960736995428732821326193371549469873223327710001290456127088156254148192859603020503444324484655671408860376996421561402930684449686820953021984105809399006826433808318445203976662900157952251881256911830014021874358677050034335813664157898296623195204339836488316199311260148404206815181068495949691159340318057042171727496618699578350036852039499894477450624127564855825692080764134239584786834269258862048872668726803843435767139102141338440932124557070037119687676998382742431026896724533044950902822503534587842336591518884052361369570034198284127836328393902555420950960186720498831737058713227491258913413972210232478685786644202111907857233101523489143716941965016133198069004444480731015721826513224309498277946723551382983258130530104886772968265242545051251200868717275025055580851415198470510084509019379571121326384109825180096977066091228168178113021393148471454272607391761132071539517944070707056891534302211185377808942719257579988300553348569756870798505463059008392877355741498682705441869666899835549925042580038984459778653614779560661589867064649716867976210268479167854732966075317771714105435500826752132460325296490100963640457973975346880927383129230893835904041097599481673850094816614494173752255387733790090300817405795468572320836043958348761786084948488299326732708291446375865615633496481394290195649704116680235474935884415758999708955704659841840770029801286509830579132429092909776936989450017857486156374165106435398036226772963955938632801396640230951632439641763478210286039380789189371356404298691725848520657047412604478150523695787096833094636372067603816398539231839448695850343051819955249327900995117760063031184560348302203531848902012126298735046819224605215516344088770166390606683109451251453023004456318591877316276844343374099739884734043034864394178292943407596429469792827094087628806424517139639206395120985502250277055807005621073189100521493897152182260594030544582861665107153075407064421028998744253803117088509620829689948389969569368693616929830393739068222838513362326920709285860002904606173446084510734809817901411414848975478959240011275646625736008537911690328072599437820719734044100834849061294492300830147024554191937477217495984806991318440609562199355533686223683004739887346561959085526550598558076760736392189587683665074150379664138702016248015288035016629003149210647134483082555285580808892468739086632517117308821765798622043039395924210133197322929621901623964387437057438576703758256278356021465137985403350481319441198309160629277847311135201116388012982188491543068927475122982314470429398509589999565690569452664461572617767563956321998104906146753640027936591752245173210732169445368517855483643898872193940862351193636451345278267540051403180185260519533655765193355366617196099023405950875463635530670290810110671784634600557304780716743694460825437703696221637279712724106572402206907748871980573905337296281938843438063820802421359495076367934338546438824953330578512193640577080747216443144412930433226384486241941027098692091731784019415920579589524441058161288458870758778611548698411654645681449289630815832168103222115295847297112779201984552319543612749089547584364726831957130910005212142949920126264351232824470201631214567416874754596316180147866364609463149504787987755703113629473752998808477165355214831564376536785209528747747931311680191330377659177247751669303957510506141483134504655052582219517088734822552109460936905441427987708551059028545765448257779985431630719383077058484861227673924589749373450433102431197948783205567904345947117234553296786242531382303648623312003696118428630548649219593893459770908379911095388298394653940827001512455098029691258310676257889179897496395009731015472402440430206743151869772120943637270184974558208822545948704689218453713656319194120131068967218394563478652118207981459507419813446305133503773269964724946076518141582614858572657800050988393387978185783125141979334075156147916447422801169817906078884133926400951452270766629489404647798093886553305847269800774549327822510787993411447682180393696768405072113126995484670530815200250842747380421755879403411691118907734726102974497081864430973493039675816871330591467626533354720439722939158708698321548237111688518154134796209370657902769122844021274291705574777683851051382786665143743618944411700363811328650293401671166127445197582875267492175198746940803700455475096460514550804994927168819197604952087898868439452198654400957608446234817629465162753836720776471417548794250700509331368737977801590896480388336670335112203590669298003265418108351931793656376658318186228032165153440341382851834429821281268432819990546515746570835525591242046732433008837361139580413913555222739083806400123012649929100772201239499282293050743209078652383296139182730792122061534366003410061045869164255548602935980517921682721027724438766216454568776615794672738973558830666983415512201496788213077491663606225900973001129398880713490444389032882653568966542443365584486093920868427077465118682575287292619466359835739682188629205385963993442290443982159211368373454909622316581572618584082185852509276700290264228168936052020144613062286195763900552745209675128703857471901864123691992512426179359294148004221969261147526448584670018033042959809123411341990275800103345439808704746189395112397121606017846811070333126803793433450533165396192129124557893828820183727848575542689880982108451652359754187815472930839523072447638870345554849870484393065050628507382527239967643464247320193395579457036449167227181548403093623607387573716994983188467154705271651564715111381826616735400806285149241193655677852086435413901768332392944068722295215688828219752251544064289014982216217188134395625604660616188685252224499461281695382418882153316863364278643299193179720587362854561787712161192863585349911131790780441917563403547962881197491238382939108683005368741324767523675539207657909967570385860280651346493277383596950202711044162516389550479143028512692305124817794021851223889828379024997013471940850031486041454214289238722570585516670646064432256832707438375010809792958367079850775673875968967131593555657173880053699065129154192868853841092916096849628125096655812466644901847121012314580900966548900039590241352397248699694838502597262477378426959267268055344075450600093684155509797143366760827594903552823851648433124273499825859784317293428597761156037974426234367159313338595517464965422694638678567033856287728376681360999208670583013787844011897538745728474044370718784460120521817202558072549393196361586218893784495957543142675421024522881225086327649890880192492114023985828145588688856644115224952843333174985111590050329684345459718079709972869393699594689834817753496229782247826075740582983790642486229783962616513044935439249395926742646372070014956958398465052210457379138738555777446485444192017054429443894196372085898190720633514532730346152614178856856748460929039071742351760687632279273601036418941107130936968194637764547476091546901506035915405784100806123454735794768587014395762095060359155626660000141974545534826832538898140324886296062430411730811101795823988242816331900738117143003027194997109425172567972488248627628161753968508349435382282732193864025714612330683355019013954747632933535235791495476293009943276469866848838067064396758607651749213069944688781022257737318278050017775347456549608233606913928329762943611309620991301616251449636664609400981740600328994697775871887333816385043450304774033985784756549987224261267528282133615042498958362769256781071356756833777481136070887876386181039047580186938263392142336310477589985482031197678237777096042173428628748630690360945571512563310973305493858699561448135571823554496641914518035611333174915185523622955283091572845617630066745565972437667309880696523660062030217833955943409557540027141373654689589626293526191687163647893784793094045489239578956263944487112667228994094919390319900974067439277819948581235950480566536130477015094547299780093731663002229471057886259210203884062379686472661649659141152403209889155480100636067503668410316025646391632245067107828859885305142287719690148004038846164705863709946575603123992475679756216832876830975978421069367930316218470502747626634772259324497428551924299237182484078364195998500261686017062759987507284478294148977769991870600024995413900211062287585532215686364854198413335681515747723829380976381605719422884089090295768280810096202249799514025567980996493217439175359691689144211416305782634016342475876235283318038991306882101850289542470274315208828452016046405207851395742401933121777992655451959165532198964313669740832271054884717417073118684427284707906332009150516790083513545801370381013602638014618132065465957512071487039255931815099056563551724067023670234196347152317065244698617416945766964548038359165629077266006640281626890312421399076844122408436398123407656173476286710008557768565816039811273193185301780767317385247316452875595015692425108688845429346373973813827883899177001646752458286327368900134848941453097829589345540864657934573909095376084882635103521247177438846893189316675063964831735049668671285929152772448213544293455096323545293058623595936682673497394544559688738302500723997250560044682231158443028795629624979418216750099825039448526687039837674799500514264133327246416116678748347073499286546829200684606101560369550477864807180077565225284392875347702713083660667441752604715631964710508373819544597924905902034830340016492260378257125327826884648910449968513454294297914058218076168538012092469248277641887044489216530914854752091756401214813291986270368206855339731540343764221723089923923022939720679934907896077085611289082643846704043018754993783639179751347425965674938435117934477081492121954684186775655834639225020831614167846008013130813746640621870888929054405646344765517263803518776403374642762756415934753013508942668138417941740995060419433355026062331512027542088056771071149843149546634352450130718041151221191613328760484476013814496937977938895160963286037354158449924528077330099359090798951201484292101387603496302993020326561615028005710897606274616491225116237838309650415205522887943112299844386097825592998375040561765855479365135530927659437219772647386185422866361924700492121929936988953089751294220972532865397812119646328190516815275016410209612582423385738609035067476139785552905830745331829427148658804985069412862851227213565962906593455469115289818524593009310026768423035673496121008613339555223857908099742342171600965299788004611114103749056826083584117445881371880834604232227655789625632961164941486768704751553866274645051471241436961903929265524373140851349633755032918406974536356461757145901798752664970699934137092698121093882422714455813424152450792607059194478514174516545694032556609222442661480942131005029126604153512149464232063596713740304947363620161208365861059550776191795971881609554756841399584508393837198963409611211504755074659791805659229466850978629378951155955917301656013936084275101767643040751824405043451590396016599821976847063915692031452430000858469587017637674908693290330278729184551460807455150097161767777232868249796772766887312129533656483640758731934400885633329301590307026766424206531086433475971178070118979944938775245989849809693240390799305312170795437794393380269501898631077288469276105403030938834880572168051667367559001088981656788744807756997956795364086510848091179309492882377914240838559167472052920637655559108728148983188715168796688068962882652762800580215697435901415980892350407349274724843371001893477339259302396946496208936909886190796509709845551980414391031722128879196562896649283091607348225561966278785473505700686406231025029935448152253003948621228468990534918591716804956163221983598107236520166751117837147430186435520495917420028166354055622421727448590729077589120396459734564950231182191568508583623548853425193372213394384808944654860469777568523092105256988137131632357310636654875612083004887791611201347504034132502237917695125853547569461917682232246223793405773853839209819860467787256095240856998585881111105719509370224311241454064826312052045516432493845133213331915785856775296021920078722260358805020285159337564098466535624371085230027813490838975573677949265813445579839232836583673030513781186705725591091837947067567045231390525236817600848788065931353203035367839409423435927135220899079561790856570014727451183722373062721310730563279889035336095243880598839411454353775645157285427545165462780848143393419285259242989379744091056432216998268020885946580228219512534614091989661001807441552869798836123382584660933215492466245949316533617067144338393612705098986544714486979444438860523021181749806830535002224445253380502298338879679728263896782188617824770624496060327624315156337587907705207620374454477844081059052248952602429384518163718512888137150082773473716433468254346512590565336681445280996012476362426711751458146731282251891754050793823585158900861477740298268983862199847301897858637134435980062032027790173066346253394440357244477625922343738529287682274135971662587292369689980835710630210119694906694092303871290854151008148400121015451320332928461660827842382576157593081761376160130894182136442866933534950734981353373560875310399851601544041483738805973051011485926227386710704209173283566022715695621034343509168635490860813614941894462142161120360961100151127928553701922830776061265789305746705366467887032134491648428700041004617554288101720225540854662602415388649415879837759965352691619678930782693013529181757798898635081953610477056170511705232263501112028670315009610114495837163342908484849075883992835044000405615526222203705743784088300565867187715457611017810471668910587367785599866886496112547551793876143805160170833754873878847551113160039074260254696717951261854003854684106888778316169939103676157130694739595510290205347330436607203471606054632126594027323901040684391780884411376661888683076923892805633991003339967871433933891574243539339980225457089855615162938460824179811256575891713576559596133909112780896626473704598481200762044495354359802239164925029626307604701418196588480950519929450469966274924189252741230680012871802892617786118922186884236621961587956523640752300347125823410629103838590981367697721608749123969250348658289380456975736618733177872860137922909650246309252495565121973389288419685648281010481261535690090417932945250405176377993627816802011956479451114943496957976633124793336699925588364094698410734093495454622188403059231329389088106745619877771601046387330901174408355543362627838885393596342005190776266820995490605954608763016205125150791466141355916003554070419481086810057297262314240928966909576011817066944368280139295618936305913862549072247467789436837761868806151116171313542988439944796134715963273912968787981975637791784980669023033554764656159126226157378100326330738716498199630549078008939886605039997927032946901968953822349325947198390093721454672033348209528578821657523560962890601866106528196932282719110331749243983987031264655999845172721241869278303854051718401256530505247823627983177122888684854666436876080155328034046459028990174868050588704173981635823576290408184296970778010776830986997803194655770382381517345047705049442859137309323245466600504272184109014826933368250085251131293419195942613422966663851371805398229228618235759745669441195511349247597188988912229917200785093653770596844021381649397851478544028910789398473673930430575961643014482588788413332845880935840733709588963765379538547660078765439450029404574395228046611056301599579295814212041206894700794980215735236121578244855680846207536708048454461268562106932838988863937133459311625290609870591229975393016512077431874399978721755495833101232082808098897250783980948861132822340468162444379776464209052766253249577404895609353938693399392453081406428407248834055411137898301878672103451445005673489625713014208905022629780557451911377541865824393075356681030974051741901891742611624878076434715902790078725252870280459397629348577390211433985408591263576315972755029480342616215923403144064606098831994157814902803306354798344381923010540102278690184795365933774502869670856125177388274248045658669659094063300922223740601048881651277069086077850014831268121629247103380085785487294756344735571597856662080373876686610262818761767322501392324607653417373645424598525645833021321848180312199340584892293599986409781439066190015462032143111258433214390238569495977681409796844210522049592301001077447444129089972221737815607687995074906092677430563177666358343299367985176521706504965236574892613393260301269611229455329311067042529893969071700006944199061394317028836414249720015268168871723707980789391406723989069570637912822168466171097836747392318626862160057742368508504265564133008154286606908509096801329110119896373366711080830856078304264648507944054576151656836962158455808909983065610087827270616500993477885338058284180032637071234267564416124845214811320574948015266975016046781403355165342257048436016183615619693946579092506961745005624529900265515555475419053261927451548060871986123634417894568956715426557561255536491780249192427063806806472846460536173158510941078219808286154481310920459945942381083121479387371572152377317735314593700353241202956925731138959000003114177727989113991953743126105086364088395458507726047992525838633336103516421896355601090437657506353750440560643991710661245068385430935517154094968398645914744099577583327591730823425442177713354739999854605157243311464180292581076517032153125451753751506703662891144624761523283780934152655772985975563977677790893879566171170838995952691851550772847272751471912645532674470370865295139738313361246276223575875634473355092437444691080594912495076672842058232070082032018406904342529635767544474130851053313033462019587348046649152592232991508324943531823544799498248469665420510989961220849825310720886329458726779716114943941194053704798411461042063931989630617697920022332976790899340653000935345093630984841550329130665439014676523228537815592226169703445519598688516344089633283298875360208247481676599535132916053811141394279926914381213450416396401327112966260691691251648880843398104967581688419660811826470895068079372483910793570659927010717763716780007121169731208222934247243274007595494976185920919782591672965967084563878282002253079917405951173013142854000518188329942992731706941302277054530340560149316061050143718966536803453253365237585886518720744531245041353281034158157039466247391383963320203814155877948790132383058286450304949955563838700156749590508140269303904781507374293811321987934872527630066471132748457056756252673774081292661370102042176634757182461811597326262223252362200343343017183991535408973095034387197978126065829154782889569809402504132939237554600028371540181190645176537823427827769636470052723541038944502062106163008432870891689525716440308963974077356471570327220458794416366794076678193523828828293264880771455517938166727362913749629276914956852180435687837331303955561369521286161973972107784193994374899180706668098189543500766750065146892571026020307137742544879733878286001621263338519332648477963407241244197071280572995672069957141683581200959982818528764837273482604695455264400816904784252044256118922561179917930865268082005342269353977740158387111756080827674019495315871778737952498051088591392936464874278661184327227520073808999870182589045154336971974220320296702727824677502136669187556899745348652326427886405807019631318919031055067837546955806132318430939265070783017023861239078778869303515962906764512721641698158937397208140674241528853589986062175413134410460853111803667918187412103436165143375946747984115468365459472575623085693599816364139322590503900159220741667547903011326705625813830785593111656545964314698080164734357894481111254312874065355169751603427816637270423708258555788011677049339292215689597254707823779625226413852295853521950915156300234618613456725620246398892025122767898216657911630625533754579811887118575890764600985186551474973746450740145041672289739820242894005810947417248057242954513559776671297739662716678589432022925391365367523439647232888197864320499652054667382750598819555390756894861542239086820183454497510589369646050406736341469168424199850733929543387630609689632804993183921378072246184716753412134711151651287161249029468020550475469640797301961800418412387859059453681162299313483750232407901569402082918208569373631909266464300015159837810561464076533631304294053311154942435276992924104710894582332657501453702722918223106612958840274631273331542286918129614621059844722099749371723285753312588207348409750007380893813280373368544631643419162772093842900517984831105781201127102182838083120831592161804393906127928143306785396245377014758302219341815246873473896142387359965443763382037336715023759038172122074629540578471623760330883905022580049774482832991595319099786594479120216959556036314508596735567914682776339722239346850802655893576350072412976196752332085828056463720190882252472322905214121624227275592053612133466843976311800880102730035170697084142379169928404810949552776714502928995882472205990137215417570930063536109399699125890687953377998350772518357561090586701427278575228700253170042389110141847243385776973704803812640003747870252494412089915476215293273192471714932835260753329447230722513019593867349962698662338692941032386902740431087845002271640912068541278418686879540397084968858506012101627977511612737288398448726226962087560229890893432773002029283705144309665708715126998571052805950459831506005559914642850477089267377821462559153817160505297276075258333784247044768714438473001189910144420659550030931018730325336842257014756378407866131261723148645563702349682410719975704031524976825175896059212847111454186862415032205337954509649672562789542587525877363150240848142066815303883623794720690286113912510092749938402139127317713197827974148280111603418308427277753575107271955106404336082480619177576170525141066393770339992532665275346959296066332738511240157359548095317259307499702985495695719257965250983439033191594990811733005706495473836778000617485306308034753106487245266157374151186840675385321127307773419757839816876020239347823702259887305227048403664361700290130558020025451901041084723562123928122963526508521457281472016922463601695280079937987777507434062356856134754899433034461282767160818568999617518981785625580442292250725396930247557894213380255782870600076541795310830675613218362595904865131944905360319846302203524024869374935980737121872640346832568556480871472084363439228447291592896695865336546759991712231758638152256944586545800275381565193369261996980893613282462861314406447828385363062619938991992233091944520171512041504573203158886940781247739286896202204626368640964564259705565797116873672956976984074972680455426821556864148027750451821731713933289605396381140016868298971903220376156742395627659809399871859741880270290308241941524463832723967741006620168160190928600712754145214765925709222727473492557182676104873770244313195689045949640231788998621951614992123864065157258964820522118255538084711172630427289356365177214285336299592197449929447593430498951366859514674918369229807037052124360126374809271649458049325643324696894663429436168649845321690018831578998335351985073129291844705373450672725778474992080213926235096748232217425800220195500212327690359294838081994643469542296102825062401821737021718189789982528190257879274068956518998204264280462519023591515961929205516552586782033770041396781355041994509909547027363650118563052862317525426939065287788420797974586744601267231796206704064832622835662140644077355065241445855109672786664794611548619121886227408195359614921899653303885821758718130502457891131092919578239309900951935825431391808272686654204454431796305475588077870956960213391340553218450347386631520015767847140121435100340321368637967326687209292252819335263669999349427601010327955463719511113526768428366858919141974111477005092723123665977568793010552601793548593275627970046498294154950495443296802025547922465167983735283303069459054491302224280966436967602553913766143279504584196218495217590491938900059068425371659979045501374852755331618795180087688315781372984955791942744165410712502974242048014395751882633838461327238593795960312835542210657805364234317516912584029446623568402502809245220436016858618672306777525225125337741993287201831161617117488906972145916855218778966359147104756884924940733780425882156620032983860603268720789881063153204830690598611837837077104801405060682933121137363704271290481813187532671367284290994960573807827430911399967829215148795816747941738824674947460151092099877828487404245463819738310570679444360803002594322453980734869742004237705513016535646437777727586886844672241449658756939926768866897583339676267495126207335279616677208197489979327516696894854039383076500362259154772652438416081308068206911028196083474741759837989767094397765702090812038367492170467074957106751189668058227225265161735296989213205653467750688651008914518753838722137235103425415017065832290488207052051200234971100407844893353854547889057090654006450936620532612787126315204084897489625337292203757229945235345209334312000566586039194656188090416022213198342336181953011797585668782181013151895969839194949759207829592730579787446894169519634375522175717340884881838392317509735425505455783476218525833709173786249211454261404024371224155859846390193341098017044479421418217598049832802452521845412321474770682909907084118163474059791678999772401078289955401470112700408441587381034649457338895496929907705294885880439560567458673161290857286361936713649866790968939821778036560826315319966239243430835926867694866053378229201721341233296806734999550622672806954306229504736588541807788389152835061891721927485637871795342473173532876892375867668004377116970267952964680068763744390494660944878912141751573301367388010403648697628964292601757162426004522310021690459488614326179202076579364909963985758855111465899567059485128428268620808110954369278518502335317269714583104081396132617292250499130838772579927236757908025052338494037185345673661806536187467315770017639920753709929089307211057622527268646411603296061745187061886797682067959532370659303427866389077489248825237653009291081638951452976393906418214117399569236289637469459920970788089434178656209562391625029829842311776946122581243367668993482488338935199492897696886146533215211662233076126719579513721265478825043272309878357208331081172484722080998365125830728925600804265785780723888475072878716938443573049874154257215287787603962995472369715185984016944878051851357878355594320210481255547366383531285329630538396176409064638025622126470259639838902823836746296698039594630498671760409958058484709461395363900778411989366816313293586057024568909148815083142430657811359657758284253604642306007434400274454439105595591493546777329260651337824612091230936932927049411692719616110159705168746350467915458743116115697263011557893169214930612527991003384898281614661311906014556900953599156000570487263105255155444315995958642829398589262470477224969398354552395333982933689236215253485949451738461260081729863320386193641672831955821720572904048998817664416420233818012803514158205104374976338312430314760228919703315668576300297239054349761257518370927869405604811749271686104301414621316339479072004489288289038552550639781638452801340542927133738176535116010222230384223586769306290219362267957678508843724298480000759637690020392199024617665928399122011772724074789160948432849878659582822030383389482647053958873473016636167654779490202829887829256476181917790815590268149991630368091826706095173855673526854511589291713432662022077301548351822992325143634965392192828069566357369482700474932073685502835469171880281574703670165846225024814998798771461776892297579990447767271853398398126158227929516314736054629087531026716260327590420934588570719456530835183071448460950873406881856372829158858242488590384125914568192130170283146924093146214000960768282218788478105061466585757695363227936042213381062192599217885045176373442573498096509578003428576066825426049477398297932488847118263203094785417548658358809819605104034887512284704628389442391525575762360532394616220069390705753364610577858149342914203894197194625254940619253286977550571250242391097125050538445925720706733831405745798159252180288693541448505415664653027309818776298033654151430209412247443796276424889357772205540825007794606744017094448700778126834328471355238406532556551358908322240132429356094220863325465254255587154427274102430560016790152241825556558857415874154890913623989907964377655479779055290509277894393324307203121996805484739851523815464375179011542901589220182124849923631505108760701289126992317751972421924187882375058552582300385028897044301854416478658814407751927504393595124521422978964094324408518231493346470778257934281529232263109840749921260413168070172765978139458369651618908728253496632972838895324266251630555660968907946455730827464836023117944112516187743015742207011088761434241532808154421709423731070019876158885921920912504286947502986351795498660793925862052264766274006366009984645689452644688998162276180870498196507162848448876579486659695913821241253447996983558086285067360165581150783473655623693894426470980566421934294128728667010434301943542825481486183277613155821201612471328567510845826488022805083130714802939705863724459876910538403852901773567487530680402685429924178072393807620715030855062409505451701863128765318309065056878239626005115036546322570095116651131374123248189242221872908363355582363920198369348568857298361551710471245204535363675757628563008256297657053369097709490848661991728052423172362077035240359401202174785720658803733072418438029281467463195266755492635976793288026872171245662722399031374879719634228979475960651576564678535337716224326455671839483702899185727147302753579266395767979058114471691837066941450473448479618136355269117700045603658308395300172144089387224395790466299356868816764971596849796783435529141655052231190855105011040934774211454549979317320114781720086255915052799108348038584936485714694339260640291566812504581458010496826965607614925176912298283477293602890647760729758548213502601939577798938450287429658299945367464196421624329476833793895571396250159105320961227734704668453308781982177095512546980247085231947728016333989427283694429526750360723489176957590851807066743455669503597408402197911128033897185029898993148690554875331463419907825134414452700469335575196879564645303223755831226665436475581595829503196941249220617147683141261625457920886994615468697198621186599264625287107718266362766077155375304873187289731565150100631858565905165800199153511874828420413150776772155125265079305020661784524133337258102183889002355454111157312009538084579990757102331657018617653695957009386774412412177018580124560048985087727674619378581654256978524468512516698813152933289415579943281331926862193883688251790822760082081120046534501358608009790817169060494162198778568665122822472495280727602331149090621946150399115658344964574028480882111732280326855610323479940376593730835565970084103122538688250053364482486737691762250091541904192428436174091345270032979224240981854725742255257633683856725197679523536173182380463211312145344057296325888514462501469783558722504840712170400248887316233253482832841883756839500865107673289466720378001944148140617288707848315057157668798362754382064273060897321701550163002984697528592525104409380102782553903363284953965802966333702277207224682049175618762285331139293069468016360839330727917010107473188913794488732622014118921688325476348164137607613803186458688118862999004873736530313252551808046908163856381103878884370244296361889061641366733091766954670722246076402309991836174269168227046357427532019346282915727836993356695123770109082304956904977486457844959194994912013200988792618480895708444430296071393002078855291813827867522182906599448159062733439703841975434973461309353602192644956769121324252829310326355469516450476203326015232513696221310619711928624771522649495601882784688461972363921777665512345072961926960018490389503512613011961413515137940610388700009664712738199323994202164293251137857752674090578926340480110872863061362812159757324438237583867529883419142286111666977025473800423222697712611831837781469948726386372407192858738050596702761589867590699351078887100209621229055089718528923375177245237637285497783352268829768225259007647563877238554186259461379649582438156490648796388720968747470713547059900855846964661051301156456792360559114606490093190949694766136058974491645025928409456860201079854255322297908485353771093194322666201126530581760874290919435810348680868989303237613318764604733669557924880388487342713126598013542205354175669691454269476376851058728438235539588479092088182428490901834294978833353694691132125811029823235688598219200465615793713496342083152316397669648385853119027194138670721489952165370251819957295668797480516077360696156379534692479218964890720856124960001243799515109544609895913339096164471826531529982875796538636396396350102720918816187453654808097294833144046007228510385926795991818392385260242792775043415987675939919974725926361333174245739432274466455905765705981198298396242300489380314014332144556871628105916919924716925317409197204817355884159925035231801777307763523234956964141484908090683306064526307815023636146145943655581645719881996102943818163392910681158475437340106760342691797214046275648765682022321755718123980090967231226861076115552132253868918489776157021265342826885735186677917424500422697758318209528478305193193122250347381759153059128868621285544627564173678498199104983113440612979831690230934834767504002111532141865242745034780842070238262360049373731770995447280806781116417538369283286892130365845228265043651450495340529317690377925793774540238507554991231040849932907155657227086600523306730965786850838533080170899795115674600384141416595540981761754942452494354739783360430587395959583194725877080197798468815829319474793845385774198225088757162365717135120721691812898897796794956112503973405815572462928633822183073044153822553828536150228365073968418536153664044946694747005976949094104071768216259748262958332840502575840204011874947253092881083438745867332427501269323282974069211519511810138527103114620034445791057685066062957341406053789776694371034176580002471951596362364938748175698494188228568284142202082397143768583394336834697942273294594955983136682426242755843725791026266271442218821122471991578007560385849839358142723357012526524108866228914596155254700695673710455440179750026664553609999766365278894131213419794952658750317017649602293100316326955481866121275099491013738116125248702076207988945299547542232838330455504764984168060377132738770441501115705169532977692909300156053661180902817871849630242274376309211905000769235350981705761780385010017840415823424203548744817148532327420246022793220046007681295287544344129992902692909703569302702067294907970310683502298344808794052851734928417061381964043473181651543665200108834524772545771134246076821052827467026366145360117123790916328092459254912378864640624736629743552816300283599856974955756744316516391727975169463055874031344142818837700728319766205749309716500883275196834256810318955392780963144785742547254702030257203620011786510992002444103558446332295359453802615587238386973419349831589873703023565107464726605782610661529536370734598449074594362108378905727945969591109252476976482220467300920436983249657203949957005843460371273511157689136703014692297361227521236296812285190852939003086645644379467786495534158021380345543046625737584811259601881822774668144325817641930562475061593827643928409228801981854949175445816077780846306201317637286356737821651535298321698787486268133094748354829922546950452721876868034935451582175396048949639921761953751047314008707505340798738086995914610377841970692753046269261469279337854398472602159958669551466793482499785469885694303669811487124706174437006815709146083455528266333469696142526020023312755106688043994093643633637851894728366793371455967025715819508977412979119721318595212953589671078652776928812778741756042881559791621546520285490125172557019424243194103257489455933275395310758512715477132130073544874362098171745316595638508662033040841061503447370711151423605376601452655538896538848419278264200915646469057934924275186388090186183076902312769835830481205616207430480384801127987159385749094880268359832103792884207319231338518237905423613007601066465908291721128397383384873231736950574985046867356646949726346513787453759967728178355892600935649381748119547248586535869054506502810730588502428786429834018352964974466351310205717979996972984546838803256132025251778387384385815509343525697613904634955255653813081114981030287196082763849266645096915208693044643810609060713100645833111299433120100739106346884505513360376234034033826077370067427346899071978201805954855838288062998449062744634256380982487954521935457648639646794436597816354551428659862878298603007787062749324782558010303979483319446823269185782325507285458753338949194386502286095268966916488227734050687568260861778224959198235549122260753557917430316718254181959744135370650806091736318625622840418232725933501323868871188244593306156056488961065391352627745393779611186698169069919881500555060015399858851411970211972946707018680082210058491205648440467218703412858775372023749748764489734292105945743645129989605621231440621354470385606228949798316424052165244370629485425835727928406553619010300302982603035566378125964731785011152182664174445583553169344981862143709038124344107234947285593410334902872638070401373342167016362007525135200907755442169315430390603704530338624637970562844338664173087646645918431380954145309906584456626689802676388282072719897278938718046908307984226203277690227222010696709457502352711366636135208330531598468330393982793140997921130964480230682954423519179529547622136143727309066398834581546712729401519543604612009490003382382118777757897909297990918752215918256872085526569709237084810500466304794784219308526790967698050583789821952452396196933434123678020229742257509962393141573771517883172626624943636786164833144286728420617606833842788253025628953350143664477999364649498124762152508147361261796873725886486429619734146658244125119641217135988555270389989631626549886203063512689226455096768817973844107872785144331374634054766624289053859142608968515644845671970971750156415296832638528995539429691489277824157775304665672544330536712745572766869374924769010505729321102886452872260868820049366062845281485941350304189490763520662610440974682882372158769354743540714048023171397944636306525854217626357311733865238396833285960523531556471743179775764186529723472603856773380385908517358127642562456560659483507249230474509039108312134084996673188720077294973969869135220165218574655098834900069685392605095284951783862801373550873799555461604426516246511144391112233674928102379503758474926964569761941926982619455442435432808765109924753866481680876058058454763027614462543641445543801707943047654610078159395243218753875637896569484270257101316018519846493320880458254083615330729107472459043950543024149681034882584993016530505131148846128558306418342313528790016217676680489571759310529649050606793745404207424934599494098738418484347959041019177269708984897567305838000873172050529225841313045651380332598965673725402209592420351311155010641595151221253230197892239220607846199103051058819010771994697869977081011847951325077835255299341861727693486019172254968306225403027101909740186871972886582436436944679566738861044395162814933500661167120786138813961652641629744909612965796229232850676178700888229308497364426740325604271604925020606704274490369648366529696907801968082236404159632929630312769802726836957911292825550685162174415419712221656521748015363986492572531821828654853514558564689383235013836803196454844613880241951222136320839941829049064996412812697477390478883201219206946405455204450852205617550585754761737102672679153888404139022201910176626600118973307330735654458737577275055897645735009815984914714889312139014694592550574290145192607394590119168078232452929291352537717856967841777983293020246182097741403212550007951334965627206878311526159656695445790510870686499200018744239432068097702901426917509399572681119101403429261568401926319279996780947311592950477302381197720128077983101975602092031871072637107590091152653723536447248987116465137952323072992892249607862995995791774709813202580875471844265252465231421554572641422189698107138997821853102902779955080395503472558110681446499172669131147695389834048094246502533662565681038808906525724657601191982824208343383840682892213925496555712938273764043780458630230785117945499920808104389302728075960334764054033389741809190667046137751384283199541683145717797507204184024426918170923468603190874807224073410963181803261270921159214632085428853025188924170083100492197697817768089887475669624627993447147407902718269844686691197523345321285092364932609479572227147545489127258689871130798819752045158960763056960746602900463204792389621634226299944851535785788061689410468450696735341123812706215739717701333517678511521488879492809201895309930884355838656998688165840488418977114008703787210629201851174002523813481915967736711402447054307956027312683753912008100224463904139717681146791641401953677591519304964607853632911753887892753442720944455934889031459324691172605624573931980588334818150506992400502759392082917477421863885216470404622293227985185546861809525106285202456067491197035472324887340909576874743079878055631432420357540109179884944239908175557037103740535370842722775931720771749016120138378474296429019951795643751512589971562630643902208759254549556145613764767877776202936497230905183761044804896619127797541405286247062941615509047182020868319708507402346479236417719731475618020399319320984942256899388103134369100568839474050693458833487484386952666077246156687717479999302667903286656578563599894672037555251490392507062784619504573700930174294390195519085934749158003051556244131972315472573722931513936736908405043564359590840101235489087665886448199432882488738937195528346384835821478830117303704395921198092254416945232237223391941441177987868547725522978976050457956676322963190816672707319056800699710427072994185875211378902622051879128225677108230622420787362987271980270498678110326107301085151827304514353989766631277537482194055209189740931496865449373246256159986547830806926228640243901541037609880079984086654234129737592343546937173191517621916555929027521602067987365719930457174219408186804699639344761336767263160560328872916963521680007548189833350664830175967577077684523870579035926352891331554081739295884286737344276711165051672509485376515496461935369581481804517768674832560392108715998704416703181564198693921680576161529117275685067452149179326681772089905365794038418738218603998501980031346606313599484113266266263998208927764535871724587691608358401018613868197858736062659797109139694711179691611470213437505831630210211691225580647593698736551643384940236967860135459408203733730346549403268473577031287991402120930539328356865331554984426046695313939726301063279505057063024198787527541494335750736627354959644889082014352702239182634939598468675837573453244238685403251324512376882162490984042350167114208266149072078631375493339629746381046893893558884802140672131708524513719100039260030971406221491078959160416546321130617970511967027922535481120456446939999112625934173689106074978862699461859919103653569068551116364633421139813069210376583458448685573402371962790894061367036010924741351139655201096262247365316329418523902833909148194187424893515497998534243464716469221736797729048661699803796908295289033547460712739171099380095616654992792490260506387268346685467770029543971343810975404425483229785322856782428326849547816209558267629514930530699030482918700809780031900094819840427636779938767738283333149116329146873807947084721792172136936176924179037818447066969109072969374985537152109888543143813850500629340340748656584971648655659057707648526939841848350872862735323023436303458016014480583789574889487615346291155836627730386698850079907245550052867509104306689958101515051585754451745176479135930255026527858075930458178455025278426729018861112003178592087480407838876377163546012464143149841545374856276265081206632711380407073744116454439143489520376197540568745697326899621304653195548551095115038023228121488896611550455866118776131616586426487148178076427580428488126410263219163968356995673343207840038255940598760980888787900307072105562615426231210175213416154845766851625972138095729574076272857621059346117605349390953659456445038554976073706567889646495015432273419269346627732059411529387435187314037220127283737962024567737144632279142281860350140689943784329818390427276702473272269104262276563672503110329849004065227250069724088378766079863384813415382709687404355066164897153208929466852546276776261879736086731053958783987730388358279109643953942870011036425858596835633679054615332843676690025182342403653437669231726781785193190238611575697242806276173930988333544953307841377353016449498170772885635258866606929084383213571006252214848911918015231705979864203341114390789485495194521445104542943381148330932537206375296218393580459545073441928218479610102664743547464312506434756856145011921008300959343406593011531616286529782465243238504365449495850685717201459842470515571786886763303442158149183254576534961867870596669845423537292523325344879766114237816093840333557092636388674552540097652687018119943174085543195553313092720994119808533830886567803636640711217488006381979705882257983441356250531828805521044397598558453615656918617864217413909091683498289627303724052187762431696696068352437781725297025958057771946602240391232770626080586837324091163895843238969526643155379890582240644563178787589451695443181517881612779303861160150296216859186525208943319065366670328049495618793811420901746433445126931015253919252436586334533824615419047228251433845286751072133465507059572399892768756084815826729191335285026690257095896201808751409559440258891896187707395432520359405644656164599990447961385502535025941938221752380583578180975202423501553550520712907331496085299504542414161649863746035852883857837669130213557677662099888564698561195136384477840467219230729541917367444635903115221080102362279005057026783713524315692721760898733081729209831569079368294511766198748834148152837971512841108213157922301734129631549529609738399239457667718626445533108076606151314311178733534517761282084875692721992237249660126358907282443376221737270803804055635996732801753989234928181538235072752451624997363250202901133264480746543271476676625629447483063092618395970509652230096674977281914442243280608864743693358773810679955310854510981629941660319601009166718585567790375285338016662363569273474247392266014539268579947544452158126421544508655601456280223363953986541842831155380964091600542826337390254817066826677188939975922006799235918224394380776606048339833000824915583064608012162180562489685482679505350396882683116726034606018968924132735994078267557255459840857842940789500721020014668373490868676995740436689260087379346063588665796207612408520155733463104037277773011079646291132880187229533179804621030760105513435193793508992108507797540178387594706357577022812188840419867490323004347612929229863816564232173981342382235040244413672061504540380205615785135285027619645706838760757212159036466130435245300792716751894049906621391760852318129809803764578175032006765346007707017268643648969056310320804084537880219582973290576674532019818815921270498096787868483715407029960048851585433663491507461616080624397405171476577058373808109072460021433693411739592239506603943655345273781803468697253402441427363855850294308371396560766240492418804022809701209533351248387256001459929921209634071826658596921513844073501474128679515658561092917216420532318947297803410966924712962331245610616175944947993266762753069042545574721860960227980611305619016802072902939260188187787998495602162586460569492591423702644615675924499351104872765972339587385106970421362012325028209962215790060706317601442530670155403378046927196506899352083839370711391028391760799915571983667408331935489327105758135437510321459105168461479026125954562760986853912656289622161336229271458113699571522280290299126724288502513248310005226811393699313135027184191581420823849466166899092568861500750407117172564863854454331641190024896426538382934570828506298810256881158432475491401422598061261823017720488594995445274159413559292430628203422421305544587271018661364886054831875011259906605789215428254441242365032955806098783693100902258670370165001352872124803303121408679305387203813882946891384899148779703630246446303081740467901899423476111562459960601416612412976885376100084965860787483617407958490258798089596786019690136004710369885315865747113614091024721208351685976601271609835955461642022703679774804379429980482852605658829259125556982763269103823439770229609357589878305392478379622748882453580244845250243005654741597579384241236020570045277651799649778468078274954021195787387168105182594989479137843097944047517063596513478659606636686775312839189007710257229939944643418517473184982176827528092643957184136570451665181000124908324382678214578109537844207215222888146790991093319781955173286409702322289882734088585382474872529179635212184742993570026386887946685603827629659031739845856208163395237284819510787286039097867540119148352178229419627232234636445725362791428676570552088027144118969491045867022690111595873270951652121681532382262820013668391637650084402926830066534305513285589007478463055208087181969654343663358388036429223439985095956664879187243055113471775733688277648308930627936040717324190828324207887473404272390754932278338802185872403234212919725543613251577816805326478027244633657500448601986546593720141645181322055303952053705399115033521791752998450344879671143397861269789601252941385077306427843762457789272085611328205042988306379561255781502938164518921625920959305723646521619236965632850796148791355854463705105625639512373898912542868267108216542780469483757347858614365867577264903354205968306282653414497416024676372291985372951446558452237479506566801285097493586710014357878299239087082123082052566467133192157991679232193831879166733644300313114343055551475030587036096105423847933564543531600036113856500085539954296537434682408201734283242110195250100059878679597276371708686733800809748501132335480971117828662470155180230959357199249580604883040625712819664937263340934782227087969039155418773659886237133626083297472549382342741546444679546321938929749552742623559301839341311634703860904760565331231200264922214134737412588659853562272037972568848296665985679195014166953060546184926050618066094345205631301539092642356242276332400828155270013792206477248370904739323118179945828070341460826579027901895222646359567498647762578801666605935428313338033589125187603270851053822235969428785841786050462514672503531093660558497037289452337965627160805472868245312954753015211969413783680979910317405106197599147878143667202801542389304750103995936212591280023396058700770731435941545372765483988968150957549985243408524690675567080665599070428999906545455212825607672281079794358571682313259789930098714197790123747025364396978434847908868891401836219689122608262954356866215835819841706167012579592855228519833272951940098671448651545884908050193497928402184080395109415424582792148283090444140393973158279416314138729972581136040978866688907199273327628473104056997741009680713207843750110383840790296553878753645768698343742247171914396712547666140849546033175341873727812933626515873118768513059340376562311511964800510499116984740729706925345371526627952105737329489464729261352494906077483556924762277170672710199332210502392534661807581253397412204778318228501115676618615325989837204827962841497368901269739004680532120898466556071319785460514016123962970047976828170875711076082766610651507354868972967288171875688946301643371985780608467256410079361936480614672004431364100773027957959183109733929130372150513045947206064674278257907935808713117045756887282775135896899594584592542995916947158920023236335493480226936403416766187704050152441764759807462609871652378712555503649016421403567909911997933627482022506642523164462325139589313666922447701181120769689091979559457593592646155516249252990564092209129106012660036443167699512136791316868972580067738122311489366199668750595798032568147517132989215624143052889016069354543368362821015906085213745844827971562363543559641873575051803029877818627367988988303756453182288668682206661171995443201160071035486471770350568543004280033123481553971404040456895608942592455593473158917002872646135745336462019698456041813971347636712868180241827678286391585257845391990954839970249489738178742718381265030622354179276809720709999498105595455667165703220921075280043934724399267058959320190595138990317542377858802355739973087022800416451749349794001555323008349270907257781699922821118837138815628512893547304382594846866112133323603932041989992703371195451361463951810387098146660158280959119429322797553210514595585539073186344976611812549400757208940049971903287842998405273776191839346835882774185469902088124627035125563604153791315485605250412491732426537497519068344640276048999618003969618116021659099497756650908344541909596335501372581392556337294125379860142884131584251225113911842217626354861871416577836005417296571239553512485506366917577633481864185513056751055316525414292663636207840454351513040735406230670942025090164389303791337508693989485926765088219094856917931212069631082352722910908300492218241781150004339474192920362672635282101982187989448000262219991965406929245640730810144268916484050958681053662769509284350239381324766660776277821534988734060206117248355988891304332909649119710371770157939749012397079036825222390747292599395457910891087813533145126870521123576132714719716309001260972818133080216117521079572356790488909179829384945726736451370287185373444945012667044488346993833142482008003180199315013285164994592781913240204642731864355880459906315071076469092142218216401670013739853654224904357333760697010385072411652404459305336020133779212886317417858358644372049252190110916550873133259169152952235909292285817141488501425876176032609939024945567680911868904359880941015354029148924109957849253176554218718226189073564248708465823401144945373139645315603393606023747342215746926104867585001864410256004968132837183479568571722064482816387703028153914055622620805943381052091384176026347289643484341914996434953539351392881529191825098801409469433648201111032420995535732455639589243861874853996230101770446804800934412643408324057726539415689386819403108965388017357363746528692437165092561303320150919180875357334623342116505127828849174767899533373183375371373679068736317147090820635067863605111194121099802579678563349842356018129048258093933950132742077737803315684835275784767624377723784167912710100555153881462299925082647507896087621068241864676145062667120427717506553211022019112292387084128586090417968392057070398451579056845609538162940649256709529686708602118357854882143420170105059674721887720550554161342154760733437589217781449717391804295768180169456176754298760109507032567021684760981081348987895377348571473161231211570223626523223500116550543751789595342670978329114321232028940134284156154358614739665048335124522825470035155039960762780933162208853719512558463560520379088013795659643144924517367101009835421552386711653455953838744484971205577211882459984525930363483104358949801845325652281280914209594265080390544895124635422918984415253641391967286247319976802020468020071342552482446153297554981641989119412079467003604614914989737820642928655459588274833275272913239631226892331057670886731555840547811393669281995951682283704067843497852741017248331702300899974200448522964101281999368476052133508992167511908899785273653321236752900394219180368275194961370721275364748810753415628883043584699703398499394463428896529103228041346410922857332038038049023309275643999631137565830011128785142010342807115380535095241462402987171135766858676052583812805567487114401712598927729638960406557582402590865615817956396521751837338543997856320252014833932507648478923553207727567830267364269277850216706914507973300258691290019539528189100827006480471538235748441935918861300101499582515822804289569023868132810684978824200014471430945113914865506452210697337765316071077785403994605544736503067048369513795186361488755864669370465668375569535281695727044908217810226572698634742407317309045953216607561055462112366788435879371127109169234897810198725490743204530187486576840024972454011156099813476816990120620395125364256744407974028943251518474416255752634516004089001880285735957489330072395665800261168678766266521308210828243280490050431608506144839899358523286250259560169207599380917123014281422507851122688256308596150825519573163505555271235858649299811547111762756397991380198833610047954295617468819171491510664241325117311625139302620199239571369180947860558754252176604459991514498194239189875967628030371670731287798932974730854517055887811257121590583314603438963218186806657802238890855678907710302465762139480421729720691956551433569468878392554540195968009317419853676633478122768077495542261914251335376766040663040797859369661418767990320904578289895009664843452873637904951721903695984991572924735033810801366624340503013625173020224994209408275624232273825134916662963435408832029850786575744659016380949557096456537218938877615775086060805783101418852988934722669711690649980747362989845791438342758974473859599707836213640607934540996487205229225508244159461018931224491201848935340599282697875912270950047839465647414043946255729521041682346588941412479622466222437964771723878135426684704432680523180992056376091133548966072576349832745695744326658759256580138467953842308173402023125916880723921002027324211749775249785117392545941880502351076279827229210618247082447070191209842684151287084058301403993315918481815720050878694968223026476088935211595852059972719306476552498014574508115366587498807909848369044128033573391275422710172089603366726972150167374783074531125110961936056271374383546097126806638516267536235571217357161763451976124671933076831884128155213343014744762697842301742553523608875676298277780237849358015063752933773173538184758719180277977522213596049002465217204173759942752173207509648446255686345103931837652127955319351386439630302580942670471994728703724822398763967462171354736963866235702689836272334040180434209712523510622678513790996782578909162490025028631355510634115982222793212215326089249121059022486753945473705228238220074310165271028465075085924711698265394807925909852036001917780877782242811146895835664132784319851827862296423922148629381060933060146490396892753708336510083940287428757797718590783024153647420145368351874817993659193627336489908402973296111958054715772506973951281099677619498488074018915219995653353807894579862221525795034646400730490948629385232462714613158026355463071317288117241590989476045097171068335533876503328840043789001595367030999586296257490845670011246705152755370506266686391013653566310267418924603868160757954212759558855938182226577744953763961253560463201242520156543941512665051738673694161355028529148093165957676562022236060605812273236411119541605852493937410863563572612181880868670547611139296242876734001379039744024384613730173349724340319088502285799900493018524977604777735057812520193839235890914253341627980981876355933146199553098002731549665000225072790463373645079639495987851219417288331855461388144260113567437288350734270097969621126349286065478298418896241045942674641728861210540548432416127052883766790422268402197070081268716104710114409758051133152187279554040128595013564365509860336599940385600369533722327337170624647270703386663384475843149331976934590554738277444976546292795241855991626037686049644246829903805760495523723001787262199312940680575636014310764896289510751764344592008758375514873625590148112808698823715155174761902394493092439949456657158058232860899240512781346726906750430773685997467440543105909014635285959396227268439424853323298245774890002635824106181723606487086629694595839469393225657740033050011826402506364478191167779148617429694136933839012214328864286390021842691334050923558395988847657308671023442217817056225946729848920910428854752340880815066200390961940146039288537269231371298516932238369743594813130174421213744648703942928781823590274684335128397486355900050440622426584776221430314986432526740062929539774922873313616755724319457790489285715032107817853571776336456414917044271188131184297306944062900302141163117968149675913047491167722577596608061235038724226815161734173251609114979328135555173652054777087749700230444100221720822530267614462518744846709710329097496083452643728992512500476474553944720830371183450500679032911948951143976755462103089411889302522376480826417674367334259752067548384367710645744666565502706468032233832903543313085868672182543103039942973755869589963367111250332903069227365890484192223872821224565983057163753702272695442293072306601546120369771673730486175525633752273447339679693967924187884119448420118463104816018674147370305694644417201085965335353570485132268332337579146689206408424320629353142636159410853568015113314382468922036541038817171719988501181775639822973228641477270878323640633614519147563921098150448244337885201744413771999699367824903296791486856969802977465301394342393910469302212830932700410192689625326282200723060885951233785303229575001112971532713771526671104814407429114163203337552910895718988277424136468990956166687944784790129999862155375598750060656487538286904315038729221054002372967888396242742894063584498483809213926298386288643936769559961959110709774539469439470171508988876697683419943559302453250427715459556303461117912525729497892199838442235906274372758675456991182267606426456081980562694528171521638771400142981582451164253387018080353427804845841895430996343421431582899589380598200164552260351089676907982152213882598584216808676351459921766897145067005532656887463100977890249970118477935575497904527905549989661342133416755452891640789658934781774746731012948358860692472321019219728754203754388324319686027245746600927622000238330006545099388189391653800852995062300037540634430894055413838480755002266281205620605066009370852451701534938740397394857333289397667996270079127397913608574868607916839775289417290260723660613921897964285668366155713018677971395924243686479105429413844303335989733196816850157705174415512724708088319539867400860742941230081281306184042975952735842863252143749534707298957002814643173226404297409040836645667917584824712906009940458791368969404047027027285117265107846553337736825298414683702646634485600204373353392826900759636425886122612182302224878230172010298740597758490473567916506930840963875674198857904229563592485437415271089562451164376519477018140915459339504408468419412977744963903715862660252382274600707445622933113703812767915775192491684031210871748455205283922298527724282231010451647977698462961664659815241010222153884689061734368309796963468998507397014758396972890572935398059550122280458302104885272697332756186111803801189125261666306526909738776587679063080326895345933784813563885853569456342347617013387344746349536727038951389601112247518038433429883061939258213016837883316551985884967570143833343962990610186602593751542028925334025439365971907435278287141963645307991846974725710105775928989378658494232497068742374744404520879538635752609766915766001708530414258188313219123004262533247410729690808641438823133902578546020809817684310233320287468655857756680417296861836695230597817270911492071842898395308987180927386751219643488495191513228243558895427842550591091121483251911757242527974550385096107967538284542035898135246872798130833845479901048497997259721265899730616191444225937968905263259038979634041868124958175106774781689179163866180952255673217029694543222230370341695351972439719979143340184201015902444473294714775042526522514306880336813408395387630139091545112278079108672812941572228023145113363217404854447734072835413536641653170840597743550122252897108418980362807916613205307976965538107147825156209460247152983968367181018123907829408006543822606713572570756852223132452163156621858865769987781879316083104148518622791635524366025714347039575232895224268356818612293818928277509344052739303332366385391513419402384327741693326671792461326279082111257940452580491396084552809306383773923420249512025132675021797917214929366236277327316091719607606562518019904171296943248646565819709222690946761731927871556599722579881291915337815266947962089021806453411836611076943261643697975528471005959077328117795346277130309884061187042325410343429880855760609503887156243658508382506544353382441885059254068167728885641733861551196485589329885676231813434378392762283425649408568185565573296454523201433189082062735810938415073350609756470130235866064122768380533183993021470799549319371902960739693177821635355765697240692759719190039357367690570947255236447858927964723620898623830116351814703130355422682284907290874831717043699202429193037196892737688478252714119708608932990787950637425204167828158280570891797822389729801822142775072454024257336912930949259374351663375897265050404157403649437407025821280134131726776012427189403305901935124465850872165779980711124766687637308856986238428217239666014384304162586667189169963070731565991485845830905588579729443494874098462746549687451234957314119182926914979170327053466487741723038827701703288566920492437618047604789968907803229323326065922727712585201371485866266189509943368440872559232006908035480578058431479599772112693446730108812259478840921701407767389436128366089141025206802471434101404370389038552314630788604481487478445972916411415583107413598740187228249753021751343263937940859710980758601477202628293684037132570218208880486637101287804580647223144685768698264933021260714814085389411905807838568374841210439242634328056593105737363235058503203237687106820198646029203915321896423636693456491876659634009560927666228256059976402835139259546739561909863458453334480355100058686482968478814905653030223051061523426850401952711992459059692203531583337169956081001592776186729734436024663862042721821415650032291385415444479408436822560781841245209870358242809234192339153542586367331263257486741245316507030879549790857692605917369892627901288627862338400771820804712992612481648802691168096869729178298332826509813610890685191490773441054991537580219760453542101581992047072439489721877978842299761269794285392938261728459966716318866541680027133812749687746539617138504957023734420291232530771017119592371861772780123281577703462695220981421426006666052572642310850819398529082017665608184703741432616486181610376013745465528241538081598559288331382734683701861547022893383749004933342655275458241836072886083316149029468488732996841756596925672256900156905994534162546573701444777343372177817507632084062081200301094262644414616899715163903485242164937399552233378334088364252452171747932225165834352522964647010398054976313390041972430825565852369976664149027161247096379368823072906275147660844530845046993462058609114551857570163923187811696799061023855093140160829716937973772393432346236472204961135258020211518555282528864215800752683264029285853411516591022287678025251196166953677312811053450100412522635000882276699671958740097063505923181703961286229022710224056480223986378964784271754510191535109122304657542719923280545407157995363918435910577318815303748275158019331316862616869966296316840839910903164172485000756914178509142175854802710156246108647090203712797905381286581248601252942436867091273194869380078297211117472128030220536275343328367479360728416249344982857576205695762173693735637840951943170050060126491153242246760090273042437180160925203533539183019334475123271452025728479335637520377925660305365797018534000894845248353028868668443609927983022191277364515461257856003200705347807291266780594459930222730807723877270661312907747653860690806518739057366629785425496185817643847825795209983417616638292794383527804372747938732128045804395298577645332238090258297385320319329349484252894491291734015722078176690235836303110522972059800138452574395342305814707556186285726627939960133733688655688791442901262992815705957503613216979552938255699439974317727533602949957228718121447656099693459608634273322325580626170890682078583684306457157995667851581851342962304179252495169345022004367413504371372450796508489635480276165747837645917303796376459238905176782062060326750815659591158392115602016350631176944639890311417366199645517344826614542617553225487028325244139040045649537665487975251857803696126642749532224490944621102792687553654720920102589280214243439413532046023549718645514643079849461839452396142364471400762710783929704384501107261579863113643218066636030137168722307491530434410363456426369305182959582869910246600246439574794492583889064922906288116458756535866558999487082592392718847391522268763257869108039203759893991330401907662355979795623174971177489607386328484136840960811465968188719830334779577301399259916801982487643629780140749157012894024478925617058468511754839292986612918911807939965296655290785423660730874232750533381287439897396079716752826572208998710949644389711256182616120080322661838543169824587846183080239009618314696757422882485115344463647738162744921689234271560939955164291337275769347244202215100524359351703264097548058022913410637185597319572606791032263781182727052064379985025257275263252240309019232608273748925811164954281785346643920914455601063739677970967994613716388431825269874486781327689346276977148460716318327825494867762936966784788921002215882078742518327519049445820729126093316499711072997132383720621271445960721149534513003101566391171948034702327522857988363769671349847973817290323272126370941942650544804025772141945622804852855899220340829972702970353788870772975662215347542269017916482872868893235230100153683597566549730153063523286966371518229552236109490753639271284280912005369617515674320703936683839462895569996349862990195913150199948887362982305528934053837230055751209974317142339677955785518046781958480499805079960889204210011769992232000657580707981781569205309093669251931132583491487015481276709687191751877549248279407202617708279849694621358417692167015497395541666061636476415519102244184936194190116730047342621171136870352471913307105751456739627948524038281714366628515692154127027805496361987734513207051970423392610241005208447997109662284493916315437170188789756294166019492387149422211676194064324027088279250251240268185865234376639805025444004696426490887957898585864679638927961914541912075989058625312705627377671163453885001045265881615796619136967657319036406740334252173173577576386891875133313475069336538509166273690631463363499411104145069434545061169762041380253598575839335109274606844717270982502878024301583964996119817877781468378772590416054200230020310663036389852948705955407475964905562897880324328508873350144343185478161467752474910821671705026640142002358213100061842406193818338960082533505470956516080257714251852313225885199912301482757010745538113694970412095994432491325152240345280569621546552059877001120438358661441040363663369955819702922247017317247655498078106461995104173824032870384774552468007523370134794662643611640735998017536957417927474220316254571907138661870324900693662781919191547784198290372755803228018173710704840813794402154748307868309674189967518541660579908053994197834381875042520292066093626679752682361700655195879333665961320530757738036144377874693079532010625287914647544419031315812138925103714021602019249973752138896891925924640438618359249315005238220234986367746849687803896426823280769025676315089045816452593279577259224753515032042755033844382240550702702602876020090267531960463607412350963910205390106111181353047893835859696327285608325700306578924928427050279155187805814376425098452496624435530088910840355386810652280507144150199416078130119685979307529373567020674309000248183581848655664853839671401659435833691165778405004457117740737602788477518300074482912816529315578199023945680290595526484687882085711177001152574196898131232197317167735246301115786472246350427182542460313038416718936908777618734562337381838234184223165130154451079515110964101940329534317074772694998885160063168511941195286768680679667513425387922372625472646832442514423580796839913214144958654515714837555362792733410278721169408250887436949518675694906404472515224405808373870788104714435352785927646556548354626162258976239151299424427055593592544665200409525139442272607494622970540335266333257469505816282074994776441729288689443885278515971846531829648094225446699532803768252086970262319073874179120855643761865622677746114508493519396830251779848470874225043965827000014270412000843250341789629081952928026274983561206433379564799410250428938279656600654011548871308710233562767865892395069260174262208079639592837507595135019234483657982516444756966700328959468880504034746194256667995777567869043355248227358607606838979150819181781876919424971557284442212919069225014348223032827071524556343176969357183061795703726342272662864749460181789953261075215098153817577162516004790687258476634133471531772963650070682026476604144107867537968491979690028502150188956391586751715867096228881025793237712278360839652360351734047376541441309402570546430681545170502851245171569021439743619946649849300103248284663476174494312414227987952093436095569515586531822798268600419746008979945166857568210427854821262203955406543063239941879384876431964244310754262518009234744944030821958354947049569058213769979460974508961544775934372359989075594238758007456893074104088167044097301565300480268630638825988129525702883168164177910557262747277048077786896671390468331630073197265510444983076443776908606297280639734250487297235420401536410111367965743249217032203046683534599783849474656442107897077586665300623425214906942681022761802968980845754239455447318850098071211943133651502712709880521803827972949472824733259980699539212263473131836166868093199110436491920018855351177030939502996907177963424174227510328265149812139386130923114711525676063247955625311572233380219786284703335311086074779243909184508573311724709509083995539085613496290441065664438395051242371778133227476334316900457619614383729999077086828823146851319237948335487372042445732949379617163500940686252830286260491286732489347044945522958325371291042841353829920502308813629429975968854836798369215293569247039519160758120662216659712415038548162285814213348964959332203577310122309781639984003913561203606345828858766085399572359088950697303449415264283266182946993735761179328843057276475356980962538166841500430809800466415957428282988056175630773184130911260935181879947248644258831769882904893990468614742990452064944608796526241979816600738334431633912016517498626253529480895615545759948827829997660422262982501386275801027487405358285544969945037029506104213761759706658942060540169699849431205556855707979613747660680395627325240755749286592607481202558563133883690634985230659392829428364690829589555619678837790958090835358501184740462036408791742505602454876115056384144146669364493656875774862456830988914825606921655089741309692051476275315831800638674047319619913811845877439854136737220399144181257283554059089147020435323005417611238383858023497687031371793231106318412084277817598690194733651042572503888441705690654913972601882232198141000262045526355489528409508793791051619741591321965749359260238984114110747940364528701515570814547668924638315845119005960462956338342059825619335559500469651484878624502280488828432628279894585192682402993218428190296946671311855429619634336096736016538560261274950316986137550401236808992470284481099290393286822743106519493815527599480322641070562598349490866473746710409418103984339795624926569514297573340866718571888716705162435169681353069010445193546446292916144693074295666629517743580837869303133264187456157153438998854734163034152627015971188731400331236886004001905287871140737436027109001432990463405619783473083049016181907968379283788576456855645588594732385510007563943647829860446117432116316580915953738612636931782978802007971195570739446083595628706920165955448771445458746482915767706461882011708793012709963606290492658706766482037716872699185571057323475048033874301579652805724829335271526104034465910807607498950863142620949529740693992015054011739463297833392015401968164308000150601927329832899633717671641707401795976218610980618173765831744922760354210067989685743556340173917083129424253260406105795457766193898900597904875478680563707538354572553941823333242231301514928292148771086020319541668973703006141074131636120479032972628468158654869248712733264808949370317141684451626869548035728055305058462362331965594001545387515278748965165320506214346589001388882453904274763875041088546583295828914645377837793857794812909075197287453259636636529219787917190232950190007272477438801480247380613701665662006406900427943305885035159983345237447398091329421800820591590719495783254234468064526767696028813105905348548020022588263879912094623724634834678802728519221190038199304748798812522589285890837665435839004043680434775637798990988569087907902333027790775780169480100835607591206880302027625496078734330379206681248186273300326008172974904384827713159400826243701857611622737619670628400205401811261185906386690132568701209808898852064749445897253842833603475415301794803854050006463220278145717603952508316423963848925245739541592273539033225633172985884043349948526650781323657904001860201149939720533012039006661999637729353786561895450599766443928349168283825312166646049646869639796492892955917163131306582759355698126169915820623101178336276924312829231188650896532308596430264521880330662149942900738205662598531625139464915887824871751103947237316459089857347646023062489968632936481920596096930041493279692787590210297836187768049115132513362780326643216128149751394454343438819740566771122683529822691576364528122399071244379966665922719039808484513934463296858224799083357601270764466488940983783077282505740648560095356201495004729089826910400021443662113210526503578985269317931326547459705008787261882286955543934284705197658729275819186946051068493065409461914469541965302736029624650755724554013183098086999428777293306174654599811059615298891679201733014612237316035908521181578026910763714015560998963880234123198317792812868239081121189209386482223976968131235536738146225400747025589286869485829193217768519824722183860549479386519773698630938741714909003653649585333974448089527036166734833230103064599021541618055801630868512496715909834649984583532476178807527255448619359159930244524437345671190579294448773340745420698088910507118707647022602012325378737597913406750190306129350789468627906059479982057157774447781554584063344231629044046169590726535524129016861915951645223986134100100125059889388268432267304024462274437413572707012434907541974062468599652509122103611828487620879674411650143627739222879334260490976564912460769467601501686088497780836366519071756598227381996102642066828881771920593579627844869573088945284561436031548807739719849055581050447401444259854509803228918214304583023718729602787239005139148894900455091217779284278710749885885875507884895559288410007793915452162878508215785023639299490059105746038053178747210283627260815797076424577422033601928982321692464929828190197940829081537008286091688022191050638462846039964435694505271168692388507347230322267063250078115358372087908422706733735979602958257245050779593612463743549604267372221373363264888497152915531248021474776612292319830807892571979337271229625513670051622237767204437786047605358517883141188646714237776401832909144385790874703030765482818870742695683235115312401180481764664761829667499880494914878367600523509472150869750371586148498242779217588237480236261331146522514979667586415317624109045109376226689635253103928265877658606677285860604555349275618726705795915754922429262172344193080701675251340114444331852118964162497818338915244154705393739082160141912013444108509788883292971634179542543372078600202628574527012933222648614570812447916948866649847855510906434047493449333706527989988200685736849838878716014065550805370808816338747966158115746547904148706754164032015550272781693401883691238302799543973679793647685120532649553348818913196330032158298859949646668220233553418556533193611747205679114029809510059088030909719013856014377704900412506941580226871409028301386512980892751010280734892017347940839418114281258486472712119809001171791267583366323694118697698925239902614195273608875124493279156774957115423997420464391487930457226077323454825469813052603291445377288463036358548568455570839727183199717005237316629749175327998292508372040944065441348285707756919114899546416426070010474678304922689687353726951956133314367126168946418527518244333928938055676768990755817705855970736924742067701791760857411415992350798196653315552313087609393178634852720046502707299237199513615014993222681510787654261948457126859336736056913883532077571975462893186336789460904971743931720196143089170854522325924201112439972212894672708546000121137643801832279301474392979026208955105630464454312608547361246714912423076714877611467377265907662819209037036534860432484568732504271487976451988904804534443382137196986934673256870947547712807999893026442077679377153023767757171069145838966312679090758311519927752233387126072135962019433615312207752031741851180480000691487615300847849037884436372408199268659994639362152128643994368714405409201806052226031907818653769999603326659669310599977119962174452967992813480125144426692729129755772775838833468614178734221328002968975935677074554281119238113013307113499729478470422040703656277827324770279399116416408722814172061567388220713613072805512352580567190680618747065761560260157189518434507681226234293699605642835592779961629375711848095882807915725106342390953819648496044851350098206917750778876761697571075349802856110778129334955302675173170205223421057248786545416217130615142045679757432609404318572882950790665970812653683158206470633543390944683420905318236864420530012743193753618742515283183594389300670789573536689132763859256512519987681663365094286807947053407303288595617638724178376479874289738432024290077679993295015325593063491558876173532478280905331365907902144241192473627973736733978749915962801533646244931179202312886645642406935900064058130390959801251306870959698663317842387130074532776458866580937345260150585373389550232081555847485504328492557740085704918474813853835636593431241992619027884345282372082327273415819633077963340411407021397634857195546945496785296000382701476097208038631959537607907526627747908966126986061355888818208845185201856802249599201032395154579513484054703353524677624388035027032406957135113790650211690160229269823174468580743417257016407476051627742286216151977013667032578854445838880066590670784369738884795875424262874901148688203565556863042397975572745647210370464438011536717229396738065331568568823787245404513439023423822317648449252590354665637183457330005953106580621890195977209814290021850038268958622870316976887861169036615887313569586278779610808568100536637265934894073602238840504976083352045666179593613753532194855427303745554378060923090975036608631135796034414833043431054250765715130768946883982682134110147553155014950379493077018106539945733717684380726385596693797501574089171545092922998297789960104009402950497735638964193752697885715826563981885470698276337801962437128152414772223428777837894997375741543775329635692878737626449166383974080545518468235050584535550936857856578967450340046531432351436100623814827378158647077772467406822920175257966161158892039279504050378656169309210137918364365353325982777652669901037403412928474881513952923706794711880841477934020543651397775995222575008959197989161294837166796524797411727044549980371246013582348403066398844995273362352342182108982454166229600165591878022177742523040650448599917601325986777586814572810752412819776881794461262922673396284397654108909098352144532750501717735242855261402964241025347281350420079322639468237967252360670172043628386023777172150666116489109625034786369046493783953973565415733094666535823508045685076394581303327680728598891760614028939191736235496664082873137181851458982995309928488831593390142120218312608391407206600417116400864905460388767719382239747394364917909224749070489663867925136433929721041505203798870249838096260828521347944896801095288278357789480967454392935969572005989525484298927254604679716194660742560689382027635365645942742101290137129067239082440006487176716068103919760604087248181498641304630637546331121068805003089480147890903244620639743946552754522135013139296447676166589013043234193198321016159029467170462127581818361066378163297025163325108853325863012434227131481216857276729465950205792232398691166735909905832600555525626497811225337636278826080769719141719905105766714337862994905078418787081858249399849505981149366770358499250739089787090477435100683504249752744847301242016783158457310795932134454592968355130684743326755559560534353067186073918376156652252946027975386131939628460614244610330552713019403555602716073633776843332661084391366180419696976088676989497415289652281298179438426316318962473067173923564620794774400660861842810317925436881618533948399981856565906029834959034966845744202438257408665521102731328915102478898126455008871642513635959929017996720845862332919922992325980734496081526289436857879842420576320798145596899261567944186779567319977979861231257125268589701347700226656310895928132826479299471045690775735227885576181631981398994882128458669945333084161046523509488063124023415969334684289855530397894952264489914928454929205316729284146870534827417915015822318187126171689913607908728605743317717868054272486652362873656085741301263683864422761781588363261452382610832589116233099309157623020468851682921307446020259458545542652546795314229651108075967392866795209114122007175448182570796406355665889148671426294274760178908601244384084333808968109334684414341925998672039836398056710354863086762563810511307723821585551161253478524726029932924038143197103026865650330687188539226775428025154838888529238282740010848238952499230103381341780126188647117077852489041551955050835261477285521317690919804672623040441108421207608741208653545293796214511370258172869747441678753737058439910259907910287501042136858954654076027894431500143028589326860472215734221156540226220077608156020692406960856779643447372238849136860531801211791632146578466740711651764090509547087978843041221131396770993337771886839357684559709501608345593379789225787928161837157814307180071115807221364761767905545787338626483531731181801612818794988320177109656399477100423843416747776493958229602562824345828576301815049176632581785610472185808035695951474968351379689146328093039218490412869273649853843966040036616668176019911466791635634506911007492762781908578991015221215375439077589968177405851238194462505157084253565461721666384658736018069402584368587724090272482117167038751827649769961671249139204466348946907037490999047125963541018666284094533837100604064895891703422480518929575495010636032296761584863333322646186095534639120721422100197886616801400474004376292747712293340942891741597617972575196429390065605421121991546837504827888906509018692596353477586789647097129915437467959540663091678408603776023494756329007979247789230248786509732776107783848970476932764325300800530849682316158312300972889880412503913199366048274203783152401702331507529729975454854261850166691307452261993382505857911182732692825687239124208428356745021831424236886976222180246196760581584345408602195242436427056862181800182372722481909192827185640035533998183287588777341107284761194663667546321429680730397986642795727683939055492991240438883681827139209858021014013157979522623051655104196014744891780249994784536360448746775716137123811766780556165565860668321496402791505702429063507550269557447537202332091386273580193127155119385075216952612344002503761693014890792051094187821956965611441455168981197563863127882964355664208662792046676096175412642984201420752240062574253504906900645023497718986093768226439027802797601021926066878765963999707090199984017102891694583983884402488103697072874182806711188062700317036207913259931715243422181890868543500461858254873648510553822545564945450353313484895052688678892714219078352404241535069753918976584671735881670429014210826511006492319051716101348333966980520765200136573472958775342006091378518974868635176331739164912478968267108858942101159234019213481870307448793417630444592666245963862263990499946120305750645177812877022763245795513776070148060857261206705215155882126847828657201432396968763022345237690652573911162663281797442792223977012626244849938936149838669974452244869720085920060421864982688083051174840522703560668852815587443999350534225656949632864613180078193103489439589931937052972578777181209503557658794613810309464356051881845678857018204879632479418121899251927505222751641272314743969873669746763438234883420329297785609742530472652597802894522563350876003769938475393980095739042404460991032441786471950514033958625973067057986159698261731450487131618379793203367275602669251906614796605614036282523677880481344187696216827596897186119932344561654254123777288343237353378682262271746208164424079752083922759799033300381841819451966563258295767193406702376919091319241137166070142471770968793156825553717555815506137070772471935536188546888572629422852667890110119397842403524220392303943214381151403435400831170584433559573888130884303725505710550419908172418811190821399013606428684932083021359586255345229166855125466804085817158938147435306298485175894534593609550269772813053935754843010835510026451005900998353728247533889499066227055204817299955668810022416360919055736866750356452244352045169103005218722591439328074541455868882494523229681990975968517095321847806902840261396217143226129734037488835900916275279097005947364940576990661475679803237757011433727417521237128529179501654820957591846739912399846019468020026156480073648315054316939629640511034584727570324032712037916619120700449303396552891855733688867783472324649119232983123354243730158147291532451678043486422087512263306960801346681701959366919569446257439219326993642771122305506165837708413604747585997770684823957783015377028178277953374076201333976749013343613676815253301015854089747859158313288473920143798920994950188094539337179541049467496621211046306940094544084975603765297314144498633054602085074982623761997396915266629018961680849733698027209594903373386100147027515051574276345683043651902002458517155399591475390066372240073585410688168936505385475355890933498337824387806037390235350453394301150635216493660339477639729195017064416147726509125740237711706325132788969164704992620353026738233356990003779967359607120468319953678046729622409852546575964558435243128043966626313484310682260001731276335655576010415573445768296287435122796775951506497885403197099369000687058338739726727910508553670623309494306238921257625859646844937532140430303461247500167287753050848854725159606532182926428809836864923614960175051837338364321326603876755629051099998169802159224070248474982553705411744062973244424622015314435681860562957795878599949219127281484462097155645443188326939755078441279894891685167994993864627700849076691296067345292329836324873525540503592854647807212153298999652650846754418619287085464743468366764744666207964422415298664247002483519721891510548126990459497364952338667172512800820454082549655275500103087550985522794870345173849508807588437019954080691299731630020072308061979785596587793605882188282055096837104321245571669730796476296384549669643136000558812381824856293187337929442310125175742308281047745891297635802490997126935784788666815989745741334007999645501471030486847775904724372766874606451460183937320168363041378180313298749697045701771987892843846629951823474247214686986437626553767295153109360148447409750931188936371764227816182972830779361405468048679541555231355961716953205762389178732829589447112811882004194697258796925999473999709261757385653732710968266513445212671388934740039972395323240711474189081466891593884594164292035896998760727258469324529320464741106244480855557702870138991562046948751334419258704293597575187655811312881663449290783954094553325055501267114213826034321935916598080146900731493128940015581292800296231232733428398155640446610909670596203041624154148751620324955014243096359877454836784738045304434140189133260365356705716909321535518616334058952086239176749628192828035264458933376939659470204920143881585517976768826868218919725990346446738784871246507662444893873257099170703017912985361240184839700739731241682797845000920943145015029267799445042286678402186350841393238936085895336670641778431093819826391479888287518173938504350380975071273387719492855826020751689324898054163997216215878654824014753029821578598532896877266148633581924708433358094633312218072060506389627177977006901612122525183010756920221535720835436831073075350971183566572036671813429374605972079478185588914309878567732081288550014524568322889259249845046760334646572186803138636789927004474844073937070276623627343823009313716808747335456517731580215036291106774350438976188346690170507288625155791955326346631045189154691512215945659481015545500954914547440239410063313843094665402665570339517250987194906527114639784743839574074772545523468940930516576340130985697599663458503805543885928439118625772375049031061061940035865918272693835110547609661649404419039967355596776669425343633704542839752444950342762355215785183914641494983152564018360222693595931888022971215674413155894192390981317542457035229934253910143836936828111022371025804710416210843468213172696416180307387686924035048680678689934177103248945186281642897729107380584207911435292950052197280670634513334230418281185576243948473385944308885879891652765651235387596707162354798362923716917494868344807510431358661758776477890921411538019547353745833667442801915670838261934614439365740493914426756053404686485985231316294173551388315018425315703759288236089618692296383098931923105355511500892354721323147391373334810566690706029163040448942456683251541532878274344800027529585549895135272662773322868784767300703154877527815497726558205904986445035809251424501735297305640656578848423362969815727588614949347931301637969417766875666684049061451307866203946093679184300615934998125107731878863405627160814499344557137287988198611717216322306106389803138515956058004955600436385412057377022681637804522968735036344415090834215038926769573748938701023537038063934382096731651330851778190174918362031175347343096533949098236708509858590036759540600867350361960291880783118931313756664005394803580761316250045860657722367716672760997640522367409960070086178674649743141450192016511576117086208441735149179738828874912977127419056607557340015751881932000766332755937225211502950101732044547115806889761107526039429737367969836635048422641330618758153515448617732443620449219541115066732894994835024616427142329049578983738481992027753005909664966032532798203334184026720558143688976448775454638215153857344648987047686683092338291000021364450034292408743313179184590464684223315837438124455614072441384222806212215864383970998897272670823424067561283868643648118853797010250247091247558322827429249776796342443449665307424794017800790570931135276859663502409918074566907080365674217865885855713377822759814290884512670380490523537851413913894246160077506932251695882811453492777637527191498498955084274454687858272924200692051380687023210808413357992244578114771970556457932076339073435932186363379161078802270766990183025578624056630948584608144269892588548690863532086470789413646909346927385151301828444925766527144743819246731656721554705340614155255073820620890183776218937251066908248998632962434494632552503027886602469562457757220725563491500759359847238815001728937731479582224134856952767295438455110160113182547573890622457401097699228326122169813209757139661656729306153209193790027887189511337774655623505687188440883908059589175153562504886680031452669331029679741686370607586224485213631709819095107542768848838709748279361594978444820944395079275133589216840111179589452407476580595296481900649902837491161488143170804453449407263476692399897184208669507896549016175730993561394023654874238243175831953019819327703515844875825976796930639621307923730428583645499393021497507494895438503338850125531195187760361805916305352460581083763769095175874363057901797872871555740716013220596076376713919673915280876023770124312794571755195100961963184593589086728506199441557959700738917680032154825937131486200192655308865314405158750030020238213071795097133414831209869540117709197698831543217688917929665669743618077011134182153368632332935365131266270179487281914294938718544801023443855958609377099361104557900333816061730664677315179626946584570562885328995223118893715312185054596567038580772348095227420116670648326350405193880042511172448268137827905962351746946636179967237052998450735581653825555823670229336586776177716474919701881523536924995632356986296502689956163996434252278898546631738991750097567642084358594981364759436432381906152416043614802368856187634185862823452630088633160466957570130974812195215936987178391014711144648966622360644347217967026106180669827537005414298731632916838108091508057042855168153243650000924731619313589883454795402871632671155305456804664347850177061900628723671288622874180763603416272011071943526325576369941497100135772082037830228054078704004886628084800401416085440249957426706831146822432792965560424480013380081209720398844937945954647729583505790906215657454738635445746050948381797848006960623873701919524827957778215125644226618661169239078890745559142070385214181986281341374647025840873183486990880139804689509697250847570957165860102558905687156388195436926279452319654281137189655190574610787002824191739053339872088602296498648925714082955905732204032717480245436310516015634251020749862283696276311800924675095689030620132036646252526053073453665718685576588486397176175287090959605567452019640935341827693278781099953051779846769402880288396742414113278033221161082507547992296786271067176260204016074032126250396029683697043697441224288007408130123859431714097379702569730258223106387602673803722004907509501610236751497737227580593422462258856489852489425384067305198922101546554916438582789697205524318543981288444090224463743346675906426595536945832722245014766899692161507707205468796643163133395566084232260747116964945874466497860569070922336834594796651899391098154591061408281621162186046674697975575575860633407834933304908116523608956362791321602155037280417836455002658333707179301982848996594795407635929128155125960389531754071688774422613811921559691981503856087169990642277333841861617806326674726357345466701469836564086241474561345246478593783213660694136930848762210680089547345921780689535845204992722546146952737349160842501590123468336706840335631964310330198551923661077116042677918256743502449101574946266211394893225393700338583837518527585008333937753195445459593247257678534376234725362118528551374265143476533798052984001302668978189837676646851914439157320516932188615224664101138591157806623653323926350809180421013140902551514101372518228826704238075002040754624174010192513327967487895527049241965032627529655537248684391858463448598094220563606194008018723344411724807149192250141273297693606661359409766253599836427952479778759243141307680760714173690251932850692518590694229156066929932240094605681188718011321710207311842266147402203248741154382485712902513555228079596794755657434952484581601325658021739177037087937890262737503671809632077264446378977890891958048307708218746091334932239004470894517076714282947797531453021714172019973556029538874575445459592093947310764979225032387944388577442496631783225966066106779186301298274762859737988946011255244968428204678443284443445269924195428349920851922611337130038613210101809370444470859506811516367809186955125400669464257088604746609558979792490828519616302999445238957107627157455554714941654461329342888625459114251290247860728870585702778410772562868306356068512209291350955769811380323846420185380214001124884037410444818311178509739601156432417614743861316060722780666244410595676743479967686064832398584238872441058199807911603758200948079165574040283174624543241687592745673384457831073574645967765836310333134052321344696829812153149952421104496394083386556150522314440594701755573337686843146737479907348607595918860896134797877501062890815685326394373954466174444765659555515991572967652700573844060854212513725744336218486653561971945648421689337931626771713448191936366068922588805369785605397467206872147996369798214012281958834054884543711228444212752060418447030590708663598608058310572918593001643839914775683622689650649863674656843771722166642008786945606705742474799920253468970304235818326767624886994578826822411773877404056722864496872783130449764734936377527074434584094468433043324846998801899154783742811252924006105805142775739462427417290934951377242124107340256844467126779702647399097555589939342242848240407182046363101738392425066853211024924910230110859190366414840223319330185551961744960587741977462668619800940570447840543621983979110211523228440722658068757900048475842523529936530300276506687773060528041580091506240054200204184827150820474914628040138894281615894329560812554926099564115245299206758358354691881851971082271975387397145516549005345848852125250489128251928284618974435702930885238989609153177106153729253697000648948426360753946477691071228064809501209260869117121130808028182619705101074240197314021899836048563849980279088044578206327430476218828903014471837346433902951311437421935244451570038824568611228464543115814459961092708719105846694952942131584306795519149837712712662646297608258691180726350188151450370390993652618465474143825833689712764994194902364190595744146654474564478110476288582136963522548759292189638863544079225652458287306315253034951116236975039910657436908570424163094029826666513118095147520621966572998025159643504022673055672887217894415466481771921496403417339617508401992129389359063524573567925074557209018284174660940051160912015799204608491836068786237626273363889043507499327207430629519788483127464762734258013320650708892269737640508272740010444896406891174781344483870848878012437470525881468840572404334789607402250242604184985574231055621321483208257453314898089544978433471215511907942521442041837163227381261673522182974326822232997925415279870630476405977120703743476494206247241356999845107735445748568836817980517572219146375047062948908421547093857229083810660059061418704023354239019242612915863440952314576721938883361127101601727630646171360958646111415448780775223379940048863560244862674132877417229054162029012420612156007421348034926043654877087657090225857127621187856534854727427119174133018615179590331401478595761960915810547791387383273528587052901511285228807769080708583803199148648931695932194077028941623079941005609097005126092375601349718707649223342501980091293433003485199526700412382519375954644196203144969907539078116003478121294769050124652890596356964410253712638856789112259584834299367560495804624414848783135673260728276600984082690041974627562754550416419215517169215995952093667091922713798898481789146174205944208382464803817116670455954334447978561810381142024520305937278787185459836699265355469680996582103994743170882795032612486924290088425399553819094742101161367408015297925963771978627184770072148606684430001153663629569054205265127160321293934331263225758449854569806638080221021315164997038229547488417459518173791153400636396531597482261774856296723002499793180241889216701147713812343596025872427141657612157817571217631390768287344390130314484051959031883564368069555116536741439875948030545613573308714367703961028360066862771591018469790641901319769046082538258224587420716738675212202789256290546703471983753351456751402449114290016324701871175776464918631295519994644061655511649241080580828859524521760341430825204527940670206375417701998604865997471066092191955707908596436465426071169755158038080921580449103608177053639186180931941662733193411620695169721884470020212021887641399394858822706185631330690376299371293907566293614848021520449622459765868933367745798758739447063451530824557854257552694288940510855995113794963291233458986385239039891014527156983930229569442604584107665167924093073258124729578624957391041060000624176669709805002131672444261789586828948144651322097814880598748145669370290624773776531015028015116104301085884146146713338013107381593375172684243877899441611621611066376173438503132377025625370278434491560211572931552591121614870567375442627339689767070442636487083767073987397975302969324291440035412960612438903426574086698749580248388421298471608652734419474596677635566359362927863334095649567790444859524997603619572974235736359846264191226027907241587736882655472046338743168765048016199526822831350666305103418525130489032574569120296006803402195584472543148944030422547717029164980336937592210862222004859553514394297117048219534039509879134549626188000656175017297240582680057768169898026653247609875713940612749728396466102505007357747691330635194145157791183228396341066332725998043972140524636330440971435782818231451148431779330650558373017516045493722426993572027489490974529128089098370194959174552073575701292061230222043578657604246202204570180118424489813818854763495192042902982757131207364237983301219610079108174413133240422922059115403414058498574327986693822384902126723313905039765417728983110386991792397394513370549112658999084419057323158413380943394815822495573779874915160298208788468038890108653698044588552265950691965318020598955571119530535274557545285247428574280340386961654487920185905367159485322510378028934270802881089674087857994544583711989085757487393332038454234340326754550807950428218351232906128573352256651024761603882828350918654172643088590165295884571041517988686478661103896224183034653234694528406912914124978589756531882595729646649569389722811537437632922534532588106547363339020102248201429907238540351100405816311388494051696010920500639486687145959431030416306678938965776445079693413196028196399444122249489086930744961016447785582729710309852172999856241763527559806106254491113404656607453436967145558900389347357724184773294604682838798049666145947062679674824157086391787983504760064431673303395999806527999510169830254957918681642878141697184765357530496701055254737972826870049690871870441240062652412889365270519745222619189919925429103228773620614215263772896178453290051054239204632315193015543550662442105294838088038827670059649660056811053756779870293346933194958866237766165687564438801378778768909849054110808616770833455944350802538585992435394974734074621220195252606257198536616449682137581390707293573108966868314993153963444979730266553856040721429804694956005274987646802242358541719706720646313801461739491706741577512284046449760825284786155617728099697602451328291802670161496776911297147370687273402919659176560098518082388956353184602627106915165999172446474402206029473438348504211058642230878578761903925418210083753402072186660474765165728499048747307458605084740681865673067968730468310120754297283071875076245089760020394176500589583957041734865981636749368864620890160118707472025364795849441130960669600438525868023345651619740524388414348509573831098685751213638358392445680922473203831137386506717951304286971327581004837140490710562990907398622780344816844592185024181411286587574957109857670371965746978150468783651738030147728916517955002151334933516887529213838101151159906462054741579520204201591153222781301712618662253688347826525794362115675826995629402739908335939290926484696988382861332529592846496186727599968044440657565421294297814248298510126278101462677934100002105276892793416638479660978893524361668996202084142076244692184563308552199183284735268312989644149024267116902732490438111230145415278017369640365916489834026469388615445671439588908062563056546349584904565734195511590904492949413973692874669187073760905120289175792181704681514772565642243152550286930898994448339008255854904478444915719667663409424309933990633903293069431574079985199243907967541856043504903814361466433682043642073148223258753609666338999656154821963378204873423102007537868024816643209666891641944527050375783540491800862003235545199777882012640337856982916412179423400137299487043191571377295753923904761166728130540652647504996158535450410934418400100682835849308258061204496747267261909642589667566194850879057287932308215552296212322703466632994198655123326859552447345691035418602045233920768970592096863810845868864888590559996881939363510299824634812087638881210246529595415758771549386887944346956604688771613151663775639531572538821301291789883303210049452962940903452845627216880286774040683906268265381779387665192271641010642823809585570388097257096288430832668438437493880235086937980823755204739589169715528972478766113997109668579144423937815064745142939202709210654948928019026717153624324635205338098579779095293821891542712765159964859151012568211820584625723299690032138337131216504379627816876560114049330861652469375008854568509908368926627014198623150348370485380705991004524345060593467328899319139148001705569965565287487474512771426483038167392727933582392759984358893477107825251222765134823180209136168470377131062747959352314990904963805805813926239720476901356687546446116262420052578456653431365967427720126649405961700899749717206640650709551288499317003033442124725308937474443258272036274305504502843837396416489309677377588489668084912906092129396627983662546435706162429343043490744861120777096359058072398077281006442616368611880649644895332630033495976712087461672607466107350877649297578442962889166062614460585004404924492470592986046972317889801361959257717986162624382272747271521775895487364878215875910748922845796171463347294525337484278337284250021424438543020409590099704996160014009864592157269771316257280161632383127551291795152721442070488455732757958364316636387365827524957018695465411055623260569820996217067327529747559518049497701595089047528851654049298831161014012933200021174967831430813659059836361685891158436021902142625304601322687502683757012117212890558217303421190433104846979196291019940488850314512792108039300670677194343030251838767306939864665010334421555205603883136420362780050591815993007015502058330597379852318597639657958459135485931885561908103736119244192063238460570972450103478827386285120283754998528289924974574176313159847799488970670410697016363860018025238823565768437947496141314282269313789034801577432222401677612201861604761162647001014124331031345534052662660634638340524090844753440183159616652600195656389143009570624872913725197276979631180851116751788215385038162534341609654530077337351827518914691475201316177482736011492926787479761531705204053304391484185587972715748762264067481218444010891158619746155134450366053959871786277473435762449369599710077087334428587768844725717239856657576367799395792167996128286811078705804932218879653376709666802765255284399774434133026599201245448309602990270339184537788557225618589184700068128427008854004052365742581779987032359017602565249675966258933874001549096495488846857917577225555693021868387542221654483563844861106230289662597634518245532497815350219970402550811748949680411143163508459863035318801161630346647023566126849506416636787531235101512973939606362882078189720377251709874033845584023697018114481352137458886858605287203042593596201054116041318333268612611801008911300537853169600986972353826319311601657952092721574837643927391395723909213637570977816562907569542720813650132433709146866434588555625202468835270828769104781553636509667887564599102083644705239751813771648640456368351557407134264338315123415920047860107989993350557617303244794869715888289186594559302343874192355877920451945230290987079893755252975699961447418112425210998699771799297161707455545699247317302336021120199053579202837722204659323902585526665549509437054946916850019064537978962792952568197365072082649733427001593278936664823450234050012277793561635215165460328718633873078448679982360954025563570055664361309418634520308196972122751524768555166546776631943071717931291044643014600938272611581483787036457821363530620616794548672025754625167172941501888876347450431746237452685865486623154118939654397881240594154840095720782648302405319288080167489556497371131138009895666968175733862108254684587035841533718025594918819466471303443231828051285612788034865900675029772717814630387071397612188198634906702806713796443266416007109897401410253070534917935776967321084859630501247405689973096625664682285048638981717833585336035789665994956510693974037573867785685321148186562375806452719333242483013903343259575779181545261694487872036035546409492635363897487089144591530637510487158948135256153516153550529585798388562811797627743594065978098163294697081178710891346267520212604350332949863172545299134651736028116643311338062750007033532986602382537748782926822259521958599868541401487903401247264734553939597371172229098936248093171959447419652722252353480205662087123689299258969507936612700139755735989025704449169511663398715703708781737362541059422883031010868758600973377925669324767744522341862075486236805754359944841460318177870737161157527142516589862367137415843121512401782507784717287231898198140091655806377398512539631745071534950163479261652617351375173793522126541307863907791950853181981696547102682109946319558392990270320743630660888362103405339721033133116722584386216861140240368167888324976465215392185575624622750533011012244278023842170146467592114956440826017021341819934022620157180567184323018021090117515342694251791306427265191480417168035648011997058537211687512431510944140162166478165583289655421411471080527250998279918380862149832667627760744557213015952775017695069283796301568515292890476354416392902279553521188976740845897628713026265887139502680896854093741076483408319276115185433302928810958170362695786983691043773653525379174345458097335264043030179829448351772774876023973039202093442936069213415537793925313996431921960634069100566430520519175099301469136797211415846564406073220887013257267436393409700010207219160412382860898107131155605869814517197198890189312941509839301179166308573498071352362456568932996261691784513713051348752442963405491642498472348762506969541861718638412147442619698518016149600462668475752522522841261184491136093889005566318987311494589840298326532759268274153791950709015695108382153326066465818285209046450129049173817638130981349786316088235648434501055138970279752568784043468540348257444112452779623541472353114521979264199708593637974199099919418254354634300489486372302549902282872226430053035018297448241874535085559997924047693052994190200109115718254656710788446769201355395868412600139789819497827294661404301462523784679837690447586930556262576452985452720035497942394556291196290068403908098324032686686475886238305251589476506131801226479574866768319448300613714494670466184423458599332808221580893005356933024272500203903707062798915555905030273494911166477599716874834519705971719485169641280396905045363901443608151611534103129738170702472493264749998037833096750265729473667230010690598300152352006545460413529327513280751057941758015964673777282706276512086491792894576532354696479685949336221625521730679713985135948727987950792612436742414298438230575408465023462666330587117103550499349031702718819151565530686151270209003903865968143466396155321909864737202459978222785805672037106955069869089319693354162372437748384019781114098088211674541785811140205911390307062526431192845941646245012125204263280525188281740173361997548390616650902869221958869317451016948054485046907757945527130338324060836280069744632785014159000379471902551132131116423859454700588420489757904647415546454498861235742167950342824854960546759847521013164746116220521132421766103384537503776408373356662546763648340238114970124410784807396175993459107864353483811551527788913704039687656993788050742163947696538141288678228290605950330807476593572217961274176541919791065297236678135835161147613938745603454627764005606939502008332609172027195296649648974316475487198661971700111108041941963999107667265982939937226963681994158853123688614071071133710102925342067438841222999666072387091480875959184219433137848780928128722602011527635067987855828615522917021860773609965053925608762092489294638378692188062362301045086889696488427105942276659719935356506189944760359194874071290681683008133819011510704482999064325998844108083450006714633656635181895255740009800755031188419153681731335550175235599509665700221394052160506792105557124028511237584489112061378974037054227149577510622212888270799920657924488067494088897174841835910498398246324495088850194062870129257246363897255031755811246033705226846007329254253421516885374554904772428365849540178494066772759996866984260227381688949865116398035548272864006709621134864512380032946974259411533543610732951494270332170767944333227933844315625410342000679174911841404867092771692790173058081697129130601858832855109132064372711531563213516507003943198791790596808739189110734026410472124122561310959150923318200726174416913283828647594992671473841358643625134378669761773302957614722859307897672497420831781561449793000203201492075393836672133113309609407160727391992047829530045847895576225241893894375563151466772115485687135847251463282419860937240640530573554907369745520985758592884402800414429037098419388119099241329247664166732194263064653134723980659097866289981880669535797690136815235061244889692997020605497706107812669645011980573076373871215268155833885739097645497146581625536594253276539095569306743915836928649223372636320928682891786980729788382559590132875802670906326513882148498198375038515912121823312885130562496856026516068691805664138744829400693913550879646721478462933450541534872009312902621034770957700211882540515682696296537019616779172358063179712661935248537225133578181007306677740336965868728924176909002521771563553371226442458191589545120136247389442374619209798502017943091612221881361819018535011933361998280698970947803180678532202999932710986742814391112679622565970950900402460569137423905045303406367852213657039916118802531631640152726479575571159099263174365604028740861405456022540990504384039227195936375355682374142861512664875587227974063377856779153000332194163002864924182725985192382440882221762535365949931833341646055170930816950678541539478087599123999883466086906878343188078898446404636672264681052251801115344440356891964818246975308589591603356347560530707732825502084554101757206924989034726165533500028439586575416158033515568243991566124056610128961746724208301998135550835574745367839893038781777283559368333081597694761826726373424623789114219762137396853560023411915900463699213444685712459298889645341572111040874297343708999915560008014095582637061215529652851733930853076211149630168951391596834368273422693405128753019652638277126807475896009593059362902472704967709981642378813763718621284959738261262028406686356812213742438110474693570787250236614987929871275251186534780224091339728998376842110917342503999125957638604164889797994578025893959941554943900524680021639045459155357847559634888975162125896637923876144875825456509080351887228267692730577070870109008485573579189576436462414823666462177473500418119503853373657723539692245056763341032089746440989266102837624370367605839816190963484388917956851150993380886101509602645370904514644961232721108659241195158332059782837030973166220162125626892918156754273785460305155747762813567490052043967813606269654780179335472461684964153410802992059706698852047174802170881225801466452861614839941104833318172642751991852474160171797021958784262576587976407605543319246173439928005167851599096922905227826905915214690597839235543179571319805853657224840154091229036418206461517379552492160224620147737406285874031402010567620897611562611829094618462171288768599094892431368174571425529805427981942058993570173817628748707682453869933445201479111919045501203161429939634779451407027415194762504149363162137153133682357611608564810419674205843469050125146910702828033314251691851408709496498649231278747229881686854990684772016842682219422256642702994716187937030845212989950220286805323913890072600607162547721533327671779957300923727782897310996376903170920154153270957525675988444553739497134707955938012192327832518444752540978852079129181610427436669528315993488212084669027291400554524208715375298995826739281914775537339008296874416271858741424529824397452692443625934474046489457967206719683137605592103566055862815377939214211245205726455246282535009607706482041604142916038682259360985622053771058367625644164982237271910566802624536999716906001986609339288867084608072139852067126952231103063356210219709226860151178537460296086639013192598509084452055626994142043572300452668261562213034981664775356036873446499903942845844254006701722996620038749737617764624753466014088421349146824256600946249423089144287453325381071741654598766278987664885264803841995039763596934774901291619258999166444038341995831813313580273137488184174612801022543255120489954206916056249015811151394552943028527117483165135166834564016596838515498966446562381354283837790841015823961347010993193965724915053079429941136429275770471675807182159830753459697621319812745281414348124180965838493442260552197507967208018535668640624504001921079220270593966880656987373714413796869106888267212198882122904625800233488320391361090348516596335282997496675706045859320567666160041127742261250861232419155988282276637463560421259355788505084315828502331224421474850332702927230744574135819171507481479987569110474797877953161288752670871926197724664945475152376032230780128399157728034510967707122568064534960763639752445009831488917754876254101606304102743882079015191719187966833433255885996412926552618122471629307288754002197333687526159241342729175320498667836646283566901156402921593636980188231855951008054426765295876631075680530298323760879679468964480014010108328608573056488127573774864945105023750174298457512930294127809504579991044095944042905277186123329875820562638219856128785485489639697684775391997278612275989975353779169726819937133983292057201987645198372600261561192225330771416802333857895301279096887161162059087241848990957713889519430427924954425429079541079522189883877380848410273759460082049038183509745093328827958546558699884772896474554742793676094419937036296263068181975362261433062618481162737689343634946631327327319828371672666265420235101972038939395709352027712935120593528983576869428131625149795243639967993249624222458971176008019418545884968363603630153977017423333519978824009850390768492522366349101909314991522008652639819494157489177778803301485194310329080196186313331074177379241687147939792411582825065675161938671578606703768280793189950758926010236349314508124296921098984782631686746698606675329175621211523567775147258367572388756629970506896265755701893156685527320299561479675989052364277322540026487228606381138552979534218107504730646248009049434262409328737276104877146661375799205607650893782263101903485167089234744528907426581231955521242389098413222236688376014408220102723500518601932600641229385183098735301497686456008620018746823585240692725800442696164552394735673621792601880289836653883961134452432551152130208400666442937911620100759495004881849216944827475475538298986672535750044992982319848961399957700906458387227103686932157304893936414158652633399256615924831686579780437752554636371662802024228263013949759166909086788678607644347414876572589464267469884118890453748224963151982322969682505599855532966368074238096596641412846572470747513204704611038088666351298215222255135420457953274599648912265177140422517824534574674761525534688889391735062210621805180547638812707893558532509187621397801162102161190428222234032574844170808441155019914669887991086287428421560889033762321645955713943459216972984294010861124392469756292639944524777139738854005097377065179890700678875473696248694339197475212261620648080272703605404321516921698830033481307866558075339176390230889216850982031665198319795511357635608951315974568669324474539371760246925109891912940030468045614171215900948984362291891777633275719056193065610565786571528079242482275250630545498302199724716518070544601964003538893053604386877006819436675730093121430003761924622907339829017461567420014403606982722472447748857979460596105543051818194885334108696225493756977937568328132619991672855400902950074860125021652310171934222907720797259742789457236193994411955858245153302781818715073313161940618504526051391063853256391100473586566242957093704793741725712562604456825180362611694950888057066461836121700203671702906374508712728652036386271988836776351625164971432212771981004316479866748287872644399191839836030887628030894705251955116877370861314521263632266393164673686757376459186796658788622779741741321995471069448693982363936788998740331890812483013693558764131454441961803329831452099169770412262354029302160739497249920718886409144461720193165271585290036677376513646932422278127155416021303791472587067080481346306859812092014416925224801162391403530079030135818693378655354227097320805787108418470095925008465840761436641412748793984756431978709973663401768951714087167875301147047073522665563840670999615240201995657512703658821368928792720127310218017472465750436998393626330927511555366462866038021624937087328375554388376625185499006522682252524574523537876214321529201326256920252328364469803759512098054387758344270110530133989663898054030033069050678933583203009890186064870891560074443515049418364108209816889174006205545384025410926794174805735923447369253126978231470648844990764745628640317491488336727665482458547866419367151345209983506238951057230295790136382175764027482494960229110098435312082101160811939005691830239911351594811598432858363567388946342300834916345213117203026002362545574168620167717688724704620436915909168290265404335519742505672311270778980629003609575872155111885554905947192746308926038012400964233472159466954588517111285299017410968717512291701677664898540910400514432910844596799490494683255387227708205654861889803020914273596241701757449785608660197630599130685733614442316801058058745550794006218878413509584870314666563235574011943969441320283510740798949320799544564949863110295367785661873626825494202915485245160040207388951909057805104444703489908855382752615638796773191210142057563682002535129145035252096161830521789834239606546322286257718232365466601242887832499563973913591924514436771706932169695152167904306950703717297039888948187800715483938553115789293181852355932569152072436933439039510924193327527623088578594328156452866810235381525563539388930227734737446762237562145115837944440820914521552656239548223656901654722831869249660336950448030517600420702516774530850217104601410412516594222989382660392422373904066494114753102579825369890079536747395172847012017566652805317612103090578167516233068731069942032030338776907375117671193610416142313529371783223101647028033109358037328489026201522708537561814559283935324718650526183436079835070506573781757765223590864539051341775968650584687477252390530076115791692770682524242042038554583977634331257511550949278133023280797415510960266126722598415231886707777095994013958674501774562285421919740327988622707428350397674434227618533714280673226991999838270978115200783600261510155292125375108778953594321800485867277087251568472163082119230408931171708785166147043824453165981630778678008165565885227686307271986030114055955334295969236197426263593428307353390590162970010259950912217758134840207454366073017996970028410786682627715192495217087875277350622499720609580393610008393538139816653868874314653075349267519761220399826047970017210646332704379445766438228298783253715750645674655831007550464753140192629018788008848067882189336768361094322615109555126792300559997882704815627201183251067517315927817191474177779565719886604201762823443555252732774493248205583757261306387180667482879430056363637324312046596407044260209052276938047453442302747530721168153447723051500152493452447336325576719879608622123324874530024640251021719411448930356386637056101987622880512690582775845810151447140493389959237232230580139151113563245692696253028638880401901679266074005439103106690701625239889875304852149588687118307307941400494492908535891759874342590979365282608865744822566960302812123751322631118141590792299788154167316661806771118686260610666379646450592734162059781388294607835547190869668969848674295625917196401046866115680231551551840675494627216365812582026094252231097452435773796866812687777694359342875178086724638484200780902979793537395809425633871010448113198920948847654928234061801282385595096265203292963946160835302254397170641483424525872863213982259135023872717156706010339033501067295582048912609307035404952682411687347514841838463237419719960571954939649762135453568091335185309429672261739638908274094793389967407656336512816820490120202400880342890228562250544236583793115813033743792411334713700900061163919542222622680679985851562375001415366992316444121233737766461744641472312259117259805544215019616866145847226207771673639524385971231727665540820880179067260261647294146111429721569178135465007845499515075020235572335095322899798151102733778602520541679306317088479520671137023570416952920994016149408453956325793050306287913326224956067177292080894932735780993924244134548359021985461285787677957141170811015444279851247809875397447832877267442358327531917621479108187625817471335156931620449764704816448385369145075710466559924895521574443559624085241440480064006804782004402107400439039898563131361879630470245689124232471471839287749517935583051125058070272584833254890918186109497405672455970943459357992913495040397191675215152621613979385259308888327043619277607713645701258200190882780137622115347852521092239943813803366342345150599330139447996816191383302858679348710281712526129954493919453105389816354522966174919117627645381328942539743361306309647044663648254441559426805701685653773218419114496684304342701476069711476073552728371294376051041784476246376781826563554745110349125620079016643242825204088764591036933796008124851300156396271131742899054254665950509281695632152728290081712020297672304953500590074181150640570118347510127571018888700651257386541153504898671226672149557382785448793760941960125309929173701476932130931185529129824699296449823587328622416249589942739315500568429149027489865801368056892785676286648065345939510718085345642339759114587260330315304215755678408204337989099409690646822911568388088092258178933344115489592869314644009351945134040911074069621090607788701992122139738167750243573244173214430477620288549069846695978131311695306044517298212426880495365388851221565798447865861873725505575095858358018131758889663403621774693352928223290369529526618301589895986152830510029629680720833495489840211100254935806371879088502063711618184621617272338458068653696073173601782422169724886643759091933429748255677899641788654323506687271092250076467684241304557761617249717603853218608672093508368808483711513347217928599475157801159246528681610885111547022568277491544480527578405393372722020818059734202037928740456767292412857329028984530422146689291936086315646014455723260727878145862768783009601689590509196376554298688239051898350878356105641639797479780917535801187993246552640819328314559963762577213876836141522188103344432859731703368374531379697865148934656738652068960353701296440193962248261976480098517433037953989667578712117596741554839543011776254842026593687414384275169581619667420484978183663903388484267404526565356556758266716553817996719303795616998692451687926751655503718545850072420179179439625116916531276156853294419488854338645440067440487188722818801122279047821813914539886958999125506101290245813979131046580850716763025316585193177238512505624922783510592357735315253799299481824710908526281773121664067400805061875915072241109926203919906966888683145517623330701068175515324914235896504117179226298479312753101896575212056657964123827129546167408300457490802304102758597267394265408545434648174404422234705702693871592866066690262628671656334552410729049164258322280485261704332858309912189790317044235895964091969932930071204763506889337621036811407879997291071048933297276675453145843419400541589816601491426494470825111974624346341240359498509953079349084944394132370498907622069467757834459428125815154924955551886314261972351648467679759483068137528253260857947706311208260011316736980404756926250228675444107436302326507786062184469073839484826098694996451935419769880581923012860840011587696009010270292325480780526440170721407788433377543211092985701764105265571218299967108051243252874445899312523101102404425024423699501961159638825936584545980411817735201025210843401945293819561582779906420400597770988394565321602077690900608384661367464572152225012413196799738228487479027862415004816399263207844217433682103877138716047333187126886855992497742894968232727861774855829843347279133514084633784622717834783173947995413070210827290710692100573947065276567056231962275621843455564883214844433741742133842883340418106195747196155715012123280584160493509461349675788478573059030253740879631473600527131126787793173685998282721971220632404785340989298963591235359221573836312341918382370051106018780761887291443030014809382061039379991578405038945401212981074124157688741164277996892446271137453590101636918708185049850681661104857309822132349993611041112086585936197939249196556835060966125657891024977971755878884503589564334730212256502310322845997079012269224360441528377033787428251178193586191397706282917674180978064053049208284069340022176891381477913717563369987358909101140945778834400557366157244906235273581217903330899986023542652624216242033846422181201911687157246094695010472669287669686080833115398971071679758374706186144171598242081265662768027965173500755847968005943107961262714618996507777752554679702010282734682213829710097653650767715755883738222559599819057259178540672174377452322163075948293218826785981123125760041185812431324069128505013652525365958637536794883450527469223052994459508191814005932082617261730042250961433193054212203751936603486440685034521352625457700605842238003429790676738092634797589259509161597584911416045031841257294825426736014292846877860414332494127083376928130825488728110684285542916074424443345638265351115703999137479564914889630943864261772646551958633005144086042338909528794315860324264110240435337345940055565774565930144737997345949116394539734765043296051656137922961101436653850156722438411756604797505808519973771394428771420820620619655185274761157972647590228975956766695170070493871014902696296544106651457074231312097526156522067630595799597642315316747710563318608978658663683355544142156873424088328993760087016634399811210215434737884559947413500690883807132559735072895427151546569882577137482761286310366061044951238541743384592466656537787297533720701134266103361271228103237350405357469721931431084622863169075823655816703337198747185678776432773743907929615263954332109905811089804319253605610844415170932544562511598525007122204560596466810626657036910945088993980443836258348254189270926762682419922030908319523938011587496727025043325217269719825741718261581081808753936961310504695222834496643839325110414687112444052499136857031764134917391160571150503055260920583502091195462731521989769402476932712234027414596350701592379620319916008249614059811896209358065975213067986380919417378715565963761064949886617071329735565719130035456511023710002089334833195426373487761990644095299089397216072347168230458291383691157139278083503912359831956959738871272164500988028106734454188381524850540644416865229934519130714650173321187220456762674369883773602459514795755593883805680464463747894625770850023600758736233326536973396591572759528696892606531890607333747492999615188142126592947397818935460881353809800596016328595326277750942315952418323791652702375572091825460083896759751615480898309517867787876943292529126189441926358615084241543350604399676542322460925959107617383791371108836525472514873114581583207353610937979736879816760699197408844910668062927700869976922013279579803899677149205973051842063937003729553446404071948835016539490331379006575446618208238549171852401644645071213297466243349969137100350182163674902455484954868902364090549591314838680086123987028816691742999565239551069208480952754346144533903727154130685991280530809132195912625261444264491405362764431721094847987349855869758240714706172502425839654658861721652724937834739434957527997781273916465647721707836157962735654144812604636494918441865706627245018647836992463974474406360133055011783399808667249943083708751358304072109797736770706710501435180771999808457671712504864600399161572312876326006605461773420356240718904913663986993198667140132994975357865956503862836318086213185599839343748424537449372891052388986842949511189595321451047997632649989913844921876706267398500465453547894690556639139411686672843618365592526395389065298420803179756087046550638175640208540135483378130687058858789725842444949059514709586780743261436043316810711056499565912553245819221348859010534040504110349492865210251951533076740866881060664099927076299205504310550547567723656219054280874696565543011278699081130269138621055222344123024090167846149794681399042101949221178682865273148721924077731551010615792857597054559019976488784300343544064216126335560078135311419665824416514603954040282169423913111456427086356060280501716663531118798577510838407606251193381522331217744935105448992944180432474307972345623964484922549344436355686037340369619120931248033063710359145029457991868410339863336997995587341507625389309698863814072282287768420062203721738397243745252780563449145963619959572087457688875938928327381564356410179837416886538154311019470989376173635853920078904137153346916783352452630832841435229833221250244613956151459337439904839214258186386098755140438365406470049376081100030906985441717123073282137843937538258127767197114629782076460437137196115832112734721773286592594389205319804565542625646505634120938434043862852759814791002853628978399956331211351593882887224813035291455364474818857627034867229328330482866183458182251629368404783192669102432767842295760996210103823487830959075267683033151133874027314877647527841411965293877791762911565259866611417726748103218572823378527445190890946670546672289415464162651561630047827943770506141357439817222179975477917510345422287686455173497186100024676350688527871001166521777139920408689303604437702623068293030611770685340541978058957293331549286071074497724787240021624911588836801115330904967857535833881464962706328952896566893625067552760932497078444440541597089393441734423029143840990821626849761614567994784575699689451299662567733536215130688558556331780977342316336747541628050163523382237854732538394694571306905635368101566622457931927583248220153107155293741052341403119527900662661001964947071155119852146204553867784253655143509506733681555909661086080078979897510255088631572489201566488147947300733770190535486831109924873391852083776533087890627806437786873586859868866709557722680442659554248791189756760709041553142087784790857570399450474415127506034913204456242433447404977240621445230238284269738345050453870860209265845983633244082640229595528788834630775617931007727483730484372508412740719392735437294170035643469996512061585060141329197876922264730013178483427942785949773377490851171191026819228124348699841100264181164721187565147420268999739804784400952596459641689468299067490057244077868354236198618807334778968857971797857844038930186649250908105143595886532306774722901620955292296509235677712112450930362920981357733341172776632135870521939170177774887349411101379238703032067951014439538531210649421058742822114168508461587297101345528602609360617154279169404812226021918317290072456862364955467295137473257770923944548175417146428253044428934606130052556372120848522098049885473108400635492010100618385478157408945927299110430548027446348508925884774825992312191366096186296624600832735253234372358419681655976982962815613376923695381402583590801435354581523705201178949758351336958913064694502318684031687723522626951294743683150764502843339108288117333491275021712725736246042742963965013934918854941298262886863420731364781471218927336512918230402882749231579295789024180022257871078410079467110477443142466828901124162454120738340731366155177063139927564742098164783095272534483785548645283885577155493085976819724903652755464968780867373529872484454092685588342642003940116377787446982950877744664513360634082722152947251860552151694965774565255172277357096135418519127068760835242415160344328309746546584073354788748117967511964613845457757952649017409576398046845046200859112452324112559521945553002443167227836773936333100149391391088938463477748923224433536346763811433043378256975303187499546667817507624573120545576726216317754003600515737971595741603934097048202503896650044301819679962694081124737955708732256903914548730020314153326965550935266942140426480494443754682699553510278340665372442715006853075833208376343477351610935437290288559147942953742899180111645312074541442621296340649885929997883750613183847112258947995691222104832409042242433112439707126455718127376446308701680902838277176973478626153399393481969150867523502368204170297945257742160486111332472062229229867504221992634926934059938033009482433943368380096880022830825403811759092327104053073193520284612563723420334631311053792855545605061411552581487560348526055425701031276118433225590095982156553334908258143392789568249544664832847200874176220361961419849597412371746206155268235888763217464828245365742530367189917176213761451548470179549771923265660720724911361872930390633796759540912840772067648602777384928019361016354516307363108570310271150855595913550586267049060166925853036283854516485664114011632137300829528471474618964356573893851228612262598292697480436537669371438194330846985393808114298099416743376915126547517877984074868959088651188092972430753479828986261527600404674401264125001649322295216600299911814983054644669560147656424867530120628272826044488080091290044365428145318869689498805519552017508686538297697972264676611923372835621291296269732152499345764854876258211557429885864040610968690022423279653230214888345837476409998409389143147651306871703465241981397982892372279898393196850695167510801970054993971277978781084979570677028089156225664208257543121238711248967987036952647185975502956245428974343592134040953891862602592163113562907720727398910801847352742077764061233901222181428414561272073128426218835098304342450339741151013429640454086730835371128097598257056370488619384682103869496833215036628029360545648760064911827304619894277101010267962069611546251345978978016773042813099842275785951834820452479439676457206664933170638871529999913427551802036582448198957486911621918097741899694275483424507643921904403351806072868467186156550403223787016379112606276891989378458839058254298407873038384168693201655482233696593858838075590401903526264134120920649514826411970467245687343225531684861695061481234200934522548073900556431614908094921195930145632861906689642344205642392423964079191365744542774048595622493105012133470971851643707410995006179822488546099869800800020311067466136089302967959008594370891119716275285849340542696031144463229973689670929228113238674857616318804199900916528574150961065602329453924406194604943323533238919344432817780441856076880094255796605326022579391742100994340428547245614570855997545566658156144635255946090546334122321197800496982368737514982837623311684750593127261130580331549160650155938550766131286991230613391726795652108164027180786668580407951952677352956494006678864549004085485223996364009748983088908460240753696016022242142845763109512652320574643338544849005920156434389947665773411119187423503171084659282221846184442443787426669150610350254427771987330309880141157854529309924542545225346069927466454265232992658822793372530121971580459580622104223743773304426228132778016728476813199181819813971717128384066113573820758084258602859095477825609676121195252401352559803981755744832968795279611346792197923043053251679918220307294176851511925013147968768288232268073910749775229881623212005434481775508413181799334428143263148549058531256262027104896838364582379714130304235945910200396193886874663948330037563752363543178423854736274225436658922952395582747174366450902536644781331832386368166423355749917309863068395963423983584496257171785505486743344013077055770225058200734009643169512224294320082938692346437794229112933126021788045375257772623923763493831615554307342333066347656378217658107021667865997491164602119653373560497789888953032506715073949579015956141012927309919028872837594471617138978462751085144989851819101074876528082001230245634552553257777696295911744156721003848866857735712761679205453914073814795733939983095584630369684914021257365675344239063497727484176715251912362749352565046557731331743517080890549917873142121469589479081556655051201423293861037246064550160082041955622664289350992846979532906581047081075227705407049821833528766084236645621969199718009837222953030246519456140767628929379090044920929907520419325228422190614351943852348758229952486188100268256891456920671422719696507896670638364410903214832909346828938190894356755256909741369433107524083886669433753123749521143152536317462371686215415531261637027192075427905367023980778849537524073769915619080064439757677911851516257444328534249885989206120704242398117123435546025526185703514871441939557879718348338209229686640606632802179281399306718354861052550258279362225864606590433161835098153938904543314042159183728138471364049004045595832756299476086964439888643419220394669083478893243539228102285575294394263163391223802720874709865708364517504366903362011351841510477553559768066882162970734879519326722640098687087459169939099585042868517206275739317121920021959975188893622107209936427648224613134805866221347511644459946139439033945015556394994026735653194522310286292851746795864191558522131857533476734798039818582785134778432677640602671890532154513495562538686067885048777435729555550060487295441559502737459281641082549165080217919333188445404082753389749986953657710239140582480469584784960345326776738359461931341498574421357255397201769459330230315775202924251252775711160348077310526811028081975232493080407231255636821834651940353677301563277797274378793045174915152975527089276656531872979611782441409719466111455199285379961055654606438748596616199998983739156404473329173905008222607197895131479270436124618769387619797250078876073010617417148775724358017129027879399909146925807757173256943228747491249134095127722488116159613224002938545919593449834144573978698717775140612234025864674458080207980247096566855356969587794076321262896817729755392943259307858678031871617456992882240433687883310978408366033514037067673985180027915469087728768360842674706089814633780245294680910392891950202327983048033091295263674006479162065525026693921770729449719680573232760078642081085347777658485427049745981963203451482084529231366108720652829507858966759315080815220708470151908768205408155005533304244159964399120838158252237072332410893369128950482152880178782411648318593468237359570973497732607538682254311365850730525889119554649722606716793066248568983141903000531557075083138183092515340054561029973650917039877923588191858835512098052308191490633795989493896490913585243962482623746621338465794803275076551170025028125190802140909668747751229115179250038273122543280514396641532105485902399497425280194012625683908025577584317990447278450715319781059366668069042109347268491480129837322736129930873232962047170916878609732092930488343360273349572971428975678286855779550130557370964522913822247421676830580593849062974952165890217006337789109865644355713796818302506843741796428491940635640893357887204512102929371692314278849989833830535691820053573124720769225634645163729900918705375400963136468153284480033918331953956141500949854493379190835378612446469049619205644191915497850973974085344491176440506578805792774751699908323922969971241960842831509318784813403481292864219680575597188170389254537287047606330649080993077386682977293611553846894301282077551278714294896146711439669049623610299549051723211874686488733645449479533410127684340017745171458313565841279271838298287772257218926950182467028335232106428769914734474319369526906677654698041379599322890764106816013623929178718060133537841528988577340192982238137436867602662832270333454780117453237427157239441644138925155532411516610652556203020022937286396149082728218482529045876349602781875793159704509045034939269364600519503496518501288843762173707321586108817669624987899313031406653624164014457301342026388050261562866237547874198439284377647252845354120773550936315286565214253508099748127524546422883833373423913747134597311178587025688010379726590941567875741478633335581812243450980945357651372985929379759074044869249205878345418055734236641729204011566273203611354163352066348054425544294681411318063983623127403824504044982213297784284488527553655394786836784955272583880292901541920983064956416295864061731415525791652250158135981907552749008745870141048203442200731124636589437695973914049002587438813329127149219606520580434086733561835853894427791885066411974385824587592302840137474962122318504874119235845702664493452037761243852362613957756117807271309772521009768044081023069308925642639729959825594033514786474399085582046742915728823650675491693071254632741213472076662196932526536280259249444233546918391306528540751845419639043084768918616747920651843598119482684840111399299062777056730781062409138277121075593841136057799335592010064168839499053862729432079319179833866726360000120473705930534868101768898365461045323415031498433711302347753965510662246758809470459985828357909948355234718397487313856226945342587103461022068614205223976002851500594627791933919480803825897083061341807308498623138648133104571175734289074949353883893518237697999478458414635538374443802340521629764278071653161581913301705516083924830760059709648761712563288644485376738714658499093896891274446292165723018086703714093002253667637931596442028596422956067596850689612777113370357657508787937400841018741369253745033688425973137845466081766063345198290124356153403941240977291433790278181498055759306799709926138697625127107548854139378441650891511647342618917270377052708245267761145406248833595841191314823857645034776886605458036989614211225952327994169474879113170012233257916196182566368467901201811857816677286230650706511069081236234440148342137799916884526366135025183660567407918774248899603192508128813099919648280725233148861125779657082491747261772034165630162628486005368736064469886925042095425973316418036557457599426271224573252509684587726559612445886763408832121092752325456671512505941756986077736341248879714648907442455776646607737776036036323646278405145700650303595349557018244952779558274746328299980103686573566389668342059642303140195627916614149741441519378994517423533952911895327736862834330448510622635575940112142166324232861588631256421767054178818525387742122279689109312913770458977947116989759786208380449798027710392217709035441367890270412262520484530237093388355729724587846959644419957336667352640152631111940584972454412355906144020085391534355785458804196731813450604902880004360370326586853059226480007954796958495841064643841081627753820543389208470833957416991779968167738070088501897974068905030157587255455618261636795202472514963063883110511628795399678066740531251610338098720033244126763000352799817376175632925899816174621256526514030759295686907997906111809264995903205089255049165010088660763399330062206345234558947960679925002948074496795717709257754633548302904337069732360388407882062150869783169147022275769165142342838761916965513387274190627374941151375368515252464773051237672059340333349672727867514040417058738522231141746767817756052848761497496192731380470993471848392419813476425422722120139471990333910275582162694087205258211139120278516379049848588938531578755726584334769098034104170734667909876731670781470755678432809490272186147434069073251838462011492332662782699786019714360796996312485404608818994155784450307885514214897639843385316249955234678605697099618802715284839993185180535292047030237566941828574499460484605965544969020450797500056120862602826140806174115709025599669619978349178618728543236937820490457950211607850426066896488888725125892614881779790249323935395364559317042505045765543912944850384864593950627404994962130423677211777755169418427785298638663305602184292352211080314869391615159887990191710700161369249872819311342359403895695299538429529856061286685523577998157136113022671467152431230288339885801804587622685632369173850007290615348266479187765217121466935540051458289507644201800852079765588420037519127134202953216648842282772717233585204090374027774891160253104325945608047292358263348658647633536023797828096232003513730476442345482304053312160569817061916745175988654913483950348477517754325101626904976860728653804639664850850955284155120190013790799688161587694126931404350402280080149216125886237554949778746114865507068820749852045914297979549100558036419469715916133421674416658035297078436788308345811848705794690577918186020889009440271073980326243969469760181400943789551825023119599619170877003712338140592337300279840852090938292443318573337947379939391512038626504486020768901168969072406120207504241218011262960072711486834737789046380131065892492608742352815328484130311789583165283495192923448787968752043962002737474839450924476930074041872186210818694869103723406305406471408731692671483373674129324823284449746163359487171008848030960397538039543800830479483327008635342445154849372094871767995196702801655445453417601407828418697202297769291096069380951494254370160974237151487703646865486857704612056938399951553973720907141108669871511330233056274218838069246578053786580874318984244229196800262785597110467179405011944114791465848795574858063703173319022645037654045246166889846353003077616218854587138968662891922438602235582479187823800644219014278740621051370890379328735823422717476094417976335466504122258949897440180246878404579315607628925758898991828601520992302742963307995740317458079628863345184378802134188354405039972543835013253372572473411474241830283267364090015930436872966162479949261856302628847221044610267690238393746640021909010604348613766553248642744924408685622497796128831195544087042889706416206942261959057063918381097768818834217082323083050117868760553258341346450749555431576770333842116317913170132987254341931689977116244987684542683370506890172113942434068990088260343135076619761619476101524332526635860180845791298393426920496457740508933599773779026424969932318971257720235411433464299384297060757339920218407935717346431306717657269726571725846654229179146143026216765322723186080627423570305548434203626336684256705700480252114345310872967519553764570004760853594845777234385890389067505024122937713382110377103276421190386195764655744090285515111768282178594938030342543129026665160711907212786789738013865244880791251312024007576841417768701040109603523545396489927287103646491159083993243205262492761124256369122068781902645030617214469846868029675577683891078817008095612754734835668267281527445350639792050760796682859209339232696599695236128777488243468092486925405634938318434094773796604099587039096666468138379672513329423317385026411382129922181860584416578350077157017817298291409198090307047740752039448752147676510253019833556014660755992570981039121451709835911903507699107574060646040965559580967367929690989872704868082723598154401139956603370788230100855475195726851402782823933847762594121666998773903035572784965861926948300136040044997839405470527611697661267291052180061737183595304158906942283198449738553548735520244960806717446442947486273770071314231332076128879256249710935603704914580336409628189679569071092662789518830509870861034798111223863409643421843746990411957079321228106214385373316077938591561408766643180545354919415849118978119052266263658403267895898151192337065174268911361595855864250257661428913760967343415219501065117632085748026539518406787835802113940941006006059433050675170609962039039845334642717648404195001696326192475351268945505331650822401283262544789337830768455162967718300893865846622401912820084033946137580630522828408196856198935831456979192179147457091888075943277007130002623394779089931640785248397855016170975974869950310909193961480538763850183590179279369806910930671129057060297062752977521880597906012456121393618289708958119284156152027168698994423781781171738436788340466275589839535712170414175483369207974352439876913646061571569366182466314870187137818637817500480740211327263290857233045220515884231560552381996869470811132132278463536429288900857971171133467707380140968399168406859417478768707233288587122938550120476342274049103646238692300819150824841560006866866058241405966849497504950882349476458114337902963333543915507179606444846668894672429318167827553742546509449355028253286298161839586877170490756238545872504719606424489398257337424887451392521649695169154401193587146209971071003964690540189027711898388551259930773589981718030942402146202268473574776811812820474453588717485448619831021908946455982167932844273259715563627283655837074764492869876801398033068811915878456897753604680745406333638666572387450434120969440660399298683360146396796278161512383447745043130547718128268364954940210575660806467886201681714546230172493148771754449260938373187588718054992100229797215495531355640769804338020826709289424433459830626662814217047540899934000745364468411718241351111584896080076611684777324979820615502944439331431207426418714596188230254954303963362157559873929021762896154765801102583902301431816031595404521479257506489485301835455948048772135615943729117026520567286010017449408490216383976387428299719971944077350627595033424024451483019585612785887077002914580036110549512926335966917915383574479354855229623285983880104204690126447208152056211410932208508632699566914664294756917396580132498278282735441198572941126980021214880942574914242498425549685643539528599047447844876069691608024619596748985029078940393702554096471590778866683899722721684738876693725859111954007863002538155034831244034325513065866910984010702454902268447522489882250170385259482402041569036400200758736170821575558707772774284647886385386462545322510579994280373218839888273792523399677915964045773984287061801964125333983606205209379801709643653390178502123872888425152633159819650871175417746629586957972911843441209159820158795987290675645093863429175857018438118584351647049921005795472735250366266085760124018902741904003858746411837882931930967013465041018614668854249816901595061986537879195750036336793327342063012712498752702832617635822923839808534181513836614346507246396465799386943527732471022747449371262226897304646289212538551766284599368946594294555827314617777614181750308602472710794269166077684327777641586943192817464901013414053159638623414538288140459153529556745938100930695423663265376792213856528869333656825489362695207439334807607865063328473261837058563590308020330160023403514510653213693059547897008822821021754099378550901999593409131912944954607123974527262680598531709727392376171769129468738119576356038793395770548699187327344103595623095190064067922183415647512967865148898161042654418785100140924910855867501792456046208868457725911254755296469933273829471253516175137624490526238344188862988335878807880954474887370057883692360047294905999448123709814156426691602846716048543673209605880047468318034444327664539697440288169782376841009212581203032585734854934355986857671589104746367556249515422739183746389744883464890689687906181412803322165274972479748804539761116010132356089730969432302001596750332487092729468165213230650685629684487353962806522169627573723159882375635367498241621594017980225067663593720094249625837212303638558204958383166522267699789220559095121360624776212103363240004094419402053901227836560313813623692433456356788006257673670875506681703556502392104928274758569878947645674859795891084237165801552848656599769670013338641139567117857917847774946509507628629652078831074098941095554365367259024783217532536713164420231533887690990493882646600872098687002106896073118483283944918436577944060099520753619826385700388973191807048467818334657287822397408550531443669695361574544958267033286588200545803052593677826615297028936349203720549938842551046610955271248700246552045541610647101130032266756527011264109124143871504266516529758903396093614250317890430603784024440893060709644647735990238066833264706455343005297863030653156955860240291083277087683156594272564811820401775625810750137320397505278444683060744104327701314805721600356416385540294318365529206654614269576096781487116122208170363982938382308242242996125229493067064241895295757392621683362339562959193197972931316449414248218589596180019415041556912962198042683500339589120103723624814969498952238443524204534356287041207822570483138251640244921058498299213728961597562511454585518090949516164859670425447628422907517027977637781728923293055200924999309693681658045598263791220922369785597436987464686084869510553668553444798160698141741404475035871148207470268185578666362045195289396239746499555329173078256292936840095326257440039052083721018590045996024066225375339157501244657436775582131041162450818293357001980224001517955192694474166345114249629283096272875992140453335687883902541582901210983200946349386666071807293765982630683524264236708797970685092473100458170153979559042925504234383479985239735596011890009448970861251228953992093268182800535283777608182205472774703455839856933400707524335850868821382069084093031744972677731440448093986258312857799806799927268202871846573547662943866362042134314845578246648339647470993191303671602351677771381552027804218692642015321638160814781471689366088079719645366370479001600113811227588193403339379586505417200890918947702134644945305107897117126708271507972357225196136485957161509093720330152959010018370915534831775833395701872843949886889966585692466244236723448787518901639753837041659385429148943992853988016364161836558748065146380958187605061705947876609930208748862366981428939173572763238885843674648156291611563934985812194885894799860297466478827651608330034518800668760663003092814477944305780795691589281377050137930985021702353401263308871508587113676543832453423269982616327438349435072220778275534099389263915732637303006395243989642003297528707267221064218901510063887838717915737074162183187140620948319248611308883000063237216654228262938214210980915323949392979014010501108247606631289003678722465426714283188709447020824005777035535248874282105941742651134948424510725805169351503084467307401323163566404580618575821737553773791431691565926490608273983329450590909209400485256007463604686943636117416840734011270051761017599490618517993759009159491374572992956107365561588075371166840565374473387365823451915882288090698401919777963067135273117861734984779771004728924198014722264916788299504854151233212391866484864262112387212016934252822248336230009630587997505957481408476482054995729923085806422308316510221595132805703414839592260759800122800210652635523609318935931844068291540046080371192739371649438169971790769395060304320181960497265087667060627811490008183170533142600228001200963653877145826047846443111416177792849803727880427846056099285623374920908547273926579192366492058776231440377647155965661270928365112705538433970481765296348433546692513008434307472861898949374530124446102123456839093306291188490108307213298619370287019854856319591849052042526962191076024494282904680322287527657768226132539909368202421367709601339800704516924615806257369779728946516963846428701025405307903879008029263501149977196184388846252341226761469663038315277221669228911358052689951760432429729732562990057001593128484273985082267278217085022676183392730449316247300685546877432459417069208457042100475221639748415110832398084097193984215625615815777685234574500246657365147497214469054504004125348068992623260194616895190987923132701487127725914117320687284667670105085042923953805832816676363431735606058563363821578765630566862260477881956484175407667130341151971697486564191622775080134239931620375304844767302246814311194692982123186706689818096353721286496129949537003446162738185743642595847240389835860808101639809581960405644032377568429452667717077576858837501535049191013770356436182148843068330440089749982428029398051129109149975014332463218802145319152774394155743288920066911256879983449628532361966484172727475349666440501868652932847544029512886334455872695332558256632019036864638029888090494704347439632071498475262806699204704671395684281778293619021278532284724166598786860666729752246882126356001707190975562978594862489746654693297622049504376135848913354231771127582025390333080260563465486405706009589242878002336477911838739459328153767026825835953609741745652634660441354285923664336292998838042844438978100785902778405467907026820956203908851543889077502170323595406548664512859915905161297811204533857864622442615602809122243434085834623001055933115899772202470686087328580471240271520194124887930872625256589630670121470463881825451370136243992535310293170341999170091731863965113039011576806319644699404856720675112311662358252457200999121612290388784478181319961184156201729381823282494439156452768511259019996216049586958002403012167686599157121860029320129461058137987891327389969532132002758901006849389639904414363618786656876058365013447096360115109891183880804540058203455376969621916971348974701330023253490772975136881519091926990360952888429078881505810702448047712894275560945785087779022000389770684285998652431517420950725131595251015474685800138896024108379019721967327615781179231793499539766822947520595029115138533578073761491770180096256443062220589819271791832304941535749914005330809178349128699566896447303208595399446773403908436515704096444857668609685798341097074893453177515524429501481975409464756120597943393817555160967821116568367493415437731973122177737216616668927136861060180015020577997500253242915715283318742975366068949204891383484746744043364107660412544894627117512373826492940562204703168288960133163790116314711349519375848800979212498784978284681034617685663503928514849704584902722293280972259059148206893359299239054931686279740411956505168037508060304236581576572677584701799091684133726214281166148992255509531540121725568560303931433724668792127823616509282407076638154328909241386783787496968824700991201524384341549553545905038275045730724208311806880554127136472872274938227727467005166637211059072121318694468917405518523570146559386863191504912717147888413296366348348008054570090039535952232170145255897875893147566819676698168542171703986625380775126731115469502153583791275055781625324324722741279631768859441341592062367511358119008328296649157331136136430247879362475023023834651926806364939240828753843492140759992830424350395421295616473997015360618626107905462113587073306605857556264214958951661524079961349854775659559587206115488066144884140457187791526193165015891540903279912240062787241919967606351738030122720063286228382294679661067265351221958129619986429786345453568509993771936120745670076469772274029604207110448618058257942784858568177359102027987805793076972219723129744868262694752162890871938491725538833898737545312943568607517039853607542440280475546774877414287576963998687145670047102821581546579452375798208498220224156870354203794151943370964161212989757705167367880868356187451426779963569682203480839134094387623038062542990820063040854996803826171573905860884696079880110877421052025310445338660876684055999687003858705917363047175197281017032727915315543407691534648899915094593195659126447553867725967342087433159505784514058653402490775837526082280561969282568991080345199556323188597936443238831615522842434070810423393323011049844753220292937889444564354042809762261267437952228869534242262599920430018053717593602957936579278821400944568808608053770455263958832110235478053135141205883132711071380416109242289882190647101513684775556411524700477090328958612038345899991721446688522938089472830119534291231036524877024490803657324827416845978121265632455926990922038762145223459096476305741611970533476632809490214931297042632958790526457210486165058637223911828683029503281649627855585229635668581313168715736804794162357097635151375348174662612847652499281899155827695394662258986608053769616840693478221853825673206084927705283318128374660261729870094088147884404596883368998074070354076888027303745323446200374280015210299714749752663696651112537294506086837721590462542775398776475241435151771550796358659796240374172099597730973101734994395959355531628929754459070678127005246591942079417215356390588561546603217743995776623140202334915665651555158767083215759787120773632364341663006905187787237759285667461015201537984489961676380166151943127436746642336955175457704561436188161533356631491977065615089242197547051385228629030110186357324938019972292705721381570357292126815733390717452376856063887558554485546160424861236566383371586239239632923470415786679562656284785091907260819705125435964851094156447034025995467179128694081700765235408123275098249699743477299603306748456250193633604049960746293108560708215910664927287744658142390406715031401129439047008573061340740507173973191513860014563209039815471229908545559569291243788229996293970109223608299528005335361051542760699305355483425486373658584562750061047679646836251883760100456866879897189779188334270099619974179086449534192516652657761119899114882939716646305864249653741295592680496630836435003715309636636700773763285163135618897858021220731944513835542258460413530368334864744494319694242029336123335788335242629852633734634915309975366640815331632306138507079026573481099275858128634819704033258797751425999091315941801916008774018971642283021925305799131623546166075507875501853724710743832537951942937968917713910266645612146196491640362799954995680895728143961181444638530505773313387682811922504665420079437339533645898270890695348377111559485086761977419531076620999355037548522969986699341052136191748313852923138668637593571413870797105783999530495575097628411549165435914191456379542785453675327324583685655451160356930088814841103648374747106852920221751751938997637156974964138166773609832035056741694716391901699196812971062595146998203368390053448716555691973847312805319261004738205950731851697245174380480537341440115900319045467743263843800863495021563443928648620826262409615377884335610591590723331802448887192979354353595460575963468601265281937360810165984910408296355434835464802789222394828452646744955125083431650970624908620177473950713274420827744975641488709935872448344068945430031586139017246320035813434774151338632102825765742582910207402510935756244042232853397648830200788364233290063287674951131420075921819429988226200370769222503253437600711144606821193579880930826000807565806623691976317906370866039895396915472324854415050857512125749928312248800591124645032716028430346364611540548381375874946201194210418030200932241061286862630305274021729030113508914231635086354698342919645482617963375582195821499515903537480606110735881632217595465926257381169077124484906664515216441269734331198753033925133420681707709671888980857236782498187674741630047706233264115441109569515080060564170545037737084201585650091914711810620589572728231635803692581557243205245363075713529179465579801933545986629626601026026714199540202083602185574739127852389335508359446537730107394794939011467665430491675798748208922016690801655691471909498045314465231736237611285114976757174847255243901240259733951955881059120606186506869019340226734202144121142768795939512030289207542809264875568726978748500144627061968855249017721021354448488459425554299900119329659673574310473465891041779606033363823933769317412184825044032441103290538813107147533531799342651268136053530843024967854512265551025718329178580814316905649048732623883666641184939911291192928926964342253611860553597260116755258832234719934021482385830341811708230209474818179881936009138103383406175309497696926124394979251967310042672927745574164788849698778662270148242717098537306168006938700532793674232520042715745656837854503291926621318260019169935506530694099373684139408266950129660670198408674586499930908257202040804877457164971222476478487981205454251574794172477237412548022384104308306329924693609417843949893751066337977583745972030585082552096252621674498933459929476832765797852843711822791647791365606733888190570843293974096508846820862844294857811126191986541681985197911318337757282840287420543482751990434743942937477052225965133265026516849455832508765992485187115344883551233717916125395539543135623471929908410820956269148917289271032100057650763567594269941149850406033488298478464400100234247450891964878193643857873979529253110283892753703811935871446364566337556663097360270444864025735773623534072333624380654535748379771480167290492856226360059578394921991963551054266822581679188278518123457323753900671627044433701479953305695151529646750684403310975632075517900233572410651387569993076728578759992690962795309090782998570410891443233535169483313717462431511184108695753473971485196357604546627644309688869100165029306270191837901205442130819621984076367103831637084887118797846090452999099260096251692764752039520313016803290934468591644039697161015704349345039080340969237188564391013323702015692306592988835235979621937101730168717121624602560406066896152175370544845948513590530573963918824029364069612368628451187504453122087804419154724241373702966165080562783280714706341717000443937572935863476209723256273090271992502739368826119587945729341119289239266871207004365195391967102520153935753984060884419030562292888291744687764558150779937713410154892323904364101863970968471502940626701312425066651517683319353143715312859043595898587722477364857419504536844772493392221037903225856292114741562189290795790673882972186119946544401795410991420355957213359268222618420574799669807174974499921069836712189675401947863574818516095243084696249884864176565903384143506719907635154610524411712864856948568539031571978252091748727037956304711226606360934927999801774452505960842612815583290811378705372661263803412399840462191800469349488044667244700750384206743636591060619299709190889421708327007094103532244684035530440052216793558809060738678146931993046640965820025465851987278612121375587603001339152122734721256691257344222754462123769296275552830488371617197134853129587493235071034971584241337576143999764774397663895983337396411397828838682415781839120818366043198975598277153108787769194023234246525097769006084253271858269193134595856947306736913050337480761215256642302162589086705835734408358640633164813210004413488522374241931667182451873568606871706708739332765550940836945646990503389030119005906230755062777552954457816356677943099813765997068205432505109261696494350073541218874619778740127222718182838768435852094208019990171554201065252432449445676071999097245467301252267849604500354270974928823583988517590812662452101977688097989318178298742300797214197222438051263058488926629289741491332569791030976296464274911920267850089095957556473547887669993540733884505070490724184562992294451695330924810147486846734165048510033205017723656206066477820502981805117666054302193603897776867433238118146562546954712674917210539118457098479781609053658902626599974540807475952657896051614385488698382525714107649525846100434115684187200646938060412401652776603368109640276955466286487277710906163011734013388124389662367162725406050588691658776024645026255851942540820761585725922136431248266021545316702207145033452736524812847649019591665187720320188458193121005870361288875665945249241749576485164929859109356779664479187690783202421645415239789452404474499522459988092147831249458901049630660640491352137497940366568454639616839042917663985286581410782540323353557888929878980603558928205007502998073207544164663608038155742339554408609236424044862031751669191042664607217141900262189582335256088307584271651728462379219200056296251098419474911230102415722334850082817894183523419461284268795659554068239808526013889218002952580616197125083839331689737626862497360166798323420975955144010398230193488821988701183757017025539799555698911508305741861498295481617020708374202249672474073816229414398588774443220379793785084470508020380423802125800624554285381366232405528014024456463025992519472551305177468064073137891199173672330439817479409752724089151040183899545972360002083590252202965154600510793050019538395901592678273505690554255893304295283137888295832800608735354530130696306810322950807786662057186057379972857339519738977049959840563693573026639659650245491598374332085471100268387552454668612192412044896199485433130112743425140406352344532503143920126250834285782008082796914646120775864456470025157081220763216222256211648621241304166850248523412526497219687456562422574917526232972635667478844495031936228569435135803876808600664226781611837160883392634107918951894305871316769346716340897357426396352966144531058719205051141371076248090595558878660605726001889058123397238664286304045372696781711496964723626377552176105598566472973847974328161882840680532530886406538251223180373987342244303249877010171912987824502940573514049225232619809714495600502691707891947145349404049057424548719086801022347283746157607238441009115487950355836858631278475340691287726671565695692973386576661492695415357340105938641236690714969153028028683510427818398908641478246332140892058557259396561916698908333914413963809922025051672679885993753169035785151695608495108048159299474097986560049946645023993037305083057607938899680849710899349781595049690517684923673849972335800575369003360051415184237070191992148249453888495357468155006754535920716213273976367588536990664885576295408730441538424277627332463167731140138366277537532347230969814035568931967697496704643016275279667033742120290867276207594422766495141661530811262996907356712314276539652772218557194288726993648308046016610127406811548994335960901275703012481080845666431335962447262240005364537720801606434513683214432262080641145989019123743364400955482237693718262888087382239357210834977975417121750071588111703103718605822795570744340951911448231862815317975380454467567093300716656166020186182723365029868045235127177294568248604250850500060197119888774027964313130222077336691829630353886903552427478651991818634747300342614388171876775125629671346325593121891308792589540558270991442085665540910488312144656461781145766039447422875301989048526876426264403797588876539473389176952644839795595051426466720297052719038900099524844084149997442688492891497330743267631591858581316577683795960568031431541791100044133068874676383343985119763891258048356012539809743232325964750768400844072038301177350494522561086646789224755625873718975576779798656614366006883058582798363541863758560836918127399981935892133952605887458529674007059022364211574778093234569046330863240128903631213877270832529022237835396698465471371999506968093452916343991179385636600952695680855050417128385435591246892861465973043510753905362138160877013826666170480367817019173137912063643616310109686018447936464404288453136848486603772836718042879276400315346779300533782042528247979929388138893130120777335509712335830215116104856405955831130694211163045056557288264792017187198088243918368040921079842461329416900415162656828993124295946904594321692247232327296900910793665342231886755835230843284547833145654452896949022230747268967249815222016299381982989420780352411597504834642179416345789951969797517090983671203392217170315703939987608773178947980929894264912030242900478257677285821470085785389415877971368311676216061772165045651680812559472317914269800534032138908523447874275471287979995656251947791132456088650294455673384628685878418401893149394905506431499634696165180439765167821068190719451395546635786585787168346050212970913018712840556003147665430168144759648593365442898375210998710955663142529010744729625836348117443688160674715971203846479453773611680208436678753490040540551277053496698208027460963818961624311567848588531029222041411421261931144020226966550062443131280754860832948141535112713733020928474625459571457752464668969494505201127363545755416104428570465088264760783683076552556551152349838701031231895963417602473019780827605714089586336642978780746180972544297365381719456975199351891940589708149941700537694502217581951710721753899423111861067893490748177049666600660516977156863073557599284145835941563112412292378902108423381048842007512236509440608701424313170242487963685985939167089070552086654225553579541324249780975891344189687078412094764633451040117543329259031848236705015523894451055823109194366173060223231974815306857410810830701790494365224375048051990947400043645887308060776406414244871216452419771673476850492714035587571607996716602808705465052721859736640443856634465072456795970802331904776447863003616968593356646675156695878710501857137358915214223826678988830863556064734236130363475577392970103795097514718124648657876519272839298931334930244756945996919559912359064323085824356959190150178639856851337652022432661296280622401381776119612117986437507839985713786447186129699178965870132700593280825195167119490980129384040532897967470105138520088857338135376724469945426354932765538162354484296421964060705779554734903201382894774062267671800325446333652438433979388609045403771242251638832993457510050051284708535876706796366356570999996975502403587055134157714438793534184648877562273985816813595239458883497164263939581036505857124238178438607695290692994700710083930415341544867443242424472086335407789474326256830692092390678316617647265664179758966040620503018655508606575909820151121627112564932112633963896212968523263255755000215441513082412937502004609080793260968988779465088683771029507981926057908300951462212067638719875828446024920966391096914813662765966838358302537619915652624640055237936418141112631414936889310509575928351422245216387678527351891382645313853811135839786522914061497135190969317192325588364084035463124958604511210536150052589777710955316645581683067277124794722708266755755218813168100922316194517335644690485571938977862638518433747826434706648466351259980326401673069712789282710693503403734184506601194985585349446142824721597483079824849155847484130429667824738250284497944554522423625344558504799864358047311528311034396564760277207434617799332570160557302770297649304881936645203538294839685485923634695971097712877207693745380440607193060991093585649753768802428968738428137777615311956421155845457361562924641309604217128293456815855856407118946984880060110647341455342873247273690180625559286342892616734908468124733776518964864576711092712342772004762157426541250370227970935554112377383748140061847697957720783847883830185922357887914475802193463718290936224100374328290623264231384450019976808960210722218409644465731339407215334778005430396523648634820337806371503060783984521281530622020618665670796400991297676452136393072519473801509779912249683527924998077165433304183779645530687109759535607224235761088488439825317428102235657730477147594774351628475790752264185580766767279435349782485493647790123330835648162536030352880534415956149794370816694119768421719997460292282194112863711840422470117623305540159861129286880045906699062302789196101375428139270546770095817531309682610641601218606064714874593278966795228471418094080479706987804575170870137290628020843787985293494578807643141915309152177898574493799104328286007861006987877467353524289173426866274003008082286464904188977790888527875249697983623097495271693114853523441798394825415693267912734750757372083061215941850604767756210817932123344088237442424377156506062719469569167837770079710858714909911137949093926342744626516879042362380670140343371379120166919440266283748130468785373090667763853313037301754166830358335862008198328272862357745124357701551531846878802872735506160352396585129372443306300802537280835222450589516362950899427513133982194324957826935340255503692547857334050777771244002749545118149880688086020867221407254846651038343693548916449397175791762527830543463936575705648775150820498089451717412475889975572270532480022752353489112647830536820968253101284193255909579405759161687848203390824051767258521183514473171304162311620683048351094672921092976491009658076838228981484514742028315581345663306922636705094083274948342478562526329020157555010355674340067893721194552542598681042379052641237939440035591008890627952951855203483943697285251186788619194194631926932442429818675051368899181820521822285632300330638524590902541542246180673902390128586164336842841502350415316276972991926493569689700613565420778338149009026454673577255457603797621373803553365064457932836150385229697021979757310742297833495221824765983283900090541634420486096426819881921000446955709172737428202858772146622346407029349522819583320198452779537790200544982494468056459268968102863964888170908853039491373078996048179854351387700590312041245807982410388261118509068014089619668949433255573103929197164426694281382287126687077052447409424326488411554749120557909018508127605166440399260630153813767633311444237085909425986841959224316838962291772106526853561053458868099409287040580257990448279340385820571262390712248783087929356252023167799965377916906172157301047873907116863122401230465511611582389069527969029361250461054537268335184464677207243783760398404552326674226179432470995807856159453519963998871471747928759349220174568654898904185635108034503516920177650067904156735618984697036159888079389439424812497754566213085133415737122102206418781827375986706321183539559946570571450770739482692893969833488893159948674783047725429419664899900124361372890233087195245110171512243057522629708375290071814918226713039563310189498672589541168456428266489894189893249064113091947046566285091445809355098344488632599399292866003646150022196184060017647911264691684673431514612652778054351694966726600154898390341964564889652951924590637200412804288760951256047552852077988222445269276025010292044923774587714984131821805819643588685718750327042788145010028042445317985290620662441837737830781109442342129713906615159224572704338121661122618510344104877727995757548728957802245071078354085966226546030948339457012792438216261630476393735858287719410918237990658061678027649164801830656868857109733597386824456728910255329501692330986961273678917637176105601490738927187338153377030290756945198558269509873143637759770406973867835743838318539302349373493391769594593465105825106718374456274475478409255681471724533961853730251798820390755680100625564207818448234453221375067849420743901814371545300845286209082677558914568814361095937686654695866623516295476329567011232316571706933641247354849385349085269522758699029550363467712145109975442117042360482025681396275105516694110895837859799147445968335341552953124381792560986047975041723137646428029160114986502008466844901356668171526547830250494575976425258758253629025985001319023038694836129564532275652488487968188253201566186133395279674484095568221240684376610736109244569793096665882428307520719895997178127049396591861225933622355157861611600116576881209535511428247997502222787450520107822632229571536027660558325295752462522686276101678303307972136032661814135002986425306381874552136724522935314118979410548104563008199095783024976068606390777097520342927033754079657543361993584689653763460983264275943471998959180660710097143942074608644699587592287687116478554527690604254473702676130488742829631768249459778778436973627046438767492939483433029671886485551680865809425139529606327238493341313736349628262901809379892077479568113163172126021758112855420786523423398509280479246977485278051581865400468557754967665470431945564284739225035661757477729668417518521153416918121124331680483713500581776915496915565477281589685791966559235984630678592764671557716372376919923112103409536223680069715178700526172822128622032868501659236090057365435495407379302006639547431944241707069384449312705832369048390675893780288626872020142658881845350029834012416327508737768556528719435079810094562748179263869792943823976081219335491504759380026644821762269739002964140325074559644168586547016265132493035004284927209990520970613538368185642998056714126464566380428035334853050499205481775362703054525207424422168895690137812556511392999174751770631179760070095763203626854746415510513793243883602363715263521926953744659836673941627018669706131137051037851549598254117778483059018933764172803265603582181063769763594399027962245645716593789071406122580915012896156916705556012775570892102702631859330073181214853485394008511204270384930890930527441670567584619040837117261526497314448635017710578860815696086324516018652352131405414271027002895369145799060962110893930840503918393044394361284420701630243316826197264961636526689222088634671814214607055634546474058899208696823215503582376236119700555048327424068921607142691503906430181406500852072224274225109412229687832929815062569197893116417497277535825334275207163277450098063836066942586751964992988738180910208745562391051921298693401356895448514812254417027985653630216523539440826655520431585917243692323880252969114884916161355545645309770075600053283990933681686280399889843423597785637392282077386407378252715645031630479966037837077862764182937856702541820514702130192185973616835556927322311405175212663411395620562096781892318792641481019024504808357033570395866140018942501910293007387724777703450660311536570453801519015668224711838335769613226567860015030334643852764131840159846373930212707414457422677494625232210112549567934876338652328143855371821854531860856817794990636411860067452460225081124039269679319973292074792061817183708597210286087602419258788894623043480337202474247939448560378770220888080070541035810577007170931063339708731518374291059188936733672691855149889656744867913988208617133682161276121776261317631494203401020343348702510617323569847965323125495076842909335788914686479718942235980403363371424321635363606652889736797246913956007991059156697806199227597234465694624970687711573091133979789983958313194438197801690674877013519147660891569207910736033512114808412707533210551658024465628262634768370221011938585930498571843453168886701123394358785714479808572616877973821663393164494578264329776576623838686925492990265956198950307588242042129974032183994460593623156023210675093358861989638098976826415278840782145827332816022034020292530700576410987118862073229849148681897725067401172091568133414084812282599329608396848630138781468205146497505540644871978581571507612610039865503487384286271317993227409405309638814398186496372149320648594915642710150364707338286633740527146081522231864568524729541801463399486062401408080347024453420285881764125842650395155652544635515863138665207481571037265553631890102274553938115332166276436753486356528381292091066908878840130563053611687093728057030725554307361745176918984049595062237959370009738293445828726682778163505723734353754510603361816442610474306457859199585180966382573747846949497351059638722145211377155262994610088564397781642936749039666006200289934179441124810772220876760181312161208459498367386650391485147723693186195789587735392130137363287417901202830748426126508002291923641320592698907192677230943231445425153504031060523358870203444175901666165530445770192800092498676518207831549615618210270366790259815273643109067774201087706895430751476051801888752240225273857358590673411930741878693188912447468694114095648647382666950898397032797718600401259911501869026560845084762672631480896452972400449527688302875775941052582961637907278087383355799698170325835930407612077583703592979463347212158628225845958673192233093078913597542739827266882753496513104737499395136802824725694207481728198960187496695978426175373975228799442393027645995674664649852870457220635722240805572090074679424057908472804080459650449033720767506764067060012573965907663012205122307603905503909411866787708279673097740775329054454604837765808888559903198080593629009482051237130532197021743408571557603713511276981135474943698641197200045974141881738051780105263448950107971244988443460054651325086203383453398471871668208484029027553524544512757135631409414694337346776274343554390603045524030192512536313332129339411196702724084553970116860550767900010385722421051214792366806895530882213555241605373795225011555107099860998278972844759827649196622203206626866477731513879725604865301936398053569535761647840427395465923708530933278076733728921327446463002813062258667985839124036634698504019253928081179932263243958491930503705198842615264733910281417783234011972432446202310739688715296546003339613073972704906157052031806739080696636651008049299214986964220298840340640054796677372027410400165927523201912082009553787775721220463720059038320829667162049913995260100768123442284560568120198259091876369371679943467202679699123882257738416394568663591730102479990466475350866609083549888547406990349003806254833445586777099840133389586280200968219581264456979724325988772770402150078664995334622841102139282285842459322468150251219128377377398274630707070647135300980640975446354441031412396424405511517604109368672967838256146262758001012731318317386829998979048284646928151113384497830749042240934520912297492383867484727937202805866451671085070345322044573911000137912024617472761475800479150332382230973940974133549589861629821963399134564329071101999968802362932665728527547513727020255068435466261410739394611051231567115288000262879134132908930119004150882355430872483034754341331508380255867651289478901753356513173129212664449591599919323342038911378431434436733102324853348231096761178085836982912742171826880971191699993748409103006471860314374079167683852183159405445657495959090649443671154747326441513444670480827332216637406684027150634512180524358577614522917420642136175959928743561167394142570081524674580985970823359735087842149113254849315770246244875230632397212845850108391479460701619522393282283061439598498669590118772786263292691443692752346945596371960155916360636896345894413895089021113136051591838957896811945422998619641170949790499621769116825459817652316218948913141397643331152731589821670138484770841852356919986112666653466542844884840152118642416456437893877607485774492200168458977644091211213577196571798833424665540475246235233986638654891599917680698908259931892796808793723686483062583804818055680079220190284713292479098042842349362923262521493935397768465439153737457183390515931159662043237527199113078516895346536879267988579947047859643035395396385457477245971675890855095900425032689269931136149205004751619497865945647905646304518141311137203327016181601501944650263028013659218895844762840923517949663228472836457637568525526422804235695161147479551063751946494378557822440573212305849142468705778898928149448746008524297356072081923813949061957968950023090743636142374886148809920220917314883015343773010730266849986583849515089007705472351503563468143616264500134488105333605925263966170831526802798588188555097535706929181181421103922430947935758955390142161180027942357484106100599268556864703511481385659842838898503727001170675431573207376335454606926130446034968972596823385680142778783637225629290221693205394639638160401767558352866109418699375078438032247008146748127979373528155728346993323569356814278093193809009864677546708939886010502879958583204592229432400945152583829570512349682124246878541965755767851291664159429947297172754768713862787210699654819373636710662970749464856852066533265506952952301270804327868495143750971251221223230348144970866325338351117348546557161718899234502482394550351648609120073790284653860136433680196844444755907821343782458685869132540212008175438385509599805187995434820112823604927253015504567137598065752935872165754257310731547081149805158510078011105773380311195153626893282339480718191708044587917557291596497889101123149865356041484978330341733806445441594828719422721867374899287797088055939271228653962701848250555369914322635834725619211323390688781565547562909913602738766362535705527092605331266420660100086937104710987775949045057693391957745303043112613448122440476754012833905640677712275915897844518157212865801439844229175172040424198066565855064908042135452737041937297310650352398266111666044100746837520343010382090956066069068478883289247619631888071143985962861632395673671325637862838222935690379272861020232009172725240164493921331833766036687978803439873520233102343454282257712487224180523911036671214903913213206371263859118102368478394217276283678440568868772589655681037465016046532743713133651972635770187010852998994572491505662378951916096370005778134663597115175953109749615794306564072597853982469769024383056238319933840836009215106061505474016770598781256401403240867624760893539523097861070523885614280144624948521624873161159889422046830808722446709793636693294290003185406882481625291543589008005085835732580360749780505644483820136592953755132528535033143193048625641455634320676352882240549964634536093576707775295093845348062278002496750810739652975684350823471132310931109025951390608658714375279051542779760919448528058746071739631753725506730913445546856689695268806636459015471913498246473808443187204539075120403586932740246364408577509260793111441956371719361787920399683646160018646768056321066672449243260286199505515749968965146583305646636035840278141375068915822816485215834280616051067169003481144369915578481481462197188405332150293992904363777239407788447515533260659066760251978799952339022027441741517941410087528585595668291131839938489768857984967969016894201921091363208231443733442307191778924470806750762814680513665400277667280065147529716704938286186060637688123851793515294682480411720315996938863011588053974046691997609989929004658079460539984147925052901788747510230097488469534929259350149950726898156271235862908254632261875736139422428929805699813647094045252820123065924378262206251024615151335514990800165313130214907936045627305973337485883815557705361076731484993497067884996758802466124206375799787998629905310636838574992886312636542275327321715203185419584524767045297219415077280230585583600133093496187318072708963303804123083610605263550550164534280339314685915872028473275329473761858067162901001629663996044355736593842331538101378952415482457691943236992973812857828600120777920311399888243992992010341362395572381701591046941309518026037422562466810329145324505027228686367999368822575587704508411653843588628866890248627407804644057736651536177310435069689692841977096434227824802561027857407109090177775014791755501389028114588884423077422480014940998137915176959300334834438841458417778153820987826228685255234030242097202737488310911041923614341573067583450327644570878672780985546522953453005696322835643456564391750403144341294669381955029967625278130926962482383663883406457932364176033452732980729637115402534334691540853779467246882859789740861901089068876786942229594093632356153496714731781277874269500718061346711198545833261896882475733224882693570773435828959529809914199550458006612299101351233065910119682063137406442223223294570483305754616461257286584638480807235666000537053865286203375773333079134160704228428437276737604093215341748650820514771821483649404186842523958207975026880140682641207266782902145451113660829559028054689813922582186505377297669261986453740291033300572889916740610628610321854539208963706857048953145752298344449607841966268228205405769148008663812258894277930123712809586346823955003291140627780669381354807079788930124946319747811892412169471781781192636734506046972992333809742024368178995048497804576463394707901717994701742661488974666629961143400117868126319149482091459799254830831398866496831126677703151416466123699383413443517313765363360402034503335921669091398086624214000171556859137927813360478100742414269398369448121231675860059733269769901334230579810192403048825657783555968286095466055345547895228324540153600116326223061775063725676407749722523991035824103840929072076975694628349211491153730184834800143919612729800638468991559159330184435298731034209614644066902036778458157164200197430023111257076918715854070241005695120617408861241766835119201754558984653090538246569792813803896436844480349204376642589391599685603755542414904139987432170768567058167892155043216038004977558538316766962566643178299281001653873586509993293394334221967561946491006019845074325153981205957152336414961128093985091557286807282877167965387732216393435335954157432702717362480765859550192931333983235674522454216186392491755005441510845398956145900688341107673422863735573112391403230282561068433370257480783184474022926910844173348751596896465449171102029291956015368013744730392079052961835998065636251248530692497061869282710982166626646742375129244768498581783969511100624537280992669540623386270970808733216099858240760699413102987202390384231352634205645070983206828242348764851931328795008102419453247206130386966253539843824871120217304713320893580926545619524995088416728727076829904631684698194175838830972789110090153520268447807176080780590222769216120047016372543285279493451308185063764969612019205343838372649233624142457286468067650470308268842017160659981126560064053858217074132799903642622843081051015575774874179943038793820249665057391934317966907571968187068756777758263518755805977845637590335975412586708948766951674970533053779798265007234232758195061818297012246343890480492315509966067172910505400427245851056153235202530400768313516273173315354738394621920909093537437704821330860229041673717180281522934616449946267474280612707861017268885921330290662994403508945544709086860722399753326104719598155503899680378268423576378095619879369405997509680401644823246039410024264153930984440951176279306061197917672094802799390167941002797037319782502561634436946510345258055802169369468208941847734880821201749006244359194107000231353867990991387387764156147762204505880720702266981128662406905490501474225085561694219790308992848457219586280602567648800916848399014763194751045338402039799131328654711490547049662826038095541183111577609531745210538452943589102703536841821750055512849141470104073909685214050131617668821415835378259288947395477006760120851264675753173214069967481238965801006194930394181326101707885633510834010475298220916535429036023721651154293629188397299960551775421954940486848947357777202238024858873499246298959636881875884679697644857861394550240953800563352998298878143563996293015877894817788219188386153930970979682694274610753470099067919538320588916476673155598674167754302753221920663176284091497126446246915257219103728106502668462524751853110733490840784278667096393261725308728383492329717089483537039984588634482486628244999548054139546537275889822574765985483051381435110621102847453254172167059943628975570204547136845386161822428035609803380345111967081144218810258052583351480756631240380540643979892613770759886079085689082103893658762633650196285457429812873309062570804664777975983889232585067066409584534221830614499723162677951213878045904241118894353625277925722826605111142448191098970797601741517908810196152504136936478877200936132391443343267357808748338410040295717501136049466418194308695491795784918191570159192673294147946034936442720015178104923894556784966224840906154816783547711319625426250307269069155637270268785206504960692555035877813387808585987123534911127021326263791462795892049295047995234827455457889855028129307309425817158714247448484328669248190127859634358182451621322974751847792641082230522433335659240635237171324628418686148409874887860917140166264359361587707084916847452943646431845440159069294981143661919105238634658750868915636408695880001542523962080881981170513515554280504387019935603358030595008810931997406780701925422294000451998643310633682190645469614562086363687432186433972867968743065595604564142555096362474511921152732839694377912910337303437567369170152434049924077911705793526028276096303055315484873757219821897250389547565762820253991781140951621929098129055384323796695381406754852451358496597304382546950974542745692419389462866190367979821274051450785306560178236653342614802518567211507944703766068979027213746449597618112732334383707672125615084247352755789700290316812258270120311683641697567473226092537719966457725265134068955749342476039469960531939002621468879417567353795146992388053929048293162091858444927829005557116201296846382672164326618252736212345574671168355777333283730333525773633428689108883144487581125026167611170323538269463462348599100268712498952141660119798197132815432576740203555630024688876871143022577866486761123674225242215588465616407091959513298372376376023624902942352443959025557266815625096466874938913949037986826251553443679049017086268081226941254689159015517835122190945338294297664041705797005884094387614996671437208668091001615470980676895926670224815137774120637604393503184182781658706790889423071171056893211150646192828226284916295605328887411428311213260395661559407039967547227626942834117178790415064326536707803406217610762354870008683035888642989490855463099533095718583913503153341692448000585585937271920726300899817112692880011993526276898949047932180604217531603655046680068598952678335207027696349957891203521605614195962540518393951708849151774310666845241497455537486853492582351792882000937630115171246371165997868261991335407665774363184258494347353201570434805395601436511035930728437563330584895178117624056941113871432452223022675417456839809754303874180691266210203983761221261786835159207916287042281028659651371283898534176398860825291828616846897972670895876530280396109536841641785087365431410980870685310629547404245966608187090457381869233791274629211037381294812339994678103662043528465864026235119410256198395996133844403348633817868358760906471101417154974889495923345950399280935750330333557232750603737787683250109063645211698032333898001559968938827347949774459449408337701533277643053444172619902967690870959975771842717509409628256210310767823874735502214799557141702871062114020974529918519760209756035690973931933730772185410979382962097807877671188626647594834164494091093368798605126267933074850792755169670422184308675606432748369536029546676143222207165076776913827012469071884050407980662912814334295588462583880765622183820024618126680730427634150593074584591618384655239219507292103545862908743550674110573462627204252498196635723707969257517784045924287871599955806614702677030503412574578963592495186997193610583879065189096092006225595312698548926491784622672119188296773763249418399643321905310772443507132167746160828562582848839434223744507926275415818766044723980008158090119754752638691211958071895584100241207646455666283963511243425899853818154041238979657059581877338372111249896465073520319012736790914035637758865774282665135237496132265102951364389906306832551153804094555813484509960838232433703580209555492389577196562039690227476471261575137427648917687956285987218720456741302280125749463768259464734882388642963471405254848591556805846387319757654166689254313787644544180290045039758762958854239355882514573966717630617314082221817151516251413651774229619707385744765277773201118011410643256087230337312612089452516280887939690874662663732566640580373493531257881424541434536244388038385261035470203830094592632136336569766610689512481160418368043996725543090199255018424211654995894654743866285957983113662259570384850590467906548646843059750573509489792532535590306998227743076592938378694896182966075890126025077054524247841877920192055731380698949868059807422358901289469430490268250562993554274725140667091847952506416701484132733245217855075755679158638892181499022268908330412733153380303664483559399899827787068156908406522084688013892493372938980711128009017141860196068619702561333342561048613667029543469628730116992693915134112893040556035775959267557182024862164053821739582454832425264383570939177656880836986481117383580549038084974449407084211900161041616299710140671985628622980041722549955933436530764192855052582115864408113434338530854041791948187962971909458532587188759543409354427282170648489933296378084105491478559182010017009840528142536219741170740238562475093592863045095531036366104514767470245369072082228349167141446239404011520467589041825464483475204882246192359200127018681178068547436508205893401207158909077059476560619989039179715707955784933521997179795969319360829000354494382148167519205420091089624245982757681961579227169510723830243522831959828566658412299092343288230032041775440344198646636087730005969990731837861095412674703257050228532225259993314581705282837385579135110019152129944561197737059363565862482880887347998646558564144070195908624447393617620685904897267262911436537682745427755224164738624839427835029788730813748065547357765649172640001172707192465518793883928250308561164529708624167589194560669743563945069430062630381269083723006162596244207753456853212067465092370926324494202620027614771346742391174216743073769224614883923269071149825154075926159624613708545577798292518383448067131492625575052604321264700491416181251381000993781678767583677984038335747907715028184727506324571741333804227702468346892121670996438161830875747409294405350572644908814629755591533226887478743818119629815408054354928185809980977925302415410564827569108422156758175807723082795490116666768161106490238663062629846917862371626485839154085748758014089913937558181713826231324700421760676681351023521784134724085258111151813456409803734275580964235960227193261892114882500005704158544610772946274113139092153100073655700570927449950272494632228497362041696639696940621700806690324034465125401062798175032009938995038942456889740394095809188422105058953834618704384129294186718069002831533896145533192831367949749269063641671616796550904716754227995603597788968766144881774258210357044334760058799541275184891758518994020372897660856266943796605497314047712541286086851370061389746933885835806027927523649029530954323400519853240760775654814346904608365616666275082485121255472425453604410360025647925199374933109654743791645626971492107270016230935268149029587730184828834314291884064560004483446580059887718493781884270904535173685622366893424917700339635143968220997285833939029030928162361098859547431406088329972778530907540870157085291324489254580703623847667042160621206933395091118790140492994299392741958386073560570613712357756424371763547528710307542675474850101907689622789111931960883045790276359527126673775388759904176603946478000082115137767917704595605198176864428721296012537506209765498635475010175237215129216575517258538123788237591578774080915188925686767367764625872936194497265792881583598647062236571224222722755425996032476603936167677529416581087274692961453484845499392436269525398548287273835433896778512491880738781463892177405502218299413942776069762898314072185388453618110522843881636476941009650837687425374145676497772512308329425901806002147834208587205073079060528635228030269360574466648191971644837261294542413287471746192461562066418242103322198619151898185910350267341182462430558875192075832772056587767832013932996015675685929838735454613577092342869272041318618035184758205818490381244089368182993798477777683688693915635972626116198143113630743618003462397647779196778618043927756395527738556750411034142731111912336659751854088011082855756282044788818302590212562490553410983342041796130615668095136509264560830210717283547143198836440076235748212669432601236606067601088626916405794994367012272762387207615292892035347251578295777533911725392545639984378685420385086236846043682908095454009301081525319248872591969506813526739157108324564050080952392997462301413123198668392605892136573638471676433431062298651620270118786551267015619130834363815749234293516407645658089094544585090914684469408748207203965536680711519176292156905039567095485048960169797267925239487717802502706496910639338602034230703976123820326053273335034818191993837519730895805527010594008897119457613693155321368817863349545727548719431533482930677247063586400226536594915398638883314298068001884018113991405059110089675910904201687204851935991731755861176529274110465782165765620972594213070548606998359904972715965358413549234548078857272099858617001509874288988918566765548902304806235022793719213109356836808214642649291053956443054041999183455500783420733291222699611105619180038501823260783975009516324556671144473666242559827011506883664253157450765798428786007184827811379890436217235867984898983402727917783844784325973481521771524147207202500869708580324405018162774880951289432276586018228588646603741576370803285846099429430502328951770993051661203810235722141678026924849724805740806380710964279358527541725084177216283405017443198278885288240091306985118314488583723557251073419342139233722320165556010776922909571707561977906711047075538106754624695796445353388183441132027350479978386127445427810151450655153354244417337306018375522175249978280448824727555185222348149191364990909692913701152689145144238707574239363250237411975912511886990689243154152087861664745584418014377073890943454496083305199482491954171550269718977831442643293383569948256705299512454063912458274995159615633871493638657089921621466369447784287721591663494135712703439535598889165030778284797506681577329783681111110321758067602604993847819222477897452558346364052343957527362761749138797494022883932828722166768691466271025885939781978853687264555309066428141660052907556731587385818313933750730121670916542343978565152501852002838181709754405842092268393421225991021507577803194901914800302349515619366405125493318227493432955009420273483328105218389197541975067405390614133254728824721175900581636008479603901229571295314481783709645577258800950032304256050820771974106218165792712522531231864498486241115152064591308991316242310251574161303216364574692550517552286878222200961579396168841987871878551070488977564433479031644163384486686388355666275887268199804024636750477036148434237058193102418847140038891992782340180722507684570969098992059911072483839126452343941104483976390813922786949940167882465056950759754747410973423746048143729735474389732751000161154210715542020573235279992430538423947063699352541181478204907587886922238317994316503214863868813475379003455762718441441346813883890797175153677877260432994929074650041250634547071748332464784654435117357228987250309478156588653319395453483960744369874935015584915351286720690110451121818079313005307126272457989972434721917277068425495666298349082695508067655627441545614664812311870225062600448558935071213942789292297177802117552055045864080794733126052360509930803893485385847322896485425347780329474736594750597433286486691041329474848298214791053260693349936907650650666231158563687440362124017361451614320533930380064275176373574851653968013372347782187623330002628477324002777927550468250863317230729746197063922986810421819462616919653853087656831124009463028626159225866513378124853122969690905408508813832904362779543099974336319923001287394965037957705186976571409361423550411825559876115048418326568693446923774871691612158679568229676772893035001741621912062544234417378211027489178603863976808852263239171131756102569144879019378633946238210668562833011169968191076002635029587163224475872194089211333371145243062278106488512569066222672933256223203341608211009484442206444663026313536026934038893104951144272756134373612404850549624082155886598585839207796768094568348599846498879174920652303339246350813121932312714157045506976747041049002156888225140079195631750550881880587108522480639699777279968922433917503269258557206020648315933781220675593295732783906781742297595831050384610052047692516166697573075082004147407415256481373525041279258721014610283624397405273124548025349572808526711905748192249087345135821164751621376354894254297578933123828274322037300409341966474806603956735455009236217987359359949457099906358154632988889629359237225630871226413425061290999395564247266324754596006508206319830700035852726654663881975220991485992574568590950708619995770013585432360087422499110768106487554714864060619241372731841909713141351253761456448383804740557778076533829809290187026978273279345111427472021551682181141014383718317001077620476152530205330925641139306305070563333467691846464780667539759453971785818270007460467051315322339199989898793488695137925021696649178407622040827473496661894463455051364754347684355852700636194684703254628212125732711046057232092290557008358506101877773598909914504066286472095811290585830672037578176375646211386031659921502260964560239461121129698449322101918835732497982829863170215388135016779612879833842573231088334277244333046610099285366521373625367505017554614760823047264413208548678496367045819051455121388298321290122544418289045347395924063994320681896042529207935974549090483156566095586063953520863022049203177384372466909995017376322071121107041125164191206712112899832519342134947744086728142063140176467943096137970039766852352288305789045701368855765349097509102988643963250394182041882567441606504291009814219241021201343251609064610155012173002726420367979769349641131072261060844007249196335900758271978250174917606419414509568475665838915149732971373303526403698418314674708531355149301290994254902871690092112931598390997552691700824669308115717725758987119049757664483984740086457433726704967400228407563767879843955990366312819569367075303304103651383110402956287256241219340287055317895798646934239662347628242952727652335682018907468709024772895456197452974089123937000685268041751878622756172827136424483532484948787628866359133819943113826193840439222614190383074716319152145034638903745235957181208984500119402707812237145043452456268356932300721875250024507171721083433308192722726481883816809442344859815089028493046143874790100782095911647836748527423829928905881687172132675711133298141798966492568903072346019850013997862574135453001924612121562869623333672998772926292591546845835023954216602315324818146454866018805706968490905504204630457149215330870606348136100135236507523644317277724575489307614001242165765365528946974392381013225543057693036717301218113016693768864078103393264038010022860467108674063596528536887979760711919426707800245698326995318423456926208413354507366425131329417182507815655174546582134192059632821200298525322117319955747626576437985429973474406433550525447967668898560655666427655172117922221900841703970817455962740355290262219280155206377434614616824145039389010826349960244999490468617828991032686468661511898955261505180562515208281098410815907326287720070179390343510494656083163523824601998937433015880145720947438220904041204222487706244002190474803544393064020141215177315822270608447652101532274334224006936102615818822920986143478083119333147439594311877187310369157930478146325742863165372485892803775191286077140392322921252143495990407466215815426875174275174102349073405477218102911863503545232992469140831234632303666465250291776355730712688792660545060884399619036914158893032647904960534177772831093927123777128090619180298095766642459126709933518893048512331356663796976256727534937298441272799825646191871231343264067410406355429859616077257286323149906273982008651205580407926916020446799357323340951589715731277844838768002417279444821249947994687957989104085379197127626024157704254147064257377332605330205239423224617150078439062466704731286313289563880755059235337335293117480931095036549147973640185746811466428549040560842378991570612764389703383906912108962802347641085196684827503486103372341107940857495120360995733202194832695744936604378492616349227573743915456690218400031948940292649193487366904011213196843083947734163633969795996486403109734400379063140409532907521437886353640164969583155388662794621020654034296203995313761945858951942141459296933802229164118289574019816013521245756369406479442707907887599449039805178784908189534096951602407277286520602748033814783346491440224587633180346912947945773065407361293129770349791384869903033689737906807333321169912497799560782706855464289694509769781322037221451273851079700333727737074109545478465115725181738514873579330469707104051995083085549596508642345926396718600917101391030292499216124120931944072662369013073724441938122648797772678787760770079066656454674436827909300162363500259938949777013758893293279109412091997035287219785246235453429676900631321116353514291937112360712059432781796784452297202828387208377975960658501741888088203236040645213981339228468859815439362210835055813006570219595224728396392782088803835522771784455790604543566269022130578723938321986031409749585594202875558763402673907088643134603365134965010367727127652218415667462258314479464804958427768472218616847515805428217269610569453004438243465977134666420259605646051328390553106392580899831177823502334198492839817836725216123018050523841540157112509909962431359879734492243518927972018591060455684324540386562210028803319549067369303455965938607052053005618497926385100860144132014347517219557665199423793075106632176435792687849603755021272614126126199394198082819726399667676217584329744817756065912351723174387905744267322089234512247394965243461664143613737865196664696723591896623520359024859881379357879527192512758133649658118502156190608936797497272900255531711942457423468878465476253106441531886172664989951761953300125028105011354172162826139361467914319591680747431663778187164540061437320306097641603037740230660582772718347043703054537282868770818515365509336333418927944680608881420984044108667596885756329494003002920976610558580912412250234654156573735453146112977644857576475819189663615858971233256590678382683896136637975417237070325951286111179596647422157386625708886004398072945428379849302880613086096842077528082317932379386719105344853013692100764151336493117891944369724051066755378030396794658240852706303470324328696240822187152231124266411427469596892989608833522668777956117966120144712746679279613899019149496302305921676447732306159135757832916926481440762965436237707274274279402287640269367661642203782030046316291669568573277171712719761537931483048512654350938203554654319067512567591312599573692349610999292335573234663937291184213881715250738410194563447859766624200078200006405412194022058827880907394413621393220031308801390149284313441577927395274425995004079711383105375804676350704461801416354750507578701782505766952918315261548263297104669964339722952055459649840602372431281991541071448754512026170851406929861864555468236232460653742375694532605282815912527727279411344463606538251080375333377782305270581913353029143844074256354891184744792001105911021119719754325543377874871767496995132985450136416682165774799694666252582717921523154269722819666440391917938321070698431353510317138239663164784487425111460359669295148389331017949066925926697234109992616989854035739440518258380446071872110909274967097805425478092055039200377485942736977891525666824747751430775890745875409736235478038043577565394298608087417361902428838594023359782204645255343503152183892950750146431421364726686624689058988163332947600094746345894567503980445244103724330783144384070423926400695223751859270009713655464172419739588432691559216763357610852392914453038919500630001653624111332510991149435414430265092676128451379814951510994970008422483482797722356928909407980771887790606440084768837121980249502942212625045222154988192502992118721811102861938379068484557771939498550375542797569773663180669498254493394727265250273570367435589879633192220997781119160983865376062445973483462503116024295181693201550493883698600216713040676367886393504422210890964007067778966927541281142003896652315558879441226422830118799134752920026708965654852249264537946798865165140434167183651245514170920228226911921577353349004598691287603511169323638020997800597645587803754635917668713707009761707947151856889866373845003864481207789800941093045485371235812443621944258246554724679470522775672399227451177767727235079028237915992938112372235067785434509961710277801060431749178374403826623712125926876935970019287776945182488475725530302284741037353119910475403337362473621305587005607733510160334144187062581919047288677869623304770125806617582652376605495218621266616891058015163886610400254358454722231275708790734764024485435232821516857173529838086601961283803798741213404852011114345347762759727357293561736880072156740848769874940594417764056846383604989172167022268436432422492160947643463677180862786589884618458179387584607441618177370062355546319134906295663787731894347609481226180939744134863716796405160386625164096916188952735235870486952489001402345824539049242519830325635701253686442795294397610166480834700863922538757480955826880084452474398523899302470570845082899348803261202407684312392961370479081811979458560541003608792226786783209886036355828043706344510569092465566490465113384117182604723683244043939072905840921179438154611312959510205814518426297181489959585759749359577222700617549331914198173116827782143539599108912427378670280211850043044220680141512596776541253701653275274014122492255010819134422276946568194289680320203299916717527711175039689174253096448835894298577112797847035941743848634918242675239992652562281524004490931235901225622835324267608040076368858768076897052873710798395527609105933905101367338102789254973598503851155598660794723225369193097678393453472534075479534155511501799790209231108185541475759933685843709056605800379402312135537048377239305332185448294413649026119938681582897493641716562142143907597647142748075697592046651406205649476995279759398778638869235911995872219267405157729989952591489387063929517810438972784967455919063278367287039873757905054054021583115709428759363349443139112515845518755195454497321677934698963600472649381645272370858112950346340293996586704719936310594886351578166910035675927324503648291995531046071487082960604326858237913490088816214719703510372496332597811054891927511613515100003416787572187355599611034212409833562019405966619669738630553053368929022653493878337513076240518230513317873354261249635993143107104069745507622874178648722058550450541567233738387205115188132967966289535241351606079743832528395035242277843114473244434983928165961256767142433454778530165366551285619044767924175385267381475477096581617530773084901042261925813631819823086859414408170579575657246981779031913300856929629029024263356251042973520909672491555507169392295302990583473032335944750232899894603434492835999141923932711464532802579554429784640754474618362701493209212200237080684656874055128017655867857734056591165305226367071265587489251408733225498219814516238202203075951847441083262753419115231108109400463389997879056188157895561252458293554514599767235481306326686530328350285689687107773968498373729781074188708321278221680355502530858085725682271695600760449342443821018679094734786013657671456696473967574276143303780183419345997185072541775243230750658449468730104965254215874756899204634024288879698804489370370906860083353081423428001748422506944892066291459965822741917838026363585030195763422420579472983725428392779735475098022153153499631975072604810913113797070623815372834237515924894354645102117028308899946566942153506683498068618059061694067671491130524736825095718232782105581195078739940148701334127745956981207701622581353225957253091854834978964262434769785771031687890896724311025724961457905386049035441955752551037526696904139330095171828472530817835085654654440050336553152987739609508483874842993303193023231770106555709026498575423952492707775132080141052170357402631232013743434155073584737915197388657577892563423594541787587265175779155018451958082627441330481012526497841010613604571224508690505348648900898701946486423989338368497831036670572786988926774994757174519157737261328721726662468570898558535787412525176351153282960521848876174194100574384835776081165221149495002856201533429110912777761970173024261902617848761430448130367190000737897261291604628735562658733960414213751018662269662934014090909811566955309150288299737028280874955128975244714123016544653224496319612584160838994240269384209198816088020906457954724260879980197504349485972107107767010350746134113679911886275044773744175674910248749197566660780283013301582157871672719409702937884903234359918855323410826952351661140688769841547562619996762964211813685143794287433039844905118667014851127248084062008236876486805565292097490125631055334995176395335123230220854931266265643937224384179033396434668028987577734279270784769502994340750529965010195989205315796872237746886924979691154157821586386801571714078007890866155300663978857179884095976223256639933343674068999160623820473499878486646185547787237918355971352402415476579262809849580897497622959445991106426644665879173454578657922020302983653282774479675390535401256235013948129680884466679297232518164923222819335904140487853721436963622999709959819833332847754515731742953977669765985265722247027466387623742307012042163065683430743430502974564430703674516274749588001166649874408004105423036195951492049283169719983759195050662458553809545881136154463988075759546584136396301936641125593071009500827673457718060468207919479111705072802734754912888585665882270658566872175687191854869113991969648900604771761473035053087288228293177254125816430281749479595770278452995095202790856090673002035994569601330844790971680268399612099226585195365651633902016256673164459974359569622135056425250320956915789697097919310582526894688676467323732527212218652143454481707086376598086334712012888392729932102019015540843576580576101287104104965827639297632192268991433917369921742384564920605996099881619327128070850868644680649803007456092787135502654314954365650025876226350627447164699742407141383082916633424921053855821969227080000563299060604330769788461367465025762570669269988519754684079135422933210767291676346675159816708676245080070919384215633613381990939261639887237355050677800930308221040849760796985674450023666511512839134554616327553974621850904950484358930851768515564693652102496794227281794541216494103451042756127519191247875767423497901116862315849313914770178861068071358874624498579273996625646135106466700161153360107092108577670044237733164190170452427537710952502835080590033933372972940199507947651256052494496054510111459118861093682705487598181826581569375376993696334008330901038366143293181384836257872990490681552319475817059295541479805201852306296385258859544904744463322764551097506209291127753673185579719951397569393771505975086350989191229570451819031363192876721943120465097392999512269220039468104543787513458110946372636486997489550196052653109998779886052909028115597155185656142258391035174426339198670827950043856836207033175865170911665750875623922852410321082951905956465955167013711621413373405467280334997188853501018029347652552544619842869326203152672614812095951222329510110931788077463336926217986272717855792656807618600123150858971860713983920317222954187098205067623233747249424391872238097078766425761315903588082314675650023593000346135191404315047898762930522183911592373701077219842503757965808656464789987793554955181566387169654603823126286511004090726010465458170502137977354845065781346103000133484599264397619484081096189356391282563986188695358527546481789383949624175497168173145598866415905548661147641763352231621505211573390008296414792213832126704449206850142514973224563185469251967780191636250801241103603383567543370980478966522082659127381742309777163123223320981384593121214690439714974240079146783523842287032554787175400485259335737312142822650208271028589572025740522416009499522151469570025992839783065937469872866462715745179623751634823515048700469226956436352432166737330329893388665965203799834981417836270743430939988083697532726072734761203851515219454042142680687398913851866715324222633892094987905107443440874311349664427550207876902348785001310801251492127958883641854309343427090874827626176721426617929417900429340553988059694708854079321336841061454596933189296190701205378183836742321786636500112676762055770308669992289032603723214638795760870324243500480204105779646359290136338677353943133640658939192747259879402918814257086065684123591102413595879891848415666226392652141304973608619141750614937533744597430098283344469185086889866192908980815026620983932197177762605286933519940873649268119743856858625105667466243617249469510097576549669560095483339373345758681099187866545416982781064314831508568898779175049801331166770702952374555686263200802883105627841068484836634229560265907899467679588215797572470584078305286148078677059501429088737621264227651893122047623131432769761343644810653583262758513386793593681159552395172407714283869542979392212733325924861505982211688681084986668504107816145085240003388978022131366982647876659996204941921230175523477657288529641268757673433336185610539078418187217568822965548630701622364170782738574004965317853519514067418089353667008246359645201713838074912637381377726122279559477977236502104158037571838373705741379636765280769474841496429006400460683694482677836732593876069089102938403417788311997781098730007422074312013051971238388129340088006240862478522714928000775517629892577029103845485360816408166645164547233938185092120259196053301596172155169718896575240847425183427212151280591892752662263155605774922296844323483113171916361946302934428545585608220257181158138651376282868517823008632516694911656958311363405827615816959277735135941205311851659618085682838217847282869790087936130319586729167179512475007278758640862878924391136472540260193528802543924611992075427020783200986923032886969582811117621020092808502235391344104841462419024990446719493159374239918124327320025772454494866780568906997099875988087984202234714290902543034724506717424051394210538767611343680543893789941408187614840917788927480821142518880947181046254011166061871614858676092353969899924195449257860657190871258731485890495427037370328812999900247084244974423061903228124832446423694486061528702016903187323932667540103205435242366182168640025848122451338384625230611563926254358301917634276866475543787209831414331270789439375742646139649226283245932789360695440135784805399195287618643586895139021375708881716906662586505924103052828196514403620390069023342866372864628077893000631820938206406483805396606007754802115631976284491457200231474104776231097985372023583470614228718476055850414470498288616108563406996948867470290036356055195930783032450509749851391467031097134181182548310103932299190689998297185766823166471775467536071819719039677293086562141260004254648401287401367917236956027978289833347318584131436195831122968971324914822574287576033123669117640828425966552474992885350695730603637454975210396976507243953908351405154840721020896214587711664330713283814585123869992614122714999726777681621092506292429163947343023183082452376271793003262928706149688147283242763380455071354982635111544682908603609341254465994535169429385484610711548738557050972187155561857149962303168315790308061075753016727496731262138192580166693457630681645761995151808137530023294390231958390796394849652674807708548165754872096817035629076896495212476434673093795921055191981705538474381792823328557572228209999074488880070393869466154556319802426891812109091826926497585830577730316581494807878847297469516114428607705728222434997819446219191390607669892291523258990180796899026451590883674889416087232878680049826415206427875530042689225063629284376831010771031313620692797109803463714234503832987611112250394515154892731841219231766971255206665594518985344019894457157605101505804273107250416263576720853413369762949670666321396683779564816954559124979319178038554523336019996313549806774259427635732694074321571831932001795599759042426315879519430504127011431595644752675946253363444629330942845159728215761054686158972609366621087553927810575644757264527468112338044721656510197895849955131998113929922586919230934667877483605859464026898160140131387319152562737654598271168149830921873471748380536252241751008449491110292269844217878045681534666992142201026958607524413814892789395326861413471197253522471444487699522131448490238184774121778377854624735480689288555908350658411993229438928451553351753456701179846456773658185174445895427434388400749899028948052010757637275252144208083319334285766402987614824672492513771677585413102883771525961367952011744603323110132372139141990203864047396992832180283949791851806565164742586475709849376626213709440298100498129861020277631541085936079429904139954415196409114220189050185831801101420153036486107633134705891719556283366478732475707465574238286620706099217923565355022644730970097572434640548718384099869284323291637731315043097278782346410186811153797358829877272383999370679553243275616655466576558387767359150081825606041622998438484762465321079642426567289103519947027957303032704246445426780150327736691811416843288877366499922291419384216907909132188628609700858712013904785621359040757021615810981235056450181916817278933909807041804734192967302391238862899866870765497171211218407209948725851194736256750454481312825608605470420193664384791703350330678117730353222869665314999514773366788800569991572647489121082104841688107423048699053505981704462695692337821391106920106599481265440788936195100706361056096504963239854897771776930272585212547898179134907140832875726460678118182846659487732676275652283965413947568602946742586950977202687264172741009356400045465845455936680013656176150961244171496695038003683294539250056511885422053482835234751395633293516141930169648286498801429466901437170568544304017243103034935580932333340748001000290824504951428665609821744158895660804679850892977285148999797467644595839437737451330943186143957736084484190416803157652030817697337422740428247129184510219064798267116397589978597339622444533174135528828148891038577078492926816642020223745712655825894737067558506240099042223641287654770866053496176318230424199201092064822185527363710022115278811429877996702174162826685773670681923724563727205501339727404645704135703737404286083686061318640523479401285906991451771960643774943743448183953644948855928472207440808620014032979127019989799192086487881613390951418851879346118799311817535723372706806626992927233824561117486326629079855754428295620188659003706774550455562786477298920645099793982621090077526108569665343247137380487011812801124876253500237217037446468610698803225837223887872027418047031590814446121430342024085572249212414476665225807828176027896835358980876742781117060296488630463223369861521384632114301570325891011778269462493327180873728735006495369285723026194357324470936252468388538503475563114130616895807842550576197619444790506355379621443684175504700887124656983603647581723513358147798974520632560033818683536908372598809617619895992895252320103320014723480955444452128229295151971717261307328851662518984654393575671435396684777891910705873597502403593262557514976438688040137474082921409725616951859506661937891217402726422882574920100480537057608390565001269317052342509898189328985167866725089694585218155508974569430930943324646430499953341417609300556240203501032458719848766381230797142775562856145164684301519041713756637096700214092296838789265098326480631806284239138583391561486540604780480054799655859229931331398984784957160754381283337158150046494401326310350467941953345817469457955330024551907006379869151055510767701302403955188655704189746268439327528799594062067843741663346617820032304346852004965984929786701220011084603782556399599222222732302868101762614108152974032171832312203550104691091696421628108978713187857967813589312762204535101064342745875799215099469163898215351169985478370964221149199075981322988588930713378195058259867117533711633868307665801317761457024610548167751458582366561626797641626301752660715529686451969571995848716439284525094793544465284372076797987382654211318953733120107687095326416140380964285515839037815859588478829224459866663272938749799080633088458812200013893379568667524276366592001448397545681601986731363934604344380193082904882632097000184814559465094154200394887791261116031574379121748443792398202621642581311723537046567478196782639819077879184876801769255225295555903196877343130536581772111308171994989261168365526546831266002249846969092432763751895905568601096589307940628566965400874130902397475072405479412773827570767742871977400256622719419358019095651059835781288441274699054424157568065355268604918491693734360592998287588043956084663241778634301240054401355655612710127461506170391345672493638643640229144620913286674320305965578822230409532127455756503046050866187759432074459292582599116056281644030215595682971351426771245548089019992329011145522592850960624613460839013015973158495512510308715605182400364150885774803274237963543010196080227903141130735516344727580350682805750531441909203603371596321264007063981278882377806477485859805288574303646402826284271862541277728803299670842535196241875588221944892604184875666863487340446704049379153244990564676292418148120032400423797224270644458696784119726243396609851126686107948007933627295843337944949010859450481769156761026341712589252637791793588763726600107670504127427630833760253902279505091158544405051156978783522745093711297885783231564090118339243042546560862141964097390173697393265182931848159536357847288995994626883184093306357700836323727764535808668391125759167940425258246395024268888195900390760935913616528088432748696281477103856965420669069112777247736357529939231606819298263355100550144439877720751648022398702639330253404395039545873066369418267888348566333347872358271611179601782432105302750989314921417377803096166759272208919635243001468466978648634791902529785323791549801735723813810037039693254001946161583441546726662187649779619276772126139010077092861816579279226986928315088312625537107203412013104286700427275685659778532454277842678190060698030818764297764806011218074976743014951295611494765997590064616403332030358399753312837722971572287214087935095413694000984464513207761620868471652689314597133469890047802500712916986746937491210042921268320729940328937797211026212592776512765609166785148925830593292949604162164506818330875292843878914740398147575530722442766110097031185912760671798040459605781338233974489078948510229421765370151030031609775442809404378133968762243041628873065116737801542777023636688329115387530908152681297624091357616130191340659440925452091086370116239763754906883323778525216967105593008082514867208217010780103119090164510718954922186048805769434021765829055353619367821356789949689875874615006319063103785710685890022119527163303833872276750261752844204826081379069840366060521283371112394958623311278682230151710449812430697507261318032838060121292437223181136900348855469502320995610521623465701462826115545984425873839280799530233985749360580691571989647378499717573748852467474802875219592662498025533462073251367683853322230051289963489897295021876657725160180521440853272325136919936266698298222010021992466245957204188693747768180793963147654283583261162370074667989111178565026965522916594401221581387062550097449341062931572668532535336929408041061525973590288758854739121576324313468588232698270122071150082242550643923791129892038609675933517316628790051228998177967406828668984131775484997651798304187295346189070796914347061567649475699476391126458325194973982983403787814354791001286107508958307676664209636826693226032778315393655432839739889381150872335840161268654829666327804382888922208259057231728876586396329072988375320637977866537539595464434731659322366810894595563405374730229429616283444207247323019178722114418494188713367046759576258948220474560456623152955965878326271426619896731173333426825584824330485667950360393874139763247067521075958238599866542341392138065327808418368931823027758656488683751457277699462374487096663105729391331205607944783769160278800484562163065383866418505105101892181989770805725626753684379025786263655976787154863741290684187780182104565568554254978971535746282484282636277989818864518457346019229124277675527734111549709387906701548812397828533411850582208134066904279477924473714874510763877381965438920028596357390771025577801485941154191513002941468786970108750782505912327261032276428364206678919887469102032496460128986320316532881792602446997336928185496559221202060699116654952352552875775952084344324029119396492304621679531965377989709153248467014663825196217239043486528182388666279432274164027805521920562636743496542906043401862343685113950702930596757230584647579769677190711641914864979186318360621743611732018242483839706359266820402918508789405921173798980328954492156300131458155098888727805205396069375977542827324358045956125195238790229985152856210328037277290922200308831397818860441875379038127165668635730490494756385363414396039623576369353637856622670986932906523552651669760976940902214412172942289507806980707376622134242153706364080214230522390823635143287636047508663867838585434648785073321733116891245078895781814638656254267059752360408041649665962282938936924251276558577726976493833160307430160510282006726736182228788249456111149367410015957788244664682146839111832400821445751921435275476737831165254237486315917104149060091008673132403927751355446460033650073922537611502393185366256057795607944469053543017544759179262702317579008500344368894494577069496972142308703520370120549953790422354059231377780852331669655088279358832813418634577492911839233977036178399578892004933099998648912235687635056469708233366994591394702532394776030735785959645578931315955629499460065889158267048581597014821154242660850927083523434232806989022969740427528914494280816105349699077080570391041588090877887031186167702505668790596456870570053926671776954798282818148237006836610822906650875563223082944075825395401754877854878625216412510997207552439862629045677820084283878874086521736329945255699469670876399371720320812834659502074387905509099752149550902437328195902807039353502621200118661697408986678711700916872238441463753305766369086750878985896752373019999837278454726674912825366384382679345187998334919512603355460743895644256729977875965331769401555485783981842484174953144429172233795307676251068907539152760005594814240154056980042386962304730601371717760026923802312944542280632034004054435511293459106360674026044282229558116106255841712041650838801825145108025784148929129766245034066127497523009108187802230837916989185576513483111042429862471082548922804800577349971546712463208762722229246714358270903817232692011802748003094405696321294329361955020583544780858795669707394154703615001102508762368915165052786489270451523620902314846988877557873261606296775529550742794584008022931787765579095372888793472912273665543859731189986188084068202876148159040118268932824816187222816531668275083211574072678538552208025293369319891005104955654398814308566012217720012642172597589863204703423397198848980546382992094076673067476576980578473983804807064630607690405407362293524099183366866017111212328524570977951806436233617340935351056477374659498712935273981179503495492666768456804018654606566047442958285976111531841281404972989686447036176016006097752951586062118518841965421361112567448167749572209805367672795503368724654529956701415695669072112597754610976829093266148263519621204406778791080213710510829966142229840812617367483726480398882578057512144871711776382048135461801773073927890162138969552700108444296616010806184770688644987784120855621120304443511457348828873201003559474936163376225977512919757718694248310307762245505271571002916206064414875309964913977129180100172810478135288890702573011187113458520885790131446236016189043865815296932688899998866710209186853664131295277993802995318726264539891408141125424710866636368694325841641419704643749329948991752288651901779064064430484624920019069868006332612186331247818753494593040304077423084941068477589650467018602786693865212028167454642311807571377085415514687900253884986343054732376133993817603700029044813524150893949552109533831461627166886059939143506192854891447323982893718032203215173935124707652707906634358835491073093473080825324517536678703557227377004967695573620028518521493720006293769316400562014063862579722742860712777877420410740005636506185855991493137006762097603664407483554653532582507698700658978250867147993834012928082162429144216079892403292064503646469505949782969485466966998111537046741262195293104225979225137931884118810162983783108784066114028193060869521681811027370759641511519344728479188834443268256766942693782914787357431762753537875591523401379639732145519715165941499251861440650008636999482811682848973100941424537599368634804983920899612774890866044667326822321817815146003942183288738947895276723115484318345438703202258704854364991956336385735057524793736837201655694262410101396529656239210061207943944431850658218792394963454062377764576350988179094873875674425310807207720468468161123747792689217402408057750059530213336542885990957079825283210985849695540703873260070630814335853996722840690869466434768310317679324078496898894894353085431590812150050773541447404823995885393801799641425056950491943507163541845356324156985529297624018418968946111270420215672754016110917224459496599649509240246337566367988564170641432334768241544713284497850797651738099815585447010839654171722420681693622007546638806967918823534802666967643492946612387445446321539748579713186060342235321115439764695295682839151511808383929768843019406425065244201456705492622589549318044511157909352864453131516290488219236877102994519508054714017635997560524629106913832219975405380080541216055522064801705258886133713823022737021552961774207876195593822674480027640669736962029936192593371231292771762785525810958822554531793246513203580690797809823449189119155139877072943971924634408857462626935514963744532312891132002865587248290104757422004569131016063238462903625865390025765447798992146255420403269049106864790630516201963493631508538012513511703209222561198129686145592324857088514362766816547975879033512513649007275783461201716945062707005866398181158616097605742585709325863493756978375021144323166895219377400352962243928806572117010474399444101338972992221956110631181369591838873192218946828942023252395826102248721367108976945648562117689626365615098809741084134431431095272186556323356170560835744708960819849065469915960556371831145424754590646581464684876842130746573931872904321453461263082601511300398429572252848228911842939769895809814431542880164530018594883409459102118907056150484886472714847782393053090222531326730915340791087971422704239631421449119963327413293704451490632979453510372107240805126295262743129184149536563042336856946107881750153547869015815246277429962278375288914700700231858753552510091530340418512023558744510592949525434209496853149586679214671057223544286832534337087515365654511136261921001188484301997043341804206069266871631120887092046815737124078643637212997110348216577644741546747609195643296995039107496601140392299463314582278947252550745453409689389687278725960193881924411739154424737307342025854566546206075567371637313618689619152853018212207464717873411396907629330332491827429841517903444010322942905037715325825306347983467970816161420908832106338697980785240216466194503725423014643470375863543518664926417664032457832731358173847994114459512412819214651208284407200830614911651867538196491141648015313857070489372436430541788035195176944193521253749402415079609129683749509800223066020353168877428918778341500350610926137625348293282387904970623950333462883484442054479448574234647735380584036425100275476572371651765628036865411670544716208556998246551702721216697250084622617288472926258247463931068580973479581288068887921908326801784345715518781531030463655239525752065880410650617210240959082871957176114856392449662623068690288490896633035770260200013117747687152852249924960785554023141217726862218294114476916297970113034815721893419712367071294689726895865137884761519737262803515206720197779392231720979789993403756377999783414158197918076785059275692697386735150640813344116676900943082332149588543813765921756391459252404574199900689928978709387670593716571250390784484727437945682178042199100203884791538897911983589760669341551196022941302503151000894733800512619528229863981963048040834348405784096846399283610767733260841965052562131512006665825284362597527646666655336637003221119957268563608732616731098080582348705149016909973041471859978087721549506014711009634575556807821752143602745501471749058873127351541759230409254643713466790738500807832767703112498988589653486631707326761019634498422938428697697275440134380854685961306597009795877055349315431930301948908139474367397017354779942144815556423943578088439897536017296860747119820098043767112796238973250694240074075875849789704723309157593695875810120859098824967452179414979109245105798344842982665762195742132271295158186828161946560278079289165726599290574415828126225710828119618358892774933504599519140163373915567318401873146201499400257289953210130661657141247328768173376174657402327415448858410276845932153240826400239000490240727998886185072086643734391680203848931471181627379839286248531867116052574231833607775720678130931555097196092365110311411005626960435960844043132006921526901189657974524255192090693098431226193340565738925547437875362787145389433550421747411610108333349090739019041177146515367104997387723537820795980072370992790470167438790964633677623656316715528506115242995932030980156207329109636026100457444759125384871610353707395203202790147039315624335132215045953020072887156379068911446624974348609998474834152664871395035309186217973416876413269090978697711918929254383582591664055967197178328160789482949445343435566687176938540759296804057655459526594901441239470338185369751621379771901712922431300368052691352544785954850934196054150952466118770629791081742993350822701242624355440710755356785204491331860591425484504180375775917402556105987957709198480005167361331133425585759759841442433533812648369670842345800504588641813818750582458096598137254149582153213458845280205925014842674605860170003897820345955913085523515204340931600690665041420805128820180987323747749882008130273586434772919983906996704935453341765181567199195381978545174102579576613418921975385727712983058896362722247635179573125260866488166630225707850360464196254205624732133553363467029577041568270281245446724374013893586577731136828759262049629823162196134735673546312419933203266447094011343764776845608466556959772678155041251552859622808974709873070345257670975494335510396699977909417395947065011015157712230562486734377906274033252680587779332746538802654014653244965611651613706740880947036855719385213055287727214202889709297904124769692840313232326173064322147776865028870490707738106944876593938272014611441341371378646072028724812812120056160637874208599540478229778285570846819119789496881474392138696489182748748791772415584377783899639469434185396703572748082032085057306400294059005172442286679874526927920713707036816287004961897766185465499344639955698460156411457104937946345761713527733625964585191358601668670453340287810713906399652298852616026691966336300091143193610457012783138308129367191606661291799090332852305335107464251162309222185167255505273184990602580547303766189918957388757106651531258585233272041675234723447420347556827669901450342238458185477018290693209148098776024477910586281453642228577043977321186855065841713205889548798447095938616818288868647058185292614291585416369427487484450333395271499014604284620691684899914886638434655907026099411283043793327341400307602727911115772637144859744971443152178875617039555174018774457734589198432997605582346571215229237698172112018858891500862731552056649097148777077123108626867789282290122991292272645362639718457316321922811945747503810289222292969677310070807915200652117310751136839448270429214749545098482351776805836125006445026340362742387467448801041677018118174141042461461521283864677419188793430117476978847351895342341465191962870555920421356544110168691616442869687635863401776152027836226220262668382028402237642100644065431367156674497028350492143155765449974194502397722721992934363936017411653996185480831009743339438215764084356695649845985069351151561813507888755161476567529178898154587268859966393816233053678903777224647052379791989972022167013085386229165535406048420570820134888241579059683602464041536686606472808403787765727172722850714707865701982787458519187304916991842523327410098071092212059051096983339126197049826227742283773890506009280957911255997750029892036460810212620969701533973735109492515612352312456216837412622779432767585611973660991054892262315271977998673824211524450885685616223690067632070330723658442106305282941949327846650534685345738576982345982136219199690454006456573410658389135854141157633546641743464584502335135376463697553744729683126709517902369817358499436762977606329340990163198828766589658618668549795127603738505687279297059708611821932929142897129041596373407078163355393561511113798849179619506778468049178033176849341463409547535652083700963811463886978787775010417188915748832464366360989454609767648034794537692413102067679660226496603098095012620503883969508988627111551651806363197425862317236281952702967813885959512325902797649474091747508670450371327873083540874037074509034434150675936731896911518257799264743807720574075626177131224929245437977358382906202368845068104873461235599352642521672099523417387419859802665361210618704996175193616711753762033751543889968767344226790670983368343292085904000305237968566042091512818134436492475984947778420745245910708244241432689468189274406273128346829004155549777966273339462936933416381920209129248628257734500511831108853507175853524995955220204308276634010273474867638897033044344417704090030936528784436493944591788863635165802259896363108042230088133399305455496725341815585296432470638702512538828307199724745062497556212427934404582317422638844591753169301138945454993231148929926787989151725261423755757612973343962692098762655135616222071920225515048777898128551086898677060293429675410781372600757075890494449149607691220499493110372004251540846934538897034654513488887651836064058579926255185162575566819527134931685623030287010975991926370860184788264801031705385848357766031084633706112950580438376005603116546621712785477932481118495242761493725592866285428439716971674543120414551429095703810436602862919374012406424157537522762362176764178128647103335248828903359944732698281086856128060509206198350458264680344783796204248865338844847892458659414403161616442608141127090389737913259914472868050577099534102386424119427438584324664926384015340495447765108047479171747955156291358603246598081042279737679741430836352593848601120626090346923287051098528788444689922383119757662054097944049939165776984255668324791277886611621436052870450930858873923537272944783674410378386230064894980691585334358663118996235341588525979428322689431486538877426345316912821677740884955747306203579565548586840602947075429774145566950653735297972623599098788321062675919189234595859224108135503896909058724651346288962076871768317561778054583983835882662541367738322161010167845080383463803290263710233140317610107339156477261678839393289641088912896389665761067523027774917441299275600053008424761105885317344436838498920778263329078464434646954647642981704768124426368866096637695337139700188332403232438677482091483646302723130175846556660635429182969782219094274737982711021713241295946270958837086857275820777154768209666141118934136702831352354273586107910807046888758765310609757817108846066305358527471122443964650828680100660918894888084278575312882573396829873612927698692486213003266947420096399108518565358695323996596641077391620913088728028476146845975369615152465001113683886446929602940087630569893439143988209290185463020124615536810119523072454231144285539779074227864926267745833675865437340337196300288865953242961176779478473146822088052921319774320575496573952440987964178658412345662184191570442772107067304357075824416951590002672494644331788687310324105951522837250985548093186234601452300187405006113810231209967241230349945410785394908074113124343851464561855984826932582319389766046637081100723996998719408260329872567329467124297016197865751260310564918744892824936901322346303667507185466248992399866480277495992911700623054182069449332213369030110268967369067869045050188629906330036042586747756254676716848172652173271711817720400785061277552328270570949654485113566385605424352272679734691490244426768936871268045646032009813028249424849289306300685637100749443040572784465153970091412874442978611051180304460093928653459834182232643996970380484109768886406182414622043605812593260114538991325385925035588442139188810561840190711511067327837237237860201735353785860360346782495603995988017122640890377463857430561438198693154610733732109529222394783525315501995411253778586791046071321166023916998710947690503870521986109205881090209075279855896319486640681070058344772075352603970639652105259702022842966689975411453555702411398561590761966086491622391768995835525558972835748808429015583542697309774676962299312288809000660858511031669512289974829936553437753412259088248860134317751566944354765795634808696180437021557056852371349044210738632141900073974986443863128920709300655522458209081474346056300554166236497183200031652022864661947144437982488478319729558072476278574299229705906492313114858705502238506842842776798569567683966776960598169200876963840964688902875233461130277251652672479428583491870463813378099234796450048354024276760287012107521006258598319504522497845706999197550710330134306161776227083900753272535533561622544692557176416503859853762124895940582151732442372255945246425574249302837373874673486946236051804702866122276162113604639274898512366379197630783011330952677470617407836933725721642313811747178013974018927952066386458701802118019518410066097282510115478401201774158501591558056846527403023400557586022778601134839082748769580995367617798847157926559047932091766753752213428479866791215609498668283419940881287463620687861819593240623199128223508572993328536751062302088584928925836504866786467274145239040938874737456856286579801145447934805694365747861067481869871803482878331807641439715463328895328944816748783021585422221528532265777620858863579261366741898224225599255140919813115064675977032579390276041765365951085055936670684513868164174997263599123275607974293054515086834354665473461206751035603217057415686579291807129664099461989726239555873372875390560279040304140838522138048667740652299096787492755540151337053977462842808160762455207242228416307557308749520820918754751343112948356736237352183636197293516721994799666174191732710086042761259764312532312300778898464482172538720119368979756786644804705095297669550430709751821826560233389726324837352717263365544141190612428590217228577627218629875883393176882553296134713327265014037012313623180231640752811369276449345976997914825886732383331056964233586815130644710080731057907706248475409699363871917043275902279685898660574865658058706753525312511742911120935967587112797692518994177632469393107552842337094206437351183828400822025619351733380137426832171763643326226709088571444413944253317981843703882601775906159246911128591597134582379710298747179481849349359116193685098520226744230456376903509885608262352371893074898525181399520355086042605719022761651224608019461208042851450958245654728379110680122954541319900855191630436016452832178384994121379842033775800941150401836958748164694816501965366471540807254612344697973430153734935425327614211049232122503035502395087114511279830172315933561135925918551179988928265059058282873891244552956161485100481834842842916398965684562872173863760564259667928572589880512665150518895722298646162047488573837418939566609753684816778878028696308683901667055056268413184536465977730551170312129186600171360837055336136955660480549524031587862439626154947846918501935366703375814602604527446307541571318817023862543142254588749544804519091378277571527654109107559801298053792874859083825258002304561909663837435699421513796750108947347165990206751136279258963304466486258531847288795952237493819094699398651465217420464669388766433448293566896960407585490135639122368824685666755795635876268458563257315329708175203752356656702897213172217111284592620431439415360150771145200174487972675579494341372042455398640934856491331345637863609465140640693749500505751452040326983188657441590079882305249419146155031675698138612178374511711288424983363896219302858205633828861942628317733591327498669469927756269533442291777969940643065282716051487905359979298536463591870126934377305558761113967210742851984285358405368071753751851649930884159056706043019264642105314089505297057058196302684930015145920769450786230626758172047932726836432248390610550687893894402885764938116688413725390890735833077141533179963219055046691216191841574407408274884301941134582593746248796008184764439610402453500133765902296624299823086218552232006313324023487964750819360603253086973716027945995682670333826403990767491517385809480957474422871865713655356519137725082676309680217835779838719337583354103180531577983013784814967225931076330346062227326493860050989987487743202896463899770218988057637556050950264237251175672060971524720422415969016201480160138993237389155941372204167119308184931987516967627912632459458596694739298767959316238944781145110513448103513231633115871003188168133442649059488621002683388839109274246267259046486166699763385108180463443906153023419924821222290297637828605668943690523920337500794236087721436435950228801073142037001710241615498841694133440953144356731185638276942705392124457712144129002803644451327557721693744190246569062465909293001187766654707786748727221583919956422815749069179403141253457755816026873338555640634719599604225412642432098598174845257588569023808950264529595084306202176289853504802482017671799591155336989470581832836387967190502940455537887889646751776717663295493359257538347966136875108389122288559667275127617575522697193191096238706945630325874862586915920527720273821969206566616777832264680587742335840083251239964214459458602109091836519371511424756202477518242773479656865286033480376888268985833187672282020371990464868447896422863705422101947680522879177360315210818343672655994124219080226441502566403937044417847797891355682522752857984553990742551788413232287549114743267551014821205078459032000430304754358970963823905326612100951587655588519988292223176348919071721469035521322179435579325258859063181098026853437098307521472295692808428785144151080548056971621406548284438858491847141410626056036245082054970259622953809718644958322822006777527965003548629166220953145116659050887844185130927769886961111907089480014744812803805667378607168107695898552887389070218259499919218178787611176628695107840119792031487377398352847970680765044901507400246448982024549616624935018459346189294841848867984362882584519450629472240593418223194849467067253644601186544989923913099041848589575285944004367386992537474139692726632895080900898370360101088579457515023618475438601522535507753745218940610468264787039322119652170844834206843958361724624245222176067302858843543878958836501353668605577053236022434470902994518194296825869903008928959637077608938165300597942762116740508273879093282744852295385635325625489857853306313499947714502592325704473601805899417607772017317952520880324667187938198510239513462649419471353261948352335774778539288665926437093564958059118719369656121314383605422580136732348806078464528439224126409165037804568421580468940602618378140778000660988415124347766919143887194162617066965225567622095513300270981596719872571720288880021666993558427972095765174557925294323663001726323952286790477269508898119943174430803175197363420518015420645188130655267724854876384744120319821091704861475014803779752456938158224455960255994097703724876549504723897370075807002731754394606211557916383042634877630065528118509399212654439678951208618842877173621417862253654695320738395134316590665047317268033749683925374124911755333269417332451265944570063006770397859335987512796235769476224593726245131044913363843113224569114706059731031627969072331651184039800890160669391383374404214857600245059318648486131783480120650228731041800403610915682348263891163338227727970016149887958450348667500560131821942142852467387169576116626608905224340464141093266798238131605483921615126157462851795095040967605596637555314706188897490478907584933625631515110528548411845262001835804954183448015452221506363250291824199356818070528503813738849554615004822808475017099782429524292322105772523906288785799050397290631841786192254847432188129696726944084345332465604960743566083263529496218655653339779181546711910639818867624292500302597915489498296945746495077191944190403521231756525549981927790375102041844542071371679423527268776298104190768178428359599637121497972856220968169496356404660724372987548139259138877188358866247453982530367079590970742056249796258194864605571774247974746796396410444875451027769497895904809108928667393888344461103441848795287228802811428773714207277018504173571860341829957478687391964463467685049056684229862509338358086488135181023134174296099301285351687944431206468081312224932349972657475825606337887881801226501069288226814121404975759436475340944678191954788080744722610081815230232227520005542119623605925168851629799420371404429423765373968991746528871886722050460402122932356820979756401635798700406494819764851211857013865270834550579053041528040451463093959011783545073332665559624768821667005220408641768039271368887488108354705449848129852452385945055828806336901023861683407006043311975313743731363264856529040318278162382416676278484183937476754198730263307218953948691580979721491309200782600905515905396491914426297238004796200272203269703262779870312482809984716858820222237689622477758512748923045965492772863829747586934973225666635575826735036418313929194524888684419413448508725815923452931929857222047548233818587301225276927645638982474407993201367874591494720470731123734790436120019830885635238103673500443650913269084689631979043442207068690504092438358172445425464920491584276518131659673106018454662359876158510744484658719541327181300415841136666407751426284339678812264034298263357188825800006051563405171997350673485923044915834698875154236177253014549468341961733053426142582785452346459781457905407983813610245229284810416441482649216848663997393001039285689170065995931776191001143815945266874919059202243994957180233254494444894267697240484733248568766802749770440219967817345963782599247629510643286422616958710941194980592367605857701667658481082967756308722802389489424722549989124560068621703961892008695195448486277733083844464872147357646224352402926182438677217384635046001309490654373023599408667387488743165247762593966008931909362566384350385702012748954484373215186689292649105389195301942679908524989283646563618487327205867672887330139988741636298145792768965604437504677320793557515504937011400298826151755302378627350262945563166347044582843758169191817755313022046636353910650007967480310603117595364234208298516465588226802327011558723135733764759809780899609941442342303695163520179755660028022691143667618770616610641005468935941336114901901983969220337543703577183252801033148918594116449258497281282561553221274257436714208749474602662798558614290898837059942300248096385605101648347815857744315655521527694685572787073159516799718896431872704232689098078934266453324526025233122589000179755095358640905045366900928839531674162103071001130475641506726891099331681332395046117192791628534762605430760620826275330095740190110657302442958644453980733727557672707429863267737775968767432954649056686111087929417307808130224077344092225260630684310271566613010103236848042006485653635232992926294853272642463903263763985018008725435749145974978520532306677053103212948112057528030226991855579659533762398148539451877579115940747602155046082013405928643860997304869069398889426378282844888871596236556801155203575670145141330165035430139504387882594836007174027238422918684099108248001640948941771030387913781993965387640893774477544488013567509391289231511937318123446124026710191600574312035301992352825057880754383993627973025658599219456656160536797567883638092334201543594183100426090695204312185850712805172713770832454357543905483139102764610989284327195686887767992051587679815555978328815828489569971662598209802405276599646881105124859439567296767531118114786565638539357676240562931317324608111223868604387252381705875365570413196555172348104112058446887726665640417305501557220036054731078520954880180351778013467294851081271470959093978097506920321627708704809083085404733118631784073953264995915843741631988188668530715369163000300452354184599898501600794970789449481816622713494176070815801394814915622000163921300918724879858038539008061925133220077458208318903346201297060484294784803652702298725133503466401519706256423757156377113520810240081474063434192231180260218472845357961481867710398471717093574404843239599244761787917829961174630722229519885368187331450902724736082210548042714973824863755233637768997432136011141384902284618408397166191905484619955580522538801698858497948908982022268478976708845486084195667356077052767210373110627284469262448600234772579192672255332776923154507525144578033477623675503925873548957314191841954768441871587173951527623252316161902901553725109489679251644207690490666362617882338195084172641420156908481718538653308183642214488129263077001982058476911441088073093478592697579575672065660316506033867350336348499262518499692780722917321862514275071242225204519907235197995522917614995532772721469100275266368930418114839122762866180689233202603129331372886860627960823191803076551509621206479228943048566314822482948532709584012906415892622681958077419182506722276902934977311537016762115531046480927822440712825992295824640181011738297488278934644120981499916191217447740948580947689736592268711256949836009005090701056552875140137883972971513845880070478252097259577819591102894402569873502708611023767312554821506670838467595216819490284707616146898320583067603361470968033300304758648893055410978250475580110177448470509873130203908276457222624949294880438559593576533532769629678228227033818304636953277312460412072260282662149313388538610048707952523926996630870515548525378882967475337691058220829088535289532081180926559652391896500039217596423870215249910020988517006325840944979165933780561056247565141465852147060419195838572353005375187417715154778891342920061897740895764766487350680749898432199769830568723261741582145811852268178244269764896476588500521041366126867256829115456422671218378564351481445803530799988645853468115551102083624361908440281686015340098887759077991021811224134467544202326646191258779461571026070145794412190339488522484635693074143289423248057526446906736967607278026153360178375183354127082558778228638242786554584836178854427256751413847505690440251707291782670310099377434254459415485846582195754157102795921197298753467447348063866389103345608707790963248982652426460230900127129174771772310936082753335495377954938716450264859327521846524173690784558585593578613784532597370798540627609878183587621672480735366810268241639653418320524189957207550052086281858757834485877749897868500813911145526726681231717735566270558103343118924128676639334516512581530574318031367262908301302905889103187111311490425048729907079303162147966013675762562256888076375605660953900674479441460716998226115910737667150710675432125973303695009570007331602211005161143965079085560816273442831267354443702005569851707216342263263080093880578410564561332949441452685513683405504952128870956221282574708783231783533443548379946111467157472939739648484578719308103202211013626926445913872511416950587234928813984792085034762872642150546895436296124594802361706831070606749862510737062542179336557483760610174930957960362713185985162083910166283174775167762099521409427658934039354254181841676301125262723842333526200807318321864735100232720401585726925404539717892434786220616742137659727864187426197430056328811751099484900891282722970318716745239688804335673550548560747075771923936321142514849865353498230710744959168164671598293595077647126777343264757865272851127490281992102864641208002283369072871925249226299937234645992474889153759758563650116554816783602759761758121097748991464793080246399749285252815914613389513105830060698130854166367358232727818074819729086145727884330748233191465344362019745694557144443700803784314147036918287132999583394839915215817217323770351345028111597849646936771866571454056435532641817498289289175146005457531783849259733953517647749793497771393222535425164995645181560151475098297376816334930852432406466579412991633375922562165493845911779644147344057409940695858724880762934225895828555604844379974310771251674453975666651300577181657193110710008097467375452447673341549727851229999095386976683660007529130083080497932177967991483655682306575696358066527190331350667578974070563027893485182509738495668086247293980890248549470119519004970303289506916393170945217859870619342194402995007437102982209749414178730250316530715476775885704673525524639692558715573170159654590226191499294691769627037314833662179545958926896678372232072668076331076607701095134212737149097868817434000806070430345952908406368147776127458946904036167886296370736320541434688682136761539669322100931006791690049261373215411767137655201104816229278900446124830390903967953122632529743332700772541218706469619516779868918495955560920309349499100544689236319015371916772121738906321900874510215559155072661162997756239867490862857538520423760862133178239947577161445803118297720064951170772657194568622770720180481359218437146917326803250992200164783437489090565724166295154116985941949936844499830620423618772763139111171953695879038113027238086649019605872741052244967012258662029503887828146077351823729067750187951639679433307597039849149050031003749717964389230161254678792764147430346529497288152288824028311853857749319654602130873790903666954082185730163856423612944841893303018278509825991177739557244884103872724990192572021171141528938248941536774140374219671364806933365759857841946911813023701494867966278465300558940859293467869275159890607801304781671626365341674002884929160010792678005363470880637426907464004547372762065888996739779248284144152042750998654883914892771537626816582076254751456036044165249855915467263675281555187263553606734385993735027153777798008499313368281659415412579304423330781756366649550420020626073080249479650240678794369682514976272434971743011137384044608166794541997175802227288318980951488665644424709245822038693092180113100823486890400412496019833971443879204503697521964267587377411986120008415720858414434316073156393475957019344374847887843134461406131769598658664259719726907635380622046671583799778117975093373395678451109474221187497527806269612152658783110572828851194338494906608444159854068498514630692049195539251992255781153344653899196893499494372686290277361849575638850396056672066656922497012574766457742559181199882498016339541822751955756256039162860760387114591901582301737887172692666287797995656645639008210977454831018210854113601685550020267647393125094871355645220157510461157515084958644355522245616964256852477737426227638839521163117179322914706004804114163329121325708262248907459422409432574250425314109613399184808615410201109186606160308975224594747934183699373239802951791429519464344466341665790378677938599870599409714069277202982103027740929466554915227992950162592471321282496786269078945139250141259299191273034715214686740586368822323988734960991411466615814917334123196803997351095593660794913871352338102095310931688746187643233159517568364158005189938464004736480987250074699492617443677728442093875165285820124912914977850615757301093732636891048187950080279670338100324758758498962105393207385208473755664573149526076831029656507806618023147372767054326663678393580652962007715989294329820206913168713121449005417090818752720407894710448347795756577887028138663501671614366759441261485264831736689510844446484745829070422281072269650199175859251517829724749124497282743950166207308927399103772903456820404488231996251254912419673233443952861333448901496254903619350170915931932362075683136605520430053167777393277469471464016294157205842842112539915310014707061692197692436016087564394596090391805744318938571630847235820722567271127183786494779659129970881728236406146042317214651016424595955752438441672411260274385018654728505287476502492540916172256186346634149099183227401085410181436168093616747184484883290619717053567726860342883807256475683644876744837400700553051718087737046999692015916164774037934542325508932436787054142951066159191151545874533294718717871043683384828023292707828467082421496944713653592841513024119688548752165841565215918856519708268024405417629947934172034687659315899557211313562791026688169016126304590357953625232172040995873335391248580973171864966866191167268404598815624436714770889243193495165888721134432225328588322389846984880131476201387128821787026340915833344026074383170925889991147144748687637112431293870626390934623439287664389044847394731977966525728623124253872034701256437091603993776621956226347348103925946994703617604115600271795785737285431784611231189510741927692459315178100766973219734829065938019806542951182522738143647329037682604469501057920602291530867503371208246861255550114791934840284101695163749287271733862945826533880761362750037104666087919367537545887373319277756796334544316001369965892694861548449372633255313481209347438042626313342476391723676894905195873180050916553596813836215535159309266355978729958089900364889500846868540859242403539734645299912534766220654294988551183321278127735585300844811214496574111753881903174977672062595590942761296409945283850285366956372118015745865313767017233081748100099548061428380167976460491145305838744670863228922707921522570456838557703784277087934360788513952857642009491985127732235849725038722667781765173216582066945086151638433508050203688268477072420993784190381046954921479042885110452562102105494895071743175022118413355726242165314234386707052958066177475704855877486352420141486930002618109465336619816273600839221006482435946652426483525783288851714815646074466955982407429597631200876112464163508483575050019760556802849615839001331110176164679356498557646313545703695874989620872973037185920590398464994238311896369815047961330657287300263707504418448359645810424856585290878335440531815411537905728123000881643504964186008778157279887719958369700970420059445066147386178524945083876915051972969536193911804787531276525588254611770666243526577617708196350102813443277081233368288300562971197918658536948049253359248856786680632612625755740082080463234198430286538805639820199843971370018265762884500139247057340395706373393265048477397023826942650166201741146129750576659195328089720735483225847360310864180673467325335111756503879457756622624144920029148213888182159149045543424604927895332266654126954730458154511351750338391176776304425018596359720753174590214964534545900002318011177393593599286703065412943113787444916089566498411087826212523924027556495964396712042541705003132782510696395326225438889462036639212603318250776693377043474438614086235680032713208949565995653706649093877250992773815946539677596761461502438393346464739473477682486752291326967890084256975391084711833058387423552157779119098455324552196086704376568120331665199103191437483193913052276243260852026059647385078667883723922399126906367560840799617714988824178103871600525319854712951229799226840665659708557382744584433255956277381844829982927364679185454406403257558851761909663042277650668264903562588207886669807237163724169500636914022051017652426275637815503256418992203325507795769841497332572954213348249528490118145651505575447477546076780898248283715174742449603233085197628173101344503055734367035326732584013584512416080528424955653054932554065799677346878298184545341878935515542592132955724464655501532983741852401261810190147031661480782309325745343761681336335443264648648519291097374238113512391079283446205614852637618856966316900769145621295248898192143875887108881001620471674513638359608236279068138101437927929540520607978465729322940579810638502752550239648188470346524887218696124706918075610384323163602189631066562365983669013511152840493166951647385261930603160916084005704267253254833790014075151208979221030669032953186532673351738673606424214183290208218974327567261041673944989816235700466160814807357439796231671622314744720473408376521395614450084198480759355551609055084415501019341435016318039436693234867912271040052835260554618523159399376749134762960042376108141944402688638288502921274674034334897469184301388293432917744750090036126627464381872658393288188919578133817812367198086574016047447910069868725913777730065114557612790661968309156866616583377977668273230846766063229602145343459184787108524678577538116762670195480619174525763063386861020291078115353051411837135668786429654380162080867907924046438964010451433698005630821410790622889235687831175454658863488894697187434117705008257447557622882781808518254174727145073252825350317807750533784173190554053446857901641276303700201785003699797618959325801727135005624594257232985865247529314400210920672233849949483523224636854097565865567745834355644105044508252982474192251918304905508656221655134381963040175128477570784003409584631337935726649096809656889451578526934807583791105134757811503042291646022427202190040535099061848893108325362109176977254919831311680556863905655508456220168505310040038631882906887861351188288676391356200326889078525620396945645803389776818877181862304163317016369455566242827954628030331310617229423856118274161824274147646123188121045887627018542659723592354805414133335650949318653901284550921976754144923911753463793929537904694684734317168735944650314467407054792287107266989944853760846222751588096135389872262958616169632028989380115180865825946800575095551839367329274888068574237122449803183508538837606742221417904419538115116691903863803224560612721972776723834056933647929311591187239209254092505153120804371734895473788541552209888978648736223983678601864750193622407493410804377139318360878041195617556125410545466834045168856372245754340962110213913097716713803790352494734212732036832204141289454773057583896351033920247364540735266261487188680104430085692716845791015722704891818484290957165452279253275797153402212242644481455446412009456424486451370658133415846433163895217098285393087773727190125190734717833165476189313043794151835278604167479286900340174086719303297194991224897773975635489612126571359301813839604915616146923586963137266006341913375551972601619109533309947307900485510467870501048047679153898814365684567841203893318949831607116162349159063393498414617154409256810351291573760163409441720797082312116636027088360004908763872919002232094442495300978673459616540278643528262520330092816164007050112923389548231696453656739829820245054516768764201755775663797673568739661483813243997967068692279963184699716951680461682377039664277145386532074150237629157040795350526606132004723917921050868287347395992612750958813717947398648237105236503305551271482470963492188269973636707129472007441590017834814384960650043951323716023900787805980427359083750353777772902877192647302058007279650757977385117705052312256232993403149981733743800581749583339946385092876627162035470520417175677122488718177085323202360492938733648728149307813861756867220930918624216579097699011437562111822704694369755402890887543617755735376701140307589881965862890372471859791847500938401569541526792345274133126646270190038241422665536717986195815859800998486549137962736521983959876454704466927403089062735081787802997346910255419486007132807888975149989605672070543638174997952916651524805399674458113788299980584736273954730521983679602112057274109705461966545497670032392801557478384227629366874441116952811487792620192080945465100971133922763807277956597441770173132427400068280138127299340356958372225586021131016709405232924532532930581834703905250757044048672866150440381064174787877082078462495684758780142176712696094886656558297703756517537127379063449753220400433992687334940288754476309553596215911094484701449313267691134948940923536117372898447832272411375153447177279285944166819086102620082863825985325178119768509873035986296983629027278414974088161306942393553552817692009083651157990355991107704797680074133048264849651275609737314722658833479089616642240100860453320177853349499835896277600671159519764442696368688286240821337146700589752098077709805729738423945353673917009024190277081607732393276370981117670102056882124804294466310772094236616473803146947049459526105132724681223933610553890715877207744960907164341149313066954488718657868683943290315219205022109121272119751692426892603663353635199804050425010275627242299537153262531125881522275424600892715507276569237607749815456798642850753265205853181872408770158833725524551685502189023559204259748274420938946849264995890855250279983655718148048297457992830332682096884718082781468244337051428975775248868042426172346716270390153035945001209119225910131010935913451093563000950065010872800600926750622222129983687138841782580382565340747491914190243832467609828060357119233606203358073536495774934539515886997941016642407033292439629601743479191327549313262075841500497260838571921903850815182767132056754720081866762443581252238868307845282997915594226071183338810352168838252045672429832211716324132774316251700284742211874640938561211548731385398963539785502578570307423352823181287732700940824628343642357876921652986267803821386824606401082290828590378386967335244291733270391057558885856233900702941573389270007386151102139346195932462092682242246014474982259370727402739596751013647062996313472206093446889608515869003541416339816227363001368516783892162162187302139884026155075485775119153310899934937896162279223891441820007434935256665231169816805553552016620272305739751961993282173989357215556147285053013200978866043778748692721431252198473223201997613767025655311600496587854579138978337688418203147901460976026251524006238992524236989051294743922869617345506670141309425525338014561339699941135660881457936378792832630851448266734855850898608305424255022325916446695217840715100504415576540692457535147620742378176316373729433446801075760826959067591960998486619340470351450836311033396048308645734525064199194512833944928683384676864054055397955948503952832323790479295914865194480424162088585938411262929952253667589332624399444385840230643829865925049355326326783173863932727658880793582189919176552059321165278298103277184502054726137064869248120653860969974825541201569797242626739464111804889256786982783406970925190930767757663403617307612223612516059874413845021353605903198075056153667068233149928111109624258255042567751877486351346299296087345270673188105397024282377293239814553674340526564521872778242214293009006938329714348942031836657319709672992710263107138832094051285640081685435323680566408842093149192446498899101688651547778853488017349849248662011123361683546943524427247420736537090733265246627994605047956813489326507312613199863315467173793570108501172319773083146871273158600185698018063857914037774599544753465434135074991758085751290746901443533230538963178463649562252308652427967395219634559309454815772092097383303413878373037483147938452440697660021184784256918889734867433866641918287550757363654987121500544969293269280755904593759170290047345294908339640269445209845458199808723969321280242727648947394231192526051535557757632725326698417667330351654858302710199099549031505603876898158623871008617739280002394086790436349029359449089915156655767636797636062723424728385307108144200152209620418623573972961665029005743167411590245640230190083709036602876855388806831046814748063853268964284119603566851328455137611296554420239046040142682164399007911760134098735413101893298430478049944283150698754085106794489474513805652665187881367004959098971225753495797386580376185020666757998062303670343337630577508407064150798566573339917547620953031737781231371211212076589684225186565978366279069931890789929284573208317979479064111970024595928421009842343924433044512513988377802956366796043215416001349396926237971963907935096125134392880208603281503684112127287175656673551149278703752930430989895540453158167614665880478937639509027104680177172423144668986262961874420900293647491007653733988792779774586276125728468881747196572920223849924685661497308169434916732694473104585803111028078444300241838886641747800009353803524792984146937616252608651174552390086654435523636133331317210061388605369119714419567140750951842898439313924419521886558326062788056795073341931719256423379373859881082071237612169000915748564945469083794751589565171499081801750493529108464660630652488840368142169929943409583587238644337955611007654871898453231246083678139357495479855741097456290676037395742747888295395687884368395908087350816508556078531099211121030791939617145524600871132630521644964053651573954621081403317295483564689673403507838293554941815615137969072866740773218012925297700065764668881560398977460415071377073909972031390630385664212098534016329655764888132678163228675692793941001942002483769572099081927586191296964717977067620472540978160398935815458670145044463358872839117884331046123732033888113348782198593596259033405987968675264164484219362289791396952017842191006965350648059415980605197200346356197761024431582161156482028851352086377265294937480307983237721647757225956235585290060742648170149165790894711418493568193605211128310014644937668856580827213431672369363503085188616006455014917853823917127183201651576273312920892740160392466848643909902298828614634011789818967552951341330780327242996244819512908602944689852850847863189599127459653564476714205726923500226610897179904927980769842860987935985405071042557446344307368709571021919582115308838821609603100681892862350087428638463704946090187762732887418095501569189282305853905534225546017345950023928470594730290810104412808029424104607308420772813293552503864110262402344525068533923412711600679863541861065689155740438171464169804895553386269111460521136548174567430840262891449224312139107901956816345076917941715316249270894726584336692496005639121834895664915936354531014422670149773149271510830911495798664740989460525954280751429723444654087812176151027307156042220616480035976975640941672262876502449242147922040821049654431763021043988055433638119435421167654929548208689714888702558936565350273801114366195883278584046533448132489649826241755051500991026789910070475076213109512623275045259632965440945791489617860187077214343382585170592368374048142968845351701717344277753855434944079250367990839209409716189674812717987066388029678385934444973030371221037759827781793782276630718805793530983247858070029063515231556874834450841070221238938866795271843003146215651502295370113317386634432179142157605979644461473851975055830387514889473704454224986564070820932907944707848033227492263016817266194279799078944046384956365634744674319734987714358201248302501878727465324383580023270363976335473955056882581278585948757503307900023345112384542804729708572969667323674831404354515805655410727961754564495349894243621204635072467011581741476546526114281577570809046402193271473443409372039608466450130033926186644987907165244279026984905045526385099827658807829754258764570231403387922708087458137717778514856987335353951533486601185862255769358894209453828747770833554815308147437916492793332927789670313066580691924088069353233615317076463606887107007261588841928704508423885090033056307370309682785696470782582673207897541492208045266067466633144930693502784372431608279100786750208098023387822289616776906815464616404636992135150971720577163528379044225522738501964405669933939227680214909782173253752479468333201278957313255988883915784936817388759319150919161865918514434493187169033101840998012398692628235012788540537627622093812294059832883532336312994687915682537174688909096406952522187327333794674313712644489260905591753162332631789727804448626103958399251076747147276377130526892049114695091257934400601179335635932096485264414719876420043806156327691406304165782934038589042975986789731832998623259373258453800393604351988067185384581355740938836995229076731200019753478599520195035430368119914466121006885253773510408124696188462844690537767868536908197432884752406281350860084251517050839646208753865403623912090519609762531443332001693059604485529293898533186101637125382165908850947618019342118718907362565080483782442973049175730803677049566703709156323175154691343490506114295531619201998339092378261725809106067356495221413633656581985081156289575599482261467736774998486374555081288234673887373763336803427948520746256911446390970263697028795169629788324132000198742453158169137532691166818287962900189618814163069508612395366342456024339269163243814370637204091256522443753711360745399445738888389179279507109353912181028808489211076294903498814150258714547017393563995564869210206398925299105323442069259171224261430859389570222317035450355537835091239549104229617121673330804092882224149923795274626514839714333314947276785020492620841676205749170266722659588548268418576820923349018410428056421070370554793711539079422730275832827770510580413276802378297718918328084811233334748711453202991295453061150840134700969805992932194779818515455186402060083486245020501189429125601649081974795786645402767133006095648728535953115195322944828390841439092990479114642469588343782797267782357826496376471417355063259307945620398762349326529189067837613723599077768472082895870101584540659688803139939920036873655097254112608326614076137433550253910467791379173582168057531570649941859315350732560052196988253174696359490824500163352306731828952559290251497596620512286622430397063356507582894368793814065408980956426562827741478155775464569096086677493583957260820969761504031715589023061722154755472822822477430225127635412090201625041290106557581278986855029674800745495018397658160254699370081119966600327256977146068930101310369110710093397529828024886922431877847744597356824947803052703628477720413450120306109095786008770612611473354949606147682037102415794520655888200030288212199996376991399790792193420496756279703430157053690839437079654124842736268455407224318651500274043714430498681288610250520217178901904294728109370344304970641308660492631962594368967027159437715062764654071858009337106990470249409920143051211550986091543493397446517603777893317047527442809436658083871018787597770948475276265536604693653370074135795251786406636927777274321836046517398009463088809008966498946294581910189182185811116157571199692880778414197924708442624256882252309704611313622892718062323541242855277320351388793899408649674495263610218655918817929163154243114770092724358634375593659232812690783699536005665680274660662831926490189732280350442001226189943824384651873004855275019840079652998200544607309926933326441333331969891960530929738039397831342158774985416194207633848285292701116778990286894947576156662123346631262738558094477048906758408868092308013276774945713989022631559847636175920842043359152924080996911047043213424020899360078991543340576117950828053143929344664309944827278269362037311351579469106676178954999349114961180658188657629030553865146446651624708001398786532711007090172504289704686604706245123680142773874463329880378990407112766673963749149403562465633015844253681903849815118748771552126377953553174019171120905519689167183256278918414286066155311698587505418971952558209554218031288934386421268402855750052442028641526819251281465847002859990119409206522503997939744481466107515663756212637913143335543178879455494972165512214104997514365900134623695814883886098124379221323351103465617136906183663366613371302265013818824689813263639418210050437969942586544603282334771305104492010912961372067643350525235621229643129094346417957640765209100209504863076503647315332693705708802572875943746304692171264752186130910889499294398575199918177437844708434570663160456358860070638746805077613023745105196693716920181617355700213148845163196794976018342448020440647396166813484502595958979723741977775031507400914008002325350659409627227677023842765409851272056110288541604627408029360979281001189132742671440745075346836582331261920252000442662902735545669492363224942248827976581358757727045092580507231722648436918624870781228734019248305302393902399573379378187978663326785847607132022974596643433964137355016787706260560331757575054329616283711043667054422056010127491622690394380070447810766197376252465778732692894865353296148962692908477880120315205847200481097258572331660406850674425105160192494273800381810608424855178924661901224911103771911911509849675495862339960945360668518014636188322203758031866758433082653158016789626652776239207021751667032000872302665955037511554927276439432371573820093980425965183943400155896760879797572777122492178642978884763572294171477300539543388456279332214291706957006661354781437474610002092446425800044823137006869742132496939539628812478156380151185335847128240349288467886314024637862270777409911833613301349110803679538343379224146301483013975260077605771402294540354569638299548588542499447433327765864317246792404539016417062880006400392537589642938061210357667564848661521134789806285464886575256877226122499836138777764788378939528982803148752036627526926264323352157471023689652165208443610088787581760670736277320683372733571892765434223626893037724253081222574977083003557937084154476657991720308611042021776768605842630069852200100989352996214596817641095691790969771898461353443995809932564634355452805726216504896199432048512145916843864187726463049836181878374087465860963411549387765973809037936937085228848397596803523283816247664773360008276315688533780667534276108241207816823873338594308496870513790798793721069277146350179122087879521935380921871629163931346851018866790356520232295799512220764745135154545517476239792216031043195873882778422118700930496836541643639243588227474491826194872472140709201119959353990557893829661900021139355637926501246713404114149833679412307367744613825219913293602045758047569554586732363358388210080888955368385399358105024832844305330913730382118715986482075009121685536173288568350025628750539367286017759723214429199225752052511143127017456447666873896727783095292727401156572584904727322134568341095372650490952138192217386283205145224885411860705493472444961778109922853924347235258551160609229740795441839104697258330665096423958875389878337758276707113634764536026553080668381083234338659185241438774846034035614695064872935568854197902594487393599678045833787780782792967879716122079872556052543566734983848149769411912205880515577505833944479038886477852630979698401207268941103820196958438500756871427705713501321768161207572408828209786976996556780916844161538445661182815915512521154701790153258933091931956810049822309106576343664285517432678210765003151087171895162193641714244971023034823607404394326607832425772472737378848228374161934914661710332548128568324147157360205597280371346125606841900397385672314511036347592579991753057769521511040408977462181333479847725220247816590462313683300298299219955234984022251939889803555415167813787154557924882856877486488688826422011459139949488892767842991417650309627151057274730349718805169363354732424300971132300919484583936024673200105573579367786965747333678703563668697169463162913336504565592074589246249558781984355927270416631622390454754450323376804068701091809664973149700044135126382269303720613530484314978314792349371008428632176964971561650004464360071914695333751599425923874680537285790389821599127000942355239940498509351979203665529590838531770972031354656116787187261624256191161187941045162819028532235437619707868807259396191932454222285304959495901756630393683850301709153934844020596400938255509141935291087448062251457408022325855346372197500590266125615325450022530530996800387553381814644826566744738805752958139387554407644108956117849547363986951722580718980328219129122252550696491338046961225299193033897780469571527652526377287065764135003746960343687600896581916358238672759431009443084583121838550020152556246017049699384509357072780883927341965404684801157859394818640046142387715713069759186542234895062284865778313920281811305031683539903245654204627998662474351545830112581612465976177676038350939445496922154773998345664646547900043232889490252215696884939509247127704261992891964292421648830757522552134904863725774867897206830884536856483624549315831310578563166694438579236602241232187440767811996543050935362140402324597764674902320514010862182989428263527074388281125382029687204544508081135080407272677674828472110069667041959914053731594940266252837155174948567614014346777788371752502812763603786487189827597893735313898574991675659833388843559384898123031615871763732052094507095284438766095059893662533112485580458977410843476137054192699311633987956510481944813556617493407406869585487560060883927724376070077750956158670520574235744749610148950304236360149218127275869119438620957225374052117882494391139737166524932799910803159596502055201156625374180079003897345728661044309326635363685617980940670522381103373063139383110310037413106421440544606086880418358208911118464967572489384612835742283183257014211544089309804165306248270072057539139485143161816113671635073138069273345190705790076823135859631495301303141958692387138132848483048518938007037004015517680570808844847817509225698109857059050256403562898642044607624985284384127183320011109178744417781566058457170676507413023209624244767257214264979616156222669757814551656371172854161428193455037990955186921079856618098975796146598313379893559088824774365139581180648686411472130198889914594655642282059629436617233495371365446044061804122161439791897603623913398745575948302003868684323239578476895211964719539442764877981470937891717172700210984392368706449322639402167154538866275526214745511899661761589267573005296876302726057724174386893847861195522010170469320532709149086959763962376511637068337668560700083363566562230972902975192055560626192519136646352374598735474362313525690634834298600202416612840844557492211344080246596279067334387860011905518670799861072259468667310785508375237104530899453234747091915552031534750072169659254220851703248832522531982409454493557495371458643801587912183167320279379218426037325840321579251247172680046889906261545092796001499808195719082784011045124029215174822324224026713405106512729392422670411776156292619352273586120618446446541110006695113114195838527575785334980667744358128368796810961939757578060834660764908543375122923642234443919191164631797836613778020930578855664311999154556134494999314556808131748733471332921275685833445047566907659520061263908166088309486509822666231830818681715899941622125939352884058292205765419681471561442197629971409926260252357254135204450227539392931460409713474670835359855624377041441322341013945782460532095068542248035628214604642910546348369559306951341820950895065076477244956352878847263865359572460067996352162245616154569444950625369619351941383201597553311458931982002750431379577542809335309965672189106176924866380731591777424614889778597696457692117986394828257463638271698999979482478206242523107224078475301669138811496447009872937244788864366608310797537363565371242181906439563124133975737277014050557163083662756308436935093482423895353170014168509676194992867398622420928675739223926816104864442450207379385871043636043474383350080903799960946549648013232212745227467493434549336807036395883392126497223428233362991106284463176285327070354762792284427933129384484858347705570260920081842742460453243277168262965649082984014160480968376385793944233808027926694852402189497165402501262392983399732515078381527856072678374422366883392605223806898417190793624734460745869953305723671058949856024136970835784034650574400769332411427864798791456498143427108724564366356141900364801513693928250120897906902255220940821672014890941296767866582658370191181148436952835133201926580176923362473991501438591539493652357475610352635181541082477810374331916397718698814467700414782962723868769790110344782070634701681721843893358980784795691344557784729486061755058123311772454812177814848415374899904332708961559022541552341473733245168428841226238646795772999429579215239488769642542106097946680244619258946870252079373970897364581311658451237284433580706420064210652388818816304739468754501049455226248317863838853188184442526638088137845976842955645271981243367077677803007268732691983533954647235414876629925799179108775175904079307568644180295966781369934904216750432842916272770726930813431715245614571736779269915329181142149165246363850029623379190194018203916659058927734222358460806578594089709710962787151496638455895259095452975796864471668001933115631354733450647631647294544094926006370591356711147226341104850037794527477714771718527595650382637650333773682882929707269515840801884381739936572503021946816177972216121871895572437637723064594731891320355595722072226119689095839678250150105173472563258733676026910541940522384150601568520452435434809686276372864953896473602040202212493376901753693526817170973788636599410441625886813519390550762687555559643363520345615686582391422905045438721325638526836310483930187324575494969038769526285772874354708269550725826307453036515578124349641421097359735826994902004637856650820586129111514357116165861306275447333937574029743385138214170158541504610662942605687860800688721776250764089569029432974201767025783573163753487372520106528742669271599129116007188349431129562685604694147829904489135215257459598018062645157797888721511831908970515762885660555312725150252004153543359071237901906470177003947569456422724467457152440446669068339642913762024797272141166270942927381890856335677468299690023974060387095751688416649779426061347712717270694483267673612251346774674142430107635479056425879248943930023896584347694547208324063637843134238859309753930102004292125218832979225528149373649518764232068343765682180272658157462512288073721650129559567211769373356300492610100489785188956447506580913947479326231187793447594673143658349363865091059686180739784290629115830789066165062595248211960500781454043642935950514802813297519685806548426772845991982235656033599756981935078230105139482993702816403505334504958952649591195310116863463697134825067998739397869374457964802592097763659098473275023716003472633667419941191957678628531358068843230986956519086720125118262187578151422886550221504182180806475014571946194935388181342590801455095075256691216924517718131661221052693629386832542291377046843610523506842335613365596610931719455230556547084177202901196099729590823670866725450515936360765398635971835948742419688837101030291985714280180987451411896910624550973830837245134304398175818118793706324325905176848460977829394994153226948472768479516484769700506961164686131340483104346720122049762225301879814832031625212452505200882765294692858683922345855789903163513704400284345989756055734856106969862142247562021530740898203075873428097666490476338946632037139573295314428853380560347483773908692745442969968477190078110055933775780445254506999176021912773979637343804554874966764139351871976339847855763957166077241532799090203463259898620600305631457419996023816988510212071281469134464763072004788845511038444553513194462765039363298728355830013309329203202167849460383308773441673054215876247199181905007312604626894790965392596052783786393307156197919163118521866823396193159620866460582896174914672837953700949229647721659403156897995335562255656758078338489828164292048559999414340298217498810470822386142960757657420801122333321413100993817214337335727581362293958656903123995599832113303525107824172293072145362291302880668120095543354481047339505675992413126755934477619822225869286628820725440342568774954398374062831754144514344753882958831173088397446048715279800411263028445005474678583868255870978570966614023195870278878662429732446432714821538653581352702542388386949149695984069136015482483826935534502592845791302709504579148876489835661484884643240089849338043470550709098860092317182725310612095339770019286110496267018190841489618883751502288157267394978635408275302852410520428677599297044136943861549117553614250288871157655987305273064049155557743918335585305393479312800807075171710800877401664690856502032230186778302336143891933141203628502288498605551671795638587055948366246057329395536526738334935315982644616467319286048115131220699246311188630194673713824860468606027305020655552902539950376762565143573944052605862905760500702342251943679139685123833875922679927880044839397758438368070625047429187735090070487060037215422084247053467264680424416347227737252352654630460401138542768620355367674178551581886690290582260850920228459603521536290127877090682572660345311212219840539759008737254420117800680591410581950678902275462872102615651191244162851871088336734416855896394220565877476883729543534854182008446673892377121990429782566773201573118876645098240442575506056187921485417304215942721600707797622562687907008694381877747439411234014642531115845512776478472680236130221927300008107119941121020533387987227570156588552367215323822969219360330205476045689188905590254851763610711612966947071405741588856702423605177491388493396881166566846646818786607963534476790342816905005690068143425405236268946627278409594031507993568921148474200716067696699464994066460363638638463355599391873085678646605819903948983046695497630435849650002189754970419693868397878760023354629200373767238324176163971262232356139744668452059001631188376397470168688572465715558520419741794309780208778046217433363939043366692870003551046930116461038906182870201802819514079143378484087603095421307230643409303034327439573118887131305419220844414742320928885841415310968787053831298642908101976012085024523946563573814639100921182239936892077480791777101088594975825545626815586470539262185986706243886443669155719174124025265839656447868975358012511568258183946217842367643648511081106067219684922824963925947295228714363264386425910373980285840679861941643210885017147868459776023568911746749774528765042504130147964859468300932345374734507421561070830906062106211721676106326617261567683543842273035375462308339614895645806909188275647759615700199516794625235280128219663382523480740885195245864243064805647373778965348936177582128193915797617346518221546367461795373268173571716212483222766108832858389490603606122709472708215333000327794122415675807206904460704367321573525146498410409824882406191388111264495686701952182911066673622988452092551568050951850358858766635956123450900671931382063884657034093092826622078222541280193931872767021902280723651948495287832842331397994704369898542876139899031206438413675864041801195737846573100249658725179187055124111635276373584750141408540560092268296970084664813054440470971168110580664194515852478250386481480178641952425485403353225283936261715653884270599403163939653979303514911799557935651913203302867469653203222577404650989861617953784866072491599006382156632617969798965289994963353773880291291884702890589406911134284291539758771561573497031272220607217191209216398161682938550901159571551212859965536622303587485576541702338040956090570281072021483281691684385260243825386921535252010404792869549438607924343563691616717026371683916280701150315645374051317060868630821805495507074983921890372952481141463325834609749385097898149284843031919885129282190142733756548653052267693819083046071668136356636927110155050314900659413836149825054298969812294886036398405588997082786237307332463777793553663233568862836588822219529024323625937045572571927165031281308973357534010389459764509624687644884742704963168333080570522721663841089887999295446130336354990475401172301838106210716141346660927135066516830670123283289729480029861576536074660672108335198875725233021017366312276263845015057557793389812409426290901039691380002194616877708091615466342897148587527809298108901962110059709609542191825112616547249529536308802524167518995709896162921871078191678992413385416161796065401422475254684498281115754292508098920972500941682259675773550160041818091430776378740552167693545191587155087626881788328182797027269872281919852713118475397408673757688233839187101067831507632557610375652696780926173249021777993578064549927731463463560155725912512278326115638890235987887094155019138420588750819136391445733282145399237418150859441558218032084604421725130120343888424751426117342074406941361833677334797784185181393865943454268941317174753964939151476888657391182449472488576540552941780506203720332184076773493268718474252086926058121891595811991616455087929251493688760483621140775875233460660745319627869942127668411570675028650430869694092689153152144526419316874687158559629642588452532389450685757363338532304859762336738803202025563360060465028763523924318715218078062360848518272596880012975689124232396805031850042096225711906892922135304887185706244050764017518524682188052205925720487388022817081286298354630789108574605548132888237726238908498562714650205680109222540960290464149100771110263139913904802592516743479731609679863269787934779743214539807260491135553650130625150550326780400398821748469446049001028984262110323447593273273173950531691793840828709144913341153785894254934280574184340853641331188098557891210441432677679333527265947109409757759429360328015999649384221533162442608951861431346988020505596118639372756468869250014834345039516671157643619027035683547536542152026469891535883772416304035361404149845346789285030576650075355147227851832759625015182559288042899603408349457295382259537175774916151663459680577393623501644621215834879959675301503941090886369359620468971658827360487991390002746551602685989078122234605892698321255620138591436861195985547373064103451675113155543599899360295582630746641081203644161953300658735490260883764605497964604441506901595858416015708829026754174801682836479931277592751844285180113785891636783968473211881801920313613465104506900287858241174247802494125247483036320244385731209496314052090528471864282484305609070436278357404558865459096906897471203483447329849311766351316475857888316172607890456082358950912875361379288031286113102979969242196624702986869175113945092552532804207059554349394970071429944912761219600450645626782037617913643551163331429690357687886525543171607604130880916991723584984417051188245979535878034983780960844704745691764966809159371249317543690608037313814593868028666429428184953916614136183443012136662047695031183745356154605685826100089804798428647106551645277000950151278049735369810752909497836388204569308190201643415401412577561858029673945244872046142868174287695143310081767094796235875224489230932805825713191201771584406540229946072815333439274451449281323262194961450890225181859224431051393416564793889544460761654714409363344651290457586848538785820007485080431198448796800459019560136508245171704343175004910888373077341382296428465778036011519727323694876301409609341570571332276117670273953986408981380967237197364488408825493650423444874464789456149752309099489161731618882003955235299712496024945988186159583672853873184839974569563930974708978864526815800598908239485592680351522151245384139898641131205828106756455761195416492614527216967368034193169172292216423047726826040279004238411836461789673303644750454623995244470794123087037713505420762363442507092488315576207864302704663375574717908236376604575576065824974168192805070914760617217264494769682133446235547864807532261186830182696245207230561025299128174057758865784294900411494376636857220153135513912702175302429449576415315144721635313209238826256802009767063104345036291766644349653202795100561517743762260620359098898606460502847030517465085010960903760288983261666669360498658361021184681776081124189426173791315299566892757146492919886658708052198555466169699727170432646884424989516399122640537030621337684493673706213801210808421892579517882951481108558586568867603772851427081870792099970855709510799340781852007125877114475076653402810201780412888762958694688498033658904150323284037098900508229017237789823858254804754863725913950307614681153309984187688266604004842495471264970772758532250223193180825465134492855180228333898634199312246691101819785533347693508180823253737624876902048670732471770509020695114575537773785588017424966553957829737578065761233746164346412851564413213183327458447867129029504374980874134667695057712434168968467280767541620506564866619767627086603131392393232949857855421348342527281184996370152189114110135690176557155162834623597582552099664589062296175686132644806774128671068968261176981300235193056967326309657477200403425876056950346880982144835647036673826859294163969181181467684749346000876550165982476353806059582357650604635801246717029956742844858014896915237352124441442622312214810125386951489141648660224177525706252233703780990224025358330355041414678668895571622099947758840303209236049757274084450524032890764193563008342619130600869109337867932447872091397739054615256713196712457336976035824535660492219776082195321906138099205723780056496616077074823649292247921617441588184832646394540432571366902121373530813360116826102266644822674244541205422852451753277019719479909045811667048057674502587246339964834328440121709137709226264712652624974683068694242588051368745482726305346556807337907674342821927670721305258365858937663287297899462034875610969521578364814489744454152815582467526929225672179843930152534346972975369969113879831150526346324086076830147194041644448858401051630842410682721534831375226399504046529920465729732892410762949007980082153729373129931907951075482167002378077484471320863415075335398291063831903763926699377382459523833723728978469813517876749208705693698730245838639790257471960270028546212757163581780972135667320566347086605392713984978460695584239673291998237760246263300981713993275183538514228362976695400822552436217726230960003805865063637641648315130140633732461359597364208243392183398293816737129687830567550151279656990093696473522591270574715526112047887056555844683718083276926199551863907686617625559934867848680507546593064902788992695871442630193945499536477772732535039242412629444011565753340522313561505601130529079686625029074554478890085446653804284278795629473836994023718350927053108232286360037427456512009091662886628410904487814435566436817882576650134663756125845162998553561212585942106919489907918244434327216633322925769365539988615493150692376988418410299649558107686784292312444410386036053521520921846665514940410794747152793800418606532655376399381043323228559590581010448443251878217094420175671586712795157105458798801327993152764932471204419749102449988806554129768345769092201393205460818603539370734583191338216263705441295382407001516173337073820324174966440787266080863257955502474931247501250318174475683988273931569852110679322391633787890645725529154911841310361722102831182943869327840159139098829812830716011868326095928796012729556169764340142902836413880456431979323573324203429226191573694695210685936453525806370204277279864304719966691566541991656642795324628653097485352321532664304595367645611328781212069834091507949331468351168624469132748057445263587760014439300395008704417184743032951868453105996649025263444501795881897561250658327003645674822086643882765053557617640118374543935918089503982610006521988023153899873496414749389746504387195451799521156590341036739390164833666723994445898617234264795112774409128448666823481826570359094540641453565623606118459858045596922083618110278693026619259252572169129762258019398010155841522394226365345375156937087197317807130752838957636502377634788745416965980938704889224768104981604122082785082223687227701845413609237986472077351514759936130776550826808496418517513627319147680344796283892841815869140528552906470925983307728994768942622182398942014368154945642917856516005083132924057482080579534334144192694768106301175223771477285241774928856017514800750008575501330569205584509034376399593630912536313495091090330281976329443819526926291361055313242585548441955214070265741364081684793263287212709785265151720304237734014796241022149251226045269713411953725581250773139871776598537902076200154199590126348501806711006490507071268523872514233632213990735283836205686722839496062247597091185037641324191776795783393329168636370972128108157914193962210758623908975473227966462596152001267695299713109799326100236855046069248754770180642173922230257720726021402309322579976892047054545022135362560582647380028893431387879958125090591530178784960164137085381244620882039236449859625327634428990201882676149933134488345940529088990110081464010547347917238847988961496244055924882804248121275926907185018210140887471449029762040869046176001052221795305747398617319139446402958594076433018875612049924581969878379634312004816747535854099418912098694878249853114052279394568211348270700016303473358092619206415878286129810817390971177024354649914171359979353118056296984959939563414789043551863622270565863154963991963341533747797485665476851986613287443659200364496128585111030674503939244487840476250074646505276134104058185802337908268297863708320111359046872320673186694199527132207973938695600923272607574605310110836733283088433752428746048113148201342249731280435140918908771922595359118169247110650463778537098653784707747991904495317976918731101334907964414055068672852468713393668730120544404396533904203168907252708869968623991475692217356833520274229097700007003634808855895942125954545782764967891452859948724509129585875771875031080689695046112385066601644025312508175427478116315918093058982893183225135878006625655727680957787792367132853149426481269507321407242902519170300864913983309888745304291373272706821840352740130120259138785383165736037061827435696681355539622477387398695891565284577015127932658027831137861930417645014891079980375794574778857373492974144447273604024559241125738359701497586790049389219148093792206060099286821070512693911206534488101202678367812921931069034014942899536119236798718560739170854057735080936777552370267045146019215294201561097497471487864613721905859707337794203311588249988042250059058759870705787871926100569471074293111123958372694776734254574900276836407036657715774577903282584377508250914459317115704082331744912779099802282377352909727810488041179183095040201980095761201767664345532145176233998813635160705351283959589704017275956508668472459383776377457032980936218140163127630407899453249892262673937572096727779084543291429508404521123435216183002383817064185956271832303993456259137564407066879616115089429466751171651840391622477672433067300004101798017442581291506896464623935490678232941288100026605331374267330343242143946854997448501145094608217585061000388876623073272936543160813725796891952449371732583598063084727425887997353011931437256529062260246391468028406714426677767097109345690079220779498875151010189831575719140775859964289648222880294671552405803701583767743793420918145135580974603433734140879698592646521650971377024240815426428801206696476900901247254684852358372044681032345642278536042891217594549938013206885626986810698583153037911853679991433111359125275424241995322933494652624957998684137095841471510932407088193604142095278433593850227169243917300764451309539887094557538253829845308096528544063411965523221490995348939500985613424810131254531392702082602750588342737391814969845731901757397935229631484241170975660654143184692404197264412433802626064425459692397203700737633383372346690790302409239790179314626679096329746845994553274115881208295038633264186280192379298917258422227629719215403431863276138879841077001969845455273241573254710786206278498763002216230576956378922521784713684489570581212822026070739745773215729894421256689774254266775889122049276238203953736351948614506520916035362052472557187926392870654374649146456503283637306424509490089403324744869170793475310777044549637162228847797782813179788528966214377916592476219379383570807955856977654131372112665114079153069235019849166345705932920493457444689265801347407163766197242408063071845200136230644035918886550067266716583958626799780486482272840648687616086167267776449890518856630413067501842611806075892622155926889950948329548639806500385889737843035183726796196596805851672067946748920057386743849012619330002112642757885731809334318059172287360511300851012172078348427455120836798015864356628312526379700338439633762848145397989297993775921023458977116302713372860387722519905701436702174997380250997576020246331442792734464617089522278716505751035677564465928888304893740573919864646933585905592294555471276508980818743896894199307923971515565132960139003374865135721932066409585179977235950289997260696263620610549214247273774582988288931932209665292701010378023461998878077089147107393960357356206418674374526319586503885514165787918997598012802034406379743082074525869401038335352575038639950339623688701476300644431621336329925426146710985008623814880074875235604631385984873828179778684352493279453962277612808252695937631449322901631433172576651956224622296369025528287004600900832326582058066432367283464376912180757492737400626812207071562604203846406506801259074086643055670908498885306306755310873202968531870571372486179461851520517950746124460584222389024897844595641757363683577106783596448270041903775234524077745877867351841729778721714514533215673605249416000640797323630150719891352073278446960425992908679580830299480542216675125469361002564967729935550063909528765584523273070906831870376032827911312322084911490837762096803560358963202727811131954429428258206750302125717085974943089760388046280954485281672920957440042851339389139744542301697119697558348255929226611219772473193833995894623112902140047397878770814519921790013385033973251153898512595036172928123915709790647122853868235574109238530586853682023597901082551564028366553522649038414576965381082192083019218068425198031510798565242401871789539856430066191649871623951072406913903896914821060497763924432104411163792251383921473657106674722624990065198918740628026991850593766969433440751076340487510694683288524695956510857098779738107114406935539371570956095138802542569080551722896216353302770493974560615450164386553637534851577714868574533730887751955722156925796590510499536127381596084082489097910237415877535353784540512097192078845255693658459900374636216490372472745223635802462319203034784380844398233861500146721961197923103473900514868422676874236941045225466656521934373352255778684632097564171344889127938855222080368306962914172756061508238739097683784931526129990743164859384510652324790811518670974845606881584115253794565436294502151567061692991379070950636700954915045446563227703979166578689761495855976100046131513740286372206964487776812960435428764883862958578194672035129225569651927994604301942806107094135927391214991858770265390976191170676789012690479245483197838530998847410771824129578612449736700025138939286786711869276939478750581078483260572570087061396000712782430184771920834195138101325135144085128974292450108431374902638055174851037335855360662993129297622761513500054771063435200159897251147356229932015412226701084859332995632512868502390149716770308887047673236499751246255285746028241673604290494516234357131206024572746008745691932615913945824284811534598728953135195356575475752115076996781359746309452273317847620149270521985438646453544253929734106734383732300392360295069812569527170650070645246815281854768076944286893157020569281006729971066054952992560110297216908284588208704775956510910669482866854041729940064434588128538482342088829676480125505678028631770090075351064298713482601349369386643042536455860588729640885813707628269415045848788637311826084309043276840364416061519225339473377015916535331606806012211589755755742183418052283766683310808219771286570552500060039270446369559680042601578143036467609864990468138721699653232609382002640462281592070258256397372706085819946267863125296704337804688149057848221496943016328307617493892065751970039713261861754004649692976982959897691922912686535849685051597477022852700830508394146079935098497999150604097818963220134819909469703330173730012974999716037537250291638837932096181030239102708448403453909732473454498708133980958867229166286477690564797068034915677494714891705385619691517642060188089431343403673842900076269901721438685006980762607749402616994611993126505504707839522545348148800854585952896552140805179446710143949324957135979872574703765292288151314832065111447035639756416769877687736116808715358279628866677989096980257788615525656586893897439260304511398284329081596978626346912471941308958948958803941758341236356687715934183122623150062718589557440491923037173195944831734569359240758399607390221643784863537649046316156485077859706040019059128775019011311339046708274549870434744142881051864606689916424755618393876063209171691300287635355929564888292960633946934757030398516232624070604565091444340054383692111848747528074722448460797501048772666060020918975394913777590124850199858923428663616592044779006282381172186616236207711380719897062726712998479437719351860044214452943475388568062040435369162543703294933435889481581713335189962978852709249189888420278482710730481227433137606241281101220807826694125845487447913499726221846508752060981395545437996191137517591174360416209461622079904265374429900759330978026555675920956613848587609944126986770723269698370613324711058245324357966995501165049194993457434698087611461139632548647562390161587662542413508184239033706160031657499613283881919276231463317298399028295511266928244238009003419510963636002762703593341579420186641450276385141259117911599775705572667663177992661874714827434253863735881418736708800463122825315239236473965999868688103201344257147176898656908706904935606102818832219831611607939372622156425428396453751986194113625969187580721544151344994504365650558713193797389465827518187254321216081837549538368936514079565274318639796839712418951871841947622935638576040955076577183077285947453096338366596524838638854976094999979341374699458228880230538041983865793602822919198317208523021701795421976340229105045765863274803235902029578359519323437841298427860835120495101697667092499222173974504170356589933103660577954674409540032490675696271339346370351491508537916361773093951714935043341515516187097128240148809616092521903970496721691439188504255558379354048106077505284908126756801154022977956117292448350022981944593737938032273907582160671413738743973588353906665390471111329353688780528368962834583996888717970112612033877546949574252992474510819835159748339628029529361369765968107632504469888484092268975259437219588303642928168246367197930597087795891580114281722425898118557246873273299439082789843133288196571840525064447493131666816459852181605808281788323523469338882814722497997274882601793803211334678547367578255365315461971780706600043341683029906015454186753082050773172899232592415676453428171451489933228701261560332877773777733363095681770591864545243357138331425404532293299128267707928512723343818881430308381389560993096253505523088595095590414192670370379456402324368302551608675109402114545599495794369215686654831252544911475456513297946366456524717623935024902423579799021719414656516784148027690513958122924833564966209280666452416429164197727925196124252259631108678249907092466269555353132829126899387336511040796056783329365599327689565218300172038537732054177827347984217872131965276603617647837529011502999439913375485874786468226933052880339865409977180280182218047134305237503521109844434739724232081913428341474216310527044301136214291817568891376906272238378012181798335979062670449366687317027952663281784799334862342205621725133796828499991855518038615293773099801253027316915322107441731767463050028129874423839258415944120068051467930029503484398599397384531219817255309664754100053524931968134444498138337529257223726724687125634846860305972941637042052284075608032600445010782604653713540641674153977785442649049384926972199565976821789609288838895121913007849589026452991359373252521113739339084872576017604587374587007647722736783629627228403172983876500143342470055888856953895750339133554243231225947493174021988752215459394642448179684246781336126668896289819564041271613814570590853171137167397489807580470614839872192553065858943279764411512945423807029994796912091196094297433391117381359456640143963121153645540410823636971568288110323440471046050155357472104786599418444463855395606040145199608902111979889475894007846971394056884373090099592983004182958919188700652776661010761981388365226071188600483719042283318397267249376103872477998087816840416732061852144630661862820657563061629115391031390324169943088096694122132091135458078514123446553622202085731448536727301912921594104065683799133551447857255064839958930613650814707949732948913671115745031139625947272826246659855215918430608530654751503081341839396278421909398351236806040491659121881207984492527386068582946563448979296843459712762643770818613023777662172027242804252192887127225303596531034135026247552993233147097980647944260497065314049857490933906536289001348039112120872521791404839453457276033403995473155526357917437275397510290631056786811773760966805513892228115273377317226454560757413649803051084155148573016944658907391679766429370963094402493894731084626356426352538780191768811906556130150936986068287182774577472966307227352548236283471705890272328247814264238294473479008371036968581582467589623270971746356217359488578029218258195612785363843990395087687371247583773496513010295190344553797579736492342100595502950693885261222759006821249040563790290343979514754795691078232923156097260276532507501593922330770311253747973527520823113435238583874161317751958201592139426544000590495230282815017810642437300822868846801845890263461091000510490001467207619972350237001427639103747304478249562987959287013818274961209426111882577307777107394789497004432699818363100358207074450440226128476582302706829210657968953457942074059955195575508265920125177133871575347140169056391873888650333087091919419968906152043215240288762656756628624918641364496782329828765295555317529988705665492369943463743159823619448671485293481942921629014759861257589273225352680543329429863082549223041176051668664429736875066785717792993480052094367987718666972254558881328573631849214879015809377252019050325284299221408035051583269409890677637352993159522563891085838753195421310266999805066508806917853169272220458292292495235253229855135251445616100026971435825219127226932782256191197295056042686218848258640833474368371905076231192701046606232224304519094961343837979291717245027887850690515235018981187260764284748931018527901384606597506798482758486792114929754796584132017887469300193873459099428155151769340305196084763944366317527866607513830020702458281728722145200850132734280163719987388189813076619107169805197679989502991046655292264775910564886692576665527398749003951753905670847391753250398983938556476697250790678335652879050370489981434042009259661968728111542534725621243826051786557528651030722691232057728260649518232469008060535558177411733435617292117025708080036912812578821709218140429303547114811374397559626832968690764069829162070319799832471341643722565998151620635816133503320722947393201837629939795327769749342302505394857450707502115195512544859954788774882612715454640685320412054531874106259971438995805361945247180085729004753278538933777545643279452364351293834544611340540956681234959316351372188066911627097064029318743519546093994341940819859922739814770151839071842892379065888868766254569571797195519139186598624953654134778330422470765031348355132079370313360519319973858935389988597606537353512438866344085004656779636399687703444682455896942471985694906532964176338515759193188190674562644061440650894412254009979036292167641661321682509926501273533968341406979267148242191558723919009957009663070280416240076262482976904379275528576108638480622788478097377065183476370435345047451162136542574553719274480205499560476655704624493872048277785757557338925839463584199371545436970555431398539716120010103672321062282669375789787351641790935484583273343662065801511615670593751070363570524612555605708293895694570346338942692869331476017521556245899234678328992354826959005215331776082094676493996731798538486887271323362431221731776857622126067878671128296571478907597006131189423536089895409461338392510222523612445598125706359517060653613530870658606882399210986901454445518551658241690773567974639254207579393953892751362337057002721660084542241373068438665353723430636280784140624966073236703979609158200980637171164821115947963563626026099102767733979756434991592667241748909618391136829305580759300874619870598200970140617073145033124252858292629547703027766510001185984942290298340997805006063337865661339822219950108343488111252314596540765895033294225719399352332697531897530686543526847930795924392949750014854799394421754495006298505985068620303359039970856124669326121408666805241470197437299050788355795171513001507340556516032386180350114546468018866571269285812323992126422089211192422381482310725527060204420788326533764572326396146124061371750966439348641385487486575001134190421550558694221132400505039569325202206431347269674219370846888073547410241492336466673244155201763564374529486339980351472163292924491331848864292005302565778658623942022207214594240876245940926437450435937328665831818384503460491002728583475437780111090137116890198355210121636852874755144759219891320125728754317401469696456144664003129310336098974094655030660261072276908089916452028923885248884238921504305462093329279475147161168594375942816771842206132034268674349545944660332348052144098883253508317633267639261814908073036685757675425310737002323587542081023121588973070646350973346024210351061938785323694535907132228862703328650331274207644606921104152096681659217677065186998868536361032721732210537847534522355586650723504404715686871584121942880462118427882626984190060122541903996670666459795501213873854600489861757066585761394439511866464784137009900258855123824931581318043253126820718252125086782740956409311412269860225690159551741394962001177675701294436459541599778422509023644495903406250830869904362416678769669136291236297198066954142753983137752650259636440011493690563366829865542312930236876803419992641354752606363669121472079493774689177795015565644031864853971710245719683019807176383023699228779843608881068216156359516535480969575247039868934943168529876830235239042035903089246265549450533533105485889339582842981519910254033004424841848727218759337716110472575471809617381527867589588855722823179704951769655277899547082180722532562392007900645253736307208218254194741178595048655004395450722812137728772522497902259206825771531546145746666750101316603405151844945606902422309150861085491653415268008479560982381602596918651483404408125946441325283160701887012643029710291835498719833186801801210130526868605936777339668939541916193825996670166238693864622907933217579084672420565399237983650290139235876731121828007723880959698453831949659923222163626718753762618845409204191374498150652635892991496191097064204685388270366627220407578098657267217251756648902593247649545741024716694154424765513999919629664613965785249121005653892097646016559982261840245179651436098788350353025420349482835841211125864208898428154408165997143169530719702946511297693694631740413033900791189257895895767398073841529459671792477406365417752193765073946311688043823901369307057382237160247755362207962631855414954813396642382486557034348433582288370006822170303608721296189100702164709539975128044421059432346422378993023210847104386203269229806578606305280587149379227141526181881772615751126650859888260643689207478193825113900797153368518594339436790846878932011809537553854700258050733454129683320617444609465691788732805878065646798992377649114935438519054641422670051227602021239637093698843321805729405355557758864523905460507869915581168030471008574946736822755348738205428040324720344367638242555721921672606422164270193784000483470222869614560196882078206649767390863809102756231602056254495132113796295232306288639680174924642780762338779348999054214260274031700744252561362956593063983282331302173898065266896263465020451729034322801383212223984200648662189064948150338144803067652019854001171102053549644793741710479909817943844003177505644524615272970966330598202311471547841744988346219913121938085834064997708812585528524073532763398995687338971388550167867330088543224659764118086653131968272604862444721510253101205175838420999568052321757615927101439786064908693959458342542621111629306713753524039710108417799422861847515662872580245023766055184993983876115633205665858595652154047311348644808946806469819367428607923885430016650207763454381387394837878893511723049896306067618343893315008522644319608439699024297236830912827506763635849595651468664853239858201754251222200329127340437971848366158029558910341134959216943819524876462504690591489110965175334148147118118058814763822494946235330561187398617869637214471309818322721842653222908063384278308603684548683585968568645791046731468066628906856847999446998715690050356701776155934921368524181566285836835195434373766201329177488861860360132606508903653617220578578937689587179542516244238732381794170353362730240601963293528364680349177628673091276505629226785988777724744953556500336724026439946437000224511417805193997581001352518027091512517148344789811060380233924817319346313751376160646110727754957497712568487507790788095774885445415600570283753622078721292149577872847765753712855218266987007451573283570855602275327755483584002344944944893948616006704627520675718448458305831192505252746474528454288770917305320377907374336195586450344588741311655848879606248507030677706260337637565471061337572539860608763960532733115319795825661619751265514032419899686834916629556377041312568256598598078882549381486279479206985992790890363351314348198520612761323786407844533481773949333601258560805685331760970457845016552954091035519925773642626585118192247065400534247748409470379711084519904876570200574017017991847046016986189492717167470423803639316865050871277594076547093092533322427004379700998910172957657134186381208637988526141475589933078182796200955694064770432851174065170300225414406036371271556461461619870247820066678585606270136614709239458712673014767220006672902173204669826215195731833272066349178119416821707480528230020676211105144362311675720886328158151039490295077027108165575126260575526090608110414837494082775303285833628706351061974541643157091806046221105601386944384993392851126784348708137531683500380178258224214560124959777391452665653762639885161385283166946515654702780974936955042070309704847918377584536059008665694219043279136397317744682324155709312760348844732234913264857039152883189369414815019159674364992326412411333110581509008109272595609762024147687907404648306059130064705925031011404593255608541104448602529910075674791973282029305549861201798305625160939523365061765861312719510216561304127030100201748682767909941885262728580507133638990257946053519501257601171106677578937851494596290409183318031712341705180503273819705719226897383753081436911893485400263293066489399983889236769685724158299519843043406979235998226920043055632904575251073496616041561188606727163492031592824885874150439856284775192703479564600705485149417891158321295221956917631845212991829151816356613914441041884585808653648267812022718302329644742461784883922111332710520713980864545084162162661542673225593922920459012780972411183205550432724263118669824849133900251103310631520718468001351455586920154276822577151549739194027905196814513920092747166037309668324584745373578701333740712373415467583208216705860377724237293530230942441669216688462341497501366485257373309468705615699690059109661875260631580295744543380473477208934960482849937811397488164501993963952731322902719957739730953626905301252515342173543188501031289715604146241198310218564391528126357094699129791434888160056466983851936362811306052443778246529993129816134452136617699689545840411465404802016372875931686071722221559025788974525792051155033385449167807788096021703786322533343100463335411815481067071063531829169730282060589103274431799634917519829100298518455491451141244302292271303908131000988610274371079275084013720410298766026198429533598579407845273602702036859160238272252411471594592318583872422001836599538989398079119452649008387909492294978748943888406038419842989267981206138364610559110207667933275380846656385302869068807837253796829173662246863179863612231793544649009646164974972888069498447615266314158497245118727251856774121848257740167930542602270384375015175269507122671767720787737474716906532722796510471613801403883144757780583940495631553651230992017651060661794644910679879607111136841257474602164462383595235963061061225722920107102298489788951329725295283829013242804113110639018789303136133912281998026032430901377069387101409471412003030962186433221819063728976304336697171702219775272566548858613881700251659630538149250011973979275632688020686956362983490685337343306723972807408360985418326868340782300180860158764085594138044435403399412692523263801348125332684261959230668639648609595953016899834539828974315516578822132749701670701730996673852218766511057614143597276405861992824436498350445920830882440982408969737796625050444153824185407245280865996328942166352769943140989338619106185030225070537103090456291386464067520963745285098543106962967797383387902098242720252628348191386261380025750636403915554596227446451611704054762396011133685498337869597221553695659228214100759560720000663193861236401294920860898111286405894872928610350234386824621607469379925711196867675458805447924277950879255008920838661661687036734342914596151960755846375434223195687380809150850330365044105201867920959955855852451073744257598247337388510912248021520148631574048543035245509043491186128785085641020125174417929491542113820160856825710499054755827748570423519232765605032373354626783391328785183702277079911981458770851452805482432144877340668326017100353680202817863388989769916576628149353349668564451705400778361265193687034738765953866246963216490493329796789093353415357618232793284087077036471345410952333328330386774249078008534491676938155210368825268621547334653213035561282149394518006031552834477335712297756627102477320148883820548358669321777893147925110553608474826073618927846511269764317478968452951754609268675062563913410569740913392888380779423500499116659756361191217531102911577786664702549396946479943043915529774125407206645951772276969447585146557335257269593365798428816987464771183967727429838461430973480372734459728007725409011797756129528579264489658227270023718277439081472293545329485161811480196433649005257621023494637663051343868414685197818943389472042347368982266559253592060873650073708593514173099361103262655161253953396019834644619757067773757149100939396678400816224179811050404653281611789314793740071065144923859659254769032978568391074753946664303666279511180968064468870209779580898750309921659014261616295911424765798740985643854460647527222862052425434254118980309639147262753663121753701254586651399525147040011015039583892455359328914456505888404623941551864641213005425775754776295123770306739948317723848578799160251229454705328876215826235339935164723343767265945609960649671586270916346179302972174415271141742314522704803785869812158197756650209762501039056673696938715927112434475190617611912486219760089273492117525366140647501565921677373232210963360765806248809154744147776881997240632240873949518919758360716276096991018598305586926857313610230404559753822648834665671423535392074045386519352150539554710215867862425367082612080876110987452996623363796521747182846363587691710524633963375346372246108973292466990832979253736754469337920805793553422390462889256106093200307103814860088278406325604058015057316535773494569035693579696326428934290614713108340535057405736671779625387201672398360128779497799147157277315565995091934906036994993003063596525092536551649369266829286711414965090086174119658637833634423457742044687755444132121365779286221347297894947997638749172534955783664476249622166951612425308503587782647282986778044919764440031610196666433453974371563702698743893048937078606759730765330918241095800674956374554990213061547267129989708098591205237518579891679500219689472644303296298664761893303436658374013729757504046914303294917213470735660424541798624043029357342737172701415886433844475742554409726124075047889318965904127411432204678992835721316400851366760912588096869453880257165306214241258704580426601171808520443435961676522598226122787566509167972925764155215299404885459708542701143175850108688818455754071127981317283518772085496392752464106593699060338659472959854112296670150536939361926190985412773902621142289602683668157301288065160528910113335122917272658675042417038809920463009205264969640267330911031891086018604378829336466662838796404861618469602650565313000190971918523909470983168057389381405355155990322668474252946883334261655349283476339268072867733603819580553186648267512538425083875923484753672440470053969430777863213999040725974140859857746872662719216885878944541684602307848526359600089639729724854172199899446831790193097633636159647468303866834914678511114366010353633282665635759666849249678592904261230636380238454302269495167243960562982612607136345123359953142055493604506088413862129663456934195983369355645201865345060922910325278944665804961880818274342836022841742655444245265085798782861991114329063967125104501166521374019915116772239145745719612502402603004055470087241127340042521506492349936286733968736504248262194379433104681145368055775266150726407115719415428442658949722180567628058909133954112413828647970088540073609541431023221612939224004270313497271274943357630181783458363389401074545841890969479297671537347698310773547747606258642325831945547007676448902397610529954933881188888225851449369096527592381162684119967111006795721949982127391647174473020560082825748910383570286579233097181984036308472331242336163600523762628839522747494341702485913879745456732403179403330883563843510183859009207153559301378276365000569334562658926774021606555276320721555135902370753145448150341653904129645373250833491032685997681844367764825315458466250502407590200898635616367461538339509981998759092556799364965735768401174474488136353916323654549096416325200679288189661301783701190162445943656966134993204807957267842883537086730018958194787217363197856411032351511213723279384199011443096248449883522734377568743039110685243185672561393110342406849474184181522736044319577352434498641636666320253504223226374495355373948488392253604732578930209719611949881209468812968285578147766737270934484979530176487579482688637905333607868350858218336846266158910581398765079340053105658182443640787177383913304785781692798970306186062121827711263015447238948820884794574715690832640447507773106676839275789638681890023081115029279264246068018697989499347819241075990260470088326488631046762773622499112462364118056062852975115824836804379810302483479367269571284429992350499269170816127515154667639828020155592900198950092016597042043367457534583828858813208019396474537974950543372113493985602006071006799395462297031832546458572893131613441231671523525842848455456735829212063288923157123967843840510816729562675224440257349725822039541466820246591439607707894294963694756785390633421072290867055740614193615850549242112888762208431170944689829264217469848454683294481960223136045688289126701093421080411170872836661704054398233532312796724191343328318551085170320026502881051466377944768457991373144134754102968917920409744267820730210876769742484121788748479279599383920647399249384053315603026251373599539140118964096361251873613075314115776162218446101790211039667334955577261845041018687866619965884283181316854322152506292556547100940568495729070469080735950638339683388103885405898232497911190181580615187204635254791967055560179252614655349775316772214743102970237842642588703953416769659323910667841165434897382694892653679009087777523394656803751360714340683527191263235400787771596974012396833963523478780231654681069862368070968870864190849488334168945852879389796451595792476179094014584700248089519418061542327782710294058758730916537695957896590140141513550290948217423874826859221921936231451358262517935597263954015834035983602487745858771438533631588689044350365588359307848213052424214482015889821083707595553909276724334544384824817960037888090997908313227793408334095542306718942102656962914912341453637680905471622642283829978902250104634123268310000997365566965979098244899529969354777349427675735613102525793683733453469671235379582644035378829305470810753593242037146588814186435684956613145875839917278187885308490707491528753296914046399114859429626631745798443070196694134509515273059369519781073559554481030321468774888291537231411417740191772310259668252598537657936062407187069394558823433476551754460190065119372999094084488633461787042883677532062299940527945371385940010080630536009573120133128694657816326273194126839039495257353312016392767328747238683168331875663011793820971028558173133786758675660012822553543319254728902454340067765175349660566636238971720424546696783313503416143296654637292416887853868665531583054252256761483093378292831964656871462929543837092095354791015628387092408040372735003322704518024455302786464145107564176506158683280415765768077865313796480508689750166548023456838421063001671738901873975420637248921760788759013017251509520040347072745321722256053569584711347766664783400663260640463940815175458352903166325327197720850918106883537804893375839596115073583106501612074350456078962972449340378531830095843991512610348772939858485986826677738472549221001157047080042041210364492507687110222357848901400335951089236111120610362146938772908418315089568543917869031514540747822609676783949006087160399008621070387733963851136812226106261782108292317974519132329512148148619383992546735376951375699641097383320771867665397485824211704130836259073329981357253075302979139137247427117081620864304785481737424853878248683229542271255592724622835077470537938646910940385127580844395738919065584478702213684110807410177282541504171869514100630731204605924549321829988279206737176404017342742799495677627964904645294796518277602583023440696380285837298329047574113290563227578794331419640631191384349938128107315359006568390225158149795080685845439303552377297266388716272507821098745863053321918212507224931799489591374904681798468366020684055312510826387573020245857929104872202353689184381971088584271233573603292655769680024761693220223047427418822278422902040125392700011730043379076718966652022442531841125000725343184109914547203696555123456076133876258954501526011246062905826053834952140391549445772788577420234297234115739447744275996971673036420212809490547826753194621559762819291438629490108503248772478658409662101708364761749979933375576091996373187305456236583257383290200131013167923843885544840716556374496483135889784799696309851842162346562083522604393769229932890213122215955841258824612739673638149893134321045473813696619127068527895391946398196378675784756661863449014296392980441097339767293217725055070066586714790991137819941150142989519192673722235415435813461579195182941170184648308992434285790911627369002837522291461272341848503436882729690093470797102102866443001054174316368137611463838247074164487152288649251064162006656335305467804975742769829175928583458829387113152091990917864111643109670822170476713920686558936543630003630799731195322505413059530972834615241656652077674333749894235104960211731339998064157960737619866492257385485473799633745097492837249454568820904997136297670011324297713157365891161593684456965982238762276245729280430574007663012495561946805901680373841534140237866323636942693807991078611263767106111034616976396666004177457431044681479257716592631974355871904901012582883171151254460720782542826331746084395026447936772657016066066853034243217321075202091675469398849991712365578034925485910386552985882674246192968407722997682478072253667363667512576628810068346759527282932232442824074375708143551455956098331251487746851458868207261090942492712315513289313168880497228016087031536113513977058924704500957638526624274517530117570755542363520841778798539530556448969891949250685618439484097869262143233378594630434669237805304816581574775451519831699104322457670983621286070523374851935282641800158888449659606838708136371073140139617175247425754412122914396856095746728062419552653794849891438395530460355229337630944966412643186840045116402870366553363985205369590140473975790075942136285053186849005157118946670144310498755011752801338555535170086777860545104407137085224451912236948228000138492363124996314683852984122567735930216765302215699232581469969960207380477186007374730731617326706011462159624402395219305916778238228528612655087369989746144061691399923492365145560069266723106854279738148502234536477341814937777386284118798343959598496064065022938315237237910434185434159848746033046416360748809130002640512043133363614165712002751350484617206678880034429520723728778908508937599467845955840327554744957263157754027120545556390452957607683107607833884811731568759975900009212307055808468408571472115382144979164613651336713496712585545217377006224633981177680819432588981959150486975303327238386686672852041920176229622103399391445086597759273419776971172516331464367979971352162606175018452622492856206654452415199681900680975900583757051146285780976210534774291460068491532524874875962979880820695339844352759620706870359296404190953167295408901437120065253405728684590034884225522275332416974733459921358960478937624039849547578717797227962240320930559835857359490822467887483557154253342084074992724442933375681285896976936635408568569161956810078534236847737365016643244525734600954635564229671269481811608240958790903593374802194872144079423151270476525216046910440814066392930944028395987975848637919802414197500725070801820240397720928244482493183087994311402384676287493725459922187625979590083768565421323849528685003790948026653523842087517685925709911391484354774335683392278522927748125978357549991159592045453138659334664178922495616852361190992111936341301960414233249777796364382668564505026969296872659679209640303589904580588522311163914309040508062087527605193433184488072713111716685343373814020074593219403909002331910113500932726151013802169056345090297085877407574863680409444837186575622005229956065467191321747042845532391490146638070601559834142149941944813528517145947266116893332812482418576354354714028162076117258597470927816208722099981236471500557477989542237537277331055876384948140263572464684890664232513053307805240226098077459962051448544224666531215108573095042840346657627160364465798548445488542517706769039135684086037221964617999746276395748529274067691655094688239688354558898286633563740564486492032213757108963082758819158292887413278122747372099362723798761598080434240463675075261836688449118989305158374781340812842397899631507535641746696617420831849081035268992007021528996716333245522105723221678090251454552179491023186161610205887448324159811949573516323911867365135485155184483395104572907004863600551971059433711242059587331098813886913368407371862272785428557526673821528473312414000417134533462329462383609265761357918144716533264183856888242423692615965303887629132490418732797270427606935185321905638649920528860471738280205437042182623332407094554592165470666474935812440024476073410405977311406792436217605229251964053533556935797485340643923985014831810197417665140409097230686804728619862953126847915803967387583227112328608843882958255127628756840462383623738054999540065717802663048088112344720682362683633194239329184339949394227199298696465002707283998149589129690982721756018800507468771374969179559539095850669388536360550944165038846403284051917928917089511216530819188472914558369395548762772344914539235317172961587044718431706064967613868597877598492022483199012271671953790113551832087240950971100460395430467295785246189928822903317644807692919277617060042635391020490099500609600517216894863840952188265359146358347837786186410148562441966091200147593914899627892784372904001724574556550290010933196747348309527396488169837674124931574059069258187968609493141383329700588180321206116285350683772564088084297018147444841622342546210926982166117666836820199965797806447935815991441069274592943399358612556994056394717959469833833982370987811996006580988068998491425612773245173338332964645429162645877643354167137242096266029303983074223076692138553915467159129051699496906646600371966273088001837035325008887754055359182991823675573314236025044952462909560558865462538522892192404292753309695223447826545011890728048460326925170126035279438738939170253948599956946875860688173118706465154404092476844140913962306026867434435502416592078922703761662270692036546340179626676374927760999101394831909332106616366846203644379790323444549288367627556719326756000198877489693315080759223570314101510116494808763270979387930123966989074007519381895043443270988716883703374729468478518774055062969426740443993132734931326912286387260314776591281109333958775007101561285564568848690891267092918438184620915455977524811421549486117735543316054492571601530136358029478556356615635555522773479826443492241101742519415160441884418719296161947072222423090975076412183146579695447152108937871446017259837974738933000377179119566184843203800655232981873003823587561364409837071855831549936253170850561208889277017145905658115725533908318488742485979192061829047071373133184790705539357712131860022733313734537406739972562356873189410242570365704098704660755812813134688918896618271036651289537847419362018653061936478275194518373677567315261822355036114701281033348212987080120353734869433901513786450311873500488045508077762930836116309627687008141266058566247902351895905437900337689060834646959315025091479990971861317244468590988350422799042189372130598467641439328254700586166231504393571316679054058342806291559531153278017963640729841631140786786631041330219045027742709806679978986775719846372402614411692772939389187547242336715307575707109492558123126286866957001133021208666581099824597575827599026673609904617918786481316375862992318974988764876040196604306619035298239397579807095398170535512593372138750695307542271115670860616758081975012640382097222614055200127656684814882286302745136500842122608927366374904719468031081468634247612215148776412470871093901133674141492372256379087415832819794213834453775933504047708670250116218497221423253740284769585520980734723537076012211752160282429521611892576389135098872835349940046121896489811648798331905170424431721070157614815877319062612445180542715657602125241775667158241595277393349617743753267013508638966665759895066280252182356413837065101062916447831676380168786982537655007342193563928026726730245517503626061944007748132430357997009808691342665710351379602413433073059223368217993341583120987257396680594489364326822462177400106915378721645162422378275739936137973645131999018319259441488718513037059359764745642652890895292760422507734246571684885167343289639706168584148811929996156842069078721865218504655467161525316265176518079246434231906753497778353511672738953517159596341644007825130768528636844796253663865202552950074757380983942789444826467543533551992037226344714513707028524134918335963680917002502679749498853577499452517493433101902012563044737963264525846032178900884201724775819987273953404635208625088803613585559368276286168482135410426094156412166641552821948682416383477796215153780823120602697073916442003735020984212006819631173092591552019542097875340697081481035399035484543121562964027644581004371353883898844988801451380310929438334577980354403512366887076467277537650703645279315678068269592135308373209821577916574363370946301108475492199972050706574342630572247272240589339954799022391454605375005808572826062448344173348519113158567412994450210125459369085433238279527023781564590057350987180961845200243030071418237330302734833684642661221890361350160032073369918848501312299630289264746386940203776129645197631044860045884061860859660773022921271936990961381484562680235552148292890730143268646792362109306497662281252498912961164235792171881870919540731217881497727829834760353729669081198112601903200104434548338370010139306034575466431175647809117401324528239428720614075668207594272890894955878204673595877698197937993772421411168466647602670350164065837555094819138606119927246075590826032943848071950922630721901020042724732391178646767991707809842350744543002676017017413693632500613040941092912994005797941394681468824825521321488476578502868995448084780633342190770468030275065216958301146986315540950971308903586789410412192774919403372070649377388123342215251070413879772206506543617910692554698909683068768074463705036122376548404513290355192234654596871002563050346918981785183434665697777078648952266206329934909347208740198786247341443844655124641018184169334659525916287554002736801316326935440888586839390324777658959933960143014498375096388429311160482363397138378388707081285856422323514907558734137366838590365136041588241386753192437198573855368255507361560002521809380777225126072772053365214259002714779201710179836753335210591737727196996648928128113972049903620239724100558959482116508495571510619027607912192029386497086663262746944179342004835147464381964601204573854780789222763385346681076987408162422317481798498742863776155805093836427706354472274592053087308117450290929779337467665626960000046514680735217598227839321372060339312795846292570176052006197582020598769724952315562310367366138211221137338609442367427189550905640923301051041731894363971948104109070171382958713496167052878591511284268928615371660944990258744032656146481274794605080986813677463770970287888566957540667221453429974902998924373554658247342677690578447156597762729261677283708714834845015105427680556799888400490125460154969158466056175976186036622113564702941092883646687131260916987944061923604102828993046852688485228673454035490907772076244969852045369157630962162775689115643165162658146226923680551388780447662746641397125913792158391686074989128451789562076681466419396976213508508310015641694299654145730395842362122943535063077599380645763150543584099084314226903142422152379235219381178099561259443320939978485154288119047099367318278159054425330144080531013914005349219846966283008771803419633011480767968880529326338419586662521982077270986727365589442191431709314581873618049550963944536425768908870309881139949234587504722202414128709846382348186869877445541131277032078254133587932998671598184414738216297954139336062067580032665944317658663685573388846939567224550070220166328357259441541225526769398018676638739194710341427343622601926413896534881048213699457288959984281958891672517874227895640934321730482128448706671203564799941672461233989512084985901856757100407660145563963005405499946921283919878031170547499727021744039465469295351541636839921118062774014234715720489206260478355516679685885683975747929294129562138599810322672446069431321080791372519685773433621483449516733787594335841641548995787897593002988114755500020283821347951350856469490349297789651732760845089328097395490056098976210138763664554460951311235143151448360254162224291962223835991010489956993467200568955301656961516251349763010067596998089938738172636003661552482506481005462697093182268522075355170907500013077687948076612284891505314863113921917833548979873708969051544594120029258289868561488059617421724340363780264104618582707380571370005611169870063667844690927860496489845330507260469084917912439788675791732313787708384853059977395336883821581478432712935601909143844967846537797683935568487516050027436125268931954256545073066325644566771155546918347374991976713091358818700550956596242785921637205470739984509111098486892053865081305430373064839942959974962590811406854063340327915513057837148743971703968825063231424035792536799688303439533474581858474726479551808292324310932690104949655798595085180482579865328045532305295244933465008017903505882488348807647628709926028723356369958170450914396917227084465215929020562402697477432634361806827190953280612361706300182533475613619514826502157644758424224275320802095996090090793873826668841251616003696938224894060513963353989420387121736111574348358343614380730434908873767299783998284369291446451633257046061670251003716818400794769040733240277321732373052261542713079081738820987268348983212627134147686405761215911386874498633497251926071465460825537650576560577793433043124133745283923079686314692286761704207507822921954079230267230688885290225830047197773669969384829131058722295627038616157867691734993145071653158543298623993402282833487183619829904502527542467416161787163810260086423320695534360344197725113539558347547972909119300774214304715085601334306762307529375781524888445951355950111301954650006628238585363931179651225191305160821358731161884683674687154108917767477281879909658237144593613568774177975290535774718648961994430516135223683340196825941618515483272400452901163483743520154490173021256962897444099114045713655111786663417334807707792780044556981014367398436123342094909199945586468443888019767927262291381402997745544318696633606750815254053484415059494644760328028235314206909068646179340597269144429441169405694248661411735740956112924189425777774144338495391990334178946090620169848876883458584592168685361637853923837453138575931315535326376230950244752854920064414162538213347090961493756086823884601432999368172429659248133774555505245690840231564902726931890764726837242895180210133203073161816931425400692120302344893522673082238819212597331028489093606078178179000593571827694485618787591956457541825408352451410161116814536365842544362712626332826795593905219116089445242715346986750968232151118796157712062134864166023326347155759181204163121146084758470253871940370227231516359301114384438855635722450072329738072431811831918249721416351102752766846584994003037956990389405467126081812053579634868781186426532030490354464735114249947402278717457178992786215512335949941979227914458246030894190182709641921253537381353226771982329732018567057266599341296051459016441222861669790709287736584395737439465268982351453517746002340265051853259540738226459113695541472563690035245570055470219289151266117768897536997167605833725203484626482243246532201231601367583147282051549924064327058620565937098952649378674175233562694395514901501453866285757350595949733174537229257555070128380190308668223517571361204140316760507371380907463571137031088687929661568000520628196884047824069466699824682070057346066671722571538733575140438494498400188428246437895723265799039301362266220248049265296247680118648345656934881684236646273286619975569064475106061808013508510255137921042960961140863753961686610143784650248523608854820233573626168397725822665199484070229572316302514381860252982429528154588175342929894136165564184880837839579427322144532833391499754504811718296623412356923065874955289820427272832117788658955479924633910149217772416564291575097423869694763540744461739919593651119018769022686739527235082085172791132192210220333408766002480559384032359559152069444688223066294064258961941368212042596537684842382922039684242066333991253664501904246646018650012174738450597514045009529667255754810037526701240780955289881877143676400306702960807876206393700982958920337915885831876515689260065396044910356746420289651960330919474858807081321437985019899526367757909933568074158026968087299454778576743464219471798244118628405572678680346614468464200450184067415442438454058520827322671725271664777809775035480340952632212316686314893263186830554947383591944096682264132628015173472397045353355147377664206699792814056846929776184248062190608990993722838233353770551241349639868070809541008432789706682411780554080341498203810154478979784955908993332463193179797005855622379470603401696308692237853132051273077813001320200108576138586800159728169991458523909160888004766336236300250517964018348556404305006262847875384361248721131345226999047339019708240131878076252514927200406784205616279812776380438125958213713924519045775261048496400932237246623379338386039398693365290426776745754179869349967750881899236321003933652085562650270436699196656656653966208074621279588198445415037306447854549370044732275956353340266239717607639868194541934016351985847839892064974016731085227649207895118295855827932962907235066786750844376986725969669293326565122117360371065496030416338682270564803410003598033767833736795790899641791978866439485266822435752959324563750235784685688592912087092741330269216248167274311222075473246585231357413438220051661866788161724295296409876885350040835605996200783112262011329738366169438849921395174676985328027691981840565997983179187888141935826210192003187794182271056151737453316732469955836162643810624336707727908631503699313983132894572951927487302811950586139106176593888037478451102706160406339920835483953252724085894496364748211363212594054956838521498586621830095336589167633655539840747109241078701101651825225306092569192243777391542978189974374270112539838484273279210977245005452956070701090171804251695374398845260818362679908265947776963132740309452875784279852023247512665143853925292222460038052384952601614029600786174068219075476327716517868183902472391128573695969217783633629168279816183831715055534189993184341222787813700784544663117919370570284025044928414947413414065298875530347885637041005931856841895025958148747730045903831673502024447072911173594933341269799840707985445160810003295311206445785030812770586925360004077982948820749706975124835933742109890531521112901192981770897515465398557644883308121532267132563070425228046347382442954495130048116909648580916073792403171390570642254984414067202157958777608177888296892744763337059103596352561299753430125258597728610498399742981464824479984628267606689450214361789696001033324398463150588528570277499150516540613385046013463211740048921397397278141720251875806881743900484959310375319219106160251740806840853415117101377649989945166370469973058860564198557561342120779444185543151557748869455069810916649635169017274566499870353621278914983776929242762939563543611996342121339063204168681974521808893178004885974755689483075645839243815670081706581866089627331713237935966093300856260439645695619449893284567896612669084070561609324658238164495758847078275555513952910677719263591686687915911637318119624238373112776305911450240027547119352588244866791581805358484073517000643919439415655425803505009799048559866322350074856606656369977894259408946809843588794760803899714981911895090571183560529760104823716035800013052819062119768138203312868162059134349772932759230700018595223418212220946160087578856985172434588710537596227541444545437310626395882237088309200917454512620139394544775891850312321093629127711678291965720012535177759544546735693829693351764964528704615646427782166470653653510320647137013373664297295732785930681209590180766163927128753540128585840419436927045978488632700095987147915236872427798563087360523891683435826442038409183165780997967305504487634619236716466665369859866792966354461784340176987407256212006562640885951701018986838552527916112222757719861889087027475918715590168019612129002216411160183196979821525443491822695536824037728723283222395607461016339573110366196341194798865089804451821753149136096221822291925388617929158615648934558304619022132563059559082843518141008167375583122011761048690575913223926039261848348147491062254248265037643728881367618514388559957156813127088130631269052338864726430426416723083790485273493190128686525663547055591783851766259433223560474868593236232256980422349423999744959199765841566762419850157411360038091819451768549099926197749821850381948951078219963177739638325782948631113926239595676790221217260555353231401402934422645441440766955657421823887936974215857386655400332682627888873030971865885915007286774999066417916001820267647844566691465575368742954932540512527536753981577454191226758545977476566729998001445618738611670924704187453528513952426371543241569598953231498886897726151829941250201508286669754186856973925074535648532820673729186718147097833888053495322057978902402106107063661409916211624286407957730603420695206276327636759259082145188315888499711693594471247459202004384890430452619216258329461689511591592764634642293476874855672145216575003530148319357325594273404375050358151688462608580300821587784114678110695990610726185337312295612112396228802988646464606357229650365076208884179004106411780265234058181106337454653818238734833339006687643726262944186001300577954680983869979366453394584404752193584436068888244766918086664435682564836041414937003445683360489731925899318987093271366034398646805781931073395396292334559652309480175654818798497488807235127265300636192128415301383128572449087169640118869698297958105261880207804750717023652074486921980086974988626103608911875498070791566667420077117003035066481324687050334670130108056985938343275598849109134365767706160279257073938821239912932978368435403749675715656240524726849173132529697304800306359937474872342247343502806319309303918280742397935049527622383883040109462599069663153153585234847392339257008796128370015192298052255594283668739887188681354315177500406926964900248562009638961622773367399468247051031757193317257206546143251461193145689079549466828927723152465284445782074611367713297427577031474358381351181833260628108642568702574792462909798777783445188574233403389643578740080222270547191514413573055710409349812941048567273895817762252329431003698898373192412162340180402873499494827497291464329164885013079275628525006075935448260254098177460530615107271608467357528827404760362118484031355331109998304375497864751928572596319093554359579628715309161876408822074977582857623362499273309833635276908244412050054048476580212617591761495133174988383111620277674582790575226088122886740750386248172330769319395595325251700766152912353162570203620010898321255388345741235115474600280837902339834580448765896950167622202064328604591803259728750106225259340966263877648962676946392172395317934901416642298204877885251656185842624816899014618076799158558951820461232155124839967754932873457617791358833565111498752403455516602301039009598751453430097458929067779524419767475913744718539827706956760521164136115315481269496835392111082884048389726842402860864442699353841088343121457182573998778876515032638166540446189499901306123634081327996662902400241067546825743561642134035501577377906203418307025791284305790453786371842476814142935017652534787449969443821842735472731331275837252165108206445283024826050192647584851423655252611762459566108073890743752190576674973587745129514361929642202687883169639315316536036630347892685392465717760124247344329745892590179873403187368716335037859702406853722228440778252027472411920970471863912719758119318040724473138993226692881894526862130675505933419353812954008886080980778645947476239352710301598422206974729614061853638104270959332263841832602645693325341015671664820402190982745429255434369486052926034431552211718036140404608279788362861790003964389419814550713671442297543525881246476878863052217163246236213711866217250380128053605171636260302431331339981374699722307846602685827089309885073632535110950408822193266996534376518517206696056053947042775558370050974050993229991805463476743324399508060521571925321799405997252151581281377481505442835399668487342073060450518621827560563357225971326046574206370756528788271166069179040956236899953761333097148497849003175104205354988085257283210935746794286307308610129170934043800422600694235704203447449303759315930105213475637628860968611236307078474699273227729152770721080461937035096176747643700855017397148869002644579979707131207153895415154275995308307146234451221354138229632585864221145875529288076352892689874912493755121880030257853529886986853609120173476253001088228313593053303083367046384805826275880888859733834330049847602171334293033842914064906402665378441255219932511621278813240009176581981889820639907406666691280986722417365315680036451531264441623041981942791226265757370912037937288725636599195554075379497812513852402938167795715127264818506837660072929596728468057887979820623100554564194247422495329636778355256501633194859670676324215880235998899164099782604141650367570001190767182354531069065388697289374923921121357691953336114940156985197017719171810732189877969719530964689172656824237985549035830253696683296884388620316823395216547312991818189078216064137348873450386696567005568476811097682762054724884590423642092061838038282249253350904238048243338129769461557731121440917521449290621944454901907645495448205190952184134565733476076254711972467657312725189590411165604537207204790358633296174013482986307419947391711473629844587339870798021763392797964989487126284323430675610653061390446097330342117962605817937547832315801703840952253410427410862018636829601266383935768993060147251752168696600874515438938008962078829347785512323624974501307622829015084062427020191381387506290975633590325455482954452769937741782816083932390768132029834071227535580086240157866041286455869966776253676681123474768019317918061738420998134252000963246343645861847629835554021334253881430522845382474605858843713146692644887203196958606741634083694221839975352557984788491844082758044798421942989850460096405094641831211919071736157034390738060357368560671096884299065819848774973814237339666919550312780946233758146538217758522490088043633905974201098140790265872712736886348207435467053092979695499866473161375901111353235025945401115118445661107205420175384523726083913789579722876260780916709865588915436496209508353030232340463153206829844653339352255913832127957581182797784206813129326594339407286370292205923206627699533168453498022236076195130993395665154286705307073441009547481453235639392740303466631193812997627830867364053903011299992254374579990085132588257981475698311903014051298337921886241531016561422160484985033355460412622398844797154915027280168082707178880663348807021898816250510930459559860513335174045884648279038180523239936842953398346545201565816054677242550726753341839941695460605707569433636689837117377528916217924305880911985811382521670722125219412382509096864117161835896749409279494429281840659400009193812953100510315096563652573296682405776341839622082496781804382022057857668625049846009084145268990136079307061562603968974040273216472397197510175275106801645696442907088781861491415737015306426014869421334170618518386669823281392433418930962579318983615799648332733872870378802380037980990032803381458468955975881518854475689936779875399566291248190542914747802028452517090935922839515798586764259855039381723502905964557169156116634197784519550782954965188351395874445790488495106007766154260892237757055960538377846920208849493631941826317387443801695214601625450058846352515352604668568934112545530356233809728769673489553360566193143670456504118333637404749783561312182924626093656597549888226644155008864669752259105524329048104908616224592316294718833357625892242538810543119915536400670503178655376270900368396235467663217482419512367012462966289225372989470225504124539284649363370012909999711026233650245116771917384154904193576419518138178881947854696424025263914366515361021939718441315042094887204149357708950480810592264526520852417007906237990350704806734431696383353873663347469501144965132506934709068694416153172706671494996241500063608760347520678992011624932914888681378659980492149653003899004779837638356073281174023161495295486925204488971954909614701958882591050008640236443333786470370865992023488864769681512899323433697532893225892737966892229300412042363938958165793751164787498500292512051527155715805691468430205181112366991404251145577056630030925373234454230121163440990232452222968891062745653317158775304161307124192165353395108014173379477450843746469627110906557698350966607122102111790517208895316865609998124503648423300456734817775767605265143930139897380137441005496578057705208823228722441414661793031924632339455957738928308312269644362801371644051141552814485522820895724935967662931622140228510646298157011961234557408190853324395050851020480390361509222451901137610261506366788207573766019300448882077447015234005226918336587190952430827003099349103484287496734966293379450999824723686161180248474227121032823594525915119411993102832060004490869497486797822352677925408095915100334111917243108899311952140415554499796951986027030548976584331564260321469478204696496076944588535721748629465415738843754829603079169766302548762829506496402179839781303128068815154745779594840735943343008533648639995534615453941130220665573580170008755402226621515071986057457328229761985096536156168568878258451219822197746339569680615620998127561931433580316548231276991816671087265569671767799731876675388049725561729472712284472936028329017560566056810627127240091382992256601769737234385579515187474312434186892940640365677568508142847223979289657880059503013300949287644273360781490137558961380283559231594766283865352127119929973874101157794370999801366172973089473590992287126549249327571555454485338558389935589573435894211162215924475450634070985768109530882002758958828190965604640699167951949999170374466286116722783032183700927235315497449368710091088788041291212290530145448965416718337860758229851920018146793487476731699072112511683669999331408275096172272814243198008918051253729541524869572831805714526357996351795187566928037740529490761074236440037554951715638951166081415215036530479871553715784981138353320965014627207975476515737882702292366936554541040817484940577235730461552766238232416149282890594574990620868917408617719599974395330971074089446159522229134211358199768603403064480733513318947266299706631420173327134734076155653974670562296052315697523468461513325984996561383989419523572051162591189560173098228023228820043218419799264626728980873013069634123263105340252838436710520090775427922070755087807010646789801611988112297783770322311387961114389880601270936797334202863466992060300864963774377710294903481297109590517810732489015998436362438948500413389386694892660038464140816521548939392016892565540117109040518203168835250060200178926437200106036323743281183770554561790526320055462165908994294890184817069233969435261843126085241185339745891633614759361590590249967297291376695671921156364791580904956214637896807022339709819220564372509392409905135075670255353297172618927948197570350929434668094915968610058409452646515810220209345978661872811071867745683218773846747716654267392921610528045550297098673706531426897869400263664369951641824725753349894163664219186108593406344620057990423213496232907155367677618175794421971181925294144303951888670315362550356562429928441131924347673096269733496637714122578642068837411988473899039877601201717251054383958147562597192230602009455811744890904522397272896093845180581750597274363402601569708679906011608436798650986916148357433919445570398573359586973979311003262602479146351817028462388080768019583909957136218638570718572770888006279828170927656013615214333539411918400640563634347613946424863987323785778570933610905907175396247436871625364007439536029432230444031138155312419853652014203613017424993051215490491930999043278046460775922984532196527431140160939152739014526327337188508939919669285580441291574979839145852888267930485356432661439928333421336113465467199583538793803133530577879145624348273609973158551798106631436191924661024363326850050105561802026122283792438719255079316423543274919012991433897124645628565723486049990199520880868615698986977309064013882165773131727374656681894981491097460270860387407995068172507571075383520206741690981874272490493119503105719599794576985195559488145245510003536487079681770482149695974206670213091718577685822794465440420416195834715098512934480185363359505054280816374002121931454138365215532964259486242002315722927660103053907234751898010637420521593988294013821103992685644426902222281981511871823220970869565383020381065064348276106853453539968575650086695304054546997062508160242462375249779778621599449749938048086394275707631518979728645991280380347858118013039452506782685881758784392095233567902383838128599732191221963706800916184550089244768865221684828938560921427126911487088433088954864570601716268470971328207952326735795511321819743084385080115451471474254122708817345904855569098228580125478710889640567694383356582774491853302735892329101946496732338745604120030841273515507985879220765174458978095095776137467988528931646940152215425621120951568242278077941311304155453497578326911332652145997008395393880304677553130984293715955243645852479822818402192620213262861957655598956732599696278273834694090951523839553219788726324790366821533982996305984697524180089504546887590605215282524129827014246068625473613294695412796751923317263138101643307558353928334444704959305366413245108835991828198417559222528955194013410071816934988135756465467999925343192727486216286125774623633154409874301913666062405088342670360651757911448175877551470501565408904871731184691581051109596179696281983640699094867357877140829737345058349361064060355419795713667629252519524115328248816593658923700929965619778128406398188116337370836227206972087973211501105210333320774741417612102990884279404964093718139270594374067787994939729264067658279148104300586535532403429083037156702486552023727397816863210579726465960546044946187314725959495032954620008041067615592542799716477583915795779369592859115622089481674588603751207416557464962689842964945892784047519533088946015060158276266788158776059295358150242340449129023727245025855172113421165606015175009352370145577264451070493096403159794774670843278194745805325323574621303316340921013515165794024619266850857180705771679511324444691746639012948221548531176277923237688990075838306182680730994843741834871544808824103408828138135754017731628811494763022912118894769770122813991185328798293483774178089213701112286278045529622315039012799571277694375726342066558773446130027328236321118948949632036515299880311357777884798011994740086001664335599143545347186373247614949664076949904449098148561895967179549365246007998521596905268599931811050647274602783625493635611463101064557728797198150911846211620822176562348765877582290339301380742667792179954030323934743216327279027806747506115945453058834827919584751441333627914787614896197788872978252807959859024976249624733838363477727074031994943700223741571628853883379857485008476989987793413946853259914886152458024122858011325590169306297829412816323885970880533193858571130322231846430884463109818368302570186030924688379318275851537125554338371033978741022781425917846826426984135505190751630693218372083869718916177112466640844962864708504191893837045323003331522601510030650450939185760010432682847744709447583208390963505117189547128510265269723119199298298473605966704669216659452036330513118708068958491960284262296601660320131676886047022272698125967493697506523550870323212404717316937011563613584133512188617033751317184031799621883860785136540887596319908247037001405447800763967408589855515092109281960776643205890438486351130207089021013647939937817466740053680896592703706078441822162381139581818513584799510304689444549731195831544974596123569776366480663911113328920596294463339706965523121816854555755405063420470173407743470338771033701473550655212462392374114369472002664693397285863989037936854724292760095632805836601710701970725481600489370151005229259306862324399856308795715196231577823388192181529694111840746940041190246197496973781949000122278572424695688632720070617325310697302028826782557490445771059356361208271824496962572327498125007192276753521953136487817992692589282635809608528140749625641430492076117006485298364820934443893473239047004614282864539997970391418065535585121684123826095914414694118003687147355940457383175726335834958492881397315114274133953901367670893489397370157449935907250402884857528250745470051323057283983603496513048091818237967912065455888312956185883766048822535750606299887134938171125639032007688172822541182474139680601397480044185977518730924189770950315464820834275543531345766245969692064529718510930061882414229685059831190987654347275782340948822559896929530428927956056537276299277560511270976081905667773130453926605086674325573327682527113579485857498883158402951925174556271731665698240124602154628205521715578954948494675493574985918474035131813134544546625754498426882087070119482639886109109685119054515242006108974602087218597973189784357274427781820444600120157090938126357567685881045786771420293483898389425339789462513512646499379091463385932211766194067623498958886662640753391482378349303455341669477365098580344990729735769176970307670251276726253386003579807366543020453493876219435450557835770050651729124034348185835183857463893648794624717941011790709617270792998743197379618879262289137218390016626418171605863692776231491805097321370517235671041619829401375654219807557951621996043090351882305040722924145812759045669821584604908271602775187223576236500741049830693332516605159061154408843155360348114141930315610130591358644015277769231387366175061495286667680975682558643375572702459129373886734073460332359202973256101444889430915505159749477816087848097060797860064332473320271807280433250390887463031722677974292097103245843086763812781780733422814464911200403448435234835532755718318337053444855898225529647163192806235851197983304232098228341573534282200295817355766550863617076644292373120610186489096853846329477631082691459491795329803391165506419355814228026435121550113264920673205822718081867006877415238692077923237211075154436651225031322343862688203991188220429938858689632930862802379985976598154446193430963263992370026145253719846472566798080159772992570855453925353163895602945808427112832508920982288317085171854399476881839368836932305545582261384569834820863102668083094455456117523052247995583491435738308810897004280963677237482280695492505601868064678967230519994872827499237858091111012603731247555987744817442742780156140386297230494224957758322552450840631956340274371771525262266726846761454967075649885601347119247429618950274887789700511295133526928504728187686090216719841731912625580543030053194677653535030879321244021921462670560222391456685356408265368406678309371654012339721862968635851273616911663913703976215280544481373759227034256789973768909852900534990566907430377408483679860214329456657024160189715806673842794243085796746836363313539238443319620772488875860744105396508372132459669586936082603992304816371547013335994881274008402324736646876081494036570303840430509833068804677354605657629000207234531400561291802447180615998606016577588550950374345467677686733195601923579498865527042528123561350474854515772756521748156887966317547386835260455482237121592842938299484071624266017728120120298400705420782751933600217530851326156603868670509546979241548144700997764877809345590963683486044873205062538538149508566810425739074712115450047238067676945700989976659872863255199906750590391900506155132043450038119990964008802735087340189916501427423876097405982908599785304531399464722373355009241207197604338072658133796616508835257542515136909318129014175078958635757147542408431570603394001248226821765332590180370717004208206611940214576090614136071245826945070515657967287589703261901376434676381343205894420617442250789126135519647087545787290402451994705684376981971599957501773336609278147672536853181191347433095445148356590336395193980511061356111223666150300750029433498073673845355626447065788617244669797265541412263903109756125812989718960469599601110844779286937729700413388450026688856167747181994790101939912145361081377861555491163402608901255742724404238149051733925589642564038228773688005742981915728389649700847468089307652703201706150631988125314172668487353722101201879230036482622917703161431272214760839690305457437363710381673563517328582227758543243690825096111416207327611495196077735175874241510663559566544653517759880085629901254199066866877959993723348114450317309780350627845485070524161089787349599663479573480986180352879452589261508693808876443094938487166805735916288704627799641762031252714694568578056815298953176262465368853905815849332380599343536249691780539657830968356178414671454640886788613517325402729692108095560554543386201793603856513122146730990402143542989586874820717625576972789254968745740944474735130501464421131526621298995377857072430173887059319234631409632173657343876429671668025552185735210057024553220112794366430761507475937872417507412888890809672430227769456683887112885573655397256386984110528543137675743554547494659125259788884940914102363878378333053760956317681049871287087025351057955626488133164667185795627071743839520448758923170897058382322720340905125340967353784276551816380094175327199657649778463370254295837556798263687189305359662179815945555752040731009781832747497631838562278634733562156565904862505326825050593350559528963036583360161430471764089591319295856108048059771912504393183398405833061627566838159317239145583956648103328633669386447697943165868874112008519015679948130504426748051505062921251090995706185158218108142264534222866534072651065810086481272292494918110096491054371564208707772226314530464169608850399709846884155259555304042485121453256579979201898562645179569181382697364344738546994732549252426971404494626635933966701283008116752373012119073811137704957421737890725558214507260938136526850226274112933600349945337982842474292136219090698565784608409480172899726046418330630103268765098341745277640713502989714520099551109849922186411360319003579461181439601229165594931516688835852603213167982133171517011823848831019062966671081573007954858630633928270255705216726256648667150754778951304527595820036374536942012538522134215868120605308679873916337073621321082996608971734256562578910299444700248798454974532316358049684268927248501007394969089726647510518908769027075090425628574586614157421595644010731240796037661229996991724351250769433704061008516976934110183416754433609378905152978608265398909513030401324656448710738861177454271780390826349187540088288171630596390935520355821417568907844318397938583803090316750565908192865582069428609981863584408755523489768176877848829617270777714768633974975274145813256569384074869163394704768078744533126940384348764593111457219441089714419896875623755596943402789920674634020537776187364168168051822137648226441942662318983300227518485457509543297257872590247671525979953883899401980011326483609745326111545184819068508936285649684612538135601719286430747127388371208281901306539147084242763458329735666861855641408085737155787018047699943542124241370658393916479105818711727622413504398713855538498814757777467541002039660381174056341078918265706169509017398866181590248306212008059009570484425957220845952641646487906913599250605573574885295495146226242864543437839244300201766689094074397771990689683093135668063281731423249222581873847345538995844496570255845774963684932884657183635620738817233903867195766766657014350160510126809877783583985261043646582368899826636232660810428917496057112124213273803757362357594521887309836892359838128566177280075986753242297445750587160734457936787226798310691665625872477692876755390463855102354106047595847398420270940420106352693061218663955732413465661354887760859565170041582256501608234903944511437251643615477009729183826093684036841000018407025599874332973332879903105537397522875080971983600381679296328455173034858834334559832739536342195472112263352333810205261858685008485815028845234482130798500483336925102114908696448836916432319489538055021508479144006991888161369657314041616502155266461857859744654141952013168873488464863220993443779636432651057434163846480195001533543426790360291074592995561165495777620673449197656181552807641301320550942288332793613929174287521506029934796098431576595946500992935743215400581160992857349446922860597211871107794929687340255892637899160947149681697711798240134488797014544306888708596812103824029579960786788092783038862628113632830378447322553436171105597753807555064214455735293003224188136884014677108506229842308312621419248537404616938196802192058252987033853418480993039669206903728956517244106740123390414178188287438229084426913519020352687684181334496191777644118237432845886016918011942597601221011476353729744985400339361215591778953608158148037367753367937305352636496375383943412269222318841493880425429054352173444236281957968993635177459686811483516036024058719744018602289917893034653717777888671742007940267339087159621982294300347984170278690606256857005821070277848072095835194864724854351468324801751136019933002014782347918370740026207526403744106868008713429885551509013932813640609931192807894927678853333032683854090021913605998075803349450526909613557678476157121979910189223523205152021249795603890865236402761281709619051339134255606385500392425503452002416211145319237275195341217919531482870233497245710430585162123694837330212853355532630688215252746000383265856643904729120278121359924265729329940527415965859938658737826466322516380105104690601507598913718811350390110334085001946360481286005633217762449590165305943688966600556865807295868052507687176041662281586496615469360862788195935902073209227921988454405105536889993725519285421395432572570093016108544437194958975337137461205584051450640813784189435874125568446592382059956985964134183409789116951217126784745871069866477220835793015363421037470192697544856102217342946939767894325692038565701193055003550524591501504475614038264926608256399796998187596577235229288436832801569952799747699885544836246153450618859431242280765969640384880558286491846299301343824091037812758707941583641607225375369947084598470524901089508061976876429607439242311165151276965096232497095965052071423786244205170284727261301281332035889742565502212761979385947669235999369267648439189817833143386702053532693389849466052366770712191981080860743327175624452254295949194673428840136427492210605282107094432803914685324702689187837284619064141539547421722764059322223010150118234551421825172118016033248470220561200813325179193727399645576421746491147039011936625722683633766699943326936139334727264773738722489966142708173322854449650742445761796648179203159737000120169196969954456393550362057967885981357094499373265089472638631878707382526058976528032013103094572378041117995986498848114553462339248701273318828893139490092813557786169808441030264283988015488548905352513691048790268738049465932435209764055535671261619994588964786850316635035742954762798874027559254575285853321950241416019740902669452286725754375882590544636415151606612801857553884945069468902026193689495918302913494872861768699760119515183303476443919424619834827073976601579300649552285256513728053074706193151202228688581683143769919260891214807167617381987227303880465219410119440703804230254679010575174895085690990080594307704442942883818338551544418393335716017485471619039911983420055962302828774174889946442266314831654278375670108397901937288697717750426866752370337065957249736836544428813041388291431018525427291610787825701603300799412556736352995043185034980000420078013435008966531828121387190880876024300177499733360144836308739972552519697514397165636461851045180560783557748553662811751228951551793334795843804212814292763698086887621441422628114505580099339462609436767815270634280733820891008284242615983558498988386221519688161639482758459957561000616646965935785839547542633364541047911433002748264948656121015914524316538263492644418741034687453794625188429042336698189802372412341296562512270711960844169283003913937247517228933950014772182486757976345105442603586244361425069593330772248818946648213859641119464552264226776901284403391102462282570283874802087562514613607322334858147627934288372108505004880367301197032682220291949191874456543297834937593585415436270672123866765132456631159694060704342358769380804307404090638929233305989281713468263779944691091840691697670771910175539224572177840847745519920522547248492463152150469143407695312437875779305113707542948828907011970525723878442708886200933019376300426046846657701814942638171577482824516906537289203860599396674712422201071922243065459079427469350943413097084524141486380050880535823663836668553656351199298469465279802667505357466506417000625225892921093497771131235856592632428194309865106673012764051604386379539364329031357772063998220904027446192242837194266446403355000253901494741360187607016276712202607041701109097668958860030532357499198642236622040126697007449589067604540770340271013480426911718967967125439158146064537673074589626254186197244963184007053039787690915434269586023046258093667749674656708893424447043612559874870364110996994174153407755065171720117351359425391217126614886343923522973308160685817881808339889646595707170292588686164255087988741908071379448878524619174439776876498646195771930912861677397920346624160298467104961960611275328639424492392451091387629289667149097982898979499764764033902889158128300434623486913869112753457910670287094982193304932763299186069328297796963970142075327930187740114135497945459905169026983786147960294077244871382835007116040287148177778056395832072687893855508563263313804572226181498066507133865232090570374402220423324252663531193590670784904147961140919345571592970651476432287781156602184449297635922886647316595348200452955777983867092585077462777456377933491776372635703480076711998383655666563561613406503149130671456898492005584036536682078806517052918058781172589825232084140592934830698161244972936678715942682372463535685176876247922076666311310233960395009790014643030191170168391462353563243999888336837602771509630204434341886347475196255692869204450626839615861116429824126853825500144064356851666643683604594020158520697895126487449984851044252509801646148651482672034793183098688740811035558398526994282615011391995099156260506461085499775391304510380568564992088770901803478820945438163102171148259623786829490778668971974892573371748632907682663184539701655357184997466455136678073655957303002598554143810608988058289527585616601608913543275042890060093823937807928512979470094842718288740332365764216012086205818681320931628661722236400484442528584322706153573608050537479989415055668001783259546253931280575241483002637960424731572776728880695228541144617818962660643914642163637931526220750336769014041977627129752522683180328186059591944871095671900592389567306670087217896233271726929910530071833992040703855701240466331174146593070758406504990550798557267085792445146733719811876212354549428261820527802231755065602101633347180463783446420685535139496916533947995678984466071802955953593155801045660319567821261294070617464404429252534494195162393523585791093082778742471504905245871371908433678699191059439882346887361764697600744498484962666533359721516280025368116778819983816008991011277118454345160498136452746517369401922452539023860220904718215377330829025506748186315708873553637996935393156299746046157037199531999752733476839716622324898762880398377785479035765099970877938726123216222448580388866132715293325471681467849785956704165255261907162589326852707157536185067041215686524092979380321863912755566173760231689401201659841007458672477841681757666295800712068746492816467808634259381234570105915079076501062995571068155511992127291808384505578011531840462662164031320830309669679131652245282136496517486354976996124283683425879522826405653913967410269421577849085043822359892464312861143260678842692651525011406601341314416149905535210572380271017784186509317547820446764668959708435846770428001436080337305875021012379047955341593545611452601537986308579906675803574112230017277793042478207268678489383709807607362355627086111753317412464839662664549617369013661531081557837105295935835044533603715397550054485373500423092753815254301009036768871771731599328664607526173730683440462102485790366853784641803178295856113127774302469107647682169602155487743371643207493088985951681505032754278129824019733885366448600335444477727950544991299630636562567699856869205795132857067040752168976950589767095283477825673789784602659258721529217409436758336118535886468290138515304894897286571279616435782980614600573493529019174033438252624830042119029950352530146753552464716797102572267398991564285143410967314698185800320359730894195470872119462351939684670383200916653208241508759883322604528374074771898201162303360199241573326781222049087372418504391992781049681284251719723961140952320511407749074448715420931568390685567202485943841346684957243685020574849342378033173787284093863795494907972889998580152804649348576839247573722566800279955211069112314432390234988855827880260414020665676442102853275642240014890718253684568774280166835727490533804249619139384278690149336992006685989604644551099998102820141696586834182585058513963717471082612143415218742508286868994731508450185240475738752418321353813579504334963952330966136447835921796870211361192049542450941942069816689700621794620667535129342132486158711952028598229889233979498406552637260922354914669449241815804129755367415794365650367599741417307887390854926219640307983855724858014495720800574829107315351514355595677622007870292907335982835476582473940688322008713669788029895394143739436983555048454233269972979928270494483053321217366653990799607037209607933839368325022673440490893083992028094056770463460617775297325102346462292503032584642957922244278500685579199840846808954472466921378242726638744238164467994198499390640818174593636960177507168086517378102166705495301102516181946757988575674117283388260601951713447093139940828213283228320325077056090791936910937783556188210064413296393463205583253247134098015224969285932062210885874242254932028786221917816006203656130623632213527138112059296314316075301382066316013527346220795061355458453594696449672584297951140065417219142222303511016674594342467538601029841174190260415776698398665773670508526208691256304235628031578280766493390115299536923418286417187362453077769600197277558639414506547796154680774347473659530309729108171594983040010339037784716765554512990973273681294075481537194567559006576734247858809953404780817650653649025540535200817150741839948679939763406193321907909590437036574798312682909766836824171230221451736662104211366466096739656581229461530155953287340166091212838530878248309227789773949015819895758012289491680427503275051160867183641253116450486748724497010976122144441676284212631286611827758050845935173722624291107790137240864029234372309346638912078912217528774390801437474176131866337600831376160620313640884780781434054497226866508752091468490837769161923797494933398165428324198888077071983919426724414528073374367474506373247348217830650647759811254650385526357846093590976514044745430710248384264862033361817828981857977207241314149360759592805093771480109437308789978839233975051173879907846274717072498028897770713867894044762700971865983933709802909859272009184850736447913105822335344350638329773516162185771299146432085541841905125540289064168673076102275450070418326778722915544444829103577170028576225249068119584732129226238796773038745237821654766617180819849696160468019387808957809871223635577731404987878511008801157029229760586318491843998998009084021231558257609603700219952548136668313776372769229805299594559171521036124929683040120158594496436475187788181678113491140869924150947842719035298305816511097021592805278676304650656895018338664532228550235886464077221453541232318262406367562238956211329200056870799814592544455429345574566954675241054407154259061267050316233039502723695548109855839718411057117968865230105732003837051400789579737133319755050938818250794204901091204531959456637337028839281869952345311987223081631944428460918086115313212455690592630992572458055935628931773680710964919185743294806615524648994946728992467893803412203425640851982028225733539602654400386562047689435798933189205099686631284878943900787771859518475041549958488882697267249605700332631162192790389321850895411493218262716022608087023371776954312980725116120707786159223467647232979492065817117629356046145086719049100130068618416961984352159940963370445524327952883302302363217175824174346750204840457461154774686791803579589408919598221257902261394794371689861606200177532699050047345660574675033393109281745334220768900887216219589495519216426394536731070741014489661031322959621725865512076089851042938139163464768262614263062588817717478754205470002896873826409629122489303600008737169810473885203112208094814232118623701490166876964585609929882037895630371476015633298138823668875983160445764714232161009508281700892703389565490121573331259477781511098051051902439198651804306485930715104815842855283579776342735606473614753682831368748841119553943602954545494978811141189494304492982452420703258847161936165506008801241128836455984535731540640033632855175476035545756770060305819138965595483341852324780519580267746975662306980488898234194772463432194275564644390324320893907642295804472974098588497462716067444660840020780344156306461739986141196796847761320660775563988409293404652494065297273900050167512539706101656542838366681858201693448835191173809219487228074903625175714694949044048879476261620195984351147235737975512878336203303001735343082645258570579321467324301850662984729948857896193711019973130607666309914798020491969834545236799344888080894103076013419063485966069143633527192275950994793546586857969594700770483660008747756991807741289573187896397528582667238981889229332434629762031147683201361370585100868460888372977040596502045218826979700186329730627017531457583574503402195848850830715057726320759306446715167424462648044056223964347442412295064918922625155857364724917936536508392828926580528584369278355331840769633186975490764144743072169209362925050317527858208106347531253126026534165746694988692281130365326444724358079894621024603409818439838647908027353776701861396910936837190674284750696641114133702178528745059565463188044865896805372924368913009054643720478063804042477311149568684676402281071675275904403611698659456318003643313784629472248580840870712931642073807777612561771354651120399464829598512359421886801060443854011396973656245593214523688928251990737774589894449556445013185667376316248426473028816556230842177772236147767313656787872520074694208955468340465099231467769871577412411448304167222686072692919326683434261207128918793207841687589430667778663421528298534796001710103210334408197105447594803111909636694806474329281337280369689549408594714690914201972459833054991914984342532588320368305670722271135722867117719083715386952325497652783210077164442086015332422509648162238270824638640621437808257242319657493965602111223799692381238845268582001817045701205998953005658628334260493893414530081643412061856289664771418810558413663110903902693517051774166324731659104867821175634528197666844573080952534016940724002930498342135119863287560017139071658770866474620835569537132334429027914461574519533314927630745009559873004068223431652144335436754768562143489013052639963421392980013957506805346630921833285360608074512126504865112138936861688180679440320565196802303084878399714373272825416382298940602764484679958611727579874081550511804391285538339538154478885535170371431876738131925961152787439619919247931797021938783691904571793881846285168356076635114837991949726219341108527034059106862874209123445156269121809175538658136834942377142408757543859818681579052911161015439998804025612585961716895416873608122714431688304909279232439547267956248132168478266888501165582849802971418363371297033316123909075373755834209478309016835909741962163510723648269737331531443455449274787070661665244342337234003643713273658216284174221422289789165627733706616569973398307732184521176471884122288352981969395911699172515453933505195129132757979797061950424459326053879270802800770974858311330740066707088249004346175786556756183317993761997026299684664930773632876559636165242928100157102321211763224192986855746618308523681327999471546933614828935472020848932638248097156212005811341350332264687402525294481046306162387007586140551128979517208935287486250374588913751105924463698229144813478921190566043188283246390102826317262478479572505126562348451222239276384570595215152834835811428645274015259118742418773063114062778929206003081466696450683499961896633951754591346227726657448999015897278010208176384430655537966740193350721185374021850604335254003680252461322017139867064717289627048570739190730687715344187605593455780429085353247907220407558898919118195850146508171151287198274461472042000381120895135333393636751085093377854586153236695812183675868317715009942711392099675427290836180705883341060516377382712805369667472857030760810881741808037786187206252199858696305772255340435775223113082081885938193164621923428673734822399592772609892649840740520375196624806154080355238958263853163356217361823274773136776573213999564855483476226311428925005308220842998816814400188067748650017598014850519111170049190673844545850849874800854376182481803733969567455702430914288157715289194045091646705164206951409541560032335970024366709423147729911371470542929804729882623901329911496908748364377121358826560623400595085901530399297021325074900951977659076289638996086048465547429921981488378335704575162219608112951372667964977475915681008490515907545740427569486181186702089189934924163772527613292329101416257430958362794428780424031810665336536021144417134132641400525732431279302475281336456883220524225685206065111963732440850408963291636015462468767206795462324647445445504741741424415830030004254834282122185582980929091557437498915752731252203297243128447135169907054316792083721044210020132003982191075455770380632038377258996244307309908974846165262083019354166807049498999073775468962623586631208599341076002080024959881055069892224748088986217079534959069671132385978632930342103129903329353893495862927247403033637797035354718827897962675487686704143608834667340506191661791315373336722702465491804020214494193758242260769111380474360849425482970685286978707040763729571825826518697053380945623001367259198059276351377534408686050501330154866322678639080864097681016131398615585072167675721762235045277286894447583667011230502665159636844982679806456133497335224815480316835814465270600130714708280061274969171109439991117049230336998327735746997948876862827522606775895484901572791923363896175685173787208520483574776718828631237173937137962297592437984531262581145764955866540079205513473416852360698763240823308651745216660807202479484937336837692931642612199803730182628576386650928295566735829085781150271590882264774438196008052472036324447837026698855158016349834345771549094100198099697438373650370723041290874987687973273303102888087056729492031631471867560490487256892091947834447177393001883683098590775710546919922937928284737418226955142706408659343119418355632418702525483777196054002968117719414055761487437275472323212821965977052612822643511311262861903100773542428512433042806332137236681129658175393569332283548944276725866038733620638083830222873243548624845887009015488332337873985787622844803370309869745262285394300917986793022957224302271017924755473738655361708849499412451756093790817323648864958242255716139173279749700995993635917415089194339739144684041068614579570541765085167832283724538891955549291954256225049871309971784348327324661117063652383220101363036445467661424049455802775974244802197815043554178953427039314617514581983780135462384948836893808040735654292912783747280346631298104546166303373709328572548576813139894272692419374405366502284404127240302925617346434766186249228745687524633498850448174888991244640151772610386057143238306236252238656153662966909098032084167385928031629961114614723957777750115204108307018360117382253527297198665862877359946709007980419805242042544901796325995958149136616823957553844547055148567161113519594563683451993047618395276912765735835925312274816754264696595078273293410272373512079893139949372845432920849462183109443646975191428405639769729862188192753142394453986461940455363343503326756673482490492931635954725615010958213294070282023600946600848823705537728017786805796041218982906209162196141207212963786102739790559632151870393818107425471757989771225229447393449829775537551082864371633001476720420703706802330659464031059341158087485103356534846217828828073942298701335261750484967897314630724265389145967735810981323991298305438767909372965555857682432090233424060016203153828217825690859519304046577546620168882188001637318551181632655033182079745581344668247243166806231006249391257903927693435725675727279694199417806435130236452876367647871649944136058585130619808144909980110277098884705700671163266151427801009812099587807178430395002135513644471362913381841104017680289896202965000242839092437876387807965599640115498986892749819102228902913420722040528025848983851752587133261024264278322689008892521655772934223278990470845622922552014134230023376745677376530479952056430207860713091184434406997055073018198092555758978490411057578829179604214189195680433563010198512361866729310974808837471978525072191068322404432546601814987765673685289700950302671923764929601593736554185531231953646207663502523360222797538277506543409913438444677480451232709327896971012667874061282488456431365451879263548957361332593350036694842788464000855102506647827345071709866989441374754438718322722581562558177085465773034766712718753802515130833668304472332656685719956152822972863403156751717927792206226884905928680877517958203305061967908865630714889189752496656152436370253578871820413461440196085097099942728089301361729456408788827534495277799878385009184110157437366646211823887121280528895339735568895473503493637291525217557725192797620439038231638265455881848227544032559190740576653463848037720843382319654712445717559560790577694176685738520783651991623468685907299640287244589241022700912582938611777470288670332862108994988757781922084447794141003239088881083676791533112657776067113183499366401182427627667077137428664802937268299563363727158142724896515797162096504362142464913052671074138077042949925945590699689232930360414284558282583659739905032751590175973834634513360985503997848169244255346612599980243986379049497855480857825017483490432897765587092538438885113208185972902640831591740815122864024591436277283858156836595954668368692436230229010203207841289805203083521272666407866584702058256763503420241478831147630559678691064559837233128070090428012791231302999868788932378380885229241237793478908701961511084706539964769193322514624555377866097251341355442426499467688990367073760806279761091804724697313654479759968113039016594258123067688550824895330915234999897122126042724201523160620730154805902615425663816511043061420399339146597983250620982299001997097373941856867637363757715148528727916416097911549579043742049717427774784885620267207118978993886972848989866091207006747028830730115220069296302092487950992079127587217575940092230608716063160340736079788228934401200895844867983456387697901616652231246247189838695585753665270390296161454031675797540620781901547222819958467162145639044583216874284239813577274773223550278761834418050811057940274860052718062184172643511010556421279491579915511575174354124566735428072835059443629817406688471337689093474368158383398482422701994695699193755687914126015109595548538592397409863308714407391602522559928684742030088220918063758189595169802849645575393158081971409542887625133397278198085266643619277861650413049340749380611311453434986340672848695092983782230353778428224986295577502553296172936517516771932831054646251752097806832801950170223036274123061329621913457905163726169639871086546043127362646859906114355668561899194637478660200923150806698132753894180136198158176952947617868926419954525840150714803247268803488786490015052848000018319585032502809813622810880585914981167091994608520412873038700998061354876183861933267449275665663221628468616053851028620739119535542037617058041805655613360296171993902332595692630634203408140684116475031358471144408460556478039327397025428622651455222226802123042359750741690221359126736204155827125716724686987139014547066189957638020467046134592733196259554453066969153441052345267903571709703308503558854780299362564684132598543972981490508168728772406621872537417632864844177426616129818910374785741822847233302375633178268757621942737383491495206481098375227601606629278818301971668355521769420562496264912232365224972738630560647738001967895023689882728153014149770882659184081271547879746751757427093970818136152146243230007896953604894696407382285633231802124419352648428424177571605710005725153780284773228046332051289112773892281799962602459103534085714181355558229972361385352338205350229935080933760168115484019565479236787423610798314661915276131215423746135986124428969424009032715350615224197017983390152021995573689748367701004861858828605033168132459429652922664846478754865405702249693677556842492409421781399851658176041322828695971418392593006655933265142748444534633620541626956786061280569801200524857976980678168415959159040159692500738331725791159438482478161362298446635070708811097319749724622405454653035940859848619150447786335996725573943153506428830691245731491994148979442123259262983572373496548280236220460635313216741017721099367916070956733664031705416705443317519941073089663697004830295804755283722459720644797754952807696060863786337941692309540990368389311768120943389605869576566315684609970818166251600123779312246754232397214701478781750919374146517712496789049527593340594006013582764432336267292178933860799139866550056149560800000920559889692543156281791551763896362119865821834426816397984892619607475469074851071959748328721052831230444312224763505900954609256039370399126876912052525540678691360332752662185846747151708117768657944437389820851019131027989377498379455423778284911855675046419440462594563772795844064627878082903962291247232068994341826525074843765278782036899001994125691953072239963958321552210595213443166960191699071910666260408955572205151707532681987777257600592780345377886351531174347636604377111826578206006873598067318906601900394409674750031952420218930672212126701741007724706570925350226533418707640803392582720857089955183483940506972397502930493957744247492193714653100915316266491321066330580569021430132064506154518162098058036088020414832987500376733531715520814149605117302248788872729744246432128106817927356175055394170382113031648740871854628729096861557756959832602298406757636611161182012245495241813236569791947271027985064007822252153637468450968090890347743843635359141441242470162774675038239047685282279799951855495515167975987222673003873321433068911626912667666058317117542526855192890689574583992968342355806705099376404452253545709241167712114780809329964091133914977510183983342309088178308252836339448933424132189313561568130391459447419973806975953335011757390993653078193775347750788694555746325966432452240626020645674615610144194567837659144224958756983816956302324133482053294627403029307774210789699544749313575816188417933165952052271621819566410520763829679270951167498948706720960742908634890065868357022750505568284688894392783402200835731611184449394584138804859026955664196194914609278813662043640714907477215507561267799357904848988848023500417591670683038844301005680034445679599496057979428686307448261685903372158905954516776379191495923597877838083440591171079611333968780044785984030235165868170239882292578259517933977876882766283548163245999459820891764474059850763610555938130662148593409760181676152991187070883276918704020843676712205607739867632294812852309727393463808573955334164332888230448258371473671225260867354413135638009326023979872080635892133010121722070109493243468094835501880424468972370769981440730188501525394925300523521669984538382533443544440492668693340966118440630253121170678472720419324094962082335717766280947474023861605595461092066960211821784502673460470719792698833204102922914489983940038339156801419592682401699321523406920610375599807051114165207824379458923406691795202341442909946472198692955522505102914458648428593905854696047522547452371641964202892996244286995651241438070620462047953000895819928074239700335895288352275635917382599232110811242353544779227939425099795949630725575602951578481306202725859705328557227840389694366752036834023982703150621475179790207888785492687476094130007165802241065480197013750544293144762911426066581262770630827508985541937102773055957959353898209866289596624850541569824648448290313960117943091124848823798206537823060427103494312084436429552838451876193243637823486588166728093386506341582663999262612563860109848765491646002764396240163435991385375194893485462917020382479061364721985133180715041095639156460484458008063463715766809237159235790481852904090811438474284438406736030393725075441674970167505797306207064548540110163460008020998033929791908967138622170945814264974749034587112175303205753379829369429663383839812586079756500415289194996927119327684613389133162883571362307526727883162042646594116215728923064789322846994730022047575444430476697765909640974094930671173486294716198561581861675839136454221016497507480931991071715304740147461748281400298614413957029395632019015835951207108250817354765094430458109964555231024342948558189908794935319596540863536624654262846109454278666111559944503948619721877426091740201668211097453714808115034396899428442437042167760645854196062898244510657463255836974263991944989536003662788758078759198548197757529156303970411852225212689071091019501797067313231096264384327536815556711375790596673830344093546465007159124410962275846418007592915235849454796022875812307061083069401095119323722464785685295861379147523124293791649087150121343511629779938368326493910847699236767820151912829868435873757332926668279329138412936780607298689062124532979941257574505522501394401935072631086925238404922036615114828059473860320756990241468914545527907478542252455599912119864567693608151646511268881609282953914424595925543269440495140713304635701969202459075018080767033827753157491820691975498604055010695186287944903347580545145113008004363349069962096336410027107123485475608025817830091606385134426028477913097433184464791719611877849330774223110011331821381270890024112327029137023728425475492226376199597375646649790975496388678887880864630160036343607673604179854410602559834571381041009571027538188556894884641455684804135549228419468849706915145354673229168433303934917950454995042030054531817339713947891523553791228580459112380499424656210965607801879833462872312899972981976720931493083986808161102855957064906967194578404984573964570152109575426428421172421140737806444116388713284385966748294007025069254669544281223885035835158395523303046484962021481819112002824829360745594635519963587385066519393569879070853550316002892916995271830811326499793180230527893975090263082625928346998129960537992957670009063079812458682408032342157402417472430222852178529485247045616418625616621460839691410258874412041195196890311209249662214561295672851608717235536065314453320486511857590741960965299083734385998723541522056775795634449913375766044401345585056784929612766853116347578414801913306815379193022779166334557125071732283785523112231924964128699565024268512060217939653128974538505523389852414702033532139705516332731583093755786673981614970480786163579350152732256845876311434808645894849210116765559535017752862175102570547430738531112178405740067738872601939634076634639048057075241195969894675068871145756854216021269899618403427318713279598429851114921159073661029294547691638272313141527286706504837979133151652443960184546855013380806876936397461920969709246480495597404716978753366748916285196463097900687309368801409791685425735220949376555319872932041593104627005976388946407544523643466006898110260258061866904434559839831155450901032229917396729274291086041909110366564000444552459782875056027131076923829305696739530050273843362997704929733372840264591125960632441118489591609643717124033778174022103661536824343088535447232553894179277323146841189148002504239769652872008881623825637239558525924633582194585259560547636848457081903045228734214440239943648864719012368198640757501936356187524916713719742543987353305370870256091322720698532830079938957172091068973069386192167650826094534424793669721844724675790550795001411357238511269233500704274709274538323462076413815006567468973805816672211933910881776921379678549639294426303805088714372074614179627135264260006775914612521423865713522550564493022625334088862090000363542771130594604108487106067044496854800231992384333954945321631788470524869549388787885903382694321413827427626917239489005477248007532975629199700496694753457659076012096931428961312493830902296849351677285312774910298150025582715120236562517455641527537398144758399868164069057307416375454287560056973381576889837865284773353927747323992716033158676175042505660044506246627029301176360850207685617937806333343652295135268249488848057441842969038705770235972146730294166518954800043242496992554234249287974317568582174500818997497572114776111553243606858119926410006365444961484957793421416246750657342919973418780966966511480007936313581174879089340703711587228727293725440664287782288482059013103710419276863425410923521517530358905412907024816538840008078497319366962845613842333776742329861198734397447845850900446407932621574656710473748052774656375318112134127762341760035549904744997131096011585812076390409977553142553159928303710605545226936442576427371567702840638589946408159828263468250338079823604155584877033035971680468600612608041423118091329518701559898584205270829704300915869780378889133736374565279429646058146892002895596842925801673443829565007673488269508391992930672292915314139913351496314799826057024219782002184405165106102887048095938789018513805211013707359648574665261693226371543785543916184041303110088768209619827647227451723753139437700202687346632402185095678035783560418958974110156118615585895139980759628925977848481689011765800480398600956336634158669848241285762164600809513125187606409105740800422566968460202299200597637797868589557707396990398773757065879950423261829830728338812767173765805394729100177199441188980938337997481096078273931777824649265618458294246357817692521505265785279433469711912507324747332541341727376625971947865513423713644740901133697320261916969337831540994624180436177298473346851352083471901696820393742395019465014222937732996145029526568234306958186130345425392296749342044781484570571635556595528839122278942974763618924085938917239979855439476105286175578258764825768530752826988670139638515371145534637870140055587308844806047813691153576654274509643433919202888577516664601700977578117151801951194969579393430958013661876609024382872074317550858654848707435026293830977557195981864480231336330266229841231143183889838549065922858752628310085904278810649074365867219631114560842928428657903335123822965957567376220639534027450183613289261231167227487877048498246058765828897927521158707570025401535962436894760001031899327524377428851105739467359288407672638337430084834036974600969680553104685493855908528127608232501232623904271971834263854833387089418652350469222156458502858083972400126674654716578779311405570846741616506594575809676102426652308668603171708361468512259670251062577316953827979705499944918229306445502483664614141981866634711588359765893155358684260308885679862379897143075755144882411513095658102523763198344499233162370555625687681698966592847588138593634858663248409077042688318454735117648192859629920285055513049534334187841561858847831706903506757025426779805282830125822447872061227510161894770837071035401384538250583260664760005732374705803065839868142583252068596053593129668592632932554522389497100977814986550939376460734941316942004576505750208440755264582338439949076323737842420510125119009637346216546488602598245529053534013405595993795772863299526866161597320141768160066733061542774547088339191585873846177146915907894180327367800317701043222681444290608571519564161431711258697366345606967357177174268398968027796858552604944672527477401220347299801231936114126458952482580653386569973107461463965478648140130243604179419418882040172307693668735614339493586728572778500092006828162002515363520032905406829391928356557687335821729579958230634026986843022668369041248229344169825921698220061298280456888942850956835823017038760676801310315249443480918224251750209013971330308371766384730585954748111654871430674846635699426153027583438562470620727506943905030981478157462211882288400194952842677242130770160925464985781941950746905525160377198768634627784216252453979341135300589600198717331021177125723724565175808282884810696694703182014229759539499434501291939075338211610096848655873307967284846988027674408211559688731613568011705294239294837757271740884588802189904451860422153500567140808131780280926129764222424233821261114128700519471033924985689606579501758489328342399020324098303140655704481755725962660699145456050722544946439654968028086574680617433858713633186934026256097979127494605617078384051754226344455576188130920782251067595913679779257799877562787595945549116953543734657822134919477643809196388331236615596206340367306634262992511730440154981447797289895658543276874641849752745614825139492732570778908345086065961447968394905547344142361730862532628993833090219955406654093085928263921134823202430994209411746809405752593185931264979793379519350642060711887006907786489870154064875602096390145649964092202218773483660675857861674593919623280768891163369508958968954735024003897328497093149458769450259804167728127624543666178590793498877117596600632907589628722002352401915690151196487065586137768860802825362258703688448002193471815612985480402521412344128701206933349300252767412515345341561276095381765768274603887330154317289108610691993777340031509683607884307970478045670950774572473137918683977359169654883219053271319833333314510522314651723211679381622895726980289596587844328739856707456574903435169789298646131230448555948197148228025178179154599733870242367581286905189119949720380561318951775419247805889600822550544320898150727326345534311701227654654975884563856677279453537590008316731344165255112699783206042186276270324333851251489964284721810505360429133153062438735941533903048326960967255228765938102138747808067322637021190922526408934637802860000533376148678144728787746446773459480506818746595367386863032918816726923890394634250098644999810011964692208955759234772954786130945596309767949195322900695431878886360361974575022569250453361283766258204747106025113583993999801559374373852991475191097747080662478251538770994505238547018112690619315495521368260287363258586275397502677911177986974191468231879335938029749174669447198187858920915094980554347604817542730625226260973310909412767809554678605733383812231668351333787752150849514757779194807459161363431432245263161443590681057342347063318657850277740966315827953827781057978322049241729913124191470771832359289460540286060080979051614363322130786398131989993143718756696083420078705382447321400978163317034093168425031448030823822605222863259024328126609881845303824993934770424050481766358112017264821386399523996227219027490001485845506557280945932316422861381305162634653315534131575387473877077031810436854994897281963337430599364826268012312898990484403127193139217612366914297833816773760934246343201803527565098943435354986295709267621192462254910968216192057655532356534280805278089681478356518420806935098973085005201628580623628818681475570217789153730704560747022852926688340855003341462533368953160495147811295148330322841007920877712562620008594707565253508248893631038500841937175557807518665603389127644539967544763260666092170508631794490848091146473687164044997912319736378082304451610764067710324045227584948327008456519369710242053425449397391093383348948763983861257592836352025559828290598778668473430336141239188581265129607261083320019819053219445297520520615039367228754649640599448153117030613520458507503676067528567718227188679869971025085650367432288163578066766292800132046545714070749247335204235591621357738412338975006770419056245812748038877365190083338145653369731805295300261924881068167644933717784970212388107810136682135790715559286778355387848017354649460534290758406549326074171915893029725299021454443239453705583388112725432389991719565470690548520743631828001895239804833014202356331033891828258224476426625074252742978222454467968511299858228876391545381903244821797344968510335881718090996940304577098550626714506028934941707175784874915611319622940555510118312201209213840486467499656564389401243798060589066642774858680130682913565496381688990573851754930804573958414038945905326588069696864897338829839918606906074782862285948694748180886280374848243748918974769625073547649914381922653465794606146709621151674686635288375484736695925989770780084531836885922014529808133622848024715817436455238516291888537302651885379858768289811248172269327557932933435862177679514577359446306620964681685053353042638405600390812072773623040725268019456617271976713255134142240488258593416798537244266625568282918337019068122949891101550852242137168114710069607360102145584569937847627038016249743406297144682774557822925376519760032536043698003329330220361425040951494571604608297086961182776371553897769683767914452747184277938630766823095394472064277351946632870732651082479008883829459101157252780522795822991791947520614077641583860532092939634985260861537406213877471283084405477946364079019518285637303201037427369446884578370633296332710193598326140981162703969586328910054123155928514322410426289114686796359406170002587036769435075412191577299677492766684960318971096503570788627508557589515322604267600940525303453235646331259620180651297446502964352078946163012308130290355929105991672794296108409706690919046004066644854269019344112475412696937855343051467684254198475602674622105883470881702878250532076880640353960115912404151893987062790709472029365065076577532323970911852257252706548732285878266095572685000022561348963819094879778151076115986743573136553269222053763227685103417358000942591635048044489696082020369835118906539183786887913819823051922098456507648276661576420736212914860192361983746061084972175861859662711769496542788680094775599030877865321006659385314022722744320399269149865024865944400924347074895173697755433656357758900388733080697895622061767766818368099821657383640444480210854294920061372474868819148715784298613955799140926861787445859107406012079842329654619547485168859853879294383100953487503165557398558111096324505676802416802932635104486365308285695687470628871542467558653257988805859681266978123893064004359840647623865517371720356146193308695833452920131934009692018135627397836491029073455421736263085289535698865092318699938327415456856912424932069358352308353564630264964056521886603402597272381733134947433409397740277982428622765740347554189747236676656140076022396924951999264198509059851612826622588023395106581864175574910090046255491320052678280475865099767590875772530317373059944522502572454433578450920404906956292483378325983005014240695757618527321651963811111677181104422345088981112880277032704053060025001741749657420924330504564934008986075376792897354358103707115673245258646247199613719653885747519164539725939072523662341532005080218892888638927407610378374994988359570816957269474348268968518432474685621472371663424434039056816924907993785530365298633694699708762965886088174375956222097841288444334881090696951897096946928594281098197306915347881226751878894591809482722794763613646730737558032820415540051779009240040450424645432880882283351827718615617472926775701639961892911265771918224361430463479536333176980338169221356657786814917541001571104789692411537426245832838416330275877760908285239934804009057219557203236043799565750665302117311344539071632334678008830038985784861925219860610560534419572895828064605690441355179963872863989905824550858668366680294760124003353589007856586739465524805533505399714473151326734269745301155690931663915106487781344630617977688395704021083302957971788583874934523903404469823973132391056945829335844414195810558483829683139150031168397196949748249223476989658054268877313624920036730899727692108886022531969429963161135150037507885550021818984809786978203275850503508621637145943569132857477591104101115324510766281014960413093004124666265514747032696983712378499919076533108582067874087450043936609625451587762947826698844187910475709899703596142654886239771459865590673357644179251406946234432708171808255051138872129898502916565579705887833945253239478933355774017013040123509985221156537490190569688509226416225586110112229832577315367241620258025302645729001279977860679947737007950138143561062174228234265952639672429197723763439009098584607423434934470723896064056745898080015080047758687233137651965999748202647545652291831273471731029683162122152506647854876523042872073709741832834285136429051782446361093468506108561834918961057997564980586379964845650642526604848039206495942787315044258744931110613559969711031002274812740116108455098689766249886272337713107340714778509890397074706542533158689990353178096808040682480990770061862525499935443397313925743115154115629073961103731216628012447829521660397207867013226388921570633908525415502031249553112168470972768660499124694819795374742078745748974835428197234108273176938316440425293266168134532586624426842352839090386132267981251769052865286276219488797945921291100361852617327934939493076146862425985130035215444532892723933952240396568184993904622677957513946054042628231231020498765822539035775491315577466962450201355351473524782741149914886944132281694570298154735154076468121957472350364487756746117606163311423853134220531967143341011877336600759505683828624825876871623386272570691073320491005640106193542134636584099193362723845913840596016991388520313397137719940347277949965586112460560239325359618949247361139946898347025005643037204247676133302508892382257693879558260390006946216117740922960625619532205932958581891852419759151406163788812720986663007220424980750465029424021771865840566119428970120978880049034054071456409178362850030283999898639490634844785389839201042931714938506381758764051023459814968543312541176256968951322962815507895205460272389008002456837022037111200317993775345628273237707518212953743213310556008909670508167734166553575561281272835934307385687803798040518308553645806333365145790626211937520213558172038546042092441260105462377307537174760554885393973946753876965199230800981911726145662503757792797310022106683819021126074046170232976849926083645132506850724838102006164474979996546156748494459582472874854480609140159388282656806402804919886366783959156095539429494083644168850526516013834388501509131417799525267196816136913292933035579549774697199110164605132155045304214118649093424735298590525487891406463901417931468733619748432156598995358429563983968643057500246485062705658691284505960233187555806168454147655323808108551084122209639294067229890848963853845967972530102154880101349820790509770350735645636278513022035359966220248882182620838054904180707186057987342845109923010644739435022018100299248899634631670426783197651346781574702455244470057680767649761451652573240614874602442949959415389389628404427595199307008965442584488382519535974639720656723356623192523720863756965306949336910037262663035239167211641713260575968720148987655561902013424989714354856734832895627483390310550391900619281487410425771431163067584691572477116087928332998844646118773557901064963146623476429762826582085854820638091951166291384618045352475778798847456064871452193362445355562147086285084994720108413251557265842799376004367684338823865212269900931534934984418061568868900953712386241056073506867497378921988376173085117706991745962771587547684241476838390271751425662924951559100150991904815580921813527711174976951497934385314419785553424682375370644623873273085969609748612706301681184260822644820313237418691897716526148418154120196728159022744787483869985144922884061324085608006074716229754295817837911463868673284671017340621926642607787981817344760104452085115353915582569206971835017652759257220359185131190792647868654712128271500005788845582410912932457162095815350013652722943978332069901558895645479866608632951863441903255949075762673399027592046641315647338507939229812370672337304644969659550158354687581877341031330175701446324321245159426276761026198154978571457439037090588727281623197748591560467606432849517730501711639457826107533670599303493117103897292390980636995475066104441969223645142695726519657774804780251516006324681546469972593103052906081142075510506110099236167051118203408976250761793669401080964634452201863845661917393676380638876041661882476013426434227505867505103841307785914049923661696035705120216471083475761908686471081182393175527367568454402206632621416678009412286661566495304290371259251139095110814972564809289854928517755540763183918848446520728190157456957380135241167309686592602373212017708349072924038130785629033275943531387660583735045615601601780507683635164560961492875110418958995362245844260947923792483299838126441446537463292701853210515984364929238677268835638020458718437622065114126051462348600846082272150448970729746298947593566112601165804814487876838382400201321775680400593651782047908396803157670295089163200393857370773312091521166952492426467536745588866838797075829530058452065385233464208205513928943728409922261887939040161418137097173937576715984766278099382818395996391152581350915428465610566765768403837508555053572169790509587020858496511701306141347783819030397487765725696638888157498660324507419886538097731370905462713439179484075661438406100966981782243119043171316839934205823966861809085018646341523253540960230814255182766144591084180613996633918592800172621244576732808868850081585783659511211848217384314090518486250068239360165907677944902047140582474132437288051215635074722271657304631107851466771730415074556417189621584237865361218932868882225882949583061398703520716588384884787398340861752086856108452439649536452181029828930917637074807765738426514910593212410041822282218252824133947894796918042450101328080951102254076528347374240972624846530916967574415171953380082687885544871667851860083345671136609303981003027241170649654213583336182985560582200581279400812323174999492332030870758088509116942556171130732473529093197497498717927812500477814336602900616165281046097006474899149063062318181022618521914550356673478404309967780773869545709628302276267816912654938589432244766674332166071923037733318083574926641244194842374468959652030623189573961039837080157523865089950522076326938832124010787410858443908100203679694670654911265448216983982872301451922210051670891354167428569887506083162797320413688094999348979908914063034723098647994273367048889309027253230495320077917903594648705502127394709636298419057043145304250094979598328888634958409587046587034592645965191982444501736035227249697954850310687946444073757509985073660235296680644662332926494903118256040041561963569202102346325159063294550538706486297082918580793120319748848627156482865241312433684159382263333673381895294609628621313697847236209940375698735646799860398445127396291956563794148420867663784766224630184324070819816339706751096837359523258971491760518190107579095241508999113860807531480639376203927894793222471559511831831502209307051918817178781177271329009878900483545053589802789508338866897798693273230892269452168735333491874616004779481108462751930882205023759824178706740923582687409829729529345751260046762731353360442239307497316625447153225217088885673461530261085553449115137743340175382246204424942632749717649801890676967823900209714512216933982189278510718411265803179272437140531346541441513105694409367885079706576894106918931968981341476480090729881394027939167757551396589608032479218093878617477531157564620486531498920168814228832351708906126114071524543192454759590177940093711814123554829942127058423359166209147710388498863690032020798327537595512227719512361105216935140996249298037414726120465713263151449137250956706359830895288874293650326272138735378746410374388600525389611222608509179524477025325029354682380506996105515314133292293319666418649886868490315574990714761439392965565474085755811702024702040193591634261510448193583808708410655799474691558661624041313635252256031049743026851826316112833303842595793258300906393092815975930099125897479003255302215072879712284245956907675701647602995659154106339991761196067921665687244129606726214938329212155914434052757156917645709134066374442373367060725479976314256962090305469594437171039825914684151041364328518868117207110170086634279291451845719468055404030665868939134857971652129045766883785969151908547474485382370283043725339692404333096292516345217313861507677727947846725811344660294497789004137364342198546229386728355261884125652044359923000923038868457834226918635264553661969801143684954405027397372889183883238362748623579129582577352952461700210951097238950346945436862459478774189088173469394707427595912534471916291680255373860402692699046678434019330513004871516065791539074519616705835762113141582288528928772869108371946245800117432126806219126041312197502558630201748145707942530389008522431567609094950172589734725958479462581154457806556016139297253418813887656295145578803936837064854978798621503138780625607517749271277132660210416875788084597399493100499145467184536794287120729664653268969233736766402424034359014604190510691146540067223518645400465785497625495349734852178270560699813378087326501564454849324670140520749000453151307981686111939805579947865807908568916095259715560391738366480046528818119710227109074576362499248460597858267039493887254971312506331746855533069068849439518314073392847162457698314273547273308124907708413177470950862697728255027462221484529881395980672719010786972592550997155710054447363717588597069282953613701543599182282508361548847554256404698659909970983407650293359358755206474369776353459946334882320507042383073996477160858855638170077900425132034640005245610324761775638926615888638733533996658461304574200029626634707083913792935892499224402590559776873496411355811547838294699479515439526693466629373742228341378113587849596433817681314979523089917596299008700593320334698359161068230918987988510318653120036049280230720190029433551137249968816637699661256610046004350265760189427477979244977787564661516195520593981523987141023438828830776997857124633955194291047229134686616832873951269974952997197997149007408022237956786321800545106551552400867231881500247623973823009942069134403323492087605626272502720254539869948674679277802655893756035817745381458540714906104965135868907997093094361302359399364005528808790099008739040655660377332853997345163862925945999378947943290293046379075906168028875232669708581582853820718917906113209080916999068913220752615869578573324217260405157527366611730982840265030301956799818609846592663538932947931678777350181313384852696883520635823363642787347978444896222508903650875717708926150267324255930037288510729183185304324486562598290020952350543025434770617937384430608478122438152388514382358695021018987574194286925111092581029413409588240090513720030151408099022980154793201730329080154333519883389610920575224934092515312024759227258423451100331578762056336751891215541254068608526715430046792431329282780069546542777918263568916781222411540117074853887993323523052651652589057495665418427952398186965881330955214963122671713004139480563056624568933485965938377813356627871553987330335814632260855238609358246573605648113793204326682359232670387866254868654250288099644648462296612137204269655641831784805973609207120692187496710425955020031897294712124720609957840005739425196362853648920855266482837879270645191323926621168589317705972658871729104232940759596523446134835013521088744558915712987820661657211688947483567054187454821914002326896245786304854146173620295530831797356258161525713851931971582666552120986504789157957498877838500948954247615712325855709049311648358094642295229337465946367081234666897546786235394161035968381257688187228931832961798934595751446576943823667329602348657909729301184379221696538806606377024744620915094403182986279092889892768128212465280402764260417911031297942830930560976939982672971857704704590083235535510882629369764844284678968339175415155245385844375284188447843920101835925284233642567440688970507567285619137167887244536954390744010965439939296246738613241164208471854841227996731336176589270762156387437780447183274674127347070901433629093006696186494733560062844641061187447793212387815107271509507539801815369814788348836934509980116774247606513305054995293730616644919007783155462891621495413623509722434349467825725181361700436861402639327736077056007734431650285892043806489391320982945763564776719192740176848213526164811590390122870325606283921266991397716972669718900558689638637873528150477396437732872791787538619902262038150866186640290047900482413501122325379276070414025347139457844179983030897132061599495224340586748495631070418873976701482622673235771819741257127621126421466866403212293651433188058808384881991908334354493303979267048182578126466448177922045508871518844476365854184901828195179741235277003238806242267889881653210827479392633158106249475804132150162873079726900401947263138556803538856554894046358008513857281066991649563489317434558552951232582364350148425204794406569814615946410981837575096170635720510151574830917791674911171784738830817040260583147841830615025967007254538689786220134935014358076007144602918274833965159120573140605398022490596560761125580935738991972124935890897060079783085413509232542366629678089894207508487017351947535514835314033984601259822713176090992211354432709165217279760413481351533929460952764268653061655087394009058533005728908510829518778062251985255603288122327414076927473382276605756115524539935800669096307544622836917551173562967026884931778608392738720097109271212838658279984667089655835081628637142243590851134374520207804844651212204514010240999833094098861689767347976187954038867729620374200086117981092760342952224523598559883021836961250365189171192641930104383624208011423182884738020422453391450708207311206505912637967470280192012243634941164906393136429580968039364678993344926005775571301026943671288070606646564395271825060661512738111795944871315319330455617853647890770228172247890498920594179948310213651759011129677416576820640243260373142770181526227128161522694896951824682273255937390897329153216384972613777922530328829363992331293142843935721776070827540954250074954583815434696907495236013260057115475680605486708453564378496534031894967262341545160604699765746880218554912612298627289834213023882218158948301489310952633405401200736964312494666304136316830129045636240910011382915644307438019479414549559528196406476507123421281877246854760838680984624405565031019814955929507028709036851280671299818179688082801129079982396346865244573838603820328631495937068209260165449159264114363408889919496591372274649511587145392950737042194117973519898910303127049606099109500462039157220420040348662744186433843840679952504899925057631918771511762762296988986321386177794843649535868410419973003724573321239767410893865999993933554157671759427368721569208276957914899833094984869241072522029756334520846338963616069132208986555167173334053598526070634493240585415074523746385542013325785632621758953260141717897773680896814956039931157838280451908796255561242508433421977289453057159459473542854382482946123025576742307600180128819169115595911119572876410646918699297046447591883872338522554417180904610029428998961902660013748008338767348903740097411104668329594413763060285955357600335098969771100639714901631199312406885070560240601660131229641136444159346859967067192893202870346985763726014555607742843815417030205735695840801335601664074698412998880125144872035152125619648315201227877427069211542632174176443027172674057088399028693182599752954000436121080512915770028711140986431549986457664404171519552683210605106484463371252465750756716068733862707239566054443199841449636656638146305629884309706713950605847506137382725172552162118010268154506628325442091560831827525866950000868179243983561045508930359270209280674153210098700162733001999976034753958766663729770507822394862415011978478899616375997090851025406585094822704457067074993257936877014538768762568944925352634398394196885092899508361518781326148374068294744534022195917038564608044313171539764710170161882225777744677155703897452440531666859476291506005330503413870587931952025807574275458606638781743690835992024814870440917061513002124758347833269012906239333155834587073845357734553808448638581352852965711173385936926254379579326602452948900150346378460241815585766471353064607429659452319558095446750882459753830005112044074930347230181965553016883410287987207500565177404586668826555141745062768538284191704866308065367644986599199067624602638319455679436376958410442526675114979289330414985461776938548727278771868438933786518035595250798207697690731252460707222858302745975652878029961187235670626679877008997717939956996845427172786940766978920658024184522820877322804982606350438263465049041992127343924941929611392133148897629804921748332968293707482052987756401026704146882547900095637046859989276386454491338882008087381040336138355877023264859045910103721212579646583565462312682092710445742770126240300318220462244768139237177718345812424010560355126503726535653863741571368791264421499244981275252139624016190842941232728459682954784758847723054337527728061069428600894989730608979579052964566789701563131502020754061444975563903830392356964214136269241586894790021889058710422157098705200157660738380206309890005502134152821267663095829185455318727015884056760258608586322705457211627855869714245088346455419747789631052072323918835415763361388847877098752405309146413958843444229108810158539206165871990013014120123094490027524618819562818997608281618943929609749500173267897990209501265831754268258602925909491879338428384061440281944728577129347809681123339285831157475110140559354851706421687644537405195744460047484077212606415681312292849350588292144913387231629613952989915558614148621507131174105595410080974642000181964652128115460231418619729999379576736703035490588131295918500356650057522288333475317407592304046031717958159245505231307037979640433864526122170073938088673150329681031444224435948703160692970643246797804770389291910522785221355165018284656738769226012480014061342552539656435724150519971852792813882828449568526878567183447252805243963703381536344668293320362229720873254582764588791818201469907333061837739390105311107221402862757223397774704975152208394360613247535392427407549992070782004932610892253160028795098767329130261359236331841763184841683983475918523425293203473029027407008746225649015365356554508276883471289077993668245692109830472560872414528715426051088468561572773835476682785733361102348055204483500763210950067358906260863409135959614945676803105293364637523997828173025646692850266355272716182885809118058172757317978842179556062346950587730850896035801193148395898633939916159823958381353302102028062097947039108007175532091199457648703099156017110237641272062574358522659683725440913614855805009925049751621931683857885485053639465564046482666602317945015142237490012769640425129621789898192506468635186845334484089705123148548649585526483865090516053007645223269951871683584960515828926736927669628761818515988751233763157980772092570180799653922351278744404263957650380996784505256738504840439138922988701148168725019808274236480614893191879047492394191605962918892785890104822720571023691445503755794799966050471582000249163897785871117154043651478618370739700297552201531697762232709499174968895993837699238265337305539108283577088918390273095656619169314611896339983629427773986203343530121670760028996721642852463991333401184237672181792218400391238716990351774807940536107516169886814145674898711970805114559225494432246890314413170936336773445968077742326905946238515721403256160385200507004535774124953884287336989523101926077999058553089373880919386052535689016524946131739153753552348675837541258543949943801980327543582928231193347388672267763752930041348514087022941141112072473298696085258105258909133884783328954495532919001507553377211714506937780960549732072610671190243129911188513340685536726043007926294991061214911381985288777191362740480706218126488814173404332435243641247461882992059772737220393423115623732343526864196802431465968761727093949375227047218481899267151707822100252409744307638349940655879536489051516084519049099682989406628239312584742962505820986945857888967159305439935290574014836696733498371374075505863838140862753106544372073563718158465193747574812163741239051615330444626240746727348662416172796518439055462210103478691331982931239511923336629683864970370594746316680386442585883264307542970241835747580347051099258703924707291505651330485962223775961051377342411474548633495506112586958356025463449963690799270754850293586903856052045454328590600262141552307882255138175157325989706498633572773825927062017541599383695020395467843010545335162170477608836931591912876839999926341023156925511555506610547784458948461890533798011833060236835135870951139887564080073199882625808722287328819834379471947398641099237661130649767916788599994955992792433196167865328371325073280818467625668648859782099284183454684298451453231807607639393871345845420217730419419435517610608210746777711955574544260072391766258756916295416884629711438977785163786253651284270624394612644166024124970966156908213965739793664522193562720914412710916253632439774350920219234530535905869288649320197944858922596614664351979163974556472043141440747932589743075457778709141178419301499580109260647016890514173479970310013049307818066724610397364513560168041221000312757820825106231310769012073832403799233503263706993876731741138661275818100050419061134357913639280807040889387023804782931370853259964596823460204723535637902003386999661648038816370083324660881520895007580274315185730793969494043817977818164701519212458126681988208484526373838676718498119902693709624956309820321918247728637411580809986707369281103689704059058521052354029257490362247515913471885479394470719356182137866708132306776723864162616297817351409331739896811521893737115434403406871676548540447767107062583616150305758075384904245800938763475280915469504295369372286200759361654422933159143123583810586761187636841359379575360010253388302255905713044456389891826871313886259176783553311461364057379231694551824427943380122684199267544872204187221091762606148283777134671995105391140313484779018691255609074076111812752647033511848056976414104665515820202568044829784202089577885949444901777856042821515209307452542507672506263495035932844693885606192185553331919296207347585417002168875398821495775193533812230598274971340914671122847063542003050973511913686880847480963496547986030517513467879526632638302162941877247445249887439132917035169105529569512258268420127507194234042315805311885435820232158661199600389308312983101042284205963712576636042110722195626324381989550910270236381807001182348192487665196721592775448885008293418082825513839233619229204344701738443550567837142080558203050936342421505376426158103886713407802556145254467030352288831784721532836533984499206944071066932018825344227901252804694270569915793799433752737072039106903925377272400814057046615838080971592754612429564095943787890480224379404208581572367278878451195632853393806749805427334322643435307805356887605895125547447122172940726293596733893759937161854125256527240234451851173233938310773983300773431025197774735209363543655274152726212820753180118363830483863264743143822047439226966196908545345249125431264676651336909510666176025108327460277894769303783233899754373040454803008474638847368083752151888882581606042791594652146412466057084054731588808989010525949633857641448700112385266340282003389451532155598556112228692675733594610067678731427540390231858440691286486842810769908565283723909476282951861904870317084084866529624898854821627783029651969272646336197663233833674044507478740164323650563266183558605419207230046054009222743913545442687556510991540161531739111578563960458141489757213885160044285124476553137825702573536330793519696852511649106534458418112803360652931613953175170057859021655463813739207479803791348018492454173152426440948889192814938544800397047944823013943134978797106916325458607993347258268889321633688582403369122208356595233092342523164046752384325175166704770156692052992870132569892096553942684524716441904678550280670479694159422324088274846826501590165654647852972274537832531840166638346196536465079936631150512267930494610118361671588306363293891060514643352564841781832799987719444780656726041124474620594614307434159089876759836748685534748486590981663268198334088314931824279845324404383419823120255293073153084516651243198222483810024136446196632584171405315702520983734811419044842216959264890189915345908130182664536896279474596989053146709814462027637959841381685456703421995640963657401893219854810941321829181012986702679302901735129711281676508056840301870511775415161073046584649157569362489158904593314392302199591972172482831556108510994357677997301732944227397211827430745738483371003976902013835160210103740314145200543679175930825259805495460294638377792420317404723742005064449562973392568081668447279678811852885996610117061791179115148588328021325672820107577916190136338885183457896527498979670730481282856584415384084760731857376746691875063172803007601736440379649856363897625899804173894155553598696980899833425743618014214917485308393258565726763619116630707529327254679057182126706801470696729756120607332326718645520590243758190630107172362597088168762161244731487181446389471127986604671335857892962085778860485839131390329841397670471160687205306288335571995324524775657208741668040572774801803998472345827655851086031829452503757833244691164825898031744516692428108178294725732435543537415591516724039932832776702311524693435502146992225231705755665305234113073109989258779726332902354273152800615523671214168051544636731915488823000699885477064500227759235907966942646910789421580120955502338872390201199312873584796464760664953267877870046393434173757735198424566326241958337926025971526718909682255029668603077254310138820167647975019742332200148696503139677342080829968397063468464557613015374613247266642963391964134555812554418333720824242552485315264854107604814443479400170394994720271508896562352074609665199918565144380271203509245329953487541024355350615900346873112064699816336050790887634665854816343132358485982239378403526596260371440679320519772642550584394835428011986008802896087803980391588153387765903388064758529468371051650527803263750976092807114873417931589628501687940607348389642625208874899142543738720270052784258732597988974371993162870083925915782293261687750585401496438967410734226285991277155630899696918233678817218356578141479216339184810889029163828593576788436143317067657527327842041051111779904544476118741916695670215967194559302386047170166075200125658737650241439186265302783334284853409308421121230565936289026640717055088117898963530039075481833588721070881068286952059578328013439180665159410605702206149216763484941206488499678635876001365084785326753368710460629099361587411759910072629132907648737810804251779754770815628382356621819847396751401543069544209375642914522327577814762219048443854576009573227658534351011374474731496262289114532732933433194361686549721001168633506421891192286603494549201880668527536220735921384246561080299632792408335323080155917392460958359585040898123820913074239697947513292287349778438219769828731077916537742736797659039703371548183375970898817218953048181092790062704573500179048029053143086748077478715847750190607578727147637347154888849318860115520318890644900745714757290290947848175201112744321349197264818960042067035602823362993396008200630911432787667415749660159680224587473399079433684786243830894817035516627674864473312178224756348799255150322542596336134779562208952088346351081443434551377311584982729851803681740234595736148723191408602991514023734762420182574274831413061996951324005521307538129192368540812481018501087906782929010906650002920844877850849389328604376866748752110313721424537664243552192343538092331581602138282312898262123741118010217280776365323917559985011498030575491133774384975172143461059321307871691935991306427717327876004638923821437501352510891374264878262414984470835528865093257122390324198763566639711406443432873074406258663130637878899256176712608814665144197557348676958228597316872499280715342434494031158956968452866329938439195606801049963475780751558327748418154289387629595246505009900112282749318575781500539671272114837049654638641472860254086634795806738651985270612530721533667009276173681822348049752979433965182540800237998437180408949426746426186525021574029666800052107087120286876325602681048089906599903310298517432119676161114789226955380311865351939420200695899372216695584107233206591598057810999798588534339173274930530216922525457133372312311611938100681757264124448135878568069472712293356829452523488056006128023079372203757129230413818355061949175770087675116912477329451526405016325611819114371403136702621078079695400170549063637084727840525056690825752351623853793620978572419061532106639615323163969813604794170926468411092882301586387656460674574778735649024963336169750511233450099617808816048622094305965603218606804321413103666062170025676825811024864322607655858682467982148275667354460077189725418063310944265631314292510364151665473742266306399931964569292211364091558331745327167472456065247595510745393923423043730482227661718542130780050105224338672096690229864516298636488447186676194953671039267115130127844696769185868315161132292114999034680547094152730597750090834775372117224120789511267488477048655955143518312834522026892606259770467253784976408174538871864855291627402921528868104657540309980820993356420059193226567393096244021871790086717717660780113937176447641435453704045309226285341575642001539304075648328408756323144442062910787893958288073832402070568486635570338577033992105484958620811043523207001843377358550023464069244055441961955432440336040017014651251736681433340107252147587508004634570904424683705178197710472794313476496991988174490375322717337487851462940610152098667603191906537189518565508719544412022800295987954101533857247308985386347601408858907675698616588837362063884201082093102352653660359686937598207027826586909742298388474806976059432036004491628722409027854195511934232913090203447859820994044068565528843477319194695262961293841946667558836916460607239328359953332090976952968686390141097445758094583962711141196813942899482586276477295445123821691351046677842017549917642839664921312569768544210291451679917636575346746457757265761936501913115689083158214289402981025549993947627819324249081690518246771251836395202968545376531391049636808527149304894439353215712445005422309720538791954338834646207701680587875309699940927953771187960014668543441457974602940386473176120304483982287857232497204537737879512665824508447382093107021716389266646187639894464298769137788650446270112435570604405792551102922441623695936588162040272649733482292707203201954953260769144309505088091051999080086735788037245644807883487607608559738946897338429242427600579054989193600198676020840802643776013795798748439798633801491706959276842020043490588584885951570152577518523966736080822526675427249759467413234179163771264841310634751381443610475482267295489170678958905780948213202054126535323496641568164735226827142810313385311593717537347445341396396714825497748328740022484147574428320911389615985619455275076887108901914924518311793484934547404126744223949065881398682261736279681651081394444710316185698901021164244574664773243320801557712935106280164658464700958086641989097250771999910432115873920883652908321953150420958753214013148827263964901114154821056977808509709142290729405577034732012203373759470475054734265403420542160660186470545086127693716040417531208081046586920460516153558692396189083678054370864747232813462005305185665875693819819377120285210131806280351906835095156024109954760886791187168206763745936848297004502659407602123490223429880027773774449834723620201557030213515488266403556930138633807506322370543156625252906330789121997595831543856854993957650252254157516519703182099826494134285434153860840231202176183667584748656643038036090858157258237427509343324804154591228711280460228743472389986002484878488624815096386912051774242646175936657732167825632406929488283165895934528755011569538241222024002116308139246528178570537490531013457952753686241902672948051700890205302669790691727818442003661968868422007638075337543499527710510458323331604878126967720523307221965605924542008848163503260033182990686338141613339096532027298769790205997964990183871855249480268022186811795092913331743374441580172182396832498434556978706888217002108323901542015685332642229502671955026493799998135642042585005882595276806270526389729019526243435499724708430062027692931387158208516467157752123030625093116438385818543559024907358424917910149204523745328318554612320495909101881690302173927065141194480229732549983842432997483258589822386484120164196632975437468538094887368924911366600047786970135451322701611421967976828319242106186275441918723526920735826147198601573414178731999218732922413777630843281093214151034500984508384522770642315833176288098905183288563211432625836494915119523069359327261436085536607797895337893162964910586445630045714935423490030176141068730071556296668911980154780848540984706622850684892051440836838031240683272369180386097953704460699972356432685217588175610488406220210143138572956912400028320803052417249512821585326641825932741984532291235745804365400853882017066050457421905384776414993269574151416398862921318260181092812113549226825281964899753512540114619003099544110292453238398518637048654851383273699576286112375790532896469429345581460125090515668570435454605661725808034012398206464570789026800584030249108374249220398454775178584878083243621651940125095751812981012615040960072679914683914618299066428005448829460808450340957231709853333307718996474618106472906160444664141970538860272072626939775219598586401002032931148210167856461189267012107959987873286395903976807876059202346553496736952966785898407956748255865674550339046283277511836138215736977108788328791341393727684125400021740338589364338811601377080480875852660109378610140743411303305736116651570951758373459021541280366001110173954097385391298655609522707287423307353964642168481695731641129038753685735000386802115773771811356685764847284079747746068476512017277533433254029160195896898583023849802610343482575977141540362882193497597970971125062718524739202050363113813567067626677975068959529758411626405239891298755972847718390696963003484645386456508459970651084518419157998877141955293344733002090844917825099911173757280239380250303782132689984867977495257941357363372613539197326969762676639050810965438528024078300069932788866016164749059353013463731739347397177936739810085371884166230555225593566526513690282783880336593509629094690863308635777744872957546903584533511202925196198127727951949988881625013533771549525544031259474536660682600393303002441129865605221951216721058473095960629876381955061566093676651305036514514064160571288237239414750025984108065199811455069506596401128801894703883702744263606022223303297903280428563569650580053477113449896475011255322011773535756192388098583279652070631041114680059669270072936946696564970678652543472812438186663233643287589164050011942448616444299050548063917582109848049462520610467171488862647116025551875374651717759753924344060592621236185202075847785806033031157750261820459688705030605644739213735369723784821206413528372302485127516200400063663028483628715059519728049724393427327698768374288704753838797605024910846071786524400528127529963591998244813297775965087565683141480550915192536491920734714582529369747386356697787910094857914665081858754852364786106825848705696830012819584434094824742286121940855461772790179590500112005015694518995396497674228754480642667952646496637150568999564657521245746210668183356092033793462237788678329144505448662439749917468477622667853630805778795039930396278415292327333304131260885806056790141826189270440423287866073965376361967163855678560370269904171615008134189365973257101408292694390102230847512593896603126467627051526433203232708890061036775862045667832296768278322161403969405585131927885333133628900736733232664444955545389187332611560116568802451119087655260261401591681495230131718207648761473787146054057515918269945047845072695230923655498691086979450477156318144874867078354702397491872185031915903441805457280343574315135830638530167306621542772602574123728880851125340240210102785281691192710136707142176317723351294855933090990522871111083135152776755551288122726692213593082204274562272316580672181998164139376490016591053195650963967753039261247224469961838004019787866629422953119400925636014913870683040115587201166649223716285268981002249560148851460069994620385265029402360471002905958275119963270748463259300034382483422976697882336172527922352395815103558815337006136492796077803256891115602509525650120959420140219183839956299364443317205668427413300446678235323994069370190603906266488434594017224325300364625326228158711227457050048297014154548640073069915974861967482205175487687237593181262597067259863161369616027006396356589931025497838241491735758766683355577371500417056979913653526542442371794927267203646525625141745862643156811918140520047210896627826738340154641672215686959647385638932574677905754964316754399574670174322441542170310201158433051208614379431600342235929611898007298692575223221832034197207763334221477323699642337925063270918509684418151606884096599476797586718629696945025248599962781223536567266137161322873405068800619816372227087317967420472754716186553669728651754238047124975489076274817383535377408794757252215269417570523784311815599730168269914795341717778245612611710796577658530698507758449255579968460952306442215476087655167033761013748955855230809946211894441166741338348047171334674240166460699116062865937292548944009658559104153399923601405641032763586186230317438885284867905994038658408905424977612891681923797201538265012351481823707246590154056080782994773891209909253320621888114845704784751481311016583385456331446808881821830652697481316398399038284528656634898137304604265654257201741444822787274267664612561192985166474956613817613875016528912067990412002208486263805934546990934244120324677273505112538073460686322177751520439738517798799336173482950261102634206152841505462915184380718636761121879041744417707885821014481878310639137954020564593493995147906170862879648322695042591810688278641698516525850174955779740186320640167282186405594712376333290743842328961316452652245493896185942983972039204373049278004923146310649211978497579991201259469042519730603662198487798269186000953685997405550299629636163112692027933461384135506589325171504502479844990307436776563435923595512537291163069241740465148173056802767691083725820416909811635042749544465858644512007131261300725658107449259193379605633194821177985076993840138539878929545376253200493208592222742285095426853384260453013101145269978954195431864328084363863493255883914609440969253603196335704387119517707975772676895846093649717713190940396757347996317038105086485479009409285981392340303181594340574401576088769357142777658888567506542357420023065645758527162267783548356371699349603415998674592825006426156308263024855738337352353184455767031237496163851087468651522350349858993798396058111775656139945396291215196836833239329022651907069830364139501417166552809579598982522430398836239148006681515947033760783259682182740999846500569476468655153342388767457810300623757402613161480096126220745797462836442197440697861373012372094751044987270418911708999627265725704100497324619543424362791767435851326623056948169420601985245694569364562406879981309263040278416408942514682926716405529036161017898616616374494661228904132621675782394565251801937807161600187476670653404595655703803623742312508901541545589254402637585022413006979876502237745836058570951478720637361954161129506525571384934824383603080166698764030746610535297167231820490516027893099806375074531769198313470929866880167657374081256940004074081020506770893260947555298497781852577187064535203257668908808540420582554829044039558522411926039680875456061095592497317552295521687637816656552456293189893803916352034481717002989278447169000057829040810484941875940226730382789021657449900859988663080832980909738887902972053713381119625069814148284138859703464764773827136471084618175603178285014865229619223463375407720162016003467745800490645972649509972981548076986025592724250710673195469566332590481768146617876031321089764570974174012131101799628119130197982655601291557645701015468635722540683488302847990858245244754305394903521364752686492568475681819687144992366801637123530265028890003067069362706855836613571808261370440851334546515190550926636776077211977381342314186188556712516991872223596253226624776301885722312390297357479941740896395202373515150093412721655546128783945987336990652014022222644024222023459346958341483063790039603449889141307851636256522798421870428104177502392801418495940765465348591313575985493903195830215205801705106276376055189032836349557051860326650404510597032652907440982605982108193656029634523645124128033983642967391193940698885090114147344052006516517138260745809707283538479865641600654885676266354080919129121908840746573460277858305222066321189669748722572778127687138705726351809078180642530082440303458163998110743112804762051448257549048692696381666417506661109578119800984209671433406061184016969310006235030465879120678486511840766555191305537887307551781195632978301612289038259218839276112874007441016237797705099559911065700885939271122483890699761559267542569788790211229913482511620218210417935088708762165576767733491532303671708863369472570826286199218838187512950491275714214547248818101377711839288264267817886900599686314095896950663211364768866634578415694929712220496340677431342960941760587584960039829348334840217621982674636601919799223591459397876643959654279705849560220840013693947965446380147649141127246507948434153582719300925931887345298672859958849820854441360371745469083268247403094938464589242134595592438456263966729895939027193376581975176017747915055207442326446877018765312994114884590668419009359548176701618313357321759990240958767876672828469425446654449238006520942108376242962970247607058429484753831127173826722222441084240069435065882463500207327771812895319056311668137341917419850405106158101900669316262358281029067137373978727322146681003856715588203588234411313398553417308781481612568712173487496732129459737613677245681632668038758786265009053369408687123513020466352962991520526274579164346499489201399312277482865085837187407071332303874141708491867815391295939339113864330462859925314914130572098992778521057431781499781696037384881810867651335199709325043613365817429052486352356834550952828336450652125726760972386815076253087224453609656854399623064640200709502166226357040223812387427181853602611599991175741323190506827818029445192033720901862328446031461420183973989485743161537104653843164508875818220682387630001243489536964905837518035382400158470408685168366824124447108260258896850899967210320093503126232130076233457094941027693684514532299918096746072814335222412722536441560106348221591530334236554593458106439066257594160248805709327099775070058200495051011808792908659616899917783483938300921958314652198270561161829400097470826390683740167460168528315630375078993877321537898892459769808645235440447499715658793945763438158565491061434466434495056354341336086548638523843892151079655675355959579511070510610974187424480228411894064661065535912541151175768693420568863134496695602522760028690743746626673798288975561282191207310662811587081246174782362199184965843129832123113892765388092717419509785883655646664244295002208746240023542203715844991041346158196756291682139984618621884964578080498696361082315840027793960097429928451650202460354114443853111129887344205990007081623135837488368387698747220395882294826278450973679429670857082652943925549123408212200627551116248936394097451653511033390840988703151389469606216043807054415936822222016141325475907205755236743384332525123452681049335536646850881209567064664988108549144942704142063017526036223387038112520674375261012449085952086375695729020523875812153281395318403197408368949645848956828742340854082588195381522171473214730418380590816442171243840371744711735141814704778257861062019778976853785284553308183465009042011475025449315207080617645940157493545421904618305939469578346820023911457529221631841494693252596188929295340367095463439267095984656984226145363337840127882768642076613908388393864444380130041753332356885571130250025073085791410021813870189484816514878806121514952938983771002177240675893061955282342942876211392950320072394047455878629036787166799175814814062071504049363581177067998556120692936074124027498830781794220439371756615775323723132299627755783953058799115056250065323374862414747962538349662237778647943753591412492791779055287935794020758961460694208749693243401337108383228784977507600648158801041744286531292757698668613424463836667745549083216983046925416920768136212753287253940931102773046302836118306063420798249005287067019262350203082079079560291783474817647198809982701974367700378169956958533140069588337308349891252070092044163675530025796940707405263243180605739345370101193895256314504259791233619984010850547970490369012185864976566422471583253474998353185635062216813335305392333825622332741276897057005693569674644219492302025160158251312053836650252980014220378910189557005522786845386002994087675308865739092603925106806105181867212564144258420342240771062280307983614294045912923519719622077695127142606913212255945561606363834741610373110549905628952965404046218449341255925455294754590851795346718164651877337000533931330882928154122608686796750993250053297970608816561197496059946148987538032609730420560582481831079481382785023991100431476825582435980778341380349260539384781598084501104144464815262000311965726045094743109332143537531169326322515268140342063447364864223239674416252788758849428278523178102250351433610211277144607701083315220725550702309816610846870536193159267890733598603400330359227017464775419967082018652397643213845296951644264877353731185549448142025077433522736893372627880130451050824095494065011373018457928995945605520682365570431254660551283977172336541673506071729558963791410461964724446091576007819212176928477867638552242668167364360538011592904604463788654675382527830286036159243684145314273489366713086568881853455440077057256562853857972638844750232662144181401733329792059535971793896914426292707129629233919427438369377914038974440145861565540359879130798544838258375300408355585469082457864519094843016246691579950454114725376131115317180709919483356843836449237230383856816566839817321490141978531907022197894213013078828209710354701376190484553533319178520124901013183697560180426070930340298879832300117385035587667360329196782921198439917671653122529300021215449292167519411713943867921717099155458871584275792298685665665842910677569031907154649046619780051637656645748057212473498872332878980184370158399796831932630775128591647608337628580155698686218963951534987697704180438655156502954953067508000187793618660899329766350619388108195628995860880897284429330307514189916247501391132232241449589833635050519771462703539574345598344405106777663107445513692165593394311864577184874235871737857953921680038848700206832950485171948327142852865026132660540946902199226049483058771472925377955564821274575797359883675850271348150061257342245231385470896457613897211063315066679642667092425036823607610818172084222938802615396122690734231384752545830114964310192218473719221358548362485394546032589217205662781437771770072586094290662504070855323794311563893470271170665717151717103257991652889078195498145423481723368345448600212628579293096921351837015551690869399413061489542268408441262215606293939108579099499973438023429489574390256034364099947359333690333717604690372357663692335583254881489198153340180801435321951075916312754339188172770297270412341969658664145296646411582268397087919048725706452296245723912397913495809945942313994136670750881556573051690650037582239461840380415256022160717691687286467003357083973161688361920898226599603372248209346599038929711546502753331138453736449536598775149051652332577926831092384581759223108032370583001135819074367266660727830458275255354951450429642010322349869855813853186396489661668442215771844902206431483301924729884417853579883648013727426471868445952384778161424694222292340410153922073685380247073034334300265303393327097189895893837852093595274814549694440989353166330803679195418757500114294371298499198090802677539966982166713811779934956620329252162184711683958948040834429236817706985353475977057918380527635957727955193268632860925175040097290305485436490851422502827875589559261240261799061439088056428875516068690506390384248959734872258424633743464537629222182747380042652736947459666244478804250096032564097325665309674330440419389329600438898930554021712649271777496696831745637137666476053319073566459744515362945098588066275302017574668497717017143921126133205196310481442402968952266463038096306670264414846727218026013474591235352988891128088644416013954874785704293421188010988269464158135815754038894228954553396544560173807225478211828879868202596615868155694859140144110797008208139421166936240149964746331859913246521656210177390639973142338404964144504098137699237385096651264379760518608203480369344917154983680026792153608974966093128907899411229524965578099410192218466397575361524302264149017520202074142626985248779505640009893248076610565321556281042288236277830408793468782493488063215567773609232441158413367232791800871747352838365277030726544732381031574007293937570616730819771159887121430412725545001578625696623565870291729140739430511546378719053728273882853555016133597776073398875370038102914529180161331585745311140489272382080294710955455333803841922834604684764294992664512345791122507649992458569857334954129032318873727303179959309073978078122906716180096127258598704360747621154673250386029629762306976547149740242848983084810342685199150840860981581143779582326795204976612454565231486668139920934250744602119274355020642741144792240948877434502629911227800991409390965794900072102824987679821176501013142741091991773449223508859563236849084485174006210634288953768847203090163224966203685879621750266076088463636183747721952264392305098114492035486865025927248813558999351982124453065148444100970904213019270557721360408063645104429910936779606398076363200386956199607612270912307719081274014892683894813409299550025443768543233437642576283448049010328248576320481680655880443519910201646707371182420206545999094831652370182629420203672409988604062296815904308169634450849666662754976924361418209166068564546789380130705788285010321030909867437986901034633437999873917095984744259312339387699139814812702659890367156228293692436468846016646554330881636150883696605828461699146832312945510047622537770079206921666347014822736816143921616729868667674297430188362881953329330620550752588871325306812385749752066264397911647023751800926749249500862511434745620298917773159914841002409129340367071101008186586827871241836546979024772970909940269881670629761337958074337160892478756760272931137859461769131895953323062833085006548706843096367287426765872365007276977375673016326049177965833319452104809027683844338909521440550851132893701974137111847336896262259821536634575621748346101593242993178564971991490727173182128655421777895782942197584382105570181018758213919718604572054918566816075654606909845679281242140589521215481938506337791107086448209470331219972551891178025682801035451617474977581006727543206291804234261334364774068469590397222731419568102111026255230988762641489492189653151664760218136258186068165460713753402615226119736305717838245704870770867207248059688605210568939956296552534192705175158845200504832723127963484184575879748642332896119882496083102163947890510611173443225608551458366059130081833258807393299724241486070089638125875894043913392305165371547398263786062156645492524477583316853838644148527947435340760941520432152767680680676075902776141028116379431066184344710432451735251818587228002240673772400221965800029461025678382550994725667678205717917011563966546371846051980643619776205519317852275993247024130149489132330605433137695942772877716345184947398884191823047091967374398354094303181522278743133104686993570938749254353140342778265443477031416276608575796924451564902044904811164281523033390953848955764280987933439467126793516240755256357184866010803646498832943349691893381043838095995960651136001929703798041912204446419329152111121427142427666239814974420778629069194788481582712015435776937658420959532895812836750758861505630943975116198448788596845480069016530945013165072978022244065550243584642209456044529570182831647230334247143566418874413677479586630212172677722886687486531676222194451017157055446292002760748636210261973973694523991244067482349388405888342564049190944193020042847031662713515330543542360944988692859309945497599512131079675111431136780470737377497552608765545442007678083691992240773318848009892461894105790511457113966755638946893034061505552725412195006189646889452160887778030721930324031871074225248256078243351602353153095439337913662265617915584085105593893293163195047248434914769233929116006954705075056650652279780837348927433724371807223407809235374156328961654791459241220609282579782253951850305770971198872083093923026095691370265466178533571738334836107179881033018955744018183531626310066926010075859034041992466288942261564955396816854331596927076813921439159626065484998813291684787358562761803925900737680080085395271762339942488616699902206544204350184843595787006506643190360549315017294869377911010648867949511814892281764097118212453077199380117275981602131624766709251341540360259177964125986802903308023319507484918526955090198218799586439450152357439063963178334519232739113156879485840043040844740642108535948849839933549173416137414717160871976216829259338235945123155350515382330791679744823921595497150546987146882401101525060589699888031312654163005444520389501062528020102291193264030454231231679876969194403958920087789654634345941686649088594506684972746971875321493221459632299660739540271624014018969402859109152393274140666192952962417528165141637631998218835335900990651402199483445233672829063615520895841461304198409047372787414399853367408114082624932640551218034895154482222138613905585588999404964779046376341954647610183909793760197610853302079856731837822028608926892858934858131128263683083556629121283250867444730184037964781987043357924677638517832008287987018825731232523147919765170721823171593666456204975729003910248156997579416522156018507054661449119000612839837152005933143194985324248397238534957479205472334917329348425470432614637835709936773652601485257589598946581274971131444935730500109491374551148155977231898433248317815967462304176665972315563945900465770300626209342753396948571974167871340250561465789790321433806292680708895172124930037569714924991025760491655491022106561208163938811311031123130909040774866650323747844649019404428449955949910794873934580411414092847951805304438223132445869133410505113359031030016531022095781160939646478163192683049337803944739834284461454071257095368306898699183460302984169721260672310017308957479612121562588894399198686262695317335419496404118452124612381983030600472049413959964296172046228852646200431268861735837895087154308037382892230152820754068218799388376463205280006824768282390196763865484259038723604567281988926926023215985939829355858804338974906251216334184802101569128752764120642506252194900491363505317169919770403264139559454807014362724398438024228378439454989442357997910298429208228407562199170740345268169652514389356065346024693010957297499032766543920994671138931754848201859303326603136123725404820993139903503508970051090040372155064825705714159118350529975468910104344138804476188631313489785193360935209866327582820221934251753223998841119140957744849886132698698588931638227948860941856725936210516169742991040672561674918456333132539783235669410847978650808359006716776128081644900279045815172806793108810051867452454683026114966989630320931893567922004094105240223325047664044288210231030828089196898321574352025350213238122631717339691028857170342839482141687813164855372458370511473980385686721137583902874810230873171943975057300709486581290020877311782628838696876426335292191966402545047447294860093698528481880159045964473991904338201534565446841943788648352272933543878073543072783403588049250025079796726191057132019974531438810463382094664298935235370844946369009430392036823707077461606788639356567203444493113516874499949063342706911009190062485783371753354169852602902830157753971078848065559544448318771694391849379928094249901492545353840883400345825924774800542081433865927377189193285027041342008762540054715946226337004492260689464430780768727615701282992372311556495359647867808687148951152885674190011114996922954123139123916814730604494645798361540208338178473122712365911271775228883556961592266207885410301292974750497254273685060146318260338060885075656408733454859460484651194319524391948517851372474916825686156850780384842829370538760300702971747725937345675906071648304619865944240785080490057074683925816211691061829353379904682537886381141927815315766749517703335011714954141913638721700751453057038531588053548847459849328024363497754832202689165752010285588753211142914383022471450999566434438401373219112960900363332445768102409237159932275266720521491520326103238959199164158010951014351500690186202407387580279144688168942910522709823325039864592520533933454500547026544779730296451031229030579590349152488166973833019899221491060253413983701039415176737164477617315590351407977798126670246171101406558738378618146183805336230462611490475032787253235947171631496550974076522550854503309875001986743333695659183995424371596286462440250670492842835694652874752399192058535525841915087058651978823070023270049700919100706753336493856733731060307810650604846912635173093011735445649517702366392865311453652416945595868107124514960656497952791758493323559750189102339180666687137745964964090275988346655909931255256179674350980352174698423302777576987701438695750821453068287687544742575623973220981054256742798441545790027064446297978306616389221940270600109445054906697006211747455190826005463394841408959858670108614938223539126910703150784515735517104092718373634536508961248399900367912187567498320604181211385049683130193098763674050962267637910262809502228395837908294841606472652722586658311500883742824895271492591347781467982018432035589847280421162574741049540578132769626423553900694622509450712920226470814550529100583090269774861431669017657479138096976045904389340504212125995326479080445725589972654811336671277216768806486411954573466751716644139140571107459637864377694845935314837521564998056859092300810720758746043089845959314242478896742618234794126912766377646394472986687939449382877160774524436572647418148097854176962263795878745432743656990909846601613368179301743953751258321133433711079490114710424560827309578941055385955282100211016041999891749472741953944564537581767216962220634287705398680972668637900714515885695858606116934150653126289749394259190667924139871888559240025441397705766468350360346107611175142271915939146476698502260220730554935036834100835862480528512750788310153061391909336963628143214789950176392667251549491126673171436807255053689985535962295408728578783962092252730348795985076084663752940612964932225576760587805060712725602933857335755403545637772628172399061356532341746158445154782635892993537916781916809852305022913535909750714075338020663387123625580391532773112684958002031839215761247203413163390828398241967119072259095135518172038602172869738049067395220612466477842493053111434442382382923952650071969774446724192084639732129828822199333073745764734221136673860697233927870371816610483635457533576916264576248126737574307915306637590091869277753541095811623787833764209640552913096274405105677305909011143932697659073601126431647401638101063636910832641327147921157697093513949407052440365634440656095706797618040301482938135818456680695086297508532673921525243508206066715175495442084377799421003646404575971084250404921735629365250811669381694544014719566003398327886600882387170234742803181143437820452799174585012864518139597304140619341860960759995082572145502634189374815747580701953795066550981943117813444109761933265678534443505091720257971435132311907921314143328020242323948210300979583125633255063814581637805751818886016986698546193786690929964239777450108799410670432671739603172598848828207676472701302192580346271857260912723286145025976830831548451202597581248635438363407024624586781468601048828322611253049162656548320026296562090779632159213768444100986497363144517545511640676647498651260587734588071571930992960504093446076660309924598530886549883784905535581645155676453804965078574364707832475175270972272218014163865396605946546620666353000010863173531493978907629906047903250644777747050163964791122524088167479198205198226749682415508793976889716259929164555948620349149643032883368198244565578750676435813002629682338102427281276677147427337007015188406649356347378253276208341356987159839673065161441994876474982519736857556623162822330313495269704778266227840291193586359857418425996317935215900771274701661632887590698804571653965960015999072256521628096813040810913711323081056154807207616438327821499221920661000491725418843555446334576101219458198831466446729611697322225732306941922915600236390592376994250258085764722610055001046780340690555919064239404201129503420333033560074568804838814277072451175764231229043382798516725207699312604258001898341755771665244716997664289619724005337740257611875390228497148746763801181500407491256918916867280637258845249557573568747477781095155750532986219294759713308314075431438648942592087074174744929539291485368181079937596464662336122856121702140484505558330681017354972091288722797324767424590196900648765923414947471972449524976011357111302404452455561479655999063333908040913959169133923913568667259520710015596156322693086018857136188009492700248298878156402821599014229154000847717868527035967045757083434232265520037951334177934991833429886987050248037967896921655042542309612173398298853538356087687286406988894402754722050123943938827971948143094342275315217863634711375442158023536459821787031528384841402015972484084880079709554324396601778676858415105782253981036939982123068665926455866379304314907788489575186764284624381038903622316913621052771216850528722182976880122587864235966396891448201693468961195295318249355353410035198704375819160261439999198310394979217390691013651080065286318558486205490038706534180302814973710354147381336083593018233972957682945950730111701781356843279136243306374299485758310380506126754006141673480886666757222997449826820224668080257550221691326790456006671807970553725488243561171123607791607420859046655448142826187002413516829640722885811611594574598701228426964868069618198671324775821508238853638968358429664237904507452457246852314971315799719994973403407272078680185272104450934653064183467258149741598297522877274334945423683601225052709499147887544667924049436117851808965755363956132755975989417533261520209775787899546855777806623481576606600262036128536038596792577689437994584428599158613280363535353653180874229931539378994707662828072890679378289539587290987022923802505948291800158577066893421310874315625821037754610194625547912028293483339306168307471811904755865721245533198066409804282424074766186459957056723224277445489181249129846712645228114778933427311552646337081939923819415593088756477074012420747764953646314267105872461916071448208371618146634450139429695413953593814045288717950298185792925691175892516454389890063089167405732117960210347322725172161276690930332915877924298498693996036155385461620181993162102351946423801993207302351557980808133326472838743693725998000214520665322601338664077682660286241638787415253428078120722046040535969361633257107487666771593471872511098589892552048287593931849305881735619767595368574433024014817657204646156188794708934252724208809170152705258735559941661920716391483767565370148106334511220955121670781564785086078298441142855155845551650490544112931801671350131897492499676978900402675991044781788200808273627240487838411535798945216030277200519837638586719649724111995150314476365889547220470390819073997627147492345281606272291240544665246348632432039496339348510212888840133160047778602381141728672141105887075886711583302429691284154237272137826410123449946028892206045308247699668543404655326139810095854599222210223114592578997954896166298047271184029918160043190954718372132422401830263327313815783948355461963137848698356754788720042474663642097419454550596909770781299557828229038091619478546162206636293779786955206883745077163737551671212612598983460719500564117814685607914317220710392921076497838200532196788182873167619902341196992266328601604674647781351550359985558723248369157374824326270108532429382593181649692223210563547434374225637888391993882881057755973532866469916933078640592509960564069254363985063609380835348892071739595639637874999461675912788479426859084492621170773165841125981810880426587850941110508984338931069801773961297323675684966124422715406319645455818832783924799574583107683802283358729511485721719361057671250385229661118363430404153052076082118162090343582655702377819453878868315580025985519813422324927611274148956419183080774746821045166439472191372976238365885363498247564456407439133400710794770430437486117198665061838196433309501501296627824325370180332445726130414944528426025722194661322092847144127596577875607064128627439386932570805467867685836446159185304009020279040630255515033405731604940887966337436260577565570370820561729214721409162610052610936951704064006354299319960840950562618566451107782999790398609539244967727437985787753199221887071759197144173429402667817558630695332673814593184385028242455329281377974188368530725061262195856104449279442429641028722162788418681762093448264834799316792341509263771164563006965779385908213491461640067904485813862036938931781973278283836652790505970084323451426905856196106712374810322265800486473086891354137302361399486353782188575781382011608678296699525654327771148193745846211635791659972093987467391847829978416491888631718592169250819166815679320830849914128137087979522706060822160143712640588537790320896968992819039893252167083510437940157548127292217585079972431715721258711247470797873486794536842337813521174274170538873568344044491669085475665578711286388513358554381573453093252210532767989753933569818890907804105963113565729951401388823348846829626475767073193906951714844199354573477931042582516363836310143959091259041819658633970676400857238932575560647030532474379577025996894002911750140526353910681066014444479190089289846713674804349850248221718660363635578125109444290501008172316674533327710162277443511351205542678828532544597513407273516228977231460204777795746997149474336459974602562538097161303339789690740384222044088522806199239451382824200372908946422094295828555888726342644472017752344513461894831242787953174297964372487128759478311310786420170607455847835322561758509218576495147414075447709588491162076884803908095489758434216192880278083854100284859843225090223694981543329655099151571656511907566667456367943154346420735433082692367754687783619732695601516956472303497855331240644342048940303767895656416781500496862871633066736474878760787502070184682137305147679339248150043286714227624511932554992373420235921711297750298807418493043369749479914381362610188408544679327871383994434556705187982110701132732889649167774169946703464077859883414507013153963820428011246739118769368875633102739279577408027052197359352655354151813202009833298491938247672362246218350190701219525630215865383749366460424824415793010179104978809707900322054091837775811629703453254952225303487040941844233526090159470965427349170898018478423987934876306620438462532664804521924542586610094858271859766712493094861744284351233376877874561732787903018690282356742187797159802002382269447170944180642666832867846348629884990901675791673649157205826076359508555298674433259213552146598898023512738807095309868710817881481369037478445509051389700050387730526047888349820411376658361991860169048070793836843170808044876000926625608418816491301830658764120398213899072016800446663229216410640339743610213873874028159429941577545641336120211630408575627261666581389348892088105854736173953344951337732129894752048724806401241173092594944628518810518380877471976082575954798128367484178184112626966029484532567750801494207932035325889479939673869879018302509445433039238349549619088932105108225113573697700788229153704514175224298265011733237317462005160945613423518729755483909763764101832548683192096174563347276491029433885765293620131263075284785196107787299967135858218039403029340070141211636958502191469391001625128212472870347163223181234376712732262467395082515351908202918204970733271822975246980365457237656353734769920463703854301399132075219901181182769177702264008313260495164844753041100775791353948066413469750213413493262371891676540115463970791881575284288626512339371845475150503165260592954054097951249815078690014836843611895076783560163523828374885787563598695381959824592958230516736684277444078004025225465909729113207679681478499493509744373844014755976321587349224363346341360390578709148678278140569674503948580940192019137657953154398604979873381027160425829152577120361351243146898860440433447616559666433198037037124260354480115675610867765808649697750797040046666067865842976249167256929446001663823858491121772231116878735080469158137861629867603969087524367204081578890779782038979054615986564812177297979477756034632161183713312067274533286770970445847336565341869840054237278779974752555420088721282600411343045153432824086292743330253282248965492750175501223915495763306942655611862080440145201854661545601446631602237321956736460406199092533159953855913184733023471693357723407921041384703659081638959631253257560850628530329906466704156073302399976078107721465322042961130878119909110612637284783243394445595153933330858499088255060845159244600961912902244918920433179091593592912961090430333043676184511688893628451248835289825573892120592119827433078467384110438924265228238120903926631809901222091834624988736823611587923839114862394001607237777290103174682831383098593036213100811137680807357381726066317841193067082597495859487840688562627260271795005148238425774751398467299230114918168907069542270942468906725644576472471069906659601482836707757887813217271343474895868452137800055414009987268756115582656814170180796220636133089455332513496475076699122888316694074892143328716212847793082669310718039994418172127781629637140366787155677660668611770341725797633213156643881385095672861384342104054216965171383980687903042719195741578536161432394377186516405199396170351377609147006431590592866358116928903616251631768052675534585208976194665770455923271193153599432890519791948070012445425546184747803977569517419203263795532632979592610122118133868484111789652708425222077888202527616636343133070837243572063561532229367541984845615279779717859207057332979988457043624773133516074048100447511359575961834323435299392451909787262639472311323441303436083480687984010015978674598052908537742679897069402602208362433268475939105712025060518962344986955318356843903895749058893786790723221186927526612361426466237329225745499860489375558384528563922777332773723861355977745792889111363475752204346694012388177125161779729364126431156781237996125147230668669717878986617083486264972656994597117643029989375233976610548064412710476677415304188426050643310063152100963809375752423158594752643143238822902956338967804016851322501312466437231464803555047960689272120724594672416435480720784098186193430542837531618204110405322808955994029807580210204433127471604299395473726419712179542941980517825640494434714927262353015799600632527847181796033038179084812002988210321901349350337957086003036252260621725962942853440233469568676630458953292959453226983145067548334052242690826547755722246247396323129132896380297276988720541415818098702060286572117780324832610087202508155455486636668682098468051973876447627934006132481178751255307001321453551935226900751654629754973000565717805850840462998039688097336038922268330830945122112136255717873450466756262694023383712542677052958262130222141162090648103948673237391185584202517539172492452049656157718197774500499869179972813791419133435501758262478587872660773908782473173123092660958313173807922352141443852233463373511695698459207588796670357606014444799709995676403378265678672541790085302174496363595218094985322605986350050444274735971005419370742715804787275086307759962349323110515022432870592577086458573951792812362842615393587021972661214301236968532379391258146259441314350001217931675657604825561931757977515107572679337475308642386615237003993931555721545459856404324931757887272737198280901195289275620200366473741373501015928624594247641442724821189338203309866584333021886380183793606662379280360944164310852504628266025079824520906472781632440970094757010310057848410152193064109478383711506717610344985225775526172055629079145441833157951394019444936456700926551992030288747953001850948361651859131465579161550558535260338252130323992303307440968220271806482988647345177016522671856282977737260188100229748356048544439739487521419788374859883188658965368261494573289924940830040634858971011093524148024089583251086178543610654398362745131602351005506716790754558316104331292351982036547643905615323588982476152749367516128515335156836996388399417797863984252471085944388176728094063391108501487394755103134937340012909011994727520420874002726407462949057024761461424007555159787705753386503574132033608963875347264674975571088973724499219956862101382444420643877962483861710585299191178086997381295677562418051869397536827844660337034604130994687520278359663907566204930782613911759771888097040357744161377129034601175724340783317517168950345270237950856390451414669580937519397856862831707868461468550134870328037078554141059059082692482271290004795995448468869219718664328141015671285067726845647370331196164991839930640929320811072220847244127204845938772783324435176430895541808632088834582498823890808316704145119157120283629773602815409044161976009952047045375674569484775840026683284294321042482848696820980818253782524135109102311718053502721509847599184956209806379021552963035540855108048016074639798301158785726690384701606011747555024953466127346970099417406800546459173744590175505702586441540404684105206490375563362931086015096162716433703946594493881084845515520144323897170143208217270702519013126081804932183308201399217489144953212932404945804476431407379375219525415126972449985406071759639729609281513617580288368019184152732152013508156845487425017074077721816501645330058840127227288453010747099930455234260601135086699296800361740964240443052054239529675360213645362777123979152734803418454317302725104016403595129944901364910123968486598702297110051310526319871237150896000780022392532708814493192295862520725047940090688074933569425225928373276895736554538841326827629764828952018119965841319148935646469228100713703106442481070692772830970605773964945144302383382228343691654063704218015945697415199046145628536116581974630417655312457089527750367539387436246527143498286681836693658419792865350302993536248851725635567560838748292785127854116919968025428429581899552959351068115987275857497097720478725776067041696417631985058838596255104819497872440307479365196476866211306209692383193110204275611511962176775567836670426864616690672796378654805892338975584386193993035180203041580646272616045038096235250984096638175584362883173967206191327036918527186062034695137461251523802943704583759282902723276980528227214417347942125921235505659441256976602576566880292053178337151902895294927615775963367708272704742440766854676960735468247775141132297800628517681992435180418547585801195613891632361759940458414127241019048116050800860461471218717710858103020113449528294721548804562747637589715152827571582400836194806189207378085651097045770959633288251252732695457216661678408580994636118665582469858579636760663779471430453963163150662617597805620080523602841191163357249173550732084021264849514510951553661186987410302267955858324477704116630347451258631602377933648329012031854066443826584444079553392823204240578636278108497979189026285292355960210569960140539470825348105820058662464916994931196699232358184326536401201081220140021658486020654900128436759506114539102972172431186180351146228495504118987202183665695518799780658798689648295913306020407806788722588154983895589194418369782410330953969765438900869203779227258341350354186411050464345421444066524254150653232707590429710316710549057064489876390004758678240358214879010521004470994050357951646876593094193271645012458027732066599399064294772006716965149688731087933284952780836805872033695629936039385928909801769115998657814765567290598325259677625391508107915630611436210357658385773318521029870598555841545118522896664355551309814760916684076858565644287184100590936927171194810719427614327679076394601805610159946139275913188175084898695168424817479425013561972451284022660950126519674863760796172110574944717901342225006765477671832783246844752999131899977463143226791514884396620436135503074780274112085148185961520075190401063805004983394710978491083724703512750106000352857017473354142113594878663806066131351793155254869009697280520297966454822699686838858200413976384626012223934611179655343539630048714534626950188981003108630902524610231836159818370794941018054388015071664857432917373157197800796333627219081077209124972531628309271581632774851738922909359667106130620817127775739215180841365354119960511037225708521664322870227052477185698230019982653684204528756536925522206167112744554459783368635268460203738150359298528338144078203552293668205503881832184054573163334528026689871174916079309230509326647581515129518658773117550465874062804432196675745500185848842522585074454258186074488376549751412835230823418205304514580880774652188650063301125310473505777600729728609264560147103963674641107079008912321551290623220888795850343534904528936921276913527015326681345590491029646176658529106290594315053836565494816665830617619303191043407695476506333867171298172500423477029675658254448567876625619621366287484438427377837010887973125663270654795647023177659692926480678069240559686484018528242003993762842222391283657083146372607942928935936535520017802325423647570352856268264724898811868874085425098029424846076494080042770277645299653838192130275883540350932700174022054164562448849515641184274125596445385242404975187541718061570370940616276036695581051367861977806472605151314127477009581999501618926946998471982223619212546347145024517741393949474626430485570682236687740980071362194786271668587320367268858200503315365548487559302375182501103962001089349489606917429935238427579873183542376371548239350182613378448362747737086559222637735121123705020547634017147749605849413006627362708654396697571909016631650664220180719950724997382036938175918599315468150541209225068429273377696397627543796031541293428961994244434609243171644050537990934332843140845289441266943956744055998606239223578190635564638998935208693440243510952826425438725691321924133773204918523389421134691147404936560079196190159245040510613984979129458499634315683159879708077267987182416784135447229237599983222779641571151496761604306993960089299511959362952143392327216416291481370515259048491162815793641282405564126146688384597006420570389835093487588207162172443948240244781051301084592469430132815381401245479808761221923808727012865634578960168468935618279560585857562659773458859056444568614387817233166406478721714675483761168379205795059396552128515250515226563343010663321289868485237242953858631581291839802806307914999777508156703458917834650211478683970366578109955007319820537290977634076838902055092708789999820751042515265802831218054616963033747376019218436853586646023332957617305484995913656968178235179344545357648207437206536308530133015629855103546386477054584889231095193981949746212452784253501266653788531905683023864533490447906749045294458922018565112012473984307133636669688306342140502652469641487937428693227608873532239904714382776431476298096873031748219379360323082298775505076226662524532644392479515942820499483074501007396258227688869619706189527117761210806067763074529421404836372439713220065316228398455477270596465659954107079399682645969786429302977593875812337196969855052149610404979291183215223762905861486068493408028902502213713498867023075606600875390014966063699141523694111011205607953796577801107328894602938569169167007744415298110715164404274647037700544745970924567481011535258709291919603947062690974192977244575709924003215881253175681938255326670312151735832386522958164760080918200037141261532967139205882743846715655361371706064677598171999621011891007483507481127868416323313815963050230589896739138091316203646340684302466371877919325585476975473008325021934390721813363994939549762871144224031327632676366963531096721744687840325362498656035493350018007509199105695742001104089998628710606902423208781475068697453619257890678874838556200194621543229754137138461842609543865180946470767641522670193548064005026993532863590953868317568885940975091687770354018140941853206833011684910745938868246827702886720780638861697156321271558943808754480929022166315634075528300248293133138338038268376939268946906466427585908435015769085570041128368902242338623696220353795866756806716957945042679253184228478392544388208386809704277885305083561496692880423315132759463147251111299302346649415091064357429783486198308336928343174540497071158258710364912643777522934856556554409785172988307351811817055104334007893869600243335329812029260786214721098300998438806340831446306194445749043777021768512967051392442299241189043073266986395818279802778816592158068465818634231664692160552196987315851398697597262658338361921972290815480115971124937909730670757335468344286576148005598794416481217856437014510108690285154409987323559380120629345305993249692530512109812733119339348664583434961085730193567594458211168146922190738820817283729002442014426013716259652690110221432464930971332361174938607101925957853101496679382660780302348584679880066151161119558044652427052612758367164138044540170090515939679100874743885827128717501740756089265327542611305348991372109417811998368724685968993460820608004921550117164155702905344669860472008909159737646355683065601880349870935726478454761785146028456054512830932042867077527269138047120583799566505906164250537999982955488211572902215442823671179786369914741825616199497601248860371854335340305120645832298719083839884066273988397955254812685920599767368886967078913831444240030659295389505543869763843555928564122895545982702408965527880803368544367756696643769637645835020126831603876306636029358429620607812432663631095395262824107559759713629806778856130567338925460981588768425528903378825844949693115933844319025887900665585442155565547379997760766625429181214531652842879947848364196835406417756639662721109474319354590843898423387937398877905748588202216314953376368484467545497391882329478065608083745318895315770416467322238265469750202474329754728441228974517801174221751471096898484734422167795649728608289065166804826473378913615319195519219931868745746031749782400252931337026624439299814605473504543208182572213091750765068662505759213204421202162276896606660840542612267838889099070218466467511378454368803772329091240120068135910945528990286497891646564442334944530939028967590825940158580461859202193990660248090887853620222117413084049276034153665869105397382953607748915078075869856714984403243943114855042956489446093516597796093754090384877994096942707899634802863167891385016221541723484832254461772529249245629830335134276470497504648819149951503342056793761517641177520643769981948427568817458023813914680390352326726760307778138770847819035489549098269350931184592688560906605196031580501212255988658717361747459588456809575829288883444364689924906030321332373977202482557087563290124498921191523064989131137489288662699144654690433127823082143986867433931434901265189910094741707253330206667285453998536871784220609646946292658081938290013931908889473306925034837694151243598362035514546526129984744848886571826791297209052894649466057307295983959290958013401957166181732170477154182488555535307596487134553573321963859336214910472575044493678998732106092360097157087306841052351398046792854567383366837131024535758289969135074414125919636142585851741392991890573423773936748901372525486096660930332647242519352061203184711331675164704874910096450457260928995852393034263361051507300906931870899283978665908951017351767375989403599349133968965147108980235531192109005262153619043951738776520621366894744403762546639793286183590435390578438574094994567523531525778251849238245457709314941984085768720220555372321613121845657709954330634112091420163295486324972392296783380658502739437060475670169738923953447104071177550700762498154238547948236510017714523192741112582587510093909842697187428491028581605540943607667578338177502331162168568969280783339385943294851911119316223391103363801392790677219553868903379992861776227347666319662731874542464305033234147204916002308451818157570768038518874943444825570117760291576012779480899579895933340244248448456861382169300100993277601777250944996861437201420099426980205739569996626638052555511353954147996110725613716138288235072351523738750527710525583636092047610268783510364584853480736891405740210898296607215083167049174722744065124913066428692140641351207986832670231865951280890675817130030242286291356500111848666715013933181474689096875247486247962844612448226967525631852513874762101515506577814179551242999563600158560553357068723375987231529707266389405926822472544168675460165651077639381401688214347331255284545063069869146124897706349396355294269208339166505511930818187816600570104538876039864626888469895086421708718065146992869506421824029353088147489349224276851243958674438620768294914721539958919252758343165874000098242084614162038157334131470349806109778144083529589242152587132248087337532893528468534735498962374388780024054964619184727249914581156080436494669640634391588611259395408912744848536893453593843249950809878281271533995328730974096396470823830402974923337432513661259053565060646876949584831022056961485837953175648324238574298914842418979545432875183055953786870805652032920018003376512171333886466562175623562666093801499957990917671214200488162183357541432974075311975777528906968293267520965171460101794278955353714124979351069401846544557392121021453405625549453514717742741660246227562586657183985437204138209205194457983638941782671500770209020324036186760613326711430352730773108694495570175787549868271633619077344635622651087101254262355154995559082321423210399604744929250921499444592026442883457316743961176749973969645559979945957227142284466873009465544397578253690405787763898902880145592903992858960243928468932963984726391127197265212786533019418075134011950438260506928757897834012204157919913091645650624837599106489023975925584399435620688920982511791733944665558707337849457172755273693572905543748540463600622963913512584607373371102204003654696861873708520064357310615372430250401313980395565361561955884706277548489351423494595897693942703010989030547687170385728042724234508930896696098577979928798832744539508094932916333309284636167811729935478693902300156974031140414316643377284909513300305750575330791690900227184484740741625570089575339736539557178333765378514936663036310660571533896156092855128998560707918526664987524476466244976672788931629521514655797420447605383388081578137127857268968054159782752287655382616981239009706628489413646134905342976663742421334979254144904246938703582630879522938829170265344953727048988852508708340901412475521966380151480665353300707016922507951540916663305151632166207219788676273237799760626724440168007561074975311864587622148871008995861403798606729820388270529112157800545524256273265162571168207692850886582924150602175893211434866298519364271650387751184851667584874687018559529240601643677890561526175496507140910771779093393043746203366626003220720074446401553462613007418042048034865037573408927966350315040244815767188551080416832579197200029524060948530322267418376894885874735709484627703849014924565095777420881732723852095211124522754186701609031317674677778707773793539125196705048950620740199046956652512102568056927998623181223325803059351911446435983092233095990465524465844122612783918242278961346256696784106512962366346794238253742224431981774777841176535464994642425098494948108886366843283528353794109070029023785006342714283838386292944004558456040960694659034306649839938813479034072235643264660053613159848008226548189307558762468398375316050134128871598331821824877438765218967793243790495123163714683920951311330694167619701716960524274878587173065390167143904146498400814941402276823316088407183559475705384602919443348078250342123898467498798016786056165613446468570476130305942712659542607955068804220891518846847071451321030364412408199575880817235313739513374630100313323337132894070032662739022832564522419878386659566884791611902397876319991654612588756234842071074394761174706113068581341379777956398245203440698232169077411456842586395969447379429523041659940849521922865108538168065990676086176592975412765773196276910212293252070646793115867402951424598460871116249020795544815478572905278563354107563617603252553923732682986352569386816682751708475042079838807307727366561345305552729083643818993390170030337597122756591817606890780605673712880565295594717656228805865451581435039150451535633825639911075547489240194550955489921368215651756208565658609781491240832150593003939034053423499748185946313544685640242983059494314280878794428653186344265607660998084495368791117119090113138741327296100950791283665487319520873366447837775851539961302766786294714018812301291460288665310842966025106674762986905984608148254826355681746509573744086709850726073541691348848193169341685141288757093642573474391935124597783839249730560525512001607039605243960978276886871696577311446822266313577407276434094406956993492017729198216198489071072675166860735691886661049154315069341300934120784167737521139672608147000700898047978318112737128315057563632079446350346173672961961669501595296442668742289355749938751474401034149469525161960895911614579252949497737505796387285599729193751478632333251338459242977148654225657831273316931389097179446266999836500463792508153822466703027607155209942542150373499909653382019202533102050785939661941321879186163120997327548962713988803453516057285407283063825783442016646272543321105705750738515617498990001408903153081970637837210432090703611789473935254291812291548972437131305155484516842963277507706743562580157861411932739475208974706030761280470862162440509011752725951215976489868880484736166842915361867085420951009825366628191028980386428128513568705795266373996059645878379492064033300406833163718688481757738563602679743564557766465047787867421802386751715701875492477467709931296023946312835165287875863482119600940742965145648960985617311302079329755702933570649031208017629027543045201578544230326489035401638901160921209015977346461985011134643953796828421174072700604951299538099641933303234807778550920932417788966698724709162784923662865308947558909439625406217676674302336297127350938649685875169555252896781009193121091313321545109366637651058972126642228420794172791577403285164103883528289394041043685724429229917573314049282492933560010044361551175859583210186618966075407235775261920032668434279375652438232209783518258997155800839510777808425263971709020653562061697361213673561422451779847107094703008112890616356752858602963377327138791312493709508090796738322878719386839450551940300929578027451225785973065564563931470255422569882716749814034591512751464741596000299642358356056352921690949733936337430490308653404442567456142041918762675958691020322003486511010024965449135261996657983936894066255235999371421798798671103639133545341005880467655079708650757368443746170619723502197697068301635347053903945458871826690463265527239334686410926908598631786584457575271818030218995135701733948150786747511891657278206170505134995985677790928917315414221806435782871705256582656566008232078767765766288940683621586842855034267268967289111758308023833528883528506129731023529457213936152818167032711229554128736897980126262511692847815613289558453131524013249671223845090854410446176407078881777112951635440321466118950698417824090823861685097852554719474578322067085470649962108959049937909610673668853140025929138388381699256195265275265801964311046979649005108009234981058564923418929034103857732949031411920662029453944239441218139813715511315663145148149228385404410054794531998465544200792539651675911005466841556925148855988020770173116155571999844962418917121703031968729675647499485329289731574599300494603631125335994570384442283463451105594750626606619801539515267147687857573309656853382376121118634103041996786539510255321034171978333691938858711318531079651283729328577699401787244392697751653842948471009949916360847575592265227458781148589093059530617797575038263561899536114981984739412481091908903453640329636997917409663468989058628192619970113593825364175745351113830562149388172947178253434613468329010822678446231816780654936872403773558420276112810455412162011132447828948355763352717485444746613423381789564988629098330060050657415175337488647162444055774217989684343232367960800387662628885706553704155883583083731350279405219691818771572785334375533797592882025478801786097887690736090834907129885267864534605052583959193574937568217369106333325737629026365343308983579119186300766126103091854060007904663209902340630653837795878454888293812567472952761530665703614195517998793469739610052919280635616745616820068560836113865975504933596124711995449528235262338218234366485021070504851306245190035107982964974373925290456010050087660191016203428837234469131325192370173193776437592747709175192923895252623255863284363475144669838799524345972864554595413003397791359899317566214105362103068137932854796034539484821684802548457539737952472181480855695190895777670487066976766517746142824718404260094347994802931356184984535150154928963777972695465951546403461101659982049933215251564903290046388096928936832439512477060478332552953043491762124677494025769586347580977098884465531118634860050160607612509496229351944487065397435810749375926828901419210651898328672151210294712250679457871421167378192825515661612678888007131892897081506693709063159092580081684968231966276391037648292448725489364640424311131900108921249821283811687341140524718550858087772914567377191189076858049303746810928277771663163150795653418402926101018267628140597402863339495973378927712555749516901568171238258100602304393387093066066704168595803961035769652975365167417209082100773113303615865621279011839835090488610214287999552083896002534524459208344216502557798288684451343267421502391872152872325025464225770933562347623738724212171367954578631793913973484211406205022486306749808213184871257878762457534540142450243097275856578039947121986129413507993786161626796696582167387613550486554006040516183875987615680833433395586860154311533447991009076683800921776968348750325091995031330401734773379054695397649272869163984233169973466981106347234685048527121352767946172507088339013320939985818005402928367322069358934688972652544996011393378841200201716072978738930910183255640100750830322414207292085263813788651826801659256997290151136291259463575420335842755840202830407401720223815252656127234470782269935781458812804245166707930953597216398642631952790364460745161290785798885010173377777058888240567099363932076682472354349646886558129740856554321888703655694158244243427737360006704876260486024571709062812386008933777084846653112774976536353364522663647393231086153251675882205039972157661565225214683897020295865092631603529650047339879462401520555406862728165133404293998862798179124610401915988274563390557980878125969990573531059911856726993818370661106488205823095413484206348521864241518805454241377672072060632141971639522038888453017495858270613488715977468135016013127949258025227761775702854004590845977254957067066574434947049311871656269359109692410390257171495671755001858012473007790311564937476615785099277224974263610608778301935669113702171626716862526354542169144894052189169646928380230583511321196002083765128068177385261658601651379731476887889431364055458904667037169209410846102086534201569271997379650075265087194616247486026767584742933367236133492816360070209433265815503782534558061984286586921719715547338708700024904069978971772256218484710317043561511506648966589211367991883206297513718932442656459103307581717974676390281790656214128949308372185783069656393314899590556753153187268760782726258528774612994664431959205585965861545321640648391911048640153397528922601131672652297196052565424388984850305249776564833027165503743861854227370059031160896253001107418161526782525171744371988231134892891736743409565060168321472472365091159667363981229748840247091937090019133858087272133022490473648383673709314557985792273191272557139288602620117594963735768302023897740634463792853304935006505224344229196149649878968283647120830481815260593886273767707598483107221640026108751791960778842373033879722131577215411144851071898575217907122242357207695160211800113694638266574599759423274625619328432188208106902339514167529870612537159106108429985584164237350984652353666268843256438714542373996672088622144427554350132638009315512542132236680948353560079611512102791781712711981903821718323323332050705833561549133188675727674943050242041926160715486161596770444150234760218455003827375101133389599290706724385794109920205695271734863331374206498157323797561331623163067812941068565910524814455766549616963977973522094825452022396726316751545325199026271970443511693249338666315270603205906570243555797124880903557873025473180382560865733698317463883338870300885908344799320074977210662653809738588970527144389086048109201001990278387923703268916871240003931336990559534898320048543226234193047778115681681054069470037805175216215195427881423008589268542008745155677525843599642249148309295734508811818798028764994067590471014663873376935031288577955934363195060565664056945375355737212282555215096865914046445922499296266333859043743817841695583677125440758264089674952262755786075742449505737310599938541165654385379152600453407520421634451213330695674522463169075737165835497719868109181872514677710945122647267023788490592332627783062245283588924834801118920812128578198689355238966486080698934293061646357690827227329541544959611240845814217010773948965150262781807046192673004263950382515913926897023016517937691512258321289874170105035436509846558486819493589819849328669004711221148941272508036970346689062969708622938368225179767999587292909560520339439977783510962378968026736856585472096626265307367835349115003631101754148396488644096262930687430696455467139347811037923747915721775394197512320930928900903894256980677622730296610616879975940772846733749668404498598143411952564667010974873713441385055131367274484419290069436697689873020676627845243199424559781909480176367255145489969526009626462990177396474972528476244247799563175763604646717147558182364718933400936226717013768288742691466274090066698701090803230908051873123412753528899882907976678774358897111885433943298076794670544367273987202935044579696377395722582299490180250561790132011053080245026452865475551678712922255380192855743614987441258566733972345141756304550490834375907227257798866431800078936470850731465142983566154422578567880168662146837222011256173957651268335654198181480093011463546000153280427560733543540920093803737884231480725672415185089610984002212137870899848096737348600441657380700031208649420875064244444781666573559930179769783258699536489985006082354697619170243780714758700278703528100731536047294687839908052175770398350124752222535644106969740714627044133740798885984373404055884191975514687602103327466140850271562371371716004092583975170142533286205659468203803180521356050790701683891273886923739916448470851553952650017033242250088171319468867253218011665470404495046981985036638722709998948942382985863131779842051033680808286616437097694428028203283793974037584158019250652387671046025523532508957594589791281131179229449929720413077568881790877202298995400237343089714653931077866417894251867290900177472292461164990896866581071926954066896969701165159718647642761887710969319403756268000749536693429164816647547716544215323039464492314189541116191360228605273112375127145662171564824268354919214924314428884712560561600587565144487871874014750590507517336938513823150422607743964353370085751102958386154538938595438123479985447240274579894566644713498559019610392844077327631586462905178191774165813055891134115388333545575870751327130256612960337593850326796624387686815962649321852184450610478346034111375629217963406622553815132932159196313174886284953304205153586021708672068382736004362672699636011365816784084741482659368928405764284911966454604688467216621601051691765437777623183840382224697574931429934784006487729230211983123757425742167210564589907312845921188333371701256863349789567907303035022257069815111661902189585790176922054195528277821530286807923537486665478417658274242127861294220525436057345010575578389495148091067615130759069365712776313142448342844527284298904340409994136542466954582659556155858928296288237066979092677053632110257756054250762893337249376473991940591135928363561742023312942628727092335720834366660278939336754793181528834761245272647310810924370110788157695715510076983271406904175887802802526296767592418488644711068537584726094538149303204745391168189882594793071241999600864625347712404504514561084787658518748393733208787705560281451889933859966092762374069709013268856066460920882865597503717453658112924566988525435570067849255903712152716638245168387874112610740962623076029019033172000543928800847718396696866961298729707559825529416801564406103934445059563062674566851486802843932255629155573712859814384990175956031108011663077366025433332522314224146245339068979461727417572571255123736586052192409559712476192769770649536961767930502848917082508132152372921656976242268382616604570414267808922302471868605670717410041461065618748126702502962917390625122787173096762424336456519847182309657983305641396091750864059378833388034022289794058744352826474480095593310352108636814446389732454895187241257557848069471910137587582868462132275574271872006329693194110210519601046688414745345082144758736330718503035525537675535846548940972290430930121046103409228227168190116287020293065711301419228888367023577848285076584910384288738436947091090776711656621525406635198066734391219362637373201627226130888522075727832034035491294419216879017650994563730768921518874136536793775287438393381098672378815263956098521107073526465753827243538080459381184940688057503792009680991146095700713776705421907959249658064437250047845300523381803085536899684971450161053955093491811820497049959230532375420469094001805666967088972274517939320143293324371598188821029308647135853951170332676775107821011117435614952127160953481269688097742329717551570131118752345002270138138626730803284676494958035310566888203122349809573985366981040376247738560342018655373689605841289878877079716975454241535835544236192294616549002926443267398718193042797933478602657550983384030831868204895211053059706339191816588803478911110706782384031633234689290057783209961455109353691086656670326241367170878557461625145268505648314950481156375968123135726679144354468397261250926268786034633805622389972319936187984018428791640388331842163231225165083168554575031738989900594538017347875168103954808933657329261265852540736971261912873827585526713927210999186122698242314036423717734426719210680503093039167562472062677382715858673027694718522510142800105138303601069190062875213840437764661395764574096161777253016290922757392637243659072647929464705785945773832241633774303825147785668961495128418659026475445269897608878978723832866898782348427588375838923806837456839271139143901481374276864306364256648398001146753757596586061582348413909420759241577775681583500114311299789738890496249637316725841296756092961321731011281149036318895124286815348781007669719018741015202613914561032137650563657975089070283154857201059048044642313932227331008653813544693372347730485508641082699018543672816387603574133480691713049162620931089859398405242796181299015138029142008820421909141187493548467921771460640804810844095502340074560754720475771922289203346512180382131560893788242800843142772588317710829091107831276331673234517582670131262399407703405610362164182022512357115788794955581218950073813713321928772548115803009949755903554072947579406555306914021117125636515912942811684579856033226824426721799980513485157628314914505183965813045868611311767926937288415826025211176058815547887973967696322953227120557428495848799006363890141167655329327834296678559911530285318634989963252742111117693007049647566949602065261003856544296046000928663962599295392119893972970575541561605700853484724727446337754796588400470410966467385940514324129103619970858629519849538312892342406249071371271440345246454828419362912226682253745270826548669217121913727845423080693100480101065932075313491610790862742489043157505416760051688339453612538252096319197927131218065440585055973234590521851796176841656379126746078652187653191712681959337797040542827587599948273676403726624993772250179717098334852220191572737025657247818242661155454149967775957447270204214521195065839428312107139020312464696267764687549557148831117615822163364930620661823275624788796017320829845840596018007613775711297089619675434413808149446408420054053611878877120377068563254728346243320084783267965377717700035401107032561003209463908275547814253967075399195613245499496334483977617277632319704004707217904345842789546200948031993275442178358712608184370244684859103102915972310692365051151280024240034111636979624792023518917075720566308105614111188611505259544543591541548597075976779053025515813872296520737251980687177889972790008155610977594624550037037268478245344472250234444099716708498007798372370395294420248744659119283741112175709693237071960697071744714017931502711368849800113377159716175761374926721059658128191385969672623658901964678213243397067473425086311730653796673184704353672387961919561811324695019578640235067967974140350555399113011673553800682840966518771515048064577453208609672257929752136396026622910656903130027755452192645116888617640830011052586409794224032783943369612733517001076574818243055350099753597471465225217533762670443677099942144986770807364027164494000104948681409533609339312239983435001627011106905879628564372783470889514719730324674322238480659753185008459648311367858129120425746091396924243572496580511674431362682417109593263668714996872526620759868455420303779187205237824474402542114701664608349487248414142513992036274219442103862204376902785033320323519722814042524240843363411072711469722578205307158677707049240661625828024871824855708315185932957288240418410843797109640578330274567469372863626536294351785196294870214090277255781775262483220631223413957041282848566433736344472016478977588209865957831631984921777646586303593270979431320729010535329640367590196059843817002487494777464860609692614384189948022218055976245094463372393057077742819240525945867608573904346973261531059161500470445781984520740679705777695543617247851491193737716440519926695775740303596451005705392324704964266359741799972436815038065426919759880613209225790405819921587684150970207130881284677433578663269905974018188319451780754611044203670105621333969571399249807681656348476521995946489924475435805977678734951514342445576942241663358149660156479137900421778420722053286581880331291991885087306119066450020987048354857866769175426173718191030396164346115595823808549107414213131408512996993529851271758260383618444362631280304489136300565416585510873395339843506293545634223551627323480274803784414413819334729078765269837036054581085277786607091549388281816661163051258740196102410938178183233569121782995834910916933919478051675333348605823432465506149236204761798152312295818463529712039437855429113636751520860754133886152039524146562599222112264273572158933154677693580804897271685616880547438587028382299036925580949850535407121285724431744023043919378571609259756723159712292551526309173924504489437512846370607599623623408768234066123448144140207886178358039910020618448913568739352242505479661035912211288461289229322032371073986664281887024270369232863253880867664567038397967495993024635018329269457517159546776978378935420367735359025938266785714448707675780987784017230468750484854884750906700752240922297829769722764535986490541355991467866412507588629699076458146541026495536642252461407868869742803000685378729662176273536439261388932802999252889172008715275641676297884719995305371768637807254649703857322572871810831630525952758346797757349591206945828889874973352920795887718222461082381681815838874701076333139708481035640792921267151058422557698180784068149527999190042854932794997617975079181363179648697927865953991385683508900145940555266759404088958611364394923165891225712366361553363966087259189482891680546371879380492517080128667202440706181061126933546115256312088853941593732923350007880155400586497758036347000218817290445943935238512966813921338777675466694586018192743325138585486966256833754350787471661160788511389139276669429735451991986417317930539880612667943099314405807250214693602890754010320832307493106102443675330095329147301396112556878299225815077499862105422137508340093470106738797172085006894959412027732674612038046221865494120266129915905798752790691982261625560224304601952178499611111791778781653162394134941420472156289863303060144775044695919433327543032379722976648464967830164637728688268827047240637002778161241189168033768787105109122839878641692347639496337348348653140672171988939293825689516126798784803009469324562351543187964580465590479582828311642747256716254790147021767453287541975722038175781280731167719825459980682596401576055726815232582075509530820424454324943468568182365345035721569209193834506558028051303559759316634935438570815316490979973738195689889522077485861731180563731592200900734110542925759429286979671375910673862928966596007227101238361891638434934427567224159891196428995478933714614508817791375759935649978935666384972166477947792400815480989714112637788786321681537831735079885027610676241629806592565692665515699331376615197291193458662068903170025116547909308354023014025373150258413731243356738445525234239415772653439278867220171290957419102663490154865210265740856984568525812279046322868281794964942562530406376981339635276872349524677024511438712516070025412503270849891142782557930155334087978735026239373692052265073207012298806265565775606144319522819638575920465007358786738453863026146107542670502095723424304875112741734623902710501707845185639074426446648848099654036977252552964238054135713618918723822447405918452884068144217282609938815940597057897068169043180765523539939056453015361893090149987754550321490271693358562872040574135380017928064737136151295415745563799156793507384481343486406437440839469649075490467018113134274871684868232688382896538418699467833208248935216093803362608686550569122420230132938541020119851261901324684346300827443682711383499246207327442576220025900583847440527086074176850181677602834490736373251396188388335831638564543608961767382210400401783414086206436780674749856794117718950345252259772170979116673834039623540315601422419791634766828439530379694018971296429830884096131809609779533366567357134825963290105652785923975289471920076015737457488623577941053701733964742974981459848015285646964041891486745816036936653361250653235060122242511816373357193914988227437849727355872148117367923610886271280867496702039181050798207096722791987828698085197095596352273555812165406375563165114513145807189320894863697006432810772822560326409577234679701419718831590789744856704127894203422263628809705248939313275540737515032780065213743069610257123080461150623478235677840649205418655105388111836859758338298802187109996774464928592755138044303823911645902551601385290870475632935868830381090091508093665901105931443495695401371102826750807330684238216337276552595579929352410632687307796058119490619280143320767762715576459920656313027561933728904821558890111457669380229871541659956352108181688623187903138639612404575927131215557205387565406194420327983150366669316530568929896896469469010805490191510893785468482619031828665579044218543535676435050117967469398356906966954953263960215350642610735085643382465984012319814983248248531789394899279888262814215343947676873726253888729441168414879241357438985363539536839438207925968869633899321680885053220757918749142881803044856279468623030367452553098056465503081784005175519959921389728879177633648825296777858746447541766010735572839531275590710797029390576100146413176911438783097050499096914695690541872872939259230783867947289529170103979083955962786037537894364879445267854291492571070241494357102067943126710033773761459377329650031927487481641253598735407093762374031511263071596404675132991860268888184173651303864780609353698992251526281343027464925150704200598419539651143970699854258739550609874322845442570909944072737207890934051654554145373976935392618527378975603852199964803303769564530883228011904107370085544405534970680942229746408140454548273256541046887590980423563069992708244854579048929155046421597063957450220283387690563881897308465792688233387112247317903204834806589659808802289732754086702103654528855175576803680135800987072289563008015609219396097867717550713034073533720754456013283176091849472119469873856258818815183548560634238992950194062575163932799956555459388178073724560834592253419673865465490740924019992304385146396927738236487180399181822619396316948259037816219136543513667429067942740126076431986840540912945146107405723479460580349472584623179830677296816014007924147080905829136961504795586714545167063717668101730077564391450061361833612997417444668346414153292380891734659463661233737267328842791514701535983106457962183313417601000536374208824408329816560795078417641189984016193010576240126085311986417014624446591554668660604978797258539910007102134860822176069557193562524440658548227717008696593945256656839704081285390139148008898551263932637094616610806423965155801169159166932129685563438220772205271597100040275539463724080323467410694833718438071687531381182060113727362869695135399375788070521334239845361123243855874157522727280881924045281790820180524058723260404813503816974414180523334937352846452056762547463139445599587593372881508246648674381943924606978196461310701912675121052528925337454561461214555390388234327070014183160024953143219558276828304044065074417711908339595967412529462974520645377577012512650727968006947073962373206952058678733764526710911599642346344525361605531841005787366347913439402078213159737660457749560368847829995543803399228104900440100150306950188299632185508865103880287401359540582744245677305452751808743247637627737817958150975668217893829357598615468953838301395678765324247471291253719779262811997185396254919479632103136857516322314445240610562823209451703551692285589013931504565253604218934173218084191163366634462543580632972870705341074095699095563722714525541780911859590267395836620780872514022029978880540319979618809944883250138208435628890394830359592530313522028911356903848890755645805741538208480146524747150831363726983892628890312026798645858959056680319856480478211443917440100654469042284277569046077978571361663935112200087390333591542160614931450036253783077538311860622232393141273203282230700457532074468106015204488574176884238512576623151850372400388984079353812273049430918069198555969731657176631236238872053333315453856464745150995489480340534816499005274062994930534691521516008414113939822484124619643006805619267239589240249106236012850679380463631958077160706810911916829741360846453933299183368975225113707823688656934674480329642456596190758599061286639051819026941798082940054187419410162088988232942047630077590261185163918567589404715015928408249397352545329711552982138178563035416354949408731367775580177946565657744293389765591141135072625652781049760233034055041180753274268074789447419099309437000856199640567464683710097789775645763648166746168995084448393214651881803314884059565473662006470032175677055081314656994048906951078036084969866448329700208580791462247053561445349006493001717821564439870085436139745123809153294093307507185516466351412665634799151410242236698050284288798227121824807200699585110047902798124331924902706726535220701960916328496488876810221861585023209193018710935794462762342911540848443078511776689932178816936640163604086203026422505427287723239061229168832442169856503167319493214063100819445560284442111981640810599363427852086270416071982228667784228387992679864518356312611781468382646875853203058334318597731898801761976044950826408431134099013763185387439341787411153395063735298769494243588192933165665243735036642810322372448956486012582424799052227896308206352549038248957810449212608205068741960807951201608763589442252108206489308412336568612149276172089088735874358272487269825135667169280110253501316774778899804168039808970710895228657515353176715367455943964585580778129479453769402759760520352250409068426744617458186173746566353947726435931470552854093929463393702574319930485365175745487840880833490089034675001234256600624253141294976666852918073084020384166470509572421937994409687456834643468897541083069490633243504402490687743805639614083529887237268901054104032898543156341388188896321815075031378794357087791350612068787770499676392886741459608466693884029583516995221012953791068527498614307322658786975498269297801758036124841069862086915134369921331309007902658299472556173605463578431760746181072756210787679051913321096969847610041214133011446473057244285659488463374391890291413758655008371601289463414554862116292662610427095733959908751930638759348135041741604700549988554407868370582223971052804766178711848286229118083536534510791562943669308032271591916785382546023689596208439406461303985573226113335747163895130326110801295976448849715049619853944377819747366077098602475345810784465471656457408945286949947649279115209023565026484561637136495433182225082571146734634838570846567671031632265855185244996331810676440710922738488810168879542599942963265098783395888258643413716588574127385445115979747329411752200737891532840632214070973593823902368782203830018129501483045038099868068481550812794176375319680422380235393959667564044372561793325345595153916334908618720798759501242499675084290055818796761079947355565012628865171588697227165193197751023011437418545309614966647046232969463429954123302866106651006886584497574751235020752890886987731446622245251798909060851252376174533529324219143622463489207013543389361172126725890642218390400314374342444244997165587883364290563158081112180007133775549488612119384999089105002331734670312744269977512136512547395298611515385205524314999947190602454081072421253521582192021330637403570643600631072666552607755299153408176114988099192448938684143722047511577601765453412773787725609613292600185392248025327716991266495350459380292837266512906507673203686720497949878352114766737520948640161723591492205249572503697863292343618289436098920536296754575880873230276612225524838605054803442370366884267011752174766425293880517711712800899035625058480363651704727072781789495621723328817238918730667663922385351879973807340439007786868065776969496154625440397031845835268915379587525090147991401084983535939338586966726805543847330730606154750197124082655390641044348745948859770788068060458540169823565022864906851244988278681436411549754865359475759773624911134206708109373719528437655569353362320202205509451860672947019213355251120410424391544359257698039233159043769321484581124397409308071934992543871008798843575343030229750426989817553972268740546951643948289420346813044386551110561304020339336261791000211987006629164579884361667667855206573455031031720799406634311825996195606321768457894205156866933643982518944817327477981753240067592561440686295439169795237071827570623072711375400474138378434806082983454940399643508761615099978948987399479308473505290707880367153210505468648955857929322930084355424603941065060726022165801095413141347016077763837798427251333233171468071556375651432198834325839744317636985844027182457694001365996064125666701203426511609360332134823441661505412517231610348060220153721324889938311234547485269728219076399517624924331894599711366885484329599019611636576853325552097272254277717183890684144469690306007836623110427387473931870140956703631404329325253532716589679849420964918198829460801531172540371977498079631681085617418431703398513608643289053095537698497458334341101403210617862417359828230041044946410694125377882129088163127920636364918725101112130893016025122848361584324508083302031948295192348822115729123450691348651470667523995226643220237063696606259976383615654484230595976261578484966374718906824124394687053606413317151464653710127979089314663562441448096304768357559558521832159629903157220172572272156470098314091025650860870868207244309403041527748149556138333909376032393474507811058782774264314463417591999548442864855682557085624594117768065768327672313824569543643977965989690744010691372111306549711146628619277786202865079360339906659059048346731327460061480599823761508293399885008393203318908241257813504147989527138962027323485283198896914831387726273700562853207189688337127237212737926371919343515916512880204725274407695126507605849115250929786213204521898143590605298155757284389903333055302627959771624804312482740703474931078254178315781615363265875379661361784521699699345873369341632601576447740005471101225701053777029071999436066434112464537422974368480650024057031605605359643262328077544621094927047864334784634731769065794184114546974759812711319080058827393524810810347135169213408925913370228579786380381315400902641420912783161348984413396903052352207604310391408268612517450776116484910192900270467670025068562969388567130152561355843323073707221485198229049351273327019150585112973496057111226532876025907775932111763997450139653956272183838199498929068001895058655059254906742282486787321041955576198980678868537468906615312674462131834588792017128498033844492687531736778890598162597345645490928549177966166384816731931205490506231967394744045324576504866538990834129648898380999398014678945727694676879209860754936385470207184095373742340655746052936869705971502307022690809294824570360353764724349880656070371248269874885864887972045419983861888839967104011679221084971355730232327421267214331624627246623598355222017460804414357584279909252959913514015341329412488400244469121773990461542783541262057120883485266439005267656431652561056706316372848293372689724108434002115599988758582319474533111445154952236115675912463047035683146618668409812804302276770856995056427738289645798383586223435455932741122708957825669531707710521488798325521890636163474760174305884915142735815118214255181873219445658474289764830022997020841851388057375708154873365160475831676769057032583397427399395164078327629529867371624682499929186272553216282298373047154561796674740019348495429805026894095497356234398014414688333363927037030882084388369891429161637400396628939237656391694643545582717639748831013677477489118174320433938946972449354501055293894273005505039144260859924099572684432118605708976561439320014346160513094353344392816450129477017544423473649651294059726513836851198623511258279009312899307359983098855569003730637188529663119528530561444366123201870823565394463884874788082211805108150250878955027835364215936973650935746150935478150247105813939955057376801076717823967851903145355856114338250150575113302083747624797880588886652030504517813083940850239524422809311352977862452746147935674435978273458604163552181836952150474705312841311079634056615609914024063656625470108780354326617839824783432312084949141117395282532305212702634837599855462048278769508126422868052277731609923692822615569538927759233167333270215777813352486688721409529940541242688813400260641701266294500766626562490180271659288520872338392445602438745147590653993015055548071046456639774298695559716468854703202407877235409987235324108469389194890709233190333454735912852802584727086786135615057956867307261065814338924163782337596069054870486814543450918296231800995331614504106853790767659710109911430515510037770393084358350103590486841473366919512594904024784403391772717307737324054611477224898146258209101191725677645556249900015757878281550041359091959592044079368152765853630286469746517445895383327730234811488381939375676074338064266512962319448873406400707509747242813812214488051623712360898990055573730989179344547603222915267755500491612212932779547627492822812629577598328277357741389317641171744753999356906547891870931968040973862850247267435728230697537408073614545980150236045396997951965762334553217461340900852393940197710259287443343552694496162708049802316353586531018454497302083366564225205992492542376359828567866721133649054575824783123668675793202486519989011591331043829998074859084261265024793997589418411466741877706804812361164542245543452171184821408347753060214194364530696603874549224830803138440111206511806459005465525205027769382918271556982342087068351341300788801016328559174446898815700313325023583516432820947582813469449658725165719512124195874112370988037121722093332127488440452523765863694740696638808089009550304898747115057153503178449952858241066455540133968473282025241663984540154310750867168326886476698916492452257038310511094722901336495578956845626234016686045054552158904172902350830361074676448793571803302233735148589824180181937462142125214112834933318824230709267229169110134691959296456778478440914063513713367747177145940704494086275282108597243565047754860619111734018300389599132946344801471155871669099488385103962171962210984985839716027154894830487959673381029608603237369448985675791777880832041110428491501203212910062316228610930369239995241589729931842924150517876922805105137275812673612555886028670139402990222595083137028471089411632857138115205070227009428101419767399151280447514404336477328106651118251270338005412980646368402562368416208972886368359771247130966511186831103245118403159106695418708051596082578022278090501964451962559533878869393832391865095467331224799564563040820096300928765303290114264080693649804010708977772880101716228206207897096148051118764056901083736468987034656465169582645409579708464029612507873787292841161724395072803496073367467330751051209567412711396819824222018721994177573749852174983784734657564533351711607656636720260562457614383462798529962556975690863117133721251573421484598491003821733931830293165836152986183313324387375291975763677879880675949133550150953876498480985035300020393009948610167254207748636602653115050131270846770894980919954924183116349247109828395033298307126986257109121058634534961979158770099268857389748241499008168169913982331232820659602041769217814967417458324797053087613982888075280465941807718434199805851606533186392198454166635576181542818203594230924283530534415098602776595653805511147435554039881649916556823647819178807068132784965445646514943436788872595480236229820027030867766323502703984981580216436762193479520130905653373677016611366963436831067436320745520501127948814960532909877788311672461734095811598109229876676407687987002563156692710828818482088922181838445781790182606113810196645512627879891666986263404704576862023862723370388993323431731144952079814109728026308035263133363745392701537726037412529585319535739953938854018358957975549465285955229011255646361964034433876870292071608006279044616488922465265683515179490232950470241452175968091840239562000452774860264577195397477767472348068882222137598850344236270106845474831581850057533968939294707069506724554529324233575018928048104892956974688548660506002826748471231500872254053747450738506953723402893104803616838215118837590985051744096750895549089097617270240013711200793051747225501748435182314347605558391300442494802955398090335160654688430437344589805907691943852844281836942179251193953590494238532540426686165152876602813483938953808111160592775927731329757640828156343142801738224919197292838594675383682162091917597630986407448939959669210699881074365103119816406044322935372998026314055378473449377936873601043466401109118568865090674377063414346302441459783568410312950718969749683113893990908582354611484677017466713800586717901272896384118867909624813943915655211320249889619119058131239677193355588877234233296938268345991823390502601596044753507268653090038395323730658965722144788620555734084179086884377566430961757391374232794362635383804245259901323309051739964242896021922973773362761096982985198694010101374903731596285670860707319637415896275952714954893704603661218224929674219751968827019870161583152611695764162418409908553762926442085151607143879210603066622065315800900128808965622478741525319420063142844321043546330634460855960223625647586493951543958403617179996610794418260960844321100563886793433868045980073432642412444918898941280459434299222089794030385675242528666452584592624178169853176244252634870602706066512295673320047328793012721366418910368036416299341958921695915173753490478604095494150550136123184158513130760534722405609768036300233744615161733162943356613907210733782320098199005924265567388796541024053578113403081049712888547296983539598121895392700124745639793688741434511069114514018572800239562916291654479812618713967726894972190784405784010213622126548359511169750372976459418289645168831261080239866880036770471499402469473470239500841470849046114348784528450139134956570394890045476901936329579549105095131441258822582723995635472056172121431715715217912601355944082850506327188717596639743018735070735577335979951560461368824212281435606897731001062632010177057381390682808744529473360179508587910391957760233072466572936193423783732702496053436507972443198208824838912349791890702839809462500277242516848264422402828944415891056508236628304979236847280465101457555134976603241582477585658081871106233167308242250349257100125105127887379234036278302799588057053069574134259714709721244059270385879729965494742888990160144510572004116494310144678692898289628035958800353726417626220913437923266064306023032956330470609442656722855042672261952274627896946459381453312876110120718188219772431667276045304393984544857543433207937063578920975657358934365158500319097618533597014071334860227577308719392500504172533702832668827908114848172282436231897776923142649129999551636346329493729684369573954663506724901606657147906294055773321933789441022076033603410483254471005648316896844912621728074709439286423500646872573196791096492428841268936638098503110005607353502342186521825741173719026478316680494299372995745869819187388552085671828076025671748237072770452827744571397996874041766474999018377894693375143157894047535419931394049684188850605563478367923444603509323515146188565252720352445479595171459237363868188900215662611287931269504823321138178929293780748809855229538007620698436642035652053351307103732585252331655285703545046256354641344487183276982905699869700602792057770874553099895340920905996494492112658798311549314670095345402938912874001715685248457998249374644070473063870457627663647155848303846726939282096234705061940131535389462311006451906512908008437557014810030195869734549810103233100355802275174134604659889726629240518187147306434516834169383084898998576501345031372327412796793888771190093124730861780443856141059271708066578107740213654274212505757548327250275117066689900533006857895767158149304888601601512388975648211180735653450235626220667426245947292327869054751854344198972144048686443103738867473864406404245885405839865706332300469979298337663070140830373703089019285479893154239610322773381248651765568263126321205008499406672210266026572877271362262483319986597476460875249254033024737280284391708212837611858082408201820006484750134391463044300410497109922961459448328785002319284528298441561581616914338988940802958491692385249759247799567820205067592176148218531341767790215351834474285744976568101458150378992597034999044601204448760450433513458011911043086882803186587652726445991870811639885285862620924286699238612520432784483003446213142048954003915576133362264858138508412820287876053929806315063739929757027064103288910468520419968635022884224990150834574944772821661699192216021136539986364632500682595118830160205508478311221445908931331287936265338054132860700246695137778792564238345420439449299537195018620004740950356680494186351887792801574615439376700126572664425221071062761649667587678199368172376813497831317099158679428609332887381299937328189253611858561114713831506544948245550904404309442067221784747885579063343632317944207474772078162018410719990380901870495383176709345847268203825607087489377401710458644714044792095242572039978077819277775905281874915680442099587317872783030832101736730147610625082898536044125209359995121288141464014323817397801029374755477860935784637485147356135114642745751678902569365918632923601519685442726317704043129048316220686734980435147599903583324640381194028148467473608204369652261102386548322866013959295089869136639939729974061823554113637394482935758323486226339581926534564425189624356868039662455606452901384441505349400168202209653708084538893140297278125245404271414058304476209251029818315005805176968769205801947958590201468216488754254888147686946126585729909861814330314226558852625204624458196143100116450800602557809582487058117324300481362997297117061314514174718114372314717549143215379027834358410551158516141147321349738328734777892288565448255012778310435797242551885768054586020369669076067452109830660863463301118315620737541816843617917292863701316751142847286721936357287750006646259036854919642200020259949967914411825808612182777729974478284241015357466106850962715760262570985853080579145123122242625159937968107490088314794204192576939072596598777024247469615756480410113733791014142946510376097421034229858820319815094258194097436940375790989826177483607607413836642859864359808579266965114288697925977973840662766587422085346999549856377725930553613986689128090609849705861580270233922790563662223359750883166969781588756557718331929486883481835779372517685025414602294961777671453946813196952070701768492801505720080438842857082160799543482537935175314657133674484758824855999133104554237518366336224071011946861702216048164049531314024635666786919550588332669766583675604083715504489331951796129706344608849853679602208961359985667591873021512131457508701253192976735221469467826321391566435084462205281078427458947088411472705090885974846848956511366454496938792281819076895854349848326521541033299162508275567948280987940088699300584128701076742047801342066471009397758922993401210184771496028396551702941790502672255185670480158008701996903565605081895655864420456194667309673308350057177856382346082898347577520758086433577153650861901332763235888602147226098829650256075012923419395010525103880716213888709219887310257370254110590150625921818231056939412431763603879486662253301214066931058934744982665996921781449777316856400424350524691511425335314079919474872711136950452213199666198751487456054940992506997787112218879897683915232822001897582920898987228402274790162816395845963441377535069033230886771724040309849447992942398808906318766961476301866636841654017400293242798948696465519992220409565957272534201646273984994353419546660702567892174819603382820968634229970666964670363446379679480574756858401402490436416277678887874041659434266065404762915296066144357138105209734479883596858156861124148950491657229499231866988519524599063451498274943652732827121494376161813688828668090564668354563529595439634238425016426840200346665912945060379834011861457001672742266240283509529105361436945848667676989831772792344014027426950736335417510503451203363619419242825451839019913634656044956368916284318428929146103724595975184086167399541417801492204372477227697472229872480772864312472026585519420984712620375806886734038645516519059474616091581042537609108876770850492306836007228411849677176329963393918488320360479174339200894900381288883554710955155587726124288941631177254053024267691131906203322782819692589753643404934876541853707258714387490825190367413004997501716738423590646120654523897924824709925026472927635182734428744194927709566451717651764271990144684594655720433448339618527149257240974490967151783024312299069006782029109170375877704941548937651446099592701875642846052161852188658572083988406676137571827101556503585421185697436834557773261754630211496842502031586278263257321632478833839355878849873294780670020940422364258845933372879060012648403348892208932235882243474824213115964940221259150823607084533467832617184102751233227796183740235215681219587555830778686806401108792351972928714067251007868423100348693068317668450147774003816148423605018881974060328766655594587407290966381339430551919195896601569874691843305121713922208450164537754425379911020287082521585905374082299878299946310434115710324408777152711773246942224965549886800674766577771446170357304804348211503783574444107195488045160869416142127612973527058544008721152725932854666677160956609944741227398923835058717318280324278827308850362341621946531887207216221984767039708394071011864179456356021765962548453333194572466107453123102059084803329588662835066575290555443207407960042832173454776956698177960589958411606089732180973746695439695080543568798033951451895328202590110107431521203285469770128194128101479936909098804688632586342267641618641170345603181938106990998808844845120426073282002770501650907893463558138399568634046535714474060108167099179518749295896283639766802318169781143735238152164642524139008909207071243029173705042390940884995682106772524314793223623506655074824998560527146079150210107475388668932150417533520003679927014914974932983861105991375256391401571599922641242024304414564356808204731077892481592886735068831970273873732862854666458299943479849749696387958761279510826985558364294050582882977564353824967492602261102015498383830627609395761828157998800889459321889465984834483972298472618873576484341926928928448266143871203466345128767882838798006311549272026035855669140518737743260791728309607012414239423590914504782924477691954371126242867622730735762800782671726285398925728912800625688090677303877378954202192732721680914572137283487763172386432567214859217593993063629696672711454349588681832700873751731975991972439535252531735940447224285472298217644644528377354408858722786997432778917296662490385924533643321859238336509468259198418041303291710089489846570866855604010022088691481453803437066304699335541881589164495740648429677347218845379040068309888795388292137063767789968654531007935331765719131149143181979977239748414593586569337480438184652770340311575651393668947910599711527383975953075709481559683100691831940213892180099047875653888124125891894936857191526473186537293621794700093137294930379839507924217918022523724963564112942978401319282318180129106851371569469958380208007667630984370296268336068438665337327786044049325922118147826506316175733878763165632408426967454879343838658067913793628419277256827380544533863178570693926554299882275045084867405828657516922822140123710040120395476855792742964086743580123533529169467395805717760555889216933555048574178140218682913993963632370133929351469361689765244638768235298353635920263607610329152773243844873105805573987546922379702647281938089503795184483627754233781470260874806889849677171299581051210732095916984297860945788865951724891410144430221720925005916620190749015667042919172358165639452363612311484334592643576403940091649693338026828299119706848266192890352841642502208778010677184683767914360482734854654812044041916117743525565178034845665329319251666101490342969569891409959801795073017941056496880563681649796588322374804988800521120403424605178714404318459491554702681727612088714478833442142713690211818344915445058686703110568140682872878468447593417980518787907373337132859053202791415389333289743763881240445167954593849308219315929126651846413420045308839489492976831560738612096308890777694354540848546281717847647785442108508780024077247386603306270171758635024847771861971656082229939858388344039459350051403992669502198406089710522927112515059346285174841529489571938024863376801347606040858851105780149192229848085354405362692502017384504746418856435742769225518467907876009321596112827324762755634359649599893676800392783722762328684376256411108414641827548771822526774561211481931097055475360795533806667834222104840816899011759896913611421377503204448894515557984987467457456974844007285203853672634033310600725930669473545041220725773911569314830642586289749042855450546303042500605837884794217038566412387698008380027150048397783793016662545914311174679518252037404558778271349364303814491712020030123699219391948796253761136783311432319120237656569532079751240663471702316114713370338412126904200195790386634644801819762898374067218689199669837330710127064304364118573276895153751967644281820379618971889373584896515296725448975822293133094443605981802153726203504504631331088118747395024242567230886553088708157627313606327059450472956725917321008541821107460217579185609238537363219748599789195619810585386305917523356153991687150404933448568874397214546440491370116758101130192966841203415351589268954826211943338038947535389420235901078740247570952849232034952441117154644922701385334977128735468853539469819164648090847418970346649956209725839664703450124203967925958186084393844317861249516504133046690044970736040499879288555919039390832393107660084012304655297276190611223036176097977507380933963796947605034593811668631244358342359808912641420374969640307686274340114344237412542160956794351730919861948518078470936316874214624591281725732945988469579611795014482092022852874651510444950956841686069077665335653621626190829397692844186594982014045555801481187100060510779278847006700112568686664489842313335750507373628971179394125695771117990283829241039874339799545557282517562289811619053039415977125744993680999878184261341867642402134888136895192215058982031075624425534369424054329366540059033219451381231390511320909246400699956067647396150000446848650783694796295926760875517437706687182894232872348232204804417988795767870901366932235820639809855434777770750436554660765556459169700292143966097579589248164334911834528672149576142050379549490528176309522795897395544592716639610439107373806087987677761616763163489563163854423503187261008676844036865569596186054387052272048796558015828466415301099565596898181465135931819122102525034147551849975129570471273681230105636470959934080238928427071121759556827069289596593747904656368724774768003693050309961228109916288843665341195972821871401948534831734495320243169300499931179612371068358671208327199988347752247412149264528901977007313564658262730872086694813971945578783054676646882488029162856344312908778345551950704695555458833681881832652392431649131129710869339248274278097660317600963576920271630033951300709973087519660119011977627826340653801279780954174538089024137691746380264210715266334907898802838573617315973834213498310975452968863578732055899370433759247343289800302886962828408073385173849200774254153510640554909521194680649849780371178772395697362541396772899711743316713492444399003932903654306046699222331580468831029440240495005128581896698287129536352292598714432497637432961546038416397680053182995241607854178467573213750919001804255634440818185474608394142547786177640742712863213951756648871446863184841441300089235719626590494393505298203700062070200451028559813925386120396400311337456941377566801125923438423978865274728647590011366002589264926408286892972174411087668686243081834848670215960152711574521047406083651675819510808466844985266910243481827922475714327103912957594072038749043612845101994574330240142962301615785602405244860404386480940381588328586147129672945254320316692492229961425673660504317031212019737524513919688380162586997862134632887504561523954952295381028313830652923847755508717422944824687824846303825591143593035821165627247549846464158976356471445650740571234631645123249816588846059929617462640744397356548431447176519261179899132637489042523316478359170279357114395285495511850161307678291320526131687258809535024750014538390052195556257164656159529688214849343120279227692614037000004958715584551030829448257762811823626643604609486935496677396648326951319681534253151971825115763066543241293318115980105758833850387100856100876055479434945295770121542364759908137117313683258229638113596781403607342455676701697818101471299830228358420069053054882880396350600186062815611524279097881806209261470048336296948005048007646330214642665020360453386902851407609155494882939982994000867131202085070899992196240603261866482730776250284282987369817693436650352969238679935297233422759478896720704658981578645907513858475372718179711791722812034530896173834690056761256715869383676010975319610289465775660613769069948936227612216866228073758567862919997097293379440527303673457831927759430484106802512737837275623286042418491292635003188932355349552551076968168383347942121646949774366213790851583891943064259452448886744090617830335492675352131146700078550837733402847498020223770431982264997714718333935179819942048347661305187553776176941057095420951111325495727438995103160105579321413397586054765560001792126536447152438413412136978444900251766662628277169065228400271514735204773904962541319639816264615354360574299624405959662697637159626756976159191635663849776811460415022977860682806538604919955869382045454840147548887937768375374871055814983431703508529601804237919708733331795675080400414568446742122125904975370517476013362272735214238735646965040813066606980640030487380813722995338695079062494224337222466933617441770944443948985631579137482864055524565229494942375728399982563685610741050596532892201937627797501024839012101549085849873464253124213517514760020637236134369035275450845223497506983107703343470428402368764108668053127122165779083018900700926871663763453627601034521259037792335914916840252628229696821780339806009630395968078039110774808533894850390079820239845994843113048689840845025102904433406699041484251141095569619449142965674378845741311546998788685697266531128126173004997777401322909178118618089032925298071022253182198601222088286981646615068085450750131501254268338298271368037258290782621886902152896348564235293247684370987154782799350296350094162324467617570430121677450597561832167826069329777379534831807738081667025819128670956925539849764391682698141258459440538236682986854864641078148346405107172225594576421301477392893243452045852759968293135723494971084677067755676572385966319175503882175633699755902904169420796619987111270129398302095198769991360613592932448962147618974344651470703633988586450329569522770106017549185109045432804813166196523810813327473484749160006797136125152325238938088857477144273544678824964539476124765793937617568959776009811432618719281466748081750639707270716834592899049789017671098219346515096024727223597808321239249987478642730122218846846881805181507464652799327528495083814926890982166269511277832636450539341354326005186103239016966715919676247114994336757561780487458149971828091731952295829242977391043313624272931571344454576705043429269842482722257820185586846991512011623469091259585017077461758712845513708252068758997117251390506968026187516330754214869311279603161032035225714573370888978141360084884073736415409982623324955426868575672367653463863164284197519321646709537020849266209603612587557920018427056969321416543027461503911888553918233713992136349993424654545318241265467493642496216619158280576529190456102811606755275202826807011674404832113503688242481961463190927922980656341564983112547873193160769613963702312164489415567635302108224042408077258078461454480152255585807379435925102573468184111530245204337994957365365835082221561349556717945123769857745818029808782400149350947739676715641162905252446670070262043285150980922818363411952595855186781102810607622230550155058203502739540329786354825912044065417185231608576008726654467608201206134118132206871161209234714133083006844224330885778173339388473118154610118105503253037975226171571611262202468059239300861445632783820568340857007288391386464690402977001580689035893796854941181415377347104083024295242344316171617238037764149734909045903462575639312672116353003399148518154593627725513251630192556150667935152810051383830621705386134043465596162715224263722140268258418688526762215862915408147967920982533412522773296800524322820928012576770045026776261436117601875784347970713615100006150657541539088548155001345260364457050410684849934726996336869483574940324316968314524355035899863861295583952733908454555221501321963303642704005011148141926891680832451013025372548920241449029354428127813596121841541812743877556087165988149659684434174207027147280212230557433607016740219465523572493083741173668529842497573075448044412545525465280881141732587770830370877596747686478821395991736681986120008148324709335397624787373894280735900833702978670135779501403803140687836673078333357245913115020091477707270804697488498027307343615195093226846779254121711569338757053087661401120220917889457447730409877170643696729122782762831197930940887078860386682694937145424702638395527488264165335506832151036131068661296044916663904842338081978542803841967796461220198870774685439636503362248827124168481019072420400747448667933790989385474045253001185538047155404234506008300027733247785234767469290217177419179235265958247396489339662632203091392928350924388859836790382395766222001857030768628519154005252544889936012901603984231011199890201811442372161432408528378962179253567902446489683134906882905087721125316152039636145104917332973152676941437190775580172080888065328947733440041028542099187534198733579537513768796593717970139380075319559936576558695084251420183107434693655149822251414049854811710915638372305891235663898293215284509932705461732172057820426590774473330662354270977651213310095960418817383748607093104767467245040645588956972262282217051407205386891685467964857189441290432726118041604087959246475033282246436566592028682523942193609866338565997731207931375868713218171304615719505595399855833386888219202162471162476348871214285612992516306908429407754217145266422829685471469478391954136857994199187106204556008018434850627329735191597322181789590400866711478219095919802307699190922339106664407560900239770868975486524770690225731270703422765229312191437886685853709568895323265366367903928134102371735376989010636508163375258354243831653968532643115799065156633023609813717442134742525534546486169155037683316401910873496269323803733671271664918510698474245344167215582808067055798304336627221130643747260806682510098896908649378090618620064412232614763883769638492164893629177801023248072677161169839715390646858468977278143667822924500091029164859516909074768550102599592803647496487658860433474350453921822802275272367901426346427865540365479656824417328115297846359641887326834131014219691817947550048396773139700474546458022495697652888872881198344598610212030704945100812173325159240884476698041645329682758445202853784140586377746784705255892398487075154635811434013238583645831862401686776116238868948595496199106379544381635066003339757993164480985213374599468443165672495501869283802743481302046149136887342723117643242082576416928987249121447056949015770045611875614264911028194443449621571843359994038519773065825723877006668498160113544695956131360369258262885135533822550567232043273573814846357669407205425875102599166522646045926207484937585949756792012497238916754777387312081321423707169484656762010788032151039283957558781313067400090522054778271044459892616058182383370216071641524044022992851658192039000092021856540426840748657252061249718116072855115335691074740975953666950098222257190088187322190662031232545862624243705861051819888357672526339261772027927284601954564630099020614277049722288423203006893641500234828368957623716702567957191059656807248993482690844353782703052193047644428179919999933122392656708552333054286160358571318806181634167407427401346112431075355304416802781659095836065335693003838358464750242233486145852741857049056003647363982305090184211361906486638624589927470629768517500346620941504092215148791247570733775361145877609558642369751464020432284171788682190898262121285074367941338600574670822652992045995272413693358352378649438018827550614826919459135182983331126885014678793137240461795346319145966655858338548601123299156718261118908746708768592964128861893159163099172312988935425195873802679787343266364744673508968654267673667966158012827313787158063082568104611813825509413179907760668032259631805189612216372031350480049799538633001445723327625470451313807600249944466591578092808527554854487903776695091712086836407318483429462579883458019283893131667810536236722372532237716521511620327906720607776725406112391468210439085421675357446880097154009068131702430936378309483311619510268198512535011215775018966167138516240962551716926445888110655849465318499149975262684479763439034300476175555086041438221079537940931013350162119613126104171665838650293820230989866893974345045655028600849246230213390742723321416268195555542323185976820194286091944578597834290473220617440888373445858893320539218250515577155122669046683250852469503181144608016570003074206603938768290290228046679043920033736071775178199553618939125819928469997387875543945763628168456483621766626367674354878483792613036855428571709538222009185867592533890406528447033121144950496624304683020078513344113185632671574633382304391790479952966375142811341511467228423192951968207971897833522219046651085325647349251643011943187983396968443655326089597573334016308116396853516926168104380099709957493472532055847841238410620981399331572831174632938508312089341329754136605128016021391348995454151970712324675167102467215148321799563870870125341487951077607369559064583533585777761728534943094573838876631324220424066458301171896383682220518556039974027551313348585273237865110976113185626540157864542521503257512214714573073444657616032699456185776398525803700345172616943313396970573715264051516115107109594346801700646014717681899434833108243233833906692598369041669666879748128635433459999333107061347251736623832486400745960247365924355507677044166793568435628859872824535415162574527655822544721073096813484109516531968483031675167650753251460706315640835197779280643334997732302602926808014500315779209934012709989512124247942686897976716126474763719746077363782569443612712329343225929478336566965275376722896951717414468894945689743313837475198388488006867688266799920869020328501145508541708684702456205181355943725471026410795661348226223416612924061607737045897554847987021323913680307500863366994764292623684113495583299265010502353049486088821179170820996230821679513311245876294918533582109788254004176357048879744110656816082726312355332790023258104309381593525523146447710355573951204809222677005237710196923987096375487493490147717270623683739222558314477788059764140407477814657330531512311049533300045128786303532140101296132688639438143459481104773963932322265248835185876505764289387459378351379022793774339493613569324568925217593484944716821554011887785716605689396982214310466246164537394613958744143796428703269076080307940359543640509556104635626580056331643363812414873891060344223549265641843473392236285607217574330589544900396572727391981395856589244211772227421065294781462230946059871084261322704629920192738345011428719095978135614250014003567728222348747544117731699491168740240213301566143305370146578012727343548469898382734677555974244220825761703201366077210478264231292221401139012420035241374608103226094501250858157472110169004357113377127544268283954357896752173312611719692442796535945463725414469941521453563600550788011795077597728162531707503962401175480239081261042912419449698281010367532591591338576422370485399101478530491445130897966866958391378139134041074945493338417024572414288307086937845093206067484133229029811939287024702330519338000803448961443197111464490820360515062084447185115869016861414406408187997817238825760188837036253570850242918690005856898772896261535662738504741439950534898981415578528920255017726441646516775573450632387558485105575396041670855418625586552085507023575855409819490554084355544310764325004188503777230277627504474343489239743665859873576278175775995599312237486795673675769861863500306332097951027752679924616622237195891418583024343078904246458268630303440638767232420821605266261026058402228559737454265698988791687338953045270867862560459706737474812426806545078386934544334170265441711077016317249919560027127806742748785298321717484034103769433228552028366385109794549682081593996673020871686921899507147959737059359413204947605924396427762694109402740258141626007866160843286614501634846647140915950612603148619626592027497889646445280783631801259813156897113084375520561939308548424118752797610436574282048126836106623284916400693432764972390134368787129244349840514700428892360528474677437841014676737253990137255050976314920631636621873182112876075199028360664734539114971354757326708535293230493368751641770254203044104415697938964636763610173151656560829693694028659769723870202341231254890843748590332142393505979513650709990100322724306290907409456079053580662996868970175359000142885731045664590883684225579174823597422494673958388246947130231070557994965941019891056143661607632971426551790423389018056721643103129505324721517299458475064455191064969644466159132867669979851785667511371831527848890133593743956088623854736570936835206481107301105987358108135077867413656638967183673800214989975795148786153116784345705746510724730467556813890431862378649838140347976757910859528076609714158175398588701603562883332242043929834483232044536222546413239247925149176926875647373567166845398461793328816165833519187341295101218095835716709121354789260554779676051175430143920968629877786741389208794982468221049654021862730105876414099534463595220086806270359478095285604244593599974539464909567504993166565484974520569763335814245332123544515897271115693575130003796399024187546996577012078696162934655347869133907576453678840176499055545959511816071992886766301622999540911162082666244083985176982589723196191006323734053093874065982918200614238006178159927277681468417523651252594261038301442784924509191807607892952463562521080486284739822320077381937895595791544432433124865823769410994581083699433541401661635098674620736947846003723806443369105728746035410608811950007933372888692794858288010183829971581340518513494815166573638981402660192068341425871033223146959420828089970424345306056917983712330024403806046614123650569035040893399670043594530993166689906203240473651001285594610373834806360431697801935703422874340592114199185248121417241401231687301839411453061706364519617231885907700166512778387112759803941295532387230668199098373503773767410265380957958661176056409178705769278293218375234105991765232515158247348319620460067536079091081210492402864454198141150907573598817425661782250593772702695034105905531257329514754214837524181419500751777103409650350626291874631207448302508838752315612970559868871298167643512781400824218704759600568914555212989238674194939015004311680534564698751218355356433073932694719224279637971774994587190263420967316461941942078055908436284314159507607338510379776740612743576197760000885685277347571151392465140102857083178843620582058529026574741992841545603609917286241949846015037366576504355413772328764836631599698326034984842296603595888683699112921988336635157146917465919083387754018200572921569013375542405972492227958359737254747335553278215076696231563401456175566697077990015548005142196658424741774034115833143420581059385151892810618661329593129185184957357797943598236246540476283912501194085599252927160831904811918260530303029325794892009533064902914032477442097682782017330615835494385874752270571988609000936009343900693267148337931607710808061718466251873024505265960931139715132403347961589132735536850802118410860043747115288262105895863361612333908291274168109880386129463032531622126996836690068285170985453083596189798222030875806805537080183749432797715486513179405254576993836567344438024328705202477485826201598045556793920321562671977054550982364998340262692287572449408902085054195725505374102817163629872914944184708295968292458663090045469878633844234812589482221761705422990379115211162880498798585289515696530136989158611469015150953309361959152868728765188005664431422077786865379843293313539404536809424461885593540230199035464561605879204322803762270351090016315834644657920432028163954456363007787621729888295075264080120637970698777005554785496575092732371578517676587873993356895796599574259501670606584642115419844667829689790584111058841420738713235050846272164247233338044467290213761542762572752595127835808836796424236853698883268880308314070321366559733567517219851239666677647481471258126280135928318545411117134413326462352597401455887504494798462154705192125722934270153856010504789934937456872928261377355840797624224755104284459904314068322656767486415528563575468353725018610681841309154614617143027213738648358946401030100637190947760678226730144225515957494969682719112664419897152645821648137915297428726397035117285498934684987843339474413361506984152888993211068110276841342023984014868480966501132852126204689089553575077280637189595271975468348787305478662691971460458323906085973557074263331894792086682536549951864941564677570225605052512734246129085768458028923232041863888985164599319026046387634098948232672253932426985163010975921812896019338908837237542000767875864527934924800340862870787872354173808687253837767145177945168145247197592304285480148889469279797737691351847489097434289627409466650318357883682810461709854809276255126186231150388485076246933236675111087726497930849197390731518012898154269798845672716151452824519750389024657117326495455239066429570877490783955999837598451796779061493180420294742528734861108256450171163328483755773785354842110242357095705837190626059792790514635700547786856126454430150288896973876317074730327934077874755052461288108449183130797189219439906105699655258002290029768782160824512108886420585154559861610370389955233148816897725237147566119607075029165921804611743797665927573193187470847243088969704541546539044664892809965138415587463966461597786470635603038264201917933153955330283511606613030408644261146546345941676205875417092269992616599458610173529065644005991490148477271451574967565365746362557085206122395106821717406435500779524518018290876833517975992462660610892642156241796288778443523083054033425039715624970096651193931636333618612392219447518236144838153799758381066094256191765600563298866372287777153708601559938142280348767927742186128632675389741768974408851952180462825135286930099511815151545604232800736514814803703942725088397736485460934907896833497426848065148994872005612112386900485748136227200658485202015534016597287910731339314628075345624061341061237065908618654674898682133000366535759236213820812817521213493705748924640560623453547565209504302868120113533478323104501268115385588336032105224726659691574322550942628663227612494902825975808141764879593207557854211273089382092215332674718358115673612650441650598948890742201285802597923187751937641009822667097092794893325929971384414659084110343208908826817635125943384247417614038083620067401549956028944904957206829233318176322605840615182537582728704638458465329012738553153211483408077409882001390585855033166762552428035915957169180341696548898762520929171502179309888562557741671558985834479148715601329096705168922137304617774454160014260886124559353230620128417088898785098578286830395473533786683665273045527947932978101684761110031469291080584282071333962266283340702964645361208013993936110938337032042244203057334766092806500071762043961712749308587353809226371813935484662277979937895326969907192838463292799951959122783204557096380983400868147791616108580508292902014056836689115653474913285188374003697186560895380724625953205523196438823234950717727988896643421259418734699631799493817725403442866765745998176643598859667990276941147765516350530158953246471655925929635164117766032137042964324932177566845765779075483670535009244124259337359461268383746909661142769372492509202275948982222514685570616520845829407583365752408588196221909335364966345053010173252623375712496204107106715301332722831215220571568152684578574258192603349869844575632197565599231221667427131423231922491473858530105387885524412391580177266113560738629286112096557195656629845475523031508745198509435625572700939708259496264586992502439736474499115526827153298140357420499300969545027560632283885807753771911814213434821402025291364909835945450315270365893358807474744492956535770076105550846837436055539402744047364240369241936430780754001672704575647911795818901695864301010787730520508114138490435487018333149567736103468689193015250205109457221213742691549620039034032925876918052125661237815714961251837751931026766523361491693546712823944848818117883361895439906054815792817521653040027920864243149876174391253869223473569417801156330525530686441940585284940791719776710256613127951395330415894405432742960999832663680717338544631751187861032213675114349104401752419515223922165527177088786273218262583452004060532551733005777641347183280398281219312293678370899086762024586837957495596886016219681482187380586626876673430815698027164053712666083507799217436331945991596605323224826379581107596775278783266622838016353836369504503855283397084979110282976855665923630159415414699888307894807193219864823393310371094865879201160345624102085242918574422204583349266592525053274854520072249133186768380871107889392439498568884808543334183491744572285160990705052641222257579769092370301476284464485024832860261607802950039490799160644152744614711006473745751250535743127896702412469137338189366152141018261676166632231414514269866923411824411687682359219551990197046738612077005421147883806982803667699781499500157936559920989139433770854128781556075896412624571775466790492792845219142727880644645018198089622060974365363601489977912696479765398151389236302289609019141735576660327505507968779926792793469680462051520030726887067668554278954244365108758937122730985277143253972403130355141876117396452543418224960161276051502755226130974600607780249891492384312708574863801033352763650002076787083883567929437293033260122556219921622431730582185210198455077806492586660763526177768310243320676712085744878453189148209890460574690679324861144037333162762031603804953547748173268164251060020395563744265035441166989704251972590464073719566097477457281425587739516122672265524197614113242240798523026212726505476802409004201815737480635807406914989617559856118485750970679909036811375314636691513899639402925385784540791465814326622450280283399591650981573111967347792511053310699097356769360177680888163763268294163859106672197039670626049447657460541846104972601851069011754302221881279748764461014836162884147748683581917682143609679156907420848481665251742065648514458826625105855010164635269055306875220145475589209504338003816714730615372769377405306941971963398850615055361422858896521868426999510370022336491618429301882150762860243176319613303469257850298807276167624704243582052914211893861449374506806627672035950687240794621600346130409212780179822519122715340434225849549969077877007353124794230971389548411119600214286502626222491193756093921362193737823728784063087650803057083909366485415733879891677749811667542161997407919608180062928435089928045152318341939242059909382009919138187537207262551817203706262342658106368976011790064887521975131449154901728130439338171855503427567941251556930410509077168655713100504515574668895230920288764124052992983497118479623835555473857624731520910939853986257467605541265393262242393408774010345319621663661401469330040654464899241687666343150177373355079921231621417038317912028957687289650197691064423796971694115693253409095222098429306486235888468815486502369296842491499532628407688158715591354044523190955541487883314207236108536011636489416219717951049796091969091652052489280267091122913410509602018374775914140080670782170920169600864239963059759225912165397016424016490780542956001483830139504618212364371188104437829309335501064368175406875894335032399987496546168055616506382563325477680842771777855821477859803844459404374593745240469946636648579114889249474924550501992062815988198033312407693435567871930681044738710880301305849228201070758664473736737694606039045169590527260963992916300169875296806560287131992374108037786968358450186126495796278352438700572209077829517747308193350698005752017846343450982013997426736778260806817513697733691969893647269976653150384679884410842468471708344522200104080821571395962425274508403480603658252069588662372569715360202631398889706079070191807786844025232892356653766441083592067268400714177549324294245381436031322990986259453626526150018479960291375622674487159198485486153880696038014358930706606675389246454302369022884732270298994024482270316683962407847807602802802823880109791079493030236030419745143318039403623006605256100804322174296365009495872429527280575053062282621189968961203269587775220779466291944316419336646854013951990757292931832601014122335238208390664246098967974501893195633102446726516726191179381241875288507486805837448688772362355230432034627822547473604880664642892905789610482265915500157415129588028648283726281189668535387186840376902438149093357682920084732767271065118934169546587823652078326310630782847407046549610933003647754101561391838162260203191473997570743899875322937772594266105220221156646986522153316277377932455886149386474479847019299713870066367112832859330823240228692453736183165885737262715873251038502455229477268306249223059051090890065974331187885941424967166252000714239801848138978755017281306978996206641833858763958126376724632602988567832674705197941380092245919105662396504937052281679729101226574708647334694176281908437030941559081895589083331964659580252197287708177713151624944680868299136417107197880389267605701041739269392000519634183993825098970716473837754586152127035244602876360082623038714457956271926394958723591624123188816043733137088771659892272184763452612791542900794479111724935394730899038890483333886572786158324138398722022541438031139710130695050561703954218089900668090624587583703261777727343338699250667894478265639351929563961333430082530241116967014547702378392405586701600828595460211678690664972965037978490881990856121592433256106865502126969218434151732677987264758974871438841801985234551732749499719951322982372345333489140187595804975727489057680778760842517924360849214249024547092396141675805922478070464554821497957904525464326626988846076387960038628802530859097729081986398147814583178362698499774180406912117175073110677603840619424731021956666587323962526895218050428982117681583707626788811102056997808302637138671383101908023919303775207882334338042393052393453360516198954291407768080582930578871191435339515296502874071765827745827199500022630480723440100272973431081252970319913403157588846931210900231168100019319078628921193720285922308103651961588992840881669664774012400547581523270641830519151617947838243283033955156604462156466768190103522346796346897117848020682654386982941152698734509312637344320978739814413392408590083115796186920960624807160964911915248702219983466134050576279880619471460518011639975667226096176238858732801191909130273313189369413072691398886595477685668234391003649991519761094402660433625142436763952845043950272967208036459007157837146461128251666942708802659608572313456237992952194046096491776250053762124712434936935976896980057834757974984623170087364797032578250300447045837958371420390847955553058754394232974923454945185902056371816797096060735340274956438256465005940138039974755076279464397923676844314227672542382933368115567341463744503871131762309006243208528850923757766275786646229292916034313313959838133427910584285221554961321943273571469823097077910753812205467594954820043887128803101236632974247950084878385600161349452862815916149628053794242619435572798874708622071454336368949524310962715805475755390626794057300987969915380245850646610892447582854933974936621900471238209623856309800711469425338009298575490203911432727985954433568957350730998622980580644680146738085312107885931720683254656111317751598744132242964637685560215678309245573873136873640137988204710489133540460217230146169443639520169229236926724052504609599987166467640303170995585020271490423331810890268929033334416120272232122732716098013485280648418721840072182981072642189680519212971945153594713461428822253353847244731155884273076672523477329324447447682682354436603911953079578159907496710941139413136851642744176144566645156243154444378704894719067075459423180331409384635078122861769061154898841975662139121491940894513970981035938440133918760300287249237029119315616180775860405663037223738153251078588447723352068331939718748316580117981844363135039324994524036380853506400807303335438921737149897631805775815567739221553453046164514271846400904649537686187922531222742685620817440238641942598440867489605480230775385482086505121159378454567469311763725891017558660248158151640944263345162382705634771200430177886156346765568646459512946104589179912584645868935658840717885617546217765718779406342058033592714191768511728363159302589968686091731346881313205220434723428247515000376745921686112348066251553218228419189232841013884059373541994601619261300406605500854363815565433790034937120610681807040129852912906080906910351858713026970740902885786866955497587360214615375687513600731769895786417138589379799923764005347174804760547360113318985480764307877684602002343899949105720375742735563522665200861028767377490232686983481042048600420369152587149991837176788520433969315204314315216269990465353717779711563339060768777119997923842796766551724126201827118837370680803890346762485451000010522962624995277443442481472096804880468937824977688796464765116572740069493242968128456841313766997376301097295573621983879102992560045133311652134543736134464030993045569973428937824143670823945677278948212899836106000188678630143690505391767148919661939335125638712925930125533995560949826315329129050835439052407188956424819785347944240873835835353135732045874877087780061306669280590442028266666680414804550360508183481458040797418335457267883274484704675001678782385279110552829803504030122389118843785253769061508749285083064783891121612614331657037586970922848676751082538385835874919541664943854553073642462679833700520158642556254533613414798375331228708857035373910877226533004959026684617492585518921379375558015418527404923968031099304112849747022727297359742543822335857171254550419103323285394496638201787430160823434136738470873552667580582966487402221113627648901364523127018730656560649908067578110198230580425283046775642781986694883836473680920550954718635268161291458034720022758603697192498317623735951706984567511009067327517117112738639865490744144909735984287571292270993860624165936512685770116425168890967534182960421803083555519232918381842388978050591930553476077892988565307064426232284966718682564280698839500778060419507741392377545832176510070247828908983030332100518511554321978540413719556126338248040246597760369504117777898205307027363317878570927413468721067090483776618536779328600714883985797121585670713974588529971784659227637603067130802203994488288356906005601660524849254292608570443050617554052115630555986700805590228993826745674529925630012608376728638674732083868396116766104025088002392600944385346677428613568888128264936029867279348825859332154867895138155344021212386834716960472129135294122352952849247630383859422144345920617665198117692635796105326036108964434479748157377142545879263554917651604428058699043839117133283773913891808154109159620449405970295852369414572911166147117773251404918251446007508209550138078066398672965212739432531171728933693423230891316291904682914112659094120012861557816089249755259437632886685798252244068394294377957581279317012789670153204846319453390846024692123762988782783451691806740053599119860653958256146616023717790367157255412962990365904810456042381237623978127595548169186478315007901431836131449525769368645447888143798464746395558791736247801173131602409483118538240121196060990398220694919229741669350469426516725313251684861259314516543474341402421290459262597363992131014110660696433239888337453038087421149897827059137385108099961205264633278639866702332682818260939434717605491610563198801152825270671037473172640529186308657152107017463322078611664842135677543880753234319826423899734157550944288988807655517407390545051879434973158002808365880363124474976534122971704370430775209931298481712795917998476889671263420247689429616997624738526181838245559090915233573387224202263956628010248310476531085084265158062438130561781602000765270445135756346744722548489661752882538825666826383107156704457925443115718476664934093787970281313475181479134486031205758733961966388954084143553936536165227435482053956306071656092698843723309898277375153714295263670470146020650384602203925133334294422729826212916249514076556209385689492238880463290619812021523441547614888405659383913782126041716180491307172364244550558133395509341925101385334538880946862800848021966101436247791296357270746315048981219967502089076804881905602725554013181530433066106986420140837967088286173168193602475051004406165602467282769115528222244457739031057422767662004776585662105124270523645063786812807462649805532621226019678899081917920692262361755352507466615026180672683077898416913871121549330700381958491779884821519184457857485225479121633453319240662538887766189355396703641725433832942328562082204397152299432441419029570039615094614539348091481930807836509109316740759659561607389999035485871408634137982210155824304706747766330551369023645491510145061715505291692429070759623214703874315097587074331488804454673618616092594332490016681139220588280153066109644278755305017113211818007412571872948617135769071421817832020787230189108121219084496515205436289611117063474510288795341034352914642750368585070668273820764034614742040926855812853668469421406466863238217367329548624158744410226658735761473639777649208440535379304647819351098418806314489173776411137102130497635550213539802752000805801720918521328692613811674889656261385414826780421668624674912417159168002301677614320076997866065907176136212158778622832791910890429918833738887068115933337321112288160304433021919237960711919463884861767024708839311137920395029955202435846376926496839964115258595242345475608935767966302962922622831831600394534267920786605039876894926265489820726561584314807356403117610041878500244029814703225838467387355312255587921595328304675081749007031637270321000260098879519140587205909898862032985707308613600928831954933981947190603726544844005349227079717211999951647726230308045157238844383477873108114243281936669273251889245275981989620676971333677000114695604800376797124584585683286031365145196762467263254735578971075700668771679840452374652673550832672556281791752696612126408959364048528173652201677979854073437520878498002268493773170651668029878649591093938601010598041116617952826000778482223327645076494491669614683777956806627850631605544598574553005607292012865461289175786811193117817239583812222341424944423255492773715265124050019883274509517310696679248403033706003453625828981523655610368119793321704601480617501217960886558633850018972077123235555674594186879791544134209191547812965711029989326386015376795919205780028520320196267371306991562408055938001841838895830088166893014436871753651272483718739853524729490854241905703414558454644803106688696417197958024896102808351709410244699371968946131904764970973162852758404493310402044448120182315670375326683280754065405195456071419082951024433186868024889090437423950562742335805185434786561329768523596181236013344536627109928648958549414402435712372298941814842741365309524893526710062218343515938810536567459868594725908819209129951507175521766764504561788307739507144715649638682776188376113860135614138781842694005267070405274880879997364201925966843793309444092940779054022799698802185596434714525110936850729451516005816158778078444172041934418273226426641782391093777424988990710546065767037620307531370387317653810043164550110648173104685936725600571822919997563487143976705884456316317881616915144268070526235733675837857969245610743358170394903905086823943787868621466627959545375181733512236128696512536304097759923215616238733271677055465162385565231754525428836083517648130790998980658950163813483521090855825746642245399705671602157631744578510107019899390632904814252327541323690377087659276473549155248523740511522169301689753455900892871743664280182019171368624125988919148030497604069001520413683334865759348543389511995781258502237125670850641736095890798472218822409936379567639059006662458411002452669694925796051605782143235643942279684921675110252020781397844858603461538042572517961620557709427469687803082185434653835957430582413846144808249179163119924720427225307149839002839620905068260308147852275472454203908698142755093296074272330557865230426239725883539887743993113415229541285479033372781621980277778597000256825385110832234069375521108420387559573280191235153095190542533517617316885594659864864883165039467061153670471360158775398685000754874799269922398337147564119252158924714435946461248249108193435642764513999899925889719357069675443868937774214869166565921777519092310235590292017084587560796342207626971668404987999173232840954560029646505772486846985715564019998226912226585384919067980928204459697753275400178578660395979826847613807187089681025781682757613613028305280438873798872876530453477914157093312999105093730523068730844898197700030811750913750929359974344363752700252385706817681330460395128176209788746361666494450943674105852576231891465942168681847781412197566222281747836999231225233323391003981034671557568935888502296621310229430774233805961994449312175755575272378529333791050720697826079214987189974441491412489387339449385007701474975815764759329480309904454588358801980679445020767414950551668733577683270474509221086492055612819494677393898300862096886893173197260759289542153542349689829715530053619084261369057045667580516253167192753362170768487185196719240917198951363758276938269063700819673210191002880446783993390775684989073272208534167492360176278533296354704648188774981885958945257358761568312336014090229359395671126265049927063524862861772674450910640341536609915846774010491061857226607860970570588174903132442223169264753379352705096786801215995486939666670493395243490146632392932307689944790358660165380709573048231401079584001275091755296360826173831512402597306090350342234113180424991867324352831544830996661542747034743045800565498286826668858047227581296609217911042527164461345428702921664171335420147355873621002379141390751377824215323035042935561975106650528246744378057875936802831364154110208804520440205366298083729099449096304642789568142483583760937192670863046781257123335705286434577501895410873708431805019196807928162080077275032952898100949384096288010995679775188772480259533372856770556667571258939649212872071494346626393692019297805478463182381716764421768483015932471204118575362333311846560854075153640445037581118365774268280704014130920287558869268451839731417098260023952837891188322763931736088760456088928650797579537201318014446003678834677155909764427485210409807476885848158701843961368676146568011301224943803126227662075328977218907545557656294115192204119084349308090216490899010689695649052428195519243927026596532567452957540424658153753179279306460223595447139879068187535185376221936305231605839136431632538606351241142103448881333099144480136633770015475205889688598541122046347664619522766139735337879278553329728181438057950343504702589788379781750481625702915966274684750670969196114168019097908198285916220690528152853404903305783465198327086227872746366636601882202160607424022174135663051475557771714871250790171593267485628232432224756529620477558268012472186204744993919487890884488525484830831634326239193332009729079349290851168349074024716047657657019113283987635023363079937514228281571289987733031255557795035832449168204853233791243896729142641898816317497454511342567838427938745743651538752710251131165477879351833997041430364382141227328077199217948601011483615412149054522144082782074765890060426400819900457981831243363546545937382651686873851274711748139229463852364135262628156244394861472099415014099737045493723866799122284029256867434750201994955805004366975971020419751848342972643825802818413317790381740920842113527646992120638901211708971697228265618571851886971982394063265154383726190514240638119482785437537561266338742638668319629267655418689110511557567221487538469062332333684402318285069518361256799584133410881332055878151349397337449784344487074374655674288858443389295852568193463075716005093015400428713739319590823360751667873039919771087605694380098119208745096886851633744103041647558793109771842730590034516776999430526000444480475745242610547257231579688770340385085170142114830761510083079598511288687374488681865249707473975520918452952170808752690880846659931510739634384152289159582560432394603557695609074815290761874194958023294085297754749671494243875098305751289128817716267341994144626021152334844314908303198781961031434306824346778163825592461884941861612226797716876163231400945402954260781509882433647989649326540252915550968790505046133590479168661531308934046441905126481719925799097533907142859943436436608759723219514257435357721863254575152166958183183641453369589213119630258312329879341538234159892395272316563629253008623246091892912971557534447510154748049050923897768417255738811079092285613889510754732197011598402754803358764865495364480871527498872261064727899441807562983368338158348991403402949928667581287301050139815159680962565908537070103638310841221946968388519785764568079773981952441147239392967197138359346564063589650797524053166368977063626692397496872303346388270493340852165861078631562058540866368730153863389275560196784754458034113924142148347497979909281879820830257606700183962848274233160956886991286302925392577257377569316648286217937609544585125767657199387099971625427898560495182437034229993247712086266236504454235889580048613138006064700122691323300929481444837551244718806165152177420760220493853876124349015808321041965114737540207945160111067503839903663035839401597026035911330106652547373109097780362364740562306453786446285842274294434746136499879699648391456707471381914058213183357213731315325373289060129086253387030162846270343408043063696376832375091080296111683450489638303264711701025278051617211701667835100082100081542081794736001750112321374843876863511201034667730052015896023586160454945764905669269266782744993400321910613901978008170798818718754265188134625312691710005020165003809264006618688776083455251582086750510215190949007457849923806633838583732206741305329500914733518185396552802475658519062371992616079548220862384941282180715236495620138955007313578678444551195168949934675509869017888664191900305348152916507044429917828119038844142389191577881706364264103471974412359660205785360320280929505251726825362225182443473690189759259168358880247361982526592101720838776381918608245015270021435134229942782200335772486330630577613706642557237752609256099861479347688068669689522015472370452337870719653949649043191659366651759293036911590259910626255922542823996903666964362715902759351177733805499489149194175699272350779882133569677185121159545359224826802147801758717709755923637797458380542983882491457490022588981974471626079147745160934244602585196215489507436253957285885723191458143563241027572474594243682452356864188367555864602900270263460885961516505328237163487511228207747183528516502719864701766693357488362721484004129235255367765072867321405435119798884575143860482526745069834959897950915156761559394909135143006336129442568348135217384896914809151101392094681679640214478572671653123101312604845047520860175764808053921750229249198022115978734490116131610937272405701064163280711910865548961143186608273131283332947347122242048176503411505310740910522485588364961503537187081434533899819437120001834862315357906994720077468381311975267553128696361795910834808627312059907644778325078792720526047478829877835813948034593853548566798239912423783769514386381242036441051303788383814317276208896161878006570508681304441825497751093631162710220053292166558215965911054770888296647736350916524862212555638299848314274186878029523805874051895720205085383852973603756409737710780130138510468979336965192103379355812174852708370620946384458274255021205531111312881895289435242904024711250957896896504912001686008333130184207873135034849404600265557737896304717925748387642418725804079368895351274125207254948884611787425242829760443673814701316895849415643693189792537751020099695068549612218813481572078433971545359265523791185693460910199259179663060475382863844919217930412727682947845221272890271532733913041454158111786856691929327241971315963228406285947730707903834322334198311414175703902225853247397839115837923253700178197577073973604490298562405826118015870574404985698159124131545742667363928262595460259062145121071084722802011797281558774632770183254857181302344596044942537760531057653369184205640016103831695988492977493619507495516330354726397317934105621282303809248141754713031454484736997232540181055681172304499532516782440275468431190788310444227785008500575617316318202494238257480044128218784145151419947342716437305027347618062845297028637382001490133976844484822974588228390247172720629732359620035317893211138477378284154226865562428149086434026079221825122134578082351736778455680955398617965030324638963553972310041369891302329027576230243418506622074946941792318860009148542484879245055429537712034752014023612739944092859790829351460816101860209587077956580674507784443568780295145767514596873233813357513008729891222886019215379949929452844087846150872898726454809795017855761907506827118277795548052138759754429128976215641529300865520360741028324604167977986491117894999579773192275609577942748073908739124493634461023170046954326342704427871608190530590855297531707856562097212116023902984115111656638064743042156702103640669492736070190907795595933789278425711888190959406772233310647737931324457375403619026824539352753681812668861648364863660945439121176501669562875014540512603843716004777319042108863485853589802054966131090081539488600217922763740551981645661791815287462894248429808866361404849624376864314229814226713308291472274968220734898341046257752695188123737112202428569690781841733382434260201229768763886465817832702704421869545054066319236518283728319742614215060117481552784245475218966362594689210077186605633307643738465842546348063400599135017510537046340565532901600387140272974045035778654258475021536493897582934933635681516229873885366589799484743877945964383887577130017799099567180297986940761789845273348138633120645654233596547142657853651569161928427151663229660917517893113542937669770331123614119806859629220806902156827083451775815705971176661301872036031176801165084653335108811420397271733913210354490712108525936289371378819635969426407093437508328444992691963884395829876433317303386344133126426493340080364444935154266075856233094790908409613326410224160625001865359293942797306800241579546981567972574156575903694283943877954245101963699553302181599544787355664467098224416900150172686391717541821571037917096040802926135551089082106850171026424093923013704517136265791323828721983885375625479355271144814427872342109641200264280232329780692993445154455521395636463931684865519886213211552430225831811915608248559977312176201658548132676504878966512672493400746398395197300520628126890027484653409620659219492495207724948685894408406144886323926402902033533164569721507300938480296037258528501874982954716247751263305115942814608335207281357650319230518601001342583008567281931392298887705825670873114306629206944665083228440692688026785957499309890536767308304697445047755621028522957226530740929834801119863582658813599663867872424743080524263254069515014544226396955301563844813894360804497847361343344005639097410676782064116278194791571515459847930266918025152584328986243127821206380443563185868851011492903101075700906155010198639373482804311582088267255801233144876265067578056058497645342943593007742188936155623185077883394618315286705029839665769516326071428356243048485974974262944596415677263324902239059460666678628393372952983009268170383590955816198628016930808449011411409759317138543657539149168355506341859589825286004918981980367904260088970116225065625282235975462083498959417937901149051999940911702482126937265960035977847313723049306834018821940412218670815591861818365125705295026423966218286366614117703096715005905095439347331991059769496490741905160283555445977305670982672572964758900823760119938906605211437383586880303748286025799241448059663120963460166496086663942397541298026696263126233811659002168587053544782775810694353837358906477403961829260551663708665417933857810774834537966104069184347379374174403438803529193207601490004718377490659972570151634294920182953887987358358277527418693064907853277513022374143266819725390712506115413167318382719171220915023990737546472092900735908832218877399753850672172086930340214161767192150582352397491915642006362906096777904482415584768839887201390277418584928167270785556305919041469201908944916471926516285727303870576792116527478190458536142053703798966306481140413949528713731885678550970416190936905665921680167000330579976504948007832611028953959790102410007243395437563234076592925925051463540526300502803338028568060586129806637052312454243617738955983549831493011566730169969906296522406014862146495613804610022009467053044696294358955889600073419087096177524263473553393382765668174835272541366478655228853680485623875094393778668389568513234228360927469186046793883292923580157408191562478343835819677112591123339563621878092609624584584617419794050670709363671929196890774981207886749617457058363702687687158576015425983184253166404485186366836636442258433279623022379714017325911732452248386529247501954825675645514790652039342586635791071058973011475692030302191795782506333967022791160252046221872802707181891269708833250279837435955579894882129116589513644676727646818153385924958771255995739940789794730745587877384576822611436223528763777287370364800632325717036196852209161488862577490076940986714495674080712999698631702640835393116970900409539801283087462173029866727905888129062037597275935252968893281130093352966121267850340227876026524084899990208216275713299337458851037521045976919358718440150041953295617814576237283661278681733530203479428872364049255279523242711393150367165794290851463475811456229572922345074129929181696803170258859301354036831686367975565659697377290148310201953340402344022372441964783025524976108546687834482426935090789726277798489078138044594487001961775780940452131069556982388199123365499436581173025365947295218208364314768320338178828657910674718417744641038929820032354864598605021173276894483000464421748202799602834214180829584461803751536257899849096318868222636526929352616842444937008644358828645413951800050161976608206126034943907048118171546839623616782331860030053278714790409273779703235791907424651344664521179022830636886308938469319776270029358024863106400206735715068762489886809138996224987905401552706170856661085897310325263871980098707438578061435094544764932465422698114062452241598495277984017199711827745166347839740817368093326687854993588648308186198228438058131665424032385362528959973353074586508345712407457866116689077370146129327204044450283847617559062227600913971363039601719182956826099733346347702964574393847479367407069345453986286019594799898122000992219250122582594700565551931730991503495036481000718910834363450465156928914405625632151902845950823675110082030300848071409844454385966558381412899330100266221858786442321602437904743555631219528683437341958077984271117119567420178805479071230684741280653694037626575721300379505739375647809591936294697529631642533832942646395668740002683508502202092351544359998737451622313018086578931003665799034084467840031294261015181472955526933134987664522626958370244530419732285718609720918320213675952101687325032952008635983215887145484793597425666203094623291026196176090262144248415884489768872247475231954761245584197090740311565059199193237772410159100502559381128074290618146431376317342318918585757645993803456782689945101750159971281456973449034306541868962463638057881942070962817644380803427569052359639586658635392397292478686991963857512122905650252359848427387519441894178725731941308297094999735473288639138500391260050131583933883213187956574204581616522633476832629705160054393377483889586322667217995727837010666863020565994100322968483194767532600396131498502344955118231193120606821438190328398839679623001412556134809155950010827793610163562779138395497290277180701470368170041098436545581581482882494109272920838121361219406883478476557422337322067358036195200495024252697902408966809910289620780367241310179207791847781707731747888218509042514513668554318856074948974138061072842776710241125746484304537777210287194257172426862052581662019628955671893518689477749095205035712243524344481180581822131985986044612552453381780459311282993129986593976201230857423830491223450589653043404079309550955908887552569863375783217959402146810774854633743581970751511386313980239562406027452021484990430053678680926921389374692160544373252115205102054707667901162366986543860217690950497854929174438442407620861406688279964056484527888572364125275006401896737357708871026238476123884746489470184163811326507596332046455317601124757389085942012968825189075158683106391720326104251358784245017725562531599385807659531236426526359575400847889170376280021348810480245574985692826311167293717633003493446209566430528477803109402935179541854300488008867968329893831136603654321297553326310448556863651829841595972932712316601230763357106868473245966137578970829111192591448867841518365403480039877937928081606673963488255055510062880274030318548250898343499676199935961826744782065366023949607073067695153671260842975765900104137421327766344117242613288691642809076280193079910244383152997063230552788218478790658092171449051646997123910823624116155117116698253319684010530275260247914457008934577865651585604538579540798949791068753874291825190185645919262169579228861246413133338347313620823254045109615495792696477689949531713385910435983106186721366458963976185166962922384825942996367692240501310598033601586295275665480517508186051428375281493977109646649575214588020643717971624716231329321183567419238389894177087845976246198867049996394844592463164549984564093320178213331005295840535240848666249614690461353783656182325942053805742769347093599835406055558513291609800254299893967306545631985254226853706699150845781763526359734642333375926895301763100413674535764297579330301819084945716309253149754700692594231661801200096482175562101163562043664336924978604659200897583892186065825272262988065630383051570466032783020387153970175385478302661431197608015310510471833734345782180514990939094177858967606843718775538736928116462184265781552707596561077713729080996848272522353054460392137360265721781618640719942825687077991451315459994403281658291786003531602413452301652087200457634170022921906105865087454119345112358816879610271076990721986264352659960424643943562493635963254273480804651203884707727981644313893429349054909158383746400446677226043731838098942099247622047477721665242722795991194661413346251848717095683777985599913878786985931356829711798882723187156962648156359272194444050265595393187429588611275323760936835711680777233570401102080612192376136371925910607701444084556921295797822747069213151830546551848067138507062104144728087382690411381166120167816133930600527760152706630861924004928755809003250602166156781852670084296557007100416151692900416784757040654353278449526236970058204705832219577803670578896804338956693219819014866811059822856060790691255905913289202735531876472969383784329892699603576471617301183447982564031715909716998041565508355331685855716378694246592554701973902627397541293527697502684316560467931069572494448487220303153931141838037099809041400569326021167649561024004533664939255906476333888981290959754269883294674533087754476480625021799203615825756207259336445123685920290837842060338958059063480160090928971840757807429965191858591284828603701258461156125190112431837074578769529883592156558328399632941026632589181777362046118332952065481527358993964790490607786444104773555238501099696662611056001271039397268148669382648042418178567001219236199960739713358185294722914801506916984289107387591418094478433710801400898096714236453268799431684894387628684211385947270591546378746563494836215598534648069518640435257997131358665269286358968615418360485751877006730920208691609665399231570069620415869074800717223265688342162520814927808962861219940513826478973017539075485320393363056382575418186189691371406755472355802195448952800148647399198672688658041486923945418001363489077360404595122644834798115584213016590021670804378983131015038668181732175267387219494627497159260331598755005170309900394380693761161032687412955932978262955425846780528630812650894616844795618415514734069945880959454256092785108871814237642601514314556107923795707309059118114409585109246302432725592191680764211857533421650111875557225944929867549604815662939258468756769219939342906696178599111432447252178146973906026219040069933106681047702527255534769983089543956132058114729488858626471326939123553338825552301911816214594526754538752095910118342117404758567314678661257417758943994749614616834173077725673186152366269132417226466772878784999074017500093083215845160770682942122694115703782753350723727824222399574952434602470547683950365773843845473725628060220937686477710197242037218455127235784473092886668406176566309428278864894047009505084317483522526509729435469880687322767769021043539644858617476392684729976608060979615691530318859327707322419161070161595861387898637962065040246063209706498568420049003583678066961015333837102008948204433007112715078586556415484204723026592005116592664001006051792640911039733477978214684522797867870733582568205171061186526643849978423900191804669198283632873255790395435228761982999663617474626818203871499361108399288929120551487675417361331535743491216494700341549724423987426554487008692062562689797140515881111048371588814905126210983230345415759480355356446594994918027488740835586905698257437996423682709515237440018544995998079196743217130213781620465770644580678854880214137668023437068242805996265870489535748138451123633671128328206374331042004333667020537715482729647502543891587448976734144029471565232019580002060935201595890925614499668986183495897289903376482148683456137530814217163808224155427963561454226937508580598816603897926745465957105208391845985045684059435008930150626978410059730442757976403546238336011178508596306226767328912676705485557206765202107608373627109138836169257974355629862848152603872026897423140218473666971934527134443213551879753422129066038702240480857565820206288515754193497417693245491518755529932299559692025320771818755838492537920392975790639691516285133404610871487697301243803439094322339383012925923048848938527992417822345735387050886595121895403549275874297895619067267615152388859973309068896841035301899004781144430961430040404460005922545318131716300008046021368254802469078031092415003376150075959198780168827129491458415238598468528993575941065320442534260170849943615267899062128090138662401185555006380509859386267988006987963831972226512684724338630959551163085966436441095022769588070722232832536707617794889546829171085067706661249934096154455968561961968582282379661420387956532922557069950172138926478088168438209237319305029894348298062218936728782675443026492738073960123273798214133600950618936916955961389903804660941833189583133999503725464639252730597071357220721279182784967431532941663595532131510641583974380723644521433294610832206852892184305432063324581978794975392907014346488751474656745640169150650836815538600887796931355154858109305644681080660693460251362376008534779449345103895698620756396094605512291504984423986352060557382690800458429051767906288248270813027295883125290643912541133990710866033254960105330575826510263957696357133829276459839106101192099370780867351848724247742360178081782855581010707433978798154658805822352157602455465426785954490076281090792272119200815412602470355986993196115686348684580508840011909621101903900526186257435633516152893645643826785317148238230217397348912057552240605267762680728110980743105851408417004883863138943265095453981295438074660143307386014961971867901652856856250323676411807824198684420389705090905539065576299602409159872713896083053731020002463459625418802724402698085318222183807265021135292699948551444415709551832576466653735242859188682701350737655837593807050140775138549612697815904101829985721087481138598884525221701657736319553500484083948078473012368790534292083854720015195514868929909332824687122601713303632189284787175655770000298174775708253826784149103625138163239523736034385170423253572633802619473101591188500546404585006506380050599862518865461685766324724665626192480381261268073572263745464830126656635059340545464666921927535388734108670103147820539750646814159910689322090466168408566047064259268214870954900575046163909251447280523816136272349205041961203658094037643618742902200639275416065296908357384043042048169902265751208579807152920059528718201433776746570647744120324527523538161418629687100277072398522951685705466310877021876311373314711566092573378665017414729354373187511507624507039771280465851782002219476408026755247313235960078690128310063392254531975463184524035912688734178300526462873558503965566732084683791050662904575370161884121067885074478282524608405812216855576171508264806431526772995175390385991638230557693754897974739571696691291733986804639599421362936077272913038987171118114611600920056043760384825998801087805567524194133126390290302519254596639878723579754223229283575580003285629697390793298371343304512201951594717786518211698343811924487496066604848153445563246880211959236523734971825595950446591261496502962495038552634477361309608990641685490656155086225965759039311425081195514467691441597146919594684020415414026118462332005615906489858377954365988712686740602045744502816421988209618697496851878241127004157047150941683577085948237719040825776545842700029688505625431890133043685413691651714563457532883838063812442945664652573594679178270175184079814432655457327671507937555591567380156431201827269293347844923248718636608280094743233318062937448119868587663362944487546846053955619601149315496650211497456154316592006195637790425417034939521331829258698899202912838405594827628535327257951987310983307359133863101509154022855152770220877052668318561737310373421664131468239253529631454026054324059304449911194719760631110964656694256970372482551256492885227230078531516525116839010340562232264040160082503927866504556333582037685062608032816869652887573485436304881111848730227808404148240078664484042352286801365043854471137820418934584002647911086572943444933472678719849025250381118683571912103145162517433604310893169650456106676618610181793573240726342099623178205669913735973972282286853838157780223664186566162081553997737953946071879142872593935717614090665841127481577419836400843698606572052011532064194748190271220688682853426173955930086037767429670533949846122269265594658351012424392384404681926120914024630362856518893240719540945475947944937000882968525049934761248643655936424375560684004200204886611764816263250292683101535520102155301114632160696194832467084804438219631412812766758175242620787548401915169472033600030384969929895590713496815677949150108607121250107081117528091840217967632907793456116550404817323509820671841140542487986128145347310595223898077029944214573876817133608493616412854592919844884887561793661319859507947398857813057386561130709684825120303847078505553519278575252095830979421937748469170426699862272228525794081658098789906763107210752401876653696677290946932330460383766203659946794604104370862560098866219364911510717882697838852948545760061896476770126080626085784995850766677231261150422042487441661981064860081738613929097835395338393492949617184848760159195597588346911835052476978966714293004098218283535997081463637904622276709097172473790959995423752243811678623607848280523672942212965230994323183827253017058141405144094891105238135254928617261523876056876101698204576102242653150812558184161566926945922691275828559276808300054167868957096562130269324778852155193353731349747142767338458543823823665052007590720574982995582738363919302610170195111726189901041438188968637072415740687096085562867726902666204222315497408833777269509142382895127092082189317877994624696733656273447132274020258396588142734646395987478033994277854678291530952869210882145601225905336040900156116183266703233060757227626860059917873803052767863102438682078001337099596527993825367064631061580522453242888000911234709575658308784406088406292255946685733056877436031290105326673688183559408638380128226096612432810026065312784022862002301519025194414995162125347870685793621501924351779081124767876049887179226698852189497914676666905343915411937939617955165460630692395908944091530826477552529790304405631240768246938591539765308762527656301998478941199533915468185789327865619430933422787183815459196465107233506620712125122552705950682260867598539398428806445810892888994318530464734775117402319133919163313597112957155233929146780729391217702924719263716152527269923979399082868077415549315774551311401230856662679720483364740467357861681570098682195526067015037581990666103482656049672302756417886350930387351939272089834806146057125673270531327553809622485859742373458972430429073318865653696146657299821793919054787957504457642823055195877293349638133524790457723564201717998302936761243485541216729614180477992774459687907978376759362282160314838877630610201126340851508973348026488641191374289475600740309520866796250059420113003672105018647703495467830252649480657558125694967291892602196438057211066477736235207643738817320076682333400191721059290581800132771532043930206927272586617182882157065858716871228367814137531310834187476261004099472401211726600871038491636671261476180948324963029580978137320066652319580575562705943752217175972693981947989265436858946643674087668066831566381948004953883220727075372471648212992015389931790048638624389756688300069345482426130140203430687226475065504827517317401113053950878690134242241079866347252048927842324297560572812704229283492266508535949577181686118667017677490365358559249086984482867196164796656522739142559956975120283511335226034930566721163117812509608013803334734333470532483182037086963594075779894691752960006113041586637967552125936069453145039884899673339745543168235571132404156178005923501988393783224226604937459869289447239830743962139057855634873046155587640384435766510157619778698986040676087246323740525739378723689003417991616752012727274905526384487443070031969744538724605178912611088859295440168920853666857857803438432028179124279335679987889695378988666607530706716759932374205707766357252071642545917515385729347061019277000147440305953750619140440854378880012305967551936067430882426404029346916614794764051883590288792226724689246628141426830901008536848747715487810331659243865426836379895777061440637558937019307429118018507295415850173806167410426481345657816077572552887203599513828855276334370900540617370730155684432472072510319409606099763247327805807719345601750862385843684436671913945046095356970885445163566210972535116809034939323631866671564628562635253253759360711376234908747900898688577421497306666482013275184484256523274032382885387417986056275090872142901635757035759044126348417822707506374606871999479660718254309133998447127918899607339398353771517124621873208671233565383682167724823282856425633044635753962175477446222048027347535467484892000296397900732436035382075186573367668526557232973649949599573929181404208266919380132156507693925234155085040122710843272654480397437798849042334379950036105473868597059303019327506405861829227639153247708882659482230232875088570704349752459407919667438615014487136911627253214769909405145013127255454307907221676285134982111279773363001503241026362540682580360405575336164295768363990012886729792021268872440654737208400709343565582045011902234479791271788767623530729975134034397522632294061009072212062065202258919118674829473782464340326742942501311249804234269180471103144876371657571804213134079461225996247516209792096798085006996401248178521457419510638129148314712904873854620924484778556659197619728874046713757104063046591419010185811254809376076823367693130537068074010364446953513817638211326549152975480883773145829323781194501029347458804136712824379517808743365541742394389590061768151095240163283802899041673602386740344996327321434945662954101616152653047970951627830348673707753650510531202958109258928621410153130283293172829458716971210692023338807550373621235544294847783023385092843369585847607441148413235074237347101276493271866447068266578137462021299206794234033047947898272355019693440726469143193556281656027702619220366312476631952279368412899928410469356349595351641429496629373254077331311461394783413113868366178286160475145817220730256225564894934770182046947148445406316679088157078331662491041682423635990201518571254375826516475687642173487298621213769975880741552145057315036336209400598331279641497637623230691033337396675330434680582252348841086061473969333832412376838241149199972788025235183346417997519625610055243810749796486346027264262259995150457190853522857563989083780921114849945122692185480413577800224119310319720878182828354410852418321273882924845518681602891570964873753098490828324369381384808773070799795363633518157835494480091341560983273141930026775663549012284032626575913294139246072988433249204858938070087030176774133387345264191022012323490427729922583200987593214542485559469249523211796836780389456910029657636001924364024921893051075826425769667474324796784306421323775214988915917753540383657959729508969130821665269578160837321900804722949370764118169509023929823313190962332967610142509595791246593525117014947776189719416369270627583649169272029182399859607493055560356025216569055101903777836879867644817259552622270620387933414447719991739338013208237932438468544444726817029456273364649698511257638991103174600582306826651638473822211294374430930658428456642868518847070595482183003913418833621842418732217137573480397157898631846239598285413283893709552564418891786362211746407503684782951416181893862318912335652163436567868681494591536191401258316784726824277905639340527593686096417155075246237668680114882475565859088474973837677008827051163570006936674762215191614573082837826101408041153353763955120861750207011595830859461945758707024829557629598139479156397607149246024816661973675975708745316605101080521957600312572621770385134325314940915252217637954118757098298368990645678271452932569680330695072256641266973906146737419009035512178086998330838212564577506460509954170478422947514124827941318847634223255106548490659759966817747404597354302079457379865652259166441111114719329161899109569615866675985669315848521919802079018786908956944566772428834756338716435781765144051572684533217321093658348700881794596982921431723287505827643945123085828258881031446371444821871651480187447729517635563613279680111028326299729710707472413096338790325966379778114421451315225986129685968655099737479302125099251947268686834075703066810176658573044337347455641767026680466513917757095219892709929157527482282422271117223167230587007334727948082347882916640265929703698658377100305214836081211484230343337360897735187090475906959050460815223385447237390150983406722891917263729556971918410780747609370844412466237317851569288692704256408380374780766097859910340123114147894630077410751831116013211475240163046513736538466725934934077059880825988261670678646882467098971420062981207084909601412352208655775235555661606027649912737372725234726635066814325122588046200781358974939029554333729083252270331190604049335926036485398010870187492866997415494986318918491502431217484565115568722860203940374758640360870779145736492190195848180448396884886242752093176416928897936286883950733082123979211283872980942375083628540142971949197402257758895729030590452683884322183982680999588458035685846455121750485713906045941807644699409009670010804864579234957680788692221198125214062568216155357892190488275709778405471229666476686590813820267260472792804416234030523823357228832209040116955149135724822238957361091776828710923188393282348884048995853470693378369080408627934672317192961702055708045402838100221240093125759503298101560434583512234082350814179717060709100440196927218419471527739725390094533833017820923812098241211983316197594568513593590174321589652384277373047073249965461626358913838499139033321200393741427898546136127909571065287042728554003935418819476589424628675561282994541606082989222543041144453304460529031804005125509475582920317323535979781617912578524028956559095788236290229148522767467015313066583231710686209800873364450987592277240061334059300767902809416377326441095390544496121361855952553253769493738174911253880765303622138979663235722650011031582189909185891377368312095857703997402758253075692782219770816959542938313692836342192201489292550973172644550799155172325094273677582107332322936318654270454358812524738316378614195690238284451161753556029765652834889226126158825132347862151726166690040176444136117404916878339748703375870516838534538042567299395373164732458452075595418994516979662958440266743303197588298097673353723221516896138069332799492743308178151383182186569125341367209249146545699361306846700713985910236267843569331238246513327471668905631668305539638564861247994946975119312255340105919023846917463101161933451284428662210217804939396979785102359916637231417216107409222116150829340587991291282034706924392246906221120572533350567591434830917954150311270630112637180292289600333050390552447673199340774114848128505328347975541276601408236115018108860416247646795488692738790508283540533873706800516285153587043333040515787913236315931232347312570880686330672483025350236018498893128647849079742238040996385538413057638796545924226643539592868544250596703848682167070128826436523672432728646436770004948037076383647255734914832543806759229527309278653729911297784535238240804155753298529902568062823807796343700616075734260488938762467528731512166976295516689667004963338904070602013847790902742300663600561080957757884742726156804613903227533224223495391151793421317321667397741185770747404389662836913358123761250920822339109454633455675895621156593237035556841002433833478032934339466978323729379242298207461283714466328381345888392944116121728622220462193499559632058116375423451772969055361915383151620675175498867154718860424087295698044211400678410214904721940089701082664471003053897037174104233088338539290191759353737463758035399205094590799372979733479582925089567187154508685681077518155145344534691183045784060644277656791693681036683649492983998507260541728792761353260471111683321335534366426380992404060703191007107806779878133535911508834900694064468295055102013087052644815172989416855478379490296275750154699991622640531603406961753774289066795052210176027310396763735034688548900809227382212080943854115477963111797774952790437764952603772876171317657851298115124441076927817940436106637016779785553674298317138880228927415099711045852423709895938700821635935529983121839999854745091779973707121708407703337721022209703438952275460500199835444335107004984298760360108277141092314704923173403709583199191147436912540925604322003907145851402906988470249967819726439118226573892784182957401938031940878650634384620199260684354415679646311192897019411526085907850679684246313816852564308802093442203723719862984038102657461943111468572863237045512435681077026994211938670637530344353406964718290715943536055310634304989961306988358770546577440839718602242292395582534841403752033365513111879116082822806282573542247189864328817996111607410776566187754582800572944747904387648122044852971528530535815564605653618403929458972256723337991525728778204908351245241004813806380441297284299707500962818067188404032010240857400015732036897159962113806011565823370596555884668800977452067078119755670430495718940235436007752032431598149153737588473232279819614742663243792203501096658731343276742298653106707206961555931183079355664563064127636980273176442514312506699530891708787132075523470298529610087502283163454514197500234104268423690299997421589304904979208328418694189441793479867366281267809946433463938242308207211040571275947040875014099709601955771951523477985823262030244396049035686765446067916916193350002790011247728264981032649299721011280183900087701630418142222125907247453032167438014280597649591236954033661193320193415970338870839166855353485750371872903651869194453126187128109516463195849913897948637076851822460655381163605901041519335613255536964801460822361226041496876205138493426668522302938886245006011534512908431226446330224757351652633635926500593569229816320857286811192180964494831710819262567044793367521187949224980763893539304650655356180780334245867083144604107991152347004702543270191343201306645091569159928973582638252810351172235871862807852526972880328482940321390880443688974213693399869665022772815952177609751525317188116769056585341636292790558566103939296350563745135661062357041311006225433861224255305208116395557554244344956380543666527643426531867481940277369713959572674159136751416584774515095086641921675835663946259254541449263047686322596140580671829134285840472477990100419506633143292171109374762713038036128424889013862804201787907448481007225762612745738154880706433852819480872539013024929053481018803252795377535712592414424964418265028602460600825744540947653760280838174566095218745779111129233305443223125488958911690401389427726364737599877114733234505229771989522619712223653609059845495544194407557059672897148362633724578648826060816974647126604079253660569364652783911322415724606488973171972032089325970251009655132381939517625272784125984840395982824654266314221725891499799328218578660489743057945531044393536855485385078641924108998434112182534367356465685908819842036842289388163291028029527718286200472884049333675005002370569322955868981016497079209627798427242914889669622138892745854426165599238431589339997310640371956377283849405634674699372048021057699764509868694199366180365467336498353477629682693381690860526475931607202608433595863151180045536945716117745103519632306377540988794403231823083290204703697022178350952319336459364111573393696869835625447067785002740851098630451347583969627246583315980623748512478456708674920502047660460531897382595027846629642003599722852883981416392198781449669609134617374465037222147594414259477903306104117681828329409220021424533327150001930454841655434514481900650728437842861843960788342607141261061896666113411909474199403332423126450901019517933135134396610628368153504810896103909228762131911847106334175823657869777642892085637408145069873508180843641617567122678295580198327280714732382461784048462879446730857315329554421493286116555018441232851866998707848216943804758298208204165114049019455710256719073930565058727615549946843863105103965897905536554268540552694512556243383413003851103931579214640638096329281807019125607951435813149740244797073743115498108924140186463652051530274935116550679630341550754823615474440091884449673406964463157916181766963006373245606475719905697338704888760729162474440826571067664069452083877644522314528764448574694398968581866225556055373584073643430916638380640298412311746496557597078291797021371629074324328859485083157090491836964599607624737533722069770742449323168202569595674180520621923970658351130471275930709200447279534823574882221010786440831316695854636564281460574769808242107912643303945842917464850376427057189205918580864510327374970909856505467691411588987517595192754768526352195180784030487462423817646975281659033390581339463355365188536089808809722474888557792163213847833176816600791618188168128753651293835571813104704063685545671424496822036132860528048254934044978758260766754680870521912446919905053632994964296130408125552746213739870896559034693719592055709158213249676606684909479341984216479533595216635887264771382891730289048806545173226648907377935951217062677828844347500407804172262573765706118070839161933543591165111685787225480316731501605716715657814085812746810481178667258002185662532227263895448406288972841665556307894872836888948033963799802499891139573893986652342728668895219834369825087013035014833789339976505881322367724904968530728446327338843570525919509413261481551750514685309207466894364212753207076198277082963568932004896257723227163622584868823997333337543462709622639760817525850014225554734353844423443920804339178628254820172978661028982250845447589841540211381458976662861124872696182104203053922331369744479213950375123726153719565590764176969086647540983895105645469708529570594677190019753719737073171772057226320683158320656545047304575906777569244437654254288668122517426758595443141756972488559213654548083213004778793925656005065038824781154753968596116269325840902579494540706693711030604031245029033433093916851511239903508022633926454867896391763412723103104718715635580113084579208651824885029233476768911105893041575278903660713454146584126805723965533410507667930996956607393809648066991339821780264440353345490552194279821454515804308307418003834979450243357132580512903787580412771151597026085446944900396057138476584943847611194578058185472993103719813827265191543934924756571937081064514706730614223824052174532452637085908375700194993058992009889210323740158051985129218442993705222457719433203412263259190387379265053851541831685787345138108187698170991710615228858698075389124428497232279361605339740051553999603608808657435758581546478427956779363339352366104317741672132294195243030763515595963263817842341916266627644740312219776690902483222571333114991757645608153553625778363639834851669729917644534507783445622534206829339154704613059405102471396776577726582261174245158385974443978059970845084925159818631099695448929992996693930995820495197041830390945152479346374607645007401480293110478583012695430543680326013057528898061621580033426511678848916273119914951768355017171812523832942893531507919186379157110062874214099092534080068656435433281673353189172182338595054141683684486871448926458075365951020816210219130116107824793375812555061545053538609583490542115829689328073253923282770204850166619325077999483351442394279500897307928370135904698145176085615699988351811098158322890000347037766804538981341515432440829083029857295007970009070191566297680383105379925202681639921253795517707131002748745663822951730407211948375731138903791681946042957796857504152279866661116209898039055353402528153787665571779770718235439810468941056226272464634424421464518575616012392459940462851616649137471247145829472809390930492087031694570345766447134637419098565589081480415524723190798461864728578270522419221997946981745490133652552963605175375376594448985735190757623759379771676262047818572031130415840031349344585688818698344759467206455629302226942805003340616673038880145745395188810221186108868777080649981011616472950305367946256744750166406262615414264950239322558828134536169561682885892338550129991811454470759987659503502520633539085759364895822852810274975571991599907198743555183181176459095721463995470134061206925763392700595298728664062177626476506429784927297025866672937266518609366035864614497355639635052691210924918827440693118107142027889396560793001417936838980435575814970125142720826054233545782256710855038874350270198884289153393740418882918769051860694326833813560642629267589594804517914899349630366164516297560920973856578588461392091963601558330313340005898626984872704344019433161733619216416103463078598906010294180748462702886449410934031576449217376295060624893735498268616102539492049924184901136179602499011119059758671705387096609175400026197304902261748218553683421396362614529872598006726298627840086198322310637013015364094024300179708289747075345571821884996605152024899618703585263081568703681860985737978056846639255727153728139015802037443514219007821651884499777705612444980367314655877639184789611189599576892904725108840987482555681493232412662125691375673280674743791707595057369766184923763558602279789440587058391374358391485701841913974307973813764702523106367028010084356108869627286136253269587038627138797525333476607440452845116368464747224632992489899469189977368137288926872798208335530934400549598716025198861112564375291528781748243597242302498068308518864697372322965650767566304492568072628215270773494051512180170901877954737997028161702859926358114291575536698218437882643978890366777344867291862788378516830232281839651742883964071980418551980429235722730827389756517104627962626647076064560818279826481453177260934795489019368559300885741708449487460333722729101201526320566005181787996558879723489375374941143513950333223144021050468691287080903670399837010907467298253864217267987483172476770694688055974792942452067925880246772787915553472793103466840523328562332875450829215583452560357684076009855186233230365029851891964041726104319608780555657759070681687407157905311658406620400410394861151666520703502103505998543970470033472356839636617285120948456793571898735764242540734436657464052378732436984857944396454748975099285486504983808097458386207611149982391827744315929838191042811644011656182277394954057686605786177920599355100864363296215404000555897991741196013144450916202495910993588215901517923842045584154969521337855306041568021338562602057989380583086344693715569786405006349806527242326577717482204320921417541903952627314480009968527063343394526908902821145828718751670637594642897568754767766068902338836292676174328095805447261795329526791081053511608203481396975064812229961972407590984093485501126831188205272676212913615069037458640386211577717260129785868299447562414476506415616528743284036435236134876690487584271420215655009575991308463596056575014577978254796822909118197136171125316155598625915644217067911449379685547004335349640310553503876458013445745305481301492597896005035548659405107307768255613254069612110455331051659831846184727203917432236634462293979952522247874510135241231291178131249577947010067175448152868174704782850654537298716739072330564411313302061194963280693470546777447039177501340989760274083200837515508747711809472513750626122989023344240819307592729476844907462716801126496486555871578851319429626281705574092450060283595972626941765281895615555936765498573343349191557587531725260484782811757283896180251919818711407159153586917195711955384772341926868637511132667003592355516933104291185948656847659164502046791388529837007317979150473145787795100268006031020848207163414577005503120586779213078079023201073836610682383010728964934124281098439030646770488312387075683917377123856892301235309837803880231852663526257027121627231709157756461560429998782172973881116509705421956600203638190597190428437867115579472854238009984105241622558613164589221637268157642986160171804383137971976685480159977745708284815279749914642519124838734275040092791240622307976032206078163737797909326165651830372363625989897134732094043371483793059131814827565937722557337149248722846901467699480047243351069621572014737304911175995044100382387680329388394249878540899272638865037669931304610173985672681849797601342671728440668905706339648770554142398659375879301676927083259804154025257254011297473641286308651699837999215672608545744670157140134285932297742324147996210538681791130356723264706163436193938702268307073967070301313646632809467931626160664555390969055025948155324948063980547728026893113668748950561810719146823022682642916707032455139341089480781789899367352754121169575286805809173000705372725605760549544518632959585880205570841073933389362167118979242122289590433572234474829242188203979896040787825381977843189964445133675304427143967110555215947727857202451828387299676764999863419888096316808943968584533373724342352571370669399844251854025773546354913008612334794369315165051610322675164792181483291109778982987456832706734350556035329848735197735275181198562485895612963619827987262528314039795051099633305095590147024092177432452644252653739226780972203315932032817700658246510517077866192293440466277865461724278431126351168620375944447242592869255858769738392719197808416804306601668404021205673632156337500589483710252224618882399666290032995132088940028963371457185902610676733017792289702680558191244369152708120079042908183471474815211258540645022710575901736270600208381058306679355382761900306489064709544067230735481061119652140367273874934587562085487077981464836007687239142614624223351091484338415000035973960091659272348674083262695002412393743439668837019255537116387653796025497903591543111623234355942412882725322987658421630292479743268805768742143205543002876213820306313394675717349992048626658759947788019848888570937756178542410581094219572685361481034986096427554494428466092838675427026824272420745546954588575262882553422024300250708581288200737794240595524101942467264855537526232992537684838871386746680113241691906067649259892884045656891869595717260478483194682784677989720170978868236485123821818845052626177873809430686433875253472116893511698295034158186284373072802682516598938596589714677742694430188855865408796777722648908715872424327322188657056708620287835390343791665332486722248952537035702651871325102343966996171109070292319530169183102584740594469995228569857523131030615515466090084495954483783080179501322299353438699793766090270846143207728058783297255161100285357780884322794299150532607206417645435572964078801734612854004127794154081095485988338538076981755474767615282258695267620756837893532171205322395602749739968078915659290772476324561065429170612988897835146820846606429238720753564755870629275727694949752987848520985472184089984985525232110408810590391600475805710036145836591386877571281380518105796884308576807975240626965241244714747408760387308449617138098626665698308362895040190457305581540457574677432102840246568527838016145107035793395846369725839358080140637410402416053552351014726322707016253454192153622117817543686289843286534621832100176838714322466557432192931358781834344100201165937589373715275938320446853588126104227657243185361538777510789507414927843711637802662194444964079193275886912956515783534873573971666700747094008244006708891955611777085522509941529486556930059123797204768159981260806651244195384052697679391788698419727502084688017949793412881135000993626570744806009324548195747784165790754974449705869873935166805311890518234208320474613641199479487688685404408753249921790392680098041667546446409451722040197968463445501460792342927053151578586597431786313875592106669854116235484194245472527801138352573334814225960217616560825353751928548024668212850112903927068335882057422231555168356084196605735111266309821751964807183965812998285231677139366602422955073520683463344342206233541693559468994954741492150281695095046105573539196874480831605766782795903818995803648528001385481626418028547837219118854504870315703922560798388770956935007769697280432862113516279255025781706827457351415037687456400355553452200497655062384970487831330239488638778516234334844602806181548112478437226108125639204205305967963353471093837707175733276093032875567615233999483682365955761244962909485981112721236578386110770813086297228638092888474254830808761896568631311651199637098698976736580873595658759656038894142472390898916218420148184834883050982005805420692501660233720283153771612705044886722141964727247375922920604826230347468141420403102840151792796015359808013661161440706999422601071631971320066200505700900326473660719157382023235848419286946362951034058177136947563712914797302057794125957763385540525463718309657271954639930916076225499671749604556374274937465765815233750887281740165234492941413836569040560451321934803096887224978927678507123003110583935295070269299428625285018874971987383752509686008664206119246217904590507198753180386179012707440288821563059962169977995239482921624871906949414818526421516326158325554257596613141964536674172362126459023210091950040449571854818289378212803240465835354931910522681137360993601983812922135827245800311030890219879637977860065767454132708420895659288759225739896450503623323895327352180272526170640745144427542181302950493274427851538773573766965458408591511986222534383459396770099612351612028992660631552322509766321728566539169035792457859220704116295040557068184377833447213686387429967141749410580503772663972601275644691385450045742078893813404981517726418382656411381232442206816539707220839698984849112044187654220457584245141872961710293159885578954714583407183414758721363299053184360974977321459738739220016479943141977293098308176918827477521680026058334140652997647874762223080499428586134432637461695224881613981036643336170207937959861634831591629015692389610117155366191220380957991413507490486923468775999974048929759977666971031879340179098764191247577281473897434859255186401049043550821349657472255552586114068777122859644073911189343356236295699727539901836505269039133916078652684319183391302299920424025668728667774607171616119853454700578410373436555515854109792126614471864470630773744274559897185022658585889798533706966999080727279390423280290564856434434211821365064256362138975105978241176587276362917015362020057224141837940874941719075113492732606919137259715818796631068080302870923015050903942590192960454932560537255833843614449217266270733302781714594381572101177381966794656472589353329163277751005642949762045132204121574746631554977453025300088325258645014159778871478145221484947773481359351028166184783299848505674685326876921999087294319268044178409285850916955339883653809511321127541055520201416797545063508823618605950790192324140014488559631222632708828319370199109001481263459272052994899052288385675220362940488068865006316737690995086669943237243710362713068259830917322099421206015741037675168410393085810079106387726139673902818129396601817574255449155294621827057060277936978768720244412380450657721444949810258982838476800162967174156601044472148251362322056118505366991956593491940438748490843539535819838414589291371660147369722394559434720228083961193963264362597701078654062580011174381505172351051436017121756883394018303594786575716546988105420306080363978686490546196545627058982347371051361915791943889147473917401421685435526688414759134455453777279034630514394729075124767638935369185520162615791957672984005672783397217624820065067883994923377096266903453657019517742417851065044137220666347357131050948710260369676199614342726864793259640033110386852452306281581836864841167851987187784009621490683272727247576067212243790956897189653275658500504994280798625706887104392814456533486433642726818033805020963754366705343873157522276530443471648462366660821086921554942490366948512752178163194837868283027006579434510962104696454871533092541324221684838811744036035716099180735279238565262689230170767064405085108035610647565192380154085084447158768394682482424519674322675969172365489496356895597408456154674006857983232168217577194766064476072014156679934021832051759550905961055932239314501384918208089383706098069017125191238881392037824490195355102850953696362159035741189487716035065012465054908479216263263350021919518226178208411765103847573184018577436478764165779208343971903068397912910957299056628553930232981227861897144561499949939093873391937698116974805709562716357839139435482840829277514595906039429060106346144172617564541416260257825977094158899981769713668458474951302557077234277026698422379414373952380847681885518321573416324415912671804104373737001603160579714312332489526939666652473315429972658234194448311428272675983129760550500193794916610071419073518580216417103146010928473157782473401942934430607837790070650593680790616986757524739282185904630869296362867924452389274065422458374625436353761364706301482838376560032811431936349439358204531312639999359202803172399168144453314619033868748747570552794926251996417026906296228812038541166529351333660741650311590825307361905976411692936565536263242650739159402827374409305916807386373187983810495239258908842645558124779709866741699569214706547490986676026265474615288328356283994528668273223692842283469623397241759277409746081492174216265242264037447146745592992796641628029693331128498597641603617049761763679099926024277310297322754648121514090046968773711339857797795029407264431842521503187972248723888330274273141681481139951351147379601230971662134789362657300217487124102058257289059168143188399659435878775352228120649830709110816705818691826427826651960401855196101459918849216897885216895210601237697263827413659935678871737058941538545386184380540431935926686114915779587754343326893266146766590355953941593197919251322014452237528235360646376852206093790900863647619308036229486030826032366516255390362303046199227784962411081879796259269816472481182933714601751211967827680166101999692839181430269707184956542796892261277400104126034707739801372514980536621999499140639149899778813772598008559595228468887033519791152563310885236867250953730221351700778963676452162290427008376021137347035572891598931805859496117058314175405785470364356406406924926973502599794950343766974124593247061644794102839102729349748822487615964095667282605165713767851581833821442102269309664006697593325885667671545302808256745733928867264966506561638427102467145358544481855054889844975565064804861364297784125693962989549699110200287610977499270227151434599114940682259106856435859096680613587659775641505772883717676261337746790103996527302182296454210039836860054569567510316165302839303040525480358763214208797304129794901374044361484524421675562549491707297881527993642830504713660108861177789070179342449384552496754855992869328459667607011199605662010122691315414834256180430150780211983902726957702183458190060760624096569732604688055353100489921591313972011951306457391952302258289648240359774888588149843746708348893490445418594451154863622415924521623433900831128038796768322804841836396088089478455443297682834778873420192254907058547080722331959902918894624770656436506075269021419486627673262569621954032206399856114244145563470220451494649949943127587598547004047976264074427109294996610348192996297048485912860654250206051936957373495396421215237077371349871449268169919713951717122011860073436009893432433463887902041953086630452400767748578862528042149434577710994050578513929218276957236919179032816240804706718285394000334513411335553165785177678619363854376380611280644588455005727963282658263121444990613214947109847163440363192493371959838410334712301352505886176872051852756527851300047708452266534951209545858504933648686963733094645540061279846757138643354062550438584405326180414412481858065142057002971957588164858681201662693469035171889321403986719852247656584429031126765705546412396227098070560801810207669159294007323002273494694461767055325478307732514426370622867056054297991986700830666598699994511461327229511770106772276241805373047008243710020394168645398216826775534768663957175202832727819799674304603788408166506427918997776700989549642248884473101966796028366000762575913079949876738597576111040189154104900324675866304837151804815760009850578341273002466495411126472280577025343087495923061460807099227651347220650638628673851677465730708275137540358502018425032619913384562317867762690684857049478120762164305686864735355083980594835380820147504496149994743542192678838357628386039626980085190514154996431119878190418300666301758777191762993749234379882511644110982080723154427458969280252059917084282204055581322929737759561045464456157571847873927133969754403795023672921002909759851252408492178536613945629267144680892570717782582493894896481174537781890709655955734186660109243156611023539471807931210047845297759516922894779038658889206776427836938449079072776258311483702994375763598159416146129739216355211503179497274487376005769998013442958428798121578669699921836827421796296029843037292580884376226234942803040018174081669303641029770990964422218399005633863121487782459630351856200937504919285693732097162933630437994255920075638525080318710959349480980287205918890592730920582150731022110601314860233693209138887852224406378620454492831521496462636735856286635615698760344987704638597873521863170984483036764117643217752631477229570935937420488441725922697063009934998588757777181788575351284459163527367663035150482128458308237932909732494013034439566629193640564825736350741658707530563511145118106299962751449619281937103747983774008855894165078368176664348040175508056510501279797748679423205673753643350990344413126668169449638428150352951455726622847074683447393509468825544930519173670046585558898758209094283431034629915767750022845618861406195125719381931590921770866938490884899959399739848863114864167831670685261364895531994857633585557818592722287524919402820473217360553515309844231772505077009432734591042803461479604154134579987379377292045970690831399928154277270102058997185952038282964116452542657663688777668756944359060641047463889006748602092383934609215893242070874284132132322677745096833829950812945842841060740500301358816438735846750744308610015853706361605673517569378357303532986747992249963400412914997227622977336505072627226246946856838492270290326119070257395475568331658281100205516329613007715464418666893992967377259305879891451794645727260122497381737562838578903284312575699901708453504549629305539659989144393594803699597860501329035881834486603449329748291622900100469066617985822340990359010581156168477637157826639208726515428447979602887164619595413100809383836570589214325789163845948634092554832183869799150023473545912065359240283528916559059894098438627381977126368343515698474049088714595789910737145262511083061212340520204801183617983707851316933480852745030014630777367663848342936691895870558596290122917078373234821718882692249760292061902042833181249753117057723356242761229388017968931298496947021006100067855318749969928596016390227421070219097694141202276308046380663452154524593541312549730236124655392726034723201820123831501512748995229790691195341581706974731762626402594307281704034228484222003447160621995151739668305185140405413909476230986024455820842766344957908777319591674447958054090440269342614484921875933605008728639602525150768128838480712413011275009457288202616944591386918814081941262476125628326609280686465447004689265593136320122389008355740746414620415711808048265504932379176699504785303386049159822985740657321686264292278133948475195563875221330010131901033374217245330668668643792225848357462220459507024342117465838079613160072443607784634092932600886346727094804999249767633254768690988676537538867607619005748877142403731338373802916917051222325190649294247762652820567963999437051212476654690989327093167675361316018108224036298318551798093222046153006056898236647905648237319079807977210818557651833142748983680627104938846852057049687802175702099779814125852874542481086069192811305668737180751064598016596247921295463696347755574234140830634381947612955166613990811035235222216679120719138710287154712057817634790664556566414552192844308717040448962572185765570482271608145505918298885798864599951633669013652186716872636756759461729505910998047904253676529142403984434389880294429003439833153653105443703852295544517987240400667328700714295264084412408347043067521905446519434240351729584126693278109403321721272211493949545811589722159100284218666395816507129324514152417879895126581123802994112869400027960855493196898983385614073711235352764199552285973140385439776441704073056615316375579057186685820932323982143523379010425706730484498699385695816224241921923853665430131418643747451447975223462395607365223977552131624722295043414316292537785508354912594375593947704416153793108682284528063646396841061325895416494952710422932175926829570508068265805101367023567872912978226701986345595878678029606670460810018634378135207772675318451268347574738873092351688873510762984327977948112166690993150930312567972840816221927168731764362874247366191568432020929697005639105694190598047309705694460671081149098297363560724794183231791765998868813918520199109444306003100222170235930729261836472717005926515570888068135736713389248720225485671385374438160770132916748269390421175259888333871130190063629791934544680999482938701818973019734909291441506726488190253696425421700236269134122041899147663084025489995090558034945661455365297181479674959032710190900728391082063391034999377548074519897615490543864192280140234338312076137645590716170566957968725205523632865347014622377008162503522896027601901729071662685155295495640754487696647773104835152271642533325646890177986822402426134687411988384340463546521798468309689953600893089396258573205283611564330217281207806502932442608179750849978647666289142795191411346820316953999120047617923180976327971302027456860914556396842958645599247270839122343447163914394152189446406735846957625418933743507684004552869247134864951132848880130684488183932122266621360789311868197273832976505219729841216872926974843705258866212753237948027238845372591722141502585420758950015735147551999807154139704640985715915254470596956351661038198609923322622719666157656696878064894162963844990608957158588752977037336026471666657433740870728387931779476239875930357028929105295748024693462817033561546892317226228354443528328867796324093684272784321743819499800500367806627818373968535505906352190477297109461011541336486154873211706649633369329561298672507741561426520769273234648449907123010535319638247856125241475942927754161834494035206351571520450719256205909327739971541643608744309149904932890339505186209414436423690035621659956162698363717882644231883683766100792013711530845723825148316051035996955413630082782860398388112000659668352432828234373368955278011367552492854497181424979119823303655324124137144766797792119786478445645347576014373889398179170806512660874913939794364248762041292207188977761261465289701050446667075864669231176486856842249358726304050272051185409770993061641555175368265446170994201821701505690906385251686552570790265894658156826963338579288604994153823700436113077450321631414257482051716617690987572772407038542926206046047246196895011770460250968234150176375212999828249316040532373404952748816431755986260505990223972950296591242498411322751196010985032106318668143332874513696760584232637690739230905196581002260992175912749753751486938280384075424401953789438122133960549650805978540300775249261469480750199878030185787381544371962019644558228937137453161573884963606939921344462725221814966979358659554595157804962001014950970166996461150853294174912524824045136229421164316066272124087748466946552545348109566468999861726408332011780104788179939789796293740754795861660824528184957642974539921217272652044979657170943547088458422584512143432207984696383449355387689086016747942301103775857692690090601564872651645004551749644183267078759492608083748316303581934584553453004257394842412107302481603833016097248503265564428322258434599728221606158385628704804016345772099786763285281373756608682559139892409533995533326427632807496958577555256857969818028230840483985104367812531555886248009354169416903865844795060084253342323442789486133203021637868871778168720816873207120414334581669988754080038234849446207540852861003046111711594866147392772882261983912653123504843826329965436525679648780093248510608063396406048330049904475474344566184036536405845663280741358360911045257237597961954389649291197513292502101910674853443309294559019429802493685571135155507276919721239264166703598365866150919296883531210485534600140704593835798752217033058452354233818149375701361963387542178229104307311237925966570039901933839152722350684444201367387414143377522731541044076256704002866676063331695131987917083740106961923386606923562245429722507354939843440594757878102940572356406604076547010330939976474737509181897435328478765180394689024208983656343991200715392744485266413057544266147866758582911678137229920629259506275436570191214109953156979104809595541639626373723417395451814818398892427870958475560476206465310497250842595888299982987847771615028612034389084223193753792824412927823218269883148289929301198316296480943087168247159582547880167170424365934929768137280564646432365203486120152376344167259616916484253880242120388843419207740144690153003744432254599447882224718174441615002870963553045085809877415947894751181961220977016652350194426426663022158571831468249974865258259022034098717077365382673499475971457066732703953539197565154348204092903985951270567851194205291915236322917713903586598210582356762220243772094801860216441035581744918542804235954107340096136705621712339824832439067803253308943376661663740880845989502300652104758649477985121602490252438074730885368463212524405578428167323329892017153067709710864541360009636107620076349174823884898995729316769777670589676778878945890142612269471655414500412219382924981973792088728651271069587079254003241486428935254307157350240861370825049645956759157040985785682360921405601222716849465617838178127632105663097245367421247643035835000231228221298815217959087305105617353751775074359645061413574984434607423219311763601145782105871168022829203250996681636570993749706899982770377053799164680108804456144110722851679321522320012023514370791586082296364412577905927610454097475833071150797909162702708189252738813957269142098180742377510544332979795043144753896898475524353164212463037253534007317375849419189206079287180132990876919757263438386925709216094583891429342636298240939851438322855593787208757180642043288567574384777764042855434982057432084879853416968802688640625060227601888293410598780317258926361570382904963528465674174964911307928535739310605128344500221919166541084355793982437273315402131747027870134045401079054387787980589683908786842344857853684860250654401555846650301694148868694996962983390970531680266271794812827126601700930925379573693387782485361220958465988311485732707255219565084789451469262002833647131254863556598957954636021512876441929769376082673912863940231819278330869530942841729552066838985214867556373197102775141443293834453492133195189548171682544533799850478618592012042698447630650664806358583143267942581163634911333808779567422595858632061081884848108897491856397622102016324906341967668280629894717794680150916851871721652999415687096779694677259869295808113647282861724976064463807295240168716107253862797325238586457057595128534067945557877999082376963819957415815002908211947951561585454096585639638643053223135533737735415578278430881629077293904146849385370200026064733478412951041512935124208893790662364919140628848084429659414891218433392193620523508745777696581076844496851471562038585627850650158836212593622004856105195590588332333716462328346302216837444592935373325871215424751168274204345638326922671532147651750439117349659308647516587052252966193213223691912521031503086332636580496181377755226233131329557282748735443943428045239751660348765308881316777279394035150939614335159681377182625291037687529452861048456016744764512926792603905348463348041961004827236391594777930945909956688567063852517230767855593087646668012451560001609586360489472381254941318581686817422587817407589029793804156240332348413403114130968382214010539769184987296973511300394586423496645061949429464257569840354245899287367904276323121114320852349706782409560840546923992352521595747894610139870737139886898221798528532140574412777083691827148339734698676146541590413816109916808092691910493404714201398293429937975961064980324802319784470872437454809772044391046960740053640773818271194937182004266652727609181663379391997629869392209653777206890290414718448509931432154355387792851150218588643986927278932024977302604862848345417874470631452557752925649326319764598178772476126320926512919258907878749933935404130782320473605670159845890773419526496209416625483687588187212253573376415392818370077239326095591281379423629221007597783056015483820380738088281627979756515931105000754191441382720463771267095078468059456964105905563159288940290006881790888693198004108205928152868275666265677999837213612418008092743355970809484845443974113531071615950240710000756264086213447440453962839958596301579532357789590561679466967748481645469141522562997284901758523538672381600687699421802076665931014677192137017908820469836262418182546048320504455932057149501376515062190355066104182307215862950329266705898500485164492281944389448464756589495282921756519183721877348779783705134132957066438383287554441732670591925096933001069716875062206522176426907893221471669834693252125727815144356767068708556177150014612550547246315351709216412851354997884277175064672122172254121326003325250974606921285449996596518220334839737984284726041669498838046860656026392485008674940912636336768541864719039735489594902489696744901738168186468121182868099006462417647394550906851723846301628256148612483602781564651128467374514401575078196872765927815175213527026086782468572098418510610395184528793013553809832009825966038286678795611170584579595569967981391609896187827014591339759136703193607438546422980342679496803032919607513729232468983109161391059349748162123104622377769580302618091971437120538368039981174074587596410758754046168716852959844873507077355257668608789523441796434994127187633347453086951417647974413502848636015624162715790237379138826028286601422210145015131511877844042849366561385503942469578001841132591735080737323649073981248939152166360499152536304707874151662609546818959845059584546372674667632731082846991192121057016932870927054291454887001157810889854432819801955901126725129733577000353155847866071417459768549601165275751238702531107112172186633748398527983011176226493338684891286809042931095594279929390285498436775693934248377070183213252968895584314793521626048536151235756734600411000491575950126706008968472499476822752009556517096638915887238131629799153800855114224188206478779143138094779414611208497766247433774350307068050520914722302620736528943390230206499930419175703731118750418800376020954348564332302623084308414174693635518049812486049541918649496446015448806359587943775189307215563463994552319469305879867063990437970327727683742330117337063742427513389942958629262849478557386088201366445521017941271182296432830851967249377605409939549184894717885035384705683803901923924331575175520258036828707233617941380493855896724438591873412593179157948591100535560885217846728046951369739434859395057918606210000939929901175609284179420024654767981889272627777681919080884890349394646990069654959840502182409401724521032488072125415452987175154500041379788103076076835069178871353483835167563605058560839259412556081951354033474591827109634212531718815679105922165687941704109725185373797245137595237990366374699356629319501396343966761367678860042407069274683034946186728317269631145698639654874455267559309159466421820682285865802281477615040607120430929869881478378575250563171808682136520587844153029227715936575569957886788310363133380245035492450042235437394884015050028341442078198140776531678428638128446763217999500147397010246831709651663549002064447959307044263676472558628879627105410708320959628005744514405865407703942994306645584093935654412451289150806172447763930426046642272069143384329271149939475663223678115152806801230358439799229095672916511379131171360188547694107030885898206203142809948725573039439957581715026188903060287421698022217369377791015652889770624304932235159726211707017102930980642822802924642546683508803438949770409975005939445761271812045835477039408191275557310049344822882696441343156612546339818150507749699336957665398943019092604450595464988535487422128734020166820111073964348781732280846103109444937006247903601495898358483564013098347843506448474279287598217549455917771876151102170552865358306689651179533858592479045330281803166085029201950143033653802654815511580088230623745331649819214833611708888578974914440810249561735494347902652719118155617846117956353035682920462161023402562864918634289040927427081252710579108811125440966101801388714733215805293698672162783306217220175985999013348274822628099550090607541629104543847998070621733350977316538486358930792943454924359658205245382588799176677404170665884577480809411064418874063163618732456755843057757992235628163491515489470501239400272562120592074287532869404523941441929866125284885113769266074862833807598547463836770268097580635751206206542715292352460450307717929063261586673596095890735511187801215119088474933543932465678131276711518818726967606052133057840779669567580104107723720731186935973152121411251078452518201222958055886089262522708639874627271543096112188593612006386406316167545856336046183083134555305983754809785137301298489823340256293390302529437044010254505838009462702769189523988914654070940483229503761446496190045362978863451755233850527589304795594681376847957868793039890503472456047529654126275127440265284769623015179569040358515029896464142369691639336385333096130159175853303829513485324228894128169916927366626735435521003669029063107462912387406387836106180551199643596734502681191762491022147662254848195192485393506960245439478936028004537919997265519074111300810361066474474730091858141925582181743836574542531965036531387130207469876011278561775549229344329828156647039243125557925859609175440938614011713590135823801362942907391440524714456118491835814756803470714067072846169524643459103109007818538774577589606412722946658790674651765392040421305008343775014943136926884612165467037629976603439255065422876476980249275845470471906209034974346425875604263880633033545875003586966649351735704391179796249080513412525887409221020509596936398388491576844439478159690911684274891303328051243184353096331836438060510456113240544068703429272417428701037026738581931151870922342717021863351568422455750757102677296394831741148899734879959105931120863084139238386420902663186548674651728730445295160195887127851109370965956150958328989609894973898118705177143310005088815406910607749435144816870789988004939834641992764303124593699022403549823712505376070284291828955819616239479182262823697157037797279250331887661995795399010857607673960409096273534991141949633915513073838722572104668720758062548806581327705049803068089777385671848667298163124505825387883905911483217225861914763408917178010896422536119994414883299019574736048704057760096231100327780826771183527747728495891702010553995128899680997737106805129322410867448151473406605168050765431119026856487226762679237066972676176812518470183671613149272850576586750639144048074962113890848994959661339816391699124777561608851343763103114733729457105430060403179891800464895395624205563620013704427488544642975323610591549124426716750959165186011451218470864992460434771232965742307482761039778925641227133310274764113565764535491293484319394712709712990088857739954289099918629293306375079321946206485964019374502742119362692935227872427743108497123871043934515699816264057254047055590842321001603620321925037616525388169597068115755734889476597894016538606245708785856110377572269998939836210869432955137923126070837946605724497187450637288741633076188424138732937167911092052015250287440954496487211534169980973201521563110651311189454344749351625677708989708294020366659699008121326030657059730610776171289751109248195065777932503840149733253631597079243266282681662440814351545006224620763456636945218334428024268194076425103321414993929483633142490064289045790304583632623132383455944492948755348913254716712834074113461370738131397004148297745363141726070635542022527624705032501319335196987611760681930686838989285018611175703215001385657694917576220592271416507244708782152399209504236154188976463755021736225526451437138676518337496379393442972880261435247140775664090624309271309137949569646592740771851102782060409583583557887742713802596967047305477194678966300006625118383695205418621277461296113459561919492291991850066956159809980137422992822232599071144256243950600284816647789542627381671166676582629179990224066259935603381693933269570958029271148488716208220935039527053333313616080668781421477839803361480614922417638109448629069668259156142243701362585639919235638043683515114267178622178386638477889353028837811460367117353592521084690514261931654191520280466949446848382997393512382329806558775457349685520370503064947588318669265732723798870535048430987381648449014796924806187491925669064025320560983317906430223500524650601253557592327442616803030833496395171833276933508890606424423294836696764615812389044111911337087616638413102912633423717890277731542283902788436767183891525290308459688484215710255348290068797880865678092146077352571605557909832618660900566456586494942984423148807719342406288440100915394096189304533159170575664553164189534022419179799348182528112504430608993280203396519450676056716733833580561525743972395197914795145344737791278419340310283800269555716154551812443349919812613943846359624748803556474506690295056819892398159514273203999510275407810076088526712601102510145545059551402029820637353525047350201560210568775120668045270310983129246454224217498940026718072197104500396669963304482314251658265781140395969422022460230714149148157982985996858636966158456217882009359233942357015118335928374969728891333000999958097417455320799243928647156799692315270161043641096417273581111698449325787849890307813546765110418081397199677290194825546812155851015706693138756048606516615737396063941500168972244068702979242819893349304720157825237774626567149022704415241282609922590624041983685412107689749201545175751292730653087602454186440967346515466304570582633071624366505683699510061747203321758575781993804956882026055452868962797773037679513482459118530123539314086718916501867849621733287532250779400205577113479609442840739856625705615458959467938704520014197970628744067543242499354172405174296109371866092961164469503848755898872190233638514203891101334776262625876946731873055249702281569121882119555724287248854538881975562073583811852887250918329712308162366043361749445343370542872473249803875154764177768722616762425860987881161820089389171056782139933404412352952291860294771281826926160827230010817415470579832358018198982790026831028595049351657392746377178529244413892073909136865569496738827233067210575606332341212309232548789296248862063481503362692665401830198609471072824954030353901142759475345797974690699043101667027762879405379518601058753399541060437965124743828233785913457109154791756143950570721064869097308134705184471166670500220191936712905179522964470009233176469910214917749129538920318433226606347821423267696605736682963214028202980071911352503880770935431221335702014778167037958387581885439753855765851728152970988746263622572769452024754337351162380494006888594147434266569420308839874486811826200190824359654340088181156123273747341835190758369133640257798387846206041835936292476341358067624836355645393463187844960413053201482396173134792898882618836804452156307545248886851391299127382814351584614929887606316969528520808632808771928246547328900940031529813158444146427258624842661817697450300029085664163206502539252104774255266076874135047636206263043658671150584514425120409366196178006415928917905459246680920300745849467424822000876686537160198434744595060545059872461218205672663409760785861235659623152570247401785491714487450564249393132886990450056046446696652185646963167983222597205374572497715507277216324142931636040069161452602138570545927034913477889416674487183557757131650366046252675964595782017083944672432342438408423168993495980103090858585304953586144981375809228469225387716551541070967149336569280889532531058995762197313691018282213792513406324132767827095665408075095161477621113443536617658216176980157441954231700914457289651293029470341540019807979746683924123882601543733089734334493151416375636198558844410390201872294530043171744758493634581902819190590560473186369600283368508496197445448895789536776056410309307136776498221563603512662242480407017151172040315072050864585741717349825647351607359551916091947831068487503604906377602624412760779931244547519752947533764183070640190173386394261936326046766925265795476236356894051814531723412628236688507657498220657445604461432724685621835692783471413667490037312811241833167138516014626125804018326281405669030574292096022183470053187651623241256483577706882260406486005449863058406739324836426130598506859649900537109792648398386864410125523493863080235069155671506704774970571348959325895449765693159968865245259058472188570695906387698704929880260115518115861810973769130621895804952920410606998427376070035042107574164543362864779355758247246072708840107918777210097375964162021259264621865561664064715472891397334124085436187834855303252927637062551435904294669593368384609570726970920681160892311878564578418992916965455086830070229724975217545788406973003373230890403580247992478147109273828420798757727692223406309056951893220437840447256479616509059079247683152163953880453232402430437025496379534618610847983105787419233494295042335133656062342111074552475565714361250681056380106984279281168907313666942231273099961028891487445047558728569723770217141337992653816940059849983321896980379653149444011367449342954239234358845851836412175202948942877519401655379475983794077586924548443141374639845885784881565217540005348488365738485297330563905564820746940317860285184138216169749173246090531395203811048418816302757228921802803786557767924791276090757330190198599937441919084041256243838084593017856315178150301838337692300768734543259436389962662976834925056297142320710040247522623198024181284711235178666653822625665456256265188637319816788468671719988478703166759222675302132985442989786169227781571907488137932844529349762745065868141448175209081413087348084570485228030007030782099785952361006482629164563598750761365061237686007418754990787387559974259598121090596598437972549610098225000434363962572626622592138661529166121948646079829589709412641416355484668471974155976007603147342984345944985468375271238380556976178383754580180108214909479798016129190737293151943316109340078064995386974268899470134219802238353914933501196893141869248103262085005709203874428142117835112515339328663555579937660038791554362719523594489005072963925495622725365873228242970417701919217281950534013493490429854170064524914493527846742678109230344027357489918283310634724133385591568199917628418739806156733726716812982142124299332804469852048671556798673753672979231183855299986095343889727214948824684916014153239038674430779942056236810499821950042154871500274187185820219991896032724529847456796841808686645800727640459669721781221352189660101573370901934072957369999794728594611860299155913776130391215404160270276604961155728288134211681206276974443146694680638108716972806034366667963731726585307257384574151314011378021577248553463293916572112565760306147900388777635589263289422022091891242464817459437401740047118665649818391520431720274505458449404436410382328443912197798136770938642926047642387875131903254503988178035764309429188979021725148199687323496638312050282063252278681102699243262710087474396332612015733280278095546350014013222248765772002614834624178575399540642460802199567332004654142440596352003792523651976533281912725656313744857820514360308785657289987577691691135529073033532465685427936124412354775107363388412534632143815412322795561773763930277098446008958967860036693673853099289378835315188937762258608152024008709183809939082829761925033749925791616882641963570544272380984882920685996427390988055512756525497468189108768109660889149086165674316443119351426636445385987922319950042673085172014267860219578311399857149059838523260503863091343093337518803811310010195677787533599374360676109102453510857879693168339288487681038677485446246383862675018025865930276888509560371555302362130592674053080408678239640993188337696290503808592388200685849343392737957701757297984084594661362118877808116276622734510823972143293819645720063159109765424160782097074973851917207929168470634811478389087097138011298428781009997688527944672037739079445042724381155324187921605962344293766096520605759632778959986780686812629026634710821351292310193993973477271509643090517081940410432500224150766797912226113225634888037406220032957057413134031348172973798811139394098251216271475062340552962051023172136360916491261969332869217104248951948472167899468901275531685714868758586693872978500297492053045018404139709701250175247714060329653554818299140933864222368894176705283820611398963200052850758639794126007878577740089881247988937126921581186918285858704626875869520208713998880676785792883198505736975594755484195516679225690743922224000648954239856992915818483161630407809267746320823942687926649881378985468965658213245763466982472913383361640838731177266006767905194250618697686560134316059835105721448568670071366260552287121675689133456006742329400009315947828003223293561187040792149280555307842159631630425226056910634095629666737506948532370824672767304229553117757318642948475629370602956004225642605516686003325597069983084678308145374522536821738827048721045459625263727779700322978574533255403467345126932851599299661025488088606764707053283081117511337307101257502286300346354899927730131962854609567196046967639104238610796598620611327151834548402968872769780306769690498338203685791728388590905355497343100217846619700945850525816004244941850575427071390716096685792173607361779717707903624316079386941356050475777076955353206429176805121514509848880951665303156352292432362368212523528087243158984304103319832925156871872955917592977407432089224403290681675842840914742256402802133891464014289967682098338464904595751296094049772819607840308664055794819316793293772572550118868861735267110406148350586998367209083335689862700939625478780625654947841996057063418369770399069161953674639455048480619157340897975938048744626629512525904959229207720077242811594354308945671795423104542826396359656550671079787476876983793357731505955310752544869451802595747972166933624531943969200216303467049535391067135283024592152033529722872713112643982211671299888700726659581447179888928263640316216557446415016439567582366800206180663743781576539320440304190712830039801745200064376866749714703853568558157825154333528479361913392490048953636930533365338203121988796609991196845102039864052673684559939172067755823876281094097488472552903450646644316431655275619049204319577666560380987926214415690537268510500305692485745137194235976738044851980598214745822750810118444456253080166530433463592338809416421320227893757554201690992883920664051525077799552022041383501979168902271704055897751076752046316958534517446029804717820764955681392108542053535784460464541264468377038952836051742696073507121872711724185005635706124562190262985563987138137340948532400537338068322829889441168696508171516861889727081403178369068687991687979096849297808642436002654935024717543673567264117669069829866860933166811909127095990339214354307822897994302766333845587148227682252957034148101355106685156747540579501907373347032003730977202113146956335919988855497595929168181970800414143969027323418256200793671269920705097426608710469056488685711325442239346678130971767943313323863818452382944063297927286980759338303687498869644288394286480655425080274866704784334831059196972440781262840140878925094336810961633661216919977759011156734558829394239893001178001242177393201232815936551589804641974826321351831415488760270398879664976628840574210921002205103063388346883434205417587590466952399543595104555302499508277429287120975712676825114144047973245901826472121340555878901450730396892071739823168389089575357482618477312642023487373593706194678662757748389464906352364462137632913642540479231992342617932608127939582763248863369912384309413904182967162286557517744005636114853783903069557560835539925684987875759502086549081804692434918456515112211986572043497027202189509536152767194745350403063338137835715716701932228659103707869365640030048885151244170827757004429912958173356262067791546582389145680766871879615384170054038223820689214184766549555659805695948006219512741190979216586511157327099651281255295220825672086549302076687274336922369804020513737336324709489588985738073104990675914105107469551477670340875794110476760160643283362007878403329308611187972478693883850907051144500968395471476698595881548823351154612480321614402985263437164383099689376118111698448312254084505157143467826053051480280348969746115606972609283812346922007372891494011240497870313521590027258873834284984946747564295970830749832019146630155021084075872578012996713442628405279675213059632507316152734066169328331573523223174503449103421980116418381422087820510801999560802852852708928099440779133560348006421628333109132552514122990853054244663183283922725614701449403485925528156630096635381698101519232907535404223722020795740137848971212091517085452078757850309009856798436328646780243256498769846971973088726022085292451369256749600961500883462512020472685209624818017789570125627043326798192401242539952357828347375662589301906106724405565166328866279034671406690578481086960891168118851026052163161748193224770308368681901295956759489080257486373978769552290720424138699866364139836886697394213061489379109677587050476870313710127650184134092505084405510091823920926019237669970607156476940982516259279309622773870511873542403058979990004438315496359048001954781370222038694083242564582520794943682372440254098100873497244618020889027027010771697466764401921897937791757216669142198160283478915096708871972033253421489887812479581561379497709813432691913534221512528425492337248022834577536393287648130735559106324094055772497817540198523419104316068753425436337002203125681881117451011916529842661295023616688830667851945007133075116488009378048919795851276082424366239464164312843150003157442674533114132858715018530691971099570626501628143832971553274192460742161104188670061019204611445203798936060539820686529827112850598282543613952221777503695699988200958379733424562859086080091102252159599170205117782754972108784250306492411874352249097555991313115820621769583836369437289252886120545475884660935246822749553520804555110155935092988185822648722504721761361758833618533555056978783457073691810067045714876692473285358067995056733862308274904026889154955059027053149325383220877507133641688597030038846956373880031636686944708493807414373079420851510460013694096597301774718948346593578481445592084829730868803120538945149592271429152318246595976564644810024035596595835022027614570480478308650711677962466108475689432861985479623982891672774970657704073243150343424253382442312114739765146853657277685890997300788343869018078572501348873223040060593741141227169033697619250570092342071483314147440134123555541317433150564375928766482989835560861485234350941556343091042500358392268219583550220892794425406593431889400910063140938493959233294127897721647160374782185564622425612088090097934032908857639875372332486919061578253954099122493115936505725261511209190803199564900636461568193266415859718469830462433725665483089154848276187237888452746685618843798982378832173597480056581871636093843243208269351455880609634721595356074014073804111316877083431073318414084357726871522060595703335272032131171211146828134472872306827140652771741116208932127535670818068006682527392268155053058696100011200422104720515610525451480743573836501753167490972731336421298537014374254448013991682727267842586092020456603347837791727541377902095088654002412737745167953426465271078486975947405236630357316149882801212558358624991128816790190548993766173855942502697374964881786989048846677235775855134852126093820576683190424217887794834737243584794755109406129393794588009794208174426234771895185099471376651569608752325232703477930937374985463057308057375206012497531843344297227508341886541507616740737430081509525983960668401862814505976699847227129589606513696907456428687207933123202168398405335355890753652535766213679440577803274897229758693927635970510205554107505269219429298250766049440650618985368252603668301699898856704485201817245239131916832192413809628028156635110366409077176022384979322336026580111963429007292835022649406269833827476434051362512429619298568303411536797910045782732445728210582285417169346848915741029343388937508291266202191630146589683202046967443990093446315228974293798781079740791530300513462173583525629657100727196089893299022240804517062693944494590749928678496482211975184417661393590085263734207523137985633644243543155913986420944256829199343323765847747015967142993147530116117078080390587247650429115208386977941314746847984752003619671163796206672500243436203529614015566785893060474171330583521076446012206082523468818086001366872427586093792295851231334175887379232452851669790386931756289804604865127088142106613009796421693944882516734676241589845705848006788909106439757353004211073638169205644545117490607796459126392070580007443848160274098304583957965322891179542340295521134338819358806707963171078243455380795662929081613445052654262649659647783074664557698245338309493335537168709110351010935974495208916344728383336575017692307995213375119622604085258052300826078843257271666240318071985678854108717100033693869037259609262536825564015823471259899004862480499227153803411291268344698807279055148731703544959957579737505761711860101316842326232793309158195531957097249264752693212537019393309438290421110496216747149831943661117504767770471041189493179701328492317267074020006843999922763804813611184008196994666004738642744248230698181153841485475451291501233873667390230580863241989971764179836112315456128712246405435974761848991869010092965427908671710800754901548721217506899611282106507838804611275455425313613296248799992382576050506128821104598081569994494484149771532027273733903637335845013761400102735995402588261777604100507912838475116700282113724298859730419149578674825760628416215023962417042819491083807647288139073569234276165740618160196972844547219159028118952668630275238135363761477696013508939859996752822655977047732131456922258457436285183099278276832428238404358399219832826695665752852054295139699685259194832119454773520738439579535067593595697848838602690730488660303099032950163512758417926447266870750132350188218096179452621226536359249163878197414383567627940836717149451764898642712970854495029103879830505463468903080981357030847634540888345543975018370305160125175653459260544680756369078072228504422812243578026791408596347807721666678785082517548202125778855961232410522453039824168827297070626087409571059606430745330324940316144966140658114330991522286516821417806698823171655161405319485578457566241705271380955336492101211511653774216245880388938261493403264557931454660734442973294443684345223286886106141475332285657023714143867465696605393877155806598741157450690680848128938825358510016089753494778299075173021702642997367574151587936584295958280808562756507156237168355896563795420825100954905412394107137185560847471385502090889366666262930721423549099049519793436277640685773399545631033749622709245900532273782156532233111455832205925489962534934345473687607325434428896529484119681778360468535147074748085426495797596014068300804078258975187796213543941725372237566716208757756563415716764875249669612593284252950416667623261007752713331256271916425381114820492073043403046498580948180262512494938526543323863010028205567627144330915198674648666139871574547468106109799217284284944328211889203560418256822455969429703256953728369522251936155957318608428427428119909827383263725188197335579712094143200982005635510566714705325092299149651137696132178637749578448125993089908521835870349101052614094054449629286187193405148430537198485869374370806491580530434008549527578906967727130211069834641359722644187128249833411851323933320439958798603695499076126101542237559135519729037213982148168474121345426209798573085084305179620112980261805067081728371555324282297649589450443821470536550684383053434945193786681425833992894109262957604486197357865515045083389181820157268248807948902991993416411936661055594076422379731768317513952276830958867498181787214432018768723668093734164842207208266384986421200190356820796763374015350735231443153749365336155787258213238386593083656377234111696974098367666809316682270822051087386092349794908821083853205556845237211048206804128317591302103352396956786565904979506836456709450769950920815689514399641654081262802451109443266935391943269840055877386127553672123391411640410551111451865319901836503354561150711578805008258270049857424058882919664446868126688480639072043242832937168691068683689864816761489983004935294699255005096095133893365679226950247633710547835809411072578995292920959840284611202975719585504120720444425668008076975029469348761361795746807891720739824096098569179484090726584796705652305053829493838595889235823643381179122170511836336445888023259091368131594195160925434465789134837298819729097605001968304000418516116498586586845102491047411681500610686774693534485427650655410364242316000435148263063910207548848498313739175074634599532491631780724643646509945770657346149643606138933388086701614374242572812809477528615848056071722771992112265836320984566773769182094722842661953535353201772854542651589434938297319539824102299545693111751682192922028414992749718979072037611622860286147579635932360081153115753850186758224733069089788492001319524695524567941188270583715670217277075873316398048047984494421402255947098541636798972514340450720219305414940549146291572359779072147015648061616727675379588387247156120373880004277279580836807511977657693989821865231840260967557579187236408412148718002950845035586145452299906894898183606773609207035121292083806440669816765636077414527312150476389871814153290244248781017009576952643807945643727274511635634063481185503328848845159063918777672610375470746983604472377420019454085165150768299085180875964612898816162963510476938765029521855938202748053119778781795092932725206192717999978940671030590260373278309726464631158101904415735020208162244155755388546615645436946415783747322063432871015657049087165631807473919026911890131602708363400709880029858832373460918369223857453282421763285511629821327963396605212848994325841712826535492772782353372250112675263379375859776009705032202631622872337067282556501093751523606591209313484147725645064864543869928049658309025363847529908473588579441048688377962582836973126588303226823648581351762870160749843200672276762362920482471823395981005663400324611852052958703074610022390256062208215889589247152850726917747786557861246050435126628666870801990493442645844593473138663414788156170211821068559295147883233787522081004321595007903355804894340071002924114759573175679073850842871460537681977697702618659412870075264769233862377380418214008016650143239309241249431242469082638995766607856688583373096377494870401612890026520552139339551882609320589136314791001842425627671333269960485223832517013358132250566720544731185462279956400437930001073145659651014037160247397515974710775648470233154156778687640980748954751041225972956029112332817927496596955149371911525538766509959906341809045886707398475221125428196010335767543652064974645977824984317894408849972408166204689766005733680385864478815192951952326720794315893151280910343518384175005178922849212208440448959495910771733209044871844809551206892237887790513468867620360420773250502137924997453914795613571798593337522150024215833352098247264164927606953745817550948109854102639014277583805654139288619086254670896926912345564265996614394581254587971191945791584135028439891682151704577372568134224626700196586985777409460471821782588590824258133304094192971541270582484701111243908305184886750916055219776224904411290534743816929343890938169352962021978260279271202052067771151507643496533507425529449701559379601158311349854721569534248593018997227381729233194501364083429863710761055048735278023408244149748480860714426891783203110143635315418548951373587185084358072409991921334064453457840342835429774176841027886676138487223553110593446405368430170784905603996310491204504161104463294131176085141365671468222253416713486987520303927317587861428361389690621187654853188721705838372623081168671943122494183662261044560982909046494419558972940957046727813994403927203744032672483024605350711139578568193183238307227509984580182334098580897633755451746646756167726057688623755259650511682825019432316827695500079977162618531263883046376008222336321157215565870090257103256012953648669240713563677169133713180789067908620868764290745189387041254667425540295177262064545812341597673742222534380101764943156606670469207824208204203032990049396624064974112030918393703300423629753014463922260142350371070526730359905747059010040597980787807376547409437753516175628788286599993555284190776301132707008588862132556064694670987696269343357507297427317567293192201935094526888786208602423174221548015597055496898613547444026163931908093832691953991371212821417280075510436337601333117935590460874551985728837312952679998232325316060387058926156417021803550689495431836584941506720645735330621587066108862353851008651125758629117082247876537649965801128993144163581924114718235532826702226288748984659724156413629210392431412324657527255747773405316527902830424775914820628310077798989006732943892193673765174784780181779907102785166171931680140131817107191945644506357210345340923866477557589176467043427089127430659995711034002629940055985109423750069185433436350990300629383524792198197627994859744666404174473979857637001009236018214395897917539501402949831539255854299838470390395157797816004647632466826542325330634697230962706849622174604506997046607034128078831253078548920843461311962070707898104938343468455560275769541431639266437833788606511131116516985548521230788007017604245214845511858781457164862836632036514276898676867985636159072060602534877621327150019331671520769816004256882073577909623855272740900513755278274301790776751448856533261944486441360216981926352488535146310788744517098204246229951654532775319533288641156865544630869792641840868266571808379911060176900287549135410937608599878177540231775242759458529967408628065601199447362671728337289092284585181745606720243940916355730121917518477846552617612508969767710170120493054784539586757909568473160112803986107197735501985328837176464173934945319078708017635854845550024023057884033972328708160250797307801933030414957149299867160029100878868638648380287678269974259481569639620585993996824016498922368481860099488794197393641329098029627976738500642947852330037541224080685334684924932309117081462226541227257181403719443623291680603331776503889151022683087041113165261976511700109912876386906735335198905376397153398350031203647513371652963520575178447080695729982540333192050680231258899226903832429207209800484541082584990598092785219823030830729241095575519579394562912613688866403171904133765658327629468175162906446990760625771104096690317505527570665947073407142508307829671288709573042366859654171240802113492944421214836701897834147805633494745434436477362213014014405753447309085081349020966534005784144161705897481792517304687279025374510377435734812594356234485838648976752484325125898723586365121064125913388243702134266617736591658631993243005515670658287573104068030148041045927395427734194374126902017852195931002622737427158251679257703325560981997381126981443262212150793456519288871008624303817799543993060424734147710872245982625783629772872216581283849382854296810872452654517461230283684729148792513951387508094021536207535668808392197260053211536466090915955878797171056421748362382236382574945683360653789425053237195196809451693536649605733502211900109144427741043241074047752593380815236474682088932087192451076165930747658028764596522934193155982828401650733025534273974991723068702835355364122297464269446041468298204893178158913584768470696919349163471804765754385391950227176472806236226287660551608326497884122359112466618581635387563453891122746212111542913722310249195017551817313194169012885670824834708612939544191212027438322427448890662866873319895750419393367197796384415912865333014714335927527598414011769259863448346727772669384395630061483716107504171309035330196546740774238641086046542858645212048170296614383300731928153872031225294271047278213032167191550388430777732325881776395990096644744955009848397696420635338439715107851538571674190178269901893127774726646516765738336284804945267640266662423586104018288238560486380576103963366417779613647504566499464884139978761864159407559862629950249640384178141280076221799358261678090415218946991497122486998484472989653123804780193903409167642531418080874999319644565877178236775958507336240434275868499810929438847605797707192542473928951297306490030059604823424174473354433996251752245542495235256448079635488185034145792273108053879995938170704504375602090025306960378977640233353704175055685196405228984785913959603447113665514333438017290072598842983048922771359726042232386233078895648656899222793567110932692071400689970108258983726204393437700099825749178011773129531780700013961611699053231911725333794915653479475459493979852603047691307445478484153413849605247330897284921054470583904110567664201519949795065726240946893203644381302796953347342549927156413119733952524698135071550272138034665403951893648694759818896892302258225186790425813454467546198686630758744444412156574608813557299413542699558085376691458220116293374352284200764265902103328012137334113640694631500843294063691791619136234599322621777562889222491738366423895601791864976289919914348437379484887972333469644607091092972828784816965876759838278549442533772410241646102544180897209260174416733257069768493735386473733165394334513569105356578095767771921840032974602259262420850040017090645102515442094540987482088123479541708674689707261388394014843823622807348581840069904706143241121518955505892476359895636292687569446894024797069469376551705122017677291016082712685948535371795947003206931123028638694638179008831243397873614480017257708344091560055983171007918556525769054310700198770079852752870405876127478867971981877229989800262549257247687449902275860258592654200451329593466674996562484577931867060947547311351303783106558046274900705912443983971540279550316174476787234029962664514107632697003259663168525148118796020864473739493627612364530649782007541287416158012108105227311374561067336069167304567424561633548964422114804110444129234157239292763112107518266231419225727933699131062308462912462121738019649416559197555346156725935576714336618326657817820570169986404495915842034782790650266928754637068077913332960294493079255368397917155414655854080718081783967842359374529284206350011979643473975253254592704058505327733020685763932225248062800556365674252435470750165637952255459665587701997262215611087539998123637245372413747489892545173314959748981740268208026175004033101775532383837764045261352737571082063565197290279086175541302805694833274179191537367281957349494572372416181578229864407550301123600476176839252061330212189909557255026653538707580929817784763583279918813429028024827614234109076877307202929695664951261813972739438954648267703024917584623043166430541155718545573345718355869500600234114651680105531445507144050123079344461696690846021624683485230655517173573556483913141403057962362484373313287619010851600140647746490381144323760251419733348223450470691663176211244347549846870571289017283952061203155560770258033508284335474747446493987505416956489530938548378292296253645260329345716188205160424704791705839166843783912697927393127872604631215426414266620878146746950086087945230445708374485386791731955970304609779452454399853363627201927898925283904904531620756768770495550138161661757657752562191616383684630271834219449969901136701663181504148185025523852424305198169721730458924457502907543345530323173350817259809881846870962728141898122506822493068524138331957026672200933565934465841671752679172158096528701547742276679288951047478694689745726201171689614143950668816286203080920253721925585763989304584515397644953150117734730746187305943379910840542673060875545955738481621121656908944323628130722973406340053005724202977143684830434486997948837921813104337127093357964919045131770016631486702503971434785381687609472885647695835710298553304862205636396743819847342009987983459063964888163402358082623526206096029208414023519050281950115736624839114016717591748164091703435347574885607033198792973872642480280368928139007970587013747588471365547341867061765229011127187195701594063305915440532034274805279510254099697754328556482361279497916166606401928484266872738202532332733145176943887508549807572185718074485893042969860131809233001230917055000278956919494309833622494072268454724182351768883135738944489345767682676854677417563205277548370278612054193343663052632173437131599573944039123698791636352315821547840746931004266338678333997305646779515541706276377737164079046087219488386492274046916817560397778775424460837215224264085851332946101127620035870480586122520431488846750504339055549424902928618279630373976368845318795573533823474877818458892438063316341088334202031839445499577333721289745504888188545814729483565149042273135982174845620966080015128120253383627490547217968204066152079912492826730474635351097436529342762106836236634071151679046768540539455826481683247307758867577411631255901832240029096791411431323522513117548467012098550742450038757306144938732107997263631447674345074288184699377804333883663347241894925844017344742949266638814972265234909273792623031881210973772550737646623668958467442972751656219577592580659289620905245025968197268499945729900627006453653712074433733554487707957241164996528309749510416345386849696407179012880843438526439012155187804826820003397166552456241398543963461331328312574002068369880984505245980545292439170834833611916992859010270703965475859990492923698573104486940287696564063981075746436641195893888366810346826070190904644652224193569090081650912390656634358840276716052100751983274841374807718699466777089581604362701621807751341687769279910616940522116532717223980373397865792264199489856631099891837218635759600577786999600598868564429673927453706357763610615674792788669869008730232847490683692865596602152001736339842452204326022661078729890548793884835661648898375186207713797316902735811891581736524733749367230443267539300937300628146662140981772844344061780248309785635186116406194917412215200510250162659100990725152848471341720352264682495204460020875993750838504486740912742406701721900788860378129952789518188800122307734640226731953332194199442323783225298900144051558660529454113089617325684612837398767492384450898042222341245941288641158148440348673033398312530529121971950095679031120307709670541883565573166784092158852735045478229687249556983753196057015113641905158829271220075045415993396632698125287537458764577662547073276653949000610485844776659474200621896294620820884855659864164394373474312963690646927121063748619425273451121372825059162438322861895385967524753614439835531542395697347956871707055255539078407823308545499806064193701550108200196453149826255953816853171647401803500610678364350356281342877890203078025275866784576982986160123223871847896873659559474848061569683803774665983200808326960763999569642673656573159737540200375092048024847666973203962084979248035795939414685195099658414022809962561843687656949788464985266171381727292826614938946062678561363810029423339067088783676138702998278652769461996703601857844407764420452583416214659855329799951733119210417093187731223742490279399421397140646470873242362890272585853236356401682673985815391441832815987321747936068814770224099617246988317426478397135381230175282373532249378499229249454197536074904089614371449446147797834991622142343126220776062643403749863751574993334199391703586555647979399778086520934887445277665743679618294945381174192082404247495002745021042099941683695746987426795083892389154162765198658982542245277228232447460115870548349795287187853034775922649746356776930992196797222887055942657270305079757876029508548614519423451269812395271138895500467396513770843364976851861033065579293224304499817332305855681647393300630286287585248911053373964948634909603220425264669564196221286793126686138945514494079523525581047014902023129499601216104810971766348586623917289206692174982176675984602248402106602279343625951763745134538445740579832193034054569440859570065291508644919433517005610478581200526653343298304317945825870728595258994366155155083759604212975050594745972901324806049692395637657449408962636168674559934138085934373576082705456539366069705317476983314900786327043762744510915205189476416781479127724532347032715570588421593332721333839010610576334662664915395385154785356318006037763652844483418761060181295818598565670777529081185659415420517996716289163996103900900855091271581398924811765816133378827513615784590120750490361124943431762889837917307329946243922093575803162224986157381210131613807351066296340905944555759028950706623511595413361332235093206398325527556313010690240725356353568657290966316785692558924047527478223599799050168258903925872951576759475684330939197659437325512129900721208038727913367648177801652178943698443586833492388211082880574946118217284850725447202213479864647992978162117123001225759082430364194245252859605900988433004270612185169650842589894123065747229861149292179052436346338418784100862706520272147111023642335250162172472491946496449192226474349999066590427510063478556792590002863452950083639484473560087500949946523999497910250819500996460145350888546865291695146733982122168759749227265623484089386270663191881543425132909952541839175621305008043368520860042546408080064208605048470395333181208416641157412905730008014124080189313222878568730018056340744149544453122933031244302871705464648042946299043332285768619813247129677996598041292544803106459179716418680240803794744990450976702291601623970927065968172963713743419277155833369501311908974620258304481441797333966379834532462382379723031853624728236858610992891954824426446733602513897740035172621000167303947254318179338119196010834705740783110024609511915453501245301996445574749965874461514915562013120972875955508518051529719302118391392852158551969431073153309505584173693040308292796027933959359259805525343897130854332978497200703709232565045594931505781447445837849058984397963442873037379137389807118211216591702992422002505890614851821214548235563183019414056710310114996439493045332891608075252685526864261769557740970685710691817861020337799025884272088179262196550832008001875466873046246413251738645239457493534484005780380672816504091747150040539469631652591343576500000991809479773282828956593211880111688815228852117409009565063446426283269922566314663959569111325587507582808796797151715167456448552375643672121848501854488256645835672105861418728991369137398800694235316221922900008026977497372278652634654417234612563361871524916298624377513336765072478277193223980745348487095478449579980301890883648963771977178890994660315865372520268305238809699835227480385451928833186027467915288243344149392071892607666998444408648070446576677986583948562374845837014818027376935391772527319774427839875767423939599489063578544028864858537706132019396150997925579685435623465396409140953874140992861948260547258053829862031328068759495108861750897237323916515298548147160561139650672811731281355984738543154978560506407391778827297309335648876830448760079217078842839442530022543132092544030117748226433429735805896216957116302368274051154487575221788771337822809292789155676412244008215988576951264274224465150158869570729317217465187369626449484004208653581893680650539298734977756062366715152219876756333085756302576079325203214376039744327455390682617962496504812556439806833048901461062221716830361847582308943079368514792421894754445318501975307656734489537433360047408921411828797064774785802899776401239683106067481141119918381182741259355169101534290685970615084501735079587915197357463526716058355521462543378283573388348701691323728208198777381530570902523360717725249574883071616085738458522260990761358811065915923482467717698234036743835412082878398915891543325533239416228708998919525922857835008260706094617216611840853806044518644293812100559346180745584358005170383517291904597410652167722898577739797838983270504907268431045564524522407852445834249961419313669467650266900713078319606057792599465008851467195595695604961251510948925051626895537902515456461187552343638196469834103276859776919762168117862574641197310109837988586016159298913144416130673764187993292613616276742575968742341311932783354585482402283287753415324603382179005102342486700855221799099808308846198640427300465311491251676369230363498086711685851261511108367784285756295528427764001004151779167056206065853470154909654820945652346833948305317022959477189797605605328885997945075481914720310321136897187214745799066238707322721844255177170804093080640375039307675526225255224117417858915201852045579021398691688145666005348827711739588477004756450483943848700430939247879494733677977372122689637736381878948287848604080349983388658523091020621629210973242078729462046685441437345667381323321211398565246518472896784628024567845768906441589513604586502639837359144030623881645232911007857112782627127697776481561739822351686995222579564642079342572135086570411831648805020757904428914018086918680208004932511160399375779962973276117561093758515542743802993081222681209728778558804894582937692344817153892827155385101409139821912427060381389107856849702327201657584355103444348658598116397124988190766630497750450664119571414623769452657915100245628610502166090081911874838281712530169302915264750529568614148938060145691983703549588993683475060720717791689354745889423704936557200725435171710159534622566249158536604768125076193614557152139953901427350623414436125524307958756299189957389571095031778588919354677187098870369965850735750163779916019139923092466739850109670872435871091858373263279826482388978350541303402007043281396965539800236615974485302916047125204402567343541712590521075896015880462927698941103185762622539057692513415587282871504365971996533092647481675864340152079112993159417183898640751254143949296111965369551476570923031433493600093933598794992792460391771264781565637349338625766379662890780913738815093326955652188352873242580912767097441265004512861289290245041608174520391689433443958005241480286323019393774675018459122727630036325127603253999221983977217931285023721310433534524274503562490244131054724893773636249433584234957130466997883781094707832333235900753149674597030166292332769717183543103347929304361322917635913275790805803432278421691534665329935972677307223493400466529483883810820575696642861705213772558425839034425575090289396009446232123286294593057695388028636080158101711745738095463890770882623360490401468631722910069911127082736483083503142942604866068075666661077779898313695684626895072120420668248925488379679751453416212065497358558276027457428441877340558161139341915883998086268634569645545333068690596480448947606252674073609354173096997663710591435475756420993629376988737637797237220896923899028316368590124430952494227333309185751626609695791437213820229384676156533944265715384460434957616771940490432231199726190944969583932039244219538961026293193723538712821863270911067855260521245844130972876847760408068438086013069082711328798941485327102953204868391906725414407179146496263370010460270614567199811142513494195124757439074450865028891327094222782482566128890606671373104369865595186924238238248793891026463219924609861848577507135684928582294183821972204668579887931612106541349538302388844799975068335729444028951532649192966485748066192906740202488263474491398395419295205256994697505438013497634817634736054650769182561887086781101158191727486949539509375347150997835240889806981168627860318736580128695868162050013895375519274678521685123460916510906072555853308229451474477410515411678714672479345606269056444779648743947367631516862063067379766419667625557209798287135803017581842363188837416963902092777786252095840020630430766011914939794957407049574880187573476792479538525186216774624422288152783008480750227035147408811492970442433781021439289741715656575980157929330002565264106252434549647344994366257917240391298609814534655508438417736324248736174079826784761769504580023196517198873854520780505138634544321829607678634220494068382425953964340703757006349190938013818594561159267439190158401858051839586972517926650620871001788136224417784983270890108437492365720108137156152783106266798513391033071260016776272747984361356384821786773150096040091637645834608101561624676269135111841086678173294608232315990744528475860482512228226096057099399048913645203358570275877522940970915540132379144741062365887830421707773774264189696702053332707425335348174677923466939181171661992895805507539161543542308805195465128367540707030797944280438293958971898242910829366571184869520632789698317087444029524191760888518661296403963564001646854870849932474227776594244206975574749051274096939238286272967551538481104111257520861247142054942704645064805579803576404327325655214181775615326461548354853109155822075032266661930521483608149148945835012916170086269889789600405354126932233865939538218114000807340281562140809291876453293319585980620772911398350206801692163782259820431570955861375820849348312266447840380978593449851246552322942633106756431000201217511684200733690895704137039760714580368071366225230813028398891478016241128397974616717148617656199045181856896969731596607049460660171888666447950438849653532544950782641746378337159880690000467937884667177097693990628968365472477762974229132642969764849674964351864282960446083707967670685438546020381409960663244443152312674333802081329265795669542443646395645517781731478616458509059438032680611231203140277863579750815250521326133828133685939330183303307021293778235952825460010299631584416947572881594709553403747069717768718918478313114944008638929317328289449662264353979733311368158444285816370748581993241389998965029755466701729528887598970847656427997104558413409818575793404845662174084784212292935692624011473678964118989114524973984491890500015847252617633527916400250275181488157640503942199095556536490635273149332077226871894834064828178620079645189038926133117669773644830599042048254706304863943718210029715384062537170536047734399650393378324306968047058765265920982562866710186532153073501066124902838759239006833648372389009035756019680600033031807797565355181577216195036002693130305711775818961394380982153781517327716757757836742948196141357796477317178614218981589125787285312732809688526921369739436267310039465220455871725281852361480909795515473405863948026912498611773770435842533017390595966980865565390793299189192012911440773777087469693824241571485624081696157167798835617848854675428160144408143613649986582985594321044319233424100234785099013953085440502072640852591869019507545694890471151634574249513533211006343515002811906901881840461511291078657316897176003326379373822093069304153596992287698700744779295451335840242327230345444472787004282758709108363245403860478911063533960727358906954041617040549498650189165951116648404408544001883791727690204073148567367305976488779778663295704241929275809329404255908048238929287131810052047725795010702595657664551606203705881700621830192898192740633490407064622859492363408907828238367747483441026992207212493405734269767433924481465684984130699615658302395866359945330507377281441894353267084196899015921384342232343346791431633083257776491647848557529113822848792379538793838650276006684556127620407160645115980123225683891897851154450487631999794537045887474285068118891980045785953489561916752866767180546796901508456940590837748365472137269284840103656263490869209084051935354359322735102658239602690621199223805234292547195047832385162878519287018700600804901026548538237152818164172481133786420664332140469838516994240627921853811216977651280604205394987679493171500603993887874915177904792106636327585627147853534743111169761745851638394330862638057043802417120642423319006910128369532645512557838865590113643808642156224436734185571102920588791612699548964565886765669811107499811407577955246864813676860044742026786978286588460205816364478085692981759680977707092879503808507869122701792401956059908498921108261349853850146390340335946491753418292576362848759489937606296276771056149836249789155926073980151374971113746358677042401690249608941532839431415816233355560137976148631352729288374395606286562634754267598730715832528820613549417106672224975682157831486036931244787173849154069793179123323013614005825556280279328098686026702649493809244476183750255257043029550312259031401319746417551269274467912723494255982589325128969049926821340038764600005432705625210648810822171814952985548821706797268458450639197590184959398974016001423539089796584104970953145115968281694703242395277580664674741915196446647131297761582624956616657000283783796514298970799251985064283390445879793674355733806755388036900051965812581689634701287257115926882773557073086407854046595085560148233262779610275439436944250154054997654266917785750729069076255863162856764918568877744600954931190682331742469301060028621727107070679320417523746033143690299002784709623543956606912238243561121158328838693120726908321419492400404244013622123179413053037873707974721036930523256432181222392069132415445017334098347451493280745728671391771889682610818557279622342533913302557822486780877654097230078252406071588008204765743652163983772049214047973074056848469608925760946112017675707457397186511150709035672997088028024794528563514070122255855280710712145622604153495676903417458484154125939613271593509029240972479101429287177175551728905904857602684990244603575604966377747363741072735974800382436934486621513088910350226506672476800457368811565831873420979359790766323202069379358789280178218629376880565454368312714692032724851881388430940013229043458592606411109459212538752608668924649329464522628849337472781110251331085882302191335306234655251004357909881527786406222186469160205209127672112880892768775812466600406508815177109828840937672899921556525875395129516686892557272243085915273059013831666170443852071695826414701076747520141229178479933415551044068878665698806605255428604216881828157900717825133156080793767150535982843014236979538541615017648790789308358453572835595929757973839859459019764228741212310628873516746215221159686875338104357158425995763295527845418263861894608801139910190936474792732907259812233722867985654696486223365173370406342284507277370281206755724309028550631592172751466320346463458470997467572011419141328777690021797364633140174152509945502577803721850198556277594285896541531556270477218762099759501106818688463461657385141807280813043744924812971635035542194332405668202938516257926679560919495301679853184127902383772520297769559803490918244061673211605377159559308409909130032886641420288819519575103621066198921794717017888607588847933929566833652971287674593683480190770075965782821753229133534252629815318397822346934323479386742984161727834465281813107310682974674490600730716341379348078988004152527500298357024978246996740708025039789517471370137959852183730262179387796145659254101035293550857511719655523839258402955118061363767908869905836594176520768830811458360255702986749232248373739278020106928160753770856075740207076888727982966103239805372672229942476313309734074145890674984626494398481614725326021801902048436975866657230004518524479759104395031111843651516185593719704256339306551537539716259110779033859456132947094896443021722924686918612647960029125868646954721481219495387345932176486295320935332192143300527373238969923949852783944697353204759396975169687594298825183331686905346276670834575578846649558453746505946366641796396753725282751038510140172992339538438382582692363456556795922071083012531258381754984883183510915510658188075648904098542082214956630293073714673411365258404753190369092763542511806517725075668323013798078470768467476274694842421365577344227116276964780820019440284557403751080880257598045781241375380631633413219333771549796740823588364148686316805414974355213814851897862526740139902228289684151954398626225638843883875012384351415681104469268124575070607932705488912428424123360402194213254018018525416530260477787844316086877713443398375478820917116821167703965621825571836241415782032734075315958480601594885794411182342944781061515826356736096061954627701889758826675660839088993132107733782287981336301408499394008448083868227267361719404383246653624840383693080872471122542570794468867883337157112285851849064132116402244989597755166880516724202398332906503871451125540667178488414054276897736193335577771280705516479570009486623891491241997146688269743537337589025591201618165564043243005684578624751151344388104737983987725811366536197808369941453871247554020881263185192790359895204214970264964795170782215103275704594831716183466733444830194224889544494422954009700757310013493476007977083182024709592857096474064436298273319741601810260850993560549388388117959374440236248780937857549625613042745548491994501038181195231258637582377643079305162196193472011730226795979521866730857509091595554442473876266700986746123124169686016851535405818743558073711008187360594727180771125980119867002356091310311703293095086669484973850046212457929713807304402292688133342476414244082853741932290425270909389492408629670383667358406172921312832683849380104036051990286795464141643998520895461454301813872645979868512024942148727507609228985846639711016165244835638936245380760611532822986500843637067553313373863583051391194999307310330650651944693475666166822114579249989361058507700242818212208882979540357997854550557434747263890785922509005903060788173663439782595077600871306086803494397560483245543961199869279685207299937630097022545391016962442911810670983398666569802354620299639035281926706249639823630692109267653100010652776125834606064101642066672973403246355672231273233694875173571052601209467353364577392713519673383688677103279270911833353267047569585610989041576985510069552027393219443046817360625228153044036260301523726191029530466409037785552178904335030549484643362738768955986047924950654903967451691848388704381409755334288505876317421479678554570063598301158224962558613062609089392304952987637086779087961840246482261891950141681491995528276662395665114496385114971800286188754229113885602627322753874040337672488071112917580044165806497644773409140223330253124221671164192388552763166572148430021973897583386687191880427524347730161712907828792719823187036270386024684318165097717251170472742494520446318574708118498302615968700169090651076330753423190399076669608789606945131793310397960779227414269746996360535389808331767117811699818102641634574147243369268271790619259986609972816925842149430457624001320418551847660363533269197017655166311896417590964730528465054307155917028280584577243802468995462220364095090815387180098230766973821679843521925775880885897546056812215109233411960959723891500438193537471711083233928051648221516577885665817394254206847811288723478620507619405844996017561046582151316177235868580597241249613592879812884873372438009244622114790020241457156935478445288036117385171681669301276581473353275844827759229462046385818745129292842422308170060792148389900730257367541103856785475939206915920415399945918237242748420220452889910581992042474377716255937140822438307967624238785302992526398467223706399912221337934643808228553794150885239840467276657049751680945673913352670024430249104452509169815828761729421515241041607116832180587318843198953118014917188617957534978017553317424231538810355117870846109413081929367600914838266990502360651667239656220480127963858168139427593902150497195466180585588465842323053967332216694664826206884002888788019825643311523241679575569668816675991456420197076461336020963471897220562698467403724943152832711053685115996524980809488345085528713914914317248742789902338103247893839261588077197466225444896753889206675014096694922690238180007445258852556677594936850384692252318533404476456211134025661521989688307805589107644083190116766076744946386667091748726437506296568865769106172169010708557324371062495976055296653696541132382538880247424511953172593029321632738915679327715610329348567235772642315276573247580923969698000352716652534773719422570130288476563070792811540869637952241038766353383293365553717271988397749047723299504841135785662756458831561734255455205977312968593922746202658880156457699877520393178012885858417395589416247745115856710318379671684048743648651127415180398753144043366381983785679597400294126123991020560019460510042272350855338343088620937867821146850110829006020435426239206016312444601861459117163431749605077615949393178595668129644010171584339766114637948066177483809359586589159157797357487052653424430517024042672107466399628044136707318503271715986305944395294224124344005079776055257789373603111669081224723032999167665592649496185167678547544045412219306206890358355470674416542399167902702228419365746370096920185513076943592363253266325326880791363876044777528445390801599107746486327033436529791011500983493646790057652144640310108935540100727604457408450345303180567068672990288560155983283262258366066522494137498146612353069582281475807230549023651710501055625683705399263177039180123211149238674996379409290410589972257925017437537849640944933631443408223216694689430692303301452731245230956303906575984314432830507945450367794534110541308297708233031069854462704747448654345679585402215244263749716627196120505370515763501420036197401506670930699511839317450963011424011701350933343990794503948709216133199060983669513089816774460608512123944556054184851995024742006301955962470828123022928747900825659440292787097161413746932896672285495350332725379433037181621193535277560683723407260260026303890653325311731492614912774669482096971819127543456097978895506010742543918957558696025419942414337247906992382770618545835343179966406553324340536349202811335320942115517032334263323706258676387386156082553308382011810097208497965915058195124378510603704193422904652439517007422502622871145446680464857926314896222397755916498921047490949586630002573269988715139845228352845083110486809858848112665052510923289126366444588324875775801597626718004486860692371537891679517421577267263775543958434294992001821829634259641076186377358255849898075561927806745849924690853811974618165352144818122367374737717013718347095352389353079967878373666089759208572706145398864656791014586430818811346394426887804821974442357856170693610485637495394775424077552071392668784817040534400194037055285012955864433334562166477475310961025189100602724491252158689498608339791672493291850235585407938253278626691883336559612814772651731651368747899990900403557927259786867296399375905137234289831284549916140791545732067272552869157170332613939857290450830465106707044219378127733537757291037075807624819153119197138612233808222002362222273086316793467255052744667610104999767910313556316559323471246731083150438717450436578897832016704236156867458711569672887503117665103968847105283436599206972297514689391659494093415133395565837791472658620520799197036089654997793083283727734971142558529503765471355331127097043187200917870701427669585591532839594916939726024573018181699248690638137168768661074923744821184112007723077165777646455090123971229936433216939888625052597954341509214511515933562683551507084136622324791371299840038241063771971627384034998982773080779920259859571885177711431300151317976067809762581377023451714516602267603807350087198447189605996337600376327808848605472904069477493295265228949135368517477953453827937872495955792870423742688337725141836148626532819417767967134643506812622018492088309263432862057259116853011632113784483345822550380750977683435585769177710343405203594602939332045392666198556862506502632673062143333775593153573688139817684686900931746981904884207063882389913630126582001323422182513811413989392781809252133592319642706647577143510864336768094150685134298606934059353544570104506983653544643449993465344605614831256049915437887899395118181612266970431448351393849631663766908679735001786187154566943305585859322640374468065606779007106049505072299769424847951739136932447729335812181962693938448757375042394653697075995178869768489091077709594483246681373358920541190561357371219197697995565740391209290585203735374378481739920536815867077388850912416987615755106583925656893569331232996068876749932832714412195213744261943126918505725659207669709733429451467411851845299252253796774315929748088987540720967866350111365420204687935108521718569791672566882518096274210594833176769202716292951554741218923808830223656945496489548539968365170955824628222421750266141069154647097468417490772385613897897678012792080816598554092799304258765054110536785418560181961449796706494176682710573704766969793248188474646877161461881123944409574987337765097122622340308785304593765842845671227456012446972451456387618464753986280562428036049147372558863524974299469233519505287989723232160140663393650513773699975795954275344681035769909697654688183960378983443601541591596454888778728022261099288477344208002092709337790571357407442923877038094884358183328072342690172336795872889745801554818255092963522925704906589532184513977842990195368179267079092333526104736370422914088050061115745322090917776086320884290201409288222477007502105328481970762113813674937459600339734955132904172645890428103264347779697682783932882092935059670394305273686711874277846294387296334980553063419490229920438089784380810869210076718725288755232581701928486619021398504137792044294390741488885169161904108420467269940806103164130980555122870625845193886135090197446452972893227121458879391262187772597120307547518155471034725231314575095721344196946573587211090977049860367076444163888563986549531967258993741382129551904714905212927066713135535809192454505311153520932502881494153850682208787318899680143369417655952430593767948370281349701220984742496232326267413294630536324316177985757064506980105773264174669904404868332232571624084223385752800215122668691319018513950954654938776767239076522074475702987188291359125031577337662299847507341051171303967228062671771960534409770721350281171660988622562993537633902263276295966149787447364988602960128146761369007182933859202619365339256261611116874888551050940349753777505675273910057403562896243117660437690662019236076048882058198584428013136192903964302927107397242265268731010996879737433781783354908518020070931042627171149225983395678894991783262321053867787394765123218578054196770127414930091089326288184728675754913720050754378180637799607908448273475191855507705863593945662683768453892347371057325814364772288786956170726551452698294199405611993300931663423562670405186839722294865657905397359702534669702466543017338408832608281881335851653579819836456000691095345822249640779463133641159208348340720073971568908846269499641353574619519462666837568059220217989706291106819793339787580841889898817107609250808048190973356168934079817364956413295072890232186437590936194717559786194374770833066613716449357812354898064946864484449376267100500280764800274723381357963606963195562408567055307252011299974625122706573864708341362179267893801681114858449459132594324068750938283675831506091445892408448292887768463257844503376388977732723746165197920807868037289504227155495510021896773806186875212137004701870095254332189492250536753805684286886757642866742582638450449171398336115264159398235976380364753646353159745669162817207201334721210099919196271329241082111331058702990714713054209464863657568561960583133909219862457783500744288230393073725858181522665698079147375707482520289376587008304137491049812375847304685128975855868292470551710117087463209436264250925022210152053408954621689274503079249535486549852835591072897881755525107733923338904488575095340012359797369252612195946389612842116235709893319102936691674688204125455226774825675573213550187748879756530091519776955287660312682958979694776000535824929440441761490118502950865243195080584143360883964983413033025651866653353235989815131807148013407459660060892206918504039732659642917428996077201865777500704923284410242120294785367067164915069666996707319069330721332921696161197418780137727851056983985965791308139864905436943344406479516678272022660547988678850567232194408625983597746714293985764882608404209778637013052191772332376956108440142275581376254898194961356441764891865837193486057747079854757868506386257479053408209404431900162120162130001567094010405366832495794166702790999135226262982380036170248338907564624935158032251282293809437030462078112408941483325863150939317648934010409241131893889493332079024432401969571370863949108338969805407692783701353428881501552604248522091895707074170698986494947254717917285856582247873158765960649908072335523246439841569471112740514971110672795406311988628376423769994971986222131014093734108604597984863863902411960100160490795484783835182102746932645845159690587250546363285519320742189110733500209267700396856071473943247309348206088223523543903887052445005377687049389581969649232816467612835654968367826601021982993287099635464975258549699204801949571294966072060404823627737640906753571806439500361616329857785464416995673447785789209457676834350904947666958768165952104073861016336143295488394264801707454811485569191223523073322218127985982133483205093672118803405452122530461613088721411319508542951488476415081546052115002555710695186841694141610716727257266461406422050262565826518251988360744924745237225022102992542713442335356699079762218503953826042810268789550633740315947700841207698789240966311716803291841335928035137088492350073870641155681643443581047400245869941163690664096971312878599173126363419379734893838412014547286195915987489999639347461581892079869150293960525707361513213837787488377920693017159369853064057851372755430839642722899724398016684397124859475722167481541546848629578469054142907499100515453625223602229934774123090922331505216994514368259122422650367150405413896268748617008492563119047524683224482344639424374039077727816737988113225942736056449259070550602503807085974352610684229469515252499643627361425333304737569224452089885681051343297641576403134140465825485511239511479879197883283292938791670989675480199436272913718567751705690802543261829757847614054599743479347726718800752955224015869395281443647709235314943570811747033254258646379183231908293808356208279442537310445404945033600807613268378270597398799271196695205145508604099061293837383992753294561782445478863659006971702995080092897671326030851219625473669861573223523075593072876414080735055757519778532123414331747224909338679698450282698830389038445815269486036209410664197623235322212134667819113299548510704801232600756670706143043805265796585257110071601982126530283993223372194417110239815287542883030947114180063825081837913134764679657582753441708430949653491364955931771789809530185535863146639326775006198872926195589141487189339644185498097488099686577073398176536490420280523862154041870708023583535200496743133350286378775879597469887306358978642932552667350231680354820015537260269035770020357403456101110240078990805288713101392929438157779116710734416234050132188656583153600277671643367287350100592127971897574223246663566072602175545339519047240404914089493247676886917140535330378483785259490269244116924999241183437431806080005799668757185529548870741030932672345789883326312009119250976961845405032567413276345179110785430968488144003598965995760169493966513694656603902665410077723616828551658019883162230429634665348730827405745871311083059197992787677777283898656218947641483085015443389608685727278113673577696158260690116272346581761888952284501439490193524307003328381116243960578107381967650087670664870593001383483660545078821187560568573370632235940326393396963746290095269620954290294886516691427197686769447668150463184037427246393609180536950293602580050283589970927406291229182908499133000171448731225720408795500290963454050299741892900213561351875329148282078002676110955920560506695822935692219888853162268459562295247147971895770039542867513473312099778157839633555672574695993497910388180052654314407945099963483355933523781121103088523219017752150515942216789868492871506779002313264378170807618735089189202769829498196247755321915155656649910128646433996771508276978519530682588190522926607061575398479697734458309881993531065030690817914424164079330525458960425639017444455073150689098308699402937595315330572221342573608017270607008799966744985246983275463073628460504586033388455290280674598507654590756138997312085378479702652676921198467961531011810189496850148463468134780710790244737094731301572342445224844339182912999926770775025151858922597194291001436251705113901278021813194203269247985110803360428452941106642132785342424551695080115599391386127863085475089339407734952882998393303107811735340910163709194738912120552660233885176291362190032670931703166716625256553997909497498330825025097529807279354935619244576319174590666962339959879402111430155586863169924773880737035225153302123228053929152359449407323917042782375144756720298027464159496303576592844449226301417686335850473329981804037891006174994085637585909137898963707729191155349102744780668362474446483811677930611154244688100459282269464907384795933251339665489843560561233465078293899700025201758141942801992999940639259817327336188336453990041604781716936554682658881854110671947356039735455697448340178497929495184149506317624257235923925290460105610149692476003884297336746817037054949878079504715726769725758269772536314375372021393832862353202402500692494205027241514497025683571407485878071181223157338415469985771713645094540842602118386441669378004898896332519747533615244641883719971746274398319043523996091499965144165812453651221286409603457616934528618126405736110825104542587164293740080938292687351627630032997946482071437838867440098564459052434115800885550667962122244207485809265405750144533421290774747477137623761296474734974975109188070995654320021152627015091721078274503812195715300990011296236535591806850760044895201181505355956803721410969013589857313701212997178117621368467145571366816094762272499885873322023915854869456345016378343054661507595527620717160930909101704850601383696823248391541008203892568426891064902973088151736807204667643957726441985062890459327045705276192893225114913451116860422617406093374276147481394205883299375169455744930086137728854935567785399983729450825086333780557015044568770549233223353241125391173393710427937983579426501493211051873567127614950731853999391468840151180477852792555245570753700246905868909326693230276377175820083802399668710504067966120175154891850894914689494393047260360037104664322165527230247681549430194600807912606028197198000254580235584917512166992722659469423243767925105368643253065192654699926366229871439101988071909401896100530239860630808233428805823093765274460204163620896417318706566188646790764589643216939800428546437922698338574838809998364707406895941864257724568290983545459891041933549060988010765721504892205642546594844675496059573312958963715803267682598801621859312577916203002409557608974109162060614728472211480655292314648970788130633056571924098032923370183016750792276294428671316838046731752907300183427834509767997633049302141854848511017679780226881192963219454572489836549554567404978064592250646304944782651086167920548244045388747353106863934570627355687228467166779228240057537111585616393157964317874725299166839887638949779959742995827769599857204666467150211440623183911937019759119274690827886342777029139511843431243764789698776551505535381289831449160492385625879226749225012514650930703794408846244371623532185730094589453238992830033602153716850164085276295537376807628814384432366230235519406112823867521253920275331661754259875993730997509051866260534007491301741133887759387386147450763864946275645695494806404335949582366579088942026245571462453080076936104951967103296235555754903931699345225806968714518996034185687283606693132557059458756772432570798805123606383001352024172754737243757003925481757000706557507298951147645013270529081280542414075395987204496486677007386451324371887580018117236737299124430933594929537703070399979322787451600251124012478723942495277250969735080663707919792751363897715598519458544712864210635753456014761289097267429220154326201762853403626835991481572844769922142998500844381111112422116015339508833488726244085399964015631395456519296430909930754786004489662133901646754167129184286836140674781232638608192456452088596975651587425014991683481166032922209222228767595045063484324525063971017231754580069234124994096646411589985707166842817593061360560091586742792642169645914898374835594375278328864409203729308900535266875482938929040458892748891214036303492454574856903264948490154389615765079976447816059908873356039049735596188897340277370194077733978297242950615728583523206601424610864883753579263235808103941656428562423861370579083011743119453779977181472664839727277841527735982109675976773911721497617704038116048112990307352743793983116383447190929670677613236091793169051602622521705350379929261684669389779953514329869680218399828391245535739086432018286999381059826692246953300808092431654431284199702577082123341192038481935181180794032861300344429963242428115101725292088283334160702519345396003023678437960982714725164781293093003855936505190495449677325777453055925447154154929326351815413762951846661955564242408035734470748198904715161234940949674428508790935617528057452838038712647251258477743597890305678850903128303900890084656346827155438654201217638541695352450331533744343929498567240523647708529011482748292157002821427735838175216724237421426363723454088625543976556827913506004817787034912467323909944200268280923224316497280565853566430934907100822699304616855498853345836957381554634788220466908015548530176554442571090872592336035109994434102529376045440910261730330794229563184403146721024125486595648490436691494774298560612551316766756536307162602049503680186963960077370743442020820877107538532855994725579046481366723692773281471510637709120009396201388907830774010568709936775654848468710361922506836908084455538988556916864010004135430676951916527337965203746148161572385576376131176570755947780103562686459505311010346709661421085371145318461451735120964305898907745827797752803816242284369403725186811392238251263695108233037395395735128207320178371575662156101049934985287913050015179006786848594527360956044839891947550672893781056682754632051217646847233689447898535938281817345412894703134026080002359695270898486927263416694968876686720807872234190923118791351082158103563002822114132146017093536419004930949306684726757851818668478294417729650609569250230985364378938034456774832021806803369255823052934524094752736544587592603106126746447305877562840408655741235958172250736094089046215916466714706889633298758972693162196737624477458585021037376760790239728423231534762783023484290418810470042093811458711479112993239478949654657317387932282091346423564940461300175562242139051583731740417401512019066421584185123865913478996130156699323250625561157560381350432342859309079423826085565534730754306790481012670473962725656188010960893363832340691096194597309882791720357254694736077358806716266095521746204683237316534560721335536166482340718952094017283355114185722011654764264922702324173470116980128624860705043289167856327413224380380609126441773154722738755531667455500041620980309209007344909929838921288152726702479247136753853309660091988149313425050167788213540104179860591721206407385855753400369720850032526966157289963659461564987296665324469541952983946881071827094457893393478489694409737539059584888827636475312730428433562843660963987689135836029517464863950234420086772947955200915396006820521762840266356741121779172968499939971164930717167639372639580002054976176471330361334105900565578755913840250592823202974504524224624556904732187437490021296279623980689218605456359988122156627954430661246179217635718605317379371659515044457751933973975898355559744101380180040602553222270045542255448079265543302746302712669901011168518626220809507237717178325151666402224117177174521182563187822420273250297750847616601945546350874741217829621802764909808345725154092905438213673686990860538998329091130604149423785408550170855511066140036967391319728390760144796163619349160326104820182215351683220260457640121602304766886434471943782989433328033966309519337379565205212782718321220674940446327006727976857954384365233916665177204752579995418908708822209822177859796143540813502362349965982030462331016557437902226237982754634348940748933263601303412886434788525307315137154547884309968385180954169362663622558397133648350086599864672892125146636052133809027636308307023948454157357059254608114172373023410006338568708904341439777278812988917102746151828587867489702217106947148997670973859114617519806378629935892309990647488490496771254032256034215121096422973238386786157510805244038106630069507195220227704787224938828036380486104991079119627476602677093461468211470078167803531579778940019700620441431357999493594233791064792465992143651132075955445636365090789769026659122771225611994359864445533069278097106536878811960112447503019131003203055054351846430031120208804506749841177867094467479822285960079426375467315006028239262369121725748299371938993134581516706483008905080873835333027686222143367601165866618610617713172342336076959005725234272481151304491824416391577220484869411124516212165503513499046349958676770132947494375987474633820920528986273325231974316739114544865737719512598205937809413975833464299458400719050409794991456762104188049434002167250502706686372981529871468403437072285369464851738587116517475699719223819782971564241620463389338171945656391354718148868730313902828710603390825238290585796747321842097166521608366851711817282187929626329845958384665167326952709363627699856845874173705675555923298671904906133512160151554408825722325755851079048295731806873246099150479750333746552399772677185684569795660595758205531345369294845038486509131744003353240683185549415011727082147542534216424634150423284445090229541394597970738220840502185245233736461168672890455864948317631489373329365909226533512907348450874978591195580321042648572219740698104486240520320075563797893732980242508044899351275487758285789801335208540222749894367820712725618195886299243121977963391242310261434459161953528015676940919575759413229609806469598705137635518257876258471540151136800738394105836050384507474189363580150955604246799601076421111966524663684075300942451009023565707792038156750253080275672273087327547955508688624616199581435757797723069715983992765547587314086867463502234647677578412829111475691896258591593034206417914421191316402296487898184902421093381325749455757062541950494509534456719069707122286847759702797971283956495185108648050358489146592496485860486316118930870146544183976706139302030316264660250416380507042331528502835950163039684611560808095375133168215269251699472840875620973451682133720645267096571382291554601752889526567077824321250207910472411638242695806343750735990938234067669077335497244358528816929354841906417542019917522281666709995131080752901629243972264728471443032975600611777020468242180528003349847544271674547154115819615751850545373957650405019053813779207591116967194813810575589578421292034799096054254384089277106516506792977814370035684704664295684240492159284351165988026634551652353003675253544069653418433243889639560142054710884627825625563966379590354772990761409130306085466745195687613064537963655673396144854105330456269202520629805920611532927043565442443445381454658069909721167666753167216388278491767954787946509382115582385152971084838995667302748371695883988134286195968161662642366955951123273375168134532006929590325651342503371176131417166253317336862145000472520140024697017980042502009893467537218641144363578892013583131461535022120621990395241497922149092471924057876139636359466310221799008283679603192444232084824163314673908359701502858132696946493615701354351968168294639501280534275670765195269334557795510197041879638653540156564934289204330430850312389227625320022852672569984638514796112632274479092978851878902079546664737620748992850321126067266115296407171725168854700473984749310685247222522321460324281697201760679181002879219850383623908212032347069377421947169317515889492436317738223292661305151282131119631627919169352794552652505294318593094995347208284734738599380896198397793116065037917594176799445142371314478823014201159118163167987623385695944060565591918027292646012012657939938932774653701693057989707827528360536246229971910310464781758351583989687726273177338572787916509263839076994708865633351265185255551510232440596243924442944288212713393115752696493481240186117324367738285332586138285202238486932528440522141288687048877594249160711571813875920087695909995101051334092478854243499300314856503887123838004723785784003765268583775387419061433331560809550113189455028170507420933675977172781823338226079636561420667734326700632457828373228093160416024987877608835475773278806922473627871715314485898480522964453645322851554225230699857716015248416005832838835248298981831349604025741617000901435432254759715726772630000460844207714171556366304822117665574491723216818570635276054351351001294412745374811199057261774171525324978657991804178564833756273237382095175577459145747792497084275150027291502746892344070869847022907583785589392954500892182744349923148003103016255704385442517876335535606715142507285240606239930497363898393519442840723512264048321857478966153015736534218667821550165429009053894979802039027379113442313812377901656585570428594721023272866448801975331762783816283863311430382882275178902561828596754009418819772384906598303860774426741797268675349852006476103686309230150384466724297566986221108520831143380823003890360661242215282798613479819124014325908815538920403391579459123759075157702215196644562087994816898175716632226616163756628002635410492065507426486598075692331030819318895989206595348891731249315518985971390826958498028813551217987705073926202981198911081845149927368011174645390797400603765377189420728755117795664789535032867982153376001873460320566470677900290990845944176828534936965622768604911440446803167543037916581275466463126582687342304400358526557755318411455016680898169361054332293198757930485065809921559368242256425168766439429548629861314099118716106255078144628940301749518927674598627779594944756993514655280208848875617839490671350073588676430144411921650322627268513210527895968328426470261638434459934935192790176273488880505255780626130330010954156703693564869887933691938511600831935502763388840855321645420904216972266707586721185033117025713338014749144780703843262961457150378446934911488690220379536914282707976907987573595564212319654293352632851787398261492733778698721984882340812905658161468573274683028846843151029881185723106816011072704900524015663065042908945097741390772719386785678721193501982069715062323672867457389207206477199305612143497218759031132538275493297921309514489470575624141232639244128067238676775113068627098799967971746055316252744601491829900802487470923331958168062733129044831399075330916800324040267817341137785067751853987626502500714519444049830494160926465833530769072380418698477953383843402401775052756588755662524219950327694703843196568986392624400039606610261183689118238642511042771009918155394962077830928444956075141242491204154294263755862166286378400307752707195892088651044230791636895510753049757717553832048107440826394931218349473528200825445071647125348485589561617539313944020264870489528228188367834165724380226258700520827312836018523268691488925377343263100029172977760695085284363027300959069930438045794613484912411828700119201200072348180984253036944493251333232168351914432101912372616017295946358616614728452093829300625539702790512136159208966987039296772405080769233671336867222513164342023499931012832376119055339682278585823625070534796122084553702398297787839299450796017449198952363659985798825103680416503642961017463670001797299476815353002330568671671551753299871051968674557845003397532164341924074052239773820352179108656299723742866914493728744429411660384193574621719274075887518024477518163171774507514070131248637884847576306042872199587645399928968128535302793180295810086545351733032872225581230761468435088909076087705622235979987859036532112102798852754730797194292439304249492046069278939962370565909187158467932040661041285618208773391293176776542609016985665103694586357779495024701252351724192030805321073996514992037641241576580555242909411389464317336770058765128028497087258667079216809324884840594200829618708104040850492189917644578076936410030596798609757907599487194564541247230380086486843656987322942124042197804981425484119767910246707279165738243510134940152767784181449785589900846573803465905171193080458915575288086904557667426235413727606230163066347683020829666248447068572393620650879214205359498484140682741992104057497487559998592243695586844741729493833499065059020666906230100677875548626462214577188782639882722896053932876362697245248651570964872021495290428525152733486491010407346998123627613320542989573377649185236479847530891133451200137396399250561625766737007169807385748805211464336361571706035617618933322610263993916400869411081002386322355859158000733048476676650208917581637299315703330117867786947198381957442551235992587451816422360271077023772687515900645579609153525665840223987022185697943246178281061109908227937642802467569735250260989464156928430465046621797860186604213613926145002052555833100748575590046077061345221792243601225978294628375591035829966138281054044397620473098603139449523054117533202331811846744641611468257789183506530659748125117669885445897895592237064426788078494302062277017858920116634953925911023812377350219822616039474115821901104686888232911657084324049356048414960837587719825146570233627970112332285464864458543813113870508334637075136997743204347693281391337278974939447382214671693944867841303693925387615551605700781031991115111865904738755916748327354582530251412017146798281863989650596843779187058147487228512360555800629325511947602491766762058668064145020615063730314169750135841332112288242763854489985194963940946750675786838923649334047025470725161334417731427144270732284521294462760749047073989583664112864942936195014454120549773135551464865275277399496729038890413514876041687056398511778105469540216278644657439241086148185634544374306183848168601293327228622053266975624603736192766598497034299974165080588837592748355525539502623780735416161866705911891097185083973203048223578246856414298438056993225469680434867585478516003085438444897761712817274774522571435008376297300236826648296734976752729065398706977042508707763430476332326130406374300152157204194085396161870234115941523335792704392968888181559207531806900230947860567118943838960342687546348314439852693952146255931303899384239824888357480156186626984003000630362315123922537025657659658617985117838665079192517035285694097271487989879450320672508008462977791127745606830406764676964077966739357869519560616980244553557790466670675092454597392781413055796835428355593633048445124744147277750942504837418214713533869704701756999701870932134913724062137632468567084918484073885049100935138243101399201903739777778772190652257620388181888531656145839492814639355140237656354605161486290939175472232088828421002931854004563813157699866328233111842782268966339550814642027529814121519151177233791388534135620541843309234214785752083491812600055664554652104595891939350656400982856886250775524681052438662853423782099561335145734489727563824955887037032738614678092035088079943410796042903677086572663631130522494611774418923823864726777057800574764480874257495948475272566473354971952187851340664164666065795738390337804804094854138416039913299562155603015908499855854584901453165455593395697091722303438173324265234365478339480926896480509241923957433759302736405457059661469926027387799109439326369274207175638888069333461077522252681802747928628892816864889624990631662395326312850703904705553201638852156164948290874257804408871660425414833474650921323232989893618318284208838207323859008796465608951130591982005345242497977785035344781179302763279455899242434146868726670733084031322370502230938696090003997459278681121398266238996495722144201963057204710037449443226721094534586230753975938162224664910220819805062655399919074994498062852970232118500301546026403036064475326184976734971103707352995740055158962635571961134298440365442531877827612090926010657454160568016882951441583306521018370747696719580354537407623667894743835023387938153320438759830652926204802678428351251527507036542226075562997779811365500403919473027025912945593820382083272915418755107863498334797170181845915988394636112143042196130411472764395792441383188124338100742457452872777950819723296624028096718282088685828204174806190167419157353518623968470454116185161418721712812675904612507376533039217218526682127876072386164078527162351408016391252007798440787296819116731201022473398642384480156926053549722720713165850954134845231874239296107026607830681967111327146001209559266585486190964791366031125676309057161203281776135346751310101255949493383275468868143653621229930287358954594676470290783288373124763745946655549036511677857743159246965670819598496552171119315455790887075778545947119290338175465319677592658753796821147470052466527691513892937642703056414331118870233481085439295014907396977980709661757411625799580229491625889798628287545893239519296322884964100712569527997470330013469835729940209750330224900486763164835395025745230219344700870856391480026754406692698257843515738935034052019084673986567865562743859298100710797022436113726709171857158981225149103310966844888495976642110664606153299760812524340021835433046219957172577071260626743042909715210169460276332031402801076001357214370031706226482535376077305462073026317362688396928105033791193857268054827176655908333391270078036917852704980501891178610840391228383909180558535476507686862230756543351584472447717006972743660715380157427876320272223818587772132343215866915296459793245732267865871182605666711354452176437699761812735459241070702895317090663741786405033391887707886513287094348185601975668090032811472327645741914130016624769260052764798912785809612024198990649636077293845664857802175425742826300850210270806019631548301822829322006206805269034644099332066102119021144489820588505777842070490033301454741409547063792085335403033728479141503295190513187330807609960183015897036392287627732025415596767429769352246785728783414579304507677852521489492191405026154905068551561761990955222847820984553966484744335102244658515015517393414588217712083963365536720555457429178463546595626658088206106893815346610942560504471984883176549358957355470486069722105622268380243747437495009145020755624336626406862656910142509081238953741950036699873097560889328645649654239321547965585306862088601469818912810594424038545951250061109005424256221247450003805805341004024614295688044768545908942372247796757818368495749837019185673526807334769670407759158108064536104761854779153139816097817254047386298406956945835037071119492857055525994690629999004275992014894715544729078174130662822984154923880576568489475713259323798361747232491653285812235194829824981206928681920199171319353095282173226453240898595683573372550035640143059871349746199097261271466914320392016980755294660767210371246557137087059795863926172029272790495748959279671009659124265999128738913008825953674101754623368051283178183008147558383088989570293173088851731681616904091656330142877771908469389769727073102655742391577122910559857631027915765673007948831755429935084505829089381406291843770279091279942608918383947810094286486489691555568564612539761719779002472170660227055621730853683293751465971669701067337219494198743273060421760853246150690164499050074864363731848911214967299152315414084445202789173081868896189001531663212546989924236742720197738421010468352388712087583672319145243882579792707305793697490942061658491418204626148325879957652347588828585973218450579808036192932150842741128447761035046828275835246071903360579644806432090667888418621930634644206173459662688489264032445822433400502878654796590024874297109120532823720213951879621304191820645322446788233322557331141486056137524687501663501746355273298969480823929386658433175116078382176072070159994660038116392215346672978602912591910320758413203880894598345504317910188959020557109091604526943383653181372012257371814701427804642264328860078933934013525316294140784794464877990705200953919556439052744792509646149442306770603236534024354165588293884673553182225803056581123244648563918659933896645536177966095711690315600836144165146623080674730589660703138236498551945343624705930379425138472057532551779278341630457251746763180043040349899742053312946058581230598961116024239874701272759845988604061258446443536312473501788592272999275306089358928754418062791596106227591208433254126098053979101144663434367408814749755159732632467690483381096987308306522944225393212668341962247644664776145743451239513644766538307503809567555931584220583042257126456722105535034457485863100078841733723737319031999999639404862950591696714362300387866874867386972669424156157880809815025082360581630946882588285686537860310099002443416643720449359405278625876677417166739371502083992332681150856013647476631892185189220853720583645691786095242061611051017381713011543400196883346186303672596322188155286287305123269824898532257928883802655360749965856482064110383275452411345471887230805547501121639375383518913321934100879595157148154873752332048799442337507489022773520319425256029671174693318317395653798149697669181907458652223590838959167545960407585371207374476625449949469475101869211018263290923918647138744536958721589947126427176399063801454735324687229732036153126376400788877217683219966340589061277891881745097764695591993614067539948246821213432527872501409294710903260337117714788091352265237400548315205735033420778194922246288110923791572960246844594520281975000881114865658066566954190307442641508948573401488564447257070737368997115120031215539768130892300671702945384452230043948670463498494787926925152086590462026767156864549191623533169551584069831018213041899169691111995834250908986865075049032166486789209286212702681286387567301617154064768186348160986464103423691020646496873494793414836454821362364641356298288785939344682114784174226783988193326750473131468059780475774680092625238842890861376857453897753913381112102449258990066854969846130767741174674277387740544602903998177788293886626132730233447535471456181865921667719423789439435770321816619013835150552807901225859589649753477375107822495356530673186590832933665314380970672190908248151881267551109822024931528697043254374292594672472037088097169887338986819887435100880745231069544350841803413960363113686687726192985449318869891792515901063141963027168701644293001564277593683223772390098957258695091408432638551140833862559873460441344793260415094259456909363957622716444811811792664091965321267194571623752658314844786129906886372931609928364177480998806511862802969663921897988358909957789554201809217127852161296410618567726034321746367804322437415442754320108442061306884927054930992739344812606759280112609689812793485414003780934039408280543993710086507567449607490212542284700776440894612007676540794697313628162839385291045077154452883894212150029145859541487937449646260780581583871461531184213026238193258152862769187434687857191101282810356016057264944843146695149743175137919265067154578892948966491493894462040463882311622959660904589044404412433291969588776471769553506107270066758294174997916488089605724456012474237692060277442936232382234445371549056567309552663380590288185323773816804385560044831560986394285863980829845306586588768857927929753293935935946055709441671990286092745852723141587930620067448611407492859709569778904364349694164738795831571868127375203438532537302306199159598648571219684992051847458190158876132226248230971436415330178520688298573455749488523354062540128546529084741090286117334798362091845205772570989768993761829374223809186658907297265890956382170774267349840980023040574917988717572766212793679895296302650382867896987681635287215479497711560771463413265550075890083252532027426719196281703108703626245643978484479507900919564568919963340118533244432142078635816974291810910824674055885617127321764860585694835125045245893407987115377341108932439499283763706883322579054558726591424578431285031727362315506321973627763812840879696630945468620693707702071148967179666960894828622244346244586684872379696058060153205628890022991935970877214984710976852376583153322275451321424833047962307062948777736080371238124085877783135624202359419262469967990452312532132011703862405091608092193522170865240790175212172237121468938080158858778317141898443495118609629188895202645023149215157530513865749288882278075278160905954196328029760648902128434811645610691357702317940329151803822395112883053031714668243092702392490684535410886613212167744022138257583260954676239449001888018867924262032948839695665566904395201580314157382407843543384869634732563547955720657369666328712864782207147012481866255730466291461747398337095585182238212838235280953067202704980601730352382521405623826952880366417343808990488681140526886072515292992526009701683487672561431039794311068024162039242835416877913200401660771319660345183172569161885303838241576828480918322696139761408802140294501286279744644364356309378759560860609962007605509604591734317839165756838070003243260083244948196701719615837461114818526591307130375361140964239178287826462766237452797027063092502427099898727163756750006036321024092057914186504081473005281523564169980654235482414801138057880316463126412254348385287109878260912564074654775113963498252719979527959390848267720265987382237422274848685004777299932100238560207183662687234421323125409360935242066313100485580824810847529918389988145638726555234501098706382262943454603805822921380767862410290489983918715208157569539928544849680097697259405636644266812903792707221161017847227563706545473417840208331575228050747341490369438690656755243432862085909099154602354386340734605721137191702379179733327832370473446500441360512901214502419431238198359854671336766903303972368118258029217325918277552186215807679219960977770249790903049295247419492102433012896409126310310405253193950770688439871326590454374180842216307943846233890176741804687874417349087824306102182165365569797188793030948081476047173344171874136472690802617967158502272544905447148605229267949554164656141010008330790179116504863111956615034334631728244234085062713619972978396865848427914634514324946789231632360448626916184818566148676586835643333434037352158370554403686592342353638277819734402914586464828512375264380894379305079095801926215796851462864766132769645908754795855542742083120716074544689429020490077435318798258767491361527807567333944726881832398051862057340817809945956206370336497637581343596568846345293859765405754335653400724951482174164231044958516112173837654020655433508957884187876718204524607069281840333554055751138912626281626290613077182683155987287828775077635034087238246637570134825974956091256493408694853073836509004798698657594452685658304840250921664875901455030183353144693718923093326868353945156175632842895402952840990385895148243568935196961278531840246863647689591033286657396219759630496027701477337323093976227601740585344719332543408470718541359639838782302808766327287428118635587706638736861557460756996727774470201722890004123058656023298581669892226308033333739391577170083930570141011882644199341749119701233430690428758862848026438789562486866623574432578593912630654165586562295612291231464289495861164374351876786534773340179057744217575166469159695645783423932039926241763961367552137316990370239515747493689470130518052261639134459311540327307325712744844198357419786354576106816673701869147840941773779336750430572539349588332256235768546288132319431073173848099552087049558503508327194022120220711339667813559208620961162040561686899073484957573452215336166744767385607900644857215355668649595136557190662720059111741488455887083945893509113526855404320267140463448021974679630142914537950336313421745007789283970627007564269962115494454098023147664496798025436792124174517794476755765743596580008330980230542536611534982601966681537478173594101623862523937062101192822914662721400173174307659204800668271575326303553598756017455250336457077289052233478520064114943632284011424657261362448790343782606358981440147329188350072065154554547160878216143430371168416455306474020126152455522698340795042401802611443076307531559219561835022334465971585030751960596278963198662483221817271002094359397905884377860241282552044651010405044978208116810443510638255660212563738843234662342935953173823454126093465337223172213979327135736678301285945839103949771288609113173180622564932466122781088206876579516066452326424285190856343600305346271167858145840807473192278911501958452288979505868483221139270069915916537611209976152076528424654887448567180690322381915190939710141198724760675237362333327451707346172089066400115099894506019781511104349431752213677983050896884577213567655672604056622844550939500444766625232862607623283534458964012020597868837032680692637621274090322946942900631383934073033755580817385829880620245185877498856889612429707092046190405624452247639073681366021678305621262973331613174035234454046410279002950808548938760805494260634611784039847279663163808546308996950543258972041702832445207501707456488326986683408486381250878377495060929257040441735500768815983253265753352603632346526565554458268522144358871777528290792112733148102338978707918271367876736732346170688549048810116788359846368688101642649598964990778569543352756087985879495978225893678007786341700757387259202520941633885082112735842708195115337451547839695200352950455364166856216918025647047814466224158907788745642202356386801321328597976247232704083646236982792569524352047636350001995961837661835245324268234695789191944041538834091054069548050744522876259028504679893173793882246463351152549086411230606781538006597999216605204788880209675966384043293423122100976969432110207595264814855265776948954211708945124461937128579551876871677600388626317578156880529100261590189172626486335504929924392952742211565977264172839897576311116248025444736378735607992414950173826474169798377553830224677328801535715405040329694184866345206535538192543840423008836995649127642700442870666966949121005543602370948829649434426597638694936536487471259737928557528597863186457885812218773058648389030780680110374962771081181405410959455927237122167526718495126218855617191234307516631541774898887552296689779488835022274348286905541380658183465232841137158664785289504025674086207156096446438743695370030882358086792462483606831615524363329115973133502821593458128399038124089500902044851440035631251995119154107315472114019171334712379205255124308918578365538667301765587514430672599111949043058898549912400268032481790751512861301162112983114307741903514160754709972249581929659194494633722937058317548122273906142208156320457947037193724069320130382920334255250494344729266115897557293650437434369209869419890407061079612459973273126380091976804502007599060451162888186204984711180641073060067792296110909399685307122104695855450149412281779289363163040374138224437154830140069055515216413223870931685850141308892047317897981591998019755007130893986391646999521337457345126051535903712788663758091362952110046054278784799416248655586084008469856002762221543774859431734822110664851724809068817334322385574661445376047217704990390912440108919236623930182950284928634381824180056896443422391084372533672861068032762356118782909036637810301201449715716358861110179140233619130275382578973334441939978314058362665461774475590881543027539265023727065400004403380181409566709599112426005106705717069036319373934023189654762302732203052788508842997606441283543417353658725774438669421188104316156039432741248392190026852108630722595994119532143067674294931736806472785791868600351101355457495646635695730326058615683675264175497360560431198929987801133193118981368533532269151414394194818432314939971537549027818803225414621421411422040507469964971003387477104310818980346065832529836263884843033980892805272075842504123117410214981653963905225324983689087906935755096584256556644924004736361530602683464381921774067825016669179042380242090531845819789285689414641309446744668416879214907416718880797248256914490108105301578744357831182885227249730851415013456752469409950171033948433176202157106579396463454675270322878636260189198229587116004186202174182744543631245966943657546546689444517986768232229111128261633018589091399137466658492454759664527614290838570169154407134581599237076811901935998660086478975836104344376585407803770108556473732668105887619474588348946122847385325875835499415721950828522537539551495931123410952686180307967988187052611521101309915818049686895868146291198434550059148256420051214846830860570086388596642099643766734575058005049900804066177492012748552616796433671230345461155533031956960433779639866747072955235706924430561410541171754772764009612856950523511123015057111256200932108545974250786528755989782054641846292542263656706838521878787020837204656575112268298733050901046091573946877205298139367161749490240282197750582952974762145927964933572323925329875501280636733394414540468918944414702263150759663037939051907479961917050175514833882438586515818186449057879514383349476427624420424194713584109003420372109858507377034446869030567830374033049615019045208536550568967204562186556827443908546691137052006715704682409757937905891141804631112205574230381559249134181418804000394466146123809323962068957475128630888356294717959816664948107991799355195713587615865691180167445126538905176441805041171818966542381985629451208304085925866658803538070989848002457459688851010724936708181999374643063721227519680973410158914642621747538410992249130499194029051367681225411781452069908534001301292773115940082755566018907347865856178219333646000816630000202268864432316516045379734964061369253423133384245299736574944473678192971448920936740243873668349342108492614181510060624635205035869968257904222596716010770159078429813341258723505417452863228153703486801251153133180933681735293738459250436504426507817239429194054169817164430960376956978812460048674668791093070192708751145781331348703567415324695903601550749504507864672449300575056161699426273281253185694751042485826841643013222904424894319869013430859965575752434465262841033760381691275057947388792108903946812143801800665318068450142490771781929698503278587532212289176049347854022955134537046557686943344474843106663669365101906170055268290887171941485587402133134315657531296266827319854195141586960659380971309745186598924013680050866944373193865496652686479444596793368462663959001121882812227701703351043708560083058664939319625459169306203112277742631823988999910688580182939772080723200022265453134051573146141799822584278680432518232799946481109079394123002987419759173637531619789838945542462140426622688033686713525811745030572769553422271853950526926269127072318148507254955422713485505923692109709612031292335644032492293119820000922428760366804378208919172139233090676969668277683366753612152153468540857520455151411142718523328495715606528679896023370112956286048879311709585047409670911811143712254937153718628075716901104306984939524908486046952054699006028308214489911914350088370308213959523325957249731317100486513873676067983947290237929492498002900737068571970568765849149069370576272146486193172842118699767866307202978355005128150836594473219378926592855465411612743828711032869767807298227896824553443438688658329584351456836380386289988949429267550859629645305835028915913763308719283105434368054616625477436136584162334904589788632507502613881605914167110523984021933328279577838685841470158028730019943704993400449217704518332118932282232619423391017124806511022290169968686756059503117096067412688423656741698942670251437319108299196809868390443795504123114169265795129659347838543220031653342566720002337748325309850315274076615783908037677738100173906172450253832656105272591553259072465932634536024971371315451473496027196491950368860112319834439981808822797726492825384339365393556556051305326878545466440518441320389086761152899010397693363141105507090110173134349395079948323251168317748166144136178478011306403423691340932886109810632475440305591657707747404859411929498504022934194624758265202603133673310865096399853081742843954257249258565721578138640091275244978868361289295201067804650227744016973791168924983608560979469951552498356123098199686060505573632641950748202656381021619829273978065019351969030771599108115608562504181117288417151718572267429556297642708672721210112924639237483704285778051531305042773032423038451964560844278007623426125830935591973166017534044909052589964065872657228645963583391863359132665276579886133171980810349049758269385658359820953375451820324784835300605695832223173655829736543309129287146093553484236016169580932334400594457729325516404050006691281346476733103123206999935817869965627389630073374100305863397298744141190523926097801606651534185912223070893854604730875962493564012807569649632151979288704845139875399230357937418264535773376635706944317991190151057626126622740116093364629447503387788174486159243057069206142656855327908748531349744692334585246600890732449286420439354871000447124366979362018927065828752494626255011441665163690837569131513055164230109802976764877598205360919952015847566914297886456595490272725454158785552765177541501698276516602295786241125456187542581791130426387275837141322964358150917714761440569904218001663063192287025302022399544266208278249690522685410951548686841807893501310701668748406963565979358831632845543411518188018928907524018915769835054085678925617823332353777964205813579911308040203757174979520185166658209066469335085008311820592072204637555983030226978269501798953405515898885105013088648552651388115708900772340688381758079826560078778290983697751005689270344098154638854739233588872850332814920055235100320555582488847971799631553403402855765642868079055822557783351836298147012982010000984138651610835403979815744435507839280128607640110557187295639428475769704612212930924613530667588712447500317685370746981992690253321983265728486329091820181834085106582997716868126172845632601974565903512625663473165488897738850748822791003362215631209001500777164919122919736578419100488405419785049817783782142072068359353474908723022359415338363055559727840733296363036036747001731822210807947331416620019616944552525834706604303622720783495406409449521967081332298434868524060246589645731809216778006337586354530505701523091600890459908439331409185577538173627078472305395009839166038760414529829155769733097913250913660612327186852671119170437386233153676263712799886795599369054672049979571787747004030540551383218609062551602810768178333291164853268242997022687648074256346177219470316630148746936430038592562771795626132151852696377036782209806562366723431391191535056629347714423110382586985844241446927076297121720017339221014360857692173804420009099227424504383533823145645205488977934940741830488414051978204435422267893644738773613355343643273953762942489463903805848231376631843175774603269991251535976515081559728278851429412376265907201805991385052345630854388519063181151823982392351665750264712283339959441032555020682528825426902929981195514260025689635052451634284560543586022945141062189396903989208642631008117750667008347743421808038698290423122676226238386453907230050646884345661505659986458587046012877378717318598159075394561548223080539846725465098001267524145972394049736962269577136275114294288264049546078004916277014551047984719250547268068546253781538680815088273655360550841963725547821767886848233390311247902024325120213668247504617107062732996257593219308561469591872540528839149025471700247440213260101444966015007713803697054756782076248838926074337771808288321197201216277967947725286411225995310576401178508463956379003868664135858276519083826884126639271339254844607662268316159547256430627389221422252867515638975710019267747656629461784372993103169726513258363497118619751144919100441672820871596138682644119073556237111339555432990069413009728769551266166574198766191429814091629332079986820534556426076200242404006387113233852942343957604037886916622305440064955527401579510258138326640675484610422715569991759131811499608785661605266153781574822691166468551383002692069012594345193443439226339278583088999325240373997036977222408628916598767922661330098156025569237516679258453446922732744328842945980896773303446077634222993713873949482991335322955831287306736888542313461203792175213015739494313424156242422651656170478488728695583501404419886829690802135512721003316839135902583976578713267801207550259653431246307366670180540053573227814692507413661295575071995956423762386830825130857864070701185832021247582973161874202087227532860638791913163428158770017456281664630660580724553945551589123817084351225390119895923441904947081555300040837142801307564565007810669975080100880181561577958393640980919668092416518441687562659291639696198929797723843382072316758884885192066762006972722154490350420415444504484499159252915684209534926764528818088385302285514769267950975988437912092829152578523772954715769692784220599392602461181227824698925953204551755388511622938717528829584557574463924432421253212992452268700717429606684010059821700675976713792676509602925722854502098470090851678119271027039222037840594081446128919038066195141449947498833268492776501734008835412343517172806075016393223355721221585689440526242235050548260790425876591794492292201459279359761496252023210629125718950105279598495802468791156938931615174450662129423674817935737583153921515349341668477334064378619183909230777812313958945004509016709908083162299907238007008014805920459269449930706387442512009840649643341676253446091752576892411535692050693106896784108992302776098469608727349357071539479493131506555150649633591366310418655983567156363221226517971200548707417961770252843740610831174441695402860040542476980905746579906757714166502296694160656944038271383804890504354653156217112343602611660703439589553709694494726197415307027093820751286457072329825498210220844437454270171625380696970913245572218874620495139959993589455969571532374975508471364467370858681034564477902755718916991589532109827051687396599723028171258948970997295982601887708565080066459843611939627587226361462394081173385174588057400366027487048511042869399794820742422103763081034419698562325534511115454955688887719557456743671159536514640630428105793477469445526271258293370082478932894302221632718849941593686466718888499964805531336096686954304544565153444359333591932399046748710897324819543704584828019406291385115435730962825243404512744892268610572123724814588002667338076888259439162004352457919469603659954724680402641649272226425486786623157650175286529514775539836555612071635907869795577653646640100513167485673153684882301856316814681446467571912628521357418454534813133094106832421275455505417672117991877514127789232150805990885009989789842408275049200476348463150692722954885648547089557231044055138110562225484424068485155091827805851147996677099730123919265713029052192952020216818479226262117189447859709023798734626023881997887198240963225286112061254894730465214501454925850324171767766167228207650970337521050231820201553780307098424883450570133988094209429907673430906572580951868374265010827258104024965753616711278197435439542319925693367897529349467528247916333088977620878606625364042757518070045222742433734279875973163899186574664145921299548233580283675188368902798776163544378763756177856127350112980998314442769990555709503912271280260973589658023458537783367355988090165206412112400584625711513655466282117743913130422225082957722397954229514353731680537439669341872355635513754806525970646495931793742983246913110697969680763668070513327657275188569576827728944782607511718841710463868269514384398004186765253439854957327545122405769419687361107191435124992413559963955508133774083619868946200825000878965083325724685963586400791143803557006888165504521586152152056210780527358242718813351434008515550432367697345138978372621160631791313758093161068762830387054613307774413284600058792258429691638836279889334714944870534846238047599367712237509692281734969477755167594396707121935452227946257958458380129309141000931313915813526953260767499782532527722018009918205031141177627117329365868381283641347540013885858073844590627450406904746661606881761478843646769491143063735903339757871196516591743777199537983967021579244109592080573709708872251339510425596681481335942288143176943744619797122145152113046049064258537173862843463503259592415585633367704521569078608234163786289793034098804494374353409479539745979099198268747633084226089320261618536213188189387763329476842107482227454967219737824020880830421856424111473317461626875567725865935130486664688809428837890019252758962654780167685889617382597097556344190850025058135608966484273150678495159479286497056288802127403383593972337840395727099057814151260443331920186386528361821223400546293362357261512615750759712178742933203924243045545702692433404828783470434282980424966236324909397940991803515586595533111198567592396597932876192430648420030814912741782992330535470076428699471417258546250022908917718030743987365737699453771478384393735828671183276056052446159683998338267998082411828345050866036214590303801984887778410541610762863160998805814356589962826184173067135831700199788321941235350922123894761155343846124732666072929324043434650571411123096803857796042937686914253987646181612161557847684606882037097097187354703549846130207721116504340727144425949339380638760411721396870874211639361134070373466603115362728349681223544869133340971364667986047039150316406979357846638342603685794553203565435742070237394117976114147616693826911539316400082595695562862148821080073537079332544845870944985272300537581632108926431283765730058046426444800598341530826894969172930255485312210378021656529639818282316398405746637964199672929767867905891540019946146314239201195069944645729394469626194653379552000854141520134566279545972229284279101844457363403337267421179998567641554427505802828067774816896169091020177625246251773600268031148581559073103818692578313127554702243473900492366769507203145399828363196753796243070629899273329359019510235339266894177314064331579134398649063346095200699147512363302485134719526455335651704966429573306766588572175398413033393373561616206914617959423553693402880402154561309778260772600739321761380432695712087136605727472105604652891492024833336127120183053445605649368162131114413790610847291634351336426888481020616118055378670353911976672081059995032753172631432870746406385604672124067261389634007502910854743388475744852247239777925186934892943973703722348101781256914408108203363447573730552330620419973752614400956082262552054718955337557715001129538903291899498699693609693812056711417381870505134914048638776873373046476128575814096915224538381733316888698091321132767842361527649570149053132679448282307423087976515286920167051101195662242007211018528891911790286799196749650675370000739612648774740863820443364701822062013454744114789944326116076296487491325859900430714965125325087434498366570228276970535782575813688700116327351368873143204898544251325799785057028630783283972636971380241138593320831695482406976856028000144534262067654243047206626609317912748161020506404968258483023403241051687117979932850624339186111992539233416084106883772711502343688090616426944526447526262643014437698082601550481678203155410855497299205105174970924021041665568290139618838460281652388579424777404716777289066366930621116062028898316647409085376579068258580619079525866113787018945408319723495768237214929920499801269017786247907830662641305854106877128140729898944673359147833236014680973881029737468969920615512128890145437272068667788547768563277107118993261704476236297030699108690394559793017640303209450606735669745837520695271353865867681473738353539607054148835995303590259887961811996897789019660588158626567826913673253039639077358915579886104661647707690052761332942084418780532185928219236758239323047452493827442062988382139081155913343377100596611544393128562444856550461426013599513465697702346775607457808276995546380120109847372875611895858443712092554186116368078096052617647910957158667117569309817932507475693937918515215168186165110967167522905095755593257883512719434754583796704725344426424313253139577215687303483953998826435256099455425035303740650444760953540333584841283654518043035998489465685274751642410741327858868706487150638522912400940460108467878755449460062729845416337667436837038850434645634086159782993366767273780767004635062467403522845534145474684257631441245188355190965454275086548831587492772741103446448218816642592931401769532713901968702421290546014476738503807324333008173602980622128057382537412220331781618530069076874312482921962524531602208189194447122912392044262379275567419277621716542807913139530359432328234124513404125524656384903510682926298081591227468297097516047555854923279105655644443728133186118970393893954322677547885602795767416027506161228150400605184103458001804194768529920388040602893723843890732618879298987179884019842003379882159282688799499830384473409372784964278339340001712409498118379384711401532472982178815767951591148826408338882872994073354500745408644137031116874966649126891459472019714019410279061596297097913345224367633944417219959090980510389860701234315115867422871880986167086822152452448277295938122967779743303208133308255993261566182511832686295173669574666564190240989812325406482510332939562352233328159682670073833222248739441102166398156035638448793487730355939340326800105937722764853570419074700600405294835744281358432847427745377477561839574495116851617583129249260069101503446268869981045532406366126003797537884522243501420649762452957852708219148518793579528809411591462499876363137869259301704539498145040603521041476778211264331803899480207934102125994814317708674725012941973342546223972644452255347792528611297538307368879001449512155664107973226844306679461492915063574519131115489237747103939788964295876844101944093820981170624755840294052797807048040064093621200676858450004698927493784215864624092409364721596427299945677036748311383627966236169473771827879801372350433126455896036151488218923071651201184949180208868585932556145486964114363767864106385697407007489915105295993005050569240121279142010628829815610007812973441943500621864883514736529322841203209947440316078756778860904115644821258589844361776878824162940152373518636767167381905838939730839993554509597129689242055339770690808494896812614035039227191169337845827894078201310828276105034173990820217225416308016231857017844359332157561494670465889848158977525800919738125335486377921939783590045348832788526559193502978001242982085456618362477527642396460732699044038081760059302287031218415990801826324124566247147152672849297274463627846714813937083880763995631012917495372693885042320626798230397474700822212084715711930853568928772106542044926787975915106610366648950240989564232084241729085985856571295141509704628760073425074011470312334299891786918254876860228696180384354706248374036374276104255173724829864779771352288071656810462136325191723036507839092565727767408206345081528602713036956364622782606132931008520940724940208283945574878607081546313052664316899683907987439181158477447491402003530554067254803722396133759334628122558384905236947768632834072365840988841142890602444759576187379675590341552318523013864263059544297117591446904099920110805438155165048811260646004835087944103426050903818439708714200778874108312875992863017433045374516458236067547862980405210016294656544027634942387135862626790442683678856525004390859613963357584465239759089542685711794555434834239190141664815859284452359906448034146781473064997040432389768784117509667212227431293250712088405283229588065273671439643101992606786313243363295482575839975227228316906314213055483130355101227102243128934658860301558041689864622235704721681656402138756978357942844123052053018860075947957294596742382458942564819743231814871875944025729471803322105666351459045423965537897491949194209134789610234022531396572750558581038388847583179063106931347927241469844172150521503440215453137736443674444802451611440077281844625803512595710016390642838822272085622680531120734420516257389637214918660516119098609151761681765995337390302563193763569109796005700121049899892055512480861944816896657222822881880093110354537911752904498436581457904159665808107397085449951792988990368315587820658053405532498786781094216052374248774698869640805034225559290207360746284854795438089058100347561893501945603715100378617457790429832803829161890076048506393783313404987982156105865042095353721975140088009687857548307247608581599307373289839524430703854003351367661599643252919912328767328248539063946037282835467349250085931271409799351028614112066212425957826402691020124854513803233016530319007213138631180150651739284081109676520240506280030664608471577001330525128324492702120428113262106974835206372787626839404712427939109141531276905867052895514828658529518748003863864010918339260511975590416874793712331469276401993744965195185516158870002425196391950697500161963296667139162151212063451645586944582278406431934532800005017762918203308659052027819561575346742495073058024315156344186462744414034030023591265804976279585396739760172819939253322809424572194715627183295652586280909750208891813841081919475631766004202071961411979410454973307736703028989328112495669045079906513714478490686542059625816716507089697332543986075958428937437919804113481433218929434721447251804461485488919251337436559715770547118278195028521040718357969986398180306006621969837079548240388733453288006583906464801175983999979505775753975592589682433553993007643259469619529984550850401243546534211200041232745825209725302060711527550878856146440190943737925859149551094839578898259517032274072227473507877206876898864439498318460701468938558826003439883160025123311839068628649212288606946759073879086476838005121894368991617876820283345633753899731680165405057273501213304401579330227867357993742740154435253345294492011759503666570470424962037932211690416869706754139662758078594826287204121092415753213076033527072138238919125140172032032527179188787289955392885985043387590806381928398890766161245696227478790294261516744668519697300883791940756420830214911792525904561123799466725138351850085409047918255331020852351622950419892774436690428218586819114986547327664315934703396179539488353145698590995392979174688044015630109023135694030999617237073335925908655603331526180656910137701403335915627865795126445191191229903010765724319400904725688097829087609741972325783787935110874130015759091314368463267832102192196256306520049433483633520610165896500721389070771607402662251301107393622817421514030896898699833950888696287599338980062058245625288525705058052926518767803778919639751232874277937791658178770066530807935034224622901970425818327429823104744248488890490373326984657917644700314710541983071129790532537859309310605887907058458134626412441323353796849619658406522415982718036307713416079831120790415544099475490616211870844286408183334856033486121249291453449757779589539953603882864708130517275621205776113679583659959362947436548759225449707085795319071049021669529838305088670548716986324566347051084744189819235048770740796909030878926233610754057703532159224154172775397775029899903046121690460710878035717720174135675877126128940953775396462347493399885397247846663071020198232120589594016187231269073964934400304669128842173381434959776792572669930882359191557524454588340856720195395305942049312638576505084237315609127714473874706631828045600984246828147950729596971049659440028132002874699437952740311484764901154586646497644140646667190671988060035463404895154687580167973933301333308479464556632977020332006947809060659140211052362098887338110804484447122438783899957338120293310016562826454074263365920862821814543435919661430085027653221504515567867262507704509123441332829522469270325975620530131154962632127864883215250653936787107269667347565531768019557052415169038049604453073656864585455348735016360689211344240622618101349495978744961397292484446663469107696200582533531467999426641972703951712383152841825551585960497014945964096466976893175080296164788477003575410481498094577775380641953901513395293513202816327147145030724071980524833738534379826452702296605127051021368668983887369020146349167369879210529625468027178802405560288707499368367359508150680400659052158272758474111306898330519748992203370924685981076648462278996256256393100615091271403218466544191354756289850444790237229224114891302308652414971310721343833472923586334463280660053759890499465411991559826725259181102049985600227839016971280063212911031043721121605907004496223639407118808266797249146335866575160318622210209629452642319052562222853445409034154594448818526197031325598313868118900868529696918564352991668718040829637255086192731588184463170210104121185078607797407555421259973689351841793962754243384649732889047963477946340523549310336061026742925368642318103279584845107715561683248351238929256907582791128085676122475318700912777405521229199688525447621356313022886545718067004455617908601616110039430185093495360407810382645689682893368037388941994998147958336810638611181188025424865955058019600494547449499674227672755422156466431442416388577183087511861569386926928977714023776308114094774205119162762968891792673796108700081199523683097216924093696479751224723777213284375212571359754447844837017697444065436520360832304020286172386406812839235829729835346976984339551811023441501913281665841341572745352237108271490789773934417519344680890369682695414636403198426518277382730302250421971335804749021844368450918126141396087858185263917333360865785086776223685060703140566151810124866620490684487851902408903814226386780218352569216075462332302834949887738703120803278336768973597817989872516969967497995809163984063345590181137944581132086542929699419193084128214364014265870040396721407081955063112233672293808737785613614121069647498345834387433242175796807587872520328678709890648340714338793007887416061792132276863456238047002709960331322758045436283053034561471129341795603685900888346432432546738399937720694189481927320421682996414647060850662588313629528527139254328808625352282806749688859693373970614124526628633237942987238934573925899249394510523290133228524921086525987903022998105704569687416366234544564487178533790480922449486101658925979985813431074032405053427823884308714735281462182545419353157942442803139328391538284902427581382845155234052354663839163198698344927105268987230011136780162627019445194687480946173566995720722546207937544975815665942930596483884340580749473704761102258530241294672195345401091529212769802806782433417682371936436566924737636889201700930842682371043954880523773395458972624761609895862938268928535113600023177499912838888489381801919141632349968907172633283075161357802312308150356770121820380018496721225441149243476509505599026328842359865575630024017820597530337996826402747381431147584241543284959116765329920202271456174066313013823700230383528994026761697511757495466767710273745876909737277467685291136023235186564722350541109767159967691910674808689444603125661918578296688785464125314343843674245710930426931822732073629751678282718125726463876883062425938631330597560734416901719305179719128015700684353094051315313741013734485686780491917051543852777669902161759155184962515790980908647224197766010979355226882010517450516263754755134799239197122185781630415215986016295867339704435693669548046801368464991328243355064953957721977156818138430954032788404059665308350466940394882779370299384849793523252933795906447153520502398402311951508249030326412779682446902986000667486898717132451065675407881448250625009775596113807806241885799052660037678664645075277766190558790299470003610937113952490159075197386619455028656746090584407717633615745348620359067090919069252155165139889512850727801586613590201859002767834831489119579146554302275475862255237667938711299395060180962408308596328407509028562247843844851724353757038464528276439481657966593842381428496602440193603831098977198091490896083259904677513146220305670426376430646757485385657024627625945621420320959833908227874377237696492213439769888431207408286797241345553268872030141210448989118680104274325123938709345592238870165536059969548937230536736779923284106642232505315974147580993178005054858495450436374758914601924021428512503059290712775305423872328072541528144661144207512960216605245314495935812769664692609036035231518305980155280235323606246201359481871675454076363783654613399818313587808391552732024444091993091342837091343308338666462207969662035498465559774143167497315516207374933620723749823679926699302531541588918328852092633947391546495741542200879265133903869479556362170254012642477842549282702797897928146084836494781421639928121447751010985607122440072826723416455073302308142445000903049633230460346426207330150902139844515146706615620877534632652803654141196751648070573926128917345468777422602960019390502750788443480177891907948913748185460106594446472618635011818921382281855055968883989901970921451161645325337725165531823868449385280335618302982478482900119252965982766148816037786418998767665030470761737072383837807365132424812991418736132357303743098675899289992851333546987948698384537644935062297882715878469007715995989105110367080640337889816165099049830337386352363571799833293398863425513819058948943327153158001508885802015320596540306744664689180198340419034096355620232637030240184442391007736762595136144406417004803504960144538941549252947034007148358141583181838219366048708279029334695260223303687654581122124640354543163673215730561246077049969320412318542207357740238448574081333268074566669440965633700659638911861665499540644470896969479284419057967536094669374935251287595433708292509055988345195164585042800753909600840419274621108481383435397209957978408626833361913503830234510630156715074468043973061672765924868064155923881771097641008692974112504267272632428054975293661179895171043862997587142937264907544583323420130173633871835757203775893965192015342971306345546426276444252717186887173934613955627798388021496029429761167999297600815937320524423074713665386686704894456210346293521607673779534575370482769622533471914319902992580133381751217837927794713627267766848660132194524570350623827899937217165673672392331341905862005693068671951860955985862914531326495178735043489344617719714174492341190215521224669914245351081199859171505593671676477073109757334489177926603979429033908803812670110369333949822876778678168632870693556842818671605221296867446079307422076027365475057582011405642761762105509611921057232898762495875011682741274156453791974999724454243074293923462231927064681278650792869582458632920114803944597577843664614954931845392065798989260086808940700676409252982596678496058342843717833787247055612485530206753468224018123348922318280371105956072493102310077973312992331920098808096494268597581611179401207621576435959532542139760249835833454601387157286845866460219787222444241809341621391626060574778390432802257561504611027655441965095324843773761522409493255242250788838517572893513592397891137168194146191133149213874344095454760859764939334966478901238722493851041532842004649356590161869408309165083375346468255799406044241927130767877720051094534445571806350789147462222747934803793624885827801845188546331291144377873447900442982653490753887128002088387289014209949574524815778260644076397844637203345724866309140634246709332906033398578675410570160974545398109574627029054984770390356470895100014357148773342211954936749499249911435247308193301540580251016403668303055748800428622053596921123760241382005133679331055735542004721854588993639372086412714142829241005986336514283223979782306132278252118324175014936944892532197738505180995481775818158323875912766260561992213056632157857331020415578810833160858661611381484709680334985190672145302624885214285410305626942006251490944698128125233329970502499412328105400427096579401312554679946061904261130600349656620330745410197592824211805446764829840983581091688951319392284344676231015323872328955236426072577130108972636838989984560224006797262576336828015929721053608625924833760210279277287020843652046049447603901143835472635209503470114293865721122791588043238358910014315235734602358041525921024655541278206814628847342308113803459151283018017094256699204317312084394337074589240193206415985202081534785828246663163069602533119252362297765262466020793765336356655216263361140241158046772279212573930604981883961087180260606219539844923615164576694626716153999700059157633886420152542526492808973784917012269653721674655092004135156594223538229997937459621610479612979188251917568888873467350578919996727720886652979726446179703530881094250336631554378280526139149347187717123812783521665577575187470896309160879547423518513967186741650666563852965020685348197264632623443517034774934557945123772298407427054072820728204869522760097798267175209328026988325157353831157185450950266127974724767139498781497777821637766283943798728259895726342541332854803592076721323530115483893689369401061583117083724545071873757426543954001358572074651178047164090987096925474684383564642862840920217916854975671770701557838285949308157419642660734807980540495630720214592004117487032458812296831088960836290575468612796633059135333627604886879769339212973888408805370932973963743101391942269343850200605307973869117018832116646116358849225383514024451648221038142115572180308346276736219105840062743390338732525401396009079559493847226228837048945161996335512039197730014783306825013554735396903436259739360941428450300563509188399316918435853614794121801423888926539880128283667387105215442868921064117955570880743093878848276959751244979937774135663561950767905534385088653903631169097189839783006301476174520499164955935685576701541856956058219389626619303285166897560707770312188808237542649240398509409582409986465450498292776567097677401028476694991846238189462146310602590696219250322020083197422995902660964394312461137941803173122952032167284002521359519641640882494551620806821774846932082622105373764644416074687382409984233061592733754707898648952602506314276555412211447474717608966142876243501771581011617572629484523414921584143370143518136651115153806402480396100023980644713799256413006783000307785047163101786713317975562339651693941351539693125015591003806197602765142828776146814610478650145927039179718937476379616666612121210003200976020524150293572952283453669565289370997623378125503161114498608657112648753682266288877726868056372636928832547331356815763669848786721171369880493982900724989158699311897136957436128169155983468047152084515150495960634191430218289190367261154611308029836081828861990314817378129569710372233468737301591513147839468269374107260783241379513780842435365672783666660928414569294879266937969251571784255883794844343164021564088522085237081019732358935064168660440861300851812602536302477662122454185571068132950782672698105750002935335851507157712944344489561982889748765336202212303938487718779187749756490379020311424186428079917863514348036170175808403874363308577015026733020101016045011392462436137539790103999439398424522070834255161662363594416161986158244668204149261485443989774903822260654707146957819312481759199693540723103906115256077444692726181693599755344952483102367535749988130993246029223468699924130954062124968914222872439206357424653100871346665744837083843788722463918593924831317487586990976909383237978959074101487726679650038931274003520905762709048473204262174585798273799489162559836913577029549553094606457612570555927375490228165013246711466490739552289012684786578010142633541846249061199757979457904375948609198186389558395777908883608256743631733825497381959384323848874338055125460667853342977301008130986241524920432456379533174637122530829072295836607128105121473481573866756976188784640167557782579746610447854110082606940854670581578271923377635011494177387499048452702649176079926008080456287144026686275616594434743328225444556344561071850670516120635970894280316099888217985436415372433293535112986160704316244188509583344131332171685282052484605957824146380941313551998302802458289360001455707675731364184061710735704739693930079165585528220088873180328758907252411646926245956687658061248373023320080995369789827226728741450739943423101403883868771677864286067751898271763727692644983148695214695889397494368344507744635547560141025639292660521882032294541413123943852779130084136689782534497068696188699267998135424754069051135700581711020534029007316476898485589360494318016122187251680900573111590838324892335652809662689703486599275828996445983984144360058144440554725648441539098907778007049536199708194555174429730147422425084893422720837586492838576267153584640287382956633938752322885425390075138493669562566615488021178120683511867339591767687170376376273847850301158221802074327840218070173510638801223938936422219478752597449315614886972463819872977643622520844823264107384562792451265617347771551649294758281071691609122735718860730321280848012942101469638526378137372580603317519970744560474726140229121046756299581597517450135307144306389303179916719127532836430809719504728508535722396211360950342074520187431268488606294801394445592244407390040156043827521768633496314339114103811095053496624825772970568613223049240528923984784425932604136091882048120796843854545721051654947635745321084368436465453133630771742235391849162298938296526438567621503044486021045742443840235787861028154977735973737780531611398359637048823800791437795196544636835390759326034055792604831207072604556811281425907769994523965849505902806166398013660380510829025380859209142355170799473046145827832583324107576159785304052144415738213509970822081095679339361315637978013346463697556161257126662025253910678833798775504612393159630160902863373901643392418013164424529478594736900035408969757285480601839867338474800681320971803471992370874559940216443960153831523861503850540394585704746573615336812868423509661054108390624282758223522934284536913568176249362451477313931780668142370641401076554730987133798540449079055575671636086341935683524244567110205065961713793029311446359280467395118016880518884819020271615194335036210924224500753287970262846803417486919030520032163105708607749688925580882771570253789169323338553727043489488602828949929966760508276234682143205523750809606084798563122660815545813907813825717802187605226960687655097133587447959874179949989901510340007499695486213468123913257322088311362829202795390095806820350447398664910416625907517825485582084767394450269068408282606437344501894774030798445135077439987349470137123070982426544321871147482727813026107725992044740105246902521784592002932912577276921620319193322595502394008857191234903846810401070342841224832646993522046818473490563079988145063568100123022871787117335601911086468549869571011663465970961937530590975914466460827509451548532005141063507253504020631117357418883341713831815586719999746682194862764498100805715825446266276277506626828641707793440313408995926215914322619439445582866846073253217127898404377204760608797452041092313834838111961222156659843230003825671677985175675298493533055971960107018836294840118809200674678915163727936063261029638608850990043068662941796712413885749919220037086111896072808756882931225785669887260198064860195346014357663545149456525155522542116808932670455160095121335781503669603802664706571804441154584482449326300324920985788745111739562255104003693156153042111961241537368458171885546143345981817340775558005400690005653109036903605488367885557316745068787714592680649799879905879754695036248015475486027160852570641021269775726511318989232165575280476934579698799552112566208664925552340638892599452109311596272841525180085112602325922878362194886809752571887454816570526256357834471055183344432401928977793085729804493827931548631174981369197500288531870694406324364922023131319163531395417833095922091485963877437262754630475019298355415839419195924150197153658270031852395433692063891461382950054212944648418034315530869262346630571525529002589801280058519516375372563929105536399844740625149676494615146317481708319131820591894337479707193402523265611992231010712395535754136619272217208278158068613934817982321424714628128273988392365404180429489618640252118651967049188495931070634205168517216981314594568444260476257321741300518609208768668617984072997059970746269485245731784609465839815592764583518077356926302272851666067236564063841689074331608094000354976240303862280491068971029186798481200189763990293701248887655394033540540393836136877776730404044558503791846994945615197547148482768946190399099922800160782924575702182868136400450876202706255867880661141444788047927858638190911824083228846791171874554516037869413568337785511193677968143160380080201735147100632153719821033561004359369428285637868826818464574558963739245073887952263472890909124397482956065808383813540436567339772380773682726110287476156280155046042287197568797958017880994247582507381642647794117422911964655566804738525085375164837077320387955749159242455827836088989131239352770212673780766020509482543670047350228088570933545066927524149469369695383819780847064455904822380017079263823489830166875188006140005952805736944494285108142246273376906083791671523429176508808117525561258455481529635657827244536555066413156760690664465511629375770841722539355641060392325775462951361081671799171949855051604864934525707096352513001514843151000345545628435112363309166561742673692079372373790373550935009176647227861756643987418600411501064806096016407540884565973723723424726722486677077076528748215614976078462456070017888628029749942879975730723892930879602781736798252885905487952785905093457466048497517939962311291707863706182498726739110308965550010010243796836181630536678004651129502403913817416449899300064886446289948009509751413420611827659453663280045982043825775372908798043980811386952877583958078574079287247975900299609703432643685880607290680442684495604952479444861699038587995207500745272628405853182585644030329981722902892751582153882443578354728321649631563896648037911984643875932444826130935663929066572010841195778324701688405002058005606399646520078490533301576835707225711702643543645950702717658518144515841426098023711399812588346997652615480564549124088581006883185662876451046319394232121878715757125057659471268696609448506902502914756729064103221370263567556905020590979776355984425279502697635758673155169315584870315456305878285271310980547493269860046434277651936337699845829061156097117581994330112439917035087463806594854725357779202341010015917798920763105649342860017986825199190665495426210552776977115585432176988857255492177434738796201033753211993374060431983547631784422042275824148407620720975499209320876210445881274080482275548646715321998118439876703793745680260565698653624100065245768036359365189267814752437207536565848707937406020768333466628747595088669820681002690010195539901187819685129458654225912946917872583321854198374079198329936796851802469566122423353078260375684969002151890664900156337509917342886077587249127957661050835203712554671666344638163977552172120130150941157858805525437766997191697870012812834941268462957492421099139175417838447091903133218737482646264661311595786798458359761632256520028476118733912770743963022689641508455516616746859532851680694194166664738537002118270541523678563775825503487797975739908448022548755923116826433686851527688128186615616131900232564602339698860941312332502008115443298782417836381150253791028192504460334806246684470702030159322115440164031699063292102445582186949058412756436708365579671587336717484190563290183039462268235882477759798086440183759273431654424052206231244314421152323999794114947941229126791785836304022604321327939422033444845767175775895211329892645664000063133640808876106569584303527453609409806442329110929382674636942769027895930025104651974359089121723652921523779501968815312749548465527822317096196062459082871955820671506449702837120291268472988290202675744398094444974610158058071536798854546922574304167624840148743151313977201817706361611129132590103639850698832517692676750693152775460792052191465846956874739327959186302774799725580458968608920214622434910511033210304936215252840566309155069442467521137711907660233442836454237718549042983527458966863623844723199979627192679581508492515491515867351741569293288031760373124450288198897404665547893274052360093180804447573249861115223135440302124090683591429314324429888070932163832780051859909379267170093966009460148411865999540227254130741412913469164234104894287067506349240069167948445728354117012172351081894492137408892367540620664674172564309255570519624172612303569082086262347166006671587181276324195289105158436768131913234407905112654829055747374691333981157558327047530161858730729677328407417902167196909317914402868368811940758245185187724460941567717005338838725974883051725857413829860739118904115815876894529275967627222002722708355237930961555735908515352833980253495842108355443428044632234533027454514502613143025117449011676980129941942458941612357853026942076149445955200254965293816479969925797355183367906342850466085239344758613514891502668327517023393200622117700944583503123741790163406352889188162755974734487102745566988770244653731830513136412063859036640996904900267306047488168002679632197014819353462188930411006612490960859122524739582647689676973437848319898587023176360112538246177629330759316153008654842151945139916844409979661107187186773540320125612383252591663125759115570221336835345776223635102324579602599509522001040103076312272319994001982040664519545032570471857588387523963141018630418177725786439109052014525400039190400930930842860095901339349863879627069086074677693960081871268532947524258608367237429254311807928801399907039723207546799690314660293177408329284468671766798003291459373651963770562166848230663882063447279106403061839617636204753389028929491126075190244656314825046549513706281387864753102075548229015011757211241659411649608791707348229907852648158362431700675351724075805651268330158184558513776389451037802585377674458834956295228103793056490192096925593163064672319834782022890937521229842112943748034620436901372246014329489039794289588816603967842156987211687336687296693347167550941409247408477927710818587794366738603030062017487840455214138844208645020275778937586410202002665417991643579922554203752030618700548828352746767451662818171287208913823776903881409119825254315592925643291019916845234380835836973084265897777957309329268712828652517322505758049796648279839754983790783428505665278071518233398701045656217439085712017690277583955914966370293057857904434811499565562800343871255630612268984306302531120874785268520507242504565124895976216807852355971505439427878551438410056622121512338727381087215462842423712117647956965848687049228392361742745825890124063760873666507057767973939167630732270383678806750649045670296411389229875612061694853787163957163655004921067320234392111414068213380362371160585332367765496983832434928884509866052615137575812317059514085178133368348598300081641286930029811103638266164215833326506401798430791151394041565252119084757424339940208373393584346651239270870239657257057564031468422611239548148457842819837180111264823871007201152523212399438299877869401262935542997408366418644528527933634545398707101251846998538136740233655958218190883230911231899892103200931498429630483209087343160213897934700057197300070137139453824746282199017248338921604610242176906709361432117747464953646721120710602877355093713522582477253016819310189707084108744069475486707585687604162455108987582022452559973939284853781874188278881907436876468080113565013035833778190492690780077949032249316517632462279363794592473407314375959751938301013854859695444028025423154918213513213440455566699361746039304908541547171456103146949383660306066240929942767942985774743632432899545143799426090878244766789714383798161441796143689243546283674049721445332147963779243565224974238825700751119470166883441790257966739467495386705163498447218097489767714494447229774760869111440015408632548820695610170899732360344583167566149186947362542690734527331877819669046313999914718953066401320373233723695310811074413037286246962775595340708264587931158783350814562127194842379637330102083767390172861069737787412280595788068770049411791275933945211352788578868009373047513575920017416890278686739495171422236531043061572792856624050865866478380259332063414033209681690578417181927116476223082998124871054996968275673681287606203475079952395957445883288355539837919687825169793807699062302789469017320752177788789057727286145405891362419394659314257292987589719783659065210480274972521318528174580663461961164329063933152108469580826253156620406544604646265586130287706208563813643520859398842077454344432556341496665831982561105657850302560269155881932595486198755136346302581206049787671275676548336556898105362212880678667225470394824183378686935619848811118118496527039049649863321735787930487414009529777885900414126798969085413160716098779648397073256235184727871622532705554358060687795186882859948664716789023977667317474334386995245645573492209267641669690112279523895360303422538256121334577543856407283822161691180551399794245360754763103737825229798737331321505779317515276923219037098023013425918583878409610884244153376826293330253759197925904862747201871153453348524901491203533958572014451285166466253043700967420573355500376278459990277135026300413999957384800744622348788370860094325148607833779796203055778890181409434415576614802550411252186604999920221203380737725522260682830132084779353673467332181266948647277003347260620414458847170099064018708196960290056606171327343133926460812370079792374162793664952909347009972405175077994938330206181189137001170468647826256983756313456551635946082400199999757307043578433548743052786056603087284717792779862258852422241989276699836450904128741065534469110431941703022199342015766833601921440749403442885646991106912235437759091026239441337268786766378040369567729725256787571114453732992108352372249259805415767239895993488600377722959277355089641124091780647397384708231140366163317318711895461160832086501127216413980592050137101533849094241921207143065676809555691475092411007492837267925398574178536680001566153203750970029820234302083913463408120674906561226577357367242030925753001304466047512932884326967089963071316472168899319883886954589872319288134854550352665875889900860581463867892342284111395551163110901071469419357452602802329307011589481045394157709523888965073627688355586398790656148882720144371005821373529839972640480457054788628338136289705850401906878353888260448581382533932492483991860112596096634970618763622859558116893303777986245032082402871845382494032409882210430397757598843139006704037674534436974712954580114844066391484088291053582658956438840346996760891034009462241324603844868124544578968983450422726098002215634746915264618387762638321809053257963175971945347139917745210500427319552264284053046916726189653492062711249603827251035678899927776255314030358963272782748767525519311448576868271817372632485678869543630120020581067118614318362827071595726430057270648201121390407200108259808528986430075796371441071745509164150903428580151283244043549184266593834587937168527420159615623429430569668242569025478080794930279650144534058137378424584345825501453785226959144106443691415585272241032523148877128116175915960097604606932160243916111818445233179910936251681820730499278540075996255206398747260850921899311584126866120244329214653433488502509481039054882507905629684203282484048283510277381354045530521276379922751250938724586741265037167960260130289900585076503759647428854877321061950750042753265684858419016279644614520688185864425064840987483272382186017043748560578775129583634782693587504387293214733474742608036349121943956869272263540484985184381237197765492314677592963701246520498292559709491131602029343313846086508389366477973652785416349657374407022486157521295494283499196009049397892656267860353532799719599070404125907484517184417473178520145165358521093162833863880210189553654733104556152148896005052726636423940165197731253936850594453918752377809934491192060570728160654068922709948865982169415953416743654611892111448280610515619144317305716094302925469221198483950381549581819189512359205250184898620608488436672200930715019593089542388401117843589941809997195011639661374578641011877578904532902410656035563636872089763835814427901110127396431352073165295855476207471368746591773460315726572976965858223760449084769972731325209177543295792231200544324756088278402014888976809362741716930858508853266963336080473661728076455664158314619973593568848495940144862396279137827324291332388962892980582049369694692269052731073027187694219944278836227076719391296978843554584801657677496188421122175710360492250816025611098237635145122295920845165556171618628841665158607862551424193801868849777512124157465318649993323183135199140183876046137917687590946876577429570733491860553674902864276078149929264451877391564774928512867586975058352945441696583537151579584962378317957609796531381110962895080739397263152664899756861522387048740742857089447425214464904308576967487738471993560627223827676452687123416457037626070060663071349030346238758542082903620237914025698617590525203158532949965410314688213985214603349668406410698709974565118762210041664772413308462500018558530244798089265600433893194164841034997122911788945312339836243011914499562986064289969956624323632932760165497663177620369050432044882519695404712971235303754292189166372426732541249292360210014823328841584848477679399402507709486925164681102833338807315806097364158417180100129982300389090287655299398651187179937010797708058982246432842146125624156469228700104269842060770837820943136894310367260033843360767006625090816755930082720833507661363731494388610144266802887618243910620810425917228214311649630456379319902606949351091392123760702815919626711456950125399286174671113731970626928587366931094250951715390164151532316335539364846768160910722026762818506349115452133459236060271072085747230908287853228348704577791587537347545777757129027133737917584533933544074916644144367831428562908084154463447309592976277171509465917934380824287457933850298297500969989738569814229681937585124072074248467275823696305342119103421253771282172190518602019842140075838448008789650925835133739754292941432411124561823788151060772051698177368119808551556481496404322553551763345621511524453925239507269991545831024485382529026600118546685274161919284496238605505995775526638747803805677188349523509924449523574000980416113489344443850904042535326003832492467070369730739121973482074708566669740385509030404747540410303973613746060698461558634518254359868659012602768169046073278201080160192104933507479958357093486289216538866034425816669859398505728175922767693428287413619004930959714817793249149234286861944084269564796576694972237146945407305228703339684382041954310789220924864625166748109513341991703223781939492305907702497264257208456682584128862184148988467974092810029655101527233080206379809611262739799855132246235267856562380955932920036164572449998442550995808999311305631639028064350513003712325627108260734804700438902248528712755267573544022719417011893385917580637044739491702812857476674927006376409547120462281353052011007931980138403603410287575102258549882666893902793133550820023586048550720518792217709719088191330083596782200979930949515560218294488567560098636956248018537154257028987736067244299470862268695664207845413598046015226649567658807303661784816760211453245358682851467509976599629290229526894212315291457636705775806664508089614460765061001092640206090471958544955260814154422661471008007195549221773891185400205845053258527463270447949794416333526661926076849471367743981508020373386851886077046368422196808104212406962641876525164688938654278765686337321210828702214813498106557555845251222933849174043038328261771040156782034620192447028589535500333732847038330897354937331819310411542204431400500792879524141389220933058638128296575550818532878391844758618055997532294383358048511789515000583849978516759710490824655158794704363959393845991159418866981207766764498654832460840707315410392100083823406338914879979699832940396794017300745601794340881200171859757179191672668018073994621089122614455266886761024874642772718976501735019881586355229995049242370689382634806563379892489509326853517879504386029728651375514382302064532822636100759147796035455378945339985408897879686645793670933194896080642615355468468234060910988808136038306280867081112461612275013753936106127078411468322234152191400082992402304105698203808412633627899789576881159685241075953836277798279721078610269805685589914742209726805811900557829367538242989003133996092677769633782732930878208831917731509119717421740129462681437402143586574654114886896278838373504030518503551071412740871059503781431005028224960503982202308554970405649745641700098606322157653121247091076180787587498724850609010553674239228408957400951958387910687375565212488891937511873136784044427104372107324517469301881072877906702282527125697656160180586257687933449270077799691012781570299619063702306551107206267227378847585009445022536378052551243621300104427861871782163819171965262231058416603448195073151540470935546900313783805615300107396933639249947419163020194782564267910354042510251587592440135537790435749206526935055531752316200893988586861953405028229741304594237271960324806991476525505614645944656825656239792093915622605867185083174805707555824945647847288109628456760364656016970255555031458139997330903189452251341719285300618224103614895362062037097881288537904133332525723521802890268422097957932866275093858621748877623644622409320235965366694924413961018204101535767787979423197967963658706766808886126492689261360471891827509703064315058724819672119474469381927830501962694621746253082068737177049895325125677281306200688381152168542861215130128212276517307453433351014364310115428235940721166935447165201257707907786842433351262415128474396529254187970966390817993076652808212231586194104098229007323395921254482450624007129372481100113697570886685967513783794886775247159634135081466859797744752901629924918713879306407542564426169565333117917911241751455663989441987270506751006897771490048992123671769064353410781988869345305734964593078796283124552932631986449154834043204852460369824319247690938889873034986719940656745258871284534278644735657745675010322182852388079341028930809862184377597185633615149183412848100780103265487436787768871576123106756133840978692390375124599886310816758130609920975274726611795099075668987830136799556768563640124327710038775292433020340924030852963205857468818011368792436674301420535466963078206884161434825886581358986214713521625761486123236532631684408105625655085619904998253581700073136494316337451382477924360519205134121833581025570263611639073805452752788250451442710838927197495588304734322116914174850047779533786922377858465135514873076840815144323579154853831504014807587752645294532314269691140527753180654006644528320080575084757531203069784898185496649019290586669592791782671833962575943998867462275558257526734502827344387873627023804948681727160983886657516471455405160226186326353453308763175072400579846353318272360341133273706312744421788192026996653745048276881669615734989341336855926634833416530942761462824537482274336641832755262908984813047702640947977807079894353588911338191204600473277380605005202450298479548870094668888926513915934054968810170768876193646360464758943069606896284297828910587360184649425423159864789889449780822873655978720937687014432332804293834351644894482025833655192643199139358459824162623651705935586328546032359291895520667265946901444224676572106048483553616713147812705252657037312425118220482894542847465219909194290645479873374745540483036541064798390981982730978521302742722662822215596141813044070755604986341813540590978248749682876580112876739557786637696864358310700491009100980773222399453975460202898946564847641691545142470945626522714692086039071071269234027323245086291486896135781946982612400697959034910077818786337825175942225809368649261613045021654749118987190206620892360421862121849566640681738231681783274342010285575315101775977147052931319305036081355894897980395931777418282507637997189654917482926829426209243596601348255317117550090264127973511351925462211227423327036908412535631860493272095366157286796347271533602910345799250786283239190415836768533764057161916079644844819130870642511264085633270667311290172341372979831993919502219746060594598763559950947607464302808685397016379244999396874622938446218608068152295590437091765892513993024842817509057474832191062367628857283536779418940589076459315738932604609736968673624781333935864041128541490953596619695136346280969053048536114224139124786547274473506518164326159040573667920749379805281241729631578593949869940545830585495500260380266804900459901826951605834494907271671768436385753344862821613143572602313916352019577645302149940376970529922355797031796286120900013177424454701794264185810534280374259511076209487987503525681815515643076497972383085051546223746646668240428105803612291852043900678128126308021284949743867615848493859957647108669292070256133839647563535278099955878819990717168532545156847632247551979365628973895318949509297874572719700855695914123876964033367145486013376284934121548407380653295245158347857914465463862223431803203455029340923064756308063336318091984187255386052153971893319801397462036439526577828032179651848139395262397355053826155771895881223467507685300318212345736385502125634062149966945937073811573969919463561161520812800094559321806497429659344734089724751626553478778799072884088358051732860664311569515819809067630487998382897021068996583352526986104215538427542079578711904133520016437299902530390506917627034569717704474550388397448665681671785825051355777754073341860638841205152820149554870057102591974463596131449351233030285944757188343854546415503208528450085042852137487691735041941610241056719443051334845808542366526421136194007068882395433487888568052748798110304143217876328957076468764479130564683178787920167096093560851287359899905872652336996793100849335356057258419277175782480924859394509010945674600980476226133946899243220100031586367989248785749002423482780416926185383344978645158053618915454161280500763788383286790451140011746399198146025515479410864898566063112214789298358080520681953877051491193445143389218866304678304417501103385783320364087067465345187601089158533415209923655287653855152088884897732146319181353788852797706262340896465749373516897126754586890082197066485854270701660968010810258827118898929768575282893321950458765525070347885130953938345017360412632788696625449514899396563189777145921688861518006248957624676309991366815352302217098914061710000709490951038035140855340089646951114257526936720022830407107884975092652333179004384617953944779586406912303758289095154510607429135548807575337559632719132510295822043928931664764348492847334702736120014732701003296756909945883492970279064863184441846774588860954095648877623973971528617478017340682876188858328167346123141135484276176596575574914150253256776528909578343523603430584375126211560718352085905621427407369382202660046761629855242745417587347299366711892129374134917539071209466559969074304870972884110138455685252216917911393074038979908425104990838745970203889903042621212288368014677353138232813669321390145242814627523054994597834021174779897709585871357039704534374784361104416156659635572973306232678302542384234966558631947697837224073379186661764921226775695002778308171723557975634628556747380202640977711376465795328368837669022855889642662846576208276146257237612433484092034672802478998351973972378285935247599145356278325286401811436532057141313046425895970771024342879823536729816945529254565304434275903214218514285884859009576111093722398039612830459934100754021909937767850358470355544119561752220936077739556494684457783248877574404301307116325939857611514029229135860059602979376020472750039782147639317420872717507069959238475895588605461518650467210327510459350396113107567612207008891394356388679441508230128951035384844863559215327228219471666981663988107416066570303584737821097213887205311111854402129223883958280730436569885160986984451952420098462229596204543732321138474740734389059582508947675604520940547662582774232908394831036840586948782461040768494961552452199018319958701723651124424391970725741197313331455625986688392173438761858048059131237358924287051338356531277912013701094634075141553449480901048634231851339180973012724208110138952678641126610648621336174958796475864231825363459736922311418494618804650020024368657637522110442130173539766887390138494369536568584373374207872717834397623842124153056058472513355455918888230760386828599278235026913220635081640456496316237128647298477185163151351341311869735692538604394296747084606562246553722706411500879800423213451080334672016576113420438687032754719194608284153449231557583513801828889497252717954234708462591724393816549045636435929954077808201438617764227578804791873741816928672841579893496655289965625188807983714450636354522994339272210521202856494987981220429910292814211699504788044568385544147751075215079808301493331595131243248925303785710171043353420873663273414432259199314268170919782198735238725842167876301282153926039562509004142488687684301127182309122852053920970395637014018466302910647843279073365392310215345074300242255808816537328570495461869417184129461705680833972029640788662901882282371101164242484094087928550584308220992797309682657796299414733023897855516070638223584052387716003946535200126942721822726247284818907553319689663610488643776911416655168616183859414652066381820285270885659520990527330329279842376334851267342239886470058097703801913446093182153536465385040069083726773828192024241976326153553852950601694926286701135978674716670669951275586259605046670451370812893957337370246725362328936350108570785741887351800014697107786999009333447058525668042207619322248906463885298623436339873263685819577421155974284113292415133650873040277884128843924852224603997765916835955606283015361730663688838260338331562855827474708145755582178872970970445281802604493745437780142688319309228370258561366676825608302670396386071491107726902604523883183951932615003212213646283158412171320826323113408352945074899120933013431531755145981204068476601676014737744838287334642711666714673442949258489638718281812270659321086447093376871610872055494130276750877299509270115264071687852992923290528937500902260802895952177615035792055632737669253241398937374757316044267702413386861746224223122519572764066112940141654923058108290939713069272496610791297436608990100785375555268902530726410548393513464546152519169863418147756760684213330525789368018349240012918913510519085926650639050047882318947668122692480919623579166847781374784961915415629836941538384514491422307481209333493646992698355270808189953362978468235139850084569452193260116481002922374507832711626917572192746251288288063642625292943715746324001552354064959982755237007808194651685147723853902684756435446301154695116859477935960769260065403553591516461596503153066049308028952831642224939279667568641488020008878043296102452422945789475752419097669985718537028181500841484233358953240732926497778821096974213891223805607624484548008608928219486053464755819620093524673621366420980884223493603033815770100131562872464050345668694788012956676703238013356233648227645136292068110189489410118319171634487262132204612672412963113785350143653806405096949984657727044190848447471299661604179990619128941825934698983119500660707791032957249272497331629058678058057628681508857899041014348732893834835833731133170995866602378642243591975495781379740148138854677322764351222650686803979805740359182214253810300528240677622627889060618023468262632948190409575727663802928277086905332090469279519472424025095747324011984861039711542271110945435435835024288574965892349093287294603873510343784838819727273971118175177519692755014723453729705547880215816342865046294084916591598393402158188499006661827199871000173951783848385384041345476174817401726017961677434477003686550629296821602048883141605299300246247519565938504718823261368269061687252249977277523734774890912024359618398994028128930917835339878194622558866368070099199767886967144593391226808034285788638348881124820329809407037282111963528084844453194537865830508105856125476976149715163548151852599196702415342410881890644379247901669457064839328586773320843298106822780593638260506845065033315899158085172261498012971909746561613985980862674076017057681856066707692367477526060439164758931155915042351229665178559376358349548561583364518583057668996529282511220821414519651670988602663134904345291494389938118246204504931398774271896403619616553547600847776125517674482776673242095107473634352717357225315188507303544643061378724147295921819685311212112848762931469503018750606690573019638999993068494890233409005843417161752521289018093949823536668241556177394752063445442915103884748615816025006346103827556046917570384289573149326049993108267688820727194462988616027741160712055210299319499594874322002365175213152296860718012517244250275219270878439647665507056294326236829889701502912346417820440208350509493933992586238241078955877021680364784317931922991224556248784788139316928020205125723295836606021192509340066079178738142046014020541122429747014854651562107960531332174223228428350034724876833208972610069987639594823769084624009873864967196390020268512264960796394373563757605254212952330532176579550523222298746265378210813281889628476375541483903235823656048526109315982474277241103955490151011548669256649176923608860615046723872092055327270805795963695399402788732507641113440307269214603274152013546089532759909348687780577357473092804211113706359133068865536945597442317056319142993164732674646507377989848263864340598577522047612452929921534494395799543547046722707238421187154656628338709018060336278690751129361225065795465809240194110919364428994708579962054270602618117183430755662838977137125068182173718130036569567702075662407152393417545351235548058182212495697498427906590035750025719562902343862171583752286302657137634296933048225216334527601456604527964813841444086030667358821787114261356455099186432879914818409829945904117185610559741755913095650391874092392065499328181986154780796471169578939961318577261144311709933469307655098908304449744382756785835695201524240318285874903744876415911309463088773410436801630704866375152598519905111612614169066119782131805928603229163816876951055036352098837344359593366325813403456997573544500004005787286744960683525535124363233294408475687286829410613192320464452483670882151808365989197345823739564626832703537370460348811120854177579222597757827816954037004607023100877175412638536959178921529460340263421396397641026819876241097848719954749589316711694170023319132298467226872379037771562263498428915198003000623847256059155085395688565242950981910260069106484724441166317214640881833441717519546531993476884560160812300634402624459559314647858182656226826425686143574197240668255121501164547133798626686932316495614113433338321820478901662356439455729845892363514960314556537730325293709229520130756682176624011036167045817023430042950372825787119215189286829132036234406379783356122087834265120123222011287570394194299769473469779587729068679750636981728731068573105750488559194821591460546368780156841505233998588925637734091969434483904247817799196322814678915723092742207210456904625595125641736400554715497400843554865636181959967520964313438621896985449622471818329793398747050575403188589773592510928339435542716963919568542002644337101915612073017483594184589790697313036965207853121441310168434512037156798151847213779829475895865599632263512537705145110930941550596993075708476300889977416749899857544098627717389012438321247944418792221984445285153715073360739381356377581896536797300609908511961674719295847101732688464957014695647029557808726066352768795859776749073638276475202576044937433503476379092345987607160532279458439369294215800759542671142725125813175335081403952060342247491861254237552792936446273012048150503814612801686517330098850437638055553210653858825918324387876704759852064255037213446248834190470583907241379539656310221819286712208647809745183126357231152240266997141940735591584491572342776568877455529159047720921877685702835894133293355063606166824677833704262568525571484415013754364489496153194133165010325732165007908394263384220306418128848453298732462696225043924648338415733395152398501327238818762301716295326414528059458632893863053342300255222957867091613656317419981296202346459677033195753517050910238308624124001460155452690832836484782198690294217497678670181757930335526312016094851471220876812950067842530522652079036554731444108879830026510000111970764165821642992253035993670667409324816157284403620157865533641001815820547282421448028007698569812566909668218641376837149147964318432029969677116721363996929934648752121863692680172760089712185338060872861757532238680336456043633734130773577874480359335656129634536843365469425904192446484358134049022397628094368809314248291235835796911596229066261882511971544858323197687922971379630352099238723747269697696910220245783653827719825515172916723894667876564475988553108296633328222725042310954244588550344196597777115307246905635961519339933110290614181048602408915131960202589489136320166139606047042848606701543599373488354285591192253090724163970043747495463173280915816281439546705508085965498185869700370691518229207646792746739476188079422906905094312235107731868353392937280196090433413256712476687717782429887458526733022625401254807925469105794514212002695756026867673392541211458396188173011526090619754318492952349812789049515144223811047082192713112047005940661809114111848072196111563773805250384042626222596446195306808953661670699534072215031674845292664631134723122880338736955768054916978689400441303883049908721834336023156587931725181034288433942999240339765699257185560293581106342232380778611676020652323888255736738035662773840138050975088495787651808525130954311085332660379892520533747752123259028219862682803465268219741745646613628575437040008676932221978533848712062976307654706724414854385934979105244040965211994039276736571597690232312863133151929868188324606316033812477042307562004018887170224807336499181430959078818265392806793947350906232986304708569372971221592796618087866378197013365128406193719730959752011988016810892485210792531036002803771138679404529395933937355518002117868020874186567922377573144238549447652332396069278542810807234994380140278893446114306381697803784851314256920168565596616790225698839350094353498393776321813189421934993199365461714719847445583468894942656991471089968972802186278655399087935589317524956046780512739289016721538011127992337976128163905671018886354459365744598949017418123902607380054675804432512319174705086699000830988705947615561358527424405321247236818995114044735553293018369397180091667023044507077919507657628630084046734118167967971764445768324951833825687570315768929268439182025771681959323565940169493778374683679925049431275862495668625695746054719495710360351288568460577595044581073821888939668105004560791911737746586877592720728271225637922962625139491184698580366692194562708096327855148685848065912759965507414208654418964927127955538879032926245079355008734636391968530243902064066447661254061330591565146647794465452979538580455261671014597858533099180817421251521760645514959084231340293668148090048661520108271373986046023092388125815126328112929367614179996016344183374474674573731948294837853455068818199903827241629009905695853740264062542542665956564086246209007163084276189907693319350085834183734865877711481452310552952032803060490989324509270708864104152712204023311614969300733436176769258263180820950163082436154830115488420689915143908788163057060070853073615655730831738783789117309932876316175493888169998275171122791269558071728524091099369886662767305165318996845780458086230817352787755792622626135609594831780841883094384341184759468486049243341644143746772176029657823833380647334307901080988833026579988563052723480714782759853956843751262779661550904063258628392963830454342376254525364709662406467661430273114809434302491660173974671832450096757207710917140058219712520919023156274532795787675020886074188857186805467547330536606702689704409077451385557222210875525041885593587967875692497557397965373400724088192009703148036338814264493463119451651733632076171463067639780897258508933322611279057939488347220824068770326016855411729731868300310837178621295832810774826356651935360288180120940771607461230704388271393570616097681277694285574530586577892763839732269699736291049828487211075051745534955964997056250669615999340820009262978109031863286115364205478187605134685042068372060091769200371255520868633630441437546967968428356235746437091808748983220564707942140614829352938161822911502884345525072006607582070828896249846707586284677295046560905114511553760384256489456343858452162774662935806444389803096204818336238361570412424972812085835612715416529833858220693253033548135479096903534504956495170762694539975847629498823758181562349250266584236924365593594239892814500098273155942200597479712819504427099216631027716171283038620114084142606576450114138673457159090052566154087692091086396440561908832753500752692472958646980316263096654990175025713556742102003530305042067834158119499169842744709921211754196409648115499997656794084939810116126037780171332343386667145883939890349756188460696051253882204462610826353215523699827300661419580259915727094429121635202321419260574826783958161162756899121140815304176688061169879560368353092351207425070867043998202785501473793758855628198747938211006803955402615133670781410065802702629268404664644537307064701978425933641168894668096154232402309361878655923881630647869123750110008375398542698698255990200435097403879082300093461063779653508731218673939177397974619597600331517635605574675278768853921909800513480722754865141997748396851715831969024579476831038703288894175537542373099667210616758078440331642896541693916388159662512939453871126696287990982803209252399168449865128712037706921961982936520967049512653903875838733608407198003652964864288758250331524081917537381355020596086230597945483126240733605702173107179397692389552799018611542806671183367448141194719999799297463968117707101065542703202135860819391111854991045120435008591442482752722499502688526316505096561690204323220509786456577039124917515054023173698179701857606422289243306373560942310761370022216583374872309880661798633924268180766497667115359228169918387064529553847765718376347356831940568633445381262627053920576494086845990254404585831828501297390982647482994103250589441790097692518005609193115051780720365624622471372327977868155714958354072516077908119760678662092378479447098858114344583629918906635710560014778545863190068154099631485769213317530047530986062710305439413365061736087416392148021655740285566543053620437449665149697240045280413131748898320064107207968428114567034967602082123868101187391644374225146605073712148759721309834943930486893143517748463235939531131629428873474200847955893970479347093497416681736747877957648395391710581658807082792307614161317353752208592694511258603915436919701445535994319322838650255318524309042282260236809234048877448959111111418634811330496261342345586378600196626977912018641355892530485093441970831776348264682609968288679469312923383139389996349733420011782756882748734305103907645787608021001765987677543352621602382584502654934850254825196533406492067863807305532324293540704811409151737467345662821871067379272712020903696902901124877949900846406983379717575268976176815160349348893690966075807451224739298346446645374460615713082202608328588031438645881435159803217450994719382325051581544972815756007132997283418362812407861774684191984276383984662902747445039965473339767799762137457531802919724854258038554053692567946630266923268743242817708387460835517082236598140776157685575743224731973432495119788924447460877342401657287457416417412913735507936902016594392970818738206546516835736982887252176071613302103025798194856544844538054689268426650420708196915650924945565707096669685843603147898106585942048962218294795550683913866541493765883644652521224339804287142189488253413901757333820650011790550594529549376814793737489367657897865178369837412483403639647846630736133700192780279612897588541687261069169645397501990175604528565661633201323515921789937772836743143622328237516958259009220852518564114450471007885821678675359087612870711496914123743637552747696111882816356946628520911851143314762243675709241184351518437008987134391410388418181042089246138068026197736220746986408575582749818290270070211482428805273617482766280234439956287650313614941659878335574470065739513157481595572556954807094295258591856590297929365706090481013070909371125869887908179425170104451658144540138822981700041676454108173437643498934358217037549112685635202376136696144728083089175913665048991452323411528448743736532459555289539303637532759539347188018161864306862113045894884127709174718267773298339589938588367276893145382068868234334151878503004577161101649015330555223230762565217499848460167086770079128965089278744352442024146050357002377280719853521468020195850163133678156792086621167514980141357779544381871781846990424044450360173006253665916612413944244029239220925662912865021342273262521512254848708892660848555357535533504736619902020537152988244718806325883185170594154050695030447277132783301691397878764371178690108990449315368658981797302089637206335569230173812708520443448471946453177441089310793938884012772396569282597792984484436369434544946909701327844250710014354694612272689631934415273152290139434047627893806616709556444062211301826553005994500309338228080272802230132810188716601279421215069153866304482549374637221589722814983400089499268063138555512762436055903661243508107652271193695858923720031714458971385486006458698631177281309758432881247919221955164919766112464066323999430255368634867288356620823222845444516294856121660000471277295252297269761587530440133502986043813706130613309054330581712596901032161408982933774893283587156863434743949767195690502326594712241681941571101909876518762476333754477003998052431057202740499365596438157879118648209267355712844475101368890764978757798368221779657071570928912137367431209411739257715689857878869209760928394777547612295709207509093779393987473257779102153240713337409002636175554768956377932709145447083952305240438445149800499596491673832415084236824947906362013935660755499378303821074922208285777479360185957667973336398845986854162344448582425678656530678726801514484461779114975426625854805992340131621233556997961774923214845536109762269648657319669942144999969872411791993483077300735189187602053999202245887083799345178710713789325008371370410974636622883577080854600214952585050820414760957616872215136439933560976099713693222565847461472181729202392649964904488532990137263246263630960692850681493700827866626548112967298011541174168248683937214624443238335459623296910058070597014627816622414900534094797551606371807568117254628891075937177550327588475954749990374475974930268868030398050375997949332638992498351262789662371150806650949385247539398181738178056486481480044041573259976173722612121575702087029587140338068593252006776521692534957488736860179210281686140705362403294215980583320431024796247410464347332518379085280337180467146812040373016177974053665561883624875489282090646186489166790626301254571440269230980910479685305321501086580531198678876487801467203634467128401660147303080422509340111795399370356292185825789968022032722908975417706159677484188343563860402662473681451981314955199606057197366177069586906565297322510183903259372672413620480581048481761128061919410807092434446562640854583319321399922018722153420265908425020504494370796802521609794489250890999116612214525791044344357326163340576256558811064551661238337044155083141782136137232852229536397726722516589456321148758950770516488883977840734445123172698419360800245326165906042545134732021249305384843671847287004225962543971515143170377357459903655023499685352948067985085544166889798996546878700814079769979147367985174237347664558570722000669869590777760259231235104188086198895632256639488111457512448765968201526787064474406284732440637794686354168850125997002238446882372514680616360270231845419966978474928888767436061894011730970750276339729145596814627561864422138421938598943885110735282823832456021254280333128112771911131192726393749101438034595798731142473473476774315367313485468963739424465607965731364947109570240619102476321073705457167786612772212517133158992259378456884118160983339119869450708406009608043580296662145637461872859001687120391665089766338181038827909006971056273438170205970850782826747692898516877831230402665868361311484646142311480597435227552913205735435686504723622862036117716628250175177544441275512595900087485356012888382273038256530585950815172712712232435590549883004921120842388317791003778473616971506902920939299344897045972793782653700417140582505438118960771554480827711906353514534602513906221773037592927936374584510366464256171107885229308367421605343080405186232732901074729326543998863896455917844245555909948049695976065254797540420877817628764085131354948174854544549814922226733220743634225117141172728676721625354245644584476630069869150442480215636962664601745311107158883348405698058774076806964397679543665093613226735262427125864288477915603730787168872823022652267756914045078846967413076850429485862781944340816587659405211363948795251341550982702489207759373856970140643008387580018631559493887980313034810196651648833000805107253664941658656362804106339657686204891743451498914231906448356650677560639343248124885884108134036608022536337361073431498085655003302617362650504384588157460043522619785020629694193978662259522660638715835336041448363578335098573310648297124004711573736230648738906458925531433661193886649768384204692864753815851400009471223112947473959995993096712356124774397194740440084617662333277573562504085092885648184706569227434266346454892189329673234593868018898034214111200152213637509356940521023298441236911234297696753721515210433598051348819487953497894690120317229238835827548675777009081990105825548415560873538958661015467792264438929618891573592188986111554668923680431204688656377747871645058330901121795050737843004326891158111182860628984507718278458704860234916629875041063802513187259203192419774172887884869150686866721982201693746500666418553686931161087048333104999780551489628282413762404524582989290644170463900429921947741326636128072018942889877507576939287080606988305002322514607654157013532063826554035699477210835509877834775609440006829345284205989336709254021570011576789604006556340596373502029633439797087798400437787432198446183832078280937474995214493838247710985671950068857819706278041855181010197834198857966336372373581375487561506891139228576757390663304917619457187141552422756566359625196189018340500241794003745134242334477999390445691032141958050903358562933164902658945419555797808636126744440698415843941252878745599595003524452143683422879772381030700471348471497284679817644460593148913463997271363456411106262262639519602303117763022004376849274849073893939888992286404169527714877509029171463414004097065684178098991208892649690976259887333000325768025213519848981143065660666960858316343529692455660667060597959094702309051003109804262352940930958302061764905445653780903859574118393541469036306158080551726232221591118475328787770794676456818771106838719086046618053154298444021136235938958485274234214928383927750666114923688815902063127167299022400313236682126572642664734824810542064435940604471833393367368980960442742311028554452529183847227449871364424613823024062037814621374887458531690866873414249593835888619970394134791263270967031074728462298191966520318021167051264134977905774029178971726146509617977889832529722696766062793592546679066671694451726976534926995672855879942966435114997155343316290399125323268579575750319911079874493446876832971653267047047026534186281088925988405256192063070541606363478216415534362702756850464298341071433814815494390453994532210315788928997055115754598547873352359807225516660689348340436756431088142337547347345487466367805165742156158696456676311573274497544766917397220037813898921701747293967711270497251330283558580573703859113831443311921664593987749014703700495900925795300402287843503841092467972240803628496111892767219487353471523676042135155099760336641126967536050669696502119197195220928220189582922629208775185618066343926695661104078651011140075409873637587379974412849519366619218728931266707089526233358654626710560594611554689034370292471551816034357150315856583527123327820190578043636433643833067387011890799710658110374470957762001487865796473414496433442433969890925233423088430776866460815437334939468305924501620569095173862941078666667640550401545304567700146486407925336887253940738615735190108955448450666556324879274300753126665546463921982601183059325822360013792173645699896115105570127272314819807282966046458247619505395618691434369876055000657570286077764626220331021701549490955430558510765990697091281555888929976509127495652578548777629454218993649123643356034403078726719145008894879435420658718896232920884119455710020598525654584665474816878765097955715575896834661387961479631231603380898877933772142215186557428843892503315239518612516106902952614851801394953432096652180582675670074410628637202213677636141700737387205749451146941043069540333695031085552822159419904914187643248940344424283800277018313142882645483479566778835842403740703459771198506400411763223046610601887015619720758244179977292028935254656925608438501279310273354569782017272584953534310368461440088810017385560461762961621675256162501016456638339402977099455383042776023953867236381636879277695297068705760620861751977449547555487925807125649375941840727423317207755899795685756955023504373086550606716029133465112868592622997318356601940938694136331396724283235121550322425769320115893214635361791267876931107187200064876801005256773931691427907946876480833171720523761517815733856710354213602059447483926658164006225847313540187119243053469683051723555565912397328402593240626280141027850500564083714059363133690940434961698379599765624884002791529797776813887666420622874056439146473891116027361479844672601719450309606807716528135485003699923251592412579385793893170761359725447774901038883243203057169498015618254908603643448601050972050287960234949342543722605470528097884528083733214126336456248498804789694806102067524585384610004479386729523944539306338749735457670974917139911496075152374420108099767558709742631993405451787295953586529669705057537756409349879009147594907946216851158597140273933625672512073947291699166455824983461777054106921250128455765643873808116799860720623958177275672166684128253621367080872682860019998752068401084928337426921188925619649421893183930763419205244305918217200537409629129659583944311152791555387106912744913640071124081973739278775539217666705795175996081876253204585490580265584534790598548439146038024193069037758154622520069485473628780245901391964721748620790110905547553203123268164159614289837377158379873204675827545318737835800469557070285800145159986606034045914738325799337967326144430621604154947613293166666937934706891715994939665364820480543178713220431720052897932872222073713027598449972880344622945518695900969666544605942953702337920910953833470236613142173178690106033012717836222956802741768299305979923213134732201000904061902570686949090076842804284698604121244767810521220707926958453279512548430974966003059035107914989673421302633015025802198963642663666979225784438354876878332288516286703489212563051156680722703907058790300569736232430241106943888747097777824242853134816542159530628161030424961265100075474936839758879065859524430186075314276395514948945399153205277830366822088148414904800705321161380438562007030733455200646900756548077199726171308601174550206539965695979518281353727763979683181929516737539068482308321057663275282233481340017057978750402337700028522294957326580081617645375000375649108273690001725215245320498656991300601217352929254773726957488878010228965021578169158928786312067210453876192497381495125848850550447053485028166417976471370400510025536870470514059595091571455661577134288435829288330242335243115781945269068713154577076040671010428372867886770765605443547134649791887415688034677394367396578572446429844373822910146124264160991691462211890540690189571455356940677439694772549952285768062026276302675363489519456386504791577623508283522450701559902159484723137735131933835676362199281763906298394900887637037867824505131697360893782352075912371927512216126954457839686757167896607741391571615194498921522174741420386564224272997445211381992423917755736519777043322115398913377889412183076389960701055477175411011291260205187308205687361655200066407191185168568329200423394777533068181730239356769369298647286886661218839839892556316502888669968745374573834575591182332182011345620026514252221144136148177752967683732307675584010581874171335517074717580631317503957640288202221472589136218268923415036711972717996075490612312087397160337919919051402290249565849578801703861214266421019911360217414791881402520171067018740392292642077786522387601052670172003316300260382259137675425659653025351332661256406620862177175325940340715125515108454883305836530029770431639154659579542437150184742975976835129947916828412010745284509081448595252325956653269676734084927092246912022956162974381913909147776850342152450621042968934485284117290610215210057837942198870921022829353935459132006476291989424827670963046594159572943525371184587135904475808452904180755888622108391392699374495118405923001191732042399539659664930447494588244973673340613762608433888715842296940349793405899219675219166425600921078907658641160684227356184001355245151263824290048267687860324650191568329060819386304176833516256221660588724824040106116225567533127581387689695361096186328343614011299442074656144607649968344717468344150482822492138252233812093224548359719132406084648350866525387066770045793922813309811822412935530391072107092289857384131214497736949413807423527763962950664463500025743069248602486584539897889649168287620248280714157568241976301078184029424348012293433106382732681127635387646162685414945260180305967663797431587488400622846832712101063001409093862105112511523862197875417897218122375306786595776598069101899744875508865078682683463280282424407008282715119752544352545053019955853916419553145983731920421604737190953501817880688397000078248179748812102113444083984014332220166678968867794618264029152868620066922382454765508527907024122279901944056249882056470282587908444502795331251329261270054126879953667625726521814268903457912541870864473805424233276610070322277535027780925179121670384873203093626331031306565121440502264716526617679287474849298268973419309771571188294507475844735937602376676560855656242802356741533574154310747997619604668379887086644705357867853311854185759767994487354369925973137816392966140925303706380611165607051278408609112723934060594097087641954924792763173061778084739957837704580402134970116289892123498152338882584488969583979100946733294325338834456471153966204022951774967389254387899496334387795525695646621530877696080171335558104529935483920727579792763846668939577052136326888190994646053260827680228787995341181741113201273745314254142152861918250911989809319639811301041026760838430596855245548692472305083964765504878976604386465275698090327015039633197170569608887116269652783244472294305923323562798586396126190169595381171788882694502198713544228906881980098615395419880131920510395670155956198145887916802970002723047519041811378963899634985695494907359230515628242415775627652859306925022819385372719277976490592878145099337246562486458048517454234039068397703159464543492146729155042727498185659364238755623053519434613787713160216573581310470429380123808448804521144493147396714492687415261571624764482372295521559940265736488984521566190387161472005239014057606339282473432490812073879093463948854484749197862830026735236172401321024770632830816523376415878413228995552951511176348287432178115219412110021396094060854750971602203076043797178217091690516905572963700707633820146720085439355755089258147633557074338214974133176039823462207395666971015683753778230983605542799280104484734329046186112936359610191007034017387226739880290398408981439750158120429357942000238237204235457057256354730733974060790237703854853250429051077371977041347521715328858286181830852491088159682375101984857345384117006264951916862324761076562475641651937919467317505938507925839967185841904979756128169908280838405173673399169775302511944272132499817356530039704378035205125902854216832790538084276834608125860652103824336588017049245822406868719167601399538891120858066649926489179757459968995573292564617504341578339267849925888970961032641892530712680792333265235330268858293174588449442339405180084848850500380918049728573283401241603339695529838449438459084461380478376094406311545440679986528304710814006081229036192426595683197437847488298860297727973665167260435379549709808905404091065448607066873605708333591927941608132804955925263599262921445014493330885798260068429670210489443982232431065701066902624640429752757603095817726928316395068862589921467547325893206427857705831839907264496681515134651865744947327432534424661453163601258169444344501585814727127402961780610788153327697861178521669089560109616960623476251108908090848467956083725360107650297416333190110550828531248729700846572091985398812756367918575863593939299158774337813146192090333072916642740243217999208930436135163585260445513913188401694037033950123371599780638922160790575859484284671714039950077448890211337800079406423545202196188169551453967064574531264217021397293243845690960768119044699223956425731902643620646396124714727984596693020517911543774696297297679764030997642179871944960247695035104962037233622306789567665722858605629107548479426205562735636881995975697398963740019543701741765362915521554761986955818711201213343143092239149612006158899851629255788744798961442541899458928311712800063320859565094648030789122277207036475604737423260028425632839781463870743561742448040012814661970041161524655518339465556373776511659853464447178197536988440108282102545034388590004948770738249648874602227545611715612726508585120242113503478262092872686072594885312830865045365057218889155627073685325604884840702216575526516806562772438532821768674308896211059159077180433765984552093523874278990699374140178404959701922213813022307586046090358034064476984781791794930502363526673179268163512589571595304935408986624213114643274974822721224873739487354856350675491089331208544489204007581941402949305901932608291084061792929290001947708622409006729001896298045116077588130035466552124745890615023237158120379364964675355237310790424292697565597138505856676679768679352602199142943114444948567710868196132608251687462757531779897183508445914658962406262690582783465497653342238377407436307209047457292167753005004892755432202063624956746708882617352649114259375898300230640948486951841321002289254991307996631500933789778762853518972450387045894370547062175115196610752903953598315929281764709943525436763753737320620455241886579505604311656800053506746340894561747794613729383015346174956753287724492009287452427201775007877188769867496069741678321648080529647465552798872977806716141002350727095412191226950299497516158808782613321028287175750674653667072455864071972533262457067506795474316396833671883079097372483256353954644736411793047671114146722960050059235231841305108015152649771221236142349463135040525006819623878601189974089366734550696606924523099606631299769413472421010149775700964027313512659823108598568579312747426645787345580012446076573270664053534509035241137803501913725184078937280818986834091958574858831924762446975850741484290088921264644440849615061803992203088989274680566537410647813591816167514965069834364083769452206940429144298500603751836478740725428414224098045010771995522416180943512204532232119479941011632906116486764667288207164693568172281661055844257002788936578518871734455865089852015519543317137659727163929414294500597086867093471063082021210445083272993367178219341002802498281892199613791485883040340052828262762081964216196015634716890804609873701776024437387418145384568390636744354588836780287559877695931421237008065930142642228171795093047221553254600665773801735731080715853462113300984404731474931052875376174431696530959339889709583177542710287805367409726255062735925615434946370067796244967273999908743664087045238887438260340668175318945069377828567105586164025562208811181379473285515199900252149477887706552628230869532392299260582147925520133953446124752902995751460158808272307262660140739508107388495365447009912706564671792358955844781933062732450515782325511210641967237062650075962179692155434267069358910613018342539280086355147241440567179522496656586648081767187373007545318282541789054731183448486102115402302118332818962169464892616971987225417025374596768831589436682715827304311768635358581453194876499188031305571612325416292344432975973094678858096030940390432158055377863293856825812737359538731778271922193818976947480804471838630658469583328647938450529322110427770867290062158979058352846646118046640791995370599186111403954955991732627601306041267972363073764753985705169468243276586507734596757399276766165254610448519410349537912934441723916699701356104980990357108201630524255198426357039898478310012579492791196688451094068421261380217791540050441428730527598513930828884472672422419987552424494906454258863392013183202531157358610142023982011651723837205148691247558000732418722215188541832699060807268824612209795932255773083367818966891815413264113831271114024920316885542291360392667955468533575775483610186819825013258495972527920136550513248304411792430384453240052941532157003500922757192087473324764384055413597003487146841221720603883462650216298309058764910890753669841400200831576976305534920340001230444569738173571703926274534601302607599399012045156933429967035749801491003552846822043218734749243267615964925815461126706871212874451215422708262460565978270484299257314923420206703034211603012080828480014796602200035477801335450927956805337021960380739371782590934664568224058250947892274850221634861066595445042785912756758673697633355990448383667466463602235332789279992797026016640041222852439637251460331520367193074345604042573903585640550972512494442474798962360507596689005110339334959362901526590969089932505783704884566326774112794593278850637184232129574511258055127115521890449994848019323199270783849686189382235468732588434900982476327458666662808923316862845125113020276738612385969031201379587648826177135150520021927758964685430603333025978741641578121369744955073053427764964203659856139716868054385836047613920684438162258588494990153945870726157383463426171550661804903003677925484215944767632932523428799804933960104922018299825815630233766093843888526439697833099654153308272539907151963879364717833363580269392334044323071095996163237915584424562236221092397815611854864139047143262164958872653746332181574449822990525658871767858784959255894865877843565330850874537714077788732620461436961717294376055137920479795295382226318946109419891996768159268292263682518250095219306533238906624198872077112522150047937948602276946405814793088895970772447058832666171517881027173856814902827161084699627514147153378314012160686269520967215023294030356400750443811793269575201945938512657302611868868757945041398409800307477219692750893290355486828588798522298370260941954711075892488340729417431200512323376799688514698708325357598651258825685300299914935692340476088923424859157987439857956779041805448826349033661336164740228169344684531415732630638015951768204859928846106518873196111917553460375938851181434243128596037669436051664784434003526343530367318609525752926174579244781077051170753719892877633116769878784749576158762404239052250132058188165065123272939160241505877225768218719501059638345164197808598697663668333348305611938395842900034298556442974179498483619804928803009283837051947422303819797860398888063291263902665070969162276639072369508825603599272786638027411272986817560999139177402407359936670324122088685451117997953741608953703939429881466439383070545479299642443609473833795952674680626361418386192740331953425883757873250278912032311315625394906795222738901484928994488556980386665221196404544441361728458367105988153772334981139454587196384233595650419773184577113985250637902900868847753454447870230129620185538291742865522631752657669869698451649695651824511353257352105002013214203801880755828755725076927038637989918616468648289762671720088706329800889167416768518514069110804509015379972060334736156224683570006198105725262470114835730580341956568109014551523298283878132009806160395531326324557272896903026161294217449591961457768220082683203595209576101189315524026015899720542807437084136146451431076448004363819083971045581328642310735869506908935864828443833731700413754258394353914585785367621927061489011564977555571641802906133634220459877088922270520093015358711023750300807855417504037791148685407420931371598644461561771610785500886193519535179930952583260050206226232284156592818408781330538301189231346496491754714315910590616765625800984963857283805870425496740426644295971435783257860885630315542665425689950414375604484688263725186651109247938121830168042834429496949317064727337136684105000536284429560663444537372025872288288193345265643002586581798061561910761492350852794960666047147074295768091305161814303228146740959119775466437487320677848894120527404777101324293385239290580634951743224023822080918228633610215814322450728799131779616857434020294455021056921324101351210506332642856988089504773689240902029773500905848862900049802682641892690699653349022287581651708723026050372598534022437602061609480278042756867785360082204105111230870517987012451070085365089465301808177095639358872380713800930336218407290601907474615220470896472637343404036196863317589097078788760291078880711729370530464795508897926982116378933529274975229894947675029746012004181520575631874006470587509316271968857163577658446523919444180090435152790221177264839084860808203233269752378685064654638698793559248316222192421826323670737550871743667981184244973976690271744906856319737109854789986587271002929723124466517752931036982949544307645183314613587959180146345963731774619553818340068441004343661388970547510892897964552921726707917614044298796048089238252606258149372971834460283082860509286405083956956987351048558829070646967624424866824770686239086499780185933773796036465354967206524684603118510408141927649954962561276105970769767795930200618410544288981542079248566018028111338168007455456744072447526855352917666580898105817139950256920493684060188368990899939677449930822313511151207955247178340689442689255704225329818301338274899918403395951682468246023328794118945318917689966921866259568070627037170173147080242323256404010806131787550760894190620421437095961258019089797430319423202199109645480387730651282699743114409872221912227067670722339351812079017898344903129192095251897130445662063106257978155334565342098398493391598068345548054901606856352679273118500621945587582919708131057528389272716360930167631642645087044725879066957866860630754698653508800811356470679014339064319711661479902054617643219142214330837048056137072612172751062294417403778570104056273180685263067069396295933363199155514726479251792189142242916824534445565331875442141997157992448018635027039134802413035181949277525087848981920642426593945327730639330377282721967541702780906119279104401298744040996187046200259285464298772110408812704766266216357162953532098848281307374838476761853859517339110632177798421637293441892903859674194578389311899427221426115751316968116146485002204371299281020999540585432975784387840023150380380071733521356741743099658953544351430007018629975023611858939918849060859736814431087767582760975854460087823348040449039099600226648716635056613399507229140862434780036044754375665117794972702661358137413200606088970681260921941899812553411687607984149511109440501738234206075939397490955183540970597902145472534242372002547785963923833493906798449575089569201303278004953214332751846909680173048026319142171867811100569357780501830749968794215622126060427379158653677202259742948387372962071563110770078659182845593502138583896160961928183942929040829926360291288548141605773697228984806828403466761705367657350702627106808371218826690392411494468740669193454387358293492998231246193854658731306132829641475437757641058341107392313443682044275556995572814586001240210856088005450524586220293989270147839914327364312002825795506905388085634389845374949852187350380156521680212967934122751968100411767901843377756788131034294823731644635466617998409732147947709796534970977589184457916060796583001804796713100024071012070714714728558619452934637733577681805183686805087126202991604800425776862491591687112850820644441401997765581465936960760183711724363966212162353053471867407866014832071535370444907346934516422995917295166362103448355333179260158667453561436098543028081138523764353564046944621724052827165342449335099691390116801577732776960488318514181951396608167888956539828313434120084702504802162833143339803196167480057847268098291140421861866908340949218982759220092447869682671307210321141067129287072666154809132173960400826695067953337571495176523941447574264976899293774466099662285305244168315797341200238956586320560303235568924346759685867381251167785111409197356289708001248026899711039976404133457098189552549063224096525741596997672373755424654238572370342106957808740283830960660834373816445872318609155824277307488329459494868459459737195957911895851054001689782620132300345209847229650579847484999865964566284655052310098000948540098643972438925158574143585271259886343998215532549394712468800145896974449416097760590021420314403383967678900328620390537034799861735699876350842130183960212061482064354079675116118783254275854346342128308255342185746918497489557431631193309834729650071419698129333153835093692911432563722934252669939008762878516582148558653123310444382557963234229345524764905251770654503145861273216817964704265247309138433984732759112299585763779275807185654279424450424205514294167649556484233415700773833938486975452873583138757667642519389564400531459145867964274501318607800964195042359224858532575147924557180859298978110678391059756059989205034527445321562987174334287867843611164858980892298537366200511900440516417373049636329663609584004917645312086365349780523795449451281939723495607485351393548069382530982398735800760251438452012005985989979973155366988821039750952468279062373750111495291093029592202883816121305046621045340161176815349474043022975649938785418251796699925721193790025802188924510615100413837164535559230638057260169718897184022132076301699629580332539545739763803446576274131164119671160592014558267171690211586981893078445404815958140044071666005162193742874709984346157979449618328406767095669740721420074353065798244879716815083281248715865954239254742958691324164188475729745803692485778278135903872647860171743087802930949916865735565549279670551342513044817808412393569735871183964521173820758054335893223471743084278210163243455370427246544528978036650138828438671676890487865221313543563165464672392727309824459339161266232194522885462453425912700331627805305024743508810835435863682735299649545998409636809969063563410597071431232364641640617205094607171721029483894513757873516075349463546110414522279651485543438004580060974495689216012087654933497854614645384972825968139124330240864485711966763574588624822742066698266776069956762882928535093156354034943064314308092052644532376955117307275243109975380325021005607231232142909302865189508218942057681148118816681562117181145446402356263279569867437503800167808242676704188737302525260851151347761235364272758083681244305483621732425956986229043804774218631595822766692447594412467268218419540180385112544766146927352488978560443456920771333148681341543135501143442884208113462233071476613625676561455036066106289032728946610437763996254309764522446541307448056120886063438935301296309845967261744254411784221725686885976285953988023654047203352412324164861961283585195677682190797451577357314984418684627482157416849022104457770814100830785655278242699912213083385140070995458155978191388980113098734959821912403142194014569022288329538059084514202546674189958510421688621731263336788750643605523323125291440708061148848416568542805991338768192068434320667525850496258956097905850114292475386746394213283764556804529428592588709626436768337002482654644326433526042065524902222607732419580349624378195424000682861040352435025132765991321033488340481151794052524986932639305304282439471003944271440250471069922353456207108156598335337549569152173180445494310318549224426743320542659876166402728519278026709159016108873332036923077613185680345996804210863614397814306043616104262160309799396349499274263496011158255134933688242042040458584652023332291419115981908507262516229735583036986248920307422739880769860060604808237428377743327369743132673933193727297157696840584369634658148660824048984395643514976169385149182713807700481618537121004625837871506825880476126976242148367259071917916313959776225863551887275152789903334181434629663633340321774458090125028075490218471028370997859184576111423666045447562800473269468991314786172926233327628827459588594015890162825712170332358164893606090162184868425016481402999103396250475953336269404077265016250008373128031417407563538446346559270272285156197723975245346632416395439542521904419785567297366516961976281411751100618907580265490920596492868542276138727524787444396728894116507684169415396610104498849588514741517747248108051649744753152923337390539540594299297588224372781604685127534590098552956530857371150653434625224672355208864498061448918603685256110060395635601991496874088163119947092368221951963925893768462688179852145368375574975956604339109860494367780932549166087957573417986513694425003563650507582021323340167476223804011933320195863262133579326728528895705691285428975653352721763871768977415769428070775545697697022231683134788831881889138500973670625815681630551220776359498880166860509230796551689225312158616112242807719539182352076639168445428827962750825566134713800932247130527811431034819948518327522987154697553116101561014965663728856218124905268493277084153759304539148746588362332337920423726966628715325326500659434848242287978990695759729979807607445755894455473981654395026683708085413985177030968791805201798004524298725226221858331880357532120833439562103798588814912309150152458648306921964197533709103500011080793816318079912112707714293202445949147393280527997624318330982389989863383987700832632960746988217579343880120264482338389113243196639765958544724374181216284146567276359159255317660579645666985933592876431418113937322832508303454095170433513275075105238189166320767184837753736919745294057449788025551766747552051595670692060323540775090791390999358871169922322163426918462645907431146774928626464848809358736550448098436241062420527085439552787666523921439210829005118563762926769244420789836385619320751509225163082249924900608101236220270072026561656955920362037559231846539841414602609720607570071810662135629267800438345489431642135495792642344580973684028237995048029605811221238021489944215998001981525804279272678982715611465186592180090865105556506785492113946225224962308133255274837048771881490334029448453558091446508646293728178888133247795553669923733651207676585683989086245750886735022380459221327428217752197709473026988725592193682246416297640810881113079745892859524625376385902035893740836801267140028951356693119162249319808236127195630234082701192102598851670013346599719278059209948646159744261219149298058954677349989938046213905139161430800648719992860149654258151782621494141218195205112565369950287160695206635834344340985229136934932615508936542145178272409927082027691726470588479369629032136248792568815560116209605556601956153106178441929780971507721499452584123402560380932166785572037365161006109999302994180646922808002874655089721143246496435091318821390170396958951978848571123990475556875929782830685441199386420242128967645570131505809674233633557389175615205076059380114876605432066084635572775965385846678487653392962814476525476164630060143043921795115772294152900976624389070216098724940565171821695182435180990526645911897879050827267254466436538556404042352624959840712738618742675726855464134729469854762537369729920498655975724320872690197992299734059433096783426539326344401390407696620550119993670493028798699011741526776115852465206678861628692613777951117334348264855051874419775802207304721398344078415280672905236105322510486884109839479005824349691175544520761502737108446044088081305022958046792091409934372697987619790077116752884308986149695313597857721075042724755365908073297477498665416379522778792047599062067192063854360562830711295792047830102004419115394403581668379699018315700030043038624045216370204672199634052302353440967741029727777640402809041581586181235659118906720192587585038887620831288779327653568962925238374850818108129457879367125560721245031635192710928710563314553197966649571590006868236061325451596064232395427213324522608898741672810607107421387175178942797285399454136997552520265382943951141177684962123235174226464500625671066180026282998854949239155777062555399227440022682529505411725681123091822354183227546572742486519373567557758554674942471435495824683685747294224571722151549770284208015907344544885923307014210384806881631977298085559928796712695044470137074939197039748119982318403670481900131724474803727139470831466137400396006699227005284413004871164198021203981260269539965390091926028791373105355177926887259066413630499025128585779698743733714731829140175446521356733027004709061403147084060862037162184569738101364597988868092873249377625276767150449883264691482187894634981636504618936706938360750344273465978382185720115853397484193414367838867388730345463892401406292773146667631081056250090581722070739476171381341253558231287579271386754578178399507021430929449940174736738251280360298592444824871017215289428311510519978301564796214248180586456686209740196043612319696244202763082703159494853410357154599844075990581362052991945702953058803851392420007282258826171793962212110616164954237421034714537497282354956283808621898516965065404240646305767822556460813645966555124170556245087334012453498434408625810647369440437241865141054275814346443081040893041937415971691820732747375917504988581252233279987191017560888829424806327274713022004058453283012877312812833073001993660937586888347051892043914010174123782317470374638084503104798754832850871891316149550084328737747630020670556414920845479208931733168593716137132138481857414318119226755395023628000107880861482079187361474730078005210625440923587234964444141708774649549099695946471462964557367397795217657317847206231955812913043806349836815617999346603444401151338558193640451401888599667807039051382422273950636522644537010890894615571326788013563650219803190116993257179068075050592831355243792310620745670420059135867517282602403888569149479624960562205154550105739607625711563377756955561314671561272564591379500123139881479750975514709182222433307975711483253445461828359349470670195757190561854233342174791167436658437000439058155944224187816346752230422576818202814446817929863274610666792833976313336660353684781327351385210884078811283971180162182481949595386398506794474194384621880360006543327777667342370547448266533148745619337385760970925668069627448959586294371478186285555805590301033386725899357096804918942812618598917459073004951204522679082488145504127880723931281559105208497861573584047286813281140400999074924991451863839005594809273921148858284105919627307872432638462533174304902889643233026628043788824821548720974164200357920737269717497692430430605434298611183554902395643896772977584426650839975506434501609719582533995475740230651548003848157097666932155607939839540506268254569807794009422767618497594019964323316092563190478443715117649937857372900920864938720876962092696697333341428259081498150174442626615481838999739721100686479349558084657570167274842469994037878922466122008887553063918622517106139253922044972282988580498510853555601537558131863366158532947511099083044268166296309407481252735391919646598020127256324226281340273316209900795460682460324653023933554634664413280992794735418588377985596958685689522484088007333107032708436599714082707585701448672243452793255718973631494700660171529746771738715393990346438900973606084725595850059069964374917170641894801660448644112955359290709947212592596656128735114475725183539433344178652745864795030795638452237958689519543909994480397488849529952416386868223477095872004804307001658802090944456559093185609426404025039386841001560060865587341986935601812648685422523646754334799043352980661361120009819090620384205303078175464796884707640575875506586763526502900206180483054162631818193355486565026304071511985738476739379394196725373493177941413704835011541637885887637007670954765777719220422536294165529514753415993121983141143356472158279040753029558909514311410964091361748970196654061916770512395073600364015717728210321187660374692389725722493734428967345155434955951735933612727041071864627241596059538102736978892765727853369450315867692423572413936202498885024868616267918213854384486104962618176053506422706186410838287696300753135915682997905251160116598008232739584496110779317730750732524294669740211922868791603186856772709627724235788239914618069397649474048517669763660352539345839886171425949671723201346209722620490580218455862859846980023662150511764299822793932358658635097676310193551729648927493194149885775048424026546035805549541866273813124267383042041750727623365544180090209445494326798597791523113815605500528662191210958011180990938691204490208277091848440920433639331580070070293077365669148004663881841404639441010162152034418178042916336322191002812751636326505113999974616581299871519269480927963131491113543990802073704806407802399693097887629240449316278678328660294642461885193445599750176425639318572253727068433798159205825098778782779764791083154921302080839446286666358317164861538886432377625967611999357676507598312136706401266859214575940736811127886729279298923319462635320640016228706995936391169990286142672207539324899218467300893715205721267504880056468672516332657679390751436214606033248047943804074682171616472027922171951621920086725562324364510692571482455830285573379334876216830778572048869955437723970290765870754424081249313367386634082685372862232377762673269437577356798100345374886527211202870120636059510256537055350204098915591313562406483683258225521123881435173164473558344125127937842976437436179463603983738504017394639628969653550069765614886282449520010494173114589163898466843653888823264731284166793906984847792056984691735749777075145023494373077762943384104341457316271267901923884960894050288145061464719328204867160244140965344412748083064680805688354998871415464736542834125837986143453399056262370657359919880025682706746160041089389564423729912263659108306475531432108286157424095681346481239515779688657547368836149090085153849694982905299887451229644197357392419591714580550065407751877794013317096406570300108233384457174880326139936561356544571552369390008455305950019723906276735730447937328205156459165826663259791039465057113045833559615045368495536362054030841585025421721663722723654243138049357867397699985051093157397991759774892203306083163059679390686245862064908078014867682489360483627299760664885276623989812703760000787898092973297271289096937267552393157442690499045092594820797011295748946847980486618136943119753573103944704740205282639776461149606457324418503575278759409816710529778572328887133071730176460490317434088797903056224099421164194468009827299033531132708114190018040720545042195621710107302489509822006926422804321699160039310580391244961331866276254158518935979744607964483584378722991985954020413571468046376163477495287830088381500225128382756851195712825234625494945834992831086283047009609757732345985411379990815251327048219290882018766866925031245237352697352983130802658119830874083734096013643606147670659610088644773973971087240182117166974189370767495393384206020729994586931610290204783894925783604026144638534590984398666495522465063603842425140559145044920410446365033105647673165010160261084670062535302960833737959764320685179137760806464400072305300586646161147747087966849885174161817405369787638865001418531940790868682834621583352357451711549014194924622340810827598182522377112935234752653440889072801413721395826309007583561918261571363248895336883301783568860335114913121535416972419725419040258014003836277707510995133771027278332505925718123833162091625582892290813733961528577995203143603128457289973512594012553379033183483161892095607512624397307632913243453504713488248873364048316667245759097121053978643847402060416029265676791219919314656617630623012722150388133069463948627049172988769204612643261087970116207059833926167270870792866106251770474320771079878143352584308205646184769711097331419253194851668641771797416894064741988780761807403652430560927644327553214768939485207804253936344389429263622041388970321196848652199066362073153955788113372507955601487563112340503902108192687542108627153458298441164835521187159103343211490883220196861970501059729431872771038344952605994267556153768220913437325899146511012618483623569712513973900916686614591081374080607844597125043602873466590119001358668796319315492919869000209399445875496235757785146218171723955595271947111995768558123987918592394152137261857672852012291264861869993384530113324399588718664789137303819483757549786498599287490189332614301280730218067253134603116964768864179619135483030620127673609594304730254893647799122281858198480008753647856127250788268182209369988139986345567878287419826773244518892710830032450049654356746574062114715462907453901458585647789301690107723146653598146016246826542831986866345171405598611054795543382586332377973900401632517284033601792599088299619034227935122449187998611371665969053075077013115346651257896382058811119337724819046721032773123599732606269397324042008468604066343108292706628844282800744735039008849553412608929244041620734677297285279782424341437724717821596656082024315911926194427722018839328918914436329211516592717096686050452175991767773699942608001381035739173034947565667758126298793733502455577305451908024281037949874557308584550385191837565771999597593860258491749423712133463720637507601407809964801617013030707356671130211358143665215357985379169887824514132642384987983955501168440261772098249431621916287681460410138109723954185567267637621864172543961375578804764597520814527035742294414521227014183376376976639879833732772938339649163423680879087707859698786529420786538732828771936256067310743683850011224951056248993438291203451156224603494469921449672848428090010350010659810837016772459407191269464165874561342804474154155866044324079933809718706675026646770520896333323156783444822676340708914478975054827825801758356258925526614919875288128302265973064594080028098919510583713501150809561418629258500682893490703487393789830448713202371666540347712683224726109495932339288030056492103208177181774795174475974146824328544212704577692903778450445057035298600587585326504288742135012501766368785392109213749370676982972025415405595363290898878252418712251919751498452004940609243600686744533349826468261854277456036727914764638283222703777811649582385807662746849964989923206603238602397098252405118534174347769781683937918879071126790108733927247592094194117910596484682299149125377105329913785544449749026776812246530501962287495869397907935445611580718528666569632927418025962771024970304952444038406201098097817313827203124564192926212616495025430054990928053259646638344939646548209069197433429048305403766839841064443485947495036873353374525728448957828857579260739018741509121551969778805297380699702702828681666903543742195353796237433633209310261728782233540432317123966713960510363126865800580046194806786199455297212990463693464382727937204133638550259825841052638979733959273900502190961607030488097617902272559566080776499452107873908812232423341985304814441883720564196344949622572446858337227155855779796661621612037441836176188383128266798051899806352097130803272945977959792153660694094641834331276921796507787808742549688535031894405255631631241745830853182876157542072976617134299141132904243197899080291487626279668192656119945501478158053131608275303644179665202264037102839161521789962052828237996417834598984084278412808592303290685806135270499565337560752203588057359870017745461006586884578640957474747005638962533195313146542943029414936697841565147107486285704104470738018694325258530976132878990287817763934598739778690753901657204444584050665462458267676215221645906943292597005440477881362207597562945923231759225023053947439931888108861232839633949125142344979787898950771405243166879717620494737052054057583960663827880311505575944629601499624863688921143387129809926384547519370495721310949337229897019839936934723315890032806684074148949693381366132738063399687209605809654028692829107505861985716149643996555264083551352909400703262725257929858619898435360488842009996103797310853264149065526766473831422245623417869739645428096095390035567247773949500299537196391738738010292573845117160967388363260170097838939070525183090907328728045151818607325217975727560990691523607111889627192078603937118364573332006380713326828262721018713766267083910996886479232033718481774696356846673663815929245578740701478691608207838201353503396893767469897962823721663547372036768480291017209909759816445797629932409911466508706339363953791654803345543819194007880835072952756261468629851956065888357918947626083887593502359543792784027294414779695394039859533948709120020960761941426846184875259782095271545750800856846016377659027276437953274360462129710879009298726110779697523310735248509699018146975120552288531455158108665466200001314236379962904793434900611525753839951401907894892701566905656985945737604168265680456805534624920724525227192874772927663104109395066029454260312340863605434020492611534994424608118738363061947828150178003132813242197625805647286844371720917551133993566207858159867691692023896789779126241976270349661045385824412666037246093067269958071328850778560725930117486220200004490520775068964507674706355224206576371655927732681432379471323330659140752268105178980584781659223703293181212655315501060941630555689027754909513293555104450190351718259774525291959120826158377579325045975503574667449697516808018263603376961623878786775042300895649071547562277289647517301744561568209474033183161982208647729746370436996352338286922623863802854880605396622541417349921461459106836175598482895424793727068963320318322296677629303828535929793167877536579508003845200255969460109352687482118771244617244021105735770577195944688612238034747091293427947224119113911338266580183417205668360356929807549359395082308718532129196206710666535245309013437143400803345113847364080101644738531732369380556270854536583646170683625733201396926521946388673699637637210840112270468414377907745188897142951661373933290601007864555725682596787087214065549828481945048558877475827010525371062623198384006756737532994229193413514072005232011310867522928456027137061585174586376779801234749716146312514135023574738506258492765907003790759968181341912503716095924179788323958921491978002170305333426809154344929931267700315634109083060854354143505742234615231006958999003374378026155676215397902053944968341738419792076888989691557856462626549229439735574503951996850460498566145716317970408394398464838914547876158230000741642401449720397597868743969827484273629611951812546100161012482800222790154840318387550994028780315505247885287152968211996551025760263476809994122619737849942751948318188466528497111169296454703770008329245110256815596828495253965102042351162959233595118038749058340550591067753740824978757363306680166800215320450857447487111909343381713626378353654651522278471322155593091868242395447446663966316063235703220127114749614708104857204871354931816135607986971011140808990233780217055882913447064012267718749548942452901875265415562298467463602559775316676917199409655510592897529541384123470983189356189994284499879372847532810405693170943943587744009502532070453652739124633129648222698090448103246468827901342734722576848773076697280947231649433920020783987871802532927185450845587796528753455041595815000700454408386125487959331507324388795896207412017025411507984785655610993750745576416112743781602088137427876813319081587253849978068830314058645201482541585271792270053351821406546386152916220616981643855688999099064909334232150803836526682456826600142393577208658678680264164207038398239725680943564854385322709595622540313921881113406894167367668971579489721299756420370551037696521643641810466072827485931959425635995291656095993725735366801424845603164577475741454339921438557529734232149015684205534989303009089710795526843898707163223712881728463701395086072979745710816883253039271323545347245299176798843500285814864102345758304882577046857581875655555058953712428488096200044937475712612191752765419450277362237416181765391862391396486731184340060254654073540866165245001106899670769743128653127034363305026601169467922866674597066816335636018776885773156228405298645439458830977589129065645623186615917043236177923084554473648815140049011285876484840594735569480638623192256944496223106000995667271873776443103719895837170733912522347248170452524262258368424309186864805886864505638930794285009551929809795581781889295017169598029058728767261474561773283138943472078599803100170381042679380822919648919716713522191302430787984003725497921342020368645993766082966838030411478392432582184563176506868736097179432281679373589427136264601044493230614485847210091921013621451356344353662465701703785508183776524333470206289373219979348115777730944297219968006422875602815287096812206952665098869545866772197957727727445232793512325143728237054836820859730346487663868629044029880317651532454848374247102391294218852517566790996096686070182842705892703683551757540001150405809918601308497135183509610197058936411501829569554283455453593540926312154635206500679595133857588216763030677613985623814151059548005071365012756848634476296467291312779492787498143231599783222109144495634352992210880198689309449695875063713997354611140049007557677460438910605060085498807558128128877848593408405207494947721608190109574853960564422337323289604763553631401822390713597329337455367558808298335296077948426637115913147758949893983963242005065582228950956591867037042281730374858258884347725853089100063858678537448593765463000231133278953213836506280413841368783817856038674081583494923143140091729160870169848866108040266462522211403660027295347865621818316570935613495318213582005062558558761438441618178779576775293167790478157598848644343972871983114512465718476411481995577958792194796542237315019874595829620512001616734855586696350119583101133243894565286650429861829539082691549869951634884886517212770431041672569308720121941880105933746124769557104235832869954964807397892438832719576963993168745600192640295409157277692200609534840539156786321515237226255320689142007738208478835743817344737915070680038056349146256294911726430405040615219327301195023121256059182913677277721595367809755330206593971690275447345585999364532199637692858643986631906154829461934135594735462095070342158528896620984201167656992704173330994042268996349991463744220907096360753675569907922439154719137725885682301664238046395821191189173925835360277566632608499453582067399500215942201314699084407696102856282639062656839051863820261674833642220823802877527713436349755170001915387047207038877502753424078535138255935013773648430675956521299394835416300785678478814044302005273052981617826625999010029637449359258544224232025159358734830392633588319177515122747718057671207011732036769837704685990269346380453102344276171509500380528011056687695781802208846491298971986860332715438002273857000853029369487192468912564709796257697148174807912729836744677472984475217306940303547328899523485414497238893186957806907729126240844143315317460080030348906146369626173290864016003488767600739280998970946254545059249425192899537770864213814141783678301864061536344897819096415462406263574701535558471567878648210480369562082876131105281206908750778471249298950790176304133067105790565675409057677374645629873754834801866702221199239491798297069597720086582191566966873137635899628320521746269279847249810898128390798577185813881741923465672181736066219746197459690600760036529291259319312303106848147919279400968651631093033148942642992841760039988060460572705122856331417574847986137571431945955832669626923655748318823681600846596174137338839611078477829153470852869398397390766647779605480282611510954402552049405097874606550756950138660239763408949687674473478690843975894173144112127583324155369146006692926164344831779115062669317110590412753991958061721695704857738799177492952171676366345484951404958353242146452060291136574651842273634327146667774265776974014605313418820793592910105472942792361046439946929777412525333675619365363645872776166273274522000526430229853456284510068942641683572607514180637862179427704905702679474243409713873737101303935714467081054323601210511713466123674722735626870799738029769872616790506455674059676784197315121507190098825984815500491881091048798341742918925413927745196749508729975261530709453454920770035563616516069981048823151845525313287659575969618014258298577395403211163173378015461027969987091944199705044330920738779881365175125456577169128402873604020388186785945462691038032269985857218378086237044727971709352504466115398012945491935363950878557566577397855337425198994803040358454625463207652135821835780298485607251686227286105665105614468486511319593507642171462662304701897663872739408729171785448153197919805305832322664814037239252941062970339097927626918221833264472483995290601150910505958205188310488327036095353888212032329338593079993368961195554394121232106986433566772637501047708360701651110521165544786419340831283274132243692144777358408361598022163952327103499021381482439267731571094411173167863052221704267896201057864581979496806747141487122415186231785016850059673210953829073496981552652755295107453183810502727079858864906337473583825175197054502815365304671580731095849138034927740392839723862285920652267527594613245160814893764570783741310694806610018402089799687362592124909681183474269653037278760589602983231342924161855619073058125149016358103257025150454230800657179740878432300931345086341108123698551722908550102710932082195576244548030429487373409478595629654114901163254653516319770407997309796217441505974716636014689326360121832142821335980553146754508389501425847683337920893688416136659148274563836657348234741641399851740727834728337874824684442417326076866455964889128782781721513607951601773150886521687291651612796636014072482575482883722658027941603172248592340823770658628076807380165867904094817247899042771179291985041306903945120541736414158482711260050093853888253327268023967247891116251608159907863267009627573013258731393438943482940324358725733716929647165126963734606558068095770538403960116846301454615389028712924567940725322624016188052751081320703950439181724061628965265261998700942348297106892256569962571280314755967279848387139560348186634429836641759450254009092972083929397654853101409998346410268766691922826779293535356693731501983762144229601088903125662412947411408328577314931898750445883486896320414526874735290787200463173358716590723844145022877432643776340750291220326261961226812681038266951729958819666448533746924708212318643762202084615890946291664909211274711338138183999895089179571832968878460691962922798030972039209574153202286205191965795142793800696727128096388303309284332769167066170824128450115380295918563732940433715363806760193823035466992472255241145279994931838776154467249534878371327829680999986302534222190302783469741656479268001124985805448764225013982911506603106076158482345263149679244381454325145055659194433815305129578228993547699985751820897502998775183346334541059050929123344973823052653527470563931480946165076222045529939108304719130068504827869300813078697821874893843590027985097420427136428221408958971881801707509655032512193267521650513920061880326736651211690367997075234763589484652458355241285233000623362273481919575697598521623900805331876514027190967001586762428921394042746153569372682989935050909144019529625487625188524191435909792270393065750579025365849769939632255243029887168539032247041698139484448365300133456595991377122447874846778426185764297078635161266926114741831268997854707660663248649514249769259430102870030055840379472516984256599056349158111551005421694123296475508148922143558235045318450959617974169169348233796062890685013357478020361869111212682138886763145666621928259174848204366522633629606395089912889990624253992870139166267082456468730621966689705934082985914220895566304353896962685862527309033491685930886436652137530728097581493146290510012914030285398639208905080151038735637954530252002996366973299797829737669553833134531454134354197041550630967970646410024684207301257092303217406903492156055013414026765096059855684014683518285577390990364614162442276323121152736078536869912805113297651635209570166848792116304284381041308130354681915421453692612647663357362662540597161721835464843956984680929318400885519475097573027197713813632346249712562011144800509669127179549557781254587139665973954957171556041496217292473777210265168855215917520598641854907990963413966579899001080706151464590072734797563429754136695845204546302459144706849315382678550340140152911371000442684734912177358013327075275431376029403228668054980813466447287456240592805119602617252162133176947937724455411816541916997423989470295668024257363929337304804831577750984816546485979263812198812887600258521024133646193805526226416785356231033424724820625632993071228978101889028296584849292291137120359993502605712779866928639217467661637823668997884940223226622843752220815313732639404398625221919247371757622360823029441114818208167093320683421955532729484453703699556826796816469288125444044478857709244389450818380398082020570721025081696465604497669686024502712521869052037053991298277172865427976583812785165868156516060936189243191569272270462359432977896854510927275296377673627987228597503117144680810160874404569527064899868315409680807999315848873428602283749536585332828910243987500359108573077248809577070130411168364416994181127040354675195983847589997774680118979654997732888282441760463949562546736578005686461450160278918321239905116754357082610910827080151677630976340899361854588402712148210334720903765419039696040022348077124679677343694093501397815979238020238117533437269747577326795740201971607252962091201333683872569318326977906144113419459207758525723047544007047336842050200502744459700232445289070808181478881060742097415955085697599834608072789473675630489045164067664550715405301368034570069885343890574344699521818291809739199287675389791605320614663533689110727738303906135955246885774275342014456617649126216336595019740872120742860553971762131475068559103263465389483342156027072413750891771083020412650485008962582065873721098331935204442143706867992590990757417418844012527409084018616501167444196105581022747103825877507232202917428878746715419702107026720439754689751821932853634729289639707272674026850848444984693416847300720514929093257865207797296620480016671144536447104529922371310726908446256491087591341504528676089293875615929480941321539252356323178027132879121548453982292267145466170549707834898628828763558448734138016360025861035870545436884485144591652880709726910052513582321404886136512702666382511843168472563050299899638477073092201279264171883885603191376521262152961591910531851576801692799883526958939525522255736251274301868738995089878048179171107184902301342379309794434480430991857887686058011036603722496805283928913201335437249411694531883196679281968522705424124589882045079779276126371912691919247801524026334166872346474673223522769946936514436074553525240862764717741415689017887130422007071111144323641970809706122772702788580628589202562837772913091116536929883412756932057225644417861425425057461424614311516142849274848328611393944394815233088647401796211247776672128256484617762456471889551852607687744607214253356205579865279167430999142702390915415709230618718855532808068708853501006917448806211573036819150733778422776544415404799722837705141291214863080852187039766066307261738298515150003341169780416400014035026760482788005871261504235730222306362639740384662641784748437348957043926982603190845136519158722354305892307479174699500010694512697754331705033644410119418099335111990688980557172035343471885891956627587075526393857467257460373360570093071125306497460937006635180388426333826664495612776079987813669698379966970979451492267891337707397928871084754237615215544970157890333276373572996229207019161103250938923553194193290375051239545300451069231002281012472738247822862332226832596178206542207185337172947202819719267693797679808891778646832158025718557063879932606631514040415380879421341435985508723441714730189192042476980985733946386042559692456815019579113542027468974972233061919885411054920878653197983523336348407554200277872102527236674648370729040114559509844338593533094321939988718002986172225610773773517693416093975468510268008926298033628521617726909046295189934449965383260788439042642697378340910919903951311070858375990104630215740370639583957249393747924898364293083724798174723758528687822128692202633765804680743553117261591671631992490716427315502137443117754747498313414703979410175301448115295419570332197700603902034038734255987506578885770504376465923717601279612459191376454856758421104618390231105595908707807322366678210742236081533432881473055944317118152285750309745060402781786965387838813108320893504675469785166464110291620290801223624073820850773280873430433049796675234393294936665679822898269772314358677041213594038022049159765857253306522374834500070941402817520884074422945436775204523234610732238586615597522708592554970197837329884945169740705613110080826408642336119391514898749314015490287427340975180235672045414981557632939750593951616602736588167733425312098370384727737299515748176739059907162485671720312268391059508941439153953461844002306146210955110626546334685638594653158340394907491174119483537126004507794016040453003229760545506581891677249567821113882454184349999123979510304412468203016950098023134400270289647243189171109602684498263823167515790686162131024361696915950902224447094027302701261278066438418339275192078006478115019158634004415608118487740585555974186982073611201621098702031190778141569343936217103662722825049029951301543185241662915831875785599690520587070859972341480530767927869474623143793673119323845983758571851324111853900393673595918257743649496962840187042622431549893093535753949873657463426324755055753467451761616702689077119168143600188512352767622902738920977049418667405575847272339874085050953390722865245613105608385251425990693509863496680165122971167064446590466512089760241587245912655736162608405079640194812767127249581489575158164716420183446989368727513792280913670146911661016475434957243357520385273792453331175343382017084300051946250066084584743480506221302373486686459577375665320360007832413416223305123872614551028748581841166201471367282857376116484433705022174306353313821980910278222130991614550139166900635914236854098049973297966973749356998002392572477803899448888661262296101937722781721469862287321231211067010207555196877066040148864212835842761739063229003089068635073556595852696139168539879220407037654143820165681814702976603450919646085353103961690321970886382556201999881601171139224093772457080938536039486451329810931475618506867869943204191347616246634310819564382660458761393336644643893636741970745623310574267057041227505362594013558648920108907276222163967777429548149106838522017495157559470823705775142135978365991482350979305317553266162647967786497480902296926387658608341800217340065249354207660784429791810112217476530831805702983080903396695220676214731270126916875620335225703111549342192061156073526504899305429343861814572594054482403966304407215789129681684691379893931044425367171631743221622597020988126641668515209031816158385559394128085312116700481658431413952639137652289140385304146129475866211304585596968405126958994605797575302706840176198828600931258147177641134274118110961282604224735076253443781288758358231962587626165099434150391814743262761997529438617988962451768144942354608468458485430749446674637876041606357913384490480712185455322007463341725756662265788752782362869993242924533629999697530601485929970175529685659459450950134746463854337128793185161765050270007208063170602180075120088881594524723811341323316511763163200133920630575309888805469470720972479482750683846291294512758293511025450870853500349496295145827291707449769686552421522168611928202660411372297539110124687550600054891438975573637867043289764486936639336850319940050961572782624977571333469516578089270318673520878555120624580580312342880994274801607948756735324551978642417799042524402829366590351460899658820617435526229648277412469255982899154701301967007464740000482336842718485231174523625359198781459164175545671260068802489734252477445309078656581090010176658015357182585241448518947488724351422128336512252733841966728278201956543258235025444018629929364795252111048819008029795730739403821579592798398617493113880933217102837161674973162173602234051309274883612978239543436462537905904145915396628501089350062935111203539431219575578630188743178386663995734246844069598159245858069938102462258080906686479398126804509492821042058860132719099498054303069722055785293605193855605041507445065130441071677815960494123622915350764631147226658964753836201833883163183924226652424707060568784855847446981649759263573077687399843788906042249178850038646113672906824676824030489238196745512251897171311870808485624547722320989811021934911441206409022171351666911917648246597393538336007493928608508425825092386430425020280395612533396458936678290788591306252589572812081162534933137864430805177638153765082329432002589821005090788673134531766621215287356486916366732730526122533787700119320555928716346283020711823827325298482461085476376760661715165729268801237631237006779611442778685868177101884943735637919808167333501560128760378608238124964105537579599458320382048043685084465033310041832892916382933916839533070499566434403564269848006168088278625573120379546465722685074668834194744916344113486463671285259533715546563545991025475432915788457526532879033937009032430782997665696437507766196531134569559716628943376593949330638804506813824237062400653120871225518095772664400233708699403018008192922390597194838688236837147442861510008592194479185385401445097745873801992559250908743599869865375700585875439778377297377318146125045782986652634723226327730164367973351728472835691744441615415204376355001474911986836725035836032938089452785288822209866616188907739923887121416133976611154604365392289419717451109562827016021052419354814643756862287811335531966344227073419107678857341230013967863096710360843886735290293144973199125906250750633110783940985013230270017822796324554880578227870074220721771800660531975238004849573933732704095044557094765974036179873080550692859866751918575034789296232299155127221751718863175540712618469695392804086560830252934070803131081099896242936327150849625281073928985664231401073435730552914439602775046555920608562969431618560712581538760059418693281097802507127333221205994546742835476985558805034514879844771100238394110508282986039387396069785242287811623372151872144698962936298021297329121883572557230732866297895643867078221235483211160864422788979352269204766689350187511444862599746770316246423956091093158483436443888663209268647218962310467098899372194482231559285787797755041043469865103528315826389389580711269840795861869665900770942659447968209153902980327318717809369626536436009192850656224516964579578732096231281177458170829012502342330281874826195575682554561431498369113925664932002383946103319101263203375580704915266371265851959536560502396967180078415073241243723185312635211770383710978289735446617893472290160494438849448565473601455800366368562503704646739663081382252196479214897222404641493057684601827076870720464319334671410382939539591147206327744472253671003501178380907913536209863283464563526892270825551234997049886686879121215708739063514103829798551436344522041514827968631770069775523593926305697154814729510171355321733309456615054430337681651004213538553992330043581311719427947497182378320789943314241287912658832687974932275514754675350147538840852961747425302712360583071801801534789632430936886092247695200135191081242023410103619464262110099336383872760161803547837586206888144120908752873352809130831624336072082282916561780994946286968641672981203920854054458513838027934919379139491731124394292138477905977639000465537035783482418590108110414294113834703318012380293601481312974147222336393842368004046656420905279642136420517101841826298976862670567081503132553486158019565162226487497412501010351239529243342586284328143326469572551317538299467817597712867329992470360417981893952399985262528017225661082640793639187608963833473708071063417326270146004740132686210275232696633420469383877535227772611589513042710373149410297877974288711492925757019529446591818480799493146095660081192482584573096894005222225185070015637998427292852311947004663104971894348646200459757767633448418371240309070061736534497684807567945987501865265267803700378674229255480387619912067286113519580624077410543831458889392303271015017735081410761924027288369348136400316929109437971431335279140311220837166806956785612506974975525871143095645982950902789039660849250743886835412626807417621269553771399697635056538799708445367226399879890637299420013863289273364579256624940735585008488672339193572663832004958854114483242879827333008554329646689870112565774321846725133965890715326310891187440384237963007634689188576987903345449878481054852116704998064658056529432887554855704106271524721625427010110342416591959259461329322860879445695851384335159451640503436667056885705465278440861571439136153197928957909673138990209327151230293299990396833610423758888666561065125799235117764759479740120284818780236107637149467013443955308715803484071111592241434268577873801842858387032852427372816946765896323717083257980259725950526290628498038705708388207505754159084825487730749198416872270503777043717750357619465053336219487394161654167292195196868120735451217133627949256684454409359895846795960202055428257688349231776818373340699504684058775538602729398283038347535908538175448261293436140999360462358495073983224940686945188263566235229816727526003331415234206525660805505201992354864130829280705567377832442187288121567693889599895985804243687555581099046275112594029188456492462654732134158736185931708341840636647016308763587136584145836678795832974187191236634404221364095845022209856467999326746164860467651179500400745025516094236299094432484322095995867703087979185348911302411416701247724618944732339196430663926289732093962328873734126729583566683484486766644477857706808166913013672790911598194336133661991621219768545243811028394182080897241474809510687636069202493883509943988935242264333411021209083361941079039971563507783599238124261877085325639314081584734015742329467660420205984572643999152222806726796132206398026147481584861488308137541255010172889638172912449519212321773016182054149554821095744374137849086558651824039314447349128131224856869656468161163438559507638828427947069463491675155504858670238533514400132225966412864126447174533597473711694457590489423326251336988559463627728231107145943363726204159703100029503691218931233118807834966534851848281191145093863774171265452955627516014193488425732448935461425260561929704829043121898891138152613735041256998218043519348706724656584140020342498766466320620813365870837220101896614801056575307950606195715734520923846794323593164101323291815666554159061869322588923336592366518516997776507738019876522154269128963559791627050187501985041085123962406139162725023492437746161042920722152798250683992679227930642041440080318388027538915063277271878748780302530654720461222639267141981330703720587842783806660867481204278579795784947400007264529294069313923195402571799403996487008920504269973691603723904957919123968034345320217994923787983060883567463093331985110552666372661303514932310666647446565477579461782144496571312544284370842023391563778320927978311894059387439893232387996027938571419728299360895365537828682494619422312941654052172879450861503631495448579078499350330679948140386470881483271003867876798354370117594073111470683263284944520039092838247661801950759174934255941928634664157067497041306830395445473808971548032749515178736252756413582217920773513153186290020819781585301223670455148954129902137393431082918239209924091533576448201084677935246230849565317038487546056068400929362196305463130079808625434209390041193297971781096989624475945853805605957447938370034933840046916109989524014281052274444366284796029505368831196619024381010022606755413187766945626966840888771964663912030542424382183672931244257345215486571563361806624558158569427800165065536030691267936218952283283125679271745605827566596156834114008912857501108068463977721426345743648845401461506437572715949869692624447402323320426614801684773621711149508003841886000156767989307813451469744332350361055604695380377952832853301290978433520302295803907346652590684759381477446815152931464833690130921448563405341125315379834177990593065957167478173883709799496884005479937902885490672613398457057580449496780141397320555443675450653955904062577989102897620413604100794962619000923522261896292473798330719491644210880614520711188918471375705436295921478923678664039684044054100715411536701799611899737611739673798507918239928880801080849334824918086129430844387969014394397478038164802380520932383916959980604899367023896496829502054711063825101719429275891097603612477692932565810097175640944985664764730980234632027726015414956672906138482132276252948682137954806156873682122984247526805385586348716278299053070166872276868390994886871612009663150750359204809904689050252009601808281431922293590123994934077390336397622499384391430396319448131440386889540722598162329670896098232413380455275842044287797007429803084908391316741893628864156434115367969798541102432725956507406196527775225434854174343859476926237901764148285941478005429334728001534643729428395533055523586376435180612701073428668300209992590531257329296836378545678998404305840706046457071423924559227619842555590441431107007688516653556628300834237362119857127358734463736598788684791451086001069905219290597392300049846508695022658681275951812415567246463414121258401250921610164744739327341086515460419509633759235211858505094453824714955573201220579388399861592336645041383832192950818723379664084930768926812349463250814746887461080347230061316100132555851594702805029136370513251393247670376864555123650915104718985059180482923586453040880228906259026051885884338991207304554363772226261532042322537799023933719354210046321202784554080985059006849302662509409810348650829564575854349624719608582949534801060359573974961032288307299253676513301800742922200218454260767036675811552377764942658789909262072121081888194418745719334946838505818663925343445120471922925341970078180457538790392025955031921305785231356307674249490298963406932026742365130564328621204726608071501079224405633660067950426775129291727340514150323896254591953829078507339771944914396602691957110744545940693610883909977930135406891626600742996229569284185571635225112109050976055614998321245292364876356338414336790863749340700292021794678904804008389165437153173507337097630867053056221266286421008192508430288097694124039281534294063887778293855175332000458905605453571658661325659838798542790583147001594280777265198596926567940182366380517453633577557568853272905271473826490543092724385694144319956537723110428926942497213250775990586516109822209542561694993303124903247869446327911039287840370089137541476524934845528444117304579375757533491802521913625517388518287220476694854011966578705668701980524949227225404165145896457668770959837633559230829993145447410115701009693765297438220014837824364158123087784421112192040160046358717573073310066844654678160001380307911439414272329077320688226029805743000616973875961725726704826203368243569282170175230184391163170060593878360176106568575923035253521913829340049291620424977886534290936140091557764398459364650017416794483361448136038591326287213856099454199590962988810081824087153178526400940035624671970270272019349406085019589938759125765120128164828051106222487118872098181189770782837054513253673490105893658872279445693541500804459754333972710448739936847469844078324816255684421083790652803633069579071130875460746239736444577646497493908060686786511356667574827240234561126914404403890155090703584053518917209856934198604169525379834975101876684901802856116413516570196055805254189396734880468134536875510951094294008750658672577498963003419138208471732592443613814453785403544838068168632442189139316128135176975212404701173335706634564524369582244078758585211630360567917036238415030462743540804821363056822494561043785589549197629945806446386930635848683148343875540514892754797728734949695096032204980023519790226198907430045860389604984352096315030742509626484532953192863088979778493727361816717286956955574969137756496208246303033475871305048254562944889897610314955844009809731875677794286696777503651084117231628906740653593757363893473232400839330288631240322301019076673895434461424621818605636679728831839190825784894013216179471600580291881338788517240110055949255487674192965569029571445964031549509029352534858294564459480278843329703758841930962696025445504231702283729836315395785062274480968070061657260242638199961239115595831844506111434207940820504757612830759408388901417750842481058673383357291478508829910367275373592470746060309264811029680606231068463039282994097284330040059591011710982598620858267576148531987427294543167567647144067184052746607981231603901275481190382585604418691463450284360040799713969820401336143505056404914094306461617638802580176142995162999054648290118980483960856191073929421852988754877119553238677019275007772220945831225369230020986596346393247138300038799104629322399688226834730756468597340892624895230008526254078267435536572846190329841566164750753313419035803322434293289079456041520046172914501806213482299083279264004186463561176486780909833268011179075998127536750718435818750060607117446976462428455894853987614097312816971085750955081956428219986574311685142285765175451806495436836006215792198561603671215138607276223812845803763058999166632515432582100272387514985002228052457141042230939181621755960465974909997357104638572874448292497673337060145264606316298214133987254100329943063224610733153037939046947622467763891381446318323228170300548351010387424322897060782829548814353955072985468516210668915858965286351186189174403350888563410536115564472084736272005575151772547109267215360974524126737624661974317882978702635936825846707331636696526130934042812543811960725261457905103073378746069529799460841028685699408466208635231019991301709110933705598261958552065865373441143944903458784281004502897369988865938438899987551671423373987035478186661939458897026677583281475748406191089654000512054007014800016147358323193791926615098990297966793733434406046997365706806556830627869804715806684208678240268091357553748666637189874218299678977187799692388623076243688332675577269830998567904525664732783911972380081470620596024561783923512684444919664749189640946927901173418838056081395396530830614210111895257417450749007534996912258263061512687254798191052545070469287743625976486564401311903353955914141325025913070624453718810399367602316939858920768168740874392174535269258235344545248542285525881516884351744942494037258274080506094447420053467456227975005971960359321172000096402957351077340789898646376518302091964814861455208286029679847171591731452266848912440474789458667421379088338312722360819694754646311243697520452030989330129754520868964509808210309907199983820860062973845889341687325953509492881397716561483498514890146744935335220014670442152345806224211125733421129212402992521234283696594705961867842024130722370860141157999816282940842619153324131205554537720278884949140928022548322851956951151994553443582799730974648459234664214212940211750051796748604290607439629679130988654454762768301078950013532969997050841531118824918170658363912339378792895902186615069699611813721602321360298859836837723970622455108281414168803355152506581548157830531216147099392315044730993943749959488922188624133329097139300053151663468994928638408366163617758765963968183093675992967934679277294499339970368980825025773142523443682438280440922533247779294768566099978877837876670075204908447164248844692695065082445504166614417349010183220716526139318047568694358442676360398820106119567461853603608038797025714099872384538014058872546360891222134287062411015816800775564488108077040936132895094955060671737629828456670454391145276076680771195077402759294044124416679376097361538465739450668085354648822792140424833285857493751677040239560097421025516282102237016903550547393072258548022965884304794964904075263019521442333961918449959019239143765803584861293742363053223691799765160060599489941152222318518336068233452250697314177255849001100328077767409784514135751418863227373597102237366477799529371104716468163846036807688445176481499375376096367906984645786620278308745278500416304996119300062050091372440514090735698972719647122601678686315919701801591165774848956911290129987459650034447511047340939634601918125218966529129631510264042956152825205454308852914268228589647021312598663135333675751279427255149006542634875489861067587433247900034105977736343139868483972655560262802616034573610932717611333373188558739202386955512136757033238995098436746447518921540980687398448996730717217656854776569503803965995850639341879600528989360788503392294912318335810795316493568485285638162589597266633589310566372969460501825072348190895443461308517855029264286799808870021229626546806866702932238023362212867540151855588218992096169883247471228433232065215612949656230299795535216248075654163014766338075888013394868837106627914342209425652149808773495846844863866171301222574869083609162654050794102752619561742398983528409684773852431569452178163911655795675126376625830956748698996296868249435731588191286682863479221217196971969944905534288660021826849453363441231425264565643589604359389946400476693003829277434869225151879729658498356259291469066789082720076641516132168673027030592226781516326863858394494480890312507763385666320746526762860014045387592080346386878993593191482654106989297937642780857941393922174648580723131261095873681103281899595220553380534924460045827628889965171694644238820521575005344666062822564095754165095409231917868476681216957983618278682430456617931892890851790752043743321480992080240624875508498758212348717633433968165768666222165814636368150670969979213864661387277762740032297024994776978164675156812442209850184697001186905887941783194770431859672610522847950415788206735581502256760448813142735466248031685599284674879556817662337559943427126226062547091000661660546973170360403059079298755970136355536466609105712595165940705625336939658338088550536290900647279944772315283117838421179946868533630436673554766504299462228850128388357019130294497727288662460607703140656940018629852149017753372875969795166618303481473078786826605069013934824795589057154730585000525998325158956987250351376286631322294800434999706121826032898410073103333064688050128740318866893427433081806373665851221758692027430978644276422292191959925071969040687834962207807694971035692280273319298906882325473607610965276307702118111335540142612362807226958819941795821325187982577243281375249341130572614438852649843063244408021388689061169385839115380505815895344618048992632939728657530970108784867829241086754062748471808243543627254917310776511476146385327325229000752789688453481013889527274743579218926136064100876665742898916050428522547287865394321004432505800087050963985492856195308042821202492751812834417014672811383415126028899007796898847568344917806415747463136048415605627194649860481170339004294619836012684865008612307446903419184053087333725747301765651540636890689212351443833622727581434856975120584378951935984001732902892932311853730212042810975609019334972308396565592671654408713296140383426549868940443876303842255206242214290379908460385340008085623417668553407868423117201456537567062826751324325735503584849040446670806046549899348125495345120185968483674964343746857836354016799039120452607013404722436848499072564289704076072300702775096312912666791409888617386938137390865381270279872549314840888007228569111847785782443403566400701849127988404869792025556015732529448302556840835351683587260348165978343263312874775630645076087735079119690268702890126135840391325221261678945791352441562383115496185197402863208791802635805877347896783152078415284093874083472745959527444958611315412114675737751832452881886699069783464010058974402986907913008670454271122202381942127581175161362113699412695097624470915995540980795197286877026171117070520456258240086789192115524384595863047080129721424296927319164618587376125314336976154442344551984752004295080179821997979789839471992413314720669322548599025227352919608216737075175582329183548751706214816731270506242998695544618899061817425060206417951133324310457422008047539650530022137952500903036113137980782293834843817785088747257507394010524463421706706931640903758301984670704292272774157029314636702695367749997316206465646044794129573037456645433849491204771400960956969554145154874868721306634324582968246106517762656015917414649805559918636368086242953193250940872164451500393779365561996732379379125400534144454244439428624114449556932496936419503198239646952700982683653553633627836889920493622818269887603821389495486343299349238320774727732513544949175388052506288711295910623454659086709689716859928607547046776536871980107890205408907150322217364110333206025041346218507907616711766570768766835882755197699553268937766816727442368116302070384638769419195286207306565661616163560367647365638835999443566779587973838923403975938183469443440734012471025096948235448663840733961429044965242587838215691908574473182187737227732873087269636894811216169194596255393071463480853014988631689129559182462746559799425569742110054536888459856293563120768414717391364938033254812362554566235146395667042536401297442361140310880919917597028752583374047371489372791053309619364723945863155896080488286270247954669229105328225606340611860226137504893975971304704829742009426948919891413174353553818587212219829852169529357110331036461318741133013574673938879041759715228873567306577813621669156838648323506046330397080061132601106954426004294274406668586384789555068944244285631897978968056312996277485489590847995715470539252593374195071513857429524328575748159552394372591873719622668034896040642594676280758184368624169617757103530551398796154355929968026962197855374598685570065943180573285118095243342247898351388608958748503266476862140177034804994713432720492646901450222462262675398124215754508038976716860158973443283656144469791461016888905228739340787004714251339161997654769150311757796664677904271777204934839297386323245319286599194975795520850049551428797296727826854287586471163395192866374567115890142472893124723450103677039307667265306173285762473204152024526572625859801062782176774262474614666353711110002648119718946676598429200144211324652187190407664839972086321619448666802792817092251180778336045777843098009037951774210849535188620744460120487064670707900288838284921528763309302094272145961113866985173234996624969858603514341391678727406001432564544661387663170909428369257135900568463367081402607144012872540868773828556646588532614497093897346484089780123535978946114848535441524048029271620226127224944488752767774547971902175785753964133558218643337411685466057354906264905260428758891982920600082434724014950520673746296479271611749650840981526632993017725747760173860688639118785237588056055487660442802998386828048762086880798773619694861620590021748138950892391729056171724708968381865730577371121569508472038870087437996982861639703445972507273357987465831047555081007055085507798203319883051223545348247907442127582571658114273738232687953094472461862091154339724916771231703872006893048435991818466366143474043045904523273887760094346288762417819512780529415389654350198346387612931101675543627979971074774257367458425442128747134037036288106039991943678825440910382742303543648303523322596776160208923967249543347339496692164859861064119371940168399005472656908138657102267743883035564841064685129272760593512383409135985304073947150398681772559839423076860398357174771122191403470018496003018897013290550749976683631325188985742888285653126800767961858653465832660592205935851409099376419369742477536943459240645017541375442863827013416852661307306361143499557288572891120596529876390335520419923603282072603946598025372025326157058400959406971329795973899856258709529381206564336745654518943070343955391000335760689351001359643991628290861849470959806398648254063467971666965722108852110655302808490032616540633137983423906885628279314480767475246048552786948740101727588627211547314277936210008194749554191876077021312878494166665955928776551447062951810134264482175586599184639063411708897022687884116436137448932943635589531031504583176947629679925362251655537557844272146357039653130725840426624241079614484931555561392128876754558032251639649565394661204585778573223075197165360530356672140149324437027555045855005316848705471265952094484176398167312266547176973175319866106502227700835565954816893200259791311748069517794127773136701994762201109191046119318907057140854975818585820919283976770369060507701034420441592090454127889540264950111313106126175221663172390536841897615062994139886344951845113001516690309708505230113251405952195235775942856487239771783337849964071364001115376946996078279686298524171497574566302148013550156906428084070316493090368253739935088537424616365122409567798637145189169177677648174572428468302427091077125727192401186532618409174174605584880676327488023648113218866617704732174890694263153463843180721639731735699263298393421423677410095145673709325159365845453141303875755992507707391549065611405337163015000501913573865569436142085090686367108982501395827380129163679963902881317829338732441196918072028380279641804427573977162016112003362700611107926910354486107610398988081561282726745146912899365778484955131083855168993283505137438210549709579813449366602433378416142034096477815818710826454814490119267928262772161123500099786417464836058961873606791704487637441049515716553791092763948064335843062063104582867084821580037288858327204200444966822021925413138732028361782740568955880109642126908431905763283948251063536533007643742172036702127998160443665783272505616210048745405710671301008160216194350347832503014073074487563310024635181720426427502164878684781357033037404226959792848958585602995142750995676358423983389243163151902552009052849574857954698408865546733586471875303793527593097470290296543892950090608345220439228185593748323122361139716563947673245438945404174846454477180110825886956387947575482233653813456578275283151455345464375271024969007858334560848281515559775628818467692330222512389317141203280741263352634280467992546526396496826510659658148231676181528536856230316435134411243839639424469681196848821028833011580483120800313242717288279246774104820171263134117394066829510588658617285665342389354449148398715094865124531129201437043797975089600367400448932722063837990500504376396960981120510572506800008352924095871255890620513999563206614867241156937862442525017043116863593678920346576417114143849219460398263118597389142858334548853027370372175804689206436301477435433173206541080884255806776266235236135705134533758911342439338843883813270156132974185675514452025721319374520467097882479958008516428936885984467317141900290868074257860218572895027190513938836548331577292984937528498858971398871450972037513152805280326273011322933268056137170665455674319357829936321209940566725952982689313308397931818051674286402946418541717847457261560522633214448919031238488140823577570667802822422891696346175579564584199144535815309539415196431543749027190998223080390289239180109682935651853965263573095561225708285880854883396123313026261562772195303456181113843189855492089755787622597833806248415273854480224415913705940174671610840100202881522662993943847834338363348949551993224446676629513279794678910325251983803473253126609089682600051241710586196379012669510048995343596406429450787997516969527087412271632382542799263837827030441077986334008310182016657774235993908356674625207757706104080364185076121319099955174675669859480491049830697027257354924183757791321737823370782256361956646125945171988013926386562567690255969595792685666883875661355970204411200572787847688551509746247192089428298964439423249950258363260893645452122240369948746111935634269875700871419483714283586797518427012408317234644184443667451688428930701602026322919375771715254783874923947286425397569789564391586244800540889946656219308598799839457081290272362285740787574725292113227620630171397641987381713371440756725256714116529134451681528965832127312519536130038585701624130382242130988149311193666669151122653820819878458453232771816787043500847591354928124683601138173680332365508192786335866178339318923380158275743954419997442325254235577482584199030224472272996041413934613340203082538366027329748916535294359353010786301696298537742876249172898935306760207934957797150201797752671428759115574314157154748087623827153378834537514755212669621204594500714803668850373982801125985761364295776874434236328896022457428345862256699269285560430897824395739997334487668222347856588141967954824175747296909622866347955553942254216484020338549329227454634247936547804960588499761045999485450083833373481599364704799815829305140577784978941383690917711045645155865336205564845796272357641995105700348848516864172261839643341117878601720149345080097701083753589581729086347541825224059884452830800857967381074583933659022889176483868680471239321420553912362356628184410390540575369999871920337537577956475971106423475544545338401848940063988329101636119491514948774756240603561729577943400665423495362507293242388444104956676503120991901041201536082278694792976224668104896109667834880394510968865610877008603834252972107195964659191858007995434750558563076926639878575107271050219554926402695591683389709118299970552948348460194621655888519351858489798875007678338764973471998716082147179603246338235899751710294284272573983768340095928997085361337737304358001689244573408615724788455299645115391421976205469230813367928640706719866472452033055365041632469127946572705406104998645266296321497416980474237355648716698324050332530728946352497485038208027570188246718573821345478546773607346547477960181349784443544354694733677702988003307193846837709442123085227774503515546556981709751525416501918270460379438159841100231901062118008241659464780286082576348392914836702522817988948874027107861279281723064888988618749441738655482021242654777231806751269889614776346624137369200204813132107368210808579796172604879338658813497071560019260880090982704849499036235304571850525338301089127112394338028117506332042325317750996552836327363044826737031055186834668024049604626542337240600827172576226166823446793044734503665079081096001968349001382618528700863195728649016371033562349193157379868877490965617419685956705816422194233306571494306876794577889425816855715361685279559940397409940403919342607239835781874312312801103976175417360783338658541522982218052228727935472904757927707524227839443206122901577290889952688917869109537537798956655879547628349769460896824825979530651036451060240945971293905423087291883528918109430098835778429191063861262088623964387677918783381468330974808874061217036306751612841622922897935169064729011296827275210309476611743124440551495930180723511557569917818239483717728531053333242761742205978639219409264322836227365044247129576569230464577314469897324239270958004471608943945834398785999423664679184765084632425496805546874520250756368201827227324506890409706101310487205003523685643547373946483316229178568581631621707058177473779736313662119363737395328973478580783788907563804501832020437312656492190688697961925243600878867190942883713796227261782318030296110904659628685613360287004443498365385548585644215895000166069230135540850985938114790311259898049147470305288419992823938090237924690815802735265015433866667230202629390230049334150078658570592529966090235650594997324975376114857959345542621302755167877541524316046312506452329859249253584172130637177016085977411375877412346557428121963598310044529453947307579273116058497116627189183840502208650155110145389309040299004004353289321816562682934309245542297891425757032620139391067076879974954520834440498143078719138644601024114817199701670586687599959386714952212775223508067166035349426526644217915486152426111886491940941644051151509179459812432365502285313110603797526605366553975656302068617440226955931195961331248542717202606992372531076571052643262292693561533542108412655775721107473281611115281495449677206647971581073596884574170298109207404307022952701451490538163377703104629491736816117098288336596915216533206599847920108829455988086737272354042239035019792127253945725104662556905306466729193075187895454341566611936905319277035789007803700793501614188094584130497829452953077960850410692847187677469805917756169114047792568818671167832086743371577160855886458775622249203783832808991884402433076683894296242967218567161663876069825519500333427459240862179221092952222191161659725039260324480149246680416478406026685136932472019358797708999592070104746538929234907571308012079360170571897087246892462715568725386986258769385794011207661263667320477120822366654145931700299631843691180465440548251452598400540255957993734967880988328758003628669092410353958145589987183597309134757580104481470335934724354078335884507788691721469584733541349987295238551042110132984109652866953733935382277801239610882386836810709634682529591323134502936969084422433969298298175917131830214748201368876015802849818039623349266348036985544480400415470897420541285268469597351842611795582950620493626656720620213665316308917465147875957679006964119635121689470871324088886967919754076707250024955693748445116918422138668324008666343377315706322263391684764241687671541488963248370078092294255278813782641389011096847866948524204988866858122891030927641635220140066824122584672573592222523472111383598928484591883793152569912908786022797114951954738671563306259572536258563436488972707766432668243856046847537704873049747321529009164616791027730870614185994206606144951796737246745439950251505832660340876655114054731562015937282838629840725412505072986936970249870590039790378730976185767997692728031318101315117902102047117020323878897063015106774786120496808226623286986378310484768702269462430411810189301489936298477744719711912336250708836937217937507808533132703374499990506909206180373549278633184049691486632552354029204638227777093154175836983381688273134897805843635913792305207980389335293564504475728241812929915893678873004045376502718092340700110883927626593136696420022315789398156616673301458922358441633915110473745834453375588191866268009418018457100977356854997233511027797669490611101290187601523650919168848666590571553912509976601958112422407359571778801246270171143960258121872955632543880000934721248019344636351341732216867618213743038385600619177871794640159554293433567118248628504844822926079329170362658529126823898748625575048820461648923215708003789346044924249461732548896116758955213380757882601022253136925931234467844225498347912001698710040301228208666901075059393617444201849502188003066420478374028714181713997330639316630335154129539267331830536148270409510335740521475054983977485092012333797193469259363984926293807640425946964812353301263994605238631524173601473168180654842624450329991200707559912810368280116532064898260612035867707172953313432616322476570415466926974395991637314392759345842419902494250591194152986159415699103054892473027602872470065582312388207934794479322907388638995179158941495579834088746269259693211008160157781826936850523410423313813440864301156547071789960080907973802655775107918531076889279421918223038624983173401761025646296440047311544294622666503087844963858177089444285054838434602456814710867873315789021476578928764980082209196396193839413781329552568177846233856890581497769570092673784165498214672906931606870293686899043784069912245188819369508037065818799724617591211633936254000007002057197357930480750760094079851472131221683134943270674880570675667212862446993614822997999336802188025574261495808821092654036242782895111200651585534282990836175641639091513566908658201403297032682237455780241213334864907164756252874182629663182277357831417331246232691688581672806574707862706530788833232671585042295758002534003660256149291766241228083118732406804830351841469057488618779918733875538879499606403191182637304148094698068421032965078320910386541549139494010934986235646687633662277667547587584628372615230947453041849114273235878151789315994449542297467387765731334339511044638874333978400565601491973921777534593020653668372290339671077662242461636545962180672665097294146141308966140433528271111990333547653067872978914863471203860619248995316052509524254073610564334893267768365526039770347493183890984373096209121368038002522471948674655808603852764085865156130971048459280753447531807571229994642435861395624560523717165891010532203966059626139695960161907517822551034750706052446832593768273979709776919540424374227411349215804843340487064077416235901330232461764394173124802902841090003960601301824169515044662199403639363025175496204702206758392681172808616959191809644134804745253359659476018979556076166872914223928357446507596634976900523854834534122703402406330009990576522935439954013283079963329418684144210435923019610446249954739145953590520376702725313269307814107904613818481550846505602598324210677079660861818140003951079995251653484775038329767463978031198645321380382319256228151678722686305365550820074981788883206246316574374483642159116851650303842402137694800118351405929248576309566237219786527393272795580398241418807758219153601397807545162108026546294522780734038899391060230829513781427881336081531090530993543313525961486733432976342218686942342032907757424641235049421408397794944236966268406835322825384128417507012399031945740729858271417805498806526891078596830501543820860160535257965661260150183550877303873357086965250295576485422116688783342746451211868899832150201665709857339751033821310386514158486191915707333509212245580159727871240208955622552485606285074692761137452645590270460043360139354837379062908227552085262435281901090288759637157284318771646746011354754320478509366630621690219083922610151372733970181082907128608097946265783924592020379847272373264295687509698615753913221221533892663271910905830749996759027294579656022138881794107585748029745379100897935716033779546463719467431625738419354331858728817746551260248415398088108275221340228689229900714987491905384080021702132205857109291994059469401650120860188160694390132443126480604063287487380262615708160744661912856750772084461915408967720334811386760294093887229282563166542795133196025778567370125664298379848708667214093020804141969844993655256091912103254975333467798062608119698828987407554201766334106260028077019745886521621499358505184599838060026616231946957763129402098673480009880441594126576069127658981755741921473013173847254558255020437639904442875871610578922107054870317965335660539238628285986996753691866452808678718302992763944301242277260168522480228611301097126424765249259822429577367292129905270843346669937824777772237129543085285798608857982482016222401432683114287683001988376101715271510975576402025023416051454302397508714719978315558641825552495171983259224467744265269021281133618404331138284620276337349804017742850466437147154562249354820024875759679126938445379612416425920443885870356312020640369487380872095532613275184723310913788817042666920963931985758633908724969699753720992491057165600809228938025928876966215616188294712228964453854204026313117672815144485127918750823045392479002864928828207792520564750297305759198198552700213610077736972076693162933886705126519048660743657268680080552163375433154279654883087938208543565201753951344557157289625201963151322827266599840876284405719505308983823186334032158277311764103115117751307726527326876792736155264312932993521531999610133406959257327178669831207762484147494872678396284083468080394291709596239579524570249929042411786282557416142901321525946593412784958602703915557045981702348327063797492261439371322686266066684157978616693263340068896552715038065808468065039192463646317334731761272533504504049732450955735567480658901150362751820814783040389342373282578545359618456908883268517302956026630865310873836808737837327254364359740744374313899034048287190397623252366021655675810046243223156049922930613607958262664924768335724425850486291079817985391364534503012401450907335461322297877119354948278858045276337227844590237056702507733157166195110534301522593883528730818960379339365272307846883500841361517728451989409744495135601188144754940120065371633584584948254438624656759018911296504500733471247557181225023089405597166019475969494845936539854636821261043822910287147063843931371722030267803694127941445407299276819203655589683359473299960975038599422149694811557066770611273938526055229568305935310436062104080530904235469411592183784669074434287905983888272797119524884707772359025515495870881237006787197989455017223365723632925782236835901206607498645748252301251402837276900943320533829735519389144312077442541424694492795350864778493690713263480048860563212081802032207414426960691143034574107651675721021842987252038531426768447846212608551273776506072402821199368487769685321725453674196324164189272933817729431626003227664336138495406031622553316508292156998524297409244982881489516194332657133054943720845649958864231749777595712979333644528412149387528736636779664330017956124135135454574017310552335612213376240493812254613882372585182408635177288611475198076296254827573092876717213570605407277991219960861188529348035758037336768440748522988959803742226176815579123811130721434618507946872391434243291691941153096802201321882456525320477454601343337039369141202008936014165318880647505171458234625623147119215307366843087560197650599268786030609436643994242236822346357693420707935208605268670652420897186997581933862837119581233721514087749637315559575640342703614129171158154257691635224298185884661050144757483212026478606355988864813269074686620954071837543114144302514806852266672809654892242642481316882140010866997431301835563598946929580225652519508249764589652186671137858685513190608220124904975199740048509990869546323916269911208351596928304355907661003213060927107682535833805306572821039580616696299130481249680158238244658812469439763875550877489103172011859058531942043034583197149717707893977304383641887747955080736955537021493738942761658616636869394790918220169173360062622639051577513104457868363278563811304882869837119836351180143468397411629050612157613949253334607178971949416692333516621389604924582728255557419815944390715880216513450449744060541963154187640924978278571792643354037874619611715673707554469857070598474486790007628759945223626611537218255620806454753247389165066071029831253457846815486014422249666605256412653903678506127244729076352510233746042453852843657141591760420331096993480606372158885128043290009422458744398423381952100812575606878027500492068634527576218591073003399477152933507017498430160367619678525995804792148827046342382048282153049787758621048564629556627552344159537438496922091517620812512182903431275484914281006292743697861622396420492140477064344102947041689769450691494932456909924326569268017415780598750093197281975985486546891335255894400928271247987576403251246647333299302318399122759264311545134117229979298638926841742186710338533057863501512953180859692641377493834662708996849301751161766058538430616588018762523967925129537376761845607345528441932062416160885448891929253495376780876788195738824277863939033788765828822452195053202124391638486062221241846702476106144652667447477055233333970798023517302080508523062294718633687618025058085869373426498082560378570958542698003830704011658147527242733471445658738017801033377237147021407418632813593727430326295033280371934573525402074107206936162399438041678842713187988092375342902680637237060644469221548902621643101241318573703189822412985935310482903448756746297978175094160290286467257970723433716035164444818951187900449171033605560220021954909623664699409003921827795955595492762802488621171315996294131643748449436324852876587664463600378126343342792047146100518511385315642516117884924844271247737455988747702301507965841841592473695455001841308167056695487048989982633638391839162506171088873596622904277478021944141374262075014655392117606990305638678589690651577061153226313536806934614232931272516764146213011500229707942368423321489460217936150519278778158811350830412139556167987726735399934105459153120107783967849193940494436154169003510222316055034739938139193933553076061155893868570019350859231175965272290798988387915029975643580119066528646369006042680647971711483020673423172122457766851259328838675846664658683275943500885066822131657493590772486658950312206384146202985828958804435639233797929294129951584276703866912112186421454243989810360669855697018778364130147659122682281090295045065020194417551958641210182060110198806580606060644022332763814076630782824677488731494026295564185440008006296367709478939639105877479353113098540293177112115274777837134846191466955963481290966682669925382434044956715567087834036078357436590805096788428692142716587288947138791857275303811976820292166780629047109877276070116879654548227045995501673204681158582232871358000852490973790482915870007589068930412171346485090510025905687887452807236093547345784593087899154115281351767560774684669371597976722865626925111572935835122303731772597101840980411740386581983274206084182626943170441201187407413654439977467262071150556727873654954665937383272117635666578991494284695794617865454590781649610890559632828846779301359823866450989564627336723378161466400125254054811344868347105938096005260379284430964858042447870595116486098541083160036710572674259314492868787155499991970510452898804323012267818811739824754121924525543630427555231110435110775786765280623664608847231240752554555714213072042554864066246443857067461703862212100406016728285732010627357062764028305382094356455556454061031103547824657314762731240863848011119893879867749253318123066748055527598675426792393826774308228592563439609643026539704435436338164251113399965926157662265847469783006287955418562375698717349041727565478530779608869818272529253971086606688801722166725184533213778903380029404756436016904927540354152029476367404835335282697414448832208293547078860970923072284566045965606408773331756535482930990643244312064217644877385104085998901658421264547516851971332272961065635065428327311434810266845362318999285833809681942487111372348594274266627400056403671582351709849813567248715330557565844524049511969193466332300242682945696127625475784352663244983983485458523667094370804623341607083780560224396739054783469208933477940976466326960358117035084514656134051369950941214845423072520119836380060705080129147620091047779943671800391260866160940534331170568505544634803712379594824409196062952503021245422302939863717975211661142932419000424986822479555927833823474715275921020202831861378938219245430837972159232894331578583107205697121486570451696472210877271615240342559449011776557468953754392017637224393253036903824218616531256184208792285651113013660350021764529034037774080838350550239846992241868709904702303551656357593621457889340469165768349178525862356767606327941760665428895475850706431736071704350163386576952406335361123261581065808643774525447682802483785324711359723115796619348082884969816355276389163790755205382945379471716173825434075724688612426251263498405585581937385725352969823728917331383347541692910143918651735463186667289700001955497137834680171912399793303333234050558699029149180732789458564988527028761428575783270927445312776105239373364623356059730293019975741716854662919816739778160482493740976199060669798386834721655421875507243076950957351766779686330998883552001453448370510936674877517227923187151452261894545358831442101060384014703708474450356511742021934364689704538416461638649665417600413681460572889323230491429422852155009606673992673474549784498963986819379196046547174401149069940343942491965251519186362571197941658021903800919780147597783641406646709949489032640942411426594750733430586793750717569426879045591331297717799654113703041500939017167745750369566100124566046922207200171900393834416876803322467915309592062766987306680639526933642897306542377752558463780885197184764989377916814489218518848338075999958321238969549220968347964542585052598727519909538151797604909409173951906902897879955452366602823182127670819027509668617584536938378139479955532321283544058862043785312917418974231039483051251635255766222371473509353820310107702507928267462733850949725769348272008098797803370187361335668399786224341819778785836414259630176591172764691143606951392355539854343419641397718404300986290451635145594765892690128268248734958461767563571431432678988142636707541095878138735202318697105759677890973202111156446901711426320545613380826135740740794234156828156626338707758767327711465165831229693462055895533366367277832704483081226335899394939414038786430154939121193358850363267575624453056820359015490625386291828607810431833069055876785839968820610903620206831142910432437371554155117233106876113902473154540788210672853526048990288964041096017336775230290209938710400500918543769122460706586172169211867740786933190787280490744618675209448808399257634149630568873225978767118945578005437690347686239660278988262421590156927447320970427500875757414894250751844747211593220742629820152716416982060979267304225192637447307239944607492275918761364525924624996041642022574944101502173240651534010205357054147937481495128552889267155654410305031719498321117940256336397401546829436895264360410857160446694217399328158218189971877315506291499599544111985914188374389724053951518832082382941108024550479551198730415044006229319252627983406175582517791681736353057751545074296749836971466428326052424084971130628346745748685544658098591953088145697909694526766851854353789016600331543424345104215603923428062502264048591372587172676165132702462974105445268239655800644435768721888723174899664509120511007285549228095801637930897248260940286491609188163187936225291901143720606154698197273339575148673748853088821993791797414915059477113425177276381312999572424050854859688063092794345126647876566107474221375138693442665937988646895299522137796239705109381864827552416763479811678037304642984811033281357270833744424882201173181835135166236610396856507577676473906665267907291896584720545793448802457861131218459187939486406784181554011920334879428695911709296886761635831885706213971882595918911720325923766812564039866552371338921461623632094575504407599928173595991254415472213125937127853206433355136486341619179622949243558619271709377923416863632088404732908594869844162216945340796195603359524134817400474532449045038493500152488934503417089327390093073986869080625871517146987768314291187898159635480162947965182170275034145268576397700366445305840233682580048438831434209690412624445475358532639814978072006579591434173301660370125484498493297803819374746308653273144883555163838686206638921943568752505404754574434319572718525499922414349667986230932136414347934204771324941673720635921747917898377552357460187980540319800720158159526114686138299614699520125046895988806320534214024742377128408305524257167992455846448914386553989276473247114998973211807844433226128509599465324718931432763804111248750232655133157628515284224281237376818176200869387972660891443581029294246119181062165876540391395559418425039890595545513198865314971992643304727990850786521908364940437636774568677405962994253497614651001744953327306373341805625996189544444581162544957427222832310646164112679039702562376072431048896815644654613334721316912287381674023606116451169823650031812160003756599213483883342952541356132747212738995715673004890675897373955493668954060566946210922729820153887626217710844333848648018754067990167566304738350372492876943682519174223090563669112297786147217926865802330228109638231886348014454700766567529931711235193783684092780185133199107037697864278452431021344924179734767170200765365683435188388939542578397157869695464544647803862742641256236290074013678348988313961044342168357484677227433236431100958731651867740745264722674879512147930354306718937688154987274084746450540081736370652952765526109336816971782482667520525492480818222206888231143396364475726979987628726993957651735742324500125163407264533276515055017826928734599583567723395397687065495612351115151986096812601411476612967923014723221952466699638044328693557293028366802261199584812481066804772332803408457557301984466791709240889238705352945321725743656989389302783561247018711636478972908626373891056378652195847715645774148308875068699174548358766192247788428808364206662201588475746179092474700245358171482863429523619887500774390923433413982315115937553055994695945421203322792552986159284246476435628819065021081880652894218351079302788504073346299185263462318697989833037488465569528415402287311930927915310042268786737570416012836499944153439453615579349628258261367498499661230995481997686474284320421395771451665784356873857813008112928596168762651643598545793267834252047529431868336784618334282892956963986814274586725389307393554183798755808091975895400444641937726172058287649313236920853678022041737217610327041270389484178454235971783063795840020720271401740421014635115650658521596024154239006272438885298998288401330953692130437829765261971556963857035667818329191575738938378953645706348110531110952893863261905923222999743188580678516344510379837220215537550019518650751434580094714825849351256703017817416485333953221447351824601663428191032482049208541214712801056047192254529510831726104954452957818870719924473350344786012489112314665363162866988724472483121873691540620650009458487119053881952951018484716636904125175732596633062891700466351185565325996133568681362484540493901136721728509221226851476086589269845946201937149212762928656981665791938727770285444900817178318075286764024214712072453752882590845882317925625254751010634440287469730023872506159238970709470626356505514895557002062545533498094646949814553296415533505014616298526164859638964897027852160656830783705776767042010469435220880669358801758372469108686802163328724719736432962213984086709919095536997676963384587481706786585995789927283515201973646036976377320893147139586579852120682426125477933883127535628202348560232689171794356288439070129188111934820394831781333382773966377067695555001533216716724616899726519500247357113550794603029379136572580088911735280485230834395421110142318646593308938325080581006214146843832067426614747309481665600452804775295053310282989376700383948636045749354486387453147968075181832873383439606012823521305965043362209632784927896821060197493124619969477088791733667541722264170597571195282082434810979629678260253506324142199771116672961012378869953860211923063896677012675157632908957503917222852142303841077236407912027903073327151588843290206851701921932713388938253357928865122964272754946282760413086882036524443127274904640538914050170155128945369441353636730508663932958101587519818951602403516199244566342649315620199630873438180408956536954192801979305831370302826553254914117580015132348004398108282361196019698799878926887537681292954987216390710986597923616545752697043332459290397166402677346384712263248639228349903706806424719166561416746507647362837542429652782289294714453597086835352668233744908582335629538075686223004970738173327871576673466388956756755631355135467259608459237034607241575084702731497642431414874555469847365663997801203819303135786283738092898656694756891748286087576857957369798205764100522363450938571682728168394596000534255464091039762758157192405306998017999527910294852617627270530935463318253916706910119040139559306443665093167682957080408997800481352184707598676660716350100807966578579437083149527044892533740612177811064627313469027339769835590822461765691277802287126073983396761581881473096206871377469781662917019981219650052589685875910548064297081167875810687959799438797767112933676956289299220289006326304357696932050217806337980638551630499467650931073063624708923563656051766200053080552671521748980879088200638742447594927186102937385964032152764083047597077757207979324307280285248357440911113929687968888116999745564786986858784790306956628395128788041773137454080812924513036177602098242133334196837793630592725711447758624677813767945474389062922462351669013867574079572590078455748178890677510884637982963080123573318566753945866174874751941629647181463031941485846288955511362723505757847278908180982801270416434944601578793552230178450824371891651471824860319012845833726747914098721616815843121949918459907195863515703240658106847679405390233264742673037956975226689245052626392726333124908017934035513472729189192160139236515226999515133880763172570012804518171120885578879411458912414402811265570443090306662172918702685038040897929043024103879186122181748109430743133887554962885371069087251650653419744407360054391075500959991705105098672371437501123740554636508999760709562904310724451241563793736947484751078053781588034796798674142128501456142476282795590046829723736888936130332799335064305363166369710259064682003419272980775302641409778395180513306095754580412705490024417729990327129203833672527547482779163886623744045763978222816641429634495571426532913083436414619584355442027992260641382673753309033537800596447184740233264622320647662820769099122705104302024081808405037541739530119251804618062677323042669830106630196094450348590860411399669367632309934198551637381733970545670575773991065195980122316404726588240855474648664912744164595160791158836955845461906378760091146976123477172096251975334045265544397043525125201882565385524065983940052116669376229164211309961029954180587571400480434367928975007010791611300046333976355954649151658603160133277438460269121452619569241642395529819364074263013575141718509284193145012521768641549093274109856779910328254515844740836135809162192108890280501922504704962552610445808064667121936072492580133799463303561669860646985996968610760272466145417429518245123072537505362690681241827697279786679585152166627093694537017901627105750509457876946400118768877081800892638654022419889623549048176415731583496493454352212016710524297003694310454198050559547270093375732412737071296491587156112022962644446727014850369402290444467935115630556970312854263226528768894874705635713650438123054236317731419834832316639300256190441548213990282242946883196380044566219896930533798021695380569392107252841149399263033036798737200582821991957159112826271002909181457594223025388205816531651742717125395209941931971478293251366629162810413802675610367433573872460263552108979727795947973977834563086291755588258909833097021205636554400622373042689220066303841479468553740574832985092308460214208538409530544438898111555605806091389615332097321674326106120037456106187795470229383389448910084542716454747378642582276742952289173740317565083038176893343393591560941577377149696428141870842063922952449350067650157049337966039178887245023942303862796077599009658188233301208285767860367573552792427835782938608826738195459676683376572479151219535677865343253790345285872834125449727125982750714937329697760742680976763997619059052127823251217486405136930316319669309041733973693456270464705747007318666310835873951955733524158547466050616349856086845884412597484633876839888511434735324624649400929919659658246343536614452135306873593393560725089392443246135810589465565607347247178675992452906982552014580477183341896462408443537725725145011312787036878406307925340213683416152696077343890367799065962233413958297384836607566559598603865407491224868124215099036201789626024225086168855202645828045690183264563604475305848861308926777920698783224201636234000978642842962848052815836563328012517291153463440603408204040862993656129286817866263237863649299855959608225664882672327639470269306823783928980424519820215593878589243255159904272435991669921215515364918694303421988614974868975345555041924365844185201421078165548470426252185122382207908806796072425616187887290209910407336076003526605473655464276153325476257009067123353635332288715127559160320365111305752385026950062704893877350086768228401416685315794037009243812067296694981545242334116122310018494305818083563662049734576665206854955840872113402851073168500078606443598399617135930321531342546533835047029123706210622586047810875963259194177309875277629561828589652476834266318178664466319295362217036882079649396560951012625375105026463343485894707178607116843443034665822531783702184917789942098317185799960435588698143339968729949644713129517633419556821990637816904405615135745901699846272196676755205242642968024390656549966814311490615004486638422728883679329306817995650157885615360211994364445981543108239649194109773672134958106643418461469266677880712095240301189754140956939091976755267021553332339375738335197209185261585148149812272781267827567838282364389925433665594608148579690565124740826806140872010962135462176249840317610313791310041331070828489129595436263195268236876183461934439883611017103524135350249388894288567494686998197350519997494272318978204689242596571837655226719456404874218981225548343612400433727768121162084751363168495146384415388264007218920819005242485438121577483741828685408783000668467379688650781568732983381247525503565303786626353847800806225319170388847734864337013594196645424537481049841318548699007179963428147692124086773056072132398399124798847576741347554023143974554379096807968024901164296680948325348140555704402526503456889980089479943614539513271503144772132128021696363636471376364387650499991805548950885324296759327381807305808557035508646686360870292689788438477716249210372185037654062804979645909374470964961586960286276677793998732792574771532749649731256762672001534255207536580003648574867361708098756914356666962858675010927274999052890230116169853163037993672825650489176487836210513125694899589017959063372558796779924305183396848839167766064419560263431324652996704755158112484313560873777494925017343419891663090799856996863087458950013253764539545294345490886937314858698420680030807680659893290857312750784122921118262391986928944001113362907499120798781431681685801939874028446899544630372399225903097456854709140568046597612032910232737023294780478078387548513290716413626002852595653402331419053504688899158833154903751609786027192705313399190212327762973838684109825574332799498695263711340318850294201834170272741024573513475255495610943367258959135462280772724722405745870382550204721175988407656034239817545559054125438672243784735114773036236582080004816361621647273893509340718483298107672942938934370009871510669250435777041449970592345132489425679885584271428018814159649914678723787458194269987330155849741625686013005851847013498963378011898073779466156687853294660307230699637750500247853460688196840794460199228497374846746384784739898426411366588707068290311050328488517452729190559337165881653902218293722655724577524066721688811512618842841674555729042997542186654877356951531491084668389980232794128137159533161560616277885575430504228920927545864551668882971335584949559903296772081820524235838857444510568464349736261737716640278335025114396284693271123130378404736562068835945954522484941614801988912577486184718204075790135896902863485656614004586200606406496015005715107028442759019674186775516410783822136229483319616332438901756841604849734348955096218059922751781998034404180786205372194593373377968053320649076984452259976749337712102392829288646030925475458975409464572166136740289496982805087775112003260773752296853403019765238114115094714908379087198371784124204686187402954496671962464040807628954046343686107748348290464301222877743588239347049394067208049584027730699894518116508045173760150386199940858333109410847202692157518432547542458284191509907350948670481341108164647222670180461388175701933725351332919894243981095100716668451723276115237951851563571866456383233572281611032017416461559765267224045978232498088494843295326720493172279422390209849144283193927758958052400851553413100561458883300655056238334287921066931795704365887901773825700373771604793574669559791372339172675291488648362168133342636041547757825908454061201372943812001586140605146197333450988529180129109291201457172732812470440883677912398003155506332830718974367563748950337999722985216351738481165574157978845967626240900512969943651102107510373382375132045332303111327786931617916506973892795525436385836780485500817244996888946303070770614297387946851842070359752904530045785571234662446161092212974831845168263928234982011002879167687502300946106208190053655383635543904395266290308584329338583813647974682708891598275159184380197182115225910062554597483345603159805059813671372852128591013129976896253658597189535236498992851084136998368098821002511358657941648629548074392455348107278612071089131480093665830036060501008655215227208132808029408505132700018043414857295811870766435461249760307863988144791201732265220697293347573247733162322034413083934258067443093995035337773238953119804194219719713692013816002268050467209063002641068008456180996166947919132105136101893969022765419154112732345829358307418463745785961180553712366794784793183675611914221888974563411085332428886021674351332347596854008020259115232340520442020523149306917945344113739989209341475517048809824965133827961171159417347797751368703411876064439097808235788566193654640819924849285259246889553624270021489936906634960287169781042895498895899735369858236074648261028836763707650444524515086812984158264176721669324383277792914090310978600001945305578752060169792180148216135132944658012714111145796883689144949434642037935981501337846835081603518825617357418417137760891393582609252121486110975562359209191479150604351059528411711224092627027465567588535708671734000863451746923031841829823393072729435712558569040194426127880065390134317147398393614002397596924493867636852978669519038587446354244818170886769751837893524877779926273133602267552024622409166647762007165809484657345844467128743587332379593782618086247387688906134570407897290519014099745851417795713092406778685879645219817620494790370750010310121495370753016823465214014839091136543440172706915583634922428803838777139802542527388787543117907347015260589731484390174652158419188083779651645407208490577214082338044453487256177243133581814907984477716280548259701270430417844142209998141111369090970526808683388826150793860668435329754467174827849134292185868722313357900318025199476794031354045422868919195218871653174435922274631577336835135092621353962747202172081854156004902793453233603285496609547856911964402549661510675379339163917018068217080866844324906690156501291571949350084881105746729839416754911193236532836467976998130082340635499400495686946545990212904817136042903665418171201508892652205178043587853383038987989279253997782952316626353027948606613691273905058029726757328867204559219249125926280258712351501111111557711259542676326423637726854372140056518094762207851594834852210912386359908665926129786911716760330277687747844308957220596068494125930156644145145033631345922145626013084120529427376554803409022234175078954522705034424958500927153470259213682362268465430176513529644094843479489977316093588977891460145235639246278485260597140208146325461002293161242126545537470093473100167992358487886600618685960724097858947780456874054629115908812306790874148040303485878908413217220546733037884740392718823891762800309748889114409408731949810163720887299794239885922482165293679053085528794036003217813343757167822965472038911549159913096184479026709196060701263501799975260195449473862369104103959931471182702157501898988842449801532783500969360059348287952627785227093213672639584497963418798488431162238928479156234504027004564043663572728292789096531611063849520989283478342009183204340939714401099849341414911720286099389326023806106303561218256698018881213078053073606257288118647242407138207871875974483257544628647744356795312079771076455849658857454809584802157788032649624345786568723252408174067423220586741000726234898721472472413963338620739395972383040126025255217242813893174499905904789631207745126625236890412982872881237373349161463651897907667580207825138289039301484792269763602034341966582377452285688290555878449173761454404676071447220432063232251948590565118665406005477203256306762671765336113331477942652530626603340980331995767124755295756430132846158096457724618303278802171748054136437677892600630343668142966690149826910949842192906378115746064449359588747730043212398268017390052281823783975423833811132521225797414672470499126052159055953139645911301799897266616035407768998658762113222986018901745123311192558062876084843248208581785356096318224993056529288203960062105859356486719486765944959668856543887331363545710014099718627797924177442168725450629143502772941158622676857039428916596578565523786097207771419267417837813441442226821933555653117651457727551596383951838965604928355365788474586024723497641168171857065006815752860003105790765799080559927299907393053094995911454276036123893012637389772744132671302645615543566809198316910207235692771059761644040920767402007908311723450620868778273576141840087056588631997720250736016207929195466163726686758423307154084087063935463041168915617892400518516677955803140596030127627529036562061762053490175571528678464617741454856078888162252541636038293651308561214545072027029352647932768975273580458269395254182389186871896806975428794125749274937745957821052422617777541493987483056609143319326447813570391870463663667809959449561381194330146056960128708900763496925951900000716229742721407774924826713611862335197766931196898609992581806803383199810549453259155525046632336553850451781249937704353256280928572446791584464759468910337809168425591922956248295567958658000582255140282248494661432277903824080377912106150965458794946176205095382705053628450656304831230272921149536353093827673480342395415870679825027105703697138428185129576105003716717554782460060413159174834861206439770856521327733113445931222619935884126952457889931542147090151223565596227289191991352174678788999685334843827044696413667555452412192527616063269982543366286978929701791349119662942284013453790829022923712055835918357533756481759447149840094259543692374185060135666889440147436052590037644496824796066578947296003056408276014406644469857726495334140380373431789069749720073257662838655843324459106538822210879644651192349622883131976775043252119601389146847857819977231547556992228880219730469515555192893254386098719483992593742032800611912677115827349063344163993837904360991249985086089166391488237320336005400656176082002688339906191281047068722649434119899211502589033246758078663887377404026928431319307645194037592015768659766442681840546043006904307822335190357081887356652725933573053892569913095614063927633544336256326732743472030504391380045670162150920739848275570315875036501182189707346580246492219668779851624329917436600910873660953189578772137639867643097249280566360533003414273926406005217333878462657241639612369231963160070996359147574864380158009462071591883870649218681351895799841717437250837613210167481364826636052897739728898054796632411424566148721735748814060637010574007326023359332755574746784022857252457526174169538646807183306289979055558721350858525066024772580133805536389275873551502781985977065326889363965277781026909187570266087330616534005870233214972171113839580447330536904558532034359536071472488411107101603990120894024852852038488111125276807657103601509376504280421047504074876749574513033143109602181645419838211840542598128167864023503993445158820023033350317165589567073627562755518953702331518018424966586261636763254546617407760567213810214067970384475031043553530752228914618208587627584543113509645232415621613718550028354105526859027338621846059455769451612462870566986971538032000134439051927842780924105841748143675242698245725115378252726802680090373572181763237497789119627876882931530058862803898800626654600373032976016789600557070133783313609895286751876835261378097057014139977667206513311803087985565302774024869095831555290960628491502202889955027178605590502086751489800158329817191756366293110941252861914820511029911883678727514247572675155984739066326080540830767906279864321122294940155911455147606893661850459643900379659074512294173199635289977111374527106499796752838077767555987821196789891058421625324673078372089190438755385414923947251279647990465524505115634029719396277444699656877469613943578546999703745863468459501163404674559171133428922290216744836735456337899112838217349085005114675315299906768025153622854100962654842421639770231295785256319389398860722866573117238709360727719465705535358840124523414825028635517000631037597887501101582584024608808471521474825248060049934521418983376766518743639029451091042686687602585882945092847539223940719724541301209018007443908281169062618462595396305147154785920988653727257255536489335195025736858612143348455924859196883213207038259801227539748249406889025000656483114137283613171508297700571703066504224994748474527430512243819694003413551641144997135091411191923145965076396378482446804107364380006207647662696885904870029510836566909645050297598897770572849937997433713417749100090647534991165023178430663358901249411136247666186738030724168166266672363726952910996529922734036082510572073543256189634706628944027193664205564361010061139620666183997568397456636825498018609913807492282368534174146924427479843958553531262142834072523672715569810262288522093708381711587888173771570283567169667039842776293885558892718767019961573888186462250268991304656950258487209265968215535709762243758123292258420719518779900149430365826657568195264363895264396304640248780855709988368990690763470386905954683702837573226806747246882518587077553792213776296302391615292994626771744909710375071206496872176862332603874051477580537712128631746300329654982286979551376031184486769693449027377716337123968600290863493999315905299150302590126339468659347573007236974401941558824701484463351525014857414254905842703797730600027183630097140187764758623377245822142798362150807441994068171926521085601516647807426496279390426230684387251716869995868842322297095671823538331755543916608676105199180744208714342814454476621809397907053747541472253450082816125408065331489566551284224361651170293649403710969670185713800753047590664216672043229124425940515882364175450605818556525860577971787981991537824022559716829465945475946748237964024687498114084192083680615248793693987665381014413674336906922102455996386687331821231867134318338998001652423603549604528258829358324556473495439955688239125519875385930296255680309704503025106463672235822301126120579423377463804388065303484053079125349129208968530998378610917054576907371843506914900959337691893064360540261705529886213745258252023392732171884631506536315110980821628868506867660538613391073423527142025090096088650750669740266101587649722562955703895799848402630926763233202157757574711182558256032436521889877909708371118047857973756332180677108947180132533066594793842986986052471617208697230650060132835835125914016393080179654529902222033378726626630794788061111861836846236755478644895762276527576998391920667098344788657806718316497676299338227161254258271842431358179158376804050784966205293215150424890108526921689619240690636322915882153632723836810019425298945691084114438871362118418259744057150104918457395623158752934133975962251338757022653782496231675809246695193360934750848386561773132840942021980996326052862028834456785144292966885453584228783356249455851533290754992350272774632677678002845128112435717201130238010196123035497995311556693077993001376509064158779070217327625166933785104361000991209661052772994551917313789660119896510134584348694173424591301814881805345906907331387548007419087819627390398318312706866917626911768826928366955650279461162786282204046973604748378683986226269771661186242686476078880567078572315563635337893374822582310421898007435456262782461868052034321888514912918733046978920330801758656645563068999161874084149799340579389049035690119649496920639742789011752106457810392483457473758276995073806968893616744951088858287595608571514017165674025954714758702584027375696615763332731262749988686141483603866845074535006865501249294059083084842941335616351507280189175680259624959003494506157372618458033924890738870198766466120845964298114886090055427173987883289988735425160777301834861971767339923268013033168767793799218021412466056343380680683418094912576840597350442665681435863708760950460509319135214219546934427819159485672939695122941879537700330022687511594774724304235388376515706971764496420945874784542509570580581359434458221546471056639917997637492835643381891813815378715069241058402277489396439061993353183548368708653222187688923521944368249097370569597650373971488897861203120217489713905495150942711367045145259552415783216856896050064145944398943718134859960043376696526288584386546856906249103740528497391725217429388816100161492012220761417239230620296516132538057991982962912677328129684612589493164787732613358012486652797238688479449668275876083519724877631615339824691520271447558628055391585492525066874050802843241763649151042572092885974980699765263427675181068453293297696088151891362795751572148556151354282239630980591171531124628819108892137324002679216037267917743712537120765429080701220336126424010705850378699742753624680247449778939240841828651498341104794920150426865202466821580117622578992297888780075401243223663474066794653035997762856809602836100829584075835155291984523617926553007404630399801145022486707691580879942141682163100838496457103702678138803803237969025604662563883314872233173574270925955712288183152025647544746208523221814433336476296971314239482075031953909997398972234324205611245990466329361185628167457577361866639679877017335884170768620823350275565954665642920237107802657894491383952851988924164458824859745790190029463807160209123709337855033402692107639860468628991219619671417624219679572158173322930514645244235991555433755104462899197587361153107505684183690081870966393332673605391477535909231605592910283661327211177279418116336496993807504857801437921431552223502061419747265506190385155446478126713573537823136776643783066119228057030753918457562967145656137432481960032598258726037926216428464323513519852072719815703232008001357334104772779097673523595025896873808080313929399595701620317391534801027362365445853703695068459091117250888427068859479788317088747964687535185668914378199529588708653100750086300602762789550646780786279721397889677071268966802461212571487290815512644077593672223001666351390536719253886758390231857261329006407571083381933493673633230746829710683259570210306705232207352510206174421513354150821968005375142649149266570618849315462296706951787898067397277315868010650532130829846430162711794799875299132712452593391557778469882984349746063667381415616556548843239544654968091986556739891222310926155225105887727339682654967613312102057976758590538688586685782123780158679412779995170017979716904024899572563554811897019057485864239410674445971608716718068454912648101288268511544037338587337822481380635522590346111259960821487650923540883303619080137664954616238420119699868681989999611767526896807244892541333636109403213369641649114641334864640149395417052058977297056565468315866869225597822031337745284210820808129966548918359570542445846338694347034412355145036508638847731008297693558501759869695731351873200989391812271626839993522879784138982611554644880423601203607992344115819743221978287548785246555171201390537161115212013288791026928002044875991246794286607165039021507125386217839768084562966036299763573975425313989706660826010499334913014017153625695137928100388691639334148225210670719338013571540653524816894243423999894383202410588590991557593951896486662980072207136383136887571133991555934780546715603710464970012018480586910815112947179911974553413368868042830190192806142740853163750263566179270376328034755700406919096429599472625676806512380144411255461582337123721296859400188068170159634521808628934839757367584110231739211081682576176711644577659991549276692652188919048343856624302598619345359962416803306593702957837776885929251710461499888439706361501536575369129809574811150172030728040571742637198356780689069325429373533811607493869027274983853497600902787236996680792750466508707293033506677706192746523782874261744837663349758985906926606917474065856613654828765312776893980180042438395861335376081948180552570944585740311358501798999664825706712997914652899481584303214982731381626652745900339714146047756172425194015968849343531478673017141836198813072345716029820793397779536072516122786723543046408802829589738009632908172639247638505140010514563438543984259310593277517076199870735884505834139869135734630810148574811249812747517861468304213223349428543237750662826404629213795258918269562565474450379769641749463584916308433967091717517854701619483886871158878304558732952524309136441313064888136911892253892043727527130249545093924883771838081076800838691324109743347963232663291143961349278651868025810819043753004273663194731396719483338916973836631170348642394998964777912524647419500441309972598924053123294475032846806570512610680174528246569592988981810736640766329930474257042217632765308348864741773154928918642327705729139693809887046307649176951467665370971758589563034020933056034442234055666388970839530726646735026054792367552965499962133944813987499022363206425110626163556783242036464101143472978363080289513750770221949951042766178891400179362754825074715232681671023489790677348305504690525220659812738856114347446572412625997041795579022672274403916985912134479953327484120567107186112578406270935732707909178055253966002653492130009335336190608104827596333615445267078003187627719225234816222912599064029591790451903504083724295649203558458711902246884559286206204979481097465321766657062211287876290989448356695479953255979667023109233844962878913041869519916534987629465523272538614083912317161612304748841605225780412952950474692589074776587269809983624742259885493541002731495440550386700520836706182370259556656850147646337664476737286319535904401308063964755001055048574079649044245508069768731327163202854843920025208213231730029234339494478136822827661922163071077482306422769554062325634566825890420484878708534773990439920439126009351238348741116274836715533148342902022207576189999093686489803376464120324773641257254411579734453921121015957819355880444603028234452492174300469390645823120344178989193012789296152184307591205611067203151233074736136524848273897738039486512885709309288622254166465406139220473104938982592403240226054231231900798849775995780852052922218855016973558359920997127048841984879316608536856121772303585230497418462499429383755449025895417520230331159999026370497132685324325294951753824808599770853859296285794823685868149564267463780424199568838154911318242617490531038417682587350595830229774322142298206072386491437454175428944956802249784906127272853680822639862586044486295092488592497909694353326858025102717799111346417620532108888656506526324417641512102958390684202892246316341407816394173704341024534584525143011293424655962307828706182997716859468333898646173569902792318137261198133583428097790184885926109956793887494301307041284549775876153552133865281763032696455908563681441198974718733278440103845042513816043636128774482702043290519992114902775177086646838704411589825208392666959365090535387295111831377463811003819092445927019610847854123662929209602535487348357721387760699485055824022969212112280243261445337319073336343346466212293462938073199211100869380225329749820451157303813435612701856245000936647107348224109222493746402394272220989510538493560591822578373072657873406330536969817654799231475168463461651742602171388371270701939918087985484202910484307336942573463363482120561410310735882022773385517746891419673101240586650726475212472416694319195413033656229176307720385920442922650824628122364909325810097346522703021912049434195235266275758133349155612266638506380900399038517007738740759811260177517127623771855579370872565677371213132393798729798364084001617295879574766218455718136647988650602920957419782762693975473685723084930295385617929339424976763736896564390031147072313955619446362780865190279025213046602971220454330336985413107878021597089698831791015099202861977889248767169815614546217267452507722313627863187536579303434228168705736654733681285851685267955734311848736346291524876735855845764409147433886800671413626596783059157055312978496943304371415840606373421718207599892122987315934899033125049420722230154824680683309576266783395898245019373704051186027661828284944486975983068812645952400471430613673010473685909005372757984446003929273629522407122713079439709888835031165884907065472516786885507819584965194160338115061689707633616978126506798621866064989049444577523356525863481894602441728756101599450630531157603670616696521272522012569668301619611722550574321958609373471750845388906431521167147116444409824435932629753879685134743303199193625718549063478550900083438575916035322066068984666657272009886723892502660156600417787436401617792845041107605486344372009468682011113162976251901304734160228525591956547641846102051143177400648865708100333829737748451732250614029528738014258091288828919727690485158115359798550438976944503932787011492890620068867210139121526897197450361678163940547139219741319914991820441151616563069337064554046321032030924297503926846948719538513384410036258997367934933487594421513042791350525503868743822507159706758359359586604250332961622771874014474651871239663297263004323411506068707157918870268201573681325963272403277029042386180069066951632661832606539679343464462102528357197562019983112416330064337907661378010028473341090913376553810819238592811629315479894365545303044813989476815612944407436168800349531631786924454630258246077763147250823591506356260066552606689020047119223604541629643755034075694775741362763159919390324170886790024418405801092489336856417721449138440003429007584796431628838252476568908574844013300041842135741397701443317988488100123383775529611442769956497777482294762819904527468401338769933840227091621490884013424594354111672147622239697772165960214395500992823252132037540589093862233216515899730828843801490979060394620994554370124772533904432219666707122676119407233545176803966745546662101870236248548722191833265927569358938274387744835388931064206010510079160407373974190604463791684798969944834170748555465258593306143005936239422678951401528050582020768239243350146190549921000030655840294827878700972002815444711245640633581612343347204751262096954488334047039735097753268302865763365712674002004995600374672391537517703644398218536135179521918620085876753982232938397650265020088679126877677522523712816759119428026401250624158772843533121111548597520698398482760942040986811755119278448849372823580370807565403001476170152392242244766877057052178719035361009861859443115518627199328636072317758162147163910691111639443575798110174862943962122215853125004616302680156944024757577958918953382534502411701259956985641051994361497030686959323105443397779111235353176986575812760185795900072440118595118438467801827390396287528621317770721932066042012743489722652185630312205259229965938434424532133844970685125038319370816061280987059828890855643028054533395078264405934590611686555079455716529032867124986875723326182468907797567576080632218289625261035854146460272677600366606455759643900749649241658151055556366289752557607453703247050534894903454751595271292185936843773625688978160059720059398368492316821717181518502081682166671942608633956128416035203224760599910139667799441567704190506562134573638842067334233615745965723849995353551190613493008222790639452634418494041429886030525006484062952675408045598299454756522374790050098269369767611565124269990814255789418085729088508023335721821867211505252189093482543461050156089864651409468241512899848381918655073138656522999269045812809768110630097903507511951908065991965769688278634968128961913213108106468258834346528727647386679389178717758178854926677253030824241029801701213084275645900813639230085203756927128450544747939971104438449852381623447916414418765066029470352751778983856469776045191797028423738965705432037036700373656609716289748067202511176889957305800168485249774717195162035887201659830749994043908827124138605122821694828969320585995958749461838704472891333707695416099617683570766982591948921984232804372625041631919246562398082154410437718089284708350404988075565272707035222566972637393289581326628681727313381112990235309254528731522276333667435076695591687100151878656006078386945129650965629133760399644493472676299535868604086563234630845139296904797573637443954803787967549813787446160631443956897765163316203124136295672583825329334528579113562921357250817714686039608828435567364359317686033966784454884668632322926712850630698585645872911670476848894987333082906569263142055624948414372106753344844678208709670945514017260097992360826839939496296595946139341022132973789647044106032642753353821602229678993553185786212969795394176298517247696930830228115659050664265925402587111254757009174616619527271329595936405979130660149228336875275654035013823185664255678828608265047658650817391639516827777454421142561666257355308819690114546893418723296641933264809929720695917262509550683383113170068497554226412212567295123709158450470512440118512580845277858737089342187227500135000420058121899816893929394426631576733860587189714345033905540319589053619946731205359685302293092865915666921112710391767625676106686188338619345740498429824720010953513077156995525853615756649535061773932792310838039708073881745221814324706884730920531238448532156551423212517025598059882897684003174807435934554307637051090463518101207575099016513239060693520809065744860389242557981778228183428254567754363770691866795938450631544153829763191716637705896723363466871182630890656207425193955198392321918291782429751905221631651035641658306529793044620368288746025005291914741162541138736725091071869748677346780175849647118252015230745186960712673539744367306302892799957674337829165102822435846021898627751524989352114096163773998408422992041547787623847643996443360622013671087670730609159280972886032754175357027942673053999607829132885256970117534098787144608473296545021911624410093499602138913410289153134626233974931541407738643320675815648227545576910682940528536822276066793599694804954601433481112791676952027900575377232097929341758199100691824496922076094188762616334588725059877463111982499143685616022227122508673544183378402419119896915110117904584277767213802406723762576773347226454716686944921557320058743714127745197425152910469754884799052069002608087275095599614136152292138694013923608616382212450142505101950935031182579687799317757202228972151175834248915432037637287248786556322780680451260318895414132728239122495098504696963330503599009077767752673514067377213388303756331121293304000359772361372981881354220732981245090573211777033026728725419424265247880561962816376113262784984331356471676089065271357251494213437727772076339150870478009498543116099730225457633419936112266584014439931200664433085492098515716834431298623877186286617747587785417576683579120625705019562663902724055852555392103346579797311912082170276514439681248005787728793965982373231358230583036792767328564784106902635091022457229971464109751156434528371541468529212682288861351979540696265394047262302433842283450552331762636651043791258566716774902107059872828413766537706426737496916021661157319698753737137009096974841781847248078475022286366592690296180653164460561492301161309326861541684277435127613208637786970916786401886529643148387187024381314853259233726620317229668876635777765690370374805621746765534833304702375008854782411226880224748345412437142921982034203543960336654653008400875431298346907964118709615920651564430785927913903651448564725276612589937882014210997248562850055543443484010963337367549958844695283900746649603666418117130549867617851963257641324426571924286880954338870603470093595079802531297630456181182795072892906478402447261284536428570840395287079110280651723960013425646790792540519209852434189236292120111769106650174500406595353103638738088376089702154625193419681447569854838289506446312384897559297807945326526854848809860955468095000936556878534500530202085133790449756715301310458049133622015300952189046407596016597244175502938389519504074361563019825766743978689436488191788354715749255252869887983149451736636054182607593750445719388217270308088954558278460648173561257885216008533330877920869011966573773058793827653286055709437766395391678665629213342632083671237239368908924721583932257614937106359328028286653015300616298415464835119581301004577755629215890607485433413065067488259895698519384074258475192667329688595443644993106069336868951880383952251461865817897970524096105329067005455771652329098978106163247250733785244753849129193444670846995795215467043374392132495440595785958599461641849835131865568178870788841761800758263789776574509349371056452528473984382222739172617400621549387222099610307521332415673036970045348621239792287485565545243136495730622640733781238067776229905405038308524276928549912808040295658369555514088670717001681359272812258580270664933534105881099200447248516644105495092412905567373959263495809138151456740641331555007793485458015898068314391271312885446784154831909446638873928323795337540309585138615239228361391020818217846426521981504797736315703394416298876844290752983799081468084863981447346747522882035964786561678417584632531198736763592291776077007965898035933100036854052433770405765256470532283703337167458582451303155523426648761471514554111544798501891470899158580948012453594473234652962568285383574698415037124796464299596520764662720538556600238550537564626140393376940020855944330995254174135191146793887954724162506839039029407399341423086216329532832021078571148283306995162563199762274527344613520242816020721463754042000321656914362222222147663949294553907383440160994202237454850729832237213082508895029327365843475946979149502841343859625648947909362952823578659639086398634655682280656171631108921367998378990902271776314595926369812408668335716520451188985910430909999938788807892820834392022837859725016372608071489612961178498666654155732498432347152770920731401864788466422938830197866083701266078127024398784891493622711508530115343471530846628267278153433559846701228519810110620012202694160227583448544523498544544470832164427222231694396688801981900257238312025450459288591854384697592159254976865597285173792091557559487214712729371755452856862777172854401745786337102710774833866936035978858697258692244116324877435915195958187112180800129852001381424533808447939179528506364362484429709682421262455464537284144865813618843962139137606313638925290664716456926192293512083798908022525888943705395575311929860734186005887559113720676198534317148859446308900662152951920818522425287280031851022922226781767399090260767962530434074263110190476989178367525721002140291666561882232634031460581846805241180735270314785303545910763162225300409599157865891297184328718692548980700631599498988040697438230139733494349691755496179927999657108318574132117448366195664487717880604705911265057406680323336378520047897291548841206767042350015980527152085964638217842964948234590265114571892015650421432183628697513226836963479258548144484953572726256141794630816261649056555420208709021312951906603998793837419377628630333014005516295050760520776598872849636289473786330623240630336787767579132954738566682058272415992654323951723147642669751804101113006955588422350081418940653550459634668693339396972538654546380920062059938630302433754103719239182969516702974552355548419658823595894902989951546809288829827444683017697744442248606815699317706554569284998627651395529161018308135256852782003946340991460154188896148849243235117139956439300567691863833686114271592927524233187468143036303250057980608139402876170513050027225793898989746376439318312424205685577860720007208877469468367438521353176966290260769254807071717539734430317687485939244080737668853887401559780988155556862652385473134810301584688423038467287750349118407824215328543875198226456209440161946833542557314633586378160306193353669941986115864993850966826078216533571000249346206638666208316453069733390844653421926943296946751883163898897520911190959889962172713130084808968545031334388928383769794850161318828457820153684363086740793424906762723349296477356618663044736165928910826392109237232642045058230543243617688920473111234213240022390165422162283172775795493311155210917920637814653435929888392779731912522168186095353690641425857181805274856519514962647156929344240948559861313930033675977866009756102821334243527817906721366837398264043628361460628209475136321417337362407157666831567326504736530056219998619024118490928323128222937129882594477792749041022532536094233635736383148601008290314991729386676901815055742368579340340217001132872299910173902224942117905912937396568392238622556437450670962734403349924322320221545003390444309707768352003983598699631543192312894846386820367954070419493141737131061930801003562149087764484581756095093069334645575853357245392687077209291447419066336668531793081762751719704763103603317468329846067208462740874609763501528260392890104412243935590627127715294492405076594393968459581733871227515923415333194859184096833956479875620056400295991761284136290277114364722531730799221005921122891611263498321211850270166588151909031917843755856878966250977310429369356094173486866971215807618857224777985527493608186739984950010736719529311305546108909017208742877423981562050008812372082188093129554365309655809199814357425386776146360539448192304668781508798072737627736388788753459714650165943562248671716262603726442911772047415304357180887030464575891930028157881729744400688748500565293817291971943301185609554116337481431237213179638256530774400014653679287691976006637322629501809371255008382808404948011546066132437331372387543422752648550853573044737984823544668056034848056127387588341930760798149107218554368639236757646358013866932654992257769788496220762418714684541391525043119832004996310416069972596045693270069971222654964127025181093999933661095519969082255473079496495169250368986276367662617437274006629895213420201358069345856996737912383419592083722207537603502861869304870053719567286041326616187772161764863807378798891510646012094557589452968952481896481741220273847093433677887964135313317606356922395583926110474151338640273348797922801041845599313576122398542762809904181753133803342658397170410231401305956368503440908857318047895261702474284033745314799709301653579027459223126795409731072270001461334903619782406691709428132571942939630076332471978876649596040487292745203245777162160481758839093753355826119870321844387153755151389356806078769653354043478380671240587752954674612249907030195604414920919102802631303032371285930758035141167267588296365133998556027224303066170512598896555852537639070637613642253536793406877919811196178323288915501538408051359112822527154033764108837677403546021407464902391536585408522650744247096290214692519946489333882334375876742134723037959014252435476320719160395091858336929055828138389069895003811850689845666117360609407443103509880336321376756705316949613529625619490114062812049111738489328102291515620107934947185822260620885932157085365243129170012034041354659239523455813519162824612522991528650916102352874234706204424604855688180940573831587705496043835927611500809426236700640325984497466790605761006696998701111689153415363247630508234557819326585410138529546724546114371665123786071408024972580646303217856281803154946435009293208720745044683473842074745830723556307501823261266159562744732553315004708772555654792329231399779417168551739372964025764016042118859728721499520112146164305883235401316830709880952512763242931439477439190908053877636112810113718679325790483203443240957359724974312696583555663400516186776410607966757199971782921069869065931245257684853733506236777668592656417611551163348578404732678356799358700729653851655842867862416492786814599144933741528781570898917316103892796879652955203588220254275608740963507635330912211511135860603891855402719238017678236651211789725605895518690820294086479025823211851124219870057000014680207866470245262703893592132911904267901154702207087632031619006096573581908361715050170283260536841657915050135346665713938085281485501152375928795775114425003068697579581593032077613511388412375744517762212108328538443084365426664718704143150645462940979566709943967112718490343855001172714367754615825957030951258611990762261220671152423123935382352132161736861653242234052512850277888820907220528165300047737976224518987934266411337492991916847748659340240992943125193468891616378460773714432740756504647474877698819133644206597725293754914026681529789463674264209250607001809966070143729310533197249853040154899672366620652796826012524464767154993309830997766035117112869374783467460585708211305537784762125319215025973091410772878816541645006924848649797065727039369368335166346252443301760369274351824906237437530621101229378222280053313242374983656558406127816589124754263365030983125777388557575173487770402501484065980514478001564509989902696425978348433285044350988767452270504534151307961404106612520434470827692699396244040116094294252681456022067637425919861912632233223127610172624813694008244862073493867085973990360226018809130250724342975674687406099518777703131661338097080908950026214850122986784280972960872361557828985000440074878388131218555713662472464968061166457662427101160849618848907407199292254422548444677611799558325974137250343492989350778088877692559451210079430447491478820416860094887880776336649878401210981788709145340206461863667213884840819817510491102822028466023288970448357466323270846768757882459662204344211480675372535834187075561666167083367199399745168316245529777828611759544248625957535023280978479655139089505297211489858971119640014629542572015826251004562013552863761102513484293816663759120059187484710143597674720712612259043416363447172620190174389506062764110814585600438569323031490481010467514646758749574309801134952511656199301026629851303916731487791473686641617020646713512479580833317432810599476809321692711663409819129608000655324985495688086148469182852747637142057342775813735904086327060414211060219135424121146747961162518980117669084196178759164541166324674658160626409207149757662673313474542264448627378347958872183169264267141262888540346714948802726622587999306636770269482703851011799116214398137145402363637855961444419521241460022489314550808147196148142823654407208837470342191992595660473586334633651925709270578018443946810876502868619618674682529044161834554712811308007808741056278309550044262235823253189828275487727671121453388818738896355678044320329080735029817913270914803346829977947482160080035509448510938075327664442316198895336679037279024577171950005562843529489601295109248242668040614335189484694781968837186308209023411427639339570378836228527840870617267976401609063917924359531731272016888003710280754447168513125044972822595472681578884314021170822243525905987705444132221455101984219266107861354351565069169901513535205511449417102468356758208646136037233062440649432575692071356091946206498713490235572492231746648858953184101460123105234565337461679483062203635667189822278249916173104533919209623783554287367221727986309061604382846477532789759937990999532334173573857134820142950610784631466379730973370633753295322088361766179909855434888568847703930198578602894502633497821913468542798850121935974027190500664841015285609358005218605496561978767260872000172668661421655225577419372624268563040617451082828294769188485782063081518161709820826941884199494918412032620412774867567726145629879725930753170121845498866937817948477273039457135318901633367404889898059611323867309530499948749741028519293462140521742319641853016473653388277088556360558939690360282792209142337419699566742829028991831692405564732836979183084122081466481413680120777896518099919230960928613357107166141416096750050121889585544682855295817524853803422154427683017292159303532156648209272478578714726615593811179157954304988518420500271423607550202516297350019403817488037911651395842822848812845355705390926850109510995145323366564585121352295791860905528483688989084021025989627430825343434403370868346274286040691871070241331500800045716240901536540531053474614837892475812488162137897302311319980787949877331185340052234454612670682971871344155401534429514432213155727849903350834141810202962080858580217063306481756772625770405641607552753175099988801888954102492519435616035430482002054264128892417536139544794225939521987720691378551014104976244674430515880892615614215341192126986525377272295916786103829329774860541563783099077070341999603252440896384094532294646119996784798351635122779875799026041019057495443571783453750114837180315535139168834265616984906627679487243303581425557025841494013073263173750622549878686835446674304338739411382427059500277892839661038227500480606796569715702708759660044710327155314097104685197069055409417523350747145146098433599728826954690072272858166108189019069381190965543902224069164737557422260557766928020971390365854762101157081535249177219611624314075727996138886551072523169131434144226867584739539714048644501221842022362120638010002347639383123928318459588364486205684903920418073858940511759374511084005339395850102473394170736248031048469110177088636107540091569362458028089072502973386413942064914207518827617263441520196703073582245209424022707770978084292939881993772586153493512701625565931576606547145623710948438600654497776557764130503218335850840518195460792421261061669514452693150419164528578579055932783184086103565894848721654070801405910482593634926179326091031874308756805777864877015238949259171794429980185956553585645945187212435422966449471435833029739115123504624936305845983404462443399495419542096803315872332313908892672438070887460700480401456695479565253094062928709586204247017788569451082807213274728270219559725289122993741424011765364615701988693179412892319037864844583469146575185788143296766850696202177231899313994842807439074177264516855784768641145404965912639320832836946533242417790957594827592189818422723967218811652890945560097547956726869755213447613530616523725861944512527782455722071397315309952878151323322903753844723555499723120203942535750790282061658891902318715352538127356432952909480218231359066129812553022467872894162154510917922893086228325506048212899037252203796516713261383255084528408102030526134808340377837739743513270909492811839484988570943260506653971258662568394836167754858912267208493865250948433218654410070115506648408821750859722838391478792111914021444622308877161558766879872145861694614649769720042524381003669817510943252595612790753169400658949517781571670230167175456680019541091680105158767649161857880718688099322760708104277518252070796948708993079232958635726930734504443459372128430515571913662843144416869111065919093326090553645645480806039205355195695276861297596830645654344462270357277376289806334307669224638758273934426217732493373521999309819606499225860312587718675549509433087336992078300981431793177669094837598379172655615566942318516965475806243370819929066696892154479031886249492160685282370326406202410281352666788059061831226107793288254260937833578972527499414974166055165346115945438924059344501234873046308395755167236306351542779874840407873824803690753067524078411955770945295798729309211246952172944091741478327282561896129274167139577637586557792199908558109895451510287300545191320591368872105412469635334859368159838430130034877492364629635162220620823096603123436237341085476927109725169261968125362286080986576497097979245983486912198312374537042495338081960148278635027268898862296774687028696890107808904775925090683999291334117014802906436825218426141651898832137587985209897890849651616796652746709744648464823736261420089208952364174569165863175489828647221679922484397903436585942138173432932978537837495155694743139530300580197880061659865843801559883229320056667714813203837545863292218936073133278569572341170486846318025531038578222219890879685493090139170797941767356543994658121521582912106166349134260034397584762900026503909079291173834646733930784917870720378903139435461885973892480960924637569191803385075417685444083499571673912452483880794819542532816034781743408170571976769865294997811978333546936010783274848547698824685626942736120443533437674736822373753854931752459624030104565158692792756031669797261623225466129880049835819899354404479611070234212390650021960916886690672050271885503205400523761490195007541896445140890152934551616769757631806236608026580698479712175515083652039443640470227771104324675621529966807851161361673603287154419706538685574959673373934541540738738198567914601612128424468589992884770373061959715493730041106214030925973316107941221324258447189131669347353461740002152812214643359363345737274218007027471415407313879826037120578941097555230669677924721253949132515592024387084689755451727346316722306116289795096469480907873942092999888905622777493876071350250372561147343349699472385273119356798532551853781986662257199040779623866053419956186494140587872298276974434296417598833405100219919924929092779654076720293333222142765458403311365625638826647505130602515254850918927513001094249141660382310911413357521402615238231549863153024543605832879845299140919706318748554912069634786487686591117956449640327952056840853726963048019259040663359647405740219511959970071971678133268633548589588067276952083930240090817623946738108592712316544005979951458348766590015914002707305108131320774840649759214355378555239553797602683287825263899975220712906553870533597057362251036480570295978294450772258317322770694354312633431634333357220425206244128333158681501072602915559442969165502951754635113751247162821434541737310854503475365096187726074424341532353253013184991893648728763059442089326702214720727571947793136028840212871796271181256623398904112567917240288914322369722047757376865018314922846054203574418048252237422165765014451195681970385477963473064675232552701765449797034022793104517895357016237123709255243471094012907201282886922225718706794977847811422255906308156601179549224008231695966032466670669096855013353753631622065360648616841809045982456781983691717835852726688184121642023948028543638590659278921990272232055653761404371086997995697157433095107503193510188859093311781553642322955020651607329118151156528083092954196338506998058009883274559601041377938415059686500268760183199710986751990157660475295701101636551222387150267850339437655309801751316399146395183965509060726247286086057297643984492999380788184100368363789039934550410213117298565852196051063159802582240460669666685229428517887613905078541616848454249151213479820772736675899876770661777050618071911740515985149925761969526145937998490889919837278980554094748577814238477323116486826099142543021529995631020084466936970230139079553114772436456220159089592281459765552065309398651491761620397893637409574238768164135852751862090594679386180090637077025302042445121046462356580967032301699889842785868685478333686571539013874679625158180412141788862572799102543544834205864944425838107620017700306026859436475172443954671806118610163483334114557186699594431551642931389422377352942580994059148389016794437482121260733376221740884860790803298281951214733949991330674540250160532941874521397718088886972094931994101997743914033642683104926952908128783746390117301839334802664946114705428068414127854205887704013633547211592730571019195298329424945913624474996323096618513642180313166404390541753551706432361553282881659300505582289923077988931383579893911389100321729227869461673066796730210559876092394140042435891744939965848763171935631130603036391342075610241424347236493853168890606008832809042460845762075797894295691281116699303427071713490644280839720831316956506036984051286529674668332151661019384196356219647845087823747553153513620817061180934541858990193640402875994867285886036685801697596784370602777218517280208648404829135187131118048141325233182613030081557629712704736152763168481519402929516782771270786113333281943482061808652614271378299941044898606626982744432206498307135713004218412552019047739050428752184634396485910096998884279504493975291588393090088989025057132291020786540105142759211494945104069867983483630280663866894262616512591249338777884532965964100010616756922339349242456617785717707807653858247135420690966203540013961323434299914279699962331733719187667721316859543188434985930686251396386135693626074169795399543772058675347973792931536148792539690026739622045059917211479243366218613024176973626440818336361253133260096299168234280108271079029045721792827608576209277977894983278499635671739304756599672998599656290021443342747814252055134248958299641751430351022938828170494969089998484873520763850239276098639534210661601054380333949909387452461827888007612443965994555804106982586855803701577343688261420542997938577881056755484839418655243773749719730507888845901659169248856818747530515819290598732772734554676262358852399110208357019009748299742633364431338043415229850364149100445681973967474019468921791248967888056615202719686409656474011485098234386040585391261841026723293768737387074951583960739796212464122517430387433666560635709086929561595006120842590766219822956719327758586351533718535193610603555430836036718714473791249416157108178668396786664696616629454026086001637521713340397207333053564356293175875105275033093238130417450813481275472525062452932209195389241036629673331924417862561336813272576935962105243080147979261986751317117077897669318819994084926881624964281505599170704159785019921873668586756263849448571600647524628664816680241260467790242352866552976324420627019081725735858841997102152163458894236733107644300780969629965950308892845417368674448958207281154260980955011909797699780866022317374336479768668338978089896678132489683166734578088948599933018005764886249830524583934175040334221933090224774253170787013395048886583996029543076086631385404090063895833684687165358609650355026068798038284281485257234924663118336769718943519862369207761756570909888531663791872360742170955227068165881459327412592509187138705965855986934173870687330100591207471672797959669655853199673183609370712953847235175589202025939003377398126978233708890301955406030132861265930768827255488599089087891114214365747649468698329266773854213890234949366684507813264992924243833863845183878074705501813025108989570555647792119595234883046522195927064427758883590307127760816448204425937196648292185924599107843516862600897384720118160489207277286650323916635462536703822896888605252916396409822490427451403050623096352119772143751078312624392122858490993939704397352664392657251005186728868424427454934188851276400273640328039152820404733536181481073255161881024237297474314887751804021394598340928516667911253039671948735153209514847252250301055363916954171373283052331391134330289224520451387810082225956455165115983149444155318369080683373573969838094650601446205738170190198118782799634017817738910963872838408899142075140453114015794518199779757100746151475852456428780841375934166479487833853852265759938604242589056466061261339450442641305950363299072416665973528470278150364821634445988144926595961900729332064058756438429145023403812050317148215439220349764721735636938284861631488452167293672421649682595228533321449502792615113805406962463048635661739645032654393779469470698714176059587669338885786140987754904499614753456165297181791269683412018517041584865305062201015593263894292322716507731789918022312228507486172565089616955489148995221281299299012251106318837307142551792772852616960912527827939445656559561612134459742795000255372418411360989676190164325940393627888692369814338090230514818162049934841436518672847891583821637598600969793376113692736223876559239634022271477910986045479108504596163994970960739159271081567634247020601970553678667667670968801955955732122923012748769807428082152073826587387630299225786649311705450073817454790258370894580130100535653163055274062979839462231368288888933155040715572011296259910358218403074413729598478979831192116486138026916579111727093235646248777532603104937861159138462606808279452689678396160077753504464807470499676972534820110183468098602282469726015053395804665950445869348949239912930982116634059705993575302517999261342014456360770070342530450415946441200017672777034173175860043508093937130408585618773935719453649542836991221916789550827790631838257463869779947190743851406070384071002496066258444475328179954616360495017214023207059899417941396168587142121525278809162134384518446461887898210263197532488144966823259856311592331291459905420357693655715250463252762366542098989569756847919856770485159279817719255351949366780210418118987956610646798783267000130548556076440339797911433501883191053305115781332571022579835580225549362198427691704053107474064572195690566004754279279150705464910646214717101922928386619566999289931015038708108277720418607391444085314161425702682590749559345012068455204973947436100831739684575995376104021364013541491416533996193027273836859559677710299678321665803734221099151835646669156228145433201290927511564385674010337829554067244833773963608691727633744070891991682507918797459652648096436547676150531961420375810738854022408334020072628440721205059112235239886422278079601939571415656994619117633807156479529365512612633923168338852738719613066856545956890184589342489057722964539824099058235105087147445530644123256906942473559242503742858782845629409414196572050398583824769861387294312182929206166840122182136720843124712024141672735195476303289047722461604142698490037456985890333105921182026020809074387178140351012882969317919312412935854533224144625115893646317131309647344927230246898187122251900182920049334120822064337820411936775740114793176764638613602527693523167884213886313409679329005710481244426307864742518055511047270852824556784205687100832660144378656118093942327934069680617316334947069658662625363133381651228775354926145884813858471357580839626542706796795213533266419247938474657441154980592338074615408709892510078262934731215086857064282436789603619175624924230838954975955144738667013317428147377443109798390532657322206933363691639192390800746514840715380088098647704585289184097850821356928290892641677080264997397183637733934240155294401484485317372330518246730337241790910972051545008564108951638472787929049581041785206833007034793527393446013361131921879509131536495110827862190502451747812567792754367290914419637678152394436712682942111176114094234504708488156103033744774119667844965564419538554266457946057858548414135223355327475821408759763905009802870485514257275320627875415505731273646798127575042328971209926965112874570202590187722786292908464263018520692945377705501363091708784946953624275143518360639218827089795289646994224064923557239550385528846813749815601851763751592334985783638310075133578349796799172749520984242975603798191903383652617442595036463074472248309718547577803906123597966299360852660138000528843512966418359408157850892023269603038695804964362734867294050164804616913538075392340346416068608650636723352471607048946338598860475301099594196183222009009527409755940868031243796322377785927297167237288364720083866752346936967350257942433698432150001448455441899871640375905635380240518618019792809935297205854971725139394030901648613675953510413226545260073151331995363451005178761436365568868040456345143093361475700691376888232809819805550325046792503717948844315863163817758509774714895151162678528350907022995183128914612553656388016334127428024057093180927921287115656815238872010652281877379884637847854971570467793501280875990139433906048614186864202235837167301161771524193384522602592117872467741324390719530810219686702152304847575246760934876429862132408868775865064628915750762694173805626929536551054357989270708538846179950220127290578102060799987815581892945333140442374724836434940178252164708148385714522654740771487334439618890294023042579362644986897063083652493377436448466245826527429525586921899576042265900055468575961239918968855513136519191195374021942055520023405264139518377218463998518046663843565275317308506256918709006998036068635365788253889787755808132638141305629877313971552991240495900202155968029318821971517505004477149876110409607864018892414872470031297603284913065260692669559640469939865694626010894295470437648288124663518858355219439257291825514391951140685671567020758865191994662100527067402384292895063161504324870288102998954782644843503462709038519932890014645380652886120400272759206126464321167799763681893652919730489835702690312534089087850294857710133214902915117879316197896916997002310634729512150020017329327939202007582449222839594135390348159384334420434018571348602021751090731026133086749112374599122976971288166908305575863397209584470275435601564998779384908233617592371909813610995047026759900641052142405432657218277669688473012258532825220632208801256855480635224289065545415080032236757624835714820409850693467769304913287395087100092459673481621648601737732767621864941242828870384938657947899614819883192852497719235336142299838377854112706869844569806265085277768722305187025288357363632083355270980509222179206535861546854835273659126272060033880086714141579296841002040693432400189615783389780898394348919990583173368132380637729610042799137379530670393981020602388298511298503707824978074273497367255731413819359602050797287846744024320920742046389738757321625986976139702400561724067382321070566034750800950708182413752561626311869650172617241339652053975673530267260213515186189527031472116943912371448293280043719294400371107098103249565037687246913202676821488358438587253495204806959547387622177592865890066987460612033798202201725915420117407679162977276855669189805409065616250623768099053984699598072754417243331090500627550635653242630019346774151676632677729244177904055497741744912278257149288834470179059814800537495248898797357569508345088635362361273237125518393119215098792221210139898964499291153157512145230090626919074923609332512789021574072227303774521079241016736165662240393252126433170472831984783572979929470544888020709974983006569632612911077283522000274949473519070724437398645388619829780093521121353107190682394889599837002865962018892592215009251581937975638762669815543638256401407340380968763039316524727516141213147756760661107780373444922485145829941740723963435196717135104481398865024102983222349890818000880455501480895101881391887260123752888004437366141577025042750015510569775290436936543519701123561308122459280357706769377652224846754557128835347053220372584317644738438863470676615697525355480731618844901763368236358588199045174504515442079007023740059881579947341462014894070998348975613333529440291618482811791260030919564496232469377361398164414178381490384929835687961869804828445833368190848276929187285544704603154361067219420916625845022592422329531819860161883832761669162059058498795179982033257772725048333401163926505826807171805979903389453869473031921058399764778919160040344846226741934965501236735366118195281940107062540956455573689172598781786178516724265324536829401681069859506273523067631081778350884994267306194572646881580818666114557832078928733346817531471774981435170767510584127152018586920988901617085313463453822309852946027193182564879589933138300085776476649425434852070654879672393438378564675017127976301368479017680395525111601995035467931427175485607350045874845462510524278621825447092541436811373991639241214965383827987120721413801494593817774323726201878376788766758563742754879682495124586902710537425980629845175122859118052452185620528754263590854180978409244834052449289368271353578995003959788418539475758001516542607109566735419473991064940077593961787987106116292096596411546721097288122798917741268675283653864981500714124520064867340278073980910319191370439165793903356804762581994258548486229551020715968531159803131699129749171485593383536006237815992934708702839989295925824369947792249323299503929114394241978962544756794354896658132145470263660848383623543622370798266538641870174315382596683747902229737240545567671531818310611520806927188451179719624046951535042596897564846856624562825326566021849047492718230252558414219837757434216065314822500776362092753570648330265642019253018169969083895501560800644757736259795106930968404232832901307877954678542342514432080094196719376848969383947189485812106064827774480367851765610527048303791839127649968316287582950183894311406879784445062711612178114092372321644061850763770460489881471979955125684289902278778402862319731090029714107688805603824803679956202960887979420310638600942000063150089539375474295711216888189611123458897766314171161494340200734050429254192818847442657360991341591190681709208910578010101026761272194395335897918066969022376629847551962801559742040164065981055776282368322351230982093516388374767545848510758618219729129699754565965582567716317247539586440085256999716514992777386445567352569069853955474342159843221233981076464467875101114593297148237401341289517751022729639927859125477698494811834113249562568613757377552527964898983381961899601639022649725308142726615632551010767884126028289696086855087083584763758217323099038029705487106853642461222686249136425094183525797757491673683739540222010227065549597132246054948538602836869151744020004395220396158250078009543574025584987686315388845371205956428590695709087204396162371804551199779631204466809390012204685414940210307175984020473598255032978156321943476292948073891401619448740422924066929233967584511656751377187153346272899226843735684398682795270783416451718629510783572948687640740201358275768918378816408769948130638010827558400936617067371061569989278467862300194427199447256417071046276265596988908923027888340834481510036730817024793720392543827322605190899089036523070296417389178603175029718763985875352126589374344264141307905929412421117175909783677327710254262505320861869831885417027673635396824138076251063358055373151288692858877295247389831527966572462588179179880558911677497748311290872755852324379154540285509562287776586171597384373920866569574325645577331121929571432268416639645175235953283675771158563284496918607296097117056859961321069049932917521142131501534710812539861486093711092469943857942214715471540664290123604711274492370392460462303819520943957366014426826044832365663127184210954055721836410877047975280861449212519665384036535331730615632536689364008359460419273534835726552526263307633502275449800930980427370999392587924501214634773553616621058015848974277512029758443519968868885372027956377854855254629620368575622352468039343089351142551840165616376265516856677237876036815142651922699738143652518453311576657043093014192425880448436454000606669816897843751771814999084057896003018711617881484638061389112202390558412361871106279633766953073320114470674496287439055291365626537730268224187797304575444643987488249046560422151501784274429770487400773900743166734848603872998548037942432832769679199171321468521708558574606225594513470557369940498474958497391667548239453372680897435950015467582114494401294436202142524968344382048981626038258251789702686409123651459574239057816917987252650632274440649313263828141343650972581857097362158901996736733709486842622573876601051853119456982183352345621192099146461510584971755408371517485150148969476575384065679071184607766754678515505812114888369386759500652958366092529424509143980185534241749410552114150635724073497109755157912243704630218388844868213820439303968452748548396662939045744760575475344205214579536880152289931976913575678126670493499295796019153342120601903440166868091910248594190824235874198378247601056042360108161342480779761795747557218474404533029074841076418960908240087141029958289631944684905347111584638331451165687947533925723988295170214089596565390896480800150488098538319173393035742639166287044185020792519558646329596767033942231078557942768980873667536315826266682148928732465416330154624659065996473951595551824864221815889916435955909420544816894497366350021395943244162565350373330427353995065652830706076263824330213769363644850180693762963186754949947722305175951070720127861995664179015436348367845502209508481608881560446110261755509345617889686957008021508025896114244717608067300873692193327041662059946098863106219483184029379846455166107498295254591934385784498933712323627309300963692846095916126225644478243840719455237090380810271737228588967979921994052478127725932397782130561145588400808801621371734656976297662208654722860137837853148968472954829286617559531193263365852182371138597261067399611069166326756993915149801788323398315763727467980234550226549819813329302046111400307850017102146171509745623922060692222126236701220062423678682375363257036364980872089617069130292756502391732833846218300850953035606099066869584250582725492890903689113812198559685548517848818367954894680720014409942325053947314976499127003914855568015739301564238924736554674769516060563937071487397610142922249633432750530228622009694464090391742845250981010802366594225343941602312356770034198012071704096577228086015214843398201554440524812012435621621964222467634328164246356963100031854132844863026791319302978225810460080652395895864141550125388898930755482153289323683829535368860387576238286200392126356934181400441070248345363073553567341704998387806842415058039740888076271088517010465036896350719170831138604936056023343102126929844574328057748281682915517181315552836116166631509294372531396055416610312392969801765781996912564548778916149561399222996640051642794132280402799769591128215702767806429590187667975075676472591726313512877098528897993463547062394866799894493045954518332046771763676991586163451740146773287680825551290387850208418172626348385713929750950142932116144077383312733812398566014942899074169764208740718025161726428572326720830564675625775470421511727295767117368877795454253549368056383463191239479546005800654783816878444723417562993014591344596311059091935249002131780439251288340257748911404376565757484564130202342735727014457343185777729061390134663153060952994473107390638428916704131653940728191617650408135380088454494754576547781983062750853967744938743880699663327990741387207530652438212802680168978217199203424827097657887539585841317916633326006708529022877562359138079598990785417655498061870285071343344064582431264491258272536712087486759422124487378519123782443426583833044051067602132471338961219007583368352832022585751644360440677387394251164693217146305980457357254622983861125833616518048870137775240055001625672963325099236265803916506222921847549036576659415628942083491680870465374890169741562847728466522934517609999408738046370431757428216008457333299778103753263018725689887441047941044310336063667282325925395735610018542596170016503489845021208757852119892546875650437629770922277561399810850508813921109960102580480483391018639373500692599531522220549452697480057593065820458836983863121370220946883076937240967187584683127890022487561881771330035285162410317471888052062749335336223953022858020706841947174172953841153414646998280436364984224096040335618793297202055853265494259377301860022172152638068385835466323120059666562133906129458843832014540941768746914124521837829804962969482076644529014826706086349043536101755768781833991828274444416195422590631331384957595087454387928059332703062669714254589970106387552461875275049218677354503919551083016437678882335582249366745115542575083928772289158078672441769502170088094051428515195179956587261562070960535709667371499734053237124187722960017892581456827791796327953234571499800139033318449236926763053664352393944898616590950190576547788330871991203316382934343228732556594869805042997845998168580421314772941380099295801421753337291009552227904559723111975824277811324026810794162522428845359270396438550042835484386713427000381441615133802441955706493937090092836060078206832827965041622986008261331957187300398017162999829311322009533035782183706864711239998728486240958116925799094037155591763186216382219837620329225386278456748867634694312505030988322993299293433511181168197820447851804858104287137887359812705169870510668228627075928907052322239558212104604525901720381364887895623892057837296520407887293636357077899173506875903912883004509056592917249561025931808586495310207506597408735572069284431851924674975358582674387541970729945353755987917157884616425047141242331018850700160946614416133566364513332368279980319036430589055164366969489139833426677140387838528887141721423091728897439223962124055452289778444163940816205910770651883405272946853200268809901343136883269671233447883470029856336831386803563835733592078558720925659687873319115593035385986924192344900434531294990956734437926428134909615587733085287275587160547691023279022490866367243082233897604657280361197413039770440995778620980187312009008239504169345327096392607471459934522093190955043657241518532032718812327747917385775183672159288586719314979824421364335172699551721661976858234549391348108304221931039670021226815102384736556361143088115220296129311967144595828277558154478085970723130070648766956855055513015714353498215411159899188490487643928983930022284951614755238139346996770850424452766696862904213823642974414845638636097032649223966750886976606918807889592095958077611207271105614086864143887806915040545458598374951487491356331526123626529321535337363178372089491207536916682701978767333721180353804357923705869017348213327297589656353096325241523218614102956464370266388714230167181777921419235801663875309541303212850953914668594630853251087616759957448695163790319721595623480732625023716543407888250279362783146149242249728965066391706593208374724174829363650720413573322360065495102053142783362364341504087700985428345088687330984422564186051428907579534627697997123978116175208790308209284437611692171364851214009911729763208748447539694986258884850927796205625409966928637193406949091691123221449811786446052486293972620295532457133127437321247204837967537104446305282537312003501997928412264026727870252049546853829273672975911825094880203764247835268292873298105112641310442370232842115564479599605497027518786130605495521465789567010809890055926030849086440623368718994555974786746295401869751795104732901081826386071082674635430915506956083700660271201748281209738986414150037933499160903057747923224836183035909205009240779443046307578722336853888134879239524430931017921155361639758308554889559655431421073075620800488019306809123318722873489195175895632408967383571226542722235636913671564350029501286671912065000392403435705065210375956085394400010146568492881575578342847303543191880560573624744979727309962461727461629319277401268664839110683403910974389018981925829037851590138564893814725321063967080026433303277384545647258392452138087079686376954604137851420998483136596230737493025172271728020502506807374193344973368018336642239486609067553246738487186952249935133791477403769359279577176956947856895452514965423149598059223863190107667320580532326310707085440348702341277216672712009751065202755313111119772819707022559442524156446868348077959116093114392945487548324617319331010582137749804148303485275832332320298756332695872974990664060322722143682884839262175725967275322901000034295634314597705071146161962539731118111519898877159487348505095756863455661561637798449201683243454014707030995142421673679371522005469773052196100732626035929141267111586780461218726886321479148035621195553922370282567459977078101677627096694887198555648280143069768119200116536169335072213702440927703555209379398768721804166912134458365105593561991157238342696298176371078071126744024539748962897063920371723207156301295630154959964145462274153545867064050305907079808205460014229463989938043585596467104245601918157927937143591707431240006687402203868567305196660667385387126735686478826816580350660906326142829486836189103797377555095926006330939173885490794125202359364202065809216286924802714194966513733647369675145833465368866598405060047976537534735359043543896169332061750887973145595594244130794144274415026879711476904586678218349985172065414660820233678128405549339603249923296965887412138646541648980771718638549192667019189364495222635287589465253348638504540748178762409461613280114749775219611851315114896039639374599003031684978796673260915009645105095884248645212786689118666233806940074253709396526026889941875863928524137645548306480697837428143123932673542866621725089216383639481337180146113071357984802108810607001594459371117848368872848533716702953834403489781574149406437217253681442182358503959096987146252488580959408171864886771396358802034365610575767325916448862972417967408019892987896001570927322389960838649488633597969559918572489406566086996531207072705625568809310324740766131115892022718272385642913999049778271159656989214685658796558836516246351785559759156304924949291615367416734272498473268834523660566754164182194414554595652356874803845068831410013715509143366862004754915080005322549067840489452971865286591198679222659094859335768554247676548458375872076333456435795552416368226018539779404390780803746195137214623638840706138588291447397702824808334883388428950020721367537950736840097820316683393536534744305394813829046899570124886020158076665606104922899799815354139321187480864403041842572518436044052599291365955555183012993429249342007359192933999020894141821781720499226450731005221873748132534836570464592521314460532169828631503017081050942293023509090859638004590218886506430842378824697512279819355351148034537646260722020190709781284673555987991971439197538893543501862972257638621418305695153600562608047998733961474004842949550791825628749003675363593939344390485773318543402105462274152621316998190214810818597928798376029777538277827657301492757082531737390595365848566635167533771883142612812085283443043124844750616390173949195969089342199614164795107490582321768839772721367997240960995654480602037802089601010669161237673243234838054122348921809310278945347761990008788205175252999196445497293229811942390536815930230879975550600275651695393689355538954880999408647664040731129378284195282093151386511819016375030054377194108225037027535140796491010649730055056469784788944792345380442820174264645059819036574321103955296352738349226991626384333896567316783942310098747541874195706150941464941456113441505661082724209820493211942378925326290627210726482461463348636461926632362420998596732134648138975911368758171502572213918982063996430262874013274250591116143254659333966708212276802765448964519079552787972831036677803805194655957903490931478860570316391579183856486012787427013102311894709032730496089631474536583381891560770209743261745353075962425311308191578941935044663879266002482307202503338216371596589218506502738167370839041495705357248898513996139545589336769904181810236019687679624699393745639915468158824570728081147874610713816769964277241700770954738412519278036785068773683650141356871789798313118724294297073765481806060735380524219779521983835173233498958957129942267410807435297530779410257168518427164068635033578540462943739793986229856429921276442613158854525837480757497002827809865500171793411157191271253742671880645455459157923389331598289393627727922276514738752658261823102858977037420616790562080697756851835759330752332833423266676424295730023377627961249972133395141958297855642890557798890351149134780221746470798304334594464720690995548472818329975832336449368523289275017613809443748890784670553169150872071631825642609838889822950630617983165242869038938990943809382911703771670171283865368642176457071824224427437602409617523743277569708338011960328867773811397958317425775302955682839609505804896441981909979586797614593994574236505481615507220249855472055426757992277865911360592742123381756283226229298562508455121011470021669977897010013698470460287679378617320276605101717878168849552591345571337774112031667135113795973247994170795109491122594322924467812067528307834170730764587074043537792143110783990077362615827845414321307105465265445268241264742707939896785424074827027513040237308055838057183092454945741239333745151868818405971243225878507321298809010717789342938233129944788786128573812688522559549963913457031751616063319626795153828895564478558445149139886413203954010623973475285453754027941844884983791558336727835802583440544908587079785805733928545761073997504523816620927191330864675852607122687337592984261344319675291159934819055506821097662341763345703126904752596994564117368058295290319758230861045645522358559447960845180045270359210356410881922007049372836416021194584923907788462627115961786412230967257054973974630463709430767627601836320795424170010045779099974250768357776285045177051218642282417926652904629327271819355389572533007245238500702505329608656907587670441523945384220407616772319938583384377464178285608052828368088159659094927248194623223635182853792415883617175865804051878962169654774823368485063017969940213284358104301136122517657178946703953814735898280700708037387876293952671905461912640937190980049320463221317362718655976841211793351554505996472972537567365867331452236552742683905872771257538183267334013216266603266212385059599828061711296698308383607219430009806577501925952393431276158323317906127503894509734035121217701310559384756101999560909139493106663074384056900736122805365815859142052777013101365238057581261183464904371995023119554217311874566369235424376661237835347440935712076457542065631317446574056735833962503447623690560613957662499825488695559296121105054056715947599696641229075481632612210119895767763762646780413897253738537282912426214562265516939187170366896408975587199510969741168019765345373401200856089051233931328952391946011147619608545156132424365580137110801666311002245165240897769029431264515667911249167178416793154358391584121401890028555424234915326009964150968148094032039849193753949098222534612556943927056795246421894094257498300087120433857447903188544408847825456257567969209828966591192495865014396219580792004674953966530056205240830017404224849396486568839599792492596164127568012121335929234813185220289141891664940939349745346301852366211590745001961707782173562335440808719919037648239487535128370234311361462321465616134012544303858564377158867288665044754498706097607398979797307786936739502652806078186622316806255947796768047312213462565958976195212373318570330924591856364886420227651701772249579668973294862070034382315510065205824860830321500160311069528603417373785248058094065890625711478306249513377190724401212716807286505113314012668391332689982074815182992454315343053243339447310185862925543303190853536897048532557191490499900431372817714380205962352205049568060429321059616084427806743911144661525944783549265766493239927150364132256834487973429405854651112062726484950083191486623880031997152201570770340264124091679967143204402261064817737458583619411122861092372467561982292246408170085472468215548371859161989738337284927785445172248699942521946808563692131267096907924547813968904878821780120601157364666031880146341797020320566890037669616473900288082298109615864451650782812376018782312638638691995010747504919478257623526437532870057746606062126231974522160742622742114760612480284989297680049890947196058039985965737866559953131161846113337263412827371457116582580392367184531229022466980572479981655758686799202266228873205823076123272464084468334951110245728362915526643866540877691280459318070254886667002709508681496197754667809603431824102710302632294800615815395867856355192878670465028361704108815930172169635755909472296638140303872471150464186535156113081752773712630122104280364564450531412617480071663120399415657976622132462248628885544737421744533558364554847498573627847120365411424467521820389667011807974044966468988995575016134676883015392011675233415644488279440834986774352775106341730617345964482579913864827510205879064183519028119560376014181492020440533851664948384482366615277868759871721390018459629930810091856992614715095105242744442810633183139124388697517167374434167285415277939669790772999107939274495242000176905225889427849970187314968553095306565775590686616190968417899361231865179612819053193742406266496910816130250996553188948273377907819484478043153206861589568859084784161179524464265455225246128066990129049834681504888756439893955333494313099225606797280912731753744117548691646092246130484370100711212910887198459709807182266696955621776339978624245989534170799036411763180850835305061647068698873549019152254606650763748811173106474986037160414688515404646516715705795402830647037648125262438542459951942816267378856813687228080704009104025486254381517245316828763773680173912932052863385543652820479825037037415078587553835198491876125473646664009950261014422988715074558302029100531451444402126765522125710919961983778493140905467837644078289132138492761904826645443384179894298873211520822034640530214332891631839038053499904901411113515723740329951538083920723155803528752572282338093983783505406474240553624453310021307242209841463226790569097181837077524774069031584582941321096366576317631653315186205437562663189533866054085513847978581726655992056828140822016441620145466883975285468601376842648194436190073553149656869362721168857176084080107433828797867345041044371545397171648918095859188655703742036480929101383432119227202148380777174609175707872957367601465369281787868278546916039079589340276086036681675499833658870592449968324319364661497197283555446379428041886315557924277147471172988090555475717140648234611190706350066877706625424651963080237300554003333900506941093767150617261850714496541399272259862355988481301461850815520167036124101074535724240604112086144119921297982840053452874692074575380160937951893541300651468775986973177735952247186054022853235332888333879932991870246289074756770560910371438890136530374954257809587298157147537114346740376633411557276680275635143370455935540955335967790660595019400035655196543691095060740801183171361970449878991938799635064540858415059604727442696555266341968901874127991012887431055012043208840065099428554118091258724160593775885977284945566605276604429466002903451260128228803087632533075064264346279078754926364906290252814718631307097682260978239304764647743594099654902928912140894614833711733859265705780622665204605771978435464369579652974715819918519709043456896675589131385441810724282213206011499077827427777054115822491401762627608059156767398459625716556485754635401906871469347331530599992020266689269462301657544450038604997461103252594802770822610389732089614369849561158743439944522820339123325930568046069814741060258360982854216493406101187813678116413522046906512442500503486266962167120289694978500021026996290627756211298609512109449989119623336681008357971273176610907362467207542891616282974223969253025135948586887899419132515786681196297127308010062299577590895450143125150847246771571366300554341280809734042714333785404056833845204251127280042154696377556011139918871006420364210269777999126413860092986076517240644510017354176651197045287695133547391522284048595366212881238571233581045080698646089375046516100530530767803918227667200450412636988464659160843919604357760044138123217463589729845399871476472451798084684794887771055425497715635337515721450095748652748979180559914486765069224118584190778865417567623521138416824114707298873685062241082200005195486479479133628299208328628324797299435815914270943864058699377442930621441233219339222583339047150181131252492739895306630191368148046711053743579649107767869951258127254549921352395050822131905085710998686152063862605753880612077991066492244542725182520696803633700871873963639118311880731050647560772951940313330999815110349102678114575632753482918154686430620203293035437609880879755906028402430328090212259369446102055668117134005937405935213017545603380419254767536610850601101745557591078359210345042561878019509197252892021155671295393474612724272822214711246021158080232843027097696742452034142681124115379279649614910676571235754353191351465261860592782937694597471094042908040715372064430885926439392307956165633478259478760605081112427751213134085313467750699134888552048527221100419263933711277990694047120223559541784056768196834394527998104336207417640003130430737230850367368223382489850636070995221428610345662265052883758514609599864318215714237500950824982570177764885858611813370044728156615858323400460207830289019919061986370483290699454615898516566201984506696632779880577931200080177275408913528839444912614589109567303161628704150155890150191895459639946780435970286952795860039080741034860436886052225582810941769954319922434293622336735765181506046974955546214230148725180026775575834475693165217342349616030498506536429045138284682437208510180888881407769083510836617602288669029754700562071969219812839409660226370144986576274042129276475771933519305512318621687035132788720026028859108248047029091558953887532827411756451617242536113394808013783247849690245564139132432440859545020907592995854836489686286680137582474491798963122140648050732509764534647267474501317062051653126741287944473543343870663947270777601731883071182210863388301402463255760993501323331257244731621540098920815360541975058503815102733969027871547249205985586747688274636273928904838386347475439480406539079866416466069955656083799676571620980241736043369988715872386370348666741842553768251756315065506631405912437024904922601392491706711097226769347149228250364749956046148775919242848643566687838985773292106875399853798030648608117692155974091897654303600696511920420783785570105131963634108774931967975997708652899165250405428520918188951921115386706395855099371123639642305411106211868966010548898734929348697559005125655371754856358544155011621290881168447053033608838451660880996692369969780064134834092442613756566150763157815457229821850572918618515736335556831973883308116962640572472455196517286048328042667934840356926940614223360362289809150884132565584544781842486461139061004207140652445213321985519212251479454712331793324429511948646943662413780414850361080391265578823006074425578762139854835450899393016493186652133451051827259648863131919729636859851584128130635619191845146144574650926789236644268737102603852996231714028285908896364730362318241529296218219455201694379096936904893808387930705655548054296330021207698696433339264521311492788434978476540931128641770694873154332436490176457010507746367591417630534327841507960714207994753020051994782683709018760952304758768121951186608793393096034811745895265088076742880884091374268396987689629136247170899354772968262684998371606381245324010291041224975174804599554505498974502769510970181067063793128321325207493264837307205197806554212998185287090654824002136156621446159874371283223258650968701623026376616968138935609488849938982953572897553482209501279033727385166021237286447838484070624506669956099792523193770666993050491634246196611933632980148734520714223294385441187883935043795903480070685907205643640063183747367255493709274115947055524682006902942307911927926117183700187578973459833440226184126718448773543873389919756874824368333681542149779093987356170392975287653259258808763242221296005920127680942245521243900869179530909369799044199887004556953298093355055051997115531329661374382850939537985095525218025832711916799488074794978805933545016839137834260677560707245305554733001694026347980493139017642376720008921104321676424149622913319165665472649102118177434039542489394268407068914934919766230271182885448250223541877250228271954933715380044440211910680190736148058713944819458572948976466076864441183310960419395180584899872004875252178815640624289190703140510672202381664100082818357785957085071266114335530879764965996937698320434749805929245010277242495844509291337741484395364002901129490014889177853228731930092190576873499760848232240771543355627830127249156012450684906139391815233765751885763252083420117811963164460227104888292503480529542961437139029029400000916032391939573879050287288083751846344935717639616162229945519832763242488250784100222381537806866194915990304472383578040939611705211002626370734529063250835755223160106465357481361231352153914284451698028107822966578911801484950218354396814734591351968683693628975677109451663894997200233941848229082306412228607485212293359291222702043727811868935519715914860906102072214736368214646040390539566426280994306868915086298831812409325530509289774511969885614918358590411096069767524888645850218281810453931975954814108279258747821509144958192340552983950120012515611993347179198427483183103624241694164690582417842991861010089544700832530621163046341527373442793092743363188063107886884621214282738359806507087110717509905828484338210077372315913726320712666339587283464267270463122029396442780705560631993373759010181846982510720125919924008170153852988179383910690718309471582635147389385691758332010273373138106529522119072726478660782369850863665428206778799093622339946498966534755879286795818459722179895167241471356403030721037451886050816631408150071084036305568791877391812073936244312137089093699448005420837156386149731373115291886013376092927393286729373731870476901746619141824804291018719413211394957305512494773686597147700280554859990961243664903226349437458807363747777938766093682767490703353208555213002629962171279834881767240068902419444543998269776320159034555210391212705995620364624922307398807489264305327960193743945293211957899291205664451149111719625581965807550700574947952487790660378217900065660854163215704266577980694127729074530907850902897224855793927163320196594672580296702786061164747906422801652183915961193039356442796621523213998594963943198227741498006053266733283279880276772054579895093318786831986335338140689994562068645354480486341874659048501460728030704172009633173208418161215377006565889250493967455505735609309919806423977798122475977775021391237108030482724295463441702579912345732598010899932876508740664687459643210788738585168780337903996938646443116043653285992463756556916358848033569076324449259247526695055199438452137659801387879818972506967158390784587737080868426616492100316475976406022011102392546201845682506823298461208341412798063386807329401928253522445320143237972158384031534427235269656476106533358562596943832972603233570711617618788037693342861430447860709517207474507967630843968444500553365124529010717703868153086622868168476642187696426077145772557643204137428336130927976974221230041743358083727509009328304349956337055901728958235326636629546053329371182096488350115799706545668298556689100044554351855360849566790936033928192501811541189482848301367656180795540720119587437200464432111859268508250309417519549426128075458187981664310770211678956430090280728641145600936185078071121736708336407382513834919291198291516396678000903199844798654041564595255207006049684137099499584528147199825709850372979102957038985473902035974171973671402637409710756164571565696474982535528662283249789498699497501922234020238323926062420429995611222884052120615849106653834727546083534063835971718115390117170990469102174200485056018736247392963389604826118905118777694288622222308887401853120155993213106459583845307671973449245833317006784309785210816564884071020295778096778041794918354887503662920386330133566924241757258522867902049882812689969343733352328521872089056237523111211105746303339265153153683844573448551730693950307978310918830759766550488016554649192685667722808261960971064177354495286760041425984721928921873363629941288649429645570607718698102753076455478320257784989731194567728239348233926903098032958153540336816891560289168246120632749272940050405607647906099670792736176642637108369849819796542256944733657986881050173057727543513186065957910261015441705689669490669468577041111114776968603174092047830811511859821255581661860243259515289623203077175117997517035758640702746940424886075214410985330197860210302778845098453263059580039542428649276079969831465579188732016285686089998959571277089834531533361754359923002051065457328078812558683103793578190888494371206430946333528062475714014680532174485334701944830273690853262487143499179269671646728799996192444232718204480318696756309048874187272228595797375922182707398017075736980336084965058592979404126002351292446540384766797216044428566872054280180127361678590088447057217262608595339912570350002103162221491158768545973963422188084795428725332326151357225626178126135124679949650081918761557779540718615424930361954388209679160805557094163948280786700070293301808771607319329688976004432370560345193834353089102881379860467590828119622077135261653333935846727766766638309271515798568965808470505191213914844446000485439055576238568669432454843245813639451062649959018151157494013829107579432789698741488307755113415949020575861325629384276573420785319654730507417207435239107306610878548504482742513252482911482713179818910406406356436861648788837068460273025067426350971078170523716159899417013223053458188837619650738995962743638891215535137299110151464943870937036047653352316251069187762880230645226989336752997799482526644169654084509526349003183178091005404072417161729463283281659708265649378666748626630510861453964980036693765242775696130761709841454710742222648965231351815813227703262170252788037633960376913838770437672453109074430595055334980026472811027884015430805929031278983588198817524372353056205275672059584657571290705089877818657684044980605793959488184620360926888146612009518159619050009396035303355730700800672855680264725946218899640082250644961750730922263211110676425474698165289562406044479245309557008143586891902405520042113179235522735358562856104375162007246811717040387219193751081933787070577199864327303730038808323877480798882588292566995168127914104861561987421540590327548586055455586764579857498851280678654273475659534680888501395232602185374083476886695606825998327851505565831612534380257519822691727411167604946713059355679532627551986613373148777520338683075594126535518958044107478906998134927911621686038036397647205886360132927010174536226272658215865789951932345697611581497155900893054606354328816862911497152171443718902808995120553113400553394201794468341170535591628770514938684443150056903930676191108552212682943037296817879088428894783018336503294167777655606218710020139673803202332390979867491840024324258710638378703498957264957193964488406578433260853598528053970125689632046462816921506372920557030816904455802229987261000040316499287017490643769973036620533531570291922432647883340984778180268330948312968718847877610458835202627562858268352525446651974841792906387125724856161747875533594990512864353692780961112321748051771619914861629397218055267560214576177466587363876626123643376177210814077942756078558577235034295915166797916115212218173252582985436047750441997257115038109668705296374992865663535397240675554678274329883611348610475509292210512043853944305715641668019191544718154090389373613520692355310433088090533671313719322668003994205806823588689197381151755184197455351477072883141807354981673672049408311157887615458612594952080803596094235117920082814957553050566947311433685144784540083180443358891753665333752198822018894056765130060953772277126697608923599423579808834801887502919875422906747940520521853787825380334733996593142953884077353198040714098373368256398499454986656595179653262484608504835926661802995662909899309092515419292005704349888577897779001518474264025372665953085197939824501076549876045884415396284567203274257305650807200667408812722211083826757060181814312764440189144939099672040610651293503361759521238726925570582827636888687616620384276022026815662675025242169937512113834146759775741863753421712980477893043629945420329504077875314464206051417482607592888420090813679035970258946843097917734369969707064415446531936099366275889670212767484933533332582496765459470002694248861777123481681614071418888124690036356592173802003429114811074764196276010372997236476620527067556333902693652598993015061589452897896567427068505466487599153928385912118753569755874144887839703084241886246899881000135045137528643680900360410304964744997822090153991172078184391262246972117443168351827037566971552050781775928418162275009942473905253974878331594859636194851684075205385070597001645485738103557712205679402227675332115432107836868585798384977567050996988633243747715639677276255321553178508650344857429381317110571637046087539456776202869857224535299235268795801925278916149760283818160677409969858231616986783845781032498982269739229973461473139863687573183753293440631832591668615730266196158780656445812293681314763374936450868400436310348495816383896043318929663121878350332515488739908166066521745083566289518915989370401101273288022645094526332983158536764161218048305168888241981262678900927236287843406410390779512832643854947048624393317661309044386979478199504408309062427085421535164080088459523871824735993367940363803299667666519608474050128061194353743015697407537685966518210867638287335886619379538362467909446049817336721966238400303167078797549407293866532673149326516006644300165443077911240644630046802957648356096192331803652701428474699851676817397512986507282865876705863156410762984610984020592081352942475890164004436399073825455415171071048415487846714837211996016087820042537427425740165698154399578496742389015833640906068049675660357829546633134693332466741005858586410985931868993946470477854507634312550411355681482200174356098133969421833565644150986670399450316436010471796059843185175022577674902292475252925336868672847993384848816452960078862881606132996075839855042100788571610308465989374947443453344536076607559812716261736959641184235138887830569625252483724285361913734105565777470103650911503445049088589554987545203445071626468490111868760844715407046534818128503352189345054472142189021674011875687145088355224054744835263620193680673207774069407113186904568791476292976404449541848630848591533773727792042448843828669440940330046986946085057450385315083775773411603550369056799235898682234471291369093669033055618196758773124743508870748966525205199800588450017690824532907449313106129985850462447358830452474055181392565694366364719539133601439628545410025888394423019916645262746473884426748195408091526943513863491319168894612890415172442354875226472805021572997836359435237546333526409582294678003356061294885551001660738592339665310974667133796578312335366762409295533078473335672652879822463490008121259539055063773722802474977396690799269014539378894809266327513637800921387908748684004339528060247226977022015997396846203662155560360734654647686255576310955462509399010342621572475225942402355680686599625752546605908997260828052022608165386083929320777998256566108686065885120072930294033634916921856956188068030814281422033084919317809826855115193969074709100078397349742553380834696571160179738953001694074041035771530242767194772245509509251767863102869428725768165762093138132952199841879380281964502873728268085826877850675968028197507187025669347534215000423985086043347894367257132704180222818524970851935658454468589344224409483819813063902217245056635789493541756060515021291922024919817619574545592820897251148671890438600581882851565406009295890546539721878725622553897804248244633604908137857887609319712227811831302824780338085513950344120169365426575517096394706749339192071628310804035822521154394909773912749337932723206078929280145436188957210188201401341965095349317606572420373866934413062954620985514464113312067474425376090046595029523044630400063087392031274042866238945703652880537468902712000424117869033296523738124577475943647304621580842657372015994691343933675124217547508328808923425458264459557697557661315849809342427209696076068281022615220488591061767811730675218663017809524472038616122388966810388612823555206336831414033521744987703007930247985872979682102984718559053186044477096953690631607189017942538530223085619499832801491211594558973064315774451957274450829980558905797583837745607049274308407552164005783458904626496372998030307920883730618020471968561759374065633982618236424379808822936200915136540744861720772344950216357318222851343157434068881195083364620130350236714078195120140062189709482873691130674347663826128380495411651174846358326404109585438908930227124149334824344177628748842532117493621597901324872376157877845503518042813029508479837994857972994643652655181411015193550766581180252736949622671731108140353665048013897596976626703448708919041542633110962838074564236573129921875775613054755002107374402955900300564077439768354647397979432032453873970453550183103436403035055795494254282764550434826259956076547742363072288367779963151144592228050987562161715325449282195790298168935673171439482124218937858883997643639207842163377007481889148758176403378166201731350453701941805196109308943354266457122661444368944262981115821191439029054264650799253545764855684587716773921771971385735658431823106262364511121284872336344520862425259898887133155030089644622879735955079587862243801810134926902623583117795821225788272655061638103545181400620411652653908466057539832798346764526041570860265205477153916172948744260035219612634215032243026891865234368558392728570146416337227786733847175218043648284105416423451723738446314538630478835815385781962197361602485640473600854602447752658764636374236650848954680763611783847576716978353006644294052808951992107447328371950495546961487115839066964842586731854454118725112760192276440555030820988831007182271267920182220892941026368714704370267315487220529096765754486043970844777269689750551524845615695510825148669505167262716471412817943037651635758097147898702065088630082889861287189642615681373691425914153077927906080215764671035629581554259225563612189973531524250851238024984282329191240920930679820769004444071868373629684889709796825487036948462357241876742352864577349417137314108265521172156706230171717515423642862489932901330426071966551950643336047266042716475688337820455361446366863321399986791437639842289589068283115894488115464009107764633197577407170481215664743890008903687681536853189773362264046095617206259792977123839280870059173183481884865733328209182209472214969120751598435986320897557386953776206048417055965782137616091148564613744089625236320194277336702240127119280207412272276687173353361026204178105011069718187915843602035689421947130554305000470980968133119979314788119759101979925892576324806673116305722865897847100492209735954027334141864943831488503969218233660731866334701957322811095182359806885403214589332048364320349761171090768924406079724456033520376515156582223665355693253574324997551581604619946976675197145946071796648200783107549044722617001025027819632864747104096056946737815605920966882467156319570390171059313077734711119452409160705816092669037733161435481640387605946852652927900684983091961108798225096643591749824602063603135607675932353393640729154083752929373308327802890826951872098954059229593343790995869995980700628970013456126845811989460255422442733465649119002710361665225458718650532558396288682221739943367430772192361605844828090644567212147117995142866534315886294986071302294623665231546997046327020439780840365587444315186814601810036798903780929028257602153445862189280663135991643388025129421214090992798630280415732281071647749852261641094843160041491431947248827126414912370397335978236780538370978811549118410729736030252482962489757513238966783646350323491672197908220925085541297433459647980917761380787124598357484246340991937049509551431158968046008498347445181265145181648960144213312029171354579294211739914482877853343887010801678854076301290468033016033149846368688621609922720820539030105069716673291021513113919932918164394219493677812226673236725392670221470290161201451250620086432729952842669070816226292176371196367313293248591916412558013682437146995330257514558355408348769386114454883418767747626985150780806334752838277274018823413853820476223964623504458398059069013793440158090848242371016829280077863606023568444736446826506546310286212457226080994415451893729976031919370419493446958305265650292948838574848012205262336558104301355629894798640648003206039609108132917714575940674213852665395941295117808925588565516730824761166810434621217142210360317871469678637581120919218572962627940310769898895962060665148427516072675806818150895639236240124061556926918608749304896202428261710218174491477525836676486091923058666278364591933327264966875923986561864881875672859214732899912126332708256341411707583290626900431234022590060127055512965925334944383229911756540569936831022419982711854596802581593744544423523691138948304300082478100334972161419024378491960836286047300830221670452211442063108256148937257781800774197252510471675769450481976945379056992083537645336220672313973127006923849599727033833598542277602846172876685258099499242303170454666621877156492859413045935334959502897739394266270090118935606727086763501748536929638493405119137402998990638234976525142284488202257444999276332168349356570466693805842199308523776855504197571669580394776863639356860869632421795659038145270651406134404434694457894817573381399491255959204894015902204664840810006458164837173745000738992091119137808889667110720850127549623276650911639200430657608957915384067642329588444985133536910211045180209141121958543582501442538567315749420943969237335704466835343984119920537193366864758708435785486788375770576625992525220867508907161607575742736447981960155318690054249526641208109920526022557380082007498880044071963113130631123951835704893287343146002552568148007209383157728422041045039733272297221916439081660090484228512686229897483433682042149025656504769147704620916560829522110337724446880097428958297740167545496294374933073824782423863219400784319411792830358230213440854552967343441927773851884407865173721425116504199986323501123686655403893558505083760002333501950823954286118375019441801739838664288798189802995054784445962269887746687107220893219582984849116355320320239116698557372437808105768139654886000363482433367061186005885969267656316978288810773243852772717250181443873681183550448879845874054128037901747920303772805289980520679306265124232655244240404207963755022172811947959585369291831608992928949842417499251781857226067257293701924235006485923615619726872216190488918381187010407421427646261475143454318262481378645868440783004160426317369454726966773881767284943337494992172889448281540477819940989249864977812884977714512506209005036532012990506079413039359022932755916697321604646088607782602552155940711578012691749652740273961702960102220771503281461627944668418532933391284937411081231848086275107391145904340343044608991156236785653766058425473383895332605166112190751688119047813405326509452963192344412055451954098899362759499664271073381663134250902785905744131433551632740829561326093611528637984756005969913481682999789041266315036978457504376488599767520856222038256878026353574509931986426022034383422587139684059673149134855649489308827292965222100554015808159432910129760254835481793673545809650891220394132291752404386709546794634267999571696360449666100730641132971498169550336214395224739382205618466005298075074520467026818489982567883064944347821834502301475811669307838218012746581644148825511757359744153708990552714599670877800464503457458927216201074122434859238073622791177817699823519746027178164202591927738392660902072986462442494898287158682283066531927599585992237666573631697527636221183036181507968853778934187246196257183894338900417376808291594842106800247307954032995016221350206573502116595456387937312929928069671584770558316597273117953543825269598580744617828805801689008281817360318067316357302464571134932658733649317070049021568394806074659332942330907131860299828653353412223373880321623571948751521910122978323075478210647637200433047318702663643010838447473114334618130002400825790408557552759490136458979099223765936440426578669635917702344288948973209289405970686515264262636575351982190244748509585910151705387784437148094778181173845365658366913998909670026978281814759900041030687805637533396311581239068165322218314043956963971448736923409497096059813736183891678887615837777743301488761805049296185988267200054634300153622606198871847986204254688629516131164114297982476282759136002466603642939189749765048382351117260629098276531209225165059235492263819430117360114641654440417181177746688536051724315535857662624029650283670392096714542000286060820302019122700258434325860191500073207577062480127281046627792112413680502930786690561930553064256533073386036580723903111185114399481225887759791140575972999560577740605349031070461397580728741519831352048593916010784832980480183904799304670482362832358120521400129794897416368029308892544365158637459480579042246770501915903112758601680956181594161507932182913589924442336400877191253681810752047741663464494584210765703469843526582000195888323785264689396885503612007521116385817976906709158488915899984624677844310405872006054003441105564085394017882156916195872236851870064943540743881524043204528495307707074783819716838620477296989953164901455641849019990706649934635660568267296210481317262439516857548656766361886713593663512711022927456080695720660409921440021203588260200553495858255296114612914935104319924629552926098336120642915528224379741837606328305611637612877842430227722966531545909039293188002164057298906471454105266856038178250420414474000769374708661005895437946989659050391038782875525271784476042113967638004889335334417969459719846932866345883230125803959526559596117848331853080283587203382324690564302622412789377223674823901074830656382131010414999277126468629266137852928458989985883832145300917363886591329503634358913070406044670546289146473765009454813896495849492200626516263926699346847964868003710061880893555933723026282525403199294662638224983351662964610076286891225377480991582922000633660194593749480163295683867148638785773008252034075178683442053883371074212703054148052234798432662361598096246749145605297372594126775880750734670637111124173494306346637466463573605190367013079735064064466923363989601926259317473085203131340478711783863983952199210669307957849154347350965992757878779714756223202003581533673844115072135499225801787978424447531333221594544687802645664462210291884678995330388606604411753756250687518713129507859702956482848499238703835842019780360679635607715221445176694107630472052084378831737048627303824458246818316940623395215970449880507105410387433177572103118855474653994859174742568548668983853138070718343577227466182131095360751007215091130386087028003407767754979271873775428951302492452356778678384855196653716688989756753744942164258359398579976920677243009075534150698774115493845778649303208747153116700748182015258539119397154748863095832966016139749966437377838250191719199063717860267862557024726392093767319401578529271241140116044267239412652085303430004324715950923107185514848610966761771407198127300882839835965668035579924432010548597573337800609131301973565932300617941712983362324559032233213209156912241561088467830608486510898383416956407108043795432706772329565717179915503494214188409149741768351269798317807552319142327254093556947093839128270166389110659189337844448985106429744717285831015229455342555635251276396158425688028862178079915896608878928369720257391064476762097099711545240982399873159819919088201236216913409383944016505765735661034715914519628140871128774532033331544173739076250565839398789664199090438180450141358222271505538205623690051076001221780268806518318902567979754453578807144583585906908324175938631807262275713852667559816275755928036352323134030275759694661748164732841285974181561678415357252284247918407910973465440411199303234661599961525095223205099725120806961344636588500880870909040306321251430910562938900131598079796289817640469285050054775127030253676563762488422304353998597806764113583183578568999506661339099699377665338191483492837449971775622279526883996434406490852337758826240607978409269346399880744648529078184409669744117810628907642212874154613006141231175338251343889476787268031752322808907832625015475121375537921715125492181084514008855581863183025072553451500241703413267684446890722097095957178449968789260566702598795861831241280108682313285415376296386405766216315063543366970448102086391118592131982280553621165210951654269195026261110340148873971265471004413355781923803630020808000925716604234843879283736554550259046196122827746859054652779465951599716720559809989846428604391620546003676206565302542419724165561188542171915972100070082298564792183141004751842144884521110790296150292663736262622627921304202827029981491864767217653870600291514310908045890969951483629313310034583697730042646995093497087396492332679382868079694054037922997823984406654059224476173642702310786495426149419869560931786849881641583143905017375799371634134594201441013886953270620741803619909279933493320564992679620608999063856937763623647930123708810746956353092964681030593675810972084090492025564856606655260294758913334162966354171269641383073545451684262588699224183797167797490012809028479634896148209654432443071145611910728694008913071229713952558232257681884943743210911473539120136527020721136063982085807642316716294046028488087495347541990874867357175397280052435146781987845588363037586916319076760036519736304897905985537538417359630636933224659283417821306062207994007389507186120697249246988671534240205666471981442043759419603830295321745861868193015802537539512707136626265302959470126208106569369667873745548119173893572261280593657558062122390801351911433101337664652752546148887458692532733003464787327476444601762028765540658201603317685198092942460237209686333180647516855708459581293098367005691474951442749044396053449709342397589378833712948978762966119619032155057777150391318044021160529460692588417765181636705330127959187115202784588106667196269709162378044600145835544907245921049461896868408046806616724802243136620659192052485520927255438700638870792225553448126449827116248036822860166549294973158948137701158244630549719719911471830512058669035014626003576307807316654271089183503403690605493173354551789447077894964808786777460919672726434467998894600881896572757907723509967533795982552127100013121507731533023381096621802687418806847593609085105756136112661959366697185564990791606741769274127488899136748493574213054394767585909949847421448375835087815742915990463851143819491887781532123319091101195787135855158462012572573919200454352639288619660054300001746908022538592634246510294536583012805287250221517035252024725398656929077070841473637895780431943163560521498108536202483218232060655993215167706969408365896245403733159392656673093284803677831666058499599777984960103580123257165093174548056401029459980236854142243181138066004280804026141068131372640002289209354256402060863091869403736008937304937707995817712139959721087440568148281868272727615949412644104221094822320361474410515612742122193111393657128396347083605969192889423529140243038229745361502192693201043399244679685949010128348735624950671318791068808065273200428805931649123096715462080502981362489360303647867816079376086728030072452223131410654789957005602972272210857581990131517415001879776061962804878786863733224617038944411018664708593294895595189454870586910359337565173788581651522662745689635416930679566322998818435471320097320450943454279698327358439484230112632144452176502984939093773790558177454593766425349416616099978626278722812119793105473002029499795240382028215155446837002740128153150487638205562035014969388009058449260123643458199977349666588767932342906015783942826850902002236759062182215715678593043863703539247354751497922351141654261732489533136634957999138894559424429478996515000422631137986836301814460430624584961584643331306999309727985812563122354687372927471324372513092637110298774145227334021854577548113251049961285250928041281568420629171435001790480041279682710880058838143574124572704938678834363782432581226922388094784541371800311464528227602812131846179998639686449366353507788303916030763430539008844954994719411603182559475188971406403540210458984920227910456663614952242004085527664430293396886657981688168448388232722441526596294881576500062939768478733351779997426498918954298732748066766157729245300261985720894299132406158921075436337627649514241762134683158959495441032144529893920193977088719687043027696729527004784040661531518492929128876527109432922908338632233395891317986614487881840355761093386567178724806674748853221327228700944822881910825580951108454763220209624363681827753842582761569849242759961305518479246945565562468036713680724872179879042611374573823761329108868405321142646732315555229249518826842499871770023508353476622910273377556107339427696336869038621612351608482500534796680344428177629363855947744127597464564866264272816624647909090060811495482872592863992788531429120848630114098494546140895601958723365035863029677697391224574379223096405638219625553313866380520135793672378089496327730757182954928190376492223324014829288840276373821059268871966291354643917418067387907489647375310479030060786994641794382850269183176755243474020234419661333250830284632179978632473186848077441229470924646991078425456198129492056808902003395732239172895701263857428998934988423999669589885227658942102084628704859255211183931888409857844535588564348161015587691604796771143038986775861495058679120167555981559475550643775639171986591640241267328839880246040441688554738530537310011147133686293094966838428769106164454432614324266322544991970016765039288846579336683445788843724563591867565371672740245370772247152995707201528587345937914256113176970827643083039644318835631393027304825267370799368010057367085458792245248979079182811486894026034371884833019692510020587815947862728831671179120023735656778778475014761798774051170518261343959738240255801394762995023197179078174541954990128680499818973437868023669392609010777357970603018284513635364070390235702421925885755993386890467417116994549167793733112795015753469949422408033398048931378313946851609135957383009827862365861493175021039957054247730287292243500450027884448783591652403930029231110330486704920323511136320447634102059796179709374968514404160212154534672949252194861587664472857864895529868379277336253237453398957334055578578753146780559825693933218889965255760926198177587058792572884890927071952928555026958282811112255517158839642108811533807195878141933084693411960827358923156696175266293219213585282142286016127718361686474742096388665557583918028374488386977378888585593115131330558771058465346078375911313015633668252003804719271554674093681507019578504136159675223460537032641300570887341284673366768256315197646038181945072110732219923751631626390873742351124093425770349737547446003835163024439377795439328078339651938272098157369589462062853086318535355279557529490103575785341517615337823598760806498008846133010654430187135624151117025493064671499570542189893190714229170317732084958559103334027463240080808036552036476346521971016459187261514587065609184613983357996118534401802082980819391262808286392338639588380740635676008600256432248796233325843797036741603337090100719313297536331300023463499849198483364313942272786208200197030260673848486545364465158234916457826049455116608405149426407046863133859937592241727180294441313865793485639135647462452139331252962888414851922363778705085090929741269055793671396500492645509452860595549283026278339893886996186809063782242164653500918927060066661197302197317089393728560151208170086885393659858531031248533564608748868498651548799445983042528621274739018735500460519957187659729507018334835675337945871338015555896585628219566601227520914244318411242038400761929379312535340582100952735792155039520962067806887894503387224586202727154937473338414368214077095989249774270062092445684810506365189703909141688172570661777152785584797437495709200892749080134808106532232675649119662148001212975952005700672814175727931419558133739153914459057493040806411659661286578643368788668873593676131628151541308524327582662110978281596995803237296112954553835986500318396802960814364591184071534513669922127370695188393436204159589343973385861042912718812138619915440966121210102196188993433011605484223914730491362448857334255026532104779237962267443222755712016493016367821806799639659902861669883438132994593598132765798345093166982521029735490344722413767696640932817244087061401806662829171312810244659969823252297358518210363365404073388504500552979364916043751276375610071235519596148053204479491494953870131444199221143217397000772721783735225986538691741056703768401858623665532391032628768853663777709322669155135710246717919920823040390855265956975253113402442508774805977109731004157974156542315357042163637858239598125188175065510980160353806668080707253783967886195728781486401949824438916235999204676839943017828041699570880332365210957332860737484737143021485674438028478792034203159230337584322766456754337903252916697953767034974819274230919296970327149983480511819564465288117292162271199373086666053855932581949196570518974876334152338441810905666837928264921190176945670722455379596068303770980902426510050915600902928223602301228511464415235433972776465229505678463104680839488111233427663624484603879276082279520078349793018485297978232392965104950808382691590320678683413535238671535587251819355682798255725837167807248662466998576802234163273395067607851545394858739577414739074696452520729534049348560064559428918291753157225385765883777883259661681036507792719975000587933986209849779678800780390512739908044726709009664941046023618452020874792148345174565650681519608196387482498654706861665623821678925441634229941857808350296087721306588042226639675106480690120781675456601805867397476509910408858345939422588125070106028849973600484866061291911767642221628684346364259576728206807096484028633696093649558933177889442872196653300208433370458101174441797690310707676238105181164875746432126427200050303848450635529967600501377553166530046563581712908793566719253202461422628006296780791958308583786988799874016197939169475926827398149976615908103931658469075254474573623865317911137487383494720649381320994684860394751434296557175935554561761487255528297771058306526846932001356552147692397698476330704669194862070433454901628992039916110558593557131009964137078249756337999802112031137723992633243527357100241232914439965189834908139374358487946071838221861802167387410370961369393407203115220187144421982805185302868557759824208304009738828094811669450066799815837080388532184526259494845584914291340733199498129594983087357415500252451962579265278390122047820518549121680122577241508253123639338533324716041352217742485448275330874830613462873920005764249555666472747235009282961362584628840580494563495640735439868230931550935066552954496638071140492028767796648912024649652446086594094279888160168991129293724460473460001897263880389272605307676802899780573753991377276278242344425448075835607387942807413487529802376565234647239578722174782891296031447605141668228380406516811076588024445347238978589349412916914635955705501363159719627578435974691355541045136118792475264733940171331813460242992257135115143963466006138312546749224078993633523618798013173280649749010819193590137695929649395127031551370572297309930451865696416984369553187837437778303473499776214504053777227868125254746959506051488930548634901025539495817684860248108622476535152044728865052511903597580255282576405377038820427863502791551396197381187353086301475329386796120332543182666133860628914660129153584512662755481176466226219209106069553426972858727415772348820072981007180213586275897547413333477358511358827327698570934437056611380992400860483432005951124659536311407614775992550835897680021330032870252975960336432082463857959805659800478582401458301013075903710353939332859831344409969927343055002400645423883042008380501599636286232341589064832697611501818937483056902330368289296460108672321233500140602543283382170761738136707003539090390670885313370600792138935964145330188612185598790725030549103510407125802748389785039785544824342669499588089707939266199486009146111156524619290359776267019090353699436692474033648172754858114675755546079487369534579892308031919294375297319900181907407161295048663961297361349887169994590750049004131821379105646088312972670473929538829762451759522742933284941817721188048732923276738618775770226439712586122379783541014981994768600627586211401439962787584303687604758335216268978445528492750739867847132079158088988541522854933081021610314213897919237202365214484569176190314598712311064460404093028576379826150070278138082233947488822093903162391098511469221674443498513998698548796669082032674717104884954407681845630849105245234915204543266036057022314435915269491055684709191915129260249113713709941412542396930422409835801292015413312884475253418020655385434785069938920074653974391979269657636636019084897962741652583552836992156636799467868917250592881416477578930964195034168478651892568254750815031708769291775902715459501770517669556863196749607252811562880706887254566066567290798351419021573167072745535535298453247115555854102015644966737077936009409202957163457797961347823887071922448626378644590795929104495634388565964335093089267692059560133224429788604225451351507948913428102005857344945187030408980633767109589413892026076275359424613332306305302183415890320808608884902832616506491306928687135086468852759638401120126058437230232428493938822493341349537260704463703641071890317520793165393801939632667499690930773761857807081103552284264677836166804659969835053257523019930238524080886694653955191642037864807960383472193063778904979472843917714948374162097925549385301119437025766577948798495899584419984049755465395917602296501671147023330433248476222736396291023410852253425578140336410317057797850289752686340329300769405130075022106688531980481704858510560874082124664916407592860650421773667302465579899983967857697795444821685556113483944393724088555252038137182237383629154965776280002206336744073104506408108380108303048449686204573498272310510403825531087062999667977157589179217264351815808968644201468766291260057346883330607471685309414679268837152049266446318180423919963794059374390463898500656459928207947703923944837526231362434733484323614273655272492075666805739443895638359623999883685638762347990843650488157376593657448752522169277104572195499308392464665173267270832454104633249657729578333145811173710680409476726267672751562067976447958664089781482298806596967982633622467639170433689986544203718228298777073133041662128643635916196351397626033924293157342181661134798132214875694542423163319516466627591587015978895977757789582899555370149343127127797597216260051435495588095485290986012138546224660969717947067121258742588431121389189378549499236135664809461358526739021301499489070896934247912400361245244432489849560080318066590256969172416638610846898408906350863063615015307180437367491349559703182528982559893365741028690148740303932532666818209608916220337279941924930344008805489782083415958336710109138020746852545718684219529606196562325664979156753901903995698475872269081706659562491636620623621030778044165028576933637376237826557296127480777198755100094483603740780591214461588409274446701599420011731547757339472831176208349050329488018943240549294093460640716357419952262775537576671710189539134463211398172288246656473246364750223890439895754904417469796046964039258762564540276761686864847985979083787034867257952839701189785926746297721093192447293609604636441666579941283816732232177566706472002030900408286592378374622507169857925137560403543034992158690206862247000016071109465149641876425015153214806365807564164072612316391912067282142965507350391844114990071548480806243152408809158874063865759675450035880313364674337649958362608512225384584386118105950372844301442622647264840414185512932059852695059677793292027955119943042686162405933174039744934729424518251996155939099367904166813322142877839153007180065513537229246802256667482624550555403462561126772219645029604775254780637888764192097186619545322000918682929110123390821698600771003276089163482497316900906455428387881902042143426617284531015614735168760032588743811298642169701210612238911293173710230836790606552953453652814765864553753450228640852763039352949532014702897647575219642509668886650814350655227966739977285021212885828256045055321339024286390384007550717189870689432439015554973199771508379121270411765466002179274572115793776682489020141527891915336448483722711169510528421230772472204895425620768476047100013410706962648485947845998702762871155856792074106435350397911830667502990410185799552711746917510879420157728834022773612019756915281190679606137694174917110230526870789921864555470880573558613740711807145044432851692268289886864554985606900421860037261872772240338369366093604632923205343909183871565591148387611352019945728855090197893958312495726072862323818864654344034726533460397951384950058128754622454485403985928057555726474931884455544403007131434998128013320434307739325752051331846371024021546421220368299127157168436997349682760557770047742393294941203450484831440723484272626515549566453926565774328015239230432593678892333687389518851436454161364752993235660276866233468618877913129403970888761432179428213283435806380777864699522469534652308081211723179802216449535074514892027351652418005225282075349104128770023707081220362832819914517889741021474933955824534771810241498693146199290203073385056257609231667866784072812230880917840187498647174490369962967084358373434793571810311881008201394786814567976868931947312953494796476921314100547791074934615470688156917266479735822365363019726916935145821569737459446256572922735873528470048193252702307933982865576442324231944253546076938616815789264070886344172067759418177181268074389680684581287960115375281026633498638161015413494889594896520820563112897692863050264956780721344863257529344422740219283858090700191172049201408422386930428956302197190878739880355080177434434033169971676836556128074513910293883783693977059704476039982226646359648904079685973349987753281468844572073355587502289906455570263654578564306871000745172687330361464758715234063196303722901386815235818141363557580784335818954754256094301535803394230174605540614415126256690890661081165624545862808426043258665400924820129720350450077476887164686949847598468791860921624472330674051639872416317258635993997740523798320436529879559608409878892626122014152440091216081320838927202060405721296436591377554937039076550210389874542752302019873596094563073594441506125660782840302399132280891514079697857167278231226914545919382964247401973689685973967213931962538363473645200617804747777500380780065608873755939246172117866793279377452848149153146345114801717390600608918972146985334271739102862781105757138045614405202156382326475105087909682280024517469147004398789180437501304432608346268855736282686733198261949575233003711001945621199278058131064710450259712228585252443178115376701940410726769818469232320796846498456839455187629555284186709008197408575327246890991370591361259326013725613371077562055770429882148310413988193798410295704658139232260687321915038889300695790905514451828141466375935641189267001751052107441331229317678202378893896224038790126699577964497803720347668956563070060397849851756797154856293190248937746356772575045690043553351478262981805271219904241254935390085435761211124080033098283973094901065680494353353552246433798606899399471089968573263438323865603272513630901351465190552149580381692200853952094766440394547298618827731054211752897597157016366742897459614256022969427109740324828771033354940549592458041711771178376924273421818976428838916032759507633244818591727516411725588604593555096642256254122973975077681893931306323019281103142675764013010877323118064144097699779555908990246899404265755260742694473837925086295784673745181953559474476829839922157859889767751890495539061295928577029674863623787582523114218927352067372034563537998338981740581659007414686571450229482223846562863313840100008357198772759189095960355995634428081905877340219817207335316511222478676698253858864697669680077740089736557290939331597054575678464607462880687853192218219605688457639613661449209982392502839549848625760225040547587760541927547131994359034102718312204110982517051436448271878657144010673458878589816373555592992886340875277620266004988924228456843132140765092684372757765124049390361632332375800823165650713559957999430726380007909620128903270556144171275445225783650347129861331271431781990359820038978769566336682307741182284423987004561789824783421090840899019080348227222009019544958492880699761517743803135054101389430182907166704344168312707024980472257337895755750939415672642321360143485538305261180967940452694841904429047024886181403887092118372082105307783748897711850865880747053099189878179908808195699372796621543779385281200097920646236364510347852307325171759581983161132508062390808569108095962306305813850824341030664296491189029490863956579442683595519763815648315731912718598040195626776548529686800894490079659155621034736275710128213465537066378161381633388722525581931801223639890881524407461327605171118557040939305369786215517420222512394354053108056422181389059730547315692194119330843200174967273113700838342706855382016727076447540698123951628233500869981955395306287078892546834096485404582812144926450958021111137480646720284478532082808451722280917567578635790924771882066775796958852945909761636499227612724188047973382642623753311544529783020044038435291843406240500221726554984093466751900110471153069056913865791524790932772116572872931983430328926946957140639714283756189657506909900532109957900890211694380499249316025822116317486457087920764036750099340288870927976956866099026986398149629597246141834553678778648954210587717055807749984863521916297064290231439313884501261500339859556608930815686763893532923589003844400674899861118527627421182117548016931416410076778424776832542531278772843217126039520274711990299308743827330658543839020104002193478948939131638463116918917126376666240611358048992941155040202106922386984621496093591461106443852054865621339494649733382688460482188922986985414488580979756818734811789985876568947291570665231720330809527873663159099754158693984150070026756847842081476156299393362493846870697058612253624463715777749587768639476730921856608576526459984821343123633176327417622238070896634157194037276560231814352603914793810968026140169211853841872800312819179615226644388647255260640285240559988415228440778933140748268296491131713771209307952308115632722002486248776402415444436002155230242284885755865142802121995823767273360144747958577084655760792763637024468667464617523875650809960368668696331388922993486815163097811446139106101033572185406084046991459568045921236761595476989673573351826413481746188597397341883419891674316052525048913939833400799601443364700706603851139037031031818906920538539728168188812868783948173526043117656789271155705168369713254707035470879628839656074263709818334243879449735874410793411796658682716937999290407066558796355413624570735369470061996700989091234103772663687480564117240303410084029023222400040006416974465506995825093247128331894407169803906754665061020407156360798086296187761706084104095563651241355428635423258605883313149653444043738693869582392358257839706922277162021868533347413849560066182265997838397882476779954283611492505404643596870141714961852253054212413392774470359159395674942542244494749722944651033668174165909110630752349435711172092226743085567112628217594464325284444173012473091168524710046789380343305885087872407635331673670382842009366166398211286904599300720759448973976235984437212738554048874921146097261839025569422809472023518081126745439565520373646913209375077967196995112227491966526945088598641659760734132087951844145601007909970706345341538656618805027353868699097139824274255063941890272976961427202339243054312372444636296684134469953303402071338044760935377983776869724474208659041503378344257167291826415485915541771738793320068617981187747027502106018786486292548256958034521493579091160622623726589805254065948052573961964346703281733157891330557710566975310434585521927886950880520497070581899280006139782829296646026966288806018309015994451702006277046195210523519267084568444369466354145485602623108554257012946648962825232439499284557218131975396436805586527743543128451757649867904165461269125372419779724063791667828593499606969098370530946141295349074354110525814311434522685121300292057284257063460477257031517008682223043341373321138995631940684821290755098724966447669327307375901924651364038767844505403667243629898905693557566589636091793103280788493649204190238759540930565571431501228056771652205183947791367578335188792613645505369586784670019141537042252237851203083145298318464133747624101504817791994192533097963485341805239102542295646821991122002081540876251684675426860857641459369563471976633352955844265252101771439809773776965075367406191001133008441375977082758259587209406832346299466161603335407958689691928481107896305568192684788160719601449764334970132117631204415747136947948201122208471422788954696839108001744236241410568429826696493141328039393898446380860328436992729372663811513828292738400815437546942450570044647364248812155647156866716172619558267009922174660597243681760744103082033416041760165929940005113670839637779478715873301398618099402081737445635256802121018974457188345204985142215574147874450392496514817857838715012789860912676155998161694731075624278218615091112481337889439098114167449362172430920503641872356363811937251326826406388420890427384638322170094264200504291416000962283297741726575092072679882163854564784225352237618911680805020603440196067042043037123463460223029714990143225957289010470251842331929605199961040814852978368483439014629282148000498150231073822396857008249515052553379261989850328723809236062129755992989614579026694450180167947833252881101932530236581220519906830907626844089227755130636403712336929177837157595851439650925875564811981005344723333828798273747932572701133725661018864537850759324003261650720401444926297478198338810667836154957420077865661391970033365627147268444570936833628110149536997243187782539967796895001091668933297182507874243662599689675783822315024069883120941593718928659920018513671408022104826463031762244598856443495024492003157174873230600882017556900553144294745637521423552717341722884145640076650958771562063606027946519084373266537311499360907923023923953998723869868373261957780662533448790418242817040688115026612764673453261912526303277985587885543216409321065407668446034026581345277293497614146109557920318099447594756283222958170233433203385624640172746285285336350347981809955847001273725843323577578370513544881189333778744391870410397189152172627510147674785019106839792069890945045281198201494861848948998042529684246181350068359908650078750480519633538451642832777269655908067702340330747718224269093306780378106556727008179814011260638305918999480053904013795423158096452724623612227292682246174196391897699168882314444319259407106789240324083674056055850971463729046200437307998054976851940866207329223057388658537493285828425629182102699832043465930094851807622277551908330089774327779036503496491039006305840026961985207127836561988706799701141135398496668492304221409541091253072376665225947411740082134471640270974325905099601087446784359267014548975368257679189593980626460657125836226756467250118701326478754642193007715147167124414156487261309468470863516307763720162128736766618067275237972136025199530229036998991245840135493004575305774307691218811690569030522499694957066114121757587452518090613569517730789509797322132606603500375032148160568273559575477954864505470335341536687079366562668817156627472550334299177696703952766363303278913044441718447546493424066779082288434593467977324726067465273522439905180465852249308647950496571911247797070168836564923432303813763736945145553597978226016301570174434698413655197949389267588053362487248734325414836844819464199608105200305012315466426976034872756456503981454552830375457748347520249027983053409224014910755227721896982626118188485378748102371934397562844935856454248829141130580608715067174869019100257447758388238664139990079771441769769266568110688140594278633170633734319196903155044231061808952291181593332674265307173099109983658363764770036166837548433868900686147839156974392419386215101832404034540420163293260804693858313371054540533024354991783085767807859133416328900984268695847186710013754937455097718236307187832563662797630450565775883025545467798437501064404670270499369649683433501508847863670622347741738324513802447242095010348879541148102235577171663174346623471771861785921660977517454491366215968311040935426783532297466726117335394975701621642126581546786998403547409874742628297751605557014418459805943509263657362785677861585923191261336663433987883841150503728997741150037306397517481881745544911575815096245643924872749413191599083093263761248272633531002405636049027070643358279850935033510687741844113478324871332653260684620364849393855513638514290039179016321174450799716232423859482515921343167516575441741463101188790703731403346909405624749744139464066464532921652440342499234944851288373219905971489592961134680067905593867247847090790119013210063617969972214217108971466485268144549287547170201276057733923218675415217267657150426105607040784344316255999250426410499123026709468047995927149079823616162191292724842606191932904665942068374585829112468500254919931187437952846731943728900899007159279131534163218107221333839433444596191153608237369962234512589055055104364034672350809555502391037575949961708839626236704037626208579513788807525391882077227198484871406929622760856386222774165940736059473335367216197797743100342242105797593944419753677959102946370200102930433158454481443269407330310487129118298186125809126877151903251351696499301523778901123134329781671166294077340915773199406026214238161814429005401202474331392145822059441738173496164671555780762099520208924756029961815563259010393190286851872939318252425461079195368040553140796207230765618988633512851150979904990937744869547037384429985863438641627546937799296201109345367408356211019578697274956196062411169143239269188804968896673677046838590134955414848663484221990646862195588264412963157543421874239153649631657648112804788012856394764330391415694866758772225346980590239214191032030436461034683502863475203605269898109490960714277525735617178368542728267306876778120919220424473987076930433870790793672601709714981790570272804781771181174263668360846196511274729719448531482634106259747520463053479000758048417920878009551393915362727727190581490179774954448154134976079518861590469036293936136113105276665395885064267524548868759954173289059101395916249579682891520117195185595579494892347844857857768996469945808273756485047082630399561539789163636107629910232117723127943064765712479272459558183792298563450525784046855054416530604218894236234767888863787469607948969380871770491431377647926165520043166662638618779193976895934016549750741278366907329707216099803324985176395913270085856134520873703710355451071335247399584744973391964776193420909145965872991187124343814578810346772652188149696003564066730310489366979965809436734462478861657251991818947319508428937285804436115912170016679846287166287069349361063958184799680242596106743759530408053157412949547157989726644830038330074916591568100539836634103860997084030146317669374434268788228987589804723256900366617789868170114975974186102869917057440381090810002046162914427885023119116734296167787803597663660238385500410466209338710221665405035929457074647170356363530939788877800052251529822071329319608308002255468802242373281647035077643144448788522548232537989267901437646208540914743822991184364880818616303035298568755441888362990020378892605037046903558394039021171148860702843357316373356907366328210118400338291407443702635993882032259242029019190664422138991064323593840243130182033059583919559178566848795585517393283435130512862605340481964370238075505989971986676456539976434297481950369120949215775833665446004572702637318785256321605878422176451983604827468645514050662744230094064794522630393752447167382652519857358784590117914184234164801629652923530826788571481653978821387999733659413180635469011325146269850013431350878227416478105369506958927412857251283702469444671340188492426176291106172433229189916817630719374484320109847316403641416476351595023140746687408135722340789419181280940654123413628365984602217934135286954466061979099651472493534278545581018583938949899528168510400747788239564970612311781482188907933947950923034594856720596967419428325982592225868045797673721283368231013383724981971978726010554528252341328659618081925076162378195651107678043032182544397974479889010057752440929671660387940029658391231441524634071158148508480555299270843695949801280608487620094805645143929629083568169202603465479358761201610533213472775047178931547731617189919440023371794118438725507152496959018069350062001657836337943365777831150697335310619768697525181649516802447677701096129065676781776851887774047435536967202549704643439765618228770099471168429467661461998062221490065937114415099182974445467791140307941831597056599959212312102220734824302743354911856963252046373872539854164422309949420965988017083910494073708759067212169590802032212873194992386081236869336265113417215857269976972877393513876985256700791821700632252561945168231462278211429711348221586189758686521419907257454488895616039011391671671496500369362185836391775215481569308763755283767099892020180788232745837693088265953208117348031651968622624871848456544852580977809011276933784910110409739145359628031444220465179594662591202335266461477197542843849933128525549841267485352852155815700347866427362642134221649200459980705494235809297700844658012698929843306365424595799203553486253661254907727482492361260242513093330230107018098348833080605509639836713369743590935927871910092599807913437527630495183249992173018767109134817552536413626657871626914410282524667598572021260204083349398799653279916826466195829775758662276338533631017147113261705333092961604008136131507036926687562420212059719542147874394830499689549077287028794911218450461579476221421700645235284545418179974771468287040347650936192892883696410792434355078326926829322772399916190446733409701879692954099879032461130400455212041061843793173896390198182754071517425788781719340970115407415418799419724953495430241219124588188210742511296836176006484093558995808342029866027616943797313594563102406651196647664551491882693430115539111385628501581866970842166682109983502994923707406487891863904183616282939292904576029027197262560534472940300644895852705296636454083588464742656006788089060023838128747328824966473547159163729680814535800901307310452132018414787329251617201906373090848806007647564897451216836924511086525839896567276027053387198334272306266050236289848946264705020144460613969110460781069066313912834149009265418144655408348810602360855981287082544425169490156287301452859531800785240778631588251614413523444411706135129687113226577218792956618158326166807123965227891461165026553217116469463784730245814192077050704066385081736860784101852205322224267098693590772018914783903012060399354240421505339996771083041569659523297574390654860441776565278743521799374882899514942240635727001547293574431643004605770852502769625735439643177477691480928953086514905538718071509435109487392211199309060642356010481140160419543545362384738133382981158104735752890748576453628100733472350699815284503737303840580246436504702136512674910610332405122886692890897206191421656744431071479191430181362344452858751738886790197287224256324144573868797369456895901063578945043882139836108558747785826022393306470619294239839102407934427939351583785331433596843527058043997363722425375353641291227256309057369350458985564166874242495825534533561809665462233623773479863278047610272610001908965102276336228294322626694209644610589952114231285522660751947853904726203734958077794968481600171308356856412219946283323737177196670956047885267818709884165606968187800485110945486133524893396381653784660183421116140682412988079863799470272410479619062246266597147834118846798094117457126342252777446145428263140274077859385483973247083600321545580839134335390969286868468660017927444252946849100886468580056250107372005568812924059131874496720288548377230646575286735259201412628824490066573086515028612880601175434695066120366344671253541737988736201540199065854765240117856986505168939740425813245684190596579529769567628460511910458826423559457708017682161777674664557036027644018927210896343832794138398902755829213719114241610271005034216315932970825529195470466739515738142738447356914093569472056127304702741918826808096863738395598724601117454746261871691105772610797991369600744350756839151843556913904099065228271472218148606841818722077205424922246043422749362330335786216877889390845677496203081816296676727654371180469986950777968031978563552771312942165385835413195627353670441355127357521025803337304834451416118083405177068186757896431278531110028656616898231684391845268683815189450223105415941879035635556686714493339967383351508170900426738167367688156223424549904399921498395811867502242005322457323272456232214663011940616601178465311351280358933205205509139001114813699828581387450992855587148366028232634648890050161330452471620999065993539574668312211122834863613693995774150385195833692728546070469922280293525841626198571433379655029855777158201558242282674043699885307394865934748830337541639896288644743720134807142174269289732368310953957838226118352220105278697518794913845677709571640992597524123154616491414289781137791679839861970230181410501195001192713756296579856601346028791945981131538072891548042459652626842250857454923712151943338106957250344773388745918863750392298867216821362634424568278390754934830831628279730491448257373166613578649255477251074506852821980518276353988722931302701802327257426351408408848844933721675730051634410060439506390541788277527557902978960471630051545555635138929889869576260887833726090797800968136173648880081995829719285566185244117476909852092122158685445765171335372942498200499938469410587742060039433529081847889050411002115330311314269406242617554155064100608482579110390400711125536389714586712210496962048551315331405482137477321678365644238922057423601136873267597472671824271036312102515439637303203875589176340774712386498584525446667051718635178016693900776063534579957480473514507701572532265751392822559634099857739722419857826334837947658814885058967665573981353192920120086835823883140346757275000617456336706856786272670621906970686899938815640618908940475021583873937474042328991410509635885496879260478544945278215482697479643113844096208179514847520155317761003447580531808758811707533273859137381556668612864071114642813960860955633314431915032994064700463168858642864596538185062837297185575882000668028141145902549900834624947679295176127705602091448303717008965406727699538015812427667002588765590228047372154167006059784649010370125216457348304741147626936163190305904090107664491356091976025182775858564765316440153364225306952327278859276009857111915643376268941965993615159466803771968312091855836743665256018483704978657242747311765093251891948446306499193272229181470062624844922140175871032206728235769695642826024584300619001314499862365515900078822168179355798490163856532023374164473821009808678302723706023206973034557929185037195540153595939172825589818854440084659145999497888692957418503370957148783355092384136683396423271996221649394290065480187659342787009452709286653598470307744627985409066204110514285609747692505558339458322975579669964207070245887787679505672554193557030326191855463569066017383236907248200718192872626547778871158000500759584623428759496050534808726607659740953551595204326193699965945934908331033899403545995944507822855232292781839921096507952214724005274344133675574148838856913084184085651274127073329914434782369228334730259379944074677713821150589038426866654321533445842540237167901221992933643619205826223058492082189314933708805357596953742588666181251997659122879869913773118941578796992362543677717131363422094533662672629412055804601544286749468311227830533351149020402074261647566790424559750849462796330502767100044747312867388966614526758977718907521790588837789461022681005190262606349872480888369890629448433117347953023775903924118944905562918593769976429615034593778897776899272703852787960451581382769343995375815859942598832522486499454377986120272896776052798285805905392158958695247115915494275674674126362725545383005501201418485937822195949662752141118881329383548987128634873389797514141552180494498130678443939370277597519502086640738753746308719874119662772698900100518038506152315363870399770513391718825735993313216699498234543391937043968507772012519629229937303779448439703025185810555591656945154789727439740198819328703373340383178476707672330057873193050098815892245222683880135521680615677959462411879291541885870849099420702592529012682875877909710351769908301759964569516658290939509479140108875180378527151341922178237251548385442535951090768758789517248463367569467734250509390830143966829049174371304890299203234963183064273557382767379910209801059862176915629413616705192985334434446318929167913960346073447695541161019899425327351910927275415902837260337434586371439514553970364011690440250862822991472945540079618666514357200102613563847169784427288899712806911289252294622245228753753766316570600837742485095897124545681648590551636828690398915682615578016613353382809928591801286836141044985683442047290242263776503580128297853686708728522368338038468872263704089337659036863067133042422802832505243090155868987908469265018885641085643008290033312718675270830728973141316718178872924133702924892186285932967394972781831237665228272806568838107661182663070043866658831391321685457082098641142112398871959989807066868311233764976056634060994971216024512364050030433015289962904427505607788423092783822107056302050643866426219011521506387426498398748212850732079889817853634145165445317700223997547319503562654673079200522770812480436785637587667572663819313014950922427329156546452489830161840227050012540104609757026630469994647266536664990442319284689499732641459593748761498986607970824732228197373183869528988703699506273313934706221299464042687038461542040278322655862266773259050179256732359111563034576779329209835418605061557146241845668632332204276648024561589954372681893428754770571304722555968578077839875275772043054077930492716624985092489971139755222155687384005117401877367014362327249503608169490932220625369155611652584942721982887435185309547873889029965245630932177695340901915173493172512679577805224539193365845077257434162261219361279843793458982838008893667816903248456274306409780402745034549093453822608174479217015370237055067617032285927140921838742887576763957977421739897567989063193294664701404341362109624016630560418517081423927747402169440526324558024119542293647709913328834490901311289551536731524669193461568782333274107541731553210690454524648215420789121045288629878533980768556729020806345685646731962700317653406580019895710896862104039834762353170737719236851145518758233073437736565389292122193896743587800634344482596354174332034446233619867310768545682555269327706543024469768814145227925597308722897789646996639969115203758066021709764356100913980914486581897214823679010047000393374898981911912651793839135979766415976852600911850822606301785401583664393922809462922084819723413371685147680481487805731241802547460853583971317427451979176409628005567760766780165941709610983455089470076041470942748808240908471787068519479535801797210440014905041046151121829524580639129855719868073464122642135724112631790739632384305897588044928557639225665876517056302693803996929505177770912872174969864302090239517325644252631680098093914941066761115688333389441968920222366914149314340083095973437333736748445508342170532574820137172827915768995688782964665234250050908989360464632162215365069232937534406951032643972798396139208135477327859645041292295964323945325452912189994629186950348128707894245384910068188942312849064236031207614418509905848923817849206302798844286276222244692610787932368683636041479369446986700525538671573641105047464235951552440014729253664804647622823643421131381528331867207990544466438349691417773160579855927994403546009073869722499190101691908254829731117851648330467360931902252649821802639539307293703998223692455396860382151944583083153091971388070187849764810683360793759882241660089538558296048371471915977463093415033122441285321206792931769093723689040326384294270673484643159469885574597757013683518866113377381454217960627659922469383034176091463561340345392875575359510140134056144002365562580062606722288659514482667886665492418899687310326522520474045743243800547066249512957192785190427517277734982847997659412926549281591600561951327018849688908072482821664024935726679720826305391342626118256897651883513118261898176344927992434071844943702145543640036805398602533691649575636358011808912531941764124561611177898155993768510157950329472770410983554021126290723206252620877700972093181070202829619969157373643646824032920695733913660085966358329939312813334830720616194225329817242455030143632471818614854694800711756927492742591674624319403089430703542586060961421892382935022945724385629508130376376073219821037481244914469098494617240896174566254577480363909676636196588557618749761424807927131265238939009597846024014956623161338101450751415391380077706868032104520673889323868603566266969728919654712030692255872724027261632826058163079368988027734026436972930388263990762093264393780846986508858493857765914906129554097802369046500530242051363241357137563847718083572583117852951717101919519180970385468830086369780314109283032313007891503070701851975186042979325010371750310023839261338394712541165089481929803275800398591166817467393351291430210759095453058778135325047564958464347981454228433356598098010232120588865805809114702474328554511458405276228290176231369683746111795590912910577994007854231061769212961058185299247010130893208725130321139457158755719258784132554087910838816971589271321204179855641796813768188702541377589815789108070407125356387992897742304343179822971877088396696257321192663288692724952608975532334369928001964620039328414276360864521391501209014745387686758464658052053163302050017020550850507132833055700998333905129683656177552058238425649872704447747531658759476258526411701133900552325881750622086202999952390245319924483376538784857298900505243423647967894661862999933985322394826621959536573797523782109671280474069708671707622286723016902764790690780862866005670757912314640916226944486841686364029603357578171448892752418076635440918818175279531208400947690609850062459713341967888879972185538901855831705443736223397420849864660004967144972766380123436641705418144375828482265062865730999923021359279056404501244537731864057528738314852057705596118409428834433670743112132841333892741080918464830380843809839295705592437017665400966544109469852600100645778290826700577239739401490190310533833098292857265878947903052191826097635434351406186670882097188618234407736126880142116167817049700509281126429591039861287851828968474537469622511715646941068393893996460366803501602829400167510211321825175501342968356290974759189482142099629430863194506797575648755982334895557968217157551586318367555107571441963547485790983686128068101110826541309896968825107622390807805302212625909930110487297755421692297220115352985767553546394556403785213792929609064952213897057764365586626334118525700844059728913577899403219022083493455526596584105443150238449491244094220068659927218558174557989085779510653021882989593676141346721867360147201106551583732362059532650683002878418968813766803023843161953412989936149613442713882476084828539146559028428186110691650436233351106954564451512474579494643398085754315933962782014639934420832193332649995536024020057211454599185548953973413320635288864901243465403437401775430441582878665330039516356410623535071536663052682040678623162535517192834900707407674170724543646555762072282096572029985832752978116601351857853979106366469286746930590883217592152845354345456349419859909816219503316469944604504028170603597482076752281773731373656921976889995868087779162544476004340901969825420457619726719711364750215851313292656843676226501491314559538402220664941764218515476002099004747142988627458105357911964162248454713450517350044135448857304433592169540627360920538651673837990958482259027011793803466014996645772795212406812073236531150519134864720267801613964104137278684420481510585366612777852047641976712953307081302297689040054108736279238532172904103874130540370977002647659930454874424110529513833212377757890179929268887969878196290612566132646393856750618839678340689617105918554714897084430378659377455480140390651181063526679014570975412886543816948398299058352191025348666488033790956936530083909505461639882686123208135228167860287734522143424139282834772742651011721327745507847629143713336823998289907182144041995064583800217008365355142570157846209079411280155438670442070711849215612889379466494248463225360351029426401921795465350393705694433782592603143639836476023436852147305298983714005163164210156506873414802860034379308341092268072965522262619442136851600744137751784890703289901091402618882900890192114017908003148749236269204941171129819293857249149881572167377642855210358805909864526027972308270141369827936596767285633350638058972574350356277611222625759423679382017087252656312303087404406767731491466252539748669315707876833096950088288424979419893278707809874976458870150531779335121420119907990012583144944998648848726134247743443227827578668976412182984401518722033834510478104013964482864091463976819343072901416595424887876428918947592841303757808572885066638812173932708499300998692877138062868813545645749105950708155909785969267718424009639607825394148592804832702901078757115646091419928700845491266541717505652052338759057109116222450401981835688099804247102656799072583324503716967402218218652881774142659067525175029124436257310478855836204471750669157701067060801376987074255954829118015425678101718673605787283965246529817720385884667448512333028012216932817539983851665900411704069302021331275571402702234575037627328969771186524964386766151641307562013196528932646782822306911045859086779315704112636795255405887179674155993815765711850017406870195562899411885253385163756765954926645333270825372395464895467745201623766741384749576717771604613125569287533333208799797752150085863400985269042620064122023944756881097568669925891019293433411276890044394324541860659592047054846096005169884123121254950620028499256101827034170840828467051119521358621866416027043026843729095425394043740642949472408298952381594252273677246154374248470793124810408379343485435637073931422610491664680248560529001988884120499163112790208626899749394959538222448859472893907271556992518162164987716377383221177619283016506852045680449234284227080672605901678457259693330987916216431998419171569316017117098595389264255023189233276821863017990957554448723155841089859495609827134055123197097683594703545748676051345746621347623401057791497231635574842241644290369266270210493248931277486345880245078334372513241978095023011474687444919273263296607950627266349161784516975795901026416970338651659437732211857618999287190064628346943665889025017321491974379019326261452097701074744886221475238755255627893779623740973969204846901190591735092724555763449119784201567392981207473304145738842014882526057317467377789092331601240361081368604189094354411268310822501056281808648281938987184533315253365940193482370669638475998545568470663135099528495205825812171753956713413924369376573219130515931217177664918281190940514587542181956199628626886273015673658672743847094723005223638381728186926695853598210212223755675329649591892140857249343921533907511520331141002252937349347570544690989866167727136851464653125768573559433436055077946261210725467594644023724105393704851739006070668401047787346650862497496528975903028661913697203196956127295765918519086329046583283539678803796509102249143466453103395584625180161430469061067034990046912659112047631466075364700867607630910849802648902038183224771306368230835847302999530381946451586991605080806889191304849679159729844835372991246682946227863199997151563272361372850320036841879594626290966201713400075876820926509055246274992459823109057523172017074727396375145394844194305819093026773753495039609648163916945584048358416469373830838158091592387781125749508088511770266145855482140622415687674135422917957400580002206220388633681895980773512098528614305175053842424116643797060586729308697567857442496896183471637169970216784369909653149210219896679322483878361888633551813279285805104571701242111507968245685002442242677958302819522724962618338679868440236723988073506766619850137010819081310586974401793940691280356882899329591323677547222470679828120145748196569740601213681439543880881010553331522595516222048348517857465498717313461854539933756629483970913343375007607287117921127233492427616091767653240335310622890988490086107825825831417066435527301081750834699315845342732512499345375783181693419142076121652390858973626446328591153597638069835553016933927294260678475969379389432178781162791083447626368053135094035858885188985860807326681865900494157644853317643638356755369369850960732457167768645681370843516378141922491669242851200446048014007459326978391400191645429467457251962061988400337792113448252814757061757502597818419229205401880736277007394294329240278314345397351469279233000060403810969011942994639946361407384355955655207881555241746839476537384700676859364978749320426428542310349883770131179711122776750745979119859239723124814706930344809850081094862966564832533941764236697992530441098260694389029735330708439335332337139281640054645488117495377212892708485586764750154123904193404611757848703537872205242566222924357386826480140230283728536959405450269914745248517470927006009262623256968658591344072494601726162755446425737395912896983847245265459737205853008473517053592572750440653285735908783531810368301778277058697330851760034917000166807691547181580163784014363371351641840191430252159658608575100771779810156802064622124945788456070106798118625879834241687851700929517997903425141754805177509458554499496840379237590998421607281426942378613848599103628741057335342646672973865369145782025211964036506936904211750415596647592799481670911116161853558880241597687430673395505108354742800150253927725723758853447393350742492426400311484718983836919667555170246648711275576564442337013951629572251762220491633463292070183916135454939238771207370789527806391592132556008353512670034368204966627632225114747525267515326126669312006385792119512262717132282101008836381284284761725695054130095508036604416860893869335731894838214120901191605815339447515705670208410596393797915854006535108808489035743914650688324535038134761244107828268362084212015879025434024126805914448215311446613056899660938469399391565755734200500980246313811853135727406490623109514538347279381851762473015475549164405077594537857530363369409858972401805281234628497024815411164504789116858749031973829696880509376992064544208298476312530017947883708514161174548109558290474403736627288618220461052743309105464896753442030641477858171412862043578302679887712953752456709678579149002053139346164852599575469142440270970599794973268849560193871331547199544514435187986953619611283444317568628659747237878623393343578855246530382929213446969838463789079552359563499433890630831004547557662030654595530759115953888332122336352990933531406131274309097543166214338043220209102612055455529813703648624660894754070438843863413192549011657891427467992554231326930821444288055579022648971282779510957474065432937711404179704467334822261885405652895192561227171636434359894479538241305581019420370563830950644662936005919334396039188717177609397498107392275485722292877662595304854657729724497610421914363967444557140974331443622495394885409215348457034897885259577217640280812877173390802558404046333037508593579757698952916598397865215579233252606482600815255103681801352214948757358012173006873285982857673056280365092793081945620087696390426531995564846954192753580051804284752081912840380600559969314048512008012494310963148864968059080130770540296404508907442995808596811001094616851880086735706963553409543861940628404671641484829961856506837942980329446024586987212587272120313589175642827861943809118629020738924662293504674469798352287384697754150744571994535960460339700026687752259028034613286446587301197576609564823587492508444847165821214005408753777323776756166418608640305938041769375533628550391376831552966705155811878739817458524250376448965561725607869863349408468148419335075457965618319207603363198765084869223190800262013709707652264153110479273561182942080736253752056559007190174376372531705224081498138065610812507064935355968950194819211661305127157347177648149898982595074559148510875786856295732006341366268446560283309536253288890378048354589673582924018569250369383763976983684493574825015543864523783744701574803076217000699324134683675541860161020592326504881008187287464472483507029341858415289492434977147496083065178292655663265545316210574171268897687317343882689103182166752678024021045229014026065745884883945762520763082251123437282315006923500256646107037318826212775043666153088790813477841822053578670033476550077362688512615804480866382081011073140999497531442278849901488303567909707774113484701759360933480442706563978057554240944873892529146899840286879102828344077866136146824718535704618297290411710220782779609523050625231139572444635276094646508741750026380973486604942625558375439321183168724369397329304075731864833176074841510460887403005830069641094826150470062268881067294629966481030439830054364736336662241598569395295026784080200737316521201511930706195016625187272765435034770769524471233231624144080505457326018469171350297914769133195245441951462078181015767262285435894391539224482685930973391220099853758729973213571773635225229904946768887070780832549124309759217762141451618134821227973248459724265255540175204888402688955646023854320930142516847725788275141296484548574617739184976610593996281730594230975683886590403715107457025936373474695625024035095084561268112050428268298055296600362693998452784212424915953378353088391379780283032119745387258370866510730508434961436549982444734554248181044493970853516915996890004014230254669033177948524643877572605297561368905218959944419316217541200418855600684643915794941580052180614149413599235078841786042332685836433982252637961560410875266898551282753326066517084930111954129874461770738938646162603123256642782197613363933916501539123660355224874235937369742931369460371263009558786856625969830251776864773813231583088888577905090034333319145091290957465383587664624170146861549732074966649760428303274097515460319104303289990808005581093894520341025188193211818309975579941363052861542052517635684009868507698084550847659293499403642302947023678323079785937257739524098505782595648925050571771785301805140913613067193899931450813876760954614425473287825329658421274628816115534182110102359984526075573588122504671568613545498839750048667114991779617113205732056703075871899057930145897691026120297884204622168303001749072017353089300512903576945332839347546528371537696698807246853261836737362046757256184243539476589822159327281885811258553393966712396576106549029768569807302094147845372844189550950603792314595962135748988866591360429973927926801584271086907792775828808857542949188871397872443633537475192106851974176354247572966079974066089313804247581040534869186021038453288929930531725189136870902995782118359691656934716399241585676755341226689303334188204801614596780560819764285532499953528695220133772370696751214074100850212046387710437875309563988120682980268250218877885938770110033295171098135465999462047739885477780181996506280763033264984754341340778674176450391098028918016875087380103980807042829839402019476866612140661371511898185475605699679155748796263031085444511658204313943652023530928867537363682656362224129915294981513180699231218476173060690596237019358509137672881809437791139109324339692139825697644006172334709794190620500118523842570046908261385528681428362705315276040002976707298467032898935121475151035968366049508652686922711621682766006834211755459287240462213891826706795250655022274247278934201981480438140261550317398403167522460682412957296376168277933652775152489875173481018640910630008944944142328850234580770376202338478874739119339342941417030371844256627499377530128077705777541399272945065406909293566721051111125872730649504916575748315382615074331911280548766969783774368533979392615335982252449985650175739494036414667095538430717629312617688331813073415637776734549094510744633403311273039051566743743153111050692965622662547133967348780283201077209733324565957878686662222519084321470009135316994181729084311182178654312205363595192351374499515309508433640796276355112412841391500544042181874617123843253466562719833769829207775437427225343133887698304908274769952973065281647015129737416808150251483735186527551105721011949443065572785779706660598585047709708698839735097082885317680238998811221287117117272353322366188763502795078515823012531960891754768179376212181025453876895873894189765749380347264841471724113805554473428219570912719251246290444147374274890733143624612936726250460986637799432051003474240503322763217770479941122960978792362992944779277237300539239710983045470360676584925894343040144144590532425661290429587560447066138661924640486781221397447892542295482572183132490409470301025805177246557235461738785171714130728449365518429434964128862895047953869883518081794497391400703720572264801230639685124477331196822202519055625356821793976599155929494850028881341511128897653352016176675659341480837180660532499737015146566802679761243728132611868747736791417464152143324197632901495279870216717124537026641810829757186435369775223638969537135373734996538514264086806072938174552093477594171861025247103459811458849540235227786181028224939046478099589522209029570066525284955957285385196062350529718330653349394360834768435490081849246800164296308529776876475059378380463857747642216480714861792187746731595122163113366095389137482513041228020505997705097334901271273017602768971468778526188420647877619684451213232157548350604099758394112373200563137506435360862506059166900372955497245093537751362414040330830683009112666464885695811727306106272506229763685093092346697875268771962398318581260957314033227432957044532444519384804253034206036712946130612971842638388361708154992762087297372879534105340761002724923539534137030466961840106219634327812258619916713859169261398251574696233851039564735858747584463794325164952417113478062110293673765036234102962395534860184848144321755657394293136374425329215238431220432942924697365415545783013038606620966276253148819449001713125298133448602331024208710523328765110184648243207064153262374941164308578078770613084515053943759719365155770077005586931049374098152295566913685229303176948855283134350915787052804222472461570884487364052375157962001968963147893869353526825717026659160581126427931536254375074478163210944371654470717704916009938479960656024121161698624282390358333063679679030059984457902387897240074637250687403340482838255246672123172628301798130821548037896205732572751251606347797755974319586886146320052062817329062072981035584777610723483924725881746133583128170159846623026890064569091856723710390863672095977710599380695461153653225230267572675950840088587780084069133601463097107815458511308903517654601633930122410421237181533293907175081897801449751617433107556964465041719962111126323876688774185780670471009980219071276133119402263536848785155512813404897160734889572950743520963338310598521302579329769678973524828715170591509503577694142213916909844906851239259459562998837231977702306906496637305964131236591819482625274019193495784523607080289220658134999564308295242140996799289836162144481648774994929332127723216129184617735861487641496878491338994823590349128765406780979188622231534356484418078421259244038009244252054077939244531880437246451354456735861248258058953690027354615006606433103852623669838319131737435040223336434476683020065338469694150164633403155287061792889095420896343339803096594773824032651199047982498981078326686067999768795243420653818157763246010651159721236134165832147081097657191797994630830256168657817140395835291197646630226638515831125081333462057785663982506944383545965550595687465238381970140423252337043847269874950793068494665223554582554463013301909006157136500334988633990867343812497092471464481416747001676448064446967743272403116560083343462504221313971321471999038240942093510695534045529175404076901438183225591710817255537841868641701918336248086231582342936873265906796946861185522165258378418510053180818658747305794710296488601748616609103309316143425848197468691101756980199007102635610223539604473004700336061778562905036079454797345433045203503340980861775117612418661202728526390824621413900754179266494207312898454813217776363827780957113902688397722937267781232329480989771017737566824397799933212080766438541389744931663426670060070966984854966037213620719100102213771193169754090786938719584107757486309868012504365334507360788706671357738012785496132481842719870797943678795795579624959543428762995375615687320100476312818315012701835309108218323725780528427687364835951894179406297529319180790659283856473559841750311187932965105129649457190174632683198124205731481423064532396908110263319444109834192426091235783734497142567548157957050412961058603409368524616902901165179022484801354157521692384536330883475870853440312586228266532017061033996009270716515729093566725361922563964051871323983640851290066690022525733558589337419581800383213280359380875609633509008474167515605601841580501654504731071457306831664148899252367568124443087072977020607919174163291233944396912446086680528218265025980740750933309428804750073750323381134837750765278992703289219322281696618192186857934378010637356056828452353829234929076030200618176357148233586118451055355785370270605622353678286203306412493804312370038743374738620308620768704626341193287279449046389462426881291279937779661880711599792246875170424800981801673810449649241600496670206934657047026312570751018233825101635713348308683447946783087936635594536616819668343853028744221368182450231312718243488541075984354565207734901094133588356367148164571101743582886788994508842994704695190884902830915869389975227117569832695019794478390803103460396189375558109017827180797279373827050826811919002204402767814314454990116369377594659935953364041942692940022697120764914085235303891027944689642984234124939785657116408693062905507809642403996914105215236878249706425627826218283152673140729400483038861910924652090569303964934166045080365528681533390847416360843214596197741698159333642974046902893075297214549694361988442418759717794073393796793676525191389778509566514861291439705559667444330542847288029047554731538860309858811997180152897094615571926916850251433727871838872135760121263232683328019206014024174386154781318743804718986037263688229606852836904470641323005466326850000012443616634605039746657746996400869757546260407539554488633664946626408621491129559614919524890789267709630404538829707869596107940818948343829489667604070987937437355990136342857951461550262845703802520629287668855141427313497526428035767774957953730389063154861787879743769946132315841345429243552079327806241346237039366525595405828986271267960188910240118673393064694455616364265642566409486507294050258465855158243616090084245369526176104833839610637924940115399090590139474347094842093641686965848473277958170478536061520246804040345501040010168516100567762937856614377655009047330203017791457591822513586523032026686736437882606350417814051121038494077795751680043612995593990404082024054715537540807589898125852323078390691179694299607787019519613404383278661530397568239631087887480951935421831366342315247298843386699731708061929944162522580050777513341747153217171699642322047934068854951451834699677145915193547840455178264353874113220169310859430807622143201946031637268647969342102165075301603141846772388010260377186008778792955329538702709595906091504934880829618501512734439358849458534242950476168529843865950688357133827600635223262119463073010159092497742746226240129192262385323850145792457213497558267134205965954555532431624049706438015874185821596960930287652472305981948722704785613679451500551296281358103287063566140820464872586722759348487782795052979788886076202435435715570426274539084002321047016835847785875746742075783749954669271551240614108635928063140761632502899205929924833856042328083341880400408972179656784859437465559042882323272112096939833686941088858389632446050644597408036146561968312699773648291812087054737070930761919495991200766629917915908170298976649523192561541830672726100912073909524607963640036853343132214053012715187240592975958663350346703207904624524261850205033516002760117860861538393575238608509706113047172898557573213521203346676790820736051726449018487403496344782333823102213334947019391131050495532391377091176455788460160686230200143541316137342144671182948305345252701276403698424131358163635840785416777019288480855421612226656295720608558218444058373663557873568511940703797621685082804533231582013443683155458692778214873833235121555622914627953442899626317299349704360684955315389843136092050765739376993849976548342500834381492042965565553922425849296709996202174117496807232140435572385620180315015532291991481492166563011311089793414787412680474160035272306384232139627341896912563870618773950802219360330486094833486029087775624586873470725040614532395970206628133087560288924555301573204186914926329225471930690410407085637901369563798869026557552758895872340182344293412988841335905106498285028694986249283794025307181799397463351301942338642858734035961224529758614508112574492734428398173403907216331129571474873091285375715851356926169647961756502159443684581986890864812898268371559356924766910535219877773072400163573585747922431240473756233990691297368192321444207451032965445969738241538666006878749659283999812119426212649932106406349497736253174944931230906003423015220632349489827858150672999405291964358055184515642451007854735557283916251661888097847403682636744172614501262410205653711930379946233659712016279561304354081021004714421666995447505399691753115425017678422936783988308343306622113803212041611073617694296477828391960939419553716982001897253631018290010180530265859426527871970154139241698351541686936976086540770695826275048574839119697912510191711407599325875190779274332139709144780215285038662138668472820000235399329520392560743848229102470623704624087940300683235980198066479838190229649668447544705909207056055202788686260819041319674498135466819510634280712316646003853680155366445914581723424408624454757352734722005688173478636635201851565487232687008366703309642897559316229734674070285316293325062361637750297723080890734779623502713444978298761013861090714011646983569685635756119671063631723261366958915290555194854328565125653735013905222608395632608901967318243301571696988743049827011800671647219299031526879456428140962324659972578572409691905831140728722887558965235170171552488610061524156911972471796650806794264842425930213899748848169469402056844028954204989074998964549722786408687897707198057834149821826200890307537830523539849310879569087908240112850212151862472392843703606036881834748853970814221506072204119812535258100846028771270828635648055045606120165831361390616194691752075252833188086813636464483274054140344736897050995987007483653603595580050090337616279154933172502058952102385898185057710037442535945415502525642695246668458542129052466153412339750872085854898661532022359029432502718914155402151820930512310182643162291076310164377032203932184687784087002069569616640330834249036214416019425444235125432272241861626818685766144110204304969515755354626344984962687767686319476022444047069392253878163694412972477213708757344558767235313037302268982559711197098430006191888363740800339581354169019793039436253590982427746132307903661561440476270994427843206803846235930311498603582787147148903961790626761174687118601450492808917921526470754153926367769455754316818148756199976618677143356727681281467187261965131911656200280933958253950348590341426694491050304747753155559070648894412828504415998480771080536031271199411075594857593459010619424572276544739615141805690563566668305501679370297615469688281436245255708095666231718955331098116743508122074400432825158179877147535740538972813407405220876117783722535646196748491531147088742710651249858803716201856329439396772959598832437536679068473639771857557972794419487448165195375518262298663549506569734442949892957556916105063573640649144930237162913151418566346380495134708597077115646365822863108156212641210985225761512130976730185152297692902462935264496499935213196514788867563806038733926880653901468487236660653032445006349677522776580688442236069979803571836079935353758509831957012141238130086990964470747090801422128133457714892000988021676605623240730354045542210410747364403017513080208081377702330578112262855252478856336022463973968039640329247265537079091941523750538468496439123429322950594481654344241971110577077475311969193912965345903085401170138339741547344286001954628380820299329803211861035122124602524090972864787731428145173167151113535743722095095870779051694659931347505342087886583820281335001928810252573464042443536411077320524211860751218344930972565119651838617280199418748947715680123342870024986228835846729546728934933362635037782309855772326037568166265459840863276960852180798339281631818032943137707115430398496107933327340495179481764948139330823270190462799212530094117081219062729709725527068003342750575265711121379133918387736374042680306451457074003936311741093050827164327451221014338767711941143728856199228438152062852760765663748429151844988741702250844809677731034385340008196792873858466462485352690827096935373971782827956100954226369746696386216727307915898865102402321717762404760661539869333114280574407553287865790942969132147136073123720209741596356567184208813959841680692174694350447669528190599731525209278100761292166054551898443836165259191503121489194437588902294697762187934484134796041232329010502035223398218048228851854246834042525042992319171608837467805600585494050221590699017966604256089594259140589704998971001319633513372370937319990364489874322338644631959927705709208768328454724242007345951215240344223320279503921783435368519528555452347845720919765997901769041490539664498211487211857037869385977003689484115233141794160969948046900235018483530194706864520201973764196027456874629638489461212320584460703173125271157873516000790137492146844366936188285851798386141783846274553345608449677499261225982878270199810576765224203412253724851343351203374553760343350208625675709288948243424249335052880720766767338950409540749385836046852056392039180003722040945691190514941573690378612544693677294711188947383716547138762083071897895426936002831840114823603883485338190170672555680193660410944069783788071824161592989973212015678938315257133122078778746587244054037059214229007111166655976539695103863218041321071428179300503645831269601118051825091515767067684311881667241890073710807573221341228276274067004178499223337784385263624688774424987764025023337551360430492650471954744536058106011545188569451713198848606135542697615410186468879736528842628582706666956335526397339427663675367550037495762659265004809537368950531615690399302786491592779318292651634975717527901696699269119159894148586335520605466586759685134160806505185777081602065299480810582036516705310527621447679507082099971997375203469320928227411451798155810686222232880379668511935039572798833939124933020616627276653876185098544597419296280016967779316405208689908812206521704239664390498693863240063219096923201568698682214219646572564417413685876830501478713800325766943880877173169672411120666567342037431218466746456897229430154356153830424433170409996542640128589102679530388506233418609231264785090131074822869162987042474407564706264671288469926234526971582056341343587231424939243561035913401266431375708629468186765845856481718010484239800023642255449188470579394288242019677439532397855503987807155421540216184289142032078561251432332857106110123893511116357988018369730182167838557783813051492858992055581587585956008234287471003978622230519874862473509399493469728217639905913539687986325506865367605199891353519190410423267022441717238163732404713510032846345735177439499053420109360975150049093149529868135718050097201239228652245687877550481620455473786742642929800523922997134270581822051555819677339995794124984298827432679243858672472520646520934933916392262940318707934901358098972401230737287314198723196425952518833650574170227801764050705589820585889062746982438810372002423437995808554145118070749287089700792448566992858326664601087944980329543354237629246250007422392815874231381114512587879967718433728773194745730337329990352314934472142508868750918208416875383283638458476645521914101419308955841398202821607422463111357695892058774481325698497415972317857047041390931279687670398031072725825401850869205433448184140141844545213795256237583083021329693892974782667961888127109280918483384605744481913573818691995155953469646720252941996158875996141163614404119221646663112791144246064578213550238162957178640665893177153865100693987329626152242518608468789708236513389627553014547402378022206842942083290735794277903848588361251925293560170587156715799117137426632733974254733959169829794732643851108697870376261764310705030405864292292797239081023770884564749484087427430221320446320355892763971750969406726742840833693264535097913927697036874253014312501332320979366579676730537315493040538275953602452875150879033669701942770296867854070671743828794746209350551548837949341237162465135659408695930496443725088747058045776318326033673879333148260510804531663188333131706286976322680027114246003021337581312582755461791320048243578324173652919166042980264955102544353639365927849180922766462372147385676578698703845385129235875011618027542059040695282408433823958252506866337988826529547028617778015778484998086533334253859892252627791225479201052610910890070878797539803874019331892677549878287332828769879057050602116564488715198314695054425159895957532330930013555655544329816652580509726484212657055618968071593646420022109395706249242812539634613108909107399269243763469432752811594708374955950357936128701895042083695695637341754904093407736331069728652303432960571714515802535704621652591796928902922872353433425087616860903979180656306915970661607040118839697625182010515585644081391505532905122399003327284195927513892170638666142467884241060451940201626989680962978904210507368547586800810637769138670980405014836551075322765430227223799382019487289218616913669619263361272990482734432768663556739460661872506118469321420694440850443595783190664347948175868066218415441599875622882110738848211395748304365037267429222278428510532584600423983162434284706084859323987301779979046999999269241021647247712128851424353721651660761941428883280010401009745925680675252260348585555712390665248250300510217813251320424202055863543989943438779383997510605648630235247305299415908383688965377216875816882682208002604043423699161711144527773005137700795789853665334510022731006604079698802090684600725588221052009410816946255413486497766814317333893710306575985332481028974027421214904926298470907849405076428043909893353545745932966129394681317789131252213705863789371450242467661836164645257343348481310821658259009230017583313176334297366626470911468638292791926506648851858598328843018061881514281931636822374951459417421380094032312923358010810339637274129416551627685117230979072953228145446601694060560723185607038659167063983104241407467703537056335004546783998812143205012745101752990129247809963614868121675073959344332079104717083346472796227254502579310181998111741479445647344728712536146841899000217486890141542959456494818087653894505426490541615588630248448271407824876745430202217487549584601155674236430609790160807570393112525184619912714069839708198667718415537790136664944127261181137114603806906130248213336342221930428682783031993979355817958742801558475538344842377198714933215913856970677182582667309201482819329063145213909102780802118690136722337131445775547216481907750778990415469011547318078414907963354727624189281731911786864286152184172431013880590982342561781064716869536649858395369896130216434422755653860012754146869451947027179018099929877361257896289572293990638682479647823025976436722806166433112443093832360154520501583987032153708793627544214415423462046329492534940382721911725147401954323814783706107519110133849174703802540076616082241336058096499250331834478137688985363914151757970747519969632543731007858226837034013035326289140638020550391071432989456527498274423167496153237166996298085733510423356309041654689379847668095121006097895869819674982848750695627138848188525938003189238726386299159529290686972517544624923340228643782431597166201984932640117855995628971860429856289470905009570409429517611503918744839415764128877700048174758541192007272246806600211512131733382784149886391251145290720775646702432713919000780316102355227134741790790821386463817285779737984761388515991302834439965069134701357475428643958718702302382714767920705743954656279220776722902068733781062898657820446777438677718466695851433992609743046677670761835131319398689530673127969709800575411172080847025621194510434146769450567804831977498150283943181893842044966196935134688510678859280639277891704961626762556972638572002636854161119407211424039406786355746121259759414197300654171238877674272800322109257818317595546038024409713527325230817662078834847684140173895458016140592804320021186604420223462574244702397570200250668307296513343786381562506404112525583809038806628443838481796634444781187423640606974928681535419049032945888031916820640292847273924858204323701294837100802757394447080268179348181656554807869314219598355525673478068172651534777160249059994981094811980818375677046030373914182268270778153293393775537328916740346132554383419228957531989331189862436637410440597416817234479860741743446801646911930882834500737733200767534534809534644291285540756670942814996889404897453248709459483304578001238582395694777883441138947190321419000309727484443581832752410518194622390009943824932897131452018902692387993303505033346943165091297290967566623091793961456971961066342080169668466461709649566871996059023882089422541464992194895133961827440128122636442481671079557950686121738450002507809043693506003982571090324061881699726712396649372714132777637032841496781796586602120102868303514448322139258439416051378908631035932675754443483740438610767105102694184711943799793607264461372730429207828044119890915540871175089991160727966096321655359030120614042265095124670761815400409169250026361104465217266843880602805084431210545694761349363275687153173744078094960088901296096590599434561255346362339829485762547339444280759475127585587251133853888730543285859809851789934987450444509664848287776217803915075014879832901548435334003735052229222757783067708328484462187258553483098465798638539847030904586540378677405500636652676412468524892315265442798552588730271905075394307840458140052215721085563441833471860500899187126710239379561256339105487170888748456116324471625765245848249249778186085195030752244539285560355860546874381170292258725578547067325650280708920831119148512100974068961357271116847951098328363358706365921040865332541053744301249943668986497655834603130815806057265611817377370687260330522274762420277619242507953205322191009863804527203477762077749045414928452812967513893573868244651450525139283579331303204083524883061732587030110816343299344653355953580731716994534632714183068514899187300208207913637255781638417879727838562951732873081841186117274342596163725617989720783770309137003115966861184044803903544393170753337126844834815638789970809947984848286913593646910512798620640236499534802765148897197500654125420738088299591483312151681855364446959506466244726507565473683384500300411794400690731523600716717557836702993195423471262229982691913393808298944280824374514993087030244983326582640338652459234415226050824992646649185416239631656960923595756489120674021704242422019178250591738893062006140658406739745250169049344463195464515167047657085159185439511172885494860557295320494608468306937261252100621253385788610045539286991054667358205254872827946667496125049365926803796045319069568592316418379850770044331384278758261581576144929448390218804066747171271400785173819739770166012368917117628642045995350377583200322184643909447245551633380381516874198109959267182373232496311248047653979997056849942123929436250496742902603510432683651079584612756099894734946696502690374009135423040365952840320090652642992990788925427665098272966429971486597379764659212897258154023271633523093804830549492249694814276088184058510288788873700988585487058644908597317854505340268669962490780873526424993251243983084542588928957244987763652409633641115458101498786627005964282927630173823337220630243862327158218549243206834727897929463190799599905976206964469588576766174072066339291977142262915065848559075156375177403737542585011217280172657946754803759241397101767401839487392682400797380299863793361622347811631999181426905940924000368603600998978653277975418977733260155935089682012241056044200052931035237709813841298822733917445554644703828526601014057401369943668918861549965728915858070111387978397750364015057307194510566273825267066784542403123072542081504072074283351371852562517452247663281089167612825043316325600635241717484856392975637739245569792725108157284967538511436424954738438217978674927719912276602017144947365747332698280826001998591757900859187545950754967575934087768537711507636573297220092817657652020165196236762532538613069923898382514176373569537134209128475618341314483361917025199007806285194634320363054827452899043477011930545144940444767591528359666278937400244660542230629342948086234423131057556758069663216178515935194068147279677622845767615302106190737055007117125061363888655875890726096080054155787371126861469924468661885912939781504700685215461081371774982046988074240146315279365521903812135584168810842618236021397406834332148881180466235872408000365399222933156354861911162513337072631513453587982175397624194441225150784509507634788962707037525205548708072493277603747970392334115940839466205522818983704972685904602031857223767279826252243207225390363964485038615878142037978130975067378674028926816330123363664918578010697984545868555567771751985118054121786444093422683440362263003540633652150420681057248621304046333123786704075777624658446965328874126218402649976371891286819846696321795951678418725062194163644012603147863980100486207092176265995113032820255917029001332306859086824187241189072479231236686251107187464466020695793892681714659554643942016266757568218432392034639824172237624157923738667386368422523884273578603160199215373922118255370580189778864453966521909356455798255488379788128768050449695807735535429174515179974115282297375971368920956303411519427472853586620871594025461112513183801449493077882285895193506808505487178328884021157335940337688080373598240611395669684345630171501758864720098154650052497083597380925974534840567930580799548503670669327966414641496035917367796018149058280146825638039987925189712605813242028274579331693081738821387034834446826546468203860931842495169983963463497951854421242496919006941788889142409445963628737596639989591499975019761372515753659168091145508454753399803477095411284173795306783262189645754934858896518193180497736185359861537035095398906809071742703913430157552562990780038336895724018605220089503899290046977901450388915863517805192284817359220675643522806204902954972803605253774941536290628011326660264762868534271352816341805569098192750174801416939123158172170105952799263320259679709195211298576784526332055613413826122060791686904892397784869797375233546113745739329659302670402600877205408425446770639787689942388337923871993715709083757565746128168085788360789321313953482827738879994149712562980873927082698167818280833970725850292313275504834925906217570216981770753180045410159509843984984925883574538083101320781407109938275345067953600530608783361634102224138125125111776519471129806684727513007286905539099929739291356260295874073114943098193045341276210379612230663163237488641344538896828117474855199881279920338513136552267050502667289699332764609003849769637407361113602719650057357324234851839237072914157315135642875696357603810873142340188339353383083642911242003024836281739192929711012233267173467646903199681936336674071567029311564742855691492092880887268232687454766398429686964437692444661580700111843392911053230614601882049528344977091712432220737727706325176467976789014619762699694136960002485416310107388249849580406351656151166737247696424142898479684005066195634073424299484025348373060073478262167726572806703013645255854600510553420609384061733692816455005740153040535827458637090460876243746506258006543177894928872208705005095263386799285854711739683314930385610306717573127497939875901426996880114728654474040501283712885279361281622500742569972244645598900312657177860080149423728769299048698284184100236737994112313078056195544280252159041224549831190874634353203585165381003016902700412070435814791878105473573250167139532171847000563663883954806495718266391751911938104305424593617762856473786119331136231788751794211914087239839017998580706635785481178703936948148695881708831667382048908011683172470949431994394669743624913574094894797962838000803409301578207363920205971303148056872513315978603920780532116635289770235423834481936024039786714363770315643647959686755961495098928139867762676784814789196684258096326217640910134935248040782728904237397330644936355614541732607438266215578874238985542223374855992911733974192936659337691883378743587074372712607176946974570888428016154351731035376872893359696493325464933075455408250927188632355434487096795605496577137269369808802388418197170130028918869577191964961730891356356729959803523431436113118621981011165720379351002071501826204300237446759752018476748281541511866036181624324180363081674580723143154163249901543945417632765135486490440990748428868478113884371793010788811188555939138068131673907756599544218493866041121240246984005527549022454055123050056021788390034113415271592762985187905539361501464380887260496949160682341654881523685703180034941845522912698420442890065211008222272464637806055224997045260544380614609350780257909062767528564072817398837217252546320870062113443532583861179044536140844706054114876534015222393049698456647739713130281678805346626249382980728316000510094347854392629958216094688302742020513531620303425899533958317272013471939158033219747329753614689868349222571770599826882540242041446015573220972108078627087995800832111175478108553978507607417930742973347290035927281566509811518928893245129093872520592190172239945413607497047376425917716094236274507843474348674450608362146235534820484388103693988145403411119450991223191303165019271066647638570684814859421492922359214330732364411341203353951721749998570956311201174207845336222261682761557137021582108913368875748351159101168493240218044047054594918013452952271686537233835679659822691211644542546431167301278194293244558110840545226587537043413747953379810697566053376974071299210829583268724730026721960880227018711186877860851118102610386269695286728223267033940987316647614317079909392438808368065131957731031100395473779120599605577084346293787931749464730244712663524810881419016900131876850450492344881058075867080017025776003384610494335930702213606074564195485152354938966997508073453591916188207253109451791387701576425924829053122387233980132575757341453090997071574282536827762223931954273322844208665061928151038255000707480468561554623954717722824537762246231520638795914259471545592850771799790229520772708301645679678637900322707751149095055428387388647980825748069054408546542598284614896658076427865456092548675746085302962891857140890324677624455724537306353466156443691805147391338284433871455899908053865040193612671966572682995850583269318341339799147689603417790937155369378905756554025780460268461994925381260610323312963510565352367433735212589519359944593709161862708299495924582656278076421051838688845398761534353685136056376666478501639356168927331914339725304039114826176649747581635905279818381001561476631138646790251673519890684229438121056915943103455519951705741839292023853274911946607304573137448455664120785434284783069630625621946687385546662552272165026699002294006505937833602902929982795608348765497743340875744953858033985559008613468349487762378381165184753291484358587272853728123289182398111366907802153812835380364538449777955376111165657134462887317462225017890205930534925008023490926944507705279054066449836370742216049839440297169820252979243993182175723338745957153360889772514488174174555273130845795981518540736556194793728278143402832308846762227882763922357274237052538952485706195267809247372316101329907338578732278316434609010418457982436898920974829617630329040369899114329854678331804230823698958628791714591188850773375039400749029898467548682235290461940019530723599867109738641058160109798115091907185220520767176160888492580561646962226579096424080439047354424886234645737308407510084873923314504015829739805770484605680494494907583898731176266409214360012346524156978927078070092563451205299689538467370719806332692983059855595471407402290771892109134041121146135015651913213242239631076596749289539400191403982814780842161059057916781639498876535698396740139619806507158080740871744270757304599165338128828881468747491909094312932741218781169904219407382716829047841483078440107252034921045649918400512346649753547826589717604219119595765120036603054682099967436233738854585981672107680792528633237577658939220731545272927573851239110445927042946319400039313960632638914232144632416467494001598639303595785529413019001923706568604437872438308537430215969452616589933504181088072738612182525275971569691126990425115596471669298386170162935068998375220376149609817003075483942543256064589872160847489102992223834646185534452964748192533429099013663934565289754372737307207347034773587516727485795950594969266061618827916598040330701137965952918614136011737196758363867622708995175785646632009164532555727346342072374555688277841674297295696002286860156873416992211240397368480342125192536833021956789615706312107734971007710394392671379435962304792041632064845202924760838855993179082518645736128624887579411553028087994539993571921969106994564292317595905854536246526684830875717947778533432373986555384089504583903483783591620433478266617872121207432596254474634306839325613563796103195262921150964532561791440376984729613974727895550801617009533054606568705605867515342101940440655861136751517574934289958063385197233583040007932733242019697084763822164097245325460923291349443369226551180316236478850406367713301206370652286096649443746025953645052218836629998381744478379136574398497077299740562075933406488932334824519012128169097791175791625255346891792449085625055155934097120662487299150194673025505869511018249215983641229472737121298942894548864430787222919665755099675759582954439625553356700753651397690385017407656689185499053713822074241452550228752434688078470008207514564875739564508180759783996229495715116141876337012314519832407478030926759304586369778648244871790077386787049445513924968471286071928383333439813715714944725304107304311900446235891042896036897348872201048822766231894016359600378569603963390500783481555445921216093382598340357344089511621923494319459385867958094425623281996431181641687474524660961521164797513499768717267929224705831942671583780248591009627395946015612706302290413954124631145755126639187221318584458324079428844746972841760050710391759111771080081008130734930686640236065002597484162752780178515283480546934621339677525334632876132540219769093426026611166935636606489682260000020713330520218999555007581511166946781651108584128266043502161991931329088877301285837906019525934832859860116751532950100105897673928866727191818730590173294766054857618463106411350667004856009291252780593000028907921506484771045246606799519573732403823001734847592120315830315389187369583769971642859175211575057397399799810373764143154639908197854561081350966911521359619753416175725642436339960440697455598072092798392126403897503844531573516967287849065054084151279995106354227854176513203086442540863543963353878664999294108060639285972097733866622891332298319346073282795770443317205237949771226381028811374041531517973932473233721257620248086623358869003851992055837606121173904046434672507494345212253779963591112105511057162499697773475624548368213420578661794680116032511809177013838555388752066104996269338509772287714908376800128684764909412997593985954563701574615758234703495534928047042788398190894226081271985023205604320179787748483712923034275207928424115857761458558396429895190625240042984221237362628898601000607566140991913567930663349706024996715423643390380292863448638567822115835962889819344533119811559900454415703589845152410903258302645124997877053375867100159335632585043006390577215322063665058637932214720990077551696495287889662682995230934250828285234433742065878414955168453543465099742623934200851043169359700498527718114210630420047376501372292999543162028481141074787492594495948692827615072228729635949792934964171219277195886262362986710440155663290680152169017546021853227348120195104659631214704235790348820009377205155494795638274554100608538046329954920604166248950562152890315990442842662931361394815952687440753202970647722920639370343955665309100193801940588962934598619109728523712071066264989509738534475924056870936051495323804229232538149132869790351633305960892344770052527812277146082663889944951753723631146087061635918330649555983064531237411022481793175119749330998990702190760082411312583193935243168610016316092292023223897353092603434551326886516858323767719738890954844746259013671936672794304714910076803014192202263476099080123384355687143139818219495411247726581465890176644758620240641995087414640443872180617382298310686450380279969644487156998455450529119640819598307940575443132820251973444078381752020706061491066462102436445040962245017907175770344396555389419494584838180807530150551413873614102379916191391918230253755003076717750566968395510498248350637273151483055559618631259944679444469905320996555466428562685406806868219049011273633117202850442224756769584153319857744136452030402816472672805620903408541370172748646079016684802812247524461125118528406238436681932818449452805221559823527528104573156715480067934834087590985020306074204473528321991267961625510156936211959383119946210509249598710403596262442063729402296758832169676863052465607459553387392074527706540950325568375303796627502611739532953526759134185205143879610564654213017974471603664019539653116667222911982377365074925216924250855886000705747651582934273326214459180740099070988531569166228949954494219232325847060801425059056711328388081843845998186714910309279349752438719255676288861797426557220498133682443781200561807108757441769054518135486345435964607246123646605492059734766769647759253683722171095701582979556876045885074242786604544800200968739430048621347119917481687551902905839144948650968489319755758944251413148028981853111759826264150792731187149567079206560153081653245518879630050096514595222894565705021314800943599479324146799183231366667586596002035824108189841346336363846698142612506477236049163260184900871628826932177624103118271521364675138270067099931363362960234392230957895947065761194007285427092132835003802054600217301150237946837294484508967088397680035824290655978504060437946746077840313715439163089118631010468053768427591328083030983723986483862447068862758873284283447505680371954964346512919241034619468495777516385026067332149725997881487660691264742863736937438527026934888095061950021659676895045868155196411164266874607549556619946354665883145049100376834335303253591929883953814707803045343189175126389626538471289423542889387357654994342009404571491002848338472600209071510455084699188388071341872624742070846076840786223313887542787595672006478555875895558585861706921300095881322350472979494812198719191425140627608152291557425898613715145567433525001876575164525282637015162257644108494854990700100390816163966923465062241290637326594538953633814131667980901153864069926088762587000193341436246308518655155977863736787340723406233857084668609956464506521765797595443943649826475767087967098616487332420507678202047026197736559596683873507554344519167704756303646447150148355773892998778778169625096159635084993534581474026392712660584441813981024061905252561360488044508310786277923540045315218140330753098951777261893694273098594120555824201860625022349447674158085496058098530108465441844384260851722097731761715230879179277702156376618196048520265049450872973387659321472018620795328812718280261480373262587056941812241226418375684100584225500391229588233192439964754176796908706752088018950669395835647121586027575873039718641931095324767630199942777558713175827286961587982947268063530981315459173407690808539386615515324420238215707502908835879024556073006666440624188653549386889412597366528559931612584100709373305535852423690106541463243369009381969472583116649427435578109585995301096614015581903216283547985763985153294917265437740499954848537861088974098230533452071400240448808930866490324049617572240303206739443968354049158178102987014753634950865934739635901830307997209815499807483533276123189367865584158826311323177966384449245957589245574529312938763994348313535431256876487311077552380440246937440102364774423352926952158728646743988262224207140583580449612700448738187712219278223217852309598328613134812813066501474493515199828979836710205548647111772164443585366006047734168635410423079152778386368433968271527910022055687989504193346332660647385381676840203435224411249177248990627275823744878781440396411396334636650849468239724060765701503806158395493555856298793109230592752036247139277598011172770538276085045484465891390699280446916728523820779709457858274910985108937120837494801349918224367735991908144972967904049530586736466580653984968626724393082321657049771268354534732934592411688336659302904648431611444612664713781460753903597348878322469347407771360637727536274958796501056052712983207523806166687436984808084834243152270904714070004765337094771907993957758422990629777061197393129498380329930412607178526654150234257825039881370806583422928578868974856473848467190859803314800044387330113484308373284552616883058535080481413747102808781519528052434680045921519872834117906873099040023050630396810416179492035520727282119918985555973712039805994621522752080553688546308794375091774424372657623300924533214370298169626604536589108924916321688105312619279716280444903881171697284367641212357245479082750031661793158709142383992541514420686614532732279082065502352223216257231975922275987622272872204404518576629528817873099817477542574515534051392681859067959912229173854250590381044426977775242528382772847590348845261616365623094910135853266193906012141111827569664393364894356663658618371962762512260185494917641744641167983994820986509552637794710717512613675023244209991514618144841879222429895759132004653741097527215388695825669952109454217313564678245563524272246041063440957424370822755898868755593258526696688836236493346305498728778093914697236694554483538734983661629495630901517945272749161240131216980771183329055246713819917060596567432682259294507760517297279946784148187394292998541273152255653154838539579427883047078630725093257697222942132515006501345899526142354601061824171821013763397846905361366283331129055482631837460369814478717384065521236075636836726290789414541310236859334128626924038919153328900854605466371894416964543906905581184253960173466602532656518384275854723422871505827278855786630584457644006152045761605365799856939890008789324585098445356994332383670357514150498495682514469557652806748591934218055157143153821126379275224345893754216675552786507311264338917246366235795493507624151436046708860691661893011175066618141099588306053664829346030481512639776645382056203521899769900072444060959039364717628123160848250024430447083914764707789716874128459091489890061851983701688382133647289124380152378823772016000157541548889810643514571516234848897129844646034643925885813902861959410354394644564419570445141481361608476801815032620959159064550884461924889742805759143570773782411633639008829552637845714652391852095896820980515316622069650688800413498947560654918642182554350378965746099995792832671827429038908312009838042015029698168473426782624741923693369172900520979955583051410635466383622879777914617502880596714677377597087148163426237662631506215027028292509333139230960052028625361639573006085442997104372541039362858190854409155758374948168351064341624181777705309748029496152321897162743198215392362988208113206417266347368884504910175604623350757944790440367666429497488241280295068560146607361792084010278058888173145365186479606051261077194198026950774352481183843681028482194892543375902504909203582999115180648654526055953348859688267028999217345993222069701146867224825490125356392816787687115249841996945484677736982567606239011508790046239193476585766904691887373968098011759319199867512587584114536463371418022891552368693211741913693756290813237559933712712048178907472305145364737297133555381910408918209030426566177760803047716702055185324301194610903089003916590565630678960618495484963084857579302643554762381424101768879552631649703594860086132295184151032631958160849314073625128417947290967016909223857290774111166248421216360453599010878681403868764019838511287600959672144634917749315019636050495201839946749503922438721846992588697465560233529906526937690589763805900715984203862410053366933542664108095338247416202643370893540542146116936298985830502440378600815432138229016895381600998869866262281297372704630058884947534662664202400111667637471270683403348016626674500447747631560369622476866547391556278020320583185159322869126569938040477661824100963059263986477740255993769819012774273381715087908657082176260960692711060539366100899146309589211265821732703296531086802192258874524257122914317268496646828513513246117971316746639266762675664550194865252005148197639390032006098740441857648667819812250533519566967644294397223510301935304981718126789279188017724675921179725332061700200470367608654679798140280448607436736531200927541734571576622908145253381794505953273493566901807653762999153942487632779413867262350226912189679751841707230241391204554176348778150470096359029175806297106382488513575959906145530966039531243548697147505514912702359066015261483232104468545118342071167744572228804483620655857951851736478913797580495516880167384384671825879016722532972318724267768174639489852395692112119580432157752047630105046061401182471154048376641713131221858713238666907570016825915976065394820187223829724521167718968786721715694264143020891354409408533163252237713243784144721443614773269306997341286261954850045065230790401566946403636350307144547192126321046196283158713632958240651936319394741240955430868160565790301237552355816767564557580529965731408390240640893801029404581304581991584915896218623086117262614448291638657990649105935238633224334236489086641604699196180678693544187688231432167905478190343849469427397775808410248301110811200983892470212941352529161140601975648552532700803125474558618372505806625823857452561802879942402035840213218203469026881120048287468704762601433697599889350484781209837115076829150401993406208539105377454096464305549166282185156034013005706793219298107899300638718945510909318926888800914144215532487703748831322854953378921111662099864181661734620915985148012247007378995559653431662470618237622619350765209840207440226939896541045942056720950022781859872026885273588201763632362040498601668230644948934400167698295317821677935312741544805126353754473558247903955105167855701434025761712414443356413996569427803793083511599289423282681325226587129489149882012550675170182555478888724910823651663745543169483357486278148422812585900047724943515989653206346562553765144365657808741238032411007895211858092346313140450682712312291891977704499617395013146123675371801327357712028103825934223548446691009272895657785418814030102521666326336884840437253256843812099343191084433627326266923069838585600214747777145241168229505875813993295104981477089682281474794590821654667299673387033365603963683223022756431583653013324299817793977654074306939237919555757874099671133901852301844571925600898963259527164411126416527272318188500012886161793501650891209023794397085000021229682821485170398468102062848232090965109767462891067311055477293532314547887846086912286772415130713735962074661579619708967555711976473687901181868277325624499018952455026673278850115545036022522995522043336484944818898486573542839930340237371021000461852331298562878669001813437766090623890352310317271864307599431957170317769092145262209461756723586040593767744033413591676061932444763135804171257982008634746996255905723480323949748147101764415093004010224434003487816605885553936472804921395728109185985982230679411681292185637758504006547008380125792485963474366176267391136188806445265807888861797298494022243672412947339854640790546502630636527343688222483926835074430031187185238194187430981389887926587929885667842938535076024758917223235954335740880111873810199100165030803804547066182646554937693871404268622012611342846201610315111067195439073882641565903734394082126689779340416024910798846606032406146131176079319564767366178444352477263749845438328160470869923562635048389922119905686400035136007859417978756102922496204161980348049282291744102154726059778351184724298423565610479085912548163181176908138180183700439642247919619873633730628460678466089602217736804100548773170070886046244705427041912490622262407824559625581521352645322885625326505436859421302775937084508467033038156703041261599815639743185730614238720501296248544930665756620526423067514892962996909568624373191113313179149980390104552566651858695083530857547476157501195576645421092802637186169233613602784579994090012869569894992784285956225290499453279888554259643119972158787046199360948575847695574031815072486016927199672477354156779154033810100118854226181321323918830048267090353727213663964465354134806979382230297570285249773601929584911746216419370076249241255562928345583335336080364389385892455763506404491688030536098375547070258563508604827368356237395692200420077418535556724266317133504783216732572533977205511494560672592867613529055293545998014647867788173351140452511297105842666275371759097094246042398882495790809479188854678337482014680192939613593941600796701898909395307215576200318490824391845800058034236534863101542779159566802595307010362913274904841785891820482604116049491688404532244348364018816826558132432103623136612949080453245071120745129235008177739713492563930381772609377990116705075023864358251109444889643102300786888306183054097024831865756584138923142431737936153366102110171481523179969724675308167352578163695504697736275605567006295074862351280269520225541692466564264120374574850414386397485690189003246025336212263224943596794947127376352986276764428911043221595814895506855496483748436055963645806885016207271803908222777603545453924535618977523669815100613651674799122879765783132322794736772288959701633008774700446421740096038602428843120393928878739784457660490067286322569598687734417365852959827110562081123244811395928418231203488044915260826449749340292307950349495822587247119264481903439407441152551448741414706886130181513293779364817979881178034466379043354416930605280669087711421063744238196397260054390084231902347625106139207956705715744970384408926571762757127340030549417545135086433187712205641514262395285704592513880169210175641683679906867451900885510285332390297481887796673530102726162263616931471024730452717032378741071520157382278320891361075951010889564250539205140926159857343959590952496977066893710287192861065361234183511832989215286047703660138464523300973878010441428024101154064481084477672201214344296943399823309693166451892280630536512989223186520027930174404924465850844015243382547192611731723770343811860396113566012740962948257305335242311204809449202109264497765741071252958484569636163862066620147488340455421378450452681879104539549501654723987734259434549782890147718467367719082143719038818947093495080752603346755113895399269420705134117795595029581979096897022032372506242007770753132534242968451319450630293914034037327510899108862893630449680609668784900808942054182606934735137543489348875716354534805167484390910207668117163993460807690935767510238116665007099789026701938068926915633051787709214904411244581226769290371309858607147078150543554443583917141734304600103932160590454637630507147502344089256658717442915807211844667730413997862164906245062368645294634241453137096530867157537132588358697423915808617650055140038961671498667217049213654107358376196905898449024651301944946709942848642237497472502747158566817389640359561730146777721893805282230062175420377739798350819632012740188586815642680505854666447342911697947978793816932607430358648494885220219725952194668465752225795944131391151883211400256882882490125222422373183941476674186587269033041663027528514326534814568087492427842545344260691423886809609391128018118652794031935489537450590428437946436676259516693954711061339242251246064075060197559207422198400259116001890105594681395507713987537372551543933527602886174291066458907362411253128573159488372940765886291013032228579046477396468688456792538512910946465830101746773993502836258211600210061066401271123369127743895885314887897938726159818620946501374541063477716782420748987969893975012745606524416374771169305337924344476662375299470119622562120378122754384038038110140788679047475241940125920333203431186365203006326139756779439287233698893034629589946837561020219504519810626684967950490012498781358421510704185066860525729528281015346753541265497431781001506057991912344209064495917809368039255403027817306279733667642823589506828414959857658274513319065779247430400485588263034150196940119642759697220134872585289361661827200754194262302758432558009920558960313988507906391078751669148962326764011458538557098204687119973465187525476938199250499930874971601932361698391065674680580161833813676794298155884554856689311981224819071740064542923094916603934407447521973008456258545734394766726711128172056176757070280813628270730718181224596148136512735155582520363442995653751984315350536029048125767220787676530960342621793609007394255623374799609379309750008375295721951918838556229503215665343186190317536128413019989881450305797927505743424812815421769168680787134067566958479228761347343550036009905230102383303186000043200702542777940141867656439641008048672796436030155082552718311503563246301228640124061132391970773745699288886655344039391204672874096259095565889268153146123929918015081999840412412690275268876869879209993559457139479335100006447643183577403399484821026228442070103776257652219855912503371972085254414984332253428422387467406666749016169355311115808217391310135691519433830481334533375654757123144898994854471870161603078495710018052747104211816833835105275988131640833814521686907688524298899428785691749870308864691920534234611826050253619965087457927596714471036803296281828788762704587277617369931916125612342421397972856574123100577233305994008602996502813397679871677203797000890078821392813931607218356876719689195396229927251383224516983335568779405411137535975149517335386888959891357148301618766643519241030548679940706268632279623167840440649260415154787751245409241555652538237308609493000738027682400696737943328082679421668119760971122075050670616872666500981231675435077779814274100352754299234384700108215747852785781249936059584006217579850252099370591886149097835113430220449806355723424131273109809983886875916163840387000508390002871363973889536165893208510355599869056998394714741368393515496271621166021660865395319903080937326717244111859851602794524023274115364805585298968622277437151486303904486310204069899104996134983533746286792481861004570833247141662201648258872334478594027692618250188538378093981792022613494820961586176818304796551006995776256944011797738361907715456952224583867421819508296974616456000171067331512721539508819134806518718360822938535909315900591029363664970970445106667836822332823163887715059253205159898840772838980294094491689911058318945159017027395701232047917885813257304606688627787267599391373378633933751993678096520090873853074911875179600539130487415477146130785674126141434941579598726289752207168182172440162648300725702460395084038020104440004973447735999034787601482696586009152553385761748788836134560594514686840210191964324620099465557866125308435973684506005389025246986495079850333440040533291188197340957702385914347641487068948800151026394958680688526236864541786900922308590436578677665706319755146860674311747671031335648934914131060112510943181042548506920774328102647679653962769863893239639079563344017315129315214511880359693894245505206685688118409471312191431375775786882555912543427026134482648660019962657035244985565613258157116155502450880700248852476366387970131119917422456028481852523491728665346432133939671330681862931501535307374851560671810537204092991930370360307698529781549977101426746769240874411681761068953646834383805882561599639246032038897803258263396915819759260236105590934570561788497726081996013320511983258138905701046887399274721205057955870861730040610971989613169890288029163159678110395174258653980539311848818809507048474490939268488812901347284309182558111450307303779779604312970748604595878607266791853642924802955789432066163111568954938007131202165456486725142122207308876493707021844409713443410182194223812027151142907040771286197806358389134075281587119134656044896964537405649537295700401579492333444951910104418149530071901662153636819940659190987074938414847733584389597408955118225627544614295431115191761766127573160614553640688871824084281129908105928626802756764386744115775294622790149649055410033427606439398173978109352720604179689076521965839553320935081965434886631109646314680646543823661233022028279535995577822667160484328041915130650641817464803584870777732233163016775269816202336721997459424801312052598730619964363998181045162578641244117357031183050784409827634813592645701483208183936316881588369405624980053236622182122253972164103836010101272064960674862999510140410815560536407050773469034153576503723367981874059837836366140024478957984674462919949236087007895004711736139303883639200822321753908987376058351049619099173832548123907394932013850475570522934477011579495966715326954948366575081334493621707749361397113494065105289927025752970261501815379731199232856320167455016197955898624537138109453297235881436562485829558298777724532342898663108277271821311268362044094397218190028166560049644116013180022979517434279608776503717002306602388380636877270248511710859477570215200333213748174524496467256892856353784661342311158521401567956399528748440786362244725329750147526266061643563089455467939479866477950927370011885120919314675256029665372130742895501778289101267401850921293232559042133873549967580097474538840204662897858377549904316878218534912400201341361397258599755292411377776947198373806139733481236142250627880104500600320534040023547248055362909051632483283286254055110374523977250346451562373227010466626105141751102259233329384728839111843104879531259568255668132067113044823483301587445394962165106537537811254952434385355222780139030652804992810730867754244128768517704976042168923708956438422680869893975609730317150479581096901895153835353817494431411974954952417048199636647664453008961917884975216151660647655798573181863835267284156391867331222708979308216376393746253248467858058188697888526685179372073384468595744566001154482054286829467103091028112965326948270483563997210081679850160275121416658420185733174796745209795145028463132112441927111367121630668296183178063901298246280050931008664233320778946460560432663215323617578100320251959003146880376085425477662880193231226076848132365576372471887946653777179562185239828111475475501594963384364862311528080668965335995098137083920791874413333718881556907129257381896012436974871993217790206773714752331966239089523711646431020612320570717872803865963610608902895871985735834661795305339896495714052833347676731567223759587082632541848251991682890549051318143053043860308105707795297572109841548370655853047255839382470625587951341225291400363407035794104251039248305606276265664803848856664051966702389719943389763948558955117484146275852836549581827954920004963106933182621375165361012756322455284617260902384141273552016454624288480637594932923362068103958169195712769598345300850910811306913926395448375107584369547233567092142703232280328429489058621417365335338680768875452612031702339902722571489580665622219187441908123522464842224944411680178327907051223437578513434534592174364406085604425149787438248151861123586156750379514673777949068475070943980687110804719082179932760535511019851929493733669627656355547571181118898497788543744273706341881787549860867162161272426607328675297959958111034789271225940793626769185983261154685755320065900899200433713874632034345882319961674148187794479672568105673470073896300937464554328702747238491572070699989659778357064588990032581941011037659228494745637395346592443276375450000793370733335572401077521483829784574077106146604076960574830470267824491981792491307302814840016356051186621995642087910870067488589645867636512324997817043051754095825165167667471325747972948381321731737442505271124499666763398498257299219806915486350108340546286112557885469471406190630272253406468693241433714914329916330396829254314324899781491496376307782529649805245302277563648535235583673549386030178006766468001786779221752788933028583672527467504500543867986446934270575241165538416856911787898074597367789186074815921119006959325184295390513919987176314114576717022559391666122295015558776641720921047886902240879356676803870796471782393543245024269215496423801615864870499147215556657418851018213619930096151409357029801446270634000701993256975671203278555897447247957337032411262912643229250615123300260555236853742566385236367826768663834405235882059591705731008770118768840286310482381498398646481589194056780995711464300698078763446775535532346002098616051367316895333040756890359111081566610573378699248680897186323907040165238867161434576248528687002331646025148030694118084638003181482267549827659618146792619224339150000147274891410603195398818310476903085697114949065885364250656824757361433363241105422549700629257690532659859531366878928772013413138803773218943003204106878986951601521509304839324130449610020501992298870117820495291757533055877676273251497449060362146749720234976331533216737975804442915596602571062881268083549325479748929142402021321205583829981501013381551827606905612424732171730917997981465682580523066738150523290348056504753027699919428024428229792161900640806315856799059361350669493508465073977223473275414792818267784688529504644015248606596519076976869781352568795960818967032848461219590197836578170231933581125219132057485476929332540561594914981097680815527317117348757849794338830091347341673956169335640955660214830942459678530642660792436333379653817824885694422408768906245334536747006949029342158935648143526113414268026215211734851145317218431806259522054743723098042190256592264508508202728120647052268691073404834621053489619639835811697915991964591882861833836219182209440439485175980573215014651940275308450675383334357923661764579960145961151854861359384692646795325735426980745455556112207655458877164230919009590949578403460914464950509212616863251723347482009942392558674354981997571821742688454697675754778036866176219309791686608316558502929902146574068002013905625358205080494367585414078901739034408298862791346778863458689101510169423203260715125701381697562308938733621628991066514726286688502563029584781102635730082924893300786947684858010218609448224465536400092665372328919236783779126402233431940819232602068482716017274634568688079702573327809498213339130518838739727955849882245559646331410220686445203118102874858371485482472159233282072783978819484455142268940269163915353001168921136043672334172060239524824973136500813789596675514133491715925785289342194648950753102733620902851673705463193655870360543843250842009496153470947661657094759604676293584628027071770906319724476277545103506610378804755004048681610768411964974429803219813194326876686715430386777160403879592454739675264862774174375912178230815873273303819163108555367983229183771834300826073860428277812664493862685819784067667400446617729247816243482932785711524611163783461966025634619475024898674478759746009660068784223637089181700480498257854239254030142117535114796102117842271558159587364379778331312446226805104571935587208436574885892450368798809638750602159593161880743503809170628753489352673548389844539940443293227746335112620531812843104066607740410537999324494379797260231140764245013226109515988262762175089792145077102151594208940162114734752812613931052549300838175193460418418156606923321926738967936652448716603055784024654036314462257606783879947846812633684951689781936626792521129919955296979544645916503788453564213016516308741447965100430560417461802315298817707607629569437566991408873444497977237395677207620938273284933988790280527427878761335961160733622592602973090062708015197898011549721193305601156858189906827716878931446285305091564561140611840131430023169488300974001479195154560534752624153619497365312887829788285630155361196905542129643713640673173201034771379269775869013536467281102138369875484294793127870473151591158154915264280123265002425423227085681814424984772517114197022057298811461617027037702602008385287978167452657237278992561426046240971593881230424999308939985406552071238881991423066198604989504510565854249407325729281170500515548665988896053434793842584060001246141827973216828858352674197280991582915931204444851358487929881046570571162161905534120649240020103933861030695208763410803038860268266638409596442959203614473608371197916583605691770791430402465341075906675336086238844938744959023705035234106252876937433065894377850333866901650489897171307283876507485090514805039179693775108743292526164576020367060036905211387510143549473223756774479028782493206980962876003559240602982125303079287800381646340220192367862610531973643071276835813810660389933819137983341650999701951020378761835675581866678214646961951316128510272101446663823032379261184855184551453969685295518819435493319913622630110707662410215657401234446279762334489397358107049386983652086247860549924324534872512749736237425644298903955956245569887913253647189774668834637696422893541857604563943606243256839018633621795494915809282576106565888127854894996388899840591147229918802148729789154339528193674767251758896070069680653319930265926336624065375235251330897662816095606824835272794752052050299679928415550903462930879442108880075428451390950459631067391057462578092828593797633834418405445681086238479963885417528138053908124082656145298272423979631626489188959337557476423672321394294235342000249760534742420856949693810063661679613725784822931345375278896613900469621089267666350916735155303890642852111963889123680389028956046625635642892948599330720946676783668148834166481886535303079312979334064878811464996967134419157628440708864858787240583219789799713081146197162938234528875537613800548459161576251802927650162719740646654638788903979104819290432527464877956090234038744957184402660999756132037585630567430835848385084674351359810939234670583779622693503580692366366839190080161895439393890927150768406633307367093076667288106726456831945953389880231973827253292081945344061770720075183941952058120120463518885959231335892687201449194916281579186098902644956824727536319998251067321401910709583042647249274584911557481382086121706610387222717595887508322913072806041577276841965688062299736431412784990181424847536141452875145422318521533382455281268938532351329552216063470663074963085936521691784727516652044049586100876551841497824236955196075473655947348178478681801265418092945460306352713849345699810979944990228772523172599750268286798738905358165793189395332079659084992924024113130850982398884847708969651890255569914923863237688403063947335353416474575358829313112500565100195939689723354797160925417432215961045585326758043717515066707201436357196714837974299726105760309961297354785663696421865504846747397351769972514777136405237737536055175742358123699318430479582761233051305557864928653961406075122654445585528997590987977092861344056465792733544978501372392640845463054753187512662950724507113916716466949632333660418157963971263598504610702690417775379919977975816335394628987644012852947494179596494685573247003449729561011081765231175508878279961371562786575647130681344513288021024285699629119150371881009380148654104210904244054914789522304619708506157998438062433130632265351979046139506484596015680237737442046377819364827879688441798929435046049203449703324127588754745725526234463692995112152251163454333879927700313889642111442232625604912686701219118356301857712126381302951377747292374530553865005826161174277693380648071972186547330656313245694935907041768210869030239041114517971980390160763051200981798408738074085994509619103475154118627052789470258173317893185580605628992250326466596373019682812534886171240829175998949106969126381384730122683282162559460616154378529368900095765011712862103183128036899807113788178129448798280588528209620057145983274192554061659731194931300127377144237854554980145707912428965861789906382166589754363390195208857801281689563074131428984664203680572946133713238883264287159308116697443200770967860021410515645612800576576586842003090601012708149588812067407585720701695877585975674774722266662683507390842059934293284324170738284869477878906601641826970512730016356087837305463942182744067082149128642957838687967200552359952379283729261695224499466210389235597123702603521469651584285334846920076803714837096661515353736194539299185596221646906478003057587532028928238172920820585105839780655196607613357600960845176645633652016116381615621854351278146948692778451252022590892083997477880660772283572538044568140916550798858437019333801341407635635174861022246473443469612187672343149618793860002993481369397297853209940440734097690303898376261281801470968714325400319372445957226304990092436307145678136170464389740908424951075464913131299403179367973173619722459131008812635506815772573523423551754285012155045938135875467769396371191741870788168265864575664012898347761458771824794986093815882946178349042154767813944564584845538000220789812633303143062424305965118418473597343470449523659024078442170895248547986142029868588257032267436120522002348764594582621616207810383147069324862144306611231246417410504105733266391867127554792628218004607688466896106513712933973134941418893723690037767290953930824196871507551190976612571734169553368073099922089301863120745492514648913945069261360415119472418251824807636278808521222078842424178133536878622600987080181925210897374278136458202067647770390750879047608361984463977584400909019828798867070973046894044572898381259046951020124693898118719349526457282700326722859223836097398289711231411620619027355679416225721176748843633515422631534528559009822601356370688178366371436409718115943874765122305446744783652697191828490641523869026146038458547190238230495609608724245518252365207173082706621626795060518039682751060153853691479755382783541971000763802526828780655805502985313290030793943514012696679777777792416799012649401406802745962044358633368931683582933264776437880124020343691467310258376951291406259007415318033880568471790883712705461110550189981408811758675438709803006871625761482594070465752812841810493237589908677821418121432384749116953038832956368981695378179116908289175482532135759096974596076779067182182791373303890543221735700560646147834826975416040902206090379144487433454031285602365258070878271984958080161660677674270989583196557986312319462527979535345753510733334408870657678079770064974782747022444237432782640572592443812212618160508756198657396595351149325777099346928277799386542837012385345893605293620346361285927225174218822844917771989692578465516377701559007892623509955821182801776160356349092985351898504809014753054876356816708878414931587837842122857187689970991480823948599152970494613627056300955059445061641243486431993442259772640908846751085240297865200098459460842696602679560568139312147669148135834160552008461995667646041066917642913697969513092703527471448506764460358905471350635736796159691504959362803094066254382255453375707813424367269579802607685508737296089291007730958789135498373306121579613562067206416673195303516813152080904238120453474718253419342578784638057976487760064643838348432000736793137965612441062382644655878821099538168600614619991671397457298845656338986851821494525551516443840097705164189040370085305746423216412907635592549731882599438541675537532623862124259502837407194566447821215666779525521271468062414017918489771615370443792826655084956902648721510912088995399355185036711861297675708217023322419871732842126571381020789460425479522564862358702087101600483511120733001527006923156946887582048345324206497188131178672519932531295543910121789481555241452050379762386344277023942644439738338780246372265700961353778957194394390654845122881280984031466385757037493020494578230317922849643501158736867439241237006050269820733635797025226472249200255522825241740556761311362903544834058672684956751904499235769075556477203905062373252999549597125014276245686760822200937546468768413421178122093000995765725328879290521359761161847471808753133069861179425703050435230747332603831118083300710749579290778832599555216657569127268267917621004946487957079192541561778117876678598067752911559991889272848584070205824606737902338406638888183980661565786711664007713351995478073424818177732072423571231419880611125849230301928562117614368618249941925009589387881101881795319077462301062796126467440635423184823481555354157752925270707748914026224135684387708509092768064608869926763547326854481654705563095845292278214565497797269461544117865834498246392035228003333065111837008999334858085850906731450481160413393896970343279177883308730866917271738754548872257727959153968232198538843145220552587960351194510564292729142794126260565743973816654612151268956871817383016154644579737163247736053248758730907506496771742186079842859808686416299457403858200755926608939409021478264127529966509068749326988345741236370311876461691498335758556886225385978233223177641872196951623697612942850240468192907386241899502821877310879585631024238980657267760384021360699994723087829049566915280349908284875268481009734367571354231053709383222585642766695252425261853243792427638386265096045203838704894303554033909079458024573433170613313466505011552609265103227435653191758360091473766117297096553849028707547081364655802467768482966709542188847968680460238172209021101558083555801320639430082831523634248424593738600748812834223361165306833254378054561819668647289314604040431532578952189087823594511527471959951426478076225422685937993921616859408753781580170222702044542830266756990557582278723028905447792791539637369383462263361464176823304699123115135988201210906008258427353063732140577896996383220780613926984324584965947027000183916849415804816278863954292618245463502887782784686365464387760175157703124256741926263858401381561828617625343130979168482282489644443952504227412158523577128129484792158896075827184122095605672627853168443035890258209836966287320794939694326631377162802902430044349670261315618502016273395599478027836509895204106694086442631318650621671516295595638815432365442868576490321674170320007009413561279113927055467444066560529950834728958857691758081766971319203997236248927982460422865744071587598037659014001802338633455795667712679611533478273764299067385914755157011424151561084848507394256125752506958136076396668168814465867563274056501770679313550514878638075753774913023269291723846617847365023131567086595278380306378422121830151205376745673033582697228305251009655662051171279616182577434328211878077995428673458876412618120941193531436618449610099007240108397844456233923215860799487765659366514558339535290044374948533136408709516048771017345330384203457226483003818569105102399603207223081057790657118241121105370663645994592589406705924477863072448410085609663411509153070270287062180301575417384121644537616772786006085568972793284324977170389314997499263200909310807506150452070914632282474970718970043720741239637015667623136370451096127267107753580941114693163280323131940316175984372350044344365641691624011042757458153991853273446944115734046718173377932972504610786484858723846630959865110624273051331887569601664824287763644731710815978619772557690424675013525210557449553662508596656270826528238138337816814046110796335754633595024449078234368474976323218545754583652699631635968424571604325114206327553108181223528181808450317894784493417359404181299708681174659822078542947139614401176305479944905686362176875638005726383690072771364143679600790767610687895202863203321892078452507159151702217119358307325201748445171308772628667160122940815606798259046423532022189956484202552675701208111593973232592862294918028325675818883293303517396755835508931365249542557389054323980672966117560757252941040217038891155564513509825228465319190665289230365942194334879622438903123592801590074706049000760336167161241370844224477168246058047185991793722547506083212006847572278704027862117138817507874571071115556230909967260130412689092592392066900641615657975025472008030307918311309128467625043597795886886226518565201368362795280469074779796912611616081988205984462431670850273880036359864753322636292278179264406243948070506149800305633120909231309159782693922774241568812877964663946182817973074641075680459259671658344610071893508652959123146859466763972673796434173564914180346457320396833532781021072461965462944381497847905345569777752656209992812248014403547441987095584939362944783217610277334352085125587208547079252258563595146981874763940648747679551559897872731754836015319712014402996104212717285839960466313587213737717751311045290962487961001178233129180538110466502337064688600773605000956773055562197550282430448328068057875112202041782588462911497039273992031807844822040631918384819957991395565751079487983091657874844553506112612076732088499103281669457459090614902495813553428894281813654422174212401764238922795064966683210583160910840043221988321920861719297750190123528976822217459214960877935652429247157415539260601260776872122096968491833400823235210579551795689758640135601712815122763854486243167146351612647008695467002209534923781709057474412471393228313819647885967202230946449836334928075766031194006543960034042416788176876833462651185674484450062500099804405884964754262504399094869690060030737944485280489020342907581710300065005017050226289407760194877544148897379662431199268106130675421372178580334776544022073700768451708942815124597948305772529521854591796353749530901642369902426214600303939684368427790973261984433855254563962499852743540868953120870547386215034177465272535228837992404554439808826170289466064146522360104637451094495837611432037557041882013734552619980031873273573134415803312038870876377650122479836928794653145953671236094030711801350084597040928868149424723415335956228093548906651474690479818760932145497116674519978962042238697129201938115965900006949714121307899002006825821613640238476756240118947804064053697997401751481811536083235474587499939544808573255645661652471282993708485209655029391109864195649212487086694357230900927829480081513995595893885719516009341405447523050149645695893000087267519509505179239700534304795777976879728138373339342747620330266669437329824492931756297508340830243196917764453051494554798132392231081260572914825934757614946128022259504922452930601270997931382768075714460112295207173467932211545692561960281503020530873779199198538331973626129900233182975784479204390779185855137794835591291922191429751415021346081558540012794101186195011726133252847059050104738042522673504323048258839821162509588188265778255851812351188723089336458008224957902154917834620670312445514093002481293926231139278869487365165438564026614747633556165657112093754468395088587868552096164030164795468547704749214951525321157923160577546196389527409367607716665672096358058215177378527886781177595258554088834636377165421146841329855200007000178271771948978337476648951131601323129696903533937770365584338527862613319338778795625463510731519214590344733953862253249710006231610903973699472861042675785419541149894521835483729035411116622246404630351833203783055950518349529345063432461703511428552862360896468529225948307855939188178339687227646660661864008691817246329148095704180480551381429626903014737096641630683565981593325640555924121237633522033929169491183457920648863647802954573582896361068072954304912073022624753262066297128834895444731969605837153871912149481158533161905572051070056567052125331428809837008010032147635360597988610007680813594575355844260348577834740278116210575813110434147138493192726458347697076785782364379867276382681895644594378096687070557566227684825610487299552610702082508459160791028396151582394105319723524496718120749902724923601465733517334603986908421384766465912963633423768272222377837388335243343204385610548668714786296640018269361262288989826519615705923988471101111781713615664991856132286804592633464931886977377730504156951966782540107300188579125767235325078736588346283627976270154553838497269133188259550268291745123462281159433431303682682257309309619993407831264549071960448918541184955047542931194255943008529459650768788344559540653980605367649740823230894226850759171506028869275364764722307946743906448452458320708626721273986711332333760661230704188715216407922673560584338847004811252151534644818695462683681905070791286919881026033688346786124554232634685058440797722734300749015056989917071373049937814206108043978027611481323712644181473940410847031771642150753780679840188021265768412476087173183174020082731157013496016392589888036691504334868009829967466093532272584292201527862972817335807842510394855420071184394970528238112251940373287212549058251941162177750640820255836786238755176918581172779358975382685907494523751776076486577081311673194304787861676865715584710691703204328471469776500357671810257832404201625803861464874337619155014682485797640345313073395132029893878699307744419648734471177984489493048388408792006095862759909833024910364438838442124957332015414975848290886636806364361788967684775078642818785738345421582589934875864983032087815467049612633916962076828406658995599337380727118342862528714151882929231982201932988554886145533867098549395605927874189989122657493101675118683518160254183756630553136804613321784020017496770151712126247412606671573425758067029847279887031895793219995191002422888801066763609496530109561128982874691521269292351194198068876875981463404110201722292948092392941852434785928827842326631273674270451145622945015246869392453786004943352311755230035791214626189490006912780060267849963310477406863419419206282277200934787304189576294869696537958055130772435038539700735416863314792547231138622651330124510768248099927348315995252537058183462240779003227140564889659569736587211031306596005374696747637228243095569716972985916092448243303098207389205731634801912921632786690103775085282642641578624648818218461506938252250112479806960871994177494848333234260575600145712599784133798537490262857703696417626457152373910244898112421470943194399535418656407977535907237989738971774291381626773741182455255513693023959393238000265170564458539406381289838512211761934780831645487722785318858274409721362483000790454366830821674382415428415941617738054020990524226051741430451598955891783607525182537690929750315961198450992322352895285867794463949386112592480952198370907242607227113115010834751129040012740470896799734150393584670886089195688749996096005638418595398493454602496644207912730477349507358371455016903223829004991941275079434523160335914912798986446262876682880244821309382785434256261354961250011287267699181319410161771263872761788910338506170491030162438050367189994561582105406078016754786543636069544898021811767460709429928568210994215374163518709969170153459674649619705234821447156375349375477073012742652281604710151904634530803020883658852922979860716676076800252667179517147413220862423724114273161427249441133908189323393790689499023520016902910028681082647731800635215291757960592713504410902374160677429965104052234437198019827360825142303337636299714213637433222562377143178246951171823104832089524777761521605991116979834908840990647980393315950576877896278196704293674455147979033300964854912908894949899009153079204258489681291948476050460405686842908730114967590492203789331657719980838610586339975771727846337769552120196478216519009157354170464682375992226485980599010167725131529803910936937590627840016377220228413467332831011339508596995200366923962398203869637043548534834450657331608821190344077210387849819835923736959004004181175657671552647383747140632269066398711437713232345901076498439177694885284394517182386333297062564814156834000478605958372248550050749262660574151427435704965013081691147557023123337146336340547960010422378717733643821164797725604140708761722754087346421603985806738484515683368185402514388091750599606153737375558013668123748740669273753907641954523465564875231829079650164127468608959357594886078225925025767228376715966996915465116574698512038974365165885855357110815763841928350810409516134357788121570863415403048175567259875928289906303443293674464468427688120541239891715348057145294256193293556184246936048124044628601942191601046422025590845809745729958419114163748839682661067856663801579456846120190403694017527003322063168347922633365160960175544636750913984521860555720672782074416559845562884516306112057371007741907510057155774308522865715049364432263399544727193723875107373779123542644074484534354797076069058482563795288951976135695832909623849220579239802901754879453265470480952893393952849723992496058702900937869614854909202811425112117048300899074426765205085844069741600711656426009218487607859227749580797010257506727015222238726278267255631996400532317590106414923219473930982857242138489733525244869905127984379029843203075597832591773951151277389662813503813325523262891794049555904514220466193808141572840637840009932123611325960768944569441918013555226676485299581032707355287339587615526987423882499578658960461581026158585268788789506624747857017398437152259135061012894339796091724324091229510064742990682574743245901083314052885034206620754895864833233036312380227484584708824046221087799051894782504762616975517198103612411176612281394632569964580705173040632729259407219104953922462611520483899196311144318573480415239328354590962422816077233463542402320810775286257445953530845518156092329366456760388554924658668960527892517758223288363794290199799151383835438698427639300487291527457661938696004891898947521811666718062972940562459400834782863774263126776483482774576999412307115121066989482564403765118420435312230118293184317358501878448220929674076686182101344276439873872316636006571788878488573591454488024422577749624857127861743250654478459817418440150005901944104018691732691142650754493281955951128259150504551265622684423694156049757369278374126315903982018121041913172983210453918251954978040279774176577864285102934825841976409413581639225619352165202272781873083145604792403466731026046480003755375220320712441258471960715178221980727286716826678298311419821091370789647422715989998831209092511766540865650403276580081434577499723154890058006097644200502270678868391818494570857220177204956439692875439551971826736323855573888095623690300056479080287960814350110037550876613314907957504630576518909068153221154796366016630893182089910215378330942134294694211670510125068144954037987464707377322963192331314159113019758797771282277777786117789206894540347870196756699129575216499022040337039708339998004113793015555566488894041846492010490132478712092225847023622332504433918245754942642032156081330420857921504984413113786125283250685150297112072765893005652720388122196411159712974212299486807073980266091278449472467610047472054766602136282851528293402503962750258968831437298962373533938799965131301455433450496132211708010471314585171609434038298886650562982785629351286002718797445822655272264046861671821550258288105801803759971934564300222537772391586394573359551529070013404996217231464650469957082686835848237261462902998514421466359545818677747723339120244455145067839152120249977436817012226808297103070578244417427353550421949880005000521853067060986524402035427223803860844029244762016274124531925509207029731623041778235537082932065469096767035636944647939826040956256223603727044947743912345502813315783148693688876839259641961218380982256154708918240980414898389146313308627769807235377761536474784602119999308317995454081903824468288230787062841364824669828825129733250723389886311429166176574823963264535672868270875229514843188170359520033308210302838143082596953136820493877421062543725382589296015793740684570583647172219258074357694501853649699682208325576599118084273187688757431299174491776070611132000745240899146367140305968222027234794829980518770362726287081941300187972600101231679487459097018357614706409080051145690482745405927277151644071350589076083776461772987591773296843471684581614974074607222583840778470670825419923401901071491164680693987397400159797596347938899458793786675495762973712013356577675227069420295646222075946040937530634484803234238566364222694752521970153905834889325841510027371454264699456195086471377645528928026232814547043309933339871097426027195032043770623449619495724281722997893874984850691571388613829514015465205214995505041929218934824437684981360569612287732271421722653555339609035846963576657503119225163481027021181089082946184219845352548381382961062323826285980420780221268970509831382030746566580217187455043000466657296644312793172887180289864295974116656109658948130269575665180882113029319606419293054814721925046838721795928300022812883026984677270558123027644257917345958932230650708262957251854161386037233764877982273757994524001359915519228419420427320266066652183613425966130137612154897589693372249869570538550386403404206066107536691205580518350134092809837798707744296846694490268709058810341660845057287159921683453536539302392012408558469503013059763019408000543151973829219522764504475259552646021089406529254384005589409474296027614572578531623233805851379652640745260457375538501083465693800203245875567190567507808206680894790462078093380249766847060599644711654101555960450724460567408089779817190178144385924981495441808718789458299096462729107531737795728183443282991340502271648120739342814291013805990482649631068918474903257128813421931337665413602860840509533687840620732276668090071846126240081744295786977237281770137590303926284566339337418585441971226459583824419087266614858767715249747345987818211951883841686498555705383304764880966281592565917529034353765188078631806943683175338506678301432200752906866293085016326527042940736712482129486220521558059273795793992858924653318315586286390230384998153790910090977014994872956489801969047446552833881862923545688574583616516790367155765746493314244904269071168959490946374277257104113457062123848598519290771733398565223972189857508075091909547785182096161100031191459965728808055605988491579545003893760284784858132771669066557642475866805047607792918450907494329612892423269198887992585851815529669791049459878173622534064457208000595128889072277536477484872589510995679361489083879415899277239006215597661735610853489885393192800072108351651309725091725977683842164682105611877712831031380664394966299899562355153265424549339736729896598605973585774842596308752382968929749598397415364274531024184418805859250270742121535808535900486651845789270360960410222521550982391323447383205118447465542165418381739605019415633729765126839126061906302824910381755990242474202650993576717017376146919823577641575238629306186745921919382404867980608809692882997664397525861120158924631800715964528971241109754613580459980467320264797371254151470264771561374376564761101735309203183873382687768458575654004518393048833148363373350413057856808219249622464612747171113202515736978564123538085778146947577789007747828047083038039079218837706303268920944949587378122854881335408549895900824107948354115183756524013872312523551643397584877749865317231854411372495614392350633600322542523675140915318159054589130604934391346189203670693531836412089021060168439304342828005500781398702387153208722830662563606340739298069219885454745405398921352629029048540598571150131095805119955030075941006806642310096182171285439533328078487760872262558837617965818217692159464945860803326649986930922360374936978372362357427151528743814822716820225030317297099639144454727248093245339175313332577476082947160137509801809427703006970534506809753728839244604905156422934429989389366104138570444735967939460256723486288430265226899880426632503743869477950609943988155235319203513071272736893651196128370711475467235411516294019211919607189706388172511141821487775167939889808653197281071468991075226715632075874279881782195860655853983055402987029225195185415370122801615467148743594498010399131540919790065196591247088239727768305928786024778307672267358309098962583939465887632606734862867970412639241552467546446785032356241673401069454992200831574831050791201784696547103829573382214295829183457853141229546035328175130772477383100507774218947710859610934816353945695422577532548905924505623927769425402656287050370563550091732783533186539191705238058960208810151963422550916408892233418032828785203692826271784607016933515986810607787525480415308735580007628049168225589893343759748043083225561415970271507945958990337969242340838744422939992911346352747748964941752591029706940166020119015672725830233291289608190222038105695930444343653037404409556914875123125980509721841882192122151336830107557487605482787497252041171104580940656316098034897944128539341584593838071582971077146178863197977493199153072567759270470953477342582621517504336372475594678106877710909588043572673500522514829702673941359629762825715456187060075113514463053959951361662676169327146522487337959076899055066280048133942960226178870122451473423558505609201736628136547316560721457650056825207883437954131482634755945904744129117183617186859363122661298812657927814848221999697001463361014929003884200509467434177243659612942662784458803434425556946629532447177407560778580094626607796448127986652607026280181634016148856263964071626546232063322683112409495943266219961445629908072449845583623324129305892698298854441222384808444785214888931663908415494595660770945599124067802299980279235843334240292961893125601508165175443082743669655629446928362119895285144967088638271527317149822577005920589894927121935660634609349759627532902479837413537922012210933241122911863673509566543125186142464567216306540684991267987854195302110191999718533650772516034913351131818702635180589633096714913056876489995480840083079595524926184698700926660097663705864095724618732243442166027736929839887910573484498420742789389312012791783080161163373699678955900651030586664512404597670632453333498015796527549752650808133290400690686737302608155164796599333790930293565964405171530157401486289142076403035331763256588730084211457433621608046061373182358181701451246350048907033782840083309845838034995459051913003582238333845400191867956029862779448486438349089103394645346471622361055336208478586592924655167356493697758117769126906663881092195917180713504206077758519159202800233283313862053805284106825421985120140820769208921829550728486054468407385370283531856968894868917918971772355910019409111746707786524411704930960923055686212346605629920373457516223225317451467209144011019602209706038842729608747262275832568094343498226527288122650978992032387231462112167319423616054542219832572131896067693406403165332821266376865578842565529971143341603862770745351355024360729485846044348739968628607344244731082417062953827844238294189991728652320927445553417414780504264820143872326398688807708670074110897124186206736145417542919614111511645767711430690578750703558976946955539118628051516739279607583474977922956971138966928058392109126836672522485066711477033195801461574696382642199029008526973575837101262453784577347946610908969157236205752559834906443072394806010937738883917281870188907772860706577914049063838791829133176571429637143013478817524935459640870757750509074959479080477123361841775419381985825273712645167291089488636995291078000028923905227835026978546804546625900178098427599368461996207141556338747734216117693478121586587904560951972818286635809336329681260628591177254070411481487133081685006321600857139531663842147720332576551144030479336465074235920232690655255223043383733766242141777989246542153062268170682066346091654619475298818617903265268550370335873494215293945188191461675904683044835449812166558614843977804803452758545753701207247200355170756552809339004648158941282280740699994876926392409481192127930085136570749288988170028775593644645459150175015365817221402305067601500946014978562030163612719509520793778902266173408179560035855538950748361960983026357012926340738167391603461947832691190852850561738908385597972802531994345711362219792956315546288009763965362764651771310262730624281264369533829723473798157722293812099466328423208916136907942147358216054048853003721972911003427503781746335110907262531481280817617942856989788835685841243007711014018527085693639252297698640839611990017522722675584584877075829366115145615193155011231842351828936380804956725507897679086783032894501118315002796839231651968801516387959732721598407790175015311517843584635042231976492471774139419187040002860161968072825464390239013371919035322693395676685333738681162721613654896112779057004683460461351231839478255753448806937315191617444667396182983214466403938623118337270501315921679904198219840343395402439150320857894865043612241839800408318523228256328217356861583192193883895089648892407956653429043797225195418884117638254418086901118717759706002556253121443021898672896559284422099546328993103086925176844742631232042255858988512625124780933218899386842541622644118684988283316840940076033853616756167488814747447508467180030501127521702838333828480384585786368225566004268747585960908649701743669375074445905974882423635603427873663739686275845136879132264740100202974428420986320222038503457447404990826532506259877205195882471980288903098802258864334028598702951977631585116555172557357324339828530757834924658961903757577031423602899250410583323828660835937080973950315509845609073755100892724119668979179530331817967453526829507382446253553816241809055436460203057729502585802366601220772087086686526880535467399134955305476951478195831307109213068781758310300763794694860009610488560144741423137295500634336303949062695273779099474331795287148635149795840073702534192550995030357252121854545080900862344760442358133111519339331869965192064120699519754253673208678623707780404998926040789957249754046194536389011170423487131340451924690071083685484505948902533717670119933734672768810792934753287321938502220383620362036293677850908613841987011851345140248719736385930246518664453531454273073846541168330931663866401836019073490225765385671530129216992561467242409450995747812226126101133106416516148645584897143577803854883030964002579820994930036216826347816014304860891448847506834292218514985343595294525325870110636701759530226428266084092647724435204396900958957142348596847842661884230740247749182908628798230296776306786530683969547184810187530534198212379448865417861731599048401209843348403588414806516778484867523310274874752046005652718832167207292293580058587042675498817726460894810696300027894864698744423232107272698799753486031812909209279486975430332125484770402484861902475856318363826060478866297568023725304405503631949190778338674283423881680482718852002495448831006746959218217299966299234588771665845097996206634691114025520062774884513556825514526642123429497343876267782680870675510147699993131834643787962691345809324672753300523620956958817257762693229229280885657215875283582797174274788825536265998019933275080863133466872164740485452516821954735994336013134478453125560402402005233784915797268900293574710736196873042546535931129507584170729698920794178521548584526505478854672323803804201078091397608136564736172361817681783186079809423400769096785159273206524858938891660640664032504068681683257827722848252889878247594174994560746656213370595902688676192308472494863992444031666718726742626351031169837531269142557250981164500573865827412308794852008796554341761922867835983764963869881992765223238904629357508261765520631941262722631616792090459348523595044706356172192240466503543471317735956945619258377807408090314970921437848490907378304094831855311489277873129052695771467439975492668791634634961417214348360886159902145566527221793260888645789269463170539955038203176052964904991364079393671138402392459153887144061180738036174290588365660340890368402509070097535871936900025716361549722018867035156405433542148169008801775168608209714717558023140645301716969754934670859358966753276736819779801645566195470818288385432963074697076067295976628589113473292184621448389409733424354640685016833939808036734030631454726999302178025065977143343203612596364817444358265288513577116002056147512180769332285479197098663554302856635001906776844834989019829268659654928166855393909865657488875765198488062808523234245959732822440797344078634164925568057226452611052580339184007003579231574025675995824343930321967711443221615349076043259164198515718995843487273830789451003590592906023053655568073210195024875135912420542208665405752454154600477990722096625453879451405779778827268531713360663307874304741519076445830332733325278567765872973570458747248591412949099561468501866324792373997026941006415041419962227262743215339508990293800526148813325754263455088227153889150466018511735793738383267354856162459362310670063640801759994810148194743417683547692012923910090674701190484761277356933841998568989012642440313162722909586388038013746183506412918767743222766717035825622402603739604344745101031014675010679741643907684498165390633770816535276924472968577229558260523249910116980317448486864225464753397652452159923588403648130740565842096622569517292497468361969093941827383219001805922503056627907216982583160245423458760286002368986368986733127419423305596934759546119717654452800130482375792953841791784347707859992087543093775681927618971436638374347951630342988495804602866310091385804652919305147607295194332639975381804957507761551031615944881286527236171676606393182915836240341654335496391836218946141667220161248495824536339557474058164599889620778065180907303438932488623115886647060107218823362163290448987503526045180971762088293913961644981045928590181554747446951666956325320935367132221516826842248595017731640557043117242360819334636466562014099065484708027338917158135473826561454172673840116972320005919659113257704903007156407175912282266604051023444941113649128761418561182107052774922530406293983263547472340619540152597977773443916017078048171432279326340528405297824278769386833447787819343750244771905021189015215126228034312507120431711547474229368700083078819132047608616784228865713849539540504091678583737217077680852531727601259688314507603027714190008664502163217090210258322093358360817362465448103104556350195995996815589976069082903529811645864717865494800675280301069132961529796478857942626429068740443403343406185842576504202219907615251677705147232876915941739121557223692719266885391746567200302719279317905103295856429581397251743153208813581051833538860507723340302056534650918326343955981589202566459769492206077646292430455738028080088470786881686991604716681199160239417709004043911352050527657412974344053626338556999969001396877839438037789707806549174334133837011353267246844528706962925940039895098127467201686534702767173441889428621654369483113340197001055404070356938603390457856308541870430340103325935393080996710458263627844748552818218910296972108392838302555663870170899957925350086239669142879127659713260039535514356439476243259990336170302725356562799649837874724222792099995112103667158083704556156627502722870726391208176801800647348689727357455691663924394392555950900654229859343515180337425984476686482701607920036308917648364759871141283367363461145289096245588638074163452304392397788503663437527711715662530368894059536422225756533709860366829010182618524804537902502792632546166008294414208623575876659074838916106410518140933359285769320142617825583765333450424577201755608349689947360643082638066470751511761757685012035881277575709736519544580150207318622058645300782644761398374268139228581575202210954077225674233420178293380368815085016481961015418035661531347487427337996286527334726052945954283268803498158281403421656304415818097954112320115558908050467533652736894125413796683542729790449446980490561122583365522360026705627430075172488639200599408689367618135829160969523862869799226439431927210309728673470473852687891900127668643174064869869530403902756679744122994908227490935750367834413802693357626193306116582565005073048954020752017071350682348488843312565594936755816301811679274320513773077969141462307317777888762086692470625736208923381177087036902047008292298363169437129031493189057685237645077985377604202767878800449291948781531274057153188925598794830484437065367311279281060788999803191001389788936247047154984371850548755932582403047455240649320467868727897925487340840346745560166688300636219049794314313976535451459740548201264838485045546187810302561137296881059995031734854872068727182154181191597860914610119763480238656130648701803126290948720718077333095933977597693983828064727214868697850231163929533455972571439844607453561704924280578191189282723776831121140076087360707467981503470043853507240675930333215688738679150155790812235108604001361257873029267998619076026869364048566854562370277857586961965296079546771539154300664599833513156624474705203477750861553910244623864117520021310585643885121219666901040730436319328068784231636197967148278775033944061825502589024109745559804513763813180339935027084320760007295124743504339985810858041131056722759653832640204670310767219166775368307617722426511210346180355264395461358262266976047944536229419320185743949183572795161569902325460228073781491916654824889939825059589969421381529746048301019905216832991980600279660917420052796967702386029048978871552388070741701203265581616926191886352449229184304399741969240937104393291129228340079768208880868742158597542644707340448630200222331881797678979293682436348659552069286989667684454108320913881826226555241378713858309420444600416671524726944173521145696849179871204573957449213090466485285341733392600212118364907967450413710603315986183350538688993172179508751220395936636512517875229614571284615409600361192302135580301615144373749097327797141930810058801236853545246653918967435766234191607670014205120922871283866300472034962817151755185784585027447601027280118859040879388653574466689433781487010342684335145839717364794585502043554892565745662177976439633571196790627577605793548167106087113060579683364519821712189181349743772671798784089347438391588238654051630939255753054439586067755683756514639393504781857583911803683322729947590719659420404524851610771722965538971653273974699341616184855190457199462849541758539801824160927971373901319316624784350796708820429741219880885274706525927228485660068067125079812025495872330826448672884385822846225453798321960071049330693554710331023157307600755576400141692082392711638441794182082380752030485010809759751726268416374405620000287810586284015103056594455712452182085028668909882779026061061983114507249288000427591910647001419379706725880827090177652051812870606752241909803931879031341706584950263037995180888538665390389600385218606546976929745503369810332357672331461240123864889400664450214129276458376595999102746840352515018877402353142767992700112581615493984603996666730289642834024047903480012983152909379505364414781171322569319669258748313268517311494999091327396836295712343955475522107247361219941782647169876612959569356324808137125003633831301406610686722815717234896852856759801511763734173481333482462551065214615816093175470179053354742970230394354289104044027382100683649878640066065121690338631877620463852461028593731268333860995259511335033201618475306442758516820687810581844698515238750514039507904242295485574732072314757281872175563618319191031945358556033644034465483153888200573687894638269229432942298306835975868282881736087422444003602137953212629064750184179109027667017088671229690326867563166115357096084414342389547251768564344408984887978053969913607310362446439123440145335717384664208981223038502089330758188705182745922368378895263919918560488956542258445037500909038507697521322616009940542683355147769850735979890500625710904965446156657518680302755712288375180730977820548060864897481430411231357019594172839364544499247680971815553098913122396629393342875148593991530191161779859482171319406829345946385021078208789225278675082853483904860948620349589139541467154851955791457525789047926409911149040485994145926876330589236761097722906262344052639901015654194830727501292318476558930331494077714142499382784328474127523140340594220015343201323017151049804665786776223814210521257336233148004560487695529546979428125758878979459369472197069572098169518299580958870167291558870996969123997636905870891151472617350396404635812528665188603407207510483820966866590081682138952399351185502302154038318457925529698720668757350274275721731129190160739611007068170977124805160208822203479306003072920097234560931326413695039197802537610392866487214840679244474419247828376358893168348357012556718912499426234465866916783453921787378787589729190596994373154501908698114344741787376596128804843933702331121911495774609697447588827210955449529163062062519373216887811222930780800864981431218343153139765553817708429004011158080671865678825319790068621617063672063307308213450076224899720173643247386987777561680144131960061028033600827769750529237567441247760209403855942061353604677761671708576048524708611296642260810194944059174215168575579699707543838156213401794104654515337466914965196529215365100560959584562841187030951143751221258857031743092194452285471434488695042436750776688899564193385770661340955048921492104248134081292141994456854607857361439567918798465549244640597520379285315761976990074212860794649869775272308258283531478392820097151547188023309141183302135045035014647868590954927421483307037418979982137784100632761665170981987096732145836648036105687394288579717710906653132384134217765167016002811728202698547124944149560707347950728621534970817069455102173272406006282606491134933038353013954524605206944567430577541123822276397990349972668780225812176419947691314422707411135363755407145437865391662838665485226743563645539245455319546430033104768851298970377275486917734864594964523580926829390533037251262563780192356946929994712583766051208039584544730931050241732786652892121771832404877994412076019417797378844900894677254674145942195387128132621451143352165979243777548004246991657428737979323479103985955188302577179812013377988443133113268944639670678704541927986975999957779598281336346435412487862476379103362047017251727181769875775346976544985987940129321191832961724557165184863780132747456924948265098258186610895381658213246257265039602238519632651569330310198444429027800592659448628558562664479639902099594074615713858868684097662593332643091584556316150719975799170105873118150223012163461604294446929833726027696512114259844912935367857326691456902511674987689124366323772762250805121546335133144591832696483738838232143502589832857612161794341160126764937565338880694797926790682229429292643075292933908649272205174995294069347989527240340112821597877339525036779111730263072449648622870672728711530863759334108855333685043959996252703179593898467546536868725469464320872611103699876814333287685159005923339181805924997215917885723941572162249265910051055999211819382926834439440139698759580928226235383720869623633208564132236256924295143249491901227514458829129078413624338425847898364436336364909019630880281246288738038367749487489542652022342111088908456003100206323740507501246171852543498305187181365476989589863945601555205509894976530532290180517160544886257305953337949615323108601197638475349735320641598455167272920013732406452098514266093841984749897538477477429914716397050912526436409491215560378514313821327979487631175749142151608649343630818618119328075191410828955189795153233721456184893366516793765489958300576873075299679126326384523252218766678463229850168631675789098157366614475040432681315448165540230438221611605129493080694382496408433890259313819614397125178635920689822214974498117272383911265763944270800998942265620769625086116791252606738505271434314770948591824241298530268865671160025038304768978011654301727598377252329493376323229998486871126485750763917489637233955397512136657201423613240878437843506133839790244169193394727044456339028937708114869236065695479073588491049234834795538225785145390809094805005693528537554875620717283743032398303608509526445496326564021968646841395860899255113110675700364685835849346355703813648455506609344697001212758185002181380254725671840017883580967919889546102510482565410342982159180703225977125857287056465445540253581777020164840184216343528932329789935750810938701437472282881971594058345001490830787749236485925418206606912839951957783469800071609323679625108054023726413051987361198081127701077557497300798994812072138450414315450069558882374595477610117902069185889957168775626463331278996963825891750110734157910779614948506816493244292442382802980885439356950671988063200609294298702690575781342935251687174494582341992092540957496452487868933975384197257841992392990996302306251136590258039993085069388216026368938531936541537530246749190402887585947099373722229453930148468994166140287966327670379977405051770298492345346839891877280390246910496516261687146044852584443661731498320181100465497304360542896798025308596750495230480972488653118161642577070360407023039513261507663302853863965543770328074075257332638675638683246361065265353732004242254431049561062227814765720970520742761576396814590629141267630984118811515701168341041590547712303119103839968303960536543464516577825128315990518236532259273137583618943786774587882387580896751632403504243152848484717442826529988237216695964814866814259481860819006031116386255131708782720718388063657863949597826593311090743048853344212334038756233646325889476211859951153019858104962530764582780083603518256092154195529332571391856537905772395777816898996826755198723002360752470027273118054373176253301285232186957288189496135670860024720181262692029931452317967955932340284294533592107057078784919907963689950120005787947457732145730999344880271906668501835609165983029074812797327276361872846520334504491008817875628212304188641010109628475180593260291677968239891163950185204733076505276733361630080289940674969316395214583182457562765074524453633384580865245437935293802729758849112359100557783607845191177093206962928886562448688009609816937058538683331088768160020123822647623519523000296322261345407519728608936115302754786138997962030843722162416823303549937963705566428726084310400109488552769546021410738660907389737403962352213679415291387736444711533142830371837748273879335769366086217910077200669300206774465045575416613018306973878743688928832663080854035543910838367513241269289747214360879435643277636263875332190678942832325526994169171680662623864427139699553469427157656593942769163754132784727149233365170623613675465681554490707095155377818371326988467285903362518103863815660857289803470824858574289012698144410601901540602449897792513405499949764147934723334943180274848248928997710117396993087722185606141471146634523160054614937881248393540860285139388151316293158591335028516333402500430410388669160374512955359981711946603802094306073202297823672991467985677749873644239996678739795677167751000119805083068477150859085092752230854589541237609353752565955194130725515618633756580327867004906803220017169419559130063388079423874475733904509251612509559508373535869697675038176718651883085674636162325136106045953781805802662196452401483019493482096923425404434394577851659478679968582701709071628936453145325483839872145825549244118693092127944239370821627593755129930415618158459346405697823206477158191984601004767421220984934814580196598608313903460304819170269456276069386272922025080364298060981591251638980321414896794263260650238063415998697478555819226843563256333691141091199739315229914006282521818728874491869242526661028468075535058262983118790739482080635989997135714254283445161374594591842578964659656506807165616157443636311908404117535005084535683383420032080948897919152503842828508457387247966162666340577009162962508939949274751329108927814385777029066291490672558894621388152019945029688263687467691545503571314613895638343147157328792456011123362610210112108151960072505658385182301374871991367562795809948046133913421241665182659370509860578460917714840404751207982581889944337666062830554703976304646187695874042180622140434834350161870654735783693364573186957888637295706657510222554116275526428787318764848226798888616492162602523253568978956571675077825168499429462307704224381781604964786444621075374765892905672855645907808061583527255896834612023310215636983177167210815144799090726400460123594725774217915340095475388634316540945998077488716682190158933934626935597693570013301006661529087967246651816347962560152775967603184724732092921699761246515467133753187610487745315354372001179945739369283106170678388095681316782132963428980519406009848666130153370252672565978886265973199303027115261699811883848987677560606691154531768986263189703309707866076893834198191462458758314888478355090877385883366772071082966900607214367301702583860413993733877476462735117981530146319086406336880944635271024485646540977108102688038373284362142010188884857389724052738456228882515678796380104707661133168891391052612178366840099656047618013091235394537084378432556443015445021807005316267574406560593246291818549079746300180392469335002365245284790058444111471595184117428397633740854312125153433623861845701459923007114818320587257587853852040525103925095869445146593983705830268364515173817567871687383152754114811836409034896088209637947394609866396225428283622946979576704489719885352598938947621105533601400623894531795558912488902070580515881203491892644738041555227201371280234277047649122555760824076435503568694751560268537841031998379779706687572193811864627213002788692422992862013116453881571093458693240069464758384224987654081638008240899010735108639728549069994589666223255780676815189066309402584115883881846848204203027724346424812683156181665350277486207971348388561126111846555225586554438367666296661909711111107467760272778420064951177070358743790189108434779710645548257232660292641021056413306242745336171248350121299097728038586900453162811406032588878128788982791698469277052518331106123246500559856595346080202749692334497824372213596624252773127737902239407310785171228866607113106018226633061042682292091510362805863260598140516336482748962965146313403900893204163372294143733803945578120390047479571456303103707680086666772340729142045512437926044349743950674744029603913431800719875319910366290271230834316491079277309778118428695820104934196395227357114003087110479981096467424581403601605014737636312959043580462619064681579896686894120875708183319746056119224736187790331951304404803810270182290929059979553554247843955287600867199346970908077174978853813188615484608920273883271465518843449785773898705720020325194829712576117640128507102904215435130368490912429066848467149817139696305887897892278168022229843260219337509110021173813430827294968840777000115773310942528913383939133756639905608636972847672431187065099331089795298068699192559175847657914974057239376506772669882430950950730997760497351368711531261524194665088816400328056527135732406349462713835323030137794157858886119832240973694412646684746303660202824333973303655605220531115895455521902435965417769125110750978324377261627181888348803071542255361151821809293085756092374238526122011920424036887832710861035096776707852568500547746720875397251697613151185086388146775350126531634543426770055458672367132531610026672719633721523857380610872602048245520611705358531321894775905392020498166942935750951500435781518058088905833827819997795309187039320390479331726414894096686633160898651844342329918670449810406842019900162984379528425480651599519918612379206285997518583754943246815325956562863738469284489464006382668458676663691348092486124763085044118584597426456747971825367429521235191435399807338164857025275818559959705359620992420575844539579023443117486109487530845663139476982878546287652893323377263524292058503021387131332499670077707016921496727194658479814500869963581907503128089348133588314149671964422988560945131700649707639152629191022568662658060629638248739304461338877632673371281246379923722816109927875659969686560188572626035500143450277714387139698777337952788535806559814226435383901170125928283279092752526592799982645315676269538204894112854518319400517850504853404956587380114208361008899061534589460270902524237867842368613038142127613432117221002294936132925979127927045645338138901500365651498576266378317358227343255951524743735560166818972519109388807213094160569792531699678174167608866559198091951529193452575316196135181600659580254676180137963241840738036814941895645559485835617457051727644186717205013386617509422314387176800357331565388940650307163174708024814704804221733244797460422735826708625180103343104736743286860827473380213001523744316714352177895302568113166074922049133294318310154229495670343496220337189329605296236055696571114190213874574281455709610973292374324336084604391270226497278880470208247279642675027983020593079342431603438375758777773531545472481586817742606191140938285938610264851030120479887632483911518374700962726082251297627074094898380809120899021890389308743748425504749965899703233727517222652891214216147831485830770250568061560386509261079728275190338722221683590449995942165059012816386316850133965320754772537126467502627587784315868213354400997321142168873422321805749954453142186491478185181450290380634698920464960133791004141061309317352596292702493027910483812563685912913959112962924420113286735166760886601723448768049165544841602073921486541384070072583155863097327413675618768897322362004938236389585038316432083243356140774277612778020207684388369802244676223213575731692527303820830668566858154654113526876907829313643083793607160303137329910818591217240876938712628045467321315471741911998878614502233725349582678296418549602960596531787077436711047199809921936919698838478640520517589455677156057901586033485717141551423091537774644011635660048403727125479067181643185463466604622034536858324929905254280245906433388105681059153656177221286356410558040237686378769948577329668266131790360161974150681047901486327129045776412201651120472361929743057221579327625837037292387060811791146274432783050674542915047334100109664005301442608584572829859819258908944533480035544152461228774599135979932241292878848038037611051491210132705559215151094332916854347397419113719698153082766371149118493557908328767074296345178742051822551806400851415088029179685876898021571962753175296977967081047292735880778067273083319698050409191608508458659468232632897243144096447888413592971019179768968452847737680016360998233932827361356967633006457904114014181593182147256212674187109159224276626057544119718384796653312662429835672004655180968869820999762290226663341083535689431977513278087565049774864792554341709193122052924828094774447566569900294424240520082547109649289316766610146480011595910045497625882344379992181083267840127265968598481684900180239378601317049599491558284737133862484173479084018436884377669352798304625761635008296387096426291825039073537401239666168541155091732763701986592738964784149399856974264635946505743762900921906657003340675423452643193394138880558006944855237850489096941701666856462094515490391635421280643226920093375443747115481687854033689975094391763243903109684256384386953192294408267213803193429649647148469844108836961301899170624323059375056021467545421271230251235709874126553666871110270302395920821856288324623249067478306405979988016165555072393680109267477536783548512120394934827044664723780099985427428709224895631121827832744839212222415236856569297833831648323929968979948189047573804507598479387331983854479815193959474868059825499942043812986049401851693473692366380773660632475894696531579257367870721534495267907431791365835606257401784556451248129585365208302841674382894036378419645210097707692713816975772237486111494605613703132034392321108615109123810032172245123885996360509844153905915593416482484413192036407666558871610587948836639769888549019440732826458559647358952258988320707482346020637370963642085746107391168741705029477962801123934204623561269829460403403114899634423487453848345576679593077969815594780106996192122277288650986340704632295682414090345794330783816174296967328627448649766229124137027455046163476459557617265287417465946240088937647737857177347785987747390238744922866259488783416300135911730004559662665798537563483127452383638887437939649681863093994968392956808829317610136317828955046848780848554542430401408567100572018342952600643491348112137180763006026806302960195090103454187693167203062620993203158876687777570336824582558688606516070440147029920749262463528772480474191028277572448387847243163733321345073965081505539022147132045561376618844805700988201712528581893375107667550399862607972664635129588242157295117051688744876846793790881756126156734826477403784458589350405179516333524261502588511535548850584366157704044356099635385344430430939467226772066144927023369355695522455621199756899670688402683485079170571041574938679872613722389216045488702545529695453139390091382192345058191253218275995854726007231446329849283971748540142978739736027969982902982498334857045517894771644145059985776972504691165771147278195231550439327802105977213597589174170121172664418995990687352623935013759872583675125865600734021825183115953943351567701771378598285758729415834433354244358282669972688958310967938330977208978908248062996458116150818523861348683559032280314828223169696569835418973068665950220903999433176993499252012157531779011392404301326240259195365982639610649070752704476353998163830769376154542653287550819799509763965784283835541149799132509468838946372978943581336758942564422237650886038372445374802998702878172932853550800030178091111514406550351340020750092440327933698301817633127369986355957824912724698755111635449956839534291950212845350603408436482875326016819994873935546092168637852277475300956051915604216221010423608182982352700811057937323484082392142782663231545319332678301526817396961664325634479626459697129940270098536479667965771872870957789245732265548050695673514588312242319066355675980547004776209169274012544854699548331709436607776158075917069604195220591165654648483337439892967890658960825016356305507784249156123166092355621187871475676983007146214305521449753597171269531162411063402279267304040660083201440963594227904688499458202412105144183433169067026352174013213299997813779800309041279249600631257403200910503369631674027604806215963971116520499622926630273609999276831809478065369054638324426770076934347191929794522079083130820074764749024467324476840008706083296661608036665139978401268757303329229715614759024243144929119454023376930051668858101086328589711406846001830923069122906841043802016694826071582875915160042553817052900994881985097887419780248036356561344616522752249019977281185784682834693655047180868492978388321779158565684920072822551902644776813483975915801857593777928029807922031931051961946628247913783949316111805224943681289438502623636140499959372274125894560521949799021361598798408946132072312103253178503665115952029515781766647266785095174258692368179522916221756311748688976663412473097973124728380639281228505936584740594960490539196579325190622421883925531331760685950578584085266005021639836383330504029777217399166993797616485415436224956143922792498833259910564861332662988000968346903428979360224933991651075691476618026377920205024606840223650900040335739443977322907616825974026037347125713277781096147135418195026226320986741377054409500272929075408364805166930273861220837256855996915923009465241109202972469071713330747325226403664819482635733506347729070039878580919433272876575989087004157293503623899421715032956456831469562577629296449722227379295668588203795467453635527556839212074682253200762356675566514830616777634392224513633989495188605678237502614915158112460585318580529157541190140721346027777452359561559790440651583534423187834179276697275438981686628806028793508328102162077036799772307437058373071574043947623938385385156877326876525155297057139005802291586588693789123002625821264084703925731396591909813699123026293413865098599977555211151179219860047011952336848755520561534727446938355006890292813393248827726664921480721981305080951520614621225760562485072138667943301547877100654805580857596005894282366388028474451004965324627979960803520037836787501794888013723890666250503657314510944038416882512890615417142865933198272094010286065025256321662878705864361416845258970874365236749096257571270964878049295599256110757767629018781932822056911386851043003855190232936964537077039715984593258292760573612576096020511182288689947107030258928473689195646493857382643051563829958853478886640956992692592704977058455391279626417240596784635477937394002741298332686758946379868981919536978149347623967010955502646439335300884938814955094494839861058188535961209329574152193862521246866121706165080971348151095033451109849540075381146447014219620230074690278151417350600583262941370536616929462299670954921079300645897123113328149333611145221880623055982367696261417589826068529318944114564448473335489887625534880030332613463695353840027393989746164973114979959811426750135602606391731954246843345021638377032600019246509973371066654216735077503614596588764140433891598768468483971075785804765932238218623219083518526602686120405286415652941898753083685195550392844377934529044773510434038875272444348772364055064692393369912484354826422570046397405215898476217055335240219610300666490122850422326297993319516270719864246616990459370870640630112211448516498711191347883434134178885238982006136445980395764701667359297803611410224477594355558903720539095670449447583543715933013467494864935441518422402607168820398130550735722676934729114818531590172904669652900239785226900123767689883167041429306735426711092162497437252052951954596104141419262469532053276024074676100694072670047754203298540740202507822967311806461237753192630648414703875544816775773621993627529036562263007686380082277171655333628453674194887367956154353268851066851691694517107741212090504252244468758640883237414474391577137438709376310824436656180864759950817852886213064224853525792971018297316206738957973544253299332165569352349210919514324319607166269302391221584048642743378054018518358298488540696271532692564691746952619216274364718268459802222813505576424493104719486584437237528196849213615415932683528006590597381278904742361957257866087523044954266075521308589978867727957066114673005433799943590826810045291017955565636219203709284614275459912640298623762590185105302508822061247106005586921235050375666407475941375697902515369198840426155392451067613931721233918637834466500556713019887046855234219042694816623566929380663433583197709953947288483879338787513779575553658731648307699516416164346356550032995597536154750127560633897853145623988588735883801534848270046478974318864435168788649203621593412124446261174555196198973313467067182207636061454237885573757691791846496901648139713344922662448220690443783926680711117862185819312131568743270915452391568656516467780251085211929538275703850937986760074151680873428840201860746570426438761656769600049708570873752615540244394055211675536365433178179871798528985755874642542544504982147359164923758786732165126789310517652999866007162115338963547598507177052762720389426341627460415777720196272055437717669517963941612752674703223421402044744898231865009002552031915325232559432860718608220959825473226192688770488961321493337460623432291102440520873041819957745702047187330087201533761586931329977880908091663023542078842254649487581228924952553400405541709071377979742194852745155576052584986158645425426752363872884538808916871836956182770682400240119170605144917828433878448426333330412142786550561030568495402826440652337935669904513607958448284544227108404598162138325953128973279606497511389148856054545465645938547094022044430258162833034496836540285214968332076744913647084697523840646834817304751309087646778965537215501116844615448523557384027268682355328683049863274505777291557799431601012339220782426375230441757834528549891695604390440329186527261930737822382923883646449248054829811455940827436743566832239532214961999757555133569638162893634248298984298762984642398212631544284732995514857257905347180126900260095874751407700289405858940583631024810363733062945864913333625065765123841448195515967955459378620739386228493677863957128561182275133453259158797302569325081292464953166295670495151121982130641619575321478766824260778763240080044616893638998530919545144546416562775953221070863871509124228145206931860499405865651167438138073979446246486912297162687536691457457792039607714742360190355553851976831795992110105437247412443793527851246976978134999032868341165645857951373688294100641279102338574088955026679722599904023443068092026058266969626726430758267927388623901815468086243799944505464468699348881977653817575623148247882792464124084590229748749710362354109214032427995606176353922771997930291577844972060775941442967380696743314196696754178822039031425280902428660540808439484836859929520951409013431348448630078999439524671118669942729734020987216343476770832920767581822475699852049812391836699710280928077277538842176527978278903179379023271792077936778659464944080566217257144973743133880320054089355288271936268879564623066392824026047853543499998424594819802894297280075303330023017156169495094337261964907072951422793273461146878722902741165803204737610122167576738582643569665550592959666911867939431800147768666751947116694893818084052043232084186064838393216375499770781170422836359630428771429071269434091002359560412097057021668854818494254336710301089409455287030601066497404200300037450896793661818611662942395004747324285649270191946087120742637958245260726504410771636279129241717891423964244829661471011117547157990062043098976451441966571525903206628219275183343351132316680913720570427202451659003494255351322338951573509506492815618397400663059319654173589770241045678719967919886594528840104430231614958001790293440961071869883290326946291092287131756156446706063528404366803275392634621225355854716719655309347251370319331594405250068850293500668939499104423808288241603204026451044356512596282645000225485289052656135987775479047266390194727867890887987462524815029158563693655786560508082365991354779091861768516768571827881290116094954793007236599428208860182117719784612724712769936420378691559203224684682575983850367098450632002861088108644705367695988919028279640917774922430086124302271842916028473420381003662796803289413542291473325471479731159658127393958296121774258885757908376897485192247526749921305662843809608617035374394562215839258916823788097702819653015181966083145654405083134793576499310307913536915096062512948826455130300231817255645194306274742416294718285572032228088470094725748824959492752807989841123951364802628231955734750699720385989113925801433777828817060659669909814281876584391774253014667995659504006227704482715844109404481540692477329935247390211014402107454553087381793761264549191132364348697593309693896883337490372847293026312034871691967033962878979711522179107596640602911730508524376669468032666961487929735042929998567151152843590809667435305247007918184488925049921467051856314171961058411762094623770767818948277179603339765101887800768185543507349758103981831531187517778646643938307531671024580016647107598565776647811544396404029272680270808515577597707967321225605854743654568141551540232734764692733658231565932749478326616627139834101680919431631533897424306857751739803996801581485628737483320180351489911506512600587847788764170903943754111867637110933474675535886898574028119746275140724363609713699815141007041109381216373852285624103148568836217618908894791007542196566828346519312558501406206876972387950339508453059341882860731528494539569468908654139630793728625521402348758191414147320783107731051255049992482284232903238677436804123973063940434224527158211347876884302299201344230809371347208331702151397002563631944616015426398949615210537289107411237583579344305635228120980745686177967462252242361615468319257236489152227664635882825212718431933517790478046163311430683374960789288362312774063364484933833902656797849903520394300603349193526590496050244803737517041433223196031063669134118403793140922200733260617060718771861779177446140854603696604957321216254593958218286442990196296044252175108826667517916337192138966294577417036708322842814538820636292555096299218371117168977714808518144156202853845172733249033551614744797972309061206220229415543448319931582538824541152395201579434862252329586096175750703510143673018496720220722692067644387979489933902994037713575244901661656280623768525573975825116368718397919787018646496482558904186611884180745704142790254215947412171987755237351662722757530665770697413408347061261057649594106133192637495528843273828898454657224406968353029351344813439258800340860434650966518922825607872532800794489518451887909208662750348831472534329888255228129363346934727560436134151770501060535285119274108453990089443073799745972318927982511701668623461880828405478969234023774673423356379526971011296852591301951089550559784061076859572129013467141497453180619479284323982650459029384894907798245136692474700764258466616916586949914570842444674127508421222489273568055143749536721739017181486693882151552048486098571543561522272271717160488717522726805929242110163511600688052782341681513237034627699724760012766313992144774205765086705109227993178208066708386379577987225771599952606141012033684281198244268867245031601513248062512425904772839800647016001922454795087893254932321694683468932947403345392631267432049556415320129092646286118142081756378826103363616449900147404863006376909949075632139232520366566961268588397177635384296653251035191693679842617352567954438938397539500050940641441782160471661685508074015286357499515666155558684068764361182064808398178309403953164818191123730353217632210696171200768747254069715044742688844910464930608154020268657289969282414268518310052177399387303636370438105768361297601478690146481551274716986324230588113632534126439320162403679418086356443009689811189132414172486787177243365713410512844335072465029270853699924698816780657353974784743399296667797792151096883773683990194192930632106144565794308973141212600175380544028948868207673979223043973902774956608908915513780719467653998048670554031822190640809176342516939457775822084813845525612593950223087626833667115061159405023897677895679772474178237745872165143701935223368070503164677946828013986664919081719664825747854585267317711166544307982676919676106708845984765768965050252468009169836423830206512679196108587093569112651023022608517313087587811192398731090588450958395365888272108187692032350795352981674505870894545070449090008130371572957359778786921053063572558195644879741244369863274731566134184301263803507567181505119290825779878362202959280603186960730765645157424077342518047063306298958255262789585818410369340848135427883919511450921859223926173110174572396790482666434592634737735095480441105652446962460470532695425514704803819399154766116808889659005407775904264077597015990084142586738456518270221956214457619481435731170324826624690318357411555171623666884268602056377023248303092375352244184134770120288546987676038490025631617994281838546644850113996170667830125590570563266133704178498506476996729899302726919919739156838118402664480607311213443587514208310627131202062016262429952430247605461778163759154806156065193991809236103936580525959399231711560839828020709585519748287488950074054713686650628809752005717039004209402534882510216159400018642102706713405269458546393945920473180008347109468373042324979691188334898920567625968552176934569947031344771563827036998597604420669421721051065073744848419738532198450628956488569687866339242210761319726712109982658124005398864564576744921959240548711747931361882608925125432571530388729001846742816723427842600467589365474440793575929336211867611598075442075533315902238960801869936784557460332061164221169801446393238042256706621663128091618216393972404708128960432385131574855558392301301535771579738487632482864574396549180957960169413238293915240030991189507743786142660218834813523916159541219058033199352466851149898756937615454066022396322089294704632322851596349407736187073418043401794692860889774919967702876326457130723785096134309875217968577259293254115965585020920657528083568281408180726753678165736068277443968452492063515109504191341667014305629840970259925395354049667344122256887642474364369144283614565071664650730481778411408932505887617938322728746274840235731312963038856787628342182894743018818297643856099214301192589109294266644080485853490624563667372867475562329269900636684515406404423567011033457766073328555628520428745878459536098698841946290986376479812097263524812070320696618961538289392041825463625751533507854869360606201002855892015979844745517158898527836893209915485048650388001090082041515695797756721885256740253766927019546189275987706673404751471268241563583385454570643414083889300228415488669129778196742046084494979384967957037947604115060676683114539910283022094301414582734724264998182928146281799802836735185782692226318183467680171312839820809145856818621801453699001503907692823400283377487946309382824168299736160656725689457976424558024074406351416649118338321061423469534060167376426504666200495875042413959348138797643709941705903665087867616171556589987028550697566494016048331651639558864885863276901350472412702616505097395044054491311697043171704416959458004374035288594678360007653036491291030429343392806224832927264724696702779782513097373451602987500498085925214097467457655820772958358512104764473937999032572238490005508033475025779608037305551650200295019894733964261496611085392511511291076903702521065540291531520191759947818613019477512689815099027494510878308282175377792566555443726384455335107324925989890814411191024115477836138916463926203195066430355406643183387003935873614893300170428743012347192896586456754626472914471802992471899486861626441629144980127708129282152616030588114428717353210849268598443178087007429784881104659703025485957219529192647961226416637430603777887709877713006133189784935276778496434095497296380148475005905337432140149752832008257601887929111413481287373536501387138412388323619024078073004944998826637729762263897842463868772396414328900433398579509332494384716408624629871164036617736783219582483109217710655726821827932260881357581574467490775359423176431487175775860846247132829627806387558668775225699803546743559262814191680041891049679821252182403245613535017955287642229937755244288900802030300649671946130482351964358729797250766402060712015183594872154913202778989668539719132342469231504704693522261541933321322972814997537942058311063032039384558294341307236358373648217027917510263551925804032951963032441285971719038194628948296850321332587264808201231788525846728400281912053777029698733042926161203180263850119231451563394081590799862567510699231463479016910563582229847980586227664831107012677519609875566508227283939377447050963759833062641188787226877743259763176526613739361655480029163914536913146661600392295653602480883355207302927182752139051141515241972235713706582285720573088950778541513044366343650399910601144938311311887871261713859228213235702777682511109886360758321839286831117085789010169692423423935622491245676285079050918272596202309350107344840412012488333114598583796535694018635593441290121355370976260065767386533059318001765477783771290181031934673221845173759247559621804699768864952054285334799919892403786838725955743841005674573621894511662510737809897205922863941184047397417119890094861127388898708565882280814077625542053151541836535568500877768051293070920394204366020260008656259251692952198606665035683279158327030348588324931773568700054126735613100278035225773652224357898923670839391697467945204647841660137424116560666536384603890885561549713432244269699619545914312328622678724356488182493355358927080852234189415520341135558999452092948528708866129530093759328163500832251629046057834846433587325225452857849044137735945632561142869434807427974794507458196349986839286528573260208776177785501604021303744240381449547588480381462617106462134963588609436510814963749869466736386967713432551634896203791351849839948934349971306110817836850716123821746766484432271091225814044448784770004880603404335353992856619787246900270648912614761116929626549757640582433012465320182822088189432664711013873092195569289560969246437997735784262822936525159442397034166549593201978395884353916951862479357555843037864976743820325956373860547475665914427527098804959987986214489072279588656867750356525747694338004625606869818859117040121855218337913298470838051944406101844755110017933819829154639986120038950726158640343320834053649331730080111003188983342339394117745372435810244923354312813242060120671605986734400514055417970835133336944129103807662099224704979472730496310491515897859699908680517158427640425221993868839672948030963931711873700875346105833272047085790734490380394181611517897561376021654586153402375738453183993221164847102436072638832483652352165710791452139215969217522158192833062294179905139527582293544360529155536148188033603020202436585286734317986071157343735963667516307508172097613426119003002808678385449597039039529701791000450962301539709010896894446042418457604446020717900216304891417517167038248325818735924383692851594111829012749154912820562062240627506487942808608368729387738454640397848301313338028200362668235477561160395232119455385897873757576494022676673247526658855952921431600803709193559688701684834040685559465394021034792518089129282182180510466280821263173833310472507137537223639170158001166327880718021938998792101321205087966876796045923138618138550073131813439770714901570026423833434259512060633711778191874455806701283076292287474769896665559922272269679193426933192790513119161866182699379521829893279257848614775090088063452283938631983584565042097896151272419151324329288783077051579737500968362948038123565522231407719275569192867943544262081995016785188526694764740566132005453130858086629611874345329984748277236340683956676118394851916130285492373599137163137651373119132392996259448144317969642931346616163581206378963817674351936243172438507991839617856379837256112101070270825669078335391245612043503401758941886208181911287256715411168171461510292187842880150749239286738503571378856774482816887138601172764071764239084229203673899598023295820093755130742211334582711414398471417356673271576265465272535552694386578382143112931265544172264337712470503161914423680937763373173289081706803446939242579056599977494049575720278224219507074958652241702467353675984254901748237340022838822988158235678185617304106571125546439574321710150847001290180993863291936210586104448762151250226712858061820708500209424829912101469448511135943390244990018384205089493185158532424457498693866279330839557038211394570195406789832062260177426135969704487991096682349115069447763975718052743032692442769273131192607527563619132118263078380109660780896706446205619600449618666925950120951438990694991833470880409179562477585357202183082358594482247512880048556085090157673645280204392358088917137825862869857493073546995318826982202437989055838877364381333032165325546951327264524125152387768663779629012285018847077349191191828726748839771393484716357830802815694289250271031520505529517323776781782513608214778790075509911642466741088773370083953180745399057523240234688535040096289569877592664085343356576004987347371304716077937078520047233127267199849781183388315646259515258799856010007291636871713699268684319662341220501487501905511659735986780952017915344313626400223773928907385704093969429622464855477905377837313673957489204870569085559506014346074329842558497403259607793189583012341815001078475786168705650032464354750955108177741591197547287723954049062197745945097673185802130396824299339155651878743324557868580126149687553641755363784062456782445723170844999899427193163189824089151657216982730913947889765276046234118179264348947620685747892343024278082888276401004941105186776706911149411315347583973742394504657531013142997815080956704950283717052135064605465824171847712392056409670920565320309977472766819682534178877614906502462260554917008970402352879931902601721511850631445122632642097011503066281983454400892762187275094556226158340989629939411528844622641464279179431444523022577856384432473404787639134762240205579305810308121445734286472986621592707551432813352269164278185526541935243659413948179067063383524583169462303141888408960946282024857004182637409078942308371938158811659479989428372401103419975863504936397109886267351327847883065772851243853297027220931248708905475621047848517618985117159752039814896549402963044453465326986798543365942654902142419998788806099786596955226800763010073200306767394695300197245437416149998473788003742758934609409999265765685066503631800980141371109188364364036482561781398144201435908676980563734742266562526917928606602364388838516887836834779663846648227760301652633596442862571309618262476857873982418724904074506426755059601469040618674635800344311991995595020300502790949277916377239403073481535674578431536174492035743925105187017181908689280341475461406801726553549711517614526848097418493210534693395458162067436072691671433348214945361451229322063505668558084278708938329649227624286678261441466819678154250091068093291889669211181735182964056431881404117211584131536930541382497568379400080080961315700375299757967693400783347834209442876188201759318712698322747780429818828192863951542981804668129945391100725393373028261109116782983157186621241028948304958012088220682129769100840587885163291901803357609467049919098273632771650977813543943743479259175384355792195919814783317792799813479901595107798463598881152286891928467104533872824351598584424049923527965027582519417605934774019612303441459752050748569368804363007384928414308883097950299553157219703968955217923167642657587499249064031840696698064077852079077525951800365423529541984651072858314168835942881983512486613169031837842176765864773418533557359319901848898293963207710962611069241815903423928443351971447769268290610648509506697899548130889422273664195312227020801479868090919679578495249965518486153553905585063904665638778179090259505851311785629538947525005112880515197983261373865377839427597649704458095717670356118992132238763920176917304643193236169008797026384951901663785330236551870138088097859845807339137683414295073468409152290268868684086386966797701195999417742906313616679565240136607087077091659958289038083929015889061362757949117004611453374161191767914413306405044127712757998996747144716125956045767887162194979433167222196230332044870690592896588514603320356412253463869917639674821036017294943389872752262379927301957361903003680592116514100015934266788854759010560689092420211724251923895321159536273339063858186003623067524971402097306145691689274021579713527517285507380651643197780782480924524110231624821629809275315676416811485787725267984787260573509017638247185119893660709206119808681307330956985852231309036154749500819074764509756494192768312963062593434488705721668682976763321124407114505724794029611949269548576532818642921738743972173281616363912650465593259194356535894484921985013177062904969551374039491010021481287786274885678982475170604749594250971605379474294061469162433708630451503159298098557570661384082824333850537041869415347643502093757586466383694348777877011489147275455004244576302208376728775814390048214266111987435508936219883172768431802841864114316928730958277163509189135200134427526313643812019081321089362249729190101185007378806889151711731562329922171331595785257957736112374979493353593347810092397643265404938985055413191467256660547666077202168257769219397468755737964083741823488528371490102188689711124171603132452598755120280526637886354816367930266141514340889384104163737658807999915416886235117097431004368007880535817134736377714385410551032847409253022385917092859342669973359188609417889381803542818402279501208844225985333810658615213427052442785884292004439413647176835984598450582582938279356340845486241843941795081112757183987040474817839478918305149845171676773934791654345000528226650773682199087448835957349262021472901874989337959375254409038991723011487087535657187276006621993506146722593110168455387033974155134393279606287978094511563443248933810939013098430161575511983160152959990445408364943406283388848093025332111463971796091387426308967220756474399925589713468869701615513323189561036970423346126419565879969450639031822447241834926432611712680982203319514263768615990636875403910912239663640090448028352017325450622199569604651893131268128961132604798666281903372197203802084005359881036533972169662058399383442297374460743860758484530410572818672098689945097171228531309176265888231065169419950965880520204521714019668619231204078677121539320074630722959025357793008956104618313813207200720133203474454133319043080598706844256000591204837167537724950164974030427423551052297723075112277527291420588043036865041836510188028958299857922955047458531248689641982737470379421173744635100707079737695369815274274242418064259771436083204004594586430142207059302037733558652819781457673667923058674874071247277372774270122496326384194825517938303484004347564986658583360211581866348746164039978610118188110852465518782305136484783952274930415931387217432033108632457686220271989584530662162219695933984629264058677680771214020414438530937165554720606660449616474944640748956872650935414011839276392368515894234221971093245950516267572042519446264792035061190194293173801137995074996282563962188404634835603296412482674389245550710748387662155500860663245946383579177551097083786052583800062590323548340413376355810820383043250057120093297976093948729437927599888600675668616780418344589659157151762345912178812130842095117476623712097415303449884894983729788086500902961567719315473450367634394633956374135836938567065220739109637946466971749585028848487104284871706617926937712967603268097507678276131030578015099755779690446470356819811647946594129640409607058002822480153513292004592315550458206284709374213514176028417140271437712170334965683629345962426286576199212564497331256012636428679668642539577968048394765176204182649253578355564209579622638450522035307934158456082541640785674699277988465808059552220335332835465079406109777932711836504063365882373189319987463611431594607780182129385713037557941497174171390244981398849731158345701823515584578599195298925296398001789700828455214485703818502886907834235984454612904163673178392675096258115846730220125693048634393410341690162774410942048822389370382138543336475115426749129299994927321301803506432727578251710852176026075380961620984773117606552894609821534662475184324315386949917560422554337040113393442537927704479212802189480893892040027644602874183922386841138802850392966058926119807409941584688253835713325881831282492234658223061924605468239608829022769885639587489487614492913902910966300861623219380371558659336359287100312989941062475719902943052005677982227913011530800303070861153655562170601085665188069093584452491088135159618157641184197835472827272771406453994523946671901016447141962641967608324365653090211359641584336691588223971674137813720107143172775388598177207385143494395215566438056080341849306156531392120345851771187890674035418381225011006656148221445920648718482011180639069437779825680542235502890694376324494837079789302268092100524366974297144658391510530566156390906143777849708988620281448682316229174076640296036086140268590875759479643739454223418103312194176263459444971924640850920122498294126903829897767627745278901799206224913967310274780617095903744702069954819068426914331661483350879056510949132182121972875263426228152995980941345917530086660923576334028353786799932634759059710987369678620937260585700920413387125597136889115401021430317102394025425125295036566923870801073807148101452326136749437736450067760885887052923584953078111876944518786123370580325352278666085680974918869039579776442019202220786127049941500722283950855630430447521343824896192097809489378461141914190105255166096583911367549923010504517646924408102624202144591307387167789477073091860842561154699220007027017323229356677184241209006016241195676215551958536520556229808443295316984411076217350394912137454620310929098824703849531790321738232042496950854129850871260669915411977786320981828849183847346015260992249028850320996308392078351957279459200247429718476753147927931309196759684491621937050652772449055711618952670924428074773063267563444263986120704002552080298269677904051139722424550766764635666655475866614757109327651445864139945840583926578859634095254555371113594566585889859982922180242978030739277014195713019432986766683197974763982390392245806765270421946735473340210409125213834802640479472671000838360164774192699660725520966033091105789775822749880660771166126821600784708862944923488482524923758229852514819942422375922360655447466303760647297634371419129177465996334755460778960732631396152976051653521945575495617283140243215375848109122371185038809920580013878327297637160705488787878143458357335790223119214028161756091304417683780345071870008961971975538160805962854899420831708044501682901623296451102182462777275462862148872281594800248584153611143492918127532066885124778607642200558176758686626853526859028675911805390621253258068455823510949864621246537068174274060816817378719348732308483236633777858687502118621880439598392935776963148631162194534508668208375890379932611295419391889005176191763515273895368945042306726698339715090585059513546015255954175569775258322980561054343629593322919242414599517280774333738940545573869140936933821524453621943028784896676788725229027542379223844581686338773649022304478832751132061218773939618174907057216936881574907005840782571455114931712905147274138248334974147925561960088318551745044376100195326192389697960012651382515712836001341699315032498720519409188037959999909234975477230638169885363629450737647988311245907369235036777858945971857728984598958258174970590219468083865380567215149827457517895924562371794087762096567261642159991818150052080363087917086353541097418696529878535979552352825041631446671088388310343697737272433334101236066993779373541402234110306601689060232643321924073627917122842840806775008541735547773613146283629790485421712159809764611954131401805619984137535561513532261758177016873196497139301364895918903714631282784201969867367356591143935477809320563263812197069756925600366200599694050628305909650516267679972416669207539169367710125775171606140594531879344964499782149979111760657961845024057891349829442439334950591055405288877602722525608078718322743017301882745215602349036641395327950302775482708377751085849118390269679841314783555151003834642470024414345749636476309144178280124212534283294399197499241491341051384894349244082849340078327949943502737120914220256418191253237904520082668979054529336373487560351784414999648316289189852613281323052846678888919610544468082332723529276101193151566557550574326526144333438283675248511149814999706774943806405655343316956969885548180930161324567484715504044984856181353046811569181974601310821893546295268876718770402604315398924798283216782235963683319458504452599727963643040310195268830615816351942127069962520898036293862035609876639768316022504251914036677085178487967806380407924831109710681768819017200783520803678806028884419902529383624463453316907014026187877916027172165283378195250126703235119855684644270909016130718992043347774750428549785685635617393732171131035202425740208402826359515773744371748634662331385168833519387314010944017647610091574163284459284047595003273901402107022606303594040992875226729979823296224688636942164149022221144448674787370125462572036780649423860651480198695399715495688937676037603417978915461932115346245073151047472169032849837656283963737668846516097413541022919172066047627947776080187362167856306786102013102418699888430455191967632617633464726723821814477455213643825526815454731096614797860537212230293748161103392031551243685818290475222725887791945022871762984214963204178253531951456648825093389605428539942749421026437753522864040281530276162753135907385762315335763137168760709171049613129808006238264187000731127014813132338219364859988261718881822539946139832638846376482561930834424069347503597055070471632499521728705900113456896707882917563948544608292078202118344361612744126444691208590455984408184476269178103194300675185904684882948001621951549184606255690063429480602063767261214860949493778239613491819412244397570776270391591662769223572465162257352261421334978027622874047047504897305955298200326407543250146013552708152474590406799859042660565827739785359480329221398124192922913931495536285900196357233044738513672712346216404664776604909435631222271942043467492440694908557537760099086109409048529544239540923855933421872517898076783472532715264860783256685961318897896210786495879041171984335029313801380934444418673327607182399243490404987626347385815538843831962735487825952308603471776853601591922608625400658951836936933213573794865706833676551668110775959820129782166778840271336568210783399943044704650879053209742016640657172198189851101647480168559694513152995439110096371302780620925525022717276826194071079825743927314851834106292013728721094449630228961756674954347781529313170128483978162728661350547314622172832025276945205873033205988475607400683701625795620551493840526489383225308236838885466452931280022175416805199627375335895490514377805243901541853997883953386960372378136511217325367987046463652650854158042666899926040849876431263120009583297237655268229176375983345651852252957193803317250736579875903519300965446903551193109597618535598891799574504316009798407578077555138937074906931242079074471543980556220434212623436965790939954022160382153174868334019799885062571649382616111409581856038878062299516725099536996150600519154636482629462594844595765667685383540069177619010927207515931565382368910603039664796595067934976859916382783688233602454191453827582402155145001538592102834812663170071138824595129548795290326119273249244473016989685315680487865621842229108139946457856004028566422904751195775196426074282028518388062947962568506720249907727703976955233615516888440119847521646755985147886192845796098743715250978238128994789947027221749552129985169565445424933235732285678116499666839903958568403085170444781269706513913466863599471478778057712479364357920812820301329720728248068410120476256530285820374557404012239164583421373155501890998440544580100005012687574625107081404307169088821272987196398671575826232748311249054780051838928281339379074338205893610381795809079740268899906644996040246942281343239928243438698741277480411409155098314585449681414248196957190678933286572968011963387338309187035104611937837955125942499910464498016004953899123859408095290124894554336170998633899116628408326027157783956358412931828003246400753738812289592142336028043742981891025077479824175910853807997746999850420323215942084131973808504987791835237546595838256196608861888760037726251163504127308092143726053488850011752120450366666874169226526064081765541821948942542140413217010234032590074595870423350399475580800657357881979613752457882078165866384995427375099844672724961109395115108963931773074689360172752393048652500442380011841265566290915519929352558875102554541867539013809180175817799672727083269475073200533024729405764585791661986704035307127631140290643956459409990635087487772765239749915413642965820471307254016472437287884149075117387428495429746038108669111062863048351234044626376155281629127928999819606432979732443890300344190121882299338527700244438707941257163548540032473880388550922735310834476808724444865620900569285829477822995879039221950752177110943473817059168933853085597347052751611852767442335369414528937129995466786434425483670622934558277792560094833479717730701517899481267127733993720887029929653017278506034923715582206146054397368221984329492540923274126170527280983667042818910033167960603527842464276519855581381203177313260648768226139748532961187188048264395700220009594772270159660349429020133589740559465466635815832668477530619190930024355359631892564400469006296006242221553434402243280154227708293669655605893237087121093483860071357316851626690131498488475303673734384703715473279862636213745886983774430726680417384265375015696279025344350506279190628984116776240596794436076752570390292178578369707610054269965302140843805615577815896335814401028874678453434071587942571068263535783045049881450246323673270529172810725762240605024216171668756367571546865967949443698169735422285232644025003163507402772105039466936433315467425473390979237454294758168453184173277229799366998738709764354588848626437681528684324410484157715181742676353381383387135104100302324845224396781789575787664056852303978095659513619329096491174172101385745733262124523708661430968229857090151407287038350033220512985372307335007371792935347018783022900404409497372051420075622516440398032777380256821551125924736654472090158438779451370308432759257198080425824943779827765487730567978414980322682721841167857414070523430806421146888523585459801151335548171221007815559317761544945514569848025833365687561147990683803080886807614882245991987880208715264393590748681572178167305058441667296589175612240785566198492184376880729172996507906685743401740694311111539808162264707347133058833786621793354428944685229949215905955840634322933689505290242229549359257459694273917047469190158987054496297077118464676037314133465853904755577152165177313349068521830823769521242455913009803676716132159981639741889045147308469825658679937699097804811629641980000016541328413439407940351519813623941575569154424934231503354200677316083318411157518831453828217283734816112225788604249084710680860590121730180596610721919387216252234487521131836305865262377017070274521089521607773873189342310835459248808925100663698572695518701776115082095668145913273984586927640419466188808641505252063878708028272340807708920329288730261642982974365652644137371042616661117515290070184938312507353139955767859252489629933126221437028084521613395599768082665716965120785257380368894764843029502153500142271672794612993497707063418799667068763904306814104466666753456515452818892222372974675373881831879761210952471186711748104468721185854114895937215670951586056929231383312986137167809517168305404977700277630641708892678790082087256242315666334803172445170000266000171325223011810011142236186067364946753245466490365272370560920630434670591551453237057423513239588753969995377729523369375259355231750817036166171646662047613125424697084484104559788784210215370768181741724526270235155917149815399885515372201646718824573792167755649882283331716522000492464107528290091852597979356694093988089620451798938178175806371772383707795916630016712497088906182904690540343511582876156976463699259382831106102693219353514049268673656319104073778368178219026612459958951470944023649182338881265149063423763381819160795964701859769521810084099823067418735996337488192609460256190511635217013743569329849518092020543780776453920287099265913860294451161031051794954183624283910564757471472819568057503628453967588177430598090631084788903261265984888553493535524117538326969883540518767763129528267132116862244616349117492966235817158492781110276492337249304475777726617438375739997461736856703479723423963336559255572168110058887003786566075311289433413108286516513502041172526916761137938086399514395327432016911499497020363035306706837640444508944010433432452995771126580076947524189842061513001365880365831513913686654737641654718648957946898278845876004835224919474501361038122584362988653481043418385197731363245815286731499019882730512052091433544209954389589719653481164711775234619810073987202227359176657578574480543140702491277307174181062380105677897115909952617379616899269126129316680266732041294609416884890716631467137292144976091650258615467058910495964222063412890493645974086705838511176979793743092914960448696414921163584512807548658695309542159189038270375741324143710433800672298961042096281024312863551704948050275672665421949448143575239532726786388653491781651950974937289587321122446273720578318343128418600587627874920949059437548322814170724701367677866044476371010647301993524595917029325229665162787339274380975799882626523334464333880146349565508482715020650536353421854005638719200217277369056743031566554735797070034451372886313195437027254086470347666211488174050701588623928346741201330275208093493062389815884037296780579810551682068696890942810432550847890107852581099020621167547895274900579976085908087352188949936968700436392797205160368152466188409056749884190197661406701529202225852608569910553233660306413553513164947789437316120116113580962750145569373288422346017509974818655963842395643536823984745761988678324806200263738780059684067267322057346088414339072436349474204900957688681097719280291113750805992312707197887821805117484177440178911743873781488544825841542140835376042259839685309298026402757956397613067753975601145193021494630627479590899297531139524593733069487770959066538015216401445392946852069936765410243542025576780967430951439593926510295513615682150830701067027014414294543273197762662989754960495053061157126366765747722641826437153667943677069727195002946917847916534992457002919591486099061561671386457468005013601976534602913728348682349392263969430095521095043329395920520702194467340135072585834710421452183218566469765334786438793301763411624391639732831797609779354089743329710913892998844478884306805132325900354916417771712464087655276753784122728727710767854516344220337588815206491379611060824260629137406727431406684810258928037808743270051136600133487885917086159251481817700305953609059995218561972979568911730771471488398762138871841130680746548608962366572067091534038310415814614981533530346505389499860698742850611663983778778742750824463522727190427506744103891382452233662295231352046108853398223962321466572769749990846948515327948791631319337390680426959541629987224968230981139991994924402227552950879827671204379882833507936656239151891554736016209714205113428383708740199823602944553306118562565596352436610754625360272904345664111222314306102379386190921151223631792141269091424712349435336410674873766700886927347832491926699613464600493190370268380145016334779580822389019970562870709250597023318292630673663709939447201290740300666804642819053238295927740990725418681114296700676097670526261641588041722732387679256853173235333155390648929918763441654839267052195121579313327347728374190450548534233265107390981423076602345398171544444259897335612141404961307704211203438415708867514696092384675909542705943724320024561647761117179514850495301607597037477036773578199810522277091363850159130201756241122465829407847794346403960333488650144504308576689669620910734440278999903202942317186709129638458885605290969773653699878842375799540284255618440891450941001694683726702786545629416933384284822742873223263705010224306422029666880887331392784565182158906827495322381360661152900979070359584026959680132054511591813393943376164259906672822695848879555686867777347541212193255737362417109934833574167932477014019711329324734156012324748286065953182305702894383766668975707196241910899487617286149884761075394990730812260200289149943430855586161965064676216889226520971528800755899060752983679134328873478866036225905676983989075435228435087826930187572989279249158798754140801044389721275954563886671025733367729911022311390768011029165750649173600677517613812077870110966649632910146671953354594873812642845260712689998998397067065270374162889188392154271739084278922872305269216950615241404329649517707462899257923514977635281535066364412402322591669917752413658919377928494874126776348550577289405054901182214698810106872865692391494165486707821070843467306885584228369867574287487843436721458823172908261584316853487641967037434141962712653347415837034387281187082660186013037343258115118892499936309608170354323011100496775430729836603631836177570888027569490267114620512574800248443296069632362695264900341309981368636230448939743209806724643633186167053821410916861014826476538281468277146692869894788937279611212826420914738659137733745092345100983244759500860437290942745892029230987180778255684275509695653805160597842229889234338480564047982384501705748322875400022067510602209079350162667564131993620267260760370103226120904847899693398120218128945581081415516251028961725961545953531019369560166853777760665661295012275722255516547138748589132246309861625647944733318313586668044870855275755433169690151080536033460108302844635009367976721815910881867661896162796922634900443097341471123560488031947389148036075543502482545152612315761625900777990914948742578757366430663953401203894249261777507637952427244092554775523873200194662019771967809294823274852754733813581380737072553499802647086027702635119978866055600185833421916647897513110941011390522869217445346643874542389526023562320665539662936697738371499262843556924322402568887699381737498074166666270541148382379577318066642168535470059833193250194698150609128548441080923563215678304753133309283984123530769091117541246206551379022630240450393370508342010049504994192314077137296872515616320234597706917748252369736518637810033001585328910451541642784089762943723774768344671878436275321348223564415284642320679151187154110213042274647657888745934266522896199622298164392070443726629185026443849987000962457131144547858139709284334103269043738616391207835706646856549204172449969567776374243950560219615463014351632979902465013132996982463704894190469332944023361459243609018764298185922754630687475601591616962271365057622518270773692353309260429766349063550438852659673029231607229633906719840764606625422299673661268151839634287465020919037244267812534444122404619346691423072695615425075859443920493956138919407144013361981105002483209271420176803274965890004094103990503484196328107412200875551242453384872564155741347979658212049502488115916740838043333838926216263122929553776248524177091115113276555198690157902612556209545707475149167132354123599354420136974711213022455463161929618352787047677077874582212928819996641069755396236961973152552851920422278678387571520373576130581477572053362629027705627708713543051055308861885337784659716873825099341265862964467489399551825728072961188609361927409369493587072856285013433886207303053431069529434831261125992020352175293331478133347582128865285052476573029486996668946383690906743212776919771679609624463907926749127582680777806330051793974238572760347164418566371880305046660149136678435581279662122145844048458111002199799020355755806802528348200610095643821451465783193242941322375137970304691222707310772999185555423774422947911314395936943799196125195176071509261807801792463553364991608929463295226770273046798904342942720924606946567871198383357588282364938560903124884603728103142925007812994056296470177350729810452951857263916494031291481199051355576487266425537397192741775276355250558320262113550676606995581497835105870583247483034977475005303156361797588154444139019292807334350703542412514244211880818481796310451090341808075550292785119321846380188343030990839935468831661444608120848934518089353428077367653602045953849395473093372574257955628220356666507704459670420848795048990837093614508192567728992951153157439598978760870171786168883867274748477644353607430965120115096278203363310862776916473220556573809518614457050007433926466840060465290455088847598245093623462438931064819692222636934811304664643172008013580039743203461177423023507049246333008366901701993670057578172176580173713966783718897271030068752111155830532883054209136099019292457216044308117184153220803689226483172476173757666863588545817339531067754818752207574694998669717171722294134022744813014518217278027983736598678932662429785779483378744572701182896874797202463315068743049197941577095223737415728301306005827866115631229332537862949427082574513605343225084197849705989208859751578828368021057162942785624660096995077056225674245596004144837477849126533741140432438422370863757589258115721138441258676553520238138851361597819042121674990961229958965127576323631563428471936794631966633219844741882394552185393733401151394715031320285624139394448100079394065933142423356521936153688557554049149733824818070346741800000990823939826229507535157934857502491672024472674843777963276434483257685485506050961960636197920507424086856465169231125208463073673649130050903507199576149789091227437915531151491622064780566609351194198266234213035537947425179002864798861094898265599238586728742439559123029077933626994966703160760357037044583287254869205469652664638244836180785806450658302087977926033029835513954233799236080154505757206791415612131744147884568587519474158831757991784239736830480508251034134151440064601541949617945381345379852796598410786104173651631784979818801027872807569680258325373418753334040951121408765160619600252912122095779067874713393366515151058266519211500322930586286287314875802763200974633034496685869811245069492580653388872343154380159047496038483609775749139957466545913205244861977579369272761496596330317776201263571126089764463551160989183021639688363096327239216618237681582874873465877835396155940668947568176427395831785528464510762162157659091877113491727856181869683104323561623251668443445641323856878677254464501446147722908002753581940979736249511321326629637759350021684875940452187369559787231873023117437658100407539277488583219971605570168969902146908247938269881036173438015215424754866658379285839213799771576662793074241499186308508474643653261668558129715169215139693232007484631764041482359277798157330486539564815297497455754366419164362397071391848878484371002465714421792782202461471828735251063618593849199857000858964417683287435284620964667195948593851124173313462830902604359776936122473138086912649993270328514564381135903812525369763747690547322147138052573915883166277662969538484661441902900781173550184223417523675522634901635742201934991546805091536605571172407896653291498627789078739159167395089068713573231282360356922530585943243858948009588102616184235607702735185673938920632728393470336722855298844464297388205033359812827270934610476633200962163101068600154421757500434644293723029834720779858356657828301651487916964016186287837391702761424709976370611872776186343196300846051904716400332731615460341784744646236788374979632055636709433357941541175332020230715827799492987778434825485204771791271329163471757802160871260440877153180980664679399173041550589805842382274870193743807609640545580797652795038147462146190187716343948045477164705136694962381194690466840292116478190269773631234123384150632024011990929227606978972697757681114299265808859083725063278600660242012892769540049633026437427984030087744718429580533788347751993051655842914383373920154102332466121465992645615822395569223906550131629101582483451622411627461539597316965519387602854353316211254403288360478772549357953265096067747225344545867501090841617220690515847609020239138609424312974582462573390574247285538087460905268338962329041294753455910669134370046211481365262015066126564683911378285285708687618114198473293189702665985596857139144789649936355070611648307295654944618423574069172457516229055362156093538728458482453165984240828714773030232069131780912849901820316489378139089700582738217946385078584004920181890647604476935925290833849410383052318780724327221223650471624012907858934063158585796343360895161823906994639424223780309775685825109226453227216844005901106666420749732127092426920633889515223870836422526757311200551489865888211303309027095784254766259872561208979066701952278141279804840710721014192458011945449367594187794731199265916618213992349998463606715950166338778391097274239543648852593116788729045457272787335559066186350138559052082006992651783832724241833688679630031912387484924467624759733626635838504426291560536818973190201728419897507849918565473305532753963932567578762342257226514583700348398851104332480780309461843710713852589391807039378527005044612248630322089139141986422444973248473309713994656222856020773640700043628738238346130093695187910614895349802248582330922362806119181163608153490307912328693859762306078691334275650227824785480104786590861594584355304886716511432340561330630624545296465109138532808093768887215398423681578341076457791768711199206039411957105150152539774458293995439102769245950976547475749256792495836145455059650837346716215082808754945866308754401470660424141748989057694980478240312197269223730358248266303246159528552403837975543074078235729734378352584084718361727249826187764827593665658960185051097530731913743711915693885693437561275491537942445077332836359233223632734273814100487419183963958382858518989277488203273585879903525225380013768710250764823922177298525309155044642814547055698956674101592739032914516731052574592199457819506685192033861901667310792325642051243427281741657653108358564900778928163747252850768250237061376598280358620388674709762188406041399776503879441460980582438017336148178990163531236411485913931803353964442189280002952247500393237878546603121605054716822757676785962389548459158832867499086217841292532517055004580708644184196541893954106896496826218490684815768961122167888206989146199789315221523674774185374090775427187620678049289304175780359104915854103403281027097956335853930860173715853721708905129926041929139605830258469720402534440687219238634906127665905480436354016380489878055975332947140938719506287060527462363300286472139177639038342194654471385403680433500495957926551143524312408361846764973292315337774289397269096397607276373502957613030465118591537319540886515369539755562123766843216021225899581528440434746682522765267828121342366981991444021265076215537844553684306383900239414548344820438786232932482842430644051283708847671676606476637734220883971145092356196401715026669474785620015252248428153530860645031753659635359630812988257044765150370138873452008410627155588147664051973820851586048270134785435769030237468844329814154130441883656443762302607063522680051562918180473788327657814763459354607417725577416152014901448669746457781446338133575440381449105904989766404163161474852852562060718339694076114898502256596248044930141337134591158249981157628339339173252105850505525612585334594338644634162721698171215443178526196821362630187597032148152851827094941146845608091136999794143067694524504732222965533928290691673002019299593974235754367459227785310144036290463460184496723787564059066963173496897807056538722735715163482222675278883334989013533793833531159688044827758543893462143046161461797696354336899550914013876559286801241949870549160678974686263433987618801901251447632880701934834115288142459413545099530126045765979231877199292121905090593877912485094437382282047124238350981483060949551732354263762674445526350849186611394289795465182395104735768592762659940113036632777627103653425032985497328371009257684580432225781327557645396969299179945495790667680912188023178748962472390537387014173600808446676290031281625641467118585628491881683055655405816580219752846517039292614597778429167524299722518133873925698354896768754777726490669975487614425550322018380024658153138628331438431470465674143197030827880704861600240174484862434770988428404376333457349310026935164747298885089105074260220926725823875676745149036295066774609489003866794038163754479059241149584672551768961322742876859280530321158472499550757088370244342986755589251367651680191162223592221169964748304162504090950297346367495649172377021371757651646346021633311319218877663222559809436438198905644063345314097107836151326380689568298392979668503343248394131543120006214438227665646865924914118979483053372603540311645038047615437692146126375634861888030556083613781651741012102153829341903919418395076063261433763340855568791004914825741790026523101697146028415905611366043384493682365758658606298846059952626093582166571668127454090714043787005552521380895708734173554176535492783022914743231285344737971857568650701993214397151608038626296284593353902619698102201656121458734825264383264854406345350748095411218558816911424455207128236352057745665686053946125537416578071015084872224761192105826169542470136864623842994182605939933531286390383498394828992995336631262038476588578443491531540849860790071001634843774828354541464241308325775828301201782500479449250612734165035759714646166782181285142680535246762553681783704710092057829990858964012307877710390547866852719573012652525638245765559656162214631404134186717460922412041356099187742797047039337444314779570309439523204444396131788174886689895273056945373291944898857913271042912888810407903725702667412649655816140283054606018883084573785163605502542616461878078464669174220536223018562600989132076870401783977161698334124428651774936083470113260816530454172539213609767331256315936744620094522113433891473467128870735011460891290658237319756089668791166019988731299912882230309466571711838161995095425574735263414108224342848987865323903256808099869218034271316479447539715562874510145544610383638012682400152994346985931329450085315182377029799492042059691211065611248456104388810216926504358254708680387742689778108122683296360185692443733618859168343719983498964078416654779104631632214033005474445261125783615142923634623538420809809625785967089796062709308779814671018863324062837022839653807451957353720138643600480858821508223239133860979169072576101024659184236673144192523847841294917959974725644319127044407930508796945865804858542029058885913156643556016113635428064737338244637386548249791603316172909555378401012982389775334104505218474564017272407347566492238930050560208234558193000850645962139950737949066277391071103076674155374701697486303898320633953041987420301669066184423969840574730505795106217819402706823237449336787578187467884733934432602913547252011625813716182484093418416190528735261074589487331320702876291453361114865785883293388446518807749329182707152607925980278971728666894467058419710414550240652588152531862619771224333553842336718242225689028073424131685009855000300233948850289996308405928730040118981427185946185800926818898585698396792867343752948521805778688052730134772350779994946655592099819969634751469457584215273998456078884776176425848173741054147561941214310682028945498593497561121348440744072221206853791167554806711963183563303956340429470054689235121412904248482875339080441765027675496139439462097867446628579277563408719795002689972855500017878758530259872046719546140319122617056609920568640404236908698732027849795522853135581023551726157489879165048656204896997512887397506136015875268911632028970269083001017431301518398099535678236355983095088257776663613824185027424658590095233776972615074873304841219391150683410190489819443031050531560550238315502081959456104827214534325418799547846479117187689666396547431459525491188966944823311341902283986346063285357260589152001057322279171079826910056345933987766998953671913905182962410770343780036645290655381285410535679101529695311643443045533910078893451796847404858426400422826825744301604915444099385468666381003340953882892026251693072826166187916077623839528666481937917952264039038150265878401399396639707065868166796953937671086887465180570134796872480946870923813792233668748864884072561947800997370236914786320649431718960525710915884154246540645054115439224839516921068290511554218710814727098259086550972809021317031218349082984770871786104130107309932405644844323759059540651660876369023513943856032230759122895856346224021086231123302822960507699046034619692216567723363018344105610159737739570204219017178365043245157406961476743896127390116038677218544338103459691605829568271204735146222128646589347960223120711660928463749645064972907524404521771785829427381250531687401531428789452559370046357093090746348345406434465699775235648780618433580154640867574802053869752765255133035605740451786868348526418539428510913400954497185806733593704340284363378208466822477189149511739074150335999151575813189052557856718857301662467274619192568309823661170727866888869787433494351034744201721230004835438783571345148343290639814567417932177972020621272396330806060606864527612380987659650409213380565023791531701339165134818589556836453926478965356738577491065684283306825747930442722572808647242104132734915058539147719484950931579268629403445583548922246862935312185498098563830095704940073125092588312222833544894495083402358565235714271323903073229921067246153180500984833061088972837297834458262210267397181158595885264626988869172866490662210184324811013986282501336421330367069042227385416094802018639796986055335626380317956303929712706121519839740579561034146239456817153169139197932857833407795892218566364816514746526046596139023233544195989078226520709133651545294206397033825012327430058578043690806628502939852623121378301026823537293295853050313921703474253324807164254255249288156720560426237802925099168257605859760483928085927978423129325501380186409123406050965786141378494382002171086312090873103506162337420725855746613369729284404120061273590606481024499627087085009793897576894640131602411163397940176010185089646967338592009303180000957926514746842725494699409946342967498574465790506689748644388953370263271440631356114687896059671760214838381509872576874713297325152981363520650530468385351421031223976896107691415685159999549491790555974306340775257435971149870142396145543995714960323260844645844791199304820044325614242124145836965893904229575059694961829971373893946161621361548881319526084092345109110005846578039582156760681230002716245752601619668530217999139148873371025519973396028707571072270729213477972217990937761126597804703910289960696315825075474067711093987705129541874023864214589318416204925849738408413522069119422602495279589496388538418548229184870236718053008146569337032624018762151876480411008749673757910782228345948547371368969618870767624615564393794209022668681256455039596160971965816321314935304390504019946283425882875545785579868278245640438943533826209106613063465775851082610560243674576899411521998888556432335161367541824894807604444411897761240591374425813138774946079865965586697120590730145850823629413372232739233164158196164677200073689142778441421954386573870021052298607172142416793777777452760014395867201358815114673808344642274542828984386358467236655340972812479247777367917223442958069955253681587711468646251482041114680354345301435665310559253927386011214299748998540104437859712208897441397686409511572157221409958483234046336628052555145058254715997627966909561077435310913929022562407853371634737401864683833639609793744768458192014358685389948849124822678554366906620868744867395555547589755353546392993409832402405875075318624822643223680702732401949643397089967507064896015463552877932939770376666458074273301980530967759220896114647159299279024739895457180248727925138989849916177556928579850844311153843693889508104339203968189931555722788533261220058533885618096647311949544999204772035091121335538352069576087926693487397254796049761459342124943376820050194919580226806559729015511743961655824100163074735358375094666589147377623916869181751099298045884578328275342855222551287230120213325492215486232148355889071347318049928247684773481640137911994034057421978710521725393577631132377214405531320984559711773797738538062420900192028124395934700090257225144593621471646803441998030713869844424477022557981524485062166928594478282162763002621749504831379873395880636694453900713562042225491689558186500883452853566979252121359196454711295302499325043097016591552102634987102595388208065582513660441542830170036097963634351561489030243480131419778075186623632913422225353051177552671352062017532063929296488104367948858684561625391436392597024734560604732987966696229487178492639580673798657743849452966131682832323210164426863689438395717522674874769973046465235774835215853410109124652411363227356317768492985688228262361621726215804694838488128856937838195702765197045119857860737889053297834097177602805352089710749594235455106290398063676436999753685095654814524104671464452430344249875567795637475981152146637815794944732542190447459013958914208863310123756687017958083599348325595959451968953806619030609598431180599269972763034130061314281802307671270600094070965653253618261363050899562631951434668140687295085906518057620811881683751364402398383919213870794486190381366216788272420000399862432696186851016406484931714130187636523694644488379373769624626570567571806413935499640878679972586288223392214950088615442950688174987497089622340690593828492125835165883393163183010366364980927363804852171029310818844114579855217423901545610817396765187043274897959447274248958246477423015944374331933705076237913587759375380194234006436188527424313840853981752557890961259643336437740652926810857529035264907021655972807244837020668699885819951897295362072890402584530341107657589230297488544034194924094017521724650584826515430456702154147180939630927960651266305741186217658293960647931559009640813886627107143036379101028103212487065241540909422344064041603239868209103848386205513717345872183744643487751834206273853856413404572439859880110586794827764060354350625741776563696350226764000886510500529382429345096508246699747270507743342719321284890123981167846231376033160096759289919100608830184490348577652703776480435792148702648936677146059284555542951637488773237709022669665926547127458912803668844590397586067699385007571760882131942445739978042829796849270259538144837791393441717779400960707385582062309124326284818044105783556125449048211610682847737087820185515744722697822125143277296351716457848774244110121204136506183649321170963944996592028019984016314991279572148728098460886055304948004173615910752547956502269120435091876415940182442978127372170870243536158211931015450928834562606630752494757859734841785230744055439407312781984458103069873438818151310323812031983633715899815773842875307790009465546411924887618124949468212061670062723550643944550048868057231091486985704435178146630633942710215942753845947180231358843202487542370950055256557765133940526044825248895187907818224066475259063246596693501860983883089814345714508879146293295370509145054162630431873146101262346751049209579696998878921796852881339717295388152198712816640694664030145849954633405228548262804431663746397890748855169792468217117108445787397800496968134608145656436916412458923853152777529918710740744114877667116664639359164318201444038304900982373403855867682412577541661500282704930675829207846491826821771913828369293731188514038258082903100927977822801345769408252390648015303178638970261463275961776766881706662345914023893369997850758176159818865223125350314192216159873171865956220784551197650705825501494176775192309818984513686752461451167342098089655928518934598092851068600605863256164776048667810679624233123535920576812092573347929225516737076073303750600337644947670351966668538063391921600336898094158550253481770343554321574352957547533782038037668143550253982521103111843889118202808784558027881572228131145626993283049091269097984716143606667600915036346732919979091283831499732131666014731057758924205787058151409223926466231008999661305241032452396904806952012250749080891823348256114414543952840542966126091153963828938495957631187037661517435845111876622329965896245111790133563364575355008015862900174942127906694799428234472715997391887205701734459408469976628556148244661710456902702978817744993027357983786725030038160223286412838857216827926719723790758784855738948389358589061373189817819489147693443732206315772792134258689016014391634740790623591887564634655055394720898577563682136827236836482207611762149110065525500306810093180812656896960988357077048152789828659284022594490270468920058658569684541156231663670776125337134277936329376738367972940714241612132304066629033016317832375202517550507544309760169406633811651090267762691604594046503657245764006859502806779220759066378448330142002852317766028839340244193414613061218004011417810621469503759737699224770774620439167411089877879840972517091688513447239020540562719835184670565571808887969191128560047694817323831529513613022949118611683954114896298766053479863390191277876253283587901972173035494949485179950550561106112801209862894729940268098602829222611776468794201934033474579612307701782163789973859604781309428691690935905743383318463883695577885464857359911645602721957987899086698593917497645403314112119652744113170078821158119143251684830835532411568184912845714786331356592042144838212887346080967578797034416418263794679292021839695966392473622173517993866882806479670284053686083125778638437094512649588559037935643265009834349097038024117796206490053529996039625888257360304356647370985932524226244528020774316099326050483654558376350089060094568558381840313980281162827980220980549552496561359615703819270118311833099672808043018544180794804444771240859436038337495474639657444475909393138955100301177081586556617223537790470605671377902039092539119493981427974517692501506132993544191020751117986696386422912555157920842969051960880999999834113440632413766541788775779033659217475690072738187564383557244365797449538759273469220244420789168552942282386215962954894287669721290279545255642900716394675738733061240322280427292617695177474244379033230538854545266427009676657668959010973449924307025149788625919057245002887435580934008490416092898643736632582658897152591236360018744221025929785304280451079812782054349261338019915377012776052970430325623493586601853011048202647044991843630553542031272770378636625570186942193126511250328165915633276876376509113638736306356119908608555679325934781547610330048587529041440116217199986205717193116333433320697201914484991595327805017402141773183080848008546456424673669103902223529170993212853317152339588931593305300276989074180170606518246479414657676574662551669608763103981449753626723873736255219332883260636235305700649301113752829556642849565144902784491629051032460929638321646913260386047445120201426985656812270728550752654511343375143129196192843319487675432969300143888750932340795220277710455220305952332627886623871265367021813663723772567666504633396142490356901838657735730064978407764365123622665543320596422843127583851070140851897749633798824789789782000520054668836494771792625266990416128702858771157811207294431183933306079553871458281495653019441178613722274420812559993773263070947798353346978526345678514762394842382317984085521957520577458431415366598870316634253645675008394370725489884674355017194461916685368436114508976080590901166728001601345590009598786899425368490397854228561204003630191991508809078206990760094463541434766752848977445489934744204991431663199324011654064207502476181800146621331060450528245594060824761612621098972233919702795487830063807658146024867555252738440378798322371265514719026652112141799288076550930613414883710967913364225438754845446093610562447185403749976159742016586521495625354020570137356781940766890182623559800407974639326530990405896794497602925159632273094491032858665464438153524482052313174997715838016355719552399814513900507934385327174741460280491913323694574007876281866431948858571297224492591150472186319086993155672176451449509420968774062135283160030332742632332663270893629275592659302634638428593458053901254276761722571678892390441740362282098196753818472643429209266145657860790224835123112798157486674859554098505915059254714808176156440865313954023421534997384962389739089152060711852343378709923404917701172062916324067057008441896331771027643612484854771492514658428888315245758051720359350906208227132415485191891504302037239535829807952060812812862852821928689537220603794417577271569728377239518826780184004193455486922301186573750900110918300733455675306346941043484966906500923549401798901907085959992444518135489606896256970039598364053395909966052916583833721449618421243309014591662484858528081767409887093919788855434243714553264919912386973194002481268806769713099793405011813628776973672664522765923441399901256997884831822523975091341076705008989943995781546080357487081250608827876975760122092766372564849659942115223058525013394911549809093564705465383187128269012128139150595311300960033600399643064580941309264709880655503445262041357528902347840370547683843899586963148653301844821002158950953735723044057626636704538116977446640526070584163746402574756882981668601323948957337341596097865863006064194328554442527580626498899293435593552843076254599271645824559036024831369306496243639634934651108009593994936699498790437097874597898862413824419935362642539131177707246780843940455567057858132377933706674570766030426056609561627607587714815350522801263839926304924089582050465456008309136710284227542566314478757262003557836445356811877347264131890550202407886787605589312426497128249462553055393184159937542368601215513412177503834643662884501792963934349639505771459867742151396888577138769442902075139587655947202016464182355080317798212619851957709529882672714301569012140868998543541915287481572598226913495743224068805370010161756488734086153077861249698365578581308643791197707489245890043939276247987369217630943094584572423479075660829332874247590990165556582916189930028693586453547597789477204320812016837333131907133496833468330794534913957234510624043064640032715857427872175341324110746256522073739332559622891378405604373726296350142965170397185473527510552188276149381501909018057256939658991609053427525446899055146169710927753266782155910356376620064665663584750031459116896345990874527659607408104250755819739747173110862081249312809594083428233419400888872005253379561678432262785574648737585972056980835138942181693456253818168334922168432192833431754960270622047429982004756438459837503573642781449902140116953016457478441351096107626846911503099454933303382007119757108681085840392821800317341205403060614455413313486459124668731521382043160061441687568996979055138365397142266486518535082297575889155167125686758370478561080404496790270399462384330306687186664782103683156032744053480683783518566877057209527681622463234657837208715222377119009401662646593030667113429516443361118865291931366976394922639146092265181674899177160534523861785923244505268807333557863907362424123314903248223062740244356101944056050418912043925822111924562620244049408945606476611439401050936807231975122865207908205029620868063824438432425359002899586944884789153779930544517084867566144335726981564445478140208443907595596994272359662814050222682257682226470330853417353559097142736398404820894440297458933144123052085786528802020825156541739658383218514968765435440856820670486306729780955482409517060779511337380698074057280010764888791778743421489928696690551224286412702712467006675582454852597710376991807159220975183459531687902846305356903783020039294103922259316236926799640278931253686468287750687629903028683088051389443183386247498979887735543090022868231039413034309287720386358446073883576102487376556810163158456724716295699321967856253462973038407546705893673530865311426014322443393828234967617546657275321445102050845384980762165914135384668722384978218554988278110150132347731203986491006661732904079340474485908958109325678256124078131474734604135529608972024552670307839971933861404173347726405862791722021555800528525605245645760476788742127828260761549779924775451054029194589887776417359234637652239405341117352694146855797477469700271058615731175071746293965594212300939640453683251353887120778930594273572397787672930837346477880302845130451961516941760390131281224637485770018302497112590902709236013764099025198393742532734396780636253848580333685438527032810990713382422595006280432584804757684448056050411702894271927466348925777263904333969867555646144316396562738665506481647993301720993798854176190394917080189889910540877268037958509581358702408649572434351517210848200893441124281629000521312365974011870823201890093818759610093636019610534244235289026216146138750300225628746357131835392602735372879954528884649268182764064725191719301260482824278323973664004027062611420692561391329389863013039401012087749793135133410417950815305413021836758214044059823557286159862146214104529520634205335195665023426288225297593228337038335296853552203212933444438249524432874781104103931694178904108808913203760912287476554604780259799355360213335950135119220327070463979210083958352830301558671688119913866594759688265992410241942501067340831070037201684116631381176072436912174254563671969965253554005408450476623378766426115564717391031996313152079779522656099183515602179644806712605917231155198843505021648777113485894080593825747588166407235446921418575430691194968860961049073062700366446336735595886620123265118756574544938542779840007702535871761159678862161319556000098837181534526469471827495267370587981797340755846995571408291117227647303628005444065379788994902771518307247280771515288433767178371152184443647834937338125886967579939379671824239717306678321473219734687242887811065216568253549703894471795335210419858127970870793970875926481793235989091589490618037845473435671225686336799407654757194340475103924293045206261748057552585532045081906223810626508433795137658252835273649682745337850379940654873012781342206809561579973200214226288099736185691540656458802483658085128919331877201233036970733595248138115900253311148162264677063322946591718101980531183395486084540050312673590342355302628773847688154923350066136505314954174989011774542035736751866336282299341402145348681037518461849008424680035118094913864246365808964432963650128915141059360055653616662559807403530011182142637983360939671505545537388047961222994405730117619406995500853004925067772519454322717208958866800822514942276588954351495885504765046997615815418782090800912525282141354822443424016313820057056827633914283874330466675929579224907029526260958044544021562323969184519550691957335390450943099877724189929789700497470908475805260005215664390826633735801794401762257264674587035238611489358086284929344946217329429525285536115744264256900013097600904681927347971792458812173503057314864623174714589874315494604624025766380819329189733890973856235307847458767115616219687974867225657731312017551176645415586466061894931386055220068746135451213977548890375469558625591644251831986582693881703279765325218636212878823156689561695594371006532443553716973263468124543728811399316524805145785697287550763876934173314619165768467119846316962391254395554136015473047458160592033022522171939774019963686306692762838902656517644843942505391458401388909002574562770003738354268621983831339895671019600271939806251121976567152241563137185564058496217994389318590282247713213049076316568111905181216528978143034444442843794111320775417300640140968325271950641516268971672388744369471381686071278580793045560066475161826972620161335927218703721446887853731635671246271363564162295469148681158599124364025022794770532571883559539587939203497636133721164719169034827832771073001195204595795084363084651918082992591755333821580986417372388417325421547717926585004792115561579510847438299904097481946248659889473449931888069398760585691131682297567469552972224108549518588505991451127345844302622386799672890276062063503938295953368757683198836608944819068744572501308187652436743543726389240980782219138263701335391926724765142626180010052071736372521494878138663232907514826017069628852447256666676627805800852121764460268220168319412243818136473592723002459842459104735879721805010663677515531729532768048398292479716609511413369663843070623200356675549897301067530741651590821688459375124883110344754895922189805876585095297477386225125459959612596220499756781576778716966241201455574334781173487398040759644191617284940417045959921194441967052374104592273314650153970283764494930671785127614004046627331579651739497153364549018194971971356040455686525649983532077984401481806482392353763445754839934194017809575451303175832306766770596485142907995288203654417292381806079427911379568723923516223995777611135800942393741814251554872674905309891701118760315206050430936039328889595093181611059295204425492674790840709586611898525052187123683355712148946676344264809575281970062712986440141216239078321063781573197728628733828842016381573288703847111408683706202456529857203509075702357157936551187851085552503741605069000543843752444677185674643319260309995823096526785646727247141078650819555015567291604796291105693752931039854482111247035612827816416081818038969023691327130331094776870874246453994489236006792416990778463633350622228908498189806791811824573903834193614809556921599875204571159447562176653482183332737558990874852412307316836635863078438104030607035041775874858264393555542686635286036592325802921827566247435546906023880041200571925483068755992346633701068446006782197141978849563813014409862498567932650384331622235601235002400972746623602759558922502064967036690932177104139791443129218370520851380254373648902002568902341460035207615656392602802971172851510353712927914365664968201284654551809184983679248064034136647530329664660351395098485189938655889827683097018391877415425824730377466146632982632004604833213004331846499732476629650822533560017069587289731189873592311587656327597819407927337338689193067368689029402642116580243596848701975012677968537263624132720979633127068559090412408032543049953889209113821052967373577165422104626728616994334443742133360866005254759553562615980367239569563073459472986846429713897574008739585485343047964530811635962692642462574354755121058492539898884314096918768114269639887440419781172281007113403594558254428599288887486051221679750384152770723519796919880485266519241005203447272806769048845174528736232201970509220860118320047092499711193825738170420997175353280029127507094320966403814810292433995120790731501261401891906291158381640692186953668046653157856380180148720298925492524337520673724231811323707797238830169067439086393662182729644646359398985837414225475961741235744066627553656704341333254520926067727514047040238650077067269268312988281552279515368708946404728603243672045342728146739036829938633178589647157316834452125030773340115261694044417806956892152987854118159600354678012298454364423864807420564691623816262490897906579510328445083658699341515256676234234085202415932334904702714505691375732605153252986450315239997552908529860790337735963915788706173582747934865453066366541048294742475325898678040983330097763431306565983959784447433318918442167180218869365489285850357426508059057706034321871935685825651206696639044862563118021742847454825143792085620095429184026082073988717650089529673052745131690650884195794146583512805431181397122572801071116918217190086781588232828228804863734452140835229673647205438960983989582506398848995469730356001556842665971482898499449574240215597784318031188879412242760192864009079233722626654135348933089208954371324502139593472408538913453137346454170554017608208631646232987341513890206377093168475527810158467273459591295748620802322129901264329603380625626071098134091145100157437644199841298604359872570860701976117858515726690067907515846300931945745499968544595818230497926213628219542563526415941866226625779207251765143673917948012025175354742875236689012393256637839214813020566445111672231994962196014602455761275750983693570684291669076765851729496277144639093048556124141613418590355790397875868950685738999557506104781608175645215752753061248805112255915392753519118765682299279934730273991387527183719927698083572905702854353998693886367983894645189754545275593892118960295923020449577889393344709749448901744168106412730045245872333658977504692806132102526124649137972515426168653622542839983506744427464079890990801555340451747063325395443015449488319236777275377217775844842009269897680464038080115937675086761291499660576495214941751947445385158898559848235829046572084660075316045741242940411629526185681807286921858507558521548704930048580063480976112924013670527999724100655090965194020115154388216013380144236958643111815076520030984238153652396224611698970310785257792655545710476455023280491276135363254739081727114574539905975282804394716381560198100186033077726417737937072588233044671118907663305206654824941315326051329181992887330339013816765105982251953967603381113969950956423499989358178527715089071660182404132255115049405880334903157866728793523389424144114654384405134204216991782467796979158484317765349061740089324770465352968197085329988094895124532187585305288371037393703364721137948642665869869368646999697160163011739553621428991387375333591284093487155642715288171535679297174576764100466636867994348673074266477540816176122555944668615438127992198257677554232141284338387479583658339391524327960141305481850510096181611990428902417931295489175475293594873002812516695871637398254836707819051098671291753018003998117121187529370733660320936317238808794980279071853470725261131585741980455417467647194300551278435389306996778070912978413421278843316495747846091504415131427055677185179855186371087413026785041175843483090794140136014978728432490766386671342474973084242226221711259320112431123107551739256812708146494614986042557833993002949761245835180530515723387888022096370680767107786720782335626106916255033706857239381382584237537403892239932396019074927409134776041138946598246799625594941130720379543288257561124582541805666150581153683869241732431669791086794365286851973550113664800755834783975488977942502193009882760364771889401630068988026359699680668718508379625245785475991110568182845899979733689175941128391581555147010230964264425547054325616501433882202683668365155166458881133151379277774410363341963418262706848537284146810681240149302078517221082577427455277085833576072406219436651684463533787830170714565858302842809797989832653779424279288547875659680381767289485210386886094993989964889680428724040689755353232844705285464698355761421371169813586713077981841485370147782851239547956073706251668353683210323658226815646826599136898984504285917749606906756131091535560141539721447145064281475744740794007636893994327210253211894253849579734812090553550731604280427386444018421024794478692735856399252022846616690896532467929672615663511125349122441162733627012325024517226385973826682970368617095923281823088818608544879908251002366530151387046519909916576359816020229827774147049125292651058398682257087725106804710172899643655079863984113704847736226417683220543701804426015310794513371958961128198101637326730087739402391733042828794476387266775096799575198973999092339533197483727630653491871577731838592916940629422301107176535143386848938258245678752754353398761293666477885536782805905109346754340620943307971952651540933110455934705460960420424108800286831855041794588051314858578160101757780546437083519849717725412168017622547652296737319409470452018211445002742681824535753309627991487851167718560058394834186347893609590076084001133851220142307842550557577412824216036648001548358996460889420337436472718522576758065318931469213748749480318480720023930025161125587514800728781459965231083279453141866641377323079861772855429065030078359362354173606397461860176163235451742822433491553122650206989846853741984106054487414308067980747668536221278325513255432597284253383908089151366422957009681750544385244388176880995813506807704391597540083897140519906395002572156050909968643317113201337334879089978724154762055214786724080924426658906106357787543551756106397107212246004495502582300117076853256939953961433992098015050549233571267036503062583009767298789870830924647609533845431529383886777205617369973355239737459186997144311095029671921995546575477033984048747210287797922892322218946688417724265956024447084080481912859321775196873215850723689968344013670098127501758837782629378682750877135339259851152686154110530602620821729321740568782926173177883893391513792117058773843086657127616390028192118013438669011608190823033555448257562668031944246403422962441201039487658192936523182206276611763558911182220112478383021206015476059081696485763226324165772559669713845103684738087722732638310944329996953801862627776530989669218764862511787516872918747386860589474246457223560922097529737895000081853704483728742724729703995115414633593560363608846294337460263993156906857200146432491057280215689509781993107153761230864599662315410581923383026032187694886667771482282078699883383239570588759294797943482237969690267275087749226515078918725042594578342060936569368046570209073720335651674520941311708696878174654230697025345365099003247799344260157294094377594859118117883863438507986993645050844688678391711194458542957764711341569010560458554710492584712578563013389616676377667289765227551315496624203763921709010152873298846548621578502926079360503000365475636220861982689518163271551049288590806015197513571497688055272145742448882358367153741421101306650155486681303894040285139458892499917436892286921412753966085391589898820693316143466534182960714677717722771408811563753130483054381822205104144185438064837569204994435953967505478618853072791136610585530309157012072901345895337476272424934554330932494403251777590058978622823534614896385455454760462547111463052578730033291999390622151015711158946927668613239653789038428711785192017501523068433719190161499064259078181654044343326541917993368027501159609858565616249296206888682423530812719168281606851007865398763479686666129773831927230064317593711459643227649939684433753496808528900648709874094699143376728964995691969017894445538677786613983010312450239805274117262643564962791970812118338337217852430325907679064999039822507270583363937376356924672249144019458813605842522383770328651187072723977648062032834332610376407103044011871901280333884931029983654340682120372783699843125193413906966426102739870205727390543299856565712897339319667216438527000319278412736290004889025458996080289711257909525143999393125320029941940065864062042104329734242460409145896335165627896500075476750147385449903456585056277398439248310216662326112135400445536582838688631398034522929427136166660610565194800000139452896766942884309413676456461361207670339573502120675497148325116658302130586046516575361597756232922194961611889816498205058825093760527654239907672974453103179371175272579703825584735752655965643384274399711303135073531767765150405010592671589166465855985428742520440728382627607933945116058544606142337483110862851042038059346595437546155266146952226132208650181132605999390978432603861827120973415540489526746034380219107653116105153316816404560190736585368193564288414118130647538328117138739253822728761044915273233691524528795475745568662771266795065358073115672116308715486259602013742074978507912598614233923644385614411578451069672932246933858792131458109327268269404034385916681137334772606796830824887693172635194227999817516663723974613419278046823528360641049136117565549176410018211842812865474303249866389183395899409372833124956936132298132712638009885028046113371621022665972155032562024451826421161897348703933156539255677819108081000204736435861064493353767968810679917285638893766176612841806746728768479114966784891135677623299248587269290579365861668351319819182489611495652235263185946397403900795541186966572144067824447693103258292411662027129008277288683267253698435774618741519849788201564810291711317501786013792266262040398803955887928826952340429109232920799497666390680077871206039068616369967388169333103548925015609715700903360922165772517394315820007221049505586282697231197245881578559735966253614555336494100571755638341549038511710917422066869937879152645436980700993218501410053712969310051684446058675516593817573477171978369468738344228220581388146970627368471058404968646792140526260168083566031004914557504969464857205174498471221044556525820804377484094249695697475496805538707696210230160158826592932222436883742463368665374865967981972438431754522128653819526624931879757510444619876882595658092091255834556038549182717980654445784915032416710351354006828555354550899372117713702788327143760279934530863430972132253045255092370325675360193084120405079432605576723171287382164337050682909778412370213599537719970270544897123818795715501451270212647005415697444042500128376753499600507092571423658020164027737610613903878191960393920097806921325043900509723042548686796439012170651245761632283934804368069837146528661340911667228808851468289568368910731580021118040402656168325466450545691038810549605266317880088313402068773370245996019158499838663503830371851463674843905092443225399663624446487623408755376382673645962375006886045381548484912176682525292664942667393234071587342518454446320923201008319594265334361917740225200459022701245186618454464262030955287813889689610811491941870789096167606002640738466459141453572455283067156881594331301731676288775045491579457225897854343764009071323821294465107854698159924640888575693050495079592980899724874156142559317184954705813712099926758861317734150327528653819885310113992375320244932443738357531344153128675041519602440753959331130409082555375402434167488328205645484995387239937801467812894195268886926159776872134415521822651677428282446909715716665680705828263310258088508786118662529959220195888836058199922672465521962484503439833930918865807608275755697282046946270988557250797887581067902733451803293105271711741136795301321675203084496775668556353339474679680059579899936503866441944398089909173720573378678876593334216146191846836508993763587232840972858688698565353720065047456746454599574428472665383545070165691829128080137237913791674513243705067841651977277210970981721193901105446697059171732213537796955743129184176596937397037756869888631111901686484558917735846577822152596929759324848885217742077848806909915320157562742642304135536514042567152077563808809696912883720320195143709145662520417129247653375640322044577748064214788462394685842318790344474934082056185573798262538859018204938400002021089849875241800881203628496802578072383135200384275626987907649091770368346017082560115164742925669348919118861472441179838483420695300995466485309780471662431967617072429395878322465578090724984503061823996498187019493833668216145701431978183920112413076706255727024249622486170515216887828096862583951273984741390324752173329236981451861032834884578835469305289055461794440081199720623546010420741353644894656261618628370664068907201601167264539100774205198071916056357965731419343091632860962517170226151258228124210448204567999738444133499423420111807975708438823854009062041403286528002729283348522590676580201213258526286841104196000328600035665949731469205202609815595109829177381413035698349478045135091892987532745473272022909248794842770211214728980166305243029036955316234381852728923561704277953426631040066283652066063419255651457147785518033706508481275289073741489766973856991121030317536822733579728663416294768744440344154474670620803302345021401709526167542999792895326482649082695346997574604416859753198506610337609782962919879276197406587541874316023641443293665309579511089430403906966852866123115149518498449574901798523042397364208119747623301387261718766900497284786471432479478247763442435043787492691601255674597324588909563039229368449824884186455211608468193823281641620580159878444716729942630517381197219853815470773613461427302813322547392645513401543010358065298329529444437036618971171542392799636875086660895929392928719635842809812318500684608041594467286928720290367364407530456108025455224679842429523580723922368708195281308367291672703125832484157498204459875816973812307195146653670435478569991901204005994084732805899824183777215277479189869966149073871240186303825344761821575818148439985675813494086032463293225913030371863279121610108068293356265121323425180293278318412840818000521702220159213421032492156811176579032155186288769369537864166578641281255406997499767147453732671397527486564478736266899172520347323024661923875211551201079064030398525413404403840100949222829030893729977040065853852396113439807642386851083199742583325547412536945074992504073401022628712737658293786406338423044825106563699845552595070014811551418279450245348472802047325472341375936721332515053940266195850975392814546237939068649596106985921866102657511508921706423391027341961523384603150717444708189362608866739371093012844994583945978917728427941914007137587166489794560867980065100184436178892573428449499997235366167791635912589061904470184123390509946284445612402063368324386426570921715888388986659980068532985148426634142558626460147028240916060786578774889022081185716745153975272855351948094978906917511947330147299711034736268327629018491450286208175317186293478343642859565609926968267062810659911078074504069361749930953709367454962205829540860754455261165608076230693144686558340306822053169467977635201078240142014957000110294116558693084456029025315428912148470010660510377546775988061400938286633581758754476079747526673664796906105130970219180670156000014567096226486517021279201547549231084592244772826435402740677095846979680879484386820543440158175825289805106783899081546859047161877919649412975896922841664017956176287313374691799483948064758727022349213977707622799354345770652179538006449443574275384235396315009439279309328339494551071428949060021389891744035291107803303509484285801199923511799543609880396404472078978966777541968090051975946535180959378344782235448628153407844606513175444014307452870844341098413240029812530997707230664891181936374464457652624969306737676635634962381185095764353760357145673287299082755797642352081450529822801060401350667088290179329109732042209700328627500911554392598057788243346288318986381845942022597794147415773496468211765430621805305347495459937089025693419940986305167065609807008574008625638770199584736119349392508943863844906969529452790108089499369543900176327158947184856492542048090678510119519245981451011585985453988926688480115712060145205261860390315756393658914671424610112857342507158413621925020844075477265632041453198470342031923889747918796745095875587621826656171639238773368757133156089574553125989841187992828536041368697252960467570746963098050287484602837438088374211278835967742080301719754146781682456851362923748785795950170431958729775966264171738848340970120862402058473084222209780487304109895126708562045357934493993285485930758705677465423153110478973026493876971733762548684866765706190519343374756229583139629304077245865198954927924549797907171910449942411344998191680506162364425873741805054019923929787095891007112367656483241499020746324458933464628618565081592181032741046065837133810423052262898597513981526581049181658314583952774171917571016690497041101636017244784169401573839745402695777524559248600486253170944815196961437268211154205856824720799074261255520681200154075442789989577222335604283746476234672634971811918280329871298424158574909536814824637434333965236791108793989837529889685211757423017408039612109482417078456374153713806307064592838638603732828536725759868609358169680184272033462503855223268574895868946293042356381321856019376912866540490516028887882578645747045926782639119553413253040447631537037553755564263420550143262176068390879845102762363064413630211890557424954131574368980869332329423790953426921564800492689809565800263042924740468270163376403492736748922569385165674338856807776458974569139387698076563432216125295244471933947904627143386465642182558986670599958423924062472916322435172497485208869280987751137962175580348595665228651948911631192020625344356438702707639692977618106067625049643877738315791414224640069170978703300516776048141395916064418193093317678052126940071784745696576734585492033530207558821032909828766131155554099076559463109284858556426252097147388994229508435299806402547553747199631429597006094156658522435431411359433393624712772923639292033753412242413383708218170122825198740618270972853257887381994869968593394919391862517430152068377132982759554423622573341176903344369333892712696377358526335070198886602814272512155584002535850083489649317127536639643249751091022695633718700708847523346475658473585982305175385928350413778527518513152367408713851526429143049800274186331169555733603203354919764609687206835547020521401389212705079698491577173936480730463952428311277667828435774727417230525276620212137357951697942520334138332836192523065023361816536170359429967685440790708989692194368353614228635923263249649704232570654617131963818292997441815849720101269934738683306013873696600752094746516134332678461852818299689443801126757720419586143626545879404931349950014318845276139568343568756874110889682249209461530256270877485895221553711282061211018248694111030487869958474438572699003072569010758456995773189618565407444874174060514381377199006955573658149524853929210401588233621557841619677591714578898845098945910779319643331731312430498256924125501080334578985177427016232827787315465611073800157420368474719488843176115912874975313727005873223603589025235293655030807046348852350151601806112826158211425660619747739135612499198111040536137040207830014096780504272550627797134922614835948491339171800449915014987061769838048490453623387409190630270395875094096144536443922205069268115170330275832579670685255014401176927789753096344903926600265713242732850748229816296830606212695942437881220476034521797707602086831546506133135240643881724614949641955417589825321136900683131232479411396979232709230898932292416680245740004037108065143751745463544574502520549790707382103822587930552461455094028981307363948815844425136568357039263522234521015963306071368750527575729549161711297067606303562725279046178047157289326820468090525284049406416289632775176830260713875140261155176198125781229624710996310499946000016783819570876222188835173001194338002394450997780840548810043282465040854980538968267197937472657888147926671792493953571060438570962080714630541891271386889820786678533979883807880410703725033144731411378028839127479157859492305403739597477148319564410898497063100846521300849654050978423359312980230108438162011762901163829328046459729732030664037585414132159274493564513600986189129691788045459637612593759630251638908027717666386203818753811787656963827297229448787012973644505535838012584307954350673064348404029793400327393356280817922297880480540963488983610802592118466372510605020749878620974353727310866744017289938540156489941578054292037359281179981256583706359278532250066875299658966577350338346554859115328958318021117885549094774695353525632871147327417175691373474001282610599306769822000175486702769295756260561704169609291148821583314647547366752079398844155112867240294228442002521775773713036985998609065020906917055098737965655112978907073214601267029567483374898386577934415397199768925855220299112462122945820713777409675018980936084480872397506681885448111749561361057878051200449721046263953370732020922227600667314760759724368256815635771853043003509373016110642801724590448942537502031118115518722145075980456215079919188768876628113822953679807707083894470422649724363306854402376988231122148801173962381554511783405313452653139636210218281894141543863719231578583488817635361511648293642933885791258966134591474852616282966974162539864390929862834014551911077134190968529051727457510732723507075593880625255194717962730747992169880415725724095418514159301978273804154403723978500174848705964987914428911118325022224570181075669484341342005664940361678712320551154472943610139256400300163769283938978852892136939928783306781478774041244684996842111721486778432987833865973630990891781851487953193614714118137351664393185364133507014251934223731425143893271872132923126476822234894304135554485272364784116139631773317862456500459012641883866592265914201204173458647961159559327459593513266427848824198814027110066761367114293153882692729207073433686227933273745963135227435156569083841896864847196455957644153971854315535507053963465084515086237347532537019390415449450310058043903953119799049070457850192185746791767803412992285114701444771757552897941172243347178020008455288911486825733290596986877111891505828076565562621860941110584268347016407942019855369869778401946434274630823560795173533063354587455226739978664136794341287008087008236613760066809695112739632780598892903240293105447431341100327257199826661063963934661831784887180641410789102814610903004128015179477432911930439980633723919362847943381951926883936734421014290067419500725497265642599321660001786062200319666303049214479187441484657395352024901898244828833639415073951808636624374147508717881756510299842322128234697544544988106389129306521968790716527675363779730252471307606045561093296446184077504538943624968054606585524389768044400656023685634361121972412682720174841776908844594744873409396110029124710568121139165074695352139442411287382541812430354297510333395039569014200873820611983677360165993503690867031716995644805357686926643606137685012489214981733929752312364109886200431985268756473428096774450384064699675118979705596983569613321856645477336532516782576007800170896157553791240503344429230587510853706257464334423533641378700721680943586589685339860967884167588550788682995142511234119430282564184992461620536079952390824641043328669988172098833844727838576303833838430849107642879221886520125052307735848472291790476698009885487226975281288319494606703568282559157872734336879703121876915827968951446285725699270802201386328385333567442069461469706661150632726409445433695736243430664218973195927893032038434301941553133545019540395875776686856774461740466886992491060830915583030449088763043384659233555188816814230986283160346292170277170671053437662641441816675930245561099939920914240968942335861015681249864166361348031162930534544881767209951299473055544017758046812563292575562523321766684694719761692319901987123433649152144546939811693384864669337239532880550440861864215879659445903597104936816914768448239261622783849027377984061178541791423077820412202228596865788090946094514461434441907809442393511167815350328511110883423308105399087548163274281858156945112103301739130024951136693183598399314133345316086894288976207560697553959832348592691061268132797932190198241214814549063902109085707702804440100374775261385443364492493887562398161714923734173727484108364173468269657637174922446475745276251554362438548363392822604884461391696001376677562927630780594729590443156996873317340486450518997751753478321614531811192277793130496378145818161026816975864600354916730563890806554821157113918597522188733692056006216342527364604820257890113337538803273959157224789874605133049906845951135478178768117164497564452685635272869035066139311239975441192086101672571427703398227507869385924911290844425646802312088981198184826920893853877009050430558131370860014083740962131737770344132413109743115429185598738223051994771392044333850277247783662055287080558990587207687324698136335795628158397761778631215508355371305218005204458371102937698332103246254384755587876782634953943142926896137514267380596540123965243038735662740382035341099327487854553130993370845026843797770256220764664266539351305980607164638329102611619518710705571843584560756991042284921895875327529804255404995120304609320561674881887133634554679925381454430943139327024402548970597180210330139706830015987943494309668930978217500175414076227082569665438508656508676441536358501028938546539167756339387423518704404954980102705417061781530521258773528814643149119319070810314393198516136053407903809370680762347667908112337688311731025525375376336820443550461400203030143778178945223365818294390929719857764202190016145618650220656769156336557861998581004663397638561808717331562978058172406144023785564602082612335831769101117272204153294593025855084827110089123680933898921792122400738864482601174374660573378252428421518598573995730724278460567762267669167252745531254899672123373267140871025282125860207946078519564101607410169606005793472079225113827307340331819331273358100244944128103747379208289482279747776617389920855225283538376114220813424365833511381196965023143328906269706619336520762811732155488177902456804032598637534986256271839548285890455091312401056993563484396783178580622111262332689022618019878212769090728318812672729107048860678068111270945312890708682054173101734546259101719022624130356597789698398901067929876561896773289484914009765737156377070966874591604112204528685579652300342882761243672794043732815889240276539744610394959578622933492895494490836104375186596893251055566563849655284740487607539328459514156351302699166301436894318474572155372389739252163125151081868096766563336403616438391554646271481318532988257234525601491369667524748387836799015752699880643967880975977339577353438169559651980827186249046801403063904974834087426386750278422408698716294157242163633719297142183490489353440403733926206452896658923648812314028090201845693078442680288531599007856264307795325628498000483251531345076260694766226636992568557464500371269001905874833003759167820086486063907157860322076977132336065799370087538415707520651292651101231079853584269745969707027177941693986403452204235093122341573091654530015543804525343144799216629810096916970194873623895696180463726482589251804867726916168547523578994388506464615407696996282251017195484577443638009824479250378263387813405977604588282206438908916365933707036009114527294152724461864085226622281366691270754666060080477226152590344466814770630271753815450533190976729273985510679094238942878962372709097732503032342812341496675322650293595266731782038961735882697069067373565019728148468053616046535869843386561739359143155819284019044168759032463827120127579315418283398889101529528390521822219902315604661472850000165804861669300650915042222630732519386023319224892254946020570794810169005990012325770780713354408797955616487364707556791153791166136222305160336706204739365357798749048277219288213375049807850055547728010123099340013090066826822353805923466401015143417286962471096544935230150255474311326729378580209100294586577958264652079350313281837210500612505411103922523331225358241045932247295021956460645770791227174085321317062745916496376300894400316682571062657837239470775430499745068204260289620770008416988011050158422603407821109020447121975642999454361678929171869595213972387703508193837000639025703678412346473679565274846913518429190510348694842031561918048615413687327786869890064793500933874114278382573249252672146555778092322004950881214366873151857233503772434305066486639069932394686239258530680783431385390788158567661194545061309449921461762929546939748446999284407023148746422936345412025377502075750592735514145521031137800523530389753660497141578422680478133584380768982882989180428001570761849138416862768131884845067983040035062495284398190907640238138497558197738651979071788337756144176596602707670931147663134273371868495542302770392800359294656367347257137794776056898053273661720512840394505434894758872766739160789212336000394965693808544886890367441542771413106030975095707601229687620898245559546487209931308767618205849368074083004752015777991511312135617208959190952606871275865421204856709199314935149867762236349781037970841824714974292607414676776818590833939131630129711330486365312885197659206784824436668235026339095286899653248227367502374375812795137594282884310269846115806377942510457875184980680608339572996923803061829067801609765635699402637958810603506853145097260639082880305335061479705710592331191288888888389545072801973340060580063207070066998297565572718189860874986087425330411311042226372127134802965341196779179024698644201166770547990789785001830926261607940755679580370669940103572863388590060614255116802253944352240898465240690914246853447547373891363575373596715333565933961011955201321396438186283768760428220998632293211771678297920945068217148007017989697350199713428125669777663271326576107544730412654834022042277776872276736381679576946951485151878884190149280362065576431630943962795321947984942457383649548001068952238348977463010415177159961630215164059432203518520068531050770192834143705160394770449028298506695081839132173646824321203900189203496380221978294342761068013396691844903183682404358462945469444310824176176952825787506980534803960877104463923372049642910952278462793503385343847202413365455487189224986131759107551664268144563949127842781993454305572669294057678606652965591249189150291593977370797739158775370517282327835700119846620902205020966188923016224215020620852261096487400339000042586949563899481155405217705124276107110613284668184933984684460117901869383465200539602135470549729483422948149069380605053050281327493204949550316787144404821295019293777487220043981389967187860745714435491323480184031626288037075146678835985614251994890730423291066354784456944719271182725856510882002779288869759501879608317847097052796272679631523509711596133790944474091382256571505657248803438326191433977150128752305623130499574500001321015729353442212162931566563550171990655284663417826340485243338210939149683965710065996669213129942182263600893932806309718613613198751425308956132502315583398475393261801854569948268514856489302610076660677528554866564849623110925442656679558403307447070032689759176665760592877043807753466688486911750592095441481093472093878037813139878669492576104082854809547759925905002668505373957531433480219722631211487583157372509333538034419313696726532599299381759544325992992225821368871006278585722739598766504195240320440813592174976904167920284384066864807118284251158755369093113859863296775703980889743092299458353559326102479705503300659278489642886786041534485392068722029377310391202782153827276648653296551455999960576126242004563379799124064565717045078288133764797113695991121188400079940406965428325991249717504582472253247219556212930688549617302104386556911952324127346140634219420327412505549270338497778952266086629639221082828620582706411223955649070026762085172109776017393486630763668455224416765113673316420611806476738795138911397724842124557895462973135345157048040468721101860085242517402617849448282650115270657889236233346921254220233664326099444392281247187734468834142590443003738119597813187334433395521236912839117381634097514063772770329099038797996376517728473404996138564635870963545540085533242512731425317726872352247751179638612300960525883197417506631935293127017222541617454075761502949873656412998647169562245215718245064095647060676371878564655195807795658109335214216318228830233082788486139991106616929923604830966417424582542641476893857793939866272310389266009458416259505648521627866553999279153232966590546143433377924005235726448643840199904955070560736142186751298690447194001711091446942885308098677182594081449683087362545135246067877704679766990588014724348303200788859903600004329597234803004792620699419549534133555887019831734692965917406901932111200813332878002723688092645402369712258195115824046877320088309383621923420911083131284756541656590760829565805985965226522350071630235962154570480360259537576302667164048721886318210474566200922689496561392358945654940372315071590564328314306614389821060632606263749672841927412658120604728997006477140576988437221510412487472739847825707692990771713829546146100111566414494834088510720600339469425497800575783448202551837645341140299034507680815675587330634111386914012209943251474956658091908391849182454643596687713898414523264161237374011304466989579232764961598539316415467810558428426135071035855855091992344907230101023345797289954522789180548282863300138941191789830239953225840729589509395203577710344231062556682732004241132351390554503868688442001778413332911764629220433930191040078472114377552931536746283067861740140313128831233783308608245456349932899043095101714418122904224404785248510284277130869332366146667894689816007657350802985871655267808017830006176865510625667291648019613480715619190807712359514743109759364773326791547179891027013615162356993837857831175730900290539582513499433878220255052286674591455195017442012456317038994047916328617807233467572664550982702307527763799553357429423810943007430425552357079382591821232841898967827062009092704294544543124337405729930008668710461814412606922098659995603018439823448140478050999605200294994450539106463087239242744069111268600515658129872648999718374801350186340802516460099217096558936640919323631513711904903151589141574039014140944575074602122017354092078116384283669147991062396722947143470709521150890267655682674273119239470989790116524240501537623034831070080059270214345749379004014396236801150537983099664903710441342695233962017129105322774667405777390823600531108530027124986124048307467259958997836829239409176134622061348630228360395599554556899572712252219769622799517546049143334196510602343335698326878436832931535427926454825915228682196201399490402551332787265533409866302622806787749057368853003174765851536173946956787543974694813664626880546369452395789203421203410549764137125080538865349250395857728855426148485257406528415100630066968675855411103409506510419458180356464908097914972072892310306473546756693573623680050162007987460324997777941111295946499719517305564891020765530690415155616656730914520724313226818443318499493639852488804577556696143130372306873474258506823452738227586174173710615054148257073267087254231849281879227868027178122320897407378497100240090362757245867986198055620561843416219248488153850916539700713126365946866820704387081011864338174959992217237197266849084734024135033973866174579767570347126116859107900281226098535776952321605752742673519332433937588125217676465873284282224050055019223880945102394947773220472169093808365987410179801291951819586642396741073461202549996316141825606350981072122998619253535054363247811294632883662801822340905578940801710453580493298189212447635556002140658379454310089886232371271036560315930076498077190774766673527909294791194819757844972041609207082294052542954904653259449826025784138460464119811770445412590872280944030012757039535372857476963701192953032026116530619961200890679750406176941518698211966112960699818823628846671075587577728256309202860372828230395239049927470792262558106987835430285424446311626321678851373831695471969164848497152310434396627304350843883378366620736683290300275626444910296481665581038045026935981123182099818234048635602171056373912653954702249275452039350130548146018170938021751165278749256275244114867452466203518056040785380551407714355625592863179178267861730100822349293814747362243424215802704392089116826596595984516525346742984395446506543420268162224279743587218256767417621595363623500134539702803477233958957960885745551760324386175112361043974883536527654325322990540142088533213211117349396955983503186949180673041892062341068664080008661285707777638330842445624246385503040904630193136662935464346201923860479672049086724859903285967600984571837277274389459143127280497723113028231590651198854061421938765698519308125883819862494068329323583807610894609425659324658510400609638563457856962417168331448765383733941303173682949410057812646841659691106563442621983697301878511161468909641321555550197620290658073005218469514848393900677430407665375593140424699449811282398964067746997037400680218845515075210531631465317666407486372346435587361593893114673208215593250526455070191517486950862212960570043598723407737638527684836952226325533380316981167841871578346776136447980328348850359107116799754940793099152941886449029778604547430178496322802140436710859282152596060659824762854424654307911427603217880676505181698259359205081124724619668939687097739427148192423720205519992794531025800285192959817432989077271005492305208485301637546054081824443376977530926364112290741344801874737958406183138344588252780872524366318705870830856404665436515751548555778641059739207111570282937275931890227076210018138430290116612519938551178632605970070908748393525751371646657100914100558111622605219715920761057555635265567058680988207866477692045831553727025779808685743943105873802158104057529632237887358198757926431440191347654405765737504804595945040071258091792358654249503828245045262989144398449651039745835900156421457997499557700105381361700851846273184270212513429587777443054179285803154963663037214838118497315348677975308582879333120200816698652387767184864750194792599212047305692611402107921315514324767634323119477708779259052567110907035481827468310564006615686135405656373459576202372216471101804598364896706616839553210806690799949415191361005912936957952212910824469740790979622774147120103361033658584062112047713428152092720011001265007565937198178029746779122710932639601061678155506531371464651998634828767941774735156263876750245210445691117866013073562264962276466173776788199975454908851015232883551573670961902274845167057847352192046297504038561811472878511598798668347562260350116337996513961617099864500333769041457201878753785616726645829659602114912560646489437903194452573415983993201156781249028376228706191132100095255130443658931208202581184842498347532951067556736825264503269110071231566164630726864934762793401193137271919081006975353156228757342398453252291358252256733090560781824920559010105044084379827731560910102073773900799774630963144322010558539245987877226428460259649249744439219974734349456626111457649741545884127815642001086786673117276724448331117356461784743867529823215152607276215200849899680529473346006727829588388218232466834666835884864797333991060435096192062417710106011705064394596635395698943107718135180153027777502556663215869634828949976812254220341126435000109222981878205529730699083666371986416090748298840487090097283184079137026282986961252412446394881328630884031903655793967392541276228780949320342202841599622859413685880114959383836037670995959207977229267243965649954030580445040929453368086405715855793464581935390504594136367230393848691612041988135836200965371052807291290494498932162153648350379375660774411245476373992085525189951062331310343296681715175321811776841894599232997039216542358877575272347375874292931108256198692574388149488154389822228695581919027232765920169630019684874254343064994186909299165253340723657509156937003383450742424231410078118379937787788578728336457570046311225107973102658353801129676809580143977997093694251586996557136719256354830409813359422773871477800982775416716448610909832843257625484505370138509030913608384887596399262566119496676844306615987513219969223154032480914305084779292603830071219636894203300240989658742631430604344952396798999305530608699415042046522110588768629767498802449728020125135149380610249011753169778131163589916922961431750510148045927003692632808404687129211979063860137159494915265405455717965168831428246771028846393589477782128479700666442579939110404452720116890487191354315140307063038886669241308755359864361559504998095996885017330227331127238819572251009784634562644928983290060537031655600373682625243658030656930942895029589940079041210302852003204588262532825134480929007563570920782295589241348751304912215590870831551311847242527438150822949213902019077285167564482031269663380106670919413770968950088488261748183550402782249076065057965654962755838332357746420817162301126494305240484700188998124461754400782620175886043828859228563159745080854511415603051468524367256241404474998081363041159680373601843104309020921412560123698485633505326289286286709083078087157472928237091624765046611070137414051148661685387384769630410418222900275759235218595049061349172654364029244775491093150712429332618223637860174277977241041532042963694755094100144183238621038975145843382299946854082696346366001016108468016978804980871429427714889488540423350776958669390544204431397290452904718334694885078412804632476171694339485945706958631657490954288925367337013455862936246966509205029708783355909969093379403395507121481539900743307883719997122396519054712272445659737304563085393697629299480390828102836186865857007413144405321459654147931349462884105440255194245866351090175093214834558212810745508452468089697576494831494069495409060575625798651586964089298358845905120326011108102746441624094121619991440622056520174138278469384645529533735491405285362117620012574808874320885271183289340640800374693354043388689691710417714063721035196484951658612188590163273039932197230311699719138914821523897039709702005124356657444731062345915312584959140398841922948042524706807837229187903803062803331713656244698033215908612793754193936114272593845744692162694719920818816702150035880155906411111850434071906673700575042895089193211784452943611416048305936371931140262972726500867531118046737146683396987420868819493043677206620106525939908216228984026345440533364646944195422113267841743309375932667958794285053404387635619125045194559712095628308755303669437632530827993561000501283157746851546196442792957078454221501588550009067160778920629024318992518355970749102661248572483611768472961662204306947990072350259399198784974402278942206119340383797235037703154893785483611713724378319973590269077314511605182096971262627203202179014482328153147851411593414240794618804775248568624642042294535426827132714676399784630514867014538923235369555704359186956360558685428613860678324683181949152448017111035112150417347169664763490202679882796301913292741437213362661467053278200053205081623589517042491512207725657264671007950174682829307732228614093184904564225788169004562502216407716669211610535644084948821239262706101305898022385742007381937262144127925164467740511305027635860710239551562569943478697463776886370250231410278220979439856876163523002219517587795925451435171726321274194605140687459219277710549202300583750202892604381969187029202267467365951116701674829498923324456088540135539716053773026379735922632053732258289780478856009588746659751857245629132791518021113365598102532856334087907103879685241126641628175246241960298676514956754665193199869534981175978207732268412719040214672759981428006960338143915255557554977288298386699179207369885401119353419455745776270204475629830197282674311841984207635572248192791273746691454659448528310877272851329557087514068657609152039334496582596675216255740970361559161927016957112487059489532400620499214579516668385964158178408885511295639172379417713623569086337632573619446303499168263083621446128043301859941293028711429737127480294817304168059954159811010283279378313267082972485507201401936352365067603639506336212223997774868359312463055411880345547955782152564542098220414953169107399458826959450185862531991500232009758869890259859735784230200820223639317315270836163524947095998720219106242388614128599077057947482100776751017235865380202820145203747186296520866013601494123275112611385837027318466258090549981019297484253671866236989392138344651595160231373900387619778891609333632285364164487336689421463745923909890160871032859948619336155253429533571515256582870961789051501826282853557293081729452111035068441958040551514566248816903700430745684319013712367056233288775511834507473779537482433986034466849713068712818923597577054631902841235219347663430252428447903501434944366459487243158038426385607947451808629750407647318930692562160131990327424010146537687450600678925889623233348515902771949359507905986035424263364055751047036113703294528148101578098030859568292691650103424593751231205552833898395295025365160379839746470448685937178483223176770493876705444826425099549867411122173200372099445217052401493510690406793251463240915328329179877468858605326876179643974006923498272583469851887122140572030700161719351225559836381767218324792197112065710898536857568238023973928847176925433387877209747923797517987296101221478587862943813660152305541533213929626819355465800518735729988531553436867644538319009276584385188262838870673428006584838140867710247970821395532275688794330024367746327374679741052931409041955711050273196791134351802791964840261390166018449037747326425867995043576571767403077907239403546393494701778858920648370942562278458914907334867416163767805486219642566130579427838557015089325899287185546635689950897092313789490782745559267122942955394526232063630468351014474483624739473966937513029182525447956661094707432018636598851286635435227097540660572123696440663957246587898175139023564610383127015069233406691222411233316611495149021852769737139599240580931025981448251362447176100858863073023870444201178337429298381876646883136129749612085620508748953530456591236846321668138846495019344348600194613677539098769598166753782725296373406478851769613075086375278656230857250507711892438234724438458612610195552624128542480114591423291330143700104002067378982087908846287769863149882212963512296736079959465326219363122845587034688998298559985467385656424941976228293636354407806702127379056372407820565930835304981896738262600488590442567230001646266689068079070699702935691560362228446500101625223037684506113851673550705008772538882337935558292846572063514262429028095461789067703095502584756288384979868181000877558082629938918200790756192620730244943268517307943343891118739309113797555015004117420197803519161624463662894717696822999181499557471495799599030548185778743513768381666108061279780935402112900021568103927282770305973435424484901220516125522367020452588738635006515988391947352207269824751966142578440092888384221039488079738669495974153387305235683045594702837488628052039039849755569963027870587141940267759665210066385006179049178007375089830368770089647530592349056230822184805976892423036232643173686451851360723944986689864815509206184816019740373359747231482309013061269847621293198046213069586168270708438341487574945890378529819614563690748975686569922873997667611328841397982910176968371852480899825054258781629762046552818987781320355695279295099982698773311687611226270135144990243523643297966110096816790147734263340236981842312549504839870937237299741831609117764412195548971015980852859953419450901694976250052714679743128750901922082958985020363211827599804015727085526196058759870277372017596474915589372576557345297822781716196160067708873068846074927858555760747569230816819720600818537314580395679818641221229208788007330182983940728699145007600589703272381592602568000709910383715585676662357516234093617942464575361469193973615906706559534054926033018373627444138046433720738081121102092751216024252477030372878412598053330502769104603769351289942456735583342309623529708388207692770786190090826234774575388348896258307282203295578738028853166786298991724195158072124641264282414436811940159984820818534365742969112006435099988047283655617857937180310851350262626726176964898419908742684126541563583580737814519998588984389998713502786957191969725524268412862772138686582096016943952468579370451059127640460124241534505862205784786412343464448320747516460787419377424254023092575216052768467843433838844867706355241846672789429042546872423058898538929212919682957724868749445539612460476925543803874529108533001769273956085221874652364707968041687455059223206571612349793523291266044524263172728858524540178619313480833938891569706980292721608403123710395853025321868761533186600642638637236681783594654516738041942543207725907106514229442873421971727732844121913853505802420463861743101670189995158987801082590519645078605251577998577539251149583330597449162333652641963599993609204556812619420496406617408348439823359638929023107336499009303544089905712838851781173242045008806889530794249855365197122279864024744277587389216288256969272936803903076537495033733348374397961503024636471945604034119717864017014194112696406479513209465480700787627882168729094858548108890691114165009545643555898691602736252328000814605001843039310737419281338776390754879624344644554476055920816738763274073104049210754566587525767063627365476386199488749248222647219670507415951104094471328437526312984246664034030817337964018885746997636057184026540326693066288601778197635566832673011658703532152890335340332520529914090221321696393757541195020441341513682379083038901413375228425363225997103380611547143057950674600341845606691274990433799784654950460859058458494579476504846518856251250861032351159503123291198688833904639536371867349567050976958142150675708306212393556323664643420451454832320944011125721160755825038057116261478216006075101088485069550887411156920177498092109112518667150413126127872658212699376558733998627318528425393415056343936196500101935487589847571588130878301444223351237170033638849474842010752349215870238148163494764296843620545351699896864704586491178693339127900544350204500745961242513466802158528540575325346611415885499525404983324953094890205498390635522808053171166261063857246122826649316787680038145541833075874645395765906264166149203298915344456105582266217540505922226101291941543377909102029784797497863970219824482229159295420986511741477352131586851855618875496655225290377083828657612132111144095705382890465738653290639522296208069627936031757859197428491021005390206083315563012790407343149168559377942032123534217354571547021180382811415678423578745589776855644039457112864653107469703838663053122017205905160011661918177341225967512908832599098534954532529389763517284939773723456813338578505324913988975112291077647632397386062037571488542830266013795386881886877138042725228292038174085194659910431697562945095500277203815948835906254592926205297182353648804395555580475147749649290063590645848771388405735158064017289162814535464403381413816901647826027732166052180816162677884930055832691092131916230758727134455232260535669080842901939800100609553454599221090160506604710442529588434376267870166497948531055829461049637714510821024318073219166148603940653113572156163837969929359864180801730328426989033519686782028658672786157907585614665505476230674519860545888502841413209133832889629678853567756946852577044410214016516078686774330423559792054433011351068100810198642690324947235114975762799283598559466309976566203765006088834919657767109075260195717820292985392512905835309689981812093230240072395233683863635818191821836055529549440698517178074499041728433401327319060540276593447474084865030231726741906508824016034015733784987278837673354679371228358092268710201024180484312970270588239073440664439307903991749073583523813684005909014632181717410489134925377870498718477876346094180978213653765910503139607036882410201930527079286620405216896875596111275192661936771286612838540923539055651621841261436280659129323713832816943478729985980601091810243063710463080237519305175811717026151563781010404156135848061870972572330766942360632370228249346035200624889015922114605774582123097968069052888303378919096077084996084023600239031633966649217707964831779015930123034453777691785135954181202090691044737294055904336468051231927587381603856247928572796368552191422185872032794383275760045824682742393261673106632409158649256858482971445354888868012944043757968954305248219112827818494976283673981424464431819938759189585517855204320336115634036907814916787621588422854290040238866154708130138141694490776118014526484242526864424250207495283430994769409924233334517227843027968202655535850269590640796141124297470555606178672990685842394161088235004092357933095287923654602134842392825565618347003665332937321502198048988360267802081899941416893414969377818209564315397933848448144689127941151994074175696961072516323264661112491128858631279808332893167424300992463838778344814397582912585282091961808509028997325988673855564279820571447269358971211412656054301471148185854737005317995801605164257797199609991536838065137940095874241304822508530066575979150779193284968752711208449200422063015470165156623957759545673514608874947176888772008850680952077692594899962098829567215747950045349186930679018963718940972481468201513796190815263424560119335242038023664805485274728308170734305654163263275260267329610059255992254047053104724727259566062890787788581347216514441300155234739100569899755360330876895960355615326061572912346768648640094193495857589496372011152214902468558025644921397344213743613153279246353731836674393884483397720550208228187176276258325003494825260103836424016740952183577333243463480687291569672917604479510319695549548263152416101124863753220490225472529794556375601430935079178605958467461198854444619006106582234105264525444019083886495959130898976236301936789237064971079079989728494227634009671972590005727286895746744002605183137003827458788057985438771245848449761070703620660343767963067567219186783178885653491978584895876279373759198278098951928299749356388176314814348175415515659524458450442889426400637284203308789012085988569940240030274391512073101821459097600768278042683616136037911588408339192006193809391892128335952309340363999149751637732401660152060533930047037125737677439256097150108195822015949610248137470451386600560492008353542552203734006412956923213354184987520871553276533492108282395452660620677988281785970263699136046707431519747110761010886164556346838373849654275065267054725840379264984236029711092840410649388876446357582185322545649517268946911760890983340267439359438323239627115934260312928042386267103288018080954061191911714899857744322920407713652740839469760726956900621818115811780158188163901814800043714346367511938386907725550655972089034236758951156676661084414749670299794845224451264492692338424770604732523073421607117092193537972592700234743188631670999866536017843553448537023572662782981658322065258871866969029415992746503947875769315986604315576377667059448101751031425254281781713370134210903608988053578291716365708706939862273633269694429054805030522883657609015470692349838504519409107141208279577715219053497938937174614078845570345333951691890871450436147017704609475750068461682285503912107312155739946557281012807882105308254974599421689631309381963307513791612905204003112541622112736683017138151886769221197888499716554090210569916146356980709400916335285641836946642400782020133686584392141218020607249337280139766758440261866701735183832601141476383430472001149878177176899246611990380898029377608398997914033657491531518504709418270454202140915131814445308355801022469565245151369859042940979316719290945840113074757344651606625685131561127945522657340197254610246985878881825039725165509366398190706220263102710437068847109745912644879549828928336640955917283173808642991393733917555292659590571934491078824377474250624571722459407053754426592700888156767984076791301548275372073881388965271288980396695243486063425956100911642400590237854096224894934896769753523772286822491783995868979146806828312505217949415925611857479735300821533235280697308793377702171045103399595530824358598129718833382383496267951062305366522547513516050478721652430846334106515197028368669172178750322041315655845905976813057249943585178251811177832602907283642146194481991748662502692447845408741626847631816304980203232633973445380736428305653979671422615589338379408025466678678035999146919204429541526346736884048635212868407929350369437624398462981420599045867629728057037671787386686844454271172011816790027289596456040437392074699642549456463079183037366589747292422126647257150335163168994179381523839260117247486716948245918863640798760516780818046001575227898793212755596913867174610585291488634099505158502548903873213506631176698871450711132991673165843655111511209706484884838908688450062309804811309213421340611174481572596939710899236215177941895225644313774231403944054356282633202855132786730013541558262769178101690316112090475139616395409128451123029998684803652671907681951852508308071855590049924955833531551699777827580567467315071409759760894538278367396935843888133246422535996080454034749170316385370337222460386526404203318335074753332450111659682348695719068351444307061936065010067910018997243320112659436164658684935310953678448228539457646818256685710905923550216945798018131395683845784043034812097650897017464836539277549529424559660877779041235112399793995317908930437779420562756785239887728704867394734185244031131282045296849261628878164786457316071698079628995862560866642412910980068831868992468515538437424683420106858648656549747601449655273754307520054880282426831555102632891631071953769551479668364704431869254633688581468735100264394083571762843895185023703511127017419451985459141667078474440938662042514965309629725590815461586065742103790393094738136110688427086090447747949818446658741451736920942275853599164296980208050247206060256068166197018596206026867202967112503398494824748312396889823298568109403836852779442775276823592556901456850121716992489505692404132712441956660686040316218346445250950211086348043027068009652375179596445433392824277449580923984460996600398907528671503117903332809922467799590688483325873877398027121657937852353911105528645855015099351613319787707124798796706987809971719495242329468260406666081258391915127476240652079390295868179601553202554722549250701306257479570317618478540319296014361197922580843286280889969293065723639486897047390291421717088441208788832820154763915414478370691713136723102595220709749705116482919252637638873276343711439273271146998008448477409526621603776805011224734309742621513970107092621273127017662826795562900442570390086704741109676936625490803544136486364767235880933445679967143535279326629181173464056467940356414213983890690376856446583314830570798489876579780603311919487830629201480329443042702739743209974304446607133532578333529182571491735114578798748702578278172319392927570969641780945597828343554039071419737471085210037702047268049816843946940477015667010966795488232947931634222593516427488944214032415974709386883158120693974129000814696110255152303273149324744094931305937972425526571739969537144244822100718148076641505762177666910263266656319447799727479685528100604827692890884481185588582457752218102460215240461853344556958421430249762571978813998998369196749218828514217059183891670975702001163947824111169580282997066608170701898437047908924660868456499520987094701506622051215137999516971802261210826812086619177295074463505255328602837782947128878462323254176949392802093830577435012685211464192860319309022225867029001564431788695773750137568339178633803565853348813837141301039216461457475785855590226529876870905849497581531705942721229688160573535860113330889029790104694882796346659256004755642096845864081270354767823168741822674780620041031047331470891159534783820976836485360320161585886144036276588610266585708225152875311328325480806427871027594603030444021196650692538309702393775615736987782498782740313825134739079857599213194242806804230150583660828835068874579243004407059429813768191070634977443069150601345261033967712033332951227387096620007953286793795851108911280815680275250602349123321604225251056944160941981757664291500941354159255073550172470321317084325443759897427894883747771081718521167294597546255036038252105038895896613616515844285134373687092530813012166635959470627272694333962096386432805330278849776839794048617444058135871609296431881186553511925996978477046611927520418914543436623318412247899090193069844721350371503630547176860942895842058303307563247184414288755905242286561873685108081167265143984089066766178535520461238482634600060065813429737552103171822588694212905278656270858159809127244451477821109037239814027762238329506107506951908333409556209178827432688566899367563773966741560752668618309488283277157047323580358489644301731652452725177618352452078211365040972199111554710876616265937940314769020108765046360974151294149372445804676700317308023660743572754431505820416625183852376612264337448244808412185225089901596587074142571529280843890340127312880282020351596072871666166092828014303827355880170735135589141874253913993966137985126095235173089984715758063588166971181938857636985263033650884585262182649440201593851732127147729089196288972092902735281549616361507684008131323316122966121680135557713665695197322246632164220994009192161382946815679084784608012848920141377927718976144632326077440961875905744513555622812301643362716242133374683610939339476707751775642683745322294692981349988539793524354323373495443047145496204865749517862059940264382072131863053181993819859637818409579897840139205307188695890191996975185057851428283221710938631667223329410425773900732718170635337680425500846056540050263458644527937859392480282224900753808575588039934104745996901943139878609062071849862599655276678592574497172965375384385829032197894979536142372252675013871943346968737820154026132690038549618045678651924649395805933230459321372637768133243490632868066922664053196034446433696277719669082927240646935741924571873625639505685791538420827976534389715833297746924967764170471193536102589630732391250716927451008285753485348059478859828350078029388319219045718948350611645602201321043852330229726799914477463823367108223265151899808731410473448799594973144415071630937035363374414590831768231450938801169242464531883006133925015841622943421997101873241399325558387701854639529777945542842873900285733750873779463240640227607012601405016068553308000258715521635094481768274771558533280615469100080914879784468223340013415452543872441964334789480252047180046344145480286044687918201242669940293821555943207719269313426551406425500706611248730305292906869293152050322916973920217341003949224800738085287076610593741268989689482790261824429991096829432930287874081931130587331519058948810458788860475548079713570183400791451320481045926457134965868007736590474136387470324204253444395874650687137106788634145482128770933397970835915647798366016521176707659729385774285931636392348439537435387829728568551857466720454790527575732811820730617071368010393747027813953069452102189677831033623994402644279180918588636521697068340358975557101181330844234031276041802054115023313866142309011793413387516297247321589512734585922246776421084318580280481631024791676484009671465137835903576133513356365715382774325542720859637956247528398162255173179576712828307401986966613312978633382173729479366145027983871402300767200598785044230386510054582710011298467425574416970006387585145959330522563794710634278894616435859331844883023183288311570982352225355848496955283744926478880579877932553629573527164367540125847035451794373937928602207717401767744014976917577981816234368675265177025738284607407498959125462429472876527797812448943937390758769651085332556761379388390891479022322671570527213383734199041126194472928746621160749788200777017373137686125069341813812204663346912203650028348143212481916647974437620706059209732177168124413220349614250253797739870022308497427731188535540840899352069966231717216222074072454264237381901463481435037508726711348696327248691061317316663627610488880121712967597031770691139668329954356489537068230680519269329798125338395977154896947404437570452311584047802139451380325469344111342603692576301007693124438042636605215203011045067491664568968052501634932308400993301135665483228342979502790931990620915422885482636137884601970867542950454237773551208786986312738338507690898805957405510333058693068414686861762094420162338480019557251381673890973528239180492921249319841935671585550479250945149363707598797866582419035452395281908128630684756501090651878118885119540117522398674998672717481117862741362084358165544328723634435615604886334505316766074409766899843433956675939810582850194682644147927774492889265067454528611054268293315494044612256006115633851429823024894278632486553304652541573705868486975471833220808124259375896156024930250413677758351894017136797734701170429164742502640081236493772125323555529616769195804589014458621451721356518165803917313028235379042985424587423562362964731247000995889648296462970187979229263965117128847483979880455963634324721081722915274042201105440186851872775462691494454100597244250079783801969541280092356070558752036314564743992643449768827220814806144383264352913765753685963045790158695845604953393652441093924780457170407488188220776223148101328813868509269200058901448180815657057589004048738632490372008454774059918685249543794177361033208416365779601796306243336532629558042017859330514374709801888575106260400578854454683338186810379298157706916807129874863766598621690610990289850089315061292626546915368615651220384881856597231834299314029794549202282285553200564102947151117689688135117334087909176476056131781825561036631968827866210553217887089963239352698402273393169811915179713673885519204043440161603218877280753713451906583663741026427982973472524483052341553338319491331743309867935051838434586792012154107031776793310244217222629884347389773853746019936526338721878019883154016024202562698857872969940142728467414439218308175824050105800993667525238367069110555864249439144435315251873507907488479924554797943847742573557353634372326863895129973259707658485635984140337561528307369034958030127671226181362255178716037760911418020158573258508029975793298650564790187705922770337134124004464465765632292162565454615812063377425264862216607414065677226439983895725516270263635506012792774208298094875916686791665420068804671433613445191305755003506817932463156600812444356158535125244858582280273881049622417103565777508995504200436041688250208761993345906700612746055155051374517234527805233805936137161180860392369758646449393899712047881944689681616182855677041054633136597199578317433231074711941377660837059005191422264384897325427273026662597912298497276349012185621868752634123014170631747126857222334919220439083723787709503282549142443233352453709092700183709082557502994962262297851439423003430961295454578291132107398112369525401553436916029417857780560966718716968163088105097510065888465088165811412386350509618650056598303049460709116872667099074061465622572206875286793892928170673256479951351685878720303473025318230155109565312349689398415267639483577281672434833496837791840432044384156478206979597409782934425844186916742359406035495639103557591581269796431320731326193529968477026299354285085407906650221643877427606481445043865330426718718485769119070586075071738112327789405358661985844627624310751776649960822765221639268350122872863988626893805720246697219426090812873101129488593458635669634736407740791766101514552885697517145515405182390461097863141680729303725350936579596620031177916726072194758158802800653970818778940887673978497092755767030285186090756281632554679654154792425834268089016394316167725648215630236018612288807846352997030963086034441284945570174064119963392794403973279199253374105636164168714104906739241935549818598937415811137053027071157059729108320742512341476552195750169716536052151401404170499219508968834153429172027199329932678710963888501326317531146041451832558564791308756932452275239937773668113396008349588780235913070691244411474300878971911063751733027320198549775168972634780542105144252673806135348663535307067004702577073310316188712774164093135180521651476672066360395653048533527738933090854089483359754823686570661325042145247619340005702117825486595576016325302480058342252448904694947348323988611511161335202894711383883118556221016740040320931082262835502338872357608269101625664694070224673238196166218395986722914286596856313488077027312144584203579250808955192801292600989425118032307282168340526798302704173839207351653802438435260983345532522632866407237856958315687260850144541196150526268448606952519601888060974431158168035875583942410344656625901774217740801438279307629717935872887143803464059437121508343203650207450535049180778351403346118416699006376063629665914664536717378738847059156555835718195171359700207854407971383531710536651571782361801244097882816924384675196611681598410461403198645227863166196049648906093108956598528992157738392878355451882835314293234294158063242499080372128613114203347084421629928105436685876740721145652110198187432771712661459648953613202346065984686222177105875458106144337136987402651425607428562240384454782588781760796707398951277433122079089390153547361831985189909238895086631633472003631466000680750152215307220979668166179081961174168185208284868135375867746503709686580337383455688176647522907838463890145207465570100067837182329723476032938371390478707832948001487940961917870537304221687008208051381363743792369810749455144747404607775745631248619694080330152385102695652337801021068230395912983502928543125290463645268797941928298128760654157078965862357266802059814486764209803188971028637607297461597150644653916368316329691940297331850897232573030004522074679647789548227228842810762227813371990985084324955185022337741923845414643674495596461943917209570088528732141468249617393693214996838949635620179226117481145138285602212627152943531636860769717553554857158993283718134456513867939469537955339916435536584940497626437780131631440383880694205263784937992271648572310030267261927451353408498462135956329155424699890022306831878838080600561251823669579982893743272253519141094123337897766924309519605291830629562763168987384829363733039914524641237206567494110160297541934682445882138169349304378581859650297792701870850875661003289903810019165359124056834645633883102772632528592361748743124708728773574934287368019800100671610023102126156523755062599171463574172754267498258234462121893104415485124607421616469409995445700284501121098143933443472801015235796222666205443551219755191453720517773597743413413249402203294549628997101880254569401850973558779356650529253172712755513989854966171971317666002376542634721873631786892044816960886261912587466414190233764661944804371224467323385781347794324627065060348380148241727646890107338579359819239257007837699372807706621941199254466804210252415930164003998216215650629444109708536556598195147594417644426681066975405476548239925467201777821988447468588694730740260511219925843100050670994884896221869069657577657457002751518967204731871465212739282520608482873551987962841966227725125736326082755185083742836980418049034426289316421301549544690004608039741257677493305184079039462555351405823637683832365050819042418980321432003668789198377154724976866232465870138191663827083613617998658538518254431382578048063779396705438384923290159567596852628627869079768707483999239420154901548649593226628240994955026631324605030620978327996573686924937609916317369835622061804795337254230277351137563652349028401611769602146597743635582509641896488489167785172382949502934439391621103024623444166423657120100858224875885738058651982696298837071608453591694704543598715133960224671651210279475635879146803199880271305817516170159218722744109104926221915093928169071553421946377117955620515286825051797528245440784441636413399894848065067375345664849827682726043127855528323416600940893787109710700400160596716979896097266580115169812641505632645763585339783704072069550877768429054832069555532790455025693214918266907086534060959917460634109179574409617315813525983560291757932381807309729545830367150973436928508689279335386020434413819557283560015176136167276240985943061387942592501991750853887581420804778958481496690719316089170010451137813899474991984444614983177259511192965814129137329396265284301704705668380987610359168014824058368585219813505988929368397117748284208054227501376862552160064763514874511176708315535915103799589241782125522218279276241942914244212686890748281723117778264677572014893327281014102301014987611745639878907096179979193566985170825388169463696484859528963284436819037451569154213677668011072505073301716309765241681610299272673479076475522668907474197544955479385054454499835550039448770365448009888508504878675796396392240985658182078035064726433838700744892225346869620223157626635956976101226070477803731102361784219516362806448319502469009526182520526093429242170049904859090172960932608948007358948156285663518846715404441260883669253341569329128441744858276022199914445727012355035234038561786984894778147717547092781535505491319176314055886224628422428264080646086930034007979543824857228450572618606989943552389333932187050192828479101463156096688927817894852802686590213640652305204331340295607563828690427059757823926126857211838088077600482519738820498468678006207935217963064727508115633552666468250470189324280182251993310246973676010684829750218871650455636115595493239190519371145467825155588319549044824560948042570960623468015338571247106512919662866785384070940051032497488023762253764929039562924981175904793826474822242521711428443940863340378840612937078051091636056081449207061694750139918474228171420396947419203862586148860642724225574047277248411263228874577485524421054902860459223482275458959738187898086670880801784204536416161748201392624270887266507029038338719279655848847290853833034355935183295922680553240382111883917861068050133737667112432000747002110559906612205644558335989203405213437886898373509272698724431325658428373440475505469023639264635907480370454124057692423238162476777748063092631058348993127684915892971446329207546194166831185165206455969612374371500661992451837297532442621227025439860037881495973656067615091726962217438547411156393951486560585992287461877542267087955177137957737817927550663706503242932091482228512814500943825143084762005629557944429905432421170528494294500166125797100442154004323005777158123532119252825992953362849579096195209068704868383220705844288450213822941352966679984120500518327850840305445300751948660276383280744133303939991739220005118828419046829545932542121011877948038522356981346071644910768582752947215320183466006860185229341972131816599950435039774979273432433175364255504225886168307460365940835696274908650062670506744643382422584163574178365164309232787789941828845476045985041128830585932506960477214861521481808868869862047536701621237397908468569547747863655703808592672594605742441164494714553821726262193729899767107643445714274847306196997173907334228813841553503611236681217699674950516210573851098599718033602715834188128364475567936110821841356156505912667391864809490976567589316767848072437670063497428174783305345436279680019803823020029242255942529060850571882704108378507128670434732340156719169115650825345605313920981966882380456745720902497204825489580098435042537516349984792893933585266265792091208917999259740096309752945287778229084730165039612896840938549496316838048209118103644348176308363706282540463957346408269816209372874525261674401664367320114437641712860527347546972226716568687324862106254519929447286007974942867414974673272345173045529692643271007084077845436143837230501632773537660525544983074670292777928761477944105672395988753303164035460993120709234667292056827160140602148055366970343911420677366941504347264740279114436856049581444295090037580435427035193886843436679441770673481064129381345568272413960164035917862434649167727477872661539401566661655216149677599658061854810316910568750474806585288284594286734380496931575523512346249743475616319462604014603655961601810475417407575766333308166428329714098581537786539711454963528640146424160248127411614488005035117097994794431114653522055938178807384066370612107112797617744527321257922190730750950684895610997283081537055702260491571735149200944463256059537149212326518678002599327962917814652436791101474152431975225522981266214644837118916074742396829633038331835988382641507568256240445728610068139062981541231541732365644241990639227980516332200041529341024199540463789936998054788373334987746754536226959504873974879511290140600662679330638847207436694610040949892607709231908457863523985555419629269124931958033922329820591073629893941018510924290016653659940482809079135875326499016238947492360661213164547584477404345515849879935263550918622093517087062588187518922674532263642404113034666885124548979768905615718340812272069839660597941231669237259086467599288029831804758844481397176657520375086584438728363592869273540393000925497472033234217867518089751963706675366237263549129100798308930968257222087159918405845078227312526809411898255598553952560510370045801248174197640831406166326746038352371842691894738311643127159525319119556374172491677666787067794309941347647504352392025135970906504525815876827345851859162467560896533576225133170288612192122153246129041524148193196402888738835090970439572033977274014965741254382265678126978383223522245984610479322198427269903198863153778397066106682177757139199548307590437939591661188143551351598050762962532022454233378184405663131855524435451265341062143619321068781934486445010028326477105498575314644682708382096383578715442232155560327986148656289124354673167555172917679890247827466653582002936892180457864684949198659660986622470035053665406856098204453543405008124612129805005385864242957174170532207636335044750680588290163357996459795557941331533700798043700033985153943894327102172706492600086962861475828150509585800342157863142419092248867530013254222316188798654764698249917977945988529957992533807959220158548084175568469185272569220215039368306087217358182819452527153624109862198180274865339170298454374455060969759738673017187320737543293995984685094180924010326551748004391850690311386099035666502271189417831576073058230081106411701268026557784970056539779305320894980500490352052313024351435375510632848246059200777605249065471370776795934247690359223830255122655650090149245644364694119332062021404617968069370445796938598089898058307527968547327588714282230125865197810347475147905018856866542694066368854685661508887958532494972217027608301004749655531985839405606111541718102017552829787272067391460909454600964410209492217810989150839351673376177020084731737956891760467380945277825154008886837927179107965180417457068567136852298110233331472555771389728121853460348532516388886642728525176984242841749641039500687113601944475096065644431770555339810215624786917014349453633840696056657878374494520594585345021390653841889054925276305039703744444710851092181005946919638631687831255970639226551904100884429380747487480107165180059777161471279410806027467633702039808881968004568822919969761805106878526428852883723371243882919996724944560687593293567937464599731653924822303174357961458999721103309497711394424036618724373808900762964923003427001590690184552058448094751396661158690183932768696659978109648750619520549554931301841624213493179439268440824671679646343410272735435384640370241975633781609604826812875860428007478235773047500481545139378303300482332876172715634047778819070409995064920248741993508969934908026519870338407246924624962618306564828255870841008252045069350748589589463749805998964454490295322537915743579794008542614951827142081610487935851455141729962207395695321173541503220795650451940550463758088016904927407537775673147141957802298686370327097272100025136606618440593203732233545713924772418018492632070019546991462630573382624201994682120189378051186811503597730957882706836494447075720125806526225135111923844897943413140347960393577172824058293785351179573704475180233198601799788501363967425532851665545679926107957039822676530820858057619542258193231554692290196989420384107988976713543231331986511025969334529655481496361024893171555518558172782246397115930013836980160017041521770774306731148501409745756520286009301790668596950011286722101588121871682212613624217962003830896509990892045576757705106899811835620245257763418199733593225745692369643717975908057390050908269799840656627097563465538075341325206360115037098198052230319652567460966216060961109267015370202964134479367357359561513799028708955403433773719072280203776432515708263415556498188015609026820651542890258263973453444921835080414036995918507548226651626834709416030382291987216014022467574259452367852092086045800439696489017571399295255140147167639821314900579344403290451369439318283077914191477618214462843091446563149782331445431091381167434683505328892059668727253165854165385455788989791708794130722412977474634325479167935149936795675465009761801491557483848332224415690992737381127928960239180285347393952980752452144972094766391912159018076121998020633879046280122690340750178355789094932002128498600717128054628875146154556597726931632229478720533158712664626949969927051024063401017400234215885750126090507525033547292453382065163920897380099941487129129555296011023546063196941855146911344329551339301774374891730546495410990897460721898851015742607726994168788793146767455342314040233810340082034143221392986496306886177873706479582008767980208781177887219323203031648922710746212520825303310857825479423860222562016418390485393767500985709556956545923214908276084130752200494497958023009507697597407236574383733616863548721197904370193420056588123155225077077125036711136660972851656309488764307608915040399334491131570797760469441173856854053236192260797924697475725872445778767333085034170395054084801739455082968218792150164089397709092283584972052575399853147451154549963151885343914618527226428291697136521483781838834315630460351131144530338032953400022448172268622956976903838712817407802670176312552654552291387044150440387849471306111803847457430915334710710064749652247191075632935433388529706194720713478551973514636507459448530218387892164651257305895839007665655189645206595455971154087910842329548280387812312619479203853035879587279333557459007781408669863627331116554703813356015323364182759886254955409059766084569854285100700387256637203384260395653148986752275683054793672338971350176664964112640137806972884645494713885532543905522317277018548710997144766082525883278351233050429075154262806881228193073464482500559025667278592764370752138188741865723721289913966140347152530102409132413350140741070361979900056435370873972510278033602908503309331663095850681164998899203762374364486874735691434242162177141041721979305102611404127406812057191908598063120927502244230978449761657156680337330910338456150064306581522844427622695380766803136307733701800149387161043081071415848997270427377738052144339170636662637355348226868489214585582252931353326682556156198744409015088687048593550743000603548869322451814001385925954676950548708295573149289693239871925149352429786498539559528279751449740089438055235260795009641868016286888670346918395504709587843406377792477377318012997984855231462166799473524346977711458171094858129996649368912091329395258184412524984754899932026102915755349583642860793409843787299309628049590569664723517691811169068420288869231473773299220878681894408991791156550202040921701003176682947528465585488808747120755851314411648404581530848338186774779623090625223691797615472013517360952575780392581994678414029508154640806251027803573021738316555229952624477272546899973198188977678997296913505122017170250391492918569096838035631097630625078793107546810684328372897886561023444083546942769899394513765663524122359325595736943534515771765295303264908477396368260046978257285898023663950257826958847919164029856969911892298719348985867233451933225014396435676799778152524302204325779924697562826672564437459796904517275289021918338007310165482682156891491896935149869435077811310679266676675148152688696622385176885421386167411163428761956188345528016502913214448183309555768394848673661299126940686549552519485356632683769772999223322268974112397612324802458782265927352987971142156169705042373083047085973842192518623632336927055506823266478024198937429287886999331309355650872488858947173064256831306602020507142139485987673927168539345048875527252987380745703137690815516105532498186998864151136493961115368245554478907974479812409176984510028074476032501382353915501593858299456241326567919062184310559126486718928726269985833307323689137154434507239650154505080725790818225466572941218678269882745441725607494957484742051225854304115867022878501856213267045280931276831019734499525422937117705798230034241737761723665705997834243274309485469272399246876446395130144216489703423670517393341105358756772158849397846519643286937701947681586222011228725643093626679904306111028776349172026202087109783499192124069846572930044810571088369832287321850212731540702984072351606577571259333125163784902671734171384691663266721703976346727724077318219119059226599497966202755681269005643270228321432645345107516817268741603437116007349085455383406217720384985256061579796993433191575004765483021092101769270249030134243971252371914677686083713504206056502667766633910731290498357108771038843657473867334433703767188172407741853726473676706683243949766864329732202440147153235201527891532693778236290031608590079282100320711678780943717422781477897367771470674192028979450437565997746769955807957091866843082780299545654836033804134489480136613618096004530410385233254998064914656769731021571604528078734919283006200139732896926720361028835080629561432183668141850109081123711280846298050595110775022303417103748965285943283163168321582978160000143774799644662340645485260716735036645191634600326439932220524965327318418145262755035709335853895059483998447807869480931166464499083947636861710142804536643703363021045083818590818192037570127302011563939888920933387004695902459455867511958881221847194112357270812232523662489590959130105735042908333345403928367630254186155793964157127067853373467796775259900151362404989094789450752060228542847201780327015575085132597889092031352550682798395660884886030066325580985293569829736152039222002792678146818076581300496893743236345268315902535149610001448133834388733846677633985076137785036571641789383664733771427250745660603290911519195259451829684089271011775158847207273851225076947466246221656178913462702917682268423833952242525240237008714074986027154588138567290771001489215017467660971739354715012695287883873691155481355313552614179385940301733597770886917891778445411596206065252110105868596270402564476486892049077953574725895344733059735831713595143859705726241997912487084265570148634483544378347220866279655553012883674385565233542704141894883022295744429591902116311996226277213637525516027342561162026158443256213964367912940397517337258283387530880967123392484945112184643312274477876116468263568012357554625547341806631938945940875378953743152349742559871857467322384944732456285625984474858886867900074744375064740215105524597491547832661774504026921576043050063943980130174712190283905080022546588419470841004372417186807597105679838150785581323877641136374661405634784127116508865093768232985611942760855814467631721811677550203182395600034880619032313869320053365566872592322356648171560063839085145093282213070429248326741772524932227932438222589927217317892257280411890685846217494190744426944527040909727609203622745372672631801501284986598547771291032827990459469370450173616810972214731107006562328778109971039572566555756064328222940208181171772240542238028999593885312066743740646625136152493311063348031823171051503911802074719565611814046287161712799563011407390907515948613454167979651058311854588431615994265996980529426794405298658037432408156394163076733067558042415320056358019433957730848910868700899654733253961403264710073671687711015581450111677272094590073766656253419134612075847440617122636412639502451074789570648490434205973734393385903026889987849040584510056871246339568905369146310269877316464977500530227937065213478962562015441295345111714249633435878920460904065169816009122699971243673072906737037056810476029943203074024012593440844963449380220509922936564583136583358342105024152143737017361990736785943375092884923190613692147461741192103849934680537770878827686311267275675096103902978034294913906244499201064024138645945866709217186572567609418839070432717709241515489133269058668009772251586984479151232069456513235825608180403806276589352903691711939566548146349660078447508127722563774521975298459653792024539201706055930441098469860974391098314023251741907554183067688342733998432924993016667579520370321249617994660633817984124096770139583128771863464165939282652382606788938931934972200331222012039952325668897140840092651060927312704746335949875531370356011692804251701110249740379625535920443478600203821077668442836938902411693988044661850793415352868866034743964660847692293029002962423259303702690706613816494260597279412956224105295958393939900953106647752611378875630351169440521616161470687640935459250059475824884595832460376349631385626993245838460860462622395904414072198508346970673698307060736711428577749760264504621081768960839775955807729730272501830304866240787589202504057235993458144453073528543999807114594653115712664808098543178580813898867495847678205500042575377869103743192349774652308341063584463666080390354729519283293606721865218488504555834856053918709342059248064459490103799863448526011156743863396344851536229525980617938296716646607007993756490826083249384088404823579546324028510650701166176144645078974267894904434974648409189514500709608140406300991043082167001528495334000710730354669352431768494504956461553349604532388378528107008992882611099316391282148883998577505113690902763865612027818568408176000360335437213948807565029515332867470003512230808373614739445366253866937925947099760714206210889183928652170937143838979978856191238510230423922751823964718570043107371765810175292979356462153183470996884847357434815805080764625576345001635747997511774833317575765980202036425348695695576029245809311768189931528806753835182033060659094156346175727746989366190022132673311799053100077522742480768284255491767501350911450773267307072382390677510597843313556904480302575496034616743646766944192766132967201848750275328559088070451076428186232850685791793274987359006086487526259097182713371966041021797186088431888071950190644353244112859654534584366239876855269021205263779331813649976088412036255449201616287277200478137477765702028020114413178004298774363439056002459864064041080999265035998335420996987416293376091977500475261923302065634158869184934157763967604466451567417903799575783396904452372887713343212842079726418030112787764674109694584843717833392209565275509086494780967734079260584640480044020148510231238587327780046185514889221809638063464679949607124253491772493358007182496417026413510852577451045438027896098203972761703912206101582936361926173717682009711791287665444646096174025902186103191197043792753337854005192349556960849827250780560615751842015720671409868840172138874439904400255010666655857999346521400806570671232801443944277398663150894012843426934694863989431749059407622341163247802003919038569058602855433756267003120753909899443582936582250607831456155361953312064047674209999856322687757393421056812041687871838339944408233605363460187998000826707661443605353377947294362157008533411289254664226186089275832822684057875656514455887150068656324589570715801753598335977624273199845739805072029112418583272099221623955772856523499924315428960656133581887498084433205139470782151939720460585497940153736716658660496222861724147609771498102881175275004840343037570141695714731143086248352289041034747324251712182723167162702861885052100130215359215335673399608715803852336054374698644603090726271817655246574342954508616690618138990596619783816358153507458878760751800663914820353353769003755019372368594464681543370917638696143724967603948168508637496086560892325015374815154468808905409223653965034655359519505841544274037943155214552830041567174585327432430344456432310270551327916148603703093142688055191688733861289694087056254355603308298830678212971321623391301924226146799289316679492662776952577886934850935281480621936448117013277060181598132450719178143033799837689511334214355522913748156559600440829591010823968416028870866647162194717315031798679903186417081181354924327858625405591507879963188596399491748505023867136069834456345311029512517070397674608913565239894329283070630276940862921578718530366862551869839539486392935678599976810347610415939953088898929375196394934575732103544342017986582714728534590958109592450784831690064021923501582304904790400150060392198212454330931625223982651544238356069993468154232193050449659429030124816871026039667962547158749096933841106118190124995739224137519089319966310440377573692981249854788344344046325572558927606497310538331560616693856030170105185641709360022249712948492763990000354768018882191720580077144969909311255907663135778930477756926070193186844166190305550099175725530331575975573809937354936850551509394172062645745760308699717850212361133917710485501007131063611265586448383003986509508267668003662695938768645590396024122033662155394906492992155141779872408081456735115650236354628424454679420371270814243858616840741620876194937571631194192309431363961539156536614155359116243179230741256923247149829956020556369763441443689753050592112903516864532616065605688600452458122345700825756834660407699014477189122599736774501508816052909936453311149543385366117295332084481946610581719510978685611011059972150183242852384031293661587752603906630425248144316692656123829543638890542771203969839225555015765451302552268541210871006667456714383086992334939168997808551490670083292676101718163482450580315051423043762959478869736864666099911464517142129613921966471733018606693238304473607816497642730015892598745107789014851089406080018810337568431991395058946812287462819824716695339943320258154728632635814757516621215983576139200618213328411462362605899785894378539953199328564041357478889174461086650880143763120130744620312969575884758744498949376656840621131188249374579001103710498229203214654383576221569068722022221584611394242675193565323938840504287222174257668049045792599185256847460020447445295013680325930868056447102469874970883162356934788952236309934937809805376319245751318539766115681721576669992928224725307541495468547408829713329915787342982613026749192763156172624744037791740587771837452875548606201683894220226590988786896255661875442653322846569534711697389139568437953978289550163928725764961431942072695228295388904292681578749003700130889189069291311382047852458689036678585092875032564154322255605264392362860126445393023826299592904561747022219452844477046023626439023803131096052405372364575003997207953673100474671793597401865326463640985336726090863758672181660437122789618822081127083921687391707944517845410485714574932812219888645875297725774493739277622488231287352159683795820477581858709631527924717758505543970466435711333443158479407515005469717163728775744628586566334661235147350097505810678348295356433330766031231855916302256057547142165574366319180361809220555762453933474729325419987805168411875031180032790098027914486030088913810989305843982816960048436746851740503208433645447412045350120096059022952835512550516092358431758855836927729890040975389786596473386966553033208538488435622814472276623918813905738691266319259134775736583574202781413807789327622693694827957895949857388300567675215438763821455054378274194668122100283874227243833687107104203288923984487012089010637610978011986572056647681123265342468016459382276550097311772883863997196997603326942334360693950251386352173648277312801397539387997039544673706369410638155719234767450532624079516840642858343887778283952967459234516706282817967946418419723460641455678423759848721288340347263536646656089386539045750234456065520083764077502238780182631936218839381973085226826639029600832657680086762591745564591346343733166035640922070669000389686242121416549050899431733934299949111428642297074528415390152818676582734614980665632530182638362471112645831522115807777746566727467312803257707605937055596154730919427247216863468803615369681121880795298975009953432087312562612241466240540217187129616114947867146325868000465526578479584725200703606968091017382449459704193768445769293906974590995173068326923311309864739581203730399508744077216338675808002772686976043759715106522962837607383526214084468055627634633243169142161891492124084693566085525706603635571075979727898275893299520275448964561684938268025290639454510803440868987281287396187403147062070899473442920299746950026710712377491831591960808692247872863621424810720270317715245004664418877224565311499343251970619043899197990733159556722194767164666815854421432571853947951547548948188264124738514134214576139101996558718627617923994350531244742847048286320058277268333161997099879675046106316772415387789253278697894387575816973853863731124833510705479683059176753046549820011141003340376376164283095542369601401531570724794888286980519609348049109832533983368176342973614874273636153865092320055585078591857434317785350167519290988672990411712130487813204209004286883278566027009231787763566465747486225280975795688232756680379873521692348012827277874635079735673168080626112886472692377533373573859887401019520166820904819891163271196794697825781674795844405707462040998940125544575529752881477264357505655205270700801463190686408454973518466384772615576656895568267817874581477856840326083148278824128616305045737854790315153503918739255388110146519266907100414917256118334283331580500832135149756247892203432852121619301933248729975819616411319384148757174013730231638941435558425304219629112656987914760405256975136909404444942719272744846894668278401309272554288050749751976427777699843304605270515665697559029120959294105572805801375533079702379376520796551478471611786762726358779124504401885831455935462047502145439736057038161390085853871178663195475799660061870389392507310352248513908128595071245461842565471501770072710758218669007317611145759178079718473363658527078833623355911384431470872177789913921099543003255394424333020782394904816608778187662331807534595292225584608769651933654794692349698852719436263378532157880614732239102435377833959811374699624705508810312601832515468805074792440562428251789982542206691622882749027220596826301367236847047109068699510102769118430366074477640611588585128173712981586075467485829534887414846899715639839405906067738275034296841955303899098626892658137775715326115166343871644373763169652290011696109475855972311314506000198568369040570840754216603132399595473922589299549101254499306484657193634257839332209163703739040843772017740848796825721912088472403797557111610174495761515302395647308093161214269095659369279186591577342463950236994620082798694571915826986028271567344833413211664942318606546124307085524730365076123167623988023436202380440516794957048675643072516919949771988805531708407813997033807761947713451310132565802458963106031465011417146126309007706926698608779352847288856311845796304620570949913161819966055616773792553776545359041468911965810489418789372082444391659392535910564898101960950778554758410372102002092590279690182177471699440677494516424963740495824863635965931906614254383886361473324795485540184053156168016927683388722141428126788329884779591056919385281097818917713204274291979897227801138669101780496322412075527677046532193577915917152297677668323877426989233099503729755937200104871588309864119518876799503594992611210811425586858750970893308089053566322923932482116921500555946084751079796854819683482347181146642445138467976428425841129924991478343787084643797733234971383945562615005194793517168604017045547499435916070287896240993989095285505866268813044560553475181649880471892933823456539921782578009209313024765487402708888750106508758441706135801749787815408523521326043731066338301619515385796184409581895487817200969498732361070503536332197456421056063395795602782453362330268238389847445991730507308530921466918922763994248199526407546565565226680468113255867042714183556245892888886611032032908927840003668019750887883346906336224599769903772393955911595882901521083196738944652841008981321205485480332561407609976705777046483948597480184302090355416311248060076154870452428118208121420561494477715277326571708756278839987193561105725473330422660707904231133373241526268503506773993761327419088177641209191658825130975754049132621275369282649035211599252350733017902858605090029251611250698660844236320940727673320615766291457919127861260994424348124045136061060695161939077868235722321035683789602393611039392463154168290706617650564980366781029970710216209205572259223704986485654123018425204557960410080803962065935523114948321786100365076766990422272060064091661091755239505152111136177695714721777708254820720188067098054557012826717989695573900809032896057096059065124677565751963363642498856117470353797581315021506686713963579523702209598893603830087930332310957868567094711473243098046924210875668706284435769495896388051708262911189521718107219630369847788891794440231653644845032407420596948088513094745604640122833275833327912144651617800220761893482026494254224218958610779795760493380439348121075379846790773245287787717403503941565980676598253610509858920486294362027829055543579315137853773004421597949994468925379966450750040154176947255235015814165961874884921003211800698242260966127636621421276208054397896724948202252008115997416485662039801176715421408372024258638435757335319357981453610234470464905162665216905031801240226043400506744638808480093208862409425597269688959447265541948691782734932725577393752845543944594044253721913668016916155565150326238325270110986141618175227662983312236879130002764429830917951645534230369789415827023159842140229097549246841706159081271010288771617310084743894347394290201405579035476657041213072293451736432475158975846017313958508267529768589987306095045252034665278236873371337622679404219962887870947711580271839360565712617695035506789775096730196839865253457679373470291703896834625193267383386760677284145030637547745156302336491026930146301413896454162252001458902396196627670815134535217534564756941239992655037345238527541642858993693275777126721088466526983349469997445873374357490929373373179351941745321626647388796711934883585641285695321892262594908548555913514137700547870274171250778944187280995339025967561986812808271180100572450422892283864168738961697061657412394181918924830027746346391406663231335328156405469784271092764801863991836096730057783448267707639406252283341434072513814556836939624526503608010026340610792090711288369492293178675703001936201750990160535348977376477806345817110553635491865349581382846140110180087421228779072499304906710945365850835795437991843781491098270697300952526820470938743547091412685887772497819611440788855719791452849185843406185141274221937292423546150439003855637797404801848862440431203530368266499967779497468779308131663118121502306824430599286107437578343072914068123877872616696634572416892865785361112450991379456450675798110713399162342580901927665684544699390173069642104258182781460054603386591138903045358582519541503037142379874760373360178577545263530788699196056147005316312099146378293939293110153358028087474517470891305389729855503212528262874628364067896185736281316575690278666628127782122994135998693141714698411913291949364612353873313439213774760772798564795811224007528349704607457434563290691842330894392652483089734017839557299370150711375427082538278090129599729659472273481485088993539471934937882549467847301351592159167561642749654693813350878547465067284010058680382769241554193799199097805992128107638467434416214394408530350791354809367598492229313694649843783133012189673675338405959397492028623846278103192517201129985944175273857597422924438788287846177531533607368209743940395631502701680127702109553168508975732795292088697635608512736906079864984172867721026941279157808008679529709390167322235573921038995387795559837018235732988486621891046383365425522864182846026843713571190035020249825010190400012670733686308147448072444666265699838969940748733108906690550601263619797175079549625417525678332889115572920394549722023836743573531767318271342774043642069530695505889738193349679368767170351708558291243360261950637238999265678522905384931026865168777870702025690000154776872712906587534863038528341193744356821023351203056440398415354800833500257442549257770042272371917417218851203053741423187525639185436290083031181381299111566593351289020904684050357660426782523311882433877759688963576639633057035650013151540158603007769072132374437630160904122599665724535753265445316905811194930215317356139201213095354838274634641097071744689834078020879685780250420537262093644991295693398108346802130175552428804401684620323977680895286687130991997812154468267669620209394282949990656224789086898697913611975516698148046930835754769100585110049028728259031493820327253317512758618938188088137341621142598006044641246562485072195387516914379975148117399455323886298931984981685138016368998753360319120128779075489527840605474102677405032496747538218438953161069521016386601918175752546566374034113506253607925143001653876500857701543775167774728569312139972902732532375454461911599754112550769896342374423856224058777633867550453519702911708665073958196773572816727354676291525938255104443524522055792285663280121677310830265480811766599400250236248637926032594625310203237531413514364359576470324905432455236296382202313481726078205047118687917462453914157680676129134041264645988973278917808617717722326902800391745662648081493932773071581159855204998324691457247862715993103782483928951373061651614119452305586756280938198155364973292599117531918859249483228072974349682198453577937812812294309714523591686436212539188263851028557591614591766145565982801969188680622430468009280656113922835317099606552323411592653981949042246134823819755668067580212283288118927176714338940718648695469273477422741429902988283616904571740215658994761596639773048222113276983968108520760022958977563991910709767628994470212512202766195788746307076830641470246403882740596381511869116509547619681624148951669511650765100917499261417617128258787473992875532612056240367420791235461277626298518698054285258787701883396432814533488580081491780267070403394725468354088104125832824012356773576943280904489173680793864880083721400536047091139253920684842143280286430207848064989054917990914050887375893425744753655322196042633100816783340690740132995228582298946881356167999320090172679781151437366155754225711658089963103012926485993635782980647470253689005529668664085773556353387306588502405689957865431902350685212742479722341996688587396809910850498688877521920433719425712305873632973384667998598968186925247614800822576922824394215377532569181312236330840520977324982530636947464985610066538154474827216511813679473441535821600030499258633958709589043291062592651606201443483340733180013592584588129460975879459803645209337300661366644944651549937948528511921256541702001719532813002087728468575173075838083156605879986165545169439060638177642175972473978602165961254040545567543995029635533591489629458146631565895225701631315921620601458695558874104819314037201069226625661673086811334502507150565721605497983241738642381687586059024239665673811451080323134073138995353689351045199152967465534269673576128138943724242102077306344733921193638312849364984968080482717828522851296747690167959281243344331217804903814506667417568953629605442871603654778989416036048273064930127823343965320794640070768371984208219445310758860576602511110671641872265423575053057686095508711660262804158712693119917651848962115106342710573350907260551792888124279837954093174286411636983486637563682818075600062230891298246411064195506075151888155363235544212678735518798232352774413622956120679477878645291263510996905300324892714989446926303059097578776804526803176421164823342242896675097176550905552730953602827091583205525538163667141386270057741832807456747338651961743132733051203344285723961952980279000597723390870286838993800894474405232788632855812501567457368224496425815210867125210376238807689273751126533180644843154641612553922819265768305136937434635807145037287135189524910094767523035676650067702401123835876771619376146100767086854478416322739405795893492394395583629817186528138889884748266708377987368254473766482985901166611764928632907216436660762681328941093562031829401751708209647308555883260184529266639593654804719748754151430743061831229826935030802574502396251458516961172468359222301868099314875170202839744560223772190950092025439432856420647733397018947708217866241990926878580998777492119515146157512093086478173212300709686117945463963468894230344789734526633864042839574236053079761512228362266079525685162653976934218093382383270852694430158370460453188808412906211551316895936498260827718355394255801504756186593119302917918338076804085986190555278571510005931844078857178307407220472225143291749794822789826755582233562756264655601967646073583354601470338317281404184344254450474265881042270168263250456286671789723548081384207872845540372137757098534913873800066467368602794561747717968887866269388268500105195376758993262489170546220339514942008308259608893010361482018847434391102547842768042142779203935708178954535931572571077658239343698425146065856632978779951218664481351451359486718723149416492683454416902637278125748480908688476300108990282352624497837392363259302917665439747610533389292397450993100926018808844605609074939486041252169423677070758776802358881854652897704188950904869684525715748749640234480238690669864960788741707967163338275882598078228587046122563645336573015762078008094960783105272039257514199711170390663247538784172778308954782164554225547683884614584843100881375846455505226338687981413381340785673512680733747332799492061204809291938680982121282341445572167093273408979665264088368206247982121590177684289538311352302505857083141517197510466275672567088972351254295067106648259991051322889694970650596209163304153193431980569924189660233041547659902779002208604582648799332150707813364383149267697234047077114440399355331516142229063560236256537541674172428879818536412275981148487515773621135756012192222334132238746848490071944271375425678266382439130770848277053635654601850721728907751402239896853087757514968875682274234031578329128217170017145712954229125695741573163999898629112027718885324966909744880958038329630082205470650393324531841585716033168766472152085988346194575040916234133770610724579929730187689995839668788858164223877024205724137226093914991534306038153186820199402204347583576433299259248099099242017828060214505865085559594002558412120772169707682049303471989823683960975303957261939834796148909591371649467539781839426295136135329581006175263948860593654592950302147825863894339536810428431151213717631393866186393915848221549038028486907749315294582567031921896647079650647101368403562148921564435669925359939872747979969950872193465582536914346493961174032164693767302355351532149672074504691591309373943810668328156656955253674025871497113857892896835456323592773548644548141466314210339779637914386725669173029538490319118891793332800866045663845413819551422141323698389722343388472078834326194493118709870401517296920290296405011430616897918850115457693668886400892488538251216795015130915523329660514053019386414566267240305859458798872215420276434630007729346587706030097284623734626995525848855888087260019338011326125590260720454559505005895678390497775471465369476337940683746729683477797602376414284626054364562640283687160797755037283275524442809760527852273039921346924767554784770399922980053323732798135075012164852865322314484331949935201801863106036110964668812791231996150359603859215440378471827681696390932346691152656949208326785201350854372124065637619235637632832614752427057311123550773732670556006414960817108713397433554684761053424486928955642906807218208141507211816653461534684010140888648174092931182214826996146375526606938563218802464341867989063020896773143459242345272003565420276997349235585452793938739472000550593316878146325890038448962591724579450179503535107235993891572283702103800146393670874676580910646413859141285928253208097180166967547930383400545214101023820330717974250378256335944011859349644965163216684460815585184940235868234241810506473781844197763562688248379135878298494041953362331346634072406669281640003262291823792064417613277533335103285205913995696598033014733147536334565387723977213645665082139742479716500025129541283958117138715384299293810720759333193969455455068542616070887243331369966477861711549747371290422478881462774844798438809206988484321403955399101096566694702050701754633371432817252102548792478022284329741652312553796399935533358871700285453774122347074644075527760369702486912904298532010443471142168688884085764801477452999989190399828513362973445823303976706115048154522363224304962440279002037926446592947928135124894643717584486924391738262649275817073573606138696639421113799522048789652076079905547718903360307181592400555172978419802831670949680221623288473032529452857572598458916627356895090754078354505884210760517671060966131494090399683474309289073326768113720973005015266329782680903200247276790387780567342450395890020307474137596705699004444960975401227676788691121219587496513871634109309713122974228564059458833469189685685422452166690088908049930031927202087059623296475830315222004533117531679625149394391849341530491487296752943205028954677206017177869209523830118851096091662080955277878584539770570661873323364604699287914901310839199513164247025415516849158957603018227862970163391950607641068767167867349283080691246451620961540351399087514426132840049176667863425554451341102714974885079262453037412053208373430263040042122173725597030193905844995721647822761123958822530040770919687221261872363484452629721662291773028023260998061092175273014808105683166137835217809057891566850056910467721278567278754642108034287047856508628237278150913964339609653967003079568388781241813465327824313121419753076882784988531592326390654472016086673818912791742114621469746336964539859693881559819250011501461247591434730102371589926894923938864443401391726251548560151352032017003558486401175088331024772497046670651046262947168271222474893283516078085626494276520954383542533303384074219891570008087150620458954490835009822159617849766180281179948938223893488823117888510556252974333973078302265353238351458085920054794261852997152368047526446068071730389745107252743452656894222151824441437925420158383868978030753390062133119474610570272166872234554684697192357369325565805027929319738450085767651089999652105296525946672801211159916521338318583738726703509503471063793433706708888938918295609695609274152640160029910412570613307242347464747037514134543835116378078551127597375179207237028909748245542177728116437447778275403178879190689325398293305496250428709830152278424069719497668709450073765392550731900387377982340522673248127184458634103625639336376157603483150743036237327981556538452842499228737958514957215533813502160804708173292935012562845568729568376017252559522063825932575538634299224387543651750609818257685690884456125228839817722891099181308867722810008442857867787049934801458884964729524930378744652430085419332736844144937571391019127447941882447566262129879414104714064817629676307410650904418556806799899154556501703322475985102657121891100333241025899766735922289997350850116847644278165447277969365714105170033542075855943559082788920240710135443844798600601824569064727100917711835156737627269271975585911093723090366709973537526586526703933821592334965499664290467738516537312964624813659975158246157971467487132356273269562712280016414846731561168116132472596099899523516362643485260928319681897775170133135611441161070086116130264120604517777964353143009814798090221685855366108584898557821206813328069326542524711537657949795396554819299937177723728302682217131583391418551835279513265618817192459899441683508573690712187943638711718079030203185227960920621351974861152917951779359029887061947302159684924854287841146124184786980800436696713936329168614207948468801623820247977670622729437553827674152982827338713142412623112918880692571115126105968080921109543151021858104227580540329764592975846056419472733818627410577216379526740544366243367854956575294587533973520631669654604864375081990931294025909482560516988814113865425566145775230279881290634158095569950783390424105138317188699489832346889389602999175500548062833431780077498574553061816163751181843163644497964903718785619279759997905475263410922811918710360004035813893433708293960259041205160194666523900293485139388943489272903746092828335305155656960535458121914665124288551957017767044757269229047942825676780168450057546502493795504383674830451571996535196458771868084662599222777027698965259285846808569632233217322264102024554952658020371262706727355601190227602397223397453900764653364888302649653006615276073577792275642829714029725429798792301584884698089559243983467575354263335359278494585854993806719460377982751953288697057031131616467462138071348912862597651681458418697625346442330875157574480738489018699706826647926450114274824704058161921763818185317079898903242732401146803702459354770455910910736228289269554116274975235886912024478039019209461630829751132523103023573286847353389294560083072135623705053636384315027151238681566941504201879630961693097608717263418487726926701443351941614393417128507797268073105037170666894542416178421199176263360167385312954477537625394043664798874734026672482067053526547758327629401212981065702318330255616342083063996598308382515939433562441233723689988193370570804935898504666645194723550205998803270361299598513408320052647048668808599540330088446166363590700033127296033346577690842388887937763469610601869431269832073261125848354177909006373109192272213754232008701962139023917943700957329084351728045380874239367726718198254983945958108136570212017364307568477104237992809590847724299806877712016714570729859346078410473659492821681180990410876717528204395121212112363343918974707650758791944867895385106776211521337861476462051552944798619859592486144862887638615727652922596450515987224763528323436285422257947861070447156630171932193235909098258238771930149194746954103759618208593739297576918973029300728663448446841540745068528144947001278031290055017892623505009096436616670876172136890009595431050548621941139966500024305970977252275526809535857940323831424354229677995908683887721331521738260611354855790812162081194193433136711263269456530128117157654411553647829534294681345234152394669969389131038111471295815003162157177093529015686552023280040263716172033290255815215969130379379540156875015595913135491268196783552211369768516231893919363690546516555665452270363487802249611596488195125024753877990232682525955759901386323612266961087435513745012420907209524051112543479812241487386753508659597718271490829767147282870905920671539978160278563977694025043044732901387867920109840905015721700542620916464067412837620329789865436846366816330709626250677728916701359268536583652431440597682203668099779044775803000289261112645813666350086383249760956501365426477152355756203942107964800051890832039544007633860017942838227888217710585634062852534231949071259722779240510538653140969173090775735770877564235309687719503799066254255395919133470086848775478025667557798579328694677867020222926890178200063415824590790763521001144539527153992918342449197895906912243032700199157083974199355312221154122139155200383425991431205388377770706090532511385619631806443597845580265304756963728152321073807870671259395567591314386386809321091424244558119677295780556837501923050125802105313651073192815040308094634251494445344515942314729454104707269538605219362193021828722626482879935315990765825311620916783170375921014115526829008232397070849445658907227068634583543525423143566407329445374746488946079340563420503482659383859965344253289519296151262415658046398789974991249720926957742355704331490195585683924590825283929587746568852243448930187504703100222472331272950448248127663284258734680836340993822867141824157011114191971175813058547423002215033700963327600330094323039457142729393479869412449761129059655402657047650220523946715020762423472203701722620741656255123081017386352650620065322964688597085366398206506477360926690250925930711869814828355125163417462138522931163461631016550464619099725507888592223258554487467531938134405125530350704830082089733334103331604476110872481812376523479814418416588035347457645265412600948845069991669495525008236344246400543035454018652642182017040145418841315693652039910441811304089393814487119162171292075792852657440059896353073651674744216478994594461796684678681868755755357469047749374277924333451474650608793530569787485581068964445205914253728450408077766048059599372624651545235573766082857400644295375297838741928580529872276992332773301613791227284354029110593385239432678069298609322451752243156639899368853858026535472658596620812085313783156907639678962226857711622062945163642523990531923260895131543463551496793524601266499571632410638225012662997157324218999163286451692062892678274850369993763526279920808427822729628559437085257480192412620137313008002405986743972980460209928516130403353199551273904736481556282742535778130418135299608729918617989147527903090691747608263626208649002777976075745644084003575190954946225568498576341482448933262577780461489002533411838122536283648264312666557804037140643754146961812492453784185948072145012817820348241279749014263538699620985364758860075514986943088156962509007067886756368196269465546001179488853734952036614026914956237694791464530184210339390891068037042843682030702138733230196078667498520293116258181107712640424067209065326448910024762843339080008159827705534021562423406579769008728734519143854084837260007906717134172108996312674449574616204369859810462964784783796505195999641726821245542813375559275983865289927167085416168839797144928655982301528962281241579344000017330579102803956210841867753434740237371856141131697083004148754160543029293927135593631010890845391795409761032128709106255916041592502587749836183978572476959735155491680111732122380609055986505157792521736161773163124302516047099957987709758123469952789419692708129367785591757769355358718414265913239609235476359450746792155797556807574970757076342016766202747575313005841747914960530472343026405758541830162035869897668729467256638105600532378848676168546699415657684657637944018880933266308576315345165078691957277790951790968720583527474597339280873699607437708691235787597973098433962946359320004687487651372757018712744422044639778712503553955391066529166708459919237334026430901353241975922701132268398867430909125421092963587032312563822846675474794737069974235227738815335240651125047660994581398073582193780854221095367492305290230767150979531485574562654070781586663839501129368105469921896309831771922774797340904806395649653554799523976272586055750866202507127429152928558309903530613568989963686649703417402769003073076071328866334802155574496728685054074594576751425003358749819535852229866660317860599627092346306472252445750059608056179769243825561208638658449691451444139585535090700591820390793434828416811544194246621826876650292472185712874695224757830203167217650898507360214048114802360244370938682948976070004991989734099506824661372357539592010556172478034503295870088231188403727364418469461281518679196748737655699008765993736130047500476278029621840128131657514348969322919836429254833913578134388767679863264350881843996015261170444479215788397932218793295773712149076772527730509319107442195202371683575690466931313676232838902969347103282450042512123138161329718852318739032275461988665529840034430181633550532446283340173015643199163943416888434447318480814119539454158246485309079748379272805532575442768187480785637890111750659764887338895560680532441568815080513602005602264797674242522706975463026391104054536359738562556212667431352514449056732194901525568972986517624572181906451972203827409636047898225498993100912492238738074125881258089907931388596810445573963642657552463334564035678836199149646776126284572003881389547057298655309538180179636516187039895926262968649413377767798536738964352945024094443557801770916394706443851990817043062846337194988432680448043163195330222840112744220325847207662018740936004021065346250062121749160232265249128041197498261050999646922554832667239858017626442487277330863967530193356469115445876159005736901990254484633056557739452650501951471926251229554895511142714800116648950937811333024101325934275262398512921879553449282101843353190611176221376077511424210547559240385390466044280917420754183513839887844948182733818035962254484029810406672109885365713619120904713327039152461028338962704004934312747693837981082327235848123592288545786803701139114876923899419969257692787950107102947605859286458251891838522291433648858964785474037729219028596249521390308251967201058420567725127817691026994161856712159731987454096655676553848079839184994983165534139060583428074356012086182454542694142239699622621938222440838639575674413335818808162626115392124498541265001004867938497752597209397010445482929965977509509418750578574069091779611036217425056018871371240613605465806287515828020383680519645604929373126377861494738872415719366770080170168844885361977046469596404033964826068767462822858613213273189157039237728197562437135674703696501875849071147585512559316333188633432455825407986493488928657974113312407631192834741723906084337046583553132231861111351738969226884683032115651691380172513515884688346765653108019046714783892585942357564791789447321460505198209763794236396267367387005174225108996936475631192416841693581170143476996572897915402081002691940324019967364637740881353937178722098802365413333277746207658734753560858173502669685806846086991991988310642234985186205398167679651442395073681362259954550082923864622048877649845923747454891593269369338828130416485217206953248846853460871865871808703401592565176453259324949994038677847197005128762947074283786431567641824609014583937353470726237318340305362192008704692946713553929700336567895031815124707399826332991824255772089852346256965165184275309617444114713036472814423310068164201092669624371150144925586858266802923666698169331071749579499914864659732879621298308393580002567440987874105688948102553877432547310705012578968430245140713007218620342467468614360573067741759446141316908369571207231578298047405062398474539887176652398694709505320642607396797060420701512600116730894457484672512229380149796904283936603747460466534976701193937727961356018105443309212345089485651065632981218972151451820371094694482268823710322910436392143370067584412586273749306594175399734021745544794387958560806861278913782816488961664194119720589853582218278111990933778229958054409237496210724127980671070684415023459382963375724096611397083402793199540517354749760549671778191289032372652011887126770253013917604537686781700415452853217344796227863162012715312932668277983245385187552486146804155942859496499212695169674575352379992142435915365307749242960615569941795757034991023354984874411902702926092458544712604324392031468799941276751756873626062940601073107361175669148339783067961534919472906415065718589327992726663948753449582141090018896674211238411267203131124917843286525494811916942503283148660649637583478364063070628127909208049361779072890376634357826005573887369104225857023517996995086626270007896655861142806310471778158296668642138944235240890243016643083905388357704026959375313349024092202873630876886546677335433082637025580043538170057702846885351343405204310455059995367191084012396713652571175859874250788907432009510047749467987333166403699060029966929187646140346356612519766990398803361006444099739636693019808756123712430960501174418353547609407108358472257844831523859277499084345686318202487176062013770322645689462259680364466548143823376071545975896336321930543896514880589381522737137001383431523751091776073311337135265794822561678313554143096776927104645938795970721299864745401321820052359068112108315781956049456936705415107378186419370337364948910604342736163895680397660994698015092507524443621808079316588898450450763341951738000049898122379980245510069591986275819384737241281801115551406389248129565541340968804714400789457267902270717040417642928652552558751201626185054127998736423179633296533149232526957809949865752478462145675129020571712265703351451161318097217438940797156861038609552933641730126049788663540397529762165640332584719244788861421113279368853190563527568485379071923721461405389060453497038524973196930605702072169385089344541721268084290434426445598337784950253647778742996144982591349175952180584613460934089124535949210075210724324877252080048841508039534579933983891742394759197856560828735759372851445613353668704837666713119900780799150662908360442078909905136481780641642701192944402082069669301883736077889730119339675159373682225706422699042213816760211591979450911851172148583782260020798120304494656837942956777370722715635168934863853380799759106367940488213400350128600660008041704631929354034641213105128698185205786127003123164425403846273048155353869243040417050156440568763786711700109334499259074090377150313816276446917881001235716749980909461952564560259940507980124211458784411769739896982369804892232625797714047470023100754283211326471353442009701564591570921870976552532193755374388226163323060731480925056128715462140879701824963900161527618657972552979282698067294936010302481293912168232832119154053813681761569049565026711468258359295932262976367912366441206027639816497691846764636603124830367750747643160875877026659371518078571752184974366052755381072890632039880384676318323486013827512757186785018501029840820950004290501894847447300274309236396711855666765150395072612653614755507060827602793362410929218932042827228215181724129117140778679314399610110642803143559498036822384210009244940932895825374299842687922022550156116129804900653731426197813305504304678560879633985800534220261029604592762701941859801056157189350979295215240494942204899566768302760675073252447853015875543155688315210853285594322975776149881492982262470766295764518804478988637413796598288250688594577023219759198287149486762442723678070116867663861869097030982225781477942685029289513443188494906742508086525424588814533576900366268171865589951994525185021090822413258220122547433436661385076594192117609655672299977795149965732149377609232620879585098574322093444864738136154941879386915003854254605127758253513561526412637489876298185630914882522480577819920511389760874719542016395111519024781786891629937348926520240948477580496403353088484433817620130520861887360805382198570514447167317172213306701722252396904701274121327854785316926885709792439925977139385543086018946497583189027519372904255363325245337859982143289606466336280824927969830736700646129115038558852273890338321018054187648549040456864626742024358900872106803532825813035077263831679070792120212144714643012954452155443836147834772773399132406992597885268270946694266433888281769208931111761740329117020948283447115886805925798433493476115355116154995081631662160788971994462104341445977647376283283980525621934845479584786261525015653468847987476411005660402062216883575099603705566009501952931692309540582954787509835974664363409557084376994982553803551867709321460874789069324500284889209688724887577865314337335163416048677487017057476306005384374957534790102905763701474691683035401065638757787953527107751163835053412803768135913393278462248419342489377616362464064225503092611269164412150628510232425093286117624385375525043083269692801912829921276235918372027955173911653647709418061816313868343662049180780344980741372709237867210952760160030698861536066290663290275537628927747082169351883606031649882065995298631990182952941763243953483904198277986561620704930094972034502023861322747969983524360607945293994417864106699077174097545034421522306598448021610110489447498282351366009135179406607265943269840643693381755613531492281112129713400529015460503298707871034742328261851896002076367438308765742004094431652984320198340221782673646844223419670107390051102799808014233856790499794239546652598814710333580219627741553036085806930239332352702335848658298176973045828696531989086663791990574750853871049571285190592970606888490493703021316376110837449203201059511104925075896823207096297041542703949454342865271836858794789024441045682133178937387259525899805836457342070194835416253313309056260788255355822561313190927910978548364373822212540092581000606020007981894924922245053943487160047285265233130394974250311654187654732828738893962166711224676296416931536146966780775308319348625473262149913268029306314101031942937498484858230333344179746527357100122174775850979532394042050829364953115044054460254434431355227063353657782227285248663535067856535379808313046428821735953342903434903675879178934988788589804217690511605889393019833656118380460561871840475589861259562738342708130158267981256550896094162891554097929820882711867762942728517270037754448493250683833166399266805933941502251726019092231896874788642924824683679482959174506733949614694700585797562874564162366191664833514248643425339689926090521113255224187294709689769486627574997188778520321168558192270033326519926235888432970584450654930802739963387810644521208836697043092335352857487234591439335898483255894049700428756530813619561099242375608648875874568246959867231556091643308296342744056525478521874253878187423641790288611789511521365424727133882774923236401025578138220075815852858376845463472365018653907493022488183989268154217902228275331780356072552130114733653045039377353996035386389650214545848633976385445503297741832645229769316113657502654507614150189218058046109011154948605227288656081525256343933682700954019620892419157467130106880345587921377388409879121007422687084471320084109270886427460488776731336228119416310544531319696016861247468816609437581575311567931838009380429457617795738288489150557198617571836003387032559942318142856982156946152631571010533075790471615240635765700292506683576548726765198889060263554088338453988043320563984235949246947674278929794019564814516932514773792058824271109849496203097190254822932898933019974458436300563280023167449024933258389218926992506631506673688212493658593023875947270749704467245557438062276501421023318377026703484286836669038017172699723627411754410952274833529429582394631153657622787234212877316823686538394496664192282742764586318570426991004505264493334226224731088027283404398988750802513414154554659085636422350298667569154919801316988555711047643231903442140206373636190147860495074470405734417889671130876855727235155661393225064136736948553537542961318099452338543091473787776693590695384704412347325889461729668835300665323418436239680049232217142513917953703124962736526899080834701720683228815679996704584065134211624848657578692151016435162448878275981467815617269409744791984527508844140571064251010137624798491546031766649536135966399187237897681297683115237396093022525967714179142087782938115309252923961670633853914236189250837288102055570449441336579417486626275541289337036381936534883291402056070634347401780392201629923161353571668514845701440329448618277133827800296780789570352149294712311476318831033333685659067628209748328961908232869418624018937401697048058540168642867943178989029134298432151168896420714549567973687570126904597492896714193858403008273374199315808166725864262334477010665583024776966507320168078143657079008156343969833647714407226182700108447393467680128461018092941968591489391398884125026623350426630335912487714509133164187878816687778020508897788487821986343398116846090393123836870824711540379595003646014777671370530167147603430100307173285780332150769760713147154907117273573038074621623645498383831851733751341392851959652684532801697558221465299279352063784709284025602959065439578565112139020992843164510110756711270721321736826989880843645883498618917745305893365865665865540155027562841791591564959285017955899299966029861711866118326062687933949334337854344123900521802450592169236205229421929672869740084635314535417912692697365525697704368538120636781021351655444546135812594601123550331601621537642822521619791821149733836094086210417393029161866342912559449009222642052207473365350509683295671492812055570230315125967929838608443894493978337455033817223533772489202611539996487085886979551170446493245337620922264441321803537094617756298227254611795025776123031239394276736187083031314878326446516652261154017731174200335243919227138598634564134989107185621298626674271435194059401554019594582924187799560969492799505944842664157086568204584679330631566655622816602343662325425920363879960594289804747121940065934958003695726819153463659014337063102320736281420232893615001045186690593676681489279899872009212536626369794780748150725720973822820486031702537000668201812396069623552925608816997927745071764089952062466263927124325396666131877446543318876657233069568257100118302038897135849484595022543612803625623909374978038179224081747243245346837702547620344957162494321443694208471819422667360338678749957985417856418870676954069720326913776041481259691341889646265828713545809155076593964025240676853465177201253863005291369965123363434642422580609627072095118483168583875016483724036439539593757801795981668784093569184791252634016964727944640676305860415458351047481213752435700651669114402272622954413366731170495956626080735821994607895405555882122314414545062572740206057486101436387275756319739606636864096566028422933193200391891019656486890745760979061392282764557410227622757989017370057793567511970674235315280103728695996611846005611130767572428318491199537956399330934552105014343101591643426848821555975464088632949866026810555231828134004810111620171010421963413123397633291409174716735550266063210698343955006214999266769504494512429058888879524741710761412862824606790125552956709580993753067280009622375714316812684170359830795190188735321102146399117399602615494943822993741624449267135210472557761742679937514147609061109925636529972925974954565317639143644051016549011376739560372561497059843419069996962844735324138018360252453684359508645190281133883134180892398381186226614143403723211103863535167032518724548394282059698954962189697675453456869215463277977526974532672229340483804300373634865194131203701955315708980573858845639975637852764251719731322656691341619034687833207012664261334317283819999754765636809082905266525113070560858838068341768140579015078484443180715243936779248230976443304949609535788873541566270437567503936458676647533888939807449678354706601940012537183505321094296184591638467184814928140357984041631141812879201784940471587756727736961631179842033560653034538008937084462425271728313604002791508867192577070976857661668478340484538635794716127346457398470207311439751011835247336478920629494049407059133738973960379115525665813907564493009302273304437280594625506193975900752485759215898601617669307677453225736153702955380561416093593394879346374555513036533247624036853362720653458082832079741743689946263609709427675764843437092483542391305734607923975861783764227367886398051067861108036636456426955676978543663124291513978165936016176290721084498751907535307243850912692359036111034152817389138942426364135351628070220816829259636849532566934134442701441779750010854359561453202480877861589356413857910357350963236134530341687630165906114886312283930835421130130007728987590484148820891572107190148417657330466557093670673900513692730067871029502251276767036568371849200726810618695134689622738854059735839199481768939631187295966605026758714640385156633070209105376040490574007067161396641140204836698250640465130630641779296656603182205447731382753440102307358739986510603495629341907623534042365633772822058878342741171657185061317679908153058850272003141354864783831732044189423938295722918536176764406949698335201971655786269770609855736851945996416648519161444304157969160274120979301664536632998264558293633977644402322905415991569907154485541793166553119688798680134180369223619664425699858059423433588654060988456906895329033946422202935523131785140986255856880775341748373826584283732104243288809506427314251201115505162045404686893381180423071073272209145889320691991187946419916102089190754468057749811571644469358664138881605038786919372056022707614836509287795571393544382797605513910788171258889699028419461496930061156697996765719010981289329636390846589182476589491028533626514461330284519264899391909845506220344267153477135090793701668426747838023568173492361594539049819686936488472000973647899549373354224443169380370594675089916513344239883794408324439770868800247915252778276437559541778422609953315554891393999466157545232018844100982672805141083337596114639883120065276880452801092283842841190519635548824905369288120318426127448242778191353850608626428633934021218693683762015292086596229229096198254395111430040114371971717817756620850265368097328099205563873925661707492894415647583618921166206281969718736455570469052067627693254976879779538543562812445839299614174813380236509491319494103979878718480377091081469756464257201655515772166377163982246208485074231656538709264306978385064756290540343350531691398055063726740715239434472771855427588881060620462459512942759071924901835219510706887688581434658698591676979999936926329863121341710064065536874389373595996217624650136918692944141009414241896538494267693679808049652984854357179764960146662909486023982219930986349062136239655518160275188406361510601083702935149021140337015766950664279221322538848713721468866987420413940329774666356338191206742642876602682606765042123295835602348910911181783134685484369384454063495505311061071098871708808469214540278610393344870617164843381444768726043485901433534204705794423271187701173567751917598352724759472856926826692802951180274319635244818216385801102092454387039098764533178471029357441451554132898108158489682095267848528813847602577220913285095991095922095358215684675723955819525616350037233147639563155248872872058052699928780444392213765770841481486073517693109676547758521697267596831028175967712953812777137491403517249823783285512537339184823820298242252398738432160934823439337256761836829655857388838876392446939414570193583976998006299946251101948167207478937758828454497782613494579919608618091329583963273847616096502973859149303060578770001399492329065013860781488168332298001703835208322108058355282893138453490779164188190792119024072077930518166905310512231381101657619882701325026423254593602929937702474128333610199787051287754735215762761481897436890179829936732774294518874523125634865557991646535711837349614964295336481412399322800743613156289825628912582373198404231294527108656189127225135329730876980037578693092118506599645644140975062571144560420321655114445203095874723320746246420520383133773441957966048755175581143615623099723552482664349409520030384223823323133248938489383054947652743228161226120215840539044012462521448896193892119594515818887563584535408229333840186846451724649703201151076402189312624642910614305882539350459063105096632059118400729669977918469831642555780582997412711879680599246390716711933825512685269009956848771141641533338751851457612071484520816023066273479862336570772251155221039002697818691850119504665511847520902660077741280960076670329331851223670093091320855214482736621195985243464725349689767905659710179186696800904252342431348748703579686557847174796293244295298044800597516461132970138809858170993551430746048184288486444448527129181664468795976790504355837243045644782064914364032781252812504128512197586782433404272427540875528444980507124408786335428576415499659308251140338901054856420561054855136299836856847739258765188949943130878251970329709559888293802993080013812348622574614068351586619069439755688013435752019895274143488781683912024339632872971606669753705214185752289290612622579588296542971628562884801883454014429225395810320537935308391867065002243118384203871925518661993795687039250158334775222216309480398942115697506085577437265973873447083868059085966854539811639582325610364137960770679742947831073248712651938804743841105166188957298998827197362630137889442683959441945785988005277342719810179106608840474974089813485701848240690344319059585572423937804607417483265149295801127327796405884587844382948708606243176276732497951967000312314262945565823376614068296975004106756837139221792003339643853503079245688802122943733000563092535525503209602648197627042291327654590901064442586522632357359572030463315249403772701291555429406498153871798218484054262606678574731359616344752886030657564465414561314849438114428041511003325471029174582338427663187795261083839644835386330566358418479562918096363388552927265500050617603491718036193734611032607416723606934695160135480420614693185311535269178239429256926296676517919030414431017089759389987375203963687922812918498500356596975742360168747183923751866738270404861387484200208194748736751132593821003022146817276079780123648335492909052201371034234677598710891646287415115964742915826283090471911677957616780833947945937445072635269260245639961620162461592596131349575413150248808898794809703742988012965682369639725851970516522724502893124349255540256063922608017326458666251114918915565967512270492483583307672294254929698470381092973786202889062661109738736626806211304021759226530281231152070467760663038570445852295083748099294509621758403330493157032460845832789028388517652357226936584707584291619417765368246971147013019333433683410786805016127709414999889016958986311072561030109631729209744109485943823916180796104256310325099034834106373641463904180458584169707396627049484998746193411699540016425247399180886591764209722181462891324292149674527733915897298561646485740826039080026982016426827221106005424498924823780611561840880943901009830214998954574754055308575605249979192855968473100485748822324622450405315764972812900474715657462871050952530726893941820822205346023774709669808058963426168986623512483614965051104973151315681139374224669145668785109751487516192001624339065600214812054699053578902403355052664436772182818177632681505570558395477625897852792486473084696821240195596953455885758519485772260100827089339433812659516731492036764809934633760253559539859273234127715344838674961308561520850817412890602765997588842003642855243023398322961970466276395473498589141487631085658824163240937378774638933620799304950092780942145093779679715735265921435215978735931470567271730073707798474812042092413019623459272023608916663005358478592108761389335324493988549285766332549923433988307436990875428735327338994108179422055650818631952886441699633678250211617600558753788705219888383080777200468179045628192604579021948198013017455196693741839543440242733978115760666586421437164568904543125013192211962591020507280274172530302124057098598354082701797970674164277758831228038851516529186963989605326458810564929219130495787372349771386547741331250036122605256979865840398305622955443939064557285932998643457510609150984314144339786393715532480861506594967240126951168773706718496686882927225645688822770921357104901028880670378246037163875602011679474728916661234711629184358666076835258380672556214158027956619036431082439775517654966565973478236878141032090146564288324994494783695078488337454750037210368411624068945071352580383675244299582953874140175137840910499879093797050073555898926824865894615081770565398345254085342134516859673764038613442360258833989551798198085138803478319034197578772497823920749773529139337947782757394536876111220362286121405309269384432218140108501970978851376105702507802990621264885230376420851346622682568121560720909434169690538669641731593577665144252783582515222267530995158122283383564945436832440984258548870611477266259625049198445286038067127266826845244931205633257681836585628896728559663634418914012326183953348888983706840247374310983253458772975556782824739017756079087647931489404460231309456983940743579834137765676349718807871290578732039137255617923987175852618166261762643863499325351676072550274216478919256640123013980574572691592767753382482218637059295662681115200033906909802958858836589695512135182368843069802974329052026669881336314254389002670400142053742743011062297062007637051882319858814227066285367368163833808279111034571010329408473199180277488201527171320405447667586936128842167838584470231336197697645122399220836669249547416168756573878881050299299482118704448493362162353880364761445669725699706347737362780720545084353915321117167391954724732261615828969213427445823156427134633657879549871215619725924587295627367560103894705220912653413930914311343412532779652579875015355291652908483088882173583512178105749186084239980836842532812005119190393558325415426428585783516301464349729906254225223345894084096906430421281364039853946171896038866206472873586213492335415793611151384021303622784982308773811507839947546935278741384089786205829457413131850750758262175840632037351195233577589675473132421199693712093896996668193172630289741605406729155624253256034924561431045290731074747257269643098161308039905840533361311545480054337434468847687200920725698049585359723826595061363442817667227681109204819351327034880277813822608950369857358715298734719117928441795040230267169334429698141039409315004636851127839844584381562794876420162004009578683736244002736076017114487111314935860276520644351141713475183517793706936086457567005531825992156745268957122024158495240441640928243694120388312565314956144850192173005949888238327231583124113239278965124992207725913094067868582429933550689161785148513108940866363547520594516423519438745721341831890840738690519015281667729682737525796017233334815332833576105976103470689461244058696026669760241539885650120424232650008505862358079570689921684579752521485297424503330802797854569258658555648039837705050208023588095262816200107706837774386812562318495609932904223951873928672442437643729563232583737321230634665951164896162841713086122121243092735708001387135890860974191461562868170074831478719788729986769843984703860472702039163019631828737526511871834392968241227852023160314596316961441256755484910876301311680798629372195443806572678051611272584408022137408020248015478008590574845273395408101541974450448251255496057180778560675001452588504332303392604783237578945859529864471320111598000336226513240274325417287555497853982196642573014409383197204457904931048959298196529918310274240720334634289523186659201434788075389726865997807951016535733125823853135096588098787145664999303871879322652901366745829927792534871157073668121876365190649716331799589716294668145389103637911182352434282173092229410120078120236105967410932030114271077877663612583901497081663514260834968150512145050007665159329665012761314097568134977787300065851361293413790471233191901801719084320153310722749881112785664292694281081970361290751782984981351647421539277719245608119024250636434267795817585437002390348023926315335275044590553957238006307390346550074503244529260113811191199944631620261176397318520265705925698328255233473314711800852991390276822768268364393552886565024786895589775837603153187231194930599745639963579500707664333292134617862035861590471621440363569956201748730199357563240696825917929474281370886066585113693668478665350965555005029117646773981457577742503263856265598177764204131053658432290004090103879870683554626344556272723558125869374161360585294123370031749863471482034703030120645025328753709166877828631053405116649835992669082913145051064131196399054187669144853235069938257535080187017359682682685018594917946985091852042876505334209232331297874574621078981953275382661797760992027565088816483519853485193913893490681814268823187670448217060904848632154356755708168416310700170266825375968472983432720148943637919653389671211916244555547319363888303872309156739026146589564133972175982017463244050496049780227894866488643757714374106765771775529993281639266046837697120045686430626713053132196812987183996955597477396806375620690818069879029301069886432677625254849043977698338461888939012059390425824106992433021192186406687368866354380562419674968288060644851739649337863669159571163980579376910237498280907082933781924670071835813789692673489764374020691822998713305283135956775062768633897659080403126177678809703840988236174316637815750785940279674042389182200533977267589705729227905746491671543725132677655634725837437528039679376223518671008679041454178969167776529710920118593175110294944346780250757502545986504412845871969267244594140337787506627671295924575075987660868259633296395327723433153522707002387349345540996088389052663009103028587007637782604409462122928436962798625870574986247821788052655108890889782134856661925278060968510268543060614681399011031760238484758778532332868967939179207643721513577786568724940989262232627951667970413997142685840204283858657228024880208639518745633126373281477090747380460488215741445550474302473028587033156944264150540271892698609106570184057508165037667037688427930380851751801771741892658755161812055981399904714776859449475202449595177545029066528596738163039262522233352730475413667721210922549171063656670756093473919673283085644396843512827748075911973937233710907924150233125757849862844615878992550254287652790218081298631253125124278451272894987803953151651705218844374922771485149594868456375772094947001798522395731082242901260081128983492483130897393526165112762929116125682280160924845570848509483626120455993981004815650716821082880447091715260430375485433736403352602694113147137015306367199805313998419346709957133094240414044827549456662420335458126493774465594673264277681059645483374239785440714074537441108986528979364844332272729598883340631802317083057686857496590812172829624031102242425720116496686035072244316474837365251838393373502163535629673743902558726255954044274945052907235190721471292036942358053845749447166431423466098680656501147442626170613769483186947905167640018634694324717164035628912070026275135635309120601184571712900030905764275854938543288158411250524827717498243544103450223077739602199848571630288017981596846458795293939428564964448830715957931669528587210857289569934752323067083785662205872804391400819644712728831357344807037940373855592918941895426606328772729955493670707530272962772904207551756475363366274192343478639495700138041092616711638116081779117187022567857486282635157190202249523419009090452586101127956035153289650098676781292369380187617894395232308391960004931604714126428557674090398254577006128433058873471166148206638403728328184659708417005442790192965702836044343648321536676605739829588874027801319835124484672626786572807004597055174945280589734206549316416037981508148857733700256199593592846132694785385738918783376086481297848654870443738919968661103406467797936959463978802233804278726010797278896572133076701445047805565390118416471959749693828656013784973306053916069643179715596526820035914487681245773600737814353414945822994959865006789764372854505543527964150109675281657783945150136431751733227232271560462492088755437501021240468439602996089778927594688878513731415231346183745067322781799862013145592844511599099181032217950879967960957549697032743397204856616644434654845920016933469975346951819837960822760374360955978835790437063528425401452170125212203918904856929379340579006103766594554533547852910820482496287842386404889312442955688371967560126093071554808717545908672841305302328022867200841989994757670029295391767596571107402938429967686329716185364022022352798620289348456993226063965921763239053771122930195364721877306072347956290433347038787541156760334856453452674352500641871843005762170980176983107780759564494545958829648346105653685787450214943223789922947787412160491121123796239008861887218361883729197333245819592558417969469532359571449374354510081018677992645480965666294284285446993564108946487804927121477814676397686048085959856569655480898507586474671458630380539153216485091279400885438794973930046515728625768632839399599892546836162713951899852410140015640275362225770999758690442210544179245387563558713255842487473333582498264423994917957807144421421030722548981279423319859391267258761385291146853661092682901082261704788219927985671837578790089375557592940629285092403930123563110176835402989559875560799890274926989754722978325842626468330635049479056274290887505077977078601803257219980016469950815392584257322570906925275667148267861552382472504670043353199511754367561705514181363569602903987568143629999723980654278332985179830824687371416813431571660280586362509929053553186516903128981866402835470434757693494164580224939649144195120001419781703242018073850982204329289659964173588602250300655430393509981899659008660539662948590033705078502408460824615187011763121137963615491927698203115787942464580387632812425186311037052251559553060900783575591184743448892003143779203872225507469207399483342632825300822961155524775592230093527803479712822813148980684926005368862587724686929774265865309815332734454354440303395311736622605901511948325673113900009248485361171878110855587658963310227227447591752932677221194556032399640856396232303357828827999460807013414732828076363287063960591963810057292931619369066772676703250240392692425029403906010109037396905186165048553264357345139186677959109282843016281572181873492684301724254725430764071110587325494749149002929109638682528163435073960926364125662231129081749056752400838736372656406812638511746538430932457713585403291713333684206269746117027539660605461509822252407598558539902808742530130765823805038266035273131789825729961213604877115260583759863673770437071152527570675706439077096323522187254508942404300347781174609119228437885130401113300612044979798079979552168061680698413780829515497190272222287542690457389928580312186408049840214803241416337444492783769939581637055459407483235258650716005245485833777197712897840153132539742518537884695394413008564160807452771534935178674100682405615737185466846997934672994088121493908686407854109095622398854013772453845701078907031873418627346197142500117748059523143558711878209685973416005111295641802448122588066956708674294649052626465565599793640728812288865035438530026907166435585127432523302793475763572132632271906355497499624730893546579117623064745608020534949977912200051948987170014645701929734422518660782509153791435340456361342883992666808870720663058240796867881142821879222519597867881948413684542048004135328069291866339137569200469024416140270660469706576639374791630839318056350044709357339343093133952605261517235965267452877302368198938766097105067346082577985274421693975210951183989110886527521986001386232572269627885708214554020072198484658229092541407020778327757245946773651444459731784527381944193563413606165526828550058349274263453139332364454995103621155400442592053823252232658234545207402715421108351696067375778829106520947824377016644540279546716660185861495270107641294531038539272278465563839891899459341136257240675753306690398644916967375314659948478490533280716923501622420870289438796125915721539053839289729021129451407423527591084630174496821137471457874914614333791478175831437948804243066488529069286580827207620725970723023474411885942279087080362270657021511480648952072425341484363763104587417158024365983848707228339106822546255955621110965520452976523547474927948023002319824617353216909537916848350778327448320108675657067898584776559314082012739274077436675357895524057754767282144653759070241284209829443371519670770752605664486966247908877200197260423209823575962564177156956350295438589330938799536373830464219876794080453199825243151027973864599569977653251866701085425164555292236480781506566953585508269479528718597266853156398822092868551797497434101623358644361502128362038544447080736464520046176127991906870389565229578684689199931595841708375640135578923501939714062296361339256552705649778173699105177779037614082603532174037561500436076787584771725378051815159114390975161876596393212448604130647356235442892439876346592559839172893278188340403124526303171804853222777561553359964273250619823626209450766814786517724094544770841576595198265949037382935566992424671794610626725915649509592271305435581509020829896623646635465552298734746744112747730937454868587271528548649786124836271961094879256740332737454339884030275150554002648599427620236900469739142971951769268729267987586185787252763812866163632776030742580378898005998460636863479013105269973976603819617419658171149291761986814697940301912271257906725605512819852886667452770722123435814766495449706581253776555679215810658839307394378725495922656406203412003709358219969609565244454500546287868537116594136214784214214199201647062087618373405227675202159895086661384282216067586558998403621002732227771457045874618922651958928875683497537861613550836568406976094881786510805967199465208151191711002195138889970831583678069528957556360443927958013735918619189961878110033282113269249323361225932720580739186312009384223979504808423160140128778205618925044145958977133192757765350307532635939821822912856616885640812991215305190037341198904349306778688038172916895510410945648978258507614748497220861574304143384242429365465534175890200687073214615800773036675606979751992370556524963357201315596489440278030390637835630309718617846742551933460528596661433316638218659231919519824239956270897094761621336875980983685319152012651770871589214693402384740366755010557409443708414263890617352036244519654130185236372391359260144092589246926005386426724849869349333267798136724973436951362421905156097313328023488911593231229779370753575727048940808833061539162917360788668335487035897084575232305528747550079322436958413688492537588505655257607230116088223426304901821028043381503543561698908433303608747636956192560532927693410487921906854318107908085644884404726615610952082573812339493446229599137931993409163517097712706737753626767188697120807433579950201759438424023764741448435460040839868913408184809545680928545247412873619865613012522103117406049084879565458488720916527545799079363419376879707583417434456497575750746626723402666272082179658508803497708103239753536834798610891373736946737314741113482326605600028340107209350617023648782155454436567619678167731655138009701786121925394549935489299886971004280224486431705384001336002979300699730897187003421898062615342816828367181148975266792304093378913410543777766254908135977129185414733522118322331208836156421849483399252512454192771164150647559025237484107883001215506251556296146252351840468331796608517612569903477175821468395010672865861832475917092435573651841497923213201368417609399249164075049720005656986461450795703698035661488599030810759310275327547185072448185049628048145149144122084535281508314419273421531307106271880832766710015547029541186732500018270927889392180143551247693788484661983646403770013774318409428407426019741049047112703717850285554732616997136040978364934796709107645604516890665467415069078948868467515852336266255618484545937464752508683879223982549438186774665916113928609485976175491580790221769892083362065660665658513284693963785437406317677781809272363907717581484875508495980354581519902824834743534575419207828424970894329879548525436017771372864619277450579630746324848187141760785847653467841181095641859379088609149887089764944250183534852207776419468284586355171578489734921294837568475087670921816170608039025064554377631046340378067945376801299775329597212676439714966071434929566866213588832298683565455637658479254889387265730321980058477645930246386238418323584740534482087644181109830636012000521261302778399111368806914561205471536747148019001670196143248465712113368651804499678021783877067242543526758011419052165025890766841589880838740747280751096483420681942350359263753696071610830007904087699247828079635659013227785988708646529661902941022938263284591162007716120405808108439706200985304973649799879548747964274539692907873627167736389516649446624717194791015174318972409289604908874857726097815324500291761640862795954632608060516398776680999749021799960357601583971888958747282617710233906929814008138393909554919387666162286925747478159492937297721895026481115360152564033438161324029618588910172658060222526174113981725952244284388809175529404728507772131440535072774498498768331680241424221635967841615039677227901859938816028683827301249227742986409304117718703312465800969048469588019992633188887380053242266519052276882256767419869621145736962298057027306998076416918539440829991151565738788302874857048705416659563298220833779316364072578106015953514564387499186640241734996458981992178821774804845998359313801258798885481266031454799706688217774289393848974263493969464567017268513408958481728186177179725374381883603308062896798280772109482195658621742036290254748246013113301841547881753224972006463002653308654893336831145171291278856698279618803248545879299644128063850565682473783169197393801339982711055705383041864787084138000001601553898571816324253637227152616182017675065235249312537296744063497298174772494979349816175236600776292966826287889926143967444764779804730370242165718920553766961505349468179491760055926626313667277495597813908185643510233009448439887655327497641975134226137357825131179207771138342222180898282453042930796348811803067508585076902695000388224671725387157405762623399649523352231800036780858941242075582005715433942930792028411575695222198330464857937059876531983817855890020188972009670685108578581915734609392594649796574902785939328941734960379664053351701816554958936288976571995480254970137268472163925008112073280655620684120264668350309296653052002526767535440831003744068605611952563726955149987422572149171274313224885728580193347526002380696234090505743564140993070966909115741027474522491046875549190836654855862511343490903924130494883905641569723114042491293919083144749562759642558093825823555416614035968256571708890890405932817793269275655006190639935040470820435912397832348699255534595283758410182468482047910318591574697508156383895821017245990333729865887002574386921395810664296033180507351876362781660474625550091078253955432700357808792220392089394167366498866615967222640701958658287974168506129299589925968960173233219714147563289783315028135772136551021605661792002341327995893727021491900179394427533286623454424309149669822235546801071314346858521606301402674443837878593926889952512599471971800118482201530324433827500377811625305503966261242358403500608756262745090158892009717405517637566799900540944004048510236380068333752554155350230775715576238777770967157244116198001410383008372459393725566753036730952387521421812852581888283869606177099540620319677800892146544880055462436292589137153332692628265779325461501971248691491214258752479620705385727303247721866995151218699011094852526854110768109088922989432902723215836821552201475475503772564226478776345965521909835914572300825464349047392752484322772601286298810373978139248395168200430429541602781211865424142348482318719015576119880574911953788884368670548220975476806300863695790925179067594723343601060001489828830560372896862611726658613766361484664028690510661820934195828195208612684732288374829009904022811912304665578408373004726622640806247473906656764635673513096769478477466498109290165516736616979197567661202707832305119412476176082791262241743387194575615482912411669593509502091261937431378876918438050299586583797642625832538915490634534709166886979079000782734257704860504814817413216103239836493512508784217446236779415726582591652172747911723031182321291881207992051163340554654183859897639997088158542974881623585381826766834794974672837523065187376791462930001412336748906637927116602308765071155435796179885011146896356713155193381531712446495465729869514857538631789571575849269359502330627413786953173585627775388822206354295097651548466970092680395167717604684781588039654699384563827731376248467891456317665139344141822986979309311017318367848465670094635223744927418323470065230957673471667045147070316806150908200676338130488502727048241525613258328941551847066078360120794680313981914263500093953429251157758977085743830294205235639482345843505342072625199628642667567632242850341819298097068143817529243380847629933329554095379590033859309999111187477155358027022216804376696371677869728318265993289353240232010914185480602343910701000763427963025230573225052716023072610646273943987871193332694088114430921311166353284425871044957098159845816045006526826613588905088613460744172131806319090043779066419024937609325778365252684317839317209985963019176538260084745990370332468993502249962261115702835354452294792214126982804499309857280607589933219998888073736091347588203330207061841845313153975899425837428984595340698305211773599066482992904192587420901744989110614892137507544367903605087199777793604690105003494082153457901258494467837163622030568729099452128571005635950574728790340853340670946345874813322074101034484420674382673980477302519612004355045724733422443097308760855750930034212664406442363082017742636033068184427544544013138328884864896129527270237163500011364523115086796496585131275741162431320167710191272175031512986400788223720384029115806086038714005718511261368837517075108872516872775537686473468587553989196688865141415710419724150797362416470254053345802709040369319423063371891121015759257565765408240817530235972343241263378615585755368715583222950857835507466307939817333520652090808678650588195419111272150548959064057285948748494166520872433916416533286179571425623641218807113311035105288439214099462286200950680644686614135860021833082418294094469674489123315673342408993144597306304278622690387113246327603758707257706451158417607962582257108221695594105183470491049564199730333445512796500869938536052502523449250857454384290215196616521594094016193561715959091747812022159445493652267672156324876459431550596523408969898008284572696505711798938556467528214036862115576377510618470427368865582561959046657386794925128742626279110544302652532932242074008206602368729614203847794031056967222374296154297244534238962273390021211087868658192133074056017855338332532266663417280929153548656175374458770760679941916824766893444315430255610232784810954484686851099897379879481183981426353891093620681714033084715797512482472135846064802322308590321602642771361962392673900105650867288582833202025605216635910406889245506941263117203673048929219219951579011947496737386588310846431250747174083277637380306135261463582809361169730790337512865327312540259177498548136445206938031915476641766706951928023896265828223537995946907696841715741281652951705180426350932313856881350818483535762183413347239287013497071915691253514923577993142241227649979963973351374645871561943771712452406467015576544795367031178894441016794875583262819960148597251498887358059776542032144510388453897558581120348227693913312871760287411414961466958018503258147149092302631244455604674584448624198933722237173399684546561434104274275428141570540434459524424987002772370717398040205302504497733758899263892418143753567084322141519608527394250151173062057344150282484078697402771789875318456891859359805942787365977714401316642619316296929839261418689368218365176664916554893902835144277603540110545144122524785490423013579577150243088014408399582801219707245239277025195774856225187483405264391673319308501321758287888879956802049400181015040163909067586503848877533535852618239428500715371163349772231278221494521533364248735685714700194594010976687563086966371535328872476781621901370542716959879701914114719905565493887074679885378017887075242730710684882900044926561852271627229447529084274241021121852055892376749104270019630646510546309116535383603726693009051425694722294351013106681858330360742040235580974390275341769761900717404094699674955163695830320862087408961111818316196706982000514577513997888994061024432091601182137149050743056335550882768311492680597320966201134422680762325830651524721249238443298640579742376633103122865029066993669950171949706765283330059508070928800436635145336510687659353560196627531163773557950801731032590307707149546490730176294622669477630887145689030514822796107688976183253725706672298439823452989176148202993513128317435454620141918193146048522326437180842772504053315756994577424772057496079482070368657924997373279409109045050181371947317577342060324593312534253823263144542777426079363321647661739234390782574575946229247289038726965853374301882422152539903065315402003098883182343307031382093087633070361006913118305417204608324413852764999431260069984959164519661668262950120242555942634878687939569208547027417366353555454782689958037531701295890082981122406502228547769186688686327475099424962740802409181939691775622703040520046696620631682345811954030839939627246452533142604934991594947365987353707776294498374723158637569562032092028242902357051689219773352780716957280630796349938907286447803613200800555996948404786081479748288409637354325277896171705531316498203953593727040917533876685428648747211983864903147579514743762859372750381668689309037302780536734693905561775623241963285256045893931502455619533421675371042085331643556929444739048159716792838617252868936473296588758104102423898645062984638109556514388450671708426850812133925500758635021710776732732715357909280269593297625460324799441969578144802202019288738336831884226452407118123365904898396765759003000155942224350206574918673328319411994005431157783628144094293196690387413171196242983702897805043089583652072703474419171990033034559585298331363995218892794966141453075157478622430899632402958758886850524060340683208279610862478533960326536856154575536652586743258488834916428994174455347381171293813199884087640891958882401888054247194559312987775882238957348162797980572671091236407509789537678575317693026594299866875352134212364076451649169147202058635458492555953741909920805828122268437050863339043432057430826124727875733623406218712794502187603417294066410084410504560869936720006006991806077155427486384666936868519601344746302798946902155308479216256631927018104129282100500613368903055199334411440719944329454767907138122404566831269000837179221666673986423792904430887324605214071432956917602311986532044985075736711334977248211451324576268029174114105465456981907826967146954386836992600820496236977464254355446590208540184195700597826075174937695399125011160533654044910946543483833211650708896717421654504341770903551672177954790047909870321437083759994253929272028234276642192692735401679870884975992348805995310031387082039259753475860208200288571335135147778139425174481589310164833021994032134766005784935236778603265742095685300762889050152263362592642192382205718501087245958694549227511125703953458710878557428339526134442984204070893973591165340053079647723110999104133147460587857798192735196194973781230983732242040635895186428532676911433830347293421940312422247771533844740498480069554440157820570781814522845739181399700835753366562771222110943108973469901791707004852630424077248925926665227302800976574741821289891656695063517314388647865187669247334935795006256849104488521037362702854053651689363933317510838657491467457206734530091641102822834110422833638112569150846427315263731064428034253938176199649265326612032649688997697763359786474974968749255973869445800545880687120159303992147144394606684550485546087300803061613843484328818455504837039011004458281589447648897583517997560490392550483550459817682076203989587267749532484234273635184922469158938014998399534718270231723351147449644699480395979218766817400936064411800203750847422202892409224418168435621548110432865457492182039665877985314531993900856063368894989821155798939320278806431395453127099751829275701917661297131380834039544316551388095096961615496024983976247775568016705107049538645331707938025140615183513829527893919177466549969049870463891113320756523436000486993820359405177710814404216990206857441513268726771767867302988942060431880469817502301582291337909764759977441847527862994275943577307967525364062585968804093688444194834271959538624673304257003800520642123926270660461763883454293196291580257700505539621355759339817740860502387627719910509111765261335489157891594174772880419171322164924330899734704092159330117953724499668081303590422747753075301752078740268976594983055450609040001180123147479050817804934143066025987390099675144469386715297204399651898727142115703640781869562071564531558920433027835055173356293578877397477548443373955703760609303949106326224738810550763083357569092439770168348632327395844688121011020260809008164425919484623085017263855909869040693751052851808755963024966781655831624227597954006092224676981134061137938909644955354523982616316452475571957098730513883161656821693473100312232539409573872579811148341600888488472697264219246293313413510918211106260160154393719433142212979794693603888364503641054144943274430490677456957888569861233445873888443498526437988614580430311463404747596861749299071543505615482555773720018642375372024931106326652872612285806094281671108590803712322732317492453280742599484708056318182762178259883379725727000019506648186017413343966780808585055957895917802560613623504625955812659355379238773910352483044609837196281655118631952096929574557191771006811338696094798387715753124969024543607699119898317561847447558731530584760395374659409173707522033338124343601796699796915607347421162213427213382717645274154187547208631977127713400308056808868177415361849820528396515137603210069709007140514059107238919749706115753620896470399622783016866904714990546053050996817845765221009362602173198910960178952452810941527919658897022259332832317433745786097888726247877529582895731104021284061811850636063905044677154394023011263233895533421249372215670378236087207454623513665459124184447341502266031837575293302750340882398886134417180633617513375554382300716684235608181025308738615063238526821751562693874085941243915045288582341465534362165760627504601070178499632469379155395099460085442307976781657752855970687043402677112251735055099906503698408940043196313901681113011227584881690754328477747708128779160822711010757382980405071822864123387335709491146122039594447023595757304701119919128533223978189238558022841490613842541893928682169529812280101884106659285644132851522977523250482680598258164836102598397394899847345564653755908864070261979132520351013050047973700322897374836709640738723910666621812729367312062836514001620296396575017691181532860103586162655866625353367481787871114729709513529557330603431996208294965915947772331147159572378086329156486901628012656384157460645741601969512028527850116904698696113205479093047195978718541509508269801545180984012272887044296209928403759372475666912066404088398552240496021198378814158257589604543019177685695252084781075464726964741134772639998035236334946516820235912685624916523013024907656831665893363177868292140818317971258630373975242916763164479815881777477088289330568932537369906569147954439360445875170787805586832923365520328840341284195734575442562526497747329548423818315191501831561809974911020150603357404874953616764304819372364161387332652635966669146909956659233552438684031735756297995400059994376810454733352901929027800672995570092602087959565020532461110918625107342666494888753481540346303860813035036578887403318482331601728942564025429031225390667958448062446720922344468756813328333310930041906758509986677841866234352164260444524127434177185430170739782804417509520381029012048704615411633957878497798236765678961104765698241591861685124090184845265273113176928820212204523298248442957292001704478283492176406844790862352908480126055893624872400523019108875801412933670418261757765009628499096141517942484026380587404658686792614594309500105495818138989513201812834960619744370351750700802953491048062079753784948260465308945219391030049849404658708633923041080262787997594935558498057313623587967246763823445531905764719066129275820364460385419128595318937703362572701146163582781057413968232756055926514766796796794561261412536641607669192060105126434000638628832045831592462900163680367342526730475358919091361973005573160918100093186324530204123128483255334268326874549054719493677619269368724717299982740228558565478639093406849159282221549605234571227763811659396549061356726686459147871138908401557105895325942727592296929998130397080407750873936938406869400840310587117805202792992828903265349684543769115057317905535808468203613570462727703687872902403334112556014199559414032947175042140151848766433154621876066818129432368381845385431685658514849730625538584381975091299591946882373793019417458357917836333982398048957228345401262539646015306139445258885962626405585243134136764404190714978075245469707060300702248588359855041437168315870601182671780991455753609127490003747179265012511376448833219837678918279767803700986099555848484901266699664777105175456637714464337244692356425498296766996587646103957775648220498540966540387636589575047670306404710533077476558033076911917949082956451952384015489078547607890581546554960922270550096624172090647302263274568422304065433597889723950072833264787015723900900622389151627682516061947118699779459721199780264110083322749729343641059313854315461077619011890542874923814144836762346449016645865732348598391218613968792612673958565221296051027255905458158421779586073245355309053919051054539795078041528259333145235469336507847987522935664113867440333914213192476373844489613489513440089717553886111454937848640534146750555755280336670940377845287720940772417939109334277136898729149508328875675716606521573423532760200740892618022871274873405234356561483709507114860890790180783435642657900000320904654546765994293233879728377094110462968840732229005159609401868498431428078812767989551026179477766531934087243641562520798788967158883031014336149630858122430345551435595393749989899460294586198635802040362424150473720880313770187845934805640320418456236493738377506718124902715325202343937491312866533779405371796443391456291856877617609265500097687325570489898309673674846604606664109501158330758587696455076820626582548984195766971512658775889902696326681612717985619228494529284323208537462194133840201330410326365652844390209649072537021246626842490292610128675396708543139832881146305884521796727335139887109080374993676109565372093196454359815781783532137393007583280870595563209080854103655955547455079034013881073640451399116808494428565694368224369753175539741573888477024568947559742580519785331442685289987549174663353507041573038612341570514639610382302303151082153483355055542344231262955961717455070007787122837125834729800876211627975889272841851761098491796530229961032667159120403363381724035858102879032965298353673083595956789885735283960717093093014026202121602080552961119996485631935095378608056515887075419506202004704165850260257233331775586941658602812423279325205887791728150561151958570958515772012436754996028967501786711260748089534518698386988345607010285474473006674608492394397768614996083783229689925240983521771742873900585432131616835703492062470574331633551297430519125101864462570485113822973672967229375675717119187385176381218847293014147616794862588599162152698648107645707814800001298812712126515006677059371145600745418943812034506412595132510389397415798626328168677029382051745484718129831486426810623633283148179072501751982418828371233332451432729986537875487513578336326767618179298611284313030393251220690051834752288467618896535860286691360215589205757631475953817041738113213896475036062546306133323771790301429196612398979078061139678952245533121645811101709684503373029787197100074167577922053299674918828441614526563972334144480489005489003382764547357788416959289155315376211578113214049287630588705097548349602277509208266716167146412488111423647080827127256627502722809567650624531570055671358289563264307227882974524591283896150503277184951256494855397841270612432929984073907780428471652802394060534919198420255154881048232327505371523841788305567353221896461765411525534226028251834985318879962873411038192611262148261852936737059917870397920603184254191731955159872993153386528534490152937898765860260365326312404424908850336391505211216334586797936399334031702851128618751299354784731232623755824517989658831745503398090160169242626170129735486469579929143781043502620856826521370834715082451198887965061653286006132000659871469089864807123299570878035467314222222824422700803544659218455877780036669465612918746387762936994820597710702665820930950857085071460533953728972193561938061938174318853163990241515280599140041966082590012141697505642815578477772026338666855551206129304134826557000997830426511030459136347725857153554051898970332611267881100339142736186833595660933779981966935383572093526075023063305228235816300432584579336834323297886899466164655018966941874236823746871955770439383112381172261776094609177750021249912709913236725025850390759559096352419180369076740314813128979201316851742494163054337823863071839680885566933738468494189243513750214708454677622726162348210677801773605883153526123013997130882401137153155971600352716157803526342370353156816172565255804588947131509360120908065038279355181530241786022144084609198963021289672479616181015446552546412079711778896883002188011425224865195380031887514938176674361190193753789304619477878077879872670281140283407562134533617373374021165846339004083822502155954861338813606537118078598887357827943079535111551114216268286758069065043439059876859904110416406006288213274924196828131311093406372987148945339937336269419910198177434942672897792537845553499265362331663689454079673012726302507191627970138046762806809002067826619840888385910919059666509887556481354634014456616396242651952339175984624655950468143052394099662018267930048598847604812683364040460922536953107959020325904483182465493380073173657267761196275408548349181013747078454969345549666569779691643067253407302520317680475733338843502717543483789923002345895321963554498877283701833312084400791603159994427702958369059231677304485681679653781297218588360262357916218745431760534361249535704820655460295161254656694836646618326372631317936665531319993261284630275481951940262136706518957977921825142297579168170415539087011711600825199834065196664862090507304121309648613931082070065053307884758067868721314854813382156902513341990602994919176656316780246257853822321555814237992934569265580270747491079607782113869138871258071027992572775509387994055303221676157057280096378271633037926957800179591474398649732429941033319469598538819941168183085740023576450659132571077239201638296571008906073926713502472689019295559465131110855126454178085071785877562681451396295834822411825805330258481695047475558917179216248298377065025412366242921105450039710744805551595384202039528858521646390173069155297124685749042953414970668145137176891139042160171074393555903663429764811857476123569059146544464534737885212623977393045726505245389130231930828700020587399787207721918126488697559934739071486911928677409251017094813140759217939199927046229967116202194971585038184266665946697890863133943808587120001148753629218325278140078861078740081781424318428726018338429555635354625190206502672961806175104874770104269444931722923115202430202392348721190227166256423721719093269302678118525002482550987709664769963558191013894669074004646412795894129752760781465733484286217762375299929885616227760272888086723156081690872510865717184919319483793876845993081899733743277108789843086098931163434569046403788009121844935565715934599333156759237576541561668054376736212100894484750075125992241694957874296042268527049712251997919276057183571692243596266051791459882792551454132654152802891552210066180886968818242944332721793866601946527052677429929132095260830144026301827203428764725450298063917489021260609327755633226591831446007605950886415088343807694274855799034996707645382057340498970085720988106572274443178929611042296441253993070320897950875201849016298981437771197598936298378737604951016191380951525476627397499493553283182589080995102282465735608644609890507880974881601610027055150425556266622457710460340814898231064158541145601716077127400805516792607712961951316589809850865428421913914759028442553093414226613567895293152270120758783136710916777912089491138960629635705910802801916877098486930331096147409153476532944599544787080243820328608977234217572397145384923375750960402898468308741145793535478825095749500892653819507366250498858989837267679032979169802266063965070990017266776253845898827435894273943944350817470253697523297362088344751244131932516078754728308609467824073719458243381281051976859534504265589832642861828484036779386677196338396799463612251580863150157511905106203541198799958211391346555594413531734591252498486289083932773241695537048809468860335930128111820783718214832278693749695806918951098640366141146582385752091224813812487393361308861384174513309310086977833157591641913768376219867889040858430779720222021298571362526939612947092396119430650810319357665738428397998427140449841939104411660131573008976070216694994795918003106029296696371554659396715991980629465962189560926435037617474778128644891529040300738337226585047984399337246208206236677624082839240726865339902793223418960357266790116237268292699018441502119769389785140804399563372017514403140932612081474780076547650651741071143346839010771054388553416510360285307069692754266283019076906183428949048900882300360483841538317399869272557434048364615826997965485376795545362699940278848232829965919281517094549136820323135584099966090413511747217056351891777279292029536449731708483126105158023194019918846633737281082931702224627099128477951356485299258451059740147959422514105028801047698987936010211702645405574125665847702079675047544630991730345891667516824185468252045111953158270113333877863673073110024315719697997357265036839923336429993675906348228729393255601478097221897727324647891074344678225188622305593382613146276223862063267591309009260518211016130976518491370765851785514937118845255811521418672537669932784867193908994979529941140179576991312632190015654314880329425754679234425213153338737533132763136023023163705494893984238847371747688753664363456874670236426851689649762750214150265418379888818272720924817436081319975776640177512522302680608241906802939828344193169618989103558291378176845607717634990427030905138304793598379994559198434268844630326791509193597190910615344716707801827253641628408798018343192686560156435754920004799780021916789991685391466560396364091298427036911017849631516778367833552937994843878657333258875968025846743916261221099772795756380589226667223457913766676672028782605616796127796008155555023782198988655967149745972536596174375099175583632773211630824500623906067161950751351324792792147732169049948342649323126467903488076484590816934510118327134985430672820122352119289720984336779324330488131098270844633000182480415651970756064211914952410439894712903779763296039115233111004190455060502585227323184511610452699261583313753303183757914306957003047435878665022082985375742603387300659389519514157817492603163538041268972271816027857466253826453306081608275464302524277626583494628773383114632582179736685871086505046536609792046532038326823675004424751472543354153813598203858602182256580833499855357136727849319757875936750827797178030584453320890777843002917990637417933432831779991666344755647384355668511219223969485380099692365699909680099862124031181680086862240910520180288266759775349179501288573905375230252660463226515357536701879946220415803590156815661715809494092815007447901677913132477777317962435774176920183219679821590462211123066462339975816436439606213019960725707579254308968298423974570757701759972597432217391237834483539164804818241683007857906999866074944176428114420037421122090742320883703618624049910018197554547879978510862232392361209333292325322787843032485150199699095518756838853597005263763209937177780810523168480122906573545428043431370892559432988554969538116198774208255488200700102513259244847271610442707929191173834482887768507921449640173800623131411852591823805841202725216968759108689919953062924178503397796646579954314209530098102831410837452763073897972962832278198212544243993482497419381931258041856141868484575901775111014889191856343073827411520970840101315747624656541521243863881575888699842186623592939722771651564603763807499227096134117351796877516697003230099403825856323090130456435048116911271139623924790238017703255597690480057949811090147632242031542158998346308249964583724368145132746846362828645346247552888371581038559534953201330723994138548013254273515938370552574901643472608528099466107004364307828160995756347010551229116115772842204728807089592444309805477115816627077148775598728313955634482726338311390482515486805622019401677972628054511899459434990181133863480104032767673213151560772791284217776474107305024685410355650465271142860849482545750997821650405007055153538495708570186591290051518041563651572392533379893445696316355150115078861337134963776983345549675343064632014776673288844264609333875208611458031656152627983733773853475004072705204350404624177060034786632119091603238145334904194426855692034092215724753441572174962020588738079006532883994295125016750949440273891744418061706163088726639397727612794693616436950140982530686132743390251046228413708213002785185761029291582206273209887434864429877574844630096175227758848893607547151402157660599521730123611831463910816517442481646842440683168367343637175633984687244376499518427590425099451025103910101037576096070946954408741522994821994972002386376292179998192607889841171419131523048902705269318211924274095956036013917785829483934684779361781978822495068344118161987369130849693078621170875940870425405198439358010914100697877389314225206482041451966313215289312639631368796296043338822223318628329426168998372621835200653401025201836592017492361745921033211423785610634892637358629016598589610256819140466367432900197635356760111440608313463958600109807274871982843128702657709099931662369811145072728390173086281351480377926829173500735000875782529976545122398043182042124558758679068583547672528018138568156703087051536443282754601750323234598033406725718455105532178341557366934122619271989843258472113902028824668463610505651428136819540359509377067971587448647763334887270480723218787819217741941670694968791028708679442625874893490661972127815882765971507439484157820268284696409348884991918988469023185039425695575987847951403654181846603718259535293946969112753540712160693911383481634583257722840692386659879547708136872550301053034052573833140071826481243002072453977509596846600835379291247179636472922473135305866426321157784541236433149458501608042219261428101735098413631196724505485380643873376174247865959623881301257213074017103827660821381178726892503985846014972677023532161783495440485025132899402410386590086409170106728702480855045831314189798403267855210312615283517332528213034087869939873570031936980772053008052338102039339187807333869545594581826706068428559885787804778597431650951661656082327881367471544154638716016414939042194926832671540198128365190103290586199529138910740102689499399214465174181893538076391907810644077358125587566477106607082457199201401222724044685925480309118907809868032782893729415839960794036514914544581632256045842942061945830251806403041190770822789125116539712825410392724656149780487952952686784396699516555721503043048840534011547527470159061370558447854801382316803481090498777956304902022755748007420180613922885801559055607254247469433233018075463015385203423722571320807376013072523124281284139572426429085989471128889078581904800430800076484122935714810484907876352824334721869673744896505502675495022761758041793660978457043727790705966230990472761434966486126399597369058006531419131951162453185959414208305740649671857912058040949091073999645493838437169874977547185871397879777203026848707137633591539481985379202378353221040331752837815665455207863919534919846873793829740290219226561212793462426669110261033613666190333269559759134896735904681574379529439800296631567545059036317143933017564170325073374157654778389690419502109698057698961535161910104734904209374150493563850451899058045046768849374559495690499519282014335696569328434980291571583353052815042695500036978277939156437483888544030363115311877678709021607498620992376158865657936632857086391205916125687308276084765513911777149732520387369456643315605069690840838360808653238561608876409838185357848881246522333997011238193082380419653496083733526345053695715835264933776336444751985594782424485655900190924922945930673956575900286017587797641309872781758478392329010911963471693695461951597891500484072620361011182082220383942617355400999715902533634809106642019116732252660318262420629600708773265732093932929250559183445073633473546591287816798741540441584753709441584179112679083971265985795065665111789591298909106943620537702324474348565689736402510536860801474660127614988706722856347297982435440012855889814425080366128694077458685461377542606922916107828816045508540623949057952959206828231090737440775797317347514606593269332189884492843146228792804944920772806142369910128972108260910691003525553240652983237204961556613442429537203462185796412834887105268047069411655503267734562978886514126677737374603912758492493809220338010286719561426090392265023849626247161929434796266729110364579867030163930600959091047688950664789923888707823314322868175742148911045627156317119436699238560890539805957578489538092981176784742691504011432857896945502509622856402834296486050450540105851484021065576443723322210605077329987371217587466385148762460498723015670976652194718687253373604651993695094680468570094959096867628504351120618280138765351061060798037745251112786151796381841938187192221913307272849923540744364667113081926353280036167840173719065582896426570524994307353014173798745092066441034139724625420114104491296481594896654033140963226244302543257029841226536777505123570514569537497443865073019985113879488050122614101749218878459140892368751181857397575233010081265256056767256721245073032269101214166660133359996162586412915858182337383113322497705390300449179054326861506481174304082253787747042032251206012128782388802113663240418232207007306140084674313971120090921823068745342913064664198873773355928593890448303402979142748331908657945737616748942060888813466179024488587275613344409504786394810669814646209033765766919020945532818627621858297240948455781851735220171447086618911725104318558181291961031472605323821818346426509325023961820433930702447821390429281909567992383736461878931417973747249132961727775747281618110622076742501692140675299909575500079097015795237233264427599202699022000731589905427309836116243223372140846241850577969170754879705945401307869505148116259169046259104938882978774071015612286162236528142120621637776068705743937685543241047716845639085177805690073448211250584399638450373511862655659777721557515751712359582111897953807069972516285567760731983286314771623107015289998867412384632430487254944080108562687527574329178548557630547939756515064692189681433478116104449651651876137408688940905874302491943808932197920884705536553392367005546045184816630433288654734545117635748202688944352424816059304984571433420097013964311583249887768166413328046545249642196093496477120869743292217640443257670133464628187753634980996150173240423473512666628041069510566860347471787922651432430549868774726970531243696984904481048998664049841050692348105122144985908461739906129440808498263121222331168509785312101286818407338747234444653742041609342388838991707273056438068515885973049631211992933040984442615279904196664714545873748574196345270110837912171686579628145551795281872692762451417463417968744213697527296622830124109702188586746843217229618114695003471983127285995866146518193723687270453545744960179530341002542584439730786559621223050987448713786707653656973210939920737253913984592078587728984798566724745012611549630935946047784595508540946853167881219589135476320765277498914045641078596270821058388828072021636511802480578744252168967513615212587738148510048350003395208142206565658472086570605403277426665909038743593139318903022115858551859649992708784035896072806701736328506363059065559195042806386925228274962232419919789281894861243873992895635215273267780238948398651738744607422904900269827977068482554881501797928647238591513081368292585532995086311281172118055234466649623607323858504921334166249566527594840066668187543541007681420144910014962769063686384184694829658770402470980182984844522221051683815318086513072436253874914282346275949882556373920234443811805122029259965783522398974265179809864810702571454962200910990304457260488469946341575452796371321085435746623347355888259670353126497020011236050769651059352661391766258533680134854680501016402485894780271762809429329240941267079095306774824290413292740837738169954121139737552092922950966866632846083286625197701018319383602281547247054388303316822221861645154810938776177396113200781098562779166841108045223869336204215316334982373881995855245014762314944380081068279668521044130711226469174021159455906461287187332649979612934232433737052763139178654271559198177212792099659284422960956385879212512754416390244616237939042209060866157595261855724784131352347736162440606644286996286529758115242712593384793705858945410540059469475271502069606591068998064004912896067663075100620068704938201461872924028529130911793142801453629497271421012643164574090571101302656191316174503298160616801390814421293569076716189223108464661060867876972555477236655341017735685448767400251948534950658118869020601742019777348476398802591319544266714581843810863394135930393908720560357231642148991909790040877774335247761419212885370618468661612984487079566945388881441602834633019216965335439951561219205013982968659452410070286649161627645227949845876897416047939846075676026500005630653576506073311577706225893017263381657673121697102412855297424723178167715565649788579852616829817417958674105318882491285790259746594339049854756908257753794264560496577170847313050087929710403008095388245279014518817769672821601881482840122596238541618439287151748470013327307186827775502260919930355629745993983351314628439442180192292873570568432910551115757899009215563737276676633081235980127883133027129498611541926954612283656895408272152038373034856502118027504122840297052300730436950278517536851835933303571141136475040914901594513353976938552679563521676638363673533538294751573032254043720199043350374873381818312261191986723126148488241897456006530054325290852418517709919819942099624551483784270278102715273344224626488100532824330426953904108168002308672623001550335814157899201751682800542020914054113107860191601300776130630364172567229076602139857680421085020269581637763076202618809317749689669274112617945091935204397404341876854757540228698553758265001431036299754150914198157689373730451658011270690903200885924242156571885829288200635187445576770544097093316818851160799534345631916340529018096521545558971783629066277937361729832257675194418319146553052577173763526721831985725705298761220341547874567132188357065073567735059655713228543928317006398040405167604479116580025527658608747488932747551948263333560581905842316213491142380382652571426639550891918739060101143567936464558885554629082864407274184788327606633146160462359720951632676161871698190776131296644914806846537492678843049831790824567539008934088810260440881630489871591840319131360387732791475967282364928137876731766223113125699670055867293842888504283943096524381825759608823507393619463926212165434742475311875123383842926589062016732153557632611140341515874714134589811043841587110464914712497004721802335518021085353470332986720179352699223968963217730167060168401979351360623465489943348746680472208210199932525624792228596753415343604798700834641035278261249929976445538341903181563315264582684856421860050556631757333342945678915288212647462595201228659818070822124288096857346450696237660415344969147961449258648902697211676691371360637785083961593900350654753942687824428593458074991595110891354244241240199146188310357841693738204967071889389437338688529179402911321698720110577614849450704432531883487702406852989550050370375848738722058407840912342176446469674385560175973069997845220079433538105625193059525369111686277229646738335990284069130596682105869428131977696879298002382983969829295168949053192138086976462940198739480924680952976488755944327154908713979120604922008046361794880661781554433768999578813487773322047549342643228852108595779918387776785603502301782642981878069146727793121910908579743889931663786059255465593450283789000268671450883652455330688925961736845961180358852497647143784766677476928862869509422231053573527885170521131004797081095147276852517097448332342398359244282508117404157865961982031132075223654272334393155556330143588102705668547164678459398958616745701939988954429254249586470638728250347877377834004630141735264037170380173155083173079614301148652962873704394195636040305066510163913765824411703675917988195484189839421574555016665501762396067838496538434640876205532748486261586621063325773071068724645894787036337897922026243620805679804392002933742012477167529357341188904920314946500990009874524625063599489873565539111583543553709794835663916374573639529631028379134554440413956940299911413187772708394445341492110533623060579773593332825722642038210842638124135972539490789940958104299316167636728526158273299493128760139233482699876196858630511282167610921283791108970564133852829104221031486849804531423500108897581502752342199999237154946707941319582510425908891705813591372420437597646221146312049808519472390170862855015915157313310723179340977643883367774834908194424902233011023668733102982448505789946982004957771299931964905019799617646087323567834872399501172614285334072170497205575538278317968967282849866220654309418924428238229169502591546417569274749352082436350524384199529788290953694064360042860411336583304304502388156623121190614498509677070103676453870899781232273426987781842119732424066328788827571085544967611213129183907510089861619035219755339367691610299264984643271739019500052874116029474939344262726365471000656243191937064267452360470501038371643331491946767894610305864059834443462251782943520185104120397514710139440524544230222484408357595165297671518052859931379153309752554163628249590726997039646948820819172814294611185645143863953052495359711623317036495088425879824667892465925733799367031419375172320577763296274008913376858727135455555168840943174470613588590976914243277105715140480237916520033448156352013120927139119782831854634395384600307837125081411944438261798660750937574097479132416552074421219201023225447852910915893351880824755310268756005264208683895400957758235951063655358216809895808162745678662584953722866341025975741581450166090341418164297327886320213643013115409138108739449436019837116242450113282708637470285856902627891008415773644011288216506405515749194016348095303314455055471111398294389033116392951824779832869753592567842165035930719942062293807680485659126866835869254116814947432747461358980704257810196040196324288471444547914303271151370430803179001773438090899404240506252111542829829854412581024289762269110075210519185042785729265594180225763421310399812058314073818085831978160659293076091378215701399384029462402121446759804009968018728669438377435308017930835245835990693952189335931684271876082751105106931817824118857182331273195246142407624787519377232883447001843354385906099773250291319120214280459733337034652994225870730001903905401881488641565391841525967285156412650972180964356809841669365900557789820645493133971207891931186284965751967680231371491560443748116807043415062132084287348690383924885109169322021137417288710044021493763959406426119795908556878319777881566970273221757743535399139507049196454868195028781126339900711609042697183469239063676329769606275159614387634389019075411025495017872595845585505074677212912986374515022691038506526664333646291426184261133727611431353984864673032328452278633420657017398934250273472659318846437839657659332783202224747527927620332185038179942769271812248072736389223454300477494481376187906903843402174465297854267166142918635711520555949578399095173862686919800866758798677668724387172510734451038522227567771924893658245039228462435055610345325699986188073727482142518733306338431715041767008190866852031191052501568301978620641913144022844932055615599673431429358434124778288883632305754839295029279987827754418589792828850001505080871855371676809915585542301733690183076134538601615956998128990766017670581463570256088863824940132673121550424971676494586182967646076081758339982706468329813252066608181010026956609439221262360180007679648913878309333109152799311201550946295840881353853906553390926372722550752657320363042344889646843325973173568584599679949796920966140706380102274208447934247038580165942476897822860929161859288919471610418497838058767564318050030414786858341352688819311027339177827432746237363793080591806488679822743179793997864983923247580954928026111973947160880272222887328832710404098351004058383352712083989392443530678959785667746724671119572146555291131691282110639506277540937616835006314708754476052381951732367344010223467434753389504889394738134500055176564364014627736493856186240269546200909289183647846858125727206996434440278090245655876250521030845622483093038140552170342224555876339411361810823962336539049721768110021128896579462950056150166755264829086893546327230831555170679640615014806734375169495267790920390859336965717068751793334466824014855211555282480263724764796890691925968683494330544964809909914195654405524060994763628577276920251306499409558126954473336764355536313983801700322237116878559361509232304723752071349054210806126584045338672298160177086612506591889884332777992813052777268819301799091684520890540353268707050364174077433511504623641647197901713795038930458688022891568625121619629415577157882152353964649521854041800015835489164017432034835489118850749398660407829771177283029465365879039484635665846345259518400366773932076673771780078821053081111680402739611398940057080979916240415461024238807481633470098507232839343292073835857698564027448639800095609326235905329678017578900851946272017119329136755192029774119116493353173338565472030235404680559323222164605304092393390140536952500033413653527355140253446052607196127600027384599641893234989842062301829752196687658222573327747471754182484147248300052367637326460326387463617714179814934547952429988542264529238388373834016951869332242227405852366115966649295764628708256759550845110108087622648185470491862052951731871043570081536509462246999879147567560949870723646063618113489043419854615319442857064965145471333791507089947715453936586892167143803650941610811584233208767034608560619793255857696427276396122000651848831966404117031898536409324673809353129835775694011373500004062746318468820114514751999403355313138099215489881625272185458538767149619121558416756904555387911818957128290387060270022237906852830631414908314680295040866097695302101721799321732365241198062807216090565571223692472393096720240548756725133482279050817860880622859214638880195918825693186047972874204765288395765773791591823147643762678135918562883618905103503868915069542124535087980676505269656258136260418472585300358977494319086845824981487393306574653598178971924926986696631893188136901682246807972770284368707638358363073681446489545582244219133194521416172248897448264380157355798690079135549846133483353160993120006973830675255983662617880821056111344121262009876264323291187780749926368809741704653902609518083307536248568672304789140896855178454652107520105439636400623639711906073223508324279303588780678342158222472380695839157855791388743230755469566387418027409640299929280795144670127028934015619941372672693637182110572550663937316877290963071026462340246746494355630660721198722116368279165837686714433295448324358959230916200283202780448497490872433970354222627653895466610231898496824427794026192336310129362728108404242210591629119362509224737876267448986585947987134408837362921203062114106369301535835452024058804428645457567779750493313136175710770938778009860644881350854553880962959524477416769482946839623089124781668039558204401034112509913180253534514388085362690618824649051618709313991828184368787605778816718347237888071775537432235579262984226758920862218332097577936280446269294044460788659166026711845933098450582898589211602565776090872915263569934022672846625517076067568438873621534064953997524381703368695215222374749712320650332969054428962766898287786139783108044121868243945177045592434162085284772591450200195927790249119473412506563623024787057488217625419954410975708462269580453494697808671253975752247051316262184987522616421707531044086462018605340945978828126202622663109097018177113620930657305945580663969646931838671664257760046087894470191019956352542986994101213977110485259020081820361065757921811135928147878116718377384661974768169246067929949913329439014250163859410783312146785577599349328555216714920606102271126504899762836399357110497157400339820441326820637960134941800806116660921864042035159289755804959393250913923222043674429612572075162265504337764395669698369017427652190008149979409104105200929747306925726587944317982484477132595634132619186286502530377070785768926097173472456890502287387113954213392022979110741899975161545135966116414176599191464179041081599111536663338968153840810590389820557411217036051444409703817975148807902163832424646189902551772865542200111015986789838982697265749202045440013823774048748220088100961256035205874481442080348318163819862806116449414685897311271017894459920542566313067630548666510687775766896412519871477883501943166684323924657923229865853764506573145147411340190045933800859513932327929042302011624820561736269831488541092853240414943063381974151910126700239691295106626799424114488993370308176696734379625061477558188286262868004321642725000004612784967568131089913808041620422047957638593681239822329994022876899468789105379917567809798434927531534431426417850563591321926985821808254266295213117537524909751861549576351053722435798132931653302647236638066085759069824842939325918397608569659023304600884052320250820047251253928747811054128915016776932296417621097576068046151391030612567183324811819124476398769108732012219009724443932363697430451694724560019631473405317536358799253091223890597124318741601540490088744599346035195684080296527098744580403330467730511077198716625014446959746010730002333153753050853868689136354491172612321702335652475674280277428336007277400951521387068649886689801958585201763669591362082067231730168475057803608867805383501813525803040091165508798712679264740746759434988419327427141841508046581831336739483005141804997183752267604078516042430941129499824512812597018227471622491273667784801857534729731393751389675233106807353256827005585529096197850171889743655878034882382137637748512038353781836283518229520896350111301747235686642723224158054260013553167753079429723036735974363366953261057887557483690456397583189529875657930761423555639448472572220592597700797735963945632242124107699795262879491094286999642398621591505693299112932073189506965841761814780520759368725142874101814080617627431580376875890178848511720287412928674297059938816996807219182819431794461202544171052764233511587238640303838756515534358408680682299522648507390865285271156749295596856929870243260193779928339931196857689543965973309463000931122442669835706710235945948936957370631065591566387218825278950532082858850026059217122313315526376808447428969007590293114815184347446446856664852327677979630514060579745855247351712769974579528453511693739858158028971551859550737629314720428892953759370247659751644857004294779614093727139977440742827323839308536886773844447642608579382200705596026566367063091581653647779690528404557565320385699621071003199092148250906639543859694063934215884477497442396300699460485521114951239240572059426347388490274537035977295948717620530364590821948830921234135511977852182679583695606475171225188177761014650105453344059535307930109515036732174529044590038506037052344976155192061077267459442371356001496745975131413354663337997110566420324389452235728688399436512269379578985064584732519214355948911790675047471971993551122497005060828270830744110384025874235379149080547240035199083004185523470244289297759876588167683219417226433945560876814576784016840114398965433711528778733154529512407851568008528986761957454577554007193438524080847669181346606053039672031617159374913020914303303187752331439207710986610579092766047660335600920065430408184655522639764456418879118348467717212043534707665583344429438091567130084564307639035582097397325468091057246130285090021394719227127497786451412732567406212717585395023683757585419182874206371895365286584129893864743312092306448972880728787180916108970447698178949854303051625018108419138681273784115004134442763072004001917055018524099427795199935378831590325563695915140446811723768980020121339717241639728402626758563200855633155987576932748194206718655213451769888558194768609248688746784097397592869381329966923710602798028070221873068640861851261577911691301696220340935905886809410778572082748308645909581325708115040424478998374817417553939818484355068938008672640922079465603505232278055770107829408231062259346224460781577439646911831076680071933343844263308511800458144694307147070862252200152831474173162033056433145020115778017149409527175710721207186577596043661271168428244443167172575986174315392425888430314103732592939100338581947918004438883865419645920471105799718886361182837619734206326360458257062574997651880028029631793032767576424592171957633160272273314321847410176471126080409792708694332392438413312423906416666288923399999609265705123125424942444213386493498773655548649859806660419223326989988184024231662550835830907320037256826332631923429048268638655452752553404986151215828768834033263016219652138062785931657523873553725070615592947448596170154017316795722058280027760257865618323871493687200734262028690518971084178758827382738141305252411819442846100325269319647603013031496602643693286054009315125968511225407647209357692720932242350296886067876029010762753541279065875206235854002999626395076312336039597578046168073899092750970568004061811796801496261840649361044881262307484819865509518771255215785354169302435878187128801784043003442775264482553379120899756330399942441124127118914478842424241751535473785255132791189161891845692731992037484712940492316833461414243019507034345138931481521417456841013680876112612574081431864206802104983354579379987843470390014404403057884637655310282678522503532297854781638306230736204173545862220953777219707422297746610702340415777248113395212151306545377795332168782617414322098492054305561571212751199671634997801505568940836254429558908139225929363910583346189095925435662057298082740147551949174864727298519823833664359488889963797806207284015231304407026055234136148879983383687966449335211987534335003222122425779070005106406494384885646424183650757224997252143005899362644631581232504212634815913050776949200966265773808322198669978592941287235815573223666108729530018715102608912953716258714155907725926116230464889501934291853672694414985449726021724775184270132923758724321212763758540221072517511647254873447470402214373791396403404799961624687309415218162131815834088833795796179253251443551443848507447030911346122480419290891240028323200548224198168482580993204933662321164255068252424325531311469012432106469167407593250684847707774719729309565115211367993223047215692932861668238015790591095901070053002008391296166041716086266830911226465698933473051799337313198804121319723561431392005387397570688888821087336141293270209905498760539042541739429142111757839900772338574536122476715318950715829344630331926730181367949056517249710030207596515160464298646100145750481321273838955307757317985607888606267856384457718966056087726167421728662584256895359462425509603181543926212841414573580174987482029998642292681507905785540618466953436701904674994764053666407161837391270952005922360810579677583957747996619681217439480262668185885565877425188948376248649843960576828629479784319902152196575982814543706595660317576072317358834232472156918141228803404139175865598266210276766973804381382368000444270538055379601042439526743410631863323490268729061898776312579857212575759341041686679832884839541286418584503501888358279581162074409777044071647613416328848143430957010741814295072222020809718862544719939086605504206706568772554571201173523179914398947067084884702420996526400370663242945172962222988137019574193435998089631605933962790411683911267119622701298767813921169966902292519146291683084291134004981399740734040071725831181610813548933970300621845028412285368401286247417024338618831100332105563640322910238660300429844858919863847590948840556125548315089188565115063537451924041681516428964791114434529476987735804105707036023522060561256747360671940760818583850274087708781379760830212363356911971270991241271087799109080187499287471139906006993704676698006336314135572102621480951015167813792385480092271270467801988571383948801327011654264622824647002226029233696981073431521216964762376643792992686170195375222369977011297545540437340503517436921441307529327825527759586011558636736315864894778037183089455296190298113918766516492832310855986097330943994809362969971010815030659377031462185435735205018016271372740127185186799327984592861064968854439140298411426863805794158698648435077581478799721234424883908727346676613695002986729455732759669757858940172533423074302850488923481597947278552963957433026420535684528857937050550639485433091376866936062364647133821173709506637686209502435763380687832922318895318489700100125472546141733682889921985630837951013255201560711681847734124790439723967963910303603294159181911529537861826754577288577627477920092557657204250074388312734156577591026562385028488757309633992758291426437033731089493298722461276940671422882535371211774765153994775362827375279534028114184597060162873277812755915417072552376195481051251783970138254394452714565370899557920907316716867107679276504939125097175026831207409927302464019752779808068320220286008154169471152574260407412562771023059447392032390398395063309161299148549627085889285924162921270377697157962792366906299666102655324838357359110182570589332509268620090793362101417268582828208126748300740261302151170636571154963152359313883102639519104122609644944527891445379925789805965561797894601641759208230910369650140569831072417373837710871679164845365169171861370003405004271054716941655133229301278520348916638745001640035129875838526994934454123516625500740176610635452845761776193855184097052492373249957682828990311447953155689530979014784765215709400727636823972925235780998793848815353959081317300136497500422643912376757480562965070675528096965462949406161393885039905552352962288506708170479033760897417901757039413776507542055511572338165220291143129509592987228998526700226068396172953758225994511468353859754526756838189073578932571692916047542115861836578044282371110859843749143450853873620236586687084123257277530851249685433488127310302488189396947871066407555592851714589377941015512377124682689043943622358177395557912297869656103799904086725421568968087954187886676550729637726488416879320400159349353353842834579447654183777120169311743158108001442377811736090187265549286420646889372447161841019154498865863651700039298468535381939518184153808617546052211688969013385006594155066676639748697295164296316840362019464457208818279787900069571725127056196019836709939631060383058469698253887942901576628630212521710652715906507877504991446218217377449672833200644661352473242797466938533939161279921859147370170121823715191159809137961046894353955552676988406506796829828456247747009578557890471511772310186143511857873228777340835868576873469826429339422585145349096762870183499811333431746444274373310742730516043381776382142138155811056617885940919151438302915748422823883338221201764101330273963304535360598131769051439841381200619337045765383100866006652240102086115703298618261170074965544040829139582916542670234679824197047088817801437146401983978581846587336085906393621861269256382544293225229345121705242691916357841331324421387204471037027062125948274434278833371064925767894494005855036700691780426664552354058187918537492051033042933080454704101513347860877159620274442342350354120418679221747919885272433161159252246447577000426363847794663748706314447985766530078981490052641123777537629884134359936796200060610297832655076669863085171984429564966459373522070461369804260987390318494399158531326148054215904574243752179972818992726461023569929430590977103993613556784588793129418307815696580864408797358358855173713797656570092325218051459203301748845356095507009788171600529046016767978265659111772771429907411699317243345475749711647840922094535710625637902244449937094777974928586745857975404544257664736684274589049768733949920055605191388891607217807180062981354821522953204640388457340383892833817353689804844338124128035689682759113109492996839381748361415649927333997229607988110899954336610470991548969471290359384124298337410863276011640383476959957533152193543449094365271447149066743260812113213242680384742588393058469323838555656114846537673271420335954547526168504851263741312975948116256441846883578513843788768714541232727410357679847573867606035417388908424982226455059679697262624893099200687128704950199927587210913717025973978772281766672035988538738903786660125524564788387899976603646014362984358386983496244606064129361841276667359358566925912090128392533224011280046907694458410217782825939127426118921196189535392126281710191142206182570084755201887528976413688645261804722587993902310129222165239074391591508147250859342949069008685525065962157353306198334571561399290229170774228977309970946562860117159237316934109025416555187455363673133313287591117116882559966057278986892436012444713137622295316027942623837033273240198033538078431822722291951612476720675303283209072208779967911104537487301014166842488923784544215519689049914659884617190423181558532402413077333689008217172885150960270394524282015994409569122779249397784370153930732474588620465184312424856286386867429166128885230805117091893389654349009537252889007231790308414095491162434303224518873466789514433638204037620071352707893067305015739687726798418360880514704271057593995477217315228908319766169692935310540803060597296978384412949408580245633493886328634429138991800440586072163689100495127809498026991237169159344126885704319184530930852694612340757055184534372774415894255483587613581997892693452911524064437297660211343412670336876447414404749767248019447571693864560609420529868675110301991280585657749741879970394843856789218315800718428849847126698651328303454876661770926831039791914970564321504004279414877150301546269943494611440002646763426626185880706311235364110585675304982323612670930647950869793993557450389886806511656324784746819847653843626912117330417589969391696223134860711921468832851823822771603368826948685831285998669988057408533855639754833604793240474405541485380474898401717825365664021003877541139948193960089153524233026557160916126288311566924221053168316726618610206155731741120138031638186910985245167614545768181736520247163895730760469626880228674361940734420108462244306799699132733151992619130812782781894917648912912118653240737549429036443738252769279539536233842937473647096283142429306850422532726915248497386478548960842644785421613187179682959982363830973979951926494714842716762821845801082602703796755282343642388300333008024098775548475908902416964069324810154353772162532280190621848240089042486186883986183606726380904722214059311184632911124072711400414128369458063268542887521487788378810499115114709128643337974371554525554195869883809601880596700971567158396362143114746164722109658752032510486941730650328617940201281064615136046468865450237916475503529503972101670155478021996401663524416258686311375096324833194921839460973227041962404551344141405114053098728324438654954768894246440397374807679659783617124100289027855809435532758490995848183486620009677167960823950688367332075185354811632162233357884762564645525661432291476468353331258349361253068040656000617266282172253059849999674124353615788047672585628914957829475647382946733398783457283055420665901229156797595369427178630069596444380944729833791542257616327776552986929906032700284413616260994969342355720534239907684780496341669999085299414525098201467930095229569841437857005744046490599430834275958192833796002528436452831518888141048519605582161695732031150726393047256536660859010750584671586336913357229065852691121637274069325564323481942512331097299972684653474117006821845043136368413374734635950375686873157868940813169641255605207382228210402780839145967001219899105421959460823656139659773776798176910777294517800115636985132525911505651787658907149385398607546983085303983095820479783160944527990533632492207865413088912617952838039035066747094369763213013772270398820926728192716088293418832165168100162768000811279800038433691015457661687928311211123611610319982972348023936842816554240205887291851041419648797725815993752762448689258874714081829308264175331639465138351778728288970410985466102416482227280517125403798808779194948085020518997381582612367071528970577327835660042344302353155323942806227282074600714886435277933567351320217415157949936435679124856085820105227951864610727115331088308411858247158771271476718726107719050463616828351547624758136134516082812888160169594094953035821330672746363062528348485280641868091732996993548151662439155526078757071157406930466548999737274106496041323065212503456670632541002709407086725550916616504554743642827194163210513318710966312890794129017360362621481638232533576504022334884639480898698875248154793009170642979534643231026389030382571610025659539082199975261107944606195766522705922509180765673513852028272420993196442411126149358340659499384680419249340957378512828460842597000082275896999473429709983534440969750765872857727033581905052715986406764289421197929151534261815290408270161787574313419700952923255208034517147350021929816130619404569477769559399705971080702221719865573421668274567517763311284030003425883598552964791785096692518467704881590575229382616392951937708010339425615018385200735361957305813611543772947115587110131444139923851417008665513770014997800251947909547029903276430378511019325074469626213574678504188219417953792542594303083198520550796746126737921403287759032109151486781148018237930881892457602196203926623567124344136008801075323249237232345296419341736566102864232034040623523535509657098478917249835853602167581812957289694081656946288745852161916001202054463255264795260256340263408287361094046078535919488201033605487824854784629477228958594607652783307084453504091233487055183821208384152965441542545702044026917738933247547310738360086852365420455664713873630799903868635130495645648041233330908556232407744862883053003546505244813807560315327469192905772003776264138966167071379165530852650762932067828938631453994620423360843840326757240056252252976515626625820235523303878444690135744138456858723834870710372655175261628854331848203436115582388821085842477984034825830582650652848394623525706428809154756835908672864138188525699219798566342502712993265921264997238384842179653191179898711949281555115332390381367373705703561250780780951112359171476289292859838899732085252502781324029822876377687899260108339221695251093201567035458678739205526578537168420464518262295656686548180741748111967613978324029862311694838299691978176863068839051781008077968281018550906586600738649632592054916110258735900464833143882387394051877962876290492206258984662934933164972646762357214502357657939943296965522146406490180614281795191926106322011896320504291887333990598564954881815422942034337591126672654439601930074965052362107069226442455871927522020269547953205601151344698563582600812642709743114212652583069162945523497361557486382417320911601818260413507533416348900711415715780950143935311532838864061024508318910384256510478302118791539397960150238664343909739852245659008187761025098062257120873424206724905494647521641144270788216069284486465173112893011054702384846699059796230072262557199660283674312641577450327378042304398869916432029748561594790526188820096808619494912568940858360461023615832684715281737949265641734202673478109924519064284008070344511246391349788178262427387008271778845813161476728497642562049758049067958680908099271262915881367079918662272644813077690572684041450034862858275827463097746143260135015130061445136958356732361108984393886996100045321285282097833442186588312434684872177798201216393207868720505021061787849456748369749089964510884259956701038329543180541479287911721144190352025005484478264890059913088565982954230011298092505350137502560000701976943008994079752548340832610756208255571854493972464512556043755317843418273954533100663050810265353651975773217552624573545544206029606396404882493570936649350879061960348658726939491591231902006999729954608967966349723831225541040473151455906353830520067503110120378709458667345532130723734950713575778392905848797810170907884046404219012499395389748320245742090795422781449184739229244285429186672022645127982294435468307978398346827035123996233050492455468457847142457690772198830728271725942812708709473980368789752224496389252081203953536833414493038736778204070076879056282996681807664346319666786748983324365864004599034259775675542903201666294529126979906996492126157906787403504473705506228313899442203195836933695978845593223205180028694265824414987887529044567931680155638173612385361625049738131714252312606548466891497543189769737599450888556481369980467083428642568395549416637666585520405480166729158285147378864109857111469152154005719571774639804363538277354735870587718863606291908467454959074110987033193746754413419044441785615919430556686540551350059904410591682236466637225652517258011906847361190109528729569978986503797462588018342750107374386977598053583700689429750149865301478464185026688386243553065914430406069088845789048082566232750345873100737266164880090869848120046910573612743874358718240383803046118905848742615138294767320897086708189087532225364798494004833605194270002273924179535333988700982511189975850749472991510904821827310688892585465629797339402729604510675207761626610475968439236259347790426794117186469518320691808109723065171780021696001701316640947484581404645895409730307567449955965775604945575351579209304847625616018183291595818090001529335597041751330582199001378187070628884129865879774171566462255970088882661470962784728331191542666641460892775326104356657922961254741455753174676383680302858695718247600497436722198881278904523151720767829996027289066272401149444278656854571427927554271840575937759549255388109052827020421181956286252951539796437868443021272042077517205292185016486484713806076968636761480520446460542106254040163730314013843994426504055909214331089176077449035870465247190436311092414508857483499879928144771280608259390182395411859323131008031958297532073961010286114889957724385641075466186933797040443664393038412351182469499995574700244764018463981915474300245216091908747454186525569606563461645438817402210277636591831904640723334146133773803151621768353033572390167891284821995943398387263836375857249716229689846530099235136091477678208336851447559662693034601749887886706991703241413292781116996942611875670137196757315412423605978071302396688299753788002413534381020296921119700304983622297044302625244244389710974358256760801202542258230913496709578453020093725495767036283796224854370027422858243601875719688623005914367637111866001595357412187926162657814835465922947468004165725761417031228822685756549197344971364624478453004504365843740856226979426421873164937450412129434650088492407451606467074874854617764908212068986606537878511913576451641935593711062277901354399244977736073965725515876662208965303142596469369608256982155377764345994493397901900023093431490751636768607967692960420909852182206031298731195164726561842207255318593587347367244817651181440184436605899828435301844450575479864179267051950473425242610609379647584393928276913804764050935947035704177084089815891934275916109557226357173933213978831267714847848004965622156492799724777608562172468860220548277627750834308240075532495018044708063242161780876747318974770230370980586452453463095781146434410360326133810936452168383554517639211949990117212007028787407680878418835079297066922749170294368159413150148726682069983855652515780777604595269782778628823189157736548965317360305122585619449273832445790255788814291103604062622146739239292468024463072561408699574292291579972423572699809612161083699238095727327362823726761598461031369398540968756069683346075283343955223584426074989845304059685234358386650918551296442140323332893852922649801912933143394046013768691968013689216977478766434235714669876348573405480058367674061050138780476181698793448426765068373564853270197449955714678041543078930257765661532593680885461308623741644847646224633999935454848921134845447835113205306074507443350164330206689340831003870576886938749283504529431466591055729623488070615209500657063983448659001845974188078720055746500192888488410271519754193746476404050037028967951235420167603702820480381814758660808000064012305929539780576020579257027537325121100301665335135030357134480464625668294099154510015764719674956096585723582980164614523870032154761188864576405580857317486694526530105156113346603192446913498173092131031888486113170040875319315084633108019877098511533618505860208618347249050434353031221769378945519393913723609351424790590537504576847303583216777862496379471511390184758981756406765694783163900692933812312884166155172718450832864116734287455136424607490993046024464226063517439949042287732005173771354574076100055219371339697753549380179962204444448154667684650852419176826734853610053777575828553396753875496101797978738267541507479996831308767513934654957432005665328017635624899936000584090154136822086998107578040903925054234195501630932041064724849371993899817697221702284919708229294859049176505585702962057428610178314174855163444414367764661972021483056284342954183375573961350673003734760565640087240518937160062580825147886399309897608039590896015024636485509480745022047385206482814532567753465430293439265248962450831868225570518512493386498643441390079635834889384390998470175485281151184475577589460358360933104891141505396025243533616153043848929677780282221744847834347771828154430022273572862529826301284398743009284540296142479321485440672779709090392168106777994868968386221190886020806926423057693570792781745780507085715412340856979368491210942946601001600157086397062383856277712469880740258089262507715694629041081182057707027876837267462615990241150416365692277102493895720474139571619955456718320761855182171102792727874085740973000363183254099647830863898580576270918694260314566886323548349664642580559220837073603788796851004552802808525215643374806249268653934785700822715839942087475004295814810840284250727141577037599528108916974242326281742216282940519667313725374852956750673929863248920821823027146348991193984555108064432483373023713740587585444074651289392535147176519480589074040470445683604511360520733401654514939795824000875975086005358696226270919764053578536923704676647777547010497422857442671563541946028538666849232707223354880053822815159009701053294972917408716901655015806533888485375405065455958330200446809659793536832465072805819920000980975326407271773846024289203175118638753741535446104374725806782027359955580654227797215126801509195516894409460344790924518795431118525872558712495504378524100367463008590917661549972641746231322363392332676013184204219023648356163851156497147687163402730733601309461958972134535396865831545112349763672199561234919853380722573762041488080527730609807161380416304050427975614232304990346106469306188418481082018277561257405623714383227004225426177102174508847715548796305196613070257836171809965318512007470876138868093328699553866401330878196830916451496853315582901116540151520693783760146605882564409829696832513835190739099880201504877852019731671674109646519428448101603912827086966744724666085162835669845266937070281847046992717551368788760758696205725253908013057313053598268444042858100854815894593743575974250298087563686876573908981630982163763312922635106225862082544761682911563008660255991878749319155754753695139599482718278441846209751632318022722605813383818737395649555157995498230741575313254772098917103234326723064054077522379556427242491064867734379260260254987441366616780927521659656650246466968162657699978598244926201876217836018716221184672068528230093302186751171128201386513469069485825265447223556038105723224965265369506200939003755197231995872470704769694929788569205965586053443047763788813312986696819091157348768156679887800671172854528313209486535020488918844474945429814486854813134689084111421389861723743235715097120450035229013133301935270258757694818080858591250965729750214288233299726209378605754098872952526444981708419147772028589693966987514946549013195736631451194314339188742258380992601381109479103632870738463652878511155403693319878984096974833080556138610713914265704246489232639583864605616494212178561407843330157556847277332512535338717843686950408730274589952238813402465179082299046050929542891267332078159020144209485261634139578034087176706565097492371955640342386794475371237958554911774554726084023664627469209211551825114347015569832349913090317355502856014318299267359442087088325840636585931748018418704617807599771926559854456394928482195435777189285247381369260097499265238050557611508704215865465419259412861269524856145605243811209223669704661381943873631935239522511502974863329070673298199777252904451759508648611629362206431968327422126822172988855358773147076800541729850440806731839061505183861842993353763424237498565385962652993562695877617960362123352391230465653085612826568278480545458984559660821684567657231334616598915701106088904688670466866390606234798148703062295573966687560711897191758605591512656029718529779683962038558179938456245215004355131553915368692527953753080244847071943143862210743281516476035558089230970911190530553556956841817170270517803597794733786707213083611446768342956862829514260284653552827444148309683168229832205961679193913768312728083591589776770006841808023590133739556728966496197756830471737909577876337888349116814039352765344716494058638714905852618233090136164310721550325198053638359602074915162042278544044737739042799509543094271347043053546498395055104738189088873563271592594341641487953562521622545470068772469816039802191719016469610617587990101530684285958533183306336228556889285339567281930437746442936648846556737058739795550357694788227514571250078592274673381569978549798336821885596546808161704635837137291784557716817956855435328030821344708609488088314290629788698857569810437556586566649702755937335980068852160054950136440864587270128457960424834268368239233879872951412410752869283530666628799445770165235945590155550935483126659289087728015938966169904086395096599733842339263566655499214596158230975688581811671364296643717616522184108726022817660033959497470073578481968797971877665620410501421329487772899228664191018547421054887785892343421004839463678551431494795970522199462237139620442042828734792848380570692142987082445752145204205191670981182992224992746564596497635838195927420845576472509615924656371582691961748269508733817284430385196087927867707966803389038931465389629600864645887863615491075511265778714370126092290137951944810238327156726928710202070336929282882849413195436490339302437958823897290594887405918792815351015124863364405937506023441608301102877281892860452752742342766887738841327785746425837007539350805536319191719841776572911716473873529961315098469431677687655717639479923777019954743171755801238414030447933508929429879423835898561593841052771798888101366718120563402403319693174518761797688048062606213423645240283350053037208674695040477755798544639379083929813239596081646915553240188266240903078897775752776534092972735512196661709137530070941980331636987818753398702615158286028853512285482264901436683775643213527820349153644566518756360832753969687921870894940974092548908182341777023975381877034014296566503150535184475646324393862191639615910034928334962798034308122734435367011363917323006121217839678339233690095063290285240673616529787833922661867201816686612922773421863733962181502607465715715611517066777784640572419355973684091891938640498953128721361139644227090280281307704344376549583217084327259088311384409427326827105764519687163787308313062699285355703300700731490064257034673213679289353326430280801705598944288718411461703228492301598894274981630913538556698296262995221524537511668737327091654000545666957031781231224608871413107537963877329324297573770645656055370732099379791125768526320862813856735659016684598508871761310171943579966949899907069817402953434456583288536065136609455804337796422529020566554363650354229315629744901726093402546695769061496667736283873979398030277009195740366225561184571965898749686523531164371621691330659424652269989535750008681323910818456475354492119597969275026459303385942388239694547782320381121937844304482815723250442856813507695669667003389162998125996795543937610078721410461759000082425219317184775975562681323398852526646682494534329827527163289075338398258665748861813109892512530461268722939854998574123728761876837139024948830108921389693952708006294101054561497736737570376122266399130118963995131337308739844022916293092414426004805797422849974440311584029469277995464426502538513989326543947355830416333616773207718324974615265204802195329063303253103607400345809475368900004842168455041075907451669668420473927279231631004477011608936496659234772036255010828002905234129764930075268884505262912563942083646042201970650718722917896411342974068199634512828313966019598323840418242089591364356993685133665188864361834758145060712622964823232571240156526580646774154555994868127779968380235890054028749607498744068267628528449841746606809355543555527286043797675536023935881871954996892130625137117291156122025182605110687299699446273153469871506988298203564254414484973863485703892162718796792379163405538397043873849705098494135366543187027787980796773098679696249506753347694801511385475553529094456554981527898302808057732297639284028039978602932213165731900248864211411388831820073330738142411345633435620383257312468632406590292235326119280260440898539168413496721672264043095839361045923753605185496720728317534347152679410715708923556013440970253128169953307874219958372250828123022370848983849165085388106085326026630780119378996065383954791151168371446748928593673976505997855530068892523420464059344284100031504696607381913837144381674364840191665770284805931171403336903682444357050566635326214337446599550368267105421403525928742010279369752433709199147213185188316778990098608172018869604480365037207399673724004550327652176331656030928037826985777984496543141935689593132333695016150604064179523530038231853813150674511662527205246554024584017903138514871944783762216963075337282921077586242281582044177791902637184393717517662081378995565355320192223919187953845857516093144012945732335221771642503187278870498786040630536985100938609945110478862266724713714993100884196477780273454817407469686976821046132223547096728754422354940700500786774908816621809790560140590478426201402521877389720659649048297334030463873609306181764579137605836405768249833462978949062704582016183248156730396699912555297166054942033384208628252955301246108011762865330425536184074939925952930812785746542093417101340324868360164656175236908024076472115847422358220316177554122274989236854048168699667702086215486808078175915252178283861006782361903941765388159440680529657976756918251395511462484516689683838966559414723697936863944404511193776426137188975701467703152596925622573658094550642866500614961743998794282044537447675238667436471177006164398405870333912935059122485458965771987571796412339787155389246300346862580174322724690834369245900279143070120023222686965129093896329094840117562532403629083744520247724395296979965554113991771746928894039509550113622241838073633817023349161162133733084976350376374957688126878303559776166365695774540835866222435925397029909046231602014506918579550479360580151959547399345016175757214703148153710827040731968507960634671411896069902939229353914281160223327233313423487992237402318502858473219828411724645959435727983831310563509679256159470256918626860122746272914631754794264091294578188121879489073126048170698912593271166454893651781080022333716553241921761993327757317300165589271220076676635042368256241228861507786286791646159177907307241799877484934002278472768312560939419004927387772912947445421263696379993795427405372654508353817553177722529567699927844068159461225881590579769400593609628777183779372346828258813281895529141097574073965254324680774835702845770144601692828639102985179690457049566752463287586710724531972327791734111912108485820613799593304190194954224245365061039983635144335084813668033188713021608578894655789086828392793664031282475705355830075160374676293673788286455627278893949363904716163389683986381136319440598475505543487410966620663247250832735880495184151451839142726186126647648951528564085760492050914813359798284539038881546225971586457708102806404035846886905529300096207544560315183731310911841448227256189649704865191137392707592088569457754644729299252201958017738955168534762606062320306123558346012865803504176306106627725576945600926592572811445896580890537200082647780075926614249392882013471439271754081163693151320626784155950305177380612744718992389289519437684193584447965775418266679389924902562685424125822553386197800243343112774731353863709326564984841505703494011069745752222713334674440300237327741491408344008015777270097899519419541236911762467361910933687646283041190014858065308857615045659452596139463358072750553298133744708680662558378359167320661906426584520065168541479813140940701268490028363542788382688921776046038961356601991425137274567814591628636611525556224692356674296093468454910555104379474273872356934627680791295997210428769806226678816913655393753460855284703686170841486350051956012092742023561175068212184904660624253373003342311845229256872326381322622662265399741787835468740019578049597347922582651016208876060696763926616137764465645237075846901795679826349011493451913380252890638284262884062885129753384538177154881056447067778204496053794138731945025286753914683457104569368180055992660991854651873484789709187728698532237630740258244882194537275410865836805814625348778133227359813051130025943907001498595660358298023605929445934815958044354944685797492897940200987043999674430314547651785154269438232632072937714923523350781458908166576649399182757026264201176507472066362928786662521872880163903674508421627338622486019192292205441093957884734835057339208599595520354260233643797359541581358634902902015243287617124329450772687330599179881921804147935160355784399625066324216477951520540529660787136617642692905248534727372415918055681703128277959811974142652289025915802593148490531355037498446932849656046469921447962963820454795522364845309885541995280132441879473626658595177359687850651129575178100598540297210611198865946460189853720463147412025838713105877663725010164900270071103021964423628675705009746797919423473716317890719193139294276684575968164483811922608059495076253012525488771591758417011770771961068909747004193934442441214348632838484992713280690643226046766504361922332288626010754447374065945416295062218635573236958246242723526670146893901248028126728709335073101552297842460747270599948749789210098375789699022234686928582473466528216788149884923166104861116741887037589347908793915736591307894162167832232550169378583573118837631549763254548188879633063385467503466698586699177125873854772936967856182044272486433736215044363871239717240298836942829969119812181271501920597500748516044228032958345302249021398153365658138448756512986646447397159853578995666378868735948591509526625597170276561559165747107381047260963706398146833452822855392703020288940851760126557620339437775676900305438951960159033731336135123666581042999970390761900708940361647071922558153533929919950957543134082051251227269186998925022830450657044988004152037322000458409004046549328369797684035879132289469785876724442481747519187949055578684286598945488434366478692607151716790890849889277283723015335259204739609587465129389318219038098489663891011141399826108939328865680475620155421963032990451745990541538814750533326412697289517263599119980682041397735692679951460326501086938969174198287425656762968879927329298246935685193777031836409363222864015465454294018959950139557327792338205466288791745823723666285030825654359486436829047531440453120786636719735743600276594337275333304704892656068247203197359790071308417086547347147577611688277692919259959325561489208340854918816888796562801588627254948202550000614633531771351151534804349638892041664279015921033966247594440459003814202031686980605680905429840672671156060809094620532511197355933893569180671576556604718573133162644902134464920528277971570042662106412033701739047781918514021735740263031000704307143824541210684186666896078559326506777532792563478225761225495883876504045568187047874251740729082305119818318492713446635159036248009717551794387462957170162747128906193824572510931834527276663113395368593513402752576910601014841582488873945435846161659701450178034523745467657957465445320985646631348820723927497431304520017146009074816590600464180447466884779464553325161936625728473066531634458740956623358897666837165408104599329670611214494083984435611173516418102863693890461133722085261835040459258492250705075209928589089842829670450080872351955766342140533637003083596740675859463487663339286522340226702295251504735245231635256793613535382088540566463736378906948297782317410873793069057253199080726629440859331649275620179966433022549386010007458523633342771501898264908497863787799047781834139430651083205714167671838188938030904966197820251005374355631951366804083737816395937142972803771951283144279382986561478633560581210953938314545525834782730162303570217790609745815518028731135053019644134377500415101829514536113754532959507999911617592217678673911306467848246214344420785935751781722377656040661663247125165576717036893538560105964876675356334377441938819732566819059333619730270022518940026471024338065432499545464084355469897965890769871435755831259658204774397055782278673330653922331296497260240368549713458722742484809764006088887936136290152760867029404398844183883276833157356518403890936217138002660292731056329986231941820576758974930098931213531402794169801626915006664822603059269948281707000521720741698323992338287041530290823441430353734362271257327995951740378647281046122891102262268065064296071073490409939849763480541190396094385562166936890822893462533503525827262238110668323225651921295030775945440954137811327287573704622622983040804121892502037390799543649986604992473998260170849017585565638960196260855569822289551121848692013841367755813342640070432452185706037040210683658497278210908719365689327061194295371213705168521174109301425923234383423389948403076188415748646736230196611315408154259576769321184564645027256641328835250408801678135954540671997877690109130809328051084307206139980279236041679119670795127145049122419782488061060006302570931399079662643768972092090003551391109092608488851649115582419017709418452409836300854915284496363104245752189556762273430833986497383810722597696196858272525710591966224085778071711312592245037342383920658258077170844946039268574381425775183849829157173549742432848720181567527262589415342721785224484679349404263884507029487097795663024842839516284299059636034423644252843195796248635362711010492258192837391969959049748967333847325591360564857589233223396027024180445841207585859287698946252519828540084021001961311618527479446998249499034465360581203115809516237009873441750432951557240844994399353564877140911725943098542847079896427667706987030533718706305915209304085638155639507204794528620047624380791015323537308545443308696185336989892913669137050893624842027965827277890474137645645868344275714152117079484787050936542235461895666382186142996303271245263330387852010538453832288904767330799915433741139489685245035568924781218861713883373916459646126749237517269310589202965614249934563246688354570825874054334684456642337280479864458653413747638433683811926604199837214912715032119790035605030526512942009293118207235102572129613930057795429760950387716517166418346465731232192559659200541471247926529628662995217995314307079228379675409271136500470398597825167693543001363075710007384889388538902605742749087605066612435037638878970993719951127675817139221657343363873229668968011094185878773786448514877618978204304854490333056028744349083274352344555229969442438484365673754901970336834579199079449438347220651057657006163268558318914477361782307073777231294602826854621488836650411785404375500129575819742933563925913036689298582055874317479862935827372195700433524319429667656674777623185714397253091202251326716275874456275339739033342952301852861898219871553866004958048822655350287518369941646595546888512050426784509376364700668897961599659150153775582216871927369503896211163571032019003551790532567264651293295923293343787384763117237441998593087057546827607144034498679371163797330596023550227194411048269430188070309860424411595366250471821355697324801671315512799090681254916722231918938895369293471640796430712911208314494924686703401972191316097997735818613864500745271058014779741136280712938376289492088701070603906041472842914051851587915742064505530522809376466132963695437211959272132439932179037300356592799659145907853992627182985908694125461181222492429018764356854516822263526776460890168438245469089099577838444511195063957220050837154968709570414417970129530570436750620984033154064341706765663447619274402209208017519928553154852179814611181595896816274755277929019769792831438460295510075262102095765078409492155262066921291871954010846362526393393393575762006830187407676117313853380285958556663124716296999485427000290745719671022641627946390405816386287382131700692642770801652604835776206653089788483777992300331465200529264301225157164270954081209154099851640506452135716650703250246240049112757945511811650009803957205107085772145445259377839841592622574613213859830107905679723681840075059494442389084218106395165547667582231923710526143359696038172603674447028377447616010478910538538765918708403225861100698274993721649699891932164143966914986106708696251768075870412118837321205028778232617002037893955480434757471620175768158332809542101193460171166135659828202093009053924809680908062986029033751220070879592858903268666198449972654210047175966465606754125646887986699077655029441074816216257309368582878484727126951094419376790948752980550525208387592738105400071526791809297418538969215236438424464943011164893962104039549890593841228960403202314679953675486185238117999851747366790720683775224458783267196226157718919224972054470116643193054251137876108139982337038022597162006546737663597719960396568660683493702800940191497816371566077196551036344269051805834217431281780159890390924254689404844194250036388987544990575432017503694447907032786775317732071852424574539211435920993132359290489378620339207179398084852948449082273563370849391350509841109961230076824931984393402725506085128925107822945843772089512832284376144013016262185021171019885051080221956398424954797360399645391516604305336308288012626950544262058908486043465231760218328196643950347739200730889178990839914308138890163778585860231219194708729587942540096253715795735300409545831801825288399572313869709515040346422249531821889200430343474332194430228002247946938538595011020070149258957744742949304403597394592884676347223283071597926410102186208120865805627444196509583212227897462671012500891598400503665169247941452644236115369534366922097329787996722604685344050168067200904784244891967092240278438896612981869774431062901235098827310758116768788322388336276728577288727719382813546592714067583805136439303065279519492215236078254310017456519345812067686792993096077054844164842173790282621172281981689609330468609418264308765624657896683960651703076229863969313254922639185939771555939870969030827743430118788625533148048432739771862275213570685040383937151975410470350351497904693818356529326761449648453562084241781248767222299024203130582510474397544246752941535286510898669957590419899058710694795449947323414466343674789066999128556116118949875377858097841420155482631087678433320104077442349832870576083706643265133114934956143522914668712234645759307442348532938592576685950367658636199698602858170310221099142640091608923142796357727859509837908519069552288981736913967415247573757936682194232925446375516930409596959612936494598229106504779034757488666090345948721883473140274149791610183890301197355768765928094952420821736059069656709058244021924959950567644370418181400929425532070056824999117821268362765409667096161762241775757662814529081931176210662781717646417138856581005741519361632892657284742695539227356005467542591378019720072184784746343254456728627184584325275458466981082734771745434219126202560805090277676181168096901362311984858153357768043597975860467180006413832520973280276167721346578087883694750055500184179331316202027856867291563009182436264064573376129622041641646661117240292496341261518131598855961292380714611197758624835031861551566329331564150425585010544530848936744595498522493677341657593430148360683011420483399323296669099851562010607301764281701522233623334409464271380536891141919654534037110718772939710421534798343634377086634875046097288598959380024218935211546342204636539306710497526566288717096323109590203026452724128617082358578228934778785332671422871580032890199786735093660710303017776214404759029347323421756949117733902431848233329763668643897487909325237284120035445456445337443173343129092962884447547185376025100101465337599080175996913680380748040511026874546000325632901303945076344532776032072365750637442229192393358908233387141006296462983196477859409142248144683485695245258570594984753303093543368823621915601085311057817465110120925163550873908284667482088813477096651853748033010602788527448469004006590808165232414495281956150283765352183462774746467910007215964641431445695311478468279368108466938293879800872185812217216420963064633004486751624635714477620305752645760572356386150555736706296529823033647390905124624407789131670289802194596378932084688301020330853014122356117304036135771216586340844388702969687486686798909385029109905811516219657187607228396776247176918606885756533458981445314128708344117711370202260237281557257150671655337768761137984652553875541880921845229803794016045029483871610453714216112138746279229120064557672061656976920075178993445425573657335230969701731450606013797110284237122932264211379011476951269495222702691280060720621221206916609931424380368790385562430226897164372512230481703691742105712500206733753153891770019351856458481840184663836663541436240897433269288214658911292396757967615210319111156611711964919995276829146689572684995164999097162220100440529308691862118035933102443962158328215952714490844779042622562386257536025127652372151261859475169643953836661877723884201948771785349753633802993216699771203512560370268235452274737721593603965322015692761408466888759143257627592636392118937279161680865607567147813210853747360008916186012183093708304326996673619216298610472105270279474188908279268482761044540080634572231764181585197882425762505063503251659559285732519270383343479636510275346844640236881125187631302266561119072347624452295485011513452409250738964549023383193187922013630538877337030858508223313265117589116507545987945216845262043216141446145997486887525185860612111445183193321928819731869874934060317153182038448840610903552851604835516939796449826324811831867920196016541093385602062642480106885968958961541393519396696760896243808954224910324721159175958675020945619437679312344109034547589852343486780702810045138708477030190305241151018127671733712372522678690547226131818809589164270296087038632506107055732088017633860387279013958221709289219187682277240010790432759807817302124141586152736762298344607080496016642266646920012502247022910194383677640091437295596823955773974493646308008330123026935603417537321591962203093373672864434575764627129109830436105578062161967894094039546667276360657331765030469288433365273339438166267188963081562963721616189855618678896063950789636529070934953094153447519509022711563231639300071814079284401943302856924240164610373480960398209034154133277475047693364278961898507924240549488334378860416007389656498096980277876529194213511241197995474619911439643802518439581456255009274019214605413014169988411833705646039107324808215124148224963234162191557900874105259910942995179670796642108995521999840485240656536281932086573409916380057925126433022290110829129961099676677488346505400448079060580261898799920578003724023660917052438511750048346588520643991203743197230512647246483177148884923167410966916836606236150227360796855485132517800036033567234905599060518493268940188719121735613063434798086849907103585991519682421595164122162635688709315354078852281256331389281720617716668324264999440729399216100422304326776283718152887586397852940177501495803105030588216654673716100518482941755682658747324956269231054274267578671933370010081278136790550294475001180369894975503143147655659987679555869479599959124798445389510338242309478182971460949429420423450613374936012942526802602170449748018827383396900616146495343055795827927646113596801502745874797978449500806138000469828641568684123054001212656448435090302684606486673827013636966940621810884058471253828113282227051554279978778587280818141305084883085686659409960685584176121320052424963660565699889533997510075313700547017456806840952400589519480915806389251511477768692809640601687723995356622587608910068806932576017386108257706689251607991159270970602160368028946609480500554741721678315564685837281483312890802716950085036608007692398207250011005804924521453640468201789393536152531264070220176842741689464253089657468328325612228235822312225507064363995545081591698926661834569624025364672454801566962412685335267104414690169585969546549279629441783449203059342350630783757884620108159463208936600451916248923320555170504994268260604131624938500818600792069607272961389229168548554488943676750402408992128305221026539929963512517901554307220915776285672685260383811956631740014707428367121081684612434287248956413611321939331813136765160232502212895513828474859806156855937311016905090510580315038789467040333896656088429115280346229092977494541547263041104955426082259845627955947335263868066255958619435165128424745014346661751475113479415438396118477389787168777119772996601683896724097534965287755096768048045651979620643357212839487711322522909801925624408215775075223004469169522774881142312183744650834354803261783323603253062537925229716371352963827477605369924347187588271867331558553977779700092194234221975403693032849882386317796798738545692479332380996028106515921932562339038509599941441151415966843130715248415629154578210633092083265490294636535854486292437270116789100262997028699075753170048928156274451059532914966683376203271818261362959742012085982226055184618583845617718689101907183821152806364014779710706927016333203507739260775848274128213542933855686952313204386889200741835585378111505315884180609444524339348781239284888888892595147986948406619533121802489187855128453364706622819804647350246912391380727682324489439221425320931984708050694738467528543635750391708501237396137204294549634577528504949602238276502936458744510355866110541239383252738702135869121933520675199609586356285091140192693373409766589643200224745603618747612037481907627190009078467665268705804274552012440662703817522019675168663703763229597455255989131482503340565954054302607172100676352114671731014849811847379653056969331010497378372734108839895136859001720574532218116318992176433553475236850682652462588502668258395784541131018176234686213508809651065215866932483414738527394225824103255374363228352162280440126866807386941284773402688033099011690992790760680746553947190066365921514994332267121620165570705990919634339357623295061385927241387707806743013511312344771466329597084809906247548979826650952706627006754813898754360431980057721293210818436220683884442604804061706500134811429275691757071907948833982843465561829415817517284406619001130381808105306288529019430369253756723306511082825527699882779219607622306626237883211630856544368097065144314075246065834927077032393892764249496818649949681978394431632514934312469098917414565383905418362608622959499964733858832217094074121540773550392053888632491449338408187118186297894793971317558686693345684916726205480286473012768541904709505765029069862393676971199495577475009817464392422947543867248506395406573646031674349507664916206869590255274990983974211758260121069464522502004167544980627890416030313843925166079895495932279348230677201377170351009814472135357607517733273930732850472559104238335291246968732191270124922420731085887571531981388617384393209476256502337462879307187218915405708671427900609767387600665024196459253875540399716663918846904929016735804394997716419236406616078042246183608088289069886862372509368085187093552544169631769077578652458494003725652544420557195803100943213483112301849044681603274663848347187312275254320714530566698828607397677042449945830921130457593536937784422981455611299984556992756133949763816960865274634437554869574418684778965094173001550754217564270784228724355863596056395504556955078312749483045764169783959364742019370422661238037057299955671705846807228798289411370705825921335599197203548513923320528933524549626538946628112238920385414787891803108943715343029575059708035289926757326954937739559755845445976311769635292681695969849871284829372056280263312488030554771020658524628044853132347531212541922488086606457396192453967995321000776975328033805542035507701801045083154299269816952221278999586772725965816709641024887573978956215979896704278384116261966967342570173284084323627140514082121361774575585112786706256771759387598336613572895964635904782637403413049932337412139673901603980819807900823250375452244884472893182776817893810698384636102715893562394455121626234706713684037083278541144085020216960659730101911878610830980499103040540841744760349061244736678502436840272017948268019262942578808047471812270836122016491496192350193566409940664850317447301608131014500795852861768544567154227227670041465734860594356233919169231371842567372972723531231735898352109193649770065625571371790459434823060829200582055262797341165167328922285346071528145050723480446127536847118671805336136985088433591498138407279567046714914496880706445193640546745239374346496909538432248252005886492914881968988771833643855885856915624319214343115323794671824955056094550068360550757217166538791229644477173774791237251274383986567995239680514795556671293851416723652111078899261755829437310378072589350324941488803800708525962690526532458105134559081961466392043790174819467946655072254831341940548318979757438491066373001351610856072118639935590467784002539647434968303947536999193535175648475571430530306922653124108181098538210633999983617294228105095207226176304726600415825496318449168750236926476154669822222525739532085927969637680616078141837022590417207291239100045579830376366576895359510905900503910911408814694153706453513460541935118133672547522891837367260379616256938521923689379362640496565137493053852900103241768485559317289431350645936222245066544586460991594082454719402831678249387082916068493809536277167402391914989205538609333233229315364589552999479066517079734157832642357411925631257150450882853664928135741152084423190560716604715377024108827032373395385841849058970340976902622230418249618694039560025178573914459179248341003936597370625031246045130055659605175844716545900229208027897311847643678680639432114988076569479858608101453104856437073063341553367907115518507356477729621288225563630655334306753277312550550225385613252896576201126915293826319249819964152626268421035711267438822166184333377056657034351231510197215488865368470785516680230768147066547599241125923227081674459808882435835508589802946348623398363265655468878076705766851910419712188970914642989189517533568999276997639041405147488126359833566532224006229977697330037516860967545687647231462661741488193923099164776665415677091094116836363702845253057181312660607131122164246547334378995313853663718974517083027000956815081048017540873738119296431864704366353401733082064224236028275668155619159945833412669375949481848866681686645858248045703065686569909941875031800771669266062873033849334468319312667508369744856777784876096027898044950869360863303646716335864097791074310802852585049367067777407859730507662833999751592747479996064649975957469492410206201862058676444228229393221620604057511322214772096380778927068859953594293708009632662929552977573281944846734602000618974267903908177675468184812614278775016768629877036207219538892215541775039910973717175648490852075345896178179159462010983772405249341885213553125740471171964251676010759034228753698642785111985305779116329113984385222452861319896311393655964477401498253053829419778533745648791461324852241698886904992912577643365642782864104926958246131000872701928864840475463541619174634801659471438698761557346859233944086556234140597584927228376533221303055889052352830183705545073947402787660072256849263628411035586213922797156166221803104036761483631100056404664071580794181517426031698383649341141587650992927521446747407813906490634040920454280866374572468559313412700310600087966249458647088443299032474122433853091612006700876201781316676208958378897577756932347961357889113869571530391933260856874389378538947388129544010394773828610690874544211874106906753757462430780250091042577437920242845909903898879153514247785235564553948201555487603499815597769081815399582688934465753669353089088077632528242085974725880202958968419048778989228763339751189645887274741701711027864156032656325468615144062667520227324868071136489022499957124546293393307802717829582811854874759087156692241714778110450906536540233972357900201761188703731934161069660153774109268882479516784959251002206892333227563983995824643649584265453632261328472117059725990430348441257405093190654610734662501069596442939417707694360052884241155527468614721999482755721494513823576451712936168668722983406970562863826666121186703178776868822271057199744861564213552438372967981870074155685466142664475017186918435098295953123221696111802270845465737903537715947956589224815473859287628918133566544520868911394163372171200736925304229509141243394697034374424303960445268808161987349193913513516192825804431094979621374092823307086240050728864158907959607216359225143169743962476690378949850063244341267070929604360189720463079239738094249572329775367113621421377216977845481096289288494884827832000440380060958340585038988633045843875182963375207485002669731283274134462931385506689917947916830808881564943518532444380371199530968502268807350877532757577700067012803694796855839386433141066202872463945393709333927263240921980066179145298986418103678950983006035155431359492611024820738099919514058045186430989214255465111450260423792139949563372834064211307159498090920011656439950174891353413179347890992901464945205512023729363716886456455143708630471126274744495586449238237095416562036890186965562802938332396341969413824707404169112470750987309278200294360727268241389345924349313920900725466244699336445962450777512856128422549910365262927799105515705924989216941291140381537384469562451671131240980350920265313803700891508604475573122602226748004483968960036686996481923456858484731674225438766117227750253751818185591908351689732415736395075318921391501575267755685284967966811609547808528080407968416901912734411728659694470489308312702597765584355206843202922835979096021339602634885537503497196646065937100099039504225850229109234564189085514230839259164955684881099006452548199895734692429006451195108568165559612542001401273758649365111029288651454781925414659723351649340076508627591962651771821218450718728569115212762545118559950991488211155232964436554408473215757786708501167365273357274742157281354088528849332333945347039456055248125894004795598329437660510129864636613554508163392961376083898117236064293648842474524945365020703951985424110765672187854529533843399094852343612930634574277337196718868078916680410908933677591499884329845579239606233075142586689543300875947914346709741963029759727442039523833889189660381697858585597140421603891308778578713685919737883498792982758551667659438296010079209983716145153236750953178675532283680683371789258697626670917797879151892306716069886693613834084653589258538756398155802302720266286010323319735518938599142383455367144293485776594381252521103941561092494798704132495241444234322729157702510818680475052945313096773960545352414157748493416716671852129175002960883814081558667501242667076795994032835533534939903559695987077994189466103147831654047077071436121328159160024449646401822427000754287333904122029084740426243092593101550851455442994134937480856915005664817084536286995473549365055388056112281464541969780580872542164780101358063012532441695520950969548846206627617575230920677607330205710673010141231329954087003323513930222122039977904095766546871313788690157732770798810013274454359112947321932046463420758114268120802138023337743196394824188890586514206910604764479568777634427227363326468022969218983748177538525179353281398205655663619878629397115544931498762673818797202605029949533142495815863645805361703707085048090081256910445448167101802280637482141240044748793007884472813620670636859576063795304313137301322463913929058778863497088593635044108108174892734814321947277276507229284808621396708418353281160082221595997086974910143256067678366405103673401930155475323292524696771240983182852968330742956154773960486865788613452548423557459609198869072625596728427661350849150119776957501013316622577591464316152371129971877351930576248801573058599401749884807002915993005208465550324440394225757190000017724819688475252333259587005596713714243900500401160261981178804362998137876542296321256567891846829830760539280333729239518408461686425333547623037606702311115240407812822935280751857598093355993298063220365663069507254211260090192993860113507638355788522530264846651942299150219067054006872898146894815144133287748639026950636759444059539858255549873442775874474865132166348543718615815816709694874026584191568131501092905520350919743089187181355694056554759211341485270587530650595443682133269916690243174643997775406239260050409549368184693841063042707939889355795935921300291029801764224355125627160092113797257135565306447824532789925773501310036477284944099716755251204848640432552633061838584479338736997093879772286274425042683944916527656942166845960715141595538583018658266479990270784235633741881653237553496000713401648851604516020440741483392195644452952743496886293359488241880473467488228981458864264849733725088005393790206024553611071210114151540583989572149898444918134372592010288866759920830448373286630559124375651159544184752908439544044196639585988841310637417150546403365654023796726123609209073010990159974379955576287161449077568808148151748033632651196899109107858893691710464453617250467150825285642253321444826178090120484248297621588686766134826925993460044951452585309587372028372133254735895917617872099961221292604514046732070448866116096081642278445543999871984779056426653632668821135960780091891217961069134448054064396020649609604542636551258745087403541134333671739774337042305712269203390045468967666982464112830531825007163054124763852107108483587434004571219360709972583169803864233204309771840076116949708193984887938811434818259744383992554505208898623635501995083954982534350147016469849830412970434701547434464723697985663097823481490929664400500277319760344952116800229137283016115943070353952826741237962902002229901295835928036550275626876368274001505776584077768388396233826050470127862235695253118070129370745806350802944211339408597088285270283985800967736298591366676878426606311159089707887066586841426694364618427142680840772994775166875899454959964147047935555011551438987034493366090144903197843529038418570808916097306228161689779821425637963050451461532600408517158947736490944564985147596969883170682337831444178629059994552521104786566541679325622226911569241287234951956436981550426912375423510456554090928953173107504746118228824566116325809725585092418632281840197880094837590749418349497354603740890589042149219166087912563680671744289124837207370359045572155463951873992959386850910446690795949303946938489039643925797728346894553643736017646895915060354987236191065455780677262736976589055115719037329649593553160852972181968812262326899300912010859141806383577465338156867785510644241423162145359410781990705665863586871967672501380790353829309477455946807378681691088027078490873597802034689062503706732437469676263989552194240294106652405151750264054714971869095265825866843156463181150416060261032485936300274799956921995145731891123244360771378355824981260703731169215292899932914413493863486420217444401729204097895204481845262364919314104370984751352740571754026547846658200451260581672885048797163248422818026250025091786579848161973059972939967365508093087430510185627905909216856947912398955252090560291936819700752574229638289295371939283284045590889115184005112993454499297944966551787940940732794728598676636618496841841771096804460903355126014812254708492423744775270015194912694980785750141562109925218113261715466824528995514228036027386115311110552338821136570726275884779364383015765075141718732529967616359557038029042984611810888200307347146011968238564531586256437599068498597213917715357735200695379072940814274448922937460922195367646667615476386211489147946855375968146181877470728626112179117136054835188422171654297878513901463536945263567022610747824272042039282792264579602401584246541761951507102145733260417702067480045198873050501163282468377721711378251690972108903353680774823472235554969988555671062095538662394130015451229733962232429569032477488251580508386539895168218232761446004393966123303264414101405922813516050393574215472123859976661507263853037314531494542027955974468325220820397058777576631671042661670116536588098160313993009282109740676433346139804352310194788556429247969958134861885464363277029373490910249700056962569651695017020112966160837324741946764322881516096204433871924195834253619995045529639707912029782697251499271754858703565662850940211390195619745475172703714656997989778686609975463171429194018075956455149279218574935180720935032266279779414531789933398662138567356788538070267783515534421235337892185530653743677779786735082542301723212796189410459174769478862754738857735806884308814964966521824166187424591705162185902302748612124381720400356193558443683474637441346679628935673673566496558382650061736676280286360200197734122451041372080931543712377185708469626117759060512909949439606618475344460388851521500386672831246708259088760507785900666394555318118126654344597366303120206153456267387873563473914475208436412108553979048032015400891560981948712548731395974570483320133580859214394955811377638229760735838065626540088557961479139624283615304125580063087214604546054608957595034879419297427730862009294119749842238542448418540405299317180787582287318315455982892771040358414031599397982974669113253050614765799158063528271317292562207662944567100559977381981373237587017892226697092113447707890371642336100007095820768242062013512393836273143044581532282269732514078932493654334182182818214122581235372699536543640663662266039793977858090427336077994370879998699071785598673978758852379784500773573205999285383526286365177550061588586397469726485876612755884443719375056659263466529343567772067972392150623750845163022684556172947505219139169388876517850392286905840142620947711936022925202730729386342675571661969749688522376824090042052601300644935576793977407191871346161653930281256091457349668846548436866595589472961848888067057346713228868410274992730576804579629612201179262233558210431748866581850846282876450245825910279155992838985721364804032769624986917335705542763506814638558860657847171594391034645575199623147436877235743366261308547611515979706831747859343064810404196143222530265551980757201063013254435490020790220677284790045487946259500458962603414335314753155721317383988038559586248899342362783264121341838466953186277326947731609107759718718135266840807071195629345155558210384001113986477480725308400663327433876927428989257924291574162610556222265267984012236967385145014275485611066055070117229495117707719525954940363395819580034351918465595003421588347959602969468401937443400376799247401389217527382692097434992730964254998441652612359284974197765020440415824066189921660557072890691566369528662350574545002110435227060177931463104212840529894988408024505303931510016188051789419674861878002093380662691900442129787548533147832161948479565828515648202520574388106743074297978433525752980314590269880629698756878916743861444560795081679640678488423309046932038792648575571659090166744176114417106725719319585003665895767241750132337111804232293553701590034111348095756325105612317319843615755299872293228432811284291381213602625072377330016641502087851985082179017487381331626492322087407370018370278645722782682081931054633007778950419026746252710436904690750784162226674538513900686479139363152559528232390539901498906885137432068714380128978050096215284485333684743380684960548114654397704544985407505172962547307396596187098263404830205861554790666547034404728422634286052486517779145937963336817325164916131765988789887709262609267418484284087454408295467935122910873858913212566401236344922573949665981545142224626469723741997383000119537392034415652421006187568686344061497006025653862343077956196132603622594259439130899149081762340641096827842141417355393507581165580933380142382001841505642691793954772526501240648564198381394040808688671529858271390987078463039834996995287181735601686450279372321933632106590623617987829579314026823582382383601449879777472612846770574562625260161707092126585363455440941889329337864101181838043470950356615693715907515383114813046376120786706825097220940085817889683820921389033571256051868009773088930594620026162210755632426961752211421046570761106590319041842066777502328552055151151052787802354124306131004462528811963153074965340764197137436369228213294895571871193273944866216598223180012194056038369748932754330615741239727147777257787129045547392632971727200214873016067393763840267495294521594530403599396477129911348337748218097820972404224980903621204787295856738699985441705414379331055424721140111092372047068585879574681467558265457735565750093131575619728387610374532575920814998846710984229935379281243903084690003678154447413208796237841737373129942260766034815769722894555172090829778842572555360377860600510553598772986652309060198709029598822094347531902403553579567241003254841012398781483436886480018434508804685845110725436401344267245441352935291612229539568259579260559334499617878212590556318004572198460730135011515904504505031741598429903739698423951752155166075955830552627222871651290434209614013584303235950999591649891440423558086789377657195686507818190203245416986822613973970000557304961726885801132208049760527991690315170370530095706640708316588908398446969808302846590590016670209015272751006963092746728503745509006066063223206860814487506242737791564662977832393835257807913358655418518602110480126185056520972402939453062503288204906869773601907148323949769449859216650430862916667466448866526507373410178611920330678450533372435342016817333224397329682566039450492598899490546911362613387607311007096226630849294467172607433803285077225505725698763529604710994845484995011370602130770904583000130273286116685349630726619802654792321542228782883953012719301950287291628322892925187607385491755889627699901858444666942930119322685970563214714879739208217308217426972970741935806031406776426107952346554939326801919589110723223299299976065277316243977684436807428972823072364369044396850326871958889096095525938518703503267357613024922177866782497950949268423549797673327064059595593634519852883875042461720307473920137973363902369347799423153149584046817829205588285478127515432448397291778045670172341704612445217138580832448945780531106650786219406973986664089233460459142645023870018169522060248719582937365915370934226321367721467568418117343121858823986791263630659365343391221956563685051770530378681564899724066282004772152557798646492258040401383226837034887976684598162490061783407743163582503193229790891570378664599355840245033310908882340380024183606059078589319281122239619817990445078366326362439578110755297054944613785726525521063621161834946915395227654901603052352789109746135581317388563138701322255015112316015652515275487537063853485279369147699854176911886003291244459862643657435894833163456301331058016896137723670758470131323424286526072583145811749797717603580443082542795409474551928756949970042251699809432013255989589634309878838920203535221650873575474720840905104052166443983177955467772149517786977061533956640420779946547267705880283789676080439704616258465915329874841473992351867910357149545648842917909610712842743575912266074137963058986759631168597533107939993670737054755789059197121038399835452451259672251447875823839480332282371640088989706379337760712028646184676743615455829724689989993312655514481076011208748847175899468193330903587868778067437710329618986702468810351882085207989687109938231721743066001752346589624465014641371907766863952081936876999595545482553796573711612263848934515580379719906234397066901586176950878484441773560714208603750333722442944946036952608286911738347820574331846714635971183031528082243170109154807361141615589426987564312415829070853511333693730169734761204677977427764478735153372429044608677846981597824722171931154869718203354805766178594836702778491712384051803577602118578450089980575105574936264256584304256415514376590086938462561188819398185285403300964194533638682279197582311515117610695124103755052199616288766488108507438138405482722409933304203542381299328886559203167379542214106103604704165257611491187044412988345919928408707177292664761741499021136673017574961289225073925176848569790373461040389252737526234292624698404432321037748532506889564880068594566329562759044716001004738397419798170464561066337095027207887763595498295963624812135277164756998120912047936598762288375453736112582187581568295340913972908424405521200882389401954708593388764325673462714394348478738533710768529880380232046446434906025698405794240245615985539635429547470521701183035445035422605508211860456872544532133563056494036670061797371398615479479130438824383629089599824148766949652554890720799970986343829153020774107744024190075081750498750661956641413193521482470452897632514376166428366230511286334489573185483892689508662713414500912471245112730118712497724018606636216303331617757980947888301305110460034234571829373870767617402825097439322330866092422894768469549187059722729766527143898130063187371285529040835175346014805075361754198899593154579789587606312058614755361161715527685464608310470442383027980294288967416759100270644375070167617662251618546103260191693559461991833284107351446504594514323320344827566047786906651662936481529863489345458224822629220894072241914868103487497519884873364207954707887212635438328022879088935094231589636884776753372975655837370255256145634137180054462327931195304402783847531613207274238420743542326037150757273775113455658407569309606084735622297637696195061813908518052464409663249570932070060325330111417410232556083517558670040676347414049357908782014570081957428995766430749580350779634430423599640236513094179883300284850133134386135934347374187368809301429493013704183014635166138020203305870933827379446334506695720326544935900231651235167147780204446234358064124997423094610395859550896049410397235428855686475795952289330603395159456593200647075919352906374325972267980936105024708897361830138316486634944530726335917998229478807984544598467913792999466296157046113849404855100862784188959742890704212720309825455618055118136841039451439574457180845850188280207491943223158357909836415242776057728276247889762034399786874597849531694948494743237292434986907287876145745451976223898738008527099298016441319797580896271556190762038091108652817011175390977653759732877487912881735151458063884079536897143120219756755621881324180879917879268084698729518922401689584101123447084608071796866496907867137920845856303161669599612617971202713909030061061356566660999505498589315342559961681472654567802250290911452931500922407647105737401485444479725455714001609629309280586993349578811072089055355240464299936698814441345274983007220040626744205988002268496491202241352915278309000539329352784369562128561868290433789886851907384667550281955513629071820294647961876178614597216042153824690008266249540434237928865345088011313897691546690954156120947509857045559391939600070097749781286968145416900917904507064918350597748448879661314273430411629199886860964445430582972308441506055627424137112689998590421889290655189010102571729654914836862390515003754051841642424504024764570123421948069809920479299598171508591670183003055828874506418156691402811824873972776153441594479531244936137036520507930665975672709848787502243532255246676735625091920545279132714197679814310114859075567476882477215557960655668046336482864834695436635839675910181343787142040263720421762414958215208833480736111180796510239757085574433729203421159204133558469523042665411447336438135891707026603280703927256413229351827130921995608352288297272533501830864002211458014643050037342393691524225296611975723277655956667810926487330237631930059267216630754610396634868235189619093871484549322402146458738348509483977685638245447815972920290057340085270509987329397688134314471355502382227831221818653573370284900970496642115529999278500423190795824926703339935054633074020481689910427595034199221356502763001997363935767770279504618888107321940576904413121589068807110740614631106857505336904433047216746485509554811109411812157854441574877335187508371029390940889870674114144668947047326507112803690493370020881355648606512429422844311240766268639152745421949715158274306347775998778959893583236928222060088222506105284268321610300595867767825344378042796979627622486466496272134044416466636550267145458569560231635830102610531796429868212605096286278005666026606689452424859106254385422550916292943897490856706760915387595379304354554848907809701185548957679287355832863843564167316592393200045947609576527623982371677803859332485113787894588259103009342924343456043972846160476773687504100748475293377490882107845400356285784611518075729730001176266664236732148737387408592654324857953858186953225977899884404186991797509998956452886733895561750955332096536178995898778369655844144787647030595681454475837043169732243354729433159272770114621677802451188054927351025208823585154543010112394185878808735600443634317423477492445378937676860523413288879105574024922496608154730278372183216249001590836811807345202361934188215342829973263703754644802763261099158119585100357248224063503557802430534817023241352821376728491162279293516645185135146710676373807677827091636313079107749689050394041020678491600035923045740575497527571554555472001590775383749387305701074981334443881793313463343404425626583527968076809682871756852319928308996278852720697949408435224927258487521147725493262780110049716110528616906509137696521728287889082693882169385419792788857986340056322824309091915343109866477424862350860476621001128338221294761589870769829250926790556560062309882704552034036202400869773225137178101194914829307883207121576540187478502506577531601855684750175839329632240865581500031143771916783630293165328602055582527674367618225195531598268583270693054097309753305270312054846673958343716188168277010857367761152307186968107256557626376177918364217326068535465040756893312230523482794032968865396972419984013071570923099719299290572479531755312520179451810103811405633405800968755390461920182223638998503051973490673216289754181247347562111312402448253024718969334641160667484864707621759954333108437990636025881578485816365673732596288555318070649429369520276824314291353580569789967557616545301461437480230286300901094354922142968330418691017369227723364136213118779081289383311631168946103421091234834135895102087553065081258048053540709815759462271097222348521229929921013972488246123417027918483093958883316317800541235667532304419042367931282400218266340232134555843311272797996193114638145594560544140771535087910588317029541827991361365972976562075905347893633193147770992193439319057122348574667027745897021786095930139337225901516366665344613066665649000424322744053283833901568044555236201571805783430517697398301577403143126005201845541699379564908617871817410296043601129291299920137028505407336354047974612622865445035868757252983979143021281703505081448201259902245712042958634156443620175081470927526282010501334851161200762328237484534529940036899544111180771824319874977633897118081763797932026859465807035690297818177914181093159039857594312704353860058733500301343321154097089989948214811660694196108162548477329577811751915309372896216230104419816158323670591964240941601063664424682054843750980712965756646449611802440626196850494747884161673974674168399090731591329595962196043184822759726352786846345290140350902409577407117966652384330667449990827414217806846100703553686109119039703630859148025219073010225022560749996957111571078478483841887285738395339111715637240613293868246753621116160261321233296567203760369206531751836825046886008464472964442260468999345600951917162263025922560912528278053534755737218798671145015514584841046385835659072504588426714611717430143812348353417715413133178757850667919321052685505752914345728075378232147630126912682869167349146244201764623360852215263541264059615782223051160028655248992210801564660693746038341906923355729186857044024092088019300099961867458928730067609143203385854803625307787350923422632101228684912678977441573046770493909358952223244655589529281598613326813501316674735551323302289184882066912866301156559448727411048865628405395729400374586522124643157416325319268149640199689533257092661524824852334362237260701324864443862749397769793146169388458467113931229866866179945416661251389445492684411242557177193597668440819757084410756428586791429165583916698741557697029336857376204109859851793056826104411193453653959271779651670862815818482093346570079962343074234435714206700591798572267007070682387246639860246040963619236540930207687372912981891409118268121138505943946623129947330967771628956256404630840946173071142430937561048189124860453471761660743256575314176038021454643669639879342096801627879838195453932250381327844000656432145329429719675737090938586858415977996536264325788927430169536950645140768786614406784228018460269905218035271957610180609508963874839434258325645189881450354206858615514371800628142091882995639247631071478202199075752275511891300100779944884243834202733383529335702476000699587499416895970727196122107187717149469116489903733405723997706226279254309308710389614144184949523199625328576392426599390817005008309452818522506551522633049407259866890112151363542565941513773784059016077308263011890264473579212902764225120481760257177174781677876380840666742999852546121188019637680817026103116768326825989453596996752268936957606674932281888085096857829677825539363504747028513734842635090362252298359743966683685514169012830353334029721475899216503344021971037341357085191733565697871703895178515451263953840891500809603081071519310430172851748267218066585354296198663215380485522352145081557612303294046026800457453253448562981667550965349787175019266145654430671670359393239804014692590613581795876129557548388741411749407824279196799316372969041440750422696665207825726666918722703603943407930893409780338930369167442693660248583532022228695945555932101347979762984432930612407019209641147302066509625062696434876516455312456727781209614121126697313153710432379192704825268528336343278270953516285625515805457401203911469653443986121516079991107068804471464439926554188471611009595118972865701033116873179159349494804696555962530040270784577147699926711789216824394705357462112739954296365735623223581881920626318164283971118272776741278464796829875227930287565755125062550277111687249283350727069593952561857494691131429247741783672402308344530888231123228102848406359964517599312029527119103116315489528533682699977806582118691775314517113423808954171243348504339152125134545698304905082077875971388535562892221431501900374389537467732644403035548680189023184529078938793747603972423419908480860156583923065811737188052147879514948805834190430555164952512267301499112222720232869513382819992099653527136036860539214251601315544159753328118350454141439824116975726466418291598692894286038360129218963747569437962773967859885955324612129796555694381304543925977198947867486578950452520068191947738036089041281795747227705720415882026717875952271859046186256924074182754258445811919855785434912464770492261096044422549409878268087678540741773708541591696611521046613773244609174657828749140773222848315367583170536390278121017744338473740805798319108564213889165565757087935998432564616530930174709942641831263923365856298070148976601411454823560844594944670674053451841372625336604257219220150478198248937134108777236191793740338893196967158880733434502991511089805611728631304730863114352301952154153823990915678651475957821476632765818802524740690182583539639990096653861683449859331646116506826347366778934721796060701794281630839499704880015948370831221957842546655447312125823457215865215030353588125191680664330586644975226734982673352863868254698888118976431732971856368025025402089082336890741279903378133516303499322079242017614219369907628347238514002765013952975934778291124916819561819541314989089705920462744061003896449278336269113905126610016466811594180236330718426650706788544046864084542994121252278871625435892745772674082466185176202574690046542408567926335016507008554159187987860528607820138631857596678248657109532307373848192588057987830611462697233334851696280575000863472849161981319022425786421824016853800223313347300553552937047883012115210351270969831052288018436777654102922499197596220769604542396430592019199827124897435663883579984252486388324186621596268079686537054810138639193059580580810842670693088827361551007032082528611347650780807119710791377874920547698908271802270231895754228879928869743285648399359983463806857287767612152367098408628245724770990943735649115029966950916398654807597446077198782622775473058391345185281511337425930484225864865402583129618642774324005419661409899669253472253947754056110002100691047607078431207825233837774189953224952243941491660976985463343491504209934069071304122218816682675818308966098051222265878998708095018574374159238382407791286767267710504877412580095880995885352469235772389933291260535636841589863874963493812620551491159793296901460768049786148660664924285624221028022879482854481742265592347049578307044031669620042539910062845978336843476791277734920498486739102014908446379080573238586152064832367441434119743622934821090070851090825416564681355356534265466605837389602882331024014847306316747323920481059939616943993303469108485052434840103007198472682311389706765676706638191427578394750370353379731713626583129962572058568555348823576931630463733450771726571723562082138025401948568539623522228472872592618720085863257132528991245282594671151296219665130723120096404477849631037139788787432744021004848460623930093055440457751357414297359031139993895280994630221651423454853266881394798303070060140703976515905856109822319233521533079041344926293956075632355466045629341201593001904301736727311104860794832106589985750463654319838830765699623022597070204658828986265287052998441576008520376605071723023218369272043266059517316677140853112451855666588464114546375222099841057617288392003605552470041203934102240929434605648850111338475285603400786377360476430199569264400450442887766637434297627055962013683228964026422025370555655560847726966911028981449446216361809420914913033057376773061977981488382246726542839885561277069568721218859440441937948124023388264141723872922651121641977175289939006963998372659292129921494269898660911236062423702666812487668750684906739417132953380160394568428706597936262645625545737051962030219948627169626916047441739281603383849492193093435475423102386155589296869711546429633508211422785961790821731909201904721574256771720776986612435440552774952167290595754973154048709351154046592138486206566634092905754171888933464721923278591403721788802756285057805100100317234908265951397680092793125902868829676363111728452149875956654297638566990232884280476407803727799268653684727326642563201992212497737395295034525310525209704021962499255978732736561314783741215789824756010859795975272671158084898760321447941426272590023090811470206279979500739795410581483892049119194234275635195974403836871530571658503349120533782248364810885184198044828993378685386940921770696236017663107962863834259530392559939689116307418266938099756414321901618356585904272623352875534248045625885024779737894034090641082692171906100378487230633984723436845082415567015740434365915676108046435898058302294021132146386810310789361227884456023959632588945615488740445900574465268931566533812150214504456063665727718120584706846562698780344934893851877297487054204509627884362078426782249109851801503270104345142501824199718335921580553282274063863496147401163064090393341784983591835121717994849055581192506866438108934557284661371483459344040574011447826713017961130211949010476583634570082405273671537693197295736009468022912520999066780955850864856537290506254990648482442578759466263929944158112735455233211188650665541346460864268564040302252954100606415218125101238025410411910043249364102263148977994733516272947127167310958181955820845726345339452661760230004986212794278653791069247727978674999243292276540247578335763163050657614518553271198196234252365788326202956691514073015880683320064805025424889226257463556219629867881508223520521737506966846463779215612477202538953158159454882936974137094505289685106631466244069129563328032110888713264427576229664734397314245880659301186440462940329461801210719211327263462595125429037210522775084867135306941143039518940886225008813004684072375400854413922499793691301416160653974909968342855631428777365681126062820184506554377659646652342732553112390681043531064200149434694348157378038967465278878300873917830464234063700027136438624399756658813538014766367460198269435839931409463933812379086359566556501625491726505484456259365565363440005247517815184818471178645672540820396827734899801683646449809505514218132144019593186260576516117212123319859153249011233802170680008700494898838782326403346361342919859196129521092069529298760307228467738739061566361526380981958892416388543353725420177330680907074627350319389624544615902036500081244049896487199505593560158732368266197684820609755499928350606781461250213293462514472246386730788132226835902064890187497438131156072364811777990127042884623979481760387008394406740327389416657190860060459566524548179226833560435397521038488267148588022056749713879534223559901794381807163987340365329093504741785408180835778982760798446561803010534591357589002587078355707337077049873319864141237144633963684977982438864216736647783563401756760126599349292157031132728667603271974946750305818952713418636031440697964875131761163660749182812695806506146986803218856828335029268072625498126571591347258502439820557878040941227576963912516148712938795649765909556242829656341776189041911422510682210727010959223079899790019037538555687572704152709169070599783493556778147948035664712284837978762643796427555471356692308640157400136692743765920594338856340411696183001660365769774206247413569253903748237017120384109577605562205006916690179393835325806801251665957326006286026569773729364555668147877545761848052945828387766650551494249845033047532014738973975827636070279086188627829831291505849551670274974414211323560730833033996748719420377134259798023596163824334223406367374199664647293077187715628792129789792512953907450915773654502450076120442312410343090925442241487203028539193114124312050286858654345657679290181760213929944612990110550678927801650945254449015809730166282367095746465404488723505797664366191762258820750991102376698165039295297199481073231397397723760677483425725123538692807428467538389604200722169796476014500558046425528098593692505555667358964445552719349837707122263481886298572623968243288770478927749652757781866687847560846548812016828124351313294848028279529288441250446854077883768888278770793521872652835995626966272349601956275218716361080344783693397085182089875098324719398327424556010204354015743100657462442961751717581172935427911583295472272805977272062224829592513523101051719856551090917204573461134546653477144475260261508377264894434929083528931609434833725059483119250322279938509048496953176728807114320909892542829044655515658952129149526309060761170693880113617277155643785024269386800781856546274847476846418586092417213427625056247735911726378378108870789438322876827734801880544206226504803698650670271071573905230476054906234813008718983161355911212190855352860045207565199134810788467894768171281981322506946517423394893230629823130030962314462910944268824951328805782740825038333918198275598768860888811669985335608431388021960303761496162711681246155051634297935773449877496880490511103995580425030831835432181516892356918152332108881983578527295399838551260038971373013096215984686777435617660205417884126424672672562737319525836367305043649265776105690173726044191072844760286281819029560576733587768543713547947614306253226335162846627788591223074053845698363244869620642147952710520552164937681185204986912473277184076964865686044592778416182027175595739405880908010184944865850967422535099538237920503275384871887480373913191507350195813153503343239192378316660547179669521414167308184143168028824149643315689693435971469395143116940285213579999134605435425258707497574653373890624439289992830875365937831530810647024144303277901596058172654370039244897455153557922468230949045951987780768476039385464757881479185709142723059235575475248246006366606385460125047452779590886518665721546386811091553351060150807462590974823853670442330531105811955939752984478050179022242803143912220287952799354827837210939058367586963087864389521414770704521837136648545136688748652261305297799240837616846801541512888225655528055928491797349355485601620407266329598916090883565918135154881755416783795495292581790756282938261701058694010802589964600637024313138584479234383845329303156456671783349121719258267124218020006627399741261997494978634529722858008663216345251002844319652522684227434145277037594289496980093220551808681066704221053367174014211989277656817884965342010800949874207982409010499109766169775318597970946624010687288849254924183345024969536013862060277686284286954500418448693834845699558953141272168151300618773603608897231363348051953429571533025492451587715633330056379560199742457887166719920199425877550854339159164727051787623339703929200826198224340996499050246445555885981756822709801447037632386887460542458529275004403160168782116345414898655510060588194570707896991158071974558104654460941390374518732513425496872593740575290538951106887023602128758751432554655656860561312664809391284212450159200659276588111094881816216131168023760190688229822057935439772318199886183738543472544580662876322021097712860231813540879256006532158237022680203011410661721005758244886678378048154851435371213933728573071959051226004766199971306777246259240285972277086121301565148548133177801555661976132308318092587530268766153428363371749418118736956935389192023194663711572984686002963019246324489588122271267445676139120541181201182372840510170892924497590657161283451595047078540729341184252211702068414310044074270113892833974274060272720122417638983946546464270808054498447829548121100516902223755166127020451138544874600348109197822320352215592475324792393717123172057737356590645814753164462698823762682697206915769942704697833180228517954327286757161811651801742866271392568093397566189076210988908980036891725235510770792445097182778151242915051598593750842955829262925094631890678884160583467858328401309336850783812119046917025382547317428647423315433843208388875408565458885502967321935285859328886939660412855564164704364321927965151101923977324689170438568285207150261886540220552139725801804535605925907776049266132983904105845350647745778777649181270658080401280606395216267272983710870458304354665659573211956360924082914253276967174533515716451810720348973991374568843751041737016623725372892263807053859724938849765266053305587059172092360413718908593281962936498553900813030047916775088735445379563915681412069475070953002478771966627795294131416121091157994988555586212299955890900446009573314868134876309492540110488797471451155868506324416577692293287113743136509452929923678951424844515386037303842901677553751093668546218412831291512741277125824049450632982785892595815984584001037363402428815827459340957338261618185908253633651379932265197640063748931971886215865005577006175426688517781001424001535911775034135093188649180924887450326380300212946033070284201947313555393171530708675960219926875072934598249620489064971595632006578790086977297583090926959511551147553138361483171428793338674260079357643033567021118364319553675641653028712519201036903759163543627507019290686119068029777586360904909259544323070081664333949170304381299100392159658964532492747169784492990179351953835735116767542985554982768878990888350099970141689490864386150476949130936291098866251221060264394494010740223602348081369306611334330524112040450417248975005637264927588532217448951955911202833255707593214176068239124492499012142541978487887371535334526902242601876468982657652687445113837491016005011354881113739999118280409090387469935776480050533407234722000754387940113704477272844047916868338133507423113514381514613560578366320787007076413141623557605094562222730961415625493006811355654839141027521019695840375309119796977825750570412396652507540400931431074997003322034643552243950025235379537163015756556293699805961412028677357202353267372890308778196483251275920761377567422004139174460091447936762283856187296131102638044236315429929135363219826105820627386179369401526093777455405627476650261411941876424859726241239152968904390605397272872387159540017886010923064450702406355677370817452915395954559348852037552604955254819674496537234691379449432720705725692876154308750289129383978844072868705678482423137973639655007566901515645442126975795196537371375548981041479595114397547275291618724014126517408244357930279642589898518093042946987106675809462642443941175505305285557708651413920498853002315352044239132427452708769634853909591101106724907270040556510789874193141113371707262566047736030264175951940882609394037811372587866392983702564269321880066110815772208511710352195821951498845780115628828430606620949754478496738187733355657774264159613007515435893451803107074952088921560354472930615129335813444476710026470315041523753936962298314255575237177444962959325735644008751672682286959985616131111788217685640391764598292683123656945211542522466736178635105993683716224928126338889612868827716616189419077760138884611673548663190868032441286074437045355248858897053563416247253795948060310936464609442398994175462640053059113299312939944684649662818725108997672511101385682608152334052191367001284142125629651640318501865985743766305799524296619937827097989741792252114723323408520457058889448223373683250453512803893920882862192048086244682309751867973705323949174437796074365593691690189817512245384107383629863260127768375196364451795869503976886319119235906124393437755413648798590014017714279759715152152895129905243596617830230478293072076938250650803687634865742227513962749069141440743783297102199984410108226860987730168223463111408585035123277109878734610111178887568007321999659533359965740010654087720135559350672533336580919030775960517401536014940100886820641964228806274251439251570088275399374795908074059984012213845322904900475484764315787485782455250951243880908953966299520005353840132461671415634191246992803029071252050170267972997287251657627337712572753987267517210013267888267945528201032776975047799424057846908654204664093350125229551486383202881425348326958445178563511085433259848725946209489563859875846727037810428934691904186166660675134028309264998380623788282490536217349600215764597818654804328355937544826810572816260855602639428774589052103226590276477164396456951143529630861359371913315117249033638852706375191185675662117209565058755128997814443606749864704766706055473540310215625459707635660983106634877589847467105976276125022951788256694804001863554706761096588150478360567294536716354622186483386611188528409512697617827373257071078705957433674124398690873055699698854333951210985680425096735828626650911084566212130339459846124520768462596737316685439139950470631313920465881355776667199964057975288273485227901018452121674474286893769834389436621377275781985201845443456144415177723116748148793174457624868766860187455635562569606215154808925172022569352467049570115159064757493623434694153814583224978529267984759012282046460709092177412373873225754397995312809663480263225995131071620747501797640829243126318101060886668216328441562465855078453792504017259788837636505939537398153891018697871158862287359816144196534894755902454367549827982303256039644080130431664124937579936270723274671219714842640815019340768894335300572073941434574360307576734966235492030924522150744146045996592993898294579895629471060830703502444750090237537449121048807751856810711670114160989247293450035222551828912350500200668009020945110033100726369439479157517969835497915135391333458338499413509852885245113992701035466715565910861414806790622047547458242198695304414986878902238533018260626836616690144382557834805034230241534991129899489897480898372673618857637907971675918681097543954284318330011142689860021863580054475027941525697677698799782996468109724536357402967958531081298967600524307605468904492263473352282539103591131849883810582043562826738485995662089939085033995820769306840456196806172178661112098994178857099388148873879895292338204512951655431556504285580903227254787036929642632986755127463470425702529122938614925291922204865667674737321974971119448678381227559969740794971498470814687188977853597445542060475609487086367540582739220736702699604097842149660617067616179816066484899248383988514284324496491474846991106106387876300598910328934922213440535953485455631434718450873750373056671931602269614709033697234447605115810057043610794065463624806716693879395043481085427429812681212627566387675626627501340705051955353558246052097320475464715668982298771837882394035344430089159741173968982066745949104898432359147382801576036681693778418698504487240558974288192087629897337060027952159548363444931133471912595707386856522258875212407775983386606452373296342067144861341771784593716253488457504110993897821344144239584065149696274625087003093671563141990470625125439740201822237050999955852481488631598726277151518164078822375037059083348666009302870444052528437780489554529433436809212017785535961255717100058494265934013036720120322297268011197022700220567081391425229920849921405214108699823564521313445888709644875751011101777185803766694658284663268470097869775569876862795774103426853808832953547767773980381012728026569081184761277163942673433490215762848471017475907096133008753438171095099860581154759107306720704653071024207861011601672018849891055261954702600143152782519246134827238071760164971991328652378732031007634399670339979102755868473320679638839249410281028857775021376211433971599019019223163103742923245665632567233452631071893197399712807434754687137113528230123016018283431282587685763781730025464255410698790207431887576761549422846729894972440818476670931656309180315220435245863115759134922600129879412764339855313919119077837138952335808143287148435776942891275445868205779047702964732278328569857741268871364355187501105047444364789053536698273514846402705825885119235922869826313541883164829735682855409580886847559081509819694816436042179221352010075532303664524439624669848327062757548246500624356159312545032266453038692130419031356941673841844431855350699996287009775119501799485296967371890423296681621820209133838594582117025121833932751667140585145724795475753442038880673870166540779964651183301918518808190516984710347464139737403124706498913091915789693234578865522082310074100869037395219518291937559522109860014894158106296607820368607217519636486764032510387376011749156617214418329704183611607629889097415023905893439781161738273381719009435959888079467200081129989668380309846304223035010318716719253631952940213760365497273128248740258825854059490204112118452382331488899851350281557749654957663686507156985303454659673775451019796396000984129005107487025256697871600850331578159376509961300886409369846648020513999322405588108970527506012416481202838471519801112300572033329466219493773380657068955334316773221914103942154608223287638306630814039887803089065368452262394774537533181673092678443717619516355534496285789676155488617560487467479520046123867570369100548223529349815039632158020335657219921364569427291234418236548694931804854204327802835305392941668910230954087047049967273823261438516796428768661423996862903660382081731020078590348167786794735837093112628554215146271327184659948805117701050340367489506595199617889993063294650602211146714510912380358922039633132742662379631436544147114614225672118834813152452950269248163048509286718043497217311174688736948627236731880945495808323357333070512281655560829377719320605102384064789898205202218573120125892500827295983096493925183341518557289771037078873923598852611465915987595764191276705031394545916498263531809948676091492832284846877158594964943155605397164750425793431539414936810344363307110228667600653059101906501639855078642022151275829603829943867739498170907991806647487595561847381131110843672311533689417116023360031002809650109939510986457350552800043967472095819878881366036217588096651319613046072855833748082957957885374918027687253728701200718005629422514319545756999023933197244220056393203196748544208741533497081071144742850157990579664201657507240394920762899613945839337509017112975551098369514291301260301046459600365025512891666354121976089175931355351205830054880588142634680362572606433238831927573912120532946018420475658590232574488404608277389914042463735337640234366248034773345703669972225962871697518260021407884102168345302422798373000768246095489251538364534650978725576373974320491964573556081303432512836398738272368411415041375764344233499676486890789990849699535036108452813289409590483355609761612427855031975613135288997947062098138886994036430031051674546319945364443191459199536461308928957532211387092066605396393545902071486092593436404844904137093026730922343146411816288694551193690537062305741471050264705212332439562444977703643923831876972996735678105227272131705462413445948445335011070772440165904966803724062910570933023730520494695091699527883751646326782361948352581021942456546025968592736836327321973388627510622638716298762779778943099507649258356117295514417730545171087558107059420562664530131210774098632801208234995123591467071253458471290898456843883635396180034773472671779493045431408421443081209530923331261346901373457202885512373519365300189946108229075475986649036426937901217899073489307994255069436055502227774460325274551978124410616712928761868549496689797929771219260486316221748565874892053027917061868784624818347641364453123733997161176018944871837367299146657085420470533241360397431511111286272655221752993064845104842949298420322399066592938575460448161249727543154750675457885218652067676658334586554133478432813106906641572029354246842012662676331485258933571744805142892905127613241357814774118752321595734559334945280679213220470614125510456967735774197517602471409050167906806474208369209984426121644728274844287495200761190398241210774867552783054665965766439944727891727208263303300536530593205764672643605235815082829480783805179893616676256242321155179899971311628306314605593543167621665410057999266942058271139616157682771551798650310118352160750048873635199404484748645117904626025713604076745596411291876832379122354496362713581425083447161323627680900837726347723525721519927441077504358064700922285280697464120186697721802155451953669719970476830565023719065263535271576201971264335990674138003876956577601814344984694436468294362865910276563276420501190776268467426097592609968850181706477985392157086435352024131206975282336122022450416755078588517653333103457943655775453297821900943227304540468151003978506015631985816914590710135253218963169154568207863561086964341789082295567572860059862665986513345064542201790009439153419059512068682333947075197593056792787720999616947603237721445075162084498136665107778971884560362540073371493700807984288870747273568231933381714218886389806145039100997166513640459264189035698568489604028536447935659667158455608219466319166621548119519920174289865255122318556389639334684441396409537293979459948833454243133324229156313047778007694144115379131294903783447625201733276070515951818932136333324984160851010229157357258054152735207627274332479533948143516606076431943182332254602388087933889244092493230064966926550140280929147190209031443813542853932173474340909152625634717550838325460409650066786667701781043528331352577911484976747896108738543480260412385675273458477160427810033091965638787879592747826484095519766939112406902634364680401610088825426711780625238168395009573398882248692506535305654344037316945755300893374098084702095502280156458149578234101802543497185891441454374568750981768977940882291126607817459385609776176774286976618320659003611488809061220827509930956990396241335466949431208137453370243464832003954613328365103075387480311115139561793394881569988641874667689653497144490526431229259621856446176485388356462643183909845660558795080366401803167957398331694601814844049407706595193384709328076582610571654144000395119156538839107933600122347438652586508519944034220584619906051573887318796976735815263121578437534082746601660290735167732069000491054519136953033026931407481777139008792850658263632336821350652308839465018579915244441878999755614525808589342233333724612386199545104265123919718439447691157259080189201210245424180193145689190807848219144318215281054648169381852696205290761282027156844863962625918070527102752339821466872564470806303986226152888876532229504471381959067382362321371965348896052353733549616678125244562393123796960878085794552692647595856064678799894339314454932913377066442471081068037295457077816910422787983161881648713903390300344083701664254746998583344717828855858847861417158107337726916109657084305243124222978782043941057410353100931355606381904887204511320300673972899869280977708353871813856618643191236318577860941550225728564844394124063504684814403061460908855249554258804202055452082840046625418285620178945479572596418145280038334575891047972761230013373049125641469072771256127286684037908171073525616591017365801496113435642213150153438374699137683355683378230744669888820821610674100844632127148100330882163117274588228231619607284659678577342421717289481218534499507880009306850555037881694131423331675489529566668933652561035031360922453869773755517523572677967755257354741125938348274883018621430023657060288306754391559596907325996960304495227552121592401734865141837326387545641468712154492159515317829774134692339692710446906540558713569075100227979776882032466754935861958843585152855982841743491432837843636166526813693029860946632694583177484857674811329066299890036297642810751084034077952451724024698127118718828367435794197462014877193509433208340469720002466629266545973838196949784608269349525771684931699864771143921311425694574176982261256283687815448478677903233009536481322419970156449601991813860916820478882734746284664462020297796952237482080366004975375409326451515774713129565998843117043171970129372258586959631197491474464117235192084671889674807461485466975713075733366214251051287410256799004598256511751385674677001919219936449638150732320792826220102701782291209700923092702119202040053892921841038170589183869448977543701727468789378214275745077627443447856955329009915891433788894510483675852796974473922453402435274877641675397732968182621055461900028636419188037230811209924205207458021429344772290768153583612043536471344443496536086890657567574717533289992495224596210094183124042446432780914253323080740760496852099911450631427308748387020513490306325881461243594359747591388132141213305473732269993339694188057013015138941981405868048277519296488122427965489575504035692724770090526381822710646328786897217891198788940752735364373988143462307446175289383628035018218940032653237929319404596632748668583429867828477125687458935894830459481373046134849260729356700919491229595309529398006069489069090921620675682073900694634159074449223919900841242602947475921147416957338459680960239015241638161744888578347701423867270663960023485315487176068420844646860390527827989216559854424054165295591038976017093089200152179049278149641187535467076868323115114710689979441880553403338375262115994551938274334529393348246808329123663193763407517930723364090188016441666161417919767367382791313539461056875242175253009762531818248273348788506040136356048922713511189545747681979639648181692377438046031616120706487527384611825390820588433974827725811857061917115722667421018865169403686261667828739632987639837152207585240495134176838226139597067317972341623129397912370459497424118695679307509331835284193344280848989990480659528356148386673446123498147945689585420235415483333336821436024632688979797933946789095658924709324866721234362774146026751210140745035145389217506136061038169421173277201966432676808706249476077461711518845798935955494132478690798191065122589440155488267142749134003465837703161247715046316711711749067944955629023944946553595777960262865406082704603925071011417009166225092124689648714619126897479362765407930509768657427108596259427118801196217056264185736910042279683793138295782355432331185123430608799465561759674424008441631147174914126787890498725930296978810679336646305226446211470110470702541778589747215146538589882048168880331055878763172737183784630455588595336458822459483041585565518101695868267499564828241544392636496838156478882336168168312615161275961137262693721334762382874767058939832994830693077650794787423816110259715559913116891463506637885711679837887067560375390027674479677715414703634050067646794165103067035482370717345894204166993502859207823818413963640735274870727260719811247814473338446501586449984006447808215122095732840635112444391048087326925519250140583129633550532517209702418326983167040721607636356896119379926345315901721446350624682156339303479700686931004513339088914058488555251475134219318081336445550887117178929443385545250353829882525037937284593122765999819120949030988997202530941069970114966666536029580394120942612051353139056928839461847916723996702431880194427676254075374646961144973248707283431233504404542460564090130547242998909008141969188498497597697367838560917521933780486988930896460993358582685167052476650540800043937258991129300290821345539418575015462420767818924692998234101805066887692719256691109414959698303559532609943173683409765389753152323065498795285962755142671527115501413487596791890423175435141184123275645527640656965656596290206517930974799269769436054089395151929666256234509328057523606329227450066478223120158547239232394855060412305585452614529898567358655763370111289030205219208945851882506257454007933859453055772060146737163236958456144457354932580802702158977621273275865949727624329079794023859919714243111581313068432891945048207070103146212781314556064036000492136645918479282571372175880980023172209446271541485589288781742663974689336649323064958861510055606860586890482965522011658982119568984253377145247119443484496949424449469620759725883124274552545334688417303298180503543661753522571492338363626366561282077575674664754221138331307018456890634418963027364937078300665822806340628078462599910432881097297048182870654502176543107422543759522833470143067694432927804056135732131812125695074833772966197477997868314215755458730097478781042844405337599121907878930708004383554034858142221768577411842072478638185928616351928734909248496733237427620373665145463192392682754675506571748717553106685096963615861018996952959565010965303430994625451765815084068823888628210024727258072862586974469953124616074549029156719192527981299094165176299055610043808913888546291719997138892968771292996559980915326284458125865519417839528094760528593228828105534861244740697662791052684892056303187393508797057494462416211588959534346847804447389171470939048760780498691013131961370966965631780134256454583669484692931178290669221455297896820110088147527037797564395219180798654282877108026093072744580483672246105664155929969659325928473260399675561701264576344394496481585303120737416924365972533542616350205681061238372202807264164138001914095795597887098674371550597115704047138921082176657241593007683771964147294736929734844132586508544302143255688249052279374482430827804833416837056241274909495029190151292289875855014554425780351253652173761834727272275468382052022135367810589934158138202481954945580137653138558629611044668380212756086535387891057482614231714418286427852775599300511229394990845490903571878585224329400365855009507375235559853676623020054371840399469316606100972433189050768087357032664976965952776670827541917126695796626839186351120681082370279949269990357237436461546965981072170997294087291385249690858769089876785735454450502148299111578089898109669014429448957200181791810744450004868593225548727616101098863019159297500800741784009281130323605700846509213739091966626291078146824778554251439964031749273860234438713297094944771315849141686480657943907705672098765625494222934039722503193471624982923935902537582398363097408835895607135548024817703947466199553489052263840877325158101520693829536666399337224430760606183321878273751332935178946268453077288170633454788428285957162593290217368769311579829211156567967332078261000961557291464747455505206056468558138086533653446019475252379188725255245298314684659548162680332456175871136688972973909258533246480595052973883657877189817466544889092898069505868050770169904195704114037564389175774478117779773437546199117529288175133162050838781835776972600842726429524833901174322500143900703461161222318794979601641671329186851448561652034167827019586381690598345443288370231599508128953439800049076773286956685044915112326410122433417419892572799157087561863302863048585832788281112504937046398377383651564473396142139023057742286832931917081131778793420866009565982524946833483073112444300470252693827748097157461543599880864095648337853162179309824944483600697898996116550648430567781217639673828655288365979831795267165537235218526503930082031009184428494395752785613354720789887486299713331565871689105837486961374776724349419382705156718375325351294756765545464917948324354891145866831250433850063242419989395484404941708258211470641081147577861554103367293137628374768519966772295862507254209412645695485514301889556993119329172431022494189551391583186810541482586642839161209451482911299173090573479381472028400503295588441754881221005217600449102861758156535519698832554760844368616917692806854592472175415827817624996639016832741202370896123569221069778471512960306949890082425718581069795010197881332904053847237443361222428443534161859894736495052100562052904334875505156250823036210422059407750627923116772766175252558668805739727800394913134850025418739270419747266164400603019231021171352500476823469026268433077201366853960324495602314931314242442749837040353923577884536845981309364018760207100936208867725980502038103469387537064463450969832920349290085701331053063106148237105300447002269666041505331140236543074626568022705260802274531301820094559540118479862818538358851009922990898491132224338877362217436952218862212662776113221384588493129179812820199831597405744650480931113853911715059506866936528220090143187239805436793846841027426398370038096120649969905559543616446852631837341485746878317986554127956211351079840990931083801779287823074421989612893522369348685451241961417857998892481910279075422843328755278126159523425758353872994953684051939870085499873518037983612855405328518933299698851823809983666149666043150995423090770059200649398985190625662687292019017784028996393535815055128627072847491803837334702956888618499142433453193081088965627230148915114655291793423066582893683418738030048037415686507439052323186434446404557254301371828003230495428725096762864657253829412606581247352706223095169497890952596392011970965957305136663532314104423336383355710100530203299164360109731914917021723150796086389222198957369972760786706280600368302532984552542431489392939500622247875915704692893148511658282871402630034978955724999637304680644924019242467211417455828385039072913267637657334729730138354257584351297595623660514304399131874690732122238662217773020619987378417420917758923271817959749873866766565914890969253382549987183539712931994055696222275013147148035357708219947247312399122315230145428908835777703074521489921819439124986906871440807466129919210023756010684176384105911179615825669692026240455994013139961538110803777535514554810052944097845373032330573485467314460960979661983856486635385284363819503511861049565266707084126248272111864898844065389902275974389377559057624708174294862277254427363180120219658717233351304498909933161464913007027787183754090421212850854620490722288111966855560679033144998109438296095069035565340885410161388474175729380891590877467879600952155909210814581645960493657277807496899668659599981344613816542578541547791429448678659304151297880482512354613359172241290178899837816795559883133459366613088564510780455668478861259842182456322689465663150214861529911786421689241937176815673256242164117159309346842611728317406457186545598543342816695726245840254601401609959198971104461263965635650039400514868788220642771062922438135160571820212751327563338402690896094023939966653775946771330337950247263396290776180351533705367683593911878008297240354567483635632960872514517986760145854606741246771452230225265020207876875586599580807828841386931004239868092433465540608681315903992753408292138617782442631919812913543040442317427991956409606157487535608038759792205459501944862121813161153033747283940356734637093421977516866279598390508708050311742890455723159353646282581068438302707121282017823731993802688756325638004506112863654466481828946837205141706942920331900977651075763808047332656441810195797448451315158313654057964079352552813237177229617690096303882967440150371196059904640399668786332217824466262793893642654122964642506027972395882773726070265076834029138241658286280641029575563165760429241259223580559088356757670695856390652093709478847914824521824143171138762081611391379531387452007886356286447365730236352601361709313693018945730679281616676910175330071474395078064190384716165551333959627817481807936977046900705808858900539437109302768647466217954249660981643751368211977087939063572424690824805450952881900253757742608171759991749804867649026660479354817950696929284543108881037402248924470796894568715407883060736309676604599872005432515860359966170215264225290262034361440716693746619190192441821629911808413791866765157898040609016544835573587497628611970415018065538893193379471095940020360740203737007050008259321741221560785338743998614359411231352193251262269668283196270845535607088581833495574019888034492906114568676040702412131126121960923132411153409537102501955285709370911777855185676243073038311210817603303074429224973009337755114780598079011266320125986374145524280407990487401947162510405469422146047326666581167515431360123702702869532182828071121450303397197459382065325843317949657043191173536789603412909783495285223522381926835489708569345621034417548842182330804174146780462089141637408510160250542346283614216240574294986928532787106988758207151603324679035181624252254730804712790831015657435923282546457904544386908702053104175140342142457524028630764637304965639987422563582204626491747985638470478457903646996722964719767208312146328118694221609296990728671178472674850456962334781111748825526566618156780026881556702785540775996147807861548710433970791950535109599756823968828456452893118243419038038153067428871870959148486731227705029463525797905805405445796990695238665455920996569048664444222007116789855296023046528653782745493479006813042895387781630491684552178089397937589215150583194015104868445684377866501739212877354713395963945517118025093384396270696829263672701183243846539329585642399136097141370748038147322966751051445325376743386232281546711457468222489450470161395535659885459489465374903260459659055551452770486542684807984404928844115823086665247212697027809905716177473075116944752018178445578291161892442676390230796841960667455176923756900313752558015280139476703688592897807492772370394709843910869532762320578960094525245141663857969634055384544720607794739869503512048122516163395463267869163338911800269008024993846011850299216286364991418300173911387204878801512467399774554688515923061432556083795164944670470205863075289066250406286138305070227531446699928233616370114666540720267182899840411381251773595357646780193397590018614631512660905243176699383152537585014751841792245318715669829032301780542199954879705683109093123203178180645537917709702520330015415051676513976554149504315489718749142436611610025519842147397289462831930989663450592337130879179433831140291002638282396340217135930387757092542171010211218921759731583671027609480288450847175097517084953882619097297027243091729005550204205297638468523145407155638297467153243744320967946282229639509017350755903011284392260958369865880305093965021719149795811114307526530153806842793892911410581186493489549881876963599491057113985262030536677305089144442741963241451527173279007944228228139749318651439227742639724019613106081152759414218025417760678910035394622903623509726225673620280471293989224354441809400558247617096670302941591585588554279059462452890387773910245268163405567835770379683959286015049404467179264575113461365304296982795128141932754274442903438940858879947595929818320146933483598179066632199637202816436695324761809198602725071155704041414211618204601866650245457664286307161668500249986586098438737068613050199587609855934128159905582290885837365063011600512705575474283033893752794221603665826667628278916779560082135557538844019171596108318968048687751414179347708108328535760078513062614932232054903735234667083831193539558247548487746664247758499607663111008593104539359711315036708511820975664641035456710196814113259311214458026370362463955954571653236416955827317836524626639050517542391528312979051287755496383687540082081616695501679637125845875644361292768613348295884487493453177449568673788596965690001671988159696175773476525080542267731749487129763690123356516358616447749502981405941927433869708938414276837796600191849232124245842848363744351972305912030715801494396553126455988276339663082466960553978179929934342910135575912585649845257192166227344879778271976519347725888862273027229233983436735366403295476766556961684984202688082187825243221045751440059645172018393780261013701245762892823813908201324357331199368415176947303197387280655470250175107446246617655098449775042729462645509887780714371166649956651570681255686578634250191931454390553256191582903985129919179575992208384053257857868249094944972509539383238341703324408376924720396985602192935131650386720897421104984944393118887248759424675335765145508655024451463539958208362434595814027295129639620210323678650679495373610420487996348260272191714090972366916914316941650628634255925834563266077582116821550536553891524340262351281852028126839919751443305331360546804232830546212044305867074731962445767708400218193237156959771436553088574328836860818494120959935970773996387214949239823709588056252179375517695775624114924564351796259333127585519691094403702747415789769570384243803641553243008641764841769629147860602994357998193112577932662562947406006906051891330059368822298154368438114146491098747773206794416764256421614640372853471373443934690140215123294374725282605091031323960424425528046543694970462351206360437133647922961912414403550642481963662254015013213295382116914986093069189588163887377188509746549387643324972268462660720751403823743541476098851518346733452272069526387630059881656055118799452004075042137099138550439632488731295283790722853380326211591758652176130845200005057545922407868451887051895073658770413756018320720283320723468637084537724143206553826602445322946616801224883713210447832630475889399732698104834156502343199724800996434093204643041951551941296418494207928039067105636842810600922862807142811189373897085058594638860611305100532389958102985042438677770145122334949927559960981162664234659840177769407294260251027199797008397049113996521277057128231773027941001968596023278215368180410179583315503352356265668389087322096608121683755536916362874818635245165203993658700962228155218203130433702395122577260046390542499393664912815115636725069547614197562497247405011120137590550140784139854429837086798742666805497785538003302548917353604343590954025439737246061258673422610710712477061476311288810028520807445430923759482277275368905028638599069844912923083248543540292436772821674457957239312978082540442011945827908324554014855858097287647975518410752402339497783659801437683416563382593296465724896402948711384605188449097127154331792060551443296069808257878441927140605048439138690492297790948422904584793430875226834036996869769066311661529271814951793010865041447775780637846628136285847013826364948641061349398187668141475965395372162078966074503539204137724750215046340729319796774947921710212200372832726502518313338568343464838168776014387573581004515140613125504790996403528769125044828058782712752531136120238168089523514127377117321365637101415814670646462916378152148003011096548559933426144245237662539016523925330933392087205382399933046828083564891757015237224549452080252154434239110933015577238861352116347565275367906515665560067359328649725440507107653904462544184705824579034876560645616261080305329884914486672284298449671772149500904364815363789250727313117962813925729957712824933318272058078409500533276865349859563639347562043792498362986851585552825781340591621148859764708112344542685950733679575588255569236192637735724556021401332937440765825158439265515510844503089907090051844653939495343304975961064849567499769016233937874003469845539312122585376054035890566503237566789939776614715131196468351759068923957236319621705311046945655834487759968888014231606034957499781085683802449340908783164085570451106327616975612353317197236681201690648117586774875883347405998028478257823852923791851252415945271073989946317330549074881981711825189983390478866535403065014334705016263442535628327209215108068150062340037761585340109670981555945233334950822221423503848407766213026104368776259073539775555613423775214978055092634797793306975114494856094719686015638022816000882091579939127604201494170079566123731234314162927755327261021210315517705730397146099859352108622515372544154057944387555664849921757447042235451367280291350497927982170926425062455550878928109679496538189743596631644524032188391360471983527047650014807477551701411141103657343677404679098092273867945972777344594746741796510063546683369451619307630916964100750379096273464069241443427347424433588117650452267203567863090512007951358153551256352867688868609119277452173880625122880854737068759423811959588011610367645796677132688247085229427449106360364908984133921208457081618517299846061896428602205105022631314974860232231229868345538880786414744091519208980083354084093108451539172159039307185425948019777707955708283418946660698669658956359786349067613871952881583741291864977172525266635331281289316825838798837822436667737319171519129813527047161933585995045652711155423188448686289362159191432087596474974762901121579126654941068933946104529830343379804455094509645232599562999556935839715423625394049347773928294840133801272797062066077809977791189703591047303739800567190525003424435784567875095160860776093702841782863292408580907445180443540811346532325072567184319456631349943800045392725429842711453517486285886857856929153630042226461263783379008842190859304973970741035569217337050814478516175453964790253653983947532918042354126230767054711710503894679386732606077696123038628353952202633254671721560253241211201924194461036564699404455294994259152364939239972567197236769806631329479074146900532761690534913113538136300168733932329640216562342285638006024148209986910408132518389854384285742768448695331047421211719455507804070774370390927803300155742217916803406239965250383763496679843656259937191085499943134445661335974165401620486375753434418910134823035342550101968649203250033313575242434269041552440114560295666595797637847279032174068447085540551025494005875663505123097500162102734417377871454917397002159242178150039615738427695619101615814485022732441879125578832176532289231675986546378396705694600035792001129277170264710782171705354419081071724989595881761703422896672923459656167391118057338078698518742094385399585740356407058810546702439770863618578951103565157825617508530051411741765384802051490980239674177266756506255218459328948210536379563329234066454257505059462251343829205117564853396942900740010912831405311654667735651123570741840531175585099909931557483754588486325319736650038624100828947772221745642192705577952711520238009760015954382606462781209743909758698532520081596621981014108077342339614979920074231997458193972820141307714935556066804238469851523915463347771356756245627032768884984236564110976865644111640941655253440269144601373230717936728429133595309602896518732963449257932228284841651713139430176296957421281629872741235775048357944170187804011574536041841938446820101284669731503454616566835640855881842538626439615599926511909876306207859657485074893173835391584721450760573831128132284768058872224674659420277891094134166898819936622808332101058016620102492550813099137336469210932186379920066893837510783812013314256611027004248749145876202640617003840831560535109272298647820126018874343243759371837648011909626150421447932964443880867502986247930573245864714479762430115965732520584723585769069698974072514343928904765560692929820506213912220195650822686895327731348253801727539685293632229154186029533624257617937863253785383187423184375275569554815005316406438855703892586282650738382673673130832209475648034538692798596270208901311198669281802865819847233480258955220756266459480963613952190883213620168722711828866581097389539338111199120110511817404989275789411888156179814541085592829749164647028944463367165028098120556618455331768770988299166478349131772652683621911176101397389746420303769884959342228080676336889135370388498698582809541525598899531289991333296551811960680393712779749213002130262667010509640746084492952446451714213629100748816174035536705893141299332623953314294613336012737031309116107631528093063908056180630306322208840758957756934773667880965486346210418788084895805803539959854888054949061562000395556485353176310596615728047650898145943420224657337682407251228483968872801477215212357128378092952750234712754982097331844665773744780064545596066316613101714531928286805975084139953454535533567667934467145293948870257328815473477490489161038783393710064440717547794585011372368036401218596100471831520349873353031258767606784719913101290364982935754714080916383745597590646498899868884291646691026097923666610527295208592963470988003557926143238958851625668779026294667706795349410939238808881396150465641419836046481193817406131328735832492646575171992452896720961183551358244105230780005215143983870591273325256554447643498901148161328562275051338787204839659568104242098293011291869814426982093605177641417672405502300170740627935447026736300338330926864866127878281325038745512256457102949177565016173114155043775286301333747330263838392830120657909405072512382815059935978218839182684751416772027203230584986743077152912674107407868934923181163676178571196507464008213463137118726200293435632037741801833138599065385618547031458455215019799202450434119029379814535978292990330653839950031334766554201493106543766754086742676092031979461233040896432757164208651536329723072984362933387509835076884719196917852117560374555351572088921533778354224870768073893482579274595892530238330997474559213495526356094939272153889890417476701975874051486494525242719405606759518204173790349225706443224302482182152836281783210783191344067690921534844929634043829310688064528373543939338366066390349981494377484739840574800008125289992987956816211938851170571349261142373394343091799771139998678765313276874410894153924518182225474367642495082534727460326060724693607185889587472731629084327478286371577787450119196803533581143605683693516079902718448745882512179223580127508754484438831028482534047064533789168470069148855746007729675227620189147158305446959890141791267313104046594600881119178796490575509896808969912684637154668404940672480824115789936513179502310382276507368580162192848325305086468509218814650656738918432432015203054750025719335783508490741126077115899691612664244859161815360202909678427872498963531178556708617074251241586480224229815955968151338879713046864973849626912945342628507778361919852859866481789076744683277201910215422558800982526659617490531944960604399174144133428446214419081462658720665224771715367012663298680124676366536635606192182872859322073298397549604091302446273376313722251303449327976634217716276194652085888580485791458360531085794930311208396136889670127599096490061905068980152550209701720043478476251942844476691915252096983671512245099889960101686098811716328850044330378649482623513125164899370304586862819706651730542533070692344755089046762375531910816649313255118994581062178290026204798644272019203723611706369453398404995421488232470442929435604668029132917239913692202817799132631997469407696441752410916251456533622259118836148139842407943995607547637667817809583843768319752762095996174782581932398707028146614190084178341754080435736759931302932352847492629836549855920320963772301498577458652632108004926972822320701982771711757748314678140521575036855168380990817503687452960421099195872589839462304994058005544352360656370874586471834463212736773947408574849150617106585944005595654675244020094437588453470468358667688367786093962916077412138338237169395500652436917394530144943463334518268488509567433319564261117176916325740960132340812637465903156598851641807468863328971684846419273993474713986196499058623583969080139674521101144894946802208094125475917478390735759057588674740911454369831799851511727311209302738758796697721370597438726476659255774539763998103820122162736715941912501260054959788837656993401200296767044835677399720618556383227599008285594328372320407929369242553222649489023186448835398743951812953055425661571064150307893387634259001924505291689104997780965785034251473570235122401079113907511698927159903464633507982853669405054280830716358400640419721395187810463399707277786044024938321158491052594517940557578807377399549643759919549923439485283170104755718925385389577254618613595317001379088746967632799230909079195774449202055319342810390173136503906463122743981388621790493392031060997829422062457484935399465561562023947714992996352801048558634571243399706338619845936986389012820863159807735151885292231250137461567112539790044914089820327232510318513575132657358062077689251826456155261158398203153992852717004938556559360244647783556233750205740262891714292202805932633464139569823781526839366509478785832287569709370615128882729295463704939706795540022989328435155708557904732367132386974140210506525635915618570756502690461519437136876734807847511367625413218321699828717504172656417777451764144090779876404246570492446279340488470264362484955385293858642774856305213666162778097123076415162279829660802092799131336603999972670017476303776632135272082565700893566912101742047297859729051802752064300380553198804586557625912206628073310249961447018729007816646697173595609930540188113959386498638536275552229652835155620266859410536508360609891847294327745679571053564192993462364398151350549182312536785416452944389432565703651259513475102498060651574681339093890576112779542003484177437646299003988902519990741860376345075581131532486793237596337603629270026165784426006212279144899578491034081913441158315510484109738011241003796861213749156165621203484956651095029567607676419954559949674130969696392377894657874568594985913846808515324868934238669730764712859089010650831872744457022950769662381065339487429970610507898906298794338173985668575053509772974229284569149108430688094881326034839926424197695662922051125109253083854107014884826769622653043583924557219087035264243063351794083375768570477409338256937502615313211021346107703204920552751337802249099301365208840254636511068431156521341209590804329150626389550597963624468354706152560231206868772358368517604936347843629088931693761801327738056381627919993172281426782370380570682602903521963104961106441537085002763482560205437271210520551053705998379528056035188810728843329680226374290309084952492159146627172025539083783075440201921735483718485057029146584119680873233707355442088864562128384715251832115370168338193858535973742042646896003816838907058975984412528689405412960615359830593903670496034754070266305592821770688296652832195268549503149823413553963908398780420130183376941139045920344711154972131809439580850847509957344335860223512149133213508315613139158478223639753392184478201084624186225158506890202468863913854338891187457739332017854835205729774253669551330101130471132432241148047073267697373785955508589911058852550429407562770113179127613190508789683183512120902709618744086502125278021810919655710094043969811814614992002332473494583917975155370290452573985184751195134859422054292282765445108975630190877718608953197484931170454757736210256279469194688592495031986106822233016434137452444502327821852229574107905549141588271996164732200851414773659659826658610446161453353557662746910096237069194791031845428026635626889461373125493593436770913584865701471658926568288963637012154423259153099093803180512040015153839077640508555155302621460031441524639924486647304472193834653068149746939796691708832701774544673677024421365824081418218930324454337013717317115082643482574448821852011829899768432665478885676093438969168051492824518960280202767821661157323329216829758386430192938406123092872994295670753809882785647480266398610412928646610412375625208129789769380689979506028821676415136074857769021645763738604360752173533243902112470064918585518673603677900279005514655817392869218306568197227942295190033080562728544101238740377630665342244820972575357446466819879879105371322058834354966573573276941385405034673356679497797623502509356658565539911622296086740888837466627837983685627017868481448284188119683042701319874191823549067626673962922181359710208303512248376296018962693489408838336446182863036177234441448968889693523861033363165799470563379999804618029519744176066803829365894079477212518676927166640467720710229547497499089607852146564273147027853557507418109303023308028504537901825242596533217179534951024290856169958119377160227384771596001915151078764132529762366616081016393155770641390147886036213446163839206150297184170451301628998830464436177473035966673513569939853353958816118638357639808356241382592648479566944261103881371698801272207161539328053212355734592254690785532143192699240979232518739818824239180784561812707092458922977134624279719268627164446248061081733568023300344642422290372809582730288285770792531655072678572497837313804260527676284344850892681874350710034605117257071374951003705782341857824498924875549116035445902280574853789435866201131315671848255382481749969252261768462733338312743224538315558581968946273997044055655940736157153546187905653701309527645541685864339635212008940454107512629371657192985792421207673549038250925373038911107371766979837216601739171674724065201086311328536640185541725177137168608535427331135351831530562719447819974888015062630568655278556325388857062305574392905462419634937234088222681576137083445183361787308039380687076277535207494647194538647505100094610622022030017830431849219723672413525170206984959560176337426264474244712709103952791453839538509903351596352939163943109744846110534450223782144578597589627458659393956762714745087943242305944803858878296399520462368496488035241749329953819613455201716631504578522990640845047708298998852512744266704031553719150524169441106725033494501910699427911519889489025420596481596592996261976940549819409141857213512159080950303217376603936077096868682065934705448952593670306159322974687268589409815618647155357421020203322412447824369773806599019557407021982176106897658644948773775373413124452489528222331568371254046114169072137609163971577281011373142151573772185426591873062783322840228834999443862905755815113763727265814305033891685835589087179188321186655776566476469835654482993676357361597243540938199169863155337564245581198761448539285098484520400783368862799486582648582435046647710571170998374795565935030417641622090302214006778398039534239235573715011407438450647917105411407754081905482167141486895068780334174613436892785813824341271563505216322927575792679029508719960955668785082829585823297352348202088252198235744884889459883528785590846333078162408086084591965027745528289408323358540540535745860320379756190489031914745585907951229827103219104141215314965258376682769126582219154635846089106661626958972722247628723422103834356625111816588792747866076132929879163344609048273303466375487162111897743870401191826819650195190516955196345731349227016225584493741527956575150656809293473400459463714550432806396909647758080034711152022015185157034300218232315081477216364328898347028150855130509900435538758674248590694332920074186083611503317900558750968036726495029496079104665465036772971629893294844449545695599381789483320630783751450689937605746134245008101228530616154765222536953448471377394087017038251361843217972949801389094491736657646259684020580989869365834176208783676805377855147515269755872319518870144313314371315816471751529682281381074836783025086947597148645177323900374991205053493284032247595004112001284878444067881473841852284797692434765238473928049407237050360502239222965472720811884616004442008656298876280622795554723067490848142740536475914879123246064739251507973980928704072009025783090714204928610881356357960228222453065518801942324163911363398983205787897737355591126063675461551419713235966983284165403234939118641441259573894046247139403234088715804503463717019538582064731106214209163306854566247274801858148549083422946828132892041426459949869371257028816424729833222897820969321384889612166549250788790244092248737370301711594353987907462417966608957010039396561866109005022420395113832161843777516136820851085574914892567856032316369824483898174590990214325851305220021733475742957203021735161047180751617358911496630902535139549906182325672776157868195131083891525729182613509626685713584363596752535021802506532802152569538572556791354151164625832818050908184049034999862745036063483806841614838998834828553902588779290907296213488635064696406243326439769714134658535437275615094750031530925664455745776449137218655073177565792315346798305820420867501565842938281937650827362593295875928674011431640140508488109196927493589162778596733047843144888927730109293642045692684469477684763958743590585320031245474024653932690119278224080332257803178315300634106651126924736650402011444409261503244670227787540792494439990307308635660025843263708571749653688114335555818933318818884089735274670243348609470445340113749393375414480371250299472951198732683918865780526705084794120617769642951227716316270652766290685478007894510725769421641426043878347989684280328511048299249532814910835108182535383220700089475707382470577492471755601224691365652511699156412909122305029909707232184646787321124065721839867819814257024217399581870397077660346178247270654866887323987865366276986526455026042988567845604968183822729227684867739884312205957773513163642996641650688780233730403028591060221710902751890592682028488147821778782960326938466271079765022017405352151901679787659610802675465669208913580451006610424158406091584371238976180483171109741148643973803768092938456906782608322913927457075015876125212282778035946937912906461703890401074122997594446477744328800936257692095761511435979874445207148913943418478169216479335078204755270257302917250539160292147620828802536646206226904768969556435680054935171896915710244363378203812250025796034720099116381805556384415575557257145370966073079978853703220506191544313463697868886423471504959019589727265246721064605122646907991947546296774047158465924138551457225296271245655196525452529211054216747163498516714878318694028136304468469719034199004592539259466730201216904525743289400130954088404995703187643799683698318767212788880244290138156869053948532908604861331799186613464363463281566500882581759504817194856918807626535451778610663747066641662493926960138107774862206919732100054713222295436121501430922034019725580352079137847433095973614721104340804737977999523641481911145064941313636335206124122460612551803707837099899820067125278844065836060459265312446258263692608744475977832435588768588830517316301641803202530392508888341359093324285380812799970266741414698282740190395984945257203247545531866928099228506905378038507932345024922264573012147840117635213470442017923133279647093978895286566215999415966723473034879819660393285449865478273375698601967331407806467777661453451055166493015845798039873574952275759555809479173388633027869898010925692359393116678436910749617360698442147415957327359282684118808561557412305188927218986928481304201359441252629415737691907283386202155513221892045750156894950525622061852430724075182023543550906026453791792441353324394640344494380517008609840480807992521379030790903508996175110343680710285599911221635961258613649790695086760803507536242102488377811963835658144267021705835345247774878596395322085444230747354483818824640997427427840369947647374136219811353701912135030356237110920139655812681538289378661839782460222375794403334446240231428645090236520287411554963858896164442648889106240700794589696471402498820234752497496098924473170121154519406632931927641106239960427968968880409358338603590261043089893133223974299917436328780920623514741309705645026612310189809444665575627081116760980817962733082786290322553130377976246139393366156302643049029718696822458697787231426210466120144972044164084856147650360794930612436454647020197041973680657256949422031760627084271373073236766951946813466520174116062181060881872298502625961150759896179014858104297146409514962558215259044399847867878621461625344803282922212363282569199738898061932850917923716297873585536759429724462744607000483940526882770925851933188859167278904882528294748577227378902619831746839159597500522513163908527249241349194704828324588290840358810484542700035692952754978977155643468555649758920432424776761694865652339988305425221680153645153756031446168563778098856784461933870490180703694988924374695343309336549799519163299846404742258226913022275018366134084871956475544937630290885185999906343040202919205917528768169610949739313886953970968245665437148277632400939914268398717894189176196295042172562115992718341328290235762505713850429252441586435972763269296150581785020754967296693300047391033623710701106618220300127125209709438614522499718655886304184693063900739408990563494122011238623485954276719509544972552666120914507623692993350481176870339892438718152525743195834972451864114916489496118950725266641798996469927351896745974290970177590306079433247881539842999743061124312861247464187337596692806847725071760843947768413711768033049775863910576685586250381036236096873335610297262566673468885583435945075080509167056950269493726120511212152591390181762494147291371893893223119639159783153751735539677384672323052203171124371686038885452706101067110043920790754886991924270410217719948557588103894989519205864650487866064370529163747292173751931201319187453796060172881615101129520556410989466031744297089351322592093958390895929938548023440920937259645854322376167383121649740499436502579221939707306021114664909687776983418327168160336940152811106181136243687019327023097957085595958203957167394087853707911338312079165880973671398642559231450775675395146681727418763827779884263914944745873959919764202885002007510585933584418972838140480218172060697393627951569544690425573119851045451965047148961165700363207064528870798970462065792123384489911008970312660507708321947101926886608787068602529759123279974123913273510402598143176578912254531031041608565228793593069477499555514540831699796045978692708142355191433115977854897905700720635553382491798698132037806942804447989691949825704869377429199140819566589909441459687863475588756274179739274413481864408931670091698092808824728681715332753235501373641066134284713273914720170521485013499720072558128850035854462110445031641077324912524177433674030571962316924371995282297946235072878575456112035903477724042019829149893750671281682203259353634248021433950540168457530356068200907517544276837873242895589556949269557593399949575957709490777573896176449513002999113376374339207391365102694798598736953705225339487264973173855890392140831052998089800492736277802428346016624867285514592254328874556730839673870764103971578261313335676458524089306266424206767384135913441965315871952889931323123873402609412332808493816049829834743226185417656535095263575442682257870005534244104172062901492927340336030148551029145541181040062968983813046172044185992192650930483617079416011801529637209378689849648259999489643243204340710082472900012601124624263381905602331181346887312365319554103011032868222209494266266600489181958729422284019175320259028321347705462344823874980828018023038205561823720996930082259140147504662290664678216445385347049551029512395632251457137677293600916741093441393672692041233918298837070053009460077156802463148640340040590868270698269406861977022885076252708267942032653998507417468564197149315682487944357473976066975675527235131565739734855805229235043774682104830350843158924662119060772657821040487729347747819636492273609987423567607046993276782864714526414255171354695370646141607609343318334781319406330913178413418825762238299806815829087828545287505360580585922809854191010346147240801842937489865314523601298159135133941613400170721017281748798288883011239402362752666978064099506876083526609743763339407445600390287352968921642072427908542737378013395815215798273559171798162709854296492855607173744707222816150711131525273857885798516059185034165100572676873036842228385407999542056662433560204810218918031407421860388657839699347539286315384729978454766880337813811784102249929912299286951394040270682660244151608795702529073821593669797475479163133208668950579709817412707893576527809786095828410828430412623492308264820648717588429699963558863224814724392498525355578415870625870434545324993891536287324126416412339841968499889431310615823917699366660104023707443050667526171812913084292059770913202255787375348787450552399273598229918321763362979904146627892742089727060200894407961571709846520504223947135228991333249280738086728809029695171957674427287323481545636499793906349922031033666054517247648880942812852197514449356020451386853794353510820539038970192966887427963487071685728287663867835506847806150112222524529670680977295005910070758336791297873931760389572853540834652371497971056503490579130094237231708129472646821449920606700940254729191165247938252651293777084597322183914029956393714640369500266595928158235420578602465450910347419934854670956465032572613264766371841352030524459249962589891759821574066699257057740088083796749024472428675725831452149978924000180309556432684663458050969920009908955464361645768226651734646970027195560655785014260789878130195212799749322709271309458176301695221675151969335815238288561180313200760567313710018097388463430583411703959185781532549382743806710233233950532887297466999235175759488615958231772038975227284230232288947579724122184927714294065964253052228118342001564958822302272848076828595409194285099782041492019931436932085074428849988423826016269095146510131157926108437615856023940270814639901417518264803392597287967502476057384008951604630798401688241503373781654492854850157237413123388218896430459825388131193519747202175562521200084437138209802490977049714764150893341213154427186195102964255887333621768923185500644999242548866655535020829743556684665635220992672327330146295503158323321772703571961680268157480362505581711247391459599877750161681977626454013893839194228208097584151186015346522930241519945934484166847733274716849706662770063934498201701055020700088034277207507592946399396624873717076267688241399566669181667280896879881325808864779311018045778950733700148777910996530685418494397387099592423738198411963562725183979813707392795587168082610375811220104863191007185181887418491817263552331579531058937976314286628832216094433962327937416889020849709307272186449239723733113583612552957147192576306976039531701911247641783983121524644649410329765886526321237929618425765350409731727753915377632844665630138956696397800833401690390534020254021694223764648390662923932014691875486850223046893598871742575134211950099475173735441581192205754076717580426594094516011184727794890983910924702144428878019526527466863576371783158560864799229066273704747260669530586194933263267172449178750873113239786240634908337331784596397165555354795840412955133654837764161554393752863892591694780753052667114631927289907686719520444241108798553316836770093863369383312638466358900239644390668099335816399203787541907444970063835224014029438234625027196626281271587966914145097748666585233882629061131758580081127852458181577070859627556085906348663639437605233107232180648472046124060276188671741534399313282187345788155467845348707468111285804154288667325652437233443381416350423090902458519970618634081360247548284195432653792538259434085919940399721964853093381402796270923595205681055289445546806846639652543332315245476319382311469424733866681035350700595571015598102627108971020127070539597192015507090567346432752117354436964015940529019315403360334626961730806729641113671996975322669273143029821654550677083279211857227618663213651430505005386951109392096291137734582223922966410813867670286591800342047388313562496913524598337523784529772246615948140984457448455534132051286039570934895365123882316716570773938493075213505226813719403130489624374955884394507781137223102273989215413084907725543621371331815820262170485485510193407741935441472840690012040392884591783377776505605035758631333117542880609569975067060520950647210237683970103106953397050088558551544744282126474591968263998948005221716099671346808541578658248962654667666794887158976045998344479926507094953781453146393203152060141301310393956261937807487986186445782735319586880877310121297684620264398070974405515981632208021507426071848607604181604762568892991421444643062004998509168478280061322437063808348999659291059163766805175742054753230247881251169002772580968973925400771514104465750309365276554502015522229280953541866008020731560502519606018571574718310938258569141281101318311446612980633717835719242500733130386009531967533104644591058541109887454950564268301074370759521883841263965399039890986489497882323591588941180327755967906004993161613430794187964041564915848939362458032694860090642240761684076282570557275637129278999373675198092356796550437749235235428856002205388689293350510434743579104985392411157266138797614803199579618225599367129235250501269597796843456093665738504612278132316289413550103541816469437119042899828753959465826789660413849410288801030484835843489218540125895213853189448804335625878894502142964344657752333020840352236530027629031469353750067734541974851404558772219978835501876196916461486769319325232335534615275537721369953669950079967262855098580859590639367095863192429511384690396240981203534305419424124393255750285723779196572479728512630941011008519848641324163303000499653751686254599295934396311716056221217490177181684090905433651938803841097722365836061992636468288101982496918394237116934940257921015011584128676467218171649576638216282606135769791636212834426120930156193934402001007604602253072459502825926300328009437852887916954878642536548455423402195262261141234247513665924273253180137422066863077274910994161956473292950709612562216714518595141877118187513595072553045982372496926295998792626156369125548589703391817315875000604331039856705905182872448117856335685604251937893945660759864033513168478799281405761589928040733530213473719769601533509640092399867575433947022628822151669392620407402488857579927384517662123783956136791521017325852226048410744765488910084632425918351312162583339494280632169248011994675917994752419458230988612849113051828638096229282034060484567691811117449321132459903797997674696054051282450844437621470209725298923067004296504211799449350692215922687507986549303187714279029855571478630111816577641098676388811068357203845861331830200540416137973008633435710984480290740968285542078220249827343413235599384010026251228188744762758917745818192048883987992416726024604482939870061289026398343241157983860103869096191376341498608574358674402983515296236067702256409875586443041689899477628253019869431959788688119307515787349909890229002019743790451447705721414951415431319009410940488746286548126031610383880849232585187171665202878716416625096585588125795527009402851978309020342827070408813555497557420514142536283602989353514058273846492074118873947160232768779632711443608535092271672512359220800534947497787711537422372576269016095568263397231380093758071841809057748697459812287919548312508598508260894238768846685282218559987097205413404971430257907132234542305919062902145574796133985946640665901008758830348796488434111284414595791314231704315278051788570231619839970858957155884783722982885429349425644729592206423263301241011900620880826177281505581950304724200186565538155491024528435052957784991204526053712345258704423716595376544162495350609395735878950957910488074264014647567629285099802958131070517415674608959459784268619382306326428647122721907913055321954971087438454626459286084643165045760836490074940799979791201413553574114626278149451064460719110732284635005410189326826240697317136334971325856845488890939472125692043714395719223169076153981607248226739105691657884719771258751554488010115802222416676484214257853644945452250406411412405403763594888011595285030089863025082328502020006575405113492720721936773635683209328544615311966783456447537349117057094788522032159826614368768235530151091368373387093884491197420863822794428659510489866069077396110089753167170185543057876134434075361471450489378310704608417106867823935886032510324057647939235528858254028417154735332959295567913034479536886605057128237640562246720789609614955492551336222042449917715298143789020147475010069195841917679205139099520590254031513044241666405013541903202262996418549987212853899785929672621265665276360750027718493722498653206030513765335467208535923163238856315130208024733512242255018441719569772985509870848167203528259689618125327863914986925084872468784890545538333524258553255952293983753959514714898184195054594045517615087416617840900347742134940649039783038297705571934850519645387109065702934768053835471080847223494983401226296445446103256042491925593751720458167069990455538990285767554570634909766931655055755360646794424210093974664304833228269673915880223491800445147317234531255638600454528381877769801046242064745933527519664322124344864861773994315800769934825747202650163096927443230483298584726445266859746675297193348119768565168148632755418071448336078373888625931532539343933951815556871281973433694839926872590657714772838921853079246495453438198219202621138966153285006099419516577471603099579437855947995741306396334468348680341100553166033541066587020871952243171523481019131919324816956633804534046464341165009548381602338920346564882818656838725774881611646298791204641980918090058270869838429926078264688082425199790228277919198137403746508627124753810760198511253656658760675252800788219518110297923540928566224912334491329059006398532157521710722565093100249603622369048805016897900963148227447871815669188690192653181359174504569699930027221714470640120610608437240284225091477170657692776843950361484900406038264107541780629564048098499899227323592910570823267062010297971124463495427268572287997378062891812877019927501594560258639103342488190063676859861588411331038857391106893943343702123464081609560730292496211912374757107923645166225306327957862083910240642525662540236373328790241121193801148533156889816698670746706798392336128685453279485475953392598305431686458690803001350403543295622692958763963828809418848633786533564747390100202824791115139089101592422481785851555899322168358341645161029439006167629700713190460108860745848996361682379792024899263052485963777673158712098043017467077323486269243958003452729123587494894294396985845470773193042412107006763289201753888580758856895800670019619432643695028760826327828867072118954233160438199495704089007955319135461336038705991042303793134974289138401157505560185059269636458011866831255987278070023817096303384701798901538272285751241957880055213191708958526699736194309543462621396031307775103425061333210365162393718365119351049097868505386690351765099611628334772409036030504095192975412359633063766919051012970775410412733235732561235036148135854718524337476237131056007835746426164448646560737661826378886272992848469686964989973918414208307661637490024936829574641186124885537617409429091341888218951039449984452320675035073043943499291837489218587732411775174013948126100184803802978080673108522163298518589107046545018926673520540000599771688554273571096326873809070841068734477077651849556715716222170844389736024177739166073371545711437867056668525842546366576271056066059990600463625370868621967211037273685634204923919585259883498335129683442987834087906438210713477348999683476515051223880861196559268556897773445446219051337836525134058876088372844386917310548802835487320049604685178734524880614860370237187246892647458222683211943228233196183013437748451101052668191631099122337081085163811152508319302770366291514412220026032996815184526920274188490572832054241684930237628541161429121620050233862725414014160160473263830180014542681467069494943448291286019382101759271875854240098036737033010335332941625648222299587110291833962405510892700003748140623368453944534227776830346623148613702424428492523438768672465441095865746137566366965755378584272257795647082172293761076481412336974898431866168969250593640056339182862858862874027038113685421033617176517707062368074379120148251759477003698954787174626922804789619779377894679463839108199264640190928654904713864400871004243115306089607848387970554841997263902141514290455700332386603518667689786028141129259222659756181806961381941575976488615978483807970999230070250063537895195088286890562879725603009342168811029325423389553826566343944688967730462813173730006684419691121200400831719446832271664139318482840592372484784153055393731192760382934434952496120974197059070440754670986822892250569942460253159911416516058662424607359150865677593702479469745627149800914638343398480372437433000009445043193608309578447382486351737524939389581428137686788717937678739477926264028590849584965114158992236044116127741887568389623046242842314727627372460231914026876979718456949107912241705544192686662169413245566556968924808359991814116719182608884061018108863664399715062913427444282971511564655755472073378367853938012445739882042489757312722415594789899790651685436612900343291504983115286822361844174264791169021693124718929531812876350169825317780037006547579367878406046285843514192865930532923908626889094592460217840565464863735926556292982266700662615792650841881458041640988965101434010102983575731269424720643866548751044881346155927028871183495510615118034810146351128978651318431749894490303950653006408316711245433456913210501680934796510395710046308952894977386581227190363845671542523329570384781501707302841218451781698640924848831624389066140356406445801391206326255099620100528491700091019661364632619313929492975021818576050740948476277921017495672580843516061211913766446255429649009855393952326889802102400696603979169443868806395591153099955508099608293802478913887726047353478984637395835339382943382833918671511274465070892962629934506041916285787936820414503462356402077464607044000800196735989833396462125335458677210889569745173572508116208408105829267859515304931837695246956635409842693635245771338621716674895063024301212425995988477002208231355571774135838061017750401383794036701988064157194511214152775002561933717091600719768109672018556922214629780559207983054941939544390466224020174411877697366281557534521010836482750966741733599088693782216866043494265083335287324511262854926984076925983357483187933472458237188048137817981760186835274854434664726923196484943305315385243483194856864350240984120363919719174391702695938682411578989784482264220422777734112182969433361936260035347772640991347812788524916040018691364785594214120578472994497000468616012880695864349756599414837035523109118993660833710825500218455530501039909648356796851203223181464466005633504989233421621905629973367844448913391242053660025646522535428491914871559987749442452024308501506784820748621225086803989698430064684008821607585693713172670977789332486858655552499547934175600046050111126549726697761154925464222710329332071028757564656231221080423101549512102786849876335856255029079404706233942196114290814077723473713813780814261225902122939981910938367225508323969808351345310486740035176384229647732200882330916512861513396318273066502945676645096075213797041799436782034214300810607250245081357224566832041743178192805129834344350763123080006994599383162097350619434099652302751409771871163714526562974044504757471905515886428847221749689170534816949801232259570615162595379858007316409866622058077530139649330431558877262465056351526498608688259965123443023584840647391596725033331376289392821362379677535124033041962354384977157273711906534937141859524438198876393118160707511440438817781600690801652352813038840879154031194108676516432203741703148123838063439369742779774579693363237442126622515813029646036347793576419430766775954964255555949868115521472781692521936787140202760453610941359405729090948086800970601393926973764729066527750268134266453504547033002035896948591186178539133247206047097980952263343821786650037991529239724929492022230697844326248086925959142816728347072114379977250016972403093953553999443259922471218015316806225371243189010383660323716485407811386011995296412636704097656799724092436359244641122327107582216352875382689608243384987484523382560799016671761955015071936855885436648814065017489261126919817543223326864201671813302200423979629572495750379743224381566223894900641377788275437731719201327728419395637890755577971967875629115473200260495262773089691577709895701050022555950842627492202551317044308582906846889096094722742425244294335898623346811040296764204309834836966109413674411553496476218585269590007978868619229287461429996690902220847386306374847509069013607817774611193004915489084309636230848411249778393613722670429797107882820875854280244408880486928291410757496032256685267178415531075704945786269418933024845687920949461696237247918651287014188725041939886198254989655871594726868036654370680781782385240900309136109781868441849687920464608415011333140234801688029724861347100101402008292993327141749229536538750929511351943667329150812733478223650379557616779256573632557266470192981668208621730268345772387238136240746067600639745270877269439937433792406841931119216100002193393759244341147257654886027668311907463042835394194851655181827770122940986205853367719354266476321691645124192124064333411116341768559353378359629440241388360724405876964143649266025378712316433763248578867673069667850123472794155308767057671404285822649761502645153482876618383655326883031482675321434339981028574937785111672015247759459646482651167432422856381217890231069260017642226172786593610243690230179599301084464193316611065943150319752651050623662996882909455841731411685613191412845552010949454522550846475450587529343752232554697064667708961337503745805909508474600775140038923252635495885388208240529428458299558410116816076368654924546264294968409939312795498288067606352763950614985192167919638534706588751310485174774200378816410725448181318150407890105162168274264264491256913567087787867713482065049832651825245952859073151320065045842038896074533205690839864710633474285979347862516140022492250087038153695558495206235022137695307835247212729107635179480050641516553272928867381985620115469661282616301267112533961246256789149407004631363642174276374231687432186794214138444056035597966368281057920520032541298534751621231533226940743188840668590105023245552890094847437826282658766042821319424463260294190519754502539162838039190496014978344201611416262449603212925655351530567496317535602674535759291835642037944478979282432957913961839984692971161031059718210823112187484616940661021275336987751263266895038930087872155368306028171666983271627629891601838809119180716273574143404889325372314466786426726726703784828287899394663036658878493205969668497461828378095593385284076950221152628409554228898632753223514661864935575772232458576735287855647953974130169519325014575083602643103116864870173211787353173524938602135037075811863393682151406195894226973918198164839065109734597943519904826553089413076732758297620113135795121348700333126386840155174068597666215600343733050924312987428273133327444724944679989637282073885844220031170693782131348890958692130177819265719532243687665184118814359844301498786766128247626474754887801581534065374261227826153120663796810270488307731481719144453979566781055642182522294372209081853633240035292906156455805868892342883609849607613285885574391196019832825522958216393520829489401071511498472857804005174358383322672475066979022365183547290622628378109283246718758213633207718868695813450503863530367724684593586748028026492944157161693931975371787606868618962767850115720212986876947216653449954296641471574144964344748826050743445588158564687207068288457886452060456373759242427871231147896628778931948495526943153765612051836433898757974291790429700139348062363024801888005013010688924061630169886608984950606353469797384478927263573006973589618472781272481576410878270978901909657025521189581700826068616931748413645664047976677265088308965840078728641252640361108512121045460853003054297673296645754946641456148805262341583782296945405741189164349219229913436847511880195420241792773590419697608517082550742758193117993191687576298201537575176155863611065171401959389409399564148623889426099109012653885988568592911234119260347483073450490441435199067102887392048647811305609274472296865500456236494104531386678292531691183628745833379655014549964776191733717398496509201453668720042283817292640757495255930603913182308037178659561163682674053578068713298126256565367076969292244708453819377310746268271283991706779867335053943418258208608199677237026368457613332016807442719392884211309609764116115738707579024689972257533262646097442282229690622209202190692760111525356443340090753355323360397473098166088044782670055149368058828995509192497739859548431525079359943214772852195560279960758955846471349047158797351076362573752407965745122829508924379944745204715658618094923923797369006954815363662572077445134159865225189253818974266858244752560708904322713017581657859998097988712269851779169020738675640131033454543617419060492920059848957299905613962117781243438481419249185556443958865840883263943912141083025041381530218192438873641375705697746584407603277065295482575596117558485047965748030659348616299541566729966420024862368352936654163047269277402754555664710926565068887271803654336957077633393517448923336617106681530936235062429823698864903649601915783133523940479651908784705385835193967359446374598688266609663636269194379404804622923075207365690279335233655318657620053995639911792839668563692826000430957103046394084266705172288139473134922198286777870385384737811113447416032715483720166721534006437430971336746017103443574426516647659911507132774941896028069708226652092292079027344545381861784227658146308017232072766195074244109763418947747431989238767147104374440421113869630971812701128487036763318485714908604453182482204353983440308749562116099201497003913477109197918109193482710514436321081973560664686045094815865127839866870306192643934132855035683937505248345877445404574697773702168556110401843679410616192961200003581160065235494763752887090501212691762543627086666992792466945168198717975142180382403842426510217396582101581410039483761762552464880616779126534157827482985299428377904386184256934503534531264913808439859223555764637850654444673110173945126338166333793143583300470927930221788864825918687460514257349314277909686454509268878345553442906459503418748472416208591838360247394771293791141584219478638136701060369896280927850441996899117094128189572074845111988062731715494362555047590243981625628891505645862362865757940904411798655791606750869056206255709271998301023314155683119537746722371640833497357133910915336863070587095747942509191029543457513463944333327081093618093823454789218915224395186855538158294874627251933680917707388799189239745646600199745050864008643239911974453769539868085457731502772560738458937883367248347829485247364856415370074367635611926440332377073672461443642987616829981769637345312408649664415874295245114244861148850657121359461429698115227647444346638752017894974357763945790585425259423671494270809030986079997353721938932178930684532542270913671474214676520418833947920725681963943464301844308232471988344108225577867480878321448733569162705979429508768205344355372960285826336502810004331842625938175603545671106983610009804553472794781621711043424651929093398990440879883645815006386819462384307994813910105857382160869328081550140463330374472998507903987287516470126725067563876679251528252297429500107172519785362469728467365029945300647232803831369871575976887809717124731844519039436543024329300706471733137415594713963282631103684175898264557372579322342302390204307288704384405214271445978980397981764719746803750911118527248678621307767836990834361253237665845577877287487057879825555095873708694894888559081140769914382690481960061423620694863531948916283067689240102979836658132286860175247890039003559093708715813908292781873726766284914335595408962453218192176622737709255496150108137419739390591305478417578356568149758362873568892917201454140168277902955272284295163646699263291994789750956528839820096929909993226997632672199211306336416220406805760117290383669102514254524785245457015149421303004338725325339966025862194482183457147524464212032934958348843758356861612199688817688597023895644000002418077349611713114938280672514142737245653025898608896610466672818601634261102150627640174912849545040940882925731566161183930224733737968036671687381875429621097573894251389590706267325660782643312053718024776170169915997841179146387851459638658595966624175521478285316238159132017979349330629619008568537444909191169129735198833029940964563669021865920112634535165964278526672749184697613200767040932665906584000792847969427475980449217641001628730560259073138149864893584094721861018160025666685197028316944487083210217408085642347174269491038554692623685155533855507642105565355719644461577489569495234338987903537438239828319983412774863993882705887748132894119595879226153567626211839328559194568452855200116131347961845400558934067208278737473752442081778146900643940949618619435069348577633586054824917704237260909471615864291285140253187462707551523242722319314215225827007925289232570848556330868073286407661957672274354294455758506803037388891226954851805272978684723211179611213201647426700200341995684246032076980574897954657053779714848781235049274252077375762067789704479012403504480896538992015454899711711360048650383065052983698776508861652475475734865353108183384253089821559284962121139345965981914444277035813900286275190928035405961189322354738954734747606987187579331568252777593399758227233846986748032858550927932251137160594205428974821450445720721267541425613125211844706237620222837081308186094491098560666981098678773229572881266360345335397547599091636737807583083833521607564581433008472417591823668160204974104829171684859942409829763016772179409966565709726310810433693481088904891126683444510528217197428068429571725739591945607685766443228370657597562349199340261145794483166903373078569818598363592279807748580613186688755245030968769705168256505852853425514369509030432555044725419911750989139905179028845158439432966871949011410367960625298823889183336047919799917024273611429289096077239219037096802504925684191289736016095607181329186722589865666608816434128797750785253999395583491968412507797420832180784357922635873473506176467739220454614897956614300386511764618943654108632770878654270838372015438633845697899069549533253152402249699677299714739482707961373468560292123193931385998814567669403624057359972018142657772422393534988082198242932716635945924666187336645519911126682826049924124783262642968079261694822043381827870227062315918302783256082911492942067784169658727796552503422729791892785995157081453919750440267332603006368852525790100364041336705832020019272514242684694598134877047811813538375598669380296185645821707291621249216413951407523503688422729174123077076377187328916780826803463909700567448594819574056729033637435179258671764877743657305900489830855075358980476202017815510109202646682126374092939240949067188890480495364645680449740308962620575664124592792806452180461439035861557005259835882007782925600420878322924206391172636748017616007748447828394988900146458870712103845203283530516509572729424136880873697025190687529714582072005771218013996609011655526889271516166587849707258714241245898101441917384099160857340156543914996480101776693410345268626432778121905989378911627371808436194275362496788836010517337620236227435093944507208367757878858665074840262127509440184086799577448994145630837538261862611632567811429077819517637368899108335235010047802321842599130383104067313074171843800769677344436632262798881665834825704708267799946229139962431676113344413189460823834101536508180065990038469149093461078618940443382308931650623026918978035401862580321409299182414827896943368306121807180559166923019889276526925021206808044897764008557070750586307051727286884898135269606750075767066501903624953702296198089199978196323439862429267725959819611090148218021790473333489334544253597676579893646382116207243706357852841818726833714341016410462513061693580143695444721582175554839252040449373467978772521922778664169428291467277508967734673979425246005781248837715018793587842425846504129351322206969253107192975409791801225625402534771323315984781627241375997001693751631062991357256963649085175439712186582003833833223587722001334148046120618974744672592188241745892159992296077431676950872638768503515572510479175833743885639807102412418661529795777077331248575625752635935307387526290708780042598122458681602438609513682053109072380971108523055406398663004538683858099874199665316829825411054704722634121983815423076383369269123488255176755220909452545798490586532356314095351694695771253538204514866062619772125960816043242178661670686393274060602230371047055720309365736200991248954906678691919185275450893972526932209727547790185267743367494874062568309836175177918186838096512614240568877308091055052018205758268607132188108910438283519247232823949518574032415567457663313693206587907886115063517740121488186212169490401387345106932557116601423482428457853478218614222202208076430824693353143582879719254520920990444097970952210928861105448976028709759944254671219132783836487406311603808630208310783792847123762645525147981277616111395718045567404359691989367771224565357676552860418392265037697918419116871336374291370093646614489687195013534523537382949454522368996197393246955825915488201364935172681588881954833478528207416710327296721516429282405288478576355439910629895872484891704206185939960360169316477349404802775987431188429267327533171931877868089458101158152954484398165275732203493054217571280373815619956903976449135210194781651121389705439120457471924790879258064454644484593298488703700257824420407373032804904722599472350499473248896185321938757645754289902390777844300477525511289838827489569778093202475239990318973401166529956793919852181391404263984541866765827129414430004036111042662297157172821851082708371340580793588864424487948396748941107207817407376206730323536379482670151488980756159391284260380756678945062517000129439700453558082653499808765663084869017505419345650602735872134347124785158505284219808540972825579027444869065733593204882007253832026423211307399867799631596140690931868614585374715523339986143361629340562649220641330188878709260576893176430412840498778650050276171139118990962064738860420512159694270719391875508489762614337504604318359748265950045025943330586736022810405940965209597568326100264896216572654444340056233608675964126090199810802322424155016172779903684449827108559062425497360394217248754658863459135690447275539799936040778418350564039428332206227273609305067690697723745641166724122737191820699546656740330561167947659651796356179281569009045347502152685768026409462426167248646366799390834247147626976454249279978035808762918563372745251016361986837109202076470417149011210843452640337909834908680469648300381835015681482095456737347992550382981211690303142762417231912345948214219952886932567155294465969619089150536800141322588436362478319756182337325992534451538022372706909109143061734354988762115761918783540104089778517630521351651612444129132060698832830285524728188907710255699175318458521534556331144647549914768883013932467348225648776939313294184843919794050002784765102693783066025956079222949267940450505277626417114260378483453131877519515648493542703183165262099873787715776311016399753927072708441645831196718439197811028188125339489463929111140962032689650361242405833621262045586134913533407226135142242836278564789072274278657794335779421337282542036206044936958546023489990092348632501774768420933036642755036257627099981711000684541074621883623468569818794553901974206251507062923247868677811124912226329181481454058964189228640288960217005152703987743113082379435520089738558750191293885265858667686727801424571362468042167953836608399738442385367471904320121539890804725598744201461627669858383638658803942526757970900352846584926671410418909890471670233590939524781988302194234442732372051604527129839327169598266676992817190411236620518792088431932502910920010001009520580526937031997231544235734066186046845868905879332837083875273999783910263593277036934981193615727910314954546372844935081765665175516825105861722586056517283594124116139608822039153037809592146999774393994336672832885680415721354373739326682210890252146683102122111396510518795796583717428995581025216676646449436927664212519991741420557763093304887727092621056762227785619911194871344653418262906975398324212209240636445934350671432813788582414013690370708872157256446485619149030905553759415275999457947417011833655791070121948717513508805965665043786457138738978512897358150250473470755819719740849312883456720148167608819360058603134799688238121984714655868937329141783641395426004159789940670791320726411187462437534858560553461599204561535599510745100579215191668746133581278119471217642974343422947502240456418668860921964577650406287604315364124944814918690474337673116074049633894462208717165934577193024185251919687973461134326620054303683601741065587675786604241610083059644730540834186245140775507314674980059208659966077275018927896274933297936368798029159249819395135360114868362019441938717911068710649302557243730209248975944507824363272708156829200121302923144055424453576483529987531028889691384880067515416933741630367391518562927900897220635276043616097301168742001391344191703613621129012926114556523676834065901308326769619284880749608907417890756592153572972902335465473128555502496847620905939907397563845942189635672933839439685557907342354748148105047014816232504435394887110741351424865905203438609666917351097527760220811305938190849442783912304297664475808871740321559645749066574148524101484451196481313091932636029914831644118120863609125534876909273179393228061058491953283035829700282033341857718595247575529185343503745658262013088151045379474620553275804014626892825599788491973777620228746790603610047141116737758250066318099077376272559557343621881165709090444035898645292958426069998317071930245336749273231761649752900681146264112088656989531755017220878877689206877301197951045728766861294878970975131752052438765324364504897350539946541976593303378326008306542546836623808889448768627868387249680997961770860884419598519316117244783922371966428500284989545710868335284581016172618639591258025380277079609418610733653113536759923424281241668058819425075761591106753357659498928345423578180876735757291666359030860998285549572396896224771191309836883195219538391973918743988510096996881034964859219128828733541979682410610200944614771989008609344972121165122780452334123796233201458539223447861830423778673292794760771740147891269450401138291123372525806204765680493781451582293053286815006794227707399290695314946577233081517392736925115227416855574807392231667025392180254113108227317387586202681768945553458852501353191763748871343408401461855197272971801739224499407438552497234519151848529191291145925813397406955448408511148891824797487597772839698322637715109911109658966809199823807227153420906601419362418639889702871150771866682826178618109341218830570510883812546870441924238168249911498985281196528801491761869256209932016142396834702541489450914790368904601901866115353966916400070987056262247476103000324149208513971843171844957015505021686790999371717951201274173048225573282260811756841314676250854017389723179807651956886771378475246520695090725597345407415804352401348830781484411582725436936582034807856160108667610657310316713742009703668248656599082133154281703382861549505806307962040096250704187851790261901059269475855297568795880682198632199112967955935195921528527076802327876117809587113140344091383628556546783716931391937103042753234621587705890865968241913300980555593216091347560084484465128243633880098684860514191045223298545843991852564974199741249292101890446162940175914254500586684642410880061824416949198119241134393503237390577624612002210681776743828336742244862465488558947859008195812626237489743271276150956178671200752045435733371450682476705086103576197781211144744750691218847600727930177326631434130102935589564326736267734574427909456780473855777825225741924581782342350845467002590295919820590347440897894543883722871554886027257875443049533909857387132347595828798457944207018723858730162082004899000124618399149477000218308052740539801153988550740230291147780523133019009491189194148727207853532249176276231238937800786460044957042273658481424323362851564491789725030549442798346123170359664861343324932856865579087331749173145491735568836367477886495829500489441369841021395996183728330689160680251777465405279038132727122461977854656683593602668142359801291111984000393083857464158591518174201546732286897088412522422410166130312871827342520837387155231008206962403168130028880137763466958634646083890097769051523122562125034908537318426453020557959305068800644703409671413301868647359124334214196997101046177623609159862768363297539459899896969555674047327640857685342003174749351846922033808435511098616550241274612626993470102605162537242333737427452234905101232665304300579695433718944425634313813107140843362636516032065474119916090409308613044945818304211010824206082137521549807984118388712381343506710855910453868896888083725193452777112555554361107143419822277149726537329888886154429861912286390038539926973954249574245096894238706917752496915954135636893360343622637186257527217254038055172266562060957195325345620178572817598770667988723923890017451355080373125975797982668964799641046226510488675412465926567068763710327962775729806445595837137581787333350975029775282716649760503871647688898494894627230541877525025889503638157058374816477211939865727579506312172640015122549556990148918110469135311626693033460013996553758026867773514755621551253122884298090063217795081825364428243324340479457409558062222761311726136088137838637391666939286312879497004853229993179742245589413133571179978146736898612824585904179287475812333728486759914834564926535667413715229646446715031372042167424924694031795281822977174783573280469932015555679587843461954553328805421305158198740727794719216414806035897297856515993680105907257701343279288092996890207477483520189725412900924073622743998103840679841912964695519820236902831044472497166518307243010830882249938574054964275391190536002942127950660948267476535133104777978200542638223700785180235436182709347693177243048191527893486302510845746545094419922029496917438436965259601429282053926513145504612067393806197201680041626867185770051429800901352702085205867417739451806449045701109705264391468987411270722382961202727601573392310638747949667375003782497224755045171599147127623833891068242861707894358261152401505131881265778695163327147799604481319633243400256701995176778083916022219269690047161407034676117538404976041162744451052331075786958680357130656614468682866798458437430746150235285170458180533665564889758313361172939115433524629161563647428083308144387014604914135080040014310653671712988834601126877283235365281129184834493761140786366021824283327968546939902644762996482482335011724780504798981380362547703693993252502359814255179385310880148205706139318575779189948828196774451473836695362187582472522272237732714248258597384821407074254106024707493179426283163861068827170229868284039482521821990648776418395659951221045711076282028466574140884557876992592835557312532403921150604899689958961947100961539408711025234856972913759350783142769263856161272215527928597227208379816144442927889184671856174308861380539291774840231279723273817017368031158804514194971270510267456100726581384622254464534634020106796631388815355859779697571687579811558687801834843791858417067224147438474049564038896320495772055795643645781284720508776435717629961440074872961625767442027500279215577257451608776913357435347813234841676254194127977605801822745536499481940004723831508399479542532295158181018552300253464767475576829160982970888217361050464233022692356883907541028735063582643789066669759801953015675870768292343401913252619366569660222004457022223769829018696445539213009965337355868010959464249353586503884572300057700491639317572389305240806658334864488679299773502715077825401504065996204055368886547888249913063847405346283715996943498885587695362048007597696292869327171231210045162116566572203270242480215113940473506955586125741420489196732413717811387077601399316781182758932475066946249257306320106287800302891839458471042868037031995951747154001892475518145846962842507848312255593477701690433181224093683731319712111110714976365023431258544298327811637273299775914755962048650070881898310504506065484699889004703994131002472429733102203927057614007717845514334163746696804204039366478094997063061419178038900787385817284279151069198703824320191753033119513102651089491629808243823488770021009585222684879317933715992537531010863469797383296337391293367927225157510253887353856160242807566089052445332133962204823843791132595790802907607838891595000517014949359280530548806827701618282820785489545507213364327595884662512475600024820090771269977933408851642924358651705950842508246203076364273169404719198286447671030056471471822619433600173522105836338214499708627457011035479205928937379067683154487092250217595923906058364944904464847625469364672033881763679443028406149339705839009227155159087386676689474661467143736889922910882765856598998102692815648404547322370652771467040602994529554556188131757957402031046637515741292536202504747326692521074871380364777911361384591747072972219497806064149069687053908835758245345327568144060361693296321768807215919557234713330474318727235173437344403945905775338152415058743286335076644907626325014701487087481967799483703806805289825339868472103895888995269546325701219287129236308415858926999646950681326029521826224271789547776163506272738624250130332816344631322924905919865224804164106386192728760393888623877188365148479557660061842298015939457401142808220552443004308204659349560092287535895305221614310086423982479539078755605455060018504150486443579183759570523291586451009890885270043486912710896811363526771123089743925085151273777315829221475362357890424769873512426666396853739931557513088197236077019589859315583533567126531289880887702066652365654967034949365600600205214398885999273976006946402093668199060897487096997704077886782444828062983468198981008743370828513072290654505128399660513782054718851245065540522581381090197786509911815163176659806495059811707065923266240374393901288762706634962766237237783592927515820174975720139923726016857749029985842684740342083013170524876265912151247487061093218900034701702260526519075433963988015308304689456028066468733204594238376681001232891142787028582754984474541514755949473679114334365368555388013080918511643880068755545447471002716895931795729651426255377403361790199808180798683984016834133668019388416375570285520949416866409080733362416522492378628448406665995028345074372865886534262902757763342101796361880320359963955245250077293254087187951908197525507024155100646992083544152405203639197030712273420902315752993010061397619927743345660714419398735109864904876435708845229462182841475547878698774501723730163437271019928244571567552461288208743497621052855738972131354574238129027137811669746619198817064149026860342440947715173389606287973680327338913981090852330563510048011659713570996574497333467852144263910955412196725510341217614550441059832129566652532103402746618665172469510231815181899436240660282921095622576341970269210032865812950281993188055155114362296022980948639929817695221433169855137382865973738365719346137154948476526499116821668398499034346637776326450679555838091026993539010186524705735312340781188543617008867704035854737912091039339959693156189462283492706969148940494804886202345732322172336606934782768629351498126850399920249785458838816802977878918021476397750824861024714358616740218284122112919325889628106806858501122885936946751910916863126713161216238128599639874630731940518409811113564820829958026529141349158456699457786742409647992804379513944126205536290918945072936515383981606181784998778015320164549379084568459721674671030386404942695621934646265003071467526491884530097006231857793496283409074457469555677400471051720045896590886993579773957578686451497097912096070724897631709033695197502053118048390157169381514749915419672247154804725146989833586320558090499693950053540927942453506785844834518531122559566740461369646217257065904734929142032718212861935665914949779296712549267900343386964810804861855175662748799383446660700203628634153385941681435686792071048477966253137676405685802133573397858826684089989776724176523330030619344217141012610822534764992775664234759190641655828104976903800297602185229222657101213246949553821911635732087397031695066900313379501353393110438628400024208864589588170685754297920003103597361781915936490231877142411374734311407125733688393702231081680516370733321913348841536510222177862151064658822154859439396372804313940794039826279014867937759692602064374752765186407418025866460512068553063783751623148618843059801175356176701914016179112319491446016243961347104896818149711213403986826788198994669873222437675439141943474399257225427920754108687459482145621272772372696888061552475158913088641314839308852572333868510057963615792728818923707009676100475194145181420874691123996934027385434938775657501179528805633200892720794768769849502674456073557334656673899576736831374881900418669194019910515652600012967894104913747262760366775085374554916576106552737259852076965359248987443047316082492793290845413676151311734806965579926107229808031713810532321117699160767243644358910404722977107078263472510762487090702787759511163704643791371921971240073013335735873165105899660223450586625176795329214222646012720466510407396481069664594884721360686890541751261018740683855045495247759287404615848335636594250954470052936295429855111280009746900847342027273179133443453315754059197046082851264591559711761314784630162500680474744874284477216189734763703266024288859619659145102910260303674778971860698312517043019649858741752863672783878978270816441897282288122167137875179384820919986574249235136994978920231585102323387787912134268582755928474772769273671681865123410415091628654085442272902302638326684772062657478078390337425010068973258088636630055996405584014655025119340713598975032415252736699936845186790385894008775444606923881945276165400197579385920803994816429383695101111480742870353449792419300499085749413583246926949870635978162218540985888288087939934820377741128290781379136131202703744466151570111835478020202191209845827422637153358722539561846146631877720577110251065759269142594424939775030405001704222425075691834229204152673601537917695794684511134664532139447899777442771858651555468824280398858603211985173711431303534852615566262995997309764854592765549858694457437005105431780473098802841360137859456047300919261606933491907050601253698840496175693254861837188332010666618139831791003596918931733852077453019957832017507453260158641939745399731221439876705247834018209105118481640206407250908364478130424917753823052310199539377600648795339406386650964414611990952149340889542366973477884014070122983487696244747160955962667757356009450254446256106309787691575441338456375977649538123595025267212643677455533172903349968229952280906076213397190143563825245425706535360998356937818591194264858708057404918014355577756742804369835392515955635673772186863291471049949280812962487548912432623936569809624554812689057560043459201754651137526306284768231670410213894545087418758933006612575021487925584665092504846016966456751116852943723896608894773943490403709040318246525391484071420963395477424995027960850574897727955111773302311484840235143043776433665066791192770550517798077836367179406064989522707047859440495061441331177689419822367498529871287109765948622041369366906842118756388277182144368364704970584750650416346772401062893255976015311179711054396641094592975163007954248049917987708337005342657493795822955490405596071015354482970772589141357442212517212662362070661921877934199319581565219673649728013185486865810437061192583429238431860142183327137129995709127586662082849350160405701502646424726792177270165632693603658590072325558110986657786111558684536026052684368317511601836022601976118936362445636320173551110583522677693240624323764433699553143085759921338051718938745442458418287622296228760605542661406760541163380525809028331501385091207268398995034767722419482829861983151430362546639676617112185127955681846838261042064990574061144680144015817771636469652151390053906784491030897351798309851184514381194651833036870429792885757806299176040226496395767466948083887856290683831216712013776566141792000629214723628841854681245769015119574660917432914424170010200991460774205981684908426132294066653369475529989276349910168596799931326952518085451612542320152386871701197806125867318155766785168721717537590259015220940680272332909863364242021220649644685663688207169092200858019406007971806387241546060303324772683713507613725909812363495103298096993252809493337695988278703464091998331977387755069243486217387334879791921330332690185374710225590071768622879183926406462923435962201958993508165021822839595376471551770966282979243346150684137648823349923301044389495134366333020800314443310094700045931197278062069603822274001015959408139517638759484302075050819345516785749179982405108132897407851647663005703038166102833166481490883824846513818730300351804736183437575850160177731833588966258591810189816127753473937458668117237499541548824294207346244553539939522687342746753009148924212301357575906024086650710330920324774439878930886369186164071861899876877816848922518000552597634032872388530478024037697287183721015966143187698658645590534239505225555014940887011077909492409682723392395875373786462351538843550237864055505007299246006994286078850001814278537024761857875853748948992168273841575436381171417958482428744862553970069560163029828135815877342542621550089281245951836840156506936438938302350197440608609720730627773844969009130313427745454872206207701617688244522532610984867795619370345644799447382531473293033688273358016170738063813296218824554381662150367296803467016019844951163107647452171971056032793828785712330543507443882309403314305950831561687622056183394615037054196788571662352584373385775872675693268135749740603585222153213549349130605638552109684164481343435720046493393877252678466904816802371002012846212815639425672280159797049716143254180575637705974089134408329587919896180586706753056372297003177572976746193684963672690988463379270228498201410630051140684062550885400840545149730160438459310235503932392688313891986461282720384986109018027421070596428250947757563681324606210958271279843702297056971906998556560481029263643231952288288372101923781777290829112136090184652662999899154814700575477080796753293145479970028114472022210113352077473673724851332050013913929736580187124621055481994174953005048282198886818151897728998836499915275506031306122821178561268200926417115934999242313099055698914824562887936137432993338988240396822990634535188932528588642336317415990379614120075824977375165144446551921284583352013076682851926169513794412437254195001553880389595143006668360005782044251023309044977144629430241672745964212092926099593440320241310333949634826686534760919792998555061356327200566807839942893669218520898327140803204622172826070604475815757608717492359116311349337090720174059379949129210063388022780489659928149170684276089796711665281750456555135861793780800114573347139130699988743921958105084508232446297827281790069807269239894796841942768566339612446583096405804931522610416550263792554031335464053786047210114916202970398302271361082534300610211509177576950283219502765245174433299790676498182311075696833023345740783417135782516293178312047974442310535795984034036911532760974119553524241903486515125520371450794509336163214681062967637917117568196596274132220391102310973941651713633122154056498166349981152921463409499117820092616068687599709795724229667319375954920541286171402227463449450798524417795585774706832679045000790898097739742540903589013725673267355064170158367182062771869604938681478926236994265786577576171191262181436032102638022801919057511804218105029811086166237512976866038500524133686418840046061198968097542310450557653061141410955692788920524028778355158420012855060397257477900424577842251141153483067504224623964643284471100118502154951687086924640098558110808426563966649456871565427438379213958441206597833830752812350172143249405014412201956342556987914393003027695678392667892229744066613052550815944635423363479758699624278434959377489171661391465758292931831873706000619809616653020126346191921682201119488434920475491276308743069084155569237002844551884459165827191737699484984420229448151095546978484203354428474280108548519455496693937283273078392637670393798734833868498669368003765156075930375614062684620240510335193505791193952575360186929931363414001312401651860387828836705425818574034489044712946702196219937167688513789856790055390342314500485849714548608479677596147384419988304673195569786404161307152109457171303423747822547585562742483772237263910169579952257470030042609085858171409408258620283988690079741426962011737228932792817066492431993354374835390944954833102016516112658090267918008513598996823746495049853737524243835185812505185825816946649236206738205677249722486842736120369320976857164612525213035501576540424740831921261156129098809175353729667724786213846163841013814790831066209886913048408648920359419133626357269085910064907917550998032611301699592615465232389052680520586216109425155071355527083305485720194670567507440005958546110938386611248641215758292555297348535478631320664978387535573742681040144395845152543320626397687284091987034874658157670214992305856785457119770763371532732580937430207402738223290577044499479630072367941742783014161207035652636737842839275256006118634223113755119547281015743170828920911467297172021371908546132804589241243877844968523683168540656259645241274581919471024376796507651721606934714098025527661250855011325160063648558077749879177926422516788014863297751075448063339608315341752791589217331518095015542423490774754636001447617606746006358697663808280470264560545162389812039722731100791840079961412357467196829835467466016444862674801018409061906942232676410203857312045408521018051456386233317150815169951537392459560603484851433434911555235676699038341219936603728038645376099362551467733567474486922864900543570578659147130969127130390241720707995370133630520408252470149565943944765802108351483389715898898161380320814522753668274742651852597723244282275089224474062637959137947433980172894031522557382354909140008849827905182795252027561440892117421425406292349876560434770960390510911022486116095432989835413036395007449574504042750719448388653681777946422485833308784685565741843894300971263009026948349904021429941060032206576807328735335420873659295839546031224925623174551953110432086830262893308758305250908924070565821175822353093752861645110105532546164427213174640340677637241405275355394788396237025589044539003442454947840191916640058066694370991921555503200803217756806110502527207555014832922417358778365473572844672411252051604600461850323194607979867651089384066679378853829289079100767650087959730988319258323631209711005707248846265259636483186675067680000866521364857583543392355660448545004201379564235268975408450653382644546794487540908823934686743602014137220800356556954398071593289414738604250818637185417353060117594243267580787381708907560949509543857914898860381389110626079326727477529220085569153581929975764212305463270197503464386621798892528947032993580219549286373845574237891655830128058800811638449138466517459795516320917702690262447707830261169044757688034796325568950970114573083992346600308417234210614697072405032245827199638171882472788015828896019638347222176380087069991515778765307768509423898062974442324961360864059290296617218968072348500564379872158336356463244718798928768542541513531205869942844153481932837773466185158569690448713642184670762238774112448489070152652225239844327846723934486506269177980874668069663762759491937914526262381116140628699890157291912349476347021334485183941033828742566246993482215245711380396535738074091636324489150778924534947937176206082734366779617588807096063097496892237974352233625698848046468024394781740123281083813572441814078452965450020996690429067143096777191718177371620511685280987661895246555899014096170834329792795493309296971902384396204979322545874076962140739502364402094430524322696579466136801504208121543512925335830185007338014357489795245833744949855227056996704274343270049205423930920852010215465435185240413688086362288380873839538825785084281699213394239288573685189552395888777750223803650446342296808916374448817688594235333531196387601793504764141363715430781559244726411860109031581924295684742106583814521515007379892924388595316058324303456889394204241697768666459573193590131639071914357610135195916777718661493712015340821280200361014754475482336836614354680870507037915036306410001131843415662165970840466159531413198032992664819264998413312442006562096901661176545007422501577681107155709378566638500504355370000563913124941901657459557341236917907504664238478394303522268816518199914990788861677646084845112823480941108110473329906219637620625586503159844387354515233318852347531314518594691229807774187701346273315289157720394643441117178055614142670518179560837555140777704777519901191767062036237526068761931320674879932462786780812357668907378942919649824981399585026984704314989971553370894116957965707164388359131909294909007721979917124521062507004678824582598762667065806944959460314703128749485821449256885778853005168731923820727404983235245067260366238032634578439687923019915295534955848125117337545125140712709746775574631914841995605417843297369395231902149501610833669101890534886504373864250710497099129052718013227100254854981490153173269983420676922797008470038633600545858366340072939029263461371674086602586432298734578549858089490173974574373903875710994894783119704842919291858570081331313690584690473762664102127161829285329888035896664906983341194626010657649881026593247973548724128149959895783766682634049181175839722247933895311555745151010162890481091927047881955651482048265929838878471543182181370163431806531014506281754356181766840401828399635221533438190909960598558669291882014571556879701277229067520681721917715744703987966267908979310621435437355303886469374868394606158459003184194291049069698568009760920929974019225532069521644886017293435091186451380064951874379231876409532141641899324939796118494450254795156953438512626689651211370038933243048178258566197030120006000117061537783141585226213494131502586377733918552262088116930795794365341732052110021351217404393370205984850369511449639598383279600684377486095035953978189824527930029825659098447025955341469538193090614838300355239843954375105715100073930949681768911952108722674957099718578278443306032374707966264293405810563079473840684630949542788614918503614339998192556028668138625470632615212352829404664055431011068782300466693592565703696820644476892183252389630514554254303360045545144930199933408580741706371847389176616917873014311192003107090838907142687377442690922283064995342104879260521738020179727498244138452149771799389390261626681682945002604081271814413859283867515219374536536192419705772134912194628679101428494083267780269486714663358926274165889571442786187671173352199386638617425251424349894884082076313226864872684483728921398753761241320356737457645862884912829720538695246398241966186757616097114677919838251110706531184054049655244298887225060247339765750263669332437272676979160580564442000729214702986585605453693282141151260761457868178262871189280123629730928606335494842341865614348477966041924141202442482630199973439320824511611332484898691577700321315363863181321271017344252504699061489879091921707573382464582360889791214006827039527335330941075929291258140708502753132075782555490967461093638716172205060996460979694698285722564724353042759644506488621827795226476795669683415191128342754775343856390093328293342869967450564658985339067518196247345534037057736148437952929167028206220747965856411698495223001117359553941831937133618516797348312154449417614378612386647950230141918652143530553674873568970795479139621914335181019193675186712242490896831876059373094826086763203097550613170740394151001035172118004766694476912428859019863384629826088892176417217990584996593445360773608790609851857631839131456485412787106166875761149820710240174655655231555908253130289588928773564837875459708234977957324345971627608995914726541210847166955971165882699632562635345724640002498929651969711980901624593601216095881717250880096904290830293823140122943869800755224057731423599215560001204024969049353433013705059550430896875175660038128667884234659239247691262975723846539482864741805115932734747541466049392062116593505265637418413237302129107907405421818079572091029075982221628627571083402002947100607896774357046265468930494590895058754269918345280895773775334840743603961642650835446978645332416258437810681868109359319154376199974108826087931922345590396328396710459617352641955642021621273408900949855437853434710222446488704643959136574315152451083440686503427920099947078026036041478541196169101017310337872179336957227722066999648214666939547314468389535521957195500851189593641370140509473977288121265079768135758225186854625541205417672846510364435180715061382561093853343613242567148781205830783326628389028402675981773921983424386544272428103505150811064260614632308399694060648015556628628664988909956281527212862908114332490772554781091136628272558415416899669934987642998858053126693284668764690147569853026225337385775473664080381277787175778736450794171899438347007222371752318724798253160636271846735577282524993718209063079603949860685380391024188711096861477639939175413948591113693217541006835099284863016702119203837468093809292015735143279303180199354007195185488769388762457711751686882937994766002621310717122892770326177910069667848967145468808696826405067645584436624722084668467361039244010218820228419700309535493345664741472223393310912917312122817088024080802889329382119250944583313091326755372690646144558644568645740100233740081630430730156004558862635543713964500272844585933841031688152944960699882774941448384304632586138464621536615477933396944861290412828051157276008918498301239344371218357454852479216096582220747477431469364763514214420535680760657454030882263719071530466058272713729394897187148004655375820936928656468050342295515602392685100678765956534406874337186329980091022364867865595885619569049810515592154691594779565920697338519914210645733300476874184736845286964182782625601929364553657101523389405293744396772336958745126075494582969348689110517337841606811758401856820665505685121440027687817336730209188666886619655778790534658289175209852233649129907105808973512263319950391035398271531893912289310054218421368407623758064834986563388231048929511219734573372627663515839683989147580337519996906869946965142323730504260858554093561505386382093797009187367194322945645942897930997548384538986952762394202889682216381975159188970386001323729371924963444053555336296648580577566772236183990715869691572709969174382867106372464460212244375889085881436633396448839903352389786593380111504406517321670129422530285043855647726350960126731985183856127652137769018774105624399976752294203213741001708990294412071503348354534235690560388094859149375398506514372753297522093571927454068591803674438917341959591965279635211339703015545851618530208954259647963033911222994966432297387179901250425408871660295776095361101193285800902518620947252750586908222421753749928912235963404545152165086431866584765306113531970940196987090552455759994856402911258230373828603577030152007436319640436410522215177954801716476431792146344685954894868789774572721078460061645366226021667903713515038415081741787912904348046010583191385791220392678377164173438780367123067249000518539838789421320149500395573991112746234166143847872483493657247173187783637069879153672116125629410987558002057126078497666168389687242191647744621971936922905809914407968573773343082105095489955059787691657936391799244732529400767413961913068071409674545334847572060147810984293671389532519428122736641112526490259252324304788193178013436080698319224462847939281228553048390814217878801714582057590718869296125935392558096022638004411149163082498220075564949503627731020029339683671338263371582995463184489150065922754605429506346876735172593739495203994360349154035161755989538651400671049733573866631499061563302098986714276743310498229766152766014838338836609155455821798757188266105022394105147145424455490128649905277302327197186046431606749786474302545439305387986403849503575072911317557259604992997409765420989877242014189478780168536936636823929185078127381791147162017507903824829840633539121975989564184158973881664266546813259749028889074675885636499495777875265347074276854612541065189614447538182942494604175487195878893469648998867828835075999344593472222912300179966007365741508339775971433419309873635504166060859863603521805727872607082321126439457680430969844222807933231481285641482142130929607289746478345364330848156226325036902826893607029491187934128752975759394470697777344905965692857946654787404385354145077420788852151742953899538816772884977347925358118012712240663841417025914330994889017947531104922146216219924882294798478327573531322193001690063708841415002135058211544998663083180111079268347802090521786214704171763282840417005431971816401777850476360082327424448857053966546419577561062801459850400126801160833466034173529489817639331344605979895068118230662530265614883117246916435889976803223956745508108630668247882822834843542250773814901497608552417804137554385768134694713014912091036442566586243119944563878938147405636070313567853715010303799914092428542530071698129408563444218267462553451586276948472118341593001303508103486063287234594529297539114783831462904404611219667385754746042834876839053654799109046391632061331178478018388780957712749254034709126251162459139478565880741769218171769831092990651414521316224387592389142635965287775265955543231334688533062174145546628481093522430621989975211126689085456285843518175985773223644341717340942881745664253251243693044442948418889380227670628081586681338770010518272176960903867650031706420547672775076223641746461485449490683624932426720947115430379367828472155064939560690714992709727744581855559059176152625098108003047040495818029670666496842535194346807276324912619033633122870161546608209807998250256877906941603055960848903165642098443879926752396951735243767263145379251759391107072698402436787523130035473223198846301653505196254897368161344196784819114756070531609263044687232959227692108259728610425787113142381903438960111370088521277317420989035455765247958390093343544041787390418636854966841649108557549251839740926604327305221418257866106908493304073553255324559213265899199565750935377348523924432439475112490400039865388180699161563958107237656814190550470346380787483189644893289785881580477303883196587883820843884222505313130772397107405386233075673079799826617706309604997020896045159299175292182528531087140756398110900142749747797265351700297841622174706217543798178690800844684896673478191650344335370256612928043109662382501293605222913787420518670434757557286441236736195995582726609900221971535621329100558289515923459518035536249580147670390021931303127956478625504204417622889566200566208437573145445746682478694742624646113516181372879074987473830497774215580689404283839029984082178720048837819925154032786047488007076593802383988945385098154019490981323600994495828250315710745603139170679662372556288304630180120260055048566025097732072045195167590012208343420126515458315392726146080668335891626214506606561521205555195571542249221456600989367165399477479172547051473381439172549785422355883201276042435698434961268430521515220042062889713586068253942360117518354705697862810907838035989575151677660030787309915985191796302882775087628409873119572649077517368110655086801822440625950301236851668168838049741751314926310466781384236171188888656061448905575149289711322605841799837018162475322474677738902878275550387582660745820817241265264923753017479232259642663247239213328085999280785233296375894125029637690404863431529897359006717568383839051412343276372888410475775253423815617309759782966346837436262708078476786012549893896231868245005926449605026516927484748851399121217407530021215200238171346323543668396369521682335188644142153686392106023009675789820494050811036565001744785159520269870240146365309654268084557150620703753465650584761035672566366702910356216844084549709233387150212815364589257668522962976036512677852246351528908577837208411979926118847949426675526009048363127605080202863360778603798224497483911133162075233059645834224690448186673891562076935763555490882714484091676490183562925408156796170233470516365329545633440877421401273479239375816500583164477392214034783228645148466700737963626937326434785867886581436081610921283960179893550624522888314061050940407499973460331241685009659881709338656748107644737201022512113921756315410186984844026459260849784122393969143440028441165163444243028683671956943210025395828537531505816264210668142827334857849296449479377938143953913154220237071494797168242729702916359411527286388300110596197177908997125339188117332118741243439097516433189338315293406109066220193799316937196502525836737905376925432831198972095498712605713496777855661738093469062771771913006565846476704575332692511293784738529474027999951301018405702983163540431381269513074890373948597619700446366889031658749802455314460324257138106736476420228846010396389439733392815539071886666867682334099814460925172944029238246012059463633141288773195784898606208416229792370827824882237546527305568278310152105800637546534294701401749096419869515730423064496113963768014082373309466632037405333681790472659225327684761220088059067344927597723124442180528892324245538374109393594227082356514045967698471837406551395790638988649649518359505670221846067650379384826895946415755782178803454622927493707482616509664890222507671097256942792827338239385744961836385858506889537952562417993868307416508479286669408423449862110324414306941875553836477919852792825582243867103759017992965169173383198424371896122528624924055797285293048953404754766380477997810366046257401370414658131170652438062404427201293190550395317009335368227958679241208440362070453323188258509701197678236496252904102267140537127356214006337586706318546608766264476578812387841757433230973760111340949036011015616383799988267107922097349208288105831152915197273792083479971302803848027308567103177973945070993976115471760963349017909460511083844499196519429670773655308275186876978186572741926956920284610823447306493400237379036290939067580481250498164072570476187829139745167646991928139412021520486796358084654125746928656845343147659639871625518631163079399224452526938960024115188544320580101241220045413522665600342841797392494414489518646279663565573206088017639802191784192665866743391385668221921176147465122449233695596717435004508920984886120266737413816281021333291703142380068383027386999097510278497879395259507108047759077984399909473501522508477541506521790554207497047583449493208992966091181893456402377475118297846743305306140719425891686438708010096803968241741812732108421292683865189786230818558732046023595160318656635524599111469272620871920737600295461061128772472040386318822826127973810959100635777655454679790869370615136659933394044336078907376781727596208288461318661331917621198681913940997117371253160990502444255773057577686880458599276042925875847760512385901466744623689165733412957755608315850786217017376761794881684124239602525617795526280980823128460916763806143252879028032258421510804752229888763122679477977262798087235813140138021962903745674080513182406541519111531716890965099410168654425670876948956842698265479094374635571780242079720139171621926622479762185073757279114535610470777931701801850310940043913046640070589782499796994238903398772525703962657189206164307067416367720226889818588267345559436631950089986176101418415832067168678689123254443926939876951284713000051164931892976793209353314664872469697072508317999265252615102647398860793784918888115554568690127202868023944658622094739260527823242484116821581936319579505718013832914885368271104124451971824459751256607689505468288134490884163098336576384485742636349079381430525823168900251119432205730988046251488873065528832647673365378028963839541399237244844785165030653490774414597115717437652999191612242668612284528144029644523008876876933028565101588497336507575061222950886146661974355904666025414815171996889114780219157948443529315959711515481166731279934819649275170224342460153947610081975426813255147598043475325644861904419345388820959260150773434789650067100362101591918923414610050130810738515532550054310276823832759121467915959038692463605027578346089170489528880159825738922613741386729232246329867074219089547795667561912572623100826536739969471471190819286463529105480343701240820622849164321689875291421910379345739124313989570556762528204947601257097500450790449900804916754310170786483127795412658162758012863500429552801261277222896015741318529862953354516932394233185357075165425538161684609753825208509690758467369659927183638670024230921842340625741111471824738169716628109939952071668391501939547001707923756631068612664444483344438598737376898826441395310870390819151031528234252708845556779097138888212038493819458181979598996921186161596022877867511595438938561004672292727130454082639591610531364877282156105480318537459466058278361533224291116793797080606091820514153032383040732392784581354291579895677755533844234858974849871247040425165751208924294066373494046627519274646539394350591720687365819043224916614603257923347644656101146722504282350928948637542840549387074393718007889714318210893418748895368933878142836653974944695506978400803332516259062402387243283471182980188762853991914955479094967635684031298290446769775025986526927637381577247026469404354540231024724931372222130915198628901728147910944004230912428960933147526919590190852485555344911928231555098856025853889176095777828484948057052152637261126858011386270605944688545428495288226208733324205550638482154054956456662182394189786266749357716527485815517402352621041139125566345912071403811208065827959291209552049360760100271910876639499683281920200322829697455244231906622266176921762323703776609235769788908503805490649780934067241090285834735679655220036703557310968338635255752226394850849092709417556443209334007788751928841404840257265969647006039530881205400357492477076681875504829444115410639514674425897423982206836452506976240723522779323596394187507233230319162941439575466650458386830855120383823068882134282516339937498061431317276689568541709341979099827467517384603944037278010035128229627942807682187094275556745402078726267681127503720759858542207228757557473430040543213954690324169720375113759274226625404723412782267421946027791474331871811849058894927357347356249413286374311459378851474656221869071621557906004782923180715006963827791164907695741452458172610340181481579002569535240892768437635915670208254754412583797640121939562327913122205019775499362974470418079818805119676513168728248034402507615586757203729802708315804881211286786532777729490276765257383404572630593650075927283527616545594221954776509747635094898775238668183912511658229945016068606538203884333775366575818003943288215839822743371362453778373035767319677829381895694352389865804184188893626415791527332611100998013726522089573147038640664243884472163992307032943078629957258751089130618632434362319380098673483144730595886000193544914199992152901001785110876614438340792997581839863953371657418954258524275070396955160989982667607164711507854259113391123459067829083885715181553042380344790995038836308692186582618992869034542432601673802159201813187516245342697971369388336638764088726695492953914685516284734631048785050174049819614896546199638420340894834352170770766607625721166977060392244906143521770977959114198963699917219886208930933980985434398489166810678072031320374601798204287557668375133304219214504483587190634281016388832853017748751735873789242195512000449155552486457580690594456321834965624526967172752183968744947659094784648899741627721026408224737047755538585262098908636226276986240320157995901694850918558000948115529980138007401569925277988575600128821470951935469699947745295549663525850655593937974296317647810384305868857746025937906987703543888358640715623343424310552201594916714843029610648141974114293602988276486660662658620438561589455585047003866082747379348803128769300786444562893423977025834855348717932653983791368192762494253992539666641698167375728012663191670226833011665507926942405508773145463784165389813622791779285081407021647156898337239320572527130021695717602724653664202443886067273588588439478037582040793112901574474082047952186323543680601145124907024885417673158003987404613957715736741166548170375521099330595342286603234388519959267492414809689180505531941273596680147272753678529102295916387811963223881620510810347435466147804681624274276869789844671265385580316506884243633111700656249895350919546057049924686371330968407372498396631216732069607029564321932723946248370935038115197992249333178699984204125732411367998379258967576391937304004447674582213177135152128484336432719284951764984165633248983555110607996499490385340645037436556093114051591163861427869768112236665904110732581081739588802210603179666471074520447755688869804010934800263400753598630248801451914527864343626371490380489069468319173923649295164365628457743059468287227702942394084160641512034056608605607497836771394634356464330624362058631304598766854018034183533574944687065134368148535433657867308139517106385358209960328563741594545201019603308926087246071776510515391788512645014303815768338763371879202488526608497627224714263778381162665290003253887470880856476590635384582071648301655244853877919812965963125576851705907395896626176683326404730823734213302391557478183010495465619841604551253970776200611271533435996451145418601305481639681875327069135528233049853945730675391379421669172389739008822387055142365534286740064645254592701067453721482847668212580161202147146341252585010946056695794480864855946876446873125411411477364759321635087152532316395497165889795456776137527467479330733698888385195894430246396840035281009414108153349139134171175787414539217942582148612488466306514023873620934164844084650857395100692584318868504235643821902863368843507345117424438983596407249925157748795756744502529728909867719500793328137767896487996867026857386465491102458938753516176749479613752950165175102614184996894426404120829413154509962069197074286203172240489989729885946968606336933751146765602782425028910237421972577151096978932618830263712874880506550260420080348407721706297503505905333814564529450506870652381803466330465984628153796966606316848511277679959279911798477004869077687023958871963256290881604975999792823379937829991287174124258874328597738963387626254388486769234835799833762642334030291288132019750671185900144834131767601008074714351837338922594351910241642741330577117008035100816461431200115186886760580443649708546983163924616422561976390092961760740987141257911221585403210616416681234354971960891562787234688299146990154363191827746911361445234026224754459828889704923696415520345064673809038390881731124794935828355988564588407179918450414121578960712055142252701878153655041728353843238157335437938157642342189114045383824414072173206333147745078593216556197795567102401320410652519753871890440331495644413925312400365669240418087805691214784670561231647603093228010735950444083477462874980151917292713233029714525148317267071487428291548560111414569770124243647940277858115474418014844387544473875821695790369273685642230228854818903182959858536811560608073854882387499602726533145640099373316035849073188304084939136625806377995650488399552598714320662386720207492547795131772753450045909224304891176533064407939011789358297180655258241234341002111035096154533224348039604807427366163718669664095247725268709353869015499730662587749900843990965087099858044876210359265134722155689216886451399895666043827537197483004128832407638072386585149706635887362918644456704322219818763675400282751592617190292877723241449260524558454450497712110164968554727339924081992318724655438027266305855153901752376461380427518758459568417183813604470292179404460032061267260125348160237555816390665912189222300989226255167833917795293842452995418402658306024081658724765428421134044525976582056449499094511011414714749996294462071373734214777135979820218661017685522749200521615110873761692273665718191209522910003611891029241280324450759938321463558221372067652522733313761950582310462104624030157600365897339293192670325530877196008271525918304483129147471581064803464263056612186804119293213014023812790160943872406358905736281493705680408785177345388582127649049705081509402931444246744375455720068420569821268565788311216952495861476600152821191322137017225455907058195858688570519104543137401999506640241373601491922566035316768824494384957981968154585180382302130623011956967813519306322078323821049599825611866934043109646726880240094238860619849581981844762326500008524415279607507308449367739050363890161298656283936608820536861152649649342181061450674586511289853741615986643585844025797641508765194741179931901240109385529534623200698133911911853006310865746386577433430697395662345913664830109701298240879557989556387395376288013831217370328234571812192889975437544624856531884945669764822063605209279026888762937645620211672453147876791846863627348288328186730548841730803537247652631616511362590860539149331769716502416350265642233836681214205098197650461165004459979524714569969006702014095617968186002920338862446456103111314123077266457413868006487937875752495177002268914687120253548796870867260606666831393709010769149204159804513301542896546165597076614368638786006719229985631427266454424296616761646474911550672360717479274808353006124375293046250037894937928508805327282904003193395668825533099744730556909350258943999113255692208256824633688376347082257396768781112137933057885356633058072879420493225759228158449100798560380418440653395332528409354701198273093975294736390173822072751637777760372743487109134985215949428233434347000699287731112276065327680942281832065938553844002178665809764260680615283595168572545264674809492737369291775772295957061552900977611181460859909741235677452781000994135799613998589175312256412266028898812588894825555171791006917506242096297425660849522709889567878811205284512882571149018776958396263678292724405391443959048716698405012404121199289470361611796496114252669024271828131074271030786812855892817085633487970582931749710788834828531177496531663545687853745119639461980407648006559232038590539944188578324393650335784154652585314849962749192419055389765167363648593078831214056722598492988818796838625299230886671241555134528374210600002760651041985800242389580423131400016343821217500371963006977879495333906603191222785671290450730302211446613348785265489902171905653856342901406660198966027057991680748502568085935423337000219686736167490561227722504272194236211309910308785005360731400764549106467977610522648615791099754880491617740102867592540116966657424380877318574631628568506818820995475530053655735435388216665380708295174959185102491845391200650207589797003265238414596663888324551551460511948385148681632002684366080937789437685442377318690974659376911074907359287634146551610045646969196002027104201097622650906751119315290389442143819643480194159416141435803709402095585393264754108781121358187251851154688841051757624622366852229819060111224413819884327565731154071077069873163106363528181359213477506761004560182988222913815923749419132369902424530258013173594773571849204510702232445712349172836145016272912744070297161607108801684831566841687917600373909053197152650996394289080278255914682989739011754815909433031272375938075648393385523495122507667037944438061131266754075787757225832552332654389694596659556651581757331973927431455055326814895384087839763245462360992986042209794597226774709383070044032067464246542442952909462413100271595025374165894046364925901037165791610746148656091073749122559839527377898973294033929875659793764258476455764676314806804681934955365878732952140438710652719616093767462124782801440565924517342418151940440476287217293672546938288534270165577513313238705045722244770606842631470540651512977077420783295018205288154447943396345861543967922467675391412531129063568070838458417633719808702631722004168519919597621990668104368141479932221447674122513083519622334719848825503036343773350820964141746478411259915822713334894270298121806709084695871713315352541857854702724334363028755604857215692131231784835133551162658147792823424274068265531466526913338494910873196977748031748781290167057871775113566850590666074651481241271984012751434206619483385288300075738297849219595582774596927536165371906228574461831915912316101166559286415145047296993653519753782751990724820571584721670326094449389764657941766151905015115213315219222106096375837903368805417623098729022383955928652169827025331572400871251649958274302980435673043465828899541849386206066104272285901046882506259578299615620989603000684136073344730610661148835685231113558763571300172096498406611444018340571305361897593786021372734998570746162923224312223945038781747851255558375675316449681473571605156027328883322613546275430975912461573718753759843039907460880606161538657561675105411151740450477049970949189123948256864590315251398058504942079258818633597488306552469861680557972582192256590602844442544143906628295354537758533245878954360477144994098957947235454291191904501838554406714118636934026884737027983635565963341863414160191872180948416290161990673938373956019678419427301344470566121087424123646567683966796096926111848158729100951987292027440770523449871878346871187457662213131431005419740346475270377037655458232757072293521842116513176470228742099629372819411724340305074136434544121943377179239058902027401003396669276335061094834499299569831528135542460879766863786658270014641859913420599520741561408812502134026507071954932047739681212070652085491936986826813473286885235308867819812271178804631318336197357059048297299388139166613933342564698084344167462324873084826583681169943737086650290243968131429743942963839185671424111767943536632605466453078690918616364063990441351973780685654240851590188827539459857037614255589166873354061048229229661999875131532398340161093889041768425440440606220765371542649047382303671806263815852832007913265075726298282890152405300602659780865937061366412855904096613560193380781104262177736446193100286733289689079214380461713913146219864985868550611225964679587883342385763885749755189975939419227884954974028966747855665156465084118928578660854193450496210604180673584003537050838778368416159170006179860631114749155756405443301989426583263958962102130398812056344857881691810509993616216791332239108920158692705580041938519999423095114802401343593727194074809804436743042941989607259939785887552122177293624704218297157930124169409366195172683178787352497721031979228079769922321497614031554849590383287735176502688003200737090610692141379979222017204910239606160464492758760830423225266552913185141032382701146961960668443085110797516144513509692151998576950784983770911236397756629377462799863386149546963896704466111700708205783655580289317560472214573700677225043027679757890292711273592333877680155420959428936055570113609833996926724855905691395273831453064614695582389241487473191032579862666183247528382844658907988506394954213515569712937005013970876661693618398069005259125603001501004622254667213226022909188394349096219779319504523522401254758486428161772631644744776728814614550494739073022293051872891812395722717652908207808547614353517647804753123274917961179420831211519330798220933303234878369239860394756839038069463981100942425688296111863768061181099087141141329727390692951354495196489339504815238900591772447277115990415192247561081165812463059279943321736406174706153307181458360139160860077007225010071165840308555474484575692609797332849540546631536329693456064443104146853124444950849907616724305084990150241982497629880643556974729122719931393690479736102481638529773016205885905466820064165162786225515660103732253900009512665103733020995195937918214777226369989405935743944299896600259942653778948651231731760260610101513942927612770710365718881580103354302412369403743721343772550581879080580715074961582516092776405242107317910562308037491531596183268159077120516424138868689272896492398324281232154934637867137206934885371565473130970724940439390257237143786719488451071381792175361576605986377861884812814142662627263440246333585364375156540155550779663742983369109845103125143026711448272605271999289070445987510883125851792082482158394196755776990393663787435227190172101251293416072104589940345582607137456838258310418930128572675794205761048293865702643619027385903311676807505774205094397618452539001918299129864899576807676067563244215843011748355521558543988870941954275408917364014201079227128151181779231273084368352935696834117821232291815776792702809416288337675104303911130248632308080692251989539870304575455090350593956900255799126203353625074342988743766429075729915762898141758362899030321617904063370842191483960448005761213178440470348335697210838044100992051245067237709154658748550367015689465205471481275765301430484886154493553390420331986487595157064960333522014339285325963663944130251329036865825260886260782761237469131278696976575850325642073620764917877841911925562123590153999882353537008445308993756950543012750144412966119392710722521903749242790031403268854108329998674544932140976323091742684732476187488081400236652512150080016997029200539473899003097297528603041842089268436338272810469060592927942449903103847641542386200400896661377948052245031153036746203041949498720384123647634018435124731785022946217219467932186698348291423246788032417975348398715978822963447687553339045945005197648526440841058807890047294158502500355751118967927692392278535600930894838168245346354533063312726810326151329057625656164747366724372716614859141948872131268679038106329865880155937739096745859485421647213111537814947044480276369022711223262268889103080693069883273736440725216870742755691765912807405647899564717420967515518049756814271781078192374320737299717549925672561879484999926130497758549345358253357373751940468784579007450527011846501353664469132429582693858381011971373418937139454340496872997517313654769285356905383022806394722132255114401474407570887814288037676462348856951428496180240925785781180077620227128353810821677569088357163209108922409159427915294865590356384392923692264180629724116880951630611038697169953261293417170263476394265373609177072604213366193015147469270435957392231816767836780671713006114444108340653670682655170395271533860494063436585645818469839818932510514441822601773024371687087397718428774987032013184014845973402728472670360198172674029257895720492586601227858264825004615441130046954745586416054115418818007314184111582466293567353167508574242672037540894748460327684300392699910053929628981748878597353273700524127468086755765292855662295721467749736376725319857550082539852553134473703218302985190990563981207181293577523184823685023590427579072066290040917717973166108345537905179727363836152443286785991739221828164152965641638405644993173327274777285139591308480593436042883875056170577610934098257924256487918157400608369399633050248453432433949332237435691630316078226158712847726550500680373092312717295725942887543369031718561056984775599983934888653883769884445802994281016458685244603107570575346505429817391899412267746449566705839887204552864797631895722200633042437903030857728717932707208772902387245267055298890238674094918371548028117606241398444513254637706631398460474678185692998018018347058297029023256098483335848201097566227974223848841753181154838638797651105424565260730271778266107032391755045327338417902955682397189361778304101132859769796286911190266429496762525500400111902351009189009201515145524990221832277818095234846200184574765897605293677541410426361548879083532973546832473480169665719035071970042463412142090811971528764422741968254792637503985366010050205245704048626365416864118953520335669725315900903198171367704944695818859924648738869586365715296983719734219898440025579838308702425752751038716848592049161074295724462328769704425812960611744416339547377283384341898158643259523353426885551070537905225402513762192512644225120088257934642555496556581692134776216038326516023452181422967400671779198962745306356155087461659120479545165367707697085930157313858274327005630928108208698913484584425862935402515706917203084871932917767702640455640150794651435958916734289447086498054534485435009447937889515617320163253100763622953388043459403064688534222580739731538572361039669189241985665846889261492913196280377902581566807969361594097369922180420662907318112934336169334970128331263775347283381091394134582649594631055294505252491151532341841550390749633690986524745044607447541988981519942618640940683450824223401273946472092334551673901649398049221312229676023039308489929863188932374352525571382175908447752240545329884544682137730143353758328241036924060789012044762379921072324817009593456531332240071692401912371039878719919960965328842963812676178882294610027981020544088667007867918093829822789993124886406421644449102603737806307466044059632197236955956256209890217313269295884102745912195688637509174588605915896050683547157140302828047698910659684523903469423157758989114705430159115579288114451403283686118737800344721023312139697529148822516859269696021570700558202007860231695351049169914267484312801420763564552081165200683121599464945867834420650520347993130421662683073997369231163761568092425412585584988574500564223178250135257664424937780937653263291944174307182299706733437259707469815148958210297133046515596084381882942726386876611592848899944467847462937481222128576144339336285890690756803855860933284271521286629464229572992376016726734396558591060402938142786801910586572032867280067322894219734890345420490918157607294793484349799438678905497129580431305061745041792020290835633099782003663541909071489088449362702464381936482376869342628918152334976009418886090282631855267687361867487139592187336290617949524701674254022061089537842553665904667543670213987702041218816029922135341220563583758396823297835036081910378855791861828408012396942864097906817461150174956237980512439120237570806133689017728611479585165408582506026748845879456125337370032378004015041885610140495587951358221979409067956565281927380737405759279474264585727577406728616050521376939085471256719169533533985933553790730317250233786530909477734116931974680615306586884890287786747302495513903849098158208024015398768411987333175816179849666877853349714350458401706956378842116394706274331101529152859173666884747592251055681588324891432388978324840423759687812108793728992722813531458386060257865453177229130002565932290679301587935308515269704215102822493003423639306245222727216120304725956167546711771708220593222112349863457453009560622920154379292112103199692708177847046423410154205190240901591004598400143736370792938019510794129371890241800403157051876676563377339301458756668319382824037893560993828025377165875581454382213820016154477708193466405034729730427085189352578587026072875053479738252650509282807846117971850910639680818075585313922550566393480324673976876887471050943024068083221965518126143095270811731600364795555704529504384797168503919067167247241584727451123690808034654766822975951896639816740558372423190862413712433727646645667432491893263568729061200867338973544336405091806135831121025362845893891457663374900955262304717487132568598963301398528537953018055382362168902025855230670529228223885027205286740783589569420460479819188443590168865353353185043791367679019407802684267957309440536639016205978721240705764218895966134843832519540489857564698949452917331638554910499891071102270694396656575237436907545358917912956716292090235803016285259272075132968536622869832489973405318252264608435088123483852060269241252299926730469506232037814205768234809816176686996266435116228320534042348600725493802460964986513609659695137712150522999020073460370070365790712745261068333919676803165104514213649599100092500051464440140477569688555352602156028723227030719644085118963936759195233923789874960841812016678846692887692626232550583828931823648675955613472204773978617654552488442826447929858437660878978772466391967680659954983326544178150112009334147539661046114461626550927600546050718217013147928780265277889299587315144635502364495210433473499213479519559564067382965200730144329995343090100925912534350653514228627112906634304499904207028075865728505401347798635203825960880346319700997838877849762013153958733394623987902310464719142701307182196679678287134309016806056024649536661250276621427489827415980666334076696794912850347836218016839901878484549699148463481128891552126806542962339599935501495077221410123039492369267947946701220223661105798666904659006635773212048040427276468358369974954949601528180317825916699146843246280547622037315461578241446406230449259390999031619962405306991176797512629788857462679026508711205158775539366636326661489181473048954653850494395095687760566096973846331341409117122180553112246663736560144480204639637820188148098158922241920378421416818531033407081404973402589367403674688505248281604668646053370302146270071576989076029977246370171939735530284391089515255108860530700743677657771252063563205676410674154804507311722112098643824574495274950652869912497588054447340916562556504322677106656237000576925474126453680597133747102517518753996426548216513137344356714508073976171234094052696523972227590709070150068410057437694463507468203640480286901554381286231283930188664400980539367348901881343421125063896346245150330370140660944602147807177530989161724394579676463669944414735627795470220815363989901790140352599673428844468801723539463350985727116296497987913968495925559533558826761723566698148173072977076706914723074078958957928607420188229294410376519146712030210980248256724619710841518394556098818603938465088923127394062225044139225607909277629521961378927096231993856612177939345855716533116430493403612343732334742260462276305024229639118615559885636449464719763629900773592459202110470076034752384150621899473089752022732479863084599947250026632156278333173704166838768983137003435601326455534085900645654410662674468518038203297868425243986787827714652200984458590003815063389942246494877146247159097488532183962732355871734860402706538647062115245905619831147806747715033662115786663240949905527636234668797440123998647580436706385439364678802065112351634261774665317875881792566808996886113390239872252804643077244819580025155164882089652207987720561632736300723219115858768340868548091310005174244998537217854664217879622596427948427758610630161769595787171922435986899694790195609669139194679401069041413534862941417191560911555141332666886315861695692069254410433955608947607566246517502810828063134448628879732500603735179651004015382500015112701565240288109290748295410178022528121059489847393134861958783604072742498178834059485440556036939850336950082962057223990105825065969062102010934771308168215455671361600364167540177124628175316727205221442751821843840393270709135317380945480407556048421987944708820475741970968486762717903985561171814696835312481838916998027447155352628055506638934357541036292925879827884691443685029571183581649088385639873622623542901971989257570812493306286543046335652303342643048324730115967434481250823650957353410276078167207941115827724449466243274884346416760877588829597097450588413603455219421190323689992715872497526541701130203876173185499232215618657044467705611473503682742941910496061777741994851954838710791889841662163766246279549204891633638482367243622427234674934708710524515873543893209310153203679456435492477063642612956211391052583799930423175308594670653679823541334499471563408694492559455715137303364470885438732343579024072629036039172680597285215455975351458918051171375942199524509728707828350170471692375765610583429964362294500961591715505550619637736998451096001312727892861759725119751273948242602391180427778394025445896426397386821846146168799253681256241752802135464206968731572145523185147782248251495237972519725108452895719007187468645715713221742373113548026986468610472159654560423057730078536064553929491882730326840438164668403119399733990619790873422560517805221184590881011816607557695812094812495302624193355282968392117794680314397330446078375481814273419527451367005687042497999750046202257192977421365786636425412988680172163513844610717898190211517638965055356465161530265568134518478871011901784405851848137526021792679311515980926163605209645806979779630381222022293301893885860788715692392323143292171048453331089900633994474725071780586584833657641638050516994242471490519334095233772166468955649878614379026016258768975648983350943318563057548163075971667964630246171770780876473892433412049666569012409173666634119048367268247477838062991330354513848285794539233728893591928280953817338428752731322391209613655857055896423170382822316987478665091245084430893064626022495404501767082497050277262280927061508166509297217881442870868807524603359084599620798351473627662293370837052574423277921122787867878604714002915765986249267231530073356040274937461905486048403091819273139111263864681652972026128028882117306989646251152334868045807508085790705183292280679106048070204292111949671440359453137227082625472902099206455613364918166415744270273616133231700541632972285253553200827904677766320510585212611468866294979210735241521514715696096717164391387727791106002319758731374586600546382277337188645767551645241202235269317600534683639534236063461514925415686813988520692714498153224669099165986583486060455728823027615785280529153162228394482590804413580966804453962358877536684928583387236731949873854529055716626206668812089995935457273181730930523003580357293078488540623227090186769886105794841622555867318101176019815926343320505777972100671534810834395226617535608722381420486229826056118405353323933423573140126164984912454980124575708450820792856994916625273309104508891928093497072432606146492327593195852897951469716870403719079656322858178119928872560965948621573140302583373227873092219407966794792046171913650550209313820398536729485145606418877692515665330134522855362541785607032050214804632278594458826972586841594873187619771388712161476562060647954513058705067961812305412603205028576654443433834484832641243072141413733019150762913012357187803590069944091966340190906618052474380282014845958318230709891579518845158391754165853478061903288311881582166944898073917946540818367435561811429322250406680050556527710725700763579816049018314571722324485843351995928794794838100234329642551583082464900104917985946923674848729447126294323642443124781411150498639336375807187318610334702548787662058992594695857798853381235448975753062664700958948410276248411825346385788488511655225734806877434796784413175221238625478387204966737978748904080257459813600234778332548446186865478585757881898602319039274894439508771987727485430298383763327455384525679476460812242767231377584325861661967398326189017178876589112361369194677599739702721629487384800286106079815932626737631743002062402084742813232867543778692343709493258599615380246012858483636963410039810544453063663976245503565691987185531102556646451778512035927912830433405593594161116652023264378306495179410289161560254569409881058718008281927380695906247320421019308920978818186047986380548843176109864753613736791010523145838149705909485504978675703159984568500639560772636775026371277413044680297977115478743287784556860352197260141147216987360005531545966690790544212514984278992299251144850240628468103732315185784086488079912028832543246135813077841767043869084915267002503595276944665524966570161994001220587983899865493497817394219962633770298386472812709146497916107432180622980878328212069578815898613272628111062836902897989514842682004785096963339324926398472786652966088762679680503474015863480866167162963305256483631821875039760635204613120059255009940388601090892081623534833309502664193605331415326082966864155749190093842166573460854945469072170147077184163525313802741365818910216483716203805738602031332601990377070800695639147617086174119858064468409965143782671509703584018297861955560267651396172442504829175397894779595195202874719088609416260399371770714377939628346200027385404899215080899059945025678962379913687521163386314842982129942934063919454779907028549676901603288679691604366034935797743367549472506874058935794991822760046219949407451494700201577484117166902876348340452937795394876649752888839618533264700240516304662795045681000673517692228003574503822688611896497107500454224511334501116881210088959250946254152083648085166131210843786711163381984011021166151221745861365179123553543481402306703231926875213048941979655025743542844477451219555150921233032682920062291945388378959719881812927095668914879515833191897884198397264085079251873411428596099520042744423359816264695981353642469181307396192781874188710004612253414678911030800582165619270574718803760969541049450575037610401816915627648593625432230279145691174362753418743496431799351455523192568081717478258736980265563393970866054069901836347410191563864925788738628181465618721232667322282159402803988909223444747262022215079341181050405227487568315703063096833431947225381526373318465425057532924898042258207107047266813332844385951517470034191027029913176362465420392753093217433449383664812211498077540023238606449507257288358445168595152081998432963560974887488809284197538579167324244683177151328614067133278697169186879559684124046475001357610826333799511573912749414000992143954241878764616401076831995882713807018860644484371511262088909063535978301440156448197645336882646808282687554923744041044408489537512661612999489152958350512220120092698902120309801667484040691565711995550752904893090996650796564028757111542316989958197318294391809533713488793003867934935849587889911717657097636812741288504208302108595978699215227226207103665877567843227857589350600742544399643293511329864578947366079334386903328432132534269619455290303557889649628942639992625823589906509151129091540647316136503068024728689977883479709030478617600735768508079334523739310537791274072405764103751482076360846747524710642712788032755438881986301683502102807629327678219372353101161077452317659488394754074403132365793209789474798184853995474407433866472335734392392659335972860047479516050871733641352504246997377107374516630104874123277087677013018753573681979841513517940595050621770880808683007364499112745067273890817228343214151491730887431980455888593054673336387792217949109772302047191364382510484689086499047021290086429944380146543885549919534824069661124130303194559758435234102472798028002750961292968074585249201191558599238972306787609236653918238442418386228220226522806877331309738043975055058817299588790266547195602333791664377874740672199731784674129074300871007635839215176242464675704441527610541050728012769279787354711998911748775535140261066711522254558666487911844200503396288506375983324861976996997685921398093908140919763988436460230371798583447763293030771521514530383081503458647198556251467402351964526976304824663032157152930089489501441405999330511403809666419036462386406000350697836035059475762199157969796447905151326701650240656511257643288640169337521298781244927055791566871960105988395992462284404740125559618602484395939925533983738222605009742380388473861370208818345400387101995950498578760626440536717229171366232524979428187776307858590544099061294444844140064343387422574431543482540045234768971397354117257969708243963433568873997092734521101006300558952506403070183436854544161499603006794904078353211403882730438835102406242821441313444467727129671194947142064266986868361799834238026007241156047631685685711235209808160047773203605239143566688616641971587411471155976378032270847878173841539661576642004995026847149265395382700339985517538188930919223536582923238439572463277389391616830574064885395570113947306489937980583648359345548055004875133097797426850776648230639546860395241226791637780951809234132653044079144025282335807166716510772599840747061465794396586377901685200335811956752804410293528397120135752341627551245215122087331262185544261714147065581863318037204089103268902273733028735266986999528390602709615884481871153065135419581821550316635752779779693475590311718430986732700271208478083888925591759733111573386404821204582405493940175183081037084629905896407423476007383526822634695500203255823180658326083379399341415426637684733248243793967727565309813062997789679266934667943491754366208607681161862602421381736662180700887577533187139393543119013255421759748925472956627505593715028800216664835800115428754053055239771970057829665434051654495037171220188509422892157909891770332870335344658903012382854317910871423625172382453262567843472160968926709160614870977681818716295900291819877880385447158561740353191983283448533661736120299433212913958901283124389909576426319488784692439099581989146867468185652314778933009767933366867687342625482410989605886294762252646251250458789274286887937621801416934855812981913178705914060913748929315531614958443841340453717976005408369763651346920001504678308361054279619569470085801456933152999652947585929470560340061190004618494097939664253773857073997304437334120903085721774650732368996884446959832170341490819741622328611076333017343717470354998210130299550111938872111259444182960338427065412627674360933228737272835757076691477989209794444562402712489656711611613064253202913191976726245878699961345653024097207092757000148555446943259610977881318317910209030459396389568523645148847317730594976560954668633920005983422603981593282984375081033576693073205874656315563692640613696720931960791659477074884089797948891182803252408258895513241092948883630184831297774722844478604097652291037505379697655337988568651929001849334572812208629197039781521742068810911935598783192323359968962365061788786361039363812445219461149426054447325222495212911611012510037212729980550997231662647659372020941134868610460757678201443995480653232253387544377104528900756507706450885839238004815681097586653397316300590589442189506304144185197029153369574787746100325310479631804846604985205478847100713278173116924682138528403637317298620777186010555848672597107820985122021328352061958198779488349368249392236779358920655462110321275533882632735118030238362635122291849920244424733152748943719473474697930444580927839158488665119536196668264853835367346609084887301198332692590823309370264600767453047169330496378494040723837132855005356726686356980195991048709874917266829531634551784634271219582635786619858617751470311025114842187345785867830506426398864761282391462979113029531156617868977681702628452863548271549231191017547760600626650935987667053506135231723306414676099769914596867254401127528040292239623226494874441899667728104488528063717978699971180004174767352167875294380976600925402082267952102649008555408282338247530861418280310131685009316840179276386696800344195120320877881813513994313899270043150041637094518176919430515767748512970425540962146550795834371691037380501526941448957748836735370685033553389398206875445948990394779450783184056170916339960493335474491728616509723839114568611135813249740196643196043091935346548308013952326397855054444620063850963082610068478433590034702143952111863165724437834753003344930066006441182407009619393238023649283061489579941125315090923593105589949004549440177133743222638402237456273521678503171953884220255776828442945624511117857204508059481060179074003670303838089629494732566844531145672970854987684729179886242134791412038426508629338528379839805856806617776847825040611538624319041896969121206031584064952389860999208101399332099780428125639869933099912679649433439250113231009937134613503550103171864275577705257221897980152597297153445852849667559778276565911317774949782879805291090524390728286736502008957510019323452636388078138805513719082797893619144745211377542666792733090868493069022595937165044655819903109092184158529880391834280367274067931451891182599587392936003628692574567826923686929174215392769825271459182797925578680845614491806200661631254690177661781448663312100688466694167713667137115019151247756017214898830544063775043792576092449155089315395617815673312554088576075521411345428479103415540765635104577099038855889044441162886168195309318318154448579411618706494445602040713728048903802430782901102597660590077211090756847236951233135606897663927575439931668130305890178302827010120276231562735063086921928306029716910036577250874725157185601625697390440627185404344174990572459602024566987590332729819834350125851185148406577350133827502421417817348807044347929421672494747897516267911320815854165108362640937856139951040268455579828802966106566004504475901431281543026820593136571064800800685636802438752604529584815724130284724146958535721984635517511573902591350211720414600278482714419358586408401511186044244777544528051062562047451774194825453098606208092673337932037350945639074940146186697805991890627326734929430185325712517875632749999419663224985617232492273635982571238073065402153345533914889440427193079725972156119327859988839282653168097522509638600227013822439675193015754116521647684682635693875607971686500580315647058923874684451858896133564288098310827830460510922010633248385163467034384370276661847337535302004268340240977324527543167903466202310169112277632833489068653892093387143019861554173176069095520502831582070966515757277536429036565878752188491613301075297850015340286952988535970157555052302474818143015884821094753230956776536207328302551486822018707924978246766001266990006960683453964699255141487494613414740914988366147172495089301504716640567054378757530793896681098948616473340025467835348543987623876734502733734651243697179227744744508496710631915356653226244668274853093463062720544046276044599963126030466957289935002327192944549722360484806663299111980578809891297027505388535564082927161647311773095971989932806763832777239794332308688384068892766290554282911426342776880936680098198678295313270021630393776977333733379793944439278796168395495959100067263663723393179844205280576075280016401494985556138430564349327110499811955553323899719498931500453701128672442466457340082841539740268043739026662798694956396726001219794751005035467754312906622994653524746762822182531812747402298937170972921797733860919938205322775997518298660191672324532259972831606328726026658782552786398210656636713563322555969265044716368132411095976977519924718884264731775013260207386735778284462362589349369064011797133253988952399082488590766241913295253107594984813431765522193450952856381613696051032250867359370318386353765647001379631045791837270636921712430034468206278934658092748055908388963219005072051469452385401202048740132239490308463220396661708132116928156820580781746448760934615102458171297478690809914155927899634806431615410635001920883981004680058861485289467746090341216622362217721827571193510745012341141955183604103021778051354096378679506703123919891777722756940376762794803158965204220784917944142073456110623501693735987441116510174235885433048013666567225929940838770187895359351887511011632526334759098587971166302992563982379463098414307580578369254776963325030663379931812091422829533035261703610061017657879912557896573471094349480584949178511391043175602823538267450757581528763268101573789954485830335779669872061374087524887984409634032854024659517760381798435281292495032095007439145657049379558997624020154134375911025377491151792085993604670271571504365230881064053960594521328368526439728913551750948166645669794038951536507080106469144057642505892894891989344144515888386702351005159515221604141296282674707047981519287517715072694580475204303056616950066144472554537272357283604866704102902709639696614275856937523608114990271462268515795628441860060646971214376376560367656989276774280363290182240156705903814295251427644383872737230451943746545097204388725180959094984925548283093645663633429860289476157999943131176554552898996336153984882474477549492512266427762689576692549532518917270313516991825114529921443077046390356474930734362326107705084666222666105133698558539799371849229643990460178292247385273375606922942913891374781613401888101845048973118952822952535935695687502496105757200808594470523281580354674892139352669406680235026880433916955421238725909637637148489593426125965169945218265261685843007437270862674439564809781801829614084641135602845546378237106133461349804525298938553370603439158594232417243679180024886003278099664490321198005895231577984454849819382372935822916002214235105528643052597898103893570478609633921958151156085304747369755925606994237068264258569504187821722410981175541486667765414015698668795530530725356034789571526939827458365130921486299240318102694275866043741899094204603330155466421538740708671285196082692728585810720273727733834248771390258862944243731086247311541803879517379615536807502349068683977764957176738739571240755922973171606209471887374828731586617037306226171228575133918130051674923096582875578370988888173068968359790229582396237216944896892903788072069101187431571091300072638739468731704085620120875027311443958556375455408106749998481398699422917948446491923141266498996631933170800560409862231880702820171619083773793460854195605821861350864615252852506950885479990890953359976715629211836245080971918930975105244496271807347984785219133125521077174953825568485011151133579350533308674450009883551857231203414971418455473211864088664334502272005706475416832111168837031096106963076661097367167419606173898796370078902797395805781684171772430457971349935912311801576872304190579480645855459622121324152007558236635676984400803412832328234642004828832489877846181421858806699709501556504329716751930660951044378750450047626005048260198705762535607723291371910017445935553184464783316774142224456236788040738971387492760196360636227639641180759198042542135610478270955230672117719506471289726118284688794936509182422457446286456650831284602137716078805652438419347699454736136037686620172794628736874176871185435962912196604964689344888525591940495606245698848749506779002107449684381586094346928462123637012391449758658266507300197070179835930097649146467579497312491508042498654902654080406148388300465232497230172025553841520396576342862982975933641547927624246426654756390298092687696687294928659804532690369987247142217961083730098388564021224138125196883172481503028027661646923287843678344101842254446712617387857459814823424547983158481951031247313684552855193143166014752935787619089070800553301537114992348741392690430071703667615954824014109052400213026496924555218263957000984486991444423797611999374294686809902518586868347768995010390224943531482332615115774992104946278941551926476564065419075961808694865976795894962541711376359834718826104454969843015313936122453017800221040931388321679146942140602729131667177897242643095024930718440153207588910051627627577540908825086937290467603561611558444028367369588180682628926725488322079485705319732268154340388950571509439543874962736718103279683117202897524387325371518278851450366816470901809001150334329976379416292727929037846238554074343407828541852666697912169649710288086762241412829934234027528666752684840889128906264673978477413543203451320585996563085144024736917629098436095675584614612682285531408335755711695486120428154940723250424164736367256162484969004479144117617190807035928783359432110670297496567937836129898040124578965544701206986620357772619336970741258823970143174260810016419367430163299629875893934259473804108980529773615609795271258713050738018860501868048288031701370366286652038690036272632459139826753321655299654637711989859089754911058203870612423497161014057552456009835442816333469349464883532991345327178941876299587300153115035881256956947069010363492214767166983216813681405308687665643847991031903118151013093078515764217275468096039485924387797176990004670560594540334373883223249029834005046642458863955129508880620786699858334301910504790274990548439002629586079972345570505721148146519216664178665701609915746189700899631986441760785003182992036000380746026585089749871973310192896317778429463454596047956615421952346882223364292556803793455375008127329286293998770407733680815133169418682034634056852796595110237682727036206408907334166953792108810271665748470732074836538303192957615578324187664353829515352366409923139819249241399862116772418579804506348079701792748586176323107052950791269315099351879193375333175263018176461287636275985539338365520189546386815659492186859474078445817359476041501184298377710765728863936850192915772089640913487612444337068540050492890128258468123475078887635471390003956867013131524438233548141636164649462135401755097553283455106931199625494262874644592874943233772880143896658349065861895709015993775621716924351967862579885220858369772930842143907213212211292236003481787924865547030148441967190039800046378278120271110597729467627919154737872348391437255711958972129184901726655177742113592936332473290554489730823192999579255698415088863210318512233626755492090812493972698876798769850723504515746909223366895913274849809154411929488611035230348488447778110620209016608868167898803640565525030495338261826831330107718052874682681554015996440680167141952396527018473167171617125421757012096324926292878425705110031714348924468582985845680928192142155370699914320545992573300444068211267653358005271940457109434795495395978961944705948268497618843071019534035856874593245009259835213299893006818458381986616163784088818842156299747033324401401454956416754064170115383247143171428140649543715944528475796255482455056677738270104954445094485083911675313736562883600507599341105237668969571361001695449434513868023663049659134547420921067958740581686112798704728921258617065501904979711430025499461249129344593201079433355002798008969917700247553125191096758495094546866498263736076346350190113922695910303788802463621394785735346083702149274329560014528279810564239706547419112857626350634155244543659953414986510865967709610138137309670667019512630429932300301378283029068343539017739165676076737609295037413033806506701106224330937470607682138650891857193775484764362448378906996718487228320865540935077498100620175609936431892177846758284973432615446476450512871428658758356024954833696517846266637752767268003272968430433599405704625153567700800065056869027524291226687130766696090224196573931583096352783572968109402501205349681034117310660410769671275140360750375242619698556742355259889927485618347765622252640247995627334450329141260778940511175833702121931208663365830321350223934804245867699844031509722635399650928921691749430687990330603681873840062037245545118481094363190559763412638968846387678098185618834505114795799970867472269074164301875784243009796875001188409826756961593766835844883347851450055397733929516562733362022277569085676504032170877741317219885690262468581296193401665820236568778909387876229868003442062473135182188723990640552950135427633057516422187398883049547290784432203528457800514116600479086818755109373868226010874609244810431411198639767158190673232358786281042710896294089550588471746987929977240752860156994289295848934832052290995084607029336315337917564225845643144722821032030946581615111279046226389518206007682299940105265871485434643110456487354913903586821696724279861394298434536705173805371014033312307592968430706366257331280303995687269135044170444114324545754479797454702570893357611376220015526197534562303314087612522006014647722165426670741948871286972470675833555838852199620421533699387785060327890055683352642738087221468499402533420920610585867248891686602568280745619207203921354141978341160388792507006854795771211629068546735397431188611624732719271376758109727454366682277775465316864087235979829847577342560802047337203733758386696750891159147259949531327709956976986603706579841919092234842229895113811293869225193296429304459495582021161091705061184501667983841611898535343758264704645645348021941818723959208482587179595658096640638747956306212323757501628188852817702106137595505084612512757580357547823380329083128481782273427379630272984225431685242769659669491225177469118769719536708371021665638330075297470324460105803646185820389619012366523803487917130142492001121599116932183377441134410926286005118503828293636371093913197946079021791987884630134825023118233765152993306624322907245801823432719624875185104086825642321355349746888849729077054347148311340076418267813953875957717410698300728638511199462648403715520373057702477344838019293102778058821647929806205673125701733382855925388508404716575680607116594902891283359358996583870134425219595303440628033534961283405310474821903030335416143244785116214943975453669850983468607598836224937845753328397341743207525124376682248161979334701217564653317248136860843121728790114869453759538408853767561805859156350700931497484493341978584468381105660859393747814775449854438432574828983951429726396585780800790234858479751190016599260207249665949915035471589366778679229589855870268680792507910857614301280109843170536743513132027293317652724976631134123253448824148323086583548301164892770811886463884063891166746024132331966627972542238214928192450294253324521766633429981353810953782170853529081200192306289612209735940485151337664445736255195704133307923628075770910992439986483071472438768351302793648585619031596027733549495728981009784042329141145798327249263595341465094286326790103832876857173362967362252273081353378782951585012167582000821108847846095025037589133671966937930020210370683194619313178125151288922634246285758759287947454341020336795960602388270021532273968348774775170467848727948740500024044745360033766346298794961959481899649226313261081136988820833995467460896742177667363916074269853368416046955923258784872256955590012935810715631490921731966138786065963842782137838835245704139932218093434199376954197574722622237366086525078215341394920875402627453589863728518004737047208009423724407452625885095474460848629527468153629293886348782680914123962562506255916660857539214197135825796174809202024846200546999359120099427741787477578862467500630370319851303730836643419955921442042881986275827530840394064531881375105752231805174580833717636851340944506366055963440620025334089038605668310390433741845407299040173726211766574290478024826677833540158278100413566912810837373777795191102247222239365405499138220779520894821333002329051993176583443922363414515370329860444959555960912557476686065453737501924028612388898717116516175657929254915592784047283956315263921493222232027109964366411511656248430477560222494901237756265618140706111856034424971693268367117191802396826279233065058632396272482232186307782850172262589503108810825346458916000112240695343950699135571940677810881032326387466671437301722631450988832291944858553242117804105180212561859097681176058718065979197984807968133876981379163100406684292161310773475516343211402265158554198138445134576405079153185859322098454070360863684500512227830898566926797922409693122787252613142029614546245068707582088129124872615101718462785192030582509987894067054884537259849675492294828997662443753273013853342205941239239731109775849053704667925736743957844845889528935240454813302342838685936036865000443651917673440302255785679977590061100556006390846133191229710605418306842055932805857447279212620810922401073436705707439495371188872713671841933740461679721976346856535753851001777381466988388120100120776710019722326760671760756407940531932285403747023484310068466033057193986477172481120559929363164359628577998923179185947418633742566387343235167269826833299669169853866633403201113866574284149735057196141976639194497973542557527809770689163874144333832848994003401418971233642118841510962521347094383991917059238908050251217057194070828682915915229638236284421886389008442929615701481162754406583425377418072517854512769156617148496810113610538863534619459484771306012877530140518630802636888191482063696881285460970171501617673688441937684726431604543950316453091197237120842160201382634178026956313806088227795994357257059078699893899312775013316445957782842507384052398820499707050737881619471387239715431936406592966895855288619243342972044412494971881681498377807241389782443658176386099314458312582953612171965920174353199512580589740895705405694277620237584041418904592224317619861565435139563255062107223682155994028152404465555950231120713290521250478450935489663223284741439777856719853845717188097569109815005199159432123207060923000000733256350179333623810691776670998364328894446484434245410991732807415278798112703401734632568194333671680319646790782330230200265953344834110663749852036670346381649379816488763783751512094847755120460702232714120314099638191113605631936664925840181090332446826670366728278230856695356416542192330640887291623141111847360509748834749094807640435498122240328423543283400502793228764132370665376298301884511259726173941652259390888838578998866886259667854365493064043288761890944213929521935342962495938586904320371361599489382344509324123409321315796365880299506269244660308423991161040873450220660109603393170964648182042496482243788474861638453804083754697466682903807773623921116224077377592723603345455934273204653786339656340099013609693754625722994005198891811463864805750701202553248710133036394381279246028849365828647738419699936145415890843489735868173682601996757468391589845905098541217346910042496055966520368853345795596305882551556374987292000335820290943958718586832475783286314816051641398581819325134702030653389978669216279784598553421001974836487693871648861378897734859241640799366137111137816971307515451906136923454603576432059439803507031032437215354698193442041741550282757926148318313489988652042344615118856930648903976421862513500648316043636366215493053728243114950136083308831605832835106614524472110322698822486940811670654912115198649148581713895459236674690206724352329873061428384526610374031600736715991018729559278566947846640318628863821721673436860572170045235330247212444843782484615367481607653283765081703714726226917832127510288851449663409883988877422947731980414392537190550282163626602894039490645037147431994824980094679900378138778569612395567778304269622543740781482434682303315787629508582063309190846705093613888725171994913541460372703205103104107395370827269574512924324042341751179444716760873060287646451893967054399510573022467865636110155604554921271389404970533669599689891626049132934680421937734731221579223175233310017062410207483812159484197573286078022624536333993230563884904654426549970006749755308070398825806020908922228070902573938736386287086056667324703251012028708279653956508136055858529115377031290399564111574985837239055585710589466603459438107385823285282849315697686416450930355209326637378357627222660577626698228970570320925543599245443111888441380789765494040007974089188210105576360902946058875187819893241742232747394126371719766047129593931851346335562073774194663432798084950332272112014215358196808662504070046418976372841962677744464292648951305571515496095337872251999937346561133563680645584243711899603782201170081360141857172699702480619773008851086745005743454073796322239094345279204612675358213981591343643073103117625571585934117228902285062940971250202826760880739803034699677895528583808797360625978435972587750837787986102552006950146506936140330417854454267268632389107775876338796209494187346083438628808642650370899997670662205989924318367462196847593810447269484739767424215119089280209606037095648588023826414888583214885020926502896203745106194641849260646370052347064757465109184376684089996350788037996039162513852079281285147537603571679300104039365393130690067055712850419549500676772911516456825435347176427036209286527999162274981365574674989196835425312549858310041750854779615499083151525768687661221149091701300801370650634041375291446147223429655625516130232321916355312517802827095296232874441734992096786321163098049530761093894023785816235558370276991564200544159902314004502673226935837942607151161411743276522401772186339887267136084918593017601301659469607877587257540658980362687776321654920528608963373055064054335649487274512140356120009555183579019792861814021250691187770577687656848143818988541885074995145050611594689854172802066365190464155314278700451172122906738649002550617311477852061450776126139805990722686698398412364209445638161425720991936955741097716591972799404873310191490735912126213304042331540484044943000065353750055361487859212893121170774005103556506232754045338987651520327246926740016563843738689349433467626418258838351680308461025107816374151146138560845466899511096113220141299836803125947269369124151485914877924384021607123976093957283402405314041726358606920948444189734470906325335611405935486877927784208351304802628545570363212086019623989976847491702634105941553512837954808967274228690982042010277157910253235939788516931815951315134783408554937920514923625213342875194266111808499500919681235538875552215997357475281801144075625096992696837189307685300595015920534902210966029236680964674521089985366359371806504114246577565347619832240389260993586117681043358496443310557727813194641002969409520235763660465313226397976458229485441126833753479931042038162164030185810002197775480186155254339292299208948925646895527835778560924980514036998624811243177781201973625617346604627549440319765436994733444613552380093975820904408923655983113912700262866590807619354710957941622630550263751782618692540464314277469178917231304985366271381817953204148535632474873081716508544809169955794538018689750048465614636030060704838511775156015316358772643412226106181609088735316074738929375561712638827848490592720985933986424769183706043175275419789651895097983835083518446701186543751247725766564350927641817536505006906049233929204261063195509718687823370712155670369217360309160520610873234723640276180953972829353765435397368091933540611731727011490215246446504066206326364759513827099994607792836804146055558116244693591420142930226368957244159212326083710688766428110796354470253852139044822486351589180014429189934564575696059415166583236021147393321605298356348489044708268212533959482838882241164862255794959256745383883149431494432624316458367795466598995876993042103402958359723206544490364865686864247561885727026223421903465226015067452934852850466145146002611268062806788531010281803782416051214077447030114533432233062790023756778289070029204153376783564586542988293684567323297913482593377683419847822227606285663333656533652358941274433681740832412744048901891099536146848459573287390205173941425309678732749725966083740619302640447081647456152169473783198113567978283255645771557278947707430226511946425586246264713406812267061758988096928342563512448149390422943251263909808736118498690284255118356934522678895258092813631215315405886091900786999429207924541452830534255659572394453330219701692309373791510739866364416113052859712389820870614329672887771487559260354205922864710305063119227774595253376209258886885345553818113553952413065811442061428797062267523613015882306679578895991874961135644939903791530253966973102529541522185352026581017373309741395051611841250251512214652546681738354472191866647321428527599626054322050582509519950310786130603574493784048879215983389068784969146751432552369669838840951970451597525532135438902825943395526429215943122381293281550368059790794934230337952654712784676493609102496638576622161730343926761043284315327064025965832512287439685003675090241667530742660158361270554772832421944973980452825882946782831752590577045977651169596000162521037392870842280108200047929754539974880494388380568155500359380722468113429984884722037394345837247112377160914458715595303722939817956452197137391568590833208581467526861581918722253460915734515943574675565384581245741226161839722031370146225634279788480280953271817826568434555877790136739747657749363865073203384913238202732647347016212055698993261692899097225853962007936001570341217822330598899783937305840111420366937250521735888223977675134550949867730416803899649990408977765775093054361379163972511406359375514727368996053391489232922143014727057242509234618832822441882946881366795162338307460959081016943586401149456925647518274380611934088918845972415774408026068688490214379005692415851506088233198025715704096460043465550172239232832081937408151557598382602155252159184455603834784806601994373701492936620996394920981110206316992780210567973970928477634239083316133854974095856165388185422416580760298453960929468037598546076142133393673747156466609656125828124359804109148294023097256708070932188995175197575429136844732685473044046158662594058401201899024306777990349057883159732144759018616578389009068891439945820380924401766894135761389440870753358175354070917451429622012512950859877510990500662315573955671642791488280774126891950185548426177756713732930226223131966824298423318257912891965898260363001960920296344094791958622612956968404752296486678992553196356716417072809395887794751432336291987928891767463019045865716043993426265116353828147313538553603662615728379000547036762693785338799506929956279236681070522382070989503416412694404036781256740186330738783756136413301551752838236554721754053148081508369490569418467429708305382399033270499060830365160839899832625969565241693028417364720508188095023308304741983642484256776167913478662726014736645107334342513665950615513369676368606159828305453855233080114408452731647223407278643040086746412697739834628306758722033150678305689102975804732318264288754663068745001374647126800498528205267578805053647735252054398241073383923621417626516100073519679000108106076066659916522064666645626711687740770278583769935970006329830465607966311331119421289945211997073963995672155753255038876191925509764626510980022926688160745388596807401996372515343260043431589060119773510361405891691233824569852690650175433464128730561003828085964121453435516364600524869786218490589415084965042405394692233763070380717111133753369958494211186115499272140936408044687125354638128470020370117979384678110016168118942164095465585891199000543397431409456771378701945821051485564917695547286312408751991258705665809045001798014974250782720377811250861378325468101767645745336095326163940245237143121781817089371427687406809715248224408230292860095476088795329979288599378023864167509665283421263491430458802920852202777808582990184882106248092349004446999812594785602186692435785808109634736871531795315468167725148548323851452292813916067658858923364478014159054030454317403440146808529541719882788800543998741068628621218840208888859107145353218463814167335901870333031687271410320606792282781479446657770466651607877509250199186066078629195204676852796632907112170615214835673546165968888436125058785773931785816828474009578114094537198411210262103217836303041240457669439041114821664531148502867404756507223327713013449264755517183000198112320134715556332400389637379864406660235783077897598777431902494141839701093134079295022123228896484264093458420010130601801188826462784870665212508937202383215105620718299428698969470824158647160189808730161432730841142305714753501542799575310694621210002633826258078115787828073066810903893811773532074006571997040292334953944580152899163959873000906054682028712511307693944492823565049672845301460098551363989955564924507667867130416147443805364084015969800442311967364123186272397803690681540045265547149225417511327505610370066681564293132709329380311558351350236821909481362299851222344507141466703298509057989470213941168307186930722706447368286927107947556823504652642754429629512015161960844843472699927884128160970382802924334245307575173405779849449878088148513250490077324128334717122970323368228530113762985933628231921768043332844884689785815266121664070729749171444747886562074531437890802484690589861793817560571589758714009224140798313833912919120260396667589455715605599829468005447515947662455736008923716862250990001506653096594044746078855933224956063972223632597822856532783312552334437751382647138644437184624748624155542830778535507204610392752458343430794519204728505718748056402161046584093839850070820778540311709939345258518247193966788759570914870605715509836439150512168623570347089285653655586767823773665663647814087377595817893014843424690487809015469557781708636995936775643522371322818436860636091186169852175367197518230105324405141487002858563516045524105748235042629062040387272445191977254699376948663256930846178133560866992306047364803354976251062519538346447611368463091776317918884723715579535558315930011202215229098383959648160093260025932959690650120369206244572562655229784725832275219787917454419676337647678747473932633780523134062312630355945584327064802753151592033132295192406629605510883695943460464186082794026966008177125021430058498629936743411739515642751037285127956189532473879454879728410799214339072010474984535528088178136220850822910378677623051277468662109302345856287885272533810467551931360792614815083840997378840884122593552971378794982225131803353854171812286671322976875479658590208701382715279955313439163866109418495229272855664904443363847090897359512329694633440129427372287092521066944770422369901452731724324862123143919274300494735052414637736848337948623456707567349985728927405467931974178110396474548424185677396779948798716883315084396661887472209340728388617164433224461009986468321808002304985776927281631613587313000098472245356686568660027133389656966375461969185123522913819404618513122128511342806911816906726622969893868610423545886259017351451016191385862002878194169461504560017496899236744794115102870846087032060603787260086471040673747326254040518008176336193891801482052065735139389536026007560823197435449712274793095432137432740403144552186160944150935908181135414939335335614340053943994744601347039845367393071904841480484517634076576141804144754568073497760476349174847144722856463279622996342736539489708242981626810625176051964053910597221992945190512209220183937826258775484342100404543556414928415386054250633107205010280102559245883235293646114636436402397821171248914828611923583552816991427844153130976862574297548064311641341206796353364323463401203784366769154671223536712140333789159280514366549422428352222114062942581272730172340548661344919635432340520458613991667421314480282784785055535467312124945251999323625995991090954789665088013279865124092229583837904558217042372104777244672220838019454722604892269478193845539821451206034318438007268174424352876768479966071399934966278967491442107129187781533401473602270495633753260093837668398609936385294183749536622780096758508045933483251792009851563745472589023836209404958318154311144104263918755287256226791771674962465347312987379277882079250325204021181645184541327286315480260079607965136052991726925666875287974237827421308285195916850990204254997141522503110914689401342934195277395342783887631528171095064309793629366164430282757549737089079009001561182231302318321375991863070920015601999596224596230351842141154968612932955419972840168086113296062004300475526653969640219983154838450512018948483022438786746421342023836235398182632593269870594661241814527991386956890276180988095400243560253557963490570042772264640093247174971110584473808176158897055731914005062460330221625593667694174231443729922751911412414381947530306046635284272277309623041967490220687003429351999869761900976911795157003405225934344997549739120908451866238016431308359478890046284701461984921229635322844790237623686708448256239764790272830739026851226912563071287752970408694698182373935092407777369044771964612059274805285936930173377861110934344154998071277875623916984631266679224501465249281354816830551351562286980433224361082330730682653291992792996650266613062793692181855504641303670827673671060305717905226848552694469846384351085951605017158575357189053104967558172554535889357782991748055452436356425677919169597509564434060357127442272216605653455001186453041613672358799927360129280351603117934839469054056814129763261129053505660374665682949097854477879071350894934393679601814453389310972278900181579677044251896837066934232965160922976739793969291541376266605263357785829012484023441419651502659759644098526874136187986037195200112424463710600625265224011035980711829670170351124741770705989419708483785714606408688347223385397306421986623026063920922621520308285147828125954214820716106915333003932828556124250481514334809442520456171458466130596492181629889138212717207700565383452734779843739252388937648851848186266874200211071691425779510790512548501846839073254885665431732505506740041634273640048918188328367575672044732976857718902296809555417583534806743405778041589959842905587931028290054566855121756264465220050285878305093597819541603773634590730095944670484152283625068253570135265844572020669339974836045145831865952587892982570947357261054253253972388139176411575191231347050406485944587730037529337977043516429871608832850089009687488683857837635957304706468668928721525140051992451991017813535174805674050729961892912824436594512009395766947312101972656760984574201608019550483351378882394829532682793063912849576904322166187047254257278299635215008252387267435303807703911514030531640387994921857837395712435083396141820967224064890700989176476056513106019202370189702461540182215531575787200876223755895350369793180745935091119265113760765342725679108137623780049153995484849811293866045177303250222781465200142097557793216208405515305071827241918449774990373868167852718763307750102460754005160363664766763704835593765475928794506872747526514331309775363104861644069955049421233599160715596481594249888261770212434907371057404007685156665212517947328453731108463251678159209151584234774760928351527935110077627715430523969166567232865269113136997848216321214136240652591916760509753993967677111144728474910325493504778958786129239903731910275775303398191472591469524759636947314270263701584456393027448104116489127819366011011583592639473540045577978759426536169230737089588788469979037299398929184915980006478227573996319881956950052283530994731000537645627390963947579350662610127229461356616186456077141160769456883744527316542701508236691841622177444424442201044391480334076590422178982513912839385216701127932564933610768836834684239033338847650948446625756922285042488145354116469447140078472749177473514526931475389210474104896278376030534000563995453719629533293269873397426736169803509870053577157062274169193946297282931281881412498665548661622536255850730312243779537710496840698931859914974005854629339578965408366197753220598651592555442493613704500028402191569181590404380797779663209571668140149941136989259622908576386749106488848419515090468599668421418962491089418768622029063011831080711105622714120614195241872463126364469897547741528862776955468394572803558142242885047152544647434707422449583766717341277181882725729944234870565277576320455308530966719583437685404831853350630453053022967368156300039653431691975075999829126284757217411820920392927155499529061912910454903131613218006217305692899410998180651793210654753570105826584140310281018247659486290870009648628242104881132840272324724963487475101931141121162093595228580731628248928126817482570655184877355110850490703068131668832831037713884598407142630466176962976839416030085735723318630974767967813366905061551608726321228482315931714014512518152838969756731698388054297879932271830550757682803875240603967274899013874198028398137499174746124144085333000562199953873455886471547848468746138925970357692585720188473170799491367695996052607994285879514946681553124883721658756798378351353014999492246554959348653833725808841845201328505069332578190301650965472203347503298864322117923387247632650172077278278012706813822680353499835824479737660187770584300730305866476502842265415391689636004272235759799722712572887834032099694583086357817072399517521803256561060011833894915163081023419049517686489040622315630749807602132013703617850701922188446216427590429954927572841907707667992797014286224862624089128756908881401595003174434548422199045536844611668561063576880682403183908954465627566737702732882924738466516163751010089224805683092874436451839894085541254621347131904741790509042067259978713952669681794928480164659459457978042763284998728490071423265072272798117134406439110740048289136495229805571232933832059079240523437254829395264620844072743998237691425378463915629332579770514387570471438935663498377361266337402077239095130110156550634724385092658049762437944077465487919578839744506261837473199306519585878933738139754840993411854200664167417300173001526295233837792679991855054909316498362228117309802740889453541012884743734261302032207234534397123758258424545975252788827480257738429037167030049107056188989025814077099500742030237449460486492350844084331574985551450383123749752633301830039479826009290126167585070601337401475527248838838452236606164486533406800584174952111977180327731290516920647904015337602172705573308951354188179260571859137213256323717430141460292060752269753500850290971345868604576877452717827714082565459562897199714069526373200723433004735023102470640963321301465287939488422820671704368324235012591897975174233070469407411786761270264867001316125914070793205468706930790324050412155665847681967036341716181449118115867210962442048898776147432256867150061433116991279478142074338285603031084303297355873718736375883825121546928780008204524165507293158341093695270336425089781270386890830615307800509354520281471436067613968932860007313814734009226370902204747263839118921107900557355699246445280706117224875462011122457382971782195686925872008043990304267422144772002980474563495699109867395073321486491824600608901556072449408467086419277679580743222780192600818301199087735932296538789074732469015865211174611649654761123828677044116203897944750112311237299022995328107811032829763622757329756136783946843313983273745312649269246163386892578224999019200888748161950733329840932966582914160926231519920560514862095786361619186793639604419352707873694575178449613558171209912021633886670390165208186646374357642575931264710473081222567602048354553524969139578703148349923738267369637450463888703263228176439606169953608727058170751041530596312313350457235505148080269482793846777898169725978952354059485381343563287165969736401890407664375785176528813214041833752112633981274468952250441025285861208004946873300529711227210032217541364419788845145860548844234285256832426790635947921027514889109477813157759914752120899776695865457956140462800586299630808651228162867424753607546919675797627727415483133112188439887671312803362426369059358512177281043025951556721049020030325684744027758255176316126898252955214445682938857415928306894229799958151312381664869762469548769682217339646745552312336002245795134572341600333233069478723210674519863627930328533991002182967032480449892559170573922795180020684867639617202621464378991820419921082627927043294335697382018524263873412230704957389918833294151330458001205038189457520560112424518287463785426179057940067509594306100264951436035681968617217541517418639910773678126936987657998511815355622649497369642931412396481926389061762751925182540047644583856127165962256016101993930351203022839402229412368090601449967891033491270926337542239525128981741537787870223528824828356227985679960086393312356167081427532939691454863179007927760723571792053363686917140642965796377243861200289334725355452040824774144387928856327299547443209706013311760745020446329921004689555030618645915260794970606297917867263516817619854880875779060370081322334855212267166566364154587808890704657448199284417360559290058129146144869050270318247323574199182491532912203155746302361351584553491775555663298426545720179720569355037884439723046394211559037066023229144642446146386001137014804702357734881708853877996253543226367325081029463588707371542625537984848414392427122714113852995317612375784712251143988771801831459984720692540905940884321468337494844435916498819542320474920584016853433605112794291389166635247191664743553604343423866846674831960296236742194148064144441372340113893993643703703060712700125608058461348745908932005712437297729668407995128526779194204167147444737030076029964626927071530861346927598624072228526805324157476584995507036763019317770761074350247768733149333443578287746600646270128874330109282199755315667922615164069915978497515599625671732506853909972373028369027975466282355959159024065091304959310591534134196791989338216578788311892192580491376520324848833182979396116155958272849435380140103062495800230010172163430491954291517979841062379750535893610027459776190728147548158772122954981944418962211208214446934837445525574730229701824042858913205798790243180718438180797349233886238424996950602786976063698539166538639631973237004088305911117566335910917515511007558065246371749178587062530790099787215344297826744040290846968750319513876451033428604866434541235814631042192848240638538955348380927146452627705311103248525751800473866644248737150097292691270736294726554259212071090761812904402107659152617366820125212276827538210853797848149269659873623336666234300379059269827496260558771020444592491542918699484732319087302547069984086299357780613977084399663703335017638308586394004250381099085987422152339764926730707412630907763724331189501084203479576125361118820618387896159723065141708797663447970732395112296756529172879132601881041979876195832216575801014043572715783384670188782134126155562787901865227814564515707984209748032891585642126091115921546787336169813972875977115789518256482438343879154727887859702752632948614750880950619986205058102099086547417114631932616735710310991386558195047501988268313446322460565867165708195699260226007842029460523156588668652401681872150453083470081340787487338945885218302037462362425802688138834456700343231340529113627770763690101901860920280123303988305474493583514789892427706096801574448280315595829424371924573127365882200921849313758375718415533231656487967653234917498932405133878036494905754727726291405650158137937881483796977962560531263687503327895054705277906363820592285951022210504008069144466054207744389835808564503822038853776019642355839382770275170406857885636544924420445575245774770931973877728298385841273903097521952164377790256051361631146716546717658979116851422364377329480576613452685998011948963423779164321777708381438070523768656202666064114445982077797512890043285346853739768589672142625754527974944631005423640271582898749914159922205633083127149240252489976963729972414961743902371210466250114746585411131182581677758566631194541377553154933752341837978881643605916071732155748023889024488624180050789446566551326696002403263547184755442835920168862071001091652279298954306386585830948746369391413272257848302870294353295909307536506432619737303416821378466387674091919146307960821823798802141023492963424253893636570536058265430457123497983321923724309300486551064073226071567439310557171215916463762138143392881573047340445612149223802195593544730279213276444478245896607166408882586646698379201525127700252188416201996430934384149694911343546072939248785445221994529958458390831275948294470844473856945126082834529127995583675898775247708201849645057693646148532990132721453518423936609744263618695495764230336983184603587605998715782573667460143843035576536507761792722078453913468378396505981259386182532554655450685345881308739438558142296828227696444931296177549761135568301508300062228275973004725176101154761293715480915286360666711635725927842904071966215128829540687379115155928159450713586220667175409998663158998516522954017935518447962269608417717359742620626315292202900123426095173612233244858867689396083447679386601115822631232309370410633173763518810388938163474667097876596945568235936508015817830498292012810195077337471039422161554823542794150610490028835722917442993731387089659934552351107053623000616943079113829672034624119323504632778951409647448118370093820609751581631989791919136328663600130460457957486628194602378088184512092921526932845319163412146630663001738937878693598314822353757263922116616997672795055658116283540886205833853907886137522506885618173665724194820750775423982855047247357622019867429402284859595779979380206566971379173874676506927748612481135663751796378831446449978563573731533202014494771255489350211102599286251930324651530394220524006694080490639724872102214556344446341206114927498112953022152268823452109263753104745579784696635391805282974282096029437666952005068858547587753463093803161535702598897470333584299553632816160564140370223474502974295347059747957813502378004262752627357410965182685075868562666965416990586905299228424756758478516117766354087670364798264072006843963545446939058578358077241780622415961908679551359217712845175529115160795530572803017025412352058763474856187663964834867829052122386708424695354632850280080370293680691080490475498455737084900340523200321327473844956350151322575520377384304037012500254086606900205336034685449240530715577144378415466929432736955689458746051709196514604215552226725551758993360133790683411259275165782479570228193798917439419822393970196657759847729000011769398319785341413760498510786578206344680236143658034357204762550248908954947368923181383110318993011049654602041557741690117415113075419982529762599200755305984984005500804142739856559766287512069695830158532359532998545146253639957241637572873589057431958562931039408581850759952903304373631826784229679570124425217883196884847518606590068379487048578546924651187779870102958542282518950890987706277370661293893766692695918090887783436727793000133306718477610274707254790390758713385651001667507091194417677711652471518941346078433546538519876754682214988140750203872567194700093601405745167264666927543334448075352942101737116924793825544662068554905799135851611536500817867121057178563875702296564234675609014840250381964064514771298161458177627230874422680942765352718164339300593056720308476010076682511544767937717205084172882452955300338221102020300133323905469119028987594057918376231979539921065999791011264598335675078544199583993256093548521055604504978025581371045227312874074463386205826559243688628356593623057775080262022278053332974242451357062135286283459692473376793058713318154100371491330702516831053756717831396904049895491800755922843661044386943389525595933194076582384516292141426720046497039424442734749112335565150639767982898468016218040660199988264356396177689752833138421152929741222527214824273061752231133207613586491395969182606893129066155595728910775002336511389487104301032318750430960399473423465820156765656046093148250568675038192352894238198947805979907727032904238194559713165786944325886433563053687040522994196276370885851466856208710732595111575984586291259100957647820261615531390455996140475035648607044922607985628682496047448277212992338029618369954590272390396362887190798163799318193118365928778809816820083582611506550065819701168156362515601515189213981143163002307018177578529229057178686374307349809929818033316374241543561072616371474768437622676199143085785873496347466139116657143800971277552666330763958147178328333141141589675015356228016000984975190266894890560144392689537611064180085121297787954389000272938338990035542323710863509303124979521950548729929723720266972684836954576694173526034030525287222709394230029508856422292923095747639814661481662867825885883952136308056013144316029634992340674333794560833107239686407873279832375979273762404159899476354931807268169739361835546781369074380303531704882230554478969786989282326900653787537810201142571856573612140122682417353693403200703520025051969723329557677999530750726498701538660843663422758327872191046630245267283058201299332288904682759958595201650457894777058475831237667104965757983169938262585303485238916728901975851834749396360389088769707989694374232370912993847688072166466924153390520437755409934519586289310403441044460672356716441634420665019877472590350701174967630917431928155273090396982431352062282374915360658215269680577921097644717519930229031283919226890620513121392872769573315517165113636020753493993486525801412188240128813527848555824542363152339942951905939105952727841160913563445666953994994386197542689055193444835753586576185603221657308877808913879452876451311811930465891570660223352572928647515179098871274376223594802378353911509326349054606248063063785992897476693739405191047214241294650977767689457575193348264079892116141415932583837181237319834171190192580869953912939339229659743831987683543735030078626419531023946003328692715650908700537823461028903517611752262451395210114459777753976862222167649007911690595709160195218846100654015500756931685420886209873863139738566180151613607292182254081990880751366142131647665247814334934107061467628162959508821205140654184324701706894668581899805111166957250968425085945033032228828985219096289093043275857992627445226716410496268436000209162661147551308562677196409524066358969316706011814592234749910784860748935584471261556208680847921514144687958575981580536358561862950771168340291701614806950453900382335789195463165087068302438651819923763677057376252578638052746466977120035949837771611572941786685633285708887881498948462308367812527309541824813581270284407348323627069222630870407693068828206625333543344330866167706096112069453108116713451284665025264462661582720998482495678521988244264698568019288130489274231263764030725212594373223174683687517533969087693886890557421345414901825117476609638049885929030326235856654653294567646073310384846178884182277627725846141068512036295640024627819523657452659687639324151703096630812404001182222782575968879169209152592008713809557600908045292811668765325713929370365363129648720776181070204824498316094056450983703277914693190492850504212249800061795292453832119336329775089360593944517922054670241066038951750656766315333255217956895452563589037588954672355736728086999218834328551114811893515372055077020801707980070029966460622734631914484706964500735892713564771419953882277121746881292162733709319636348367760782172289356559710784963812701447592121135891990362206056009908760959054258598175045061027185539867995710967245661870031176756034259834758609008382919480999053313571880955856288906187514425974429263878646945880746190301284630933176138826975490394141891873928571409920952309157687120146317190878126414197774947902221239057157601984371169438298668810908071714094032583629648524826231235836561512786016432291054167229620634199929390539319036753058746944200910286426821765742800126684960432456702042716383131313570803070830311155674637982700874694774873689801101964393742194225994760050958834394716975321980731197135171300959241317793472059912900368395550952549295768344750476473055797869622964667732723534244056937028119193608608952098355318809373357142754758911489263698060927151893279930350739658598359258293267759450082651919324537389025312499750583575263263034765820410442020865270585051668528697311060460747913287712181101325824492884959585790179873017868301789335341813755294157403731559997131819545052914950720921400023450763942696972058060815712516816690915038041940577397583855791608736404586818862018643073812070582808748257862625111318921867572854986012860961568500529460789678546411729606398535635131903813904031293703848528641688348985073793271364220575976110871255892692728855494886954677617952192699266238603004983416793981527849262973761634264228627296565180938446753827539709273343499689464434322034994770700989227873308295550547053611430751445198828952302207809251849465439170180782559520583170886271584408149799930428918653971349041352572887716584571798443918232459041118348552350141540346199193655853805374966579212339617202718311894190580354653105321868809401444269321900975670511380968971127125866131182756972023143526925216109012673577376306978999814113916889098691772311701409417215937067842320899612889569445513959453869743146052901568489540075237822297296513167446799794233630911980974088522756453246559573131522964139951499833942607139748723114768266976010229119698226312606856489862892277539767870742221540007311449432358111397077275113860217191487984343079478828389441233029576712208201907619207307563153360829269294518039715468582345536999966843914275357981929707557334226454641649293197793955358054052690136954437244114562375969593844438095256076894375961740003720729249427853070143002869760268179715422090628018275469282536261659335742094355480875892014290947079789224071258705731174730802014283153279636869494525781951953321618000423518806813206230395196717669104163264560380887433822790376274896648814491304404565586715916241838799391231378582764660921392918662183942476034156195396707852737105239824618842583910983440659908958738170632278384235595948664021013757483611803436241288630995282632278658378436710653419214958113413974185008750403890409542972855317875546111853917559499255745880278627225056528752032627170272500219209127587393613479455516228343514675978417950210136990882550428258629528470300816056662343330566060872636916966733983290208750718705012849058121493634194346940970934316986439735445657740004594065059517939276390095122077643583810734510341516143303629717291582418149256778277100770185287024867032432911079370429857290423005298734788112688216802323995435422603180404284087032211657022115152099730380755850838569848352446250434140420525060691326174009577813706383939097699884726999467311633799044743334490171478257970611160736512392470565570589111879021046844120344323569961195073528937624705640871172996340724661825893586085487363917590144257942816176078069783775770996702697265531379070859201890275397048941533362458041359619589524180490456653661105852961127713527370058422932681622855260425018458689151764624556911627594022331542326686590059897004635552565049036837617831228751499226380114445603394234415202560588968900861128189278256328622144233613164351481643175915159417003602627129844419983393699927183345512310839837060179869103933953434492502171989470309284215197944113473299877695751590057938987022764484892783600368630320698029290545099966929443814692364394210573016633619142070724209318300834504749893309886818054381281705813516726850531347098305827786345795447097014085178990508382754629605030696786257825357124505606170359468280375303965087640259299317028078847683526811502909789338307707633771874026943754656448820003647725338298731059605584963121554432436617940717414307141418919807585011464386689021332483386849899824390945527862825681432013437627908206937323707882275378121853032625677669891761189191368946592225430413185269555568006150549802664722211265043467298230381587650368034305056924750535556380197897045578550957795111458574634120209030864487873807419707813165934830239671502948009648579476290201311013471221084490031248981567115335623573484086421699915620731177974168024767740376429647961444514528102409592127068433996933065570351127333443678825633582368912404404113214935082560117869800411557070719237621925905100102302686535441581495580173858636467880313432973043783557743010145070563906051615557756786524875889168067951127413273249974933805329095689703159307493168757324695093540487510445107361858973944825941977981801587769492561201949521809204924053013770941247322858490752004788863758436406313284674800194665481890806108040062665676487663596799180734300671947278053354729099694927828225914720118473540696957451377982204797467472543452591165271822276067447188812870946545913185239444543616151305353535970078250912264111636694868698180896372613360987306051859966960591730200797867496318694911548313003043397701591597942400363844718037144641995998292658643961701230955355345314266981377520382646539342163624246581158260885957197248326463967043033283310191683944573837540708760645890674580485813285856775587563484828446600256699277235572688419606171052751133860316647036079795402806099284112966686572275691659940424366389546846866102455207356725598880089951463994806869178093082221180863822798074250178837489667399729060847672169848729115785827939849107135718697293058702116155831633046840809324836508577800919083711747349350635814206982769123350788750706772588898269350418241532072054686615677495237499173931612374061885532905212297348362091263302366679541151471699675017404499968236951758693723447617807077918362581533484595694273994167696889041904411682536868756887694972407598115396098662703045584030420989360923844891308042021877006394168888975033050940572153092467266348667279414138096736224514168572285987731113881814946755699979574644545432042607998234187167384515524795409558569299644347014284530484490223485649536730281590609300587145531824431824532224189166222695856399243750000886761222423167105113813050605235454220736383479245275500014280178915656120918624048754243637631182778444552819347401225154368894711675832059818520160276889148304865724740574388178119449075402551417749868958720877901158755819402583192500500072441034964235864825108744764275163659111003422423066676931318020130884561535595863750130617407578575086044369832418096365747951020062553533249113258440997330326881411762090759746179720331792325163615808393302955155574778789704224352099905421573631498184447888839875445848088042551449073441550975949573548569632807616281901435727407371953090567271167178796316519795497309044138419728656572371111858954967918976058618166522855393595053472831162137499517696389699953734695915687208541534585189015992015704655343726867403560480607589081492170198579291642175574722174179269975261024802128356548869125290030048557167455199745461814366126537774505151374003992247645733761505465620511682575586704958253795993286812454334073551415304523273954038056117760770688131709182340368253160860880141275851449112286526324358679343450167578401074763495925441037036168918601135350991732263319244181671215175913513776143705183490297546751335707481151171508427049144430894084333507981879669133700130056626659016098235735939412548106991679828409286059359520322679624962033256321396324264193702292706899895723885201372503698954815210889967061037473291795576632447083551915116599109950438007102203716668951406749932655853613524743260643078651180831602907364222589651827221537783982776309906407919161508454981364032010855349325730602449571973226891514149138012734735178162915515259102358640489018729485232770579808766096692319547556761805734166652199096732828224350584170941085353255227397708101363252339996086395588364077738869188703865364560021024488221447326944358650645187150712531496901652236943499189014304159125226482414236307010006323041040737110791610363821884543966681163975517469752592073934538057840013959355601936205059796556698654469944435238465551631441297334448335458877603758732789694407677160956744411770926003692374905920812707456189690984453557564663687414657852091454045548754939337389620914057015483217927596686331885992612171455369688724756577413363616198624159659754049761760623393209230152057723882852650513525564941734917366234164324184754788373919368271091414943312132758861252837899224971011662349809571495555661039818729590912700720285568688898505612552746395312030093512540035837546012222544681714379098018620181038146969088594989719400752055009088364300177076539961790932099897059517246435708608891223050848418902342676519217887262792790362102574381995492809252723493994669084386352222319782111988812229019532341956841657487737804331409602361787762358066508498146844278769648253176349163887080677456522325665056975468216122114027523033298293438521595822071220114317827550255399397628872134290030611087884418226658482835465489475085958886195730867458428234571199524483956062251958656925209231343057022698994523537202247943241618808750473080119121550431015087767074865060630682131003317235124539866834662321389900328076661424462528244246994973558627750490030354555131768836208479357252602423895671004844853764035700508031749927005711194657601281163806869573940834968352594332174139322747772513958840786420728211841819921730318794168320747579498317372513732739223804177277244449064886265074691416668984368684990431844816458615693632740069274871674011505580589864029360441631914674037307549159675601055485898236716560998681839979771279707631574691093118740767082513677402815727452214603472259300851089274466182193528994046837935300198803107505776853180132134502705677690647302165585258957605532208731988004881050077510569772970774796613480455762190539129470145898496058517091668179689191003470789016748799671599473976336789652522762628079311979549762733333584619917051268088133925306463564203165057324047319376468887915801650183338857707096771998702014805978558738106470295454984410181746732467253757373050930151864781602606208680091814087290715315999892123953568382522979209864932500179901450953954058460123599332832021313595877552042078038474278043677505660969806819934215511401349147808110174823177407691941157066839031336453712001601232735719819810699138539435440160124683668402815431397427986282678414660030005162163403645183178292837118127758672944310719398654400727028253964157923416484423346772129537330883260198366294022391775140265487592158519923665237292651329422434549339969707169735533922471632462130275968673536324285490293446656873540779460350050053018008100349872517701851499461422466894221857359621016398371889254231281770381119795490705333954238332367867949685957770231848585629866566807569810613865327972965331826966437714909929546734028926860851474672512498785541725355149786683224858745914287278714329350197382827844970376629491308677415056664798587234117043490907531603699458603704802088282595913584780601798547231976419161889406915884277477171112816236601815088821919122413261962534686759880441923348075061699112312346285293417777493411560591227582708201342594709407020893778901135314314209088960198035844671152148677083760829268985657397557854622655510190865329660846956228670736878929503820657171477410248799984007082567675660771849196197102189732932432475996750086268076631431787285089343127021530515919312461464626919821178951868590821696031317458738449820621224858327446995016044995034445050699568506313418446117139712228210796992081819395795275285686202650711735230382534977959959789374030794591223151384602086143817429781687573371008342282612314418905578135802140687380297754922792063755869087111904019071237891156430874135246032689862287450384482376444687465461058326117640383001670487726844986627594307143827955769952792815849383507425419980100955830613633867046260208812135507023804402700878324328093254516139788966798327739679426428197497076648466388902369564970347886513494921931784741033446274784854639119001411993836571162286555090963112669960521188196648042815866205845263056334311440443274362714643557857138490588165327118455256953751635859969919924518395863725258613668966458872322970617064512113984172870616816965954612362241673749612922824993676734737984648482494053252895262885446283875298380271765987809344515959471051066830335383504111477910658944636500750804636974256405643243430080407084883014582218387172651575675928295528602630060900966580122810683222224844604329603866011338550280203854191713682084289394027899109096814389128121905335894636417640209836763338149088680215156120818529675940893104101408320693791808422087382687965257228878888290574739873197411451581709243268873537287269576064031134467167614950711424320369921043847893637565207774606136038537088885613141840000357449426275555291085817973532240261228644091333607046218144627299412031479619091701830570802392784611121858805522638124225013650800292947923533367494556593973663521816731582020389606923429275139436691643611362276025305189486304816941382320465332951621898055343475944171352336391197285677908403938846767975604002495362607271629816292457671863041470970268107699862294428692540115730043977602036151174484503694401271111290616167774901074475307158969477369485390316048436336649188047746819822226332418471063286364085708918618358188674509388681865221306470945483588565609747660456113230747771851281026882372597167821760338300860046808026157181201239776384736382978680122285195224376799644767770580927628613198636008633585406720505141118975407955934183004994676743618969028312615229999824422365473953880716118039847325247364331235655687601568504661119436113418832324210061777624318920566461013625783774036243584944752778856227920239956339126401547299924783128518635710084215645653909749162482490590208671296311505939984860739331164398161253927384144395603844452223968210168802484852735231572679050562042596159441352966337314746455188258486564061126002454534467860036197092709719574481903993942753745972687726762365215218997324351430173023753348610761207169882145335609257314639226997523758009747690960129627255611586897368302244477249381199242313871078948447628226727134652917353966093962518450489510697275901643477448988178832281507600118954772584561760074441163225411408185086002286290644431915316455904919252448429088921770188005466950133329275201133019206589263310112391837820450619362104417533047375401416171240456589219048351108825957481171458761298453521310935850635054818349704030624141486238142979378003296339255185813233800871906689687665268445655627418707291615544085315756470646759920694751611237256788541805308905492121280955684396210571891094892775274240998171065739134927323285332884012954775128997188084162176311170817463832188616676398161749609055643123658219645154610196534086707346343944708690362627064480984167052230788435685326694313443088089931317432191332799386706728325674227210671876252587466338420833051755721177960121937893037846968087608947626475446045465557727793106445104064857599594744063120036564491376638374374700353214097843444365860782041052680640339064308940438061504112930661758954066808224054354411638410369739333634425556613788613854805433009452546208944084841499794291879022295550871677353117144137701923741450850222117888609119914214940470729965283759945546273410891361965445190681060670275751523047781948869775165629525719144299009448313461419704174703053520157432070890072805370352094710373595293158311826135605795089627803785616039780650496501334404360794498937860789096422393848263942247631478731512242096224305050738021355328415449328684741555111040087739851678179336062758581347672147463606685942626757632837722295713080559785172221773406795318871184618425350739905589371689304131694950223822261728248136113019243760985175896388992882028421502799411770600735165024218652564683839991485127170113653380720039895487255250536522932035863124735045443785862798973618161987663125201136265625362315889341327496334062976006693633567659673703578789664907289096150265573259966724075434701894674563204168923980579655500649836796452357972623789531743337380015667662678202572742013523805212707298780116963453274497099889677032594480683750016580987466568055163172092925347420010332382852013400061384984602042461846373366139956081695108980877684978910307036764286590531920676551852778855320919882198890699578016872992694963714149274823192968813086959689846804360429172437406874964297726671009824099266170005458224656956203400801477309579804618605948227259533178817541037561193777618417014563139804544028045894307802929991638989094751550909396537480284709244901931214661612536854570093435334455588293819803888205969691280765751000809088853025328739831912134790180047364162745250146188633238989596164509174383243216129161020726127363819339935299112731304431269342531040642032345878083471474785439997622026330404314743553728169580516150002553697464918143897870894542487026016137697808377155795312031777239418212404706904340349523071956014082974594479200994853764971670034021315803665363610408900685586553506333330931883923023732826973431782131059333966550845423261281347185804937432369925833625925372666919179362417345860857366075245645030553450901707401560360443061588293726153941081889055789293610862046581035585703249122968513696988140266061125205507875121475078462656408105061801877838242962850216141458422773889111696243085550215052123125050340719298854382180360397103434309920755324929975948370220641259369935087988023498320696175877554368888484984206450376843244653312171677364941913094716641797703390574909276152343320728745049389342393592922154844477552342326866102037780851174387472908036678140621497412055673895458310645599333329498672254017314122523081695182814648699319512722255540192355235939930808352686205404688814134514182973057653889851624023171593677378451682467141515151222326204827506689521758524200837310831818750287803437466317746236438126850376204676297955231827413033614891244909076513640015702612090634461596948972527462388198413824411588471208691354638624363554223286905619240400502580625440493986543377382227897442151602290310897833261944096785592052089004605940736902573224041323635474872715135169573456431497168085528577863719152699581781498808922269561141380436222938629333130074827476519962297847815820871605984107707190763139933811643533486118187210853921627279579649904036575035019462432987548052063382705333396750321490891244383348103496834487298929113967798742450513287838165685487452849383055702486419501635469034840045883221695825107972129988680917788580978458694262815783477260042701427113091227092163756966439754235536534144574920025479299938343898388721971922917010514446289759574477862621821320834294635608764065010566628263281744714896431466846842335234723964352866144112826019109504422517096843521341837281625328135911325118328160808581428003804569751495631025425730473359458089350721105496981009883765466190251662045659905053435897272288448253842867869191165955074354944786868456171966066451640600449666598629156487440983202695514113182079059794950575378096488669601149805968078290452586693992456227656814410019170547332515509161286508634135271679124420320170383403133182993759937581420099405367753299059028417642819578864647101743230201671307176351280320256938765110706307940620302524615162732771491062005053883551731249457226603835520303477829101139651178736778453984348979832930307473293232440532983126162378436093189589829809650347347183185275774164615041866653933879908303990680400786061408790624933811746379657637262926678520844329140244039539544475992380333429859991431411721155620413025954593113635835944776311186900087966202533286367198122188636254036504647837497487049924277600425090020289878427300746842048168603572506985339558298363659325964280716214231403745530358599307363998504166457082592952607515088971189463313960907879938436398016065553281434901726421661363618447950688459956488268353722698735237801208813794547126653990510235713801581835862486586723640128757188614993270392261158737874451050613988181684274918382558275629218542205066184056975425360301317645997824831487982420082544126493391680780715325259933564213482302895122432121713089409322632054759016256726065602000709418895639629547941319777796210387556344963442624253152432561467612859008701153152785129293777969132633747968569020959099145516988861536717318604237677444295740365676746776599417265613855810991659170765974787488675754328764605848151964282396626211911070865818446711305151553736678979461006775239693802489466096423161363182636623118346517654704341004657232609540537012813603649689940951048197508431038211983178738360654126775920178240081795449008696872855383659526577640398587558529806572906540719750938343585861754462935944881664055303807155440583503226725238742706502781289539122733705428953654915758765113672913195211901480800938166293710599224653237782166842136201323918435071851644012617929297498486260370740277329449342707753353024998386875168923816812787067633753877584505320652816867089573741302335370634157641374433653111245656052676807114344635114608220837854816303666256119967839912619587166855547757659581171449547459463958339935696371540823071856763850430645214445487081848109709270506702104488237941192858036583076493568493145944721873566471287033271049257716837282170259171110254393569047327981881306496217986079593437122842183112927263914588853691730290467826850229672641639148265950130556584132106776439499357511528561249072741348499768035360587489245256948542868172697701121906299188433663088848346364137764299473164655828921825975026543362690330417047771189744872473564437597169889917699689793665472325439298600372720591665076771980622268648334782623127659958706540277708425945646262228217267047214969156614302293761940277008806973862914529981953388229977077281506606260722479896539333741735744492238521680984406568647517053061022512208293481973941036465632696575397724281138523900079667750729290077889143297967199799101861915645440131962977117889623964774094838516029011975002264746151893898352161207920932875360966452980706448764622195309598588477760438472113080222459317119636546961912021313020008021168102520654644828155607475188897538037552076316680177287236328097141298334237350361464830873702964719681910499517529724202595381594887746100689584387827440615597607497358899211231423388227393050794701339729243106215662228970621061039338767578527002498995914354354123584140420120616225194782692171610621477859340524734247173089078046629097768913184618549493939800715927113680269528044380241143407104856285849149053137868502315580536294758530205089612482144960420986128769957315302100489440878143919975970019729206895168900868046034410160471839269162669914931276289901726039338816740010957928185894236446210775396028617213552457010979158549640623712949998420815706267507707218798700130078191517656307103173255086164780375221615703545016962597814484653708879814959883968256658210805399679638084089226036541744752932977634594718008314971648921780671301297097518136586000428085918304791489567748549078825991976055473401841270526471254973290503956313258916538176770478110101743927663020345275260280005406666888023393408060870949791541088639309278052820148386768870396330726875533011361401534081950693425494415478670113336360395312556927352506867662112536623084199380787808148072973802246682406656363663120845812439404682601517581787896454738109839016251156946031310157746676203218161824897535544005108569171430953617462738031724491774560639778056383420881702950378596148172424403148095296707087378200515540704805165612252864664486103270915242995674242440342655677987561075499311522566342665013568245370237336812962440299391283840676777485833956631623646890249459520116889110459629655998155688503360996337886103929760468902509359006437108326446741085425525057775931915503026819055804898104537523816009112434573942631093726076859940350175676515959819618063572407474014580383993390669634563567239059392929990156568564631757056285934199561121718417336644266945875752398764687734498580007983792601552595654140514784344835851086017307087483138988221035272847061895708604686179639752892958971780970136256003640952430495596098219553852293151064216433051286523685590205708242966529038411457554356272279318698308998903068471606755701539171248500251732156373856235224558340730842989887239888374061957944132756638700750019793388381404776201850677516800153453775549636641477870178765935449117604813622074102630103573902629203989358449685339920817823832720512296098411192345229360809631747990245579669937793886305848969031305820891929284422478103899374487529876815118266193601152566054634400029346988079476070897511133791545323946381261976936358974935892122830843975310779723209347933134906433686306525377861606915313355995319596399480246654695176157267680979101347340858728047853532512838073585816538007114271081551490425954926390515741421115727739849631406285062260433530025813817801017383687756397498368199385471770622962494660996690319272817880355909943364473219397303889361766219336327774908712642254796806178343446427480215360491864605707121804411178297739489153784674328762486552042986536204788337538388849995020832785354611663646051170842499949791487247447532359325411596864735565780242912981954144434591712196252500660734442546236315249792568226259094363726776969876981203396428930809124258257394379561575691979906845640681512117248435930324228915474506692315549737298486413596624820681688214259605258081125232354506028605427901145474295781919901934836172609126401843453853229851140624587842032613476049258561560275562556613297977839203786413542436730476961014762855549440410349290975741465604798801508132979234962099183886089335853139974251474704356120933578719689982927159111016569472476002289224855796954028614425070851545867798034351236770713871175727894964617404573208073748930301124774246170193754570784164982177798178642185766064918151874519853293099045980440230699179173776497529866057820173949084643174401369524465280553669309898458149191269470292151392577197848561584269316506333886934179845822731284268779143696546369507817526132563118572706656168783056834029985504419331184355235470101888852667331807009510975385875391353152213785940688823020608105804540285342628654066622929337763608143831079417838496235484929912386312373026058983429802725755135634924054514752003155354563198492343570119885860274508134081688703311655525253011748186420850252183203847820862801761865058429591371497152508258515518163931420107435985364888947059728391758792529066548981880140318430301017404410610724021610127131849912454609693140708830040731074978284758951052365755887654863947902069005114990295253381848964652525033412982933357091725529348857657360950543549822556767002957306500884295564688363765715305650900985494643483331276737208042405032143958881419424672307934961713383808084352704360994388538385560645558665627171254434882114769019713418371535027317335248536856514265876303975618351181046187101085097541674689480623944183216972165435202508629493463730943981749285647650003211221274794364724984195046246020480419099404473037112450968585244272101666871317846126097194213789171344394367225598329357886198029426915286120122132832651911844032777251825458716272263237890769990051875670007567260428880494002463191121341899459865718046294572882971645269860229289996913795160996089388500203853475332491101631786374253477838486751835682834369673655168028030879681962900411535128844512426156758308966346262860301418177513158028264130825252105835928038792956449052224980938299960382308312425961982599096225537177631905273760021336363722439140062093330368528408254234137810425615939291438220253680868921489659623731908564363817415308540706190082590661199824779716374587357815188323753154529770100925360010906006416361245767195530896692198428702996563552282152632813803695402369758480540511545269516210492805576467957591498125285178875782470824629418783164700717921992995618981816006258781854000761367393624839888601686193058253786473807038320646471695446100890917667421583923504775126690615508686406158456823863438022362802208156053468801810033463328760454172066137348834324868523996088907709161173504039746605914378240367409629835862443245570411721355202298856066373940788334253661573791300435738876536077631728688043890598675148095089012069344070823580259232154446134873483117251750264462111624398663609716733581616239239573196742029214287756677155530036183700523824015180500459205354473890156948532951394410396585134270117946875997921907310230262882604572965559213938779201959461813994705714502424448558627133305817628582980323135926567461514613821211906274452350599400204263629444802140516124986949291127736507747492252607478069630072571910329645557406738941289837881467938130299984361241313976760845743678872386780520906084010257299299215643081937877385910583311452829182363756963707644992488112867913442409660199715298513476745338073923903782664467656846361017018030701793380841662373919811717232184282809308685414379054523357274344461270288492993759586251826819172376075914975392008132943223323220911068597546705726926683327958912661915542955942686137927982680040802150571831784290105424481008980050873280215263327200656312054057081212085759788354681291497330836808793163853112161214930694392362358223803825773980355001440920083876958357104207634029703811497258419871596719763125829491065533830170548811122889967630557819313248158987119437405130420190360564276419758822295421826026054268710532895739636520131565016301217039487674458748049970417166505306295666070190876316461702881153627212844644056913443340036882052254766772827715983220557382947516623135248008372008726813375132073419266391682306293569042123786194999640504360618594987624105864602067542512298467707680984781037775843948617959244141697556294684181124286891118125300310822743044221182713990535859508643659435339940141177095665407970030605519687677954313518325052332657072514689591399085062016598037807164441674865169239917468349135953897394133208512357901891053515140169398375977604044636384883825634376542792264729301764279154491268339751248397002642478895220956394804645727384260888753081655512826155303293012978757949332708214939781126130653852415451540054227712739953686082045540148467588897277709252840819323219527579791050782476237962675224553280646305226511006569880437915736368241998124502744968057164697987841914351459927805445000811221193260541506018860019104098891182014564792368543597794104045244106400483310495053144910029861456161487000331114111906826917331228385416526883533756082303697242802713416779785414302893263951055537196236327277380731247683372690086902729625086492317175311402221671080375305191380214606699543373569927409340216253782900149761494408305203706426579343162188712980059172324752392207298443372914961339184048490033348489110523720280797586751767900126512144222792396899040087776779337418331694335810231483384869850501781772048235962147983636793465589139828359598165623089346263276801584368182101354141859752815926478016432725877155162541972407613309799216512894536149040724507918050287912481473006510872077457085270636730223312393526510284348081216414643410053229083548415716393653746691124171034964081610116186136431903968875952156480315368787095440726759351901433352928804230174450070374378117637496801207387071527179758627451235509178605677944205413543480143880584598072276753929934464243866345804708945797620726177519345603537972315715316871800057154866980348566664137240297943472370369702835122763908405736030426072117655031977797873770982564176193441200112565535477655224063396692688818321335273026278304055380808794122696315173418376435416888372624484357273757930408841144920060568552732771909092462768665414400951649624398357322683152342487880099315024389452823714683763571755881722585698622380347510620424385669439046398058455319178044537224716631488964683637811049362289473691302149500323272109747804369959920634374944752417895617321687180575822807808292825354284906189637855011325411512891340932277880846375962843485971810103416092275446056733762458449792611394080309919509128282880398628297008813503252434413307281786914259150214676492086002296044867041177379508159693321745383255168079415721770275681530271272126410330261059279009429986039081875946002999679688769442522403962994193478498570913319078283042797694029359113087725656650834238267881343285817538215378858753337287167178274004581200555858352300644071039586850443593817722426941764557453610990558807076429902833015357730799558994061320119065019602200030908073976139474577832985052742889648134675893852911900657038157151172321919477783768578778792471174322494493942350405263458318630524618198261953918121368726507340844775537215686798141380894928397608329577436130167698187665568351172823517573192602745586310036284084887399628769932880958598309210537717386422280488338693093055530549800545652308169704240235602733106675259381417385037133326928709248884704261684285388427370409211423762784169710280819531194685381230971456768857608014211076348017204795711281203105714725778949104133257553227620633589039381362700689468537042739815401065725147353444422821963701274635392449572489731737187466783198352142771202963137726268372260760533055965622718599544061362730019696820981804240517149552909291566287733851000533860467132393067290602030047200985893934401666872801901532776730929956643597885075491886834921751277306677512102244082284603380286447543071079877041578756547766235183485552666021390405753357619542750055330524759127180557569754025608925192390217201984807644477495510212232366195690284382232171488464044848279903349670463966345552955062921072492482972812928520646897845571282512371543262421789736437728721672588070067775232760555506231687958017477381658724246964122800949178425079442002507896616486370865871343986417054482734796287382870301888251425065478578281032918976243806393117412867270414439682685514857969247174831633639932830354572583587210207953309069788178611322165709961204239194497288528669882486435086852567825598578678322192606055116172869280250026769902506353915851498498520406424488018163242839122189001892307408552962207001354860269841410438014283060959099170372729735813263695255993549848634775305535641954907399775191663451156865037314842305067262227308890503540058872957111050464758713333280372751117627667784255521572781129048594671979042074638312366529178653787325234303320275221533398508909563911378290049801816199043492795639259975455546799453907470899195435314785906143821126773902023556852922252349855480621957395255688963272145246128214740193848068070932160275821414473671302793362917545360956292673680412213338894590749630754969508482671385918272405015385134432729913204510887003822311655809697502392013803358892716468821258235101508635126231351348587898943054999531861024238927986206685168533356267968531357681658181798945844438071790385238227535114658794275898614035398951277290839430283212758661038816570385062472370430152652228428725440708799188242323399669012758901106489107082390226184366149071159795084200517150883482981504626128058286420732776903809594619757131357172894559619036380923877816917565275279503861781003363162337352369291553083812571240766345038193784259940920645623183615294948048286355746479294861382004287986738998643765575043010882996184247148266959415235940526408230869778357414946279750082386136178345189932427078072754761563279816942525269987362442402347788162084071394013787744773167550243115289064352869630395086546549966775897559551542927471147291685107741837157359066038328450673566719481009689376951201036271615469910294389389382297506230954180479836273515979436084130072923065823837953940840571740749468219102811553054012912240091939355214198743122859121906646696007095285241419398484143949584744981966258585474752942394370250752378907891076742427276912541781112341098660097100836520009594637011417966895760513775439853311278071741039303744067513680655412280007563614171772994543387463761392161109482832226194335446172626372740953101365308601201787326846234638825469353795239106170879299977371553774969974214137119708266332499795668097772432189052178931399026678304711714101679350155632703158536787508192322908417354212344324370505258396533413169007310050002639518596638088241012915067661442419621136908515188370992657298770570790328619028052669234836433092382417228714923030413223719955397664201842175352285754451716225882742161742371185061291717590307334918047126856983742136402839028561601610712796358553499125154346196165815854833720802116042724047143410503620815188745875973989264408999611127195200687399173575552502040107994306984967661430779439972028387096399632079804254859663276052553739249509508633677844885915239225219821730643054735233696920047845260575612182655515136181588433699816791667351817439542238557051937875797671696990756856126232883466387845819417669300245879725000402515835164383191205210566766057238496521140242427042704613194397273385626220468337972826791234980782980823998973729198997499311295933834186616797256389700626817064321255397540287482188385278174757303856659131855165942340823881015656032139897862630650625254701030248821118170273808408491288255849733250987705613172522070167752866161135267457080595526639156870898096559490967877981167477669753549913807031330749831949015805538642163152362936630963315692203073338488658302594906409502577137951779662561795025901644823204712504736678348774743656042891926187198468150557017558682933879953006152855968901738088297539305005009933133394237988623937940933948480927979697176068728091214205240816672243288185850300858445587398523923484732848313104236146195617339294343243724470235413783555071256509499964744358373822824102878649281087132662860127732998093035656081957858195033230890048938960009840147490335995160342303196753104018956344620983696890670156900781080258993362511224151666405037700282339185158195000469025955440491134710240798590848204966818227622686501397452853012831633556674143319400567252135844334444057674980828896676605022866684850747241500416058659539122545932156757625447856691575336488798166192400840258575075699795216195385363780802541912216288136581682255254686330197617079916763723168919860131378454082085132102282159014956230410453930725088288787448005763731216329891980107435917811618945793251880174564723536894341652834846265967527582094585606307169119805901771886437867552245827264790679681052821770332396629745681728016960451187001397285125755794595915615025657986851501066747387420933040981093876979681270810726229622119197018248535808811649613723234642110291410356241705368959625251543637244024217451798977774008948267977672755222667932726680543659730012546114681250440870998628744428102486514270693213182370405571456338858678226211075252023546255246417601236136437772755521969161117072351015435006677083330488708370821108525641996347744179567398354906055537169920549646631583003876272183969826380575043315036970378455143624599373558929066123838995077628055408091971754205406628076220141883338124388361232164494534603840705132481595801515889565270247214662815635957449232859925896068239378541040611391098476659961266551525943470493044273370081251891723604509472135459085718440266746480563812724088796998272994006401096243243534799017902673152768857575492564232930727760903930397487628989586865957789554428110796738220645651379102525204578823179171202679949387028628422561559706917259607730091378455950200325272313080968790022265733792636418057263824821198809878543527655665991570158856249627032296241193025670291018416564399350600189735640522942439755113377124584773318145258805816134295476307892958126287041513248127526152084838166735357214928844777474557292779695662625296729293131027942251017544500826510890666167476421887639008902515130778223208104312250170013116947684650781721357575159804563206050539225492951231220579687839101163494354423109124350986190316145539464455377630972247335385204814471807507930679491018240873050012874835816008812666378605493421247828551521957248551641235321968475923481385302050876617317800173604783296753838472527730013697248643680316675538322367872704210867662530334498259261224380648974031660773840794370307533749203966098514159060022047699380228937445095049568066786317785479137545846588602742849151162252353053325567508822242853335705705323992519713854925837151018687651029329525338050843213791359799316391970974239462970047175475320770759359168936969624883260107957633281073721721662736009961554479145314291545402483403522324478280350308597154852277780936263788160123749980276956775022262514076765189648809684966221793120068172838260898618438947517308752292266644246157204224565838619747309696921414274116308857181848204521707445614993214476155292285062836439547942396261365466806640855511979598322977029900940576707627598386575221796203046466026908871963757667113746476963369494929962490809890897490737295762686859230770000766613490779209949204146000340528050632359241712787701363748789589864112093162923669851845726131309208529631782180875257071242721111917942374264435174425361803997418820826153745968350662230567752808849957177685707380797043447244569033838272989958081521091145028120997156161286143386874102029408512798221332601205326540921629342817487090681969700195589492330224868340122599368874016002670222305380991522936203931649643547159077318635601236287683344320319387756812902970331851057348487698324602144301454744890622236743866430360489067629016300042134012768363002275684989054514772411058009866510078801711876253750947188277078621034254681029187109819049603383393943090591343702580030312040678725947132515174315874325882898939540721820381193524900104477278039086690261025167668241563720369441808339958543524150815147633419593304216202670117813396715867251548003240580466075040010604574039004884360467642369140235148992510007484202182339934721817514860728545879479002739227108851014338400884538780180750347504108757967899267817959169776234830313858135713948525431616211555959214684769629445073268768320404085030199026372838069688082009946059005529928173219206158658864115410041836151568094144162062770123958737599764152349341768275182216075787044284310206209828239827652871017682486742407943508356975220964835773336122091117925924617257864248695584544790088643048947414716353891886002620068251185691132425117944831390085905324168769262799105890252550008456863082997108118741444083355838169233664082823737116140818577882177760414084836589197936265934558414785227084058422408928086799933548592912456991812833872831995427170412745226813917405984430146176997612486564892812729582705819286053881168717004318527194277444754633377253243134511563034225858302535240410002621711598635010250336143974235222047595048841820166529988764218325239331560700189289533090198438264386804718156108783971368133233011253954742335252555160910755742158282551973813436093142870149504420239644305319709303617101364789968548443598044661212964873162671770696755543022856846718711404143448191373363978335052291474329975535614378105033838671982622671010036767931017399391877812941339823988886250958989416500694564016014591951012586429062065856853635241602391345460914599883926845674906680757682902029440937257970282527939315136187650318675883307516238810248896763129795715553110841781674227868087637892495997147748028364965789599540329600001416541796223012402323721934123921941707623251928186635090088254270813036125282426084108063486817471019615793549444815626547782167481990339859831170473006875854473854707889920758823855862966181104613588873555931102980764416258997154161552003041084680983375487526984834764942738670679867675169875462222376376327193068416993889661828571973728967191914793448983803116327183971516490807046547405235005506869177633245872998154553606096022593475425226039580790465771910116047712383222767178480830987010559688654347897485066579601146260390393068703740865348033274146570545153188818470348621082476368904542028742351060702578474961186163014225321124309154143357301777811440028071908086802990152930632000869460949410641930752600879940902235495425070101194145456044608729862445240373044976503549357589689257835981216347705857091067908163398859998197475061087250586527682308050294444134634056518116400289332630229522259704006606449235008628583127662642903145786785741479528727493605496415155949477389214486855615774983897704062723496973320907166172429131020036885727149972905578078502886055223115986020887276881396145043221085075443781366506447464413177847746890041832423846761320322601016632423324782259777761648958892200702172910634814972044581510079282203236896653899391253230198431211128439992109719423854892829066213177918452612033886143482462078531049767776503702975382789514929963166674863187577464832734304847181424348095747587925615090658184731735429524026496797785496568420902423925534186824749092255237154996918892846815953209789880769790737011935182446124448384621111951777970192232547300082361578240921461421577621342447623349750825334981944599103807674455301098954477383743358455576135174941245875106359028009287346128854239125345097280475836642864559358127936385976817223919592717479106260303148772933807274301552579623087548994164615767580295590234517659781975113065059127549268945826246572451649523254563406943885326860586635344466807359402947132804607345982276087702725116429126789580805213724941119664438941597419162471735728580498135003387582237287016227524970757094687780963005870345690550480917572786204989779016342246151575740599091129376535844655792662019152830472593521198674512148756944941041077258137992145778570640657106460280809425628547090789331051336714493324884155596825282675636180215629197460537972827104222219984790159162417543195570359843140116153057096723270913364021988513556783191933953175809843740297887039336155204371266198961535107233357146507429020966294417565336610098015195170576265621311036391988091318749289968857665929263336637143455401193358213741994914664346085362891334354659235399343329444609552975798786194937403635351620293395973406404117682049967071006816818111148658586929357463018334543287861632188752207542471758820194547535764051216871556338800435775930309516638039885416102598749614838991142596866929843573251576448485777559011078091401948809790786725102645344445862048057719663575316278267351660735573223245656916860713532332268360990041389041599837793162792906686891695784863918415642546050924426680479350905440860980966107412615111742465569893163712855971962120907213745946065280027524145152331837452534387008770254045337731824377116604792012012968002673952762560337504248238702599486330134520813818415145210278149808374797479782554869537836672126689116431662480072109706967246697786159551944739188245429907366244098975171547204904679320232568811763060509581735059372542220700785809952847777730802301240497348784249045534914425539130267667793599302159887078507783953998433687422970068650404188475269715506183831841681688955275433901307257476833541640642682872930925749000973747327704717064254748431094317362156041297755007061939032252552815704211405067623709959942269992330414380896102919080855239104562258575572227567460589468233501579902582749222512577163787371897681665649960280434493770849479781679175360462721289133255896457317440205234174131868973762049756086633575335677470046508466103035533371458964291491023983595726575068546648966288654822291109152696605659547497871271593686508324024992576040470239032664154131876590617653226346836361215170537042051443414547303965639564848632742149822512968229140423130541308065601883990929323752348827022122080352036082305302600834056808229377851522932427610943792897597609900624265275024306288978301666197161534230720174371042217648629317965049922765006714344038500171216499666824997293601590296712999508572850336382204790103276577407855305395608429507267563107744983642667708194035200339891911105357062213898359857410195473074061782928065870827299955733140126856379048525362744346065112840439234526848916010820980791993581887740914107964135416103956306875019272991333079161194041063037655299489644305143498221446884061423947027904096271430598508527504767863606758677985849167596696856855172444065198184671326669988908983988446247594665151945006929451395440275099948393281391370758375439004448402787150193158112839008859266125600558565450853174919465492218372549410702586432684131172930111925223774268744389003010667733473617020521996136785462328406251256728190622161078859790262086568508808826934719113549212129510817279766856007683861028270665505592414257753989291618752339519886457541858497409891590185453023120022308891199011984545261403148686048941029387288564520494803492882783985029937218426502630385854921143502129412273195113890683369937634031009913881390621288823948874006020114243958434495452035666268020458208985493259870502830930709913924286118381212632431119950946719532591818078100151618478999332452694228394459393618894630220656573816826023584068769519888065123531127989474392652216675187238152582285851922333676702517884719804443441732120169140072894982813598717860299150062548615035736742829721300575890988526368346812931825940045656510654645817038856667168992989044580160878357980094432639470245867990706160696139438353955865458660700917784434671161861927133869501523696330148190596012421059515957855434672457831359036269088248736805515591002970226378970555351073564932086880125879064161618853214959397200405171149802787994548685462183679600252517174443314802556274260466610741508293842874834328510834027617358030701163985608484017061192951689637820667382473937215867912429010480898712281059484294258449455533846963939830773034686973782014747642135921883819702089456065922870616952553661425910100906212792544070397944891938050372793411980724756272373484633591716167359405885514283419108990916318645499719989659141853704473478461531444114483837915797731497896532925951185633123813517312197411119645227753387219864768636483722336479816146547564419225799654088759221042390842751850773763544351585835100114069048808256955084962017235083885013472263810132301693792017271677317409301309685973732515060201773418926192085685624750529284410871843896709969741958584299586622493888441708206286654991547850755061649363318389258937402287410145596818513453330139561085469839950546390635903719130623709086995678392088175479811639592411287886559857594484244865633706476316998180195490854279671459788412309680454765607594089186938832161157489401486631662588919600618379048964641369305705170285397491604146662438344641096406938348199805578097125818877435388906088874750066130849181793478481275231021675594070815560763795873514013308573651032679042196886752164147491194883581394538707648994828560023279996613348162232926349537422663918898768398146357868143036553768663223211008593908513575114703549749106779655187608460289190586754355649820921639155182685877699951214582952364198002140766420857784786495893290414568110529102624041773369058812067516331296441278663651938155703533206630542216013627976021977481950230520659246197957114126779063597783176212946558370214939242130472428177756204945692779788149382398719839415793560539957734065581920060402555935804664175882324203163553751929284011235637191352725015057596687790776367991303991496563233588935265086348442880826333880803059996411304526976211083653756396948507573057135926494894522285994969360457799057212737312582409221723494698381518340528353840424631782712663230633428014599804616798509356369043428746816019034268904028741169444059997715426000186169419684664753762375676369844659963977517625012001867051235543746316837142527999613552883934590991158073786834726850197619786710838336393923382965146258586326799093073639459339956650494278463647945150119303829663242469384075009866188504781596062589609567891398736186333463621406080758828865510892067327992047381242649025356784720760415862842751878947037164870450964585964927300989541509334394297067040614268554866459579255719453541976864381210575877038880610564296830141125082544245076435545728995810242776069648579395490807600819885033571075414681982363125775104804601457311421469315383749003405102256559072215106090625126979945777104354479423145305921017641077383722634712118530011072244815099528405764326752552890405452418776338662090412449135045045868140259962945517222081600860057388935204333053303987779962074555809354037782422264133978463728973862524438142524895066599432596719598422121843062997628083723387199117794957445489998264347480185895527529094345492229644158742907415379064053250837213029751910145785566837578310904388286414497658275109596689058032869614342313310327602554084749435552370855553543796369868154174206329017175923572596297900777917229023335220590242119747531376930195469293386040555626346015494213716069590992567211301540213639597683388046570073318625575616125443193545785599117941324858656228936399003599881758870366413906579935745581990554626304591379501781281971479582462254221691101264269434561693426110305058084212153806989890742113283375355659399581351962824950772309237686301410245238125748487917340585964665867688619932715256660407393296139068657639645137798972346185880942301735482511713372307289296225082298662607698324377235397458891342220447634231630421662217550198100969555235734557996065857620809681739777641037004540239148807774081575974867506048089882994847118951399312138860240957602092684279613275430023516185895034102295362933900286222427887914968782988233855664139381449689211001869410569933302470733959703180012849841061559447599397666374011606502679393695050951838143906752251398309883630337591863056115062962960631825877396127318154707165238756395476552559383514079903103115804112063106210149089677365108974044156030573699598850175119098673621545079643626111093634627644369248501674618469819498589416723637301138682428957734927513175482542434998071094619516646570736368616349420235602747681250422129605823878467182050878948674608724840344861917243520629418119952515572828679299119563511987421529903037663275494028865922728565979439423087608217098791311238025532141429342861312378729442543544630353426076485784294629769774101191675304277228228062924888674445000784741855816856001220496361747068228883620834402425055085220441430460516957336660523326942615837818035075178906377719179536315906857162755784979398323963384085261051112517651786083048652824454345237752327572954556892477829780281838695670495252514861896645289812223819485190973264680411827890931004948809125133509239675799377269375044639075624782575803135146464638262820110104621880641609753430974928726025456923885405118902007503559682385822899224644777544103536257984581603245422048716719615874806441753680585068548264344243690773034461808434721097708795040520573694001460897305099580356389301514434248596590816250506802180768364894635304462450737860480388292400319321249286100131392486229403849253736815904419400820619615794636942869808855149899385819185125580899543305274899666971479770000054141962867807617723005917020777233983229062987507859956944116737946777077644691507661059290486481440562212756447227819433469343900868227161095542695364831085241466504369366817105653820431133336508046688272982644300178973791414927470049931974552409599649115035988921906299785317770887802557948183465841395185944241520253005241446652625716232104400773325010587066660950201647956791499487960680294854139157361672989946751616179142170456329635816290320393333712617617391331846964189871105764798710393303512193100184116294993116623925842143951869287460190252707735945949467168592581631367639507452016374906916523629998010577490162819145616521514539639878720988470194266253115160807528050579750047873709674169903412452345992248977419641343402439834740215521784798740683673924857676499394555929992144409811039494945184474776354585001174300157444514164306700197159616550655499694029551030931956928750069710240020546408677014382110768167089524389750934669422874622128119091595882233620220023263083388953864004692227996202974687009369638798891666264146044138538461482038926017022059163864909186519315381781790585483181785154648479455258632593049364638619190334939144064146840669076067619564513941508053352534661593587106289023605309096038728584956360966882997070481461246132459969740863480516622355233658994520796728183717326236527005890483824236378645859817619959628130120122371235995458178347414662865505249701860534472862660194398966198922198874657656979790134974681829008746207578321636831679859525115286552492923809228794508539198311529974351417025493816220409049011111627491351125237367387526094983996158597799540615713317055328249533225333892010829539710056999408424279461797246500285165623261938641390791517187785616754848966042700176437193763526197888001084813530200480274594970591732080892466550146926297127926445166060579460190129832402695418976226349911592508663020609937948422449605824219274868455875533671854678381709455514030875049527517692897472638800376326866930967434941735074543994002297865908858917239815680169126536451471505512750385986478747187065954156717198667268776584197234560866910923155959492194877561369820316136973211008994550821059872669520459937215780955650670134600700078660007040652598554335789221518063484258489738869419951837310062375185899221534834196401977141078064773919087397892327087441653863111046682605569321831814438881129081543774270304244142251105104535427739165110996204954231508185678537038988173514648068280584311536444314740126390431109291781196899754948469577114974115090119693556262053775902839000416488735083935431656115102241283028536734452791534701448359401781785428834630412098743652340021325214134786465655156438754540961225808370817851560552543629074477731082535190352927756504381777442672417019417508959167818484953379913421330895139756390998602824058192032237596828431362220599623407235317164035999813488636294540121779675930302810501951945216961609349012375538280940170031729219468394445331391508373756701972392201017211903675322337070643236039398458040661394900305758085090651277185793230517674323179784436160480110221947729196335781540821591237034750873171635916201930639061506273048142318350158054940234347361999604896255293303004734851538956073404633478698316427131788538353726846822395158961207315603276864028397212123728757063747486614006225272655978822842598559142576505342797765972549852087835936716908882174115251589965990077265217309910896762064427943074961548497397851602012670144219528149869569659339009443962309801962154846656643651225573819421721622191191864826935866839578019048708215868037612712833824412139399259934685300182851535083664016013080831887069316038702112749446390964318933086357456752758041107345341247495040259073465455398540193064549573292166130285536597173093808301424905114511108933428648192020296042386524023754454700896718311262098514311274380031871456449686997473312684503135979113491791861883735839006166219828033620517624092697873088420048582018257438423950874745453892151920650306425475039285103336925582484612758435404392955082865913295234067684688367588483699716620122362615197791185186486180325630100191316232244243387412647287678730580015926725789180500648889325314825697386238223553362209229541084366676047976494151220063148496679845065995306313340389357149054397106963472974761714594244831514474408951906346613661129781377538507628692593068921257340460204963833797914133534732326430422471321794621305538968348708033737639974678703597047681069167285554339710882820633974318172583247056898873163152296844863430777251341540328120313725825259968451100890373969923763548734408681241414334835571677428041258351671389585657175053879963069913860085021817688460264196023411028526624196217721587602327818206518607952905836841893759508291831222158575539941137795714482900358177050421383271403670563778828860351237088032164998259757146624102958504626742651957187245270192911391279233077374225383762822540034399167438834075591683469404808656111836762960816867143873388525196844412667808168529857236692573336746930989757873800911132011590117900013917712226316682925866204119783650415954546880792686692771290209981254888525285196347620535200511784778223628949285944326915465811820452644196071692879520998885942678564383051902368491679942658400942249006274258094602298116436895053185186544202852924948505461163804646474033050142646987880862093127334395212140266277979520823862998762439094006018311537332454802822616236669777732139849296954835194341924108246726827808056665904695943871552133890092948128557595371862667472800632718546510273652272822910748120577812661217016811377468593319022278642171086775443943335732599087764194588866266871601535512420424553399748965182026602770959802355949546094966817118701642053930769268368677656614447711241648241718566155425000944929377777367464563433485104820728467093130135421728628683339312593824586099627750401793977505180859253316737869994199126324911720537130983122296385491539171353546187071587178484142480200611105290287534684113316972960597959790529589915250088316212563540029599183424923688587421607819058169149857968345591309897082231250004922359145597578662096473861319282146922265970320533857855857160879124274212174048420271861985772850343329225225198790610902558843867183381987475832287182255796989352057259687464368008782970315567511409641590779861653230241839485418616118716555508702917717120758764369572618321017784742803756594201767095386796625170023458459411564458580324120321464203395170440576886843265487144400242801815109135213585972081405128835156129242206910465327006486125532440393467681495591590673434807667174041765297778595765775789834990810686630962205938472595237221715963932131185679375009961862867401173702648905098446504921712657602323899318243356237770997232703530563875636993817563331680584886844838464355120955623419035004868720606017434240494506322669584084532321946706406697987238409312168449893759902493167082051934682759364229691675372508317962391100679248745521245887417413902378192523283173563199651086675493790631482888310111619171620301085827265795512861018155849049739077624876631543444231290402890686159711421425650676413760450623328933862565643184735309065462288862898959700424690777486337433359180388397965427940033860976579044655678639624045594959760624069843900174291150982821055140891480290312455015925679565586374847949923471505616868625999115309867857034846445447286368925187293526777182187359994286786176086258705102453277114092791897880011427769169492724733630732573973783800576779571183427013122131870369487883548589481212473938433481369073284169279189719737640556079143047053070046512481487407933985482982778951053023969820361967412963317464563155500230112494545039278538277490865130496629837985226540523841613669407753527812786462923715931711650328140575299917510176510252077084996668360212993753032920399810355998573744492815939676501472391733506080375056179050943890419903700398241868249556618010947378231950212740172736048190845024934591937415569928020725100371684774294018657409449068549714259333427222544107665993004583178831272301121847240698246046861915963601372847706514686972250867519175266701660715256320085556229875380549801626147589471393148728303413999600551253130108959892757093248712643036821571218633016455970762779708351147928046020255830029911261938144973147841475471606906749135774432785809175268150707740291336164011180355376770713433713400503182309003056935754713332603686238935211289765014207091439094787143424044501175110324929831102801253617470305383423031896268374506566244828033071170393324842702677538922396447415155930985105048590566340476231198910139777895359264888175089579149400352031028910523475760799185536183867795715377549618684876315475052358823248238317476433972332666639907764318260906970332656194767195404459210317552740048044173237494570254171198450867021902789330654109110106168915329121567084525098262834650459363597328652826636164675665174655252491342097003873446205175256886184373369133868949144893197265154022999979574869028570286216050806921769654767575871612448590345436658236045131167455673323362909241193926431056263625953572276173907579226678595120963753354819563393231557105836597557256850769401523237962667094187667476285413294569766421774369237465578178236438307579517152309828170108884034077784159151265373904379196992146853890889944437033783862567426698617657055325391568169644603629830540718827522272762538385052100744414204232953061826490518926599225731891447731375952553387077878344763474204657416071400102895474557586548354872768080091642537338980796586217687461219672537086565832681645341781751147479554183384220638188879352349145316514957871508874695879306117568105917956866378592906276154965657052673429602656105941747139079302247597956225514945050521932900251386008562408011760565834298602000099444906865336295395858667038784134899946015761289364255125968115913509223890569964574899426709383421207345031266903692075301104862516129023569143736182228168257143666212160459415535235127176078409966519952681180635212697507561082866371259969323980584124731673266738720048989242368275571896681577441855606665114407101148758516362499355807363965616465526427868114491830353676511634279439868487258130159847682299901404862130299406620136923640054944294173958705399374658755604560637623455039496041554033661484752328011639122714852338806963289701335711729310229619340278772603099317298086734360099084610206866732132176188213144084163890152061215844282441984782380919839666176639189847440571346554031194401663653640871663606436107440679265278877334405171906079333946462663267288573834434370541253438037764700126087951700711787029143538922647387256192234130218113926855799673034664320787331287723887551457336984944265190555977727092281967856509307734574777271516774380805589402845183810284369803055035543307139470265501523327467401103483776564318012969553647111521498986484316176605794993689862286244328586183402510627100393381442499587032341554268369095601635254021378825897670319117489889391178225602294318336655578725037618927250482359152024165550158381372963984769811477684341152111505841534755528411592599594521863146940594539076209333987742528102574894641835391065806569249330019184427586331797883566774214290210388286200122042518258358466755325863490419082996355257642580193666012424996522595460414989314622613295128038644947919266665097974201320636330930792560975359576747522684322324821098245703802870137756977010628499309271881439054175476396254622956053115320716241424412555988372877134044202150241532183888468238181485625293378561364403904032255274321353534200532378139876015517428146459146806967816956695622566366324501880235911270448154066218696842359700820106349149557999446850455982977618819655242806246189006784895656559891536506944190178768199935500589195655641274455384514519535811960975531514257178940405635553550977898725698163732409272807083515098390341424594191695205130166769014022455781295423298457813800536463760459944346158895294120427889054846656919638729934741708017969569565152946192433189652047192741700622806721327554191869125543522655151286689331482133069903759265625447687504418184927871027305708023675046221308495199328484057161390091173596934332077019314627219872182303628323309819836137335870010406727031318539294204317368561546611033563098994778186580638380460274632821331668785287783837553508268660115253447505536378803033651273238808039063127447920991487154422600138597958294886963710807777569319553255191405191106690515900708019920007999259176188289284303896696675119531790211809890287948283027692133368537559040886401446487170868913888135284810584040122896696187767412337419935257148795366198299103148262181964986884731800955598995062303835255356790335711606437898183757176421988892296037059549064961961444480335810656095896743746224562988634257715810265799199696983000550571881489623891488825825087668829246878195362234073637727416599257871909822620602225148363456995544665253254807553298849002102051414253639517664907267702016103722543645847908957665915518004949286911016543949736879524979311044325806585571797398982679583775906076697395819447158186572699807404577374913115454638158860727927658575386142408272167116816407140660653441278808374883709787265066188363956058201923601081936235458734806374531594549952645094535399145373913035756632822855580012685592857543400879445595759750963303826885034236122044971988563908755904064102476089270944647911064244877175510276046994328632706878680857391089471550512033381842341462093702783058614116001187086118526442844617014303563949381057499556288884276186410542375954355144066017526400137717776807286988301252937429806252872424680708196600868921894940554205557731641293438839106471982467197800292296364133299160073565203954058953769868059897969379971163394548489083205637122904341841126492443180016859418703345422681287608013128670417797166837727958427351787896645650758131123140336631852224928075197666562986977521949537513162428901885061369569586408557196278106851395478069585607139988282401220319794432377361115748964874373639765727846746849110546545571707227351982876226400959575371831758985401029128791744236345807370277418437636666070141918636452603789652421648272044095915397822972029093665429594277578380622405378901270256893829694194365271757877389521540272913815674166625711283990920242354496920990056198967599002352352430228915116156567139087984752408597540891851410651725902341417835583610961512125478931304063424184377753241054096637305303468181359726689081856966803770427567086763532597913815201785405293035058416399433613167385479247037134729200395968189508258811860227357090018355783776024326566766758126311648286068700264140572415321727382767450560652234183443313749239130332669562566795907737706844048658262110651649477590682896947865367448416566021341556294425466781747489056405428149162625753140904019714398500564254416323944814563155782672320099969634448052566579874895413096553370057999921201644032317067087629620636396558019501890172086291500857052166580062853781303591437277934007889797452004145517338970638462329154834632398477791182459253023262913074189170028556045990866552939916346734501658577606932749292041570437250114438835917520787811348395334717201136011013962290789061407075345655775035731186054701471503779902559417947465215144995754008988436731415773295596455559872228177337882804910668669709763834974637141876320064733514811940397701772054619024436541380760905031516026014884822036736052035749792912997333793715683170493139190389342559081761965046079263308133663881112231482667456670637580908634671468127190658394857640191092326728832701350561264122228419829403425134844972460263056830805360904618528864827241763599764898882999588197092002858814991446286508270055340622321567613859230536576940166737116673899157052460768772422251091583782977838762541957088741724951826732352655557036901700034652092619101329878821767163498332698218733120611033593199200488999285964300988041422847321555485402897823224284809681050460278353968255439644077747503041637355497294392275029235902882809298830440169987639643425174905817929870280956473175461567522814849747068926652865292463148680952498048299500821141991800706325669873355677456710866623249441209133873895376382730689400711441102066022786102685116199151110984059010597289872295672007624816543839561623853956688077496058909699851251519469428142620216980008148776572283979549184915408596106598236175185384232614836760670925727289802619425810580865839869574141563429786320561596182600718260717130983536991354588473431995818952424753106713206630320817971063710368374263460330619294160672035499273331418536135332702329986226752365546237544789947351227838541323068807645027114228494563657356643391325841423431804302488657961970382722417933969699686340435620103860045031071363031502735217974396889233850653199836242493895543188880046040059792284263181739584705113970605764254650484391690242547388687088812356045354217747326295720388071237638707208311456563272354814556146850875303866221301331206624436253910098011383476019395301854705523916819668573348041072627166384501105334059839176751048595488860388133387559150444011697195287946768981430800720223986770207031706100975830270314311459399609026377984718408836079226671862963189410989025128296709882630434650898731544415361103187760473606208880183788308416731930947072982595226248719476660000754676144296788436229805075826470970979760737867658177029498068283065367524028486920606265533333903201357399591947888862693283698418395673950751549949620763123275314243796093580555460062762204488604208358183325690818289753583577983065213052675547960868271941266515810424704650337544219488920723077166098633805346106234320279376758560886005464748508866785410962151489769617007105881352663558889619510281555903425978701624074876846539729807910810309813610020704248165703862266124191680681060128784767791392968219752381742679760689082548068635193739625980099676256071325415308306352974637473353454039091069586005518630831149521911027337981856819763737922254626492274622699060192351037776311695695875681077341137936238478025014164333451787234589178487298607504220484269078776716665638392722164983908323311766444990423657128862776477790392211207603483247985894786230524917137468447134040309026304457019823575837418253943436421274177052261525851469783240245236961336338718039680781374630188530942107657768042207364773934938178771729209078933618579036421691531820516110881948291960830391850301712969912584939046038829248044317185619588011319732304455941086744465180390603410371010330162324243076287018010848963279557361477017975864209648258638751880133094426765908832736249237075362516376727711288726465902976692899589964866340687225389541536821857618305829233092824819097780406188263781043900878863586528369244575805723910537763925583605223745778876435367398945723777338349227395784877478241982348374757819242041079952506844629676964844745635408740597553323089491742565177313433414510513337982216131757621677962108120156592153085197123821948418283488011694782214052575016749913371967957031502213437060325129732517607667896046926233118497352831008053114405572470304665390011033359555854098964960002151206421889874046980530300661072355594061460706961626508318895552905473733912973556532798594982006941631307608017991514925840798012866721703588769720778878742067925849033291872099646248159525862837314807654337433340862251242643762063727474778221901466772477654354570484545405058205155285155583525160661245240118960053304094287011651300878817060997723836037985160636791791286645539935193182767657901600627358793770395952882757764313590648662602662850203762798594004308802280658860170338035104093464699293974430128749515946184929990446759069436274651619534269007547280971320961780837167381606637346426068258444325312813887106470067197798163766593984592503452026492794812318408201501240947787076869693313178053635929654844914908135794062009001939365179074749199969165521981298100935120289479366647718106678199533418230080574273739388522628302623922225154254716007044565710385253113263014882250175039811696656293709392634994460993764465916315171111566150546956282372348786745536114378542221280396167347377827012202903542906661480311123911100441477690010301985747326179868850173775190196475627212614073502013866553107458171310874629609476214925604475641590375392449798031390166003403563269560256978446289524482557781330214450721475796454054148891665638512781286583519569545028257642801537742839675714452819166032390711092204348269321871791886881204084520256543268494922445924774334226216127974671906590191139139063558917553059414377982606747804968699907604189003685855115112346278558668174425664713495865901818027004025740159444077261799564447793381989748920073686005777090540874849671703238539233738384678774054477477257860046380181834262478888169269016752841379057254436533629550237491834862949403850303981152011819519136761776918161913827977690821605917510410354686505264960871986824806231785147822072412435625957691821508872483950574639258566423445479696851749776182629609457013138544478440065995596008427755590948803370925137763472106102513948832299158826567138465735273258668588574935802072095143561696689650266326026724672827231455926305413641679125187823850147991438083316210428990592799871537299103192992058729645017059694252311522936354530136340912965704482184576372644860842817142292700997647942548828465612464910513514577190900091426308291947634468133904929435696652306775902576616512614983432873276272660734567271835107276199835645314885584672813321530490357407359701000639390461083196441033171431121835834806711961459526029325362895230052909545581827527970662319390218540035056521774565870416064888028338325099013860428713384956371067747024602899035341206664503285330611166877568675407766709630190149862761423470141749693191603757746168411589930346742298219161238633214119032600177238670540304380671282027824216255151441951576333383332174711087495062720756794846173347552775887089875472286954465152520246970261687820995589152072972244932160063875909912746174984770327700254005881606411887962442536744979332674201933095459260128080759844761443678551306792340249143316996703835596501943417649612758616786432840390883458330094437887693421076709905237371051436843718790671640213394069394059647954250315109067683362710621195992098669411360731603827523471349884616610594285251624629477276949389368502958274254785127045956323462300753966330844008669900424479549538600189614526473244654869776850400828452767688585081761878476175195719873646986770766676898886646904029423440278154213002441797363545432004510268819892534025140846085894106845019270794961615584080073572490227763207854711050866121691810068957016619609552921921044616909270324751123678455579774544823376104687705594876698537944305140203692101920574603792202216934627934952032541843333646909233020805023759894741222930799831522025396238202567525770186884694678790531147775305787442960779062604795387119545281388601008926128958693057113573754052273513598568090373846779533469548904443193700223664801104865027487451921656809157321398551605248894002465520641636314685480990356085413131914752533622040477520873273718179061364019057931184440002046818273876704793785466323063370630876954317808019822801482297437738423108138613570569490898445857955624247402082302520999747869973299336703987270175416362520008200878304934259283936736142381448840146767455969585179064659705210143095165574715673571991067653107925097394723505119145634785995342543617883737568364404237150251357171357199021643308600984968379586766016417114093754910784009874621960002007934622405783843102888601733431089775918049610735858076073447710533401548407055367240476435119717831888149897493529698590217059058608509551080392156089754906876491140954471448607581510467056959579282483247155753593342987606839322932985428688279265820606540439660819723901556992426233698734228020417013512128798548929878964040885046028033149088124748371743867508284325564556038961075810097365395024158944310324094369804769688673821388900064665888293284194477537242110198740918915820509589309332822769725271929982122995081249225595137010846704935173283572957288689269284339602007131271673386107987815417997700327628178685311116244649503756740271302099075082667996195379566898810874587095575450169746134682690319831386552398590129099428402886166328150156458436549469643298705462269715730690812577532976457285255759444427491703896059422465293718748213123522337445015061325068766513494254673583898809632885618320358063715760531601246026729571709691102496206794175702539700392863429281636635949839974834938232353884004231716215309666000131075636076169450115316003249248113581465824635761367556827957546976624793853244486656923556469291233442637270834803798887903211822945417015123431710933933452690632789177714789832866780233810575330263147704969213271959693621850299794008373272784519967327457676645013159451519674325432777451183952429638409056216670624228919257420178372168331168513824653369692409263087011895412238480724052133632094843036823454140135410986307673055544494316965189705757270601508299465058577650412196893378292896599046330483136455039845278253949697885607117705097481129959063366294164309244099960276318496089127178737312728467163860515518122323344185834087618156076186912562167949051395993907667303204763811995066441026657750502926546025557008813399934802586050320954557320671303906710840753127624564330508820095881252401830651236291170206048981200683400543418723603215170136705295561497746822849400590246264212180711834031827217751537360072609204699009659160755689558451675271241441718731177390679055778897465479888675366677727729250290415165006005587689469251423236592750291025798109409369176732682504735624804446172602905314224418658767668591386117091924508509824319675921274618299739285935170576882441277967951211789041563128029371602882651625541766527350783187468602812648415143389284597542405089497059672854158955736684487633659610150941148269639491239962722441108157814763768307703380837713674687308421346802855264489266758632109646145337883685382709272649202435679601859034388254044230450102276260974226544772956231983141997295842630941294508914177449157576672796868274265582018806866585724410068789036698119774982342916132235654963854566544694374360273517651395623981898296089667828524986584925536436384315550391744729995959106223589659416571978846819595820982099220455754334442107656862867205766390959233247103667909099667636723027902570700203174041722157733910082787721855711256635824207692192411626380800721416988859186470115488376698314649139352626104781901943784889706285104693266514698923646895767536459673904661559664597535367297103597710462661634541108300120852837513432305459756785649515417659379095744598099605967449366747136998964561222277641038404960900078663378771878596632402155820848959849222281762571556323032997188997401671485391807941890440982794302506862462978528073485474932879931317646044259703656581293318464959924504317620412721322485745501972389862028403096483243719355439235993258673004450888387997239341572144967116396800816954041085662049914975780742317526760452754260876130544309031530650648078719982350581635039538359290749905101901649828734057038734479683672331454707161691709203843357311754855278814612120548103677890989221336291226506853539133425224125008494815015597640970467802082203139664038364768541438643787196371337876476567436106597973340307031361134287023213875499092252028172801129563636229361101570476079040610128556414178106691865414310535961352971081519880697785392465982951119022208748683740258247064612700866095510379206447030749372179941540364142519710752063491404017328333329881395394401895176256069083123780445508909962720594975601498124369653249263192871135229575310336017569863234900906544576556591564926591239296489959673745299194828971876940642174796408129354509505030811133278983457150243517564275606920296788991715102171698519487221531568639082633004299850588955807074908946547608342762563543658085012237045482718688177327918316142869033109810755344590004948450614268537140859422402923992896528285687354944922993253862610932503867843475289801670561499299808623441011676177060061682386643629529259640917676214591681273650339548772857438993394727952806703571047749958324746803273785040065006059743820900116487916886360351029778119127090306444337528219940182943684825707553964994388020852741004160944965258744810895727079908207931476400582379402636708110205631403639325059370439541157528367520575914032412288371356884393487542777733641790943347146362980123206414977994941837414798268878672852042898440542493622585749858342922045086552362549867587433147737855065783406290220364091983335413664835883366691873038921810284149724816779580819185119413846202422049181764319794167294952346236980843606388472966139538995845873450280337847016424658648036085804769065958891542724998235246715650144537371898088734711108006084694399363346962044059313011218436279144388599167751920343763023776890951949927157323536329900528335152643316052897309370430732216437573693716158366150127674120359572692084197803368198705852442168717204965528430536547876948442469890165393947366268214268614067702024621913907016092991538252475260633816088953208083386741040662413129654570300254607421190853483803683043245677308435101188604948580430984698105012600764282117876220418365745175868011696770938787335285328015777327129691074000524677219480175393621445214067424539699405224119561572863637862011912062382994912527779496350168014934378244095604421546578049371383258803039974441183883253512379402333448221441594254507045530567295458485514444471047475709165143331714978237868061401236297707775322765753294969192087769198643758613399396086026309948322330706089916588383789848890638964571104667821651259471569174761111369659766554816211213329276377461797195795736923898554625140509483120050160686134562598018399589507447450218812823367391580161673962138931883521748978200177130036216593156184055596049442677423668004157456276557566125546856261603220666214433311494797913543188528330485804605571572429026674282344503533903154055122470923479031570483090217705448549704762314431966227741443378301909415169356310292946506028598125391104238955278935713720968033750606861456088345191106133160775263300687379123696715250479242083624705699935557433137742511139939200679092686435539853875383959254592934884913825451890862893761640781899209046721023477424450684305360469206288370503760982396292132149501314180418434412527873971207858111612693403496765995315760300656949346160183537544759006548502430902483535454082694033141935851742371381938942716235898473008953717977845803706390018023337666392203164990294242684570953721483422601790602445046905160234605761124642810312324678986937518463666174183077713562664166833233559163506609179766256246757430261815750417222010568857199517420146314114734814898163323378762200200963357322208443593717664940728150324198238878000078521275683953912126525558383247336745710828171430093055653102443369307665691543806620637136659771833925845414875818913298478103747496699951339039240582129653307529632715962333020492709101509503717494764746088338440943467486704821373153133153326085059361752095556706096403041424866820842817360275134408185116011919816693102118833647015580967153333317951601863751188130927172542105648122546747211776291084963970469485623120915711980217824014573567487235437573931824345824038254382874933746458154376590296494100352525349885910021697690735932821451364837387413046473971258102568322632340092976780539591375983142546403623584374855705032034094271630581271755778877587934791538717098312395964472143506868998936083883221938859707992325803973370170615012272226243092948864298763986896111790767751119895574534753650247806639619287098098760506247478758557375968397887206880252734185530009793496385750777353706787597932501166747670793141983202937451030436663329440659844710286544916693843192801540183675282485756388635182791317616391197506477941292025464352405243721341357900475899596385133893805169022978844784222583075694983630633680141270367915326136398455796659640882128274141938295986666726155161284215656989332010980617233416578405860777421109670543467731158425119258377552189661277531052479721442417342878861046255678392115816976108896302548321507044512975092126361883219154573346349072488664894516148760132499034691529897743725859716220779923030157217819877095121176210429206869079715425518528140238482443733221901836095371535766201665264553371257236831432258011872292554498178626157574475737132728605691099592566314274380967274076500368016774449624470976051501551304060251456316850100242647156197339500781849463552504368105859169550844575498864739736313264310386052151442976102104040323587401548122189881663728467879646189816201949752726931122686672826805891325562062012728029703086031840080133942276019412219924472419082016336693612895301879758126025236251786427106776566841715971185970382643486237506518696035264084264253329906864039695605342929475137795140442364516360067971281073350787669181229786667612957307503779206847435996602709707185714229313671167353225594656553975406569898405827536492915946242867812562286029230670657455257985242959855641423296908124071189799682812408181484097244406435790028735822921850258596627550876756217365289282649512723250196787856577359465946855666134208426310526342723128137129075604176936531201915629471950841143453957272416127862228281132034140483849966845067165772916657636543508676292820288584530960992042577300980296589537524744188019828404880931634358461969006652556616078353936901548653192211556764864074901616350098936887674825154714899872470261664439539742352305083592854893087312016985606563345355850934664280703702995571548993233812018544118602331262307039032571575677677083645634695906481040252679814783992841775217166215012636525915218724748919102579040570579064625668718507285351268235595780136420948745273920963286219096177388432931574734453536465900559865336031899948927452613915170549402040630034279194810951487354864311512386578013625473207467302368868374786468996082233570533324333948293069426532407560638671609175204954035601204407436963009079517399382408271460329581695803732596803371105334829732529576481109016315219948237264980930484671132912104389479081036702663910378837770479832621608678607657369373007244545144140645121928907766168369953258611699826000246396950449007465262006612345666087441328433777919450139340864331318269451454818387104104810927337956411951245268542331520844279745549832359303521272074126078218664306610477699276162747569841860260465454526380564549643188495611646635524887759930299491208017206271467623767890858281365325403718918198803903493082421677489264422927636156495346591643747491210008935036010508003550712406295392321658381658180515363640639631556362160467670838599890088222508992860827779429282846518880490344130063268310445103961246423493538413636920225910158620438404757793574037338697595389249146759203469811310992429439920261407660925789904119790039771450502752434976723905427110579091016537818580904596355244275923589243607052181301139231048497090525193936065908327219016439387362773753968877749432278104786197470069520924984863312578838873823779863701192533845175397589068642769950644505843412847403664592256860125741256833171304163405162666209240474907071218809792732989977105970059104111525923575328630695104282881699431040382225250763766161348128183948539956762485355218024273675092984156534052271450490521539885419410073005725204990766131722342746750357950341154317624906555060404364361717558685245920037530807144199545869191362782875626201604196338496215373596224896996956264841515587405166540156114974533816587461071435265725511065181869861269398253189601499962481512014311279568990835248477854510927221594916381480902052453645484154370163976553559535296760501360999502918512482214738957464754403143428271144137911314727306409557106441688963447244370363710207065090777551235816043191064125069555365615152786622940277280697028599021072939010909234189270696335826155292105663306025683259406076409574354589990654550493586889016566344896168856170295186451058443491342157836945160794219150878299147038281088203717198910040283526450006440318733904041683025634052563965492134889229616933370912759463843584091367729141214272976937783759211799096548310655319905641968205710778926324893680901954092776479805049039021131526916703723761005771373171853620425161007771016339043441196353720984932422260761006035549731206511944703810718217259394673710845446404827229962307754030864240567669757316949961827224733256834759406619165498888803376281305352288078758052743499573583606466425088316591194298460316650820508561405677879380193423659715217438600239972999837480758115758651926097430455954632546983933911149109332107183602128940520964256561868718669254798271698441870866014062386682362642998112287753652562969430165364410824838784305128327105493472886131934168421590938618844548079539557835459631406807413026788584805464318099108629481202646020176608186355825824411590751869492172661422456505370373927236411361931428422723066404108630992613511691156885337922046610368116120570912688773862871827162084472945173959328910491114749948848972239310120726898271032135978932582036313280847121542503831779558716718836213377551630663635566175249536921158081807167761116565026651520754074094557769012319996469905338696213797258607813127126943509515905412845495498914229756130099287329881774766597320056940443113007624056751250751746339314310105627292990733803743306514067623134578229031790989177450541051599786756954464672861748629885547171102059852360673022719953561533424947260817858844389690646202912181164657058871499587945895884808387787627225665842874838613501744034746558597172508135690850993630716703050899574505496506159090237470569799991224547269220885818559677137859005841260427618683471059987836070998280676473949209039776924090403278496651810797211601859000769934116284237455008152271791221122408538252085873369434549670835476816436838999558197045041769119809697936556607742391887093738657710341440895455069702284443766280100275003637023877122622161631989124612845377564682764347032266486079573560584240139405094993406772967253475819436690842776826441919986663135351586653131462878028862228796808887230334134681900258458575800036267399669524783937926494333616196215379067100781229287134289318179436331366094084875588664600503170187617999242341410579439093409809886957426044653548662031928019481401414571122966361820609646738765874919949620441263547367698935672286502653321619451930349940514185665471769205051810153511299957278736509868354014724960117120619750331992977492857355935219079013861715725400367903232370049784845168100523681302220812864486717782581978588378781720664457295929318859865286268807572463878531324603859927102347117576023029389411110711361157255281681091674310581680179913854527474590705673662802255430656003968038524701405893440327388662149662633056235431293099731893173800730412036455767652106199728606729178027977368855103829252402803646901833884398237797749761233789876504965260552597927073997669705594967139341449067590331357119177592654275977897582878985927907453276201280170456379941071657769213621209040980870188161305990611111266325322217858233287469886395166770814301488717237364345768788424770590037878208367490861316873630336451566795103919508255104883752990164704619233644751564536860224312210798317874601419076014815959099666123148065710049832536130573845703532132119938536804723069624664626147753527518323560654702196911432140711452533148881796007777140465675370047249591379922575044219173586053462388791854835248795156092343828031773043633458035701363570015451136172806855500773896561499288817885301819198724508806698008139671480397233655298527100755894994524506719359117708214351860757901389894058156547713287356939044178469168540462715342773651693184733142232255039362547159199125522213727636477698932042039323475012085881090379532910931416195535260540329603678572803752792502955698333854359471259183686581744826994960753475566139154601945503401401078357382476238063022812029862554353560498800329094704295979732214478484137942931865582731812257002010252555459621957898404135685161847897403165141096243407610407179572584249931434714274128297983804674939321415516549637717252690154543757601129415103111095940504650752251200061708628002255738823039065731905860646588100671076925620880767003141287440915111686333293966185028889014943734665404291686283530614269982736193971649003611717806731661110616210426617138202975646413853381100618276641157498094343294051655874634075529931793583377897761602911620290549361273590716883024788698678629030927151838705248996908483370713765599708491356055912364759866759000327014651875467668714255817026784379253856652949467269115901874266588575112541979470204056606805213557769467637560617058262926815323269211065816450426919855196986053950058168323626254538750078112453192548331735736233656757352196778937858838667726400715286202918319398816021054112884390299612533879101668611733025531736086233489330339187943281956859341523205348926089582746213894695654695887221640697076920582687905998120500410674413102255848161716848163136249112523441954508574583076035067549326829535762965460134159731682572532563347636474262866136175988792721777284068762980531958617104434036826036744576451833871314912317756822538980388050706179277809987981841735205624941095154435202273672078511690115904857127511369595871383542671103943902908839748877385062644513383360906347564303371675191294380844316454401214855182334073197391431162171540533723103270230033912004541807387653801169151870896637216940810515663437441546850668520277803288348339208766734698794664282416009286883269569001667032405595426686108650151815478686406148369832795942697828630365772805725231389817626021640272669440812048130294626636109196492176164127979091043504271096232818695128258938048321619588456365247458121159030159288461875850128070042791380668153270221891698442216337573511847489824113505212934629588131719879812204306002669560049033761066576973413779595392607611154265519110406748807474288227459183034156215021448687170469312054202179924902196765623364312618989576560856416520105216846839841021615553079813749350594769487758681420691332767236833661168368700675269582477165864939001047124816872990450369363025469645315373529900016056330225434724831134391986635508580214110780611750776979160586942804024748515085855129884116534701839978702900593152249250138903951662950504399615702390880704087712443799809199805183228796939677025004594360286112379921117873489416994290515654950871631859771994122405144541902340277829154309551510672112780242699432037373844717082128390621337773942013525219790597685679444099346695240991284312062021814049732047724119475070496433416063152120362201002830536734100266903749816488921801217319451480955377594758901193861506277080053233457948855526399604537182141708886446597857412123049772723626557880712792418524824884085539379671983314161468502867832375479186891439127286314182234593068671168916545784322954621055118755416052693341065918882808453929403930274730912541388737772358619369285747331583200448234513766045070038244093047330519112658206210835986377518400221451345763758126522800995495462038771349523170036445219640256970597134116780554839426145128864206789654988842088725256265379550652609951169638496856130320096596123463824037081363280345351270057471756942400056165919865249284906553476498934360512378586984965467622396443500192392886062913995697584741415816445916292144465607050424128905574733886446797634719147885061202370238032831713471647208460174176197082232372533624280750671126626421594570595866297996299201264183955113482299747964230879768364311841312450000705633474079231226696525587507119436714364634680426451488726013323027941577370086283220528137224766759571797998133305207119740050770692147638616350936166541715229509338851241264086857468013488693508967073973211247459725064742693627933660127443067293974247129982571915298757199319704881179409018615557411227265191610692105001306244723785445971121448241545120599588943322168577445256778448869422283777444336717951007205341781842968913193584986605253819646345830953106904747850273973673047463429180290999632693833619307179764573064817831173252597870504463812892773163965051193158829096070644556488405989386957656054887396907888782928007525744032570724292737150887966251314394921442815527070620559913257080384396798612773464853254969637237466528947155824607915583013820804095255526891586349735751823839924175128931411663721872168082109530724309174713183454715097674329468353228790521187257176453216174681911619077029121734649482913370439978531546309555829274964056146339991135323635385365939638470194577716438737321267626811163510698191894025073344465890738318470092429906849653280962099558119589405469775381904906034885211268555864445710660917357501774017408716946058939625688482080503295160401620553915405259790737389184517193610231046326917521715347348097260190733480130232526802062301888875581202933866698721825720565308889012090362041640008218649687045272912403240152737350071247030799220021970335539012581025898208423028357809372570266621710119259300155639518998956753136952807746262264031541932763889388568183703018282592247277393780145192866138133379015998956258005192691215306080130217545980420492141734984878170896242833194638755692036678827769163019054788085654187430673297583636960088396705438843030821086107722982505957302636673875272655793212082369806146532596699199804178828642584925102875380809828792091616047585906979546402525475654342902276719953715223961795953929692107611030042866605821284041813671007528781844650884245067852436543328132244487848763961763276344074183670487570602341620183281074152482366856900843372932725274715303040584078082858267766118729550270782987494045430850251811494460834478434151987947202386888146540825407116871910737983368711303316589084395931171458139810534067054579570403001902032656818373109816670621543868058098808170292615833223057868450374729611870528088794077680700649720425158474995431849842656213896547698007073097846685978303297101380569842567299813323259142392765215708524190045860516075825896698761780463152825617131714223001766222901680935966664614531658003220566735644131412209456077090816536360708450625988305125334105579028370260583047699787405716974937316750418726814727823460402187288272209124795808211398181552639115049726953243773618486121372940441100129791975621494929144353822150316261038367798157842151053264030872112457651647682298995173255122291432730044252136120603512818440136239145179707844110293836376880896754010824754273462073257828609428750736627801076684720868116566578151915757677293034826754318730439048925714735533467500167537234153618131134424115945881685093827116065938506585261067983639355116449563947362654617658709492712741113041867323917454646689919733752989191715333560013375723885348132515507345519191009113286868976068522302494728117462585960349428207748004278754308487870112025863113999775975479828767722571415378007904717206818146966687131522195473528075926779075433888135761951150024447746357804075279544524879075837557150333881070715618537736732468279214173812719620856951074433323442791616558859708184681373951999293564837267515612971302158817534097445563245467319782481518070697391306873973473482614990524062388021732414324097164272175022697813732878662031915721109267608430853372384997961391493606918451770538180227025662654066476347518150539717355032737388056742840151648823258887666079494421270746226020132531981444014094682843380910010999995320745978054447346808550613924559279246745254246642554069957011661122298962708283709569724370187712123401129106655251143714549033368456286187348637493593547012544595732438325125234403059496197167527638744253413827383983551463567667194640815081945649711492764257598658594495049775176084920405626538042698217619939630540163747524982726136274276717454638993463471183713283730372676240013293165654370076746686279344526598752062612505146108926253403733945402207045778560518092001251183320047189594625288702201146500709379787874688195150605945634121199096700747803859781448228414977869800604836670264131298918084443664202522352437857083373621696096448291396785526090260943183602764623583932241813552304303558078713024608028708832181339435152526814807389333762000172312406996598582512991032996119940250383421617102661009235491277221098268388846365408929426307996847181125449586514141004566472290070239595664184810102955465462261905327712327363911017234053316764769650765685221227087917811039150124620881749511281383477879475706375634138556481734170809813133958651497359897496412221483848345568414683284901591688931356562142341426229188736600488371857906494401291446518050379726459016122916552411129941212657623374660212175457901061867122966022918089936804133723562864608055964506095277592569995114831716918627710871967280541068754150794953269286916469535580056075858920014672618520273429547329883688104136123318876433945094544695862499708860105713554904724325310895935194013317438739566186142565611211645939873291376561503108608226054027933228375688689792920688641140579094315583903615243442917576658377626595449314571590986106005493293733668658878344014387827743620776045431201609308742201017705393413951074107602305575316326836666426489596119834228050280552364960509352632663204696621770560026183934420014585096350729714789099055163642718868502305452944911053444041360432294833660538006739302362403215385312028425836330163859258752656374391811624825349070408024705400945373958351911966570873234695239166268262093834966513864539636258820196525822075961201683154225185075923436299814084425070855707698538570493490178198906112916500938140688370793671019742163192985305980232507523264955856574114105277982090546416545081946961118106877313161167166850326745288060584988655354260448556233694854891751054934782044164023930760334729072789375456669402372395332255037348335035909064936454096379004789415307017606085232813647231409752070904221212999479295814659326564468729040171813174572452228081155356974227177706013415922432319592369245289625538380028921178167749084109676083671343034143951328176255656340296944078145499219947979252362223261398309479013708508420936646324107708925542561244752316856638837287582094790381427186077034423825339732487764266038475476395537658154532281680193191578650772484565464727251831541626498124732831699832107678390073433350525126828772719944396018054960779493617672295129087000476336789389126060778782197763138503577763202591986994593413269402848767750135170389960139794782254633805594432574855415470587472030433272703341798568997836175418230784152076834370655031169792195351145475151157838752256319193629600272953517875263551491162506547083299694056710950299061075294525383222397856210168688705302058084355562956710504367502881092819218996751087284708299243745400002174176234255710384047491504863786300724532291032660691568067357431019578578796764837831564534081318636537805602235943628764985671559491754212250048520686059878267665662889432150829941530758957021241667779218758935451698276805828933131220583347309154846740549642712924017099032613402592540826230757656363738162525274391624755108661230350729353714253847418586624646541133429322581409835688388744540093546399610903165025799754505800619026768442899452343181675857977867456204832223091961532505131748503624025163901508101838782063924606137066338197811584997089445057010420226529357406174697806817219315729853538550330423879590995232240843518313845885975100316479428644310184698513172539784391569575763757354115471463645402424094590649584028994485897199621297057639330876942991894243558972688318906158800777889483080828429244910845712224814274307292394926469511632050053568956742586227942550419071096038724496404295519066171104700283913495571247308433358711197015267409288198741680197161580391957635847521168703518271480102814059896378821456456912915074125443556248539182507246137917982649457868183148559845564075127276580492233905783956501872897395599776497276737179406614846772622467131812740931489303232420500703162826086499705901674933557513703092214137239480261160848070013485721070377512587554318897111545349832451420450837958526381833445052753487292498399021691201766755396750765738359886969228219248610211888982490809914647948502881892965761128905240026543545023585156711045568078827279186626632105729185682984339546394869901495349305466380710451430210789419111467681357197069079394111515300448472833487737393302702715241155034394008119912773159053848839995823355189912866763737849558975108257642429856894086055477366009056931801434651958966902294930579764160571535025167865817688787385011963943709964783915993663724112562323550922194675189800032912265923100558399044812062087605964527903291706420627998384202303547001162551921898497007431377643905224862500107952692790397555775386516634281522858144826814925370780727067148836556036906617213567989367970067905077420725217983259866466352857271210322934816993802425031539297677717634908779064672268706998679645647158255415429443256698770182685406179310616362281625595534285866175456810230443308625103853638026938109070680254884196283991969956015933082365959978291869853190651610585667725615183238212476489925870273271994984501594775718786871248531604450833759895372346777995437171026850062524130172385460840957525268701917965412323720939602213986880876703164036588533488272558656792121157506330121761902535888053407551912916265065198448844316134581108585837815101323398215027735413703213344974978097307409985284972352513767399693709565195773379184140041792904870712167550874755391309852927017555953918307916391956716707431396945502885638898632934334354126976595126564178515112969902631040801228692872221020639236328492523998758365497248038256619327174217914287074201029746864464880587658806977016525633950992867781726518345149766558401857210060543072830437032028335872762104977759307287862054448878584322588589377523796204233437660806537590996514528744178720132337439626351537611848462347194219498219297824222973029774738747301154178733537165346719763276241919147312298196782233805385687262137892268378390585230420175575420533952426638302016878791416005109668323737426544278407023098473992934204808212767165929374375057980472014782983337547049584229674383851175329924538200947124026386559385585956051018724171098169810186233018700867435088442395034541333729905277887224761454981136288264766135093813006202676761058090775638082426234743624624828279303529671191818035962360372622290076778317356120210129701213886898455625472788337996230501944659640993677242010919512152252672018916486740245613477530637424211385315183942982130848587822513586998055074662461296470415140652843282599794186259995544955291479471121196161725663973701001816996724192514388204022392084222768060353681137431296627260526373680983244999523519994133267571640299943179532222013583972321221616882182654797090933558757613526615160387527561369159406242547701163693963706236062796505277524591927435380810898197067758814701462892795162085602027006052507018513126173722684141172990790090057364073524317710715803007903486500402868259983090842143563138924183195451276106683913441790515800224634409578123632398934221657199239364755203441469210876842348745254711954622792832442821309628067051176622262072233568807157827678924430866491325582747968826929163526891861653726457194353361205347215627234473787748974609207262008864245804942636635522868159589308341773176732662449577720115102942948945197689926321514891346761174522052296750690709005798598858448203432169814350233507807363567744395905420468169076491405440450779412231987108887891938187193574943535390554150536155956113828849490466967679915678619203882493474722059946818554930985063695531306422860836356605286021629069897784259051785612316333215739679885568368170308541901502879102584311372499789982658946313669673262814257019791514401780724844631050256783168263377951525977827526553508696027868960514649751082526882776764160929691203780946856559994763405418949359706965569443610223480259078627741180810643299742856024667465151512827386127742675364455626474749645904262818452733398026699001398425337431609022247859337542896952894802503787259215681767280353323670148192285563990914651282434295376420159054605663390169098989309759188598548686309190680690481768410155977535265564532137331571968001337871301074253753669427420928751657133095487293859873689003355092826191594035541266204719515976203417489318878806175267617381980314429347145297668708492212107033911348692145126200091549902208059394758566073527164275674637034997360724494860525812326461737729089406446608174608023587168540580019211837769155626020932911832661311935337318087237368912858005362582474777165020251957502196964623324343599491520677193635149856469408547964896652208486115047275393446917874063451808546925571253578818993154909313243582518391904899957620229095384504198654322443394192961252502062805024246272634480911548443619836476856333342925836199272403366717551559217530349043818318578476240625841155188536770817396546834856639924032385465230819336430286066658390580499993674125604920937505205845032273943781646256644396319231138184586538539476207960901162058586174845137091056349551486947652063753197544709702826796491933352117559180761375779213373387958261777954355344580407394020271380321184838894846259819824064499133879408949884056304099537853013725935615368162672819513877297481022653241350320191458200017011873380303880077666509202403718003597297333988649031757379739007298340707477993113590056135784372621253114298608981812485857766382695815496559075819628482821425706867427342396434487064085329519647294228026242345636509431803979124498464204843299523983911806554054263610909671161620274571030677721398864066301232098715880396040755409454947030503130116892690969421642568863524775351437993365915858125084795895522866155253334588645511123074551328388769031603701972513658254937949136117664971862723256025342549730211624508692913683838448190511363546339958032448348155228912338316184484677588638842388230606724194072245311199364578539282997064336808943701555384288765785622585848790628096280410088786369560336647958347264327034994618182260321580050510906824212869871096446792618073045663353411551807787979647101893395237219812997660609377379874315996290583629737422701775944906604372051289863578867689234276579095051489097980147017050798755072161162461436889724250255165166132015457616468288594696537197094595670404084435487953739679197259716569935348230409872031272880893636151485947412755335064575161917766342618895606685768749952418809240233258766508916581325736296725925572058780619384043894044008049478810529037931326428341250235688961937604667565508372093192958177928471540573122218739598223696899654972993244072483829991134267949339330845634074074163439210048806634274745468478959686699188130032428830294642461810765937230094101810312794002312713910755797636889772347123950725468552610269609164914167359630581464034090625896508864791317749635082545368690157352611276788624904619678345748322509144835895503215117615674603759412795759345798854002903867958427097269505194621234501154777503112674815822643132056065036040507858776983874419339272039404354985265004206476765867287158558680870536797836785226420497002363290656611023564760425303958780749434979188042993974980367780728146608469531815398691145638467200212393114213834205953077067700005814278188942818650150044017538716336405152092467809236829934855674269696410143598788409019024445233164570436430955690893750976593931874044637875992314099208859927468389469002481124567302394625194157672904848826316152338720525154035558223599191467822938043577122529112581996129497722715238266810695964168527676615602287118354025765395952808229785828864873004501875855017484761436323010248232446670608385793667699399864490533172890447966049350466614948084676981923563951247454610667792603838826118428632306452612385757997392959831078822650423724208651138334404893558154786061074923683692374182473646270459609515802258073615297067306649283246017337935315261704217299854097504659307350064366278595428553672072035723377981257489720273639640019058568334616952599265280958982521710470339569501970838344741112008599216508253753918908998174151620879555039002067659238301874653568286283391471812708331637757637415840502161658175125632669256345665597160809098923362083075955122383101324769361696337341141739538919119802918727224407768854915497494095380215964412879962737945706248158573719854047092941844442190292738254342687412738210937129248226379424807190938414294611468778953031817962620783110013799703040252536854414689421416388410395348604224870768784633450108715062119767585559369024354184822844117819071348149970546850024528734689407719686935500149288156637603177481494143776825599324646213813368137041497663190689563297887623230656336779277003455209040675359227224346523967099505203709915897331144699470428982616464743640145778210513886660047961106685350057783164986721364499366233492010250270402967456993616073222419886807347074561484456800394891318949149041220847742980325146021148813505911011935717302099570958517445176418077941767547887690346055784408935866958163406220632946780934597446742319555218386630380139013110483872087482377279505328641340397849010433907781230424916099832105862190857778918279455853883350833772020530162399742736008870991475125505665283154138375647669130818176686990095585711634144453483248072201725639319061398812082428465561457435883791047682612993400318177474955710590383484073198484027104017662098187255189476559500827804078774483077412507231525564446424334409905840342957929641017861488135622969981461474693641035589981600535376734968546709380928526337041373897509797236908842258178437442962176702633965298409155805097986559689805015834706295628540943072459333931306204063437264184955128447486583611651347750287511258628469754924504417353529077883182087862451191366470229754201890579281444402218723690731873740079660046608442685716817102066834820553145392809161130256949358120887885990608779318200839656403748755929326446536143078332498896534639388102939389071415136637109884180616765752737466682905083854983121675864099940121721857218457537858730996839348162524880095538642601524285137097500512380120897072638202628043826746242059799987775062081844334259868345327178147418190842515049010768518491628779496468645857979269893387020654546995292431035273080684892906925217825771543907151068486604776803881194708089529807510734729310353680891490745361840845912691562138843423172276755457114999125179606731100883000817738033685197104196068463247754012796027999165074198504638717066082430582482690272362828145869367960125888734786991062041126841057359680030558177245830065984061734232167617318723249001431706504156635382353776193663627983248586959426361736812342525331974856956381567788240583770652785319168048335407484468993962082734609454458443480252382579419598954502519628031266592809560163562648422769923969730534242071662888598617515395996466146481686911240866651707731861134659565853473340934655750386625582246447647334653624965095118151238233143415691793942701060962837952451717012342190891970692400365595378843137199514015871839060034234763201722350156806824660212232677383064616007218889340156512263616983347639462816416810349948841835728808005062963276766280515058095513816127993305078903683501972956921560225461028496744365520835086354693235442924562457090199013802046934415469309547850939484537670115114920050230151385006947005178639693322022454114267717094601843902079463648635414395813429996260571374305869046086741378826649878190652635260157205133002646074587797975859060769487555946801435084393223623790477857608881068376280877587515413637467479677111813267170188643090368646573968362733509681444545899011605822562950376334469299250913648828934286295239976714231542104130874839395442289601888517456614853337412371098949585528108880830633111631906772244177361660920783135620823386371938070704237462365735274603373560255171203230013337448487809536579943214610990319959123320260747271710178399845281401177833895042344679236419352920193211594436316397844157359157885703392487241285584842505111692706458860663787025531775023254600625192014209305489710310718393880245748495578740908115761056843435792323424021008053498501832706026299723717388305922115108900071693012363146281413475697927656085238135245734971537480785410952730336153008583981059255371567115206906904087461962171589538958946974957152726660566719921809077265620500205991086474625554015516658880803922281562254166192101070988553139883454926579551461878199485858002888719830142757980977379893239645666964311749285428959546758414258939187013511057096865375485182308438547247083385397906678928811125591311852451465448956080064172185785703483682751220449509901844371332970977911499603819895839868003973046810365702216562753344108686170328805993116840425734327653510713345758837812736984332044523427373920072653479912712024128591465814994171070714124235277544655177645921331430286326367537029031530217600476109829161613895093054762388829365996844554687705783459686767870080547045153220494901963805049105212243385425047494996852645702346398255843591894248752020646123309793021676253520093303456729564944951278742127533231106924104730081195214249870840145592612613185631168588736528599220445599048106368872380230624187020834818238443825065005210583995820216886474194242780849075362232635731097051760781785576471126100798154194086243974049490736225691941602685982899350105513876724857271795282650707788127283254353704724442888913820907487251480466253919665356351808679945139835052552024689848459409005604299882737013382991094121310128155488771443682056731490228560031833965914656032964295485774027112962858552547785785607657295766852855942116955242456731464766042018332355478497170970078639522313805799226384129453865473447854959603941733169044617762214030548076029092031918972468354519420558528384024609623261194979946247020973368333981696472170956731791215537686490875363755091006100140634875893680428425230233414894535257300497381050983857902531889913301026272833693358948778607171009423926384378634841658576020038503657127038995393758306614867242543715685474377924734927315186208586806673747022076555903770457897034569816252050856862571037472463486323401450081717491631149808706201054069432238235223667128335686419243581409932169163842222518856444392166117622027413148849402064951155638493632696287639034055669952912087669367800721710708248782710489142667052472863309721532163167768334756653045412851884468237778864735062535050583767238436050794007261454152691138006212855151867138043058894313894436985051568079422259775995431011112293918719115037542857680908895466023422988043722343402908882351463279675394571472111534549648619645531758362428269087478317995563881469827270839070762603411767399252702232960851962923568404278424446285786201959412774096511248249276748009644131318724770361332328785539863643995414020328441549610322463766605727830678492068616701619346451043786732442772047757323152503307189773331315428897414459520830509459457820928042169143914959997654842971663411388990605869830139046581670258730848328078223668590497023531526700274022098791563286311894130310891227594994987416185222949147557354340248035368718522636338418463373425952055801931180983010773948486207267575612314940283073226431575376033452536166933308310471192032000316583166236222693921535825905482548932126773935774032139703831060177794555654444512072530862366461269802512851133351798578358925363160172786982172803032936293414980183210990070003538052949720478117230653826007489347499974383471203897024407312394926902544107300308029186927565220138051304860268221237777881700723420909779225800125370728117914671743930312548943678586841028709367807013246399228256711374358032900110932177861056686888196042507822254035188625704131837630294796973464510692277753339455400263343001552387115403491069681342977871032407829825903335818371111672221236126082425770615307837189100858417566506172941179638101779997366126069179408267575318169448116659553866474470028284309719967954692118080976390563731813664193091110224410976520611597153531864858820126289133246064302848493718525277393095108572568355804314839228887432751478418815907611803698817181833079619420494230842198241909080293663316173507503795246559637118730773305375529819737138047569234122651441219199172240457820941606536869182116948904246777982754499639952885186786274349326514732036820416147959627982404893749534172762235221812821905809368055695858733578025437686171839778299253737324245226485035847450446353940664922556567474593531548271617723878065095349763947798117915730635544869936602023516446896102403598884742825961279604376681784346589642673048143878400316673241186772839704066631654601711856700872053598401950371660941493805725767922131574730730886369351308631295906493637825793098000502314916936341526626279918599905143975820677065723956861445165509046098462109028177355060199952010989912388324587511138131133226553666811842043998123689147762630405881753794267476725238913257940775292666410144593941593327332335411618591040989865107732820339955094258087601585742991919114506651782782501763432410639806057197386609578008825596115580857022984157243674105321352367435141374087722562972422503339753598988896789657826162711065859140217059514865053569744829871902534289758827304927927377206161439598662505292354874436228970616482687632136739938042527402434715989302758068220260789144590892302299189951705615183513327757345814738318530657444893333286776606704989035681760851292381839048944472923994939381767327942339770306142692293468287413623791358479999828241485387014950173542936886597312397473993944356900530117398774657300032747941155655497523025148366300287381207443877515846841818297590336439301844370951437954555849584334646218023957441036579186422660038802930787928588032749085280635489042847219204936390511763609415585157562534972639080518073162468359304328162182705401219446491891156845065778265335845575004080364942390466478656079473138877678527634977273179846793105052800861960168282378887610004773585231151781337071422098082733028144511748704466457677982154128623946171422166498186259510537312484934058337478950215356481751553488498453433261261536757866555909197331202307792704949474604590961616632178669616919253046877320939441665961861241718709466237762447679493821943265947971540974452441671454808921963679056896723240089217395287791451493665372446695802946643689896875392262508004102704749341680050319573174404511933852860088988481694105355260826352317796020661473358705657113957270044012807941424167586748826180393960233881315074963524918045635147336466624067184560013994225927046673997792880782008636988926209495934283601799628019293572418357255544674377902057901358466636183884777894562049948997856675299959318872795548708765051141177257147307164530559756940711680457526914064925785054999516002265150255190252867227186258256734301165097079167085335118294887212321309458436349294317987617799989052519872297586714080951128704128408078209473472413920056681263175815857301095270895639766120386128058001117600623713513987751649101787799437538968999003326901856957585196525072022188901213001769699069131498285748444522352572851335669153388321925983098517602353115207800534531146841611355739653061144601194082456341195461179404599927007673606133812578513557592073048276373187846635787981885076195719002429659294220804161804008249684544389619174348118086660412645978988777721060769202041012302159413942565259039260213377215809388582509467089630813025811836004094275447980372333514315361257017132128918292494502630084321557992164699697409243701203264118265787073441224989040030734639842839454824632709905470210092210601142759890517961025567273564909961416243842617701289362615132750012229132555974797149922922761813460295074267840281207542074822328257316195702502370395758367029816599307321225893986447642776966950838468450532270076851728900256432359134852706095178713628381663287056659519438409291568324020639346648718618069515489973284031215550032395315353072518967874997302970786851443485072433287313855366913409660713148351801103280610748940374683173273924926275242106884233799082082728661718327979474656909832955007367604390281345647533407582521595902592146158571405317403628837054472276882447575450620273571622576152576734194626560577528884210081620453487399020266188966702353973286028287786990997628567588701127644705268052469925458710345274089354752327821706890906234571936391450549376156208171590687232587694188693894609766874414340378477780367933164751134336994688367182102534223558114860628690003251030606895165387136452374880498140182383168413252069158922677093209104588172868258232429522263288731424599698205356073889380479511745512266100160533995127537600325833332261690211751726290769742983613743517033241649165270736320371132080713475784357530485935266898197639419305424718194366265397982777123613563004894334548043717695323910006490432774472090288913675018410184959292457193204550880232113715191310540329070186885478433232501742032643097562904185217976828894153463916920566392995573339730634814314004841979603945279694646842181751590819094502461966990888997765389811603434737549816777573859743267995079186761898124211019049837631975195836728831165002732358359857548011849652029194082241339159387180583393968610668813480451056556706958978796516978295085189374120371483188152493153402736188680499296738331451174239861464136236386908933707943380311112050574686083482596583911194414349129343034947747514974941403695934431604635874501502350395619152160635672378674076309997641603181625041675322580913017626888481008075901714866243034747820146479580057363171408564460744067684457467629840517349120870363971093124344453829032449835030248396454768916080807568880944534535471398084596483399585110395602167756401653250674265620085775592358368242135566407270540061648807855347290656111521652694371195531750379109713062544736352472004221896369738751476316563006614083981026249065127169769119636021643745578108070888832550184417589915612379835919143049612896822561278869238528151269826885855099215537082380666758684967987800882721053500531114865972544329194106864969388457187690542351664986674664958156993103495901490632292504501609670345702342605555392092472906299264904454145393275717277940697343776202625573751349549221726759154002226431019480321770305393154296478026294380149969679773996559918492492439966143520384465877459429475713450628957490493478794278330517489160497289083815461556082902180599018430053019218449885770387902718866807293762051785458350878094811049827504042633978888814349565118589970699929655699005620247228889629864233289931575183989465852740297313372314982304224220943029149860695082705497512206167222871626364553987427547646912777040209715694176470401968059506273846818925579944344695642369170548573023869702224371080131383143480344874607683799943656062935842522749167244358657917264286299327527991867903197027208120944139632441381493990018245870831916806966791702598953105845449574483072219387550688323603030713411968518879752691203364761537386290348803430646728601394396300617754181018930418916962642224769969991264937798963676271703720509475034836539750677056128577325967386661716902128663012175253297388080468779915689283966747069798538592419859637602479463980791542578509144771112936866051680114181644903354821211571552760720382304887518161547806784250241701406206501112134348736244298096704380639276928058190170702092778423196600264539104045065509670607248005478843596901238186485486139951807302887789651300665277639669272879751482695588405142660230083874704338396547597279080739478801098585917106086611871365431936729863979203305870996768508062856184602080542094866353957394841871710884132710473812677652738415978144542795179017948801181448217103522344386955905041451245670178630073675150708087457929667080059074935363633814392435346024809621364464602853195276538884606122935403640493347671799145085111778164407496646533797122397683228547186732531049260761802525745245450040739953421076631222659361554844653277062439177557997092418953495520870781833909567085576837696125882569702553453771831278439671199720066343012065163238153890016167983492295231829639423033475732498185360646117799224592946603355166383609599582105614818343202838630248846788607689531746094931622520691465531754604119910350072494071019202511348908856018434009636765908789684872651943355237907446325249668982111995178003048245726576588515497419155857160130047643820722428946866068221782908261708923787298603025777423215693551731399408000577107444256854333683326454539327390508739406133215054960006302252521932810643202605596031883481962424513167305807795792044711423025157810324474341901512130180749684946320299821836525285667498033407655298274490477254877919136385760202492502215976772159779612393370754470377012640485415714008231940528521157632799353440670822026592188639250058772033092856261142284476150463699785119693241368732399421836304004386483601795373205733657560576457536236991885889558590493650239521026267633894473735642109353374140688991124775240841717814012534867841423732435662926888879019735361593103011187067004647806357280442722436156934536552936878983732830452315810713412043951429108137090518733489570063921696467805105387269959411777832403309053121810945118592254730141051002493105559218501447428959899688212375139532662477002955954405970169582681949467879429209020299239536212933655362123183305544054642306879333649164976657579033148030607528121305883596897299204906042928485027813465059973676320878210463632697479431216476596713310643154173090002333606664837152644998240604102841566880955131925277731116363182851615518466751913551288181023323401832208935675040254855951797209521057706539731484553214754624128659176606177720436407606616287848786277520921634930800558790543769978634972940330715967422540186250896032153652734007852537471736429557729448123774014115005575142832066990278088795355600662227769758894554134724484953978854444464773890910701113447277443223065822363762796497800732859579084581036343660891042501834023340528564433200438118675118964509290709198364548695209306149223455495555987299548995752956571229993657448085614802900341337588386338006246565766587814268563182798468835597699755335173672828986183386443785223566570308004266467664517341092487205246094363364904974260639162725850685538398173764327282993373357937258355191397016627355669979234407119470125405389745509679114794269241404606806721329363730401248642596603871940302255599639035535431778699138572328525489124415757834901848984914702714499009409593890975577923535756870127249017791996234692711187711572701487062938986549756084604294069946608597308273657241795596067613021174329992241704292148098234555653034774797280293369305019611414799234433738518315762138211346773810580451692666911428348174859777188896872801988115578993928646309233602244290531827448576261188095115033874771058883286912888112021418645680000945540554773314710204974151649546109258468905526418703653834662992717431861227328522287485971755071164660104929149704466842432849560278111034991385125832160192002854006082470877663851055925137395807470022277986803327196689605828306015919657833967523758028563274557864732504850474183468996513017629152059849820791070579197991700455159080841923395956953381825715607037318074484200913090449518080998259402395059886754657638569712353346226954508941755686478423721769339466940430488339226139314876475292550920774731823410577191968891102596702796307367952397386732982347603691784461792516467906887639790401082811823929688015438998069228976319686044140422980225645075153174489160529891532731722539218254166493915102805368130180643945597568200558580793481633448512368909470066411773421574827647929868625340730703770538133327166920637291002619918076023361587898217129045217708412949020290826893900897668048341301352621448510439980409056174131531610411053364171561036597338669003732622973174051532328643080859861321335808808182010257827877000780458258722373524128070804443242422899372821970033836312735289163006477134660381908481524662568007949860985639285528302206520551416277795814089803153353074956831557236807416502444280945031318004202783271240083177555700561353920929278817497374665647233772105324151362757966030380361565223072907245870293883939205539239410393425833605466333346336506169859356343961002331383320495730974739894858007748567825663591976785522492993889421750019422373510960437240102626187352340023472343143051777712098561025334203644534124100934872810907612426287661142706890188499106562735164582432474906143533048398529033128340538682731287863131565274105072116703299759741746317353170756402837275465500946375014117490458075225758900373393971489847928439078744109497620133860803393294288846269408871428525057613149182871346993442645339539544214108091941378207545702742461993687616832320018978462448586130208040106543490965121004917186947825426761680403487706431058949962728856530229422574387357005624617060293685242632352037318942117807878683143611252257854770342316888517466700383473545168750898165443732558084570630544364455698593549215013246217885742525266073821496257825538790325468845526678667256364084396803600940502050230783974402710262414293162501925072728038907056923530922588894128012384092006183391789228259887920471703967133012464524120490448423952514720070394965971968878209558081340544381429643867430594308944922105992466823240001273364523436244600881106455866657284871263016472762760831206418575026952371476930674053765371526229348892976901843988483949236080409124009953204168572733074386051432812285910397452986523759877354115234767812652164020813815374578069172990649256711855790328954425272945791824427157837774326067302161976123017700468391945745287417156947930696860897715473423692159882472113416743647974199732688696936265349447917111162654527567634058340644054851299483642682371214605963211430966343950051296910261206537965100039486404129952388200613313432098118416887652875482135973848444193507911711940176031976519756907674336736293593163805228136783523875870515521704701171805366646787154292632047001922452644702595112626557449230651558496009641135052271823091874005576902573956335285492425278514917334730635355521139991463798424595024383234607406330907627141973664405971706357448350061423596518428187450072204939586295386774886045355694996134967564170200982783260269969451716404352754132032625108379519852980084029997112945691365349188683977805014000091845517638390984426825188428197699944217059670866319786460387954443419371162854787789828527276288986516186045953431440289464284578615547692159811330130232730471772632729579914228531325029100546910300813821902706473197179217545820454099526904440307840339916234984810710070567562629536373182428345383796148739883100203337927938723112723578951593274880396450471895169157995185143964496138599292575341029898278958375018770416540614826009243332239555380584143916263816035958755756375015840153452709141102488987523285968423293274950341930917638622725325087342745596578512172609050508534602904961450272511868515421514163167672127261996609668523891765854725723740208701815167804725398238540495422489160549244247760353489701978127184476826896892919265556011677639786880902617722605996227984099990811343480213493540833432989458139314705650186476744867979580381644914696087215833564195201577630296687530802062913749639568219997545287259797257556014558933243423074819936252203337553049791170007634577130396679181048566761480487042484953239277204887834175039851448253419010251790774138203956090787385865029841088637384772018835127977616562950818394337066680483633709979671953547207394107945806519734476273800193891817118659072641735029779655289572460387270947553834522182034679123361650501040709532313949414134367678622722106910072001793795478392780190385908088074666924801848340102299663431361239597437589745886806126277879827365721048598258627947269701679202841422015417486735782718884908500396854548486552605040092687591489136074657535485094571055686226115513522699787460824348298019074084879664436759286785499719377637450775856087369253280173348529267812197450117204501850090897306552692603736298445760691329734449049402684417155587721564857216034326226054473672146277366259008232108021879736574287959892020149661146904030340256950916391632534296987566444583650615111252685214068411835858568087658143799133534579281209565236204369152595336638992621087667702204692223823943964497906927409853477817410169916591899436480204186385122898614545348598348038487477100024211165320237024186350438575976761468979737212509509003242226519550349416478407960798047064401371989218090809757052561804488492747898026265714823244319254883933381925978716820229052591921928972182135664265563155524662025706622199505362748434152201505830236363494193574386089341983735445121762343587668246305155839352412318016241274045664317399211906535929054585861311987253821512139131729364938033696928400222148604430345659284794914714308251286190163481076571110501995387926221007799376859997357862724033715100650519262872166948707007046547025815396102125353135075850853532813071723220728282420226957268912080681016355300249100876806792910935547070825960313128703750855203617118316866744947784545273387609827111718718863223689759734174050834236136328333532927671806140818241658003313361866177370201643448628056420272333969120389992761739049725499987972921083121934468427326257978958948494704848325305487685747616185017755915513909460711299587898941335386446034058150291685789637280636926705395987723009315285449382375505361840567519423645189283893762749183890366544208990371011554636905334651157717116397482744394298729282447953967910385595622791719686895379398912290437644966268781390868073996982865181097507741972039915267295586754864292771039585084016461234931296485531106251310337076044921021095657364352389709060840230317267958957952677111317622302195844116120762119508324301765527746852162179892414983086908381380063542934968226292602378268742541705932869458606942461100354197303581757336420945625714079718351790750092390309110284909126277260537696142913017574407321315478554489552209736555914746641912230496552489875076514234602427040442793222279776561679699680006964228457418469815781312347985670803616193314276495581882613243771627394476675212196834317018153928164986098694416630215552065065904002947908123898053760933378104919986565174752590080536627815721182736283979671175809147415750025575407581017868055650461029079013282153698040669658948228190773514710687072997637010346833728265949189979842447896014148974641815200504243053846099935106718890871532462716879131525262954336219854220363469813917617259912727451499449444980211653861486412665107887582776858175402269300719626073211918514149006721122353628392863810056061093222425027774732387006741845802071811473011063752706941171193880788777239520235104784647445434546836644105915430979880143683458651661231365442190926425894979219340787311101688616990251533631371963503731816412042068689518169376017912566042471418481394856276117629444971157420874134680725793285280952460672575919369967386065921658755373830975037191953414930502914064705857161551639559097755740453638700663222559355095833603429746888163169329083303626289689747958025246523958890597613148502174888401986449033752178021485252143036405848726116148519920804502653184063422946832817231599869622150526507752745818338352153279510831508551030727576721591907515822877881885389095031022681698339972689236183189498590957166031148296254342031827128245748265935254855048874623168850061356352590381803830288594872522280754749481366321508326878095499237903270204820172928670821792105069068138891985938720279407087768179451943549149507087819276858558936545392230741493493605904193649329940705370060198499510042258598194758270170324372689335089153299419249523962021627531951161339105152877891192831285668275489334417906283758911506626363042436595533696238823329979823128007932159342623142518745230720127946240033637486063588338373553142782875654393255715315432717382633169885997639196282102867733066409961350954176706407702297127597022745226989809548135715466813123920376230189738032276852541292444403083454170083910633860368068698388271746427990677429955872218213510772522415380499686731000997723965812501239932428257884777854106556250288305598369900666435333830531195074706941550687623798000418373958010605666795009811164730891490015376154901425876650194709260742931289662380646209506164459627223873259809054893666710733636108675681093934541678918846568429375055121300297410433125277401304529387422917624388801316489288463734704891861296946410377296363474060670529513297427765251919266289779982784059666979664906269304986666863789202346426288667728198862968792570533117726748742120961042178040750602549609122134019503632995707739729903233765763332062423757979510557395953781404170346510343503283275444735608199977620350302577629175441526441094033643203115179313735639295454339618506578685806077786947502536660334003931227048653347359947119372726345422262542893536769415314365398762754156264942394134848956974150337601915994951991519534866577000163341677910359231301272144186948560508401265487893354934566721861612961668592357508802879173316424083752887112692683221599441019026476830775029067817856119837756594443315110850418320084134934949796984889696272114685707272015040400368500920875560594232897954217302241715594008633568594985346637125558063831280700506723312826524316619388213800827661626139647321987524565537329379553384193198046707954342935341146137203745937868457533363170852763018706209038819630798758443749888755913428437779747582118480983323030548966680255207131332680214348452700701881207467577696258806700210526364516341131849561526627691406255604568591994477247895147724112702072708618767318689881866802116338662028090897691028166098044396532660122683708506462166029246340962219299223929788105981109376998353865499435504758299740617379122355122047088358213619472197566554364089844436872311527187634339566851781175283281830128125346005738722956287893664326660867339387458208494786607884583158999405687450693497994423813184731518196997088095998125022240715473386558209113951794964544592074356568903586826597472960497446519924368860083380255109240454159957656934817663928655223406216769485264674028084131776503311756618135105082564228992567864373328233988103223222030781307882602932206699540378992604246099568369741923108441328704790194608877589705909849155469300155469198481208584770187827015547978133731652126668345294568037857026776753261113634042807454710210155104993223644372074443853460133588559418670130630937681313486174057456926011713487488401803024085182902767965029951999089263634334620765388791624259836078287534442508742251637509212877800442852383350897982497109159002670965059110332807380419019581449526274863179775452491679459208238407491389481471471183873691442858551953496759943680138122227008813798942815029274823353968916171218385756418288656606628170808658982065452234353098054378096819775455477664781214235007279637462391388572811640321313980851722901141347738988453885212453863528987507444019950974055784906523154693516789277317606328060670354742728907202614021887362876159953923846981076311639937187478847570437889531769946881961597222693031462522056876237848980304969898707903579590324216888543123672393982638260024632313036729340204392440060418245836796404506303682421375034744761196116495618867069179847152506324032693521296680338269081471468573584280735545207392896800451413039547732294780394509096638542162501942026940452867248223248189541319766727048610902567325313090714264127379219254852522944888935152749475992209462318629980665954555353477245464197261443997015075722076044653117961749821419809505367867351490892075192183116477267010889907593013874483798793103101331660034790686756325270148039977383786110676253199967770070650186854347390751799057987618338633489280372175566166607261974649850634302387862905224307669445814569016177428032184912709763986835255348431906362837613825422539262992496978103042609561900372097780870469997585347802580349787672470908897812427879189967732864320520711454830549630094615727540939497992967034273881547285386265698978494187473017615462695056556287261310637820101348343944180828738169716030449582400844860023526636789419759062753293528619489363461010174171552875721044775154481624210190801303813128617696070087418744647121727308006853547552327458257142681466546115732144494510825895718076558085697094129462428413883689023596990632270737414547118837150147753605701418725441605346654917531547022107532324279516919342003723874684237827316436008739973024453123319269827288551069279458670473453444461168712921171251611942537994155034930668553652605255673942077211052390315242492250013414715896882771880447689552978103271740448297125720912243433197993892545955372564725993240864183386418205718985117902527130688066518309376003909864376000599930773454546002558564919869063867685063579450371272195892649108007318242739527353694033759544149519020046396786034972024647327388858525259029885466339014789262412408288212708078114713190224551907622815691828531858245805611221226397037395293131136391660616970140662406706756358048943771254841522049380444982888477469579762735633036508655621601943029856363795933651272774562926651776413087765837471691377642387794891665807743399562390814516659881255028506749438942351462939411393788638563705906856985911829491952355681597960267387620567947261898905838288705678518333672418891740055234383776722689783131598253932248622078106812066054615416957136296848179298504071866062189263384580839987480490977480712931900745491567437987522076619975723545046963719393273800618796679775214369130439998665502303915676502016645439690409455442385510775363099551839616376318913427218488899775137278100258989056636293254170226019102766381358102826234158931729079103716505615139127945750641879202002963935867465153658630368996129842453256635364532709035454505928223889663181249780792276327250481653591317727048374182837572402705339343452084849171591139432280407044332669759403563455966614142715490512581221016920804724420756096815264530923221178246791361988167549369055342675012579352359973118618024037113031116742799976850498219650706623607573329405658322805456999538807988704793022032485045135536326670627336548585748733437932616513280049021627944577469791838514341627000871643685632901527826005878343911553774885074899377892555543060130195250365005567058678288140114974630367413355465344816669091834927007477001081900431682534618514891274513715505668354209682818429345522501012119852212739229703543391129231243682592388067544826936912291992892682861597951903629270758672428695443763963701711568407241604530923879499217218569052607018586361379890074403227533351545898625867368741652623020228556059481586421564131502675325273857686998001361508014784180840378601339897315734086185160193887459335848702705999996710136083248307990369670660000049917454140868718620785352040886974278027195583047666995721400942651444301190816984675584980005689041914660850662212084371296318233601811906243306546856377857166634701066031602398607500371376521435195188224927947039578576105233419970812049318025406175614951895169242656710754888190741944144706451249668800104948823750272261049227413534426432449947077503281533248974784907809605020330387834136475576772108333235592327346140172781290239373415512052439093252642779545854623092594483547101332905104095702224101954115593176082500963407129495378116440411291692521106177033758707714392390428140395014954186268008913445796546697061989769159312131283067981353867914976413619192334185183869915398046183747722253557523326835219849498661030815497373167860016711495160917628754543977247105514029184393928671744700981043787289079262543197724489998922239692973477744068445329863353254873038255201759835459053981516304319393221199345119731948746606540094089251037083970185582121945535707113250909497366108539685468137047132903650306963230261179903322067150193263323928051494757153143730533381819981479260504517823761824144816872009673341724162855593219177695554038676210655179178628460825167580840125171600198458267114496651020155507707389764633540002819729922655020276492886213138279585156956817188394503104806376169327194946073832294201351214806033914923871119592158626601991828281287763428870377883326108050993539417549008782873507274506793691049152746278444502061081725168376812007574486945099679610138397052271850601014916214282681275680160982105754746656861851457115379259208608465754749132847665748525349073395405085960519179997291987684954134678730869383945482123742855951489122927826888430287169452887832939685204664141753080480456121406011565362476781130463826277818580301597687703421950245061241107042501441440759653776465424474914445362339731602621491131904262851078860144596455406268751947740806613076651356813913190709066461842921688418585911429716469563744437038803007480931238367246369718326563078251503914617268654865860240301581107204256680822961465806623910773774161138193453184615381178541419388801962518940080994603758780192767560558451485389939366428561749724971466625658288546394130067095358189374132876571792989163975520573419773179016165216648983987527661324227447044147464368336484357463394004199870109787560592580016060138901310017084339422771832633947271225394809930399826371128405038261030210778535551407920647686773696008554163410458392450034963820322296083645417359700522451297891229251527285154728900620459389634593229861330960003591958158330029958325242641873077435704935651853424453242813900788775082099974182655651436441138970087174986634249039177369106544249256683312031665324367507727951822205528972752509357588035475055350049171429848331863272419778574124938854813036799695937548328087684555299685625653006640304065056706207118893767952072795538939005805812348029645590841881370377768061105451583529471576689441181949529976472701101997092052598465452542745193741261977998702613091865703849960805096890967080341739660087554009493894481633709316243700538901693382802456480005343238321219482640415580950476844365297984432070769675794921734460710221803948716398968780533674026740613019599876341298551237939333328339594351559202683762966743629856920406524110310322739751167766690557023335246767741145732514503693952829433253719555499362226074185974300856761040927692894490157906110114719775876824282026900762109160474744340159465439488671933916020145017443726032235992934303244706996212118988060030146704446107438308038607454588061697112042797837073841739358200842208216424076008993266438978849530855917277271640175346487018810023795436232999409936518746595390055111482762554053899192407128319155765259374613376397095168792901492188618088230473887892873180971636733706498492588555552392143889503512971927757887657215663219850883626007166156718143275772421696910626105556823232665529680677534475511503631739211625676739787243640197714116194301239374167499076930864914611372707060764511375467754407523215842379104568111869536186898318958178783303557728700651578823128764245184965692180324998935904034491271140939351064984632742806007078598553024142998896246082591814977697723855968679621070182209483427106186503113051207204676197960782888852610531816497491390959867747769170975657439261866616293875567906670541014172924545559087949988628180554403563762842923748697186899732637453677902501351100219187751454247942567511735319037606212224333977302066140414076043534137781048614358983921370137864016424547119333374204234422332792053751816816160869264691954042536448559130355306143554272938844570605257870886917761500447249107631560346887570211693653904998358405384080583918297260164332357903811779439493632783789871498960179232957812143974173944881949520205272062880785727238753143627222620350610779899483069435764135374899601699816086421886886011994146971852680264142471871535581143052751751170118626946598922615838645401266849348981444187934376717121742048507385927263534790827795852500120457977752201024442153109196452925212595343679059092499104449061693500304739927190144625380608465496368158107624250198942310993929373728406932730007567776314297989687308327632424583480438055192395268030772149528057047895954358154780707974581430929377420904577960179483631513728187418169178077580901839588123819003688215411563723126414302379918940372482313092963700400095614136161208135517715938673774141679302171947214919467616505075791578145497273835752861196061053116478408645458319568337826395151652209097406478949170865550475209738493501650035765176132637654253272598905889802733093845080336965356368618315051597424690172145225124462314626783445346132987131449013007356164840909405474693212224161501200416963719529827221154606835385852485199886946817384010146202304629245310036594738095755878531769500392261768290519106221746125286179311514753348004377839908657196813743731605658842017564517996790114035626902530770525973613380356780414986958465334460664650915384807138647610647823223823563484790290425834222817440280977792637181991141729237069248157385126357278750027699106494163359642449574374537916164564695238944131617225476476381023130496882727314463429320093372512155218714784755934023750518968879359602496473436661029817624351525206492156149896722592998877199519627092273041908247572029529530609056588641178359032091919051824528074917014056417006179125105253568186133184458730049419438207710760331175695502540458474299847696178469807592074190649911829016131358612243803727305663227027740740254368885080662651968367095106456229231642964570103914394170150625880963874018835049721618104520063533080634565723349555814658980019586721435302198404556767135209073472396527754213382203000944204557219636757650724193946084394440616677843769514426344483678663899381963825778716898675792920172624454957502773954947534049817725858884030440986636391786885176830732214855135370281175936505664532431610370662342760527969446787504107214871206308885030207489428899358852518086007700088458795365700242425511307715777147519864956507412664794677177025172805641040274951972769350404078964095982055015314724165672711442463268332997901845342939282521695275071608153981767334432955306011038807441763372888975742110229006178912446172135101308707560604658332964663045695575129398849435127291484845152464933498993721760998778537767504191281708668813854618451001996071140302818474141047882062357454836472898849671167596392229734562594690519522755836457840283894793285749144401652935880426187380795582459385961404476788564362021937926998771729869097000305836066445876016956442187047443210765010495798446644944586480269374359143545419406019511806054658386784701686894204570918052570301057511305607769529439872009307238776995702982457423882315976761322251499094219919828663626220116846139136579724948303337966658441045450292385886257069704615801273873806215413832154632938452808698651458384903260693532692157487075536749806263108896190120485162474726843373711817826953967808330984597476942053474838098902206175013361676828494130046808487211687396331404573330890383560105817232255454556609195859322646705725736731997893970199795699191835649933964857860169377106622439600695470643376880069495959206523464856634678772779947647411818216367281622798175799807833594039953918227622871776337501675960162622832696993308860343802061712627080891685339219767725112960240156209329518689409599733032880625598354284219768057275848539168205023201021045929493221911952571755487136074038578071625075756110395813092603586803318043461938497960216292631071954671566560035739368002214684024897188016455956405110163075536321445859035448430413636975411381531900495224939970837960083884633191092909506360571461034392553968671663240266338025235173517687044203550738567188259233165741644900533854113459710573382729412026106668807723442786142613338262774531461660875941373630888922308280535530950581333347464946498042147410678510509941070593055021133084690485354124309113336730906567721308415402140581135476298024798386257652512621656071278392845096976778890183342971258228426829449582482278351800286004524170127414906051518666728047108006513589570182223081130781938370001271918324224510645169937263829836397144707779367201230074951847085558990519591707790919834555190784402562760235943929482258306454918818893718183981676145452151093002391788374204899127581377319874357983398498324907597255846590906511772690276292542447758103388038682204588531924732139498939464475207874692814280555784338522368714906681567965353137617519859308809985712579702956895169833420855866590111545425991996959039675827991295855559571866082918971692249570966618834481123796304359475236934688748969244925915630995309312201022321712553968639093662260553216392623576906608513904559703429542725118106429344223904874727628849775074276978947235994437339748203648004486055995387966587548227193359253300803448480046877317857736691937181020831565654244424872162607260089446636226700041081890690331323148534594003333966492670834802818089433653540795451968063644156287663878230752417098384683572151797370175236998454516858861785018121516601086624729546577099461757523844506152383041781754606721045706255035964376660454903604495958350202141390306199085744219780214548083129350776128685088599047425157791586598683765060191767800579687403905211031491832525814906647714913105902797871490550046957354148626922591240187984741891887040686630991923088414779014630825889140936359003916822147377360675536799997770453774121252785189404859469525985893479066637036738377753287125567848899633954304321806602933114769494933833400436327815546545247180735834200960066769050133109674320250860503006159476657702503387982028852165447118263559105668301854356046347431344829965162673306519567189837479419320636888666970400899755913379004285107598375160793750629231246764953947516039229788689365078647786763186095522208868439321249741421390017082302218407697197553799649706336258076767548995607593708768856906934381465942280847241999226156572826935825992792841177839431619239517249624563053073462623143194512104042453284030761547152086321925530591403593117558921496876386031987079642463639931803600822592487093678540911344967470629024972479949374716472021954341107355179712265600338409560492064673144574617766719834805536554768233392132763113909566717211896346928630709151595144730747815321409747418120852337363410295158928925959370214138417349626761412268290741507121834467509779476776993605855090769100593268399214912831563703028197298393833982084225956870049392800788001851509043511372175920336523426880036219058139349194306543739222088764219014098282604833381932611720156939389005388208972831693644984033205500079298788426977503199768171509107263738140629211682537519527746244380635362358594483126608279167417568689226110143440207091075747810399681501614219359854737029438454621355851110867477135247880621533370585386210807823960939196746466253566775417589149491603652225897021556839800707898091776494621356445357887388529986429106493256727828813177013399304864371092814104773740787006699926656310318335327720528374075199485525822816655344854028720345602360837485316011377681975097274149600346002938007982541363976797264606992146353456656426621821505216972552546254772182296405605917500884849330130043846859475756722413286154470195902090364593466543188459366325717433272887209104389366451043364234802885056512788472606079145557928138189229770366193381449843965633630209660997408737273488357270274119826660104658890662227898440193067201850549080441152327708236274138429824983148245562510118899110818018302444972779346813843854230310693230477990867476373339006811624314009910362583332107023436484047286487564826754420744189580025085504345174209532216713817875456016663038095821896699959129810106867077451529285324723853349618819538000866942442607823175810495375413215832318821024626431435489813376128713731801765000223967161162440497381693911278237792314657224815841760561414630433144773161202975216501112708826268132983011233773614857403472172762046963731062406487211920796270362589120838144505699740986490233997260289639631682476727938428497232318622971010546564722344767170923759813661598579620273339729708132475950949149607644181409099663860833726848674443385607667534602077074017116473664404378973925100879079603912423226469339633496846305979428099642271686025867756783468278332892965049413376869379900323467193925242387387112927261288377663028768557912353219648750620099195486152936860904998387244012257063329419738465290476450831402046474829420002762006763042475349277409216482572308191727664084057919788767129423429951395429171429088611427985426736615247930093022252979497271233036298661451180511276269091544495580383756744000408844578709724981227983491543326457714696005281511328942491994503361495808879048546934820731739256040826037753671048190235663304959598061741695314680980972683727619478975560862685346857774083342136423339755516340528825144690150629433943098369534548962964654072044788045745729004103542932566542257562715196488717262611179370500064743310741561979314315351737847843784621560079578441604105671309946100940082797094051805579699224026329050573237065865428573243325587834572181075476353795201284144938459275099161293502436286063572832408702052650914028487450696695224994608494794660132070483990913948634589165941231501796394370471209991159855001407250451732617986054581492140104106144793374653868272739398875157972693422946141157104187725168499079097356771813221500480366692848526753409883075030279875221256604807391962726463105735413050528091800181747191967808748831217838340733047428731258270877421619655661869731852955736778426260971798349552947623240466446217819214959279245690894629629283501076220223863959122799346311281687923287748164264556797428158028781998720102856838624034991832094224869995765566992532753561807112528265746046095347251541503656368112257603515702359339073096397722398285405455141982194042907755514715519196471101031091873317710892629859574161104982804740224014413911052638981246793881915947796228924747708160088078463327163164003537589619109898392246969106263511947459404003385899352480490060412827116126327211399159295871000890509115372553505193677668176204271474414699007138212246135175729051499063031632086367429349836317340961551309835143503349922230809172892903059405877449951677527291348381423329235872560766589840537757036273569934474424433640752534105207971424832815042508965809112037875616463542483722805535778973258237756862089951832718512507362380179679851493865469604665217585908745309416648680792342383023408806491153673898692506199140810386612530906173263952813814756753662663346306686782824616589295086980944847962852129012737669548447658328746655062757811598366250098580027600574390648601995013871550732493380455566377657275311496193911694342758822991606427457677418143908794541251877941258169093086364938781647289454215407354693424655819172847334640312615053653518776622446673160143459994873454574463238580504655976748466026435817736588585091659571585283831846679750024269335523926928377158844775977660551389230653217105122883161689114304600440516191679354048728649159796120120236714542452696905676767779682644157366636122177734309239314377813712856446375732629656497574504509420402718400236192470616716646522123820734998941922829945318446567878151466146733418120187867372920207619332481606405829101801121006751433912525391111101122804276425365264585797484919553633267290307521429299974758616254616035947212364556767245825638197969016419981381934963980029517399100317329398401012156203969957784146777781157963698491944720858273731796188875105613969948663657262533663656444101305139886625711121501448632591445064820305597555372179621875373556433747380644767348058612062879048392964321856525373194824849832839647103904708076789887223338110275464245726520258120479238847072132181859931429852730791232223707472785296317809593835575833989354975649316596233504474835397243302654380119463473229103387428941151037743445081680064712897871233829907192373124822901359181116110082277976129602347269374161029105709382625236060558122945556329706588706144207266694629454330358772208577723172065007777482336081304278066856934256892002933027413462294607608924706035989504219572925773831645876722078858691236346340964941207758423659289601685425696355702781404485093204445956704681392865114681282972315468801139581840131390932543091500122032513694835653684085736436177677355884378604382865401953912990208958192813504832460140623169239350397842984100493520644555000267722711089196241633079721819777064425405474888397407346499079379463204081591368129101010195422310035783129410443732220374793633041942091071451793546239914895520463603432721065055822879574865507329221172016131908701703419032640342789698752981500186504049839273290674122934361741079567907954606298926984702729589695644474840704949802871520534662938952511186733787622989054282066357322129185859942955544839477785953261317583166054337031619190250870390889084966862477876679964023048200982623727958650404558994365677549182674931840798470817881183247575857790056242914422859706237776747421591553115344990438676973185116530135089536191771120541203106999348758402787138247446266743962283014757718787713711253262441177732439473961449169113316107923862925367146681426894375609249851375127403979546710107176773951071242745520954865550907079210773522448729076928257937628933867877386360557863508552349770569937699817474762807268841834866539393725848597905000697313362571016326838518237429948095076513862079196358526712881590763216968638452819735897894135541364299082767378098769859471909185330575358090208872174912729102100689946429830619880963827076022057552393629011000700668618142452562473209046847199418941215990739970228853511956784295763584931768725940676845140751823068960071667013734758071546315017550515178448880177101368812547219022036748053887505019491112368088315548338979286314869396881502315645349370948974099449848990458897874392867816508883922151012186713544307064001216700763732986312164554126739801843450035688003103169684651791685718897842115541248202217258701226767690511792335440702708044345622433494831837427747778420839116140673077844397656528235716630034799101640648683789861620376690350588159382013974541724842592893989402190952344372136483535945792352027485199780023294540287144808220689896783512688235558842703686338572372660361582577955712693952779509123834102213324385292776690143766867498725851760446888227921886492383757443545639383664676838071256777648373642489534705048518820488421240767628363901704832279326220598649518833225928792525702592771600249876088014769648301424006050224358850516480161983345611139169340690632011945605015564842287956316901143938893399625586832395696518009156277048971965077689386015923341426097258028234820954619133945103552661512532127836938382363028016062433839909938749272150873956498707963633561088139691537460842080383021944040764269096266643256266345310012032225413966377211667956679629027389251422609594508390735595864317363572728365873979129283359107061506060373608895061373542848573839532473636641865081094228686631731211918930852800035298355456136276155770781816055103711210222722236775212190760922380145015719566196366745020010147454875159821388334065836796611588354922195981419152722907175906253534924182677944895427199269691711043588760868417090743767344616728693422925882679945708843636044958247769951546681850712474550046723038880505380374151762838389389295162472737330699603755897408430459907086219413602192953919379284535435139117931771546609891038952635434377309300572868847981991611602808357423193006319749290632383824074505071757177412128571023478947344236070731858248654951039682276350667551886670711373848102529617997290186164129201430306568950127585394115238186627872500538945274582068777742934392934686589976184186040598827494096725095493737861583402256484121037812197176070400377039725306185655193490503151135106485087244410160205248423137328571552993308936756102190660542133935104956455350285120341852167957479151283594867405719017828576003194193026599746190703747857454074602945692056521272055152967083442239781809046249473031168428080727244683362111911119432083970372373907879111801504444185696498155138062878147303301583963032149999210399333792541594428285544366214697696645724444891555240379194874158991726222233303082272592803954522144470787999509790591333447929586503303955393649811851756551453545269246406898281089742973830370581194339996035007746277181865535426799302456287861268908804191633001872386173800012154861144905425150880511022401631090616766617947779911872428263417826364662507311249733203027803785831373796658915061675203361303141424285820416911310915926047883184893584717242217366228963869121305796649441415455402978962080449531885776900701442645819443820333382970499863699885881996642184167870347829513567803865108769460052267956030908235540314100802046053809109183945063800306585942271037545767365968145434062460654738377993347261787013787048915912667495841203091717993333787170930619073965998900879439287844202072339338422362691413155947529699345310160956065395246448265782424535940089993798475525030414943168861888951637174290465194952197166363646909428180402090208109248395285028224981607610875454935664103456767382824897413789976190370407640217431851051471013321324940834926583290251988453470998965166645320184209447827550422701163117150386451642065388307450351675650155773478584353505365202829434560931283450285660016508285842905581805783409864402101447499388357433616837433720388224582670956840574921876280051678118412768936203325883052325936523175764060670834057264400092227585399486757687007824597278911307078764585377440052678571936820429489063538660103069113384134610163180261781237384294965677195860319773018763266700725426883823297655561398795896256823592434680607969191155919227267606855502057821015169750970426566135522115524970079756933679671127416514117198608478326714032517398051018217505514623294659799133442806908407961504614998322435049719958460775117251184189428816465546972118024305876202208284338379933604772949301599756534709220362736352471761951216078606789900148091789138443434949496565126429901345540163540868633552402818062562204243043478201773704946728620897418421778507085795284833466199984184997714827509843448437864173717571828499546854901646529118597537606954090739662987565440101140986063575748415897738450171215405379066769947753646593786896804163792041579194762330254760765604647059862014386695812770561750885094764120390064162357669514705624056980616517822791142141160548685496114048250814364376388927762055675918834688684371698261214927479946718821992004200025458092880535474344101026617261600670680229551263458741833058284807716921955705683830437594670791122502795836057326942721011256601680397765888982525515352672036989856143434120098435269905750328124083089321978365092092266527231864986329217586830486727062984147445207953833655339864523013385412296664441475133089762253750236072232223730271904869945733147773760185958602133733608407110102895660797644775983847351717770559779680841501650054631585941179301570210446905533793110573922098352186168549518308169108193530899309140859875541873180786730683836451876586865813868291582592045570776686509778713193525066225829816762907222927792946167726324468012389740307013029779411173058368636726968957332000464967476782580647505124794567236623840103742601758740826951636736931588256958284026512580919408798638376696484218174744346843447368638620955517809202846933707410549575974792022077872383090696623120416110216344895288808974491367152883764936174932949888121201807765047667225115081401371631119642855188021599288824364202055100809108239116867931383643229630438150578218539107176026125390092165390000320655299733838310632358892206366938776176079320420303382720940984125279283669628620574090211809903887717058632911413602294819529421553615855587999987529850473528406377232145840077727800837916829072661051876763844695761298069897003643634361409498438308566161020957754794621623446962399488879374306909594175898279344742186780763825621515611004845942354139359109959393781135158201348352580656651758358348064576676407230215148493049768512734686136922049350220671438461274553558600484347624216735236264142420421551920861146640833031606897256391570611178218891691085566697019455441749819137233238155494241907627809237910402604923825477798471084704143349489279257639479641770854903040107995756230656840267251224281218961557809239254263950970813283597954128090811806767284865277977117694812223960210912028530745660741189863011833368780017950110528101189135634004671172114916917061331334106006260349166793198548055629046351573902983318594264911946080100868130326094800548956268206529225194125429225086263471302556397393027969762900404174466855807411576018129102360940593677056598681608425360943615023030563750200629104582049913789551836477095179724483565670344426514580718771428236866719001293916337785209534570758247916972818040621076943269447899389193752956666002891907791080539365872876676930845229943121404002434509579919833039075873354232577612109140986409279909090325340908012263286252560342229653502223686497941768943564747995125380735730050906537257945626463375345359581021240907252591077469092320384926523722214692256876840611449554297343186412430156271777132411947355823338306828489483853226191847294854866634241476013053973318311524177784124832342561674951075723093796841305795066528893048102085068918211269365463285897834325957931068525682067810409109780160366282742994747084610500952074458279036706551279960153972579699162745153206533695554712658289494161578955782129321342388082324176221173078149460989978076514251139842878055804939452580368727135504368141794964864918629465067022727933746486735589711759558836830987975920996204232846311524836360868118566158896741647861664896753049948448698822072801528650194661735125621788030991353226882647596223354181226089648844395032781522228721106880589389422406360274083133680548556444038521985544857885602554235972366564494549021113467992761389751197927893540720705066177836044308810458999270511039961396076129902822020005545112241120720496773218006561379926528573088997591105570019298022092376056215596819270412275358299974765359628582196858148817149569726291489568979414435929959246783517822013695240391718831846298610687697713926306519161157992001894089209707239336623322616994309514499019462426290277356851603852712028654489094568937488611085819754597559081189118887280160261766041180027885098223005814153629996835717406917526208970762066706580092350092019720939680931190919306894210276649783837513062852097603345081525778901387505202396661898050336294234522641189148577343740691496547966607143322080403222375104670502350458930317883683963413141760087007447151983939934674117601814140896341228222671466078039862442972361067439195034894175457029404313543565531788013403155246353979729109415695959150073079641471023210757186627807751867946248652558694426941199149982071303936239215380411412651702055941665234581550545115079040888547311163613661330970319121907875448908920498482882646080395278672142884257271739515825876063081415925068811735374229009230375984127679042638975117690011862904193098853831061069532243105060163689799410435236231278386725144858669195086674481342081277748926180544000887463320295619872969976872896659169570284963727534954229351531494782098169105537309302931151284174083322589236950382031908724600766566931549708062374219387605506944719050284795682403429001383868242032634176558800095967887105355930803935814109435067481741160106327941007094541326201231675005871609353900255004824518043465846433377818805075589394823182481271939907950190301135054558716286991465862941818092378340090025075523347074905651985879501294134146652758676802358580602447938520496865400416294264837463064389572759866340093297575028654446958807888200355149517810047389323705013924926560171982787421753417345893167908105592540778634072239353028374257657921431903443686616610019050241250853210343216557491339855686436937377558756255266374071389975466306838688272928056133725387490241442253452627365216286767906411278747468515440523017115667565096024122355001913636523310944082495207847869296983632267502138600484055646214426310120807994605591995304102071283561512950094539999578473635146425698818363052735957043700823979288369312933404746007833840888595173189210091766346853250839565678902693585778552321175308444931039804379665282118296132817885773182553367748579940817978269758975135584739179597398631536725934871451201882933492716612147097259286030000630477729358190227744721731404230637332636202406797759298183966791391102796752394055657539153629999860068945356000770938554350609942395096161900969451441344905293672809171876883811647038740810158000762695681210615903514623522356585823689202941262456856990579142902159405098077694554902167779685834875733793867114287219975647637612374183990741816576949414195611178622832516817653478285257720533861320871665407796765177811729999219721084427627597674591624966767861635579858664191009467254691400471909770911057781015033921266066567165662332296903088480255548387255254880701811067266069744677652674752697845297471268926418943854624369003847590466571435799656686388398336907395721704391397410309617561635613166947781773811634413040593567907591021543783379232248389154568951405008382895435269881413143863645668229107958199771704347320001563249936913567596691175021381661709221756693025672389161807367699435149333557389765956883863878913307444900611829998626044534035695836059686782078731126184526208276329155860479991096424029158173039612003523266117541508275875436126705581610488545387815808805533722412857280404894948922673816208239683681869167662117981001785670705123854489370886198011022832485292695274943437030675172231236247631859840252536645632699942933315656723907101245234624718566177779894754460781859373659950033598933072797302714397639524333697892296288318658452572672519392840616276030396182880466145199742196673162598263821867949905623659378597856587163469533813568589105319287880187449735929346475759339483323401537886980363997883628801005699416496836397815071760824605357382157510684118985020208645682993636233906200269579645884837093133389258438314049600034428700457187154964212566316684583914179470035774918421641544897061200775525873784761078060237576889124105333819902597274676331974923967018282259872384481451217842162871497812239555872958494853611458158404570290405509566744659640461276002760082084703464501658145363946294475756743904759563857756377469318411670150516165713109138635507338884127554449192254280714597103388976105043917657075770814688990349815901036411299855322427451307538715900599110443255269873016750336114808126126724390305266437601482328108953743449877939418212369998653438801532877033440810727305115015106288051413111599605480468176149004085331967505130854356913311486928099924576203019847467390815380911113340828099451553202258666028295928448884944862243500480729668559400825675616877270300852334061399505868831210009303484467515242655634776339572621760692141439208639939422253135636653118995533006564876980040589809364749144576584026277342333703671614452949453711673821570310823596692770896304467718290812368848736474743221118964926072656757868951185753792987734495326468511303200319384438131602891268120024278900306815771935492391078908937778986582966304166469336565831856389663034248164375885333754043807217423061679876486638953326037916766021605629024282687770026317127601010927267901918521025569556556582955951361375750752844320041537153540076436428307795952181332264319718820311379562031248585722266567203444912750231585847823131205956480292339569008227246906563948514492981032602069079694775380939043684311717643381215085024645595200486147720459074900883914799543882653088537714467192837461320721692919695973729443709982041910902050945630861127265295986654691218893384551629234616343794350622078823734212739533835910971598009815796679316572857171961062039090367724047974041184721139011598749309155758852189329356550213802478990642281987301546892510570179898114591072730153928212431859919954925375002434660272886303907315589774705824846321476172527792623946058539124655837916807181236408544177394420126617971067543345074124280647166225487211616477021375066570081109902789774919429880926465455113498777410459297822023686297998813474331516730522635085146014290174781862359292367985577505301588170688216843769872721185114176238502287549679438893933037762749658378572104105416364366064029245794983666566562383386278807039416565292779409120882615289032768352597137671895271303903432912521823717327400256051830972399573144109982465316617886592402510621470296179658046676612184617118754484006507809697595535881828162133392103961406109062495492528873040533603389347063495675842723844710028693818940465621660923277572181857888476651973540329681519740353708340500643890691154710398312026599219032597589108185732754506256549670965138862548055351536106923167719340922556047834165657237083262330896205914594134852893669221063123849305460403131259019819322087964940331566722473909452285857558558911289745903700570369403823693827686263504721998284033340061978549861473229961850326740117498322857473548918034092874220333927694052670123161249097379100802806731333122660899989665591867996411497451836036196955960508412482713108477655956617732301118050444930465376480018595967290135684349723435937023831927439927282048177842539561902265549658959163627259703890533526678513852813329788839587379708966731023208370439268893798092506278925264086823963516695961548307275412458955847057411994631817677307070553428484602024129524220216104243430343306670232211510019987347052882072983435027599092349184081451795582229915318225361112504999868912022071680533223494907137489857054809892082136053307123655564517842543365965839700640561748835763042211061820093033723511507949751268480293975019554538887163851417323865619634576166050935179849701980188986699351592046811131058442681801263980848434286274210651854500408867979271794676089997159382793268326016912277506384025973823224125126813091598023512163034052778650770290921736084696116912329556537289746885709185161383796469548819547246735589343626060078690272634928633288496934312787332507836470889865235906735008018174857761818557923217506971656128342079010948717546522420194132186462168869948460348455686863170758468368334588294667036338431650838903929108928713870132878348223507202657007121776131394979732853733368305567108880032421830270500168623047033043383625492994751662819440606494860393835572783001775058714289218993036491617379715709546358031159020884988376115582521128562697636491604458178768954191184646315186216367889046697251200262322776182658680276476001604963967045571380814379773319735656796575591887855503972978898093655646793375273715437326701404581465281665691301731272642409159046908815098872747136959873777432893955539655571480009566111981029466351514489177626188388777017782871728941803766279074409995750092735027595866431620138955612715722991226743493239480949875162966813958162871127782909281718956244630185722692759219431916644571378332121930628712969130531485341266042548021015050108993150495874527723055694418672931537504849713683113766451011918757942422221260544235555580411465707458488666478413383216252933312353866596890821349963685272156662905065161082541686491338061835064859953966052970894447472861764891632164273221261001570757027633646700249231620552514867594533037259184990770803387675212067538293911556116314353898991060929436414934266414602574461851727579743615950002422438896481218009968987511498629689294306299235259961594695265721976376415713048790688597730929115107318895676676379435481985817432871760250257592943936295982316202943500387745097449670612079982521165147012686855242713540660338117373859157337505414127884702738440271233887023429456212201979173320202959840333828510205522950942699220713388697328760961011643966237984163408922447571260505146830860248888024760314957350758931912193027707081762949288624059506718951705012451996426267071828831495116040366277302608915297553965919138596299128265920744633682421936787465668158374315351746074353993679079189359334912847073793874149211882044740703075640897111247245722886389254046442113839125234966529460822405572226625714447211439108440152749832468075039985244547227332899096924271588694793375078031841647816808535434286581811121957780044184034998342571301858956873996533217239080728730917733406525919169043521320961315546176615668754022319215824300889466651594634595484361829280219279095905665024054143763947642014166142246713054852986691673338219133949251305093395198183513958823998688095238467205451895868350758001884494420221463833368453815803796622612966627029289036977369730598119558618986399955929981773319899854218948127703911934858878013765261697310767795577227641435336639337237420445786575537495141415011532808759996227371018848878821717908765712053423476533288595676826056975403663674567345054073073967840731277853934452310856431830867729444382934979546758461388518834753920090425149751509367522842935249258455724102234632900625496528551833052146742716704675334446271412094504004278574985652729890099053354506711127110696182225114349471963802974337194310910980961438185716024245248490637673671802569194945529779537724234154059130273342324597822039780199980360064787167033584029266836170017203607835705031502107047241981822583541753885187245108756115265726636874028918644329284909532175572277748404878831221406759975492385556666723768988072093338417002324937129378448946031418748715593391855948684340049759445262827038687107228217369727788634844342442203763402843773613510356273941474947437515477247686279649013542599091737726444798496323773867434709834451099143872617208596079259649836734354965347556453930290526511818796262680405955612834625227166280903893237019938752367386067737026546739818379913242498703171000141886051420716468688308179789276715552985016715565677421573985652995144052789573977909004052741244714805890306035351130613738478658872090038750110483120441389168566130185798306736686514779928037383410050893527084651512066488033856695512667937545136279240962988432857659110278254019170805594389607104094831503430703545986014429567994906932717364483877644260159543464728700129659519953587248636859387629923981828215506408619198612479517879576008078275849053328823559850460543764053269722963086852205395246999935984070644029473924027183024868819274146281299694701496099272685857186000903509889192848228258077601192768168736041541123328442275736195347933282046787812161157472716676880136087514240197298515552216128320721906026637127936703268777553862940492195068628637067750927758928484701458815012226136203415810367739245272193103599556677225499984244884267644632229731535029083811391397560031013926376175329839304179112103237717340426109704404449569420127268548868019062305567798961382431974049428195811208577185837965279635482482791031126497913509562804920804971440113861740006871713864671452844590776590261699736247443577676032459208245908706042786605016001156874625083052757545502997040601379810571991890273200244048527590370278133647605701623560566847974017492004359052006444229821796952069674257382701847252788034483794387279905400132903990263140119201101596868851290994565206217839840477898555240587045018060028916668422667486207999943640797022447466850350305819762677445158190036323082498962282355204027828025131832123623142169737210599713018615717067750912348578540302916070015648445266148467912474463552867129603818276448535282011976706042889800346882823610538484289806142825486848636437974685734446556802550537738355672058384391989010884460650572696432782838357939016283042611653062405290635757295876193362997223269970768017278545852448447603261360066024221122530420130924669694455167557272922549524044529757801159771172950342852986549407929035329914093668581208432004088866087541403232445599274811788122115699950672334049203439860978370300313896192632926181405479067679110825971490925443367072946764593588007851215683673194207220077230652539480447964065082045806847080312788032039123484876054235164441400049826176151480989751151362891545265223146383333107409319192219250077487021946409887887485431080736461329293281611197898050911845861199598322552869745952335824091748791768487344644054055668311532619252668700066465667944239340513576292898220039166242852651203221930819712935121174144307194527251580538031568752847786238867599908276815798464474828726463605134878411740591622480309806969101871548851560552844899695533398018079020929765085860069637703261826333766823776997489957151974167659668798544412902894300362281078303255464523223174820650142770009464576586235970937610057680578782073012252741335589440218259322436103153150579375414557975130530181839522121659421021075625468125885122034547925827035403497558440162829881984942232203967235160984722909068651779719228175067557293812935244739740958123883584887623954300027714437941943688100665596143603947316108816216213711157634469819992449403804427824568213312693626502619752698695708437187578737170959303988427873682977525375054067324087328073110333549694763130154857130314382850999710349870022137725381178302071877891357377319946469190773881229746188823571008437161630436324483700359456883269740566618763451232131477534952670651321607775638943252801600672917187778139990192817270617201907998780263012084838018706147005050518660298444227281686374469737272897633232562798975794971933777119287241566038422940869509067589159875009485875148479141361023452667265153300118012832054413058160452880039891578954750478321936635397794890015615884174163163455240313639697327579715229892394831734023444891055307894157730170424187968981769250654153964001100407076309685972842522081686148018922095837215613194910221767031391917190918020148449625264811824205528378048991189227716074671444988730361881282856099568959150023666596077331261326615425612117366822319709827594707476207056694578397047728753194662950304793694216824622091631248922398481167033043071746575482068975256630342579297233048442537945846896467977329471914285373478641825021076692986026296027552668052895707963724115890086821208703011720115825307143599656667974844126678569089313262758139539870152242565312142161746297991986987487145521607821621295716130830098853181393219697276496149128050095449177831536336216911348601787128294060465988166773641824471054591746062743821743657038058930297219291259003748769978954600879766077024619881582361680527979240145433083879942410283889965553360983444654705865542519401245047928417126297838810885165437228487578256102611207160236798225495288933184740173680526377951052077565543968009658234079538415958932057783834788662912146708731339017885887623195054492910004515187338153063421561522351558037550057946388488965395036700160989394197148973472017923234017140058729267824107617974937527390766944967263795546963687155949098156885192533923020401564916525528030714088424702546780218352529337841755086091284892286356658035634782493891188073585391961615883645825222895781636173134317915166010688046463376912603168847227670354320009330583186096461823403098345797671143144723657362570441967399385547296180586275158762186525530139209310728434136707316341014990259712513471455641914280190756610507971274527000254913506929046679149128835052737866431188283140438742476678793822365382441529236905945432992996580086236279742997930129683234345562092128682658076431580413738951684210016128634975262062474367977820211208633087300146214702538701742706939242236469269794047520990516779631943686855071281272091255339658162712977543489579162039337493952192549402433577469216462492356798394780369330457258556614375440173777394654748384642270681758592342722250694211120317994980096875561368768308720856168517787879749147184094211257576630470674966153968796819834952568578070176150705434966644469728870499691578149016101175810619868990087196052564179637295619079231301239946324866337950527514109358699684407925500804123163306595788009710151546718890292087027021699098209641187059924924818564013487777092452120932211467877315885267922229271400552546000474580670013409271608545427158732628531736347768994098941103943945208950869904459294765114974185458449521163710279268698051459197736577365252631893011832412105515441458708812667036457086644278018851195256014873977201333121782012915411987841062350629484810821051750220060730566187493313987660745155483162969394454492477528003021892963548174713347468127988323322779467572706366820848435252268338934152942642923454699289619222792519460948417720963610119041905866343983628623992681156424903561435076544127971176389077414139635998771758979232223751099177475827341044906491624750124832660467419356781105675300810925381972260015828310011755411677380540121597689205925140528398949589802553827009107065780720019897509058708399552622386908579903131457496743343956425672254769946964785389958947486524855399808767912170528217313179890677363952339155379927651592718002919969551411160486763567922990357148893391794052679572643951532290735792399589099436681395920764022400679938933919602261399154462551304851842692923788069686079333183436698557597744197629996310442715974051563083453171090235637737372549376199060721507451725892028559009195548447754128867766046579144900160929697011002600122758627333698390051613462413172833833003212252436398970316285725512442874221775099113288787795250582441470825720358895653388463933772847093478837944738223583056303079242951684476637470077636330882887852611451295443998306125157749589026957689920685669259287375973753820480676889938419853119992126266199576979086536724660999311092113742024760543829381913034377557593305609274437648704088269235824098260005453311640069225890846742534052376620888117603179256797937729097485209798066769189174923943920849033421450332769353154693227303576484657654273103166474125685314088936245396877495404729706780171327485516590617730868326218839088139043055719344373211919441765548413358933857005859107503556821564265025432825111132201763064693591965300514648284637447345209842936634035747893256219515870682050210312467005081036175561337001494871514772791899759580609794223022661143876627848662751401742381208025187381780084829095285656806020903593866756450252763080856641016787565965021376232810687063581848949592695168901122730898088018074710768292458709377124478494557692418133268126828481493497526528828592435717968456181230901558198383714388089900824450370762282377119387985848837347341057645599662186664126115746563363213372987540897950873468092972905257348968129242870796156132421080596434576986917293042561225373889109483345079568649615403409330273787505479392157956284937829478080866429713788678826472126455668335918787318933663936614657382225341711664074225024808150576598742946168927808892631912180900989593110761369769270976479697948589150433226762160266324840846348401004211803888243985887209585305194709544837168681805986399546314731878237056002250457263320736169895041462098813733801204262103215512911280385854869270630488055581839369601299402569965894704909028486670236487397273243184291244747925934913905330664209342766011978882412799000274468132424940965293169574762158383170878217889627597169326221473344188698973807712297584016401836474497351365920984924335847183898159936027514460399722716559283885154818401288204151336537927830201067259640302884683586449234651434006212051189515985142520001081077319473075807213144410020707517843104733920368786995812945230784969354014396404043582583973663345700518862439274400880558903503557842592814908808052450413290758123118078510415722913791140001405938276063995697800916830114133221002404633378573693261499767372492828227543677973166225398520502111356247754465099318474203962041330089089588764050344106103681994381807694474893688659795151495340615215067517250680082500916203939398007685783825659909101689272227185245663759791933001788813569198522034367847179211254190502596038149919015422493480387865774857235605668265396291058413704869981050326354905795533287380794956003280125840493414714616569415129770177885536959242212349411814127284601568754227772537387766379601118153346525417358618184302223218080854222839205404268617396625222548194502834947612464390658264646687034057811881790570428635626199044491541049355330047859776084488223912423124754470625080172779867017561783518090345548406092894634903731439010865918619270227986235321730230197925791757198246449489799633932818126232770104791904638636923182716794143782126845493210026149164472608050772737520779126785878537791313325990874110530120856261949511602398678443502703397666245620450531270558236773222894840168144300125101507120667208006813422958811894858438892180248143371561773074519363961072091415541911061601096155667969075972384358798309846630390081528647937769921844869112459441907325945858402000741049067811558249824594451785270324338308786641673650320249545108402526087250617730852509258930949564463218736213025427303059012529494580095234293030119648608733450209171173622331418973383849705061184158902282329109829436133887389319673100500400629281250734863538976898981393343371342014658984440282986084518568816057552394327189073072188616102813042554451250676439467805192375524528466995292095910529496792221555501051927039523784834554393382111240008392510611924283460076058840208078485932916811465674764980001432596115516727425760702804029423482031170856163362613031373921207501053579488253227239731537373830334251878567541356975772776391319394641502498233404582210281952806500127534030719402656413702774830837593507589215969061481323129373499818955500237000643790323597620729546594631335917473692455637146058199030996858102994521972940931403546100961009300099567671412993617343142723807149098166531514008411910410177186807907415217267244776123682416482882489574496359792156010985072185683669749805543604128047750983370708975244704351760918988184445214369446796072151785998194110837382108614096727343393381956187840248253624431688626270861071380647157637072773750582566624471713619671660447125776954632012298546435545974288103032157568812510511729948910215893789015102935353351703257780002724689857088285958885243309034809220000385848296154311301624538026527467722769039460525749973727029217255465107825527097044887205023954652639677187042574223586570896096700410704439787482670780077059215502766278372251644565521335328215134161162251191626912715133951721080492145786923621721335230758757349964464217007824362093933737636974652635471113701346760571490347113979178233120611257616182561355857420645923913205637161176611960950340642457885476530790264429045595798845805291669240902847929740969894436610016212575796004331279372106651935073839557322542518403821541874720035173851601241476766080258274131350277546529650225480199844879668468845568018054102193595846508025253425283403289314088710813796936377860493923476936038552544185774826808931852238867085676197796878735340499168083191137902340614600195802108748127455775479185326778259439102682090160934529975040481239272126665700845840780633667106588527741051248297691142264173277440471936869600946285072807843421834082209540020015887773642775569682024190157276738678104136844416073719417497108587450278682685020164141727398758094681135593057638643986130247393038923033468566454078783569623709080372091471971376465100619558914057211970419907237126672862045365986925304797773131170503175950010975857810517635126813401570050044538389964788252605735226588951090519636527327709724396604158508801497230151611246758737159239431943663108186469859574698441751593954593738497297020915276632818730288486021351774368194008765478422843057595905923461965027793094662878160119577340913792737728633292213321534366679827700425762624143881967484171101042420990764790060155184323367270494944996948884289585813582285375599053603016112778464236551772662860198781052168885295419980737237208908140942199274061041527392622238094354424504352993874771708004905029306463307252212787284812363105279008167519610893869178805268831479018302977228875726545049297182650653228308525516901633679785797078545082648973241898280303085056376031303111123558370421705420002205062949991373208977972996490828675491926662756266848592544249595511109119651346416731990656371893760491819318670772874233232921131483724162239825588448297698673387554667280648922493477325244570982035971102565203606482196312026859660443293458920787217434905716853711396865192246356394454920158099184277652464131746578074739950432895132094778472285825974040551282851162889720232808813019737032578116186973506922124639336866281978564082378111487870948775722345436339756941049084826813758551619728856681465146631353654697616636207370867194439907820102601582028061352558966017823595087507434435179194904859020383632247435471569109019946531988830117902678438489771039481715850365570561431862525212093693575459592947254587888150234689752511250332155670273183212077352869447173765855474536357569417577162036367186756293573352375065490502470537507356895483966073952081657205233549263466499343255823106488077077738236745085388903728064371316081574506148641677482993974372020743270913485601917327652345466302560080542136048818709930855844933133527206266206031909046437956336053239180428812457358129554489295057268952350153482761240447715358352878061113299936982403231446820437696605755182267696108503224604435550126586541856153240400710473146888711232052796553423277447954823504813545764149565681260240516479573792517913282214573661310604004326075348233358244158586747246999608117035253315777106959826580092679425639758802352874009818823203184209247029939269760492013492833258434662427898899176694287103648442017053263007090175491578097135880011667258130720277172318943924066152351970133943170163524865542828087880735555755292888590697513889606159103688421566395144479225038465205292778848760033339430812621760439885647551834982403174329206009334522531373005430638151190345822475516697532233942666513175928688113805137666174787768315548824240455785698850376474139580682471797945169393983504139633762214891356993398670880602593809600243084832971733039305163755347646143442247073191927679683483667948547031967053749155758447194227756695922912571233916676336857015761300907673661891911146710928839679126006364777544353153365019169227081640145230268171849480195183231198978837127937438450358296538039612473914893111038342281195114049164316056881437320633597734534997390974240757482251626893668807991333883062404821588500904379032102706394596130680733466546754958000004347090258216053119347432790053608831475985395482242077856608575618924484492624599612496743222973858856941817356030287584268130341558040547384796436543517478042504305954722664195079376748215943287282775300636228281638962498326788657692026325034703789092949313757320277963326086424656261753658599786127979797871744979082715088458635415452709472046286057457777650932079051497619922876775012584668967558844608613341852063293451050970392705393552198191141374527018039273247459870223714025709648325289127542199898243070336730986141414489271136211856991333328263843825949841988700966484199227531342869452033615893148532913223446422732505041115298017686087365269770110002837280090925126867717657184617130728528599385411096917323294654527375159332679834222158092158847918098483234691932452123032078447283102220106629452537261037342260379344077602605090023553170249929025259913975451706366745662256848659139014340189427822619484213132743837464783514147058245213764301327246630092307330613058935402309275347417740156928029116265338599473664240172592690966985351201652199427485319804508437896650188545381039607008364163256002978040793404503395133436153836727985808635249027028312015935087927618533933595002059510532110203036270625402490075946675180167327790541439447126452585695998505977989945088250933802566317605189131245103965921351227259750773018435734339030500332066450225431997369953897391169000300815567316590457030629785301633879892945327113550683466888416127804658337031203217405155772298412874562429842141921641246555232971029389197675628886581216839950602763070755981167252117581070085503998980858670371462531953928145712763971716090275714570950979260181538150090045334793533058967833741431663682379345333017749014224060611702946502036089785420771825133990699137282601246452273896827726402280695159105852789570983063332896226730174533346232718383413523493933045787597295073521111472644790096859063137341075268471537334528512776229191021882482328678788466533888675735397280415748010793581933029898563001420665295023607781269432963730258571542685934714752859824838587291559124831783023101680137987706394487310553302805809015164425585203058905367535523294307298257771548859329840037361044489339819074305025846789264939245940730103407781063481185642555214763004516467500497330733376419946255022766317383514889913197206049287832588318205852171526025988256647018039460326306347639212401798622328194961905701406380452369695843097577724122591978020705057027657625318153343129683319739475050709658548829652597779273638642612481482622433861518995191242478339099427436821740167585415838884599752895762065454597273109218851392552853568340649551682313784113286175411051831992598999938274460527240308412361100988298431092429140059875835196313061452915713013146218719141974299234678322173408976847105418442428448331780965897748009912174965558478522530285075255927881601774327080912348748510664802541679397864726622952839880427834342764949236124153710963114313401219461124476359654725585635572022733100585308291874431332340485147139620134063722711438176073235578791204398918044430824925639556219168711530129512880484186779366569163198778649006618259308203973606092804329734000259932556298593397634998245736487371037958775278670031414693615700697592405864499136579188024247896059082156506920788374009465852039327705466566970636154355106919748672326907970326280391841394236128070824926951463917131138794245037258044697493107693213898948208927911721708231331364452265164909223304770600009984005771482317920760444493792441571032600033655181704124165953196935854648936428131528192844579358813492015005993817187688383811211176135180244342246539124896353592853743117734117492568606590230891472177151934311059387575716769345878825420610691823690695321817346287296104654556158193442758830766855274303637409901065270010211865017649798316722741092232631671711909493501927179078731127300218341311548539146652452144121827069242394263570724898064462062546820466676720613104694586895999906736699662222951677455643761039894552490815395606808988090330024809199693524678926049164677109996125161844274045832507824880599251980360819425021150752634543808145860574759974655640018229236159940495864240316484622752799748979507961013671594908726889243244766701635860569172655610868572801779459717349450358006437944481528531172545300937600461729622235824754999637048307899697211446286529299365282700833314884774251892625384693478545450177340723613743437301058736464572224316734037842888960214968260383960575211345190001966279151491141565669621397498439749746116053819810606543393040891008192908783541369836662856236048402877855517434034014627857324077130976665162585291548515515303074712836272745005925354677316612574811334909227005813990270419037459912361502293843988499504790551462594579094026881780133038410583686522751466738367437817867611553055876393632427633198328303700248694899958755700976910318718923131774787666324628872651392710147455858953111415942785012763200169474111415078757068424903305507442239332546359185019410570390750213052769862494975993929170923407132619357929308418278186171591770873212228925384959885357930557975653064967334517113062654605845439714754315883144084631164934151118151764498534538151912641349418327684752259232692421611825806084139351512096562309603745340018413006409850237929589781906935626096523988265655554014432649719450889039596498093810469512897111240033939408902861047713120922659398470516029013204823881462075037159393331113669891937671802310656081990034971257336153733383443717060361504736767115317394006833649210871426016944864246305267072391792499618604988550651920211035835770876240542056724432546696078547474999231708657852836486459807092248946106046025382558151599106027604822184321257987515124635457053291179619746113277639496765398133543075574497418577297093611537195537755694781526404140106298009702426491897165314557623158660507604241376369367732527803517455359813818847852005578204767513655308245644498636423066897384487065896156173438609805175514615514326239648959098228515135224680517925079296231586202335331988594684350167179343981765887323103988729510446388266354202861563121667315551011014417810033157292511834016944569733732072898521142988747365163802402303332678196673016064598019171324027153200982819968794698053180678499113284296131935711707143497762227479404974781072986720882760695812129993277386512577534563546669518723156900683009588629718531387352424926088819232731093283139294063872253727556368177886868622528027737131337690969760391749074367874246201250363227656638675023514406539088066881487946302722021914733366104694364596126711544667960096050568109948253748612347904345265871348142776279747262282119964525034905477668980260726203170570883130248883106388927523001202026402443217369763618725495244197746164923520299567010103230632285936133315404504086667543134529529310379499583070623166857680252978586468164227478976803408903131722937425591708797847456049110449720313942603070364459321927037849204094859908446288078740347261204481799323051193477104375575509702454298999909183501234176114151161749243087964313892464446014656170352228795256330459064373895908478377918816960373802931863407237644528212687037720070510980302096307176718672534874256241683734681115085082085390145887985951190380198916465684360588751623925807468268644465686304256474326460529765159534362783161510411221736735111484535713793325507019024030332366500867550599971028091466013651596048146732222855194506192053079169905163282264220194920232231513630097012261680477692271240447340536225512516418235799773476011890622707210291168652058432731538554704474061564852606908442800805338529017974483491304205156842133982193088339784295620313580074110979011767053937777485622634191461858834335173149483475444605642882875777614184426349775079077359217815403885675866696737061493819661192810754086645563072541893951282499163568167316692220567525367284921806061063343198664948656882571678098799598748696396231863383844498311975186317501274066132861621593412548552715396925738026529161598393558644080004121617091897703605947074134430565647127063804188319951597642155281321766325506792778615011497857370482273728526822355224321769970422337510833108477892279696356516691207881962258989016008911780781798076827878829064995729889261434168400349732087291548968507794563404080938474578101588530127624414345679807235944382594214121268160738451133041875998523225938686401524522561636170143038408083419241078402307620951704971417602773448954923574447229292441665006637836658492442945281883393312471990324576498982876881196910449975636594179151811665068567754130583089643602858223016531913313989621370713297398960164520257245547062960196120700368399834626661800318600365980160608773276691084350554462129843536656364999558630925784548760265831210429158144170169118929928344607754550449020198805718646809191574543133829022518842464990245720932359782423842099091637811780705139599993488400283533746296486564249213664725832342037595399297152267482575548043932582649802231836468567301953821774626085848685346099945154419962180044052979133454735044487138800127974671363706052210550080454070233816880735146856447674011108515749543798456984833988563119804947027848499610587449281527350897273569344274388067116428281095750490143019822803565940706020207637146961732787513111628722792260995524532403383215027280081023835676771330220410241865381935416447210379614951852129414808782415141177193396741986646252457550787764983983126497631148393058359890531775551190980357126067997141656476963255858159656350821011802676626359814913486991896147030491337926199804184792041894494855417169426471501423107869568481787107261051622510523222181247048827883413177006003673275661810842456871019541017219473874204719838131669894388583026086645357553424122878029332841514272251758262270574487915435570861703365207346960198982924017391787562457462808719288769472793980012478783754433469338052740474676551857100415693580698801165509582765622858593114864865501038842012209652899463911917245137435589488695566803016225202351762013013493819956297844051404173577316406637392762679665558361475864505132665203554790672206290558703659951784662609983954084971866836216398571785303718198492483302964929562154516686447623125365050618906331325449310716429694505600329093049235952359338582479575719602620769818937907688351329924224868994636544054051828754108571395174272006953231220310903549311821386314638926001139912027080324057645492428355007484857345287593809031943327025826981966281796443965981130803578420854979959414983707849555283903064068448380604180781401838128971478246483761960110391240194674960659324745766596152017450136161749039753192065398079354771517202247683730017532664876007562792408419171803452516202276761408764411421700537981234323623720118867184614440955118916657078370601290120795146366926301840854910493276221609915559790622567093019364614596597633418206886775909075856590488835419964874202312501595990151057186593546461570155509462782752348068726076933578111549162782660590434805155987002497284302739675159170231322473749935998814354052147536542342117822944368112542719482177462610043435521426537940291654821899097396845167093346079506814009762797192046344483440308601524240525394705080082832232605844022333928791963881602170965671510914237306205872461135799891984310564637044014464178170269494157054251556548120137059215597815718081368301606427792819379804735021554291708559330897235195620086523705488745434614169182483633720288491142138301500728061023887696959966177944897351356381106480275214311519896019775129913787847926843393588097322563613898910091004226850826881337375881618559993646461406156977208811113334943984173842604992167482058851909709817293632141096624101063219908683519633012417462827248855278279705965770306400735040717816627747990211928868841878882532834991487035712777552066665976649913410588828420828562414341975554624975514407181306719550801064606992144710892584324399684863113430251470360255844494375077286199610109892163763401006282374566536322210741619668287108669712721582476980126727202910608856078326894521007069195720826091995508902466597219791838503947809160245400666467854210638756778185202080958452793981990950263014893756086835334644043157558366886892002051273763846193719600774958352407452031471381068011426731255232358108124955990979093100350204845298471155135784697239947664955110187983112214263321720874622095146674699436430095009301180232185669210275036692838381286150532941387436338689988775763481259017767635343570601295757409661503799926148642387784886217439573068858988295697102086028633189493880752869952857552366936624714698362956314348253704042754093332843791570839402274167762341403673113403572367629499033466380588300795251074173183768933575962414192351707435806921150283005090645701830412051402075703088896247003043641214118173253288049349024092914507128194997898240527964741883915458984951808698557799733730242981156325232713328138413089798923535827295703298098837091422842325038468431488147253917352857429701575374408458764654136449065054407486745533333120029356120452197290814630373732391786456092562218493076706252709249549366352555958091900611779194383805179859055932971001194675144646657142065481915583728387316201269079757240796446695166871976128960318930561207530031919940350056087207622623474563036120550385756268155308891270296976842866930337939857643923745385462551077066948879063689727522849321714087049527066701320860197210210504847483457185000499140269222245955702512645266414614002895207090953821720560238404340094042215405277729011088522610035847292184902656259749074138689996465146929220517384249699671513354957706458954139496293208989010538897207674019049048552562270954784087168578156134160417228513655824283699197323742863520633428223088974441701921780661963260056092652499560873215924544543104502969257830336738349383138739443000498294477713954032603117692108240215532707159039848482423048347303411115251341594113973241895852538219609666083247343419557375304281297831402523563900946890119312647503147810501297154317029500994573190522372165315183811292801252318883054998842595371669143752128810199446255905001856994913343664199325616698545671952956124306726799506473461579613978575234914236726753013882215060155811332163412366009282802245389100329999439711509899542384520421288668568390191844009603085565175529673026075538133232983026408998157653463480349439040168560942417069691807830957392937357696953542153878152748398847292298344362308187422782084817321032175855909745238562511731117860948260131618520589350980110437991434328942285125050380426399933567826358392594845899138830121180455167518416105452956264999530949699593440410960226238390100184963881303392095735852934270328740342941857334560418979545899195628359136501179049397589973777098936081001601053376522203116922882657688238622986921607677669815521634767730643326997448944844216287343006709934904365038833465131071528219451691121629322150434856482467244909933153580742166771030162977837446272989218186431334601017435941932867133128182036576869779773504758166833355664093042775736038745537027753037380374051489150269427120482677939241797924605977091540983697731280580747244555215998117712473070280522860695372490633263183635248123596142373399244678517780581533671133307704906485318654034499779248883075933707623344372886551194380577032865497657585672328807449910099248372312486882494902397607228272310019506857505622623016242169756286294093127812784465949875025589683635833591441591110576850609885003725824689763636266595807197371646784440035512039599978287540338721418780989728598697017522702090148442206537966006219985210200602138856335112857146665142897606784009294553080072976750542075234976976108388164258420195207007298896262041301116528215134710344427374064612425583735479187058971411286139024364072588231445896069373254125096855471790018790540679680510530676162286439692017638122339134485728978996617762622352012593410865214423535815996881002018759628566422007776218819201350621579068052059024490628350382082775663872346480541408593981699840417344193765852267841091209815809583513048783753786273976230405061656141612164621551872376012028019594456331288628104531815172113713421922545077582769733696206339668079866715807061373778398752930454662040459826387847708782132581837733247279009375810114166515528748116312551826831162999046191180434113796428180496724056449759925270462612334446772816525719674433464254623844489930074768833539412110554095955185620529518325984446807343158098906138016624196361824378055370720490184382302315855937225802433673516994649059276498726905124869552808407051882662801010967861245416408446654592802562971306648357761652039040085486964201369401841318771430031414945766885042364230671977759588819673257761883233421018254571700842643367532105262275213535965224816573110795414024157580731155477875087889419899021294507456259626979635887209796351143478013853347009861034327022444503477341753713998034031878211928359801757503702407162485856095470726627645998186093111963998321681826881920007593943179876609301174166639402063453580629805336513022891638829758798721789425001354359849286811765753584972797143878491583711171975713053497558588239764585903483835034646350708232850291366792635402171694581287751707782858025344003529820200636934246085093482600422112469826381782297014783859815638655003913618348537700895055679305650570353454219869210234750495281284537457221515794448942297655092167900925465406750847015078410428211956415102873363283711168787176684659362054324586774336388574382642853227630713140413097754213649510576987273645854161122966653653640950725676124613911377382795826702723222933864996025672001912558958687415431381433162679469456484565461654532793001056422423310682362778612854756926943755631858624998549858304438473751409679826841094393266017506937767796130850624880274797077101663342186911971641989910078846367384265737535335437227333668194485146875689303884178734797137727810653673807244377112261455542552935775507808020642870356769514464965825777349895446430827821870433941417145827205293111914186855696625340186492521498296628902440695938086282386227520273023040175611016194382059175699757508108901140322192625957935952679278892167856876659115635130231307243583175937353562988282605095935725652594311642448902245909840566382572244756622125900336885595882965636257607123187628043436859590622272110765683834462546915799450903706280445792480904234278366375773188173031936430643152675438259700936049709506031651780935755897962236069003228303190329349399394955933566171334291452364833171830781593556737858367402699594975735470393964975734497930950932849162876168433611559735315860355806998475455114015349587637921818054179610566499180473809237577166696964817998140987868136292625181302620624349964946178265468242400843986472111844987258139603780120452309639737450119359523738804169078827115060585541374996354802590016995133148657411009364526479195135371153433193878516821944310771422702192809003448923591013355745572286118116620465979924834422181090129654152897649245181904131020005180869247144599537307712000471722113512511796633399399546361970095426810552119559567034007274815573133736202090478092980128004694903674942345736274203920025710635312009612479061660959748225138223474559876998349920587963308400146482795635991432940127339858760479383751267506325777935783024202055702702065290231087007877618818207890035224884768118310082194641052050695906685183589622894961481465474455883890418379574351458942176559106873520433128276290768658840169699178042861137664526918173836338040173637552170650741294366890123073875068032550766987590429833073492789265970201959829047660596747733577845182585463094500767687902283103398081911593366640858741858106024874832456214152135912417936855105931157179519538509113275205439309435824167853837045930344594673901187645465824351120635797782593557797513142521600321060317044926531922397394398724934673759495854449282818733253083615628455036857133917246940663117788116493547173144710569671907146409576441297975983965967884818793730078321514079979635390437693161385492948514281907483395088386246577162591489556275071640403872665776404184536185243985677887032064129806698524145350170432896352711690334081410578286554852962916947466530142800018679201302140493299142131268236364476161555708784623136282983751954586121788342235683985776311115636947940126131145897926701243968737464529246427915087797166895826996535088509294324483558858601905425790290651000774138384332774139714457650095881881025461592184153099569006069036406687535162772469294868173890531465595953801995875294988520105909061473266196400021928733522021585650923589416836256264699716572168256890012230338898856299387736772779619856884679157116863013424811757589994414145581105972084664868637871366967515123186016112211004868189767367862187186105184504173581050435212679500611610079112897484080542022787627718357867873725912643016512100284729841956736902082877317151447435484276635753031418342880835861382968577831651597426147491975251858565529993647186419991062506676594679767653052878785748952303032224047004524813844691265454773728671623369532335985844360447164216280379189582983696122234540391473904329192863768294255492290058205275261693083427590755274585062696736760685993885971863632984593510512878707862411163883774256223461062904273918361618902340300468755974615893905399204876993032259084104440608871966057593520892291848557589005006328436911073991821428256943919664303611070968637467586118935522801500952647059250214165892527930759145834564512698263987752644335330426456338856730428443406422259688082149774354781970648634060287389555241272019283242238529219070319839192899104825958523657284723101576080921577265816776564669485291750653098236998588938396468756613585536170012524565280098069955204515051675290335932708440869038545415950960268551780531842151583573737887162208058223589025983814456768379934996576104790209853476745165098772859170671167733549828336596625848722633649792224420884329390950860345563792461076399586380630455042346645861509291372473619231834450427700939480333288721726066478539628567883457087511848889139710488926704135668595379942579758652859297865980818161919013455455570987750268475452769234040954057966224745058379563006292524556701645402563382620341822210181728012015959075062202804832656723784880551998674866979424568356827919123604998422084377734818470285486628089762530019541508602347920058232964466080259420245351160957149744021045487085028899780281827402178767306102972171250973887518052899920538280922738497299192409615753523893823561211850895024999678353381091683147689584833433279683909513017919701752623903172759736380011939892594702952214253653509677642786293653909190617600306449006128980294825658194352861972747626877719514233022096615794909980399072949469563175609061582705282665409788259207924134858556096503505312143868361309289801883043417001448118306093669479561285759223044058188637980598443258775940634656725652174565954027333371006313817378794074720724868132085403165310079160824346146368151268184689721038732170680604069613004015988274623599735490463562127524859380228213971983857909515361841552186064988090528156828301372749236360977461364314429207736650228912097955864911162933800711077908821421478941179649440658994985160886496671556776321110738140619899139518094332568159534641895558666482532120163653192051829910299202492914659640560616472005144069251127420450017743281063318983183850112359053277955975084473185251761195845224214480716178655699976899660830079379540673956474204941305262508646931865537181521616467374121347170843547433613812339690855311115665577826535548784778965002914928142333444214581172132145789925360832686734606566381349524142130727374172075037043447461558413442893716277732135955143475116119460704290176051568016276562606793849846281444148759012343602225193265297525158832485001285611935954599097267069489809768886998232092335806890449505496013233188903305312180772788671764128940478429981053879341482291492953346027100701095128729577502604053019210019034587715637768854470380019277230334584946401839205135727921667387004293805795734148980950935255509444305227777419125607423702265889758928256524095305067826070922586563846032237366407526662901673852747199310488729819681882212120040570650834066407643268073239577761964419403657902902815490731985733927262593709204795603606125620329905254245571984426419616270483406028989455031578693067549699499176122289021186677816903548623114900836750844779138151102870506667216856081268379533911304471784598166459031941113548832924832049257867676588488401632487281539133160428663990655063618156335993172534660230675005511739009332499090711103123851371554636082978725183812036890705220144357732122353108063880423992077367914930901944374775941977640750737239481423090622569670054997074800153935742210644337441908559962936098464466150210510161005065126999792300811142179863353236839734589074383889328240483306502629451310920072837337812956357737415436381012313291013657187834406493059046896141125401750840425115955336653045564879300440464084804827432372296714670187964566934335970446298443343950202214716852414654407348701929068102728421532264282834931747229131655129043479172165890225395429074310351711900647444400639093807532951049024726106479659871699795523901184263410060711908199784486212451948754765498824463360744225512062823460757533810004682364831235909895211137359512519695416627021797333833431051010965406627536706157995582742880228243910864829041787064633598898840897528711967577070542372196400076215954510005833151831421593455908944817424212737368753443803769750950091809691764196909931147711639564090725444395667545746384719246273928829996902458176996947501098172828127205710925996580115575537645056085545809524265011911127202920703276216596336664869589329122702313679767947982499981722084155747093340416026126619031876563361757867174114627920987916676710399729445194433363563881056051544297809278732625571241944694524933499497701816534501940943402475274413094040977855274345950153909469051663235582426849672418385688190742088396604610897267079172753419276174892433772620488789987542532940288879041942986561599286526462354425527632678238406501327907516031226920105025409018005918465192936073967055115418107151656890066429621213831270510109577988442930885030224112497779843445289325550406307294588722268845135886122643244777271657946479866042257960572419890214497259771011291821036095268824021384355717428946024567749554879730811547734347116582610784247897276990728464151975944112849768828432464040615369917290254508248582323093346444323054428481983655751460112492763283076564385335657850815535979739345750063907114260998862864221043806877257002093386828852945334182734484025161094910411679932914420026857912605083478791979387496782635312383376149117200172109416100737348069925777138174854583974917129540466905387514256916038334433999319667909365077663805906826460531688950038649561284046170652103001004471260486850538590050864038455135300366555853122387531957292121608030854743502234901886294958767758520200917988047174576552344197402348197359720849128935215592896548304559229017263430264793519394171379271794557553514786341813286094530837720268894219991835978920333855863337759803923612319061853001452767980557180588211118078107521886148074991752850262991630491619808776084855688369617069059556530965279346877061806955116039585823040801623435894757785694204584029197046000650360310069801923744931379461305931656544746338898502481379820987706875808891580286124642755432624602781993319525482152649183147986729651955990400258982843649992183082176501398167971021014162526877049184457178930840401295843438716987534992981877046120855340457613636367008451344182562478619169365976228587442628619482624506820962383853402698211300969669539994306154412873658674709758410460261936263070883724943727544971329391518002404709251254478267097875353097085679501769315637423615715757554166307537584357881376154218730243966363373788517001320836506925127784550892269815765757685370340724111007785501057952326868544362590633097232886600368948378244776303014621609103653437735726738393823378789919726866825436835925433243150702153555589722274370931201126875445963376365183651300185432330181101792982950071168947564650840869909608723443508788857858744616497198842976881929861757035665452238004407195429406661144369696525413306546409969814843616693797205524353602678390340879890432441499077268657296075116978900226437575924533110645408419519559010668270156028137144288343744555539076212609340411627303214115243279012711912798858328372713175209962880596742273927089255590264752979865848479455925967696596976629272990941056870544204646676857276843277413063139437357907785847464629076958742779183693213717547464078374734188931478273166921965710989233665636715121301010120130733675052186283312985439593220848175918923086702536926436655503709639954964995539605190210668589578661319484237326506986758250243941388503741973286922091891246101512737535027972255015491637644605638607788851625538095956627675204527048302448747906995197385447841068069702882580265416328030735294798161195314208501168832809371848404283652298874188459890405968191094708275702845505440675603521725551677977804194667325136551433840903636273706311868703845221570291529881955980512663380220637928576247502459756170645924035788709726178430122127770205253883299298723439417307447095531252818615855289743008764547787212170842010604816920287435838072555517173458131087241630757310703872880003051695101362962678844172490624654091412764805176834894390808575572137753215172440292035756352946485912121630580614842736774260381319569292266321269916193028904865449467132699996429899977173663980478568118748362013634728851975648494475280842056834631785133576701348815090786283628029731295077636887197842267436853297392483018784542574947710929818637207295658889147198824852192162646020407166765650369984912101435063516974453171395435896970299122404262550123863460524101864476172630670292046258648665916481811303146812594882484925421589340737165402201609725181963613427762292506563347710356088110219486031565321366817883452321346867078135185699471313233687381805801273220624056964042030842826649051489926810633904870250659213646658322910686873592258078092671225672484308741344607131965743957822695318577974742414426618060904483059407969634610047867618317825143842812007377805220807090197540983026599524510031072029981356688545111295938015151124547383842318787491548270635751163222018860081115255648998128318337798178439673188684472048318885393415886106437057447301778638157802329255961082941743019040569737283816264130948811866655692424663811915793871035300576895062273076521099558143521455667526596054941767769067516285534252618465379606446475970702836276315413583816548469144717291261504072737201321379157617578213098337550667109038741571039408586410776522020791035915663085670501736409175599705943319219835718054458171012078578986379259708894691846211620292522943768148463404214030973790771659966228521994434013986362383335036973527480984735216577960291302532107670990293825858835185727375888379098271540478233952740763150586291105374490085763207854531051769297377191061564682975620095805492211825345871498848773074458021375094230328124058419336080413871002829123959738286722212805762655233871467730023962777280151638916703430642402689509649757824397930954717691910811984756704951080237544751212928569694813640827828302859759068405934425725219882859945083241093943043195209968910367059394166677157076163921588887070427807142076960029130325355387139553262080813031266374089635014761886415712715377643444666134699985495329811859184400284549441329700094838158499958228941232706673666163854421713241631825229394674678049296117689544500558473512007466447948439662834841014876899599131923364615739975065359256300535275128883878271702621959276633886151178137210250347061100899771695854925164159510859346350739740065583413341651567122190533518963212389559535344509891274558016317164457291623816509615520632444474838551485201635659855903452387348624810344208469899231635701788905275363318091745331307272530009785012812290643501242696946016103781619862769647184560947157447508583857465594421850453188273115537632481262063976166369980622701038056751594372752981001676856595569269768296450242771445223655852740489595344566091233142858703695997422869321055314866201597400789878902919435120886233670043191785153756569377455609913816557668291698931999456965757667921499507767377172029716374450164166218156320783310820777053498157575057095537701465076939439500410080036052220654009963552460615888303398385778457323396948636144676167717454332260367144953805214027354580918911172829047890427435142931999917395144851620944801129151783381568685955535691400315291172003722309742773920282353216116012597961004452521961981628854360749922852044025775327114610432221698352638411318244187481315393173738448884539207817016938688172617870231851652458559930611127373217468171908087945221962776855931164091512018210473873296775512060378443993137169957625033243280194634860081959907676371882425451754302887636243776816799004433220996794465012109147740284636645069672685579255561862660225169965914663260658964460101700975095653467736179263036331352150575736562734415229706012779960534714765071068228398739359236091774776299685602686756171761579722061965469125110320293175016274146534237033028102866124709535658898129664028360483313137970949253269247620401541679197764341300459277606856853811143282972072969505217860136988781208265472551335377655804990812373552030984949728860422763715557537343362098056073054261899800136511314973187099490159374794764070720620520167134164411300479707371359333386647253892101483190511290266281837801861667589771669077559565310290653087842828474657517064282346264961188579734912406653196558449292896281895247381216399996563508121218449442133151052275438880054573859403676581155116876537221849740554949815066520269030565954469461069528734895854994536865434296560741628680874239404101130767142764240934855593017496306769062320318845967514232831418303296036348676408057944747861476096498179997878524354067096601371285440478232402962555293984891740375818050185848268560220200520854383266876706531563480727943652375781454435462532736558002950890772262768796973456674543308040809934739883106562779202571441804569622383921297222972995065595707618986730460442132788437667790644862346770276293250042017196789343126283286116780727672183851785056858787008012707392779329653566873653159962072189059540330917645025350165609789903658672846445325134218737956670459995544464776754440017178784738614908590514674554554851025096551966645020153845209111045083892268430441985269441656344324764460653603991837785034008170133494086093427226278030617881172231918129688032144797698895990269569121537293386084186731827934631406349052997140194202821634251442434436473938677666369150563535051255795932607588932478320804034895269449288741173702550764134777821978792874663067725656087354068390080545259968290724263844235031847353317489977909325195296782797800956236938995683284523843354639544643792205909991577602880481167645007308045892300801898949482915116673737062642366014775931829851767771865803681501112175158428130082970476817432822506181529772549980233864364890300179256314486369878103321728594411297218494352294659759948172122660353300655510262637074644472694482952774220581420249976434759294806894522808942671253495064534843692142141497894036716425967785448645411197508622210255749741792466834179542510866260995505589575773714794623586161744628179223160680184987109799108101263575866400163820085519356500850801481766459499716627334060922032830610102126485330881710848652057546315266647282059470502810887281029745893729165904232518997694906132271586654618702340612625789456219038385702145629336899759986611397186778255766534549250644697547362903387029433326375119706184771921542230956736000886490008553099166078487927110672718030110404018873896247762150067614103977949983455794692886612619286151385800748098476048230347428853590554342354355579125828160134270108604267139589756859630295549568370982505601187477632935047341846053458434511339308152617927551808390645033216082614995397513898927656684297275676061749850570164489954969607069551862214882018867669909235360705373005943186814173993292938755852452494698252521485789288472295093254199898535040644951308555341946314841960039547213825969210457106362929539140031706720563499995532813500117466097272080821732117752018888561356451063890164139304173938221257498713114474398325490605194517021239677935301831073840260977411067574342959061032201445472702148738652594232231270259133563294706728151458160539552158518442116511258028351112555393172758032823590476937921960717738674141021252344650791334964651516026812247687243857268650179342123065660102041773707764397026921156528550660052743484545781139875071596450128271163928980886518213588311738814108724774934414344642971868217700472160421060754816602427951447299718396830490866317335201455418831225990261968800908305888862572531141800092870281184236466413464773257533978575367763883740279979423959274928897770954043096178356105715862736652493316963739728593725767640117296195453224076370214844891847923372498432197455072497471031298617284677685252371026801476399787608762102561491436041079403775779880995337702990835252449855155904710925439970289157671707468151644086567764026558525736248070564335655692346184038922356040963115381895998082199873509409932215952472823951308976768242764454083495493472392142846045682333427644324213908555437134960307888024255780658597675944258281337388196026216759903003409709847851153181337765982688790620528348567629225469518562264267181689272683380682611605360568896869395087902545036357418951266857466208342319962394039183494739062300145646352944341481082996421933672460039462438710322064755607986912182986252689155221328850342227556469683736396475286913348412268856680378164283510690195188575746986127534625492711863466729700089696216686749580982543026143295835697380074473035457631684977466939429888760611060530129974658262361793528616511526969790907811089671576555229461565265257717283974498934279489430320732217829386041725602865787977063188188947381681231170576795849121825139986052454750015963925166419913883268340519490867295697751346420623708212617479462855769691975048774263817112554073602761403419365114714810657755983801778359860022919153957880287957923800249671414135668416917011738200041356905878453782598300862611098802987906556812539395267265673937333256336783970883875381166496659204701787339655624644273886359343038210222599585707408039720732307959417593289600076968375900779191597465206007890624800806099772439349314261169141073793352907822492832720850084613691072970991341354808388816136769744646442789745616392743934526588525732763916649099034366045093883814990941503211959360734081112035496941842007000935559434379773853292654448359642618697273708689101455247788022573957998723327849351408742177920552240287699434732990180566996329493401243308114068697125248073878109899296597140748153129152201361822780069752015261827995519318202916093711128270755325301950197265193319912556902867332358344637965558778040602530849740964287449917433127374412299191654087058897555661106419182690290670084133146440730628768115233354006148878085116529052882335146376107798898532799531204609770783742119087513383284557967891363355600366069645084640617750683347441187286973279273442016319872229503075788972039791793098536089933877898629357164615493069855315396711856180345946073518103540620709030498377303143671073391463739365048851640203411645572901742675698058681109100617222572467189427609455659965408711844036380957071432102770356735039671768049925284900602869614355092559732173608040620079663761447929893181524934458315354997123877008757845801013663489053882218895765356145407649800392937774982911146933197062769731514652110640696403388871567116028447530881273581690358298850707043734436206779948517327845849921532480689625262867292968699551557419641689839918047735680402382484947617004460590504987577597191682308007647883850066994148895409772385504485103166064437738043495840186436042988251102215347588041050368980655613385023335656018517254746544023196683619091883798871147574638547314202845865230984862715091607010740245487706459155429974868632542580156403999277690706279611311213261833640974435879262124860791136670495834027846453811590964147860637971219635734934150388518957553432962863928347761093618552962842205451485768143567735743595686923397511349266553180677284044129987783879448525760610625251508429397988410485318937386687767584064279876355866811837060298243837797772995723293195893254281507256676047045356083018300833918367065002829279614560558214798255614300869096704054578461885694368173655939098879678115513289941760427041436669686592888407186267370891728324365899740631117155032849740748487144160052658770306849992859563123896871271843097477544980936314268792163548206029183319749296054158919708901521915378451944560011974631799612263833212427146156494969862785046543475247337622858300120869688583514734500270897587514071808795812432915731173634555080021077340487096316820753602667876033144636069470013541530805694014193959617414102758998396974848535621743029436117455286881608023175023505547629789801023060021048686911385653652288736494992435485421408151797029194440923836963823234126311134899625843871054432505421502078852794943091871279513285665067737122437166517349254732578398560279638263477008392935390596498710748651832403926242030841328167788518961048840440285831495908349217994931422457926451652415591607689275454376000957540969917117645657809892579666162667058036491149056612135105240700204717951076863479587592680225230954002925096215761564199987280859166610045573852351770082737066097613893581978935859053305675179597835000167034169350577928212430824723684846314613353382602997036250546496437319783852758788677670706750755243383490006029911795937605454466486478832096259697928052037173129568254358384953316994669950840171675355306343716121709265797115112058005913117378551167149900113764023679285780194998813894228221940111428081218986915671493594911537674599704173128309880397727225146577589283923620435306889850325469806487335693120609233808753007560236948698629290937434306786007813128826587117522012593839052744254751813703728261974724396631525228634149834957690488014148076144765933745109967608153770584235261408102704650076264264879378131294134326386218230279058256138312894652435033652837180703514980350561245397051217553774736584720062919222673723342843302498301431112168506061339290995706901555764647690716855514399998664629668303469361248643362149679618338372400099219806688367358851047846877143600039041360469989558427340366557494602656054069570884918196828213089422914794407165892393540888224848878878446708415939378023881340487378136634087939070124724300883953315940778988673773401606486205882055029140430748975338330763547026809515799209347484553997765288723276325129243202771244749634329793022072546426139484566853325530062959334103752046414505737312214427104000280476143530009865546107493760880162799476776606893059676388196326995331642635054398492177453920693947838019276315129534783987067799240254642595050952394289971642131439856214277319466285852358919058684472857415181341131903191662581944105252046118697870076016982778112440490032695810300486010362500927614101227853782984721156042870090447931430358097906444503719801635353859644470130858211391468672820040477286537749527283867504467672511420284847909509790430527777152065348110150888241961624155426683984497893132283417525281820291555991036980454344270970242838913258118867503963059026476509280030221087075866340623548435698967416953898172319050883749436781053775830012466412440714609981991221842978535705143960300206257609816935452445906926943583931680790416638724553647229529981860580937429043556623405882710511661603038979943672100955431110292626301342968305203601253567730931061138167354177405335853000300709120525086461036884877057654188662943224287338683362905304141865892648147705590506384007862118524910317232510253907718212230173603571173610333025978313086856660768488406675445739433588262519122016668317112729619303629361374356086729674477603850048622623555184615252850300251805515621751233788998762906550626040331171772945023855648835401902443024178476879112455322629340183612680158961956004012530002789534089290948530404659978136273699902864349405860504542065350133763762236913397468845062389043009326955583919224530141105767694791782252885365247357359868127634391383589192695223130520406760267791800758701536932058730182760093777912551762103482771043540332953943172901132926542016198456927544995590241287890931819501341162047080916114109214961653250368898788908672490694372444438657778321784609456894958441230026695006070317683126724538026789231613866874426962918264884998898562159061061309449879298560811419239182296956709976340613114849386404961162251948209908165547350869957821349974254199914942699004798335364133940251222829406812948043809764472700136274520031717830980777445415781678189911783847134276022683237286960853467701068466772193425535988388014897256096457100810036418095067437568308082242884623400044150986624909243439154879185849567188702160169875927963762035365815805410711829466730455969042845562357200113890301074583718014937874772341223426547254354438727142978679092660811585672050659340749964525347379161910483819273616070273538080944054516417960322987969258476388487503570248115948516670236282879280362298624473667676239277838741154175841706979558027671751850831372208923126589348866716706770907036734504097870306696210709620328965188829693753707659950149792301666351737433789572690507011171862002349511320363644667116823845944958094556955341368765864142786475972346995264893394176441243259807859712793927658262651947559967073329527148278845180104190410764770477986186230426297494094849424114337376492342732435617652053444178383252805621451392030701879792152086058455903932575704018307283133731639204118802955163007164181793136761389473273021331098404759923514815030919246665867332903508704653692864318319922663248921583448340036342104132189126036435591610895118351119939282546961450947154216718321394350584993781879577680117170465009781470202213612208234019089434482849877425307874916702263219894701602584261972899517168636770750549435747536789530241756010935373882243315386596103480049847433256203871381196885774315047217004518836715730297500720950951984399457876517476444533880780881929757241016962930663835733182288119969072580284052691941976380183411602864578681825454252087593093374982566334359924368761366415511729878931098126309219457285423569617764259024440433746406287862269767438052952601773731170124118887501774095802024591865072213773805732547089799732703665150027808849775571106439113046045034006467077026932336394309906770596927909625950145652308298098682250103580491111542161718691366574124662189508449019193110164675178757658690708859720143040352070265626591885685021950668840351582559687877151086874638183732287896717827675284192428392445969357259445672272141846891804690847918553944199530663544269199527335630179129571289345136376249262637528896362974038653338101110445592906743903685602199580825874622486538728887819482146357607887772953017049630416018655060981301540405625544550689831712851610305285768592174771702544414354009129701910238675574197699088276765021101666436695206547589952266153097909713883798615209474062529704503758240159732978763916687247851698521830113916939059324899046081309770355927711938474550144118742951364821150135939306503637898257150059436828551550514778403926731556244553962556766908977981320128144296810612957537358828653832340952536400420662275553213258584615042112591851728148062738848512821933621096362376465223566576115835263907796005689645871513422956378094457543293197243964075520753495141970999904411694283763590529548074298606356854837674803407504134100217593734288919736499909727740185474939686760685970031071503871723087978708364281307942450625430834697018127835524618981514835413956769540851333850528007968979404328210053920218771675714045528241449838705350586362513195577375602431039329115027417845210543142568985184924045106586401589218013084284111245766500647684094460803019624812969704485250743628114692160551363680210369976428224189503800705615960912608223691424827539378793261751293997847928686345092611549207039411514754296951703723301337442042850422070578503446645663768032084683875123976790386595961757718086755229095058794623211432427943181628095778981552134492483403887480542392811885349364784547547188239749455388546157145022665731251200001838551538765651793575379236172867337033885415534971552810764058829553246346267638745784770915868165199537368923567268240367843377503025665375493105991030622436072770643616495552609931470545220828237818691077910249474549856832698090488950317146791682937875531331560037005281158100499363943126105885109086703145967963854050667591911311551303701867752074953215516862669349935801048423666177772545728962773242387725570640785211566668948113207922604755398466567734454074509898566486907611272366747793292589180274844298224510770265254237181338537565245642306726637739351594029464394915649404416449016793816719413267470009112953025728249745610940122684582256357930613958115745240144434724027859846362620013746566382999339005785688349407388455129304795434776937953569484288980134920001122229666006801249151626471579786127320190847924445318829712255889430373275533862990527003552815857711800250075183688669321775311947588806192831840045476415093778991705069040674043598176089116325293255050419276413892284650249444643555551570256628862015752348617345295738821694672749300191983355583516869452320681370966754484095677731720983569190126837344991630652723572494205257422971023181017986645942491411655657583688936635188405192766918871673667947618174487658562296727414817494711694452677978052839172153173873689908487706440253137816657129485320205723260325783888402415742217860536729736112548990296513165432000050859649197084555981572273020665021754396516258736137608232856137238395153404189128407788257622326228173317490051440444636994513229999258393022591580558500319375144542086779357181737149674458860378811574823729090489214394859222335537641690297291340808899372276054131385732655361199406527305575660584357026678350704174566271191002405152254503455903437165844052447168835387293616721836561575368047264023294516199980981762865486642234916213126240497052590586570943533211283404227464107728242817754574399348302337508028211305662872356430213120992380545844159296543168731329350486415559332790845931919679432120901752680103151745615862177504983404983539240865568911732465136167546416439312776558837004670600861479403561219055852210729512283963067875020216202083672062891786810293050693361740287800010738672275014465853356612713559184275469846443423518041143461950848108788017676859763515730168869695988259704982535225759127793830118997053577889499343188629129706326844856991380636180801848228254600666431544136048591171416530382162405812442202770678945471464215095565638505049553337882870860468126035349727560491037249478257683578701587333188196428780857384050674950199136405399806705219453658867798436239194118246725700486659816227850558806968419592637047790762485635274658219734007004511610480297324041173958547887117036639161193867571898287557088376970597412856200613461732378571291008723283148482738395318509117336158914691943319640586416777535462310645598445547911799623515912012948467375572457296378181853336894249915306678410147797582807140343251156652151710013203067239540925258366500765654427118838610286707969157165341876656910056146387765364683486078286980255025425688271146829010649404276126555597365306552213189044676121846879680879031156209395909757482454824703611397778954972804980093797706988299231074633467588752617843203490269102369212814555383986512426250254402804658400094067172079197381412240036111573727603795848002227981602679214949080696616030932579843830002598795834730575246761199927053012062349180687483129688293687333993433041810089397196221701835470882425881631714173808407742892937184885030472891622507966488399905624154108847347060721697854443763640853436879104627606483217601569280946712845029449199829474976596464589925250980068467607569863971150154800478784899662719063139799056988816959902512489198114417347310454266197296333423903426809237778209178769632019242677892042490212170010545520773436819921409794161462489910877199705054944316166857144081235807716419058840938255088073837859234080435660721855276621232091383571488195785586180690383756567553372585250526260339821733009996139455096511446240527611873604709690045380507296690196620322023647267672028955825862293798886905897749939991520676527559296973964881381886030259792813648465973154635999817947890834729796793645473680608446908225190789739164302818862897627256830099383771079661345275239913626356542309116452375223582331586697214647107850474529864111920785451355365370209164346849354139918471635023110350267761835769557900235096933848500221431529783252401101023447473317395482531744632292027130500157031188626688691015447519951214647081082106614353034160076726167027829556608805044262832123600062793576483243899735585511771587105811678499350787137712183476547213385419415820653788769888813613957110940692765674438882005556782655198445570372047853781692339812475429980853518002600698627296513924187588877716156658746441125600570368371470123212438473881245546707264504129619014031420080391820374313354246127675851610459640487945944454648147089428881165143322008611177492730232025187217098045509367457974128187999498699495279398725394985169842004753114687481743653424927229042150407253433479153353182611003515919025064597800833672771715072195386403235254446965617051384622724859960579020126966542436930093305866722065262832764261820493293014157956993465805045079542699852531458035420343115113488372301156807564011862710148930008145493536269361091571572397302431340016050962504833283246683157935264202728985492813292847200753203471670996572008713024933530111944019230454458663478390444102695829269144384688673536481143688819121398213260012669209338378295541163327422548422460417222768209637423281087617556048837371205304720244048018944442225868770882974241191910180827495954097712053276280072940377867599323039607453873521193105898911816159050396949165407886510470492637824928106016464007706073967397076374656054745405426229204452180486775329411411380297207184391731259169098810620739020551377797034315650454157950580273928434298632305611304295010601378252232339845328131675512256460205678486872040277301161417720439910809444449026767435414994860714600692479895049183185665885564722032190251771386319890113582899023079850195478484066942182804776704616619683055517083166530607811435775297393466244742020298452798380558221142755435924018943963018070185915012101357157254045332031539113370818531838891254412846828515130685824842040721170278777299992379277594497496617457899547197722767058457613429563564112070027145550852291508273640459968270457159814951261010791838381774101327975840458596589715292336010698987282320214354344029245864849213424911922094232196080949305663030991415208273544502747938150758305781432632057021618503510855353766133582887506408485079538326667270567824087908801601989885169625347018043845053130362660525956362301925029010681174202552609617355431014848834747034663531760330475111374392848283703119719819558248722118638235185940136963705318686590720641272092256289135251395524755604797218759473487660003520016664556487464736365407038381994055174408798350797463875996718356291717700002591751684146292192576774291127012852603532602611589868534776759035230494303421189570121662138160971576674082094338967238359155577138655272260329806189778018649641656654798234450999528552373479350821346890650316021112935988677652517906486987896350353032565882813962018677187342670892410157332794028184207531196693928721617043952764967794361034486643234935863591178067805577313879226814611810524514549104651447301009075859304985387438332362356630565837839132515894967570928720038996368821044529778243417499743520490803352002856460794164635952249561076789906972802850907769702405179244859764350947483595573166841099072264579905822069962371574445649136939274083950029683620273154888398620880360582917009704541336571415451154577271665981531751088712160490740343166571215196696451671756300858478134491800430554549443186399266698524729445177102439900948085822651037202448781611366792632344987055196479862247295728548758882719767054778295442976981505333463242414200057169844990511796959852240630140228994257632734020275412273978496065249878614154455091814335094804067882548141043543052709327871223890676798244900693544775526994841800644816858565269827242450762949980128880906484963368639684593710133007418190219118345089779232880099638901487028192387124148456210890620351787439112154323819093290164930067341065693919990067802806342186867246200353475379497138887396928223918882789585829920161535524210475562960052938544372168837440145822280426437010559080932750220634808870095786442297807161733265707325454964345825882556843300241937139184593264555497615378629355966048723876585014140237422127682150768148420990225392633114562572817160306726260098921261877098851242663699693861285303541446375747091691245733330097456837769402444767291598559335150795678844614122317724014696984479824974116200494020844719149035300426632948022177096293477124877342033535800428280332200237470878492613915414257596344384744262516183374346118633103301908966449925367338502235623547826828631582625611150005109463370154322454601748761427265827544248327879814155513220119237097687696102108536095221108180825889424412282308940850855782126235794831904262210455956989020241667559638885466664991991113202474089914571005382907532809288500989917063286587799775593028589525177357915708475713515944488375484919358574513406702655125380111915238565942533788614756676962638461035185135414172916589688813950645994660781588626055168032322080609313543217866701824625597030761248323768015217717249082591083850049102719477146484142360961661948912585407506652936108364420450985008668678450644881987496297374256351849703870448458697009145259061839403853944909364983238087463518227064326353738596406140270578452214713214076791243780586459849353420968499831634176235798827066684627784969615056567110788863625124744468884310671630127932331781826838330277795476132921037232440991767651841119824977051128475808930847500852543782188055016133956046528721246136018210967507586769720415060202978051679395193784350657242647583677883140998505279461579493945969950626203677758065262518047735761056394091851004534659048307166090062341745939005094645496445001815966989299228733172806685900876061800146527585168710136787987270626809977572783883966376092616976286002007306815212074492594176596140819209499681832583454091929988232171112097368500802411143839733503085883179027638772314358808630324488722469541410553608566767563229057810618378523460499491795277273619142972238383626265566816595848081696358794377707823172469799827785137840164036044344255887819393503609549902575705278032858870626169317866777462637957130414978894703858343542842513728813926883510548034806895587663484583375742212512665079335460465089625083747898123940268874373681190191819845528737663924624094584992447493694934810880560121753367103371373033009606280568429964580736382201157531030823314653817820768658957104651726505291369415984490049880420995264227537531584250980834298299556424713910486546315072653693595735259106419724198100371929121135546039453503454957025242042780164381370028908375702271828417664842627474174788404508007301170114186344940974118259130336444972373156596445470244068700259783852025247145929774799552355352920624245041361079209275486128680754774553531284661176329847394554465712068657408546517223461486688911722899191337952794804946015426751950441765510926045102318809272447283645718972796900194282771218358681666609695087961593476477511305284769132914009055809223971726965122890955820130693564994200010155785780829864848023126169038340095922614418413736104486179498263336688466044096017160082855360833598500634837505514175165158730397304034738845122366070012534848663256905847164446611168528228087189922866390484324662500531986026212525962495424386785519190169472917640838368515693369730102106306781299791760543038387393970754532632263170586888695085598979705491926390271020564189071420378830513988870684709836384406861061188042562389084712515536301261180115267867049702741785474093870725486118875347414539721073960544949676991420608233065620184975056962063177829830295962530310289317013920010663132410125027652180119066682518280294418415960191540043661872598643083031397594980484281733162254921595268663176785362070075295605654076780799127253144431422579692559776405922959171248794251915269741652882349178628324905592676893429690878229230612270466875016505503404239668203136618606223136993838736593421025849897035007589721985270310211397341048735255563497016911971878441814574528413169911592401546053857810631552023047231546220041217667007815675606208164911924893465948437046750779602032983642802608993184898309010642956196527186645188130089216495013353751824738123644567706369186131207610795730118630248259719619446446691557934329763627764230029838647253036692215723174048368069334492069124013368387473947885301422188304734252761199076729808211519628894443018301897996522641248618257179901271522658021247682181684419243429420458599935380016983542733624126541180127509096327340211418441886907505218012235305876666405303816753011666634756941660492287538965774224569804655636482290261659427697163990876539707696698298985641213478197831218146707128175924063907813487911680975905942993766569116998747584829981931415058699302779673371506048476473906880500332226697700023918069702079743090559392968603381500820253005720999653211395725643963959046334727192157267139369275027290324276741819967955299439060844597768868092185839693187515760235422830297658356060573014523310371511699215781874139350507124181144727279609182540215814121429247222068195294208717703628374399967118913308592417397682676710429278300857072406654774838668576871460608814518069858332533934829787485601229879875142577606848446404092990826683387600545937396716223497008339852259554074293393437149422116067999642275974201010228686676864176629107121247531299327515690315010576556925512589866638914358190102032635751139690106416840865037474469568531631600941502657212991099476109554039481350139249417739382111223867662521508881534050504347829149600592052296874394839040788589302556156432757412204510974514748515839762424090102660504973068383600801137198205540059210508565231226376879656207417408913184344135709903374148485089067891498695582450425343961736973005883403875382700231958591169538495219409675640250936357243120374934553679731124484566388418806765191122589811773406100499794760381693292345901952600326745824843548746136646722409733851652352430958160590821447038979553860545941006383304809229494340916977682715402650814869967138841462859009070666581607364752283966479267019386394343442308270540527518367301815482528460434683136721506912180175563724353034831289963360504933733145471460896864091010430241514491620737740532078134457492881055132898071417375761301694345665445937548217914060412149834293330779164173313135336536082694751055004120159734380936104884073920346371496106027971084364424090271772820517215870084892856209517920918121263960983063852856404608339915980971950873414622740128116918862378171274890970048695772169916110385609113513903989669971119434981680486768491943607236560604341741257506290850640649131681068661170102028291338285584748333581173853025750304160283332706023883064618039397167770955485773960768389368501312672984037219385523441373020902899477406678935798076666898378465999666069574772114777875035952226646998647935669343900372633765932095395593025713282224730674653370013053852141834214309645211607755491157232146398454912624192392157551886423130567956350371584444463448027994109031177287333653741522544102591645448583202878887176295957776607466598534410736182741112835586819869377819727431088413103170158022287413290554428824062352100640878037449262456165180715781623032312582565285990586196208529403459351371700146154602346863148146895442206429636356273744993767197696439241406872940699917063647992153215518198264400670000544296645478146319072143167700830446094242886601530388196085217931458041334028000455281607037097708840524881922556112730676054116718423151617852904806926305025987710186941318371605655722387774152647339065649143887277292253975657767037112365908706865144867646751993436851815774245048219208320620029695174623408843863137397132869715585276079895551659826936404661897889780242721315923920681122453308356222223448529915273592510504168680001043253861398535583270617593957005486623557702426806752020168321784154436198631411820737194624827036339317254683186902463556739013464578990585650363663799780101363015386068959893894166606715440622726603999710392259315128161645830377748581498362503390382618922212305761364562843172658075110413352060345935494123591219268828172995206485438139572264672623685361129859005008259314701336222566914930597304496071324146349327015728032581814963177948072470954575795124066023013859603676963529972366622292322496799508552507896471859923473788091513230486899894203865138135224670744198128339509813824118006637262333422070428443457534806074598304476395769080567607189104864069842695724090188126137956923605078562034493920332141632898605621101903317423167798676432171589696377729094882966566688771202263852923778524811084033138053969885303652847931762803615940935571925240014858736368294644111824346542080924315330058044904809991112070913775923649941929647591122520723543046720285647868195027148102297190591500025944243033647744453407223564439740444886133483180754440670405653331463564858842208246756739982746749237721100896294842836852624812469389326425810420635151382669318186601545047796089856797299655461253797783588467783372956683364000861156766298328302776139137095032977600656407304999342588820501364593756220382007789574322574706520573343504686732436764571671549096861711280111835813412758350443065215339667481416764866328827111859275630766980296273453964829732780115808635306463309720526313930498296540378916156177467383292558311069107207406600302371997044905649719477165860879037784667065631111232684634959202699047373381527395202243698465487919359254810832076020280418368174292551438131289741669517697642293391556133768201297160157412834942913020648802300249682083229385190236701499990550926804276448753787328384949392151841261142322541754495328303061307760067127596993427545256429087395422638044891505018280336029416787347971109878436466051333428035280895336499066013897891931093328738387201140089827293629675713591871240079082375422267832504751866210420033575343288693722176923675625590047445982966057788304336795631998178900842655365782997457573295037337294047474262819859269570502676593766726208084508435598333096885931336119435919367201928538379071089734847445040486493769891422553644348533106750564049562920979267597214171344649524378648766929449008638369114693643762929107699769757004587676706585684042284610768097679090701620882124249644898579606717486570775858473028363317312489573915998033044003307979709779489159469159423413244426643500822334795222640190648228633506277268422055048164574091707204451661064269616334102725547756425741529941456779294083168872242793669614901267296193284897168108305833266310491151121590095505135215589799835287259995574100986725247916756774682841598889071417978995745563820715914808907883827494351958040429004584547750992195503769306788580012441980586217905778676271832033746009158989274039873248900532091374141220709955233016363704554963161721850389364674772514442028038478925801361134572953976814850849079907905752415267835770510919478927856656648433463490641531475838402044680009700809259926215668906306100896572718460152292244122015710290966652978963312283492304957936087566702254613608436018221478749825743739447239454148387143705084019227466007304497631998165244923060044626031873704914328378743435125761479330916846089649022901297212115591805520808530827441748043189757985041232158625896553400062416199684716976388735923329304036236206546347762924739343009790475304597909182401685459654999801986988674758621117257203924665818848687668618163199826498175516974950632454838757498509644627179267624581425974854521586587361200663904204473402210106581147185676462312378311932962014339420553669337522038379282284850404680293960991949362181846255331158339001455897477770962692986799185209703627848489850068152803610996811617349599557723942145986853736273422841193375756181501685182942388946582803615176488374998405413537396956752159109461155392142866295715305158600646098712300491481809802365627483914934970801217790270665455736726792124345819354256361834311346191787916155524718955617478419325114053118867848704540362112172226297516973816606048362797626060758468327743148329182503076955433967575617531426938196347515680780093879970070077925189960089884627973020528341007946554248372315354408273284981941924234799264727590630568684215232131820530085708973326170080613532461431224869359431698516020197763600442436603439717493280392503509828042906617180882435354986036103868732319600276417380962451643802913429058467224384445465567720555925635096136179934457081175139652945082415212532396756856419229225689327558895687984946237058443739051744923715040791292036925522646046332279205416390209406006279008214276726088143521386528951471256313128459908266101734806871910699700791699389090004976331313425627410273146286397250891242113716196661526026865778138923172709887226217652664869359082945482566048409677742033927577752448747710426093433206355072250933285471133147703759535687863313797239452021167565527914945805260755922424465141160709585179647869087800342980587469076470151926863202025369687881140318589466285876857877251847024883178567058259923340662396496564785828666854746674068860384397352229826099503743740271320880281157450659536613272719924698942145100102544558751081693318265324305197463436536805488480291438387026486901607919815268949200526154973710298206527075760765410081425166383551484753131275264152220786136636595572615681245413979855045277532037728213365925690524236148560886920533263008578521833764171387921149427466713178970939638467322871775601878639201746914189681199414886140104756607565285097628482399350438888972308162964128710376380977150117811277140914436827048942605417142356560626339017784916038383988220109300879795111088402432876070591349834491389478431616413941623636147773359446988046733397717614605401527207194766968535899643198302996148579142158890809373726650110616861052330496403908142636281061515505880905462814763329703908217541267869182431395254465307775880519680852195848503868902920118334590726575463113275099695473960940160435631171048713810255367813194382343058437680812993732688133512653429723794270284732347294545726574305947470514370394743955289863852474544102796413613783991866103990404724215201455069878359158963829934939820618423464561294103920999415927013447192071952673329022862601186855099192388471020533853503953313297460463408216553800024162369468959678272428548373589156129768132026776022155063416344562042100279749964431569200001376789761773595816900563959361838265197293938239882641372803270702454618018511877466405459003129672738510864755725908176287845083221344344116539392395441065245555956999275188391267860551276518813603984073509068667339333010942054857116286273439461361423953238061978738190024432734950654162397346751964085686178353751368072295510760550985754926260021362065263950395463951118259391622497771074446161025617199432927306679783256497359947751731750039328969948253160798677794812250993202838077173330960456686013861026511019443145302534686858743917494212178830841487838879575335423974150723589217868858849842731842340732003835588698967198790146050333545811725262881924796884441069748712666230086046451911422025241307215524205938134935471350449654822418976441668347848730429878168656686042273616508927082707984425222833026290292306099902603184697112801343112458044579890130352952451329760491584308863028769260401100682921332482268515487269659138896937502391385138103345175289448021861853238891290656144976700820920546752017232085715872788253663125585809071458659981035696348180880579735651330494879601810165905826541286756791815555854605574377157264207863773846784938803247441647508461464298069135064801732609537695751791625041115321486782526444757201112208346705765909576294179411667695008922979812509907257278279845127250139744343524549395099397673398868073422807985829555367281924939748029454315697626680639102052327254848442138070292420431343066154516476264846327484985207084303993320972970087744540008963006190116489711948503783612004769112924097047895432458401558945445285587319472603802053150355691197780536597070493453355373119095107051179900479737080152926316720852787479956573507073595174663264489019324782660335358191119356946606754303155751305128826997680686873826066608229032981694830331517122793012596300511950261428591819323408071801578488174878093578543654160293186043974138115296826319376873596245099397584910708827176620517833358136108430089823135265065640593667842513766135319483979139302012474416435654679601392986849936045003255191029193247711706408334578786935804825049350691251740942704627953875286910558612342965364072852908065512391706548772465973811844464532191692639769986700585602718372105742378884137210458046739879585000752578642870860763248664569119494385447032604115016368486732792074422534101875214389543350940284445559139253809887092947155057394086425298924525300738587171046155025307535315305768158183190816691300862856192416541044429024966685739754247321717639111493887685585052809655369263870447050919139782476067634230502651808597918167539053662089596807867108069136554008989296590463047030381676168826517264728869849819067569755888502176864756354401479704896134889297002711740655828238073758925840983286148225296520048444552458247033920236331131090547269599550843332959444398033053452056642556828421926872543470403136240955810847558170339245889542724061906004121918427987201552477769467799089478115498042044845305416851742995640213099423644776660481138908360547169810997807180962861073825313250929652034676242859240694530928737947535613904956868208700066579166666509850621096508617679649068086393573694294346750349333651387047122381007923641008923613269622238125895564935984371451488989896316016440455941413000636626564922847185141743698073795403971756117196722921428541705459249611125754143326708623588768711202826157172982391137784612123134961999923884788784493004665439161509323822541233837085828173696119324924892473094114691016393272081101604497565534302331904013742160629985547054751796601233511799377365569667198408839754090021343142396254939419029502302680495651504664245015201991553439442327659024123547582969821880519709492994667041531910918075988083278591987157318055313316204741536945021202162722995479837677390060840837581515857751635838399450931431963376021236934165057135308270915820075924245379196614396959983740829746137374299638929774992383026014060154054138844818901683258397425294809099451753162480780271231030101781719359821274731757452488356992272753443030605429083160280937417704962195943191539062732598711698748155307059298773438872783220804648505620083649114510588053644252159575412876346068873046909330318024144846597069248430678922706689378775508235229390662253960122860571482509457873390306418424213328728069670571814906006295100965026344965344512851866459755482695893839728810160647615118740611879757242917837318564504475720609129424609281478588628261331157557672314584153151025845400276508628988582341149299086843815861439338792410342354310206264406576419848317672274655653939720513666632985161130055322377196622225650480204291844517722546809159087302358976785089538908241403714718290993798515243295475430570859285063396831460089337446715090218528048316577973829218583204760584082869185801007378283545895596634177421854044005589672245196142292598147790199196658536304698302253060362998243553432851793859333372605186689505857888800100696542706596317886288170753352751883181648083415798800200537792756021360091613293730159238423539908750594835205835343391247680652176933174252544920865593947916768983661186484122790080312597202454222658110648889473068120050580766247004631330696891801203074601351284181873869704599758263796781885453187721782522541868549923892860053960549701409759955169733363510237594382835465047271057780113387471658594340605869662163287758865912813371265609642236668293720483035025570686495507125498398587657221885402239961665552622568878340554645472718462548429466609794398995530718779238471037192167660887473285341488960196526758954529698918822122785764032124943675355793452235154843819506849420259301778730662896479972324018019554990388883036197599027554659676161232814439172169651230912776646867339760106671911424984734527390759528243009681095071455891927522236123658438064141763418597957126440550194548744199322838480880875151289760695009222257906740973745017660744453545543661230512785268089327888067121290397932146257344152911878088768502344327407981575904479387978353384557779433612689790679440952968413589544221249757717613442813236091596277203738555529752726568482082097896549938925830933256598038926808772943660903875226020267721390499557163894725435109488040822588998459402529203929168190663814029455496780243939600321041929531905900438988230311871399069258608293138571625449401193027691096441766185771048818340766737677875784854143978733347275306406252595988704242204826782674023208228259948335194914273334822334763946402003363516440406451825594417249085544583876918798786274311532978347344035719819340892169047949315066385279107873331681482970837721362550428510995845352944147255957713292014334864539554836900157291241045233110306556820584486444578182239423541822929382670811894522169011159765154229090210291949243253493147629831305962938238752707834686901932530905296637156816155258363724597147748123735566153160019438335572189739989296749150635169838408186953525859392638738552658324934292787126352783468601099127001670847035328868578221685938107883876108794804370839061000837591439368946852758630402372693523537073707781265586110362030525502179942579569383033998323148755451610683727484397768618411960211005751232191857022551672256952992244376240692608146585419034046324218764698610912190274917249050781344453995141834304005235911600733808125930468028567135385292889725430650713283723314840819870027811049835301678873135713814199366511716909581532560141700570134524540890991788997265967450818303300077133530806405633559585172432995639347488291790287245865681416470584353931870238980535209525736887264878613959811456721288715687339694353319704353213405921518407933882745113712476647429043170258654708231670063246627398697620633414736104957576778638561668996741853783046661499659389776689270000066788718349788045910619549641947816865671309078684399961972874706962542974869019256636951718886233573365274589277057896044865529737837279312102746030949800177919451551493031275973194435080467803730500305124379103371818658497720536207055619779136210674323070579827716257034452450526697317800461711449554069974261447239218173696698936190912319596877326578809262271586903803853167702755961328515324133086485907540259608485329286375456829327110916015664567197619356466967798878192083736508427612478114121475742747826067431621800657646012728678066998765674335999000405266961094153736474483246415592157953755696486258026371127641191304700963382117776086742019847931529461758375841687866531843444647256068935434119894293582774115565546484890033897865228959368807086649465480469522115042040350693030737110669908551809981286081146475366603646087509351898373488385872237927617550525611513879082537082257846144956599612058266215346625511328641179353609034685788779444335306642551770366372658801135240955870627919176066787890785143862640326640839110451506071133616420601712243098033382078799184114697523071272673795656606933611914270458424388940851051567777511976670396968877106731027492456584815447112395014219397097390489534689027261506101658443005988357736483250145716723880168106933703642683539872431409475276532730728058215501335132294879810237386780900353365485279504039420381308829320806599692739463656279017838283836315015328633156764193112875776038243967033871911995016382754755970728043045418722554272748602487859492556235676778467467881644937794643247058232232198667124729059148401714361358627138842634944982586235695504314186328716994860099049192877806095868073931462753706516080577421193134902164607102528322988021741262105088864935850191320993233687348313355660115246327862977175182426716821560157630191554609642161346093012575656386388100503891897896624736327249583274318627536605977911447798986984597305681901064529023534959780271743174417659903693115517627126198980213643483354207954474130631198489802526219480554363322477300934460777179981697676214537657570511547593351887656541346124317147079040152380938390342941130239342954432097971027246622840807253041198141190694176466925139577065516468935124111597260662644206903938398770038363977790572422830804595629868932326256200895799335654367050005230817828061871707861710606993890405113588482560238794520869709015755041382080125666976061510849080031489625357609965784786850443568445846541226333263021041087436797559671208564444138928916225626463380263028700455413431383095096849005870080666776917751557584714149331476170771233189550165355097903063584176969571350598207224921220299652342959197103769702776979306516193716919133754684101861332411445319779841982346325085830932430470369694260116632663776032866353604562482277561189409607552905437474284342438840640909670468329800700286131489637811740669197783797828806670481712161300640105924956923213042900617718563535106031778412820388978194459289154254266045629963467152398468650923774267344031889903010766798809925355650815220798609646150524831755507386833859528442944630122988639699452005875124406582168915703119802028920492983513110237436845447384326088134375354828904471845307705696779055152256954377401125086657355630857150567008165266258760133189088247734148720526416812685565365893442602360076004885700966927069162567833822831230410601195582105271616493884515338242602022479134529203759232201150740986768201454975000305738504169033376429606934030004835042249657786680867965296275408173487134476712609126453380156591390027162534941286287645126488309266394815009510775404512635211340390788315456555191281089661131222436809038670798615523028235588730772468899976488549330282966877557975036092997512105476493668227409288411877624262254263535082654466008382198149919737720428319709191423285486524911663707989867012850768691824807096014845623436933120373834144620471108368201937826788764880271407785078018227401056279478436986360383513175038836115271104739938034657897115074761021183404314126752142003474339878869119341012391777339719096420083103463747681220091177645769569575652797540272174411754260750166899519983485419369923331053012102984615262873552249639271609637680516190262457275390671482854515057015151330990193627074258902678846539673766204965744271918243373063489230738294400279539824953210970139545697747824032962287716476472983098325748463936076593545670976924992541994126585240137790966008532325019684962121595351912783367779066390324508466859144655071994405669781865675087120470101724897549672073215364423161565991860833187624696488879727714800248133157699672249344882309398179878550052426401303141892085011005787227090022545296957865858796015877361080921548148620708610159000680418496754329770515689968186461462209467434009978502773006694675018212603519870036170626387222264557617692108171223282849283939220980602247969825643187286279637004745546004112892843466700548833562656774316189954275956960231863779169302242225880865523028545591031361393529241340712489742756883649869369604412202875714449967672764555881542621117393747753970499948300904738010974986708817336928741833265292206441220759884420346542126379269891541572373936040478705763298592694856868693771159877152785453030183854957308277267397431540621813643495052354935924904603610944423802651234891963400012876489440303888828339676452847444377231201549249225991717721319009457054265463273234506517997126887958460414021713420582032384792281376283417366971325811818341617818834747811659761269270709132069590385056581118863034170555529490820139439983960288714680506972528680281185608960901844414101807154510941647946097572952775743803377098514322846186136400937713117405735524583125771350748488035748856392599927630617383851633887915833092538168383361898471500747059676248454664782519294333192291071325389761232151529173762419046062966347819141831464166023239925443722444302618632488961181633967149559941878797190374445731337567723873015032127827862178484421048130734154126547196854850978406118458568314909738578785546757677899855297227046861779092395488394405667018730232387430479447491243094223070421291503146112470168762036773722220860272656184380095397656913429339620684621520959284770816895379035905147148996555320485558613834326561533948280025862671447198297055994612499422014539280927053893393058996113863951790579393526535469421599573358446947772437550893275858473353559052967828168203764995778139163110707503081626098932148419355482632757209937585877260601064477008823939901619693306577678545336432213783055907064346898088623854762499138260700687339264388513494222319348508982447814361357074680106565271074576855681884013581203799368532784179067256273911749166867071265703855523965631139905380803840339435153292010376944108711769596036466479669414786675015673484390690914322598266135834980140157800495739789238504201702707868056039510646077925830279879106572751684408000829545038854527885909498860087562578360244849002939837374179818389798588623465706798820948265975261938785915289259267767449844257932314081288984849870736042606762958638713743383996193793872910096753631886086996169762613976668332306336328475278544650070096514328356652777148147408794494887198559877786049720802876959908357610612932995359785192289317921209862498312239370420479836046053842598312047341280270324974789324890977977166795129813700990497275603819006680193502708523362842023772693597421968396362520574949759879097251178240075905874660832246895806725483729866221356082030093862848377424386252119610886626141113414374221507864430002569230006444125635700518158816174617080761954010243113803678012712303173092072378517360895664859711781670094131304581423924390884011538642908446292768846672142012950461371404473846848801439004373818143857827870217116782908574717677823982736200322368418177897195736131154881776563020212045107764894280941294277462577190833522550770223322467901002369103967552399949716661653542975622448296577486603269469330000178976525727025617556062977296012248531042508791964676576071576841591464940588271273972347748596789561391328739751609684981417613466594048200506446331456011119960711780432575944995054380559068801859195093803366102273139305150556447452485286380444398322043570193530461514370061315715632935338429556937494257386992514962260461899983625712080805979682161072069375321542479884887985113744858955759905382098465077297928041576374745438056491440270393595892795220782172232200370860148272716845678819680406174257594965862589841658843885206816672035110441727582460710233598538367468610358102371830464179667724809311627498148439830714681993746794057559101046334896633422748354050215564895280660859886698097989215922597708536504330302070188746034081741891574051186641851866502738050962058441833603745939305453230772464320874917560909824695502358481253284212526172320603436699848708967211132976989047259368158411201716045492694456767222201400416750076945225723692878519594445776902792334609951362911375989276517567121246635702021401180439241754562992841329632166550762746456694628839401026407218324465589666271468018379554366852103235177806939016236094212587543806741565973421981786300846217931068195149482285900870682753548516010139863533642736097055467027689685147460665270363284698943254716978694752736903203848590377860375073863127232899791510052558182904430494778886910277509469078817754485373716656023193020503573150712164154228350269052448435466407954709448320202553586712975060115477208264957890107771414162264560564196571892107194758506937670027491360564065350226062047360220319749486994751739542430351900002236071455357881888123345998159963288614493263353093653214951867736638340794833783734149905892321673267324301163017217450972561848941494852775037552696215528826794980281038427397083573183131621426398350519619394489683980693000588382600250578487107325269108522490720916396147499899557024332125338367542657017151729834352922809211090305855980440213158411262637929677861485560122247173326805117071987770819037931668324693093331245905878826410306431146468349797978900573282115901909003265340355180921360095548901913695198864255507523028101073021598000059831673883238408377624262629886148692215827010953729131959007750236131703260797071104412204808708863951488724948012828872310055455940182449324286044147386039169197565706349218676177359009879243191358346476661763015284990552808651053030299106270463018041729352844556612983421744364835598794305848931527257433045979524621983633583816676244550553864165595050909545618726080405755286524689907909439321729415391414738009980047421617946265906109103998405820640019970840431835377778945273758380429710162876023913969939534087917757599074013165598515773281742741901639374651377494294991337186419177031560814243154925420131517893287608651703688900450348912700450227603242866159093254930948167237625471475329797229599223582364755230612104957089835236629896971725066433114008335821311409524697829408253639432566821012313669998603527981066491018403799141113790006159539447406078327978219256668947888134458221345851279926969681616432274969439603743148610040427076887783774774511214698597667054647245702147585937759474534317373760435016091035628314222286235117793191902799635556849561433878751577285463728721010639348661180898207311227138866093694186711125643763396361216430476959593284794546436072007353428611536797846402514528326253992314297966607974468732413731587092231230576042224264932347374327265056159497769724880127100536280280177565128717174335570860658769233014635220276982015003130050000197545472714255274346210608350964771109919368980616577334870659645156086250467929776359124894060049255495703856943158420290331240855416223550525803182602076305588318362588879783245995883828871713003150638218634957516213671257803794700440460196990342495507505266461017896610680793824486875698231013780119296487135158768989435615463480515553167596169529159050888185304546309237121518997592089127912606155973820457125126852584490349484937839292034081296536414021309600042562131990636827477174553516980308129428089260903457420363387096206074892842441534485168825571596534526764108007048490518831668589489281138517564213765395934970347349214826972137947776155104201044615943518990002409717990675503264110069960681153178906087902809661494719245151481327726662647219623580359659659289077760440505437787611379642419559442718195358515583838744795638136261379925494817137628792687480427563379880781767277099768197514224105991258315669719148915191317571294221399361257162512629577026431821526710331293272939823030578391851266488707658526667281430627492718798510724630525245328535260840228280403459595796134736851193723041312452061855686804309726489599534327915638924416428650479979988942423031465589500708866316282816489665817046572123360771228878563305469970501863853230296142253086639167969931547434033574800655966217392883607101853756193402957781002196524615447431090735514546647936450516823584504366267022949924248302277290793588568499611408787170101269395351723504987515176393741809489585065166704465287240712882691530980124883547797968245363026578467470894799624587391910669894905957674791973045195652440792061072000178598156453030810072505900601137194613365157191703677770323682247266115461917016916336166241577660331965896397337159489238185401807321707084602621717803614413493862783534579927208588121484966737404877661357770652623093278778772854779287069721650685933081433371206967377701282655891937841717389934114289432679128384886659825659313036941452219255530739563439329227041907774005817257154590604130401789208374047179877050709779964042408525591276594195842524263436715493198732670283307765297606612856016919400466136347293853913288850696036416204778891514919743686981432249075085334564624138678267510071373840157045673734798825503557953267936786804864682967640289854092719894544942101324185896643600802961190535540272500068050773106844886940574689905895667698485861629311870926315727559558765697459397444882485601687079942335626886007817323515571457917676897050795282546079424273918688987305221454195708454618568588315131331317368135632540020645047890580171811729831847770479410771929027843561054026623289173541961915474909430736410431773137249343986747311662707464025198825905976040070774893380143171077531185533463794484750698932302851172389824834719135031196819699882642914965820155441519615644294456607607668429032682041291861598750507621738523926231783123567035829729548206996076019740822180810310045855744235754503470642474199775464983768324527724212391689182440686550579888669627921066545278034926901268665075730761474181141814997113240958956340683113751781385734402484670451845197491206987883543682670820919764828625716546238005458430047992936062618538625597637830403508641353046341564491038112846050617317458202959718930888085547379939781685598979469930306756382881199913261559349928740983419012879149108104872450966130656248230792310075761780559534838808072328953030256748685519958537563265398032100782953032040562041291114561008883609358083276715091286374748128074255592661932370052490077468785073478196147587512070136123072477224015737351958385055933141397077990141992864837174393890523974818120841253830408258301033057977694190771738868993252158044148046670025378014865063223156984905549704676495634027689226647972481466082719240059191498289912302842548738048270443651952935973686858017945671704036005239995823839908396991356353441588013686786205253119341196399595089988010248194269151325818397789274966686927373354895493488596854577324491759886843760123682911508138528241257755411314226104693176756377240079591623349996423455353584867015963780913557561090043273668438171142637142378099859400746639852823150135851233510036309416499531775228145133531886610446328593617476690996414477441891008009596475802139793955374593731243032402644914846637306479538682085739410119112336704093556788218478043307645915218849521765816856890074484488635638715003916708658657166456062643804746826211581385205196082309440531127233180383529859552952618890708522679765001127803130754987093025209755561280853239180201152451655828461625621475380435390098887658930483790817856566395659961074026854793314655810307225424291633198471758385717410827745991470129204484836133440330761456262895719339009692305768669977540730611717905047183672059414780551920332168909029463530278628858188168956551137618781605221474969574712746695189467130927244032955671934792345743850965716718720835584953643474252998223782301195026902132570604993851575270373829199177425348508650300390800857386920699052626433313076686830658060119667673764538883995303562982294673487013737109260610898985668578452114366819134714937090476712886932348028951469925923141538018787965354242416512242476151444776941054905407580390807229026918201267096833230470401489311620108165649966178788425583544336504115008305068563773046688790912899600905767086549283341566440424525520324956509236890342337539447956621013237638364245850162235952028575007923712551845461029332250826138346341470265450901529416757758462758662108875898430821099649297369869245158875549808368831022169639695712146423239365034812171889541325911888157565746787908951692950308794446909818920390056559919545794898908581874347129634846114481553127784044970854910437693029398725886452897512563068497930604439872910910506701654973452606073764715765772066315651507613773651197634396473479720472353246705373939428468890416104661926696934937391332078086218970752107748770217526944770880900430674744123072925817294653672389051430208780889470120355595058569946088855928471084851374849570559481407385368480757976532408875725370740700374450654193895973629665783126398917271971970587496727866052953630897180614671649827096541353289961250420273055016972724200623236158096699166931223386770978583130627403334872414640008837612914510708478176091208469142803018213431089000975092268009356761207880860563453085255492439738075482209346057973161991058698455148379370492996761094744449146356312220478288805349638162783018750240682524494834665460354644166757731248089002121121337314594839078410693371195924459380591464118760881314341881158037684771301450702744516537728884997810085000745559840383652537476596580802152811714352980502240569914042379591369287509846960346228474467645987777052862479239793099235443013774282584433010013212103077052664939786067353777101136599248301530724801878252017480601046330651431766403956485694018540831530959560146444670585468783035770979943255822920120526352395556696655962573553548184883286057442010469210808235349904567114463852876985206614052599669643504101836726331579683583589834977634892983659852217637058304610267726813311869142827032684618612562188384039359557247152255288032266781669607852273519338010705170255273214832827930018756946874069411763064335453530885531428896821198734383546622875600061394374720289983146904345052685812235872382298861261255843179580924532599828819483569290727538400819672574371451245546037594630732747160760780059121229809085427467445126245026764464273303841611126987385685706105490615125543173415069958514732299487617282096356912012527985171932640822647820011377919302820560809119879274077972535487950602531546696801919385693696519778057674017213672789428847274747299370017917060981818478575572762717233233141798231640321426385961358683341581529992370426899734205189047153751283145046922466856704073795465065928208856454639417946059781086434767240142595317850346391912005135837724998214784756150948540547030679725723397477447702228450089021803934344848553083283827002260950688908758357603477106563214238486026725249326396398887445663041140284441266963372923512536907294400230713636026399896140712056711419362209061999054530188842276860233881197911336490144910457946721098946735838926264375118253347212629157024320261758898655744895923995280716665247103991855645289091818394965101248294060545776872449094574334501631479176804575112858954817598390226929599401259809352397416454182194104334577320053206255877873874214508842554647616947468817217546799014014905289058870202389294006819046486032018412668093458649876967392863540457934104085508113265798911198087847649296923912732468074193602061482076245228360079919663894668230555155761734100991109696279447678649928206287736032887804826442801777925352841693104905938791812177704161475062881982968564280569098864582557347783077397520685671236328334463544769093810258816425011547201967097406377434611039996616985218781053939278420399396081884779925832861472423767392980551430555704859544144488688721830473561194784005806583399799779777060757526093992286913602740741973899333169201430075769439403905686021662157537696571567303219310506502928555317538611768159833739947583514726485331126552746073853612253173963033631654734157028645142185000413622944377365477067473726432530135735763009310407720066494637130753184250072996141658865056064705226570238331165725914621043345381299870098618200372058065588617104694084425924499676795997333548642603189094064511525528647339202737345733834354049530441501163683672083571775869440533756386259592982587493323170970199700737078792912664084029784554944727425449808985616845607678407055338433361505841915164529289990144201120856304082952665070166995382449381254663182749366474264986848183184893541398962266112080296795753446646730771278885758310070245473487135864438498760151471755719313730531589923068462008632646272021797435476039963494076061519589960887087203713753865683328383691761368779302833513013811704502609848221152991411260883142688229526740332001037144327628634201277427558543955210919572951024221851485870919126731695766834835589405247816138449887664389212590742749328365967322300622408629342021789789056707874484026657564184979576588996107503416352659577970261030125290469962511890482278241394939822908671933227944789956357558195037975946997813714806494370585045946431265048613130054295084446016948911146825671269476483055555399865128954760600974417203323023543379945994237031795808380891465683346129649594495881790699150882280872153424853961110165351600593102591394166734793601216130653370864667348300299620940275312390335026742506519803373398852771652652987417998300229965396276413573530876426230487366772918670223575637029087297448335631326230078206101315959378748717892547747890721746098575625938314254246580090946017044374649240516884031683196467708734536604701355351751868733675846727545823232034256676788978128132870122229771910244520906327912893003810621206587879674144668676474764992452181768515582688274045550652048981504801153717616252488472047961822992510784180530110392277080775929291682695003376161223345033120610802969533461360012943783229320896930691319654537775051844998410602574052942901340208635312862472469461859680114427500309266236232260567893531400861675887842791750022985661770168664260951451709904119310608090289889943020703308778160985998226850845341205831503527173631121517690878327230546090009641333624017111247001485026963195202454955757484189439642078603266069263818928782165880057439677988169786853018976354340775063031902606693873020891966175482935653051308628877995175193963599830357816637627525828457040368067064548292003837346799271972591575152244076309936048872301835499955802195383094760201153577155788209378409045172567769975841665859877803088641316613064522186134601041178880702321832773137053032261753241370233639523173478536939442637263617948604474543703952172807744526581970934655808327024934895934803845733368567245977188395634738153738932691070631070374543158449484959835856791782655631592585364345755898670189553612473109685535702273640258757997824038289312491562797632154235543596538526083644058889483557567856280002553628070994138095636246784352138681087121793267411276190089479160353949502396553559065814996735618607122453280437844440246323897097507974185263895382882589116830538814361404231648721704832062189515012469959720394204658852992371408727926299099796472369434905592264388009353521137112542369732454110981085390495922709173473841565698715988355795283829770185168661018956647019480601627839227591251822427679164831936678288535952295199925529062925081257920281711251021794998400786169519350655358112174752149831649612585123937149747066932170877787117361266522582946437162535474097265014680396771784739234645953597431971658405742744259431225414357408224911843783664784285900093159070349636204851734979290805877370955349720257958102302884906736924494366530819293628803134336758163853299796111587873390071322445525726896821381045515913698826055484694162380388944989507259774595582201748851885898480356141347433464871899969481426032129222460193370874447109904166829954568531630059885442638331800144217617167941372452731801956942339583143499312787833512500426599803047687893448963208191024519631146082598733505284642088286243640785539992523936477352586781097369213516698349028770961877882148022845240506220858026475114123272184553185105753236452786650580437895831827785621069375708102887118178138136931727083292033622855211253816332937928375638329996930114925404612923552089440295364387829656456323933602071817528945831122498882398143033491904936435921460957004897668643560723638427471037711053829028397038371397382306740591027464950927451229520243920557710883907616128642174901686424506313747111782854262917974447879081700250676240124875553254124381286213366244779784168504661427172191939357877212667377677598728781608953404811656827777330614426534326633972203126670900886822338084161579559339283812956549175219613878527988988463965396205497098743284894595165928255343943384039829318048727118265670690853201109507158768369946592219580914408502447050978025684417943870133602210883830559604078988727892189160427075098898020961989871460310215189736895191244290155662181552047376188709632271968905616225949502965414102022591293978183019794170636174351342142534064408891338455908457261949702883687608700741884684920401311411759437766456694823036401720137119983267724830534900846876067752622175708685533654979548278659484318009491498593287097248925465346203840441536721529578786162635578318947691060209451584859913797311699000709100371503623781209531699430703370559660090235992290887247265528166962543149785973977798635289974057809373024387117245749330962935009909148220207607097743284759408374378408437062362613905261036183768293723626244441689384147942378067825286552433881412788125319019238110730181391068190634894732201531356858917631071456007814900301311725978999456542615891573386856768521821133603684768389885154986994143878602026356477760120951402855374795520640935943734387248487060838906166450752656760478698681353781096732132689855960802765653159895247722525258652584663776674538152565448147880182091277863165337672325799654712794445547695194752789175943286447650625003871746755485221522134978379970055258714038580442752593086247700033416070161333849804941811802902907915125122939138914720250513216571917417387021666148685646270241840129841494797790840354087716173275618602240311246375791064383003403674324806367023582447002497954577958233703965844725424414309753698793949131005483608605084403799837670052743113349883056208812585582933190151913196861148273352360974441890597110520152035679739925923011198811949853803147317113902045467069307145464067922040149134966601383583180604564451648012591766581968964696407955499739968785236649269911466863855409414470514109014404837374805416147901740489317008410818435920815296002694507647512813546137327293619046578758197987971535481409342423936281837478611132411458962444456566350521517261434682545849730933735417723795293440215616111273293271239732916236153633106329619803238212840955948855326880483527925737036565908326926790824793016750751441358687743840054576149153028863354106175999301088617420686607654122283491744791503592659484011570059446857924377749839995547074749093074084144095632855934681279613318393381690841358707567266047210938462004082378780417539861032135995619435333890222225453317079790265923094659416425954294832632454178547486781524952340935509637750008524310837308913658240009485672658146709077211807047701675407395328206744520003022782525558706705709108635800156215378318774479003474492912926002661038384873068401408308177574093698425131673458566267551877285850329504547612923244714438357795352804999714919258299022203502920629580412125364386457697881407088977518066896358785245866591717162490062219197009643133209474789524157411501496778147363418116883102255321906312039294098315954514283589286693965403128291948429978576367238506106368768513919222163752651729658015789179407757052449520649770155822904476272040915640817139278333265995834461314046394089403433964972768575576191822769899735143693456401658332722710321054366258534066457414984967853310761391778223599389978836131332547675926489361836941356563022108008337436176060287690968656404120468732582553697359450010185623013688885378314860191754164920081858972640541920393653613670225410341220426349725544027883569594162397875167274267524471008626230430093079262975149170338548179962262751248999418882860859055898325678418278117658948849872987313573862349792216649087566931669119755775857785644381594227179514351041309118993030214831896819860107322887987377845957728181297930595884471609304250740694237830430871160107567610286306158456930084030953319326847436825456915823777885078716954533845304292693933278866730388274831833734916017091519892958195956314792471759032057085959995412329281352670149342609822350286531695494962417988804179692263976129482797473133478592190411700428005005960215477365029547527271657129446773572751163035243186465581240177576980987711693188331088657476956947966474537530393636195567240895525117092661596326129527724943428934024581515585585701991730304466808161671663566891342925233751703407411436164415122730582293493903731178065922967998826587451468838281307344610386547252450935773540302005924427758368750982476378645563456911053160631613912235265831008009989993877640042999163399423288476497769160685659136649974747724937164376218069696942033188437566819589132569597247242391028300606567509194284116540185986234295791362354216754430384165636360862394957190994950171152233777741558611673263745563680123413444601760117054548434073666197931114802162034644680201100762293895625138621999816854427785603024163383049272067556019641176793496404226557715427540518435735077287483785517091131073665296462407140543847597990066687226711380524236895104965057790979265139680268620282014829570498768278115666692181470242775827554069952261507485702978637111503794956174838457875723428632356797609182669673820916977157045112066089917229072377800504455003024255139747393118735215681128610684447451664658673814705261433594960174725529821917440791376847087619108884228666387601008083237293338405286149984591265874123132323085107765651960350283259585268240867456544462292862922955073721165007876155844877102319195962190796784715143384661497681087643285433527769877742687100566373387576086557465524433137452475798380626876918527585798809641061744274993676483210586205467563077679339364038770436302295167238043709764051517667246547806861351295332399315952618748112858734620493723671252206552634382610868526364223127976317793425197511812131785049277826983291655033243507644398296587225626839341024415845869877947904197651383952017232025495951088297001151915383927977568812884968974938291811989013642991230726076624403040637898891278931984915984183565070122315830909788331081719161616891830819990583554110947122340994334286694176095135833889076569413330835259912007270197549315995425291612271778656703360642767653138602027516427483819647678497657360683463043672045143990492961635476047693848683977124523426481655083790464020941511350567965625149273077085440598813438653503525362191263420516441467958706200979460768203478228291984482761542258385035292732812642800423107631876893571784096897989223107782186449137691707085794133855787179042845099875521004412537915282088911357135037181452471562243342081443647884818511339793807212551003564520942202610707919845933440658667151236424508106776589095724760398523438714868713506263653279932724619405936342900032476865438392797591769682762847693936736920793048270222701584778677767533121761336520533270400994054446533761409235813830480984670027972943243706692299252102477821318872842364330640356139426467711311852353636419284221472285540406483525038052538854774470248345182360222972265336937310251915770040510182187486765701011838892294029187974728932220254830696123483857859532543439683242772787175288281372537773028017691194350755852678418337251710077362086605856925836802825588494644430831537438185516373673687349406394459223396256132653025806451786022374877855691989221927768636942615897945645996947756388349628759425708487978095959404672006857305756387461951346768803962018176913449329143227171503593060354959426895292050840041867452550551804215078505518075412354499522097410046274528879437395903196738988327847304960256909404281543030876826401642494866854667254425432743183778614586781866619818814230747603439675890454516279161563139493588389875129297067815111409069624328006415984893352848862305342252427480935356233896921709854955537796947079233701313866544464380732747333147947410316862965317320249433774945719248164098397854235129454025985903436345737740776571997419613006915494230874099860988127760014959689929417240118202205184805936326130761116191999350225593058943080578562701803642881200922513017184610829548166872771446665101013320007390677138062820212923014301461822780732423616737205780644457725336550653816096174394281107045407026832357717080688019869176685215367148342494957002746929895142195810649914860329366988235152994142636957426660483182529464047279788878207729952524765283786616424902412519241057392585157393213436152022245784872258935455083772284695784658498461411588917669470974064366230614970510873536016364239637958612155678539498425776523065834351105250461527866360094558451740947115149817002917627369428499352599272449409576619450047219785315578879996533379337846945629743544657438320155585722508083011180961513859826197103249939074811068070022163646150723587549751851900584232072022813418623507817060188018640082884930372991735543122975120802292019927485995981445826767996649087742949895125311211710047469572294492882489452840238537014721920311413915295179421931229783551932933982569425330010521908651854336114159997407587211040089372654823332300608418041174227246186869433722422520477144070893223300294780213700570054033050604928874409588639620142628391759524951325006433859238853252595729917249385842560101393982917190259469657981173920433654110714898295761072171251413404305791315866273153158287373035463748264329932138526211611104530216990333444151483131377502166734323432310015292957788657720453499421432414489990562055682996333162336792385545252968520631078348097659262557796899009246851281175347536875902913633190755776527527448249719966423746941371486230694372828548744531511003377157783709320451982763994209713604418871062707259071476159563497058595143887513776442696074708398080172311522762765948181308012918629742112690419759984288314815482216209446296201242566723520101557530476323570093615712487277426435856817208525096020698562429501541090344911208990025045938448448136437928426804352139626188415237811667979071261872355562075404484464912721444089852898556749439333756134853649412328474076503943492901373779959297218153485389180433195718542224411554740690545321902263503679105434041848231821254825249585556832080523829646471133611683915644930506189811903974776075340854669686791941422214050143514464223147516935508954898492923811717338450002560200690708857601713866072527265875807839266411598105465785177891810192478496503331748559324734540057837362413950061529396660060825255869135193769022444672424250570428217015617226069735777804890244238913648667317688727237034908547706915274599427861941858229781871985673605963118718367144264176864935021292029043913382913587856874256506000801958312465235116738821454527373728717563550449034667855693693989258784525705099856321538851076135383226765878087774552159088802205303860746514338387136364253843687405631290306916332987301251728185833225266420331813302769416380878645001183777370363006152425321734706122371418616406280583501289929304465374276133335709168456005871238786418953659123952707749006755038739987282495845135421873919993541223674879840222697859716736932955132745046079567078001712518938596341378260114497951391596385768564332319774867693758461035839536398323936017212826308011318020048345929720233632021948336828754760711116122707443244857320661770177300081994132482454030286563325501640256251362622847931904363816625192112911004648664526991882901928867059177672002083325677841230754318112003673033650374301980560334687501500194233534218799934940977589041496076461519117931988220409217618404060996078173180466281091760307022010893623208313389804969600078913424601628700333079652780939051287109169809186129564151797586513458081881536467838539777662286852766885740129908368195510828792468513498785965226710997285329537382960446898392597411731571232428918335174109723998577745886927926566060689134535164978966721370918172496900137387925950156527175625581315820304513136226231422503189243619879975787602997928179769111610014775955139938038154413928678657042719310091552335109669705881575206273359026021649864572185539489965305283784444830886746387100842505415447743921776427723693624924484183804467293706982715617647489240618480213750965835738431416293513319305674912423397621995889526323623258996866745309178500070394533488141466694994770552719224463254989458073429630418220557174630875675122230085667880528550256365612720949783620203019090744226037709177774450408270573405116295147646276188222126058691144686165501532168768633605392815822039169436088496785362153040383257167923615986658632036305806879161700246732331660810745165740855929252197112448426050603121188722824007663068845554156678175110305458305077432478174340054385269268905324674744477423446650248722200186564523665170954866020524021800608485675133243690279763207130087404526985877383959045144269458769428307325474256674197695670600777257986288881475697563090469792322612759813036063062291889700971820333662419718866148498169321033447247591564274897424737385287113730761348077116484058157696147595218620647579056592661397802248700838291057650292706411672212446450270499407637794407345329585277209126071951580463849660220833183752015388483121707702676570935178327494380884515694786969200779925960027924936764255017008180211873352576130089911810610676180386653056042190494642582460193901746683586292606120049324868112308539120492744933716731255134888937612488795982188258070887638853638946977983272620491969133728694098794207544109936490722291654266458040955861237427421445637575604094663813931094029255742923539432461150484629040411458172689611704872877958607308531848862990949331515276687278911988726337593633655653866140057978571249593216878411813192408251406295754640194759473527675636294907319212143260559545568407748540349776546296685863609276345637998665213580260384942714300153806228239037522954754031742942791421406535631968872351759446909223374835768173688605776985334587392659205623502010136651709511380481831661519343789590735522963216790745427126193528417511390265835182668012046821023277672794124183317488674723577125993452559272509337622045319562210328554649388287858959925420657076980535794261429066220089886381279914353189979321814252086430246127217515196288623368053792420647578191813447260379733689783012714758652008876800770750256646276659043953696469062540609591595546356248889940991173377549167077011482754143190978246488409255649444421156650517928330940579717274915003785644556527179048072498289648643327426600331985279965421390533039080530616224245745315465928447053176179504374840433642098351424138042621813008540200198599406697834770035969997683985465382854832559465389232926953220959587527290206496461047391150261279431953214633519233562656944127460103751254421968248042260823102508646745017359095209566830041717373873790020547965890729172920406555241457792446191025676155847845275396179103869269245355073024283941271227756720117118919279307343891481049819963012944212437685543067294397733955097650805784749441398820053760184066107049516815942008016423484845472478008992288911780412672398084763302292078462621411374126513279401304962119085680669797787143992473381949119189356497663467059133438206814751617281011134607243995655649124771741670643398071233981485491944706540413679884214094269469456599109792420721190107380817902579705188353195261512383897080122121948921327073131704820234904939106747602994863195844019346147635433074045729778232342786727493386883486630533550165942995461602813769650431931861171004846530553599182753124792105513115540041880456162786364759516701583804117706214055076369880504365793452382358741821170802389824704108701413267372176730057980277316087080076966670507941971369196138746358275329153953549844934033536377803252061655215691459606874793104241957872620480225337368313974476034704909546382398331692220689206576486946407930068349616649445094846261067642590516813901896008076501080027562317221855618882431713694933277965789803036572650289873689542605494322025556713334035631129801890390462604654213621802423294170783483945194642813596847433056307421981694581420527421189780462676558365856332542433958550022207830932155865197938030817930695811379462683905092847039581242957377716924161993592354053798499696592099321797003735271203843521802463145719299046790882554077176753468882971389771756476601213007694216337434320377258230401656952246785297289831888650252283035668520025183194752607518636288899372517032471833028286976718611339367912057960734531162991714554764001559280169529605711349406302380991546650488842539077563158932274108140461081814101934982561900552175276794234118499714937558893610486519219335370448421330476437862574222961319918783402658816125861063242380922862257620999327571606287167518990213853683027118251302260761683154367435867074871906169620218069272705487186259065857312802797908800449495097647765634529960000447739239895988835165868565033846251384353760038820178911446055944027279173809110162376819490964835006231672032867589937455040332098687560513475425244737728155958513003763318965134439607866206865074380238588811949420267950088855875686545775743396726131742173845694898994000347917740913148143330205129731405594700457302091615741510380223759052199631199236042689878645053589460093111820338872730281760211140130684471333582074575678516753361883295243759929859258539845489078307495390006792127435618648162260101623173123435971775627209216259879949542681223592423005523447349921986916746735472403115665420652193883967015482813108547540407790542032428334803520964507634475824085494842242412086442246525011312694393395238316395850608362920683821831888583032989114189018039698954177646120291219110521017976594169958369756774517399777425171202632689565484666422479667972172860676390685507457437644749641158318271434357824127687183266897182176243470626299175775729609684514965300515659347360828962684457906320971261745652156727550710835587420982565031972166086619954466229841450178669072228889193722461312422366857674472074172076040591661712649164346961968908829578445216446155548406315303958700729168008555899512694159227414783193339554404194114068886572296015476662185624614199860482068060969656602237484745362553604093541484861923144630433382655180398089182346463580214509007997680694443155864789999330628540455817533838532705373707474893768756488785049157868685725800574946372114476115465765587869797721916901976128948122279988932928223136857206930736024245354268429578651560411239393649589331007749226758580219022570745380640836182627160301689062547648574477193371892516766290400657310797492316670532931823431054804044324285257604902917657634525140550261642973454455533811370432711920043353277576288257603378149962937731755912257279107109834149353453018235189016755751512374313635693785828276672468960236743457158163653847084402703494693290290240277147489099476323040260026476190422306294866071793378598966454875874716507826012860219281464088881470436318059712648397475799493289869938630880903369291410412923051488902843990629279687532200518063872867445490725156205749353840812268860843557488102615983804227574821635612568493147097367220683495583669325812705347917538924513953225865191860877060980427026102678830450101181321644097100640894874471219616962398426385504624767739125294866515897660480516949869823570900019751307347711016477874087752220592682790607307142592825676452086665828798929392588744459614377937961273146735876273977656411089958065333644836054157574801258161098953005034350488468111129080863872396741291629951016851431198656021045934820694420280049577630836315681737086024190967784317780082975928938981211349093552972792221296846170672118847877595430469268325587737247398359071764516490611601104393171988976397148048325127886884879414808459369464735341538904816850242385714173767391405739454265120143536842045938037831538372987754214260776670336617270234725604346685192158087030833560960691445972725682011041063473473998525319928722675360658724991002242846526664087339041792022338382274662208200564797438778084800061943841956537030267609867108022158374111228338346378750818648034077815911293434259269373869907998352404465529059515804649575938897668533508871116317439897778000026407928756621662948167129037059496375500284325251464522166250529884214378858865031135713454366504250261999278461249434113663758275390321969551423692574937379323658080632297103319086831094317792654659243692937458414468577258575010858482613779004491561369646889527326992746619352051391702884647257942153693147697601647764304324910098710198567009176073442269505823524734453547705231550889658580698923782510149510429350565072755632306133839315165048474093107056207962836793736597602221314333803683506936743368072175044197903030457771522096713804747695123781702003020593083090081451931074922737194984576428330402750125060225622063350768780567607145654314926133797578635495495885258178308093559377089963346403362193741833226509414032515809925857988796750246085834360706871461517853313930575711037742823119727369243012163135250433206823862318517610450613061727130252159017225419532682385844080151004366168287443752260764079338700949884736453523489717523075674422463776784551649077703358204250966942978145421657213279025581081427463104140981101878603681636063491443940140229190192152505321068029821152755756284016729637006827002765342706041605284281096686326048089417482992009981565250635893151445837251642619300274270029440462179690467261388273819530412691818066978722139219665271091263600277546948230611629369451105987933296111513026141237174293484827236834733316890174285259383461471924134968821223418126996908273516148106816473844129726975102514782945908724443716413231482380506919728575656165050690183333000245365732500557218586729326628210537626132418295023206460845640251700113533799286998615297097106533759343224495789440067295896842407962581937556627848388407255223241304302925077586119333326562883667677193452567024805808424010732537278536443540587582834306202543412300079177391051412376574273462092508398422302986796351631405842137263206517076862282283045161428500144206758933569662210657467077872203294319821343652199110674589457386671905260214527157054312377244604497488235156016356463617541399338330995750281585239426608852449789702994730037040953056277130623446898466811889846973257599494821901664575441737720541474204544258096317633780665360083975650953263392510670877164809143337506344139626231017182007805780008546964793086204862137036601304778062299101093405174409592742396061151723938862760624455516319578418626923491736392946344390428199683627768003437259274428333506055195854169782013194033878255261668989610668720464248561815165226465283941351835102023250073809634665098020595405791426085001491197660349283042403749198901804751549996747280031241160439256704783846219696820247837684340119990380305863939928462217254358281161287521190541446860467678011807432954534381066469347268298036216397105385196009182785741881509187457809644564249428249516489672049205695253552767993572443552971019400251610347205595899836814084972317180364240017372104708665875602325048395627857513826956049243873082756630723094279352819827756719728059991506469838892272838653703990588527746247901119354959511382452651450157657704536836144135745866499388310881784262701276910224243494176328094396103751891286395638366487685310800429772171739742992722038268258991906529260826143221734464735749414500616128017904836321729508879246086519718712652566361492798081316040120080889058082180253769215389903843976248561692639062291566619491488180324239654465381680359500411388160282231661824066023134494937878851601443203293756090723269893415878948309366271780399440768514550700918998461712503336477741541124991783178895917208976359410410379314673310954052952590277466455897119365199919650147123678460348544775045604563220270729419013248572442791962594057721975271118169317787054320270155543669158783599342317276320364338510930866054623272707372009968440489501879115590184313592984412102080208070014246235582247203272703068188504259919578176741646466592289221033671754666525029115839032910908069158034913307233139816757742721097534985697035964872898628828760735639154691626494088748739982158900325323703713302762077940470059588384346801325304050707377147223526827698897847778924257633443101031932642050215318941082237309227162435748534604549312527590770257642293028297538485557373900081357975920044243103050947258158753335083587298013830441523577472967725729423812518654207397317594539267446317608962022931255796155774629764382701675974029366962496587867712800948326407181786695908845333327808980253302297733142186166737289690414157569199536162094492493467589385910865076385230783700497005788687798262258834030702598578530309356443661770780987699842495207355996590478877300457752889170142826711381048243966104320224009185964546684197526216168547168822714884755291144489869713904065634136882719766255120417465319531432690326629608593441595200726860782119525659701539209146305228495948159823795931604641777332200505861523332668452692511980468122710064547944160178383076137847064299460967124055984694378271264566326713043121867623802517804829995227313224729230192704219934747752157051353828337393301045753000278121096712412481880456458819765190824057450296752020127252896210609727866997880422205656668919918997459128391656673033847362613416780365044871089998007503317458274436043171782924099959088219370721993499995828526345013658712559594464438345457500471819254197487549823408559583706189886267753630213895965202364770831249454841866068933795192472365534807734075336249753257552570539099590630178028586890612239843879514806054921539676549608436366711703157307042397417187115572836522572181692407541557669745026238500117443378567147396275906213045427262250077011059235715554896039912256657319063827305975821709049772109706101773532099824637569804264756430557983609255491911266553433942744021433414700786677364446044063747794868881479043893030605977802972469319483897271768707287776266955834341348866848315163973415953144516498005911367451786947763777902861369500917743268060262188228354425126079148760449677030855551884385784215343847943244541720562013887155877265238551389193089343229721079602844849121387128610071040852770707358852611199820692011033205987093323171177724864232662909354155996273069429188543377886654391282844816400231517253371576424405181769268767861340470086716781669683742340277395643397024726686085246800252479452872348321462821077314243320913114205766008611046730686621246321022058493296929497118357820319592868176601228957846130991864776693580617641667004768345580100824604305636513585959934587758312871275983817064858076594070740840140412213457628499630410689620015633443816702468096879593156267025892062333174564983321437679741317215642792298065761519218469434490102460909270040964440618892932192932406624022686943149195230923575216347111736709294495426953287292179059326633802930093982186162150056594407999991000449570929567219691227604447532507338674601043234159131124721680662239705753582368695669107043663041536678739613715749491491169877108569305987081829670118046585030783153220924721037872445625171299874515283426973432550705353828633327540792003975731736139967445866622286889516298613301869048613762704172949143035911295218763438496511291921124051064468871086509143499641639774575723387802104723912609847222714778455300291264619086538552056657221932486785196376191569961409835490370554642522884307218269524771705345138683376776574353547064906432414904807628133904836551676292000181451892075155617865811984245684307222286648218753407500221641446404136053264248632168009201501827736023186348189375049690227755695457884606334297542467949339223908376978853804320255108583342296720538219447858822312261757210753555042110380177670240283811080552208980927932020751946146049889240381506321877679217681159592983379953756910479823007608954924608742249692724266866491871986368640660326785374541158771645776522039015313321668982057558389317490801858215310718503399572916155148723175999472164948961680730187850678086093149377332058341114455412319924666254072660781730878383668733561379399687477683670346390884898846396706504022307639032571434474680532680703099716768999104476244147211713371233047886832818238661939197241394721035531907475588971523678611355319751972234966066456407052365324717303455701149582079450428583475071938198114376209007140857786962911752469680706936470740270569019572371550553729798012129166237458888451745783381447597836840895568369503160057171682235253006050605079715095705008073969634616042740103930092212133312705389097896250705933070635254740412229079798564698583773724780223810580189284672964368640044392965352159690349672743295668196435485955131520502229261558525665134545843606591921231484706645522082895945042186479688315223657432272289248125880213024556859463248446389991112431108418636644496715595646038420641835911475666993730749644615278016033198545188096180139638954057398918720444840524969323205953715024144986058438288921895602341340756883802797816107036354973511873599264756360457360660856708247973546393399371024144768129340088961444877552272762783936599519301188004204180675794127393224351560507710324397405467789629944310694704859128660516846327784754619524786586020958275215190384723994860777755183175555208770724521587442617046436442050137019531376213899107995264860574551012845440917877808132349676151831278491239752174131046396612001118145238402862383583341806994300359098275715897699681578319753784115081412753231086699826891824420832229593557091803100443853066241751526871833592509251308432054583688844284537755072750491536286605435462356718435442018813164953240807921364424311434896939565899431012058112366016631102229182017765876727677092930932822671140597344055421246489883297147049632938754352769764022677380242797373359815583683560032689739389744949275681199510058630773036441613982176896681481726268976082488186876413155997240671290316140033743703922694764809942084394133276852234769367694196272874186284645340993666294374338647275080937605688945553750377539972294109627280354229809293817600757927829847553521795576635055713026292564221633282823950629114322232638464557046924018283958863955303051435315955514346677589010255970171844430273084666624444730883332502866972467874252729630106077366268513967261463431673973881812437945199226938857961896335322989431829039338443893623233911893861978116310398829520478632371331807865462342143885582691986937752476802387647862124621692561082628066013385461309329016897703900361886646453844246878123687710536324053414262970729462416081018027569476991905762848063643479167170767458050146990120012096660503366556776780355587325400134645542666367194862706115860727992218157826534643337429080283812130658630248589770251013242984904847663145842538667462429003431657676439614003141557937304932743151536608621169367103907782264012638835021917267051780129774157793182692040193258832206515009618141810101954101250938726357142509751409466264877372518040991487859929595077139632036983479749003256728292967487252709211823047896530205354722527546109656751720146102945474397189979543011148287809339083249645115474173930258965792555589538955524954214651387445658408977513168693438099365144275804171869492426160884122792660258875273239220114948800809986405328175531140051611079357878054634238949157736076572620256807032842155517814041391307870845357987767746995594596518046667914482629961767821409856649216038775229828393025611400182132024897991473813340531070151686330251068688114280164754714646115440843479618555740069777592190596662012689872808313341335559749476003650192407942631339245988816701348204722427962859598795898438583726723289799788001508586863637433647860137083914692218152607159223445086070614524120240851811794995154066412975862614580438050340460727202095241058740904786395425943013819333881134939160496518291559396419703149602990912358661355493138649476554728194416667618047123716453115562746938632898906863824418755611069720430213532175221685397905609742543017758630536680369194854727790684059263632236497314070746655905521029601848018272547910654261805972578395606884409847712533935686972029419036466167013489435306673792671193978559627572772887481309180749608332819629701513628147693949801217875588826944133896946822960148385531386272615716147912924267313767263303534071131217994500308317732832234488153786021035618819709020566371516566982015773604137459571958565502741496323976189922377433422551569353252031973460804985788691185205247974343370224733883690636319669269827855866900206539606246380048710605330667062743124664686114718206096850644352102858238202351457293207935375723225330577775686719727371396428431037776475773975523737834051546746048511825362295640025087432998279879342393918119874690627175977884348896370948064619511594268505514229636201069460200115727686066988647448832662662095053625199244046597209807787106056451571344811411133266723854211099758884781834899170225139005472736923872015435853623399962597610373211141673506968274603282171411978020333949513028106770116180002518053347233587858074259110966537547546738324483270181097894631062049040930089400374573268788841560383980068523391249682385546447801711015784528553403916570465315260379604836608895424861864733061836542430387876004769444941184847233548565774752371917889323344032182517577791302369621949734654461740208563359249942666996372199294278388085067933279612651308935758403770440860162075029648606602802248318820946954672182694230497245062152800813351897355579180256332691916953031383270730411924003094589428068099239577091791218193212703151615277611381931189731008319181403480028306498519201239820600665230497115055953398744851729899079424357819839821942818403390957040112884477098732907652566862336481398194917584625752787353903145070137520998989198712073302159825047201789496907554403712637433089224183470314342911276372654566232135882388220269276977912672713537707679776309291605290074349860083543398506204170273340699662766141519342873473351355857129190529264540464643584879149290614388267395918588960997149349954612475991269614384441639083746791917966597986895700142738174161241279199089315207077817274884492612929289647444956246304743913237955013155307430640961490976325271670030839203779224561548004826666963826232912780723899822761330944581909356258815594423105220208721027521813299067979865523394845000336671300802816063911754656528242843355062603261803702395949278479114660861770124573338507196073288182467112697697838108242063867903022955375758314501271873569800372790916963223281975453994898932767840831817275194700346253006310474589550204157483908895468264784873549713772602002373773639408502631145070421471739521925010314162920992583999708585812288798230243322343976649828092804312368384535719088456219376459632766632544348733866874480519599150284382251614080840483545126122186666755689847221048865307834550655884290978595374827936842094188578444816922468075546417048991110461534379546864460476161673582483817433759242939298865840905282312610212242467406132290717423496055228184414342717707881364472220503925712719905613737933257811315830326422742325455861986359492168661027621939721373837110472078637831749188924441339241595818749044321922047806764333137649954751220322130920442741186225501570882741303074342804561137851638674142232792156140550566377048531910218046997171963063801787841474017494442778766297115580178033230219915021401142472025136730425632746274036489182179402747586799124644032479660052641474648748854861897975757824294650687797117540776678343543531386980106521485820590116452319747224989371773685541375488901902315581057816365409055113257872171063638164893865848484990927249631776010039016940216505157806020465475185617584947486336202330582317411795515148831972411471375802042108771835136284313349594912063277535539500028297141797313982759452323805414483825088208572470621658310005135457736018498435077324937245389755317386046870604141480863369827921244177659551635619975694682220341812731896775153017404052904946062587138826581466994747769049810885479560873574213941247351297489987226274793789365064709457845863368448429681874901725177518369327993998514010038072222406397075658121470469023072673268784958146811292900112847583526080472498069723741810019507922919067007805184082474140968234707380619092906254537869889511067099968923500549683017604973233882684340186055641087010849760099741882341464813426577536122170079287023224721518195949790163981762395630689779361671447870812477502703287526366801385025530525006103906738962234142213277245090381281647595672263774299348509529564377407204266979098459193811460648258032405487902212658430094074646211891406066905635136939451937129445587022203672050917719473092781120682712801987793337903083415175753336816945825051309397643753759999605476033613946125737104303339031297437631244446899407887240448039608474202546568425603160102852298386699100685580614080147834442934447152952116769418403046869089451809536858657985007538132640733912346759429084287593741844902112207543336378820526409771051990690700642788855084549510066880361403073264132734279123986559044404589940548554059625634371418045668080411488675503027598729819972317489832981511456025772494062781905168510019489058811599474970723801065272259509837775699770614205336501854581809325637731377049838169767166890072434361918104819931232848751928333504507580442140304478141691933147241240969479704145014670865391412115990648796814317674122443286856222345746379172195515266515100119458751685876813694647702380611714558493488424747761927026399462432328958686884720404493841293558106431983210585371432700409082910519383235406159331325064771238058796701071287588455119898494507809659536053391041939637244500672862696993910238851944547900056551260668915410678000112383725562277086195592043628871644677783836692233916997417181703314362176181483562696456901666287842129772399867574114963362892600264055934500770880187633185470325640069966467691732182700206687850192140179470877290158435814378159873879479583023537695733208268314495028253787274015585318956149181614950080132205479848962964363767520815388166877787911050164593225920964143672902544844518123246222851208969058259538233638714161226763631394586893945767440647447669558242126575782566195167039859847241127365149160783540856238176652474336365992857221611826741903691589318906959398975776659792035347059080988925656127449078882346847604273512374965864806762993779209844889067932449238889474225968350568377877355830985832951526716580806481246751860640077695913043711678299280081121339875279984357861928616382425714777878987094227662310305272276161611072642675300501683767953054548125343496316256492130779387897065349165288082641475750332783462946648534486392249250299346411906855073702804492826235821858440074058039639145139507721286727813257018552079923985871069947842422098369886636521169006447201211618700543311087202012380172293476693589532223075288827077315703832804502349429122807203222085462201938621643577276671401211157118179877468816458761086126448091824996005794546297661894705987947572742654894193888651619579896143257819940816020896807030707289683652795541287562034300395564832838935046457190175099049933663793764353963587272482908488197517474132831557345067580683634179593204155051887723363617114242952528504483768211701113925219320971123151099286576899305059174960869523229367859887623731578289084337968445576659289814049964673403976918368943325672347741599503888862149737862991430523108704691347254332005948037213010239678232779039668674992056133772439952061296283439906624915129553786913593839521531099500875299887408412751589917084784256642629649600654549942398057440611468099129040216958318041783198641577947564735847220109353601856320355091909930534953804419794635786428716873874583027124965898477507254764754534368854262141761221795226356607330169545609176018466059733528228394083157789564344451425903293331232695202158367649769801299271468416636470728758953905813694865667984478419951650639172132187500815589649503430686786078888164269705447629003926351636532632825559857593685532965069077084172394384419362431943361185912225730567382242813271809179463587185130747433972658026575433061964491724742765374454905471718687521705908408665775226545487052157086551240522314601827672809552715464822399467057299600972189190504937418336932001583796807781386405544989094851366738596011514079851792726171703358421000280053943868931972418666843427251676953668093694970552506471583769378253269617834390842517054810112111570421643972665766670626224852568580081063422121443693843585570032448075136079962307288168909372948160230967843600621912417314259397740639784468923824701740902554136510884061937784828181808233910862441587285763560361732387219115961231041650214023241590327498755792263359878435715823909566442945413578646338186791006617623334865080608588247645001577652315148737968508134708300893816057138997317023915269206063384523853824837461995436551220902081718766526175556043678492762853433148090759194316448988273590213924454518420878270362861234101303214655704088949009586781235919673689654464373878020513185200221271882621512483014958100964355469259002305644409476924041993576668212974199690814935276092321809281492174839350739352677349349218145636667813761433381224021527347864373278224513269744458496577128387435654051079450023192534155624533037279862031390547211800937841151996223446105282881543173401625090612376303207633251134548369986830650049369266816803995136397593121771207729610205292680000315656955708607617105059363574747701802239641801637206389586977392834444210108865833749097202504851958326974107796642896683224332910381390110623476248065598828038995039285092052293795706696821963192192020012834462656149966235569899990011013793643178004948469939088244645601939410156185633602372558200104492621350252540626100050215172096262583226320154809269374033706084661950882883541539077486140389608585340649861884901862092964265401084834611755999742220756954478095400079351321189847657124164556292428829790427591196554561251756080327294031902796689668570211114122824390551055930583000612839663640136055420036908316965034621579218403716745557533487127778263529614737349935192655876254998398055265519619238500883644743916687101215990550126460199392057812488157425104671533320450869383415431014506751566341161606542526829116468900193141590349407455686923449472371215774015756306096855546183415198742849485950047977812022216727630198388730378508907373810790384131917241507293451230514957891249638232875845643888737656180783003158375248481745059076870648665583317577977115437432396670947672194273843803072283155622890024302588858835880269845339294306250939924529480008368031761288987937017284210357084013967079889276961155249158635996099718052014489920534404176848080776621400924764297538521468269265951113546264462889522907237828511805096885205294208626708887449496907245058246869465535181555853548485680845430219173976885392695462690489868265653166161610276908492334053607553027422925885553450060564844818194492659697482898011452416153297304024425586574938641668289975055680892050749341497651472966159874136046204977780878658895603123274135658278519756529155498668523937105844648049460649764354693914276406291135907623194251086678011914318549501610008080980462686979016781341917352750960957033921199374407627851003647643274996385158058863266621494402013204852305048250100921013838573926656765448657289774335699568605235744106595181363855449992358553552410280136417502700550717187068138095167045751633248249801182469467415535727790699578239782904000323348188260882520406766874210313130355860404248168494233232492420458876684627242803911134874896023648234951382848311691100844646384444157034129411852751603952703841951469688203938967720275111758252019409876227102746369896820018708138985560373839120565206557418183675028005269746373405616559717168945034850829713099879964772958493351394419089993704890399929901517773018551257598469818419443960770720228678508982200150206366379064762208866009742753439812673405053132563534235140086365968927247017429820312434601861287438909977548460162593176584127767800664627553619268326072527764764105743061000202072828355885117176431947305148971434871771774834225720014646105017382505394082452559078244570328545796160906825049027977738442282621485705881669854405709098897571641511344211085059896956920988684470533910313944189180466387210665015758691696101895214016744606443430387559420716090102994658964651780576216219207715788437584860557228298625998703636565095656468971577141871459897590606340820371662633145004952651064494832225677850116267161210163363595925163730262062861394524165640331855169756253226734322980283395816714501673641046093431019312973591530601856775924131699945652935039389170761940963571084835264411143637656702032483418825092107384259226066277166146625309661389138189018369323783602497482269505602320791219543910467988326322802926773876329752971006494483148056852874993122721829269257681797678603742317399217464717691914133060331586231874065917629724793850963418289394238094517031103147098717430874724481804583901585622637122750214731021135431779254463602372951255680123878529518076147642710787436684185278022232876572901195579859889713557920429299539016980167830484357080198373437755597877601462421817745231459077539892907504388097737854590595325569848824916321445483622239722202602837186123814400449117430869404965031223635356636677059546130718963808612629996564394275156701172930415834301781329027406129452518509963772401420898216500183062750388020493764095934624384814702729504251497179501215170058244115018632374178974217406209052630698582323290205929603120345402873774120297413805994724398494044007418033778297928127278978620720907234239448911221820364831672483229100626609105540219543529470412221831815712450922847789800454997559032850038008495488574384386220495098636108522694934950851757522870673137996362486989055198926491822605228491755490553843173120213832383410366637738313822083481710387668035022422619168359653493439792575936710815210858768076395679693306495408868398126926221330069988010908562802855716062741375607947651328574874753422365637260164122775294559389574375358996016364914269216864690543438413120408179182035848343061235591301624273181345584383902858763526599655120532659405750814597180181359488845070227700680752614664608414987526877866490422811598022310345835868159168648433478266483590344419080412804415883041015695779969976302660106557595304571711242309121456821826457954668848327172659564915657405344194277087638474213646529323820707041308136749896133975127426523023723991041675864373173633937636447599728463055161632447793375003283741365546477267104563990239838735286952241469864342999048821508951508912812350999633013266625905187093436358096693758994108051604749507780636028435801578864556008601550493922052384333450621573827720947649427660392228499992124416390961236024160783592374622281591290695180207002691813213239546093821094864972257530549274472555925345247930071266696454583144970637115335456452498322940819148275028958430176163927325534814437796714838035097347146491801493305038358667241731084954574280721286746593917431122587284277499044734273666079746686369320765560550129417973836150299476643376627791376566808763977121992639194128800970109325247608798352804425948948627237726646266570322721104812097747022963900714156361426962285383566019607543451751304561446081075862092676568708810407521592089146295956778996577320106651705838370917703140036485735244281375561614957744277893370830147395928575307957432534037518712047508601728875342705660127444244088920579596621642479844511930287974702079772096304379367842091475765171910591696554652223265046043846042353066458042376448074412356586526666237987004347338234825767982725734556648207143628819856462125152323929700047042728826494494971266946493861311877957643324779902937306319307030040620255780241026220024975744019549785111310291402737734679714835398247159916637179182662453226479927914012369674913437915144101978604617602567494031155442464076747651369894100723524376823603134901107775116366018110944037489343066221777496796387021883717058751616643650507405871236448299941534966588587288838818665796103434949475256590403050565027993772016274906584111189601908398434477299646939360697270500158014620435694584565024416100918703215316559745690419345048258686901210603936679881920413019873219709767444896504074092370568600198861076872660252042411279732467892992928605249401623668430943839813619832890975993305349020535403242494828095594486493975345901339933783809201256304916684390430788341159703129748986041242955497233104333781271065845427823389231531882557100840213653646507049145927033448564783400149739287471085567723819373442058403890016718309239347332121700153855023369333074806191625979731829994894228341847994743924174589849078189105701982286674226983306783142112255433768280235739854960549794151876028410500095755560683034235918258489439743995543436724361751420051193086576659147635794010352367046074355326931671201352438617918324925751803276228382353754890276269326875102958775005951029324438058262581696180003763746129166524061821524990224778432654708469304660447285699842494176113360900898461084100010103055438686016264761015308103588530014700903203091031791868091167347531384652785783357375512565991048427852116604836170368085716228366066099678378291562632906542631391915089240652400849731890154169797771533646294643520530097037815864807946690503041547123770519128459261345776244080351335519345955258136227574835100059548108172620605234023774379427427970671714792663578800369596999993162830400261906267774810751339402296784958969104295651003892262847213923035979089277998223052968013821339394183113627755334269610868184624982240602561461199589263222230374470713999269339888172585844436906592666813580204572422758706790768702556713992357119878354337501307482318954965254680141598262916169256235293206932271437066545329189326779172368637678375884040214463700543098221439181411635586026599204393540308411619761677764850820576887597469413127856483756261806335537199390353152947291187433617445940272214474344484435990329096742791174941119661072556318635570862976665160620313628317444354253585429884765769303028241498839470007599561580796298178967281416750813004575129874542829751725329253123904267774823829319285133177273533958275773203750054747732073111476714259864225354549922224589064310902552212477316595253044667880664912708456310988594568208420200997510480247496429922628033157954135883288514450745591509991148620610226998714962528118288348201369936064984145395368220237613665988128299039040379704383950084880363420491870944070008440165402700380437802199696912600610837104021531896016745224885193689710659116607713967331803728697616175064932371623061127901810654515127447416796297195099808620982013969578368299920206152681239969517825386633591900728926254477414074595464112001540452547926664706718375205949163581298196661593351196521307640417228067784482619475874309631727206821437615470614304932489348360374078336032212384455534269484465484597967716878536599317146940517132598696678551101414120345056507893561954959411398785517259761263023659734833691005123518193602751242762929130630566049860477225210639937920531647088095094012112086814433002244622129047664032811839286476220638609262677615658873339446422110135842909697580213721799883448178827025555468274959341573392225352043758609171778625791361747491874987658014954463198526007552546681771988161864151127110321002276629417704975929306330216802730969382489490629214499731856856591744470927090953068820239036284166642514214380691379993180905028449525471041269303426578851858115999593853758681659671874935124251336842684482794699509095538454457284506026568318129162629844915487667851780499911520083631139707531766352411940331727745874505133069267161379877001151629156211903230886335730465751010169767579938662436430671264020028380599030019215619495692252116981472665439054698823452506044435083866619204707805963890693492228033210040812184540852886976239790032446089870398017444683703914978441034669960347958941484047541816517137908734299296741180203926727717954355211720952687634670286477338988475441947688625527435760599608414658982980825161857096730943054324212488027528766903247303357269554180948377701737940774955931696706697717279733395952548689484012802736612281187285959608521279441002369161895077777360666319458797108496482895081776589177908325794524121232130440425483458641478292027719749262618505384520566942263064303581977419697026189280605264682144297988933860937290947878833095946659351878522513116773152165604407017851203122236070910924322142896412202839399775915871166414838648193615854829027940213751643614701004688841379024457121146072710799741895756634202177877400020860154824422184770819928001389349346569469660424460803506069020635718429610157554871013100712989873916324572914633037749959422683181364712947822469434021568129401483025386042302872515439505517790582176511304315363676429586925275056413481233327187432571280831254776053491961746708336604413351260589452989953390619270929105122888747427576775899151784136506428152466429045303314153033093801126977302468869448047357928620632730303219411352884967741476002383921949160105170635029481614792930645694793327400560884361215573033970122975827063882200835456672446705405507279109430722741320328310625921206729855328197365561770535757005690450968379537692757483979763813923762474860494756296343472720554978448814843456701193937237697551958024376458625188236412387787779195764262331841731450139993932752312090995864204145833992563412620078443786604160175012580890845233392697186463029086201192616538126079091502850225099889920064689052611357617759641754356911311336994330135340508112329347680372146984736584305173339992631509251366388440027301623859820369034204788783284852590642975042414285889407861865602547733670052555444772856140778800588962246772889962915435017239644893616418807690882104108612958817405104614184037076724266870494604073540823977520757407220499241284535867977435700056566197238194124013585568471825165670357633322529735297402176466695035410105330035945063039229945968921055256445520816969597409115112973757513300024764704909774070575152411262524373948379459899252101294505289111181581194730604168348509060259941210065897703685134068091393826711651270826585266881077626239534978655939251467494620054835143315326854167986038068666785726840259157881360838323053742615273700855891662146132512714010657351017943706896090964160083679593719479135458309534592878923043608010929743901973425087745136729303007926609330045760218704098167847228238208982983132672393198133142509596159286187045338130272838618863512819480755048161435409653459409141895191394184644136856515144066793448278724580275507371402556456582010261010032267043815510416309503666240479872464929462247722659083287856843146111969322108666371868313750446138593003803744211994371233558129658316394514351850027935353590512203534398848309639208169880733409424938950407528443757212486046432045412772939414817989128075272309044798119849862123459345602199901982479908628904347526348769397876755334367504735529844055273481835204058073068275118144355866405810348732718714659009009057303263546232425170006753880001382695016948272319292410969403502670919733033512135953910016698284235368407121675369242536766545990958069139696780812333395432747116406897009336047970089259986860312795815643208485674089091915851438132087932560459470290691582918748836558541734765555666766520639096588580085685366849153132975282239755302763046293375995761370631383408209423544923616649175536476328086403270119018890123012688952862928969024934224495797633780308184303863375295480980847996218382431696461112561051638618916259448932465486780878364265689378026485185298545506334766152872930921162213298246183462912232034009294494995166844409976806319871797974019805326310254230482956621597545957238400205948870900894516608283505656294529304704665481190423909951745363100658750784770200013978420385478841004937658818152000875048979888694936166154659895833693481341259639962990666511785888464343541249155374474039236649846626211192460850507269112798149572172447884434357632547888531259000893470244609263175153562775492318018836533558696663518673301980962798324356107857747416389995973011123328210615388302459286278061307107928627959701630802715359372890301096984152825256438022021850288425991651856556841919398883897790221189594344194554489743071711033821751990475020925831061117730995141986176086698930472196389033269159821343819936312769774121299254099459285986104740661796471624679361077338323790030270836204768922667549855401000293533361055298926779754030645947366737410227679577501895892442431122040724534079350084092057940258589186219720566190132121510758933767325945045182535656159919031351275084604568700087862570453804656536551928330305605663155123645130030058300430138476480909461622042341139025501901797537429532922377074786637969964804673605580131667049729684519441663959656028671116862471205725854273997379514078439518590890951564686202863510228899313033294999993248712405621337000388519873015492938406512360382245800144992651924510674793941393574361985913628480857731109250075594935536217824077030660291764611098831327467479450273235765797883477901665880543919948757994014650058153758320201909894434619068146780201799500589985499221236059162846216051460071354460846580486674002073487633146141633657387935003443641558381013234898359754725589044724416233290838462624778657266154399424885617404309786010417545259213266182093509079472200484077739377368071243062825940407943117916045550444066295179370709359645732958377644858142269266001204862259296094600324737982310324949059868356380843386435074274880826102614078939130902665377916468096383798011435893848553112838707783780840233937034944730018977974281811233855258878055311694721234116314664724928656065230761574324388636734035974520660736480501546638749202441643263064191750813600393327782595355576746083778125830097866059117982457096415953959228364733574589942235302643336254610188219207532531862112798255822709482380164789078074497070514934850319573651524631771377166187404027498563441541186700834983383989851811800492887192850070649231530510308979008965192762281826197428806470154356662328925420730416358202886220474626243834068620751578684004530014958425068060326676981417037323590081253760267690950389977164615148468355017813926341231811891134385623950381021701812235371589581141778625283466384655218918783024663087191420472527151260044058217962177813610997429558686386882246223314053561070635395596307860910223671627916941227196506447612124040707884621940231864370979698590185884224640037044808676664009100915110312737381209775928348250652114550125715741112193535645636730600176219831403009646967478988282631743725083633579632180210133452116196191238028512827815973036863014855467729355560113579081744967057140392320057150817568442504013086651582089862698055378644951891292446105173305925705165773266021617953997709334263321506246713669820825849249065357296677994959546753785755625356521611198473563466968078606367681175508489568958365859266748904244885248360971806914836921787320365381508505513697830937621644814892429657734398800684601890115264824149880341840379110827048868130850795845630008992915882355181182469519282811364688636995983285792111048453019850236904109964333964372721811535344089127387835987326875342736406280710265390560687187267699044696606263827748574390987514920716229385701614270387990238282368097506966094085165255294174551251112632049663253023756777930117799689955343228728488955514504509577051959894818537652227728419233478723315555946904701157766321848747276157982001609670424660503707832709570560699301037006369970086080727030352378441175108984388954608001123712663083529708110775228214027646643211150096173699123700380701787330991214365417185578404167409220787760738660390949723833287732782197106921902854377848017531193582787032595693903174116053264084602577660193517027964622835088175268926070934624541058041973502600131905608261041999885814255082416362063510233406723440896452166180118168620284348998388880317192105636396355128582817050553680019152983879693042584028447361630471295875495696528044951977546482817106019233571372203645486641126088131345695401298366705776976865205252353413014679017532424094754337131418253525701544686816797751255669446601631706669918420289820643891510782941072072874851294652819168808272603525987432297711168580076042930858939883840484461501556087244898687949685253027629289081517609682200848241872570870161471943922752136791961414601676544474436782738724774214841527297802715863123701028873629568490108105641721392711448801771321802551575405241991486283609229854604731145297805610295068269323585386194391277551472269832113599455313508222794663822033568147703112377651019650852050458152502445612650568623588466452141825588012824261756420797618925279930026054954474333937502491959728857438204728462064711976105341391844549134631109569854865426827415851964043537879337270716997559154856162103903640967384769340782491981562339460353108359013629728434220182629159210876846803900342735278058046726451516690122326040299783049292407224762895425085073254343570501329060198419847822930548940338116769858985268068021097238339734839792520790574569743911227807644734970140597009957207467977283162556222324525305595920354114707676097136808167707694089417030274890714985673215463707507963114996954046210478129739820035233350537917949117954721302161261595439739824304290064895436356360396046241805613225973674656574227181291269057758919775296163361383629925266127292974088093660348936509188575436879620432032381712346845039900658190633149172931617071733440169752920564092746175829975586134045503215120709857515592318084151896896096356546793809797631420775129554628367578106817804114616927865479988715322059420769841260291610621591715401306204291900509374011355387254586605801037008267153212988371045571095358576985566561703525607743164477525557919871360574133739378903337220302944418300176461328653603686366947357045777173828288534684937305300423581874896789380211768685123158023325500962340213927200895736045088372646132208547482137461958621147025671046600780142567674222911703433729405101753070042171302480233149526340218560891878589214394134065290657169393163036216288386444726790631494322754604613337155906532437147692807435693971278896849897255976564087869074147200261250732383661640526051685393012700469009719731632069567458922857134631828997748443061431223700270096919561862654676201418359909523328134276050501685330221822675249519264170775954363793700138592680722551630914520966094279577936688143370966441230431138952828365553918271917708806515477823607770851848951600526194255647447251112521660871034192014574899270250385059048617021001963298816184475794643768946185390522627034495686660309158359080015477094738206040139895685223264947730419741129487050924526434375726295565990584725279673389964919273514582826184029867165570185873524173199667194092212169054823410642665720868642390031802916303588222250169005728985602295906165440004462516773312986766963616423381438887454519123139390653575605231230969974790191340749973437929192162105489554354635348024093745226041252764777401174016720595170015532570718383336881574776081079701820543601447942188283607655282614238328514011042353702590545803829152619797369648718412760826512706128768137572891124766332885983101548355246414923361599759918011526737724617219473873805471446292716525280460718130314675160458737952039575778159621721911765572059743235299829061969549737649228529368199055099928602000829511722300782421637540124461578293131103246274459463094388089823883791427717781778788217119278544351087772984028469639610331668366249776643203014828186863439108395929325903114089180737287704556512439035523343687770627718806733308419353807092427774976015612470289102671456653246979346297895061856083448286712169549200513543796220579557352125514483633071817932058196193077096459379280135240094405515586939550777326670719317694633998059576536799136113289095768718691081892449902996924313982301341165797813754434319615492948718708205426104154076890120507592124064413727876831055677026845579470810241648896744312963822172519959120799181824372021714196887376648420664868687377571364241763644168617449521284069991977909417735825679737292448962358737678716506198982132212855080384874128060611832916766244308111271886503994751904737563590438226324684984635809369885781130404847916505257770891163639342172378770999643558361867866409431930763960916438977680882813424187029165505929736320042796782898366048486207192145888214915155023452658866722890157497700312015205152021402936542208122152273465232987355818374891406084807946827226140296019713845804276996301639438158286275248697747001676200765290842377709821561700644456598043266654555407228393224952050235512726053147381818947740293980014433551206172179830155063796471951676807182899759288202813621461660304475511555314953414656015014395883358972492941815274331947747638959583850095194406761942300389147648530852070426021488942773655089914369655842437916295250318126358777203694335836002943585067334825765505827048720611502734000292618177556664277657846362990308215601732072181159655556412082950947346593599931934031177609399831104107253548783065155594607787827699001275753292082002022282573329277359706630312389029312762495220797288846718815361229027048499299060982776332162764507816554098595439769390251710941042160943306123900588724902154516228738556417014715164221022457057966166671564943812721155788033938172930288164587606429010529623220163310832318367714741401994577088128699183644465527457901220397380828051427472358080024723260399837285887638535869573719607470129135064775376548952819776973151197551461853387202284345787557754633021360757146695586745280084313300552445529554275760541439619614948108234543368731866194625977080867465835546007256966690278699969868023184550113531683966573865205489825904794495681134137311460033438635603695388568168638250198515175743133590355341603730775941493585474021682171509149679381855902862139072089603187085592936254846227930329111034568574157559440601003804169370821641211385949838241460124938048368603439952925698613909688596748790544303646498197488327425224811279537477172373390795617901650496440381257639158358684402962519722218278845019965977195359883707791738110234379019491518720752315086874835235374316793285060574548156952052366927227785267936638865593395510881389007106639216524516127009859790890970707716068413580945210106472584701051842712137618016061655681099435349296520123169303137232237723873931595312062161822121736111620694052576705057702986906628616733676214735770924827417223395763338371995716456631924602982811219713053262457324922413870510794680725519969102447613446665851631973471552058661397573670763111166680092425754875555504322666486615041112378642807397446168602100159100211849590264527889255880330016708454484190909534865714248345976936502819077894622157989895369064776231105888618506241012818267022886676581080469988067696008277673649076249028679083502343963522567474109054473278429609205000690443453008240259019457808772858623842509346690841098646171047900035862720692023249312620951814119730107452014901083074588331650869915953553348060538363525985937914695126152391813431778944420911995688709162804927073703204652489556684000749385266100824830678372669413575908516490156440578684369812654572432931099819212089538322081075693073960538953381544210365628108929618343087790606804074132349816152709288558566926702261435288332445790942603121995837393441381224124712650413869384475377884262485371936526991420826591409210313718925231462763726612124053010024582720545905220835245819743113741982795817670540381493549624902207147185452409521135335507339546895453206423422431994509613402963648373705541180418050060349819500202111341106403282199894233442324189110186120643184862482745779068331847479097177255239606961107499728666365845624852477446790668883447906603104232163632599814874306854894519477465416533856648158400641805258972281774682144781590000554178804200693425476361772431597686907682103714874171630216474580839244082954264983077700891664441336254005899594265907056380260702486945363904235090069044365957277656724332200727785269103020933677967208468787583059694492808469556117690254556113409903715522935228809593532284201043433509736791421369474819396116120875217650551281156014894198749985697074674590005304274935256710997146158958568358447597702270061101865921777183551990156555027495213918646916203034004932023486368718286039405520342218536423635020920449261203612940853785607105685986012362315319944760668728749707390909708931852476455006080536441310538987182287493189245328961477697682613211330431826916608487875463561379725162585053472181771871736810672855343949857665441698388671518048607528693668420209920308108181875294758324395536016323616384382336947005412704495447217070858043036586970690395201236205304070719822215956899426655669010824718593818861586849927817405863583981450335539657746914593694541479838897356057946296126843995352178449572525685235145539638943567789295554615908102344817891220293053790977339666072038181465386576136498144485306016073714859983467829413178446734169730329040595923515447903083480621330951844480588764106017234661247932170593628890367405658236118069428188277092363208483912000676670031168387116983464250227185938511283357237930194419785435366589153436601213654392814127420709313631459070695985939412440022585144169862654115363252199763316635919344181475608211861485683010004934674210470387513041061926375636064500145270060121578493492160579673536187020313136946555887182361894098410448941897614684402763531386388367591291639422921515963307666587051760145081510512668908601808135923389503055737052636171009704101335000011720265435434513815306786772018805758273709302206742911539628199983057939361026078081901693805748449359977129478330179741458050351462823261686830826170178736325403044993437213540121302222532812476033557675128307927061497958362571906720555206568756316396862916980131968214546133366362044753589656854503115749559689001340651246709979689374704427084064954300723882889945560381700312051572986150318808423143288562660232783428140571825841490610098791271988219055083900359970941749251020564764703463430304197543175438896165970606963853711877423872305728930842831046713467729150986591316256190737987144075486819165446264747871424565893334194796200399043019799247349677656415832582667760404080538357936346400677452447422561622758267219274206923432892955194846728975497634829356962313488320362064271902280261258088219207819161481398572911186892637001683901031866421314243200601464499291995564638944460539137681717089894305501633375076668373598084829977898506322852402761080377759623753385803997823290556541879720862029310451392737276914889855533758534703111369748223479950580346578503585133714447261575913818109726010397973021493736829064626357357703336590242276767616875931617355255554884062016972256669768142744111919126249718443232980725340863069742019795815875563104556383204366507809049383067006599106055080916471528894014351046669245636991822423369790280606978879152856414461477995319043387974588617595482122686529657606932492561651427212130513896976718822112768507515205393820699279523995002386777834740899544101261893104456149982988267449846305643439006537007909966092015272920017861459772456220367908631917277597812973689244487205114202405730914545551978620295478877964583959485712400105053953544231692779886844333512104175525939270340606651066682058620935998922983375923299079749043725292379411084982317463473236805408323183331300127139177275439846274230874319808110707838667973810518447145713144400287859426056846925461316508079956073606546304732385948644724963842678946725598137737999142366283751638170533014094955808920509992466778358336066523210601535361759284770361009500168442826603828939067856845233552752621899090836997203558310053177981152905272569034228513355131788656424858445063662408994460294136717837014717991649228427481064012123349500306746389795844506910293893300735786214672471901635423235314653869316752520204452795653416669523966500596718553886988130428941750612804673318627837194468369440381798743721469183534112649046287241905898099541722340234605377526527189671357505186586864417247209534762953049997636667147863572686327510532455603800313577002291548686521295527088310911759129032318778039258445621933915748274904901016925488464134664799204154299172651401418774461961091981340273111201060122033055239540418323694924284719382707659114745917204775688738404585657288773581221669823867203432503079265693812722486893697641775683298254670607165720873627501136137239582174616003276712862891187575241888318978314206327594552972372852794255640089850546872743097486774228333732270433147398730337082634719385197657201901443850719920885342594663981867940469734981997503377888178026406311785838468509873656068392352528501922718709927822466494122388393102310237089035079376981346444260957886024893404786431944609227050369462625091069786256016169255287884749815701947872348467414590237701110169420750622730961230884243121291408642056999822525784372764440195679538915706710737855357756050427645457596030058208561205846505277517379962934867999579785141982267841263030720256268265336028125085903404090018836102266691623690935526441214726180453104979013486728687382593739168130322877764501554489057194604348375240284051579373591427482744073384632020128750909443612068493672569419845569596510081076294526700919443192375518883258438592970820521606429810361697737782905678954908790735522634466172360184035456045151923597059838219407618891908205394027612377488320944528479489397012751968440541640882626136221777252239053899959666824914327637422229447269835482351111216870614085882228318936149903661799681848710889104844881642254749006067540489515867255155620070316090566246439534609734391279338677471166770060026656795926404455242982916187184199411183790973367306103241814095148825152143735127290566345469122009852309764342706998377914307980766257571361682023414178966189918794868497961359331515534403984267646798625154940204728944835908995227772204539718727527327040350746136058323285820679967212703365714716572024072126862967951664074197855998383509511581506057854200523711590975849391020163569377324520528315875315983447912523427962775157679121183138361629241177829619650928001972106307857364956341879840378284424497324367119655617241306027304669760106930326127964596149337579715043788426275314151673558909606150023761154090744198378112371823485051856458366127417740755400124134404199109742840539240769300325995168004868767363997279039216062219415436850402460286644884732377596117269317776164952979476267892632663785742112614304744163822382303578372039671103519475864925479199086945369045129216385474486319550129576287198959584106405569974404748854799311412767183928653292446729849888311908310797006079514228271241409288466528334545091411433777969570616729841942519338398256164594022050351659192182877543409121880716123968966234213719288203863970004144324815822299279885539207366605776922532204907591218895558176362531967376856247058245482204758664563140939169225581068490948634170831717832895059739866422388587942470123408816882780472334256343066049638560107194088944137817346170515597747540990466074232507450228982978119795928412739381139051780596961801117618155104165754749263185642534238040883149181150483733579311479148871537740568755615591661812814302352927880001952255881297196498605043193083155952010169000705836157126476354208145609544677661306120235843795827689473013708871675406435869386677970033914819360273326304546858447519072406250735261535920955392029839925414496410160300088202518208716261817368048044474996694523630776383238838044961361108549796628559135005154556488094629069404540838403848776905311967740775485946634242445922890884463517764524139495941545707163795894136634307564610975953696342662956775128469866344299301756590181618515661318564782650164614038929012042878049416073761421675473869071910247444665662573703711403939829342137178491292228880356620894581024901918897709693988255042339703755811276384917390115682723352459011069862827844775972147559902256971755401396119737107875700847295295399721198423210044838011090826577103778893510230094952678413784610396191152370177435164213015468933633514614317997674929901101493064181012136123933540744155684624419401458529240027511235183638990976053791850957684984858114830230895390511985918325024384212264968953525806584665979074283128985675015466868676381026295927681198483304479198785606913387246319676037570901427882325373600409712610095611651916632229436793752528812783692325570431969687065425238384424884730821292420457504141342665190555899765989607316479032227304255921968560446486285752241505943080413158816210077205760610097960509491668098493736587050524003013507268411811261195206096816114564046417185304891375588484354295776358606359683031167408689321348500020177533626535073767090529713376376939820459211305611180356843381099855046431379974628810361887343257833792695696208624338609071395370105114405051751045669219660821447462187432979669591440490236303075299911934457978266350309864581124434588676636098863529839834261787326030177692968325080745726035109667138346040042494509125115517074653205644590066010120966797963771883132409300875840315094505434443382741061692841073777327281666880786334615475472593433241587480760759672523008382022773193479251177735851136341018233555620687696311392774416368473795054839206566282795056226683365295128834164494294123494575750869975682171659984751400063320450927462819434705312024805184227016224920417672886031121874212539543921163270458705926958684388622404059316138755559134889517666132663122208061554506398297827389796331361533109166162530889206324818606048794989735064568451454809608058730764865806899474137348971115581144747694250640200982200202981580544534705828461230376598003889790431003133244927692764641310252679678039561787789173332144020217175088646037275467561320101795093112874927524623436219018025287645766786001448711723008638868367956307296338479949017828630311285182215124361135224947038839508344817160337047859343839729104345131501787398383343173452839610024533056391059962253245819409815209497863719211311619683490834945463842916992161737517861505771957497621270698620598405311149960606164975134578272012044464722397144509639265525611771934649278415037110837166929146247278938146932626540545366682912530703822805961127688298204241090838039287039150174938678993306396835071616019580743431468631162744312203619606067050483230725559797999022860003613883883944542434581406746477457564652556030737388918125554365652906152083423284286889558927100575017989194741531719004958515598320176253706514854363893772451287608549613307932461976487710798214256794875552683474595173297714427722702619089074281759743799471717543769325331725991418042363317098098348925209339854059537602498791312602930984303258115818880398815945898641315287208405411300353868226553897352877728688535695850118737432582155983985101217242645287523066063173743293927986768788799093331320183700206499179926034335540172934887884608205798482280817544381329248509260823927203360613456040735918518184335886905902105312518204375334141330653178774780160244714046899322718446597312326985301607273994576877084686837775616869618300670517717841549492717654073092615250718739348668725129084175216646993455050277606738019064236411143279126183469638291637407719343618471925628248815052001266003850060631884636394869346317574193189723074153451399947138810304919187091309871896723013646009154487417990997816501416509784793993724914375575209447732466825194500707262825410792312645708812785604911522172435727730410124162565832938304755770693174379160962543148369168060419693986653358899656634931534519511095594040696992557698885380091943390625818456047594401165967228881215408623356393992130904573795544843641732702577298629913781424907854902286152222233095386708044436713612294405104642599394161107683322782314095236909614453308513274629290187214588868613676760993775179073837932373099852895494012027623973508310089796822024103921295699843203304605121341165696233354273392132844994484366762614481550686725568375123575892619839896171667320468450933740459936890993943501477770997358814832734013866386677117553873128485451546250608434293087364941242469821566247177796264157343658060648515082840014779364376701457438216350020365664240210407128746641316615910137190094384262485188446874254989167305654120205957958928895872313345596673980874023688298268585459259627105030132632253278618935709584311967170774740073921041285737786101035707588839523435802543140265993123290606217642658554422357073790986601722421433803187849077067464860799617461618803370615842991366996716893604686251187919551313564193129024088244458000265459079658195622784204434038262001438436548648323913033588390600019201624096977947347859545911545271892709335973759877020250639307493370505316913807028810511060234936672584838256819018932830377378116069113225868228035391919235563905823683941601839751157434273283650602317951804214452529976750912945272493617407378000770023920365478806926354955403371455542663194627901604357221315658176798583518962030127015020795804965288588960666865996085125469381042930667995059062214689099953249017738193367534425147119657898046712980713724829353248179192014446291531428578952073094260430135947741724299538307280099693073162376966973725628021937926441904952747144545914736696259323066083031662086506038034187705042778716259785751771580175927526275786577214014352426836539534075416645213396677680786415794142131025448987374862394527297010925523987946407310225442247337445540639419957255676082008278649129151928274231825350557490380229878349117372114043036454446062679906214618952512477784956514353024398239864729950185445545129593774798645442750811218277991349025636534363863625932762711686515930801613948595542345516294054273815342129908700005688920106858092501585206189246494140811332709603122873397238979696947421710659721462291844618236125864524826423761860487636617544645504593900326765453988248011727175378924903533776152379456183582057689205160623706428049797126970232667547569615880631240701220987623066706316400970328090887854402259662257292804355785118459687891748682315392945657312255405033789417714450126775211423920324153647650507508704226165300112053568684138571851563768706290028387584685223093028030619965408144548910613766513574125671551712825731972312026272469106897380934150093029943384275680318184312259580084631638423115835434985525829127351130952544070306723892309062531395360798033125752104366533003399184568799202029961009997385778441561117972588067474611859744132451861939766913942731782549457411621504522882406006358684513292367820937827792156678664624444118414098744790968312966958049174905739032658148596732625106401695017727075702643003054349754029039389452797849230315516235464145689016301257890206166124900407275184095244886889989730167172381675537780999107350411070253301650358179523393709334593698977476938775817177626347531253970121176084657882482792230448933917340330043821923522310833612535872487348658346585896332990370261886515218568895313222228770786918999402275001283979168602737245165819200945922834653808066589842694247446292117397121129284084721470601435035429315498461924387538439546674446855778922020305005081884769915091327881347583268623054115373039772289722034809167886733224240237475549456748725743595880057073887997119060860923164343881174468053179187041581630815058990783775723410820052571831508799344201175800804557530506687659996894605185948113593067250624076510931316258132902424785341952105549594150502056790363238378983047814961777531733130142805642707457840743709812627006341507678970004064758935914525192567502421567128865162959211544704448077849674322035891293520805205253131637861575612662199637325368140019623346588956761146133161271209060400292109114663209254254845151765919535367509681869170157929493846473905988375670072116508300048794062014511475539715638150170524836569825442619769651572537406054242860606162395280331198272936559703898634962960248147347750202958666334950562303576613480401927984729588260017390689167913877918323367214583409849997186004964366068379569320335398366863752471011923692638156009219137468835905888062896375278638947561035817195177020951989285159949480996502107545940864954076424752621880669066527268234588743804528077702793481644924715879783810924163991209931443661457490160744388759272098886805790450228948866833640897026568441102909155122973405003955443921769920080499478016222453845743587286789012205674586204609142437730086846025686254483692833746444477078985095122187749061514309947883539342372487311184424641930336361345049535689336330902723418299488929534401460769036585519784998486851649152323277288778042767288671164408522403162391279787162973305212324260875107899283786766023726927390922163860589517959841952091452416241112143779668108780339252545262270748740653328008975605604066929296618264875077117779135673546788615978839066161330618955994080138057270619361313770002925658441877801531213118950530982438452027710311789791170262271218507568048101683625004281283471701920514823855649017263659767840098629375423170175910503364680739283569086030690352475896047762855273690948099075742253952340391995717588874081658090324951004960090100754513821204835610305743159278015329692501975544970508574893126518216853011753507340443267117697709000890245079179880686679741734893271889843537504664781984899491670095983127531463808614517326107669454850301559567618167848112768957317409589438804481536585972490970752304649221755522684187571008128654114351012433033223792294467804981698961097861966853514263540275166952947276552864224603747100836468093127560276096815429587554409974586056249283982719420903460458852869589844599396596555855258321169593480768309348849190842011680638108510181140566815204867418707071885943119518839360382739990923441335727112024839887099378843244825414475138410206015799984230116700256872667337316844124804459951995651926361930135804750976136127890309711349254637202008752521064123913777113642252149473001604408700670145493836081738399331453038425698025692243556159483695409229625698848782161446445542137285018313421962213310821619197757411043413535568704899744948990767117177480562883542468788856864475289277284296622741301544682510654566726524623114182319611481558864954353106969210616724880428620837429170654049432498176809491390422003755993497340701159798751757139511655939094299708153397779643144642767260031974946773013997455671827419243042364241161325617070452102364676838086104207561722260565806914310262802712077090567335703787138309755035338491450907642791966081768952576469285672011090013799328929186579366634358387071822522277815159226846615038107671217313833493110976828551536615135187459659990360209546994253764609164873962462152785785144325037759877534261035443869831382296700574315322475631889665312965198814427600246741570129042881492372815194614357790026046829901789688110586253711250793664755297692626359174426226194225522855582085087388936695429985437650526757413199398555198971057585653442912986438537765108761123578658011064059488824028142051943912038772592131617357943454176938877215991443121788005839951503088878911597528048454301283624305466617111544348171283501396061821214060496403684012983121961252047929935810950260024560792137538325801085305373910183235253184390825739820127923613100130606706166197270956481401808963263561517852192615901375654577294582494309791654501317093253645856873938801666109166276358112969196648322017377678927294419071063027019713639042616927282838945169635893591902951721102513140833507765084075106578664906242214239137417449656489806544669127769203577716439748063385771421644206151200587964268875347085671461243958287176022490235528545972511815277850856621234778603167609987500654267351833491213252867384427950564205918620236077541902377520164688571294397333728792814322871348167967329194503074648745555747989146081896520749079437855657180083695010786929552971083005062883153156497761554979418814892304968363446144344261416902901834333751885878891103251271375661406718296506896850032360560798921280107159491979276234750365122042519409196841497420612788412746497372731731930518632764339487030403933865078597851064414022724413922760300469337164231892528669883564361057773310553881898654794145927434110634976228761496943011915414436742988983574235468554955842713643642483527889221177715024622891522696845199547026147602937452388289600296422416472852759453507703206830743280678992572085337994899942755611934718891530282855643475285475200627020646524528723318885388074499588077746309443618041214539782092592752325558825785382855746731739252058234319229706327943682236266917625541745921842970051053237089955408867498554923184436070535692687890081779769730497556583524525082969962384032429656572349403674101587903146647861713628613274945415435808087221561288775308920927125300588895459050906176719306626623602153073337880979454194226960735184251156571657726110867026437342556045237688270632995464794174396478220069532043911789607585695786943789122250970790132277114592356105651182205004787702205575592886793159993902901725679669586937097915493013787835552660523214843742108842689227052220936221304539790086459933194012918550999753677934325279603715046421461487372273745119983583024716696063677650481127384387791363306852613935426385324508500626454082998468505227379972368848830784406985644874343193794462731167351657013957742645747295773212315696491207475589839409170090634071307523654707331469506798279918311803582260472550661698667571097338088148423141840767673626861493333389685631616024672450010309012576288206124030335302168284206658040865270001003260644273422139125732519460167215204217066600965115501442449900586015074060659729994412916169584291339451716667506557504972388616472302777135973713066553541721866460054400959745775398672246591074922253244016689935050652914211725965512925706980114215985088238095711587825204494638966215221497063753100458920595661500751696248692639795765731637694746211531152237769508050589079796090326246108931660452229592074818620089195866013953373376654874780921490828409361511761030755395764340879780754727247392499335902394332442437871265725335362514145998437633280688683315048978953098056282523144847216956157189437859816554956691975066392338587292780403161782212522273106946006899383101039374921095397448803652079716864989970824325792706314400993214318866376425411207524843334165780526244519667723483697436467319577565255249146324208689965904455249594777490929947022690504559321581577315772056142942422837868305162541185611030251964544267521664617490777347103615253465048761040212681219421540868814305058558551198118336669143853162200121009652727572796037622765349039523534677280778441647506414510909927468732502595303823353438673549262107549448749227100301017289457187219626877780439250812833802435925267132105453526152292253110248589110078184991248281318557801567230445376897042320389049053633585728331595466517822175267215452571329651111555036291205563008122270831115596801027429319247614984455593170425711674138204056803554475659237617989968657110634292028044679618702671451221440774170124684617553151414665374161534962312094370766716711766361032980064167714788601899841697677411414213946240024183055745222476627458481370263605899281126077423608815714131362769582976265749816837136707303842422042387130292459819965758378255120580890151189730959668557155689433507036175808129973711513076044827205456193807360007084835653288705429359706230772498575431910426026205238989078186467879874599126940579967148771073842267261552695494923121165231752457604592209988760758327607771562095342288266092083288603556816268824506535119266258492951512046960912600111414870873840981273063368486222186524054917690220047291026922362830398832128543957262983165320902505652040781392947996474146890993668554249887717228353979238058714800503115643395330147998767534219772772105966318931025602320657244252363901670452371087313368740689574194401872212427925698953846582826711250090646895140642892427590467974993594400207997598194897931363270542471004969182057233737039454679615313772230584640247680802659228184488776319355331244000634217959508508052520221975952170793959217429932654377210476750367928604104646526150124350223933583456769765915250083071349249832630292225453012566241382438664901884515555204539718388889073711296186325433939290506355657239741602644912172738808628705548205617859486281600030452148221029313572372762418002159209688700934697712840203256386193300831457457229843753899403401613293156105185050977513353164182102914535058158870162192408046568764799938630453195641570844475644400910914546416563031398794022242803028683216680414344682242916449828785285991307067037873439105708564820124044186200072066470476151615614963335973903930019393316005866878164444671215974022694478934671198859561492585482731921949526256903246812748371504075307770345694820655592293692776289062000384766760038574877751292058998011578221655081131841377720351529468015256580189971125588934077377942462157958057182633135647786780310759933635335303617082688276161711154686874368801877411346409856646561002983672917795273678842803732380442679626070887326117949315035979700959582636408916596115200736538189346008135300431130023360320161840658376286788453256432947343067217206660108782415444369397779435321558587738751551916144180267930370405338294613206040316156022219705725807165333123017709167694295818338436303911676594664850342291452709565474413243638220668977067005700658863231276648673386407261733079814926985373530371789684167580655884829067009788966776931881433499973100918537646188983984227136805495389232426894338353762970149203342391713129843256522135687431023931299783705897760479274073560237274520611817567203311247768369627216376008436971225173318250258442717464247460010876169349636410128159160462733664383531141234331013343025371876994437280469762509435128948448321974464497025732842000904197509791027675746706225434292026455032260254533997068135985602068399048008932977126703602421432358940901387525717100880151053284804935669848818072356822998827992168049343263220739998840704520808900457501000115592484137531800491624061498457617904275793190163590405874875081068527847691337956366161792684725409537176764519592566371820539073679718114295013518251805045757485918995066510851909899217608136551897573854785955841251546179214669284620549443528230765508647248968040178035617573679356120053671508463663064158496443632581775152404184138082137192619334690027788878710894445719692958494162995236721153621672083234752622863767263466425647599834266224990955432764563384750971650478287396018742375261341826489455414699492717544213596016606771001937305169117437105044562301120684824018993701171881568497626425872238612395627650230948169410430849246357976198772552197093022201091154731151336237384462875862454107951410089508017960796143009529877670098839338887443499470789134343635105504231287092119762747538529609841514721955003642456323799600038643539539876708370618232307743137248255117314534326437124501341606522734740916974113689962051237142289883031732152751886604761677026560369052695061623743412662825810542039265329148834278069728715484014396663532832065447467621637922783820082060909179331806854561167629715942567682671551989055331515436563412404649570591705409287407509279469040449354044846165277145037548649598247049687404947331543974736542991745140202423422869421092103826610369159108474192143448425870439934906140968219265712934287112306000584304929770604069044801337867021414872904922219253782719174563822579656353964781687173523721360330476438543142443808110233414858080960404727406887856163329924357998350163917781044856650028827482552368743986855540593722485169677343647911874024344124596069541668945331306212689991211460415711478954320269092656935453077654672362051613969695987079008573063492523770895155025584190349753967915114133302736814675684771525175290965762896939683556619063184500182170259028670756180648994536095923002801069855976418070285047602716730307142423727011062962128991020921599596277563728932419025735818444350827700783800901800723827355504796873059002694630541171451644745274534195658137981302906591922001031709425262391768002409098275067778168043932312459081903831912869674800972082217740953731550466779115400102824724843793740270298781167392680807581796546539382195330474219321282219701207579757477256102138609948865805653236264023329890731092855900794036511438486351770593060885474409457022620897986515129366498457883158187679959260274354423855285838079536759931679186618356711131653191182598115953340272650823731771658448447587606261386687247735719963282098385709070657768914179074984352390745991486277464257402969548310256022204413147357182123969550074832511875981170542740324823668688755841018964775528078487532824311615021074798112543960058920642843897395290419887177967548221322882199469605908520633899478670562023228738770308735975400905961543570140185021995213119486923629220642731875062491192851566019416966424675190135192080193262223301943108043700814238931911369411320835306240944593426539823702321908537712322351433969975395958121465847844076794632616604339181021161389335640871630369672233235787440792304565273527836706206021048357086394986717956488866933023075065181355537741948399097693026776138376882216370234731433915114504520974989421461396308951553848636395513284996365057101539460807346643564847501753374207885518737578296911719599972008470705554538295314972649786142800819510396303568804965437627025575909968267440613624820073019078644302007682831672496121586979353438992016113602048117971214140864937333763216520300602830662082517285686808621652386104511624590720874113602761250640714937842084934557051599672026869828046765876349287164403945032276145628415441666955290339934122884341848926309137126063941977011034351542585665095392102756068680138210348377720131766767326488283928950294853404909395839574415058507889154769839715305914089706200079988342155121105168539461669491963350832484922714652175300608150756979516409168287290092235876075688278020908499314134575736870921772528522207206191516638735579563594095786106058786473946424941930513559826667153553071502632534860769390055890652405445736929203621299112041814194955883266459851135929331335962394010001932472519566515756835995072952098408275290789293865498659340006350600220784429262159732528986308360383900978777683680980271830822422269733498131968758252670654590560927926930439401554675668752870645413721516758852974778450610780089065087616378788980770401106152930661370406774792875462622057842736958438742050858912677565410326143947441864461029062550663546355818215124640498677874450257987858850268318092033465475668308579854786455850968431058658443752017221612027883237698582469555548691793631408024687523792328546796324887760440228635241222123633123184785854440674760727392294776543603461447610385445151244073917429552461760566190348032566135854665765370242181558290298069537326103066878994254557798445615016573613364279755352664040745853785446111209962209399723890168714293691082601780316531615743204511633270861604537486339039217012869153841686632578391746636833845828936400270020019336455356722362188086853340941063269981393759298587026884017699544371507161176798966113132453768678304372780551874143962166418653689905351169817232321058188211719699930454477371970392639097470509327683395762520708331923568485430187602179317283274590288001971881419171421995119356994060446014447798829606576168391465038659585769582178709633546990861975975330399637536180333630803013599080589445210317421681116791055261353408757335571306992937800265961306216312215442630167863859691959665596208859178500620220691205647476770881158039704583405409795844330662099756716481203626414511692042294001876126900867997097945948322892473814012169806769387337584252921472178927112195198028776577572338912910820748661336891567815910893414240623082374922973257240148820304290284780539996196621355823659994319049947121816277368282596777684838474973664743667321464593963498755541372676095051887451922639946458312850818878011277863619444387591750995065981096539779459710838101398198918203091969873853647409856629407788952373575490061674996542416874286374248076580040666252325761097995664449981688971342206816271362669051643671484280215225998946784460845475819375914000815686520710801659593296614593730389831963386058983193017868060611127573370245045972192808655501491989658167796950460908231956608807663789206665484612463180641485777277794129313644505180546844458309665696684608983408355554565146735256111860217316832693515066667727351571894112127548645226469173907079285426714325586654978702175922038216762612181777054564215341568397021796363115002306105567849211588975862029548520827576882936842396311229134845831080453013671027396361466831243727912017446567959952271317699863487260812107322227839624401762450769350139051215594031322168691484753087901420898665061318622194732388222903311435748370520283676945154056075306334578034926053796300669338814568829237553156933249370451377734994361138078563100109483627482346320838397100618920521691607272077244382962309106139997601608344427079618300101363030674829059071972347992031363843951326713938787280927374144520078097489105230522719242914980660383375929781210503761546892975636979051111661268312129568841157173012265175162684342299816807306367878135811039235640665517323189719323743718165167412724240169631963267792185751482642147855452387553229183695611054618544893725869752239208109734686383260247482806074185888388129666517778212638724961932965112994080779048357343172502277489185174155081324234116037510472277966360573493496459943128824728996962880042472784489038947132789244441881191984796431206125685375553429556371868082283330913258466824716938489206395793514385194994476165645567945433997321203442690959399741777013232094272599890235191753643447693059210653326760912044025419078616468527623132962196794487914938446211434863900632596361924782891494816413626239073054959157637717003885895490922155988069065732385974137069298617875451782065948570835239527628504502224444960776560076694931264236410929481470139283941591015184158442768402253348444878143140519287699737880348601760535143988142777588451548534720991959742915429288248036110408337447183474973871130873370265258043844628203371184262665091916273626805260505007218218758705342942467228052429481991545431639563821111444740909512356170658012758321523070098720208007199641946808029867558152707903247982516045934332481962181990899274369157447135711945557882513101088455904259366067293466309545397931924820928745699572665039673333330968403872996907346214471308112937033433483657202944233145988738340899626652794163908649609611398087944223908494767186875011065626304598969161486284510389643709080629048317721222200910105705523998868444274124762255637613173061079395673738217238238639330485427769589236947818676274492919016726249705457898725371247906374811975609425633852821187597945700545826062330155470085045313899740533200878085821516258859398595250813677102606698782512623405360843015182980738375772666188809691422666926312562805688563526082513080404949725651084470884400859904264306509589123044233699981595406092184319855352512954598897169334866849830597240236602659017280026678734732414570298648965212870713562207259680210323916950634824587606389764726730154234303879444130161090748692960310747740976827352921362219496552312116839717542102757410477588269366586032727859482532341404561588310277640772587065451936531944612821473380383416642489819904783950759752731655511105204188337721579995426487509132396137551322806254687381968145021627434413136124238811234686356563973870348434464044438234470764536500443250622488053355284577682184065468508440565658694027984921123903973543160282069993886348703640787505645632155133437906762830947032975138054391540536680971436701304641996089761261728035766999615118674586573261073599117661851859826036299761832180732187444945891659156362582151428861319290330337518913368646098062435034314211060278729970561646036629882858091380076278698871981371655088400136727463673637551086250476391838128312332706657240324748367373802711655972640886638899057854049802801076416374477373530973620725173643033622402252765614342875844122168786856427858601413576946902331488733979516926905534718132860151025622783062812125096526604581423791599603052919439720079092603352972472602424372023181192963085969909435667346687988403989407034130632078657519707337678218402045225857971956978111352422302405239883669000935223951884269722738076105101557811983573439565150289439133661487211172006282550074023043136256049097202280832753459557363458246631751303117700193495013338325438686360650951356836875767772406982651662891871176922492660844837912296773149538229631713426046742858066996142314176827482181789736310949664453276086263927473780934218958266536719312855203159045516685584613169597929959053035760754497035892821009151617075810203387989667851452586435570706841515156935982007498533178116078735627573774279274357842017106594879772999233550530052323717175769705160846286771019028022706252907856329982332906671806667312143881628442290170363872370444154693801485807661389169452455291247301797864903487529167853311170242405003671030362867637492501074565538564646225175093585127281099593947919073770430057078599211025887028711328467615615876850048554885029818845587969343877161494362380356508092961461658711993325675384626616709499122808097525666121361985701133449623124552481118472165490039266000311625279948877048459996601114000872721922487125377487224777992875633124298827457194512558081620075294386674854131293440609378367929770063911371434819884146735294735295891737105006008783864714416193063739611894806440510612259793760066250360166056906730935721495750783208910889204329627319709099025808603492385349228335313337587157364765086040611953486819912220805113047827812499686665658166257682575292558147172026628871945289772107629013311942983320831037248392152839661043112642138728833221624836307434077279864810836596415881307296513696820726202529482652407968158244916019790896178630661126015967588432588501836999164257944708514198714481003408379550449090880669578514066206045784446815398023710754752462877896237103253429553740630347526431197395036001402374557521989648699117409049265395783504784716788100183902002405153954190896131349503877042940307269140846002486627742460998842260986351872425761851927197343268614589105101917547905679997099613082417215967350843619894515617879510262270431369637857691794550439042899999535482990992341058318091098994359045427774327925103509726667290410942170922078097942361672534980213234174971387587929754633738774630089416775077728025876938342045975297906913400775402236935543790737573002987481628686379728494834009310926391433914921077769869091650204191567671270164220531213651237489828971772288468039051987496320744781410913834180353257158099038549321381923283960320526628860656097454293795459165119455553253901912537953066711601273207729081106271494785794857465328083199882148920145873252213022805218352798486060905245541314773131592279230552470206076936462589959032593017625387005908908419904120503178857741805244122404771880423854214348598272061761159992238668452664155531242049103580603742917414216748044137522256485725381041465605740257735210501405807141992204452063915116334948802596455447362498277356352991579366852656169515776369858136407408441569918288274889849188467181968946983118252201362526732490439934264838058034836146382087239442454247927258310303821027841217516393005405273147729702258233270781472286355517497358104958341101236474911864245432639246647828175940433491240158203437315398211929399495203811676423719411197804743764916109458843683461159661832791826559891492932853955058826453083955472627485595518998844195235525585276782172710011916723057469254989451937671801596518609498663341264559177498024401821679952178334363838520079419239082734375603020798168246615464901859007148029262267527645633559043334935076254618173707675626292418327231378926444468069335665942528312578058242226224755246424386374765054705897970872768946051302132469060026073775437470593734293227517027852201821611634528764570521924041356905465575562462344612536013083240790270657081103472282382490751058509451310065423967225298974106033795971095293368580203731576037772592769747122629544619135877449844392608152975205177374879930436112154929940556313622766078945273260640572117908441568153661455663849486551566257421911246984132054496618616825582563903199606161895615810616734631385363573965108715745158464585530255155808604142694299545259588195822580947255515988315256506979814862339177835173013710904708404756135898387293922636530327468771181228328684028439241740671393369780633253727122219505610619497847811225729324912194508257916695211430396260255496938081657356763780406245317984212697605552182891851017414845379380877546548946520962930369884245101962593596795034016623687913004405888407252031893800304121321775945916426955964096936230474469612107328789815421835723218522904321281767730947524316331048327162793571578115537301986093908914406189390706766136522312584024534006465142761392529382403940594782039941966088906234791061568588260108564449668675967990248625270257052916836064499798318400093321482204227488945272158789168470833216514470934758189440496504279011953867628214995100377973394325191123687231947936787742829794171483281078173102503532607569257118478203096119327846513644728178359313747763073128723512394075754878164728348439676266832770523190196781109078038642120999974062427546464417793961453806390906557031764266341728792870861639479326246783374372329957398395373413281292947190263608318835665312030660165791216853466778603132436028802986059073529332585963643363622277413328774621957133380632136236187090873101923258518118582984177825006296199124342835877864731284198289481457740505703249036624609719192690622389792245881404724394370100438244210052067147208721775223191381997757016936799767659021307363491900461166205365689511315789676035418943869214694246990588187988620259418171910521784484509658498763364282140423216503031219038891453282742803658800903967161903072688354723851672838474804653622951331966769149555758187685038309401570031652016457281800352101128608870286912949451671192853236216426418624189177075732156024264068572606272650756475662025996022038124020446921476194976356379299944898239168254908818147183861894896767146454341220847448335634424344824360937950875650699041706827092275173682292355925340415432036846070382026452933077334886277624083657514101014756356647083053228195947372985744265538487550035069497494330281218070270636286102171239720585282560152159702598205906813504548141484135831918265291155305632369987478284119208265184032109909069848056430900697127326872359552631831554646932159228794288972927698922573769691034014627571970177199730001162825039478156960473560288760487295222916405270294197209686675658853659818958904700332287035974463364813499692411149284660055270795037876063139461565606113842851663391385728921627035172305706276197170395952478551951772305608446260133771543162323113129307377408142686367058294668853720918140913015654839949665109682939112974665403458629883910144624856197480050303068440705120000527462537486372782315564595268149216050939499515729270827256334716656756469302102224503804684171327029655045671254614013966404207359918150498995690072363950655390478498027016381610996072554435496922583194564226886133526739060303070174941561162304437767681357914081265854572618258575271548136760163497473987341269092046540563220765984133568932165855532862496683171450817557538166560807826082026760393204967922348475235590349056676326822322428701404818515447978386902317284603844600028217572008991142134809928701722722512350913713662675965656119318368533336886928626216455632282731368157935029337424258326132422586331102469928287994187592732171296895186193246493720629055192427380080827319668289303540188874625384507769274760824426295864524658306914387583439226851363317286729632496546098997099103316609255071159661326517819630447462249140005217877526230904340432386318623900385233115622137081165658912653798617988641836138151324996786973082992045226812584816605948178681874684077522291231015292159482258862701611260647928536008948466898417484577743019023674460525287052024297442926522881692925364790455875492315816906916420186320852975664657300511444542009996181646508627214201699748809339903001925781175557590409539138251699180013744568165944733803454414135871825478136131703560385856202113179502750894128078889201587322776389145348275023825326783421035087719060080873557659903477235766524810919466105738025315209798438045307033882035971628873332033400301241775461471367478291453399439913740210577835373096831378657918236103061885211011602067926543689768005943753168382252942311050760797290195352898764752559059869196443237090624008208057275998489913348465876579107493119915127839237812622983318402207221672416948377151445981779908134697340441853491595418649447868718707111714725512479340467726556553661522335215092465760168557296816595839537206805464311024596167810659106499291472778844624997702118614807959529655775441097960742640209493711719493376739141482421178914848715511394397914916432606383227500914419332094522741383149226469777381521253579386130101069242102874610543456522660089167657842994565956517966687098149475342953851117309741038018667649695035872308268703421268802653567538807074563053322415545608961887446237816781246260021915119563526028945046189480576845945506806414510179980290971478111768384093967792252843031832774718581849348830230230117505338031848770649584445615674850893493873771289399756757634706702401856902360008288959512602561822362671236513749472527867732378695355383257954328180768883112870959740757835838650021472822344341991332023238091030298103797961855927866885784357829184520384295685411420778755909895521957651619818214971051995846075864278706260259109041814510615304338775829631370838032515161923132724476282496016499340123720334702962481616510073182769417103496452021735821713234750948003927733588768158517640067277255190597662491814463548747112774730505972098639428540824024913686110055399766908631249015483747010098530724827025256039973038659713975706234713448808920177222680101382093252644756291610071777568373358072473948104795600227568264965781280560662532959229007213849055753923963524005611347189623132211553271121560579900493482351981272425133193121970454361144282141027167326079730321400647904517232707090247513461286457179281479521137183536354029775295647207445378915855536902371314940489458823453059164394532469722447461263388648301348988403928250205073594406494258887984991478280138616619478180188747529875257833701208055587663202834665003890457982904299502755132488875284262829774122674994159015902987723580943143131975649275416717384411649240970201912681615344283457201182035127905968027370868596094813757926021224254623422067580489167555852816436786493189599937459265397228702001958420845392380902516698581638962655716398055022740130542700929246862529851049568049512514216420436660884969692077341662099034016696530727628028397025609556561663353493509307491593878980818275493488831681172131659435224614099100513456932742403460496749785726693563748753063731364821397676448258063387169011363186432576423964489801435667145318586647331259368166238962815030839670109339429963952968924024255968568777691802640087457739488655801844082526681817958481901988874255083418586878457035304393927773078148524054314525372528225939578102136979759594604185375669841791694688444197316317970930785697730788866565652426910401551288778797419180259490401988063008718008153560471437669696681518217281538258140872468807425573674433553333634934103905610858494275536997924177465940339557425268832639233415097445401616835506071185136480285182315690725444250095107361118385899048070969414172001032730686018841380562078910383936120128792911958271308701380254730577506027335865544088554192518791736316433033697812297322720771219680833080547926710498170307291443973793397733813993372755215217363636481793330848802860206806656648447049359865382285755246002217367669502924265446561592187573192008522300069847434903162217124856236395365029138706939359907714777683772572181401112008048887374436738306333399851689939636947002812194224918632271432916913217092239137088049428261494176633007846603867360811199527156941018346995583146763311817712052400476161092529957131180662603480167200137461041240995117031449302783309888424789924481358346911308792493514994749228693753866761867648814743411606330883170139070522646482831471551327028578180606450924549553941203585972772952405865123097674255344481098089902354642046471135075479408808845336733021908513695265504751679396751441310139073593069990165159733059031075203294582728814937564364046811387795449545295609626119420952013376974946768700216732097185363897087735282981108524168198939261406720393064757403535937775563166106811515827642722893800023296319039064171761233675425669368949425984992175267080339019001870330662420290919155063686797343208738201011294563805951807413476994269992514440254182181437572997792531951998543853595208609204696871173086127247371688966952688769805048441712285730850173199321967371397904597176628127877475000127864329884583720675695767618036019024125748522333051418375115939197452918027327094118213422369803930968223906344510241939570807753416717521846028761334722674471811355251081293252669679409216407400122231439117965708671493549074340288675448381637522611901689469322836417995491733459649344661174663860161625751264197883289375661728823603733655883952922558430794083824810128676616488338577442568991605745230996976576922691688199590156190857717288198422661417912473448299890888106325018081026967317346913252271864702630278165470449480837269336286128757862347657900343227751002924663862485722975408169695584260609950968921717723352496378012756885036888586228343777761950826472442193896947153729119749625033635494884196194948154000659545586211320697535550046254072292038362559632189560816699002714145886418137421801059345403844888525976867741627424618442936438069908656214657676119777405293318709057101819516685883546764868571226628038876293153017861556925480129203232326723603082798973815521223381080068210518403572547870889721967417002386511583967688426539744472377734965353814790853003683482107067900031668797709733190785112441913646516354795694649379857660989841172610948511990126929956945422301388455731201785553062376768257228262696570463276333048517421717260627976334969181803437985118295579175922610250286786620092051900823261588540239304114894643423365721803075539141976721610695552171188155295387611405206788249479281769492110288868336865460492216537678911481242175373570813457710826616554820678705349416155935788523424383029701832962053738230170637029868319877929042701200332450169119300885219462297668678195831968153134997615519135089917514507094271481295851488044047069463056269224495836623483853183535719276005847784365125125135172696722180786334543418503732543543821343013009602873380583105590705921777072687218510190799027901112621032406647393693666715871636681777883072426129229044372554280570853823962295150032191311556491849318374268060587971946714274288854559778681352796410093813952594544469664512843726016865165671648148115434706678590910589895268760909620290127047240696470875492602192080305014787491980624201025827037710420572196756461829598994800001425021123087606446195809015746485287857831145750520790771638887603771409989265163482401754776673985733573740033473068233152535734363387648528825159843830293774615581157281027568435679003401843148337275590059725303286376916667494549264297115852495736252166615615210502568215639458098979937149756297032879969824414395486127704320896172686751878981839313196497591002786738831981720608768335163293932039979452937156352135756431799138156019713571767465690248282722045357303516022087423877910077250174976468268353020451578176460914277319532036757586029592529409957268330897236742480810692364849635752964635079660460827367484768824467517334575294198634663225822889560885433665335241790523701348523232499320439621004365277889711021905358843390723479945016886239420504364224445454477058538511790136793340849354323496336596123689302638291051774439965187198827539616349382192167866161601942292116297360611251093533533948444736397004103607745971068949259866960328420269139013461063256668988249617422881868790954096957274009618376725200835294925415728999601347855658730986670248643846291019850675879919937731066759112719721896541550553697545306699727864744604382217136400961133656293941812126371848837609451780265865583489954549831432007685101818382685255845923328551677380775655481152537998221052531636936678543899387510908905942115031893249049780970874426029121553923420743764978789985554445948887208328365412546625203692814105040296639296785190627964118663289423010179618186106061332224246834739302489825610502865079640618705941889826877851223187231484498271997369125844118462430137318495699790222118933195292645526166279140898601449578582574115662859768584184916542807852252051650266892426413517265823992447811187851332723954105987248908818301326161611913851392597563225153080570569156695324591650006156929803846087754968063206134031576478365219228167204909357932909813034403499585472250734276969547492682620601789617195377484888284492277547850544211840238797474643709122977679401375547933212246851253422186531609733940688542193366954407818693034266605009147862481770753650355232607814690772662541405760477228966148571347441178616596172060706435003130479006260743223365262674316641986554396780343219292929602776971676053843311560374027462169170613223810013239315006231565206937826100362963146206623286332685699897796679306797765013521565507013253997124468545509780604065391261382116972430248551909186929299784530305913977286573236464988298338287778863536275960335028923215615439474759848425618090170087389611769893547639860857368177237630682331166430886926497099607878643159311802863086781011918801929990671450973095255556125266048958068168945242742510261242566922555947430439179388927805292416058905784281684443266948384438109917229691651598151087995897844437046198646374496052579750540522138412619622703144810595327659915430561767641148107387656082732633001227134328150377911427754766921623177343040506103436913446095270000507985887540624920922009830083664803997970900117590076767820375989306844135895885501546791466495233684708776908644874114233288529137992102997908661782283807170326589046271787932260438810997872219391608052315615679317748777584355787641189662084006449676968752059938970864365702622822737307237330586542069839039662101056818459819946335821061371560463743799484875958757838936158246088283402025115716524161053108222531466948245807843558927615852172506380490286289798504205166619399119202157494115183905506649384724809980061310767149255209549494723801201759525363144816351386462805031186560227840051583870089504217039369083651388723695005924462942351755767008723947911845368677348868729061026273431565853191634735656005541203386993202700464380680337169997045132055117001082305146844202286991006817119682777254432056902535923968717379679532509198233814466586071724062295689601423321091423957849842013505790411086680008672973557351179855448305056615410067768420322683173356929186718450157944446448224788622775572385719306405229011787122749234007841297691952402339454052313854258184930816718308945172178964676181358955301527224000517291451684922852970951169514292336459007930513230839806494743944875531778829542771081828773427838262581322784375814547573766953825079090267381609349506020625070949714757447793178115118584625874793022005937769108375132389219821441763547947383555418403143537293367527238958121448968457921338665511506178729596777702847351339323788671994653767388361941259739388953029035317971885325749111818562761058618747418880770068848558976362150066726214933441967404512551969280283819204576669978097950667880788538661863296676539862236601147115712501236275191537856101092198253686237798313719953207889406608946823698154311530867058455738663165241185264271720027289263708551447909428658267928086082255035973097960581779906703811493572633563667936018065995766049308106013697786043707584377409950739738988013881799811225985783010203116143775298330689343257763414450745504101563640780330497370513146362450344145388186237010463711098865429259414939403962867096523370718142739784061478716392350288190475216521623713748051712246922418407296867573221010828679040754621689373105502011566055416661838298305873901492111590854161727516575876355999813748422372588670000442465188469222668662212805293806726102325777852385506275021537788898784856535163802736296133950266229372047530926290158438914165415473663830985570628110619229089556960209035645433512900339141545885066939387719809366149841290049804778984796833594279451166029596411608074863129080910723992261248249933716089270518134889988049510779857661384482576653924560778454251639909154227038205837340818506434881815803475517019776074723276425281065262934757188503331356692628435061628548563123181766048901397989772337410328285871525887578149550762699742755584475389937393037326099920596504988805110310814618723074979376371728521400389480038766582493234495054238974729340950786414237548212674317975611848119869897165717959939230634697512697480141035499887574499165962469820844372365430620289498597507016560427771119867369675090927854639041788951241974331821856731535933277882929563533031796111037209061274590549544413333579311101385309439196859260704148839409357267637087786500699873669140307945372851163223356070947693251504261061338734178427986861238788553811328281292961942056304635310253317785802321649603830273245960903266934833451761616881939971362297595266344111421630987900501655944992294206054422368467679603106791691924984001384771355179424506028982014071278444273065976637021619019932200636401748013633016642132306922383124189164233327927520601562564970247523757016988396376459151799548282479842378033226393943722659573420213949656485200807169072341574202593598094159615502490752028770889110400823027286012113430079676175390840597544790542895781270923997908633933691610306944833768350959060799997599207635549039238005592109622918276132891826051015535640465718981977091971470130321924517496570567947854050947258810429190910428219148590316159079767316045104103759290310132574596587868508594615663021375240781558608846487224112318915845057863551653863998458232891857239017842422807717404175513444492884936483556868930454025806551695083717670057005555174239667304533663126188531111121192872398485316897631380165110666779193572113494114701817749589527716685156674806709091313998651619318423550284162836406921218986430398151372166703806650072816662614182252651760790438705746504668551445260046689955631859438886346795706645617290637652950259070100167261651414013431559802326123748558500284280953321226940351318686913083453092979563787100458878341629740802280433327475392328474309963586439271492260779737558643812316998610385191743267238528159061645610859572054369276641896503158982555013033402997107054239951996727330301977368566448603224797117298629398200799232087393438217660693677732463953169511200737011693794754703356485755992932850447801988250516223847632704454827320562735063500355563687765067387045369000561275570148772211175527270810522232864552829864136539003782135270449786285103891236938193357417749473963996291590676744000585958009929178556276138594168979915876406254149184772638261526732760825020219068753404331539304236908296810917626744554221908566767554829351309453897243101975801401174850668876212711634117044071912940060706088035571838292112112580634427249107505400138265785039112276017332231444991089718345221511200922107192800252321260889202745141117979653250245947669567905961449275560169272823715637980383035964786528920595960055881936970957379775900175371930575927962111001765234227542420190671345565854359252390721137792900409482100414689399929978045615813548576544640190934246823358151968194685417055905399877717273113219797189855723116678375023035715175025754801905909664405745164732103118885857888430796294686779290627333823355493149265905708382678479713216438689782992709677659576258383900164026040567539556726456388119831113295142693398706132319938686735726829981423514490543218006585245833409667247134335356657707381705895905823875249066170026284742528020134721396609957082692940772769821985667864047472512369301377088946143701466640792802706502200822128148988152563743080490570718958137597359367464579511740707548519672287931428277022634893915544676709089701007381994907161686035290284252803084700772372034927581207604820235235162590631311274620727593582359085169427556449773151358812284523173392441092993279202797859836199821932782532299152401872750424982643212678703173991431632732414016450716574073770693573448515826326739024604857284259902258982441736008521128410631885823910290704256729542490239472218063459071326634671898628985100880645410492462439391343466298731438385574046336566558949873511470500694514886461657915566984251439276734672536299251716770879690315491174832146146555846730720675231740407385770077913146897535635852450740021082622391449113543779983177160201284721193803142348549343055098495408714460118920486446477110823861609854431047127682031157013680970287759704749073193304725985330526928020731462272643758154572393719472226994487418372081345833768526556461453534077574098449235638999992005594052067577281024743392839407492420234956972489765992127729892028577343878058410064415893149675664921593712748175387077759718914553653448795662013620588810309374475541508464489755310980606471372488708138207949577927712437963850419771916777391106153146540680731359870733152614904244689118296649494658077471535355019616956942982848980946829639302484022793425638375131223616276786184592615022102037279720717810805087013280130981807289331625214030925087166581242501619622739226407891047386978209201565290045987061395529782021739994794630410470651895378155887824482868232071707495035323364691218355072411230230479935081310267531026718186378320396891010276965383483100625994138948994192476393079591974552466133117170334165544934060913017588690746139297255645144766464128575270522723104367653117466768201684453360979610079298978350498952084770686534323992671578447719930721258422168422215273473895342856366716418774999531062730895315132685427573102000486860648582102195206159864882125523600157825743424019949017636184990684101881120518728090680689391530889327471469509819971851109619397581020547507381720016594092059740227138192556367510105069809724931728530746596359913733601461905727353480972428862894306069523089079381756269417140271004369597050410682341929377416175458244409587757643034035248302041359655645109670635609510579628291449911889721548484586157590046937221158520239327988368121259439613297794066450666163947010346764313204390551531424886550561993064451698107841167478977970891979777299956597628639157027977015422411521000779131344255712770731427164493378353524258173730788680055106126150616763940094664360795933420098506891569263665574507598796932579609573356899791258921838861559471284676272932189764483834003802433204318578131688375551553718198659793823197067165666282786866889978677960763159765357670179254141289277219479268927387775592477791401698201078539664786018247232073233795287794208957396711441587699793973500464377259607890670804118493998443635559218152364330199600038370902137756118479557529570054862715102575493835651549468392313632786584106072031694836243769174838251390150800237797203699997854613364658027144526405015815087402408677186117212660275466580358699162657630667846665937016430950305239929183832385151214119407337762836484515868003267682746953215441497716224546164115853354438614773579068998087206053379738074442515977689904034328939807440897013887162610341815259847140798211499529924199517244371886688494921053448341801245540598816136395970736284175579213258076550992031813576798934800925125604281665242257810144486077172385478224082638485271293992283288445305445513261781234016401976013076013250222624253671507078155882747870503329597499790742929169958503126211561535114538064737831273950837035368159600611098194034067265478804513143187245400124522065031826738498091876716990368707698879785502026733767946882092998537231952064485887075185840410552523293616407291347215046351766855527452411905364344266362388792170256548676176738839036823002987234204174649948731853186491912176568700569956508765716796966478266274691438232493217188350189877621896823791523285747043074595312665685629973416059104273153397664160733067253672370460357280245746332703199611465111555790976231182426409942862711619545766326903554901190065267241346057837523600911707000818764145468561119836166436545564629673195882526024387689770909848297404073071107347232227946497521826253419367438712050049944613031032774240700606457609404127497817636231850724838369731036898360782798013724585227585115666159551308825015296810517037867874987835699895638481068287634688092836238643295993627578082663739114833635089467880835945524496144318906707976742671311210502613331122844566005025539069083978647730756667144485655501888356945147471200131813909264075693947159871097925543986398308457052001999840901172675208902663550729479535843801286498307008160778733880938753302802096048557458395389381480334927664519044407458843134416293320729734890687456162942135160297029778389798057248694397460336078375328589109386471943527612427812396967145946609705267840107502163857834535082837825083385063119308567881310787792625367717827476596101359393252581312408519199308289261144441559849587165533446707547793022375146340280343397497043772257528549745089647258023946522097198654463656107502358127105522642569275509990947556544889162855034330891964088778730170447745949898558301889003283341568278697302435549127866698653100136148270409031426503838814863293546064184258845982487265046941115185353905164474990775876587147532997920028595066234833715460039723147435731501486561783280252345436316830325097115318044396705939870978622678522217673987237764760679686454741789046293514141045262444874305703937292633071656198255336088564144872574259422934279776864735038421029398558690095231703790469533313623937478846239033887174042644937614601878538661548602733800299149902786734444023930618981834045172076791422710205483066559248117264129042572785154098524704502661563396700722050874172033536842272476719966068380477656483286381857929676589347481280964829336065005643024263726776658373959543784268383725485271308211303843458792580091778538481065749815995851101002114969364594425611081690002392351343378961259480986048927921256540075212557923155818226187084043972359343589953019011703723619812692708614107764900823960704040067904158503146819566806232944043639871248188034898797477304174092231849006500122221686173587797639700462585014842777142210350615231658037481025227957834055552688689190659080748540999167795707009270683512076328309173315493611246996622413403244701874243023504597773940771914074304109663612068669050931671189350012619085737637824712086298222641958985044489248630849309621014362111212447727993978082346123735283643581923357303349740794033703754067876793496445068506258323818773922025269630072917194972461631520816095850893327280803769942367875140936167504904778765497591642014831733069327295871662447686095466869289319888496994049716076869263434822879406086489161396805504645295546106050732660425936423820379030823012073798945556554999839586254294814084209416910909936611582495905940516238021725477712308892904942111367782712442396309792693742012314897963238979950623323869922052442732794252552845975251377959692808156643577861239399972353591204058427528463896993572682447741520750429749683091291996657973254182190541083935673766873167704826900968240665196787875051861199655220698010023746726944073552943130419181021455450827307707427992917746946612603248172118680508391907760571244719811016462158032824678013089871092347995362173800220457396059874388246052840412927782960962231745886997643636428985305701043849796266049369879432491608861701275001501974206490682359105919633150246621241297060485834161206629816366268100228284321688382026335490223315752294600993847682233898716463206966015180723253078779682073659314901076071120409616691188521739354430118580808717376097430658569901181111540138445927377494602068467535995910331983656858799363205858043171460358187786750082793021935446164656448494828585580116859278810837366935060019788697328781580292455858825302047727499420229739779665668242344616253928485650445316145069658500567144052504243831018360558332915151250935763816122691294806515891572135948799293831969984694919560841528558589295796343063630899110372918877365416414457146962466287032776493780624945286829794192032214450722071717868138432657573573320504788230503865737344048305873624677775950311445202652834235059757662463918409007348986801945922304186191012321386073521069266414579403227202871503037109345504342498001075803819652923260777260380740458751606819009455320863189586739461603985379514477305202867522322058951619694295297651223739589211892972203979898817595986844514755682569213486745515708002442738781714503418664883952131910875072399399086222511527792146456482601894302060563832695898036323993002177999671645808479324411020429442173579880285820403926107998224186730982205479056301096582132112273282127484352693574851592783519376330704662110225815740113213831054940220770012215827001402521372690111835112069419429835892894679079961987266146996066721469185171811430387862560249370221561762283475166624192117069957226756837128467138937946053065638001468629324653054528452571027784388696703012504787668259953260847349279565747133062794852475946902510556392494780393534434427126239480297322877134859730115616987626105339865017931005130828130933143561112482317693780814101339499423630628352256318056386357297150860619740888338121377953676651241955366343069756345860554488352880855149308040150128647375866099280455985672889799325991014495478336931719959778339970720228417785403793556439654818191002213245662291517097153080539235271156505186231189822352540916010184193557320738699655459073325535995729353913564536154544660380501994293144371287326751032704001239179331288449541317300566690038364509874147047200564057741639754382000070148681179506916220280041231714072028469533625002116374632459992837267529334301782445262189699017555040292824274331168835023013260332056323791096597776929167625701038253155986778129028593480587716228536569741677134258520993385291292219194894633216350244592438815395342766152260051982490074019400983054836800928694565302647803561784609774491845460663573235720893500075773638366586544138891265006079448714802758929420130812303722040385113296985960905041362924551804745055578222796178466476348432150160862778850795946803713569999954335836558472185205118774346073221913918710056202146157520125833561074086441529655109409040832545930555268868231776773328733321453252015789588036481684121291128641804518186923318923002935370698664580279676765105701036989730631842456552112573169462655593140536952552729296574982547250004326037052151232840225384939051399152887491964926272259370305658173438796764222398439012664080022325755706254714538522245942132768138601777889307254309979311395088771175327866609024270813716694077126136619869659694506385709886666806784162741850984835051851536607456908000956388664596804495552553878085880747376128990192705299105705022047756328654263189069936379237151989547319165933515015213511947883176083167452265477344138957303194401845834943018676066625769055484549935717647995804953718133711482459529180695246934402127078216606044244317835757189491128445733911186242362521316925623654209359496920872153694447871477672979215844501370781790730130678360183357040002159440092011687330545399778363535401799154800955623873652886739322024925774406799619493025485567989681599394099449674759350857633233073411788138904366594543901097811273508984572630580676575845382933580122022020876430164841030696629653533265026254693381194012680832152240857887643153600057201034277884562173125176981366517535036525881153860663896231897026778445471631716582123702572323731666023070283992913537665652197232812715919143246383543616136086763958319564810244129157622808047627792363147879506503058443522923133364391524419432989675879469962073584462546871189798913038488300206535826038537532333960775738527095902808433935494749541101739802304076865477478761512581653468272545485511460524132442752689432416323425743507757023131532617618428346345163298149295444173166928078394026592396845490485764280515578394121834454630795583371005062427329812710723167143491426249923866393685925431586822250929035587613162141542941091973149471531192472030610425790085613730682153466990729722560157085271634920607165345507695961732768111765515134187314912340103126286533299035161321839143140247002766920577792358811642347674123190224400215426545437940904118367488131559355111777513100592570706974956777513148904524184715711303667700473505966951957016200879493193711091768376862716553828278496265971282612845377152261048428004734734433076887234412175547659417881018242656946189695126476274243141396779007335125778277644722341261416719249613746547838382407907695742353062925507695051122980639734509103261631254917509400525504770028640978171388382514657575578060728401252198701694738628712142335014560880797789352269074548455821980385452519403760640147099754110663786458063713649568915705717474810287304507672632926581298813823141923192129151298387892052266785348993309021965322661334308587381250047900914654149513387922288804367273786623120282868777101608706040791218883613790711845236031200812335501351717489831226751941943488520277318267421408989461127354654164102787494693567902853400795355684566961018279548983914133327855593314642870574154682474850325176482005598755803924218711250950969412061270145400668634664901140263419420879150940591942346025925188668904472397001649185599902423209226310044203592271997415428658928300757390740477934350383107159555267514847304008883193439592304937945011373884846753034495090010885173470514728948836483600176237007515477223200929725975554551111886467557481476687009447573752230614350206082641299515888127352967522514384891658514625013213606789037273923876558523979773175941642594977874645111930796063827638694355080944818557684023981087740340542534350748830826221158088319593838660527206780039362668796707782249227679785289241273657935166092578940284826843021176708332777960973864374263253166086362084189074935566874942052352871240299385080720367177243151816288764028365961222923710963250818802138810607945155170572350716776170382598767231910686279969023262931255519678904659402481303719884393276315444949415640087879375883552626458655519857671235722570288338463000016377089878728355466720528733484052088047731872454245890005057709133764572694422982654630187267011570508278741500636245144682036152149016656765570831551345155880790628179178917026735806983585756401939882518141122431801876224270801248678807003510400028651843393972221425823437974971027969100370746887606287876881906869285323869050532748875456961803534077751089709224557653804271235083824692075347513673891775665684740836976829249136214224761916446328261631119531647066536705098760308862738785588970942808282567089506073036806236287763646598543340203033964384511522413442384848397942491757685507503657960874024481014928635638947264092848802151813299275124471624667342810839026778146980133968373386437795949733496733185984765583341359072990627902536965440059550112728432829269065094937160807251062761761471521608503953506102476865675480815818921641162728462294495201408278254434410335242642460940101694485215943545272354993956697388483951586291494691545245323680204940878486226861144750011505505946883538711484416010076079608629118665558439712101787143180398671034463541594459948360666228449182582481180980347448201750439164209848214477227087323826078865628946762588368908099175275614790470211648645868157922466437472793752084836662535238818046011779601252645547975821937143330318910545055644129435366640211760821470899990539439805477509150589955895704122757163571674813294641334600392736782704635249866649771485427879169286533355151972018135881887810332010821990444077857500465751365113908076644294337075799472314348454996646983936664095739700807615785650268224282639396288112762428455608220172311638997136191184460002893773084323424075682586180669709568832608998960094426983852002004255480224962112023275276793953050371090332096238293250304909306660948147543798859114990607356057037610000832530148826767722233669083539753538592921433656891663346196927760083342931146827051928365780637922898158560490613172790208057716569254851672885355865218272541863512360858507500582780801498228053424272201965362231466538501446169151620752026384549425438838186893517708920618158531981821953837158324158678121005601617916945100950066835854151789103086386767709584205038328669930545634096418732520020239822306043442458503383760691375660084167161481044903171196831514340456832460273554539482326721023199271597891116487103809757599965433690619889201697534293612881395418611089328829266788672663733574594658189208633941025767367515754756903392941032165938637236677811680400201735615432000022502830466342283184813256916885952190416202490255708955700450056626156403794054789936598404877527257583021429098092569441316624732474882822359260867476401908277930004884215486809778499893909989194809687013917043730376076254792516457670992751792963914245214020125258040930523112646932744138148245461438231377815546607106848521600935512831406433862218271714545975482782841324298594644412725071530759639480107569960099429297344287442501026652453756477074104985013367774418645825648558440179573522363427358897879008197128698841904441342640149441805610775905431350098879305922105358618344000990685260848367646467209344592194380768630901955640504294258251405414559556140881760193895215623530805583693763660934950972160585430076500964501877389720152188458075201985434989076748052517614047187225581001858375919502745039186805394911830369238428367599090944316478733252866004760054419734940818049951951173137257814730964494385082040612468652395104847588267496631032573375459976626800411842437156512669548399814646545077540073672793899091747529083472154747208453819030191292051539113898722925568980762974425487941109689700066596757881418347859646593599699449354770575982404081512639779770038826504794897540280861732394203477874803915994152257238237769886747988658702253032434085498023605934818692093519977319299227286071938680092880028719164934885862004677994321738036503520876316301252716969195371611183593635112958751516047801273605571697487468448695875711309177010401528983447153647673281646171528163854118984199290398694859127882305899362650318946357887187284666130018628195997842963547824593616821424367338482394927951313550652589693546190947037178970200290252479343435124103242838135672245154038319746156709208717569181445101223726473583197356597030913320669037162115124669665541521934112810483329962334501499134101227431393078082552796713986996250964896271171761905516308272429648363752217586884492590277900645357432971506719607454268627253367155288932127754341871454793083858253839468258525413871831174166837284856257395279773460470340354086317486478943195855011088880521320401910076227518070308751197239929329482302438652032082049669119472946276726726029755377411034955167387299862083768092983004763759905920591704419554555680438704095316756748926921723977961516056326924578249069450358747617411755749395693055817698297327279595035667851912669492809117180757656117092325798473014563341453629477829168039430223915990245342163423495873845647475367436124437866464552151684072797735816923126940370184404430128177331506000874526343889227692827111451399735216266833238490276329936682086657844439401891676956420103579860002585778483912507731528413314047506053437709047232119084956073153709012809399482231911765457147598273217596263863133489766280382988949066684537906783629520753829604967134646391433555020733100271855094693152502587508782840366937980878477875888308464775808384868525464515968832854551566196162415022525943063573626939257487882462807962228727988808931195317185602187167615365460767919147142639784965524337086035688548863917070105033058014341888204170750616151776548321998602703226477891576130383313318553529972534879533455307492474558261083206695481292995729289898079532252610692655209135205437002652970655121274267270673525839419329081505164221214039373649832983025200001450514219019211488317602647320473305341207389588547590638242371922069805361988582176918242301230448543217061959735470084592087077165567898856213215724516141856646915381327030622188183155809434186443263556121789149258952535620838638613048421596503259281211717580072920890110619571815436197681312313189070910666697026043830653201830534958922611577295135172272330454489685643023464196553018698318712876849893485624796153686070509039784708220744107917640589984201097103486453665948573664306843763679646678035565012482491077068479476556016540880248425055493045167629123299203340928781145565141043980756025747489806964140440500645988922074352236840694995258090112668879505533763117169908937675255653702576243519302559287682906860880031968284026715327160398536967892570134346160959663496764945872935685523613397026356296972989810746565609665357975625588406983350827719317296338046332117396438270982326529982958407145479172005711767450001968422601765670708075145024952241258160671913619169835242534662653719469827971804667061043361626198210317022472226995004452340684345433245121971191609229362582952572525105602099994251996094035181872787552676771768982356043323957076343943289486360355471534098777981481381540752047877962890845040228080924174184178774632906774407979524581765104030419263282508300382289271678629459043642183213528423489385328877065486173169598081675544338265432660908981074196624924084400152083104426329524292974255713967456600463719484893484688650257359467530154298707285101877246549981965314941106695907394355930470694378350702548405645144133812070943385058597759969373325242761148133241405337276980010331719471550222710012943341430012420952034570437629904474241402178392607270839719224714777764802970623063616972905435249246933251594108890495968647654436839637844869893316102931964404927908565208224341950507906471378196595158460922453108896969197968171478097939431779880175342935465242041497395471833424289143329159854197784709611232253828275578990659500753663458900604573628480592156577776701947740727319105236229411455486401824409759952713385698834055250757511067616247788949231852740456451665338646408856048382938300964786116608261768200928446400847285487401895027214261464555945385360222707033264867959457196248852364863480157556574723879561346820956945757930062979102832619474491291647023945760290154523552644162008659100651664090087463305800324735104780746410577844698155041212879438033683842322684329470486841896488858460692155716560655533699498253771217737837961616409086222024895248512027670162575738955186661867490073409901467846140152900695998294314115833141833539631005728118870955479638810276615984894814133360472278409216738623640100582706978635415357934520062020551120661309833904778596356250140794749565246175329130641495644498974138707278002720843537431939816427772514442294649113929204841776003212109990590713103236774620558775044951273439328340792814774865567204157982193444575459771860052778616939136552865748746789858165708102601858915210516994934704945474849069603530050667391903448397558766970033481599661418353902292036591375061406431399005433771055399606741820104764225693459740514189629067575103474188134266636145056350576457274591702586626694133615060902577807769744439635130428542210216338762900140223790597453520847800977662622701644359916381829287752868124715466458865320596228145953801788370559432511233073524439280551883923834592801532833534031719649350042007071364086773373360534992352784776376557101529139390841907037402013167692884740320309668859690002612361970738562401717990103842927818915757530350557264544281498068652122398757084548405855997571851826375029492359282575240376835435504224291096422771916490193683244283347384065408157364919785960921319776100509999123698651560689343748882074754771407656645555570948247898062907134246836647837441425527015347612599306422472214775585379089620112042662727804996938213147715063440204168917502284545560755523638999590024811500634050222297115179891696963726764244861099758952153908185081424874373797801593726244710896713195311699945964602956262450631231427540823705833320452313829522109170879855343531498897640138168091652158708544170548421332399076950179116891299303534069923622385918727046169048420723314741886201703002469512844112982961399973880597719727170598796748398573982645637143010347121815209470029389071578821331628303621950160236279821977968563488965197200081153966490852170921595257181040548025955625756659240666438736853051340495543559084101101153067258797620946661646152042429967510327087169489752901967911149562166064616930925066661456851639637781344502803053042467249276588425542434740566662086581400953928980844435223839023217167502789960474266749797179442551683985296342727922796529415425387012696734209052658746762326104012234048067132060974702404983948511533411485474377118882951830897429485009454742442628034156726681594014964005553042417717183936184114186391173289474061577603843572695134250804422939990858642961336186257928898670574787972122583408253004079178655606032925752869619330663497803002160690803640297254367923820966846215129296957565202709258609823293225250474340901056547163647974702465398415888141742363952113996771170313232807502001430309443249931604740467744800883857942176236558919813666520382605072204407586580557569222756579864925912720708308754207858418438595198244478915535484640086941730474315232301042596153231379911415748167149969115522365292638809317399521102763301932272595731736430959110938597079257125792722479949746928817817180536220190066553591101194795172166893207052505051549646684623914197052622925089190524389645744835224052436397033549487171525224154265986883997349660672036020650791022024689042459706551168005815570205192044014476888128914249320453292119994151729378407968523648410723239138610955359262253157117519174515445974290528802105898174169688104594289853650079996238524917577301069387472640173109946199885913577747594891280121635879221181423211874165708619397405678371537548410188487412441925830452361503867584850146168829580866604458873873028482693590823945713856117432999903426513281612357208628153462272716316858013470961194070676269227940366798913942629929856268492322662407453544266109849028384554420750776318187553869804521935971981195994038386713195004398674835869359816464839171621997902565849026081895323444350569708852725264845719111328516115091680676074827751454544708304950259819285024735643119334780331222589197214435407604830324229993264953455590702317772572978799568758620562470349302884150284448452976646567521599134236884323183021505126134146755259371093319848392729465323838350500418950858823666491078789472180871420170096263268859256987062869388222818803097226392699181205635113021822244905663469561266115563256932319275036755191750180292650409478798824377054328559267292049852725028612080298444804176043219615026046111779877447697632299872469312020328753821250763250495730831237003225551820181937839673427531759469343471655345152764829285080655535274986725285852921408071286689217364372154344269502900269522814642635019723543785974521754238292533698697227534148744798708402124646571841084721076775462159925860469742155119632112001448532453973309876641182518763938190236529519318535657153099304103258499873004782937142801559158575762679544324659930467939783899236771408365916005145831714456210238982270431729677176005708357528579157805906372645562890287192293105958175908780696368410573928655078549290570970210553981103862605747878068944691256755708428736244963021251352861917740430929892832010326551794427963600890561574781201801088953252528513944309742476829165371076349302794299389227130091068122509856805980070715046138790083943335567271997315005373641360530869417804798475847019158914677377960500338042244524864223695238134920510991814206115955801047929811622576511077298554078234937185252872900811880995508971294979664044933197799996744653726860889472243795004693310099948170792438066845432113124001940931514573737159701767699818783143614146703921177721383988160955929250367324294926228053369449201120552576284239061801089164951314737660243502318016128335103682563066472136492821873375484454377704372733211220118169181482614920234011676454147884258516626707651001496333692574223422891585145405984754678498112031905028350982693010787604912513998329249572861340727557794564133371787269368854465210905548380630336802926905755854210227755478498487938700858776784192053057054540873989152345992907175677727691572173947527393003715440778754605346639512273369313634021483263335108417742926121018802772100921831887120077251477166294457465096636297157972428398714027271590372812543973219456973051342033185817252992896441291587178562334685728150761164252359669683309809952715184517486358958919290597949015608584890517784809411705512027468514371138247906186836119754722613994421853494933917880286092390163305573591493841782126477148805549283408558720250442751735867984789502912928631418892887186923370412533650739749940126099416511704715345639569334201563161285320479676580676266356184076973546402034909558054573247076465474608556761541205747629880681748825186221858335899538395012971996934539196315069819508622296463609767781242518583045002548529897355167856870928749882649933856551835085841930027073868243886031515913387810834950465881138647220905317375116997503460490977369358688200679291104886930334178639520671268116411159767670606618479742159962494123565306940181587823179173670174006911453706214827646784698941676892973012876444408637261864019959318439341876113658023000698569179024870082833901040909465934825762989444799543276760163649554087233911140463575340960145586125172727561115250518993607528441699491396450358510637585470118865403433258245839785622868974814456430268765719246081361453981798663915306952768493029358061451912749061234976103017928849195221592330385285410742503462558691772380811806252864215876918299412640716664061612411031919326900299833885326617104251424526305505455430866897737680864991301780094289500537837635364517881331849534367436974533051824729927321590290302624909241273598967282668844670094803860794304676613378016505547934425501490392221575909123161631809522080046626976975712555505867484252458649223158696949613887637755245110275978571851705752351629875520917382799719775677959671678258668074819941348960675087027661759673347863211479607481993788895088517820434529306425893953657920046629748519998774276991008141596472869167160024848040450064539541330565452111387479294070406682410696710336038753850023553763406958696683029791528798129155057047080848719145976095109831046737418786152408835144049089688755962081360639945428442247255832917516724946599892999116501772605192771856301709445265035492384067706771355633119477620002632847024740390277518672820247164670859065174313047598330205450317993249349877424155401918407790009156568471545097412200284306586459910839454516641015353407787703643432777956249308145629992112431310806728211620208902180252438682068204574617417098939389846981724579253645388068235545888914018145015759815476600196972783656263324030481312068857866862566328522342487393228860281847783969356759258905740494898427377408142609724092493937770702905569518745404683637848932679130957996027466465801036972369767001198027514532940850246352984027932697404951442901674098208230497115156024433271848727718103752643717519775154001943261339547431117370838781866628542508970846232596156585600205297757330124160985460969229723901465398024640244376465802405734184671566110931465346566490259537644397985460815674727119126863798213284531176760928581654816633710433961829556072275648904257985467304350732125620847335937851565136355431218722561916832023256431913534376975100206129342157192247868491115073123027844669306636126195740917935239466772777440031671918991574308114426053289300894388883774333981025646834654843879724025814190899506598119771817663864940519389474469287374822360043796305942459629738372562416176491796574581234627174787458275353393863651382911684860713557441917405103944661498975530987209694708427569792245601458188737446190255827852777964200840781727807750162995116969189595303372363412292981192181166915575699386576290567971876024088280410215894079986827988515431238792216870493301887055775597577315001447854779697072776789876064031898743784044030037448013065071291645204329440728918036051393366679898983445945911749023439932894992360195559393498566881774380344118997728391083857567993825447895554721476104163917427896192332973487623323876074781468124451197869004795677966619870553697030207870531382302591773292474663235952265190218986400379489298611113889923232423663961053369117851441046076682905011788019159695154387473995879841005903396113723276919969481861298919030908875898700335790907374265564369022048958594306132666691830964192058010995881887312220586669640853562177906730948985760683614798763754869028870093856421793833165436064665637593535984138281544333129409171927291648907344018231205454523475386688016941236894016638447945133691571075284725088196860919931471535028970349293837011349438765325852228847019971774608414753273504009054364003013253337256611177898358808347423902004937553775809765009434581949415835979021182057084792213659789856672222987182731217161891178046094297356509509572816900886921917181513317613485371751671139211823837577718634958541300760741930328648831710168409042014678983904040916842054743544964888570596785814929168687329359947648051938118701316414598901416379427553204635878472182355398252987484614716359252183606093058890731321503498688003746078804771547711596839652455355668333419816896232814271128601429982265013344314624138054723821923535325268602899619468428543346689078554260081250748574806215185574448423094758027092455643300642115257641998620843525858205357201359770086691290631577129101980559354767253580406485132161365465631527185993410837280100305131706894812833417246098717883093505510651529924968559809198607807983671142063313853352006219761425230867648714977125127474142974771101200916465288893438860362606674297138512780269107910264883345209020587384539434693484588553071062805878135581203883289878750269266471659318394423492788118149458095183891165013508445577257906865757219518748909527621604083554934478986755828766965186076453109209795391200984109385130540528947651850179528884801565038390547216072760719393409569451305993909923648132660765145851924588757310077718742493663529645392023811830141563027293801565278704508747698753025310617621224114163593749792603510614688759443087917488058483769471071170568906177722107881880045769202749540641106133852928471306600694178190957351287328834106557571564633835172709672257771418781905217650169546132760908707549934658415434909210757959356914326554553632192165041215046351648680598478407414369341064707317921784991084450923494381211734423426064450643719091833923264313848827134380661715134034320973433533515268494416685781232367400581410592484049315755433312596921475661362390701703199244819751680491786903386815108510125102213368154835156353419167599936310869024991958653894597469696543573844939094994117794469586017392471284723838877781988228300329828749904208325142163280417224685064847853447422948138203462728933648673605441641255475301007295078474846440785095214458507327628938299282462426970417152190088565055804523832534368380345225027414109752163986810937085026454668583145696294541407766716523525078895399086408941650320148514286051229535837903851208877658009453845911707028315807385896478818999812118097714254528486375732956907866580302394376141783988599995577276996460346239215514396393195184447935520611029351404957561038648283369243710140467785434389995410260775794259769752536707447942434381069143592728471472251516728121416438178820990016673407017730301341326991920096567087701489608796869798832048890704507335850084443817783155270653582453892861438575174213081212639532984582973376998706446909342432129617836362344323834693476491183915017985774471470527559125681503204243071261102360551774063016334605233756171888953950577643092409046818569118486174537383151718238307915181027622536759422520190071735039246661671618133999326080025210097221991512746371814355522673702311916110532102609289423091460549189639274697618191040244681525109644300111144603052674245017901604315592016432568646209329617420636188577433731195796780184082951054320356221851068883908098211763742791154391992513236297960198935795229652483773118674396766499192081112742147881252844420073382071307141632352948643661612978568937025978625592598224790358271984974524138904964209781812431653052414432843478335987763777773845974497987074987460219048975859365496929518606075777144475369642280763059987578062717796358031388554376531366461728634257715335825592328852304510557134334803515568062349733864191552580872920937520240132991747205362335914297170009393092191150009638087642932654987205275274272079485068938247293430205289747877370425972952291891155249853717009992282559953039442186242002197462214932567565927495716635601971110131637793146022033627589381356844512026786010539759496638278212055431956718026575244512356055917902640400904371744091017602664166631815801818774117132368074668170521813332491631719349135501603351791863135071952499029637652026122515227482218948972536185780875289322505445560904395904706814002699184279746162627090063144818093200949315062327149427725267451282415767595949149542303988184137277127820376957834082650386211097273601394559042643808671194713826144653318755113060224325542760663648632457030586271398936327823491958077096833170674913846216509033281564882733209182079192479449993957170791631717281231010633877230468689744173596976920146984085003058059406655853589732083091645112467293562687693095386141955328469680164592142902787064869693387100864468173842363980136417216217706860913870048163713829805958259075381636262797242005314369697218972510520582333567209626341892578065335774942954025075676559257697170542162011144139257359360851049271233194148088699558252638691056519296860063935992262162434177735991823404530577094275755699871247817591634844606367884992962676177783034512923579231090854341978521174400115324298058088729748235695694256347768833048712353086143119244246755458160470038177309756281779355244347989223812083862707634223139193817739649107840605673829542156481976233861112698874453248478705960190368281619764882767280272010572923763154657724077251519667999964168004035156776859868429457001509797498741726549689578493349866926072882053279725504472239138729284784965985616937453577147628423870193166086989207372455563019658924777541425191637605805226974269772189603580882563555951374333407476239786570586429279012238351467807205387086551136740050438319733437075477570183412157507862958217574527960627175938538705074034127414465519142073178078761355072704895340996229692921209216586313784363388058447735604358837200774552180916499299561127964456668512554671606681184978069569535265415128893306546907464775581159578790327719093249903094043553441532695205571504040314292755995826048612849611080069061251951730953665117312558882909462988032588545841200844360268402181611013420133181229695220644365130854156855173486963370231368469002999600808733936656448655663556972729997921907294961819227941502786875639088513239620595828174011311098580108517089022852474509358146094733641250493105454288468557550022393770623318079152704603659028662227299381228331057840832202134787406269048313218487267854551733209858216973768853256232756616271446675216723015281761908072051651316829440037791565661456358636951555754565660993674177593291879821336996043858385808364477996211981381717982132142736032358652208417434141998748036240772558239817011840761864659422901305134091033240621396544833318648358936932327939278944454823775841689149922309176672802461651588795138371967664997091933828295935053811579455191989919438664318769266306394486674102667701790980901344643912292755466378689533651090886686440703324854562220838205627703021023017559482157317808233872369751921251886642258560750810068321132946577236059607447601973377535134732800340169091866948963880342072287912477398891515105880242750299863777009213115807962170879577690694582117345907506730369746514507671261046533261925912577562832200231525126251162238178814724657358744326344459532136478773522155380022880296903419441718918992964864105572311171236084523706088862675052655619165613046124430826836635291838640836620091304113723020513743718591914659747518424312331496393261007238531338782853349643556007190112076781448490459538469823777316992320844899726592730312236197537602851960970937416102026302454298010065165409602812721373542016171664569794721954433703083249627290227234976534750321745595293605837517476252970511920628486785346849510778361554150751484343874125715141004254619305109670594788355819696018888931800549270735566455395156070597067433201059900222866940571212478114463689984136793288520057410362500859503607962052535305277386085593276309938106213902260883556697942577833642861948616577319934196407991433954550581928155841719753124051135671321885979712572605912810380980051579635357797550531557613554262736406361322758213633934421197009877736288916267539235353564393815372794735175697703530716524254044601228482998315482911927085782849156772477965971364370457697730300432389898110390498438336933022993441495349588278642477112729312412862913857929984625588245475211615932025471093771127628450506462243035515724371470765635988861137062760306737217164683450836005398544169377128459096335802969276060228262896341453822430608033192683192753410659326779049451744163327282661092179877212513853300346748341278961461445831379325603679350269405299617501037449048715541480271619571653297173463182897018404935742798717833187615825886512384293770379758364641139877685410667056951874381183682982054778535801927435040997154685550522661944026859703896606660001680435300762833692647737311188851097007419393485778203630233444770835541471370814337306429039208479888155926320311310859606671330093480946978702657781368616356899018318127465073523262060602298402100712924864382725791233741259097045817579852550471495956645107460298461411982331503639392495991915114127631097712686128682588433613408948704254705836340378099283089295539265371092555207612018835654043065327044789392967790602327096244137204226387077714057208154886336761230210892778227333214577002731825756446878535153126982672923395093346342983357213012518565604827158693403142742825492356636648302120742254196802608453317165424456857320075100463874356321503304144942182010963088765230603619256228784065167701787562854534108365561885959907246779290548967021365202782990279879752027915288329387631635913547390801232070433002300630424379262726244350205830969319485955011833161838012919100890807468616615104909418862675194516509468446231490832754988893532249569813572335564794426029081088400129931807335172621796193745252864238257592546791913881064664433760907913143756438197042054539439682947357512558602091557102369070583179398458507095919129091080822602386583649239716049969427814948248818348086933948743959700221773944432780320202982766730127872212513944467382088076319551376088849419690144660010986870483570977234471776795614950979304481990023321565937788009996707637547775812882428349258948018843222435303584502742824847182590225309635461608925785994245714306739844772150158266791786474190929758424336359211373316321224201715494755349714021929631485530119947868995153282106735742911061188285601395473895930876525021782075216539064783073555740033662552580412204366164356509686972996995810773293599581696336451978623507959755585462811845554460782101213287534436073679134051800310746330051101526577201755158576964292791850895991985018897923327341832472238529625120416537248331379702792670531947746246875057418810734689002980371737935622639077510466675450858387155518898666797070203252491843380763548292163198000009504704131086339839113320195335770830697277717212226031873933108327245761489394772594410138004624653242695555219887938917458014420832923044898282587917365400779352061899446595798935108907823628993850259348859029256791101444349977172349868560598369783297019693527542167758547129084438942270317469875310341852774370211636212066176606939408130498605250571836778647050899733012270023341346142059375525342123858138327352674388032324088336725537892030106957814195962051603388364539876982689849957313701012770083435511526954179735672863092034654559230571308050545313856666823958726432485209750764289124817604348889505798225124531203263288383381954364764697088307142164170410454620101724665222500194887621757771454355855996051537566074743486011345913202726517265748698967967348352458210578989591859850179491546339175417078039133284414737346034315324510295541207846110939960472988969282837690487014004385730342823446658866054323840141757786968429800772575362167772252732689579105594225931732858119113109950073323382077721590503179903112431637054515490153773983120653340856788664528333103505174820632399572341182781639604860019785106735343753665845540462147778307915941039831242809235226416053694383807627873209025921602868997964443413970534486010960609759930255912206854494711018008820767687005202124041430446878342666292725647494618319413375246496464549353252314753430915371013945248324705761428982367858446699429010490199088101982593583840932044968859868395771907390515292695971071824869114171445807014317857411501799971086173804652424718373471911045530922588960228757144791757118303887712793848836130461109150168523827669916612540453842002233957193559788599182466316170827394603689057390608650593990150622340539082149465950338529760238652480140049966580508019784548715809835630644459714482693531167828701192662108568242359238008903758285038400477744163483412085319080332598291974864241680948834960930989892282079145028016593441567846024840437236343111220525537138007427621770006529175466482237317202536237358127123535733642092207286652595006895192594179529680079185251071970765569979956092295609586813909143291461022877731009268573309913456774833298923215512514650705134435242048319819727727582482755674348803455940957146043249699242561991750489323550071812964313709886860311599362090570867329064266410196836526424506765203051060649163864778202939034544743962219551516256936278069704266964140052825557061650586646928348187266012673715919017359440642975374125424966622674512198953412078858163502813345822370838083961548230789279152155231154919859064847744389456657434629883924851809085680921862454410326202618633896851603650864752597579420004826224382325625632345938914583281938798436947924402210440003537468085638020768551960561957105906472008038323512956908394668583499571073041880329517296787187089116920705727564078399993147769928925814087595624028462056775027946737049763673589151818766046451765007305208406889139656703721355079498957101275614666196343987396918747058697304538430153159553350458845899937360566904631974913730273177599467349437886946638574147700556643642636410900160194658795154900690262472780843465792447936570498588648262648303569512912210422200000083446853308019060798587935922009189504882013250203810442060847543919010695019934463488524940570096412105026458989253174740370128638158185795177422880856468128481026057410706200480352673805898353212008723013084796332787866935138422103024628375021652538043938724035031264371610994262187475595830461067094939254488632620768239783868268405488620249850652611831755216517058673451216150726593475208354418509360209388229951444823519538988731499949777829829100028495821116484234246063239351191361192178334710106816222017035179293495984099854237121166365151613941176221426918171736527681298698002952378872672608438925081647192731711890602094604145727399068636932559001125713523062944128512109917748567309074128809869989694732161806350850731808576881111925003309363662909312927236471967857650860866672343088772740113537655314723917564173369996824475322934744839233050972117971557164427219404443018236521727936907277273523744392226706695547254438920997785294009870990096265303565456453357779812078845148516902030901380812673850624159001959452196274591048023891394706263235192208639221735782408197465578632741237158337906140128280998946593985582859182202237187631830972519550518332924851034487814429979361067021216715275175916715705504979393667036184226008841356243181164419580144321083391966316945845877624623197394240852910307814609967303016092510192727631961338663810782209389385359238699215202961457458206576131080547169811333393097939519774818619391580532860767806636421117806076402101841763904596733286657163779811629570317008127468716607868127828615715121528762505159395483536881614782897924259039490632648474907389829803441811666708270181339534442231785954658746840487541064421469506261477621934590454099884971150855016481550076052349535109113681395707046187020656534533308976552913801500541086402209261013805910285634077944248860921289230844865886830277845097026433456017339296787542391376234580010052149664173755413621434958274511705706658584370916187799420023056199535141115515858194042730014761753928976284085257986501330067634189578854506694023830695801224724420094857982461981496513152836667118233623202908901819737593050512888694106327914811174482242414236983883030992821213396263376776732380706843531881007986340394756244615329160095148540165487679880838965409399002907290815373665559031762732258337366226215538515930523893665267796402079873128595933602983235120371002291616320606700942324354814754913337369630864556468478640295326841524692927252699929164983339549593641813999000473317495354700645592587162040381783894194334873111417767680777870438846829405586524127910796843662887108585791685378464313433251660986800543400246255634179437903525809247547263531287284291176458727995344656010102831646822065223013667846759083957613477491527785625785870603400632511057816980438022410105170907818765923115992774014447682930432900267239210269157025341821158014440900103301009376677952677137727326648885447979417799059046731105787565403041971070389343905570109937388380745025457365987596833491383914677072806827013578204801608440316552352348233023326804609409993461942488165209179484235009296052288529300571719780494521676884050022472312801786420939986275787898890554172135140492246845049395397577097775880040727046404461548162188602728039909060074309383610605945384357472445800767128338242470182772702942048478161494736435954473258666723177294272799390263183415038933711898532997907685846194872329773411671597918792352361321804424017067432071340287723737690659554555324819666573295085621354622132773427429350567178452405905747308422700566798344893133683358072951083402518480039487938526933787550677380551661881903126282822043455394459153783790018553137137683092033389712380307346382320424606946287964501865789923549578577412077015806434035464760589115768172064201745127574672641356229061834233235216196893402757897709821646233840596338481981296927857259201941598396710373845336869712273325864254042678994554521374852876101022088987325005820685231011637332785345680006128571762186982518634273759150052628902091441869430152059970488940090001966554457802418982509075767023866110581032963940482335672854087276592537192386753464547905303257195551119748405858641894234769202472363192570343083965774979653211784550019606457888795125947157472049380515228178875030890812142189591889141578874892950487966773248298690620713319051082710322977574402976075946971678101987815440315993516782263123185581367999646436058805663352722231517277282661545122653663209648836794343519421283134511737855515462470846131496042066165072496937251299175447122868118714313357229490237632144717176596868537074321037357353810693637114114852559551432258837287612584697961413801131382644323480486543486056524445012795574924092774334432190662205564286114677919581016680129047505919428466748287166464612255905845217525266388006319967058562573130562750126150588569420722040222086246272420031837063134108092093987026078282228950555707952419878103365168247216738765750665233346489265678808453436201877795066072607006367388716625409094510748892084952110564674782320145745056067367753720417671506010089361702765098554772761414646811342077692504246112478110063304338348400573064969038240207455421974446766673854411132945206025578990166823032310285942517226020576350853188837733309763909759681980114923435978424887454168776388255479702898175284774455496174529153439137988944588993258841589789115800271591424092233238822693162485458637520880453682251843293658280532801805882892001166738806199568687556539725726588615530934579590454543551401026141774189679296079845657536959996506286404973875620530074322607835219320372105191198524483157253966745367475466721553879641972998750808812131252641268993179077358291314041831607713928817436734933188940882669688871641028907306395648359264584402760832683090145975296050964242736938166427637865740381347758724829694305952533762187127029700349036819155584226050810218173314642733514727948384471340672386814969234789695865727709419436881432813657148910531260254740821439400004893776190846839472568133960991385376460330161912520125988711310200742421101733803526210036991370265008502366380155941166271803901984704173581907272000770672804600721189342911836102642577789143747234215178219387412227037207693435501426530608115510720820140257440275519933029678424890763138881185424210289018045829662666086826395956800047309619722640398714303672412684090911334483375642467794588950264493315382666091489533358691646925534573238635820346240119527258312290993200293240988591495909040602952054019392478172953236737642937403120050800133384048936549398415595464916252336359399225436375657333727779104568836062078521422573162773217662689809236523262337222493101653365498110245423382163506562872584786053248631659460223082888891101007236741578500257685366361646980907991073735276339840167666381131171533748041555678165072639249219595218887550279626111854636227859797937711756065348046812358808173094761035837111910281089715584556789831795944104302174908973582711331797637024969795665466129741804543728137060794335724791734501520150509060843814199709076068161243409366159156586812064041179454320437796678602358260751293634120889080448423978185855549528068127327925625558881051149121957762181632687196737238554470405895267387284691387967585784715252115111708161437982488064536542499846665890903826951151239024082953712885009838010864274088710093151325325242836249215643265313261472861473238990740084834242986034569525702477769745294388352668881294258426309536749080026922383489239843118025775509284893000246310887648985743709461053568552674472179399435927557892390767085591589094092278464570641122541021357575153674057481478194130201986703703644267814248768595680635247944387531128509136161911513667950409462072782755541027041474917149002832709399261030346804123296040699101638470597469273610348514030069907126255212277021195139975789548712224601154511692521047775669082525765135198065291340516851492171232412779247238112540998660129618097477645664501926751543360238133967622332747745434087896479939793648788952141593165264832397031191648986340429239086718695872443281383307039081489186753174456616334903654783109927631979471394523754103952824026791432711723415642413705248787003269276923739859440078131419267217835286015931025084412811426138853162556503073531866174894832896204715882602385172117406446625013110567312884283578968142508443940105531796044107014738813919363812013792412879484246961244829885625493609606882510707962819077839316130178396796325865763443985833603293007130521451127621917311404686801474704255899624985479771039163173608497146002319060769357956240970720463573249706691998211519904461878131864411084957678918723266326298221718450811727807544082077949647301183423002588434496159360236752402709537831594163905628256172472546791577934721644408002662372385148330236456650937216687899101919717416132647264249041777883724347965178655182197610881776461988510139553274315773959428744261260260304815621538653841605785686286620436501884555111489453484762175161266458314009499410693377297752112477181677700048105924839911027945474774990588189400591916044616258393003980785896179252813509074258965745632925065116461600192735401700182735776138031343082647452984373364313814874674739867170122389348061557267030093344461029856121115473663548842933515580029447180931544207747103390559598746167946010913470995686246453122403872458327857352886172801061385210060446359519026038857695179916923663942181180803259042960966138483497576435177944014369372512046945473529035486853776995620641481305186110959962637601930757659330235708448875707450762448224345101361417949858067516946257140846911654610338994654147166789244967115856302340398401181839309618673426899221565717872285034925198979456222792097944756325373994595011122218943059652392030483888661934875846915628181199826271442562362460007692179437290847167685955452033112553999735268316100312866301284747624159045490174220714981731212150688496885748179508992473379615096867498735304933914558799807326363907663435129031152880291507537747650122191330421682769911242161547536353692704547352360324574657399561028418249762296394884145581049446582579653438257803456777010974893453623059127478731565574725882936994710315833011797489805606922949434922326915324177823101208135010756905916169238210177804328632034927099373810449872109756165522695711786708151206390659401396774677111074977120814388146112549522267843130162474435272221596770913126324054826581400704620498980156892494155152966720509616716293402827267535775964804967623110055968633437497753032756902575808565243930360417975603021692764016177265033218569651894997423490816404902936686116830604351226808319147749103982592862040489977774718200054157484224619749735177557893111584801225631517108400237179608591428416790070347898494908789813583064987257459546897364261666023913224403081874813047830434619115490039934939619828727091535962967788009667494800089030242008388969912502041743364464410590884895543085843672540476884814039477668968442360282323002002506494704041478585875136044240089051492034172104018214916446650253786940356793257075241071727505809352539777958092550487590690868922491939930967593146067109427353812295088976252998512240371911044944800259059614941421700911996270341784033494187295713732314320024845350405282752643733689753367457097526102674890595732633774619594674003632607917949511199575020508332767647874177737868370321271073371741598579751340780877397151598339410316336214048981422801449247488550257072579157405729188678956616928191246244736958748193145884052978242811197129111209406250310281792448204677870126699143715499973844770026398545631602635150758768896939610550811274890057872620543262501501964457947402912367907480353726269422264660457217335032328988363039836433883793685589513004156068628239832225930283544235179053404437948885125536138350614223092753638383971606826213016352961530178422948197652270434941766005187095550689237613258081505430846821356401780677231646745490383440996916319719808961889536940991190167774051629725613481810134160285427868334081117889208730166662671819934173885040421159308217929765439415254075349342403794299537508423890642764552154624466917010320316431124107993285210913604097257868359144865331971872776361330308854362527505904031786760951649498640483759237387480418328045543660492371620924929869996650622033853646446115835766416392901389923014028884212180689806819952098176063725296210878381578543525557334963456738124050801178360302468034536461370506191023050279359873328057104114988322146817388416320006464148635630631660460411318812755104493799500611800321680407166000360566589855165934223492363189162821285899847943031434693071956778351090879639972237658210056990688393750462599776390880716453651940631707678067483187499588961433638171779393185362717800120940733631753510834568711904896754718648313419412880004823025417782457774429871730551328020000577697339383276779184396662366731332878018632747808755191423654334175949705121573151800816150803408605124720776740924458046845387018237767720055455795838931163932625546526182878118729057478823657179862350382381565593755311709833539102374237678288411235822070628884664354639318496316662038259429496262536293104734235817091045939297435830741427847931255523381985075930516507577726805160883594400617074457970534914623481488281677861158093315642403516336452322445445689495778912738947795415043604352168950901766788254560107920890751046493878470228678806335877209641796520002038839254097713503319050190215903325270904122524144368337079598789352007480219138865060766205060317755654966185406505130712227140199559996519090283758657988235077630919495492289472108899959848194484707813240394603189148250863218228994341838760903258967164419986628963992788020222699651000335100929024966184092887734480530000172010470081265071528454010899202236018497177000349516593058300257912048820596913231096028479030075147207922345562812776286041716729713084319395753988340941222164339414937615554185699215840901648287962595755828354953293818411594094039781264585992490949445997293148170456875387158647615110494673383220486270576545133813362268031867276994094959926195077735177297813333879853828817734366122489555785078185235333503242673352270809761597091605500952880306754132135275251845801734514633271378209840779323679249703860834096392005600607542030788390381529068596014034048089991741558996457515970511470912359824412141371095207601013511584645085192558739779155051587131801703425066154498149399749394119368572822470206136813451449509300175962285163606369856409007856095461411381027115564794185399916874940688093932476056772431758640606272440769440456894226984793988837357741247243182368462751544275401628438141884404837902511964838301739493349751439248600521968096187162011187965766948612807079416834226945983519694093236770708585924208153669365463139716106525117841550965122345937372403344914146185678147632414618518638728843462439106424827752684953757012960028777758789489758867369365540842015408903015117389209912895769548143670671001350481413171746185020878994164089848077334556739263234391141607745122448978112554770248298911501368405101375974635970612921778081889403282230701228175344957428784041548561253123810395053373773537748775355692841427739160428022037835217137392546266455607113343957483818518620021096896193127290154727014919438254679916022569614616187633819126972067570214723279872455222652389809146831057229352428325090429551240199542833304149197577331664070971415876121206654918790470925647158885955642068828029554217031902664309791423577487289335159021979686788018658047112456464188645417303361584689247772604219076972783202939774927584457414958181166093971022446146962592504567519729644749676509675391008133608840648395675704061980071973785307516483995267065806063781960577299717767608632854377839978702483977987822700973715444494431390438738896086122334797697133736554581043125952690146680334971237592047561576291019468759345724087956685063884322656289089429773023858405477359355035401993371974294451889319387965224864199265479380619324558158820153649934885415616643870040999550414964269354897733059089939157097402648828224100410852660261546988832883044757864854798280918798383518870454367718487387228742744080446715408833665551763421162430810440867712106022451911636242682710663405759611183778084578162847544809126753653790061921703463041063980562390170770627505822376436309384186443833141632711729080192599852491631621985113651787721100561002872887581891341272214338967717695850041666296020970166599705687445426480220006700642795147441241242280738764275934120869996634626061481266204943580758572984473628149116198663146038679986419809608564545537974908048516173627319754451312089865650124181583092872055708104196807174324754858266887170723492924967525758763750738380590237187017139794599378635166548428451962916987875011414858830652750921985213473690750872213715863434882289692307506965303784829279142904277354577105357253882759115428079853370195770210853408059239614067895364105723236229578041118500139929513716060809193589722548190519294620697541848848739279247005849112804048063993753374863547727007462326752532597227282157480322157583647724183867240260021054198266003772168277960112166739864159187927121366091055986336450081451799168415407893499984939422777193350749567036866037884287816234316713471897434280145998322161377360601377782327247483825885002026320333786876193122670000810040606564859758289694387095586198704382311769564243711052435235825576505547327439276150704102570812959224963855359030486484916099734399481541257034012783635919888596384838279996917648031113680137344114547695789744336686768367718060365607659348351067330559146832445198499216372893230331651936671099588297962591817413560659499712140866296822044774797773535046128506577187430918456923948529016674118479307402236011728331681456850564563871476022976920241126850199697492580606507898503653670275821476349952385996912007677182996795309833178239740792765729631102259149374441134384023796321399973968645804557789521161465298528369555198211947624447201811802224115737689797124821777447892315778010303250298884242393500834388392445152257638126816613710508047468979894203645827496516042685508942652617343073665544352061390120797069496200147328235214126719362788991646587916247810197494531825257206183242508405411833102222232017427645338706048335724877281159474282515524761755144586595713873470885384877038075991422513025437774837343347242808046608926666532756026872304297061742300120079435126088429177078317234600629417339784028218314940688725548846407288167882763130237994382128560629491203143235574080250451765495449187123954469077900721367192287948985093522311225032327357448271706942860910182956749601391322527836398771478976728337421781195520017880515917226114553542207512485039452997523173059519911377918345428621261995842779024213232243419960650469218701553719081132331178425633745921685517867801398184397492272360344280969506291994473179937413433825565613992341750306774675250747827546891318052691752248392123994008911659253615730729934308432580101101416578456702572768453855786704086072656317726638676846671628775755839938000489468713529737847968626271167738029223513936356663737632028092457410633795123791605038986443635708948591976475274186775415101229629536195758237255483833743021574289489608070869713828278986993079950754190412063373848436730659034404830737518319889709717243441278110915669796774093666864101310850552042173331269991363668157726201403430255073558766539793381722991034466524240605283116402774810110622321252652225021434560119238654316455838705474735012098756317327882412122477901526102199046735496336260071753950054937758126677182023240922938624878895245705597398812370395608556488957612278899224275361335644701730036690539755119500717213896649810181888296217785088029888448008768884599978197213400619316928946924087219878761848987775322780534029725695912070553590706936745540545113301981627031969332607717424922444261148086337432042651314746859287780707580506496983999779145377328657612684791129101711518270569654837223752798305767682406707938742059992635320088861271288515455868660133323662708902695756018869733726283018994521984810211793610358346199591127209344843314816884539792985255235206926418248956847957129675480406661933210725655010998222029959833170106019055621114913635404808218832309530566430875357382393664273378438245830995896973379362817546086554229195829167812771469225192630446684976301802716178029430705988586738589280460617729046337152864477016311774999972696820493529026097335726533520032726715639423077629022593302261234423152093798980389780811086759030274349542665084275863460565816651611761132297928759609585789893639065194589765063211276863833445616477816617274539808233652336141977336497522351574675265053523250714210461792074044910189553387743424240043481202989084182551915722572284969865414215366612741551490578111907358129376953396122070880775572260430428044670963897035549045720261348373995824617028111561909073233423199538088262205263401695926728915407921539713485367233597252342657785401220294009854350798168172971730366450374066646796630565751671175207008625031358767941588698127200441453673769918708532234488372116305046268335857558346154677136858402759138773724511726875299112782655213507220316433646945791229958407587481337846144151655645523751173658877671165650690086216915401016634218707948142145405070402772593417340813635200565700035482898210832379555389942594590909645799395683059740361805303448215322850994031136402627611891776268011574770303383159028304626370047750423681905581667450132997957004415677898273879597468456605712078149105793664753474112041599995799820973515567135873441279850705458898005151915869539214672895883420433262540539703449156973181993667515222876824105123451776979895609170518425753553894544715269357798051676128186392485321083438824438400214206907817237043866753787681092962698706302325601355901883031152818585807197658758612890668971318680342480949041098736901866474041871301629403880645525471351985638981632618676169274395003778355411728486329980476180106729670422933936654486760939492103174728847321317046934901014834935467223026617835991914507104423041779328583697627057002984244614904244159104949089085452162497532270977303980249109054296995281835607647177089365792358025805536391724030562666925989903705532009597955440365946560483956849740212806922403357064527852557609914498870622968210542094748333256066077080734081592872480887516876440487580126105674616769755769334603495087685962172342477374194801344235161258096294843306731649877134097443052383484315240125390624351058382868230503842372445121159558393262297490076007294287077218682162321443057339936154645944154154135170378614313091032047601813602583287344097263812398484183927800666962049869292427788235585081348999652492008655120429780661796684106253238431742369942122976234291662051253623496966591411840385731952735727417764453759327620759000319679541957331720361230915283259045971357419735139556252911809025289964431724620858622655393575921392758013444872423965359655248362856063846820186726623358354215443166802443810218798508408071789746543233457253963209378420408208874381536720895481346489349040531609547144334188140404171011150646116232326669795847067456413839950958142621377608637528705591212660649192749634992558622398244218659610822940025179078309626535913742154604500585077901839873132753580487088219539279855349281571612195346321645678192341106919572349460879407690817700248426598325640637070806351335982663521065312890952075223700159544732621439306296403461454063653599080115455866740976614790826388024473999343868664247698927881159490111116697231291485160082355689666188082972523088224415434585218733873306062593733985729602859326038309636281783635209140342500960372750372771108341391945446558755180415567190450527158898692704684076430504173164165521427313158507946081864812661092054198873984785161921217268245191564870947037422924968152571347556909957221232348821375195638257852162529947143178133427627808215928591041297318619480195506455216072712784726250210882498194963863246737023510333111131297188032641133866672413798546987512069223394513448256597285966050664785207006364659381431615103629002422731721423652885996449314209627703329896280444596381355645891230734270013580747482138407643655678126532798023470455001908465609614154278041003301695548474485981474750440260698982184893000883326480510006551905022038132454038597196608950941015280780852080321277200768893698983694775573438118586111524979756717539143175218657564344471504489080129798963831059389319226129680917502691343894957814632254563153008490360944202060559314215669687237479187054592745032246586617286501266904799505506090879339145488937409015544817727696227946320246255716562793941463314425005529062644142336985358992416939375286387968516920580024630773685869429710898955424167070501793138223641750986515432745691644772129515278174384098453179118733443116390590828908975697974900581063182583000149034528590512638017921801790734918515428887760330028740469499340721736266966192426082669503405301967515811280074154466616323453970285338684570494348568178700994134011727269312276244845950806856947653989793460448220523666399398945679557605396123952623020392478719325719677594426366320588214107828704234392345679740022510548569598687386967546229675364193505094535294176416324574150063684839337515489313164508290666696749601666950941124191703649835138981081690122921837700029696038138235341809663071717779901288882272292589144694506130507001709626865147069537100560415550003868688845857780945785292322419581971588963410456534906413028339679817750876073493991286474300607624301437604601118365985953090124454025274061101101188795680987686750128451350228084167916294246690469307617343421573677789038457825594774057600463802274468650918602178975026697651809883764435109706628193580181769009661461568316477697815613465029122732994960741163030109529587699451907202313906023460466132635264538364690370715001257845011475142343929440479091554295563736812878673684436866537611463750761423952502461807686916737673790029771767384070516619931674975785487734917322183838068682235491471607540261365555410063867638849144790543206425107028187704309910662632793417680422465151963540284876112589501491885740619976483945375269038628383770642642831583605722380042352287282563981627047769767140578062911453365411681219885054701007065442259937359591502322128586040670112227834302433490926013026724610142830708414101293338647432890999810653817937093675034946249436942109691749517814408916344691231099238205212610722588099024968827761511802444124979320000128907861251217440762129182990027387351908525606615968937065492452662543801871302466799098631185398045949654724742444689958310359999060559760745728624487541889433471624536627766950117778771771953248682571482803416492122151233463053612746066883235747167133850532842170442544306348222401327503278538079798770921644656069479087461705054446966563369084816491694361668281409594644113537805132782325056592057915054823866018585803338149156982569580014530780648605919497771692690306926817369394890722842136813643827096521032285922845539329962518879566827575034425441957035330107616632901230728956535886680450492921226460387247095505593512068701833445922047487263422701953691637450086782785536679027536035354508328431717324441750135658348800627628384401889725988483898227674805919903952217962501014868654871434511312029719751062334936664435527427935173793366971608581973931688215866948194163195999018781255302403990569778383269254585974387442004219690906654379174746731771002690791526609790820302411778611048939375833736321244254489736470652432472740965953000692447939090582618373797619384022511120955195064262496452886088475314303256779254382807678300900068866548775736426960016535171299451939869638170519611248914260277523377463410863235961082347336482013730500751449751577715549577140524550169928585900740558126161790575856854780001213269105952176594406513511668564532904451592809699483627717194446443424553517126502557211204833746884045018135195971616678533186853623137758674277747425220325863727724284304660318814875218480858177307715329012061218581656983405084261837642742580214983061337669591092491456323889206148224618470048868183752139488878442550282659759960118278208160694434166625400648866184500305155321909255302215933113767691921321397711889567767199284928509836533158831448696187124656457973013333968879862689642290334964079211978781323626229400216321012955689122369807524856213847447165946730560528529623906280764571758172656255452631299690929155137367192086062570871691792237621269733909851559904000058763304310650694343173804930567502047540842099310863446508803881218547245765512482094583273942519557099367849902856911487236275396427644034283490299474697712339501321757678367657191157313703701265390787344788318285891991610681938272328456618764478978845337912977442054275691691397655206858847906850038570776729830885011896830305322029310393081922035875715015633630335046891242735316332898775933163759962733475808593874804797904665813934718797402223715243484481047290839802653545583633714435898915330691373872705513712320195021357228861405832969626357307312088503313436090751121314895098591038059792622820889659199356157354452255622297088873419951484258857399144524817307760273673661245658150042311764313130142800186821200052659357203100860217850467242746638741911480864421593815088331789282671008491576556651157369738289137905751877161354575769420000848378872106833978521310453520025462113539389201109736623449720635080926073586197805091883969333535731768157197420124603813872107812153361068740852104437250096679748297381794758016040195977772152057764517139381160539712245749987750265984533782752331193297134626440677401599231732581381286239565138042354986837668726696348045307565487167467995400596931600188415785120284620634085648923088785324012516005717624850047654977841374395365449187752353100967753944650405488538937017753524051868052116844272431889759555381190165820202157925057640723328945490918033661522664602424957211540361241010935129879986775270457374313662228356328218646673633183847199654320485599955413811227373319999735856178870828283434639689724775177772137361691057025044040717958709069713922422891863109225182294082801732888910655258544364685392101120754423693598005882229747465873307215635535526655758525911384032293741753119081841708250101468907806843725198982184045190195905084914277441792716629545427704549298179020402172973111749391655468162066558638652769389680852551402129382857562264576557476647600036870653764376039234925687672609565363838169885105541094884487672967425199310108884218484434436877228926270572659258850152447692712930999557328176239383972631879162689396477787910141561928364932979601601588009342676625426117738017081474300286927219506787210747268535056541966256092421533379165471739522329352207900808593762112510323351548132859057335579305525567856494306463122038798519158535973207425446240238037358336509345518291926356329250466382889060282955280403892774484154137881454627263031063519758161051196587453661005153919743320796097880826270491896704071585546632429498420143751818905807739102495422539192580551247188283682776267065614237952448684729824217510263958807060805675488131513463472131393999291003409387433251041876781962431095668340524303741407964121620330793759437131721059663488189718183920555817940918292573315012047543677712268455360703327555668750638964218422578437303218651106496842451753394032160976145793204509285437772567074420128571888942109698903653541096785166217090220278684018958064480880108424899900076079906401709951366124746457916366489427634802316561450539154112803185926407532204748422523479624942245111150456774306752554440357318251183201073541845952401930089122702738747893846787970077153778626912793331482633265898583248712898839149266422264767132214574433567859849854189696984996527244425238385725059064575232714935402489470889539958686094736854448385539309060016689007708665932909053469995760444508605522875371140192471235578093582480031868437082906909096532167766455916749314216253089057855005734519055338773791074635134376833867186156472908936662604360546029233620495107775033974070988086871928747797258551636783637622183065244384947820814801132857011724368391965211011739786738725096005335131944323750541795943816560319010082605980261191085493256020700936461516210714135722876871032368757526105462036737209357431119933581733450850883188000123293626917999634418082909926481005020130655089554329955142250202189624011601589525319463852806863486265995982569592359887093347975913259766905168830003986232807967786972720854386479429202872935443167642538359701971223242512816300475566989137497498224234119869754736702342646106633401076628378981601012794636659614711674576651985039654980047788530395728897645848463175762142047886043821762134997842681134428001895501227766048454954238591213909195550249040437894202793306653103993943438696314518900829957425549063748066722948231556800500815335722961240326936063835072677034537542391034848752180192083101635210806400773118826673974708121063492528804213771315982190824913071788283419448928428914021377492895325768015003183861707437039997663220398022371334220931711997400644052684783978026246937989190444669302244132133786731863735527222278200515075779510328926225211060318303946226481954970403762673549029596024907619333331775511034379329236622070424806390321501769741175428786104084473310144921984390584430457607446352685877128708524894961125453970649167366946324675579491292554388376745156496025684182218539155931089819562434831981783540742224021666004820549085841476597861498605210942914248955063750830540458166162532997379350571702752640433810476869061348052209724540107148512718118110240422560372314287983694577009398003517638406407915281054353163342459359178813779559980494763532434096889303672456014857051664978887593432306697438540576323995786108946443326694743336747402604358057111093827081940421295571836967193337647804505305742250092948095431089322148002783249650700552020973910691420506838213965740278332690601705595278322147865006617022397993340856788842523295222505284167339988483642469992012497665127774477653713516253319156991810687874100393213875794861496809853924834682087252878398471671106263715097396547224323476110089362178666436006836538066707601477295706818534034149525439203530125704875910587590935831184820639361482727362835065110018598279404476240393622680612478100451132186998339329243655664486080639497262795335273935083836722582706954923793178517078363422147536505007885954237642536629196357426137567197254804155469791743471912898151477367684662207938861109855809952851948364245469629246900938665970882496249699598174120105306134886561093599509645277250553537622038831699546643077474541953045577006416347071343220215597479153755233735619681591888666428286002771481375246031103182254399478971571790549829203091377514829405634103775586831384989006779700586638488877682747871685043887174584642004944042988449818200086699923667156840458390274846943979318271880721733912580516357184487040142407063695041191937654074978022940804864568401518052937108233548237059551463866751228124163428425781824041939730828941627071833695296501414053204749773078101887471397832701452714246177333682092811590292983082439196638191357415102074745935081433466553836968979563539948394455949383725595610556467246346656797494574021779351609238749157186284672732045618444093086641806237050543944774550098825529196545447691014818065606565879645442990120746151360390038370785767183786340106272764203857527997895927644654478630232669442398882160722308159671393455477703628648823262026029843235267494601440355429528981726642112608195133402259890633082201871679273247761253132393682270198879380955812600086412982728200673629037427472988648292300691212096302021142481424199298565136697660577319653611155736690388265505678805610865908990514181615447230505945961496699754418044289023972081324455908630469196072299244202165130506166828727554984673773499694743213724825355400013998030707170384525196696371769458131934573121053561595365840804749112243911973901326730426506603837602582531041618228838632101583940577203940004693266730308023153060396854515550169077945216738770409889412730612893904157299469933374427940931907025787448353533028730768659201062750020017307723967455936726719596193367865804473386968716160823193413469292812551549305162991806079116778985057289532918533272525291335260186005869848172136737227979659248955839208266767404209542732260935734742454757265533388905750392993326508246952311619501088135620334782242319032471307156020919949342136968301782042545275238390586151850051925591634404266486211216733285077711240946414032765171348974865106625499326408419971070009118702016842314085845158416227882925883055527514894397504556877960171631833935636290012207546587467128766896735300157753518293796639089699033799802324870764555495034515538943765133602344255170669944677910274462088677478446037334608705587487269924459066373276254227233017238067629579672721700488701237105876683917602816637754431771843508984867191002762165818696126586156240720887979163926113211023536559261512368360303796790268052089825042269952101132461922393599121737917678182212072362891460718866761967007804279792607917870820677539829741781460642546163840032186501105579732185652625288882530126750885874449385281353549887383376549175360809255622067277773105961572585525505414207861009095003514157991710162109231970777743215285266769529966172830944708824261186264856187279147815432073995487030879785455056458065537603532572296940823591432369104760613694743117326380795482754164378972734517502095760569474426574762923026123351170762347420893969306709909922298340857142867357490610245177537212209096111942962399747627008728496151690513678054330603527686657287025055054309701250269511818907963269029846645672989396144889034044067917351919455140219636845150563101681362324544879486791008383713397387970064347498331347330934641860346987337971507716493184234751856186609714561498555786087009036692377390888604498001048712299220897224320837452263197125571104941630805486975686647300379911470585593355054558928687728324971172418861803232704538993082156894785834794643907266115997355809165293884861735443935318666815655719349094635904761867439921669577209024382331106726935588976684798120212420567638639328602018178824584349838954299330857086127959666120758605241103981618944526672625483330881007861912552349538485423684858244592609007494861199627102244477171141126324546783571934585595961065756346543280624654428707785519762661198362167952476546309095174385918654108472905073750151820368197397710574302730248496712409400790606753579178205835279541183762522707504088041725703943899872422516374144435441478768747614006142217722487059152892834450885760923033102622948748875033380688650848456563642692064570052249074401807348984650146180382969999300778973657828399559227703905686188079087580823512330446708087035193083672966471982056824650644903429709293871472072584843084191362765696938899721638881857131572337910577486907554947718912888207661998345065212604034025153398169724555991042087554461156401070339808459192925022229164179772015634514488899680681997931687038547165989004438997437045488057205221104926272679212193269073886273472298333007939412396147892547233834128420756764654481159127202875233716221060845514707536514446641531191778375205702119443543348254137354348922481213181326576915152364109444404534074830460081744142457897416014379133916600810273702071870653906019635455584882434609651981252527541888752482859643040528702187809127638095946150769358741059946588536605046475918431196871853375714142831768485261297425420356828095359048640665590648900081857677968754414969962186300392479693003776010219351872838655221047712639120477956806012913183406668725813688217243684654832924474400144482101761831912309707720279424956687248926149951535591609974553894572299004428046885179744113370561529600333527317749430432362787607254129072764259077306505297592220780926161033995131951550718906387640518478400480015696405840169813249193386216506398130366881477783261849984464050248093054885320721994139097165565523849551383989845992504188468540782610056199705169906537424231533520578691709515532351731718852304924329310629226629792189747905449930849011776980470450941352611000190401976161488738228823238257689602532332013973449538775527480365268091637608141388946733499868728508476136445602659948531645523202379374753222936441315265580077845450771073203776271558620624086115756585293733527468772608043143445183597550463035530436126556697777397300271407980483864072311315570029809204566657916738578587675947837717372421295105248474304926452495819366162785393945585380836172909764421508993465554263089285277875609966853147600884836027844197662680595669867079905685440560077107057744683877636515282592287363263020378083347148224031655391498439242082367579748852326730831554107698856973522756716754517707226756025217168212887573378803696657834169972337327960415448805945719150815297999448578615874412580791263076791291520202724703582292903818162354802654382547367764750536508676838637000057767230715376188646631411169839081376466270542679116188142946523157006161106341357005954741437922742338319206970652451478725888937097881284878011784659289522781534704248212169091817120648171327392918136197931271519774413790683378480130083540460731406753107576916542874838831480591076920012075497411118707979996400429504171504050333215840337896847833594716012935182399179124309260390899016065487530929635276097860587944158141299898764449336333434168965077805249674803310475934047156185619435529676311960182559016990556016506849309113631331247354957347966816468574064760874730247330386446058334107902727613645926689331390638409574797532311212921776930668780702817783229078093832646360223690556909970107121943191052312051590850146073195268760590779627325652229028275376173794291587040884075592491530043280694077149040716134521043340013579267274384289203816063606934834451610891346412340682977895684346815540656988837218042344575735656759881006664972087453577811574129193898400562394687640746472428247580631119251402278228556564715948149873933590201834269379449856641377477703693944183577487189030743790372403987035527087141569739100959149298418140615902530374393182216173479037813994047164835845384613790216231584248327550432521305174756473813422196932950149362243915204445298338086431806824461090362067899163701363822532766523892321396430676991773152702114320163168467276757435416666150285331446808813574974968266975121702722682068358493155861205897703764653325947400598350663739167737900618455447932313986147050198613643103755963812429457297334361419637983622474225494053943369396246597077913339006289935721539122647142145803838342773409543270937486937471469135718462005872747099163330352487156983846497857587084830379655114869679551773881173350743924108495263076392575765774320879254116812473111146370774897070212911642188515479744193283105988440898203991049671380850829580211662382343678053592702455002410553597408100943929027232275966996629054457284289061485056110379591651066401882812551235488409468861516658160349081068820008992151290076512003489440332285061530887569199208287978684065791571658981461504069867390056234307905946477812661687066291351110178512397302553577530525525482408090614034819881713844164144786353851120875320481954165110707176762265587386626443515260806008022293826492443640660877170928822750825798040337765386851871018518723392107979573516324562539549514741253209703979606771180560872344543608198267737219986387197156894990153496960495392981816678297324093575637765611852400207112094574249625266443519534934131923466031990486962937311985248473206579895479537713081430594184872388598602944776023893947644645807680405789897836743472575162028437789805271152621079682889846158217263216257675214024295723201258251544033982258155373195114996769550630835815901432791141993658286795135667728936103253246364972341776351697224841112973955608537797957809145887627587174278751286316235671198301490678741033666527006295920229750592764865154665146136042918489107509862571360017630275672032272655521568318113740946274617364604719465049501365907245913538072477612546283780277990921607016022221758544316684331760962156128211615496459485575155663285858153355493236663101293457198959867539626797605265278217566424977441533201062396734577032147250933789907419658501241176017039612935704299012784465752534702841281217398921907802768840224933331939088160505780170540872232343401190021102683648767172449791736490772289215170335735807999417027071394074993425178529318252481728985634471185593480249748381977974787324565272299011902418584225944830568745788470223632078695531856098727011622492661799160131104675055903904987605434538992992439691617839665207171067585369466112638716704187084594378654649653540668675204734237343113740444698146814090187551035881219131520708080301947427560436527404062525761077553676902656533734730650681373909424391528130020948009321795785178806613691207909058588116510447698675159513570787756380827853077368458480638404800494949883753314255960080734269342651959317730080355564203091950594116863931856288802281280011571787869007819981306757203289575282851947094408924063032649317645581033074317929123060787681893643807206124069237011633542579788808379467174978073555939149131174246686834123381763200365881985377382489189640848102447195736672356188999574474272176676623894732520595727884515007404124590410841785132777261140969688069532759927405228492044860133282671252524386400389635515886983722784952710335543137928250746009044888988109952923994841217513567817055389203727520934059899789819798780856555804518326394182700020312111616761794620224800329398993515043023883727061087769509314398646480055179092708240144930243507858169338642704919674407839226054792965324754840094711342430509576045644464431025769088375643053950888124929066915082765837419830521572629112888299133565316310179583972297068282497311646102456694093440579601453770240462621847188705815693302717271665779714879194466019394112234480449442601175605409790171246757571555882590809610179149346502975089522420743641487542347774466458876245191398912589809654783250191594602096649791973936100395079667184497589952463423280997503693562969737487486458753582878539474901919031494693873512046215897080123789291631355893375178255747982611285090950423654044345666613936167635110016657880852779573083693307154104572006860221255201154168700589010926643777738786180233980540949411846386987209645087710865726499994803302990110411052873929743964413991255704302825136913864425422599873094996937062636397410303698789737800907343845436012225975064633289776070337034445824272133586433429479527795656803707973331799219760106141063499913444525777541659804260536833878324518004960939389747342667916831119456737844242874183011771627062172444708792777497164960578821696545000394988298082297102836741975065674200189993158184980599649920820092866350591517237963713988866499048257434320338406324150738686457520482977029250139729578596878346571371507826996311373233332544121018639509955817146981871207212994965984098608053689896424201862259040073493217044111578557997994211635444400286056307935895400070323863185643574689242651649636365401913366462574308577391466211551558524502204508029461928010051909532458621230855526663245018241113609610391165067872748868152933015718035833496860414175608750637685772106585433549843531736761561933297101048296520466331586816619728568167164087774371541428457242590548351361039354196888310764747349271003145859937801675007197352015196735933044787872442427835970611820293108933152967663610029309635355028536949016116418849307568222192016381003399342136141123877297884169619758258196579506123902757015457861349051831244217167409424379453055405067526556769122503458480690472893878785508018975928516437251669912360030603096356901794095033051795007470023614079452579021871746017529425033886071213513646904122340943372078417745013647895804824326278593840379596618617008547431654709332206622700600605882376255942347485411968253067904932148906333508991315153568285861233424381696836375654715876843089618193506296489660288595290711512040760758029254015243778815320761125319392769449975629981815406702439257024976678109615392090593622362065972904845538150728302970748131006660825632997746067416709871367319012860987751497537051546343864825865340421125183474176452456116521607172468549487172135752057967116196724281057516263932913680144816016106369140179167251211302192400718674793245919782891464547415582680251898671168715686827411349512197513272184059110744831863228939812109889420321370606220514295139085808693848200471909480147637737476077993044545950123990407319811328007412892631397308960273277586814631027714905140153433485902692645435739241104059018690792611856104990106640021391827602410876385913930800363024079172048168187583318163516187434578697471548841565323592250711934613139743971424469851776063479588631506843340969524680458557548753135613813895792942577305220633027155951555445137259450297322995343705337012537468319754410218698960827081833581827606831354384870386062288389597948624048649838547969765642711457240545179364263705124004438241743569990642264320528791498187520309051014737385444213128528502267789550098246280505939409169833145732160931213572616219581674441459568833185797941029433162950314896422410539189496960425852771427382847200543723005487979218091175985348877316371413527977979084570424464744186874301732440714174174930155871253133950956432266148484235011670811282167702241736863474969833207805496866713882587675456861384075013764550015542152820280448934920744680271969339176772930817237707853712976618396667427870190732303379276262582698148197896714537100545267056638256529794607760472083939848419332780451145148200055894985678302575863885947506802031367519065910618018459073356601554035225849929668299751614125800073729953762492359322065254092485440596920647144399794921740752758101857388213048432198524937991722213259663038247518501226631456018697503810979417118098694251134373839017237754512991556475968729178944759201540395061483050251824773815138199576270710306681354666707050564384271510667438083075072805356147753076777635262390933608918068432828799215726218966078254227857608924639074056538822239747292306828745774999537281305516558335812116405840929149152551356422087654611127789675417889653498217076134863633781332854667903416668095814630060526698879443519482371045855343342261362732596074524596385942073274864235764249878875898382730602715528789825210544133290744374531149256695364240355745743161618228500536934146591890083635563552204412641614298242276663640702597074297047576926287822800337144281621139773568020797646452348090351218323905238886352825596592506393148096988626456571438007340321940888607089402009264670424595233028510618197320127259203206804072411820022448179342440332340357455886835415288014211166802508001596874116445181594618960582331013983465906813984158528500148152380791291458740696114408380611134384410584937676536030650657426165976411308754248198103910075096970002814095939355159457085567859620273990394128896228529767629053250582873690423628796784670678638130030975515087084296531940813386148913820486450969442946110476691786906382467137688313316058400780444116240318616402692467906747490327029044071859921596491458852244310502917830580305106179166877941843097139445019626334242159096903009566224207379155887930328952521259726291929348404932741815440470407062830068472913327931857654535594974507851457497850037703711758324214750396230298218168082861862591918408016181876999460365860138748071642449230900851116669850193396818787996767035755157690276329373487625632790601572444543085295314037314366398126096836732928876994322070608587133033794433269997064198141760582335636413675503211853070202874569906955680107544583174641334799772248111668583628878029338633271005745763941523747679299626054527544828789970078020898023451514400231155092381145930487471512172387198606636801108095593598393206953754990753517552610635222846243640181480385870058588018161863227886661556020056013943385877757346104488210055873965430930104502352977161650253779331631012566422058197949802444704803200621122732592326475521006980351338609138338975283838969286072237611212741580463725326649316918437632598589636550249193821100539082121568356467843942026643059741470273165065428567240662589297711864960508329474260603255569225752782637891216386647641755184519400127979066655887062672670956886504607072110249712279663800427951249421902290978260734909446700997015881427459898509216681890442315759832178522190827614396114238876072231159092590140010055681263933784963418050631439400421113662781755454865235403267547451368495161842609206704329248749390099119921160758922727015912361192026770899204372054430815874907828851157052533772576870061145001995762469969832242251854655170441745887798473367094510939216011741674607304055041435580295062162343217713728424612374678623217326569530017731012540935923469146972103377479577505661485948179480965465782072856732270838675255529214381402674072926800930642096624092202383283084073657085195748318567251377245701863957634236364142530157579240692465190810463621485085025013216134882834939695769266157726834380325244955835254206631087121332914431653373801817137514819120600550812917528968735752346559784824342215101754251733174116825867208676459027627155432837147061569773169770874073716690268655043816072417155255808259285047096192862855663699347085222082467242940418059882777686324753384998061668411868570973921732888045418004254495852829476674381274145722732082897146320136636001355396614401697400960456484040829309925013973271611339815372181277623069242811426052578190608285006530904104061202713161606520071340501387709151663268622010256956757728906330628255093234371524966925486031744840243687890051040716952773807545142329102182085814994110596258961237767926196944800004394084561138610559149586519188483078750460826200500163774999230406715483439672319149486667274153621098860711542456233616230249617504860304820057661111189042872108287402614488061593990594919175302280474907866966480365138885669079663680521958274153803116117823847410313607290822837002716812273639509941185846991211251136783112124132900612957692745037072785015948382902131465470051427423640834530208454888936110213248372824756670273546331676325858495985249774831202588304102950411193587179731408620501887951671259590765423559291290469564853621826797255219287257596949515317320839069975800161860025553626580379381659222368288320590001695389880026353687941879138651110655810251237459071251822424500225609737212986108557879972938681068610372854221571625577035867146404055480110390787044061228742026046867114723463253442515709324244219243234192344724024230101997916771339410728466453009431688907394295934994859600467537748822330490288579062128061888717338268685094886585177394983141365844278197335820987540994648102309296623644889202183855233451825396654823132777998575341463720448466773936276493931602350491422093834625831555045075487917252643226433818038737562195890155956856047991187137630808086851450168540627692486698395841901591186077902830704992480930425238150835056716640036153626716746605486994304381818075357540910139112598246717118995388596469355485764297303270785804271790555584115497165613214201662377921841248906224430788307539507336431807272894456221465302177193897604176825084200991008986590400186375583870026157304055917520973238100683066320475131547892634156167506947478175901748589416885786837713686669020830926440263963049994628321798870864188853834063417795933195783886927492863822666861216553674550202399833267116265181070755589594849372156978847015964372482187600426044532812282996786106259729521903008792037825371854426102083482542432138688155956785541120049818195409429677590885827769227028950161270991107498018869865309632860513772510260687477808694772866948728823710652555844467945033682560953987028611895327390366354364483064526642405050284466883099149366915095129990690601984833028384659015986423744294190311526437851130362619637549634438026178089355456743468023465453173683462075873045419313426497422172871589561425464072315429297595465331465920220315289873201737572031043539330636924270171999178299234084396021692776958003056712420226683759596825461203450460437680523957767547691130457361556002313726704236718915652375663602601982139543367411433336455056790288326461716981150773494732876037398476821343757393344553323868743987649070530625968629972502145529336234004404185963338761927512082783595617774904912264704678948016526937355440251735013567092417710938041270702683000184649905634785348501714941061019205588314854402232118917449477510954658248644207811232177748687894275065470861896722940944139889053225782897201895718529186331168156298133103673438684371480261885436691860757656476543976748503468677836533436295838622994632950765705576966324436748110198901786322146231507613188452465690452626639904905456088075092471159069711200373510071080433071559714265436661079417654947829882041504932913132463142465140268220691342869216854960494593456434434531249592027798800789403152541712340918591041136031560452778909108664942588411271978992984717568081709249605654751666166023918390101610283767110012228079607066547123143845319718856985609777839002836320027252089002656339863761409388539081520273388366661930955398429240170164155686302337664877802525060512448997471294849171722974785646500804703012086411586874168165611271734882410468735269996936683308266936664625099509661044464896293150430772723737374995450925478516193320192042963204603369503059273154655626566833401073950269848378148173266537115926478902291344845043061230831773003698055353344584635356234742719591958318360905890006938843423130375784510069222435790980222516533224195543966420357310810007481499106203251340534611912991821000827610530750633313477530082168295700890018169695600617476106218494433113138017972609824467388106402707419038827104859909123918911669890547401673074863553819443858641822451887502835217084781043687126361557076644340905047783807674377503593034381067659565763597349551046221209382903855656077584958716249096286757377683395826296980786495649557619052624224865978231731524351470217588456362484338719799701896097656567920864033512705037482693301135199069156419539992510518052979999154642720722358502047215867514085942188936426121713977787831223704557144457504333732093837636327407818110800048836776325552155141129347436488304370288958758175616308810515708865141069297476091944901111431854511990692520059309449091613971843653989403600609962814068209020958221159024787124723637603162984356858989398865289583058844042558145254921032500181521208153389545365187274608689204899118034060642933981419390185780841778319231796042711901796770895412060534424007742127573949638972828403429231734526282540190260018185571935367163895960395296436739855763457398288907030294498709094512707068242730985823696931611440719105357445815026640698863070010160763649746163485015121482744500508939986420603072503426240161520737389791885121193585304529256465051976309403505783036524879560995982972291581147451434670667483349644013538662357951692279646516788926257246446699290009404776553446562164323480203512590500123133087632064592524514006148796728298476438533821724019779093058635900219886891251552020159631612263094339351623208335853659163346705211705371668727989425826452000794039795741338404144683152875629045354359381754993263606988552691794025229735970343901707068106093924506336437871540196506137576037233373631101929014865543839700192866228742783485465410690524292591388749560789775174599896888057536508351916121665745494173852980037936496838827587395188652708199766002657498535465500917084895657042006685352297254728882819856655121257198897615592922396125284990053057628241290596626546877635763011206132963570773786327957721448043439808215710160887233994785610911559907607102919158276136679879592157295612127734417236814399012479051690066195445332223713610359248302426745674609013299153952748305195189499732378985646883352753429698069953249915050021918998286212710151548624161602262933525523497134043775533365508008733518089716204606592658713455532879394993123647941099234911047925541949259871876390162771701372647545266083640386051252080327863215899006698840929123144788185707185548396313677108733734283591514411259944264864686753977864156659843656635310229817988477095976236032071221118308167315088594557602125187664535752450914337130872686085160644692840315408691495085273662617840218107570721331732375648557402371979845100506369072205104880431658460023909663405520639569128157485481566486898701576412806372351258467580462971633143302356902210329392305646379354266023762981546726476308572007198107950055688402774518474396318920131133300127588816158736208425399178463135382004892976614136914798608498764105668595137982249370847018283446594346577830658583451320427917270482575011583710216410442027221509553218413532082150140108501223806374698869972614015403750086721497991859559113915387309914597439755149016008424962575102276355512307226398110975230639304894240898293620993361489587829195445252379488345271801770270867189729953163118980539519752262833101992666721989977724629187562169782088010508969838151579043512204043391682704818049631604098090878799104422909056667029556274306629734589599426935731851999601806756329113521804982454795317683049534024215465958767487509353843923380958627447794494560697902726677737329871587119285073907617794491261789302028544084584984960912333707848411623201657280928013807282383565633310858073888790536666988426905839914306679808190901332407162679695115562826913362233812464724366465182151654550536764861529244305923665511349063141499646874505175754403817762177037140005517917360823829814121434949531871191572483212781358067143142684205736459949185595673664333020556240281862518242580938107431770787725160638573478876781306526790786869133217167381736527730202517403234471134686832363613387418765331649161790806710316537826246349001330359880700099398096379468762750805186238562118599160268868271326253524275673530088561475936922847019033998237980313311988133241705290964038978671994605412310116584615586542873510824731476843137507911683477280373828180855489858247794014328479471266629075450760585428262074813109619679537280473117552714099129884987327980275713834231500339310714620263822307961054148613039225293786891705649635338831487828749033722194493106367817253095171023433476042142760009742905183648698723727072106598070639517321609106679993628701192566338688987294330937778137433374837026534209474292436935113604007834051050383113148625567910952693714356362005328993009162600171093171660837018767721494311143470868889730277253125070062504740848549665342217817752427197383884405852835963119935540931128661706126692936668769907386845858500561757497890181046825968187154129725272856594253535890124653782854650139875895836439188582886087455866258313837591759946268354911930673464881079747286155101767134776491004325010697097602756108331333516230804206109835348782158404114932041169841830798813359100364611953678575872318175663773522502910139272506669944681234314991155636303667662479305936484229010863607636787898625429019435715331317896297408065562249569191337566494258172550356956059936470438974977485388949973750821234718825725417705962913610666333065575701354846728319555528873918636343707214156462062412131827061346677740130516144698018425461093374696596813849705772085822233312513630472273828718499354391179604293020712111730036999318976271844908317450535324318088334563169334035706412091350150205066590813710647036772755628493504440806693200144978638570041852799785605022212224221731748110415883483040103984114425942494772409465792796068725367143047245658147322684111286144298877910584270154398101590966640016774616945800685590073135758546770651904759479465457037061017638266231336039764093750726695801775137669122556483983664820153730640561216752380774386470276361337876052241740978783998112733268779439048864847974863216349549989158644268775518967953225958791722040272628806953428857443505346648734082443333109424539229058365153964369986919462586326903659074523479699125022758648902117435755044287453013845221895001217085964263963258945211702305101220096392506105820428074259056102800342303970059670274106574036641953476610891842843351990542107015385507854745528339943953058752025370408469414603288938843257683840744218745226008806223460482067521854226678478715900460504319154488784864951053183989158052597711694374822719545748378348786955217519380813438366258744871573536136117426299358469587110152309727201342932965513656633929807571743558940311343095908472717596056237865453819636753224999386666926565078165785683875632785606166404872479293791897782230003319313825937137450344457548279405824759662908615918448128251320540691700669129491977535842150752111307467410793040871379031448370705757989190731335156637171738043933258363856756361219265872657766597294248993527404584017090135928809195881127526022376125464485272262481036538743728893481463276505308896009936115517104066916640878398951091896781630357980237477058499423355786151465303815629797578133419765451027482053068717974706520569218335064048875715734145791292253558111046834997084204642951796431522800047159748603166791277876206131997710489352683083643353281204127584221049546235749231320104067684720395180085828209913517515921092802720849878159138490030399371214290129072925393813634201592225583711839091464662136900720653626907782806712785453623227293499029654784458291083881878612171215337827767140745719714008059444850559158088491119304630064651800561750811901034992987456236104860544595275918311776406661435751876082927903197391891550352736207818662662519269091906085312987982378984500551879134485231406908753501992615971355158090094991776902624892799733267302807803820007876233247381519471725809082268022067343029315517597097602714390473835438341043211448045090004263164199488759097920887911232256571168289179462197559121958953662097119063158198404294044006708270128470812304839168739814611543272518788906280718792480722443665308399260117113020098213762707567861306854864719209222543511834367853862931647526168886433043862922599389857641582947134947725059411378792505007230121973209695190989853926167703283428232003840950917629088180437649392978786200590398865424444756629659426325208276057748035671238884098422933219411321808561340920178766721960974460709916877476359111255054958086738844755725186619239550349482189487759074645366513715618389957662146908330540273702841187974342669461280846378948591010203681473309660871110702114627524323174839321070724926273713273312184657584817568039179255522353202363012816916909036403436460281233892580306784040326442872433383679995709467288299770456599110943018811225931975331979298832833782486373219006326119276029875742111150037299986186665933222922989323390436900355142616129482711082190006855656235174529047521364258158363894818458624947521851151039024609422647797283810652333239841174217960275157857568402384970195883081205488564773214085495923433278079820102745722189019725881129050519713724123205287406705801514944016185691757785348999819247813852592107052300111643040909658059873510502606968750196987703667619692034076319643625329363341244860425439444421325624481202393208135128203010436125244932957826494416221704351508716940477804790891243875397428991325352455377157393308266814284650728441791234758970324353210673142925430472069339735771863401947583599344656807295813862793788739865280253437705788403285199868903412201678232979249463064230354985877373825539508281758984473974898870093558975103915199874795352530140254824884640805105295962254312510127776187993659766775437523997942016904833680604016453955907915992284953040898170411475077881838259756190240726628588390815046688338077910779048612670604228965916612712793045177849134293602207368148524958542879351270747533866859490259854758367314145016956749696571525586647176932663177224057211621853567863541053775864569868824862528239660399842801764263359391736736582908399494699915013201846411832440201131343963819478743348101875122016411935259489300289633893700336737243775863189685270309669292183987913344598904088153024084594473958209196041565214189406681369929956601045234408437470637657667631381275349838616239984189832462962938551432199159898666995810052418323210623793921498947937455223517205438789355606634177677759699048541136446522051125993112769117770211760911001714668874325434839003528448361678844896424521615462021294270485838506214474521309511509319347245269519312134757660787085943880444485912875176329190268327661008765692899260060232273836281124500852283260177046674958498980253036239858312951036602947593514297701998880918538797165049595610230737353532648711968534419549341195271753920633182497816318124755297202466521151998594615681129662902081019122908407971235390007955750950656356142978777062041610829855768106855027533230316967787027656169207074670829125009102068035948253314919586396158460885961932681478662226946689412894229656713485888118407749863137641150680363243956525318972986377291532848327792931623208974107234202611816582306148043869919004772228655785392645296009503391240978979367044801410629204303337472043418412480958804147015570417361983482903516239255205608645134611985709041071536834040648341416563419174459563784521237055797935377183699728814080269154458320460397866170556315899076825695505537308419685952848930578938263657757375060380152440681298449219663355441990359959556989127906865649562177031285518981306491410148130058740078338539134169163036503080659070800118629317781587628282055194868745991930525382274093189529294346911064802967443325310335396874605538653249294765007884873900682023262678985437632379907256398629683262839814948282340155722861753036212385163174622173040641148804467353779092354629934286669255207581818774341239172861212689845437827990341534927832602672339839802299417252667970888175384337347625744424581432329592746063440767425943170588476436671506977655131121589470079155307838954897455568008701350331647592004573980490515452684181985159297871603873504285581323972999736753308364907619870961398133034110762839815140420504577860542552169457183860184313747420212663335131720243620898819809851400062675666001043053380547646044940023642257534793596966150090404308892163294845896149211772500304389745743034145350884848104506716898206002257367186449117576576074125005115205290099329281143226320120943258313320641726257755428521269141490305482930944666458721628375226270850612252408215658617733604068549628573063207221181078336370838882476547333468662393617016547409729378045078013626611508585776576595143105278040079328359030347489599245563858236184560297366689849726956727027601528116020224950285278667165588400924039319575654865128770250481207106418858852084811689479596685964805492088510040817048618092047781963245737313414309713356342730378649196872966297717517163098789056973345695009640706631620589399601706029770418953221073711609847352254225731827563411472343717889876340929555426852026472739475946043913665815936063343202680884967741862747238338385530937722993641962310742178094808799872320783820896649893099697941769384090737141029667960353960635063890728963415396435020395144945234078492615836564005276372497898762492065846220632147621872540834368858238625334134259994701931285324526599306590354527874348727444829033577241908345801827578721986279407270326820644211822989574516132897774582328791765891268305952905452862033418761385807067027889259217125378963203292690538747626778410275310530110185741658870312671277031942928887104480928172277332920088231066574589706554684947659181747310425086136623482262253363163714707750684068153744723223607639073336531666310564045823783293729941134181888531989173666296344004047679130461659585120673366279509243586965634643095945722808918924976479531791675539840703847750463451768687632744583497846855366925113305875477189406134349743328012919872797330041707551578441578954243615307488310037302984331413757235870458598797929063317571099019317149943621849700490067062094958166490038835663552297898503329328153585479676142200619185993513264159698555200369737847396389725095758980633297151406457412059898877152916095255877163230455946003805868861820452801040631191371486236761693046629223153599390578388197836592961707835989560059461419832851669654944727732655042240299761055459692109933075111117632766625573035066672171524957145763876136368473849372291092559378767542957583597956350444454275798841079057562100115686930217727965506623917111404692957646135560363136080610693277360844264206266692222600993436881853106503876291390608711536555167002949497364541213290419567399860055436863136412924659613579542111459607200477654288605906784576921586738325122093358691038307867172918605343149284773229740578467657110816453405172241000909391329615668875752506706939469437969766623990921473085970555212344614311661383910551701457067676028666760719750804843684743765818027238570753219263363376812571524999902115457559502267509286255120818433619266862021708560324455914643741713643029909824458510762886591274889817254436803488764092088639683903839438931871915109268613916346932447591080050865914009943144167714482516335879445989603494297914177088282960520676334908320681343140708927802811173179027312510469851908216737540930077882408400441027109157183365482674309597054874686637118174143732476393822481544764919517980115402163749955654037129772968705735552942952980401296358316087458229657534452848016737669673989588730236528464548129490914163333739712311837449739511040235960953356509814471574031566998300757612504072452083310408788382854882073030108720796561375492370214316647195172654800653452423627513444743260114960742638711291469647230706777430218359718887452040644148087217987965715804900668768283736311726618815706947074569404911205706107603379183139826883111930263568937663744551586175748906380993026349098811705275749798720496353394066528433015933690295294176743984087827432346297061580936891024415979802824722640378639458980441605796441107315916576725095588862358060464756480541878987617258398974382570386408768414426200216034323747466102090095442831930711240740694166890645399433069218363287929094406920019990039806213553128316104226738878437876075235708644726120773380346076609952810565205316815827104414396967773133431921035073424496404414362524464371629939170870173816610849377660232583813403790829160439167773014315118496829584628273079177636862309859550890787533914973402953740830428583183028982584072693549344854678150005548520360365681726241110839958937459210392674892116868907824684358442046147351315469623015523849581514663208917116271226529330952517587233978861075023346598002933225315150591434358023420862869720492357603838119811218587268308481992485460878550475279291058350202908314871325842438508727382337813252708319658539029719076780934784141629704163108501821601825502299283635043327553915738792082535797468621403417035169149081196105400378063577416252882681583619448076821166883467768490182699685888507474751955757364768340136126125999701173887259203488935829290135098787105409318973055691524390742580259028573150024257464368791281748799046300052996877038590937986700087987871545626728486594233634789727281640838694617887191577607138562944019406882786197067150163698463057489521310889563638267765106726705599242082128796664520750539230837631623376130013533396177912555804581476217377835145410064798982408237545100909752764352308995318485923685186035791659237644065128560033622681585688183536463278522394696714856795452294263049752934700148448419608480095774659963713216147962340512701894323684618741995192521870769529793944698594329133928570707955761189709846123345154819431188855441532662522747777928230225373253938017317976232441010463343421204773251487751462422541790424070969793639862716654665672621807289191560251763149071386745275458632213213858635137960862910716880766334258210563077802028486026094149150834397474080160676715678914954846811669984071270892561056867683454757547453254035041380848902423162860531346606085201235192284995079781474600940167210319518228254299191790905382001570312561373958826030692366999730466001239429381238559512444375981494445044832626686176901130825180704878875003230718851029351111164794269461134565186764923967207274865203772887723170132473157695983600973103096544886973492828503589020774459684168284541818888006945585834497133870500028930772384258566539699515060736274106688801583761955738875428825793112709963994703742095383068706548276618670040115775218604271163761808700576649145504986867987997684086914020549957210886369987333819414929745002622919355499970499377809840082267279345825652551246947449940306200734536541256557111020804816407376829346217957611778430583572878791579919692315059688509557013152125332276003663286097989238230004905570227462386645723636922973201104743915257814670001612388224377402558070488844509522451782776364499945251018295890250136218827082152046493195947124898260892284907814082834537773608765600231317218573593078167936122650644890545981855708953166800197683754082750124013757727487938701300684443795728135094377376612878392111278943874329960144431388397775146993221539619101829934613923895204640851066161823694838891626875783657084542177744642968672258263775168175178016338564161201400650194072954407258346640518726573515849656729110954554358300120047284004665059561944444263590720488284811005719814290138281892453177582875697742260241245864303810544582780113339655268060206939886976627637417803782818193358313519998950037989214980811914925260076693387862763636229548293049899802459018934693970559373361420616994218431829693643251182556414428991675627475640800872940131456695506101350801622025619092804779672305888987260015558663334207719242281463346826816782687895129063594385031092787954824540004966019115851672896009419484169522400227656709089265992100242851860463579882799255827348451567562127162892450105520102813626454093957303453441953552898805211217955472883367846356363874593895088030797175337869008814477695309379296337443695462339084011255289214826044251653909686904272420047184989371998708002124750471524595675224992302218676761045916338119786269023081664772879992234187562408353920976825732980911137847199707624076800144027683555674973454740939291105939986421657978829539744221864458289880306417507896037039708179202305302898389964038677284534300632008487892473462747187549914941657991590178901823584308791581452708323327204810571057068235249518756918807342473836150514269859090746429575245982905070332732549515565502238703585888416880402819524345352685983186544820573541931981934080547652913695090697401395273821782539244724279178086520709549325603573521698440332169794380060662524597572371815538954753404760521555812149249108314489262007549724798635141951942067249153937318223145341489982793266011982608579219369845769575188674789048661601931587299587460709053489306933950939499684432977732401448953026955780308395338046018472150622191475217047546762668340710764546269210016247694496707003542824794070549088378262172903530762128859288936768128268704622162372068790043297412919611673904541928097091082896710312950891416987310849376722193741800771973546826549017210278908419959531728486161448511308667031771217568130771248904364666830874173465463888641898737744694883997110365981170017450202135595965305158785776209128637215235324691385236864271657392628454582370074992981150265923770995949422956128900747548549964080316600246090940891096565847264538537299815271713678238731590763277043997667239381937131250482933670057685708231934375079665217291187600693559743120401021124365918006646147360404030936419826790342272789013976723074107609502612437116841365608928988065435911466000582686290315968740628774702038601178638892298882989207945547710317745373298591866620595213697008577466186345108020085525556698797125937623144762679537328823804692163585523366893145507949656805837109900434096651423830618638583547681610065263266515981630525630131906698911148517023079340559609973994241275973828756724516142150289788911709800582927402271693647936350123730812200643381071361206302744581906015842468655964799513305466678835424345745914250499974275958755360718846053260792183458358072455115816471049125918388824609294725897374321843263155509843453312311870488221743854864693468906616441375040429619246426194199032061940986321628456987366720797784817190364028509860983740244535646068518505720389658338271686664341312448768290056541131765691002410319639956505446586619293969946652654358781116790252807756699523520319895700958983979776436376492967673174277493813609203641060562427459940471522874593551540192428811515569985937160553839765203711657885502327979313247675894183991267105742203471969103822257740353317911538845485169308671870848326795552750061373231412588477194504056217691180465098042259609434641701354024481737678324656556951728094183162759795718166006320725037731864834478354219593615936016026425344178102297677780536794956163191042333661191310380125676613536539508292492677528156819641911180352474014820961409859372669943817968709830334109180764396644988359609738196222987361436685912732586062175422842176206997860766045062031746093389857684183212890231331593878968634772531023839238844209290968582597922345348992169825939972068037082799029121417726722166101895093345346772571436941621273321263262677619298000791955135603561426668827914731504978745951344458760414041243624302969305938417890837535876812852373784976370887973566640051219155654184886330481038875229620448937178003487995310150532696863495232726733397754530530677640145541630216117492234933287960954319539779758454700611430004421675995874610443544928876020117434063039364293576334469444117016563328048745299417587214333599120069775167136446951718175399361278286436804680490021277803155306114988878793511669934871580472262872944070042259274928892321270299057759844753655492676216362252918855062738383898917547933414342001789474671238475259649688803179091887218922793016517470985935042398242739784779285629608937769928317153445255121551458731737293558655930887331169666091770906867947386220395659330132223410609363085087752077780344272546267826455797696108227371651419093391291679388999750559671271927847696609110454797919922037633213951983192167076383079765891478517259659615337858040063718017551205709767404896373238096279561185611438459502470574588332715483037673868128935099001989316482095344641028426866476808566230173561323503843580831531026472074438880994675388165423347568387131563130098461508407806147191439527932232248346902765640733220597188824675906492185486883356350753312208949942821280649272947487675322411638058986133070271640449937315551953266368093878498001832734652106664730279925971096214548772237852452008517467036340437769525336372863901038413933627711813600854364875596735373136047093258015177222349506083690751294032987360167087404958590136193639735176198329399517080035720224245484182072195235166766567915170059732860816642945843282086581383893669091498449974758346168318328316913047797378785149742026488632987701797088053596739424913381781448378327351494520343288117595482567025359636611290688423798083698167071556738976642732479913092287827406043867792303525237973914239723981690954768104758933744582868971532154161149545165176314214813354237680450842871122804299736652923509132756752366916563225757119171984263628588105136559945413177890582009743954681825676139808787117166281594548671956598561998249848097953237468867298129639972664612438179523545998913812748200736889143725604958587787760760296238496083560656441129695577549905454719944652075819017409734524853903375733191003991017809223348611161098697196745332048893807062689068155836035755083261175516761041395643721349872378152923251196707846123133560854924729386956515474295200461305837053831254354772644605554125686951751728144329926019798901594932713554204352208643816210452757335048949688087091540342927393197513513942939166388993492941944090432446923435548544143601817547076202113909828758317262428173779920063712860301440176065410462261172495417573308923812621176981173565651469720689592979318059452496492285103532465361040812429704933093012043335124197262923556603159116544608865350263875194569505113359580955042770785044848165527772887049382048274358395605812523552833627788725298854431707952422930054186944196659555362870868100559254880549166167052325733582159816805473406465026147990046781354606237488769508485949881219761476931166062486365359680701152481684490261702009436000281695122545946625469994368725387173536666358898901613730416635888179398666778333768289712464319800641758013381650597389913852806071552905894259767156491494189253118162857807320561047005357885925136395644047433104474829798431757258382375328600965703550855961314934890210755008296145403429380847007192287578072180707521337129924201233438103433694465037796692671001042815026289280839075413419435533684137796114661217382462421929619649524661558693140666339433224694797768412854496354025482872977213610114828791654662645262599369998210424709088306091691011102183423413692537836123913866431175918172463207899180619665198672828063974611469854724924784585149966553042021142506651129817074070616684245699715372576390059718985473265453798566866434613036803083669975489848450917570384159588399661717303645081708740876368538033920158691115560539734613220366445239785376352267616452054766317688148412926061545159373540799146117780924925577337679333606871701307000280903907953169954056702433839555868320009297633336097499311468072051116718076279340070953536730381839571461042332187767878899654833059224137791677426300837717842217610849036932244614743134135366803571325947416546840381206782050615528351626676051078544195663199747661663625653273507488913966383284565953440534709345191070926049553668878152427470525399770865378153054903431896442185890131625936350407096152341161289936394148048385375398988105024553557227489759619470253343919342872898165508541644771417945454056231304622917537276825610256279802822815266634903597992708663215866944771896660901151519262120235678995469371162209241755138228046750893914358893175807058153201763220802046945972043807284995010868650962032703778848707608060784817089534555980302662739712855058593760029095819198004631849332440771557384100352112522043699168310223671432131572875127850833930799251817377552640468858060621222307292858483206386480178468845196651791128955726378692074835658531313021284087661715529353134683189648042291451426827977839866078706709728824737115044491981543128373296537010956149186499061457845195250343112402326719151802082667387889499497193756252697368524908301079159298913657385561493302290023456448203420790677173965384980270034167162609634023565638225072436478178900991794414540680865505479717407429472981428143647077382605297825002159048513270835746899637878417068576268080321624926489115947522986123824521655743646278661871196519123165132396347272855694735775128759395706693892770776800070881509644231498213664621618969022775877617536050433603085124454766735953321735500575985538855763425438696668990969645931718146518087787802162754810001272692170447730044394722345213540987771583958702092662450549539166916639753528823571416948586761022090979988289239677258990599365512480175772129962766973960386632511483658027895401415891289817453954602071298777056423595584884384998261694730767040625768171718858599661522737823780713893969900204844140811365996745319712697658293836092154751327752957421485517953459263934612782031352622998358635621840189000735338375142228372638262933887485050757063718806767149769636196665177141681129167207785601662610445859262585849489272436716090431493669750842882728802991905198635353010581134069056192809445429307704537139983298798160978418618478554050877974904964211749171484051470142716967793237503872566680650636865326929302462833639399360406129859555796794975427900322785465019737636319286242095421511290622898087331023965725809858743119415236483808698731749234032527779971838503637053896255655828643820705512238836443691842615440564412169646780868540773318264022309049304414727274507720691972728091237924200405779055177544836678333854476191913626751757331580219218612418681240888017352833703066638213652231324392365147697003231678179149413259332437301384953404375398310952483645974270487274065636501793860535497396648189639826801799031702616904132327749837021917900658580096413182893438728450864290679672581413484951041538821003530714435078091724634861611694106463768268613630836405473900592242148742970126054850803933371050273739613056709874568301323914293860057282807515659604891832787033256096648263888813597622064654207388489490653588187701333865600597997654051693941486647109381955353919076676715182190849900706658617787988972466585769061937719521313394277918935896706101843580499516134343757403835035670289934752554372599620921524972760475284959447633696008738990054796853828778324202560516294554655742736796701385945883929469684666712430698092919315630814733995039650189000513116887220115196752816300659951104157732570236872444279755466357278391485717710884372034310777046201867460575209864638066353687178481213683679732068213478211565700683617934801230028546755997408080003620184414003481962680124916340384598741260402520227672226883619900961713537700317642396383264917336556307244158518151717355925857754897731757495188208645838572928944363914116207243282446551667430045756999338589127187385215969348195314505201130918261362291594029960160077443210038508652739408962130149198962713497830316818249062069267091788996213820335778003825228772414092474268133665193951489348805137789190783148903620749342260418684801333981168887359344721900938109822034980111226531182999751562699107970102139144170857999619969653035202462360028214356292770146617486701744438634117260986049495285814428852046490842628793741102877010373947988874275958969799403300482238916031182891989132750483247241696307521715763394003975823297139902242605448343347239844578066505951894354144901207179360740462776476750591469109523248096362434953942679472465332905902971485623596216615056498341869982804032455273409948316020086639309671536489566119885818621556108215269066548991975667457275078983216927729738761402434989803146233576168528442513465661452565386296028342622581591019101006184028099862067333228246539438260268880546821842786837402864427216786963837495759392974990814805566313086221214150093359248923093225505628027633727834546282748138737962468405057029319335968091219103992867016795090795566952447941460562703339011556257628998504213011469457021834345497536623322306574522780385151124432906777688628930111429657209792252945512829063837992007221258779699893632021273840539807750004566044900447504905617467452840590894175924742764520308014228517493296288181124471526854667120892643706513309187526320976601413989203941351039077856769150075853964767772206884217091872066865910679480795860361645485979638156063515169986003186113635956015291706205543541395104656061767606424336556996109197519251531638807649666840144285305770923706517418207758264919778878105952907104370059701691060734447994843098924370532388477911832238677265111851516023814650995197850256296341474370786888680378099183468278804608598004075257803013172430849792131497135594605191793226049968595741545148474386109483950772054190432928145360337496303304251593670930360520140226950768529730505875420002717949914208002384674310636754440775752343916751183001358496099426094892955253824830525547256987325328697853921449665253788292021804205828103370388013703570376471481083825264541722685152138494699977463130564475187724787068089249513624343773900620637372815325324508927014578504928896846293662709293333206631380462640738639319980923452809647643784441660995720972316075576744235744887196256480387119660673610459938330578870181113295410522554749539129440120469620672614453556729634841448166381602086969614228609945664383178426134610231639734963010383432939612727168195272417622437522218795816688406024312740913953465860213417802466597041782915657646644628543338076149038493719150647068948647282958980575590673700076591257363843479136175855465466650703809164538160999452026460321229550095289356918390240215747391034749530636910373777934392224003375428762904666891685197017272218113537530557752846846666179013680054821078971256767357691909265569163108705061475120247186637548229316747776534974649570641617228008328921594265112744657955446158593772159826037528548170021546208391058840923344285734161554207645309268538655834669772261419291221163144431006754566504900398583313237540870175749372257151614813114879627322089560413717413625761574979601210059317271057259279471364397862061128292680198633414110498749183216581957170473762973308306206328875252635921680046549275316390506887505154042454169957681129064637885828480293952570562830776278231576837169611294046021731500622658337208505143313220293564979520767481143274876216678754325164696805089144933347616864360740835923211680028780406843921834734181995828065044062493244728804150543882711036420329200366371445415341461645775270783594948112938584687915049581482042955977926768191693344911290450865843899089432196660445141061530813360137406285104103226620790399724135871902499999384710558434288583605433762649006766223679870976823299810302817682661787562444235652748104688894033487102468795455762842252903731083587851513678173626991909960724536490660273389244776925179554336043973848911445513676922329387722284945036427495195144591829348174230666464705006005376277979668925162758900268395090255089550458084321626476535866685128134281643650447720327889390459148602418264543816832954268899156578490944291527947103671376927165304245000307624586554781271813576558974039973565810585034613049663679576825080828345649709268999870790965282613731761268328776094898970389996937796282573738958809541549538507132029466297534021440831805772228411250253232842966813031886273656996846709833088718101471559901492126987609793419558688745454720196769406043860093106255130208446372027349150710675990514938325128849108152385004042098941862526887391612356943991973473642325673553977423251604139271744684630354238625054524694933130861416946541725186358523922975295981195114553683791219928748567247751868750695026884161033423938776233001160924604207533142941227765205136813820958628080402828716436450475922682172492796740638715057122637297824350120656796173998284389925727941550446302049123614181342254774537324421860522828897758692008965127209607209012515894635917858542509320825261271232996573841911655336426499966635757444226203352188894507623866895540623506429300268752472877026335698194674961374359771522716851354084919204088540059354154106982845267186132080365737159731327960970035658018816273085474203381732321216161796905206178049087118752369825893292809923304884491798684781265719822665442864197010191023140964719850211424428183419246564171647024549763307994163903903039103239245888664984285641709814981200850866887674870904634762500208835963055668233146299577035299478024660431172236214749542759764096992685438709603535582816098932927877505019710905828935005567609548097814744348917690048847005913350316947743181198884644575997445228394517031296962002062727026124643744132203380429180692934774566579515446106615822715755217160563680752593065543434790428686165692937567988690744426029457204522138213631742893528090942144197655596909311961261610890239564242820845766429805619578838926283273553690383149997673185880100194195441553517046665257758651908676276221651742215025886988354175129289479359964025420057251650305095120459220518769330012850811851022388998360701300159632405401650015080102422109794130379050055302760034325227822185715734396155618693445570181406851722053813382767754924503584748540687788818306710759325634162338932490827733516664524418963704242372109559799909865016512395736884384487128750325187944313478430900974293471868990407950326256220929633953907121390147852341830563187136460710457630468365237581821584260859935112358762549848495534241622374654343683654507925295133727992570697883417062828233684715017407775153388079195408046278982281716912532345278541441842711005403937612085516185245498198555026013021967635591644111402531948547124009373667067788235869099835989447409169330919836754398606817886198375423587396523012730528950005343182021338043945699745674291668363433855558969251242479022525715619571873249506050189608472809361529650760523174572109709600134114724916083910633349715121005150076543624196534393423924191842923298995612494876340847642046285353442448991335619635755543819570350288097295310897834719547549429118377732912371655579682401210117635217262496681597772193368747833831128513775897022654869160939324005119900695611015043654380232008116981916268247185968169251916566434804019333014092285966185400881467653374620740473461154633602332572960769829826055824338239360113946979335863315618302024664950740021045289223238031488408018494083443179889727087290480431528616044677016301603930801583677392328428717536329556919124687920058019154272571893568910282203144340179873487542882364870063820775499376940752160566739552414290392386569593651926337852829473594659618098651723930649813198380401365496105362269079397809510028258263994655155483294857119084563898916397623724310461231181842191510792087975424214129393510104810210454020645585215091817887210137562770332062578466385026765809938443194314610436188991365625343500516864772836472712983237532790198229616571584360099030073106638656558586370787232591903550971484059983351756761786423618694185231820286314407982388353614968428670241985456799133810128069245022760536453720841057511333868492314038480944767837745345629890732038061329713639637109531980092984472704093190340990531287257901762827316183440603465028040507793384403258877303685307998177131012186024299867981787870879248534637486395262921425476834964199920983071741407600117106557259549093465225917080589064754233003216886608737996267000420342902825513782028536456664721796894169173171990656291209654890503393759443965259433846786372794433507453249160107047104684368059511936042821323640516512311282281027168856613492199291315868522396068196818490854736059892005191627660291361791676921746985146275564754821396306607907516654022342978111537254163995584139815208408448853605122856095257797303474995917492801820653771057143940484872250231866653102204167378814446259335504317788634127058649841711201758596555101774169283439005947247274510355512944693124757674290730583508358189436180866276424533766104360085259565600259833153638400853040397995272348538632018916287511616729175294607017236449132143671641902132469283523058050113759336145762441408072458204145020281083480325637942591286812083934204914223819078329039806043020699376421568037138396697479459833211780708215537022356907452621066947432868339958447141838508089674249497581637831529938015005403057702609172077340302925992283585905855000321883359089275469888211336043387068830668396097483336934415436931959011681290413019883049420478541556537677374917550798833394392210264630508362763787132050981615214806803673434814924210106997320182833577036743187611723256659565843228233084424392663475179088217610242093978187653700715881415726678551633450376789693389170202916059625645404749260186118015429265388945377897442145646069366243198882402927251459105188561715846355318358832840766496530489004488184579384645533397401772063585704867859806614626853287859507598468956400859494004022154634015400894425224908200995502249242869335496377636658727613777186400175242957888815616997599641747497357358322502859978613065877848769910425479380232767533118063390359622084470507937638991479667817773169812289888612632163329614970206352551087285547400493495713207519889156249879126802554231404971595443133681865467559702593872193508827856148244042923192685263565252523092423510432673275496234551224793537220829949844179868629171879013399130247845205875044409442764054640888422847511394840015923382870831015280052556684871129835029106943916102298491234768279895695957180211892680775005089536812506933034645493941478568781789040526272654174935181125572365413603821553244045391563402263310391346820706335906546327117972422254607727777108376988186940761947175042800817913086064683277842826319613363931889210045716613694164732989774752273877264856844062187281574550667555245603834159953092083144666821995229227001002569545157728713579960204917335602169968209839877932949433831780176332435111839423401996257943708321943065743487963721592511861876763114630629336611883640385339057542629255309143732746974263983216169863999350376432304680580713023931675167054041446328690801412149710470704359609306392395821566126738451902697717053499964567251495561384935899832149254626807653159173162053866149735224273667357766235031985472433469539005641054334171076259688441653500380341921472554107158163588137222978113230511955627072647619097654960638128541423775393772087858140741223649467413528830950620887325927037883354770016576106683176086319294347174590198516074809860302298133594618210445455694234297502020141469908986287931016919389644263751434922332700289779517951822868697168817394783571569449676309026818442563655020075978750938207476256069694735240900171687797580026114536913773751144480971588026877690211140058179792336182960219450352162357952052430476827387941917548550209904910695428846119464187817432762836627778884785324110645627055741849591636681298765715037469372181666052738272509929167478486477695673738507763923104781967170291787147614501375705471597305985429220747832448386991816370052408524507871590256359969730004196475581030817454307312236694719013423022927240509632806361110374850467494553640826640420958277231143551645555989919392494892803275311229198451335527295252918801806319738571300644416068304645998314956813224900998512448829857897126764415946172636111610761500576421929414206063081869614881367417907084329800766887217601847479886645461137241680543048265235018310377063726845815548923803699345788424020773199717724488424834522406021223309530323599229283487558047372187833866275847857364916604031079001556104537309550486645829132923813733663041175451151423032678000327917740596355028775585088486295566293883798856632702138335602244033240204282894660408309064178136559231821806554057881264089725031843875843564486215847477785757076852284382644029962055763477393396968163830547555983160416646874843428116007293852058300999439183391338480447120141814244466952504865657812386017170665389846875467426163387011188270635140134511353885634392211876446603728020398841349999507273458504419390810022460272954408003582080850814855666248558966605147139302446582925227686994988380355128050194607009872215779643678124678533739876085080868773042042691293372998585795246554568943797926197165243584909132231140469012887938499109601793372713385922315854831716718216351551356709115260347092603382368993383235084108933992418358824984000461654201459737138155389123187024485748954810809830961045758643106381100861808228436463843476648940958352471694161472968842012018305139456215872391340070735525926857147189098379068328116752134928292483232537852674354176346072081089041609249573806241801283049835294250406045032668980495775612494529853050579367156848867982899308438461380205925894310866708731431182269914023750528477401117640671000631391897186187625792680834846578280396783131338576849465461022877534034794621865105382539089156631804713205947140730880674928801250182878527730092399480809764904478449269400433370534359368229649208794748297259296773324329071956470578854647177931901523844758868318918306123822909629912218515731408676710138477062547186497528827880599382781104003681446252026434844330501505752494173220067304593702077179993022075386951050446331968290675697877752007291124083814596227691614273951775732839505196281859363222498659802816794628001586513752434117890951515758036784614857440724231254648593713551693437355593507736686128987124285476479421658126400614452102135968538712501778921126526267657441192124936992300573623414454031889341745831079388645477657817630097523834467782283510647230996664192842290687952077520768441805032684504464621368226417397994476255805932566149566731057843876510671593460462037426317758212984207155953113816777036062183867833830232136175235768665631375416755071204516014227146362029605589749111606230220643698858804166418065110513536941182132346964988221691601455288119525621594583573048123713668143079808214363565251275591515508688447314493177812087112911187778676863977318310025303849724553975090134894179013613918518768161200007794113050472835511789727638302198310905546442661817780484508788487137959477645832375627877993227752972486311235667360197762527104013253311181348783957313081555671218838366823222712663771859335753246445355118652799168198928035402908089698853191541625298299788234893638237380818412636951027151061581433603246100945366679602174370386493792490863103018321807327058819344315078367577456196110296994427992509889484987580023036794797535527945447311369380999209847394641302043218386344411569283762867679197222262320767104994039113369210314967704908566937862926818657436545429940534451681980364460417588098866364212658224512903063447332694671581358570266152671724708207693495990613204850319719167694783927628861221650172987751108433122983585214488546132489328273446161173663074879697251838523867696478922563888545380745591709160398911090823982155848232205496489507420800560931922348117748200373232765937344334427301700346809240316880406271494477037415244277636516018275352127742879514334675716567390152548015739380629916173107443275826341923295347111789936165886362389905245460215944763148324567908379795185027118214732735787138307785853701380598164554470842843866410382976987336314038548991273334360409554812314922045076765177042147893311713629051081110903624117945765021488623269117294145290445861345195287495728308283658409588604094525889762095093099963976200477956294704127007063764199563318391295569204962867478528152328070492722283650219107215032791394178749325783101460361960169494599120881100984284709545038998185093592422030412056018532484517724143418327014980727242607863330774753433998705148311087803299312585798267826048443082559931232359810995764880959188731787692029079129909078044430039118902478361018501278988964396713941595959917512485209027784861388556248359562466147223982765479537312115186769722831869690189906695497450011870173328664132084744277257393878134363997654689899441824065968235785723561682757106430742576542279859607598951708437717632999937154173630333769338256062333252673334237449312558505761802926697116522868592739458602045623319293883056968173726707501442586774213247707720968512772114929558536239172428710980618267500960435322932383168513295059347774339107416177380435335554999659166983999101369663601774213999324596721224419784950682071553961994533779601733314206419611594629244528899723810535337335573792683559907449389783859019702593731172456756226514616501566622571611675498910023949714740116187087465008332023671583737219415251014102194527244746819065123603039255706472886622392633235657228533673774299164675043616717406933348872014851531805823963527727005510427303976467151561985389738876553895686479545646438728986821142364852720466373725227604207983107070587793671273523615713649731779293247466625813707816202826708099003240546238042246461642578256354776763648626384596119572669440908593422865393312814052359325569848930605009965975580728300072747815932408890552251849260175996840627625217512751696253698005906962743646671054923069493131797757752169050934312801966809653888880924572928189852899571791486440699862698110666991636972676068816100526521838760756414448911423757195921922788360753057100805140594143279680072359984723209273550355939357609902000932287419819153194680193162507548776413389561846693631213358194466787611158408204433955177650676481102618717978594720736920512132513483797578381382291937122320197857797966186693942807729884646256296653778919354493123315418322156904559678667652815987320781855247266594911186196865363018934302934276144955845226766241682282333056616189058626331685844412587888169937549875591512574865456604540352198930093770392545546146824939865677123450146015883802847348679886641874512012966993070535541849637647402047934012791255201385432750096242685587096433718121047187180637006268258734807544442228377478741310385668293217240637596294607156446111699093662164291394434012721944114615981060746774333522115411297047785495392656951255465897722303825774277752939954633788696469392782247606527912899703449636138455937834264052971483484266973981241847359948213073498341471523878054417623946325163275873725510778265522026879411248057394565601878024169135105454242022127374592577791226371161953608605867546849904007407151548447978060793754294672129797276481642086940743498899720632696980667277884208771820451793117417372745078296768728332403689200984876477637498165530433181237699915740178182889777793770419902830743932491592780245336301603885452799390275784041982552505759626662464106735708029797474042708002940362657926091441802247864556498081290381942245720274717574666627690255819841082715762771559308363996110689794403759798885524161502707970356048067243442298075396034687546516110616490851813930816080548965068936267682439502617007310514992358954360431619888509430195982279908378423197073656950249183015044955250533757576874657577614807759071200992036473536626585859945572389249032776313092445007133094780963280040923722235720380051008536430853604892996629513680936450920272685020991617049181192615373333658714773158767952049998197720792813974530647376382312578266569736358597063392977833766968498896413694207816525940787653977039399990615723813973649113593420996405113729359977434626067755585556617480027079040230411754355206606016299239084027029046507849692918017441956390577917538986935985219509303454114259727146053740426008979840572298579551742227880426074857334234380023458919766070356599359371178879291996160795642596561951764132049304384902437392572713777182228777701631332113620617399047776541582306630688229808572778763471273862384273993707076074485037770394097955170698051438410543010752978515657955785112153710692328783171795021991169855389796795399977181473704396572218404219715404205399342052591562044667748130087671458900207364303451142326535477631585710777141283908174742280367049092864992767389106305529726870600974948997100546188606760373453126515969182385867222989239439887011037149872563234472733327129259961547263786364829318698055048936917532817626719764981553265951102574387852295769953441911600555394303208500604170149240984977260406981818273317269523329608225996160982861436554911191828708633275510280434881597076125435633826658522580935655514848064849172647662093307499000424661811579545376694145214341397003174434943277458801140695440751238812980707136193144400758629009460708193025125565958429422225879602335097651846119527702046591871157561999301214830452620104661154525495454712323765716829189867320673737540826649908747786493338307515467564838220208182559089620088629572926210010849463889223876187331109231371029463379531601582269936431916249344860864243562888829767390541007380912212648933856459408588892593986961710574708211940006943265167122219057321949223274078258770652652235665817508499709085564169163494066693014166105555031394988078914187356071943515700641534195492314562089371525922021573168287455368160728124733849798206556045211060312051764105875247081480742450973226045508245275665297397936599214507400449941622428988973767154415815781734157608962148408014163121114302751560807550980626848990508427057014487455708172300984940579449164251619548558021250330919756209746546962190055830201301905248819214808018185832821100038701725926425389177536456258380055372478307247508277806692579140410478290659562448585601697423937214214059700336741999145275709043947126987672939383129116079755587463939111919552491822324756205276216742717580794442971338121923333790540706469114622551142978166422304868122781845056617037060223799207306062160888163991821566532833062614929329040930506687308472292864238905893608992877880318009571401025695884608201104123141932171157482050759336900730429545701642320551113447986880103304240071604770222651379987547914002881169092425701851350460956261591517942589432613765859207803733064337401551794583191305243171877550632150814030361410290485798636167293846115372327192906470317916348547356586015712090424251791616575662247711495754614984109196046758743421331555540052483639487879119093144131545188809790434688675403343042866604918051715115782528990049868588004282596017663257108365209234793067819689332229539092302620494112469015781040359439924825768751256129035143657974308945055322147037158127821504743735110451427243040706743865211575865687690641007601931876303174190093737400135017743714978864080041008328564969217885913203083696049636994735305689260208162516833860788020537092290017365473954574500149700210557814947835163547273993061206874668976312309201396314743628666016932199770936109154416127070834052531022312403328629649644726580844756289486954340706138818503677419193828064369035234749715153397884859680135682842434130356825004412175454715460771191313510567307369182076385356695645722131831584647667903636148789276430621274595085443976178737782692483691262305234628086883646336586643352757246938717348384785844684619461591710562622580371404289793418959591673419241810555004298716621884893333009293704186613429951313208214704434933673401302637087603040119101686727933399972637301854934687977030967144828525451699667751780675104556396483410047271627656212319254069296837346287265022867818370076329465056660117792356592924080259289033917078400226918524194342745972092084923051440513702101900277714443496236780624033463657006461860165165735488492329118058625344528276831584861177478293898596401156629358763824234020714852470062690450456940207305883917189010291728379512356959604726473001469199370478088436936450016853847627414329851456719449439041972813801760194288992740928556180295915731732398841205167790535236981887656994576656927559781095506609493499202826838533052653703764977242716251033867222422697944795938307320882723298504292394598064574674741063945071973556013617408508578516874825765309438008735130384708253663550556555601869065774878709651765217347766074840362626411260735335742085357378082149821628619963689486390291133398038445404375754446895299723363858069685583915503314338544703092729192867659308319822200671400272818473781936570870090599863896660864805744406836081970397099121026215397726633759639086106065442350066071272755550455597797972208970995968537935461293656614938158870219562228015476575143627412751308239576762046539602895912200042534223419144381233442106674448094411043273053843444607501374378372834825407986690973858914488304354666458967453512485780046245290411722457764445821049254560756805493865859397815039720680854835247831874290846526788116838495143943934218382780923414328835974559534967553957932231747696696021261913577605836892621737655165501246014444723112889509238989485096465623682496894010350763242260573524824303869671863708225801615405114148188091311192583660563150221797992438180284158358141565892694749288442218611246824021128271375063018246115010099007192477269135391196913239829275146479845416986973882653212300308937357857757660877849099077141670412357257743300359377308811582167483339714585977124424269904661862128062575439631227083420886311031495822091144100144413059321096961437415983121780359922071828013577554092420085921897777169111180667339293007917641919296899353299764910000484015176967211082235654799710965025776124822556115131785531818975362014317251120329675151666059503515631990769166576223667670335177510010434677699986314187080975683865690758853621213802379501344793575985780572122575249079428604194776623310519964017865288229144385607725582896262437583317826562738294304791295070030419597154080250992125587079643241050681975313957563633265898536223867525402264254056020257049254266687593987847443394375612051214364625837255093390691519704338789406242574759197914167839058969071073800489865107408289803627778914376581669798695807309193241845341603962263057110861632421754246190742492655823242739984364303114852835118938707072713081153463745184453709314702247547577060405733275854254576277436306149109175895517392179621763824914778331059295824706478579984410158310067803614537936403036473954993564077888787356144089899387791342688432710498692932037969541474141592247468813789187024834882313943375941096360184528198184652600338568568309768883306877417397209315158023413227169607170156332660879041377000870594928579265782444719878589653096386472924208856087946389769847231004666188906143937483806946030621002481911488498045669210030552809569974856178288699261895358522175864913160145512442515443535559433072883162972397669015327946451106428170150170874403605832732520510418712381535548061492181886409437807777665329148569202035868837092735940483066368101534591090132966946034021150394326359490390442237811111813915917915193551798233443956459997278454426314216313143666120969462269767187212167712644354540723110524863993574135383719948496501020820387168570402093087941504790322063917764292440239938031947137412818926380288550421693945740775609892286867708185322564992695716990909908219097474429472202330533494631713012341841144713453552680163949421548023443438065091469938435904163048307245480745796776383894385977581405586134845091533181892252993797529695712288329980451784530907289723495151334256753848805070227136787911214945112171030380410231516089263987996576127604418705564977162467463827658424695789216581169563862986175452689557670159128825261427879021964895708236255441897695908710114208816448250974399445903147243321813737876397940118309384412041074315832073218787341087621136816622979208126968391933067439883378892120198627751387837860148139114718594055166527069246612319100540175361541186131587304402756862582384649634131097048099022236551686767058924372414231717266019775145667870393824965562107308030671567137973482504732400923010837410010527237029471182540555623105108289617454571812097839847497280043466274448486009530047202550029699061749494766574704622735321268103795085844385413120160815342211734559009674059044613396437594485312871293972945267775804240808783914507850018133369030527029984205730800787237997037606179195058727833387988685706918478843385332809468321770929364456290353999046745343292783594702539801482789565213205505273403390766811942649952982958977609936457263244478343944334675204899184139221867658128396725586924946240455829743383712070224439527872218231468661177039838424552105783132957474733622746600651649485517796248523418467225139516101905470374025925621855337169072188660992360188513560245386455731044789365403017718848014349177258346007418689178611735618916386905182635130913487558290457746003785319860087809882196907727646740481795473416581499478729008442801673086943227362097691110722577853467960842245465286815028908343768457206150341035285351059460499718872643449711449919319677027125425386744612082974474194251406664296176930165970681431864744478195169149380529976819318910476066157663404304880050711104276814559540919008198761097876639589509316422659860186201632707553455756331708069251493803280522247303367697677439743471649555635035430940105766243208023856598959969984220329293449005823231522278096120663394795280241244807953974676559534046334501451176172168500052938376679742091089339108543825152878080944972233218164078480620563681686625265546061623991920767076053241019223660289285266386920045343759661794471106678033515177048352022302015250341693283400650306666142816120298837873480598881175481367822200950530997426928958578086160922103314993460723824592065867824345605743129181806766347796352072143541328455496418026167576330606145836504037522201233493829424470327923137391389473809559734833015775012676047069258175386900817553109487805558299822451768610762718533757991478781386305252089713441886150709980727899999827089195220273474821509753889314521845130193008574877211788706684011997730013957921485209903881401745754227339701577846337017487354116900474707719863773027929877682091330970270669959150275671078699589142011459896154053587991044452410349951407102901574190383849597799930488647312074868595495451764232270261007059563758184621733736916667597158444419323132096444283522913136617231845034610591278897311728263097180857379971860837664352810614381742826170574192146486308965972585804493759274537479437943421052559402044965945445161488709987537562201700693120590371515224384522105036508436972954634928174831684499966740597677441326258043284947253609592852344404920591750425481783853977799043226826142775673777318739981305122445559927758915971696851259939563518983487476980258587445178006760214026438468173652725938727985364203654061170325697242333988001330208039705249867058383457559634215657662345393923366633607418979711218922567894869156278485708607995800690961321979875513915091392053587082148859800157418962311260221868149583953030233113110905823732986728277950391563599471603920368326124503969707523973095497327225520100693257793648478311947530777250319210485089542604705851011209568977039889719899007161490178969568990671936005125343319047009741678156989746077042104205318934384072132199164779686051821543499860651050869228802145842322302498826818892551972555758255043224787699321017161233462656292563178987903046966321016912114235859008178809470652042641403392213001937312581584072665521959988493536928045863589223229604021948083277046097502953116453689464513827338931823288902046463300177781386856903131813364275420698975028458239653924387844275078542094454266386923757559903029501113619202204342260854760521641842922870832011300053271863363613746959070722751714196130918906921237473829149593538931432303483131677168460591745669402749366940055292875989970559977404648949675728722208542102286435028564526412453880799713979238238706468720087564169924619871771976159199490293139619461770497272927382455662965124903405525457660454205990654798600626669477788740077131387046513666021645835445263243982094260309729708366504736538429551831828542675080435475527490667774968489821119202171558289665396440165255808000712125940903035345307872738763375596010101653852440903739027452406671019584050803474398862387575246107655791043389086432121414356905837681634865737962492893468615574643246831210748699381057294389580963824932114626962096774369496297119204882333091826948079580172388878617800951217425242847941784391181427150667654815876071909799227580253372873342413295651077915081355796028889793669731128523850312814662387523947127549019525668491893982977577334564338063362562935757062999166176425435725202878494009168564326773087473670601261316928368140782394307225889438314987951427618712782269733497217325192079596274252094024605744176599869586229578610331588376835389034039557282701277205793494609079949042294111767173349195594888015480813783860323441438536861078345322743158557320880509746658640941952366305594513679446078393921351784024477876397190798111062795425119349610595288468597841375060964810104081948120322286038566871260597123053844776985525791816780536878141177007880977765225322358713549939002808889364545068029460519232392731381007666732110113856184209681282397950872911736252824175981576529953198101422279603081179411316744257743576612047733276283791160372556392659997458800235922166872207751750259549219850128184405045286235007648262302210723570750355033392371740650803061759325046770890225128758950298222035992341601651158975244135128898778118466346869750719631534237476257888852492385998470985857298878814813114472378640222774991811586493894936833359432867804451521462453057937770427835752266782041131881983197337953047299263679573285161852768916393020469592708000269511330248516868672154362978040157644048494822982063198657363729913642453234852760929544238174427281591929261398364716177118110354434401484348637685387600981321529212741510380051748906723023082568426401447184631361626094433014941614743821457672970405686537405771991414936376801540810557029657092002969368682122015658766213522890159315970259718972483477454793056575773168022829503922783478113883578806505548456234025211532082845752467729060338901409215997239854909311084051194605917720166220104474678718625331099259857251759266674443397654708422702005504452994521250581093161931644301974960826075003300516789193235163049328553398551369043264417164704355221974621925297879333155415882350271932212935095145443626017400815638478208184756943107220972270130407466460283428291864324875899132358525754478764902885157891090178874478508480476857100239281150083175971537732540075920956450493062519046021514149336607675879435466475010587648211210753670631482479519119479093017836427510214437219950557537012599768173821499941158293515348103655926612580458797115637478685278929934445462702003719190081321493356575726851506440338265775145378320017098415114386778085067334104293076982797365513853857691564826024769643194317016498917669503550040090335944043756199791929308734641875427984151240218011782207906415590244466257404298565351321257725531622988088893412814965001958141434577312446417770930751165159232053224677459567311409397361144929326285782195728978372136764075600173774889505243399950579844574324400233294908784598633131953712108415945953523452018508045368909324088789957911680438838820872813234764244445082821902606568200608093817206545412033797164213215918728515853246102062671349253583506337057063097008090417326530355386936543769927671248331674264878568583455945078110779586953383375550109359266744326975888089018439940556903771262287786432294097704308451278171277581858535611595282273664112126194137606804714243431884243891249268450617730924851527243062535218867072169062001438002454324145068041333982047262111225295028081091025030154285016094203409035284956980390378270808809246830022607503594010416057481414630052950039165576543756978768225336761673449834249273769529864373675768951280172905045495149467524355858651068288161542035725637967614453257312587906164029893283426483351303780293446394055507669284018612599503300649260433382837963212437552223786698527313583074258175286376819191511964765257610337338681185670815638649069542661230362076508145083847571852548815319859179957837533696579472292431618108587128448567143186333742718242560927054791529789700826829560664810721229025706652771434108349003240024883926273596142499386320223534084941171251544161315538648050520823343594436537160822263614671299682801868360336303423270854187558319935410025507484941303238849005277958853222106825339983861326305780523572612661224412311786388597909023854442060431881623874456557076884779342528894438842343913247868881096602469462838898735646093354625361019061446495056360882871335765781411584920150547858485454145185081942210261177388603030480215351967444854823996170753735784981348521224225695604623440120468371716747649540720090733865609033930035862223848165096981821801150280966305051715834107279245563481859820697489693928837179978308642841219059846306324296565520685697124932086644560350253406777163816442161317945323459592487832937673149390523474726242821665183859532309107475338918195664888542759325459657079621395929960225285312902847442850711831893062023947343536468068510393407114123362006824715504026586700722326986969918136189609494460754064197731913809230071068769288725893841940860854915523967438579039379379537667949218318872539819265420186568513639070121905203431974661698059786311087433954014385473340541107033041652577540238725895645523788728181016837602249404762242089340667811757721595112767257910528766138608185205544968168864217785095496119912835197043554190807684122377301434970039067569444264975544261707035021743784386922490078214838339566031770617908444840911702406639620772625600562088917146056830279421890645997151284906039465603665235530168239302589228437387640035481755857773485362041613853603608220830521167631390123096810867595090093098078957067465819570324158921129736668558134338072810007008748829394579786688290560943523280298892021210990237264817577251614853806215574347222867478292041122504918427793362691193051463577807942800357445777494956867871262777441496585020378439090922877001737450445772242665596606882202805194226338097069236422948250049106224901072820324621960767142710855773846571816650923037157409893589437284472204755075733297143717620051983508003724286636112099179695459131122928363872742568734025265436530406496400516249060828392547773423027208272881078632395662698448710610185953151246649996640376595975143681799986618677258246702706533470540706558548515636061238129890670006694156907496808187803768418551376451988139005366163252327660477143491512551312464772350144638845415412914090022008239388491407401611889746789447806636007206736183028037340370920769511326743402851010778617435069284546598793009534380151644572048315274323194297267843825045957711674387039429170151467315913710822627391749236625968710545950843470149529778494579790262174563803879842969804651487508839309442973230912499838854889773695337887336485911558965692133310276904887793500822124015182451583352439317664274786325800568228046871025594824183732794930054954463538017887327521246743963431444914517464834046979842194589579878594784630020387826743905420331198578180502291682202201632569327015153912507847943914001441152001389506387885891580362826731724045214583772220824175699010856006132960446797113383754442431309206926069819421677661888404169144982247524684216648033224812465276143842796155529845954725966640744306079166134226296158935241743894530978351865076731149377087460242914466980753329794382808801618837086459766187914518476955743056984759643843105363780449132037930621091814215705301190577817424899098205616295742163439455089797083968126837731941882310351133963418699869338996773351944920919207909027613185974168334238333103675443519803840468211547229009129314282920495709858141607839334475628505411195172991540401414339129744775788270903177961050718453879098751333244558981373972091717458523347014438396101226445639191608277198027413554825445944409985534696588960743636920020791373152965305212173142470703893990585082809811559458762024316651257523719319652798972715108845967914475521901714495444532528690590641734654077159631688363912074999138262033824018837887556507588139783125679944486350532499897144090660692312126799661710863336458068145072016297592808112742904843373341682941424226901505450918099188621092691290272792181884323361315723152103640112566813580731826848216096734172531493961664980216714788902871409876500367177381629278499864551011060902264753412071237023976631127784744628800020111254312753917556184644698808402722590065226513192800359846826447375657693465676894072780500786504221657973759693759039780561660765026626410581456852387385500778458542890135736776165925518283108942845874100483857613857248615732704689079728237121569852358058816214095028869650522737850656728943218553112658252487301087829918232588502080253240903140742133871987444593700453838737423943996055284397247374540104750065682624305924434558855549275854533645236494689415747714115667658272786739175719862838308583332330217246408758656512102004950141941142571386073810350708375828521379187426286570211998714492862146390326652821976576281342072921467517685989453502315734260214893432697623706484971529597183420426191796422033309395304056782483395099266527458682249744332535408775838477920941011870184392388464866259731156962902628647830473340527437872176068845402375635564707684615638400776674262014485802320209239517800344742502569185687539768937366301811764106490686487337127650858946970990133844457478557634344517247994589765518833730174154348671763716062712715124332305468251635984694258174582031009722538397387890854811713143188119095398038836924098865357434266685677529597017110501365998115452216873358747030605256312759449645388168169732497721795519509552128667841183122356518650924025158363901347207733792631857561313144742076455196628125311720957474427790096314309600250089778244106516024468653577058764450552216639725018420854126725306718495232395139900828668214677052559522089573065264743950181865150949951289241030416979796022909536291451238626447322228537258247862837144688533723800059447589447434612963426224861288581974557677942779343975619548393204586206335689960183198633508323471039626330772716373280381041223291217050642449748205109456319719217099893848456262179510483390866740600030722268446442363751371111444947856380248163405497926297736638165595307994825805492254384820244759955418740742859137441436070628370331883403643771258297317958670934018746927561689864893703608816087353979331582827999375525730443200147137410041753673862362405789684413593986921927020557717882450203840217698659954886778966573629379559255398568443427735621452802362979385654051242059739060951060991797433376374155249535582162355303154248734961091161516259013655680024712954162282897675286355170475821892968289541226676309731074218735024987885141808493375899665573069712876448882293268692814015032124560992070917142517995759271798714560369953170463200239559038806344299320182901843503536713708307264270427922575761615583441843709244429410511558403432340684500035987922240143663281568035734774349698065169999643780718736448377494025126950028257730066621738948234295670595156447754704019066067733649826077270547454691704422394229599541846461763939517222458043324362228731064835183471848975380370790057727276808062207320698328824986333608726305042587258866339235358442213008417626759915172267966897723581072358994260168996165918375070980136563471786033818190816676793989406823449735511844224899688894335653469615891587523760774995826863244181549098192623783950025472743677268250196551226035129533610679665263064803329394775296360420793166244603091496611379723553286986296057973739491354330251330951710108301551651041786087227827244084197518443923736304361950674330113659649183594973423557849505463687541110757513210353909138316180974975892439499927301038773207686374010123716504907315848092607033919653281066115135992364926949960089561612041410054906846103492490652810265871085428895621937926344285185336253628473507095439826582055960205935540276817599175205128674839203622034363960757287879187785662967879532588988000398366077955200540202793830542535427178876214269376934968139514920435134981091563649126537061556167362714278399915304652185048467655138643710398767653972137449321494236642925151346439396102120531762366754504026894420688725980696646232534766510232683523061594274361086025668730912913872760411338270416632247030553472235234565775410128425598750461408853195693960928868600807354080071632775512988632801819348853106440484493825500608391272665111427488055530918267880193669566830568082146092681626921870543088052451329586655538208679907709357394796430254577398164704289808439392123078512228387248463473997139899523680831172988813115644541655040088581255982267495442756688274963307317373757463081262191718997886822768567043588317177807555028014778385047167732471436955295041056653534311318680785326485470302087659582406930300681100754232513254261388104225462576744011763775528263126167754301028730265055542186936382716234921180750173347294795945521381505636999459310478636668998577139793593465657658819933161470397303066106691399543466305888414376267829425314600841934409665561929789789378007564075901637414808077874790098808493343599414058216245925404505171500418682767638276649582767422786692801618801438149781703675116745132719091623197760651133184374419259857461853925290267771110001368690661411825069486634358413523092271146071395858087212493117515804742042923524881072324676498641552154305343507969447222292932415505022133099904917158545342211769808999418719440725113218805693556188008980152413827145102173140226284679434861932548947471316118073809625204595019781090018863890305593435730953048474082378609090884435046005215632502865397398594886206141818895583684561732215346664055305556592317887185778611044817182930397011160450467143797335454803061730373218654565319088570313824026431218299416274889076428017018627475589562011576949461571827758208685115735841089401998162958926838778712056498095996692995801486148187990835134760348428238255743770652657833289303916676808680184028355248462479374330848913484414025913697356688269994800576780422740203085273023140010343436092604714022687252362074162599952922393854509013942760394692076315783562378381456982654140526112859447533603820568341615781313581749599327009084726691896574225343359958681338908373805397523869810164395604415215200241863815127723419480446286243105834777179570086823454835081998681982278819644175713806147121256442611280224007910390071422535889671574951387377311914615169499873792636664832977446755236503839214403112648139371642852117241837779367814064795225896590595438674615736661877351244407734133868160402235717053390642386120556629837314979034166621346887678747767127409944740722286728402504560810120555971374328837584755662368079222028436084427087156772743205544766064839745644260060141061973732974707089096122450958631966818180166088859137328316719528066030770253959827210658617334600725305960884064746782603919498291323092949336581959119448843231466336536439885416741856161897966925867492600313463512171923797733050272854035426388928130571058492101324548888792028802218730955986050871827583617565471950725311917286812065715105902700749178293925617633231010328009774737950938792920657192946836445351655548945268121105417987108887031010055665777390841609764295248471901934735303008974245530186177819506724074798268234411388853133180360921512750949614765276096808673203044611286711875013873495843765665616704201547454166490052487177179637890240339674212505687231812598565013726030126632990044652205790848454886138108323210521042748470138005155743589554431922124932494049393997760286115799420416522976115612776433961211945327003884666089867189808756540397058062152848880074119532530841290193846661541969537337172252367510344663543659366307674504586698075478066218138275405475655774282488039167466880295858331589762938016300994293323107777625104337022420203304910521931690123081186877136299152660318930734681565405190020354992170056901787561765293149362996869353510285254535729915969641780122986229361346186949999679275608642546243823501607135845381032008922350789305285116663644017798081310452884462246692037854076042031906560656314652158101733966393185901523411462625062740504936812859224579209548560752268839789397658933507974174675195527695729986954144187868145961117166345904317367340596404145534873262841506439124318727374320440447576844068329534900182454788648247891721647922809267085785942306759852632906228638519490790166257473515627286361303769531397015524440319214785761470592624418496458188789861189875248407054354079137826985705622999373434645484916214925460208238511316374763606697466296166364790554287510587328308980176952584471038424793282761033804797136454503635470669300413554772977855049876224092082770765816510884576878673799962978632013382265226605148503971132020338540628937309557309197602458910841232024517171188724320968041428554036728292362366715304201092137521698514409000746867930613403035411961206669731096420272281319364639049996316036740086382838799879882994149270384567715602807460751589434038773902313622686134922828080648748624320943137533129260124862438764257061172824225288888430775324993322077504225319012807965978136146639126539887172666892222030524030232034703600067560649953518716708250579900268341398321741749579813193455937517880503657430547730461675900329792568569361668157993250909478939740889660396727563777526922350054935990209428773022305574865130376446121091093004450210285526483157086002714822462208275313581575967781788057416573012733545818374770457159997101833024317953133226862158564623626573482264166014145707883990783892565830955724973409211767258243311132215198145414304546147557837827556497776958881590268961275084482887921619168979205915007804179431475371299462138792471542615372560050344660298422939970308859554273214985169670737410477307249059429231412320806645324376847575818047917539624268512433279468948029459261223518639100984308268254059138937180122534285521624469453063457541810157304689363179353980944906080849318246357979422974491430785003971575805379183675451507403351518341051771881644090053923586921889431089215647574839483248588218513437604219277913382738664961945458604563792246101865153088135724657578674282390163572815165790231563100049522216761262129425834323509079023267063460759194923032861708096426352287625498054477763669168369520500420042695014477130333509887094807108327249453500281892668285509007615091532767332437623686348409089677874519062823107808762738311756796109568765774922317456087373543219211549659721900556781498186957942584901848520466188055255336140658738602893284087951935278750663996252153599133650113078799231961919067522473498138207202866598687836388098417341368031119245760552647277549431325846048188709639825054035053866694856611408538947346769817857390089477253065551782850705214741570670572737816384397231794234159676936674745168488268661581551521011006088486977874531802929812072541976884624659853315048537775011086556471632953659331937737038512683179810685708216606866281997071814288632382293802960673305198457344355030478151495782790964308493274704679912621456233312727868926877198471326839049787974324163960641938839232531184838190648980148050436860641764857018440111120285351774263669244340435526515485349820191400092826331198372565785256223323399343776014669904333162714755921989636587305125777902993696069079016207484668323489901371316325664974067317350815112087254110830207132953277160440507277607835812078797318884849466043627202067159619026817768992721971952430961412990812077973469673807448397755297855779247296298059211357844177375847534501867574896020587960974756382630849116090222022009892159631719684595147003976941541454982577756308695196234953899983805088130336665448451751229410961428051348187223923031194685926224818273838827098919008921940130325789904459615253460071763514637150431064206454006061439408011172840681606818228424967625734601107060369769545393567642483703976754892923124605836951878432847332805796239457880953363277986432249122237668327104573105932607067448521985033334005765705360345194250025968891928016399541967685272594593222409170375258478364080889903610491748046829676170790631003589052162956890153455601834219752365653573615162652120602771835081951478550149065282417600622727361186723792994950115244773730344392408828383016815302247253876401483580216146735427106617492846427165910303402797993589094668517511042201608038488441692846601603908972062044754659532113103292798616438739096357452407355293719041252119862796597526609215528825256618187106431694976097695176348872784078529179160935340595901856383060468653529929016156382457698817524611348603374332843113268042865242555798184885202572729365301633714326747186890005131999427351475384935383357278531122001853015255099442068606843754353687124907379712431845057575473589132265031412501857609255959167736237900241120269394956200364220601754109008286212200006850309047488200183419682015538385500461835467488844989431267140991105106181172963926327107310039960992440837114319405908081348043258674527458756971214454904881904868861562536294192133603567735109467143422133004765236032913779537125302621951962037595897472157122008846476188828065757795049389989196106681070347216736312353894862462414296149003172693506727838455036605455395621951402121529778914190935343200421697741723883006970323716271109175459080606684483348535821912986673276516210738458246318634280429235221435083894368462507275133556757586366962332387906764988571799881646309235202761925838672931253996713163928142511786856491451133562702073695874048062672946735559986034648463347623063231019504750612126773941895932204638689062567714687071332944269600977348002792301002175336481359993952864960198131502401664105821951523909250533248860651271363960618862558715933697412961757494782182796200162803082451912190125027038056980741866333761767294442001250509561484305473651492427428088911218026853110457629616395444152840626190294033170296540994795091080801362983917821195470371691535796901018499212015398475855886618008584965809542367894871429254130200537505601438351759208226145203734435166833877605914882280237404957640451759585894061410839057730120136380301659917880083713676387286210203055739564622241831134019291354057467043469563550494864726972597724033001197305710836293474180186665549091164557258028582682478728482657095890104384546325947014841313982401461430401652134340728672336444342957136969297639397682916059979547942707631220456423851603842923212886661435217150766949490626084323504985820341772900682616406076273964178829044519247683071475894448746624096008482104413078579262860638474837215544366136543322081706011034247322575565738889569904390065871550917097786293271266473405175183078536247280739548957841989044694447910829457364283660418413133702916303257762317218646451661942956763678844104301595287813430580461072017290113643608574008032084656108922197242174344005080779628045352466966706717825809954099118424341299825715051462711211688910995441579995750709177671580118611320267927976564454419669067554886297831096511539975483686150917067766336728103956162179048649635494080813999435203659430349769483599018862487806310000096546043445965889125780824178406499731918521922753411813175296364588509357355734970324050480622975383866609577489850599726654737041327947753245815914551183789290255408721810010648281312237447994870028723557241352563778564948946402030207991575345677206053186504563336967499468948022923170383699224138039176456781575690834682080585914345310652153193656330171102286889178924866972561297161080239658201228947574478356081880473960235148625113294483815910159826752137126989165221915945769883879722696914265022694831274497296051980167673123664566394682184561779454736730541780342938930189685096350422613507722030151052746742262261377668774654883325290586401099889990788621603971380651953550977956090017317138543506654274118256361735176866128062544151351999406280167822460995794946079057357961957693870868313488144402182805041353949955630582124766028082372568210825601194863464481885496028234074549118332099543410567054718926687521464664678348864873239767837303109817696100756943560390500578701801522242992588690480096209738793802800757533300096638242237050260411848605102817947654361197211465825890930738091489017168895705287493526287134399108477829211060554844874356300094822928020606935868913061926408309445071338457504060575732264750351063085230527047239350211133301180777674880269006868627679973840620321680390563700646738237536569468367303191776466614001289461266825096890775679841541813285464365077058418785921629997532942458793287378910114968010082432627722324089474129188606010718756579349763261229704383530819472258342917194990254112327909202910157633209971816391641650577392509286792609458420861344800959141828867265913319929660496672288949768167305925746049090480757295500401480684525769179172091868994854293815213513659155225223184519635300339091804325893139680623359119508559780863904232592978340156241250291921345082732313282053077980974443131697280541811424245347392061329848180674958395900111338238581629731998084545967858916949683392108828489142873739757694114364909487779051874840835979618574145812480166837745212423836412852447518816897546402816607714454273249759850574853409853458011926314117734251211795107889521766210670091006989623581293275474245666388723976702695818779054814718817406966151721560398745998010103522155722848883909060478536878278918317119064099921629537197845869904575086685495164025723793807428110193021382753642804508352367436791167920998917198360648358896598990754033611386650786782500483021694275430443178098251995928656125378981240924406029327224952956825255850621594566159772348657282973983251045495869057649869734410525795682778916550057000904368453938150653498796227076303806658764906490991498548789834342283843177256828228925209604661955477306125863939886962003418071651465601044723083534533153104119134379265784199574951621417473813058965449384113453528478431606137563619856424880484009114684795304462794255452853104841503238731740095880033207302357040394708415919551949819233514521290415204131483755334996198293475016807261151543677720500951739356454495060529860836646777592501273171953686825989717293525263312583807949029829249246472965269002016219914078031790700397630335146663284406848653615070822924687717896519891461455763478913673542565686460882859273436471031704927807980555797084881796728791123091582281467207563989048256387632727360191177455391748693877624765038754117597248741582785717893607542139425640752151273412123664204463545599128979733046030987718321100271644311649635076278721420129226065945237346553692171998923849847467189840883654170852311931537840949836593547935582269658556082301690655347173495177979671026368686508207194349509135738545501231645409614854224098804060047035064297006120030590977161150931796817956827513349905461526177182120259753929508405086544753033712471692626334864017829071370078065429851139132391904437240015644297813186626264341593228563313516135997693190365296027819978909400408453108968708038977042081078229334459276668400116874477321213164019131863310202273759268976633478542764542814437831395816736850980532557253418058552448747228825952172463485936784142213308812692292605035323431763116039776473824111065458871630039336838359417255185810210333258885446716496235032083956623385766150621150887768117079165189729730488791290216844704192308013713503893238470817547016676862697410197630320194331393861572611010142873770978214911640575862951492229776920994365366513465348823106571638934034505468279178158500726655972842725919717424309970161056499525007888849335540975237280956967409267773066764420129246677998135615424671549463517870122779584480514543388109150777875348851248577727418148886024968451086352368161648190012001934748664997228071650854846859372471524345872331188324124736425374745670347264215606944547099610291293932812571834290723683999344015904849555111621584306596010958258227350638072957552369110666737478285504448582894855732957273067948801549265736251014809282434046081971549370443353690214200044593518032875690229380834310274177445070136204794351644304284956282223357613957799153414928580683292402380262843695671996884820590416242320227391595484625819854854341099864507413332230282644359580462592643832967258539627589138649895318641599736008734816851786645590552742327218398985624664191732117927001539026684891970385128382402065558712076722905674071109144046813363728150612294636312613037499730994398428157048872092153279152445777251175349171225159661197586688756369157003304816499951065155124136403401348059081361557771962755153431337625491803950787338283468105830160390294819731726312754167039060323916343790928687581428829093133175084655478149837764003032472548495812297613916600829069333449544368850225310391003184173820870688962366589570784876536183659834261536210517681337608257578626232253537862670641477420421901535857404138292048636016473980840044028638238166608171982274976426914996735049383332496843275208156179151419136944298724814774965005766740695043453829153335746425640894820768444807400923294963360021465129303195073805082548152142297890936012579318251671582229001339443399373186488112868859918766450487813438423930988407414097569456751647876831825270490968533025681767234524487243308871940814497951201371742220150106354828769223894348946459461449752299864341683576886909916097760678745090410828548585287741320121006579366058511465911092279821626167251430999592719634315441562114128380138661444471687576951943668211283402454998733299514236189162357714727989910148655001274880154091344816085504995688854713852982412053540499181384080541174088123602173191991991473428096443149004041673067730178658082447810421895846362354440025623673229233512765785855371316071231277616703235625668248350665557315733783290613943130640868069999685088547291032054954266443496577104812244785554034894247031518555454517468471802601994293296920059235593807828286070844309109063479527189453273563164759462671567547335393928664747210182066698330430173055090851091134463247182275361674194644657274650709912782073078668710777582664184346900469756864372150078950527259633687824334745759006467994909185102907380681015251508383416934554833997029920472342642334894486897902640558306939560231005311310102610481209307941696987407720725977708872597526114152070422866869673239003448468087393383171744968457547609813198261607809900632946891580019971408955038532353626377308708439246289216149804608996494246524455432372371323083870634030735223982665867735055563869329033941489231390322198786171757186721032713900776001298638292649922621425680340852957245942368204805026907960604629743270177792618592578822248713660902489272619009431499179429049484752036826884102789055074019495423617794463299065688624613960184606723204912306779893789335558108270000840246115954625320756851950434327956386690294282748988404197928832330454263541855785866904471364389987288729211467881285224961370338663719806468399660734059060181531174273713495186201977278775881641978081832479234243786548133148821640298912035035175032763489073398997332120771659156990684605228698393666212558510709967430123002243224227810638634974996612444525097360940194482073563348487015826665105331590711268531629996221140181763541621925898954179038074897794847074273933971644587470485324000774693699046869172035405717868465065470042150333238920536634626942682432478468041570146526846878610069164605100979291041486216226659753562914259183763977353273645627225691492112279047088055563218999303594234018704173021543786168269911118774551472829906119201807131720562099980176561345077516177243209050372893351296660353782114684445693243579655167270404431999150188950259441517401894922483422108742765570722317199655690496906428263719396488182135080757461459232447255559777816867446322510516133301154700349110013102964756295972516084786551641801473610201140416222014200840549568823118223305709098256510653983006107955445135568409801589013236579523513081576015244606685850796109489830419906306053322107250906851477448890018300104738247361096766570280452452263982038766201875480890340443430414022449841746369260907113310738775509825254389444759232439776412741217195321737812243281798399295173053490364122978317217015406391382321259982855699513124751717446374496149989997631096521408280806006866897724526178068002915356536748968599173262707261776520781547836201779070088898516587298334594698323068617892447226641205060915138700316793398767634033918501352433670131476205972173553119228042010595597058960533259425035196326631035126573571509176569824328065641885968492564360701671342000721786193315541790272417894910556748757008281777929201932956302594661369735530081235649459292608826438632906876526094091559304282466661972361318397213132076653087102304274224365214834253116072350029004240065447600492302907986011093369632280848655529781888174293040503883859866438810059566986420931643583747678622711844755606725449953549491616718291715135052479225236668550923722400606782839833310591209144202775673063181508833091756732880019075568065651541498370766155176641616210994111269292227064853015835246919804715158135224296464844538635284450461667171248921109227395244925100875307811642930863485295784412306501806403716124141999455014736974706478311356399829257644860070144824357599709183418115083521743905194085533050465240987760719688150093558589658029443871063131775912188176030894148222896196655262061913573913738448695038358461414041258428954946047869425055771567674774037937082802158867192994571072555987956576364021149177867814061293912433378715032899002278454163606637643120607059752429675212022082148928025746699873021306419656399991940156541439128214389366752068477270634342061650686921598654633967165112356363282246986447697237395318297791649083640724801763132860636350238907591410491862383554611129623882884044616242343066156590987197898166700235454035908874169617346241681467518319174235160634970940449125839056723380086003372317155539141550528727305674501647334550733132387865531289456942836122658248813700665342066367617839953641124427977341815662701555975871457940006854326265237146568459983323439532205734131800634388250860910314015921183269530881116927838405344731171934390323487445435040970782653057639075858926189273701351726213989053139854761856872373396534402659349179565481992494290322062056821944597288567649127203226337391081072198751642751257581486759678056285119300635435251958143629145593603060363232810839306998482204660439696357383221574018453800961710773964869800425251827816442226680085937106368821025464217741589947050310312589831579651472738849275696960246155160004689784242058878397755139538786158916621022687820720327846468063541772752419637637767426910938232610261782580003212056010039979315395748997750164637608479864283503835659090356353851877927308555115288081304909615389389282158150611452214524508863502070272967504659319847031321261186358531562422780456792444054735859204674155367247727517307515513540272193378187731493070493629346535224189688436595606636771521349142882401383716292839530551473708887323044446114668680363866564560994964503179596351036200625908646949482260727182697521049024989368130412857486320775894432085731633492762824576862046399318010944300620568680511916149567162953302015801504441332215737514486692937573379197520505193061291159642527546976912429931377796765792787135422596671673733734121350867086936208347988624730568387141310521615588442062059018350208791911431320187903027865299124211841401155234087130669531470457263614486574655439677704664093028548335862313949435942574377311654916197939432200507754227307284746962916142620336522882076522412091079177341577253864293197628864893305905557756132194340575718171787841668048677254475020004657573414197074714185841471833924784515285419787217754199622290599516626993087023614329880635316542531630880162304588405253443952599837387795963519662371137361361124164717542582794787358419703848493903106001428698264548009791906963264631223501692051507230573439767207699066288335910066066798769890553689027247247212777773409084209758152808001191728899968285935674268176955243797679696673480997101713718772527960443096745858887510376013979268822373819111244153606909558528104556388068383868634859380219933861061532652779885537924079139737252918630346350400761201891159241983753653102289688036931465572936938898395340797068259037773290116058404702557380225847293694212927879967423690662118926640273716976899752152766937105700893690197185628679324840457705551431675030051424641540392475074086983824213382021321830712137036013038683404500225468874826421896524966404171283862933328348689514412877365152111467359595328250974365146962329907992933919265099595978595759727217102981531315532408189662756515083984890228149731160839678830457995234260751939653118585905607025744015958248011970213802190085591069675599055195984127541630755562997915225417003666745839142716155013047668391873278108402622130338497480812302688641336793720724308457453081104688990960086264711102761181961376963420843537361457743953449009111988979774432322785607675881197777021723763895286311072435516281041215452037104702419469304433713329467688265395502016977237409471556370108110299905706433737080982433677892196059819283414578693176387516757462453058503897776007565931182235935284061914662020371792187946838738937829393708808392930797752016033829319686892870438208715065870602663420900864824759548587145803412462998922795619754208298337489113324107834536539380072147565936482331472897341540389974701321111605710047158729731138079779714360440441087366594316269859419449548089892413539158394653223500213550456668075401486325723894330348528808489884960223913359802723470784431184433494550224943448316856343727370059785468254711566967117029443635717039972774258895900300772489997446225918680894363243913811720956195716869204499162518958486741721398605337153848533572129778487474221301375381125017919572575395715170451575536318343311608351202619688465634454078448999027976086727634026665531816748159206369163640528847580927487533977686085060637369762273859458246576374990930608181663999559752067533769673372251428054939953886062712069650457966643246892848392655921639974218703319522111795021265393924715576752741469265159710184582295550913484556019580943918238720644434517455283206952533319995677358104258896018085610728620580598013297145504062251497957192001877683826221197258121632705315764727128766201291675445232246828206945880990081484002910247060743772704745428279461907521365146332609186391755356783861321770659265324120640576022576696635039737267503986095150224104514120574093827874841638586730708418489620921507992490631160149367416983678578719336984938397926104394763078703495896472399659378271412832819294798549087709742004550853741572126955468309630958584071751337383162341684913903889238568220303344985916137116425337794685279169089863435128338500869930997594216294654748088008458513634413954228672077572719628878682295132602496544562699014759786526948262915143497259551397767205732642857919159797488296901567069059224006836097779956846660762220428979243403509104262262688783775123433147247587072499867782151867510008883425710125744964541398393357370312785990178837657130760991682628656188212619518331741590116567829490305756735170146290665951245515905443947680622661071749164417256041049350155127424321575018154815555237532388102365514818906952673525454960599779677246575272977330624719988528103922847502693398819178022876251361646188390130592883035983506912416752376179457616896644925869285674713660355587938523717458343248384137155372347015659081196286900565804069101520200499340542529359921986448859205550367866952343268212949272882711071712476539463532714936602525095601867379737377297298819055766314851865886118026860286898336899648323721534435670529464876857083366793864108107694772238798118831584775048617362828096406152396219448097661191390780402675648164442743866424086016306056582764578265745761023385414954156098217924905057905698118534716807024850881032965876879667240136526705789624200222674712872830251198856993151987711888957250854264487595333915087283896323191333821609610154511032653771356876495626539774381884004794825147282894364129312766381099000621164944236412573103477940438805496105476339997550198683878833372349807322463313465688703117809418435700687243879061022202973011991635280066844046437172132223503189101818840518124244341728285448358022616840056679353087952576983737682784146713705730046199700727504303624968589604306342640614048832912015475816715336393938334381697873473236914427551746261942812179992413793761415385974283682353329460808253221502934770267348536967141141303250926486777255809247031333960863222718548072864647143707383322885130604602801808315473616849428123417170289337524639853501099369787516263808089824969191097604186948103585318495533022166958237202635442076687277470907139459274491065123987097860974379981583454879331766519401666065594983400652023630603620524415087677659426596815791264977920484496887536269017367996238984600460729740813986515196625447725706280508203968474499302777200340192986699012987199727216786598922015284705805405639505065120781453183209509112417992524163250021097315609137241487134553658646823525875587809329841252018552728475635058398604501468797605801378507983913638138772248412134294262705306037217202436959859360215778342809068570653791404187800090704038780113736890000376149634852169495589531019371494725478692134516916008655397365035415780244789673095479836497901588501847640645047122617261665994428494067977939498013881435697767514834985181241140903622192154656677038295765689324501876332859053343368843514638122794896093784551164940992565557091387912683619459642556033969135419457672639106743214035111788579348376876897596418927759773660522661987621856979724974586341273234850782593721735987860768078749987421002097184521516646637813462841926222414564184305699124689137160156159874348548329780453440035059314385301961330013917786976532197773511080637478268193331397118198646478837366021453078499167489360288450742085808533441192931390686356826334980911763753510424427608011450445578137458235465786807115811275555570638123008834206521650794883170111780185173534389050704689391006396897952041823638131514385947810823459270869112164935562147529003965821923755287047698856071718615057817642215402143093326843552180261131784992549017115664292812665832351636433578075423907528373726349110773310747636026491624308545199536763244865275974065551595544735999801831358823834835822393473058345339908342008590058487172791874887642617266124945645745968133540472277010414158369838104745430625300748922254296033968143295247122458132561689866006209662746924306252353410003478110484211211268118289746567835597583378361570357769049476043705069655857357865978467354286283118719342627117002988102660891634677395260921576247426216805855841210490007994558958465353341180173607106331165490240781518277028494965248961068379704336714460120020925991055458015462774718610524875416982612653334984628374610132563020517415169039941686498851765204420526454623347585478736655418169011273447504087739472609545833732583482379260359197533798649157794417544013601273517532898602110039414311485467270167141047708171119686436128190919451346573973655907763011914123655143472968834728108271146633558011216807135423505913755847699002231792987740175652555761300463800447382513396482700297265708785373554284844241059755713777240329002983470305207129716540618003754167604854282248123284502625309042073292343766519287597194233966650793015781855718275159266771758398283513611208729376509182261299273565245971447660627895374928517165691651768593263119220357309927709678909664144092974709067467552002282288527683448570270330783386202632448296263097870403573502030976462036855101871543836850813849610008595613717261337771753532920588405048267912219639120439707588916250653599656170202220232665281766548710068034332122638893548862575677603708694350749266809751182178277547445174009678563881807175646052380358471926674737507309685142175168002619956911040590134979740816155510686479110967226027890427127284750794035973016785141497408804779767133274708119181755549520205750899980107063545908043274758384175106809760882245408559845636232754799835269914501412656030226055055006250798580014242359176427038549080162983943658727593939685729611910565741446948061923546274139959057070657228476885641059404450551064228113506749104855090182749323370940396932374418621262658521079442264807614706364299808565720252166213440108485580513776195973997077983173186348269591686247643663506400488858807576825085292899497547972427592818370780679195286360714299898016214287964530271007147924368311991237025763697359162084436410389161775801712420427951908270730261662051534869319329906318342999671246674869940335745536921611185298884273671654201791206569276581469524523945699289211614976353540521910637823834833504704081229363377415311326192821901405086628624298243641181398583216166245162150426968972753917109033604634755710207816072064133916376318185669081050088096779176333289459445037334579549061885020058877697718600497125657012877642740731133001138945910303882524927908659904154685548029792065450892136571764936626198466617563773368581926856880689004002474064550551120530224431802598114752666964297347798600412770632433668234025415608066863277046354574868641410983669141015693903629485940426085785405993476934634865007544516175944111806623600023373320926603349760037483183303831052798362050139140978332083044388283939009853647862965430935278524480578109821358048186489088840301728724315229035741946378217811392887074393728219797203333266346768684738403620871089654991174092843663026634647399043360004711711982148013838080762029649018424082487553370377630968875412014583602927510952853075290597015260670781088546340821928742531892917247469771497258148429852971804778340562331841477122758517540588256560368010237499198866085870123161011880867270597038643009159078634738962128769295062601917340398164130600716727645419358935142540685713771456309004391412207780414222775389499105162039494968926491259553856694736834165982604114960983099350891098090273212279023498279607289344024734998004097765907219463981877209598751887682511391854001755274205256383483533274958686040678695547877479445597793414626787358082240085380317618143646132750634535749984871848334007175199966742387714422092322462543838232852641807995382651815259564025757331241689745596835878427523249462364141749488466089732093627578733391213927981862812371991049664893274519255699438824111277050764904604884264305975806791857918674596847435777184552640918119601921869415950619109866958450574248900698882652988987132304855265706453075433512219596325971235425216289949706596819432941960927854448856410986666309515204742342913949606868478891075293086357808598669475096721382908572921256350777941627172635670782769648474993080368089436213361031456654861732211295020703144408890360815646406385405424112223895673304458879504197535613600626486050432184635492859886196478886459594437094307240864437135332645958912626969872120791589739832083850069695374835049303222606898073773968375463208059847630788105773859399776101259449478019252856799121553552972897555996649490551657300126700067999165074519387859998447955407366169922328459406354188110572379623468583259940630610305064195366122340076277027105135936358304517048926951894184478172950715978946821243933346155353170229245610416915712139393904782932808282913275253481138233902174987215589338102707932251455979788757318407348894110868864631069107172482476051694999071735050708821165211036987922511983122338457514310068806227378885956805313477577547656155779743818272839431724102640473781351520617653757195566893613886834447236664758588323326491382640091949517540375223220564705569427659084061502228677495174070207712211699403353112197850995839829721060241910963590224789626202398323440355275811350691327594685525493520666717616613312999371422062875990270669369171376768026050249032791921984474015655805244625370430786697689936944100076701799906146229734495545079263783636073655722234931323387779937317509222808479206162149388635870597596235279235143378085887629831406369641100766842605668379651062655749826124073990114040513136124702836570536654441229711831235512726744845146364018873452225609265953854942408291886059484392355364601142127230841756560697154989828551805167728567074069712338854126890676105702744947665485132604427367238193284966294656986063225002532234215840642722174686482366768993470847978028479492262751502075091998239073770861166351902384340848150872106775788677499742900567600647028157673265842074050525760289492635992136405953758507930103779248625866808718303848165429962533024883011302850416132715033679778991456896377175590210472212430579425143395247106552858041105509481290490572790634145299227665384250008969475104397472316224362145189468312214268520905433044022788648857998837945098176398159204233248281979257986464977341656408171651529339945969440438747859928569462859883478788123619812438413949486703896050241825726040856001604925879206908616769252924901196335835559535770069196255749318771772371684845825390417223950311785004848676344866621182395979122366801345503172307516443216603936146409923478911969682027754756345491991351744314555402970852896728102640808632152625763901969106785172208537514970975707986145822318717686976326964088532211373960755385954222408733463687351283919035300870014189395288202474929145079696669054723601044580449708852673817718796710996611024907773176887519297306481037199950399168972997634698849844143744865338407068689396626638198482040668170109896092930521699692876218723292677171448232929264098796920296486218517185863485055883321703326406810272866933035563973671130975687563519590575835133515832172376381629528085882018249220264037092796209759844987302726753003533730220201393980845944051886362550016989345834628366331691277893253081335254618025943265437663127958588068096090967424559603177591939291541725039164588307838364480670074808708673131470322869251959711472279930702627250467447087781745846385962114448911426200679522167291780363484284946673171915953617640199603944323412071130836601064937389331803348751216237265139753301306213032364868012001739516266063805757624632706880023031145754314146807748091137355728061758880656374259820294020647279279671043268044541141252037355140846834482391507914176066961203638626650127927903946243238062257803084740493979941092966789831745772819436160177672829855032962492461437577200344401200535841518484179516270054951341480423539277959546583390125356433027881536705494691221931458599306157506229097990851163275808246995805892960524490021577866948900026328156278716495392384250159546867092867659423442136007552855270085680689119999257785530558004146105328030741523283825299463570566434459355498167613957674587107937206992709695975785400017983897034000202693802748398874359165755247822675702566188739731528484080702943122283772974263525468807659494322772236472727189010662584218240401734160103640258895569811145864239948773929925886654979899743504948438279799698803807645251621254201446542652346617077075327445378034503249364182444613458349669755849186582118199005078562467996535073431622099091370939205500652941454620292524677734679561210214667246507436592727650141724927251244682725167407099290447721202628691058142267838945944239750138351568677583852224710555240416384493651070650944313223581171556399706155465492525597797392617575349711044157778799412702425943715889351532845102377708077691769658175102444126601797183080559547638944266579842547976503070591115671135890709690528370536520793555619374371221103321265326536267542803117018718309102530341305335927543189776476929613881660902307014561425790704262174653826241172699427316598563811557809087045388871380679919687492123233777456203108463967818025839985769647052818370391068438293408312598836510652216397676647154849096047930198677326932111959209804918444914816577988453350748466544388078310136496356338970851625787359436925399802729577168335129521129152427742880880951054197469371070172052432193501594559411729558604632045809352035938433242038285265243668414415950672581322874031874253241838431206377161943050076811296866715489194440521799072933380787503212555011546279328807279233428907017902123823852815428213020992738479782560393492535801866345479121290177346636567195189332048527301747773900829190034038726422746697156651429386206553894047240030979468854373469173286465721877923936278390775091388452428023546115215322672212678410923159721247436242250358904348607297673721241803340612684586386954997400028199699838810161461921226014945455131654416777944035934658652389471890448306379058905796338142639859874809276101789858216399287893127108959440629664386373777175996718024847348855893402581855495333583125092220469860585752231135148611196611684698746015963135685175164712027455618531730518625499270521317702276122838899376741512263533910969241360429694653489793682118753836517635075069062579078987830296601813258615526823519775413782638639786149789835869406720785582819205587456287905701580904939968284842251226743903702869362672724476621293523665737543163579233251865446497100014556698310147260337341540817627958306815869137692899405472751752887149161739817351930416847379440481479723693706327761608699628827498153071334241742758608774443036948537387509513247649462623971704337755164977316044597769810588685975015046788906155382727927467553584458120002272078514791019867317346578326939679347353769545217761899494436594891067581656681169228985323403687552230498789735052283602709311255644602773811521228615374370256308380359142148945503178617716769105438733700522971876075363920831276420920297528597651268063991588643943503828038105091082528140975129715173421202551681000869348366129617112711978704238067595154057750942910929793397749450118393133826438362107540744241372115990965812395324494229112820623511380143381916839068979616347756989737554774295533966778160165049059470717454999884974726372251861163201881796577880432597331646977627577317097268238543873780395397322209566892952118649440407694903737607111771638305696792500182305461282025551074030485048609582992044441873269338974503555878635874455534325820158272460604261371206948542420256287093941331458283555738174040812312706215254859268805037842690996271554211886845437883555078904252433308956974795213875360902847748462539786409551466652080162226492935408816937580243792469235553907316645009500549160918574497424179463566760689279999577457550532218775751039129359723467568119570634313120994555782415462633528904900393571720209270903870742733178847947242406217069781021349504490054968441499797271976137988585340666304434307680941613755719134573927330938466966109701081243399022055742920696854152277639334712152219437147155975594081011486962299167665701548478533281475621297319784040446530362304179513270716239869175518979600394644447623585026725571260374815099257359870167317792941585626995803821385035140180592784631851694530960998710233183481900715182104841834405985701194274086874605538032594308921806323627015404664104728695243335698057947346917556681221183800252136305712457171432966297330030799103870871980475595131535330088579464709608176694874414689024153609720273039242640325635261442342706728991283350270881277188213594990461173256470671670510732804469665994251977079136259481084176181665182691628319926954984703888184693856246959931114256207865485516327123608592104459240268420650232149055768217512067753348980723339836753885299917460753419969793895442796640120360984697851303445332217705993104585226743173146380729471252155804975799173904292049110860829277979730247058449198269638474453297873767463392941602021880096072918043988685992144332962992904200205125297364873233576357450850209390714988687403475834695543075417415900271869347499268607261852467859914435015983234109030755121902650252735297754245101286754589201674990859956286771743570687714136132724935203362015178370143322360872341501844956571912042955750964682436656930630247310993439490308644186767089868249400517194650335415526424500137922480547799458000631420774237868923008366337930520609072814683329329709725527181693858659724846878666133841577566256401987008347730988271658523378353859587460775003626404633647084192998171077168023528847019592020557014477233444021383165779614510633967630377343514508722765051993846490863523230391775675986498190456600535233993179580820071833990360590046354361192355064502647274243168206572129513302632487003388402754064027961061855292993653027222305605119819983049936829914707867023146441547233829981560806253985629051424581366163960386746203884271593970348157070125315720935078230468485425549363754403161451088639216570387078430699438065599233773649214323650629103366748354146986950670835199699683236876711543547752689003364134646180548005549067401153023307287148267499989842649054527603651001004501842705525820520957245367072499927069004626531439437685784383697099218728119065267683458032757091618512615714267877351065089390598165022390940582849366781309382286611456555441206900897644953287553580774527707373071294457471394012960018398388904657062015889672524796863076083662443369149015901741975769992018093049706286145451624027530024130965509669502526964926279969225576948871726226864520554558471120111754822857411177848335968791151477781595506863448429967589378088550464711602869600479716227908833013128936248730771722898423598905585612922884388447731010650143522814073831677781871850415091276155964990923450058662629571156824397411562585403245571674985051585488683492000829180568004186716293176921117311389786681589375849785065504297469201147170688061045265008993816096472975676909424066996975520174721271160677582715855864574000347531650550233632237338209291742617051673295926463461014310069992408990655117222286370443982235365758494657484844848373530474790993568053053546497089013866188111423275581281101688248129343756389178217406078707037295286025153139509016857392444082655589073937754287021933471720281164087746576439858954054863320834184000639461231417505342261316424252558895396353252646415716433830472624918858877291471342762779604613050205411534326017100778960218638474065666437754478407800376150814838655292203279024889184007750588834882134268384412732327776531207850615776799992316013872923530630570351579069836904512816396759924659775196384794885306438751632377564928209233866256297622583587944429183541293241314685007977925060995609967295413757292376969117321727184431103727878644371391720345000872626419028158384891616665075911768102391252698793289430582587186257605198192218337292459408833849334865114142115234617899637327528841441347864522396240072981075389410711978321971805656741657098974493349717545776227505643468227980053695469108658695548064192074925062900447607291789375234708218854305109824455953942036870814802229130525923167244123763789934430219126656165855505953663047464403897909254190113694876659379205869062993431404593430983409293476594879319687702307877662695823087767080935550894799350479081262917995356123302570004175581662784727327343887091401989968179598821237028348241988762581550100369037114126829770343328693361030285209150329392863981547528111540764613662722928784166820144110014556117025800644250850800662079952418496547021030586147755468039522039593485963644836006108556803798017783251461700809398606128923907019905648907342405212349396952463937646247898986964376617268948035167412471615287248688842021835655567164996150738634278504475877137828526880445057393036042403482553168524113126114989694742653573147269056089427747631748971477063033396710090674217743021721651211526214119831812794600365676946730335897984979975920025944799366188205238605237172384321556061107915218963425604408482667550389687385434340061267762397869728047703516514124387427124982686306479476060442708373337401081600992171976277005070044032275588606640930886155164214040813052343925387251073327751241005241858833737533832226097968705188439708975664927281096040278901751520502115432271540485329011006443250317431654997249578548324656397730081781734158621034854709617903572703599121857556993670930649638298858424901129052417445902301080342752535901696203427938876385689807306181362033153970895582890539605474293626266883522741447511735689264135743706325848717530935542598917870672394202350659280583633762916663676704099992351041742490660748031965524332301933253789363539646803660788811987714877137470474488785131376817614054808446669164685359311291964034348808510994661505358129402094666061991866181536021236852861082485363716627572922634627806772306582084485222005042792242945797500166267486412052334274916300828399167899023512672319197415009681793059237146138303868731238063698926917447142695447370949779522592591675654973572708439822116107736683108464730992079521611539915832318782753261385587298927778032468042497094168628860080368330122324234218059317476447197461933210163696869027291912954375534673048565658263377703585579512150107248599496471393833797067671122759254883368262941834881217436667472847215350834238246271451005190709829309435172107486466898468392647938484902129703756856505668975642986083966955379934868365948170455845242592987313890524587281564068785948508236531850718328827338026397636937849619393573346177939627594502055535055958748804799008912773301865011079488316009114091714381205827129211343482648415682813411077112949335366377073526125458577404450588477937744790500083299704807401773833175806362359973468415596694857846175414402861064097637678382896530104237076582103362763853795587613157778170157277275761458659909729105273719016357183018665431832118767485064268982825714416495386106460610763349262964051725476125360176135573512219665968313515808428398128223994044339571592708281032173207612007425642936277119368783529975522407360736660585821338641960897352731188985517260310643531288995764281467358250598873008581637392155410040732470591407517674013387719502157683016036605227959332913770159661413504175012167192259475845638583364821871421116677472919564879967839332024181255071928665738359755492010813684542829415157492668988835836290742307671978798380189337134137373792194813020795576543123489059044350901862975373376362210070868343324635308328971900672734191169117793728567160011181683464399625173946794705328064603163343749625652737081170443447310584457115383166080433020374701999638892222312850761908453432910908920875296674798711757483083905051194871771916370872408114894232935356438624137593229819560143125201184039946479541632718724471304149730523427478528018280421833171900061173535391774562371112598953337884405511640454171127112342357444630957983634073903491728756045914215242918263687882398563618497414367339878366009126578672036786365688595332988710434757436119047933196183199595393376802632275666131108966376168570311833572286049782341741888877759404169995940277785168068001400978549829245830469866089352830477380177697749879354251460432011268575640734133967928833737735549998992717777427636989482773438811258936304652013959877768673135554349192725760868556204945562486153625972394616120407392726727076952862546697626977092393049202042845995471843185744580551507838926132950147264627095139770445841042856199249068174800429256206276343541265790974937996326976754783918572002917071653618682355748541284303791455399619571616953478153388743166595957423523713362256096017744760673562351048095313546897994642812248162938258724539730246497545077521032979786431116605852030468592945672019179175345930266620996535964256024872350449133741046348999912841544204742657511984042270051974198726870922076681297155884825371751425148535495181932899630810674853194016829067822650345653740278049673929835396851152074010244829444390285733524564172572156857765887946123974415943115215494134524124154676244896101719234946280904381753931323980081664524177482377243401951509404224499942775814116874314910790252909440579580387884473695874775222575588691365382356605729028986892940286417715401024688230443618080811027716620637621687847626603059271189044702461351948025725635544280991981062761513410276281010067554166942554244909248908954393913435192590668747618079233198546149838826273062649152400228847551641198572685394777734093896486862689347958232700510603537746293751009311253705606508958871346336771935847295857751225987173876309493537637980490566120733091530025009542080533707562587987355952685491485875220406370115640547328267301844768691972420935525265442677494767919998086763066985372960677577491888489109975101638999221903838562650580638984154139614453766291941821357980508381397161752176519647804437883897648189393920957740211252366807960837321950671701303305092026534535218871198950720726359760297414302258594169551340315225397649673878056146891469708844888925634604863013236756581671229400224963371328274480602688477547756691817750064443928456139628800797429631994287758470041768286983457101606779044741527057575705704409706553745148078167771748534336075553291246003999539991892350325856172062831318807658992404891568924901888002396466141751177252732840974412702060783229316006864875706603360337971019784141245002202156016692049363429220808721513087584805788103658511843366664145463261997696436225201496961284626857791529542910641484338590120139820854641226849809783870760076319383813201281616644601572654005864799730865738745331867550967932407031725241865293789402585137036546084723439556624556972574748557036091759608905135873851661137180145139416445455610426975286021317276335163471304473395978563666361742687441226309415629297002934323775530255100881150928690659396700207404787722101350967720682267750472788025361780651618205954824993211492934095913286188785797264318150176906865129037054072269248730361652683953971505456248910894269058640492112310241373842611544199895674821827024454539466175097373580306154971990507819004066183316806174068281586883339806191900178321076949814633716581020168095150554164122423197065178636587559162462231494883227489075499577828676502438434171770291147999703194524187166044824954594896423258232289370503404870539932956220459924326325721419612252094782416974823152370476136029467018472253189052002679351216567494096664481571954362411692870208744504806136271782316901923011803058324713373126158252852705744234373948382042216378332077541541248437329951250766240037398497687127213644962572230400138462056457948474712516081843948138908626425779258144175222121902397599704730902123500621645411448387936681464118024653785115119800799120294804600997177509342925527823518945727908873268483214174259227435939923224217981734247325894875539809241612329315162622554274008242569666210764343930109740396219548590585107031379091138533544029173905003720841720061466845791654061505832400424491035672672477333389536775261630968000843909698273421819986405389535972810783195268747808748972281513419842894481050016321238464289872666015602630713124243060048867449937175897297016676400656630431117370250994673449219205298500781466338771115919198976255187242617112536628473707302268688928617783691377947669015357552882877475090955974902429023348343509538153450514188492114333029733806622003425525182525949472203705819192940793695856727264558349329359175482874279828195730117700904500090226309485496463294574347198095909273675626196620036935186636945205831532065332313535599469163734254714227813041841220770963756258619318871624642945125580182026439461598032272094570692176525489364759301638115153977136931998405994388704390127930388657760696063926951615126707605815631606545142048235615599184400574438011887793943621853089666987801095806503344380156167905875603172385689973044033095331017269873698930332280322480101239553982691315812525642412184239693696475823311276046464177420425580709245874035019924778465505631631316963143903154313159052860708307751989647518825801701935722666735441453848364589961860882088500082391875386915133260583101602469699875889079395175196991157689206952171914354580743732841330512593083979370052295759217937314919572152102126111668581637167664792568282417228564622086438853455543438983723486531359005795377515408580809955071491514233273310979232299115006526003023418148183056543829479490705360330643308498155363966350928636309744194520435005841145414523272160837886601336419028762556301094018656323840413821239939285957869093653853562615920934220912737471975350359533446595624495106667241836923716846488479363848175337245673331941739655962856950647810256923410646960007115469695451730346976346555478278711551184016690624401991536107296082909218130974081316624936405157402918299782891861272641883332664727841367426943349780982209786873009665979458914117432872975930351155174257716725830534771416260173798822349656543106463021423045171451451259934536777867353973970400446575542724894450650640967982362658586139139215934569129917924334152406430099762395655717986241882233583046042683850452999561884395167473775095808292981292635029119066180731380937576501484682958890298006753613314417331870390129237515760023863905304982660362145809205319955133828125465242784500470624938837281721129580103109642879183988668510290833606022141725321813376060725646817632734865412178284295047812211822858965511126793011227165244822117424083108615362569875749480885076688657752842017151414983850217779313728399645084943100207582022689564573846139696662483130662715550862944975369314139050947377364340569960799491055822215878860387291321197765590244379063913992064284124442366060477159610094445265375554785767237165088776336912264528097849567144526347964490274456368128976037179382854514391569870624604090624976313482413410817759263973343510886122441607825565982074046230442516027731852219741675947683757011257700940368879182575022677424957484087665380491491914054560324416364366426740162026655708320594895475112802027114694687338869138563197736739327250437093668742212715631606386752656478575617362678671785930588592239802401493255935493552300751894201675338484394365005059657403333567413028141744275046928746332141631937043812565087188867796792126868590104358407163386205958877440622497048235124793971890646975529612822603965264195783313274045322318847036911171011906508153772170097419617640909934712508200339369262135585150743062325946201455352418527334994877369326174612533802470277402256361355714280454216329725374225911726029358421932894270567211595361735253589134132008744803034663462625530497918099203282533318730402356594401893607656490457721881273877850445684644400286722934091905986661553068344703364075579502693012173929925090920982417174576518179320650096434651814490492717579175172201504720878313742833325992318560121985350698915596026569288489498942850155370693951131953879861613423781953185564245436988370351036780189856800517078250326314797770832220965076325248932448321207353297878091018010596762984600519325687152799845547405359779059408755583106404848491473034458549789474424159556649845194259426148886570377304658655923327649490889570124963178356501359518851372448627272218479371720912219132528979499506787400455248420494510731898398042879805222853464950369964595267656336394420652284750229540526131722846006109391391115375902563270174692354728930725719705635624068610744050914061843085186698950657879191839912328810347643762582519038706406902815480858120428766403969011063285954851800799893957752805756179933811420047517569469827650265376797041971030037119710225881101582847553405086031240284205963659114551038990280869523817724982600436211471087633847734660047903018288734473753653344398890651231218366405572770230959093491784598148876591088623343960432297077371487264102559441421588033111303613605893845215301159192338253762527839905940010808410062007692816450748003010516058249731454024251809433342722302513370448779172575336951623679223053578992122586700669581278810814735615424718462235830462029173097642947495464826245776566830254491504519145228690338908289952244821499501692415298040753936839723339036923929407390297820598761719550023472842637226980653359877920908761789763971267545941554140548268260964093790557997942025881166172619976494510196709551879215721694009450525735988730996883368321120444284770118779016655013946513996960163970513985090925091656366241380562170204697462830095540784768386146939429710106575725176095423760500105004329098665359371455661463794863625401374239118955384086269667606171449998937345377131750064706968468835122888049994361438587529097202571218398786992725206569431157608629829350883628586724918816139769840668951641522505069394929112565784545098717914644347351546391363537283672311204243279616577914378397517922094394085507482611451983332203479857140804464820033286246601709599372051400907796401943479882497064985151501039628861655357199514381589406678971535461733144446023246910507534435847802039803524001141605674082647793762428214058795442251248587059762704549809192659506723295307563695623286512542756032803953485145518838799562656220333092766228717962431147575104189218508922823439278209125098435423569700486242423423774599125776570637613082469360052467428896485090971970868062892346533980651282197314083084807349290633247798182496323948228269810341464282367602158670514277009135489251555489464842134277588252195842424179318586344547780038122897997910280782472006973493862740574661318470063798085948308481136368706185357729186943852126956700447149140724395652885616958832922133395980766578780968442915919203471632634986638767055433836851745246868192101238034883435894988931011666181364424874925324386941030202871542274032705439351497920491828967753253030465642035856021170777080564028360272632267842570730533997357851023887309542160681482081295919955261156173829571150153100708672948816750648857349613199064047878289936363621637197455489890103537128575040583381500367496973400416400512937555787296208185990834309096975732704948930670716091677422808186832838485832159849812087226757644187350252994665739195530849527634175586929175939608669002943738119274914565613917074748085009880559405045881697058461803511506908579055460540314946353091217201711628954876090752542183349668578911014099385299216690378132871932162090257334204420202208194807526547997525283005211560920327717737367741104812744465126209414849405311494607948761200221069891272325024470753235708443859312263754672395777556925675655001996034225962078636110696353710813470955202427318114850717739833232397328332292684755992207947985077954259932369724284593914680628688641799747998217428067829683916606439890419655955316065391862035986842362864494332946113696381753397224386360584640748931464635873478957688557085891565066172350253512254250882620963021182869925765834765971137954018003999002672609406319577415264073071480065010999426883126717591520482185261843635287658955193738154552073846473537005158668988419855507865768283658147294024069983728916100622241669157139163003137778936601518711173767556113178006196937692192935961936838650768273386680069793460761404933282504445027130155200390555549671096711995957481881269856606530341349581809064006728607852597284921303523503455542762954296680130116420969512745761101497171539564192462134127004470546093363370423917584476384282645803051270684877229693645077023008312855487940741311302907646373140924476776695566355371811686205029893509187732177747981000881230747956667573449210684981885522223002840461939611464924048395344136854032933808577255344205169795881677433278406378625431081882811118404514222342125192941494706784655710964742569595637520810729205281045668211731308259362042923725661265523661463261118842069808790018050215303534104055288124382245894867426926767664641817738116173159165255040747255319278253913415614558852307685291785278193813372204229946827362930271156466673372362819257018789809233147413056105399165526686481693952863290099013143027777181554882679665582421668254524014029110054602496534712770646177471721921322026745716713703693107483241667877912184149640678611286859325957165731666819891027030165688176683540488267508028428670307307228562358941320077469818352830046168299126347033781494637334592311852259094793992043169271356639523487058265269775360658152675123190527939722517143568206081342916075502251641325588770108010083557103742417844478022675680665568243460689667126017928131350053721466604747981241806276513619206349438039222605908172389053700013904417549529367537183319079721558157515066695983656303397092609118202064940923289664507077121302063930994868289437540286444532318236163500496295725986382936613604370993297091792937973335611101516538674676808581065103050792558189485804935466482914987219557416628954963762867297822580419101952601982394557665208409268790617695108022328737679935918753975705776070824793444234295664043528633185089443566827869331846370670995239980375644065443715142666989414797831202334137836001068461307702491143357918882736362422502291925194921865438505069045356775572156394756924783488338529906459334791802195977958295227499739864957377927273905597592977225206394693754809913613188240673629966705165340740305305333969202655920726102480142262551810162564383520915675538793376374249370983601772874661744081888043662143596597831195916519961159191049820006400503065609532014110522645063246057059181369124436890485042709457738494524634057127296702282862430820955627788062824858102347978538792499074831501879513529574483678283692263922657908696427457363707666036204825017846114177780200744992307838482199183683966308933763404909695004333646430798982618719398750722086014529314815387746625069354521796392760229391433673482831906506242725006603313149192109398535071482646177102399422791606911260863015757818594585595064421956484818814559172775710906039255791513039655330122670576325214722950542704580074503668511037650571790961980958448679938155361934118600094972125254045508096827169144784887463166924394205099104592482101083825066627382654252093925128453154449097620166317621909877966936126879121005311955710994266683855232018587721824122298562535305805740395883453341416714197218669372172665299354205760591713188464138576497099585452416226909758108253428847698857421766939951302156715806764268166519944699365445608403849465103151846255604291701971906448304903999583235788467561966849675353952349629553230333874128365186671940867604124894808376548808301500514966020548748742304454608124126384555856934377230239770676095859653677679642438323023111488848843539793508026657142350848715418435515221541277967645677621741676406269158539427602134989948534233850308426871356767316363920559444921772802568212657219506130983361265346447538437589009973472835833479052571513007313216727219056394028959547793717514660807607547498025917847276470349936819325253102344326880663727384638600941736884528160158859668358198850423114482007211106441954639027058759444004337512081742911808940849540833519680251582183762855057720853517057054419675577184283876503858845665282234243912783782176194721135319235240059040811848021743576636760447907798908409650595949485079454590040587598643332929322649512390254280109748343971788435893014057039231280307193976823968570591285037733023392727416435492122443846502170392348962342545220646477716642739426084201072125879505454916558747006977960459787890334701450158035054456611299171186434156222944059658092728103681216428589189348540102845294236115313205199700522172089207611626323637684374611874333014903934909866173534489082656034820562585727594013492730641989839257434269328496046862367635112758366907514956016499948765571097004808063508357365078235187295596029706122121259289296140194479361409284944377576453639521907420515459473874966182576878632060169267175012004952502603103257588760603718948618526444950308021705079197648430211312700630009380469357057453259389412315165517967359326322802104433733189061388489221213111113674727987351141217075312696598854903842731653179629071148561977619490728011033100600761734395007965793425247829039784600851666542512843808736376874923428331417672467576486953533894489330792528914185964945705405459335043395426676638558836290491636801163079327378336005429724952829168779505892194192039706237674801458218815699299039122566110474656587674845867489995505190584630786005203103789441037471181422063852847560306835887506759159582158611403546120246382609677094305493173148098179076181466012152862796782182431434386138935648281057956716801845633779766865485571233157827132087569726366340320071946799272643578065579061750978035844471005081310051544007128989442330249894281873212476459137962225630660128393132061957715326205557556561908915874538095857480876484229650004622579997409390278367248667028407779889818581452134995446212382062542910274019161700114299143595352197166398435261223571564826231902965691734879686012713206402324385586306959553879974383163251689238016523376454362531517788647681082396946321960859210922107315877028946452923539221770136426667211482713966696570902907883532797647055854900485472367440917309637745933510934854207913324889891084247466956364077442387157797840057818602409119540920613722911128309782111927037153911786916399141244442190083321039532707662352298060415674584361603914286715664003281364608551439667001551999168661067139287969659353484765121430689783806757079803988186444160908289395710012922585837505018153974199525707649572778826592876894968935652258628681717984734177362531070380985143037490831170740989252777520382076524987938464832464651783042365066614397805010851796894367420797941622119256071023898155843883891003487145458048529914916590378946000019727912525033275187006049262526262308914357730111738379462595820881174084935013922819866787310628099031597588383367951730549783853101770667257679456217298884164406416815558659532017627267861333892341536277771916861447714329601089095305774522331289156833592898445745409286564760077830496920004990441493102197361628417995887292800426961891563191518383419240353458138606556439701169157605362425551684956925604490758039261896043832270418194634572549406411287850372241951992050012628963779749148516800683553265971239024733453041312874330501522362732269292743118288926847355653881530158677653541264045264999102875229906145535533636798977561110060989844885449820069661781283964924428842973276546256881375852236152995019370995943000205720340908766851085387044162602539647161769111674382543369318825923614886584946913115328398018289263639180149483005869748933125797225470159536917174321758478400495815681331188802990261669388559129293616348219321838951121469473973045631154504890198222023832963349912073687848590466496729908958988750316584767416053745360509556834525420761306243967752610675968987434573021591257040244424702761192457065169050363607597481903903154158442576054297054433768056661277536039888639966059016547588402065167132018269851991695821955421857815208434905328471183196439423291305258918044234522025937315241747618449313575114634748439153032140395797353056590115905392159793916986062917054435207448975388094036718003807749987044585726141743499581930668430116413243478598841108477159366326313950318913440651825922572267497365495802082926562941939803588624407419427489864279502572073059357609107688761038347185834048633606454848018456466653742012054376677546331022940344975198907024118102610634913675242767858240028548956111758354628029550999990931741270319495737031623804735365450287659599253143574939717490654599797411769556619615744709982946162690312223466963349044123044988952888576492212687017280674795755804515052617488565285519323511790568492628683156064883525588753456645269360825154075203522866362316366180219095120895070768621628488426096202708921657691827176586595110819884480145656525282021420589810860038751973286188251503689026741246575371184379808829370298423321590399141032113191116261384733121693934172588347723323377415130638959563380444855822325303248219172910072318327554923187210402882708173248028353636256433745504446721161146104045046664428176572944089045289327224023719490044397041797671984911499321237765242522950553341726663744947653137145730932814220400542277040965203006351787422624781140066179240539180126373522214365423207388510736412341691015612305534941794128684606223901574365767780230964814591790694024920585125080270306644149381793934396449397012114832607530102594376389691782276038747944608991853064950592013719172118466320824059293420964715629970652595623987825391597738973850523296669409642022466046899081641149751976730884524164579631924728188690255574132042451144714014098434798362938857831782086600416406518763273323764261212615156218983948937930462175912088563417277378710653705251994482563439944833680847426618405131853698469163919702423601593023111968190571989565214824848201144451938298973208383601305371026555453895588035961028506946162267095311663166077617777485311228514368129630036189004971406553079307446533918687107156954189351572417311385369997284131156950843589981871299453921412561173932385763839528122185034235923869626687164540726760256659494492062557147529772184641799188092541317165704552474946553787468780064539771450598258951113753923400915813528001669545526546616310537845747575924587811568493811642602261100722090222170659035515491674968230855713698553540257461290307952700471944934940736412258909085708035516867891974525823567789092288619427680192155801189485513936049704133689124436537518045433412701364927181334478847734285632183901330230567848777777610801570803729993056145235153187558588621464638167550739371937503891503102036416269781148399272219271571809622842814157432760430705027378860361972040584525632200118705586392913446088626822295595620615564003528079132991730331727981097575799468864482984540453187625196769170975519690781913625620148943295448288855860915337662544741849555857391115819587016942468662378692845278310594753826819793025966199652941004335566347237965282028858660973232405794809742123794233022191298996662815996046420688824052691469483115354787134923698581844084292392399431023940687179194122066114987772074939606921768987394231667603048122365143535548260681161697558981905489610540241677114504316175315546684671834986925591060743742237302263767075927470609855340551889255717103546371136873750733183004416070385603822615168206011401260546459843164797213221340104502606082303889926691434189424461780442428517791123821108717983612118973059223887288783357488037543122350136981565772476363373030023508812125017846018582521601343102852544369683505657359835942045984211520141342094561560487434657592622142961743044978633579011539909048877424676720554920151096294419265976155782438369920670127486078028039061377477594028801888534366120176920528354804350057336181270285155513175608521547797308747143347199616035534313261054964513473857407351709938744177025732345672868127578452134890371916124342973294364792740944261955899353492327678031355532399472507858362324934242987154342561807317197079937080744195461123777911694481899753054451460098747542471235226450394285217544441560566894747582741816551529017486122717188396162721361575307788985540415536262401617110576469696445248769132816480649307926506467667348004644891140576574578667110378242913781467081891645707007230982955927443246736431457037056731163896384065905537347465843436209639209335188715857508682849074535421347179320215959222926935211616142120022664798613519841429392746304179113017983328595036325448153551581974789291938051244355520526664931592218075314558006284277122664017424406793795891076262295531202440723784905173284391086895611732183882397561994469308288296927263507264005339592557526612071178386242431517534550405184212869859752934819148407119099693863231188602263452973560188801891531643820623979657886258203985491343009730411613932416817336992204706878278749090225769230678412597975107175610294334344935075939511174260377970759708556989724993379640666540115041550386034909176096299258024598706902139555137965483823789635051459665512892955261450275800444383997709485896729336842522818493904299018277412719186992768799703766671570463138294148632775509373996095948130896560170724380187795119869830327307090651611463103323942757684567364340362596542932668918142825255632336276425617286587631173052583514240136418561397036711672892016460212486875959987878187741254639590583378975731401675590987953409541200280975760395040935242277176047240395398191722468136604710715361223838892672973516966050972372814611693188611192517780317604980668031959076573594491639796208649443884462436215739294132587271365852187522308424787095236603258172931503879939705983088675976953295634679551719876659616167858133400375584231694930342398340129020364294997374426654598027768420190723102221559017548525736888678568029190763376408363798879267277134405425078869324244480381798289194961872636605934254902506325526056953931217137773062350423008810345446318274640303073416421407198039809994006932038963265767862900765635168310276969153639593774952812253303001344861375005960764566274424800488597598761264708703688239386942838331390111450438515240354977293028047951678515729947148876158774273329251447676898882957763133919789782755307241115429290294100891576131868470661781986513779700450760758406622236305300207575901393489478015414805310770196716305366597900753951701321731227304282386847261406209797516583584362294356320653523438831860122772266178884406492352819475418413088092435855476197329751256278006659572290377798144416292719443148355570526328091962362019736323740260161492204281223969298656368572352647518090407291333236492733247856570402841356878201063971069027151786870152966926365488751126622020854780895588876666228188084693914560292966817474277882531251359714511963965141775800122162172285716154827388992152030936668135712528295486140089901842528033015640323434564464214616146871837466104094716280893428372261011479265104235971250536031008917941193184905691740099814012755452469199819641125368129380495125472684398121543367235028434643120445741981687731616763244753542693964065816700975193232928194739284981522957762360163217215387733730293855941471082944935432749595723818309493321155973009696952873184844761755642589472731587952770737454677771449319931065565973630167741098081439922297368478369297481814373925205724274825143003609894164576076850810305038328499918004852743053684358523059459942386738015413061213447103455555951538112272464754277817991380721916997588474510860953877497283919529623033977419945237381061189773607899642439290335380528650662996086321786860394027476381767570747144750774388257929498837750455725029429289799523274641421387522346470477474909058863541363767454334287625725201921161778039626475744683625773599933979748729819460965888148126890117716427904915911558337357262805033020957296863163947419522568766079100999733310244121017413906197455941630799405811029576869665503224524361525793671937472506521818874433840831066169418259996137565377895689202106102810845438084108231495350256216435239728162765130761622825767048156518561300050815712614073773178737603210490539915654362340685563777156530759267429933059681487394561845168095997194892489837966112430725201760603337122213756302027826811323434260826738580887659145577728451174246887362042815472161295586233341547666236163393391858551749327685005812668009567495898613327794285017719333991965358636631532127565423088770658414528463629209473742435562062255684132477104632353009463391046457244031546968149243466360441405038832136373163497659487550249524746487825543215789905115502104157483472103180420721563971119689122224460349383672597258526624793573617692851548675134479417534091088219023743063190388843749496555987863677345130135799075163563538423038877555539172382054885187172172179740409188685406262204006925685625576127480716093551327605565604685351582466199609117561713186847109355612529298773088854462082673105044376813229381612731598774919390563547844554069434561476410694080055737226508493441695719733714156928519915295382182170510585064557285643905518758675820254625180293815225767054146038481350783104431050690140737710362927775734377529427653478490685375854826588654789338748037973409635952795034957836239503157711678526022862009782590983234532767903583735100874667960136791478529128559519574914948766863493437000064299018805704805259227399965642899425362806798620455431002386267668698688850765894661270567250404311695196094254831600743956432544304749863889629098370018134058756603142222728509722015016272603189799090893532598011384859726328888161155793148956054105300800311833861694383261121004349422712281503303074107654534409334117111299566552252220646278344861033729806264870606982982166740412904855591153603982489738076782005619328464156666006571438172407489065976697730439937194656562862665721589788794771079122917719267045639958374522888309540645062226147970238545522750585783295151965319716989881398467654689273151949469636998427503282646145386464803870717943877332375888343147113341184304456109326935559361058394302110020048447272997733535204412614711270638416267854996945404141314263305407439612485271925929253389872704181769450677576975580003903467355955097296772942432106625771363675648168365921835292935207189864781691401933708485792543418620491731543689792036851587791609075783968996694488437207921281323626984216117465147966249824819403511310687099224317445736789096851041388942632071207421192640225516962500649015613939916540120515009615091804145325065370215302382789438470953478964672512993854001985631000625865753463850587948143920042709586953185605550887800376476992341923950164509451084083017741692442758740279185959143749961122742820148854001203669664952225492139798086954332804268635130006846983746019376331571855618887087023657124161481091464114737009842216990392155326225128243436495172255494559994486336832064903960450520468524547882191897140378508501834625863178870266497102862117046428953487863622859849877666027745457576977543656123420031950471164285656836376426944139023663936830858545564060939046838648409570424686605471635092194173835157032804088839718513450276114205194130014841786157228424585011579931579446170461111277382200668026692988157830707536993537467130831630721216772437861601098919871827256132155191640923008680166077749934122393881582313007162467335461313001504482496646917622819233820073504731194620322491746307176663485441850304438487672518300715502727076476942745645597254906179385507982257077300138871622085601927840692534975583772409555580023360477652131178338715148895157871236446190989768174051134421447510929832397567812636713194091930855360310648586669657227159063007078116196662683949616287796202451963528636350224988229884750131714040326564717434872808812769838292050807070877585900164969892343470209083929021619488671640104809796739679902361696127926289801136280795540877972970389033797645951471628000836368769940788769487486107194340819887734635791607708598507330428668386794058321556749638302322417799429062186051285501672053328712816039946090498716411061562640479179285091689288406309363431114878826864111828900357315606118805220329955515215112192006345275118953028487486772317161422399167201615878811389083807023041822221966094280968800155156991696999692858083743836174106948706929183146616474129592549918539304697583671406108020375320287650507367034308683084386488798543128640508361441821176209151646359658899924425592278451642369917969824728925254620337412225338596052666840444740651586644387083756810761704534085782885605517375916527565276667503052354470990828754301176084633604618363851347029784803354356914067818568137053456676323817026224807225770784022134536362037996489862695895039405455864198210253873805106404128348879881984018460938949840643001028015659524786544892278847441956165384407159741400207208990702087595376732585844842866851674774139038256818630100306224860286476271058498805514570188264081908119197313962837206684621550935247738380305191088696829779008157451344242300020976634427155216271675604644314456294052980767765128294267994580054459095316541159315255846411250693344300271018701665489322227196635123429774811190140483866264536506822877731757423087659952795881608139203708966061310889727612251141428987540041824438489694368917268029299483191285108209391666326254314229593359028074033543314530188301083043157981519982081768520124302678330462665811598451098187555879506317919573674284192881285102627774644849633947401857169829386460800303165927400269897927903284325049864170625484731029079963784578851666454919634817743437161842832173417285486205170603083043575130995982536704022550202517250842781564460081656985875149408959342293383699746097631776436140381172596506796129590481931302097349403082460623890326296251932439768725572144620130708619055595543984582680995497144475672440820729596439366933373243031653101257769543734094012177506882173019311731923448243572539224425561329984651978342872138713973426857875903241008004278283303928349715582636812048815206979262687716275252113697360816145674126179360337530282512194689425077095709182788909060346197428450965356992708389909744607478827041290505009162080401641386529471064190749479789996771682834681602621437226600013825725666576022732039988528582779343822893021786045123885386112671450851966911694035406403322886640384840110101210196441857794759922846186184186397021088839040911813201837931233869329635159589441331895636795965186145673502529125042543689363001181338422936129698401171707310851102850553487333238628998654615503481425978323793992971653654961606318388484372097891873857460711630371836650005517553529275129344757929330829313346309173716578123157416025897299891499448741428956696196793429058569503250783290325834001233608057986404658250579430930241959341189401951188321551521274389464849255183506922248367473746956704733274375498799082720499642374367500683065136238468993807612410028686746970245625606237061652885133111169091802573613676991753063290463807463810606097252370187523967880630963047204939667804407166856486883400952171738810468669524540139295741459936583524533723357028549947763952709060463550567893218687777378971870790705900017004586242626010767071626364246798998109893674415804858561991461651632533307456328633019776655117745649080356679607524057665459519990697239196433039260605965776903970649667016224442638958649866797932432090563508990004444625300486388833885042865458903638974061007873755762262344030638715586113281386339111959895509100261122672654637423447697889947810985788648989384711394543332218097358049746106064550597058529477087078563631905057795879462617894480284080885089497738723723147868065752423224188440288986685767470162786522568520356155502373486661505370191803431850659099672188581136920659958391024801174596424451793311409792541946722782729285581958845959915915644599211029548211793363789224358291486193974587735865775559644420025618028294680875235851833488314497713453973068905272842978712157179960366819190625523289698141241393306932430397514548683400988013412839555451728287552127955510999877791638335928043260818700306997577194337887185243877374724965999984669860416252356722093392570751730341117158053290835636879413771215683323623191392037704413051858736519472824620362533008689373323972979864857271787086653182877191531755503569371568396573566867253521160700830765186531978374116373485223135610070019974859199755028397050474432366741203936911306271171236784273926044344232411598592064692342057876941386981521821881624635447192024983191814481287647992230561781961353830819557829100494510226560719040727803020586579820443593518197865089064183171300920927075399182503806648274238328669516828587537053527371895895819725997301958360549780213888819488676547300499110065742137980652023812627733038498839514626805401979215626405864713509555458581162476779456598615721345800602790519282075557398419238364917233179102974236477263569071116079283170628245995430707446055823845703401595860348780290826881282388890591427300018085343466885809845612509908355738357727080430851568173406728299042567777499594004770291149078241214638905980678843366018778448571056041974771998843662882647429300899050412489816603184751329906908512285906269052948101927592779747480482414437026493415226575120096364253975087844103551806865515635344699818070877515837926504530805057070958801195275008973452538051997026155311390138439920689207381728121464127171506311047744930060860685180899983355192898191230907814002370473660476478774766282906300094022160820553249326483674663921742849930252283596140386219053982479522473769531722509536476231387413596008314597327875145322150407357568203658579841497687662158008624135555409020792026787164269741991074971023777191354540360448256107858917118018434644337355274854350235033650083390890292917738321459676227148681023676043014762460247241690174948490208425227288870766621597743657195524341963401777256586374273711671469388814033193005306470727962529090747529428344327020849124556760056546701223279968306236591596701346035668758558711883659533979818918997928131836567186383150390177712573484189989041154125637336592945409357982491293809771369507430897480185387529575207489948368239859780164187494030033879039829726584268778759360689720684599054963412378360525068192759498550934024906344233788820185120779572946557895217359892054614253994604535839857230422140473804112756001674630498179543632833575529992452853916107960325827982631646371603497562382479957156576180584061675052847887732537000446916025681977224874824701047624687727210550752754147108627813696626808814832233039978378325552632121710648324783736087141760703528348230725498374896851881555267994854306333923293113652768770471298675962935663286384439744855608359533449428640983133243850121075476363416504563024220911391892626409783079817879927947212895823803638072212235223574307280371644865047085279141659284449578624850551279632047859334832123318202481757921705099903210076552986019898818765466247997299275873239997302706890164569259879085108780389126398280884791236378188380820253927286477754302307295460874442117757521607631395296004964240448866021623608610453766055587807138836268773760893850758380579072715733023383994232504759437701832457857936294254055368736628752095617224254591183718555745405916519085422119637167460771972064789308654983098512375329508928689210011321095861646157528359204072791780142476527656091696256722848507643948624199686334146254421469507470108975134390078034575095167801638570343171329328899785133304782167534776635664483600086111722721470543312862549877360783402320905587912447910732252968038280354063945857893333080458644195928573148770031915373828201107994966863189665459061713367095665563771578961919028321708515061414452273919823543524342098858886670905845285234657444747333072210040584634848203962237389094651816275640454018085928695403775128433545776464863387586329331532549892495340866092120429899478483604298011298453185405693713787687995388334897986387393138712709878846728796148648036160465343615107526249071032134337512407488217225462190831130622914593752205631161768621032842854164884527067255099193862342850552279742358118868664077872742407802695204499645045770918763928974422865888317528723093039201404424441472274115567498615540263136765255169438847037999763624496014085755029068601331607804969161210019638655424940228333984777824899607519943325204099169344800819714518464100910833563366574968712149295838326720171003649625861501687387963019250779844937345057253936679041550192591306349765632976164828655352426389288211825443781998001676394020791887943374354953100562731110664716925825425973349194875130959955058338958524167796810768727952420571909390634721740899195882836838223100746000802652056164204956952328505409186371632484546110454052313919882219216841157153162894017480821284919660584729826864493066037305280567332224097586588215181385204853155102166266236774987079100839355246648962803235137967959041175509209320809182082628975458030801162790357493681675067044667094980306576846880479684228791237143265115995706132885389084427734914993762655141576349855888474463781699135773351148897505309695438331881311268303228524503124344890920372589384946092064740558606015166677792366840996209503376835257168449872739233478411418750318910048697673829735984879045581037635496772358355718503323271045113685703176478138891954686994892427462666501302832750396261400474112497768038663938304916945958505729246966210075627492427353716575695323918175783817967302334036554574742746514361497450480756355690434846941657779818939956968850541459541822722084630704064148950843502937884095932597086646725429874384047973573878952642971022811890211593352815330178025840499270762881906054055658945131505255400645759038520389728353065343288417362954922817854294435204781884171070138281187087467107261525104593128879197202897728383934733307912875789391611131106946368394219343733291315529154942584865797150173152392996460987412516197558822945258878646304366784286537348455407997827633505295415618560587500822776625903435625507942160370710350602788120571895280479287874073818193433067819980253367365454309198435293185094293490014599234250345207206114137787364919419229953307538443176439686966692039301608755676441580433969022770174242906265031322070419688869693753057416183604483985330603890095402148184812653081366578766223881791938831188741754284434539516701939871609810372855677776455048539099774687260231851479904946852600049394094602019554418612959275942267488538059569777384655148847514896545360586702948504188531017064000827032172221245455575613715646074004210736516674369999496043584102866267179942833419199811939889833771409942041981266257235291067892546224457728864700186497572683827465052720514628536795929309285243743218205610253236280325635295818156930509692070906137348115668817326717550830350923289990441432140204148992847925589166508804689188839081559800098001524030520917876054945327241561303711581438619228655388413834979197429481011446391815636234287159624411379530756006423713096771617016069155260603787703755023039426206212070650688920612033647331905948330016250653928223900669218238974037279798815010936778141343236193106964849665446544709216808240589499200858903084483080612382202497063669712099454428441097927957205730153843877756220831972149826380380261451551691224164186844702555335117342445979070930134187900670399513268070000881629831492956583552558585492628167313550339676264225257067368155722689613907810417948099912686542090022846187869990931536479441680475245355166183770849247064083535121527961311700695305101012826105474427236663349923919053439216427450723204041193565773971917229693098954213277869084292859205467461373143021364380335702689495249671329822793414008297615218832454037188064482905851079255482714173092417397850137133450025538489555977463874762075669768513987401064782987802940460228059433309705252312024765285619106927256334813449881820341656674520395542162570372005235477056879127170216631020028166832156932303443717526926473816449046334450200143879621890574410899598811421152806212310279957730796157429487426178399681436910364526380807117562703636552283568915563260127459139807690587674122408567920393418002222053876355135798345225079464160968169666082373625377420376293571351475703455009540110912193058085387080968985426086652968489713896267666561886451239621575083243121620944249695018683998882708395876881875722299672000581101691553517321079986102877980784930818892025937638475350144168705808977130486610460140235458871587717254798479384421700544534996493620869693071079158968890039578015735682798532202232991275068257174151084660873389658981042545107832449972783772306113741610724516211593072822121827372055925381250109947812111860345684262768497596370594992611083694672961157279498817437843621852639826894121489405779628145408607431241415229438676939936293052853255830226932526956337325677122835779429109095965569885011121862111059482452202800658965913363876571973563576584050998696212021275935162036785138041531617177063322979631770031366600865839864806202223884801630192071084755591288427604123022810221516357729197664091350204047068448273205305433280824873820326562775359310456686071122951729925891646602793908785366633272184268106007765250869990555837623538123677866831172934461168693317606655476748559502872731756003760808952503347536233370375418716157226460212538517609058581829166429261853096927758762355161951825521897158465213051033673366527216882082830783522457709818079815486476683160798020924519842557603687909652891315309139247624656416297622995726912653505998207110772787722419187773724182288501646386096864124615002219447141393245995096194318822716987008732497448201157949864386196133760518280384727042688388607476165357897259999400346979389798080478409252958076577520124464980592138849463701072071190568315720138111774613622310639327014633622636469065613257383501534408303671084746044879330953052345028019643517094436411795517174067957042073405545278120302276978568356957813518161244962344819797911063385845950990087920577594401661264657872965672141788580247879045952454836905282698422742075034512307492545025664682107834160461057813981339730633646618125468430553878564864963913937778539939791646133668331417417922965549018052002404418715677827275107257594516316385202483310361365001343406301594344665057005194247932645159101244216053802567362880322501668369371972869014357888316707214415056339234614374168725582467512800769003245666643900525521416847649054610508618544141883992245578530420520587564048283752951097652878142604287345719695686031191492666151968234138224474394283115095630483052960481954154714655429657508017191321158995602814869746780530354321200471040277104993386604937337686082430581933445447207521925253042748322663390642582498842950542164146936925675532049807160044465684823591751945631721996992262714776904727923644137878479867470378978827816537873036533454457392858939296919051040452427453369030501046766825108330396113736827762304492769575580459894874883113807860782871072844823351783494011938013346860789261921057635218336805815688340478926083044308213316403475476287499350362941998880969362333275076947275468127310640503007615164900410578309965794094326522510918314314640577041046060139297185095295011351306924506058826588092236575500346274321195902256829879789977796498352494462775559416179600241910717919247290160155599255839974716914574343801935186021940035376381277072164949416012878521888143367876317522173412479117996111517721416150758924972275007122578710430554169110364241039536549816413808621894128293334757701979709440595164068130583054824307209616830138275495676936271591750951421555585042574880384485436651849465585719741324159097956798448693139850790028082556249151175254835612842747561962521546513011667970398258852113278740958548936607296805034205075971344615272710831815187552389673967630677310628433919153285647145233298466456216623533444035221553667712649905388351939504560776712406369627926264304367572548489972030675070704868399318156712871695191813614859070947446858947877435848493909550677331611700362545392181279575961745732296798213478573545666732502444321309873510236638811459863221853047113408766539595742546085117649452707686628847407539170639121899091475955215634140076418164437589000441787465086824937291215279200197672969383905775157676815945026590038985091552378749799336850050418037676907503117313947980733431853716243966959170889244883931665061231592608976568386274689907069826083103548566099337508764098331300442646618470189848887273189212269477144465558199117258314788484447357271124971241885215780356253432939503614047800298182781765880042015800164201240083426350278983078435837665176328932431935361796271467830178138394452550509927957811423994507951446612040257563554726991630248834641579747644743622515375624177921426561159476014187114307827686910582154494428687866619864050002119049980538030303264593271290670326378440680376189672116724176573559638840301750936376951474524506223476982727413813392543381486083376896248016904249154112489868112795381098870503659933730887434678868912619282719470864304690875361872960790190964648853908020278799405988457503165693920620031152336551208410513954371944569904985266494152027406016942764794829761965362193856161028090870326159674489512098114759226180994368647540249630405701981248855389194538350557754286200469959337746191673544528444844062821211449368523114256264992617439541308975117509005546573837208074153930128186280248161404882426985448593059956505319550016581234897087742992800871699440820066071745193025732344030996323635703961867089974600282940153152290873939315085806006570394968790272105935168100256290380938555709012530595427445430782544675255828535470735792550044502231972507114506705044774470400384143260907032031944293238266425430717925888841540354094123283547015035224807494948866916854800601377076121697575899024483009139192446251969281311938587994703827391586466475847387439769645703453392691675158075219063704028298881630675569301562012301666078929137843876571511103122163229227219132892254572119413103741258170709692631052968492726290225170996906918555004846200268876936940666918949958177604520259209680610736664347534766068269389495374049996470305190040343773303068830930680631612215555066198394950038871970253824416077201988815243713971911071851219268932471975411980006101163369666231420116811751810463256982177496429305651715774146338926436486248474340280105205940376467781299588227782521868933797718312201410537018841959134846032926411144863511605405178492530989276447429382608713604796159328771277017005277658731580893452863759638910586173441614754304129795105585697903955588853515420490375368288144820074920357081841931163805475223664938538866592575429607366170290696911673080615655942422717897757409639650388844607157941864252683869629744789311207081161829916599976666265332298124366949447572840052972420277700074392432762367758596711647053087615912167839109231544541059912921632775352923023005899031356912874093864211718018241442421751495982502723402149890884890247501819062329172973953737052242335168510380456399609250828066010031726590795992567855513718276028541251758331629340778718726778591520752479065101432622980540550820413967418104234682275148564204074373774444907939579510871818092604402394791265764678659244879950656673852327187423974618117175341674134720750895233330719397185658686891797187256142177441938696484767044666160070214301810740598755759034841166527091535885168440304113088920052245551982408786059995470278877993676384709732439427065481203978084753675052842557837176565199502489441948590567399782059770126849025307161644595874090079245227950389971064511827098108518727444595917893598255219152760971060002481266344415023044097787248743743043312877283622099484544824648446822600033449180995685155848607511068245320630894370466262142361974812276418012277705684616151642167571413197267727903762842321315958977427484114866350824474828394436458397982202245025168477530080335099842712868408134972791104388721394848124817819574151716777955122843508493563335339912093376946773237266471457097128922608378461408937504197451538535562810071900542184996691161636167492824182946165083274429878808836623327241778585391784727175527765363607986915572507577323843609410319498324022411792699248575230445676226225629454772647107641467117445395407192739338997312461363947313349819822801453492005324730758398336673964884320258817243475026418139178241736103988742975209340036992226398237030856713932543910149561849521718231125597106612550751707019294607117885961114426424112032520827322588049778763841398292267128364566585905763054500799407623947225700400028917436805298343917753824967969434588488768902359275945635159667526615565354971289271340449963739433458292001298369194436691885114131946058498629038463316493517940062000603712099862639573725416130926939330594050924815608312765025028558197669220304257182168033681371321043828411837262850279724228094449278788810872471230229661724589969147241487737800507911618131729763837403018241788404937210328839415703733680392487720528741447421718705568196674717624177208233084590829846315620947749682287527925400168100711617514229803744609028493981724870907510657104758953416335010669105891744884651016085770165279109074311133601080661031835721687413415986955090091288504677744983166538362382510908390723603190314398128198669745571359464696250170730850067813891502661035998363540016463464076541936180671671687412355478205307369918112667671277436539110306649339416767839585400554546770130374386365333259825003110529233377626163305258153330800636622925156463995115538676802699300297628153293854693966097775866669581602046515338247445147202283829844902663894511236009949434516203883508575874633348288332755176386912213267703836837221437066604797871352291832350518258336331757215602706884652645784135107673604103727605627442996519300768965424385098176050464062064010142179697475934425703666222575739506313625678194481129773240442779228462361468311882498511074584453882528242897885149133844118806578962712434669156835924055802300407595479542401274104237353881524143643966766064490186929315721715311070813542826064796759837745904267683989341609357111102827726469778126202362812754431357445588682603579120453159397614541980876099347619279510008282387670784942200684818740612849217838331606208024023243964857143786311034175855471787395648179794438556370787611982604732757347611506859967060451105522651724408323038210475460979881785114277147996424484402290259595188261483160865640274907518472515935579996720333889688362630754005608720364442872159264733138048276446727370465286702942433908320257082604116813919718683580712752969927785220630306177542683969575880954313920973376816698101510323553382381966799205416829300892982291010240317753405132299458807944499642857520128973037234427773508608338108955188780784449001738635250862235105509168630910775783722835402078825845680610435226577837685960131887571663277663575193185743527134894902163652498786128660946070961643688086879332289830668799497658971491300792746528534379729224249058503933285559461165062609355251145872433954108881549571606290236670685686713688871611661816691399702646810970019904920891241910537946081950830949377568055788395229491650746197880289877605669433680562821582521574502656122269173467026003720045452386758178559510946835388225910380655424191641311953371000485862555127588101064168084909142222230392395964791517926561576892704871272989716553384514983389267760931137459430831537221698024284597860185966924051357303898493268609742581195397026315635683797238204097645563885809703883703508583543756528779827099467093651475092061759069082735027711555528260038985569908865695202854098933628150612671227704651686623739827728417241453667012081824129391411940715740479807967417117210270119692045044195840136042445537336372158129052997808635361488557489081913051542794956321814772330863132595864206594835928760769477202099768631855006906495348068528493129384491345026572929165199121092684423092028080861250946597485512450264444200596621524080218694560606768913274202499263813439057055982797101514393188946903541448594887735582867381338336663886330987887016708508564657783221259148497202136771195516763462733452357006962860800107113301371413719669071911463708775042313578094980377640275375459225696535766529946972604199034294405304091536398750044586231698814645059791968115446053682844377384107696982534263701956464574135498417627419931890878638758166525784072947546508848707308293748953435674680283659491332696483665201464899438659930118750899446106499805053483342981759355574663053073457222616178421258928343114986524405769892778100136318258842475941414250818068290568260639331632961832542260841940351386507151057155034393731630195177455354033812212410164019483618635164020717083926710467016187535637458395307798624840757118960752269035258379065768739690821587000154638547106964148107376070792571945302343605385487213871294055119174704960467135090316851512707670335563464492062509026951209826942463201997323225972881228843734140970108132130471420179308350583383681064184274197111977234519848119985591352860628194660970932190712571009551486795247843415798768346789944303813067031892700416171756255096138141224750065989249921094557399666866135929770885126334693598515494131920159311376718888098413821594229871910345649512361930462190115934234955195893130960159793025614954529659839767869780226288493285203813663230807623559722606115806090309413046422898116176676513095936000381007555592944401802360753686222135430461235452478335459939131819281205754554959926450769597931583632804437004080335296125838920468880281433843445053028176010935359091948023521932919867073854535116682062208707027193244831151885447218428106964816713887455528392238109744797551727588623058168591751162440094813973974931970535155775734620739234110006000276268286871672594898051695108091553446678263648368969783913854666528913148061526922756312519524501666189313705225379254248893732817935636935842634429364232528547619490350117876731341821003152610091771571340899853340426896945868232859022859275067189905830105168897876905019306840996664931606853783593973719903706818053037580570389921273040934224421735782797777152777295607624869182313684011574531635630849647887236246180616854264171494620847005123353177161394622154707154750183391656613504525996704553277564629269860469647387429675721937180503345270546960349297207012187717843698968309917376993469933410859151056430309799756347726894701563367813768478163609952411946649550477533560633056177754944211958616970384186715815739855264565609477444517637719374933896070170863489128670666262000363234448102114656185718502259302323011773295649139847620202529885398262581387774280749793236834477246702288042388667894080801267513790120876220081813478404953439109545728026309201852964389595040476823125471452597181113733819404452287530496491417118221072258277544204114390534865293653921105432431173272878216340638899008630369726164316721687626822997842585150776516337157366714812524932869809321539731504276222101693324053525061788339729047679713531606339279585959598796481753578005065498476027037404503856443073299395355132362903585638127832998912632950395321441226807407609998483127704514206566197583879242580769318780815023569488299731160318257259754518799499410662734803765715743453585154338307130549943352131149533829512404514408141438609150753938345394050116023346012387985928964677906854933022860296814765333611007075436061913288653465854554719492362584194797763751235741723752514783606377950545115103045096668946571141276055043927865221252306043826787671114374381879729157347267506840788916915805480606845261232224002114425017683660747397532812253490459134039712522385880838641945987331507580237707649754047788590228529028126656367432211142870852707992835154194404521568950195225417911618169474804602379824870138632739467867860200273658047631401575318627713919900130003151301345283420408710561178970097136352860873367452833056794453301192848776135677978512666211040486930455293026531244928140619350464953993180727006023362964782559828943348562566218048720652174363020509159572359981989164515647084607574309209900460153128679212921624933969472545426896438065021379219239244991772614895087298153658336092187510012363953340753823613968729421572847773778467294254870866364692342662452655961128260332915927556976672569051994406263576160446550111449719128208508910321938180196073414469794344057162988118399655256767335339324673344429381908012016862507917551532247462560142327694288920677515701994851854528618315374274459401686806666071939649608051886565592466640524210448708600465424810724052436208342609086864479017465770385930117047016754304232141676579999420134439742899544434599726315670919259236298372450319018637248149982634183845003370729076612359516628940592054051924955201617057763197200467401959162451353711362087580212367044953473636016636277469520147994793127137537653169985473040601243962203013724099754933642373272497908876306063388121121686445192543596048710377070699456195577043875899132881432582236174565501742948011143742096346286869453825354052465483137918672679701650108766356357945996785028849236639182825686918801366184698027475569229906104209735885600941126568500047814115593729608272146897306675042073160540328527333645716159317038952357408966980292678065079439507792024294327045495645951671386779695463931240192347101328677348368065187885733177582525923360051109065454910810631562077842133693726009644241327584314851165553830571414815073061685415997984084668795339788987703028731674976594137338514574278811730934167551044089860208836122555275582473327326210506560646600729543839221527848320067091172306311302763352471669027005265779703164043611679777411596792683484429537965157453620364905378027403726453962814730710799092105520416411130697152960678973172420275797553406723590596508562666910455394350705264446828633802879677939918944110225824107974072153783106715177957666892660320736374721797073335230232562528959703878344309509561541339959928796702991454556891127884706676772844658921304047621381806539444247757283329241415881588717191694235359422491370103554539789095439076371163935097701898801468186591438620012538316880074179846820813895847840822597999777838296509252523480508789435001461171744919577582733638854723205349554466078344583402924556871158016516491000281348957526742900204929266026146890022587747681429562668859247699769308045281241923529935692328432088512150899732553770577569590771994065409432791256675298112709699456408941291738760445665872167480814575910844774010722979756008030619040571192642412036658125919972765528864163267193266915339287868232589920695320721231549792167941801777360258529345784881162038979342481974815720864065083907929675155700374454658566004332749637990272952963240719678523313935641504913563791705707804444049583965002968831583132173690257942442442430725539986708954792388962789241551782052457752269774696489790755255821618816785914874228265129882602007023319823649212479507791565960141343009041894132574851561108693202703447140774993112451188337732164795393529972466528760736176732946515443081178663573998256547684764884029255730423741808120405907106788747556388881491239286582865510169982233909467377905495047158962223529334694883310582902441644613766933939898759717277621074610848418261436305242675860112718968817116716563744872265965411766099909612934807894982670985036755154762032428298031982890035254473997732879208373768849798567357622900586273632575781074068792930761380440427566870955236455842025105356962681346262640400540444032739830522819562297080441974194681173744961781954904582409777689181375390905316005496096323047228728999865502579165837012551868898308731961154273250698411756085740055775111306538041455600311516838485366211889356788632649150472874937337040378113871512636198133887569119304241054365085283335263866768350628150558216611291478161721620747890805496901548029451445848194529797060983262482532900449071967361039627727311814642266184887109026768041559957092567311428361383167558247526810678430859311662114894556672137981750571887156019040785913582845389822840857471495030591341420422292673540483257022722176878266545405356283089794204808464563196830585429717199093308794320554886310923354445384679232824560388701117777674969960000015349765390744213696195336580800715453547884205335617189113088156880175740646979763890791944297251507919679038327189693283814149022675519154440132662273016685331044217959374049607378821280671297999555371595387675995407424802367550590712701243609849901321996411993019801050562113859468276443878517918200007055469851876220068302026627931653642268647000062587967656774587784476523855543412038341771167342127223998387696762619142931138865514264427333865666560125656383667477356575719966505008893029479663542198890367465170132755254938998753744157872598216792143256095632689200564978669684816711267485660395062004197455889200084095181571018665891625958433446725416532497578986577839861563585201144031888254775918692541837055509630304716091942235155947239816283563251936278543452911304867028849437678920938240752428439911810659618024010319197031379938626322753081566570359577052555709750809410422494823786024705250016113528967783548084171361437540508316149129202663036114183296695052886916656850788994364521351020969440312334072846733979235306409085169923868404204348005324502687941137021754907537523488615623085294556071060276191268776407710536234441862906251433308700623432491197594672023189422693496703927033319447368177866338860268760891915162943610370226082468839531173410826055808080485024087088171018381615580265938684057211761268174432223762331272284537058198257363518747505011914646730218010007504367584548849909984176421035116384366444427816559141580683951750312524540552029729216957530858565309380255970711717410585524194677032581069823651789637417081355805262838973328247226387728333476307937086684906828858378596492368194505708097731860866964658464480346198894381292938307217209376613523077342786192171429570169515664831966551218586549554956363773023180719032764565943631421370139243294518635141826182268573368261645574897339840859290942862602667162876245562121264198264515377093782711332139638092208602544430243514918290964225070873706553201029236044846785087195075307795075823134332977212951766196562090087512307181623371834398473457954605294588578037487228042584940547684976747851731312764023866843868878865805574230136521321163499111978089369030677810555960587334824488839363837011478905415955216242382809208964321508925968453293594308803639323287199587205097435747422669671005126681028632721879941386687937835634175614039570225849965140465036720680839454076596839139792311354926611250281147726044152617233944423659418103953246562418854063704267270600848662591198087896862450655349677900126780254942534730146370660898125019413796900344927641474684419677720194366335559012071856792248976360316403690615628972447550821766743200661486252196496554057801685360166770433751402572480415049497393929985442168304665694690635765003420919910995843639421523137051770176812128981089170799182242018744685381343240139153295784988749741432082730568668214563472743108543430950036680892829293710133312300809554555537940111733615177583347342882590059788501073439696409294605488953493984824006428559655653870004534382619477133872639481880564881617073921205058770137074410042877036808004179006740015299937169813147840246156663654544092952545937025055884604863974005759237480607959667793835954362291942314411628295650883414590064549878732552488212951792988525179880537663161042715575490874725264651199290901935288249263617542141997164961483100233809365828821980913136969272735111771707058120608416313339242387498028772769857331466167846661408645494492727575275157621848922229316269223403849935264623012838684566763954648351671713938969866724180090420834080124267478570658503027046403115646208268071966280846403592908811604848982040414167482751539960559262085564861837924424081930040874256529434115008116649650301878215056761255287585678953483027615822735740128275663527297266472668119283782193695991995564251026416166763653180298036400836448718695149521270590624622890570186684017066834692223941658190791716513936615987544040196528934424889992532131388678629671375322420512004509113796049573817747594487981796443171959420163412256523522580345622814302449317916459162039210259741972428652470155011951306840904553491758575540947621880828498419846492061190644204095847418394118525145063673724967697870091934467995117484484129627468664859729788614019056807382432538284911508885565226125505802007557683304799266598619187668307295854596732283260746532374619630220514953393626986091941248876120775923494496276289172252769807687125604058116769272988446534221000349699973795707083237449109727434683471946673561875785853504141359374373979022161253070815226259866806427617151784107317073724925928205737887167445281994199662121905202407346642525460215275778528260539621758959168778889753698803689434617805887098711535811334606152205221458127685547016605853815039549131602971024600818106458851042848713470287894824932819539523282452908466536834896425345956943701407486089427459039974382441315699600893592832128008413962706284028363999443859800429576952599128074351541359325602085932086977507780796285710396251122265405507347987332968100414359106755085217193045737980503321345405079376992888774587074689254576524703020801549468480779955519187973040785434738682751554896363576491753556009367770780202525864895091940025154961225182270172235020676588814375805892860802824033300581525741680123373293839091768885763426331962753745576956186091102731714515900065906557600227953988544502032089559435818899017665265205315918368872806252915131448788572446595822198507300990279974640044249650117006812737755427758882718256689302920071228631041956999385146689331351436949033369668517446693605995815901693071516637894806999405290567883906915649518015154135399195386501245031995449166138528246916650271343970515940480703120253054157758979552535765817257395271298233731419248315275545535615944748022305714185799675727085537379851370113432123258007705756150821787924173977504384617303966615876692814224603772490732442294003946720448549226635426989771721444842657993098557962659013026578897562252750337139199917107088508747456739214005552798757141941485064926336121303553578406272344807170602883572409438171939997334110945473645490938303101229527081738637961388802835694810781165557143085193661052616579671074461482508874655901118213075779539628670925942428104755267730827337914859076149390198471861909498593034255568483554369380430094601494562841838320308647422073334825751123820712412090142891519945984123905163902150770853504514410321119320061643103614460314054497736467028284337443127510781722211286680856180337124476333766570719050863746206253383858852977709130261473405012249502063302593443583081952494288137720161754047170584571694111931989572358732909930463383040719268684155224140739552343981240460809085932350872307003936365568357438155455563709497094728142402828886083428704344060316064771831617968293326004482764831902053667522886506818928736425355110862601377562907771028405288225551948343702843553193150507040907710565556359970372916962698912425983429924349316896121207457316403118328204632275655691989341158346498419235627889217012459787046323431079001824296111958558156131791360887030756284841080893737922760334322378988668235283859975209364444438399460231416443615977394896032634970462764399551214688775386425221555930930088322308346240107369364827721086823078790044615878909062612876180815804225648699865644810592455151626493667383810865138415087160262563485237313699687682721799839111045765000596346895358960211065925371272815742952650023900735511369484920994543148116567029378373791037437112832618565213247731641296966989650968378804051418661631956465619741754007116419166497510697076283522819433127301069138135820081899844364903637445884824240403817557272409813917081148791012101537328571222646222557337640420192554199357422629689081819644308202541522988048127111684275974497609435793071161886292416121201311506103665050326695096128015105003474155397269875513944724347718509836241945373865468989839303815243917065273009280555570900780751928663256348358998203378084729746419825509170972166182278953719225986178436460087272755714371115388899436050157858872671215580249611217462352997771093531333448421778021852955607271534953674072230169072570647231443827704098303045086500347343182781182147676699641610657908262224720479376367458455284471823316079109129517415016129354016207921810062378349527848332228297138705241839243206338842249408145037953506355684273415183901430505973781700641551725783750715168084396752924885825448691844535569584528576607207787283805988424570239913553608657434933676075986518229943353331889944991426655613477532575465040677271022917385580744033640756432407193286267339074780166378502756372569032958528804676499127340259991244495772489439381710179699156816489130211257380837077367153620991571534107982870205960063181443644692084178274521299193440440931538764920444361009570654360157344786140377183629490049868166540630911726263364546196459911904888962968647968038301825584266940793099585335002542464966075767692061954700949832983551632323914728295972881728355195477877068887744602862345296374135485114621476133488105196608900531187766895797853371335575338727515158636892272399545705526542749920621864489628049107723558844324856817363807492822104689973814312115958383608509821946735261659903424857111246034943918631236688580985785329447666549461473691403317728443478933069781328398020129350146303826103763854194703769249162086987197289066281852445443979376124967520127276716904781296259350504779711630292566205454280477678776227209373238600400278274405353542682340468101788028134526465330558991610616821364295169176196673979153160484126357078415238414326366161878522821172943890175038348681553113468815591522964001622514902189585291156356944796640119133763986049848956865346323573802129347448447518494219814692229547313772482608314148005794127749983157082198007385354572251376569851144777642590282109216609100546914876306735459667846981574339867070962743370532850412516587603972483879393779989727568459486507112392069772535574650782276388549006225759010688616788678036898212045510600942071422305769572633287406043437278374952951684874452727799037564718348126548605761120611039288607581372776447059316887761294423379463804543868269749849862330195779561048089502524488960010960696975795839729954947080782268827480189004431584345226819320738479177191670394982390031866042816999827962335124404013635622176462135714332581174343197393599232497915129180014288609434644466472360129402202473935438077150031690321090168483455915499068714155805779719865882457303919344895445614656689087732288082066629445357058353510914006831461585207643029761802466520155786160139851817911787606605251496705268624366649710267201367225169687430046063455838382407978255981086710574685790667938601849385019237131680887297393407174796499487936382882571003635081409646897642278196992568143275206365668838126143635259103690787824755931053300709160689665856929290150465410394433652668833001934887238638381413377244442447257673457104436976251024089339237407301691518130988434638425359167604852149527632327107949828988613759008852969897861421309199233694644921692883684701243328569126672636225410105859646575493875399230476131330309387523777815499793040512790060242984304552808154074561690046051180532913600351053276222912274867113291930566163209954071190661246066547474135384866084356209481507119860063398527484761504466166634866922094207456957168249845842367657483633931375204290980219086750171882140856887559980033677534996074800562705806214657018104776186258455268881901872535507038849599624844891161741738897268882886787676234728076711915013314194170283526418031706524249280460665769503287462873881595885224783429075928302738702027112593410310491365974876432200073441996962283979433678101146985648367847045042603273354021842611897197595822008591286014940244652245815155751335556103892755653472112939254671460758843879796814112519076480779065902631671858548298046636893375003523153953759541490795098242127132770360018525934937761525009031406056635485173321959471534841891069578981627893556591842499598275016017435985988147444390033164807298210641002908509301395150115643613144890309116133713717253624911448807913264549360921062102333486411304201935241297051426500510344191380791797773127113086078076839104929832506952490121353498247860756718716284420469556952211814876862626860201085042190783374623040429683530170877851935754011508286963250071885474004664087960090195969029850472938371410913554307304947441550279292543866215207608660479380823066660633318974271842258771305843127824614730572735085022488598610531171235128642736147367760508051032899520392350548405179486172841970745353114578199085804457857536455789516747771792886764871259753009166999687331487997017121752132582100695595486719578523819990287790570142971195463869946683915137314427157989276004711600990903228737070737364409319066057103175053304640963196070867441432051760320014240442763884480015443175208691085724582326991470840151876317172109032506725136035664785009272150466446164334792867317482545507644633604958011079308983872880379981475224649435703836795554391712580936586119398539398872637781828621753552290566334938557722140307423784614316616988221017671071148531435808922803146607100131525950804149830488406933659057176240321580720135558765626352119472453162422725417225941337117390616724620119205002179293914585687182018243832753905854355937740688087742272015799800944099463394890386852507775928486695570881524381914844363428068934521954626393155652077603305627562309453826685712256926366399181482312746866078108818881912855341314133969575585622872393888803412169481398265725753610928128079434751196571158340985804011010107142201049544687459098419749173146479787996355134801763425813694131710457866173110103674053480342235312935604906675486040344150549069289183416496607168568215873171280195973044510810087722856003008070866307270663883846637877390967870111935227615321055773797597946810454287989571288310992109365769638047498198288055665831470681180733049927698085867440682249670370204186287630414180485326514681537378557297251835028841491866471282154194768309439389962760971288531974748034727568299590388579609008809657860530683198006427666928859369255969611388385339287460862712752692812262972996099981820531974373715230629147485162245233927981218460226489308882140427150509050909369249740677140766121231188140154211592797672448452835849655666066323276907612993758510518153905092214992784630841229733364458778162114758993801078932367112301171282566068791835109569573777452433826661197491425611099455255294112392222939899754166739070850727990768149993891621869347790002724277333288279737548976508319909801351353702077263417393774221471434647699767045377873515094119111294939760463944621270423727826596037089060205931464870204242459564106657918933901895557492492694261344918831554742752783429603674815841093582991904349098448539843468806127577762996198882283163179777551275354306267840239381887375454603069713743021752304914371080998479401090044478508436884081654411182584528257327636048107416086486429174474073214840652011418771565836317059130409281184511048848644821207369864309452401325643279978916556851412493241273818175112271907669440298962228986040649462954069122515204281704556707986151903460201191729577318622253991073926496570809950096764858416001617633019156743855778972399474519359311427326802572650085754501980407421714043184325000886208481583312786171106528957566552939491708595867197004666548066024050413570632737845169450840986217378692388692430556405059668916553675876022809437164127212869359628555325076362406672882135340398459610514933172627856827313060723823855618317058271976835107803217167162010922695085260249469751493530178406043221410958837621731923568342507493227669836118986177999773729931490030955954009346545263649804933408560584724904981702571281022318293135281081773758001339396821719844788147926163497545991872310541963316828913711926271274833199169604373848548805722065293498962687103239957807517396197088833035190280552667671679983625721352262635262240125578976974242737566716838445170536490067147828640505878425056837435442075633534108034029279110854161515466622850352736082478625438510840286562617093458690065244582007675817503403393207458973745253213224753047281024043997549289985533409353235707311964828941150863427715682538702583047504200651592786162697582085577323650842498770063847932612103779366804327110364748539562088288842540568597384136749920842995307343630596677828713911242011912270109540137679311731386757915657154223014723299914507622717217535830351498982808184305858079343403338760085923222434057175241111225016635506588543198580455131291619949027884512805189828263307214215221813096787410196709560909412631919283706833854701072531633339399404497555387079523376305200676193058494352648524381118090931908126510680841224972473107074425649228862988658877922215807018619321695158528812845705471972778216513962544751781488285389302291878083065890794205117932147837346706882447035379024428803301030527586330935200422384752880223762052815756697974222215773030930908414773654315008809083636147761635850560649910414773256788443004214537111735031958455803739241185686271123793912021616057058391277770104483863603721973877834537292783028572440281502737343870131291906097485707655042958437882181213031367262815866328956331793991162391443630346883920389955862158349357831080486857527362584869280020296829352222533118821343367067566779805853234433485418835360565062368592931571785832736026019114987399989483997781440877726990387767262490789021602174754327805896257863362068741072770711297949475715715069811609526764676767536445172734395055888415871695900669930391659593209161080774358582122022340169832730047196710339185071509044668427949418915372736596852594001707936435239741934731715567721517422979848941720467757888538622835255263839001950675916835597862279188180176971805463614533054459436763439856185548269975238312511259273496121696266240463329406368830303687604156954955401155314835915643296946964331415867283421930320590298537200961159716326045380294303096498352352421260300894743393876543791270249288429945511686034608006656276652157962003691349236016654813437537414272619032493046657967474648381448793476568145269445262522038540176816986206202278862093255637959119337263142726268204372095715813042944114746124389852941609112274884675476022200320400945277097099685889965327229218724614998150992123880199119575075379509199114257108926378397442333829875327822240869908967121104304455860015036435413995391333797823845445989003941144626191559766623220333453464837751170780288062833285697919235023393839725244343490409434312257232164586564578754074846207307561564924674575517828554915116881967869023895796897257966514940786421749317666874796731297738917312965971977441928985394550872482047680131152078396429847781040774357421374213504453853480075369499839184376035295742766363857664350266868622118123197171859522228415089466822885414621853472937035740546156259607613068343115395926232717436295778295672752784518388726653772390959265971467351201985598619612662498010418435917843834323865649369951712776554393580154985924255504384440477126254278987638066443320856450229631299551355534125698411433122751709309177391907636934090146976174323305808326090248525905978098046944283539712319777564840595836291333148479205520719475847149478547960744127167158578502120233259325921042777376435846860797240047868913254955005599527913415370177379915131527195458551295989064948653064987441316461071796520346758101478349574608123237988877725935009921514522193721314336300582104752519960315290138055850874072143573533393846258030954375313906041081830891364366962249212718138688688766169145149721262616425242460618040199796020500357402975603977913913909778679518897601611002636825249715752516093504288785505726538545918309969668699734848591288349995334125501317105506689087747082268042907036390672632768504604671275638602555467912914371180541926195102175052056435891824252733687942917165860588137052580777545860370296511200572702497612322788662688095542662622798613202147699497985660827339506988035539536431011172166190820850579321078492100460519943133294072466335298767930674807903522213243273241568695241249127163131181318342410374489168655592621194699043695896490521629837299638242084141533018661438538981780744020881824202292042195009470633645835274443262502683904300711427639489786088199530115603109409085705921974443296670894156381818338135772614240733813886609325180098005366838175146605104661515704727339048241185389690369308556666989583487020898109732071991021397878269806589920667466284329103718441307702469593637196238720374882054983546625993496951547630511489617186122789976693916785403566035259651653613356194644715061565263248950269707602288564865329196368194496237652864201088985123939276825154653933944370605791030071546874366624159323222601889586033106263280717279919043280085743389096349872594048079775360462279491570353030865667446611885055876455220899253549560722606693130527225490358931736168689972690576050164960449723809134712970879100298535011513804787880230114817790457913035658902365960332330630175247928859804840031528167779030223350293920962784589763239187290530380500793451966488694860867080944051948226951524666249934055158159873717836572564187843879407518351387173566738104541270381858400417928619818359272138866446233137863345217711322811061766084426546055911928472864543035742506399964805252722661476328850492966464471551370454498634906747507460039122315971727415387078603960275216375327080025522499207676707407605987372668764342717960104728384599981912919998044439427493996276231404013399920583087651921980190900551420720686609172780723515238186789124810700521705074622095325790335777906006289108360359351896823456092661410884856797764355672420546771817243866477971451227941936165946701577016479736901931263875875268784110556994628107274736458813615173544479143806326413815116181982351429183036600759338095695952659316527452910409568983084312448453202603889918798820268547241668567328020814471900795766716197533720880488718783641414742539192877840816702995729273942723039251912540007275164114962983676895384861303280603341230391466991095566641103078008083109959589897452913432040601914256783285361293823950101563780460772318006212380249331925646934142485321907291174961469238853226437318420632816124368402741359756873789221517433719487759671964876648867117807054088485189269515663401748201133854582256315082785887277796708422161245652144079736502595225583909575747225634146042510159903732283581349077145028467448900565541789092996959433342022650208752317304528954018051778847860907640163503743503047024251688225878633024517927360241876627151600142183133076145105504787742593279906630045011656670556552897091922189304413581955234581594856101237689513409170883245103835419311633225913750080185506725506580242348647762697994442900674585060122663301732819638643851295265048696693856078312846407169170965038031256355991135844505375356792663651283509694708412430735537148944853284155171309741042944545389931112374514670181304559361227953996821823380223082084410979411450507002725233589646347853205247561609417057909489150469857672406242597079151021053640378500873879989877205026692904489318930632914353504758131627157278608254578400447028234100614813765350269879511847937270511549699730891327639004710228697139372298265719968385026019663017008210520341471699879051038099198891715092593938939625045342538201976867392686624586884028559286520018938947351651797796837032976705993408464306639364717156951000243206694676169876843373468113692514254461729682917299637923393353914584428501074543741352398546648133389668662667367673805379787377369590294168318489006441247530243620721038565690821429949483939560052248050180931633237974011588948985423284860329146765392410353731556194464757054108332599517991423199903455981031348626515998841662357331015425903979277653059916492854428688779894643539764738505215340931624269661173799571997659107987643176995128604574325113275925310285852370088456774893006973108965868665881202075467133431285159868315426819098264655157234521115936206228620749720437549624563270945940814291365304738762561284946879328224304553030792790484502385617903441186851758909526121517763062048860780439303428856633737769065584786583614647382381481717463999090641344221068750896109837568431537290747876407077692292913277466431265419455188439435393268623617752861309185683506664651518569865095801797958642173582003652109696660631143969199233560304057946006068923774715003255677351329789657436732679184886690964982003300352049689455349065804267739454038674716054720648036168996686768444849345853328329574174946155004698000112431287102890809591864848211625436374694407200313695288623122443401587427340486236261589355504946304614092752774894211593700629438678642299248869343670940524422653268384903815018961705095665771201809517987182507001934736349694665866069510379142520287068946167102012532216835047513256711365773142565146495240961203036938733564481012994381246822694348619317132695093374389015114601733233148270026989676805666870634762845857643950611585617811806076237154357514198603773337464449580179610128309426274805139481227417714484797849640807117371614211398594027645298739979883580613474185360717369193559187386027735122920938040596453073168262969998733092845115896755280700128406570159750804244630352639668454707841486931660131909079493511981915549470428701267871694183384263869982850510170005723172938983206696197182122972804854397094650402831926313090373478953530210261170642807659681814437883577566098537904856698144868232159877220146841904854436399402161459376881900330447129996807179980016146708372481732273916592532764509628311267686674959346421269646845282215701524892278569272995514675367934657398550589954309216008378672982839018677902160966172587515347287694595734534652916077934911484603995406682603310480314322642346131345098020516237973212372161664399331777301346256955400802549115735771201354397263150496521512269606347345003415625279266687569117600774272764883121324090151331957379507035952959659744777207474217167976546000542223595754824803137768371654867261626116148730885536753798322963074593610823353510226484118729214457700421250206508585694222867093724924907843097074803319764981971260582439584774802227409673544947865865377252843671299186894497283190195653168781300710803520122801214222589065539683011382047653921113874124265122655841149849628158212240549186763725893018332087569071917538490830228979357297188600361333596018756103545906897887834685552960786058085234293171123213113356255891732893211396452788318404808709605774668908253203394617867836443811609373243221328760120534756933452724556277972615093706801007546919459116230311739069854150420767670372800090140099848312851390267821937735960397472220668724442845019746021318962840525786803900694344802513992657476725025084187612011163564388607084026957353541708917882318780460145764504567599265007378379838627624239265904872277455379468892544002994422832657723717432417942947060647106757162359064796845458623330802356152984903275395554494602137467030877720460315481917187545763786409509592074874795719684808189110341508672590635651438138874357760612109868439020517440817005393808104361446836954045631575008709836875640355426491997968803500342534342647942099010247290481028691237414328751498263305732684651631770737975904591371574184473859034528257247658879036574264348944344307083261595635002775739809211174541784424159131009558832848001711359666098290990957113201759726992565959453697092899566045677358661157897651671124213144584221052245462976338653438137252553865930102500863379107244699630197609481927150542250988963084797606807694235267450697321074877731735313359430584353915004276098719278146352401082626634900107872929362763270393931018702857913054924813843052480146402510423018553726177660448556472513903558550290842141623692854770873331191176692922433063990050493329220304141011236936950694623880207899938473500292305379308166790889751399273467169690229466106807469385258573929133846667313405681427469905572513130838345507782413973944868044159591034160000656622484060185299206567427949286960003102116896575562930954947075670631384103907676833206593062856100080410494170338324056613393223560311029012045957635367168865086689513686395902227484161848498652943664277110562951481864707927310472203870879936430607524786030428925510993041441924056746619534346080846707033941458879045564554859992597860143433541573499447426471048261540029243727745985576387862692474340600336084263227677397097749839575701639408953070089212526058689236164152496270560600615875263118684155860656555677329622499001106786211808803812233630000191320855633929673617955013444834451289595717654180873961347432317919870361894146210022622397329640769353932987556618459526124094798237049074784517938071877428408892674681923162461340560929987824145740066383562159615595010266941935197407866195090826879709161836895815295291150636262148597827893000420048018156717080657441611413361015680485582281065489356696907157774864525128162087549265994939384532234216090357916298544395647298768251948333882728964030706341392111844309223024069313781051777666203179865830702601874613952524005739147981852249579947358056409041532960291383111332396570136879086488877656741235783458044929422262500583903738750255456995410174420965006506123065769288218722779110964719246073176234949102755823326839170827240032912046185698385089159320949989934004488143922255884977774477791351249771531554105057982953708041245125638672407930258394696028488268449588765068727038087407692148002523610762934615167151329383607613864802362590995661721405697460614497133800006429078763190444815062486194083162334476565644270853908825310060667061926463257098801717664859925991969068470891105513725869371883132568118350843049955078852008363045581914797225416529221517847596055162525402298148315705332191317749345719368389663721901761762012565894509359398103303494388537225942155420174802785289037882537489614877062335349184405062686849062283812624030173251162268668748887410912421056872836280343894968265190504407708615128691289266297258172936705353109436467774589932431032127693808882283323094738290751273271274770492940243921040247711218327989632788762628103334085878482591496570697429278470445372096455875055808824203401829003104410080514817026280262091953227417220144087660488695430212406046591249092900693755256817738947901052350004143713834743180795326326167272221200936957753313020003114186543814638404983599351786548765790672527629029749050452611128267381598388241477579874975285984630155751125981290638293859095781861249031397653366366233878253438502848473728342695751821583753787106477161364945898902125745974815468389305251941516561027423418638831141072971833134518222725416425375019497566100656493012198661756887342343097576696282542377058910522601737267756490694512618463275438576676835974571092151256836020869858875099663533326267572062462951105842244479187139723045338086169884445531755937084318880003160608032923064914409097809484498615691032526822062586527854723568379044095673317482265046038001786859499984865267633323025374694671987076141978479928012393050341627254787553772597416479194659921224793711592527520750442215336201854742348365726654976328016025285458246038574305527883534140064182512490363852285203272374889921958092246351701869016174326250343117362571436768509416659912122279949294182704791864135252280733000556648347469314245671337843751676364061130127078107597308724937872429851956995529216392395437276800236229249454493754515026402990035598059424414722788376963831583457847684661062370976854214395035753365538563495501489176006769490687866333618862421841802142975734768800521260224223435018797019675420956789384454607046155011698549621635404200863771018289404877948932451530199656202989680127351128506539094126676156503986294169772494957958018591613116484997703341186152204071763661331650282968608586650001000445026832181826054126727079875096936495951471450512624441826853587524794174058697745888550084024829353964361531423561702400759067286386329701852847019691044749386127729021136427844504491486966865548205715093300192077441103610540143852852351121193443402521339358862219642177630212362845587675866723012824020862682482315891056341591116662876369883282921448214471346804388945047857755526621775636754747861582005932118948449540071673738514449411148006171002024415145719453641300720496039152121479602261989985792837169589754225488602591840486571571826957426474929844161828605443306873498641678431464038070314828317427188066850930694759655870495492753966341304089797816530000257567357863617709168552306823624587867713061298359784330958184008557315174287223787190013348519010441978824530447153263384502661679595750754734548323289247348836121720199764254153912845545372385964629904748554795916603658664283527829492143068295605230946311370521179862091746482422789250705599444680669005237003961028187920002404534661034186705157448955022358672713647701370801800088939616508008415464277532386838971500090561821550225156228729798255546811527676543664955974020407774845248169774109327252299295120247941439381076718552367599268813752750542919258181334188425815403823608827268446769118940592505883593521424443905110663853457470844166660932212829003816656212832329373993320366751709630276257173173382457017428439349326161338834304600420889234136290807419280628855988403470392245425829076614027721808181830925924259356450747577453958066880132001754042232483097125348801157090189055359138845297750780769358662223768523242704921526825331480868093156732748123250308819777784972954352964541400289247518921887641176357382417475404927388041363352128327761516992591092704549120798356771704139433025388842622311290597400280628674528369835412232997322783141499985470563138630918403865916137734283083700911247932909263298579346278046975164630228859802576657852323656180446926133149998377486918553726183698873964473964385145054478271694579277324895067948852251663983864128395403196261020498365607679108696351518674505846874539654423569562235946220331718317058600479248431791879537591022535620414591869308055482385979907658029263152189943148439788829349777363500845559128167908919851625633541693992397194358587391330034218069962097260268326304992124164902517396921162585286546174359489009393764925097157839211966662916500341695084138358554984098969186841975830996536334206925964966491817428322679274667902470894705583401393269805621240617710719383942331218766939856408487892770288191518698869196394140849819316314430354979827697340758284520174096508320617901593617378226414542652335887374618062016716870222010670429765377297696854749585861305841614926767166614200123821122466643946085854694310188981873179787700466067971457295727360188812238483410122959831072915394509281704646270779847087353532271956890766870459380742701354006460827269385554091827911278707946476755108780596025639165585440118107684283002142173125207366671374648034013827423523558899963187599372236378235710477835211621052017732044265086463955224337043981195218497722932789201104708005908052898232578758103445903472949623558677433110237299389156417749912747431107562382631705651805811195175690279406895999652315104108342086564004638406438922761624604122773025700988080984439661732116419109340050617502210733650409223550345008538705043825939130820704325230998865908842882464089365306874032046431758239177784110531213382794220776929495034980514964431663213619754252510419647900813827047520920392720992949124132450581999654208975109140272987491715926269050611279577735249091887983649290898301420799614755181645356342464714932870554673417400141425182688383918713714756917794541212718338597947870920870234685918516814475388707000600737065048726405224492267775794231476151253404116823178442542456666841905963180574630129535826591620875572581228726382248881489044554760213643911891368320504242162364173030132380917725771502548676696249954905429888724205169382605606722202010708731474965935953309029908258013274345229696763371896359188483818392530127640227264537610503496874819727298240946097055997805563792390882972698123275709237827906113263163298026240482275429651210698314715362520896689307418139974940189131534164536269070179909055859011597967083280060680597044622983989102567680905866223098190412249926624801486966626732509526181157244569953454988293685896874956474353507023035734803057587395751249551961764085534234712287968005670170661690295854726107033953180309818255103137768716903865783530588126323422749920671178976168494266994645629280929661401682019921036505268431966705129979625028362652661596497966354548910925120844796292888398073206613338146301137451312790007668272078219563683826723808635775873181773246879547694890372028256686497106255155534879958780722262625439351594316840532470682222733442580917557370128241256291284027820329252620665555091396299092586082979543320301082290423952479366581775181840178805790007361063972691634979560604165018232610133301194264614303288523581089277155554508875549188725580695142070339767279865771343963201172895610363786648379197096052902714340889049745446914845500594358204807301293502271261619856457029937685364301383699356764113482465302602225560830239397969579884642766317464729333517700932109960383276784079848255102550143213713290663447247946826075176037575982415701095828419776935298736460522335764984398418701776306208229248411524727502456693063177294625653794579075170518379331403913239634905999163596348063791406553424392451873616161495068612911910384619546804496168814124596225706130161068334637327871755794275521766085660726190282182495707079371907560756310006614013850660507471865446046216267924450877577333585825399805059286933782545995990026549562184915809701191894113750823685007440937109214098282114613477965851963038977342933012902781614881798306019200861373106599667424942047865120216152783038684886061103111389495211961322991115275281830415286018431560710209861422365578297668982781854416103220461850429150656279633260400073283400152503038304962874129453273408596885155225862533194255988310987158051558715279861330445590193882748783587321573890635344658308522693874466654962363850300145858179038813139574359973245833717297015124209580969646233772318044380067574327000160790356985332945275314523672820976085809566590823122449597074686130450997590989595813069985633969435109020209739624288175606957377170952594868255216536471599333434786903605637664899928642832520565232490403067401532964976004679537443424157647946009431032626839759629194664207038775871957343112878807253997225466540793031897642222847679221979320633830787772308449234758568208370639269301648992818812222391412239201791099176111544680637926044683162826657467689155030517868413687880372782009625401310442674067166385376146209021528084737052472946264977243709246476621041680295184696939780044886966504541229135013676809789861079005738557371974382528811508177381631545164317116235972839482227804103949032789209836150588750169782337778591447076617966129430576604102024908103194626738944904776801877671725846303737676273646315067114371997869076959233373247368672896681221949692141437815263134435104225853258849296601406185104616754632046320610462927149412632973538504802079662402398088851531414511616915561715190529735030205007151655473908705076808863053351470323555375463935973393515333477051050432431197827188092871783178100840082385276663531452133842286538522990634735806442124177971300855162519893620375540867687434826954703458006377675826516382891767925507430566656023199175508260746726043345558812060767216777832422152302850165983037157634115040510153179621738379561211588525959303864515052359295654449052907941440968761703340922182151999769431446030220232334769552415028940768926321455108777254185042402379117353594450016933915663822818916163686565048853447325665701274231624377525414963710288004304291994530937433466250519364448303514518516777231914137396487933510615475759239603042873790831760856788007847586417626335959392837144637689578835179135452901144986049182251102634764948282440821356988038436064455487473962174566849130056405533922832782174532909348255350299887193823006255582665590373951753054074107611771178926342679606467481347800759750298356706385914497013289693588972742023381362747069573774721893896674979133717067353907294262009444263427129576284848060282364422027551424011765173462275343617488094960668248443730146760156985346456716945833920354804065906318947327468561971668738271275521960184163460145179414355513702354047906721491647868479338156823831272822002060413430542563870287756206633436129718516322259078163904872558982141259625008125067059847684714089858478496550163689899143610645915484203078746024116916231023928400955700823736883990220632707222213301670606398154258185609830632624071147649353050176194780690238154678738369079262867948492967737871423705704483490177464049856438985943109396219678100880909353874493484809605691561610474515113695641702344707407149675090148575367887951899356662528417077982081337313673453594221059749233616536932024190945512891173609517585646629904886743196202850851116711173628876955311286862263675443243624261724701850320061734341062642332595062844822721160396483152511359528533966104618738506684424492815562155026182097163577818462825727485096898957856537080940028328662807581166690957190454000716429526565261579405501427522282570701367585180800550971795269627464317044644756171671614858562280440504589398062999173411473511113691504819214220765650784797884312897648137474535079909657214571973612717730250337909976415853810136682269968353762654945687184131562058973924514041853746018622609518529706821625237243628904067295620530449208865305364450570803099856709523586795918556561565405893386945364571870693220489929179380777628699783538267486289254613058455521922867551425960999677726450726168435669082111822122775897312415724566552686734681328767535600873353212762750411715533805944065231819207124884937223137962606873409557564480778895803907374950825430669240155132577599500140808688962564828080237287526268576026309339787531327458329666634241505307698748912103591334875316692045269137461437584546580632344145769211342545810373166322624137113694401833476508348683671271281880454821729834088696522318100604229876923390677131662237304155539419228068874398936306567029191601412733957265551421784766825475860738095958549438340104101800376148509790205179769958208167184548210086931904424727203969299328375539315410157686500602653934302835012704800563028543503313903291406907462157123521430116838391068007355904312557380948599584211953682104588517929915497868217048414214333491921522026808705116484314479526290957863801488907048411503657389194536761920838413815268103136509795584263300279026237125143401360647180988422035869726546747962600329256279902689856339403501511235127599045207272684568008726731884382129578125231247329732479636297736450259004873880383471182529632746543781300034281949314499660824259480821406696026346031119538497488082190735572519918664390460704217994332956422873627897358599236893590096439800340140084215178663269142124112968533289244967145328919827405630035240520130277445929854137290809816401996661311990731559820793927854350436117851467894653357839762986858913039681492133150596288151691078281770834783840453769758423392306082527661687473612108079879895209110426195863602312763901176774896443855777419610705572112689699240796010219403649005242650411981417853947362441499547124215714352692924047514432743600758628636764716921951593597307331867811811113283274738288181370129752166373840896749593103143493539554736326461184089185901034145921886101816779889012690530147384854881822841695060170820287012417368420961510648980973571050096388749898343968799768974037922967188040776895289812078343908235159011620239457614544702263566631678543434913206795456896533631853685882356299450169151125550516643841254805398644710508097968848009764022494919651659493982081936365623651428292834012022364029960122554749852411633326254970755399324701105912436261383316961568334158557278958212523529579643938325442010335341490665493247419810643301176817624513111058064608772883744353615360114035001726137696195646105835726344980099078934377762221845896250200724895456896693679871991712053003674136455411491938294538296999350526749314822640885814114990493924294852471877957805605904036514465694527520617570274970716694201073601034881812625589467197494637212765935234489996230034929324081847072660007215367182452186080085367776789151739393449772668047830584043458369209096594312066765901009783061367357611869950274320105418271543007416013109448352116000067972280549141397397153200889115096329415164862838431731113905206447774394946366653639183755522047259202125784451140079182660621110814965235545501262084839837288578446650777928303797650447536136109733227782045824778543604805462987217164697557488794526256405936483401436070658748088508474585245014969745422672974579619846336919715019502647309271197027944598915877860335392081903778151487592455519975666566962037619216008109592876296328504586991725513036990448144270044658921164374755553457784688250749624414850542001807466055190097092174398501001353536572082287703960112508564290382945987177060289715202195770889952094432811778794321484882855733489539583234529427328568357070825205819083941215938919490197203209050219785557142023845971919662912087975229948332765578146965282992523975377373029371735860016236954890430458193469076808417493676860078393621545099538101687906138172655270542246088159883948681113762045128057549123617293020662260559264982189153597044923118000620431634982181430302282226793924105713740893502083332387845636994811759324089340655688229401415475362634601049223054697211890123475633425659614146299393391296318385289195158060195028226134139138721545880401036444750773782341401791084885800495420464424633759449543153391308366486641218847544036796070050974260183563401111021468350500211486945944236071990557415232759484932385653457234485843567190462771622779223389037934646465978152685022742277230002109270626161325665867989229767016640095071376666145983660796081152651829855837642988189809744861611108293822247262521488690680916523832653889338781036664505773348939659443433209352966012540588523203733042610787107538850677691097909755349239910669856421457295975566628017671554202137668898281088143677478899102606175863895178473692474367582590778410398873317497646622636141976598448879243233273397052832965935370207416539134361634512690361777133256380883504999252354284868563658788024022210492168648398033679771419425446590193330259912280575374919169176113804078589337378296236358135761374071239621910764559351569065991256017116939840707465628131844652204196021617097271854204477028247740391732665985606764446000938163108058316633649158835408075990042830402321705310345488525835952876830166082921867556410169364481916088814111976149651975558912290613268406896335934731949555201448015229683983706875784366472572685106074784823150039680559671503543872437949697462175321956671704412125996730717689945464980444830237281181123960545115772281241186706223210764733190316656182648634977359608389098618910717143047241546978397605808817651113745338465681790769737071917629442610903423542695213154053586316585168000235782087246253782496229133483808800993469400297081776474545361383648878997706331631629470451372239496652355435742143160556834000195613770739578114674586075462639393425710164802013229567872744091436497145066557511768813266903760289746717921962823373414803195392152031832927717973323272521401461429457198678678849059873894489328812473680363093143132040286307542051659453452024628239207121307088343155397926669027938924997946599215203132091507114832080344356108219147869914027694602585117354135329611281604894120328495974228670199453972156191158980822152210893965261548183132106738244220389004515399677066363059570634341505714566030964738131723492643831477200087617182910529532844188762644711042919289831737068512529724024377941110859990298525199910512605886520441278450241674296560232562909121624448456403372788193791267993679358971089078457713108227261211438712877133361797349138507327980544862045908348411017182041913379095308930144059857036752562613758307295166670855004972615700697451381937819295779083956115638950720150862037851907625858891555296626646634697266131711743144315677220268088747197816949911004307718128250335178489808894536062055872753401806113019409185799489787004420991413406564767934284539043244968226647305022879064727761034647012071976925855846574162366766754627206348190554036747412638022606327015783685771871986736910631280809505835654932508711521795028187828282083061074791696577731746487876210462868134862690664864876306305863960824565539123127121186042642161473318692897497601092432993568018029222368191317983590507542456561523565072205238831614228666736667941505946215537437178953617789721170813781097389151315002601717164916319651573860188530929643209379688031316754865424613922830656534768367497018342376808389886053458082913727081325789834680749455426979959007430741623054516182531579806628913820654778504824837920088402963945419541912413700020947136997125661421090483465056628482960284368915175833960821010802006492035952228583593042909889745464808697983881397327582997636619164946719736297780828681620243308123745169751204585472608627687023454762677285453442694740108477331931166660272360968998910523511858944761530627802637333098179732494487813321042839791464166751945235898350578786919233012477601097217595238877153880446321092100770953272404074268703039376631968899743227008372787691627721828626555520582259547244962062065562130159727515690430428922583590212096375178641298939282722248270047089755267970843375106640994138534296539415125672856240165867117179495066649909546926173482679093794740526505962413381446733290229882680705410561000960129427972984247156716198864982010997820319293000236487420401209466651671765497467308133242836317459143877534779904253767038450837499781159521733703635701451147367918501005576899989472242334659790379085696908563734652805325586730447395689757430285451001677282700929823664747576383492982569136897091097723064525104756641067500701563601753664815155547114490145819415061864184292480386664549081428453102433093093424111484426104742556391286814755797508774695984111547413985064554472618223079715490430897946198101316196056596844690809299633310199544116178678591126460063194666707775304622101891656066250044172734359750473719368371523617060638461837020100862088931120183370260529835764923307308228901259675046370482139420921800018772861232591034555001012735938129607976775524578917749740185044779413518403404068032089851093223438345376193075970090740393810230333876498351093610410790246410793553012476394823132890677510633790861035923621270760802684963669948416167274106018402684287445146801308960372315505132589471632095980762809293395628768477121437584872046956653431431752969869863664150525541953263251887964594215888449411625492747969089434369975411491653308821249094510955856082787430579336518725147010311368447769756457406116447752157729268170529725252213575631441707756031551303318898212012756311607818206708131463277193987481951022128084218740448014533011870355764326346961938146602619346343816576720581947809022984375228353889339475014831476318438055982603466859604742846954083916887935273269712211969826310632503909680005673743017526274077909234051713047740502512846308535629645080662527989981871408988110665621700676455367159825709214861987793956638412480070021110337919879951654043200620902942955579539042939485984734386015090913344833649706885893929608625316348522193855690460164526918698786539608191537398177573456045661103342529606002981160774325832278469697813765150784862044634906749260799080415023341305067609086980352296886040164604520885124827902214192430032633567870730874158871105258537445905609271326675892691786524841443389888272487440406773392275063843823206239875611352721441781664473890931961239235625547635683952151023888221569837368988968196006228570202082824295494038984429544984262683737405610345652364388557285127688946564313166403660619338001292851479014524592288926527468945594479008421132396145336958678564828546855286812530296927290342171477918467288715093668809847615727027354127471533787673201703867376865356518373605182825117965019252441668687693478643647774629498656525679830839846223719444251716521221471726823001689754966777109263546949496164773970616716269153627992746383849718761721155966758122664227879667726977017646425497685750182770345975199038931308368193333008346954576582746715316509755350395713655383528577793286871157009820982658015203864464480115328256355858685025464593290517883674795879408933066932438970094676716796584084131472699551743937516224069245770250961164296309060710102594268294940942148118380473409321005002258457671251451631617083389727774225324239109258947926732233038528656182150230672633405807927011463966091736192663394083892038993148115486523240157189354842366993762860221152853219490129604344280263054534012812210053765210285873264877172418398161924865509871285405066690951693958839060804981096842539650435902738317784277058630784720416007009021986249281591061346740211251685599708831338465243398100298488934023188026563488189853293361836821057970260939445924604376289215770579932452754522482377673303263394458537300664499954700021013970052462626407583036468100214216963525288783828519221575724888608834289825086222691497111606701450304928660905888141047650066920108956670643236124710922353140666130789844595183452665013641066660689939090845478835583181621262390146316225855970712578727328907944776418199488609390829975289421825265104541371573576508438224265484636042865693229389370356691468896068835366818915384670458283933430954591362640275315785484978114902957020832281433529039563453725248817259963052077856165790363600682942906095328737225024754649015454637396801116861887748844018714100606040455342860566950209638455645372211535884549918489662179800023831596478157709343015575015189239439263827442166545797822002565985036579545374958722994663195358877166046537234898412565998344955406892745552525237709889279121365681341439455800367718548422945283164657742479490460247339672557354721483079530481145420466648377083920112778170537498915056044686438184451258976991961000486073617436642319209381936277902430929607514271198453650390630006576680274047890894121025540689138874026585843249124662477248802788543555343848045789322758255766941179667799514914326484850356618230166695879617293225619949650001669476723056477337189365098567201145187193171448479559536349459507090550909970387940035523833989003781121997877260116535675249141878875074432835933873486589710447447937519622835263691560932644118233240890213924164260150231461879754628004330278501695766074363433135197981684444360699072403949151075056496020097121643052404541624505159104832532283235668306731559305832471230289390571589494726374805200463457024589320042087585053969208594824259034509415523984646073333882262970789344104893369988661872048149527024917927755396254180957468015469479566031948353335646588721906474878104147524858194529367092197351230841733230726283288095313766668472518194405547949219492050916799921918542636441041691711315944390908466688531144139299783753378960355111776150119049316760060561717334531590886617397114672836233048578523468897248881082193399408258011376251014621817618741779251837215309202470828226589562841858136801204161565266515192651845176716330050550675023767288891261176408145608527802801408962132350761736218132207636596835166345174944992606713714538593393520500878675333258866128252236765410999316934580530907341898619374980563981875152806816563368024770312289348906557120732796241820896808217635554730013948673283296720475538776589863492131314309781381835458091539990530335175605828652034794430810182247074403222020237770125606726434361201393189768628769150432686425285844435090905342361780519245183586792314506046996570880432461624316874146702722815469317123914727200187580503491756607756167640049650188410505989423638983376702341482922324909911429693815896091394723186167970615032796677093498732238533043126771641500336123368437089007790344879362130641435373011312058733126950241850245273759388649345015567846369736222434158400701242356648278055910497900445392811855845021071351776372829527086143141364604725070991628068130483221185807760110129129782508521141617521994297015577217783069259722595912217122124867203097355020721782803186399796346082067588435018684487184623271942906968353927516780471073170605876779396838517628062266055129838249027358988187813636850399740824628996198589954220616456574526376691384128642436979662936778604470829397953059050510741123381815058695473021948067048482367612431771249381936971622393882771134419728961080466867033090418211024741439392384087217183020962684716086463572721542918425318122162942047191894358412310080745941248452207150161524361275916553187461909965631960999412013005917507416096064289933876861176047067137110532214059955854199586732536287885327097834050404732604061966304446523093857317837631443848158755586093327381227554520256227887364504302287199325132551820047685636459414338130329660535555686476218585902583332503214019414449900226266782061481771723631212436894324928639232603759060227055500577243715650576545329256760359198833241051584899489870361313020808704301165926470777733461644286927296209571945774661134192919049841699642541315490653219658418577090064859410129006717990424654610721557914154775537238031908371287092926257358747422707802678989927584854558836999361642122739750563358742550416151376087458387886343558770496040962870630660648707241709111130382893067573684184234991716634103043204381496264912265570039641878725456264167179731724266335386336721984673527335494847161383805186858404879994666098542683593250803366708035401277541782801962843089715951376593334485635049879084867839055513657864195180721103565698629093025355558351442063329221694409491059691717654720700912700222174839496877869661078394552350275978184211535109713875373902662035367041380994783821992248487708462629542493195497735312604016405659971789811154236155345907468077751198080741601857502998374873038319179651319782550226681254073653775733420423681523032593003468886818929665599494021637791999134541583593134326006966913582553938693663270683334801460107660266067716554475215580673884729274928434512595141041485539793594047011821312785580470665513309366798534374051859659131747293550923492437199577600475308761916099714293635988097070928935187727882715805054542871379965588724898262402152299074160301678113830256793560455224727873953652313398387694767048072060225049334472931259592580248254578774594638419738524936172366112652395243659166868840179312306073010569553119955452376706076636351585329038712529812279723770150412669160111460093403033750640050497572350471544501285154512880287238524547304483926343487620001729722212270030436890150250465913173865300960585398073207424311990997676645411454924237008589587772541691114614651790948658317551352236185233955875770515791736873092956711967035049576975245413466169012340049472279983189455626346149181345036070063626030242479979922337235203495944054178264900654870575247648019343246507658114471192911350554884453829886701359917835007754457177157932801608295834660917128076841767719093051697969317086046345184699598256339386646588044601946533625910164671279259044512731467883444543199685334586790723968060551260846507535978301529501758217938524147861170549304004130892175624191801472186092849206827676219300104769988927422446378981381542835689136449785663592115754977648481730358114605079540128997211236128324100999374601032501901152042156550230019634418389857061790375985146668735154712654860403024386005331476230895846001842886349427080261993852071819593123663125191588887089814053824925525174477785887903548816389071275718251577581553053210875327700898411304562060238771049160007412007276044274120206938816931206054355145550374735746915776418840909558308400550617290964084488372531312062086026272805762942345480352701316680974695708097895371715164638867410268765962099808369715649554309735697146466753812346383859591993038625120298877803387027010546931045702909746963252071405521563118542374555459692659797350163010346934595177837539365377846105459955823434684798416787404213040708669981587710464396760986343747140633534686963128964570102702123595410285013782244933622541376233861186762477978927184248358812890643038674553822112215873287610092465743285668600456025270489212179795720025370444268106725833524186865250255328834584445894987248949618590807099373069024192451478873642007311177145430017303952503625146183120403445128714407369594518073921685962039765147495284170199153599170253078007234430388599935899417978829906576984591913705440200388866634611591412163864654325495187797302089206448800237168100387189869676743130868959896291596926952568901492732309593316665555775952276683068952355932036433537771380998160283293779742839067830261928891030093176974709925356764781901192874171973862261363474853829551896749069658254389774523757162742106843587723355723937769727182914073731917935818027570449529712169449807728172565638856396499276302571448338572755338242036337618448536410791155112055547465669288310762469409897230872392857277635913601581342777341853099434323592567919352006602061804380101076172845497390117506530108218594026569100799695891940386068195292036580802121484659135481110589326646098458875235033908809764733232880388600663374891520873135566524412492928485859701641946416248713709971313995653631885280528295933064837639430600889929393137397797336177569960587017108114413358917844622374165058344025273037181023030734493340915500386870620964055199780977686903791318219866084704598348546461859092879558074991754380085251398693630347425624990032326172049257600914726231767042289687960690831901240321871482737947503066036867050781837934673894440812286637513834053987485808654270462900610277635540103737005017094423573379033352000627313418723649546724944997341290178559804839693443557635926089032503040185138128480916073884748749034303249197928863239296002091030656484129866272149779536191558184256638729879084626319407085779583019451051316221126625890135327247933560332773475020340824605338227377498958235574589510496214744834812076402860339696668550919996151837617792819986836913633449778978599517984974400891670664572949185538026066715608227275559683125407620579961367121910136520167363101445704671808827537807303543762737378588318548321656817785063388708216958070347115865559466220400966494074347609436993172990336979443080398484983210083184680249373336824167688426101793267587764011143746207952012192772787402349303002899931291325063238177154303883773061044987663545422693208701594404477324971551241391763952292590846543720682093835582109451654391893594371558492436348030464486666130207144584329219150849910636419167856800831698409175643546539596506499479193312445829812989685635055463981703546262548441982216594137776590822437775198637737808688623864745640406006404995457503655982694981294622628866619462892370684824821802857885174585172035682904748135160792245690055699359406937022855769218002309403722936552122850506329934782833308076093628727889133311828775840409961799388607935288178023430832924086269643554055979674043539281958297415328144214725274189211433310815646034714896855770213233122124044135432086933688630130533314060337396656513302585407258834112827545699269779718610307000285436499100285610471472321713840270486636329449981258448858651632708961891431231318227337988487368559352280900043762591543906394153313244181361002232711705503776987942853961953133064386978379304166673071411438484939436844459996502759395531503213864383812885128816176106016121550520620139472901692458509470192384464381282969752369212146111498798431134427890151713033849925654195886797570578502634783554679985321791322710969081740061405641434638642010325206015278609393852287896021970423149771423033053292820374862637875038194564284282360449649890116116266192404044028195738862850651945925201618424542958952004806933454255584234145668803362885567377021994127516555254538680241095845177948810679123739003748258702910487954362203855240174665118783721332983845743542702722767271740329722774137755566610254278548902124589738438355709201502273356742343272312788881833847885597792303953908142204706412178524174377566381354677953327917320379657458337622369312831809590347942121964107526201790284479174744228617379785681635423936398860935961420933086461146440268732209860701860271318742419582588741360575535043705511045743206157691233912900550907190931697400289374186644732165885353532346171996560361224120711479940794533882033067933588604698655561247368834743583036824495561570184995205814489268837090564788650371875099913524193804497763927780404276378634051569369087975921129294192224477803152093990763418755705774739480287529776003658840712571035757254779979423833480136570954630365278491584981818111055343421153333114852863366737461806348405663965483915763751312282023963060919358461935745206929129417322832606163858955609924069695056684361215665335178727430515431158442533470829067320922260065278691969275932106544849127733451935944810524275819556333471184963853620697369534215005060537599220033125612093382430206160959279665605549674385584056152011867480434648250454241868196106291344270955607452030836898452791836377474454490508193308776088538697297128088371419717896379625422546451824452884128748235289042812520463447279370548294548984874520810705714021917977698342269147243896289323996410274647094040971535179837910809566615194855636469732918437289559201317632479623913335031222406113221573705460642109565260035968578177784181758311264216258307631233795371735923832129320753048336721814620730142349045212944776880368757138635210646285390464024989859820172280964384532804604626468791556011353548525532715181309391727477886252800250468876428495926319792689057757452339154341102184149399957751313779011555313683375750311652377805128444951551232582009738164102552098369140089787822201753152891493853857711261856541593806622035633883970279535002517718692680279571137804957224214530786399188804912799496706674802099601809924099959301101469876159027040670826927584707616569125444198145584599224213599602635452752186378971914472003674928581219073270324593424246781142494089740998330302394331889942168447741745451804937841564995951153779062699599984756169205908248039608418734992267280864871631089634083755308222282632600952368649219985963605416817498543926119331538004982550412641587660792586200903983549411107675391306222867242201514032471488043723691341070597898445053768948623269984794880087609424717543019770320965170352657655125944343530928084204830086812538493920062871286045976511569905050882948696959173404675612906121293249539153197729637539762850925454989986962001646529843091998453086594696464444098631703403715637265203169454814561386655129621298940813519394398957592995782498971503457392791755461990112179917803029694743420117810716336439551366487321423633530381062004547959161922234677568432716054814748372400886637455178081417148566344773343423220282768449620407691483727952417503771901964876260998808904510116547204167860127297740090073471354400565639445323137305224717749864963319648811763442900892243781103364848594149748544826356633116631209756610856826545533017285209295076456137907478639064129683778374213668340654464018812917025874412327283609384602456221355355019666677707038240340520772671560838486403161758436959331683804354461346337380734608077760595706065409778206148816076278406992766802359732425940269186672384189758816855116056980832333257979986158458437347265259121988663427723485505962990924516981129720403651008247164616185968126128613246142701055756244317361876643333110724084412526443915096026492624016077781457971188844012567584527716218069840293533370925387324713862411572708260305437803236306476106481695139575329755174438748377675420616323172934893626742035997387971125461783058982278340900829878930489508363417652958100868755775669509512427292571092141332508684490798600776478608729530053178658804276594932942047416547783884713247434136397308046764521455802067347172853303073707426414113125892530905636823585116512094600116432401537940477010478350089756365596373386409967708760093962706384979794535407186723336668149128912774020355076916009210323266344086523485508300920692850589965253779218831717014029852458899578276396695517084989954532490359499971866442116004099384355594279389153804508169341159486510704545657757912825834885526471446737151674352650964464616840351425580684063813871814276013131036531813763646631863888277124582245383835122064212511259651790787814276333201668401268630392995452692130522974216005702340954267346757863062551465871311173579676255901932944190468838826501428446102966384061151776722099089860078003407359409419338092291142470473036716025129524800132567929078933540777593821905303976091762701889980710427809772504547425061469098004284932468245032598348838042390076771466868671418874660290970762454075967500448832467384275383405534823022109476678773843923395978639329153854427226407073879610693996678965947975661505759348747095963422712368406451119762621212329977015391325181507076298582136264881252935917044398766580810677595134892901740283242516135877012503603423973888444222197724948423938328561777147790020392135291122288546465377698615090343081046209665834815662078117162728183636694808426522023736833667304754675553438300175865672564826027502299428017495334978729067696231870657385077114966036366391073877598224075361058563995305768407942348667101432043395966146708935397089755124155356290560492450162254082736808726339458085472423398582366103602488217609847435074009178454018072003060573084328142127332807587498022628493021783363037991770336691731912752619050939642391662897130276245276961494827671529247336839059584382637789871321863708686386593887731768345120108283260434530789385405980568576570273723720428073187240812092123768263664759001082764197849279225628119311789604196242969580881147065608076691118448131135013114846618103895644955685116315125692360171780043672947069083540965990097478935153802366827806925391318101198765097673592685879529555387800342231099290307944129140313652334480077730139014572990814693001994329378659666670357199988063772008860597739626166964830249919491010753338216241921302791687997996879537475222463316271638255440464227505516829387451033682018480929972242463491425408691048163255901060196667881671128324958576913930271256234354416585214775913419690435437201998778691027808672479060737660673256874704813841200713716784608613838145923628663660050252432755936165701976630051682125256152022124067983217893468605565964673904513140171329499363741872694055710470705878454791990461792084095463701590575806648059056570632141799405677654096034876075081019564386208506305777633044327668067310681737937441205569705645594193481206783240253789749276432005750654542077889500897177794969039099309647766252075922510100341592707752204088422812164334629191637599500338041389523847338329128805817822902122680970396683577982195879201802123391742980431386638116238274213650208128435621923262081144012253360402617408510677966217114416428608071729014000296091608036985100022953610405365627788360264473968362560672898775514426715869256164116296751244874222280527819467418199431314046737003869594331759230535955349033273172729608094582955636546647802787312663021623417424943764497518140326979547082364586269594620072041654438792909520515205241585721639557269380954732673025277691548976007922527447294735988557508686436990446935847405895052160295771106698382866726362724886543798977387253136857968464320157707465426567616083010032515566076408826168150497673443551031251666418407030158703378945824742363466128997323344792931907219353245207946483724906108752593535083084211326839073537644589425157323434629005168903258152636703368371416424254385859571332164603603907895736740492247107440691697182768633005181268472446923197747324565676548910703989645826318568824752170989029003568518921557870043566522806073340849894491062109189851485576711549273574451363292303209319334298224692330472278388366109867212084326438267400293681051297207690544789577007900134831285160179911249448018361339346317228734884654736751318249815111139596975704659183372647253893957460531971319086397168809369929531382378051974425795091370228747883145209911670569154597763037958854788468894240430461533044509358527910017606200708453411866257039253282296313383646995509045247181799424620477381316752544344787189696820255752967388786233236935646951696056595164285856503167395563213865101952944720342256459713629336067115740450985862773655715232501801206824202240895337978594399614679280755733358864294021418900301336726152314071312061755465797347840435708958325688622674411184109328601273447439025856515405381355581313677936621291445978950143435840054241027680134451452029964061897964001596206316349867436294584937202513569513430555803778001564689229412458354276117161646500794553086539698578308716842963395439280852295409929581227252807825594172259037888604190950607785684684977572103061863592094423687764630578608718967706673422032124091787964480791440354275664197823108553082313371437340650082629408635428547794517911759156065616818970401742340366166585509483169138972166991528520703248923481521132459679665218612612323789593199277790755027703062471825854228151812243388968422767813534725314776075256232828746550014118389396839100453935746727387331074982909841599118331712207707519764295021077135247677966455152245611484917341153742990631408723264595666974263385778346728914260866305547122469662749392860897056232215169932446427874481842712710525650578590718809875293719827164474647083743082244599535324429496721101451241649077456053861778342787164165035850147662078992259823627207047584603717956645925700793740238410628787509699195649710276080793708981654124489472029652532953354951015166463867327539017088732944980018403169893430470413373406958973890291050591206623417210230754058248646147580429091208250449097235198010142560300895164223943274002434756242645556516686006942485288920214268871432957776122920285258259180817231709306524834620222026454538995648619994465619703979723260680516999483445341435739666453648243953124423557361351340121525894282927652530388089016830964336851213775888307115345030908722630348734653951615447232277193183296756336791831394028978839314683436154564668344479222648870243269172535573855452941538807793864859952950583945956837790180881335987760533872843439425053527180623962153815345289721359014537080436441024468449947437294864607633492550977725455527604517985466359509444683123823240779315407405960187751641472149647271731724325471277985233180189393794341589407257855583454976990322120531447835400369362763874043593034857026779838381502816636103658474070293356602556714490402412790569590315341624602634662081038660436362730697441926592530619909286209921842496569276769705909590702386158220566277474385744938301751013968351061687497879424378541544934202702482931915633333758405619946097575539146933335038579504328136772183678647960732389566399163510935996681006897843213911413644983794940308606983967421448242882239910438842955035586053613937339592309771384702434137460245246609140096763876720329378617706197699881710219115046483571702699419103532088715700384646096485885187562908087988002395206745450648479021909281581117859410066224387005131882395544592132955475926936360248621436375559765106813323814327772516784968646964821267062225994400846570937424375325927175081610366244199774836675931787471882744501291397916992916965054803294481713061321859742394704261920589563233965881657223199031442076315748560503710536740451556216504431334233306662240346866987630396949114281753602908070797213717633686882993598389083316120686308490459639553640487848803061027856120913359774204038042993466450491892140622555641264804569306768979932166276134566188649712101646241205758978850627448672819055108618985425395300550368149164958428016559328330802817917917794755955003550595560882338444220959559788278913465293196709238773998782038732323258371505325281166131585248533904154936195883465971724467244144547868283679092861959048259465784996910487022141557347592978299833650384025100285634221460047117252059395367024671213399025998897131192445461148457142808429417319014490972295545583447695756930671898403993119038758200290800847203296794981020270765800645838608188168435275186399924397301684345324043092071168704855081091285967537258026805664691273436649754284377151252700978737447863107272898097583234753204393180345575440839395018740167140686301889073896644604777601986182525880598968899910260134751386851214548347231123194683722387882696955121498906853394472795624173281693261637488885370582087968039744496478354611487594914595340778657845973513908114507712289497753612635008713783219687874120937125824793609724624060314825536612193740379654180222747722459643024132751812344851226992805570386475461301953619660520746290925869860071429203109556914218733446944472868570601670606759776830127141068810680951079005660240221799637708597595611445438258081663274815110760812867299760514163403774581449056565851422382861733343360765273913925499680830066981525152077350467928439065488221792664902997677605254010804266678515099698477804709861434848181770722422711536106704498194762496601128478651045020360612796019415120779950916033166654302257715010365496958395430354606805970275000648663601628105246712493027070051558531126646607509515438719156176125188414835527439944645807213167532073576298515396849466590774161354764008114750002583284128549959930724517432491967392163779863351858123011203553990259677525561797488586491891925075686903268774918804778917067898864427587744860538410437000521708814025083448806737886716628068618366803426108134865783828698891323888146736142920846738246545215369786480542697800019552382621460966320588411069937115027341491045083230388582736514350931677220655990351030972785347662076189534990665175448304747532455992487189528256527982717344799459857315717678537216634734029269622461969826767444719351322157224271161492105575086457067401840068810690924741618691836229537296272183875558539856435714527679909032515701484286321239078148953647509914606658743169713955997932030129812285297218973322685107999855085101878368238596846368959731878060532114401352544931720616366567437274417638502116075736621234437042615087775637786964724604339953086964633701312108659188792423499253953171796231561245154342153186059650127252033968772266924900548776516419689100895107618366589056326467901460115481869342463328050661246100796169662276701669806575137020714187875674736340901078752345532308957474883361858415359575198392272692333241597891897623134872036989058043697802182800502211169400690373939131759842227379027364086815973740231516077846729589557542075583983030115678928669307125124755351263143525691303446452098245961099794901317958322375032121790783966070383188447547141579644024332432372939802155248138757873953125902219753931399314605815845819098022442088983424413273035258106419523442126482152496663214438930184278032979497856155495647675101843239294097536015280568280294608088116228020293198945121494337776267546376134456432004805049874165080913578523796154753899503389129109018402777592907618843636659595600555221117847088430209790650067264625122980142736640166154798752303844757098124567454240913208806927106584667878611845675815397131342730110293585047826788158672159831337449783531324100940851224500482604857456042745729847946629822853336175125126867297082988514014280877331280890755050271940835459788259446757750237835097209535416184717145005908695155569974416596733956363240325063784489459021384943773635067646220169301377430654869136133095638222183725560583011522974606657617358934484431539806007889449550963645343828823021415835628829072207107711478683774754857333789891650396213713051006253233564241506994391569632368504843842315810661240981147057332057388016026782662174309325225302331340284056137631074164471967067233840263999823313328956157685617554192885794488199181328078378962533776697494027029992214452125888391323159504232969193643306189125986798797958654032022425411398252696468840854239793675934379960040374069740166044590098757890552863743168095409118638529936236215335865187197979534724977867791758983373816117341708577370973259100377834918193481294925631530391894936582071228637341674698427466709503821700831746800906688490730175293907199016226297634627522959507279466135510932103945771020753991981932478102654407514231401099602011134895195810642078636487239645651449575071277413243410856965017774129345624320116550302158788750776548622457508436351382678919918574684809387833806450282965216231932848457690341076516287711031863139030314692548520605485809514590105482682764079999518441129310382859921306249760634896243353531654881527010702626387978617642471490337594768738432525316075610958922095411442813540289551944089103430408248805577456255326760311722862414260849339172499962308755392209571295879730247117899903540949780616823509128006213018594114130620663979900633313175412135721866707147293997200712414593010012699578592413344303648873538536781899174015668424136611347705792796978511194684727839773539869567821769609464032200672811754173478570311479383755890764697070449379903118668052311716964723245748936570159050175949415534813923088623771376540230172902252574505430147155807910446127983459741637133653989472884152955053731095477631503760212954114377707574982901047946545336936110923464868740604359757275133462965105756674903656358225983458423026563975670787013865891967170312444141201693554720766936700087752293653030151486580785787897698989861460640541204775302480608439735386138812700434061416203310391659171390164616414531989408119080614174742669147601062963943236923773417008427391418493018507085244266944175214484202300203785624268315054611326622874745177978567613730427910063828368717091985123380358383760357316470506598210238149020815099282447255608014287896876127945001877132916808534255206765463392049694618191097967893553037324732553471143246139718983715952740197615117535194985207828980603328716487618983719328690824575201985064504288098875702824359370935904842537210527549429018043958440678796515117324467124487739814668297534598087619203533726934370114304571971231700236504551338313547133649843226287343562433533754931668873072822635669397786108656625472800029177786307544059464934790290415509797321720982237883626008401167221670544025947750838630501140129624157046008016822435429103624561126465349535631035878951195837208277149382029429049619875794632338486231831259115034878772343084991153673373249476069529018387943696412404745969628985864661737393316215818328086488015203429777981798907759991427230322181829967205535771639977780748834894282377718840069361868789530242150147566829708385920467726231760934065001015167626349528437781129635692466494111686091176085558908510101740478272131491247027985918909019222759250024291418139594459037365141196134153524786360569327548562431436292879292583284364353116936519824105645586787256772017918901214053437494141846074316282748608971053144979109368293691929641339416721089141452518845176611666011188681892730720841119130305549128505467587060583838108294496501377070290872391266477070946972558632653257715766084621967420208877163776546093827839951209095030749401562859898483537687838010204129602367929412960942482980579420115612853485399247326237134850212239362060407348217196710884560339916337548136811525633749311724661402482236313119932362171328249626509939728362357121924438762689170614507143323949667592467098618338889994482987046075580389000080815214290733728689202667290464256241431303559451072139695073145801487286384487523820191251774269594521023738127410697980079321079413029120260308835542983441650816444024002906402655691673178068094665490360478347730149914408894936362540932767569117124057975730629124121488841946406297549345495169224778580695411202653256066329580967235329281528097163642233975437718605109124860904710008428483226358471417679213747126703338533268898917592312163065889328308194400323374970012577438830731052485739787214397552328743616162127962361710343605341085322132715188812832271392549329555678442042982823429961177074179652539142031126254424814283319526217472929749116216619905303084803311382872156134974487057989833361589769999735674447304904567993408674095942179985548769063222723283840543486029628394631651914334183690140493305525901152327139614579928124483973862914801938607768637855780096473737459430208167580503398299959275854036361839623003910697306353891917794705190117101339503167794063692024150457234221963500329247593816311522180369493970275091627977883140031774325771862353670579302035664770253916037151574492518201348827938012662703338677091557471672914805986905932418722146960773275842708390283051721049720774096898773615109020278950016780717827901503429437099965975659529220433453563838412917450940312451856446248299914410380107550565012036092743575159901860864685366982818538067226941784996984232171090133536883023552901312691900890988032034678115178110075338626525307653304069497072695302121870979091100274364234923757646136757476159669044397346101979226029464769346595116603530106975145756407359486600736397238232283294532381054773463844477765842352897397940823622020307829904664970691088218296404220546735150521426876638337686475373856637162859654551502751855060392265264613277455359255520974658383531473437968087790893267588886368921851448409031125274268450092934797207491888125622957897827008525769568456151531897880832976139536100531935671552179186348125693336220211105463640578657366559740921917108757968170653643080021230927198834126283536966427056731348109054338311659776549194947484081676180516504314483667612323038543447797309910290392662594611871047020858367469698328589841104157434881269804216897438330672439238732251325464345471020151743656834340492174645647813549387342116564936570975003427139541936461347587876261246008679822091717419545532020046999676120098999350792879915858003051978686527376278493896757567898133941450517648228947195201340311516404378604722126889464312321192251234741291808331478754092549261052837973504156418024282423289471519860765911745937131742034270844323933922173648377843611848903130014042642780931380348361465379887760993087493626615475700147359002164508608497226108285077217064731217690230368744438655758971596688992860821629900699420814692992521669275913031155115728872885792304822978029838332023414223043451240810625099840561851061323440903201072270956819915832357088962678583222719963568885867000167839464187895727894830139166461967717657909657518142968640800496435588751774690092750483889620120855619822994778479295206946720750799142457657168667978978239198440469215835110404663412239476319594691188970797420733626025085159112252457087822941451972416669262803431630851706708504957069528290802865017317296030410230909729811366487478260788698557248074276983220973578152970535229760803943406442755548982868340413850972413140795443178617427674238900733605916225509781392707924006978246064796638051423637836853911786361056492440073238659774271785889534178576353374389700195845789240527336364270917860424458947734664155178597503782114729356850430033248916876066090773029480148551227961246329354834967571124632946175168093597130639434574250332874573651485345880664737621234673967203221526852320608638451452638055505159716336878662571445549090022170706727443665409324427932543808979281994969069315531860335150243753753310468318906580759644937684310325562042986090909490016924276510338567972075160185185964516894448844300531349176833991888593184182709067277768294869213105738209295529527826377344579936155196892053017218251578047808860906091199279145829303849129348167176218187404373139902887840199583027666359133743720257866050749768553341992405510598997181932132932511934247138560350321648207406803174458141982120378266009690852348682916830714438497831164655884753097528196947197755487911031935313471271998401149137251373870338914688510816776362294964997800963934546539379751374177475141826845495146080423082999127906701726639396424142521897599408817458787363860349844638870374210322689338833620248449187077082837364726461583598140834043699215707937198473429061781722836255051668112299628461656738142204275472529378305426413567659906864295465082594646947452883764275333134585053902006662586327532740527830422002238525522943329434540096614648391111811915742156244229570625914734239122292323954102128634611913252892422368653118536782217530791737234600119383111328651681048744144509324579568925890601840669838685759214918942531167485228470149856324410719554879154288848156268306842998747812057611059033878736507806377152116937210993735528607393064976787053478311537966465863141526434728115696567458927316353767745893570881813542781941311805712952432990968106092359235482593761674059162269799972834171754349856589966206148321141332598852255965543407284447615693315464513876922896851601591441178820692974395127665503873556397134710786184859037867936785997029886299408525196413437959308232465091729446752502051417614713891480823929352529540505362293146364660217902297720348761034791939787251783906530456446963430870416374399976276757533979861252651012354739212036952058061658714564306089423814968360826325530219951067223207104403626601667181858721528492345744281749395214312342893732066747530951170766974572549815523210753760846734360517252430938178616764175098832105229192821552000761349803570599995445029851760901476120971824580744999275128242500213308654931623472802720943081546954086331942992452799365194027928504355101710869526025310071406820694580571862156376566903624423694153456401258449113171708547123875239955323348928848725239136170956881665955827657823029375678689776218213312527250084565051640935037006769021595982484946374053706665479841101079475237866163140026097807969411317996127594856214542900653619490028604727614721863078313612044843263334683052769048003759641248625699585698477510948023452186376789937839426528031023867386516802888460725186834579371360145928440831719247414909593768123068493039617945264261083656522659791840463982909676132342929266177501170253637406239625249238065816455739814885728557372665165257439648615819030020151960518838838401245050034482899023024535463458712202025934910845408878724854104967648092670816671261462696704514293980437222759150539717794812121836371104812719701802525267484771719820194044226141053656524133161773107182941134193822114528223422549345442520224715947490217283170821259391439393255072371858553783018925027862535729008735378541490993837237320198636631535437798340754950274527118390943350293138702679060809872083296063238992066816141459777961192687636371718853448556227481203226346267305112708831458787990696515523258180348749474456070423406733906190357116331269546305729689088612821226821418581610737451516687685933310828703540431530371522324049489184134134177859427215397858429349050880892175545790251332716603029632814634414528322982794250541436184275765166106016574720532478814292354690585127841355236855658204674323367705301107129179597203892112461666768029623754192264569578047988914698162819398764433215264399045884964476913012307034339809799543497455218728638162488059179576622934557913566976267202673237316035470928194064948744126917874494239939978552190935254320526492526939549081477724636938403209357747991615491376324532676107213129551517766425140959657162675107510253875135856935957357239194816043478636468200906379820138662805898069352708001768482733435452788690484258780396731585753648237009428660586724416038748511901618492041560633852352708789434398920433464086420586547640499797626585546164519019884963785952469288236507020509852028924408672378914888362656649022713090594795063957203989697678898732631693496283302607406601136651037802960446416247501684117436656369323918928015684028484998762420627523866107561963149036795186757086395911794126235072063888926937014736604291340687603860307432900464984467496991662567812700231653255132246315315102845725642140099416301338423671492983869230500472355631020458881994959663639320508456151581602716251857757255495009144012147708916964657683450715678050053352654880087712767616381408172801118296959020424742549017050421934903799245467198205170007147144190651533571444731543228340613632298131404450053936114738955963649291739472521113569655627669355676689668630135670043702132244445650517447243222788069398361209289140870300231280554595531202498201411658481856956004497991232645735887473801363374627743233850065633788423791032038466612870000879486657140438982174618216823479963918656763629959400817043905118523911564197878640873048393864360612467514861481242700924760360811750342343382491322026689344679212559227819278336224999153363275830075201379498244824930311256093736351312165455892510506336332476317881322923578320736233521955492816208334520778686301740935814892847554034774630251184508655736292901552055145165155465991952341359648659924996285178819575249245154374438934146671981566945464853506737522029521430089654992604643970066473601904069301630231130055517203992720636387636292047239012787121069977723433117716644157836844189800234732668399249369307665839449532374236138409263485399313404836780253676642225189054777651149329026899652122430438672235223890884175649540522860999953091906977176539185723061435529007557779477498638372569332178485036603321427901411536777121516441908753204294366376456713222217905850448734686149231920824484132973461657777475744803054967248527607013472617070557325564040398385767953287342007404608781964264277938474918958983804317587971995590384556326737890149762276909072715852073961979058068652239241843315485650899900662324630956206688027489820433643301715263986959106419112106675362744681466770465660148204415304917128994343997411229695474074841534722765834126906468769583402694346753554313375093449020169594649053388773972347770716442620264500284550366852657935209883448502165204012874382839040181470379934957333384723518780057583610485840708184393633604672887220357260380212342907482189181017537503921757642148021271069698640439187728522950763385333184849456354232768501253850667934003384833590151474644066494291645882151918851834171314388052272097804418455980308562675762335202618562994007087794402756025208197710175709279003808866767311790551234104082018660789337564185870323967696751051756160141056625375434156849245725922676282953104909281716357776238718763588306830151271937665085994674645460142608728778074225019622713115607345830931102478814449277948069594651035122581647571784893084440336049273087541382710811883486501719199852664428389708554046561712222269848648705586167102464968998200214478307253963083681570445977545722575133529811694079547240550473986690086977805664432551280868080390963306835684373902571925315507843512264028219827838414018613208485531996053856302579447966016502922438652930111618532694433778900594263151745764221013887903225239789420814208803250500956477843188476414257448415261489594198477060537254139180916260208190851692956583620564498683918221188479887189652379225256001885242641400538169074689789896661751706700190599527100999730986846199923878844049932581300428154151375966907674892577495688726635090188510014142453242217634326384770895520064862858961518295871804345473650891456293877743848727162507996078406119554411283066879703191350164975396411692454561492040473680450800618271464014408120083715106460526811563061598260617714391366767605636441971045120108787090161519959142510646189330520250926433309957758612416968592956033445256005545548467954016453913850705841443965276855157395524317121966701986712258006683500857548638584470670980094956145539883553891126708783227408700470707875276939591713539311571068882216183870056605572147821900841415056562722151857703338447555941935282124405917021952931894384749662957844768933301421950798244021647075673418637343725835303340316092044354738103367651000619474960753173908163978214029377461576021676655856477414692892016689236131234024975649224220795551889886794019757807702242623152225165488724967860172404590099113935143772673291158646934262917635541831391813522398817506843654780597752086105939960846685404260884755690124912295495176458176973848565998505610651230717980991398327895870777239770783618918023404124854968978410254122184449745762969229523349096905068024971985330487849072879103778778656677121122355842363328411758993047733673657528597053615660918087438953416153725880519831852970133289832858284548270839398536540179244736286831598541400518651280060498677935483665383770102565161554019666046856090469966061382357034500928360419477197662747421930366884948428016941080752923465340517003237720674300709912151141021893949298304288997074976149003615832929171286144364228242091521380099954006197276732913378173738936249963529523485387191598447023882074526717289177432904460501139435386879178523659793668915877352296919170150592205335776871057267982362925784552805405088523390381065555047773316746903381556927314070896162330991873045044632419514664068513163698788632673709551912837067212116277158583318517719551812258206463295516583901906678749078167968791859169011238024311040855578197753645104695878752579997858488856189177581293047108841679578046106877367244038843305489042664703415680030506962857501059427553588423083833949985814516503370531045905236558586358444862604276551351203679522758242900639981327376232506533725698660825768650179118810964726409756968054028036940540954622412279857715302245037209850798029395499392017638612914201244701104317155173918292484165835468086902586762145995799576186154002695857932913683380017643080217941186592318039716460045129046815397915882370953345574181709317890592996270619587248832048132148563188242477603420801585703904460129591031541302695597159220949511234644220767707100953806731525177544792904300001876941093623594378592554773229563434699338386609879106247642213513273722455968204540295907409901344231748590544451698907309302258418620264011808498456979211863817609572178813011568772531361163106253207843773964807352064346189835838880223796394059749983928388019355369285089533144498024510789831665315339071702490179337994780407521801225102666787532149647977567527246314061747933727832027418417799135201863369607625224904583711382566199798155768785429010579127344483490211327202241868121028708956101964224053331862620196909581538564092225178777603921950584357917955604368005188570560836289661207430479575890308394514800834125884979638694104169433170136034557049372355693309045108406970708699365551990744320793288759807074304253723357768183756812040236938817539224661286797034065617505291733928881544886647888015922523567990100355026017102453837980965955611214425418019574116852162673984821715100199042980721703828488607895211778581151648138851448801597697003578439668867641632006389151988597990743267137466591761268446675375539716454716566314263966133682629086477822169541261768451988132096037862871509410001489838965711571516116444345649138246793865756985381979847141534622852023051865886412400486463477884085955506549130143667391824296356476506308181676343331888821281257346480993937565967643966146740259831597726667870971412732430566909692640687643681872875702188857179855701472927605328975115775594330322771780896514425561989746229014528519493867525332873209295019416403828239058003862744845270217114560213698496800517588728412384550872319496653275422899198661567182325105208553009626862933329848242264080930617591150559846123399953887792200879772667306622295051501260491159014667140805676036848249618078811045467683055315493312003639679153242566434051710749104934827914197216949508232253944594138444869981392037595830017653925338652162400832323347312865370817350823658578192450598728046685815670844879102587710094246516601876933700561299146491077843427712018663852964932066740962574378369307391981137065437747958822892711628254335414648382795616354980370599100050294624822511006347267629322919270261400730780510768158044759298456682024232623023307759367300165044305436477510856875705889455434182865781920800241282796830065181034125239706905160472710415383801181813310526858866298668914981668923059924336069669145505292398746119270801701627715374955314017113962938726833017080932568766739178837810953180254324473445262454927607273076770017391504472632262001707862392856907337864418004801143150145458428247049735431725660962789771103056492535504981940517626496450040671046232173816345539734935280415546712261612580068487580420409358124681127107307465674897017134310161673515103097259267982712674446992451623931292458807253128098414182685716925829208701167734724912546190737424497314714542660786982177287414538921120103296916662811940462592852527970020928723892131504335128122045256551894920991958818628872392321903957486519937553466981490094416439296259992195054243869975227618720408073178663138212884900869838018508667047348800229214452985342139571525696024233248646871035802506610833184582850056900115555293371342037491356232188647057782167229893497815788075943641693668345490606818052581352670259810054039449899688913581209062646236613319992884860400058778325118914684929124877788466392980099170203186058644020757154753868571047881360908078111091931404371508066272535128309815804398351191799846787971021125527285869635924087735172473370923673901894816693740731776304206234434804465022427999516582673334621382022849185328493788331519380537472993185179524257039014507904611896742499749780624541863896661267891847194420856534182072241160233462643942972702864316979157382769888279058915896002134174656516910529275969303574735154486607104343904720850927060088502135078092326391902045608949261025907559286749578222207192189805483514672279022310202124078074823834449721472567172352660245133555144130548573617785743967444419718247023111011914802072095937271520758988193398961679500784778330487550354042317671728071254061654313591827329433587773022927491913559292970553628836426764142877426128197874284929920262301147621947156418285634328313994681454576592501492378498140989607976353259433478051523732004359456259634657928243022690775484813369677255168329089258026232779536729775242247297341785822145024840339045722013612798621115108301450291333927385306848217700396462587259255560741919201714980578211223811027766091167925505478518144324094375710175592402452324571237678568378003318765498173825471150207810050762234938891322150430214247938172119614309927755520274019548186200533668945210892448725479231963125111214936538869488937951534600942712528850969585664127044820352391853040703235670729920531168812503490704474480821355978187205159643812167254786382734607643732929654710814427859892710233960418442321549115881134601432397554708673414387197137380225479696772947788656353249366572912632141461388633621592468972498642279868918150393869882240808426518092706916213261768339913118754189876114684346825906177144447035592061119848461097242929004843206953187583330824156409737808569232924220667771370602785428411189934016854812986881062463764415855362302332182104822157747386210383380500880250356668983461575355085655037947100473964776947149670726739055550374319587827801486997084012030568176844954756010909723036443668695671271067513540760800689718803994445746353954745665294950331486160218997071797753535023668918424128450236179523120784318848526650277174017565532920299413663882281874298749110363505244820488566142589957159712331346980347878984954830772477979214156503924950552191866722016997928874241466548566912833244230013351449529813609289351874399969528729819133337036506134043537476145575051035602275572432297676001052083393557024184587158250759796987964371880907250228387491009485901725102185550522664481721338539372565474181848992606590475239446976046446909243089098495401414120914983149865861660796576712270771966801949777828423166975718777552757279403188394942803968839616591510744106506256564504012156639902209853826914458659787250782260463222769473086654993002027464952626769818100769187581302370052249363531486821751823379778770522713057368569985353923074955328767998983878649708673819988042762713854301830537310789891796483366517490256536487505910595253173926327269675039298945881406287848473020992600605189461564815528141641185524046812678610442189206395212695559287476369530374574397848700235284510500820611044702084100813779392755178826185339672685137704185828195960360028389236373417547593571240716268285901903850738673399244621752429126480512414964176291827904745832391509194091897137256188413871372986863078265616825859954115587103597806865586194193083407279669511669597219278459904307476495086827767454499421609214386749418277053327863233499561620928534279525796948730185852066914740944572787097143679538436216857299660584644287416364079905048173902660768309857151701494379085722106911757625138241751925273434228750565369736314864473108685106581302839053825482236951772389870437859408058617692208828454798445038436955302017849885723693100922719500000403597621992247598564555265073649695304480527912726898895135003374281404676989397370753512087884619398909396080597746026335523765412091210735178408103340346651094760868383864351954949803278714833527541659728554032015642913738016153520456084425263885413564032202392370275536054598000184537993192181014181045973093923666559714714891184829440327947331021940423856958142656876978762890078518796807104469266227502389592693119704120859399320478731050501922379955301256590111216403808077948361876596572012146743656974966873874784830137099859205243304522371276338665625580226473880611137522833742182998089260078419285753987592645405272462878421323234752985429436718660171286157822500234712514006363551696926642448986283996708408066384801827226998569714727365125174865690295783276052710726161778824896196272756594798224775648592176487597089772764812290041922488154263792803589493258010275600994999667353008424890849042469322144329801800203545950600372921075868028119852288974831554335376015540846754214348099772837165920586510825417790067981099280710568727639389835490907466789268943847833830657366774298816048347721556770698057751540738952632753058219725031090376836111546926561012062354914935211422053882889862176169422717993352804977736668127508531066015227740875528574455374562852322419733263485899937015411834448302673880040712028114834409552740357249551479593277288469135389824790717693223975119174369912371678883628216742591914567167717299680909573588279105180594224449475114580030396585683303498957572361712602077531765145959543582758702690348157810138852055783449214165182867279790841151794899920261018917056180066669432442810186202236139172365250953845820907265690324226112207291471327380229631045247059751643364585033674445035040214693065345263547509776248326994825374728398939244510683113019334832247419424825883990858269759304314154462765253370742685611895790793734175123948057869582882862621063274991022873861040428601948597615756036768996611854236433561440000032545374910454034425379250848209160261241053108597005931452503159721540155814371288788677687403610888927339990785244697686444198048955044413492201700008538770504698201424776935023745507396751363562703064932122190080644804733601729036306850178513680376395352962677229671443438434428323954991343801858295621131411712629493267075981504758346027020185847867425829736276346107081429991389486421914854749056878311245487034883845014909898213073219910472811405238922668378512993130481440276309891905497155386662841164711136626503766330017255965264258212995412766204195545601836068627323418272161709918396633945768145313992326868910082849963928319800648508247572277461066480896705288141061059542662389081541297267155831930409945232699640345632711941220587101868379141083321731966612773625931359476843228522105689446293674368991302476762301320807620674486768433094898201814295595164625238726914127928853565205903308436424349796315291427444099718903491735108501804130768858379082149674525834264457871861567149367233564186677504945567691394182358948574360584667104670338529478581722396342860803212264398780583295411932736271958829069930442151955609847053501923721392700709465884740764624502923831059656674211736397497086815316663541083634089822227466633868522045847131946892111186563043209879791690227583902854515460811036363716478585780994608515774360020658673432523386779800792502746519123539293655462854400481491166420898668650562560555124421763132647229708085110222629057510723133352049345630084862296225058509062939966616082238859340035692790859294719162870710385304780479780429829215209751731507132449633131535601401403743850285055362318631153645085394612277921310281483747751850379110506988234801425200911548773854129333988843036307115926482101491794302753401990103444583498505680291054638951327823004035893085655420675186564845407247059851058257706579211406274280325415937923683026064330361320778258601242539898378263346614938058129698929981264359332150162543687390978508410640190862813445345015407498026765748186610041790906452507144833759725496631205852928404511266997621418205102150333750058414353460513985037902532929114994028715158496945318365968679917177597046175547753153195723125092720260013703986595527620870740336256626523441068253141171014322893442713483096354301740926750708721396765671921881846862749778620014900091630266426235784373912983865732506536665130940084127535886522785042434748300684343466468811769943353415514092765804471406811466552122557175596121855188204278412728373318391387343568807771498007214023923996964120344618954612523502520995998214054304002187437964949863349703930460420362181487372690974811333295172677122163985669701593207099489072487041706533931950465070315482399146199200308689084115005425037251543755593750568314190635436845735472813417585221024774223599991302635717050163713622014532129690288737743929999438210289343750298444705026507199733855012732739418939376512592325995881209651611278855788467264097700313463380657734338059451433813851520207224503660491026775259852720047086430160931595086230604297954278503064822971708899760739811744335256342313747898464295343484291652358589899327207578630615824506712199480233908807932022901602065367740246165997226859006108440251669135149094078916379810586026464105712122553092221852153819904685497016921388927461472967260441997268530574254109988568625770526495186571420066885822274803408315541180408373615040419675058530394967930113199795628180130189914580750364497619459439054012460180827391223901082585066350589907426859970050026999819044603613546014721661877023820744975862790831930612762596711311795981539617441059344109083462290997089550907304886415702283774966595169759813265508032348141228072652937090484534776979461292795790466552439454365324418545500068276982153353347664173446727671382762915005178423799463516827564761585399323367748437612566695101413413051390614360747364069013442472017425142492554213331850527403767845370815740054888872223632366781886518327554762466526883928108177518787945397469185437348723389018685207844783936155093688870068043876928257122446547371370538451531777079239687448251303242741622320919737378068297118514779357113158699312016977512433860431304549477483576008264724815229057337241856412645456031254923372075401708827097247494009373616421572281772980666992269293017436994293146420620088741372861658471144529058720792811648613459767220096464888178806928123639217806978301724027456969818086537861808336646083493612723366817157171640779462987977095897828806627031723865427200634208801195944720736923767617646558192066709735462262623341924839897346576260329776879478506495211912863666729166039557315402532867493477064967429521757858412892747874680925786271942689505700071288527296828035713060951066741102272485354350823076469043896540913590177913685058821986237768935629545815082767550877827612357126465289996142537240465733485312003756942026154388514584395640656158620943689420377916809639164794430244465284074810243366560637953110825882933467378470074209901124747537842154894284071565572794404345421031236194284562027090518346601104772330609337029990195315075689473095609750187165061515997595835312375256098949289548067682933017464358434137671825812550685127163126736727096319635953614693256789692390815982779929773827478673953468708421114465901685017891016294688216264417729225938563868287847411586910823743709411208266256337695815348286095513966129421153603474137063882695887213285221402098375673915750964992225614380390555004846551107798970151641256437629154227947475326472253985670858709234976225745055013812575422205616565139426500906395364898244771694776267757351770112610875977392449320627486970187683886538826656626887899437720568329928604202116625085104900257295379332474526942766750650442645083737386974239036120328745650376505996539572004821349518056508839747066768660530140447975934955056867982651508514553111538614853632023367422817287653899033744491459760157084491298464519999915948186803788734761315936052821058087079646679965295995614732962560358163006350586191489895087785455917208458239751485487958441306236873684208363481789507905026238570516718987368567301476557698834010841814478103263671187706259777141772585550774537117364305766417370723037085352910997786072702891454454611999349981924304272050586583451576827612851889947104176407928728155635651278418463990682493420956478235865973958699312569659293760498365818158924515984971254023788496382366320584348703464350448495517396393311734490089093619668012266712255109926706583065144990323049167464636273390491794965949296576739048035319100156433456320847411047853881602264331450520196009280384513972771255828483515162261566936561008483513612149509540419321062543088770249779869427546711595330641074909332165287859570328021202008848352086234081724912323780570377862843500951318611369647686312351447101694854975437557588819134368619267026369362324476668563133241901523448001357820171653439462335126936236015804327024297980692758986282062055496853242055856368719559483315833723650507094525225408045561320994867858021210754731477513087207016619302818070697618265669776108802141664835567989619586548785217075084681241085358257859715718197202438213902649342961241334800810221683622668901209289041240058766365532725260397392948890434660178940393965114702495195956431308848656982219906656836842028843931755548332307322638996489230191235263373710322276365023818224476211040315921426166533231846706022659215436994132190894629525362331175704575637911038404870376286671050375449985125816404098132529907684284499983170224195340320470458686183665631543835338260508421017202842318119358982374304049666602048474372295369492628817189686285621401694135879663982960110271847885338877725782821663877781810269494057499162615724001836101132942280563625884549919724865009501145292404545245132530557847070425039790377899243911144333890051688744997871227990095154594326180767438590207778750205162658298372830131207842639699909170691842028114524972567593892173138044132174047020549471338598581085418786679693419121008496886705704789267981450610413852547592016516371229784720393455281245416966784574500618599414643203119009705939881171625346649251216376044421281959448845486762278581329968680206913925197308441044779159523491986233949028246250962364190666249918318059548121467062784750186635373870538184287122016311317888068133846954865525384444981182792890090054474148446447421618226776888358851549105864890308284462926597020402273637011928528312728016646593836401292124972844909166670542714439973702196459974182295757211544404700743440815903445450054638318275240638914065549638329236642483074894923814259922195129963982757245187849793043073693431574790176861486219571027525588139181795550274998608260021171454685044106406988668270401680845218953182866862310794007495674580827380495833874598496352086269764734837386153405679535935813981517023710207359895960613275105428424956938161346407279279404147161362477219829927078797162165357490528815955299565116408950304824922089214773181373834568028000316964365385693706618086107975486309438588355505733923210787070233014952903653218535496432723980164895892846580100435067157082277107650723882768873591630880132819434347582559439548873229054519124378943224955743299827545784811280042008560993832015766808178754777895932158051210283352552389279979051710917771344902145847341696493347930021667707078617706718800843990482274246859482248612438488724455330827802321868596826702808139366596843425693136591196502176448336772681651573176018146371680175537340890537632558522993232283718778575050569818364228129170265332846880059172068981737093833570016307754132356205020195666264108727510969908283788378355841375860295127465751252335407652748344602524691784895886198529346237311724973628472776072999112890328131829730167019719627433224013043777460283651671109313268805565170006191228463212575607746473202009207396498086288329250128046435875338803879101152197405623174540501560684056077354775229695467828454203399607120862708355028844246565225818460430287506885123096967973017056690341224941706783927861207459681436666495388477449627795760625606254488994035036816208004566454438287306089617772581079426311521277872046255855548021617701553099343918324074158877226753323578436230205209276411003958260775192094216650938121622977759493416818060242831258306512988714953792688736897559789273392274981670530142054417082333433400128934802849444166793908835753804927988020045537336470441809784827775717168640174894490803115330023821377279471127749167031574811149729732046565494695154148104781811207267691206544411991344372608726928463036345170504946822764042764861866513067175390740778066661873130561479670265420405191251977227779065163049435191218297483385928067119872351225065594507946300395928096945462561428030713829442176003214658254353305247958561630292869798708747887884201358215422466028665230047333361994148921110719716910109921836964427864290978153844460129008672470639581910977650811875712800701530610942205865330433100724493862404377596277717134276702641779833981014933331143602125892105551799181873820448440089700375395164745963709219516489108828863446824274044997831057373267572415849445784029063770877097842733555126665729634344259606767157621485824058443296503732850982269424999481113005406642416116177404500254081355337400193799180190788507572696154151770058303283093706260817707740582374319666362209486257909262973912291207115899313102901168337526316118820809349641804827615486647350272530120750066954215178152007431892524469758189312502820824228874700212195914097427665021438012589467412428488744306933928840133361722094268018100313188458702567306485223383330597016463258131086869239568224387074296197344550683710840509120036545294250760608480543856556458152676488634944536186893312748086609337395518751389097583777022459610334853174174092448429690288929600397147693867338967694319873566876300056156640006369827414353165203742168804107008086465326631634236778868860638504655352833682093209653982034062130534206926238176251903104941715927450085138140861002606613338678301975826309254240168397439000805055775753382962558537136852245324976203580928813454858038113982646857320504123158060394268425169476673637762622580195312314781403781768327862060696842219598727881443396604929539213235743860563069829519125320233795298653933424579488426491467607035635334089289339725060436358279402975859839851594463626887053227639724575515164066552907013767477746677748159765908185425607977691501885752621281684042631575721349604908343322842923195878207826671240180564304042840530387384533458206625938528317760188474005101352311709836516030008314350307778529267207444892069475455785025529414157597155617870962732939386824255530284562741151268143153618238556596345304108337546639629519178815669891339352485788995067199587802700263863533253454843618398491972398116135243872375854262907703524853199394143123191174181198708852252634967344723997648857784823641158312884862521220983375057852287816971647798254816923755784406513636110691168573920990675649091820057412639829500026877072969371277897045597722285550162803356840666202416516869497968385734972338250747791229413402067966893178117185083580302397581370887686352869561649464794755659031856920135906477011426605788624012409805045717932029390405842115600284553012809943019195839475156229920734957717810318168472098702961952244067649036402663531042908743696962104221915727336801500385997290570045646448502679010311132961668917590368809382996977595838265313605850586162543218941044360688868063024486892440967596322963555951673373904838233754043860657666788172449501324365777010910243906089874272265450278525924427537965757806876341378407251504777051569222384376233470002849220667581044822388881915312608677091963600973894444304656449889676268810479044373426493929565592832619574589007112367377374467639108754682229492828450402058839720310946229353404221944344625902246692683571512526737524830056250740849717649762250706445715433780497828795528232976300081155290611782784462330614498624402436453598765773367417585577670883118437692973485398279803594802277138134840803182574579663213164048925246312098088463546084951106643613909963628635897309108737742169132586728138595445152053710244258012229260472014011080127297791663846699753989012761276686228378500542133326294947233775631573413410378029543646063378688927375235493751609028653022577385753664504309639217848077782517994153171055716395558996236673710469940103657340599035552580010476698906461804818221111385317687772525245292027344042472986856542030436363504177725082029153836834989802947243427339126798069472568051685114748059269775352772516613056445824037867657674002258153755952733428720733953026418545093585293268998725561387700095303437426720351259281241778833359973149227711979131039152778138207341457616619177213064121800978858930440925729010145173459537841067824819077227567285593174860894213150821579237538698771028680333568377048595103700492267885808524947060320088849461361102929904330713986856069132488018468330251401140872955815968924746456551262498833169437414866136898900691429369333307468309323157385963529529845732988801793570332586849131352029060335013120714540983420434460898378205538783254270944013333961187592235980924952740098772719891799039083970889321212662170582947613860786277998008849475862999779443261607068601144611846871187603943336653479620429658279223521562612262821052605145652117102019638151843416223655306452511855341259202655225855142464567245478649946230482631917636349797669342439443241337615393892282002394626708291622131903253691492874028685469456359642865437146618662750960411055232224488385186527895512081503308427026875479559328707794666116657534551487497234655901440229407670564523559498053852138269368063226712265730614755711554426220305355788138181214620609617281093009395277767361681396596761151552231572348853305322629975133133218516627982234027659247662997391910576443359071721497048874693546597519987130050579582689312661640357170470822365434967103434114291986038856035062222148109094966527161443908238042466459366927891009232759878008236239282221747143693372056174791527125812114077013914204122490635562858024041353135110612546600829502566202376785963051872735458011947924380830387038757844492701141699627621712287495870572390604599145521788010074178189862031996084530282653560480899469396611097927977647116391015947157017213592279008451631982438650476714642290742344010075872162214546978441789019882808814911852936318960322927101629976624247329049317056965843746780122946438870361751117869622746560217739024176491242120517220221586830519469374849390466472642880805511209125581454027134811715317628367237491795252224458921385303726172960458674345715065156709766561522097143780172240369635099636432145901766570533379596574288379707865984541647078195479897806105182702220539411780440903089509514832654862985585337648155183035601006891336520443984627337696317265170377123450403695872505645941568067472082081103699080594753950439210146406306353376769427666791554116477298471440436093774994237720492188166378364956639136641075437975466169227755202819437872662756545343903447868824591970771388044538934472154568398229319426133853700591575648656860662032872248926223881871618982761294635216723729200271122813036635443896153086010704473633394656226176397059073341940846059084187869609393459326380629082995050477775885898948966539026508025659392576029151589218460361452483380125953057551599069486406815637312527074541620603491981094893063363845797877633871411280596770564178962670057084917740326683944637443038310345751175800233651501953434894932259303248122292162744854905531777147999626968640417542935831084767276692750948360139890973467748030661583167441754168426528859903343751891895578912434850195000536180443858556752391266915846857437901950379641003083195889210864029873670858802058213371365954831326783918006670774528014835377146122566788585681590282974145785266806043267216302134936919633103363582186236947320489034081543774968276293852611752369505748934578292439457822312373260843093647181945991271256485177080315133127042076056338145812129155258857122871619035273247621050832541154100967918924726908376949680809817172548261513387404598905143169310250120825575022404939981001289577079156428162019717352435195339138126610304889329841350669732884714959359224965023784975820330379169022720379808586873834054449872159730111963873305229362035681143891437448734838830242391710231229183633414522142527059803280668764787015868163146351510227951819908719653281949469906827914783030501202265951534139334983012582739094823781602456732149704777464468044707843178320472314149728293835754996346292397110102653771171871885942943330272628376374820646951033225247840569279219420883472872057033393244584515387514113912250795217495321206908095023522713651929890782297539976207630079105707298201646751432859371560926292959350186317117672705675831002140865221995943997779227374906971682971031854366339893735855346676208953640461545753077136611200161246712320232026292895546659169106919830943393884485374376969849508907205396256833197898301711884077301246945041128167883119685081607937948300837892700087986115674610821866177134177391522154001037512144019695850644147364077949531964681548030112650109693538514232330439952697088374432060214316775175686048926919101415661299290961196335059122261631782994832224394416520743868365180995966093938548099383677738816634874714239342622225781723287734604575763581559255941651745301575187860973071209677320230430378886126645944252379301711007247583727318010228597184071589320324094325157986767676822471319292072647231022687564979884701171171515703647039911879910045737227259487242122509300104494277697888086355143607512173963854896388546502003629986810614823003421741072373110122532184954175633021782110379928110106576419320790879718718697873544389533725664644900509254098068229501824610616983404112290919683860052689079330867577399348473276708402624316603895587228652542368591855633068128076776805701313402223841662691262932583603910914359532165296057155405527806077723517085792868494091876787511079518952550769411292798120718250754245131323530393125610964248505416471790917894861160978150345735337990145958968231778850871937496783997225258608739691479128378580418835413749847503266774231757334311534498776943518150348098782282229594405257505070963050132261541742784233818939673910102564970219923847158076558173653591993296854330272897060730880154253301777081198072068633030381890139246206938305604184477540344925331024557637643346396927020872691908277008077529388013999173413950884485910783747520194623222498422546150946338459888711258835712610543453131768783375851801907518573399447237946621415367479137090701591695926461523214553733827400089253686416993803611599890558949698199069660099192611732230014785821734436105941096367940177119687037576905595446592055528426458792437055788908289667650041900249462791767742649893405266146931380310036568568909209056554632251678493929177790400747782945817735039047612820261797017540978287222933038087403377006860568053666460506795608884516442353715776464764476554843229458505303260708943479861165072845842629701841205615019426000775629916688968575832014939607722664815829596744766180958273835722091677524028898920950077207247332698693369505165137887913489832648468317879688698113881833270958131753589448017628228928846515950105795776296440965400802607357766012991235561359058196938707387532324934186591533433259096609931776007122239138456842233117011690797453846431834009236784036302976999055868536017251258961681749084512278913133781502276496187212905178855530902754654454968478973237007716969193023613335900242694373842948410751711738891289344386571250276943812581495175531494851492991566571606751612184391661021962396480246813893355538151001742582477347574454684683982005651837973936657172849373601910866977316344432973487393516021133314063492702791170827393969177434143112201776110869010094824802199612288004916783830643533463880115090853480053992548888410770202162522783831663119053525547080157802129898877788666607474974050196989611037628192616892553645618929579917198621527878039005648149343563228582825739136250529489874235070175991523246299562909408001816602444007206011260378663319648856544698317492475180955700136489449535160474714440024481343435610558898662131409075335769204251943108977621603339406620309471741378607271693830858079615859074914883794988585617667965700298201597760015814000939790284315764844070571004338156138526602800935172185161370775179747850734852318338212095928508589306209032670544303778642614571257026671918445204990628908142642106320558508754111694953297400538726876610625866421887012871062415455332593455872182157568011325489183658236703985606891285233229653449006150205675640219744562593771526635412787298543040305835094313621790946795621856244182850953758819866159398812645080816696567488383866738786171087683247872650916770098648609606268593783702162902233256194643965821871783789051027175340001813357248119319863714146355358199035597652235118841333440046531579774544411488536841721920124693118445037196031736795078851353377557587688567097291031323691436742794677335857181082708802387969853586544507488543178402514102428440339973470311906556921191762872201771335160834186654162728116104946014538209470018018521654569219315116277130655551558741629232732827372200880091229096939489141455652785817679887538324964207339040756122606799558157455759034683445398562603167914009152381651023266851057400470688615032009998423414605073542713126091387994489719109323828837772104870522178706301544710102084855587030149943817579470442195794263909447446922264983143347714018356878816297255692280849396296553429601982028139912877288426617113094775264187934205267281770055721668192219807279653377016192852301503305787606750709351455430772201086156567981884883923592298366497899134083914145073542422278821776961034187937919274280038398676480237979445467941824170420127541481103294154198260678767656129489446751222693592781746413144249554213106096713389536483860121569461664575786308399846285433325417963175092530889399304265712240457508092369409644054351369979623238867942349066500284124245073580595847942412304453134813935674679751701924016584010566731960532063143330045736635521725592011306717077556101781538819225413698641438959422603904167902546780409825259702217115179647780672111929759878655741698658281377601946583058647337652119697295006635850041021117054222213226213082218169203958081679280284254277383259102441130141324861118740345836660503050926486338574768166415847693692517110201989853956785175637966842115961484670477010248550834868028841952700986996193659324654401626883440908586311343802865368350117941293968875301298961588658169472502949677066156092212199430296676019192623807707976540875801214678295011903443381482527998775742684678155011529195694775651288036543837424187917837714501170176599159808345225585398742114748448720182012503658041882716972975383708670959458714971793526320636961260594944675007817922235176685405407946051554488156891636737920233196878055697281585062164043570106336906262207650852605218623396928920722996454121096509014345460997670295364237571974763428787338811182410517115432184081493560797167668148365744981745855903662659379734112764729119257342419293426914399696668997301733972275550935721916739550853091503943933604454929180712545446649807085453485042140774357177824167031044109337149334995778676946920940713191413248188454911073714930601945127073338090482635022441569558857248461903425640781209921296492126873249185730020593246852728205432168995254311000391672679285365878026715353518040658782380586699587797172523261355431855453704758275100369081189652155438340979119159768937917301716092314106342535430192272359075139167799425903088976184054811356271420353775866534895928367020979370501963243194668720031169840887074551455564131135012527173805306594036512938863158323958591384166094474390602282588288997214356962203285177425122891678454945497376494812985230768669588463363625447061728047477550065492253207293516039635813530400271861590598212923796961425898910791075406681772757722711966984256267804071350350947232598130050243566514517343106689699726654896915990495266577759072589433689186018117823474399626240174689474604940804102592168417625991307806625267564119419070943121004123622520681659212503411867576240663004692975690366415439343240558234344340680737074827306093947999496278708662124818105289233616115373628104606234562806133864981075673481879126841695473852022711861642082985093080139185294155084028936750009614048457690574390751591107374911111999676813766614229584161791843948573378153397841185464366332374189453355385046498701915162213440623494767566373654193844181850280377589683592878372065272953094857765310415288134810797103582893097675068944278988554921232432844423832660655363731801089078162235146985386764416231343108640799586615465514071780990217573281672972681379315338921365292305241967151276403508779188059652525186653231131462013173845923176868743777591399543612824276418030806345801526878566275665955239992035386913559146238573083962291416077241539993513985836792672747046046909145306423482049172058491381115084298975516249795243961734515970416602394808482559305322116173894760842885851169735730383312951402555438008446775204575353701646478711437496843800788776382506941580768285638240688384124703267869367204819271257699249849757937304173781160703929269565930065090665286984484675360242275539545358104678009066235359610203388825616346592287126062459865803717474313996020260171296286350613265624568161158729408985089079438623295894399013540094517481371058925026906134771532905629420047123489996151199772726328178664608743706734367344301506186293216148581161324225917090179192671219124554395802770905730494284894252082922683258564348816313422290527194672511685660843329999128127287300493436894350178566203630628922921870733806939695300093186905831812716743935427187117312281689364822403467807279864744990625399090172817034182099291539186923477185356707312404160137961824876930543405494259716153001889133178834951333849268811045862706420013013365729496823220701076720128373576983299755558312851348452097336650656554954372518149920774318184679426941213741565236629899000133072714205712743102674023604125041975561005215984858705398980767603347654393571253469878169714456855916992437760453940472952744918430528105130877914909037611419057067311294641138859690230551572375446141008370636096339295177659259793781190830396541279382599224328451407155914139482849146557285826690051972417291580374109100965780504696951075819582172943066469510788925316736586418041267852938085139422472554016178909494329571441775659295702377678165715549411856685621623777399657469884573541151382775100297845543987550164263240214381445788012818904658840467040029968302764990276724619785048790031467462766136948007211937688646010107141773853214419636242407775285213090191578331933650733549846642474568112730875844634522280116585985811363362935975244839548020361991587038254852748191034779330632514220108383248500245713122454607482740592519780035580695935019151052094875050668351063718025246720779043219877223896170677990531844223870896755936684753852465620635015241027821457121793757844362344612231231083098210830371107077845237112757474688440575370840743583445729472113571210725667004474008226785516775692184531492462256184708434033477908160067833838379389054941523944502124173501812878951736753575358699390315931585838413425633898927576232408363388939856549165786390869705799571429837061781695433994972716807849441220505944199087231900850488443855527847603887165467424840810460524943217308329389206595905306730385328658003309560802548150305667688458916516721061560982204413692765813256414320668780124373616979342582679360043951826218890674093368160642998577627086329927468775845593078927356180569778624213084758258581238890173156924546128868445695830521582605953041603224638909241161429163990123431099846399013455622104593758223474210532268141566747112139380563995533608549058939905897187516058683031799413678725969499830293586854935394978894322581505277741429999413563968686920379148937319487134895301036705491968714235869874639320605540224443406240301888016467713898203415282187568551687708748389224006516740498369900782054942880270954477167166531865784143972232215232395040521809131315931389315637784961238973907713019449253473006115873115767202101950763923847231715561271026968203374430533738394508144837928753598071303668642443532524221853331427542095100553177866312134933918722609563374217518109203850436426501807602478378553018406421864326336335148959103421326483767280291972504337923334481582561795134046142228549930994851082388371779495554743148361509499738518064082728785766631954243099848138215664553211227472901578700703651411934154473109041649081507740447224085972871975128614240897704235217960096303165539000350790234821193271530231816873038498664833198882975542011868261934790947697939893748256063696251379583000258446035132280948636109310433371012000339235018390622614473258298794460377406749957113248202306226383713548408107336073015281890969543522088345555880592900841818128124896710667662611952755163747211708602074932706703489009647494684735570658803155499091839564986612110675476687932232092818515001113663337046033574316242552654059414026525873426486359093440865772556362251248399694646483265052247821749669215023735900367665721272485600642023067858473428292405992559934335987075275697687950375888243025361578930239671717320175368238941140163350225537473271485508324310887599280213619003455233208111191329792842049671766912269349596960390609799054782720814022396395925458975070427358950830414163074975893314904528893410481554158031698404658436497277281268339634123896027004405765879197716358839535692458470856363045264289856285166219721551259587195015065434719440166964073316078362172760363990489790516243750118836459392916482609948893729700936451665093992482099032183346340529061926664231523666619907167423109815263962408093433684822503936982179348609380511084136171955041948751761578688307026295654557335994404461053929413293135982396179380192234253418833091092751684162201607289004560504014079503053853442093052843008714648946685583190571623338864255992478685704617229910638280842820004999412105433294787897082288848151947440074483990570940107582027463691793125026809808848177924658719780050563672102112609924120313909717984196863404650481228129491952902957541629611076241196072485297546936470751695818567390212598217676007587373803269307147232419113263791296535298395202889691788463088540318882707953570461036550433100827150966951978004430942959575475861681445553391229948516754504292554352568597283985968635023371100570415378933331051479542236998369110003309773604251908562946063542411372560843078665900103758769566429603264906706892072812406686792950138994752846059395039210573765260408957950857122648934060290572952073213313789750711354625618406778703152099745787011712523842862335726890953951436882204025197409126803598479732064238973894611356114154443418332285816289600169116220451926527986294390848762079159321850234646418760195833125391769808186917336092570097144691077790492938468883303131597801691019175821496558606396070810385944796693421630713771553327265894969118067133431059493452466721146192570530312434652843358116950535811197182083997344434344225937398149654206072777917184543983024981408726255791942115443161955737310674613609347743674522620557304220273491146563875850546393203029851217049343722646945950274867431832129679745440502209556247257411162201481743897898240492117289836131013572276002952660805418738701195323076093008406711937322275993625735673718592645869925376978228229701270480740284278355947289571025746567766896508211844528407213504060685680338714149194870513065266263036236310529627533973733627914382062752620924907208967174533769672297540587639632472864903355359170061680459770315034797391094660606219284755196598560036731219900145414918440924277530458631203462371795572736917573219897420700560720525340595469883736223684050161903471979503474778425958070560052517139968824352398321557778364216864862237429465730447129844588137630904772688934198905036076175968238532605981987680720472375372829590038579335280066467109487364142338360421488109102423243646515546703128451602801929474600571525300583884208750521868935345646919346210854478434055173967637824906057439580674220132193020265120464453751900693712635302757560437101711904636133871828675478844444200611842870244167346041307936156715555815202198000121694713060098111085001096026442130123033113277557255402464095703334333998203421151771426880134345823216519760711577362990110859487435259588382684532085445941662615219338746375073006848034887557520217350649190941634785724617566393124644502813405298494459824631826992841870071478025673774930709520166644458809275383426530585633289887939887796995096408376739223599881120869497554217563429819470256449295958369846108719731566733664516460447326327846060034024253590916969441220427441460703648140223829033513946322531262485523392896770830585201740093889011365023975513669395486725927358521718163483012946777622530577858651831472128811535361030465037521489929890984934599849279317353262087254915960529640967784629438051746375083008762281526998197699039596591035995271862073598816426861993576138721390242791203083578189488573951304785333005925815592995159031169268965926372412404228302363237211652928025702006315341296964569966131372028608659633352287243871171249774164041707537013870387404378419901182382446398714796456243145515095751589892718686202389042344805659271113136345062199019956870064826540533105085528244939524018690521144567039302517107633712869848457033137758657894520004496950213029139900714472526319768373667343245801103177087812703315090533762838831586321723711792588435134245119826918918907007700563576311584396027807836462190784531026573340725733748295529009812747206276286803243755229290859897090055999181810560620967872590062196381669994393190058642835106993117021077187763825246637593341624942122927962214070029325688715559324406003852700963755257352100125687768794873701919919320807141388238128555679333839539066248600784988604811684856905754084381720130449287342550830805504326172632150810573499348697455853699789751615126482708473100801945005563149080803849379041116588181634270139632767544302187583341962928500969812803673431279062707833362912919245768755645962671092460023841807847078319923109069917870472441858295379319667767393309173022658928924204884594159384656090143649561601292763211145779259933847409556564295008030503458702838898064033910007339198927478937157404214098839851785576592615926313437031524381189626875349956789642296944578592266236916626803907145569204380334884421337149549010824372420291820149993004638225245686210608025644653090132333028211898008376124883256422790090800856491784794678788692162778939701097303185344056596830134523039706891860607786822820813317061312842777325502868451615741626849012567992499773704039349025982181588904571487594937275361086889207678663693883703424537359230885534441240711085837401040796272643540320371470880454515772277807937065773644150081168060515005062430243171584073838796894371204021514297492817731947498097053967383429273047892223841814726238579359065060690068105305804078340373839685502977779690575461227118979664225704193312444538153027202030479533188477497220026191732772276339643426885021849777852991611986116769672325069640425734553293932079440834753445788504619532334932176941855368811650050593001803300689145535575866677507298263340774029887614550617218616799567973755254215256368197161577454234796544687751102250422464379175426097202403243407999686356731410885278564425759855263847235544922280131123416448005909561431040873102767233719678943852124326660176885217844439540941282304166657906760308384479012492918215286172930128391640879697695123524247809101378293647717304449435839294043457589897969870650893044596526761291803495869965117081446963038905738765190650409927211772336109230841051099278682639588983745802543374705746134477881253222272769687330375822679951256430970311684353843924293025894597936257958019024215917771173927377967794818333550683708780868014109818383088530867762444869530282707673591113711919332778214893667853946199187754334191898190130413086769270624599627078006807598601129930343790572308121979232839865492286544959420030149810501815266867545338778418027051277698812380411600340700580170910473092200120576354247091101060339634911544560118099097682151712402083123728968640633221972653956433605064625566483242874389055983005505082403899150903735248319724520597767723195285319749482361021080254243853010909506861571797410466688613591500711185900447800908721392055444197864192523643638326294713717313356174156953067322122236079099051747054183153880768275558329871373706329580807769034641238264711596968395856122067783500304234685960188176954949929419408426224439912018803516199097545194630659825525271503539354814612288606316199821181622842589773944929104692770343494665041026606841028988606402544316826443076152952662415646411320616798706678654708300129338861109560992703245754301474883852101739133301323757146179448346519376248641113763398507959394058535788424866922339621814505119968464996595383842820721085367853350924504098863949553047002989725967351745677271250157632566690275207928918057420016596346925071748001068230732987549527992900325741635464727144642576226459806502526356891288951168311756401618349894401359124033480126619274458831404466966868615606726278230343219485732641356905168345868968917918337377071681338478121980800074947772242179776155113229070233061489481856921358927710405943702288438980469839990927964024325288387017013757986337205195503110066979003586456465696080658712654728586187313563407963665090440412553691585926517116333862449804835780320727827290047926021970150887374137960939536572633203330473384411305383157099912428748358306185465661103914262335186385128046183586808763463942709513584098636858375926971414394086405338415543607389555555456287294340043740106218439093855551718937429757401209819660454335501442058180978334791424204070299651682452991832206218446882197337671074959494625320710174919782204173211839339733907096084025244514711521655563029222252333678677169159350759334639875749652936108253081521154319531224325611664746481108919619756815557065858544350541083764752949757491411119918764893917993085355974482178039728404023610035903639248497492205622434574125145916799888761239781212585434414045914237796546065610045125480607754526931109878506403901939197528301422206290385140831140528506706065968291204262422059726934024248649443785216808664385689069725543372298138286469327732546956839321312370835181169025441247093377424592687233989503554302046545908816929192758920881651560869194258903398452250716394636576794537284510803609004210078302289061925021309138715932655847999527733864630528839796109448914401407863290378542313483173373927967954542647328112403735108378466992970761983278294084452182924937851378206019404913691866087327512163893068792197939667787774404583203330035243601194831926244524208261546544083734101658591391158670118062692970087002749289795025665936465390580446138759563203137089073735328349432301472917025104462475683129800162387567753761820231601950505963995125072605909408882764928738363566556051342972937923731423987902278850361941342861015738837021494944301099868678934556331593261314486022611377594377596015775893803722830432287427482236304140685543301238651289695256524100645912514487868008729350037292281740847592860261610022754187561796949344560769517460884531044827958098702272686776810617613224529720357882165535981181795675299432443328348433772585470074296477880843761314067409835221810296620773493475232667218601731471429179378913710779712306095937433156600323253195821367449214918874549637155555903096737109655518321920456645638813355940248637818936964953817214022008611469438259213859421210984766242359866883915588459034101388640199227809410824354269645770390219437939781496530012012545791500720494220902491526297435219652739718944422927592658233771740621336774243954382649310363603257044827361069253488809795639837934194665952442502606714112054036875379880207041179110729330504721270244400393884158527305367194913385931909462825728307522467172969608450533180672716134033493625865583599544156031428920585258356004503331495105242631713379366831060225402088515529131847466337549048144814229929131323320544762682806155625111946440291377361841451977191418445395004210439558954074148486319497444911914937355138057307876422428330999403158581394557885294176974970120423853853115580838514398640773582870705545497281579498854110142012289482495428506610793716181849607757114247582789981911863791380723612141242328260940148418898489452103894457717491091916878533983963799929105552033854332657036957307764313080335743718584325884085449273682640229055320541595706505349863953437596849959873669315419085064241968835255427786902931331281666710878633965733035793470299062723175995470237896367471745476094123260810838459935334917508538791473069580506281383200765245746712823415833265764323535925718528873414148382827848962386995397671568105185925935498519271278026602543867542032354234303296492723770715973279314958675681470418258436872769647894223364065351452588073369246081272357163762667635025712309790988968683412451449266537284112225650162540714979690899253231755182608004517087400853912468989713558040830616603404879841619898860036404667350334185378830424353886197651808636169478079933461600383611746377516364125442242694300589416768057949352992861033729725852026233523625976091919269258673270418047362024084782972635118049325654980486896663205954749297104763621942885885236232031783214071847982576352390120772083144092329373463478736618490015230409516004396637421876400574095276209152856576829762830912628741178028523522353440734418607712440616999929474550104019865643800402470282631844154062169840144032387431010785778060783598150080949416870969845144599331529201749224910168118979818784702806564475240776611352561933736416665985830638141634293668273297130707177467922285358246697389417588713778240716404965990278510311896022767634459507803146063825294554907527243867143222224353475454102335975928423913159853019493110422820850516090018733121855017780239105248726205645286767968495698977956781082204371444018973276685262212726304450430374197170160155113027293962498605541854865697046729434988878513719719787235031880218128210381726516340765736222392094841746711831339086189582826040609247344428832017683836569049767451082380809088684541001917261247459248946326008282654553925348034317605536253852148751456531727854277329623881438145127088608794475944160427033357689233895362407306059047010261633658324728065859533256312889638803898759634908954628112337048132063474768508162173561785253907565965036696054148332895149799935483465924646002162343319356644722273296695142647361266334957771263093959339205390931638476409340056948185377363610585384010899305869977658672836146791271205535573881417683327791402389548885790805192243157884153491599244724551521632710975031317809501983783542756351026842504509936575136455786559078860788112904255847121473736816557704763699988402594067290744109502958306720234080631689370586278354840772672612834980852701780923221401854399430503776867486766843934561486942204794672090543938144577330986325971380362978843463470458386986558977562442347628322477123684885324143634202175023041355192414145744431172612178704774564277847000251138566688040871806029470172244960655872152134730047503418475309307422523259227534758995846779891392337253288900925843366257342002889488936659472795190647855819254744997089111053386683762430183159562460164801919755443762916492319037223934320606172783301625030818762875850885064689110588778366183279393067882349767197304758337674152363560293490918074016815796960895364338330232082257132692366546007945811395819276485887380361917970122733290997902487009604953576278895031506854620490432921664206401219989469831470658392539479377199660926878978838909213657966959816543217130630684000807228641714538803754958118356490898234620422841430914631266815301066889233183256340008037529497326981950880166785673141911675423326426800454506084751857160939745868160733002619345524536318958098968758157036607457018311644693308742159561801578309115001066423950786940304252717045871424539643271112213549393243846687120551621545781680037969079129547129635690582991266645513214249502926959495381169134772194482479596633556467069732641584076554660413121104123278959372769162396081476953115401346729260195430270577989293175796375341760326179969475593669625613595505123423599480567098988167593527316550892158879240074569848800375047962333183123738459824601103348209096075373776658549394986724698391375496204086876874618737737059009991961455424453591787360130082747437456709932175085201980151196087960573946709510385627240638775969041449698278352125778746414966856299285051626706403404353523958445444702602537106793741947447401772124765176242165640666696199809028409732895024980368991165965785826843060801655439574319106756216434177822130109039263794433725779933624137475205489375126900655541070314554074869803639129528669013377246420575879615399432127957463299641097470864120033421196009018816296845311182349711124148767390824528839430257016109965502634012693789435437901311799690131425637694979510193633716418027419749251054921745229106627644235013103848876954179041906384810404687883966498915916949933408260822310530790213628400072398475725486297503003005763950322477334117076888405264941750552908752380356273948956061788901887367062992574969105570044642191878342839094865101764327555453759777787549669776935692933096828403324960291985787708715272277324095715610378076835570076618044263261769428967034492685671811052707022847057435442906569596539064341325496179078985221954686572447215674911468121925652438739921809428562671554475814125570347181738541607266959209083419078371843560634888366807087063106635360010001101342738817420826366919632137436418907788146398127486663236720869556409816001299929393691633577872589354907712584235533808134311840236198991874359276803649221953163617739129815453181303440070817065759225832662529362418902788062044810783148458577445664085097405743484044528742776736407455126754934522945951051633962675508642408527994253747761283554067110685849879050742105700587141035145770386547213638188924595383780663552161280418517246209153794984464680888031455538301749119082151344559831722015559921072645909522158045749271348317264202177662284697051979512744928380706096652394168358461527602996487415352351973815082626807295734560993246096522445316941834180945483934717749936424383690371267485205746544592315159282035687113509460790089158847349403569144684961397509778473625080897378156350174314762640960790698614309171670950812390690450504943416037027620782947484705392424611015235848144972990037436704011436326881659236989842448100447987355092684807562378534483467901559271673003523713288324581118607307422700110640313687186514728603959614445273542045720724026042763890621087932435366054704357800518084629528738689157028558460608008686059389307782337960626474459636209173999701236833536049736851889008602626108287417559354305443212675070631823236151321663778380069757606581060988716630879812823511380724865846598643385738990438917742261708618512707588894972435754433453645849718926229534984596391081132906549470393149424995556797968599593395694561570442221185435862951477321035303371433802771058940272757282870763460110502087904366433508690778326907941871369857287255135587633060918305049198617993037004186164360798968492129978102387650910720788119518856323451140002180298648203589902564562596204910384582286100651534196190942275893353733946849133758823045591690738298504802649367930297974845108947595371180004407757593494933299402603384154043517403757659173600430811714444559717519632918051688428861703928844549386661165964924379941300376806678696766111683227561351643911891252627086407789527877351044363564979410937962308504109469142092868444620409814839557768556425266625735185409841220294387953923568544105960557132626094109596005952126571733924991596465521369367902954173346247691233814744688825400738014837483489839882042381349570722182750215811322545068454158702082789926628565091541667588742684768858705432057205439433594379773863492781745335414227077749024341600615651215358613413375102809032041802919350336582886938237673029095736211886583877350769625956189619058567910505724985112320206458440541646614746002174758818810952399608934396897220439603408125265317407709869049753226604110520711157268283613136429709508024320240696417660610559647733579704707941861743100270273368939561994965342382648940129667937905660362797429798823187472025536627882136331815397091756789162359180431003929867384276104395560140340177754317512502777836524145165145398258714474111487784493054595684845450116545158702684507435814183881910176142472750131576479427223491645639368728692654601875375304658669023788671406843677093773399026204343452125441232905584430514611746319173663192560243920883250723434591140482639390018666586390258445863489387868666985748360060951302759557372597686952077831138817423540671434485729087375101451054036445732811895544963656897950316220983229516371422500189020384620638309658223803510371547378640587308836375819906499243559319776158971877611259603784200072268134839062569579282787837324810652321042222474838901004736739982698644861881598324180541882181048145534879590120551469171283348799101843628564262222374114150876602879199184700688917602626925818718137239124589276767977396054374218325730727020095899756849439100538119673069855917401247246715480650886466809766411644371202824459071169872178935165045159770641660980914091352395029280497956389523902566856782141457710016995848898133342642627073324340871633604374749849258425629778969095524317834831525233370134938528604599036170947315177259740622166116291487292332850533524639100824856762248440719852733883139603514440681245979082047339862027623593214928894878862315438888625386383179006348122838222634106429766374916634954476806920843598650358600866139876726208038938767994414301458050203005090328078392284944563054971129274053914934127793686843561816311045617562528320129511709019013190792384629119543802467300696947270255243157437730964775590698751160394940439207061327707171359362187408247167670235747902138312915355642698619359461463256376744339413248595398846329004320854349285466851428321671853500380660593908236360161625934279303070689560885185304659131323866253213288346626578368783661994003893542581525593523359933774090921800763179278402795673623601577852155620813649611298878121639499405662914198447627948566305990857023950357261602478904741631049731079985808905397633517709308459981508639762656471003609150387113038239382879777849040998253919508720326846788846988348621336591635308856895041459645600660323967336667081851294070999574550878379639428536643837029315966172700713047872160103414549759538811657949308680223472004520338713884978372291261568043353089764968098924404429939837890648268940383681651481959532253587641694440621481181400211441462325736532377106987087300085918504241133874874173671402442238657608955359355345577872101220749905456587054711741819573342206902522899050450387383169548262092281215220588641616115975980404976653310434754605575961461148849425508043822109411923358878722680824794726145239908004163977709115869814971785877417302783359263210158881650670737623489012896309044500263601609178790396660105836314236421509435339422299017257132587509730419931731037854024215609993401977490570027902683896729082790969850320905101645640681972431096710470153311838474406103314750043118077091652581822417881702056074923137739853376962947971822797922771032647039052652893978870578234200887853759993138343007256695680003888320183155620892892164530507780222559377891731853007645799938334537169096304156615479839578309313884371693022534945393969001575865640411790550974544134298352837826119268171958688736434507586115010727234850998428525941631017917341929453545472248870982535557292951816447273697538526827281378817362074717770209447494418829795485254450819168220896804882641894759531797245250768960527518284022719810289521870748554000847316762814092996074736582710860937793377806554640538396959926286316892810276309816903492080005353372971460377947669619278207477413657914246291681802499901043876887358563849426971854340440583517689528200893547477623102489744252266173108454820858597093172306723025370421811426311614953576990038320441489250874149181850986154085093810668105250055525974738274075717841901048961776112358396613516177181402225412637101154602108294833514389659804782130524866818727712012355853209309240496378019456498786518512809114574464134844023762399191638260199138306533303494661862236776459720017247942190125250616399028627844771590948147595337820128545219706210127743143981711327820486509556460671795323600441805477131862586987284671371997395375550710657279829037995836741023606630897648263572533680901035075015750917251389477442336303257496983394173797728702994288910584174454839118265635858811436282700775707781234172933370327181552406058438785846739715161850807210332820084437057672634369522538564741807894697456664334189590322162852687934897561613765894242636359212267236994945869684290853023702046130544827710270882535764112838644537040001400256061042380044402399010497103653982993851622745078468686161033546397277946990294867021488032969508792829130139088601234962246119201989438143058909295919826611634887193526927040270996913465651353711522623293796352416959199646010830056201144090654305586512865425059812089134309283306147265064005724153618761886469392936238649383591861590347759869934722345683105637280834146255592101288541029749666344444433428601868332033397835577948029216276369072960967468506073341858059492891028083015875543550383919337749940081316925097143056857217527980172214891314855960987876446122142366222658100419580019679024540994653399422064017116385378566679378279589269870708434823590459906308924406762465454404493843655859579858307552191020717979178737346391979195100741337339962377375935747816705393458377579079834973577237892723572420784429342745061110180233094053413106332844691961690378178604950698493787340653839080486419882073613582990215641100776211429711751852794670112416300407046387498214531002759227937407088792621506260772938966210022246889605329551063831910508457199949299646897748166985280124787656687729057560623251878846040031416993525393437088666556445490220272289339052465673419326710638549171568225228508497308754635221971882810626181356389108036984062804082640028939006229813119138557542381083991926042988247256517341277040714696722673128156108610886149229254320150114607739847060370038325042570524248922509940711714146609765829672705893994446207339510418833060414312438207490519975337042051024342397344657964739547962951276537403132375392570091891359261948883576190093609580373451471932386986828866939349554136362403454003212129873450460919481426566633572593179398341167613004696277681162716887668817379487713595842332562011196163640583686337915761951751470575424409685527595483547857131099412004098618370712873595394331009002548990681879651844837620035411460697922841495504135087126927727083952453094183367529932007381295374002712257840000928811153661417054322070343557858534896803513968464927039796752579159151457958417993979170287692646632871954953976770864310999621854997869103292785081627125189298078159107816062406448677337204196741257351484140705395890705609240576353245469457920034535994081496240918376889972345604054360640301519322296630875947099567461530990058022451789872900926317939208628428144252476755058600426529145913568446931501432272110739333509944239479087528802311283835978047266575990093116659128858868563268698570077224380949612464079563104983505934216762585665008409731842572661570508911459810862760998591767513019304482680728870261246828691565638815983675523775692139208195179811305740866601067654721245776020287460358729788922857435037513782536367059648101427305307975809346584217834249886883174943679185318610248270123752236511361347757358434214061108570061795612460051618985772896580274399662318483262526516532182939006752409549182646680940941083432720660962944490233012858465528331353535595090824679468335160167343857415301592073025440768010234691805213660471454940299320001005657588454870557514994858900568452070031102077889796017270720997299879696643873560502613539396170182848351565178111746338026088959829092200644667148715861072016996738518800991621771613709462292582280420758686671171752794752272869625913073764200387722296858496382620485105169102644607554328315158677383288142598576973801231332997763200932185417620527200435561258073729984503828017838536516830262293739512420072747385487942758602390136229585159451177314323565674522349982679406759456241268867383189984861041932474830179712413683472301978957150328215989720695241740924903600235321935350670735097509033779304920596860658253685165296407600353274505554883089784323070314028214098899686436610279102159963587302325151190016733392973841340227327149181590896984283043488542707085443066119132889827750904700530807824660860781599917728285459932080303385547410004823946002581405170868775659555964553647046827746796982481695093017610885780625054803205095169253413422493976125759326999008679492998395865652272626175426005030734133265882614113621993991383065068032062961859394750030897065208562758968347145607057675181719429159976192716317929390082737655564814162419805542179216839847066438128695962021097798778012270795668977646768419249878869446399552918594688527326633677610884652057864102470107993868372757571360664970105060592561115973972567509606400982119994755713170026384348826528942138904281364908292144279660258147181012477853894698425202367139335622640857256109438876019582919802784701709656999624083639424064927841794175562821289567197422165662336726429690401740399084767054645732945235961373437388248053504822035560489984534801940542253448019240951749086484468659704594877507340666680409439058308149820230025846009490142138567841434989312403650018366762335153923007851493120230604942569300716225136448302797435796281851341281876419390240823762993832095490380173821566706765698524274408541512275797603105930394781780141209920184295580657614415019539946486932845898462593001626110231612560100145262229447123120140989764699977456397817543103870369597393587020135829333854005275078900349966417322895040354504739099542263769991214325898967664944287052105733363149431400003303423920306432763833463928899670555938145063482155702692434012691083894234873886695464167170626440619310089854938288361741609662378894904231575075115219464970255937771363662636754261676550995593233638113065626478710402615931342694579887476541108725286739521877804616750432981691130673648034634398795626161336917646035541578004207772244651359348200007786067142829597983816447601421384786704882762152227828996385444712391614698564294065029524344090611276004400652090037527462035212427246697457188292966088121426534018836117251222145220107609779814777109499216130076261911874158425469210692712454296585378410163114084918583986386597724587020737183221130635627391537831496107691921292887272544402767548165546832405265105571191594133039359936056532500606382081026215303883854014447229998022349403980608198597278888508887387769026022407720511861961691403668215754921546334622549337732057803946638657363797860234920057554370091394373014396458845839116265745382630535497589660557774234952990271089495246124327132332166714362386786810095462248614257438021061915188764168098684498478852196528375800833173581169925794003555977270699683880135835828694714941308160809745003765804065544247768304718348229096701162029453319764328780719677254489708175966819734517623337856090484540518793698766576755027935767888083473611100644520411100801191048693366304389088079686023885647203958279668469767812490819137176479118580218935719062751337628853497864617081243325593813143379765864854459259200282764511429932413514484224715594291355356297840786868608056380204686994083489716593513215739620692747765300152697210716194019142939510241996673541975892839199114987208821628079848179336133492436353921774912836875462545566570356114378544552317338537124446598483757406925090689554306363041225428858335810507498611108652462247692848251388774138125209694917889287483792253049354192575922427901975481109880623955126742316839721917695427675031846238099960829997452394300510705860520653208560581901769873200029431100678729441743426934073774831171080568240775283290362227643254120881838694000266803486846695065225698334023642493123029132143513061821833028875143524822793299201002521178286794418815236690069167835590026155224511236379296661693120309330578350592571670405848026542933817917635708937468153038741012982030204134010315079919234943165195098402934950421727843867749886930597658020276715417571101522098998997405233375039117713250021598843811392439134161103741800371116257842653571578233682432047217505939700930614055975861978141112672523975933141269068272302340940595940905462718530367815842297671514973130411256888570360471977792483147431080332960845576283956212965250016102245219984183289277383730956290293951073898251125214540554556157785891795532026529719940248087445968871364636608110016216262886443388842039304966942755039772578994850531896658725041738251977929162414001843590283701277469614692493914940614078903389999154910330907041793867864392154235637801860315804577197126887387995166818222931789351653485084497121780556124306114039181608954528848217271188896397125966607745135798001897890022737582689010596843429970387918098672170073281338454141815272946424272084156677379407905642930038194286699932926193585614953476485919464078041858897900403224792849530789379213453031704913193494675735975798322657344967519758271488556290829572996653856010281529333600052490300639592794611617088855936668692950269085710995033047555194065602648996275406782564210547413709699725714981511297081421106848381389423787285651134110501996801487879455715451846149569117116903945222406163698850308362905657847007425311491581898936156144319134014007061554624983841572524047485574847554417528751016415564135344594005422902581063986493444082117022481493126646180570218149616585380400163773281301659022039955308622868313795786653732009093274098948124902476371550643798523445898586733777767756185875937309271916294293754382781204886228390288854011507700404761789344775128167563249481884255203612032126660186201232012424754653650654060409879887190739903677915693824620559412077702647876819763611822745198457846298322687563591310066934723186218561470149261320536160930817435910344561563459486986349644783390875103248616273546337883640003426656572979563873240200281724846436185291652338167220633039078332488024751946275104248874945042864105787229630417911017028704305108609443764118530264839512919844405774226731993549139251231846791464758419863780309281431763973338802366940165952887923150726255924152292283236870868678727531598271445386457014755996991081482303224509973148455856766494012073324481894260827239619172863828903463575574914915023363501652622750410749751036143061042525842861375496262532528105080747176814574672875162706657087885068461619214796480319548518480153189554697297629439619713586221755671898982605253513537101764340091184373420526132384858298529261667054598674869025632217506153530304843587341119928983917604875272725138462257985655734499908014565081125017533113521433721783535734625386931686520108271333099587663223328153071526024617715348018799379200740017732711113839498118600062248579074710094404388007955601265505421223713863319653219161764057081727212377466188010655350298183489822082572093518610802731827131636576985918196220529344745894631453323327091104021333932951821288559951323346581286439685617448139472511815545307983540652939892324828777225166360862387588266714756974173743961290083875841806395295999856166719540201452474180345511274135170154731061298808218069358260694964091165029035078562692497428089082949058864586132313286076128933254943957144813009441114801305991037621661519138846898336631503480943417471808382113423415259193793592778043926719668665070318883498792865760271687329875666108101717644572671061914854327152402627034790849797673508376716182507236238952178918632505003761561714947713262077750189886242780535160844055085651228958513541837278895398526469399930576970374271417243911987113433672165754279619603783087275662006530709489048165346180170293643575129301505720628298157342090807825589365403173897516305155245821840558576111858873357053590257872977764661365285733131134047854508921116641761680578517599518615993571169709222246641696513108795247512577723672258708330684535105790081239606969340180176853086805135222291612992086533034284986726595827483270577123541178158546008198797891702227555067372019138956007116154562103176611583520278607558930161786109164059147550372312925904548980313011985956728554304779785403014422863643431692003501088304968499142464951332634762205423728413010949014676811742455719554821196634036853618294921746573704292788079674835517276271994242824845182797643576635200490672560607337329280723917358901341212708812590009244291222903465364267868036184786318329233180124301894929681751010680235127214701398971578175300694650827170531711102131575470413294169272582725277849914385950749106162559749110269434131281653724975210257060497925057153830269169444421606359159667545328207411398431839708991148089894779441118317347904091339368695675390704399380920844025867995319305169226122392449125918608464591898852420058530758230598762585809303005559861790649252991828410911434745033778147597018196117749403241966601627604690534082350120042618754498383277862862799242409486684750156246030876403099698989615324208596356368503735771588001216853048762753714541982348400494303223577876650317135528982854341887795471870909439710269496258505879913124739220813504760834199003437393013051648827617877181808372053267506253309162414781022895020050486369859547944846612190449738796690384373957451432523392421313044783129772810861960630616692352954086916798566370205490475813340552882960086721118342531010474629251506948700504098839628595434317160284844841052415834223667641820284917774553986345056274123924073232791589404016894154461242369187587856877018039610914227017884725880763346698213698129119145860556497848930748232505525667431071942900437134197838890342896741504643063869180149898036688932413707786295772603189884850019494799908795869767934155200984528127284038404545755457100496511136741921741119376383133870501705207945304322626204298754917549395575726321317479538241456995068380491166589913462083733217149124310113305888825258143318038319583622961714304565392165870962501340519608445873731805229053396577731711648586370761540388734995883832185709484483944940987968516919904910387385425512322527573423168247987054018933705342633931129864976539059917542616986874431431276603725758140052561687342371522363419346260980507118924602035925544876438889647873355746289657376538634788906874930645875306259894710077848509954806747023143201108065253421367940570048296735928054729805253596729924979853908879316460053692072108586397813260143672776468319300696691255764788663646335853547950680071140045732234202299462554852697738415480564308362325962451735884409426186851420235228477283526706171042659640215359192536358405482219842815893284470985152141946533782367950978944050612119391726025659755768839527308886634937062441465983744631653625696075807916183454994383317981954110131716852244836262078054721962162612755215129737508356326869423101197399638984849491814297356765841811234882454503082574658254577306209936604295818787365937881585086428920187876800578111797769388706169819395257168165311896735018032553030560695352742338565213110705759156649868834180152213089639575871087987425043162424801703300326743194433808945568637082308420949192553710884201219103344603400176098291860235180012244991957253630546782048861555824350149596368048694533952578652376143883595422332992359922657361083209105881378487211202882793325153961511489660445800227713782358191175395661686692443650689179257115895756226646225989038201417363781274244993621930054003815379504598673852063499036995192577680359013149915552585674233823183427118012453704234164838805723734076425027265288512184102074157285487208973723657693174496326123929272872328762795917758256113769832913610155506141504865894614048648627144651982754397308888098013018229092370158285370558641833547251404694207011167594967939026599721302011458366657555859109961812446011459019243896854216143348502672668263002372115406554096615406389940772355345907977967630249466468578205421232277682883420080123598014894196488444301252076403599574396016440861502493019151205275322615305303378451725135318883362262048710441680724308973179989360285005619330526140182274734868510169668587262125753967548759411442938712791481634608911908275921654341047102038687190106022849672192739183415889277076225790944751191925760469007353487901129571066534727271996617454778408225921542611496159229323275320874084254352241123424112287014520068963291267421648845417727878890897459479601333217449390528039130270032855523350075002270866703697024785364010599114178897608154533135055015174903013497059704661035294929935850634967178313485926639904254289487745250915752316580728623862509358051404472471056855357054276232821025164976297435450793174992915766170482990651022268504798262829769056095636237727261405237250546000391420230702387167290390496595773638083312925988642444822957418156186180957112999859441965742377163956304285305318994368739987505365175893263321274072163769249032762577587760918559365046144229827137245945922255109781948556806312352970111375328813871875428137958054357146972096912674553719718855594923933707008730186359686404219310043299415831840417628178355575143034143594983127925091947837308308547907129464281107833173905792162626536460930682146496030786526558106631329728418960916578334880392101687415686968267141541167760956768698116890076043081849444363013278861636653740330310870862863375648096208877199161239233675733954571641329011370271610644837094082120377431812821349203749587563856329950763261826438090022936749360142183845778565231580186678423144817134155516889576083802759385377764592317979186310362446292707342839002402338662600296149540597910611272276550731203562635080899506527696282410149090782181530797427019678120996957559771824677183827267860053275708171491926279892670383769824426837494919151131844951729077201639530942211268431440094584384695056277260218700689818207189431321700195294723981010218727846736549482257333757853541398795641791637399114285889304293680841025801727909371740818100474435530752441312244774254489444760411026099970977457044561410091639101047758359377110385459227210577595361392051980863169786374868885818066400651369258842889278901056952070526575642179893098884625649014257320880000705392578825245253660140860931453821004005641654699123527702141106250817447963623509501832934250771112977392621704505337973741623635491393797996565042706432372624670736513689626038864147112907560425969021808080324217732093044333559275436048957422829603750755598440598751948395136710481222404122014728257579056632915164720057208896090375818945921990168347397665545299199916458519177792559561453752495741658640873740933461893700190834337275084081468290589132391874953401653075082793237840451339152945134644536902117776948819565718840637251638867348684256267067311621529224422964603036557584746708345982632314039009811716917545928422141078807076503837967032297038598400372542875335710970956658770382901426138761034578143195710148212397120340932023618602672189629314714173021203939020289401550401309562239118267521676727653142559629177144016887557100074946842035924835014683896731754445424599216550418037593670615912573494504200417468405489754972976914829528757792169634878243743536275139043168301887383992100007965261136957450685834992756918374980177180677166290321825117205009093325464054701214045553419682416320162324026644725834518059514668004254624182399541637416340824457157470151794784566352005343608192756029042334602037696786021958675024573958897657451839222542019446409764072843832122752703608966448398935092071828033120644596025663208718337953983336111424503667636375921806684653300754403555222884416703207776798820044506031351006671491325303781992730855477316264901707482342234742966057072282065475623864534988307539414848849658630067662287744683308957801284821634612126866132063698697022157218962642647895153486032383336848275786710115749058435979384379734999096596313372257063769578606344794777784593391897196183239795239164263426940875368354535260649360202564729749448735752099397775876336172944616370905219799428004310598728546637968684490179432307739135971198425953543100526951758896466792443422128803532426031908981385331773052373327584027077073526148524570692268224275993889206464709085088863854963981655472111682366569403048436736178955354956194447792341570985396439124771897846024070725439836778183128379782128229142577258603313055540173528280840875425934715366993229059180189250252756598332689828525895195321339470145468423337176971061747130806424459856235581289902504797391613040284684091390197693958956526490507085589768894817317245514590690254930767384449506452357359255954471074664270128004973725362673066428053595846646971080958899183541706093203477142317404526291813424545642285035888113643489257244165025769108497324630722946107372542963365332594486848534928645379043838486595391805503659601805202034768364134062291352828420460033303360177685856636267030845764698543061059548034340076069391534651697986985492671087893982939441214406657941619164645061230806001380658859920736721108849402464395914214331125919534772377021355555806980713826164158110361060670944439914772597450374912726156769524529236037887869864189177868852990495110409870378411656073958459688574757232821477688188735583604455449043586300505589737639365800297509046595029769698387433750335733702749396689763821991224948109712329234663434789303680436342902789604080396319935851606688732535810337603453717030324028174780859296628899539796473013873456948656278189587126840262569475667125922022002498078612614310339606121831033210255189803681815718925276565206990073763426598180322419771340897487226274605087071441701279636114124191924568153380396754565247506825407168125589150520423182176288220729020603085530029866456507259281517777541256463967615597217153994647382678397978340949573330229657113025909964269845385643024740864387565514882509330717850177984067324877806765411530191515732129075438113318811459615998789300054044764824048254301194487669287526247282117285421136647991092850493404521153994543587281541524980953627614195961040790969146443063880864569865935834795353624167112665400928501838028174974596436865885069771588317481970516375801160648379645590605284662462520963458474167114516624331134144811076293747300913765631428103932635571361838321833881410144439920471525961287360264110547111688264236850058158842782777777177532660916223644221644338618594945564684033705034250004874486255933605498390798897422527477417753378366281712753488815180075514196405453628091184133783559187259305206785338615035486438970533005554517859288368876621562372398037766800001745279961743148297211399562864066794799228129565937014474216751921905759039656231669618541168262561845366667533944369223571011999642986807520369543400673536279998875515729221227101706289595495077796886792469509767979205990315561301154352137708526902603477612899091637466910488293789771540008254222987180324082356581412162595470553023997219301484866127139119189046643747330469413229903769701649572560716871073316052437574640756936470747828313894392488809805375576656354213186811189973168711613933460226518968578117126551922116266447420535511677109712701217113187439295906473402159221693840192659127094833687167119454614565363809557080017117890945399504004588288591866387260426269815222233293413874422292291280675037935823045718078068158969867494458609104441995470801839716304366368992293076722425517201746472320900231472297504070803485666027191872058530882641650657891665530009708201796951204606187773200546294945578963934359095732479871628165006294175025436805112913848348784853161358797739361257531183062181353729000216567620422674884134529858808281329845040364022190215284606653063864731227008069590357351723746674550518751694567436892761508783728774266989832845284586894646351947377656273282420987785513156697955201921097792978741408466565169575973931046498505264982993125952002210060379911263733799796646096130394710846693264149757988895853573089076419760670665108505921614910587047037537772132479226062942621218913594734669811400255707586520904783077395469937851153578673763823943525054706056496022796468638952556053932375486435965718580544504594011372092455862835434690988446698170432886260909345651172919538966050539398596040897356471636975610186085401328756180452033824457628913436670829295026206293654792447884949442663664991248049371386173103241374040883395612744861830081659204371578355869329400211182303601582413219538836349747672153146741369462333339016195354680550240686634538495162066082578871119981938036766844091202548826358876950180478261052799652164824217343854259350059718005022973412884914034639432938959301628924771756721371481024495135681494476519517270640692052947167191055671057090312412068182027699456207744727165366989735670876779994320025284329668897496866027029496995130772752430499784307703475324457799487727801294094092404203527770051053838629267892051352231173523809682111563326549043009685224575828885526370240734656398262206520597711517896394076257309966013920865053618747022895084154783918705234825701970443842315767342967536003090914755666469907252205550151156716785912893083398162426751170284198536828192437613655417284617417687352644116408307727084616460102076453785345162655135703809076265988492419676054108588948460138725200510201149424997526327462297552309897831206453983744870799853622063067545773624698304700010411332987281390285750867845385435686476055279402801251649578643467327932353556306874446488096685084583154873636676757666554540799000835697816996914843547248460634253188364194668056875000367965102704879488269546479920835484079000039803906407788434606283280320331117753025124996328170940880592837960592307175067390303800957422511391290213068013813416415030338277232784804324514538926736383943496937036706748416232518767865034424362098192104866094704442477029695348443282531027118435227429942671154993142685298725357787269953569081262941857168949759555889337379647624111399442629559822454565315578821781718058312146587503307331763070003194638394401416812809820964828892273467696864153500184941501939618681725344826996380387289075765930805747309817594603793004045410233897987541864927589522752214044839686767494309750446804649820881401967394928133555792763968878402428074220972170570132897543925163403782669719015550576290343866481242523467138391543568300259859913852641312311451049940680120725854233868564671664973016910233017528609137603817603159820954997649271102349949929455688822082201752593845596093848615645352434935871663361707586602278136668934453668668761935193722637589971245588271670057724966116948805858579275507742459333518506177532214764227060280317990617363092105766713909855348978809097550466041007305913994211505087598388663997638523228543971263614343607778667422035393068538762033527815301421847152768315020397157292811454396475433104307163445831612640845106778079312315750657214469550156729380867283337151883848153938761244454677786025534206262568905941960996324348488189817135646507173095581854548987339808963963338902590687537097163667581863319419699429600511013908310712155192131317837258137962098424307137440058499489055253060085312759324257404899820343620529393709638674391537036142132337565018041332385923562811561766430106508187926656281817433068309519548540952708455008767066247471966466966193929064952092844753444037808316094259513614894525422638536688040530427779098844979385413406512584485117727717328474192801312094199873298539941080600698557571045680556412608128731769793597172271365732326977682507974325641451035653270112058675610432748811712988909193484913038033002994165276828236088054128098589258467190873057986985779429789005414645770751050654147336061201569365836395097656224090257131618216305486837465712363268101881763249173356446427461668869135951425275950185828453194199179660923009637084548652556622925715907681556729083676931748389479226364814679668758189548682547507669973425824948483377842840734867037022499405230410627912447446184125314564385934424625347555435834018655690514176914567298890417722553322190424494704389209615282130960811545048970849274170292322588028404450359948893070043552531731812591039461870126549856001658805444375231761874294442968312520280997742157930348735500620770938004880224577274761126749299525014441550351895185068241831552430311254283424793021090729325457035062427712414894432315920029743026905831498870562068471020856857799598689697814442934143441598121532473745404948435881526377833222638122574095710016957136123198752803024265478910458176887639870782188331053600894287626203420686233317853695502784722192546011487735744386158758869999399309310328870803151355593094329468572975340950340535644634600574360945921940286030577455967855705105187545128878904908627743617266808036269669004773469372366637227534859780736538316629592403089944821109661089866553990288646755658268823765229649119574087976849309750252303042365406069794578418679114640820811520730682036982913189145372350540373252126162230210294879076965528036332785234317706136305633971675245077713503880589687128760888519131461090720045685843969299046513813508955563163350620964345502623372684221494729285617717215591638899175681248102003777106184258565456682282338839298633073100464973546222933482212584739580437468120372326995449951807029418007535083038879445901185830693620380285872590115524381591371229672670541617280229287958675715184610962784371950926579756099331008099247572178550516790669190133146336130816322240629313392002038539367487345672152031665041444165681108530977537281707649610294715275196147465730044373183283655853884055655321598691213830262185205080427266462824408649026943945460045878663730402897921588129238661538197847125357398177413975699807318879331380414737820281128380774384216895723444587946578685131982947783031878496123946936964413611442104661493571796759636280748792415050729330707503513758756068207254863335273196545578897789610028106059106099865706566149966004491553735812560944958205614279126009529054211359932448238764450877922735135145260995002888786195614383238360118060140615142474595456565249430940661860524513796473292298664123709295504048340242991300230054986959956571133686264755619403222814374015226991007803554296109740404658802264275462319354957475002032062342030419527853885071204427771492779021456291493710508956286513302141184967718154616280875427854388143482648455771738547952026970610665235731427543466559582635330584248686209585609859582352403943323030136114557975195371218277063077773676753559321617859718014169217123619554070435123465162147728780403594228307240748683752352429138996422188510360531713983480382382066974435232263830515884695988122610251070297895520293341598621503410562299936455973945275723438552777390742710189274744619484562897113354540079583821701638458545205978942317394731045387678173289812784090316170133996153229886119023467675817372140392924029169093641286588055969848675990525267538002685420591824326125605953187602046102630954240532539404918476573574723784891608100286569176578857365437337036762107686639956135077514836721883829744851422492371078411149823926400931033835644036112254792337316720468905054041695789702136865754911904238333040938287995571660379225245171076805017853412878490034835997258641546717104502383576990901447016166043904612092338028223573053686694870721205454971666396297473966570283938066046246267561550103548597074572077680562592614628535831667497800551186692666049452517490243047353044012887738057661176668988410184660422055297155417305941802158969751916440198587925416123363402858656849288831818106803030443115765050681899869595724318865912401251196123763106923153707318176587864763811180522457144911396296969481146668836246787599779185199421002685161446625714618452153041876753036511864462178601171848831304316262320488936769535704231418690276256457907057634150116924216558404748576641150367477169307952385694967269227391693969561609999373786962343938763128711275202113267143740850427118390580507076316777262479834729477057553422312900787798896579152116264127467683049002916022299511117130891165979496541612628691606778657776455790371226867424744058100064241005422704099253296512969362613139879450632417149500445827831738964204680843186450418600722991016075096383980963703930306210739291260969031606140428894732017294561563298468377229614143748668510028951869285088508102163621174498895071614818364457836370580365734614187044933602949622351398447008561586436360917632794517615150496617958164096821146757176947842540663359877425631875169310326203779424634557679728663088885324382121956607748898582437557412264468107398420545462823837449810840992055371847798501733003060097540964955723039235433569081246028671746396836187379916170114529368623895805642120120560338539014196552841873905131844220678488708852168319608061962408315660776418577111122964174916880896337687452824282070176342311731565079966265936292797864106189384608119687847300051890742534533363257606455784156270340136562498267229021585123274450041593930093489474192254243926706532439321901343484377531396746302830387954598002708975225939306323228888468705000826988198153098280859914512953054501144481492579134867533434502890892278781638008956571840368195421786783182903252349277122081790803708144902044491822059843049935225643435807182190534542278719339576587293928120155494147743801724187586772975937752969822167619721478852038724392120591809047007412707270435157328283969339400595006448149846983069289029336967279713783587759410486790847655085711107737538188574182954728047980448210238953313444332287739208962268549179162505878771935455608058418702987606636683421246371656285981988922558562426537902680557017046345573931735391946074939702202316195303877946688519495739079124710913426712163106573333893242560966332829408715468088413411654514964704564258882927724331369832796411994133339631625988653842970017257865103851411306563720360014352751518106584056037229352238344479666784139557026316584103170826665423213414919707856574145927976059401980756361494045787368409407221561081002506493161814690145100900857256039359585967882665190454795553472133829259072718840308368821368859414409224323528323935670881589340621414876362743585588688503047715589782052612248928019828378419616929362108760870144248016152962120095439527407510732416269259117674557948238087486414950244268989591871207984825354033096132331482008773025217396545831075617746532287909239802096106961976598253535021057387897202501114665538803987833375338353364569016736990222957597174308702985844245739547561163218594031472492684889191231149961670070202863071676448505717263216676385392976612933486209546838254090624276273154072320959888580801828414940424375715388769802673445072091557183152344078497497520755729259041477421201282989387586519493651080116972872317431987717122560266864078691124199200264678751635372027454169859458812210839245753246785298149230226510532824759514575789906325500229681767269444527374044342606601343104116485744031752636973344945132832275496835254493962208678288032377044901667622287026620151679767126927759813900691355633493419975374227613476198102567640524825311505642677553633137131688830517850071911349263221304712003792496001785992695397666806902624855393955659233341516951636879032852395739476871669528031319676847131962747518760448086072556189957988213859254546833066024583911334987776138583637211704461986930818104097952677398425708820746494694088465197464070917050461323678165752778927202788302860241502076272402128032777171637657330243164125133162781506685368828028865961415696425959682812093558111963086398909504093124434425540168081110088391138663830222152758664301838282569018998126700532880815645642672758743523556758014731734351306288777988586634580948516237007072721236436028916255238870718339219763187022468631917772624046404033437566894800548265105660347055980239155497633592232888537031025176619492878358251087348351708866245644124542414371659713535638203493670876238373186269197798975716894729262080772091392247682325575604243665367019603181866490983348698891528882386117608969705400842585701880440231415118754537753323957840935779424755766300772163120449215236437014810377169744578996846918158757250050108853356912453826496212191279997048516052274972471690162766830183241190171584095463973888331099393540885226410372447557948208521531650203818336021647216024620059838994849900391055913685315443916145366570394323072191980720459552668004458188247110471670303286108125564893867288880514609148180026917749326202643887956235984506520266682588193773492813838359197029548039504714311239026519851700423106542431486448472678979479610123361797226116727089907400187063377666813564950966349811534523879017001400845923022006621199663333103388276883062683985841884376429798124275970438602026478237921239941008480972069868894249532062555387334899285640693070020751840979544990424089301808707144906246518064671299228273102763867994668587179467085263170638059177980671137829633480332952669127802818544645212647227237601293598972654315241145204660418999580385219262777135508783957369409448517565076800678774129861237932881475374319359379348457893074923076736714379027615734338507708870987019802174502464235771719331558838799669467944375122764884704630385906849076466885768056412943605722785941880473270419259356502773854779249230710121338771145676014701240032901593695535986625418824466421225266977680633215621263772339545812515356668749791970688914640196371763435685210850394095306531417777560576222027132101547441068689441836203369654385738665546197786923451860453061071906615569815440621889770396855271805475337161271611042671909115993122332244589336168454317581840125444489587139687249225811217944877534909901813113096311448239424181884689567836848299324194916625620208576432115744383948307727161411909836086572602877143273450542594130152223312596020381321219194640248224822189509405940720252397552988703005181221183445865683581962802627196904970680573268485276210458773122046368080329134005833135148941584286971021725916219541053371360866676294756192726892115145351488413585904377461431314113241188131810211137258388631860253882266188875400120802520244917699066983670059951974742213449845573946799806586265615564659794288433788282245028168684173443904727979733198966378014464689692082262487800863851561069370882423653290538836749707116498878270907677377799949973290097672572889641102453955787322309558398692445003174492638674245558117440157323730816278018829217767822145783027536438013207439829746723089731995500163732830795584312304359249231018602681343119551436383933317345232625262535678467891680516657705411832385488101653594949071877752712410189695660891015152821084261614067301131237977248768498775276212290881937814335218502064937836026408409068040485999724085729175153348535488094164524391072280428191168378464534950611848941269431505201979606765990697431376962224849067618740716374809059146992782508860593293958099151815707366819342897481874835953617407241066518160420879724325234140711880143968856421973109254877080893921086764099120752919375555276681302568943360638895207944034841877654687153537576281303553197842251708330725854799498417146405501351190753066890899711931272768558368832898921927644199602456098828351843698266562585407944657752700771617560877643018596633206334725774498568684815351111344914307295122341597396103732849127705377381249349896355599060851272235629605157255393748861202817902977591009391347652995876136846465099095535217922383708551543909005774281537512366959387452024459960886723787031547075058050311260536001842368165163791216947143622868765952641540130026158798343181005997509476514721637814717506330516223675006510829345356935713991958934160719273671135408640045975343668620414008851526349601950439288644809458985053313134394598672365594423333045601040383016596408917949816759699264044334084973615485391155150273445063067586646883369283325497539978486219106175871768900698947205855691589278862843574584293633249218141373913793910640303460539624958016127510388634326824534950560289169784541735562109670561301135599033130359259166075247195383565140770099570874229530668654138798826550660578571672763191157952889417598642002581123202768186494739116613472102486468482641803155864775485485048336916230299096232519239880596961869404769063403962897950868160013094170391975338781067576744910983976448533261014619080205822028786240807337443403744020870820991455184345867812882103442276260039631829638038706695067076130066772412611676062828943574898307099546033272024487849368262689297603499714800107635781934279257610019954534419447782068207075283614021384982851666278705293096514336195741088884286839178048309295353628651259297164821183914552163146209406252241886130959012817646949348636946908273056681320624185699756681526651840734247723750812066339231264058256658795209589076661551464918811408856873608817075758449733935612856905987145386509423290182188217092500718861046200706678618232669195958103240749644995431532419398080530904605004224197193968201711763435502145319893165765731336574530421822934290698382575273782302335242080765663130492657291027948266903502207751163070661684517260584738893675785375593360828467853286536301206852139540190797864190779102617510034736085276518962391986369787660530289174839199183421588323757587845308830390031214528230032890639076810450671664812494313200582120095892478134811300717544029740277248472339142187816377006304387289144967688638703376237575879466718886475379684937519257266346087793340365137001364600982891754574191039121872867044542783331250318983335022303738020600017998738904440507104625589868788246496153195732824229283812569026852053590578384536050344067975852719490746366412988686952330229471170998759408443742442355319116338720178377991678987035830516721650297653505862665115137080972783797793934276489003904296922852328359583559172819399105637791740872118806954801508071734423401037731779124704995169368798371494445625082901704650799888762409352363065237441365788315145623174088473373450259394561377027438493648806974925383268312782948512749861503378683338147693945155560504579925093437677413996756213144111566014717977892542242274094251434424107180410208256473924208826029184747775679493869505845158117154736293087484218747086291679839408648746829620740397906369690683151943400660562626405350696913156325241927570628818818561548007107273720471688935862969382990997717725048006580108826958948972782324450480642881585636111233202210084057923946153964955439946623792850602744680345898345269729642130430670644106366250287436885167824977203744244574772199827226960372952807932210554819236544345574899044477537999323652107772910178078773485279680464274655429407142235581934865741238090187234187775937906813806043996138885528008581508411504527994260071526470689507844970157839826758938470507969051496407325920365504212824603342185391882591865233560503148494699283267202861136770331714010442940415978033481485833755302195751329450155194073139712891069863852278658223754067522244250697909890171131105609256015809021309324705578110624276344286392504698363998062918054362245245496333195197588416905666270197171987770067758509607595146226118848015819237869917799394666217735237606289192302293807430706348959830629647180759690542207295192001923286351673458833503864796916593544406579232121427055030743239687924478765931376533548491066431503957192519940654450272810869197945310596296501939981029008485940564815158962784699386012038441220641312069655967862719590801862449059188913586277795049722303526861779715123432595007342411162685628746126943220472453146079244392839866719375764326279562065559014839678734280785123051290651836407350044261223850647007848612253624799161633668778332398948564848820585762381790614496828061997636945229891791898296678464286223311753173257917795740623074769829377531751701432424561470706981487150745263271227301129690733394513160219607418227017026645178789801302327031130475368385075365419855164148261708542662249545892697864202515122407124532570357905443035584758069843957410491826616712863856980486251231406054178864980183647932406638820347494916576087106196486599403071721788321292998185458408559235366262705492359531504016914889685430292884548490457753204384700192548651976479730480713715431647648981075008818439209852839555987650557205744926002209336008191804368117146135599877591268853713979083271245717794789625329985903265198216833861338825119598204338895985547726017636555654408386146663938540407975906137504596330616137154435580406462615218477052623366815857327371857714121412293482864667563424557885809689947271376540866570169902271548063692247888040817800580528747094922576862500527232712736515997689618322453369040064015537499637966083881388491832603456842548354355620931876862417343702571803995548436560563897834479394508040694070975194107914781914116914474090295099452228983111052258644968525004690951306029053855246632553413253866634535093040874796181081866457749308632928364983942365099751379911499624188896359797461110703605705945717246569119338067173373860172583662560200768362957828905913891137311636175764919002303079604756599527954496274345314654961607423071010731807805293496789475111404890257381137215077358896358692698090138399571099138100631382623460157353040837024901962110221104851794924811170071164050590340721429565024783741440763482606652355061800316966332388509697169352055686726654130464229562533106878508169405302665855592236916910876460936412814514272317826474302942934894712029461746659393160263295132233486267333571642694642498000346052566283953686450581429579286845144354335931677570254750722015358656307817184074066504243000761244605720219149370602151451326630403394823787254503990169583462828455198168218282274250746257463687186286252592029703131100458663175426079333986319090605013481701236568833201165920191881793220840551640760368890262319423567189655492438630642843162622714276979693079114532818562432075712468526068023866721253358073721560218231727310920175856432167714840608343504676334523978192631755904158915954164260357212167534583402029332399502116473231106031829265430991759977113888771792503755361104189659912680496791470177043786633564439361983779419215003915830701174994594484018381756068289865014000302678808422381606710551444492212531673366279324746656363773853399849998548777780449176329615196069853735346175127263638842298361116963369566352578027216056675539248327110350250466001484549525932311275217726062407793482124108408703631959115798336077137321107833746869761504724795061724469045806641377980899578099374477491164906102561049261433013369007682946904107908852650798867731992934360364188057094605008872406100412594111020441629092709188318996602869580667245897469781367373089041368917499441274483370767000889488617039545313287452274605219176079248504654420360897656889555861733168642943726693833714458952363827436929536691260171094813246002267123409762499074141160039792175104158920162203506099974508394970574027044256568627698145227438411225515920462956346917846088565268074929340077643171684384814632727547049117297977253100668335088776305884565913349279018847754271015929872929959383723601330805612200911095240682307118949497490391792983561422351633642982193373908242482685436800191906717308496513358312310352497680450585629158265605222224036913455419618499854750787292097683161462569140304163863053519623118241930257644949040054663346199193914013426729663039286221549597341828605783083998624953316236837736673674332697009672888457206746091384054417598834063720082756189216036610696717110302517393943227452016481628195673965547521685871888056163683218263225429564427277933086410540799411652800212020773759559761573153325038074554080284510176715834974012372287318900574207363916495249021218692628002243343432304243625015553453987627124618084762290084974998210045580780115284622794602945129432400015470301938896494071298435862084181807628929322328389616190432036086363006830898584959167277210959171545061106010430725520970776723650875593998042850965840877428457186796921534040665315551042072951448368584255694869550072665801937451318882175789153944774292801788323099483742909487158298815019292324826971576750516109939308118212586671535627589421641418270655935445228149257095017829458339704270411142382336545444425045036938849245741633699263496565239523042432120315172415847904798785065079218567677378100163449881542237447480853856626351285146032177152561875009046183454650293430067714900910958616227843826609011500354366584662798033574519347652172631694354972242537212724119237618686316669084638324086357351408991406973887326341848420579654622401131844137840672664723416597366311324591471355368201737835684479170974348472771900792991092338768289939232121927343106650476395767562547114800617378345931168951664805319292515392699921437178950915447164798229305224412810525113330589102457084637854477169185501026873043822278801282286073805143664674918035224071024586554399059021182386472505366105599877849443521887470789759186751777543640010422496884826073398660430653342550380453250979117997204952693120626678652291883289196519003641138168861969909642596207612312289435900393738388505209086736957720687055572910451330286206597809906714202397716945442072611788997439699990166003592498123014191361376347894903143881901092969486659204271533784775014872781675323165722622251710876862751649400076968754558767900657297149768217810688460956316050205296341217941731471770452907957411207218704536388322508527546974110101508141464100738253334573658480907231920557170068681133635029625604637475249195821211731140362869862972296351325048444836602748248603512661044016412995775908655340459864749495942132992700855449550886954365526674021870425864761574555804113306547327819523069723335149294292439203512260535137955211421048432449064314847380852700765665012804482277944312062978779495414893911290067107051362729227251469919693911783224641602116492378312226662541304592799051279223132961799238092160125910930770800228714558911040835350441914307596256663789518084593096851287838372075786287379691787095464199996944627530519765069673951026010438987261362758511788051458948323287204526358418741570433121812920711982266909135783232326161554584604243284767401777593830435085250688155746252138068384578917515409789984580565955432381255169185647362334087747249498381814678622764103022821411960231042537403556804967981798719524936408930336972961370788988822303613433282015904843793830523283752300043905389210374822804739380877230022871042560799466983638548093227430505388635825831728817001607014880465226272432396634932230326479675504591539795094833991267337289289817408036558615596323361514756997388563623536576336371027991595224779745370636798029026196712493952186430238467983681840578632736515288811273857462608626083739961790129537982710651176087210038308794961926762581491711414857414560607654707649970569832620318108460922380195785836138843284866385644884389519324789895616827881885538939287385436109332031915976006446032297450403901418687963682065593593646273526637765846420312374179643400831880888622660736304199625526890103125607690125712265650744672606836481106937541993066830219136742934655596244463877016515360768131490033204975795668805051392272916834236735488523730128867021278499340537901971138066150446380773839125434861840466676196403287146815790748841615007042603045172049258478920602988818596422363372767117128501506965340017322415468726587987211769512180589792772714203553553513328224383088720988920975581565087572763119296000270823567154034362183108302424260680204168041480338399879815648439496892955892659144029025324404722856822038201486551607576835219042755025461134579136878929902584434809860509778585659330115297019826616792208738117820366850601218186301783733327675273918470558244585934975800512976036045929710025740840556197750462685702484259893824999747754715255121380748208116215051832122933967724748961984613035458990083199392461542323461997663742071509447455624874815228915361233109311539458373933687826741327240176071204164856795459519314998721407464167848704138506830845798172705854800424112697115485421138068519749183666054919065080723399121310589755959651715055635865134894470465490700142094607913120334465179172516130030572440140521434877594542027729691833040959905352580207190003161717438914163516457401368906618085399058825298644929152825655134781417851060270324650956677153866175149243750719682755865860359086189188997732001143267398609573557167533467248759908241790480116913028732346143600882190956466323430515722219872688056773661514076610464514369686740636217523892305771277681560973706300191544486501785344352482832802700320381341115954946743448326327308331003568176467187904562236200267238443573078268104808306070677926068399097093888022683976646024374668413991117781888118627971775578527352549293528343580220588838530203235332381866084882625631148187236575509243292164252511913259114700898659102555826741719128810910604135421356713723535275150073334444395012007006657007600178604533018025341713468625253856347721494956598628128822972583202968001212418378633665009033100612927165884135487741208603174167558223588300670169832779845791363034002369889306755220240699275785077118336308893594634734447296007412201197868658969587247627390734101257366919898123456152984695414654812645293555439225053538302319712069593641581086032217598411721467598879787015312998268653536856735682378297687260974957289252750184786868552669794769757790365989449594961680128723639340322585131532965243470031362102900173136578058760904168574101441783628507728046769562115428871562059447600330977029597208062927824998221647076989680207713685948821562430648746212069348785505522001425368355614101617806022717357452558001743910592783204314044635720887718850878282573285008873022749920595104833833268342218274071795730532944561115081269229457571783087101421932790679501517797649715514594798145790383464907941019395119027454229817839876559329376238096791440094657887493777817413752489751170073732191633533693051634991834887272731267980005844160949558342640793081654008201402628768380600575946704830644648419768508954124349626578246689912719365866481350342372019590478287262522487318175773315521428177004053891509602294462286960875931764322257291488611286767455921246982632044126151338529406304973515117668597256642276380121689256264738923830259389056016454052401453459472956999697554710298989855798237254130639193306287192759548223597958023053649726991855013328621729784076687220755193768664223106881823458533794596369075509045907015529194599465368942928430248577952920908861776959717053074725735618881643775427167396321175609753205238946144625269163415866806529000177369818238296358575882569207360557280867389177100072683492284578013691887803390004376805403273454549135094072587072035180610072585206453795949238278432465160964364868237848324050171490092139570588154075578244752551788240484407843524574260588467437071644263387837864166290635201432135159021604345921175777366911222305606926531027839549286805801344439759852546836485651325690558579420889749555499279699470591865694514329203304554031761497142310980403650491235305356727237306652627026427142151575415885933989116439814893977974026228856389446674988831341601478752094345359088829869518358829116586084539601546144782237211904631007220776230197381140443355675226152675817525912093281372995082854317159451311198942483392000860388380930953975944356732262382371000948477110494654672376067747365811517215223337059808803980222485989266941227507639818269924466170195372568902007389222193464509771837293686056773929395226001304606377966348004499647924915571361183297438750337414668073486244035166023334579441467580355221442464424578559580003966292019195534101124455314434669014965866002768963969478949712051661164263532147327171414698275846644637743389849311531930983081931103859295854805112809267070393892004904258016855911411876214012780246873707862621827903960711655888889739426782919189167882460280188900614654848886070914682624801961301554993063561073349114254387934709781040414811347505546207859587294620584543974109507253739613067327790743054648075813818762031138314147223434822066545517044299405864218402700974664437220907119066051151920329751975732336697190058073432414114391064584857131505736179633011156001186179999051887130457122575553484865547796548714252289314840834503618499373117984123276761738094661934294371844306461341520548171785991901323335278238090516697129183663377107076032955801666984607187398080081233362834674176075559703016701515471687148400714196060238531289100537724805745313478755998393401381450968749905777910312479223462204171491084907715555371973649120922292836070585276600244321199024440425221416124871521791198550766849883720777448364834313426779495293967592768749067452039638671494869693854540055234312745244075858769727990414157601298305687976827203763057450745156196749463834657718537820356586534347658125897847093680326608462196147252456600315389237232347321458177243123826356001333040448804730740163354110702931838521163255973602266244713816236917921046822204389165934259530774026192913519023241385924781909717119162806445478036775886478530756257831340795252760733511843282057464523845656704969302382722171111494398390688608807290545542738555755938968956265635089992300265055662174096927770166650401764223235573105194459518673035770809866209015123074434723597860138237774627730120463063961268196975925229757278177566786745561287695220989872595001138715262630726951043492993580481910976385695193269645060542592240408303666475538479940676546561222029270795031841053461379844026044027749671441047388381369680418768750459492566065351585596062985532439482156476550268482401394741144360363724170107231095029113160503486538327928341653389458597510545416787313506130198421602066901753793818069432147816960433275707260415094533453620889077890672506726692862686627204189500020678855546762957358173067469277405026970696043849329180867582197587987168539693599900228745807325370528767145683715974287802718648957600285409848038136245228789597985316625668491758896416266812830438571211326524595043223584184985638554420971698403080908320478682565851046627440738453619127698660298243208590216662061725429635855020981131734107479070457329944887689166747461017242757426705996689251050103474812606813829295623961918153209503765593282822081509812105801084618277452772133561481685744126023213741106625116243736750508538198755747849321831357366740242641754672176474190150447041194566725658390965015361587961576411607709752160387233963255255737417092474052074397277532466141667376138024607568035586729865653350500626878151099198989475374987341559035538097900312877403059722083947467107430300227087325486391594720598015380355311265748693178397391032193616410584171480169413529721178091071566608042329694748701252388177764726886669495575657667609556435681513340326272126046490453681149493335250341790695158778754102562928895628580173450638301003190500856237585996915167154663037490143842097361067229841204964929300506303913857106961181027088997112189144670986210668534863780249366358315288612921442610179520883764741226137817890359822858131429772906681764506975089683340149832381122478327627846857127624958031541579579145546818898654635896779186284464722320833854419535207965695975867588500992029880214681275163477141527463721481309262091548820628265686772766654951943790499639588309996796903580378659186537197072551575200029747081470709680847572606808129585346999146251220508605895505245883225244013803148214432040049223847414534784345921636125380998210915175449710743645838412848624073337030605137781422227757804016177157134854256503305749126735050929240839219205813070861094514949476776627843389438809751576298933381624054094407507887125544915287699219156900615682386582140237122300722401956714476920636995021557487550374615287762981282718039197663134774804078708133964101511346658507700138704162410584042998375205338312490825545641325716722193786020730006679593889241805465958936388131251195597805995855508226619005256510972117037953624520644482040704902812602304974357140568241986229612417373398014434460063523007935392881887703629161711157213797850273402773869976042857140153303864027658553476000255064742727613286661359950752786969800384730901583025449187307718769505486987521121942621146465350739894852565336572884062497295999246255246429514651508414905298308605415665976428390466248843110303324325601825628349210113511594574265832688081833952160203327882869324267129412923770742485672556283438714393789784146388580413742275954518075443316237106053739616947330666411258224299157322347179766068232278493717905200510279535539305692336544247033965612901744666137476809291281752683600299909373857926098282542614090637378241996840388671487546434972165281216808154743354602886035293554388396939376130051432833682514331365780885454982912943465213203841917800039580313986890120426595466304290252916761566249565643518637007004613193111625827566554534297886989850361532555106587200660849526018986032885013916828498613063009054482803222393439861104341439541522892114529418801009556583188150661359992087738895323886946714418407146091945997252851071461950590695091426310050599388212359166455851606315110648166232827328086025251002427077887824862073853249658462826610092466292399527553811632619485290072304021870844691393406299754372729246025430291151580068849113406847764004104442883886886677885679594466852920402254091340535278671490606433671718472978256668995004383447620415289941498272021999176961843758566896272114416705256370669241643258253298741471574650789203074881245337734850248090467943423834149530784009588793440756476817701010928584057243602553371566541712551894800597562771561484638684159048777221391457555306441938438578729690993053210270555157542315226626936052724280326621486176181592796996562552971211667049969028214590594759301238596885612999545535021858849266775286047593922706845812895851563538245296875657520291591079254690503135107341734753106357257401986043673652924403359628942251912147012153506665987270544017463232819199829927688875905420106744221667544522818767932159561965354807164953073229773784103058446275390038081446559239892268157441512574562327139548140872027254578538239405021996389752033659207977523976092124103605871493330238111207817814330220597389843657995918302332524595091859180482783913741971566439091670890025945860258500345366458792990813308079212718937999819166195947704099515373161663420351720214706451467343727345654099750910730949293532916140081321576266367915832868716052220607920256584135409528644591315065135717782537795658612533121198790087562602170159561363094691438951905095084618135268171134086746891923902325208552943139641007617027149940973005771255107172557325104397336977044124435883138628824978618822066503510293406918775380804312797962918689030589498218264505813794800903958099617474810442253157167717271257463026884049274785733318402369790850636509669708071261747430352741827655365425137009760140965630444264610176059306847595988545933882536745147694072074904855402901625316090982662677005385403464179760552978759134877104155225546867225057667822504348665488234113232915706860252319454973739765602888558888463086154683707077786476721777924611143771208918113379822086939697296139949008213515493691001709772748663147562557362643941255881222913605498816054148294697831228907992373975503100582355965405387746341412728230756131330401001710082771022050243085959587542232135616524587261457944444919193732654135188657659178766990058796444095595121991490053074830237680987454233237472227800653587995906803307564982946582520199231272808703227937667384968241829160029753236626504211372137317307496892490193686183985220791536430253601886346232339584986318959000262835138443191315178029230992912848755084255685345925495622249574824901196066441637322937857787874367013011041504434727569405944955231840245046538139069497082927853936870220598964227693936874840685766285285177037722134095790594346024165739293610276850235723377304788046140987360352945860533543216266386215062872459397400431089482747246387557636444355707431397415996938678224727230386942260154062980610678475663803411761370270722597366130980210344405421277201102632380085862994074943926084424909361174103947413254792716174483516037952733947575565965918395336814019027777025289353825039013963466779989582531417379794440126244734915950264997948039467806466343226205358322531163642510955765025869819020939878266556468734867145938045731876145689669620689489796012606951346141997883597981821893131352653185274782537559027006970633981316830789583894481751123655396024241737443083392713651422546394126140800633730536644467037295112092732499497710517776964792138647582082767634402475132718142100322595885496916172969744803837858894229476835802278325941414405286470808527797607187475202931466191621267433895726611724177819927089204331309579119002245690964525432177895310195171517261532512816583336467456477090889370030669511989419829799268302476010495019996022740669218289374027343099361616325452781399626400168030872605926385649952358973645644384935547927070311098107130329746885593223761581105569515909301992171320363637561003250630788602434063090097556990539835399642309771478782794127113876385291875177697434804236769999977362740298313848946101625557592681625283395086896824303618122445757910491436768209002514442207520216802173711789163998453011936802806860716755827064896265562821998784119440330701168076139647744419299864843005592063505848022324224014782672913786767604373272702608439515072406572517164619286374158933505911822728717189556879820285530114295424010126919044712019804692289463682158501542076199470359813394601895216065495333136770687936647888365968652847981542573856106961872996120334988783578609139177414338311124697930144949414439700643565998047741888705580680579628745678762489928270345075191669164388238729545761292332806280970892411631829261945606629450834114327722856393433109471851361360681054048789592414589277452725221619917271499047208731850714725620791505262707406286966977346728253936967385414428175338008865837389410607168208427672822136464760563203819316665832116958724757890945547036206829342122653308972486801166756474609047164336993333108793565172543593062196614793664655850191318802031311927968858278078015395908737379229574551290485838815337981070438520160128831523285897262158254373096151240036728388501777428883112754440101791725054934423055844918100579408669885557069795629564806444985799787428880827567319733008761388956985014966163191626996576195719671206857040675436194818641459944222761115454075868900279878577098152757985740622191737990440376288989996110017594852945069760923967808165852413396158479256562429348773424972503249902379794614212389298313805640225937038255232952002877284180372608147490834088377263587286096523085806716486099349589603409367642491335165020206344831150161247914809344487396590810617114568633564236253114273953073250590293990008684978469739583418406199480885546050232795956320878467888998533916028309959708887968323984358400782900095495651638572101683865622195377174499782601810088166474434055757787788769833556497708486789476330690227981842653996112530183360333145597848364392177890850305036734114137174792687375969418239589280139690193514534508971047904057596699214466403818327172978906950767688034188847710422359689514818496526563084466618407219089823552003892866438464242977061378199200493783688190494154988359256819694937271991294987655383038009234076867540510098484056260685595799049390158384086946211174029166272048327499017233915334522105923490297304471506200073578405208481006557758952013571672795589393642688762545772616344912145712593675624330219224931662774091771919754328688644841800661211905265823297471554698274362460591567789857801946733748635067068292717649825711299005417424719193698479493252490159060880758313880044065679481347312195973995743361866282219175642385717526395978945555556577579561377678071143056125749551616775751664915134522798030308013678198024198433462004877153925654185452770203064593948814084529748395231536921248189121565008583574703529455282853767791634477735092213934904753688163801364399864221791536840177816310069556376438241733069556077030777663711892276872179884606414303616674497672280464531510019693378433111467226667249117173763156886004309174963268427912320280345584344873675327956424074116031377315575486898533335180653871689456598844179103215290590576202555350914496745703359571150471454659321887455215434687019327122238971935916671106737102365535040606583605475691145095524987703909005189491054091163662328785427874045713690119533318019960569980639030058276339328180311199006489462050930498138498047259065913314181991936773137592566180212293015681111643804241219491532205692195321061645588811777436628644689551218236451814337053623837497373399586511276467372060343938633350066798061475272269186221868376778869489777962457839197416308593187925851622069204077650297633596106371468094511058379231131839898455202542240713030303234521017026907922032559260132687645870382361363948284329116427159541455932765820222618342427257930170737048262292173231066813317539817214617593803982524466306348110145364705851002842160790850301053051883870778707740628368651088515748204390738179307596216239802629350066958545927716216066899701078262908413331426498212924960606849304018825552939434115931373796291929812500897313530877392864106840366828595847962456349165178165800468152398437541079132715384903098495731376838164738347916084838569354708108912459195787149206852216419696440130423615540415573746891703861342217883430310974860428898278820734043499038673010608506374162702164409612821713747789209932413945577734947403307646236772589315074972917218364751078992245074886272294700157828239609816529285647672263441337251530431147823277207072354420357619148943515194631294940818342632046639670979018946416901069690247093923221806050744042957314381067920088693111259779872706433273466135830446495119252559751801334496714118377020177935843399445565876227361839317846866484768884570987773845455880985640019024270664391646472719738577265743342804859186074229310567173515986761633651423245239305737007378818034599254110735145635370140748822093998340380867336720119167110659215659853560579212961610033814858927664562229566856295210940783713955968376323712148401628957461456445450725726090526927906137988479703354779663407248188329578398541636288215990329809033366435842488432769111686010618272581594725333760449668591563112915915396641244491343385158394980329667562532975175621143091789576879476816477910669395976512045500689696007745710802080888568899073429194091887218853067036054178811631335810979967208789373324209615563050347795199436940605844766347164929091212284939072888971913084698377798927927623893682547628666913768994712687408655643267209730389315585956316306200644572900078358430402492555238309193209083377194467832704736705361156233888198854770639371538906899592671392549784335180410273819070683777117572056901126787625018338455076380711917443540636308044665175856641826582728773940443077791987548400926766672301610799357661469870781751644474475553869226829626198763236776617196711750552632144638246595516306941562110169196332343361933834797117826077142526416543693542835736579813871296513344854202545133546812944632043895050435466134898017545940793592538710615690801302903083583150586215846413850252726675711490732550082638974207969487067015070239077174408498347545014566711399208678988718987879797994947771370996933442084932605454115936714927940699666958758082447412035990414928575519314734947958386587544190452798309192233033861145991585062226345097754711271466849480910251234022718286417559268190303869669743568591522244510758537236396993960200021566612785323250648872177903015343902539401073559349579272246313697857111268811605227548010048296190880737532223427663748210126691521459971070545240560153337734623346211319877029118099357742706524765676028203434309993501215663012299990836539441730716861870625361211471673389722778670476007805320629154015264297139257720617620885199477582691749258257548955328339242442701551492267439319201031591996106206853712182853070966915506944396421967012658135380956314024294767360574739057568065525321640062135796278296936609859239520735388945502239018251205329669443200006468241449037331276016280486519878510718156041848675618548301502049311702701287645886008631215243705345088424849073823811036027668820472022401031240398729724207847842488918397065142054205925688000445654434003391526283435737486475399115392852998149035912887258772196736215641389512152780198470202189745715463951396809840632345874428035611232061482025824696930470145893351367687434610096671378001846069702938772193041923752200181479469478189639053664871408681674518026216461093012057049884964883222979775412079330874443286871778461608524401176825739995470185111002943391089321592268162227603587859754620575637910329064312609398747940560673999551661716997296083014078723344806008315763586270573726555537818644674064487626956629722730715724229400059256313061119887353074370773235943090023752407174342973094831860076868834874719512907481149310073059177242339666287086223720073921607857032749113072233559473827404427901352544252877525680127234064072712422513521143639496921316672497011409939106576817793835284119699046798209506624660289497959075967969635568882543268008799097151644677157914129282123377262746305212130893802264195252260698513736353162199376228538448543294850744884905893490849171394499552240680940253779355891495858719352169280883919729271349460778124764059615901640430876716731231114430947203756506555348352106521457570262707241106908230170980047607954873009204354609366854124921972733698147020411366601091223346974770177328537338092072485155200291690352604113631862147869847591346096794605577506217531435726662643577234478609310123807092632417124016864441675981568104061896382103893713886752281260677837015185728307455189377536470968129458024056372081396320290892568761181619265732522328462995498038180493479402831900031410211172825901214583517549777568878460884670021803478569285992153469076869884526196235251481143765130851582135406486947846980208615313021200057484236766083113579224930361029501675062781514593822427766354204235383067778462253107347103321110806995822924881502540209891295830479003922930687464070886013997401917187764791500114045119933297124847980236411037998283587444385960218322442361443416307435660333523012920674406582605734125862051287153786345230528214059657772163169652033561864891312699307248178057826773340381458769102554506947482145324165282650040625081436839953107590968516961567428254426214638508597554461720140434786892879999126385468170855764392161017580832335653842451195135076302796257634154557563921543809872179688248349150899097142081294137880027156958798890224303471344466610866206659241239804753244885060650572771043580734942397731913425156591056353007416665939511615384534249743772969317350720790514389848310549717994211725424368810235993294740249078659543972753055659947879024365789917545244011616804845658761768188315393175535866991944128485358837261393816650037350644834991812058404444928532837778239704450133628357510521317037513828444419581366721403015732409024107657873427615613233402109980473303746114333046575885848917474130782648848863717630197121432389869173856337325883767460472918580540657406561876982795162332900198608877659394930514880699092313612799121819669645671400306682503690700173707358375999599006455633124073265321176925464869646716340593255821208705706028263175404808860039550784204377610889469996709321032949152871995893240776916805572352513603591004018388431111073561187223828659158856682367813010136491413786006550974329366376161883895826528979228913510995113563346979719928979521168467962375256344712212792145842452219375981284388302820391928409425852286733132160337702036470666621285086281158867110558452511089397745904484532007683116914315593386067878628175418752773646109284811621593204278058510001798471222263958708827147958528731419135382212805576930989953113030694448209023519392264339960035867107127559910494075701377035606071178358766428396311423248437133833578781573742355127865969962277132921640687533236663003338182327503752272870101834916548068341311350185713331047884664029697883642855071661676970453670367366249914335717028154958482353249003114597466952243040299113369631564150598978366570290139947286628729894617998078585782930006081067367781039427190494966146644824871920211103071408068529608466801263806068095701345737392511092220955743998663654302977864865418460686517233628663986125054787413170310320341268237301710587497280773406299536078524486447561768976577527772576283663913322527841819372749668259643864548397817559115244749495249454214835368248349551434889391512436126150615107261301175311187350879481013516714360702296333698895509372606318478263530735546085826999725636849824236442631043411311371219957329180237383783663143476306988559592445043575803977399408946741213269372203000651090335946578423766051956983307420560736386821006958471901001866537943901643138740113115558291921186955539534385450638803055076635673193510223624033807653009255155775942446839579198047975256642378716458604849033222894462285176590386635765969122259978533922275146077871754325799768273323838702008761950932576435998427410383942379300449563960862996936836928903815208526271856418553800470793497045446097980827126866487213584854823088209992750644334355405362564734875617833811692910075660682997205669919733611052989988261957409819304665998538675371195752198024190814892343071927560344514148257422128300352901501897104548362589246505184889830542712027102857351171347979927070749237855310790544475952304121767340598323601341401180216375802525132531123892256499116154893180461438541631945721699725107424942300048623936247691102211332378016729166701443170055996866306193320106469064345067334205822588380740912024588467528701298266854631937270417314689768657611351526128349089877466118498627359558684452827386031788327603880729986168918432441368089486782448033530693019586753200352597035356568048137140516607537623649731248127613389014449406594406580829210321083631751426762736450828324138507715093315572695457672384087585183040234667762913062214072728255347149077212954587066590980878089975837670669077661390994437215370162267819406063494985295187567091020943637271870040590876517740409626400939420591959997673813394166572868501068371211923480222415529198534452132831240450490558691483397334813138769959344990576178508861171599348755098480379605855889422737719638059285598426445145235098773051980108411727840229225709852669236291227976971571816814642803312799015430953578868119712710640986231983112747286336241475986228133961905699678483514335143446580145386106968550171398615118992737275410207537816450137736581230796809241312406220756198637860640171315423127420270104598292306368385547881503822727044986735491243108028107126516309380495622813351141212915389810189366138794190169150943779266761236573954466369140627597356626517417868348775726306487886616199622525413501957814787137366153519260138363526174026883974115513832805121259184858793519548823542456287306362836558965041948854475725828804534593570070353407277850583212880306098008305899239130124215654113525420068032215100221240730505291394028934436213270995796131646375807111668546288503219350251671891116823052855634731306591708908662290747347481414394243162550969169666908836599117261593471152605864725935719415291477232032575186637031179910248504607812636985392817760251248173709857247657937178834008338080145863901263821264951186457016581296758417281373732061136789540842465173428883494834703914007019324908250477516923474219461827362782672888062167725056204568488687492472159286679905999195279667662826393447746960148363379094689833310647778002242891591147240546110021045417333870060492530760778139477719994455743815478053817746939820873162685411552495794273515007714249778316339786563067639330751216772634984425976731140212526116499911301335276665074071540403011901502191392178610220716184357270587788302684678830685038582408244388438312680627375960943034938218441133075394328065749606756214508796988546799382906867387401664725154583930738862269311929483652857132429783571402168132655949663783610043308819469085208840245244423843315664894163724886451514017846918729051758072242294802866149435916176434528614895566354503301029380112365265640084959970784750623069901970812172921271769612033889408374950614004261138578947733778855193744210823035186605203986431585136305481368160990782949858786028899727910318066655068165421741548918916194777620802515267141951498219529605436143193675469644414663793312665826160666584875623649994146235483061297343447700871365389725758645208780220958125826130290565193300260670935022850105365056136161629966809881517344917054187717795805554348283694125148205494735494924708978496472180584282232571885730397383108261568528943112536142858231127409845805873440946440740163342477978054115589274347315118614428512209625654454886613915891134099670471553705952456264382198545299323717489411592165301877491457269699155638750635860710204716381022759347789004547222668508050753004507241217062025336043070279756765232117214441428586289598764950283582002591313508026420145216582251434687409311184901515052541721837615973755081847692981132910349049861668917161938553665083237858948168789348528032605665158625915252213301870398058674517335141694035346977845563224854657099464423095558532224180515976666681511715836688920338616231706686337472578180710182828018916743900602909498297773809095929821080761324785899664364379431904566406107185451730065646243086669673769941187513707949900134988230338216009902898218891173247444584229114942933385991961357341283513857337542055869581749110367236391605534837412835583784131690689189402378148463668520559077141068413088082432662928000213989684373869725744922725747725711752565627858717221892377634420394481936766342754282914646060941897819171564790825871674506314223441421660976403533570883304377969293453486544995708636680366693266752523085345350849156165188911816850406232154919365570533024366576821796299908398208444379243588199580063071081191460674936353857311634857638258553831159972892811403179429403556953881581451997708449732393927647100685571397118897163423558412311510595564820039382014026925753794681447137230292742972838473498961113698814157556453165739346221377619144989110770135874353002467560088605993212033555551502513424118692229763794467721300048310460483404308603438710850201987421048317189826300884474313125432904984817220530039878425464283016557450311047396498213936727256532369868422507503193008630479374408568642339613253789288089630326025608880843278877017933271146492519588347426629496753585630747680579312226576817613666874049777741365010757972754318546028295255861161780279870093784452476866539665752448378029597672232333335709550044055595798286488555001916727633914665228459450836962627737740722041001191019051149892188406597504009998738543183009763128457141219347441579056978272662258712799639067310046652011856314874911502182260191294499318962878358008219698924629995446958432814783055092667412885423650588006572732467334945215698764786831352433008148513787306531575613143388357202698715207242218122038406489153004173189150518024523542181233067089945974384700022183099332059143838701329104638417931381160503896045226011998355447123764056062767516541651419620670734205891271902967788061917204067785781408332662249599143184998038714023719896428375437880974583664005734388761122334066155634289303382243499484381362061739063159915916371093750616179882879916537964197990033081865441500007089688340159991508951555027608015089266210386451595247932174622325034605717890145575729189498975165698603814852949650014628963454299176856882186760034347491587518572890298408108439414445111296702717813232283480486474280738904808976578303875366225993301547415155668471356699809375866052190883964862708688432297516198546750804812812421189637504613089187592233222151392581267378059655995479702663254634726221545159471934393950817172900311367046472589617169533153295873557974669155897651395219783468002295207954589846967891335704780513680413613090924803648006700508306942890989076289384112116782057329225691647471370181191675843917604610887822003290854263818385319803911919823869914378859468002354423815784443375115787283460502489532255884290021949626533318882126404392858895618756161268001310411040003539076473257399381282961219880210469241241482710660771708363572304819288252163641712790577223743269365242429636609698666765837945231572198955577449881105018931190786166179809782271069847138169247066847430689568911865066229188261115244046294272681195624882751385415412331328525026191818647244418478714255641222940347184013132986350354008556760431823964760992518346174100098320368751710560985536431962283146811632002041128545098242124761782281743463003445263459784287134285922656073971591557886655291369908552103182610109512887305762959818706498082617176295081053797571041616602296143026038220314976920039062912149012951533425884718715777160418369112007411693929299984648616712160490022690145200619242439589818405112683683500168118516452088362516137679429079774752677224886454687995131731841813954592771911361238527563741135487341830148072456283984098712628299410182029888480413738396850754019171071601319611200052229302835166537141673019263804685901001948285400251060665208062287140346449999264293734788994981815656538212199549173397766598477325782213956880867805082645954158947121129572641070049566394765924965382623258110241514919747697095068779510118204190683290765435125728689611152654317242444430020006130293677122324191958844337369161467400644720717400190384663854557769955677024979534801707961987957670212281385322827915632299006258166331953240389414689330636079052631766056026193540013326059626423905740814852640116103449667340774708532211759165758808269047429825529317423087384454718594976998561299618120270857847609687717185717227057642874138259822569953610351403539547283279174122644415812057655819538845224800598175371055340602801200118299782966913895716770125625571682666097728782862610341283924000025289984350349784038864479050033082949722290419688283626085004260430477431741660982397066633650855436703877497307821853660468330103394464553252751983109708745238515981410433065260563485169919672364038540830299177044593020624961692202801188080821252954363693996548162600625226908904612408691180080245477127499132771494785741160193902574089904931169196295447389015026356553531474787189625392079852192946355061438618041048444560183264455338234705652369288504431667092051666222021558860618261738324236076624160417177131522128133551013736741763425934152735730837087574419620066345678283292340535443362899146804634193031844859950845107925798877682301242206989195759097338262802970964514615755397011482128615190450956360661728660656768645610111631713424154073865077346629642541453117067196546553200886094466273010250777788809013945207919963305132661890017143139373620320404243818141727154215702112381227951380703442763092042552589326630023063101566412936637118387445626361660107408239310202936685322150808218806597770050673247397598229190492114784834288145989385908644140742411625675633218029960832400553075745142142890456899307919481336414087479476714175035739087502387495784975029113767600211642690134372722954190136230016840796411765414025088790184397085467748915553415412479755746640176306603128356428752439216774645935196994649369817707052974828300264386967938747672845615348752354947080013596103976579615348690561409479994400377629625136667550068534407991469103129779992586640369137647005101844360444719662310871715686550146069721551163439160775053145487014894883381360615763210614561381116291398455325913454197787539464918291237291671099454217929198830685194954901525674401274005596942706337658465941071289896556431077115104570131745895492195431102008480713447226131212067993714217848802899115391096060744981032561263500658405312883111676620676300721278758018005268383074639900863147656704332295732607854892944065126835805566406663658639244033315327975966136428228339046999114147097548437743815913688217936361093375373099163716537022634377660399275418534063089853899044535680299477258104959552091341269744591096762409983159731163894724170667819384586444088117575378038831068864624911125961189922237266152375700220609819939832401075226649351336150810852749236411863433532534551903185825273675585969859857683108913613829483116556919131711050327862191568997014830518254188826511601400379753342512520232474498225651205273152756218278382419506817228555227411885324457917076616249107263640299433664658909379222518541996514959805224659081861603752718085972002299292336078671295532994554421068068399891568960268675522347777135228640497337881112563434166117277416566591363304916329765307534920519636275641960559587197419358178128294679976569153851327743558668606055728193373129202752913975371984488085123263783986003902920811768406935483703852499545716399624364115526232614479015315310175557610176713956803548020630667048854349118292980147271664914240536680306234662827330782135660926247578553440500065804485893222272318357607072373524067428546988578501373220142735732586323968748687211684666748936495988407174915868913328088559701643962459659562976541308580845513154658210487238738297660997619562143549677063669894689287668136663821412692358935498940090418845537167585170287839641315025493899417505355335685808929225976968977905588868384599139651801702460063052994174733276779361146459127813191087061340319393162124780986687358760035077856782630192912415093813496858101293498203976249833950869688662216729853991475490787380720847228332117332263112736758096255939004642426418357256469863050582629901801978155420646958186680130841968453787139150343714813639955650504432603770178849413586791371863698073928640767247198694773500439258339285915578185255122361362528718782010727102416916520639594602058398546948441344036159547523458364044291985095112375433762870150058586040250525096870944909831993152918507865440485619429568760171431974679806435698648168817579473874591293653131926673372610880843011784120285599978549905077370973102625959608566444309139525573215463187862252150015526154018073346947982169125201600612858242192124357729863272852132527191592441695921008654221596948290697765499136744084212175645689879553832797078935207406456155077267969382617366669974456050210386134664496974265884786957643106737981354742248337291250146290435789107549492367754936001277010237748564541225988819465458077572988287647587180291698284565725654936200311608195632040136580085332271241237185862890842836997577777885221194110309500367589592483935239668080220029908110540567977366293557406831004380038323645612383731845712148670717829607322751738331597420154762368831322261524587607222295879652001885808454650773188467087068210181485724119305158551206745950842927856171921016888505631604630045995960948032413608643336762168066784373538049928990207486142624235647226125711930165787391259015882615314564002379783987437578208589674313462841596503565705123363897738825928958203559431950478835354412480433206881897215692780973786153589769396811588943316651264802626731474762513502843167058755812771637706410383481976728984769292853363016583457124741419578013010546191281618267945750757315175236401615686634121909556055772281674729268440997309964881161672369606609623135672740118837774042232750976576980030027024081919290783234507143542555286458930496233902589334108557348568973059477175447220025213381528788259370008788640647949932806616809278893404984939374730647206159439571631891560201452803672232846723301158181306223137774852823446440692657558631287966484574509508375500408051932170039253198461292828023483430293099655893162619185097732553188995689866929769631886446627583537131133338631174964031706356059841650258125927510101203455943839985133847741866934936121585759569296106427944095813906073295601063113451287991111720707810523918873316655842909350299798477216365152311988004082247078990830176762108038987151169905375678008526895069301196997292479382748900105701362429139706785580215732222084201261032641020477292001725129949157762191098765715774699100846175941338165750616717846254439992229371413446014307752126580655846819833332752339165452729684580291962996026225826950408707399186166494686356583538198485331101026463054939075529060655970382028288824690263258632455899208312108548390457785641905634020969129944531038824728153353571141980580837822599292129785968680786604689530413430560316066332083470946886928648986784661208582517095032319028775944035289588841977496091256719045294190756050088231937620809850031538671263847582108014852656618153503638733772455117798127488541980515181692994202306786975856360734825616846625705252253746178384511689643595367867020949199869809254048220999935369137581144847393516462157688748582772864452203532083042262292285924330464724397028598635948818832469541720380041578715865821706702774297969612489504944523805641009051884789101878586758471541179271475489745430863349146822915018742939129340636608340956001659807845982609399907351073210355163073802060119678903414085799525485513559711540701529275592241295782033657364711571064010287852083760835915564505922919335653706154983004479834667344622151385852441683906458072549132505499022580279191137071801386065885741922778054627828881955923060911848591954550706700247954094027553211429664690159994827964492081964891951295106874860931670926885263861961399482741119109452452237602407242358570957650275558994007805346817279515934027400635639369349224082203606808005741192920853419519211841543332168034554655589685926756438030503052793220319753494500132548332812428203570174358417482721151837022980555867468008497251848596314959203133909224928792121334687645950498543767409549122829348260373081752695016764850496420431592433799073689568075150859356760177745202239178856696167717320194016016418338289695724711660817393236306216963874670804163032039385178330805134854080578540623315489252407468942094734604695599228423669641847593681548173128963158109927482031633234315512253574680220428006615019459706607702416735079504030208432628712154460931177346129183029202950237828137043119879053653445402472728150635634797238135321465053282367460252904131357597383122991646985257522388381110144182369821271789027066267806528556614137438106631430185902201892384670998715296942157851856758359885960629086805523235493438986506605751873456139935822949601027916261848793225007589109098627466978303315625478050410987588289119731146475463057449156871024929030492785518095161260441926930975551948485103688523855584064605550208954353472483534538223775273182340747645819042344595283362203448395003806712302814627991426090739587649616737211214952855561725636395845494090985103045380268391562067620349283058129416551693215327432016864027624804910554622747736097197347180651190933636545387484558458087427885783380215424658109388216459454701073704612986524230205697110447859739865232172942737800059920534163695963778891701587241826641586932013914848927000078203275948959857009067452265890468232372682407585852932385708180090407631211932433800605690651359758765715386489761470083923130564572802944296004472098704313066006565588577731263049804748331063707104965103054703484598402894071428766385165140089491473963938837529707302989037980689110044671116617656119718372062085461801141999420814553131092910985172821372571935088286697045467160848162124231068785093164810106370766096549700415264830901908977202724915640131644461725444994654542246403044591593361520364633066082923245607413984831192790587034771576143604515159252376379209888145576547460318719652550560316221136265687680041352785905933233306450099295275816089390922689538522237002339530942530291128138904077888014072973530945597935704569916690316818987211790694213295641638629458740156462983578932587583684584635889439200530107228600949179974415032847773312393894924985193548424547240095220148496846048410571362372044566817700714125667257149184412529016338673057457587515789894950727623005252890628912294414707443799265569935162170752565904031575450613752986592075637040857004500837423209481185987403830507393543977406239007602053386083356619850616317193935285167402261087120819764535822860566831675588550975066437768882923180823508104689695238526151376676879198823333979412561438914200454238927969250266313956386661211218099509637680949216331090445866729429497034881465854691171501125420673315235847913339218766097369066763777512385753646112625488082135055752340839236461227441756834614976975087163744582272941304819382320402948448654171387163367307722461026436459888766607500134145915516753623503580606312260442069013803609089263524432342431154032728635873633143716087429820844375073168127160443497601515336482711769647995343640009764095798793706467309694490058395613204957476045702149921853433957752263481148422221091856476835240701309062205656150019278382565109319610737275581138762993290381412050832141186347300614086421866209559902775566466764610693503684569923271048960265691093643101343550095386685373133659744190947233660731945807282938843447076801190815327387030595715120060859371134769503169899502905738422229687739375056940772229356878879986496195897023831972265158572247323687491059669706221476101922320400190513490082106905982584636015032300004982458470744054645317800827185059193349256130438516876430611212876865099002379594252476981177695070912509445176687541577850185799951820706138785982940855982234334375845388336837481740835359224603030913961851994888734515167008718677837672280066739487364959965080307737282474240328497574358146384545188486252485659018249303868070531707144191940316567601980202598536301889843261707137156245767129325039959580712622498204737804586911334918809314483115276744220434605084943503279873001323267145171327704162488245375708241357084846569155894489364617691418707920251471294120106665213869580890573008781546974133909184326134370043972463564580025190933056456845634871064247366790062789634708943061009007937240195087967182018726565783416040565639970971488171818804379652961965410693920154873122554179127669498455921290345267152912374960507395562730744665564789356983053275518369444255450814971897740594497536620243069188836317125317416352921161084944937756317161973178613279765338588121960110762035948981651243911023193726062024410793018112271211111999284173530936563419969229323072665990458054379883856153860262157849275786601877942730006293298425293850045612572723580659553297324549953989927791262549160322458180220742144380941015549186418567496548727473236257257160007990365297814795518602187567736400301494169398460008698961340817095639098602870829152350889421209315301572256803937780876788791654896949086935072213463922434110548600371414723164750010449381734761754834683557182975005759046838274156811649546403389861167048991931920191039249363371185751712679636290010264664420408278226288120843224592183998774789694621142957359459113437723157401681288398378846658471024195224941622876781615418246020298745143943924768446774263937256271060915487376869504888592140944127713816271378174280242545838904434218834406093940499804599746130865764382470135862399348290207272751260064322919104008434730046092710478553953056006098103202295811271301837403087043590488277471955574560236378208316150146407072234215176850131055976825556078528298785665470162538814052000317555880159264451643192851138276744359775893543208845392301145417778652288864463191614330583589513770769061369574449630163109980750448933402708597394473098099226799395825692757906640228754884911209617262613460678410535433530141628046802826349876907980216134576299217957491512841875096301158368211868167198775615470580673589030297012853037379415087905990471396796036909159195162780297465281845550358033681212708304953009516356741336231268162029800534612775349428834645313803502170751277194036517822476390290146283205525972641140030353418710494298650617647320204127232306125625511129074820328472316578658666611372753777196421719550684750605924165733524584508863872632354834466430100299301133827360083351418248154175756639648395309796096784513605510045599941825820894256178619311038786389291774458650884081587838692398865020479889889285257201243908455763244172372520399026559914983489599090621193985517027935966571139412493896790481656211881007171478015986358931658957290398716430656280080494280048810831967185478773706251292299734508404752700909473823216178622105710971805252063354160339330839404975605593012312569310745856767523309446778093409230519063396911427525957844544339396832919928066790358123347919828355682093828020980367182809658256710952455989814306646561860612445956533951704604135205494209447780850178351005508549791665108538299689687110725218531694407960923900405232650807237793713679999151343546199708260006238384366203413721864904504703550081540495328991600591531539191655296943345403318735516798164477375959920665240615322850007871964793451726462195091067030888912049052753487341162824638780890030178232176705017551530169363395684976093288103259038963071125228612878405095902940586841048359761306562165466176300832675990532356308119414515807108288528607991194116995337645954321070968672977537039063969731156858730679759923289554666958784511913324272096278562519226887612273813831507473160912961746387732160353785751552778435943658282454113146196459681447185984680949459502437394789307672162409915761550594188220424717969618030520139542967738937314984268527024762402153617193392331235774630062496595850083548136425105283277364041818251488146124710581343540969886167452201336459276717701045463083943365442533926225660627249517963541684177938581178225834695904126144580416451074161153280924732300578925091796797186464870010069481436286738623713012705951777939935451821593360310535630243203063273312757013469853227779261973101685350569268669326654634351307156996964296190948103795463379221689829960891213223507567892657550275090022281202541406676403097999033293765184684357337327140469692707047061164777458768853461122708033212302128004244025392255555574358235971141483573810566817367218556186048247325886245625487918727850298674283852309280092033999971864727073911872103139025257007401173263784889379532772487318931820589327563059660866232810207861309075968861764367787243960648873867581821253909173304837019561982265696181748929447233750622113571918522546473656206312598619961029925392180413967550802199838672922506131710022202920513632904636073231879266583509072646045392169227966156732618660714147772282027181037966282350067065568043427462045148754714194792470834370344661301339228783985496730866420900644240815632708833773098113137175583179876410642330098008629541832879974391746857758093141779792086139625190825284506283830516414881384397636173021438389741306400130804672524827043595172072501493345142978237761718541826233343310750444238132503387751143731423267440127449134611723970347001429086372173379204111490722689423543631898741017669387765402889605683701391694600685049425398992888783440377262327489294912021843131463561351041356638458401819331222237586144581863941879191051185050375425594965789810420221161079101343585731864677717119903999409503005205452543895515752735147452560666847449228687312499184663063580353792817498726147592199170700134426725282203010409744392504418469841987434102699629780682397495036452409830971037063828241639724949271059891558505760971885522542666302880006114185359813616862399759878339446241664942359395000311804569457163724970854121148178484870876397174273869263121562254773331665909838120318127605108222270851907361672342060639145807705615319082076988864071567197755854602322546751357611539464358714234275820407859887491401991696053189602430231921887570016896081753548748504956740081437953423981859008542049307998781258756062951301504666193504401935374299727486857147737079510508091599611961933878750044644683480583821776291640588833258661019247107681188846796117072661910243752293344893853344144662789656335337408945737252636858235616658115392827845145691494768044857188928387685395066276969174789599980687387130195886133081412249612679101420460622101516244481978701850543650395472289846290858105408103495074703983931930195999070913301897984639892069474720330095061960259022747093762743191851104075690931354563665839238638800258108112656218814719073467003644485324049334241624737772535599244727104886495013106640071628056557858554853904497597811670632886330844112140340253309526798245555571964241756129778512334444983459177675316269314446186187871599388540134426005282356006334985410104275506285842716408969395459190049251604082597693758445921684515938280896176495877789895905570611258615250772491719206552310068461873428514004346501798082939158425407330453042078370920305094379066079427950260550955507222874531291876707926792885769548506611502971015462183420659835709688505605205467882981980194494637410701739460604101796418114206706920039042058119721229981188800150646888692458070413479724574092582115509555788701486503980958121667652344336683268816156004530540722218249825991402711179913828939561887704928959864173098949349360146414257586042435499570576274485846734922241009244425970891858941926644638059692710469997371406458137157548044226261865951854508983867102919056019901425428757562442847087417111576151061173911179253176071957517585222751285327332086780302188353314903050189018348887502317446006410015315385780845050028292893516226418817572170723586870329596988783204453925511539862819557040565312565146422113092247696361169267853357896783697499050237733067374764789426478067693865069763592179043549509905569661486492407316023852654852657745225020971182744133986509340464173141693384614916650321676300475668114258119536770527956843118677515416180571838943270578327474381943639500920911469239270757623714325965645463109977384448622049722467317252561652903138031316484176044717585547709157514638924574683983614827731387925230979103003413154167331321187709201580944844537670301129331920242543673750104090715840485209104434014836995183475297524587724235238346047080958871735901034866815609337720192807119138215457014541027048902979361984294461144078693367206898030690286445290148498327245415393321994840819800949406214783654368553709528827467897645978464920436729090797494966559236553644870411057094209326317116033310705625577152307501940582547105170051169233031701102354647699868409198401383294412370863138839732913416701287928548672153757353170652846148801579575594981252070880183732509176555270155504228235730258259899968229742772206992475104781650684032032417283492328859642604024200130630105479390922260250707565091820143474504650887667782218847131744850147732514886274067472528057808464464634653485565783455676904852216270037571230170487449320602119401861749143755038821444771183452984090465736945534168464732114738157679030593261801441758767965357675023519961092011658133884917677782610979833589419348271112327412389259998112816817346495396094619131551155556651197573822736176169870167525398937803933505841245124904825202526085163546102907976352003731992250530607549788748440809050812453271359602269318330496722495376521531450113766072914887601232056840337670587061084083330918889840791038302596724309183963727546514654335113610844840258702767563184083888026189028872994378482950021218609872246243326895467646953641159824611523504800875244777787701817062167589823708421301403481682619590911749664800052372746119815613054527377524379611837218264976185218456935068382920518149809096518956458035682646520833730227378847411211664734425705892727024765367872945775842556817273620381579397319517408842376204908913013442095661493384117116908503682456913711251656880814378536423537980076557109227995870880824481227840965505512167481136457952694751147255917037525876420914743470182651162548692109055989994612032421607873280248270274809514368970207125295805074913412745503562445631460093049448869830442279813230920919106444935128878931799733749133956456324698031209956875767780000343714041652232653813292231478619327688109848993135651245958973795631219772120470787588772132266104089767962947848080845049814275385794693048301680564766980712483167029883341961031527751748481393417306560031433053434378078390318568146247574258049274246259957274992504544415707127994723869548052091244756821880033009740219142970573137457799901636811140000260919922052484749151278204345130610631592304737875652749456599565592363994400635296705825812273342133712097066064835068601159968232452762242307557186405927662102390658982612217998655902197940101777927695246236506444619572993891872823069890993334436745567757362540011104347945272284230038382647084614065591075371797016321792100644470268602051747708047458938300214651342793208446522768677763601688429076295208939317225242639570967587400642457279615545259175427394124388304321317199955766738711912562876030787993229771477484165140602930390454745962657502246160839525608565661779501727015791762197015543075788060605680805154324426176306834489565177559388900003793176738741225047809720620154349247473257175586707719638739696476908996265696137785964302175405643703658453243712285560309130194981968877754683956587814197260933695039302249345887127558212979217583226051359324568851735125395411624716215252097101694132661078616421691026064203159594181727992916091357525261982691393592035183614533903071946540616082554239445881931068853072893739059045449292017313610852370031154317485989813601940734990954581093127461452778956871597832486197037040696730427369334168951418708489856440806945397369048357201129970513962136565219506819361512543067234775333422583463893428912245632941838516244053857452125559341387446871135788429107939798468396639904587145094138176282048020333898411085698261202603775983747775445674061253358047184260573891032681443327592774166301734117109776496874194228470167125143844559906130397703376880526451190010429993570328216139097510259945178400060524960659503142488761064215923655406307547269408786097742058294631505792516351838874732302108672694883173505511530389107325808718861650348732323559393037213998592046700700806680693192712194544645041962374213659376487847911077073761781091917068401535372473080488267281674427857532455802430024800251720201286374798344754678798976415701919589803529300985916355574418207438456775710076693367571219681083870231530407160123543785274896744424653065079405718167902926471946328499009435369577706522294144200972947653937460746949108710962246024265840639361318150975178830619774524315307714821818276115007592515720677053327525936409500600409875603488969220030179131830842138444157063789265411285496941520405029425903760598102714198026976865214162959331017880723477904776246892692925907035036065240793596521902745609096966791848430509887208656963659075607359417815058642040341684157424116571369745127743760936046021050409766540909283649967506177572291195758865078955924883518720803833483009761165092555270771542143675564080445466422987028486411916868132743681157085167300278612408258204423081994704588374922144489734906889297553659665074399464767013198320003213403451306860840657759892453660795030627369959037404889392670157690182903306044644829014531616904473888751676486892109620983190090370854484616885920069944957734597899746208891682783456651328010178698789199874753683685421621410484189737292454829510072983117081703718483896366129987654590973965827812819347649375697702337890076256202354752804312066029267239599363983898619029912919671645652760041539788750337251691036582654698517728025610411118526687164426360501076903242881183792440027606510336201410194388262998514560448289356454751426613112009408023492795902111347816790467770077776565901625097823809405570982467298529401478129683569799669729533855686807307940055837747101277021989366553573361205626797187606050162824722572037132688703523552382719526197869786441932163513832762048091610996442340442203031730308922394798871188488209175107934909655392944304194644520933768257358344962561968033178553203080992351065378578877943619289480645111797500440394571572293983672531729071637208479855455698001788574483750123092399987123160394276100560598614767044312435845364988284941846786398106606096161632990198815273956655826269783304942203627459643216905812478973445779421191604322506206587040113339992021340402548566913593407476004453338027063475535496585683757577885825313610245948717489974999585196986426907605397167242252701699484256709783996335357077313166450074154322086030256598159280644917948615280773215813335940783928103640892600327726263440002492760123138638669883394700866091975324128873497671161672100915843243507027096236127939208072398184442684621973048525704575107545481584066972327156155126456043195560905414032706878945137380060319219985408075794810433662074808833593259128122876329896954666708071902150508989966929082248746973168480944738620408192767602027307389045815912420133826295682709076458108133457136106577335151044921906042786851646569101516659189927256172222139498067033135261108953872458145983203460011729414378248703482977683528855179510124123472531822480497994919004327611048308151756958297545617326950659292643566438805112599548445567866958325072569445507004092574908921181135027425384272704338736040179464136934555938100312093151768174914766495198123565091354663115722817334417540706836659761343558681035631045092018058777468515938388830606274191223180185567981645997843930059454647267881184088760950780268509684966683374980158651898519856921824229199209698834240314320324543825075781916214066094588614416465163872775112884653546704344416020111890629983439718998440670971452191894231042378033787879953069974881298410142857007342942234840454742741539655579104605501976887057975447448707107466319388997786068945795468588031370785893513924670442013969356358627642998743056134350471841508502008612904347453884283550647369181954155230443604838904955979056516079918045246657995236947324232167945556717962048100708413304765584797507307551438294961706080579891979421166603528108831041872880415198079937483658759047408734599098782220061481018261666942769404441574991956285985547160375399578909311196364266799489771079528523732171100886361635936269571443491525632458663893337412423001388525205613808802761644054331383469038077334824968496060830779527356996492378612424746586800458349889140270277137180882866949437593340671776732689493456663746717690200741711263841931383052334379185212628981228208582191332585739813899880188537818488939623419450873354095390879526207043611473207539261438438493222199071192050799322358488866769975488805244950086330297298489147625402531696561474253560075510312742786185147050404580318546411559790045783448316638254080176662621831169982703212792994150945131846283380502834830140008115154160130961556524998601373490915639541969882059009130705333024946780744236323049823192196843222212636815909746556921208294168252074317868871451860474319760015800861679225896396503679359027378670387653667554745525940684829695978006199290167053645678568925081378510416746153648788468503921331289301228295063195681099000893976519189877298666425747169011180353125885981190992646980493118824118030946389771896999262310360661309833093638532208196686298836272563449638076020851489930510646815933323049499010896057814414119830041754373176926966903641155245231237086499091618524344331590902368684494380369651460941666100391814919500770590571948475994815740698633525798424375607836969712071961083649627103694717678429845106937742878287608744548512819387000700256618840642445997494604331737620582338025374027756761140215559721590414180686922498426756095976493388920013507135957719339023396182417519500636529406478051678270181115931688804276467429154853070186114471341605731307940469370974565290547714702455447088993850854280629032118488089405395124269754045608869636075657561879564126657033049998245756012714629303065887568991374953049954821185920728082970594169322047571375121313532792041415519799432288356512640133259516302689979991366586853640791089518461816130116138236691480223668727873907494359849674924783716765876613658201138878899995418962955779900811867837889031236134804202508779599962243802031302059337250151299977765984764656402027976319944152915565016652947129190580568174091867861320715943615956703257390759651525711840473379982501688460207348734583695931100486711063605535613703810893549481049210298018570852353038979102101814370173253250115635832982698800837972875189247420629820534759688226374487162842986332834824411859580246386588375430729086292631267394489736778722694071051541866191346565252762865839396512440355825431181390963822051598564132531237982630542726454375333738420697580712629312855228599504861395665316170263450347629990504165109501834018184663837295804129392325333612109511299459031106330827977097030787207704246775891303792242786577218601799970720647436074331704532613698949960919111812912491558890010314801721488047167797846373660555121370106112075787093349591300320501923101817887064634809672841873773155466342800199292060061473407202980324021478875966919640064995258588128310802346562224039057724977407190569166368203414423559681322893824747442792152082989015295493589029131692822698873436401343991495435968129858702628654647048097757808789359173134052938858663622158606571533271582401696014355829288848148012084060611959809882174918473327044089923840899784249877528043501796352472764473346744888781544641440152486436339060409673014582353415077567546961382265605095151442161709710495344069400734395388637596689879415690974823039512344677340906816464337228136813926339968901674464066571596788163024556854433028704891916574544699837672090138600560366729691392535319955450618657255110859379102336474621334085387499470680472536809381563113201851669949652513268547556371206875428722316838947565003795004557842333201936986509764024507734619050325874356267172347230915507453522951007876278986043721518811799263185192198859285659793052424116901821727205746278515122901146747540778469353772638463872202119316649254534460194000589056765466653617202052545496058562165751430763178441184296214469942680943039101803207312850984360237476160578481077222107461232523142252657806976812171749452318202292490948515570239122674763076942547716687850174218392820843982884204351305827279156370623246245606268649446294319212496254405025366900122106005201110082521776081167289993634682031113188178312021165462788443217988322695918849149922397798296420551735974541830553658356989777582349753975858602210856288517390459638398728006443872205661834302301917263431261385720001287088122625044651776815830173345286550758672570890806036024534141833452556808758558011105317890158517423522973860135525431880106762274959705757636638396531801451895333596150352100536622547090530349213992626657342679907929193398520566583205666026245058988017826658040363703783791842253865497434215046638817950258691823904009138051159394062008334479676034084259973506459318073327800364900676460515331807812828681864875387606410886185823684282601534041012274640517470522150965747919669480384763428211427975958214291729759602093618467401977557512347068840794536544365822216908777257398201324796136455757706980758283955843939772252934106319709502050628582113370824441390932239482807934893649405610101157395215604495532316691116300297650465367683643108423614912554848549301235338128383848367006657586787846272361273541665581224319721454869217319664746483939733398841612165159296086808253923287581425667382605257776526396368260661562199559357660583086262096280027330267327149429743280323812386736725144198015152050132905960583007496954676032523871338925276285263467449504939308683412647084078135727516862185404014546373547958816297401717664160360258252124069269117618234350943479688120721760802331058722376969339373047960754986883337898678239034183741965434714497303113150328913238750729940057121056884949724720311259714102447608785222498024186274596750982416666239783414565990871662398440171082691735784214327409666782976898600605237168423655956291588021794275420236224762768908752756399275169569863269997004771321658812246650937726030355860407093577664451201373376440940167998321440697528233887988461268166629476533238084863444813197140088831577805541872355135716503764213520564428931405949208202347841933316105423793672801450949494176808979106214379295887534571016795609486435623198605970664802422721134982828655890154971157641781329484072652612443765822922288928992521977438409936078343784677103115860393216346429143273928190658674117201011366145580787611313908689797292127766755028424159621739984075817641033971295048873395785236089419587237183866122224667100316816168459111048714387038250745236939509509550586739481974716797628377721325548437048157757214280183269964547062955339530015023966835554648445627399058303578239598722866969481227448402802002520010135646797958104805358853182140280074795793364180397840250238502373589251261746533772397718508057613241007353494389970810382538513467358542204741815392592948145780689499083053439406514437181858896630629939149312969985614963790544353904721820152268682080369479548811942656260905441190622981516056703931570533691017063897863449739599304566657546688871357927022792498841727487438363101627539208285811534471964193009291726345771616180279538517856238547192016935270402489083033051487390352844708722292034687937631653602737566988954910316148946213684470298276169765024963858531349321909338469550105955800622541795670768443115192158011930762507359515835677809814887764161166801774399847101061656309374771442140745164168140467984707959961422540248911939884463061113955760063887918829581717292145498120733253298909499476453744866713289037839009661543970552497108622719918622854254291499185217547461429881936645903595446064858855786849036342155165057884853564386893215578939211642222294476275363368240885195937721523786582887864481783706620372316134462776534871758211467997805902887897799971037434791948265583691939955611535611828962896944195849699481358618174724680359373868380048326232250250701871753669419518320839568453566317629528930138945720130604552814114169803771229919417083157013982129017087897404522991967030379502570292643995386897741685182418501188160105056462217826441571875043426745580320137279991094871653168132188397814061236740499029153128772291232059368028833068615204051731370136238065972011872260596763797097459778801059536192309564135259072757278131444196991995876381365933200995144988934463117812328871179719431546804627756924926007789921338194353099848007552780912963442475197707403850294749509918270805386056243926107997528663498104521178669185647321187060756582178800868276728935290506977304521945401891811137893765111599096212777227017532616675956700364365478469286161026601207212840162226246395001984812601897111124221597185467376317435911445950336365690427534333179342413906736435397684413325024574760192684840473619319907604545553550666444757079328342309916276434181380488811849735395444828644087030917760532244680415401250255214993696646364943706310953063643747872857048050731312695158321244966595885990558338928952751352378230827953189200323480587081662246506487517218348994680957924816283785570156566169214475841825502079834779628390248950399260009736381613866999921996863830697435204329895193325069551322695499049008395838679865227562962734110383314021840843120336435803426895760904202236296466345898996036871757014981966315925634815714716642564361059268042349800036468989303236922151842452605707564531356596309026562859801403039395462980236000425120504620989729761228268084583776084633097241215659408299194421717519019320490266882935158329299370858694789568158293466850747908441508891602475157577792521565757587192612926818117578678907727786139689040543353410554248574475937697794793752191273916798288510715169331222271099157463011754889312923750787846158215948382803874736212890443154550872800799680313678145080095149436678298238599926413814961372784931013997785327533426377206496645328762894150651483523107048821843164770850080873160973284462503955118216407074532374064156702455477382268945610444855422821569472493111017046406617232031014800239933790440441573396418054085504170551805283807316609153003639596944075176214287431368843419812350439087032371589993559590950091773036875916320881919451547148608291040727887821383255407679158344320655295127487175895961695442681787384955213097821461263121964777432183532701559904924629186856256111512051468575203398289606039653260825633454015101675382746583547720006126071551512867653431881812763857929160634598694985874878023622001108058529941272869537096857913841985987773762437127006035500283012766228379413017612528992836629078775804152439003799418080674175831538882621908732191713816725705018428468946226196313826016841247906980882322638880493566861090403504468217237732129828352530330942175565725380374305102742710176664184562916260730892236450767035320579930309046759590083339695285153963362997092164365399530480891202024713284888869154771314805578064673731261999220405012747229880875074902239630946382708985118968315141802094189447023973927865820031183387229035270341892972148171209962729439111944162151451297221447944991895894511281064875056167895617125296919444131175768955192875287158099111234573328606681726761410306036019757272536736936270074632528795444176796991780966246703739687218712601699635290470352011375283004305912908356634174941141806094609789744912574244956789075442638050180588873204393035224210869765814525358361060721529177819358220289933068599849243923094029584596091760577767393159547852777453977051471816300406991311251197154777261672639388498533417588238107069436010558867293180276304473547076825119525227451132958088579983182677342698462821423773417226500309243465485188754169324711185028714001517620232470434168761300683793366504855495165182198543250638340601263823663360690491430432405413739240895742077611249873551133686151150393168191284253235277102770165757735720540780479679003456368748579029445137192069105839079617412693807074128714329522613907563768328079331145653437362392529185067624772983180953878784169850924917566689619251003407240627386235229411465232444681040695439953518027163332009318182727102400734423797183203958010386741385442044373844342447771837515294298492777461793900455766442535369407346094901924110411009387551222829316831564911183210124135343509425672904098510349471921810081588843926143192443813121864066181419684968745368226598631265563129371082224708432314507889204541566597131172753277277816042048801922912879376051686397314382788127260125316670883452769820345847156226295882006646632528158551593840096592190679117595630480025174412883006513018016350592928610593696646674299234341589238330452275149884651222944802521447901929956535758269386017627933850378176198710956335005757770993594880895734064765114999537152564081570465791816922368093603597627233729987581460967461727399926075260998494045090794365809011549801070394798067288851680870034990449185449197068745416745230658841292055820641355160027976859040010253603198372191052998055487659789588927415186883399169417565745561266090306914643910868569318314652441302252020641945787994478792892098255261947811097588689447396623790048561825195979983943876145673662064724942374614010317013191130431536751688080194806903089812545889343882466637445599561806983240880306544097715664768315736495203060922002365424547804362744886453318093539326090192348259343049846552045383376792475654182799412260180233521106703750742497204622707237730760790408716601857858209981699402313312471903849963119470886385515824251262895370657153379233047157258685876988350570374985159500125684670617593788899475681252752000131972404446942124050807091170854667533428866420954213788943273504487818281776730344253543097174849520892493550645995881421991525580969300077794357173612116687012712767546495743368532563434552371034224614780426607505773622758956516610456385960655225439395984537534569406079818401623921294927030499556686997655720195323950757941640961079594591558640696282997162752489736824555437786240255414786232845527709907550013560130866235185073666156944200615463453657290471963152895821676395782883379544029448814480097320273709866158428282735338281826985487513652530806249619014215101230187875991531868742612854438849875382277506589094496303995639930917929941376968128997153012327445591422097009083082142786321649868796462161011823706661121180846449179981251128959214532631783604127385750878345992746449995966416712694688078792282278746084109484015735701940511267825714188633874605927026499684987616455042690908876745315433319643498950640548218450740751906254997271059095853842991788466461271677566578760554845787914823700795787455506340645101720193841411364479107461264339584723494243468483490417386385030847256957545604448774027021766072853035131329073218033252661166414848644176939412782850165936066705000791156616622215258867532592529168280385282056589956999235877124973203225615401561292462164874001383266195991136370024910761359565122784833142456168299169908270123050263028469301898864093007177621876835050578447579283639977927688456937831669297244178374019070818365238815478703689353211994850096872312819002092450285404874754149131476459657980103957614591007164897383373562937875380707815921242828554216852327087851508572507831675990542697427745116452562684623617967060659421486759417139674830908778562806924798414245607618832141978344430252320156087971286095807195313350299949854592414123357090973508155800264272291302703045244229382011963938893358755630965288444118922569015435475430495667257081145440621746281285879608833335798088635118140427311354133791378787932198128668738569889585987657555320704049725658837106260645724796457299465157970216600927051501449984922347763397179532914424390503205046936782902985693169232408157246316031199342336629213614106503598978799171174732422326091590256705679918425493920647427124535877255857288432386528120054700736820522690632864599179113349065640261764678537965006340093550039152275554933719121950244371817915837167905651806140293565517223724524128495801103491752868967251140951025323386546201087293584367911747119464212182059971637384209648915022200265089062181333590142812739939153655085120956209375636130271818061449441013149321088656909629123291955210847624813372004868948673844256740029572376354289729067540670144470079329272082168979184791826547879702110652626804360279323425381890452892705674561643588051355146688185203665560574201108354222480007146777377301882551436328978006290780102310981551541124594863024938286082770946116405243806672003905806312854241825414956928660989291320425607204678780279050805916656432935444415599919990022058815622175544110835331272410647602273939394207794763711757730569692441398925026858767306567316222541119593929639277770007925822805876707010050675596000086607886542220647377208814059944455865394555659286581178850979227332343320630326865319440350144985680604999270633453271670104514991375669170957320416734696046516322239832154266365900746513830026772326432874740420044053265207598767680459643336210369867325627957561843261298526091021310932028295248525742386085549211124347976408519643866973190228963737153203632305692866203720303655312343795627127269738676526871938025897468125000723460203403866140648815731041557380439895745187284884665198599099349431898915822530780157356948798555902936058871922834154904860071396287438739196689541470274093697758219220864529240368335044553407062761429051595712579662279592998027191366072346153364165771837916483306614217513795436927445738890744322976277251719881846078219111827276003710915303733901321712729053063891783412028232955535526581032882984397552180591785750277581126051782460184091239040639739640868874509012052840017918707412668711814669780536642800759696983542110224667619203477438214892062024759142418608314138076317966284130167467514484259898768138870582686572906024404227112126408983683651098218119870536531846738793268852284420626727571088585113003038684995053420503082612865246361760480637433922594382380791170182473103547361895346243882955534268192612673026961296312202460986215864984586248687755223940163774871091222145875947558372852052234858768183232141235303009212837379901659185022381865001594570320884540737066184668806670413813835045627867035564403701496743814157012393479904200861249825707783225059990219424652794223022427192586091780113243021823414782064711053930634923404277367627289807346718890879594623596321303538846561830874054775361961953174859404897110230701174911324922618532937366445171330876057142260813275912604310901646631791011194404501363111153976705429357425915733283397039517818363922621119861490130407868159188522659689810161434568509332950805246583237343920165612865456839413208042474210632041237996028921012767800297722351955075651239295265782221610492795820504022546426397962857784766872420684120814286746445443363677381534563674837411827092069799168520474038742856904997667903565881885516579706569123729044661476173354070671571155065660602197868091783632450509772174343361563349907644488778468678439865685406130966457304325604332126221693880841013706380286953492816557902881439022194307627422164141123937228923840773213417170685260247011882614956910375422122759475962464333808732008864822893426320386990697577988857387142415774916422503323618869805349842884212580629140467720755709704983794023654055141630171927499221287529881280933302138137734407733642362250824082990241412223565446157179941436195657106618193897768856066892428454921732120212491674367759283935837187403268406414793912997135770790270852125309159379385531469171824893915946219361443477432902814799327883501785217287512636393341978536927569268944251242109485691791074400543763021677971090672895727253206204093095870372572316952206052093908324374644573394763404979680515976350198581459630973114665774544582283617383844902972908660059177001158679573446865652881261498513719292257679719994451878651553098428003082773287877310335784189470865441221728716535436417075338366939919759508288632880955745038269127471442774925343417849683497393527766664892345191282636924058494588609222166954449918048564665696481401064710467034368247513490559628668609321800531135186041820336678376693645718363121927619423112394974236981645641081494252093763367617422351359691421621207792153284900987164834725430256805085459095064909675463065105566162869553670057723400143694455761832938048258857381027300048838608659280368536047805461531379533400669680581625923489440689281578479794840623739760795510489794082317021361694492494365880305582884101558916816415270631521198870692701168904311151006801698090704876350519369217534318208398320714077332184292664487851350297516277800661547206207310790732627587161048887296755228619031936958028170763074081017991348039786797113861775072255635992530001150547868820967534931368267522007897057530056056437606442170146457580065212540205951384670740647017653113864444220067619342034536221615619427270829577360274409531495866814368689229609408521596345316966145934058808268436520528631382096895465236975857310000204271517503885266494250158114043702664899244680172466728240606115426399230204154956472005880121490551435043213471209709027394043592517975735487830379719767540174039030690320731630823006782721978411238599524070631507052274992834370149491724547962373329918160070220171201095282371786711926565010992505826126824833066290341985467254309854862084353355331606231230065033385442543140430124326007804778523458086380544083472690947690958506917378736362349225987651348326442539423251470738426419778151012518426836803870301444760472060794136261761200472535615093430016972568235810157204392755153361854590276117513184391327459499619931351477270914170763862023795376942384606012320867330073451735255235338109867299745035873872842986696450429772577903598977188050160949893069398343017255497786086432720577597778707827593220177531642868012224890524714599962430965247395661598322228636096040609143891979294115589992290600217727588135301236341546018802454467144997366657594090536587885847857143312438371616136140604521799474466262777140805048890990367742532552694168847409232636361175995383783581581676856147622900994265392214947003432434811315133664025974143769472913554372891224924178669476607092332826694136374475959647268931169176621535472739513127897405145943021732947178264464192832174191901233813619939233021519805661266414446797120532394208785932669246646927323337201567543357003422602896155347993613160243415457671450707565076145473109946882084042641810171726527589838778709842907609788015716732317864069055063940544182890585021604357477182112804771221505778126596389169634120140440671424570459883102796671086418566934178874117008356198421670333760107264067247511949503555044293747289074469624238855189583440734968351872041313748369952636659136646031878437814977342623498183032958055511945803119534273315997949872215805686759319001360375392218450281905018122577683727098951120063191169494335966511307525155827549420698130832289895874651647998426409817202092713385751772070815735326792164892297387854598853676751669782099950474062922723885007338043770395153574132228800249948894431194448779635770122496894858665893999105959989292098657515032998319294115965962927966649722556060926798220859292900414658371222638808562455800485957888773060887848454133643123116625749018928097075584043611744029360448962435101705315137189669901342988413080523988118565727586711368586743060577502134106559147001096277841034122267963800031365597790853425084222804863857559742937818004986925559792885563886339042147505476159394640207433751036599646117467591211156133707808780130296609397771162312729799596252694760198403147856642642526687793100005558875574088326654029742690002561275556365886426671487302579786818967992403911452610010762450162400473753582964405368619499650351821841239813331458360080623463283416966895739287201495217600267557368847025532968730435182117045203519991606772971878394143682801499909360371602999595878628009644424793702500869706643986992059861599139652579317227654767679349576088084055908025973526794439984526900111096517545255732416149707461768880305340059134448385079514503771409832306550463773636454371019646280172861059275868006819354250677924801049193604426747332191731574529204483975183455959113796088366869351997284378555562182626997734452955538449302502208976613594055348416639106288660306906527249706148291817496673362045850317116365601769332518087844809727783719576138788088664569822841452478847713277560004673119330730542003710922154069750335867658716640922418039321082966711384479311005007857940850193717202449075866722732764128077407196202680658990455589973646243585688575203306665874854720167722444958132818007777556413120135066550558045560593551879383985526911587499817041193290494930987814996430666677033449193551655227445734514231290395090609911239247817022342376474036532279789845663155061791881684372914710458392111434703442058469825182289478940837196739839764472482983725882976499889216398943452387798718692621243074549464808851626746147082693321053355798224343372196079360792091399206085205766203862004139058526550640701929971883018687350688827954170784383732659858364617619069780052316707337263219629646657391031570258101208421039667070294263330879713207940589572095991731114407297536143554686297582174920283958125638692401009715927282642703203840970297394907496652414117957718553499965259947333024137832260114681965703084714892579859619828481544166912175302446807030742524500846059670481525096870217039889038170574588039073216743342191653075700571982834521110332786759784499767271075574007819798327016712496089515328384877165749200025958351179768187948102860357244526914330483460531014740983369116463254839995577283871562742297104023784737965636971134640882833050526114487958837621888818732905897519922196850602919656177201065364900440242610583638710923547384183669672109640180112691298534121665176391785859086578051041658289064771742882443266958186824520058045850955209479553435982423280563681514736915536649876898251868888888807822067529892688542506611909200189996736414838982468555240553479925305088840101818981850001072779683385801524287445158021851083620171930616672235632164310026255304270627452554536913559943949931467736562243583860890699335942540393300867159002391867375297998642396898549703851279135394639056798615261754872065709891722265824715320319966648574009412533050536430825936548662801412411713021345875988985312307316686976271185177772738756387144974607220671309107616421804233635951676204458475727275516498161868704055590123875469712240353066987431332782130604137791849189031983299843422465795813720539950573542727068981221858727892997578690446613798576015666424808858148898683035327718885830302456016733684319864574993351409699822715862629334468829445669792581276561293553069930007976114620374856585377601765745204350239505954825316580148785331020174526778115222200273771708461770323681346205804733348304040090535990136004996466438576587931955439055332477516519406439014857430247637827319941697228527848727250482202992730832420817126409549501204228094360391387092717225883756645891410773266316055901153999552725400396432983189841206507479415006111566924324287638150745249698057137117577627190380816088456849681957295568086590090937370475053496399344146423378391237041942178161437137548653110578875884837641881125594061339553646359765672687678814942216681014484524697766551737956175443795037652841713613461273969095535092923455222236594188628684882820762177499452515492667543498265630594137807906692145031601050195944660264452252368260210125553993958142093366879315411487875502453065512022629884814523740460092111210591119065485069692155764934697743555687061887923407659235160008785231529893231306192843994242241030943101458374168047864749505856799182030494924955275718930520508650277877972492002346683087749182229443418241681341231943761648769857898277003126311105811023087314516653981629183552109094000547584629892188981626539186811321546912658740237622931894528182967662327180155409011258898461121262949450004324450799707473278238274540655219331603422275925107084408139986353078920545413710321361506495935532782540978661456387592356877184625600695379247568115690405940702279581989174108371991863060277436744233815257932282353825168866354664174982530869812626242098511660186457489008920242819997320330195611145417176511437010705441191236967223838284206120356187072575858034271063520176492530512837158236297500513765295024478419147814104597365446569284260392982539969728116322194260179455187246235787307045957968362019439882951771472838817370891501680425464017717008632743008567039300314130759918630192954841808714232587347990070282430542384180307271075432894543704778381416173870528053917859017232831302016132634448738778087319871426007976275524361622074528666273396080219152877104731712368134673213189728419063752002137467756477504988295417876371073830649155075916026994347255213097383006903333653906485495122753956490156799722678119888554698829740816963404463761806755592295230476322352927423331295801213020747306313216629658907719395768516201248478703377028349020403666127450427689200482303245992229223681044818914556085797787960655489201929136437232638377780402776416882963201450760063810528663042894522396140616831159268770843602320131199819648286978883253087840412860975349638137379252088612853330633395863813220989249038453295344204986060076803157012125448563117336859569735522349658049481256277717564677277170621676041785332964697503540084471021037683351281379825305865821179224616906109057894795439989545400174312289324904871362543941201876581597335127287470128053157369605478459346161037400263476114549941326766957831188912106611887157427074957464653837265535012936798502026479709867085969563503154141650685706130987314101845098351045443965435586792098525462135451072067927086716435756478769928505067322633311777438968312523938777053230113463398996092498152651323548862292640851534534823824931683581688619380271728866048614283026436463516692117468508874924409304177078408414329687510405431029153813265411066320304186207011995188768073505849436551560947577858527021256500737254350495711477208693418716162450591636854835752586179230882555308324750256050991069017799714187282969075244991829669866727186354112825852620852602061400141290038789735271123588981634278079835562603469335838608801403594338272418074450076080837528244752627732700347474507656674026034127618627184238334872087324283691426408790957066381960204621794388041158695782832840916297817014617023723813049320882490167924855900293694088919789064083313777621282949861210428605700315874248997175825636917514561203384220766862653589335486915357435385706345200747732917259177447857935548446672089524373417537861612184457973750538482782120091415300661816942992486430611415301039504873644668894131559427698565114034608498405578075486046938404494253260576724357369918294841303836103028168268960807510330613551096843402136687036864967906692353979895190216170824198502093507093330345400167283689821880880944933568179747138303184372765215678276346357804768709583448917890675660202579283656051865457390000041837896856824463760888492351706218591411902842361104410225630617674210620466964329653608279319441787710967781559837253552133481495095517367532671240518036463766525306407198060798858584613655148937776269193208465959773451159176319659835847886701819024895128985680504173665775585649896587719321953234369637852281275682489914838995321259284857018170985099809292924083218541444109500615364273390371755918148567242042095105470705025609165866601828182723254005417073491130804228140443740557203208777002099674039592327491322295852625221979496073625485357005487671002089804572860909224374241048558633127954525856973555762366681987112621045148594120672964664043396673847195726011244878844013495728596643437577809254737158441126472996873906181745854637798357973714613910267172681883597859277493573829828438128621966362260863970461540059558372394140577636693112788676653379276064007441494583932866039261191940813021415656298654992712633763661444340524062563187594992999643275172936459387213924140261143979763851029860423595324799775133890176003093331530724427135756158580692368218687963806284706775263663381376101967774057852937255264569035423487832786343496784950262800519015290262492732776575680845217533293860823723241938545402070543637912505234654976637034929201424860858935176982401890385459796048967961193939519450431143063282077252033114534690570188390204895821724422615821048043261288846416250018159205028893327389876534942018605091454128656480656946087453477339723199471578371024307375418880081339928418838445396258401772411850363361389392153034465012421932730955802859748239522002686393089837953842210873446681377264678439399936888147000835690862077656893115393665389878143213324063165917848337893687365931491204546864979409398119496691387163247773711021231490768002520595696496716062235909007442110075296726630186434399461149150924681431020829434496094322500660822878316321891511826948740236441178559046651601337934886542410307586772534833070065599361104289763729848383231711798120248162413486972033387865732079273671156681314253877544129990370653548815830789429763648265430161662626207329881693752753669057241730233104709787819480303718402305859627234577841058510509056176713865570337350757873501555911807117999686874665215765897604062835691157550578135127156737253230302298896144059594190511912947498039314619831166163360935996428875755312262254704340848438379769575042427597928179108051353587208829999985341431293370597925618171555781864768704563302800299117727382539776812659934054145727077527196597077065945107540434626023963494020741261215041342378475079328067864075548145293115130804203710761127434119309527989994857962266868357358004106419828647478398097844631424420205030666274248478260608085385163357219361919474771476823129501226250746800949917944210748085008508627640610970340723764565167066471429690737034017519963674218638790715957848408751489850470839691713473838272186319006851307610301439288926298039755364103470742734009182884782012178945905192104490690348597341686493629985259973638070968989857425901667515776129776789187827245969831212419665697520720650983797106230743684687252882148552179603991994886458969460797131263079976807360032046188619289142952271842396941488419414728684741381926387936691521509585454887837633931136117011656818286530008586249190104194334363195627872940272268726358763279457954821355678164236783890322688248361546095926789388593723415509877756795203325215592842239014161008038603870130332192297522668959613833853667799175004469532297735713577051705657959615232907755375100967192701847409044257559847302238689461337736238854149029500275303059414258623531380127063293740314673446756740556084402384510050439894788358410347431419810147909343821797675884014534347046144010996923111947354387110279745319978715186897287226754707902726208990573220426208123790716842809490125497597135208019982716514709666219603034765579561902471595738221149245261948069167294988617579786971753561330696878144583425540777302437281955584338003021072059073945409931828849340687532236614432047044598967969344924126386481263053449041078434469999602331619425217779998370459629638903267769419232020956994270039179846476962337452571571481209841859192921530896973523827424946885379663145545968771792048894395817764896524389719716791989275412941759680545270644048567099257083470394818979652497277122755553726126666724567340371048673674315299709749236378571853522394586708603825630064015761624601836993525473964561446538688177709568138018483510089301017491222100097014930671756232552707600268787620255840728778908772016651083956807470532137383626724264840513488333143009836281744244098086732496478330681845804928309883537203318050398665507722757966960683277301786081108216618781724544761663330910862455091523344335524073574649086167552259646685958401313946045563185130220248998210618902991238452418447831980902610433487639597963653453670864378926237747001672556485278945780944770018165603403135207619563315156167511717635185415308899929667787483794961501826890325184070391880827948435823638939160105881164097314028475161183174651144474406098678009662580837950671073384003182586415206121942167092480690162616905119966814752188690184601422244609670404604731743873221221313782556842687442271468294215818123030850007199608578991432955507584347012331646286198695130546859743018554752370477130988980029549577801414387238180708495326600345770248805032670999407184848978950394531115587906762652362536576613988983058717972191599008161300614399578601987694737600094308478274862589729393923679663604061444196609839873607906673681863744575493568222568639636941622312080925073328191433653265218049426887031938846454172962628093013175070660413337517070487889973610601181086805581929714127577145861883200598637941627572866747607903896947290882496284130787842308577042046742159665530009675579545601162548575469068195458197908673347272047997749382818357354412994286901075534553084067706502644998308330974376706316578477831728747630302502224288601494311607971057370638300806254636961857773378560828309396791145042795110867720747632574211862194098215096746013733961121086627179798613732658174039153116007742837022839563892007564941460143605916301101755278723474092846695308232629432785045069811291752589995629253853210990354816367708918580008860181025983984185156119106254733087518081451077693713208295818803377379636306397114964283492895056306036939188884195597318115303997014089544089171304778975040375741627782673533448896752232232211109841047480005590500910038790124730109950064749932176737136095447919402640754593059471767497954838397524955104721209653952167780345756867720937452514816361836972194867218850408938199575115030410350493693935140155842313236236107492591085322901032077019439346511330484069534328591181385392477282868124231701653558634804342133603537481368747406765238578202408759421747371572191486216074190049310656765606138457696959177769053731119436011476238733264421506877112060731732288422354673208027560098985512912603884309887722613622511303288254972280516246407133476095073706258226726397489115132523722991568427472812817497937295062383202278349995539470557099611296350809289359388323787464422636122394623934607900305289449080267078100483915923958742110533026921140550607829380194859843098469934747452344222565332010876450245579409194506315630709486981979116596544442093643363130779083326317319493264674500448842536296757129746309514498894251037027817487819295006008112527954480428642746125738522579299567102715991366124966287512481509414966207845182065064265070798621741589232024062653583800806024633135790473235546851772758058177487747201732501212769911062500757117454810463033233711170239405405662626999111682912109416882756960189134912249627593436172240238690062789565895236436082141009159667243302371786230635220740294808230620804151818543451993689043788742083911459280528205941018563902140155738767606856164076829545819741824656203624966900092309270627357688518576404630144178450625800352142719914431696773018118389062130552453670973470022516389777674664731753313213386938448738382225218417633356601992807861619638484831253878214297380306307854232136446028961021492909699717111615387222081996957279698317559977217404331738374149406527868991239082679149760531756218206723295610863880121807458714121222760687470808743490164053577009487911558107306742110727509059167350533704372569019750790212753583929243468641448391369083358194540523899855188173192029108997509257010514656202690869385592291865599150171753736091006818772796741756005365858765674929528224941329682672100256508935123355685884840350358461825163480980093007497522876323547220068946456223786706500543456016847429842906813382709872773253081685810642335078521924841906159761504400016321778257335027584289650862326153421592492423627390823417159449138735257321376661115514181450850894177496362987181656424868999995807856316264001514276390687402603643711906469541586633066746562015949887036029107609576311920446154773704959990815729487397241620759848263808745925618289900140809686032701637583238783491959214399528491540817991597816940422043404703924425447317501172284455175459144318349722259331436083368255673755266943159638717655750056759847185991260362203364090114084214368661255799148604142143101144943534160624200864565433539670826044982709883365677935640801370604242658500544581288325522477811108366673528630264623950872215826728482311075873483801801145016837747101507574960517779434828145081840396756771708469650869251919163967009883217467041846947649447157702755080146631491984190209739770683406370893210889210852860854159714554607981375853562800204651990986536731137540386217844766202746240876394188816548925052807520751700741101317827279864574575644148372072193424067128476118405091344209305930645608871536187434988750628720488761780884703786538235515196351223018987218706465958599598932529448021746306972287453812931886496730060667480895818311718985838972216529568968895301323342210274034763187350607242554765641249469148723382799088751583330804244877094240338478065853301554374904158461244657643128817850568716683497556343196802289937823036213649512778643760134751576676937174365082188425497217014649473673270990394611882835631225114925399861660282591383141546652560851663186726513745861644868796148919418886141245420400831074452379892069415606360644806458252946865158889344320658510107293431368750543152427194786585730901837321214240990415201413283511205632670325260440321810020121309144383939640424615259888766857400582267207346013443170983402791224667791074634213446928983360754566779527181127118197083598068589512236622907620876661550255315303491429712522328058981304177501709011879258233571213193300931173199337531345491088207451390340690751608910087000411355878550761481458111195436803900063166749331860101212384027122052509598729004770478067910095831612926847847084127281117001794830019809185531811313224303962865165423250250996574211443216828691692617415733662585686135987397676868138536649885358299093401998336737200243632658524963849394211071219256905354976606321733576652753757165464888935134395810104291983499779849191853681100248563087836954849465715807528841805437165138793087244814685487874881112006256144197066696833782391928977786372508387757140697493902320838429006137265239137004957753656805276432065897170161763222593268034397894852073346090944365037727625942387598461691134001131169942071686233360456888076815795425262554077560007379446729483648763120623266773988771164488772144386388525926928439689746847061538335567347742341053542976080016078379798421145664626614888450361716598945590096556216580901253969792507909164472701871553627862354114322970689242429772008631800975339714063909657890315666485067436997874735733752976462612723828791835466564706685028924213757257550843758047735250847065453477622522112572121357162934794784694678500405112499403979954030310224534818395111440158666193877055155537135070352386785405038578286236024717673395102195621532408402261096806052695667714460166807617590253057280897439926780493522133334380118244517993338780441269661896335010065596769815744752148773512922975782289052423024400160377539275300880996289344460812292862618948344349731929788840091237173997868416116622987643519630628762863977727461961473620959022893699757869879844704774670449326869024068024838909254747414688387059619854755866621165701173161820262906783177418392897339211141923991731960151236097244377027553299084311179866503875992877336258072172974577492830275270575482016713250517664041313438885377727950945455699539893670600498615847156148759411064432520153139967741026598020186706870287203276828069276560054532111642592968745453947472570798298010439200990117605006230454263426418773890416232454885748499638669623341048657287506442514074003888625579312818838167740369780558198103687007338868689153387869892268573076659554038166683149791963880474414535136419334637046646246783925974721905641201654927475234505746797958510326765625869168742677869241608690793720618921093949398897129648675178582806642118180042437644933015067642676961597057368087506798584659179647408558001804501855624817858979895678378107721863103914485359595516910953800974066458270267252810726215520223118961729297218790562343184438610893171929539843169728026877162872966255759203801596537063203642014707550423425975608473052345631001360149445573031567027513052377193621784477231318241637324838751745303261737953695802798051817967176241956411583404376751774111170651366560015106562718616666737539706911545873699669951435754948213649140166316813710325654884312833549604744342542713297017994691786116536759749246901947788641774886147440946229665974482793292850245338740557325159256453068925519510956959404221834598262634042572547821254942020395619613824136281732596800812179654050382336073022987736629536941457164880590501574735310433036311962144757100233450729263329751857642532821341953593773135036978865920955762901305146690789080835104535085818901541626270501562554671679415764884068874977893215530075282108386551130888513272050364150471595531104037100387969727667761970324812940033373596032968759407987995291516187968031209306774059854345071657584251308847739313980670409116670087372212049299506915594298544635113749118218095332592982700059439084342869213156285428783347637517295211603818381517322911630272610098507813954872225997222064406908738879122476182692861474552116741787694972992124845696936615508122025879392301752378944112435335537124749831635258983954883911501716058127266609626214425263906994649024084302742705366532516394838927768450894060375565362297493744062903306606282666544941199098193607034944159525662868379302503242022009843611922488000013325213407680258580683265402348406791775214907031330807684485211390452819877230887667583619521459168319005207399551709959929588497700479129784172154475644546880484450368970590692748467283902195936316316245168814246045938792344450862496295927419000944311122257131639476902724192351863001161923654456344098858852259590928037801130456903908075463392700613471133346998775121521406354956936778712218475946525802638084041491765548105216512624903352789522556368544398231679055499815952985046076431943612233221888655325171921941213535757418111605580073728658955825224272365064826811563351838196649336357020212921258434977255617684963926848665803822732719805072563396773818973105929956824394740690725192208338276626716289769131316529339341300485699648347125429979755170790889890865153191385248730198927574272891462345844637469326319815339701437869065110288195713540870013751082412565859428167570496723496575174632834775015639585854213980947255008920609392319485337350881806458730235595084107549302501011485851350686571963488061827510303531670789921928342290767252859208322847454796138446051968019192605082422686473685880308645207101135318228636486152322054747732972234266560861782787589383894576185900255456823281602771502331272363720488173544498904270515386747721469793266118994191238355830626042011297627160164978518211941061751918360865606826203755778518167687584891006168036274585439862661372753183203219925493448502457571975414445897430373123607903286754901418416699432940298434584587498723721485376504615879175606494917107394018435015987968742782202101078155989269049444105553018334788865269663740021109225055520699456229715998881926828670080051144291467572149260637225336814068377540553331008136798121992470361173582172068335453889077082009859214666232476228388479343843504149874179955203229538252301053704963532054531499076389145151747086661842964804567877302012677256674943979677968724271062894832274590276034682461434926852944843398909577031618080750404925878995430571472358244377293112979388088307525199424558873391943517677657390318783867606713433013441340341365375577029161573132023304362581334548278783349511239155453314992204893063190460524899109951025475724728883874302813175522527930589997530564293526748159468608221370469833381486279156719108287472509103084577190436128388359993338465719227168723136414787309874146994669327195368563584736555263322437018058833702591409318600049230233580285671418562744510640138546979285444442150158053063383131480363540120623446464262118731330355848777206115668055030873794077378927838237331404807889670771783004231799192475506029060402317875950113018685800602762399680485392695844223347734133996748680284309246507038427329926672052512191482123039201155783122339034376547925641980259674212018939005082602827964264116243717665429389166464494464609213274698777785913761956668710274231360119612704563030929937879982672681127344157927400530886913501459380780468903329013252044181040431195095929136589057309316146240646449089908667800313780261743766037842315871981710827920272807448685148014034211055200569361646736655695279499579871673891797309898369024121080113650565848261759254814722478101251528107882257625036461040304858556906028098184464410710562116458389461312950631237645004529742625213134152269932190013228858567799678187920709382666364765825331330276469561706465555153738763002381964636321524384157417694907284815684078620439290989294389885293265571000033799458353537497478860299131737110688590826053136642158114410414683787378310521352882231566633318495536621307192350926105872307761695464807334467696697222972590460601459427442737575498211449514701115422164892916228721502407005654406421325686081461041402851599849181575313941800025322737603159087748682337220464155399108484620782625078685912861733110229062395813773930109329334027701815673147142726657087975421689417587296883086676301337816063714483997672675558263204313895064371365288834868027523971949615519653031189193303642985738755788925982113917581029568604562828343965593685314714863015801483323028928997841279882851968614660610549832141860346042376217899992869492435518895352164713166568806424373160349605005330815479296359116294167268027801143959686611603626072421594629740234834908551655775376917389475066486961566399558398772483571159459573903453841762975498617271055305035011575145195625619518107196229531021418396621541268810722543916978980820439493422235796277362575973773799532056684123365800776708222676452148363106768308786478548191201297737205103355726294960060558245891510221581312516659076480862837724348917437338137136960625141641365668219746322038209563404462411168731783180051671032739141128768878704149442456946655778610337999468323996539806489908268239452168131336056618687508642280908676522271751948144204281645063353729083225071471286893540819690868855039615075871733309035068416682251614405419484741116889561037561987540269225739624581017698255496706043538916122098639592598237390787845863225198071614803245915363914564254680934210641422512374000721964865337007261704667083131633278123088919514214766133201875102033933026221592807980411173058248371543452105411832068225328036987296255805801040470539020566661456165705160660522262073841297619823970178685729054319450067709375684467685612516150137256858214438152275195274605956395065340814918368057098766162049453540738832169749589584887938912046867430873821335528342700053912377346925550141136496973677489133376197292757620427594636726124086689081488261787141876216369701743663103640237993571594100467799530588225807799966209687136633705058918957558458982986652141025736750448957101386405478834338545997802031105876450862137845016597390590009528629694202015248315904228679829385891121200125064242037055276414874859217664194936187125480206647098062474274089073012800499895025341509389570736171258220569002482973400105707535180381491203981708237780858181622510183627067679056961242445411565596844082636048781777084972209885639042283853001628660713956583642377071101667991267605385853486636421378291516307035400398371546882392238322946192579228051834668750856965810380798032507783423006991806077346058935317857236638457100830125215659283639013710652954286192852573323352132377971004130919974373823262732953538444220029483985150606119654706490436788135468348606270494144035855781394719655632891809584523817914785403289885811447727253063985996215341562368382865667699368673593946291955917370180652338772018955796139546345645188309768970628894098064051190712244561155438607531823853019310477885076245469360991605187315819870618978151468701328650960082050211677834810436158835040037366959909706362258129915439853103912309264948392797107999354796068234710058987924089554894942441468287754016050502587008100089532920380380467911522266505833578821535944082618128376700031680677449073075583831353817721250787541229163225612338076796328788274554473063662390753207332632336362501721264955924922480665764562622583628483455556777021175069321711364956218960254540883924465368695445792304574669676569706692792590050456180088579355626340715022557217902724103484881986264972908330422028082563345897487011550825734645542663235679060418857119214961875144372784681551403689228303894049761662961772064734841456275844276281613365216344559896338419317823401646107081512082542646328729371978081081554335733572811911833299448822443165989983027217481423954845019306544469061752337520400264079918870115636000079419121519156903764388765304791315980956847833815897158606164585967806036648332758755108198802779211907623548805324297475022748554851387422686519971893776019414496442914839693840706098860965176567657999277965814877659461324035396292554722672542842077605951037725178341377463394831174104831849919144313613806801343691795304683606490461971056728611388383721891590953754209164147145619506934114323108509330488868895117136753441154113276449114977358084487987726094232228139125760930498012144038540207336990677119961376066223558005368565282726335611389503965500724291393214749355050584222824727723710150421702451250419971000114934281694402036987985676911673954884034810938176713126601591909600635932228959518277961904466946174520903179990878805378264656187674057883805712443458471585395421686860055571551646316662927273472430260132777853223410609805291568955879721808076805404922610854163211971172858115486370564049377537717673316052831932145083866069020129731123903712542007132701980488691235469826919743644315396633311951203739440060324511583918824731905636248255356176844402929971096666887168232550096195117933623057315582831985278698913929573793704678493229126025325351406866579228871927111338045239006662083091362828111587635553623076884120883399911611875738767844742210420090726945714442613033922092361741486307662053370331842308740363811479286530434248814879464673680819318264518667055979581443988389441972818961482622993003827537960748391155932471237421024108129046180215581022033154823442006552535966654703203028685052622722151059349062342433800508526926724525882050965294313854820884837103504524350936335594129807766795287361149564054727552114345794021912720838387485327577007955685058862921808464161174018387128263700349472191822684746815382286124164450686420353811144764577511572089864745766974613995044851178924983016271679080508564549653457919086622070653870212109431954057021648500906950479782514976020011715640125754406561522803348547280403700466139336117955319156360501336886521540800610589814581549711164680291358757099265119582932342790397097785162451165586749972469544769158681412844751815229209007187690883030600638658153604193119708678077157718462242950696370792086405925792946211786824807673737834662056263634887078790874410021067816423992184132872116930057203479237170761710395557823518830006759410097495004137217760200683792202662570227778118468021595180808181710031911019277459756043154797566939836761806440118690981313221892195395937646705401277003979650177037379143067713114124477567130172365155389394800879811983098765060104315679701080750176516243345990265524805436885389415239217011138686313357783960651037553444635235487482810514139449836079892627964140391110663248269322714711514428212372370499257909205284358767457727760364548858442947247434877871211092492547391695795362425515969656515786398549055032378058502979999749899812506152430336525593456685745361535676143924968826819785107959410996877132485932113251882753725983163654110357288105003402287868864096070857641919724152383480678334594383350287588839001541546577172847217403281682445746583018832576627735928490816195977557806282363374236545390664647537011671846100913829331452102946672016419702339110222424998824896174769748423322726111299248704707863213465175683172925898177487053905067255336810749616824441969022918893433463759274231205196479718032570696161729648198354361075623945140204059247924450784812684687984135775659937334714132911061171784320840690326928151403621571521059520928794871294750296216275286900317350437072484282660030960605829828394937541391973550026445924239367062110827438841000345669301738600113666294249459321087979758444658088374257680006683146161629789625736693830933027827670496263575585231901949012314687820104243470694598422584176976509050002545800007829105434101696494289487371573817466271387816745392542165408386479985016769268545126850364720223994305746794448717911623527489469370538689111883375754458549056438345781358278818247389542747712799896312419830185962916839744079015511581426963224810425526493711672241160712174919397022796473998052706592790253977943297227572764975806118829325420750473461220617396986094931317689530118420625141470307920761603530107400149625100809930233057243822303147834190095244712449365738689950543014184174932088697927293125111492496656848092786386378639511245630116330609704233102734263098765040990881415826846421277702627955399677874852946813552258053989410921477853124003691104695743408829181375466124975558577492222740464056185233338499359294574065879407411827610173982551648310528883365403584577313574641268087048773386795287996526897567440100457079863697651355672564042006479773580184971805707288243171251771798478920771033873319729256827319865179838823892951408933186043084450090037279461122207155707451889528377262060179368960561650564313153075965239184143443810737207767605279495922020854189254539087155266698176508367316234207992198760982853153080470092106782609724014775775355233686808852940804625624907520394133589442543761941084765347905324566199862747806192232949571149261779283038209950119508442564204098244616679461823382729978846496974869012763443087178781760143126910902897367773499539917715039288413829947147446739255971129232714289144093809700468183619077286802841051450475820478566356858411720620397140272093284960124168104717694202081060933823192946411390660700527755858972843017858758317699019013437493546603472483047231101357168955364702453818994114555011566849552782679946286632555788033727349015957712265909931219867064259634807785146298734390106107311508029039464194626724692185614790059234589907935892096584579703680143586368413169938571274964747960090288243873765516835175595322158025942443935369573299601646538649636443578158781451193367559490292950931795341799698670968027690129260323536026914986487786721937361161981655628416911275330991766958342088452280152815755018743930447168535674384594928120598830803787282850565967471505576550080184820144355795733249238941114226088627880748813167631781268629783238279359403129862770532389818569865810595568515741699852537441424094068520006083790602213048399463683244733423598842991656090499943221889192064041472482813482369370078491273765638832807293747976651355486470776857805249337358071990294767146483746896237839686378726850007385382669935161931243078380625289964488890463105756478925401885524481586596491342836571222630604871355187424516299497514905352241428987330705228939184446726035109239887883529681250739927742112147967688828097194748871789628858779080590059008232485876403036567336115050989988151898494576879379171370817082826963422999117668211099800170686468744188347371044880898564842093534010446305443817538632866675092988314501483671436780469976054289362443604583630909622218727094071224886414422362550637014225462044603356292624106476149697577882484722144167449328088641559711974499417480840072565751991811001699108799966933626518769665700004507128905115283407108618102927955129742169605926000213144165276953370454867088363722295198125760105059229439674208362204825580983643396986497851034186308463007418456705613979744071084636004629860582751037345409088278927625286225311399014798833226755838082847637764214798496239025851480658864924528168818903286906042709484812083877791792326694278094713565897165650308615440779576384889376121233129806533565754555138852224017991192375229886919749033756053047333384823074458099595822495608922837692099075433887378097216389188142163168337469757324733253410148027884613773377370818847002857685427894110967524841640812107061644267940416568687582451774270373121691447109963290385196785007218174709283561567936593170483870404884596591511031884126923862617342021731441663337895682069547362094855593081461865865648379668259735782962364704134737295234158635632712770073697442132161288180949533230701727513298450515062359646749796494759215557600679666662045833446250965245529695371565125448687455142120035675974929158717034020415551234661374565564522648194919973847918348150920622069199306125421321230611616456319585457174970047577350862362575315662983822849446875652100951397976753679920823669279203234385854553154838267745039917330242264557716136439752023489543198480925550505477620798318566560575679920500267032210104625515464090949652217399742999486665439299826479189060884024906747678587630921295742033876940599047157127427283917552526908437610476718381529135535909551935150738159543889665212304834762146506647146044318675861420739131965652414153448533532249130857587203684092548431345813484848796412287416619788451801642398103861127571785951172755428994263341129920262857812024717856823961421152688947898852280591309874604793423920569189799294491540246266001476172589544249320418588072089891432243935909878570270685528456719967292892150439511994615836157614603282857325247249269969897099921302087867050975199925925474593311384390124360879066978438774984042506525662972125135036297194981971659068183186805947989514976678499240928524956218078847996643563163874371537117607872916803451125727281648123321187839147739199219170314830250478444043034371683992384051933600783988391390196624982770687762495716686566214995004171477944286533279346802865530815441794465644021235255025945058247256400973309581043830205860640170630483274527317340987659321756862925432299374972733429690674650087747281264627902427448521309529995253107752942344810168881193487699325499721169085021302091326889872608652095308663968255575409096342928958986273076253313137214029159130913907962848170569724263548472055767935996535654920951480798714848736589387168656909027625144889961724055211487365311448674390461569559145714796648990156501300915177990165416031677203283291660807246967500502881288263693500788718106683616772796851419481130409569558458482305003056951828277268301690204839058564385942293243521709006929843308696137394606447953107488740465075859454087996749720721116303234837722316511680417654697262161774157380551053055982073737130845039868674397669480595431222020047463720658071611365732607426476685016818961663705457107651275968210136130222161268887206287878284947596935165063431363755062316814251959475147780382168584402397653117832122244172259490160694418814412728775303664516785660289856349832780091431480712819258824526298174638220857158563142303170797713809411952803686726028853972753697304189926819055624035288080254189652149364874309904859366063036145727548196550962317943194500711917896874291334689681447455925229587130681565899875681766013495594680831877894331884095779557656409446954331796551003951520369056010208467750339915959531026179775929816437882324119431195441243517755667758053220711938160315235321534722678427289491970981398028885456146134783829112525626219709978675236077000526635073195402401627668129110725939560269629751843510327646820626013543372279265780315102395827771970340937783165312520195430074019960433257360240932846309422374958726319909672809350410322701393968558321390591242403088301067471877052457284572310166678114362933400777625702478428692918745352284224605393129486502223239705844634459791149718625863793887408893495751630439649304258108733838035189596009397722461059773366234651602496301051508257290498982893315820499110363106469627593743200257527446310198574042641694670823608753983358157327234712963231795264862378143505553040863018666912181976200684326739200777433281417540856228396620881017845250540612049516904108401914172102474564821119012592541145291915061117888898743834597023585267218711820263917328067751310123473095377604273837352793064087448870071158035740632668403725302132240337877043330827106544021426868261125706401320432935637129192381640038366897421080365675503875727900859831948291182849359837497601054803362750368304006216832939023950300896113885671667810188936850885461894661869764061026904137902588671423382083179698334440673844070754199140864476659192291758165036620797280391464597918726943376387033203133972127917670233949717993692253002355608192191112559244703824260957450950729064064848798099517878721658799246047785872459854360736399910675269999109051268559467120179003469138032239548574121979205166111059922519430145359823424802155331022676214305613454959042182072214850698212679758392556382332002909396119724597601446514174134959574276569460681035590852723002061745628315441489156088255463782512568120125652383114817244798659585686339592835777009935931048398247591962553888073549111259891161582143876977622902467237144957274222878666659605131823124226785210768113263416578293169823545412405151496465441918600248347948000586951745063959668898689913725171614542949075188376827025771803730214395988298975933876736808547612794431949368863943213189514829522674202136554755319359746161596172988059017684819296472302857106201661172926058475321469519850442437992970456193084648623333633344605095482610949650963440449176403644151852518084448460752318756439877956197754254086119520652393562173673337749158063363885615420149452009729728094969980199304690858886450394679785011503788199804339962341955579525887757374306590396763729321868120755129996281539580770268339364214469300856170493110570261885149816002453463091022237159773054035998010203756126858393651481766658349507999343203304873249394855639551408411161534989622754428406214726602937805293572995677386534465496705194420095277665829775077599873882584594124086801432328887154946337132027830309027846201453141138327818344077528618405315142736746683034466077626268857273541256860828181990884877269356319893731953102891389242197461697325430592312181851949110000834067232607984478400537357047446829293205127412177602445547208808620601185230410987880636587669816761258742877217831173791475579521769481613625695241832174631865884768602895999636994454168665129781644814477370195841181398880507077963658096111620467640025499696609678045326018444473163805389427713557790767268851651380089143902993185477501983863552439469931559579798131157574486055627413833267057999217496213296763273254887606192585327540255598149304953539674580435063758200602115796255176817478579787451122157490470309674897068309914975196969010229715097475126202298267689193240094019291635639250527938471410919308312266550148068622690292263575609394536045533483983584864061504445724636414877326637039620055292228148879285622824704922487156800109727453416885537092336148006718838861453400101258874997037515939592722816424640123962023065651986320186695313560314790964623792526227152440529716122178664423367801810043732230807812553425257272411614193959296278075725867991858062129815569799225632385192988346344986774804495020792336420839763684437758405097360610464578164362907630288457378663228764274695865508999397849867399023343918200274542738497707214962722846829547725874234921029988578516610553046758055620059840472366003968760167205301568528161070426916293276228167546087171923483935133652858299185107431357216888606001028835113738527352429844503505571562822839901124696070594387874379246963954593019445531066797085176343970044219709113871090121524937694370609485494179687921687977441962164425511512593254856164153681439407116167485787393780852877992301010418156812130448055160896891882622026925561442045086334238968950967459709826007923835128252267107048651778121491444284760246890584690146888367329184368163199966736527763396654093538255833592684263330768065443048527890870319255069928432058546470510127195228121862229063946653829482524445645048848417089825408115154225914596611227423727713461229038349885762308268365998217671023120160657143418730542529260071602647397474769871288641740965742538479866150075344472938888914988977393106857239924475389499300679709790151703201540790823124188129564969907777251974405135041650515510962027897471560129314229383529363681054644649160978625304122090740050029096938369542727562613873808644177326991556160687052600837414657426025116395428744818457038950407366653466543406973326336067491262058720742641054835565251934594149789365678205879737579205416006683992271034848339072309436318611811026449630210351580527425449302031791649177356328083196922324369745051104802399542041757174092934439050367029740562342214238269352815217389209715160038505579954135499759492457633816991523992837625314561404655072093539099088218090588288124750992325396918398353287273269561022252518331956168511701329808228826336212734932029539457058476187185209121004759539185556456799315445241560161413704035256506939612312997458969265643081953024207533940830849642252798801140434346908998154096234898216283473228771670629379925398623244190563563496865728337681210465669625351985238625047165109295971180772476601152622125642811314090393902560798892605549732248917572020056872149195229503939075421640082852930095567377943315083786726549494795964284478118946660860933197118704518091191794649803296878245145983474252869146600150781281843721820812817681612680944004495225497438896578658851813036524731413255449870801977075189298641911285894188975430466708827648205804693659618695234081135138384542653240255700583283361514466381781150630370279896325608351794494893019564307594655118716297195753528533657567041416627991950181971338046259099968204244104847622064475546539353729199760283763348198769016244141722796942045995539078162862868773734275956795962236783140291410561708142380272228607644821136162747759374504073780502283659615998921547292454058241314265975969316005143423966221901148018460536665680483213796313074292337060646840069207705858433248203952358071716446836043709528324155884000113584172179274580541450506352653730574048493384592989521022339652687685001518156029416583477386452741039523056966686715695865777738968441710192779135853739973075965508052001086317558033134188046482977480161287063184332560182096838607231263292786496659778278499184867419499470101929783335894726445060633881448666797766238271358889041876514583875745490018130304281787686664619262307238815833442189912967565885547052664599163945620096604254749727882223077131387767272381993989832816696142676536507451068702512966344098688322722626703866696267111748003021299423202626935419853324832862161061524452654844104151442218128638050889274035798339776887387354772106574609479506136240646050437755780058372907799932300194751760992652507090483150376569501217028096515612267265785175412539334295747878203053239284284774853253630469620908166529823214448305516489403890421423315252693901560652547441444492798763936969898324266565296495680973867226771468253540214799064229581702957202143583769262562304333509737918114544345695212399852539918405751700755878538432507868937201084735584437464076772123080785503048737546347655025971440479172513774709537586808660977292960383509041600104540595306375444742943005768511438227766717984829409192624167622188362988321570410678072443532900255514748923074070759128365026409284206418225953438994130705834558108568364893948530979434178611798734085951442014779080549525702839605003223685627761661832564489384662615618271852535224855094724097523365394877966022685858153241955940926836766432561394826927372405164235160193115138709136281572722929849087271749722916542269130904285287121801948164728810666867819425078608719291911373628698874769866200685702806433353939534738113538935328811472356175473550345569884175893173113740034662029570622214456327134203037445913555953362658483272998546909650102120725300351324127826824435737777366099098908038793698837980951580966322774885917353104048572176992615714005187825021903772844696628325510412866078753980322081376824587682289135178969989236237207326832869233223555916270543573123078217559281735739953690277201775153890777705740076337980214495381973472401394257231126654692760979391164252007972220584216046103952100397678191245120098709773815457721002506387443347670076584982609396400317169257132863357167996273478566694885179768491361797342372938377744758143190452845893080653716129328342854425938854309443015742982957430199420698924689005351075559917005184533862164124591549252029885973711916778676344553830106600066645283819804302802249784467980944377171380334283260107626250885236848741257036966097859851864758841073195586604104555162085004282487005064847193834118269566833887227140901764150694643313366511720820765202705943247948424910307454114774513372262400589596996023468422632461071629153070737109300637053016002377476972202741970028785478316075680106483844974077170416671108905776587553112664306151878748106295391208865390966453034457941882662578711107157448297495420353747957164289874270505758927974935467255593158735424383329699804172868857579481112746359145978575171413577740298708735783313170041049788422544160699211370319724223824730733289079882065294792021180534234354212942393360020451654676581788803817747251657291814187799082530913466599132426075014997919398588744815812237349340988200210978111122363801753144354553611645191115232412975647633842126648262216202662646232805219420460401505461813264404291329730096541751548733054516414102164988917744049511077200283934299782774927023969282757025997268734947761258718471340803738476253136907565471965638897741966373624990171432948246203934666564764048698636469867016376841128592064128356856827188288149205687360730470275787130549909097462422713706327811149333162402159786872657702855608110969457401334729048933147872617541457207668957064801557024801783940859021935377916581380659063590869453680101974369478524319460048487622366266158286435542966902891551734395362070423795326686069775541765783671239401139282524425517048883680252288810270580103568217180016493185559953537567544922521227898839531196892524548400300018847566767356941273514820163566753720602342021285750724912978767242051648275864928077425493251913817103236559300003299675693377160154454035671562871506503122550226062250530215511887787357262424812735869594127445342786784969315483890317095434656467748443587079520423009084460809083711859928626112156569959128787737654364978268463121653478220575931861428141222804842860173107199537398670576335668099889984115314740388213131103624268253739771882958139836838684720014814748154291057764880367510472644589573440704286577904152349735036951970049360457964769401534247329019003273798406322916340844417502228312108101790928555251527071291672700963075754548902314149634803275176808776886393166093555297602201242397597247561497192479048742570496116980382200482885692290745357573047821722722931908451839046217962400855132173603093505997798654948052923687814982627786268368592432479379768425402269965766685254099295264425422412747665628897707139132985956400139061883557425339420162101135585622192077970000513159026385020201769206260047773295022162938602036054630793231809767721811028394523124431035396311125296396098014824121666044391472942215632217909625738611761797324871445021850318938962577219183193910890438460014611199307920229867315000034775609953775152144782669661181967300366198897854069546863473040383047072988911240495761231946413618959684415288728056090841301056860339796142263662794335250820894632533751997476057402053320509641866658873061375200452852070861607647933081318359248179521517686194988386463150693928921466595655284593681466227198709479668201584502538533607686989478476969831135467551894566371168758650736431814736895388365024660827033370928375961553081107014682383759007633278316869773232288145371801126205699898009682761658014091341843250913973192012271321666738825871903600851785934154000570873615066818247103304409087296002184347515114152750173381344716734025371158681655083089392178100232794564339621960530318077338978636482181077517832417012018310000201173847770590332492202810599481838412316684233086246745953610605413760963497673520592529052306483415329496699360146163254402396804172913721189983002200943950674995444470140412564822254929087941008946539575235516882677780003213738163481813102621753431682287050387003528483496259469284048054785676229621394381076912340328861157585998258722758720627429700119296216852655378886982175659037005735664929601877879636984566764428185795660060992361364779495106592749245565536648576045306516969507206071291994520805148484038601519016962545370688522099220980232897722774421666871176622768569961588834526437482046327476653693856189900538738629268204480555475430401615371458324038397358174491569936932241126738692067461511154661761948186741489141640412067328004995687324201920545403988100591648932082182152930969473435812078951697657510501809447597638662736541557075661365296864460809783703466066914874878452892654940456096255829726832722856876300203746181178973815175557705689383832446473666215049429292306520971406636572979841872302502046234262654866160368761292328648040836812014718756830587124379693288916401923202990663577224805814167693702068115005269243189717939398167245204491476350791345127731275729955674098173323820076434171631213578267080517990322159095707490106704342416619981538053077402004141749313267294971224182433537316093756949331458862289726005571135716472704813549684923544424281908726378853341874392709221972105323035464761755325094001377139491075106691376637870085920027970033643485232525047161549700309214189604966931694980892456102029687551794968781080858972288509218855639980927773033306616351758031420505681500388126967167814406078895489342775523869873269745415133861120453970850106422857144186749080168544358629425235736728461670328413638709092328006689559000223520205513616487454730338358802658122203111823757962298679203807400295956230690657429492186826699678800243606905524633915747894236590049542909126948286343053272404163236133944134347496509380153766284510411028326906869027631639010303503937725821063479113496793526901435706492363769881850196007944874473455700944281816399412904520266444295346669369500155517912815804661926206177383351602098024203557573418721376602792378723771703858600170237550537172398801310585228049588397595843023026253107778959890150423001382015405165542060014992128537021976105976620367552798871527171913571041471883309555732793808426410971537101314836477778224401331903298925959846473471459223111390831725532473073156433306346549581127294800706332995455356578988985919565262838862209899828017562123530541365708785012039167065835284131432839840359689780298992465245785190382031136566556421943743171475067979229798201271600750239648034139784471522373812400481738841187126209888220719522692667658321368691249705170074669314621968551264029036505329549419620651636751280297847331320783664587308965338170777716307114702396280303832971900539629836268748702589411403625497645208470337205507797162635290912995314236067631423384738750122282604800348130331169895732076027929101097772133944206374805737791962260081534935370711852903202146283001692383918570981384717327732687375091202248912074384893613769860742582274655670540445326873740434237784166832981820279820201621700292286321753329832208391629212978234588035906128590344365230877653297769860072972926173205669966140256203978978436683211162001177605321640734147507432154812854306914533326341081363160112591933362566713163296359086100057719350584680251071453567910796276706461504982945614105432311520881004275605226726499371786300640861850400092249690979349658300340944845169605287592842819967443672264485365775818513940449706595088441541869724353708008703408046667476506774265208870163401034025997652790975855851704691277719076926409832300521387630064311551751574660001335243589198520939269307086536349987565780057341066433231093446238087374348848781111428291300467212196332644649607396701926459187390359499044530962620653520000702422258471209634995977639373349080272404453350214977578823024614359709065812224564417447296097057627838445097059613053137433457253397626180245208774323993660091469353631998431774134527784790630682428838077660891661487352531294833835735762882249376875721066576464351228219444846226632317564486376968524864204203435163052472835479076106792476465375073989470907809321529110509415702236467143648679794563949802247810471083513108083866788854173110085155268542271757020560782623302953490943583476826264866235973092190315128657383462722908412189872745177854119911712697165062663166762259595097631200338180046065993060953173949621243279354254530451610173336369395879080176163806669351753195065440520550585775560351948098767995638275782640857327786016867211623493180239700322429118711826071254631350858173472217669178818674315713666410456741006957740800348858279599376586911892279798766935579409848968865794721248813572881911233240373817701345615935973081154551955740728327568764631873979647847649401114965792653983415264349237524821030963273035009131864651199355112355296103004264349759036269985713902876882427447463950041141650207267867639048286252025196591646318896788095602562719319336963188795309339242890827418165387131572773580633508958600387546864388504891672978905261126779703123031034656835155663623578973707573413870450005986048977689963424404848027171232339141640577649605524085462292902096871268693375531340088035674251341866195131646144252299148923488120898828212690419876854082775792603065515049479032959826896210081996615269697417885547651472440515489374853869300076441118371068598425132699947907078558432669523245423026101521340882061388091259141281079280134034392988268118069135882468565009041970488838400425820388815447748217080574672471191657638979226783756628981041151647818909124698512190851021457683282768986316188757479845602809085711529257443889031792750601217519255566395912947309746743054369163774073163807391357162925246793421381080405083858263305128702672632729082222400500461450243280953357960751454122817272433100915783008355334910499568265115239429044081771374058813652368037291721146534149242516856044785575607900419348562065096296352499998342338430875447073536637344481068300765110101273050701255118618497570909292615531114816914110873304613796015339888608724279570627353978598072152031827638439527954797569481862209645978799181135535559077206612787232214444277513905308947208047324276198108508627341628824043625099491621097156334548537473083324577769440705484782295597958466260252676935507706691282050407898264390880802473297524422405111651535385664748777530105953454288345690747740279343109658936606455110102920097349376536476891596520558102342462377544486044921004173631718378891396456359640181042612238190543223220581454108937412495045536663799764332106389475661806690741365047853038154087160620756661497270099060017256118427443628852100884684375835322860763464088376475613993780980683048850432944074172921385297717726401095960362770293576476922648547283420874852163230518469547729245061497898011738056202755058674642431196056493830691375687225043968947164411078561588820588016677168562030854978159643735137451996282934688472612405358751454865934693288914966435016030574210747632595990405219859445454684024818473462565942162446667830916749084929959702709985067886860782333536211120391478646058480784452811401605027319913406318817531717179089477384198818812403672439547772406575213223449191131476123560412506009888503792075728926149916418117108050596970985687550743129316948165410736368123331153926023864319105035510493054040433922476829348127092508455264873306937825448088877960243790589602332936327792449136470370226740217412361618267057107350728421718893869531147810345015865965867528409679410388696526788338575503267137322647505634265696750435813653062924978977288943886104874676006410705698705895663255691155253160126821991529906369122033063252854479819688120384535464306344583645171089314785695316635873733917359896585712930492338056697019023396610198168313765065013687846488902882719596800456245723640464756244976901990668330940433538712136270490002492185740579075343208398294246588699264681115547266193269975980218709279945245628872149168203043857416927997559872356241791289802201853933724591772134750223075470610460884926777362635758998204915147422132421181838285003042304072884864609902495480721767222833571446777823488218516441409216313885758102380279250907436616193336820100962274904922028454473560717996018828056131575509791767244151646200266546561169538731444622536542857765195861868398113870347071592874095588257503967489268961786811831364204746412977676059594104691334616243766027069173297558518298924537896457835692281350974577259311219888414139145986416154747708147500790454025071179520457020711370952989062262820723643823634276770920797260837191699268572823985944809426483503003177318980472976563308261367459704676968014094978076365482513543514292714948221213049146866196957289006668740443958684064629482356997195852533012888999400736161271127428419313537153507065298517264255311905351354773858476244767277246262302830911086480647994571240313188175722638675517972145543565649120186041534249822429386538370346240074626268477078522481074045198941353647422355852647556620000512636988555152639501750889212385479088010265566044012026076383024844248881512315539065680430720178512340992484566565399203727309492852555605377973506283030277711738522997866330823482663652077398974376506851564982107794997312908886498165177997811261604856587040887275179523651086490419850084683181067494958815121562089459106121900815839869932521267579023405544121068458737851039929172797480657139734382004677275705124381172710887335809213494114128857961115640126983252371111143875125322679291164349163891209710172605228115018128992149320832538805158889365341781635831937006360336726828392467325591990786884704406050463907887570500351549437713643556287884060772831879303535328301163751641737275115172165665585049471283402076911008129248053032097497339126732031611200886753013025929760882176945683142903465848735110088503408008367681757901437526442464667935527740055050491508270479236286618143883896039140071040390238417697633308363942503068998714879838048616541165456685671198554718671273465292984101146272140473869298525868696994663714599298626999231916706623417943698367327155509149221518281800797207807981714613649747693817514504023032604860406887541244703356258147684163589177422806356626808158808285227075771545599573866642619019020714482123124842242000881396499154758543857223896557976024095766788675864244023188824724962184220774081409335352846536736217608101695837858691832996322704101765240652154472700348282439797181961811508278459604133347642267033151826815201381535614400210891876650522657044513303367524572020248549221377647557020847706657143709812132727731553415623406961149768425173664879980622493777371929094872616451472998880999273601092481774146883534457355495108665982861137114173543408821792703483355508193390394984117260870308829000661193628295078425842824692474978533244777199044361409367209057010061845306027608023580706832370519682921256568555904193331986867283066481565354277139414365637765036146714148320293849585116519859391978424481082452311597762944502704436803816828408858566087844149470872215969883342543236294913258830251140717997356695824953942261420847415672655884421383596218297139828840349765221879212130657736155495101282268839502092491347098561636236207167615229851663585829260417230910392465719427929894632713012122310209706370952565338918280574857799733243059954545511856322683443266994860049868722720413605157512812226528939464441689955153079115685519492790770435196585774560214379749580527403857044966599092023701078988408111071419362382316963202608361086617942881053093896780622026918133911863548840746147148232619979102575615993880595083457219271490830277092864028872612965130721428224313790066776992847890102498283388940561627807104746941725236908676200355112769128545021610589827419010878833399110041038934794735625643010683315851516702167309577078090135884867754154311453051146123645077846028863761330025621764504930511105391144437511798758487610857051506058522436162760353079373059705554891575333527655840608790669362890990318178757451088676907020241813886492741592591193645123601239812245192626295567248363628372990505668058177829942449111138207494151787890491205048835081580335515078470094867405808036743815262555352930906243207941960762857964901767205659980868976218751652299482847686346210705526218482070858835959381358956204915590565969884919489222334924833523302269808574200479827259994193482016236728780292208625131520122970604927519143235052101450101279951715099471880766914026121142384788196445375409840853839159066390612248271702562128153511353887055626806090843055807785118316047883073644157662012153651075703893886864352048886841934370047486211441306934002453335756104648886787226950866507373725192412612119339134754409912115699589190243072569697463646381843331996857726281692190605442310640368190344435760678915537624329467501209790682772686320918305435967747183030316237583309277769123675937924345929136532642044358282594719082371876010834223050723289832793989572462417042860513048483184439351585324470996865236653596237270143489176506502234570734212167744874124678241989180884207489371436441015305224004158585655322842942729285604652414829550498465702245269363067477677896912291756071300788103366014291714090281481578694198802086508313616032174675929838240695441512969323896115304974086083906191874441267942943874797681487572754715329657150208679262292539953062813085724558461931613512194585886457949493262236640129801244525486910587959179691447769897746769571882441182117886525274333620299877901624024398857902310031615311722266658899547744977926556459742804620312623649588551308314274305487778233316733910373164312411717330059366417843239655730833589804549092549721189307951332288064458197612426051531629885864641970771636922090844431208019223212060901706366782703297666322402529964121588595840894674220114397573432531413016878334350803613261160829836541051924289982113596811944923190134095587243012098526268477025894430797853596518304511511861702677340495458937237072242902039785431060958544840433341138573756103194874997852611366826248636625706073424008681454972051282672116094442292349450536266826133701469650741151749834310180636688483116371277210192717431048426933225535575313869338335386378459670986526676824599747685530402448085138110260589905748783316771101184065175770754904307427179615137327865206836412501567115374626194462806453060562356651973262728478871732166667489342162654070043760469252239279252149417018884258701669662564838551583645788427670859684814271579979452238797300262932192127040025324146192028119734094342912041640963791978283536806163989255658698646333130130525697998350067837109767365950063481964133334650998803482603705569394272247586593151133999303638782026330358939090257646304398091336144071714209791563991833293215926429772744581858922169379270416301042804193809881418279823307236263127961493989000119760549852141334963165673191994004659500273764858849613545411778171921335469141793148513522178306310586743864315465459060588910896187201280653842869868040777008671043648289328442383088438314156639791947300409209852678431640916825108126532631126953950154991141701281674430610549159450610686294223139351200559528902588966660216266024531469788676275065637184148772453235565057503366284561754623988139346963890098502272057281716246573220444759340222610708308749314835028680856567343102585827830729597662835699101290248996754397500566094479233700828867608116730025417726983901218580845164208075014444379227825365623208501577885609149604878539823337085382314180391982488435914561090485264443416779741724736893376833719415727528169984830666119359140798395854146830383214389796623627162296847067165010237908132721798808245636563623242581417691404890268195624413116603105647539676487122204165410196958302185851330219385518634632701478798209988765703435239845803536905239278226637209069081819093205988143102312665034987391843832809818176473112881246193847152348144709633437190089129444564190736240803918548713984814393139239155539265300553521124617773101517841875090293741403278591030161178330014743612523876793283249176186783756471122212894159627285818799703925465026983512452045559584955111613355347935868777122542036503163946280007745464711075893685689890474270556549375451419303959602609579756935256679105655890483909271016217856434793270792128420348933899951161676013442639168261579984146049495315111674088802180906758210958167914568655421354385914674717149009012504395126438391844166829217885182141264109318270480859203787212817623486470776660095024785701394192252575889177719906636333452179690430334409628249449251604865351135935368487856074562561441908628672542174190452007011285948076015098051897851599566207094600788198366582634137258115553589501907351012175567237932520794446313163513264200543839063608338327368444524265381534553962503518084067700358578685685256352617850066198326252118952821199294344449126345244056174398799628935732317416482066718649254542869148033472024764992895335194064467989125133789999418127202733273530063493767050834849994603838829975171310023889863684171112922201006624901602807857843553843870773567244295120309115700134565822023245634359562456049986145138134686304880132488825654154217033941644556134656037783027944585870795918112856892270851340690461181371219095139632404741215547322590668384838879695833162819072777465083236515286249689789139979215122185377085192736616793613104301690032420294932189704765967014207435653305051937215881644320223820002788118012907188289951675462146286958788765113510620794154659358938826199665922046504734506007008826309521958007882375992552960089191591643417808459379872200020616164430432969745661209486189769087424478463323982628442137613956824015036129177434298859852281257143548971346548431749211149397113556885006648205283139252826002481860360574870517462145690095243585363466142916727525587490751445836240740381959317679816436394842811516495621219609080007819989762618888836688628016376809985813137703230953413215034335401239134763235821842486984487460145825273168035536059843683771134582645305675866354038720529011021745808734380476698096579619079542421085158932247605090354460690069484363843898460352573433015380864564643504187859043125348337357556519614317831318850791895205880308928397557609429227269898715672657556732046571993765912260720970782461285551607823822709021843708016315951365298036563910216097786536003630128719877451106739211281049698935945896301026609347192176139444346244597380597712776760935571973924914157011975612189704203330687257493445782111171670925922510656714166372475525158252426319688230853433804762816511565451610420473952867911583466590408740033137702151639500599062872105173462309020828855033049801140410723785048074453276283356605583494275752385077149998050358757542508908552626245420942323376798565605241962159103246894648292363954135389548662728521631768079865579699692596354917720066353467223155907961579133822863253847697179653459148891315737388297532681189333535048389995770850671165412978412868275754812222327253565170991756078493226211838870138382987506997537749789971126955504480204987517040314845637717790084216920270085261035357922671749308365350505930361345335451857009904888128001200730092317167911839000624925125162199020083373403423922958224204240965189581613731349365554929322488158256531785573289135788839966415687422063425310953756317824444379348779444126487752757070635729322857616229658752640946568664216809494747921133595066597233946539975309823175319792794320192768468753817730922856523759407923818636209729877503720342536476835911452383575072706610217110846410336094308557477596919968673631278796384689306427603267850336966195906071276111761469455945171540710911114038153993272204591608283016424548014212077175803876031611619748924062541792751364523316698272767514617766479670218358007173583161404805319933115151047699268779782817839372425638858172430745448165850358204215751903533772367542521201499388880909903644689152984614423165434898175314079732465345954196909009390696370162195934651161666602506397538676047486789744449412770465310620660789089112962853075351415432171961457001408023383443269346367784840654722423763170454462695933381989534841549154440664477959973704537598550995746216113866058489750132319322897591490222757237957759241012193578900340261106969221906911639681498828034741201067290864422307487858381338658731175803621428922971355351043933598629763028508934774075539914981448727202141133140605725921035316201410582557796147345154760586731208850121412731788032584595733428990866236746415016422785742353061900303107790292619935123877675771437978540709526721830864032359151756912895119630728867953286887156711096526866603563260257171649574695385126032904138882183716840804967646924298843660200516687384878032312480722657111812185934978694646754259102745749911892232610230216294013798057319083608572963813442595437352775379162349460703546821643800366052675263803703230296258073073093037400775938454084188237049692735693677678048938784338139360859664629523253361024180234303020227043277700821125809124314381753578512412369474225285293528258862647594133786983856985041180984065116420874682321669226973529017685066295157347441841191423469563004217336557979569474442536096119713362817546635119822989338684830801415697103877728999601228457360456520460635511310335097435185144954314624270596227242818606024493138587155809902030833894242087759881472901144755561740247503880589197282436282560915498480606002386756097386902482036802920364304647812133171457819762933485050771741050002877962442197827985226429497979628951356964436918913078151184992298135412147388124166946929567028405302375548433877957880628193126684743066459262770518267301953730982715515866439800298662391777532884585539466389677218158406806584865959921410200185083911050250762432179784612147715963452776018167156074002421120099132707112458787176364866462379454043520569507711076208975177996281264142821818037471096886558357117884714607376216836727709266963449656788644536828800894984934684895995838229621522276703584799584169965998101189044445211933092064742314713462214638574206676672439493723937975558884543816282051875472968306973581645861790893709682083743198728665090223519490211591680295489567879690859547166903286636008717914441394608118303358539035809087240678069168887560492422273437277793969194313215477815010472075588147835535837716554472466650743236983514960449703281614392645164277187153070561681930505806931400165240403265800245199219729760748616206599207633771102531197523920690143747090891501520113571326661586349267464257026392755554314074705751361902130460456043525186622600606216537374025259120944430669387480681793552841817878066988111340037635444146669812987232720443213787829256243280393825469213876573122935162774073732688076725137043949945458557409506755147234177161896155925114307280264164472316301611707617012855322382396136272321482910602468732328240830490480329801899978775467885457145522026390066685190667319716471802564153127135655614012136072084426603179814996862152821644458697600454835861923682733437468055286315112775909252162682141311522972878859398892252365406877499118401119091016418872421871641860613911896618603780807323243580232286062690711525543994388799287163197790552197501239201832767451043258237954620157502163504413947517794946950222073612825173313992488580949721392278637480615394068172478185469652397190233237492833107995451533998006187670416994288432102207410421171421104016934589456055608837482781324151520606216091572419899795062345805481259645620896573064487987672297127453300754652435933567877350881496051692249650514014534263663600901576162601130364761954694007821978754070636137120817842714780870087745236074697364482435252878496717165034101668347548063111579525706697239661650995322829500397578070240478223666525175803491725714086454070964441687052208850856253670476033044033174220512443547963910163461881899231985439120507190488621235813176013821327997711141890531070038104147114070801724249842557913866688111676768400008600562940144428931735939165545363692014832783825215199006636350357647921596435563827588875906469177678055947867797662599895877330969556042075862733865182866267439865398244846467885908736864356555285908553809142574895896667269068428232675460683265274141798746200148639791913713549260926291088725183365401041038959672881848947786788533088043613442780065981118822516180497548331965439039868972795631632935946321121319404480062121203944214412042122555633738027548751278578856629514699193242481979148828999949357970480463749075138502928209950632107912868529863430393511522139879494130602093449285961187801139467355285400293913901267616994369620658164393670089477562801237030337709935603814716663316862049384474835416839235803571990237943137444391925743255084983539800944975472609213276243194744329978368005255611539321898157507568895402594880127510717388054699580410575030052104712065362762659748570355941191463992193468772149679744711892795470741416664957996660172347559470416840275869250552917546624731577639413615730345553083810779414561245469164096675120135235098582136233202290672996298675073179703889165414926877946698848911121935222976274757699509995891049284754984562269325334381158297269739450083272177183099884260231075087227037765833084555603665634168236400833633507444995699151622671834509452788369960455731193331372737948684755338501071454768618054153752544859501897183742992227320502082791708040485684024272310321387637846408452202110431306978659484971760730885470905811213742958864533341849965829721507100436355327660270422693992943993999243791038848792401852626625185557078808188450501363897855803342364726459616482928546770346261906470667154551428338260066038125418493025157110817992517006975745924114923826775489525226669807683744472682486189659258478520549621768440937209119108539740467958682580622388992719517865995140055295754785791677145153409830945677038880395169537641452467385894671588300378133562957734693056414063094808235487495885214019684527815496562491420518856353457023995391494101369445948966085180844061148075762488775615611231980388504357239097261325089161197625598326157965665097776715102210586757321204711915331172995598148195931018803796991272087110338904698877706062262438967544553049008624353373530107336619140465937249127052945826119738792556820053287545369226376130965050517447405827356374335797809954644802033955016159504777435857531316880183986246937621061756026374604465845879730563657779319573794664228829018363854616263060939299098320009591573141028460305556430148408111595729811745206235066420538921726529778958187826023683840338157569265720674996261536358242990633945577030466143672300590012438182542150630078640101729430184293892321467221467170528834313105882145138481598835333591580882855022426283081166571210267338787274445726134577333832964878794215228754427575627219794421523678906038186909991966948437960338937782881571282204642844374693681059394750021990868287852587910822798832174155965595059759542487622057378435772921075688121514922465481628409027218779028786503871490818167240988116470361166726725701809482735341350221408553712983340922089744306374684957045179311464875944057414902915848205750551703069301535201360318492755736355121126477345929303534731960354489216813565651539290733399345995430714549315120701565254908795623274879166940876406164179815437254768667173050745411835973987979314076788919564608848626671401741794439886571882400151208751174759225962276794941961703684375119415078435959956742284542319376398447697220465942137403320204196903763457054560012614589437762481151448941475552624409016594586629966777270166492474036928866117042088518912208021432513816829736671455942257947931238724222291201264660135570273264053447273801798478382649882267457323012473105204963950397744703135540190998860124773207494562337575385431900291391382011391071586561854202525172306938882542967697259818233102345256825304846705432862636191267634792146208450565758908009923408236971701220735588941872212862357248256614312778273807980461835432221267655607002634562945262154817020815400694071772960610512215798526835547652955365111275964873963966144513757363485756212049597514565010512213545270091884452705802009874701977952149231340393382896776744114246980802934582664311495824963656029229063912716841052284288821701093333678681686427463480573535602590409742901486630823192510136137662274716671877996448713048755528587220829824511169759270951737001816539613372707238623193226525915865548978034037848932203452597995856289514427523655539674127222691252089477762670619334028639640775922411502489347345536646629492784112048343316161315243041251651954253504751018327546691807059512673204527060102644024667379093403998404309061802766524766824715889915546392792229692892436323271682452641081061772163592383587125594666250674430369511749769544085673664412392971502434865130314762425603220505293996377911597040466765627382470303097642903747176056502020745166229389459218626397936128654139534140540167355917938958133472570329110210791598629350806792102141998993725141077938616314001921743860507585536940078292311300026114686051104589409847612548583502473435172800361599540363370123841336623006037858865656041340930701143891761331911747883336175104426239038938118019990767821979240433169502936300551512318010174493539781298788401130523079269174626202117618640912246116638394151426714588821095924696844319158348065744424075918944506638734606646486751290743691291381455889921917750831986523351943809834132212037815788010659120535030096988705304511627242013687279519448538354448924062486112622739854140968850754626111754633436219839272512287184672864688137409733150998622457095462195646686065994450234193928959247796416173116734528174204405105028224609879921286186867069772457966732490331147769477059960877962691285531053869587812368310443356006177525728896417718808070245584801853207793990914081863054688054106512036459615632891602440885786839369668674123551068083840402411845994800615631107026454537851015483771887742563121131931317684295203314971738908686965252941201252518476609751752820476361672643490068887441868912208323504470257941145469256085409756338620545824555319674699519070198237736705514183867891452046501200575165690911853883849110764865975963231135684100232554873837872949989069086197946827633622043423935205127729041344090310921071624239162040390218067558851802886081855325288692777355593558235855129998307364122514921277145626356295261470425107128390945444214136831343068809647498981658920146876046122286391692246860893562246377257475372336754069959126973610372258004640138499026946268467108234585535633555339493252226730847488808140972237871431334439796615709725798805922292172611718477453955860023637956059417432242064528209124904611236866741201630113389228666153563066417879942201529148101264226035473786757701197760092619004427442935137895748829849161766101406239397626081814941247629647459236840009503635189782645221279104408115130018210422058657232878723032436441424614201514189136656381822746659724700132715730410426595967988936876284251497643576778974459130194000132740664617771712160156926783704989422612881228634221875033423927360316756476102599477663908686582697063934166413233964965772226825650735192858473626716650348065413242462534684583582834635143584817218549193078368789840732332590717853542545635268910317462021157747100706485961718858624344937135756187038640126831099191563223157262778053126075626401555941908703085670416906747862486600364873712664258983190888706462740241311704467469708032095570596336209141655809627269519103839198618358882082000045810805000690394813780958554831379061909944294134444810654334796257971051782706134808620382602776877308804479750706473826276858021320788398050583213720059712195109453128315978685836989971049439636015032117805240979618194336726828550593886473280596267585706062048326735901235886698242517083764559185201523898327147663134739204047799042625510381378223845567692590100309910323356804804950375231189867892369914933470822013169279784407291987948649616625174661384798506957287316832313788329568787670751900630200821612687226098590286967491318183078015197954472276163702001426750783155526566270411248106960207709019455434734229319868985354979433157761922816388713748111265127429661243010531822294329792068591099572414457462900295360060754904034463616624703921681803052358716845517012380845996767185568848770421401548362019929671289362264102232931419599450203197184812014180113117455723269245094465890806984233921934757189722022547312533560668896250969020580456830551854775813540287686639742986235952755314398169081542919541547379457199535677039706799441410549445415209049629496781461910087452125185564529292790518819123193325701012657357145388742484683601229901767741269728161872024221783923718732183383612267635666437287779724490963593368800358749289122111374647997128598417941780116451058593580982615019336578624290848288091258531319890837534187655577338993596148810344302396498265701519329578974871981031709600415758099658265091433195464187702666082345654094604771466593202785836566829103562887457572597916456836775616031346660352631592341698839009068908705251863040331816599373315554061581080501082938097624604785983852655519423597507090672019095662367989854084921340064775845813052145879991581567190441325459106900777880928277205450841164766523435940800942672007731053114155583797016068885027602928154227703556238082272813441336533344097658800187267026487792272812241857717510481837410024071253784208603481595919122452475735200890300893422680812941237416557994162792212156109372841450936295762005426886802519035477433167035476874282483372106270470237210015338141742925289884167718449974908172097010797189221211307349525923092781648011484693235561791345123940030966545089119937101429929160163628141060755875911492885412571379025042269129421710922148247761540285452000716240072995223653821619519633385946625128776387676957564909990912130368496454136540292114392264155778283353904441582889073256478729568523645669616097644450386673649986608753392249594349288057810273815597589782274552152242530249632139671057206302136584896330135596832744026395328673466212981580113993733171680886095350260917430793550362939318729709795465675736297571981629317484813714379367930797801351419805748238590028330962297357238954252507472935814663518512104641287813732965564285384231942571648536848371826985460023666575964275521509245089614013696105692644815798200524502204710006297614323517362019588631305414991174671045985744935914744017806088853317209933605467763237769344122044361058568150454812975999214259428704602061882738499779977125372645391341178196458575188679970085612117889193638470247869675602805411960586834707790112352858253174299907584936771109499375980047008087269607190244415321597229840118861530804273966378664588132911346698986428244398497257121862299047387232240719027301947618196764254783300278414023218787211374268022399003542556708444546583365149510976112037727490024466099589020727997034519957305354491391680197223242754648373103557224213370482718489995618248337762486712936356785750124711414344309446863154649719430162617805890924521642192553199572557259936915207510667017321805827450956390168542430848472274635723787676949862539987296084993065758850832673485415720574412592909460064822039585857859203073228882477786690746841693758926791618111506895546501932915360084788131435953154138381359378263941521809095373694328787456099158313675687517870608841896340793954782308948165135495495919436280091507479736108006380084601572847021880537836327621775463001718092180472063445470409777614961135220186420159345985410069667565486248240201632813868891816996810342851498091873507184399449835927942786939934709797443177637418154880383483595466869992370557791631489030166338985642302965945103817194334340347331013670278454123344621440065808156507825877679209742314657025545298038614246644467646235758951673813761631116700153877857154607594435405900322586185874935651589093009253301360136066795536975075102492850936544554339011369009484609896385078184793472046256483889499001533310213469041139672839690105632447347317019620170406816721733113640373253621807523895590390649797740457042658919904224610145046959007270290034528351249275841780451214454493112078480184083741905205463231294244463032950428193389016505625808476143196125047234426345515907047225975658986938088727645067464916524762220992205468956639217931216716886013181270686950513369380659285263043311143930997908571379891608929429323092460213671281653609365937150990575356137834639410500312311687313256948279861328574020697723515842343774977185729879797021141894557567155954742459972861356099873540521120710871985654819306609209257628076364111637895703886928466701917579644700741572409433416165198213098697996348808308181868078135168689318580346324316114872821728036482690061163140730130238387232498391564530252570451577605548837411709527890681068871771697933389176189158939969033685848869966138010474326023518032721335457511170413499055540934479788107209800736275750419063979000241633304865967657190741154496190261001440230837428786018712184149178641125052467519108471625259955894121397452859440305749801569201619709939645834100953766128142396781508147661792052730128061667359299431825173072637581506577854972960925117168108791812480389750823967407148954384224451249575592675538401142634179433011765812974788470731315230288164201035575182021015918925819101912459404354394244786141387267196304073744384169053805886546595559037536047965982848094230451157441563450359255599863071971156482784563719405705249069712916165946333762981782306605930158187469441127555834946685357747504706189112165606882938997320570670647197691244574606583923187181228776241924081919411909093180667545947613175711855351053391849189694104480760903549620115197330577506884193005816528451286765061822326359209506144400981292956562605673602824838008683833171846518729544505624877313171246747096301110919707957108358767691777204917399601252281947759232956699592590283481108137894620547304231052588157386334457743518729620308786268289998957987467844355557470953703240022066806270415626395526833444487340013624469027407790970838075858920616828682589266235450376737521202593386309669269624773230653391300992985182684670072806420090163193526939552901332915982574160580368865595316871052045320619602922951087877352909237680159263015006936192012047294130085447244425025981057498660610009702250402880957024937958047422156015924074145381672031333145779454358265023730221246180938700361564601239591853758165626526817464368210479481996466405634133107191059336040721695038541194463582750800196292316182678660064891355751758383021111751994047200718582767449432463505649217835852176846551120346865477244096337197069538981239584694719614278364623960735813165970778823848130360666779976423426615387705773837092655307321972835397880515616695199366423626337807230381779554057280245012803384429561359382712861352145355121353919562135229610410248452449642467232761833687228945148667842369107096666714220811130872672281032484269644430986584730141256386084437572505873437893415527038772266449902729641952698992322332962136091118381530908896638406040497695069917320573013649883048336691792496789921541114824301885457556641535046101971293699724706272903654801248400017349406288441694911996232282285456608852776920987010120205670999004630721208638676924642469850483269748242077926085120783186627479604450541794379354094938938864813205304198890444511775424569518391791857651927235957196616242676746903967381329648514373803332143720010616884007302415436278723861491515311764222280203633154530687505445160702612334616084016458368747313245880743444132999303766342837159615263516911243084462824957555177690782660599699709659110980385185477214851209599109539103356896691568142426132347184421369250765591789762723867716882509089978200817068590262628508335908452716136523770017164116195127034832668600409701622210796466710382397610208517419834052263686117999929264943379651815800542874204312278682378436784641889361732756295063747658253380757806054838902721231962387012419858836100802741499686015282582482431093643709341930146032022039996222852181623125115207056771581441087550122133409585043396320110962850982872370062896804354886185958406346866091151312205998859816625007475918920720172817823169169801295188938292822347315845794439912164844346564258598113401159423143050639690623191889926669092932600290170032358017808704785208669454215653681138774272657281751207415178967986946803751435529121657839479148321713428249340694950324587952310862212504695044214716271252482102896115153915168400571937508249964153471839943881148081078934826047709808502403749029519147561114037640202063819909647657397398428971248250427869355237605983309232694573966166432001569007181255893031009091699550049504438984518594160040755500320323107109256751904586052152004031597165275252703167963770622378524511891525056255448409001246197071715218354682926389053664131400696601941682805030207308185701517126223512180268121176951423152071702971182781182559861264199105501088565584621388486071871387551951172049607546491204405217383093428004936020928960438981892381062426570018853011629267066816352058502875828825880089014464423230753446026747611804291546530032372043300583967070144352311521024602681648448699209234109656451400020767719250482666913603615509625496869725835098276328744083308725648171302356375371096400345357365286822065863300769381337856071714071229037355100393421302264506381519343317262935994132169366425875851960361473079514703655350707265062466819486360108648762991609949997707177813986196572836487275263284158792452083753210054698536138537003547034017668523531053970553664979217425678866520272127729705517450288975713537209876656514696225742774128849209093608576425007321988436790629303418278098104431192604093597758328669748398574143233931142796007038013582369874142766565574227686113751730495002810157157251744233102179538213332225871293912471251679060577462078889503550757892821546001950517576215411824964576003591995443187776574132237358830019161021799859833577169846264703403819778709773834212386024003432986894599062752222499053106829068971914067850910566446626350078123845368722148856117190670775874298913286758504272296019538584806738862329611936519340314797421154321117694805770740321015842789009577491407029839869847944529485088035907558672251807817484116351568296349552845653264856462402927630363430757882722024757782258809576350160195765451066671709107874113075074475851989644463668883508586503070461346330937069201064705695805125307143147971375474091788562109249165232794561624563485317858224008781797200508056376040755678772346923671786417003038831861289365372473512988097997534744044071831722140050544179370324749503700566530498269443772934737752631429872721519418302364616026852106724089658395476851406095165294832157078982359388489436641489470259656994719170480030606981106321780610035461094316796059037890127291412417535480700918686653824416341403171408066191079543941254271564606257312371391039792388774361919894790902344539787243280589971101503562455312491483210041994302988936794242795411329978674974259159954935264844617173711858542830218562730653577544616568110081705190025871273912385785963237456943484846000753147321536050088456210313964317867847506943264968875166253067621530130640711496978150113630519603311307209803783956046282208410980209046465634998722689522050407382694981262638825043359711425180336202831427722457361745287382620294531329139258244095902309802886071630486331829808179887091120560083872714558685421796600785913111244741631810749936817755345241341149669408610649806023429518930705982854352226650710889768785152994495884359778164411363848315265290011992840002809042022743538678623661131592513075889695862388210989265110211725911433823386849457851767486076274625497820030344168275872249778034139757352385512264442794531390459986463076096647253380894054852013135726770246549979331316228299631310014894935047942323640906578209032200788189972787485419524279460078692831542178952704605004828041295596003392557495249715802991668109919678837634632509904024501842850123999261372531974592123959230167204654118468706118905716318854175373907052634078410227734591858436710260286337344265418771087405921333543156575749086526631794661818105808498576240352507585889535484901128660724670893996424949890366684824811773402923727407012369054720940734244447050540709364090519222581692350958389152161347127853033801149045965715561893802272172893179046672348835946140072821248862112657390917772579992268582818778410423105271162219097856307055050531772045974386101567551038447570454156389312157236663864550154324730885269360628676192072833805510904203074961081217670286897064748773086946249706406273494230419946756572233123099573389068212836859923617190360735618011450800816853021713846437511615142570035662303921162504084980773286741836479118563403647001899950253953956221805831306569784899918554070639386307972305494683615181757686612393307511194482908880975150500807875369207728823538850188875448845854421936455469120859891075246706574998571345815487547773943733366822325194258170019263686008622413207442399536526873994370425442852385109630609703517199253114855564300166131446637616331682733270666549739333618756976286772481127825759837991374373411044311517093724678838547594865749527324095691946799386983943790404725057053420304948515759589426351135214188147843302509534060133111970152722939147297551342123990549553267227716106597151736864349225606477977194843036394574172803847723253696488002575414631345381047895355195682242018382932564582335202607355484128635895379356414988346979113608396287659356712182748438230575797587821428392419582210781917095652045063296906796630812910693475017623691747201228545157049535193508199891913881485766198113632440678819627220360634481972248963950223600002535192019062573171243312358726597321470915415289415938235407945282609992225885391313144742749334594731847667895060069481577643683442941185612971874921429623720813058465567148489962376475262223941798825031752454331405066772651596088612387436498972983343582660383879221196143790624292987414486191604773659822331107085001370399594530476140929837489447261150787927806462340265012450113174658572078131128609594198429170382218865895149947948477010731704674755734970333157378683733856399920996052976715383432292258900028954133591849173475244145601440456052929289684724002169986646720604427149078883413517484733876318430573025170887514057722700063035228139934263192784440169361064234534090210063722895748846529708616490241184618401043272111438550425570354402636905226300886911879385830804457780068114226288817780548078761115300896354600222314125295727778468846487653184821012398573122108514959675355670724167675194009792864712553444849155105734216109880842136537663152020638206137625555610448489566258314938887253712098166384999192141740520021295748213858280901538230576734356959312749895927427688880114836904347796293853775483259033173883828364809815518224401466899815885670529072546077718750836116358340595447918884204824192154187611921086029445781355748805270990947090562489927153842069947275132133190909713627960556364799175287903959290050753556577303959820013251121843335395805080421565256126871045039105635713029995251514862285613689104905288079994559361215378574968075472130222794813178864855634388022885920633236801136021011481498517582863495416909605494628645025327068501063420663608316550564314899418228788074799381743749160600924943154811243250977447036240046045807692998620134091527597787808922091219432533423335590483119341939954690353833017959042755888357800675174791197403977987078244742568387977606968412593273057963529512030006231981367897218458781103543171006466490212313039796703548215363082925498467330676137757942080130198918068275296064640301393356969989199988736223583574577605151344838084986504017466660510848425295371130699154148598200001968832071868821281177988862419363312936794462845422880480260851718668792482587649974635604143670776212874285016825233837693861946940078574413160275499583926737159982504231031492519284042219515497194234356847435028007565163297650780991851547723063708331876871911491515328293643958864104337813663386264956097821291805485710683230546924290775790210613876679970069468126085791744755853332841709095156590983715690805551946943818013317495912852881574321584239438707444492032673832267920876640451346897191456336276675059959590031029236366812523818370044462044266394427387482817498231103252527297910713325681678076258879901521153469254230461762329690854068162659241761630610665387471551080118244491697527772930927217244396839641833462880518432755713226269859976105664371705724545105317499991643168817740534249455975280878895627342470877759295225913513909326987746982661020562065483743962537518142779162714747787801046984011749771877039434039402674207656518894650577299672503348053901985955682371399184535270186126046955954300905312955295832757126539463602578431908836033649899216462226961495637464014319098989099356417283599705126213676080237627469348602862861856496661066761581839970990792209876889719643405021059005721414046230374763674851473224878557763155900205456026198775869563917403292861163840643747790592670456083290145707612936681199479730616128622420854263890294841340090994296601199835103313053932835002181011219170377524637677666612473863857771668811072906578771949203595418590977558560431010821090520063739952371371860551391212878134354350845847141034033746269404611460439401094481806826993754140900150262125019785417570551647442934679357138395551523339489644662383339996735040296141218742222529378479120089906173032989335250893872822421962303425991799854432074654937780356233933871306092409527381634712537429998266340786315149605824260710175809475523767350335294513410462899092559509360871713722538498104326605011682093283961309308060959067348229552446914855366933591888698836920476455049174392583527913002179812527975778908476714288360120790669125893084982019651975173805557161632531459350252296222964201368537581158723503234017218692066952782606852597769625791048576882073907295227072693155154054875086821743077264869942788229660866338967135232846730754009039220799633621154094195533661253464613677150900233799190641127799459604703944602477068377390521377951533260821480319987175160556236330351341376008570352787032013265125840595589679119178605724438528673425391375787864589765215135133327192641389402628211003899090914710332140828744984408184790635306780314670484874638928812854439295375955686505066603098495338209154735076942307943068766491003252493576026055862171624382228963807545176614186147336900776719462253637782204560981838130919706718241859341567186986719993674472374973415522338738822819940523583580871011034540009978441482224148741627996999145926728026902571547812589175983821432737967153082057556572050762059362355674595419085733942579063056826226572477846582477632036021862939841965985654038537792929576865654410178663596373796294169459890521473606720416892524264537825241270194351419755338139877173292493889460225708060598150240655970388154040636430481818508815085812509193903828258137158329536873952888263294184158726505712372980212771158617520536622420109838139485924511637775372394026334868259859001109634752898425726220486377253921552071849344269218273833616735258306468563907776696175687529083902722154808474547260362382094023374912696845194468599611738255134390321441290106808764759309186486915798547873673850757940428001420779926893082025447740804085313005021098976820190668004898442576290146218700464308497979544501939099014574325795102419028302170029758643964571728044445364994379133974798052569780171139561415040097197834365947755799273189866574037384327852173301144121823874764447055157695643323589828929059627695773780120696765402006048985916107241698513072290224335521329719106023778543667777274811375575969623442172778383233260135686732580146391610522680099334694235720508858863687100190053106425477089419509229690534823382800104271123385861761095174030519811991508682419517290341130868166212053634337510061081779312223867105310338456757051810196655209563300750749172175474153847236007125278913215918470699618073865064607188858502522658696201762700482913334666944763208077668326164097153050580862326367576332036846984826667916281231129741046827208222115186086206654647634223012713517839091255086755944651752964515519525502809298407346981841581999294121581981540161707236945104003568391077917700538019622404175994564117527913904253043742369953252105112162712317394371692482334490921630919080382636918870323927787769642742706612545321391669747921800358816239469687510962987825502774668040567088208661539209365319940621519689761167249337671827740602979260774890963042884853847409465178337409283335630499779641282968304291372288232895150702858608739231308764888665179225252054588334304124141489612137318094541759162016139759600654179698151769466821037074518761684064565996571034956591098902915358365318665471024687680774801276727670345070785379197900973212395453008850668706553448768402976835686171829155523958872363532970412318129633511168985582843596523903858722286352461173701526568773216835594456654924911469821098083505573277654439115160049996297378732059015332984736022026297199474420377674650810828920998313190677106266326188225347017239885175144008234394156543547898064864844047040629241553465651057779661911429779359436808106769421890944943936203433597712042583624486105453428886589118983659271387243182318091310092187936046240027296872860038275292317098917362229842346151826337777967047212426212398159456869874795437986071637787086233599355555824013397767540332237171535283031506826155930712081166010618317153035632728359193187388095934615042088512324166026089442799863158529258705984629464324432154442466759241454134238991742622485610759065325139386370955520681809742977445333399672032831081990637087403085199001225042700185513327688946287073081830256211753664410361204346884292916731948954717415195180451562059274080594434444000619158015483151665251720888440888680045995615274837703950232686188054818682967300912434133003693651415769320696920785860369510498623787288115065458539749303632644043627824288191240350015125050768876514774110121417072109795608787370841557616234671806508238572975110098699839336506404014243425127052564609773154103488651369865493428141776707201122758179020059309367635583485082222495179834000333635409673331549936801742948523822495280864562277651384605152298755156109211558459456759590707776222068032669618262636686127150942461780402836553973327646422766323553319246054507684074340331117271553767192579467292443426794856059932235748927996965335684229626831057106491934425770747738008453045555214680753591861084111096578825661628590720665803280786809319953813226339234859830078736195661360527851504724641944241941745908679461925773207211615457229406399702207837851393325582250393876070296926337152895295791156030678956350161507260881114613932868913070238150211875082563190623708454230022513294479394981825367626497026912497143119106130213800723114448515166814398361229407578546700853020605067235916233667511691735488342048800511600823269613560200186259363033894116415450893102275114527658139433348706698624580544092035226621710550931629249108611442850609543671394391600238744128970675140293075728421068176472118378634730436686957527469168721023103989634857322886925580340273512789048234333051015910485941430743891580577903396242289872365488845069976087371003286588361945450517872254251196556312302974525890934411484733558692382931351821132501857044927589419001658078193126926517624181832185688551200975582876031593177651892075812861192899056596073088212465841641494376745347323598467797313988737424863564873169797763470149506063017388480320680012852059410959198603448395781946876568134180197976803543434642645491273268253601903229686798410986727374349303231129511327455585935513021830591931118013418671087517777505936065773223076650078300754019653933832842964170197825843005757947321181698959624529040354504076673056750607245492040492194982208596143057894031550999621677865268014480030726937913462877974378608275693720046320236880067608403299105371577614621498479591050132194703198398486012170215453857747720836054586044138370367933852154423204774073933123567670493080901843551954323927239896265252352103173797051856680623920380350635974470607549467620542740610729540731619086275754748346375963185589614944308439748597004914082820081567733433215794925151975603259187102734051965918539275690013848204216927247418151951177840735957894475509764515878457164719054840912594835353889785025049450387746181384798076949620402094351614320878984972492272261426469654661304625842534029251893817443005084299731945095587732886106927588629728781334497284477544100879408409963845706632392845703742347262885151967637871758306734619369173843515824188665748237452389821700974955430671460886568751190815047959203908449107089216451340186936630620329959971364612414857108094804418069387782688855329917654238169022784836230233480721862335966369905556580148396923429408257038088341243531762812477092620403149332716251847213403951592945948740193414039639560705131564450273592345225785528028362178624435785196435500711159837129415539292607074242030756495420022103407397644612081995943680565727194584342637236592697301604152268774588851259304798530350653709764068451211043921946670606666086547878122597885890830018820456320958899417095576830262206491105602112010548711056939713126641539974828673899998308570581817628508550044361276917419814317584601435159119815261587970281851527530324209451018034106175550685688881679437692475835234030528885149120201350076409958073104067040833626368742600447002248106689280782899797943405323119705643114615816551851261538056056255876133886100277389564464193795660587930654849654156582067020350887955628004344666703646518961327748141357015116589973380141266813912516745475890947016303741800900414492939811995430744574848002510664881162116404111979260406922791090329696239281661042225421680235070486209355539075401610276379573037626445756252171315729281552989636935539592168882231141379844447442836481335265244393992372109170688574364810049743698408366771824258811975917715976783320654822015867772852151354154973215680236570522194965365762297629626978961859438837508732216381010997400137912413541452023129346385150587487889379044520041461985112455752443939774215541071029754863214397250029689576087280484977867132605996670037536644774788342843791380575442481251333809056000932382672457817195305396921416972303497236646876604926576239898725484461328882778300571583901822726293758297943134799063988958202496175810185103253445367081612680199289682240206681109245440968966528408921612683858500105474038615014824385514031890657491101175427291682370392808942655120913417520254222600009867594896120525962671280208502499473599822465170861646482747635351065627121164769410995333841017747507060185405816927694218115310989157106644081277501411664555525751875268473903261036032768482913002172119009104508576670146835434312128368474423551494866325339808467444345514559420085759456088256646926706995282891820280141370536778015844762720813177594550899812714810467539852574036910047752132242978750366202874134704551428634337988215118052280936645484582168833123143574393398739533227158653852557372654497561000863274489255381809693319074346673691009573655655922546759679374699761032302102925956538424328376363312280544643495872152671975785466794251044258030172755972618131189738874545288093562658554289940466288386634805893950209662866372380278219077612221553274438873743791983784041749458639856466941026325074375538362849594414701697360571070910359854833490598366027238020708064827942895281369556277153367572886707776243236817388076519503773509689638092713620898317736819547342045639790408594010326436941543178844662118069797236454131857561918503675924290026369181016594494936682790875958903541443509649597738187754462021475506351591310351170054241572178134612393769587666907846403508520774657847748686584271335966340135591742230360399494351419158832754171965710566384535641147861810190343076061931550116692003983898500268731213626518045286983066709846733940648309801164106740931451234942359452068713331936484616088295099711435641080887924241417711202193441878076554338449877345001905506959088183448288484791469156485361277292882085402755373731199411916725160088901872601044252682493180782690458661471864673624383596354174008122424374253455307378451427459872596473177640079308273867165670803260799833315722427070257841917663762204636508830162533543525867217344418016672637448239831498311300135923012896301498537084422559365212819903665447246855021663185629639582631988896023723701983947672471998093590033579831465697397624107469217967753450061884949843328177232246860684307085783385890188610056593090023710137820049498342551033251485141313302659533929636461826238494390594523913997791836878511193678301062014443627249205967375327564294902881207266132878763291704551465248139511186830841108284437399372513314730825691005136813520859545193972151541768635198711609548764098906299526544594755204278460505420997616019220909663329671710406098284106871657397808367745609138771407805721583320374751730712120865975388472862533266039401026587255366330826189070583460306654834237347240758325944470664700790596894065466307200353264291076388028045856184651873112023702209590291697384339294300469437924676737199259415000262716288047495352219441565219582951353564869633591155165009548527205201964519389457353808157241927652755116522391670411554101814938821091084165558235785478290299849066038621163278337935116711846672100477276786246229738532828001710905816155726121714047459473432669684015961639514787808850958854130293101312359174773586239220487314372518792549811974481579526589405852630867675031087380253850497079951165006510985413368288758948396228694653389312156323206931168257438041311836095435071197965233396958023417780340368446293867898262705305844948225604447409432354369923079484765749004857850739669010297866599214109309204172149298284012444848984807846302444574203070749702410024820050203070517992859308533469751840824991919886188161884029444484313401279131692735953413837743079539210260643135048175207078463858524067043713373706531932457348575171834626559427601030066537702280557717816883086084735466151806121855592807691811750138059971318050267186282998802822219772671213357438142476818668648293617937607045061364364450142941402304600587065504872797453879301520462153502315367066641895518259874714583249970545357787967939835842611603982530385078647193375782002703011918450807566253776739011926718987761484223763762540042998079115302405643100159259160535108484967599409483625241038891553015218148615525591260943775165260123295389896750701683477018893223974065935430498771273538499707035317777414138890123088891977000582155384334783219822631520775267116111467478850925517895923659037626546495775334664748390378959112034737320730183012369191339031737568763946950492771878460707922550102222466143332610889560726690431309973942052109238210708535501826720956971468474688224463580553392884210256501173340384515766587373752954716941590044350083208473424472458801679811721567046586144338102948835721272875859347793071113169992708906784445830993506007967182973416128397009803776476486435680494429993083303348329575971782647421683633676598599444576021618011519134371840140095161677949711962061091672694032757009578960647830119958843830545955068482364502346823290612446940992985175215502771704969432296677263938138875653144501278697092253818453466040376690079572292520912693595323689524090353672051939711410117117363223521106989318025546264149108177440870883652678963209741635681261560502879199497307689019131613550655947517994295126917106358483227990469131787740785222708466196029347141607622936454605547531365254513610271450153500803864436879917462974073326152090761255322253159331666659639937291573292581520095759672680030157195046881212308306677497842619905472969031414190048150745895781132979694174024593689405254248069702214665641125462102923726764657962436214323982629791508153623273014998556400541579878610254973910873442192002174402913540997426267729641080472715600889381172356251298824469838696512224494542511247911669118949951645350334229573493429851730187147653645772794119014321635794421750656098738757595211104867283862976932476087334992285791826884455489041927900766683480698500662891667251533140713824015279478757051970751956784526186958970381044292055560594149661694690987516295159447986832841383713447171368401535455390892227064995742723348149463630200196660128584094464297465847058604590051487098728330269964853328392704819262586393461360371540391213411746293456651327697833401007125483198615278258852195589346585041083000179546460738174335941897889362367611627158313229791213575132354367119302916532432846477747102386330634900534401594199410676881351556750310730991607257609313201864450744864564092603090643156808690702998011563754857833826657480318675633984555353404660399177110848519770688263408103669445926240461174644193057233213386819691352797195694104409715147398032925502646671438408179642632417231195795127267697607063560897699368449130966475091879924300668453365028482941550676386090401875716867236518240417865363016314130221936675003729207606725150832203836279382636376834274547391436179079771941435288217463618694083197304525933241493554943654244491221693289716341547811132344448992378440875439547645634005944179502374377029614846214416669544371523787475741465076129390408855313143906460901645065741287962199697332646395748489862060679932907866135559700406726315369464277612620561005090891912481841717190209295934354908841659359640403576702626806672831807738347798430173812020443887815142968481613046291517537597131164011264562463593912323309358395124773005356661911475968690763968947421656015945293189260663045504968680654693352625344277703100839103263107655477493058025897129232899852688237041232028975544518108709720560496884329144973946939065509438136698601541888853938467350875375975708601876404762158419004116869079612195105498592571193866613608637644057632255679059335212299777291584635346605484176047640245462117323745936482457752503171412050965569134515795674802946626496604130843018128285454895845484781163615878906285108860668352699028395824009319252118976381634449986671312148098009321823987650794049155124865771097727765451110042591614928995102747352771347827324712290292822660609330077419738978059999793774603370696020985252601182970738342999259943183322274276864117929834091641300426015086743565722986173521786689034462436491500404524867767802274910657528945213082040380212850981315622662050034476602793295589657158534052249327738037433614518066074103329245743870511150311598635243205282604994583422108964205147131826350271049403390187061487652216992571565433447734818329527532465609821965618716430802600204715595151327652802562134331063522049958481841686784450291429744540458812485864331701293922931344653045550893133670309204215274937963347615744718234649187401310988399128646106097200215112467465525562629034681006479603767167221845775272247170709624737361993599674880137098361970155747531022914991681560289931345536436436004186404128664095245178854528582723410823309587267670256335272901322480461803896777668950788888709337670052556747992971212357421137019535996748783836237169490600781580533150968969020462823643745556636695778257909985555694871525150461063791488426862160248603097491089349078337898057161599434099224866244995833594120133423691830318815301623803138413062565445041784658039429434954110859387286299640419799438419646703395803042116710990581120948073102118302925488857920592226046308814892130495562960181887433553868892805362172886001137119601629310022756943814464959021889635660251390080469436184298495554500554385245250028544583230234397804304654567480783995438913717948753765687597935632627257308052088167348190980254974142998013449085391740856158433503474055172896794149560527737075133106554660234085219906825559291973662788068209750200831867335461470557955629200414137223512694486214414020036070367090231085411123532362202500627834088865861483928865739359141713935501192935901923878835190115027820902748372391807853048449762464750646212188253416234613024963546571151678927913749481736026677293549162126173710469049891761885086735212279623125510469851053211604050576370431022675488996598613874434590345303098533133146927512217536462787099075890689645073874622647664685871621439827634244188892664560970336431769432398617383355402969163260911720359394631742964036118820026648644983614191843218675877155682870259540630462828086608394752480266886945079608931329686302622073045010347211542639594833412862998469918836814777570810405511282579829964299138040554234936449310525174750545472903589355448918424994778618019835829610809439175934449046298417386798056081550308317217802501722958521206576921363547570858312413904837921530081840441153504627330267309821650112313080099060497815388350010573024680595112294442796325549455042261161185046764856442714454933641767495253135509685213051482700811614846111460859619029964651396323576629949565721309825493898548264375365681751695203496743677908819465915452258235067229754000579856658963719713251859209847314658848558957737549931494161621546494401871437418546561798592247802494355523825281460601798560945541950064202152634782230685480505863475841449596649656889400050907936902072458961080877212551892001409743452536653386577734862116654692927897316074083812688859086651034394158231427656287551623965310093129034092362883795150786548394642401911640258036874213533626745790599874083600458304094723974723279437526925715939104221124563238118877609741506327023830605099007985042084369578931017557041924419117904054935076473694668090703376429678001438149481365936952399154742741322125969572640074433998014523352767481177800950631357436491028704928134377142226306722416384062143767886261872697500238389084440162650054834935564342126640976320937590444327908546164209033861184026780522895468305735420177077268758752925153034143556711530369111352828399298852442552015886159807685522906276466944130889801837534565685369959615386064576861843598801821892437317840617490109891524741533133518618275740689782556528981171936226947806372143991444717463433470003760679643683566071278708939428715464447907451872684678545584409137245442393895200372259936596691468934517626274399174359787644918863489694539416422223387191493623890104431450163912629293009604137968130241444268924179274157380920158314884273862813103864654231679234421713285737051827778501795403012467407370666388015096448206097545057642908215832504519070636747151674271111716880194208385816075254137013077202395927671801625978097855035731940522320628710382558436388964491220796998211544706290545120824207829574575413461364755895377780728921657424338456624388715520617447314110057847279113258164146774382708869101681561525974338747652666754952838168546696056667296126136889270866959282831139617995263137936370864254170396906342530760343167786791636337174028462518869982509418699257954009560211909214665656016627907607467235957580800831697742848542863584034963925294934099343380212114272892413711589660508915897886036545840901623805633546142818104013483349573644240130741133434406262545760959412691657807366991460110543400741425281225586262141478751426846257785928073189171007687192662754874096852645091379217912686480676795698749550193267096891315533418934651292763994804987175902021703833024919363209349339523656050285750247187690411696714212255269526004163309306470333063071107149038177706231797182135233952950300210534440538950641698573534600578245154529256751844839995809871429313948879838521441647598596968384837554678298644233149161438135570984797225132494642518878493909228564684693818223368721022538461925937516465248594892946436034875395738955152197319996941942509925538652101014653369194823785921595289125883051498487972337735304165386695275590590884593350446005804561231012645302836811145190424712458588345233275940830043977878244613751115837079061987348974479520101778995676009925727688619404342544936400330856355026345724463254340159083912058323445681353157259865764872573617942459471388400405072705274282111231858078625744044833628131573250733794029927634904978146552396804019217557636727312245687053346163858626087003844094670562425070199162376732615954840265367557610353401838000190013920425693060567922442883466305521942782382298441061619287725293348053426988080329320290282714463878113846936487705232345401711423290933917007291400117162656078513345756397188982822849298031204368277178607308267989300715844483074943664914592385109899726786308541609982681548595596669765039921051691980732114809541570908216558944817339305220535020729560822467166931356430293800698814191541704875641154739481000485772334553123431691954029341126685439161425606433488635685819636441713536198196437772321755932861483440422661107596177643170516345137636002162257297402515441698742290604004543377318188618496892307059583816059540969935145301362590965081310225792336137196133085065979541741029930703341371627292085149869665856160880323247511061119771642343734615033688848594428979003025939151944575192917106111780835011876595450962441116109854126906922292019722420277604207275238977410109580355629663239204816614266204746054197465845113886358955880818950300206681115757398868450456007984592514374190952200430849795526505181349062429725196683628270062460236976818521494908634991570547644198271600261822033435997125997898246014199593200605040700774162887240898566356552655564555787924210178294443488326993305852456799934979028898235780693449906780192839774869773490924344725566777730998600151637360432085680985739224767187759705631381529544433112607464608312624189184520739697905610669582344639706292198701032080048066894021378974282519593264184073433640166162767348663106453773958092556268144948080742084927534237733024225328831967429237312731009506986547342731093760825957483142297603507795071223846200395861952668671944729720807224607815557316610697069882388045145467290497492076397890198487959682274874594507443850581599879042640476150362368019513056707975279369288518967893841245037819968759638854823589780133976790819895585467787282494742260613894561691749068103520452502681188599932145763354742720461873056400193683978308031082613502066345344121360535075029045005911976769518963583316109054962640147914473975937427110964702158119480739471495118966134623940553140406319582722558286836407724758180590592759822952317797067452070031409112142541561936399289144225341385542769753653208565324606697008428151752524167999121801896633613777700110929025275423411407569584924693042649341796593149146542569505513922775011888569126472289875402166198457209608690917463104762474990522562160033265170975330139822694225827127289061669864565864714056055374901874685071503227715114304896755165352454387252647471859892824768412723414885017462818607894053142730585291922104392274261113606917860239032483206589516973127636401420138148220974089810904960116522153437406102954852623972921348218884863849222416879336808854520991735673152743541978573481880247312360706033091203777714182000085512063080896026768321298943427582371881026261814876411432165105357693356465773912955042000687423576794207308398109214514443483940642723312232218806910866319512430692481505553025614284837008940419066799253557142390670328869818954028545872649425530460157338703090438439526094993921155158625306019307857529843711462900383953778832632764172172112123976337156442197948407269835747294424586088578178708216537022717487050568679703991401284838316990368010341327722802338483549897946876281341036383955428882395800134685652032549675241616202002318665182772384730797279519006880364307892517980736049845131306324364936429998082173936794084349605145545649160838972687653400301770333014835092124451695873602499831111423655086012188855262560524841181745392464501615613134964534807693903959966205172746927144096963228090379077376498422487780849642650795003587283505821694858758829848939165427556924642034258764477997201040009032811391768236494717619736992470583878976932829396780589311334281253928980821068417160218773181116051607803811366486311271649293550233062791863846800178402578833376696929672116884295595570022416234857937560878930743698192614766282013657844079173057322943529988131332187977741670088397252548556375526444310120233435612617584365299540002478126178110988283268774292133952256734700511965488457267757723748040778134600088116199574842760096061300834400044431907948987406375899902754084243644949472788919365075936075776122463840698306502782221281409348381978778117444142575607875911918346716862858717636250604858847621320254978067353787535805376463051050773903401190323622516197245416397578880688506894185253464211958873922559033637303853579331701386108114017360476822929464126562946369044951865549760225741533004870945461928661362008264476597107219449370994654702882946896164255469597388235135653837082978248255481839676383609635861517512150399565348274662120659180707837130411069285262729034164501211195464809078130524804956128185804423279401197479399830091697727130030977636995421397453419406065009246357747916507033183079190761884440483805907266340893249038205122575191353177417771219669853385379529089654237920173279286817905241032115068581837646023061774008970357638087716471459111491496760794781526514665866596858851017989490954258482366676272473743777858734822843298094057163533183901489007096791329232130122141113543652715546717733899885266302226175996389925554808109846117308797127070040249135099949273928224716588714257568841130931297171709195571169810402905989597785048832692351366449887757906973327159522709604304743117181176329729838874260546786017080504936962966921096677833230733381923672347316422398512595621597570362625782827541671367829925677587060692378253172471639189751196106667652977864743597502190925616628705030527388207789005703323778796871541851358459895203580280506536386996836208093984670009445035923561943855399285231548867828965189503208516006451026083932874942672875814938254464415406845987474680267386387062407009855265901416415538116721908569738481777507786534404849933559076087350990203853487424945767981209694678636288653277653367522429981308137406904509275514473075596458163817808254903962261691026467828053866099667533154407540671699532560191991394035019664807043556042340765847467913822364840828861950743392664937262961354998175906157429252673843957102867566214252538921440778872308223478367248847936263893243862587925685149421244605828007331997951962932508759824683619620964986386813037864787490264346451717674048237676902695458966292008296978763906216099999707178370310005314107165976499121432918929484519584213578273339801981566632748386445079122956579975769894621002473727409323813957129520448941230592359013130150387342577758017490003548567889196258225563249473357310589089700928487709920270497982862069823548601920091364472431620165644048951426851026495791533965578907877877758746933044007508866304177710070316472726285840317952918572733623808059831286336192297559502251091718231365598611274225622077785488452377020216173912638795515908918537043764664704951907343935239184515515810774664171126480219877576403819260359561216618475987018116223432623306272764601999324465306272177067142699858267124948699999682513022290410084252294668893968900528613834440371370414472608444091897020735694378141658088810260013561669654757918802350724394344103497088338885412616040159360378650335409157963837399220924872760344024198906102355257242854354635180966351972702299994531898219563523546477012928955733351607942652845218128254577067945889338064596217845369081045780243050405722648306145244864543063510738030749809068580293644503094760375207131846601538189347221991854253398102475963446906286454275711121074817228294517826369969284479567470297092461194057701007122226168463069345911819621117463581344291918854027983502424601844583449244454857070124837497889928366903388426701764257218598695204743372427273742072939202223985099050577872748000613907537042922209386599580997941434448646213250954928224392592900550084548075337664660529406556484320586292878030105019701962798529211596756854782808850517600995230460706454963023627607368126293651723122036375449600471588193819137359927795909430434203485328810167291037960341320939112320528106031940201075995726050345288380492406838802541165398349404067578571670121200547342735413730157995059873305892220708522217538388145913266661058408847689652973320347362126281460893950038483895954420987070352071579189135824133148234879605856711516300326417317972972098698858895775357267367719254443049337692422002931681321282729506526807430203264035739139083216766816202401952254318914037718882050265371459660092806733239084199917662503443973625245602572285889028967415797784253298245041224064374659534522935014335481374318902108564931120385183295927420976238123304384475239752982426310604415194163174538833139874998553503000682778654661867340860408536588432979100978794061576791807706010250689338351972777364377955274480061806553405247314332651445066007416938180541545086907322293724689831063261471498904570973411706644014998645970425916547434045989661323417087626018513431611207325836093241299461113626739924665524289704554812466938237928011171404520335865273660184342735480768131576601361349045154215579004149630807242178044590645405884544259296285188987739302753078397587973330920457667156912189106399721985376244546112535510547290823074744760393678503059452131853010067511264413862789193373063924018975354935505396714417192394705165366637712865418914234552390810103688709062473844428296116777249529281830017713605064333078263221313716647701076149374655190798459413780778350718248855506724357200343781995951699552971368859811761819522299194002805799602710978557831747837727747578574198067558611001975597606543929490001923267893970910405639585981528244579782462937973184687122196564034594834753258741557127457902483366507291733096898803562650581397554691961005828269386824301927578693363137214407455628031584271368099532513931975559166711220957824980068027688718295964629560059444858066245676682285145645618534893797219726398830105901617175059659168464773412128293558221157229196673781846449044969869691022443329152272792936360488200958124858368700554916036993327542074990684459545079804014919579494275541740594708026707940890303285156164481470889873788522354655882193022127290144135618104754152991332315326753013612278955002299535498571897844483415810080634706139958065485878543860319727854267433185038489707412383485554732824947465391853733128959622531935855536745124829203552292886524080135456068411421658300621004694608499443010136228684150298505933463479642753064302305697085404889905387831325428222672361251808293264740316137211717161927901090897106721417234121002047035750682879154550637912810275214884575384470649635307709321417341249828877120124523726031598081202438926374528031220503811884292584135070913410108156487012405310447090653167200186994688291486643423691077652560997932675345720865110463535341102134527774075511252303426067462586919612874266574032958338794812903335829469819072102465556876382891890757228650727877681108656330808803446171562845000092808340435978507968019968824284450040073830351250915944477278435455341862761664862842817232915446678028896108661045523683206381210687052725852248828555201794327816671772704981329444790828585913064631450624333318995068383892503949817527842506121997559604589057025066250386160835847160184151723195510957705187946992823424107650924373533027814805529974443406193282080425031604265896092961992091267642089975621545241636887417679026423545783568012313183947140536298908432350667400473138383861864317533176853893965774434101622197188950201599491129725378841808116114952175396538055247662329871850818013682365455799998346305371876111274162717684937507513823023998197126563918408484110429011944661621551233133347263396162797231285418921364662104402411670325557706241865067161271227991852807905987504993717476770620884200586327770665698761021071029341699692706302756743276677036739040380034093179466810955932295639690518473568853416619857949552030636689576557635275692579044477873517902288380527068999158268794734123956108709616250426571416689733946282697291425669808438079260890313435938735584982098657180631195478008857368628017317779037949103072956649818560873564804012611389913671354998882315757270386634343518699431436116831681268989808711116942229850001243988907352401732661714951844147678786314896098442377714407318142867726523445297404351657807950697149461285921412427290392831047076782798208220899707584810940084510165683892053671713616481025720607535765856825647131885752689329786655291401158404650919688915599003629247587689198419406715768259974807996279367523848325664543403333828170825549236455734129974325744503571751268822770031891442323216769982221238773495561679287530439914732434428165739583876721396455777929468559792253936571629079180241847510551636435944528879639746034986445324266398098421808868826364594153754226787435084996476920945510132716062335512468771032897184052951552236535184720449865783602193541017777272434506765459299499616328747894088315698106930589478214248524368330767255889995402364443840821448480026160908775773786237385829826492621406608138913750104779448423948073782604010259579488985433286613413106638181179597658074554095688861085363964485896367217600401879330215165275853508392972255978358665939338090190425523904784553247152375811479116637791276935467770090845920773303391683952149540526683976480456037030517741925392489466562626948341549141778308462325566121391278879406887279672768851545489939099292137779757125725687581002218349982696191947215832317058991329860454972783266821753544524936635705809791064333525241302972993072203751864059386214572852290748076998929634304001030843099375120796749814141451349957850621722346623998464373473853286123418652068661075038458688885001735902537754368882592450990860499599664163861998185339050704779070466516342942226721878302472267299855709218786207733254426016540576478015542788734282774905932978543408581509577924036971705154120085291077086972607701883276261761558864263088107566813176651362972038084253134322844119886348144598885571984685743080735271820577982598188182954200671062632827597646094451511559532178466084241253671711407223359951268708994806553715950529804920523466367404339119533855236177710839615430579635325775051547747354902347575440007132723755072470388277133836362647298145162116088053130828781636232372455758414156802497302197868762219713778398994747750769731106899977068354691108248144974322166861809790483494357442081449402370955729005887804943037154152196116348002490697518266812710036489415523353198485592706657090845150962541306902603633601978264943707508257718791498049931068581402774728901265173056673467182340962965910321440132918443664942680937245528867652014138224967710731047759817776523935846025659994536857906341294844080373128632920007699951546451933546700025028144674118672430968962178862130892804887944586682231591754867711415380203340038974287738455028696523093906042467076253064116983070064634677630449539160885448294197196979073875625671607861774280835320704860110294519278373063527087502675323264017849850231813111059338273067544812018438641931297656406842140503820464851604316713719406412455477277648568342552699889533299543014773185178452263972247850089200740975007726285876221695384081518479998768775681013846216251030847667135882350888040569915783009863304201650921322053545116500099312881999320687960660232690260263241526243699451922755374707366690852816943573894140428815585060070253318836031984177485818045077043886217426771174064388000826204386396618076826475720989551680380463496635199807934690866666237146954340208133216249837752408817138069425356250261542864249354989346916483501676242279000173950326801027052985478578395578202124019897555419740296680615453148301460348117092218392445695909295449826201732328717719302551513288652369338565891174467735880471177266611077526209517538518843420536574111856557884247831271311922950716911068473704690685811465932163443739855713443132293996861486544278254684182487724061290777463993231253657687466704182815221525416872481783177558908777891832099588827336122739058296973656384086483320788029168821979571857339567837074412355186670716197095603705714952111231621543392465634233585887940959015230475295109486296302257009230016235165588237118753693436823193125056793415725971084633219499517772926720597533570633400976489205931942495068837590512965965409933017169843813012012197280697409261404813469276395621665754504198785004135297954327451113089025375169806028125933068439348653642502271920018906730613583896778192378489272767545688910379001106543201834216570777467081432884202711720899759572868321804643536319753291614677803968958057276760295888411547769432914626758702291365846710110885717816257035330647806818759337942904552500191057495220747718280602202245802233354129018683840870974051825532496296969614842124771977403626950884889038238426123883871817272194829405285985644700939173088873947272197353743950710864727124909863265766816970298903177836731438532955513963981488108646269659350563035158514923327102960987002620811234544286971202716786050620612360553956917093736249617919394286904733599548757502904031974835291880370992015893568351435005495284555452936967813173505296469167086008324502645735088357563657592386285481076299474663973090842741211675444416977523990383342394177332695598552803006440587134789881800853729967143237288154307759296929910559817769960867469349405529075681298042269221072853976159935353716548084269556875570400557271229251258426832100589452477924485808631544493674365716334486251598653151720216089120324419051245207959306280488704033629212423798656391741186178499818255636143444837910971043599299699647345535085177005041468665334885043788972040317442394781377211429484035596681484007570814642985450954062522915271325964392759602775063898933212251757527590904115575270979806087169387902566751124292364112166511730221274268004540843464336724751151161459536660898306916729811407801469296103473043283050540361128276755586539400761895592928536038445052927996537371361169041427841607877094578704587912390589573470731458511788328399523985986191354616892236238567342527571145547614733401162391158216030720773121970961879635809965893178115436644237744192047194190675596064605519217109993934148145246545770474745194326965788806228017147824261481908864370630542999884536865226562596214360887026402007672910717552150587347032526998744269583102590435607579982940271967356938533169077373658300784841215193799838270289032298720947901561362771969315382184320822328491527659961575103103158991040234014197440936055318937606713480265787800872458997550441461892389990293594166157868162804888894547928586143966193989216851620634790210893962238385745026095178788926760319894157156235669300606058930098038013833705146602004762220030346836190075257565941412041935964600202844993082936452955371441625301884450083873005805102357505097273696110139494094221591567713413807209561291485263174339239945605113349713778138912054741412747074021533061327711285162703067832794301662210931117355405036318958178724370615561681488299868535750761909644882605880762894092378570400020821059601993834381419978046492196835921101471014645274533405919171842550965756285225412151168819146800005138554332491446858970840143605973078372940662987616127565917549603186894377883002946981738649571864958345792459964605556954932295463236514335486013054198769520240978470966698783631775794621512502297941822547692265694448848236588080963919775239312434266740514726021638591862468236902156046842226813738067142682003366327606507577732859444831311303864919703896431338657861438395815264514327292591139567250155785932956238386914958503141509481289178083775420233781055323396686488489668763340751986639670756591499760881392442623119703448811790188263109875298786345439116657629250134813619054176937499613351247899587752493867594357105667211399714321129970815729383966731466578238477489275769655974457699548081056772733502164203416259515770312756318471051868053676628459832522589343342592486173825408227765849281593415007560245118488587117994182019551506139601377256392395017799630116703405237116077116331033200502587930576008020518177025101794667787280599302659965839989317965210552143373813190889349906211915810259284678021061558983379052911759533877958668426327011004158277923145717176966755578658653275402582508818960319080654647856436592447976758235772000449077112077991137942385905635221708941033035922591356893229731249315908331056867340831045204762688960199113903009104008144977811456187297450611867415544658635153688850857352386987221757723019414253641675335672839066231410674270794002152112980853078191492770586366922879849690839363869118788185187595585069997256629854463689500848256743089753191210939932823468250325459850711638960479091496381093839512136412846218204103595245563953996114076470456133573795124532773740296253484002285449420869850081613027062468355984652725001427639392849300783738798805432930576966854260072051993924769228744031748189636063080678777136534943742947809615852937769271005844374781948497658381611311421083747110050479583181652847264221744759284128838473025767725817118798683948216577972963279453049551462267284924743941020357941117515129326437031135250697560435517195000813817081569536797502239977580510181923608264157588202979495514919745406642334734966356471243723123402935678058471791530610938329822144338761968737000247949371597516473922310617631181433846611903047743926747044565887792621099940045257230773873192442381448987036696392817775894703131053462276724257395942780985091442068115592166217112100306233063675453918253421273642369355302178248490309183346608617456302372827199521064791118378470473464430912180456865304976502643736251110714804077546123546238874993006750579859933574808101999390103381878820252553152609633602383676840760736027295822219567122526074923756325963984916924412766655760996946926318029091589319230257653598414503536796685689115167551928354057263032332069891338885218440327831317097050291009349400696286354695095870842419821888052486395910017157125975583701744970343632530551586069406232167440936282726790798751222295715339567723397467326980351493918132085221903782582046901349884739935261046381551413718405316442377010663431854006382291881145191827845662988761998417541488382263345431009343642108104999847872383814732181455139177969748122539217645063195024005872780632627402327768007079401962219680677678511474389563551070151404396073544122107702986498914907989652031651347041424685139373793005723251954833313667051654608997580378033359777728307710115475553649973979719602793931735160323262097858961824648298276733643516575010845347137291614466228924051409108275675689585080524983765146431765485768270437728973385919343875220533444317451584637169825230784222660724415173038927095807650967691149750105692989734340595335639193261242094778787665160366122686074855826879976792774440700737259266873702962546696484823678897063885108161375528872035255616206573703796386603959921127881280319247483276033923012193719447616546491037614732728082162000062600624833513594874180834657015859163406061325669038947750909659701156938597108220626899618311764159918706322206880096081047728127569322308305884212612303266884332673833587946081645021452190448158462464972838199257510210555666826963946538287902821014845959893685817350025578154381783032408679728039110212772996331783559654043766421568221544714166883291326776009088043407695254747284754358456469599948963337704048976751171035867756709682149727035905953259319702145293514629774754650300275820006828372492959110294080481508251137854719111063678148091564049233095522967115705399258496214006296669404147028786067170882773072060349368789246409230593245338610026419668735624097153632994175551596426640851924819003190326353952794647614631604963141854473116238229826804006239098822646922089860806545630955686384145081227771226151958886700523183849561989323765194451708020113810942119792050603027080118001015756574512850679289087199596379099504224929777993111926751801142985228004244121914535136421543793746485471772526873344468059455295185219076868882514660834475325590678336853923978648897492650734026426097931201265684879541005119290257123854138470812668727568154051082536941591760769144176193739975083105094710757836256960976964530797095876452837137833431438569308670435348413515519668436815006061322183714360935542486184037191079928931205042829102342463457978636382299867545029046778077068625475240846337813206206927749505651080797880903363984206501577036859449676029642038059132114295441605725624788400791427365943910478379954380998644591146116141812712625771372497996626848158491353693346861633315906835485082389627713549181710567798198511507850124001536446425426722107387861079183243006399916817072123475143801858109479152318770236953824908239151726539703764122328008784833015474163343903091387341368063725109192144872369225746227188699457878404412647981053786660981027547593561901123364737029022265627564988196302098607610141173396012930620082428408199397416042633620486623842286102535387256893100348165733095974706708479167554295195662774287023324479782063823505896436244448081959811052430358439498022411887580162515854233072539197804624085096989227791327305253130742265527986004760884378980337763244965595440452647393087846180404295622982560787509890739967635627207765715594488664549439299238584090739904414635897141331462205885156736588981880070192168088690401826492263286198228379678860708121962788042638868310102871321020072743045068950683292296540257317681763929887206593359213027290766159732090646965269141324751833957377616322806518923053805407285394771057437399238018166943633903134366568511824131044429844660325137044688433435347732226932397497376243766478392044194775614672139064671822951149764963139341323588995255310511240699958205435930704228589585479266874212459706841266367993588571029982289765911728447324939859377254114738212540535196098556516169742162023009957709137158428722324256355407352320645638189590581804792214000307822944791444369578946050901353706598668323543936577654338889249249108506745660588712478698108185900649531742112993775554201086990157326833674344039999777869245208219448292494654664784001771272155120269476290887272915781449139504200467405482797232244510287693375086040530925245818279246968599075472909154512952352891990973057340794691870009937163423088299641240028831312961706651174874619894935407491360704483113048472134233352070820370832350122696472509512511966125437189969288002130825057673465299122096151747388587526748208924832630124036751935547103698075239346991314970087425289173402975241919900602223608468720585256632178969661708734400471897216869543962226640076683426388060989034685931178801613460140339211439939757352635314125907680078445981321067288200770115561995276696039420939241253125651829972679358239398233940474681476263657071595103561144315667174014879246406560600518685221468257972447353283237384775869506336479172341422684834298368983663674807168896509599544394064169795815860776597994373769127089212791625911861659702250938680138923373350339666619052180974163818037734635255902143426480384975440473820035555581085695862759863513046883333024035614546815395803094175030174437892810011671437567584453270924405994538789009668257039353199407539489385063066394773762051190331624404142186303989072758533317107892802802501136534327003703656989653051701848315923470717109219721190067120614092190006167684725897009004044524367724452921385394800563056159496866187131454983032656802225450698711839551473861483154624330527065457267045586206864355409387195008395834229231801032837880819807204707472349190867830981412300801147184150579718272322780933873636581162522405986859158440082542717130837693570023120514655511910636826660708018286796796106432163338597138161060581417322722503379153356409414259967048881325904905864138736962337260824847594900666769937292400097125952272575551626228481903976263669639205710512845608274004966102120664845634239799839736675557837224583455793665853057346518965622211413206452644399344326584444062460514855316943532685036797588567035951287855154628851445551557543295901129099365640471221684184256333916633366767772286823904184003373709581048013428343928781142756679489442333704564850041599463476489766351518861015676930340318987994447670797624858806191087999284580532496234960191198300674126683846030864470392268093284162148658285840217335755645000145076566029740677807141155620357994534205679667142718622729220548109190644510031050730969349909229736827014888589759207351264141784104442305505978785881030632525986648832691207519889042684713470529506662579606865468675406964842878966499391521068287310334491911829164496707824457412099951799073138686851337734796446777557575080153228271688216144052951788248909264195980661027903560004499016689255455377417250645313173548084890829141170644486980142905712738649359455314383826546806184954590053456240257734152245909334866665525841657748240175922477086662835630987691695871735770071515371393874711927451097889732730584426420548972853532091700587316060457499626100627644186633194317422904815547725343133706887400810558171076193902005923423516761662489278832801357236689668955815559394117256017522036983398082547115300667374466364480022597480044055575053534797165957657548341733278414786065311088169931978992339854910727897823846830867390237646149907518536677014291440675952439116239510698703134403966575429990676353315077163318420110858017181892581844507485865287472402013423654886434499450341971129366156810209872640216750901992832354858267936864491503468756753605080571835546706367665756311148347725798754769095201011665346290629211741982555562502385280415308570129085853621620529134840591563245896134713948049597036229342297654899943994152501775821333106106298616296417058086743674724854847982711197232207287650763221739377779429479422852086091687935088989080101681385710957851905314911826476442081871486141080613196087164106581636826433837010599529008715604460376471341007645864910647742698959863504916137093996359636253200103639126736046667596693966774902730713904870355923559522534249291901958602499873895166201114052887411042685786713942537123970503864415438406427141100791340038815115843886433068494255402630253220731117371330129000206386172470101468137073769873891441398344704801500678492007206941935713648531644658229899000222755442742828491440450753986070424670554437418268091087529725523197298653332452870968991373663245968002605315215634437447760084736559367510898728633131932247827482931688152968082978695130673540638800114530866179178082657945976718107049289968613948247438332330859013445042677957694192037330825522749221749923142978648953356077973475607491836573615233466438772662767631255156447430144270225054027645859595778532489265865207917551871421710110436188469540193076535113253633309009663482891458749023982758407490841220178263214332363340181502034764425048645025023313438787726850074178865978604019168037057351224815728938367202401677899186234548385626829427720459162692403901736065521721613568510259400096378195938041903986850484936780203918033845085797721376033667049500137462126657914437400182898085320789350110688045070145449801104687177453016090155712193159348976816125922968460252407341740230173389965453465650340176646290064195821363730604820133372348498917306261794388172250006540047083719377309388295639367096541431318490752233216526140087566050123917271609903607353131134034389235433508306638815797982399586278562164168041238289279313127648080103250248286349658301088301191702764832305585178336070292951275765008306616192155901048996244060708214710606631409982724535456754652233410956020006912414133177109845414656793191966823043376547424349387741369390337194429524522209815837028184540738050058893280743941646776397884593784156998705461161532838202558937399322381539044822566382910123014650803438735768448316605080158552504276242244267659922870398362830382959724008785387442312036123262733495467439462513584904361164749068238569024231731465204338054077683317134982780061306559143508600983049075391906095347147538126447090659520185548774238097950659263385211678430196440033596342356103137749137485897482767243313028266728920594498516104217768968596703079197171304811302440133708325189224530758326005611597479597011587015488013168022653740239576554019759336518460015221789870619023037849931838415044588273502460225678095154583424735165467845707010253217093444001231263039830428232912451485639230459643027502449106274521612833972320081299872841651256685848477457639344122864297290685805119935937852587496901380772652075749709975326430673647754522261537641896100891741007045018168477846988976513358284260148565462864448521626044688440436821697871618001375441569905873163374862883076108690326653101686242174827341963270109615070371468241971156991029446340306801549758272513633608160059500995194955759354127806446676135385134221606804761794748943337785279237313205027030761670216736696593002348575193287227095026467213732337983373078060038224400820589074911359208230610051464821552190099039263678784568591014303687688298642284887007761087888112530217026829093857707152417229397877894847479717196637340855356720058430335063263484803497374315707730289784732867332589840143746441780646907029276051996822638795689207031744612117079888595244188347359802687430914305554638062631561270331458403424321706717907660263800724407678667326265967721291193348008182060425969813390808277301212149018710779335431802907121909422890480082997298034912705135926526444289066144179396063178199173383089918040557903233520652416293573842141909064751529222683055818538159145378486155065967430376887534534139033554563494296187537574530252755039821998645411162056448708783187522703633661003316167507654359015369308134977712632308579784160153769203933060176115521799813021969316508918346705761629366906097645602645225711634505049148125535193663745756605429515237224952731452432979258767960559166130615514482680041210755673884955241132638842083333351379657926186886185229211519295207191154505232313531753201734469562731294821179920257950176313332475742880277996116884506342202588583027652647073500156355407817960512433388766649050597008350927156290375719880993245020023948333604834792576500312773688667243067428571556219711929405658841635536640165045702030541817631703396334086702068952857572069935052620173262206549375562709648546137727370957871354421313894542163287618273533535356330191741833075182393318328612710285289121493168762690833794849581083583612417212065674740048470046912020945094540379365679644775929782768631829332353554632982507123266566767405717748993583231881119459459604837136058554688747293115532926720445990204995955078816504728917577041503227972362575117473835897026454713478769806550255836345767950873987766434274364182151275496027323881483048309310945927884539008623119383382621345484963074368977718658639860839771170551460092619955828485384486700698575865493429317776591265873450420114942425725106085061224141273900422622288349280457718529538822803401949296151034149538252456260500544281932504628564139760585576855890217491246145326385858502888277080976055233849266710801241064396701629509583501914538229197807773129179869336348554897621710371788218807481535741554225761634729371967867966875616550159930169473792150833246206067486674179977058108941666031466369155852880053518238982725252487581188489170284607236996178924730233443340628181411179733789246255436566992089871005623209773280506329204495539782889856099472508993015106461512491803540344532772977880289065413447306619664532365153759216868613554148075092570012749457804692012608936593666809310910048209842224566494976727311217127179897616106303496329945079301072109469207363718624804729805283368548864038570182711223074274082937551203945904982805118338159238151549571276870082741803598677590517418619352304646204446714149347191601745883343608532898838254410397861971903946046932969289447887606717107052367380779812949790110796451980974313521489056476868418150862377024538553788941915588296084351297223549719820204623245759755455828963656239546520138696174894467727905420680195549117431884560716246623419712508632098908961153754699233810474493668572670298923837910462002921127853589574393765349927973019669429951344363383525227273709339255694087068839531381894336452946236332072518055889661837657400326669233813875271456631460628248219439416563979769629666250669503005327154889051927779684714758326635684307033623144071274196534989164849661773439911246475438642101092161140315427612200186883468438044594765137619334536446406185240336164900897897741699456098883434964467828316803687923544405652722990571639302466924527383281812701358728735651341611504097511353846050709938500467182121647181219215630635412153912363837142156182431014040709146745080870729836033654945844393642206489852089167356334237096337400679521409097817206053437475637766149111529809498278798442924825473427879016420188149854262453648744193278247447070251242516558339985952989840545876473681748121600004199871360899340830000904487996488014251482198538465849367577753058102161281089589409874898092153749908493152364804205104997218953990267262732640124177153362347979622413429413909412363761343812847155877818077035303165559875242728003417043623028122691779618925480922344388548479502566680361069877807784172309948154830227762186881270771077854321543449450696411450429162477247129759470371082628347143981919748329232871052976456230660837627462951896052721882640823282331818993326579046170671225794150117544247547373398175154775838485562270851639784312706332935149417976459319153274669299790649571405887434032898860921236150858876908491593339430634421758562972409788281906265572302218401650713672710225313520642958898577616063099894424560946627638437246707268096158660352380013020618605203569751931922477767161568626699137724166769602471557635856784842915443531163597468052973346556656295163421320783159529819786726337145141073675815698798016037817491872781450981139885821099856224058227693087191958988619557647259387095555994289329256453584048730180194819774852520002219530427630091308397646731562814751963121302839587008379225050600854089911186692211678843206761557363062157932781881559964641510676884240711661982595250899141868567331832646845654175643787231209674547964103408171622600139655262362477996169065675513957558938587168581250363785458128752027434485549952241408115989490759670581000529144163078094391688325817404215960150667076234457304038705957509513955382418229356932082507991436358846451134468324993302188221704544888049697070247396929668465101844133073469905701311777844515841778729426571647012476126996909141742214730890813630293720778461735448919323808238263004992652295972914654051917349080121711012074055923832896522777504573381572617367627865499474242197228011842470630364763267773677472883999905607698627004337564230556362371023790683005150145513276827258895304632461346013739314931381699195933806588464001259196701788170725565810209032689838498438608827300566744734622736292331334566336547831302664690110486897131089949405774020181220495143342382356995828550635870493136785467356414643436744991418806742226380460929995457804443563927606955800164357534678956315094491185446299974555440093256103847872316823927720756766598729400359556790937079114283022390248140261917315944155389341133409606850454021228707564238287299360431846503179933420002248500062234740143694229709597847026667477306253380298492965341187625241273441782851511607561174926744505734450086689038409624225220709429200811810776603080995189251180009259978125533735062136861815346792343404569657349360936888171614557628523691898218294767533092201700809905463032312169095939311971039565739156403363888921429233274597961372382200919722026595329498479706246805416864445389398248268281977563897257724424886028278431729338591791351186793214910121843980642376174401823885851196278530374035318560167060896445238957060742151855187498112616284994619852132333189736728394547375304829516387802324519870491262403143481995925062795021397835337091618294701767207563346375271578663193721818672468411287310411301714126201729378672714895282543908341055033462354544707568898501103300892950123302515575732055858912026162508173461062212974430456538503235050968914289200209609016707233518448052017323507069363476864690444757170039503013356318369159848143093572252287376642165145430136700662582326386599743770836549917333731535613579930554857240255436475452966565127961760168157361472965483430985388752493937747732135432254037941763151804434578200865262151710053477866171347852477840410804862201327269174578378418075309250211209145543811965885675883750957600378468620227806468864174724295782518377082521988020194421308078578086571808759170067406760113286179237465511497720064913605232971127923029302090260929737473550716682192642984755133167031826512955712148106814739726549495976354172586767896510195145344922146797304866624504944743801123632938782800650440572822682928841972549881743645741267100352996284071749949663309218118490110134561606963004115582799547236321430294786662640746165792225726672749401572774611716208035463376159017010565338345878971882660159709514249183836982670993480214891700841495892201035538278928573715268198300264290083180817836026080042148431055840900378711629662157906202212337444140525515803470916308650258209832631043679640670937972820273098906186973383452550897871506804027224502981287942334724389118067274347754700181070055463757346064822469930950283457082086276769726225468768983383697865948241859085043878308878957099941845662915581796115004838720320624489833645240438949907309085551619603067610090011206359024815160818285072761067125956432059328591764639397327376951947233431935936223235222733751981291555921546434008531641953484566270346612088651373110289097214669408264896347550539870171325567957790526303142100185789445007222368474005082489089042475529705378734129910412904316558263700719394053839297431489707851754924610826241761895330491618677826236173075910310357862888991631364232608000399363305559456265393944700707034793539441010584279067289394132706388344447148769400725864154834787736582094702015233697634166412074854534949718316758831593935651231990217782209440995851165359519514318572282143683927350484294810550240721979864217657681552559610096432838859243423891763592856075470197258485455363111302615698037469781205735712534871147056909962065255784294568736739212551641070888683382685709713664140531998901840386361345415734297793392940879921882432908050150434313294615206033758607364171918812301865868364621804735626813503585623927715389825068026979965804265183708771110595824763725280163051263472545262549044848390430088159914744817243309728838454431033383939253135328449996143280028988024336966254118854115663951461872629806451174153279834887092442920754744726221308581889011265281525358362749025641820676894677557623172781433677538949868858302642330309945457882856400527488676331084294276117088808538991782611361956632766519563127256016786108133061525708893510411508370179787512351615430792329287313109814119857253422318033580339048056506193602643970594020663791260592635944668582354010230946165995062847618991228134019606694835920615718608216392801013076559261653306005722113052057608816129517952640719311094316385053703921216830882080905908766238351804456095742690076106831002739816294963811914377767207375223076288516916086881489377270042093107026105658908806241418951230993769496220311191452665584399530035408952808317235626203203823444705228633014843962405043200913891294849803711419688662452810377125157699346508208254808180584391337192343916966767808356713959574357678495955779667658713413206941091562289119986036991497444202474046765784830683984995753443272566699498761964747994920221277154670197029987953258195602801553612314278948023766768956687716815398752822792906080923042030403952458652888293264775737413900737738169912497197557065990903271538557748280681053036589605278186854992710064096578633891647935946032378995363139062640261451131637918600829535118070951586194822718798286636358267394702247175639587961758465080649932436514090884368518455937548872727178213078034956557059582340494038176698926679065370245177050098480181699654749779658091852939713459952467545016205006494316646384347225705395908812212058888598959930991584560897017489332859057079017139532765027784006983285805993130176399125056481703857775524770325737926222011460804160562985416248409693882542954525872565597162029259950575065860521219425449042923563236639084335277189373213563927395211092956750508190190546841850847679649598644392904674647216849878848454184036166992012149117390140251768872364805704273756328110944766929210071438027651013071121865762074560058374193827829085405076431829201812869455374678443507412623100339847900611844793756125707280436869804220775096185820329986588359646336200483361424601759001739704299226918504805007842590726607335336301701745759649631448601875613244448981144280334159069772842745674356735752449972749030207785182027376454169583947264211291770769290526620803094138597631185299341444624334512735849061575006658336344383166680409719564546846131286247331049686189480852897603211561827719185127544629914170050667795960472951155101542551297594643506275893674115126301207305798003020711481998879123766478461361740239943744838251492176976456366506724351854531112785483578417000105050284721645872344691678251124878058010846832683687764231101863372120475340613029781928880138346338157971068769284343110796389707483489707218313791492991820558859518606884155479790156567845303514344540471109278624321743999326446931001199605791467986433875921680334746089224711196746846892597091053547711605238256292941636732553183027965194358189738416132547018583718977484832682932874500674955117378350904602015934576494298069396004029396698286255437814804191323049770134374482611714404093732201380660796259473662596337017621025064001279519325893833798723641878854439239007152816060156235324314226053079419357281741016375834351035998471462098803980786355851590687154953794648289016745280621544283943991066932589488348082963365678601250647897528672363502528756960678736788910346724339962961285830361414697251494262425196501136564844427376293853971207167974106873836811166654122063740768521156968214344689388781262541826835536621345288604596827860660521487377249421025068562748180123343817072359422712763146527532458354410571459109102143827634977327490699411900471325521947027320142371163239155626211755449042522858592570444965863865961191300927213292699768868135588435137768830332402294632569549339540167618652037793877969709400570430018695783179546069509782682315357282982423855413297804046293856685030304529844248919716320106983664692918718832571506954521899989523006599777769475066941969781997228558439106542531591022859071128356832206553707924273537325357429187987713328345997894108691775127762776582475411808028310691230653539898685249383212793848799646792478530444005120289794014278879313424857401896413940035257766512879324683334724629749924813138197724612006446151196022639020587493327954837724807825537517301956299688138598900663825331495483497495609629449277467409404132147318611703028532995999652009712386276694268431699502135313688055913665874434933226454301379415061415660235176276173676223452697025056809797990074174396093909181508910444626954391099975196313355712418139281812603036875013544596482563731674832312992879920477837472077672696534856729273897737646725986790981314977548585543366170134730306924079011847191846553787552643006369398314773308340705051232023454161301475442245523482120981223161688433181755442000917478521521647806483711237938685204916078222312518570242410759077580741787873637621321145180412207193399485624731438920993649181207096499389983407596763515179452152555211557484116005292979777106783029014116214658798821225613407999563785938173434602128355106614327319961608316012717378668743277216992700025970194886818383576636437294905395110193098159421150019404044268375661881421697274971427111624757873270427151685465849196803980403130229562095907699062720298311582287734050207031482107429542260458884066032269133097160279759378268704529199752870918227689423815792818331600378405256733470511211716249299264950471610687597738947703085739530235511372805733586128366185631278396884834977776112607992627239472979278972656948175291696167211119176849395125153366552329670090142763686592588373516057787613230842736946176936031555221670385188972100458406804347547278111380999426407340597999230741737910757861407795033995972481660196330753161553329699933471158075379667437636371816474111750367425333843150980493539773441975553570786306830052635380777729845750784885131814226093457431840161293164691761884525465358864391488648688084494145782327113623065574077602139543084710456200743433874214172079439023424473065611385865467733159159789138327127876017047559584573300172599350707819767327841678908531169610995041440079321289338998183159833002155715178815484374769174600927170585408010174308152462866358285374687948030977062553870168084774750569684560317572604780761909802768555848639385676224290164055005466703701246840616572976862429869662957425525824667088543236145865920136286437606958819684462020953381553406148259946056553687391796398484460203997442831727129839549020605800020476071595346923905992896334424217230008472471370037856814831358359616592180947405882293283993055265795826904768367175861908554516026977270143326995187567785686242977634653292952525449716859972514136624949392632365957413330176153688566697483579608359214213872577626635834795761710391581453658078701190472231351090653431029567390410643403577231256906664660604582333728278056851956736967399168564553295266068310602887263004322441741952582020130388433516733524118174006435351332037749592258004998064235643966822335753828361242171921055996106023276750824749581988525501746280532929189485084247683725359416395477185666550094023671605141481487413562853376640808936368861904968729045480413374339333656022385068266524223537451325118072393473465806653344339022928361432572517350868598518269491956050906371937684836388150773014116988211037203357713878328460029559181066312637314153928354638669935950322930449689902755053476583909976272621441390456084249718785320843729453162348100576314160393978325005813322186901040398075396306233817080308039563074943632974099194621981656122533062476791834693210697357479405495930533129605355259533353664512174523111655400935676638259403110041274566780468283018782647720390777786386024848953771354454085274514581259242657982718568139282520203306092793658666981170118391222605652168309973098534239288556671594814364527295351207195748034294209777253621983358780460700783310703050362366440535726050208140704711479448575064673030417194602883862317098326261927097178066577052591495734952464898225905949602615715867107500298937839606748587961185410047608936703277619913631704847539820464950818948497598000311615812052188483180202567273138627091259346016483293160357972762432110947410054812984868408678599643816774497931577196628714690571684619633415182207331824084507198771236800724717560299846927573703295477600013944899843512708820344279265780233464345001616540783207402048138498244726125610621536105744444828754604798314116140973554737490140503373698570194486760775817794605680635545762589094301247924784561452750756366647099204294428631892507345231545124597327966002792171929265739679800475518501906365651104462112229562830692827201181999206197320459979835711459120435049307397422378645998229251726193426420706489747298117774998524489109028322682516656630883286574655902510365560162385112647683843084971779427227989716353184132449274111031220795140748522295858335579093818498403034071128670812618427175824826761297965088506643377324470543384498337614751024976588005434614076921453342713118562995585257711226595174531907576446043462380568559727931141887023948024428553013105065063845675580456079783110317866110131348312537223576882435623555333291557934114835691171738530055671846368997160297983982040624989367688012848130035474624561040201151704083856901701215636667912705463809302984776759500885510356607810697083605383179627572533414615565266340714367982487186928184544550658563431139541157838171251355737247236423198856308594745573670574003699061485322543398227216081407810868427904590209992701036008980329822987074421205257770078439603401446029806949270437475976154723024869900795050010627131720494596556875508535667522927576554420811814677498103446021702671206974424404451245815581104339103255915429092272122573723091868616296486225587055554402888684452937135294062811467301468933904043963482671150417690983491425267265550986850600084990985700181217897640531160052024107855144622690586292677925509258671860054283897843649928060343479363692943325382393296991804266088017627260313440781560028433986359377933716381089272222565087136320197969249452979074525614000854104292701944077952668014269446703791485778857497779965930336869991072298592338899285820358753111123975308755878624091291530340135137175070127814573716364589306181738658477616180611046031493038141177107401607429842564219724260897550022215339390760203605566676780096851849140436839055908332516898450279694896642984470221999269623658793731878543996016934129619263093491048789496428726516016052012984168385051027236268585402090184357316109763890067539290628818623618239153082363250151877134688987086238504262625278921992726746228621492984756586280791671050640718662858803225368303089618535816582759031589288512222784292612540422292568178383097164192260115439671771556372241949859403827197733709550308893841458956900500633227649062754213591075332897146306246148350634261822215180212501022023204850690042400329662270964739741895935399146120924335787652513340635374918903423899211555067191220498442361393331313823635610728401296075982650798995658978743044606305837938790646184738352321848261923523358813845263007148994391592561912259736169238008312797988070243153565539223158645285653536368655930277513352547535432369799250429368092865167841733616296946131725133260117714017213065198851130828794181326490405440294748541944161894561720023163254190333014841918304497579297985284996559042259030425271947830966920604220961241818067074584273387051379153232608631887852254899016096939917844099340862295716198006691725677239772197005482111843317338786014694148813652675433315466741553944128571312349757320541386405802537432713134082362187236548546317434301998897329922613938278643119258208511181229501189447345460780907235389308920203493657245183431481076867508886336760142200062565971744608520778542129564193185375701353000851780540893161789983502755943263685823905222214615235858253057089318642009862111060619697606868701516571733075670080934086417615348276203473928523979695172988216792359070834637584535526056375382514084489286981874726546822079972726877858478825742930566823102913481813116732055268703579878817112212868490365311751268731432545172773769550502306531125430504506090034473432798771476274966270876577328703153359313863660478332419419435050607176445371387564311241085313914822128268493920062668544672982827729269346349282028887705742083239164354874142916573093904266337676062282272036997603148606255887165663830935710033144792173532436531791283188907569597647225991162242851517339668336033033151422388114165979552920436954440036408102080813959170343375972306718468370593730585484694400202413650150115219513099920752816382954502765717132741238055845977198280647401028640378875744358509713313758659947650217096784060851723652909885003860912303357791707765141195934010004273384105809072552970367567779834772202870987517873183009485965982423233517068992723918789365840740432788645045870320182223509255718750964934342897061098991139399913314883842551435273082202881576564193369966567540363239902253445077951839410711769597771260745415510027670983780414256634703262731486721874306903542862953790795452522522930635668381713670311384162612794991508136948992378144625021248165662526765131336949331676977939039811209476652744972980353857534570707853260786355743853582583192602769187646647499047245606886313686641662987990055501809936776627088434182357660860372417420623450073755530737540169077921250980212742517762102161780325057285801236687659044871080499189613256319977290976839680997945333255826542281181625662367859634095382269224103818366476274533806250562995714289037815556342792282362538064656263316749469704706552567139669976483112828265814349393897132692203184874584135682713407750723108790818535138756748602190447589122301262043272882103959567967108362047088546394380175507510392128689316102064760850112470565794917911991557689325687089891442797079104247971615410250974805243831316445708164655493281834297496345565291904653937289345605718401611067796012089253903616347872572298556062118246611970669580842266191017029907457342709966786366964531865374171784320099839495361840966797847929608113288170989925467710227606300575811354706706616991078891914301292302189785111250549173405296123464380448015211879324037683005960262867469898780477147721158668032469195631064545467590561611739742563431358976797675108370726554305519890496295998869741462600142709715714167867167778258556702513442748805941316626289455151969793950619518235001490379951904246801745701347029243626006018989489593812667920780983609598400565715149822219965038607736895640165357559248072359875435226448156289815098508930539297869480453361215211451854366666538231576170652494998423673003805216921551785446248895316730305802095304285436912204455727866464032023703152284791012424260365625269306297150009465005101187650275197791236052414700363559635361287656247662809193140637732584110857314966131681372233797641318611082198923516305613887356291741049405884824712000225559462061948672741784059658600922519261043638597677472233869176789701652433446749912034476723718869563374242908778558010198785215780475896103360334048751331846734349912941285846831104638155296322798345271742830099039653075197651651701001362730427459374949128165409302123946595243258569894593683462706932052998664184635434678582277388618846709679126804794983007341122907347497699447284455227300740776821489343354275787503101256302062118608088570717740591605210604858159598573294791662760285659396308207098893838253515760073020392852870829429964029414554691925470610150508843961698406274957844369476256481455691610253389923384250388766079191437401671730541044069872537592176817222768968237907190484081901791079856756834586589987484507841175575629419859993660471694739454638655985211932462989638764892882556556078662824279698749433027545626843597763031984551572599471068341043202445029923013884462530102393219555427758479957721144534519717301717207680847408206683591720480716506263471105034081427977696457422467358433789671904109306577090199957002383126182176017946481488273993912663576305950958770772786576691520122967507247216498597810597923110097436205499770566644331196610051142297581095490609465005825319165873752739871768737908444685552835192760377897122855334091365985582412177992059379269698726421143590508559045007804354468697009378485727046142202061506588263939759843781414804086775194851992922482417354485659084240354136596561958872987000495194936899071467604467196578943328806772001708565177227329306216785031661728655232748105347876190921476521160297915554240702408912179564843266575525359853149559285490528699224524225852621931540364596043172848315045061685167900309300577084129811982114660510907989155000467446377450296291126704033104868693106089711237443312806340480347432603812755942413353905972089745436126191829173796533098619345647294786218300252304591417707269216837538675454414415074815567626963209600608766010092203070887476197913483501873795179985921022000974014969100663201932332557819840135939499384487392330800827324086738905707564239117080269211226812080824299201469102121746957164674587266858591298372889189333372580865756252033471479247737998166899206427537840565337666071652614293302239020360923667915330471032713412857991460725015397409568139731761439649039195038293932958705127025087738757814670824475024736840410827230843087342956907635199885609958820799227496324432980057422021480201535361566943127321644479162491700866520368014330100985702523952677412414605070376749887698150556572343648134750101003553182342661225463983091935473860653308022466868855070681466681781738266662054026806090167705877766121658555034465849801433059620554934133043057513425325240034416006972119345396467671565285079187458291621944021070526297674291344719789064085224408933276103796587073848645049962307123461440175459905241354652979561444748025269539285409286099303592514944124029194321985786210354798868560879334553325561911821421893086016996985707836939037305250760426332467973303214641567406860640922569570168136245969780173515904798864176210643734441521759858782314181457934743417619480240136373724075156454360068346224746176981434368877766250299616214884288171057000866105886132397516687766412016955700280259567182476635552245524361352878535699401398699687002699662144547884699995611170979722620722077759600151195372535010280513683881091637277930220433309590312194207202477698928440230152682854812054008594387137784651395722847511996733251380479350829377412791780093238943631110583372802386828685297658260562313915673283119188299755979396841831681154435317984513120147078133847184037388199348898491896058826701949427643896217435690418240089430072639094403735378956700415893564960135231807297566567559356636070879731399685016076449402118466047502892758640400048240368013426061969830232983931049147482522564318333115198175004793384664572635094263887636945314129282303414954561356292211904594383442946384779560846947843771537308415502735513701250004258535101904883213218486217302335427738021275729539055806069308673182058150454208129772722724741920643541396175938478741933794644993190180661350729785626379468775998689051900095264208581939916032434780097296463902515912992579240672997937197988092182974495434921016356078937262846068079266272591694085101587940143097564967639364829454316307310610704869418664872756070380198410200310650577798502578671615062243076158991456982438108264397764737551347031302651925491056197051409563948695358425168839508924022475190237123993273987459443800520584982930510188932340309299379624477612311164118187209378039893033297433208846958590019930980887900739456612869507072376003730246822302734701605359873318966334724103031106813179292779772892594416305470768826827995880613894486297438185151285789306789972508759839889628236244826467918428209535426418081188813602393353364855447376724577883269073309229576376960919061312079802062462434479005486160390877342027179635024647312600177445504225467913138375245551579953125735888579881146707976162718021315938764294139657162523704694770300687831493522056736072741055915768669868830622633373545294791563267933208649871794667897054908484386062588640755740359907418130637750191581363694932217621399729309657119796491207420489637121904919364206951233813088046203356620462816363682981660795904505277414472284133315044435868149204470953982229625665781023370880738273443060224803916628710661383043011491496471765300238301962614107323075562943967172850243032262052228723750547930277985907816195096956957234231512436304300407176237723596824794947742438884684636243705547944295372720012410254689179984692860637672443624925680798120694974702516347048300878141110520725769837836823107477589824552611653150018187638261119340799745088380524262088438798660338703551434634056120426200573909536757513889678081744583353465162450303219800046715677341770040206291462070634523660902339920823730784117844632960630617310552783426915566348487005103236433459346174434268568903379394423483162295061114855362477922855239188843642275549488779257835266880816521955157510916761288384363324429762442244122007034266463507721153568359999510155213441465315809454676035070263205902549095905542897019089874760245305443089337867774371078546389354282166043321837812840803749334293856797088168459601772922009396390073417795120161105828940901816421058950395801947675423835920490615410647000807627066863832257395266516546431954598606049341182680470014932299464927133830448521996351706004144423310721104149589271186511150941018908481427006801705496214332558089962472406950105705803551101137063471606727799054477631329479689564186452112491736538162039680268869452065746530233031372474576730343851899055979235602800324686005735430097071525395579810840045673898730580981511150649785669486787717242212636995625217304765329005462716293192482764603294716238904963595018352907743026758696398409786077368107695282614982337547795410928500184837800485292922659207327108717300121897417194666123327374232592511662556973156255869789004361137209704500704531093349800445706504232034796258520733233489225284776698721756552642786112177092345611600557641444225860616113849950650326992065356058294171294022826809921717685623619404400143734913726498526687008436799819851483599972420343089756091227361093578143825614501626786750452264843231322940229782121617285129699291448888439559728115332421980521438381149146747847589989860341016371241236405937806088062322332749732040516289224808600207120945946786326894555455076007385796922012142249738330211522721019318029688934729716662444815964860603491576167595203492155744782811941641885336095856699836384911105493056103020861848143256351349986173738247527265147416619393247853604047406725569668643878982794803434280668488287019711092037977222163545963414376083993348340914214509959267946822782942018874583926126540512424401426179541156171654553040014539680559267521980386667636751552142613033238145943281311518344858613909105140378760355391012394837791997659101111152366733332531536584220465142478949623543758172479640793940285680921000136216204705942274135296903243856468864491354101451968178501586627550959878750176831186418044082379646570267853601424865314491421976484023038953369512782111860091093786535466803713605064321895712735764049817833084010356653448396566409337547566164998708530599495892856174992864820391797264737132389608153589171849391311553358498014823729397604231321783152842570687325499501236340786846036039128226502922937633122080214984928821323169015410587727675733689187126167114880090934828607387443327279242667797333549865790938699286399555075386466890771291355401844615299765694614352325507775410283081291900151807539834120088002876484409300565400333686558600141967189463079555709993908779953895803269593874077563044600196003700808580325992163822375659617117309197809964108663909800833058897371019532362791042626314067832011755473870814215461976054294580450872907158023546933286675856177651492943967531293935795004977685687612603577227635914676694431613959575802055794021973621251387763473932607884743666250216301100235474988458296711602792117211326462763037008852309308419580829554977111139526648575176197346664041661097011966698109466776648171174087049024295017368805868835788984366343272012092243607336167661303894880838182629248810053160904056663526739707767210042959991226268327850039317163085756205109441917171483834005114487526306131942166014090538465388264918293084025984644411194693627592497570944861326998611174665749787422448562332437165613803827959064846788796577161210837253610257595048940527456764096595982247795165377736521951964385054704641739812822322827181534580028397973748773130022655450205514938076500944298599027842704969244781557403310040514686345317747765280774326268148106814577129945372644912852503040723712019251764558589172832643117037629695527383182511209673615794970000217865769046889385163266650529196209065077287870170766609882173033464137133884603118905040569464188071790249877136741153226726720624629611840686752200621722851956623245356766112669268046320036460720241970105372107582893500153506185142109029655090239566411512326532334482686808735396887969337842670299825384561442982522634477841906147547529101952555952655898343271031619369454640828221879087081390088394270811004074411195753781401250977870523425411756608906842897495948144388027925012678161407944735625671574578825752818570314259005030831444825549511657628516817624347749484277904580013384781255292353842038299017422592993269176564946130946921292430022163872244494444938703552688268900933516319713429749312911140262139770509121077357318895819792070790471418466128969230764882178264110991442388587661514936470909192071604347958497411174631613862863466935737698354677697617203004369795477997675961731562679380530935436927294210251855327947239280573309369189901090172276396090559302838786085925640841707117630849780439622266320556959154631053874079617962534937311365770110134430611401340459365957923148085917714054702237603004700751638702625800910391125929187654776867032379302867778106139998873105293188539885793052052508245333492826210972115716039135326968455708527952985601457994548390504222334505273118818456382158243739529569251882651755421220201547541113982340242724600775535966963986146874151252859005005628607718186824703176299783744530945679785710566385660428933357692790248566821528408979682898341904676994179031263049134688551098638072666972663006380804616274959169617575794655826313571067653174502700209786372962754694596940687255314311659542715136603876819778340522611492929365082643087398755680423333999814604697243556942908251638347210387341712755539068273134915590305696393939999971766955080860739622758967484392128427735725708442020011035458073802043084901708305833776060453063595979990166131657815772793508052223944957759332661692797787272071999978754506036614652319619112557615605658120036599762375307711860297348924747875212173393390394488751346141671297825732323488136765749080776292771467738837098281284714602711456951632009500580425145715325630269267912433057609943302671993754560801226453244322598075491189616104834376199634765619118093732530684857849093295851285658440490204010762000637319124005220408706338318310503649115862010727444067355484937154390410972218099640374188563039355342712313471903288255975372806798312057972209263528339167053413046438705488564391945818289954168415649112524011131120167340194274949761070774467372791322501259032584119152662377944368380920618378490638594027564451004652063494413122081912236045661205901084484113049480111193905709133876965279429248995301806107620135102705846368385669764794246645189858327534022804330878622570809948697166871477717142352878994639613204064518721534059654778502706314250072085778981824685201317226314502360070292834308341391865324125997071876856499939884549475926091754838086742781509139995084694593980979059853575638669718606831631142906327617710553232050999590815461442809055112807240345245877056822452460118387636282760684000052893868489799157181955605137960962533169307241746352324004043914071139482261120688817965869482040368222597436429652746025363370080967524136170815364123823251979957007683116779868438914500403706595459323053904008440969483290727146985263042780727962256357009964220071389979418410264552231988826939196611127364844509951897638367171699397564473205398826601064409725737543706380458454233122732545675520273736221358788846149796314157242961876080021839908087426385477160324732511338103829376562576664868141762513743512914624252175679586850058022736128983423993359905462555126357975105309427790862192705970443253532776922783284095897101254816578301056932925365964296051188698846179176143940233803992355880608529500109472412706854738203301839127210202169533844281609029390570679994638479773763376452808293631314877689956595566359807220969598601467031169985203561088277010140084225323348954027000613470626817404771572513123847896248607532338159771832423700466156176571241522820404045866901533063763336374411240425237696587593573850581463739431604206585226388315095922319303250235538718232709048009219177299742048080330515649955827895773829121992376280384827541537039893626925959270966160497200962495758287100104162019102961056832619462643290725462700972672305100287710581272756089522379509168814416433593262936660060277462202382537709526497250327629050941770563640175909242219007777058509781531745300029530556522310173981398283623033701581069236095065048439430774754740354331459418294853998170756235775820270523849288873179783440782670695199241955623446689925945326170136429402103944542454771743750469735299301842285015296495526813292148232180442067459898108941751823857898091258745364884196478598874641792411396002417239357460886832546708285025247924122465399601384606784844267724147923310806247547055286183109629086955574746463388136697257603226662552910997139969423855557000899151729691740074842857564153593160238037556788628322813626156513792324734344533197800786681045241952679970317563618666630547004643906663101937259794254390577899723299491035542846683205979043174812590169646432462062139115367641499808888058000559515969469789913067401812851615468554264997518304651909829180901497413281144779629311090389309815200091546955626677238140536897808151290510725746295093560048886311397821253713561596651664973707432412837744570785378778393093080731674422993523943342022746172880649816442182760974746921753153606661468634238324594077482284900244625895864649598609713121617537652384583569977481264982213454669593683237744593979457255319386604828414090245691415659737558300815652619122057263661384570772799723628040545672235968531972001676532312746172212900183949154467461559534121032044413293483872882791753769382920912230297233919678083121249959653911914905656581837673446413229747881682404998773870990000281999011610994863966489718554921081510330194777895447904588591330481710480413789647286167322318010909439707947624829930720283861325798198238274322958052070738656232070028292834564202156469133017969811653772214927974005254825313092934396109313716382611439173160866575507932201264134062565970616413134539554967136393622121664266243090386034535454403942024862792355606259734255302394827792875668325220751718706008893978437323913620061985940597309692301184581137436325606747551792198250040676139557576659802230593071161862377629433203600817131384820982209839920517994214401946461886118496825224219127050634582853654473840628024474360070132576790496763889104280124720843437847390755266531637940145024570303973006325023843373713730546829795642093287309113106736155026060329516708216340448547579783576849616864167799074593677345335955881967818759899938191057564592576515649917191700126395025700402123693345631794571931183403468270406651508142672631961404917807215926741127388448443108311668014243868218013250959722420580365905020775610414383769207505903088412046121453528101710134638773582859405355620794318927064925393115321178603088082248678491453046893286841475111494375560896688707502471351395734238156927806255082197175548613444274773281412252763491442284118248825472638614807186304277811454959705435309255411488180114540544926049491663239559363548763189300683445985805623953326424375803427290404505923352655956052316168982297155165519300090361751770248410711882283703242643443279861027685896698673869289079771159400463140645535007584514964667033531240623908383721254636878322584289806581716069199510566046152708960457482735469568097952980924504111199661239591385121164508196749945551708571881034800803565716505192446074939120191168855213832514390858097707581310488399342705339284117973425215935584823994415457758973516434947775254560901716423160703892456845050309965044927753136402221829699825903625091080411945343738494456480851265499199148567137525151632458783616988162424115031664932704492251210021387313503473528845848856154452133756656778046972858046601625872767047664647551423958250276807668877516617758891967905977214055805213491314662804242606267865060784923911296508238199233022556885727322269296108590467684939252081323898736458373423156949025591509989873439615757057071559338122023625630379934735674370957845066941589120195189288921424234915617574104043469960628617228450509875733370323457074984211536889917073299283873461950401145475298494920075667172827176612525583114231058505809478342162550584600853567294653459306916015911216736890195789099017438483024282119566447353682397321073900390208688736713991687356241886375818721157535505384035068054272710759236299209187999715923541700058013924153653409523446620221685192752915703818755390164918514898663761411293758314773152470497051393651828424842443204612599434841773168171015389490581187117150786691518289429665824477785669601020831568677826325059274206116576877056907064543267742079384209697852554391665075702639463425424285120760560232151671058837605738887995268544408354735458815391445906961112517282546075132636637811600127894856897521145864999451062100416734340486120098467293184805139306863015987980551816226471923451252436586533958942070027363638940785626755453052999709252948453243389747280121577124662782225878101238225655731312912006951880795839438093605559309126409873695092847283089309378033232316960747967699053158380408663921290262962780210528390827016477031021259558251409160916657077913684481144976159344070626161261312645562033014624878216506422337720721139779321834753340319707602823745848256420946345813611429282436506454088276756577615770226093649381729006085024970862128218863270660862206720014971529885180469156488511583550489001505039646951911039032113241355562051232059045535504910093590285523543371406598366067572695822142399160789871002905527196360256357410307123250748545205974511720426033710415345924920098091006174478279407884630172998196360544571459939280322073007956367372234759954672985440194994448527706342361665133841564247570625939562615688705781613497686619443988935423459508586712414552745444178878852757936233737341762646156686450555235456670187214075711540373374332777493548453220999355137528761702738531231870867375284442046974182193582321772359465852428844884101089420058349057155202651228511003983047517148913814507958569031156454060080834022861240359680071425864818245673774966519617921544849058693131086611597575460466985601160609901148379700095107079089705829150599503828469170819438160553096351855942274825586790526199912739213071972251629421843688496968908935018665295324050535805774041987189657467546698294507796315961101331691646166562548303425583503334205352978595214939181809921291765736918830921253510378198655120619279005942865547266017162624738703400607840302707538894224562157847845330833086737097805145856061079559810565667247253860860863045673826933409513053251082378902784878742849455696719392442307916795649698217759464889461322102531904357939690231817238432133427672742579181473308974066436558942120977656482803229900654192512512000191292443833663405579047438539459032190225631455422044316218416709167777713173614002620014017642449600811638688595990594508404785343648564386170356085531006903439795226410596101527461920597836607887342744128350541823677351856601349633446044363548885761974113996630129853333210230283351559830177223887952011351605621140123124510621592561092400124010718235792733330806312460342410166307667978963413925356394479963343446230781364953618541836771399232675222202215670024491862530392083842058200318970862084916478959350745026044660655113910370632147089283013424469827018819931595253231875449447511042135170971098065256020917644495745982710865649299894811599466157628651765941162469829009251924566582060024170823627257288825141038290023633275530339904242593129908646550542266607883958335977519437825340895021110666811356062017747481124879267498628242042893318207521527229440313229322595326064657088413197032163947597483273665242314548499542935033654735565485957079150435885710483528365426848575039345758985405819533822158218711911381221301218925968190706486664418755728916607798282470450450092019639208218050561803111777047678632369053226701957630815107756863094959770782439732535703760581844482811503705076980596043819126044198902050265128290969043597700031718851029978023501600896819645579234386966057409538096241523529913889022170203617431807415397465953028679884154615895298702425250273517271295795533356886171415840533879017212484744672043804898323632748973297237602416341606001020956709977023671607161545738265574263099266554354454880287721446690966408023564990368759623472133828559556378248379050896905161410361034657447875687277529599954575942930582514805380485027289524473126947790613382936927994400421349239360129613189735341861705455208745759713889423920162500199554711603358952263457500215191546403626263147669474726061256329433446812677593701163178262442364820631070669676358770814561148626229256420977884871165098692607130502425142912281857223341498810505959256281009322128998347056989402671481309146109284424933732628073787891712762108365523705691800575132199387187322493143570589511224193674393531191419826500047940905410657714226743396755632878382610711629287897313540869620756170656146635818513814342057267618496488751796369564562528226086239311162144478394879198565837974549351531570200341384136882162781360960861857745746226310757087659968195709959755884375951621860620626835688449384816367142628789899206545457321160157969588697693887187343484930114481723545509733101029418190776248522855949143079675832019077999398657861417875101770322346714586898691581343323786351653376005757138811072771294392138005559938298171416375369870763371395874502199580120802932711563924566168997686069910898799774577312924290315863618667332757511224379855160081073971134694940553645995937316509369414101427281721752039977502729152034052366614155087646949945675203789144294794955720017737927619851985493512820407956358559496046388087801622645315151125887774424813670564951619892655250737804789319327108926326428377178787659726466720350659675603767935907971160075791083578186755054027204086523077489605234950996746627543402102254049480610604982401208272962428352412439812497318402547654083193066054207010229960035422778200490584688281941379310355871383929167106709969376331312718222400675005133572194902522145288382562097007393614459946631130446617337657741844953778446763985344523388382589822021436035086155449123398577760339662748756102226085348172031563965137529525175481903175900495086969027980835270734447295877671442275443732993601683173392536446100259756408869966823591086104035104524131512025391387258778476043621213756060036723617830976459881773538332864983279095046352683904675492305005307296238130792976315148811569634383338333872793820778120891079747693604141657445559129157669961133141836090871403050826446187415987346053676404767327260768202824841292143482308009197821409021545447053025103633346892319479400297452465250977806934271615572103685678234342141022970702648208936396256482165089594387246456965417270006993851655011133312231545789865604823549656125689249870556812316549448471939847584191008436239998377022000997807756524405227191640066023625676288842887086714713010356205921473177487727704806619412487529849154248114030491901261735965873071815633983947561101285094429272527219045236693421344843500124971143808101788833172041383749684461829563566950186503064680151810937561984938880543370988431172878627799853597421439979365181965015697828097695606745266676391558935211193158515168070615051626810381401463623762833256660827685500167115350861481781610518413764064642295055900159565549135550979056875108561645413368116202730891916767994833575820912693557708919483321311365193744048089864666926835080956271416691718242468486343984183009312400492055572264147107226655001835111644647972190640357221068463915812000694509172217268502133380760763173398528442220681602855312136846691913389324125679829594531982877149421760636972333500388425551976551601613250755969084397336488463282871366779518167499300345995947834326651348936910410473194236575081574596660265532097005689171120724064047834179062590334060262263188244061294341992800291301471305085808371003710304099132515367647061095055515480007467971223699380731185695307476296435110221722751106826599224775215027680191045959356062280808386858085688259145077278619866461464428725500227729337359954094242634214591118104470256571717588306352285616284199393533394518945366126470480739730347616936750807759907591926687545949469576010461749109640455930533681300068473974718095260509675198494278748921809304369000682793826260313898664587853093113294893637731422590095318751408035807667113847150427540406946327343861231437948265562469079817735936470717811908075792947946722200654910657707989839887364419645153290702994571329806168598127538289206302658228695363902284423650256952514047381714779979625963821754594459648091099160202865103452279154073007757774275714707523731542565843642262488811596537490655213848894895328918687208312216138622377239708450349363347030720750454494110203967290819734284699227871996807139888966336726071845924624088079262598480656671927256324620672044542640291478502470792097397769936731956336252610486259689743035075762514250626221920658122451912249280884943755492404546030899461276018945259284341069080641997601947779902815803916603371977342448245632358714370518583694977447169346557652921084108608218545869287060445469942919435994562967642118601779992706361370424604774804961786761839818670008694823007132309996455363439773260340130906820383662632834129418056606650524114448632328472577088034701548129829177092114860985755653693778485106446652232101688486133077658173954527134251029462876302454082592286263260738234700623921247394573221061128040775810557456063453614663769828086630999159438259821264555090033445086360328216279536890197521318240934936518134024209403989363124416539666878867743860309252796928460611641391688740866020480180128262583165492543078659407021079190749562461641510464088897570485582213762877735163686224589306050807121824184252936939009319335439713477587480373180391618931651810796580425963856796257389894472093245926136793642939334252027747493683005097497217477337576529626915734244235211429731817051178110531403004492816812459336579035759900460458794586449508638755888337230940823425574815371667205979038388755856546053141328787605024012492952974129025158656826084879962944299807482595718715103228246537717600719117631273348649721146989385034537475844046983140699880485235767439211760191967091479622631935624959967253733890972524432333158501099245706230570463955834852911689578659233648293641550279155665240551952297923689734424078455072837731248911357704223015352775720289856052118966348907819966090626557244690539944823127993837334199551892980381385584852772489908084948409956753238134525982586951006795200616460183284712595163331859013854883768199370748400785530274032213179277640107570869684931128431714249751806234937224915732044197537617956613620206369172342859497744903046101348432915505353232249146336250589063035491185386999614702548689729006223383446594714284640185870820015412087424879149218035577648259218793235791867751489827894058402154427387113199729090507303431499225674457032286336020090875912831210849781861321616415835143404972617311100093502053290835065608866550360859929184919853395884396263008249659823726587852080613204668816034008340768076128998770938604218528943524047144499789368438720310883144628293204490075025392570876205534445121275709163796306346999207949522283955177965544651336707109337072333111420821754802792440769606238262252175297697906926522473340928447418879728944523421742255453229762330995010220272641116476312366841774659202073885328164427188184672749105585332107348849352507262090201101057628489897306294926705228093136477081745428678611910251032672078101006706008944143330328916120063281655536672959886087958870381573689866939103436133026389973037609906954366905365482927256110545098858800905661988451507628207974088559935299209176921785055017964196069254068467256815516246855668658671781527714876983099518273293653440955771989778636585863161620010267601318280721823960335617952752565883324449567572807807115038797547675358043585685109890651606057511526326555643646856718644490295648468575882108307611827039068205733330892164152995951340833805296310361483907252741545374292226700340020917818577165965467746960106891785908612426429174860425153493252071644526070400037863687577034737684915384607997339533858118976184510021188839108651846883531312344604978660590950883744530644852167814182841057810982154518788774386248841000739630737260560666233250001685441183921786039189228580289015511867986403087729051338093405917470783553109581984934133729803885924536407548130889590275042292754843914833398071679396174397390421656302354697802515059722530508329549592368125614699223496823160596392976171876927282484469576868730686194072435004628648342389986036131773340776891844447591957306308352996359527445868956673689552064144771938849687322006903246073324681711947402726574680294660679334160602386705408808843184925566037304483955825077478754977531883412395009134477538601624144677195009286406724612795543694019216984390634825949661437225766793532766433288366803875030997633720244980354204664290910014721289223581221240690455202132073996082801874532631815911381469484618443732061010789933608082198026925745286238633060289663889506264317015027839036383751432839973210850885374606953508943064964787469649403378941088249833290240502463811151802563614255640149287237106797413162693891386082362783955566195738079642009722641392431333624217813133546542595728605942226911414869384273693558165545225415231513623221135568556942433124023268702744096857881842353197831164183458103958433906366897878949041961022300235154112067861024966882418173531466843986735732218113067264079292735440899556340209146952777976293992960352025614334120031472780928147567798914740662688841484186812309705930904857913676362530685560349143627038111026232525141371020033889720839465722683246455553522919297051525726193459393866934716501200585114630395388664857934762947826305828759345206974973840714562183317936433326145366848753221145745989522410356143133168623372592647920570041639885993019885270358896330905472268891053236413161046664383917688270195766252095215500944120322138746373726629629096350204790624246987560672461114937117207721148130698670732805945730020739896380783033476543268634098846768706268362028449742045363730780082822610263320854338021413206508572581842349961312987309661658982546053092325086464598570618175514125222305407509575135362303029577139505098518561885174239551811610602181044393782202183296410954243346065456410436343835259882952124546436002745234625200900738523171111985288451917425417673054208450921689834657441680299443603336050360514848365929683452275027199376806167012905184395471039334486385783710153536747711122708917988949142795626673802968719779562403187690273977058238943729871665467472516711428658948512189693579211731030078340561016888384308840783948631914944836371602159280711307551588162767094807984186500471979764041629109390809380904776756733260924717771891219173985805267131800957223566925694588377962858762184644451025275269966017902726417744142443013053078758850499716207060553951193834754712924011184175822639381889550036378775735409692723471789514271784072657571487693102129266911909611212270237749456853808439368087543085076734665850352610370680263636531669855460986278998012039157600124203260019288381947215989817735583035349900190149911072919506901060742962895817406006220017738501914995166463476930361709501842565005664927399771760790904471452342671013000365376657321010859780749181168501007069348462605813004243122893554834847044477645234793663559259109355426232673432965975859426358596379287019852461132855062395095126989046378622128125377787279330655296836585150185352170519559204948642421181909839334620046448547249273394733314749846959121652527342033640059239676206346438245913887108267239152186892646043166552806015493217103452657196073718580922032185228782230528058555241995516199844304070916558364711604556408346951386651231524684361599397300799575359881423413623933850500865821270602266642677213153595740274954803092593468201631213827841787267427922498335962100427716963064865232455542284342978135096913864620811868694446793103113267693317176691619996083977814650836876451191359461605886758047412595461219543207947770639434360505320398743311250147730410859111246141065526019650619702108172674518252492390442730939762700037131641070452574184288576941076431460928520172746765107187251471984901739008024464520998920994993784416762584871287242592926640167560838157436574445152552486372768861329778354628214228637996529409668168540440517718336816801293497195588680331144720273454895927792430898133271136440968852612528734532126856104187324898615056026753726527128093964435231812963901674624664525633351127150136554114595912358663359016887266095080825005800162513819733185900924708830061373811625109641057732054627974930839566709845272806174990739780870908090384672957447245489811445123029870348252859095014926711754518500627604148011746136860473259076695907080226820859921515777141800249999551682974071199126559823014281351935872788621643320173389902693430519782774543510798734625401629881984310416270903467583667263867733386586955372412635419235703544195089168674179144525227050777104843238142200369322704346954497630211455944205259575818437323319606935391212275249325652921165179551351761095430875025503717849231463941470736573167394798752727974525283137786303962046076657174942942682513822363388855799935167561305873478101405586307967544508155431971508849396672782972153269522707704005239772647956435872775850387137351904617323082313950900452650493672174022288242238810285271258856755588667232539933377446344761922075155469666787056722554349933710984660582862858046410534134928012104877589253584286456060061891566486565563798453654619681338204197168429903833459178138262584294231039088668125089637463304941321934686942066575424622181615784270741713136626192403753934205185512205393214934903246739704750200971343443740553772201067065121484885505453596963696859655121387618340289046996285019919433264055589140770947295493479460678593699795060061834730735000602746853472793682409494868231282527012510338874429232570985113877814777650128475493196655842776368032982350153790161666822740781022420145783301666050813792704499780893660883346757403252289450634308213925045441737278157001330648319103530387992310472410590632209741363832852020979640218678980120320228565939466725547642185272310539919707661859963064187661099470452179090929511173780685456686694508162230245361082177062406411376756570478144520803756497212630841855262921427437149466474705392906207580262454330680377301103880135404682027229244807253864911464564507230344728379542953653567500519404936226522366855038318085442583768381410480179071558025393918755106062472830208039679597543283995491235259712517300382963333538845257719967695024403237140800104657457986099550352040074641750732997088143749116595133961712969839330674022668231931675373754133862291593602833763908090989360882443232864323140754570866855773544775322194410396844190693795408729992640732916981460333375156356524294271659439859882474824359400216464148017202578754174778842050624474930858327489118653597154171480293814485946421867289061137074116828589020900763950221767258564693906778239012012893171885192445544536015220271381293791188158885799430261913070781180008897819222223513073491880539280631051863654867775777667606034372785981044928577718860132109580881061116922032044180198125989334292373533759609473858873679838630935685826672384919830806446618199582388170287612652263673217467273189159787633344756487554321864165414422438552128347120732040473768156291617537753908006285453238097363667801389215222169181522737693653803650218941059727273180606357150702907364165627132939575825233672667190612302431166787729200668380346792368590689595900799920000333712976865683566025370189501296478979969069139233168443597462262444037808469525764943075354681776628205280465551625524632619021227091021221388234842234077800979622720674928628489837880471830139704551343012848382480076044298670067872564226997347454669227634432014442835939258203566036827800513137354587343820261656611915701022463586371883482965085583737665361952565745710978645631571632552524700791824163189345304722347838912130823716624540392118970337717276802790977669128960410271575856491014725739300693246466020771017984422955829714382725581968302171829195491757476627763263423976166293414631118593392630032410947619273126144371761928556746023489975738579920437622082520613667395301798171449589521149194579442220403017616687439529409025266649600220049270203514168749083214497935853948543525948783806443138717263743687002870723329364794089061704523744072021152703434491021816313074128870017603319218898164812394248624928715171203275533932800039511412774760921018296152803656772073669542442658392921734336509608304111029137168168291889067559487136083459187047489245710532534843579632045047187611903901252159892118113184878468983328034280869735242859208579697207713487556334525515736862409909606548445139191490106865195979137739665895181496432299689314267237189081819235942750602082464710145589320263789788793131739406408538675732603883912359612268028738471552717355972828701837074530285225684174129916642696138175622351536997870674690859651280595875572351838600452851118609415160805602937072514603601614953580484880932591973108993695115799908186948199961813419100289984435416292397342119171343152714179839269116975165551739246344829072424174821292488155375658267624520822076143769450763232647310945496606730489402000285393611733309279826552515436241251962942885851170238579794382869433208966906525945264506915533470438138519209287926892146450210026706993382888265124257782796842619607222625495192487645277549731666887375050469529301618600884730758800916090218795439674014884171600235424325315227421173812148782434704746766842337675256325151065543595469230505111021531901100955869690285103548138785068651842855988986097483153852234095005091778999279160507509174361578073890915355463307965285758865971793706854914581831911557255178876765414789726037932341592192752432097957107484277846394172097122170736546835388316830195908988322950537982303590813187311779954463461843882238128088646664832062743217530758360249544586990989478594831692050748004545359239221266693815361371631140356271736972001982181186990156271229620694487404242294017029047097702098670818375079738886628641820550458966230129050372723058990791915536632017194902091799494964367434898439823225329406997192759100532509459762091107458366149013172285396019160104813796595463199930604093820542937491924565853750978023825361309182482266097312651161172891002364565587950526377056169947468366322029334386040533494610837020467802057744368526558499893634493249340894025130452860733932556178676001791958780880259428931634061311521139642016649997845486203021825488570581486935926189211253559076866931025031982973070084292252595009180120939210877660718907331430412425681430116595464732044857230881105703684281866982354309700319707697813287929903637953540015412576257292033583973350135342742418943845734272055941503160447828036067812268885019880587246454187421941893902829812425252501600312963988382861889045144432509515970058616776232820796354631403350837243154642089187001584595024220587424162989834199706558657904562939297606585930486542153129431511009741652001575338993962654598814043754336217574147702083793859067126136042703100199585577694404963865694518462866628768967680514160444079666147226858848312194302290487023678013530864300359376754658339515889890179276687708027310751241101647748783531969950682085763790176850930992428367585442332891295367781079725416752403722933997085519892683326058173036511536301378388570656564046587033228276130809682880882081517172220560871759882518391932140006534714118427733260245839641151204605020583444021269805991036894153439585415935427283671131155384340476052213959630985060505746108825064607564415918237657583807671449772114462897179288121799092944221155874491343728733285855334019752876676818876119023633959757909068879575229430448081258776654058615790691664642064060720581233915209900976749762640520480936294434527932522619420483764494403865783887082546245629676691922162314048756535212391191865920850827318375580745571707077759453637283208497277575863410891912647353511559757920648788594296807866228554936929039712700511215483326776984091845239882755417049206204652818216059475966676767000052553537235979263266786559161104861523440339718398456837147967005744717179569375517336876778944408616194400922601927191615565912560413431846337036259629015621936262553993970038359304072421515503990316074660823086756619294523731300736467684961025541668150936366050990969913871212418060859170476152632285605210494640541867781844024549099757696775503888169892332936913168314556102841189712901794206969449586053564604975229604339357996946667782308064025058617877825140703746745493278115355292206924345174815847753068033665116988068996217585589484492981231540024173102162686319485770752737077185453131563691010192126677918347966499234623519478916315920538979792576559087373917551102083109163744582646338122407950023422297275698613212312411702141447162284714894795999841180535871476879903856728840547154077718462879009021435169890447552961845371244537175544843388785092164373742987647023427324949137439619246315933410559262736100646820574433657459550714507467484261744604740106918504971933447614384315986784773635436538930686707664463747153290836841412464247144348144484470341494369315274178328680063397623490940399281171476244733648234302526658260644056970253418627532979754233597094654452701924696901726676499607281445514415928202855277584409468254140643129703912405470927547522983736517231916237080832538099338987016128388362009120832816841711242897910703947996037913694480983567620332023246777347473941888713972002646484162447325739022003829893622314296458293106659994096120119519716604524713774442354628127644976919984427700985632077564246208294781632362065012611836090099230568370660079665723610113152328109691421747737697453944021444552760417335386140467004445326417003019207970433763065399450550427421542627089132536748096950581847016782634093231251511118212212095758756248301133146698469233409737522752243817610282220644246409757673243560124094336288170009667818391258634366372278265766979221959351445477511309223229698691598320561567695721220172903685680743568894603301512677236648618086484045081236814955576147266628987146947293436368406894520054215940266183701094034070720160166401300328410333072842154526898295821152236155104744355284872038502315447142053739698424852393511457492867020167874993712556567623926060480840845800770194895908939531057161025474661202757033148724909490091857019576797437247286904963294472953760918213155037484999108489494434087083050985990329757866926199953355393184013540133943253667444116435089502836221401493584520091263616739610658249274327036974371940109426936087892038850186375324165389444590692172410351804772848433223296193940631156070983233944500139836153841258865293661389875771444579779215839963778713069489302965901302602478541784682895991172158129895507038826199061472338395664917177500869012041319821509120117993510851894768396971939175694335200807610924794706528958736428084151002938623944625404304387443463603798873147251631904555239448326907902245770229986631382984322618648757417146747370889940758034994606454334691189730077794686524884950482810691370876676038087692007232896715982112516572867742715882114844555880243967933355193525945083140285683948142299507431780207424324285518305704229950687342147755429517449814823851876224028727009288769042579456965147452240719824360570735660741147777315348793069787333988401668753395307743993947113672853531660752140536295562295907530406871239022570970706085318316220886562355846120969394206433029504369821582596720137218851717260870605387397210428134860895258056093935066108736071731193463835763032228543221738554513206413098797271572783637129067684692650206679559982814719509912847907977370021419527335485151649965369112596555552053818914415691484694177160123090225719384825904218000119808842068504697807648520771765019944875252705954728600072309547051922242932417755858940050259857738502758897453983821532368338687057564193286716476898213733180634343751548312234602957106876677500403388093617719684224985561170417108699046325802188676691836571173325917223055539236548600667801006636290211422088352837095115367317156095572155693175756816394707519636320899083145352273176271126471705562779550376111176949408616692773919657059814951398153416126705243042596286993611854000401323044167770072422585655033601288002754238100955050934862000433788627370733657039236548740064645479867439643444658537198594014598432685110210569290592826180158100765737076291031162476523206623040487962395839036201109138928716069163143674185795391748372560569835994216650612697107114598377224259767910562620102588652526537546924313276661087980913548908237054867170482330130575401419227567291520469876437088589281917528934619568998126655062289071036231369358219753014812184096337575424292441855586063018500812714604280489852357371220246511954635983536416180249512340835661374371091359821188151267728039221117720996172978540394450478184469963010172612226709361635340926200874631744067467393912442600355526038770365263085682632094097266185665855140810976573326974531823190461681539641987060174178013741956835287543394657310348571554296527688683241548095825131384423705179032520200749274317330049527131277848978635921657542884158814217668954196396426265976537633350905326990765233689279428961603025906282851588488446080369094609665453161190515168255684030304093046135812905121657419960750319554698081064416028685275851173939941394597505392249138914338939356502867423859098549827861546126167832046727164950234486416264789787029165152514033378502183908287395445081633793924995686560973733756188965473166114027281686839215227926412369027732689224156365075606172563395431251552273241454140604608991923569284258734755664697827436063960547116358222335642224738691659385388187221305680569126687911409762190940096613392339637557481619851065927716524921301300736708056690695056163672597468422308568747851634869238191696186870087703286969146456463476924666368185346250764551397992266684444539928092126579635811966877512150527637750380087238240395795105437229498586882487904573477381782877502982623623509002206696012603029021132779563565042017315200935154036166059827906924517765372042227391202044207027630013991412394741737334244953324534048568063536934438326929679636217703451431581229102407620827992893630727486457260651031317429118712250524287103090092923768777545858503844717986792948964422501327923432507937875484802123837509061686695955736597065511864516566470576850161875513202383496357548647715163504448258757288022179138142675744024181463469835476890589005161383333851507382319282637598627460965786630798534885559207874441688494652528702482673304332303816506612283942209842965943777648926581368045496121399891723669177364966509780391922198261179009299300858894259554087394441723715800876618453671012495670988776483133670901057839143052552574561273635425665365006660357274249752709686841056538220845867829471669605038240717858920867112491538896702954207034430843350286591965472938428966695217821671983750161843326149434650797637444272683033495072543036375845187575214110963199501267034283346592893274448824356136960490066259792186448933122125690347779394451824412690961732133063607680470411486148607766216500978653064300558226710147325664485992586722989938089059695207188352603473807623958133074828059471191578449289165576248847732908669316670673107550119733056879743067670913030688317216554416428248322286904422633342706487910594857095650357939363152173259062306382708267725427335577965744606489522931862689521731092747991996274876358872488034590096365886378076712876969756144701705209739526137953863898992236578628812095869583010727420023125402154784991377252916607759260256674112385690544153333928814828377761063592719306312481604835362471032287629994139698195738973360373815273285731557648477938855646069618029505773970810506719707377359986917670135929606176086052739444547277222512639584661332885780111866673609486834616027946032531961483251282772971490693204780293846010144532060234169015015431962265967476925843787664410397622148627401632303818278817699380082725730500139713201594488280566194844559715424339804256839816377481490957674582981883717618361996720562901732486766651394601516349450491917220712935679821299867494824147204764532859886254408663874764961804648756384030132211296203618006258227032818314391924926006047249072722996040823970803262064404037089235294263877783689949460824079648180525566530472574884837222332271560651324401310532162438692733323418638002722150983186625659719708323248852965985479040589527652933950635437691450175257443720828125335452023142226828031490023421200980550459638654753946881041127782830947408736401935374843547769890086813520123336962946242804668613260474219908242515490562351665543800097670390793691993307182339192850823427029371670995140177213613222615716181282302277956433724612917581085854888582426408255178908088597930775086591506611694207115094971829643966712844545653019794571664398588612296411307088048300962915901292588598529848103515721783849197246429566546926790427442236192483075545200849782336437192414648441706725667120894454822476373699866786633099119911056999701572533867184861640301372443868643414045877967092618479737560716937461121467506567556383686718420786818247997470285166640844728900973486700521327057439394697549062180986906744951960074595395284511931123282116744566994798002685143457522404246407604407966893488354488360991680261439707874816861219667611560093880417897214029993347947330290880575944370533527835902225738869506663870619818191193679688163536798411845433334150441494433358343566520827911840297379962141233401632474391600879623731451559835234278018029492765533023027300655277290309270201499123523579064356497518934974325400539846927270393843758787815869495259923724748019971539290818339449754216334004971821950585052861830499265822998537462565703633858915964045054625456839794057726610690740580088142283728887785686352034230723207698037764610513386139374832523124795546730149528847661971354618410430405815080353111426546034885389670478098848656997025607984173613331777235071558779559633749649815136381610136564292041549514815109820804022423670031749146050279707122595419931359534720597495045131916788622659492219717856233515543921107522474385987925029960810013352915974139277362217805099452660544662043176551286311515134908799461131593774944369287316652261365177224589138364870773409885618569179584403378995671556099083899585958693580923215760508452254366201238640381402996065990856806884671329287328506290796379735728615632073298100712458691406850358907791768056432684261116632406510263820646580267275186039791943844750976411114797964107974865341671416636354579392541775640998046282917164432095721800622451246711659550122058649776218201031725854802317227773815355757890622487678240294888484174075821360019461972040680856725315575985296087024430986664290884195829406643510637997882718664236306873757748935643404700670839531263740246438481030967851585868627786092500751719123504146048016004501548612546168054446727576796937105193735837386790121741611603250444097161477957347498539109633235488756928204258957109943834267405029541029121190790635196154535840568680608864665498269461049577796160684371344311391196358179599041660037538293047752739395217005696858930255805454749738932251243443030896468629524771887723504770973318429329550899389856334759479333023809493407485377535097916918374211496697531828703330727224926387473948172479708907645266540199273618932250960250140688207061197588098965754247136017198168844874074011787695043582113327966504307103663533119386447125455752011207472440526196673573225539809945199856728019668404968576030748186098027053360155479509285782109830844824855638724114437039714113344307540041231757324170957779336161511737011100448746945935868027530963328790410904302541819594565275948614954392780144298584578867539373898088999335128300240330024081315466046688116307985813549763806777339097352608493896841540160236323083996453628222945793318732869735418154420761673552930631740722911377643488334154754519677629841223557877328797352290650309779637045173162081451550120676660416118646204026954838443691092461958440980631241341510851267318786504246605590351970082001656428972425692567289217627138471849737638962151082176556819517578287783607396272523579712977794064720709811078847514777129134792749693654707530484365086147091010310195225791215161618511447903096859104913003964032451056756483913859445898163758834088145714562264690050529955061932886356458733154634962194572634963297331554360956903289942341945891218166935975990193322157062458632778285552840388049109366698480429010205897517042662475400142560569068849496266629509462732510485447925316974166936647432236139464550971674375450284343508609470295554353900612108388210033910683517610797789631674100100643103947412514619213538350459189244309074121122962063130378647700596290136014778408957111397255701126272168821559946739256329456330049583296858312753224824602835389145252808114226798640285313825232443351272601786030397569399612661607913551554697592559424545429121237485382527624048207911693505083430069786575248762623594551441875383570762728507568712280809582919419943964020426090875118873575790071540001632533769840557229256590969205068190851137504904092174301446880447368270440935614148151241756217446756061607024379289838578217209891450643214158359203988131374349272270581086270191204674987571242908347348821079372635381190981712773712914205012995670032721056374533045456281675368107251498372912693931656832559292651040082233329952709635818373963141911725197186168510415487310458737519972022110386600638531813858050480950836301524607812095928768268368936710699745107962871165228145494302059497938991415854017125175757413731521180956558718918706864260181020094986075037807331654235680552386440942775137230664787750325263276576842990853501789303677560459073444496303842805212765508180186015816992889440253097321152851835295606149164496960583044689774978209587109291097891412427701457332148054721237560188040486559565667487690318715422250624989915749221671377941157248652008515235336139563149600944685939505038516694980132963003673015504481492834777242766684000119925174839031613101268307575346848444130499687195166576250149973999307121531493240389168531733221700548039657191275502613560035985477460104538214327875071363024171210762097208783378948045058452962968803194605080382981391608942222908190109889283663113258750061473984157907580882712565579948184419094233599417684434192915338423191626537455136070724611426461386166804663763849012779068316344855112546880263743203091860091914261978985379633835543254436437042145458696609080689543519491867437908960000203230255145489565433057444872431928311361661236402810752124841629029989857001262118024526485955463942892840464289306110693816450322947914964785778004332562467171138145835081594612366453735787165079105528482420981206375423380578566159822366540707099045621663026697983018074658824127358374750221998248801022843656097564112933289886799825748744782198615126344548895321222504368338032802617560162209856091556451916246295058365358252386656646191195736975749801868158508892084412132133250361738822142025798487023102096952114753634891446363193061679730718175245401013383022664285786945647845506864064296472937364891042614318544700684930042174994158204194053691176826288165277705966373758898886915038820389833677467550541534619803403582549466160955726510264471201758479081646318571579863362646973971338606626820393828403783804883102570416966365969008189440313004309111810928849789814161101505910975379590729012324601649609030877301139102914198001753258071278950329868283342226135286771925772450524791027446879699728863277533900992755704393597914454584759396183797475545925210527938876185940752321147661401544913681463905261178829380843918083118533726538658246091948516277893685766135225519804997329972578576529827616658735646047512583493979361945581056556300055391010352269154538267328402533473301391460713690707019260329038566541615926976948030639229801977458692710385103695265107147892246426342206909618231831198778033767880269431231586622313604900229276128901464612645419990244780116675948250671678577660718562046359279412159918310497836414483797027738143327655392620063957639464727894800908956589498556162769691160595909787073339577221753838470511955395316344989299568452945896983006639350369654125697735293277151897991977820761550665922091546944386552515576820707648037637926865087415739038412918506166890203353152640769381597275148108997502539451827084512149617228236430586787500265220151818048889387046095162758892160321142343471043294826684484078110977205287645455991678758589233814712402096670988060723878808355116961832106884052790494495621986145679802827755604555812598260677646801832755000999096968757326924967466524644718635607253583710052034142507100096088942824681301336836777311958994950438926072418317447956362737290329478614520546755711621457236985159520506225506326998348983880249566664949103597515191937746869573134194223030753987411417091740783445602621338902030032117300781482116865388961214110360890312755222785533524698578344954602716343351871531601307007939154314574786933317132943511856228619208279279258022918792430766745471034135974710198119269175828567359492380183883825471135934219398403876862613347371316251749491632641725273387719043520338963155049503688354364233260082177998341052045283047712435671941255690691820618807831266253236758976993729148023394735501174468095905497489084125469359473553438350486488877189940790764463514390265706237972362347082524374559281724898277483807748224699865338853988857352688435248134348125680880029271201562471602216712014054291448511136648255717057917479388989295858912566918880845145392277210179962114312629823682065094965178601880911350021707849961928792488475440340989281858002842316275978047007093754886973911058519331126931879897017922351750974347954353030699246269784092462064171621039148240285814179943600318584955808985014055221769563268768747274868299416944742965337812649226544525814214390049958713772500350750911541127604084212925483720169860829730113530424227506433242595332986110185176316991616501934502295867670097602675215942539386534729613275882567696765507143879547869702090159587094972884863797041356149528845762711536892758338458545508184317587029703976960860895822125223646809958661138456638532254902694461947675187790782488898220297853904142212528913640468433620680456259185552507766382342358971013545561838461894336412035277291757862454148965818375567620726877267260383915263865234324297576354840225905780452634868969981994821676280011957544704485887490314517312287811566857959299144148893149147661563173327505945424444540498443394716604009024207106195250310059277723087430373215321535902635170677102110597897487349342361622452302833789523537155829925600354494503029024993253205985014944688660475053469774777287463220861012462468342790013257797809300562142022895411440305528287943981276678853666702685156023301760216618337217803660092356696372247963610150882318067095492894120439965676586388883978175838971316592286130857668815076700516217173868413193950699405680594012209144370740834994089064409468260554784919095579632716581626793959820588795376794386271240705013678323533418564230992220954538218171192543751861626416985632508865463402500874392239428485598384353034399944589664463224679105458920137234750618722696292006389091511668165335180170513703888125638886575055367755917567979674185909832041221540926126560509264878695995533473806204997121625398499444405055787848549727509074425616964819325402716420386776830476893621495788075526597097671150742550026258393023061547753261680850110755545890395978919015847706445894651615377706247497099511479154150194932915515245219626780790876933737192970100763257183583273060998483164220492617845295579302347205263999483341886612835910944464857074575068955245758402994662651196137025474160038263060322486058998725430888508781642117998761126254025076552406145172443887703270373710248790983718872316262081238872578133624227437003615710730583716416024233528210955877759260803462368253155216064059519010744099145628174709464419497735079336399112655162439966462528196968355536889050822016741110820353767397807180714739211448252764693487646842899404655067002739016998849585226965631483531953096048812626912857395754723615896020234081034409172691782821730396850933698260550563235766225683333510119301922803610103420336084511267924575786658109180055380049884400627604819912661269885867444289899554002772623411974468486850810229854289268678104186570150968211548760336824310761874788455505788492113188485143466844093998861893713924308795584510855805700388474191562358752557848335315232822821068449667873883093104129880293620514455671034190470247580567070795851462543388273394927242895531418387680311168463740600326641551494477796616078807424069513461580679638700029771698643274065058662709792525639088313656638409269798336309551196407507640806115124098603644980304015176603020608368059849988568702651994678320097930025161600852774670113867418356156285747248773509122565766093056500905143342644536843090637314494439445415713899486821685521275347971293166591537662064766798976582259472066536409493912050173323021952814211710071364713221880499088390976563083734303461473201336315446701247217135792159780665862002736978900256964324293196103071470565488286407936993303821105236108904035095165976671083306657631657094051820975913716049860922659617004957730986559839994507443907957681299986903557058557021358801294563103148300311112531247909440162646871288313751650734787318303434761937213112072592179477162831354643947439554413921681305063691920328690732677813607010098345889323489050418829444736244316056189498197491420421542456500243183113884221020809490485078845309448723568247253307104927778416126014790611435116221522752232892744191506590618274441648009881350148677131055634249774175541790281341220746655998589930585664308133813357110311380257590558425618565124084015422363580171763342966751282545248575055334434489934451293488243660493529741536934345988790541566186298412950787091851690087867001128881729256772287444992346153409406352930321779040278946715086299849839725244742987688912754792889017759394387171447095158203715717129268477898530354302190223169470463754626068625101694328212268749998581949522854714060976987315269682076303551860880484841676525651897950588337342345793445570863679001594162723926369491796485079420707227767733076736523474401129677502786141123567111757466885276387111960875552119684157741473849227084965232846787386060716050124223178830246398336578145663091383502129498357245914405653561299077788426345353748844567758382546972356586218576376677592192198012584169351199236411075169110298271289284030499293838687557452328409144165081147916963875503043244663743972014675250218427630221224415898759889255267735655769182480287349595654355687066308438135457807608427666687676487423625517537570458949093003515854624738765245564352798882549064868606024649105027886514069881102580644437618010410723228740651922896618536819234030414999850772458164470804135060110004932831917042832924135190535921743925369645557153143510668863858828331251853022024418379024885544775504742411027904625109144854477626132900065867431275848673259731657206282377908824331326442357435675649453261809069383314566563547250485565025419859959621616988803171644123625139552313387356737361859026127041601356031555121816497407950866278272521405403244188408901365479995388771086170171329987710758812641535288431528118128771746450212764643903959901776245975303457133038203794541029674314848098159169659818135156167528226646553887624135413831587576858215928635153000443542797734730356635387824307026532253100145389814181809182150515657182420340314133528966261192811995730598690524682047676061752021159119903305710694223956853009809126540082726887776190597682485296426456209384910082818621640191759393578575709054083804342590758804580814573159003654984775651920583570662421140747431589011691205005690088138181040491676690953332716311815536555729954786299543898781888969375469260293920751568054533367547260006547472173246329309685523540551225146213420195180853685055488044057342899707036249888688955518939299872070902022006775363764624926251992777381182094687772921530456862882928050444906783525139555245956139162968253483404694307037973000139667627168478409134585472683252335988992199912879785989956055042509897373761213000050995476938831503136459466781449735623555522364263071356200723177025839055982854911387481655490528829118082593375210330436743221200318997319347303537233726443584254109297752120772488166705579414325438902085526891765377228307304461685260269039663628293418666038000237209450512555881789251662903695418902704399849174054904323712080356060531402258400631504063318946468230337957912621989271916835729643898292641967640821501478086703493568214522641671939806756886250249567803172013326224636617103530228160948855463005770001892119297286031647431528559940866453560922998480359925572013856965438183155723653356075887972168105630560648212766488061530355949357745126534474033834656250996388086218352726853495352780785875846199982810359643220340720898266687749057545009656742895037164291090323204696110506194426924990413186167830989072529710138479699650921238129310441466665723598122079102342845285732975756225224199700357692347416022102692317543777006177827734436731320742701201202791370420448304605948864556763552592423779008127644370811837063934000772294713504863358720765601655677379201958018845107508538686159023988092822345449424136727429419787779636485690552952486182543579810688860657515024662292857896837512965716860423041079002293007800507382692014257387263377136207151268714940562976544605924241553537010655450815739544530031766370453597502060901880083187664573211493195949544348414327705183372186817416927570674326709225446267078647834343114023286671065930377377697199215798568984961879158805965156187299137877155230813239973287771878130654675483626323092005027579887316334087545446990616293569128785056064293985719111271337565759312780582271418469569036505577323171329608771624297263350515723351804191354741952617308746995121209239931724973594961402659611853614682517754574859886692193853249296487260516817532726113284256705166146258035083467037035063844086410201658255412107194542424618970540607388834991311006708918840302315136852665987393653548632381600051391928211916574345382550342618507445415914991874513422864485576929373670696558379816151021985802849613547736980997933648312970288634816481001237074112623509009187424335557900538142840267282955998606367663812587397583438458122706643482331967256030910374846900993448052101012221281901468219743875020732649626105784406890092023355368953269889004009986487890677406629791775877161793352427686197337332774949074273481653441532878099618255305728331627671085431855366983338108710329403790717836930971180948681931207436982283596650311201775438032930432947166678423704304426164539618360348125907479587936153463651310047919300841493997203119142392543052861199757924190217904569647450008395593705957708748150373279562230955354884465088406854597201145121482475540462213016996180420741810929978208702089117212430749512999112047003533261788541215185522023502343530676767595130882615184570853545939606454017105600766635735258273579955356301752433792500868242830289542183885539290745285425184742990229949899517854330998808556858577811368487036169845017409608141924935103288088161398497838397392742932155255823403091125543699753413013995367961304812169684521580879191655283797656583957977079764530045581765843248088070861856041351027427847387743029936229896329456071797755274227256077967072954726210574080833443888023973881501992100008174535209823056646013758099849662489930138048274775638253407803730021975709268171991032530659027241976892984710581622737094359514121967938305788918093243092241762650444134520997045524636375725539244002855529251185692752933996767312737207930347102144334534479426512278423545537696162680856443663161744312783908302787221282815437816410231781207692837019804366477298067966001986384232843635161954413285809511389561899103685198302273500509039158516942895757727257466899327012488738635080928876649235442793204317772988223669518664225030923052036997405996025863124399509397090010430318571458431923731494566103872427182981696857530401024595267729144971524647459958381779308453823720281550348015274498131119137595039874844409652242398536904810330532654861270840046513553692441990610173809789857744419752662471801469606305074226770025746218359028402821766202914363429880058888239787305575791894128163443973318200494635552592422917196648846321552821454919906570969309458573430137106855590261536505872443268704498222055160290574762249833794234129046609296872651348654228175519783023620832147932081746969664167394443419789735367217950220039731868386945949194190039740315380303199658107847203724814755875921710568204963313706779136595331359272935541155427872404252451007428383699644575720505639649238887125653092096618932222946429015996485574002833887013968682890254392536266034284768649550001254271618454202586218955540793145300168930408581207706880607976595333085177930953153712002719017942629818144232153337270527384370653945009455916726085779203963152600662716736202782255078801838470038881969816617715995606314773478339347005246646679463195588278017549373007811419704766675544716531010799044706246759716287332035216534031504227209575433255072491896142534048391719843264164822080949883678552540255342961696130212801402295310723214401170180428844751927687563503033636496464341915082841469205550597357781587013609038369713526383770711577581196280278844569114209938279525647376998271447945451536796404104168419471293105324654849325407028502067449687249040025769202599843625427820858344706393800247516051528928141409593938569360059310845518089535304639497161484122816304478168637904208333091970447320213873426867200787604204591658760244707701438175576522122111195965327937110922522155275184071494163477254166060125416815676761819587249977601889662450067655999202343054357315090207456232475162764977070390555795127396009480663473192724399978228530975141969932762528772901141937577514508695104157804451788624111092333832942568196695929041679402619422523233477735810494377873690204672170432431669949122426388256810556383611241077454971783296774654702874395646675167197102777872145906417922946163653596891475028507861731420624671426283798999885372114830678291372434333576693616150258017011768590826324254004128627509998970840698148707243924246500186243217367870076861360735092204794363773999949018686808780962795294961282099100900592720328157982096525131016767008352855001602130060684444064481222941475876660123766086541827540573926841897262875662440331899375168739164868020868885562994384469979702088942993853123782455873559997472105166401763015785437860448674884780683004243893848432687732805375694611502777071659881484144008935228078498890875704923832645153858806511341663071104691780253937876503244178795802482912653621080643997277053113673068161317748934927909410014148725840551173658638871902942897726866825927829144804162307925090295362527895877096765014748884607603362995568438075318156128266479947387177630413201981556900253577950953777132222796827504962329585212533774358359438736029035679702386613596813426197155146824614491774743506528436492279176364794418748875571404953868940677845384824477259313161534874084794001925273819216614694720347764623576264033876359010750951790877060719097625090549613771553573898633841704148073340479620611084376155513146121473733693758882331386944746409636271679836029546496988515862317975249122934245570802017527349375486340098740852684763751783089778614537897940097837574539261822871180354398074317888142679361026892655197761616879373417623539528930992986844049635007353910446449879722349705104168201962243691998465144005219431293218687996786169011214919165169181356530422463059082665203823272892457380959159364152222040448394671387010202905134337770200595245163684665169100986622039979748580530802334128232221329752545772980645497517528150065526150508232333122909666726626314832828133395323658747379063352386394088761914460268826933051246332981782670544372964490003473689908406022038343174907566301709112193340747475682980779854491251223341219495312479980124346527879648202248918104906094710990588064474592769193777560583644408068712656131163977982468196815583029687535403115437701865763646734889088116676905705726341300610672789973006939843532386098935245866331156368611282724719780723693249243554319625477354966311461874776714313350242655726986080819809404015777294634097699012415365015195140057034823142753568843701223248736837285916847055113672356165941994643957482643896749244510003138594587845193572607418125172799049807197921652504417469048320821031332809082137042276397062438919961960310561423825414207559245982895150048671830834431208768108172208455353581243470992383453528799270345216768903460805329998329640514294273071115425588902840349797030738385427299263920542594334405392425992690506863865598106276602990860299442323534012100546945166055388377101309655884678093786376071544687409818808117179011959992872698466811965754335450911012374964793076175528361548215004733533026285306218520305712367231431336804768740499857986115746298785828119747878949462001792326402158390674652448235012934773838636088952598396150315060319979611044574644332219437539784123587705829139779068286318169346827954252985516349106515580901077392003562637870240898604995782713805280793787725942158836332538220684262663551163445076539877278850116477560133245884896576506246991994889853827400362189020421494142855078258399973859925626623248255384714482065230258887512664546504377470485593088448906659611961715156582297994709883890015955828346012972885303655414640656082669206627822482475810044598684988696055373212656453281279730014642416658156203494039885731881437161525349186111219199175550961549583167779579200415580171127324447857746422320642649772902049445325225483364051358898010427897032009441202408959605563409380283480470593527954350472415585455581686755507224505459358054312013648776966051940362936090026578043170876050419542008008617399862953704390416744177817533785714013338995686690187070870412857269087698541693062474196024493058581338641444301578777963640110748185125717710880024425154139053190388173718635847083196137289048122268431464514262124583462579041419108604652025910875292875781099385419999574559567804172073310630820936589310284875130167824328929097172316065511329280922713019011484362194150621128721711535338367399998976101020945222994358180455830793030391191542719246352221778589546738496881132916781560225760708434887650439517513657684822614613233316599820022747240980028594118996324767178207326222500193950632143632994668527124001313019994086653520780416640153415945103897470299545613667508580855891973658779857932271822721473361614906238088153918947344824485702556177489128851513225670878671902486721162527889911775865336700343202732406985151696635519575254480565785661094682554144743611977865915937806859185307973418651059342645375202813228604781780282732852277121248882257703074314572988015302888218870242966813262587289715594878619458748708590782972592569266585492125864448779600069240060139491560933413379562183193571272638513838778033021661764860255495016066933952068610691889346873719035187465453913109944998374762887076624433789785896820626223842395755336628546980370583406762456794318666115657443158759243790293008859112039281125680968829471132062438439836116177764374424101722538155522261773819014627435240473429695357511092437916143195915151520468504580471888767913657358063014862702819125347761553810656240344049268816192179522461033576801942638015420190252734328303137812329628345267713521346159273867030465205279803159995259929147618364346976378558642024260944024863648788853917439237342967193980528154978211500192345341786975847018869528899827567098051145951399460806639181258035833011396257852959418156416560418987749231396198497679168656914679625817499402611055236294457471114331015792020246119924585892006595911353592620157914305680325499314081573085065635436825765483125388124443435359489683429639174502383811921239579206224228456034451386749905854810729176856365418210897806000734608151551054937465405665540475819909397125884993236846089339843414724563177706634993607961090498712398889315119440689428861735821817947856999834236954598291117047545637978182125578776322921404318060697034309476700122497456692552781728798617546481373128606564901613453258800958430228007745011143065992913774536652986810986985851466704576047512751137470507279551972467934392506503900559506475536682880054047582688135041015968286186436897084468392061487571432074019046612695582543645352320932315537666891844832715527253686539602003443044452365964776129444985157356957256153494187332544031794614739948745742961367642575066547284846062517809285383054818120322490183412553766714097547843792317623773361589803218557832997217344590054035208268208989008599598921193996934710302039962941091515783983743410947867463591022483372100042743804993486680478323535229200285881516902399586803187606838576702819425588092260342227399186452345116830620312856679281647479963617748246743607708329279300244049045962639242758927629235717478667938206447525227261534515725641255817372387065968435768246110212767280576710090984540151376814704734210082098355458717159761468886706375707074371694011044373514323442664546255117695036688703322104884638942785174729520008547643099899408683396480738860930844529978459765890748120870671299091426276663492708411268094957527956830474760436213212234839709657669776866556223033359512261052540260092883613464920613045588525891525657421475119580205870458320907088590123965534140269657612807089475562949636255671908605271968392979516181738510676634596908910529262510555401227534809421187971664441067621072285189442466584103520380224449063815883826971891112015034480850546368911598867417330590603693378178332751214276988092817263943442680948071560768820740292148280477377314907468977907820590454934303690805054057498813230058525162238456233456657977027581776276409496122543921342287153994969081482123667316597873583599534979734529868122113972867639094958621356615047893768930317130774931621448306822175986665386110833505731140877766635876441102267573833219520743266525507299707873690628174757531995268333210493967060529569233266260019868258719144947765467626647689326688818760489167127132258278305928285823119325903026102818749940072466995508795540367546051273266505684203565393072362566211436961393485879861803907391665617214817772680144285594923308318277670793229974760818686366932214221604480512720895125310211901984650992530365786525360634532301769747844347173059331205852342578824494259368614216971692600919341906356479987763600198523867896947762282845576860842028091331653184909955888321738275306786311310003595260347975697934725277459790450137932139074239951527185927543664232762963801445611855312136470687767111478704618675687134255078455415059561397984039181401123300617990462477165059501695793972071747664472731886432307416253110547893933878454048216197616561526099365041005274741553787223481793306719299747650312936772047866209595267445957690829177541808166674826136104605388008847771543684411752617497072052888580104269859765248666238494828086454963152451927757762169783770720257845006028710836010405524246325534539365149614235006875849443709705495096578637769415072955710361241293655058103247428927430687573961010955824572516581303765688537458429703610947917892715652344318277449864770670167418982725052668907403816528551480698506414009252836318634145490133639898752700134411386414355921064109046362131363090584234421956537976417726297775977698559805293502796478066030317813007346796246563020264566596536565742828652014151368538452397591259782026914185082409490714885319400395453152018497932091042254542631281799910272503823342872923293077416270556421205344464728589802474162465696789017163401790778031862235528980066588707171023715234159726249273758165124308317639098531797036041832735783735407489902454943546367405511047125009290523617396543127567214585578007569660650181245230096419815905294865965221059391101456799381527248433941831962174312922003398142804893780691921905214904161317009028945760809324208406973644563003593653622318717243721560306009073957494073783065714113901904078192192932968113487364854698704072356954156945616369193624505491591670927603506694475946363746801267860733187167969768199403230201963921549804565872001074655825612662186262244430169939878117696399508888732594289934566063198708365814878976456364229933433180914377938267435765343636797458194474819270452983876202849412942542269797728547431450163793932454242221013919755320690871821927918620959066691768354933215982364632538593389250757679306738896511415829984384655216044698487619386371032118311557352426910160642970308112202435613801766377718928713213100108405726811836538963897435199024578285685566987735297093772471271850030785607365954172526367133369951927087324633556858948696091695391497472607622675303985904452056515833282835001801931296402777735150352773815103690045914917202274345988098761425691251025342700544672145666791584844433926101518711125303804195344174760957577874573408679875414335690155254783928201983615138956531948791197963487482114417559452158755538107797511655997001561512928455764318040843451154972492025470923528843915106236241667384810305006696035623956486971655270383027432250208768601417035555986005604331405037977451051966673189922669660047988353459472701142168210246283867188887401776009765214765635369549501055999015135421906163893240279577049620797682463321849681282751566471401200597439054249274181943291487748955316142393041171156345394678793517377674532207140767059742867565070613098004481363294315968991328638228158466318749479917540505942480061940313819377240397221250278103143989361114944047162825189736586724249712659292052468006611832897123971809057932448325294167000385026571008925671083361986690283134933530876515586200005248113554744101422287480369291041999426181911867966382440354519817105378887074837158234681797957224524654028185689628609747036488642182743811793709450499867495753020425291445711037568848544790848470009413425460894177365359542521713131448192760590737274168786031335965469576421331270836087681477860121037068572833482145593736290294748450137538650136723198070830304173172911983311839555275296559209981988620392449484137285855458804639188189275373138903988210011046641914372259777841650289763201452012158606944559270862356489649534816525577735419201588150967535105894605014048305275323219975638292102729652855552962430682771093366210685080330265023379029283283161049134018104966891898216963102966818198063894777191467767912158119844271040125514410208674245907742931423247649212257843929413171701635079756914685371261644125662523195541392541665570229945496795449579476079840968256935329437838164887160378749660813493718981585945745788817766749395875217288756765750692450969703480384718428904089019272578078694579134420802483933621757715651489938218569439743299369529577525188607089775860269342983736336082552995912344497661764281829430064772113566912864327072868415386544307499584158124414782015711709896321649222110209529975679061823548871745102575246622404091674206396945405265125386130719493265063447540227438499201279203708101223002977380126699072441217729600836780652138193234640230151220187066193570967924875784757440824553187794615597022535898980940318018081245659946680599798459845384906567693861791503960913325258116519424403249421109834389163906164050238104650277074791074826839866994164812798625216521458423456247808587627369439095619182782189958644183410997482557791850669387519717776718654047772232467198174017285384253645499462663448181786944648721977131268645482036065654377316075920705532752307834382028657223127862860623374965117291038105604402925239967396415682487837187190392043463187857624010516491114154580334163767448598045996395103089720108611703611799764503535545599661545962416335935076766896297155446830293795560814728673711930215715990204891440171385421257198446766933655224448013414344841567269381020665695233556636958750805741772521229973096968242145307605658218784865287688912847285631253501402284144926592522395585320061109664711814712763094349966773251915106930884576508307007358217072217994716336597219617459684568597667623465509945501325549953789220006475546544179230749487006469306605023082885551321816984173104067167686351946646490254836807557823899269267466017475630292845263021310248676292628208326568314824896375669379214726766608987775559450119580089527756072709783384333920724953693000911573601870205871564399613696348977751257022785618207553908398987572362329299705317594643728636573113571307594719549605043931662648570372749962716055677588663593285768825317047443958041293867007138461544975901867391397542653904104294245175155070364813431279958691929208652382604393433785418936790155686459000936885078821976007925003569499377947767911186773209573072999691091920554530125429669205727559350409164529411071671349490971462994811788473487414153730349056327143410415692643804937261834897578992663515137959446520520089262424660467211463279433395277094726577114518318665910760128538776363326463405098856408866222212162956858667118760223046412198518142040496019184377992051855985194961785568575118424067278728995072964047969853319674744070689773597873279299843194865659758708614230584247717018794193975156830027465700147722178051329531418554446227155003731137752468808047530377596856769329283825669657800319650669334106352592803805080172028168072013598968203545153453819204407090219465613698056739005021364321151316663317762886648098995123049770464674701023651933628641759525074423001019916590866531093936727926266962521244468463145397533564395007498004730489084904468396829140083452793583903003814072704349588461780128006919015301551039612259969064606768099151321090005453760053305196424846027270570929289960563040861021088453457821551477741452694115686154460545776723961930128804193635093292478635551847662329526822232762187321583309709887047994011351581435629547006741724132484185462961812589355728763452354373503741749637621908363750785208040732973451155576797022699488398385595915688173013934363104971780237786181553302764373082016865906783911906153330271776317203711310261471260997390095510527982796270348949006634889780863250116021494889494634377727167874626824876933103073275323454484700585382109247528163591135853291489730176204593602914929220103361004127728316093205317651422116420336428605729187712080267279612937237133004616644580798129357852092054122710251422922293507599553433522236757921305700800374226186976200484673290968122157256130775836214995866005523316852395774022500300890755633395826525517992771002331671830205680625756510926126599674731193306901462981547637550618792929323745165116077271616486493466256899928910033796540191033925636430515377883911235709708392670975622418207764193607079767852229139084836875044159639681171212494428803145593339863976731048071337936163758727349530293368702887052810828784035781247307218518427915048983373707781587673562011857523862433290261165775463905760492748935861324001706333926867521421810408832723408804787186951055789160105663462445904617190848657097180353343758454474239595051750602430231793246848131934699269020675419993317777154773468432504423371715281541485267399236570429086381735394312013474467672272187789987095508386178286110629369493680205060939963087220215363762704579782926162216892538539860617094589465530010907896075084720938415631502610007032076595480717398933910256208485668418696458863713316781168751309051984709101456071818827539489374632055985776332998834909076785480933933104331237317453228816626771067142409824328767241953974731576753693964455480211888638556103678832678358634565862793346743747505441647349656366322717968421289705130049442243419591625372621516654471169372990918839204960337449275398956809865912891292912661624135367160280331110821616676543039170938461404150823051156619032583790493953984745561919824181192483117619442697648278739989513299980429295827294148897204194573372044150870475295467694257893983368132383602206109168146913229401915354332859074075561498377512373365299513814994479777201621824665472314999068389308923337273743829636117569849325683911521094270396738303854370456390923242029887602495881459909311025141991198248961537464400056813876609733787734296329982098040123989300882903674203305648682938158193546129715063194498969043826980721044555550071175274017617695020654127528868114446973139598041641279480818825034783614751957225448988955291804061874886412164645437248309071672281634892220264631154060287637065067949542109322676952260090625088167752552243756121534323158728459781155795097966855738534117099177768725928527202085379520743286633223128613526595124138935429111989604641923577433693546599387439877201416719810684786698160600024899161701840600375565799384068610771450707791447496931082349139912078668287733051861671524171907539208916920399515719353511700479075130952965399271075098998403836041268913514995363367083545509445287726732806537497591981850713881147120060902051321611449829242945656133122644045957148538021295993993571370863444080048872506042971850865818732730611969931314231944217741207194886938174372108643018416686634042034519108078167999675512321911870410874636830239638786865334240923280691213380963927426883204453336531776110387075899560503119211191634991852780858035450216277085928139074848282848364367158537686450454290994990703729045047930739685350590938629934574758326677893016918210186729651567254487998026607551534417197423679603693838939970545152232000901808257976806081874225133048174083145927891701933924886149450773108037521307381839593046440813237102194981655504260613808478876463287466754094759101725358500491406097392516544133370904931239509529636876883709530451787351713005668780000628471889021400273792614166219285474056158935156532734490353232696876452801939697444153827845776184136617941840013326524221701753408129162759599506173443383174902132396494511704558918650380184062903490096992055584590254248551281481025962321502707379768108967955078063553703846423794146079133851108459205837510918207381632090514981490430468346481339237527022944701852642964888420375659872419328399561455705541775722097724513723015668691825878501127342787066667578027004429505589785490674591376501254357755152432061675293556551746349996349745957642877562479170429293699927994160749882189124078911321557767161244139735905986203911228979141210705460421228325784761778482049085783945595344632073579188125106179648836579525122814763440460192125139479308270539259050150209516816553912542352131232803817214752050983403626221914163612758977090735458662784287605839490105848757490386582256715510736239067012954151300279421573957495974698835691594874613562795809279722581161579871572088061156613938606410162593009083619057794396812998410777314211369142729216224157827569967777683643546603385159692508832452645870831013142040392239269086778870383895397924530988769183324972993593075954846014468940113170831003133581558451927605852391807692940993663591592596691823931619649058452790050163789719299359211266469890343746264035983965226078533274487175460186677651685647518525668777267587299002911135441559295182761092398534372941309113621559470412989441173687309281726773046505904423720082512233995149985658891037969047137863245101992687525929990503466275862572940483175462220902793805044741254532576623626168207133899443187282197181038737408317181674898959104801666096329445338811031487972666136220084509085484124128479069302150576718322580717045828983520499766591413129914248058070054125842600079997130428403286160525527442725736240772970005359842041270915236347951426250662162400139620479794514850260829937833252587687423231876552095108950374314061287266586662638849349740395055581921103446400482251983182744266227334974291608779589711651962175654233083506130610886268717244193062121302313019697539819096150621672006466180396761060392901883253318126497299321223688383800421561714422440844670784712996674282239863288620812090223330703996123914293913803209156978205657752589659274131411267443335891321468278529515902633606585746761870242886046386809725148667179924043111049040816624056268145396711396187273313451086982952847038920688983267258001664362295627026527917396991975513682239969331247267593927736292723662606218637438027284126785242010239328247419023925808817558505047161803626635640246105748069968202747679644308397581971272102075785629918477293236753298683136557582415121339137639585452193379345025250281684683395322020496532500274415283025784289032735006636010557478829288996867132563197105954950772066217329335933173170875539835256836811509918275833872659521985102991412244326291041621015909519293413904511546016912900077071846345183784809000534337646620891999396223300282736549162669329856817672892207644277004408737641444177559883366669249857638582669308020848838587814039068189748961452856488165711417608909095326570670400921000055184706607506634857747140576558345879780482522871770918964644312983033685580419641186726904296453317423319459603946298023449498818256105806204603964949035482040821498275858925318538962265970994579519469334899921743435546076308426258064014564880652345446768058848724416239683205403112083176553429337559873391728926994167625034243427741157346986411545722307149429978692432538580606967039989590655254556466952656738585821651067092521469671394204407621553537495738415317844617081668116834527437141854562084742342938833915971854613348263529181764928507082805432879379656680046989588108352763648405087735844153655841169205447439033649107959502355916780527232754929390569982834575438127130461306781527149390100924791261367240562948260534634474094108288399970875490333744521016326081333166705831722035652183672519572555505196816924943044984213843112006203114785274920351454597394551172937571730051980825960252418115569973808959149017546834799087515009933506434436558205220861612381711157484835677050401548739856444804287995660484410864280841668967150016838873918112200100885401242579271028202370775779774028700081813210924053366838420962569889960380275607755678179444343813424041285426074471837439870358481184549781173824120836464953623011505695871906183610964931951317912664303984301244096280306067953644120389805123901383810115606720322430478398768155864598913174770997402776954804548396107340853111718658100152185452979597888787000802958669178758916364007133680579250020255351724126475973149162107304846470065841789769199266122414424380891597099105378739126784976345511155928561785565915838930731690034340513948884552051499500828768316656787080126930258222961716239775609785699456234461890601826049158205130675489521441866558230977637399472291973936715574934217860711808492764757334980039725193959063270252933829473859649443186098359197616036146764044532262376589656030046382112643012021603871722527240793615606167708134495543996087975905919295850232906953943095030501904924788149033917847740855473903754004736383250323937552177120083130411671039635333217472690802470464641356566457678469421702333549453970282341110883279252014419908134106213014374447217672093501194611465086725191964212560387377921988523264685400106847919827476645583259629394491114945448710183956566038889437221914228685032244718156239060786545403042068849579259040549664054332385700536705447893553447047105028749087490250697184436791028475918722548061536453060678038323305423524224121909262073049286359309620619188758221334919523254059550987757211953198997375101038889314663193238313186268291036360821541429733648879259275385414635913125001224642357559948815625379500184429143289227651339409895025653827800550780201767438906511393075984295254185210835345606164486103742222382478125452664384762887831621631553862681064887604228921368035995405764022596231371786484214477679129964883178658055280002314603320180982108082488523298021659645936532262323908112994575427134940267721390387804207961027219596605773992349724192262936091585975215297448357234165072514645112348902007904872944043516577444940582512899133125667305198022124616012668413957526881131502062578437890031783517531786035946050568168188365306616389011551825149369860890197763917210522208133739788044416055232578035257539384873588357558642159093963869842112759905881280146207421999274684875527919274156506287137395742092752429959210157893400659867544824858845833178576457564276907529609812272545870175928860568418697062541348350182864430016525975781787894726833355702381451763959357669192716122518911007119389130532474286527024785773864056081953940988844584730269533274952114946033908725831383072649383020594649923099810474806538855855765802629675008398893180924760679975719854471931975469463840959471026150057231546942026729644293595463276145563487511400431769451366800844866177643274789534812388747470331886922162317282604804617125421545691032579920556253769031276077444699492967866291589081797046355039944711811298659540631520817945178402991513098675298047684498003106783657858115548318543728205131443677935459404792256151918697131110074986983077887268514736433810958726909921155914274828216972150727770934523873654947612064485151967156071056785601689950262516701110028073520554188857058854397223339274977613600749710226608405477396133896478239427897652660739134714078250448456822760069402616211278732072347927737571532651197259731609039625817074625716228368391923978031691182438155627545458400038074346088252893293749841375124942225498011314037370024623699251571504087596536173399144869553751542944736574569589220397465425585333393130580399691650755335152250892602108303553501121105188849457357752511296938556704765006407838106292106088064378717605976692501516302046440095515894901047416360322567842719118516201161500887213032793877453641857545504325794556454118959766199247579825356283017374026264708385239723878861096180837320401212819534779510617724516455123518971651018387138793456631287120893606380958108706920163890599162086834974330033299369903321490505150834266851481262260081489415047103606132112662711469404604419890185878748586925158169852223734677064811203802372665421908782909069858737277419602800960488851272743232271743729580614853037829416907074483488326388676155102289177874130009408002314628471959528846583942407620233667190744723296222353787963616355765885755158668051549921451209293953698010830034443471457064684979374789333550321363373538537440486893622869669393233238278047542252534703593238422972619842054324850991652885203424597075740671818593466535662606985168074736709706641599734039808036195011343482474416228464057919079515149520525802928596363934182998215211617035655415123588932919403968034996486834733242305135102260612381509399089456236385548033020151739213061785922236228307930793901239643183489258748728269246310344823709822271088581445859500371106513324006863301255244006605032244826029616524061231842406065829532705310982528144172752442641396057928665382871725866251410068141734429810387900243573589874434305115089332353040891266415037739458271880791839701320914338549122418661424991766597367858214095052032881178881760783809128845989595634673701945731617609024859209648050461533306281241698486741595057212194220107470044507934597130023885913031575453173437056817058776070097648591865977344270636995774758478744919430043290002242881137741939848264833973025886377683654165075037939140349432099204915140746001857234065287525371370681751125900925424023394542831684720776698745170398565250210866559963323724438155591963439373264196535203268739247952878281396847650456065886764532095581977028850833410599732048842651372253180861436085612135111753739927930385696011682761139924745332758894488701467543567595350168460235635568507186263952063998257904552875832059897113858035862037098687176429463245621611693692510096189042412508169485451381978741460869754487339555293640905906260818174985527364574551373475238938540982283398221525191518649141732980609030036630088058490666244937352306146498091959263470831298345169413950186750391604386691480037793683628497214251906061619284892064119642462515493741334615211795177252925721897726054521773320178510534479723612315364769354593897912343045685849493946471281247702868690739128918606673224942909583272958613679550227418437883568327789264248590817951150387301240012870801861552017495077333068466778043191935460174370554218174719012125621750444605442713487458864857158200027992070674281039171181336775709586807019130318615407534703474971542628667211128551402521252821536388711254093342812545402898197700463478530925444550510038079704831917767152685319306045928745767102556265302838561572215081213441531214721087613269623919929646158053522072480128073096782404552595831836202583747653718748749929670675634469033565266517625098140991202838098560108520893642997294310645528163475254213616802501852254395126447148065691474910465049444889782537242646256586102130498098276137752483901299455643738236176161940963014338311006171164414521549415941092894659222541551800247657707694033310023266132081130068338235224557776068919777007698000518892919721509142594069858639229628422319003916528577847759613470261547116575274543482998413846829228363975918012315977075228868902647013357913213781700495936569893984551973190783527625016870866836093946066613363791122007590304056988819555738991965920358640395980362083078637498398041163418264121734268986825894590273633132338219737335866846332589746410728727410545352242719144711821386387245484500990438569351439733962325920699749481006331541681953124059164833080750052294371810221445099103888185412017889163609172468248916504443696158169501089331494010463880354015205735514445559335191814918987975496378184338524832516413488723521211706929553592587598766497202758827216624554880145578400485039125637373786048632452105031099002696757807567531472948788421775932155680130029334362195609120074819955567380635273305940901688715606794845492619186554704952555727900674655406596326258227947389151390937394316268745611775819032880033201398868638949424963227490483452792755714737745767808519206348366240747004832380048393542408428533710538106177814816126380533950002037702534195994861341885567840670929226706298926053984678107212062213157070159435007327860274541191543499387745187092658331850279763824420208808748607313480785015502250794096922115757208323123171741964339468832349240164890408888465652371112239481673371189102221363358023354069031927417984096618891450587490634463088816766337845375281691410818392676178847784496065163660990623182427833096833035557789016525555310210402867559204824649974920025030288148670513381725579848421620097484410002250564789788906962934248469710680804440685690249459314600098270784534130955861443601587959969246541654053219169406898064733687932667388462633210833073534792115675931207897701307858247236475706705935278526409974570107523030134626351944774924496262688062358987258437196527065251281312529053674313639570915589168259897860456644905289087148099224307410734711007134767553110227423189707105003041677381009795152367216849562710134393760994808462395780011072280026635456912164193204077338436556901061231766795828417325638606354129507909387890878127672213519137607449020183260151427519965757194088546111915953360900812776171766305203213679638586670322344538817447292573536622888712511035702644949155516372000073408167753389490893812933925398483314723995036862220627654388294183811787991354303155503664149438578027562888862897428617505084512916526343334412965962743851419098825492581139909581039282055622661505557917851488769208686920728029242382875033391081616079075769142324151706660106387623722728377633413976592655698285925210254941487748904447626065492471019609062131719359154383127862563595594472724950240024535654710419084759999508516382440478335039509166902407304000916046663868353243317828920640608221152138610758528191451794270212229330127441980050423530404922413329306948931081667859571341820494598546846881076696560743018050618586162767195120672185998888188020793038476471154416344257459256985325237409099104422923567272392497024522047633644620597722358076864800984621243729425616439652628267764940989118390252172017362130504112482578209432651864623809918351383079589605764419186788171494286744857266949212167631700610738864019862280810718496747986670702890739846842724152666622242818995977233324757318613663584481409453648536686941702243028033938094455316880674106421197635941207308566380364769283438722861931018330984660239581589055038837791784645671898077993162910599275613208160705262426503364958462538213255739469053821867215289242429244532471086390168274486120828013113368195374356010090733708052937160385544492973057831541407813171679744999452124991996902950786200867313483729657000696785365918074433735697402050742063869605703643737917053304704917317993457854738820657269351744714350521571544172694661070840841266864342001715526708542186838349187467455237327821691353458030044444089860321307551507398229698993251178122644402313713353090491636992658639149500590144756126369842455461203227525880140990857999601704070883630556491809967669660538495685264653428088078129196976631359877721406684625179724122608549785205625398891119844196317342654680125241567276339649179267892290083373045044821488134130147734260022820714134912725873904370770570370865664670618838057346621793391328367153517689908800803303157344561977952427982338665460647827667861221087426442100392992895483904294973150864121810351189674033727103390468438224051994376787497672648828937513164897375565175514747781113001410901692483508033934944822441305138968093101034836591381693712050080486305568321912924958879538263552934880360352333777943693994628762182230284382153692673253974734499671260710700583304544299494120515420625999526786012521569338405165348725846208619470135259505727676908235512305437577476324849142679640597563245007055574221778303314712704784507955080201449577034968313404112014526249633846408358361253776084215858176765032128446775681862135007084166448387526443806471334918705938827151476212839954392575418707189089850688877146348523099917878928426958286797948008743173769654148302164129055389520046748167141447971942365109154646586603500537547001489130883556482158892697682387429021595147934907828326143796315451506956325356453146271697638055859550073108949606025199589033152997290493422857991042938412101327527111961271452136406868914878568611231734533085870312304817649040619098535947507380180905986476872495031488208607552410349438506830364111829491980378916323545883449636733499708775016908505350194528039657526874185973532515530628741867964395497221385106721481932614622175983236194338578947393805920361315239550902000803876634415004443273776539798642085211454833072478979816175476244455647194208039039072245094449282073529855699010841563891130504253221552100672774772256748346805753963471180347607471068316516365500499747237811361993761131484794214159090720220507189764699663128195259248207798197491625418463018018454684733029697943009619105692268602039246386194144564371708027347009405260231630439420068997084292612995633835183869332444236284013343816867829400543033406289584047914058817150432523012013040622023983298087526287723532275288461556841106330543507849910758246128568332721401779584264833606814090494444454572070879084085718195306995820018933013648701046846762834888494818826709541186714074386463688043381714332985513386575209436805159705776053913158041630652859494674643070724400050063172038463015660748647410620048168973466637868971427319896392729101887783210381133373414443642931580758992495421780800471806533297418778752888769752355319413428792687587754172826373783366057125361444020528003014826285336528936737807670017331394557184467583188361808861918885685747452218560707169695055820106635909030258905246776038263802745318841626862103243091503377581103049603784381386779928153290801710754189713663883634481168473937174273018595178122655037264144735065888369240141751297562797334521605962977011637692582386820611789513234416210853151815430463670171511862764014371297888617380598998405571335474331992650232804974986878574198664143697256512927284079261064604179627259828438813630864394461605375369984384560066016014511406788927136929495313812504425278036303155113360186203083124854613580403127185904404750759751167267865104129383293652609440391747138979943166241790724458251395920231522476345367771827532129335099069400704300614908080060337797978098640346479086791904755908040406221161544047520496609578216783637649073275604784665106548032867736061447900677935569228415170351698155259067545547362860794170152818915337036308263370847221488290269557485852650857362394203071938802927497548420158830457344563696018036641396146233407841591324750242199114158298589399054141482106258076763400338966025039439706240556446211968240931455774631115298126974724303713261774773557481935418569894429702749074818536943765118600007119927224075916116649097854554710329086010732845076670959160525530581818541667856156633191550332080952854475975067301819802719163633048726530805112557776896846819220715798015706007922693732532776570771709300045937906201806780294896147625391888170896573530753649479538486130128313956274848456134812038511480993509121984807084462342254636173294143055924857191029230796677382689067294081213417584045283526561022335477046477118398752433353252607343058777580227659019794761451975027769103190025680108598599969337145021423169632051251471865895962396542041839857935133537583603209731507974048953933888147054306144759847532894703724786404875643008761994556087931907696101886236678878610997187565965976263400790083335321908213706150992622689176496867718983120428207895329775887589688555605826812742507363070258808724286110711648908935585453089018695883469931946973703119661542733264084069818325481699036327447989968213181804348472228140203774380284363315257200857530416780088236546491389980959035490768323956737294587667308026372454114366913612518044032422233826746670708089665701786982011648517860384295522232372783310567167299801364981501426414252406287520103422840141136074391114770711953689033173155670698417320777350771729340663662757438714122128511244118369088253828900560333291281005700565690760615988675105863354558635379705229916553886405314330307748558945158653390247971756830237353909960419728102024820984875233206345946664393886321909840778101270101284549945042711263110595532409344740087484481059985620509555913819858630710269076674681615635250864004825624499957947200272876808533889831060116229627972762922108955569148602221515704174084772204624932478159839050719580629141406558756067206003667543610947867792253107697005715473225504670519773643459233867653641650859811248844686784095329890500604628425338796817999974390311899944294519127229751004490433761856424095901334541351862845055639929238815929133848169643774706831870923192688532787516957276638022368778047583991912063022107813213705797141551076856804435438947738257948204743064485016311721905548844779581592092494435411720850961286234944959038904650645385670491398277827545425868551911049114230995190027542313659403087170312490904719520600539078421811965522409698260794835352952770403540848732043606599647425746931617271003022398805480515448173407015026109914203909152465430296192620646519149382629568110335571897092126662388733855776788995420069342248041141709169683207590415703999336626938645982004956243309907259242981448501137763135677192842192330447538352221404550881355162245466614895127490484014944339335946294524434520005558901428722157621022334219861017642859966908552027280847836813295436445859342051710612382216768949539137322680092070483490908644681048256874669486878828746760954804937629564975388468118656578319697278011431493027530667421154595798166585540125897284647543666926026998905837478604277556898865915847344997653180124536123440658327720255466851825909077391006361341710363477376143447623739198895473957284198958433490293276666825517689674252440936603043619321827512290548952568204816530034997560801806705598012594537375235719358165897794117857435091343431854213714408171218325778540872504737664537171757441588503379442826877956995538848130238828268745852058623245700511628933285135777853531583940017880765593518698673163357529378077675592250229061171387103445331978123476356119362454513433237234738629842589865816076428268249120087076005034064455604908734553930006594649402979852447362139307891587724410544688156542909642752788678168508543582980161823758132681268693339719681119525663597178280105958352577871475140699955396136380953647122324819351441083717683148476592929472286986816246705308704478835994101622948853095190833518759944941688818299704886258584345226651461145725414815051016237145292663210732192041101160638578922216867073626827934351574837348339345222294312862120370186734053719825806453258143160790494500182686858721220730203789903504740341038160042697932109950074201007919370982276927695301317062886636308898315455201204673624437688584196686942202427393341511995440537735149719243095374871297503336137909096524244526605997280271350696669675504112231820146257764232881999641829297474694836778715430663961079957167013454782807179168160609769606142708417572502589800154283647934886832146656076468015428879764250102795123375829364555228922108219024457045786328147818121357426532042563063879045804450430514503451703211061296708478173855395048914387306385134716677832593168191477046899640291800938525463134449501487016574917100821290246008358222041895519539710939451163560790049735265079279274193849871277840762182881691199027496288783948498328052142763680711900581080604440630395821370130244506513889346793164643477391158304477051097116537935538968836906904221030644782940438707831289286158964751298178796288200576864810682740709120429039222732061679695216171849561874058822044288840767358394661589470198972093841848112904343192035932802157295815457219929162079271644884848478945822639004490984503827975598845352238729688645575344615127973426200901926484081493318457244919069338426725400696042106570613663593292761867936508836598868673148348523509647874481794464598537053717267519267071570269122740791198898949755557579126271486259301010857712402986782742724330864194895764196972270337931721893899465747507658760161301569717370844545129904021505440815866508540013231001949750539909116370597514445246738828378184178910834969075831554900469360469092555065781175832809045055198619125457630012459468149293179929811531671602737953586479373907081341439468908570410902473407687594478711731232899076070876294938287699472183815845712084548078075606814771055264088266164232052890199685608376784960105833236815023606041146565184051542589298338724311742539713000148915733068599815633695384781556597713317668813759168773122346059085454629731604845686685014367524889679733910532764568786242998474369360798928853985456886387769766578112496404654427897576120945149145557072020031457228276564042094285961006433815472856778470138888424762501465472939596218615131993275001242297544009900679349807517035039578486843420124194208000178722876219789165878828441558552848521615734205969015642366976558853947417309343617722084002626712553740061879441995993429980739982254289739600782579149266885813994451026195844682688200232523534937470857592270917241886487649125475407728401871058696397231278153474802701639349370916007396369934345810365580726961525613685624285273572504093365302870745535974519596836723261778743660816067994411942348672007243748460239049907582226284029006772842392075846730740381674943647840864515491491898236544677019321108910896350502005045380663410780013669582585289653418244854195209292943704324372565610650481482501128099150950588536328569939982184923262635112790939638612130744307168644009848503229653414636156482348920438774533182562395376179120467148124552447229051959228540498618535061755379725130612724999565236108713492163661946310663848130611765233435099882532964887624774257708060610503658646236198985651245648294476513738107159914429803816552633562536426124933455294194474189198965110548282195575160041119050145343297259480813492232111936300453264584870798793169196145418927790105248330887450862675546229362396656386139584542349361394697992534473948945742745847762987989431710289077137308071158000174588598408553206646530728847595437623412279986992569606944094809017397343259087752550859846423470527666210061889160137622743785825747763669102616840923949911210291919947705822218325439386507535044433283499997672665410346721694969143663721710171296534768253515799632224876673675281472114747516541037991568103474416057134850236617569423151669369981272696800959618499020851201142329260577646284826763880982989671439786215156839002941130307140860914491183080653107700555798381929480085129639188822933220042769726450602227638700717556660084712431342037944768884976444450871422233019680349673771607680024688282573681991330699468218035817685494799374196825513370694200709604402438180345570447219284182398545180733221383165690907264494855919665196594635816365666499658766298457616281530385343133540622602893398743484234031792197225685612298219046284411263296162956476238857987506729469201457792878137164526060731118039785357209060952610511094128810347945273940007218684890020693277858820887474109130071340148382710737292642110361978797007473483708579359690386829460903304564084851548474193285635806532503667539454245547508369355428018362898748238121260132944338017017314097768867161623719934996785214957669916771090685964875950681826157363129635122671524553204272859742561033244065097012650237263749867158381957269117743360365992732355153723015550279827831899453263566631497076147276875621071641379315878050731618686572174404022480973488456292170476094729025734071591434729416163061396089632652447689222457567145310003133538100859085165457141200091359311667950649326171998404911878925803756904977929965180593911178231057099762907615907011121333458415243194742526163365860706038588856850644285276266118306169950703425464154583891253182387588720610750923364988305448952166192920092635512383582845596028072485079055542935168974514078124237602259311524419887027310941932306950802390376849106021726460504870653584002615311872455591375591999496826724109344926237955913946063051050645921990632539830099323622503957105400607460692393267969535859059764956833602499864239520528145074473098366123021152290290737101082098851549607178562289863512179345871294001707380417153581203174082505215815690282963486760545559808898474006444195573949895315006791276311399708306573050616221797748828982752454658326477066691537468770898963519458059997850258688699876689799621433856457441085735586664364110417490306641516637189947587503533180779910019386818936048130541863071592567019640763923877728660604146757539110052550397102817553983371907813816855861050914555062840479257764018042709472078435574869361554170686576239123075196602625471189585093509148022453867685137363732314832609115957406246236125868662607804429186748305487670594216623622734254681951702582380559990461591075792151021180062020222253932158754881521473624593848657755410992016154451213126831800547250899081873176416153400379620266900050314647760856279115454091559252059580052474824780451995559561128678094594793781436096595561699890913744178839787477151357378638180908763582444139947315505222655218316540404947187182300379151598403016520916261344058215282512599924525757571715038481228124204820649107129884565067382826307556909654989139234447003404991540927785461136540294096136476935426479139083491915386544095426627561881702501155534766911380519146083551942707112329590298356503173666227505828775574646241113365104548406998755030226529159980332196940661302255764094446640768862623155651529636516126867802937798568474702219030450931918700048377158463650297547069292733924363113147339950962896280101935999472819207571582154791982296879616421618515515291632901237778760679809739945224803483931543967289167241579335917592061775574492976209108696591113823507613939493181394942775790519572910919706664684970649081829297952109681083703640636857089575353534041417710602610929321111758022163644235880674845949791431669665443901899326678859487214916333165599437891725617478620749050036915463614293029203597884321023503144818021393340471519250572097981936796668832343687802182875998693561509507495288958198944563250516662369169186248441723643185126420473444639946861662016782209547404960840379395514137835056833274113348879529505571104751854569372422605167216295159573944929712478885186173724064668432828384487198087094079845218414172226555074954420130039627865057299874827783436092913970629181240040087112638468931426961200343695982794103137261219545567545438640421659638973482384536202700334190657588958401137139002897914133835663017931108234793884184509197780059506777158152222285386130962449367323524899025629182350379856769310904218991866331484461341827056245310345403258926219320892809184871777288250588854621650979817858111896512283587087524874081653700990535198018286427116326689268435446472741682466871101095019734770280384222765141924834224534535549351292418586949732647671984035426572432502071538451152632932610235233756800556452892203970236347398118898698172276297861438156316584236676214618809812400377358261514642351987959129538758113911871508653997029056521886825316103106846334940799003803299811025971870267038456190245799872672880394075352080125901398939509356929453488829071753236620068966720081167751199210270366948236818084239535990517916801525594082689891131719273117881905684998381430221792715405531471801549054708970698202107899354691148418079419009076078310261956561619257792465235704543178562564463131231470321623683085846959119797099953607562385914978331742606924627558229713136678714041997601865803805314460913928730311131190501049765832211528866787454893835124742894600690560393465898225549817641575610743805968049726968904195216777732621801846445944086737373872591717051082542820450006984642250582475406855585047972807248698577938794720654434192350349142403938464156333432643183033890061122798578583167368160904407906005709415898336535360904323297405555880311972887936028100383264258748554222123025145134239904028392088874961723012348987269787478374614265513981880541799895689003483710210752483723599087601464906697801189226317325064411496240333797878080389466658368759101971588231573601350312286316673634353188422388166710232474512363117749162953362289615063519568697324260401394976245103308466496760613733785044126623367756282520615181958559297969360151713535871604910766276107104172135139881901616958399397017520499763215121531774971229639066880431722874941071387817028874050314721586456625946550042816168942548703153659350299618680399976890694800497407502781170648815065107449374095004297144661659613767631063531275485977553499532671915268661703191717929731948057850682982186129435888021178713432660116326588451171201962170214525631416753931077640438986703007066013759683539739965165643487120247584791000446512769286359280301573894874310039467700755112979034645021360251494141157000022091092091378713742195471461514555406131747338482112552029418483665709478359718174093684006801570244890435368009895093947538416227555915171546724977670058397931816925986271106997084377592205543423962338248714907509392296781118461543025836013448938241283276520069252955193657429525651400449009785162432364173505270270152415336522183892110839961225525564032490767670205926952871976458618902792370268259913211334799713789325738426554217480588013611098275723530917530103234208453961108981478090042896096995157312796241799582021840875923481205789471180924868530019887779767689956209191065135189475164929300374091172575831110249408982784569294026934791487013484701492197094531244361925678409770600112117202031422639898035592950022843238392553014101757521941172219229686945275741225080152279649894514799684669021402832712151970737312602472253324425531441848184473152762796008628297046402935623472812795016547600137478916868956216847246964537749298709254495959696714785291532094709399667360724611917711086879337134468632090132040754787828369712566796711741664453002594611227209424723199517053745207640608560492412267783146285139739165225909788371118518609380728704278502649530631181175799085125068238016081275323340057464117034504341307953087260673183435299393231727092125062718932911253645144954971587942662198683477961186220333653996805100538005676293411778427783750911293023418770343962297048668832169539705368483919538572098642015107477407965750395466478817559784835356501773304168135234025353886542350952250068038317422047421726257485609865874204173600947193859647983476911716651389480344177060147681653653295147345560797020528040743919880070431718879085604301502618077671991405903339634838252790701212901687816138631367692035243169306542880503331761087752844168109834272167029464762001677719484832333484389278407052480482819723046039310672896704157359931064923794008843440013344571830893112734018438224450295185795875972449049076410615361772663245163819732003678932400658084048074364813888946775171047920768784838004545493353939992811604653836135564685179148014457793843435573735410892488698751516242568739435440252116785574127511877553945524087159864941747065738107698496672974468752760930931329563252771204568881849347981067351396047656095780916295673677259801670510184699491633747787966322099896942803568917092099206853167234459380136257534179747357497530085927432203484846965707507371963047767257172794731751626683281925611763498224357978647958753458434176905720172507023730809136897694981602753193653018662559423618859098334332505717139238553314118037061487791769122066883807720988567966703763622988660607688284214397399195409842239678507395417138976916510240454636270523876619465596617380366857406961224797626684802852251089801131762983272565842051313657990691982709180019221122374210946676362174128590896651068698833403235875278126498908375133642913793688695576246179694201548313950689442441650104284021588239945182101952025096081074481742121257077008291277863960418407188727733570408570875841174641527659556000639878494256072953034378448906988882539213190274255246732493492802447800583167256508228431711985223843496000865742044153626875582714493253073745060153297185307080407508585905213955310128917237420306040586323426784649095793066543615931895997958122934820787578091006090543717898171636102736338844063491821242810179226740990996966926744941318932769646603340936914878734967022482662349684111044634622446381341302266161207152853036690543721465334554780077153833931297544934084284912713147658295277863519044714889318043022724886833671176443793637688613431383733108766243712273282834116044119529503879196826554219025555315178780363791966987174287475466179414027949193532766271188140645499441420958009750987120006855296253953205765257155538751657100845494876923473571858692315577014181947667211920934801926223742102868824740138779644467724248956278871911328346404855912579791344945717591687491210002088898347034518214879487971006132483467387305959837911739631052043668414253541987919609142388333747776361280931608182199031240527360246035499839868994231494563084981083148856880679952212633869506730294586051436144644561820782872142367939427506985026645553505341102941157348203016071836877483101184194655526854273642217181863580705732334781914952096193620107238073244401798542722445263043230456052400523460332092940340283173945097403582694126911307132949470663760892776596755382744168420321074137926040869067336534706232430345686808478211043498224599401206173597417589917005465916080479721730483036192769399524779305705171225665478303022471170770092002894277131510559362291441533500723023780317523239537058722487540153125548849769528487079255033583728385593052867558993442096691178447331514394478421349959724145181922485281127693693946398111231527679875529876026905981639394237725273198234021371528100155103342166940862232359455866220828763871628353258469343752459922143100669304058819051270684733636043451396391726851328842194945509383842094181645819056112905001472909399215759474496078230278187796727806234930926964592626511985476178395060659736155783835702662669436305548361808309648586823095443739719310992594397647197518499552018905884782826554807044195311582913593624198353428196866049864873500875346276179594052211655372029880879931874907083676125070311283707261668620381969165748539272930244047638867674267235748055586631903864197363791967544720137262114197024385096564032294365975927960124064020571721059095461363264892715035697926431533504408523046583428786945350905169010008815929755650924128009319701465573770456639588958819110219873070478447453686284670747720584492711489338243069269665779928680701704225822701405195272986875860329468312876178964211202309361976593176639458097494358688907230827616299188505490906064331996449160631330223358898664803679248662349502191990944707803400771068940761545964152312648728899040311310890931811271995651929826200014722374037665912173600509594748321247964756433117848604639734114552920321127333143914791950225439855592756797170645944652854832112854253988023801923114728019342683091176446421633922971982590454436186892617482924057343955198737951236797568337769850653325210254417287157015381045630480197510171733514253114512927342289307764278732506750922588367850858100596899105541636931083521463408840443841897486385549807448096779159479717198460885755508961037679518082735116459869230115410721031676443938868792589314045185996098162395078768384051061823367102623717821309121411122989734314577588777605187077642387490001231515883648392292672389736232271798276480759094334099330539848138259002258767844402930205220136992307382351892237977650720761142280180912971473406447636973830322904407521485273841459603519956447096882724776343591583602348007876450023361789218702948786638617197270941206021046535933995477086477780759546446618530980200773536195261728352181445066457771548710658201273571134329149990719692626861353321521927484305058271263619361890156840807748404265945262920620479878642444273113116150947674612998997593220725158399957094346188257992591250522014622548995251628515198313920328820258062767161922965312156937150650682754947813491072195166354041014547255481448022687349106035206021322619095490579570686029255023926744841673573173079987259697782475755267586027866869926797059358769736593681763526757667623757207931112209371420933582997862653337306703548877640069513167515549478656504171037072073910949671325104828436940399263896884606891980118949402022830616596073375809423042575150821224363123937887098317325059506642530688419235054417078325522172572838904417464589084474959816031384770483954796470526623563037562284914539864730227079141712016502652019229526205113889646021819107521524197546571920886427674575607592073755983540235409558779523212328607425391342828949054982980902934305599268009359746563251913492086502337887454826928001643675713932661327839783841701122913412192638650955222294761720565325503938231029130673414649116151672084357289829768551261133083219402194961618423904298696151915058871048268110846089436967391472743049343481067883026896779510812848435031440034095169696622635191861769071104972572200352849667536835129538484766125209357234181219171497027431850282737564190138197359635655446278142896428697998315156750476352881990659892807476721980603916964411237513312302521208214155316119412602117404999094408826140646028976927333586609692332747992838359612120486741526684673037072911795903679948446358139754600360265881540322954329421933108947113979834921872088414523575423606724959519964064543248632711921220860609378451910956847481857607483950775463720378539348287137833954945788301239540623507711440545265357338883027510759925354650549507592528486631386292288755615462241209178348042147320016495471740189476535931942837635597284998697947605480902899721272179749470048562496139316323936099381514932914023668707657095066759331911026587346578581925601389655506516494159471056363553796006810921630367298352476999390435704008536896097424773857632226707365905763181360904468741588940900623188128797134825021693207698665493523979168255497561458796417178968984298794772661157173251425913499574138803925480193374018027656836444572954494138910746141478541826259008193165440396325668573331338986672201623746190222013043221709614207305505968447784582669780918566513938659314574347189908101591696068593371590093975471253390082685536311727092094233654519667610154861727365185054803749899297133802591555984798653915752570251054806445497723533583481768282866882946403305731710051407126848601962581181988750945426920138859341955118938989169141515734203882618666113877138829347467197430362883250221545861327109341173482279536092507646190589970586783545769338454620976847495343192629627892927551049958330844067915563074552899919718734327920768898405958988130707867405662481496334563846927998250621650348417533168799754129248964944196927890799314025837515915578770240374041038624240939977441745844036181982729081243501870117198711387781906409000447848669652684025736881966119749733993988022707936576043036292654211542276366471811425319756316473307728372463151268217991536249646137501941851398127175660772230538406565536743957124792861904615053671962508209734662899837624838894534668616099023690436104622462237514672908570334103285259447903884190271140828991632242339025804224621292413733887913073855536202023911489470836204495013898794936498497977127289242087718570061788551174801115023538020435924820608521649364954034452576255589983472307175619112743768378474302631058336287668378542265813535282711011612418520649353634499957486520823702660566783470849108106673187262957045843151571176040442362730122479850199019099235440182377083105060453293471586406333679263571591042023673089209156157942805519648241473965097833467935508805010501494188275621313014948144265744401963794066421799859510516765849619223950540134321728855335766456951890088836346315220806015200319278458839563941778243549618535013636279802527678833895078813615337387156221708689521268144383206999025267011161815513394171777660920586357841762167775032640967933791029438761489403185640428795726991763243687310881808650451059853344196006471948562727903148655312164349094154695590592257517138186050282696702452426580412654075010781629150518479058706379936640004618441657137558851317974105407631180809718414027330027359205866046603374446466908542630916012887596434131227611716647389263283744089840064221215019721537108025939927143605430073491286368416114751956040250994098566557700986626167153074477004965018937725000127113409118957435583617994364078259972386731281921819035600929920924861405542262630686583495873275044396921196455412277589502550770786506965358386126150609087797419764659320887832619320094204927765632787726419491330418214754954409625974945634320668669390017116361243828174118957707449822866625605003740703395906843244370578526156758057885659621243048397224058390186494147659622887459176067224492524541688040309784164610205421690190901951097399070016058141060927696170956901581513097608172292235864233017727822019361212903190375504991619349310168770358172580890592010083980964521023666790734707164948742270590218504175251707330235727887246376629804139359996666123564178074002266847874028848464315472434595540257339457627836758178488495943632198325157134496434574847300521075331827636509637883639617539507113048843673617957056719380588181604871723205302621303552964006403033766067761184115268495242642116544596578256298813870409559823096075706714115999879130514010846346835911679152172381260576358783392181785161889541899883590320209101059243930235864928557263332089240376173640781273171387779480580280256485819872010691012165256039547900874795876699515560638682100062585480763379132725286324033177885073120284500003063464159528994571466927265472736276841089137210055541041183473641586202245859631074887518562283886322413359077374289070682873466537900727627027770919658503760308892767785576782521758402514856473998856570438027973005062897140086848918958475275861785026777781390457277376533956901929687908418450650663214232319668529069017967621342281923367434217736501452869809377016358838934309309292593616602776405548019876749800256281177248048050312392219858119811791152660049494244221750332638367555794810163702766741636568615531763941627131054425967388468472973017461164018699293044856445596531360685098360476418591958553436000018448409699708277257811039405582519831312343799867455764198003157359088371519798434040107038300957431112599551049344628627766277599138976245983258321405378665326258933896326505414969879514435294470554911597882776243532541821843840644364781304824492967075115377502391212911828978757259765938202989582033800248942915277742246831506032943861085681105670257288447443211676927336219415644619340405980610403455895958400820109158490492105038881980442976747630379676525633870113045456378759679918571251569346910466238505536392936601351791766473549849625952255636564052514283025827689152668391458100939462822999738068197096110139327473584621043585678953579324786887175850226199833762371710470763595490222803341939440694813698034022098273219092756304733664266613817190451174566551847857568594926191286270195425152094283809207120804057526851513978682264403015934285535024212585367296926844287400189733144006201765769162530650899713450658892841360481685925970373470600925670444239115190760716828729539899341041000797428952173566785884249758657791122245365861034155534883557698213327640346538329519612004476927962144650907663277400853782123101043158228271738919722031032056160352620030858700252972690676072947191237775954024761796882687316712077408936518088254790697595096530697476208485142335425162773326876520161164927931439488775489114638549743191176498393289315353788264770599786740928473559048716428890009481352523134601938070705817234415783087688137599256745966400780929056757624106252534932554941973085595114066392294032720303590880948313254643207296774607824868183095091191497588528644041713279505001293431019334264890206782337144878322896506907670368772896478273496220390667625498746048387487990578006952733469736975900449920328191372680060774674864363936378194102942978251637886172746675516886024607015933454917316863002626396034642962338456838458100340189034161413232231633277273675845193099797637649810661465302594390393601566142177504416617216256657035752666886780480341866882951731460498053692599264320566166364831986660010199694948892351923981771448689431834745788715984363478156244049357167882941370003800876605240498255127185434264695088409654352616135782864144186011473104634829053688239627633358352352537425081208864861203908705886968819916716896413256741571680165297930242043549971450713305088737295266673480768866639081367948505143050035859770044611894915934100878652770685502197441530978050073865387486394145251574038275799928196627144620547460998149785803618749284692445107006301752510814710977949979303343612710999338627941421480386112412682340977322529343699246946941761924274066602378009989089194162701344512260444515041779808284067309444057299916646603271666619271130100029332695545120553100894734309699195330862096448353440957403217059572976340110602757464099135740420038765049812487148339746498060712956881511811324349332390596390555281187542641345966725945235780947512403268703355037729200920190514886461583628420422969124267309714077649526627442712874355287688921603819439017215568469759623259298284419169900418375541815999822176878119571820829021287798088019134175314596061037361406557627037042854700897713582085753008262506098529163835940007308759164371000712728343506867281915469852746551210308370224722102388355476307042727607256949542358487856996315235301989886299692661522747868662656728287659167900548605078280852830675412108824182528830084086042504038468527360555603459446822498638262892226968177985948352180565026199582089025427014878758763002421999938266881728394644771423629833330521821139173664822443608130857933680031914001789838140127428327625003664976453339185624716657278851858444495453871711308924731296570054901484894389033835265554767486322978216268684236272697799969807520398318641892407227925134387796586896883563333555135365703847781404964531840250866552743686264630382474122381100097941946173753555859608807674763189586852740456181954844465523015944143144719583300778338070147048898598672648614833399369454219672574342555840586041735040725738282392493342735803520716589477681575669879775078410376820287170429835636163050926027852658916704457462762130951556464485897837231772168735286865888811775076386879908755144256675990571631295447354765042802374989889830983040390473009897743567191439745433797558036259994409055242229713890535868208722413845223888358648444541808121314631452615245230920196355655113667311359073229251096697979391598830114536166653699877744328185028086116608235223642576325789583560318423065300372732239006175603664234141780324799666889855299493801022086679478523517099024677234684710530308629475619295579835532662153630683150362184032014709278432549954790408139482689457848668076128197404281296766392620801528620765990198934855844142403609533104472975366473830106794632014897655493003767745410815069114303844503841513910932720451563152677233461706828339449621647380460464042719362067719624708736018982138072711377002714117363202152927780776752786555076185447335803314774733386795495253751519500694943225500330593743937713254741491014282809885137503528948642713746809875276255461336293257996432077021547979214135849798731441460063763805220136754792042211798187121818159540775969755387531017496932179390140218223136429249035798573964523664263261128464066662468635267178868064238155055229632636935743020047048549170208902131042593733905590652871166082468610087979905979485886936248312861204089995352257968980750389937588382947651010645890883728119020968338970148954114502060072275542387960063554181999505452719675711934924509974618388420310270268239836484151438025595908030473143982295585559722997436535160260961493313960314577036400300350496246907856578266888912935469622436453611282378393970660727008052402235311247446121555626643552904248351194264467503620497720435721271697038601827590999295188828075958450594986611795118474967537065304595126027375494805433472064256659772416657646643332430068812064476919489526885815263827833066592787895126479406416637256438856335494572324231669946109510455387133303605851094873519527966684641829202319996248964182999143267831568440491191758477934189898470975177731905278880916583422018777178772467177362942233990887172037600614253862510020259582731101846500792721019926920092719801286146418976250915534189184692313327348268538598804642870761820837065882456769836882502387354935339539618007796816000235700492657891969883032560956590925913792849929429374900719505451443130622367583229210440636429601534844858988486378317894027084601046616319554832428887464475391678924068418713657550709945765126023013059177959651313880371195458696204271260401877304073434374587561397134424968693945743765588821831077268953252079070634871942375965259090048453470912174275217613190879593791215232328760983561791262980911240501575465301116466510577878748046295761282402466622347363066108294661819928139992575177118828365302081462672058682407441562627357994738055546942124730416476189080544070282038747065065731447619720217898877888488433927347587823177445673552477222975681905585587312637726260791388538577198579069346797919258748214805293753811249567875737987709589638587707105396156391614688625754894799612337185278762389843988504679630246724741291959741457099612161105626732759188404647604660934445372395048937408250088834154568308825448706710124709810257710044139860037055390441014758565289082242212706046835492036149170133857985284050082522457821315057217724330638499123702122214375553328491677607171581423121363480415602046903273535160707188698337406478132113257221884991314465848657944641297929394833903781215669020880715071651015570974192815181305499658380927057197035614845422210450920314627968389872741762627695843363376657439109711561433450481573266787863512201293837631476817164169590981953184087718152405624412696785207885810586964180098900300725042514471572236433053181847491384452053181874650781816757368178600631343562895314016913186537149231269128464084821968212055809793228482430885742715409424490561984148948943123710698578044246757465082936528718415233922567698533533389791612639558989017991797464016604209060048613456412979877179667464644641013667194536425681153625510601181461559319213556545322458462512420319125619187226282598347143454470659003761181946281826892889938537941662469444584985234481810788171732891848464657040217223066868183483954544349041632130088945360018158415226815498007166367906025369511886496335694124227831747482944974801463638712031541632285327792534505007798500803535883625996951339287309858970397150619310960375878693816900621391688355676789672462161146211050343245635362681326704625583077751237178993653737438939812139242583824481874828032683307953295966153136710746013274101395534820849405249722289291942692012926361508128665701645445377165499967493623213948332949991990194252935368516195033030848853327302463772833277210818166695211081793875279176254035171706681605657753075789224296233140826045433010735918966613402250295989016504022475191499632763810968746662050463034304971868339836644175273521176228964530996541340237835768294251696185059126408867044931364423316745127757806940342129276970669912776855794629747048021768598992712842517219706126019989005659623902501517160544408765957093762561962588421532945298324517293086423353390862472014616398855962718266800699129186350504180096972482495002722231064783146741212241320726458835969467027610689077164287764495424379794357884733192379150349571542452386080142750719758495608237835805321823610635441907912930098111872131183469180350579546725292327114679636638702260712196163160303688361937474698481147882326045151364539808305367680954485844503282979061032268296153696366461149601771075514652960952286143986923452689001269353013678787027758526687014854062592459862223845219555836841347182032116435147141818384037272524013522432720609809558448021832111362429900378657968517733814535774842744537216963161186147218227781950501987038122451518574145861026425838396001404413890969587282461448383233701418710108426211005738469239406560206615889038665466149052563349865540225726493083451883314067798691666527772940181342769624436403712087527829969852264897335125797489099777419747278627896328981317440881567809284545434804093126588833489294674361032795212718228048753492248170566588569223624830570900925020789753286915107197831753820628442996951994002429295559536822926365795291394030398296762178111122142221919121701045104904081541110641064388328417217359617110909069702527169337933720835412950993271896271927609240772810256024207822053025023222258913210901244186355817942790147934985175701793814363980885753569560046338810360572130177708121539511043587430846483679591555307624697402386995297377086543159664972808300842576830340313455193133835457617872801895732273852909684576996677497082522060208998481221697328051359507000537635431211268718784255583507881957738280651499834469384102737366298941466652092378216920190294511489351624702588675546604095466518408556805486644383242111732212877302989279760071396080492812749759939533097418164660940414148682688863749289860582447231479647510489987464397807186213430094613919969395949770497022467964123168117770259013837187591753225681718631314035391800225071301149207448624979658591671143210846646830477129294543184420714426964133938745080698214942097311650131062846487235015204742430538310384784284443014634070232436032747137546055636677580622941458120759761917421119215976879313025515975358496601174003605238769127046884502070508752253410616908541696288507362133106289086771616353575438538978181056576350994408456012839296109931564821992001262752694556724149952962710118469095549919487000927593963338138167179412526396924384834068892894635594529435887306995561024601348873177958253765095290356539201063469523445636813626798985225377738224541969168370690496872682855025400539129685466277047095585356155091495121128247159614819828171990125547178006177043509097987427474897188435031871685575463890992791186788464144754859053212068637265534369984988996812326004171725922167547917709553033477437016453242595886508689241998174260214478207217012796462911335275117214674142381568501732335803220745111279457291927445890773952520192299378388699835750273402373053625633418802480375013865757345311801597471805053450054341418865404692276377483016254321937464172510677695888721741199746327194285296422546245121598451118193655824551344709262181277198921777586236713879454593028292437312549431031623401215358211386065578143707244880803729857563935329172049289070834917233461714621230854000040912526264931710224059768587166568898265053773762998801742494937592097849864086607037782734783052039705992920983946689972010937443811349658621322012394289972863185712260320268182103946828189383270669858925983426924761812811994004476968232646475068809867904809171996942549695486230158012452085448690470913213562462779348782237192505677215797546102784140109837793873680720829447975494263426775313953931637144710564384476196292771329922795829597094786642138578773406751064176328263812008292481586015079336494113489212449272682261646080382659224878558639893207249594320718243282135998153197364459739939130420193747878485297944046992765273683101538413631971193766643988255310299138046581379536707216809767638782439670145697871546266136742387370401547444154450808241988471820100685569611759379681669124729282175551993474578638172672295374461378526437901377088611780983744004040278677348714920373145209781700214903427255282480301460077702283450866667179807263158039194406862741600488785165201012845026794621391072970507990017723748353914985317449208149063622026806595527071549938987665085948878823867012206742869342537888151139118238195852444593390135279324421145536352292243894628113326398185318779476687718104447599862108287792263066704718415919049322612143240512246798740213022624512432534427732471246507554172245525910499868835909280824273136047023019556973574285364614977838079320511448287369682658436195446795273857046113082752059914571031587319695533468850962088021509796596312758890067628548766291724520346086199825713093507311452481542709060066397306617484912450134346744115809619752611043312573770559163164702521261795006946942156697209387589386280838752358995912160739833352969551079167192393924448957162396771168866027408511655862850609057695524601708376265038949890010758124892401114714885369394807388648047780959015229682141116043649349618845513310055587702472485234845261424533112783417333922379298762136374085186345400867322086539112101688135087317828499814058409449380177883152946998426113381443792056744125259972356165219007719341196375667444379226249547538774251828896734152749654647377129677424478456287764357717759789457648027979546624162351551334306296898308618449918164435937551625676623431275677205110642567586810692854991880551815070457285614801968025642760833932476275664946287329011224828075028789180400392008464223324334462164927579337659409622092368670753960843962678195842182108769858661559131654704158478099571411481605057291857512633941613460395439900041451881917899713275311449487412478739445453044564805033616551467685752629683723581839395735326489964746148467178614732049006586072758402688109935843344001913215072415963283612081745179022308623847155081462495842329917362626372972411551185271004223302073232583121553298999971176853598779916764951629810274199281107156891762762446557170465787803788523892240854059596072206276549287875931272502023699573603660297998992871307537199387865466251479381716046769361153411699132920871711473470230667303005654769941322671854679154546559038476630661371951417550392869910964893890372670034247872779840614100099836457406988967715217482794627791100644526933446790570017626500150261024457589450904072517136510451327339324293117359786039159970947087060805403578078862255705623031548636245417199610249532731617408757371599039467543906372462111351493881869494443330007701688425951020357376137777289035960125343808582784744232591002666718837727634403641709760447117328223164806871300131936555373765602715405648929074875625002353661736703201955769936911876652852481835055022076311923396524871697433405744640061558891726460659989130637418329233211002803639649169391566685692846514474149012464053691467578047813704163621284451633495718101562961090916071072865852912485296091649448933284236776331464484328760992173025089678900884626236786284705643904852131296719533318221299453819075425458254314884353721603699984716894925369568657752019574950666650647457057468313483834483270596899952954863477915155717774038640512670727154468272329033297218110808593645751258376509715661424546615092230747766916155932985610373534229502306352311934994831178544473082565601108200450567705868981670166051524285475411924061591802288828985866467928008208324896014932787433871773944340722562163980669837435502142088510941240422821975396205581845780511837603366318216380083039207721022415642232402424983150990428767206869311761974102854133063769034715416366786871245822235909282484174535880873403842373229709657936819173686938040784500576546143337649010314544568798490739812078398336055423211216397443331195762263821178392749433118369682385340695662518919840275854647468107032478259358682482936900167131692727149900947749454439940678604876982394427568261475011489008528717577973925908221681617555369246024247649623882063152203845156785403070732620219799328382389602000415551756900706108486726441240523661382422812765174285314764070256649333285739210287997721871174490484645410943314374118209151843686300872681536554822584219153268553877268200918206643526589283556871458498685428155464706438922961810284124110666326183788948673398853267590317420426175486908653444418505098337675274209365232729598685554683542583221046266853843786134975051873627494208497492762506137774811418403887312343514093951936125962872681685663594205051665429905042482863243555289077406452812475369400857374036148512231180533315750954076528610749751675833532719376299006218043055458860263540881984388143174436252700588581698541881086777984510729269319145174354548417603363646664606624799635159568074094757531043815781614780466466185904544839567897056574245450743030437135956938159781864935868685510605644693083612380174110039350093160285713686893037420323040892525921528937138109386641696544355994958226151392894530036771206229090878483391660148305539939910996035785265836894406524518734776880699528135333500497224496156461113425053317257989685458473184915587130647795655750483762140554809441918666399299472904758590671594553689517386599981958551468641096587431498401825616967321743491031650195385130311648253915076745976331629630648416429922825643862924201194835755261887818436220620162695521560589595162854215856913955392543204655568801321929757007279589109904581723598306366976551842079895105201401922535069112734993736327298994221265413902924783070629265843085738447983297929164710587800155754951397597862972789437696063431954914013340106944674156529544823106249435590259045660494909861487056173838613613444530457449196482498647649635691821188635723078674906632483735580582463794520621352040749465373609377499835779981397656781404717098102582211847997796806660486528639082187443623220502390268770349745826467989474639488627973202422881088549751990709011557500296932058097652448601690750762862337162613454173275790087789043576434637493852470702381425432974794455049164498629282856664188303449906267229917495368779463251904109008744059490643492489890131501548486731160108587278624390810373011498525410527654614823803697652846551232019747050200214581646409811018678622124830773403689776016507956501578481756489381786674509595157101747218164945686745116009101634002408794432717582308161227122484226626595224581576499919500246591772829856560938462581441266505857618567958511220695209097126021672079937298734418700685234772358572763373872403572722541000787077558890683660440843511354714439141120871409515722179999758600192399169708616236469667717614023550896663424203744286600703073670868173903399066922865284133667173959705218039700285227995962068094614233639715709681645807323446585342388543410233933704185972727155537919209453359418461808230325072771396584866491971000688340504989227147354221567400176395686262010474563475259918850272403010178317424484893853016019794756584700519227544843245516938737111381365341866604944598856643100537956860947177750931691313136133233508910255259775750210331682848051680727795197598499421879533090033661843647696535820417474638590982458393561490546765266961592882660201980411556171506952993459713775693919898384495220906495329796872666521425570961170017813900672915867558319483423467564327157610954705213906730897199232551285337676790995754595078751401099629604783147555486226032181881043207083058067860567390590165268334372695686250346464225221932516069130253336485657602433899819504925674865803862104605548642697315860174400085801043660412860917708806987948894878996308581409921900498370035339448482424554477416315701455301383251684990134078684422962490992177064449128625786237755989207066014225944470342926227541913782275704837022665937913023321851595007418927496032887785197039225010447621235903438717785385334835820433211878737395879537430079750739019156519912303813108752566057612978252359934008844957463928172699099693902450310886871434916487918462083026015062046774517865051308622009023921618739805736964448312055080130732077625321277859817050683122211678712403083015884738277467981138796314194779169641397804519145505001804519983490172625190869061596140564050155034583796877459661801992461956086938422603975243113635025653427102025384105996230816875254535353900238360611220853785868408123546068192813818538592598010428397588432680725668988564591707220405323474803877074702984012574705536700686208474224720368289581407893177980836301753823354184802520058503093799103820863228629791270448568489890192219208986795444340723585802905889223910875379837059312405732084214938924402308612301319168468025478460509607066111973347981140560167356971031421108272357481394684910864863798634275480627321701599891284532303236017211279647587760174713205475725027045729747059348856903614132122968550372335514121432274387742783083548859510351660322480247366270862763016305735410300681531612399026906071132264684191176653998893614926224573731432576693581191935823409374341072025158923849422015315306158518574140555549509105027235251712852978265657257724224648933143783130651450549279717829345123683740160103345654714326017973967692723932658235332164156073092704445370186380067987116754554999156114375711317184944018284767146535849740291463645642275289049595319507996629427398963772654927393566921717787158947889757484028936969099008498405683891502389558204232264467617735235010394748692777811004323869995908267864062608311284498685466856709993310982479188412378731961763206974790360165245777895032561268408151976272528258831005389084620728211102564860118239035935737752394830693148213114344587676142510661791997453395797166726898407530631725327787801909275461027760746998382107365475294489622457701261633665540111596427312766105348053800199887269901246849354264221250170480626209689495712332217158409935940866978818406794978504048468434581905724408164247608895251873042886091301172554924350526863937610334589986314810086281780946243688115895068653321467683322952173853014407740795002225097922008550090041002252819954950861462455066944388288952703850294719419290779214594842535974212724302586223656448499814997331730548341946770884653421460852059006358439074678053501433211694461858606235973737354114819561114069190992319496048947442270478939997611372555820657941072629930266212600799241366887130540701097940829148109745817764469900778343738822459841188016348859951300666980385735514153658520211374675041910547184552739734591141685334809324473908861180422946360009627554544418656108305086576652905016007670104564492705287198730978728829439581447841629117771166699177505026097854550073374510217641741856424830043704348124721959987948143892895354881292494873897377239349646626410152357904886054599296034214030439163883204683497521323927229073407252856453150927512839314098513584476316905079636191770680264285362082207624378896618752480522752568551249975046800499497800641362368568154963994946690323193484220750183809799289720906480260078262368788274345766779662140891703097862264169586886857399848379726217580174798619997910239691853413781131505974189734546924019714749485171420291840895974846160516641189298414702670080807035420393568268030539370341751803432370488747534224079098362160093133584462082943736723455993652812467698343883271764638339577449802742762254881491637307731079898619071620610359976761641246774820718772003927978486360447852882305781395243235712716200509120136078974677533684681310264173874528668767481741795710944850165125643954803357264936896000053066840322461333503251665535679059931120860825348440082562643999439010359105416355720965740197114963522473053449259374136666120763296245341802929110837692505867987476837097464421920000779366970713516895255796031256761252026102648938431830254936217565258564555909319669265262527388364118370825918867017467039285527109538211110194775403961436466354991090115127952775134992652933708303864161026387965018372181418084963509474144756918206897215493334565080000706139204856168298684087094356190517083019982675791898185975176998209553586394773777494584751939630822356384012792296174976882013355829963804899136736008884020679434228215400281215844894865373881139906868706971750108304875843059563398576844310022205885937016022504995809583640252193713274784477356088535394058977536321412605667764148006885101323709884481054785671908327434292526956262443142876212791172135375613627008739936365573739980437782104521590809313732484652349456811740703375318540473566571871771348473200482789315185398408320309224386900206694340231965347341802663655090201345262660990417605268863806888272174725689329776617693447248592574253061285501427222691642362080367958736740343880468571587810273980763761740152309379972482471096146062872867774614337869015210301527377643839099588720899739828447825943926652328230432478764771286107461083207498298475009408253445383293707647046314516362808764375092377785164048203017157953585334115954416139085721543991827351536566515375692024884916627458594046552341484748802256485874117566160097458902299012920005736061255132866060022473535702432985376811668766987469790124031229364172466904940771445366056460140362035880822789286494015860459913453280393713619275033616685328641469548153671895590447648517444157458748689450086045831722877339759407788139236161879371114730287645373913867740020246625221569158007766123652760562679740291985030262818993805353207986604849992335544330184664369885055946760665769644459974684747860127522394437521622591481508019394240112378198613327827606819239409234992851124458158679995316089525589345564630873884931959027137967388813043558744021763506034646480693773379389013363538850510078323128784308214993370133136324886659917787578797090862367795310334008892209987493004958447497667803372919329725139587239865457628210649646567469625447806008508973027761950791884519351096324368111044666165784432483271411486418771769355620987056733655626441514434485305625732029319732745172463212737144069714494016836534440909269971085964014787103441653448069615887873318711555383234204604908175052576421652065335704663463718931850105568490247893014913593180237950415313507613440182032113078653708279624616611103977900270521104041350717161855865045846453762338527843088705359627885041195993864768195472853037318400918954392627514055223368242553021468281354573666593431183297808825039688968746049599755563049284410436737359882107003614124363273590911524505043294620339538363273445177811543732572947723020938383789313406603870494545825930941049823889395511563584008290824082529577242986873376549171977710774151776008647148634811315064523123430289386220681493879166374870005230910770616458007341331519694130905760073454981834219762395870620336307175695409586739123236400082501374772586876149692518095079320732309486132997248910748664162744198508493067287751897262554453506159353940512470899665598683553975515043368555730075737183979538559531758182928166501618572584226538590456603938557261399422173828457892972472144312641203347018516616572717925327230820275316663008669250866056338263623402666112496681160117088524628825973704504338323757240213482844934350062257329334670315647849168079520909981325120018648120965138957593899147850629570189020343647680122418048061360907739309802132963392153642364030433056720821431205579788873708254639125174703038068786466311083596121782195127571054810024568853793383660537886440560116011281502406768442356516711228074821906332502643220623520515180953276575488533795835939241139000627874688177865299044245084360264872049176424883909617509706906653199529574429737671891526335161378182656757169713976718909455617308124441244983598259256083427726437743166589707669395410262804505563204762519445771643744315766013782286317125903146927270359618896737812662716001875923751203194570461315796026383290195136339009005074670551654536179379305030145400003506353914567508871890762097133150519981215683368609860698123090480665463849199025288290346153253038924962270623938464263904397320108749717279206349838418372118327038748809361022559464239167995730114438087503995499982121859839703994653603073846642134286670204752972761835302502127906181429269398934256947436376655969046757962283880709166976183497753023881330390339633680647042194657893661658467268457766351490798222253125531842235352421531017973147660046737445532995742324340756607781096616149982302691742741896331600361109209076681219790418903049359361883314955164076142179247975401009244200751083714108031537337269342104761627943633077337170732979632278481270317727500997590436353147723871767335007952854490255157567344391057133848088969896426870032462818975806757437049140847580636587844470489354787259197225470882011821473155627355316353069140436324189045501380277244755323579513955458042805684658897677015734780475626500320709028504555272101524597395297994293789442171967073385768009018778888423246456720895772443920285301550384245041024759049353956452870478906487201928692006272793437854925349438108703232929583589155024796493228170553914144445493059980250469605998364530255049935091360239831103376686062248479808161066824567618855702111116401570400600578756612332817517150094299993489088310643069898029226113047186774300590396407039615142525266960638060315273973836872066676396839054867534074357339342928814321027369537309126497011417102268333635397748956618360893754268942847650502593281667733441476549556098625298543248483705910611318365197812417829584753630255553236457851111009859978238565558449149509351206411023814206958823371694597904394961931923880160805749132894584746570504016078906597110986374095658414828432279893998293409212843352956811342585438458761960804666269570666414475559457900076246994131543413289769123464484786378247868975410454430712725080599326463084336576260435350840330111048354503151780547425373980239913425337716073366333561991032596149656324397237806221396934461617563906080651441818705030290553798800107119935957546903955513520274193843369487427641739284315223836737126066831212982733460185976818331673049543266087339868624413094993461196065139305072980485403255526366262000973700809303896979607409390403050027739941098253453857958421274599115997139245562950161261484609229750632947279438889630603234905336669870416184651315247705716541638677891328278926310053578641796858162774958224039611589423512791914638674447462349571889946360935141330426099729632364823385590248318890321500419758964922217579208882941230454651390126571471453764504693707554491935925199484663520333059327948318075717622171983852550704750588225530899495368436730506265045586737303891900899668471268168934168842682038264798032270558307537256611945067746360780313834935163757022664539771081021680024313011794169020718188421462849691438876329502246723750471202139592159838850537596735943861592847922835052208491094613379804156053859363765451574631409090628412146840297314956888182992136099206214043225667454969079903916044880087644270516773654158240427253095331459469125612977105650758335544569170369967223640205151142789955446900138005496155996211237789419675238185016231739807936658014042638492725086653539789179809067546793560300631322231914081780778947186484961086527726464714152662610545717792600667411498368379945696634515662369031043748822806734847561569690242168499170532813481032594220796844254530918393089316347914157286959902119490276814082449659786273871784696121641183668746035197369242407751163138987366260054963670638898331805764874569543543129011985036447654428085250439848796283658657128203241800925318895573237161213617342070503978608480178996105768657792830373202152829226663859417826525441816003436312583487219959019702779914538309817246012082484922417991050058746499754218108108773301486873151377421468479693122665119493336491651058797606317884825662477084109079211355140877336676445796062748411479924962499073731364030124177377578472588283712674850252034051754649581821831914332426130745426962323026543696445451230570369557758704449696360856419731935129237843920173634475852998144116296995255095211570242197195680543412627783982497789928194362655567477495578491226480421306581120995848629367845668098620427134880723712123283003193071380381617398234879768571803400414222278367200074395538243898129775703885945447211208315645275792421790878698711077298878285333169888919716963701561249043599613779709863933858009155346276798184220453114144925851270673415489452568352810525799319479926181835567115887604703801962647777117782258506446848024084966107926109786564234489243830306377008229859424084249822105524695994425706036106096193054811893506054125292224840231232552570824155603488581547067294879925104986547894394377110226563439994080517245207719205178550875685356019382072766491116173059617840816799620168132752730123314247223565680531374074744959083402963173777958975857667211682833150051954864096134429763618731683184996563304174291825252996943127070240703135401734945585785369459911460028620325738383196751753301988221591977652169173171368116941598507727825931757451011774690591972093801189328790605110132949556014187296455991515081251512907377277150096560999232784797738040933498118131182925104582915986170282947409408407858649464858143409213098073960002823232123075697813524466922497826166429261581169944721036936962501616623436273762096879187624052358092420215466253677957743987535560519542195256538720275420134950563491275487066348670360704012440602542076530696427693667545159370300538650901023604863265071088539436189815957164360300568095157099190494725033314464943192055595240465830392650097448827537323930409714770008984363291335214891582539985305408176371618884954382986159423695097454516361126479062872448486348872561919963222400684187542491943588505346117433206399787644982766638331310721027868363576693007730641356871310380459959892597833376252828867038920075351406802479543737355139490211115933692919827515623365033611224514372583181642551804554469349817749121662437481406029824348163031837959320117960631045774029800077173310949680360918647089604220797671381835563443412582688152323878722503348353271851941772166311634718392725075916186050341871359612107497328230004407605675702465239657503674414812121740764469165803612715298723498097266240647390474688583995060197093874699407958835101658781613831594739948180802439979928817916706277247635545650673392146220862339298016786791549560759927243454870687955933819330706672652479315829050094023521909955543698341039049052871739601774592184688735063370706647470386740163820975443111926790354572653184479835394160212542956146117558785347546064628694249672066778516126182777793232353523950687216512537863769049090827770461128526481341832148287662082809604105943511607252965236722587482526998219248367107021400007084135729747884346439433619330130597090263680184189890244997017282502231511323874276712611930876651281951164211804734011519845926351645163075724302374639062280193793406672119599127272929022389079875628705533355844374950380163839218620988623704099066579909597465481497111436715997756937876279461706949102788435348557439105420544913322029481690610932043741876125271075287336180206589069112076856872522048248054422161641759979506452846747820437612508224981506191807313151345674828650598498714724732789565500783445864187373210737766591678144860125957652915840460122472046407430823545207164395939306245557159227608426152038521838298740885130908051261412213328885575189563950337287557172232204094282587561706100593922962280032715038728181624111087622954489402141510016725653114312073121721465351327621266429725555956761819228444326319616611959593932372330081616681747533848489890713351767441941657920741831034872349841481880257164615565453253553646286864701660203561116519015929032487422625192446238746430356307097950339791529205814591108455202560396581478630012157117700939082889831465872050423005269909517438099889433362762297737841072117374834178472943951335346016985742324948997164156938227323612989069213893617768069621271442834218386564744034035380042541355740614357533942465528388067021697841819086411029379285958076116192460126938844330846784339838268179762097224662094186215473354014928964381753090686685890437817289194447932403789402888048286156612814764088289059487155923491203852535697914260243741491397909518056288385608141651554227375761579226860440447875097479124411571695625312007657324460583620504561302486185700643948190316950597462275271534740901252183718218595512862034087345523947001903732754909698536305666645459630292578740079070574101252141457996893444995177724684937083975912659848745743004696501932313838508717314652966396582321528672422096795748994795301528970897971326328382340152012306268521203420745060745296507630546836817050915857684181957898825527314177478430588411504184095564187300152422862001436577448944644246960311300211923696209220200367286643675436178948182528324768738479043549453366187192918567603828849075546696698688017574470977698683382152503000430378538083391132713732864684316850409246892243785807128519710719274064156321114406206635966803379733805133987762620552349165928349030360519444331283221503229633342410918680314825054262417112082760871039350684149324662021451939117325590633052353081102956970725045792053577893845339567843242837900589226266946680967858477245050542650970390336461570129535894867380558153484903840063240008817079745972396208441272617854286872823802481913291987112290180428319629462180814794758264171619649673231876225549762794896682000189118228779333769710376492655361501500577032513379724813001653829217651617878722660768348350380312386232450248600575334725173532471787969763330583339936708384367383212318498791573461998645230191847651135112498421904386053858092345769837500343088754950758774368100149249258065556896712929633380861931886652823225773217369365820664712389012099864224663877205816310939750040996290696561831905249400957440335832037582507423097438844072418822871007605755812322045042216971909752025637703084931424516023337688552159282289912500740392613201856615724707408716640018065221762044524595714256809801346303014783743658896270029489197699181095716669399661108996677254561735481067815689820909600978522956888289988752419713338467842960680761359707048091168331763580650146895664484248716306959460122174458330112836048387758018310483183773133880675624230382784028441489451118939187526826225520199819147647740698109225763265017833994369214547823752546750210880985156172945024588239774353108614347598753627396798233333757546590711100865000243381825415853886900835838483490099974600974479352201296955405287008788713816798526887423994920744758022905737961164344749807777795915539812559279207125352849929057743996508548299200316343265249282203320381366797822049568973401660478562612978662753935999797799909226458654323427558210537894879290730911623686618052065368862071527965625636355807309075921531685084673023669040446115471191384177642555789746148328880474556270223888110595177712769148706786507153314510197349708134930742385337735782750868174466625043725301911872325809647816020855745733414280059589772518059105915779879703573302285475973666900858209843269596648668848314667980616530183098002330720614817953782212440577439297447633558834695523958395997484272682516821190167928657570659842272644880054212761381005595321779302687541873588788233309447201623050383283351351999924351550779730531904947047408815494137639342283140847991324015812999904533938853902216943603332909653798489390104125433574186631927404926425695582917756567416338149415532764827292627455588703183718284283266445003081342850559530054672049461913769823035410901208007151514421419869953335262881350553771331375650991679346051689934535067970507683136364113496132287711967337569849604827037271291897015328859883634424262313443610384494366716996329997051508103236892661798335790461892169249548706643234511050203468661685791537390334590214236335370792782251746859296589895838672299060189343302869427257395960566836020981604290231011499148384618332347480896942455293386195968587039618583469192580480907128813556890105381139783631999704533653909729488434025597907377995075248310161377024665587553337575807555845037653124512235159867761743307465370400287954764065184319245363763833474606900350559701545413874484869824613951993627759190413006140422721176769817501874466517886722211492255701614522537985168277088974009424104602979594934843748276669748680477885639327852390854571242137718022512496117822874368643181657529788174819788998703632863325581063510398352565865636931948850723554374768531296340135563037680004795330543771810649762906535200129503440153439139202450767675344109046534618324884696304701204618236689557338734337271067271060055179019099679589900463668171883243196372597262930821399751709498756744387543770849062368892368834883950361662363396983565920148812001650122481793750014036727396410521844163792408664446601803643440950471275477291044175154576942788163643042208307890456053268104313739885009454043483277385690735706503044300074866210023580139020403792810152030293548123798962253860586364099018085895976309057718388284550507440149290485664222578275992155254035642226861470569475599323980071043564852487025548941657300985812498800740195535284497996100962384467671205003383657667386843300991350353176924643515915186472339212691462332896435580546044580146581722638515868575746744012460194795197705995932403857924930389113232181529324927911351782156384912311482168460549166681759482389761932443910271615806097540048183187902845487575164942612792174409668687125206890854294354117455970666232573958884820006573866922291762199759488646329026700737897869849136072178158474830875863320825645581351990975636036956334309529576535365630857442725993550080300664949630997633007657233183545530660024641387579198638083154863458579260487562240199984566616805400481688064473235674138262979092627506663931220197061417155364129002807692167461563179431617337278872308869975597901069184744370625928962546655046684337973082825149902231705788238438258743866275827147751627791644771965267664546354811925225230278336798035330512195790419591999116314826789244063034511740660056327638799165021029922099406322250515512893015981394345741054693065517608202964083960426676134939800992094938781439649699704657943407804092800886325494621840560258944415215361041661450283370606469356303165031249386200038788592944473583136315198184380458149244591609606687334513695792857380714675525242344383594836328523982228081981296155513354441183203853357314594722985536915403166637950214824673992593084950335524441976012581155037761787365829590922813912735012505861606693524111938890946852106144668626051416711158020142790741118198595968049446208491716141576736305850207099094398270710035562019955851522922629991803960789941084734044717963895586181622358091343637889170530381303197873838562137673046569212269582296466087518188345125521944738205381145996222828017451981854027952363762949791762257338320551265390492971499299009318719523514551712606789980204463073440382255032120141349482324890472193101230966042211686259882402176137718065934978154732570464559719832661388385379439628833231446553035217474646393312498355564947825959352083773761299902717652944842999478457500529913871516995309234455344901626381053844540658837209942223853198043559449644097347094634718872988388873930540282879106858399539588778746615270075351609242967327203161259594430249062302935583482646514241874752553841324906525051719857221044981994046252754081694504321785721023228447354992420342655382590646081686539375721612878243716440732027486888618343894648848177863978916999557166641940323260983298308654996239206935824963183989522151249736367600523690132458210424748494489746875284404079359231754732324324513192145567413647091739058801056137496607641021099097213656827687331869848543971906398147635518860132600165457182718290197983450881104226177224007103435475745999203930999371990350904009533004940041535940506738588430205230182033287563783515723948416372821424108511493621568654405840344143104433180968065137645043507971679795740268085748354223325396113144591484261500167315306388248901087618865539421235398537910628613330607085987209031903969778656735628266497932862967342167933822179010576307075879131553577791385745452615271435840124849101411920006527002838806977985968299599609835250941546400425243378895069438133120681770609239543554816506800607607306363889415975623420084620308096778594341712907452704061505782410007609535871965007889656792839122957154043911982074199112061993986389435825209733677728266278230800053089994551785059178281558254007836957914591415202651473227474552919642540138464478052853562033437082949853571561413218530467112719673773860373906476568904065841625324043079311318485152686887333060701141466740861187443699506279689851430677176935650942860218990628472717459583184788744136588373291398959142598613350979909169281594272212825616304725941865946186846177867673698482064995092917628696948914441178895978830553120238449357110492818815725587107966873653195444320052486034128631282684825638736520452575232971848610857545829491408851860824010033285780230670368516753414629820884485264818020233816199174037810911558576071185929506648700096548610179064239155484878514870880997664905562699231038492530352840863866129929802972148753837439415279503768088913209182129599722286999063855233035885330320275574928807498127855865623394263816794864854077466759366539436044662668174581996668641401107792406770251764782643903839284834675127646979785524125033848957168691743792062324050391666995266257709465985535802637037271240786661136098308118116042141109490221382133674064629856821362089463804247394944865838751622841561895833133339557809430009606452013947680578012256641831708299828271954157462225272662438796594343011310926270167910130708970930739446740148191911689162940036874359127016760901307234077673546496921124125661949857120290744615852310578259514003568379811477687301609849347336202126249714557965263273273373844775143881426348591473432068432591806648960308014953049571556313297742892655220437546515030083067509230070878985976092098322430034713102316904101383667215614801875213072251668839450599148080392337627709964275351925627284104598724802285032029110480274278631736898712397775220744681787172350992048797384431227488948380607589477729436880477739802058624432749897310101906521356943236622864431504163613469528843205166073057731244173141472310775974193352868714911235968986187591165352173026341031161057111848617050085916646491437980205303342583100784081871050135866852815628923788205927293861064551140225719282105125175735228692608800151439832360866447348279704634496926435505672501362450942960350271823099152892641193579285821622530216141726098651667000086879818080227257500836039532388030508818246046852085809259866580447959634636205661429763280016241598958716451790850647274280163335600909021540774073735379675947463239068233127752422399632139330022078888070449275241211876925034624269052699951697185102330062792415604528467739135850243119177790711090028997562891010095400571366663533361405425554240089859923276829169019931815227258132392853977052709693384789838910624521716255207842849193938057327531322025430699268386190554593220272871892717000133866242370755268248903806407041109985608958083400103579316463318124006257674625255051783692580194553492805954619528903783614004605940088229963496735393811846859660140582719539266113890414658522765472332670503626034580714895629645286720326704095523757016337025832299226415069622055070546052990811056378174103901618385110236527596907368172378326189601984408718471493700296912195566961881672908203938055282527494728447802760013825779336776382833816409231529833612628790848526963702421246219536173498512121159247521988379995742439762790697563279121531869261744634661168066232085063895625589509308189565061838543873234515665880917221408697262577633123985738090531204116117527541333194247993016549844158885713548839651397943388278295610290148971256974468833981244870496545193485639634086359317015891923190610057724842824072608759572694963289753566089942893124640451323512765670158977183082885378882707825094729493165975204750754473988147168893413105750204087868906542737604826502849793193750778045076127391153389303422752551433702277922921483466897616811953086264075689418712816320531367981163285826522625537339060604488982405539014781765644411828761633518313868574261824009884915098854366937563195033433915570057990479535852205342701363729318961155891436695508930217916487468877856565565699487764572966219067346995384633344204199742457348270780004172496598657200360161068179453167339125448142484006364688163679041954370028017674384895207998453122984124974060465240271901920222297741345349800337510753192262256566841039361381675274483773120852390353384461484136269989392214384462698227617260513721423354676211470087966154383471847882862413656677742552326715734122617759103605391299019598397805022765030517342924064266265439567863894625630000632201987595710641852376779417652803243009501596436084008386728595652115276278410589442086692176743816481295020833134619721260298140225062712567907101398194083429050231783320756511169622766612528811465006377818702747423708621719984446538803279080446851518048292656745834128340514595878273201466895895070161425193294102710563684108340481408446182958284481733953731625089721849960801714485470325004135316966220724385318843521016522446979990838601390418157700071841352058598791460386515895260019328150052913851511276615129396413618391735503590953255227365163525386589570256282434178540953435651920621537914768083937455046719763312831282263874447479775466109118951515375231293879264726540920022410080960203327355959058348768767269054210497125898887482227258929834262423327661146074882523576804785876985201502868313984360588665821702137572006774478970446752164423098472051894084992799162139659563983176846974239481279231733526136359369844134557292505379250082501582860969309558561907909675879868173990656017980129882326531752559027119730288572299789530230982821755416307469642455645053399335344367067919282495434552193164254850956209617395055305892089574673293692905834470765864088163089892264347542821470772596759909732564810732310601624915408573443205559740099312884334430051216735242730095080743024720891683522035875925978136828034090236743636835781303450276551489528793017838382710623169667957429814049986619528956252864451877061355355497866590471241578167534819304597297083932186775421373935132208833541228234675647834461237142550356243522338527155584973288834583825034933522673341907749799167419014184423416896872157338278532036177720804185224539194733918014107839129106089851739843717114939394008141802126597996341669821696735679267267143141722685746862052426986983581199781296363731685618788686218063566051402765997448392629677742909095220826463737719703566722396783150998140805685774044803685889455539795062168453794421915201611962411615132076743214786501083429995549935976792707886074518188569004217965503897430732923120423334102390054589507683108596303766074996687798090091496640626692940407269880644052827697527000220899193909273887840709435723835155418586338584828165690609758124665693432882661581272128141776428172430780611158718160678036079026212185751498591356126129340812525341693186058282378130361068856784626145164443782307269926616046515904098465587374719138749281163383949099012194570661023444391218552470229730598783806051138408334132121460643640993455162670299510520569174625540364847225592973823235061179753165782555742019055976773399694716351671017407523418497975135329397227802231389291088812583071801797886998658953356786003400909553729893337096722311450808732695126685978703285835148501580188051161989465615772260887630154253365664042803141065093663973193779449143853644597752347560043826809944795171952375611943743890075686042709349730881059987415104380933213367935287625743585992626798847540331671623220531169675713135986122635267826418905174184501622634690091374422688941535781817283595735591258817876534380867654410300692327265756859794403918296457773739233769963035092963933668167343458895906157577208547387522034655333515479380248601957798272136118371597944574805717539997906201916676998079702550007412621361566620859362136800221237358651560679226084855254171037038052159253446738443919424426656595804536240897772748636043570467331416695368001752708559995273418727832206871060093251314352154411358329532695397635389747584678368474353107251807736677049960420116334267785871507202950920233314563684543574173413621376720026334428368348334024843263225619948736204467698540687923992226839859606847741058955437693136740582448670916440854438890963429570680000184157321474662583624218195028348472492890211763221617841469298211909321021707525150890357791531293658750640350854141202310649012377375136176427285730791547141516008284740209555710742583977354089255627588048359508075635035360735501084374207545438218052066580794772486965265025648939502065759856316565609708766101069928948053364065386560137432709686562881831796154339095197570290074099477383288802722773749182831568276403137027928118588118658772375328461788806041573143576871255188956758987820837065140308523562810343977145601792291468225082945631467612269708663064719480621329141271288306453433465872454667557791905701592544093399351506033773224774997994176072822376944958377157854207674771985630587295844863395598510395659993367234505649265410181349652674966438808913140678399991196215922680214934621959720709412556635134473106572054843578121708526842834918312635021889822315149134293322109494916714066768425717855998296388746859284547884574099735714967500819911988606634575285511566175214844137344350829031710324271396721031874379601593079909174532943099348531441204289981218701007967888777464022422079523553877095274560743259794504127811207035576382341114893446508870964780268886442333147587172593872010229390846389337751060977022613155770184632038827283375726259136298481555683894353084394782995096424973923799741711293056272007012187107108399436297514649984309188374244741621093824752035506518602751897865228898902290897193281884387392715011304607586905284849720359583965829006773442307769640602194707180506974378913924878930566567117957895863059904053547350611672145705878785982994641885027779723902298638347051878629308720325317650909879559550665145035745782746518376086918885108618493371016342037394392674774872405725725026382100463857357140092525769538908358479808015301425488531726328715871735726181271355955186540375337014455443402257574433166999211560033717046869956741373592727744126846057502362917806102686106961819677917291138173144928750872859615486958345804651573772819461146513075038766576345294765514477228241372735264684484916173252623176294057771862774210070967113399742976802908489089330299142761995422317144099977426368176013350867252077080853375397546570144560192271766145281504261831308664376098531434545523222667050026670179756364974315425420294786589324633017298374638536297174972266222558672608504300462282463023128000854364360243905295917054147308266281186878449145833496932611001236181675549962065710409220669010914971795486433961734354150647466951811850112079268588464735224704583670237664193086368700040111248177445139485497770443503264314389035334895228812206529743505185180187667373967282044599859832374648058801115555775601989785492716726345113902013081241334465064255633973792460108880455233066973926561060022759677435442418011554736968122836709751432502636264038281147455409246332378321279242810086574964838861294091438674337128174734409362989976943473026151418559243886773862303838172691400781694166288521381680877905700358878353587139126142165871795198429005656483084721024179146862235828795930323347538948454697038806941989866161836443296413469087150310428844600799980503174147794907967174619695555241367443062497321295000856216549841711669326660855075047823149082618710250573086492105477096718633791780710329711972504284849246447533605226410934737499870358153810868658866350033419468280980120761304107856239893251481714278891880148349231304275223685154531117299995318859817696464712455777776872383431332777577003186359546209527852590065871412477922806953498198176332453711276764958724853474358012712019027658055731887216043848841768217009154959239559735027555076617200422294934882265588525708926728920556050610546655530490816682738453491073183131924455488722601478351590527242792450728117595034951306156671349008145043517348876875137023159542752498519480547179695968853648299614300662706522919093018458533101969208110703522639873335564124828385505996516489344276265448526239630685000457659284712774764817974372565805312113445025505151010748566064702994889738382244377108752295742883041532066049104087045624318540931179394624197479440270470146649054403497426971267186667632297508114611370021072301773166301642746175761187191276454879113316091664074167202408154730516634524358362507318677667172418055245066947981712752400196595684406572342948382918459679979406556954584917406763873559646099960617641867788536895570705790180540087894470981933124062432580128809141603977020645168857277984928201128218831949603029912506457236313402281036821113878400079927375776649658444077459748388142827278909232266902817184308233263988458144490848655906495020356927978868897932801483284200926173862377906979627090032649687638489537390979908790431582635273751487291565747243758912366246118895376936400152886889569817746504966242304074378875186142881050471599624592661735928856159674088639587049669926718419918392773207967397697942396664792877766158873706690567120584015719739543504408346967535822371579365290608035491757561820945511057758109898348681528454274401252264340227705745361880440435547256133303006349536577684492255328570416946397304894196860341048553985631509736380704789353509524061289664223283787136947882633290320222086326813355473796713003261735308512888539884182418348487995200257830966519955459014942497824724992238207752701320249093287141916235038804284982474212459011098828522659562391539278703161448578782042850695287158866315033038194171920731525094701595081522174452014801445783488687101092811282123275854486287074608010349326952637272573296323122064455264994038333047186000495575408143712343826913633100093536273606545909669866523552648729741335077038566029282438327286081277789434518632418021514517774476956426318229022547134834749127138863505925024618041093288210805786803937417428058624079619829836358923800918684414365706860263502315707351468372955848730511980224968148748062866586411343682555017718129743313395568609134938941286570590277170115191527269490888599754079874657718294282607616144858740134569450236936447427692918122310460426172559247820289338636244013374575745973677926919046233595276514439803340513227851934987152667702974596226043539149573803777028050069533988543350894592189067165353144089650691682596027918811577958325507538348250285771771794631392066623423673728473823261667107645497311922762688442768901278719617850495808050242893626317163350750796159157019779396925564542305540820075268123300044253161586770657156400532572134760228077033183668377886537981903144020617150935120427154070807183739045070222480671282601103550563168801042280349467605339127048840179341182552313055253675860983771743620334706264441361259107042556343508121300511333786510260595538216339043116019242297957992663929176071949045393686795939382083438453728031690493983036719354242600793356978327570258633226650973917273170579547463732303007212118793366671661988332373786638863244146896208926248136474534299504429521324620222724446607357139577059339692545593954905513493145761161634565980971949214206098170697378539478268488999367426807734560442064811862246952367232383850539382906930585049404835526009938737294263841653746104017017977920838162048168950049124403759789548309418850170618281213105347093168075987341499617486895777414051266096551704411940712717718263423849174442786901355423171608691532316222462630680044854031578794122075560074800527599458084359359881624604207327628860413360174742854853614868304466709839770588957196769601580631295860339566382945363086417423478958755028448952832082171686852795386957782808856675577328785285454945426507519987911358654176488021163078078223295143254475035847206973730014078900487327006626005017992131410353501263268562548996966592760705664025788821551818360554224631105001720099201545227779619310590587570008569195349672156168673321704093694333215384674092473326634672213082904838010071004920554982789341532414429107761267831123749588236205683749087915342243739970097391130226018501310393778375732937329686267247140113259574244358032093503772377665830653728219308857797408604617541771819611785594581218466003039708176080544909734355822040934051430416168561320122567948097155233446818841406053263125819574930578997347122858272399347973697450134717748362241368301053881245458651441785788875134166524056124068267064107604775654744695480062921508623035962389929193173026935793070825567331134444762903706066176394976762352183112257421957854250545905056803980209265678823227325778462762345903366390131252139944047604965043511514290753583968559973697837873534296842543963582213786327825232591431262268017054920449476101111624590710205007175307967338344974104938790510892620946387833554132063985064787281064233823460310875771221976630117939046026717818987703789148150919148879974365174788056998146121178551421679666353675930213976707106723056457108392136506173813337730905318170955262275016084437395358822521311330177949128518358138460413878592477671024447043829550138812363664633114668143090855148701029418359500620623428362839259175803313690600164853497718178402532072811979022885410040926466688779228062562708010350750009120784617123655652112257227547772177386098315989044270112413859879204474916396614995707633627057343684960970817694002773257504489122438326657251884521720835115215833332718419370663772348827157047314322240939409049194155532142763635909660628101527362008340388688074500167346562168133570351427750427093179119873118084970359014239114266045338372858034317570564398552477501060640791023251558795232113869529162720808868742008269699239690770244736852140845149308068511286742404304703760898230060844715804410712707426438902606798565977019556128562601119889416285260844848750044603465975484662863934049760695660662857421363638389649091635728965865853653991818895868107092555781378061237215859416621171199373022969352336054669158806302881169524793213089091276104752293389804064169413039406763889073169555716351255547692991508236662159197702117490792251321032399665455402207431082879470235196295829144453171179969783102902593361846311439912280505619047323505158858956540921619071300643684383483741711641261624939963382859780872661496507036893758931686596514914206060762742099884040508282427018314275353756326502363818440164837711017567101064941992652442634522288278318949201701312037487893321132717786497093549518283489512323530860971168737980721246600615889871558973657500616726682074541526183852428870173671666518692578448676946498726438075218241197596868427461008133208919716289941073660794046871820998717566287414485132184020899083743583806486923909981699085305085488443744989657683915380542515018382325481338416904778956897944755150522067276279094265663367676949578130909360414496612603122510779968154418123069660470522408174159280390489452635066532417513346291199350385611223307282485808366309656385092411261426153672604026006324674127530619225167390509373630682339238764487941676592995209411225518638396235437782908917688248887546116691542435132744424299227587354640128112736339243117122905284743232713148164034123944613681755884117550794530807891977236255881074296382671006751963693925475661570609285736762612452578760995999429471587503608743615197611830051974028274275780943233610564760508613181981852093688688318306576998896167869581667858379305757500987777612965058410963522706338400715980729018807969353666319422570593580030062110734645285269096146626022322187524923479337008077972797259199817149451633250743781778724561186236237810815615211472353630656850573816001697336626406450311638935814005210965078116234958213029732298630469326096581403212978487928974338861958537083282248677106890878500461213671170124151939847736078861036702699923784227220290774552857622157394546393853348171262152311684015547344616443121026679202481163287933749451603654138849029433097481065341359767334272459472377870978455179614345692209736459413057384444955931201587350353885161619906562752425423125766991549272930954499785780433297482632946569154411824736479074115155741805137430879478437149715448505607571704462849096289562405924467807792256403076024997875900588926000083392438488854008734139283619381545881543317909477823505869097641703197515329357247615565933324546299583860303645159122283683795508681866202592396823874534094949272602809902955990289001950859069176707418492329588768821048814280518811350126935506408044299860475905512161064104132499305013192023973109534109018128935659312665728361784393593782668270110001509647016430478862208080124054996678424352460660672377059401542458640295362457753671388872446633332443826931470191964369247484150121037593586393668964075342903846580815299460311530986319376635835874905751993280187893275869078874152228962264423688281877147216042875760289277717239292648259386320607163820775716040147175002858515481920295026556236666371518336321294856221827335727673264161926115029186746634776527422610792665093532146313964286956075502539207904212545121280774593572793478912270388551665787034534187454110942800848868660168301770148346443000790970764003947803013888541588626643918915843776910755527788814299695045097005489917006661747101615843237584349295669322441511467762488866520916517338889697266028082708495622341193991945969464984869557001810144437139938183861189153779402128073555355199387764131640587318413672732343624289688552833332655318904211922968579731394629776752979826687536711551004168206182162189305162991911498231853992449901580056705496318070899507902997181456158853437295402547563799800969630416598634608262616111680087918572004909349347480932425372592012029584487910084175754708166819822055453776953390032517420459925344323166377993616220427713304024394488301904310882798243604630141230549406787634033572022589640400986463329643995450682804224878677276090249373232351259602695260826851579052492633289399334011719957734972412361693439643192534683818025474916911094091428430017878976220535581925161643518313916140330828328632654797656712079238891309320047464257893363379795828029925875258300854332921075333129323055400046568104085162031121030777845728743161347406585522879995248405337208118986340560490378920236530356572760763849215728706841077911705874301915339041167051007943672145915598055816097078019075468928832140275793686976334846493955993809849543825553984703065482837886837710122443258518485814342951953072208187262497972588626334718698843508100404150092681215630411183375571957322509943842072572746691529288955059325566607315592186911936884887321716583025227148817960310413534618612583243206500730286366556799321245969431624909889476796129545913648911280445555902772362553588396503176608513306058809707764863363723575255774650182180123115123559264862347390603261951078773069541388386485364112228266136947126609263028325244687385703684790851636827609617772882932129299621628298357100886947943573028112887301358947167527045610418637847085556471627190458826806365830059463040379022020867061790614738699126305574909794708815752674528599893745691360652416888480590126055917184141764650799341134267896238390742016439863528110694960610542790082154517092732635680823510625365267841005212742546873750619412416068029530082112281495598234705964021866915548507909881986506677739723722358483720806861530677892648139707827219149019429834589016816979114824699742061510153958519345815999275513708810600009877688945426815946910843322881065570271521131526298268331608444856638668241158687618047620568674099990560974530595886309191619017885438045747673756966663377221357514809145656143499784955480772242761219311196212125353856187242174751722649960988486361008125403664937362462648873621576253974104536959445497268448585942593128171491592495506910528107044948433459326461007046327888765934352068652903733597102733463556472036618750944316597651350817281714425181351722779988847525127163027718995610352311302690314165054091939607879387344845225940885002707798443574395941993439920110885122320063932220898197970063804159308581882112815752897157500739146179402744842669940979937747291528561963809864863310785783363238499811181767749890964623021840461665991172063379012624985777273547268672324935328711383589640181793002389070897097512807991344874528694295517085098891987026407693828210554102713370374457095551828128750574186833366332880463864924586543927213879097167866233293333236500379692133052925580356083278467134222484644018880347169508759083446903010857028420287713137304319995929779572685184677030169445467728239349384245004179505384141628848205395068547197842037105800501355926357200809185112391916152677991816591213462347881842213703670826111058642322204165332730581873393174541624196874307904192320517293125990626218986939710875807559262453905326439382071618438592487268880261135117361962480681170308949110714422009665900144487545499923817237769322778660509473083953886102081773987096356158304750232384185383341663948451100576884481446816559757906144310529104662823022954420127424454835095630225612274578933414799067827591824608571301513729371466498536261562675069031197698909746303540401902014178445559037825631891958351641745160297303890060487912639698457879013659579832703911320964618952844351640260840407660028191664439394580370518909493149728701518498980441728575879431925095868404252445922617751999271653749526600812059872793990059262840020907398118629285270151474818938991879268382928494209054776023027423797480972131264221119694384932680492159746700835660606990507838685515785896381349564334910570396433313106469049714671931769037733082812683242603416627586489352811066094196872838301028033307325691636916785385098693359366562719612378068328193326293891295909372833878543121960699961829379720715290936797332697932594035495510592121625264391190821750064835039538728570821753647855179097442997146737300794276540661123587217288424653492739318787245589530673703197189870564352499187777414178513360899619504201409272626891204546420327023794733435593285665288887668987410050280032204007336645844753493143229520056955042458229371525299764427532250164482496184400894406995091816639576898451077776166529787085478836577936788367521127102372614260467224154660827647580961676617764845739182172474290581991025552043698739333312396715424365866179207876463328305404718628921612080530444387949426544541816431312060327535033311055190923286960919956800291311060160564902068974764775595034618119841464330894599163339196915477265309731702405321297713527140364446131281162444276958802353905551477099874284416861027346949328776686663685638368071405049552550806970039832478975644445197783631526938847669603358053861315241618244399769545229312499993680170355632585060822255833158957471487925445445896302337848192413227201511693077410096828624742389314984062471512407158262705099190529298576558601279529095197918391935679341336821820584440482001793256900958997929320487458165719878707114322238477507586093608634383885178881349996401682363507900407376098254334948384464490860143221131378994712008467526766269204116476745851639307981804736835434917736868963202124593264901796978778520731026132020563787270116107987487733220973965092096258905026304675612018319410286965540909314747394201074949408040416681916607108113844636580488072361460427395758161513124840998444673680963221183159308362316936695853553188479429092666705045084895090025361142909914412344069631991815775394638191757912124157657210112758328032474560798955696048883318273871372271537685595615277625638462127521738722749240287511213542026074842950878092787157866475077150419527225300553113347848805082143726000460708763918891217508816512412330996518478240330563566090788892579625109978508896861833066942924834102028501509062900532085313567586238640035740584673491898418086999545111339150073026206191559955652090559452461961597046829486578777133793431080343894957149422307609873372160796718970048320152772190302606463538038645125556132857901934789009853005008833746082993936466880077064190323615871477979351583484677932992088634401691480352312055681292413993341594042273073681282522108003067654551702700655887811157496394179788794893279836692331208066125844304632219271005686238472462885988629545919818726251709570645747182098890665784716065058043806485140998761530371138022927877712574801240946710105968557595617980193821826352082756103903819059932083499735395034228928631410132508207023768098391069719957275709162143378712136603318855169194074498380048122625946317928992682186687260587293450526850512419933986018658614059503557048700759607776420529468803823060098276817487685515818646922189514072918525888244163851726373085648176511887113537537969013222320329674084336760957809970979622292566056894906635759183574465586865578545921870022152936276182891985958294103199460641339830661006870567452886652677569585293049801575616301941366557635872496569543538878969348776802774347369979886681648578901492753118483789876147729878244121324497497626610047998963554041155471266598142294590925526766517134015998895175464293340949307410028290303226479392641266682593411068132221032311881314612503220898648966654607909479020656567501498295309596292629128336940653237520797789067932552067102978560767671176463732087718057286586454885743165872416736644515003361868305606641862444225219621194234575327384552694586416197788930563376333763086831470572372930180784820966143353430103867867646715840202881102271313019688337319772663672463729717403939547669543881082857818855791555950259165635299831114622920509647902486831314801921643919326689773946137540927276107177363871221001820528203877900652306103430861816543852159165700204133346372361377804419538347131712093064268968183570203020062538317074123913436776088369999742144637806765224812077159400803345637468298757989788799444959894689927459202106748311499330681765947144631504923553514978137757194355431278017503414604008803715471384210625038180404201189125086568468057505868075473241062247212865783838851565513030538092642518315188868425916057229833522574266220699789235052390679291538496814280615705608151021659417419799597431449227186427786857456139411555882405864735263479098061767131781060079176227166075576788300099332659030797784344778365296228716234261245834345291512925870603207326999700953567848651658771567964571875951776659632100697448474428180088033825807830830346385379923315059586921673138406117952525109344679903395914098503954456862786653501163055395724132873532861717084995424044621865603953898806768546590313146822102620184347757247163823670062639366628451746443870359938255150056282711983552382798645300846817014970376382188470614492547614625322277259705145932456373713232888326859108768920721607818196765153129606812502630136386662497824981481607854889763232733518413191369427121971014666299240495980362263008792829417066018168285079805069893509110207738749999801529884036313851138863764508906402672704769125148471729363394932049038855044904446428012584160388465908687827283000172884350079694716919266913629156919376387031111490347865523784875301144624359110962769457329371496257630446911136921046872577768778953588114374066424005042404643082132861001956974079291263348070839349958959233762114354448677762243044638931249066381217908980606387264419281261563153504193506287883078650206221762826044209904806501767812779158766456364401763166118619271874941095211067420626282257723065916367370315970222955225869390315843308205578598370395375494146924067914039676112533163502921002690597243067314229674404784624707048594506297190462937751602343977389505158284996778933528140896942596465399642822397108441789589109831008223995931292278513244902650607800793772454834331318476639482219374346591950516126146270566121300896001349245392265712662115022280730124341373647782371678350223719994988850076187525698520626842024246942992290762623618892506407551094963305758744846457051257492230394955872174687841120632843458930667283254982546946257063198939716862942159805221464915934242212341702700240852947131436269425274968749324886239374214789131305576925562594199776151041320525039339056734490838291667339139622571630147110440345525113997147293283208743113757114160050284434644184371281232147983763670284564807045748577067015054538451763656763246911933880494539598125480565251174232943679716486688025926345971181733741462862151003787516855464617877280235846628236460074717323562607139537404861958225194677846373193634486579994113822400466071042425841954591165396652868015095785557523698698510881495298192094872578667947605230261881934946721728951710563127458940382125774253737214788930073082294291711876118377507819802574127327272146732088132343399541881358482805251898972457959279130534311677831940979972520321526466578995573083127092006325595848457783212317787834962550065327000392534611453406398704534422153964384417354053088756601460811162964552453636714947505539963888809840216261090233229368480802988893644468495966636529796084248382829151855513178378669130676332758579580008559654593421081087481057615016475559896584832013762400913230100570565979832272487265120743901395556961671177682579224625405248301223095644927112395152105248828837606288268261465717836987748728881252582679492049743679170023094294108832440640195228398826094964615412447699994811174717010036220452731272675057444107546232723104151768243981834155955354782310399927699122506665346270079950605026277519709297569002461907332818930906635073184456859615798063502021493839063298698527101329029711235224811999614636245488171092687353325606998986292035557421466475394926003354785858832935510722759531870711819313178260227966159732087348419506974638792922344080022208422296113076467353234726683830667407707620411425937564044789367363620056403844384887154853728239629982645169867384325516615226922946091115350458712017725367889993042318950674835024456501750970850636754614077013079009206596832843983123034684696609120244898356608579499035145083494489388169238524667730080897634294238977342479823870921425097923504064249428924707288438311975205087292078909169944605782198192072623646087250919420663186705917304041250727179168648618107678620611380019592598988970828158646295549488591523054895109170397506811842943799061618267896864521274688113494549408577030370422428074045801204000318005445952129795133521785611403933183183215664101792591688904086613759300063229164920842302681597388665961763314715415618441823571758151289375376393529541705838360999023595788507528379417404737632168685759735860198318018790262472271812361424059379542561170986487014939639629211476284452695412829381441153694575881004923480730289798108510380714446640937194311845369633902078838244863765997258860577666085715592236860709109852695216200643309346866547540027839605779140052061066608508503236932356322271162638964748574820305541277267148892422271061923616360390283155911435905241103787342928350774165732822195665964399383955666761505591074564540873554210669051518401212083396244162419333225165051361523476586597912597806995950153656879096037123422258571380571311630505098921945185784465803173051272870480738906771240925342187446861458004693836992750164290917158534014653255327034532490287876609044549842294181093007069194439038411857338551916850077663651229339172928161321504401316740135743884450496371265613316669063188623702786018826318003550713269055857046423179139103263148773035844670153879014292286577197881943159080748347004699557433871819148695859472749552995207885208876005478226137406882612390237968317624037081286679674097934241618751822944504622701327635898311677183322442485359363454955961182494062546791864893718770732259066784345883183524550539349741062332643722305845936709044167941553992061504486352951967870568963659035255009749868316338553379210302910675572714873978084291309038750486521861269837067711966897491929461239595761617101274733456348862668200547214144422480049684673625078073377980679388638820960956715720858173320458612108526942860923568729095032884836625435779129785541560861498182165913349787559990240995158108834214473324068521939737791450541975617513746297513864062707642793726724765498007826758996313295331683946730168249329414034911487638991597820667477428826464408634953696819195027141792242769315583213820475406361805752715353668268882123796647769477926454551669101161187422008890978581190347138831493772280231755104768257345623555898652012533470881228471321234889899798925446154639355169459934979492185425043552900408140218622738276290197819081419306033600817949435521786986801082127142254412634101528787957016673524224738620861011112161502635309044086856118373154939832626843452323057703861315912067534338668017978256941317073847234443530565327546300044745105831541114608374419556787781122589935277053638792942502063624955126089759790445473708813725629675601078835554589598801064062837997702903474748662047046646231777675977938218317233269359949949902127080732907947346303908204183383565954246300643786966804472196772456449582352173922648261852208079598169777909704609263264078974458606837987051815784088215179469560824105829404701327602409457013423839498722587793617894438746986907367673681928395229930723822796613070268644428827250019035281087062309351758151692782885545238379887122976370337570985696571522273652721571617923846578056974193577952327622406388341819928296581748005302473739288184452445678162458103594492185081840063289569144863468135696248313724360394432014098649045835444766798761650280295404844699153914764502213994957648112463957380517497371726640904161415361753065128423627531008662831764552342709642170550387535742832161834772608367688177990355231158427485945494767639153460724349901544178445372961813687921692912264377060341201631492835634857034224877696329364413245414427487910471108326271575667779293472211247347959781879906106415001328944078862660399916455274434538474819495139729382645860296725695234758416266112186039959937069271234971528585003731886647116126762556554325998012601319031292063025478921100641272929764518566257094710132890667383581937459736702612151721612258491595632223817762151740063276665595770434948691236642698207959390384258076197859532484902039052947268571906257762584169600819383463406040546958690315533957949459188366872954083422919582510275622165542462797351978171136510166105340194030074386290694341189955172789880174006822374396779579751786860319111434003107906285803054893024307683693744384990673088768764530669245237008927494997583360163737624042378779098578392711910382705728250694598724559209107332357666079884143640590390335115499768097088155820005760530313900847606346214627741448429067610173506214592806010340041844331331270125868678412459689111669496914414825985690563738511650551133544713086312768274798339667792967488844893953227050914930424088642826270953285005924579581428973604938002681099026711439255995786804462939844312462090150716511007262873916287179959065486942778489852510980471149763523549080316541995593452431362621713106449473113254033171120818374834184114458519373431273059695275138493595633949353934765473801138316574317677062947589168416944085806655444024891819604786292677297036297743369737710890764852742907936393252100626526835705297809233355404065978067211384242631384642148011911440009013429392771293662229057034059571311711225080262907216618546209764474716978168914698569333289992533827134016445142058489693886688354706885098383225029004760309682555979734608160794596967579574335451986201418931946857952478658436128052326650930712823807263478481441460661202918409134081768823561623346078664881582061325622402094982199517290850493953177683606251776659569522449503593574051819102615103190024083232101307142256404276040015561829468257510231393486198392322956081019360766443085637252559162613333980057230293605651859268171652918174729306582233848768069506844168155508724038735295667262569327303441740463246613386576715153320893723801796867698098711958587321493701406860149113366046630214368982959344115620119224399036375054305999567134589877451360071202664220096489621320753266950627770528494698845767923735493635188396689975054946259954154161433843552784289365474602683449492357608956558233884850270054639250980693895314102678148695218325217737591203344652658516078238439941275058268684484857378714777494914733274019159337046005084524377139473731535058523891475453942951870101794185028575418429398388549732071880399987028252728845261444134970564970137242843948609978713176783003514783136050750336049513729561797653361602867243344759109529865884322212451706392497476448045954965435002346337511156877141455303006486647443253719143095045403587330658110425324697258232226080118678403096906137475863085327969561243903592604422636593769540238442553406682653880066896605211534869140499892417586091439463963310627850631000107224143999055099655685776381153832013465687693376670360438159578266073790844192204249593207161237647894852385024524068320967796085637682624453649767012983094731246439270847884198258307180598466821729361868382687746699228573647106087558743846812418965348311195410241929179504439940301565672144990762609886574744782334053115103125349616888597445260546531873591045812720719168870937742378180814447203177484572141816980651140946794687433459548696093985313561134277567064321074174967006886050723354541826943082697669367183661183939489391832407358104716342312661753079769731022880410022333293925843809486186398712755621902670230386041293260338095243413160383340821518120615929528185700119329893108686957437319471981970088276695581702241280602360281986612486544480911635633185345940449233885308014690983155182500832718803519747059282336685028082582435274918754046186567472790974377292956496127446617258717183000254698631731725067525897943047603119481656833517264105961227175950870432372408892218457488602972589004786931231187767458503804485136914292512452289725369020507538291762270525903601440482702854079577660995022116178463419214938711199362509563496425924126535456412558470285728976227114906729316941579873967553053554901061889603499047452563004507348596361619415777348048894292770857400554666898625198866001618930563563284510669027553383252104251704071526269925511467158671330634306349049458390841394568777956522651015124935838979023525331868824281148706652041322031389933942178307696722171334777597176830157782981656538897844882995226318421824506271451733350752563692516871477215713901747324347709815574849306999568314078598017025500322682094419713166548577042822306785448510795160921029935693851379893783141139679362603165284440367016921257721005642257916209775624499776342597434702922156015058138853793408639883913078280672094716047762677980946576378755394518878962002701867129574366840012844957233075031569102422672623365290949773102361979283419392003458285514295134968908305706803073085279042847316931848083573926374638062402260944237213558515098764512955427425024715095463708439066812250232564503933978926266265409373562600336610880476450991302280815834413225540000499076693907233182570068058439031407465782359502185016310252676347113328893125338754256429813176652777813060832085129279928520919335352640276274457482415482779502629329228514740898892343147450702372301993104432882891806887387305389048762338347699711781806639736624356907430346960026433081219851470146988553586096836953392823523933426945154544983631049663514203608445794069481838444590010599570642901906076032681188169859405839571428154530006396206335437083784629697366851720987868523370088258390928218118960802188563413511157011084893081257208928833348320798051336831914962833190088122101244241733201701473970011847021604372432296506384044796438840039327143462733712707441245467354097701934600967167311841625305747871582701407364846553481830665225710081239993840973258233539149550415323644566188494271866971237028831170607336693112829144173977097481708863457670782237190131237026133378019387874571162324717395856869400997730423849264711112587087417206593670080162304921963649833484760060773273101593875177277084986739711227908852016455156490876569352246234332119722134677812156063777092175959686626555798239600602081838102247720733735171925032011891767239449094118651849468034814857499879484834238505697606009177088337810855053712888302738779162491062940284019097310581727337529583163802284162493247025877374724102913405644588162478626035353837285017226707305425650526646319391154335663099014252619838726032155866973831418281966742188206448590250492211089059409216844622121684907782811067457075839607677392730886565814096909154201190120596731953126857331460922417717728621349955347050255564851863821555431042469221617920188645547595770815180339125204824289790702549977944077396300688860658758931974156397565487716956878413143763633417405844743214141872616312876128473249519737762812831588316277362882597116209565550934076318368685764520504193668848596338013373861858612808580322597362156452045757446045867249325002075833807173607413191124127766724286702809182367798782227314770189289045272306481489320981303969671679609155798057881036704965328294959255539922415870587991192766967514404639015635672946245241479111001990259896683033459392882518774938718576097268847623368421451017741258812815935340107970449301379387713172545341616285734913226505908904811451565647399995085341404130183143737384933850287816232219880886964256313770885548526715572188967916761524629108149719423284902210054623436158508681866361777454481012765598389143930750547565787624932527137167757732283583261520443858536462844739360289777432354052779252836364386914875351763855713123495118936374051660745138824065367653208775764679535568161692156449177617550411545351118321046324526940390029781074330447619954440713032313903990123705428739279489944264115648086014742104145570200010688032097690715821196683142259652641994779995326865019347991039902894026346786321085211545058040608907567213062609956313554430359804065748386412261957494555718797499504296822825359814528387484834370105933998988932118093852216239192517445387451618037188770651439558874795479629138225999682792904582437554232072859435204046714972008971928182665406419987099640892107488507089568083802773948342392074682790330652797123195580348539797387538331685550008249800236961325044103761513965495614390215266042390697753648105481763577067089776577935461064905121422784687286683359536795181257373733867862833172249024737320167161455513084498904380419820882542241363119854940350819937105145974122769397512677300221729923428644611523162428649368595892569310937563252964065388644440492543741168309850872530835212080300947091425322458061335415421949454075709013321261293625629604250891452988536926285673855918525731425607632619017730496417045159537664848864444692260978384702937795050192986938979315987494249698038887493569733785039459174316175982939695274124952481522579324591580530755182237922504532637868328137426609554053053497714801545412828418319042199311000069178050801216097278776814348951344304677176161864490553369246724401120902865404390745444556503951391488264057870648631487846977139757736766911966009090514624105337629721167668490029447931884732648652016730840624755565050558997157381480787686217424107803245429300909817806316661820412033739524399654623153974401996169518362024237276228414396184444048375568518272556053401664331185129390638439616899529982835749211130118271797970252490891458394830500258820176403438756521665225970204574794480904691151766636525024847274008565668529253230074009402923426044154467648109951173429080182654438901072716460222305865687590845662769156422275300810670142949745275453917524418733588062433205872941502686861098552256898694356165151218853422817470350421589820337391333842253539186029605732577344520820523525359839327566115443799737243058899962171274088562287752854248284322950149403964748681921733182930436248852972084433605757394800270216272756056991964483023014181714994904085870037527712140850701829290819470594038791238548369013340943224256971374323365811281967301331074905823877385718683993912849745821094141759345580943142685157429908060262918877945839601090491147489009276765241815005320712574625000720558855714845829138031926580310557359500344322566214758574007578060579271186503697558580416428422009761129083015514711433883157249682073486549169600821558323099832427009732871931851917627818667376286705119077136209696604956212863838811857020276628366232250984368035717728377072274799800228985679585680035573751507845497790431166843012083524271523514894492076557164800663724126910860921917726769021894157755946628484741583414911763298916746351650940110087326644599369450794337776257473386744891058767650696813380071900868675402655366200848118459980726591999708783991455435702861861671015090764246680894459428992035612443664950907953377750373560485421986872129482855640484270305831952262949469248692833237814563274269651889975361926286000852943753819579504208372059979028324147674533099879781463237056064440056842883664885164920152965038547981455790989578006149261956943575548928722477558049199153355344402426374033745421798809581128325618899810638629321975564905339887266563109852237299457730470510348731441780511986421173062315063713753995233322717428327836436837267513070200699777845266037614035067340271969115408673779263779634610114002698579532599666471604557865987355589814367910425215928379164386632807024741394617029893314058155576711677833626236103047323783717489063192185777122628610441262104427906885487332392493422247277586940293590024271615044797320661666404682459994276335549771257477747747339094624989459883969405691733039913127716808103943927690518798596845690110619185100371864079684097647802863823434606287955468881207362203150489622739433519509982004038001265161517178388109366171332125379333810479512419494726399589223885976252286622190860859987338665027928295757464251686336163000551944432624087339146077594306240113925679349509491638174819521457562017157526784572767405191007687240073637383148263522846395979220314732356415886443681947207349150155951865535185009423511320834623686513463126974266751730906791934419882993792003064322039292371669823868030742553106183191651545991104832949724016109711577756980069478085453840351857489688820239477897553706294882631131983974258605260897404163128297780542279573556362230481956604852435236979656284300381077668253529848717362240951857369182131144287840403076909635542125923031489562334781618322727961454698915398455079359470096946246473526438128883786132310748673696052178884090333725169138935816647326321917934970680056590029920684559346245889200196208891993707555984340599182605141235304814685765105009736572958076270650028313638197944024257792074373673747802106582483844069526308590329546655968025611949197438595256107944066902486577779157071331434361435825587171538686975219508843324913977453160534531993806740281604677269301937487803714803381327311390028021425824136627935228402580141424118065544301114378335024365421902640029136765757183091102957270998014028415966705103394892929703559392991220435775405451011822627195197765700415339019305083142693880302144776039916472240495413404171300337417007003228578685933653969002710167592302364863690874090883671152624939574829163799566531899011251589729578517581214065613609642232698512473982146978320831154813846637300232267631145690587924030030787239791475964339644100785455789560633884179974836700922700698903080874277969495420826354028583405422067044326860056678294341721919775929978088034464383437385355959899590141457512490191871339559216133356726134957434057023392522535871803314866730310684043934527554198656030402881560449712037130166861309571672173481830959382845650188717809666134107677568880867397840045065803132096481479161599444334392408093848584118923139868005114282361758061360470106214010266997118649484820104816754409153184019532602581241295672644667048186450282402703672553120929975899809532734322089988552336485928195962432270356208848039195760583346539372060628880206572504339713245199994081377030146789694704840191031633796890729136522262702877482808204344774426423013730559780285126614134967524433078994299241637604529056889444423340974733877904618277930592676495068232507393981312636025144179925180864922486212299076882562544411179811412564756498039973926138789923105367444088634838784342689699475593762562073584679145557361240067744294769810303598778875620297370987983745255744611674215599349635977139404334033291931955868745818428431575661001335104626974361779001891936652962409318988948726792811234178451158438398600387704247957402424749917616783630143527171788601494457035568968544383149006878127125989119021732234111879414980467346564198096006759548375216853247353361631601163932048742054038103238807552337005696551734907921525161665093661326281093313145234915044247159834579343436176065144711310603367890713437462548346591922076184906059854573160730033978057527385124133950134739930484356990675960284230891104295946457864018256774871875873311689377282741511305265174806043770136775701639009585206733464147564585672082377965238121813926475846344149684382193326576266414073321639049266291501737681072476592779406140230375198832475992481386621154860916541862576999801266651219691817127907937701603702252129939756617280899763065221622472434168230051390206125666865150702524108079096967725758501053677794590158041460925111467738567811076770772577655712089946358138782275249153633252444063294124600184266062945312967800152618010689597993896226140141350299519808081551399765667455763976259125048554263814533437924845749132379945484743845385780288895700734611800992786873003257020888463194628896184035189699351910385332940006538751424954395510058418062432399083221822907329316125525052244327330202559012867577320079993835622026792735777444694725426698146616636978466674949836002868007983358717732055968549910672501655681725211989110785002832478736864385301878113600084757036738637151541099652192713551255970560887525469780287469595350652901457207941259466146720732556028100190627998759655351220006126331423727836327091467374464052080919605648470804249402744919190569965184704343504028610547772948745883071302466391686522006260312388388973319288286143087785894151354264908627807596025240122470651483502124689032216387866582063065210008572736601688779839487031664788455903437796013442322850233071782562068232592848010678307264600249540148813329064088067232057135200577469565886060936998334899422016010907158499385660645600850234383857770155823500888241880407635067080390422849478993218743358033317918031253370525746514776602121855653137655049366979832076373941126802108594662244988315529049073972677586648718391765235087540808997486612505970401060745367862898824346992555611446242455897762624105450490573980727772553228461527924191424059941885987390653597489594691276639440083113045320387126928403705685829029568352545211254182700517728678547258593563961345059442111025684762328100068920571626842058089312699615366522283543574226214171689204243358105561251611064705370023863706850880664020737237139262483509181340432421887270567827748293266597501536699704109641038527514237920235479900155032791342805461365922035913797262103026497663146227454290975747684429526020599813363301280430788148981837084592832200843609482424511610925079828403851942459589935645929864702109547781613037111400889961585769103753643426502040712308899580561389446362011344411869860730088036455559975922339788518390631000782363797422670951071341540464994168582090975894626625904137354945074935568649854306896874734326681203771244833841078229176559737663850248473180268874158440093558828578312417235286132679739317661819280250385730937574871755533182219870007505916999987356436051918308527666636060500574670784297242388683577870298650607278600532330416897334687592538480837553152985882010021242930920349063969583973555004756139759088692846610438856422000276302917780986908862332011268911221648573945915691163639942116080162504885605282595293991794642045115167837010242399084283464034193778926138197112926920037098907697512102585427947925228040223075368444852931961834422218359368900598297450599401948705581749746117963233230150867057061795631146187773619078577641069628720000582134453371649857944626706233581120067991460303262233010020151238136422438148039617445961261021635578404439550082178095539802489507579846694701142326975198329319546932913257215204336356381386538033500269010688506234961621348971186762535317084734163526504995822263157199037080466474954836579466226439591229618358730974681747796714751975466312591119014352127883481123057488608766241857016559347220069732649316470190700963694916578003056296413143644021517417545174198991156910896455494279191921353864999227500863277991783538553599494525183258459071814492549781119627513797868710909909884007468185479381003599832361208634066911168981571942734528863459173601967743644055429553288957683431102625474859188475193140698423231580757843052407273178225300782344161806612772334439415847228229385675089347599926954560860529942191845195041406979980349428299889486222880328187204654326173070318873468139094013072052775127049478264292712255797221212749346293106027423415132025591752855622783830186711587701101740725054811920380748246610652548725777342037159445114726770731388551166256329002454487677095349749349801841832028149284715827838559537235790414218319212086917090138579957330872624892032763049679144070036813431124885286193960573129976792158069270623475088916259613193927666743897614585796158886484858881229990617818905060970445989203932458906012079527590682663674600969681296784610269770518971188742705764044003423514531702133422158192922726777753185011384982884521568364948413535540472611567045879039338048278879456028860847158309100520848963697825869712442988306937182164489179088134405217938931586788104976789993188204591806319950063871814159505611531616089977071902295159475492560474929507127520022602991120078617706761708514216963139415856284942617420834353237541846647993844679683989727509532704696230813639189545690499704385679057673479978353803868598147464622368470511886673516637407916137642123935535132952747837924214020444440968441960669409581203604990788016736040322149971293868802399091886343194795733300693528207638405988303643944831559741900931211474704844220795739067234735099076181077445170600800112747700995041580538590264378647071186068884465282200811911358986772699413042218478937741151997872962995255024762950951356425078189363175948568331952391649411170560904486652573256568861856026895331195679535061896901594131534574166883771455142307840412280691935584230499289974905857351518870016204356286946945506575346663519884607826583453805179883850135171165175595010032174265871232597706462425839952084062588060793169137213300434986600910325365520520830779153754312982201135987116177970598484283534245127805322046321588532115157925765962865986206343497486278351087963096665514223876203017026123806042976595727012724114652555438341148984434357570686153122650201329777477824486632400989598930686370071350383124785747917535484049734756659560978426282739020420485910915133213799469460872601610697823288365404562573699514983438735246282214077413464818086065030285545814409941243239467782234369745587014201185367635957356520321592559042098697947928065351162576250552290541770500130015517884004086336428781750683745765836475383094177214668622561050195167979328310862903036974077883328459238245251335139235748799309277411709752497343360558369767422758451493594416474913349091298640822771630843296429052527257514765055584484839724271955980301994684485838727328662359860371356957071820981004988603695206003636482756590765407924912385449108544714712769434816035225052899652973824748189593054587072243854625292640530903169672608320542291991568034740386890683899754534994094365478869203466354753037793698971616458511655155611289644898527160594674196607990379412466014092579434708576574201259848081706526975847644010670008577183902180894417434944845395024242875427648073060967807350757805964420230297356567409463074325878652715702475453246299592431578652665714897643607342729721991099654965230393658919341581701952435349667348744660335941894994480024527734293803152252128129795276055380473886906147676731068544135811996799713734766093507345115747171163834944110101086846640889529800524460633872046305506966066348458858817186622044799879530550721338721728231984994768311339257654988597645759670574485272077864448839995977235151315613304617378192451752732936559865369426415806694094739637713628475513942136558591272297369455886271744584171313589965316915039628476764122963848708435857549076647362653906730876740862107354576285064239211802955553863479366932086267139331150390611563914622774630387084194922287617872898940965686243322128658036951199467694556967748876592178811668475285021125558290611007337877982759826546667515692481286796648840993106358914352100069140273439939916542700954025074917293039331572672565795566057284788616804046120941118727435592038853952526408490087411751546923630756458832655624072418011233441861718070111604377046579674901918266163104980466041559868558399310660471197117268784446921482302357876469760504274724552434749829359822254929325957569022327664020588745055039433772244704568711713024126360266797907331114196180408213151733234639934566530320117362502615978037100867575919402363975015410874014914906774793110121930852559145280990172661520253089571735089920407224146449881738326120496292541953182604225751536085804576830426973762460554522869278545691342315927723268965751728186337040466782962565774606137132963024813572694078326544068323866987308030839192181063259573297274229375667995900565242896338150383570204340372413995598823834430343097519053704795457981220025232143964015127610871386286988052567581171336669717399089646602055579952974223187771665927610995473587312420762197325463757642312406149122498125164452443203110683236786645756816240072950305775116177203759847034867409286760168360843200595887601401672404848164210264402397181210844141918040603363350714105840131015633537349334566964498553057767424048247510665590986624241872920385492308837976456346646997837517799056607839226715426955255434281048810197124198435858342690828911141090088588067017601884602281863283451402175040465422852477050251611161837199026960099891455559520337242815797998187776354653582659931581279811980217280130007544887131998548902140258665367960917392260277265258074318419907607255111425665016855342912497090782649241549527633498963769477148683675485053240878212574012515462281210964413569213389742606681469366693445237999330987805220111503483870468670168351014289544088367946147303965547837416849025759670851604733873042644651928351706037647874035433838314589499201237746227677362941608479889884840556409213432619171163189413802327927182673515213444137486990981920153268063125689359478650410588218190306784954224011916950097804654137222607503748982273613730931309055415473515954053135429389143276651223150048758281120683234986911919044693059029023242852483095018745480209185737798984972562563002164300707920458894890895283797962858119964787614760436719276527871827817246921894963289261750701784474115043300195049965922667956167549162904949192267225269779308562437024894503690738219837576958876962399661271740407096438768729023384620154005226334497154485452276666566799686085061992799611441824586861677636499764463655821820743889035758824274519975175578991512620003244317118441287419914684482130376317039297359846475433314860077474692204809952880452170904483574037562617947614113484994808543376510059489969171867670843406466685709819516835388536937105883031473521744533879836486469495670551616616296650466610721709985991662540279841733097994133402819242040077449384672392190823713164155663730274789543852284237316302979600201921776113895284191032371295261290824424630553107245424351312311434696349896890958191251199348181424359925314667110254202245267148520719519726345201435048248103786964501582269483008020500419357076894959549553693114408885843315944718444661480062497965424059493204294409047855194352155265384412130425827580389300078474995530151970171710269722207433823960066518080195286718740861007587714595595793011454986453831033993224032891354839569876915511690245536366685325818643568079426060179986903286038780664717069256345564455988681532516231013902818146812228391778928937449538750033005047117644321798143574418009745932155759510833158194019457941978763444130038244481061858794227179627530295809361050716707887756311479773962498398836875933183002767989236694013646287918559457303405035377197193311558331318382146882106042140811115079988286724742101341550065820720699774107442055869270107819038812818753526969231816545157720079927922666915168457108700235560040176277061043370569735055817118703595124513509737277772798059927376347054401673463821764444789248156292322226856265681144887899923956977191939280599080867132735975902817378713887529971311169271745397935118243932406790378003228805894665892848931151602662822780335621260713571671332355188866195038445170386286908887143979029916025877051679672579946248368112451544216867626785654598603126160082427858841253877438707107692093892878506653092222871276118118360932449946982590916624913408042778216049047254719953558094051111412126411786857794317544297040911481469900063303238615070175938830193739545963898942722130476783505998125443735212787126552301430079644324539971156107093601796671193021720349424574818416962834125771233456900782116283669551210725883961889380795788498264880171339523499156850830887830008000639540146036284761288130746496503556341485452682992039804101743371869598618527909764627149415702875385896432329119426451273746056568909349836382553279176776781503425151283603606406800306896926555036130663226748493541253598279980931835966112036710987712899121052832432412528095964128626707563852562789612635258114224818988184190232021497061168662863395314839139173916038708880011754778730422151857993330903949443181470752916207294303701363514181060458107237668536888464409498468907929096982698590761345339764586889086452244160062935869926769744929658729992076423286369774740805036436273675415104035175422528428227613483075412933972039348238863741016622229723973317055309393516534303863131744420941118412465558626934521874519635422969117651254469487277957402068136985999539980673513475253306441188583023307585614035649787602657695204884532363518440928000200295044743456740041874923267120588051720983072221786829127623913374191950572750230312843901544693022995839846948410540074663593257508341139666902614650269651513238533094568314714317439948759170031807390949980565962220979390795942348808113140383950239302654782689253721094972942629288630447603697790579259875839739915065653604990208923496945937383142704101595809582341823387100840162067594901362495048875683773086142075946390908686167929268771778615158763406510071126328804786191238917301042157942465931822020158780385066704039602206426775316246638459402244137745818159181476325121435174367884656855445117452057637322943838051400226508067826331656576812810148530748999697133731200335132346993416575579282096464210674047535217504680848526390834686264987363204539578161869467781738787687815238905826768446960681513254008008225930246291096141502952409513284098500697619869202595183832711451651846795493932585730674789160414758922491094431624720838441522128579853969074391560751027589949365885650214769942705806171365049028794152326093275677150497057042608139924790171533135701780628964433223812789775402158229816241486958979989077790134944130354134851788332782062376224543413714023116801298144124473840935690081147841647422860453244127820590375631685550668296365239498853822812117839011655785271924824671739969054875841578674576086063618545782800978169514042927880041987719603643590469597990044809903056897544413859431468223139662723380251201782550973565049600698950192560175340498077614176433431684873082516842331633867517377032067479207347942955564796779675284444746284135302022124884023415395556449405038638321463569773808962803820835008946613854191762841620499623018498097030907739682308534936631541458890261626041802390210516851003835090395558105274619724532800929451928219394747594670110257873345338307191462250467158976853876566420442615320478647400235292007663228711572553001184415003349483323250484154115053135394446919699662480685185518124079053646761884174223175784949091381958696946061318150775561090256586929469842751290802214024960458822386740308565423007532910466056158894788667240799211398138487057261121422534511763098430379762266801593622611985013603162769881197087811388191518381757297959423504114196266627274193788424322280206791521944512848469123981329213004022638048369124313010199892196744979163456894251540419331430328981952125948027324912107053115151990748533933242523619974913374346287873302242654784909457660477341920810958263177278439675608906654889045963393913420266895001668035858202866262881112302638096875184848693369412113726552225691373025352439364743653268513549093501220321301478382504219220323057196654034331162011813419585086411329734430468866157100890597892075092107048962753437517435310157300191328528938960949329154822560919303930525906959606018905907144735867427598637298876761209253334584288562092584453067939852855700094425645856533694538016068677709525280054861107816747373974127991729106631457003074777382709994248713654453289296618300611609824281003375839748465113901470557243418442249618124020200540008052400659706732088926197327484197796518120299355893834133670337493660324814107593431920531895466355989447463698441261306314552792732896552933771113198774280356041971103041168804045492758039980483465606290672862534696184135337587690541130412014795802443893077764417011960789036245777528049752176642514683782233843829663828675484357991031784009794138020325510037750763774648929005321750242211812867584299237249436400451574390912871872382894487126126861052285995449822002645743943768332971237559615804094580200218841414541839936602412297851833824818043754683491808117982666487201967432068549432304281178109787910366798772217816094665556021400785523010003597449451049228874612392435542133961183377479777084156629544344846088345228581545979446191111441443149638265080416032595685937924783500250296254574792975715519589053702271432834342297775266590650437999077717945095857116312925251266148978294123160030499531006495185694117549720794927037772800809611235903759433223994537382797947201048972618537463700005452771805706534218600683801117283342419043095450162902518725140251416069147102524209328613834528922768297480537325601979088883948475604244769539864571172732630143847385845146259232452063555892462499375180176686305467997654214833527620949779685454894988036849564490163797641574227776320060242429469643678176688299822508947564947330819390690460876852995906167344257567744393335711431686892711525722932300530956955107298794985540736848943640681561306814124430876693028131107864450852277493635142149895454095985430989669309993482902910510437314134989645553964228572360846633595944435749316058531518286204859513363062403537286495569994227363744280453653941235269303542125685623961030520842443542139047158240036937570278523944515655692992106734913890527469520683888592530767258046573761467978319513569464063721038115006747482230562010438067152803926347804864586812730790848149525698584781124434003499031119301456034579293048117138334607418191730837258992733652597928089162004338584927142376922260038911346588545651442966505100822325090895096165594749616981449182099243481324095879355867922168322172988925065860863116929671218685593688877637955078211013605106577473213804220108223055391847934548373970969375233620472376834123043282125720458633437014719716460733562995223906315606520309396654242723912175295481277188202395855254760125827855418085909328696109071893027545062915030374382366887359092129936699912082266401154748457644903188461917387446988703421695436794469350487238775502289628659492312349741682881255045140523715432575750063744156244604449319609347722116936805951504520558029739497616450705177158434609929248754720314322744489977410988359315586917890611594909028245650300014250283171144165629430281832967258636613731757564662481355834133706747551517039304157579313920565332748581429217821142429978925074900958840093863754363404010480051995087094380676516463169513572103635473907433813685486084643200574129501043239663588637300814358903952846876503448083366461813364408166730650878306680152382026226010081617444560310989819597232687477115497689506235067003715488175480020688253953148439166026218557481500902041368667358686762136206305102856704260579923020294637659694766177776016661482529264569676763392681675376518846098174731019722458533705743224802162488161151557200434690585558970908736270126102427430030149003802484348896282917447300763362638928300611835853386357652432530446860934181493827485306497319112440151407688825266161321469074317198645990141625308239892076833224366184604488411798151005092842072046513288077856087512138146874401441469466084467161348853249404996103786596397202703473750672520779204512992851886226986673189615375456454865288023999065611913450093407447047413947585445601260480459728123159915078536367688841375446650993656523892428055383065953240447024279177061763884707954899339669411065174968171310210731362831922391575049124495760413848567273070975902204976911603794714108168043981370726729299329277634925182768699128442572147966541331533305686423787381670862683096386208236961594347557354334276836610973245350199160559055519179987413234925622938844163655036699260149978722184945839794830748915644943642400101143990876748036567284844629917936339509351960347290742354314469982632291611275610614837024725225560542523570900123677805187736622833256995886450207717940147384719723582242145581379662142905541741985472961271285122382447493698466053408537226842965955572016503164718761118874969321864145556871864627495745217558758487962496468578138264707962941662182682083785820976221424619988208391732317587036197109198385585780025269915339550635609404137175335341803532019082106623414820597226593137246218557314865679789567202359301609868924240875021254273524696134982102167853568067156296292880775782104167748009281981843508256748082912118730955730552350683416980864814759847561957433687668319367761247134639285929038794398585034092698986725696827181615824973043788364858053554178659134164307607689262857283604877817712134793721715650636608588868582697280666905851420192140722395554427172079639951210840260828324082271173897552245138636290186280985182734271358483244259674285603468712311386197555214919616530815548008247497293838257628404555095039032709686514182005374423689978088608928956812326005229391020191510274667588857863828709640925776941777603727332645457345447898603983227064960910289745860481764296650366891729067183861106454540272387339244735619730296361709582916297199147267545177538872222581859530484869523317579523077583143753769269552125158693266215943475536227293925775238933324433015013288187274470060862499883453245519808149831066401716088221588447099697121684116971429769042215836231536142331947036471399636819209290165971277936659051257297112450098008316379007467205624473516769878680279079739520418340296599599354119260306654606480798300283340423267805245695487790340187370019121275443108514747722680768276775102551879196576425915390190671138595856894129636837841720789117446645666317643774273452071698201561991057891285289427464483356539367801697482875730060286652368542877629845590810274621884898385118560185844022476703032856739494452119748392187228081402651962167443497094266286367237627482111510949870573331076249641142240191827625257949817738975932501035794337550801103018470712631313085873911800387943803567559177391396168336029538976397265681325350533548680338363862566179754495642992582995688799476625682358313550862819229153836766318789938748158767644274563630631997911054195814977505556896744676655491286375903310937538156468061932953396761029717224841865115126495813183401638604296955928210232329802172178769912111314402414459452615498913273078218465052825632373216417029351438534642721525085759185724569352199264088679398025446336677756792745382582245846961837485782189293309576419937474148833957080928970863735519432512958635945140213542609439470434006772934282808498913885950907645838593625289582823227734635152974945085474445249964317846125023927762778364467062785615952085766816389561358010961380776845412996830151848736506527069144584886520449082106442228940926410938551030326635875838069587474727899809546432432877406961950901133362700850809676562462504144640290763006694577698629292945558580401678319826578761529092376614731911393279721292448423355520115592698175825226599536085104352237130940631713345961191482530271694873946322891993104571199649720331388457094184047737685542826203933814864562466004262912341786130633778741409417404192058396861628139447619822657633676243303008589834959930114053977999964608473190532351611714007364809189756448824087284951809778432790770476216970706537898924635616287091017219831290215450013270275853987766382091561985800949131616722220312809333777801529326446047496079117633639575484224646674725466579867883304504245237678996403268969523409367624999330438163324667079897508406756443571651725637390793435924670594713399963164081961501549778685067775210108797700129658250834747258951966131736547544686470267181351964584536920809736311934363747578030247237682731726141927798421048151128568814236560363649284693402424279393105864448220449777508896323343759923234313993964287482525463173760886491673211741144438623642142738687018464663323115777702268790735500933527066544622850458936790969672501520203993235226430637605435784905604458870166943427971195716779434896484098405547718729969092725299531061176969456704617216349909875340314109943006873107534918711933452920568107510071052429969511748781952392536085816383669868819254880656823177522353540610076606620230250890693397156752253530011381595904063919798262079842615008732178627102317326350613865989901414798092899322576979944431445113341432175840785661328341044986421560735032737545913959293272508020857440811068827570901566046087108882730793211558201020156894833736198961273174209994799626702775208951039865376906984514472076762077876680158520056363943637372190714040228820136480648754594893792607077911212879113145726072850805020584173325096856078615816459685904966266499491309112029122902024679964886828432862539475213413885507819104780354036840363060978688895505268453594889701642227699701473509908171122186283171156539082052156740265050757129680814277071830161096516813260662762259648691602529995173724551250014400190701487816042672775010295042854758169962577839294611380489231423290497177986332403723059273832032686258307894546265185663809645965480685389074986588878859323925256202511837083844368117306209885242553757654879019720174469407097601915494540595761095916049580848278054308740950445709085863015958078443083325039373286572735466055941751667897020782294482059334286270968138482796264966436062825068128547191150366467184895439294538298928363743591899975088363852993671271452152906986962269945448546725221624796145096040770413482936791363418810175665104747329570792979288491957055078458167024268155560288241303764501998761175013052352589201886943909238553872786096903124031011541643153572870033242249851376158192469634324823655202737386460439214450984188247656713343004142528718497613069450229579746433763985379538025848042901439940233817901289471662236439135822061508434804693890926376366641165021006383040039516857320010785456533126753693484569360270116089276867044606150844689360595361839833470415066261191109373867248119606150085153932893573949345173548721119361102436639946537494939432012858394427397683444802546119993528888758250954783247693508402970903221633030529204955071195830789841042961559908473677202637608590238095088917925881603771647673788514778503550824090184181513055385158902603453986941921340578052216530173908940282563702888762768676465429842102451835954472297280101114045937054182215984461837184760962117352022535877465331006123043787281039820783220837623682830011355591654368122278319317562201823986840729823705411164365937703989738331988650963323202999391596929364845384249281880911370280807298644732986165378284082461516910478653482504513910045443921117086987182474927800307984595311282051565062210962437626791283747349280529469369838881217336946779021772187053056526719234249920953655565478187927658644246225417449281067838155401115810870223820198882829463806017111631565097222408822187221856730547717180305697949740647966026317330258316977081522299234211513485136653535345612921149394014837086298279738837974473189086810833418429992297508861821142959081538496861895500400477687106673158046889075356522082421841838120976300918434449174250859581303914373077378239619612389528282195569149852923098329503800522058405222149953910777294298260893169671820218670899443429066101549996582258406061202443909597290596433963333280505427136183164070100303166855519470445518524196091826492763562849890474862745735056547809695108573555760336895580414937126449959559151166958153925872133423692729133711787365193808758622073552456087672400497606247614537971606862657350227144169558898590896480096609424923145491647281268303472737658074968304594778413427474343120560929493263896769417742713108943285744687000569937994329921330072388180736178523935478061525680922834537492169580685513631754423752593175264247475572550557188055964050167365266728540158884733366688537707345425261348172693122758724140720662478561724430728497562501868747588016405894636148118927702521738034919137504408478203354779397969025741882665699042286225076689138297109406803390176474305202571368724531519439963096752412955712499156552332682374156716982254223547125730925282528988274810052013157133075066041356448745913900324912962036606337321773522086922090312700342771595383388762197093385854091779470162136418031281484122651911114864065812902968822236817245720278688498284848039260056197815133388429791662267658426548505230700562780249234400157761194642564220225013752176729015233821466711918718095625125644760752913437462073851284016319388395470258604932795279233344590684081112155025049374080916307577082547299132077958671563986191855896104174081976008796537514735094171760003561923290512559240159531922205945202743215508606119332987710105536692659187502465454841112215253212823173507507919912868923013624456949526326284535445941444837738051970503919520253178709969668945415658881267816907205009544847431453962957640496355469920601011365495296929280394264092238949697394352331793800291686999448888796362788296874929188394764638347734670248605991215140943369540247968523181599185341623432908039174114730957352694096091117473349246216523871823641263937872239054641510587768691797018784055959294437157691738309569020864946049972406081226251664497014096443085743446020928881026299672277161624975342075785408263796733377581000707414634040633255613880868327187632789704709639542650375798177916237309293307056799410007674894949225924479474789263505707416926763067339249502418453731196085448681019211898621503424106026948429602603794026999089664709045756991674899897230646392475850455567666546272511721408150470649771685011221255237400660694174807600363439350738859747090585054122067025237305554380313218789360470585820776419423471875165139579736940540992710716740931896540962007612272889980776719610571903796885004451219941560281203569582292816439673005716520751656823847759521511140751269674674973116676573899788651364728085913920065295975579527096559841723692165987609270998044979769551258882150181215184888617136217113208810946189507647356860189849904938170889640125977696499539304034626201325752124559326551369398247026692119809456320840080885158996598841060985317972861976745061577351630557562700971749324978143693582310248038804255770580157482453051403001379853885055583321173449396401933371127817874218306304614478321007147775414492989124281900679039458086854700772265859867827546333139880098757373686240182060489697747211663583046234530823300813290880559899828196944160519901157520159930734036188114102098861028199399234438462396829319846688179011165868048008908460456399945497074393155355435636674346036910342904122156036645647381557392600101591978665328414234073885716122818658187800324926121105354004937355383281223755929624860352723741528400081702322036309269905219971074793447750373797093941057142989596088952369937736586923091694556765938691123802966448945029549513749476519413460328547109334748884449529970070021857489641772144712941757624241612447037127211900281904501944722084209930121551226865463317660345901575804098449438065457053924713490710251876411177157490334208543377175373473578191481101119100328626800671300372384051145161402247535121768327470982352237135927993556346993799700014985214792378833266276682976839157589828401360631198108337822714705594841702284588941872345549890487105578587918422107871405606278864830179707532116723647931481091011442219809254605798547855447419045906504195711144986228297697383896496403262988673884982089794219845884441758051665425244913145092999276051949795038465371242646133123527373374835247634945538706109780933296998453051341297064902504218770347176802289525906577169311385449715191131791129671325850257505784485494080646002783691481209691801568913187810883041615112462044798130618059575878709196672574904646072636367713353425108481542895764732917785375502971932250968802820530369182272625839469583171913995470455212116731654732266733692192789080266346398646458524288965737220063698040863885691788666609315695711560304368088441472385773102904414208374498066808407815295115295974636965900088196453596364707408201798758819420023083925888089049643318644813775137307916097837628500276658713216612710071015865467085291499846350225388054495639245185383645112248919450544283521730432344448942084393105556874262926940165031473747003238251383091943694252232480834826073126569031486422835496970610346695308945482441763844645877514519481364309195863294494715487592989857073170408169030178485074233700618062308049453461853063499702857831218568462097791310393338259776600871195491490306413900787020333758797458305661672959874600442897095382178100114745081071226571373247326450213392161562069929204700143216159854703704971857384901060415488606852916024240147201912033734102212455902448497919234958593229894915330288671565888223803929002415514306185231192179480636275685751695847937805401200800429842705476804977757587865523803094293250937972999557853936890028154480164889333022384683666100073009351212599667461115025832073745040659246540723933577858766750729479188097874429963032303230728019472059331488673997466782941831430828907911148933360890666800712993308466926318316698454595352242694055766320346267014381656599037616267511680583514348237008452626294745080638722927493187411150018226352721919134003891493250744371096040740102767749894914037146119563151567694607982774593999207048320721388910606378859337073195825568901106628847063110964611262382577102180606064601713375528418566751507062435446383324767318097011586349139231957981223776612399509716296786616616858020968403616382805343353846813704581080222935662348492191189940590517958947062312161384973632774818616355992941703729814825274226082038657757632317206156489709767477988413551193157506295946688631432378114696928040872911294636089242825372617066460026317186735143721342374407446948225995798608882948165283255332259970649271801963987210988093122426283491354075086609882253443758016492810833091511296565883426755849054800568712521577927235069949183482543658391614291846404891265128373512403775313255384639223042019664234665330450056998481256042105764842497415141722847054182372087460173609050126703760473204421801233748916775790472025529786412771992658234941070005407037289250414787082312656068587961830411914196732562363246362833430510307958870999958224958745467620057307301778269059494585423578872634179357981064239111463953131645407060958453882175740963644470909209018540563105028904220421310028800428555516870392859413898365109474586275266500313827867423346452304681011916622144124239439078123458161133760453095892389588888911768412589509443349888744902185909936137135344546547330149091558433241752576592530054838579648319777082779282324791244855349086588547841026061389782223225543326284916710327248458055919880970584127487579736576697085715609486617919166159601056885390006419169679465699681852164483163401016110105546082392912076178690604624608240359660756405584863256709799779594649425940929643741991763993097183628671222670715988890931284772391839255143253767568022607892486924311346366076988643579146903786545190847489452683259171643019252189163560576327462810665674452056213668362806458498134493967938099857066950302199369544208344973048534790814311739904511946040968359495074352689863596358293557293638731902044343946305440241419255303522052100165244109067039511041509536606981203781180187821705957577796513466526868864151233242352243247837704972222058668286209457817768705063044826896239821698416765549285946553881453283768270975847930970539776156870733575496153797046987149689532780011887531413801659867535129534350509212126837859945343150795941425915878534103335246235278960525402495430990963807685569554097160077596712600715075836641148144305623596227284155972698441978221753842824479089597855217724529825136445978571560251534154208231110055926594104824545360333512965722618372012407724161315302917190283072404325724923777937524938933776930961264447371402290970143060423741395828406005731448047797427582308647681588317427456673552722876221585081282190859034157384736111018942644974074204080640390774773863866331447031245495320665544197386798518378170366110548331998621637381280870893146182545453691185603289837960588862377997834551734088139893987344360544467592295945428723332700739098175743168044921824047901340266843201266129053492114933708530777118257349547473658466748712054100705332646848966674942813589899779052598931165700442491539331049087763871528856951034163592391311948141714191892707112150383523135820154513075645716171215847210488786995976931823294637252335208834970432035100120755272184563862774816733493919330545067627252135817413236154755478636294645378307888101362662168869583141372259394880143214546414980857448496772127763628859553010668054228232874473806419814119633423656562001294460015420860744927091063573796855602218171652159602751265092718606086645641136562790752434448340967511052562544308291811499162249797702537623045458143048898800884136707085570192887759305222604061116964216555636899384034788999818648012785702527258157220761671510766663879289362444401960872438296165213155515143814191745668088163043456956465360290131862005173952134194675109048792436416010834653121645898750719000208409797705546320308711759849277843235603522790861397554912686660191296764085443456243369141478118371078853346949884841935987262889353699413147923894013094264815121953010435973830976212473877308763573249771362261420365701922935371219526044184652905505050105953148797524012203450125044462289841140617336080131804014586389528689754020673178305093799915996561976475835917875982665814296778417268884161631050870722714726862377453802514591217090000855097648092078388485279016127918449523769414493105300381424631747664406849866203705574467823313106951848483706510053986056610752227029963610791061822008978775230854502366483767952014757395731989917114977875048847698708246857109845025215813968862427362372646699525078757005152780653307855197464368146964748347021368178979307749944790962126989455329462751653737375187390552846670316622862761350827647644631947399596464423645156064504463647991537229685315091258499004874908327244599530068910131508728426036714629757124357260816091781221996324005142857288804555548336832060077584951869332993289669318734526065277433658424264611882695800826755726012247137300142544348437595554854387823180881733274047375766130344086151659183885860492455138807773511688007968522042534028371659497320102718193447373266038404544426053287752729636554662319274941002971063723994933753414172345798026876545056302618113074814200692800006885787760742314515427568678552348591121784639432096549069291565214442748065617636673930918335410245561654974212028705598774263182719091184350180610718134904951775328845678400812043984263390324196855994239981391887542298462823987562187278181850390070811627541361900345021471394274940165655125777196819604108143307864857452126916772485803619819585381119918806066183810425348294953435670776038353613187302500334964500223894290686578339535746786532087611252841664885072152395388829486620017342124660705736055097367485118050089878181023947328442389437242546209790795516908196954161844047395376939267039510533558938002654535263478998686473795295525064707305674351184227101581563677360022098019041483439438852118882510499762013266314900520948708071006791618141718065242315355007045602938092725163970676071369266383458497870454233123095658816110516418598586290951276597014981519533742526610215416724578351256261287918023959690702027804044181747834783431666556513614254650300071454460690149205729986463394464457533711466856902703368241932903823514162043703489504308258093558290182511170475323712231157688571839018892508881628361623164605097260143172318602408624239924783589277004953719422967504115840845988882448540389033619445709046248386719815086646199011309515904931997329976266738681338843068660481948776102959614268816942947715412092106451024806048876937753328803123957554828689718480520763967842628425104908443807474897934325608289022600604734873189141535846737511224181193253475365510325764728323438086735455817071498049889622416801295543654587135897715678584715265491522368554831266068474880924510829766363958698590197451010940830039020989073216566494693642878213138128870488002895299526582986575795961541988939906499994684396122902039555963570829171341159218501370131812810890083341666592734453024275725453027320639579793924175769286734572676127239618178609396621868987236588710410467046512900584312127948765237348917861727251855749624841540993146089930929347329815593522588653269071620546028133273518053204133530110935601719185412372555521016369480752833249918158775110310939043958446425523256441171389825110262629925400274326936690068170859499702846538276165923660740222396635893057930107144437748429214375693646636589740864318527916783379073133866061733859229988432778412828601730875021974935999419722681174029354597732500570876655206275762381168658674493430143388925686361219566212498050699353466571913182126919573788660519110500865312827387905190866603617497972320398635606199226893644852145954526494163738186676180636952995913727764211310302599438637102429694765200595792222074995597521763466821892101187495491096970073582489820386173043948503357625109412758146545055151981575445813393357202841294395192985603821070541862633700919385580162425926702222580723963649131002298291382454435421767077950611507125503213959844789334582625224839420292272658787718912690405719547618312947897639044965757890984697954718567887734950644107709535822717616491254485805169195303695645444044294575751773817724090071538774397254060974008832224784911319812198488490572771537058626499964021717997532465307411659236004189647705690804295905344714679105826969996166175602534735236892480412163816176900120337320505958356531772677561892905786010856194025949087428934203035765095866030478433402393601714028475450040349534166493712955885466203909626085004496727292618046311056714823615049697668076714134165180617052115185505756122016013549590533073455259974093806298234557604617920819290782813356220789999861586975607607679071176812814150882592027259142812744186723331333499417030641822902473572748387628111809777831641774807196043014928113155559079492244995731213612583070734576402523722179353113000449671109004241948385553914482679015560365684638545896939902197230114324448179386795127617672091800423353064735664339464483801268819221129604563505461432894310123787843180310491893876844248810418149680899213352827010182383809692276576081507495298902734880447453307457584847703177070831224174116137368500197734195724309030473584980400636536274212354021357883340037287691311117162206070863265559040766702806351295332719818413059259273715283362097096270410484210644820283537821893792934798735707849995000227507903122564490202668361634171185815459178969727345062618373800426613162084113900692517432536455443534147823898010981858051455771693740848752908457094716849378166022770201195353958267027928869780193268651003506889806152331631955277686425626688592925983444954984707001398344389559507258209527386060867152493512119876641237650268207037461495050057167563928926355471317500138024833459799611810633190942078793167121413550610218015094383428914686084309976322330439769205463163821369840262013366657336076530508165548789922168308838031766663939698986852391536672947531821437926949181290878651965751595545631913960501025903268289199494199254978541145825334544967481539599165838235724581728120332423034321030903533590121005952192734038958374719413754718462921048877100527558075885085544259389729197809432528482000613879490081336980025130675638579620710065205699777954954307965306107015758498401867023855718141622126525490734412552819709416294944384575466073222869544894571844129334266242622124102128546263914716400017976411708607567458443312451323733171691714419436742528223099352127516569332378632444319547544888981521906493717170639617030028692356019283885102327892790824433216790662701745792198905626729943234222489434652201157629469899640818284002555608145665323220001240926222645429103881782552869039244354355699240382250899014192451330751385722249642713510577169882935495503977469671880379297690633444999883416284223019693420428436476942991472458986506290474237409961757435422270702917081008175189438038007471160041512524492805210252671237042809587612594746606076565558002392647180860992476293809101881677113172170996245159248170845432635959982827475326487983535896249963649181399875143878226044220390494810649672511296801280927616577558023439534161522487518804851501111975194201120265836637907065529756108567491288088401957584893446606215108990646600044893927104007904977393619135456124614468288340818457870669258629368848674928438683440166436256024634070265079531690385198795080269643098997137368967849830870008697000287132738466902583920244233905751611728474963462179907606688884765839112391376284644331454405859011049804409180224780296102924275369365882037338740504825321987996672339693085216979706607937710431230353510946166345140274792590168217418287702509930269787722864046957525258142010282778151948727063722501252345532357865188673434127444549196525191745478875021121442225738311931636401523969155754482412228354881684142145950293370395909233460185955568461153469878686314242979600595538262060686388014447220570106277449253663946332145476455765718747572198191092442759626568886332705344224648185796198932512782364102716590226461730110984513322631255304890789484372348574540242827931598722386067910634275230256849676718124248333009467276720498517056793347973797889305095541848917133408459334429512681667508629717754198526332770824069619384991643681267043792384538047040086518357778081861378452290209150062272716313252467029641328368067032902643234382134659332743003927319250662186137035173015270609667306728441981949802354747572673806172750283598616975025902479856252604229391654467284367075685226600675702046898838481681169658645043489660002256555508503299167053954383658262043388401345314345604730648226150730376917326624572890896302434621231945380623211939582324604727521519478549261027898108871472630838117581583661665910139388574339993314785333664430404450971564285662434439168741962945736992378659987853778221011986750932300147480529752422003627307046208010053929682152584555217534763156410112628287719763038986341641696575073174980982755289939661339231507619620977696546914933954144027645158761695287714370380179984862491425193502077236726699399899026239253181859464572145543791087144594150926358818368790149794933250606312225698700317811126041712905940509482678348432082397289244683715514079732714271403407531234666950909655566424310236613978578675095001550909442889214587395951352341396573330566188163670676173310505680998884496395056021855755304274120332433841937040756605085212898327498449325729805243884840744556672704859219782775493695374208928347592789306390239551353585098342538142390802841408398405727884434332298454443611596107903539208445485503096001494265479535934593163770699733828246780919899005491433683369051425969876282611673652581694801473665839369651224828450769558492334013983486069631241644781920429876078810213537700919054035133758001067447033857189558347823271508827023209437685445033714622864399073653755425733404558591623656096405696068668696416440246327046312169385444551402627493146433789587105497002022288657795577610505407943859158100748320739851274351503654012816147525172204541607642495306288829830917235644432955406057143343318905591502785990191949512341540805265503020552191750131748297131237932444609452150215742097613644900466845442735423996611536553117336822662125157006371357847149692495309141403009408943328915877937567755011291300589342200926237442124481229959886154964717733707685544277302415574507748008690164351502495772817322661165153060005396206443427394142409744219593569051695713850964364666945291898207611575816840070122828260546605053959923286263998796169220591651785564119459985561587471725989186987742680897942896005259038132682131165873312253607232522781908849526829504075180068964880276110132604299244957387994410623942957273610206305038380541614037432620500352969468620386470811880172114380641861350749052595732933608351854549659172103408602255609307509791332294780909313907778218710248698353150132908220498634280531068414473355490166903405277792054688900992323902515131295974520233802766893367386232794405440609722874268106012676484193973011539323987065221267227440879090401498560695377423434460191144937581352492056093969156231094679613676018425552195714245756874814413451764156936865319703603631370348982670676110809557197179534824639870756859905498323832807923595085775958303939817364691974417805155159931069163942196526870913486223681897856084501144444187265502640369313956486478983760127032859085467971230202720313056764098707708490018813224535963326307668628720979988144678762132367399385708243494690703842260596264732743371686790015219413240049250619704546186181753784554748436682909880903291153961400426598281563275328918674291207042813492619187439497539652458470208178861001503374095761249559959122557599425205341950097045647366939414431698522799923187604955268937637592626538811087810919391387037275733018053203276474589323321980086581058362945358656818075131452613960070825908821768571081767518060440993912609595488193551364407150310542233268171182057934178700636215767351521793765193265078406315334429278959862389543286719570933643776670847757310790806268563898110011670582406732781410078261660500399078106201325754082180719508793503582362433297728608994923197597928907968611972275081095568082650007647341409964562785320850608382449055931136074479499552378335518454114463978530252336957168726332398837672142693323508259418286774870360784196882525045115612016562599588494964230868474938420272603708476333266812915174007352586648469180704064192462766620316324152744181027721008395592064681958317984462538288588025528231011377583902645901444772307075697268635494868423496583550336736641300424715721483761621693344102377064531208497244520429776750488491791438795384292509320582647012503116054858790323273549348917763266768152343113905482297440164160971720969737140521060475673160718632884261610056191126087772018238540525680343237529217322268168536972564951988993106924385378604772298550106404256583927760107424982322889250253576149662467641535407041412866886026005838044495607070088984644783415395565160068703744459160379289867973994602747713579477078792482499679365276360713961106886788150473318658304577159899386981400173200553415736473034783940094809046465291681232323227076486720619527103713234794186854655508127604501021073156184543937752827959514067580998671577174795193413397106210639508576264955283841649361280874438036802950789029765069495671828215338688376526647429220731916729724770319360932446561494761818264426880113310417628426486597071669189008995016117616479777699564737974016596107905092596518363470571923016128503642707745553836095412033973159029112598284349358605411434048953556584625441467888227988159544600626291481196794948335443715494045268413006732749243341588181691527901329970449405889885870428128224607909863810602144855894478765866074546139717565997953363614723161987277727032980955523757129298602289530911387925186485483368759991671875667693312809897216981043898136576631138365951407160086831693941974678786136837787813152680651528077601610073236732237780694924093855641052521149739958134353866699472109968696087580115604995026965241519720336583325795207439266052746732427671523360349453278091050720406873319879023593215816858861580137326223612442790581879974599389480029557813691207398422780775216860229635266080786787192358187363411545118025923134710254846280065170904337044601163742351896847726350675345127117652747990876904425681683659014129034653057311753056436030063694449626317468446955812975410211523231276964189573146347808561265575876571411886114598608960745402681538893718221155713357792138980626940306703836986359706583586879798595097012489631064522996657323922134417794859236513248370245513679329735372190896298493027629342574269652937001236792578740261148684851328579475658140376341250880537896393614415027812485446431029224982435702687538419184478430954558496364945416471216848728753017955322090733959134732661342993049613218996801853403907076795232060419539347296258148131703537444865696572411841573205865848247538926708862807497049802316737383972946158473868419242868657375485022317077424591677404192285090027856222664390523302588903115004368700847503371701734084122231500210055762292582727476618294743239661505121781591890259028786014809803194478487101534149718897023738142371130394209958778483487394386617343257901017011205955565328299378258769878914469440919267540640126718277353778551486685528577391423559686735278236445189351624681969015205052274088043502944709291222328415762584953063739304795574214830413167955859030960151134973480580287046167380378516097589727806411455155545125920901295706079872601901020556554771920360922274013349232390151460206952321092827643337716087165951623344612481165448596477951156183837665464032418265109994804172958085008147555701866722783330189181363698367359175076435876255877086088780704390752112161743236934190656151498476562282022135989891382302489265980174441005830931514848118092774266432462544689150543541736840118325738853426240919558725117051562480041541981251372832048155655266690412728463088420707163888875169397716105207189608817117844143590479786737503280935956451844321497257536634174499307965851481836775298088592939812628392110431038055843262902200610590933061664739003787618927217814226924026360958170927831152629155816263434449538480820493023254283068729532234778358655649607716889099661217065959598540087149393475618511832563464708028661513967807112113558327120881292108043356553249067785970341252904129833885292982806119022005178551231353057504606449248249506526235647268640642309721261211208465078935304190496561155523090734120435340343160438135460962833730087933331666645495286478136080635704726744075344238678192722344738749158626038488580563975239957794337893586320865056826241389197341507599180380214055061466248274232182023290322735365838304490662124806053100566760120261994265957589900069757927693287722511637803208391889389435479812399006545489245941416339718777342005486602194783433111857311222792868055716622153474810855159502862460579013424935916106176511070883937295477795677334694893420236750942248241235439995223095001693080792377850951222909686544904638702106973406658116711527801331509186341248298889668712842600675255969881358011381533057705758620577210426980003980965571013063951978807737252237154508459269525895452584208056668319252909720222841193874117922548154268313708225861297298102134401407111654282815607189104143333576921946731899354234370244699496792511613519227616509822794848485894501130996988546224419650976302016955282057422017083284926296208178627940698124472183092136303935123389679637730922558995768348638808094719773474649553904299459662810597623507676391362573819155921294993585778484573857245500783364956075027075647992678580650009243189375918663920453802011950077050854136866359344940603527698644110273539078350094057004364279195155974063868813828065760746231263331332362609575441750824174347233019047154613377503038149771942842808020004453757164887180206356772293245944975056117622265128630749749239628160185340889515149322502690593488976001552263963856404794839629637589109738870688582262183768157149792854903393264108228184936739045092625608792898680406827861169769429589033552375150166247665813200846629353956300715226353849980326147013505473741604195886221370674838468494394428307011411003033985977819372115712682968050140617976592433120480924936585840541612218380260129721025756092113735070198798290975217498622962780163767197828217465739607732951136956207794220261471923697917733537070550785152587825261383988399973843967958146556590829893172798244416204024005080167048975453019677698389077419765121195583273834232473627053558845928783706353577518072267323729654503660255694928821856856249898155291240540293290425529131934906882538773488095499671363715932360969172477587900504165338883444615901918039200867371290540049801703406137367808728923198514558300540020727181654040429803015681345651797582087409942494242410909755310874174254798637795916608249978354861658856465277674396436166712846150413711013727255936792837431913134204559158708657372012366122522937783682595826562245152733407792257472411118237097001826981084126450453146891375682829681837336152503980445655279046959572644170518702964176816127015677939292502839614575725755664851340674613593547492821846280261654413311001378800321590018830953568091140814196384718067839469454364606010610267920484025361617649401994126189004882971034200798585335766432294932947987341168020048141589851679550392944179861611164339677156758146342468927878182789537411486718264715966546000713402371143299601881770388415755312610725896813686073433533894975328571394496120815857663540959051379389405453144218346780829062395812672346904557502154761241226225124386832269381885538511634275108109908588771081902295142399781811059622348075510263820634899574862347340930687571333014099414381902263934738680727873676173060236477005406398963284665869191021977120651050587363230617613497170336949944766486697416265633364627765792521721598833915183845059907968773379442777363237998010727916799725971715579857446095500794764582006824919956270767323392224392510999870144533710353581923430011207029938163971079324663347345454435675042940048835576811562285309834667587175818087012532244022129301574533890136374068259103020767687025144090445753523418312048408653885396445098075084036765827938747164735605405326063096967900069183695958777380263843375002867563257625378013771461610839790861738430209579449378474391697921395975631814602562429061925496296369355343183561452701954296275477085811771198761350972234744038526783284849466020559917669465940808288215982823456761188928615150679903484037641757447876412363694604960141898920852692954688838355732292037425843256039940402779118291388463517899099705430799181601525255883953500188645703746913293448559917874506470930695763199766450031802598553803085225267968121118834208242739539868399411195744873232610364696928152279520939082434776457316655787835311920156443775860766635717150911334890375507723198673641894274250238707455715010470918623469112162562179731210697517055068920968922657958751404616672627281966841927706039459610947067413464102079982657361361874842938710923607215897156214203792294392650906438551844634624132360811770689770779980182567944299487906624883145427449592719628241664004709603755499321400456414732594752422431066755082775265704935900791660901449493914373441294748852155038270482482890498497248099286588784967667035727325240233129046103034933424255191949063694352824103485918946364572665505446455923190694873964992449753355806036308018998451185541489899572206317686388873097777169515199300265858970334089172399955079613416349465082375804901254279712275984049460308970067423347796421396361178720752535907387568136825463684199739028081661336290299505167778885614608334501173730243632542116820774926045005754658932120190503978897446663783783634227808722296023048071904485133141130098921200563848662845930247742855235672681127873792068162409388009965243971760432048348955327965588265937994365915976219463082708236467853976340041879729876733351525726315098099897312692298268811166044338597565912800492878279171886106380914539281470349878787111033858650398259711296413525744810214683221918246740043113832624177190184491768882906108092102402923510391816886514103822959603630027792484000004497422878619438553965879849167925491665389317514301983769209628491347930160945053848895140189007766551397590277481159136130056271700479539521409092314933107087054196910676060819586724381646670914966597934056091108758462513376417304641081380061053394801379666005888223390495255100349248241067826842283757221373380744377439204354519365578355506802861448814684761468914662679995063548721370910190303242059718694595718234195072274147693024701409716573524893583741911908410441541868452375746799686653682609963463329874741709936667123397213968512965479910118152040585097372180162525245010294951897662344861339487735684206209907382078889483975902189575872620142863023998777487468049380677496271983670466054635978238816988359502517840554255221040480136352861347955785221006037526501398509880730842834391694911187684442173435876386496735123475431912217975633097751734609871928124840682708821127192213622826392009180924502757012530809961654754830129428029742974009240584929746646381400729293236323496369600765774712654799004711821879895271517079244421248262191755823304724892434413812069649757038070592929389996669824710098419215661100054061390185952391354914283367622642009098796472083371818598390713036039607447619145650493647395983035202057095262425909667521005012711569146808577827179100377292150290069344989643635980734596140938524704299760798536423362817211807739501665356428696901382679382579384363993336775543346063796892820423891179976296193070410011462698113806060750440025279823706305484739812543848405366944962687795958269640341662943301409932650190108935307184859266807995279666809860051238967882706651405738650811694928976421335698048155669723375225355943756310885501790048159659521353409475605588680416242790472142720687219759273960088966025786578234456025142511089652129310823988017845990003515078357711692879818562147222703181022046455515602751786985398475905925519020598181432989126005538550058338349245900534703182874642938098578791075431276920505959818012430273303765744643724835283190393286642415414625825824114772610221113629281473911049397078589753144239343616287818218463687013248011330911381405981994630795194845953839484312922300331298933842518620584234798852726588075151024762860830637234605776145846199217535464602804978588418395552037403068644934207732330800236808320466912836162938214960805512774381170924207194726671431513993959411065270824470917860334348828414496319569954151614062232376461031477549599679734710540961250324116247079740710884813796811577481141623892485891380318509302216733797755625718966682519451534413455336764144839855435106379980392670464107682436370724074195655767321508497211406423173770970943762040999464405192098535413790042760695784302552183532231830112097662457789119946016654347431219502128204781585557704109127435058804401765117253740683914702542995416036627463786321907341477874241581760792591574266271823018495828384144743641159018689890508121286751169337794300240845274154268387259656226698203104339293252020038757879447775008333317927451551062502538566507388246552355102152645615060525963828429931931765620300421872116360390045213067662298046443155547774898344370513019885959382190494030231225471629290597180172422257577473291469228797801397452083075101283949547696464705790131336305235456254423928306816764638544295896726729843191120048516859472671112805365540230662677489118244887905720990865333633214863360620356318108549292385771008187242214895444907322332262537619323011397911543162032314179198934919010814574817563456683806825119518148117630733449465909290172740666745102467177587160626725871952386684294614871793979506505612961117692783375632050878053197540939217501315661030433630949751172233219951777703441305723904298263514322152441975373794690270391105092764483172239750182552846666213338109595899385917707024722585970786881140045578471799930151402637962693462815798370488641632543403053985186915127144864538993576209439607643413229180573714832968218133403943018853364403182820491343478747459649050097934039907244595796627315911925131166455693398266406663277979769363312774013166628879897766876463982848959062869533507157855814648553210115263309067895039752768647739155382598769942303554060682026983143204091413258060553665683803785081611711549200715562034450940735316704158105174965646465821823472941634445807355130898197283910325878396692879604698387526480302707851581803277132385077858669327439760730276041002596567807428705363775772684925900895148439928979610282030631660300047326833445884218618140394871668791879081617368833865000726626173664543752726794838942085578577216456145278122671673346114180458335916343655329952252715912416708459691220461900399328622484820118042418732517578804696284397165870613430748949263620548316275982966881201619900686086764138231314004681880967916742038399461008525853442160661680330465908633790217320820584837420048060007464284546184864741764117877850376702129330204431125577595591272089886773213003308660572942544947471071831020348672633304728300352966427145997234016547475452613008500382527584040134953267980213613909760831893487381955224301897776286018574652635128024841795815784006355342919594299619018312419642553658688707985591783152205346435278532307827239214725209786292410708256010451451459626394482364324407718693773029155791369619054886276245238401719838792353671697841029655550165166881113785195606023029742412390823418956986062604291483187787239473846127140082064167055070140662176084134930474795341800245715334067191521671771757697314595989870166330147566015777068360140206691324254429718689800563230974225884359524763814578330174592453368596355311402990030540093920674059073296565521703319675417647696307813837345400275014471667921830992264637826134277716678365982810681739792678100982611536540498806075367323801357836609682213282296236839783207251217268203720080441581556069766991098190768254602762052560949757720523188346690772441498223257044216860266534651899586589211346522575427507149679730597310080146019553569310787158751830901994763619683096381791649009619583415046999267913463770434023568274162952109291291950463793102270465343229996664657785672539799837503818249035710928492336453275607736807687792567714142823838356975837112808054549727129462643496650917257146269464437881777541719433453513853484724426404334837982048017439630041080116446925463462797804500631487885588404509467581644206368353760716373322383640123196008809540625103207784494163760042479739122142542494945649500661202925269265879231430459483976798374308123904946926654229201128111408109059341830140096100460233768189926822469666479303140895701527111787642989196160581480839701955439989152707284415270964987602814294481753564860888236642561338146974149526675497454053120409533485668365869506245210243268991575820126775605325999012021530837628895545914358453862774915476833391537245482410354686213759691992657829889567460829338662065324546592150627815893682480133582510184867367342888623109840609539037435022877225624352222445014599745936355153886867185135840020019766607504047409436367884331961818995932409162590774630916434312958339363166144963620435849226257446900814672453901906120682855802102098905544347477089051358474063067852244661802805609352633727754278672016421169352179852281581881380950780661813375749188493486876260687059720420270369962957355060700736788550351595345372411596894337283634181697766792879266204618230779078323086468031609334133046848717561005661014114903978923401397201093986711152372509768052249075849628103224893185301588752787891796325701135983387130715325190185343516102058989430470947786624638809211922952176148820715622981119319135154756899334990071488406997209684138245553355473989245209635371194138414104205620234235231063511092557805997042293375952831306879988345622371509407496180169764413860304355964998648356885899305228745444223005652404267480309118703127965542980289083355827494174407339840264009579073295790942213447686969504141839027797106335927356925998487598514182113004349912639200121030088714922632534307961062774731721264136817485342485541566210490390493586802481560434931434078500287318119136932474145414834003037164660633328310503610693199887070066457584086941957178287790173772541031502880259952169291356773073894018772291260591215622958451814169460776703089956001357167531790425758136533795794953280760025983321243534478278180729731786498253191947829864346539273367546026254805623146095416373275637218427761887259744586613834654578784744826447173192472794006397660568783716395183839064496971203823184821134357879576779185456583873511150433790309667481307532762022872273938085327892746888015240363152526163339657133175259363090459421224875249507376426160830260721532027180510036899712066209534162296457605761328186968023840398125845720447846245691810694130372569504381275124110477253272102326954159723785354419090844669771331795673702600856951759513692088622294707655617122514021192440384826342463142868513633420095456804164237253383925047489745422884289270205717531109088834507162470640209495777658472414165902442045059938988874747958744061156709405038033018656185071902728670579429001415517821074945997099721309918950703271306865159951256515310459998232311211332873650332099701534532211290009486881020114031513216155544465921927008081607041401185728525871861290351001295206104697197397107853551396574313372589398896762859270859094749984000814593913569687717428327547657638498415556732588469248654635289405679584438403999707852615630987629751035573186884010269388647132185988397273335004147387938286949410237997779944464122617069591932690457934211527214251806926748194839305308032417568008679232984722635121475983536217062304230946506114807683995449554087954630030109436007254242226619979560360156532510843142936989163194208476081913936266833914434887989126050552377096900586525445265963029145416587278095345669713510123435359781199624781275564559465335647912050077874394548750856351206910226142123682881369149904486882110575634121968844542425543286486523028616434474707803210492840118721136997192315796347095891303534858383685828602947609666336674997755955774260838716880677116335587110209862904072318119632656000720044264269996984393439034895431858300825908657764559753245617018312649428838767072614433811667494949743656446353252809855182395187011420745210680267963613372890130559492536968652606997777860325910672226545560797016618263076360329243865945489296027397809120181657357649864867955110630132690170949774923396241743675485456555268549435876943868798897904413422250144315056178979189698181455163809479559683566172023775861799559047821009326395692228448251486743208178041538489127475907823648580443281013087225147624199870646995037712465906582307784061535958444937055113538043966214782534144175909915983252764859191891276441039508393240668063151467793319188048736700345252224143255302171876672880178754350155723575924410048385272883018251430372997585613817775055313528733751293471060718380996473557908925365795191432227921005441055954395338602873733768048788683076131440415427590489197882325573709445610281874429938061673794414415612459989562330472591306435928511229163706248283861012225687576926908101950039806519483155195934048394078548846946954878989190444087979847482127515250969790809720208427544312211631011619897634501384138101115373153472418916781383243869173677861104750190575768964300335031645830067180610465674525003445458186982387247230028576536963214026339030460763464045784783336370251295543983832309194940670612605309227331899592122357167171331183386354967746961160449101339930755286270206259995966755950311034180127426924056586638192799750372527334647461154063314966600745301962752147953865212618218140976102497371156060711992500128829877495153162343956970033923117530549964619028102030548044067122785383361120228016475251853027668041817305390892393364584249488449671925105048872620941985693072823520573778760202469577251911030624511291619977675641933627361656588044693028892424330865208715233613975565455645958298234310864875637801890759964085687969610372041360240477458273433065676107513783026725436742764137515727288198214953215743967433472317035371261000219647652801240134766772886019339407608628047713622029256180410390039735421337343147939417464459373356137552690843176199890609087293900910616660541140874106213632848612028324980738836235556221358027996272080974940590680364010583925702761839583753596101173070414386396355367703435832931701846025473911091683941299095044393867219302763653612428074140768685072608641092713269954137228369730524135058425395025148303820883614850795644556378566019809983416196024369641881752244173429418494815614745998669759535803059406558664970045247115066153483103872830395874720905709508526677664422622370897216408001209783447186063148817820766263572390198742390389312520867746033775969957867698924531367009748496032763746839601142731054214495021036342246520092780197958879159751508943131533258864775200464924936155916337951681834393316961171814745327782895437361025996983034065001294749750076033402934708551437332971997880617678342464761537814072580333069104320247070856046819474435226825986902910592087496391355509246317004056441696063015649421377387010426557833359545399439496060016534387737948041867982020616810674854650430214704834296052663373047333590855963873889828923758442629008023254315854867138197190383069785386146050396159675142080743387490298663298224247420032113133459565320633286040800831550031942021530996570934160050134234667034241263941125711691711213863890572280799644499403944663817308656246773031802851968227185858804684487869346162281366394430337052446707936603187784262704865185940527098623820367819594794965171992113822866035271088300046216530926670869880886799777240437932560709613891618212580459297193785306411425002520355744818470955969345690414852490592149941717517546838068422956845815512228638444491994117252559115848231511880397427835209435165815613292182318039028397530134230349180453616481398611689933078201920688964786175846719760568780410071880701596527116966821738544481585601135665740533540104770757101911273208857509379637180625478889778557965956536143020119563624247600295207254617246862293877222520013789107804456993886690595588736574271737949200132346330391780586247304548330584079462881513834114316173533045729574701785192263954142319986941246568062886306561360041221548047197787842762820179150970077172028979814192020858377084416673173632956786045613022495398713123114825418528851474321405011393153063597655758588130451680425856088575773281885856802594573913436090398511774772995470959457962141781017482617189070250784346598625757657604410653833040332631767679862528662745344063917115810401173359641580701951282651007213385108053748190201076992863268473288566722161827748245237898650313875665403219554239080061054503617641057276830526277521057437500718814702573900373401765717914151474661303871865750375078020011398951415029332702288677600103411836734591827904444673412145152668994585540847527845495360555621162991269456673861805305046321652729099803533140193458203490173453586247968033479121753358351858644863533854649503468880795240807547165465634599719455971570411061382804073742007572254918626923343251315329942008361172058714317543826018720654622355225991895228127868855230874327605176373808862920139332601937294165484030824531462063774984794501526244471075192435478167597549045105432949229119865673415013028788663916339671095940527621173594649369792155410778293323254303994584239184772850931523537587282601183771544175540850303181654566574901782734726030719882095846068701089428932508082804888276407826868488396707590228547423839625007919294304562652259773164629556100593523849045049216971602383361465131352769581094677638788009137815604834594609600403426329598706673491409316322663958892928136258458164806159299367142336058127993895248772134086932468548757760922664416423426247259305677921238100569664459381033322189788738131316270682774161568512865577054008484488707152179948118491453277540578426136859179319021558406497822290256842134847731175762697169852423765865896483409369582545328483220639974703047265940493694025153856693265559126810328122506082062765024846489196416274800074979493594870916058431737670061506553627167630788241386148090704463228340194752328304742503499691563816152892956816907772610999384124107160620064530125505288253020748154466709530576533240421560758864115767709519663811111394779472147486760829035163150432173642863613051917970830026277529627893107618183468820291091123164927522051849068489553081513323652617870870807322156787632615538112633535872688384116417132720548490948799474024270977606232856268011672583933566986769432886401097957903441965773908691324042376602842354906295265651946701962038926444423128117904861497472685989403506190117095386820477292046635127366551664304819118300786006107164428179235394072131741250345106916587216697363141050420410769346252663063834836980885032936347634894426399359722663072921277875907512293127324338177161941964408840307967397904812185237568186609246608216783031456716997631393765023193905614858001451345444866781682918421754203771887118037236598325571675043406254353073844019097574921187627723366622869790192758112677387366474607028917191356429856991642307358880509006898893158272552121393554900091167422520610245775074960773000713898545031754729387616419990075987405079888330653879379048776780591673182042825128288009402711252527325123647398652917630505115740259463340851109835674463075132435245708765314725278668336946955422927165203923596110216135043277525727276135311001009392652459324898403630236448045447025223139850577043803349794445230363731410028241849767926808439528407335424204960285669876216687803394754186060674168653100896217756110653007718796921887199360845456244117487372170950648138643250833051468070029578747090834920874213339757921546844839537189550964716819009073400051130390706977905666647907423077711330643702040509903685987259614588213582806037749233902192667994921757680757823688226500251083562964782700152288937765908325762752878467133128540396889478708606894395107995978044612469254438285185652483532864245369992195592883169290071067995447464193343930590987603408277634583182534884460593110362858361012664830174069288452869786579075819827835880955877657372266500815628795607775820355620063463893500623353062417675364066196757372019318378298959861077490200673966511550822043378360246023409930145863696772474407746022666126337932500464546169992626392744821545331758620260502531899700142322474660601971061532903382042650832034422273062582162380477000377400745551850490841913084302281363296207869856189904081789650090675749850950892432400567617250032635251736739643127445429118644414219976958131230865257680854209133467535265211456742408439120290510051065040429372226293412322616435557444744407371258967304642375907837222210447390193946125459675759213349504183831545859336065380451960375357130646076644986916136457896095911700759737172986449042700626510031464590875312509773294411276981634975455686514272222818394710116183794476344572494023756711736173099085078833798773382995618116363431245300264959588448077389072481672849034966244334152994984947120908788733006830643206487247025007951968061232871691620508013014205889816349459838636522497739169963123505958858358356127737899783665392620599473816264256379969416262917278289309459757246584416590536348555715528833834931628116795055935623918725331814080992417991362015607072902696794944381012559048615912716788092163786658955035299764908893594132159409077045957139702113247744284778285409138507686115360313360794036951849359601048177106773144778413240979213087110304348297276628349143603911097536438223574365898773765266186873421472832173160844245679155913238895442867131825956291843210520488893821678969440568430134371015981653408573070972503248934699578682361209493738688437565951782827155167426216300619318965405700504332531364774129837329777511856508642606053146430538196807470256644464076568066265427685904210493858098852313155313566550685628273445053188096169506699465965138980996380210359006293182646004457685575491023031923974290844832884599851084161540295252201976767548151011511380239650214867578234748443861335721142243842736105607584290126954175399270540371052384178698127062934108942558237331215554144216978790148897980544611352111513928169909149993495714832282158572800661995325125431180213722830558970442229738115790051525709317942377769574887325364983847846288931856071965925882683872097096914040123582411729747961809714786160169333179411014201154760559618802433012566523632497942994256291318478368245065841749734028552080631248722850027842360084636871167541497672387068998773717459715495152516854805995419293464613225703347737038071834855693208438719682320759808949909138082162720953511464041171679740118542491160604655028553177583333461341059556762901518641897049746323536843337481801262016015714264976467827494135723688273581548708088757642797130415529756363576271742215021247192299157963648925098703679798841455112823267157193662473162890959450542899357415247998738302386878557674331397241962455793163126682332318385114958276110624823401168676213903979619711419022865985968592442421498876357249757884778435593628580412925998811221738326095138909277330529801679300620119893034209907117414684351854713308091462241323894556501110212100307211417808840276619159721847637356333079292004450112515496979260465888898903571635586081869968290603340963453696897176952581886994415426507727867244697147997463421546169633779470441329052565774306659748244664350532220540423117025588678328642483952573251137393778726406194327341181469791431192433506516739016994021271517188287265629352325774375569221710114263720824248680521664365886940824414119623186135081046110653336078177527849611831453056403125566248166809613372964148155622862009037263281358284202492180767084135779417163203515372561617662936806722607122766713295232947766528395940271675694555422405530176218180836946011557966173933006849254683447491200271311433398269494284762355778931935613125451575856923301669868500834640681708278507456591724791002186822399974861129195925382519078629796428302293770308965464377924967237809078459659545856728583502249421714745839219365141153435822093396707903421158063233964265492656657887950791699562182061115998029453241361185283268800908353577182125281129788674353731739738869798450515328096172103550538148593176154648347151780867110012437943125077407714090783099750029396051551564278998905539458120701854610353345113746590152680265662151484965564671537478026985434271632063407468891821030089006990401850752832392290170988909936835352841630499613290891404286599737192281297872048987768775655612858959278640783893483080832766061501483882807286937889480462902937926606173687326044651338845445459153014894124220108696637027953136226852310507631576369736352026161844533918357838021029272976001285372148127305648629586450449660305986928544197703356390489233616619606088743315596659228294309964742237677583625780019994913253232884722113978972700250331323620984607756791535866638532765651411504747523175118638178029531418018317673841385853660593575319450737300641086531503766582630174625753477270437576073720769912965007281855023181542068908299318904492711575214908474090149234575312994016244622098367089934915770031625444796000193764507226806833889911190286747723521173482615943442937558671323820411573539949201503073631277065871555916687710828753069823589281110665241780002202905443254605690823110883028997458225261214012739809371656309432440769013399729974378378072971292295125421366816593220936156169689454901668676432958798668636685520758419913003353348807438820946452275156708116510997861794415720621804846907091145075370329007378578606670155888024392820992852579633385000760698590626360890867658456551450134803235922666801341606985673784677267095332407923290045983770153779268943900003752330153607184746246667765125953990336785178765219235066474416347914532050593442028657032124616216716568549631908199300209007065002127626071567363052929423599633953523216207662240375511961496381235825246293435495125461646699804278059153042930109150991876299343689121598792871573518692350611890591038218398360267644273533052446137953567357506123547001931102195847644361363481760345539773566611031231687658295543397492777654032780201525038428330347928347391118882125386186803188695422269116117884767275059732724380377239666715378519965711813973890403822614537979559345047202205122621291417394874960575682371882574275006285482438095255786186922528317730381547453843254504444449025426663868509313461983750383770954295466488163248318256031952645961524140245459411496606746540267538076033029574687633555619086422961008826706669932662981715496291127116376766528561002837969479244791327802466590105149669626616946125915099995298422818210991041452482486286870049918391300788823220463282127160791581347622480865667086565052525284835073318466694871372327766918504720315267453969626355520590754577022419335076253721199932902040940043476247157852579322510245762669147316130999842597435930671440454588612095347481870348312411257158449691117357721350524830454619983231795795302069648908858520146217809040523856870696235157613020519008432709583084869793817522089581625574533615345717463932166061101047683668355660841227751633944306049456851670481167678030648092074903342125189755022115958082631222735139811352473908684048584709961904492458344906231618813352916040901294777179604836934145481851458537163103794176516626480646305621433564767432350123728064111587153857546235472492314635353493357819220219376451669157774055506007654121332818416363296760997063061736432781854402587436638320976140149626682177881031408643144596153631313187271210865474246610696399279349793595442859598875489306168657919515492814663384284430767187409345709537674463854852229478116845109568856794517626745335301775311884279496408138011152291880258152035433678314970908985535177072356679096419980316043804112346102638411355771864233409446488839677982065634448198088039562601492851163943674002449980480614843670277559308116348755541784225346147373959981005336690638594684366441320514766565089083944039729940905865719823719425249208906643054084318842511885175708156286564566881224303004376191922893167666520267912251909185866681074913176700886107967641470660748918168522305637589039271807777509706998600945867622271225165511572608149876362747991813751291459595468152822462202152259762688059830046812798603797117277464133928799633086900979464804748492393633690267596434477976270925681706789400086640462415026889717811179196951933323586190256219178708020513636725210380123766626596816637823959776510300111874960912995957635046279608551317021598426172619301568896520026636216943517702738587844220746757236898869416954899278564502835279461381970464239353227651149604197596338048385473120626734614415228676304593643022782043639143078327752837259824260939254512947318670182849998661974956434370614225363789053487195618456927564284078942952478379243429167330740755982054214789564242170151977488529559425117682335971101528435301814543921713860022033573917494392789826648412090843211998626827208255481243341839954538996225751312912806235136279779169335496807185067009281141140107409352908468364614052320975454005285130170584214255186817772698748316198758785905637501459886129647777188605261628415140238302009174403942571814037309928285971320925527830094763886185433853326672694359296401088940142018123546427688777819219000473964396345439790295381207546899379496252093541293586480582106571846618653653119616625075360997485544259346322553848955400222156905814147977596302135926086286543123421351252561465474890811446824593008711645026051844871869738575510435135100720954452366937931175506680493341910436781727319122184004211247395728424332946988854206603667883898444108371231658093978182159243307708281529614076404009932141376581759032848493149515427572219296805529340915281520397677674173318467385966394627013362293677499608430287667728003816116757626260930765555189047172652969011097165184225511652227371024150245124637290096347842934143982124515055314489209656128487288070569949245495075505303106437148235911713133632460506826598805187663183128316584070506739402001138123962034202106566069546044043396896321639337953694184612720261035449280794911154390572618842793253224770644945715368228483316452417150143956526944345289036251143246468420536683151297089222367739894648680801776075339950366498172067104454325118270753803427518554386819551613929810319390775574653554055529438167331226521531358277866713961185249046421605524675359043365676535432633400094207379818816578971633323002521458509151791936654322741172903209327801949721969373552002670724217641158093664491974893819035401133653031602133569174954787538887227944721578765877909099913279056746439514049670202051525904280734846811364434940657758025966499109356895782226602507615755880041919667971150078925011837502714232582729848790184249003332357774701651909483936375387784927663219317810080549064444729558365343866456252384915600854923970854269271148375120535849625221761360300485324089226349766664560201690449942756132814658999342806954714059567367975299879292614004259060835242665315099545304853873047316634264236379845042128768074482852626408449128508378522912278387573942021692689902095527028476631321770694749717884234501237126518640151997172673435046654108615717463111812401468304639318469614041020834803948804919849204550763461543723980794205831177839596002468371728774009437973999865716426686951069946229377383428806134033908414848802672398994877212017338754277162735092343602199693883308441202255296960600330760791227912348017835732747143663761757620396759981356371306301087180868228923238074882241864839743559194980751397082330522682454728983022204852314532509807831983102609474592868580098870564386063104200751540578241671080781838957870296544675964918090160211912114706823489819966002748852539182618985871013986285958231986881962033034425431449047870364521181633816666258123021159399737917213309699990183185586645810283258147092184772018069015754795605531421630938711955048403493754154755428056017898019543274786785917519321472880753243935074207849467031448949665980636726993348782411680486206717345241228752250620781897638225237838486257949368514625109953871118622239438036790611608462772125310097452395039743502269537473034478639172874026814244630228096609180752950889664619421932492356068115127441734153929756742708218258808585187201576464027674000579089221192795445978942031965702092950966489571652443568768017668643012125859857093382705422758596822262648567804538460557570137585747705354925819509375826798327169772022110961571714220577286914594878177570857743753709171753611617709189456128057083009223410379532688731464331574566826620085658164624912379142309742567073292490121911446583709091460288303865078176673938812730010723881542745042866616234362581079290368642096093333754756245013740859010310247125591019139708711810607611746375464991911043119920825142044669152531383599433406110580819695660285007462703240486656450888765365952501294970421993494340074916058777391350937665111068909470291045419977051697292248846817731988796565217858932634665550087356215007864092545246589665978677223810909258508739205067265818058765546779512534590484723348476824201679782375151700503473231070536796762886372861221776940701920239431954868178353763737467819870117918741204052709727504833026066842814302758812405631464384253425019274696073279430728607170831655828645647338066750652884624425972815035185419737061928771172276173923799415754105367649121556442675570007949606598577367403926659553002393766389262292135890486376937807291020135889245767258792921884344390088244423874142155534062360115634583348838076587129401805122244901280355475903924502471769329465533539905185392127414018451419593092036309061970622099241718610681592112673694750350463161658369416400167540679850212988242294810723600013177039599539194195439487215487182923333703558068288882851241576000437108723348165578490613799753580620224872429513001898930578338699818678736209315626941094900276704241048667322729403893248964646488730308567956382139730330962683463830156366512762571943405315428858179463780863510366051345638853611636966809599237340807995624783190019231243419119922308184075576818323024972026395298581737494975562372784547550970811536877488362812777009923108126502014105605008037889759124149030445087972046364233528668935079515075680738040438353348969048635311922089583812305676061192683990785957962598078782644933440622719550031171136325159939340825004291746468103651903115219166778747336056197964010395517947098170382777928513669157365545681951639519294761902604195057111607629134381444863766346712213080232850790611083814559630006073771720556634518173121883867571642023807991531997428255263157760048860398630615459099727020959188527490448327646538293780837747316907534974009098569110655517926073241455985191744478183224040333080513011800538685939132547985146963912352506951749040693905330480357927358653339112652274303829956569235036198543089290237781991330856552171068044615377895230972281464417858933573094641087756578091760028616325421434732465701246941755271260430668785065439867721459529197838106695620983411787029473755688077075450518898437144940371552915366005940756505983788318552725038970852605423405402131686009723265659921109414317242689222742214744656360777541092211036239325060990919553378238326703454477999804464253568346506366966143943930819637003115380708175742421388855223335223013360788313744240620006532949739232335185160638596095126307806692901453582854472723113185368872831274603183555210265581058385797245275501546982413854091335466592408900575774334162689507574401219482090226218363780828751516784116881549527629943122740160404369831327237260628873716531832472978709930128417837403160982471292025669638190627017464223724304109216394841735847634053100645729529799992113556642978052913389482744490692110706166341484778783750845643682911677595866442830530308653564775412287618110695446178480360850750526667697020620295358880743497734078455907390749076148193751504369574671298901327612157854206298298643199327887301058908147249564483135106132440905739217282809186818355299466585172422077450203722066826606224620541815626209775802992351327142229417404458420688831248480347334924787789118016163809354840624687638756824825837749738783868925604702561695767867415503137343104407563216922577847102883895128959143683975026486136738183271512524633387530886052505537507167255092976498535711715818623886128039382252012766651331161544157732236065377262661630804507979609596268284518408368555368016834530051731761101618670195518677486865693422732307776423770425749085577701168589874696225984665780440126822771593022144778614500193808702869716220346333761690176152001625919264069573298590278325782406118297254516952287642988411097510712421696592256216664119269011153965385247948900177123279594819045657993507821154891344189399006447877176108560293486069235129471437883704999300762108726606557663289443952053456436915406568011925349634236121935348269682741594262110641269692128341305454004156240271011216935651654683235513860141454502510393650570627858208117054879949344396010978042951201555480025546853806184733591597799866917429225673163145668031909147862846125119375156144569132614784391623071320739305695080406921746785921047953378343877271538453816117230555986701391914353956398777320366494709363685211860972074748012344137558577304045951016793524538825936739032305068838947083503407520091919402276055084730229223955203887049868034731484113105783693189233702808519370739395517220420722886349176883362569447471816468746949031275844095626640565319690984832454333682368814984866325564035856605476652518254679256008381152183362322542207777072226884086851349931651326644513894276206136955787848869780714647650400606195256442975211769766180286544319733171729881244728065156516355429089997755493587257403386243119600356176567508582969803423053238548215180302095767466217814267495356339312333366945442989577814424249107375640549315921264209659326017140543555920107901327261959014046599283293274970867199587707326175216373124035792087147749211922339785979947501200088292700927305304585258195406318607010539170258147098742025556240568701540401035080162058378467400260155307513515993222303308403351511871976470211364130099811743750607072158463472378175679897552006788282097366514008914567979690340491978509978609102794865888749855694090784275945837595784807953715781851095990337414897657376614438014486082474532515449992252482937924950397094983906579792018796862094440472734795149140551169768666962578709960256619087336950392365239724108737097563160909764654519590574765146324667686661689285331647249276439335961359553475472718715704524196959591879238621639928128841312529244772361983829207363421272538947747941818569868147718701127866193548543542669423036537966995891589967117165512198629307034574816196837671646548239159639975689786899679401142721745461048108515017783988981760943647210728449738355920203009951905008996615947008829869329446073914057671790510674309270628122951076754037366806254218041234757481708713281222398223986034795220759711747360095360909699388217405006326771422454765891108689424458845095536786627077780143530404495628232848938042215807819723849769283254742594553837039565575933737914480287163365053053488277462408462245376042134094621724407392538104754149596191922748962600393893877161098882512931578767540857618593672419295889904873116129750546152025841193680845127837477890307883919090204131165115692480238470773703664708414717297125458727176087323841678363863062899514810070116160571265833748986693584696487159757282594947356939272249649357724840268804956274206863977049583062714570613775547492804549346961157143691583132491176121283093605797719726338131067706496213060817510783486888422258518156939391033208842327237898956292416406178522491176717856231832734674142806651414877783169755395310406094503200976314490306280291361312410095904450306927309319943962795331207746270296006189863493875242305332560840148754742020728370178225634104540941624046342954113667658318210757626871250034447059668821284570621256496466216030974943319907238712306429824584640293038713528130314614507284531695060942603630526136076499905983245146539645322004576040342086561070391488282184539204559121760613633902408978197912295289678184236513930080849770567352280785611046958768041466703939102548321948978126115898208204689743603103579362922777209607120602701705005369452291601151188757990485451560825466472781440998447366751854632280767517050942059183227404568169395858904996779716540899149173730891029367018959143530168263164740806384437576059466142036576010808369054071611260264348265923103039469050226105626104222635914722259847135725346293325273625388875259966105851300955966152315723312519389985766045986743624272793505712819720827226907491272570041578202645306410912583783805974061578070904592373095197917376943512687696903717697196901014144209756825447019719430737087139105791258405108646616261200929385805819415120892983267333937298513747577202774222334501482318123906029893300163746652873894410376061029852279754070603536994053818942322512926206963348101915369718882017384192849693772164581954373183979026916505827673139761946519587633315410762610933709062741411934919676383960550982682187002419142551106961465886908772353217462854689102054944438830990916730756209118764507831214997745079248303319482241552050890889339062695314465598469429645649190336482351444058935448634338639539222731578481603503830185090129140572526453811517351641390778264179753273098534518879102610910078671405847550481058149676096153687545508299646103721229864937182389242348174975293659231716663474140936252726085923078186326243748406545682107939018323232983283314021912554383333200441731987904945470977948551630301045427650547758918580187960455433150975567400367463362777882238306242220201596445357821336981508856441728206511899077097804876094155008365182122035968418834301363690844195644680967913491331264845896859156113862299244897408037119339602443263403131886168393947221939948457090490401150355915619050158532381761003546667674529574749456453792279360438739771873381700194138621848643149235882241184116102744390241265368192009872808608092071016877521750047702926150637102701478858338730142242088752611157878343809234114234728193054544563850171410106368459054787777386147339455453536763865228480653426614780404294150456623572124781832438640432514059540751794421986428653744579671717574975065120350369248634709541677947413816403956247118577838317454763988264696620417302477336991477845035485852109649980527912772680612246307488403936002353100068053654904247610750393826111446846982994680095204513680933912133487920605500498672214791715563872445036448921319876826947089555288152050304545962533057705443393617558963891658632163230083476117076179589528028090787252005480977179692331149369701035304956292990273961626297611750063114481065506208323382027142559511410360463542251887872886815929130013462366196435649279230852740846596194342201230835758739799088327720398505999284081518048897775454675698570434754277070219949732856683622349981413748347331618618399601482491762372039683893772487639875148284649218786267606316406386225426956540418337039147005187135212450537993164147536124094618938719406804035034425275031766298331650831509115380398000343136800888544013528413415831547869859376292159642725892145100202967866675606147132840335738344724268815660120252797510325632770874862392000072171675958816456587033738548798558780954098302792260217151427224027627376436494866805668006813354739470420324183329148062010510130774142291380997730473126829618726282949085146671358626821988762645274595478081133601614715798763356823396016139927458159101634163651886930997449329155985339074342900160495381261870554491981795506161001728775433593806852310807745015203725005139720326853646947607920696216570217211649597445518647459892947754412099018422955655387850721918173239344534660886211729627946763344033925690468230993183287608281194934723362426516673944917889512012791182805224009185361495122341122508740594546917826114235725733296062369723179916637897906506150846012240033814836451779967755080713702266274155256246355762823508248762110087347176484448847477212474915418826536649380184202330748611524357963544325429439090456491030389983695084458178666007907720312002762654546262886092116701840932757580641811420573789888405125011218000396294072367495970324514550797486929504369818251969343208476669238108921674868258601798051462375245100380577340539090762577284980395036680655830671260563890670402644212109757453893163482425458248539785680700022373593376014771198951052472946840102738197149492127353383415848457527546056493943521271186758919423569266007555744043571505591544925120828373703444973202265514553279358988653485207085837684544086168735577392787816296149676677538326215578190673503779442843694238373444836777577632595459430363038331526407689002825714379647583299068839272920828213042829066341645152292155888562177480820756270474817671880667370799368629883349012192745950949512358948041161780525026431011480413171889184794326868584359102184638148119087373545318955016358553756809454748319906977492476790445797190976000622216043418251470875772879896346571897825676813180372363963038285401386611504231184006245895730926533034168731471947400764575991276694872960685695333933188644996167860175283082933072491351824643121354125969182919474955344146922466616866658681285563232272244705349797950194319812781827417911818985042183456409734928269871411109260256799596772821044673561021141276598390473591218515569278182647018693760076896162963452671066365694131707916435812431498398718249637740011457902896592918095177758866777356590836307831314793505648174921784626456120666699387583900443937916299322289776873760507688624530609740033900103410556054455721777272597811536296129133915435698955501401604724237045803763845351572920500062304496958943495357305743771940611627929855047774984311752124588011112235676913358638782225957316906467585130465276346264102062858000720720715709520626634392363061808349889697681380501383339243986146157585063646746043925083598219970207124053251956874495790771428654713991210232933851017881957996344916012866524937710864005301111852940240795642275390999135576353576174288501212112165094305883417801458888214582889085708594287531791264344506436789850907381397961289364911893912954190917594467977394999378571872276806938267084212299498766907745480996771957359990360254352615431168950728455365142524416329954004373415234763537808989953276343783576752683948775660323203011545508386161243155588866048934989248654696380893848050226334565425902766354700174136617290371503436723301337314928986920445881783138252898152234505268583720599801951950904069461995435045210555350461271984029596160460440230680577882302301439060579977109602105020852711899654555792547282664237564204856719272773212560124590985265830136615603741376576410736531104655157686459246027406437511854975286388492423459788271635163894633701183185607268401453015096305568856330974095802620466599115263345016754043685088440251441089883812967964822200250400509689385731924062737612945759545556394501393570187853942102264198315360376819571036469848124968519114504503121265356035397265263742832990279360538057077281002889480664879752788059814322497930699533837565169377357095532437911457347073788354909340732718444967664649789551854951653208068493947613770082114736179264150734441235322540072057519199627720900079779748527554847635719829093042170236387242616263637500972852084265736777812962854147743448441384318318455139003525460317269612088895957644626221995255818834991593316737752627036527836736041612396781679199648927672535456002453932456948686634177709161673705995926301350691106164946832049118673694372546799707738778346584403054118957122588405520093833981268431028802102699773762571960944461645184378449353718890660033479888065503222314600671687047461467511000034072718737007279840885321418556389297522281155047973784063651976502206339582926756577473449091497672342508764424126916833378561431888309526501876936192558168775355685413351406307661330726071723142913455510175773662447862031644798548850823894562575207881219652268206013655715001569316751167138277268956350155900677864213380315352005958402867542139666331185418873711471751699607501947974475150785452445279337263600377172688350284962339312121157096366853791810526753248461424694203859226958627242424546356194707105210477272507145549847123610016570935020869911003049770688803188953368263262850327414082235394038991580708422935361104612345159786253725174179315265621642006090784771510370879959961243014251842224617567075642128979973263740413449915185716862059674599262995272258803010441151277663169797094768033686005923747826791588951438223928547358381848498051302147679368020966930042877509474140289922512637174385138371632111068217196535945672354674816083629701524576517558365603172721633533375680825383917796284406050646853008956077688135390353905228911158402438688728840202557919273751659908984937897631140408895961435276878174580360478714321906456387998504132337115052314755330029792003854610805115590346902909972520055664244774573626161801733410602931069675036181827296559123891571736730156506895700255325805436400888757054140911535827843738296408090447096325323300403679271653915621945105479105624219057809151526356137787720481674794402181315312912907703498686680455477314715940737923182372689221530969039673982353044840463349671269955271714279763061679352031119191679909442351466329852268079945561666474449931819771048707186204857385778097195639726270276996371846628525293663268823287538860663154071120929007009124784955906029462692311945202106082036056540616891994707597600659662838649979013645900603432385230960574911556809978579811541426611456632978673096005738507347329018551686662821720414624155388140326934690746932615121491432266442651793451248043834253278637679986246367358640588413600659686264307627904180143674990622240160910037143862051937385386243601165758686008758272000714195698095798668897624063735462169255887653658147854065429077290943013665854038955444488682525209910045883552737907461052644040486998489442653377307948231354799000390883659522353739260484149001071426621012761113943412886365550647165990148099727597572671033284176167893521709111880762355314215642769549237800173256306202330091025883406928964164395484430038571035673974114382039973042561842420217036344096347589716156958409340037354656159693568584655432191367816826974824916322685674707943474618044112749355315052966947011800338959315291092880625472226376808585133117327251870270776175011488964112440982812229964013536804803725032638654906978096664586133261906125176477333307473381755766004249731473662456652759132545586362803827348796874910391887143839876060422180125984739132179669250071326057175838793000212071290276446661029454270185315730508686050225804380410095580295190309876377403363669511574808600584044531136428053918589515138379672351413945918627063322176252681933754159155660357172457511345789067416185329041968421354358182353300235343134277211814869294336741174177263181598235921749750451369657149227589449876594789767194655185281865755983831885194659385328889127188624655841071381726649389268903477015091791059248345600191232956280911792286448585036420105932779548216878378492758450346734793062492930833538340149938520061464320395446015834465464600003776192493383571647012926839924756891094652981039146943605621154998422125899838278951760376469972299190850536451674171760311816908644122067536360871754151470174833282396517376983971320833912019012490700018144022908384177125965820774376326208765077708723095623147333875756117399339906733937515054092858591361146189203795502196699584607093129995621201195832810991467341515875781933924350618833437125041086868954642066089064434142469980760498428133409369117555672338427152649283703146307946557207598336347476358417679765286966321856412466507759983958594551211423094958935935240616976987578570199297451161352584575143891469820442953434520285555098456553319191617005755551595742914071497325634356191908664586485029643129008433743385480412372309915710463785910043424160393501538075384519801139243177645547168229791862243144016782124800005673819531530419105692806305971970662214099842305800769956353818279022659510262552527158155043181932606897220157397079507221011227394372994885739449822956261521549673499087114429037443827978067805193216738829638564834180548814244627175434069168820932635623903274831730688445779784802053554165118875520575666632992905723958814094931057420161431101286586196193651673296140294961279237011140893323476696463524368998681437285955394514808659106359104129550587689990527206451824164877074643336292132692440538882837448643853503944443379939037334320894553497536506063805526591718893883226850465270123891449072362955190480414984797137846623674437198752611463837683013351457180065505607399061445745568705878044417355151873670597665785952250545117536999263610588269830197157605071052441161212148102634678346123406589828827873995611785000464674625092087894845799137362723921575086459430554382011980423751964333328039697758162328445523259546377544537437834565685117200731278459072916162152301519014772308815231439457063529523181147957835261696091290143760354237358851340354021898472799824917554039155910957478836210675397053180934435980838538609520390170730473049697718696158356579178115852552866290127464088178292307243088179928910752263060607291775003458441402296206277926452968052861871363258636133275751411779559308894587074923671241606471385135072439378016767984772296479526270835343095020550919247881852004297488862605506497769295770314528261342239871478525852788180878714765233916395470502567436624543733084367565881127267902256354718297400562401369764730677757730910134719231102511284028725199479770358314028086758886403630161215043923739683917917404819971681504227602340262452651906620655919126290793510603841734604518099074803361978042087744549741140093328493665478248928727355930383900662716064637607140154232884909966646611513531959826819996841447187309115251816703175041553313550470773745535830251939273606474368680315505013894267123984004581170525914761243595750300187939192042601981706469569046936421267440510821250094386318017591790868454219525576255075230385173899467980189750672791934536069083951481394389826919694070088894969950868343349793085859532843286483210059529608547260781007563209735222173679759719881655279248390803262236908777650601417141563342972328362019583928910790406662362883908000388747406450776211071497624099836619788944665916650396830936272876558011717763182051335870005293691327936433002114137356330095863382313443794015893612682085180826764424645764659369246113211062197867231686236589353030140292430725693544585802974564061184433907293062236244060204456192188484152225123319403463809899929463219927040089330565506016408497510708949066334745910923107591795845415093896684482549904558351670498850887443342427892550978643807114319843264130403449126711891109781264949325729002959698941025684244572149520692733702071401060032226349331233518124734286869932271745629243983654052956945575072206364139310540869515660071809517480362861347659680085546280984446202626444011559847691060244274210593499980636330695992535423786758446309131658156594927324852302766925644277222187435977611608254020249112470631351775825019390023405617549467837230842958376956001382248824521100511161285252435576129956252313356745607895431793234336423960429165563339201370779958333552589196978017344687770467668172801998653350699061855930751066018608067026790241106701126377060340162642761677920026885790684910250778043636995347388367736002419583363827186056093869939013064311166847701532716761369924167857237453470626680375279741366309208677080433287396930739752740771288117981179156237301817620957434341348457004339375652522623011456463800057727687785584406265361773453443434902909688561971799700700861744968553090282377697694476225102372401031525436863145469665532062448502355055629232853383380663270560610391167882573799032000610554191420675929236372848917651440062498016124342587273485995840240872409521392910549288810061605175935228196483502646643431630463158242110887488003001747583078359538588656758574612968944747488000597407923911156036544615585335907774279627892999150817336910009399269015124242501299179387330050556480624196523517246949096468842513092348866265969430776508889418503105181532724238947309996640614592751978444353411087075053493941953768649453889337629426484479827947771007177159237153194501189809562664830659188215889434011668298430353828314646544019586298518813997353584838939022237281886383624079388660946695481969460522076725738185836518672223886846178897330732816970810465012777459766384842607418070767194041344746981270386224900524930324108789563286976162690962440518444077235226052217848874856479846953711805256829148441896097567143437557682966945780766689367246059397629398708535713796649484747317746775166458686837857896408782151437273810013062766653709348229679520667077146430715222893293976765926049667289454577155979899972431036804563478437380707452350138571471054226341490966986688813869734367068622164854693563956725298622123407593359375870311384422978354198023193811337654177977327605287163018596299850666753531582226341696934884921137830024700254130036483242617859101355624753520943530402095170974472433179035698289138493371766300441305357107919029612146074296842583072941231450882982041803860653218606243190916402396880352910305724038429911187687407023135603140217398555688309039900825549948713201510130203696199151517140614316607991377537448825754541796008599699225523873889705603599796602802809456350183453523013948964020483909131961728753091701092257644084914943086555623433342761293670764614096952582774483622003883359903006264753719060788024261852203847394782899292590235298321931655588543449840884142154946888446438401660853156020684328981958607743254251668137954387837272988874457995065074000016998181626507326453472548477573410335420586760805587339078118919225300219788153887215336026980597529420834535799799002880730085656207281182225297846720292284680151413608297222524148787839084231664630399632761309218113264149206851452976607157734468270668706801079093758997375569760382925855184310069975739002717323276375034272364068115479759885803080563764276644241495458067457694816084998745753953539218645630565412294959986017164979764487864822397045279078679936039633423285223716725968819398196045983063095834184359603838746491704275436582937342799216144374387491972205456984341301013013624255252676976696534369597828826785478760189546828765072405839329535402753133583283528414396146328579993182779610483899970456877512280901079623920742135633099108095445129779378683431626105341023843621224697089862695472427282563981372426761177621783450416083381682038016491746134692300337565193328903003050388222715448614439382314703045786705972523138987581773138288195926772893034198677107346605462059454708150023820530607320105171700524430419606736488500155975326638396588044597577423740573936538584672251116595308800145701407325171063003023199641701352668549195517430977632904021122606359186787929508691901412095780420287319337363882456495577970236613648617951244259938137490526090395703267599332431794723168028084372292459662646666371883196478092588147351187097695845212083416873214540191473368917079311902945705928876811492817072393128405201235412581101647311224674421883444101760709507291912947873274581389408518656063567568744138543775680435086891290335905711002327751295715064428385418917551169264186306584278693457461169133162431292481780674700459396117426315934614547532635602669581308740282687716295091189112145405373866156540348055537574451737821649725086920223942700828419976971891270521699694460999761452065880121002353860209488997701563425378287887584680297645504487073491927170601104387204062028726695445849771553779273024180084975710029704091166578849162844179535605646073830167944162398112478523558259714417694929359732225086104534440294914543707712372624644528993855204166276604289122345700718623238856132899517962724047928517060737999685751999086374610650491493889495854960612753785239106583512946298783797410549848181833394351657807227668932935481208451645763487768663986925324764622347892922728767687623658684763981808586998061354278356558530525925908176245180375014143756890698678938412715501837645804457259174679722152105169657848802441532657792496623674355107878623369895007952656136335785677785450892748632446255938409711910295737986539900213327267830306176079127939766694820407038244745825935017935201040153578472341096465875910363971566804557489453973173285729009992747076398480950635028558408833291619892835330018458988777622157298463804316455052344764381816744620156993320356977481474361161270693065074640414871549606132783926406916776715916135417086001250787195408458880045947508389624002079633567217574164062663338650514202050718338127953153785286257377020191734145322209755063771696035697411913329850236969020045029000901167417433904268978984738980355651912170145452714183786997132142208564856834225255900091953086001017869347882704599591834016067937248966908428701612915684842664336782614348098589798368168304589616855176048434234893291004504356713302004589385005878972515522534062782425409912377898155728215646632843802244008356637008540882093508524722396149887738607987959505608961639832861891548650068784596246469885134560469136443346682267125477553194541360138534577578301727988203884434221287905206522470664914647851012129709422621112161126597380147417876632070306263486544206398775066999577179099152364826463851399151790817100579586562519812127346622973536297257576786930134102299375202229245149708858496016794327954404977512493650219047498423983072255212604272324823505326746257140441574679855266956429665783898825550648449430382712929770920547080294487746362684013971996989255382516169949909249372070447649461281579681985912705455348620694080090680109362388875961653316718632699101847222935238750572139724960987261112815692483616683999376305633135098157212839961754369036338264209969231621057655571051380176886386926021658887343257272458887986842201960264127704951604316466574772477833409160163929128526057354323626122883880095333947967000425451922025613299715806358511606595629693656851665138686634539017351973219888482569713492495241816242794755472321705676314940133626100667847788299559252939264545510805700196193008300315386842734878106037210306156593257078791402404931786986648981029609707794195268544816707698700971155965551942355134497823087562199240029888033504053147721670053026707766371540308747955556128804894408244397883181516581072642202140495016882752928312643438685646491753384619509837819624338193504028476867784818588878804425590688914426601570509347732310121878673359479937290677532480676839088375883005652498431928862229696994337594062598677184314948997537863162825860145507909043744549907482423870307566982546583464132810665168055512058901116677261389458417021883024484597912079343793663604626695535655241241823175015526837522512288892821102991713014108781113174149043402111374172410711301929680565776565571304344128919432763533362398818143730885385762947073162303067584411701367480190240727186679318599032309889240040958791928221267185670785411734560351398721357459817116391541675470734473892593623569049830268938051598393119899618428046601167088518362455823616336273656608509948765706451842972480623292578571505128448826564040630331111175915530299550028716681195307129118752158782561007168692015631681995311955373362103940415931019110417026818455707628811566752396323468849931495463988422763004923176305949521873673265653093727603575358830288631586031959486034001457980491402655771352257627592648306679534878837867945945895451615917067458872886049316321761707106698012302676089661463257307865539352994811504043496530677265375567748084233541878819944946920113066987806267059653481754833632690083744747388046572066694401648320896385685868215158260898598916295986897019831160654209827715170460202992521415974377106455945902370955008575698447572005631957674044822951847220715681924791170398513818951385305182005045059430249932962447047331930210834462005390196208387323208915610351560961993745948041097719526529963750529503155623672926702768232530907013583004752081580204262762015168630122135382340151258568850965441611570958296695465590249969788113794828686233683337486721930340559053747807093023664143195779236054516522939823924494906121621529673103855755701555345069995821971132666163617872736745923224721229235261775700882433299086170780333617500387130666370191468660812032868308042508494368130007099880460539375324390884420544900615874245067977642415496872852684398653060578604119052764923973950890344918732763186202978714545205443612307949342988105147638621148163575632216098974305476380583355334221829744571484650816021578577321401297839915380161256339592604413583475300962646433345316886306798062131982665236689254089862835085955727540745620083713309916566723254643867025279581395896032850223085753098932991225769141529781961840495485508038572663303382523149919497338544984229189783546147931993255256106383486008689557092325904158326213888433760883485882713511713941871324241821819359175098805618926940781198946854357097886967756707867733852535079982588968383297890967512655679882770495975389494553640975690553460021246291213968526329697444897493640673360198074876975979802681510585408408891893185045464094829260421396807859518765403181440406505693603539071135323534087065477545274086908487379974072774767140207921926901865508332337031194861565274249058962988634639043172672500816869416651473142575553034279285199647341581247680036456026413712602023941662338296262958031869549682543975863830688710851811099750658156666441328422984943696051598415853809498167756048938226517628370288912865847820108019485484608620228342359133013896665561343725970803090208439519052751020933713452894753345182800972055497383478986776518045093541228993172395155080083605566929210565303476702298182247489190772579304707250344601401831121568316047763744732626837657378540205034733431376498596709597314495968618968415133161120133610185126895953885854177777987588132357020708191080007449082057671976632836039275998291705899086632321715150690337664588156325014536372618148935328136703222307430159390150072758339454025837462575963885705527156054116192705960530945187754603068584238551301911267191171831902571282595680934300710398163057638219676252622931324589023196123853303608568789561506052275213367950118941555628965542130937068542573903293346182463309863930174576260893272541217202638098123995437895645628227302035377305938088632260986588725031151296281241962549922045148364988915255390611179509844649321346544836570559855796161039399803656159840155150405421211703022751571511448390701913444936742740400976885293129870355323577763469368869806890344631083226187542598995510306219648097443867749051697595422360125452260552228067565946954926865026562470245930710203953563882491031509004332723996102223569752709274158132232005730821479196920888224211193550993204886694723552181042807148111903011067473879632026884084094504294088548575123283259644289528038966952860371135997413998999847165699396702885791704547972737780675105295464730531729100461508326316138570603391161029996930029300484718405009134731393100329963989217989842855222731832980884983961607787121308866441376265344273976232997296750576339995132183465777190843027806382890249180739659959209813157820009810054476568592090088851124976831330682354817167037399854536953986798385527271218980317032988758413547105462207072730625229645664927692506077027373706416242359390381447187676751357041156800263078860401895232660102731559870005107236323324780752252807288583652516803489072892558589230686012364235511657060125314552033422402929895349655924318820174542114426967563099005779917454183074579879307271284129449722024186123206876483571102454131242078234485870031358151813256241583417035648730035876669792512364874108068312982352945644636471112159841084578796767143422079589213160896427924866056497242523117451466400876595897147479586581200946413706825104754668100641919650197242610352140097939616636013727907478108556733237028044786684546309103084296041895275513956082449763343891462652601681040851946430815241033169812933938569505872759961282280955908835237209651667345097849413236462445125740185988784006276137252495205426480180770909420237013960519446070459077279839736401982283174491852656152971362415296921729446056837502136233014674696179782569225921367981193627335785489752311891695784519697664885053899661958032111765654055876873114445595175203318489909204874318433350877514112327377285097746984063374858258064767459826637459520523217578895569525954432978520392366097265334728651491828818686216167477878885519276313214452803813291084965731421855182211198604860897255686614266398411866012104275370180304701718180920155031266532600321424923059053073814061487673706166776554910120195041856848076650398207877774290457674898507667506511940996260330006733348379802334351023396645894035720839320415743684095174460246535138965593543594882029174796036346582932079374584447277153498575970514787059897908752054012517370212452220320411239722775572823650096414593925443836986624119500322310307802385851903113521599855247732539113003338958451631330218175499652072015231110485796181967475921303546821839499438170901861693800887087851552782723477628923370847470421805950325104377182015767727414856695930005025977767571961632395882130924261400759718410157747547402231497733429162689045842370983461720334692432607407273520781522790642365542483266155602193951955907505905662008929838304631993640438435662776343265155675426814994205891670167402248354442632667485309135586628598187264339456365972316348768050841817443292187290872245595281199199880362918340319175388523154258394849875405423702383454646651584820584596658429359398110834409117117861033771590404220596447792659689418702681838089220027145916187953907228173862238269583047321597732670722455007739222544017635270589871873958027020697689195524401088654980733564039218561234643276063005890225972159955686324401673208100274436312923541073418870817699145570431204198291291484861380654170497726392858050920442362479216647611705824088031656642061135936050175179677062146592863679070761637849491086520279935877565181179006700602129558334719633947812457990195118784444812832091615694756621300591848691489700760678181528841014080706538456645810218395271313823668370954838120862689182869052254355535534394689860411729518512924889487003271839252572899983837706477775362396654367193251105246922890793879807954695817889568323417105933682835090371791905667644234089225133576603518285367176747588526556442574204783614496813711494572826193510897765319138614088413558432139519743299193730735310816620122650389054766209763296085164423978325262226509980025070518355111501968464603945459852152288406348400498508392670770406956055765901774777961620892650648498480589306557427320917562402692903821574984359219470084887181901234611650041703159165262558358521256387303741533582307132722894890839817107436701776876935408505286184579216330283199064522913879537089554186714887756725027013161333864678027275054128273374801957258916883737449821765902357892465691801540315884956292569654377226332541815899678422371931899907151331303666770523571053071873010398298221887056634966905124311369268434723183969970521772468008550502678145799307100124341826117114907889070300521318356496050372147385588281775077717017601197413880551126812008208960272831379334764001369404714519126422432858538440038020174118027707728460752274637085007604244247586566366922875443685399851743606265918620509657596636843565423171559652938108964153297427260303226684465721362468638302432591346260469185937617935362731427293077182151280066101315574667466146833613058205398429292162733680517909595653035531608654273043147568900952735620838692849811077988053782643153145419137810880353346561344206223482523092992040391500821260700449314595797697403888964440219621734027806479212884577953103929590572514213400131369085259621751659505938253622541431231201278517534103740703207843977964133686393944364687534983285520473146697335897953541564849527003693073777507265414325018346055729530133956266551405591197845442485209253188195009551302233718029692722773137702054691434137708463169349163009647993152997442270382974620526643229157325844682941570378270994101596589627936712374061113826575371920806733636354900754751648346009429367402568134612251935159295939534248552000705031923921562597828017623668415914298700886835692240986780714253127976193877461380137285821954832088878278394191202831422134295122964956351516043269721645212866320929016614276778519863333441353497758530592714283963753803132666176580055059176879957811552955999964618809939874054930462418447830842177345157453443588135986237563871679271130883890965364239222780293991454903528537521395596958333385490629842553888847226992055068382956198784175190473135071452981958203862301927141075389866263454896457046398955154686516856701769220972465414882849563765182688599654373070646184658948887926921529803136680959540598495369017438449816256186406625655612198041287714512880923559854563673574955845420185138163102138858695389568909085401594697223771547968803327989085530249320057758081988871090785630346854732475144815820261065772366246674393231693819924807786746022569079853463503568644127392225005921558162518864849997744469092170161631797576621989082833582938908911038815079224750836107857341798959147698645669241329804439000561207179047489363947435181804088561904797745308086106173180378830893658296149144307630867735316586294897388211693804626083275861249891843167243609373205163318610419734545953557323888994575671613020092935233595662466004324555233833835789803692369183229607849194026512448702717693140420696977185752805075499273340293167544640755470295561820049931295455050816701629410815995017139789295583192095974707948469615398662697170144915510283338321055142482960367841901988185567148821692319232465380671259808183056614002413798761831018961059097969337756306305260033400352611305531949007779828921070684156354598111870690664646147415737046374083304751462660420359925408296222886816476264039084701166361535942918258781194217475544742359022460838424404734475772907723111410400334415335010771608954871977028129673784568387116986970901732311626239593997420290625112294412372333296435767172950468604572023882325321655786040837487651220647695156157975855039532821348710559817128761587295026822750640168064866393100677565929815620361008723693639826028326586690215507815280638353750057042050778689835582833198674975452976885915373569375271138744040337079816286633509346373680345259474172109675724585124115977890197323502710169041770723705271707977302152373861436218041263271786863690327743052028280046202605234752965171019153336530469029145694057513410589244256127702088091907278703251695333618352751055708133382480211408326978664816255282135703730728724795946736557812330349627545944111427579877231855786935306610103736507029603707051367947883360539375648910259384690332439839836505658697328822056544268823166219227717003346099950438797432323085928508110798443222462290254462491975579493749023036562835915489270221603613608750467774924209151458136944497120921579550718968966347936409110170387550799547418601879914725696365305894887244645900781185120309610026632972847933063167520405352014002371850690053706829394305698884208635997435124969091491597829430763082824843741109160172939775386386467362210018494111979920701709152784020127715078499332934839559305272917892645301440889312716285030709435450548993589526847135151682687453587362593158449406404749719870713327782472236049617038111391399280809704774634973732197249969622795680477263486956166561333305964869496426420214211859440836831047633503579510770513250988732138708871128396144030216862814719194526605075441120619213790835150160595080298850770859825219728199563761715006099714150095094846241824447563513898381665855196279858912824525668232018993803185700848209922280089329288482188167477783163231425986238109473475943401242267092365928559029696147871527936883155058431616074422266027976988808601452793583201529734797804093182882385650579498687407242744899556484142617785968431431291054835908331108560874931640406779703446578810687527036295727874953615620008660365686018384982982893936392075212521945123325232099141031432890702452958317641908709737053114110467260212015860229538181114316530239511732561058303784327320089404938142684161670948341711107261270284987806967061438086918650966465649425701925179769171680625534434176725384651520351086610912792171308463229396894405200223670506051687028525280376892134627518685886994124911139806271440802235405603783989004803630415518024380060000012539974871717625860631160913698027207869263072169971805260042564692933848766904019586463175311809437082696350790128977452056258247264712272682433295988863034449311059619569820433416625351014618521168624493777107474950851570288426368123411252362474728393496435588943891209996288105427247094752383870039098129349942625092489432616756020712262184930274069397969436029996190750755058711472287559383444042583782926429813161607159278073129105949252691810869795212422854839816591617877083398882406603459455329863726749206433701267899610314752757643804200047003475213269279534365630242519039483128592571159461261133390445446235043310809373685507307923025124650924415281562560969099627558375798745464558477533436925590123242364435348040998658013770913468092091814508389024727015984652947085397208016426087779142201934899979857083426043687477269209852794215442324235292526390461218506207233151674441273358930478556417952236926125108766244642927654021587366462738760847776761461142564969349738609239737989799243922735767599495012358102357262675702885020325481229002045240917603943437876376004227545141448007055892963307446787791677806713838135884655593516473575603502342096233773909344742087190653288016275816061634851431073636499743128736285810661417003822512370206848103446686956230669789314608008805915429221177607540427381466445532528595606294750310715531967118755789397402425260303999367043190944244829624113005301759183221367204569448958509355197094722572588511601518752337504101116549901900386390949064683322514191864982969647959731618394473166717473665326179378617012490945684361247736557590333316317127516912710364934702945814211298946946975597712390411216318790890567466146991409431265760090394046684965622471435876951905629164065604113794891844357002566695526594112034120370343156378360304879783381172664807139103034991173014460120558063032464887281287369616658089490675113519190831839288941431155247209718015464547341644404545972664180727146956343272146601009655831004908078353735472490716439297388578068332556150705110805551146894735676537854988254605706178482959826887614602218748948909069811118538398850621763589661582809161434773351554321967775957974086542821182770956883651417879329808403778031444646755302353282401470366692082133419839213095955575729219588681049987152690000412696409248990538050000380198970863496404179785530113532140833806966420573589775424108387671251032421654897489953491814270315022116079180689031435969714022795323548140690123444784920053433607436585092625456364539581140108372896125075407427851342962160114733362379903198541531786299750685982600932130230131775655702516193398493427171440982806946168120354073747355866407852066848706398426468712076203886083999416221761964411743944206462413664503102825956215120027486782407692638752703435905066472957817300973384138354453021098939035243245610498571193996354877649993299278352941314724762965136135648054427700823593124122623880907361679860555662497398748060899686703817554835888375685654839227513314612621917350141452528928364991474628000811443307534764822633786240927430400192592499335331048796646461924259034964595020240752507206300640105492886880171904474426613317789044301717268859887392854668313726000598473412270591758480143540332939049665585363893026012787960945762211380075869449057751743000446132215522977629189330809567890868882899134161610060671848315288096285603149411751796822059853124279041529550239768945554734155207080466506787928170765384444846129440352935548618038588966711058806289860025677577137118274372516586047795867914148492608750841523483624048609685277342884236049555193611946875978180104547388641243396251165971492453780761396503831594923304914743855010437722184225122666773761117583476105373801933288021821808146358409624965753497038006901601901188143952591199234850298351815414501021114969493093900417699756703091248269200498409222602951593362650094794353836145634387869110396469257193926893570217176295135893871981448683251410932076795835207117434299978366887614773282467136212008672118271224644550437250797934512921102821943403355976530587175805070632509315814783048518004341466505462447273199714285850706392718659611485783291869736945966432155214744007270133509227377084594367332232030786277314367685770467715854761196289591534215135090216743299573319997931640494329287586417554324900978698876129235415123639961182980942339361254625243398660226396557141837323336692569951752668742386172796774729651833560552806914809824650948647797700996035771160168847271365098677831384211482702939240657874941405012214928834154781370602865714578285649820617905658321203500796875178129259377195274425508357485404815990304743575070768174810773002279638981248856874140163421891189058076536873980383720939755488047387432996883014842874352635372375300217348759773706489624880964723828149714067714547287081513424680326807302980834239531120138028129859273985973751585133246606884952319819356431943241444178003566309642238637512642457719942890739246338585448285537628442977766397033820855301578408496891522238523725430359653710619045513716472293314199575733474819145954544822338472675533854516399345855563725388827753915266112028895718785291530746930470495087820622970840600311638880876709081341450807917352587239802686109057692791737031379342272612520019454883284059953850862769314918504913147983296512580191365007273929725079339694219481374094226200687601440507675266709994991092652229083579061739336006949893657137806919275853855383164042984819070216321719128472561033131853501882207260170553041845418992095831591562750277975349700036519221360422674931036896053939061121059434797771708298157280958678113476830108800234148359372465529409650366221360245419287449333284783028462832318047025546791610118747731082109247258940695073453460978149013033650842326052506932712942296150479814427645676471101844673930047452583274956675587025761003089067688933973292881647224863782133943711288325590793873020376575274803693041895933252677165814852790210709913189774469463070541439618214298304088475658777413897731556429969954000489635767599327290425328286683109080868671955354553173500819283005692878555495672534870977853709565449567558098482546338118632289181424859399827844215021604488655544548586508549177824206845476746358304162704882951987399981024202228319369767629595607366621468647900533882042030547913515450549409562361088859707572857429808555678289743377179785917081509225549058562533168522464297933630678689719113123740208144486160479848401027226424068018062555576633664640691809593135662406566863837270052716505639658836050876901692398269854020453065848184220444856093721202250974177613159646713149264483527252296786745880818661279005317414399166914202917205350750606244547286379480759236991532251664402401340247786754826786604895936986813517588426385443913729605156936484323562959053743033632927603064942182406731529662366592778055754060353582508066102276021050555460678166242643258196298458397257690732002645020046365657664304099660503867454118423001063072875279418875338142221831124605842893237492335864285488009523510523742079909799207805409622857379907176427825214610562360374710209937134196165858089620251637862471130122023874243157384392001002557435489421965227778756266442495970973507279389702614157249857936380389876533793012225310298900192875876159443329976643851392736173162630576525250674620689302911035086305915927791681343477157921895571050432153120676649344062530458382587417488144014967467096555543175130591919545742188852900320454518239554099221525501930118702600787848520371903366520503080170488666058418356375506490933424010166709273833598010562291907680811834103038759706890619090741545202834198174661981172951125567866486144747014199882169313746361344006416503418815072564293320319614098968159694739451383857500975359608066872998878500048906644725605647068302248892462847881563943464439057539882318163209520039862349078316585303919861936431993462282461314659640040557996784416552043696979745420484285084320430905990998420898583180816073434102482283683270753144899029598590063092461928950442390784384176759329838697720812967968460040356383483211047892511590476049391365306366737644746708133965347801129805930968700215034522931731937617004357021481283804388707088329448197046006026958789729365107651141130046911580227961406147669411015910625363955275437591774323222322491108103001571350246250988885442405591629400337447131691541852220854527535761958112501150224697863538045313283768643960482173861863333157412994979830565371495893306525491265499199746355470961578701081520966430337678763003970009595714970818723517128065437560646163999292746210217941017912860952954307589979801378347612269990384741148310173224329661358670921662509369357542419630387742060726007321003321689205953818712327876717531560319150486031652526581788479331368003410506977114994066062522441921291344088167639757386597050604114302919606894782068594947547904501588706213035411792025851762682246033395508279657484846908356901702578528052190620818981875776323916579703809421230332610957424361411644236567435323768626354201933353628629276314229397254878543564135480564714521466610873036858032685913522626501857714246395611232654754025739428924225892690561644556740083309490955633298002983085095220104356479460207486094406660977891929709312612173880461029419747236699227678722480787961016914669408905606849538857284939411706821226974421526321918711270090840957150550441485405340180011685073578500772770137507228356465415668919884189970156291075048113702559850389523221978021523994242681527379783635851228266329280240554375600618586550519095496670214097843364532314896534863701792402859552407931291708016205855853796082796655442910480782514080403450214926083637264992773557752094546145106784633319390079936456254449424646016783028561550251890407950567198784007291281620226883739152200515258422207533602318653554691509800032070961166415809959028831409098889321932880240850365807261326976263428035994587569585059817425203305575037984245506491380417856823334377163686574884693171553822673389220559422916089836940532256288054391560391361232284461648980742294042327255018866678823549413354137579674519563078874562978770234512927098187690280587678495980456110462257500195391267093950083684046337846631272698209741120739360070709081597681802024769072592556223651823184840104307664782735746443036919184139464599122075401499142731515086806359578273394759865719933711099981801992774220067499821382175064348088087107747298022509064651479720381407924228664425356325044644461096681835295057550341938579477279325871801206286439992271903571304397491125487566415822875104764936654671727608867617827141874635055257232764905931796001369065239458582974258592708084257178634666281704528907114374686938703018809725869033733798528481419408771611111850939828270635172619059642520095750452142464408856192532319113537801775604440408048854655834155826201700864364768743631988219503526748675962116269317485270540188510809023702863243413676408277042420569978979501724312180690904809205375762724048664559136885293222531568703492156283254972008577755021382200066688799032354606228732465551921091660451471181371707471826389018549146924785620089008809982845358033007010294735963410113791882248308757250005954771220364573258007771745998208369834840986701687085589138704599356389667666744280909494833842772674097640019101160403396814626391468197446145873102505853164143036557934462445755040944726483120958895734976726772163405090440551222993278434384623444759116595346636060296032438486599124910418512186245147112302441585850615090933440664069812387833621079889508485007823477290198958525633328296941641768786279748047539514695685877892844670571978026776938281982821966010656937425128637699894566746688523106287275504701190550932409394676137263246019110950538251657688546449826278231151747468127405436356495863587516911452894456115026950438767060782563652160566782810752388995755352008387356116191562780257245801356917344783465079902683667676973266906634785296547615484182786139318732451998504203257018819103832980846244062543466217513199703445410234543350269228098406807578924557750623731984165110414251947737592567698392995194171893551811263412606430780002413324677113771886728261052765733003991955412175082861322960831891996689019926489048415457762999836781082470968166026145174340325481288781534677203192862094783458248977524681293753288905019057825879776390189779756296426239244444025855667732291218019062478706012555276364373779134951117515553976631472458553182612111885359980847243767358239280479662996257758598955404089721162019247878983590048300129863071758244159699893076966159610242644475276019903900828520505572638257730840792396299525196569150313826493757292932813820143648384515686700076504705210989706634693367138150217528887697086562045333124450721160340793626523590202040743690889418513232518543723013664404678395052688745460453662298568544354019485290609943503443153937099883579210364487952768440744157297848065191960643482045925918823752724160642773402827250753770967182217455948428359783177176027205375495748684795036039083191668877169301050135134772580824015967692380607749526424012597670422722235887641719061164504845588919635671688311227483443599380817625365436779755874208070226270295837977882470993818238889548936846304094343537675505763412964779155191959129768549856123184914135411431878227292530932141632172575802581237931723367866307618848027951115739210075104477534706026640929604510625303772674658512161564718304693981708136921172670186640210043690235146586047449242734739407657351640099151519192280642769572107256068360680201619294583822819982861403324720081331249492669586332180412310235655605683456531390179611068948154096829039200383639927497853645093103445761852383198333158627317721670758458459311494469700925959440815825205866966298087212325226608342296502489885496042214923519810640601777907181373441100085639405954945612338309270440216397056714358682612501722693003410595912636968909336945202669222049211819785192274121632818678939532217488846067120809319021341379213108436373138665995325612301551286855928352124984168139425754910030567299100327718529480387581048435831960790659594034469218818411444543580689690129948496170018555835966343815422881127089237260431040841758784961589331426550086388541997239094157623114588593421106662904363635557060064814401919763675595319158495954871778881545214416414930285342624173537867104600737541661666497647951778944809212431113727355840907529774190700634896148592759600794476630527491646877734337846166239604459475638900629948193454923860107191306480714770822025877670088627635258684821271837607791069693534698993871389553975769748296831748157584112065531309254996015386018972060802946614661722013258513544325716379349808387828581027711859290581203365958222004877306162549542381388657850773006029900201163329438484990500619633447470966193053560916156004954662790597489839531595520448246102767086278445117834822657261232377152791097144921237387812812861492714219861837666874606484041498051425437491218341184790194375040921033512338818362944214698081645455144769350090403002038428129052553646605003756251927158581144582822218744810938634229890367466354960714627158824916585482702557899737186547689110182003874869558820850352264675027083979299029732161330845229694739536424095549057966906987498471502498443057605750629634123035493026907423154728846401571406503310163114595689548454825210810418712011970539927399499628037759415543135579382376635677627630741191066905504780185670631501742008816422552916602544384468553063934534693858001466586279985813551662119730068915439622520575261545597809528988506119820203929571702445465688155268333228111384537844334878193330034935186336998021874840371432952270753402505604146634918477538211397809507874892482809447511323921929782118394907261919615308546448711677642050033286099605807194145963508964835154462474228887587722944004457128427148747894864616989142696783949417734739352358852530783975316362906947685196674798761260608622642519953962533443316718297276567511841902511958709035251105903562750931230647065311777542642112910743736746917064942787733467337157920073439358528933006936003071862839326358809158462636459062060228910980379844704126623491489379919136429195060692339938211916958693600764033866828334857133716887053181574862775429655626617356460908866976071330543879301594173203164374942267462773078498274277304409984266995588258037643046841683126136031182886473347278560162202497682070419000474558226387837317766078734127492537999395020734956280780721440702518379163551051039233692669183530867920141415582977304874755442493086456696902115397040387777692485716182913507766645095642179112328094736748464787583648773471340344193170228149152256525382032496495637176138539023080373129914798639676509185055908849453681392866630926296018102312838473824371189282396471338460267068008621775145474086213223890264267651463388978209606595621992457477245965178447126781654185448139999675325306446122684606969171140139189495696048475768127100834771050229313962417418310698624009238760206682974960807037931041720984843781338511300674557514086681644458464627396142997468204049236869623123908743853998758405077902777953619234390021807833332824139166893156429119790806560269773161991239996323672442934497373135884699494333819053501790020430703460916362853424364506971973542926727549205726009407892085073440316402521841205231524580597793351207800039278513021386385373779561163395403794450001278993895877346385141796125263770997475516395433698301572249137786508708338124172876038729850216125812068481268495763175696088551921667701015076633823077521883643943722930191959918439874047905980955231237648925204536679916668051494975483553195159052721212419542652879727349463498360185166794806330804055060985524056598042528751190365700243378312671629831736256233070847624688663129969070417404537528898438539227669744488378070517653553147698990397173303098780893319816580163993710531553007345901161414974718543145884783508284033483351705334631675950697382788330510992767537235762627541500193163183948322098279023117076029318323805171028333809570856245584967132431652096994905066260432769810180414444848519115852494726573273509740417586599411754993682507026358106470355811961678143477664919219094615081238570367005181477316361036867786044023008431317184618326627447964090812041685244593878059173013706412524777055065919836013808279112429707219964270250476379417695492985452067323384144137791434005641849070354317924423145600173803977746173705363054634445657010698660026520718358074697249148631260403275416728728972054402292665811781358327157689813247976541028505866380507669071592211749128478802243416160402471991710390601078223704162804086903819658461885574173296133176498607337459676340329703877700510882734949612635523306367954691854417647673391424574513494924417680023848520382547092299702698076706667593785904519724044189156261997078210196970423119692219128134666327667019877271417795265575206155863995699633637592099503801156500502917340019315876942296432609703056430724759558544348330562635382080114493357062115914327741562757030085736986714393862228616087837698850107125734691266541975619696334685299533151270892657405311101763991751234546733807790339591023403929095467955715286902087821901609641867747445901406900101333635157455726115776928194433918412369487945316007032705290492187814753140713658263491291926035497223744869476786378696468719765770079193271356182091578672225392391508289749488908417093437917301724873124268148455415764377737168865288701187543411453885107757810022994879809153933647930264587315857419082988298362656031307403798567328889411570073548197402653666907986670352636821954696840863308389922771844912660351651687912023077863893874939898376795836380340717711517822875031980629264812476447927350818200973098223685891224534009161713795895302485723083451867041326948079438122152412127778534334597207621025717609592169115095259416026402753021607901692077366212537896251741570386187799246334970224807129862200525563633094051085168239105610203649338662811546734155356478339637241096181348316203599767848002863727806923784546797358302136512725776806458038714988312144022227072863841557955313420502988119529429021064477284994439885499732017743174612757221433612424699014794473270072789198371011604972448996386390839274644251100134705879028731384631123376287236096496743178021710380175502902958384263096828804387368635997356251115324682348941211119356420845395908830624112849458141204519861396477602360918146932150344544273770411172266219822337665196193030239853653656215122636049925108547729928615207189393740420088356116559719107501486958330994415003910511775947745064432389440486139161391646620063239623021923306837860321536305467908333183622728194830393590299371734648388366884926380024748524610477840907604298217210440190345955561429799883460499327699278518026993077493107317689373824814978269447496181241565408907965845497107470164214706352777339830978850522824985741283088369348435954714988441603581882312969707809799243453289020075097143059171277100274543470588200059086304972675882862651511433661211743415586823482401715831435820014621550792673684660150195898795667068426291993467514434697399112093003618847864567346210577269077433495686432608791161160593120647388705585924942609967321643260579835582565607806896437777827330099382510349542606145162206151671253243475517784977686601868980363358365418732318174539015727581945323760879894033115520872090003390465463544827091758428398311667670658731425235479731947630526635558343111169508755355164930799012374324183316262419572558309823433541646482551240694526451607030706370204702635671923893458652570663810954158010010380288375426404357029235482787007601148535783038293833333185655863998071465085914191827679999350707262663666950579593170745309448827022680935935989762540224491329508156240549627983466434223754518960975817998840461336647914227958444803103258467582715746732308790176159287693363650016816220124190290561439715554362385672194081635259379937913819553497686693624730936130251360503940573237759561355408154448170594354925383861378374528343544927801848167484631260495914287602578477350039380496842568516019160131016618709362515142516887071227139519237702389528946681857829747583929126625472197810360204477288051124892896347886171492369767511837202030182029298451030625818218839556937479319184232588666119844245387639362629357787985179829355798966193318910661642196319151957266415607879876198933882123375524759034523506069461951032490695496218254839008966631822944513195343459603870613481488540880215085611398578228770294497413885630925097116016775384073161851337662753824473048825004249089329476430103742857665265236196075289439293922129485504520042285904660666490442070791094269266465140610032554401756706323231700009489236618156275929656306731469192711471681728409363393077951499122338316097751929035362262357909766954150413096829315256581067223114127928165225968044906714257161305776397572314418598086220101117421252983959444337347003893609528343237597806032400333265326654986926708922236319887903850060955336285148510108494196499802396761737954662215740605838354352286826698846654369580885880902939132089295559614116211741857029275766725801050154924459770480550223564594525312800406133382295958562478768488458775150709283574963041890141434172450818876502891646715470589489681315458103664114237815792066572357403877917759565030218887897484464595966497851239681197876944445221925505260021225783362933458119161491950158633777210628669416424747207812522100448219219805383692301571640354816778667553966315089183528553468055395114047098505880056744198256199609542400440702377791553242750629229231344463297052377219879108151122778445354874476348688438574929854339967622743785751915688665450110523141702336929292891142845506245645682746682079401504424598494805984582456099529910753497436240085153812618160143780814135253431042555559627513268327108601681644692294463783700774154268442793121228643786919321184161599791863680121768084698601361069685941549435113773415971570652277824229679478593134530588771955507701600699844522955892916453853026143358947822171232198563698473967378502608722688492630552683204686129107613524175330456869928789115042040203080611705303502135409016466437281674788175894964314732104432269308776065206087767517862334779618587417846478400341302836211308410248823557343906845848523553297324998925065970225386103125984498824799238031046522916083072589900901864085945799585268380506147961276260704430645185959427088478521298808758135686911709050725716744025020220701923810912714386195567605462031120322443647202630645263600689449824948065190429590279175807106200719161730877564169064811119207715181639784392995904725556768828053089960479695145758771410898743441833173346617436042509197571019294480687894924156297084878549379307986595868962558761492965124159204025835001421107177072044724225429527931494104034263681724145181324586156704249108189511798315593630246206292599662985952483955916404794894400281679463890137633153008688125947572567856123905865479974695872683393631585498831117837818114974802090864879555264828103941337044033226457909988704989683402378223044479291460995310739912063170160044528273036456570860981485641165777774384573872883225796608468725836893723824963476833376586548580367369849104189137949703601741958897811922228778845789769340750446151754831865202510551600908558621675309894752701201959804954405963629379497290516275156783833830825871826981397763344604062843021658817786928236673649467218180018020599214067441953391018956310140898338688954499322364986668915894987533124908935399164604760111272579804578679518512489136108130740751799340835784536062692889348252419470687665684791558875592202558498500119732892524765637456189041550954265909279574787815797783945338727086540620470413681469488528524275643921020990213821857020223470529486179299814361447400942298556824331179346280828933685592287482578888840059659012745129788294488820861927313509329411168880315457119296246220043039878730200364022558956333315110859613801783928629158228310336190624365552030994626897566812868990837073966807521574174920436304065176360784152374506202551664506828095576059930771777867343215024057155631359975672453449387499619347316738715155941621080928866078970701165659939977335086624555621304915837565479205542733250205910017997930560069421682939264023244273825072346690780005376032935356321715969129241063466113999948061295800282514594718040369099072858050622502977001283313413440206378988160000630066525741446652741901830423488035262095688805712688198480027391978385451656503761232904986961225903114479853372595794157623905546435037323167340754323605061092700319764884474402644173504963910741395584278792678342898915363134038532231071952863617855668271469321070897480708588001537283769631130691844161507425078001292476655217712031367013467036161506246001432282353452767447115821890024383569521190282251834517495063796042549690247401184606986172631588805727627720696174275261897381617055498893527844185524513611116612480866415310502352982268455081387001074236923414144054057567599449495849626304569771650592356491889427022946222369402627036970319059917618543677379540123154468015858916178999775060583787013882841795525153901875797563775186092613198892942280689853675312227966358245369580215963841577630572857779129427134515521031766984492390751567311116096222690431824443974898432353413215103707339600325217432175640671241173285993411241972122512523749451363188806524126620546613469369560872968338847929901949424181242054310010159555162416421963913202715422987078460199467016731282281719803362355719903054704879524892477270370703743757303544828908154322886668442134423064334217744194923658542394468204848736727639533753139123305258656723045866753317719705001296602980486981779301999930904740366817402469388910065484732531959447643748849892257979708858118260189208467124098150637586665323961167877629689897388299818117742346044823801207049289867920975575161082251801259245635670781981149846666595216357351523049334346360321355724867921837713946194973018729875121743817044348640102459923197522823038748186981575549059479028885233811050677572226605369424056553708957476447277132103354808444877333792362291049264329123320756888791788422584722835012070098769962354153520417191101037022897454575157950603912614008840811985169664994939449323905311547013364183733898886785111551254260546654988343648860927146522077311341999209835390445757306510703905997112483156333325839210879992898058606160668635920369539741417576727380934166121366021484349538495602647139805577261041611484374521815168459410715558021909279361891926721228203960510964720606084259851489140336808776498163058094578270347099124352383366816608430448115023129144777724522953352268122114633961896964765647319330713427734149936458003855366740487701183217480911828539762873803079937710772747865148883380461247566752138844559765578734151609521147698457731585033487144072039466683613140090876681870725007063743424139061955459913097597961558367747538811129886168841520402844182871186104375365222581622197055769116953904034333787792564314175944713012080365362446801997206205590275398850162531283990304486492847544988616245381391801430208427366904897980780760650791499002266685197662910398152648381189580940710407498538583888468264669104748105166399199978005963639629120364282900393225904983378544373599069893034025372796631873539373007130796446718156046232043668520421068260061806074432750721626324225149428831816059238407812989373407654415552854174908172473420781560672087844565316965480691321507966412189990661402372630943461726795856136061446386719735834735124399560165097729749262735068573733555609986041075479120583248739568033272389000002383409597078657493697770507549653658663040250213904816364544159750487454163333423458796045029399829679843964042770600101295742017942129053542731542565578798220243185314343953967063579274710770415922391217549529313671925189148674248500585407413087540532967339173879235424177260754089889120911852921932619032575507376999070424787478687617710147363504191053632949033854586593498712832418060970142321739744348308222000556499332010463124089783900350823343710162103509420808279787007318555056810984964198217526768674362834469069399502269809687373335234651165744005692193796602641073747271943959646236092889900807008666125256459136705205028921806172069552029119903907638568286618962529279028032673184262148563383738096978041940009343488437486172076690421167726112065385229360001621839322581469813892186832752887329764588173956852453777321928449609120376345976303167511426749606510109888268603428048583752269723839723337884363179946715717914692937372535008067716665516385752004269111028644525233849903705484595996718200665792419353206009500782521933305208139263349633840212685186712375915747419725508610140456679713408689564168873817610051504298618971510596108229621275644131108555351358854514220735541667280698750350248148415818372369139249299777541972548342806761280105639522331909080305496859285971181346451046657233723201282375254630224784259528904208203341286379841103907374385206498075969517687283085353831411196480059074210043986573235327164191250311019199653255743247310749434322119915913279731837909123271739011404213635487524943094326449547019725697731873641300564803705703965539405803968669240673296629384398599591990202380456293560405615768101104051686008940939190153163306506770051276994677118741073221729916913042589937435550640861125940808289288963901732468688384727127204365870090589055644476861270233930782749367945365658172980538100378880621797317754142450208451193712025553906569436563902109226738214340726275428170676172934401533617516154231858722362473521449156368936125733747140910074241576902131536017199447786813210445728949397026544546708307995796232954365712446129036192039226263694095546823018648520676646336548509499941657933576448210850634598040699402365563732255767511489644332572390192205076190126963448263379370219693375985418582592084998876968664580859184455812798084855152063755109176833707490991146187463511337704685816160561000938332165498256281762304729781032920665739005733525761381028887767905582207820687931400453681074631831673927733144067469503986488094373804197363127070736480156251178338902957244459269405699406300354185073134048932329621643218259387850136496013167727295291309052494580733382079519813552957614201544772154486822753892523453077855976436514311577846878417085490265011781177869759977862935110687370388876847498502801558141417987789323671632540670716072870106109688976542114642539547287133880579694997373753092025807138309379915226784140852283776866034324453922369768787536129508004974934559065968664856159491696331153072668757348758134635924321831057655464268851987670227125352387100400605231364373029204895996359613427122106670937615117304072478131652593839626374943298479100402345657120133607715318037608177625546884854639589634669920583171605578677251602567828243199105761072306926480423374766696347638027016400320564986072172820636898029166618228780876244490539023856885312816883547412474398238989615841232763612639848229877712629864504078172196604867378188426947115140609131399670202559418359221529431278244733840542485175649790374609460063030513194929985590357662567537518258718323947345608727017580397528959881391758626946218929184228748364162535082819751010155318189293095681943584332676452016767865175956650340579568031499158444245065973257883207417455238895098984985250968503398965655007072983209188378610968523023669871781710087494098960578514920623651029231905716698408990107001285454904115811166813066022604144603943323951279938883190412359058955139412660952673315226025538028159967771441441032256000354535311901598838721678163304679453476832601829655248197826468890062043581948791588687102319544562734425125418446461891717771631204239213380642816856466897579392027240222950302211611121203562244134922362356818871442378683072452653302935021902238409812978483469543096356333137933285150270359805924779008338584647412349578318379030089445220414819319351774444365446001621509653390969536563221409820385255243638557739860448587001807461946778598209074903295241770614580613978889690496313066995045770298460570285733828023373857684220624621885095964060443463452646936129702356025694727619572260568483518897567481419103013276856584766408729030254199607355399609934620382508901347422618254280791596285082481076013541700155581473095299488652514945494239692866861167682914295154043396547292905089683187944432315832913657974734450375991520610598608432553217662070399338220750906520227299978154717317849676792763313827867763334239166192232752312633307450776091401062835952743542328042391351612531314584174471493410069906575114004018409937738307421135076946047841466646153201938618138330149454460368896276263523315150674953278920754606161032547415734850581395130388431584956580742923134271714648198856019878507879160527869163894702310095573661455715953119047822404999828551499171666707383084143181531394233405757757182669013850068534759322119722589109623855383711803615026171425888873529110797549535484359372571324829604529213088995966408448163596855545643506939321866517347420455174063708864559360321558183161738310845870625201641020045611286520849225089418327204608003077171755080623585640383832823069432597109557653177457441943702373563216080194745768372537245914554275528405721910405417854423386687795720983453584168350743918965322295080528922770403235632353478940045824305570332446924774877806774918209124794912751613994377454767748911557213642309364182603921144178400929452006836844973623487827288187615995667332772959050413364962464886632006117070779859903251674968382246316819949392256267801867901620310448527343375488939758663085537317179209546797097504733759341104262519158127672835897241010943629177286279919898331869898652099374847692377883398931528538457236356568020370050207175137722268517956693991981559698798944434349939044316631339290047006003147172056645742346505849668515492476996475852669378135204619635090138706590968000015677439043442662788086358721156238062732844070038121205664588670223436914342092163273875627146072616689227110900185050751368168825152630303314833942470869221002983921452775555681374088693229034705846047085485614688223206616383127038972593419048835242288158750010179274302457588187469585906401329399735268569498305815402233815916381112121894483387849031670160032582745384824184940795967313491438348391348947127831518867530771478891574153128046649437304649808942740373889086860797546305672754703988030820909697213675757399549816888069169373151512278086631633995364404126916229740995666660205111699921426147983299075735913730995238353282974396698668800350851084048103882077159249391353460369689066054677100672856713695084696502980212098555108445910865296938033762823930361763348067577079259151281127976281316791415554988958838923839822779155651946576400653333619930549575545604902105904542510994243629308055351792527688428735838560617717147778892861684588803046605477631210444626874140865049756743606782002775141095641909180974968052827043529810850390042520615972942499111993988249920455078955410179960225431563060600423589230884070806554450498134355400632950036652219406603407119273955591144656855234683512787753871655471912944208963144734783088526732356704125186647358312711053204470684715591689013573983016285382800544251178172088116737887163225059292365884047763517339415752820229126745492104200339461816610279337614892406825698751245757524796352254752292241609554147923251860458279827611517137657787376086739942283858645734303013221987829266662073738327924544398660510970383890039776529201289136037064699558521808222087358419945883481231525701080707742065258733401279819321016980767103978605695442813985180934091256455597310437175109792122068575636331665281660261111038014062499481410166579885733124265619860057987924519829455435407360620592295957126945959330738730502174436682364464510685646535231334924067934877439574300604639728819195478960473565750551709320789242918119911518507224094228428632541403787325095340186946309676476064168074121612681041831311824968466932296541916624156757321756040615860377979084568687769623512731360710888838771406529014966714019981358125236722464243293285853480896139541153447273247841010778217229680087429137904544494960052503170362864866779853066637491442979933257525564776650194598619757592030268480309325839643292054107998440268321266077809901282203469981431855245475336040186505888793658664869390073403155901070727975217948822262073693901038204448164746559917832857540043392995845543915781740918051498942045322861126556709449375432018766488106206804900381751940687363645174082686628869083825317778135389190253686001562566717393749160175901519538886582491456275232358341964227658510339548406491427831062673786712724996289260517683577304433873038931543151073177138304500254042519873772733413799527869944270802552512695458890538449621836351912063206159834950789326179566446782177184291151683338692946389670469355443488239893635711532556298731565037186398534150929591825931803176104987348502708259299291597240977910434572034061182422977482997924007411554614999031733370970116422485885437198308816766170034907525280286871729858777774890160226519393703776797369588214083500518668940848305460929933213399594667181733546565829172979488008865290918758552676425842039348193649917495262597471659312254095162299271428571197585366408112376644230841013391993165750497880947360612167853643523593752224905995228520997406072097063078826725512149238803689467262281331362481040072131174320168821461532149130887524213141500081836499438997905926979663410162217297242050717896866075657854633900194911804447910137868129234414804768448924613673436372658431500711286207000676158863477632145546590809324503743191778720139850728879166426881625995603702746552345441813412418207527176463668424200205083309974798911252774136488895684688172870945598742285362169328122589012108882997790592510379014277676311533191881839822443215736772095466837353935634705352709797728544771514439349032884852979537576660751812677122038593666901169898743139724012097568466964657500356144723506913338972087242687726975397201840853235565936235542208238476178565093105333079508636747271755008657537430389019387174932974866172640756438926962529677991033602432393282780230789519897895500815633148249103936912725061835040486147412194028331415406899486881803632259892387773333774324145892954150052310629940800860330391691340648183659308990764105532670639574521239689744392114853968918766303848286220355335311977649272357288587178644250585978843330426943983660480387567634772918979249399976061948010095871034552235401262948886420366994175627448182020760557892177495827274059386500533026340011611418983693792508886811908349316442212082936938985050343470624999208163447682768609672483108861483114845340868487794516264910213235796041905219029597968426741168890052345806565797450354337239585981111391264108579474159455435617277958937532489620214513784862898332295700565813366869040737483786839856794055383411456925634429730752309550947298278281193704779432437730778300563468938684339521788163572901465497445850627644076726017388441076923224159474325709039526869864401113540120363014750955295526383945651832782376097818686704489840948688799195933722495780689564898726869172592952561073055485511694983744989924104436506907577004100966490042227167809636313358309415936567900020976010998606817415840206406774031794301587777228164842896074263354550421124414239898389140161252031601370551847592767595023498015926272535034864529682013805902671552930015188273052187488498291028443117569684138267002135982696514461788883348229691217550682489770563003033096446055943025326678412305409737755687837768802568207321935021171347921942409166721521299738673930426715844679733715909981653896290396001744293654227133468434415712222875963434548307550108408925312840370857533515051571586675267263122036419824171706862896994749751556172174565033871325378523206218078076705860178302290740197682324524490340051290329154073785245386728851088631130595269179972703683822042977559679044615826847077989300183922565422656641112945995899779313254649575624181058664297820918589086011642317864825389431394869744321899006426368100324848666388674420609169337251265476923190092167778518107196959144817727480057136543984125938130069750581345724574981751366410604179502268541177865778944048961211757182163833660985210277829292786032315357541091932722474642273858247707371093485849830600118505118522801267308971173421489821114481200307298117363503897398685276631451995207262822945316676097735003396602684540068453716110576149365602030061043187013348726488541315741659853884635702267326829903955406785065919873183916042978673474036325212725976517692220044123318256238313544422510439155846709543195080095537438385536351199834509699693244953896948033284143016122866524603315377901587871444464533755836885246123818422261021641102851967946456016954205226187797464478420374879263015823321833924700670218001642369904773724364051372374240560171696806056266541981817076113268523412898148572089253270315467731919795767788025004984428567852362614338176897361451611657280200992969776166314542380096006123240378543327901276945567523905238192599152532984776591805467193685480300392512149817571802317983136936030424186307594398144268592986505946753586356303528469543340451079172085672375431919561482464438908120999569622933352398284806268510282246007991672269312907614732590648093678469669567695489713567904527755510014165868824406257397487136615289003854035331739680655049831253306634188267376746227649566908728251346122998205286784496964847124395654754316223974898460365361816062590171155996167341106143692892193692366180654152475549155258361908548085774745829731134042607800983504320194071772099224686659875442067183415437452919138743474961386428314768472810140994709485904014194174795123550254284100747354700552431574112379649060174263228484149271432163442098871770590321515641039972525576928223437790322115327909392605559618300369000102621449568972219306957693390876019933450179306461299292478265517107965695377338934202747506397169786911081962842668761474110776814519962601448631457430701768435187610295717543662799737040586754366223020802199596611222034478961062900241314938693502051509675716053455509820287653714677712474713787231650848391593307982699018369058462848259071550127890335845998956832268148465312335654246748650060307616243375519835229614240187303352633065593026110832409223628298108839096569297081454973294461941152059623470047543736104502932459614319317817418277676435230796790775214727051113660433959139312940685677652203242227785839113762254074811972710564698154069881600120138853605898374341037191115891665444332521913516475970005917322798754247909787308402792456875624956041655883012646623424526901634950999888412910796317055670023373535193686291166448444785847243797447569064500637019184841958663821958685350537212710947248219694230939094799775189416546135173877091117556012352196390182968752744332631116268036049550439639125340731175983480620552778458754854547450719868401874831285499542170124457236520124691845782230145504572882243232070402354707506786103826288035165805808037724598156157378728258774194688913444727108345321943201611683757080420393481488983681209699411102088442822281603457835644600439956238031546354318307408648845694780890990593121692679632340844620661694264955235754336570455445274640287442543648828437794374222858576143378562616962174422363610925881439649413442380423348918256023344762579370857827850271194828502072237007354513383100309175648612460711410643665904287214585445799789485003022217623697918457597720284750915526576173119195720036277980387893214076018420517423119654085012455387389940859845109220183789334759267258282680036569572272914568529195357785579101466665904861281346352126258131416751106865871169244348770883691957956258571608947471919659198019284895466994703707797170747138833995682460573309512344056202221841028722900093557481028689386156704317171369172810915814629254848389728729686870266318304278114510032748662499117636989728127311687993444235168711750830340364881318123162583800241050540624605617068476464967613074221004387777412884342192838929624664731277569108674164547194131074312553462636825955148903734912619411578484296515882335549127049341093084029308871572849708748083160192538216113496190392644982125351846814564977841785686209001830077374551894881003997931988351686533101244272586501323863184288081055593284835186722804767704763522601363873264303843391360834095709309798144654091128468540231915117794334886426346133220694153785890454630696877890386456096527466247731461180118933783109372106108668493944836937686211779712773758177329258934358652791900936397687444219932243368335469165184648443051435609174373296122719227184819665872906004240734919509475371322056109920075207827139778509602611409250320774491202747877788441425404441029282085678200414832927924528830410200725531529451292457385924431896126716425165183932064951115432599696323156829355197389967939001208529292169725142456615315357340513237989789352838711257560351175552522000439311798620241999477625685773099463876646170018579025215214135762062690369371982689755232932884985103587248297421015353003599865018318994333287350927349165103448437138980748495503632761643290958555857267538700566353837341802332843302038423340357890544566128671281263773175499214519506771657212851007605746411837659876516805457781134261607368635102758752946344513774664463541137695704822200017385462066635271542061568945089663169569320313798124102496042985684416004562408696323787161531303573773209875564775636472892799751413619956029722693218914872821067723187475540205030987556980820506191848097978085708403505655014347986977541715731801597750766361196034523260070814135423859289530235962345751555771197850919019503403386784627862514565361877284403110661828916448903534289708608309480755951285216568432672412210018970306080333022911608467324769142693749873694733541564159166470981562147902223290038007889326957935578366621492182055397544483943898388551489368222594611809707848436986227162823825825617475554084443608963229398839182458052426511536085454659104655729914265117762444216903442186970248963642842419277084052034411228676052739990213413143783563699570785484798140056559977675167334884894344483886450747217099213653427366552562833750662297537747768405747721541423015555665350658690661479846298377014059264359954416006601315020877134881497962421793441817675488517433462802203123678763845954467067123509611406028168540974772932226128723149073513169824565066224408830796270687130481184522204148137217705443164777465112321017561714248025923164851046358697620946709089334060279033941339944381273523247325508651388627867080304575514619744673191572455674937602162466891159004475786537956123707956758383211875812993814871562696164079530213171315503665157787495953445921820257987591655476188802960837491866030816437372923157708754618810779347492200057877183601535606378713232538486096535670327443129957985323468197124409262978469949665673067567919358506620028016507484472027031288691715572998068385710236580687863983669913885748081247527383766236141231617216384513440661359295607042928642155242013113280530118118954845503060683310245241142205259587325779732036984230983733795168453106259592554015017449069093957991056323772970743962047395671316532726261223228045502003959372376122354142581408224231957823154505647294942387917652872099542973620536494987020466985189275737180673962226916133636211348432578354075821562459749211343067449520692160991817158695455391347188604256575904338663223433642923913507129160225382982566529573471553219574222356305975245787165101134435240117826516857257137886440795755971465562582196896341088606580025894945856133028355675366122459082916965206841263946538319445042697489160830157729256329943155328270313200684539755930865792754644620892290619300087110847652229630525679459969200323966184681163164200203798531076485349376689382335713956259184622847684063620774516127332272222034384968325732839380947994414349984158293371353325923066229434125328753590324005375952010304496571742375199999360390193538356070640794155347782897921457888444999216865292877097216148702157321787141584490342537056452198157146414449144011583462744932932932184107979354458277303603560029499541727570784449276269545072310854091475154225722727204916878805596278500933910958553287343115260034979178346287422088302915098813473599860800782265588575402687907209105580262032083179370391261726276888128632364484859214568921077061350967541434052864685807821624112845503324795136251500761027339713881642915784625590227775404209882715868986248431526531378079690628323111451406883352607937852007508121233876979251287691145772393884478220929227923273168062164365584608874300710361025059079300690010227444719089874235723979770429248808579943843379627851424400522574749258500971837637681448720998240509160862267128294044996671730757562853835265194888247277828495562564413527029205975320419288106676652765781189878327706937663879158449655191389897620814176388979328128326887034622609375325985566101802012747851026094442388605464903868150629604338273147616680260170925030257314831695868984309934399317569707217433319879946913602991268086617887779023691429792156295071594095511643131667436786312118950248863925590933794375546918433220842662735123748842602120200328230313104179334269629912226749076352725283071114635223259449739329731730755552136106974295516114732343689805789260542767357039550113189456996931118092226803915395480065082483882982277840439137888778929902925012938163927593536915722677382721753804594229319636969737570082288400010985428243259163985184187311276465698301197522734048019117113873004306003532710995919614009223473062908116134022171863840372059688980668284355445953481880417174328850103052304492230534962038543864094142642729262780255379848424426938522196799401881354310069490983795486377316735638931946112320423892996620645030950054041027977925904738928941381974071059298512213870151273852232882593214265372131033282154130484030244759646518973934708595233858616471927447054906520714785683562595630293965151127171873199715364647539513698180885918442191358554568639282102498882771564363448084512527674201222336255129603900541825767560307641039664139200144528206686828585328326899445608523371725494854430511832739423771933596690651715416911616944555569558515416950031023739690915536927760223698987113203678191693798685869127246373757224598111345912839174565294659386245977092084092383848187569706467018115502548156085291477163765379429387550592982728283175015508468439851660859989938294270909731619215209459674637515154716850823036430248021820724389921881307631909712143082955730689140458259743199967903250496731383891974224199411135551069567886925811143512973629840925730056207008988812952267843265109216974072202224356102378260410269804193785215022036176533814102898377264617552107698499848875160746763676639390651124112331582349672181660783976889248048606225553139060083154374450536824445448665335546717592748322323499259076510469123294008968717709359251633746178308553567881775533599523637039882671651904345291758374116033080024876190246736445063860117469901588053009065906095120590970874588211462716631906542673167429769036275801212088488509724507791741659765381120021987544347234842275485232035000004158040149372531314797637880179422682857449083280994379587392624550616034152438924308377237377449176095947629332575180052849079178493771365474361362429148726742503736363361493365903330353142662848438506480631102138727283404141063214306555192043169547485859003212459390585153670217115005670833754744979552039111518846600434035114566254229240022357264401582786199419115056049081884445343093539148420717225099705867280304371949996198189355399355090629420094951720853162719639790867998204032900384005678031371814988362510095305899498428853129171907789917692002603319719066821035081499514386346104406565266276471510074115988303771705006209163430524459198191701172533392984435809189434355001449316986528995971682289901845675016363336248649697766320858080959723748442929656004833507807162847802557490911019463932251395226094223497394987820095658102647903821122199207675690843916417572857959549621258829851056819915381549037086744579474822927967370908408429800309358792550158088820733897170537001470524322370787553478059531687492467980949134902391121077258257248713418980326549680976199160684582185546766436827538115632328018154978252393685505024129698860033592099196120907459137462145100820015385328454526164686263666119538523488360297940078777263698549910739699683570905536985516502539322733005010262045310357751655890115551329362742959202363865406688618360507554581677931394883393444247048870359922014930940636827589291449675132678100781928965512878487816801088319331533650891030825506886248320020193266860592714613742494119266941322544690064925010305396550411302215981739262082137721412830486584880768371602390740759317435527789071821472848429523604183488567719210873062257662920512269671879088000079304130595905246567364015521709537904143610193064386893727924674215231845808471309899487291790491623784516186447767418923240580723582291888161785441042857284088782884090814236564342055307445767814599383285713920811770425364977472634681588576369162147870022298361315109441227359129959540109169370893600747895651568586911725230105964893431616806905478297910035139772937363438945124696408783300418265314914364018375382708550510385093162176856587008990562851393564696424920959077634931124420612675668694100610212693341177264330496714696034556680192720079651506094170984524123705185431765330733043897751063915070753590046125604914399945185237447556430444255228645305588622057366416917952413903508740746980681207067704951170650869143272405414321654598492324250668215006583767207699823333759474087001749792483979117543839106027585994963303067166785452935803565234279881859290426322316092211149990106591797946000484159489067932920973805953870382320972491869451433662002879068262471472059677020361868204480338676061443536166892379655876024324548712528304866292101554840500857360992847646019161444311453338731625043574603968724867890584721467056694951286258196923883325875787498490741282596296801725806861583290331138623674505265078198243055964471240704840547785882417677328991485600563365759518576305862550727903543134669121848001746844423749019006637730005951903870042844225835772794883604956649921077551217437694314010222667215637877874096933404999443554324866392590917779806459327770707860012705388523516684844516776708265545525310315187305564734859072631682244209583487314877838418974951221850630758654316624708855721449524430599731396884288686338483072408364367542195616696588087614110560354080941401413696861713135741845365151060579046143165576189304042000428462095421939803414139194280200102408056867016979206198324940157577216716896801997762013130564181567107343815369564276169511432992560572023661479060471395086492766995969129620604547659334258012833697268597669856176272014541513642167173981923098927843493041323796702090172287534196768257358300286483892084845052722559258773776404879841727543516230404830489789599992738629130234745559422255348554778608772272020628675005435333529264407710979479483619392378239112291376417557601614280174398760039863613235025211428381214289738322596481114038342645720769071631569185001377397123052628511148786857383421705311950018038688838791105631734715869822898446400030715727245911915299434315479959534937491502530014335925781788160197886449410077671927513828983442052011181881157025069223236437757931367406893112327553081201205851946303072200459105970232997131423481180024509870567831632492817789494244630108562933993118862718638128228808174599960005384371166895644195857716084446772558314100117153680876905545024977816956370827279619639633804403630187065234072260345014955151673512419710873871636784409494559445182817297077597122208494346584046841589914770383379036530058969549321267015645346461876570516940664877677114459284434437239044693162975506073306649961956836790473172100845485357321017638157040924955638350396963028779701228550697818259649481645185952808836996168211299136276762851504687071819370147400368319896867974994768666402501084589372527870524644190461737315373632985645746237426385741336009584327846781073145297765661012849032266687836436115567184254968690610730718170665049407175556503327662198845907373074440834477350506205940733252765629426750319482251466197150612883252839838991223315679625908154427522228666709942664722963286022860697692401582182160478183433082653351320343386559112170588119860683815930166195417496975879500163540954551694829292986289288046311242610306194585401348432238277367741727543446911155059460035373139061179392173155418714177783279199656207812834773829002724141145869503482782540106129758499968842404361646482875020898588370164078893673485373091885739777636317543544417632264707344810339730042227431910121386855124821568500797664762301034996827750224978623141688768814777237987124112834291045767861055911884222409466034079820902068082428221620664806631633542505608187368985474332360220424721603617810259837329423159601909473530014521670569363806915526993842455879775699013977996040121846772433271847965544009161529211596624783275914247890940655994712727202989407431692362492891002459485698987635955103591250494907976449326785532278570479235433763983515466387348197554330172120247382320958106871321427288914898277617339585948640566935543510449272221772461261869507086494658678144677872833121763898224322706394080403306873176733153221533309103992961391897703263134167270170504977466158953895658072960667669035638814219744133492657982533989492030795567140960995689863854803197958851845189315365175317727595748736242041504789858869999808768584480533763076182284560334667617384813245342694300645798336683985508539432602245582019498207305860812401340602816311752622368974393065683830278403017606196451250189189925053698113131225945943394190076111601757641013719970000782592226368080182013358512468938032685455970335567531115373386657076255182263019133689994482411622847265573171936766046711201318303080029649927060430332691295978084160162970248037026185558984973212778677799665281870402971466093282327238430037091762902470430534973513060922369027555940018883525096148353438569828385957663841724992098944720726161936540519687267043760809439150388718374877298657343514584253467157079003982361727273630893242760889020876931514838406575364699115605151093715472308855115971620760116345350516449886433886620334496439607278189579837281085276443533999516475585484848241213839930547340114921510076237818084400955877979244489425338688191999966658547919543180014966971333333597758995786427882310490024793827508817759154244632554982120739913000804771169116465108608699175260899377968929166188894634405021293881492526383292357469565838186036646970161076013937181222997752724857348914890740778511835475549905381791445284789379407096649608709756457644763670073899838661791700051426262179300462357364685841474070058589364177526224209642491082826796376734029204577480192306718238256683475096622534267467034657232603364286532441552657129094425988149307193336009311317922866911415002135238159076060439482384352092247063275038497860118713228701371604866970422727436462343242820776144584047288610994977139490583905973124190060089127599374074114612832839271760526256653189320816980620561297207402039674581904378455938326417390242318768779623949203828163220132485491182800664663507106944635392642968984120058482728789458696269990870327382699624480678007564270525588421356058803134686349769097242532663272711066985491718795582905972677462466731758114694202946055996534440693530932541359103029770268029000478489606655313730164472646269185295464370073727378299259097899545125218225218123278679487139195994605213608872601899762072150561643913726788310915823404611785354179997283130633100841406992947306765830053431547559478271450262944391948911531589170503832943295590377335115842914126466179640440055255253658930289689567046563772281304966261762617970028495735159589293591097954706569060212216549213740935799631069593078671848906623040943028579584621213730818857922968729568183104578889280701567891963392599621749621185618129074581492530309980851688213761785615424653890324085904148987802320066596954981023268514463495710212490907496637266014211134386845730341509952544210732630835434164862656501874245647880661165932311035890363025808719698150358458835173148828002760056550354334759163086482449211242063611585291647088977062690237480087509633102885443933244495005684502069778956114514977600392699749707272163406769294186976591151288424518781714326589206095769242704412185601854405011010792438401837896194156871674158793279005006849573409133339057481714039668805553801985874564926867357791151817548876050317063180178443957739146631967891082022955292277001115532180996647751390333261688081810325453124675123049752262859551692350713423648730165391194811308268698995859266545731334298645191966658938986142153805548093203471619620622200038271181020458463607897587574556207702559036248264408263479913063709782243390274486137814286202151396241177653081460500221377504623911076717436723497667494030622110404779803083207771275137367063794281539368203290352317093663127841605986479441150987224319639260397886223371883656890480788362878648428887998159726660279841193276236860651335947778319896743104531117366405956864594044799017859807142044902544714443437471043225578142334045464167237783633249912900791751391698903563612180053794752453262565617262218123703200127971979787941006260884645122022886496396270630590209266979085665329207027700753210189797172782826315188583334121423919464609047337678718137622665024124218450586667598062780594197168404631207578032472247271212535720201027325640274192938964631488967252277826181699182768429963076861178673681470068557553713862058023863086449674665177095789116033561345855448854414557280938671581524642020291383163442739597512566982463850323975021642785709596361025475177750283467655284549989022952620811078831599711618579885490432987574612507581943046582981709110041163576836033605252011413255615808490138938329563493489233875389687028877055144627349051904717319106557076298471115821311024547954052400601930159735513161421663734928049388083617541596147865307676169013747425614644668475719590817718527814019867284347567970203131347402685063897279179124798230612117062540922768280600522679017487181391399535933607857237925719936825307100870426008843596270531059220822902113447699448588895339458262625801450881589782354217165845506945061824478687735115686350351350953989753691102961725585084714244805690775728179039565063965291198513597412367092775589720832940388309199632087154743862699748519591458329484647466625777146752854209959742480840737035132677569323135636813737913843396125553435307173066407218424701838071697648295769677555118296613233960211437017021770684975152885240560821649881232637315842995872322326824967019453879448647713804153766104416462798132102261618288204986109712394614536254449460306600441495084374942807427924181496169636920919491909019174761026284961220292559475287010064180892886120140396586693392166760322768360254383248414713640055686621052250332374538773732026421149799837954430250365071665405154752304002486498239677259298387193633056514004649489861008954456214103429862803574527993774295527740212164195453737439902810472258976429352724177783899207964017493697534440259034514814193697248189640887189583034846243595806178019240051640093342806931150876397680553712255531716186659725797251036664875871758956928516714270514171959119256819459592706774546959177371966321803476710499540638903134625182230335627762968664362718885467891640019797785295651916424075767857132805887499821957387537568551832640165417395352646409123908399194162574535621717779511078929359775501734371484440126618242729792943725123221995813472620540273180957469330616857815457188510657500849493427045849592797714278527951208143254416183939067088948223837659479901744919585539116473971781380963470447996853617263378580828405977449008687446013785062990449132135571590254554734952368422920843458387925768399298378477295350561251908737572977994541652379799307137320683103073484827374158679559721179491053637826435175858462320160809157219112858565930361687195829059315296898113242349445759413815999218993825723904532664620322028617321588260372425148461711988232689883663153716216376427992877342258694061512087418707412441810661996373442751923488406685559203297777528032793889271613655931865530583633868641662436161895560433012464461365545035362018806327824172751925174205170446367300412868219681520592772648422339195774366033441041506539914409339299099309555008137457872866034877802759309138081825491317273420014132309529325688904305572210643842362349977695699328829703238776407550928382524464785832260394302141380194381362438498590046912572098509797808500679611443808235994568859321488703836223099366274638527561057348425997481934825375027906840133860818714024409464783022804467919566566162745946960414540815261809346280641828878087752056175018516608248473458564385586315892687281186656869769664742648394110213203465396841084883004791774338664507518886290769865042941597644712063785559093051322966690279352866284987986532178926697959766130497586701918866515302419467650643680401238262048068389784416051282443522725854993147988683747174658925259652732591888250470338028730097726409631660230339611008815822418651401171429916364155793175371722346962609383934275721715074156723353621153897947303503567660382700784008105606802039685620610334950810835852291528356974946293534922364843853758034327292078611484088280365147182689891444083902355148840531969046880370115340581000196836758962234029814086963205811416476865290796690939753275080503680965322968990765461719401345305390700284846872447271461068168595629433808180015760812985279313702721669984227336992383586907534763321398969521103483743142632327266467229507746160862765293277110050531980977909791870325427681962212894402774480008277293590818472118321512029278580305861031350204949737389223943447318783549767243611181836909053545683751407875666591696335380075922485000401291214019034407107390200338884483953347101741667919626559448852964429180910027853237699738845304061095983580264504016965686355011043354194493248492864585256663020351243403128971589504271079501862927469449977559782521230871958836793913264670350971294402900942006098627343669776033668288300620382306790128639040788955828863872569660542048657073048016698790904097709452573623775681068531843225549810004487436892141920168037348454727908600996255099776604090557571873458598794315394580713964291858559709276276324723480837077669232369657197842187779578716563111806873276680877514383307421099786453355861198596558632412877148304443714628104590026247432866752188109533720053062007703215356677657760639941555652176940221022234094539148882271392563731491299480211315864681023736280068395429594418259539292969456842094971028253425426909984723370550844227752064801301370685179634814977891884887063886276452780436799362107012301914604469922715083045554476703268478799258497933180503762709576779995872324060378572519003017927188702724325933686682817854826892051059420318695817976294009957369110187993642114447727217901118047328689778064714370449057659551039533970055721382325104082829440342709330136593308684362861176540834855893445773583681277134815218942129207164961852593493182782929285912569523094346777291101233718659748091219984778460883418386076859795098009825102502632151421770943405154351375171676179702956204355240245445054830839087403619591555966908180538420150438740290386145112442677082608929926156143604480599313605766128354274558143668669446729448994766005778417571325108886068932816928546377270229791403208737627830366696730172688448790756619672973625917853460231504754100062554385266979639648829393809027019151685279544745797917775334224735722731046075148222883624291620427508746934921888118375881470009371956275425737277047654015837781779852181921626657775432624745928248223950789598878404592632073716965929610259926920903302467344883558999732587757177329447800721642226342317148695411527400476414174422068449756060496627667872267457365378237512138265534615497848588238549248753916191180074060122907198362561421268755807560789524623306967319699996621784216712095622852479704112183149319886380374187930781612529041105528292421557893840615197153028540133232442525148203107001516919394433060407484855434486765968406635365876240742787787968824280043263135944829844554997703976218957386717872093201671613456875237778709359975988174925267567746923481467288738341123553197051676725872725760187290464127964999784604067394860357186009329973999823961575693431599549557313670373482031547580149871098351220632116570706539984410679728186783758715556583324784155432513986294629393375352597314798501833845835439864875071334581529829228526472768668224454783625636607876188426832937650212478852844708834920890460082695578637649972846078143733456100877362668356965418530543258297844721149198508614564301789187263690808116047756769634929161514468554159264915199436476132576659640375123095364807844245711167064692947645045025043754779920755326244360931648601669456182888753706227658757775061503321336274390598009566774032597143797032123169037408016393080084160061474867620322187615871838510241325354625269864841797892407655554325427605666468572011896861773836677603201275591212719507535175798398651928151413163140864918581359216224635827986590502979756181644232406906375259787555278826074316241304964123233847073515016767640726353528488127748991320599328038353167826683066771575590848712999537196200284571846738121420804159602433362826641138929176436947923346519075697859610257198460327410109786812960555667071143616379648967367405197207885218700174905282519007996115907339900527652320306469003190106869579407537098731688700468379285080449884405900605241225757113038980486312380782768605872150726497287686228802685673034892436210202166685115865690152480810669540643654510036879108077388466902000910041024556159675460684852346934483732276845343432091680494247754071785596686860912794827087646697905569597405808486172257311903385431405307205564847953879109827102797899806198735151358868868097133573636378797769140364829256436544748476280427767959823340225950085875059347352952530036828135832841386225565361776775324714156217842009212081682307643540064051757207072330728523070688905018647918130472447922550742305096341154767542815957412722037380193500730544085130241008687255483014716298555237899240797983760027153854618341488798232727548981833506106893642554707416274415299743723929842112699625701395800467961543831525200312882758654411368193406086463092730673655018016245244048417829003681081830961655250789831439581602940446069652583106898503757250929509571343534376889363655108097777318596072536041020760954144027185784807278341124134372170365735023024589385491815296525466229143583126306367929058525475260052926119422914025670896622558354850043626583746655498847438211073709726370453595458876102908539919847258759934232862242335422539568963422491918992800448403013105233514662408360017618378809217680233625366214994033531428964509569781944061708130284830244852760131230263699396421403609862863843526223118248803667958313074318193532554191158872816770663076227996580659722583999723249875895370853004642643016266177054097185261947706314383451752784266799354650267945305812112709643763136533577925662663059757187050119324099567068688649869149451241572665559816277091697269699105698110478068886237631575830304805545037980043053366462258621257352660231764157659735072611995306927818883320102899454457006029068534415181142718034059831781520745457136365873583647071531892755335116168502456994478438154811357031040442887127925461865601196849949879221127295806533352350512711130481769065921468400787436705784953267803392078867205659539786810445983921939056538204561645111319453096311667790404189313834685208011588980447711733583875953724568490297756750155698313435687848480088733346481929781415256444104113195155215834633873404034415153616315744729846989954939281576669703155485546407256370427271516134145011753265806957994311463628792132739573375164023482018252687329448716630063663529432439516149089920642043220593465129771693004971801249163898818394898093654062246945992932435059322973272272004877159861554889170057316049921895294409590614951346074057762312161931286647429459266038339566068448536489561133881597073344146977323536570718359899889612359169462165797226135168491151357807146138210007843151359863229159318614267764474492568352947680226937459396939900942252627998055503405396825311082273418516285777965926494334482604865002652854728722829844323610285529763191808483311584963931052722491555978231408299113778917675884232224556001718827745063481796229029404747174749114304608800738876814365917481055926585644933661412110641650743633013222782777889728509055488461926211164124709062851573899040290359768888157863714903008119381297256064859826025273163658016726382004291032692317276363788996605259599037532178472922420706250881485360063327066208623099507321230775273657224829960326768241321951935953946538155040122540705794276150378337496809645184381473222888026903859371457841171692193389156315698394335564865736065395332373670408935957199734717405238742430509842633854834566076222451580251544905849443900068906578921578882947490653782726817655746100706697083918134137208382648865765031114415088586599982624190969104189594025628828256053486118673164233838968450466109473716347045223402225594862913890249558370103852594002513066571284741901090936655922596366613416983348265990875234806104278871307407620735009740902276642671807179716350139960402971491936215520709882567262209342347160776830834667217163168157531375084704853529528927367553647999245794321699598378530474192294305305244416532300986550825437786733962241847857133567552650406629329863477228271116124099609586922126491830373955166147965080059817672200260786211742117405858218911271177948198836016652586650698942287281346462031146318736270779435103497937347182499847133834605881623632637970670511022070687103717901333318050139430856143504244274263246961009649544080478491768518023734310795593391123515710218496817675365070159868364293035632465926798801950936973311462046281583847450199145587187269156272689451135175333388670999645378427920707149818168000027695246098131007906895106214319207169938078313508930999080857076597997614065093600651880951548484359411814457240060339670820043420119370233715653820347134419956696942504727574052339208895482940156483722441127667832888466162230282456365747356652536478952753662015220664976417118423450998272718472174727181861829241541590844331596823361235132503147356950018168297087678996459894665647404966608666431114988151797818008111993137078959588606871960834990904807028161913441939038368810439942661515363474242669955468080993654328207522598778289640898978171274911542709223612022597338900696237671150341336826190784877725092334538881601381145542131994075285697010771031686479049727466268050815060540938163718911530407544535487369576942401784847108274184750120200604565734125893010517651379378187437810975585851777200486440268490632088880840403088960654100014648996486544423669557731663178103994098182294884298065742670834562706179721206828713902181198656324622293324958666367480740817408126804202885891817291882958712184723446589622426294847332111966665931325866062983464834264332850945224016017526870790442348094850461562641587219036045794758936826335456273598563191377617641640709096213855707576106905950961621110915171611542044514033742810032807559823961124614310724457352816196184558378928037391249985840702583959437579267591146920400541294095423392424973157600359302449304438291663923524499644123173526231673379572255268398238444869452005833747183759066023220979639550566079979228512861863227187488624939511154800388472254099533573100583356680277314596459341702457615546087575394273144281508070397287352890849689827825706366232193127430869032755016519274545084068980574468726463443633282415823990454057061882445543625221460093238117856892824144576642215062589047840559138917647783263958940936755420010309373584733762075571010231128705602074884635117252859222331152608898173366690296768123010801486664834897616072518658154274192003733124316417464073496277296970628869804268966787443430346525486091696656813782749433092639713446428705917739994645145962059455393236216483866740753085402175916986490491150727417424067814876855116906237082520375262830003195141887974874414543326632109531244583966523173161545725429233817815066994443801816785574328620853638708031852147393623846146555326415126442509813947401936140515404528431420679618849292218166016340436587427096447217742670800441466655008938974078775535343929650540275566898541320588103640002279506208967848649152125447873176816712337174108559576580165790677452062055419650877280088130702703361149441711838672513396921671137239246981255771924875365873029214920489422996542520076988672733538228182048814744637194134865088593984813016021733050103718434949982218433610886521058745357729636559371594613000996231403951193508435534638916086765434676917761385584483821047273290599783832893634505603954621288393247689086636780081702160336259805163531909390531938432073839105959289176500883803618347699179167843006836580678092027848214920281853593089393509634179745009725197975129425985916596439765114784799699172811485761179624322462427207551316041321704300271926343959936155761618838496527596786964809268859448268300848137780906752891653952901204350715999127124829643012532607485565584222006158478229701659618576856707603267150002185866317505886322383313753182880403918127453400120447895645262609533137688774311903794820111130869434973437534719010586463383316604075869232906179433175275185784196805544221816933126887846816848783350482086043000913079208279663005044628605175872971820824420020088563729380907016477339859647553308776401323986721474904562065892549315191712529364736533885418596305750050183472110489013767450007235902396883663317899360465547095768191395282221209346621579556451539148506658957643025298792405642661063483734359649250060782146595042194496693535489091878798586379911628729130057346459382421716271482052200817921151493617510004790743587039617615746538963683304230942524658851124829881368310981401656622987373067576368716298259355113504032156154151171676935113847921146431527606228687089162505443728948053593376380406904245557577788742886360198302042578313154728423641689826173538648294771028236238188803630293818613389520104347732524174149735460123523951817626632440388102892162829129479165251612343541788751720581696161010803263399128171743944041221809405373314778240231416594192841400418051466971104535229238151521767177954816634080856695874252639148925067870589384329394973817358682088629878760176582717073756169997522609209682272845052334085861327046980777226686479629431678523244533835077844116223164342041872621987540665692836982522442424306486264922498767273354386537654576038154866296437715494830648477876392828201214121961788988414213180100163861230293820847239688945932585501516290553723137798588620913112079729099479080460413947852651069407712861638171970400061923216130389409556365839717195808650403926748858820890217028189981106410536174062045926506766642526327533035860619823998891631442066095949378572708004393914527877506053942414409160117968153155784733010448731678859778723420307257851736364622151339410431019619407084712241761465736619976530509633936842660999103078503935958438605139305731621384896698576957504878833260222171834575643139868910509994013999037218088622497630185294146287952147570513914714267802119199474443129732234705521094570638891016296523188266959175158248683806917163376726344217309483674269133286046193894671270997063514082095985506839738370375352613477753651002867762041226873320539353625423092788433533104905140372963575231466786351583698282371781807909046524173301659185457963434228761030458018466960749825158244420466046469655015170063247233860760566434138679644514662626228943947507887301689843910698386110443515808313296209976710584436833566032280137805245740965404497693876173545995197720693373787109359744544768761186068543957719085174871542053377103518329337230029178428998608955637255492531495762856367273610472743083972455217776653593235685582137264642820530851276101837288743830218152599887704845555854946697694947334251774367826822388911249274765367195567363912068940273205051301713331737563709222156964152524387500025575898475123411332164193586589459792954314840421261703362129414304868940517467448713997045552006961499497143732551172752532561505001032977817212998209195201901502308563669484290768702362853815243528704386402446090869369057936054152643001244035051812020629019423814347339030622642894590466779823952808053677390350647155092395358621699841090676793030071507470067727971326704835695628575903531604266170819576890686408523750864200977519799640138862893944084331802175643478902122101514409526194427444149000408769566053898472754586467223134848702986990169384354105418228863262575858064492016467307960620008308859577065803158919134030216172705825905996424900324316672302686889977154001700791714751271377326905230075275968753968268207792107385019509951693084628804675457424113880451106014567485321483547629856101500441785653987952141910290467959839100086346931511002674993652764502058039618492123546110268827290170471967041401437606567795953978837925797882880745886845112228124840784117566350463779837880590788291382795865402589062046555840551145266030315111885356253375358585121642600654963556295181577453489421661724511861644264096794130207441058459724407934916593660616493888981394915399172070704048308036898424754410039826266063112502065483735847739596283044813246335568791116888948399180334294226467638694858975868285532842851165808068315562027151261821433859205083113402895080208275769904051413659208166110532650193463897578813776958100822580824501523594283808042065583788748532242648632871125656521800435613678318876419661909458919812864939491821245028739893080117272620658422476910043194882341855949146035367475726532851722998804654464770011220190463338251087557496738839285834186292117159939884117932204108966408673993202679222885446618170959230382703355693687536034195683978266097564905453374954657491172718457566779260599475792266130499096454108267707514820371632570167811712366056959019108169135069505591568158041286117725757942099218843994644570973375514782980952958881112364846520196307982619427551606822525956178285504024655799109702282229960549823950496828253368285822543076342298775311182974109748043526004315607637685815894245862626924618884519052754601775293689493907830206393657367655382854302778654074047339484444471822134748513799745374585369240190850476331818065631836276053694601514514521775423684028400249483781880718450203434986333782989330572377386535718513193773810498652366193561806477904508344813217048629414755139017972806451499529614780138763071473633392181959020934994053936937389444368395049185482279007728801367061860017155292291241487003674014415044621648532198672466855045262212069755516268893107663495211143739951212250116990099570969403964715338414981414871714722283344665040579299070723293683989678120072615754660748961805361679041154687657429744693154084460787064699710009270882840758231389431884277273352368220376095159115976050980964334760205577862292181348780762305346085134488629761633647971259466610405001672960764688849999416292172059565630595533381131711327724803670151664324825387246163037308355638117650653701700534986830118839956963095001610051157949170599974082742589746918553430125892625250323536234018076110445215797483284819211453437762009762217141252435369100391057804144983913311389034170653108819304072624898925676318561791784175276565316600176170930051493807625656698873015017981184210824194282425448695082097277401686497831388875604113963602309372296375055459529294096764787058361314679296436366531794512651775658281408083275458975128515347599643525086426919919370908514858306905777895567754179738773487250487199674545218232902287008180361285876234187853352858442356762528168814136313180439405571665332855996404149667534524107202692869782339656596398451603986768853709614537063467833332116017938479046334918397947483104072150394916498410434883922801769967736340938929185146146385255520602476824216793165229060141356044240021411749520922437861397240494421887101149084222166699687508676021803732687913365686953926706768442784107885288027004481349224088602945903045789568265287161140714708486055275280784551797453714599324174401693795310051458346080741728166086009668323313436930642627912643931907809574768247234093737284243545307238944414984091173622429575522042115949099845655499902502618061673626700189571773849877503513717204530234414775724207107340194618877783118881592067601825341116068265211360681818532146352971745211508379886420862018709616696212336978715258060992860289246170225274285388572148658700756547997066252639801275774497456965319490053446625800096023249298157518177086397409454342815484675386236757382112364717827220316840717138773279351904259711210979627207364755283205622947351129911430517503102902263783858613108840449793279991207105778235401964648592796116146992352485530348233711583578430658024006165206167263333139494534189677021983008394757905423125818656574585204658359232077485594634223828933968144302300691611310008998148503692314270756791775500367858455460372702136074857486581667029506174260396351335703679104724661483480920629643035302758109896329030503283124393690158014574051968241316212793369127130383308547946250591512366617581341692814672795051779074278402324334654053240045845139118338106059669754541219253950313224729252429946960501399075895253549135303062807375899887440772835108135861386582369778733799870523075300264639793164418031031938214085172792343378965403489700187697488133314326149362940909469690891703981271001322687983261520856718675096940596222783250703353995607368776264152579829370320527373167884563389945558954129767648886595283560704783905810745085545869908904586788949115110900139132073617963206226396205349360350471571568883211437370837478794064123393644448500589151249563358513588383830539444305919291531199453606616552370277659692238664195631819328558241412740128182123705850142079721710431050471046110305229401390037812074733454326013535284506778011719197234358055164355756013950179288071835575908241563121570884787429209456550673779215715634544440478427126731935398907488412900940312951812357582858109796588670150799401096477408884414663618464737496035606144335753975560156292958505345132035360477567447037671503454110446972447192391449510381054070356252629149040391309069000203698417140377004518018078262962960511916707395358108450873292939326142630244917406084797162516333436589967866963610166723507024548123112347796771065811586212253921202860777269131947651516338591201391730807906525711701171287069407794337996361340268274242081437308427973796093709228656791712942541394243416650601450791618549977723120338074008382917457471378923635882714428704274555850177330278450849985568673057194534934749017441329718941874727807535234336845719494481930920523887887369214010319076014225185160498603559643605714653962829824964459015531288163539026091696859047597242994325321052110325461290569274197837620393862860264169959643694773014384574038878239160377121060795569987220259956751711181260745111845071139452300219836800234227995322467850279940372107539602838698237368168093981762241346557915435136941654770538686159358646764256060739615531711385384620025319532000725771328903271847560384389838218853275386282422515149802573713987555765074275538309345418029448428021333716887950376111429016619598119254349186361658556555792109772246863033616325352762157122813458955794233316794333727375520013986456210537251003421408227613210147426248929098691430347888670780389542708611227576773877385168805735717724636157869063224898180262589357153693003208672559883924349513951133142772321421786804966246153421164043273077073253547146558520747391305145212394969035796065048802576412689048344756635329991480400295543149425979456932269084534800734655525433927822076464814644549934706702289773124631685982957865887024272666519574708426881881169340014780221877266745107146298521394299276158770971322146869214630108768361706371747282039485675414801114656442064858075788092334086998883554426092775905218267084585774651967832400675426260824346948205915398711617692297689512516099055628153450949316091752285451481744019513708957739949933421896207115803129348566204936689206533822740072590639242115041372542431875130535523943385772654562935563034824199229587446662677533793348056023064769186459876295397021975473252714714206599011560701076017234342208162777291124296222672733738854950138412315280977842301357872323916369683274321730809233557376577582152861382144842694294830528812997994008329810351008355123765927330977041780386053331658797228772752241485919024292080993018590588745762488357687933854045472184757706144782768601568848902352947515997599915255952729562622026267281029817452909508609449676458298321382280424330962543821617235013601120129705344313446074646164737938743567113767719913091789479122784777795292196555776586243063229042590982643793271710802867038569579120787424035463200067623165977288638448067051566575345004138623100536314925883517516766622879004107200682188235971253812182331649513987901889358892675386120076952065837230213306701903716523671480389379215311215603494474647141071518842323779037934398936124304629958643369646203666264295173127817906994054239906268438221149168237149756820339010499324792266469861467691435919226157739720103694029789989241211463551914987778991230823521168917965263325793236217733756279550297995441555531051669662384474245077794430606131366612799856777312848915578600816902560652789910859463983847943139141051648225096929617615908435865800325871873352872734244191145031197476010794389094573143183253559128716538470199111539453270229554661967843045541523567002126232122522088387850389679020901182028661390764247163824768612220407928643449897039824514318327837537950141170108379709691603456489944928351411176513950053401306010236586641715661382580922719981344538208707717589982312528006771226641902985158095430806468910540818499842209592935276554127990478857215899279568953614581413438482721332201070399064355853931609837217542961060038131388234571756651973118396217406706443990800818925820055913958656791573640300730220382954561355707912349454789515123326971808529884780149405260252943677036358422849300941924850103786345791103351038996104623455646144179978496807993683833700715889350336995700288472218123091613483916953379202919906080971610394119123001385480338405523717293834635463841781382990459355863169213751776305482276801397107999805027541129277285406205247893357601839032858906284450169011953167005017494234520818811342659526598917418469670422377002774252004498113984081579782704853620551982136630151005462371870999810320522094295782665750126593541756748969653031547719461342400485352289120671846032668135749653098092985616725615417104167690630353986207281999140063347483533965776512864027121290731758087573424836253962247635278223645926750371409612237333933150961127653309854477506307194174307144932266592224125486817850946061892316215867219398046142100739287298202043099903180836133671713837009063777913038621622020704048110757873236649592392596523935396837932646726320046165452546465073460963477151332787173862868683652642338082992467522314313896677308924511565773416838638214994378713276279517169042079867220019313992859631090543743072174999147910514429282009100484335664910594147196228763048462661782085068533883052270062487810513405018570416167125889608156500939755894132006627061281202849042577691535262313003553003720044089876802221038825811925345170994547574164812610771844339847219270698553492978608199744291836620766364998088500168800893832897875463241275018876434584367205076402479867623873078264026276798478429253248350859559231947871278905866809439693544738877134854445604654155257431868160639286735129376147798725499875012600476436720905616790916177927449107884027581681990808808226961995255980852295553334810038811329028564023590598516073086611613239191987809887452440418941461810374752641087804298706662979614750018748200212035645944870245224498509326715264300645029553322013273674210277614524500799634604372223530927125665692352033147419563685209276633099235036284567961601314142085634141681081126701385776431076941891543695373823343217605721989951336276852600785763233645116706742791329544562691569943518327310381966434913686350517288176858541197889746448088614758209494096517557572351023286554030431923659341897776535184794243354949257518796575076854600667112917578172525165489700837937214192010912091618292143840952124389375876238405886307649617819593627103496371482449407585684032128991676785111140117463223257647538990143942285051266009165006120039789937010470672423772071336467894987520423502966057291761983344216184804801228057953482368612963602121433746999700565569849221389104475971830097412167684279742311483446357918098699630553992277640970344028277684564417842214249108490644189995465173641018847139277508546303629111166655059542398945030833324373089792563632616044040406926395993538929528194713665521494585350803680189862635795533499320812493295702540952887496617892203100950327208505395883862224339823548793330354301216636626917777077800145491378517425922138262218440815747931084383913902086564607550878581979985939465281500714923097626474263334254794740007597642450919867838232400740144772883872220918611468746839630937195356407469792848528020287830770097454495055206129266039108035163321746119505461878219711456144182824826443184195964502254530952166830667159107336573680614980237714510991666310136248884834415819084488083432391983856597362855601923799624031511229824705200357849864092129834048298252783738808436656588425875899264369297045913416998623441938611948833164498734130239758431701128327506104446799966210937145302041186513111244247078771851417348695457056851933719074877834659149752136878295868078592804246720884221687416185719578134866628303616350554335347358621497561469670114810556959307106313279858926443295117282169391762533780727060034914740384676272016638396687750377370060828014688899878190545073363184117742631497592787456288252015749910252356232922981098863332399048513544319795107423157192773343364196876530483613000769811739230227699437691811764149745990459292495910255221248009528708912992073760332447412834735752117181720088759978382284128509456325789711249237893771677388173219476885747983992941218219247825767467614586472548581100624592248501945603812131188717998365583872430345795215284678159926696052877858899183169609455068196770807306433130971034739121090060267000693891840814825592235988162272329884158143348855537719532132676295107341909150881446433056942855027227700982489967531114881189598047777568194495160503400789966723757304620214834765340734526282436611511673145244873825819642904010935684464091394980830103278703192686345271645356288641101395793447367699273817395399000550033596691454415969021399974095048824626575348431476520383595977106457298547361824441916839828802979269928189372265619399112381852915962134343743543222454171654877530804888461495405678363548774576377361843918796117261546125399410702459410899548655999363113088077864265651687548066107499530004362457827816821802923712877909513612699846352099740256222785562648766738210848609395308946739804454021465501353097341673716709779013722489007513580122335838054835418499977115381216692171033206743471185293875266834447328675313478153759929130344736614506018525061671082834792241468534511589808346651371066756114308268612394925567422226843597511541491823793895384681659432789934802559545975633854601080883475219228960035609950501787222696568373489333085765636784071803170942005226645459423551571116179106666633753525641608364579710616135919129276210836076168421474321336831667251971472222160227665984782929866966293122146012824129407314706535476758968710023598788227495046771453867462501318863363631396738527613188403892346744727591088043922398737503615405730735807299620231800189370491178892076445167203069512033758848218693348760424982168070692567998109648642743863137174730301755283470764613535316677697066406845822647928394177848780003787619304902924259481513021041684299523378978951213811195097550941490694231483808661855270856694784650429530577919547222172885698848147390299132722719474894123800094133951445184601311959947117952144353949753741280179102824324888236379238805211056262777478276157613876633949886733576864205414618635308025937638913652069262034363712893998041110756667684142701484562768644122598726583802685855153962172047277689788903371259089844488612268537755808775757615899687586809761390293486855529861022571340882026753496282480488708026758680201511583935254632679050102018868436203761926576373967263076667849164593567655858810283944815850154012984862969368396557023696984295764576748011979258984112788269188416822949666615392267187466276502821247978284093559344837091431562437160127184633292944873045711806412381705984256261210690605192904931706409394367874971352049248686032951190083991038547800940346008670831197764032813098404367235232852968794035324075736500662201104022277481518807372603231853096016340014658673158516588848715160583308717824981684910160066393140528653303512459527685689264650446941102621565648349418483615300912505053719890914393507960741893422266929429235982672450137751728227712026625234474199035639478087235058987849936479278864593983974988838667564041427455800598690373314379123349950977082997721162634892081160687532181138053263735355011089507743691303006657067435076425669115801200323610489576888399979090735835217857782097753669947130010322416092975496271621099097348111612435426182649187805297665058311632155399473066865605981906093439691995128131538721543742181284192872417730775797580942305194952571170365838793161489200492454592331276342489966752231639230469735897693107991589115474712004872601252225808514094117693729354124967854050754768715718439540491449832921626107599423661017150437753336798887799540393536238765214344014231391828221357725088649695683052478511061473061470705376415099457113770416139038707843169474821614196686964426470192636273254509089009174392011093408935462340380239159224112365518998983742886571116617878450094454748320371685992398841662048066325578630539621844012235450715594253646121980538734257400923216524737687138121190210891580973975785925303114279852194155179782245429750848689447281800588725959482237636547758945898406618393836308780266913387431034477976257139125977120593134033024487899396913226806888581257424287902089930942493068240536862216497074159840837143792423714407980148244642662625895336264798519003441217709429200718942359230005063197337282182092466799726302693965006422778347231817603955703947105677490276330172222621694736543271758119396615423421226696349488780265996470266223364848881963376041812160238165452618609498486072656352982846101768586372366120093114406500062071058084075528490550397432889262207514432509019182549041482639931155899883908752152933616472071804452632757497337321423969684801422191193227434684081168303593715974953765489376045302216107668116329475311591830391701853788384337756078263653061121600027869315598711538833048254035513801396577515743063279134596929486190517440326706797704045624051363233036404791517126704056618416969068044937384597339318169401065221558059032818498104692422379794303236147655538691546011287053192703392379722246866969717471888700764756349122454873155665044339468660895990398521978746501522560402186377471596402826161887123983051238873331156719652519736408030733137820998171232078708357714670576936812161936229972819299608063312523046804032218271631733278794858642811214829761119841118341104254647609486089267416149487221466094603176794873992046712862719359639285476980564900101982643753078693399252402223890707368145151963072595378071968741668739232425141652258187617264411984716303947740087973813914839690915952560629345987158198300358114447537731440197939647024713831402763229960393330541648245104998653552269478436699662323014942641261384684834372345979233151768640349006657956177391789002839100300934242418616006945460250261466573886582450009929036381410597318270834402145969445937337960241490117300281636980111751688694762895495814770424121914828444450412467961820428905358777972733604825734403700392457416453959006630387798969012098067228022403316591666107117855967510290688197051673300160057794721317962759547107233367357907771144445333249940944666189741148264931262823137405136552681525442383117272968621017539609744796128746662416011228621094117607557909646351823743137092982382899498039395482186918109240090865586252405186961544984795248877223998041383601219175221547537246590408478403605506094493061505003471045953065280953132718657337477833981515473963791997990701162459704516239183103654643013873326589117661300212168782865061624571376277261437677205737152062707095126674266740787524408313926217084042552772517490725734261529823804054255257868643178183709312783589619518395274092523529147547907885096811081198707694739943656798261752787056642049672307865328734983620339940326927602015430061880147818127258871353718110540756079338730526317767930228807070580405452569103637500250347113536452073125859833684043092148684017704025320161535341314790942944915161301193679250013265925897768862305801479129508484178404290315008783213797763377930682412367682988225093338615197030153754385330429638985667769232796633272637753669466097586607057087588108145830134802592323058994989590092433413299270772342994093806998722517181397748211010568032247760223524373028840861409963111001289862531665070490399362919286220530379311040751802376992952864578751396404099870466469273947859863946407789409106501104207993713717199556355895513286118457790054240906102496943851661376206242368385846574344267137445265819255301195972035762131619442901367561222897035150915288866220923347894610307457263831881342939117370277008714790276123623858309008713030990825467161418947735578449445377426014252612765210833353846590002032475614984103470857819243010175397133786636717866897473472323837111363825889857819910232961678753642135505940070852730015062734909374071507698469733434046095572708515839309233071686189701287479159317124206339207297918829066316303983661349340458427538262785387522777161298768588350788020372815351975261517463752448911365239820249329360973755023576200676556138627670250336884372741016586679581690722762001714437089102344768306019150049356558398364239275901787334843380540081178314223897469840430595521869936602813745552414907017141029830185179416829942719465829080607938640037102738035195655324567981815891872728461517448619620872017073462384677746871859798842198973950907140184678923990752617266155264263346358909877329235788246026116238588035153976714777244816272798789985136791419925171925435808078295379417748970711995847785428882245535199578221277169792363133500071114158250038218542263279770738389629565944494542683578418187986162845021786137311133127360171160651879832020247373154276411954818502860389129869968461479190930143090354975585428208571802795579465502658995397131889528875551271803054144860696551818133312911082810850473128179475888902110293583258410931195357979426551805305781359648265613625468290196100517115976013504496598742587293763531642847000498089311705083607246793147557824812359784124527425844819683994499591723244619079713889389987397911026391432680120641977526786098533465449902219495669427618249048201747044905372547958472784354980852071994660736056490958813684837342755555715343735748560105630807638140175774824561550933257893793625633640681335725956089278112353296948544196744749946511811604114793324098687551444977169308942188488134079894436673801138457060684199150923737108892067273276711158270292041548216596965638575142838727639398765608032910997304052228566323101174212854152057319202732101221604547007328864292218640071425890806828024935053089540912959263415712680826871008317229270057199124579092955449128102643186774705826638303688545302548370013025293938251650368191879985364454486563511019159196864629498386104290276539309733894381205475104011334805066528506486338736208956355323832110086554338132858051733824413699623437442116584724417363578927608434606359416865375931507631140072654196107783155524556442171981647370241742518734748794060703366326375471446815513218899802139814274986823878069039555111177898704601872952795119144004053696705119323935440441796765148107376196610860015836239937209203409667513991163208316852460426345422767962452450911986131840747670830145413478603619095753616326041408899942182111878827442235983857863997113477964723725438516113828760281690686695936744183074499896075364446152255745883644436203149504098031767963347947356908699056959537602368615304046692400535860651248533613120626589824364300310582126550626048697523606484759331432279421092567747165503734749951864443455049106608234359421438744838866642559889874786589232702950217898293386969254834924001946223754515281910335987440706342836484485165207457863265767961386687270132256991371099966377076029509280823535523154162371893827079297494881231826819865055692581100893620795714304345128111472731928639005825036947280788455359901678716516070636689413759628849743954091613370906901953866580486065782343661227572781758480712448280394037851745180485615779342415953787809002774631378739283717155308291495539602709140840435206820340844726556987173038484368650468190943371590567074639418551199608056153514939808033176074905563871116612920987491664325471939994553835018745603619172823243497337353865338983206812090741088246719342600557587907226550158227272419668706839626391063965358412146870399728076020685142043582374792998388202780643445250992226467412798606648215898807744055250427994648948859984486731048489849824180082509839382386983999475019789806591391882850227673945329329008050414444259512865500551994119750092815717960090995870590020300096646459440495168962608789085897587252156591782825283135246598731559628967914858403550313649025447034712193270037374284865923903433542121108906914030124327078045647665361175200113441002807658354192562816816347268368414066173031643745080516801376819894180547453825487452430737690541079636951240625438725625738935565022101081296415701123452086926397895317720612572907057654952834654149023741321623357647244421701641256480015190046441290493455444614058536061169800313159352926494831755552200194295470480822129624574156397291477534722844917147554353557910576824834787939516090171026438749119838849850070421554630862761687848947254009341332652039104790894985428600902502242255839435126236775769606538667105069047937538739611579473013351469082543013950253211648346680314637103429586228988285175840609370243025314548527885424586635838468860829157760679849756539323768482045636233072960933468894223812189949524062547963145738753679485689774274339759241867776590259353664796673158906682335785924230797537338128911432796904047877380308106292844273079779085682825181632219917672546429771279412030032721945129353801515183065690538710303361554960477542989337006721607843260179081998433105043222488051220575316001675233376308037924346057568097931128355172716675083899994107436290191706992562885078664336716099440197086519043694123981071083463726695182029205061362765234693963118951199886082624651087542722096503649042410492070089090792238949063490698697478972345374948782241430480271395279422747729796111061275611626238406644758978240352440831390737788647377033282821519467433639699674634749375498267249187910192989736669103264519003080919552029685949636620409715394880226827416563003647626213266146013512979379355067814415623442962637321234477263710930563625905459959980032945618514599322910538092401838841846783457756164035081327622376542216818717615120282447485396127574981103439401545329462239365060918263418695227792007898808764254276897845246737315160519832520265453138267060937146447954978786169305333297338147133310880165263557767308777080887612088034123562917311374750377015729560678526590366055930301752701887592866280628467332261388499297379800492880806377104588759455731363078234285815077407455901116201684564310149255503759458397755763273744307270914215167559973013250770792734740987532619506962314882097439326689141785990289266620103939153913462845648715626222184321766100504548302487086441492384342403945998409275377549703157519832437267740477708841639274246798132298022948950680094270044751480904104461382710697351850496481242846195581770703219680710771595596644981731898644931728674163140084240168054131457211270132760990928557363161325125987574926586364791029927402392022939545481477324787866094714876321469727774411124493709509026174523367886920015349403384559594533586769420429048213135134112788703762009724670180702831795070151362995590290113390376618976752641587671821561258992582401787670846971077005643650122203069604951786210345024566491429782125603651909243420383893276035036078737326594431357877235999217249982654658446412911698051298242473576910697308252527078662038662048578196403087501430230286225925242575474323404524461862701161307274236029283438545705100971078977476388076208068829611184804203238073488903294557408869872542295063303303128367944659792358911245516141872847090786407420786445794850318520803402709819256584144035877035365596054378584520047147342765357010190556327012967669262093815965295183169155123186105007819396618449181416424586119397025973687842669840017817514128905675234954395965029952476999837269003520697135117967312748665205862843738094009084089717764945562872075576299018785918146675140605919215495023614439248379702645210130231085770232509082678034430181336184632498969600521079051260267384718798262990007889791518298121989199709801948470331960956622856940582787386583034390120055090752459480873621064408949064335932095653310609395492341263330489439290367235714348620867300680477778176094252700511571658537249680156361291117525653041773734276337139432556057517928024585883845776790510472729669657639042818213531801156321495093148517574568513891722382522047318318657445642537403641854737082830656907791974899831280145943921605332768894274714896286250960597276887996834153129296108481727339452011087664789915400799520787807691893374710955719240719692647345594259195381358004535275222808373230557048746930734900492160739849765716542163749995290634211140372430229529865797618064118094767472407962761128348257607444025198334452201980372949701514752227808241117242808042517093569617344211941594901217451783625458020000462159434796750260695413695956971356399847977370128206644287148227543532243132664434303640939650464570676901047607784060013643061771919147484662537754995176807182008260123973175627079081817986363937563459661337357159262315617406763327144725893068330816818697228567606842679105287479153699593880782670753745515164338546288750100602660244327960230350275361722450694380947510493839392414955513213019004231057912767984093237033692494863273457728873199492141325695696324198868448081520265595948324916136374707205380534587492468521289471506260101362708815931415300241982859006191830184874334558840095695988808314133630718327818047858664777570380029316277916804766708790952686036407591740418738525471363644837899862335671042811878881021890711545234125516699551987917414241408830943457054560570483207966355081808048814188031451847373591400312050391148090883581392082143540076171441845913009562619470285141644608685875563070211362963212933983710941565643486168181218853199912429538608240178139697274993096786519707152399400557701164730156585932959230837925179890112689452268729315652568420193680287938776663870426771356277989285271145213774581772909835599323620906699872610116893620726310555220526449927282561344712505132456041574387409169573528188588059677639323448074142384647372602596663117757451788543887464507087978299969952215128655522620897241537553612441341195754443870593147989847970009215129569383705010656254687140770090229185691267561721538042857834011784380209342810033716916596688368939342048662518049729367213162898824847034337415146157885507380195375306428278849902330486535598908816785559340225783545913473633602250671290580078189011205794871484490744717507320632416398683852773455052955940115291165245056012357337054937283880384038300715186802346985225770673608302816621959228826181792752622467210090608781915147765003311310125719573747445335856086213931838043556774570938021670184734121094601931331276574746020657054624408861744554851733289322554135062813283249830657109835112152760494087257240784361365311047143196653541151177384497263141335771211219232443739384795670666391134014087646670506155043647692941461726889631156579295463245150594150964359649606487203149173997087684793288148372905523539857043829464689457321817842350146291190828737539477777544801461212472402204148322761561296634905125334917961539575090950966620484813238920995022139118405378245377850232674299201095164170625063381618266461480063184439943716463203258913047828321479257871174254388493181444141326367102090578844452845378511622357642193711708320872794762205513054954371606183553288579842544783212943699887981473081859906767477901611788009437058558312772263126468569469943381870926046367948734188850109318529152898682891964703966172997804071841608491511316173165702034574015342816352296632371467608133075081204620749831500522947400183383669362582165415362502421316791916363904999079039254428033166016417823609915569451942480241171624013565901552072047654105497497543883235602965522048934923070107364685214680476481257794613670741561036510059870362300773542370237967118620837515035039135497604310739028882384004720218719961504303519126985380030369160444678564468602763760874502312326230650460743154731326708798476001408959074840914521665586234012291786921432942769638905616515523172142327937446083394482175125393311967365131072791435496963403920042551317717300956142784797177706465015519068804315438838106193210111401040766395168108734887840594025158971404608542230923815327764977531151492427192014309924725212489566536331875755204457596426033870803438618226825520591731165509453168892218214508926230236283089948794028518064712377495436252015894720453242663579959936046407326163148974797308315361122023422352733819211204354229627766359601643234106640799436035265977335525077098557523472663564199472467998551282523753521842365797480796301984734242160726214084550732526257322188803711215915439188220000851172462537444199820817002922405546433725844694651171642048028532490932654626819089485180581337426338044766184542680014200554736048012684991500564833497786320508429783145051982094463631793921134650805709091672410308793980115430174570883438376428806805602318924001467413513587149234107111504816697531427240119367474296316172390226186633939286914952524878674767343055863501167439156144967969109431905835057367657722753213116746449634289999592761068478673728364971193111556373771405338549482504987669529656769844296899933673378917818810189036857344576949026755013393925838822592284047201827816260164116203835660907341020470280122361992351655444994460228181272559548116939288254082392267664225819911814385841514241483817145430690217463755669625243225059189919847930292947486069156013160451961878620288535214278939690006835934714705206028816919441814399284672213477878148647099858638704109964182002868459285740098614346431669921158037214739662977784875049420983604130481474648136171297728620523516509330243720991073817807114780546591175570557720788916557868711681773137600772220467790464291803079575195129777737056222692860941461191707476958011166226488279663083257831576959186642573117190196339332511219740651791308794259031536010462439591864847124551862216463850141997787816096631632715728330829886376449075413583438761532142901945826306001091485212573037607455812287761635550084180944087127783148823808281311777039205626825900460995698904721337797935492720856177904335942147936086234109337054834591724065177912628387217536752609794892047666206630208033309269485697044149999220335298279952250779757676516786475540402986633486963665888315085844973551550120903514959767430107109021280717997971245355476146461525916028611521627965152303250382437050788853929209184505134155672558569959098152306867413576775841520536091991547887793798504895295069360835102448130512063295364534915612518927992913162237103762173480889055972104101984384184098507733184348865353667640531906183874828899213768114088500344184511016186483680379678959745379448868155724235303735770592508879276226774650499320145351710946068741502129574738467708460284735538545253346918515989435384568471846581709884566613477460292631899857841782743477816459071513547551321640494631455390115557779089469509098830076416466619387853864298855643973020632068197457400758465763819869914119031319577093112553561531521190649151854192621876967792262554672878706406275373088022062550474558201686251060197861416686317964256197612558351096921383435143082403902233262739617194232825328389996229161239201158298162957758152111589548189943200821665830874878367679636361128766166149621956318229905887538469955851297701303057896883289799830059221995257241314640222493698483962972490152553568219362444984296319973050328909089801146758305596240694341289111622821891611523325770046817113401151868777232641602955005885622293424660930498397123783381884414614000275759879092021212380573896402808288357733283255131211155740404159172364499815955580488916006069560216720659058522827121295164100248977916038080574906182282320160735854637514641365865497923804567460962819865247406915434265490910826455444081581107440676135652703936956869613846237449308696601566928765962598024578555998608622023958811256814306143384376035661029348681910074531567897951332899268870075623091287584992148433184445219027899662031491111123409103260787096526306179879143560059086789084151157063205008969153921658664078480609203427404168349949595744503027072212596843455505473706148098136951522047064728768019994997134379494747304738700421263624402990436724014281105901793684670517407414795099772668091211489427370802368050037564839882905782492886911126084790976149435191616496989826067405670797800296451807552992060218857371814205919537745967430610270232164273524818848186955386428912564721681494534394600155303714941339139600152221954629175007895548214770116364281260109455489738370799519876049701062730651099953607578218425425164817470805442768890606303792161714453416491434642577899120291021178421194876442550407539213794930011955403917208817077382545145949024919876179378714087286960579150818048466480888644947979754270261629743249867652096229653896009997776069953557595135785705379392974031011286068060165688837498502552578735349111617942792947385557186015785304723706776946346301277758262932077320207208866102602292467803941407790788958861038641304988622195884233094609127535869028441687665797940107498683216877721665573676730361168000311763213767930259211139671233999656705297214116291204255985155106220816067231002832422079495184420990351875569137958014312042758172837340275158229981335258897632476964677576831797756301712796226279741264157958684992068034330214972949873006086055491258931943763543185720231109375316325983771214264684719917769235412193853134243493781189900253778291748586302892518894380306197923491986970265254643074185325955300333559827200117895527677718022143500572736382740144596743399618245645872132609442894351174283936105289064137960561332103762497895364088696298050094699999524914932140584787659500021830490267129643327902916962017862056417172393510056111815059346826727807749838265663530387882963615221408415909169381826161116098829217725288594739300601037193310285864303594754037611100944926153910552109544473200352892042556971456247372948604157493642753165289539151617650264700743114891088797704062627626237268351878819235059389267900124695591910751576949555088460718997565156286339446285201685521115452218944673615588725162023401622580944337970209604507317344181676399757004359578324422700972123587304506606673709010646277001505933889466560506540134281757318070152035779928146775295847335051308126636190977344569427055458271624500362713517318236047721317228603275696122180015823591035345937621642146593398163271356951733893320568498717387124400089087090304717960596778738374467481519230316688815589761640063933469026433073745869969274707242138850160499116247579931303830126843896335253138145658883618283856035118846079403429386563941605293617892970551435524564177174840754994411759901358349656896097595515311877506300513631403209515603037189647121113947627891649289753897629644412335898803203338915312852768412942972095634475044944527209140719386426179067572842231368208970734176294630421162098282571987277984078670621251438844398392831379313033222983423612927497253731547389335410706213212628604770256713381163059430178930865422653179477044456588374345459381387365920816232970265335849444990865414835587640615387426299871054745080564630861234541115806248014000624267355784324046470518036139796391069252666182146135198097909438598587924346656986064560800862641736553156463698322191044712194450046695651879080993569557864697128827462876358212433261625256684018378683412076484731126716236284428188977918763284927697262348438540813165157888738419681726844949997691761393566637929772089279525589647468404402210826430663926995709895425377594687986410556889224216624847626319735891859900811846709512939294776760507888784516172594363833462211507928058768575330134052888866019592812969638093183488416703298138350124555423960883222657787627302571605400608134259832465702685737611960503554585753363371417931082777307103935535216642663177386338102068313376706785591576785751726328280230947935848305717431782664182043320304222920669965824440910828367345087948261426891657361506081065055064172209881906792956089611538017153686772491729720396549226764392427452415268355156970061089028225230121605261923394074762373881159341389418211779207080277364177326238265196123070251707127469374378680270383647299943634546053742883941933504776605959686614617029363454967629386915943446673806922555144397410548792504001584130224359844670400858281692429608266235736462526928042658001010810233789323247173924914094814432668536904637655466915551694204216853260975555084069127067138251978221147433369055382601964276038024389898886696499909260198657640355844291497970328139457637499977205496067491490773995988131176908272938367803265632994308960767581754638964360838633122482479234955438734984813286232336565850955116790346669984914227608826981023937279886963322016600292304465658457705793926833464406996765951189727527590027912503068133148673108094524156035646861628144609664580383781716404017241362340056127102943693460025715124377814474481142715278394632538300123291746139566493252652137021746652466885387164388245369469779599482497951674993566764148634785945501410598872802122330758902763509721743562775333118007213280486529607462785178014777600106089581374736087782010222625500703733309679586518373966375918199506160196532502205604348123526504794787480275379435501775269254807588426882792243012168151926101474821641130385896098520842240510598186125999804297149444283576545549495967229740541553423518594950416723230073508800168579033372759143717435698277675187210876190622064606269830868187742280434340594953338549340206891656190497909923188432326581784096147671918673344493951502612915342523204178574701092792316540126526727761142679235189717558821968286151444881339509229690142219574306604391797080585386631587989947812158758956540255023543114484090663433549755553327054681853635263615172137116844878803911678321219832497677878575104808321982223735606560160956821825571745609206719707649921317046280040906847290774991652017018996962158328579263808978053157448819192988820589032331477227707181647813321082494823422198031412196844986714191838092151304772314857321587136757241021516217484033928799383603898431292254856152804151807898258797251102887428833717701355589035201280746587148184814717044767177822512778019906374878292314477844005215677693575701796740166697893891027412906706577451380732300960386662096969718793412453341693005067924481677328348705410462285989084016349033002470825318694805717928447131963006924804506089363325082395688986818935790798669008488536052640709938392147263573466928215860048213251090229923895163027533619412975868858474454952238518104995570654931925001024227470521828911300098493225653039973893309900891525646847139156669425605005881347251166377851219074344555617135079568004131253678627602748294557825497781411925471280297396787598202674775414893804123573013536515615883716287365029622331551426756152678579874137897408427566526925079522352991355599672476062097659673615612458236325913265767888772960414701964159927876151629437124367506219160045669710350159612763616484520483293462812927473930451447023670149870012126186271189271719978831954003731344370041927301218622978211891794440802315704685168741893649540138976614457395411289003288261479924224882405566038835843654464493912326975686319100519434885937576796699087259795977225101121591599869923547315664498059758569083699529133236755037164072767529119781364774792834949342646115050501823958387513946681789789286812736504486068550698699012652159928777291888653345465376666154839915184561503938778656280264115228494519380917072671008429523545571504555783035930976442623585516548845463674164352012843914423179480352086422067205028334909138901697429110318656544451414902695743569154123059403963991296559680937781421948200143220273643336559427847893335243224924075977550753313206148658112915531922327526173410422989722930125187625496702449271960185876264792116226999670251045688083031818845353116762562388536390619823565034660855108785057197855557662461226510170320322735557055005671670963983981552045395472126231501838027194062051956110406743487632194541368427501752791601855915229638875942112951846572735338355998044796052367330800681004957751022833335786624520310722997158900181200672768091693685003791980749067527802254608039798777853915379464102094973851633892780921070901277418856901776412850208071959720877718042763628610536069540278388021612629801896389944015717751346082641232722846816261475464379416281835409017405778802531449255287328798354908978103502846131396971468961127805818285225762600898667328874720019502272938138479396384496505396390464996261404611783019072262454363397843100558356839464446474492245696637344201076870298315224550697119648908090109621806518851047397486494885530971448050098471232446917231364158594797796911044312432117812548893428901303042477614715593356076563651747226478475018328584601042958115797130309318254117637511128370826919079980772919244633121126005931320224328404817956081999406696172300141728909482089726848673617758620763420543794100625143047894911892000031499359491912922029353242374560086426897920390077636903139108484449998982567432492434406686718588958396985256685873848748308604269178947578774657797158107931214412550262555186238040457333959784007025662206823967539744815271974569675267471699507182904177115411087677708626682514313617250426873356365084657808247818290349418348682788868713718514597804813211696043058207447814677815978795676422299169078759469872278319051491497521157570948520080338305644962870338302363163118264421364666187997494367330027135758153622849414709489116768341644839918895196498741360650936902637564524820359363508051073304902646920618211092812500493499792213645045095856568687802609332720751005642015891275913519458191985488958297584593556525317479099044891896338579185785210442436923986736661745724074008111154263690816583621125760065468925368206558962838651086465018513484314150481734356877243890507594214240679857297188787092404950198629699658316486274345802074221618331476015232576875849564995642074919219758611343671642441829866915203391065217180057943489517509998107846948191255829810792466754371555203457691169656110290758992187184468282645240824740130008876139563467203910677252437959038858632763442274450376261357190247806882754139756263301949862501462903457984804944665775141244744922457743571953965835291094330613656379756308493963869928720314993431164192302347285553021169537222278649627677372614215237222450554710517629645438160540119790930020751347126230557351208022844623081426627629474100600178631908480698961128645224368169431299831831702899523011990611218491124982631879056840181021639539866326410680442006504188270457602800638161361673342813167346133033827390624632091854113408868892859922564873468125741498926824764374457338971351450918426471555640828271550128651300666981034567400594657993714741654522884180616072603604897580853889616689642552863134610174067328749867666400509239465798080628751471013454562384790090448142975570368819602301526528606426429078558982825009663752366384250388507340297047344061711741198440894637179871628187327138846835138597691145107888787021135759508981793000106459377983829668055629077633661448766016707600213442258647191912749113414499971237703669212317446670949845379669088070552813143484921261255850248802445795814758805610986863098744606700531793434934088137573627840122293616762573655952737294902298302556641423717481042973537721835377671223005148494190213321781022978249680990066282543737456290579623384901705628835437532106626802024643886352057990740633524337875984077713759413495445081391744423408386788251093056327519502196605700286109304730897466726179871550032508158971315170858010574575228605770923470944833890556677809755592672001960347526455537436398625646142346540485318300377452316473840532426669112592309554277716319206260139052909243004184488880141429895607851780028001154824043200946119863718357256089737393661508042074305975611437962526117893313578671688649922725773736590279706241150034392228930692032614260875776598759015709090753330082531402256065629201455886830789243308742671111297048645637414587844344626775170923049047954159569526888056746256443570288854490210357431322039298652597740876564835538913697964838418822456619096693891797347108331798389230549180427720812045209047915904611424095730978815230518455293957428566026872138141376982621580344673753052319241610108606205646235267471747906020835830485865789863390474596780739323726750448863111941349005620291681903148078067284403861420607120839932297673800919224386104321530275072133618180984090899550782597384445669221951726209695681524010706151400975994914164432193685909302981045324527046029777596975542428421809806683844597884163906609358160442781460644056288004290119271960233074627448139775693797337064631751718200677524360783430813280953066669467421853714811963116140280883578145858005989918478964913304786276913939883575884914070298840603510553074720434504334659800117769843158591944336357197918892129514264734824581068418923178490299548097953757415245365075457823237417072466853984795803584723130129843290833778506984034574849134780412000417417402515565954247042367346313542570236207148486008788847890061976841171930381853121838574517413565278700447815864556725695555195539910539044140830452553060909904489295599236452402642982980236487449525090013063279212388781834579568097596004765477280732805981796063206660572915391035348562115913827503117248467266788250756526987025747010926937106345746892723285561049264663441368632057401200384408883089031977266338418991307340214199522418507774104435017134385510531808325366285802490019216209407155120548348691024312778770549878497200937220764411498401977994954559630237093107026060857754022970323621690613020412390757917723938899166848976902342093894669526293469094764598108794057820715262250657517747046206508664150216209050817919973157534461010729973688917509907424363126392078565323828607326354980904779456587533293798023836734086264400810571160085562354535788904816814139519546669287648877968395007263785526934814633297701670405969750643527616109528402904801811769194576358065096238940396344117769276406412596264745724410657121616176545303847764269877035536050393515450059910046978609566095640371904665438367871936876999992396153303664939639864522201385679346469581443655196698055212491783630988001256638789197642213646802333349624549155408632190797723233847251055896563719043400169077320320159188232315902377251081928690503432252884413372608466976126890267975629416760235842318898258783620393856618984628235744497765403323342591913919919047396403356134189989754364426386635470829847429974313785926417850604161613051915623799725081423001316998558698712617677498290724549025937372589827918304748286194439873885494239963542654818228918688001410209324004280327963723737321802769184812315201055671348343307009008670068307759323221027618155373459599702090967148245219922876767748971984158200979678325145952967815918232682974597462272702092109259169470589146640423370221269975648121494532036120119184216172451734833547625873025835055919605065048508595366405511451747250872324860244776136205888073271689308079696939765678500243131387786596573829927203063649668781837576638398693159232846170472404707632983714299859359839601690553342454752073979741149367338891118546960429300042687720882979740922191793238167433094564922974808000945150917256372293398834929256379506946406262591240409120567578449270153507221568982746777355785832320580963325449262221464114934473996427155694344743646935718825134723531099367514922315324365180142609645965078454850661470846986820417001650679264743328834553684356530322497446920644648521455983542813213885744662568219188528421730418058313249466339711981277873618768724287736494214624500805225822314650097830378483388933893618981795525266104952098556085226639226195514066445113382265836485797563465566288082311687682573268368846190779288905014984446141720925476023281176890823436998668119041927176579969586026974491361816568760925857677173650567797146722810569626815237624505487657122155353199133349349758046489528190258758049319856842243507437074566648029661648781678305319957863924910590601143996328946681358855178765183209318295162746754581327731283239545803065768148046332853291424246717380052293162749436974968199546347727882686155952810155411016090896541248603081928817888768860260457377734237219211282339342775066999831196086917149872775002809049778408607900882893260130003606017605771094205813513162632801996402551319845356350393949686962645521129043371975453873562194607479236775175180599597555168576204608674229866780758752318034059533052172533909360301893765626642330810946485139332793160312404672828839097154246839602555976721422048353351508916435198986926909427882366351261587591480721816580701129367809761843025681249817525525988443494094490918879043496169873450159385524661621957173077439466568107278652834115232508842633330104692536820534380002463432692555540649870455813224450117580333687398701582122741142018180010963867755352157917172939029249888282777174676777873077268724071055953094269280239502740784819365684325441476189276618102116780227110378039315159569865357707523152791015853602861443314573533946000858268435151386267360132060061234463512207304496995377759290325463991681141435492978360545933552681789683554856770738114835824828995718307748196268292741069249957829288110999443747638303449367135757971775935090459117945730336748360808161957646273284900961019080332972546458947492291989247268978213614290762629528134149917535745670920639072847190899453118755734995992015709100957339007150295535889768469312983315738651655640343908390254559127415910631343039770115021896595357748169016752239370565014965812908344932927401365007769308968725395437504678277452959947274817787669825843697126512436669277600904648961593882680282506836816507738904295632419864027852009231183379347871104618934530754866117538326564560570841373974279631747235710263870112991870632451678621830986006425567110815060476661579249110752821818200295844128694594770334485415707067124244567843235331809279717711024654482254359142072455397861922093817746728292507590001144568579450521813296614633807004582783499156356283995675761586079009099799740346103825893051303783499183757723827973264487343970997711415775716538379427578046566611717363411685462268462456225520903077430972152182815549073647728556541649493409548467598368967538739598490752803318374641596555708459637621588064737745420273206598799824414672260620869666906180798340175192392177708750911076627183815920747766150400048930229866640812314245059616858850786693372740414295915517996679376811300263188425524100509283622579286780838311895876762565358968723325622854944689793404345366944938065960873355382346703297202144223697212142985253936742888172575635094208009566584178655035709451513392818867734796456803705400627746095241206371011214321079382700559521638173187385261448393595559629418374473550711991357470070545980752667485599947323489660230668896983962214998643834834081700925424637406040393363633134959462086909734078867681194677179116425000916818825343664370548342365933533347222247870081921640762807059465074544485498777690021092977789202707746976867809726152998806431085958690382571689732513594929236514042377955966241761989182435023128166897481000356217321898300088875721065068212081810093283979103034847080176448291176168415288815290933945415310055731896856038146677187835537194290503096975492466188802612171089705269669027343573515432432169336681390450332620367199306364313615990030175064820853036871397992025976743440409752766489149987510104718757344624763038681442597906790744321686384119664330082661767437240919385220988834059726366065280967282351255259614146994589051866724149912886431628500775127373501301134250695226826637200265343376320796530154364371492408809532381936404522256685064209919073340863985010021268244734979568898191683374296171571888118899049786503020722775352532350516248961227118688609872453840911572001044786533111182248875795056821955812641756412721323035707375853426793984496008831910060176896912160807947923262776487434204729730641202210396717415352223592417434168673291658293512284429597220697259513073724646961181807349273723664473386259852064322564599122647286562720130596292316156108522364249456930620097147259861397812317943914508476612918442097240667110695012593293875252856408159728874229517623149031941716826356204953198827808932139853877501967440076507012054245266068644688478744444179164045346437053514200231842282842918841996858796135228063120994100014910746803368154598570213992435848604035216821296152183938022623048576010280323132230749787390600897590688542125634081930681214101362926069599188651875370752268876507831528701478531859101315837969228375438967008410846144942967764590133993220344750057405800315660318309924901726012853230414564059106231717883780190474614212689250157049609780529620487006081475986966573237523320910047900226029963591465030589481110480734506589199142268297759397473307521607172660765723734523754757514716352420693923022790076735422919661776855695175871320576807525133112846092924898277038785645973840499239359497745963926507861771553677495507225354847471782563270717921159854203796979741510265767071217291699327030448370323129896447132880094972387547749320547074248489095221948657819491468944504948949227608404929198081566989404396004109636421153574565955265031173756437427770795584290998934021608461528219191870056801436865669215345231666067015411546523489166357280795857842005693220774434264298948371625063984032964052364060790836746096499210103922028790335859306403840681765613069440830971434134139292615524146894515240008314288243933632756564523012990334845119672105298925423995187011085798173583908987131720436111322408232322474630898285595641092422780658874463199289687053623865749035817732590774983090364051021814243906304374402302856993114990221280144471397206639163568457353911238347914013585780992709489383547844197532139208427688709154435011104460592797972891810599009748527983818808636891365176372548337242588397132692797303644309470870709387359280118506303046286892586613325736913585222134396093256805453116855417869691097744722515877763072013577141540013732581563424490835420521933838327048231371222129203890645060103711983755729358185272350709308393110824117030586028070438787793200461550096720080969421175462196046104127564485553439707453362607858216795832827110692594113665504766098593902313956257486086555448803145293625862637971163952318501810842542818192621873778356466287310487300072687181097923050185998085664648966000168635728948907182726676220633623198271287957674038916691315672193508644536633992744260271188734143922961417762733883326599763795784421939098831244677133819686519155324318647213429727587930567455936934117513977213381406835592289607301897630918660589441280578930416644900744883441413581379337116256442055282572342240596875157593159833841965403370850849548677606261416847494181280963319057355529383633557514852758751613092419313256947170064605464048686434062873591566895229671231396924109717009649270979259847868475130424887533112098165448663074525417776907529161342982456666346108858294376231622800606984424530430686893786058604842758248131322448007652105990421229913814835864059034281237515267681241105635974779851766588100028202247891733504232325726374192054854258504384914620355429788803434536584798776026976328017155726405569960212180335033790920649249550364842540868269430379214985119265659020057945236801933990273168498566082077506366779527480571557040063510488646020209565036132454374913004968144106633705742965529672098164852008899065848848743986781269741714797812080682604147794179769258885708323518490801486240460651006612187043183623950092186998800584441718880441911545716103185825114279883859632576435884863862064903159944063433445420061532998130884368394400855534197540018260202364136702599903175003829489395928835398614702249790878091732236801132670988842087602477812521295220193617016968444074778517091587085547036581785033930654635829607945921195759038639315858162342038554382585851868490775153441498456933596992077629587689412155387922796659459369064418134038317290569038462648709352960323719784754198040698043420630806653564886381595808568695782282703916155285347386894549465834399088327673388612548058355448912095510312736997007669338413577672747478514651091050634293992713787599691722612404826628129599240208830072973604184022871965738968628278208352248319518290097125645991607106223993323268189153045022329155461443416391871942903090579185492236482723925367569212610121496745831821361672874823330968730846041195352736800718263447092669562716422994644917440832380409625483913612526223490741113689196071514627692019415612171482048115255290833099064859580403155204517127954510083422911836465778863143957271446621708507173376592022845339634275367198402671830557334627134449737015225675754961330190276396612662951125669945004085054953328500273072422127736622029520684290342983562908362069358034683836851517854876169661690365077601879180819313823459797982701321079701139325140410757481742523612667586940472396861655264679017411411705951617312308534003010681797816370286644853650282737823957337829539698361903553358792874535105694302251729348148714657520569202917695636049047457365359642326251806457295813126679913492672394216526731168401748519058461431559030834508237721168546000858771018970729042655892532441595107278681871343638147824574758204433928017918527045746223366693349380988875121493107378766180801528528076953349527534045802968702213071933713052309097532011267537301041747681488900873937976924913650013766067303266077286692981370329281575721379286243123249747303845378061913778947791692364151323569901884667158759122964003076202610627305973027295616976198713862920066920912192276322973051631152012427587332403006643463839650531788072462237176717438711430180518320758421482916039507926259305562724953189207399810386903081945976824129036092838832127088152017260941645074791121710678153049585942600696511300845913542709298032351066967538035725023292552549312543417118302383514016328798824826143384665032267195043446451990462126819720027574353630761724524370280260672106439259667331025278920232558722751903882813659728790331089394557663162734087562136840732619750758565192901783262014993101703702448375425495677725134966576739562100903369126374441788322483694551571368092228338564332907002183953820351241735720188919923450232871830750849122410848103467670083542331772398231461520246038347479310199008834507331207962819731205465782368978934279063944860192700956499680802930565747242693863867997221570092764039353992166626481425741832688629695335635911094797527649350492810693421806515521281168140212183997187491972053330033438522200115534660323916114369743084548550266005515846310719736516913785349607385068960300039718099031546333595219686463430594378309748812363091860331580731719320369621662235514828925393165230709150635977332904108144435100326379985021875122125798910463105974482054791939946004758854674149487867958659415027459636390039351794076645454156510868301208494162693626616005732852066102574489466719355145495433763053973729605313052082840809657832847453758994617472562377133600591174397510565814462302550164332586755917778106360941180095726620772117466254700727076590368844736941347252058110100723583180626099351098754806872366984608463691134012168965070477087903893708818247613685335708056442897092051233807486379314448702777687743240718040728813757659647162398568550497976799426478609039298594894684698055454886372736641021645005969258727739100897802529699208304591296253723687368227496260122865804347096650037547683135182917561769902209006543938549943293485441772820594171605988259232135254345730647895195885784391919888116570076239178728137696231851234929870705306282000734118220365366299927240015846902049355659112435228461251750176352472458378031712513124974851726343942404765232826614777922633697893421989360194506708062207838406190201765076541344358799868308488403502625151088549284472936392895181416624325172946177045583494844894658315115175178972290297245354326410531476039221772185929649678521769372558474712349406374913440855191586430672588059218808762567822426023242328516617007811825883703945782437681361723891063363764493025568928061677194306122216447115215927726126259896475346854519821169213351036636356664478467961939504888644557616722632368577294524958471233829806004913837279996768260648769078643899786361323608249725287608840351858545335730871760298553053538638810269779920105930034819424458219176201925244166254634238586579853454823566047994873387831590244529194687830022276669420415344096064593212848397760071007582937020098125541396259004007835775835792336759824590443419655053774857980488306344000293275233915272875980607556627371878776559961774258239962816967361035219498330752833981705169731162890150324284552436447398803893894990653783073424806591646763199530579933165294603375505626252342203771115968997373417673865879002966996534509716491135266353943676250401367688547924350410565921889533452218576309748353854750002026920860758607293463288966517524776765155319408484141959423981371295105402759315975330603283891918267669034196468768078701747596847860872992440493519179968175915259783496344881360898630567417479185650846246487384836790202211766575816473443109012732427697139249121342414670802442678704734966253668495301578697916407701749168371184059993807919416718878373166705085751209753835163276163983515160437416747954988448390961967320370562917689721398188992516397111515886711352367116350091391487939751617090690874960735162690116592403726978276471026139010241533937071240918244021890462033070057614970471657783800953388154784136495906412615170585168490735915699004439468747566342145997111104174570155320887229385081438242378064501082267175711910345378204104339549324801663917993605166653852603051810334163144831655200112250672545077736656689783636730640971964235856261036027695264446292188506144539983684369113183087902174600464886515176661376910643448865441447783610709466068147664927313869148636943846823870075333792181657007175908853198775892440139834451063416942313065127359842289384409995447096919720949156214717916910833535219228541832694311436303375294550915564696152361161831517523723154611267638208072120454213343734913404406790928823147391595450403704486494331035663897742462679481296376142691655980646544125885660307543641947878544747429414960652479192229356406745153869000123845564657383129923026246637542043065664100487758416876932988114970037581587927440024507215601720267805670781032427682353231743433186399218590465715505848658086836105800615496371350923883303200664808761171100807044781890342795908217737020578446864438396040110860254843596066153865043974338034275553404510240735392077859440204950387389370527951692778312833186691638932391369761020664131205536310901303691152211434285839992565369880132776646263949031272457241791515505101175495973770859424392234996225100779718342359514511274342959908734568224347594121797628639651668432123915776918311394901111404806333044682345141346086883224579258369918990117579907076767452341237168234947226458019328840825113657196879514418460910224706451403142621259889312336643591894646732923587218455471655107533392119810942370662194599856606875793476531827013900416933485694057542801402326828455228764039240776333686782957424763841255795970360896491349243179026216181057211509996982587882917043686726087802689688935728275216861701754280846101704794937644420146147339080416097646313190518565218570947012166932587376201710629296990658642980333118353074209144220370853575503493380218415592985021064685053780970663312326202139264057546266572379494710676298660148447459134717046920821728253944159790894133190591203176376597859772294450385511628549564765345253501500206076134922746274772928126714259337131985570744072616883168423936598394281514934178280276749990842212288606726903962411217266629017568472658870344356620559734371357816291173217781472657196422114332431723899781653157002968285914409444405671504067483593914153585036542752519615568570131241336540148705515344041239538996946460069492404929116949714700959586575498923443039110437811028115896891380151742394804235548162192239820126712021556984167068379656938835276808876900956179773811662383912640832260523556184514589453388280416314133218189044960454429878866662514513419638749624373649356693121931105415664531349996659586326711986601809968072277285730662845974585892742135322925833691824406052311965706956286344822863747255076850075140943194871144101521286972008210831342916034911540440958054522492613964545998394880824862021868100678475084077665127367402678475183333131036836166722900454222223426363660048552816078988846580801947718136725358348120571969410055786198112648652020792287785386860028134846413369372007019234164165476173349696869177449126467444850567393716142417517997090214876692011105030337106727586465213300542262073050252998603764857132538779677666319644554936252057876786550203885282192213543689935297836912654070876274191329632139681944974798901768249432638786412650520090507050189119392523597061679865612861930391833039312205923896742587360592674434484502272929377850907489130050948597537862867267760263164991889060294369076186850910919486384001372647361418958046953954653631391536250739898943483948607331731156668257880448292295111810781938375085921395180774618958851302569484287618212280707278821343635919751700551192295339337472133151884709513979311940308270598302361159757827361197228704172590188334740367544611101016687894240228202241944108370136996730615882676272544990979600335261841922866205549345863726562850812326392103402019725274316894749862435266450610091492266520584645016748035899871786639114756738374086524262268943518505561302548541847335302202825762262658387517703613226800358028518634743156752661285830744785180780266695814632632896539440284204145539754060447665721931841846914212047671688767858864364001327288383842098629377716351518586533209670032137571936188382435517471630011000078929516754034914011089273947235956003479414774002891801709173726169465649484206909643023394156512069643613780240361349398755266842332658273360277603255016956240720504285248746364959288196645830532961753060326144350206716191721643969515509539934964398713849522105161407939291194642321586425143342169109120135084753874836338127940669648821885596668946223129252210105813505229543580050972121608555607372999044621194245305007909511311209182816636508718021277127877991691433301759305192832186196287864094762111258038384001773658627879975740325603200010048004174280786818579289498941575757001965193446252939298817473408364980599262949649025460184842587271966524909722597395642354738851881503067338911070771292445494371310726570663316814295312818547807517799443333404318063974138098718831596505488116595758343944734653799700059569139872660110398344335035996483301393335284237297654250442003069254484174730672833700451878887330841671198762589969580139561789737393748616206719788599129399591871089326506335190661489731946848424765971041038593956085253951999963124892101735274162252176002244911298777653036671912314939561044450505365243626005415390645103308831888918961000997308251709788570546786318187026293759269377791970247374660864780294990392402957397679131798139791462797947758890277967040019271752908833982909620071326762002068777462679917053602442631983789748877272134585955287052974248860732822292120054811646490130177461757337195378068873202833476512064323849158172581338423863361665944104695482604729780743837138754748056148316777804144600357510881763050129171989508812957807179652395388777955197823962966285779464424353404392326828006642750330116525131415741515374897839476354184910324359293275389671061433818669770162154197165223445620545341265213667571284275186702864269112126943078774335223627166778852269570693727611626908841539474932665114607675221508095978783424106054845808287920780561455657184292099329169602497796954721741448658225936391160387914484623283586544352496876815361435848725817220498924366052443377339090541726356248918695855088603478991691650640555843971423302352778467952163646175616338220216207586075395112711911599482921864060740323308500072822462813782036652932512656597856671185293809282805871507204374783090126763825368996960600439247079918133555639581412127374341913037047572746717704716907693634400222434861270028683706438556876878929290372753684003701409463116377642971978762420516217262019100330311903711547271304107382790646643263969706370983453196876120725011341718412003273521101180293856700171134899841331912812404100019858692086896570612437144078699316388174811243507662351731376988619718016809195522374291990370240540824216569312861182721597057250184704169578956535759993786482187516541685907559980013400861082229317989634873021758226548516912455497274912686154294903963727932986371837041979894752140577618258308369253745597347786751970509036400905198153005028890700687700471724653518595559609416402800393354130663595574427930704124483321746944031143629820668722625426290341936841189654560274199131562387676883630957508679465942856418936857455132088632482317943032848323260820941465142245985779121874761973140336124704200758513892808943134451422807818168914752302560396576790710644175474045147856106892118374891931117356180728899980299466539072437864770854461977475926936145106730739409900320197504555078707567168685141116329801462159386654759634850381125261223432561369021361509973681669180118253559425469599333738573755897331915903209416342241560864994917858301814984628302547557406108499234913194717646883582953889011907193788018823926428349062479793992397285477609082280951908865248559129015545252126388107382105904640117088191961963645453767583772815550951044610778557871385905657046983536487269591528068018444981896572068530218007222661519464813908943015226227181720585270501932760155137916503244864229776157927849455784926153931617557167264949170152934168849688089205470368337193040181550567509991074009956490353226249127837069848541350832184808445533693900191167533353303243535960793654391235643149887553694520865219493285056874865753779592052001886720460139097223394167013169074315470629130177927475359122960716922774218883115501287127564896937984359116569794760623560800995273947711224685053447738236772021588037773943411716837633410215874203323301211127071461586464164363699926136062359089533313062989599733714031411052453349060779734725019024556506797553552564097537829025921017861525252103147498889775127835215398105549055325392039900273833544002677038383703140110552453423547483722999623147629353066569645370702394777384234915127710807588533778448603325607884034531761658355087655302926965198658232206092097627302296448954021286859147125721665668886301662264992443847103743201072505867627471737366286046224041730817055088839121243943932292865170968572465139826735584801023569431321780525801526797666300886878719082772669682372060453466279646392938892714115941191576145343757360066868299387464719246218826859118826716289100126876972304604637267536358226240321729321789684234821665914501433967440037819890296418340017146401416610271491930790856107197878750872923170038077521108769621624080929996551361535558558042224364486501338502696497956177778106068509181374336199160556701223756737904332694678465897323443572650991028106983455157068978457173571864660062008962452332766036317482230850886151037517648649359003875629869098584288045270274191493602160819905342030316420325371060987086979278121090321063500880362517704000339279470104171868612630525314862566619001694808714603601038767197859052546585556397779786583364030704707725921756262260865839497624242680741784298041392150564641127712878964215624098829693717407238982469452360772963881778702071543880783778220415269055293836371386256985940049440707463064433555563776718124166386828390003978714065005051153215836777392913741834519787471857953392522500008975504795923995990974260739706648290430755313640527659362218543691614838701683259844799269937851774978061044840982854935762381237182601317887605736708634827806672912415989892097168337430928703459813069108968628282915860550873488110882960160155125356418179881482610014184594147949915574137371245622866573104507486954281291134475386182889591319137995347586910808405482122447241970917567539550899631126310875134064196031497808876948541684419900150804241381750628393920977533071272201890004522796487927656340124687155352327106437063140917680697244176096693018565879423100952658284308078490056695458590252606134738346853660078162895244472026715249431938668495598805923359970905701018934652055000050097881683475253639849234967304822380129272731470228465853850142082077592955941632658336723349317232121828597549413829414937990300280707454935599897328474119393008927502491437729199714436496245284976009660749430642977831894671549181246126603790735608730653379161564048338341232696181517728814921281541030538629399870959622800405209843773603715052051596256732269397677789354530472296200998340684896739665744014396785154789468810861534370874180993462721812600953390632546178178866433577757417629277498738057260456470306055756131920510000200886430020539316664090128359816598299964013372675703792061740852728633048337358298407440222690444046644739538786402544459503072693781604884278872653929461403319413717648554966408955044365669241661203625094809019755122893084179962502151727457952998614694279781607152689121675344086394263274505447256097599306848522769438266906506758789079352032031732084729490395418188070674413944193859296088710253690874886061067154068410895470272438562491990940734203293447303375563606292994403378322195759946506554014046871969768025545568253266850519996586920868913086463249528709419878683762026962778619717658905750989533293113306099036912695569143581538902484592561109717880533272772326790383743929999253794278846153910756599785073709998067724653249490458612205677439246333721507041520742185662389082475957890767095587064872396052330780490839123348136949495893199605615127913122592534332052299229743530929530891271276475595696272636885176806824060398628277133719139460859267610361789134592655113088468136925728048111546363127385379776495330972139381805618183210087248513805445454673651278669208186883356602326736855806884054359715938557903323428108958256233940916130089938940157989812516516195322197486111822484405211381764263081656386022339001923398913089733563294837245840620630239081522753638060574927951882692403045966034501602961027246760940652670720233867534806958787743502058363417081690235502422881093005836196660483241499760774422535588209918801749912206789138812839831337881762315608299033323724132410519144401786182671246344917572161980832991374458464515041532208356983064628014167957636508279582351361681293159459346820667583955779892551514406256594052106250751455823305650645890721203100218077890364809449122267600315573994174573895408190684354277480523465153756228733974398442576648181303114356240094376283082316057430052599092519522866311776345036958276086366592640242518421820300841311228119342440970888948406181056988458345801997382664640229579072863605331837192139178615081915839250477868889297388382163564998644303451936566789427138687334729310983519533039275627045905667601892029471137963989649438307369738691689168163143970467900157370046552031060720029986788513307767077212942155170533797664668370522887675608291767147061332006982513572129807610456018105226904846480894785104996441285523215626807700446510318072034480225880726098929876076698960613712129158844747546070110142223486905082504467269617346370941393579252902003871837577311897310488619471144541046485580330587357386053763251308732057866673523074211545157085776770813088747524265343106821899981329996714036607847426840862499700494577791857975458200670182847153513634897611782969599307623419960925566072845326454842636993197751947969064718959332821862902555742308379088612530840758481644899349621817646345091827246766094751600397296203329293406443885810945526727575746180578594761330117958157142441403199354306477900242638603579675758189933589022270766754957248077690122915997311933432548830910147552992353229762496839386181691494166392039394830042551530415655836486046726877184210131622954696664734509689438541929711287125495544193417935928834254515506626602941891360051407386502702146486290933830647355583518707040450813195017634802708883371695955460529646881192783600631671762267305129537089794782870962045220952367393462430643870193960035727013353468908460244716184439079946814351466996213633151975526283355654162686238129216035565588906257490603954104046361004281265550174050499572499972364238861465402718642560615610772760788675424523453743583663828864620021182405262235408758349970945620457008008221028205815553109201527753594914821443991825676139667569461437332878709702278409324390867575817355482304203301307184105801139246429249445711031877319140692485048965377145831596901659302265238599141670387652539647420471420497643616368168153803554753404966375684728061453806982497551131665132656361936126484967562788528566408518677043752617265597021062845796656078926476642516723911488564734396995858131468286836193435014178675028168513454889491041169898828220204036132977462149650600578057485231798275244887782361668317576040126042394047830088645527636222949388072877719777773757532455992847717905832995129133776057824506952323762837681770913621964310023951690220261158960048781660565618230512992343506491865115638328606350557665320162753644650493613586594798279850331305673548470722727787649740465971282786990308116645427439100916407691598977536922815133077260557676365509293433288630220079655702387902964688663425962996179224138493912513321269124523508561488926652656343017643038648276699874239524189700393266639860479643193906162391989599803675147406314556485317090881831659922863025625615175553905638430773036325197269420224088937160935851641104218992570526585376412211794295975301898633158376187798233605655304817071392981260534200555206712111694172832496468271802235777339779735322871196871546668436079580891303287257756030663793741894178118419166440047828304170425270762919822935579633089904090434908993224213209119614458136344636913336538250147643198470818531494434455482196106149583244685864956698221656033566496953586835560858646089341999875546605515521862799482826597669624444797860763423621346080865365437635238873819308647067220455675333327354735328689167326084399807391899552783885546655327902532872180868377543317507340941170050479716832074065575016307426202340328527825768670444468751899537928892278115574935257684621306820469536706402760203269843333304329446500438779962745567312049136350245209734155095195259446815412990671319376639944323134049769329404615773871602488710573631968967367505297334530352750659259508769927109156899259000411289397152278258551967959227498821740335398280662768703603935032098343207204424493630826312640162902577196840371489674286518177608455405645893385831901601058752324714599632758169302784760205451940289652689022155546206690509098727097010493131991514258024855809187258975357753449187903884482130959399390451585505374953846719279869088365276847241962142136069600424732241519352743612154761767992966379407286903724474372372452047165498371310700647088706917196583530226861433261517110440870875441572967279771311241288910713055081023141289029271711881214414429846632972213912610431256014044774688622519134123412277399134029530454823528946178957152129987342105450813509339430493366886312706185997315745125919424334342708507092234777172237118215348685318714412506045719436156681233972688292958643972926501451660087825456786125876764841855983894361046092195101127477139863217811163085201078915718867161945366212813246052049036539066148546081967516564844271121823968854101473463554880568464213771586938333831641267183471228168507178050818581205877830080842037237163656198787382524512992493645782314117158601653148554541849366574313201522207438497192484179100653767912710712255624336189427861824147492821285264558814290157674821019585668093976222570804984354544480451692307723916762771865867036937903858819677617477271537935425084970561188803602843396839170643870045434730329322171320965412032781114413961105492146940831256454026592388789514155716640571166005587871556772790475974583963780112540427842017273435593258909668828603441285094641090531994836042946886238635674470283046742377342936719422031847584490036439423536322544929592069012759286165425033949565523317265210244910356696122009801595492041578190847131010150152594686641532278383605798055197439038697525705524270488516804418979090449563023888487935302047998939183472096604559360683259787108328158773907001295316246307904439371470340215522639016907794222980863153769102441426228180338803825708789199399111281111738731776598920411468590737776981262022750371537900958501523308278126089046731215628054199392130715224324062489931473712885851921262439872427387694837516269385908674344828466723703561348880077506520441923680431180088991703203556307768823659188863196905366310625687986560026675101246043823735453413103792753931826589797124399664606588302969201750920754497445046276571735136671166545337247978001129986272708711000476304968826039988353281581773498731098852760906667095242677927032490360945658380697430473462040603399106491034037331877736134491945416611584009590134350502944571241136520642725012755540602113850819045473195507191010661958251455719339182644838842461616877355560978743993162935526222620632620811031865316993319355040401183829739316202557173473463833550157298193086725728072294198499844064372311934534227535988074105075412094178517667022631784071864491979873119529778838515959179050552693555683140443589107541300877998502215977346936111123842643644640968257118377085706465276726673756615321123683361391385970988559807424684107157082742628605798946306338197788350566724615549245445183590443856421735236631430057950123258090705853781593665389499817441352247331861082927756375874211707536758873598916132124043600105004398690827143166327641286012741760858917760158465050355580683718393832542657835918217368046161948409092023655320211680512154456143230016464609773355005482444637690476416499707280329141689436225869404628442898168461970972372482621933950133755210913403096201416873007253716503278186235034306135031067771819640882722945428313357126872891224101833807322182231335588921830501982012552013533125738224495496040216762566362888283437741379844022953373592671705648430291646700727491268076704752302998717144310634292059812066754739677212505380322673926296445825870473803353234975324536255894576796411997469762991183740711820916934611901245158669910102639769509570567946038734390503912982681220425500897016787676805261192984354418136510318893594986819954874809378445235264339242720826384346771092952753524222964435749841339217186446924196289320783158329254074670878455413195245956600747807534105256825150884570181543215811248605817264738728447249664770188183344069172860987013656695510711803207383892261777585917312357353125213594118059980246500094354609911560893404720247384808101186554915275614946125491688968411744030864114260728971294847762994296671665449692834710554239996642364466911815523945524374122876790843972271269996270789751878940403623227951889367114043251037636686872768320279402918552960808756649306817289380448859134894817461208978737350195638530831356638324857284662980500292858908370412519619228829441688578238051312519627605715322932607413661256095455427189401111957020817758168617001621317263371793474049916465986090889292575494273488793195375259238044616617141630383636166123795334463632389061730714226679586067283942763877244788615157567447895926899524330041202149341333375437758793471905157812105829221362235782006503816131615154620383735876020216811465346143648684010786207646971756149889526980227436798935058532224329954360884593747021126063713581124462900160901721335303896348446025255165603502967747701015203059196270349257440823404163186854509838372849565929399648955084558824102506958546363884360225525728648240006422365145782098952896310933683860558723605458140386343546591735284271924098483099579767899837493472540457710115795465393998081193383288229824324579880383094853235241696827045619428547313180131578483975310673761866015408314334463429922090242859260506639080142311675166789644609602934121887976132229332982890485146241307037452370370927337817869058440450485072344879899615676895254747566278790728246576526675999063373574969242937929162276556849362781189356349399889186219367535110183559641799129236909944466583913522907780722581113055357187657714340182398445696944308234038252245084642951484867780672078234010564066588964460431716610552295374949266280075315010538364699880509552651856040331751252903618527389441732837729057050675840027828029315738283424648001725021245880987534995365459798554548280355373068975468937233384901103786692876215349924837423740911943899660482941812018302832142822795914590746279194667630969882711174313648787814941831290469563297716981357142703871787160405972182933157412599693206127779970472228531776719017732003649033091340415965226101916861145690744775120083922353532000443950454173551491466040039187309990711044076231501635161952896426659826092783315109425732268217948591051681693922333025795480897457943804749695585293984120944245725945488203501419524356301945356408201972466715166142090799821997358307252503401679277198256921585298437972753627589894465071324831594163997965768499147864885245680116066364595002607014886848790203756591537513736170838495305821039585095517041396878380850716189605768732346356264428952670308045227702934017257043321293685181876680715312156208661181806071720683754707130985937800481954167375789122510518598269435316134482125739237152392215439217529162653702499533954661578805109243261913959508927165458383548928800685532044578946939428110205366148038875491466550938181403455084307384867735649738147960749924935740047754484975053920096089596084514327043728738916759822600331142586690782043373160846786482850794017265271527884807439022323128422543766998669352234786572827540283629807132295246998831539967467123364279149034394065096922066998801279510129560286257357721641638363649818688266838121982707348681991561219252182064244785841031936679854898270058998418644628265568190642737671759021712596056142658970688011965939765621991004974992437612473090380640698400252818780139222540301545864315926002672628289737889103593707203651647072523642394626298864196464245268746902482347591716908843025125069924786149017292666823589618618336518395019735981038138322533079958465663391575214238832095783290945371739589241150624986960784714364267056212395631397231333792042756287801640786394314957918027471738085765408758729391262408083694570771988582904516033378467637412616807620480191021330043593037853011957384654240623798681467991769650999274628820856859231906545562396288405151486919564759249339591559081247124988500432546293173602850302686018464295581608946836897149275620470782172678598941380378528522341357740118342456035811431820136891778628594380849960498393676768264731675370062608399282183590799453988756617124813268063785294038329934450632549461590063781790530896096872487441156050018518747799616212548759540501067923831140993096152414165697334898930518039937959571878226671106812926202028961119459683561112793648090685508402950300532263930160169593154507872159425044150003413925430698093781002107731469218486669122662694490775323261206078606534192039101539812266818987043442723991051667179212550743043525792577965637271151729793663103983951823619856104683248593305808585409885135113296431967601253362274411138931702393483551083474221344508221893886833283655914119503937555122906126050197036559553501513689085996560637293284251674671819999236242735085172941250514306868854721555641852572309328927256222386119099708464642672631384963699056272655789567305289664532496337989682486251385846828468059388382124379531131144771100241259359688602739330400572353295789937014289169458151197183490110547021876124905170873221186056104109878864675644236702995416463134130049897272562286575635728196894495076488604183318100064938961062352162893071210396027399450095705627991904404092971881967173958058933655231426897557110393295996434950019985405216538058242689087288163630630236930239860883637797560907820195867898267601222753090452462052909278932457340541008901733370438720492120115707496860535715687934301883537113695490113905121039807318843094506684785579576520867100245733837970337806622363432654365748269783934648097946947349570044878356691865483549662698368230053060486445569620114834138066094127568979546199464663449326432472046881771098122283484526212417879213349068076473607910480004611974005764549145567132395083755067239051438737258268182506099485080970031500122424372111776370697752754397473033660527880817919795455875270126336469782791187707849583995934362736227182039801552167890934612332959857270445012475025654699697302308210106669780877210989328795531985076300259165199271508730595250687741351757469688854500039112941328432786582332768957573667552506394722884802833081007571744562504885030453681342882595836925208218347360319716498745697684278747573183556236203378855140129733802893108459361718494172484163865515128707742448377464221770606135858394889506250570844316362563271220088216981105613406762526819201900648862664169162219043211654771963576647167686387161522295434649921634883425742686080505564037525382905408303371289969660566454066702430709455082739655908425593131397356728594002613510466002642937885699936888604077602494941600405900460625376885894362175123115814467338756992665406808487371369133017206521745389126568744805299104086679296771004563931800198649304304207665547864545134772161761636127485062184365762334649723211469238965370397100526102383506045057378437748663391302233101086886174287840628301555024648520932050733768898770957689638734705120912384291464164748974189334437050444921616920447483926379502680508795689658532633029677581004150998312418220370330178448803409708512622985723449181625397001487852212324223837579255040001161390374683907826273057802719342195511177848002412147602603177299537244514984972795394506306388864930661278900459901765381207628193126420012518689574839202283441599879915090997139308100831636899067474366983615769245314108026585157923291013770212851074075684130447438048176796714991849999631589473646861120900351604837047716937358050149560672081353837495025133746019614799324697448589596573284303524916377205387303203256315254237878887760866828124726497195399732517947473690962208054910998119223378547225626394473961315379789622470046785099240639221305017898686172876444922670371043096121012515675812304477859958054465898483999942407478415434956744821763189179669021207956730610740895144846071661800928829541700939621133254672111313244769274287686686073778229211110297038517086935082948814887825432752113357482793958548580501838505045860567544421187572938417318747406898551941486832658899736043213932110120174725602781578700320695444806323338989254940678941406831057076609756909592326730366472946248453278979615115846808887824590604696148206406066692132953568745145300753108623994785077951983794406085392456664989151313419378063159301042571407520701481656223569201420312194063102189917378424273970058309938928886022331210973756633619677603181218504907438982796494024744750906396860197034565368792544685726629351882596492029034316063030837020804598700754160947954904434802881625530551194433061644543774235131701135750518104340918265576001047823744240932378854075985025697127908915897226045414235150525795390902626349706639764526527231926331230155743786917790809618714670031479396904168412226568164783339696658368875925437877688576969640149774682932372992739494971139500363175674910779924037779523948279457641204016450407759560381701933659863916769496912186082559050518366162203613537695690006923119518017616868203415194126481897746784402239593655317641581191617066126804149965173224465081707468801386709058407330982507708222020644211925438887994203362967852880155398799593142159922656753627643325625816322072307266116897121557146796766691817942608455532596870575228371465968985514141863669846889567852461231124246494039386970502790491773422379690257224355431483556380540475360565280027577235772093116557418639607771021528831451334844197176739914839223102285602835090776735231886245008188045456258697359092699522615804095119349678060074242657519396616433180493278098774481887184714295474984203498541714935901400687080298298553049765085372068963005674167561253967139774428906791528404024269306235559049862763485441316042332274430635320876852647616101838125628657644035317349950384046049468342335350733040100703537472227801598036851846520564330270355168800966467972995994999144499235082710171638796639377899160047926726054533214580695405273120745547595250522806924481884499524635960538900265858880024057694964660310086256556336918950721890414650580460916822854771766081081693144543905884748128926428386323046503110413762268875012189279384225276856915453059920373841805193549351283858990945904244447352411262194135699993465475056632404832936174467871972771704614869734721923586489306819042547987098532557918116929405641817206259445417563284496129546538426324552800253231848044934392326990303398543090664271169892503526063571526920180875021234297383752807686219539109679097923922017852882540680161249746799821873825069207880097671192095269148811025337547472609241821427096540720186631793403804791238200449288815029014155766513612073228089725419627551266537577407519786343723924671435515842062435566474730058476299026732991110710470856259968726177722529627237877668088563167137822529702581411614763241856481724781855431350884337610251809791671385865514762203849885675189352083821537954509866659172743066214119105542764608578480692058527484535108684800560897423020589261174661197156726333959088230454099907363961801269978045571293909886103620971919540644124879894943265332827964764286121199536433387267832250035677110719774262219276916744764485405928246038006339840136345775948543716941138247954889008836302194785496486914619405435994441113125533773344860721293500477395029394395370636876214310663908263405919692137553492510216928224921638554836886078873869282344789416902636643843637987491653885358885497358977259942638859805536366520933016846348215516414726711443692397237221246467152901236598532958429244353757975833146160940451892987152593987127934674772146993323260132962430654989814933939455095856082052703121807464460540187106535049421361989429303657115658182608289386199444599938798992578999296351615934532837367515043482772850381669414948842942107714664023087926861729565106073656674286766045591928547908576317354927566209099699760845913221562110025219346531457039165090848528419031138185241433423186269306926303273003146363775859160021272430292254403004026102717913200623998005136339272624424444004059509691185540302064272597886426707160503948395944991858001080546720876142732040534391023513664091389655442537851704372761728312937782347016182052794284171091997600666764786612188760508766614154223328246000431081878246621090206020040253584319773930788521495169696729345358107097882585265285205468403923264918890083643642118180027226265858531101859352649682213172937708241605120308888545536342473801382966446358485282213881871304418349248323097940055786375258510991435613198659741372483195890914522361382936454329489292912029513790846828581051884277269578612048892949405938812514559312703415660444854489525736942659379116231283180597847734188969387308548483493685237368805850691939886879875868790497787905744891484815737366156022337546288402563077596210077769056366714255331328257839578251180308903284463560658696201236663248137176365614184717632286715721047535527121416964818037028594649806723842097997338580054806600029863654213229439348783811818473710842122331022623176590155720377214487069076080185088768216177186176146416190623024645211810876686501368619405064340653783017635641848119955205299660413211720400552889663460845859090711848309215628065302555203021433994019955417284271039113535239912939992838114070820824725822801099704837338875413931061732993621081943738248030021382377035947021501723623130795377284849850972228216360575959349358789413576988668517523423173541112091772155247031022835030565472729540878734296532041999250196975252240706807967898684143833977578214136011860539558739623449587686382053766778743450435387019159368469863016019370566763196824461145189805423325172736314162838335047211074089852425621344814781765303835695266218298598684726841875346027357098221654376096385638838537304757205828189450504040988810149160303754223240065996545891678366107445733703265529950125082271409921648531372388565266619473381981912934919882428966695625086724536411525398535339831733933309737242423484561513802708681025415788609152921525286149219192036438000146792523121141936025307308506149877217885790131155765868202035528000925099312237252023649497407166508275273946488100432307240278841196109897506586552278426641462821177336756845025143254174108440002019044830937208737799196409041339465935569732684746253924231751354754936022006019903336590657055484594065419372499305674973378170300383697222335374088802707752460717226167859871774763222223384795489293139769989175179970779035417704677979045278302328542428433460443124333395061858412268073429214767706172996674145728703617760922353955672504757580694492552202549921257574345725311696992940217038869247174562863381489763369206185614011688379024526933450622818696571068829370433222142814162695716949227627358754131771223234517059712931598646835080631069426840352258517264129281536880778048653315197255753658510071932176965003321996877925734221984832862683017398191897204772247529938107731996234676679318825711798428070843938443685751248138703345372460969905164253270046848103140681878701787578324445167968962719328420858690005235709887581739547871230217759633644655478348337514319551760777139687890301409457755770642093834678925875855524688473336092222925088874086577169246860560461296014696691617745743212831410625576764507817107356943829814426203849677090026174188152820389096515739136395777353782087473952660296535837622982976094710384316986762253091415328002537897467810153232799616303761203835868258387359702616001883527907494162959633958029314616802816102153466271259360359384708672639122408436479874703862069170253772389534076498873708690905292658476631713784876629914012428722371684503201802169197468838451604332952675976886147797803529199003575138788828332220210975291929511626754164260256689687659698441852172841870064710147134324718911543940697216781208331903362105385187728696718274650230950724308081550153353946422252669419606505432638223976302872463917503982298423863641487327370572693135824458212907778173087908463552287814682944246615024327478103268186758652475822629532481249610009393619624799397707758414695280590793650672789278537925218643707351060188476388419890791340776694140338506284020290508062466947791551868309834125609999385113896149010726870188302915481428513266455706767102056678288861428880834381006499500680304789541533220802414402202739563295969256020420221894155825749700922710270768256490868875301810817267252541828755001481969656932959200569803535730926574599240663549803057076751546712121195749675980525947045174539101769421633400313261490848454102941090133105410407432485418936695748895140621000174411413407363810602516088854652930462996130984616774172692221291130900820823617768530526262896348539546851028645503933924720860431154393328410799236494408482019952954012640611081984691572967266923006227210510360047469807153665109451208570582521525495314737782469432153448983215350098974730068935186437108446106432263801030468108611700890908879605041945910516984090224260971033073926199122490852943571676904201747697387737371018691247762396272046695481552805918274659270344553001967256724832134862774590310144989363511593191212891476051837428014427677059664558826044730718176391495242453083680824239591321163109301750682512520568076628680451101389432940449777509864540176126851025968383666386735228066992285250857413892673553276809525537084058267061798168227301240121862748325704652622116436831944199061384935872964220870178742999452467741974879887017702485974951011268213365901271725698074960508656177269085297842800766671380525842716724846501075777642282097089174683495550422452989218518887097645951656179692625007929684776404197349267151431756369214355472919405079436961478735544056324729616781231303513365397036129855138786376650377049507871953961320537926339844629742024040827232801060673429066651749588205966884204395145528577446199972591226192991899196299303108205174849917309060588462003546933867582166060560584177188018248005495097225090817801666041085396426397941127659285555772983728092709728362535554909118148821125143428475326926834682118385617819277325787525334158407624266287529368947426895068060910023591370770127446022080887643312071330440915627668953257879585121976391257363249109218688638711198788766761093783875236835801668901571732281404924840558879987498357031352444242778774107493242285695154730923676270170425216045589133196550042753469114201917972536365895124368154193511130450989665412000876583390157564837860707351200167311130707716430808896332174621031507730219450974171721509630817601559166561647830210684832552646188536872158366834368319109510990230267514498297874675254234437976652524188381033481298972708167095836581550752909262982306289750325846758513886366341791573094966537081168402296674784388923147705904261683268090003415136065152287316169295728646216085805739248451673083605660323909116752412314166890885468024454298348734378790192512581953123148177731041416962098042801505420322501996696327140685150999687645649922721712950340578810207920448971152869742849743891637557588082554897719411525620766186785233193575071654252975340986225271967476207405013711842817103656462839526512370089214850944400438730328293011087946518278379511615562045996724037138168021678313371804246066699628548819769505288949375020359366796531167630391405492942668668906570892728744290946101006468761679643308390504648097594715316372047409692838112424990823535900632619486700687015777554405536110512621495265263209031769071429657395802376745006957556224157086980406594790031380078746233309820055992531475019748757152552348658275583885312163949963703593280595631040555176462936300782622754168307828009737567484998539629425166458023356289331497444853729285982456947141051416208430318386698095516130396183559480323804430356085351914646150614221057021047938691586383257407341264550615936273195915842545402351017937099792051837520460838095950799457407662342935843827894020363129941465572741339721297798132470956219291480918473895092376931948139385359487869467239261099622854230748838775438118785080671825339883855547852582151757745807240696833205765986938153412612143713356845837151128083645751583740415181696701022898229588409878822180350719631072415476080628399448193512631474234216373946646130612045921231784005814386817670462845907382196711606529147214331270695477997217036536124459086140485246290725756663996871490608062137938391221212130593603026374519344999642022444380893669589691115911253096543735074083296178313473277935629441701052331414780617668229172056768734013954915952566661806618911137387646232275874096907157934749979643675486946096434287895710994244745883351665373134678417869987824051756935466192727051015404159300164882292436071061502988021926556314629791294698337825330497906946031754500568929748352642805074599818005328125931048128285951765165137342993372143772471680937116801698126098620358438475795152376885112905653116988663129304294980641483608186169383209425232754696580834973323285738054804188399136452814266055719687666488535942537942720024250800143397393651768038740022970446589009027003766676269041244307194020040178140513307810084799911070333510492223369835122450763806070258948633821558088228344540922025636583283343585118879622695387759736188506139799733394080570923265196585073572331337595555034283778567268642456112710239028423826966739025350158211452664983962748062217047492901240484841058572812324085270279052126052746848328740146031622516317467044468944619262079525760980181828299939999908708124028464499871228407753738723377442055921141170888037519607645693831254996761833794807118187089191264211951034462159638840920807217070793696807597474284879572281064117620396222175656158675617382988593624381943412651297989458823705866894320027532379392944819440180827366779424384074938501700021257176130812874461076117291287074572090631834337382961151774603379635854993018057457998660130129092087535317242635509184355989573331029323196776699891136265201890584763057358365267077401880890763186458331606564818694823807198092931776867849232545128868347616534915465277996600780359077227329652351075594404915141495245519496934171613431127548776636534187431419356612170436110521039603364271376814841851298107118776502527905448439349133500289763378565076197410597516675903015347138883696832065106303450761350302097045495906079473831641441790759050582505392064431072068822346719784505864515923364846513092366576334770243625783518454110595399899486716320905471903257370790934229567829411731659272066440633864357642225091625110959166110358120829375420532797821180828006210435780075086891218738831263831300152856371385229243171791258029938013082591342265592911075549313807129958054933026149130915180874852319155553033350810802512259367006422093886518599559373556093033920567367632304861524034955998297413923484521846111546756499157799229194794920011581411594322960528872494153321832943788372151057133731178360661020633874906969381570167800189366452495719767300208297511503657909309341276769029971237175012427434152219898834298275444535102286786726251937547975121230757320280828329751769967983540021946404401300138775338497327378232268562614300245362325082794059556129954530983591221514420545415772751520963715440887021993604515450641057789324802975599665117090975048856612824568829103247631941781166559787426451665837210700196549629829316214142552792386184061351076197200952590407591040964521322767020359576141502431959854550000423285819397873949042269413095428547887667741851049684260922126071848747351820194633022990115828173907114372275215691744701022176287917534059469864377001631353790268352968126774560673870523638140679981755084368345548334926308498624071725035529811533752863582572855681173875216188078493657568934550229891701713768976013333038160708035790211744561763234508893559355686059369352577765179906581647089276358373667961299355399849380562264573221288364756969409376098703161913691599993177719402159114655731553845566463350338562219636219491613114465678344882560604372574247250636640978741187747856036280850381958416514461129552744095724405522973991901957926683231245034859149997175364740966056578994740325006593328400168003764450082518167227495201595288455000881410988473593341545759366120688212810291013083036533423901286765718864115927086968429937594857541948837017547814120851688615449389648290672069520734361512988726575413951798729014836796138869280301493478898331548414998054096023154127545459754170623128172782451426998850380557156102781330655170356494382709391219137227459611456239748247903305131291479578578256814947019215991287649688597438036923850445771198239176526693452321780486652261718538269286765772889722831142298059718069101876183802348976619021192586316141422177863143592971457071790705128165127517933612528267541658322294334414575240568439065764369410818250942192259906201725506127579418570124564575756613282924388312610886139431920094872144523278343457183458485542943948591678295593222998612882651269189502870880687705884277870664447193721149341984407772282334659880970413434363955654452784862095313714785235440647554385868054572599170809935406593667281461109333829070632868904129181552385990812299227608355109806722996651924976090595888888315867259802799307478068077285112196824446824877957847193004421928439230747764569320075280014845291551699908084385277628399918784610678676446559917711025841779707473436193104691015728532610101203394419646393924617865041164089705073800376630661799470696990150343497368946347962108429866894737165027842152376916473248869776331700846706101851697812063787799594038588363330003476789147220179025450977121324015251953394922256995652792676895747664379639979733958911251158315298298463041227787698249610214505733402283574300467258870935370433008731704547532801070245255505406038070143022881218744876673566341692452441069196885345386050035378712278992678621320663683659339796436899772915597665501253708393612824450828695235215622408205332282646039298279592293766733272240670738821797294851326781701532384979822101917177675805779950287520314912808677676991145090852822318912022007283056013362729636972265316516391139451349333744301589191175413351514038925255531321345945435510084212593860213005612466986061521740836085750582591107340796480076889119754101433019234917107574811438852128963658451808285256854248274804915720214066194424332928394033861744093845232691219768702906418779142001900454104124865474631687639478987475874166364368282073661582888767613125832881379485528777167985254317480982311678373479505461618964583417463260799013903004203410934511227368641836889278701832938994740835307211006440099285190000485975275961057040678477061586291754015207687494641317808151525898604880899670839092244393991391392607569532572354389988176813703017636665457584863327942078726470037024997428328877450764155857741585731300350596504533026394741292637524213977323818203875092263886851741711804937185288761690821348871086357655216661157075936860539053390999913973974321678590411994753595082537943481745299141620270469476613605299656283986301941844565843109030806565469590080661545621600951391389657533236189697356863595997743107137152532444389738323995237084080826194222734067748443728001695221633985618219706845436864912312814236763712976728783777267402405153837411635994931771136494244071346996465018739639023727379619512927666220342011039337161668275533960266491860880982787294138855659346457995702979781366092741144954623822948087118807824756528409769219422741199126254864113944713019049645097952805283774433690075590192890622592381115037626073191949361568143182725307059412819530883238404542295964359179670251158166339239578323124737843344197038174177391120194956944031129946156805312238865460101725422306478396385680032716205254028082077756191891637004402107311616233825346571356816025622537875612975075190432235337197651292473408007159892943629521179614059134146738013102354744096386449027208703024001004203952785375359042841776351304539430488954267639969518768081025158952970201074257485458643305594318487982968123323540951698841438369296019807729638306851307381688239003140666613447168883743579717736499794896439779461115433842541340161368627323781308596954105295952928647080564901956868547626938352506190491903979384278151245109513575499311987795328639033028332196862390171738568064870791506554283851016752562251662895327966443649827007094240442588238589192501209611589222480808659809911506905277791768180826525177470525172649555026849179638839683739053633653247019027363347255470691709440467392309486652460049525786630155507004543504085270055942581080818427964759184568297129862713028243862697063432638348527646466905830117133871100667607672031561769243748518740007338553249875127072133955465443636047829078627762610060584596633751573786801883638803543507042594900891465347474947863489500348658595829493331232118540647705317303245409425828105346244748962473471729109862200245704246083029557669828485069703650444019650894493333284270912010459118004425932382258162291818621110562873362242964559811863679231284020124510967215462760261729905262520823897608802825004324569331909481192694889508406832050938667140765670326106825745650445307829207944248876123575737606653487907247908145048735872453131090771918854102806287930449513123222807298252759766292244878995946136150590956901627226693328694138596546485514602650681956445113778599479519168896532971786765202437701225416832625665605687078236040660233109199308782666440307489792543025405280203461198987604309586075632288513681014532015420399090590497819390373115356112590855886164062162702533775942366568109217665235782497516462748053802836328979990852866816773063145516906811168292481444845954931457403570160484312531912424157689882558279914867938305402536975485860710253780864212261897045659787973333242643855099811902657638447528411866444181701387029790427825665568048943785137681568569442815520255237955390100155313403648526626450703075719918067833584946113355212844718799885541036765754993090406255610987684023500946253839480444460024004173111343268541911839482661442431803765430549764411344773409113061088224554919612106868653640158356322721583757867476306609938722624911250658897428624727945931604070160014557469223896971870237416524564066293541301204203042965540086656065697825251023364596649471395594071274374231789996494796256013337300927835241047219592624859027199644166082135054776714023739602907256808589756587305635610315088352960445586163952390723059992472971137741857502894141876605277364568027132048468203134867528534933634419417292390429709625980452446494429428908716684497386162108779090016242057759232820915583728695470821619597169615634575202014176188413832457622882978099728208213682083685759761125324050005242633439471226857680085888308387639117710390124166803748373244308967882153985813724161212370628481276505571529468887021171397832146098176805273983013681249318468722036708454655513223862295875461249733809657780838660130747836965623214443308128286142772044351866357233167644242711699393596701624594319687061644914589352025455437552421486998362773214627888939569443450784649702706352595125521143934792888015776585668340508811974156526308527127733788065730074572253792270285694548029636412728357870178634371464598880926719818692473772518945035885531047916724869025532916835053785165376078846496135602723951816717374048501628699214676686315868878861312595525152247668078182219163064871530083780598039767405659183418808615305063062692033992381049181350957452582221671827550850570177134868055675100728085293070990104371474376230471573107436239724612974565591030777780449308874202725991481762585007959715782817357523980002169825983919174950534962847933308120154438520484273345316408683186228757241551907810289616490386229611917085947406608088384934167585113563710012635996017342431117264558112946029090908884290476853267892998863274698347103168952828479072861478229937490554068155896728928452425498642863177765772272481456887292210147247822400790621953347121521051392669754038997011304834838427128911684459152318550282940031775100085555609791018617529766975632863340389972364591732808342887529401510619516465077688307477529737507331210410800056554853040954094255282078165610216634604324225996360004421512171425102202674883870503836785868757011054136716947556681976720302800735761597269666531430755399442942853165914732002071701930024210634067286091373364807124807977876090603717982143395484640922970569756033837872727733868540246472305828736118401476682329592541528418128581021966520906030646720782002373357686668106309797871083600916381262568642286904414048281738136104474273395365605747987397518247753727159091433997031289198308627275795078180498161100432302359355101546805979878568117625362571128197064208305880533523640607231808508625492825677834690775330836107915605936072786272048134033319225658416118623555668315031947368077356164806626466380908084319873515047777706462152470140030333340083096948457991227383942683259144998683459848403535437900357703526858118206573030746003680120547030919659529533510146729027866129221306611687844279316918130749775528157610338948109865042862054875601318621317721970508448997140547667928841816281976560608120918426825648561989125287512567841307044572016371575214274386515494286236568992533919633211681150721047802553354785860697775596213862872506589896640396912418707706959862776776442973986999100391854582485134033591696370124726496703039130707951121997460857022402815177504385977841661652200762886262552886518605363336104816251008831659634366050873154424555115793347834676627641030286470606790631812980626427921318482948142051592492492134906975650230556752432986219493329875001941985193363923642540335983767395673615875498043822919727627749094444858431617344800487944750109514639264627762677082931113448054034505082990604738953019228821491201456505057380002206061924236946586137816660053550964708016384062753228253178505778269140574283441455920445076625749549789029976522948629438509294653343186922867873219939166847182673991208993914862142488813802088046661010262267814947059169616666296429012087428693421081040987562812078589739164143261333312419950828485074070401564773666252805188198324979543946398848145859276316395522524808513013463280818125595867339693874781397203727906385531061079033096181361452506814337246342570728271624879068570340026104408395580054868500395251737097667800952914630564333724863637215687363367554259880216888987874467415942513924974134947255334603944341604761695978973899938108209459814931524852417761172512711297263285585441550538944131416236150381805108423454529893043966801193085036041561750531843718090178756864393410001140176252990252912876656985785565149954155062781942692963879152018251573295822208348654892401882354098300490428879267293045077701756716686691064111503613602049308412211764504965209074895918928999922197105258176708682044005363317167063292576509199252291538431384179893232419388158990943245079160838467770030900325595756369949181395186057640524153313617848648832581030756996584577923480973566529951466384657943420268607034504249102821507654193013182239375091842950691580832224256918754871434420963978215456684725417625536357013684245101823976701224775818027609666579423067197748303174599152954398532214462173008994781811858284118399254833235944891357796136005875093242393741341289030120692339563789470524254496372026027026322520789623153284915547146471094831872986591387234204561993641063332491550986727433561677898771811037032161487780481080802961580780366233855756015904301789371536745096579145008468051317107833316841849053913178621132267191411960493875550422583800109845721417505090297174110851483930852559340299303250512398871321075968565960832395762355213044689771181756676055300523920570751106237575269908875547849869965706967925412984113237865211603069366091588895710680791124832496284352001422993790144415035014101005367136736400479124846517715727338656950010355372669525603476385176019592680084817754363892037445239848698572380019533812827948469201685339085548647841239589722361868045298145066832419551043671223770300418604747487579855031661513739448504840399801583033821810771550211394923608213973491855373463982878033013209593762998969919602418247427751536121616637730168252641348913730419911809150817068334904299354664911675130669281380280797893706447889295541118710159037715208938191104883807711446844985030789394684137663586518145590109408374825922775074753475003947594395029286750223608407093790096142413058350874192150426960150228549105602725718822200673415405219364461218587442227554048265568709545176139940331132050158906950791950313427672298751736993401165452630698549465169343595624786778876308342538737864536262803914760078417986382744644637927577217031318942063935240253552619365184172322891905271105163782645802330138714711167122735854373204224196059360065823937864787356965434700350578420446786383795847643860875231603733957983810731333714789315153367531462077757702187630945725068936493369559248482623232778670592762668000313802032158044045524497903848432558641485779472095305783338149449982489862224100944684212453141330071264425465850747515110544251722216740961750015121729589982434502027039595680442038358817837818587548613820560159452790637256032029662477748398277933089085025947293632852633177410165980149777900767793666190121454696080781926635260881219111067450974746390862836390204853532162144470173878248763309547405007958797826706305348155144956633767622517633925815392961457369975407250447130724305174423972624417915863566470665916307602151934442638516449149887785614640302121523715622708150244734196455774269963612469950361567203018496962822400194077576320090145074304792928105056481436303238225115307170328115143284536455531631496059705986147035850920258157549020204514747020127693769713955800863768462863805588702258870777345642163178985913226833867157277933048311298578299410705155855609882573395715717717852347433240775497110330729442134181921728164722134606902885477186547691712158045692825415588153429672687759467165747554467791945592243180340500125518221844458679528875091217777318779529576620759478010132348028933178341695192209332712653133924372044823079615311698764530643014396957125312952746170716229766439653786936498412131002498888608073005025439893522574748526710767142382069966278428486648133054102656971607695911847200803640573165790091307617096025373490514834329058241942711416899884864763424041940121322701350957753644517231980593139125280706157413149966530634359799929140363112420548109920701129487027786604242550105241170011060026613556569265862528201119964153126596056134044037664500153539930656858741950767731219419165754456775471271506465476446265162160076700749763544179268820074827940877012594976418013152181631385691500624288882588398197819800857496812488346668627031095125432346833610268557361704215045245340807826395771450908038813408999245588255265025760171672498226358272672643082923091965871669877761708195266133817410283505894445752484539874621933896445393092019691313286414922271660883244101040971242089088852448156524360574737706424576281045628115719988295658447909862666518448623765705383939640713139873020753955993989547509480745691202835673947192251615804986258419589094455963693274969452392422736701902083928783133423703720619547568374820707996414092512271245824461671506092798191280834813659466685442162450944373508853451480630513724231074272100788037481523475685581618514641088328170833824284198673662265765128650012539809267091948674790357320666015497263865630995618913596326706762308387340448434161628650643488149983748758566088775413303131105419265090871396678230069142421857627802430635875660923579715195054227958944086259161030054727499192375933166965568008834602362512207998818041992057155451270773102591598457341798087669609854391460981553283352163931791331379663134649307325268450401052212005539518081640783081368174291066517721858078078382058418852222884601629151246949870016750164111253535246386717943542882104422635185887887339683171042416706029666734475919675415661996116973954557757142535514948101347525240804714914057332131449671619923501182793744794561274865844588636183020985271275006960707844405666924492788882317617167051109450741387550649001200788922129912384990420412697272237525624217166654240929964314932293723751093923429101001168993963622095157865771662017819037366036768776914555393324510115041631991488544078014462597149427774033582293725172439457539584394110387104949635221226905681948348514498535408019684581463526735227938572048967084797049223499640408180736380379854919165081098462342386090017308975410583768248764620729151234124794474919671108148443941047041384505120796532886226575068897994216798516265564853438492544541542318005975921220938340947036267232404866595957943635343875885773740565374404277291943597432432980998176683328897826437520520329427450239678419564035438379221706063777643699200327775331269211152348741149660665218962734004506139583342033689643206595441418141218157374111029226064022124528635814830091004666246818359764033910650016221713656629982136026933101341945897150159554910428685902476755091971172859052608199500840747313704555647462924441582452199282006770354118680330900080464204112605682224197299031397369287170096861139339578346090978922143514570399347284613925951970322726068801480169059723364266309836711872197304149923693118485625079503947889049614563859398044273471128649509066565534806755412021816917545715216789631367347378032530910762985662347655898527407410175239851892701279693400427810488453037579756445575125130136117212464951371091541245285809519044890761808040259404680848160183112714268320510932899811221229598462324933588819242604789179821887261082711214120214484547023788746258814798471060255479684959281012621052114982139078551438953491138070455212394974979100340023591248331803626615224922164080190845849959466107028240169026665040385853515342886932915401015217308253320725451227246162919821354909470419413044340773833051663520466111075833027120089785618463823976713793903036832214939290762156837606051245716045132148002498316866016978943837618216673501885792580161763941956566580378595981421643648378779866369825087314117969839334023385661680230889887782976151391753595447371576840042977723253348915056305970177059147118382588845839963128436370762650155920928630725114984880916879680116374331060692474438114899362437641633460344722918235484987700159628132632057749274601138899499569721781061928306364668927086103542207431558456400494733903346013547742198054443790459208213933943696970308003423653145671522314618285364503074448349874587755558711258786813917954248342782072165576973443273791332583717095698698314628041294349139437420617672988513761716735051691646719622118600019219058945232667177670620542271452388228391620594375108421956738312642368846821159990318699769103842181000902772234527889418840984332743571520307871426028856858192997753049154315750141576402950393843260832131087713007911985073830865204123697511482275939733978409778907760671476196891095963969757525933343474748251504769443677808403951715945025541808983527024968567711234008097594670765898390857287228795165430976653523345992415667722488059998491820929459499614075270421837193999395601929123455812518427115071721778065638601575754134934706319828604098529942045766194011763368277852175936903834321808315542104920649561097713277985576811857642223288612486115252464922111204503927483382191644443415309818161505519235505806778768630428412815770980464551574738660074727062170761918243040951607733580135090885728882947403575761453466413362695155203710133440678627488812799292163429525340425351169272981748218958681772474963119461331696246094273788626876057408008073039199124764615466362604963110807662047150871003219066925312278232079195859725456264179869543313926118674615912874305757952169871894039790356745624902504817189301351430300785196679438565091748851585615446309850295177568048991110556784925523813736454055685364614912649040449197081807341107783833184403081727287507525822419703752636645163294849339839875351064628469241760525919490725462244894348532511834519782139228055390206977626380819271147534486664577085842382141670072145024042900533921795209125195939353315919983894270767164051606652216868707109037805931684709086512997810112103507782619161183741911825328850233660840469017780227510221073977817003751170667682851845215371533057079875577568415097809286960524321761844254267515069619499389448498866459466433667942546307853916315990026062102592992723591173649679664777709063351567927705737979327723865287700390889149190042543123215538162886680218665156649255643135990269906327569117542432144185592176253100100041482771710686283845876008496777923061498185503766079736316438816617799524385233869319884592513028086383012261741424844562184118651411936813161148958415290370074570594638640266227693895402574641819274156107284728340745558179847282176462639501810989123328795437950963625282813326635664360106381134009397640571436450671052810474244213055278901660150103046587469089528065171513089990341669995674242927239697096463430655731750674326990387602144534018669061567389691292016304413623174118068211252448086754459129701367018295688037403381451292696252013468966513296753437343789331247187441739894065534107311440655203197874349696984332430155104977869727912963236051779200225812935512435088276001001340315518252268507047349097136939592778292010345532130294234904157570090517210049421461130615050989195207783214051698426422656843945850849272470276379263129508345415867765052308602232930233622307939757144257158508412301753431612173452659948479251970830101030068175924642692787911616450147746749551771351152760738567445036756222009157823002650729160444722809664193482505425720622939895847563188700412084888537441410054081836342999491567267365282231270689409692863995857664970960635921664055421685258819513978360841457432320388627233765547522015777674736567321282324548675871596530020807509700302170127087390555297365425771156444769774344099606260081506254718821099570794873620482663206263538269382504403514111847745471613751915954681331209407850494953894620416650964555610998544658775431523004710318426255120509631897668492878942385849744360241163115722375146300050686702226409756736649122651742507296838483590187580252245254952453086465643151530210745461355400166885846609662921691897049908777834263226759296645017424918600901539206472062221131380822878543166479636100924395497681077927986015136218269178562770743179245779860639867026102776208677182343640531093979107850443456392514132392540422682616200936592467282900442948431860418098605962868782448193871392787149883805361695734814060888172167551778216289474609153893210592652353869533266454851848074143057711725639854607662976391779362530893447523026878200762670011611184343043394804470266815306828282966862724625091776475582970304753109922802158978669534207764053367140657006117481473546197042998758062414340257212854157561590459113947903493957533367216593470053932160594305312789697930023028730621367531976847990779334887526739440614405823939217835645611831019144014633549867628685623950911683457414655705965129800737276864618168712399929700460698853925667493151672129535694598545958276056039272949726552105512342886905027816601712714554264210194967182458972042198794735764773131789078705460580945752669650096809606535314936808337819264567573679224078787047462879141956954408456693530659830945329141657947857470356544318591323328894418560676713609811743498623381182365043308941908036604672945026892920627926830184917837226357384287917745258387702929515605235982191133846248946585275082652376511759124590396663756615067921359528202467154199447212023974907643497811001049861858203597764155071210339839832868135130145678375312787393546196277294482005170652228750224054982563290954911644222069258318630223522446683332019327054732198242337174196725129534722480252318045670605363197525355165514193863017314098214096829677712925341354520708085912492902981227935672929207135441917247100342671647857889807840083338360923509676994684460747020996653737534515062768413806143728919696555662162122009045698515753093817539124814124864295648768025800211501071839437310853343518942501642785838811325793937202146798698807286801661517350555502589990211566799886796127397404880963861630939268717694061562521393706665009676480128147483695242222850443309666315362264979032818077928075190732199079789307688224968458190765679249587119704179741518489223325954502499108637191596057075514746461622484383184261043211767579721416326825489494872691264739461535612922665281723593104763137030239347416013724665431697426001029881402347889695064251267367146182345149807708511365969360698246784979090109438748623162534391889021030649559634429323901685917206653815287442130993294445088447330538804063241397515653071927596932809340693424578640530243840933259415117670782191483294810166493945213690257398783129632658737825814519640954070154725411629787089535290145789345544807914197866216150718482002812820865549795614850180007917493550592934551306146773053425437567390774106029023152817895458201287879779549748686423965188980907800843105918092236900199545443637799967789196208946082607190801009098041154241000803666582682004611685634270275675644533175338024654502599454956576849214420317155332951701669882447784389863538114604744327817916413040079945659253499600428020198162443496352926232627987201219436441757575234209284429317631243808970076939024303176046763576535957658685330786805753847623296733734265736871212310151080610319536886771539404786255296324976759105245216779284410800982636079505679773388702908961597289256920206602910975347575235807281652226484069195195960994001365912004444620101467989928607312761853025973300078003089356773626868330202470204247464626850952185080931228724194197149756394204004571205123071502399272022489206554279489826835238716127829365091005905172413513294124891090009185917105079023095339311160589282855135988276009949950833502097572859002904485762426208602190554678272838819180883869876264193698093360128019720421568207868308062320517450420353081398105313116408024610437070204821080467499383537131015676397833627295188651478066206730616664414470445052204279248713947543834310862084671235874370805061942037348424390175991609854935531053006509621992334296548718788678459028147767418813583570779128481055468633665798012209837071995829278444958651717141330291858889124714897631826788758039315186242776524005106667524880852830655838806446505574850835189055687091975557568237153343713280228343708676417215270027408241149029664009332925796342045257746187794491609142477090641641813816167993627971784886183232741636436014772546260664212676154402314744006415335616186708738083611890140147358500061067899915396174871364715232104511248968983701275000256221448281895997054819772336246855242542154240865543104218201611276464704101733984469910894000925538821827770048385461584148401155377380090404390165964715649518356857812434552552168284937931590992909887441552482773241965927856172091504879125108956750600792434680546425188097726987484886828210376453872758999004777526902419011989810328977098309633444053403705181172096966481862724699301694293123575717611468601766904220433481848192262095387724312256714421549542723233957523115086399955180039826381697709616487839053558990522495410142510259007701637011132829491013446370350159668588494889595186125871131381743246118124010778605726473788160106540547646857207229712451908828097129023851442302047882820592723841101905383784968033354324911748719023151776208981297766524295392639812983384743337504843340426895323909064227108071705427913259015584151983372594287484960549102514707996053959097891585573474973546361590592135846529212484442714802392421558390726946190798442608500869863853133767452395015316013732586716160670741253893390113765041997598951448613514626194453699243615661233843322162901555582220159236809425020926164391741936920194332995683126321827925965174085031577653433707294657808542458425698801691933519041815222951038953333434872125317346643993704155738010956615947396336047320229493719580531274615983868484906994993663849943016656007556648811500889227399280410252110709308733267769658033331029778966115634204596496809827570643891084678991473803853248454429950143623053602501247759311756298199825681843750216930230062799004857196885814285187256037470752288880352171096528396825303464618273809987641050812856172868039839241693366839015462679894127295948189807279924003285250271095092639640864167132554254652314342893595454847493132676200148844825942170094561704984367466545373845794550022153890377460892118434582684038115084641067721568728618096826330514169516573281262179413330878495549982208291071574340450358221422547944789179812660193332782921418180844154188657520865407269941394036547757215107379883216525109512612044817728144297059832374321700274108043871047495865332576093361103046572291288719275928179415884155303769698613017206850580869230232061235194203717844856303833934036323584048503065206796884964117267499924229095289160810410458773891621737597950830143884780360624212731907135599888547604921686402865431337773405748141546550575443433878505596627049997008511356343934283625882187381619070266099248296026379753312149847448573125024513531532104316251825121869035689938383527213526375074466904033265311357294346323072730387801735455228365846594994335601734365418922982828716636593523374670538631352909786724860031675788663683441968508604510535510918871165414644223618930358762377999078647975214372368492077521018793487193844661025880851131906987507558721289419079943694323795240114668113240442283264555897592500918025269014696207656245321875656900928781928033623261759558712990561017017955416766537761058332874360825984518160656556985645878648538369434869512671097366023114774336010879431095178823104027448076602238159107305233292405437518293366192672328738545777088622818907368701131843913788135697163058313586834833222641295018987820978494913130422223225355014497950088914872811818319839765828185075525229152548175265471977817952988361395713409502796785846453795746976138047472939292419451926875519893629528983921831410218808889806321523891353150274141793548274344500706500773438234145099243036430946932836118602385149291200520166286658539551053551722674097408511623437622410715403223479514501831851793885051150164789361129887754877063590922990987324700327207502033339149622322541312070138022547857922245565694450605178827449484824124913502896905843034091675858197264710067478102433095724413640952694745407642277890021035263258628728144967978457300623834705207700057267866281757699684711907638897283325363953077221813998389018016573118051736717552940466750846098501595320794719529454717165842046828439857197172473492702057059304780392852299858856335917470674418159762352859182023980505181369673057266781891778224067397743803254179253914940280534296987714279906160300174286233460537321804160247662241590240146246395617387722418181341375369595452115090877726538915071587121729151882015705727332598225549100639345394676472913169718071831822574556941485381476916030103232428524328995925166749468710385717523977531024951455538885878371047753393876893407455742974499790662737409308531568385375582032432336875451000244952605376382464553837264468720201537284204397319557737241445029829030779769061323872528482824865457745980308835592665583502678430348067135620202298253207825810587994497964192353090876873764208360103263151409845662263637268593727862909100411030714147353948553780077521644928431138384221442323272634683103485668321023521908317768847546024767111494039398925303908932756359463940677230806179456267187570266212549918731833922804525404581104681994827199691866732975788113419679319474603106857324552300655362756070361658812733108393482853344589089164194875275846559809919049079164756428345791249896507505662514972660875513289310009510488934929032931370708081906387774219219749678343359771586895177738186705647388880976940234868037224575952341155924191329521428204838476634958997701576389041944265768490089346407393909051640879069686987061625082907663220374474125010333724553977209575943207117239322144157277033736541727690046226942028946243742740232278669948202660077684075687235615819236192544450673302123549605155070204269297061503400540585060397796109562739786059490794381041311786718748099250272897935354084426174446269211107394264213120718620032127967602677891719684112410181140645661465991658767192455764666874861033301294648885116996073586063887433094936399832700558679142638570735676202636369158313771882023986613761049512604476276908106149239029124065612613394854560725416576235833038606084504176680362748031207621610651438195299282031756418222803127172296633198199298123159412110227085782342175870409919178234257157148785392852573608208335313264399895608757861692617145344318123197235014088577204087388899391181590143437269187915143395534806285239751750848554471770556788122822112977486286043719627204144970579884698360381729687515591036304932723850833800881505937015290495308215896801697286859205115503432512716352743129063652538743315958226353742508401766542607179775810146619099788205953636025730817882468506207033744823810631338469340730242829795143270319886945793037506751114145709900607930127129348692723575801120632520168417135225509619867597291846432012662859111276369922049218794363411955503479969522668236623284104017726817507769386571577647542594129873738440638610911787230708926481752804421870070437382915640561811326564806804574686588832747661319956887640156161833743297209942272811518803875047921042602495395077279453914715790003724104487145669026076554719618711885396523326351089875287212034687592797311695431029143157983949842474892077964230560710580255851945504844029337432407949942724662071683703344600735419524861693171379546265520561079765276152948252953367447665581520150603609898447209536890633096000271141871663943905959524173841621720233664523968953585433952116999654205129000547305235999266756325130602262204915905531691169846160255147967566230563503506944016439903110355192436056743542335772515292155367699954715197624882466689759507948084340004062634507031359978471652141103629918121560476476565533760999039210912630775956679972972623654111149369108131789450509433587773706772444935231667005533366152273166220742573368873365242745504263199001050446751631836907034390879954348619500666472125948984788708607363265005548494296664910918791454398848717395118295618104742767064104556633516597565570210473359214724287958978705529893407024326173044151466273542167264390309614907699489263087881455062769776765502557243969414733864742341228199435419034805218561999377855915365188980632969903564988733207203201337113441499959795973228929789263280942335394583587322019502394477147949083636453545565580942752419720350396040303873498364220238755091749758891199050007945735446539530315174189269783252747115832377964973918909108537138365589552490956106344703134819066534458685335631518077181844001438069020107435587318693815731824961711235104373161785718878337593252422561549171844784436489413392105482967235906965808588072457901475318805524648995326676940761041015534406245011615762305556095547617069101175477135447051008051858815579572988256047321653671082237654724496957950734406951093295636274826242633804419818886775005481740389210742836826801857280327424874656588734206907320845418299766070442027154576327428654816740559071997913024980895834932548415977380670844244043788975350726575327734190891600935623290324654851177589718783439223725586064210672625559194326274185099775310529339860594932503295692603352826191180199203982233781656175965513372802058212599297921273933755160556912649270621331375423734279820369570137168137605160757527685907995205256681086006102603463996505699702778252782507278412395945029691366515306072092634847590893967964489606700521344647752823223948342449311892901351181558220117410014315104871376187047138990312865004656541386593089684161639861486480326696050266432536328384825743588511462448441635392417830830791047772687159421521793201960793390357114232184879177457804122735808266978286430027797759659761987347312405393842830307326232018096438678489779704259271992318543957269243650385055654638559377177348702616514659126341151442274754872346005814571709046391342016663625342099407134077042378230928958144329878254997921855544612450339308517217959593783318213006727667472283010876961555248591100212897005627612512722388325636536221742903595610195927925868937226252412313746636201076510499945193743219944382467580112315161145725792688483067919620108894409718126532489885850560593695664720279272828549826216100637017660270017647912245362130076088317316747094877775079895169651607928803772064394262252535237194253285619246432096346663543062352944575427138567603861092190426299412274967073689610180574726105943573661962346154151766372907465800690552280373658807365687435598189106321339324152847339603863808705493837892501233080651242962644649815045649934472505456721232329695303124949655696697434790728819804864634345915335124434105929879323710726081014821948687159367540028901151046560974993862771619184145848501407485735396191373280289084641244208973659027546004220658957395922950598051909368865315593024696596387154792404088149643765071560618044962675452884290294972140690452448640647705615369789598483393425113985623499000372546119198974880715414997846847957305990718249516807527012539996725654274738869322809402474012600367764926006496191737083297502648860106686134537175955339327989288597459558808990613974606389799885011671743319794743957986636964241089615943442470213317956687330185231072664243296449706970306960493813333807502422773205141865594326487148742634636221570133360950858208693400244072267989696468849648251974360119017815046957884239538070036096170771203030984471734633051405426007081054377635483413800771022729388627242522849037122631629594579718574475952975399849909458730990842768334543261824206692397274871376824962758988555277857648498656866865390893462948513893742597625204386867444108321657198192297431874553181325673514105089588605329625513761381907086276350087652269326349149946016031313854345369399962075659313960799134322521418346615030821666546783439807017222665299340376073480186083801730460778530780278914920544829708387075324388984383728794138064483849080203959229089172300440463189742936648229887839819113179374962607779391408654221490202948704536576301357117051349487264893932139268306879271306571554822375962772052780491090814901389157485092331566683590246223966617948430314470852402974014039649118044832304915209910392262312123108690103215692001103809765109802594849605276510955414857176093355620839475270787492659209661632463407070329205072874990592837201999634390128126758250308409923380638699727790953727538479992361019914591676946907354919264181888332824690059327526312196452751822653222352569112517934704725899372454291532922799118515475365058493734186309496017966447927885409522894856716097626273122836556376986788721734140303606968246219196093680872566261963927737432763548160958623524586971731622135562109454138628995064741155510539804064119732637617022204442160991811676424851850543859460145514587906915117070999816626221389924866488261476670174390749151474890351279874260028787387590803701290128366155082557905505263914827198765197224034696486115956609204145445905089158054760846480581245581289378330311873523598547354315084423343557222408187011165387331668513118597007512957980608228213409480657292071928906907956677428474829030880021878793717781561459222280518766501561509334230399770265866369273262081466362221535160446129357156488145712568107136314936647046501462495643620107040359407027263779747775365586917367146491971417269863065822561980452107000442612628523739318731072091775981911839989181794947724719014259797669782463310085866582659243948074197198040153604431603785914946277281768533582620344684305416543270835478046427175878371262665485398048519749842948286846140501484046017260944126194796420933764633999847512710961219394686074744884463631333799112866618046278929353043665619889113842257400724855494612558092884686533829410056734406002083785336314960118021309790056659365500977999680332307871689222919697497184655450072506716596362074203312927297808350288741131907601467833435739396431803380484393161655653763643511466425277277254103299941342868784581471629663750391401558946363630103806099519586729854607266041349949782667422512659993427170668751241896359732511074600248443978076202071211005703672738343036782363851583719117107467300560976695439762123835810030258179451259766400542052623833194164026457035518714619023686284797383851990555148577918940068013322850540198167146080928040877488718129256870878947053757035546443721365860863893661233642347684774276084873000199184398893546680096910463542983008956240853974013730789772261663760870520523801646175591834411557283490670587279390104404915279055208980893735538797718751237450236315480139294597862432189712018400722410814440215736941000879825742876983857931286974405360702617186247046848986809138948469791728189229358869274770306408543456608591238125509160859011710845368579620915763755103557365728142444259998271270175027172313021161432044613424092473384153717106847956897113759053420594700968743571851848759808170208472359054134016578644389747661462590177394698802310824875443746316176931168495645962115218303461280523101710388056189869224628618519364067222317276283264648279117693427147033172667255873514062336745396397842035537976391655281378017903163313700321312288904875516237619397232531769963763864110775033376273439133466242813682929142513059499971726069530274894454718281078374109326956906977253051118123567568522767156943093301978099162513344940537805331998872672753084066160009989604176626890249065403889506960485300919052947180509046348891167227224216535535280580173636582896614286107146471062473803828508470534269356960635428278107986150015183891691064201611317792376107739593303003548328799710027503812007701265938003047012742678210197886685086356524269474249342248195601272848512329184990347708484999427371571684181522959188295355110391203922413853882670711850764956600363551342199100013879601469384273870809000570164040098421421493091815667076589338371370286315557976363925578660552373381683371552322604571248697123363269562505910498836646963396520563100395905919913028790861279487965131856779898542219989093335493035448848363673605427490680881372361709435853379122182636928536226150203639998736752293729260229518330310541034328862497388895406575531937184997850229414848706604488806130818974207548440068337285014195296667473559555208293268401651691049508788025559972416033317657565413187390304230640906674128810648071710346027765547306360793836584887193329454607502976083394494101508741544531520194356439749618540170334788836896060018893245046050828266448330497342403775629932081633154340788530944875018711424502158908433645591070669140513757386215258562570161891117816214116292697230782507704593772217356297230901404988179494210156696312550492525552859783758205745852052266000623575265681006679279448015243482553961271313804316571553209590455476652621250140475491817645827949182198536241477531312206620272452455936481192947135930085426894309951925007749772824180652729648814828807425355700771414958040430965531413046736324171187615173593103545381887051550189953395531230720018744454401012725213012490382522963069734335585541164152807344362842149857891921072883062400832265756196788868613120766396506839462662432725406974026013334377899922983972370994047848232383646750451071576567928410528312927352931708146571924658303304660441862915730420522743058007586566078363558708596398541237326725473751264871076548551612413163478319704373221014594262608850619617666579152423916016909717375111741749855673344087249552436273285198388929190771219595757612706208950010996670417146020102029469041310491687307240268972746619022131722131741661476007326994264420498214628339028424524707775941377683087115076413295126941304337859078556060176402708448011293662246688735032958412479092607781748417923768257490386829108889729920012488393548522727511831897302862420642961052359598031950114502202798294998551098777578120362635022959866756430628794813219681730986203400509570997163078510011076881459034460589899957214094186822265584549437734597282093788082234278918053422237515258064731859851575629825473018436394960140753856543222054704790305533229631367656823318125282501466262839230392550591936985577003191599419554572417155638144501196899308579757401227410041751804615320042262934075880121989101341521063953237162892044581657411207260719665653271823364224059223082002814169551918029335707221372205406341796469804946634729600756614744226654540630817652398041002907810857728857950054566037562806984572282037862349763734598918098454940545781745050940349201904143050474431330542048992168986796782595154366410887264890831157670643628068389904043028095863116910169055223917949709118799036665164616721403750310864913104671864104803508624653198513710916666224641072796814210177211594518128229983920229368394797291828264953598340328349072092863317067910365671974278383885962124180119815782833494370816216310420685978524332577789732221418240868763371592119550824301046013499504827908473070337154485690768709302879527109066283878015507224607196628714850815798805406065652265175979815915280643935639106677831063695430377018481099323601548369094497143590231890163601856527340863965464559626627112082987055143974158470629951871232789882089572233629423268054467018483579926731893683967793887110150566312633304597275950024354913169977591338377788426401871769631157232836755005191651456632745426370592579538679879961066297688522643259925582214945530446602747474735537862008534953581228520569988108892071596188503731379315340277972458356766988774334847886358772269125988693494194707918380755242105408335752955824052173526977738788893450144844949795857871101837203466383617411857571183517005875329940497722919523903395849306392742816771088143934078129517875433375481548271482399019280342063078566494521722629335393171901737168132330076781555470193338931587467479834406344151131035017261474953129788550402293426962719566680163816341549508743829823626231675906011028460780501769388907726070490155716384923727076003720666732971676784726685793534576474551903117765947907416837147264338546241652739933294660213539246269935108027647101163162404612378802373783526168921162927283757344353471543378347828068796837906570211088209958173609617973748511409144793164777817779118063008641958914634621680839178680653270893861034406934814754954107956378241598609433935569892015943439827851887624908607999159441153947199306821759697435490486640691109680839180265404001568690466561454366625120171062956414688078703224174639797476094811915057167685112799897787539830395880342560713934448866000545277889760373151306350700532122324714867482609320964423675721119430332783921243791033739789640279335690855729055559012872717414106762621008081709655168070499663995751402912132220403925288275928456797952453520981886290002697491435820297735533949410243497435463856741609095115376799972026441109791712962651952616025846033809786384943857223046844992760686834329663779107298590209533852887573306220313077861196266051055458974981688746228094977963288415773404948174367592004289712038169740633771246822538811665393551799054018466809801758174613421783662503952520320596268121352895156094337818983914103528597788190919175845570459067245730389607872517820886676330292497144127385295871141778954040605217150380129827611937653294563008884111508422174778310515890948456357251007962911449545586731956220134282593798966763536514053744888248977588612042071295254421142447965184010680947845409194671742361755810327528375312356127739079396144140439662684614005285205579059461583769324140989263998748936556119468743751779947708684934505827267123733277239007326551323128011695860925832163321553921360780704240460311382720635222546615605113374899760483301014616315390180963850169381908547243936146212544378105933254906190439818795468124521810238741544417075482366909200837425487480571769970355597378393614783343677805931541081058965977234576374493727812798449642976714109075270528066201811585676880116825389406936977240300349446721120808092616136874020760270574459029953285625605951065867990150817960016635626039919895173819229673054357606790430491430731960278916974425133505936420231239472718064493497872757524256837405189345844411006827225551980150623696107301319676574096432948445022107099856361553965052492451152226108286644316386465827942810399282986224216541837556113369046766101957250317858188953156539879949094612969380103962047579142000296512471218553440972491746580071001895974867866052398180626607486768984022556360942805098829405697125097642278973678499056638494261069797666295842700024776323706360756870581674215960548481885428637342458901563625920380532894555281715114583697583606984921947155846175058131157102782447592391896836601316963261453992312413448730124950817846213496919537580242439101785672353787984234542687692511758772142895218913394105202466809976140364989746136621768141544750952399461114300807512160899821751453085434274991270414846717559793531739575218850876623333084283730837296302378534218031105349989019249679057513973498791730244285815695839927550786668383511094347983197191642673023540250611107629946262597885637293307722152637473944214422720308123229640353697191623374606401463962253097290076896649329022100777295855934026338208736283504983197818124490640797838450277321813919628359421287020809650902964030760901583343935528817957405722951737846116814937109706251341678292375745677587123255952992845859749190387013573991990744052841571071524881915110571425647868623869830140328786790231265756540513895030646092829510421154275717406254085914687154556107282555754148763423014776283777808303871835190477904763212301195749103226770881423677821187518158092704603383696602481913213385942943601555848063573669407910718572771724794438355017079813674529743029914921579464287277462226812828597220256232762404524126908383119287408188645654140798153756219888039126856284084708965343802820776030075319302385901049242291052285332706067365498115511146024657874165536893302169150150274246846249462136575265893358351305177435179338970360731367372025922087359010642863937065348971369420222995193067823239263119970390943314109278779097131190071908768936213676560141162001192534649900948893590033414709340580353976690142039090067646736552228415323142911241133521820440433655100261830046822342742937643439082449328429755694840521330811567333464204299564504466375042468203783193180984122728750221997260474213110466254581755174108621991841082414172529185302328000528454767986715468753870024312789658991542320602329569660442153034265276166617530969006434647003699862097866943765760517331892515817652850340214013570484312674240915412625526415881747945949398342413494291650956060008097589893137899036706072226918388117202536430603482731181783117206040348037048749405584986172201239564986685700182833633163400460436949440396666081277935861713219435453966209869633283957925288005622915804656186475296620618277895030182783769787605421383187524252071053690146611299871603841162658716554947203999980703785060101378791792028913573962706487757191404948618771485803944949771165910657630872257421707219983013551186653941551759088524289868082832883972289644338415881446751254265726477773903756183403499492133307008666766541846025169680442070069942326940172316321757709387255337894410160669897745444344632289260853978416163839464746133914689642912828793662838276143494394316742864466378055038424547850550360860330874906097049332406287978909282107262333913653964237736900916097172251520237434317305026077140139871434456863656561101750143122683712051605894475323341590912393041396536932234232780996138572913654616897057706863319078802724798606321454982705810429604152087331355548280366726084322858412337850963252794525674130782803886785708362989689315563687507443231370044867645873995183206155326091249280496541453158031909495964456082500547487661315427889135553457956791600511512681828438770474499450376450185925835250735816572460476580129459448172607057788203360948168635355253459976344837167800853141447727978310369013407637269575687095485220717704683139434521485945552667075133152004192056895662051760392408556835015547615916527725695582539600003216047326861749673354658304262674823158464348407469186780376020556924225571647952832252202759553588693606120675029117506292404661892391560108333393623328108518145070606417462517145185223108228366114558134807077226404935572977622905797773926361344832576217777440453665500462060482937504894980335680415082643319310668277339811884235209893871285844762192523459578669316703801180518815085528087955012336736833180120966839986042057856082165107182291330125186109441481691923049150833545852674348929034568958060314052587943186692409308224020575932620255439503432484976854290797775712443043507625436938528024499045360573917712140371572738374635789555005830884024208045879659909721437445381520470551847306607274573106797944851133667300061025544812304726477562867834388710110315727861358243495285988600036179036809807224887647644199623591555922071976635761083176522120322293882895163984173535041442011727066916520329120109853734029287212591236529641822441456114533780017778594859855020264510002909242252281193125745882439489831170103672715004508492185321755044496145591992380123529237040076642004123739361441664918462114681929764166740248405496681156782553505786258180302579361358086841245610436855673839553661646400784357896688628181635117047934072840542306581452553185403562650552538040416793989415561618138549193559685848065819957885303862075771413987739049315779721353870777273617562583389162233856029037482956023450951604135558107445997540990637311567627689027601407982970496029118202172918122878378128001315494738921155653175208929262484331007518317067533284104515095959941633106023974139690218935015366939163169265004835564159862052252938842393828714406977691250354126703209686548903087679471475626140067489897843936927930517974293257133602112264458133179876528622579127181955320760843194260359931079531135119496267778995932583716002771813217237862203538885555048317296244728571411944268221868483426415988230777947120305577794114400401678557998455639824765883817487956973440099722080959058815978512142024762497830080745665049008073117394064594904767604203785897177215350810155494862116241824381555687245201513521066794623349097062450514510179127580890985783223085685719838313931529790940665191464206025722205597497347236686023111076892645066369744093006304140716301685449255783951091881810247271025579373785722742377525880773195927878111014627408402691669405581568890931296925382989969269295456807286592329257839981618786476033183801629399972756276001729696510934622072312603840361369354408712497333411210215617820129432180305564508461731178889702814840017059108373321639094187663676548084675346221083072747388040101159527986961191465597512839575462498918296913284071265496216002091551064046163673370647606792757948546147931983679075447120037616574602478288229568370522022098512679369145680026448572618656788252473327873891550993976604476495344466827519538240877995986056522364698671375091862746381137266232118114276732643038497856645585832742437160638283652583962189586639357280249674492514778527394512056130508931289282814215722372632631923497593207367925972170598337566188037833533393906294294735792111853418974150688646205664930488622884023933249806865307898297952932894139051759218214518540801224332364657439347346042646950679193233251082406121955618968510826828507351939222555131605479095078488564974228636794529092293308137395223173678117358125694163937687301848424552554346515164236182339440558227009726869594150254061247427706195706356329840365536241499079857401897498845697916774059846373448613386446387677474423429571145007725454842979995193650136750280644704620381281626856094493396500591515603294688570563564617603782840820544382790064818331014098118913739195919891023740375872344469586887029489267864597788585055601903855270035231891296228292375968224123306072736529731074966384792409133287873099044045399296084460553377308895701852748048615339930961428109997532913416255104171233106034250389103167185001168868777588046120235653227883266967025911828202985775843848230592355618302698985499061268804808319430893392606471715184823491553227679048684379724289994716004062797459059523804117145228645286335367335073287950846797152166695734574741926963484671852182482475738660584809894158019780117403365882547856049130524624404190328009990279904209809113707712073086130830931280643497234138176978279024162059570601364195504792229017620179192729840479476523085352333497919818506846588111374466184561784971884313565189547375989672797151337829220063474306823147607790941181213297286473645738152328752331782457226369132250489790864398431736877753006578335931905642209332400082354782786577172101428557697824848866922889856712151492946397763243803562056308904122645654865662691992933255447133625998924114614465798813955920350701313804326730203874136579422641487325771174299305842370775185327286064636414881114869823359757402084691189282826402740971339939042301390579174358342352944795473322659172302874011620928437213692959302224958908762220052310200381417388382365456199897752693813492747023137629932771942723923758728189401723996958335030362438866615831280634047427372510267730275778230743807186195717935320016128128445943308085502676794540131911507051391692940108789512649904461572773698486967726471629127388249385842996371009264826599529848219151772367664969233581085440513615662652316336359370518550659875007231039389466867483681003045308302097964716825868807089556076399434773528663943784667114999788913525139336608454098934407862672069558058337301913976095303685891867971897634088744323203173620872556139588161072455761894189502293122125921273105942851861600527195848455896569541537130652524755231454214460194326436059415890644534301069322634350506957590606945651510306071278085631512517773717723661854975809258603165440914135086801478250083584348227736041185922181527983585077978359990048677797327104458853325459069472556577081542563618896508879748627598874767588071844043960801219630591211051396383270420911182725714744089835612496471766533502467998624317067804581201455977603985950512642218587391642205402307896103515627652290418303299660503136721766721636400869256812802846082510565834607150237458168948188477552695727221461010341721703361343335404783665276451310081084462632208339919717156122158992373853735733448698973859106863347614350998606247974975333102249125620642401753224251929260746504952883196452737448864261506066607100891151276295140610105590756314105693455897733635345369051207002812939337206950219990552062505552556020928590171840763576287712226712039986779435947423727691569469919902710460774479315332347426750869293394010251478009890262720354025180492674586850969429334763741216507007823056436176346749975181253815080956965869998747955581326592229558208519833249195029148406543146788615660741510573450120678761431053335936644682797943095670867218470578636512937213314875432152404953001112622303092444366706467773793004143949318388068240120918479652986186060825377835231781141712946939227580668296369396064528649947010683761571147073068271382491957710713380297837402644525335553495457530007439270726379742365180880813926067537332739243428752361327222244110956044121205376299948177564332980164916065913954545969184421863167726915677688775346275609621862002076179467060374241530362152408694799643372816207972612955101863634582087012268347007324893165239882332091701627133201807585965273223963534558777479734055824249635347717795869709658794155485217177720576198651721104488441353152338348173240125113083068584405542393779420483507379940203103560898222791875567252526134362607351428670783421000655081269790056760040351600934542720397987486870778283888307638218140207060535711436595886536616784650257211902176690491692602645507246918504737241018307103560638040717820973866777178616616222685044898363054527743695178425782074191208750011717495549038683948939380422451670343740065022960931545624660839017603132199621179556498469504732827785291998647296283174484690089519217161061115999369898549175842038119809871917422550019166586728438620205224738976809913685814671809243411961316245132435292715419264933919264187307865918534977807759791394337952813465649060566344896688258575410989699858343327232221750637604361870823333611059236699868160320236768035227150310868209627821478523124432149221808588146208684514428144919380254038861827771462352887043902999591165808244180591381034898751470090953122314420578286438532414735079940293946588425329679924236991793582425676511342785438007445627284296196348291076815867977149822201304571366782131282490065195187871324195111290720809683846168514409283652634397146417744377707313803037512598727221636665433154794895045700312623544981867889165067245548489901566339019848358407579467550827317808214533471132941175862253451809586807480830866647384213207355874699899885292057155280942636899897282336077047409336869303252103026560863648572432528544289542244342953662705220899830705789404809284380722063567811436401434961175352247097364167414035014632072813494904416177036043499346418825801731676996886632268952680855522579463901789776193439941341162482846530712763534727476488998051751739919533022004560750700386952324199970798761872404994670598610243088289088309649073215528486131147761977475722112740762514321394005880609817487624988880910461975134421187068198048145298002194442378566804360245620364290652452904254800722123136693521761521470326374724766429288712778615556058803409261112050605978585323434415857271819050781654728805569271127397727525729853116882573120215052616955889971643395676772937362100225998591380172883527041889419300731400223129311313147991449950670335013957284643568217383272139315167057932763614091562885538224831464661823150883612333830910381996685529470471040245289794446837153514557880320228417948572550479095728506699489682917212978131497760784179593418581256910213508252881568708700723180782657842719726721181287516555666549180875943769953899566036231305327948948318270716368805923963294837704239066430244252934664173811341927360183673377086515129487841643755607748896449336965792241262668187356059767387431908535614399750635118110754178178702796486818878563450346924593609232632594714124044381990790982899958093136340858329025224617979164175893246685435165250047308145261828026306110406337612561225716338251067643913130435717607790132933292914401428662563574883753476761600967797010599614312026818372899823663873728115554905341212772783620949912582212292003291218999912310006740943735546604713954550929554937052584822120426672983910391391136823245982542600260622205826362200339765883825086370426024165796507915863798045088882455455558534568544243045701139653114941654663831925307907790577560866761279357459108081442629287982973926437595151372940041358183388612602635749157025678501312967638469750004022495395646747132538330691312716431572125070282576700406360203117398754028918850863057828163067642404100074557827171824048226373440238608622001562439719265168484516760312955233336709823329914469398942089354474502492192484697372092289728866378637992317450081891329485643549968984084471989871373503491521415132739993826479516137626832619065340131815308312480689433782398941939889655109167191219693573228896015020292902982313568281613329967838848402560347472157247602910684122293711171119231012081434515499129103689356822027290046409748053688039865530713456533758138627445399573659096824232647342639620549606801221775603943902207003341531536800146654033930274387051572400858271704603396532978102398134587963574837345544635976462683718875410428442882759527656920026124412430759145992053587155159380511215765536458114747876850500047300941552251490085862843985048463866208940333195847143941284054565750246913898326837818480634436437890548352249824543086779954923671103159343733038338287254534878740092256962415223251979878075293969907645646104117580279717400070951003332459183688655537102211311056572208574205528524117357322378584042615875226516961998178396799917449785404021757821484446609079625286674273529522531882651857608508435592098756329538961393759522215024752561903585915442585000393824982830226877671080306120538622833520546708772211057384436079935957646663445848477649353061259952495523505770732933893343723147535942596541839183932907294330964273207449955017783029190784233746389620427284514304553283372617906785398362603578452377705477733546304734293740496824652393680434700867822963505545750025882976364081653740688856817721077128106954439159719666331190367823049276333760273167426461204556824925508389795468815066452273145040496310892709446745959299871186782130538543959530567784697203017603205229611246743871080481407577113286270014603018330427987787917467398970552120503793537278436082817710808818224892141756990818463901312222192159439900507193343036779893172534948212877339828062538267567872088348889961949243522609603633594675021525221931480393777794515358065564405060684792585615459424674581218691548632984191314315463989137238559411328426527370720471919934861434072336831981119788813096968502899318158684605012747411797783181939365945284306038868959638067694062781030684567076426354610136907619734776379241202345653278669395650228253609219399931203078653579254970064403389130279962829917516586636236193835151047900724256940664778885432157676460883531666438249552392340763510691843230766687117129505101200287353787435873433389811514014349437499795294892134290812459494804471489588701862685872362550406119842629149149258733621577520265597901977011720425251304363571303677260134301041925050739194869511028770879828569973366665537211607329870354870812225057108517493110286336738779774510990788514592416820105864199467964164475176738198163524369515272761591471290243671147448983373669593998407246657415689653594522895631355353771861720867551483897097206127193777367391953445789852445539106737805297065570037360346399313611025448432258817096451960977584810625497429458475320920532240857103890833845541554229063690486139907861478072043475280006155158749051461126408734291768149928517304313004403563029381881839876779688050028580298969504504070137300775749012853125775200629166386746407789202039404290155885783542230663236674957749973328585311131244862347055201502837705683222356856639663809208342561437415511278110479028118484064831073528424165091080993782899259394343425577269342696910640588575086173676146745604859974764848360201735950346968557643239635116588497649103014717047524538451887335619966012427556054808024009451259479633388611571960088927916971070175251851661453453774134367073489880015612706845255987564612420612493872359593940129651533797622707502282780546281082108024971340171448856800470898849572401528980552592778294495798752019724412423126071195399543330348405323682752508650319878988053592209975558343196069871445972708056533869198248447531475329907139297868936207857568282455654815827442366061497831422116019882628810223225773281153998681105813500956532110745623442408161460543686308609002934336642287648265122351664939894487239217927042658285413842545474080499188971937106191613163166371634239379774296473941162675432801797470817050046971548317887448906071950563491212043647417297783894666314966661398093055196171963122050604830907049493502665662235520167979037413866884594757111660731095661208058388733332024016726043153802018933303897844524188574541415987226560669357285450539255834837283239455295865672206710864774196278994863459572468042388569400396798901761616583541981756100014606446632558618039676893172995179524164219738485279683150605681730958647236446228323335284561721765545273384928425190162971010143825369443209889967033352001879651372623364693335863199529201142812087441746995435312587171165115604461328138775327765484737738311737127831362325604936282712073780493526264301886601678129718749436286795363286673446474816324394576339742562511741846499861149377287513271123315729656020277199062154508251179624332331657016903538907812688182416994708800527551251796639354603509825824879785540459101632033895775751298148557315051378836580609707648272235839056700147431283980361439718513858137496448343330273603132755678396359828857017491786763272173669673738917228806026047549747288110430324423044599202759724624779300649884103575022653470790254422439207346358304283455462559150548585138989571575825302551730692639584378118741076416837582977400593264303773280229106074913831548103095821124464038978825202249491948365839506406470742293446172336134377754024053414263844996357823580641474756936944748205628692380680669375059958502376583836711743535024807175675603618637846010993418829493519322822687185075761046908515797091182408371473080473496360884143289983503487476558758995627348017967035245248221253504830813971514085321894113554878722898134499027654458863972043009011372496996378946368632109143507993034070710129107205451154660497462864586518736959052719534462387619826425811578459201063751588797498146681109464404827192152381166189108466671183668258590926966744011175781744183364229837455108554756968190935324550505233756668488243218684546429539490534878932305778657146135827712860506146685238188485576711123442114191094624689025495753223254543466074221156273983371533752938295973439663984208795263239074872448348215713579967646133732836196986480579899654929583556170368323107317134124863807050161125175099741403931350658298534724477774495936626523178726955897773208569263476103637186823307441199164167601303673834769023925351966117904587206215250076119079747583016852304827988916427475580895845045398416052651120010429666784374335714623231431970026402885371724911172441406584515973463571082817086738449190123755811399990169871119071414251843638096818985964769348891546627325216739549518566873716827476305014704223511877943659826178461893469963650068838109742075382659848061603897505274682180253921094114067498107117351622271502151165105684337365176565987061232896992846572404649255229103034423293572489852898353841695798419445147759985255493033537951600989441861732110394865126063454742537969749386859665893005661138144930119814428653469540287014848124494125477190505978127115578597071101720568901321453402659351242998728555825155629083642699210686075064118081910903093115202132018876793222575692757124210937449653161831121143827873380329234863021100875394492651813409769649493815361164265831900070589227954442664111121227382968711983599581511148570140955619248423304309710848414550541389973306285482822636466742766557439449094357627850427238689220234767588461170047761710448379469380616485021941190695803391380735158796007691244443002169327933669992925312589445582475604405492528358102000946882516158363565133569823503260520172673300743894293616682779902438963595338696875723317408591983834735503441527037537922393582642149638676535898695194953823345147626016620294238932995964520637024904845689734749287610533030907537812381775684293868684626029123122639314574854158621877624762222158649782566470190442581883313426319413959336290606081727712172082155072613654515625747158603891417073527337499095976488239016454906523820128900729287304625833985009391075593337425938717782003932409474620342902896674235169434525564368072199401285704960405972419454046664162875858115133742000562092668829443061858839346510177154384885799274068727544489432479305735632129158909815263949286249789901918618689969877450100147987956920857548421958782740063143039539937941660137597663180423617003244781629448463157390534056481443596674672904459722123548720193792545226842254576174308378802552559018577408047325556061757679894805187927076102333613894723568344076432100316311607299888721891390397218285871038394216546258787303339599428191265949197931060650975578664172437535217680723306527694688129803251976072705928990518701328075195274761430763473242137481401657133047654184755092891395060461307395745317912893908059125974247200613743967842851216411171764176863744402028110104722333656599346943800480944669594592136102828823848087095226039900884763656455044751817005449873600272254593714714675979230467901658568633652132453242226184094363525167694407482357473843942566070847368620019393070574806995140607196095901525446203572194382546305294954275926410552732431076175766745584330322142108931417059151044019121748941509937886391535185295247007330914151221497483866621921730581536345593144485404567243853723837474657727628478583066744690213073323200736336632230119333427471481063555122784266665703733437000418645622699536925714385648451372922220479083546049580522048617944297783881772613891715734404760782274983658345212591044766929174378805839941468396583338743099398739273230464943333702385000485644417633626810692021632398955626995075492898662701216008258508661822460349452614773006929339273049338205029152330218556532387715407340241513273571590093390854764480395657106271201469135725891704439204275587584360459646135204160161069990745695319207350190340034419428898446700210997988750002668882104068060017970507577794977320839219394696872729394666352589926616312114805283207937977302025682693782844180477483879851296628701774023460349177758553344935703986123267655051813006558044752731587525963237359131097035985047193722426698467093795218394438267885484647793823177338634166564907859214228619324519703407102189010459775009882546178414495076591556664666088507655751262045297445241834961999311218815093322052690661418127139719081759014390207655402697738785014575061475159386392395803005280885752249725093348156231002203986165756927487808813041433367384612171772778750159836883460331761545060245453736684170604849444419705963682812903199168599702467659266951884349023337893008910736646867593714270245995860703085395507535052524411558720858998857598771250475547283622848813789402250375985769526486157407300977665948460091457246557622856575210313005071637010563291528026903747023441724531527077763895658991430156593452176314128808827431214108860980840430798802302285786906018566076770987273392932365953452458491934166529058369595151997628438594823389464004822232747755947493777765793603427990393410402922316799659564345755937598592542177573081328710975571262620519756821394905121156460173345918546999596054506643548487086720694657493955208838987091079266227056850725017143238478872996466992454094265098289097186927781094361703217704028404547696412357723578263807686612384899972213134502799226701952953259103469333861671030974350947230513818639181866319352700767345327578394790135529757030806001027186770442962875199950620624447768195089134127160292497292254460462736858089781182434090272504534381477453952281030916753977193730808283377877233505881541617787244344340468141981905488762456735422831801651183327068437004181807418475166788270909207587998405070951850235291987834496598710272159110289743700575517648295249997758316259299964682800737029506689443436425270610255186420942789032293696612960093486240530358811922812932370316155068108391539049322335814564354136017543451116191002120743906198561070631073252573491249823197314799250274053414804360260219179705832978005140017704822870140428917130805888931567870224420695467914063391141731395587453462919175015897932208281750709027170615250604245631216198277110757263708772006225879227795768578485277213386035967425114790289002303767534339227769665031449986973829353573408606906626726297106722270161910905765469193182466172106582115056117524272892407471446546216055053766770705179860789031001068267064630239035747415377741230522331380512308409165240185107637521087786288666744291479933479047564805646885293683480079162144625020889079681259194108960670137070360631628965332580865243183194105117766081678523996595555634788169855659187420190389086497442502913119613596939652214697327020607093303295406951603461137927989756448531819904541216046869380712176414393188575195227515222132283560738471815328728337176123579773219699190041462789510738066348765693461323187556570683754881344780368503160479092952485254512648288487665107793920873561355854720118786354424893639843250134786203229440776841247038958115440733137117769332497862384175898446328465936018935696896525319736486225157928417414755485682800073975488670668209893333027253737728626942601785569755500531303033732491490684421543842322815924909115383273159930770879418067366334353848140953616708545483904454198731050281390509679046281994026470143185880922978211522350451320680447869427256320259985061936176012932527976505715888339432571610944542862116065956554422378968424252444042077903951077149682789433176288117427252815236278532516461404786368763824133732150833417850662877710870936939523997466750541706768172917081706900050525475063754919571858006210937073305390520957030612551891744381528731134502874148310242934868659844058786801062303694101468938432297858497322867394239441232183469243286315202528269783630983408175148844308480479474115085119579916298497442298058339605708497941818508773410156772174987109277904196516066259774010429953972397922152638871182924213895133347475930992730542190761495728239584180052797547245843237109368149536235783736769063109129202382515654750334691232734507238865135356046628667285657268952798585320545152446096935850121202538318375697758472846852288661717025055398159046842255569288475181689321496103916864466715563419860911200780339873777030851936636345922613684959690082108348902733473030445185888179437921442126954490904278757186555951764638418958590725078451321847127974084366586254682821174248856266637402537160922484811292965612573754300702417307690083249197202877858382807609683716331066455362718851377228476363201566411896017467293817796790183823023201207275406473046643006193570380285712994527744025577518747944181691476937862853567559121095552048389809961817384789814551966767496209571390747806496420323644222278206409093495807040491536726823976621845260661502208627212171302756243355122639781176749260654576521879896179824517002629232797611136687354421142729036958557381672931883356143748736569351247400070876916745579456389037161212307849839715590971564486884712262977284503924605220647875183020052458947155740028259524506191441448577815331127883985074339606167108832580016535658208093731050263126511680713542217084248559875452037199905119791557375042638662954939001181612603528953640130268183842485469557733250595936453590767150670861870518068360325359969014926539498356002763822353788998430526326976373269789242508874461338076534559365199683494823169911012972000992304892528889852569249428665795752318577097700346540244188667936398982395107472651168599352523620087470439779875714523616075101012834573760422755190956022151856441865981426126166676335890637757414572741822776746894848967804683262362053000219917860043877908764418364364104767878037709676276361333261171669735997787475146448275054437042751741630473579869677559635300064426995656592023144811101652187608359363099001824088793435888414323183456037257593077318591913589930133722682014733489645599325535407593895414757284990851832923486725425136609386872747811479277983737167019900452883151830463738214646274876533618324798436621902954115578903587436705072752717654194504188472695935528291018074563080079189478076612250861231625358664785383417525409606479032595210156517530466886895042169540376742995099904134544160680263854575038375663971263056395980959556518628097697440923065692114051484815345925469049751359426848552884419483267119143236754546972904258875595311569976436933461891334206279552275493538836887847031605326855214489486659099593055377386920436234884645262330890984191763297178098032789141480145774228493012390882506010916634441547284108806940880755103833114651020431302088180768635922410463292810300361293232980024174823352332861275978415055170603802708917707337556175906419296204830432725439316495354962276507986122199847283303118429823588014166341449763192088291990219772757142046432245650646970789957824661441414726412287911561127601669308116491049861873408955637464026512824988136555945645230953274868269035161871549430263376334224650627130944761671223091695123226334585911501217785897070534507981960717095405688939522667786386176758474260381293026616686941036363505383422685394672927557914768083601571839207419650025437406667716082468363465559623369066168923714398820570301267810391614547932984009332689859711389284428061443891411837260282881326387013088556993789270281600447164574700707303909575361720668561238998830465140069511409834885240852539736327350043653018833549150982678129967652672123406081783115922581557266026558078382246013844148501451896895004289980950619177049028294717454353384797857566062375951829118630919510021044722567800360144852392478708189616735777317920461847941870134187831647004484711878737920423040333024269056148871217755309801772957362754060927795968786374544678649745196670111200308219901846054859552035462801204919149802901852323867728174184988978673784253852739830783310037776402265974304606098091375969610724202639210445470581720215220987942928437108897619923920938212595880880742474851488036466578088050771494890132131678904657544926475734191696354299370856073276016755882335757175971425044127238792683118264114477409694540216671633863022723777648113965567443363388200032405463934368397193076452820764852047000175634466388976037306602163185661038605724446640043211141197041618202665014750262420861200501094623940261150415840680690579134337123187474979554929401456806841772569136411016993247183700861532757797917809913846437102880472195888137543791396340754271644319068375134471609552230780348489841379124243957200198866542571243244212940887432414376196553315893839172462980788152309775172299628494632048362346988200125331876574939270841295839528242850143663405218383896389444914848710906917292550819515207951533007434118590042022650547791502988175988729483591450816787802504504097579102268254908151916374415291349360521869965993385091855250512945258340233112367273221121993614361882661902295320774647739314203682611989519735376024342169525892035419754504265912723135696554334846110859011072115913696954595045998255937153577569326457532798245166848119699371609759428742646838080716230139535795443285735918032422282848046098515653134168265228152657584252603932666527267855923900777474218029511329045697284210677405175426452109486311309569907932139120118495374845632196860067921405906219971339607882586003513867918843736522582840593841215027695699230801607815472590961579062999431255717791440964872963554033287671338784912556205602492650097737882461999097521678921865266794118444626601924118700028417076782201648559773492021069203485992645259472095842830676863715461887246786108799970935647910442132705295709211933347997192143274147000028403049524765658253959743251813044490839213193958045343749692156617033407773288307293357606064159272431157044580250587657690466396519612869581037675621382257315851903299728637997812785913205082114171613913332374319786432698315927386291880455707526342437019137547334232758555810918459538111872403188272168029888077042626225343536123075198214176404297726304198899613892879321530380872832783379707144793273820556771839548051583817774990591730634286212024363399055371336725004619184455964045666202364854991348352580884919829634111231660116859667382523288560002071024133484731867829873289127461811096546778994382273417855314438412376419944561073140276676791713827853580608070725598839446028788942971776846292493861263015875514271423306411606133697723996524805501625141178425982727552873772978324901051574915052628819855981578445809698331751893292864402075851936147058248752885156832819273363786735925954294310997580467953235743526278321492718889953538323607261592967607090186264781305139468490360925947899124303374613638675068896816409960429179170986713956737673425150141014765402636785819556357401630972766576189819024487251030764117691629500680377492128569841549112611937971336889028600789851910567633691749815209218474147827762198746941810928123432528029938783023864222914639684451135240391493556528288484337149487053694842853120260044547477449897265075776311183607951167844776445075164418289525760581871515160375922302629403426026538086359303508725362929977529646496665905068346871042043170109409536490755499839225522456499082558584436317541590714950231987818274065618632097147475246978565396729210591555353635047792513228693328785753165991702184582070011031387560070746970852483638063530898878379777157610166038235855297407225630364579005106013484950571872365587572886293861616457990871304732517014677201530232002901018877118974658828517163113992902108002689997850283432129179480103111925218933435410130679642551755583513481588148367290566740964760351445321376086722901085036592982489010182931473360091673513272066264826651021568404013586090195427935143384151056345441182833387708759494925087353586367994265810575486832867951382163473465424688481500586123550047501734596123434867333811184191313707489175147101026701612477713707230759945909108177791791757095993936823944078361256442834930390049330189837829027325005336568006561838668220205295253736531534338204128532780449345054179981729603780223993096474263362487468295492085538305735817891212026849424710916535008019671964220074254829723242201761766844922547342313883330128596932905752196651267586901910194924708512069577082532451634802923198346538597654023198669574505232482626270482395274817380219052816675538082515002201879141968136932644591718249916337596119912429122635523962853164720425641107420950569263342460359158749632211487212000113941866917370696132623496694183271641711990000875284728737416800534272126906486921224040454813571897360718108669759344307563893319604709485698623928611220045830203616287739542179270789391545569381431970401430965144632874213534125253878242996902341534217059164771058402894729888221504897494679936546404765733579069130511668628814174128613362666602607943914445846624150162818142337328464855151604311913011695422460794262472951840836276944832241514146303010511043027185845498673178808329444621228546699846619776081956608445135209006903420432086050139266613802666328550057748281572453801671464430702389085746008126494387710081024589911748012927004264756795622408213518443790088033780998146064326622058594609955205243321441404909020973566531888089776908419489027553203027850459071971527638006612411559034723846981926014348689641911225099251385850002164997977549733117079971062415609795027793723347892614795238178984721603231328832617920091691619272671933343242137846901266006724364486034159357325398402339322403444525633837932942777907066050740498324676478596000986417893008172199787661421080795913653969522902640512933556254751818936685666789800289491665796464579530288298312505589056078030464235814397638553228922091797175520068344611906592770750131940527189985551545780549454070823310482974910748738218521759530263739229808032473314935162223323020409114707091037061760476972999229923723193675832035617853435374830684561404692382659575939396601459441613356682016558569324663319948986877550762126325063359705908397520961713667240803695440505167076009236418435547279189070575507387799304251197449200560641899590826534025777365065092334798225468472291765251473860852991902298136314014399841817054882933397799540959606795494193213971835362573098521231748591820986659247621246740952629621705561255927138991787384265528373623794300224991880005325393066291963958738084516766960796430759120663283063760151753250836692224982856512903152198475969416578185448650257186423102258594838301432903488629743936854032344208493135403460229651159470040424635326108262376178431685773763325880014918140407683293234236069103811749849604268088662012029554364702202391883262895570999091932533609409415737882139800436991837127097834419274321014251929925567126283935648021134472994534862335806254703965791467184341951799062059879872123512258078549338388607589255896552514278185764441860585763547927999130940129476952825867336187791292985469621285460291814139992986106218019181124580536044179855613664926549965502050862976145386220353407300895888589279160051025256840516623353803533661968963901761557244929755932537922762092203554148622238171530613521561428032887169511955880503376702561453723408643944330793685232710916172345962786800715465564764730008850383153790009354526877165596007962502131543137424732315698421436085843655154655785549448856286991222169299095470167945304535016005847649699725279438935885977128995605498658466520225073133179069240007739299553775186942124277405119337842147544702445891715590321986990480042482916319479453860019860501746518473707526217793983266879160971049678064783260296580846074249564996572137657815787229232532302841394028961424880087048852741948260231370691713395994955133251440970227228421094132378320481257651216181072644078719880586820999762240644000623129642556159961185752862239527222146478733443172223258558820198168452346765764810787745486692084454123386428220672408344588942959443119570625287824032323034651994066307957334968183061267102885655683469720889704586260399453416532710552065563559032300840433891518540144786263090089734713170664887197644083046222273554902869050577340623859604106927943447898085824496992767047816139200187952404449979413592869171989589791618792517596811884292074240963413341397429077619163024736679066727052215893233200142341243403228463166882531580357523148217426879467593095931721227040930639224852930602187166183878103835666206303695224239812626165457422473715755269785679666897869629195420518825661410132169751901094586229712969948444433990333956977842600946326789923575400601335791658931259902888254368990472648213500483960548832076608538247284946858911741980235445656663842718298074450982959957218003497276907426832888338669161105132004130677479846663638283220467431364556103258782180953783237122196804890664425333818701268859652870329634512411442088555389274305424363813218238166669077852618299271245306465788869875914041160708660624672213623708534412117544916086616735181305288834083834661203334539589934341440374817878513249955668544850340302225054836694774893306094351509388368562757641101429249802712092935553636214892545041872285882806486806601691885283249701660611753574447486213976603094784952340065661581620827283519546206881615695321878412982488044514743480510340211748926325753530109788592531691317134822400734176662153083227467463889562645511512955338004390824553271402027955519360012797398795534161373640903851494120582897569900792021793769510001984992672794200837598389256054838181503098649872629187967966789642770225612037350573290497428281297499513615748580868954183549985831723892762621056470799071714829608954136220271004323703771755362202430011140558245454158841713038543095766815213511202015261546639389181479453739470903746348355055585044383967417578267250120159294333929089850970363590846021560545919653042962773028897506689153411777249296502456752885031874566896894749471674323853529599987275722709014910179326055005188686897181129869177589129635107812234539764644660864813282371660300705727883891375364943601915604655676405376419441085878597063762335903245779705179437833097234552061026051292759691947759749939447271504198778872395329839734373972886643203027615289350437933971665985443434236094128250726653297865862822147814567093366002690810542112458577793198797602347730109711835188739988071657486222791917030948252422030915047551455894611958284479218296773766761792158387820619731923819666731156679068777456153793425920357004511369804722809836132541625508143831564444871891818770751861423579721399414116477584690609730370980745976378096369063755790108471871558538007068929710362672818397770614699997077051137936169020705040887626047443776518961209438610427702846176986270352295355888066569297669438919012167727591087752640480488580766386479190735586262482227655359050171397285410378905296543023447422192262498770412790558338908574504079367025326762554581059200044971267557364865570508248533634952634390297549547147755234127647801121403253216999975378405053168826447809636921137163853725395889385048796477509415837916009192784416343999452735803553500437611447425438219504195028413306808694970148342076084459735968702440087485896894165580033270746542796844265762801269527943093815137409873231651507943786354572642954512721245609955751271199593656618896502893705129000936691078985680183872442438943546523621122047756893920659948231726318396927368262517157583602972596308408309995791879442136681215225804539440525032067219203065316886611345291628821065041109616833521605132675508803367668179372466533990026686130302994360547715335890179467573868509549617368702778855925013689895598030871588979409129709439208158089894304934456177758772712535662887795525761248521726114877694855642080648182735212798238012409076115517023793378502975124117485701676987316055063070336532999413859492304584868327780429253430293726494964345629529064422939775618695888474556359442261727213022261484771727276990160559108671710855744240240746560250389879374849006555298452954523022005715115033277186815580959386690030714182718825655910719240045769460254189740924331215771747713964337315324670410539067068215113595547057607827617824448621218799560904394585736782961398249162540821063279648181735888133014911888689759927310778574983188442494847786329852593962670322000805169106448171953050435819236983896773849460645396562421668611796878231237683464134509640648194360845435636151945971222245904820129817217600914790264478656476230967123691986640282485915358561163880682587813943170646946548117986117842394906008814102083146974827956262973439643877453153157317894361438895703785183782939156129120507835910773746251228017923806866077489464681460550987479026707673209608356573392121804409424276814482608745548800218351139368469718838393539229518896122408838530719896863894046957744749590583157075815820294483950931808767388656139621844900644634652694782683276506008623989565363269397864120909874270094049585641444461145930217109707150396518785015583147489537952990550798771024932415725639396646759277761684881694911602187661025732413395357418962169639911503460704949835598458145710697419160717209508465085014257584078465610025629180467056396762268225117746603438744409373508376793695091888263150780831292757964492151929163421439657664216495254320337918354765134822226588175947907470369329177263800226034458536335383773556151311628425464389508274384307285371878749736412819733203339572873807570998193066979531932636702510643421104885544887891751937548359036354550036896090953944310088629002601616787619260228047257341219694453222961858926043416082033585243270116740503300880853402941102168892750823738085561010066954507904039078377529318208206380333011166346800571698223413050496026073609425934834765396947047382121071010037394930244207750426289597553897576608490234968364237851586306137444946805548267274001289367522706621944000214891901830065651943816889759758272998503551385885471190564447668192286059213704526899324084346789532542243866789319451697855871098735739705808857795150980899046125247597380141917683983181935612544141001745737471358193033391141317669070560299729111329741639846619822643798850320113980689907174303781656723774980933700490089660261543040573958720227706448735560865737800341024246589420114181046884424905545831877546485051635969980601121100657303870081452938873416835537909015509942866610471370946991551215252216270073648560953242592037639059873956259658097520120566641047605715252675159222848663560935704906291678042230703543091512228505473391695113213951993034259507741675102030544744059347329939871917192322561524069750718228630051293525047618657990200383473467827544384237033814234196179870538585612985134899180847723107441748446483281454799085908993678915303616805849760673240324038665711207445009494317598179563702999148398466225720487506654900568530585550680862958242988762407420802164718837807801815588673025550463873334020900247138560567541010423506639009462923397531571479545174182274302381484937421348841007230792877667810940873007156854191670507375537487697543783988172216271830150147067273092746993788519223018977138154712213168463878138826387845931087145016116004267686029785072049116389336229445512114908883347563744560513514123473309780318821090380114115558197779432294002679003101198660231975419780821641226455421893932700525425979580809136587513483441976388332770552956639105871981777673176774092600430912372698782038364755875643420726071301401147704425320596770244489273542776055997130557263946978945097655517395595915540831461778289549838028359588001624701212914821996636260780017558499617648933874186300648424797033058917298788332192451342914423133590253229960792065753179829164947875048301168654684577798270085462692210155980476958773420417329661819929984661846296901950232163229970561824723073808869423185808396247968243022499731518212119123792976813698945448940802729975537732644564177247830226665630806925181717983341109335956182772418972282965410435207710988388782753054999160474035175470591338351199475473243014071803739180457156968239085404917736376209151574161012631553071747639230132890566751951607509735453368522227974649383811676520574140636884351180641149721062769670495350942921434643464267647217032039807588119523673144319915273490040802751256941782078057163002438382110846844701956759307717269201286524147356844649250889880346518911618622459344213863062891331366743340978962347771939775066521546925714659843425928007769477182975765429486892376806553443472552052195488107274409203750789212789828240635547976877245065234005324619687540835544288943575099989735425123905827304830137522914962675326501893871978231888002162679289117675922619108214180948299212191320341808543248668663423658850240830898437431342251071215387280693471379163577744916729279373532926479184517375901711769748544484787111417936998212493603565694260356521499501074739915385486124936719867928383726509524209619656430019876394976018905928018865331980340761325771290933920035446438071012639485497576040542404756516439838145063548953103686030287598091842830315607464725725792179791501969886648860862842880956825569792694245613849050129726756478445665670007915173529691354992511116431342140347549691009947007806391394581645602032155907716252026461695002808485460109956653329000618373890483413297674697275526613523185347235817284798227565909533883882701248118931948805997262812302170354965433103991716138885303412338310747224881169341364128095887411010297038970005043883261388946407732004881397461568426562102634768160963413450007314585237402805728653843027832033514629057248182279621589981579591215948231853266266554008664257325118263612340053234540198028488324333443852710385583265422885633538887469042870475763659492856822884958537610459011149091633458042516300319732961510559476884545514178683450083056441115167406724320835601649590069437034188587826236918044321970442932546918214874091175187945717182161105170993171347106055797716612726630147651482692470191113055416770031624002887336349716680858820306301374292717697422492728784626988319793207335990650758694907086281265359184268596495943486067802007585597757624600144457756959019349482440593068650599917912288186670118556993550753659878909456742516847428872853264872395501944258201797015517471820734277516386078447231144561943164073660294329862877295463050288025303584012144675974459999573139794266119062608077444539458319576494596950568683295620554079370127185169444951352208350073142434301898378131538431770985467460216366737078139289890253564569754968353576904056794685489310732134709675260234585576261744358831374387263922218105687963090009805662411174456032182603003105451380318623669034794556630302044076852368577960233879552607695639864055450075876350179326453187667097557870728596595808601618589542629555159054488871189225668953499889783330046626267562582181662969400727368553928430199256473567686508860321850547124925974115268136254195093304249095719744951058962317261589029654748420715932241476538275838487277330555036470513117177182756736386653099345593157979639099636173613123797287399211587436559394172117100174030833725493200804639440171171884913477987172015686293514840769118954564350891940833184978223552631205496335048421596156768433506740329207174391842847013095125126022219576584607236349957268848765560852741556886492100674591303463121491940667922298015744340097190101719564425526423074205607619490729855267257137162804173310432748160968545317269174421275456061127875781907649203483060364893012731636961498807557713219372824357389291134205656238313421278171444948222177282605476897994431684564454992120844467414128111814090691518849221312452952065926021362372100390729535578649184270858977364227861113353601948085736955028801365076969277616814737034223469828352840191512536716406179204735132569987929254355773169972683431681865332870939619327060336161447832933718971374598772433377961624095067058010207118661086256320226402701504619950500914309685261224832216782436035510720946346773347254371169004893465532234421969551592864235534005299124048765828310074822151774718102331759510467954116846348758247466975197379818190782883735265083037137316437404252999586690397545184023497899884921077251495071152051625218352930637179362978407707251903856597592447925412394654704334140533850847618514008250172359745646690667212958538943583003266442087069188308755147081148389040984372975272797903860707351548628876304042549326980689633058140368426782005359749566925258804344878532900574663136119838015413481947842087769270732842549559570676390768019897090190904429758561145991555038476087087803348743070303662537780535897027181729924053432427147955450987718807565884002714088203933843448796166762926271271593725073943139874393997338213373777022117219641916323113319411819122078400809439070063247095610859292700813697283055028549121824259499653620860559982703324845593308231830642585092933568902793285008592901419840766195121877608036559073917682147250746282056883584089903649773124993296787719631777422801482014759273163125136841590608795813632930437953694256240788540398795487881185446588841155992746634964688536320826051264174678887796259499300194131013382061216134915588326278160074348759064810926755876426973522405089210356714747803026320612152086020356719207269640774138699936119210803738088106708561763760744018042493582127938189428012899251961609298998837735060069697861808614549330175529898704224643175976779873823480591701405345140618533688416329913932272879094037956775909081085635459978812737304030291759325301541234274934747030974461222484825638250531395316890981546468247609049997326005939564757753670356305768724562627730795666869246548377175805308314965885346010310092128442169051761006886082876005133671165101352791690588092161234185582910258425448401172912365895222972493755840330518141527071672758929652169040157921689667252399654346047178673852451505333751938277727415210448320009338898894233653660547959455855139151090787506256192083215616224353727077194715110239748550365800257783977945754072682037970690231628286020929072512784185623127935213181125968038220895394847566143897315217681145999347538247166312161643822811713662001948330223508415023498851007333474129205437983156330472844720363377059596306893814681214457671319235621686598337801619554729880604800306057800053568062423066566908065008863347137314086099332530122669065567740677401280660152796990387165725936903166713274388725927113791074089324724308175356193783328888253595549613934809763963772218798548521748676526970831001209638574054698489977901684441074399047235020974840099024198931481968591168396853639757263137335088542410532280315242311471139154806570984671936399608972594847423531758902779813997692551439784531186310791811074892904258398363116953869403970974939232617401620185881135288345900693458011201668624283439152350836860393442351173150724662607906961602443435594730293654504808468133363668196323923447245086345621803201632097528667327426259015787064458382944458401034073296005421318889645556295174908864688476969719658244936583433036771097346833976319460355670486769547574172162519537795443087406613832138309075463499861953192220135956355065156921327816306144031621761168016042464094318960250362583736528660850493790713958531091626819753874572154991591843954701358343708118605236130785913311827217436255113902319677387665847059669304241918707793020369704003519300466137125274985257730063614569722813658451173127105334512211075054846293554988740073682788401989672434488909116366633328764495005759212300376114289216642089742782479443514535232698335588823714308551500963458850969764338098706210730783944849224995604702093021435118657902901359460559366971609957404296368247954961281843412119238621295416299189690949556764512069447437928723608707397624907870510501532683498328940003260789697527136764535090132211614444677231212745996276933778739353467538922798454416356743180030816928721960450883012736841703811413261210984256230885151663193800740072231168219626541138334595478511343816794864406385828524276638602834942929469245754057515002493631672405016530396818818221417274094524926258064101108395727692187608515810529116523540388833159288047305409568981756786465525968772811749614249021605985100553776274085043808856227907304285984569271934565881405211850785046835980732493310677794826614802237786555061527271830504195672595108724378149632399920446127179932456829980428656195635472758743786360255273290474354381717731579417078433774387741273236011681217711473854298033660638427333462928312356651015804343371427462983808776189336186789213156224500545412883741252099463373987679054755671135496341168308230361209705819012439991387073582046976866310599432170968248182754855598664304292754999312857316275693814277644082974161092084332169368048411529615160424591374329817471008175951983176610979552562531533906549416571992725524022812477049734371804021257087289906311917617317912567119721826676597247744548038128510531583533830982104480111143146615818552924296213646274090945731272644013534357595525446118283078327351231053844135013279187971607532193768929673283383946706303870172412148923393099171717610464609454209548153274238753183038513811410536739355556527373872681779090504027037653470288735436085537727337162616683841439321122003203074639580565217992537720721099649282267769528377078269637294186384852650714131581240563297749425855765254999847597367917104394806723310010173409770264177238659178941322225866998534934015966860986503369253847022095012583500187915467801094269319870946485002229899718502854796332436074610879036524849511432268801423025675304430196651580806345470470883429730185421350155546566216302083119513900511353183676265484106561307233022673784654389790069719684208219395650836227480339323626381984293637566529054386466437544584211857166980160591652490477909439656699436362617458410257635536695710964468324857192189951136377068214953337988745018964699735519206648330375920046810126516208872056986189890488653244028667964515191639178803439398511443986644491156937998893073552703251551457167789838283198052891369959893534222617349148372063622570739169955566686809994534432164646482745920190030367888340409246656900652103112081482487191999297037404001646574427111106651850225112675102696497021907270647748594922818313098023123810356837773238281431903138592352058447454688125558408172025534766839136102650433525465557592758987293202826021303483657370083884235383546737123962812242674799574333018733178722130152932484078952650100354108222491321789603026709392947178273763487919186717083886099361180375548592811372734990313885170482397710990866754018165672610178679599705643305283202601472835112166714946244913201236919811714245514186861790009258103834575611103768942458490504262042510879036840409281746213474955756830441302547237233924098265789905528708088868590564430747663242098602771985811727018343426260525290830704574849595183486624429389297184060763809739852201453987027745886326105023104367370546334434084338945871078036251118674737437340463501467067163957384289450897412410993796803985942628676463273816860863416571975167237024505107491334584402863942226022964209325484782397417159965352540582581025759697852107155114147151854250550105048536403127928232015646403258079167498386476754703181822615714381432294565433683471041649704071178784698130058097259137954815812854057555930684985230265519406046510607188568966539979977795388691642130581018060375166259897541977187433739003441436420664795156333854843931967043144642685203640994738358918549634619955199833582994605612052964745344400917029470746660225920425057898034426591404311853672043551483910670939216710861649482483299817587079112112862707373790780919136615364330101580121385897681985521870199571203539528670597711602888255560670370610068213024431684500505121203306029010929419436153034610840832190799888890226291021173584904344188233189990659108889564023633616106122490063691706741613439891878084668438297858800005241286311782421236736537792451976876357960835066838881575088108851718535610103937750070939008688137557684990532952407820456457953045640191788014386704241403311005876575854067012499516328375136212542752405464343394614854298272392820335359796562114066813453319189373512128525744447892352818670826486915213249394278588366348593365837117979146321321924708283770242662601418849626156941778132327897477051616865007128265027818716060174668841765819126938298071008708032531343131444709699418622355695184111599007238671996425266746866942280926693702955794075905107836867415784830046024346354249904234594865036537924654997041404971239671068924325630745184713444633458637463369539708237681533375828090863176961524943927223560119994969424049361392378425709635175572709124903888177752348991136628275001353075690587676589435755283091221646406095627693456686260364737021268507324167159695808847229371529276732299566038982023078715720267239844966808288273317270421719788200825487840225127652209185565339365409908361596535999213029155188048467942163848298431852244187933126765079475357002337598802909877792149090917807905934066863052973353729364197158716534020556014255528579113802042461524055153879357024785336367318478969562945689930795063474207105232114964305275588284930684953992161750219514222801446931078484339797702263386907442975863042729884706284824756644946951429321301842749566301168564851179029041352716261380377771394111070110386310877945834792844660973439669299396485474043697602064797935071943863337659739089787647757854980832198969994089613888270179676437924650502295409820914831314051282971871864901222982682796305129671264470659466212563936492929677749738941656019139964816817934785013244898337840702799999529745302806261136678215173664153047999721072304871115628704152147627165754654174764132990829560451064353406659045758587018784887805695121130574157983821515107588708644448482762927591898453505622438666443183149982136963481234434450036176624804888791744560960182918234218024805088040357901140034570170229370985268912260989465481419218412663699413658362966972880376707448100215802310874892789104372841052598406800158898245966605293742886322127726097492693337427497274719272323747890281638480965627768741868165972888438445488869786546404938634908584362826113885974520409408598983566451202513846164257188438190981987377295340401838357789145654907731383435022054168032638442157288077567784474921306612899927076433155328893443739080969675395111665680669023904044328123444961537835174919009423947875386958301976511705729974010025420398901911869105820876345529930849027213544909444840288171764136912213240689911950830395589582814777129630857503845242798502205253114365359759098174313401860576572269818828282049961848642951146655286597282011078134791638873556821317418113933225422424571476024983966760803312864140856948061293297507204541181427404736889587758712783478041804352739605729616094587721730428008535838584166930976477991451097680039461212332496821029588540471107702360777697635173588675988961663885394650974292500829151594210314511551437114785154364847916752505625952308424911216826751053603505634349369174732913052898559957852778167265850222566721526050522633235497031052151515314776528338024840211723406642975807119377652601827725487431827950903535609605671663457696937735872989650154829942655428193959334350851646745909117937706888125826653194375517742302967988741773308996595805747030228077195658872119351434442585639826770145627090345625186891038911216094333415478132245710186310910171064693370015181149404161590493181808508889564863692031184579139993639115443733666625881117552083564914277942973615253678847421197360823067719252436572332958675664529044235313889397083168973714683818828826713283087627333397429706686608649145296040705524955247766964950779441338685882087552337409644212077953214722701400721429349712625543515881232476043676090450278918534285815296470450817573140280300262018259517864005590822285009792018533430790902848385336841790115033941173660287003615700306578415193181507781363250990455524131710278729916951940851179949390705326658183334188522680208836103372758587218585662425608837867217205015329844001125160894485230229717217621244110612257285251738880148830503910012592269007832825507686701600904284485607502300586601611836981182377747053060492776020056448871221880244827032870465068321187959779199163369247022575381116378742864136497818398988009852414966304080663910108112146511581900371443250261481278290947318472491113809033546167856288527740967646516768232717912873833589700077989525545172806784536060412160022743549724271669781951193429553294080137204462233419365354947822324998566840326795661261000155158792762477593935776474838614073948710321386106128996687403816807975899948227053616896776562594692795791422572348360143767359926481627042812659230782599715463085749101281468065775395332619739439025248207342766581765088397268062438688829898936454672204543292684252770273042013618996858854152650416213998061414647039323643676637616996548032300879707144932563328987674582624994806337011449305286728414538958118993897988097635262588239496169198906278790237164611931023534618907913523901590215699292244453323988764221168602942553160354539831739809281169466648686598295898569382740108464874402491341551131887051851960760649345756467620420683747116582575521082755222525583764197710300692861849374766175443761608464759939630705946535602608000007365172860552365562981353239557766418344152678645753728221352221311996314336365585750354497694290261896969256408789126392551988725190582821015285893769386203269297798696110134926418578856687904683800331238160316445365491298039009745800187117687829606172837716265783797964853901832240807236480319341838037994930092254419849904087752083544978791530961419368621539558454073659083846843118527527157857623143225072045234793817106976905634932162129966632035406097096784010142051396815609202666048402875683636387182068219433256805780438369204525012999559495397614813657060006797089776726786640648214037434503476982827452336895443717182915114315707539224118880490658119080465634852315108026210417451400577890045832759184891329271863688463555035266615777558427024224306968062540811577922887311357309788178129836945256868626719805681400239491897219764720942436759175206929511998408743018273521260350242303943291623500431392075619191898908642719498823722028659442752852485952774776911331822623184921250501673391830138255997282288144797413602914664397407042784275764940752075175825509314127225512456429149972187268709082951003769773173921200684532185380250955141887323738665499430349950253837595255944202062456111910433965643503461054389427653113415295141781033829745881581349304550072373403957074163487496081670649468913693714645998775937057179571812539002129147400817741208152049947215591264589271609867376797963977444536226462780268045530979281022286018914228846065203551202918320461067922024492319438319425983512043577796827385572754777980056786864093248230229770313958344169975627864920361527073159399147926585921067088184225185933511762600395396902777848152041611504623352007086343403820569198471992655478754876058433053506373373259254140522566640585164281127677594176938054424022638527694452831889384291398260418919264477790338281282563629045427551747631421588481623280689864673504090928282148916039693546923849504179300446088247574724010028607080683374330287087008881134715358414699796405745842598327752961946487322931687945772580218454670307587122214679940311092229943128705249629502015521628255984443001161571834898196302307725964336158312008762877367394806262090138498763368131346162299023501595851835598938630329066426127152764032656782618284262449141334038433671916699147720995095282427858266948247176171526110361795823433423784809566832821857209596477361671224944599320222009322443433204983567902280665192766448643295360340737596012375449116766758954862957529937891683445932711888951355474194166795050885436773312175959618529539849574130564190683967168494593054416550076878546352004548653477282640323899964482000040161519941101690303079559302145479124482481288972591745457257943441748313912669024479076079727467833891200829007189493120452961019456018561578685619214826801719009469677819856774924750670408430801633696334050610700490064657013328601552608189652817385852634563590185881153612348360764948077286655486385461540266235038389556117419963077812677078407224019856155024696242120187709850439649201674966583792091377569655696839994930136275081377663099467860157046845745479008725516190646657065157604531591218333671857239238464235334735517435737921588951120784838801950781671549452934970864936428559985273042176708711638812528761428124203836627867091146390726684536820057731124039696911267341147524199454618768496685302436742830073696985726826326862175890706917088509363410512075139038359795628606691194206646414668013091085983541216186933164710291356349972480237437498697793844013111909733691003922135546427269029940057770340356962478806803452550529504041019162537883877957930408727012153826864181079962928905301839805574953992194561827475978662859391237403215604785073051147311966290169092823095871710937577415618396648010848462525074167853272804616854292556389869236721640491218486744242318274546686649348078601887395289053450363456266333530986566961840352350291814099134158958507127797248737698915921325703214544630294965531595341893122316760883602414971932443289580204309430572075542700244046250008939040157506515597556718341815008475745845593989044417312317175268541786659337592789984377385182438544343295079870259095016279111247355801883726583894956226241370852748514684478055026764422747775638791221950426849341255768169844027666781179285721232231467938876340771830628846875639004249356721900348959746523274603001085334656284053575094862320843748181572647269378383924159622883239613766867901699105133873690359362737065075880684851508017408285147399741263130682098554815209630448098794812091129938934380550209181492375139588555442934014922580815887319659734028432264689678723775074271743571248971234345329696845262113996997876220042425529613441626883107564067899870472719820581752182112779961773884873459501758132454046295923719396240719961593930980127721185824271390729124977022949250476945959032849918616829418254994202040484222511521961637859723957822286536950673762844853295041357222673881817390362539179563317670212110076390629949788228317013062843610367208244443900756002515850663686292013919368944027965092174248059553481961127683482237759236735291314840620745941054407681158452960173736334532303082913850045527861999686858928571703803289121412565357888057537670072910850466185455330514485697357694496364442461272024758859164196683408602096736204536011049177483226932361080404486985554243183404387826144213922633736887294254465930151946925322439218576416073510572551737991127805670454886938227585146083537263471433253102893784206290950702245314315211781139981092625891933421373766822173477398710279626266244869961199546486679581101911136921785833627907013588935186729652799313474208291622398077970682848561706738662840607985282796952850755915815105017000003701146078493140619162904420545737473309366213706679409243037092931801818677922251871802523079335487211990639698756557228285666131161099276054905610200735527273022583810388252077577418018598619534447539818965092614043781229903707017855129130431643347185147446538341133510677028514916023452379139406555592352035297467515036499250140549759332009660283902228981243236419741125590354523245064147279640337086929876522094579383457333010528867557198178692259436480071165685833123025674384296586886071808803569264293899480462005186493371313245269941142836936207471291368247280897085894543130162218640228767575864056385300062413377534952251179909455631593876043825830404445587828195833436895821394328445386933609709974895850596312012425863404478838336405992598064847099111017664513386411292658331837847553009288441964223095150498312987645763440068877389195784066169593132171557175772184950582113888500619524477216898653879447003680464309880305263440992543600519794122589333083496957246598979323327506030856769813412768575063592476148836411910267811220275186401227490828496864451284228868301247999098250699887509972534688754400279426157740827358033016925943301761938913552006254153244028984811724426858275945831211601237436924104985426380904208643615281600629276943109007380723272209476840660769822084280919180282282548798898054684240432187513052686378739978082171022143778674093794006926644771965181369377778462161693066939042099764475364799878408954577443338794743402977665866067040263332886270464992878583259796006422679068423004546334113327669326536485924809091951518812189761413299973091198952172632214918780122283623211426370372382642674857523384145130449964488477463124546177781039322224826222185272813543889440701271423348827893592763974945039263105392521177619466822919938679398124475986307213664791974686842967613782623438659398075504204385718464726019563898629253085555290691237659849899850892800266935855546951748057676906063347302760680797826823731764034622221837973056352827984908792991809006572627256944182252795865733849287796117139070241769320133175269036806673239261940930630203469796538692846583009830613873227602601449687588367179378937460236595758375256648231349360924778915138190766448658049861151545771292881486616458539042099725123934945566369563066848921722477309992661441537375987317164730679752603288900802678438427412342522814471914307946073056507792547181255995283132699488121294238479724748218824957919167630632919329305348346671124226004618559850554227946694866138705535077193526795991640453104291945516074781789115837111690888448825738982537354803280442507574415520427036322134880117377302190174048573868469807027187047984247741385087069299019336953602519226092447325811330816260038349571677379634651901111412293177805885147503941998708331008563820289023913168235483957111747532109979406093608111385263002635702301778556655112539021800099475886874635014394089100128864904970149005068632508286975857487480993780302162687709398340044079554067556664895193913436109204732444831315483569753005168269913596778524447109819490091915533627316974782291432281479062409424894057673670893325651495967428031910698332433598134106636066741561895157657701816997039981659877898551669744111716064506340161942595981366378772097151778822511953005880388606346161192924016275538595631189982418614881340543732754722943084009097768829866824349443027646475898260561492790667331709601969354895664405623325860707583555044444529335202307823383146838736731662944718524648420097550738506692719500181154401671210226762010262379704447797175107671827332104707878110850962365506593224976518560359082860943813952465977037635221886635803274028648583547804974442999276878373135568795882334823249135078081976189601018819419536767840570524090551934010449054025716024355069078179081799927324307612114173609497910382447761055574248196219945943059538726526682984666631864872880397153709202737603596399977610426754214372919757728925764932707654506792807918317608158928929076560930023150568115205176142777337602483965032386114075188172939415799573222507719039347545406028977918320359783915393094068553294481078639677821653517678703533570535449730526037899375362694277891170436574976975072559350222559991834858063408741118464845285427724132752119631553835685609923337351963588332344702309344198674606861612217516422685180312801751420058650470851912110723235924985622803483975392674480846476981157538866333383126522807833162555359928542825777441314542830060420380536729636614517527802074977975901987385254773227686730350597306540237521711106391482725980999801946173590595258959783395126455857623788889922097618757408957344440238745471826536148845105300514189424044859355801057979046526065342711008635693076615264299154127330338299181411034778041347398225628712837538160418671942455108595594882029874948412136700793253100051077113567237993965111109639954381393930571201258097353883510726797883649282792881372198482203060975528774183267908870112784839324712737618922169048859303741381740661948438163143130840027734601626720523476446317014690689842953047704336220692663991445447791654157737921384848571112669834182697027774317309116290880292444392909919472485142017659214210258599882312136027446829013416993464889592167026885530874977472864034309445027283914188222818654140187569642908824608976339214068849260688868879378603252728412805466631562057750416245377713021988663321185806173443919490325347839393735273685979326587917018934254674203882570093873739133254546442546945035963029117295993689337208567379365088385018888154009930039091678661720292307741586911613329916370479334627701184334543694263704862093670229579289193804696223142709214729463178204039671529277168761928608047229083011814607256275811466527541497602872034143299348698524528933190582482634369370643807223299630011781571377941987662626081806846418775515797227690745125075328313841974140229245597292791690223945531286503671875270398352326298356140662307544403501790537555347347105341752606289176709017011966965807915848855798025712450033636904166280500309040848522721688907731708023402992708685845068566333015724090569886099648153046165046360167076191498599773057195324556071721476794785276286776183700258582001169955248692311707072877709475986219585298670729050801559968549431273519159702790031673698539506765738225116563241264651534265346726396481548901216964943304628571540021243239187189628061426978168955949767851533636997796762456395054594285837320118025052780373281475971102524746931458000265295072371903621833617806610557923475263539233462598897219422456266936007808916821787798307648026026791430515801770529351017988063448635394729253562163626763163961285263712465365150621597063337012910877626885043758854889250169353023694501341560534469209034246140128868697156493708186350024289097646288406503364017793852140266890866570459856149895811462595150116254170112072127579169810728987846003597954573985409474669016031643896363454526208168757118152868850274091458773364733418457971387709541986226756248203017596058807173699798391341808691578829910408923833048045995397450255084698504142992283969876677121794901405864879986266423457209416940875146223481018155092000760018371459493180322894836378461341369810807591249089974485884149148807686512865035013228497403725551380134800173421028997564475915458773204689908911878734644152191069613348047470381451934058010781562669757902874072742439475273480460548025753313514318540889395273009225443514494408058665535316301745661684331204904517799713739441586661758678670033279104211477381533480126115688229173499376363886287203716085579708122168416228179452124897873485417974476136906379996536807049883735540278634823016569524538458355797469790164514024254113704815664426009572763190193900632316284338099052880988886272850996307939330876832160266817671868628313663903903551497478860314407064519973089977926608815590663736863201748694456615164531389077567119406860399893026488757381557379399366868737671160855076101818060070300752448548735011618429425972246810762375757390409854348761001885687176188747947708796109650126903983665080984170865381760722452082330980994718234907429063401662500701444913338536323149965194061640519513252092225090854925004577565434472834000015550872959000613160078287909316634893630262934501572568097542532333064625361107529535580188846067745743845846312770454552028865322586610271277563681905874637645643302359946694364256507316354011960717686147680423150638291967463048782175407448910226442747327214527529731237105729024662638775843746168248272391244493485888652566426996286235329901988898826706418581796466674081930232480487541099676559757179877160085907182834483852685754460285822130973837042994689188449108002550004601577759819910388829032035148520125702748925814160188627231138111480586076512186328170590343188045892147367656117518653311076441450571147056415780685434591087637431511760667369196198931242897087791595980442769525177225079658548886117573182221568764355191523373955230836115283924866472725424736302420733069250959591275386068050703768428331268765492730324378467466633909919439565290065172246301202449677636116779450490850681609853813719163107199747590910942912043888338823099969151059741470827988159441106039826406900237896470801323987068472781108847787206807933788590756427767808402403034109504753159055062626767075070627970842858223818392963680552715454645120035234845391849396329112676483090674409578643470385159769652103985439296019392928249749746920985624069165437950348960159685343274424514544583404174721974385781582359366084048783818521511664486858167375813092157772882237700258372730866256194447376244779384543003140600779394837271912892271028729325151542368457756048076365536200099705864683106152127589868260148634106661107594056928208251190035389507630873459149433881680395375981060036022025256753112942014710628258448230657337353192953592045187389591724556120687287210394702833100578879507771791988677244931471534190821442745943973109286776747609643508276325985658653666407285266660665002692935148651684820647104237896906165472191842815696480212829640093183616378565003328543391567555561818444645193647546086368106933340686877256436573867385959841816515814136017316966934384892786028733845760929545922636581408015121238411220829560739108923534036427984774491372126716553130077267513918427467364676196616610821391074069238392408455288626339959531267562624438507386811918882318867813680446911408512490704160364360515008060132167078054468734003833346472127305568749807612041053701508505859872826306079411811043415632651421111663066855044170942324163125323443209345036096776090054745105203864010266251510630321582462076587228839779360722076875908632811062405534302415112400704118738434375424732843107448064098119816252959188387444521972723792384967069033876736256218584202273530094067318959634144819211251238039650992063648316275137969906143633630819194370346063516719180796750302458666771079929624496098122828135362598973980777022769551741133966599246322445588705270922531577059195434540405744853859131297906361960943560581844564156187058447168738384873505159361231239151480567841088570952243587301174460742200891701286235964139615875522035312420650441745157115781947319756369500325125545694168818442559885021406324036196777848971414603828083043970737572046347094116831454521403185333065077090918270248496214718268033796078315540271668176237957619083151971324927077954151533498743877034819479137721691979066099921035965034659271341249304931321640351676424668079920701766270192064218324571849370528354691930405495179018956985244712426218172771474831048756230043929267544262099218587254197213625027997176625068802886654272526587239615587216203117879374324037121155938867159255469894985934909668542572420327379833920590533822457386672760304044967964624122702517825108145103257812312035841957866051616370696834441143505488218312251401143935423243779016268085489330098858189386681518515307031583603466859206072380184046569281102226687923268645121384713947285374735040818929556623256758809996485804374522912554761240727133001760776805031172189000172477266244332738163869066986609486113352971620758665067415146219980211488728152671155878253393893327641886458938357669533927776687030471917102325089864333463755293302916427533414307139007998667206403029835210170778733798860156848800424595726696295444529284177017014848317224034957196817133240409320512614689835302074441445274051809385625947496032230741992354982122305025914819903260599117211871936347354386608658919973602642413100163838250495996198295441513345083152091679923591215927148890188705439496450074765656552450564306718016075769551755444522529849268417631604705970863168551733797912307903194483082212494834857056310206131930578632088016750029855761276434741225876259499565869752571281236592245443210309148410950412531584480182493553676801584764703551257010487698771012384555607086335239819741844551732128131483961287735125726435091114256950677132322731955040805978091292194635185672619461849166403760366869414554366007362588974254206966357491786750763314990402651510112505499725819098113390624477278537852586019084475823592846576953439578031668005838320443161068835672921641619412158536420201645729791127062053619748099621391069694627157925359705372612138662825964605651962501019935117597541139478813022969676421697338054697444041212055560357490613345773864556880670216106173198856621400752889213051758354113922757016581346107457917939367539858331505838709508186525406594291893303735809693103603196848227775040686539834274801182868908135466970842706405898571633893641715757650778085991023427308240165887333572309516548586763990155575730591759343213581963237063395602622894630148957817427670899688647610790728761060271155358184726604045261105393219351207902436731451383010763037905489710179850580753286478326285384420234361294197188711440072244422226144557922811941782221428540571879407641294202061748616700460553769025236470868727574799965741950646365909170863443315567892707822956420457002137256262035577792503496557446055827511543658118228432807494333237945140168003913557905977964636443645422955157066203651258267838077363608427650565184059845871470640722283983449267938684471227955117689377673300792774999734344423436457291893170291756918144845021010528116234072061331645641478439702281567360536596306696977552515435903887218905369362494035714797755056969310065263067576846704443064023628542957764866447197569938704921710152516009867983976439517963599133110903456114161617227177366059707607632229624286744285874233685800092181443502807081023224527310267526241424540935474748186492491257050183801336428812415589769876105965740832761923849536614444393461180188425773341995299568462499021762249269746187963932915777545811040155972805768844473219969613973449804312260614619613818585153546141501385831773957956255682857676607248962307647118290802330640543927736162045031140000392141372826721312575909013917800522327818984419076649450423355828542274048601736711519966631996112097281673862013989076614481272078414153247288576141767039881365380487740023876935956535567976044285228709566810763625725324827034930184454233424613917887523297186610111545146661833871016716074439384595837459854874683790924832595345284810736282156176620054425148234720707226509026520421166918155278328121515793981178446492348404283597230764145242910721759407365377237245530481832291077289894563726480584498856791872783287273254862459155424623179451117958757953453462350055793414882522042338472616254037485342214065348644815464657223794218546918974402033163196650232860796199359593665761619866650712166246890090815821918031941970433811109337058361442415634971800292740481725005359270333963467156127282256417415719913794114097727826087445656539231309367505385104289120516819821929470624056576125994128790978155357118886114145588618143274123469048392376537484315621800117559149564492034189533933356521450604217974453941806721726198320279773280452935223082708285473722219848536214921702772463432249747601738918735681271772857266513572722139416662513491395393762801100953327114837038294486154160867613093916591489019298536258802700960177160306249916805676470324083870263570823477567315932056986817709279532805665265278633205836612272024009307921701190008942008142334210329090219708406149030194826434159314333239027488410171799039162309617783846794346232010042231074658998104874344280826702587537705447516122446675936756462195482123730693612384857925841449459101182663973934412376942567442269391928793360646866468110958426681597731059395972351887785345505496013891622693167120566588369552839127624377695783209619677860820517453864167195516070140137740562480605285298871257106536941615083044981178908777460156681749784410793084657819879591852382435817985700515062136864943326450969145189003469173258161833343907067476933015588180954539377765881699989081067140581459274158080373633173253919765724597070606582142433076792898268161420001139012174306039116638396271360393296783424090516396665402585427432320014411679096334600426240294873529637779950319690168551441624984062773540158483297382694870519090663420684780558942964564808852756300510959887018313447000750981031058805824218217428284532117298510241184052620642127618854511086502493358732398112568171103155124592851333429177191770094856928432575175672336118988607070643100051209226350907272467751972966876199458510453118210550538572040147478647367697403602651256277752078658941911162926841830730863196534030616310922122903217739740688127212851692265024570596331907642077474065959333317009862650466662236598715749123327003009015677115923501732303015284194645348017932877871647278229629199097016585679398805123559036150509980519923965626695502528141957313688345341742489878521536941015137200829667625085920481712013816139686333229598028518586482968139393646967281950977475526354005623272332826821256666516427018738470889954906855963360838787395249564073117667891546946216297344050248955306021922595730415864149846879693286671924401105320787568963865520862964534046581772622855663491883056907914852881730258370399082358620644698614168696259899021743783871091111621745247015022025838002480041355132672829495610441007422189086002390530944164878016996831601998308036521011958128528171988362466873757534106615641297582408454230170068851333929265867241104684440074201406679322955062632291555329513090070505390224259182083785952545788946332876935177390061517323107501731061659888541762662205003867474445230117864984755140955388321670497082520019864988074861770999586782625769556728352126257254549382117974607344934721408648758799946085152730367391314546618110341079333886338081849105908503851159900139968049550478975628473085408847859752428556205325178607068185273125687139906705686910814201176337154380757478813224069974470071382329500417196255651728904114966892958587364705807115658750482500092753436609225802337896589442336424292535097447686449028702915006520067075496978217962739615847637683413945113785678421740032177788983261784401921117422827571768250113645055792527658706934356758768768031402077658085406945194471901846212126194166905684616505380406388817078071311635441210488814290756554594274508566570619028130760664374772802121329780300542040391574986460416560149146421319545632968071154326226985396096648557778874731884783084553758180095502315677218806361903877605086634674890860895070227733308032434419921711950118829107971301262764384530218861305978619516527566954306520576658796486437381094015827919608441158965729022874593362926567559701827385799668200471249467292745438357481178054461489485151642948733093222915980742658820488156785195421189741807700051144573365869222154270035307160788066334767836547558166786182690412518585105842936822249702292988206957777875063910534870258775254824317078929516243085757697739585926322594254582879314056905352877150282492159519242278327553937648383541066175682942546623066164886015793042569821748645558899107011890985969215393287376979944753899187602023407351202068987226494212843197271212864638895122991708528236554034778109118453687326989075563882219402706855968465213380066581634670818973225034476319860295191703099452415201613333389916021524539265410106973207230182351865268596609206046708762398433784565738099786610098013638670911650963339730649679990619158207641996038379640590462490275246901184707761214439749202566239019361364599817450973597275272903770579343101906132651216560063143454767628931938251160824279569044531452217559136081906734686348074257784777341074692117164941408817011651526006767067998722538399654395855631266130358434846718539837554147678797347747565054760832829172488094199823898330997142081993615825903667103720402368240095363438805330661409823212519531533286288405288221177287828473738972072757495330296496384160762564899483950568524110440103700933697547377149141892757263883586339998779188582678287136321393844081069976062737000879576275818300474814634138242596166816742692646868644277970317654018767487725938335035702738719172296834716531053445274087437195552816740780167967762287791845924555468191578123277059955856904215355707509402533872399337004993935946775795181392257488138463467571212108701359863097162318403182539439821983643074821443726641096901563992587414229139334687451334033442967820553745814253876939716507243114893920314242214578671624788468441778431735575065146547791968249290400121751283856257638093162684201626898781507651609793213526521700457548164993254152020830923097350166746180564073226488129536143478877742234691984434203645039423537782110306121720851941038376358943005638256324156917540034408317207199733365058416261445779326542346923823180151939777802966286997875190513172305469531482946027435327831377747124321765558193712670816286763977726237156380808730257382108963247336485660115154808478462294009813863987720278315550436953973360478449678779796640261932266106447860374443987837456176440614163578851717229349567547937544089528359930699047045598752639859429580136920000802616932068712280464036686307814283895500253527349793835454120012427845120469862060200917441536985122981817895355257903951657609229620575345342126837088455193903429032280895693066985397589432685268267260471355681263773839939666782859257339523812149393881195582575571054946083699857392447272631312253011441860370434589063479672828574305018345891185895083930364829943134544434553118900972517650838019455538087136969049880429941473351099432777652925073819721155647069697830275831484288754053684155084120114928188495008413494986962328686142144248583105209884719033828868685714820360754085826800667029444239495797129766984826986575563914967899306157257346254028215453969467082332389705153604701451133273487073901104106482904340310942185753294187631004748498238967670760834967192042769193073187258722217638991046648971937790990458067878026975753501584522787498801885093636469758722767089994850136868826321502462957283489984107452109735801291324096608546440378404291142700030952700431516926463239706504047634889349705644777903829469860306663418027893989909722810259853056514157682401450295954730518661553136055819232040375292407192165648398138861723067338358044799757739706344140320208236310026473813682357966960294829333665243192844381468619502661871554744714039919962884928215940912407264209002474097355055643866553131238391165168883066255916383426982855232650543271006623302186804352802779524119100929345411981623115329953636826983717541176543165429819269949107744283797957143193032265680201687039244273603590847365452409651683362783540107396428139201323916007889108843134165517584950657749109584934185474831893105450042565106631709780281243719008999700794739772414279793584267552023819771579494841358977934168743598977045035015796474791683763413662258008353876274699398826727912685923739536873905376919808244553245039386723078915457818938237531183823913896829946949524303570752412780025652298012499482910074616666069584539672228498707792096074375083639388478461814141199260256170566771241323570911690992712010577397993980271506740143435159676514638724095637763101925814745915679818466595825099732038125747418085790536148597701633784661637947522415157325756388391287247989451740982868000897789121201489817075101971411281667120908354094219459344031675236230592148738521936829198213185384261994994061126554295552922651517859675803724092577110675292891247540180509271293931757834159542688959882684619510632936538528050245153557574760601590087256749904456133385457569888601777181978084732697720629731565736939560624510760458021767626776751819063306542197999556523781159549958355206213788399853444862372064134740266948362707928415355043777980305715599456265631109752260521796162180773933486901393636713471789698455128674717126300000704124555955602968727678495248855227117175155391762746982525604913877705224855128585264580667508748769062199348138467490425921882565608831394047574801481545591254655797631923840766811850157093155142107514911575531446846126493140231370091882598334923339316829182293718330508054944594188516820654361739842020459391233526863917982105012800653516463115652324597355603144928512529193083701162896481249776348534953665528729527193393754430861921596318822743681116116051272744571884859787660859631669590019324236824520731666353604177570391769350785654544879841261337751979599934008710720690882122520240482351664575504639050878969884785250854169476082958120440348048439454072891566991790834164730669589210200998424543641937732567911303402892502928419820530176824704909687069771431452466977567807125197504466017169276358674811692900569300134458356040068625299559270417334639290040267303469339227309820915753875526569622171884823845769030656407719116838430779321811988348883993489320183960060941261183508027845270764222900778912051527397638094293259850815653366961610069286588951600421839332025047888393520004710415653397867985714418373944018257261982945905552627946291217858354952015544063764607283365753238981702857258818238212225572420833725307033965686913818804731500289214033754137207251031719829927182029777649835976264914480642155383761783700696272090995716657757528187324676039600860271424366989982900084993477885734888710007969819083024808428280268223285421013518489626771497874038700992609852654319723758954457138596511103864117721280699102089817794028261207897763734673561772673725924279602149080961345012329296399911750393222130958930759341939674518317575190032298683719140625419809392572163255459880702908545828339157427564269060268636644533210779838587105996358902846275758743219030854112012409835673140959275932923144734810261268737127484800412345106504433899760597966528055187639165107800595298907586052507731352337714232105010026805951628466278926420753024906685731015282784172758924664841189774406996023922295768494131168624659214584884377148586045583351121928099284975102538995132780375591581398102377640478347129995181357259504321068624942152867174403048261099658376084449266215795434857690581602476976562263780134092066562660146938854080298143901418013409358928492670025367968677729819810741898180540061768372850620157524160476042945086981544159434207137504987036218836902690764040397925562266980057920494429663113750737394381972172465884105244000491565916177725558174571708659845737696417532583897770521793951550941295789105500252150946837093962886520029859502738561063399763760152593873625641788700040214928158155286160789253258302082468652853244014102017185559749709090541997378328625762633396350817262602427686076226379168585435956258474305377127874231918482018412441764920722484606879204561801789542831132387554534604826491283885236919596266238277706437748390214860523876930543368263452812344500644126792235561715589312375922619676588505922959102654809753642743615070231523630486386090975180672873550148349586418477884909076944484712438039543191419193369395848634992680023277562327689376030045673002351169428419229312391809280864895964819257707623328808496253697428263729549329880303215304575820348470534808375507846572515471125305628418978477662848354291686435325988088276181978376233341956399226316870853771169194610317484953817408495082877977701387325358234438664479034178355838511791871000533765088225213863456882296102365057790504212769173576151501735218198402115970279334381481420834406524678091064508521420854949437557860267846702696398886971242441494861071034102483583355945379540612183198028525013339868710892200195469143604053572517918681690090441181621076226090139341299392434890121610539926571599331353338335572421075596288242836773568030561486641451078431079651128745169399762017862618189274995625113703041072776456529196363939020273941696889257486064409972123288129477124318338049674251063270735168033167524204927081952505545288334133107416730313270136431777638451232626592015655088269753831674449810770541147084618745862975279816800875254271909519563842048718274941131016943794592354117440385334807109902075607154969029549441354777016657280379465782560866460998705446247433009860872260246006074017763156907545026069829420192685592553404085701016045244164855239252233425768477195034864050319632039427719788285023488685813815018650129133470835371712370324059004989384022060636610086040906578659650895807992263025005616066757735287393025404900383584259942630036406080510665525249609309816291837179810391829267393775585282605829027314206640835177918198278620348557390204822162010123307208081588147721942685003097033957253717783295510085571058902471450251828292035037017987457526887632245709008062153278932436920822581685699123030318421263000210481231984318468044730642453230584996881492291592457809048293085912610242679221085761030620070703728161332275793355341067028816594597328047976648766740831128263799924890088887088275990788642569888297996421318355482482682776545671118628508247461935472283094537919162704750686301702155137782629418154866440954298569134108308843606902674385769360155192894751812742958305236201197602986124177186113747363814710675668053322881206814553422710560082343132246718511020546680864686136913624986234399087241869990818038998932863995009333506395737911837695156170018432486703955316203280421779283507545617239741137801520468623863579330550530833780389657075333622661852107761977854516431659095825051809574017392525773158357279951802310003515980643579172755787625674533817969636380339378138772986560644352921317535009579233068704748974094790989781589701936089496702954166997637071129890527559569256860323686650452260554602979984052252574012411792053466755027304338829608669946370699148987896191051459536475637045690554273697541507724695118923846883938147242037771954201920843770677270453427019043964122365328008878516290911446173974115141238250586491454438322262919565616393358289066406455837665339186255877750210363839294812578173545675648615584076626029040953085185004684554271334155859016893589258402892152707608056366783012430326344973756676834440178778645221406137180518262845039749420491942555673785536627409263871456168488741425896031097045274654254800544443349238203920970076970571372137298550787798108967716938995248585478400413879973432179360283098583698458646447190195993089134267419755642700736883681387574098401011141567817105757355091663633343037022200953612306612905337857365708971709802027312531526112473351832130992572849728390329817759160505258607714180199198325742174145935578348849088288664787700438129853288238385103250222485448197422299423772871626661768192800244130704444828031203227863005493995801835030873492815393846276569863945931532939083621081916480295945672279723240945286863317408579612897960692540637127288257916663666251793707238004761406383038409114246741465381498121201365139637146399241343061166599088801216022374370540825263859819118884661588760828654140539424549899704751510477435359459193571712447236879490647748049273422891021789658653133170884807265816129735279756921209603058347741968550672417030959978607544993140918078230749875976364933771279208208587200779195511569034998638388147359622159586348504087025471300158392839888586151433412958051648077845862697251984784395061644409815349320864190350250352439614370186953254931852969577172280443320117550029913422462485090637093230571490093268240183258066550092749558417085743174540361361456219469502007598561046040050131216831849300682367596406206338880463846356129667862839576793487556492320272169861066827726611741253126057511558071720272097075616565968415654979473534063072464467091062173318970108347854231652787085037842876973815058315035908787968076110946485354437395781223014604747660389449582509961866178732822522865845364655078913582993896327961353630408151077851400635987523989696892766357640760199670312371525828723210909345996340430225991355235001248976461805596316700294631767772855103580306264746011915001593834697484919018138944651571688586690293583766584917361914376192441107907725715516296292948211562170285471048813802637332665614742938513776285387566571531474921682255764023904396436092321437206807278894010415834909914746853936111997045351668561168306063009532528477670019458032945114211619653815603118470362154881399356413174585655570504569525017296201068214837245649638673364966510211143132565974624260398025058869398028392195612757546583183677085799086681673339428921830632311807598757718292870767946851559782807147764664119180651809220184405211936182101732575328025260150094786603290294891296058647913513012079133114068495870298350648568615480450174874997088267157565855780646810453653550746919240994852317297997879918494475186907145256165911660725651253964088563741251931385090804687420874355025346384068237540263835454298145603238196217451333071728336651452626800016928598232257353337772334306326229691170307807664277140975004790178001371119931281130473208152187601111104182518680789171020122657687161245800628069422950036412311299825614141580477531240584779136031950084448369491944953336010056073035326009481155224723050148944507668523538085315597880652652811427420837107585319284495953167070023855144971720324347812866372206008937256025618538712882906921400602189407306403937070219366895472850388660126686595227404641322051294480749461805701292854146714331776637718945545677821164146741285954507291037196830273755543191170259183105493828521050872189213733205710738669041127375448432489631504895732542032592961056013028353747751455527717063899186008948508579514578346403327685230321879159488115607352891835728998511240706836069441077156235502796078857696360947276177335458380325672711730362983084985647334831768878086939002365440344972324296131424752264433076063649541676804735085892635026133879604348484718020231462576996327747719726274240996727956860607848918580500879229961464340318350054650850533042842981638491644698899781739315046052181557800762204982702459778803192194164376073241685297367117347207416671787618979963222789212617428828512275849895044280889276538948318336579960669278522763895732373338580047872106085893340463884719545528753772727270686531144211924369192599404635766658338907721015493684772198576866252260550337470897837455332708335962015586932938270551705588341648059581062724907861602216549450445622187871394839538538247045432821804857758264708169041772097682404065172621762432011864450554242851526227201033792754606777765705060238882232021715784153367581258634898528327654824004823864225280413310772696955125553058400704573082201624188420311982457159931983264481686550830945703258534438895831288971200560695119149178349910769821106397270012222320638835295613323855173435516234321739626985569107753908210670086509924839310603133620497236445951679973964198827545036468414169189625177853609533053512108126653041342007163253317958240145634376490994834916963563483548019904896814976169774314172271508824115826250558488496873641031972339778038405192912319526318573294618021645762488582103225398430730977122293716476909847228971284684773632321775576522955341426962925600266732968379024339312140190028376867912649912637641557547782794535508751863641181290378360498317976277262011337799956394499651837218823390003959545072434730809099152804657906173101967571250663533609546730874736594361263839850833356953116651711901907074339871631819465719643934301685267164633031679275167166123206928819543731204432720152058805467651834776756834072024452713533309053920076093354774524466824002003190146475121963033788079428578238517921687717669884706733553136288397447812196093617271288730980717329342378952767306681174422488878779882714766975718668823126692637543708764016917184633454991736907341943778770192231463437494418681782472053591184271819873400783997853583849793153666159184677763789912051667662166546045160885991306277810901477491247261459730236601699731936037331158593447573542978468409527124285987619172699328543093633419011118592647748618825792918168930951955237008081303370125197849723993677373669599329883812020443919736488044296936847119368405752956645753411642761650111908244902718739992575981273394823048759324425904867578371222091780240274897455662611485888718342901741671956148324779814287422193506937516487056130491756078028065932300687129840072370234696703507380749158286869321769066733368273036465600457648429543770262081600985547876581498295354160621686891069253706841019019234457587160974602845939425800730614642998653510249687522281915111695638552403979642644969721738030491462336279717798301442365969673997961918509767797861598427924566974689362627422406539580675817897569393636415056917525244233620120023087534824417596282901893279550826754048413276509855557315182735103746847792039069908078120085180792218724245840469450745206560932701079578545191759872618449730331841895091259618481568886668408838955901910598249886195759411300172636606708586503837815060779637621889062027416287059005503272563884613913118997330495749770543908171164947210494345941504364646308106723775283890486076980965079248616531562923397099756346636349553724792223904569963782208861593308378209501534003606277268119935783291798025757260222920960453465681423536779171600640006026656458047140192381954134547653984607322721076930108738368824617539290340231801219637357643140289341693059546035934856166384266506614776966852496973476456978211145802042155194652633855717610819975654009415367231003889540781707278596482221289371462774276753607318317528908251319896568394379561543314482542527988687225638142454093600062054408879187071512115600011137872535611362313129409145472063426337814964387915618420596082314889489695325282996687992070173241927967153083482527759545612092578025384466795434287872436334040740887750644012607340155408936659176031690250092083516012254257619435473328761779185938383912656397729739494994066187481015788002620535525677613159331904352082134169803629017787929303546604229238148515002837891687233919171057344119870758924702960474043471521835501309464087965692656804922034616384126089595011576214208677802225855828021910772072651953490450651372618197294982385460599117892447140522809252193369078143569345092332943230843185160761444916564919710782313992546160264993131680645322545994017838792139281121644205067819224139441591626429590313492213000439760319106278317958261771105249363623749988367628133322068632401487962297544791509635329518526732352594140287660342081316777131080273412288529644579767618897336924853473529947435810783333784972672885820788966293792323955204379529637258771390442657457769327898822020208612760015763333844172829289985249472137194218661994838969643695926379026148062661689152580734249381772044926459720244134942846005230889356723734057933989225377708095250139322919544552356583320677903769761189730594717845823490837576512629681381292860372375303474292429705149553068272845137983995676170380641858793714284397690757961155329545954856189477049645427175490761841328136457212540263587619992728767038692200098792877435099366063657182515268881288814473581175117415145333317712609741156141656913105522029505491901399030050570021316381464488440565983455370780483486195842185314521542554860552715622091576144969366424685539145854188508561527121885344833330731600230008661642611896724267121957088526019112014918725782523128236371954959242716495365186534605637583223925728865893314735820074591170543515440693004446354613714477211220236099988483278339655147301454405425587276285286189839681535924418100203070893252248589474778501785785022590110417177157699913323036784774980787702312699357637949414021069837633347127162571735474665387640860895790845170939515155405603476544894500441135300119786967744462553789597048408726497764075343810735107704951626136061812097996377118292139280786725676123312900238527875004069347679031470891789308369160771857281725603264642360322622817328647131147019678498088183712739732400786943897165736944279133987914978101459685255199093900558505192804686799623790514139701536740640516190938099133871414120959890608362518501482887551202852947794092863598517682387155753995135057106123689450244011198878881519832331423117651748085689454696533138364905654694753096111839506704119848073765098450187076583714409746009620097769850295570197787966620606697422696102295757419533544946020484803224566929910244504545001043924937577665899203932680898477275020882346631501115510487995722076572298406755327972425234061145600598476169494135886800331421041036545942269270116884565890477830027104887606745335106164758303618825273958877802982244493202110763223047571560105109917104047289999315974049640724213062572227047332072873712590972949579285956632797412514682411322063049933072649162558480968762483229101495298077628675882090558949476032757159664216279852531096129488745393837357621157242889378279487768719506717321260377312274212172649145087290768088689595235603728482941178243455962107268394566691146837000802949424152091639626778240722585333205017563638821954372858108478295549490713608252724683599941959161404133930844579647500589175598408949342210209990760614473911301130538005450730132586444100487457787174679530484831047581303800834581057640426503390900529752789826795356590003262327525212326638046980555726176644532667114557955659296886552713713481707307467635484661324337217184168251612545515838695420958047673857907937616301254471325150770944761005248543806714074826913314011152377509185179560460208806116495655545875888934406715537587776057920354174244553839143667684177247752336570706380808317985039412861454249566163373519502813731701507013435340963108634958857225245022061908341018065543971236515314379217243259573608612821316148799269010119189247983681847576613912412136047959788552203904944261989708873926135238381719380435523036881302059476530341483240952231716960157271761422135581480468685676100689308338994408061478739895195640654652344549329670068108942314210314513132177697203061131308861573308428121784903902196074636574656340940868301116683814692046750786451259048017872438486511011287117364009882390203601088590522815536291194150854448984848733583988826824636755126844583186382324614523326112515454316379696167055931240481063144083876016143572704445671858571370766924118230625970358986233578708392280932066671184817031514537692848691919414678794097855224638597240466068490665204635243476386791759603513155442925334236377621386117383525727181869430097826560785312709444500842840833440760559715918751618484093855549800822194994202595275862869610641954041276765509513551729420294968817547505863674074935861781395389556781662978955460495431230156328591868684550857848003729080922805313484607163926308382557692947846952251098004298439839531543497722218464828635955466368674326431117255029973347761342775288687981175256367573059871534097768043904724515590140568467217582138891078184067899754285879297647393559823374587695339013264444702823578791411688226039207629238760798395949979652891988089249436726165104202994284705406969419575621539393902220762125680167994935850190515718590112822673852772312820449413772862464486570365793382696964978835110159393240749806351628626410806200722760265203077759024203859324420657604905764734977761435955219229448138421764338061117506761214779425262547449774641370367968784143017108365442607452658350578697014347072066672036458515522093753842340787999826383131987741177989624528083396151043394100099154264141669703412634051980256649598547113932770045679831257537250191047302072569892206406785625401685860496736117808633803851471011534781481622372685722517490918083548080140729934468716251483048540586647310436715372075917993214657161813486281525420697678441921649280077085498609401189463044038924114220867515584793617471342454091783979109606839149993792787831991051609775002980893153141605808071818104401884827212957629835699701451377326530217037111610058594170501808994849366953539729332274249214435296152842807444596486427698737113750028429505747553399263781532006831749306426427761965920593419700168972719684985422364625046066717827746625235579437795378410276428300436280432856492259608541603912430013028802905003340481182458205823968538340931380870512495287168416855452972211596646416701663372494372575347016438407715660698010329728902938715568723787184096391117539614169347559565059843025704288924295789271880800874043686250586622495228845504988385056770702570959516973762610180415968852338049068917721903170361373550318635172792675677329023229470763365407550630469575231715800771851459360098179145844801110712636921996185405679704349132468487339381537512603543149569021542708726793841297680326947171012136594880504254598949851928209789265251222552986061402966937654365475747094607048514783886137559848111102547160547737398888092163330007548236086956967424046631589796684650381093326315398312135597716437390622202994881285536889473924168749837439758275607835188865178624096531976767961727602178671155527624428242895517742370461757984035988854204170502702397752592940261479904755165300013504962196288836938402278775114465047517895409555371976214449200787621369359070791053043190393106560951680795850711913110411498430500664838751125673596517632775140213952925904332252952707517168116363948536360869950293083078059859973189732474025761487431899605700493479402970344801939199228385596790878035302155651765395851595518462008713794838053886008428649825395042550362159242852106648390706607962009504985602395177623234747582023395341935250673397096012801290034113395287633994307793287649747076440022720660476813601728203551712588050967064194548370793327092243548106543467865995019212529463111525737745354481304731301050115177916979817037568747324945118288052966040480033455740835380812900540361559634694100947477859795072820331614141705238590033776854260241583179237949878905958310551892638708082406511173141176270318429059734954807220968602768661013771165161009439674616740334481943484150871166163365730687525067434883991837253892081059094894477826890160183827137125748907700428616281011306467201096403074031829164641502743455972123233589794191155527934207002279675864195887774802421614434596743986887846825445712641203024690448073491362971312641087540225825764059527757034832940077383878702125358407841844289403290750667728977695491067143769004240343633190498547294292284800331773414167011556703221732264451642589067972314818719708171317767819083655438085501482682498736394305275888685285863806971127609876433554886379237420140575325834831205117393446471994610018997812727730390925838594710696947488173659298185865284538952894493447253515785467821496405569708525814997336545635804952467967970577899707842428509822862848314405961749632581013485397570225360984128925107314764932701261423952606735232998371129339614542462400014250841661877068405343326658844781321844887220616175831859758623576850396597887624637079435160837256381213652931638946851840308335748736433317377712493551389418192851271309594333049708246544427866833794226950617087146891565356534978366830259869401979880241413495501282419540515303161193533308174732389111869904422883249298229327296577272717060213217353797481664315057132255847396863428295041520488574881102452458993804337137658249756552079797973342769445994667570631722368807180846064423661372240341267871841982901480856577050973480975188624019743695325363731554119625830806606123428826922473120261737501769572733141900201222347424490557318403297132392545826994282403177153196553503605228367953729150159432688344157120648956239671986127089397977732496850604991471127079122334398937966767170090209461040670846378420849343871563034410013328468524051919245035577667135168941980698529861137386973593934609034543694471962180263022771922313950014413912714510242764287568513487940047438931347314252690234061722345029201199857265994190761385719926330922180526701822413207827811193974963189348353129985802877403488475313403103685637503929027981950376992706207522306973950091650604924478484431089075412216931321594814641055213484268508888658068219403049925178468312816355646342945372722657643435592780467552483926901275490286134329610403860933213303110078283852599989670234179623144331959634244825415816079965852385393608900943759899332421606483428454647585426862446123363279001361239745338816304439636318927284482865302282654418962189885196224985053942600500202876411608963898726820189932969465785548081930958881032796391351566679925573110538663475716346849199376696628849019325434327636420389232419225854286988653593826884077273526679591345817024745133162101458459657471537598985928880107051907568743460138387959786722540468908319297769627737851850436319967408120636765141372648028792969399251609192828340378575898782932605028991872823367119208987961821512185829680597523135055305512567096965262576593068674820684304385004314586365346966987505270718196298548688856289217582993764132702904082894653160254695706906601843973051731567808979948267512689423501649010121977717319862120383911128023788643876547817740370313538796073319730989800521921594221974350292033465064148822352422198231884679447183849305944621850218987499813406647342596558474002368776386149639689859386234483092245206869010126335094727656626075666902425058279298428647579645443446586467279820320405411350661889316079750105625960123866034232490371672971377468918526761804199421537793374087373106337067230206446174865156024932290141381387881956729401676494942177067273740701983184593285406199454938985745575448962186222245562445365263624035467998952451959679984973410444276764762197779582533320439635654925199495162187647145626850230090718815890586677892993021901250742633892444680629011842594430564132588074747334774980236105636854525919914899494720312377806971635193089507553061801993911970697468918374876787184235424913166522046653253278619210491091444474291228075441449988336186472691041491768287459777979278249909481855389846481993344788897306012433929496128224317245075085809570981077088627442979641670165344153275186978818396331099094986595559650928306827764978415624951051246295989896200421344675180213099679801440522930003305412334729014950470758381165386987411223102592760734511752531706719005245565912358208288545190775370863192397564432549621191160150091517671333243827378316923945098999145355559041754917268508750508648803849146120934790197490110414531176705693559958375705601921827973570717858248336735807305438298382779296508517937895858036442424797524044919039385284129029978403450626972025145187153089339544462499638512228809320722700536529701769696511053101305312129753264264023836395006767639748274205823442341083785550167666815239945084199589753066377002962268592715649385041680667334027190888109695342925284962494759153121459929182775406989338889995062139300886884789788056100110571799408766306334755360041529221373138163362022857298057450235344667945409168497689645389815756570701533435658735235028022101344826910083452098421605539484958223776066441450963350221210104567665268894915485161388598130619135992222559932656578041943280966437064803080195814821964894213993682454367705773747640167612234360094073991565668334519432666248295166916735764084499620231996856162716519520058853189921228088691211145743631633804317816315646491202156933233426775707550710574009214784571240421588181219547743000638746271618708078466205732507609366689380211295908224196987610283389620571998352217598178165632747642543654019506908507136494541252358913794355465501953532709120930313094027418953649660822882523024774901060569216824783036268816132471264628972115720048703061042535530933620983728151183919162839443456455959537917355777016807377521693399029248310850698222047280822290265719920877040367481578500058584813185107696728618201303764668614411349496035562747088977660626185965341103249761527234798778990650996048509942434846635220038381956132195596629049271611187194538663407855401458963867682596690966949292990201614950042878014255495504219536361817255436317696165848901065572662579410823088351691048948694841645339421861660323090405321257119302132445391108748963711397178493912422554127920052640039710201310374960702271669793539032383654997495175896172204551638490673864155627394529644346742735700294339802081137985520086947520615281705132064849891893096927824226047184515828815733821541656332030131732189388648349207790427897721868286413062578594046378705556970656026161125974611204938619965632807729112748653848154506615540201861834990614900738964450290828902061074835627731204765005203874144780674983310154821516239771596903293000102458719023121713634830714433640722319591376014743423819397866757577456660750377565394671131052978498615265612486122397309520628357640584211480905401239362350150578202277241313014819420696003253573344511713385496631488944004910355866712563122789505436448330831127726867228227926111192727513054154017520135284011955552692877874565273664119581828312924035333189085983490520923875199828455789871798619734358603067378506890946195844790784586209143422255715471525572083544468330443512319334316429671263561991916195356842399791603292506118550874169465087010914646394653097460139739740980038026541402233240395515124657083561407522850673201803762219325268571358652414576890682436136078275532678639802567249978093074237548044539496606016043525208902436810122235490075874933778141965605713372076283226750240683258040312135250129538252990513203984357438600170026518466289263942037967190547416530376486850921370357170218493937365327757838497309631433764404287923967001190593100947405128228289986331183074960305209070398768307744894742239666157114355451740182369941007490915601242797938503390534798656346360326367892959992514027389395102995665860468590568341084874367957087650052836293446179299735534848704521642721238576502962382152912380045007682126693168706133195243990250076417575859033496691255891813646205178130820968809772156518117889497098501857675287739357251864379560879459469721295559634269801624588432095319358876639568392166737279049281505709617910358698723120909710714007060076518200809846431174555960150362489215587030854238014259497931310195635701547364916586405738071657084209409564168368296935304707968652533958290222659728770720947714885551277062627220433184994800440313010847208275600785368521631037591740845084198678393328767154830997497077820044457150941728692679786862351601557259764608177377237665943405904359187673858195056707670980455394845513624485853543992669670570230946516240937089433066512760344484386055553281171419967283058835758838437837011644721803473385534716539361563543753279847813239728316665774519031344160142432718233596448059700668355891735990057987543637797791345971194732780643825743914372856188346977615107066006875574480947353814070684978799052045649652501377578980581059079211707764380966974403757582943210657055095506173014650076720949748791924278904126806175568486927817004540225228147721167869803269332760378633202282745077191018454451627095157635496742724384050080833319606462929470896062066804923975210441916064760808252190071443570012867525121040505417406283143204006603160578097179953384989937757710368124659728513759298807585218953641550889862719290057176447188657065953360439893320753474156199359474377811871926844561858184942749986204813497844648798319021134516911293591502778133054366692552638731823960781789467492855170270960941484913399283317696604770724638911913830300474916379276167221425401647361712510500967710364116446570751566792807576309967941109250878672840803114580863234681463335642098554400850025638021958450130984298618409528319839478326850638538383585861452737101076932599913503569311252431913792093529201160140963088381046868200910951539705114829762663393355016924784450781690820143179188919150529100536422188867509085256152577382135959432584118744355350217121840293052131471678667045303033359590656151693753971863500641779195078226302798732094058526658898026014937898016226509814950627319494765074808705050333841907516903200180290062524790382043514499119842910395712541339881521062483527994801527628992767270837950208515597007793195032953024806323449437941921882718219614283506753470023184241422819016920690354889003779977156360987344170772871616607729495223416031620927200638022148706414180449318371056968875372528356462591828769636941314546851196426337259175777727348598321681100028147798177236617710371546670520180590950825074267933117503905283209025538016896133155658519197969336620832813723495843626260791744503353412061036272335788353220983251515392785059426471971310605111495487009903747482662180409240027142726449058392503050996110105642303729042119858188139918799910488778611889054797395468813984063094948378456050011296463995316789039011058042765191888205047935950778068868088349410922995923152043371954643645727566757933761111111740480750302259993207390943325500126689586171736365852787191772901163636262239574945329470172639933195907643500714426275090564398513243521156098688039372167348584421541618365986913437438252906734736859431900059620352415393735962969528551786750779450597943235176213390485780522022841279441844086294464008762363980284003137816600320390406950841832381056019266695107485521846431584578727321787172062952734125621447470774577460529945381763133264939978702671709998708498835418810395209094013465088776744515627854866329866287332806225874612377801444115150560366481968102887863257610064506982725914563112831511872337716264156205897293403371355401844945440588942180888084165148609951099545216248882069660430640002699480944191151449631604173297765055163895166523491616519945379638406014424572753044523522084216665712350954284616859998066200059350120212132777840453168819259800257923108662514012806631850629682082684511999926732906439747776574663942470160414942571527776096347298126972464837348091923169349441148756419928497240565742291647003584543158123697347617616549593232552235874270288625505953084488653392014902569826678524507791746786253958985349540709941352380287247806559217124063995412773909665569597555668007807747810280823311832412202147225645031253720732754732003317183898428216498737129264063860431013517977648137577231934818552262808300732608816717210096931197979160363819231621550758760941278006459302589737092756743588526155433333520934888207582542051625332644543638528837489253085869758150225949213248199066565477747068850382448575822561042083653156079235390770542714242015680908016874507141412049246281404147753908820721149030502784822790964181183549462924562710422014574443666585002613754552563825068242265514397178316035069319018417460906018376360979098983203013381146884697167255008040129520283128598766061831745763052342445311107563514662644519072252961982167975727918480497023962374937315225405547124869857009338755188720438236217214752794147449615222158656760439421024454688683527484831950256860392385627523092659810969169969867826258532028637327838172803438737937300129273735086512266177868053060664299110936826937751458452565705508464149597884624880585154986113959662569862399920428966598100968184449281715613953787341626963275014545025716231428931568974670605890599607341341973608666857623556852353163677857478669541014043248599092637365187594218333241772444217738565057656156005494531048757049537735917479693046219579764962111535897218510592169013293445700123222793114115641896202423008057960966628383922288171824901668956284957430540261132399062461851355069614299318739943956113667821792981116225741290447531426441055262755010754481162439740472378367229360181031189540439682675269238125793777739898294804160924863857396248626436447225874658762314830805268102258305591768827353341862050056615425381544974234749090224420676766478762771023247299984175168251014682537368814204081389209227949269266262375137377796802104639104343763820685220342599801155013446419539479852236029393631765419167175055235769253282848860780014576323606262195192901260409692002230809962599839109773284974747980384094547950530955433259862648731142856250169869486004761176078881414894853860841245238596114470593738454589067098844232351801150389326097073689221369133296140081118669105859120914311707080572131746640431002957230797994278920080699452344930072730497050708305714964387486550694762944186313325787488849427565672403778179152844339775359907981379169339589050278797716602919473340796645708546538770984398757447334226713871383071138599218764035836504220676755704420004347289926177300516473600726515784367388380573330510478369197061836162727192178824533086576321654988646710698853641413897374696426536019487480431892019767998417129610745044434496267823884713719548334276793213916113087338738811623990171809968063954604185529006514755725839059010279708778869477322531138808221361882270431776596175807789903242068445460352942547262828250057665041633575608871572745085861250088378135828406914981848470496618563879880617752753757256010101641567232424433870898608594884120641724959634160265303779351471668407769850507620058183415343270272327837728793252297351007307932137643083849733158392740509324796213910934432739739872095152217766940315476786249759552217984458614267117051993697429528040639037631889681837264184306958897446151301522261534961256488125046286158068016740980135368331584218861923368569568573857054932531258316398976338181470310382546576673243650592142532765371099657687744835167661024799591072336132754568993839425551928063991743931993427026086391041132745957213781882312142911446286976181029459448959147827801108326941219489943123447751398842477989696718613565741077525735374742602890065457989893978529815065723580853405243115631014212628356566762264409890985352017956855537135342242736359952630542928682040470277533589444498572084996203459991073147381660660603351261060691876916225508634914001441493575157584132589850250043149253901156074823733777269012858472393634229672443347377853139649804989329920097157899470854325582785596589599308304897215748389830022275110036680039204739185595518015246479483932971262934878620744619429326019538851098469820562215823751476770462996335719000654382783521192371527627344797296507540689085415307639325753865301931219922259417497334396783722145685235486078525354066973342841223478241447228139478093641764639619653344350650180163836646959163209719879216818472574913014632853205933610959955537905381117029014822366693144616986384890291339874059616773131478681438100509087117562366068922353802111973589021445623782987181214510420840714498716826427963269278993398783987771121541643035046387754043256722001939303140488924358016273849003564195368173169923262741772531940355984913155482698153251658870646034049066547808031367834487913862958724050879869185760625804415992612718079386487330665522277916805074990237681780382295679310670775769340555640670724695544803971095560036924126210540203557433846233860227834992502486134757011473729523445815373127486710233272998943282444201735591266952396583202196898797308764676853937892310831720060933584025593606635379468709326714953834755158341032002421600030400089632249694338264467532141165228864156424678289795580380552670805826752028607898157826590450871194650827683110103834141994605999769464375765169187467861227609778926932705716545609349162347292568199850971646040292250591731210432877363612333790566207536791510730522351368575604189096969177120604818588730582131397681203328270987964400554971530970691268941669147838081725191650053325180787451018133100966392102578587297039936367643706130314230903999540965226017781208482416231672174298972214833421502084761557980062020890879933957475880911762001295180534807181184692605975009140749115623917614307605825679369179257006620895526725251765004492056653756424354360062278645373598894080184861377618901251169945831151106228610358156086055195787613914396815541441802725660428623773496867178187667983341911296131244348071536085910824335574390411423560286134727710032185172400581511766795000010194117977843655180920793958034261507954466610489861230009770091468222752267253452251993777765663176675578731727769129948631617492824972236723775434532240846306350154435651553333174686645957168511514221972777464716727990749127231735658536549522480406102479169832021732991424235206074861418261208350962860813605890139939975711612776368333138687237375348501986208714135439883879096964680643325572938722327551880002468278100779349140024084473621014237803942204968230181940051733462019348086306822099312327652229128336977165239835583554106093182764557373667142499165985624424929867493031359062113106780140851576180273995559418900630554950491604848243550912350336821880036791507555771716666057019030588639805596241668407249649080265915903411357500528556299129406844278048838536165373655211647850220402643718009070484262354743263489301553755729218839304668380719197707090877637684434676666350444513976823926092622715660750411837069483394894676403879671101670937427542129056507494167869571907554132377017898952407348176748046772593265014464948833655211553970495322852049036087999921570698591373917507726128467782532942277812659154922266851055673724946463192951029808685738905459201012892338610449606533276873433911967189094510812197279285838856502523704016177923880139237074941322798179840042019340273851638433026113799950568092078636207156710031706339352909786548893892770204067945682469801364627129989028537716054113089478251183181870749262653152262450904791991711566266768969584992245892519839558624753416220977972714082925144311540766034504940427150720490803679409834097367537545654250083187331260399032529566385507081436854347856670738712809966192417367476530523997451249104066373721046768133776451396903244951956639227050072267820519853526194025847877770671347411498091671608387248230480886066907634045994321390231545655807823031161034827611113633463078078619630322254630418746815094226346816714012427637645387255662615995588974316316988298922602030010396309607009705942324287278034753916705117642497815072306312411449907972782443450607298800159728830613723960602984237450613299473171892719037520497409480757939083391928847542089467032539306418644576010560240420762026325545773380485398537881721588160475183925448329308395475275685674145587597975337263004348472322387576572894304045612463749013922645056966743515235167731877424573530355985931389273521562239449571158115947273916525881100793884621832061414000658706680058650005680390941873471125992874103137522135941939191679571572190973165916126019684390996388228869314287129551015863837543108265184866474271784680249855103861120788757369953779093247967632436715112270105626538380520838452627796658429250763320967762482146681472640610267516104521108660369027972239642773245538131940016528820490166697005718621723681256138280240086520404967743341364373324187285946218742154576652799690866307261198948662607223249467250491475253707931969655147436073339230149210361597263483854839609645781007287547435015031098489311642771561596420544489204698986513364558142256264793509552504939216079473801067942804357257204712395836793904805344105914781911479178828898888289200897154227463888360598042268977892060665091750986256170365871029496431910242950528913310916216098059770869745747222238926685672877558338420871813003229426651758539318051106756470062786806771440340002027134297933835648533088994652581429614708065941113651126232901932887394055033143571988028659375313612772040294156939139366740773416694618113230344337932017687807772271632621686087561606059688756444352563521944668017982549360355867508059018324852102717003839789248518900785782978735928331660466683575386054220637932459906219211613323860156839166565650566801714772856949677495166679563201432288015574346530813147907532866538750364561992874669697292583688010195957670511057421057905295902930106152985564506277161625648313394701158386336030601863686358800403019016551239932709547899537805033980372133849151749218997239437209014204094058367610673359982971551973787741576970254824894290522865206775268975189746581879624265274171561737694512100066526622767086637941476027713161322597327437359720143285596651397493998486639179193360228845381582020749942006269098552647848426123869356971033234533862996508690629183318463914897263750795529502431800179189948683633934192024962236608793576717955607921011706445711250798784279987999642366912642435199526967959212504539336026982757735745390906891776172209658573719492308811852558353934610174485282133963287137032344642978564114160042668904621209593391056264792074190932875461386096458504299463081256838990506986417967392739869974559798075092324195323831384035108836278253180818127376574726934829090619660855722726749971733186852346256798528361846106082614100605934383779973067623143035117114521665560739811876857488988291076054507729514192127065541309377117799148067746423755971387050778596958613548301825720928568220249246923206821396597141610791610163583170078868017882490998000116324343513181401812070269594121716859213001249650857675686235292686070880517634010385142543685346774835610869544679092865163614521401073142825696610435877680972679900616615951937358231896245399322904479646847346540163145894974224110309221016117900708714591659027722735566485310648990983766685809563921931830547414435709260039215326818342254652244463594544005844707037304259660138331618286581355613334570976556763131132739249374854157676526450206353742640323944253545507064941804570038770953981121134400795480643407454046130756024895784344877161945965604147268061593824166675510256492075743083508442936868389221657450783386260150971346918035110974084018312565808584347452463843845926612937650619760256316674588748878896709951088230428443502883926310318210263441413797944081562423240142284509369538239173756876290814210067981169300517248352050756789304875701243401938704240531549822493316771753103172669003447810851145271820205407329238760927746198847205468363023960496624027310104725474836064620138221045105784879970044373435604367535939960191000225265131027383120210861102768443420386190554529735018601496979775537934955810562187689029884433364966930178583636014643299494088693872991879599514172629698055289388029184020521357543380984860137308015567677622698706943343937301077793596413302389566497345458601252712663834474663640974821576384421916544105689235716092515984723402410568157862729579672885979154319581271191572167661762655804240485374178061289629884640370580005804754213082538494995899444476168203263882868809153069267906311893420716643835489691387699307683650637436735985963473510252895294655624872287857499706941081006767332748847403506679642273333801633832926105467175913305998317526881794304789799553087342434030375383455750805016087262544796093854602254182952587576306963165232170770258667902583821035062759422897651455624893570305311949908042292103291588837583625025923590642981990019320618585332597722018760840478981689198996517219414099042652320866172727463484572057285309617456685754234031039570497872291571414974982503101655491118391470895771548615061418654120724577749689279875659240001099570467768547328222399888124858321173968591950494559801490265518240005982982456944120106374300312206851655985883403800206429519962097961557677310423912802617619527873425424971631049485677858738100473918908861746404107779390246082252615920125194018767534230843512803489009517490817259339322628495424995435555398164520921532943707346200798688789718949332852586757556600041955701483055975570372418982455667773685363344602598633243794806845044007071056521562569638666774156224121467114205572778917244158114330495672665002810600017584729093409586076376491891893801786924433696365201246767765465872767462218776622904526603291313303869221180700479746051514470291874457414390297084294498301433345220799239245903604752344106646981801490075216530721375418092121834773684065231767285445203101396237684397769787707645030598575053124010489335402505693001499264082647421684839981475060077507716771399598015257964883570391552448654625001459499915639894709883287780765143182136325232730284844105696347686194339157689628702186234557313351368262670193689631835036671377381974514597499588336841153596365700277014341575336704671180604544435715266201314755579442970186490384860355338599504316799405792106965864328382711444878517664563291136786491750276498283691629073956070297492714651437115611214414128424396471239772306203951905009172082654822448948715253070985536607634573340842067485074815656386294833118046916423725105411542255505839279686216134538211313265039469920044920883590472938513192693602060364339019980190536917863335516329960487248646954828610313903801050201071558187160483415722905398000862842198460598749994431731936533376607525680286505436886525093125302390542100538086709576926689854084644659481519957979142733738998333415738132312779303904104478293933347708717661124296083021722108921277283145269277086197233921040946196346570223221777894073785685047020946689604728781786439389021595642605127702478837965544084015576883851642531191628366579310804630042268235746458820666345185806702037293550510870345775597365052170772683928383422836427224387208916183588855551233703402839450694391756459299660763667763217587521524433666017075366881061024232380092649175698793343360153122202981081434527861004262554509463714718964360561968352227466765622927454221251765723941094323701854724743931710202816788885718491618649078299459251369373864903170996922099734771305667087555731540223347311814050939421679791169515034513176600645339479151879822055454519668360472391252818827617323336210404432844892906254160567160174957853533846016069508725828444355418539877153930185793161368354318554997493889136244866715921929439635920288093649022154791671871970220978925377702541276883910037409655457999828855266863579701982649362859912746665151271860199325691053924300960562158531352980341551125148719605717557441118182472277189551085153855161480829556266169913693805741140566581929624140511721248443283019119491860291754652998546295078268471423235174776582974260857854855771442182014737289830298982855031305255935657567991169652787955488274035792765288712486968256676083771178831372522571479270749126864572021816978861074331895227888363898110041305082814827736222440089247868486481060511875154682903661196652473376077651484077757128545473421341069948367617013526930351665037516424440346701037069645488386357080031606183636923140004381986206880117372080260762399357644591959839055538832286032386118185228587874631939051628710770561115403559146437408614438227682355080654810164853702485386799024910078019425358744938338770979641819669247146231226640893526562859618818542755146153124717076056730264600540036343382861719731809532206537528123563832202955136814011495789701777984838407324178393039268506607780998578783157489071685461229876724044883432428011340511830536325839698091115943856048529158803673536989629255706812040315460314468888968003538436024047112466773010674064842098769176588731421380471662685331274435640489151687948555629548332846969718511510757446579731522952258974781853979616617599205112426602691192644311110488077345265592822413536111282338953334081779483677605067384613697059469798794555413835771271046506107529381877202237427058062415510302583275625614297839018224652617890501779431757712807067622391994737951415749190129520094179734400719800173533404949474231240786213356021544783470211706405434391582681163501019304859607792925654941994671189303288793432695751177537602585013547727660186179073241295339835849991541801245302845082706029252727938752808070313013304748284904109930993150832856655032426374408645360781720395789731124365095242951639622868602057208956250867922779582133591159454930778753607962622343792587205003391378951494732150284645906675963835428693405766889131480096351527206391446702183989124371806579725833196932478394492867515582239395385882673083811287287246827751703437332232493293307475395448023777950355557273527051719562980825565724397655907738890398970337136498172296244751654129769057983644532163543923026571624340155137434787726876813740667958192976380694980296094680006495497804191326355021265336247207315843893200973322541626526516911673072822446819893442838211855067823881490398822618564956570922690732552477588113146763658883796344402129670980309869839402240303504903502623593742372736168408371316018250860285925889376685255493336079155095628053679614648882392589613638994970666676446421872316153269577001853357404411960168129706018356508121617293416543487082310087010350629896054888610273181855732960188571327328890530268211851825708661533495223591951399632277755545386173581652146264604854488327552189484686515307849386480798476044672157798450526067468574985987160703703918957619115376992755460762871099719290841780732360604478793446165976481195082555293613723652617047022191277083815600406226007964592493198436360878094397768712126201845784858830439028407793490388030100371507327516726139700592470043939302713777947911143448221425294804500007265169916020484177516241101052174329456168744390499169689685788012367052762201795219619060948879332293831763913624697346467647409196906432572749318312141174948560831211474957421499833544286351867012905810286166289962869695641776667365484791027424441177383627391402206188471692917405270856060060403904022211332221947836657395973867720851944216141029636221304304128202354724337114787422912317297471695017371323720245075245302214561256709436413350792580031865208055028225505246693006549489973557565065127150402781511898084006504486487947188874181724086987074653094160005104026614181001521430764700411445135280457498360200012053405505497043716470616360261137507586827740698922035405333171854426802352253491932489320583045324091887698153197339984502792810541136262837121041956419703956631733416651056220743964688267971046780229005505390625654686170944852741527443759663737120817521153194844711369873072328237024768767889749680013634413466544679113848069669803415308573388809289225051271015355140994000898545063775216688037996967677488670891495776882846988167742373923049194761342449362440742979150058998005145077619194668513387564646286583087514734514144530675299253632481704169647209152134204437840659654950428242447685765322832992595013524976730988072632128143696978573669425547459666333465611818549867459096125553960434034456982970664184844585301457872265738048802359250560214408893263878894492429879719485950929731155546582441647335675332595674889889705891234361104046848140039969055627494954825172034085933644690444209845977411624004327449986236414926465462340717189412509983703462698251879060489609689615040561971027711738733563011941434130417817851547611793962461529503338474009210284533613397788897786465639261237595159060553394907432895036038869962516873341962976492899838031578435515151741105917528985029154100747958873969403676833613067499303101406292820940098278849892502030502684009558309123812280984102429257073546384492616065479577310398870189485130611782959369953705511785530294807814646213759011406685621587906288211344737692202736430001002328068689870621478136262002544312120400352239105615879463462038734398203512391400566938098515131445589841202277161626973016688766756754570527765741185375646955255094949445601448715267089240232004302818239658467265032525501378345262121878372208086895617584275108873997253699078559911994505413883653363974495288069975765242737846462651013210733587614844360234305034390501463139596670668568040830633457690552864923225265357045766855714092007735292440104673220912191854670025518893612326475106502229824676510597080114048101051113466582285216397175247978883879614010358073963183704076711591954290342595764768096637852368595131416588755062963942245377201971861257209389540907248261765049726996325859933965733824591331748572662469605153384515893147152664947642044363590566923540836829973678502389362557163123943286315548199913404043297988100784655859126355399758068264268351442581444570228090758039658069571389580875012194825928643585950173435459488493325017831908348880651013760826635987587891422046433426662959612357446489582443878450378837608590396158776532608309873813973413456695282561530073505855858337839356569592661770859793919010582295177867937935320252310160833578095673169777958876202261317983257882537361970417104219814818443147922947883788608133086859591250819786735578319564881009863416882235541451401739169269211347424565302804298357092364048599358071981517167382454406992514458281837493474082428375989560780389769522517377326107737811372488626883035268673245622123619779376048832214085711338843761662827024788849568262461610903143283911728121767246912695567309729085617875552666588903557367715432767802080442421970124711154676331579342471933618725510511983989116993742723617106648746950999548799901088542968417543781340007385342195673494546824078237860097679353537295515013867313023658110331215555549020964108556461532787455783729609282470901886003427839913229920771350199012951831434602804533185329992247438675763667837275841530097230804889364839081632025406735803778418241241638613081223403422710125997232427036030239156719083747237671808933249830014704691970002707335638222398887301565798053406757099889484163862490687701323758259491332452388010945420747212256185988772525812269465929262100948259770377634913556701237989972921564833430501380787094249962014782916920597653693676844202920937283601685132726677361291354985958413946811801201447979876519764494706772251712586997245318766906085498918901197000809884550645044096122496486865721341939659027209539011682906551087140526060626866814172434630876551829027854393102987406625209610593697918456360031413846762178802437456817789446210261992348789417498930859941793337562822446621676529742002641439411473865258278552550877348632285998928668711471865002790777991359798971644230943535050241258925072452873537468641100077496609539818838769271355850677725899290610431433390918435510748361689461033016449448427592621129517378110785081380611763124502437956141419829312339937065984337512589256999982744991080513395342792072768886836073391667249421934486788687794394750962049134760700931806027629352650255245012437751493220040256163345759989007508844748768777634399828016406030177362415204096588529380858449884330713466886044896433336935774291269254127895079974438843526894301470209114576088301719389471829949625351355146949308723780122670638419032306679592198113763367551083310781243447857221568717947854830037027111429067521316597830525569144923736024896093770804367881821846100659238118185465732685737327641709795187612911861327283494587371115822379175911621596845930745912636893566155724255222126100382781035884245969124999932914524462038664563161965477203763224274146408257857966457148761039881550288380435484443624137461778969082050451519371630861753413120405167225168999584012402301042752157477311416116589559636940665631391360748241974259056397768145610784753609160165538844822957959233307444978768257069538706425800986529252530673131820667208749913410947250192916182655938537953101695906838154484111464281120883174553170787622301142296833309879986126128354591159586412801314856564113107828605332272302902427384810935922623564376505485960191978617504457340026119937793808392022819958656509851895687365166096659377325526523876295175914153528888359926012181242672757997716505477269427950482904567245556007258635752456596275534515673706213864533610122913109548598270813961987453882095340968425204042478787509031022004141183499724762933376373127144572052347372648552371214175476818131058653968955031604759712912440988513481223172144147105679477016801613574893710693195152065637752544605405789552089940514937578873846429615593734501677724204469829175925586725004962094449113026157089666510051138496130161339958438771202503761970089810749677207131404288524790109519102939230709864076797532032201029499507403981098575786766692704305906772842990540353282446415118113199644031770655840950454492159761960537342489478539686075588303300530201354980157899773508383025603789759529930872246675112085003181578386450505125001469584774350804360856505573088562597852733183639419243414827265117841692473976398253871951918334070910727714911345888633262577026043175168928375160042837276043160304438467058641256670670830569057325813341057246706259322288161051340021056960207875361160228111356835016650295562589414406817638491637916569794915642313693896216278483850162403081481403276139830331890363916335228222160522156914651332094210389785770535336804536358954772965764681222730546122792432346092237600999087821938757354395106639718833553843444811250582857125479657271525459194209733343784142781243697345941008152039448386300373612362258008710598327322412111836383565254934632442160594457637006425914896034854681093024880060157312735940026241974141738273088731280706121572078906053984385187720446616022845792902148695360379004788939273602361233590941692279949708015089503365881970161571801014736392027910164969586544762595133362332897604874279675479646035099937470648404053710666841738173453326726119539092552397021180702933450748384995403726885033043098959764067965828013769462208323225558621066452961879502997250199687976673034352711333650017061684285676831723030667285390364858498618749986023829549670233591212831093550794542421130510405784542433003208910074661245104163711848634691369345167643197615279764092235900726102194556971933688016604070807168540632599677751442505749204447448401834378374289770735604349170115307537008102338025382342610806048631355477947763893325226193411464979678564826619652313924444869187357068128673540204292340274396483229962423107013635078668239345398502942297043709368337294905542775096500680981270880108276524212553701748286988753340966285953331219305251845473476880981820241018831413449598322460998977218649612436519218421143742989098974238164602139750202020471823339446750358400380657394112328845831206018426076163945066676909950859275113931817406531522720731194165130755839451258714765422885321873934428069823175327628490491334148194025189110297239777507305363657032148581531127878957035492890456435128299976239831307748021527131344046417175559362332616411009132479259048337386039725926032497186587134691047410796333024011216118144579696403446650275190586372247332282240217950005195286172355507289603387023868291584106304554111883856094553096133728572819003735561851918221746480690937325836161162321248849952600806258061470929504588630641637829917820544051736523649655272483954710313614657239858168620213400366758504440976043622314263401594409769942136370832823837766312054078255788276483081705605071878001552635140418486319225750583833902552603751418990709056925260358827330638744081786971703260298167301465296508017828119413034919662625003905835080805571466447698236940009872034037808367987611256666990777418605208417409346846384998173705836335248095080686139791198992907607211062424472025875282542673182281866399004375433528978787631628358481113196235283071459212387201487473827970514682180893695109919096860284036350123530246879938122300729802069605488663373552701832214571239675592858170691244459260718131781235691654737102837855356603911651541549736002685789011024055543135693781258453947677663435708272658364834043499757369871121250800086365273063700298125145814642507275122194816589579801892767649553944726068962963829385764221978964291933452609463037956637625931900544413544555376599630190660078659805170370618274578971268026756992685818889015039081372926767489435321691073441867886726408868750335204601286311102590007912829157316302089957819686514144691868596090032994174633678244592370718175112767956346411661605910900939043026882831179113268761654946443354657041238203858335631052581211600572073740366136889538850773295814900714372867105347520400733120137417013638986513650733821011729257567636695657746124288535345260011605406712859300559332769927008221964525309917328279576526627065203367023093349585347843634443315619875854561540778460380513403342155683075281286797552678584117033867956700414883831424996619191586862329069009298682741743375530655674667397446596539604607579044418442756051338776271508696515966504444105078950169742323305179657461218268311122457532980434784024942231142723340079538520408398078774492433544830281385259177035390043663262118482955694254936151656786867405388119181053707535759214682742234419520012403831896406740082408831823469132127611952197007137277545060159748929239612393159357239355973292258555011363759882047340089642834906956682440948684378305783219138172688993962894967874780233487308094328934918350034143899728546908777004520025123801008767561791239597843693437309687690564623971739771576498724209627355706620451613432690355419829090433254145334103702155221815503360821596011899625626116433362568949124324275808812760671523618771272318709292889487283872543293332048835801803871509922725442485086149497540281077811802724191179237222089347822697200833757437567643915062882338606340345448203682554558163956307285916061389389113773230333210434179261503080469909767386697837228084838956330853307552932668155753262312672934106836810246338030827768852514331403930697588634111123273910209318761986927528322081516656998135992960068832497420746278770723891068241790035957530892380247283692180049081712164139519074818881760075550131497777978951519605629286048936695758319784450958263175294644204541252346426732448311975981003840070657248236873413637333487922078541776621358071722204995716380586243115546969247891882671207367796359349027871174084936635286557514446195462821497747956685108825790116544858874073840565754679547257753210792100312751055122453523039622850389294508171587738376260838682260073859496880802204450415282769361223531780636765255176261326560526386240243995104628651220010252004167405129047172823158175901576002851369404757002055732152558722947153714512605383130760663923097711567976892476497511863832232461437874773255334676066806891708824308109112106255703579768964164484855218940290492437199443236224461001639215717248649183653604145835547326639057504852180405019888928269120418875555959065848433235769765661050417176032158978762212438108454554442773839908353030350762850940924570054784508494596418937902110043050640360269360941782090327824464875694924127884633934938125016185358179860805570915120784428075749695942740336943454058621400342499368150800903333720288728190491849729690329259189756498991873576236682398128442906802921418603288042320622407152994447471540949328779012296315923320330646133132960333341502766698710276945491930759439688822064658803905173484421172106167514415023995063818374042803408492319691995410434315190312978654855714314818242897548761383874639814213994179570255038325291487750519290681601502557466260709000034693712767449196574242353717689993973524921655620805597704920918836471822092932610674435385171204798588959998773683966598169646002100050030838193601120148510757354354954051175639893022529024801590360997369874421117607857626217728360394680149357327398289396867504672926211356706764606340356608152727769490481974749568509863265920032201097281884217076958121457009471547569883543267972957042827944992046947208645239751955295296514600491650765475854380417644982655487423701599598184124840383259287993001950238373746974963311833310235050526883245644420571354466762035848002655551705203550305197750180188274656193483365140241973131315871070390759807072569346797317541769378245344622326682910159036722876716205494679823843533308954119585517377262098982888906704761650653080065076259666893464745839030772346698714131677909815992241164862206114957354143442039982273266093806602323170396262469218868623180070859620762583675179568307249766253649203168408731116401909859663762156246662178932890426362623869829638631621806081605569257137146011632196601992647743252034842746710854200931584490921133727475088683964432549809432972776415711589188816376460672288429240411987610314261165458654716857665557561491832132425513763026004166138949206632961109608440727703378702913431075137471452975174584199751949634381799157145757957806556682111834051694144713545745648313433648979910023718277708979613202652457246530910947663981366462847502356960837457673710422661725485751149289290924725637041822250025403721068720304783587073977033182056382443205914628081439300201617711683347594637835904468049674057878015919735949369300079086133006837946703339249253029086161182987397153181250095779551556117038761963225978176857327810730455388540894860484782788341727192718412735377196853483308551778090129085342293259136430125675882571331186082869648334944873133807252962273848084057555686391741571903306987594004809067149608567910122538182336907128623231254978949152330516770684689165730513634617563555449018594971597853183078567352645284127083865080028292287909304857636832511394551008225727192884211217941199876726127663979602355340761000328654256682557104113065992231867129705844542064693843469882904811310385675794652430028772363672288162591514409627541326245013538504912485833217384612367200203937469975636613001453442601078730412187379993105772585910796593671046177223650319896776260512812025479168291382479865828370983554172583616186890116242049178409930084040517065123951358126855605629538022489466987996009671307697034088080681869991526940257187375991507259865188629742755889907030189712976180544096302232178695089364120881962182688973775131847213000669093435015593923511392939095233013760221023582056314861868030679773634208295690087687100473731272713230235831107602051330758015066253991821889276058150154221393290505975813527200985160147954291630428721451112866910031159113449279860895120077429566853572336231311842153084287617483134700974969624720330314705858232030425615196113823441620860113570610990700300459940010668070652090257427447234613036467529767672039764517385049868721860608634202954997078017555590486225602961377812854200807039313560615898255409473338875795211004508798377885421645990449416135339251414683585711355566156857790402386541077835836339772294078237879829889477837013199109470557056993488129913319414456327233856079239873629031723798107525364487662240510230145314597586677588288104926604248661471676837794120354481896567505755684909937399790556910489229126701401273163394725031044928352458480393875624806934386471721078562848892497610987388911375222347740132091647515119079832575453036935087755140300888817532767042750723949425364670336776951679573961159308659383387563347366001792950836344944077957279773504343145869355200058471551634270200200661929275679791252288123408493513801195735548960527469374337082457414586314181060265623495495925744916950418237461410148838005494957953510643061102559821591442605945198927157301975920692048523979765155847692363824002181223255812182181478454543118625366937151041299445456416763962731517467248281007588458575463451845604317337830903852581788784833332170722893770843217443137638216913153117749917700538477770268435966952875090812438805269633463357989298089205295239939376396007311452728627203262985822667210235879621814088909870715689244080277313871739185897450038819110423949522643160639514130675208858632481956085573517833159213414939913187295582361372342487985860463766464211774604383132035954299643169656944470564729215024851113800021320660418110066924573698285376949335811565624817049821687539946512938616053584516376014383970664230009156407739362246284362963019633963792623005901422817591250916985976182562941113574416784917904851864985385003339563169467997502185283098574660711816235050617711816884572033399228556671511890445799362664622824238552697471540650620334476692707749466161941441768212362379808395669045964567412973706528708742331374995233427279100021405559702462066409548821721594824403224220087877358827609159549133850242220145834646274855522225384215197164315240067928380346539530223450930828711067126656372294273332786205021085988016002934080813014085813695118967940691033354366613833038668313037429840283288310146604753556535749320464942004548990242198850809274921605248310260610484641618954050847775556771692300123897549758917674700913172098354272523556077040167480078425585777383967487625166181790344656508815819576744870329009751134793653581548801081514951043323516415621401270620185419714881704481857551782619735060061033640479947168417297525305137488133995834689780679533722998239629773923005916072425719367019629731385272089235892265351806676499554074009587624885891547818077029765147269575483494162659012751008884223013644634882741624774450399197391545293560873472786756639507221770551794311312685579706081825905587499315340567194267740979429345097213938445801935435140175225201541840828758148225858139484507603289817720801695940939368671035462111251593577848284452058422442843766773505520847087461133450970638923125247437272537750718229263319181755955313675357375215477556406601522733026355888967411222795631875124756303028677298487635307051038394539887128883257492790687073669328330490875696275443291907805493984606464055775360708185931425806416051872750244157586400225305259404444534597805150895721986187859129016525042782992218518464588876455585153697392666429644802141057348048679904320068427832034819177304835183539003403931114581806697509043502572938328071839278893990467063819609730431391122439220639012234614607531605453521663133564294993534036272773497184942720227482913360196007856098999139113054167152652656921962393987430374373825943715639252638748964838214033515408965018512794270487718575312760745498456997230452055886085986443981098699251942223339318441653890939954061465051668334578737608771969929638970382822774849854215207312428452464464890341255336838790745507291960599999942483140452967070280822733211388256584942651117152768978855185008347596877184714558109470844030915592263596659026276956480715786009794692884725142143222848396819293966197718737873896403184122658334497458277917157908478392122189149731724015049813790424460297164908954227189432823276565116962395172367096202664706708282728114589853422129088619791164385007032112728879363101291962253152880110895946601705151449340357735443555796285867746963098021098859846985044701593764019733139970632451858685832486374907483083629597168773389331373911752896577859347677553533140989762280305864619839982901489099510209417273158688374187221767081912391014899746452781482286559905987471220965098750012800172508353868707526375181605405797681916037694290892053386786258294143538689276181770050889396199596606758028335775862879925649869061477389653501143293648214885965727243688452056504694527735320946989182060856631156502026038346256656156433041555040865960924312449437213906251693810670883637074327586466495967949367804445046402841275457136547286225472478990423879035553499620195554956492004556900634002604861066409147691132243228090954272686157346280868741019937943089829767192278750223093709608823947073367679530859804318728948756041452396289512705891836765023429119260027779880057666827771579152483524817344144028277299790011542077804129853763499288017825164509061264112905996621456084453649017869549049701806731521837101088470520823560249226038650161595442832521447764032463994572171071963299114867937746910393976628180286858685054551810245501718027276767229411338457199015907028707902781058637271626418835920273977212450478755562315683127388876197763609013791600662666931002649120767416061410270863517006900161462075595019052799402414834902476810886806231861704334696969476662689664544262469658379324712770909038460567474060757295019721077144623367828852277010935678805775092437544765006889922358841454914170952480012522134174869459944015156290427447770606360240485322015888375601876662083758495027138634632070917502136428235632753317231573650055741703712084451943442543470523120880270840207904790155636450557390319286088630868176038074395126969071027132161631107327648653041919032348197642548532650093819832921994492400003932392158807403566040815374335873890604979561272113771414500253562494706467857289897300070288664339686578023564250525168171425070166547286787199120837630513028021118072858464636551436460703796263107606272616323559865120870120305837995677688547318151330993678239024125549818927502138170999841713760465191584160032331129229465370040918246858672862844063848982118275192982414961608183382510347239335129851057518337720492160764854856901468106955813818587325390723554738049761005082423067838661397460551896037911000209804121664000307938886324114834656857417926242829707437033588790261662676158411762101499154694528815359345093497842239633530509085914604873222356539742757249614445629278762246757623537133269827061950109789974266617138496176610911601881565010399157460740190759712905579094434166412753349072434085306639224951838962066254497670319256029631102156925963942042594728876009206811149080857834229389115758028861802259031222965347669134569803155309899921803529790023207113933233512195499489217464063253657081741026746025553408213993057552120426369193381585979919139348208692901421769897296980368888249911927052323954314041329891586373280170797586048599920474895899575769004699339131461855773787053505475227478345840896797891401750485478195855240740624031669924339443065196113131300853722036875240443940787211812381351272905018724388580965981463930601380376411387234162571745304539370152976931859868185534694282323253684172570068416827789588728868043649231587087000447440992047287195052790065446816881849111022188944637614427390140857655451085853463047290741847744116345412559993649312544946319449970182261305215774365264140784937686913691162988331998517676130418132262490883593385655268578924713527102385810269994847613043059889626966240525410688162671998743961805845566021657814649585942896228837485872529488753504877404629433275992208111384692682779586135545395625024627303020976863141453790387592023374281243375487318287056814226326220546470391994249131289260687373755835665382414589868835226905458338217937123095864974902269835852298038088177810846370607505745593365667388085807866779259341596107255178694668581707670520105424128590112380688695361998037342919277972295846145880431026991985350893272404161967535801503808186277974736439361150947150362472040558543679314429525843455525527622658062229757535791331176023381828301683171650074056404906071860236179820260991556520363184370162720689141181632139697263800850234939996888167582107289210613158312838305563964640054593527983791508855345076098651824405914808701494170053596416161585625018467374389972717998654915200730088218268185177621924830453728216026483455316947662020096313901687039796243679106098667456298074804192634655692162794581391433193720152199662462644118171042899079939612615570788814878213687798991799813533857468478216475763329307653381178180329568514949729346950485633168039317513297179344752199684508712822908389322989971458853314298272098260051053485080302677897010874196964668710285248141714578840019534358959820231277453826725409665650261940783024579564204680582175998691991056041207269612544104767060442812960312247835519197292918847081424098411297418056685599507934450343402635703628544897265195963559349983824002398465960286026511731926611517443499811393054396857783322021538663048102755215910046079845510353637909810033964164146225107157866763954468945871512816656688915882676575927853844013053097983245534880316894132722296583666818988370811102036604983985782500433714639704328488606357230577550853468805106291842888136342935523400198354189147680621072650099658165565643768652801992459596111568350607742588375862843692867036443259083502101963548639411458625788238637017732830141055116927623183637151687357965958333605078001830339446453433105916166528183817732498034307276647975591145734178615901767366055053626967324736538605803682697625910834289284358378838013683182419075738838737207034169402213975049970055921986452266955780634452329559818801311374074015874421888096717388969225132048407626755690546049651583439674731703434882780527389179317349463304077512412752440202712129655382376796402768253584225363380570508278991288905994397047192944981933074713705153079947087176608527547218378699380075113679045141063813102963237601557902597911131059847437162667472535546862309576038203617633802109859087518062701867264349912735645741231276958436064867993503532160748511244766692722868830889574340831238266668015336686786627579630945124453963591461259609063085706331565381766854115459204238475189280808963357094904548128713966539696495558677368812615924901398053603330608671962465213629569579823939899064247734794662304050363364066850371715202908234743163118313127780447076316278292838571027120377821795868458872574996965133248137667237605671453968984622517258199119824248027066265927104933546296985638391991608632362674559176829911022664275342890902022535521869710832503662553670498362225433991576290037463433181114947398970680588637601710497510228079609346998129224662267315055830394511775268025233756839839994895754983208359813356238598104808069179715059620135355872738182818665303878820091729401840760899516651418694912178042607735368009462402018346344002583525991685256850382907415667619481178720621633214579104632358747081080575386962306391708103946626920006811755386939187722109084390966591870083047685711240035812893772512807985230776755979750031312229202513563302902361896476617685024657070489960016874725711873665733829547552953114722089759067603638709356011087330038163047819214521258271791906521078023641622306676203164827697615031880293038054567402627831993502940784715151342139640185785695809482889410899786395362572834996635759963930868964188281929125306856634325907056236610489359046658889690653268589285979333909576215722313826058929455239687943122448470607521477479178329603607975071592582721924599640739568575796469099537917175272310703134746458468877204272531988125102899622115201782100836412672998021528833685398285847053705956521735650752970851165782221307053200836291940089716231736808670402365669094005753254620332313498474208764358031910256593030242244481190934640142118045144886529170306438587135659284094975760518945947559945039807017688201243743549378916292344553112126101004850727650149655156834190394071286417045422579490062164606179220188591419240371307467114665349559940967911243211314152084828736058375381822342184045885077733684165668405225558975337422438455883201746999685253886590020500385505609511924068146914816774679092409208280897658808842698416607384242054602673946787521627575253625916926309803069928388841380087238928999582189834248878070106881461604639906282345990375023478777525496803064659740893376232877952631290765113297440426952996364050961683245110299962358016671944017868556003159581034905521836912375305734950808062775321638537016711507622031052383671305171474843260965395767152014370416780288847855724840587150461133111849243460120637496862908621281373244488420982508364884597453254051493727410382284271496615272708818629809326326228416281209597530682878202219192482540732081060883248824678925443553876182357149579782078256559001726159411421095362620041890641941116092261866028193389603085476706332210225724910766161926712734171447431160070849770234314466069787493041597098765475241027593589050714406777402590792857579038499279279723405059234583554899902328804369355325086354938966271136599138956155025460150639833714786989364740134691705185162426956403589354908366181436338299752413852492055735206911560936708563820153598950074574624991928496696193300498144341710004339161670690159091668859478722151211493391035545075040539872321453518944500063318477938409087344881183783431339660150778965019232172059668263456012698728371853423865485042619209333350166367454460100907032194870589246350645347515190840815503893156169837048941105675389999924497223427926496143199213700415075512163825573618509908851412899981101101900084394249526687274387473357471778119149271528567186529233234629459323777819990619154797942285875769451753217016630311544539159838484004026962457356557044171527575619256827737030964296089260989760821506568042061863631591759945311849011691170579574709513110761126851296815326745379949158808644561093737927849587593141082287224747994934056688767814104581337944247697680672076733671769085595064870084810884895918285331631125594613927619890526658478846288047294336002842321548206603827559698723060213632680921127440452569376409478774631946190507711037382581535362741909928906866609372802034805852317897091377721398047621672580406736558261140674449279786549905126018292341720185936602422265778021264145534125835712783426970600347928432960978345821819418696240867305924707214244825292051525699873836062180152532812017023088602434354604590315616176659300495005925292402321448160910087020360767423701253300518601403916937758743106515353177670240015767181010278376978737417791455406895784057501415581311201476882805359873240328963444423682371513957855818988332104066894773845398080431308494141289764747666867468477018487434954435330954561472563502498352626636578934691363338395349008340821156875195274979868255638460291701806299831761001700665977010042577007009193430571939586086919173053821858645461298116811050616802783758056330235227654784111206254053129822952077432760878687135060002229938139837100038759074297883931357812966165366745232732985847105105852513450384922149195064372270932246287146060931575340995826376824936210379119262218447264348179366833905082394439166092664467697988219822935661043348897022981558889462268189578871219391857328868575855422786205701272209064018484193054998098932596294977660203553352915097623263688215298909311335175346337717240674349882293601420343029973921095243828220010556601192305647248112588744841102743894784880350349545225701893460460632154689808497976449241661256862890830849482778726810431928270103663264072402866743093294652562732226337501148701209614820650283082746473216370178967909195473701447219196973806010280065260112638228019680408655188964586117401559858667576835778230149650151300664271721524873077655786460814275588470397620225589956544705816581255230255771149798312757243777637806834747966174345989165391745560785697294967147658286927705512096637417861204122901577054021365484181394671315305887413398670165950477247146173318260440553025115218845419323685611529179126394587545912435732968077320246294638810155112617425651278421748717501880954087528414523121118772182193293802794526662648629080071322536443907018157256321810190826568823804220613212672921399951584810477150332667718333212068234596223870913003191405484271382029115026910666661012648864816001910902263897464051483433426996268872580081134928166134845708297098135254087276292579471088589133696693991029319584153001858499687073546446829811276640800952822977170513246214423021166278488438990157497404195217058628263309189773110563054940901307150971568659926636178096144340316078942507928526497119099048908781436509691877842441028435380828803634647800470398943328733317347634006958068398035411010069964850661382735916965452444446271269851327415995024148949771437233348623990868604014297849894219990254333885221292831934146858833227578055425302314845015705133592457058430922468619956852420541651803389825474200324031912815063949942646455103056803953117911088791699511579711760334456747925846529229149458568323201938578086992905254070820778832244938715045999596835891939901570311591619694731961404647959966519089479846377820396016526710037237263551624459097890515352920313724525788602055139102691002944105582334938377853517010824603754547914178211519942450111368957644831829535443514136248420324014984560431644657454556870247172774072357902864548925725237062993529354402943501241261178766741547747039750125521977384340485958985715407923308099647279402294681765827343334643427780415432814471061361237018915850305051940460671556894614043783206506841640192403963718985019945138705929325350141003675836542328227327798792783457211533250629241574295479423394841787225629165310244643802772283492010675517495543032952944280796200717952330186241397098527930173773684450782635086530963299995440103283330383841019486384005638858126226270723936574639462632039902306160935162725721366769109718049577647410481129473486610429315976813406678107218400182909881551493105336559113872100105727175336540930244981598470895763993994847521294331374936451910526522538642631353157410655783052555312705234876318270031905732711517853048691923719674566383265797369048396406001411433769939509581606472915983797312884776663153512195510909688175884204586844355646089154085104349482799172554660053827055973260545879496461277627295933836103487484436195648159374106974044794758175127570961430241291873927348120031124250449736068656870748671098772614046421160825290558641425802926302182751040425245557449282975725626964525564412455923880581968362361639719730000643290722619678476456224771727561156652278254334257637707695103713449732111418191410542803933639311447000573961000725933962947376050688246238427940775632139680574273201400535646804675604223537119030894520982651433539233229192344783046749608144143101983571345393654702249708368717575943921460762365816123135453621674488272959176512737479165176472297678298317124830226827854398422617928026339461655169033832678873011453217128051663394496216485862439850413964001439808029873993616846615951354141022762932149721867580457255615987065513256346809272410497183268508726030590455807164820098590250627141430732474208698251429755304505687275477689711779262545361584196986262524620140275571329081930835623273912391269148324891698310491603435407785229619704603262654423729843202131871580605805032615488935179331503387177434342027077838773943811184182998520402621484197694437867064901524318159840510012738235819501244021694920847216448536369888568023987184232109815655459428653067577875932931334496885287074712109269124036318716835584125635004397378678126828193474240534424571994534472226743907247011403476347050158448503142064561255139088733235144660470408303586200581082743022001132422135382984230374329321904488973857198508704592976030477686201892747049135617497567964799698785904290005102811191179664988391855302734180612592488789366844574584039120798794151504594306648893943618251771889786546024615306251241896471741963660454241941547378625927815422067972408269880951107731743969176166186884711909282684585341024932674453035539377140056928813034874117446730148918932211256457963037975398694243674820031690096850793103826616948538016237525698728070453838376848919654180452903704182316448248421048368341514373754252760420254903992336228036282937713252432568418024072774514185997447911469922191081230721259123569032324246476711836221251403119605302998916414714576460359800730648371449532028318847146189199586774928807672945663846732114248876250553862170441915260923478296795408639878389250221609893368693116008936496133878410257921326902552594311207170627072310495539627821546307604122268683176121258927994168923733887415029548942516073008159401791014124700737407387801552436319239785046341384936971088349318452708791879759277476678436308295728415570688436592318120839940155552889526841976038415963873724726560752070653388993817936988734597640056519344129113726070903579297584660482430431124658205927296066402345599200467045482946896369691460650736125225353231562084455865737907371550597144028281986990361464963260479148809262874573614274070596503769677172187813200944275631602406546338755262873675377296957946073514806041988791789329579158862975411898490156563154429439882653527983102576426874444256274384309711537936993541099898223988550397517100120799312080314803842556687468622298865384899601709610634239687681202120438168155947672886200172466182311509105378143358321296064423289808808263038020244116013126606813491476029230412392235734626407903153722512857515919895285023861117971351414213492729760737525165338877388243329740330808410517068199015120261027388576715359109766842731840247952570360871464525350141495572529135145008623574723196735580621468061009005379731874662592999684181908508906153735537217980712361067532934233115627865116788525551627744195903846741014646954290789325984329823119692966446860132026999040174049954758033980521998775683236170443656080562721904762627840062553498880683584869643971412412750424194752642729800587765206755642474655769626706083857159684303811052203136305108818458965813635552903186802959232344587187542198191907045295289051469434351814357906490568756883279870598926090278199849046892029843640877704249813614839115290669146664179689989599538663347414214997512048045030434467063817926986362100290249831757854281099309333777665100383497483769455623512050232943317445865919285064632602446059155206303114272647334624042995771020021229002410475830519055724573617327809227592161806704512300497921346858132033954863369259695137140641042116424298825249428582955541974439570280181683998759189257508365610630683455020769594058605841129508814005853483204505978999719505762892451065114906659763803583655064165410177981387853464392890602309033678832873580751119799580278770197654519657133520273491417324574297693625116740550399071664368748256199900968249680699138251099287178986277871703484739919352746368691487666480148632514967094158465992378809174469178521844232451996740436241480629195924309571394943977113076546046091941014253996680642699653261526052435875998349357342014230683954616666275623614911079806439281712464907906184540468820537769306202811366538993240518215863898736132260216162012921152236217532999145469476802970887460595946172276970502275160905839730174918011531342603688309925603606629627603480686267942271166320770940557857000173476324211437041926341251243855928502600968040558116650444676225823329671136251193621257223813644743186514311143606070015710437397474739546661711951239270691382390227694821268672166060981476759782775983627642863660293624220467637213291687331776091733554743935824721947289242002451905451977271242439529636232733433080235827094884935152974817968066897096372430201793401129480974561047108516370395169877924934800309205594198662382826404887178154013322838329013421488948234897213352403057278022679892824110725738450428934659877428404792679200282531839594719345679883669123396143877359224300308084307854720797223833847302527059996625347777082199426771130903905506085510652145638192595396196731915080582413961862949690153144623621327921946076208172672463478859467342194765919476933656716517132906932395275471281788084169586988443037850113516020724303797899700920228621317073203457548385361525044326391680484308673224084496798989813626862014955675039947686632924316240860744391785486678972087267694216070620293961711254270537125054052416231166393097107265043692799214966527189829278788007789986421674678594656537859154488600132673637435248731477203665589477136383478575635766128814731455962537430686684540665560145256857521316045360974080662294956935493364001450033469243689518946448601228035559030762414900686161063711284312716330854701383006442853804708189148419266853950504470554051655226880654629225183048506526725334101595070894931735576622350525352719864120014632749532097447662458932660495629139670113185447452462465859511460277542930093630334056514143064699319023476387872922533799787964483595753882895495814505800528773019404090350921301619020481333512448396213714673152489742500908023041392194631375639118432305065891083746321380461580424858735076306814756060074203889375175541740547121927364965198925788107537010022982752632447649401412113116173392645300985544079327796785252897171408420736523512559652714366803889798476656093830393612275882695785052805863016114087010963577843177004249889655342994996784375539875928368017448530102745758759065412873829879827861198025057541439778626136010651398831916430030018732182185193669132255782600522115797494958141395289223611687259700009502585036866414725602603415428304828854032083567677901608200462229087646214107587368451286018862783221683969319680651973893176347239294495588553436473696218110282215326670685348798820422141996881794013919382835834584740476954696460774502478006787443004265713819614423085165611166025078289699676364107541545454897848479639742673381064395124946235285389492105437104804940513832056854191957656447462464890135030609851819367363965687923721033474098366729517696193379378894641783389217190369261477385083790575203339144676820266778546634605974033096494905233302910820669344044917455997794669826861941236176765899443075508387635081555198743237386527542267740597112055683157591217116461250033122686594922320170258335880939288558861624433011042802398215317587538555961429745217352507384407965799024875726342268220552681047499540759465363265767100383244453845032895347016826557420332190286685333709853956155787883709412290314493940199058688948274929729593186008258404889396172937955463611504837753317596706720607678099957434228889498628235520143613796647963658887374967735106419633115562630722480093980478531678203202644481384546715659694747704378983714638063837394323162857538193936163718373547536151082744767601712886012193923280271779537081966961370935735574805391730476037064124360737386221129563472304421126077125849658430411616426452648840518022337571222662289056881819970063128638534947607260154997097397498376269171512289989733891395809036478400339310936416402140508366784408271193419358692095506283132797176707600077088255863157715444388813158838637526597338577042930721293380091138772021248139204444285690492665009892171288619425513617726339145376530698044599063613671863034703739283343188156333237794850170233657649920071222329262050574473571182217537942133627157537478981326869350131450947789640291025365690659705802224494248931311941388318531352162728432526410942379464290975874020879695385165240612770196865772915385842285835613930208273958054484617064941646776013436827389877698942558150440518246664955164920823057855488701390065031328384235486873587790253226299266189274268496426720037616186433635120218949808567004176287049228228040101846477329074072730627640741686733945056691855046603448095522404740387332590649486671193244068696738028960747684860680916058190146861632208033271024038166707535198143228115258390204025549394477280925551160362564099631667156043700981868587305168453783625098690474839080975368422257507265378763195786958268393549423202194662405486076461269500178165556158066024752405280468045312213429235779042251173608132074126170144676194760017581608801245998551882531774927783423914719996887057900795941669623612807244863350684600700931315230749483471842969748286196431237711864178842275996138987547144776009550759599470556799310673377572379682486975592207074341935304441297803857232550178019356067138698796452635683138296612723945892821006704131285066039675378579768458972978335720182336475303941760710262472615898608062551901281643994704502400932609988161489069213351943048404848226719328869476253701190638951579345079036236336032997466689177970719475708193387292019095422478409605271919716571914295762355142479336217174101778308976565951381137181602835697256536548503975984922169501715054164875860840730040987645175417083342537038741654191501060748726900116521227725842136820672473549338909333065157849182061953179012626782071312208355296411144329325991578778123158856084726819816442237283867746239309381036592946492909854850323761348019454157498145516363926162914976779119845752249602657701209978751285956542669937227265286351312053684451481965265252281063208391212690268860871518702851706151330516110838010110342286923903436439994869112166339355812995040277008780361905515395516685382031472769262067541448074524891559595993096628197602521789300312030486204377408949739461053429319645376712607328472396796726015303680602266015770122572982956207695625116880307851967950908050347708261155493536394903763922137015743095317563444246911187680936152826024468874477279730582109315394267706177477519209096887945841084304341668829299954383315405072302643823102054700515626765403722600381594596369996340297835991201255010316033547551689020030863768648966064956980143676580357262805978103840676595367799392469249144520717480723229587405468218154237280353721931874013077946968460531722414188030687579696767668528762167972549889284818191387819356796050919021787498425146987245303623418678713506767574445579598575435820145382242097062562058040887548539261204608190079357548798817780654593971738469888267379816827955607584717351911521046801403314611080823607569636933625557558978042721560658257397857020850031538511902949763900943266670226805646775558987747782903070622416002790672047518864607328763922704121553379706430199821274627928726601497260367159905376363261327667383070406752549918837712159275034067005569318978007073004251623269335058402433279578137013067686048336364812518797466561768388650867950615371475604381967240652717206188249343907248841849606702179667371166975548145833732434946293771618189361420969385684645796836082498774597808650000630033197724203942096629645810429596988299076968131542945551304802510566451520420580139203024503146406059496876481138478757457381062600367677998139785924813691403653312186045051679035829157867712055510324727767832203049377500011284900154757526902870456301792786342060826001658224903649354259889283258149022952413962875021129469789234330543963418530041652676625284737064152522225431439504206272927393373843644830271778020150939628815823734006772392199278667311390296753674857792041117611011395989704396177335899594979003811599837141211825321015440806558358873406286994918352493420983818393278705229528099222039525207097416304607551702294316115626897603214601792111598554246586701809933828951730669313918533127148220343979474137149751335810929343788058052633654381494090701944631939052671086947395704410740828859423366054491226765514172863054676215476399659252595165200109910588765702728930452037306346664003290733219780148532269071663251106139952086818889810022660715302904776928849109053877455930095892896836530484107928161582072361294123518990425948168307615828537460639135796757583747749806548998442215538956138985279981380817392287785661125961223067204593741033493410159207188554948886618381101386698989086821075624735349796989819134811767792521576304357248281297394119169857918785970280248820083141121797697122129541500733209300968557890995808514307137573253475742130701901549952566235191139734768217792505814063139391085462889254217232219728266598488789286572470649534402238401338502657063435980571481416579420398400003476826776343798960813905285560475262138294517087907440113199162438287298549942074413012108290320889661572039926294610197745215345294134124842315120890523703400771735295567053530840444583949677617614573240652136824330142535861877736683487480631763508772162891395875082798469176791450813980941230848552265371596623792652174163724794676467760969417495763108105979698587328826826366213742764594506892712770667756047446254176882122343163142486370178887613507054577161292418656696875415790204544892282055937351473214671859528488925650546255816974346842253891265967287360713573469367205500550641598985730565419739824477070601632905893853689073950682418285275016036131517384272833510042857146964072502628683750956329715751947866805065958320386235616692640410957044298885343292012405733889342512165010146221111670378491976272149999387828792308457318865751620623778520721051495571642798973347308769114765754992188065769359976132607124338345117282147714498077810220237034653318167914005224089527673021034925932871967113861474206503525726539778823770969958310830744385225775744709703499509488414499799063718506754491888916579669062840436282203052929203104762800646165160534112627339252722401202535620343476943196289392972646343073166542317498489181110267623096535057469517656409295212630912229482692611625465638454635760632704142116470002129612708744790588691326476608829379831249065192819637923466099502307839205612279793926211218767032610826818626344164600274717248437315301857546948718796414812131862942621754626729235032885414048609223362636574037638711796286121246061439114516217941926087606356124594122151263603481197062896911738927746258573997990009130175639679936599642951360717312474294886382443279676609448722416610915858588909412299205319443572070607868172923291793675993901895753290890528865037164118083988770336825382821933018452471509241491136495159802313271505838330637615240657970810567694668005997780766877302805851145484502175283420492743760851015688947268173923430332383973664959127526075039028718068676179722077269832683201755018475908013223399275611985450254688580704878363555194347267122831922692529242031424116688303177621585483917219533555366317043080316763089274232710777193695399565536160936913460686237482269415617119051181536851662849786602391111809000113094655571151293850331856408485342484598499701817752374629759503022584021661418923377676659076547552657837586955765419073135164618719631862031264616040859346861749222817855115415405874350613487960501481555580439198761884331691345919083058726433392009355584383989841427459144116972287940115402646976928018366766724989334797986860337277346407147449306674754598873250517108920430371166959716400464182020448495904575314828704610739661350774035490281152429203889890696955192123911476729029460727871562469838723210367742125913830966666143739730011126228492510026152429116653204228898015560816219391197809895429065884345185785210805728370948875366743322611874570275726437352230929960552102558146339278887160810629497176227704043359544710085308056058350669287289974384771394472286944414264559932299488331433515958121630055715017072951399329977626536286288180361961907887398946391916222402379254998704031248401885153487766757047458836180701238270502797407497941391955930263541294987834189393977358078097048980760909787562921820909299790508671492445027007817903159862106369081076533536355137068961280630051568945629211365212433996567955409617560634124183266417521645585483140207477111496538467576852623953226547559615274861416779391747934133027847988606130224860713416044795582128494068521116819100322534528381095682271434573388773942234628827914713447404446318155270920508071118976790418932038250598194594286083891038660802793190978437536167732391869888453196243749496373301137814378304556922081754357170722256137908338495128427741849372324541256578656365926802584546752869879745285320162695465251647309340533924267821527829829538944156525283866940698108210659735337175110854717955016469782675152354224572904843222985045168231303759686225961833446460587470575825763071096112537622467743176718763570964169857023688805251967861809813013872444101974684586936852657725294325539721248862048382685326066618351377798879287200161137344317616801921520147046270501732323488402710030341075309826351873935307876069953511021897620194518720085252036654202260848153243082241461484868472264910216050513354535037278427334093960237779372945090255168892378121842725960322552454692948710868489271154452986570246119326473603002443964586925758226915745537672535289340869869234502363154667961727545612919072930427800909565080506484169898602625427923908755854074124397765107186824940829477349284835599761382957487141548538050427284635011183251338994973887896147841591035266085721586644909596003756627184108396327973879680525342606107422499613397926910822833945155290452208731584502578448472562737186840693304564735848234787946259539178550913804847796342408166031364272947684664976680391112963393283874455452380644404259793719475534727020501452971040684199418223485491061754053431625395420490464053403952287242826217149587719745980349110152226422787903282527003003131054167714952998713609590533211286535554841645069474047116888935731056592559015449490167239164363004288386510107206541271698388199803900400753153113503131241511777496690761732942058171853602572836022460238088111408109192702276270215133806141697448262342718534312639967520056002230524479080417437517361466366866639458815275137505840649632262391213535247781108301885778182233523880743343476479701500819801955636145745149138547173498844265682275911867074050206756711494058593416565675668051805755408813847724024045782629483366268367713598393321467251397869222074770444098723464120108636526249451432890088732431554606978788620614173165173046121637765561290011671172373479172573037650778451546263456588192440494748682768050909897030862575603071382827745090845565438636135253252663932406550187592424328871312352737235892502461702505798552157570780987782652726476583033435021761929077158405335644923552186786025200761296731832400657674054152861508748811770949382609778363524464114009568771670342532601006723602907174750144163579976394809849429315221337536288096663422393292796512797139414199082706487344247164662497319984812412499492001501954291859102858757827140037899244898233591569167942513807021999948243367515123360434421365520038205128750401234915834132476781885867079449795852127298933295750021029417131939216695713863867534224277116982971379690702726634113259119609923222721152054292408848014297202651219282462351686094929401602252948775683962967919297165155936975510886658577598800774327630176399016611491644479377731705841915874284391683897361748617295721138483783011929660274128095203845975537437642041869691652501990300381561768152666331599148839104734672850528237062863354261965809362936759287663181928877081803863155577385392641771107612874794835991949164122119783849389664113151824387685109672721958598948503892512449885761963648897040641235715445826849265075086420158095322673749953585862956216464396745137980839100805225989575611222972644323563947600865580042506459487367007363506224720243512322292952449449183187526180989717621099481177296202479889274713988815204825920373707994970755241572645701604934774161122944886893595080769813154739280732518824129243898871135000491960503612255972354840465572112319571713233146863213946098924972626867717625132426112569843423554517391685147690169724778501207966647385774805137291892734168812066041318059548334711904467836489843276121729168809907034940750047922447774209259880859964904165859530525276953393180355590714747958884124812820228152387289108243786221211886311211322644671721539286456008224125122017055564000222660739679793417432257388622865154229050123241610315156288043474395887807881748445752808583753568580795901728641530217326467362272996986895285571797984788143145401186357268702125772566129228533557270255490395581339545954304448178544117279912464352368177952221132315841286669912670032617645469981105884770267841425390440284340413619296783303468432833961025288961127897297390968021836810840615052081962537913538733373675228265153045520427260399396707300729543449164826995612478775912727758310700684529431842264858250849831932398568601065053637392177017897243910746059167615705709238868635852482982648315920675009691333165131021320360218000956932335841437545205783437212618102652990632560495071430018675156354885458011624765161852059022330568561802816963203353312561149194844447632402486223182542320379144935180344098716797951767769557498702237020537612660731422704828839982435590477480772875671916030363354906526675786665918081082027965350498258856104585316448672342934339749995692614308152768523888506516466704917948109081993709592285400215285046876638739431606474990862984392610703027908241917533964343032581314857441878695116451894653261548597211751018352911211923055400649489180003353690421274619524868232476116362251528768716854621753233999680701564162718663126978829604063482591522869246242394450851802277303491866894353670641031509650157573168979700504021483584556442198845621899272487174282488780348217561330210121819189241386083226107226285087563198372327263610301975076609098137329579790894917566351260617762441313418824192426538417438055203873006929871821061436891658155252589018909403941703447642179934712509488800625589740060680351908123922591032785000118878830795713219196999717936819248927790162151473432303918147826213954686385884841224844809410274799787312043070113444843733706750309068426511607815649549944092890653917157904104068532223585412284430554201491472768106837583130487663705015479412122411556761608062529249913752265905846947362705727863113757432471949874559053285177562761965260485483768561653833748041137703115045586783573271763338287955936631839703449847700151267880806676803788516648229930478153493981809282072138600346381110027411844644804219257148924063350305175043787390128405207652521551245264886024158407613108070122839219206283665828096041023560152708748927699033242142248659888525466184515340476353417659023437939034240509299705240154598697258604927860757951746839803559104261268792881078781641955158568865483117001685288977632747808606257830026033165819176252482778907163652984630356404120461759265645255120740460522341347599447587392849134889023001127588879852217357299519250021074460192931443978652410517038659260480128408132523479535368197002708913339290004761982021784740491366704639318035301566936674356729041372231407092376401390431285413995875974134254230503580249204507560234181033565590994865465221495701444624007073486763466425674347609975789407168229322347375565796927738450083568862148326655460473656745503530390905601549821348385970676494610809409200899424592602499136424700483482662181607918123157345781648139632617077558295911902661036659145072854481457412563592131360105578593124417680813386992279449374171530347351457577194786117708964201734323419829181336318339530341559261947036592932916007255336946918624768750665382664558404615839096976989825485731827018046750200886831517039723169720843619967635973980550027661645531083634722825860717718569759063036842527589850303024059678855402992924070621854684979453210298577452220892362296894036607839411971696610049076562775910951038292165741985143105953260522474179237481233885181536285517107799873321697737103812330994363153865642036449984183621834542625271791161020863726563757628322340265633995702914180485225209222297735753605678260912177531055718052333624635428710246711394851616605606962422937958021627727441288865896904571700229307073937550578351521631947580299643731018762434357766651705389630797181796325336172945400722344907188823734974597508858555322763114176428597965030148505661433878757156812734966545076711068066023566911232011097489304513486246223412142797255533569549503634627215216620188116820389025516015822727951901851239561100178790718415246467511548137912929031986265671780448403853591891071556482579696192928442471084576679648536673258614795608034922463772329107327392761161791658280977537386478933343320219736045815181922744251914980909578534128653563630157110149611526585336332168894403576688975688291957116344040932210749841747097152785985376940449000257525010880210826408119359471586991379310818840379784805140774562171324133528678484814382750066429479067675062699810637636633798111473619981145539709991621352546772320736687489920870219019950884571913198342730143654957365495557436981041017521467407039426347052261837051739378831538446115849521951239033007892287893683212434771293170278354263304925569908936995038769390555405445215222123293867172335506522434783103076173547034048676628177321123885503360789732354011581915559165553165740129575888200703228539559346686568804094564027801647970697085952145172797639480068186970700514022909722807858703775199878052830722688486444957696610915403705656922116692664519492359004610995382574439913829987245786276050515640847222975312581497628720110817084822108363164192454588859578782123341388477886323679436167213157718645433502136114504916166891210886069785766855819251780346489233877979341468336231132411291517005880407087552476810509885954899336436329308914583544704755044293594591239478653061112263408492357030500828981617188655602692691307255422008494974141355833956378409024131518724307211866753420778397620684041131087664016308074885429910721219583298697482613601945342323117831138301264266126772182222330764319015910798897875646154525525632254969892363466104395269927175361075473050331053952709505451676329146886417904492758176999420303454095310674763469302494301278502379730720652028112447804554888200812621985727368583402729581441857219969321757073355674130818198441617053171305005164360261281835793560186328326394852890956373158848685967519627400963319818639647306334155506273861182877528601461003104975913830575930061183383267342459736802472687208504415673320673557101113022598793340842065917975418047643697143618873354137900029460675657735831410552817043699081610228486591002068429538789160773532802633613178444347669561739008597291571833436171518996996657999058479130038725734483437523967561845727140459310623085565793695506040760842195040188488556963786226286227729462669672772987210152971219545666759198081413865768508569550863139469823123979554861870076456929258526316216420182178970430413606098256489561926042100659860342090818656999208569876109765974258240591442784413790302748913379122178856172727274379995897429548459055809207662710350113451896259471638972348925231904800036776729406604573441806180805232454711040354300924375087886998055193597308573792232239521039777490261131529721864627969665463158920188923731241427891408002893208631276585399339804754154316586049735827302075319569504664735792001310125971384056965432251880298098240600476822905236143285830112378193947295358016383764017833909515786232054184538288334440485924268838378732489219694127692359820769955969020311773617315328420769109609577408257011100760283823711928683008333373035558349049391071017348030926331019048756063560646828912518593577089248947207964813240540432129822606815432503935420983838178485260147404719568769973408580073110471397091687787727908158597153661798009557827358201598873157360825845073498551674252610193416686600826489536689709913103142707227745488879641572507517814861874914406504159414338134549905003768673885394734049975124208310446395741917516839278105121041635684603704010802162194083579297864001273747273575023604088315170253551846583126608853191610602769567875293374802095353752530074399338856049797712272529168694534307173329918865888147504776453915845568276963726188568300345700812187246221388943057791694392050152921882158585850842455046310629313716939723081152898161038019099887367072954771098304361594520932157232121898908851564818920285329276052446135590894488476552316453149724230785179830684943199254012821113899141928463503794294101790496409053781902279440232815895365432738793677600049446867023576257417616306005010817724755941414030244780862517938479475413007216906799255208854287309318601719707123054953321172223016004817737353255108523175414392234707124150885641523546264069984585939091583421325173134995727366515407021886577810896300240052577056491842168835456530914383794952175649985460541646804641755011750274464452021686251648908664177770311909542177169588701966614646291205248879739280123726895480000386308439777918792856241932971601015449257073045891834712970633685797972456967351570844058010207757464281083475632790559675214434430869660364849961006308288693285041701323474067263151775940793027453062470741382744877359970616771291422182570380693686325185913411866155923761116725368541498362970604868290132947384353692330780459691465148629837292394152178017433413336758109961259583515814700561859935413429275125460609711325034980743887873290900108775728680519919467078186985117810723230239373621457638312358824001682797225830834708301520522064000037661392469433703234907821078676073747151000193264719040177465595139144596621654605698737906244752328741611153506208555885055646724608235964970652995666921353174344801349213174276379716670594611942434335333056672072812241227306588878660368068013446133504425744559808124291201415017853520205912856456220684470420471674377284990044617224486021982322368356346400818104189372960191695889957118947781152740116737807937286067758222517737363645696001448673446935804423440049912693239992947439775719039763400947579683712316435629037915069895275774215112289315701470862047246807955874517356045486767246670786016964155661777237842681485640721289692942643404045936316525856804458496700311835204595655950529689919985862271374826775170145065184141256740991240148311989097219428485339060390605952818210013537222564991505050832122235356852739519008724687614644530042887716802494982915052325487289275513056877915282454213952589281762458056783125590732142125329392409119629816643281589594540828091472423403537640469638091551222613488950905096818729157698175534505260005111475479910891905343662748690212726369508024426085968051213729132516353579709597838651965987778979182587418300695910498117930024471162695230077939571381377506736910617685156724438573289910838158433278841800351649548305239683327460210068992565943010307899451768737485328363733112642994598780172388880294219472703919820965462949280928317830458507334677744709335619940684395283163611151310343418377753084866543687463628284888099323230009733483141997333118278703302528526014055594036212430049287801397620051521486746012785520786850455656368111829597828752403329227006447085563035551909930033056186132904596429465203497739740447873078156669990181483204059514545070582731491802112842871081870582175766544484436522717113194734000370109665339110186156400136815943608044649096845673979795505296493264350997147212747531809945179471475270823462171952002082547694265511224435227359343778906599671275299934747120170841021247241681176873827945756078554431768711739644868762259430528121012742092036116783576816595953904468588640584012643060350923078679525097479769470509718640894155695813099345201006844637633501920878441596242917584417593014272127693093639015992865270164161767251241330130912097617640733541179024421008577926758234823480138485480355157959014703575242695365182691627367676638371570402994353819709033346521106786401687717189709658460947043328603968506976114678980108903256703078333828160904404410394814793820949654996009310456877447549824634704752102993528935989613022169872170476617959317075291911457692374477189532224962192760096491061545125110062730968573409208266482214209978392591025202633145662545169587680994432041299700133666152778005059070954366068325011444674350772801132749807318626374388266593058903669380932662590836803276270024997110969776454664347065127352824225070729046687038938594946007739052911467184530130279352023641117900576158717286777203234551861776468990603169525792711949735750104056009556725502642289460797474997347402108412604591407361745377148269473861606257045913724898356725518653522873158568638657140253872877222264294051150587843905996056756740073008318545241976428006579644363000110743480029497509469609895990892001430615013739360751093501796060277078319690421533042181896422313957739916138870086088350672203953113379112137106326685953897076966325968656384747700727424362524333247505372302857331790135746518872653592413906406006468168845265932668240767450500606227494368067417702545872977825729633403609444449312277725585682382249600658168462505963436319095123575643493313825040162898983811234338057603777277290845930532900999503839645751326075141415393015825649140016645488785881244442602818756872471098118946062114736751129637703028690087414837482432409912405482578564918794616458881602109353830338081114634022541221056206153988838832167544886448519810137598865132118670126166135277501981102292747570087912989842289468904980650248077935604842578678166382536202434016587780789697063439371609215173340722097277621397498515247076081624028069481938148334428644846641995917404734188700990148781354037238142875270981180548864598320807480658420269666118227822178216872824114782029320638550959147677047252942490301575301290545716437903673012947507409809755724722256866685619316798363801328086237436958013682022130728322231587798462649883321053393162935114840143069202515801084069228100533787233487513987479681018242036670305343414656092142560158906469512171915982203955065663039418178358361462278332697342825819947694082196490077061643338957675153397972369094196902079000111151040456720885268414452355627278680872402193918136397387392856799429706648687040610083028915591342716036893364189280283909630111358783164901756146450683174531595132363643394634114577524629368480496875763716331279008340737295772192129450473310223790002076844245885472408563557626227072727006343989050520886364097914646195784444924591244988342081223540946058386586059078760886977895202735324246644146804362162161005306000942072732849488324401511091658963479491922321816514951480095310161578988651955173897212233750074630416392999954011476277486417458957207515446090392693946801479144103662765745920583195743505446341662162638238999736330770219904552647281192675366600106992565656855236455261656979527289388122932658975112594338765061037322183513660796806054475034802698725495784567595872974277075889544490000330798702944122851050006931783453484643463451560050630100586335962235733325632766123306787780672856979946611830483424867322034917194292787963021524634904625087400740801795345567101211456039672646992141454332406426957156806389030021040519830934005113767408707708797098081115831603775954925809647602172710752413521979547760045793071999398326901961482298228415702513023218760679370644615809896998526378005369398525097852356567110116050942558700765299808808183401765459696841386447975490211951967425440046543222603558922052262786069465426326706139152755379866215798229984441223393368259873572115899513573888418606532365672612896291491329649565700033575396399626582339910486574969123219271870660490850454369041356558687204133032477473809419105871382759514021989683205872082540134104495942743983190208911918891512086453630243821025823138868015384406429048872378445411728366091441297401094782334760675524411769326988461888770603243580495003624321430675165517007371277306235716205123557915082895591363688748803040063436713811441552102920254078864116099335574791896620841537233093240338949053335926880521402205940288275284181649836421365990848366234697689020187138243596444064120850475336383267866728465185283004678326347047955522942862271461753253480504111788863741503656287903772958679765350299784411393256169217376751316356339423766570367443476344928191254034916113544407412380807621690734586540890707986614757192930776735192139563997345110062737632878332918605534011235270154569953730563547851549982783399960317260168665254896554195161828445193348449915356545043210024779723890120368083861832147816968179941604907951653054078506270534639662260512899585139229295418400698291622903255433079729348720254022799065189557125732639318629710444533844160180317285542483315896747515755695526910464522466314702555029214607320880324127897097340911251500027863110178956184653924924652545427614270102950176192223727219933939780553690500450926737066548102593053095634822082579395535740730541258532959622553578470528346213610063773758718966066541172101623786094329494206066336045595891286212965302184109621065129074631937477201178359247511236405621583587992015768566336100402702514028862267710177823958092395853315839755002113986362840323664850701447511861122161976400095458443365999310213218149959553399074697891999457785166766213146234886106479403267889531313176584613794818021353927195592552681655835470271379548298820532375582470950314368717687736679675124249817292988575746965712487063140703532895968212144746717958389857583310400748215085849782392210789004476003980142083730171649434440989944149628160855767666130421829318425403386833498779747997524174802464518954138761926348093843325967636408720453270194697766555433541625919500556890307787666348572252848108382967123365738715516770425133039420925262916971235452802029827861471813709974952242363997027212123322862153165033968981248540125937840325040797645247705116953221542497740691136061103084978610208330144219887147765633912553679046712560118500413694598236185408028087026690530018182785782262759171531180319412580250017462939413271222177950582620228349714400450401342475601978154884210195075451101455807892039095305434453721335392051085034408285129837326483132624939526324521628297902117679621231681674214744651466373740196722416601680616791748510319267768436152464490692739877114046734215617839365856132386329809633438633720088909248298066686631152527408950047630439995189107619997156714393557862559600357249354781985078293876831675986907172989016184484368947875821736685186573431994357974148886727235362444062753655013656339036622689726108764256215950897660667028147976367412277007888375091375748853340134689051974342528666544683980603169906283561664563289581251487364200037647236441519495898632494052219404128946192849678703481962245792643390648802494508212210622724778925704079131864293861050313981382619415795685320783629138228617015714630511454445878880632754286676477372671375510841867150614720229340817189091058488395627627573729023542663330356668821230745596534253927741041146308451353262896262470729110988951621494531557816811814064538618980569745029618299132952305162486192566307840692474017786110372157058353838675300438789758476370739793119378219172821746111571992623285341317970923249668688995962852622679408650473377117994501051713918729567971585748677213231761658329484279596021871572657601780793457665051714885986208733022640737709989142940742000239870114677767994225001479337121916977671487783187957882741835735489396363842205823818691435360853577682983315426021374902203825283594760082547490602031906240416594193542956232990764013844425651794459789619221130287223190158847974001190766427139102905589000243389567487008602617754377698900012092329676960419348583307808764580362588737007931361016955750710616264325706253679659666263962834536356711184950517366608073802520882703491224582376668851033466663638368180563265179035821150723375783992680913647914561905437394138823611237932232638720390882650814884305650604461329964698482978583710280840873061260616813212638341278961074437126273543079002006181600399607490326614675317947853408964539979161923734711906632544938709891122949593580669776376253060133617715643754545435084485478423242835884336613286180511314398922836175695370141929454849601674363139684232322146524741243218136788194906952808099044077169311495464082710684141689084523975470316686401268462291718016302879555501573526396179629688979076147304079246783413877608806587173021921067172586309510020117075177254671975683378195042804322308304969224212056425006819492708137217748137113036344679255452367393875300285595990685590991079178547618991408964372827097197889006082489954046239980443652132618153331407408539596724076598477435805632300118639523226724538427229225285952525901436192488166107236774686826566532583960018045434871991585156062219348025075196655403398456743957574852651843081835986811791605093731513938841927146726759149502795019742355696208670918112072638456098844670029361455762523507719681174336192808747710140674943778466915283957199480897289708615835708263506556568209189033787238222125399483456379179344902002619122211670760904544298129988184766814905514958339306213307363665441429752718248068257024226486084260753892571774947777784624805436197068370676673621492245381891657112894444353870454476067020397426019123530174891114211148240752284955232341876647276094798807366089556479576731902473928105451091402092238782499006438611409691094520159857970748390485213575217779067695233914176040929228287957016902150557985448088756154273952887623020177218282435469648417434005117512844709101457506011385326768324795546272252956840192245370382074896460884927605577039387436308493804408545702314014097611101465119819660894311853843985625904470979689616577306615639288841278185980524709075246448907724846326952729910882276798328646002903331477110627045330810608357816377942472047831347185386016088404015475326116257402341848479014180449737255622134905358309701228242865599873292116781878957498467708603497777570887787667799863683945395978078797549857278495708200118322267610135993329106674786053668377700594345901328495318622984595739245230674633145811047392045285593394902913807722921749681984832561506524868256198619207731755497422293835307848532786747067550284514653651024589275198959961193203583562902962574677173450318844489757233230168054231599669627410916589284451609491938297742390674417255774221521880651228343135148610624346929267387620132350375859052813212775124208180554355936285563832488697968544511785920215776499854444841495331083235312194776540942126316462914345565808293886909133357593083609065043109816310940357704178757812208541364953477675837806359460767133354375518150009427105607380156267813353832184128937061463128836302401476103202242894989413238113734792840769268931361509818784257482682938878133888338795751052073396593321235428860428215206154823852534795912382215100475708726066692980738059435327487485404289501521095713443795564732218070247229440223268747985597884936376531299794252460647986376902565906190629656280759731101245749351834155094441545369155051932266776009250337260375098084577249729666797551085133017518435280123925874893416742531492343749331500401687654615107223843843793133582342344417572256037737369464622802058024022451307495532993841303282894969162081024728976137663765691343747837802397144239141633297422984819678946565675232605512572312434978683239225366801503863750435578299562136286135765724142017351302450619154198703355662632917270392282325923843387178069278296756111082054379254057882285406085226408149903846058582679808847726106048192902849322970403835569530526299852266679255201748494631348003841740937760947722834843393873441262654675004817097986402241826812632172578772269398002099740767421891432062989365429640449227360754311909059812362180773751329368026966084155809513591330684625066412876782931193596487629327866751032428229832921862568968075730397664690073148881259811595925277847142316238736488425178267653845838796678856478987739125772923762028745805554069340675488697662527127853284889237565691346020270405120461962293608469123850745477006474462264640347553326498713730865602412757205528972035362995474054877194955822616200048142608699185550680947565892564954181512628705268166904894998506364567620606432809868757601387702706653519871072966434883163386987150794141698437468709019488347593153118067262038450713912817124211099809232387251233982596051299016264367315847161847579196271075417935208279057794020824107932449510718881442579263697882300465300168497006577379208162598170985918492701026337273533394973919393395834117365074131844436280763550262886954155667555544635693116879893317197882908550935045727441846958387303127502435354355339994698458061121122582603444411291520571218142363416031460611413109955534157010021590837380574485833367536146614756527051223341509753242459253061763719591766113497528483993258933017439476538107784914308171121876614498331992622249317206828809457580177238142186584438082853169241540224486948077221716028632287908950068060828121708909491679891673291515285053310706415812472634779182407330423031346546011133014737484467650116313116467528590129004462233542360689745604096229924966110213892191121865963701214621089190694055953743318816809337734406480683408289117833378462856460541648525921667346469633894762894671839303537927660588644154663564179331428062005524183074837283405190612269176595214047387750799068600041279962126736340002298893048020275269447081738069325723170997622448638409478432417519650761220760329379676531167994288553135028069252760475659585318960443773049457943953446344225822666728622027487956297468163557361670690542487673031076656517697186837252739310566621159279486373542863936077678307558384069633944535237751015963051344430308787401346604948882025639128449054511122792013471661010925989911618392254395552620728667273416784527856529574807410472112068993877441644635907661036716101414191026600414590351509517652053939802145894512702264318426704300569617735253785458127469605372708900475858454041126491539090230632529850702477841594812373528670910740106557544482244308201447817555410176970439110312183764144288371262976783240633874438981348274590930295082662551049940729229854330786018189988013075033363928981042700279777114807556421858356003950945384883663161634109197693557830608580799246559063507952010370724866734711316044969094158295822527540679169466965089035062753455721747514011330598921023939267145947606287030938504077370186175083471714838182314070236994591062344421311368441626946649635654579449869576846737323371422451795436081860261381394330655895482130212427414827129203183538966727762187561388078903009017071616853617555173612177222242149485083877787726176495244080525783928378581912765951864970340262262862176075599659480379914129872119110281927586318272226887221419997266178163376351416325000462992345278634568143290176788891849496576469087072505540160490143274622222182415841979988487871642044913515338813521469490113728153689317109008902573064818387800823467042085087921518077928497568675310811080651798678522627658184588583960886745826411922441198430713171781061531619714207598184778722907811570802993441469207985556078871883527439847914871305508018318849127379054808411087688078769106632779728731755551899722212526877433077888503458675016543288315941440818813344755993244887498789948209294656746270895624560415783212451213647181581602954158312312972151582444912117840503371255972282765007064899964642027315120094842295989817819906696267929973951428548442484185770161169847280728816957092334179409703458546664042693334218939122084565700163193090442068969506804131575813030781109286656915926497226481804489269075138301486645352207600416239377068721128081520352979826797123718051882956414621697818093247113102919881263945008417569128190793455179733243055497771770279074298633609874054443929991346003363005515560291327989693606162991236615210905326341856313471939815313493939119446804038478712346215973170671188455368964395360805202439503758329323237106253346807379098669242694743207451379765928975462164574983306737732980619220161561065443869771486605292106182678243948755967032855770849214027373793752360409462736597689226829224609471773435459018279984732477373591165721555103937459565509486275739777948730060578344468332455858586033950033103619369380738383162359144960668641844089008044567487544996816845923723517608382434891999298336166508233222355868181834766316651121967711810611058189200253923253607683090776397540182868591479995824898387968432265031863529928334514491472268126225570734614058331354876894801924281541262503198716275380387798075084073587144385335829542214541114612927899501731176162700258161969922457282520357297874886222254706492323469526777240870218206074430214201609890828736162672592526647988085377429345515753682653751907965214746479285590731375690567965841852926062368656053699689960315707921304496442800840897047822450771550789292440121294377955575967187068394039729555926486923288736446352815519240415863522240359320228005714795545840782315688581642954325233090769270238374137611983926737492442830551461646256174261237995904693700227848719642601658978520274280680813738143330136539742141054267651710037568552174063110637942738807188975255197886801189349096502073873442608165118402472974326013369906363043428510262274988013783215401511276843515958380232961582663235428534038677756339549630568665571162725647824950491545309475157113209661370546278211668346828222690751301032796861901485900458391458646662790393999165188932675019566621771908946926307687972128324891854444232072850532594508853172887227660978361497236634901176092830919614245891112969807200892065054811965348781436758486825434751519545051314591355787557173775127895955427162535250478628482426025103566860972085523968135668264445805796912482185100871330315508765044712805365925391052086296205125072151713794219748015488806310247945948389544203649616043607968536386774577874398208323890067169681980791060866234760416509232241616167852043532285865485481841588269620217108106308279961942922691504963143376202453597628295959083521472795579511146810163905054059246646731003864966058961540465399576645593829513948640429171114884068153725813632067846423344740212540616895616011163916918778177180170303547980614918738883723297533020017795199563880332482838595437082149542662813327716753763347519222607030455443143019339981104659123236046123210927018922220000390475194589807359357152528009300660495472342718784833414650173411887875476707364244260032744281900663841309611822668426007527695323211634695190738569426137342260496826257955402397195327068969363638351455329420160721280984436313726289177789194058311579000161238654956658600089324171856026669860367165191575217597462786763387351981033324221936763922823292800303606205459553082971973168373572802828647380606184664352723766978251637651146898597803545152021782568265866200646785327904269203245577392680357856553369942396482967507139847118591732217145963243287131432808044299865814346727799685534975358578004222097398935503040833297967274336762156382667602661129571031743152818937496008870438251800688864190410626489289135844364432167407977350272593386258311966636411467824016606709125929516741181598044169473239184181756403933650173278369833288979811445618252476865012617829445194357422098200127571666075215204113468459100541889228141566796727470581271659001086999344927449558110132469765386609243411634833121395132392222975787313091977240590948716483421140061394709107514340278351880634192090654482288469313947364124714666026091675898921672622133607692114222925196476821794528890921052550632452380160395553761281652877879068648059933867156701945071579328576556192844660219151373116729009841988511762415304822846589623989790801819121852996116597752611458022606779211078968862645428503984336681304530558156065396055237005788565194471489631354195106390248735057284958402918808852084421187305910256434233289988060387014898891663398446644788645847466494864558992802568143535939399747750862257281242022496223091109693009090577009382926881735378071700784162602062670921276814780511311686356214835244716895891647969447413309089885365523280254843835241391095128615952376942105300595886964492183402377692568195218673978916699453915528728676448275715666074765988514662293780246882593161225011947283689185938091155261178127178112829748052884369577671644926234774190621739109309242306786348973758634267894911412594069593782323333268742956347932865696517582062961301236982979382163388727084626372129612395245423053328109550128033101829297519473429698458439931224721007831875248225098753373193511167112486560226347630867044891825690071073486550396029654539153303410500853725093220981152687899307195499963646689353384030968461694518576275757926168022145982797527324931746959852742315829170714241893181911884716389671773180314116449962648413631701159420417550426495564412243623276555411005221973639705549468693985753168641596754694537089655204275644585294206316148211600289685603488613242998021088809448673355045076804122723158188754927289718904069847412390583566954559982426874136871388491935623695847758968256295737790682128693052847197864297702630058282370025090406966830409638301384887557781623575780648375677369277178825235981775838114272030637776173738472427879147912643255031381352215470125264461823948203008230535370231421748788320843540532873049715915258009131429695437402604040247116443822946213901675143333600099269966924322392233236753013583387139177277980352308580405558717775882363535650724369736708581559612161515638215243456256474744924387517908942183786341175845691481719231747964313502330899189500822855332231533968897755949892131386849698970044942038435162049336348389484305105691455734317984150426176878884012216432615700541630985566028673160879400717817780288815921044042470226901123252045647288901223711736242705200513541190896555859012972874540569238179209596943999318879767982753390858370467543952501422141395878830924799214421363173883177953915820913687417111667847186517572380654214027609991266035162397058918055428359119936784927313144602692028936549417504227906088256348271591400338074265009483664477224722594551807976952728486953256193115141223506245313971519418211353136494382438530953646894192809971692295931436892922362096726123930877339794340880800856895459414929362634149164284717509075680669591122363132478302348706582049853812070492462897567647623447607911049804926793983870247932702049612069632584180190906011013732185791582538735089958203554397322890186541024102571392130994186248680081001455551549876105975936638451354469101975811000296098352226884679765586474827521734674513589259784716150654022562716081108432602657920674692745028194883913580333147319979372609606527976817137606812676506857265143785305712641619973619424525872541915695876627391356023534853273340966151300199662833978505879751330240601148566102947692581006583138035861417228984323038624400009742871638081586287680805810573507922719988846078747368780482100163351381914636328989110089124463330821648490295915395124613347951151999706747542456587874273796958818792070596791323065534690541820091862155962699371249305770330285576780299440138366666949998253475912376443160631026474378634655103695123412280635794738040825823134787095690155071418646110482989234903565619536448022311766815981391082395569098315285476876301714512142788203412123306486982975472103176244088960256335816353839620476073104208210592802233586184386367530644529054501772769011192264535438757216066786942294069545800847329534994407983692413341035582752972229287288788353267173371444200010113069354785844162723942758443489256394330609100385946289365933561059503208533469324495659419751312335647868539858980267658291937211507000432047788664853883061002628163384180934616160098049802309740782017762365846617423066782151216684563907182763822463685001766150009152376063317098411707908859045676362976632314005505489008916450608651222683360055340699135828842559878449492856837857922115412303837494013930997621847077198409850796463480865654949374083279666514156553887883461564454612637838305890017261939793718456684861056055539416474169160043005404183543398833802431661378565937636043445658860751835645505292125305610566865721412555415165366809429945452586386980681717618058138536279511048783575375535738387384452951917869752196027235088598618178779527115345955890265810343003189004960148695326900007940151528022343228211921616073339010253072188851630520485960447736582760918924521566989696455018143643796458160563549843130565549044391954730045242102802279134490448480030401300704236376558525339896341673321022231183188892458208158594069873520217941430493429526688245845622768662014985181731478920707492846555217067239366039372537852541465281615326774634955890997299137147831630406294960363795729973945205297566197628281066505829049296367474969427513214763367413748446431147917910155462516433869886571795345559686488594393477196196267432994314404668687096617985359335701606598389583834101376586701219155232011295801346593551134663701165822030758680827338555600453010991664517023621363214964532002881837213702735223902906404230863066592008440477704619733406431398093870830762605634225666519727783463425281935733473974864138899055767149695237145062334006274232912933443885291553104905145650539987417162482574442311549198383879179333400350292410024971978553310467878584781830446644013741708792301166086412781283145630434818038049212803401528333045970111751578301737042454585996052878824415803532030786710679313174329097678412010576101020856006125925056806886700844671360580574826837366407125749925843469955008707836683897427640522828540945997866403066876466162531572039947599904094277705695511956372243737103433027489774960210943397976702930839762472509790418454665485240265031273876166390449531051237470182075335155017107001717676418123090039124490917647624766998668784591772199565006520485094940834290513007354910227276341653884566014416480465975416809202106723208761349379015434929081543468105258147829252730185193635213520831306953793873670881817144119272305417558783379356661473877499163091054648957690248967156448173147464361604078784834249899507119720671299079404054281067331868195860926164764748909161865872729148328567581150723812174316454096302560592124431453248126774971640260746544747763000871390625432880857931087549331888102450536307272671335041119646131109211020709297294065558646377950040559612840213135891618283449729511131267217343898501335669314482156579590485210819059733379911219901441182959916955968344026859881186273269663302532034060457018288558713249046411432091193367434197446443515778921059559391080742200636401379183331225703127770148896396686698267462508341588142720532732322586662219533641749866081601124714571786705165795605354112417722728445081562582637902856832072829152666442258954246509984715458204551401632380777182305319248077243662973943345480280952430750111748344848018760181528944941365301455093926385680468924738086052667500915569474062019192804959651803466013339204036768645356025865137030961854289117908676478978846285328852656903635092275940970706229073540409813154720916788170335993399215814323261005280646806040626315904007845883997802849680372395193106660211440450525132007997060130861019931150929502024975739287859973375197922705639796423154373660208756495243541504895535336877164733264376071221009703559475830251660994286829005498870437157632087405752321080731052675072775430587947389787130030261910290941358010048052524587108769128128592670989456818697670095420023669908052522128848728207607036086492167970194205421646665748467444774399021190694384580119462936154255199673623053875779730912735171560702195820675372601684870075437957046149837049194063452162528343860881616128747505453609035590295003494750438283667332636853323709747316688466873501762814164075829768434428562372545892424607091652898471540721448214949225922653073884394523075249518216624878398703808010792108814609711048570190555041192713109525452726826707604291486466801551152170054331034265325666404070213153757157532421641789983601748396687201185818134993910787353140074958101445900292894860942935701306531623208655814069348405205181010766407486224899218659870921252800178993347542319647881969433549043120313131048028868304155544165610838533394038250345696912562332721721198273099613299395653146449151884819312266095449322764159544896971497721465658846737638651635604186532143634220239421038504770110583141465697422497910841515387740983736341804609942033922008999095996272916101687190099371184677504449750594109761724322239357951321335206734818084308206964062738036468037803365593530724694180920553254773774082762531261915747006741159019613529087597809479669738988520487657547918853565140481909577010919909949326665014487571967551880473630772935665382588437751034586042275371747708795646306090491034827843853741943893816002164530195572026442455401000980731232672470449423250869752264059713992799279236566963852425501871537851193053155808457594159249323226577393803483738353126924113424613883731151752047365499781466464570687072579130601725717935528789907685712005784998908064633844635514287555943253696003458487756319783097459741563302418576646997991612938454428724459381772683813870387070020342807240279825179134262270294120937428000257446413931117964226223663135705042382266317813085685676722264273798700054671877260651033264358890339502307618469656234352902764350030057775570101994250096397965493668497432337278947811263058745991538741339304169656893338201311561361276517527721493555393304659814758002960302812111246677618831376894436853295834911657679154293671221684403344189326920731582828883317255190483420371127543912531790495639059343190217413356915271819959543449561360296146900528189109949797625691425195953958632124429223136256313790055007032163830473024349869386812089688010106794070188954278970518511748469968975149324040776429039537439140341874606682311318999534066068058202643591630186870179164538526324414177304897246889110156321055325204811160497081176393969569446962058793044390034853924238989104160698643915641991203647635029513078713933411786754799564552897203600689201488191887878219591126398313012465429450065680328070490680501785048194575978140842496559121043196607645781644076302805954384393666101969104848996641259135158285274386371953028362764873149283767433585411667272603282498551384834839467624082959410079731083582118188115046759693095861624953382213756467303930019870111631671931964667334990206300141568341212495398736222724361986749489837476907284841128485996905346177851851063360098832632704058472109845998857760772162168023969067573269784572512362137216743599808008372928962003673569916456623774831239458126813912495268983869035721884147122856834682668385426226466336690343313275167825492871667708284592545801591414582481793049890745763735412019497564304048722982230041318623737101695825317669332823076803490535157252975952647367227321511564913561389559728460150712773490411071508856594724079104392900063156881782061999321120216043837642517812828839138415624502211233240795343093519084615944894929741801097108291419187092721190453906247635395573572716289812779788793379444388740378150269578462482667365486926714706834782694636037874605113619588049456366874587598829222296006835803354468434801536456787251256493978883053383487017970575694088847361412648621189502073997339724179899961519112709087754121746489977398207885449619610824401856592282701938351200838476156646068496836401761347542176625674954603239993236530247999610726931826043740120417435499764681091778326900461754658896958798542919068038021453854142676146277643653546841593750004836828872194357210361980225736215500456684024926690529322484799179372716004978517061145601949575578463268084771639376219453029323566661535001120524097403532011495739346277066703383983744492996391204331638331783066829789047130040624316421258644625212757976688586618415952069206055306120065813741927601806426342201608835602735407497920946716637124182280368971134738139535703570592435647610537010920361631920252955901602071557667151257637669016429910412116569238804265816847426352928057323837273166214027820327749160532388511552378640399078044237317719935984577186337890073303273964838334021772280563687077565214761196286327743530975088970827320390678217053581738717257892741408599278312554212238102831968628041314124820638073736737111260431915709714777186998177323998325607537786177651417540101890130438731888938755107711395712180120259102217593223574999365219321113171743997622560351860043584527276888620437329574703605096053127712415506296268408801549183686364657569380973272574474212921722054798321095735720956760593236819913344790940578143013886655107274336027719558822337994910376931393466070778002635922844443108612826202563130702438947776941361148641835268978076447635406289461284521373017383176661445670651939588297391160891469653999171084722672623522653916993563441423117304506569157760199977092983326511638448893150904617666269996067023371117735987433982712977683124054561170816538847998873049633002935224278922541951762078972187616040233256224406581663221488605922177911900810702253054206624747060122063682604914286064268858618007912749689544034438666557357889660170558892797175200932871198509629874408579880371574091648988866453771515015105193094589787764511080899257156999924540455829835403843989659060046282589845142520427104374729955695033610545095649091508056106673088373631459225407418079562122246309767157330521215511352844050280028737529381688413383039293349513530279869843109834442047280378183843465730599860844935393570920768472428542200038740531162551440377156536681212029638601806826024661527138114731894050498666131415623895351563730561719455652816856448863623133501651928277721368023935464645743919647119399136814344958740530849793041481258425144129114159619930090852366247158724129957743476527869989059032219433212041976202147017562231762308472393339332262228966969882141322820815437573309490722915208355161756974773314644933422863037453107531696063257211644782648467182763416832165738109689091520897051186445694444901353689515155004525976855206620144891661022298348733134773105646217715563901836924579643479811763983213909899283106404975481097651930824967205200416684905356510343630678853308406398483792478444806265129112430881758295596777018499539372881256945355255059809040372092377334867514121347704757761748943905155836009818160036335511503660991779725238924936242362208946676263904009018661752738188200431717718925104013608600790764362604987316407781592264720865116353788774319285514700727287264127837977969908618294735696794116877299620758719303434133290408526434108287618012419015159870201831105642491113731823748962283342752504569712122454813719728346099868023708602232107839354602817335471839768825299317117395961900955862370902492279283399016289837854794469405722221296185609934585913009951120649225565287913272183695974971565607546748929941559650436038716020547380399063814417774205332135950665414314902377802350738679421351478218299254804795196274376537116856652906784745604597646823335345505604015210102081543489582295762324467018196530837295991767023047091371714054649409578273648714768021740526063990951360639248417905910885907922066364981241949912111555236749851670770623805853205641732147054146393829338130545896508649090333527267179597359717033796096029103351668487381871392310495038099476662389176097012818401448993924182038572231568084659095366371775443798946546771452049028416534918157554484964768543498154345398762405218096870496095209901556457712011764743641980812959922088988318085580826740585294522485482525610443484099685727883590758795968258695523903582342984109428712650421697265012187873506019715569413114676851479118062923134625114734255556063117936891655054489259415251487964132080765499793447969072079551804185839840964100401337371520422273154841276544084070073813229867711469359456444172757195105610092893460308512557097608875183449485151339322337755382391919215556000189087626439057274099099417446287184927010734486549240061227866014116823789655029716907642067731078408955112154716192643583961932860288790123386242803350335543146208253932539121799960526514471926186756160700565690488239303019239523263019921643832340367971132902401571691887685260135722919912624766615112394867836091302125633138383040956630110427050773628996358419947393559250566221561612487694406432153021204313254944188094198428403624685749258139135108121639493008970240729885381199891213116065604800773517345992089231601462771229354168969135515190049525070754063183918980094121764842211113774427943515361965951967494120462694918974314318967826086008594362023092429758610119658707394442501989602295652644746502643885594894522323308338372270616686938677693157511306848276594370433276034439884260223923490475791678980606527970545135510731690057837694172961537909189647485907806367310503751656810245513180189703160357732047057244648284628087906133784256302608039999784481844299097900989299360669471437507499304994789745023113531529398742578388964371657189934878513947054010643388056271699574917855991205026505707921785052120594663401947162770289600001074795985929024543558322261045459269842069738157306261558126216951025258770925489432282144888006353685630903271697474249881386772066003342408195049917028789881170662084330897896606668978660462027155983679059565082299975173428150476928614701993100408014180514218186040543120749667654969149305925202822299874255361671631413272707230226761390507194973643269447246878744370686162168236075762200047378851284362954165403962646739818467863546156473938160393709145732197485182781201457731315961287116701471877776223562674487093557563450125022325304901813307805558885665377566842802930408839008850355216974996609357036045157622527201001956032117903686557696631519240301010780213820294871687301838528435637439924437689665594046501851440456569110917333036228537422447798316260007233808327422786809015671336765553056341112584276402179741416189225563259438295755419198795574836982970419975529599756678537757056426382750125922717950793896844244644123412875852832509865358790130412172033286146644808449295731686405778153182105740544896769712928133922868147921431386396619754090576673780533252998335190829207246613442759799653448458917104704935192444199613182945952820357696040487601314134103120776075346617325926456808379244204051735730576044040214945743503654813231936470530198442187278935455012341772262135955240313057026206079845434677790151396375914346140411152235449105805655271162260043013168282613755007218645845999772865429353730370280209353454558385883688606204813068738968972137993140693326573078922889093990763018806025905143696745515411626726773599057154796018824836804604360702407211340961861929612144783977292965349866458459472561321490841754300430005590261259590678264515578590830997483049378740548889008437535568186187327731116398865558520230760458777228419500538376793293662260254950408725098075162664460145509401561053311718719649267035894588395403979777832990464501704940076192213047387926799903987851790479299884857645933058375170528888345231080819161840421111938895788194192680459238272141977041328364956138128627365785137749373970520855118392738931048251568876473916418856410804480550253548666893429876798667427004546654217102375391249276093547870953096427234447183575488210667926811708725466698234393775148223709241921035728854471339890130002908144661639981254987356533702775858705430195646834853807963841145125211842424939802440355164876717202061819920623144694987088396120274829355147833797072357404143878050920019015359492230565273338606372801445590122557682829149496132322849626947000121272336640142352308068704795651960600322724723006738034749045364651756655236192756104453271341376076226035288000599005650427870803346344202171434730957596149416420251046765969933198237928240634471750179723359096423028129786218853643240595596145981880544601341478691790644782563583729638648385786572425152898063165794925504912390794238974247179242583763742109409570119547189079689557899181187923553377546793735169263041562415318642891912209407253766980449020088559157793107870166815060167724119909670974042137311598543192379128183127276802776117548161571361527663966139609361136346148128204191583806312197834831005018915980524782019594399152472989965491172716634694140707563482121635926360467636070887886258928849405913210947391002365619536122907294047837233740662333361892274265226453027583085129084674092248328312679475754505638905663133782708291361601462295206816366160715627241163698686184599386542821369218625370524614573078101069479202568426907804022698186820564968044330725604670759898150863058047633932699336200134981829835463404787504864172270111241168910960649182435629011685530057844246705166606415801137741801992441384175537687266092433530508619914749887595874938558458059857183396801711465325665139833408631206018855739525847907211663250987632271596985882929949143679998786332879625887970314739878155962821852785141945798207772622453960376724555112707821187070110786593183579220216291423711408100933675152949179064210153703126864716960324550348538859925435552940474827649634571460835873301610964438095965193882224973290894093915674282471907769056582816497038909332989813849726334563293307075401114645294936073557121295366864932610189527632623547051445619305994069587307608793087398650100865446554960021173036387913498180435167638908992683538798049243395290611062951613892335510887625769205845482672309126489249973310529466617919430374705069313616199637127358224022554326316428003768820620084386715289878638360121810060989128808390508538318960786655812732614387683127173928194277555684032056825828306646083827218946005556275772345246906417324997733826674174535289862509270837329723767413223516841820638250970977740174733540760734276722993668226765334915400794943407048429690664030247315812483674661357584084940454569492030625294089202991898099952495624804980624266047325987957955451175741723772701717599971785028041794566857450213560062368198054106631007094477729579853718534816935749881061375245761765056549362987516523295596687193864597193373927856291755089751874020499194599252701574379167313521510247084124969493667988903881970652212599122712645758891442560050920398122100761718022054705972492561453529015211811024828615473486755637016181600963754604279965825604196973851211727459774197223177778176426573733804498854858132282463869315712315211778784103330656704411379606504015678982377846468169996347081931177003406281146796269861517707680769371415206948868088142048230461339977974708593981878792789481298314618182560973908065874093274031785781098721367695428901260731667629194281542849699535266922401868588770470210316672973832645330061170893245477306414015950651359100668392919424670999187148721253769092331188978685525337741384603793565201140907182673348339484528751674489474677628939967182143193206637342013902943316777419497939615195360582946563875497034913857851364143741360983945396948363749870896625436726078564702231737516701823646013231322607562253707820494388136181907972228223710159838208701767627904396936279062528220371870701767736680719999997182145537652293634689856726123510899769313566358758640472139461671110351073726384925502679496774066622133877900654276383190942167386072958354020754391373243566603797475457119393245399967144081086565445348247997700272563201405801603110665098140050225629099740655035268706301326788921837094979809850584764631066011723587650190428099097497611802022032131506770099894931205399052352467450941406836090777508679327588146719387674549357380037372380634554885691618365290491090389628842896346799990158841328277698303011432724680138641137619723560236298835798521833166041372139609206739489086624417164832967393340482217829960211799186425177198353277299356363729315201726767972056438124620188606142155354650042664112741773669783179407401491638547387731401828017560804215492359073014495930844807273331060886775959308724258351544939054226948919040658531730962648336255423454096547969093716111290595239062661432143660688888725363741981410113749510242403097237064643175867941121206264060402985376618948820202548611648742523414054275447435067542270278552446441874630824330628422894998902363866508452997239773641995860202161345719247782421007101145156421483507406810844065369822958301501470455085210936057273490088970002726522801750987310923862634182400084901808377752642621890723450392879222196448463374551881177881168670563711928912988113549291919912986002696809597094928264266260107179174951083338203642491181743666948087179899985920863971666991395721289108045526306383316970873631731012006950552162510485110564205026202849657853837074604474357807672650701852672059371835717521726942826973905164187655950120405436081606207271759196512184061528669463432837163151777645994705575319312167099512641658431191252393827897799132870256655532067713580420436811295424530791021956222821357597772173321570618289333034475942458861962238665136229241900482312292319082490795815512053172814861337009448635378459705253255673077428914920947608860432181208040158816188113956793198706767767670668530168866208384420186744057518477273420213345270176076485537555688087551480604161561548985933884548384055841416326885800585653533235052524204036347586883701362360746001284299098392675804151227459019281544377465137500715831393050468879045122862848157265314454251542967157284613243601238792347003238409518816988878071531112520327039413261100518224185111542738795873638299241951657917618755568705055414087585196809318602720137377601171881052890192219394160999002839351562111633042197863046695424651374889178367518890649717578551736047487360303481187120294531717581239482943809578189775360228402438391750301384292305444381160536707241313277654897311622635763688743962819387774926028950193110407199723820454937974140990338659297282522689502859751847137850348743742762586066440883701229322079539523213169996244802670208396375050055340890697931676664494501556036966319879017005612858301236290129028957856459714197390251484285327939165375369573658430624029558861705471926379889631749308270170661086580531487819280820448085145002991435985323965095628821103547942249267852286410915114127716038748422738641286550567236560393781589120009971112461768759905535298384720046486844986993397498116548650178574306076211463817421999888209766104947648012599763733972711164576052315343417201817260120220915462899332484781640568227631042961728484378016862588873202989013638312352708918003483099313875483163270447202507541776620397822993075456205101091852447245796357974481040880518911364595009064543480126163718787610172811451950613853297867425076597358547025907043917462106717477537613296099184089367468343014011054715882253683460182804891417677240111729584722943650265233626956389207734872945685674571627006459200369283060938360252082634024266991777559863124528879127956316988232562492700135603142050949974025816255209771976459139548979378266100024056407735298826646928948074450873568639168277059972908462380654870568466829408716344586608900109738532486306831108308554721531081276938631975546799107552108781029808038203734843398653667467377061341744442043429629303315810831764455771190148930018800206279574640913392306781593561013617134466062733857095578093167446863543807220671582511544801576952768990900186358195987271540626990636525865285489669249788638865872346521277199528040596361878926520436119649697905175489190341535548553624837757181181684887883922302048167207386971367850120087727646831623393177277892918570094713864990125004978963045350014951179709126401396979016512019413627667506247849737776652920454642396779817903931464015227429494174915509119146421902164700001120704563562368133718608820183112131868989239715239039754574230732365009237990439561970395310358676316638292522519782289242268689734840936871111791126103486636849055852391906193311407515066545807145163930087615344716797534755955757629866212012793714684705712622878904518161120989616287152631251160522253164735809443768985207103831109615982605625793672366657077435245838367251521338431130567034168585252577101304484246893127333816757505389337574524533453408678930969164785125314456759370836975153295359386931629817408253301822841736887356532930217410148882721294663792053404887124512592245334746180617006783606477990332256365495962705693692908786312263790249118014869276998470236628127989897204020958783748692285536707197693745655710424882280102767671104170880742732248545507022964566404589310110974195545851970463182295761105428329836579656003648882654176952553934672154407541736167219785948567576960740659973172149438855074716837376364331182543307293318311360808230231869506534766843906278716276826752226278367379320584536068549375966969414528133444841092143949447266746808838024527473788054837656733606004626298085314489446084481226129906872616509167452819445064225028092531816487734953064129098111487931567179554235802691619101629331965899718508935125955429992176285871982304993912406761300331708020771285126899910959575674656769540280001650034329287594467298303220534448340391072673887669254712240406176139820328451129671127790108000655998903456930763757904210742567286425722614643841418917628522411543466206498879319450525060008386005372770241977237264210839594464002240768883617034014579618401790172479225052938355440941539703740940555374058496560819800445998787066407686941232665555959907953158041789326691070077260375977616907860310191869850446958972837448602930840302026301777303997513982389561095617643079301039177606052139580772823330691178750698633994425669045767303852144891176895460705873589885759266752471208594765405025257040045458641365847250670528817993833967729092472165300069202571984966155165411536679708119730916467151157143595931789773005104677417273140420209892890254607015052994691480615321696862700494453514111756301837450999458711897911499003334473619723594224338735514414324082048134944094690011215302113655979500409027796992609706113136065880709475781182191419992237492863798115743433612360529794981688797715295833115056833542828732167371455019059347483922995787357500910416869457078685548506334697323176367060309421417862390963929762876628326781672450380638428403121624457073964541593794219223144544052317479257364613722015652465955480698612034192700077209763171003380984446417802663947665933432589008339041669283914263960863029712905399148518631450187583150186331036578475087121496923225086627700041381983698616889436240661582241223504039827216187493817151455146043435446505919089068140783659000985291047264352084971543471499204486697094425929776034021327854606827829401013571819764708560942510017307486812799321786743193874074050367826733846451824838811692109395849569987947440323618514456272086281209623225626831601794358688043969388760877867422406753902510010457361931745607315843872510823435918968351102990817811893066761452462913471080780775982695814834030665049541069052718394431261495804153034806177781364367774227704732701160970476110041084377507451838532277298453644586049549194752466554087575216247903982304458907227058477934512734018621301027483246551563729333529446353358808364362089981613719241942682628022397323568406051280748626914147479710907901775490248431471913152297869829734063070443007647648674170164987238380963181611714116480474380692532374435517109337442387302883056261940816211949110735037475887273932992657762814179454430654614981191147809434450995208624481752769406525772776927917792704727553773014242891521486782030643061668104052700427138432241451836220390352584792212243345799079125434572205344499187369321341148756331382901093215582977540154666519864975083231155723587210475824473796744437498169224028158041100873327680062933202802645235029329192040359988933126617979351925058821039010871613573349245760903897566474457942064008598398685154624833808401864328079198103095593419023871847817855391235599810388285006422727319098035149884579832112487470252396985297549600971821795165508108083928523705951939442392642567726540080013910596066503997261947028363185750041263946025136969941160753532340296879003693003086450322567807980992755599326085010174571971059167163697646364597398359631715991355696828161791476624879595483554283476815849872117639011866596900842104577098506573079909171425433467405584220466666435019835567221283426766574369216686169895510392188745417566999020720211365654151456537393058909715117143306682382016269689152405078970044473320410750614531417492871918864301775871293614723381096616102843656601741150915531071436163397977107080011739938314315681936728668811194196171931839998414678128497010715296552623158133202892565142235471384835997905078658755596785274035547320627019131487820263292417614343684330808216428391142185651321605047777987648452604692031996416726471747299055322278445083985542112779126700700933176982258172914548041800330728314619744494828921275193052837498999593676635852700184804117163662265466049490569719154498816708721579251934642405330789264255414982497615017552817859780731823362076950935389776547644000930960543085622436315087137717438047069014886162409900050728830158815329834665456379571877309057325711561593414550574596913952029655025600266011155349373934409535814520329462075859479344482749051003625571633149072843054543922828686443913149320133816586522520835276517989469921814230321897520127599065000165667734794962283878633172475816338762576260865378509037629603332205139326956656262215715979534557937110930941812225129013272006307485884318569624127262928108852359096981034056117421904700264683082236232248804524100484191878731956530536052289173625993368579499568265743164335390175567084704446846876563499209826197109668594428089980068222700261167718089296315603735056156785256898653737773702379737930731168246559575346418333511913435721933906233227706863154454109549218356630618255587132078048304279303587289989858322023445735198549859723334008402165183466889414284682591444985982227330789250291578675165067479226903707846226142634503671491060857473103015002513995901683539965618169646699783994876315330587472572252728363031450158403826232800332189090986219159268470551822757563104004244702779464806309678070963429234626889936392676270325537323122134679968967684090762001756250162966212928999830760294532620978090960854165001396770991198974675501873450412868827500912487886499260752241640437687253071964729997591273052892069838950790805767167746699185759478299652683188370254465377756478523603077617331374595900078276608140119230977377528207795838241001864584692572919259753566448229013944961476173386961109454055066306343519258625252850820961622168065714163558081399675531514820077248794083876086202011275621013084203096626537411164825991484180118701264917433142051803828525945548549215200763284050381166687108859999218414737605909326770774002965318237984685118044962488097860905806931530417638287050029741585005935476651440113435141031506200898118228737051081439717474269186682213757431746950847546529928930686562417514764940110871312761094536437712326191513557298344882844449108200199867634560946886557425682112882779257446393634087395361003224921509295229853982362464729450826887493632513939152666122161308396050910352574401502155189150221036382769537924631014345463948221519024818817402356367548267053682031034152197149929257963503320887786504002013477862970307369024370561334212786100435484326945151640162748588935913980104085580222907205374033795379404216477406870163183651279549277628143124026568466981463253336350126521603019777739835810677515499223329089741994450998686060540475246382478303458987757275686994404190736325856796913141937556105801437632637295988389114082582676878689819630723890499265738001990355248015271796986581134567301451568900568417223726469950856103020804976661712296154675559517938691612116546368765240341519537206144181234489949578557679207184234712647130061417801971748536638180390286704282982984596906079737412989446751009984352091027611681361940343026558182008817876877234429192506627029660717365854582426832354844282619837353817343801671899933468698493034158727983544849438963351631798805421926776676382190266534497958684236430136076325725777514259713083254546053905264062779187983644352565972766053036739912885192565534327093181392308055446618106234455703967499690794687583519591099290433816797939739890513972018806840315119328672457061340275003270779467661479492923500359910115035594106856155216561268434948614190197864206154036268595448444241910763588518462948271146148479599079714110481523110876122099341176321011769204291762349050661579061328319320897477178644572317668083353772084024258268515530313402479275558198482744108326245561998506327758705246600910835162011486874557275257872723765285528497241509268793447148251231357226406423813492335010710192074978725996419053444493160199157935949176506780710956884208541855594499732583112057733484786314733969401053887737240021203716199070466050024243824022350609664276222731241507241553819286649218161364636611794296158421370864986469746818185450152746924436291057694769104078853867969699436389687530787570797860473614078429708304734513204089000779203602173833466588479186442276140835317353053661830846435409428692691980149549041100278418275349686081675132916251195687309225849044483473137530310175461304319571676951851217368721223163506190483530853249402724184769415536063108883344804099573192243188312942552729136501076259102347747333525383638293128534572492106700874159411625557911713160395713814019341922442939083676253317691974483713847310199696050499398546936008639707805667612041061798157122611036544992483837567309935346306565268173933247901770084339146640378118029100643426467824085269975898085916900837147782761798145078186106826742373575055627456322911141567817083396013309169984728741495653544111108273082312973799562454234948994030961576175164100279946660305773151637616240186703816214914708629102269872377764824638714516578320769960490614601733364865894255260025377962385743688781365158773909637533868830304602322514327561591746151803486399553573016397905412791865810962086330449112815587103890588796787487425562403687975453601346854050389386592471931437627927238819639075992463600344720809271862507017463854679251809585218593020999889948563795043260707198640846908989892383356405553016561330073794405381938027564962209579012595875338866995030670545678790901441937551748583381098567689292184647297228587255649871125760703420811010739272842025172399210158405218334236988951101349987370226585902198965329004623182598191216469436244148828568448192665679015706903090206799878569953954176518314313598084141992362280741948590972701449100105628108206665214626574453108520025353686438062028398672114790167097342807211070122268294462075160104697971028825290418810791721309179672482869082046621353358118771080367500133195690686471305373481915789477652781013827361504131863709810394866397117512143771978819025658014267867223417011734620226203862040860218428789276346080027057118869624790064725193159422458705044776245091121877432533328968844240999835406813336414739959483548376575336264584772155948697575645083447491767076148887753718692407179983358645796161671663687670481575812654269553221255142240668846037312593290868267427257550091320311615709289859292776459121613540823370842418564083900015908046041002208023045204053113362900367201575320322997175286416109019285576757340433426935155568199750007025173424115085696126150793201605042077258997516927993755241718039077227886628819992437721416158985499166023599884246934999988401735496657093599657938139955962979069648094801347492853220032715444109393078724945491516536719757773579694398316310242828537814855707669329247603772176546060607769941242052910419552922087442247442697078121380002232546720811153089599876514423859891011768520315206314498815088226261810801009289560118376167178345206298043068915866367195462410472813670637704054210384221794974273138250935021514287668183044443113042821879303683932893786131327129452421384359954119194897185841571271352228519325979887084876673731138046857641539019155639687699268215907760861621327646403442709940487598651148969005703622145509547424201062307587932886886097217701068479971067975780296085365111402392996817316908273813731852045097346219554511198136099220571391035136020363584490728466437904992328470867333112441757532195038478820235214303594758348383538040342637986372738367468088561031753886848950790237726503770023925134664083824473376286951115684171871470155057923164211470647206760469855206941367212126360956745523989040310914928887210083952120313923200602929532111139340273993620807133710407448588446149311178523859092017933556660206875731286397122114483787221162397462737517127838277480610881331479778378293544100207651828656376940237914861280696186173987939013252942597261467538377959092627282425578839746486418324852345804554170114365067742744962309053036673874454594588086641846652559579983825527390970308380553063662652895857702806551342433244887767021952479666587541536511641006527527849417733621680003818218825759512128273072898626458012931821693123627976860972501438041988463015113830162034786493029532055485613875741420634196461144321953046388327191586587503323084067918350278611112259247235839030882758950970874948313033055126104644059261327727767512354816733106864016651779853119269967029409337080751444935359430072848858940187563120363675395402341779533558839369196484559582026854831509913681656428961683409491963347232254952466141563197492107509282534740240992448218526914270786991205718779579821406399497015912256056167380195201896469828741196342758050647330462842642768843314276946911087315824294577271993673286916838266786165501802148864593047022513831924624532870634595727759091887080149256599591679207358623348540234700477237116369936899595901577227710444283908858224745351943304370756564182706398965903463313488029540796029425590876057554819534475165617877451168849597884992654013667388007776918948865043855509245294692119154086280647113337717470641841929831112451699755964208624528044198950628173650701639841213593495922457985891052832454859146331810266356108241813600353443949070281670217966274524805748812054224741801345417526702239334512032496279380337123653525240346615322214298611562984869403368058510453169870039330549780372254716644117618356615883902548517532133659983469092303445575817643861083453286751862829424784199673069730658054936124310776624219686155981883961995899672715120440942684225143545179834645500047044288908886175584394824239872981819774415589203679315120619143753411802909833614433577452247281630661240972713737123321734534121038427078134353999900596762738244198969565802716077797684772967530508455224094928437539907563054671931334064854979598984860583789516957639871448006598279710708551745389131295850197292861304473937443289867889565436321134489392025624486369491475001309480294611022622442237512551349412180709184059156120024157763549894868333536754403044739983494735753586705393218748548214586967854496017972365553927510506740725482909362025960144916241217104541966888083515458539663861810491628921130545844321324656301247233607896971671646102069149753814462233497622659651534465531941337457609467975554873685534414826383054319553728362223130278670871657653901254263352756036449498972634582484896636949849129848648706252148043900021416474126743518781687986887207339442748354481514605103586728350011380628492125684955808687726145549668447892834501332052012046992696970019910430244867517376223050562262550986555090793385154257271693788303987763616705662681187795777110120438095173428845415532220385039950445375231532524171910539068126254305291051767751838235243432479236218555830268207311951132765704662065071701423610955247905031608188986571675095233244358320704468286157319422327834429839178398555359496170311626102345640614537478828539855364421372321014207326714777425446721197572155106060468695075351170928994479897661791232893353117147246728486440804165943914745503347325056691795104777017248721887591781426257296381528641950197089723463031621185817356568479446963518724593830272790557688761463544975869895108670347811225733271345895752913251073003933710915040067963775023893565306234334968451725252534395966092013899607873948719635420759121082789189535928094539096621452584092700150332077328502685999532510319421405421256251996654212918517719191780849562174669857598355565724139134207920675677853326607629195407359122997147071659555832380727550235841542785932269443342715534561818875531996607967291360941880480563691041912460617307158737776909825551928868453504740514362398305816487909761502861923937166461710630029957412293477839316746641148964242307211714919165521641060505407010182697124048614939036497189154563363666598649599031524044077859542605573830153094786046633108334380539773151977405165263065507722370465920088478427980264908476260949283039084837910793972899836228869247650578412720778737035172153925261416532678677653011372022870947407448559578938546433193271193311254834009501188375267120208516431073907682595803507017431345137160740592447516629764798402586687873710374647580232548804478592398902451899143044589667266287095185867265060099010251299284312758051964706306950146591864867174383217893361272162247858908937862529602189516240569681004703966130446363233897001130786780245280335219532264897738505546112453662065939835165320082736724919394471372332835113720519298686838759219380983801683746229691116025845574488357399846467124208757506639066878245962784444824796529318618894099928484363185846515844739570083447318989775948087927726343647743445134183366608105533992332930152343851162686824247702717203218200311695838421520562061339124855966338324594807345614641622382361593205830397551353689646425865482560841358447057774699220581854385069490982359197302851800201997646223112880029990858485968013257884753730508864171271371406201449064367668000544002640646578833023490064453906801294772180113221411253316370792734014024408491564197743533408635597415669434348683299387632082194730038542702329511682838239665469648704309429460062405393279640660986674664384414303165853439674592837506201453454780740281723684783306036746964811034357047153122678259364882006299970209360770849433651523234097925913242868748318826792502703803600129272717212180605792136592916687114331419437580755663157002152985994866324852179036938286389930038254394500754281080969686575968347460867310546273838142084240702281529831828481459366129905474575681343505457933355286667145301270348563099076289711356235358031591627512128442421735201601323171403775218817317163228498285273307059962475365441068937509575664462211725751905435287996245025738439416504025742913901157673335571313416604832115020955079128422623374872121319237408912390376172643929416433118321994153533081659056071440928780408939837503561736841322998477232217554556715204332137932535721335116247028183824457536073706655155865503049841256460703412682585810391536577747117972193700282622190366233972480080061878353194567908175719385958104102036379303311924016650971163044395127571266053337141388530459068707819117400724876113994457727043088607720531354901106114130964521683006683913468350592249067800028661821603338456398754777828356882850730256367523622767232047822473787273571187453001616587175352380367931599893509735835408287737574432785742285251372506361611822056378502181089890775230680852120563887447876484985143492678525832518104925711938236375646395286417957756198902275997731286064467403948465288982144279445042623230389569438626444814590932470906052516268045878574528053101683140592244620920334066915046359962945113303737867750656555056102157250964028389849181571889467230036323105859705744865094023760427190859186320254072037055371831150653846833655744855058293732986047726213397053765503583677982084429792884993998332938017024303165685355388802344230565769470060517352560642509760359603490294517250895248041020334947150360636559304144338858910686467779860063891864210393354669996117819978263795684650129521691285467635136557473006543478771409084957924192570702416620809942823048221201978674056957668365774081600300206808808920218686230917842376047468632393432943134692655486274958869802705236930272696180110977390500210947595983401865866736415865229960724816600579335416926625265037089669603709495098641632835831872259339948365020228142508039397054151362310286964988669914362101626422993661479458025660682317793088557011088517475081711210270122461436813940641468797138842442950209744112702857228136817879182269827681534483238267471855503695094485446844631839117551481727076518280015209455944748561055791359736722978351371193886475950620880967194660016838794751637683489868648294764513075735375795126921446058539141932340325513466225867510087652634041549055027670013764615029896484605863522261788933755369177918073604677793010086074147829260846424957921653498845150454237781781714140338927828159971367009856764164386446713420423977572378704518545537540041850302069571473337545496929694395990765895754355956251641133222896500242734945205162827428966326220761706502769297572585348444216916467083589932328718123911315078865032197649550430650383056292025064053112622500955421874302432841944268158891702286293757284939102236638618587725447166064075305727682723762360114774220196438249693279035446579145522828213347056025657967496205503730744645789277747816922361712541608404018954197971736323341745064449076498157784976454622417116776476344616542695028378611846121964084941145083895371760813026511764483703620417940854412198928979447554097018532220612888463265707633709334829818698319572175201370472703443816088965470778892947953168949738769393618093918117943085412918580852780471273593635754279118412426762049748575508002389358570310548740079394350448663763310701253814079320107358069966222203802673896342383868585925735078560348884862604441245237799349927252919630201842150706178859135009730605575077269739590621457474306228977849572678977989175823480304754036352511009237010051488340037766881853729329614233472009971915380682657557623385786896875247611394927974827237281233693302823484984634334678940796543789015045677263676253908732414489905505098491243009797734063658709520750746016936191710831061630044485438154182517779331487016307678568105992566970516513252369459844966375075134497996897667846035425810648427464397750835324789361467463946336717853247725724330211253416119410060325374261356359979335018117524026315474619573108937798245841599168894205404470771694012201909538256154397273673014996564661959930493160735489294132296051373772043386088106119813745356393596724849101579092937918335680856542186435826670900473572837411924342741860775300362725157880455786562116565380143192206582866430926236534604983831088129261843967828592210063614486357029020521241814458622176484609732808458204579534740017126837351995802594709409917388308112550655754159836925624939452795325152398145683440092165969324912580631535886929700840628232219452453854441878381549135633176214816831800492990994008220733676197148050607768541156564758477773419768052636157815682230190866727694112934921756262189975382070699920293316058513064040028480540803384273463629780189712695809150053454741140549523631354590658001926369287025988727543848370391514172430527084435464753033909363758073697350123091286979392973112610695985624477304507742730322349207324854561427522572824650244977718670944856727753706311768616114490628248265120073008036313368514069369016367249041516098398350038189703860707350599271704475199291492695026981684632057169302735906663484422877113295792824256732382751965178872763911719219874784798060037999649256411796068733393318267589997917586357514070033035939114028048035847042415895835111266856164219423758006530088878943648650275829988556988585441868808156265440961226026404138252423494962440913968349408190809449265688681795725695150670837301210538399695408431912512155908570947144773683078041029796654074080278088488758373804962395408614140353239968307100745627153958249570685370421253505653702424486095346319418649267311541092463187679089977398268128816937876641576325862378582661390528902115233454910052607425077054530635571321743465294301645602831941495067597209309438968280628713070822701525802580453479903139739957555977702227770167185351401783780247690108234246635967359078413114876303382976645469294709290790978264411080493592561012564132126690380655746042132120147798818552610518961354312874804345748766292761026250090095533191814035855682101618178359043835083542086401236870857683402697787780274524414753601152766616526899498118176158431215121259707489540057429378817550412281819409953307369497473651836090996826741133393918331366361495420998622345719230216786912493378475712968750763851532223753395848776002236874104917114664252499619748651592073037797375023972777981699360559768763107951957078897395782126972724799817051284161461823699794655175580042187235935273714346827857238301018542439610586716732383222187794937042110252312612927632459886238379033970189467952836710370281863161035521925916251525713025255249599812307766460174223994576699820164705799575963757249014855901693631656643308465077305780848026332193915000029523917186535319408281101586484864726089577626522170804584653936706993846635022341983339836302180248632291223471517753264609539385980176717867530511334230648093169353028736276713388298346631799237643940762231393368722840704414388575221729920601390472356428272279247576747984232092096487603370435301975644928966906067058048971253644101566361772709187636171526250988087188217337025798808200654305631505661218440811681101762697628032937445004580037733224592249756746027982442367748981042685652709027467354906431494418193299305314401874924014589162202245023183655672746983331450165377858677978113048900788830590791859001347858208131924266959200306785735098972606605639709730059618658108165571978667586121826006495920718500501702344227732015614369268316942463043489637642176143951488314908025760008047171226178592727981762050441301787435736724265642327637157780604339256817892199195322783231968531487579891715903258524058688640433383911112286109298587018633252101932814004192836993660055094179474112612688728333040159889934488817333603854181748069153801211573286213231512114668638328107265913587343507235881729274351622637510800751362155714081823342814770722369820094601524432338371051663384129087372658815169296293039309276161963655796472107328458799896870038901063680107551486825309678898761817250240771487514776457703326622915820119511253099701573218417143399065712296973019340530436763385594361217485098352042597703297105912491921819285973116204913687590469538644197902764947777958393991133047638261736092283421447339771146110489294567727367392904173050615921182317591828764820316420513907134312256915050715292893820049001225665154160747663647744255032376813499097323711232016118166838590300928621675969631224750995732713333040266236508947472270904813648881681474946784922387515975865626282715301270387054584761389532654275628660899321964781024603767065610479971415036419112198761654697352771572556364887389211059732201508453186668804637289010688043688890443323288800925726003208521208422323898653406544133087839005803979701109912635056064727559338506379676332986178184760991647544575713209771623970208491449727677912577773589212507605078696440769281009803975192559109950725263014795897310528586783232863905338288338138018445767644396632502126306371504443114169888523040753295244080902635958148274155149846264433513802894091370491298978763557642912873712332672469890742802193904697579621100125009995229532923600970934197311765793039877790247125630743689375879606362325937038222014329153409883650331408707319261217006170436678895970534268622783965408272410067132984206004404776587523861938956037543929962734346662095744994683772544215313443111693863100006613385953942422139856086707842492000502510755439672186738370154192381473776746420326607958706887302613553780507192962970554561281281010919994669736702531925718193744804181970462288619629938726895818224889473218139381972236100868318903825629278084277184957613492781181670715838678611582446281746143789378884748176981579333274946709544281278380195503250188973976978471428196503300664752770365954283746511776260076910222963737899128113621536168242902502265751655106119642371252369090150151171314341543116666224409561156454596212706840113571483759058962162484212895917700023585243493280800100449574089248342126714007240515553469235210934922930362700641221798839530782968685987895571997340733791170989536009816557813024636669405760178428624904099883921051312879879348427402229779770958100974182471445352140995181144302601406867561051541795785185805481309813527417163867136089376158654813902564989371592516275384101685597446648556031319497851302636616162180806362898712251718370679020832299647159447012787959034350543018671085655093310169270562679138364339237290677663695866950107543550747399364521595917877313799449275762058054474880850360343728233546674743522833082968729424976331942993990025740669887345307556259108520118270783496309272011736841021934898272325927538856653577994844530101873744757169075787849961296656580614653037781282924372675131484783719674646989078906594769654586664638332777941307065445912253573668555853570666387402063710320060593584729324905693605132689539082200295692197197211863742152336210780863303313887932573630657724950171622463894921885078938150665551548093857864773124578139119469807135624885389116263838721314344178697735115843152279878863329388215590979748626829520818377730599629192321174521812262235564119761394632780777080010528461348303933291760966516428776450598738152888397222339998185792222142109941557443549946298549026927698643084989489648819276591093893799362334262998156865408821832109808266862481476080670821765767017472977172385444007643826016129806307329331174836123448816502387292735096233873655041458372176334842693316842794184299180507929977423458358286325142692331831259580801468426134275359225142977317798958247700838092980013298040015165433209192178273176240906970551942104509381447253911514163200864130858002699893415219510227866095774041134974194820777317796708459868424151403796199269185711505234296439032672431712474722665492256431314310875373600979152812560770053728400724462145786045645092247517774117682625789808094706248386355998044336923642254446911786530566340775703901651382308429415663808572926496054235488104068607297588101922083590984366242289182886296917781997146675562123945042956413338399349045048717603919257361980398364226071840215437543212192636207815316861891035366820092631236598242710383100893615423945950754645943698065578923321907115427662985784966125742191877413080747066441263393554279191864092652392482382453999945110744726838511666478875174417565159520527652940763985614917188686170218573455336233978157701381382630897568283307440003877183803355822354176507062528839373195886388671922946234662709988996214748364660411969265601530097640605797280625315579483911845380917517228654147097007460507820474422541603862606468738185764796301036728526313632711953881027229673954584791235760438361421360552108690353801453377081253830184302023901928395353022460333753103024777947835682245948260928539586242915429816095811266840737449790743221070465524634116313373801087695915817719009241759730146183152127321144954979150701691034414774598752742171164443423771615488678082375061056631336077246707203674855641536340755585722477031102400135087222683901871170169230173148994211064388920598142695782361418496451634095626360465766334344147112943228909745702252428676110630028023664220868636928888669264188520654408236569014005610970571718303967250762988290571645309679716762235337013195274150472729392312458577307300643795132586485146874092064759604982218953849307709881873760739491046916632077795609450987133370462463343836464318697892582716008058213406545709458647948212164799807199042153663773426081732695030916347730270531150832620931588851845911306525204315600969498224331045663005695171470999842556420135520186751917876001663186278719134354231470468454175984296885756276331196077285274799738614781944582124534701516571183074769694459153769503418852387443564465530130570490510605016673167136983179871903795813810862064740678633821437735930833693575469051671023817955744796728610991557831113602239047837327375543553338739894407267520716480941412476254957289356304228624557938629649902214129934630834446016875325692051098526017921819067145494409398385765101976024469836222526706206329674068285104615851905933350779990849831100683732672671954459197276900961830488840897225095446549228158179814961296962435157301290183712033515758003563178965126704240955800482957074248772668952276939177880131005824962225579111362914707657658684339164932262692619144271137724516066711917156220735421239448826074964392493735377379452502182715241395859221160023438556670140375917479159957109821641298651609351974891448782712423028957187854244628678064021340350853347361458028955720747247149828924585538374671355412498316520616884035199670801086633127823388618151263147616765560722864053945001810205974787514839172865870896055431958135446298736328908969655206238268363780577649216114391424063423963772742843158441380822694567721176441992892858865666509953043793105390154730990287406612646813970542137310906267039794286667084880765288826539154393169446725179060506304320724977964548395422151165543425368327708076912631257738099896847349491023962961302200345366987608882794262479350114713296797963343100389606671038144995305952044009046947928269765455388187941132572551950534783615673493106674032069335108335820456454313077730562394805496292303946654905501267665239498167528677322570317289692127393638943822190165044814555029051600869789146453013299013959773777744061865080185514209224824009616266950714144296540316105184048113324529469514098690107023508284092522216495392959971509713776450964258645339280272169148516526506648708075805506042593340916176055473561631186124071147408021908264665134307902801145688069486000828583226484890110323133525379761359251467599005264493599216440232253644732459715863003605860433726312756668648081184979229697657512884905431615958417329364308253451266597093422874284271298547897574233055879337257254966319649728821500554532305187672635610499310974386559276063399807454197221569899055257212929056453432191920667805100406464213359385231847160114703367936409598542675115855437005397533336927866014514290777282779428075194332964625805516424625465544984616296355234998139435294275156631002655164713122423406139285018905317355642040000221959877438569752123093544370386345772055764775611395410942055619015226795870902026008787277176174521389240577219688901470769760837408821340993525767914301105871486755910312974136427002968993021721490967257507240331635495216468453304395402878275463229168481795892626188201100268808020805022377890082794164149705141632817154426556645797076837168993629641220950982997980315708625268642045222554565140236700135875795182078352571448356046042988061402732170283885494506976288685026675535118177959797581383661632581758181237692066950593098489242133897505066241694414784311257607049989031585640190140548992626194023223015078748394582064341999948913650293403037401501962165052539387476751930475900211937907308782145626406694155653505007427769741610460692548338748869172193007921299391232556102951370165742079682848250582434147349097321022593266810314691792643475167531236948324949490227894151517474606914351567528047245678707095993128462597287696223658890625263153025346018574407259102286799491318907406953378990327108416366574244795382508523185070872066063657104056001569262250033242904030876664066589253683618122197678757533314915576758447745109993893880026674438304560906521028785644818179739116300677267437392265103003826184406112190669491085063769447909290170274266126394986032618529341815155621864157541289705388070074777980145146045175353341317704656664026089514798696813254323771670093109288199695295124386092612828807527972719871513251206081435383141067393217855567549517375918326886563046287057897316013496856988954712001612111484468739163051977838870212421420490900680189027103528397374704351259554240773870107068897055259804798746403913564051399178635747139353777517880224174502546298985602516404452292788433414704326220586212658610140937070917520752975131528233626400949926052381797543668072512606577512073804431922640298169879560889575443722542971725760144059188947648660968070583686033459738931297021512054874112491658438839127231494589239047703222333084640830776892377170254295485594378552105895509530051523360308817807470220346223299067965075967875314422918209997531468760041032267917357344094952588177695761049603188250703859162021188509241230281811917340186746647709950754619229564263487958884768796818226598976606451297345298836435028865008132482827065391385493430878560088119925009953610658673918452759103380082919653600550955910096594027196493916718173783626470063073393935775638502279523717427570448942246246612087195240210055515305131220977830445154057171392417906804890044845368342530035109369158688904544613914478414111728899610143611925232870659092153500780888653815488648977694272661215898647295632502459260679224309596124900403569086888582744863823832277782287709980681741285702163621541492804648142092158103646784547648230778198135035368247127021287954959297200972809732780060124350009369621563123616206703025581394999144845200790048500019450864469152598368036243597630353668049433408805193753869160444858565681759598688093691269915517876621232287072414871095969413640369529824771740974642468258258204173904608244710677209935014491551168031912162460467439040734476437856106430195198228911087902890624785946279302009492370102122935167650523508441930266566434663185373167158411101633902651667515272722925777892012741770382999565459942301364310844209968924752965971752123247885107392089074684435234888116444300205431380392923750151699346002720230786953376202643532863541678441662426154454993709713095419013341148660549271232172352574945177915285019104152579679449001995957426290138928354893774741143833940565040186048274691123509922782959551235280918297152316603354852497082582075332055332022049157218079319073698870268661801935239307282239571908204217600001745859407670994436235933055283514204545355721700392679830223248956157697830384142506577260759889219622765032522491911295468175990604418381537791994530614741584824915300855672258305308775456206684655580218492066358231192242773640633858812610628857308990585794650588881445874707078257918824156742322810607869388098647026298557195504396805463701534960698135556338410740292990215709593542265821825070295990368606044303701917320487875959789567755587920677942399828161743153286955540613899105790120405313664974196931253824266619403167088339006461609487041195141459236196024380733216776197857873767413328297875297871559392740123322102573144243858399983269762838122371171246771163069710890203538878248856550476807744339626486348106029427287286916514885798000627591835921334880067878630190302036611577133068561562773878923104649528315017101133579798830656321169295918875443638792307542896799313945146441299068876514714852532677591221864034306679294812121285810636118347704909291979655159989515950610575173782717104860870890131756998271080502188796250379913523834345861717712412507719755525747796760598917689085129363037668091101132500577355822871319093379762390324326511618854605613049539093372350273690985111828243059421480908116003581063322593634281712814913759972271016439377549978624326045346774004537990698147487265198018218362631743143056895393609499258690684984197774920623217620142493895417125378054542267080870821241097851176378810769306067827128281721703946102096506977879663838602297443285675896017753878667265289642322380145374348228623885015244654294718925911135817121388039736117323594596324050657391889107593360315111074238664101205958405034317142667959714220611997429681957839996272711473438264946999854301326102294869291584088908784094822903695126629193065162213532171790068525298535012094699325575880279494073420730041798524416718973189075325093028664286644532721566345086504815194928757835812640396815308194650748103993667826432008005442830665468518397496668351701195933057034652812587567040856295626471201441891388424561522908685026309986361594024449449048200427510249907081238141615400400896626884950139117505780440497070002536902465621906835262053248798083877854713644540650986915083972232782356458058429285677265963260949261570918597754169004555482026313585653927236404907045896876234418565811261373954053060975973861381233870111639811145142285617414910805794318536010301775400679340875128528067727495036360316836652062193135736015351766410797328128305264077533797310569703948299537814793311527728638946477379055513541364074714500635937100612593678389951319534894365477771015169298732747313036487166694440961712336558103259518746513076259451759827766477691343147266317263786004543426812433519150348961033948882342383655140663106322492726615002002828120190191195649851467011305440026466622697794231490419077664121410819921107500117265927619260694293396150553089526672783637565603680608756086215897500250912058785335313686223352523263130930390335743512597565733726003369150768439449420818528624939659475181909547236444331505033819217666431738241845881252595357868203411556700369911295623966011820367973048638608862442378548616173442746435600761615592942657756941629840483500972970466472865608859559605148203313604441929120779307421825595182047778134300417631579219670254673429975956589107102131888479775523299179133536810470019311423905263703425794033656926536627883087860839271738264581408980934116764471872950781924827517288446506968269342316931706346744429778602676993678355032119749079785089901548543128371253744674218593433198061689441671843014014771762852637091504741753520034163550214626858085436639648415546174585039738899608138824551920818942339910533863471137173623237921316696567804695006605792018231205842199227656277927412462749544170894298016876276618102757226660648914726704345529275162223776823544937448069153353450485594003728170515226612747138482365667822405487568466074357102406982376603657136334854128615693459606743236442859026471878977218413387120383872882358337438996935949265415202801234553607261421499469956264213955348064362015293935161604068620085070071172677645725045451020777774050288208601155255777524945597694247590910090805049662549489274384960025782075304758569521418004524871281036096878415688527029685802702599731952886066807723192897760232584711016629046665871617130857268877950409726603493495672623424149062038527304714746468359992912184143573288832858146550536871495479506609988515989102225963326627956606518944524795020626231342872819255232278730332807564678097514337206611682022057680784750683436176756165438037540236225549974855590521326532094698134940996067985620397508742037051822101540226373851521213442953282487194376930718171217149182668567313411652711896315418618268174081830585654303223582737200933290582738111148204115593650325376511319953916588487636331787411527377955050647655277716051068784773044666843121481856801691083465155825430016732011571816769489834877443032244552799452890700017579654659220908110633458998548558302681160038471092779858454956104141414429644637224647296422136283984608114740000174714572328994299093949347191330640266692267831016922748828902814853235215429486088412316523707895329402068878263230339367035642697526604382938432395727218892390128727556926102665485273563352088939466079880133269823465734304238257610157611618619513743292473870673660314114273158823096636036109922483784587460418824784345795118272312028961660560587186741802780550528497577723505889792236403503985636702396216701671730862145608448375716326766405603491253080956515624597180448881276871857653761703265970470578718844316544111270552109892590355479849526092441246315182875616770726799976725881642030371449875189622721566065836004253120140974487561784900114495443251260392032629698594510012550224793172642996074054352792288602297992575260872949618625491481401218839152481363357867825276699038688076974190254777622736193991664380186509329860335500367105694920996019817190351557901720442402157626804624474440937297525397037328881522964816288666160435498148269194070942064343031536417682047747877382417095847105379871166238743375116549370898462852529217218146904112379533062137901137194401370140306731835313002299318432669358610186070654266115252426271102093815142372777244030560023779524197542965258992785376057376546079640474321729541388844300392149611169685880728201015906286232099800294628211677707995408069500687617854133797903063473623039689431824146175582526744863188189369850215102736973605084569893982146087239558822274757693790031342972047901452400330744887907798518922459319346847009934932372948810024568802131426769342405090855920018692663893245839536808194366423879436932899991422259597109867688450226103779459568548046668267223609720112821698052163401981682334275255704387803810562686909941859946246736899551051543689799460639994656107421309202112921868991784507920074076227837499499495980621081735762169415488797142970717565763150230994854763875665928227987638068074804280477387106763738790347658235778234476882560449176380267377234891009958693131966232780382192215171886249185729294150872424788841301011351697054712113152360535574924249392832068579915491936782707434993788947111098490632102951363315678863829226605565492566092835327622276170683935169200889401689358348353834281701479771399469660229339449595102915992569505363758533583482668776136074182135305758423307157750313880343723935123972479085573519671352693759810512772130653896842791621667697653820869305614693106394545066922125924036293103856665161675276468150491871432501705691640620620945873430625504033581710367543618197242732018604080005207079945986261559913170272646968191767182539405444648687603839321228385708445936507082955263753843841105357565600170246086329641927862107194261182537042617795462261418370646254445758140239391243061167187094811081262916641223923983139090058760700381026440848735324092520428373514624303848281163296036239011968135785637662876542728906644257037726924267755077637236264217050614428212082681096417824776088841638540242534983968010352579570765773365032031381125857000164927004254280074058200184292795673710675122158116268008498578240965909566192964855701045643408031956806413152780595839351680516635676616717765314122586523820455438937710002989585899293698263911224153813415385200801637253131065358283711884709336169422549412914269406912310934285464740624523883326294231159357789348140575136989602373184276080432577090392868729918845286144361023761970089078270473589843914547125447837042542995048073297583434892567261282111576499508461242837660221306812353849535592033641774499041530712472003805971409945127606845589011068080636153257418584382021363661549592837963699029081479530767957938164924639568337855977265925803363880083952856028928004809857267475732521220876906793849453311621065299368903815116514186960554359507178559691345748108260767053989342667499349473360186236123770276210551820627479470122275586422124411160196526007861104363203033813111738896917490073887862854560346371846663684705373484502289353992141829740574425108542543770672781919811657433742170782238211757489202214683900234186833623098963399073405840041492350803408921900081897391458467467926702313284089213149623887225815665000003857198661404327547229675544694789317244033015224275445686396289558497848572769351584209499410728063195552357210954224595531961395962543742415686594765485127225580043385933434755446856142740948788115466367328979362854732468685058711439392609221189623414969784399889103064349989386315407919545603682519857474688764482178412849297394898096765735084926588057036938939857138399336128232765238231603403117639884330118863508584346198585159833085989003525624315185432524272624872221839320863095305866108287705424628191081679649235115227165038087066531884566728025523388506039964396667621244576220901913635073944602046455202896609980903747729693636914125098731839616942537354402740634154637649189371504356681949154946311431346088606518410369745797765571694368009852235872164206403159386136892528905151892881554159794812432334496480360959711037692442433494730789161098520882021335649550951046277807815271766242923012468822330261113247157840738979686035074556490505881468039509284328779655645190295261869561306609743893969450010727998363655406645693332550052525252318142650629425948065423536485428653638583008648338286260939570145812507913268197950501793847379749531163470558753334791455167861419457267377601459263433056696234783389863440658258339428550412796804631715427683170613228922407160639383129587655428647243160089103841441305947665666426579713301750766049621795334040631084673013723209863750165221601842847623497528876154797406052833807114307616935692653353813925426392322909989278895673438254527452957134158807789834669544943807544423110062840358753086803848324766049548111736258828042312449365178304585025751152318488426214989200716448810191373501148200421363001922427960911791316898251176032561451421837861976049841423407169268022267969153500886606524318042723284536871968166173082398804418388078828582183729463680765679810505265616959858463893154777196435899810846218144724272800919115565359358165910901283867973723686919911299928542135640130163420274360557434450292180698870133884143345737621514481937488294916811987068658442224699377316477882913103159148772718524172011424459369107066976990707983478373404657984952384893349078791058683765816373148806674419658630882212438074166029010871256533785667872407996259530587414832474511656191280328975376364569049681105156584369207179603668879523373184288849542757706905965229532991375655719132086835296497057027214782201186842520069466272406153568627487180958286564937998485908117078902706991036560343971611030719349678515536030512890319868908465468708206570765861885922818621434700673260570074177446552118412854632268032341015525365138095561706339029028086454579654611735925656007714192838034516661905214619959351034682591661154620893139736731689814280390899625699582638253876610539929471467980254900549873282100810472827756802189705936953696817551693597450632726319332961922761969249396464195542637167287405488154508077628760312780178230186285241575133624349648221134932724607295345417137972601371816458593254038161281743928362485347997170301168853919743424049545429181025146972635038306449414829112637386131576417916514330516831327323128563173630543802777561847718271723232170913568754361855499514553319747145746925186867870370411349533678991404518421834140436835330129609854524262549864320758516834606035161020946635780413973609365355310976081818932779598644838203332089651113730415212432633548679903316728206354820788579865490459232969238564711336880997681164479875047674769221967948415268923611197868965177874790070824284110377177733560016430885441924432665605186764830864177929198257852300622252442319431003315668462080285549165697444554276172084335141366780813658033950511756039807665904748303071823234486515657728526680407880548151472872643151590785443348629936296992379521400512064429236562090944903523347643701332898191897725259251547737056676261826649056141436739523574724221431372084655962748217897097875977987449138695508707528552120285503375902789223731540771583792305069827942036434879470358362306870762154611149455385405726562725439116758059392444110267811326780004610175018643375765594881788556334164707546282963004284348861160416070767089005604584450242278998639913561636965491627353218501825792100852582861411567880045723771522408934128690877363293076469280026427626073244152032058348330114730435263615058653613235404860650392486731592496791555419203771443416214808706674702990401850267632030107200874813325744342620983264331604135242586519768723166268488550608517743049139415795861116424774132891264124181041628833085479838494765770368903752772996002189639383623352564781531345216516627654300606259737231244739370102646862922301661277736107305130391544292312063423919718847346724833224541044804100543876110698942559733617729303029200853528128890586760380827736328584499479478539760138838797651208547585314192698969844200700664906079879387667230075815420184804455987082483243791552199142628823284664397193378488768812349126214742455672444476962756398800108342229019654906921330200186081552662743101814356543804147792456394294016324879551922149118810789254010337632917894461004525426569621801643900219929289491326172834134149459440511543199855950008903198325940240443536052956827003514901474146577933015029066766546845223093106283115209583257039612993352480619947132717086499509969414029698237945996497803097395348322018890427952394848224000910157203879266624675225858808463330834238460450180510710437332641824042837090751210595813100211676136322669315961407008071409833378753066483575229979530962483389343494166995516382177737595235125272011064774096519852447083464486847608395728293910230393972799919474012821928649556510676063006764446688154658719822553292863578200320048947592494497124262626388101688824764975226927407769117281731159694025520356113171134232114299104886674785216615467185411798735424009092828748762911179429818083778853281871119115781051244115350310313761187182227603608524580546745972949136800499491184386216061397824120092804411274363607577751041038472823837256169947125594183044521569680092212092776934237959438302995897035616074702201969558397924704680462513312288004302871133178368659657893781577505392154020979986322744251545412042548168072547165534415714416305529376251982633076006452391009730798510683079395243598860356514462075415709120400869269552721234737034933112893764644352642339493894919493441503361651198263990617887273427481124396764574252050252891170451998293903067215653091498491687497673356821363371390387332816675278661821225779383089625576267008715912662971355115067896982483119873653490372420910092339394714388385448949973408395489341155076074935329471997072282367374852519168627572812270534434156258939534722182870355258318638003061245189284855945456250556187945927660862169726355282977838737611898109759665454085908595439470177096557904767350921800097995058455164284139549347569234620556823147806641918832311473337600375235602541707779446511065857266667699090262261141194439277366167860474444744704659251114569968725613601473806047892658220315643989343725217200726149133228773104396706798132089208613040367412975424319007184424397997806669754802756056241511935032502630993206130335169874491198773846277944621077598581541189986513240636309082914872440531245285812599913083998136160255646340717361408445903097711283021584765164875059787412617742545931043379895962672493080243919586936175602569418219651806311729652647540045391668603156667581092946974411128234813620132088650709241319600274552803054941754308574532415016078597097426390197870480598075566736725919436934304869641984561873086143770319930933635375133516396760390787355261549852598507388589842331848899938360434156804140761826109512291238228647890419382461055670101577117441098562648936261654539713017872041261002301566490726839431781774617883928490713145327278985791478043597804974982773856581583556372150528664338573872627530075618798832732925952745128952592137225334273184873433978223778520661115181725052675195274088161429869259420915995509888117781716147711641950419892341180225409398618911529398307080015695653752671361676794628601398564456747855998528264399521094940164895175177046198131945486364243188035098765576302722196595157329565101441118824931848916608028822303153972306476136201327619876381911731478317064069942710811456182880138965011075763731343628341134766684194179953697392780410638904237506094129298974927749804325991297218615418497657058565244055406448436619710173330027834470996792662117543739603450480922370276269831121969561865207795455966425580860642587147659814451379819846249888825681084929596679608240990440641387198583552154293889345196612616345992760766121775637475461672820243204937604035931975365801085726576368693287953628995023793132318127183329915882350836340226103406780606215785991329202155976319761499409475410497608448553794782651395408293718748603312599953253662780395867084015010350943293459355357259195921867159518490031904722690219421163106897682445222672215500674231064468973624069009364860130839746994041168440956076101308831245140397334779135644444977757363352205685622757304028206559774928226022038564279855928237088072248502346461746352984610039513042698248978599147889149437325863421885168006466536993132674205412899455980123618468837674825558435493602877439671297509026143474661308890920648673122340440909913866946634159036369406502460119656025495071505580504333169739371414970407075576519547892452025659590818220809377327422830904449794370781257022858013542819188626663728860412763013331314766036028657823534827844084352535060933816676054811685219558325508637527744409964180607312467212515915944775671360876127057277995482451145382318515896285692503381352051029244812769674323334398097249949238664112591569800806000536737623263469066977215737753325394010959950692092738052593650235403784806530255735586342397336018775460723527396841810368481067220827025919269614626088551963769271434562735925276783860761085389369552214053226277866934897612282833266510012277956107222737210448284702695407882963734486544629296968028695531235029192652118052320031853974318128807445481457278113250723124133399077726462796760679463939285833363399260508514884991383512762359382710517280133200949393109287420290253681410728383584403973713317639646750370433382677146265838168862700463226890950303727453418811969462957602539153462742549400055259967401133085921909354346452929682266503264739089019286930942964846112764788329043140221538219593131038822590262172781912098815758871606197021766167542973013119859233690325640927948186111548370118744644034855266324819397492700777852710633417198399602783241897587937597977834897571992558556760403493452757527739796121345920282349650063328685621818740712899529030858098218347359536453254736829246449601235637776615043511435510240842951251902213186701037248764170333007844292972608732435615208923013117444982375036201548681670210880038551985107335994665483907660598090435781424411301455702433119492857444635765024047471361953985572479973831512691700258039136748356178265709581025622036501881225907840956056689032156067600924104630016256088094850197838864015773876967992592577562053318179118249059944408347486767898433194924485943798184012401824389376213829708953187576160100810321510870449615100216830105844342434049320871641326270246150192346056037357632827896337636144541796706182142329311989366420595045330950062471757256901904638559649831960523878225359990724957098734845615371973528844974102297526508390772729416920426132710607381609056352352076726260530347371792072873077401709067559486799920341301572353908724142344326169077818482359881495329908930590932160693264783172922890557786906898041966074682352346721769886412939956830263597814984823726644563554428785585436989248731497007232425902338402757182600097017339445304425288872859923327556031465151982623218760431950935917025902854326009951463769379905313440046400108848741483160508576086083595859807830936389496098094353905723918693004872696720201163389415880154089843931509676226588798776766151128305777180876944415849639497481483060543047072849421793037681868953928847106463906344700402645003754185900114072951048248644408910886096546668543765654132366178727318246190116190142168561147829862623185355137229610629640172187657043187047715763828070795470809867917338545582815776117620446298862560727891489378292245968520401929837753802788766197440203215460301670346424837067491959269078510710995917317886406289916994631620063626549129981939962540587739199411758453402968674878357050979950950550041298754570351875053874420206481268278799269979119173118352761624698811508453574643518163283699212376759344994370840115509529803627071861221601256482159826999052061561454630072997770368497526361874734479090904388905097980107226434303220890610526400105852900808552532856935462277018724808501593580698139502641862073753794756460371261429760823737209533402821957734548565567693105320058434046324548243871750177105837368295471156154608664739003170349686302034606576987522831871824538295091628230498207875684308788219522174699061383211316901110627946255135388531746066384718283078571391859012400022805385919894243148387500126182680894029115573218586093236876616682414497256358707570389275238459748874010463152004523247702735051220424088749970671502357217256660978385639157617355285571132025180062154523786293050144272977770318780614210957514457045778682823162428987552428512162536169318641128545537433743289126286424734064281484238818475452968603471258409351930154688314412054334736525909739168667766885682808100765649437891459795826097783190365147769370885301526871574974415153266744048313186063615517381604591184870935278347830802973462170521051114247243106296214392729053299048658763198919361813081108288364411204307854369441760986580562546315612030528171721826015721941272781697381572504050776491286487898184107905112322469917483681059720048471335546620153743263726176467352839825377398355842091008686738529870868974276622228674826999689307753630757113592848854714631453788300437737078952743517984166053045628029787922816442587395245246367512787531778003685120366459617909344948229345155798221621391669012456687866993485906710187783648614648727193992360594869127712453884560539295253233449496544976503629515755758081699194727477627784635437243564337208842143532012135367715883734509897925365912704338946399794870017673089933439345969730483037046676160976582383648046024374367430451861547480791094667614794200638059078559424415580429538888547070444566013923201884811743780406112004830150561114464974014144015147348078724219147974176047659798815727479983716734964597140760315909225507686154070023442426013531168199716304971096559843429054546694906337825371416386503142625429121133356428639891681546849165846377127942598841928391465793685652125896317060800165121978604398244569860513997078781520759496922127995077940787376243237239577709596811407616951251202148182112678320812172041591485958720871995641211411076014746794147800528256353727605761606746893386170023744864095198558533089579213379950444142795282112420031961994991178460959607648396604978366694094046925720200066283514629061777549920643956321017508818618982775506102640865255893396387586122650997592142070297754608703455425497018527293991851004824207984302449109203708743398513095842586136480836907271392525514743741198894676092326302757349044765501201098921335200393358776281644619997322822118084671810053554251095053925471833315552906026100552551978321593587317894849088493844241228036110844725538326578527533294955279311789862541359656341385157817465552980516499893671788027777051806811687826602517294775969323376181781771345041034028832524775309063133141463720900954536020147706657457427065876239385947798856251713277598959190215644828137212430732024456494323618201139965959733444528565916651335451150106043173066666084631921205967122938836137741095260973821117281960085423835218266488138705184721750421405451587959012894144031183029960120900781418248796871120472722315155701915883395362711581994857139352760288453857864948441122683088637987381814206358060087031359949059350798788990974384145842032753214529901113448876328695163234636026508935171472604860200766348113012115965750195417840077812469641614247382081198656980914091365851411463329218826077363064631906695297764842581249203980335280953424004400711576071899137932707175774806886743074142370380172284763128502232767931642190076068421197306078367747215036084203416949557159402636079263442227666112806374224965122437947920725522492721517560429559980911818449054551671416258176255332177477002270706028882900653840049864536026713158277571148718358430485569016620940795767268434484545801093599887435111673036608716489766275961286156652116482822520958879796238716366551755861064933026239661673705201296499375724948314860131547858069567246549841773826344538733044500947802368083238899193964655369440457038692861772009728642123487591772486548023991846431931552974470957243932747748621999445018055931083771460235821762979759654185843132289966719039134653909532655140184006548628176480484545125776641663078565048335560775709411643686759595389886650949735365112579989444950097207403392233900006915081051460690183397787534490546293971855648512360375766693425571155259500096470742860324672180139829351209611529513908105539379964080034310099167746203675498337185688624557949701807165905383203207419061705277956937028920362968424029014511312552930344316087796436235357429693548241448340201659773415843282385143655789764183214275225516286135266079644482754994664888820136153052578080877380010449263155490999793380657343327130971019523136956644993763409729926856868698441928172225302111477532814581300977359473561590424233233627782535928415036936423781719657133026441090098768460426263919501830862729001531427973397420547098695931291639317341516733349123046804083019982353335862049998966366666188797427829536702865896912669446311903270765477713683351778317446598406408713362501256576710955806423173609648256238883099623063291692663699102817033605038123215646515414236058620092682495467362741894923928783097765155022210912215345479982987001986602121375048595847173598331640074616686429203750390943907212001476786265493613253192611556716142662005602529576843923872388739279452395782913943062527242072981531617216535561465748946191657442695509873097320274465993249789283560335322828106756357866897951592671122531750962317049760423050303913944840565378535575185653170013836186669800380816682998016598521456438451736477795748698915760181330678763824256875744369994442804589803865764878287539212227096002968422797831505187563671171887806981604973149282239452883875733994989118196187655269794222218621479707910561191864813607531346716414195180509246377599223750532551971706604087229311424004214287644461556098057042097924392312983535289135570558273675173815950600214408885374164716243365925696162214405871500111321145021975980477256416474736615079717199750680173436375383024843384706423934693584853733532006486535584973229495347283764746413763741351530506295559264694657515661142891775497985450081026456256367413877394536656603693794717972239726675746053217168458288663969665283372134973218575525979911564327211412360601922413721557810793085696033827768468993846515059473977812673700077581337919135620282663707799732165674888542286082528381035360305894896995884886170408803373528220098772661280710764245001945737275618717520660053757285713560072594513489548117926250771944889792227410554913446690626673388410617562277357155669979391885372968935145960382162779324816836765685032026568774956617976676385952941945944183651534715738404631841209106477858649929090142231070519098311421744902015940574650482710808854376538768285852375029334122916112167807236550574872454080894643955963074454663566401201863285222551678557398324649460393555132966914404998537582697673224962694876714676257525089539461525511049180931511649976509740135296479057471392312165480365822110449074252370805136278843520096134221475064783316447028684250622874256525583490762281744404225480958296006718586252433310269482917762831779488170290845172751204357619180073179496244860038407964049929646974354127371167235733394542247041087876348544625026065894499406169154723969822575109124102383400869681108738989373225969061303028616374257394244467919099952671167848095506393420664725660779240792745024004656590955500180991818356187126244036547610025032574297395840263207173402296827884406672316931594263551539016942711249864554036485634804612149674664861693036855121960058157291818962324413867413227785943217962034248477292807545002121385800951374517516383702948427456063877852505350603163245239202717417302228083950567339115198864237667383113720013497713212332413756143092964451853427377367682931406610297810109764895121959237497152735737501948620398738443097247442413733603545121052267107554691680915547443948760352467004203937710053091674602949689267864215310726489961670449663487665162024142824974657807178774250105525391066676327691725036735188563772191030014590651240301364730409028207286795286581526306354413354739427663871156603838944309285289733490006463393965298221831402847797427003953343415817513385728288161829131541392478161184774304260801933325235569753858214747327682102324121059770014130729021585183329379284480963029984179751928939546924639977783016650408323975733304924591210258983578091652121856893654979365520981870233355847772879327181576065276000007509882136813933794870643243325203601181853719239629048826521916140353250094420192734417988651395898284391507008873856055494856682674566340955398840641939364974530427723613390784550059883829739073599206316230298964460156190391233333260692799042368740736549263691042377904780769257945502735349761901445258306316544486139333929647960303389432524013135813838623743498515819823267555308657965389369218601652430730444635999768390634459731894285888539625482672872777325934589037318929760859340106042792455945860753774880733180812741767581546428899671126750631254916641258866187652595243337735515461614458709581499451817799272732074777272161089758295392184580192973817055857006633723745638356552882528999228918814950536889597052894344778023221597542893843675278691598941193239435883322443271296247078393085279752957112849176243773389205663596739481661257258217364777357543467861819114552366738948889473448272049629281946532913425151339417370702540250407056439000262083396346765254218723557247109002073148324499493567922747546200199270960621198702313259320115884624457609255905505585568467410977268864969869025093074933250623932566841200279286844937476835651247706910457275450508599195620614790594056095419244691094554476642032333190939518859244033054080175762059041024354825229332046910311970798682473858885713268827684930460992210410080506075341999448206674445780216403854989522878606528839084837432278716608139167546489572360727807184074802893665735892867001193779409037598242446422435686116510133954054089726588710532523677787649070177993803593916519293748022776717974152062968511269084279008374495860856610639881941326880892453393054410685272146209625120108645915200155501774775991674203232363342286103102452410112266549662844332389494880282619178986844313297248888612999147312840585713640192273846243856797579150562423454201412345301592223251993071058364475462068514865797042397286541543973181817094919224000073008633551092902737901884444393894762832256408990235901842218964206652168856585359557512037444005272265045133995944759715700767375591257376008223811535040716848238382550666447931458488637352052447499577442952888109072933242621893441260345531715488047965640902317796319295000124632821781634363961836464072485038408759701859975647525175101089742959831255478816700782079560029798498569647596974213288144049061207005553153899377175344804728576933804217774974897480485943292476197559881648497213272383424725935538246103419043445687563985851176273635485801633139205790199882940379229265518538301076667788280976977716769756693662217176191588878251066110876111098249479859611998071222550837319804125373342045675939320294661874389195310436094705644989379421640486886480374882332361026446012021527821052056067226800714207196856302227108664998089499813206492663477643819331735556440021671377030647443807959819022333992534408364093173755009512336403531379310784879206053714968825840451949652438462721522192172086462009164019380054391998134738875542205570919401323349580645558047901991074010813604245034409906888412852006570176773845439321160660899219193226846255945747986491021606919505376814151594371383366107219831148129333801641776363521817851941349084950882479045757105883217547071227803766754228111044895743594542107339522678241780018434151664764211613934985174269744243129615769287816716063857137926122898289954571897154346442567343064256418111493397083619263957531007985650318712604157757490788259260641668518971488985695181789724028156213624438964052472248308357961738138942122786948900690498700233398604131996372044772633593323954836859161716850678247819110885741940570154102729504548992769716726369261048834463993257776771596951923461000389011111653133867314220794367972140995723144312571593795228185364906279533331328731463411617316619546147852412320680472584221075859241737756195036574776611614441942554724859016420787283277140539994635697453057268426683877916668253696906672717686320102658531401214059476079500130943165651709797592154152800292007668202864345005091702179771606165763633516622208427937292945906026109248287590350833388901554605485237963625194664498659627830897552998113846308714955743497536648246932385180933497871806146517124581702572221021567374016574227270774062689584803610144295602647622546002084577555676130202680681871280142073813318531093331866001359663199940814006051229061336713065321005203592341563492489080348965206888235890391893225498446084143422001570709541922336574925074303876729822850967705237229208728173571239319345974992019706715805645546593678343563171040445052496766331167650505057948673117064381765254096623147540985446060525493159395534255586911591487388315480789635462892257581290919017787621547867972708096705447788741704462597174051719209248556255915346446099147218354844009454245046445886505327868190760613939492905353287247695022302146223870226135958306608393329910099885969133238550911563846469901744018809629869381223382540682546615289590792375822415640987864001920358469881741381580582937165702538517714655040106430884168927717228007476639222579589361300492426444471825660421313323161960878452493195875615545763828468437428518885643875022038932491268190670152421765016899758687862689099670524468845729127946981814014720765940532631624140406333652848609418564683378671912641097522718453490372712159515135572594796965250980168180953910255640718584700848833181268863164423221582271594833483881750949121183798849850208811050074501313188333555254715935281693030399836393429131847926206466177503953576618746478716472815253648048598194288955709159319121434959702842398141747008771934701660074987343813633337905633419995471208572935117479974766880564298365045571628792356318902772138020201469942144587585583460571630978667598084926343313863151231142929982923734838446245899136814985107329599694181049333815566048155395932953900754191194697153783445424885280189788209284377968915984466787294634473470748918652323978970995386451956341604937803750968569429467306700388465929929242981301445335067087775758623652500234348044370999707867327641475132770281398531709544945636412098637334269619135124895266829502723499643748935301643654259431897945918099151409546673322987531735512675357578695976297202677725153519568661063149573018618939238152000790534801722962354542449025665911689417499180160239691221094666402500107870387993835137640764063330647602846231112896073450485180725517649249415181038685640556726709816422579988139516076657680401813398961424530730660399914875165343692005054964058861900360443594312470275506718488670712434420980817607465785205575370883779218105809506121594704928126464537930757053604222192856877039173260552262017954304509260094786688125731059021766186450074612706141812095635225008407412749761740685733305284838405768174130674610100465562725823982279483376360767240082227234809242974846928900305033122371643456194543165515376317037807933314684744267235446471543392388447550778055119281876681821119046250527186633878671345917389693852196915985385762799033024987566587795218202476272516224734871080670971777171893958306112367491517042948714830104758450933481423082040193520041013065370637257174025217853949030203255954683916492734438573593356052454425651631866638290842510388945468874392660353482805381424591873909379852517000803240060554498206363914335734148679694404129529301880975935146593825806106228114102706677688549371324529292600252003344175860529146518838394084763433799326467762376187580507273847787220045539526306105437712964615669360668820726821079953091797528678847821213611062376315717020791812260099512463369705876135217350023018080835473436872580998222835594151052937808972263526499039389356201582004951781577708791311018384963535801178365667686544935454536786193085890600673778997936763071328948443314742605554925909759162402348178559705757631762259336071889292773185134340942889028848954329001167681248522777140892656731614503755725485467089800908496601267605805359896128087349292049791673006381382267903320790302911286687852547165161010487442261399187679114933971101598244624191178492549380791189262894911135335813220464154759418880787942945762924617727053382139005004782324572462811811020088519388961459074919091435213497388749925938237568243387143835488346141979402876216225401000888322219563571851694362353670255097097577696047871619259917000347066313464284861167476454908274289491316457439136489068859820717038286567066955260569706462526925192256610979749754157092188605260792176913570405904804693859828345034644038956081945139166842430497947383569473529168288161309923686756229466965325276155231719321168341240228338613129946175090669870631442163901392997340513371494911888873746811245185004086418673485009979570452146609705602887418211487153915243288917903962628386831433854443108659898609027648657864203988033511241541809606761015251575799604641321323398910216368934402627812272634811216146146757714833156687887041222622318149967172753539047191019228085973559473823501568619292985760382605180558698639358505570598865203013048200669890500912612452126696847953316036436752968235511173772666066027611873620247851764207494517939315066488116148046019207388553897026202991525560036566655607338971196698558767641852590192876974669589625768937967158749006765103858434470465091372219095305555991824801233964762097885969299105631025749378559516098658822043040099923024053451210801792163882688302352285822736042878948908121004546329191143193876427908892186554472024287496388927293966035411521114429954419133588773543036530808448956072729977760200074648443853248801934612838680439054944937440815667591809629608960486508706561389554748817000622648307845917742704023757762828384991144983999804300115586006523928029607589291238133895970295083269474742343006617991163324528744123253465381932345398517541478164817262098986080989239716650767662756711846043821977114281937066125512707759553761631859886685243460326698983725470191317300318094813767953370776352673424002470951718952751248225827542723671506230841362621546444015241945420501636197752284568322893690723402231576528578607922546265080713461003792188111469286282657043878478446679658299141639721674782932243288053102832412781655940224235504866141629837974906067830764069035984933344116412852377425232184975476657257964547346637276161876517364268166626133369042223036538198312036837320156879129115517431662375986240485646469055510656789416910434921835884711245038792191349764236757640454129488034809473584302612443436114949852214850173191031123368058058377495782958550350202445724980051075167957250317528778061968214377725370809793562097895810250181281834693922674310566220342106998657455918138174914890884453134991729927327244204182079299601605136433825471046965189163989356107284817525128353765123457727555624022815357592211030168728133237873583834264661740335458204364426531193817305926938457525971584396714872651136516855524490980055383197749211169413928204684776930119642814503083489718901644648525996781971482471319567917843826218646472389735250928680320624179372115233212131887994142327655571257390336426424588729637452084680810455119461610747582509584225985171015025082871187354692720796380930739377510363475353935107646954970351886063743198777891273117160803309339610121632358050317167685904411091892086518533059388035133699382242009549625481806881833604693792392465469334820200015947474042829973929486246366992983955413716845697314542761810787190413890683417191361666394495519668583599666011470245933076381651351024375158132422054045660181312296911161108097653184628981209591291267055414606317243933091703559993183949668057245786728340024439333612850702216907333890221105248832217989269746038984549904455601578905814395690899546926573439937067086033066490772639349665862524769699004391639605066949531178752060052576987981588912255631034943080494243981020478791549950846841912532789820733366071221532852904947902924162147996512200210670694268370622384961642849748574326461828188818709498609957534860371139979536367527454834595572077701461173477664454032107040950228387221038250786543340339038976422744035715709777152852825557058891369202743305569048299408577428998945868926929457876550802958552605703680334803811189943592266219016466798692409987669825710895224561950997995812130431574331480026535549650337962709247539998397983350356416545143459917387959358043941143270258241353775944417056604957027054643071693436708228289702925771935413643395480226881402653436948912168862564829004819532251078093165383877170347540897757289227302387800401077337056823744583076046725673369142188867420046842083484354519583038360476507015599621682397565577187380052294176257250613630617517820679495826834528063170260761770978573536264159134818156316434119043176663348753841343022556961868248663151718511828438158261044416782706536055310989080532254978537563636469376428119008357241246708179183487058551494988774729886918690343278923600654141580662861118950376513112824687856508776697811497377398297579941148816898347024767665767090195027937202983087019090116383071927670006739508517925665879059176057019346337025477288933879498705390714848384788627123291013137503141957608021930542804852949934722981227651458366246070501862057094507944767324627554419119616721663187548845433815817596996733991813245924491376783167094311159135107222313458071254398679577800175536190529759618554216034965278431660730962889517852194656815735401125063011638836611905313612390055735207889456120229618580337899977663632066406649050078006606440215715483005377421221768805075737781959634078671331201777471693999114896783535410819073004399217397774397237793963614059468286328900025292495769631530756050359865303867429350267674112538449176569605625414458190014168848962979843005683595538745105827530001360539694478461709894354895128939148751016155465542205881019545403304465126817261777590297764356206833187613103717350694167561679952770219546835135410092641545368992616387297226088289933204151934217877336295804366280825505749392531485742728858943172346643204996960573310250677706064499091985450380480470399543902550243297653720916441941332679130701640892181446903732854916909075115589054617016056342099315915317450023777431859323322111837747744357016173622822260810101837414569771441785640163505981291704528531552564116759657645951540779061084735944236960885915840546411304439441564256447331211969778060011360982243508580543038467052673755176382464420288634022276652601590322321337680716911616473862096309137765523937604576187667988901244077514580233067117042116549569810265603852546627152491243841994409668962983941639046175185424724724892570639672584655341662138608744279896379598090352729452867103184491256780040074681295368955550510221632897819115302563184620533110147859770246997330404010183737995278850106135741927329317126179694125829965850643011367350864089196632438212692320204937642514069615530091055813962115810812843560843636844206109879629959834064248818571452299052790535380714475666788563310427952873330546866311609668880072215488223696408947163057020792095661860162432569511964915174542912664227199310662317440651460711627061408244971178847375084871616993208278730955557699188089704984169446747708053639604724628998822789842367254367262115838558134482373050798541551621559782606212532178556885010984868107650486343238716906697581293956314187097381443431520010598668370616694266366105753609854405338211495877623136636914269628071503640864490296832414357703962564461943971294633007211422134839861140933308974728230556510642021378351281992070278274745206395862592277179587537546667899236720849006208348120993989436114085396642476507764303813376558714248786563632102608524827797080238093423252635680653779205191162365848804376731684559503677776414590356276352429812530474506184155757128358561289204091993019638916064310085803661118342083838774142962243376985631648600419838545553062379889563819069936396684883163902855970923354058069508578700560676134722344813484615437399300747124508459426138105923932164145049242217998289951586397160997141957858900654288919821733258945223300901866609909183243160344637669023148174747361684637329328143633462030570078260720467610899765882047229475781524378780162937291528348195889236878384693832009371483972851041882431849815765092007922987578059424541246566032439912000813875983806554880986252037285670548793344731181947712882675149183420770528714558867032032143983458561601084418718500498206657317204947250775252928343600340750983454887264053001812251095829864015005013145906901317887140512078837804154873778763163449115149633075130727022234459554451575544399221734381226858761062175838540583034676322603870245209930628472119667642137657862177081230929454809383386023251817430524552964306384340966575773088830834893217279969776829838965665919019486855995723542785737118244356008740244153722864560685316394776391532006031089682275821727790132358196209227769920738475566765594898083987117036467465329804306442914457867209875231524321690520588635914539293857954211577907664070429597557409015133433173695033842615925047770056432622951400157910658122335444518571397956372081485304576768424557592167540791320747874607660848358922849383745497854368766095524043220125847525135511379369811102222782251507380058001983532375101590064016789430037408084539833048273311176901974629424927695857891651927760330569697598710554576723132451306751530935146478612647367396841519583145952914093453025880719769338607510447543916743038607308008708206086232951989529213786039133023460776857825921391483390414363233792810002269804110856315027630215420114749846674600927750813357721209860500994092360344270654453031374622718255074718868450435721647985329470026106255722961330106449321995669208679499073356158020359321331468050063411171013956112109774655619723279383271997505713542666631773814701638665326564296650987031085281069670074105408815529357624533735377792566886066718867576405856174974274300418863345311222689028169019440093690289023086936458923441730566712709453559668005864633907499222065975901495223207291211999764925767687835947863033896517726829667673521846711622124388743854682802947244303128515354292953457836482994713658659735999388101604158285729388757892433514301067794151930014715070939465914151596810537082879494580535797237161140798661192734867117299387403351965677490855949186049177841257989362434111892281556710658554836935388759866483023201920622061632228379901789198514664155974463095046532932947304829888955168539872353760776526009292578334478770526715403167015797087385632740460911779925716101259364104298718598419609741532802532912049680577298574038924639099678035098189032043783888402741990458933102105814183004705746248359315967266025052432161190819357183292985570234414079478622369687331852495975259494798926095091765827687353983718954345529266742569306237673893062582886079142668300970167508277983345390989521002954859520558912899580331542716311383680134209019096889714906610417576932438106064779110044770865892094373114945192442830154118533296441661550832928965394006009878131124290273354611455403629234557074109424239988163907838217548607543271228995482620724450237988730774515436811795018223797209002894157874634816206846338689971517665034088824442995283407789483385531766727363115619760395692390334235706625995238205770241786115478682650021030307911494148270533826682661832088584508564624829211951650797493145672422875165661886336256276820563403389350700818788371517952299290599329900804738350263716479916923102754374140512358953703580183080005583002717148661591048212177956921393030360649297928227999315760643340213632593976518646076813721951729248119925251449174247450897198755392467180843263980815071424864336563857372457263460975373341316684927845744514914018038607017853451523903858591763343831495154214403806502986351527035979736881449807819073121882871263470351361150910411397713527920954698041085043208182977362355500993870291885910930533810321832506324678907192017216217015307438842691301469692810156112748189916070676813539742103899351058071852784945515064699164588520024773395677163778885278928664383026652527294312589847571994285155201848643664672273965792001490338130990562663575143645398688534419375727567538351109974738811071653868980322884482793991450304068387288955809375173240169854740176571800288085280535434239378243495801494977787019712186708380287715683987389353058915320717959111522256716709970769263320261126331559010987980760384140172098413958279365414658975454276691766903141649664894037534530344995057534425939984118273673342730525722219986385614019039109382888210514797300115838151969767658724368916744721214377245729354890010510090759396949854556936506596388809634574201954885561950369847966197069576476709823869406370238516760551978947527578809235995037808266710089378247841264982179972225666215208983684336423408925928813611331246364597885197447801127972728027221532890522189550250831631676495205555358599013386060299454726169210788436688828929719215549715097263804999270952726407126978227807896011723886975569162334217424558010920835798303458065880334613725440237154517528900064172083526561858484359943272070311290514746778491154276618148677434790661380119935900267920675679761910576835857146960018035101004041467027601378964078339635619013141459059254769897152996043051733424158367939605478901847661675956343524387618640616405285843325766631238493911691528343560032330658961551938060287946917371396589150111775875774128762346991901512705503479360675532303499319155032500020115026346049547826936440357921733634757180945122090320821319618444863272948413964919568682919625224389014269128169625328647820720146402370482206641643739620829249740224461550435713096370960609461373381004058946326999098064717068003904447346260730446184045127679169349192517255032177508981287743222688375711946467431698033911224421530157291811523084777018762333556816548529283257346927124349989368827709556092423164244838727708914696644650810224669160358644343421239964576769350971997189060931898094989963199479259973105731207286741030085059579478594271938273568090973372862176116620122744309587615908744739896791106678012927395953621700728891577034721374088657402169224434319146849907433421066306468624188083737504691846641512221366003398823077821162358058023526076557036942312105355574336853878781160450722345825366561531787760818152023706931224758995706647944075470315970948712986539276468010537877534004650875106519108664071218916358826413004713409872717409113110053472454104602419303411140896192262132723475304434186481957983696959345422420657174700549202439451434688133083814512625939066741000501993827575084005960822850683491570412115755775945309986143519660552706367209275320724807216315240438180479757470368881932017728262343967583743963241653642552683775902982283139969113285171785304092639932564339617918069100736439020660772640445212577616272613070847529410448798948431587007023762306166119400201590622435684870936205471612866894869584786029060813461349404199044135224786264347854822086977000251420564256588990945037011804853973989857981547543978811150389468023812406745089948156412705077607567691623316037433202540200020130003565197060944419923068953078495816187862150545900001283015426915018574059293578802509358364062843501950823326111552397641156873594055825799967349341236620800055790929998754772533955624964724996044356096100190505564567042324435800058662465514898092472445937792341106170549641994655427254645623051552123382647447938151090220308502455860707425961940784266708224307179047923222923452237321315029990648101778904753689136722330147776027665256336535263363475301318386463159879778572238544750258554968663002622892598684261263583132677635869240687304681582098288376210184064300955706970951102255510355317585063088163749501677344167595977631892048810538604515462210941897371130871331071082783757463355835441303965916112059299885480287571874662920626353955247692558669687524541192480128340708020185840046140386297134840952060378401224236353925024921292414195874143383973772189179566926843654962563389823358551424840075649712414331583646869978275096406247039918972970391492943027219584996952345330007598272262559100089271377673589088070084170861482277535938646700062415305663180748104375905467258779944514214911307241903944448484093693756385686458600057251716230437930265200631204545715461702075885298152763206182342972754513141005474068333847967696221324471927740517734519839421911814302675628764180445223140351522090541198758491750113769870787248832117387729312224276785790730495439333688280538204833843018274445162925824396040429591610006838545044587915701223809321611961975415781087823711263553057589605741242568182548361262981544010560098297141307421440334135988343250694642302633191695030650070199143363181001600196097562131240923410296704781550787925880105119838871503252885789631831761574638250325563901734064487890228097987872711245825948120212516724014372488764312973153362779526865825675050950852197647035984344112145903274246503392880626336812808656665778524450994364530153295102986379017304653115496116486479552483044633114420305976642122834999293767560245082001241584997462197675857348584214160513219204374909657767187429750327962519138314651259409063267051176170290949123659699249169932656761188380122161722495766085858343886583610832541433662196783772409649292318720118994516677149290653266558202369559108990920799179100285122329299034246498766243442057750307831248730681970886001679487547110114683057137892528695333259676789936607846460248744623489008409557881673745425590671688776838553873225791226015788378557184511667336868704638047814488956730698783467804149758869587592014743903966753544493326102104801268196677427232983109248810546501982341657896598920408819975451827082042229548433316004901791951531157160113388587841855574648061679939183286633781351055313700478144003282668756979270133958092343950307849139820275482936148270597810878747656071470418085152828906902290511972152320248480849782557994586969527348141700983653455169341205891708148313521401632514951734446220265504158007368652011435525765820226685293241143070922449950851827550545154012283112075359640469510505989801743771595233021490179345205867593190238297708841489598432177934353836828583740952958942372189260342642524658341333562310851787089234410304324180809564239797742156940898220324183951312530311531016835241221208341796791381856901975476868180837687882494827359995972791540578959862357241851554830965389802904651096937771383252719521517549313837743102991965058159694444650104191998193633290805635506542734191221759805165586884261379063121271481777911842134280441045186075879126221673217850748066660591485658723281901505706910443749394012100997868867503651078564171536000970405419341112026706321453572965486424584660467726154279858631064731257218404156553512437396333892638018735672580837143024033012401925988561391672640575841337488637742329696898087993650187793944995506145209053222259767561841094640324057593336542434431579698067797835453422698082180276235214738765797967757586709089731248045778807421868904502304097947405239158305837760975086042395437738046152321843128164058965045938078032086801153583986480698254336432205626196940178996251270609043015383238643794112958797629095500433502896778656775815710797621250263314292086692605046739472730095948850893760345922390113717406410239239116854778407344634429990497781391521029666713356140868684214627904531643917904232463951801720733030399337210341073199937401314988961284712050057128364378060098351926996802186925769636804502140913982015727732724895782324083255124359193289408842233350522623443671797676349095444847564737846289265040813429254942888918229051631986989015667570166923625263648175644996391212773708053527437847967524779399139021939516639372385896464710191942460746522675254120125540978257340717425158489310280355672672358177030263393142118040717513805400537451105931651387916604743077905390069520480448815964856239912933577237085779105493739567593256850269151110144834703347390408293170956804476740184749819411544228286176583323596194640828554976269498510517117973500465673827520427113638845786571660877664561145284874251831290318025226000534835950434200220485642469015080001296240363324360804548624697537346871477189669947065793558760895645064339920941531683502165069604172225680700036577316415575710846028535204379037768247841242053745833210024552672713986415520044670095319830323191566549337095481770241092383530520020679408635095415120765971559486915875630264702972499538860761029536957556174687549967473741894311041211757873333565567034897793442271205270841701959906585761402690897864095360034327370762976743056246121575653724579137583104130214723841300216566120790147955330118121717669554031010769921157993568257835044566900704165347673188412098961849790587228342369374043279176882400444692742206347057952629863585453947772521602669840448643889606825084583120348524478572489617014741464838164713566785149791012957061008105540486942410344163704341963469765835950876300821835605861662415841154392735341472768420630427384043702540362806612246004482236898717060857630564494008876937081967169202801579945427349002135797771530740206139879232212341413084310067924776055154266820802089565805079872749941879384761988090083844069376499013814458147304286290635110927384433483091207344342560603945004516440180361894694259127801075405342411782504505286966049025239398446254089400705332767249390167293779837115078919147469121502777973155757311968743916705669247376603494290929091967232350558551835307326715514587943568608237683551215288647555426253760980172763482304396089312105918526842995946003382303252591933361929615434226714952085884654171756369294781082245097313577543106547540018059765094157785123264102768075112699720470718597222008301395720691445224619325227764355777478661305975662170027645987342421094047817102291176458952314354960916265324847904624363850883256565509260003701805030397596259706707575786628081324246694857640938494903040061755093221663986660909958841442073396438457694490082867738254399083930473045135729256228548770668719688516791231438264186992157927305583282761275092768761715546805654791941709628974892415661556972142364121248184340461040562152255836472891968081478742736399233039990825094668997252968606212543334279017601874778058649233881913634360383508661011449825430295804244517325315319113791205482045760145867690771151128591146327188090511777976748631106738136426524175908544724528098727536859950552738672234028601281774142132522778496789259905043039429507846657571924358803872742178704777899934570334071277143021750831808894155721490537899865008556756088967775390745442435545186953893551002749925401985381232777155810785294771272308884860929056298310312037226066228027274551580511004228748369532522900122841065440353487766663445804515339138410598578670188595075317901622204194658613889813520509357345102873035157735374169137485965479367908133406933388416062744238687333334619625747538472195459342381520874872964193529737333073095476403228357250290485441500218021504906234650968195143994347265246950299678448117748567095993718936275345299611435737121786655021382764244436637909031145328295277704109865724721467186730824324531392941191204120548997467449724226907291277825393635224167830876149296699724396080444238652794120914946317229102441437685124974950576936397159097187374782710299119587767580741798492992397976036910804893382492022235728461847956733048811392079334735912580546056267102169468036399950842798678783945127812525952001780614186152786920319281406224707108927718400599421851358189549969824633842936805855979290023094880237799271508695587608007521700654948248160375536411072134752318396798101494715564950429039958819670855851565281302368374321096558442910052360252583886190580852299411393042170532554727176890694241761704997138162369097304150740528461873843251884504910063004996456774240090130740138169607315671867725397201212368395926944044918139103600849662329047238891315982136210620659351763687846095912809656929411598708386847524372366930682100351329536755506622323184531239943138493983640278123578704831981401637239771024038218486739481026685018643866829126573747994545656675099296682411815091496517435350702144595307484948131626332376335510518752696823583474946059979692422397348548330181247410619390708655782346337150253200769488689031456169457343016918893095159704475544215203320622931745027289477930357300653124775945822532893486087367913905545845193399340614595138947468085159280006865000398563156837989183104577896187982924121064009089619557310346857164705900296428267402420844813216319036717836409546761975421579010275791467875391074555102198026492679002371694593443447218692842045623954733685170407932261635769938721951285888780339728795893694851746802548629900843622891820572825745511565681022006367947170158142816725652823835950226232340198456710333257731884221172879205384274178122095998131049508115810455073109486073562410665599136799631656707354980684705667265514261947042660502334955692222979686632003801128540411421946917889559479523868959410282122706215328302473444079279371570699829941339733778762830717373127318118928809236194560424754068168370614712188013434072522303860047860611641192640518881349627944119381444420304074195978664326323302529750748149048837552297485645202337349130760790816737477258127726024755962826538058282723594720748508894092546939064817939541310956349257997367473916832828990623871478704300450736022272331221400346084034689259657559585961880554606245912053806286560881616367595074096405219062304346992126533890838628466852081278235218985813819940139711149455765742460987244234402656705148607871337953011974008540842755115518570926735603964412830823233238441380978019951398544980505442316350812100834914584076283003858465746100172584657788327516337448948361564167576741667365169013423843181507527533787400399474680572011466769185071833700319165682282258670440938288401241625099393257087627779374961723634872522235198297582791147032200095744039826729109566781151877134848290045026287653574452415844384278511560910920705924835011571708099242365143290484666017826506492970623026269954591746603928174744265430813460045646854269721884750645002202241588770825698565692299259443123011049402361274571977623006967043859210913819258361870404039631115790199202987850930502908437444073323476039863059860322538166695670201024647570357419902446712100704795541529660150307881967297598841399272016079296424419839718769309513287458367016874326918516752952313425810094046018552310827322935700468752261151698634894929220022609316037830908575716546885452259650961405004011935151022439784485633114068070805375899965642387591065118993477132957128926722680791071227922901511064551548464758860497868530234191881444717185939065907891937475362318582538933562548286796927341447932030526555335718971376316808735391190441951215655988074629377008437308108812123116749474602524407168371341297754089849558138509357063245770601157660289485943185126610586375574485660087954053456842664832228080104835491914166915879687896833709269952855352580038875650397093850501409413165698056806675090305586972858403011371787247801452517775873757165884809336549016572264589445185883308071346225399973060885443529854820472787818287375460843722550362550055354750899181634327563219148653399473993588383282936400827408396481003725313290123111346973443358632046075312307632788141574699976593154443948682976104803960997444589276009353958699203529819062642272657142366189037156603061222360349570516943702132475202645440981589529025087721654941037063481575148532815122910402656844640819784898539825400305801547993827104551510033176340100767172983252245359844559760113730018738764842181824001058856167035741014202421342918128066714959252727578706286770127599759415558513303358410840974443132376242045309526932645290226474509034438647739884634179184141741640254937070921384675002947988428793222183599169951160109986218585223627157331977488142254256987538855429765770909339862835981643958354281033790604673947099363165488665629611698635442649830247333862623308597789807940157676478526806162754288182662373915624148331948083268802357616399280433220387679970890379356902238124414332149548871570851138582549875662614633997924634958704935574877434201759730711995331767224424012345448697440205221636243477196006572751735540222490308280059692523255630333580303063432982505544099486875157047897561207648545651277038627550468635658534026043868542972760556229403895869660252607501518395160537630957789341744193369121434311235530568514221211866373125318676950684918712874290090070449846687299491159975429251406992380608038294005339282464364596840627472960937543959018200923135980502650629370206228748365883086378394473846482225796081029459200017501239805026600215142372408059090395133061992768717196302107791791188315086394343184116156052965842029597157493611952170304654832044809331652006096759916443645040002041940706989673124081192749993374892153171163683942377457065634769943670192625075248210002717335616943253636392594534413545035821024983690980226769989509697983478641472900413264765698179410276994185255054304122194491333161151133807628254775856475540029852513313119405255331853566474091917581616977952004297566305137686155378579717176021804837529330596520794415573692049513324256907071245164082627614572748282684186757167637461866075029816083890548763674792967348238095131296526092661924523177002944129684378478672642261110328472783055206620834600185947948753824629717844771621105532986636575104168440847072080255034621617812149024168529633328309091046968265715036589572922578037779033304502609607340077703725109215427853473279686017879649994008490865361775617688323235451673970820764331262726039788899367247939599660592187593799848354405601473992276886213796892456256630972451216599423374541359920902115373770605109557944718506960038399892740585712316214154907043123031564713777929345314191475347709913334381109219287153007804365391382822393950656116524029124904262111360806600151417787680663476849714444333128923197930645726618017618964985680853548745439280238600301496977819432307804818512688958517043452930801725581586966848300532131628745804324258574233103555591478307727600089879917127575670246648229489607235079448280477542021306897204437214375310635331550016101672030895502010831940209695362998784690192847922182853469458102454505015495281616567192253979649625948829084270902880908301309497042768779142309061894868276092580683912615764440558585899175566643063496947321466188167033643723801215253296209854373804091727178575079425467545605242265988797669401509150872059981736335551810269857230839774789576069243967504779438423866249280651404147695627194487408470355551432700218548338549945164433155488809412814891919260320538985714757881825922466878223057635006217973338382165099196702325277944654617134077705648449399330329014667720465703062792750348495262560552954227889825807056892145365312464664596595651589674689834332472875045518269327247870397359282166003319290937642514189801776799956802221248960690865309314260800503478696984956559316823502823089868671713681275670067424127142913056312868944988754594826004476815275033842207335313459270232102590014915376051133131210372721901266467721483212079372129009698361052322656288283125001848792610984514914909155972153995727750128221265969844914232355832367909388207128346736026199767958796113989399041664888814023380469156764428461083233035763857936258248068646019063709190872353876111483318963259345194638171208528689902564462448267306286958307307742688763027888394457469403739367799543596954603740276874132101076977982161162546107009464814140864007614981504021250437244099493196788424218109516772355912206768562075511456955008020233643514107194787891419230776544716951812949188100065095798469636824635610907528767266711639777635516171769563674982486393948768141241737842055287176585431514357574777399345548600011279539755663790259848219554991196283795305143135449143042797476384283088029922699542372715757849758765163810742489624056459194669830564145382368462764538372689268176949030619188869515579616035054828769874986786657247437622644050302288355530916732798956203229560153611892877101515446441633607420660775740673143724205394760353891136401700571408271514154037197795116777372274420838605121410029248598641988187031468335763934281744624521826014076149185091833821170525099656378196056127620394258575657214395634416695102664301335536796315605089643522831857296168084786406615200391219604657004235134051245463342044608210347331628554104581594414880007241457754992193091378507857319059918790000289416649810135769393093455733109329041679252598730875925004206898144153391227575467746606965898487603139239620850178740363484872626740147548487159299130708573134807311543311068223034451131438780186054182133131387386194557452358182782426763501843255196175145275982088572734862792347246227073841765111510238056119722586930464678316708493007334935550164444825589732559277885966731869554141136109197932765442195199407018996696489487446070332505055007286462824332802298999959044454425653645274691992221347763220511935163542432019228128780419248677713078076908432190711984379668132014905619664076795779597920571901555899364502518184562965732250859976734067363227008611650177414354842714881575466461949247255444799800066144476655336977544052352467191058501724067870025253850177672416242943532901719557468869516538426548075600172773031992178181246410529208313435630589110496782673373373894292148254773158273407809613803782611433013741386313887851994465488722755145117225934347490072115360493676500062578543196351906353096803945960975295801148963164160982776293306138507226437451270873361076100345121298997205751946506611086433876515047201751069151271899496270152633594098756185869292625497379259912334950900445505876092676331915515253411980088580625875390123977481662527427981739619092555211673717319732599442068030016493133816850164595760737419731735182294473803203289948702863015752766398196618884144192622252299196733884592321273842852099924189001099685184301091656921084880283165964155876882188275903295672219486836183272419259511657393738922834965451041497927494176651617167643806441131839926870382072038401099362598550213708616856879815726949321607330385454260301839512251160736544645452253062347825420844079153977553604619982381578187190310828196179839854917312230105844031657596792570928991128877751972940781662499632806059775387056667899744701457487688127717047831607418472710480557964417323077738132613845235414877308562502422400533071294625900227472608501477386987998691299836011092924338037835612171618627356314807994696644673490593553303779117767009380605560734085602274450880649898806526565737922795377876267813142049692152814974240276045534418374096846963650646190671892125693713314790715446037588223595026094890762545538582205497258327607310813264644629135802785248078816558955711081125210539919862370961362273556600282802006121132535524246440717142625859454003010866724974735805649870225692881309793870302976842555177877625412147221097520853657885371892872812369489869013762457581524179474416908609899599807315517515416628853585945193265974368304134405772524044963630120728355726027374207438457921411423459950133904598984475523344033253072674986527494193230960389931948860928530170089935072879201468083501924720575034323584796003624478460332635544702609107956526819299530707911133226737874733294158994443599320177920348940953336877842816392711171277318219050681964419672165617938215004271746350493762935375243354276985977352629609706175737021235020698680191103042515508515998941441815035069509810001839295824542201729579807789184267076696527414590468743855495398871293890937802689152062271282527090779475143789858194737826596656782747570384670571531032070707673811863368635711746099857064343919875481222015264512294859796659357096870167703747295682444913783396192593703488750507158269523358751906228531051673466872870610257894220016244359700982753490695836178563493156573367936232008657598504808442620534171775690814976347692034646649387824655438267285070921665408375737652399797913323769818752452052104100942780403046443254298423190133220997261443522973664076819603143648717096726018804054152283078838419591384953137758617371641906363617239454518100497062919272887176885623899051227940770604934486203230389779059003765101051967630625204000161748121007700214085900404630597165641161856394412115823302466965885462368322315701730634467393367570208730303757925816341059843762504296279382181416711384856596165572422366551850737800322275756482891541184011105424065611960426588203860526563248870358400492529056690589765424811231090812004447188214912439149926048989005916766900350857400543971826655644251244572519162028071789775843817444805299738196184675812707603874038878449685021335145471869958701841807608004368779136926751844987335450556795217345230639306800780707099577865295258993711454714731513964814507240287845058847306491070278422210552415557796567184726488108993898152205555948891488774636088622567018389208557884090079999537151576881007828349524754709223143633014545284394028821733453412202464542535345475733382439613391338552511392094068826772005230863233514206742848146275739157994921319152342344327540933106399838715211546221888911646312756371855076519386001119304287902243592982957289551647040261832770414621219189788353896808025497039967252827675059184354876361896985569439447060573354250785275072444435575567754486962310535523992412302316159006912352607781718018827138068049785936396494928959528807996641261764853039736276910916766255383401567993335640052145515218372142483955906196244143225605932367068324269192743696530986929318774402972992218271736550169653033699146854959288280736574503878674096389462261242736056310372675564284783847438378327384277990148380311716521262585609137434067577425964873336041994041496624280949421071441239746917438499697439831326533432851530957230681972490977204210459679481526125526852422671431927354671333944093125273759835078123069909813376515318761881226305910698830976477745411524701363401158199846843094171680550211516317228111227983659039778389557822039656086259907156644443558070166205182106366627549373750786571407390561147312896278633011317541864386524015656789651615029444569968462032416379037638512286418090040588557841986217616980791788190224162737273946260600700622325923391609866187070394546734798887825029743118549745858046065406352324449616283949060654547916166352361354015557449983538192747603397073759407556190159046068528338732540308500448212405086311708787807059093787224549505135653110637273448774335823775203569817179075052489487164781312232850057460422098530987827784426922968055971735756760539089515414976490525755240730725529679162297723942776886858254270201608982848164752117244230604693505795783918154710842736472623168347931473618409205203445541469739691221924467041536087891313620618024487308431607875354227767312278414146144783268996358464406270948204247771759290279154474675269360341745159502032941908334514510786704293422385343149726724460657789243650372755699543378107126407198681124576946287267992834613616410659721031349248478107596231297795418902935405769231097325747447788897731140152693353725565165632549698264676594885770208872693020321386708203547808463122315824925172203170814903057958621093331757022665089918111055989556748125848968990423920759797210943636157614791120012999959795141468835296455610793282981979654601294558653609251310534784662847214786377205035707997373017761137620328179609725109094019442159225404624288582163910871202084744242643273315290513241125303574402644636532488616153571734383860986068193919576408171884535362333267055704627620977086992155696638562080169727870326689397519293135895089454065038786369253764715661707019903676295355271452362223907700784042781010353458911813680818078777678026476322009990407007384657123633817369883285504799767642453407035039943080835171123187517524893869736057033682899461620021794168579091350844491673474371716127237005643484139650262282595086184265100183271865519708955045911469685978398553567709391688297750528102488871240244403505992352870408549681869399462258687447420848042034317156128260921503552482957694547694496649675997483551209116064330786966981171087899636037483445953468226352865291054039337593105359447012125743306961569338323537718059779898541605932820101069935514121034512068825870160236498500886010350129057396072211458158918545103280202008807317920832303622104938806633175756756699213242554552037410945592436811360904582485417411754768097869366823859725570701220944498485073196254309760001175955568335505709198050202574701461384638062508981096569985697035946875913372965883434638895728207919785438965828410804273731582439834906845681169425073819896590071705770644988908231284762297205458054259578278183391557064655856444345036710255952788158707587273729248869201299925159473969157804277991323228393547392818512068325025606570885351166266396339240622278356764452547237065995275264633338986256645790487690999933998655630414526384121539201878162520721194789450928331190222312892198322429407364685300386467580975524068659834877707919493784637000925681402830795679700622651123087262344782576312720492515977188107006880993808433948575745771009951776551341453093694458744957507936384712415031159955965300933660411091097957837362135206211253936604320134736211513705103506980859558238008898708255612901379849532519550213941105983044142793227578477325771581788224704746416228871745233008670834152485909500930293411901606934575884318149568540883163592351933548254806265802874220825716159435563600552970181874629553003530660468506596091228578435242140988786141992616158281960366313754775578801626530952178848237853049006442937361196567997465538070680743276966243487777919591714762833079003171850563225141426325631852569280463775226171450029526895122526802345046079228875067277116046944903976095534183496037605497520990949517213139724773375864954696322867671426016118464803531899625108236480763438715016821990099675533690850108043013603385601232613569925246559193209825578443329723786472860019072448795329976044479394669537230249812737695292532266175754298657221895286952758853100616256981711965854011885778126852134217370928760840001351715786500840296041996045082111538455736916484110127213646418165187089863273208191038280106303474589902492640497462501879676128018965484073772409802924761722598257599733137318731048849893761849081250079342651693182293733420428939762230974613539698860184020246669954146766498113660580190808433092426206350801557495659008938594054368963908957380687762526900530700894975579895910452712116338330157518394164009404656334834916009457675880032570485397378043206381237245199357842285097495389382926670261237919092602929049761168567682219171181516586963226617415855039041410853775845244355810399696983971044219043735446919473270838371223497744780278529683122183335224520528657453362069291904607506903434685250903700994810536820450249858086110968443635102056392815658251989743607616789641788790490125142752664917424045464049450093257090626821328798062677031422862242140290158663868115467314393646384083001873337251461346284813087942589753500459817583249816490245440401261581465623399447633013588388813657755799395216027479224945818727083873962403654365703805319225866432827517862437916512006153618154513052424298083557516797494134994068342807250462064866359302378443524892811801985926013612038608213755035864446216457602050858275211178578716481175022614499988710576854684638519306239434376250278100337342029972831721165433032043062409177323419973179982355397740604551328499554341902979524072136443100556160362628128678558981621384719524158265696570583607213662438886637549825408204276214600364786083328424028041467626722261117434878692335668977033587038603654000034496065216393458701896861252466497720623213445215264771001024016696677615801085163641850572195046440739636628148365524102152768104353766907432902975389438516009857187976522334710923027816950177794114444335186273258270049674896289266174836890786332125040462784421094711581906644490208843272164335207710136881297979384721288832790718852870735224936431440659140385095940853616991909963928017483879278766108232325522572361680068191398975409187068808539403385198175615537510055294912680142217781099919713547307463458962048883546879398193969449114332241248195798303021893581188781536296804774241769169341232414745514074380486093055673323855093472692469941081379341865324491603812203971154639087846190126850944693670817756951630659847118456553520999307924108069326096920193381758719341878501092437627490588623971592896687215577611605451617349246823083621465697286919490343815675442374999631671619036063045329510563306320308248074293728129016382275596634015175396804655136924149744523928510717866407631005438054309556147473551598615760339302510866526805216426780271722355601022416318844709792818240418589837312879360595988247413824397703319747162495503688096022472780016203328395653271272858038592464481142515765723631287078280195601190219722759796591396287039053124414704262178334978458352419930650462808624103464646548491240208993353727846338424454992901241385176436742027406889350970483369224468077365080170090095554172597082047596621660859722297905726219735938632697879653717668318108348659783663092891735880136182919477759055771802099212600480024420737329054145079214767287930361165854133010180546379060865634546000886381408872837131541204661576562696589575042869665084757142680868136308531758845884067093827475403646155922238907709335326783428858063452604507157068609827289145538849421998771696626217429914096539493485362622830233926518285628239002633336558419527869416095188989559678357846816299192146280568588433818915637875703500608498859573154009492384092371244322366023455926275799072508505505853114002340076292113343278292859342492575025679420823083343909269495286348573570007441379094867859690032104472316577586319995847158638462022404852707341883386970236014015841395906076540657553011708585157963799509273352247403171230808019083232648783212634020384102761893441867331384657019116383509771188415280241230392750362340796104923743131158535530916815572526726540833427853684289207894997460287534105058385870467006796611467724221347988502971274263254980264179884566887333091721809599370733253312404093080958726652912637718942743635404633850044547618833205847102050405453363481301862192766801568341685274364519515296569921182372793564063799140145942808438521360687701411587798500542122626586178949895376580048832909484962309901892732458835466899513786935331700291446060307596470704835387169024672804611207094092512245462848154619310115625812162920727298652904491765131753824533667683996728826687104384966633282502477388279281791045085766942153699409486592001322162573661839526292438104163819588296537441027329139678509595255924091136639899997898030275858468862715474625930796372034917882257727677085987534834483005999935181433914596459422433062517344707996975831118450013933051060884555330185741532639759666355632562887444026075475302517192069519180438584679496836686734030224959912939720157098210662972403322567695918442515846027314631743242424075780538740424098312986311052418537334156514803493697900712907416007094131097036265736347530695013925935162604413946635585506963781401993322998146741573715157210915083590778763043339242581329652511442548261395140581344918193397238318273388188935194073978179034963615280473750391525472033660616517813264834277692522905510732720258461609547902458082051346562161776830771577071742844759466507916257159990964156345126109577932326171063445639573624609433237549181258948502886317384503312015712965048981523546397832761376552939769801480529695644828041795151537604530343357594750500884290911717058226959741280824684458283389941979277508390733518936682723641101451119883955464907991689978182624783433735491716030900007619125597605580907030650594376459271326768907112524247400781242864137109654261420082657759911930682097036003252981049707368148091381164419330948876984280627209345037063490336687946857247725330222714427074944572054209109074798602679091598078153357801738968812480521013343785266478334792681503980568010313087780710736046223224886631411477229277329675604139360098746467552259994119688453379492672101286244771592470249680450254509356088879071480421760961772480110568178945959489501013808845352194502852095394645722823238038027892085615583180613328905255308193649197471899312568462713643448385064997220824020737674578956580298108338194796671706231146647582861477900359349235924512486982719956485597297511760643062200980016854689500436640680827926073135455780951674312754918022894983412506415985281414672865156223235916557892031383270805219536930392981466983336369833561334480379866191576046410429730900428141206270912707023212802456695628564469114319900622181739933215971613267926099634411478151076187343340330367251799277732180020670859239643718788126748157195462350048583620434283192190812002541597281418318991133124219077790290392829035256706356061863868701525301099531911649195283409576396662093872166020398451888207629089282840267640448088217932813359224060888805679580638943298130158556602039211791073078926662559686458701894643439764426969127847156929268757410694076824018158882667275311691943436395634845660635602847100093445703590318750720460229526061507719242175301770318670800470658015752665436399702945648382042307954997398846365196493152218624294469489139237163680755821754470200532723629967167607835141868111111751087047646083658764563205674066213133534050290180623185666996047787262801614670549390031821939924783002889140097231942252969580740659889213278363030704744690704005943641559654356062954309567527865522713815969627682195487536195177140746195955808267106962403995062326801352561147810858868083257461356319364014183068909127535009018950651668861970937808866553974544866114299366341977196941921798093604791320195312707395438414576489625044337546032886020394018801287823294702792108361523238192898062781912490912277398491829626850207471856563411420205425075621371563463340037838049361647369369295533305629976372146289580490642334769990064411864963888726143521568661348406795700078093025101228891097310221120259316600534049692722701947090497057406890409161971907640757176010137888154451114976206824632691031209424842648998222633633007747388499555808372127662550624367788990157578425150506613945484341363159756307210134325971729538510919002913986862973039324925126570482977590731202195649775599198822101379635575431076849325779332509590128049098959821116667201241790916696822988930503684460968507687517680783743847149755993808861952439517818632745454509023100724632919747920328431371588258650128342592032064558286549981832828492605255255899200504230165381319069864982955156668371867490700944482908390869526835970893244442070772420517973809237202761126263142039233442084513736728671200252335698366252511006015404636483441471023558893356803642095538943223977105092414215593794328780375911607576442993399141268175220362576108347025212128573668366054395574052629958745734918683286810657957190317336330797950162873311392111162410655614751753494909119402093114889965385599654961789713625844594216272194424858305025941637323118418514808738888075515269417051378606903087933285189220867544938352861107807918882442325610044344661832379806082051108228764869188568851905263078024435135053848208954839297054364007541185271799329131014152782846225658071243850213142635864392233991867241324876172667365555727500124233334652768863871646019538331688943916084563283007390183216141684815594804231196963026516943575817291257576091123994061207336561150114311215322602483389846691523344608456942337636898630726954339612657361805061261304513630174603907793073137812083624146198836406651753647540487695426105102549602343655931269704284034587624193356177602989808284327036355936144431770720021749637051364536526351870059929214184053864119090791647763349976938389322979036802810368213092927782493179428092426209552000225677199693872117984605468287628630130289522837811467887807511655798254111884360720271709378933862711697944515075165952777901018387275520621743391502783676125782844859637512248779206752476511377597517678237911528396136945793551540811889203073002245002617488697979545564475893306429074237924975942658881436264959884860921865429666936681969610798895386183489173133252695111107853461861400611989275318772944065104050400076521113298481280272620964474048728241538798981256503608270672184346670107610914935359782686274497024384296058001059017001716412516424118685202722834081050779420410410991342353221853741293343944530963720566012263371368295758882655064083222897183459182280784274410070481868814391295220975314873104741295134551511177559940107859656456540086493072533334866269676081268882954105233809607310283792661758529772190785670648468180021053485923735403106272218570241522379596815260146723446652882450432924815138032963159513728111734899757370461865147350539981483907595351312513370234434128656410687708344050700748339728140520319177305957901418578706146348862207697947740940201813216897967828931689528991693586064880144609346342122036294648959151119682070620432504868963971457174233423176105561004064906203833788093810694092894534444241291528414778415498215810385217596455707319356204206780639362025709233691317566014113907818584783788847195732540999712534658060301182262389328149530131144815098390933785044461506459718490760481348973745568439294156187033226617345901512001044768701642661900306825620327499903854215553783533955915028223474656697660872704404471236704010087172280138194571969549872801780061153563131098569759039466808850288869407263997488070888325245518039528547918388014213257695900386883791046380010389020301621635232778898272372101620893848995378728790077365056652995471476102757331512295908116046947963281108086725266130112871889353098730526123908857219265157915557190631628178455525100682526422825522911151686817392511057255766530177170225460829417767754286786488432647738203039300724739899194651409937101677766717332395601538441326589829155139988755386986198194252028400387602602518018444586537922895591477219293624637167399517695172510007775127715963462278829567174584946586832520557755480403019520635752603118558198164619360125285289894093071671767338115138503178695007359860226269219601036201287023131777389132014505568955040327871927216004668919443128640574467509184338889457218850751504542528071116669944633200868104834508171678435945996747958079271139858532749973714964620723290873569204133092707754493708998665725060919644433607392487143181642196750566286182824087006733025580046125936488560154394903524982645196826193217032805788604517652294029937260602240275072350540173420377390652409767365606469572870031622665789695503469086616692463699621608783367374376586742124159447475144104119737442959799260824769775573704069362170136912149290231977387521323557644117252942302937613402617322141513133981039457315029636437671590395385963123471781019051328207799623852940983093470751050429846086492377065443131475305918955696936268139447607238566875988107566438297838944055162907666231079171836652743329612370387784146887074099417068156409839561756704880981803135246846820837992115766419093882301109827623660033394456653159014974598010437148942441568562200752351315094344836387534925193393579039201322428815293099102712607161635753017409443087991595446856818658849550426389895375289239471024417174818300163528149528078015335690090472210443325640525397499875626780061932841416015347240240093952112324104630202007840755366136999693629468250926355130970886905558992149994878952269828243604638820863618288794624380832664327869250323714466685006693058950885650276566937880658385254546959536401829386859372554303205029686669210282979830698917037444953788277909698274947959377658904047933530607138639480956745416149476777145599148040477966498610793441139416447323228650908091386608359826580600409075678653150987269099727273914579182121226702685746139809573461888524503387446763361691899099665771919122723610342695728639232348314475739376564935302124960562372964332757517129842651922994574681801031253457403741029032494073331143981357593202833765950791760511164878489451306384201523437164599984795045083079431407979505012722698050084831210247862304955446016535510558012532494491131457452432619402416431458951050947186376987886986921162959409301875850159639911010922380737066805389465069357736534395034501452209129778775000567179393494750820023252900795079215240243937129567687119783359844097197688382078190222202573197992020683323463896625477186749990153123662219487765661441451411181013384763916929682112992192394715640689915345901371119860200885860450398217937474598482178113799467271003252984047376955936186246160425328122896292880128351075572436594153147360831941967798501165960976047908805641335250041745512170513014252778252596241485881741557983764087079448899979360474493060532519626645574030855623406998985644808976017918135414348384107299179655004404454584204630964821328630931562318951381838861584958649209389198796761004071667962789049620153774902433205911938190177100668101279858385898880287508939252501213266851577648262302831060911244369136056571041210918976024917724089070433991775084337764318881513755489067167448124792113522445628175804236941898877294085210941752896605471900212787652347827907062879204196667545606043678259476139420270152189538340303125468462479633221359140207810051573263786138551173219194249962532622493723070207058395444129257232878951122267203222761923568394596669994204404450762118584996144263319840463418605986515523401565281176872072481796637951785105972469591881516244634278693300271239637722380126185538025525327783468583229317759906691265376084384390152945918143479978855384522881884899250385324284311798396308461190858553918114475878013613638053617290981540294362595520070390843933171562036446125292937430144175137841314979667971127860831577904629802199565813641785537697832267798118762064722901176580644828267064120151149561000480337303143342179376007105415337279048654283177457558091013694044130542889475717755580747962960598915997031181922089049084234453239121286487722758487906196948984782528415466559458097392147202118156059193570559560510568340140654058708605697914802354021366767001415922678539398550967754454625965725075535835782339069099887237527350484382910518887305334761386279068711690392859757420390505008725702321475409946651367186683635635867562438006474962587858674916425362013871928699697404467998924533119833162471696982453878275045691867591726136833473712366036190688583973309204441441236474533737221097686368381407529909632176663690592374171070407581804186675961562509059676526305002541287909732416488262914007750981525078414343946647265184527877513935926385770494718573838487389587917468203518591506813179785981845032420470395772342694042423190079854770105420179229497672291406648685388546607712918910086170407614209971876961964538093726971973366175281625633191458599012825753161068741692336241799493636160564882261202522525387995731502580553059893805296076982493901976871093995450905021999088670464737801892338613780772036093787978831881747854809673929373322260623877493621742455844003165450015601305595626500743884725093339454222289456692644369085582649380363308850475922223773401344888753217904748209848682972688494423925575932283053747176241331140290159766646815724340895260773390162847777882243027986163123588090777795509325747514168541681235101216045062860189365219468413957593580534713315837245481430063378780241087745135401621644298983542303991568120300176298731918970712117202660822069994736496646533656273605120836701844948524902837161785173117688716907180618434818064360428396840810760233379292680953421599417668252287392309318380660415938875492718763476962872927537284739111526903832071312974030680663681532608657380510200733639056749736694329270444663500878283065713506127722326180608163332968844801627218263543016906574131982955736995813083052054073218991599309033046126572709582260083881143711247999746158545526792018761114418366113280699111428528339127967685540842434678081260291548371722861611327090102495692521620674899634402289866144825586154081197753278174034606053468283809634561716399687126658120749973887668698389512369425449536078257822908510758841482486697909450694895955716050123232018502895521779499347143644199357412171059365071006910811110616896920921856399261495860051376396472762557479498289222011587494315105045458573362356877897323240684809102611550933348401580026918463063233193306991289139898014285020446492296988689559745161149668337232097679848920053630714423031614464870103780302639470626220898544707528954638564981615131256387888991637507111588020705050835881419252966579335384034045432765639383655104226147399546495081384542822277911842933531675441876828841363193789637709306673405957161728250399254376279982256542268257064663935197727911163867088105964351074821794589952785419320326150281221442006991398799332621067946855012547172800613124275773223960909860365372765192397314153538711864876529080261294700855929079647112861889482599201311905628423502507277933089607026984522599449252437024603981943946668780459438786082395665464142714633789190631211660167618202940337091768013087201083442094774021018122103272914843615299613481241782590973082266508189725967527797065877181556852876863753983265586760197363694356740189293898441809046383408435338145800310267915552003969491823457887527111976317306121762874483012908170542250558642468193075618565191302898984629106968690438420542646928034412025676466982448285638124322795172179077745359508588810890968046618068052348545089798824786856762903066102572957348181452531693629863469193207914409485806623686849084279332524839727916379839670046831079373594199405343456334148311636057994486480548507145840919560112982726547561826679204009058794411567489663570656106365215641271981956010919080077282941247570910080244912424581857977706214168760643006349877514575554184589553173936254144799921942507598066402932598508105262309448851812952654385065707595257265745189795467478605178508134561113290290551581097999672884558863872040440183556296881842962030023579158400798293545372307309422869507402326455248719679137011766613728823614122724110942845172174912614290240708269742961278873338589083637100101380832384582100524155703436861292615277205853868870644301218500762782822231814747015178970588063548615384000057495062909662666189561002803463924059856882109004124028593737163465172810315984023901224977516328102068072845894677287632725082184872068437842604148150152794878204525962366274411980447230763091958209262446901190882780926510499417651376340964809021244362994719510446109996643314046564364229171248628191775381460012164997555409685537824256797830673327744158939493582694905852273208778726198149418952357524651768876653513290191807779880300215240302152744182638874771595563605316621153606546261973498275241519096436630474476513701262211872553527737515018844790431920359204676431468835420642362484067712102868448340753344236168888516192148923139240678575254578126747041285617711647912616357960256801198930080518293886136741915039582238828276469340637968867431467557974477410653544008081282216157627871253536769993245341764781007170831502793014283783947442358708655194810972993717559066726495415912089167546057499013213742783583690592003523273898603833701727621537171520688064009855266989292874505299420062724846470189801867590495438884473618925190486084625117953177513359918377423868157148625925696484411271889492243817615600398197519075819608440193681342003486478921846792300455677574422142188825471004753445546810840646805500383170743546393257959102205571496345896139204739730250890455778666251120307696333947710845697299673862058837838952414733070619719855121341575931114509963328120030646481568066631210963802583238170590935073205359251985151849799107301690283028988171116447219534057238124292300212926940533532703249378007931556345970340117443993146033319603388459331851814834998335192691046945769930022694146206389313108333617672473908977707786836144484206111538397223490575924854766343848241252877365018205700442201796642133294060396226026332545577535502941039138277806520307591103217342977217628415474238140515441490972850365324856593571054392585110285086805034569061748479692385379055485514283689081269343197410808012726912040759097406776970742117294568415483197205560164684090110110793162280425610026085168916796181699779270087813027472892362370933579444537199240174854022806995939802624370078403171772559441573139805267823742501534805607963613607661107624628741891355492843907599492431170288857648592314715438813664600212162000698503714150007694588752240605538853670069674224679141571243110435342948581596696860049499892199667410251538178593014891607844644364311070074582071915477024844886673274493635689924767892496140499406859894150476423323773245178825325576434950371343437048456078167125523575028935125043358833529382455462626072363563466824613467277099814345622411764644995446972265613450600281366222605828139792010693985535181746789645006861189098437504981036860757012215061813614501511337178596338425333217847720443992166357372961923539504607026702692582260435368298746314493350323132738855582645504360979919113344073048440153270530686364870567641284360758226417382965048731373681825883746357271330948418942988351656047370450643845025471300059348576446153744367404284616794413684558897978390820785982833326767324574275103985149937333237219764412458230419556287031574994215030725927213219728188037134264108033410666070507613036436815340889629337631499229165493484755580998885715458748382918952542539729169583967145010124437898787605976096264223945150245188677124739465893534878018944832212193616812246859978431132895015497916978479221630740187564075824949060077012592250284616655120536796063496667456905129476131291825942477781504452791996583560828110558446017590148073919707749896396008228399961452552415760995488098509768502350887481167760653682943594079573742843871081388787472488979955096464015763439804190843411299589108132801494231922615241016791933194323229214455823493732082577531390180151520914212830448191892615955451417305035735104661157465443266546789294147233845570037411779142546818165110552125342903897137720608718725135614913883835777270407476936241245514480074318091781271764517506618092471836981268845777778780029969854488439017531509359162700412642562340875165532597398336987539955287561206983007352264860776493953849195414606643849342805116291839037915159042428321697219983855864235350550896399744046561836029347348862612205788754434278717165190928743828553597765765976936809378128338589650282899073417645404277006447777060151743622020816857734792008806365550591082422567412797611344436930004311327434104262133003548572480727652252746827290945245989859263492792781156749423643337760522553551989063211028119185648220679992658940138773300578908879855413287444584389074916470436631338768046354206653268970316602638331972617526186139583950717660468187592985778090284101366971495524356833496359934124334921414775469401813959869346985103507067021997776360341683555414076278781580796336751942921580822734413478829811092286001685440267292834286107563886182641931654882858030866877540172425932877415484284675264733468351151922214459208066604792894290500017510981225953175039851229550163276604884069263617938141620444215490931656935081454303875671520844701256289640770986677593848784848579570494632574740172649141869663847149034107581687890757733969913414841978893368156760315298487916432307954448159577952296950765131618173519109101993882667823706427646056676598465154801899790766764261100736960830402823452231661478870273479536305682670104090276928336993309851754662595838520460357998810149036644208968088130440822655702744125431178029892590631825527290330721451770810904333936467323605449509134995231092763187424465262331981871548489055721224565444494319423003194408466566796654446396597022528484405858529978229908355758064005301696457886634247235464468490542895805744899717782805630514869085232728744272200619179015794404739926276988047185711383942919330641007421669932423057674509892084059701172591081202234784912468318402455886812114738926146617505332329050125623055645989062946195692306739126118883519201194586442985116025408148795474308567252781685370085628386886633986291205331498211753113732152964329455196055600971286415048032126418542143619658542905455388152245277779431047245762524049065943461642280306968891989654924756883247683845319028899012424802588576217176195899172217132590434218687401834591957121340191848322427791247058363077795450543044318529727678754270302018836870370326435052540950131995233337311614948090653901525819683876476132300416685440131035941232041357282073646849946927545771942358429743176820500255717642413555797613418436093206361700475780384025844298225959242432905289016320369167802541691564575381201364878044059883060666859717168856840898323649672507897374200302590035121651414348517917573815491733744009661649145999797658668323484418656037632937224780696110172169954293156433294071153221798685249702050792070370754467925702093921045265460457161232381695547926319390690919388657371362919080091393929752046011705271475849740995238769635776963614414229396606417065504789115447677543530318233944232048151795845832851868436975138978379338015982306223218892376633947603062642573595671478841041726388248951848186773003839078294753132507310361719863913444715401632479578656032651089422952279597556941266356241744836971147698995741868854146078803568129590651619861646240881874773113247311761243817496880093948027305145330142544738974222229049621094991233227287845996486982593122801582117096432785653436801698067411247932757632068074669094350889805335541717688206754525387831629979991294869972998167504983023876608703297520183897223295185102768787738361805173767299113420569850338137528088306478392944073077687042101885340904162453715683720043402316336679691100859327974310667172093628721817827802878708450837855784895902293509028660275234202650446796232236124391006152569201283085933335520893249149823685368969114487650957980999448250468836841888498962195286283688927884931962259083363202738488535310968740929858909405903958493267027207699463510809300195987635268050804235272409011076579718247469631877212420547661856174856706274522234162896522491522131840821687688959706677832292713589648120613098768024592669030169219870218929324309824012595435824572275488335895157097553713374995977214883985959676534098561536920785383863845562974004485975038623878911694088497677288533649905606742121330249023717995657978586577039867105998979879206302161833795499244110258808484692783959429607635858122743633906594648253962274138263086875206815381011319171431262954891415996905681784646958281302099342347649773438612078027271640821862000157587884740802139858544312746908007743339557865505957154674252483329432292832494903884547223747912234759756764150362934162737768545470541353210361620411271254325906635631529967970828409011874779656964647580192478881972941480480082023693114756801631566742862616081602695261515758846821905221266784301626823696167571704588198441039764816977089511517650909844526493288003181622489671514675886404208977080350798124318498076565146528452132649490024857430542284392876761362673199036388262860884628094944114423955097072598849830719805028935739625579038369994427192149696127445299540352923168982596181878104490213012692371831932972468094297701138444522600218583092388760808244052650705173616326828452264099568537771902861240656776893987356724343162548750177091327253577433034590096635740201769408987034283415703119377808245131422273847794594390873171292209007654306496401969246790140494685122118514577694917712479625427690409917815719398630560514274402759115256376722766278272524774672778989115174476779819537127905328681724059889617261991543363520472500442544261927993189201841305658916039394675154189807267753087522907926298186308900574243964556041251738308367920247636164747166519082565016825747777090638038172418955659045097262652635330897144825152359476151238476418088228437576101004113352331286618258943958034249455828197207394981677456060739867138710954858833657025188681392418296800469250236093272103229165451809600181064848270956846796275595928765261405305324651402191344002868532977495521184777409774494427533680871404439540162154952902717801054285248805978414069514366415665140612362275169218960495995733283715948826347943188768519427477191541080656984877773669031926129816464466430763158397754448318912863813437814189673772144595292865768263900741349482989199722808337213354776330110049841355193306210324634608626467528207212670660044051665806596547026666640313290412725146628542553207179505018056452521146690316004197012269145718679906034825910070111785911857333486350271476649206153425559680256358303994070624180120104484333088044637524673461642211383195402034049355329301158928950902363040184938576269314343682437598086057176083923131746607036109903063629911770817653343061977312384604086008289522161510565920229105485015077340001340133836317537747843413476689463988774710121652304215477154508699703779485131869864385235102793796095633634920373349095153959335035937279958174959874308447192663833477777117417724411369427551448012867992718576540866058504481734896024734720035075251244610234779371255742653806673671361208651473715472865888281175350016553961021209614741579026112453115313448768017046415223380864617657198770244290393976335214787283170607277322903970331291233236108504381440100479456901018950089962156992903999176310849971067480702341949979129039188384705870684326824172199517991774610902307730097674703706194135680666472823348221156052534657543796503097683156299966084616776576979096824281124041609803569288925721690252339083663322433085781390704191749729415779523420827235823833113828562429465733937926164482433850322451727086257752470739357902348645328974607913783029825300749818382193094008682382914505707508241715057123111629210807324924991589926658366190936214168291864592179436865006582039109945824736346295717812435244386719410556603412370680360421650983572114261118746476641687031837696211367610262773473924286819509600310107059625729804087651366492594653265795632766279056410351542200886856893649470868968731692102095146856597210027697326919059554233039286508492310809758037377026296601023424577285617699836755279477289945223387645421986428338671001360167640476590080990290919176325828165495918990553286005464482292741617328616453079466121554195287869592500610641984429237859003367269026648563315903415891689436693452436279799611922397817506484875026587608708879096891749416822392119032659129762330625804777075085641785361391228509889253545411714268410423905742037250520703873418962885478293036925281285810480811242699505666690438994106424697090318580886092534909166754079524494187320755292145234254146060193181081181882663041122702986941781293199269136768259432604983489288002980220341462943521551563647256637705605953938823708511927941077026457037095204198557525436466429095810507375515011995776685592761533757238720764783811970781599684757089862478482399005881175079108826976997967333975905119372588804916145896705006571338705411901845923446591449835926061760297919991803597514915563708135805170267986292357217478033212260063300935967015481021662310818262016709732300354314241218101425452350250759965928421292029767361305640846082031474790975564161635808345510673817962487957119272411708684775334565933224623884613218302876444535306038351255874906597101525971716797717289089098897078824997809518016502583345059282488753187300178994369237449215189221409812320064365286106260114139549582397851256080436315496978808201076831717896711822961487476792742984325689666817961181488426343602519870130888895614681193245171029175830890541431800462532882617366700899327846271762526567757618333865728533585889684732471781730768703183304666791883635803856258542046523331841671466381643187588737932327106050701396266917724078363112872717973670230278173857698094567674508965528798876126918451621567561429805003897510689129023515328166940296143817159333072738798439070389731356390845414009904734465969552824399622975026727002854101210104755378923574944646167247982327382976758565880207962871379894332861357356820541065087925291723079855389596439808526650425292691712522863042869766455474087687115808526103838393332613755465455935354628181034943074151767131318239379018090642181149495589701053840705317877487717615164538214239563258711579300958253018189087822588646788445656569850839733005295837247254710034957792450909174627256412129031266785264118198266779865869410557768349041923960029772868971907098699823199561717060966510149705089642524643148132484265879325272412584294867244314770522719334076766264018093738442905601163178390994793988518210401197683826772958920295739308893746314367406739642731120080618058560614848933675962974596445038424256181142357607663627668809747525003647558586536999606623907269095731999751182559830156495780120621920323774811247871720650364604379532585698235999516864951968758869479913098245109171206951172033618547965471392796181044713223414814793544690777792279802604009687323126108725111203374892349339265763334290403806972302944636672796055252922139745280118591966704115707595020691785369627143690167389679999758227712016444634944693314133307933096371015742120004509582190487958167262954367588954103210801143736214189316292690634593834930214608926176165438097536989678692474822647938058539225608854897380759513899969492859692219088653154535361666453238492938843691846680422265259288942918300333618926392010513935890425893561842390250498151661587610504477622016204520344907929483029024746780263678904554356048713360344912776381074587388463897569444125128207094597691617009842065638790867743512735271560209090256153183986052348059003916699819231836699389004965579002178467421656300457854042374756759218904603790393336441761061327061486052506924528703607500017606637733623975477315295790811328981968916943594316316155041334328371532516143229155116139415326442726323868257531731580833543105340652432522229677160981774485650454902340291769959188309219065342226124600827040752900301349536144087735006542356421732532470133252112458582357335246261789882030617656477955619255546981759665071013742634108877226979663430008551979537682007730490206077651544012282469893562521882249677791458022817281742802665711392476018215775404309023639790525799264673642601703090382470005069419632013350421902756036687582773795105435316910202791258693237755333820284401172999827722694015113079692262267428975761793732657036996615939357587625818358493477588571927755068939559071610627150058772772811311246534650680532516118960018616136393406419742865087186548785001224364602460885708290341866664396107652944384361123784797991713167469423142368744550437763770591965861694059144929270002507398572113171888418361004437598399754240740932653003027745597793423805335066826284884739164221877339271723787807842068134255837716111288382327836545507985855208529590882356560440748745549001620299770567811349822056265136623781530975399476333640307971324576471954278464272946800692480604231290417062984874264497748163580844632245577338217519728865632033439580939797073160386137917575199337743709869561798001547526417003305221360749372299642466010475810805197502896013168366729170381167023819211608222923913959295452048434426119856334989245978486416306343493212628898087241297302645058214180217800803932779791376632669039057354473957428204248712021121520148317508877189719251005554625316862981073668279051297438651384730179353072318702743357368592308155010049695223405765619047419270671717662486963631678087530541635629227712058333811303447277553612598715191255154359090545078506404159149363285316048474873065071348415018223541904321293710090063225618494323746286938330932885984805518743196150903237149189487168913718477408918575207673696327658244904119934682522994140190674815708793529599513028840168037290482727382342757065803639262479944906924981441314335876059347831915741277619731974021032904160927938919083711040091935242961878381764248984535308030429074915875075155823652948941160962808911018423549506951781269384610401106780267895941526670728105084133144714001867668254740350853036861779139960944148639143875181705613809702876732193360457954541260809236548191928764553611435162180596392060552323564308132472932482392901606446686514654085365844437019132588952535541172428747980693990342225582212654217378255888348160786963198068896931233316927069685443674784901588533570390095607868564416787669971818290949411749707628942983232732250314708131997869639821257289560654670944114527215310590724180288414944599418355533772915598391409795131725282181550242410309225710332221040001993890336217268942253098473413186272602184858657285100633312707451754479824858818772215903770669959282638492729795372689647726071738150839067247798172559565268628622750742508916027009824386572550465766991300717086842777700199003132898144958050302339345886853139638458629216295402648046253393373927361496111115036029458328948443356037912994878677441714566653186006651154303278123922703806253055594601839866711520397888560734621545556151099224176983563766730431201906841265386831972430675266493092017301208624929927947854364781449663191524757887575846012346033196442393648791726449726265408006521478487953316012125584098655446485860005356528687735824103942254038502712425179389454637767023159942051837137071029704306881561691663256542778696382484995320790690955384015165742689679746648199311664424639980026232437843321786528413265979687552140583528652152316353846803363356367560212416351428316618091654585842461305766246061114204996222741102982758373099551788192986738891818909463784995905905986716912754801626759256161432260961685660956969574494399924537428013580890716065851805008661356345918720416897924412039879854255538359528677145311758906446998136384635749422142612888123677395910880720431721199017557394921978247983380960572129332554782459596408901029456895056523361280296525079312792955021522791750540726154905550907034495790735281016628553418986128925292722204074529227282347622601460447289228946752093017838599010688770254407115228096762842236186334791946362815619938755885145053615742038656119413034602274830912747081973433528037322694578659476658861326735777255442371746508492152268931554234255821508295685246082884853211264296384815161157278122154620614387124466243474229863986628769598737921594982577994786198054223540849175223053465300375669134204346073999009826418654656846499196155498291894039264176781924978098790036355055586609396303687603050295684934009101389658526468108839045422959663313367193476503279734825690853707181940604245294554232126740190195715962100977238469024865334765912075981324891529933343582389978046122160284070052828674575242686066040037974738756159013243928571737470203806268468447085476379914619975794746671716427949136070348809762300014756126565022648278291371331673359021866965972222677372653579419412367277244204235036569568195834119894632138854255907093590995914390280504712205150349850131224851754595505831183323873902948809175405634832145965271292577210230235816438622207449348442070600726561984288479375354927195600726850112493799988874483109844690836371765013305174109584652559282285736339376675936850649825353518598952332711884705012564186686532917661233195827619392559334666290549778282785937525790169364805244040610419458896123754048862694455468275671694723046308360259100039262285117758447319989484084713132526813639806632561575482940002907417181637378900538044678819413169082294136943173915636001939351586902819385148234137602942914533959794661920037642447101782726124023452585113255315458091059425907142574810973836344244257897218749832352009586885427903188576315308831372107996403378597097022798763399388406046719658467313919573534666656962243267156403391853159914092613787473470740950700103913027765549641534595758399583929921735866419513198698813102782244390870652626406717236208578559234298505709408065009169185849050409118611572491837402749415885172735105207510118765311317499767946072070942319024701601265713601504026294006138812376220282797272570247313622436990442679526582240494300181397774794700297588900271340171619384228449257794996384346258669812769173241464439942304917267557490008284272969782273220387275067770331271300567267494846180302876534616938703580714556932380987714053571765674261517199125791305445521374070907609719549238225881586361815850579776812774489813310334751517079669411392094166253031867898159962532230115251315800297974863762564875523916328845168391545239459646026116511782107879590611290242840694439553405895989459425102833938295006659660072902751955164077778135574637396466994198790070084858011300505409611173595309276588414587306398898696781978836077228163062939266799871670294916828942668284737265686153872771041264011986339155764562149527047247960474783738094556947720616066523130108413540117248926864580441562065843778687483962494063153563912971580194872312081799045079007024755569218130877379504892024227810248859256523570476198967078285557680903692663371092209176030396107889953543256611873956128364342331843740665661588274043908889484141766761416644609488789190777978903068524556817296705019862153871651024835230127674156830015344715790729482364768302039364487557413346029898421179806616074712231278218479287152972657534791153784697888651886316085353578389410387105876349729401747119968086035699363594221437642299210345710018989795026732624393483421939272556296524651879686659898922136730391476461324707435896979218143632258334728232042197866038351259056218945870002222179509951864965628445505419651674304455459843399249150415168375615614967944749298452658153445778597652886114321556459150778942329006043805887455591683459936339053021817818379284712422977596400981561605535976132909969351374198206973461455778237351009677365731285750150058463334268469284223692053926427270240013983725004178609165251175856289777138378241946987152943392280752948882094632692311268261695818708683784318022255371619468397955087877905730082935835805184127724929858520515388232224591706766431765105823154212431749926274187251218492588135973847393275551642142300425398984226876376813151747527434210088521550933300879732028875879310991220909083581170920076336160378681823649689668907314016849709667855522248405588361749917743668354569443826749288648271042490148160728891648977230744476651019637485613523952646019511751808201605719581808879008465929486228686696842368889507351572981813445549788646526295545755839023867453719192317843477859726888098604503709349879432452732915918831707811422600264890099362091083730653168601149418260601898797669532555367105114379217596168088431467279404149450197535298242094437773896723221025972955772929117271689816353130789658691099374431811707006017160585657812725141665924691154889139291309357932566372358952804422155709479269646952135717987969502364715536947635290738201853885461214186101736571330535945451687024492041384232831789265782186639738133366935174808691124761903199971944836804295720628809661374854639489670091845045912210533558257567796255558763488829024691191639064037313862875021961958299239617694704140331759919869719604078957797924931886822112540794575849829735272071708453025309937061585798129855616744239418647975518907184319599277489792254075942488653062525020667846934779987605936894086938048282097473642243452756339557806163286027731112369089924826666698400823985560595110264526970661430426277421901360986736256512737328244392125313334427768702010041702723380213702472664212689618010424413352205108314236610762732125536562566113513640285708840830084460314912281223567392972643785610560120154178846058046207219077266136499239177581458588514138566003639548979330773968500360296487061585376999200931837476246320758439782108038451734838830863684486611995256388697692110013711827165041835924804548988899541254511392204361286621857854763124699594513178790728644494696182251673244180559750478866647524215900896756328688878930104715618006554745061357615749427911354655521963951669531482367696985145870443689706798430269274521608398051106706893349203892501436505897424392227423626185327524099215124993514709473777074818092415096441740444995513260085982748206846163569454341888701474873571991116230909391290857725870491646745845768718343243763331790179960287911950469723735319742607734780797834467063794731063863694363892381172021907364513915720070011917755721989940488448999890138910623159315352023574385039859123452049311595432520100915315795445001181966513672137340337175706400991153046899071895793367338427105144965826418638839109120866093712018901544274946922229452185800091317451835560396439257643210762696276838623340489062931592255621943643321524863270906746705800144171140195186206435477871378279070651225667274947428402427209157312875291235917697368777767993508333215171879968886813346384577697597475040768743063796024265313044648157616406703001530886499936181827633851564308541246570819121919601615154706088555472339935462429486764010556663246877101465375101165104587215443008199793416160987106908086366530553097493793829608011640166316127651330130204042520123328491327489164044586069824634623029217612598522200653208328477923112585532274292789692941639369188504603996906741111062963540946008862355721847849025581570821157710226685300924809409750250870397073022397284269517236538744866408341854502337323397723235511482500804386404110517475421348980939443473761532446843407002603941941973982535757561723181903853657966135990429198736680245130102343122011913701018951392226257074784332686285682789553951957257877939385272578831561397177220294470747232178615878535257007429807439662767345815805880229312480971683212851955388929941181453930013583248239749181146638238975152851995257451569006769193670099730553545857852144190278027271359173198789071510851896009905638493945582147802837628346576372101114719276971066039885916520136470480094546592047272124281698809301482938769327028201339023384246927436967351124544979431508816582800485171311166224918161372730982219293744595037500758627761433236310816262331752532011704518408290903690786470522151387719244706317438378947702589788353467144079668495094290468399357342703790256782508524028790438778511385232333438439585730530437704005701494113100939358045244899058249975159781693280129972093749628540903643213766970274820956970512977120373800280721862768914823974990871694447943848460362377953566762493159548173886883097727008512882048606542149140561274407476030539057762136551379491230918322661751224224838644792919636065632835233035545630202291523147379766229974212203312973790424853457760076964388394752825995166555030776321219115808403359835660580114714286129793953458407935593463706183168165843566516949611084217428225601461492694834492659341687412618542162496533765337815805444486245189397894003281902933393681401689899754551544794950626740978323425652301519224016768927072050852736428672011486746811662034603338401391409892237885583752497520320446634204394216875095885665720629963120562436052109940809194836912066797572669132108505128577826508446723419861722586407791368254484280777073684888835909291931785055837314084758498012318992400776705387589058372992877374860421538561149750559926073307489794910240269528298259858063571171868098303299725584007213203222386951988395698462366444662611299323375348867935311588587403957503536371135064623257750832227330949544472921490956112168054317833805364873488060995869599392290638178383761235498418728485779277087126773009411998657725092092810607432688938108671015521444570861779327921721259746452578467290068472306533266990449222424244023918008506140058752436911014808123330018828655866385099156605977304761501322394915358489591328904742127538447167656909571151643000834786908862219779948822262641686431706373794930214858092848651570949328623275087646301047547896365873884747770248763161125094550578436260500901958624785674646825139454836175441614691634943509004493357536761027109441096397094301448670194207501970013371092733124402157825082409995391816018893547873455962267934761760477170485950579941513991973390219388216243366748672371233992620124164051264816348164541512042199068926236411795374556306337242979004804266883093826472698609872724201153019706634821055563213148996640215800260479900335770518602232130138905542429357336764990517662523992632979453016945072208234135627641115399375619335085403784780563661743593559509028185494585737692695100237967109566496818604424250594441996630601454347416884264907461235386078141607323905730775454364105722501641446663618409119612500439560870894871335264232476884398610265706246825622676992891403400391870899016383676060591155123494252358321239718048304971429571037925822812972539689883917902823014504839103703537131284083350774333783145846101726906886184983267403514043502165654507144113504147241463308994248390711013266158856937413157142331746254827795663669332762818631431027423083086006514403510262067475608201065700321969217130130390495658611114721735371965827115364579664918342289705428256115263357878385535035360418078554813970950086772065997483495907266692527463779115055032704929403260168470793350533141443843673169402988492296582635493395218094326853085007955498511571807863057033218870111644965986694537978735565789280680676877261050361914778431827244194398502048859789130682789853711540034198451853962250201714947443145162080502193607695311905547408589159897017170991849869658935916462336962345101689459206719543329852629109098054864417727491307736067092166384114086543407062376358448306383307739712576003598640200630994329058854971335161510425770147657958549678165980379275384150863338336288565448832527553030810857478614541608673793763379248412963329212251458867016865319817993518724030164768527485191682898428689500313332087100935817966724257353822907684538654804355349740828331848661637208690124659260321319821115487506179460575216667691000320179500343625600172509759690231785858799018469575578872448818708123768496717310002321437519540574968489884182173743906038151429636248165122328981852211332403189742646555346999216918704962452286441762906648615048200709755342315326146007036034633097053056538790601402247062626158044689872296311469917548296553134614433078191860042530238493094803670249727980838419908441957991117680497808874991054654736921312661763658445903080071290764530850984372017170831693823104265840159458350288710896402516650869660081119953504673195545031353279377408616342627968556557265615688692025547537989602997326231355013327098815211380642274154457636715930119483394957672203956511808921753324899375187803370635284307341987946415022795646356486769431829075621196510866170441627539934682946041373719904831986977482229916886685467827566188580796958582173715695290938242389844066350706877495449591726035895791153476258311927034037241956434434666813379987744308832313140550364601516510193889602522189895166255201394238432982605807894758915354671613791699912816472755593254935606402160965141058746716531973178690909671646057604711178014302685942505462968238422577259518415757851194890583662731738809555399486349814185536039823132070476141683162149617731955461288257211029642662506481026742375875240048135185568937963372005718873616673996656492208143863713802847471085085331047119682484576145849270821404532219430466204277950612525419166112799467827010673182494195265059032436160612371271703085620585045614986018896555900160776388245745558184129761954692244893023127052023566253786449254796645075336864429132499837097272576772216618799647937210591900637120778224285315232937629152584393323125810230448743009733332947425695670658031726167888739748652100226568843577425571089215055699713135647459469447953599283245902507998190574108138964971188670319803624222671157024502474573098514965540450983618063579777979499763032046896324771730998411824659538608530445261623224763449332886686692635982087427797028099853595199489412665603415479592986844596158480322628556203015614863478207819649212498128680115178246522270622866671123287880391592163314054253111343584360086695202283000253496517318044702771968727556381611196299365633931730856992138318797830711543876739390289420734433497860556860696490479405976303815818483286992984741616083268236667538067361960529168933589926743247528933668206963732883857047861949019035755570150185950237556585420276713480517137977785353796562894492863543885487066178837759490688664669379534854609930655041838983375006481060394674365631584130036143176580449283275047353896379955045295583205384296185693437656233550924850147955335399249434888957104563637979298191697555164380551720844947053628299578408046892984934348020925409260014772389455655720280074057690602575486213237634827399044701391171531749271741370878383120760471152756824949129160963631641848923454747320885000425489139734882903801314647806126188193669367187328169607827467065220895917170349943602744640014331736296211890339063786818577733837311130928165421735607043805613127658118476339843925713382409183469647681008870732586585249857508855126456598133626644275523118204682127559488558204480895389452229320994712140920024313710735561237350231378116571087391218178892234255668578808276055015043057139013162907938662954112731665477217347387227572402650386828535087460642070821686066637102914010217229068857095576092619739561712016166065414921316446341034682018041199807120142952094137435637753882372096447418080629723819028952135961711743848626282184748962130272639544883914531770554273952982425998273795677558363843230333721528922077824509426212673484799207312032981569418440080450252687838026229814194986091609684228068249011133284835169015839644696743211423883033208284540862899266442715160601364459128832435017626002910832166223378898669023325691657501169868742107369132730690403406355787059207126258542293012095865074223176775562352144331580923965111305006899911935264250943336713173693580574953170436265497084138364012790534789340539544210860620196570279562206607211824438405966255507286598097993922799725430614518099016660059555476177148638113704087078598278149488598600139019642943632916031153998522264020356514848848261223289286657657244705560276395117341181190373217041919574936281143642312014055412514611952264538526648502477899811468356314734347158275882368901032464307146646538159164408479487516347467542056757592281509753973284208320529696460659878084397979573102352655483512826458529937049344761775935087793380174953307007265718612008834041745149910552072640526696850256352052540919048753404550743477038058755884835946581078918500190617295032071502454942599913837790837228971077414410493616340580310611391462562145582736222324436626980499974879303938278705582321455545079222072795648859694103623816738141988234848076453152649543966417362315968263373462768128811678141323364713946652182551771124147264003431012671411152926620572742836324825404227889910208072016126831816020663472613444515653573601138120021809581034617528116748020024266754393633231860396378925513492416361178043913287470835079808636806702962857655942971925935453778510421561545886528207722820369108649236679357161048520225032379322332911137512404978890568633176939616234121858760887819047997768844619454048351104210870516338039240189593902814223719494828587339065673400288054275008222395955443377666445732856536629158759316695418927351727564749059905196764258968355574443186199959842782839787135379360141659738413943784780759488959349342908357401933352842885213745037498060414815422773393994157696491879598777513735867456018653666248185726974849116340393462494673413654162726175446017148072707403204403331536220456724388574745450935862908151353588779193344040464983425300925326483782599482187608548512503252321665400507618396921326184502219123800745934972027794037630619778881556086764636368117265634591816436520997681587722848265172294978892373835938904296354599496916581632598648833601645642950601255629636455497649281087694586736629744585828712304135267387510117367594403589436805183223585980897314370028606762704127685048929081298040731465769123272771612282616133222923493627774348656905007021231478529312121362985661155959846839129501933475038349158613893812653972328604673902583190323605386559484292060580365331649100834112213459661823985204469722110339123994368323247662242334721637486926831686809513577700360275496549132929709254858524479422460792854913448782572989306941124919694191101963719370454656438463824444044198444730038864789073361785188831127449095836318637120558150752628419705561711357258267092992875311840422410439212874662142061674388431215371071214838680161396318833281274877396054636467752841914799310483195343688410389751515298123618298602947939999346262870323944362329703121527071957299282573417985437911272609945423053317295279357360230184759784756736593684311358553956435731665462385019617122712328052359457794192248543172253514907673973937945467618170187874623570059283193995339147678011187771076001452688684115975150396540888261851615760058547306973908587221066264201117795503158445476966658063565752282710965289419584983371728615587508875786675318773374994864847157853895731956596467430355138172101346499376754585070189866545555434812772995488050830167446376842697682409673770031195068804692840329711768280198820892837074326888443401302143177585787197958554747337589897693366455043548684637774461839259265942011925710102761968672311651326041591798226686155668427269002325916896064965142485180440975160942813503483659511053365041002958376328025780130091392650143014818033632889509301489040186989219255520486904413564185662143590923914750691209619851712224856876420450481263806220286828174071841145702300495069211516993966405649179292232462369954315557033682009363891109915687585736834171821028109295517727317908053399079105230664250079745103167903012118355275946112573228513485150810613790619794767999769778563317418925911134013123538882679759345563669556761287576726145808320027294525608788904130122871429768732120103921278575558630994813366809066413749897246458187083889672429642409244175845415974194801728597768381591856482599306278133573976848341922394257864953893624372764511337753447112390729215996589827351310035683788443252247519411252798150016872493493172338069278313408299177455212408250037474566724693771749748213874149022015018382490694449279176158107963384063812156428993630131842536426962169026206400422769281805899212661463244435406637652089495685885787543336479341980582309135771927527451493491730111328204336091827960302936889332703699740079836175628471076245669432868907054890614522800258237506554313103037816468327193383809950703709488406564123863895323011064488431829045366177832879881591037135154876366261721555328578137570057177425080665024332916978481486336060233644173890332240139489611293763953351125056761294439075279801369967278255979823225533486830272503128195379580361500045318262989845485225465249953501307103751152953854257264208414301965321583213411897962507274789012584772966084933536080729992136663233233604961856746496856608410602888694670929112599216428058348972808268460263949788310831339848636448494425893493581501874109204463289193336705658189938971670557601264120321651812704373414684882137829687105406090345845805059770886367625561075717486673272634978887139894753093650378286825484464386259540863509034205996128073347962913252604788572614341907943188683848614777923866699531359195716425910548463501969900162946201410937954037573875459527560619146399769779493218852274862756416597703845584303002807895631126977258062677383513720706555013232666590245615189535140386103527537612785292969149270988983989637749386475006955170515016915774982265837829727129773301901791411731937545041292188514849593438197703153635113161659954848913889376077939687978013379807381091432210111777078445396341190016565083153401330642906735322297462794937693783969539097579377295158096999680717289719603646093362542909827891351904843422798778297959402288692135388387527151736747133363710432509818438872650830106647303926218697797572634913569339454136374109961024389267062472882760510867245870498805058668887475096544821112710704266986552510059020797508859152197206480321819924098243255784549576017884599634004330379679183171144544946656598338146111726936949555642303842087034475911147671248914960954551793545116445902109939058853341215868282854635592670341331285761805157124291162491701346528724724365909413508651186965018927481723666901217269024941107118696839450575028682965598462712380125385780646000919092761807953885460553260095211064092458641569967743709779582927909746035186289339981736772412319870325597233349975335852086212232462328372429739655347712090202668879339859115948539218677153131353070149149168892924473961511915187054947107522843828672959988725315821176001735865070578497744347332239725019219874423625181994711909774400582380823455364787886762157009121631317069799038220857863614517645237245488612898099702405552580772156253842377799065929930946690409117181732349877568566152900260532368777581887619107032756654659679784932022585679154364564919116158224968049967983714058862036547844213562400009042170384058230397208664178694884298794093115831410922263733748670416675078572174183051431526532701788584560345912554366306283285444939078097614089462866069007324407220594695701012063193587509652754599194592711395518218197361648758919665563686400701849461318258117825231072657812926961763640335954622914269459935945468328090134259451313171152574333159478635610420273481944827789030767287650313150022707365214965943221917138405471055311489758110948901616781540461494187628839190735989932437896776327711013980937634241762704291693605583419695333189507897424310016126531568833822664587799971859726008131344296325792042517989543915387725105889949959238166767570234315377726804623903715563843862275970735081634630185186504973192555901921054757248639767903718680570313839357141307834756446680823411423386835141728285404746041022542266293712812428449653559627484253777384761335768110129639318205847552839353638449899279736179166779840625324752957087199944763957278248377798591504559529255180920815550355515392459521094860515961861562815676773055526713603184848375828063251811388213481158714370836647891936858299116346046909476466323045370811994225482629637445228127267198999371748752925349106641990527582846626620149123691198815033785707240488454482863344553099115363393046063258416662658926746276091583731180987172201531802893208684188567175316661683792091360794920564218220176704285077892064122948900188789201549369599542223441969586973732539532400848800635075061869616731947977912160584599892464636503399371748149924517546473403273185506757153229690444893315655140518696815954275884742342490027198327042664161201662300938565953427665181507750751725908210505480695658272230576032032613271145248203622516839389431951004920391941316951957376817046832411272717116858459612925623987149143144352090743440448567936564561240395155598322053113424262457909524520703134658845772885265174327465828141420174084539945546957063248114609644273808114684035099376645231407904246245889858400380013140736017915059478580627254275474059754917186296695363213035283611410401947914244031973899466963977295900118503885060185771187375531078086829672924883895471892498314038907200000261543437854785204044429918281926186632742978795052109899289381105181079512333454301382492051808441056650803816544310783759771601985676813008932912420731549465750839909176838383747300039918472208567766050808875168858951231101700464038211877415854558848615800220863652040840089832612883448209742711198312678307476945563401317310268549662219480437597889813276056688337456947879443409917400595394328355109258740071174238443858872754308180694381833638571232064002976336190455506378837997281550878493940511111666670454187011558632251321381267685982481304449866091614555338008496240874874753795345152835169494266479459026679862831724434107942539547295816777063653269163289605578400908611630922979892841951895004696394939211786413099778505241928044002461475629882156265868568162364216951584185980261390364293835525148368061832663376431720760339842671704330276355855681398750123502328505752956193531653850525868019526735593369963441971863779501751195286628710956048308455747866006369152044145161548608076795276568555999688145735342918298454066673034119378729681585404887476196580063486928195736006495958469468844234722408921575518744825347718173168621316943834098334576048325974522787676872253685501001260265549236002367845188532363285072975545545194793070008526379908237077182127452714525315275947969326251743412750342354416830745851272328753940549222693707404503361723448206677319313499175924670146588785127558229112681039383611056713081657992645724842089240728388270051373143395165933859951428937683654143109730843079399066810940880981110096456124695613662179054913164993950649931086825622714468702957984485432321260409047244424567506209607832854582124719088895223157123715299608885087396916389122436817990962101123656479874688261665740050209884720495221433839891440416696790977637287993301544200246763985474684547860335364227020401229626592851422406430301890751877048200478500752505420579505089308879927703440228317511919129191503532176367973618228630053067162443113222132975757937839967763735247994013472359448705061104817205698031441569873343772319220026614200749886584407998425747060184707253395218615950077815840888733033175341829467932154966734831792935417400371364059585412410411448870223901982959897267567888813421436816752823768289212603510241599991681352589886719795431139105825261340252668899343678994116527650899647405837545454973419290103207113328480001615390165612490463638396628504418519376832994019367160732660345440489348117171602393078871104134726510620312973376050144358225168145056955485729496620086636238072134791284894471536657869808675496662503888587048512687247238271137954244178043166832123387717165205574565725612530750089681966702454470966284142894245761574644144613274133698942189469081692849549142609343989436803478292138779530480590027574349734556156893121476688473606083801995146669158573606879923151227051482114711118962101200964527301612121109787076265331175736586263425144297360602207526858688264123873884018029676624029310806644379995287637563885937440313893770003945974013884239921404510401034207760505200143890952723427374443294150135509607356712886792281834640172721529325069744331391380096559716751055506851116417418904852384390355425949166785000033186782346748379921536388488699577666792885160694017601270655291224472983088407597686787716992676248172739437292721623882226615236927593288084971855133246162607534311316039610361812310200065586221180508751660659202700618131089416637255209990541822254990484753507605385215484858841934057132738347837669921780498698460716504408054760285412891806269097669720994273344613237759456302397718518608660006773284806438659415502496551603234269258910297820456896815308971989124717523814973690743107938141368613080576790214454101921429548836766548854691050126625811072152910282748330383880310793192578722393877853942512677258037450260138210584293258339649022311496318296243948808824103392257090304725999128294740440061293301482157672381118062571203818540310611145236027554199827830505546553355125963851176990303126494457378241631885293787404181127636293134265324620793247674331357250317358581110345879308711833186032802039457359841570851303324173313655349385033388961072969526963593834017591194257556660157935303841929426780145091059992109869529289443312975767092287649666854244808012985335122636484417917262135419588964655149156370471877896732357970600226585184032605862753976862951226941439033178382869801375112799363765254761978687004080431099108686421473069192063474244245374411051393518817469264844216431602146293838436231266928445938736508974213305842190755740654391492437259340947142768394721868873028192660207094959528721771525719705585935707359289885978577378899319688921389085371116445322877247567938913454521968101816506289820188294227946971695989420398926971803101326336425364865623946225698064216846829135995887482394511163719291669545322433151814404983486708511273513016180376847411061906523128675396532120789530987361901423668409873452097577199860850614310185117528027542764781652677749952282557428723965065881925290192838332519452338959600395735479823434624269593978462240763290067334382364276366102428555625710519892013829567568429400146754996735715304211309665757203536398349705499681894874027053831508851204162320878268525204242321885054882428098651826494697217525038588429587255739919603738028363324541345368834347381639508338071283938339478486254082715723557903049891031761291167839067088429492538000075082714738559581921323525024069798599754934338422394275660903821021512949333376009752582538945372604751913926381269326580702922289978514139159309503673023487666852364969746083590362184081883720955835107745414210235785503415221216318998706718055870394741918789671158759317072664232505684165877323610580073644451836578365289819640223211346762063628423726270624513696001851207939715737615786096621294620635792327018788411966089264749929130580724771016229687469411649169868143990175202761853860123502405881276485479696312914636959896360570195746183841636090380901867503745587728934541874977615360275651282720096700505237674642807910139284596957899953023225611006075669391206899970807137376851578913193934823417065827990401554393235770604060776934712608122549798787316207032292386620244234134795060413672272303330213266281475129817442322628048224110952259535432476589855216717638086179069986588311630346718625250961018631038400916364922568854502455857474076439829542441899590281389697947292412298178474570196185319471431576119240787473033313089588588418566425105676763131685826320168341909143296372994795530361898821312744505392771691375858116348849681549678111936352835828922872524213769575064232863237435803964995378740725569075626510045498097269656498674811561995720700007474681412022078153520543702516338382914570724893602411849711550343180326635728683805825060978010834249300313914962260330712496238612718972222201366733372452054479781013564881992643392487336122523130631460130753802105016923716630336895433262674340223910338561574548211818139451501351795751461749473978812691017603798044836544676382273179492642468077476555416474092866751545706529840665034120793132785277263448926800412427400575547865928349958621589839375782908314455627234320035705417352797267137939170531348420852555888338904534282569995299227202887031436477961424282853419915416803635087300330621244895697690480837401472743378848046376914588560127965402659325231803185585862023412911695965275773915059201932442188896891820864627872363724705606952961860518046634611299604149687715446997808149913736189546156938004477119115653876699816907093384173728709639813735362460035567396643899270558259747140952508788628568933540668723671396390077163427761494989357669560043234078986675908380391530414422663652645101249237163827092132749258335449749696243386660550839140207672329471379797887714396428825573499266147688979867363004168133607091014020353286024249142055230441507015524890694126783851243962702422530537228107210177237232589728103827220197981416320736394588891836733545863347749625000581689178115655845386188524658621483593592506073578616121845186124525163425297976213827716103707078595119002266175469177333574761352293499476704481214489528582645711419526947293626985709989530761145289897719566954354182197534125920701743425881699257128665291836902555340042110653312073756019127521088732372117756971460473521912342825263405382571856829331207391319894783826271653823222908450476118576841766066101961226580083698367484382263091402543673416301209124127014948460256152147418563730011388838179995005786948722541264004852431497898987556628579333626089438247914733505248729012634500555230785029823550003369245712190193222020243332256111493456468024301524764126496538409565340938336788863113318659873155067848937757453074033452798641136964091476385683104722434346744821146131886818052354212840202238558858562829313386750394163763412337170415679600316171121258075583053282663780469060783142321579388273965579450154731188383880980238166069081798296795798209044193913281062300695816000525330435592463351055325725237558375480332919738319508482507800054620603725635586567233478274923795541015632365799887203257938490790079484110123803403889268262858858088634397719100785877780888054158387134828502413692386399582631164050003146785092597094389362405194536398669518738018626516519085877391028418133402459311665877064756387067576571137672279755894814151857793845191430945047408733002007982593730432265906061855514559634206704076490615099259607459985205199067206903627006196691306073809392378389621695692994819945806758648100735767765928588731746963684102726464679052593589974408756787327545578643945740798774699653011576748002851796596827800210432682734682878454187103718746110906087827659593369174825457501655927622108193837024703343670280303893327831877086763029983608492350517578918946086884744050561258472209809822993968944130950918535354802935599567605025122790201171918935049814692372158499378837308507126237043350432686189855240260910539685339634284311484963745514559923509678684827457945711199900115925304571087530447733715310134567480213740771873265370554431206183962571494850206441871098626990752683921965084565455549871491837007865508533647565075228995854479794520441890853113549379142098522577251061389697008219744027925421478759821098200344708485409569058940356959090912193684889566099163405695859227171064616032748285990431674224367457851968665683721014595705001337726928746120977073498501553489134939112239137695295957694747356199523105487921321842258112675190881398888532443486270806391308626163388457370448225856723863595306678153894163914871555454996962919918352911135243512485088051943248678084252268300435246219913839421867563661828259655996888799756214446890805711837881747546550042104526389142849022831042408416582309481058178643707842173701750058032206068979819631883876107765304347741270867489560753612385180014492073568477952905502811017643461174656349308753787159274409805584195729929491850046629627522546254127685632883650296448406903576185182276138891191371350497595560758541924990664495596515095675804720848369197900357949773497888108337162641145398529032160851780880769821767303378118934742413720806477484757006081892075738118840173981714844367225688363388545259843911196217310004631732309237393580602612990741614788667516495326399848113404377793297096564246239641440383390083035693053033701456513972388102584663493529290884615586016924140695318883739159112348765241981570392146974341087158567572220352765423353806112308737814145817051692952343846455446678063687350256172577319353960757683624615965106345360714310269983353907233458950882560823073595340577678874550083775518789469240949675866856912919680500270659809151017455848756360376585070581983898033551412783123400821134467630390552782426909778811386191377284558540988789318614753131807398402877857555340720252082887046497422949518654656840089626567653226248532996772011718673957436882161315612830541507289408986110728774841609199076920433910886763108989922401195014561647262295480382184118249273601685887100801291686537524090866376247857059430552485939415648486652740346520853229508447532537106629196420667411325989694487017747509386047437406746430325413746798065208815919173031294172717999549531153229155209497377443337589993973930360094078525390474295487486030125785683544366584553303438068188714532303895360404874939228156555510413215056046736032190576194851950108127494051019620807532659696093309854727950359742336349706543943657038350947222967857350976894316822354261467154180743248042473377667016968347119717941336663219771992403683640555111512978072178247715816944026999682329595706254688878472779521149974331193755281742584379401177384690288267461368865656144303072547189308452395509510291058177236364782104956395265161998562955825580033349778888628008181260899329408272621451657362551379937688906477320708897054457618831137288488361943376642162068498343915944165487489112200259834920318271660433843226980629131086590965271615886856317044662309123306073118015839931262035629376361115522635162365396878735272696431479429513044189819365415224017269597760137316901053441077153575729170563741063552113836467589252861134635769409315632016242927091597691352514649713713540906834491397186102740177100229598165041469100453649528809411222452220072462836607180156867192417563644716534157721687426376512787602413094649629696611494381313324030322274593022438384318860260469915436928182930073271008521288021872892518988639253707991389514461629233558618146615698206795083930040738937605490445237047916788702599583170884961379384117801005772219096529979139914707305604694572491678216014337014678672253151161533451308124958771143856471169864303605759615159980317267088425913651262286708606838035596382164754457587218051810094767618618615184978383098451300303465246888824731130812415833344829783475247885028293573921933964258352404471059902549594894813082029763477359100750643491927749208340476003936048117413287506619308186732174121036045458778409082032449742976794157447916242138961380213223461471364454617925547569864377528379838455636725362023614179309497137965610414874215989592321564837400280281422113322349766790759144851608151384582456370852507235330989143073237118978954514462039617190594377776456867670544552072311135479971983802947444073949116516436997476814053704296548713573131135475470726449038729389593657618413125305680387173775634341857436464747551510668796228801734907177443574054602396080821257477068778403529902005139151593128929379941333617354776069432230906494699901281027568978859752572672620265224165121714173518323457709782221021297978518208331334981869134094218841551655117771775022604085266666491001882764811293832793554915500108630313708251321384281055349112264873887312705215874539260279308704951410850158082390425081661269297006043114922154038547365998290760652219582572329741663378571194130990629189323732627777180212342251749782520150215820803994760990191130350660060666153247868373998146769444628067567285688807212821543032178015693867032921667458567607621424393006633870280573039116352587350729470730946848901503514608136317764911300019737428050101081261424575076815003525217981254031241895612990968269289695543426280832035731909075916816427209342148087003952244344509819221321869303797624000649949122292016731131927740130715507466747741554463663917663482971017169182998078919170996599182139770555738347001006590325166230644857648111090693457114127609414527988432436433320686631521158086940945655352064812893173627137206543597358651588893482070167830618780027562246471406053422296912314266794451141310800564181438381912923104483832772240897527629268960287299422713338915985580828405127933641981547714666885438208303376240447186460509190714539366977975543491798513693408729523907889219195190750414777242905577460306624870629439044547244488263768442584073246689737288257823366734983712019682668283119324163100132622824902166952462785975737719551071352380186135833563372224912536866179581364635813518743025724265884551516652785693662747630959773913440353010633827665957211369407009082716434574313497235203161395626004824288928035825482907289600714233115710411398978860442035906778878613302298085610071355349447822966770820626218534921150124367099889209761567857547109705789610974534932964782051546823450916876654939511462168903209015910040390823747638737916342286827253186855759245753051364740760943482804111932839098155960548267340595142481333260702864364777162172222215083766555001517244672898449501395202409123339022736686860650922107069610086794242325190359181868826149939599049895590937640983458969407218675452616554584155150906683841968030567869198428588527629556886331857374672541566955449565945800370465003461003134956697788854824311059117252804436330521042564798306796098604906338458823558665666118429874801791965737833211243432954663126715844502755607675738522970003692225278865782524211057626823502803266713389030382963379489117387069488870116302833768848412670047866250822263527318231032180937585838270211657234001854521942169489981032365050737108774622492335681189990901700497495370749076024433798241779528160567575088296932679143605554850530475741711699386754444421446645232829822792877668500007702648555194135004087445859887080175257092334870871386266410425281999149818010459780263736487338635608137852226603626847325346217728660969829739128256318668504169642735324191031650315799242718217863740431104496506273699089598387769692378563949597432413879169923953783225095185246023166171807107366555153681142089879052887250426668773382871248779567978818633872919564581382147770975112590653144424376701424508133316481919875261661497188327600814486943993731857811709621922015182811724788027224580587222444005956959300608385578144452147886751463991390296245090751975053412092093617515659866901589123521942109875757407901089880746057888278979154060668725422849076583440936194290162072547487492719237689581130266952443688623365460261537130386835583690409288596832322301475555969016777704059949088138146100992349249631034846421358806775493112579726405956503892588902545434392119243761669937866999850958022142354011955651116441374695409812614484198608446690994168341927636877687344495494944760410301772365841140670997139245365465132051347838159343420532542047339345275643830649968653076597123338740506432010429361926277113272768644820259452844101791202879548498451143143786949605945891545800445069771615858393069786168526013675712820186846510666954763571963032748222797376785414668465177526977270554190441828368249010909217082512168737887695426248804863075743653088673571341528313144541622599615838501658173100657262212173069058597309566712627138338505283473765460410931208956973734786920121764763410552644331212778984390803554760518566286876059104185593935953898722968767168493655884390002307884794733780719061021665162769990999064594321553450554195393047512858983321901237127164552363895591643432976320801736260609401489004509567276103550903167139665386278286282507748357407801023717803553947690260108279667079246362150686380226704746286131596025605989300716268422688480453156428005358350832095583469246488972595855887591875762817920933604590755627869741270913342083282865190152296063224688640663936080781990202653046980604589167773784488197795816842432912145476857760318663702420008470127536423154090886477768405101657966289853560802489226018083483502235783130911891811870159678798985351632108630594235811665745235731031945728607905118292179853431218605031531681536927139918448644081802218003049206143684377738428787231325947016772301403201002274779035151612118059963940973280631068169461270891471381220523611247274494446960156705753946275993066880043799357779804035886210988704764555277533111287023010309138473107427781539818482103905686263433140753548377265814528705506036022195209418431347718771871067808573856941401830124856035496283907610962633197271952554721628086690718032792655778427426696887730183894797802345443402832337802797193149474147370175826271124037223288624215606662178381488596625488268422179388146341838923740546544854620419220622607627524644881458706421978352066902747193814623942304260462745695711962346918452683372319400158713275350328846280655504911304591864623038761631518652616003232435291115828239636938235839187651287856887006680087192858133178513651492073819614110408610126422042371171700759972580009559634778973126317155587177385838624827220251372782792759444531548408906232345113088441029860277417092677531562721008125123707690849611355904369882358947875213099315919274743522485536527323648654141691301919701527332856255675117268612429776003047021811066502505961509152366325921145976786491225007510685095214700797240124495064943477481675266423621556497573240932263231977169553762563586437414254803222323456649238251600036216338867218559289148264123364280495068970919661309322997813607659881116134199088593179365434045907615941786038820761810408099230634308305528492093295028019604135993079455501756431233244065510675174934769857729788866524986759919712726104561869326512989312791835094442266190391691636924407859786461475459950082152910444934941416219558744569223944499638417055443009803900345265752757171755766196864033015750183892364625269902986381674198407021773157377297820980201023435449935380243520246608005792404091033806646114245677797786867246128346547083845918852075430805306895552693915573482748590278699618388014676850984650575925037735091782798061538093477774896851920159421081536869798186829003473830150611554570612819803710740663234498395050742033512905424164916495542987321241200326446971342262655301581861521748014407240782357665008574487981260987128628248297969618741181068701604195840819050785985625733415255211444503966625160367678504853416074789408014847470227347733581944401876352950633248299848970478082686374767757044782818830120079007098214612737400661982056073513838676527668643575433240180292152795784361413111969256090821817094934024678718560791801105358472585517637785471781235437750005763313318853177942237173195868147308414486995103113037965445793187299212031505846219457210465282125380998704223840458348107048691512937011002285047821914571689667213069991883582034975369363022350253229016698906993421283840183243214868635191995941644969303284273882396966730853465588888294860913410238258870715961451755981250597234948461946877921150316997798243002504019288202985314438880604217680306380494279031305467839551293388677508901587130354672216904789388502194925089539338175318576085920152793526138920955602971700588589310739713299657900542192971830705114624684136230353357952082968804061599934815057470822937964701460497970485927877356661776091247343452138165157635241222638835885318171759270741036711567387371161368659404915034726860669277259263105862796721865506873877008328394838376859113957091915721101097926057297953995228856556599452763729895011869734720059657236899814712622801526830571859913972154664164260771007710837194883296255286193945853057849305308493317046518611400025955626770060290524309062324200297039259150799943836842956262090789984581297114141544558413254066685156949341452312966536313257109444445956651713828138261847832155620193564527394999112914750949079597441457952536797441376644899808743615081826601910690153186607820373637700565192812340006767362204751053080141454539289585505667456026954744913060227655588192434545167293754644833441810387657628822286808575399164462141604420636330374673702422910597550020127278672191714429799655630672841968566653662516189512828852340220433938950217936439085260321492286611792100823478605721142645466188692856485534549332548624122331915691341899101014954281903287741105769613923452741985649886625745130340607949410135802875331498376830268310233415799326017306322585465027398063362011258769661636376098102092345377976860402039759922878174275854251877571763233744257721570600449368786588433398042569161025510714830103663645217106628450878389093960232938479228224584876494588376217062377110620140388374515981164402484572339621467218177204512603595005097255713831570262082646438706031773318817917683684221800502567868109063821481998013933794881659514318372762580814096805676191222357893708465011997732232168171619177126308600492061065864342645898437562063841724091326273931777144552286374466181647448716704263040893277380535439571541873892045929017666577045918045709023034400387033409790515938931869910934382708985850941114016126613662087119792603211157985832442484234179457373986491965856107493546127004438526826563921415018737093478255381208235350205993935472865047536749994675588011769043847579064362425501752485442755799190712523654864273880806732469599388784235732423919575799341534992394416514905480852038032174117904437847767310237176742077315943939762097056728608780256918777587184087277848548866314824353961556756529312290258634252046255206329570208163049432834850269987090436234997884590415634827522755092610042987474856242119302887947288747841934054057823081742412839446946248674123532392403879369227025903366349569585255530211289590883717455573048516715352478183083857927057988347791205485019497298865849921372903418850620812095906886941358373560877822754382312827742392137679674592736277627991954748088518662667712157580809010672796446549600510825851945928647065592471160361098091377047756574435907766636577622854805337500024045767813164907012902952316385950915235888050977403855934092196367416005048005738088021046720500154659548947745791226371925004959455547168701603031008658404880638164516374528164930501087999980482026628478592465824892287364490837676170025396897535487412865373427146829219809291991636343282240592239556105733726080307764518456774822806936866719272755756637096936103607190747830933223113568842828989078755163527028517397339024521277725472972005489488342156729757308185680223419684531943314551797839495445587790984329655124903372424814619014820064021961546135287305405433913531963253705470820593936118548824298728076768174182464556701749147179782453427640183910625774551105270936653615591437692303974975319165065069915515258480720719278400735965070751975698700726762221751879905427308787907245721507585699598360058515910544906308315804476876482496966880244015743567075291044093503287971481993364952491368900111763526939240909726147170651959809801879823678849094679391691889457322393403941942507090556831292349903451470908470818816579662404886961828395963060876691019104833393748582495518796156529396524711678418927180902096718243458780276632352597816882696774566807514631905446125495422583597156565360242229664255465827376606341680001115070631391571364552562701317346748880440426493877700974693063395989765391188630980329232930851502227877368113073629689978132501925628874378000962604817090756187655794509657631145612388200766056925974302025095629293898186553539090963352363898735453923054322189654930165125575741264222828357449135804650116872002346973115870332999259698747875499291108077391504028711278034979376393679366473954534071415881483026255796735622365749773440802727720324251513664425721584382998663991185203486969206680194098471386440546689078699219260750177711408886913960841722175087167996318231857676456162100887715410107405218282358476843750610761002235562263192763715495609388334274754742737448981899334281262470976267821626706035744526126240691552857569787384091762426858376297603993517808105253346848502597950156778009898510885163710629461870010958251658892440132419771443867283752852542256359221544184146167129535991171681512296216088258128040685438153039325460168213298132828344431131466488266727328188870479469623200210615367733581886626874797108270085661946896919056523769515000488868753719584478772814316727908965228512575699038737395333387388141609495127090621542042258259028909187774515329665170282678092063190337486097943660466729146852332634504087448731493089511324332163969893687918411046536372509143156764823815267864833969029048127717626612690781240061619165569299937124064863267469520944086496665447329494857527948359584367493211055288060443597031487659271910081417786045872347681660355564105951767045470431040853916128761345202984728129083112848530856371260849363368531490343992188310536148365536978788004976060920874165611195507384361005374699878102875703431176915766111123818255560852727395037799148206366950693937552177071326648471298648716195251397102024111508655925533384607549382688895012861136572472682508358753895067433688106061159116873559214122449779375651966042255315386413037933422149586455246687836816921406017276465786144139392572547278107854500998359141734800299230586497148756685597154495173260041745082870543472240601499820944394671848506552586750767259032738529478450933377014911771556025276720061903341934805575275030136166745332480306084241457981493232727236002419070667979413544258750370933490120168612706254817856983773551455517063514423603113809417349227378376316846332967642005569685658218219555388163109144530431682215697021262721631595824975012631151473393710990587433500085408216581925493782137160238844665664570255099503516244788097532501811896657009146151594895170752807272331792415107156296954835006964706050424579979603687381807802606888696435166745364969116129812839483236936910254603371520224083878485050831439669133387061624368069515472632154703356459172197486325415072728602835002816776685277074769096354816560201502807478805283432023098113336468549258963717992482747260488227848974475120570159700393676401010553765568297508401783921987701109745893907765626792742092671370479487700701837048530083129306968704124031351135201357218194630658163299524927282012654671703428860150368246664329848509715416746801154294726379493294753600762122485166496517858400988696401951257081078174593147325361063235031698258767086973445272406014540466656459184360780737219238798521733849741461456159434623022991057061669027763129296490931103953070695260106256390869020332832657609488085180756684928116736156659174943046085487119199051850162918882425237852798304229376138321375309822734592419290523255458409309230428781216056160153624149677091109696253528421882772787660441434360645133591884245226172933241256394660066891536417611710165682356374121171607717193938161542359084580230308640834235219675138463231612219726284945124356108450166374802157980165708345742982077834354658702355961065613698184742906705647678350928690558250757856053887632236383469698982824695390247091547598954558006910004384944984816710730631859841752391909934430961445376292155716206046581510389920190898595671942691566170252549747687862813453658477750975938658929561011995529283419680250123843406094591564553230351088874903742134963829172873748202223231810563412903808779639063792360233047262994620968737806797088385490221972115240695113152536904690148430521144571405649443306639558860977824109300225440792081566003441530046171305441861032374690104810343763758541088297720723066604909108820446305317354189848100182235141868666677185588384821148760584546270375117542656992244009445214814002651839830470613388447237170599574819150421598556126708046662888654525423078597491795738794214689298381083748544964679116779599695408392143484575047898305109941211688603414820633556796208684338731497904838680174392976936197743332387438798322191870388672539973286960342524641252315255421297012262043556398245030688574050102000882326671044331753082567874062584326831886313922781111389115304388926515346316313205701543668528996499859866136072107882632111587469574808385231432303352256328680315253772758046491797967164957656350243915256881918789563972287580613722361495133388891918233546353510856281061029853339331450453869857478593826059894283010967344257253830809288303806900273705842512964931645645043561303405005771737818647907799199031596352926937389623398772773201273773732814646462815976819801506313104209475369730083003332783562108334795390436423532190445337569340016922879629327092426243336121802933253859052615553967877055125093836271610326975774279380714755346511219257125083747132137935770793413023893241768352213848817476400410171472076689355553401649194244969251837158387048067116045771966483967352258204058507012011172768342439240958441449369055829940623648850018090147156106557455088324833928049833883446996413242107964039822730287919427357431083253007799892693205172395473518877683102970429147333140746758978577287610203327876071198199003744735576964149833510958112608109818692295634248230224745780073151112206134423848946954189477299021915358001845807631213407589149869826905094790321634161020342364323323584320690816440847828251241500922038488789317762623717904180955355009972680131625582944031601642565736638630270399626839558253430201139498695961005850798811878568058796584963193137271344110764662212435481602766316805040689504419889817421217063217825216713068873533537569910693830241038402276808765308614564895479097033979938544334808483004792701984601485629062769258162748548494811016928200780842082894354644793846068646720072438017493290917936366449161356236815681091047774935559283499170423166611187150265871399491412973201485906312325841680089359154017476549515256047151404828376880621094420529937138415759952645103905336016173388629950174992474311199620011001596883553365600031219738682383237555610232167620053347104901204369279326527628378460910504241612621169947085599113242128803477550475483448160986408903399759920843419245792467709782418477642306085836739041591291863542833365822877136479431382191934775141804241521146436528976077713923896890508794371160173433254008964812343194154975212788716570628940215546700122155592581965754802074167983478155443232196081997131915698775949593437663491985204293253612825428162125412709332881747552884520214920047655736136534101036793700307964310013848697601635660464039411597182642475677467899534911942309420419761660326859293936688567088447216222630443171775844906079192583602751170510748511814400296189000127946080436452962523678545479976044928152077975952325766083933768131862032724028230842351132868647888133024884781096003228843306455457386259660999642015514766953411473501988969802532210274070481726771686461790053822810040978895223399554889440481415522233993300304591819476610259424249700637764945466737774180475305347886145098845837939369031552706987494135961752028157615307434108268928083008402607171163498547579818996644884363549379602776229792836711076706910797103980917691459615489982808603332779322882450262609754547732362009715426181633530736349173174993832729631715495664356869135898696511241522613697984768178127224029808692105975624125755873362646191806579243664495683879013450164560960927255058773726095985832434834006196260157110005573180293197242182717604537630748063380660047819548090772885313280220957629560129366438993096816029190011190450000202627168805205473976498286137125559085774195295244736205872219490341233238351754018505260221854065129940037671624858707354018210065884237975483718654422600901022705305076333833313428225489904906107012823045909842858284239650163869959012955896393411672154147226502643268344290582762869527254075561752326585707598054704849450832539147892572160171251525093075231350889001280225068889823289937808584099027790361877891755222905486142651867310212983508474524596135512287650664891618435643635947267512842635403322212675987962878934696182345751568873462203627421606636475107343169090494629150244468755675682503653715716572452281458162732381057965039573131723506799367048796761615388199535715783657877701501853520446139481016853466031711731773378809300052466925375929155125733916745986237801067011261080021405192953158167169240932198794201556280015381929397377969355854979796744153176443090997268041174094156306329878175946834951279280801769859479163568336708751170319341696619888457403045998318916321133948034036760022510064018149419576001885892909336403601313940462396539527264845884735726716365657200359475173362065321149525621166707664451585744494795530030786561083284882593451774605049719640575575539119345941411932147993186674917469606572429010337565436562192867057862938783663443180880856859908126059941942159712895331277643900104650998648220470143381614393178632565853984092566495903333367905575368652818891556477697513919117024710153119467027710656082887185408749141069546330387657592778897284430937955734400415077888200288770237593433970931977757354369622781826221143193008107634242389378370670798761369748534414276862954281139464894265218521995014811796395026496287796029040170095317140336145867152349040840339906458823944945594372989444397599013518024155952966056519401068840188098232430139914372941736852091581988341729537272077573619345791686921309711805265827713918370580100210644515402350987919326051376738941427261489652739841381587923476299452989717094951883851919088408586886463857466918690773258360733003538520942350286174679316165678191703414187455296723916356984956358252810573686256049124122465504493265042483088009931743722537813247378558671900631082847585564391025980433807624249042815294037149468482551051862464148549646751959053218767225613809109053645667044699005425181688986554024596807006489864727050983058831664824610541260160251189132868733037757737352009788455895002659599624244979971740617341547373768205381342135899887689635673638630638834949973174149991447184495988737976789938567841377483068405985808526464543898346462216123364062004139069725825956260390461890354838511954025842320197804326468985345402026701306813463365834984287584386604034126876362733543880404571941766513925138676389938762993361529198789542469035475272385526760684922501974202865655015147821617393386635436471792586335508520846830128052193542674021141320919815968691856489919242572032731351658205519007917171200452812009114622661509750409536682023717114829581399614226344681003628098244926557224651257402064356204948024057240520151331020620909993678481855656378239342783287485588914741236788110597599320795354647245375257642232772300979733694968848450187597144732958536362907008468438554722600162493577908848767914551963314042240250153271836925773786009685902949751766071193428808611829946520687621158165729553899383387391999175088370689621988965076142757157707811058889722576097438611091337383496456604259326605840029444864200481036054728459825824166545850004489053731357118152908815123483495811117314427275531686696236348971341770975345302310767314521538429377741784444195338513347689752184588555063618948792359445451526046790947146175278061240473173703060579168971220377382078433414428027474371384933825913886253517877861985243035752205798993032425686100590170415205187236335618158593988611198475541570974789790328446451738018848393804685280433428402918475500085470852449913229415598236208191713216461745784018252614419348263188922660056405223890917513483799342503336404169223775968476204716406669322279838060275481698247087919451030545374355879374437280153758962830187395160872063865698942622199343274573200443892401400288357621978687642822916336747787281693734016460767297712884019889779756118567730501010635947822637467113842515708843297840174188742540898234803183697061589897540771136693975602501415620047582958705833621920323035659086717353452703036421674027895801879361241663195818051803530848995921823047370692953412755239997249156141883008745465984941950397393660195637083054186823136554060716592653836009496758858112627598859483893420614243295367996272257897070337126079942435886215198580867538103152852018028374077270175020279007956755323173250795164309074446882607274312362515544220366365029693073542653819271417412312742803099584052455071633359156332720684222580987796043607693689337453224792640286447955185801168218262822372343594049173077339088505975289424761384784565796129412216799062438254836304687710125399946097049126954389282153497618592980896329010949374056553050492552095919521463850065876639119462984266842989006444170436004763357088636130140556605298061378028465013545905803542132560196995329502279076909721893697147181973281235100843845833188657309106425041541585280107232175267606631353105626335024811204589480779646017517750861965545778484218511861481502927834704922819830833883476171225493513870565858784031795921447272970173849418266980747633558328897948628513602228642749569048417149257405501148014650213316591080252579434561440372589598706871987020673279387092107952574849005089511396396687103143557732641029423251336890254844282013066694911563895949576104750913745083340039493143464273924178215763465433875773875044844495346604227654422728163722788256593773336414568446213955083213943274458175864844399905239018622071187757408025715470088940683749063019835906625089923998057385035195333764133307977484664973041140074840396696397419728883354476383948636173137215150832795144808188655287206028273489905735065626334127405639760720876236416547125259200808808502548592652257559019776900091671211531495433568842176480420870081422641961770189298900955003093240571410944372318018752165623271606636342039656256298070488499594448021571670430073073901418140170153249930408510618697039759456483571706882184779006067396823988327288783485871996847260314848965595879830296673308244985618950477425879518307515765634513372024534134122512538824956658984789301269609986748210465316250993555381791148038857458731906719727459618350245917761767953141883061990706724288992747853392863651483639141367775232524868669918724037713538551136036350389140075277978240740816696956481153604477277769397483905014153326288610306554937431982201216885347376054679693928185539339760351478865944443274595786129363478505125141350969444783719676813597123167650313640576091220137593687831347400591111690307038676769261473280145191604703832139076493996853295272914402784756498902772729189108074832904325933380139931860842320359848664018883804459960292163306770192749993128606987249834212685738281480466286160481375217226949989919105387595925105421292420078626391383450751030389900664588684019291717016099928241378022044780295114423151048190022653403628211552737126326719937687385478209159320604116643734573572893508075586746104254516355195750336615644278935624892338244042736765220193763271624151945151193814735781304429782071867919857237180480560950353681588863990836776766139353606821444940633516133217067764802669264064385382260039983017101658108265220661248892946702626912726064593904898153391008804142202497807130467846315012694136242481890616529032088986346410172523948289495689978695055852406682298976894828513743364616635861644385949191807352784565253066121272307909594339651274308953553131928438802094463104187882817508525238458225544839226853767678997498653623130527567389179402519830580460883355877060811284297482955105386455813914290830750718771152166613357235015994618635479473216339273075123798888069076544306136556853566534806698452132405425041622473813919100426756682646637290341667374413685227178077764740756466177190529105326604901529923126863490183487661344858980840573729352036763945017780792579611129414418820172865152494386663021485023060722220605087866746407689508764879103853008110971628014995707110137229995509902444168033390251366603983794084558013071578144502469468107005817960913905576333241214068801113309028822962069494228912869415500590332747786886398416730703834047777284556775839325950363062304796566854809898332413666183967945293064717490161572579426263311980882768463936622604295754791304998734477857727812544797517236563518141765907058575839234179500419948294628023985977545451212306097563461577493656090985100877799100794149009320278704937714913000517715439546011544505623466918437816701908626906269996039347810686131069063636001059992323340359571659615430706864196840915963648622943678836716429014460813812711909976945700630575087745402061494792743677555221296290552709299307518911229100098048695199705020977158110697078711988303339379767918910985142658842534308261098953250501213712092163439985659338706896057051184593655028998894785356214396392569932258018370106873767128724725818702796921855526707186708651882451461531400423904980492855413926832523654928984591073018864545917536226025016197267503175868656314119814488862463034195922435050893734772362220649323465637689979808079129877445975331029956376932665974420165790677144794522294972889870210923032359875744411745408805076790696454551323973237926620867978015842876250844831016705157795286260936748933026640626836793839715786324355308949745344153497180994962177480322794515153478828691339032764855555244429886210255713927452348631266426239354458690182314452172805667470891910713639246665482264457379087784481687379441675713095965140029022232145892366817898423733312068201240378985467118236419663602432656255420221986560719059912477940624840756771638779365573787409221261567823543270261692387956887744280642792670107937076652131301155253852005053579011253628686146291265237336648589786164492986914180049322987202789742004132563653015161749387636693504014896883806596131245030922004715618651358326375101182817634899027583969612056057581443545238731380041151064026709073835356649333102718416838244897548847792570213505251384103719064186936332957723126271935615394959163758437296537559593857164759700137731824244728867705800098783488594099169491816920429665622942877573059766258002405180326419325291276496008944000676383872732799344503454139918218577615947664431671672474879959890814606895631049225632872997605944601824440940519162040567430232423900378377217850485745241618484025835972395077988777486888880601724380918866444232889816314379347331684856903905076613946071099722983435868951052796461306095834314210094969018873878004376229230582622088300084919311382133932272640405896197407296287397615629596234118633006224340779136861002729903621088523934803890789115897776489525073890395053064117880865599260085130743628826579486048700123143676854745556045512898576095772417058376108111665276244230390451816232510788148363452681786052114861214332072203325300951895819877065571923883118927228448134140380040324323905778369277529287127203893594071589817551875730139759411111101499429913186736449090571891014667113916897672981764668906155141232588887512581476954224324839898166821660864361086190514637857631312524067109567364200350867905007996334139603531956503763119351752395175382908570721361532681047365460755005471359121191390888984475032218515312900216027314886272432974269984633319496871875423739496132026286931905931101927561982546713791451762023497760732944596922785960029288104332384305604308490419641136639221149442035726779895970855095612424736551077995568178698593562233298471663946830148117807928260054203193020401554785716637405092046548489851945342496987462083563951665849756667751233772458943691429078447297230115768651340205036349188471174373585209488617311673714285300033726983547031185646265697958039920432965306533233552365219001975067007928226165540417818245011661361324130526322471717386035850707108081057356718058038021123201577968082524871040398178115282390802000048678063679917124537227684902260254078276774201570446833163102084426356094797394529974728566339235909910525174312316914660913997635747380097623058283040590966997568123000266927149043448401361517391910915260737944698415896124829380481209035637354470139511041961240854946782459112345158703580968458678733940071722138187489541208933109955882541152869136370634208862309260702940434175526048155860587028255188680199655083929320669496489802915641899852517153605260577562276657822754031243526677505246598341374381438899676333935634773243494437429036298362785386651286433642211764771271734077599106931647415510381504682342132673386000066223716664474375466474058470728984140530407733203220027455774231426569396010877784787541436194549644357666308577520405057605826029661267612453628778557267823984239900986595451133023491890956518502577048596178371719234516734143800422704154167388885163091839804757808599863001937137812430514861673441556420375754189733780380212069726856849302792363447165877354636469573238361952563426528388228585268418547755803381445634901119610894301434018827672565841407573614723423445163746028955457556316951403769508290639762342517654627255660099336585940603306308365427320690744369826392376799564860278548447119690096902899167033620620934543747959529692855602414900898785758303178667447541235105225580017537968885011150223055849034980673889983051808311694204524947578595344552454077590823714072991917115707558662323646925456822208124495041002778615041201699017246621981204877617106877497136822201797420272799113542643684014989697614447123389311089055635864610173440900183635873831539357150111909070993622271213628924163213536691707028850409526258501725503424014073475374753669391217353016760304784732652140145423348464224955329183859528914077970535159447854684757127034666951955336028804597663145833190976972108489052328449729901659514181152894675744987042344292395143916778567088199327642669364338550218967370606894671041989805466403302979621593452205639673191424019694804936243406309160500942889802910006239445589639483701361386382583612606235110336686024663787102544419535501037778118713876655319767797724684067613644635637222935171900237195011027208351254978376673938347172992364999752602787738952804632097019965904769009328147927853711738811619478596677833733990622340485701171276517203352423286899434951172941647387682053555007251868093324934588826712700677911052999743343645542823874383835809144168493906779795538417542592266077588491203354808793205886879696253000961922329436251373918090354438812540077058405525727806784028097992682069541539814403482203523660438160930622112502590991771802031256332624237695885006102117208714706711281931840913286215521437433696566977740417407486155289962658367053230618953580914056135217483714435560319315765073217326108805466606278137010316895946828806480248756166102653468607322445367087704525910600633767740419485621518549961304318930476886994109601420689919886551191840482000038156184382466285893618557828741099006320094330522753521174002581530185210806434005096387105637024237332374865482528787526578025032296906493346100322642597819191028778796596179333466275730788206682615851442905031739885019032278107451389649911545107528487168466621851856846775916071038672634229292995612265828164374468314558521985785005162132191569857721202362896615735083653444642129878605786965593180584592353694096598794333669606158901805583239174287124404123102190885671108411448848657357849382922787722024112355834531477569458217565231069402862370777337536604045210892005086302266095965799344406367319077677125319426636973146230259746771006943467859120489636121765712796187361814979842083809177168867552789333180615784431886762817129862395036004902087813183911469859926934974259713850860938614396882727252749062381803443712303645320503496856361348477677372673486790229720507302893620319708750738141734856224595077821320084985881689118958038455924201049806090701968519613089297679699432554189270017983579718649185186904509816416280415541718594136543725800562330633578428306476251056689243804174657502222984593128892834544114604087161613273338911648653255815825035846399855083886897142130455800023280567439815783758297036526103859748897827375129939200484926960710146299270403937203473152968276772746489072705987301028648038323850910333855725809269343143457572629959407233471211073608364438461077565179779636488900776623795407156709367180491339646424905592676250674255984150227249718916566368853824733849276000652984310722663403679628140777156464923042895288761242810324582501019205768796968196888070761212088797339675268545899227893714660600470460277769171234162965703355696347264347049999264359310606053200296189474014014396247316462255246489554225450082680929332342238591430073174427674034438783237767967127547819277334018928420963004915985562926734563327917292283134716019733121183257472841775364365433143845952571031644061659550267695766665384554637214768134998067287310074041477493134308304196684023061323917213275977065274125811927084819809299505397408260476392037965426490140999911724104378261848450122469891890556178425179693462628451489474537415199582937737746121784711242209228544212523177158153061963220158508661497322466443777906562803837865752802457252736199823529281639632405343977337628138880295113960481545947529814038776484533664195064571931183440063383066577509618687321926890251759618779302702977938902622833277112855792412263768960882552892847458223174476680517913118399378753208678695280749733885347310352411163245703376372561292275744614954814092553868781485565705744081352910600778812158690331293097785434843881727001624082663333992459698556801680739058857784038618859605606695890574809771639292991432874486694704452081342092742752302009998093680890511700096855341787996676753487804073689138255394051187015818577424594120801382589695750944020050608888393161335971825455993054865783262222090932416530284055701323629496248071778424295835086111649284934015065391986319571158023582651603722790871786712381899259324998167763354576247073447875929679664765833129435003377001068929869426766534843012237966569411169351294995851494580293757050507993057767749065298925352797004373802463656091483282782958270512657324923916176412763119093818832287086008517236032620380577308063728200936382883557727409211159781010571328577534921577755731161510996251284643159837159392721588989614144584168192062362867521840712639611334745793735704200459065328131300754777035823323941431492365249134039710944298921922715199228937479035736388799370081616462579268482297990941852910676678798894452591982296834918990262996507484822394115082806126956020991849484918738041207925248781999992816577227375954959257670103921676154123905661954812481018159917590804508890241845134475255840486575503624586022716312308891196219795484901318728206817044095292267733451550531047971358384411061061656393137440627076366078110396583680845736003279386374374917584077369001000516603940151497788144227638420164128282824981991636375891194144127765431722807835229082302983133092252339947842483977633783903193491397451380843943112406541048383469957849148450386222359341298054388152199432309856928579285830266183756526152688374945632773148596038499176101567245596283592899485420627792104821728532905923632100114629538034206711884911335549679950313233027726837734464300876888250535043143027642758827281165798669949645928712310908959927239487381268599157903603004206717790321197036797247205616060804646061731898718413280434876503482077945688656916755389262570163442745317627084597871012032372996680633380290053875707007219907688670934567972456635641716774113424429990780118318532375027964493832418519557190747240498926416013248753090637971172680007212211744237934677943517829264809114797494127271508967933757525968945674462918120925257364922021995475330925257522119396742426026889072438994454859106361413422565894954695600851742439858153605045644612719959797858200338085543899896115540461182203867453021139871473783795905590839503118730948242999444633726691856170496678760080532443742525602806217511624793655137332811594698463313309994670528352190920949517452405442801821978757313426765842065761680981961279314530940291954252191367917830895608339313336320549788992887024084929263038369010850629728271734385359903332151729827802887466271500908589799129808438119876485764506957849945122328936233316923050816586067913175377106229312641580038664599523827280492076635438635335066718781461248635094492901868515656386245096113370765075140804527867329062394777531186621599378978825390474761841026313744036533247976148051522335308409323434990287253117074352717334489997057926332484996743522010337054685107505746213596227901619829224906316262462087886186855961250596049458279998028280836127683420754881404310888448634348530687546154533230268985754008841063557682760931149439685723897011417165239618192267264888248809065499865402787329252668125356504279279237049512427749772264243095034509502819165139951293068396395948592584786569655313778197659427086452225005478121904888147721245025739447105102099695677655633528928343958438065796283666043912158757589227151091752929952082403193664793266147127130935832588491169956544004380037419138447980381751729951541427720100284682597710139564512592983589068114949709891253183433784557685966311410503394087343322651048126651785686005162764006438597011944180264819211756287097490424084543230405554659136314911571050784974440003827203934493772906934068345240520854482677523479853781422480358096612007336735117816215772045759694391562262809200515754008145473477903336686140544804816803546277958199394845421277338422807466646680449360075469886776152092321853767480536410330310666958401893287839476388023210410174553436424224215514887760153520505733939979801455279151248863932016071347307623846501636609681154452088746743899160263086585378974472475193122008485613393031233874418833071460968477868590398959178795472635233804633975939192041711954098061627212090402303499044258517067263410795668666048410075658969543340274345157469469731188625369953799522926172453947878834066395916391464385543197341974133377217019816832589946592899403265226182428004325167756305880517731969726209989798049886767060413545803615990904397904187597029930741292134616164146417905767366859664713216270401458761368640684395934706107441735620716946797411141338020302325417043351913030456393439517939260885050800446304647474949793092588161991820114002685255388052487746456083280290535988144189463171905085700889205937071096912840769007115042587501051450715829860736969444804038711312365471659417464671333433075365406220914454731078815754183535211824117248002764499778739666054985354663270477138095282098661790492331471128817439457657639129882980178480213600676751948832720984418245279773551027709394222078851003363078150016662132278841451949414382591956465940276282263693230965512077125245229932693019523887827271261031858989704396156632369536394306562924552247823348177109503700858126170085851841847592850182424262772493282787196144945804283794129661518645458695445650043667391732040289701148924561234618186653949569968387409715757111885209124871229916253065054596939501892737270627095138623923836436093042517506966373218209251723522886327240884667567468363991684012220039158381517246303035652194827696082779475177688886338963377296814606875674393434642179832344819321887318350611502825914801151118564782453296123797612882235218117135879052269041476097568543951963540809838944827136763370287918659251893988112739968403861856849549891972690541991754141036475411741219676861007039742705003437767357303503127080697038525567369242640719559749604815286265406649370896109667564011368094166094257860096678161482213404291734306028759484832697780825031083986118072008704662706674314473405717106705019255402277089280745255614590195120393123537602995333740421031872379535480227065539172933204106007233124429539710383921531771746720524425137186041162570951371706271155567437028062764215755099470785152957508107187241764939536403996801995618642431575127949611949755543743659489261037061384638210008963425660382179629693556480552214277293882614208326605257799400543849432653963845579782016945729140717945852449013437489883568779329911203380289326935908725950094961733195914976763959647616764163576595373532520602399088310125587351191873176345869835070497218562118998629111913214683538358190709573896852864455786902299682002269827333091981387985340321553045118740553056079890194710191059453464199561330855838532743285852907928322670978875764052936879396086268351278884971467287469542124373629540695360194152991566817053357179908824365532765251851545175202212108478716936641792956278119310041807887762520276832813789330913774122552984987867390969580469003895768643385161748376384666116512712336178443102539420747384615438222450573224968556072143942764970045450628542928391225420853195279475891779378137538475488758561663292105218207702494085328806877438746449627922329799624048977686899669401941704165376060630346047804431059551706727489407170236328975965200278764780495908075985972964689843226075981890823664555784313558313578228948863032936452629010307184861138995852283803879355146981551882801702179357069327404506504246429614943078505713042347794982257173938777357053626593231378798220138286293832364635935932990472672041890256027403513501142989129803232512703274643461108443420792398978468304986298553778883531442131353692977357379602407967747431270483063682387335349376354992650145621284152109865482503789495648631851393280252340504926220127856274069160264701150955283696039545635844294952510011300283176929123993004629304005788091629149997622327429099285755829365470429441891095009675462618146055985489958224465263344655490157245704958796792887186233075431142213886814556573077521513330430682688168280631524346022946710776255518612549818920063871710704093167543307994893487605128529964999028225714386928768173110951567826147440516755142279343418387267663675438573280698261825683754294712773863134535857812166935344341576438493062162643210833324048878767955881902115023356312504735069776326243134415670729797214890657017334704682141502077458363010432009981538485231026991597385233688738255757402972874209888992848551931866268079627978235970231843653186893343710118040089271560239019520758431721509447269314016075895053078402241038558647917684347977786019777031463741608688541605505883698913235266463635056600911220916255780884878639172403397819858724992910538157646258733619845011668320152939148240155810284971086301540541484716222959654981820167555165815724986107232233163138814398082497217215710203810538888075569032547996804265297128550326449668320914373321729534477203545757126760798572658424583131530231982540068331379459263208532667875970827983159264988678788016525119088094815878010904760625644068285492388535080513264175059695241930325158706414648612810786755463415910826131867072700050624174624276326452173358556066208659149979391438966577359092557630492822938071710011120137547550087767270937005151746038966274032089220898392740649092635056767129070930190467212453568385797266656163537699674759480068465678862110846625798354987727914100836344129685101621277618938147110917987268160150535135050141304679177695270481638679018311179465140537225994711433149139048218049128974593757246077960825064647023548504164544273796099491973086888112780965618038803484674569431083199787647837509520090393086896923756325480764253556459152305843542053478754414635465474268332965840737873302145695686574194291412515928957410704851032161619027953652104949494553050855960833735656470816983854592654493836553919612391559190668621247807130465035646622601077134966830735926280934840662483789128135056728390245060431365043678443217056337084993391311092867854449273752008129612139257390461021761227985584104482250605146167598278793292874412590705128897258044468033936962893823348111437919068159970673107229091587190677265776186812088847495612151165607649964459428080419242993658069148337801346297262380417934405555115742669464929700970336900682955928987773899394760481707529100114692348930971113033987188209366910680689322307468701119210776620712159892625713014383199926276933236130847436017915713119324144628841848397935287218996752680043528312850842732768676109561262957667390634863993972814281712911471330394776125287321859640291359675801000181383911963996659432552498657185985299552828524556380190518644583839337858351199294045744281773681454981882401735461233337439473423537269668470740961954276300299988396895471185937620679794141479286455102794642452144206945262351725045098526643634499820691773963568230900423126707742388537369976173111173323296947027305012708571181479443786757964523002866850852409766828474739137272836052259020757975004522606575195123787487210406714338310763676379612086636595267605166625559278181238786576172245103696580237293557289979695695259975424445903230839765661134009277779475466585514728132422775621050131086058122794320545415735620627590890496591894352919169824472323878774740208411010677107764103250088901155169229356757625978755228763897347127916201606123654416576281674891898529280897695893184305662572498259718328819299637204879658586288175072429633845837001060883359295331615062723373649028578906311967027906236173783018067791956213283208237242500856385512793301660724775217820416884118627162872563480680602990171938559874708159774275839846877732462942382749919918680363121249237165949185502473410306955718527962907754948247711322626688709650962989987762409771949740554749970698976733600153932658828032058762812776711701688711825968520770547699295295081600770286368165428643162053833751159554798037155465685834393174003209816686925261391425652150074901975587575653455670623779876686034978934807689838680150200408660646020589157469295138155546300571835073444927541154164663224499999366483831994877999835090467239627911274383424372377979921984381029820763928752685286374132419496908103911609015591060430583498846556084397890825233685077042046615692174653001432887837165014573853410042318036313677310885481084689488166125458144682350492528512863807325528356542293595371295499780614775051076487323449284981462542707607759451835949580307461874281576411943493124578430394789893578863779152273363484339208866447080987049205815164729679081494131819991535959133214979665758811148028350031804726593226437262218419431097368167296513227757531368767522080639594245921562594634375808952694225521609979452135820190395699505008080746522128209890866262256137726598027152287192482709588590253854883285861220133995613588473635848476947571269570929407593180908259476199885755542656076530837122780923901243584555480364438783281181578587552234608226806546565262364509683154934110057877392654046364157518127282704704221977833658286569502927039546420663450399360327557616875337645192827761810161615098438084670192460262961674367010250916735284237174267442708923519189797276062442484007949064236980657996985286840590363494320315834756184294508964952420789206267023419193363204846333399806549749170912951969176553566188142449522964628160290657646139039169779257797965866600666627808421604874407273956232780875319364947756224141137972345820832247023206539925225997175318550663413692503446711736698456603368559608164596549229891158969891760488256845962570276084118749917492438094794347989357615764537460387884867600943583654847725107412631741036226481188024066900641407205490490322178191134938651643175805507602261965563718088978129074425648247153956955148102819653141822065768584661579713020332160179829658831390268413232296898624037219092305523520218252750118508518850676910397628193190797667596589375874664177852446172441753871208136717604430111517984732080550837619525288392685493356346206159840552988566707284608650910139245391446779456642584722278329399334301003406944090211008644756235607871179430687834731283086016141700832634555562143502731124728372179279537825613770650357050554923935231855238008878811877567164172463420561234569614401518445864356744336887248367492386282440675925843959467669512309660370864719419485332650641614882970401254795469075641553580197166312682114678399634467574570152076987218529628477897966721255774111553211478414044491430210042376924543429240009583814586271385293315376957810956403634149105907009437875778216678432621035665682436384464094517337410581570268107021659850414368079578086660374887815579522906448612732073208442970283082963792933299656821119058524801785007725431509451963829154952521016458670302192229572199052275719640101542430113503554132582169166363098701765306183148527121840489050346541660287226551176550873327101808375216312284003757169332376654935136265353122303078711991733195016733176805589396744447817953087462049517056949284878390123505643976685373565376931210580761846173746340777170723325978264918917110111107795018507036839183608621094374604266188063984603411666469629052467148567641528295013474518657805979394805320681736724748548812732475191074128321577355575465150711862786173979172502486028580299987065333025777082722777100705875354094015220101840068231271387689481570310856046767635022592510126437432974377826248115393976932533713358194653309221628547458040282240357463998980093080322878715528500116503834836045772041641814283403214311756486629225708120512758435308455657382460651257173409732107267568637485212327034580236770670750279901719173363566587478829402897692531902186638746117740284117732090538104187090483323622868372287165781110831916012186001199116918599638899633579910421118152058719495672066492582485811016120957000541225237812813267013366294832728689680092105869770764018015040141595335277830890306183482616766323037764015082638393762883246892375884939963938204844398912170767817984081174831824390806612379926671604797070277913641175800240317981388068844380574974336177874901173810854521927556284571157321003954380046851186143668367571294775649022363861955230930572235440317325121964939082431285745232877463507510750921612189273182074955082069181970398951718428066462808875983192443623359571795886210530449934246989681401806510717439226202398771600683913328365855351489756937268410632429362374889294502869176783457976120672227341207295065934314473309779419337630845343167080406832270922078846488119000872311448793216061140164101366982797254526246888301451073725924198381735254619414669629575951009504176872361074632163576664247773100879855960319829280665164751074239789962470486285496444436719560944103928468614316183290423031822823469440244176270383755706002375405058971700594850457146303421201302315170519631958333491576342034897721669994802342783719616253455568748737763265330363516750641689879360169757090169243528521096210406142162745054789205480925629162005574017725768532212577157173216401640815376322766042636092107397153431314184552446970827080614492834753401096941009448063344340802503247167475464443719944618293190589851932221883490189864759688514100450053929798548990465799532167782518601165886632286541231160891542204844466037519020080010016048202957070583641817117237053884945853694849979250089500686319221816745884535118184474402683014787446606525872693089149096540093624033092672710787789544708833894516180182320196586877339213392476601341370032559047299025863988126833018161174966969231877691218348519395638455135596306558415026752941739305383391034268238133650361506263141174069740531841901772569086471040213678247119147372109858525174104574358673963079074409843119018876766750017152830655558492285505341337288153320414892321088437420441682470686902277572000591081902660100198119431684598734712826412900591755350163264698859107774987527239504077145923471554704015397411094777917946754464484561995437533561160322608514087573026243773111556128745824518543195774867608841995343100205590076202039347267085921926188922226823761926777931346139550873269438872717055958220294210359024831272590461801168674918065617321194126927533923776753369379257110145289233214774749439736112182157970485782417406726363929065089279810824184087295049466120056389839023399175460978382386706171183187740603600136949496712582764976051209943156872300415513174792031096304831680456997578214510606982681517940423619308596833287172514235452733263739982695452211371542062016224733563341132662459081339750324290598489951172578797632657108748119534739288677353742703859665588388288183711942339894399365681113979135539883640402762235002353596670390756823382449505299625826097550589940080151745127675553752777134452448879735074419704742938211213463160768005508117250884863515361610195055877540456130762783712008343757344773462153368389663769526629560916071474477615099887934111017414715673216440246792440807787791071836743603724342670577874535783829056471330619021090142950220697891851782683621564926907968578802234915541369016833245040851683179311207556041835892100017080730905977903752284547229855957481178471269335807530741403325861788661839710618621237550550195198230972482336470892483573131725673666872924310877714980118818396279661722914941442987927720119880137985556231690718008039193938689552302353988459054753552999223319327477753042427992895431357090824130222375756241116376128775620420059614995608909766188732448779193866703613325998963020668160353614652519144874860683831670324246775574407961870452102502278667411884101747441030177427124847641507759123417555510375701958064849980056272452476221144495459907297459755088456521825455185086648766615543284685554316550380962399993278479413979924364125045323393080051241013513424552323583310983778072588533547500309103515895847840485692193275701020510983144695064562715871064180507280380416904465010469906142678921019287504362682105062795879251136158455878233458827205611897997413387025826811910933373574996191893326404373052560640784806980799515258506051303478008248224010248115980818979338633120759774348720155745039954340649164288193412011535885840982115276123999462992799432019272878350968796650352134553255703011479710518516762286472591329853788206994328062060076560449444514959252835806098650433367708993497634127017112525268763714134662024085560987150739345367640828141654450121706789199831672992258947992934750612035942193884218417538177614666406676442723350350340362371718543332654769303733289508309851173386422451178745464480208076435269523442660217830639630560248363121277428498517425069753721452738485359189631343751669222415264616405391372529530236929076883794786265407597973010259769193976978255947359567555030502669617645002890002267068195482628293985782160349701077002926471244495748480118713234223436721411553019711770992887515914153376044288245019068033622652126151246449715728376973011796341235061427617152867854345382400035718639985511235709339550977239890129131155129140761922100380289841365185834989383585483402837537616275032967875708333269158875945561178169860384673266497784077805560063571873032648999201925234017259763677462545065271027652658184722060995290926807571518422308083356913516395524271764661719107892605723888214341719609564000978394718346229307550637334711574123037661603402769402664624692170049654882689413275740639959399242723963175365638615052959425023301887254862060509516198791755704628962742616463186855802343782742330316483735299959360929108793084951936996510815980000339668006514338098385304191657977623062002765862164117849870345475777807431128154045308195527242628486143571661403165980280860091608637496370795960131010831918883574056944853876564441742033607991646640491090690001273867380558369222744340118625347779240965671354468469523868434487818565201223857075839127828573519870494115656669007611006405084083967868927147383119630199320110384816029657035614549089939782723471011644561188304633700909123480901122558054900982786781854022617087660221908672951666816794057876410763876560762484316056291972257602078587332776717056019556550185988407979811564973424522594129792381714100615400743495690375074812174988680040986186152300049593449772382183579357678709136636572853968493467163952267855222560442834460102609187157375549513201677914026238899966121934216191735334180690882020004311363350552038932919289390483778485091442702669681260188186856920069417365242136729448020584154419367578391688810159820585074440829282197110602977460442811540033288922965858592880879686138758788882669392623113838908148910862752773798719541556976973211940322210457561398619436344745209492262070080291663569943570317709242677525009771117467732794814854695202750271054518377395866665185579366259602684444686909741323119595811233310379833616047067663578403006547950311380256430445252190990613505302243331723761899570150603194327952203375436683749316136987578223779696787883377098936766201421669044969459041311922754434880373583767086147078644464333423826936661261060035472453780398083194855759874713956047976327880716416312259195823804040782986453395297909231559581697615394884998430398386985324851575324796816711745285151242995850316750114999342998088878258839563934793406615140846400601514072821441440163515732849135035924447973069826569163144270667416350519569909467000333779828680330674156685238071912872853314093779099547125696305911423867982291659031827412844581168105229898116755288275486290441859419730967073355820344914452767357010517198839659749087250484634583303666756709755233988925061674179309099397637634897576628220918187788711436188061629207146322588385243241992518512474064977503253119332341372948660501932594372070040171730590185662989510883386073799649206832375270495408211401830218565981378177351609966463807174728832147365693427678937390444325179797927411508395364785293297234194663542489222228692184608632373754531084722247438018239555666034098416973284083022324416520853982826699434819605956989176798287223670407034256021568931216172900761316859309674727958101557096097610379595107915046228729840525859834898262633550915157996870451729603557360117292769543844315707074751961054414153070394983485847281220342416388995799832719670124263411472891415089660293921972920121883213207156933303037937892995269927952824983563353930988962839698163480665355936402580230863001442609014519754900207480102070419871925499184101162582148217918090533274319776803257872235023650054898408155484910648401342699202089460375335802716965075753868738712685028003291832885366984200111277918945637148017236271236531798326097686473870288530772622583416481288345300239349324525465575879279479216469735550053340511225651454531383015837946553697105391286132371628805060799184792689195700926180041954092389212296911007744714813917728015049086464782472142978074060378443041829910650853670465495513689895495977343398572552497302982647907315735556159365199964630194047278552408187285429533736407700866120251065095214659310084369745081794433294935223530959340436482221443334002235675738532201718756168993055164378131447656459237072603150496406848064870152684181184842632788381228908151677503259028745331618182759671241729671633782486599090116863390353448710116015288067344579038018101164358049768406201832517776542940717819897140119499585451926762685561638941731444690222652197451348103186121440810493594441377728971710925730409114753171592331238417948252233589064706868180271188919296094618968754400415690848090182362005248830690732119707644684132056912086486561598930548102047205462945347812391505047389842681479508198454443588070343368477566794876254290203386955474664946171734406582519449813992760030597972722252633467150070064377517867855242426058754131884481372556104300658042945089295352259180937610273262355214864948125111061835606779376365553683424200133555367625510357120109227494753989655946341521214521301646506967787436358387457133161962670054174707389871555684043519592516911370709979887528819628153088760692809785158032441507753464968449357027911355393971375813558271854181350049310100142091080798583085807982915856393062097879299808347466856470455361670071181175958282040452174899719743496048157876717476856430079830512983327917721960505768161412044362357935312706771381033182298611266619937961658360900438634313450808680923227963275184611286063547395889282252772024826562996696349130236927814038070029707098732055459048138296740823306253459236829818289470025007056173990220655946046235641021388758585280051769244025140003166612798358716570135336634554813565141596710053608796513300608155394637477378257717329023279071837853038469572982504586855177095415176852713235716122261648258056828640772761200564279004040897731469988673784991013416527279689535479192211234478388183614237618886194265211033660283986950766441866572032052103562735288642995953870642266159111700435022028364028593438549825833346793550549077658716828747664239929601218987247031871657031226604137316994763600228476963361503972860466453849390005840346180472287442443376422025224036911280129937264240813720633312398564287565541711721471026078582133052375907475075095018005655258319494628276374074374691881055687791396660023516309340098392030621399116446873314130925825055899381758315181292629823860051104305478744682742040444425979381145421460052394269044173381923952504372918795799787896276447203639292850901351219097263971801975215398561712073116429529926553630934340136840679205101542113782009396265071871432249724866257441119648964185760814419810853623231144174274843955617045552285747287042602827090397372296750164893605005557537749542971927494318789299312980277819635255707281449719481689662865815999289997767384370535963863518478013008452293860862407891257621508356859107592988150981358796815125056225117704789249831186917667560253911864497357361632057557719542204123079058803982428321821198973567443519594534135971076983548964750969645237416423245918765811054184735656683568472111303059614080531120608769856946029908829656435264285995566636589844069084519253764146672712219552557537390335670863178107537098735937700525759999327168950036924898910875431308917298982494061483808734075303487854780271130435265253937162971566507116200518599057695049876555054113393237707799367156935791971319427282163943539227764104926700990344275837932394496470989833572257309235070718534307472111798209988658690404170157680733503125852962735804879045264255415621902426138395450919259311802369865637423752659498448546217367819367976357157356781912197020541458686259505909031154244005691497334929460239424121189924615564827742550353901870860900084573246251972357181796936188597257679629044310126430146869305632908172263424111231873987514564375613575217433748562730581619860457353503011811922211994916213973947159592086706419039590473747623388656253191602349183488546521379858692379019155997913945730978989199852091603272177210117366374266358092123699865935483022874453159623189838943585697916318357608599171171899889708376036564403500520988962610814206571075650868730691485826287392472167005038918004186889167588978027148774218021922528035026230912323851568446964553661620449195660050457202216839963334742205406138418302392488235235148918533307561593890211568200148733018326038465616443973540201009423542487305976622645294857640939316103074773684351336289229010807731491140816660862946239177909178944048018290440952150686492178038264811635523596793777330209031056587969871317377165146232648942836622723143843593739782501312397955310221034321490661105596637711583881268236756490435088968863806935014087392307759805790443190480034271542521716077344644268839700694291221876649688118897264706608261279960211245039335445627479194659688990794806414481522607329692741199274225786305348644302751245144176698411680226252861972019397041392861320093152587237060122217026007758820815532068169301469353319429696999561084645636061138876211817436714949322826503200611672318552864250966083591791217473238406349968542647923664210056054195296277246406221550472983660419341998297040505440930401539753527805167939382129638540757070927013055238961860420912534416812104351331955374475832491849432186336389855747108747300777873636720136981168523491287900560614208837097511612076060900358804865288459110232597819441133331195098467402793918696194451809320704719091337383858742106047349635461039179866961143547449944775514265128064693341231512198319038141072713425885996799778151018685928396527483240002808350147429233392984875693170105249429744738846439681060497401413638023529655136482253787085221673929750028747490870393379715300908585550896805120366388467692724791456544257062093416625350143055191753029209086607947206916469482529748822451325971097423826071700044337554156685932176306586533898724246729187907053208223314410007805200075176804512824663696573572041211473736749417096592141855072643435319662362541781052120571493074062610870716896971258446775137544492424417694726012577517252723264190049463169383878395266268552864746499243146114889968012376881586338204443018174369452764896456422782581455449315792662825467854278233949569121363756808516801427191205431576571081444419732902275369687511760952962653154618378889005977255714436044486575032995137636896987396777814783888741821677341811169256247615245543681497096925456765116274470003575541949246189259055688352129727766907267835519309292746158252033259847347066211724547035020568814401808396845396216287533395921134783474307075885962447336307854004677027485761491179785774875336971694386287783389446170938905003211410726575900678244265568891064257914537373134954735678181728045140968785610362860064473733579168152830989947607631915199980137446380331815502864592428773364616330133109858978791722863107289896038007929662194740933983323262069267552588881463469457945492083754305718262565988080858053310680282116135264950409933606068537567366110499233589247777654372481140503331324900154077009537864021453821355396245259793554689229108672584010448518355703574481388777442297288264665283038004537133801813947153298622335584656650219404908559417448302737455833757722613181306495548932681285348646685245659801498864987067656389575522031350362687628021685690154905697217849965123554540165294562830972830936477887249050687833916540350623209862024175103442198244534562066014242527039059043691029593109082922170281464718784511617252115152650654257555487964501291503946217386771729710429991464164361874414292616886204280788677378749840884553464064901102128161727092169140367610368229736672580437882099859992132231094730957123427612332418469976594399618917924213782846145883306888528856127339574330714772599415516932192894296759381211433205992235569936978606678740551087158302279564484206912668688005806135651661195794284749967464081981978958869821187032832803087317457804234070141198088100504544346109928947524506023723354465265427227721328272043368203518319278545010077407664292460869966214482223900487258918946771489983410834415738744010953738009149941164614291434780962626341526263899935230577792710139848561700463020795890265985920496599008541846375520435790870148193456591478765298148783366328457550777503313147564842708219201985014115200120023412439661354733236849852578025341991302953894881292856848501163032122518010843804874252061729792467073213521793891547499922724620712711427597131958632649596845681519512625426857655201035144385410658696000745745558673349771615248472091296671709662113690616591058365500847348256239745802877464336239821357711553685205953959501612154807055798871728494085030091099067496659337602602167722687591422199969512668900296669556223500851062173009295074454484863138296157656856815319307893380314551382004214997558844573209528792762077327221214191946804950208298345813588330833018719684041844313606400150369078258097039206409001539448920142119367115137433378798822560725554225468243699156365740937553160410478160860564268580471400500794407460893713740536632285957803701942908886965808416996189354051120127900150639252073959915194110005806461499438888330989926627260220247655187394628605342361389464083914671662820245597690681202771414387742680570168779466667617450235385671551676991365821582254968473301407173291639237027381491792344522457881460658849146114847431145816360363606337618653712241406721095361812012296725369084610605476608113384517311632280923670674060761071765928590260054444990514590605376242334818399998828659154582205562903002337948789182034839276134387328436334731372700629240578505648701945911975922684092738425005863400504033244935508088784224221152627032014506091844706168051663358109966981262845361013534077289698123235896441944257186648523786167666085912154579115465825466310907306042643376345536297490534344895736337376579563089290048132448091037957995008611389841365916815746479753852726016319349642254033247009775673623810738962596595806725978889021502879859760958564117391478390853921930357790078048009956523526622664952066551480902319936523258396724294563779517663454078053040164107404256481943064095852083939855478201374338598781693503844150320844786141780576607316489206418502805756195418788258317413640158860509627913271823883907377058921442164835476799017518681931126580293714348478077094593885590970795417241460318124885920752175062233185490043109902636650058016544760787631780890710588570984715136925262379047718706454481377313699128566525956730100243349413914416824622377581891629612467351468347106826552642552146010847379820582046420547215061181681343163380703868872891395288930199407686126500808378404502543638584865760665218886547384465083279031815720348191099258137853995879862460850509237269067512979682166241868695842450153596008040702511757267639461922189073812481930257629117834138638739784578661702732130278096573966912046577280457309147589605236103950488999155433330357435682546271605125562175695979509671913058768596188805834982305105137255955736646702329348279592251897524132320143850444106044239142020523551797841319840294620122853649533115269316668511652968804233761775949415455830594856685855674448001453007994792976922806400769379043563593545258552744400735733179323384150075692397939507704224815907677287173917728314209199830127897346810618713294779135414499906593462630417002503166430172970256174645239473681424750906306226495731051472840856742379110076691367921422431607869781292924050912027858003704604184658821928505218843815059379768634999768057877412956173196391909262561876847588694781283383749649128932055395328066845683043859696050971916523568669123866069489170271274036971072349444564111562579240789265826240334437231346629674111952172237675371362462095696282561175376697966085312123755724681745069286416921219892941591344703094537951336418664083553106308595101359546727181920804431678554118630922717634001924585767519864537911382750658937281070560532220035766466407524082537896111495628247191338153672799220432861392261790452964481223992330822734454697460094041838507747484333310094507007138847550289334086086083863121436752668252376692436786230936991662568833282468166315489896637032496100103941457850179572662324365132357115169099704509180911884910030949837679749666313158703058139302325484159901019228320153742537362640974216444532184947008844622297108865770143439975991382052580030370601430673069882935354811684507167660056311366222311877295615316247152901586680146952847035035525568429996066098703714991274558982077721677949019206846693407571978443469700711997291651537503610180113117817820819373649439451936223853061399950252325923226070889076536380350019169728386520476190634618055322730972346768866078688735705221082063499673810608273347839717514339545637499782232189359604894106316812623111835285565953047808672802689654578724341177687348282811942457576589315529907412959373486204373521006609651693364068791994491738249524729018301526833481976559903429375906935755624065509823932215393086845579028621968244739878266761293695211023053773317059534682939985618812175732666852912053675175124132360230553316211620640579253747342892409761551464329239351934386938136040993170194617871511040645381992080797846456842583945143915825876253791632151609447396620206606838679668844933591400221290968752798483162470204858006465625919097798170984797400564022489887506796142981935576840884167951848007874769921162056349363315236951934054219738288207471303503804312808116624336073640166576698156012906743811412302225961973752360497350179642590238996191877595078084710833717584739259721011752597310079538632903509380480760498599100522092743866870683808368871597489866638204716318537630514303581054368542933825059824914127301158254427990088690232636753163051079613896997611286289824689302584523964518200874646210765563977725583182433373813307136728924010891913791561974446235431860313059514537637766374528800191607685128008932966543266116403974968513552698574710197348443324433860699212504660595970943537120273775878530207569703876240022082540521690116002466968124531556231229627946010760431914250350386856878494367929350754257854465923649023494268052999230304282018493234001660943996368981734176556102653429418619808624601848936712974836073410581871106161203239262453172718979156546191818131897198932572253263018478982271303205207313695191435720234374920073361211825086489001578704388302528550775089808876266789331718131979711599461629299752448561080512152450750488168618722022726866957740813253600923108343462925130719433192707050449260991249584223123572288602850423262610119295388110204008213237230239431515892080034783633309591419935916374864480758298558589269106057759771096947794445685147084503471638368736498083502956068518395470209290487059411467653899125738307004148580487322401614989936105227923082265218782093334391867907007606876701694811979723219975836673709471980861471904820284143448595107387767223533523387566084350335599435481133452522034467224568482411774345272943233811165994167784746515259161316779377696254854420425881701064713394622324333807579532499248853432494260277611809184041297602295494518396618014859601068812248586819785163374278923255894798933817601379059712884424628644872020630505110916261163054942375329317809166557262045338384458585698077904191036817686895924799215851938886909837418169554529993522939916695858505717084756747460915647850318574326764493946103304447306979078076381081739749831842220018259081177136571577721931835071172621637791769829424314485947440030273191529510167415432327382370513684466098946598772733926536763931109003845754208554567788314957322892617012892191634173033862165482989951396109958618281779700394893968240305313321894162059153297144517435691722598960717559990409255418257733528892545449475895361813873652839486409466429623822382146907174483749993645507090078828377595034216795587155299205937724675750991125880170158665149877786699768771903750898087035362693525142056297552535702308939142093938822554995199843444871304935591743420554636295136150854337623629695979638013822331884831122685539079180255318319514667688843603046905181338204782385379621017144122806619956010681422100710735657251044734330835964957224692386747608462399321706132744217788125315203712359599847736039179871623766395318078006985909354313849494139290370170225119547762148181765773963592709708640752869594288543963945781671798743354158935914591877122418757566370478675862285572034385759791331949826386462617094904201063684271352865332840577004031392139315240621380824446689609903990717408049004867427362894565084070691452983820783944461137454712069141823679090703220465957733493778028887481483310082580934258494616518162102856518342564791684161817649331356248365305187738257547836262628815085206851218149154019422616809885349627465198388017239986962339715374157719519505395021006775260187632774337794488418303937600375789161959746711981033368573594291072228758734220210613378712012889473703303515019797093859225512358123742062506299738049786671992695038569781314262783193268336477311400949526447475518872099783219811548962038856007096271183076945249824480643177947954295743633263237808814469576005855163305451224758590478222953544987238804007374886453406814275083012874079297695663731693445648794353587585804954874343036121009467460479212198721453606424529524491589970097615612686270929619552943842369152571768641483873021330215301669759512553801592846337003413598601062753377298094465257031899667809064090104784595729931109310322700336245601524615285453934160014860925850981599162744413301002140596165340616845796088821309152672808789113841890121596668953020997834954986933376443136287430008766056642647402986792465275782892136139307113308633336960845588525688005517483353801328809895980498219956785673527169569693030670866786290780554297081061126127692828622978483251275279529915020271367258358599105743166938825903066725677062104536608033718794860575615776134221474829983463735868648794967235725584632083042157804611963777480516805153338144958805895045171395076711049198585824423400542408197626837026378309020933998407979603388424256415904277018537175528515931199133209903304897998264433207436076232649615870623866636889291833302302951384950266115844094179866176015166804036118039317864227353836808589882075629971155485208409279268493666707766522939222431413591225619875414328038346984044842553105824797057812838451621242209483034234364617374829496689111408855937251135514306875255512465159240194629168836025039074071164189167653560939647806641078071616052881852868308703401465673859265321047475093928159686351030539026903062496555654816032480033934656628302837322163073248176583197132905150957546136896696841488874752888438694080442203234915383804836600231585559106097834624263962073431084201401736652365025870073962978934613231157338221316252793139780107321990507364264798229710105326911465095414794013283346346624750195988820260775759536426018776683963760602110927057250736563201066163916355559512718812364843410026560101974948805382435523384943139925022205671641467646552421651556796256028477539919288914964476903992842937610769236261825046380325228252371824190975947568058705691769710559787499464265193674390236993093169097249965808657763903936044386422464391494361562265079091969051103807282685734777379099453239855426516557414528414148443057552905504487221303784418670542177293374146098598240527199219732099841234906188978415705088201796702175772183692014738360567049703943199588529190457712123706094488556777403270475452616059586492301030434226175150567877516802740842583397443870606981761351008972749029172595701628676530882167126509676802059104971284322283921201895097100872894374415026106952650745403398787178538980619367445719408482347956690842606191298044300645290235316883194565655098443424235154336940103776690848048147929811722544693453239579418199159697562379736324189458384428377664417546681060807628599523162188287586553280259964917757325395566215076571177533518089272011278851828438196868386717440585630206910143420154339964425471107847024354545994126477001389079729302286985862897926372349074064489327536642608476896278458596294477035873758793263417557738701004263929407739233381391221605304496843734246100079448409047264604879113500014093600078410959264760134369061013521119281360643678500138900394003518327313291361037633512805138848333445968450658556521146215498964830481451490295715679482472131117114567079763891668049849084913285695686513470417758311337126802869455658765137385953286957790948234341524983511049372792931593081972143244389434183329796379305280841021494971765520920988440248643583921141522565113266226547624847006451026381800176631301117612563096133265110004064176045918436229751723428766237978072489445939268275229878233021268232475200995381471182791080134614081846514416986627637959018560160798693965699973632821797554847299404633701444494200421890908621304230593105129242487930074335127041366994033687437713195517757663230678927363291260717346874423092868885448705991252600366334215656553650393707894259606845882544885776812365958257258981836376692382645979295140824769753633797116658628936599538011141970965497169573726221516826221481516530631249218750720066095524552508363653758172252641784269850580416085017206022251911395887509050197357979770293581320464481106912996497797447335880392032373486717283745438500880090458964657313844732501084334879467744409145732528731522151000631567897908753645412759075818926388950615774090133037008751726509820420997784879311093923674573966186531309317483323172572307850747437527233376542920777124847074805463334574277712317243433451739886187110381015074052824331679435784917490552468619425247874749573594001074484936424328000716342169467617791344728001970352939032177922956941763915748847613610263828179433987538863818140925958032761492357517242944037827776353365585430350378882023118638966991823565067370458790635606162308829491530054665877524321537398680061493866694612532794312449708624232752499058944146929785145505423846073489643995137816376109737634480283107643486273150113647492893113079614010676990750952763224640390346496797689254974751966198287443443684223758789618732240790744907866284232715374410463606794520548981453790679090863407954864702036957955592021582802772736266152395906041350211584899417990311242062530586107860831954770811870245007046025019779691591628194670768023589973968528411660314426666796547497249136246816194593082390021467075655756738434232070776878584959170230730295541985471482057682522070397504247290036223246505951486415547750257049146945826007411407713184302120232280017788232047079460891810612538128581870016185412554989926658600578512577292369844454392552742169689841074527548124111612770408610226387919129070193275534224256358624328618404555960270452442309027533197916325676093147747653427153193030823617599085569465269691109747792536873458906238747004787869371559795563514783658979448868240160599717929141706843408632243059234822220337159107462942670475798149446984304633882424879705991252699720880880494541382268518151241878967657725969526693332686884789580623732855432129278503083480793150892638036581576101257866625341995872023928667114033578327823708217338058866429149309238288136646721434592124890179828750811922941499051902413734670777524635391162198673930928856095973584264518645260941986181110572103705560397588715503587454996295794751046380107024897191411113482234716995352651660517352349490769556302077860150890264315283116971106828441743103716482127091784387971715220200826319935592024588878914309650443679742487641540998686048026754127898640288777849001275077931950500733726377118100122536892794927664929183909586259905422433645180579424329006332987507803986755405071215480420836243568562554129727679970053801343992499140530463374713284068062127941116681349909484584121389908385372898104894955046570214855400134178184650645790198759097597008373052778279316457719368429883800862881993300120233103487245772930971339288647658415164549107072462323407583580539862587992938610338147075250907121810003000779098289237203370359058699690558117215230331498823828229305332647754299769231721076141889267102663707360174946456558784380700916923364805850182623451645078879366962298817922819911186576519190659823083267942385627659455743535408786146783411917672807606746936680966041430405388321130681275173287432167198310070501841107126348860227983987728927335260396174486990888978449643947610122143881590480476953618355896940718912006382827597395556406108751132383600871462857787322823190477528781988704569756819121093606525396424161523563177630346787118951232928278826155861839594974401549272077622997901664259420506867550329802368977067178074504361350695968652279093148407367455544301111513416588984723871892954183535368571410094171422107827083174952604055682870185490051660568048529139335717038889106687924369588753927324542821324782892993818441098712795457781549214409284291303436215843401776747735681463827628604920860786259069869520193296243417563688927302513868927718255270878956886319280397122836480161463872648434670114980165522645916155609572622601898153888959862955029237164189148359344979151198767547245328832048364317113297974021068782288593777347396275853469807810374910051019379891006122029524918075552711933072610522533440488170447976182789158182851238854654237690649079877315033601607268544924880339566718515264437249694590529809939494740170617854553721666224566001543200545533805759962257881663091560986783919520318441638652063882012740509822692293571657900401346996084459544951808208763041091143734888962967338909550879202218098838029914184418264203828410942885848005898164213922109803671805599976706694049945962146403969189053773804695638455312725094322673935856203686339588051547307073555142872961657549770981356075538057946028766409369803925323844313608432518864237938666369150707823466074031405176842329371345608277597708789030315140862999073436189158513222763412203370372683251448963453106873259310715441209351678429497592990391521598379200729146773170736111943300415167929581987181614604113006046132581139665030159441445619630159799842774381218677037822170529984429453528664083612950838825267699011704577861550710404185927873231535574726162000627231914405167890855351037454805022369662761386485750521044054463359060203551650383765093536296148799794834270696612486363170518861724859861071333113964844146257485195838195578157673869614603562356014409217265290731489809145317688004744922280727936736409405497461434921278269612567387463935885659111408583878550131680929449942595564119290012482512697513114879494936548832510161774428939982166938106577523043273313757197357216366006215083012206371579365301330377169414934520192575066317283864066372102972520007539430899628771329736017191942695589891725239382361026960249773242524090793818876157942017896837873313812571694041563887209449689504711693800195500017350690788622224140039854803971219770090913190396273334732167026391507633225867703778130819664996924113732221216428562341627176877731777393956106315474223475785890811284319893677913966345895665275242989868929011629361567010884261783034166598606075269247072427588258661524352657694613224960432540700704350933387777223639978076980491228787966601091674440112744494742839773549092690764776829520313187098940125166032988060097977741512907900259992119591693909955567289977944946484317987456560119161211174048379536397466504865287106708644810530439149327861779033495955963370738949329168384490759161574990609637285077885573369255434382124477724425907974269939083802750165205132234417098258617739266424272025701863592139733052591391442625886951433698956181617767657602189988318493322557896060407581321297956925422724009966870048163955807267041866346811391381651005324502279335080079400336665294027167176551053381315218130912204335619102140636252801392822481411177471726233288356073555994677742159630995342304574517954597575240519320755833293671789172433469725976739607578043926265621238061559154613790081614875472349870029535134104007058488559190937401353206916213989640943432403737531650896860240215928531263380550940158922142176751661679500853506591318821735561334731314386159781959912143654062855631846573458628192637447421802460668322052024950344870795031135941828790757943073127643980778784215777930327711081772511560695772761529876617747924269851615452747379277987608195520333213253804554666259677531798496193879779774267928718072904078564703886608621275190818495982246269346472185276155838583926146325691971046726105513976892038829698371032397937502692447119918805750754703893358768556278532146277312134623177579846308680030400679216707449225301345432264298898848727852749327436635892363604017174331863313687007646956680329500811185241182086176681346788577972619970052305269901506398417492950440071990414927737307054825989020205030936056000832790103389270405737092620703604838106864557844685053620708637291408186284861223804408142754783877627669506111953876839160310817015396006827363835605272905998997082557945596930153068631694270000008568938651520072389609513628021670143217457323759143781823854684838649860267383584045252137041887801957965084040406689645986317297015271376613492992596888251586645813968171366656450023376521575184593587496954537544358407657296947148348444391448943492065828317203067765155543652930084350946399449367563295361310772386898165628468869886223473838810055172518618119941010658500759418174760544197535536958916717695243450622635784638264800450213606438595187936908549585593517240658542484517330793950005434972747524394412595673309060474065394275666458213981443025742016884989245288534712754401150098964015306243660881582240601278994089440958923590947869080742260331139576894259961585814433306825149580767655231416436768203601668919446614373706081950180580312338846611439513298096160149181703210407977035450561719376208468016938155661797832822226439235410845956006346746831054057613813059563285147168210579355995605802147556196873819171565127800113661318518001109644223808068811065990834111555912504921629621201719692098127822696751446397654137587491747742074682053263712759331595304503446071906011991952898062575800022564250733690764051897197358627407076363885403989724747014008557096669895789536199546305679518306387596665973497744403423487052676698665651415549585020434820187927904384712052231947320194811157950422831303114356803115789437250857826196255956879080703579663582330950887452829586710635974657162867922720718095255244269624403948925117941949426396051844090598444845792406713864465375809602559037165487261098743582596098456869929340215843136966703437995463520410603569867420950624528648973969683555174151779093218690257533653431604767275014466967638313707381048402116367812064308359082684693350678409214357191378906496957923661007146449800850198627715386306418401812930307009300439522913276023282475808894244899566242068916574022400066968412981492178632026876005497698579736914768754963876670444720168801892368117015960572232066906984692757538034482338960867971654395399305374896128960357533352567209465590003850034561860914456255106398402737718219840127328091486134327629417503893618863712326731624560062346127181139516533754806094562090660990269000175533536047237557343736013935676187729301900328725487663721589504682789382179763520938007116870276360033453218784199923320203443762311508132615301411051185977301981835497892017760675415788088856246036817486117757050650318710023788377851029899586940587793536319570072356535003594747725271083806799036870600636590999886167341612756148166066200145991336213906333940741374582421666045342763368946290477710419201615942536557639548328353091186878397399643288049079747402602028229566341326553595380651102899347404613703126192293748762505886488021996138433627474169156277619814889532232664211930813633130606114907377774550918687083448074656829617098153676748273021043907373170510411068689447837838039595070509813928285928813422658379633615719390742488356457776699472164550618135970333874218447365004423790158120719985188659423069441347793811863618793613832561172900127184525726803490873535409906697272770269501373691167292738853039092682939251825050746864022211459997936500301678492805785631442644910779910117755856420451195389265613114603589502560049356542139118615479452221010414241202692244735996002992990098631211859080486644012597850397929128029827784465453203002149765062049703533011094939270504947021624343387926686925404371915474076657485717131079874726163708273718466746901097878579696224871764332675334953640895111077723345587972484672867769307480041810907251842102017941233745165561357206386025689933939477486025841998558038703332124732078732346489962988418445924711143973371553933245000432639684288894365604889428412786929766501413523650182882681346190012507835625374277814328618765082826777549408032457761986340867495748585856809969345754896404131034454614481057091559978891035868331769413727212547216643437108720851896042537164023419531570226130364291990853030535871842425788197881160050797371255941991070430778579369596263457860573331874130571922354505222342587033768915272479387323055433911525995898905237924423857461320638924956694388841362301494326325977617554225995430248438668782629173780522638734369357722312104087636761254460531875307478905524587791913373737783323857654350035086376109131935315618852349014228770567873819128898222236316086099542372565789410167894669226521572118443848796192530406006559123147400676197293360693148433364004967865689572386468668432319189468195571568491506570256444019306195113901285477066303693081046196133519231054488382210509911795221389625035814122101372187888527946028067069366674231779586114993702025170404799528947939886350583180207805984358752737853975310892151576733264070363142576587117396615065155460478013940345038907142389724004397521263529629043139043413070517518095386463791633358107242016729044387173654318860269243060735844025085003378471834749235837996553158910856293660272365281514033375431569759841800899842418210957756234993621595023627517034302894126775084951486145647978845627813654739343864851498542423571828221522033722545680038175739127044048305469586490515110406726855203490623381547667083746107576923729786205388668370114920092394101604119381966818701253295906495058457589999075257648643281400658330355076150105247267555101973768259639492236058893649953244751742792795730462203088727484718263469925906746615374682319860052736472929069609388238951528420705321126323896904572230351693975959886070258806627072124890178416007856402740028051773054209977707790796054544747078688579254302088727873423340743727675821557750634619240058882922158210848012098389268264383053193263343324352864252181749633350982821153807998422345355342849174443901334834240348176108732647599882452030839719248445275564378578231623352543238715338068367147850361860278218582712145250131992588738680788438192390007350156451497353402246473811958927479221953765312393480822469373386320114699195522353888767572792497899846429094426792481153768656394179004413486629854076506198548796718565269262058431357364776775761188870018387286591491361507783510599736483428987146122470745757645434292585870695211701048252792658786311056340374068220917842197753921134841027826505431892928977523096026401743247522298422527358973459348327941419236375545943126295749881572642476100959114717467585561934164252754412420282134364995846094098403897044321940344679635520134166165794498008935918649985902591603842241509996831660128265257567265132711076762713985171010887027896283681736994407126492695346306303073649105053168886458926121780108176081435288914693418296116679726917602852952661216239701647623122400583701139967348082811696694297955626502729600151139331225925567020789158220791355240576218131498752553848329557681554581355422120159164517736681321583986701553091804997455536341721557248195474412730080742187319486707335271665339669151869673790362357088228425105709502044884462077451993888640851840041545890351284479222943334361827390143262565450532355138494088940414787755154499603183060135434214294292140105556967989044522550563787322331925407426651585839562272079181836860229151633280193941896748977010053423936529275092030550616885436420819851641283896572187960574517943572468133007970053930331991363156490890164544961161475929548440223870078697558531820091306124031629389530668315251951766995783733941796835272705200369866192425750111814373198193288556854687843385140507456975431049926689791746598333986343661993568831705660050573762601864869065509663344384772696558124199917898412788696848879723936601164327731526378522405711664244215735145681733923192406620172634140303181914076558459757167947544593255424617165829689881782417420914935221898820361858459039951859285397877618800108297836774065902811925195160012774529199070423146615872467447425878783787502921180271696092448168327918471277139605752113431681912321330137307756218268855769128362896433951417294068844166454603875784556723503581620470585349287993530172952086258357159539316414832577039981093001690201787691893106791768128043383519471320072934750877458309826064041369200398621522091929061896600710040653642415992398053143033264435559292381606590669233411124680128783949756929169248067239922372985304290912886434608602925140385045310446358761535935389006467229650460168679885901975077131984270076897971422091028418250671077505457664112099451869715416094779160934833951650172071506695909640705692560329383521806446809599789854324045057486775233732704963613317483996419401294893343225600067555377983581838841479735693750513528509491220654016419622274802093846064655920430679241730563253124961667595875802523503349190939931186771139100976516886838883922059598197480017824545498840391085125845670947186396135240112528216613115032605190172183223974591163251097900191189457145544383943381054167500603231513128438355475948528015067560127459607250367002915051944645898593899709078790093744810637654502059964973910137901824313041459931207759276465438487180134938793729106801049436778279570682641395964875062774912557995537521669307296974126939232942751070972307248043427234723992279624407116442494759810431302141387682003580869968439318712875897185487844093063621898364684726462229160325734315087745215691323515491759964917291180011825320862599336207821813755304017190430294928432612739832898865278842076492947807566211504560138206516650194501040913115732104601812514996186884948233747340938932403231154359695060542085564499667332740701041947417661128870240361807907260091080932281793804853961598439794920942346638366077877361772275921642974469254004083542628791477750130232150945908709070194771450652146238992282484872089034029293061870689159509055439780449784541594397983369738936751958001723031484645439979629380848804208869986328324838078898390153069952427544112382283949639518329860897688228795069629536579391778144172514281445944098403714524119252370268384051283452366779824513720922801873752791958465738488829194615652863566853001882548640937816736354070562202565433574788095147536998320549261495553772452831223633914616733164245921238515359474276382481918581099932842564459079746644089367479310008465228510447055183979033642661891508691057674293022510234917168930793425753618680606868316960803014846458871555658504486731595744167572312750710036304200896170143797112219914102793313356513875698495454611574066436809083733589047858425844393066681107592869816516196492539494450835469628348375396331695881125348144795649392107509234466960523818227197203544171707856743493340528140611919516063705612823090302157899597609611718917516838078801293047878414634209000921130486415442877788886795156148809237899941909143204671819597350961081140865175910108324423310982240413369000559155944594143809839822253961002773381999150761269039336168923288465626419747369407842469101909778924057271195620914993908495264540373880259129977437400115462796446092193150358035227108200410007451512876911458536893614985923193098003832105588203892033215526667022038682495635765629999915390440577289846287344385761054063349775046245445532153817137689784503878835179007882953518770531919679170684382596753998428152004467088233098192488390260058507451541507286895049099094056107078226994057440476845912409874471352157691940636127993887209695600723825214339063722520795743451473354620408783079339458198633117433193147267661689086107628737206785189026805253621992129909178860462052088356995933923336873988002144240467100092018740120612321007607783428264381336655359678471608607675451162505456886528345847126286939693265230808692895997878033803198043983429907090154557483490028510167480182889964316234242474789257615403630779980990027549975703109337071677039972431334487731014190784798675972401247665344723461393018324201273707488545218011930893071293192310758468551917222289485596824153926751887519472267766426213032728150385917116191553067301900499786098776859708796515212084835492224042124962354148583017160365152893878262296365993734222226486748313805198698431697676097235666775360037073170161257525147756199738087040346038785650731084374688230809859272917484288872459730320472161023708681549952761103650261649531648265060656040650806307401731991707419401105081258007284778480861883710842944218569018351947745110446931817496471372585479981708715766357190851187427861108375262341346370554481881392537470679170938615961028130118919710307439163326774698627093120334865085714866599139785703580374168644165005614579665027891052145829022028015528385616200350053902918300455839744305729853464306629769509610230618530290815997574038094999766086318174392606419837867557024880059070511655012953390704164433905070870012669253145020829538354303545084574642045668510173559483558080245603143994296925159784762241713336977270617157422047333858901182381670710252022720071507241897402676225274396381255648221656187397862084955607271663174477190499546796669184836229415522909383163075870380716222708798622305908539356814156217562689490066095736473760358158926853419406982695118345862274276095529332557724745157173559852203648074097262814916006059149384490397855508815734574104311605976643013002737837084683856259865017803612553678337829642567351146900154252393130797350277544677545011284735024218703880530302241092798456195055186690850217831151560958671489267643575284666255163482693933353591228439773933187735274356003203694233580404224740306445372545839836781869577641433912257925500341793186621029177323431030923699557183560252219814163036192554539263752370132074601135684978608941246367844371815134308559685460771265950835475098748129479988184181573055602458868712299383770214671599943265277272092648285437755950536785369721739917874085497946740524221523049542755434133879567369709726579626122689472039866793263975072918292097977968034515369551054874493668866583356352646415629755326046177262709938279121966681127316839080297194018865108353611334214751522768849362612092399297146477892838871698620490232607901264909215017805537851321396408182059988640331902538700295804414148124234801598141959876728595197913263541367678540468270606702848432036920045332820559792922420213306356819649989652864013434133869796836111351718421815749498719343287113898752369427415286343719159407546240236238327587487478062057575100534450323256876774255541883683103272046144150964991127331919901042405470890548135620181118043253717479486447496009402880552001947144976599097724722941109005649538325717085986554508396850804655145402871243673909969336803942225505084065670144521374649281420210206223737489828917708956446704800734310472550271411432261513194220056300357938057745025898825430619354731415244015041653460675002924336210526393890223318600217523817188673573116209123353864580845861593146215025450501477082802099639305564409316008689198234736953860037906339949131354161694942267980694744618001050142063935232842927107587367367266341856496211306887242120260083759126558373507145688710686393733189766657859533335827479808519799406411380892980632155970981050993078963570494973390678522948039833365361822849330137019228325727706315274146751069986244436495397009271749893530306072680652030407070885766450860102876645408400060851963527165076857210774330011761910007939004084256313987977000329822736422020679999194982365799467554614074974685826372228662612676929184041647994315671913727482432641248922589936435090167885145343916495712495187883900185590876409208034535385049835804964023535536289392749477063693996680840373189257124649028364512395605080820492166829140083834805317388381859168430053601828753747762915830529429125909377046697977097542950822252048937807292028692533791042926189828814507885004975389696578576528358271582186673983596526064337382359218025349033891822235005432157039058923646914834189815499884061182427540253412262212970482213294351341525108455553952832453504770913547243599853723585971170685169580254938513909308136163268904316910708340322579130441368884549720063850397466647844924368887321489061268190015980092912360114781061095597925001155555946762878313434243438805835854190137539971398176599777030565540528014130046481702094436971190926410625162693484571043843122999260478565977429189030305061510447445341711776803888166865432446538110583592443013937554426341575285813485895160445357435534395865439342297470093820448510637353215700981338960620761627197304831731585202828340912369450148164221455256019973294504704716852159964193722809637553470527786177467435738881951437573253139668533358780525287310719736737965622802651113196617742463514294733238274425738981684095669591560714148946315106885149218990947395919053317714772071172609922257729305941153967094546980381979350155377311037876128679740990288486965140901329522221113878756168248492743700296807546795354083976457910386249175246139549187903135180335565035976366307397424996954216439638776869497289285735538723476827107247826677650075669538934243506113868597296042305949980331623627999328365611508951464313707100404701728267063208639252255643890064349682061135670117277100839024053626195368593829288876413901731213549645717809470367385706042424072717259576581846242067182357765438988288505766969632237544946920885147875356814340058000299015254273626445971154286223195441246779511257690631645995774810028794394240982361784822511924953108727113532320018730286975575544728947135312719114002458097284391056305462935537645184997976068679898325989257998544414213706412680129112094256238740405286636105514262270332688474873203311054693085076649411129074851534580739558016132324076976762687884100027054413312459203801314141458128555197532952248256557257785705074441324259973727466704249282128331429986760026408441589398330489361867879670834623256667695506442207323787883751461520758756568312776163291378360675443444381804892744235862192326899014371251600498839585193483091678223320855398489807184570591330380766969893836936361985807568398878991999536932667149670023811553414514587710262753101340919414698225544502074850796703205739506838942680982889533155040574422387514999328058770828844357513634358967456091876021773155005268722568655621323499079639985250728347412997558535000031023913627917803185760543458850775738969672564784130707090551983696513375338970092661516804219238991483043637637317358608606592342745589147572110216602999712550981012396712615043872035064710232368967090721795440674073792306046780574767709441248054065632890010999588890995704977458485360303582804954329562899910965761564557605875370264476238468124895180223584790786983447921424035910211326263289275991668810848609980803120225111258656710363215905791470531695521773799839204798954341903440909351024350963710993224729399909068166176147113211253988146722136262246085213153171340078406125353179496713190286542878858145762886274861971454303779408413423792184201497474925527886476849960561071351147425996639286659309830570061045373253283283559242549587930889925320270276559653003014385390984379314295794081865747448825364428341574795835735665355682045639510076167378357196123820110424071195812850272043061581270823202850141181950372879861135556146953509436991940242771977065733898300558155344040049533109120435736824788553330819675645161686226821514894721663632455019933197296725032738523710541584852653685130981781231836371138158560849776458883533580926361873885250460960224522816707976842696068499247232548736799596982545738870977669564293633487753883214151601314343615768753153878759454572664595356755695545201148887368978924712046672121442463999776863852217672624459922622488853021920343668298071866216679132088348971779990836724237893679842928320224582911070880065991895562851850675694382119205629531822064228070122605495000979857091304829353229807491525832446040460509705223930698022736304965855269331723453660674163980401109382939773776032981514652959397888153974866933726096829137532336921883643916395200641306472912566759570810144787118981844991782694958836096450610911735625495207020275201331499843758509271413917807998451846374315526669986118483850698943314700182066375991515096537614519183777231964374562178074928614480817053055736536059137414100979402338584297632110961280086075168579937804757911571570763932132747453550298592397536025398036831981319111141922774793593363937511915275309716494597535577182556081079724898939258141395025083481760537266983084826387216807210537768926868333296403030995757196384059417200299429966518767695034306521007791757886119893067613389622215510364951657742736079734714778478976078679888244845147749711792038124332064691137565076209321865423676388594281419737451431084093043623826830024944489704845683397165542804279272454368286967012427906941187322644640547437907813163082250613850671460497682704931380136626942823542016341486388281848872608789482972771801188061927908689076066993808297101085723320116482457541581418904594059202147098122758111192661234454370326781560463217426610507507387469860920954955756377068634875084848098464235840913693643704448648475977052092539431187635984304750568204228201431477811213055203211422469009677394463643127084593054613627673943959225865182479323988011750592031167441880504132565612740464106633352830638286699526182106972559168069205159388094802520583773766088735073703109144013805394513406660684055222504328161297191049654795112671533543706281826909116123420904217120072116588020269222478327246485338911654345485344026903020372291513000914593199981404051122469060517139830767261816953188748509773965654335011972398979689474064598555069127724142145323094133371512039119085991083558540508138779059404843023048320937327803968448066265250504593139255774980878106230865558550166878668519798897688058291923059410261889836290542182618010309917177376811524915212347863192204280682366886197561672027002730305222634912051976000378969211679220255577454424693913173465934840395080266389711949908855398833031216048057909278534739082128601481784117500946116141519685610718165349301670195555569303238457017888191192791998966495185755900484177133413286531951482394333184901942892568186698593467859296851352251087474377144553779836072255135178238989903955343593570763272890391655013811516612236702679757620265120342542927215147870259082194088460945218736751178427990537867554036791616926853361409963488377499931522390216293667619584924592622546872397830030332683366989864215896355341476116014535023313496097293006202839346815395290690438469588341726177457876747419146584603808962437993432164468999620760516437367727455515202012081357044740880930382377741861396205272616040865466997161543131778637475023203267686509342712481167224827902812934867257788872257859287713902138809540496050057691956501401671330349827453370977851013752196686748889921089800744433962160269834092371640941264804869902548955262230645418744086395885943466175887572145610440903568506459368410582837153140428592450998057000457680627632397018796028997037984412779686173309492092741698430822115327602252771958952310209845323800695887622143360155298086246233150679401960096736942619572468021210210516848700748020343517938356727979971586030861571371400124358610571727066992503733427806917639837164009582847329948015172084787331189569010187706378012263760378845975090791619140752580103003379848460824578407406701714756812065707412768265817054106837145013213744834881013672207402525916393672473846665759474135409352366629488681376750171650656991341459509192410868147815369180111937200079337727875340706467199962995373069218101029980880015691589363853337886163822499647350826562658750963494185927725478453887295651080691499582352113900395221291782365440070884683891733785596631320344366367601960808731867735296697786055589404689389950209399714845937830895920509585561756644186926463264173143901283108027619571168559126007465565933613220148479446660314860414442257006121495395240660871081813826933619375997015837230769719837036677066479894875736942351140363554188588008930896589136696703027836157096252677227290565801998812571114643257246658478135055975954178551121116229272630972740787785182491180050691317729588878150052894138686120630315649499301074027135222496710811504885228114061577500528255482839799400760128112607200722372850722271521892445502594710463186670491991550848586692633509568382782069929518514511543683704260759278530966613910179450855111331068896239916720382651529928048258377174186339765872930306362990890969671664512190397592704732310514502462067906892168052035340963847139469230876438006493480491103721187224112830681848589465401462132888870232772767975662293277564692501813974267233565223140038140777008080488269059019058300507092174947295600467624526187909045708033952667193278792053619783478106389662409834929555065268617104720986046563062604325411344108751376955218473741643338885703104899835110371696961812028727321262842483663750056762761512084585575412758212764306846827124237826589437922251742261309780800436134112636936817680513550820440819403198216488609832205453773879042629553957735225015354684326538006227362546806032590285653449940671661649604484906181242684786577384677937438526404619407922844127409038326093873310570441849412429162316420381962143450540571445233186895453947660500790204711387580649579119787031278281963952090792739237724661958045866922093723355270966608924789717731007837947580402527526619436639599365294708039095533293167505625138717921294804715700091917241448660312961176985775073601889520750163959041050088397974487058792700951934720519501864822786281698087764048497442745903048392517782781204122845795567723160254331526912704203249220457062365748034718344157908710582275206290517278850659174046037883702315922556868608355195919017381824352111022240574438678840018246246042190276196962929840826104904689818813310151064190250507332523041753371525774769971433264421391949796374483280877661751066185472214904088164680593137519146245589818015908619623585283811712873854544255887293657556212490058707647005410401660596685230485957965647627129148640608012176960838429664188478157507480570534214479415146615083993408678206980817246915644541884769887452498979551946902428072706883754319088099556600882247087944811126115757324268226074574030452518365247329868649538081644230274476169081905160310132119109369201885461654620809149490488950247573661376673579403169415200380007535758627347468108896034577753240533333277702729392991850062295235141246813104112518833406757236627264884779012014935013359412677976907907680270940500842614475842251889763668800560750011273652375848917071383547500322876574902606265304958493132933636429164113198114629420252390737510613011598407733056294858149945336995587551704060860945304913865586898003180856537392479745967089166151465759038489793179155770920711899743552630649717216449077552212581656862549560322246691901140852639385062492846934883991492700161549371768891046354932615330655813056521153786752976402875699164703223519202278225612556148151358542777485572003844236990168231600242400246120333429928266400662222934464329349349620493859763572792202981996338109141775852030133392844264918660932854910726527276754878852825781033448650315183841143615706595662341187032529876817633632333497239181342301590171014779639099389736373264147117634803939314255629385909905508891374576439452238458001522586606375243978781846767522244191252531775032752221235989671410280501911917176392519607401984731633648816935769148292235711944612565314914275524625818194743346529570979310029197269877586455314737229648242138080488826439547574335761103184226983520501257664919572996634944433730368532443657366638984391850085444547901913147000289173061270857772890032552834066015927414221744601137825804087682048728512550743185630841075447590763370715991898936769431491153520074342598583429933904447774485936809714147851531213671321743302969690488307153847900225225973088187467473712725782893869322736116166860893136625812286231023440310965395746609236670452301892010463975211168947216285210171912818791826306276842541052074750087962714251203650812669286304545447559803072831848209042500279381043762100922644171804355077511038576619106403730758000602368593501526377657605526846996449028978468380286581986496780250482545075434684374879736107263461132521804836487088761082638940832214958415001289502755016230809008097585248469829453314408216252995523189758381442153822732919922126800015732867171389259984666583674906744563067328770846106440183651278579171387123123311151924889808150471460535835874125324765222174600302782205027761762449269547330101792260105711954510135123153688417047829677338624461872395856870774210221908213914794463006493353085313959155166519569161030179156677065486434711678623077239430680549763556660858360521161543388959942601325279833413167302315028322978655851398179128924936520041119691650532478571477648502551885815720313955813525439761202689450245366384508407973776241329196850875258340321049867071883579520242117568269317404568367053927082604104139394232804862275096470248165736768399473376405923789967438359984241236080738233087613538403271353798077342347270291078211459534375808974479076944649068807930716431030635418041090807122318101088549406921763647528905424670696880002777424723334278306270271905464878766851361717577975082307389973898377803128293950402294923090557156071348541018387281449398489434712576284407673159124588125603883422704072748011032436390787294416608716136913956559469594054165948115658791672387052140251057665973357973911259294270909834998444914029297446201394529080617683777395219741387147939398994540016187372398126834439336347155162553761970532981323931498566857744593422015287799818702302978099749586581356386347080038924514254517171438751445517735075758733775407536923893091155699442764867108456353985029436220772735625304568979906703636924906914622542593752580952195703476950914531005609574347086595891144616862141199402665853499302340743350439270734619653425405654810755020663114454376035801777888137506064250086028294272558998304427669737765479069458373744157868389985721854133668945877206607774923560549635785159106469571081573631923824830814477925781663146862182492928513331819073273631857859381677723946997113330192976096807337905664518159413580980382962964345351777338308429396123857190897480598979621836253803719125559511686705569524042319328320753752480671292339601206752523870157726157437153193382746661210421831924649178700316706334353807679461388714446871148567720353476279662731153432586462166084303639334065545427602562546487941445070163889410843480315287589804224928095631960919038315948891321488818164133350952673819596213632391175878368746289569476657501637633873853807337880645300243920911745517587675389332672655677770048658698744492891429348334921481414478698452388708712638638761665389070195975767268501637449492268279172947892838763956355382947946887071895117608994047286126912235820917896094808085343601877467167736349476109710690157124950431825749690528384740462541169103669081445328458674327495273377400879480761989822162876442217078226351161886371926110540616585793196624120717727382265414045572612813583529160072508794004113402954643490378088674686025673818266948722919246482194169067943632044237786541702916784321220635034776290653603929839170249683840123865020890305470410348833866775714189805176613324629782439074554898814692356461467438420135033635234966851434291372363679178745620762415619008109064654436452909933456008710421174994677294975983178087483028977097284248056857135238837010609749053870245235891206938570646646266325933208782106260745628679894759202778611552170766118630506257307487562582102364269355312113990819903730286401919658805993365236390500848515295429156073746384365914705068483184136782323564477279084859143368123282519285941609557586852081789933720990502330292631756035464249169778707422515033941229602671734579623886025305121335577476986502606877120028892153767907525869999095892065429861622907041184481573620827082891535566615184541462530374825965802585643135135667726379186677037313911496896055899209997313620534623768445752307964248851519051348705055172887548374726656961970239136040829348951548945194370193562426284114535915720356956049834035875250408878243138764060805898340958152329551575310027189098388341052706104735386540054627996374526677932783043219476430431823354496059010818585842297290824552817561996404949953013930204324132947775204222083474933154384936076072474135250324971185841588172809307552935606020577195143646557809736417510639352747842344453698446833895915906204333545600184501296988267912293015950329138692199976347272042472826367590791887482576103740551125182963347273909952571590762191824728472726725937091829501220001054261205637844542153771980838974936255876656826211670921294587143336264079466755282557232927656855732198754062448404750023999497324732163700635953891015227012559424272298459455016401646878511377492931101870246090947146168639987270205120048372417714078212941644823995871518961702976615640155908660763187841759608251966344326208680179522197275108935068959400051542225073386162313175808608372842530997317087016697087484270901366062097901298153069338442872646605317534659532861654627147880484622323347841922414337108224176039544456044639012360227104289644230368861206202717606866633651592190689344785057178094668104581770054240536118350782551649660833188050827915229984671727528808948707057575306276260864830582201356761297349472215951577565701844835042756215166596560860153411519486402789858706568791250284569118621936837292749308455563588090502718864544871120449186703448634006339604662769516698115211279358653795851044186198964466527848078983686681164619083669110972088071808044638666314586392797747285562020250059310065419042045085289336633310472902605502715652273803510703535059678134355651819593292222730980929310325587537182086582744206696852265964120849304020704653708256117971938749196856407480793401441507749624760924643498761745891708070546795270242991616375485830015326762574986367153956284735690890549771197712992191963568275497001362944279576018649250686120191299176366488983714619585623223138348284825556984469123731676042522766003301698921896706696551773880627369336716793996553663884758880265261567217636834828664410712699786574239287586065333063603217655531156978644231778463081036056848335658102840220099211334902805742968224933978159560275756236074239233473219572725632543964453117840263111961709062731975033414437207136799930513040102525043757209714604751424555634389308945906759580306886505063263894811460129821483860855373013736981120561206483109446330821506470626746540198982376207881316492858724992119823477241269060769089298186849598354974678444588527642695820071667223386951475230568366865848372323419497061377601245107279072533912831820804025793537885575287685843152881979586042994660625925618274161928958800503167403550638000569457423974007419075503997297573204310667748180056606631112991246953730095317230935673890443638219934176440756430258240922278332978482017953156541611951322952132055743438762259618506313202216197408873996381712690442293133830205569142001383326435289412443962086339007344229895856580440381358858362799733134337869798769410203634703446270836851687425498310617151033186891971367090565279557780027192408683320707867344964087312972923788085201035019226996744015486941880094117935315213072197100429223710056141797652708799309938264025193163945233364499458980350034794285204036098256426512408952663685645771326354911582595432635807404444115910648787738734128597097352561326181185431836101460099147167659577727045207981674968148661829612602772362441097229825983902106679577547345517350845375061419886039165145337014969030476367329885638978467770243762282653994280111058615796433152628889739499043906501580159213169370827532846394511094778578897650277766937873834822263013962380858574997466100787130722924014145017246062971631941390487376553847107524741779028904144717138930217331229932851494122251740573735158327270048203723196256312144887755139925991299812697395603290723270585614029971996651043885049350655023813340870760431906600039160259812115884867785474435061510559704123500815763043428505469948741556983521554090125920160020885220143880543464731926372531466241986904969215633984068898475815105721067006461511976614233241116358849750697914932496467813189345500824763534952639481553575756575243353145949782749069322393665133664826782316710501647587426248468766358225065753843729066305776292540194143000107735832056152867096853224876598568041984148616078427397337610513118213699859067026604531164962706051470244956325258085886690327285946883414287430512519963426141511346803529967528814799027299146948461966126541856802569657759638158225665317543520585953653610389051010933753211086805751478981936405071012938364687384969235281460519087603241519948485383556757657730316269119642141827231854504557486041237114356385395459728688805691317694742601777099278136767694259629735710739452739938308361670296039264053721151651948951366889658626183222895635854002382090716676374495360162381817972651602422304978611705217473314375403227231191169176989130427947381047418936194175685448856431738849599249099279414506380451483896827534822541736519985064091026904210306328045667818254466644923110655402657551652766904649170195443735643940810042404035124300827145340116750133608195153223635623021045696186755138813115173912044893609214607390391933555644668505953604137551461780092494567145293156370509639321227597622838925543311389024677211524416925029330095281211070558459713529488360143375370184916088040511454301501869694480337254180495008615428342782387230971013382545400935698104269753955083713726678508551826640138576243016344283254484735525083247149181369758177442380384349514429799311148827639225005035811295020346221366814664494384818141177525855115128659357727682402173364135821735700906264090250854619124711579132197782531429061272789947961646645731322911387402728835638996405041383549067074595443564209582151138238196098183703205407898773700236795591771597628061049794710030270647807255275703591017110845347842742551718913240719248878975551180995563581134784508315455865552968808454054144512409445258526262562352615342506786040937867809589172540268512436963657956686807043928636864351824379530440923493381610091929265191460985249244733820319624381265650423203205247718316746264855983841552170527562175953548864292385643588530835252867335870311611786824371628304756299030489651482067708562132136310338802203505378133180656152313683274292875077569830275957806218865040217507571368114960761218452924881810702236091224451072061172513200584549669952623852701129626312523717685357157908561616373801321232158076220039097256989610059436575412517950793111489890433320937731010134032179539568042274932783467613202106717599798811158863787311929579677106088402891950608285178787429406160973631172591198198957914835773146796726115260363887036699515099978304885210556972756437247371710373090202228169969024698671211905992071842504077284548247465684847435165235367377433914615731013489122888635234739318727792927246911112266617644141448749862312641270369860195964492168349770398675320194961421545961583897116290561437017555938720078108002246131379757224143916235573170157330124252169219874649630530387577927739712542454675996437842646278263715425927160436573400674926922409621744056507275010397630979431190755156474104820860590362783464183312394823901353978726708779909270185860005452069159503550600040661298042662389943473127068236148308273416913128814723323419653433621690119018455177615610432603523875461605159792521388100070192124014900680093404151848116728210993962886079967711386660251816087970446147501235162910446335161416511264250651046889557746975376532048076114517900743510983949199326925731392908134537476720414251349618703517214697114920957629701950544793956152698323526900124834311311398428723208416334363348392567751632085979627189024602664389290056988827765826227183909364380111559775776703782696720023663388894713007764543279057852788207698087937385393422430944348119159021058897226650073150969096145699879027165840194745177451510847136699890125274361988003756365253236298763620040266682339253573767873401852927916346785239160260201845611787365899266051727655376667165852842327815644458765086173230544464435521746769012517107635784785064215806968781865217120449026495616262916895820588220656971377245725185825639226367051048294948283203000038818582933501906299788642301919695090582337240059007619934509216500522143400324523108978755720030170754838745498262315786608420108356898187905383787682476920862625931169305268783856656229628425388670773529265045652071722151062241551657924473572714000699718346945931428737834521464014076249537542115693214603887572397553517718127812732188053856424050316356408374904249800149249329899847033345715823415330067209508776801368927769953759639104444536304708280891489422368001764071353309615623420977566269863818717629504930791304914287060055574060315990543151060616445795424621884897251462128645695030798569702377653726417036220384857155202711190026013733627994117075531802113901008101249490493936330021840986381807582348319588456318158097214559157033522330260543511801530452415260148142635308552040168834549298180158751855172279827205592339937479820851333725414012441671163474660943047905728904128666256970763587219144900930401895272789589081087126058729824128341132243230132233183261577015793540746740800439506598168167585500028966641314904095810787722003173075201203965970075402120373922813061224277374206804193287405228266916442122984727160529164888059542432749036733624339019800853890964182234181777945553510458601855683147876680145264745394135029784752527089531174228345510231094475205582264804437000074164883293682274532445252329507578210797233148282963174479883794445994658596982970515007128792207611959258405185062119811961197651322583267915452072917799951449999470309649264127331368523987159324745433670191064651434416943091775489795674329818498935414679251550439205206661682364023079381282628640219081551824885917756193337197418113625120929448636144042515510880110976305197690602092603505710855379717106315123267489965475858057774048560630788652333162213108437766979563060123376911719796863904071767162742225156997744072430210556678490768135232738248930643265809240806157271667170128977613612993567033103786838681704566405474870513310973640582269468773211830446012131517680983571570862528639479685599484597381812964337800744565679011423990432343673173914129521504637301897956483314417979605223001174623883142964087077497328472193832400543536211900535445721565879796901906273050446303235878096720915430550119450192339399054153560228333571668513299738159228387596052339877301810027218327290121431713847229768156944617790924812176779121787390324837382515972236159318121081356474253077531230923359193295735399397275739548304583558075481954682026013386387074137654541392393247039761065070238937417961461885870227538071727631564398206549366286786770853476174496834771657629276718973752538434482334933100292883411596572439611081241101458401430225972751477509801505067191190328625338481453012626523092072188594030839398272779133951521604280621518854212156554173045411534547294394688160194620967702571577759012523777041333503619544168816542375512968749536889189081317361928644131737183029317816961089515087806418308779313240899931769556039552382271235784749881236757713972583053483757418682431036891358733133433131322929486337188516022073588159671914609062673788748679521844848359818066665325072532820048025289481489760032607825251670915948440628276148199906656260526251689114612905937507700139895592808376467196144247316441680764023050194928552950469602235977944483463767625809223075398340619402513433038617282342209622982882963994525283964466682046534083772917002760076636789530911976790957760068150670062575609127485857363622643078160742641468460021981823525876396666543088744632725180191657981870792361206774425645323907369223544019141166807042337803733602966340650399780222079113997519292798076881767856225937140403040637865089826646308504719697438407322180660618173230846624493052263137122023067497073306158375507545654623196596029731846137035227167455009867528176324557733362684321839710707756778621749577702955577017768786291414966126451729891839386538372886669658351500988259343798529088426518221233055377351079210192867893127900501960361046040331410578681933496064068742288817392393445070880847583892903563002253486434553716717414721669113399077320462204246257018151119721319977877598183676657948633527712248341815286628846711146651766812862517301871576481710537200588304457927912298797080432239074338149198193086289759998887549810764388576330377920936193341580687770367502646117086363079238927273224261168744712819136793051382430578048800227894252701714179694948013231608274694237169904061735227780393300576228080775939119138447306573812229331947852217866744924547111651597180773933786333396509767276910265111300757166968810278290617554296961535029583342997068847814216890692587539618452904130754129931980100269981858561036155407580280318924959277924113929537627241708722356662265551999689937337188840467856842540659625373357720880534611630345975961483356726024310690860349039364838465350311153611731079644322385972409757295760462725144072393600089886760896091582500841272292798567437835550214637469974835981710563931415050567499398295278797173590107536147708208018490850367003176078131312589081417264141253962960334247882412997709557364757510414153915850101854247002462850141700212428747794974070646695867631665335069259451499350404300599268878572065169442735163594702878623706009483289409953028004342777467803706735812419416504134002091011434570177640460778238203871530051100188049945326787135046679142573312546539223889725019129632224714759704794853975970816195453315540961881515769250726922223092320606256326066721125440756814489639523069861052238129139372197238658062174083708719040141276726250522128713918778893273330871665909254306902239512925637186127706164271909858574777936676407775619910112831989145801546640556707016199598056419463636771542069589521377353484203917958995200236902865260751335502427523526458167984256482791840195987593707688671399789541933671684874964194230297693186303257607255873684342253432257651405296195102798919644372038424800750215476968496342259687992261016128525586221589862351283982109769088086922746458541469755856030479771226649047870833995666598003787455970270664482140857024176948854741202912867875744409396676014669256749583987541153967383887443113071328980881755287161158328078459737167182749255484953720734654181091571963352700488289411967175217682458394801348334447668479510412862035625213282780300055903413244645362125503160208060336774926457861696634484339010005888071508314884193254542571256237052421331778601880433909843445449615882106882167032469254433830562946068558040045827747940963235174880573905411742579770485912249030846285481613820823985837367901766658528077909367366620359692843220276782125118301551638125541929083994444208927089433779596548386098409710599004832636025497557456495056673152320886344020623242434103089274075793199630463216929747002222709901429325011205923496877981137841952870538860350809837915990277213329558342776538206092562581336246356864308506933030460102120788745620591908365956101819359417582568175182256465293670845911802370824077422109210026834069405618738569127293161463903692851143302489499505410848703212941708978065771562774453208935195831520551415511337095980529059006607654888018272317925534049579325062861525341848208737060295653639389706168474722784708013880962255696960572141707988234078947050185486053881383926109164425537978532954760603834883390765252821765507378012630470222023960885829024628369021674773579558005608041933739093760657018321569737029325601311436271191643507103025109045645773325888749327542800506251909996748589945302407551836647100640745193440453469530960872457371375728454068521987891321726959053452841728640869258855800647901390652647422190875943967118823387394478884937825574392775158900133415018319708910158369743474266138396871622733594822700099804364644331570067930701179179049223586145064843551845433846601736130607598610266046821321467907163583394277240624401428538235884369692420612657485963179702904576888511989608417303177442934674103520577943721655110436557957894789158056400257948815557560961195065142758136552179524797852497723240197934034967030611994649481883885023371589031430008172196317641919999562225379337270782740967727831476323379376212427728494879671787050389339704094617364606623173713919780233443290125015034243931071628997725770332328032411382564129411166541136154285652667764160426730353957937575091757760449770011617749463936836025941064098189123464594539476841950827565281791665573727678410855868712210094099301828162752852789702126986787994489051233810616803468561913075079616340488959669984374726448399346007917705199005578516978072439668967431097351558598391215311923767305732736758130051182206042122958271681476844766597310763834458634663504779668744017404556939368309660461330184691341651314090413425020227957762718061279509810795979134782279138778660647727389003017793591378028232403153522278596787821092039229043647065267852716407391761010711778138240493778421385546983069457343342791230167376949650654767702849888855676853711470461104866096061593251525870888424765040447320728167976234918137443919127086599106116772130969706114295298440097680960404095284852756687668371168092644555681437622750017008736737411792484180607213401597795385643366874762487749300873007664819092771799620289509688067246270642243483066719169445727638425968800649361353402390888148686844697856694910261828375204649119473001264208698562868373119753933037315076551833970467306436137129022738835747351695119742660766490377775141927362191391451591550794027847042051063566824571054490246212723104387032250092399596799694446202059180904194470390690886873189925331769314094827007173651282145889104089529385105701411843628498677479883026213304927930538451156245552138234069693785840901496777553555502536304814135827907020420503785348289530336412294680533545309103655377992530483531136686884909645219185775825712214494309160741937032649615659788294650052660043746647228461012592020245370765692336519362669777606575973241096781747296235263366778240281916339898415318004146932726414319720495812188870054980573442198525713876291825731372135190440991540427148849124974745448688322146693688522166878220391822355731593923243229103148920986441402585708304615299470366505385331342520984540493269534754635601056187496670730413702232189943185298143491063192902707342277909920835221212788201229036538650835836826917929401319960182159816334526268795626390622100601125557814172549718501534215244043472965466173820171057821339868825130754710020370703724959753057889271534274220114576399035889391970450294105499825797105244441291275316893701467291906233531005078067890297472940733658782934509441004957096818484112934593721562557049346831778824442218562162863795449179779642882721426145603777997026649777564845535022185480699841588406002451902343043555983200170642609320899152678729886579707822767122246444339810584009356491215082221977189262346633167520130116847119046330792386540097526105841652292753290165603388104533573236813910024077993309591171293513609864352237496717318590806815018214861447041382977499994714822646205676369597914853636724583897121528331697514517408042399221023032585885482906016891983293523135340165072478770968642735771215934361646513867956905990575989575118304159479023192450382823728814253370145893658826100663866191686432286360261012744876642425047933040747175191682132667457283907663022862853086728043571996086208087882140765506125899030602163043322501792679809826946070956281139225788929711029679541356051960857905320317800895630950863746969594156316578617906728779184408792678467034563601742172777543534115596662476480691432227686040760380928178676994120278902567099854601884044661408838121793357054316778462196095863218210160945373277344637564620189319941891606603884077018751183602004761876941965927835800726677485712900884100915897567212348578560353974112761351084577516159350565058439170327431420854276068355488063385827030184770114828527706016244161428029293782359049344294532967242816595245474169203724574334612236484155546084296900148886917462329810469318849647782484479875056757746409373709023167016138529505446608254939804769229756343183109431730127429629206666607104121149686615229636491635884797508564479753299518161315355147643941269488962101540956212434314393047339296583192600640726295758481683284149129435187475329626385656623089473390117317359881294912105946157510899505402877072562406649369077220344518664834061681450432569637791081271724634159526766750218786914920514449307210153148392065500774892862435886900976824684840908885216459079285013157135019457925583044716379502381367115655336151828332300031114557011419606846549950759857157409223768307487319716785223278878164232664029364570403364885055252606134796241835805346781996483420789471842912422395399777125572750840504684171303968997393559056158116308558192270932061249770899269129101469886139400306731883905974398743444183338875572418434886367049042711114087808748808778103981330165974273724285497601941285279643432321101166760164480410957881372302946616938673512359850305356919595711058876759783058356254261847446649368051645891308519612104811680110703632866640070066463561909503284384671288946976943580270086292953817059139148302999373278938017335171079320239966090814515703778715990881337766836491455860893213983497653909435641835791040582477437770416263903485512466320164999894411438092350664753706785171212074909497904382467277356464472978612693128104712703691106407112250551072833419417969821202417559372564884436409651053690045546295092027542528877861072873731942219977808249881827597487959103224213033797764779555326188458647814975828474062342374429048815413603734435200390644795010215812478556369019290772187866864577532984728875947038545790238572959269883225158411055908220992506535485950043509524464848272529923607730601910737228158675203644004861883632350542346896762911009951282219651215111894936721626363985504079748334226612961176415089027757043727664845964121109857451735835170346031032110418635840441907568830427264976946913982477999310717224801931303218439604221332529294708035149429749211304193327498650450512332013054749813624544426414180864019584060357230276357553346474639400448087179321871723964500753002925208596562066693404538456076605371283486960175859544250504803690775941151178736910601647951864332740452319012616983919408447687951165063208410252974902465146553150291543041732386601516268233470261297559668582465417966347306556852274653535583992312633065470213778457688432105545153308439877583981530060147226233833053454587949785999652538270592571609856138511408411453279212394827502914938475697829711462079978272484746709243810618785954334458805496578268156650341364041772031956552530904464358677407232033913484524136994538279544577499848466905302620484709692499464985372286938646767220170189286431732574204381993111272641847950269676105042040908530225303662689500421947856250108232164921333274226087492707060495750089056432864555302094254083224922653214989733924205204194491188264986579548639109976218969773693576384876290568019609644245373623277555601562535748033228810908487386106060433126425865594641337771278963471812135135000014627152330198072234222922024247304337536785367599094466524818573963569572936801649563721659806885221708119201769915871566921157522662802102528548534212419354232861351004763155617487853040060262498124726128127870048728467648690226667854738607548810755971774082285508753486845520741640413665930870870771305010653715062014268994824518783482798881191839453859009888227110477852813062164732089535711650818850271523597370272309048625626330685296610911399405081762388198171245508490689308017216694326546095768441451960623358429014470881585019417090910712917268833870242191509109700960889360306865482129670927778253956475399712523528763486148637299760559282575683502548699221245462675857722847268652534197909084718714634847369216329614563560350075732167206001457381282741603082232104653023756790275129684030553454353194711301413449777621988694646794570340764467467352670501796545300625601785088344873685252667338967693569158719543157991866491464109805840778801173725234994630040238297757522687012542646065192479386521237571907677914498947135967407233261436091930594852409070484034048029500160390346933305845990446555238463357896290581329793918681653295115712457571703644044295411886171810801204592247977083225560290605554123328237426926504768539640524626698625960760302655225429446978614550081536612798796028563024098483974850746398954798247684491366252242717598290253315256101743232956586169520200252658862172652860919145704695343012443476163784648262678957700734864309341100158696148624225721878921481223824695776740224626779941726189868712040243153427778018496648697738377032216614303167614235301470269944071882253494478463896407890544872264208856657409863492620014669592216771038457631130726220097561835132852068306269315269447762689163369759179014862996328855134278761062891819080825798970636562762564855869760988617761837174802859616609692822157806409922138724719972902621276793970856506738966970231058516458297084831923185234682984571385373366218746846488091586241814976880201608430589787877717012249460468660161128988800185157821899161731396694468395356124081902644391350578875339589962011093329997252667978824925695069386053177604001025459725662658357581366156467972697512764776948107534877154099751167762724636486541667574909463440249157249637359496740032843070363384828000512643368568781318426172913849848278717005112425774625131765588416080524191374626150828480595446923438452302341221296602617361146871229906353809924239887058918114670539429520921690927250833116739114732213688517591761853884056013783365412044426283400410982781844095016064366440373441348108014780557003235415557131467718032428619857628306994432757531733182579319879796366982066356186081696258040284419535133879852265259101441901228899151279003865602225921788700736404500206110592437220314886723497790525203613532200630347252365744191365885329030146953569543409110699416440521290186064391622256320194608165416939028505724949319495131628919711318000280465829940527331959176542539874950331313264770372993161629411230573787821462558025081727940404013186435407212426753650232375979913699509621225737916974230316655001347984891766948013153291075319675598781100067912322341653309145711275250597147479691172376869891538500274551478158125948051301329001988037620834201454739145285714411479538044635946859717636287209151450695317582768534239076636493484876536849863717667635536647210073307206295709553643329012838802816358755129577576336131983618467747448671375104263896655916899427398731058319678815456317317615235600771658694745444473073947275185188371249585541197088092148753587783542389456606396942457806556162790527843424696820632883255627625641991816657973992157761520570642720235427150365363473692170423725270232500375663333135191613443997688853727461486532564932154036031530437400804579930386119155594842544849938427924341883901754546067932738644771495162366056945603273464815727438891153107858829956091397610692544020099696589242265736007610727294053563669833637219978636764082483652634909755313844071607478859669507748007440349472278929476624321795121222280728829520260605635607468343634708643442058262446474565899557880121621162359215159730838943158256858558653775617085915325946963910315346926902236193684942615632435276464424183623400805488304171547615973565936678335561102104186026192543818802663330811901879179962839094605532997244413515734900469076823591153213149985419725772954046410895967443964424868551621603542858043356485244534355371027474961001024183952521840601719157364436221389578401176416491447883167897696420349762259558018325665720165689676133529118699455008687820450669633553651085409048248870735305172048131579711083163148865963458103491611863961132127075106601389028113058705831753439438673583312142064165844644616695015760048703387070103110192896228560366843609423621434690255797466663743865179134355279060589898412995328035458349347345998784899537364478491995535676841867587724886759959311559822546987058346747410620070386568719245614911771748188262754899749560848438028168186634430917471342842653336322554605072329689293137098820262766139706420001034835275048086729583892523508073556855617716899074630324581151841749144385508747476905127256790221820386973618379573437771372796088836120642680160962876069601696844643020646098771686135522177911379890645541241921232309912482375286054304995390269157992190371598383472748854979348965419738018213404199679457814497875276908525652042556791593837582079087381512648855242989979365466861884417221945162680293768783307986991835695764791722129260644393170056955732402115813742374101864058397435886778455218813154328505623718475713966597358983983283734130856741843655992139428138999633760107311044722967229953669490401949578577092363455997630873284920470486499653521778258650924106806722264398583305033221650188901435939022292111537972361492952657201382845228549934122916630792620849212505649225438003120633143991156502460181686402292137147920220644000084667053518655458575625677639843045357735805613474046186079373618426526124611750956442084528131640554929731681408998751359849063467342124964914094033306023552714070998123764290071607761681225360175410140194070157252828082196080935594821272292763699889859640509481224304379392236614049903577748062003174621413034443759716116252993889099763089419942745438278343478659137642866030801163239596019529842479198470264965270891779161094382424226357834434987241642854618131113473114746990297510061214829224691236625726500221567451073373868539791720178803925125871520034721222832939839527176593180717470807006399424141298200859944463283027918125669140942349028195537688608121593644955838710367044435054092672180479017321833904490155332030105209744233808001146653703467518827582878384706344984144643348132689883357734226432914240945503895103879967992872761138329551969275290567857470600963463074311588619235088119239712158947331681850152478638499501295919983089847433180945184665122876400850746317481952407828213891736677408606946566302394467678686080676097914630932013667744245710287073082739105971489993679630240347492043543219638021433225663872669248573861575599443482845104312228964639173350461164101699198578700713957828077374583187925031734107440762752347888283349491415347062915908878147739039812297643450988669336495892238829093460128155091693827699327407796126566937179417413023040742285361859423182552096968769613601753507910446059405698693373237766053733745337008418134266143413708690200980405354518566881390344342842884635308206214749954385445042415916737337638550515457059740223278931258896958390782097399642308194384584511239235019597650799671568753493487943399468463794549433990254903077404440572983927282913887840003496090435510175424666055636104979909147817845874008738263167009890500627344298245905808356080719038087323957058611423469995321339400058702101664798774074005011154181634690962227774188405032459536704975718879542340275639729131200928165389240747379182514644555692029743713221762299092213970257809954066028333561533348476597756199261550628004530538076224702033911141067137116591252887779955591430825245733608858894300955687508623324150027721132133479371029692075718595989060824327970877833740813276754422223484593768432898048815881163930159900186068075868907483820899573385568433022697867240830360091470945146187971233156245594357507372540644204600205300007840968522015018338679803941345654414782946434866027176781597023721398689673108390111946511755602977471920580304539745236914785600886894522947789981544602564274632081613829724109806558658425860758870601035473389470707713684627084335571662968673780123865585649234373524716591411075784426939222311167791588170322437298282401391259032121701534530964502068608385756998563814996588341931329942674645129784959587662158110005749305163829416732400727213936779912523165111617124403345383480720546696497728097692921593604075584043097472012850017482232106723195407467067455052012844401396428735595880672619387937629339132996694439518591885483974211157158195033527731588783751323844903380890538875978419169671166878203044805760231520616262992587881628446600698073611924436105411146655640063888458692463035578119967675292699372491129275076840290736342531001985895120130586807622586607374520690818955159901357777488767762898384716863489232075090067452510357647885905344400636686548960259534070668946628659976472587524172100318457646614952564874337630952886093257969178409090198837129236986539047517363170506228377633845554202228418573095850163737937921876905036046116698356089350991538981965196003881978211547544408622963724703261028983603177260173182779612316573072775308782150632798567604040321620524213960114363989705609336594291438560198779450165257727806832646298656574651762510833887812232750617476430648696324971845582671441166248712437112291060022726472978277215406619305665488244152602466829510611204760729173198859283604022480494407161012600441991197850796027223969508077799131075312576238758215618240457968940257485584443497612415485417593068643694627244315020116975114492838125255358042736207087723734567743030495201295947645849984656060872898959342690937376120939900999259188692882148607483054782983767172385685132222251620646524777335282299592591793985743141440524565521036274351218035039059684216577110637529854207911158600945015701236287204661365578804266061030882902042503953186940098762226072564412706795401059887963795621752583548112753969213475368763386255291799358893295580224030414213568852905491667785737064947861135474845345241153619422735232419147200541679617474510373876245467471346468504581947338117688234656217607404600908476998981408539358510429382010716838421187686288163582372314787694207929920051997649046530714938353477595094212113686048726755232308897401887397530692070320156570970818963665704951103346193082286087155694224701409758360108997796595187176761004027910028527330843083725884040109882310285073208617414999194921131437860268248974658875327564736972205871566149139983353166143778561936264006087293970357880510710315003137527574609457681348299211395050682250163205029445493801547684795833687999814956140546781763588698015705072572106902763196076084833355721951828879412535561796824890008824895157469623676611068883557596064499400371155702931575724098730527979765335159174851112922904716770551212037627998956774383708922234745449701571683955703593451194502706760304230668450585152965813716279282410410489301147786466486623003242031918929819785452473976919878764432587770910996045879179711391465744614900979375240067448482914252528631426600482909735321280107477523071922797365505808913793993012204844645210892213844322674535337223141857349056193847998180474538384551297423903795175620046830118417149025589847842745084290862002428998877637139139561601922192056525715488033122948386189214773547864441314302414311848873557501017351518048442529353891835144101004164451983894684528984969621489277174088831008771938180019989591098474404391572223082605937702988292391114200204628720673282896981533477258787101886776617717111677670018277128611098727091001519134437638329047073506760273193239945265039449180964250217019018493470911797067735941602173050400916441825188838267486571456330149279709861901703897378527480167383176896666907993793908068029222772921246892437339547983035501301761187165639020825287896999721118032916718137176940083761467196042794093419002124129111463513368424224963273429067092424767027023707906279041242742660777327613645590900359860769749544971906712792989899591335852883380779819563994427558101276859719916755025126700998129032397716071198447456241233187629266998173333088984461213926566957339788931938774369883721356203702657994522929866990112455981256287433999156817309536560565744764292124045700362310745064637422194594783707832187413736510623876458663490228811138852420679271945929369525572486940063465431378535797980982993187563886834237619640308517876318912419847036650254084888132717598508221589020504259122494608193086702947916464385570896111871458247176179043802036816336124141289761194418544066062390839177228131930428209220282041320927603419072796785153879790699812573395497389025375658064970957671477712119621336470190810142823525622687525976720457319156556902755968649517432437384810484172624287443768985659429416462152733894880338851647290356239862924958973481545561003951074398215885092469075519567363342919830518751620336507677334107454885791519462895455036321750651240527173729001507278150454454051805387272990195214121765995344713974946086146964420295089648804849403729235609335616587700102514883347346414115526505363603996755467889285582377404647472619936568582250025678920221051552457779867508908601363125063350278929109722260051373674069906510288263803504770029901630239999467947401998922463514748061416892936663201122054809115833846444808907963178430304883140703245151931403435379123319716163139181154311467724044578993340607325144709779859637776855152698094690007169347854492771196787658428943003779782302310940675775900852006352397175390655756201585429421614205230754228118270591756027076132785111504960387920436443218450070593853932890217420205763879618160823422278460278535058424910224022591024509143354725005614729542973328540608488709699029667707515652270984188949258061448054113783013800962814202108311617851856838373848310456290736491440701359479957675786481189460941559738237948053554884715315591941819295941252470096219417050285247209851925654405576130379432907219261528615890931452256107521966322408753775379082036560775915958350825544842939004409917115064266596890691165214816365125520971732870563920957174403490377960051829175781969319132918959106377364628528952982903100079769355464703491165353152639572419514233372131349894888899488954122553908943544143908078208776070492462737633102855734271413112480461052040883321288252371496759215191657850551563228450589341710015682647895472290950151840469729353809181312662795613486541004269891946731471771848499990591566850911826220109996944062750345240769706519978653732637229904057436679959463951907837748938057132161379146750256178891932159901038403993908448767457522095596038009978583991435049121253926651315149812609957213149792566405711297419272701805672536196236627447160400019885705157245945703286897904623180861364953480926028991137729540165095721237532970660548996895319410509996659031995586636552401719769365522733848472994704377628252088222737102348646241085478887362392537225533926197938450026887592488187891199309619130609410174581492797409520006121277895153912660297045298504553075313411242586059095223750431437064351494408625632638813426132677280179063700533540531431714120517534269544853107747355776465772079602806600500211188726974078108926400391568941937999140673459763381675577822517222662398246529707090305624179045445267090475475058767544004218088828631714775646355161535150953951015283847377973393889711559042708320633216507609702254997024906128904206353074232548919360905634221378252703744357855357909085970065751834496055697855620857850620792122854256985841426940292327708710983551171194828994689201847555195604893173035005345084662971049179098749121982759961950382263832822279778908274840363821049671615987590591106172620930290080862427627199827333163477219703371476712178484088973426625969134591962450119417097421738446815386454952884768412060403449149579401003171389477001450267452822997371540773872724084921866431074782012356002592948679321552796962492313911429480096158836512727207361064487246275950740047591292871107120198144644102522260708968609300553507325717775232404788587615669031674907526592730323140760031103889083525472555293815960098654175136870587180356657784342496916708213974071966744973370070747020748495856526572598896797318080175696541321697588762259274730837945519585864597559101162552761017691648841668289344741540424616832514989720231282790776805159291907709650718156754311238877017057220309189935910423694369369250131645233907196504352809559106384983282041322289257321876816254586001001916936173704554744272750343509742492606822923072027210886523698139772867921225099507132062530815737306109495892203520356133489648906319855975729038949768680617351161570387373166534271673123266976595738044601106730736095776772046420943090983246381698194594093046127519906453031106673041521159060563565378739956490560219109023531187434871140966291003266893202795217479243910915854780629355819224723841783889951624522436300126945888618522479661692751543537622044284257828235385549622920222167315892207995425007989237425605636699613811529767855607990802326108126180970851788727501438820817611552792630679707386015732345618130407388858260294930420425473964427677412597034081599577015525148057980210253287777030542132746388612516527500666675296919541741243784728290615220283391080854647216637916789607252706681755765117195585667710034904643985670777534399340712626922553427511823335562934788989023864557866594375007829747153221660138629118531894030588501219762991026852763965443187126007100304784486215663474679570667671421144628256613067853495363140635903770608496751121992121880948451606327292409653973021388675368709753832469051964637494131033337083738346821377591627199382980633224233297777875369951877107014890618916086940788629924984035925033954605598913555442909034804279168890259682722556166833254478885028587846415456563204125750977162032135607030285110320385836703504569595669775168128112691292604741439153159811731740246861175164271057965007507836735499234667397127231719878934077741020953333962743815954599232080389482719273561096170990201186207158448181124642859396288361438420807451261799738237244085849598300385322375542715176208845445968062457695728277946853192534336627318790358010971167672079451309970962458652576548787454507763903603132332302668331988989873524436407562225586426652703497235927717774024109496728369013976132677776349342024547208034515742245550545688105325966806813269817942152509381057070632922412899988194719228083675378218827721960547830263239825375016927810812114933620942035368003932608030159381370183602995693843455354785371066142697372296085354366772005807948088550504864426259519843220618205655214800798184483695138721184550527334697875118075606195730561718300960797941690387416978053956663216973480040953485198646708199073503467172540222364495247802003793937080010542457467862107221435368863965203325335426115174704326325751331587044237308145443860021646641777088265768587907271439420279753157335782983790807768525603936396268221494450303172729532191403855365625756940733597326887456224163739579956350686903793973500005922806463411428436470453567795124665486011422587392585160147688741371069404736610221128476143860222737564636270183379290173746096469655920379442232164045897497606792684981595730273458399104409610480996777561632583340969243333632301861708364640400620232799687369194899312885034579329996989099413963036291424297206052124935847819648411347717984462408222902991104311386910693883149228019287758906477732331818589295095307213876758086325687677121771891097556239759427656510704576543245294322008156973626327831002181800309863702199683005004686230950675153595708240307967623522180431607355272639016494702421017447559872529439769602130489972708247342487949843126157450840218854997633743759806599067672297113542288418297940263550841363661504066668517821477664068069860765685065512082272620791706795298713358255059175464515140124307104409923615458488058860142881404092896338047353478396336723585215651329283919263248207940655548880298870375099796840065101578788269222376638096083560781909927879898993033087532449794200604567181890522294650803034746580370237942043624958727329660914567022578616124250516326303650358625101677640841978593243325127708727152734511111544905430684631450729955367215324032553873277264045679783489276287990825880038228262932830515094254759733109433267613544452149539787732606738787121552814753690559293962247743602898072074314533634167046731733035331633544129836481686371907591082905266672141619497126876219586752813303566642767130688111058356515599060201144637525191563125867034257941309990609896306954622622151029775835984602747308124802053114012711102315785892515365743970955425930586313536441391920873051676165823081900721396344799189587634248454540555319665719570199657674854227334046995739670111284266404633007108237623342792939533393908825729884358297761763613012399180199856129244793220738334829128394287853320156155564051461523967604861490766603948413969834002836240251483379816054921380828058438467242425781364615966207612916668850594900696015715935809540910344053172728766822502023712579230833292629404819824488330906914809883780229762487912224404790794369669116597440635616822530518213082157741206513104940809025053668189651956679189559690034428182693485314101415003974491519853188755106777170831501566893533349622397332941997413654159269779927750377681683914264962860011663501874430387832050054253799269264204025615516693780837723459591846739542671424933081131632132549700766551852566229478318728722785967818686222156141163434681413013544970261892598578014066960529927586490824533890921046209089788109619276730531587289311355862770466569033438872434606461437596584869827125945928980824336990671468110255505074566598436605780990376712843881212648961905059593982032173468797454291695220581849477623401628105284949703861308733155144943183925490897992334426536370110442525947247939835495715210623072509061422344835339446810937904353243741922380379854031554247066808944384715226440942274109163358185781161992721118519723003707539888713137688414909526240596958862654875412763642767373589313512134836917510679051134279158177022492066405852720659003215358593481547144538353126946056985570558596597523825053813841761661960143160674093148064184980518520942377377932045940466928051256242350165499780397306243482452806520901290755992883746800100442821582767226377932891573537039092947927925815009491238600961444328397094386422675800648502194654091003303142814632725043191435690287722740459620874669934942211797417907124485387254224002702094132019441351114033703504095843806116188843328931342194024788838041320525493024779494103096566431954011751601282117728539090684393681591959639619364863775230623951708081166700505295720697727438903402533101903774278224992842682245761019972048381081224938064937361932189043328720391796226679491535137118435807589759196831664041838350218625277120723352191920552373963097189537480343988865893314801095532711626149622357208052641296000069072802385019538720005044026007776022413270755381930116480375532293535496545023951424013942767696997269957543073980588482012511482807451806954017621101710954616825038618773148456395687971886397629001804603976315891416373410070125425475554984209286960945961002929882474639761016705257801838920928551423644903563998721864380721310158498824062297424248426107584746161183919887494258883660262359056603990158416867711370514750488828614899798180045683228788980166799454229789313000918098234758735041434386829576306000108781346182031489032865325143061381675338540578196758070299990122216352801852038820750677025046285179847148422691920669483477431536904996182287042348699481787329754731227187826332263539470977587890815740056756257525814589148704333421381087023921662950474083704606351592443145201784608113895886799558543151748567600140918415257641437720997644561307675056163887522079800038860539653241871362060146869700588420982780760219799839058771304921455216100782839909140315908546971027325760404211675462081623228480332369955236246096731308145402725882232837919504050810961236734990200573881842015498124166225696354832363310927179538339342030183969494270244206002101714403378063413837058253663489773313313761695188104533502689762510030999368145133108805335295681362821976696669748486733419536043452803474302036461794339037389454220436558610291138630254520608797031283486248047909760155342415792737210030181035192684206692302205594088115303808881732264310238705982884247031057930622898454050829113080065619344248339457952876688075113269575421475022553407887697857359778606932707590437663822505640688454372442677369236281684730064605647659549152605791308292500101808213465966692734184816064958234688189712947168458765389693389635392369820690913570120444480450389597542483503350737080713643041893627019915187481479519214587344231238915121888694734448026280422267130475193976109587155785738364108925458126512159577699826646669805721853307106706004714076206736903931390812843763713034550456815069269353755511261607389847561481786933160312447643661600150063346732618700499088873468278265661576685838433433905927249969843076359636604780232145043890010838656846129474342753208514975796020441760331630024859034600413814193557120491273524895668714434396985114141802974525903963553970182653183498035011572442282833089755114103442243219062540729491995602583152768357733566722062909158456188117075733449418902475733296045266744359420822079278677613495940472972450074192360221049152545023538494021479443531781040161075628765901732795856597690256773628884910851254824380553882743514044589050431752640557645012519246087130836946741624438554100887167145218436550529034136594230927321023022251667168237590786981118960201373944940614610999189017202792800783966708154228559234982976160009064761252047873479074213297053872583005397659727224580014008767066871676154187702174866164966170133558903547766181587468572760571419797813500133641596698717001786089814844471492624722639890407667558839265741365879086801340278787918996988166526192017927074583756439611077494376546018684614438540011256947488976545666483349306517309587606675286816689707682505411141005737483111251420509004030731421575318513574648043318636066619432928978696173857064252327704865333726275989871686930273319011605605978613350723944393759529888255459335966740272548069357684484808390499160770228975658788788417856560737179222432955716140839078707573370809028795103722699458637040575835050510275985608250180083767665322519093891383038705186233058414337367788879620084421696949417600720350247081866128961055448786119979926037411441443445870569492524072699428850148490210272906518736833322712914420302590437845165940613692954364357929919464786948715464750010282893339675915923685256113653539877469116943893730612204748419339416630295838732502860917225456545587071092731020693700827675537501064061133770238933910166924375843878531368041504647956824194724379928474604979630578336520364774630701132027376943661506653283743852361755685236856854912520485047559168501940675988618075101561985998310192042644303997889201660714871356747309897866866500681819223792017554686732910204430780536319994359653018628088823377215646076325065387541118807211700958847892026316974224973755461575563262247497761943330892954427398267931607039095935325852725999303210706653678683171608896134179854818252837689992452280194671015829099203851813556249796034856949633981582739543192072040257323769041965128798708326583058275655659049771204821188771840700056387117021704476465021172509961029367796383263070339960131755774868155643046739815117687256188519378720624890402556027635504378946149194934922118178334736618617679326984540020654260838712023647210766366429762775629442239599097443793768964197379268339566141927291358973542379809445221642090130699096626306689832915807603734795786573578884031225950248067587248378671363835920628422074023740782131083740823827379109386586582561692537495374140736089118338973754125897085068806141592580382329283529776237035239489476742635050845594897362706439296168872737697553127096640214383856720164573873833678030685443610615081566674096721765975728224518802103704202747356296626629779915023635292789112969154866020367801605555070272855146560220428037259100306325819198769267336380156722074704503925286269727237593556815849664783563304080667415580300922413210373727402705471558438833109036532369357028261168348122452305295197163553584372441000095714601407767714675991463569780425025711743841292719824042167975758856949979177142570865457682277229597833736895524812974196122752637976977884482572977409337249283957638007645001273650368518596523517302224459403197737839721909971630949134351427197386058110114873709634813825138668463068862293613538599591350606198429263856114857627528593431928988793714286843519022984782656520068966402436415280673507799420673219296239788954772452658154375271302103688273918863885213986334877392668644409429069355375145594289122200437615948192931646910791919744115784662223896347716795956860954674417684311006671918354682956064323598670653471649178617570570816197800037973097198775594548107971648991541265094844884502117081761435156771408891825112281551080121643829774805374062034648131919248494648171157021410202882197684658640301234991455932661526216851904044092111786744035600656016684493056580552131590027671834766830515504121168371059718198751353488129845442299654850481659348873040853096933475038658292494630921276214851290361714017644233200051648325395938013338627433887929945847651357614306268403729501860948586697980539499549521758178167171325492408820706125568166228711293653940495504718615277537686915673107367038588573665514627187322946614216378989737889757545484320449558776156133470310451374412745304248572954880320478882016953265919613608528521836405730423638928521192607928146759309123539590654644266239716715868656276456762278590091179011267491760787559058371504047831557857695663260852869045194474188673459520092952878596353897847921439196729973593526359917823307664903641653182500679441715973008718393050160575263754932734925190870719717828854009378558248324267849675309825753216601539474791013356852951531559818612332784378946432432593793246533400765873797600264876627447660221042013535442372284793486854112436376818589128729634676064072511712686489688411923407647564205978209005080307578627439058762933937281654476240103393218788230963743259014166543791346520530351532814688114843052798523116580273546513543005129291474644125479311560479980399595107586641300279210860006947462824241970591947344061887373035112412486592730202486251818379400803491817484608569722906306092869780469251680425651060012001452789740655299374916114084475061494096066162551063200004613570532732351211684775822644987882939682959812296154926512019843730780373335575503092829521746054540018255723757608000321308850112525616651496240647835067384707126118255031540126999844765468910791216445862920062254326836928492908707390803094713290365636206491574159575342242498247471322834083131803690759858449564915012975402611154014954564089884536544799791791633139402245008292739963047123140630293164004481931817622926922420554594456830403210706622407672145131341437888847179546402497885064077099592799177563429632162798451305995518777531165549529101903134242224078659806699803886258739161362838121542140372665264123590390285280812909866186962949727915945927440676661271031544607284087142411449209135173090568338374781944719473539017724290029390194493515805588275732872682711549705385662682296974545423348845064613875922932748278770500801634329675255204686247715385193534039006953398368626231369202255467220887514047153735227447869329754555632301388381660340146038107135127998113372945589993223656208089287048026054539935792252451571500278069329924926310631541517116599339501782992723778971600913093346530263473399354973029887885037381026730996159570120627131916149378455621855049691656974221630127468132357626484711764233473505572311516699687005091238650563910309013193476565531126204522722477037785373435117204711032741245458894371494452827816654178457816150126661210055749455441921089150335697380469360008616416174797990602138617751226558627474054927636277128138434159447902314415013827569547601018146772484737356736606496050243287871035182035139884677474539370124630356765183487770949401336605570652953144755034243438008017672263606189497169029381550471173235470363671111609335015384017771960232150288951232769251676534303756112895772611830001935749517798160771767474559962733862367610403828551230839010925721287968915870857529427486247077906604187513603472225176484504309875430369979203942665236506428996736204912948074792179636141350752949683575172764760564620893069783570980907088760249635639229370124723217972913995101479407145561902737323280961321598036799202081421403273924601653143319423358347085670398045099676872139075724403869433024859274744511260941086907363837064787463360212109190185205845630955659066274208053210319386076810508372353707541598820106482805260420896856062917569692481967511751773745042363373452135351830375100957443800441114848965226646478275828490348484016211716956779742660729773377632083128814021586289189693366801645836165148222314215857136648461375784251165156623493666439322364786293571057791275250096848551057967102490014454246757317080555997918979526713237789116328011224473426030692829792764340302833374136285419565480333734943947781689406341458533092493752226654268662064908334023817358628785496759248414135046535338074457881313969027609274760746419095731852229421717746652338595592334261064503291845534848937119710305561670941596086350264302212566813804687546592058204609078482534349033257145517473577488860722023701758705403232069510859302174067329322098719896947856030180066680961713151922786357457632835616769588369978767630923816874001957115517687529171262286559669038713304469714850803662033039054233495299670753831122805641121316358857575930584740259903523048139018309951545181568316338288791771936822947957618080461377517825522444804665644764928381283229871270138614319468115441641386504600011785014636254039597476628946147132366431960520610171476618022869758103799673880770669796486565331577370958545991942990891913895825237839290514173577303458710797757544578107792462834360194117583689441025450136091151417758634403900738312250221312614565548562101835142878952129580960103664178249100491779531972544720117412109038116915753603763016755382774925626050883062256415600594110623538695099746454020547099830852738963667542762044925350643840585033541530164502913225440836155757480303569207094869886333378460798722154230055128539757881485258809457883380206677164624431434328473524847189930572136016315772001628224181178981548485466050271951034693906391174224415649393803732294015206848363994643175274328576068979488215390055301210959910957001755317512038520639046881078638651032917739631343775713806004211965207509553136377477502278256381371805156582680518130604160527408270869367118761268070494696596652720970320919103967097449100190172546449294879165765941451914287737254659789609537309675191783087787322989524787018487516842956818541911401723310203781163398652960498498379561424818112245344372807444727177787442138820623715546923268681333621978076048660606208319824321197331101623922257810086191717146675021514656084534253393124551746363648310748950234615520979515766527864391474224539985794240839279929391711501089439944442937240913242925340673240273874820858367238169573131767112427169175572394410377116101786561307540794380365150547765953934478537508418276064137474298564230581184230364383192441914063673285711527952315378050263549587860049540966923955573836542916747022528418883474950481102487290317807625678274157765071017841858076433334741911126644333565231047762628865359842326845199624600407617216570070801903712287194999038218318080050494254684594540452580047229198559194050939622978373805706239557546665847810112628264528705744418165579739645369022715384673113526271880518926464729769669028159620425192212355031162565039923532360501764708355446692842408909672015148506407904263187686010265027041427655687692271013668515463699628951480700874430682302467866407429748887530959339311758170125912903571134384832219666408916827849455101432244370701012738312118350150059161033026354780648853776886246186703750653126009423407821517970201388346677877490603038432400601087978690548762567206126015115550859802705727684279317823722397971729747663167794680369354030893909002733447558758887291150388056383462452441246329515726385703807720752707427693529823126024287782840313448899790400548240002971872805529198413081178275487190222738202878714877899875865084148106700950648457612437564489242342480888994926972722104930591238740598943513043463022287900503751800562721959130310270694271937452412690138358428990929443084751851569602890519998559485353697849439559875364105026688631266716500509324456896557549609206599115817034423191423658109687438484507078242420138634759674966522339559414423865085188146085126255223732731927859714088131795525679519975535613993964956011295944939775378245698169863104293678197400820189889904609655129693683097089691998690768613942127898640570390587988257656939880585893314121335373618217698056702819210451073448943411072665944417057940367605896372587611482401086175487986127183945905024097433104412826469963212341895874276789338361037873196203171736704325974078749487346342279554192133830688193071047222532629296384600886054099918287296107822826350192459623940405411429050892330920124621808336778013561647411651556316355021388209124545381261238926584741768194747253180638671624415242208730132471905810746494879322490232554544342922671146694788501847994780836783077117865281317980502872659430138280383764189844897729654183637107366457656871071916513113887445361905397706482099080829872512953330714490391624848809552866097616429896630422063419576045693357285554614286465319736239308857711009176498894610258903255002044249440464265074462721489265005584037282378531643352280467331421092753556023157637337088342856364237758666927727160543224398194336591583746017580558999671681536242853424648841671006987477956754616504383576786108756739603701997511896797449484591699656342068639411448216955809876417857749931640769868689109741710181580638875600184227014762191284943785031557330072784246796138055742424673143108484428204797870670544475109754776038145963859004854741774994245445622687430347495197163430861012273708603915116110815771927576989899262980839880316328768744708203095956462080280439576706568537722422015232299210132532543562731182667985813998639793006900563679737142285915635660583764415015252081898168754196746312409174152862031826444097334084086272233185503667078996010278477712727738890318436481199458002247992792271639837525988242199472866438377083311671473108429082142745514720931119571869753158710867156143329929239040608036190043527271060531100663012496086877346306365087960932661611113382241342096219381954810527682368598923680753327944289216572593758994872746654652068303908586034751709171819303437489532304374739822666594022313209149223607776454159703906328744690346737553114752613401615318614899532789262705488735141431257430343368007243459048337105857217505682874620897748602444795687010467844434762471100195353614218329863839097806010589680865257223453713212743416026152166567316194958507907620020426635719098007144446796546652470678818648088948586308783178949793743471090637429662961151908931812510702301708939235908777978940408499447629760420186113797720140746357422173726502224455424886098397117461904718680563346691318295312211095698351638644010931363344797874196341435890917267262333073051307167515262121702152729081957621957843196292931435545656167565865704549990913478580521316317203764430260839783338516257876215185167687210248894251809825034335219904850937507946134527680482845139450806872415725064676384114499432046125433761838671039452275698387288806875014918111760860059224378833617204594631749721553073231147383678648241984718742877224482683051034507428901104087682707049354237937276511158037193361886359178552163106599254643574487021822635703415419587030152390805802867532573178245617614296887752513927132240120098655417048239830151453987888444779288042803213326160863828939477010766368334321088838429441072960482415516651289701865595868338821884989079407247722787042029401143860376973422615443734759160219350143414789621738574081676830748091072505013625237658108100167229044669786626567948463028085443265613135194876789600529169718273932506879610318232628989068564449470743470222047102547596562071026830058163355542674082657457419610130356584249704011020587892022205710765619508477085313866486340703456765758118386126893682214136029408629956996869626139401846336985793795903999301644160596179437251573933369293102813987640864977594484372520230657033138057638106468178903506135572795456045143615271214426576381361102351385421335753524539618300807399590234767098592885886398409283588581150560330393841925410139757504550292025998293154112617652865516323219682102083171795469002296628150458369935906449275089813095842490605234893848466737434798650219885990135526718081651158032471465277940247899551639337624615930380115321746471902083429144478415596786596527253216646316748061240836642689243244871672936299258132639008238936134329550414180093634616739298195599807584641936252420061031337526860780371837778609719390846307934072782158407782759836888969892670001942336144190385332783101776040207305050690432140750301044092508492128138968971451314855409480891010086605485790681704404677157494460080751459041636638957712868231100419402952800831024869457134152266300206847811782992119771316668365454505154896777362055008953698273840179780098190558982278090147164043551683227477528772591608290995229151874355554270886984129393124429921815739213138353469794925614655171560301806720017246518232834831322709575368750691647871551214534966081079150389683144266943319790879652104721849654191332364043176907797124395238595234062643530373491845039173710819964936868530140477493071171234291376092003396400435131156825596480637215777586230638567553132077145181115910114325213750331934000421954966746502610889063957601769612834812792961229211560913288406605989048753623196761625320859352140395953222214321942051456300082768838099983994078941607149537895943864117070146994941643264550278260930588001809823193684888428181048101243480431454420500549622473758344887386471529133049920093647057784382280073803963034584682355237500448185168701062887925963258662091542066362642263429212966166800924847116613888948661993915060961698325891477087934788745606702922166347309307618459430186233900629068889163093219669732737284740797225685301247547686672707133772726509026395045329785208299666255443260905563425746738479667833762802828701172817540610620609480740197441716962862733618294649523968745739998706726613884386322902569966986166971170415829085542263424105469078422847746154668250679746723545092550053591578598790709858849630761195155024833733998129044926962978628605854347012659030726421467174266451138305075791865251722853387738038615269681399389891159031571703201067660428733398349261853157735003369156921133106158029817795414573997777033367507475494914058343976898615718388715780446293979460677113038308862513841274328733181913679106663815960276819072387104563706685447660684003429990800429379561331703403049591412646294243993547367385289994442819717384187508785996820784738784860756535175705918497671017921401000275220384540698642063975600680866912587071063439498124949835766802659579306397733366883531110153850948326565402750864227489628385869835397595843203678143494348269415195265508935972079395196671188456850520790645629530656340958775188904335339634712309882423678406440573412044505758856302609134162655653399735210395144736791122215069351190726010870957083936148431397089788934228077186425061565031829394873747845199538188791188446522393676866686275730337153640792419708491818785854103007577810282639378847227481497456663038989105895575202899302032308290714353206880176419086645871884489670984168309428019542584387257648831639177795198164280527141988414393530195527355126246374333771784543805547293612527672947856034379575360904995436301389216195377539942388723253438694338517505806640112093077675083896714525172607884575084428613218381510379229405426696224441147972134963266430941962843859353679319596509624730508427337289248803941300403406429191008562974069266795884282692670640054850912976342451311451857225155762617409795439509245653026600826357544213772721894134066065448117635955185345579186515834992257700363197469995798949600033298189866938931179940501647412238245874246998347369847162190879275406643579327257625194106895843622013516941609443938998241339634227481226575928334383823049159475956897624383717613098710908958281881317768368414655832550423956107060171438299729426260978182984194411249843124245289487918510203643829792341950946395723082764702149447631568511696996607129524464961785312773114432200571662720852623322407100976935837083564585062076149046804518399799008721915809218556131526133159919946151916661444055270371408626021161048333752954442354257466878839280485385302765714894862489823817019728277463496938542925491244434326356737101461034122225507774670015002821073434354547330465718440711970756840781471628514874841949267758211059004025913737554803152797407905768293613180637478176247147160556224384409872197698868582860394524755883177150235211973298549066396298169567239240737915755759442862328595016766809431080445811187048522397048134726334494482476900386707780449311063690109197559967801845857250254310703436266739986117932437040921228449559505174261953759461590405017435491315893849052806282277929188895983262648632098603597197101482576376375416809142248111578597329264484532585486320815957022511022837434709507985869596352417309945939829596534701636631188162667878357525445990014287311009467871686391407354717148984517092379474580331453751421376311609987183544848893645223432122897380396482705247259096186052625895203138441190037980661936476679165189915217670838046382458064402488383489375014920417614478039320655526440564976307297891708157796839638306751179251202376675805345697843156282759221254463101811882623678087279422836162736454613396611991908698774650142910257920810991371734644050876355241338629302558748997175304088977433308465822264439902312801734030327137548608281528197680488874729136236576318765305667690403775734875259899590106796974692081590965011511734337394460140457476349486386458285250166368450829207274637722738385869531279555402498154670735989999097337835277130349079945013958897288063941439554997837273014146265451137844088479126799041500939582943005505929209968195982515497217197829426089494281833360947564960935542394223829462665396529621107281693232174450707882230032541596894142617127870811107140638540949376877776050708520218318594798922407642548712757227142390567158864327330625877880380528004134897862217691351332890915562249506875456564444587135340598464496067412693951743842662896304887069528663212549499449677202430388899242906008892758245102109387408529575685845082027699361635670274812887440261973424726468322525285452126054716773004641746143070276051175375536671140870572515745012982439622870528850505665610583856885187245652251755851564328979575819931703553050141568025678501897692885562725033598665075757628660436359360758824873976436398578890652935826388862293142488598117216231615625002406078858501707782572614998399496070498370318341803548154686097233884984593330993879782523692428087869700556969001795560264039310135452038090242737016647911977299305422742253747294268780737849379083273871943539377354916597445004897674334223236057189224298543043734571246186757730334110404955927494066995167245143049401884059467968670737840568323548668823469990963761761867970749451930352062394773643316332238948829664518394229771642219075510363958763992013859332166747974782743508450966292330315423295729730897781250958728690674123771129058395814996976508103033644704062722926029972253513381722286045379015407122412030404909086325613034220243047827208541612395776071247389136095836995286626696361243119074458684416935662358262751207511301571824856908755538773644196862833937461319243018929316522648526169993144054258544037235047341252272508285403187005018437556652770815437761636498522846258186689175352667343292423237952649635503498593315485477125219957271591784045113674573130405484186759559185816398090014933431872286383399001652974486029200349589423858474126293093060701650338338911773500400942700065120537781105879603250396347680824171710179061056978811154105847446861113660646263895676707131280023401555626453637270663810406132211922998674082522726096676469802763375123153325149334338611793820462774681000272956790235082300470902054606205938461866257055612344585903516400276969943963266686872510449396799789887645898797961123893304294587489500802752590614474681426120790780705435954309376070704692919759982610651580014870621592225161401742681807163581171830233811027094903861812010403604384804066845738492937871403921342591975040968162173459077527468223326896751699321716593431360287280919770324133847493375143655275455764712477278602474007335992425699001779385395077494398020961757714839342079371511732844219606829371181544387113090480942765308151899936928702031425471051410105735385494431339492739948226029380269995891447321688206692795713294771583024196879525156634135187473501299696123177837973988291070818388710054480320821374262492600345136668866586358341299887335064747297736324494773317269348873316951515480981448732027639943947973843146789748485265437086443201896099086191258543453269581570746956003631109590909069283071698322683395377572134544230307396941193544594397785662495513740011174420837792848795282231602405437748141399542023192932696624567737351611630073239077581212882820533257837489829023424417276648888063101762194386070176512075241316289743464812670272411018873567334737664830415691896420346275586652590101875960615186449040284626527869810028436421684027352304845940528368646053491584434837548737650169548029209132183192614961409255185547199915814179549851880491369025696174125635612802058095834105449495408016588351941968257654006475313163596139836401952421242823776580545363755394410196896209357101121697940863878187102247080709901637802735796960940298496527974455253196395983586650631707426139285272437380696066628625634273412923767087971214582010831763182341159350501581006482139382013430522875022689180646582148588970532783387469314941349033947466041086540500214041190427830719405472331222653070396283714865640135610824816220120595151554429357923146465096585172899081382771293134203163363067883232629135632645062315642291006248878747950892934229117316318700345249175215889370228763736603926491661550241306421957081250084907118520258013955789601901972914840141640172123524710550202806674040240215537416415114698727567510532394224077728341922361617097082976589141437018674895888625512102660325662788554621583773813569658191652701141276743260201018010034856373337767640632933030963808766669837011460559737565840687229504013947664073304161291965893557814181291846467599478167956961255662251068115193467809466338030569705509495525804038937347293499071417575661990806146705779155378161076349842528520666235235804155670792911056114916132824167484148684379041712138740444219382687262613268118273356626889082000480982651465413576099667896144084708165329840114844421212378347976974436541278720190092878921008491425794906438207318460089096958047160960862417664283539549435600587602420254847050569469030733396598663594650843350793023673194864365539671699859267439682468117811072534354123349210607023273601253562516701804812186470278776477872928663107679531149738577399768552803853738082213628058069035670503965029088682196767307591537156396024605702163183659700044645949266046981305554302965839971942019307509552287300267132043257699711838071669658836126337004065870763138619457348616147906055874164714827566846913002245912928634458552294734823677609381186000002644664562301670924654269800529312398389709081792464952255915366519645096205865810715108976030193463185308623362286230996641276095849866178729019043706274820632018120117420691116008876663579976836045967624871524933257859610750938144065762546849641501986280083487024706118047263101306141083031755229615287082396378377564475909057512298598056612657719987218133640387305525957489579922783593343512693700525859483608917747775790411897298793872279301489049206524062012594205244370282090670851184765638980198833087681813437057630325036563135237833114725147092950820213219948662796375386903216214938068042576048010081777256219178728104247576278888473362441013204931351810698186756658027883977501523196592582124572797110794828900020978644881902869092158454862430738412188023953191940253321873650989775187190838379276820170184123393739856268441617191550930649668599015718020333512033336956071687691225635570851953139544023001963011923220970323442887709634083812369433460410187897610521852951206847756148212596469408799233741507543644454959148589364253190717313794741107731584201226766048492757525643964819318364449450037106330458451906310601717612422627062577674211313858865422245411558354803364727064489786764203864933320903831731917335411846429011617959482663472253231292402037558513655589931656599091869448886305703000324643329689971263035819481618938557614212825209398771902536688099799305241665030008679782059726741040646906208546679830164654625760028666254111646000156421395085413769324118457620018928045218567541130066387807663121565198384733273476988893181158764161070048988688371323166647604980155450940796938150072155871047316090264481540279339605451204610449641654555434846962322080506181857167381739367922144581981419782372214968389907454278280557754237979697379537582584311158120262842181225111048248274120704652461172677108870855873608840083614991501734988744143289100451970088150869287787589336041401525387218972562568732595501459606410173602976543028733903978341694256088591501063035992644244014806663874947977722051045151592227443906010036657270637160258534780761528930316665938696727990560132798368129809412459631687648700982012235873803178022446893690318770059775154153244526077660709096531464401994577898232551099616170805408442986512304869926055101770648369890252460286852251823289184683677491007632100789477126979741176195589439634282952789704685452628485258103501023239897304771566523045605107413578874796101595785350421658957780267523240874319663899401478743143859499183925035139521418309761251002732797479880105257393220765278152530446810882343632890755025552634898741399979480330981134372177530234132794434527940147768756445496538713856722538846711807468796145502006770845166009020614670019146728312137296353286301522122141098095934495096017304888005908915656559965612915419823018330883616945007141744128470463082518052761020494893553720164591024522797845049402353888209473840207392056873015707020112338520191273151444830222843114637056511158971623664846115426249755362337010127075879887051848901534547482110147015147966493631248656196956015800022601364240681395390255240861939005389762645875600459953552875658787990515563453950488800040061868942348432164248257532033269774974624205275485854590619576749827820806557803954133701473018644440601772214475156163833185858230760794730007031735528627021967437986174594874166741165110280691310648143945133927567780382072790444854190962395002177364637589143428687717286542168704690249866535002786007198643718668316264051838432470657745307556819986944449533351217905655513372353861877865406067893531814748497732149342835840102195167042529943275708661156813994660493754309099091005612738289685361265603986040171427635730167734603441519995358522223339735738432245513238106761797682035830265971771503755143620056501114026241304798515342232638560054179664834501904502841493445144269619726521260963445287753450911528879386093760204134545839281059133484359539238444531391190886155302508372728826174839464888301763663410495744852798312397851817219600493302278024487217390220745273546536972387217247428178463161295260652220274220842220718752832159520103481417653040278755151026241216528064315993617666201101637837104165038496944579455113398287523080781806854174641207708899952919164263584497752448402997002324225879612806537658437996460135359120903225958545103865012170491007944683416505976968690753635397001201442388772827068095936571018491242400194444663669604417547692997109376614383692807804492059740756859040178136829538215765109146220334431487662588451695154745395159085488849961115803345477635342229956998545290197325013839798514967074431161617250447710193725279251814664317970095247427871146233951674916758126744045060811149440187016890129531331645465372760395748120530385328371981896882409609330470564109283850177292209750839502824070480955934455915492239016879817097453584928145442304068016144596003812985983796517356657044021268893086771587040798456571918441784170991506924945691196718192142122296218712284835418897973140535644675778319090550680837462112021985179620106747051121827553966987481807806923497261073678212183558629862952381240681143292326102096090982690837357253192240052962351236625790357042619041361367149705020133174594699769719445086808064440530038970738065593593222307894447060978054393570333701079038204292354837951905092493090423263148493547209987680544416229112509531075816425902945842195325671396384161036406648656384468876839343476985558622929135760369701189089804187660512928240133725914829664496058115554042792313670032963483200816493494777582302697376491776596950492919047579747474383177517288537646244733647086889813045647811464715908579872663646438859280614989324785790190890124385152196619234986614817929015857189917768479618263388271127092773385413977049747718593555274337730585924867512596639979196504104448750183887120868169210084476852836523042989392116526777821564608966982556980679525905051633087669042175796943723496784667313767353184826396525352548148850679578833254544538024467003813559073731682396504016052442298183026805088916237709644095171258687915623525793603796166946689717026469534979686896535156250692473522694079453100442863182926745681286305672676272018429417705989995133538757522891854249720619629356799051258448990590999729786419324085334170648466828779743106392279782670652561289235169345410269812879324591253610060111797878386957381128125472540547487341931218493880517211083463294590500984716514581782243273301347100562377431431648700698023041255457254619662172948793787858730316778503276067201429967387677797662063565221512831505465544558338237379548888664852574801993983680907062553520142991528849260699846730981905094057183190351830401423754941214533118593874935112531364322694129088168052572136580791867271986857774979921932643776848457222302480280105694250793641879016647027335175236415301075903284625583118946548964666069525796598647824198744717567571658557023484329014870019105363837767234854320622314459691903338955718879812017293527249989484485545713452156007110077551446517416016412547937313449357482770564744210307564998627842817861813628957541308436975584470895527885792230070827228288600036131657914929404665199608874599905862003415366850458528356877117741025228380553886980758069527038253387453231149605460324799804173673952895955369248824053745091116784414616549364085306845538624880372299855434925421646360811096564127056750117482730980533173597406147894669349889268545413609806012417894427712168967836729246775022101664293532981730570369332824428489939366948133991904822069091791547863490809286361318677663658575122650210940586159450536686895114452894698723280892988770647362386748435017521805172580545461050420097477935155829627559649499376882400348903646907225218116124477784934506867513308448654214698384036309081359623145591209640936352561538494521891587641468506683493226581420443100858893889346124296560228284970102839117943248733139530884944702933894200541722364504762920102144567070305688561004500423592440059213289276869992780626696552531652128083788297691417240887453291444246837286684171004114309164149019174068860237295738167503317504541651664328747081529155030262683368317061699679243784463330269683952755819954750396978012701350576714795344246583449767773600180900883927064924162253917638387245533350492519205670723194657859423770864056081269664505864638621613812450267846988798344409384489782211083567141822499329224900926384380571787137773011804617431089085442495944135905487872509577027295966279065454270137413756305150992479029997589775181553172616784002244128213900711994164651767366449567634242955842728882748475774740040210344149794888919602909537052804857960167761645386524836768000181849657940173747197005946450816970447971880164676319750096985684476596465957574817808997957641262235477177436577886671587426106540343703592249009161625641946672243714892001009373816480768895896254641371110867154940253354798236018897233219249543005490395343486272340207492401492888045882330580448436697974331475090033720402563704812983657894089751727156794785427730778732074581658128817532163375121147875434601182677988327436498815235619044649783735671878728853413480413597822078591970000290334827744171016238006049107500797433745419560870425425631086758777101459444963699884641785957671071659218647313627418610053542311270449776004566868901941125604256202462215275430115643058850157111591249425287201311643178071409274631484011782479793278618037632213522484931834301189272285349519298199281600115093642479590192818186706415700772313836863060174384246770331309718453990554910810112918767831620594342400917381840218974965070458360624847430649415028000599608735142862972223584397256252652307875450391598413819676900962848889178225458731761693630202987746519505725366546930251229295815039368091326128620936561182449919913866148869847618225827685379431228858712130937722053392744694163476793628370172304213514808126477919411229659026857028991542718887144710909995433146138000718992282998956304290489201235764548302475511110306115303589676784565452122352731466324775103215644483389337086805179670162046955183884747636887231686628659006783223510781541019686655398444029237704543871044292841721611326283206757136207936777480810928255678336543474021294544099509619561535789650483783824930758609443322878953927500158270095351035891694432564483115977930249105925939265102586529495821876600898340488255861079402235140937646530353475555304757278331336984449005810166360290956214738788239410590123459781494757598784771501177021834585851228602752536008816008875081243572846059109400227055910980860041930856747629651781847157536907594411661534123148607898239265311206209732863990563182876502549747921319091661888661759793937038119118461935091990804440541246138223882794186522686597953078777102210748832670353829477224360556442384119104737288674534295504366844525395448439489075299156571835544409415268227674911435173310398434290780341555334504317182332000194081734373351219035767305028218595944948564802533327996664941769847643494511558591368663243085309520643620232468406944911161859424684314505405246601387909062243128620381513173035168114774558672018536200101953466099150625918541326591843992468184289036125288487159424891380472549301540757984002793721273462710418487508269992999312243668535038422364780880989607948142338618506664920730213741682684162661469799429951939628766375280416146970038379652327445966405721735645434943739414294021627232417863531496309945039795021936492735755510915557899210996222946819964419176992819757029835761278708050635071063622640593752333587340245576840391800493705169051596496242934025618517171569403377332156236660585424517781374742676361374759866007150739299427926441439801629807837094333993382832632821228147029723495849538067077013871580062399543699586753950341452245959427470856836124383669799284361317602278857184891897797197023126089465962435198903608282976678213257490495868531142698340177387213682360911446870173729172599883763124040704962886307257334946369548902216853569070618071041500655709393792414117255585838559627822953435473761196262551386671527081705832417815754933081925875187708886309978803737101024864802634511044941318989583674996589292785984080040101676662674572867750043159248915411210808108743104466339545103522484099925450411912464687791728169072503011638256166916993182804666604074196706356161381354419131268941129637232507264320830922432228291312380827385316113288360317586172889699883541565702742781293128748646337746582493998173039892247284356128093283597616751649678737161211149715436568662721112809970366181955481910430853210660496185848862143958327551155935246704751318020228559391776695686390562829545553901376887738051360381521457405648181415329445769163911308339743409546281515526535582798023928487177185213606826113423662872608926296285835216785173656168155787637046145831708398193237510181607768458497685466825413113579760200236300259963384962598368520600237968965283233145619386233579722376295024338089858323325509574243120361625103425356565703802149699942844913191094073250608710436624024197433678001261207768190784910149020131469725871353191390629195170819732803392367260052372997901271931717667959042661548624164146369150378440375890297603055903579095764592573633349681403772875798982812791202721777079106521965134040989168758739325925557035133820724605712197282022049215361311199685528472345632659311478744150655605106640126924752523620413652111960500666904832402762584474071043818476482901088935753158123251548429124511145828892291184947457657528359614074723186494715735907540975420623500571079320721775022176720380583351475077186965312222171868769201333035775339377205354554807558409900373950734035754496459391706663640588493258778260409921401654803330290575418773893609146237545164995118604274396267102277194092429423720504508921523080171295062104199527357832395784941330236774722944327960030361030798877044482543930675016841004876331869418096546166251890342592062679638779483985905456429267897894161594537288970286702467462351547479638383686059162117481736039256306409304165570016177734336088153877694912158282266681475939413078871801701941358989698181893219618445045119164301036379809521949538561404198621169307780015334636337738668955485673474693766319002594326463891647908059676832899268132828801563598715436897553067059817374471878244759397209457376891254342963440212995407194271158850913816468514329826558565435059883723726993269198366490711290198956714093250891977298488134634284802539627578956816686817231409171775883381229502501563538003646692558995747631636545645263323128194463418874962696443009770342806541998813804886061738666223524077279839933417292292738355566777495275142948000370382000147711230227627785040644834521767622438447442094331204892801208493420952068080238411108832532899380113971409678834243437332900209654051326161171779249736371471444449732303868564066203122097856483551159223933109165134458468282402984291744936648419394843001666729443975020244086791558711984982189628708637249573279346931080829162334351194519931285867469632969368669704484766341161152231032566952797657626070005586201745529591717803349119339881057558412894495177686996366447467462134561172375888428103270288078955355440861672532358669254649912002505183715072939390626644587605465428742737181917790236489431598629230151643168260114250116140333730036734614682587384182937547109627688588002699914694917968060363889124602816921989000241285138142545013118902602074924702056261084189199646239965936672697415753329151341459849112170805144515780445620149810334637833709961683048026227593867734751371063748112553040922782294565998483807577929556453041677034017710576106723421912537202955475825924155190516728800867055027418219775323788046763778054560817844790856688402429201041424489307482723681611804931569331246063309134817731233206622289788327384124003870505237969150355293935646682876242424194829025953879095184637439353708277552203108702200172117452168998768258566111473642602623015362399463909867641737294145027154548964282304911135604563562378014622324633008607845356789544332396951083504551298682495021625060517114976722843825111633063776920810556315826295302228729561706139661336961163290096737549263163450484905586771978835094592586439320594469174464690671058885305480006193176381543077056151179974571189713928550750002668056559289268680283835563473533457062239308354573320413087250818233860778388519336592616204725899000742887026545329344823144677723649811475882469501561971324137091742383288431754711194154783001961540165568701191912736366627364914090196849447764644026858438944743615643625873484870681879617609965451294227877848055997923762470764337481315470097074584558168208852935650850223245814936301862706883419597697003789945056109816862102552585930244495050631855291724536983014562416781601877074261731921427709601525354738987109717365134896886608774993850582325196105799103666422286803916745174491546100687022993571428908867497638477754668977046570110369227761035381779045955781597523008993487320490972743164233374467849911146583734545846607802521917120969502150208104761718267212290834260044171156752137982833502285990005404421843300305932443158342265850878645851566843238520576068765163923784328541843343886413660370417497375183593321087863441261909159045255862992837891313290470367526304567282162039519971535906623117845388640913538859379128726403872818447477040391122889723755634332016145243167620029548652545592999542964891485333813386951900631263230418391507599090523767035005998550207852649754946400887582140356864004000612624344282542408567946066043592072318622896122739647284735541452398585321225735561821902890327984477510871122964192354184035562680745030982578044335122257003582573944805304736911335242853021343763715362527843040849921458312320984156898554237541081551167956086332890262890327919716907078851177660971491767222892744312565045869483357191394545417560639398841819745284257571942324189335938049696966764220077285499223100933125530656135872726196677111985679399792385832152229838235179224357323154445578143884666550021632218927206828186647147836844737725442575333329452739686475257996706807479235609925041812515214503402654188497650877035001861884055508040693606082403814187243180949567736691757172523129346204251463519215355718626008201988190768344614326492318709893589076187015825686363676775889304793081537286941849698454485333677794845951796126756871969304168701529990922655873460149283254170033376221210989629853260985491135065416571440839305699508009386268121364901770370482014918006144869654416586808316259753453038832005068885704554383049914806633668591114720482525514103776857520628575629757845022247071192967686525172052364356322576769421960418302905162505413915108006656967339940005984458472867940076312048306816690981389181632982268169402788192155114472908148806074308054384323688334462345633466926619936208895860524282911785333828557649470992892786397593431090087214815026072425961638508329394200709501635372164010656830614393478250312402675208656179083926562483698864890956498724358002284311083107411230493803704152793458499571788840901824122281674045971594833743526623205129749497483246042766996012177139739537183413248026769437061629611697841725913874266454637851218909439951950796166538174680750258770791904547073725141521163253871423335445895237066853869203993027019989588478838314422345970713549027045900779264581545417122443022094240202419939482546140403755842060787623333405916779957237220576250365562566271958062004766421513256331623480513416570050180014557216448755321577180573729948482910541710262497850230640046718667126468585934630379737219501899348921778786795488062875748788476508701519659092181601473691440001131517430617871526948957557946317169894228181857949929678204174420114121983595502623323095053440596913489371477191339706041265694450828106334224665099388499658661638151361219651250503122551328425485510251472403043674606289718153145490842497688667535861544768808404708862481081002683153982573081751287189086833768781984089027165308502598468871761415373531345465986319968055354395230952158331396167782316676516788552387676046502042900605571890207553761621419756912883322454051115480408424532875419139057943330114650411037947940804528202791577771285856201253961236849796272169467916658874220920584490558597485254204058415712184700800789666216365736164686957504455041007384942038217290871549366539432290178888604893963428883014018130231483109033064288131244214447051808305490267145036586101917091530364133542311077376936799144516311978314257420981483759865305975286170808872237191765154494095076573126377587728322673203691803761092255230202918926131315986402642240043973831439793003265934287329297410139270407404119064733492380954995393443126975853811334562222755052828085937195065626454508862335273352378070681103292442623116182141395496066497392402063227379314682500370834017358676562501195676798242698977475779446143251493356890625614684450664008706770423630594496761422384763217855424627884362884955714594534319648084147730735409452383532770865405963084904984412050833042445554393936908164333660167064760056296581487638714357841054470455569068712229904818410882166259892598718666261976077107485840558616261762517413550914773707258905990816760503424751640080494100465476521905922924376102743935791179907418769287422758517363435773135355221001966071223337830236621817467939753949600098080349912080105011880095779951920562792955705884789729010386284932808695273941186166794988719935673804623255179657680094442172938092621285172980830102327034227542773186557198330502888501766136239335217949201732116748684967532124741057779192468957310445908832497919961039375730554177023321149686943931225955636639666550712004892249947772463217208819137722892086575837502770083163910699730554077711694212330890343798132628823720713600373445865722761767958859927883542316268641685257069312270440472439744358953990126566156804154162424104284980247963768440681762233181633030839483712336594906847352939134364754384817689872128211124868784267081877987454145179366996417981541645240715193290668398066395233492858526228071553027111698394611431511833176446969676235595806730030010343401746927387768880753995397797854961438004038121102291654101133709522163723886700517932009302265933672005738664520172331598573595522217250717862964392964035595138004856582658059342315311630869928300413451634138068210106506267868976033502660409713420445455456322026489482527158963057333068620477054626595523476210859044950093177759821177591002663041677461489007721264845174663054945809873939983360087378414653779980769498272272637398163260778324096555477220407089768895537397424886523835875514325154561734372863243838895006719388555179757399356067830791729818670429576186197225536381851208197713384375430544353432629044758107951511818714450756973731956780242007022425302057854214261666366334329860686078800357287992890907963201116906762517760024670901343727184162114014255834616127444335208652419405801606356658480240475035594482804784680047054429911149478052463424755509459409328038798394570085886330568579294832424001587679330832319385115628361867581061409398869904596874031220930170045856131341627109665919415326189324577933850774325643489246498869493951695691819557562016429567400303532228255396284977129339423204975955196509060002862985926257025655116520172787835449893254073451937533341687472169586095620560344215663986077101308396923146174991858840045916230408758487112238941409406702535902921745509704235541850248739766288987096958422956561548853619304384250579515887444638864461739968824342880939735117252106924563673776323834088282456366720648161814635528609296949072326825027498711213575409069964592807627626527000456786161486257099810117227952729154788656522218236215878368578507560950670665695391321450450839877875877015290246388481603217549239307318975439976051672244629787769566644054563374036369981797943703302414669317515800390784136343592743204669802006218020406474113526337654586435397808785154221532758730507961618048516838719819548870618413922376055634022741122311444392883489501616954608856048406004194463846520482986857526518494454783577274649109380321305317065129398028329474390213515126776382815957476511409097566864540783579078738851791392204404513914240936509973606179221875108017811539972342837182852595897848917230173265615837909862832422619858170052295868794858813067245624026069854878807144784787554180677835195126621147001264456541558595463023384931904818958663319488358425286000690214621813353038719818921604243434150570962965782787432216009171218502128696726397080987607084436304913413666125781590177292917638717331896069005295840004617620583389018764549121795989939337617507802388684729481062496204776370893422408079733573346985182590345783742804167024590673399126835754028481772753223163250915386834628397048717143021509154336704341275984131797714395059412926337485162473540759910352489941545343943109323847617411706895268352490134642893102567582311165960045515760063774518462065001146020688988187766366722310246762566509356276074860035603660635105306113685712161460164601674359204451072900052988433631213123345778140584242078497775616010315899772499213672039031470202717838056658748456296873734795410136443654689748375804994033681705516248484222842786235052494414328962500127777291742231878527322153248444214953111407305478156775431031763402305573462991903199810413993567350103921512117353234791197206860588218109348818308781531355778384646132082803832434428551337879365712149464416807196632071919575725115897097033762555590098917524148852024801210328694956461841547190280079009292233462469760911637388074162394814150916790887753748201292572345031514524008554111830205100149863769276137848311722429460189475698981357062919413601141952012208621063072819856793187192483803646222847728938855996200592068174095612572325366140306496734907915336139804718614708804918058006544978774784697612416276676510581385612364481018294043700503039674950710817677859043459352232058916655768158811714093213993656542651937844478762199388761855156728102027078098384709741515621313862077935898604772022181431130637412783061492564184439449965367796170825056998881318942470549055353023223992848252356651370120259520506779083891560970560819851927332548063255993522561169088806023051790125498287042820520263034161837983874718324431854781093073414879722639065979746616368633850648868424325210153181574495002245881253547367279565445977532295501889588617610437498177751166300263271670741478071589062628536545337628441670555563690388676998526284755488048360272070458353492463264842977711252246932255640133438788723905936976542073792222222841639450594646283898911800615246135798090453362801968652317986026989662267831986696310401228766460709326949611061200760891023833720021093807826134819137220588344432269298865516485267153658793583243320590907641605220225133199921192240600065752322902807065127595579143738044201728973225358462995934755181935861232617264437484884514028028185180475949934047921101140420145483421530909949092311981688369114223849778907621203892179647341150459829358883106214091932815258674737419156004402577509024590035713988673061382017899894652021960667363454176365518179700198543164921843389661477256176613707099647049171745378640923891887842368067965126388582016854798504634913558045728944765286384485237950866567293860723774079117639372317996476061307536902431435374986092080930692637166507788395703352360133272850725752351233077511045355835154147882567310283707083023531046429404768083118471781948245668355753139508355662889317940802347699589716362967147899677676251182901119090477095392765065061374001291983900180600139679084968059283418184293783912012403452313422318990366129485619650634889754243539495156970798369378072089384473007835517962915110800648720482017149448247435726797637372913399007348553179953790996146926768463994126996761052294162275193799130951086040730888015366227274150284929113202541460826983158199545388451746483488155082405319524851030541843262690083318833936551370556714337095921044536111864267332788025377075583964818765546678764583077847262953541493642038994976121151832702362443322717960823204041535444685224014804783854457958597665620261590834904683272638246391523751234929221779918440534350734980834945214124392581932599647780056169266360945136863077432128508542007154662687188513918263895590605939986379926995076273908782037970625474177691858097330758420892322647186500140593837201603878962891656031017837675501044573488326019444831588997768790564858519011604309848364147112581675242264164683465166020374329747054714010983370087917474386272946089880929168580047205459033527635611711320479947692011539364247540389000602770655561401114351407423496282759822001927498100053056966930820984197469062163907461332283597602665599969878236505556984779405224207413726333479615406148937954879488374875206437167016269817814559979383394473727608331516339410917342265943899469738287698074417230916618391718254034135415731353179596625689592352594920925278640121384684548233574890433414621802000811340405154539241813664235577728081503592040517822167391618539423679277642444287578274093070817106990500443061140514749712601574699079055964488123053743690756839446613837689546587631134494729843398158613393839361755584238887407983009819312431502845479957840868750391377079978875824050645395112724056221742264468285628821645996694673199127710518172907267894025596919972583034690546958757315950088358516059025804858813802383168925366949311283984928280305796184271223716326488758978904121028643777135565286721741585689911974794896091615841831485343994086098771632129116679296392345228583513939291333554732413381344531640405662725185504083957177245065195977232485559437720881199885110359115347687124002092063541614601838322720536109522005221041536537720500448872270694846109853444213901605751257514193739549055675885675451280372022289848565745671541034313813220677497653763772806848759110979907660820916752950935271464902662032997614214901449794517562678423746570344082390272796045353664256737144329495121902480957215923928812317157811938267708723622939227506136905991181928901960923060762996385965990731747143245412617673366359197328500324133803028208466820230179206779863860275049231319972481845482926446466798165640734839526791102908518145002377914080146051552940279234680408060832152159474342088638072866935884149559582727420288601765318258384897809230613838638473912718968535205957139683813094555989837120360353044282775628602015247697501968499677512895405848083726077620128567862449610376948973366395974229567961434461744019214169632051664802669539766685547105400460726419005587690521740538677767344222362705703693169225637139917304628375241681144354083113100904468420731663273996556635814516446934303708791328667345198289739524423825744375486311602852374521970213101604283456921812338927271292776790567890479056980913221724177501582466404964949145498710585662330309769340256023354588363462741491964174258147970688650885327769385956605139851250597985528246981045475558211640011277349746431752604210029763200531372247912205477393219846407512776134146545507277844851226388066068680397301663044908197675016207839185635045162004280344554492354899020718777056913510148107298977513451837336059239242211766572872056310590898237315383738984476953084482237373624501226931780240820805538090510207769306213216282341996875022290982619135084079122457925748478504381857171079871051029848110182663764412894609901081985132874646002503541696052091408912229040464731070356834631851836504793077110387680230479426963170168326976654449009783349612723264221735942420278496948798396798044857208064064550374927671411085677330807249232304518370715457363035753220882065600755120885933600776030327438064895167945719831652359542178607260713991609744042688268859541884900850888948552904184669318276553668192616385128140103988008424796215618139915444978629524595916033374108158805095498402481136225490722259135043759254431028436770085275307045034657623290425368833920182676089062211481499974369304292528350900331720274994723090941891208829598557135435386767947018163562767699549797610771498791753058163574408841326775436281332835426026386495046990061512136406930211472924050844939431846465085131089630407729695398995445397926982971768403515382034727108038444443664170013446165600862919235779555994595349106108020148070986266635359469509349392762879485563395252319479794162909411324048559042194022097269441862167097337718191630086760220113237054878383378511257554477787423892820085795906032309591880985030846848870719668006194334384930723115081006058079040916755173764487829779896096760587784936297552550972955339020140338880442764776504530741028704676111291704843275635090339965453384326461867942220345437494042790794166869469832440125771237872861825289562750998467396980616462454780594678912761714861832555937955537217085561800130473303807661318321598018089012388749890847109178895775562446452569072473715628611116972326873174612002472306422254933208247664475552118340603941857377427389776766644583157170345046261762639248526416968424960028127669785735326492576417727979412350729463599374547021922690078562992370778310713629198504302370142700340525308313894648080555611521273193701722559402947576049871992250668280263078730169735399135194007188613514231729620882539990829539889183762636679857410515014557674685002631061199482124012257795113046427107662145863020784078112885144909556977096280205709733445449830630336550073716877129422892316888636959891105600490848500920438358041912670341079933824817525183937402218428168194511558365677982188180162796354703477619205407406184961353856733008039898542540797689701902757530967702143760546295932002158884423017416483574774881843451367690746889508642688367186260765263121454712965256479297917191913483775594562944716401192345317803486344491469459730864356607870994603504521765084439787252833709984604779024231959637295462038377700712846497240415604051087394655425266192804985523251803737170536046486573395470566377210670499376009827665228657902264902774901527800602067707527691727969399639174665877614312708898911127419842038306757935556221382274413644883170700968857095698107189385090435651827397159738336850674607485106503680854244920081917635664573898069027096666893388507683011089895527357117426064284466678543187726431243838150197683755245296906684231449814616068283496375988554470891748578146776963499365643571210960417166319114631221960071610270199727818803980797514896063725259274327531404097103934822757897021167531435361404964578619276732802237113004680443746791474465787249344822450067855286202620004128696618852085377774860043442261058875676168977608445595333570814109586716618395563015795538345699151495708963915918859494800950483635275163190686574789004055865011649536789133677443747726547423676158134146403553985675487288932589231129921920318772593398287027555173766208519274010692691946795946460785963950634609159121091433204727917431623241751743958409138482496152684812708324005704821152054731557697201136982265319697263764157214328874817404707426789260650607168181632502376884469513639294830326328968992953174723127438817160762713467987104054820696562792344633552514241906879304532007802409090673410958180047893244432976358681565476527102154428569367737067721541844366767705859798404648986889257808128541116226456240360724444387015475361804451497733587204261603166400337114271621121062302161240566463650809304970363470146839793995914335809019987848646471181718932645826966267732010056345975578734218318017452758310966529904636969065622481067014869155295471392720289336393889938056449450288288301752944621160613315631151167663497355307169567771950478417745907750728658711841612610385537711675837932636058866042934004857499025020219965063734904671772862352295344299928994427859688236988573512932030229405965108489909069256078567909344701406564417910338685706907055942173560601447507321635999777713240579897958601526171157735967741025627106883236534922304675473566119445169619569557384605509721624666346070372301157196085184288926243239154416817021109833484960670984226975519967289288190828987081086778939972165234855149980615978627771002470597380039085233102586602289836527580547763112364091552307836318121184943847801962914385737102710764858164161345576842783273989766112007565712625237081948873792498778716256461086364282576724202728993905955690776619776632317905440573281773226871845530160032441095781543912283995608858085445716075630559547488917321566762288729001479622321907234050069183398550230027290373098485945695195846693577628935421390292583597152501292725390203045289569943789953739762500042597125879328297018460895589550615386452699787517673109819730467730130656738438313898353772638996789044449376121833012578158366229914228270217968633989926813907241588326264307413968174728728091036954518882409093832358591520287777349549040141326233852621457478680432949758634072706048313219248034243758531191965653585876865145104506350136187413600440109962774679022828908448503544789100143480263283856545305920907792241659681000364339474842147482368934637498140811878415407345213828502355809758830417176950853636074274256974199746274612798481243175811631854637605171538308699720178420977955859782991940324485211511458659965499320525839869050554853511646635535936165020801811405294898726027498726308936794526531064778781833878785608622040711937715607693999293871478179664279244822387526875104215215945758325274100064375721089837827729963737194160445958566559028605918270641245483062021872139149792531038991913200737578665893055100974785933491163488740729138163268578212808114281258693648078696476886072189848567456616933365114922760523383783564610107032531049327823416665516173627342446577488845293014618359428297842561846999852913865912930766689967730146615059712638248764928797801893732992937980257723979844430189916104382820195498546621819811288984564243783654898930363116388327718054525741513332541279977263764564649102504167856834459580996895252706082789912068755043089831255873643808360903167470415569532806852899778675195564612790263211226853153551963363043744626827475959416361614318103638042949824271860656930918102302584512887537544143820955828563210338486351395272811358748671077859886319531648423962071749323049684169965679869729167780758896543068146874627908432573016295381972025375099814240167349667741878851822681244609428600008791123277108225630169103886473122276914611524806615716443559179507978106913269264636288017920213014918969487925379922633370720114781935361633041230607144923275156540851702410470112283754812534855866067967186869305780918189489158779856982847805559702760552426541040735262448218896196310945565279378958184689092312887311054707371320985598867427269939590481327027847871535966493343633899028966950961690442432094725559712420668672803673219185967465868253646907130216176806216907754427276259157015492495107616244097667284266832195858066206577359992239814709394488675090119858043963395380741900652404170617280071761241744771267089540486878186618624738169621945773674674142182273276831540982417388107584883976825332185904622194258595225387029011269705271955682001768196648277933995277305943567935087341621861265835353152480226887905776799969848663700453984085797887072897154378134032361439949130544548820775291089756952129198732811724446623856951599462753195519176213294337707865052054326768014138479716227181118712837710374433693880053198993846915445027523099198323156423517307689084788046552557337673691043455868819517088935576005365779808110500899418799799014622726052413785947079223151959878658738384072394063174905351511950136103359836438672296887776628446218773539371329500745673256021050824576899081904063503821891583528355631413775972922437703264423643716035738238836876648899985776448877999164727757265816047629220839741283728896238900465450283209503434424252447599353108463890027951141645860166123406309147793317203133294911573944523343219927948251657458029107796173163485554476983324426215684705575516693358401179172700956985065448856140713455100664214212196683267716264334318069356101002582246903734816932233503813742588582371633871660642988844064219236304798782264837321611407310053484513071875011742721709892452714455955498929871762510566989438431476427415353988808385701077895132223227383233292793436299065539286451716033974229650852563800901380864175587562542343387696790329041470825593875087418862490237263194823882650646862952381091583441639753198449881630478481426718005430012827795072812799644099346484974627644601348624092061751634748055156309293950026170873893563396027276294008404933931789718411329532885594830156478109429963667429420977031085049028336567720122273080547655067997001190331010231625529846251879965063146096752204532521756483942387274121094595178430271353117419931404448825732741947460557563328728933900385992687147883401973526568000996807702983375663087163402445603895231046547316260205730793834497402763991538347944619014213130181608861400031066997283350620156701866739822168094964015510879669382339826412337726843118836435374186989029244731536160170028191984575763610405536999443785853969879660521816124239340286265150684588860039116513591440858008524925804300119135972179000177014365636984350752987510823464934306251173376772373936578910893730545900334899785472977710771673542610808191950927284547703571520295344927005529459092166887214028766063465773563731928807448738014432865050709151344776934942295087672500909367643582791723506797076684189747409331353480613716781182431337668254440728343056596884451395833209861247662250782924078074182107246451682169106356101931015501664805744325523687432029346115886403089769133203248623207288069203079166061120398523065794804463146650835978452843334984347395908513499005880241850428670261668683183979727893061104939501197887162123600193687964003766563692222283982341050072862211539961457682004316434346825781730747499700430824199949149379733129408134318931971808348310928033749573041611324950630318131034578908649060581667720827573159995039113976888016890942032607193111886093659508663522734571973505718772795906440804141777929203843912515591243483242540187067389800090951714678880371162036698362617329371949201853679203386449277967838366586395638860649727182696769762359682179557973438441587793690836327322105344783005269558452442661372928970059518261900082572546917746785413697703321979293318059967524354618137320404727412799029852712654557938923645520563461324894615651087010713641047313885707412827491944326991595862110275475856877434915122765450424913441940379644814181167596020630387195817336438199768057004158330204886898792963432971229832948690482527256769948761345602188016556890322175809798401667607121526302680814602374344424524369135374904428093333002545153270996672055973743493582487644415771456736056053205535020179620301070577354959798884215427219811345171586527897754130015262631094317120053971129232417769703368493624446876332515143024955450056481888162475130296928364103954181954472926467167111333941312026093878555810392584008605405006228021821453975008800091223317720317715624511414010444235288811791582037298948269443099838352785469125088175614652474042912389161095601843108250702887917002224396045159216428920699417232724308704361046547216404578523502383582634950943580373656706878976921689883226305247917103666423261513201573863575896226356530453601816632203517357189040555320245906370163086640902773674475526952390246640200725237487144179109859389292487782750471362999570647386435727144260254631081656438471023418081095726710357802576704133500707737855402764118151536445249805939100786095339956946565296482575980209944805804248839173983224756241331777561373376976162981270258825038829243026639995384331748873977035627240141002639156528477047920408271415504534427005726856970808093268246244489574918307975650422406596747135901213000580862116488636386392813174279334959376663625324719731093321476005753328039220982056209644036560111605314989437954212440982300410621293110028461635828833137697377630176651938832334293263111084926665503625043475877655022895540957834335494851095886640112095741987417029668233257796892305102560646469175409762816912066229457092006699259632101612070975301380452721123991818981501767824127750170785944968849126713761926884063027477481454990128631281894362803493007782893525220420915415029511765817978010158011004078556038192106427158478272062970738822519132721051247798909045297396186082243376614416628449483760511988776439143428911944838905117388927484133923999602122525338387085027956013077640973609927353095563912665174420849804986351957004726367404749935471631172938292825830921908020499487171268467816299401108332502238556151268990601492653279295671229391669561544879570519063746877839618860577348217065133359994167769275426130943039960215558196478169460911857663435649821553158525448815117889790438015187819880921951903282606482579940659339894568396121973672476627772535581016420965708456078032294891611144101326459247349237005258171413609033130684126311730566997254421922869141168100329859143316620211910067053090817160250236596501355054539169628975973128308607079939847265267743665835480914680094763697219931247369922542664080596420681528046732053773804853570194383114275305149535812594061163710921614217681773982400060660656841512597100583013270620496141736260688859811156642851938981306533571198105943900057161327534723326931679697156740377919749685431594954855469389474143864472757699080925367263078605055874605557191209471334987891766904266185090706967458725253688196468556417537501061300503700927202722446245078957964910003979594525408043569820684017286690510616127415042876155049232890690274636425479876299378788105603951317784490941224221177647191266956374089244255009877848456527670383644624030773027915496586567941137353203932195237279406422080197810277917950653430974608632810113135407748182554904134924124818774667013976129135808661267511782665880571460644448543451016400687252002005766867183071567762194595517148211427492041448033372678828598063765612978334601314866464535182093517974679348696272172816101236169428457729611241616977122352764730701833054720804554302003779885071636481141114601153793262747342932278895872021352873380812899341783017023682421588954134932348221982379266587309980925215051964658967905526020662595561024928969457058533920636872871622849009706443555481873170962802274221721708439589238628588385038212255639929926608593295810652330870155758692202496994732666263882485630698442828091211041829037345496202538730544019569678212330510304105291990497004117211812443998848424244092279132275353385324958834153047355498850456181029990138163053380905447604325481608843597983619468563870684334641142863758852540029900226934951425232679564217898344616473494317692294097974697326665853142474002913704499717263024951888554299635305755373023693642715758024412813279455133907370554378097079864027819648732053597441460985428031773565205755420966493055435031723616207787456243842055128898023852014378430030371815952356463496983648265239278362408544011628041199904182439794859792793687502342471070820151708878529960226171031441521079278647228501106290091286879028791287648341996814956146648114520032490461439814844866895850650098314621272378220876754819008124294019383998526244380347577949091237929979439649624364585223418970362417329703432872299047648984723468546045104747783259460594802215835959621430034734163241450005797627041828935567132959117971482121753936044516672676257734446294659715665976696186139223241466074579756135852610226229216321077504920017585519932092166254163276896499052456227046439677704945618757823720370799729744303982317144825021804847382117527000755907080084950932869097275539451884565812291242711755328191212729030774486018485743468292064850812298470491562362138467989288377568997880870309208841008446991773883148704593845315962890561447913396896122244199211017197888500159010681452967951917959211268146759068767975100001804249345656760473116809571337566473187257918787946437343867283864345830656885170298197778075092046857790280267634009367119326499082723018331005626687436777742978490614444481611005990563161679675871852330202196008229961455220977463883304948736704236126277339867973124618761939619344021751405201217916443038444281700434196661653007114859030376214497677711702542837939479246218833391906710628066003788763640029429576954379293224083239082098265454079080612622685826502163807586486145577057542019732010208844051800303521673764882901999507029151682922583999073489460612387725963328489279242853289793367497940275606591193622425132331523129447630020564349977688612077215295657647292685432163710994040390379504925338557459705091023043503881035700048365453660336017240362905967863897712566048107464099588527350699136542185602025636949861683892183714706910954838269443627944817921074364337759016148940356285831672287498897246095687863496152118126932129807841787439372929527990226207530158672951155006029710096701486729561376410582311112186827895703033493526028701326159700735875531629803047116070750055830041122477760685113979505493302820974781084269920945846865467767868634475638098513928205131853222092021733638850484891510633029884266761308965522694885750823870808562384791005458298804412773478474938595037125356231219054519109426671488506447840875615456720209583253572137253633598956435770264074584436414364398293447119085567744659959039227215567996466667477613099156383939674770250483376480749757505243022893270207250115820982100875011121159037165445443292199600346886052641683197782931176257973543982131761983167524362873661280627229613606667663907229514738747265035052127981664634305981679772068961361567022578513724029235591749269312591846239981906321378060431658624466433607809306514147764808882235565582834014722357226721358604512234930538471562676851632540993632971150905904013986518847909397774582484990956523562480648620361067891735054709992871089183518132811206831798354024922673496325944214053867522388557472795452750250431309294371731531945761419500227748308220453837587051293223982443705736098081250441199537307874811885463443317642796852651197607390268767483396906538972904905556225319973728361111153116308655912721681104573388674995741898688897298328246644419532117474727105064504725120163262680367239749946866898985443967235559485109659814071589949439882112959049982567787786550908565301941677160596989644660154720578934910065343841049259238586984350638809744026271191421248538747863699416794416336420906771634794683115709617492669002526423663726905728958129084617689605672899078784612713734910664436829837170915236626575017630325839254553550436951470769735048104549178737351835975082672466343718793474851556095219104119101016801700873098547468246009028235930891792394160644588578472447996716009212517228215521791665968690634947796881812132339032610822154958485566444757524680892158858945888526595290236149846912357625374753321800241637761659439893782077304700471400703489147637605088352711499916746731463730767930243690648525160884005152040867209938434153013902612414082193035194300034627240910713772380554096601246883528597673000851236452611031579748921189128563622189224678367491237140681643998040785797984009775442094506167140724814650181660667759130506507533676291895940604763885156374915700354696841302190385325067635753130185186308707469590046401693601716556469371692517821528542670978589391884700878314971098414425105805375757402617846835568766553738257304875398952167727870654557424831218572228795790268282303551594980834930229861489234905928641337808733431542604369094680632532821177691690227363741252269139410807833808457434646651631189186939945588485945741588940128397881327863392220126466545200097706837791178150430952735860542188042629206375492645525938927867464425186165121375062830555847826646475224358910239786605222550351971087116749741040128282602118841593018070382502656589121339777226618915399779377550724045373762714900891027254272305953944734340987980770051670370818087372669318708549141647456840348027512174108059175528504953065837859241076641070100293939188022089843197851488316140379791869237623361918270884913834815539869811451535427725135314201765182370152672139096002213614180619647989594685654018682421719902956745178401132745862301188539103241611809791896804349444585855307950519787127355790111349360400687127060326627796167938004353368061043765135405961742345157950269719594407618427058602821690547607775084695283870528990031446780881418299695047454735264539958311095859917087968904855935811533017689850480316022663905370258935788667378396982387988865062014965557092821147081652500542627664322305610232146708767597993968688746748053676951586184784260404198255448830078863642539170330160076935120185309054185462753398705153524874283096029246979174318670909716957523244383661247433518201988718766929676335540214925268990648345846566886805889929586877609446974596081444647327290004505773903365602067768586389470362267641165557701091428675561278891032790917249792394385360161779877171409015225206552098732026792564059198147249921561640126481894547699327981337554116819524996865479478536982534982918174419587384895844664339322383474292734165863679499206921646603481789403611329945382396315589589538618860387238914727514221393862748658006255607089980624687850330064583629626790844672732642944991783260995945564706692534436613329696084092701277311566690156126396032554743083989399370743206735620971426905299344455158984077721025338806385751602134620687303790587475690292965471007427881010103296489824183610029774634353195943907117924942218946672402024375726383816501279417362763220244156943891793950496840736847817534231805635166234218172725410861323437815315864434449945402219524520502349690717207159793366648703996182356962798424683747239587758878054315630929346560791145515873379088490951213024061847612885552764677729497422951757126418574688561876079301593017109986676186199724715765521725698206252132044552469788360034113096758907593683183484525034466652181439415821941433107782674222921274531140842665482370199829702942412251158943443554929232257643094028543826056052294579425797788124457621330270808614675185653797128560853360241784894238164344923356415031775658552137430074777347058254524516690166305099869978156070035056154990549526602197004269896747061974463389280874187765982133189545757732444644097339959453928559055048875813806848709438274361633209146977244107032885139881791839542039287755664909093988238605650903378564756718977237449664977523089878072301409317086282536779645284595656518935596406656250398237695818842476351125751552041050628370939290255999493240864063339925551322133353188341927673581596362312498987297784950117473109933030907824000041556290505862939646001747873244489711356844521437743442095211946685240046650630722353699480632436232384142931905262835998478585099106474495092038167812798425953182109219457347565811782814333650983762131409784416239541461520256117042586535829810394542164188127617233412533416211444953778439658494723098906488197143990830549535929443611677002489851499766656527615840103820057798669653670758770470941322287366147046692770611547273345519872142476590536691581171506766244450970888359320446975504695748720767744439720238971130580491787229395364716479943127399895069216423657778803634492887437980482543518963316428222123781705892017413519444394698275431909307790561398057913049468171306443208151981754561320872164015149598397725310139709835839223948864689419797097684119065159269161964146725499195076756361335116569334934260231986998833392475143772969886980433445441767808397294176847850324476167137140477542720398512683516767958884145551630619630270813252386631872286952987819028629731163803638102150633769959445655886705270942247107259880163629667006612886280517647601116711967603178235296897592077250034583508877243901684133997804805347021613444051727534178896630261327706696765661190121993016847452207980762849601594443535261215592131770715292187968938156660908809548196318885865375199603952532895777349059220337935470739092080980321917392529841087283628279276160637319463602958890757211617553817868523368307307151459073802123910427244678893071396243503863241486666473009592803449775920516013499812369564970508352048563288008315783811607467607661500754463234721664368032272265575761875951427903217273314289420864538713904081340070208548737382237764031290541144178051458075833846905424788669074690129037243866548947530943097388402040464933393350182729156991713352539167436309108611209869849921873366857893802198023041118384448822748940490460652061414642215113836568847824247761698679414821800754420304455833087775485305391454867359045316499906162631545937426792534241800907644821188343970643051498766428519077243153872213295236005101019854392331534516687486968199629054415363780530569869390185664955485445567478984440464784729465219320003512939753265687895633436055108774210294908045737218565026322542621341454941273612949915326464757581639715925464668395675904832210114572426476597380426498526087209844185258410281868176130102199628168029280079211530193975903066880618235934904423278194955874934683420389354571720612517817906416586446725532754273854476350054421907949351499743534670027266591177468911093824684546922669576683339421334615612156618441469369493893142645739133676444775959328044911057749322486393915784411753872971817507940228668096545553209502517602433044006380640265549258524738496044848841477470062740029032416804543584594414445081125429581670718906896339788688966984664432366282225117290397352039707104295423948445374583611493286161631872869609894287407598712066907656310476982763913509651675003311699782540041895251607358169956373786533008232958319955159714581316213000438255267111306203330624834330430191104625217076034056115130412247645630981442192606417153202825466034485118478420064015002778719834210304434398551088649144246899789362044226228918457977139769236024746841730009067916386973277615546472052620694590873479694540646297068990681141544464930806326017092499565213877993852026462614167980976297617031029111005444799572949367542925415201753389041727088481126969603325764433522124455108874619356367390036016027911905751403661806230224473684468633445405054424429166720505214490948158447771609854581467457593618853797131369312980076554439536113805639846809759412976068889074483990954543084045894352004774006068297210701170043530277095554994633933766322453808029531649718653726004553445701710767874345114054099680825178592083650757750023032783006989565721456707230960829157013384494172745606847155682276215353107850037837404269349493699228641281348378448805973235487393151103464175978262821863053429086503421936235007307502151026405891274749201249135254740089985231127057809677112877739265808157503001292554480800552776356169094359262257390454690397911121483676089217575036380987030037699807545320846492711913440055122534260467278564099907670073167993053249469351925751528440894927786802669791617647638153753924114561642088433496581444722001929376885215578462580561902920094756922397849007507712576133092762986983083766843056336206316857569523711178221072838488224624483180350222412267200504398430342290336238167400079586414320893919477011120518693773360062404845482352346844044429085610158802829031009505570509898959955709074270085319077381512245382264914640150817593913898315016152686760384256927995199506173401397024226076891185746515195330253986089261168219846244516263269195241320223801762383382859513752924198643264028608105019190350763784112053931460745812534341128842561476511039102186014365422627481461915258618363716332683643087262368647710926903065620481719267154932279539278217074197076055815819396780346402935537008352965431734415517076609188397395340322806652720931805166659280001457680372564474908491865095684395624744486254543189378070835163052825972965057163528531223571759012358022620297852647389088888015858929346785264087287362610068849387045727660621893893255390138949611905457537964847369211886002189088253448681246318481460425998371803193330666253284375489908296807144399038260789247998910605433696181759175673667991119540373427918447430972385701172985961609504178579130457308751063956457477795784283208144083603614225044325725706544538610091387992267858748968217439196548555129770481693982868882927159009549384717021193921381996746955975809551174518785081607787763015466955075841015277194199856067015550890874788951955067331397649269548359099886525428327580577195891500172814574146582604608206753311895008387948539030734951043640167162006168395823360848036966881139393732793368536227981261268812378889326341030392897033604445678671257579334296712068973412781055881289281907317385889336296826336825352499826778996017371034704149434041596300097500234766563768424460930723140285867498293166000093199928803153969552568117425215457314513224827378574440833281080612848193822611768502963040632996271648278327399958015832598869734323353139533311025670081196079402093764637505001837935924177352914471771592809502834424007036434854590670781592869084498727825724389724604550457492752901369668781826957497575769199055634077764709914923560172943021496595789317266165435904187862255511184876232168723477316105793405499629830160306117878236323495800565916370793856768220068560061841836894591836822415063406450043473490061575005090897887759608900962117792501101105400961523524238047356291994979394518099235193437655716694642645871901892952966829796816622776473686468998867994592658864428817192304441863220655730701363159149422632291673551633938526193665248206333279661843371810831635896966892480203016263114173461307569727478141301570540985422123828160675920754216204573404953396808369041105781114277940462342764183460355094858274108045599682407904294492013788361268298611625788962829639038902816014728600682241745993335501994222407764473182040362524516025580351096035175699686133728594006275259378641477292003661947190057182418676491590087695409672458182478113189232950914371010112151421364173991782560855144355634487722431395956516124782056428552526216717164492691767495540307606812345755987339494605191985621905479112414174185107830651818211424031456494155953265465112490520960601704850741970846417274986890901031145478381277546231231710698159236604721138758790706095784431787793942684277667564948049401420927157093121126204519894996792154841444271164981490044660609900759208853705472329322053703272157417577074204540604339762343308057737530123808956015962540658075799850890925304658849218693721748028345723076818360846609793402140503232248997496246853768858930361918192550236395093292190303043260993022044286874154218642139862211613655742908198586227699407664772789223977815440481035531418516446589474413098481591458856048896094286427675842834328643731325478161151739187715381526192300543191494686756625329176897805155058999142558820563408520421555603427300662974009672575173292644364017669052079294466846499856529403968610452805768585389639043684895949698140548350729002751017911115485175424811299951361862657494340548690305187757144981173013990473765288144703272646557725882355992772207220022985584704525002562866400054208792261888286514824742381900234252291700355322921879909124098425374468461360731871151261643414810199874170248256278955548097602898451963840853099516548460664558383053789753878374205160434804362115296331403597728680010142811966178856648940314564411053692315245775067750812224353000479678723761144362166798004589495170699749127101711629035175619821727271832088315132632752216919145135407405413708105473671350560743736324559114454228943433370970140959334420828847408541181248128114894163400890748204673759664677569578462765616899323836190024348310801880789589068268785659815245939739352435798292463017112172335351122477507593149691156637563612748000819449828757108589140738925780477582020335313394624976641374824872284032663620433485702588495330409403119262424746002537089546930514932867949930563846388323024396377121711856934778539718004036222001142780112757773533643219025447908821003867614334462065614487226025647605767308412972677282902353152161869011229139033923110837488377202991843531326399529606372253399178502377136971961895853948816088896988258230221002274568562205418918664542810360024612985873822635484019710931816704214094872402596496484677785002095664025823862221266822344769070637302020684119877964051205584071253550790146637558466756747332664681111892199509776688883287327381844453775713236984944892422027483543839561860876466464529101050522202008297523746075871466014598248235723577731695180543233321980020796054847773381840945586836076200099536035551144529203400261609852501222229924124910246252054488889835104781745534283863634227044150957071725291211266320782354980759571087876539365837275265495182062281101383263910042096475061542073271589267212955644019618507699072997761605340445728813497722901040298959161014313576547061028964461261755292093491382304386515563662311734512907666818454654348430146310664368438301681665314482164481363666211154323497328217971794668217080767449440621883904950256730500823699963009691539706326187738549374949849528869533885088727824887150665662341992322616462617920044332725501590729356860391737529568393496873113008344329173878306575972111296771783142039215609787108559851755650776771627972330466068379728670086309498460149946204134255540219294311671188376987499431856184692517653776643482611770687177487999506174555169278488635470350866044629497688893603602857937704239662287467129898252812495326100443374636096846797473288654545170865199659702173130974335864796588004911534336694008614218478590081278801030159468938333457130558473970953986345627345524705713969730416031973652210334173464182058040719790525791502417645935831759706276526884640833653474926301348546292785451340212687420838709431552663049508456533992355251184462521645732411561497430471314204881301688147735492558025887899809390718579061988523924955201021328290981458109377323451647281509917994546547029437278554204485845214124408188459042171925810450743703946830549367249575324742737334739050544925701886117387106830224609889939762431280833515864436387835432039729255899704209763290158565618051979806567435808257312189653420379995736274713189562653805580822681044566665015169612286272806314265904225479729733473551570593995771513889264075411675914235978669026553576588101538768233675536883767583524778579665842299476836952479225946307660182223116262393751825545940369827377399627994326867314591656459925169720141411162534767093413713353413726305560194592129030921271772011818608462863397478884131800623395248288505630661345383355202457768319180598989370051824597022492061304803782228463270223357281523503825319959286214358490844207647718385126618978076062716463534067143538592233474698197371888083271739452015101966210792781015072591145941289121630386002972741174780104363094677767466299163012969935501434335787338108060404392425854479791979187023007524997954558122060910777092251293211002474280953537505955432604523475116093519641929675380823770126679837487752568778653773056793963386797504241568155726358886678379572268371184949455233670406861847533599600440847707313451480936837669043964167114123380716357239880299745471736011826437627097271991948326869557832101763960677886183847445011295879126303316268911292998513458026974923269328984813240733949946612019312110253043127381488571458242121335942497254533505375928397416291041649585506800953873167724620126730861809327980393242170378641343330766116013331065144195187279177248852302191946199070730039931743466101566381270532094370972797902520067951640492651759708569020321657730235396949110047823234830258495827502776807550204340308562860388182462318999880702820333272226059640138274431575923843897361778390680501139263619356261500204285067716843716208796774141001669711490521366057933405838609058305819660033009305622362167855022188290456383048261515552266863513166669326046451882615276739569870271190118845000630459472011534973714283071026241126228697802666148180937253838407925967502595635127281438543706060972027387163395265531492887145098107752861592816089818973598756419358766659301163596274721389086213865264536407215128947982573654355633589035810680550468000931419707661378965177417123321473046202960877623541937792526499493571862394313663902570044670090157453166015484333327125875449783381837384346284438600886324547387428904604963264866747807911996165968873753466875150608896636949531568262488187569342867420871387924063407980345980983252119296179976415556381506673928095956179025542559876039157042770050655627188048320935084898969428387474024646948473761697681440743353949543892422009865212977540988752423486161681000587528635908220499867511299753729950119459593597267230722645828973178767965724546715166064837179467629235029879572952852487386613904545294551314038224250370231823917162712577761627615660046224826731178091033356609147374121516215418708943189556106606180065722182832753628999759221469952725632070067460812571525812979387828334298232229990659233705248314472003265838494282764370059521645216799749773833179622904514159183001174672650998481084798090957625607121304153334215099187967089288755993896367349627661278740440779599913273244288732368068048355765994498268877309557464277268599648969511792077796573034129572416308203819301539271554948251205452239771105100441472905045507700246423980097892875221964514166647093339823536240144784218161859130937005115551205160601808855657265609060144249752076682346168456575549520802181204055914812046278214320197571922339253083041621555678494655219199028490498721037765399528063893950169715006268419156571621693054678419551444521228753740720123447882708603536097367368242309082903800487506243651786320403720146804704521229700488381703969090243733056579152233958722046635086185094000184416407111966260793916388643586305743669381530515210075957911742108107541341605987812130471600845649199213379984680793409581450053637990536015703752490501097366372461521763507388441614308584364643438646988653637500115742148383925956471479546971097550025167677913138739636954888240412841214053561441772808854473444352859897258400058307713034864089238561265492025388430449396505521196498093922910454262912841432758991176706778460527864795682869137858546481865565862917203059235260627749899573040110689186676986353028401263505145576354618352293041746378641718861993506311535816731954061278525304846051648229870511258033324873152385023683680710474882617918569878663683559161932324150889938178302705210833643761498051977436668479675655982872129603216471853810165622468457624953429319713805315972176865158644355928690976051806232983240835688742669418391496178222755749532792357844753063295190108090660423401012287466451462469391926108218432532256994280838672403443358150375849211823989132288835438060504623141489562659133401451246548758979040374749910175663161852767749226900884486492384936972811273553996500002253674724451009631328886436946539113962097179366985956002549975868625608795770433670389961217725938454048043447588334309849009438084669190661212243329062156577296280373385046113200341303358520174170433645823521790403456341023470859268680426143543059086940704641988428011211987962710360522703116100047431179003131426042953670460507206177430195657828001051512275067722045783278492030120218630528636294970566669850845946478736826632426095476196212136984847429607605440989378575745621564015217128735501152132161836141795274952731767046321395222402540284452877753485107028986083718023311074005782148721376443401899440513593728529423027443416987287541279298488844313852580679119878976264058429802573203136202585314325733282268637562896665493876836794345009065193582099792656741652059833245435579911784232667146202804619673522539249762036214564492873417494487459130658395064511860610693225199746002228493385042680855869165215424274207534824571241720165469876324438768854720450967529057541677611571570239103480251416889162619156714277717601647797998320534962230777610960130053084431118747345344540211434263711704631398617604321832783513573391671885217080053255728350172035869295559660947612897080163550148359159088333252922339825317237890007654923250737995759289569684991882298642379941152031503077442878455350933172562927977281878788560416765040190957226343442603027495063483933262151794481221941489079698694559590364341522814665856864880228322946744246995156892354185591880889057361717908459101720081769239195224397038562386043516038790005580347888459989430565219497236014155215305523349887617205939174160453611321462622388176592089506780422206278293450263479704326226555265377891920251677944672372949274668879327875585105994342193485499601267621310850635402201123585560223342828965214594824894753491426687401775120137671022796229191185282740744568178447247653580822143250541870681423828012388400107981907951823575567570962440247532275138696820558472247199707862780844701714813712613494203691572141221384575749284357631512729458464660928590410685181396945205065461425777637455739394262631159881135384373365357443747911685705461968828637236375966099424117911957690848289852007243715462237981928390524995534485858151608337860877381039213046192654626094941381490861688173403985303028643915439856538492233056417916945493593659767997877055534220572253681034216411890930101891500304059342082470433258680278381665835803398318098988513675897811595649989733526771143686040666179787402962313154145382872683026613896336156765296921257068701423396445044120844506795007064149278646070814980921986482446928173082546333822162289566577460693811518337022894200243770294146415263023216167500050776974622605847318380728309080036654618625326965612694568333081516504972952771281971483274572391683636458079938017644828949949625168589997372333588480894628664102195270663402012980476533048124197450525575287279350872890155666206858926212506624068055478471808314377976134769591367260470133276304095108002590898284359334175544655033673808403561395258066491951774681051915408596782805670467527322596392534904717417039663406505005882537829236012214535934758923616200049403556175874847000939257124593089077143722549851943621971314072930769580542116947500454760762684144426497665533211230821442067168174035901998958704717626310289853086682646061575702934361017701051814412279237557839806881251963107639511596059306932695069005685857320996172353656148609560735599609171064740685589371619806877180720895369833902529470434008466804130522152808659684660752585701143556702902970692547456017084754321360131527573569991327886834028211868583343903906997654173616377390090282616386208280400957713242105149071746113389003556971160423900476683853288619765412493545238389101131850762294904337435131582164465247830267502038391268723649613501124228333089326959778815504210282197198108355097387255830950732650038606890605459868799544015662634062816282663820903021183468706449297989234173808052143919275530465711586308027775609428784786846789185891428992924932489879620336599135424342481818183715451650032973845525225271975313317581495999563675461869925277556631731696976988599052622402214976930731189809280538349119697273824182989250765437233958365708534595285048583199093930479197654972231423811042245363698932993187774506714380128035243924648071057211848441130084149044794685327249944976778436453719823631861137853388756502997289046301648419591227368367289295979762789530551849985253889150638678034548754548499473786911437562560348514372222869912188157512654432935049546931232634703935721555161209771009640338944941314545024566162330307897590959130844470027057880555283640067111469986845489895627434390572449852771701223140183918642618976010507366402601034528996078264881049778876684427558652837182931319731568424866883581146469359387562244192065968114399214875486075045174929181613679703765322034867082798065877122674696516144912335436108333738576951954732613147284170010226255586698220335025270809706223905144239671822792772922355581314279905627978240850673440279319229567705018175034315543842191328074178009439865820404066310631533386670267007364546558791734462796794076606747847977385049789061499975656738915554021114138673162480073891869503585954618815673568605095675244144830779432393265983443212278806521516915287860608349613975314830985277358504301245567315240137427454810975500836469026541730779537108613276984778689273691959542751886199681813584029187271410003131039970452464472467774653761838125271465668947577032772990989934538799287202029532909271195850701068533298068423545913917206654460002706896327266911840508874033537625515279598364471957198522906261699338699050703187972459172190891037335037236378652606912725329752861160057070423334521405491729827238699213327249193109880974720498480083512874051559617018023205537478307069441391795654129381538807258292654136089506799751683217681273165096727679247510755214941209783887878561318029923539558939892610797940678173211906247256385467386132397557398445400142936487261602493069197745469345592970625834177466428672044739684789430729337593490965718207073194935009684675173775412963264178736118050090209715236083827021699828789673566564355622893857970313580935974374202028742105500068596104699007983591844688889194350193156519369468918321222265829144335376455295435941427883578232190846329243739635956943869844460147517685297502762403368199814670933659212708206493582059101817380706983504970029033105609297766757534103775795375527695791347413962624859638538429490091945815882230531584894224240824496093133742845046629005641130152849612087981544834870833152899779190896565339336996431027193128680360571374690752014488840777071817924052929975382761932017470870167397703381524949510503053010756945197218520062860221311863228905753632740643320365159132061726335418243009026457240821825491421187117706911501688260201645515821177821607650578132944504169783638370664677568588427083069608847003570556563985583252213267394904879832057439578255810714145323504449604018026185873185889281729727496702084685903398707971495481393020294471540843231976822428692750048643439317141424562780876318666994535686296510612362945663683399815881639108655640199581597465432299853763623917895034681421008854275627020169567616143868790752640554814186127676023214366075119175734770299368446333054045108431334669859082184562583035315345782507756335565838906304629551657739892720127619558281416808642664153939025417519793647311609312956872606969389364100272560002947856236216949693062790911414958765596319204085406360969709693598964112666141244461901439538223160232045327628313502903086656235398236497201773362857291600916116068825484790332834736512341824007075443800925097232207600292721259022626612819573080070993778602785172557908567452646821672683056342310081093157104731783372766504607047310218460511165893213828733781596226626855682362030662769346706995529411934149197340364725316845382619760335633021162070718747545147436173363438668266901085058308266538949346215419822710381085437199676274417009558678898845492819627947420980996255282824388881071912475619850243657551919290120594467670686145373344269229742610291216406027458031812929335263819032366255187234044372927241039881028669313537865856995696495559799268227520387050515714826625826028286871209064228221937384393885026614856856756055485905550603326962387086880239289751404149877229019289084246236597796369420483700424406317639906594694046206789453472464228735607487848696013224065344995482497418541582515545865186905723450602725644041192922704590516667745956088606486301494793165526907660159436789886373508001053425652342515435699377656260958388652288640824977792370968759124445178278774020001163235204004351504011563994236931376058056095136022661264546738751975301635052306553873504454114894375000274651869139563628993164306164944188235927612230985480465012266787981424870107917280334024162988419729689130232112406073246163380873638390795778861040944976224984765542373447909928230730179333683481194454578832731709929003554311652387724826894660931874524450908723873695866136633584816461250213290513749173725067608591583648061752932298619753315150414095713793349519869690480987529295271398413100393858151324626957324986152835990275261142546499806682793780614923628947043782466129494133577652753704523317097257566365869973812828941804409231555752850428913704316086946378827252699664388203970737971862879014822069323915658971946917740607309732890451502818027207974055834909616975863689696752624675117134281485380744341142056633785611176964676757473602273610582062727682400958283147154197594341888759956522531633510259022386667290807463949195121427070602193289505057440368235290559192625668222222492780011407727827403230781943032389596818633788954405790653582111142513413023222985875311224397336779588554070775255621926700553280278990106759912527807570066770796434083573150664600601245303318079625960060093656294029088449618078186888639609965094272270490990406704191140817183651961210358870971967545399223198395380917614161309204845115948327308179853550344261024402657744714603478330172798385955174411842183197347421247512365929444265896585314843049119939283385323075418474761442738273360798614137161750138070815691111478222660540820450261619602845123762365177799455066647007287123154256614832563282861599370656544367035544412003779047450222636410238278352985487516189874444327084977207839552180898467940913263125330605670286604736033429315725802695006351661707333647789429088524839489680804243441156469189666399714218909193300304596017698009145677559922048720989513894587969740760098981446613831015810383505765529560544119022691350952955364212439962615018875944168602564489139314570024382951066764798112619207769820619375933967766640889825304299202202367386550502279289035524180702967233598373537894582029912095769159939055635320135361876474861438663893195084968019090211209337698049242779480491243983500211831363915467579709316953648269752984772875151040104816606735190448917615628484322612161835557530079080645987677180290365664388660001760201723332836542039242056473752531342367899061847640223983738054086584340942226979422378868639971179145413020687494411733740591028009111191563024522618632518027834445361312100673897265235803041758241128043623837543841225431985861969192772785117992118696153910711974018550266633065505469028249225835259912875142537520424927858059483771091994364215625385472648308687114192712212362718937460405050025118154263179877425253163037162635258479677579358932873661395013642460108191910876429987723492779390010503215335618658571692484889594494003803061816625032926267871386019133640002562145299725149856170436686820801378778960832095056965309322870891882354847721361983730255269949411165845373412974140602408835192909405365017628566175301099152372674558353638865035361096807361506858648458203492861971212162846879213537583442284359712211176364694839246896994490956796368869876730013571667056440294738879876489886221549150484516421317993595921468104041789252544005434741605368148095142752232869870493602161719102162132905277398788202628003063489074422595375875848440943370348681379648824380881517821051731679718942754345846261283291125705216191963698852575376634383274875960957988718084289077534702630805537987673698678402866124476790671255774972826093992166877922234651779860663097688645979264109396645785794227163727157392494682878551182081142869769446353254348488577993841554535301627966093940557161498553499115933332957275152420103964621641526407043900530289614253597184485034629211612785818129113138429262527456752379144683720542592902500425347201588030536706225654460490829249276074001126581742771069712187175164901688426690858322036085601644276840969818122769424053734407876551980480823745780783157333409548775942111441664277392220714380471516300030651218944693372524887561773407681928737910500118219477471204489152468810022135163825432616030335179178356969448600083693626344064170102351701911884169642906494561044363970138112137826557945154241176278053060495668094630991854168434003514239896779783372497633900520338182624462443761779319247391384659487242403318617292031305068486755794385473413117194704457108474533597332676702359099586107209880667876132209838521156464504047364105788069649920648663709140718899558385079815067267869824187740286055455939590502782481586211549835938881885865640779924212040962980857111071890546182037147768050788088592949669135265746903972294313424478702172596411007524966645126340889076577654799575607327145128112367847465958709472652725078631547616441245197534416784518102586382902369612177552972059475970216444360913661414882379457223886542188099085069021244269075734297370024127308579580572566438243727400632528398779541071286074300909766892575964480693453469985218487525056196968213745318587509282811232901666442429878160600494668180920211271568627216996607844238776406468691003696424877428679153239332817634109841413929916715323469618823839628618690268040434527868047816661389090912630982385623175822001722028134656098811380682838998857238237842934505411626139293335227746884771645949781018110524853763239981407174062613550727240024576410058139382173267706288750628017358730637959206608869040715116125878761357780439493722228517445221786307173682703917355293832030591714975165379311656239749727315520099937420582857744514209947771929311479895442899085293460785949184370641778828403539517541489658143693074434230707948943204515305272870337922558652709424968345609924915167835591113197338915023213246142158219413989316453011359853659357430811191308282039913282791670677773443047427885302293361598035805778944131190297829673031338460447244870862746410719817488277524982757821064904688664252721547992644925025372373407854896966683472945493201228148922391844513309014038862010673501513874123670688288518430870388445940615743675270450379310751807378135423290497085533287938340010587074594588770805988201641300886906819076470360671119406696595286225398150909035174032678902021026215618828436293149748860723309533402508977196659831958668748085670609166447455512188600743188196712752554486036655766471125414171482371662961886458216803014820647775125300445939543233836965337937575375326764172467852018208649985407184868300314713405584039898499306602577831851971234305352378281517164403135717627851798501672608352337320113586950183500942405989969505162917562186907117378422109381702341660973892118931173521471670133444342940171587502990461696141425974503474304032625594968712971973373552465373845016626294433491366989245447124128816836058664703439493483041150022262650728365515992308201600909260671055071007516166835409657602308995784417038694089113337174613089903457662984312366435594030433265725984911379650464596916845943075014625393463316618831675657352489861828347996487836891950707293176198135118028546989132634722041283391634947582270726210811240009626111656784035386869845466182607243504082924496445396252606707642110098522090621729767961551056485341573271778973545851343604719144764497583801358737034152527386970074114653965604853942742970149165974070946917657232790179378440604677622457241908025183982830878775737279686157097952478777380348878287683814982804011137592004224416794693980308745221269964692755126925139986343970331939717322126992551282801828190956158816335106439497482130018900070952362587976292223859680311369567709899221423779640021648358899268148463378073356278894249803885947088702639152959641365827723670401832094800409973342586527474910886461648029167740784805909562759272607222968016676754537171562676356838343480598801183885846430453080161061268851044172593658130982962176918721640078846817093666507307100790866911823737681042641387192148085103712365157218012315552667188929828051345277912147871929324620285617328906537146754737614432934336010780607272521382767656667924383375056274208063493500533180524879766798709945664831882478915756329771163809856147090153542245907874288175613913277017451952119540738093051926851885151089944573577231245092145075962830164269723851613998462732850608894133132144282773998660577456652306917509194514739194141301589739915771177383750336283577591819359558791136218158391894105140114222938844581262199124168616730329657957645192308057239656211178091673930458975030047955618149421877356345649481098128300643234686729947442967303634341385395593815606549341143027279376225840615470347695099195839935659372151717018581996525042079957184422489666447396538108281764238894783715166465717745033320451725016454419419834492200677825473265328365657971852187212707146868628423857010875768250972616635769431052649717923425780921567199860552675782966128493684741593715225614986341162575868762799359484666071885951252280894693862178744403443960638930992995570618890083689397716874126591273092171369170659513325348519178178565721375391197559057138581167472036304576942625621502848936057071081234466963984552792592642293131086714369774982834744294846861902812857032309153502978624192939800894006986874815423928691907443855488553497451634179604923273908039645928073961611578668872067585834299711477481127059062230413966689276750922775900972630866657696840800727327041441898115047108716143350927109635270123079912838146658225651337846114663094988004449445017026992371066880680595285861923839750917634625649037117760477329616262917776600219972116601814567987073704450973524638819030658993946229701920054554197533622471911608797732821886655734833284531088944671034610262312231104962991167030268210961801349756568457824626606808983216420105998041019202621471597742939776996947914249566660330250471047620148845354724033049112198762854034403369069039402323759163621767654995503677304369201883724666914809074855564281527693366887125767538768281111635908632913993895414193874316710809332865109731951054242972153995551869706087425312257813213589878482239703975564047807986809066475926440089375465332459771853710751689522407568303527477432827505248032131082572961038250811580242439990036146687358818896297747361033599371487276034439907363198132440865137316495724272304417585398740777192592989738385985588750899431769640112070648481290827519795500319838605578619131803021226121600249923364183649000876957681253755133781332803332570644627738111510843254526197162680518065021454282663526238202284558826489899805460225546550597256144552461116402167897566802139201670305341718597250756200614113308378334901416390524591162332337194011008126721546223474358119562816668973056114729213290819177845739982050842989764506918506247563278056473483129161617546051450067546296637040404668176525990839856969065482648614434970617607434390521718207727206331130006448138713163812086744885308064612137738534119395837026604316207242703886265230427469202890741525280417763691162974493579488669822049955506732350204854337545970479685319452915483931032498208723887031324787029476418100998476118268579415717291122689251339346456716759727117997383065804397654822248035189248536274919803715407723790466572643155979858173835157891320101549245472637681008006784143260456098172216787093080584938484115850891643572233824846095447477533840163946094242348642929436550379160317636512268356319129783101925359552069209830989140707477829625478044005623920939651920178109423241991796834660220211167770861390907561647440244437409139435139632919512832514793637474963374277478118175585793316076317144654307395675183630566133562974962229255742286595045499984382494512339866439491676477256412244182359319064077740167630372000148983586188015609334524374590774095320821813063489935438293193972883695313432245454393527404152245392517100846857479633232860220750454470703178422687814465419643861413308860278904771232811913133441808278395080719365477483099274824652910381947739306039415079144823714653675689865587832180848895064023414518915829054371830762382905204781018506365624392151327917489127700084158490982684702688467997405708586938025116639241595448529591004814983156442425718356043923079975111381351137789855743680097410026741420228759445018651251375271746553232766064394965484686863113796665080601121501161098157541475452679569735971935531757582927275444552629662205838368778014463981011015718341068719163496899477086507255859461869575586155717454134126822856444401599332069882307603141901529490748812670348993333853695714528872697549647692806554249545374449132382832608346302912936771751841138560168351127065923722704211146727452604061138460726104423456067236711209338999150785369520820628879785815203726075478359637630719705146527161170682155042186971759024923185858197614828925707214722982360059068398512191000713867238854737829960932610222894479947567021763039757946464561440354245543780750818657923165077122611490286291538811227662041859358452948272830143811503220943990469694318176559265679228113371177222112316517963768190616516692084378669089080049358223267056864091190063598551916665873179560010960593211430583513938493209894981692345942483113714345627232546316120281526150121639185808351690602328621699122043919948457305239668645837063172163541295192524365361310641464755881605316956641305418086888982910882849599555416968840808587114549844402297143489473843314234967879808356078586940908524272262374172732999886434721958891285793924443076323966984417774181693185963052662070172327712691728951793043981989930734357095082292113342432230456833736385919525496525959630915641910037833617006122800056283895186282315346529920627561173263823374352053413806081388785155494291546650071977234456266248552756431806052362644619630470156763791191044637898333788177491564160321732127821310782884226253105632987783583812349765916934956905249091894072970891135443848533780436302192609613127649457006669645845825802743165019585008538923735969051748189572729729783180687179296729496092035678437610969571353582739882414084698839183200647291091182483765191040758828168029024270975545159783990451059743544523984437386521053961371335789555890919247521391214660666875169464245341774993408033823629683991045400894585906148979815245350940155501166990494112998934310914342873538313391293203683196968286672115863897324217184799971302879863952001612697774062374140273870340857159379595900574114346122660706307236843016120560971061472829247753939830527273414059845786855854161028184480959176901644274516768206166575464073168361253675876837662543419313785297096490475538386452988335320008544360928503357673913346967110760200742625682565535171124577574816315536699913589826949315532977225145902984840356687353236977363162072338328939381913991886219968172751435356869809390901879435407938242476160193002829918569029460476155878055645665066539310472036250499765505729204532610184162072243855199029772427146863684286499680834446240021994263410184862639184837007236625629441680562757264186023691402469366254685248767794294654908165991926418045290821093389518485548274859291078670724393739449738020842428448580788881647593835193366857246446236399434163859397787498842487771568086140273113639019993341328240316298113600519416211368056261809928259389520877632282947513380043639095819847167112125736891292349237384423078137774484635126425888403518322422672878412655037117875578054503771564032896945735211441165931116928782739879484255376840426672039312887333186323371353323954448349723692410670121704465268223101951175149086148262960738634619245533088291955676130938851220699256378496427477236895021377738409060739835917391119883263945103446779896607299388918442290740901351581884867097586051651549021969462609288021013105181165875987512819848682714682843058569342476405553751810769284984424263325718022080346293866100916784583393099099665408434858689966460627467366519948125157186841502235639357190890916122505448234093340340775289030142128766725549344454601330945886681246511170699255442662886709311796229419017611357713514851656954707510880576483512106588465565439617513720177769496937128903543383756105858696069772376707529494227193027129814312755863727455569359875783407049347656597199770243885087637529159760830579467785044602763927783282302487713819569128709607714807371334779079626239113453761194967056479674674568146200642803826191886539494653902404029490666643769033596240578492003636831381849902094746607452767735309886321262995435441024382303416431764309178381061115517441747123844242397340074992754376925509209670286860961499174881016458448648349183287870521353989980882509594813444227940655196851531171680558445644540954438830712468391276601863662512862466544466046780482440863301134285588623593243505450986750740048759306731635757679334305624269750487026507161299193584837183115287238678529069757263394667494151468030984612337155225903060101538026612882763938696629651885172531240790647187981916182402808671847620155691000833172648841111693802399026131070384155987395884261005958888873399778299010589216509541082880288826323938706784940081596799859375970619808678513291022976358186048492213460296663220376419227620652713623418245897279037477597229566245867391608291101765053305713685163855745002363511095442510060087833550117943610933390689202179705308669113171097716868811678744395407498356613589447752873476533124026768506260218399214771477616435986420813923994268004176438004979680262154972034124467593014666318620238138166965009192191146516202444078004139481077673022113881269874182994984342761021178951829116382733230483759077088283067190447807728673440167287927347916586493116916965948608925887256651324542867292767243792506628522328269910212755990942103914893733390912743418560971845819219883473980449816772264508489004643611613842778207579940855873867202945134482972762308015853922465492112546398370640699710162401799918309485208019887296213920896933255598565133109827181047299657302161806618926040301820577972140314173547795247366350979220103066678261657350050702542344004827517962270536967389610233727960202373123398341274720432018778105302114519792220566232506949371804193323566720885198872761535525659874766850909815421339044084608380990219058958962209680110000861612874219770869896041918522824472726997712465788514846418698494737964492579654863063103944235830587812018234284418300631757346798587597114712656575731532164898259569450331904318777594016647024444074365447734877509948454095827049214746002097451335926304652652281110199483681408036105720533564631810277610311666695027966458519765515920923864678005928734309605005599215965524908892163931475089877316680340840137842123732742094043819397977638371644768465696767915992447692348900840823860822375572582390426553025977009953672869504451465993677243588444041092054052791132707353123191958796299831146910102028206553511648664626940121338905894431509972330589744526410865552834951588844274959907579264153706713975731681048513668084177998318802040756374194144874369138067876460453515576579257449879530501065899805110595473554646415663737231244313811279646986041461449282382515302630306221685325401741695542808467478274680365662637032318939376148683213519101316989339467125545938972311331164219689144355068701514073010871733588488624122734158090458747899804926800906230788647785844047017709087091059735697202702714397235180541761573325735833591920737550178941021749990315098179798708896872451800027204645264982642574609869377698514105241959154416578305980021391458926633201923388647189000702882095054305730407596774249768457430034448580030765750666422433419282442918515941687123894488135747010153957766670896301337027672998037378236694407447217208632122139100084462868981844454246391463967969983859991573052833250467835328897610823532913137105731048249010535018677932438179237052588122381252414190710684343421028216882354300724999602590839584628907565826410370417397902350711161160055449923074281379721985798543544964695974363176656534292077417719486410612753786579542365165222076895908426957600985549375884847632256926381167750364067139829742817025122861004580494899941912442412965623333340995543700721860565899648847235133924044286717676278486474925311951680062425423395908671263344592089121268586942338439564230941160713800340698762592676304558274131424770448198659937210968057743209713731849450063004861976981170497616059349375692262055058913278962403705218601871851581735113248154085292544405844336310218558472915775808422039683449035575817202430260112626216108281915084811894652043107485479062577879150844418925668314282528124229420460183575555354075243011805640400800192247872131658078928009205880432785398868753253644578208830223882271221301415230806940152584178283059342965607113842661718492170253539000363515751187687635832270958809944611983880125273523651274235070359748861333463541298923236139925448463185112997378965098916618249147719484596138145162067222948909563671920879762524413409305803940082160012838255619271443091777311942811805557626835390436051852249449364703202603984076994281723093875145319146340307378629585441696738345812998980050789353362906105705596582224901395712206861562405388205293980189727107045696653333503105928105904406188119087903250175294804434350840168989068492591297706073969027146613358256002639131143138174355346551110494591808280622049308332477283620029255310973146735831239193799492290592618474299618269843811553866775248172678837574023409091843256449407881377764349013809746503494401024075950002555029595457104412783487270000431376127787721511202971399497295137443024929116393240881375403562974299491035514843754335997191273890345600745976504521179571099894481736404892135719878335858688771650169438588107713837675953159391530559704954834345611441345147170093804986517376801120717690536774159451083974272307140632759406387790748230670035812827603486472943893630066921212650969247179844661825591978331651489225411460243539362535762543770988089326486453890918782887410675152613728617298793134042673443515689587594687224674558650857463746180957201726129124140179740884981317904252097095367151920511352506882504617847862958691175734863058294738566075603104357305922950764847789865870963496199446275556695336786692867979163177100887327458883440023614807168409149003445109940397309390137431933767092833203651084101622802480176350777818255457525824539324108523407840111027372547865202430497602190629320906429108035612892545806630756379615456647890771008386322743393449537428219003031462239410574434278850348168631161674988183345698515240488704588209965727070096774236424556867352916352994023242623883947135400060617836593140491812532988104916864042335583332459233995991598153265493238086138842010836826248470386811846349864148245482514669340168643675088309722055011745130422396346983157234042230613345547411286649812795324599429640101903412460500238394986964345848276511839116725651722369309352731986961977910732330953376850027904512097230022124644507255905025138585011691968356684991607376904212833837467472574686731275615437101270544209448729444436995616880692530204593316606420167286760086053260404099117077695333710147470447874773459448671771049287051174843228885149244205857425472406978341142564399474707206861263080402345706250502828151074164970709651160406316655498633108289386753758168017905867524154626469604745656767668691941562425897002103853837358020931867048744394446366033824783402917253311532432239757686412718063627995645670209677757280078533963393098557758019699281617387423826593393027317009224443993364427436744348034529673805118807204150601009775990403578921606832995758536358852297833109565755564234358027909134937625145669491053509497019852923127612256088688041911215956777253385919797566606830546180324056992088376425067877750318680369166128103506301006407102475138678127244606942478060296004011298661207055505819250023365947114798252264188204599869528361057112983786924025260196753484727221312835686148795055726578749908302619981116984012361292252002805540795432524562180527955615658195463193902902541956356121199090215008070018621149340219010974100315217693364848749083419268208147639168144220731888424631160010558532081907450278846767940620851679798845097953844603070397440440025484471157599340604333903244486873955161320715921195808479067290827996341818242552427467516317818190777164930230556997048959117580672912163367764786829633988190726206046553296244535868565382970040383540363538749878809649525435151183525877516331676157040168005441162271451885135176897470286302884536324354248580422043695890315530105231948141845629968696277333484716114655675595291218481967190026110836164884858006509062454894077248964676290972616390500676545382132564870823006208010969555559935350715613617460123340459032522916884183411990612757547513315627846282469240945045596821553057065178442095412300987508518738754645563484932827442131908169823852136813005783121124018602917912232304450555850071023802234393786525820041133901846075905839217976774518194920218797405033949150134117134831204129012575551483724868085926857862930913736751347402601242944731544865171938112446565560255678115468521349344850614204548898499387156045528426393431814347479957633821087125579401664779366689487713539359261729097784603413025351215059311866583875281254246075402224306080853142386888337969184082802490042443181172418263657674478496166182055414527811700789791738272702255349984241620823216717212066141726874393370260827050800774793487419918102471225201670663113003922435656861160902111932351485158412757477114498829222453092365682192690767366731826864305619726915828934825741566316625767055983056141526742608851938623040025548917962270330622902755904771841651236615193575893118865790581618899688698079888707100762054949934376538788230247970908794913273707522894806006909920615505659431476437986975591639661316118614443138569086311357210740152631729942415893795476835365452440756280883614359283394654297580884752178477909482813520417960531844474147809119406877503441034937825098385413231913951861568631646790005439954112570220234591121747172932333405352377924698473937741570834965652063889213094900898585477013403402898578153421662976232935013000862928762058937404815215830768749121085351396004973931808607946845641378390190720413195589390354605175442507267964378850840821069311830977386190199795829827118506854971345898025800147244530331656065061480107328169159159920764127125911096110543513330485957465844515374575178193344736435963998521591787975007388738998505796811360590094785518590379433454633417859441490896842617320931442373393689678438918110980023519546966913314696319771904151298968178738995713815848516646669644427097231239341251166605193573343350203899327669362748962054595255982062235034745937052861845293000542017958623674215952264997895135596630334492458421489710252393584604915121730932405090837578417201279173512512767902555765355757636598675969458569434356341401551304558295049599166068271744212248830964679165050003757926959610709951912048130407541186956894913310018118412134351840943605777060347480003836674249210576745940302666714624599001640670590710837861225338354663145418179019535813084468869498170393965323410934388703207473107112207755884609536735937709504011850853957909080817296213286351531777192699119223048612726916822728343370316161849196301596688492341467521506993720870454284250970648135925144347382054920075546598747276277301817458268215491530458103098622122159136719293387991185655818478192630168950214962627671667580844710100130618427258652795062553303572277948721708904186930070915737582985773930435765622862809088998473712002263611414942762022670878727012453901266467228377228651553171411257188925543082519264739889475982569229879921256475560294199154205279407895249490458613931484720435679505714299520735808299131250163915669813007629831706738621357037436048553577496683853964344473667458172484157596350219557615822347568200011964894256523825157224418583408693298823426188131691799243066521335196842791750333221483292794938714204337665784275061130662026572998819295044948378611127368916629403971285940562153060223207650692659314482326725073800098225118713601337732738275626963961449907735406718789294488506730002077878208376511873817308682854829916792085392716789383230803250537147316380194777305189944162960833786866236873580919859314128258838574757330531123714567858974794829744692059090543726349136054638125115907963621921140423377106462103792408259306032908532074441537082397903285154539889236176365716032317187061762627865506848695653193990324756302014416156525830160419071824053964905414939872674734612272793053407564701553256458574733313286791719870388599400802630903487182333430040313550767177604660925339333363841442967418688650892154012649638098657021605248447542969819631460254583045862034117036504365652898130616317160372021740072880761601407096432810083366690216981708201535587274758840115925810734165939714076556911863066694715722756502448645123102066330793277662049271644270637500488574496561431607921698943006507486014137912313209030004867623796324107825436691240320900728012003112033928184768548153216961394325617549098124627718879649988922202085487163264924497212432536575456712455929223355995622003028582969490434643532432819683906399028723326215412967049157869823991260815192059852833767585004318153574101160771841672592092318463990327737660921808090823971451918762908935318309715737686685988206478202158089949234293576533046768144126215012244621359007498062544361570667546339100828794487622964181405092428604187949805711949883449703312485808929475752048361017687435158785095008618429699735070574910765161192934657833234130014568779751222762149912485453009251462541914922598923124891156333206170638041388555341557797737424052911404016610111751306333072996816955463781006417203956329746066488631029797134466171358318791890955141968299858560542217334924829501227152544458933821754972685854338706623638105612028645392631645138143077885670667404566511666815983880084338088392186920510071205676092769331434567016665331407192489120782036002776528123274455716350754496327173182942197015491486152954181050302780669266721170835177346952231628042892675532068159807421781829576644367997978767824614680106059111114498736421001147793685942113575193358147668486690759764099185771163125854982865689454150713001754464672007117784123737354367565431624210596348079619033457999523327039742290197402882971435254873077658896226372104462732931942830123144377734194118844111173266994774183780916731944913344550451066350431004728153006060423350764552679295922887068271519219963325704454716668346189416135289206583155908033668286301234237077364157846778485830891663995274026920544631940012230988751179968402685227665363661253051743773477334522252907221796799760711683930326394401984849748085131249587100015209751041832258727955953750851491884159201965244742055076795803048496704720122785115760884068671902130266876934617363240296211740600662978336267870675852810153913689236787916481216383164651744409699238382731842381157875824415748046046358380268082301733597864409174514561201074445430485781375213762213431862114876626644780489486680566761971707636640382264381032355042086666740461121183897440785425266172936295537953709836977369065923253674186853130005821098186736339345586714354185284352501582197001899010668742304742014326398264951691757599844308887313039779952682638514328233455140754343957486518408568137546721228843809622786538175812678710174455988271228868775804937852984153996797480058963140648338288029317035827678776445665961385564326304839998487181663256887335928099143901459339226950420574564817566297830734848149084544425344263168641203307184198595150223560670752795245354044489077445847408527686456646833177217884234695379396492689438993325159019248107973215441410878237874429000632401833040969464875901252785883986778565464196098815290232621384182261922893714074851830920322852953999068701266822705689172179665306795076917959638125606326030694235865304140914561512568442031770274434190854049359542479173606716767678665718005369098955658214638766475301829636036417097503227034673630083395580845146770027539142062616054982689785744361176717975303547400973313471848415652538767268537485228537281470461407723878050284861644514631755363687916059661197674079297874400751699998272727475038643053949631847504480544691689666484203700792233960809116879470985416056470206938536287845183804178643963731352056813724045548787616852603206143284458197910682282192233638047694337567703056845914304093117084746656499887222125147666998729215076660084738796433954813585036451194988810939124377207414491315560920288787998331647414701801386032517372302727208834432822984931730965527405941676895270613552147913614732576359780719094281966817141206061482965963310467072971327719911528808502355895227537110531990973163842232493378304143812730651307975406874483677178259659883655285763946036178810178367587296519891523531258109977358026632620219966365593131795292467006124512604183409719844913391063400630853985975551316883166930979427737796433370741644582161533419059482143648940526008267978787388115867288362717705955339506151784854411530603609613001147007505552473651278796954528505929168927371548921268380869885701262237895869031492413455430189489727881031431467780422380511955583942967611850857531423572863604734772045468270507136530034700289442853231097891747490178646055585689057405736911396790454167614561736044666580125576708461153938220477978432435379179642588640314151205534258394114769995632824060718245272015962586041349928684206866594859523401051475924130690566636980383385079514122038415707485057368299408712461534411734735251040224652417771317321992994689584160607968230129697935168952860299085144975348420795429192533275845422731180728235431260173671961608315934733924251258965674924660128206599306941217594198591685974609895667773918752167001457239178960433765001543921619990574953636669621379850671949498888562824332822499970490878528786096027568920952603245181296658751226715563524634386683129152913473629492488626014797746387167101309554569209146861547065385137235938555953250484409825913100780669213846514812644759893749136891191759425194331913791984358236778967416574365000164280661486093415194661257619357703952137018915190611543889862745935397741800462516834919395424570482226847405480415150252662291418160551550373897904451784511673528507555688253840666141145058113740637370622387578978524218399098218633629483158579527909962713981831531469536135002020934987665499548448829844773633834925863587655786637214769544897729582803932568832597971832272226816779726442510700864165410591167876526215888070562001360707200420880862767907183225441791825199279702666735291661148574221140371120350251062320539361474410975686285769221106195946819849659418374071467962036774455366204505750387221534595081686982127130980344793262456107375713669547389108022007007225655698282244745948465285155293351101719609367019484978038298489738816592052389703720783359573356923877442517380061742267681017190191089279035940472504253742979098320580505859832979076658099100120116604946133235845424266836375660189405536481057400045622701431849076614924739245615381940613156197705584296153326565902249207777354490939869755160139969588828233152297099463194823988265267560820133469315679920084564898829621882639095991281752173776691670099985709256843615809976408830443081333205005831259379456569339910503413377529340459701803306796129349413912291590584573776167861677503156407537312780785605272886279475102447294732496828907265630134856692802979750715517744801749000700054567482306718295167840862911211199112245197108982250722956789736328623476844957075749981587928551261934920518308213425163391187500125531192309339390622654598079934841793192008498585531492661266747519197722926605741489810519066998703802246182201431777872723774083533742351876823716102719399691335099357737510354414699334223657820785617382274619544114898993177343875656914620720507257129516099034740141918767701230630667820537714314515010746067033491547109908878566573297724571194790865844730024669881473800679813147630027041608321924325782871356735168039621241935463240115451294516711240761539941119373624272192493283428696178238662455839166793314891640928238125354002814077803682262731956083005942179235116135597232232465277177134671546880646954157163343971487609774884773719547650849344337288496948137574761270492931080706859080562482218057698420686015168671179389006719729590341638456510992677573483101027455962619064237226218206071041905025374708674169285712385912938656612370803815114377945744170554259511643032288828519474361341009292519880547889594294902725740523647173801926363869174997534494261746987359073191511774552904338386906603837837631676039758024638247179449695058803098372249916244666024052411431098563158616540188741005680941196811998584651395505813612354293645277804437730593463310411668549377291210874348598933892083163513164046394007054276971759840645294789078010121770427338941842325214852298341117113212665812647190795367763674609463330132440768660054588582672526155333179382360930679513939684007639318121556811191299014989668171988116462374701963523322863594847138833619384596910767552106398795822996399053455698217816092523433925744701184489999376165943373650810819439133268532107053587043773618034902113809122872869448685702451959034342409745577985688122034606324448038805597983710332502625802238712731733658802243490525939609287006677346406811994587309899512782500362217775204172085333058266908473239609918814660351536618801680599589802170302446876079216430095344047509819477025704654303027870853087729754980595840848319902646097703317005352299107824188425728065835023386335148302903971237561314125012035129585778186447986536633745133396427486702201162858055741216092231977984781890397804831207664846321250075535854733227645868065264261702404234869596285163904398094695226703111234513743975172594773018365788348648888419403709996555682505820904137753544796172951719671571269335908348614617604052945645838756871520184676240216572903686573513154629594811865856601129966915217579112572773476091986945061814996470860679793651501461869742824749596279941226372259559663148259432732609435075564003911644013470927465824169620686247597977346092855496334860727135521739908764066267513041754127549650597761581934332149056489359617632518170588313304217726048411231643110180176347994381798403293755144395107520332603535602905427807721260615998016840558479446513509425622802718438962513246939620957953876487994487928093453808218953362236262124348301792823071005324768309618510736599571280885681587906322945668657378118121813460595901707902736225921823416023203687047150947432678224179273151295036289502680014479898329342510064135691095285739512399635707531331268731475601743874663183594192662660039359951325055735085305669543148300371454765619774453423151897108602714437265462789685502542764937562571861856754085829041728395306526178905315302822518737757235431747774848452880457651660920358555037423779203429178324286064677418748582861696750919033516162194083013778465967860382842768227329225527839389604475500928358885723892865452687608549582317743788083467633042521548507598008061356629312197347781620554688475916656315272687737597548324122534240774452965233437718520597484896256582577745327854740446162578888711349541529942778293092176779198598905201515379217690224924459990653231273216664934011513599933207427420555402132086539478940617896061841177324097431705095455186421739973747990228043081099111190423179328156643231359864176305294323289332681887416401752052624448169040516084374902428764984946953477441816077104376033169535601859142008583962194811980413184041039055177185997457954718979144179544785167049514233413792271919468283887001498335426807585779023543325080773840037083824932980305758214493715038395639810990851646643142862792084827532766961336968059093844703282683959197299343340769187134801155315882178340025240224990515491770347207910333242649965798056295745702256989878609057842922443249828897177925355627810012189253412355153905466621832517027292221176423733535496962494282606722560202559671961602625781966799854253447104809919123989264897403074147239563832986028120529197956542830363308366648481425363172657926799100716062691250140020054545916303258610917579164838613010790635077670734394803247132575917075646095482291835000743485365421225167871818960836696491784566278646816524456670945153331617937583050518513533666079142124384763703359444614125783193664899179021851663304547327102477196800874400382980850760363673886049534607365213155292902560911566586258449725385337595067956285293526636399112832396405633300165580890530327259480216405884932622061306177783539556049419260409754143020720769832749024465966987635642073047187316364475158396047226116826626969045982640303122196045808747973486940018439687421544563617820601691681074120307367901354718238063567781725981538400654273772039689919877222603845430824125214570121219061088458869722995351982207536269098060761043080804538608793682308546398627263851471209620938216516885037288552217117829938513938251033524497840464989540777882789403330436820729415259232987661814520610049162064108577393234318261213710348006714216452574192174607984488776471963709203605507283324500172930251910567792997044188112354714988396181568746506837899223936463987752892836240637742792793280541636926215121914939593263013073758765530660757524935813343291316646098830111707364003139548795544807321939571179613622463822961626134019166134079196066106735065439037685956041206052211647124900659652494013709500862350714300429752008505502314493345176009689327458122558126927035918563245381065751196596060259779132397290435025052756105846862663126733186846306425160738727739736616257356612953878761100708355098224380481254482093472036624421928677082979636762204203986961247548966434915082968373944742966271691582778453024838715186097500743262033468286176237680437365357197364499327939214307674273350838246582966362308959176833452842246770178710173366899620485607864346872546961058077592416597149308395332063048410409269825951197334621850060348088723095561883646633194911213851669556780916185016681012366352953032261511071182159487363305046430049398499743632782777365224817005548917447021406499952693617448262485431894362000598543716009910757507022298239306046633138737591066827478869944259547865188174404906104861399143758526659158026644044309288364162013581786509173201574510945717391036634515342979866089161651407786456677082001816622228670113331050118962902953504984736922964661345280199115698424969893604086739018634332616991973348029105504299364262614435130723168307909962876669369612353558826260781628345299376760640749575463163945280521427119642069608360500025296349188025676929669404937277557802964969969907497267875635663589877962068819561245062472190022980506055502640799302731198083627067325354260123548171892822045674469774289479057940533912260649407257649364199929632892021661808489258803767875267735059561493739536450815663380224692555192462387532719033209896211303708510174119455200249542078940151559761962297348093180868683203299375857800715093609469275152599725736432821423657922640378866187942958536464688826713828939658376261219233747255122142687193134781984435923450223008189372995858515842121906564603623934403728138002337452909256590626173510190101744071717794309008812271346887118927956159931815603030780269307573679433265214690781582129075631546246159343872639405536789527400022205291133034352331270039749144238070586486263853462763313545965888256484163845105044922079551873451240331854384191206203502471658556030239112074031655051116037080517095974670353703933254742640321050893721578930398773184624167675998280078458043786318716635342962850235400708505664676683043958624495318708324609955932892234609735163098119829886653631033752112895716028007680714864790593328734816161472975168555406902167752762904692360966517853665859574354118605642496982426562244078735869922355842424336163407240068401671693319772184089947638024707749904013513850027672035894905860375148951472517627910097171340081191454917923419680562047065286499436690723203507711982942347122967053740905561125498284385919632027896718202893103473157348943121255083497401636394878328589549991815448217549888707115212048212876702310468569453103882890557321929046155988118289393561100151558362208973247309437779414176989715018972911146085554403549334370605503072677098338269098810019419064302483735342024392669298879462187237642669501372407805313244946870012834640526462874547928222786835624125670345563855639723565188072210293446099286992774505533251487626789842906431713663301227044162513558178026082158334520094365869443879937196948511303220748635435822014984111095423230133101274270105419786516785740525415199276011052985945590006152782802031669190106879368156071691524978485380653401334763439808622732586201864404806499253596176091405755437530899590732112593422283074893907370273234957819249093811235202596771862066629535053720515126328034946050953283044685206172497573618286014597477821286487823234225260760861881897970187369850116992736215170453194003508593437550891254436764605236529102242166264171651870404020088605167237316411362999015089278021663486430741407330162882296177590119362874238021386282924061238230731373706438560199244302649612122887113141651235951243863047932341661764138207405226807241515325403855781722876726348289575575088769840396497166318269294086935101136641692578245613823439741817591483488325823518969719653864272521355555371051239343798898621510316370986957439046527995324037884685057022914215466719692725678724000138293947901922436433022233018928799726855429767331312105930310047661599425975603258506648417679147849612031789946970228541208328007177899453486767637438779214158567918564076778075390578887655194083179803700349897658478273829766806805386776845201376444192178257157563353581506604092162363394718951007339014271787748989583179526639175860528093667662547457829435105001249467673137000604634654339389196651561266773199994953799375009645914288706731574851572393393721272494061133423524849798443339383556036118599176937191524566961052212417011901948080441681732615073030348530824678248138122791414541307244298249663457395214864541594433429102487688177896820737668535941970409115845659528434245431355273078838107969222705068652455881115415372648400400810814709383395754503048617659497342720873949502113081751036524976668069972663976847138864108225227822569316440625634958493552240713808744980231628744323689887791346299604100873848056805006660464884227356420953710788150138030474829530945922094976708387643377384034079734798068858812304845952806221554742695988281525032233311569168349761589717323583261096421469185030610359355018294271859609057883356157151299448189895266967178882673889173571983757741714713998258972392961340844344328475817905674697789300084524837971866802799481646380382245751295024493255212744600209815131292480906189846969983398197638906188407017141133487963877394320997857658088922398098933531823370583658492759736995783927297563117226391594590975306714619588245003923054504655188187556553435945701955039696310328785944413472068222166326811209334729131864756711506974806741352367360192700200225161178518068357117707951203604584125881658005807146966758183727896284270389345147650571172801375069019472012444795221134620255618628581303600772641482005610983379988092115065643278678363127260186837460843668901895670669783383986048681310277491573303609743699272350667401484506422956118049239735728934666373006240896447222804466929943376310127569728540391108443417743794184769748234577779798248055049974543374012837080625757746622510311912239578264542879724716823662358179124610135773597790736643725624173413962527853906356407036073960957451425846014427214453406184484102672637515036642556137261140447789004140249566482684686425046412750538844671920330303699434733820099857679769397340067123583395876545247875964339819279840148864201337692383893426597042922986253242619455848058184025749302000329292526578480802015561382350680753392983615020204679070625359645154294578779391596584546683804522535683115749107699900198703368736826073986321810649756203675731690956517639128338057809309391539117679620765401300799875123125810093223870184361661955103545033769317486920289782448300412892209084944848587373145804941419309655376096052512165992843895652041005987180101381881547335935596323250109780925579930066646957423663200211115154739674394567106792041817713073707305220543223658354211667912295109932961801330371250489210914620499563832581284240927180899979957074485140255841973892535324775667420509197534148423335719785483901093490712484402821613048391192166763529099293204013327183379844146203325942471075400769506025039566499743494877478908139350237214070345929948389868474617609110937582447355073168237866845117796558510336503265604143673858245605958090222763699986282180159191985716397238154971675898226586298391419351846803957591526377358161935722261005526189437728468580723463685946227587299790845780186222689389637921836456725041423742446725740682063796606749229076854844266706386458221394297179342032913454280083862249244146215529007373290871317047811138793188039083936102208181746677498121242249379041393018638199186586794968540939422003816038231991535626679874060956089267973777556098953753581878999013751657130371845614819995009247151662388823801630133525809527551855707086433120400256212131791639060391153993272364739669145751451896477841696850501685644379560629613618315624336286105744749450568295700564337437660906200170047090025389465585852450334160575163417812872880704207395086916647079647997992320949541161966279306484199264210652178386041701442421745674942881802587847441570535909624935185866511370113438085936927359527840700053024018181922373696907607666249388316103143014973720459685222849826252045676280079637213597027335521465698509448665228651606313657675385252278100195713648627779866658167054697712875645545895618931271063195218505197079340717925653753486329871853614247299924285461148699477238437624273571361341614638372551203615630497629844080230131567672070671117607813381652248795826763816648587370864552020298672660982591338657439106567069345696679475644536342250188503552400535011114503790462584539562909771454725268817956433298630535760439386584873404303014946279869151506695972187756133142786562314253234487343602667382151649434240130923757860256160676955379671347131360015370762910204258587702328226291296443506164323046042191458825792062393547743845916219498693216584534625395167515555173199435079657427304007360152331911307201575849521980708442574818010173828462008010351769624813759831894954363316000307196569801176768907549782300412944403037031075620976097131430009107905371135527135476235562453538956083023016814051138259190422916573580589613345310956094144364479391997038429173137846012039773822952731015512932726463680499819566137723531929578065603947744972132619051262947565665513117389567615898970841443901960146492632527608465200046137475953027329062695046005761589871853715237909707184514367175038910979550173102593360316378340717953536178670650556207801210448434867841663631035659739209647539957710439004490835490254953103591537774207166501729761982784622443584873913998794896461204750611981877318484070745055567841895870154591303595399737943005946313043564568596784703685774611699922232013178128264792032298758601076167926302531667155523503934809980999371443003356856161671666185379707996170257588580905902410647462461012179639999550204413332614511290547735016079552690378158254188771088881695672848725270699938644836786769746369720010603998609554203899424716682406737939782019432001837266516608149870020498534748393849006351199980431208609384831162412094715022067852112353919444173332058366412372439993526891756049902936647292033903763347872850003936151912824431160871436393161047747124704964520634413571130792193524470436319380709589402511815183924675848427881175970435083507518498396552591943959080817595246469031792593383603331537567556722197669381860550644475237194259702058286470702635633955581774573395947882639882102539615049674287660453118542175650295107969048984551833315384223724748687092233789156090108716207043779810142924131629224686766633715207861849329959868926845536972699850141441128511570092621590761095295777550460624773511971247370748504393460922750776734994879115863117672077955705360373620887400643199331310249059027324130242606325574952102231809744492443809987611466399786167043834339855381977235483163393385507125272815723850812350676433575895722622784582730819682856077913438852133776587166637507538297508410429827819715112694708581846445638404212737165440870458667027930928871981058707013271624901887699022931510856646895462032542508842453456426523299796800426671379793473368961101200018425828374167512529649174868835601679756194332117539023752951751849622634512517028989394014042738253101753496375115147569137550189507845214121646489969459220394018793256429461891535598565178060091764805586585722420498309156072706737865015398784618816242147167046375886117263811168993624750852245114136358341198455032266856098038946234741657060455395114269780552780893953343318569928838583319296804015516398971702196894654549607230760582599589937123186861065060584112556001615042841947362268718369230295465293426692029362465451911146606747742535574742129655233906989836144822717300494295836350003210939951568246971763918304425314754202468351219665211647256769825576449239747219261705218559381544619042949723199263728541180873478903739974296029009117239455725687621090067999821702853292437783911396837227498405085570367043746158572056379909872229122530553610925595907371892177556455782104328978163420901247758909504567298342472063448875326708014856300161558761668768243353637917096389539272083126337515617691170030570611179615064784285276328313363776333905810812789680396208591144331631105606388510386365221533079421479447774619426070964797484965843564690010089656786801823316599433807129651227551961482791353995526155807630582886629413406368332325716113023960742373041649583528508367317316486718441295482999427114095253134193078954025377524445825991870564255826926034976965978748298509418168960195776147602182801798031519486189418691621498762262243933557439529689874782370950487399415044000824205526703170159475691211937521936165152492745416505795003101968082511543174623870174374335182739233436457432171503010490219266304118826548974951459689020700797834122226060684244862700525039195271435052144392986133549752038735451518381552463110167758693816127500547788010605602723125235063866533889157008221049319124681417632023388306031295164181811399154545155850926446449000174872283701637938101800617695968345361001247381073938187869337478675271195183299039251998824720692226723415952785155805137509134426095597333127877912561804982127039506658864271126474877585684616667498027150769960719360000637741842405704547583907767589524109799101408208122035117297078731389087833322725414474235591652081256456794369590023583204937429971927194305066848207189296217034456692718305286929111084350757112653618705372340863790977025315986442437317274544787254577689507683878247999877701573396318237132296242260426604665926979322398758617518414489418470257640109738298801253789905210277388431192078098251684245979729657802545143004189952327338582595324938521358284976266293325711492266081953270678675238053562015665009075401460875479308613200950247339026374938521021811507435214905447454455248877237400676746118667872744658784973479166937652482042072995178265067287514885180785966246929165570964377046975309881646816442403956907498857128180564009865862236322585592654183579715220576829942750447734661997758147558389465180950705185623882154270647047945437842236343028448535556871709008798995676236249390179119282737476659644168379746323297591665838187604143039149651390173730378122258645919258299675206430659760190659185742371962487391938220500341279746718100519374567901796877659516259133784420753512167963391171898179701469386266227958794322609210463684385696080183662789026069073498469285887093444515147770914976969217296848286506653419963471669439964732416877055370162533949314351809368614776211960089175966592089751495955989582623456041437722444311847266067955659206692669672847825441435902772141410923563502209746614822910298208865592991163537913040355763015433630623019262723377767855367119448175144961369399846734239101103378354205916494571242908866625732092781847970081089741131685315022687778077392825031034761591718261799925225012231521325960293931764482718377645913110910402568494537367550625959387549218189543717142300169733252016621476982056854963629893545050763580717144986400258452028715510506938807067342335184583771802430865100387432227796998441465621533248437113555278520969931265342119407913454021076812606678402867629412923462722210301913884335971214262975810938117447397419800057946809774680658529116651321649864248697158352929674245179234638825218141194127174962175667623965417789936661100840152749031552613993826710687748885517229536559458869131438875202624595045497008858516301792888877761348623482826341386832158770824003885070613352457029437054543583214846147207947062884157463313968478714340941232604272946083633825675538827189567245083129783057155217154756016209196217881392581000481055564379963828744519271496166061106749474319740702608406052202931643479830965523342383871634984778027567908520035523081316480855995842154727830545514325191890963980566100825679182014764510639352838880766429317797358094522607808557366299183628340993094911235128475859344145000038027027474328165292041635811802468662368459370952324010693819693931874302685792072971692937648276997770142665151193280643038078721795300569360163664217776747254644988332388492736881835487302925426789198406166878783679825567014032293891608296612462008038064906815611263216034380085733975341229804079619206035564688452751636685793914419035585206797936684743318720418301448014183552173624661244485726447212729495007481102746431300239998631204894241962076091041869565206660262011306478976667248653314975101748497816360186335543682963012328303184092116449136690426131422762708354154583958172391161634615570426876353743222685745507356720025360855940298692569092073413061964370084450088880886020336954410723999531601581851901680363637532085790714222503997910722012157584982291152828396175859822819930648990710564765838609943839755436867056806972686475670938159895136358855746170342504446300110621545312956746531771187622272651029006832185356514769051954982271510266886570847917915485862252741067049181988888066783639334966035713177058839538046161136834416554559528610854331867683144542138854245446440082552779545842894724655631448381026802834434752797042454982173893267210222295844399795040527152952172306137844781505751914912960376233279101593258977448272755461694994093293259082300164793410965805532860488934998038425242991119602920181526987256701939212401306349947532730652140062530677019637129061334052318843803748009496955055270189543504190305198798629178997883356982661776964427785648144178822359294446823667451249474756600875155124850978796262288426151989959359067247400977486532440083039969272243608506155311395718839109400912404571296472966671977774640558798911301067659834940021029115230957224704601617503240493093724230835751118497927134984694728480997087609863432222770642271443282462158482676713374722928171945802985210544163983706624304698359764958479479184309222837331935010649867438826160490030207411560653229525810357360308116881299672255679785558870359017642071422587139346057689128754195817426693587281454728474144251400503514368184530005838195610940724506729067831982511455807914960168700719482019729944835274142991620936436098889416477470023017306788850621078387155138911193461875924697229828297270881658738944643972002720432137478746933640551691470886699844778602236487300499850647250242321760734951699972014816778311381180717476397163644091538255311367654247600516071393433291062273780599560207068268429850213977296847295202113609144147516577795177244591479728132755465574911750887755978115394994576671044824114270206900359046260641150826869074742498407180943372051713503375197272118042272807990903555207830299387853041458943230809328798121977851433527666914605913576506180828758992412634971471199893295485441136790935239662754515076320597436195103945701571529041981598687207910561768791841433151939608407736534692287559060615752732275216232528311063294586261120916178113070021496725838421399216887460563528215798993282641685320602394359469134006221372943647625120021467214460896095865722110131104845338759244854402939055687670651395129524579542902360945748515378339617353083997004367101891938555091242303891759521510730535554900274917103843572370430598212933279036332738565395531309865983267118106512957780265198881587411360744599576744710425810318780172030605516214394746137808740258119281349524738862641224548593398298568415544128961648831125754454674927250777215501726049486631710243951077001674749797158102445547376785137505777738042812664519387263382900113472762059788159945694604466037321661417745815373172348320714560168683088118559035282900326356181839178099939282473691852228090106678997148233635852338140993886073353110653064327010246866255814047816403116753505698756740282833524929107312809972989215654986331837367051995121235285623407924858127906522631536150883294573152065795443995051130507671546811274237088725342803476885462812469244207809169267935855067053997417751419235245765262893020104895589910826516881921357749055760399867097852412142903618549041629116976516552028420017133996881114864721364866689719330089674475492712112962512815663959422194095520121750462163877306084738245835025343460397112318439159736856530429079738905554658371311153483562204444972140039962228056212739023896664399600447066411494183494792662876508330115787506742370042441480060644645508595472982786763195495589623792435462614973636593407607717393997369238623375001904594911320277967503291817512488134690460279251868785709661342402419984178557363443475706191914180188489447005466224013778393538875345606267921290846466807979654298334825180232841194445787993076373144254774482847950955011255291918016467756347210774022901866336345839906887348947242565804305906256828685692910386083919347744291777161278726516308000163613009305203878572069923086738866906710965578041192022036956519335959262055300072562575353889205513476885220351430529053101179961487080046116887499046714877127331930991628665799724448382303125182623704361287634797070567388001943753239241916328508939109953938592291629820607041917463727110945588759395616366102320957665805835641394412510668866746751363619149517555332804724819452815852323574770251490411650246917850598439852354445530771306799741754341846742724498455862048762034474738760671817342467068945381364281276418706947713365414385450478812000507931079454019724560281146807283865653001243017854008983712671576812805005052571470529909819831108133236481714652849366324824432335376872249672768338130536506482719201214483724568812469262368645396322270488758138889545782173270226961704802356113105337462204260168306668219932695638921389991567887882327063188780252320123741821074746649319064016270016688046311294653671942574080469079627851637861756880420181129651445938464524375989711183600581699331587439735350726297265974177159517597493475663817392882198009930840575131037838927429554098274726353841212545817073478894860971348183984513957064122022562813338711940409938413083697861835782346190357080086835323495686227582393843515792243743880609373144876328092175553769327901127547993292426428504383446067666185197221829759887188993670312010148684463323299908506103085351218032243470775548880623756112282543044630489699571858220222867613462082773823978756047025039868963609595711556268176952734550042181034459707888247011358424968373881782752024824495592906441406767914719661352478439515782259704665513679668850822980041192590475963370142549182275688567501748718348973469223260634833765147201462690616446844970122105134205153676296928420761231131093016351785951675584039853850004856523340033558975729803230002733939583951782302505594843052734032806288895373755438084485479901029604620452882928999165970703935025114464626769862060892136178596313986341109636367951405275480491348277594599663977000424315152058116646032198922966918126062156534353539691863297220419208335165000725949017535826469212284989676928053160803618867386992888229469407398245032816336045093771920182963773734590750904462290797602698429069553423237923622099940919601342088112476693636839016438057785790082605436445473570948532806842185016665138081217849727773658271071479208003014430558661607138439804576445629585544646139872993445654967862840901761718350709995375506651135147860056951493500267176862197942604601617720167556922089479640120896656967302978000197727499648585537906467720514604851381679191540844927201272123265479003160544265149548989858961203090480703154089446142567598152501327926368553425720491204803005888705628058612358186617364429628294545475927054109586530571052942357608112689920231905402528148663912697820301437371006584271455324897877841675546416510675177858895180557869829178714594539250718028861928017820052282680474642586349007040927010273547588233816207592367317958405029659227355619462606041459252984468056254003376867698368044200019958567261878486464657002584290138353953185829466530576147155747942379259233865996173656808840374543570961940234906651574029683832964071836437165864804403375021830539794255385933545587962795008599523820776944203484873139067693900942356349553963579650893099367658378524869269206128491111757190835230800615653779444378708349798304949415362284511966350900103934927862831325643856824333043567564158394853541181496728221026153410681013659987624995712015275695103413317523935930093633288370160577775304749626969270888434969246327306594166563898932843141750066730718022406992736548010667765727112796836380185743448509425703838917945309799020823962231079367327290918380906504443048363534043179573420479588473250392343380788959113820448257012869938850801030985132861736831964505862991139285643917920037557604531785595640216986028825171613147070237595169319332214762573913993138035397201821167150175093848728559644068365218285558627703990817812005641058462203776437592464170309354665093698069412304048087637374022130114547785287651697004297135763770364928509456123963127137493422869718493169337123591048355910421511894634149819555901321017859162945540668920255555056464885699250778652488410388915450134389947877809125676487400713958686000242922582961221261899939856368238203654383363045005727426613875390864897722152290325978096034531946507894515903568832844205797426242359574923297773274536563143073086447027438420013404804703397657888088739632246985387211065491741681524051622526750915874860991083161965139936398426784284029681967603907998607930871454810748780049922803871473470796756433297171454063989000933736805528143896542954365131866352181303765955881671048727772176938253181328515584197953041343240022015678111776279104202027440071211894294406949318346472988215804873474120307245520181540072299614237831707106692595172728181682503639574991945547520077085302140548748274299044146639520611369093043001687481787946852801917473643839246681799059567015825021396486639889801421200867183991719639559885675506045112101282964070528982524277008411503704918803163877659773900065145314071509240151292444978592064819042726005809442420137210306616173212273183529736229403049579395162466884505169305815281380038465739464568816357040254014705941215805809900566914187069302510413240966951708417712058477303420994746867586838253747071587171547313097634097122804188117676208524684059456441134109810152330197862393740320370975514704436455796498500780423719829514757808239986556018133024018795906511429409591413113847895206718933356746027644448557158249258243028331043561292597932607016989911357014648381639034509375421630144522868137982185264675377473857727037505876520775775541493837503823417167676445495244904263704872961908101573435126440055026008093726302433293905651884148955975536392275917272317456435876726129055224852410900163431557151095495233457507995601835603602508651437122851563784636715900936829022163844632919422661326434587038448315879074386031051295406263105993074285425667293325942825750324019783449112750194875822647836815015747878705954242661867129674293875343148801524748859877554479015078379076141662903891653357715314121118539370239366010495977182115601479153628355290801504674878025171856010860238027308817377352232338588098243050486101077147255286559588672899004844956469248802589191203298427109578776083097854737757934543418146701301862887844897688390201761820403883104183159474655425554622082953797822300949086578021147894890595045116749101702944837783920321020812497404296467781576575173913783390486349887119620849415184407730758744378584286308215319114003976753489861143359591375400007574754166351465655338784206049328086132829889424818916464609361057441264259962873337593460725228759412501807166851918829442368994209491434919914801431974917860524010075338865872368283221259371681136494513005169664326851484604622505554677464386416979765826915713227665220518373905705624771032317842782319666972235943188033641962203745490118850653089968643759050599362472352853421278671096474148751432277925199954848560208001471670505585015581412080359221840057771967418454410972987174651604019415202531312249301392987405696757836599297277076881673977576463574964013109250050546441168552541844933674719286517587090021576299052748146709755039456855372470969448455809316549425414785584300798137651096314367131522554211240500189641100450272862980659139030778160019777798221406808142361623261104229555505257428202253546996836024634591585023553016590615117470763975047665968125581085495828804935323923144409620465739963023856421755518372597455344194706137048160598435810753777333194490818494121876149513612306491252464418503433867928198373410931510101771286868153202854406148930498551351647814494913576587112806662743469523148988640466575886901461633608034429278151062872432288555953209029340019096376335094414387283291562624834608983682311450281374858802053283929870217269588399384411277872073906414127543529533095201336829288125227642742120603179705957679182003792232284262883204627865667264135290845570857144191437234490396715169746070282945636321001608725396855596063975810129735796252849575814002165200614272951260770401186683426058720315882752473913627303047468214422165604510600974568477319641939831890513488610072738785428981652139760114209175650077420796043183017914737862852278994572372873258153565178769691877258671456294781562288734580723027956843537911529079001188716637757687361413522232868222859045836420049558436196308778897008721860551995205637173416880234846280996124287264508607750131198109641463070141762870662973653140979771622767535066523436853196623062706587278555161077680317611940500902894219439362193082109631227109666504705182872161654934371981360300333213202509061208443764439806676257859700062643738339215875527864570453753524257752940452911553464228306044979166190308007992645933846554173350539817150390046687535893354238746193989137416447594310935417533767189903551611799149236589074356820663305386382490619329902138239201466179002512920622912859456887595763597441953931073654534759428764272988883417695211029959975664534207662900152836713285292077104395721956753607302781835671170796036286447833510905410390762394787518255990417468760978736141467786001421040280748563017715741082072621351312517611853300326321763306249827973762959424310815260910530082198039480457781867325294404257616016676316672121450427924685893826142210528018528479522106187191565165673463578832731604315174351833980995772849844557410601722675844312145511453061298826100004043826727316292270269074673527090645289059113363759279954542698768407390067145211227058295897870263820654371092132758304608840276741350880515465734555606851942271928688892405576823761960491649118084122455326198393036579938602478080316333788228208783589892261038707814510981707497376949102523095735159998676756346233274839313980049812755940386076510569603114312152973178662264066661732742825121117846916432095485441717726728132509252162939988719014133819299997594899326725676512652906128187630668104886563344868061555751583657534164706077778009662509528099090865369466881685716916287258010628684954792916252868356445691186833127147732797861443768925847172291029597238752605264197492797442402129700395865683644814263876678120313797901256607910569329497169930255267081600084069436937325292597992466279315326899201376640152594244144647187910536200326332781314710362810090534714778839341986038720642262094630967169775232894309618851574027868750580628246945498463219246585819295986104090049609026420294192714014604537167677721690077033472618800037733548617396277901987514115353791597675953861608181531973292813435815588505702969061100552585274343837176469486251454114115268741167831825186908395370288637503023075768779767864503419236132851827077965811483432280992935054747568933585429687801046893719040094740396183049736743356975571698909452148644987983298909169679408423588142121161145547641896697140235288245819942758798651412419125878600147858758413240107580900153629090083107368419835977158492499784710830127436815566150947506961276091359248841732746225251857520097912623451348358129081994543475018179084230220783612186864157924852481034916996536884387488065747892836011820179119846116981017629807939168603476566857548256337699233361035945548534795241256569365965075081863912905475648273201601843775741199688084629490261436908832369670684981955141814817744754097477571291041575506087937196633064413339340985847906937381526460165855311724047679609383607606074114809015923956355364352220560041558573858705783304008430917230856981694422846740868486678154408750805830223715730457168660137298228394249999272239557807432772249254381878683369258892988054322014315989190084849800714730154242224156151397303067981464678585893814293934157245750770790592405719570230128216743558066333601179995582535935018432251251289123252948517183011524017320958736404741443935360045219420586077670478597394577079984906736844192483367470666441689317138833614419593241627295804695470815469179940173647222077704488127919118734183878287536897633548660737503524216919675019077769964056521753189087374063760673165300642491315833217632869152879128167872668166373603474904429513971104596502535714302397088234503877458897299276446024583517683701028293099036129302954298419215628911996960698361576057409018970849676820204103914173975395347989976812931179657698092304375868391754813934962774672209975165844765688873581620271264097471205096292675065408113640654038738977940629891990303834717981127117971108523602876093049250036680182312622299586200129885460996389928151588905810395189411947845705247211086238249922581967136958567829240879738791225812681936903306774755617362391523275418303051334948329234249874399695356210999877339362405628212590233042201209395846629335232421631804152621700997193737325897423780153196850470741900841333377107737687303677832979318326596197746069659943158849263787491240263300796782060853743716649970625924686033551774794448255472832737257882034604715817487233719989673306715149034619907886949148314091014140663518699344277410558233461716264795698943403764265592341694196040886584170820416757471582680031835495725336260849976322883347154614582473622646127609199112555725594179875854837878618719475955863900802749895876934157200257508302135070546016760615842374538218011492406141075637425882910874253844868874013297600780251724535194708380032298276234044572980998908023694638822791048752767847563580668471668244655186633877296750477897915924607196408936324891530296731731405308319066549324667287215735101389917981140910820998239906328491709606511771994891851857449491443197623145844052583838097101506246456447318847956792831891869902784844427754895638494240558765778597843789666634869486210959422475819560195706545637136226654406575184377391367902529305645869181885291284968848227260378562746862378484057741454816424781491164898134090135467228983224501392886758745232205144089317791157837725068829135672973618182119777607430298847789936317109716915076028312203661933522562355772484969268800158484160314944698279352762976150969554051590415804382397056792536974035838247199639925502616796688524353642008313203937585858717564059333857282509730969219644754615392093920653826383473252053783753413590182194667764718379516404818415100239948876772659507042658983589351570866285804209649059866991779239342610579466692563905215635169401528665824494976725530664400839551718178200184157304067719310440366668056178712458946001326464654995306148213099538750561763045913136806991190570196989332445195171093259288592613407807061250754793416726845602505873500512152661748862562040429215957874718188166837867136915222368283317018296051880849912445429746356775832307788238660024145897039461628965149217445493538917899286668217844339147233245553427581421981701940988302008280278317160624962605922559327214003810459053567839518065796331578907493955669871674653848012274378911015621831022587435946343500505402507800621975074258992126438319352413554642377358711985686325705188165688436007409469961073594403478784264814305564969843487379942850109706156966294199411931341887254471712809371898217994635394795192972828336501469945649101086055967745665788220166575656349093485683636328914881735695301702759890043671311063296194738707659417503695663779369047128583637416507750488393888328349814172118347576494187501593392897152791292930052754050965566333900999885539936747941578031420571301630863185847942839604348926669182605152700810836289639842083068800184926064566199179860815890123621382619098720422421699853377539354345087644781202441269580115065804032667609831092485298922822132401776874102697434857464088794079156072719555762846676644068363245255872137668464462407397883058782961765808701998017366882001394372057065104998357013237570890572384842376449502576479153674414387213816105552839828056593731631910725318491990915543601376643178734318630302972723109745199323608033682377033972042259474084684642140111193578198720982718456357011459350275747868281771859158432518475406954462736121659484011558198346073635301148522078176034030969956313265507966243280584476654664932448950378069736695478772250170551043801538991226862289761204695284008903121677944133833799822480997548999419276249862024300343648509576183082092690331399090263297009747333197543385563123859824424126405202661762891993334837236587810886187125870167709795935478063064026294374192945652894653571962911897509586518417121577066131044919734926976326561343504635650864781707095813988832949357058200218043593637328507809918100918256397091811373618638583426099309683219928730941820844837909638114403266741587704049967702555757392171187568849970011373785964662253341719639074673956159623751846000854381414680361652926139896235226816716239424741982490478633617791967642715168229053635557979642628703152674675035406682726436641137251463978440913893125659387366333268683234846100970334815684642899770837649194460205218646371169681610862243778572416641248632564404818097972052296288770378860771509166444313310427943274423298604634463121148852838455627284611341517785902439629543341351265219978891969249150527683561613364128230960115214196304488855083654938634381527605540276431844563868981357418871133117213551429268198990860471794753193014890599704271487758321998208095298613548133823297003382618936696927350695865773647029289737660233687430194626461612224592315590248070036588044927362000646008361374552526135762467445213837853236995307426971334893485488987172458071001436291732819949142161898769272819743290897894434937377205748492937596771956758428474803998804117190705129158375211904361649631179940429624876506628038722614666529393349498511430509992107200753366603243396984476764335219881916754789664235288696929271509363950584179980363234157963417531350200206099148328182790475160699747642954686411873706062039234825946582403804511559003601431576829093264285171431255940922113953572072998121666552102649004298007852114042426089798189326600207699052398462518361865589073620130821807452952803240397483222452522302641476173871140215387740645880268697778259286555408449097768740576425340086377948619395223216286284856056971466173914798426186867514101123291928326975080494564289394934389713406405546564785536516598994485618846555890555474331132283989465471129582830067703855064719632542410013251361101131452493415290453938060015505053561199235642135545624020053030713353301499909714708770361904245775546115094711102186810481652882505308330703921288416660137153823802664453045297066428370301626934941369693265826595653979589676201786353916957456055582438119486120100094326823265990321960202120868464845611477801840096609928584235547868746388336218250252713973684227170489825129683418558028221426102455731616710763712044346182323927273733738027832558704011268090701765620404862748669751254383366925811371860688145956153530603802870539041742278581053289890586405672255584971361026303030954661225063565914412583883469357548892620844757815568055556965592529440240651725739886155889581130872192737960995311547499044100202941022812639974300691607408260505240134104890698022042779193723643620800016788887588122257417022911791398959102234417517154429380319173349034072985608348362509690213246811469207186851376503600498693452852093673018402621044499369794080252459818359683938267962187685346587227343751875074014282610356539582007382594817243601165220550758472614036028585427402042484232436382775859604455399253003759113822809460329038791387173842511352919191391436615505842901024293870660028700569863887105688898685594000556826229810518177829754448059929651373719649834868537346310798925679972030718521182638259345228761801797458008522287190679759508240293886454395469159292929474078721991129530579150007920569729304159630048456594126071084878166914818464395198887926951274400649636395538713343934657319855129864203682425452538587921792749470001891127215632249656420738059513799096472318137407569315787536963841429179593454137915745985585883108277234252363297586157073915726755458392733654210843963424950439550571073018551446801515128138251069754144387111555295890378063936412096382212303478227257259609416210530584310669225260998329009053185811355335718215439813767120559039067219004840788752951419757477413784865533699451136932791183091872227783856272468445495360336475568352749389876836847334609360971056008259642639813076670569072329387075330848816141363031390684058695621707655721488425631701799717366012854036926239524453509895194782386753144097615801144145634999841103496060628722811671595000076358319016720145527136938212454676014731595039056601998638756760083862398320801009152573886000599218946662457800245035573020656716180743250899535535189860872269217542599997548403148409831996968417100085911502980621050413708366946126873187941249271030390593177335828834845103052290435465359785043086068801114675706482039216728781405348787435782031779145864377410770063215809462747875052582064855753853843755354310702414459210475144452442563658279124942628662077281445171117899384168331706130992452011898960045590675991823984715808759135841447474221043548766742561521392034496674397133136177793088903989672974377036667664277058021658769030698363087554580329637284970971046940415508293383848029932040080401275148101365924015975842289973775886877208055038368294290457652605468521025464310720997079760191963188031001445769739953372294802137197371150212269473273179644895481667733105572874897166872273204203877074281083448245017170557533435435487075322869329649571905222084249753443967283900352241672259319255291542923680115975007832826361145403197438338138538633747124394737830487435602543156554250353857427351465999095509112778882420116721150675603283508239093659096140156015509586053649043499450419991183462836439114731109692726181725213049347630727148540365682128652081399582810903873183471503096232290812834457285500852899716332296871246506028357562452087362190615412919834666226137187588157233149286494385995708722242394746297155169384056530369025646748455616233939948316667156149689121194736377531595329363986017994734630767616879629922190592012518946393406625574825631041367460618192890511273633148376554118949836027643715225636756838301614083549420858369654049821839709765648576004650368916171268198613239149184897356737048999329785451933745986698126569171222865794570791997316663225053130082725421967875465086886811483625710033892625912563786689459275907880761097653568867969746716666430301846105297033445080521186716992851721651515914382179580627878266752312517092572033187502812678443180990245581465513665837240036321421307251167464142477150555589184736933722741827986289996919830605208741652329474549294313299090358663984683661639669793501634003209305377545017701615235123479151082019690034007753110811075547095775441783480342025057021211398852232771461150289403954264801233790935833865709870660543845965519968880735397708789821663220064348856263858306000875837119204935915113691370363305824715155539795825465598701848196661469655616183451872146831059752913262255557485680106388431864995087994458940952089479458322238008262641966931548708257725837360338217512835503239325523579062725993356149423049753395978982317984041949389441546919399416550676299198577016597127094287873423616404637740189968135404352722029379256332862178229047178879723506991133767024574608249913341641618600660310217576687998819877090209728644166955710421268654924444168472941479171012664716734533909122130774935046357263559028030475274358493345725322036726755919693073283413311735947150051332051309530202109597015518529297727111398890975123548685417916124181082781718765464998713986794960428057210858272077657091670248832885030032276849209886403247905305282738994255625139800097950582972587477833199508855340393611083856489649792831025160115720396296749895982616644620040863056048138560151643310313382818750706650153232757082883551822258115294517364713075200994933173667244887871799251222743643834398294030586779114314553427912643107460169604964484792342840275061300632901854954444118315449566683949549485658256882579716328326227318904019257649937054018920896744299554596886937842943790279397392545434618676199822286887415140319123399643279467984799265406122362713997230135248567836940882940032267568842001706865009967148103398343150553321178136865799579419675825546501004141518946119767423597548921895710158539659859939181718964220179336600106703265806174033704130301395407935915023420576990492553535025523386071639825537417955856442958084752541617223254594922057225309796150390636617544230713547970046081673110792486141773760399725813987703431866937164721062804838243303589531013427456154556343349909666571713543913145160185118822255525129240532123812333739678113383949730553430375646947192036600937752813255401937524139345395960144699722592296978680781948887498340699421303273437066754202381500965473268622662949042896130383896186348585976386661824538848389589673077384512037209225103821864526451292558858005293773913163169921904891966655372420843567347310684816583828815458889036355446157370733293464528743879799901522348586087782395409333576168877641632111348574194981752052149154811804077589463503102628546359996349181586499118407962655869557161603403922729820231159162515014839654884981019286747013321426724979892050236811906410481235106825373872562367849325505426295311547017590429031705505106592471742911947954635884698179522481171617153522296165297875349164061020780206745592718694326311247274365105598290511452965245345288559729039928831131085964050996694723201529437514319632516274602301300076780597093029887683859811970041504720103911745780800888265084712840397360394673840218582958252575497159775656476449121368064993245045714728991883107955686548870664414992745797027134628047196842490714059808000540279288279593300274736141364044387785177812693819065585330716605452506256054011991147466846846592090075603125166228416682084756168401163636579420886681265715658947861357958202057860007559945868624137302378991907005138532516071584326350951819156969698069438003614343937783590585862796681482803727939785985236815296897119488866860768852154183847479943529808660713164389065021505380730173422882029386980540316629800847937089527915345179802388610435177773159150309246431173009500463644781408404573204256425817127717592247407880104694037402685147526981216869191186603822532854558622515921360543684211651702945926552894664871900072267628113712004207510357762071105400752447801392718703757729090308965735558005327370420977748279731068863009377292107040522624244947386420655933457634236255744669097790413241345098476176204851386467793625666690472095243400791149514374160173112305733702497040087642195292399294473026813776536777647978305724808080856837111502790650229343298661870717120723618305229933175542636462158997154353254506022224602339419272275186583225983439068355167587241277562663747144441569005086409497081201835481122395584319677739233651947555343354888479415405507583399143177982861732674911104777438294098846184664037195151709917349780593488732778482865992220254164877613541423523575683034883653484969561787117650984444472311713654827325456488420002780743948422666134496705282292522466293586802155835834198715500491257195525219626970388247514805067530614569219798645143038229061133656646633578597839326308233659718316273110693205397715821557233001977272597935846761284496825921697343860401618161023654765296086319464040895364779967544433028728727172088308136091686672133275623754995143889018337315516639899463768757147663404262683810189165001438727403004335413695736861025801520250321142102822001934667530226606923584176761677411813640245589031656944971876934981370216987717887643510198524949582818397868571118735818855374296260577051903444335896455532030020189775753644420136349592655587479467571375311552978709752998231603970111567541688398259925712748997988828890799014400010095576923997879481591422736441517241853051915134184805222393185349394232502907734276244158636604383811693255222579160439926951651740515719810017554184651753408861062866165660225280053373184031531113698708648251956902473863860158149165965268172574828325508079057998489509208580218779630649352023928635207589719554004312051682439480182498855272963565879605388246185045620057604905474486361395571170801404541855502764991168398035605274301880562160868950699277328798601791902186918500576589993801462340014119862078375868539853661024804976214613714482215808874360706711653395139617808918295773917155445283250544440579979202604041655690439044328793807705012692471848179803601133756910965846866878911128051720432999224984335264624711911136832843013885694471012910496612130911140409331303083444560095847846900717221085262848979248508409593889844182924569020928712891096011369722033819724971262800842341839560686259070505916275694681844568288358159915707544980603945327535868173916124929839053879866249161601226398875562695802610501435707613882673715891477376485523701465322004651628031912499843088352803336842209778609824860660743706832165241713134047873727239899682061757723793201364532036745468210435722719478727985180888500238412981218031074655284707066630978079112002200759956090836376255875463825366097769648680308834291278465443372626868260567855751427624301274728571100514009139010147377522704570687730021158651663528723697413321739960867869372388747345128747390853956292647185131092813229987179701426964044573181299001541681541408007920367461244443688653954631668593775748489155252104490841836761540328321794686931981124610194605377725622285242105724175998280760854285028338726489164856872815686293191700884923327167520992259951966078765959938357190709913183224127244893830812951684223444292129852771670976144076842708587953796567013971250623826842020978291320665253889395839666142954839252964388532519202164850017366003562273788813452143546893974131218510785379447168072213551858073335932031490512942078637184055413767045459789329402676802758048333516892082869451848595132698202742285545061966173372825101591236963254367817898946084684384432834957243419382762024436710647265223823275954738120280396652349478572852842801693459406541050012729258294988527360936330962056733903934267267910687907143926847059372987173558658045166561720031665836527863141964478115651530969423196736610855529857516710517294332548284679424778967480891154554357816319275645717492396176703634864265265009325520878391985392764134281983132253154916019722927703908574938737821445279033006208483250034101928066163970724751096670949165293545497656305196348047466643564611966080569996088970777503682558724461496630215305783051947170675698772848939075282536372305028543507657757009301321580507007809804586698539869555644056038768528543236135238237289010869717455857028751922419788483140142026091937354662167055986124866444514247046042011970582137584172518529031727216497249099864936303296918642927388594539220563541646822687531666375228189942608278234027398212176674585347348373153149204806000165782429215670122006287065657725677413884302971622373101215523894044963031498650198992085497027989843919111596427855510050151508876769306281951138765646422420939408950921488053038418469043425444071109720224341050210500385914432993635590989555046082345870849503842700305949698107025450518495238203906981577682710755519803415062626339553886782288306666321255821426313417870977590329240971728071801584455124145607674584211517588957135382800711687695812060920498629885262278104182907527274266578585867862874167789235097055673320961339043329756159230977026209899038648110815205641879388740794451820272961984795015210771730961141459773355073745214246307655233326353924657042610657904177891665186894301848894442997822472334992359345221597592439927822611826055692343357591386671272211056787032876170462196681101634454797529958514745707860690887535804133229681090008647771820376411712839829253340410000318966435796416845137183106972569759973559816959043862754624692237647156579262071482026448524089761494153837657779495607287695716882725060968296132426295815101071495194448121836374526921981226707816525060766606163957119793218164052102345181553697574266175541605520483236568142589792381668624108865299732078858953263157586674731982649389581245131269498071332374524746483723484352724076437512565480176766104258179362798271995212825776943621559935459202427990136115421336191239307814517764978557360598606330007229343245676611700776947241545859769924542631849375176627342219961243836884726025575012750821447206740595225993290792826452398675947339184690770035176677213803463870121456897362741561974317426189148066795834591273290285349703589346180273550731313882224473941803255655428631048739820671206692551640680276570392121395642466071337426811515078815092587394964751278278465361972490540141841829765091567772188660312790079027018959304783690435023526542754717597600987933858947800637964230623761657524983389489841323454898089713656672900715746089135852979802881407579465415904509372685789363112016969590787162882872178915701924708584897980153687935108412221161957025631138548267417344001395378743930116239845584139118301593249003993629865357845670733025634322957035322998287040146463541933079992444165690505800488371363753297083350926754805558872870329975092636883625480986226139805996096825450099610434571102898008934576825440841012853201819881075322783986446382825228181655979609362804085966269223345517643438186746987352433138171013267089303864492364476692158127997377976145011689345311224376968303244734087702833846684378567320169580490800078474954692339365286712345867955395555505803030903074557974601827763801031472610288013589964220117192371266035863586897176982157774350985704235068668586789599068168812628988570809412580807105203982632771919060286639566775735350888071347705893532296411291152820428569034826173378415006012146663054973498657239996686156242262671370541037519985699475706651706991751066863878361754795561150789646259026491889734625607690916685289532687876001639651038294214234261973162999156016444781586901632473890277737642711804377970720276156001277228639567431061199659650473855643129393127752876625450955064361716775352545825388917440810877006297486463361813468001926663726414529421669038224442489275884455627274716814559108797550430478691607015937598156104931562524677653155125600477794241859433730702142464393657221745630597954899968862774685950306238539207280348973375859406508037672154940438995838799365007475171637178393795450125831421406573532245362614952184844084770947699673337985826511523799424032266910196031557388143191847446744386587385678566778874582266910444933263577200729432885561473891094085561304853952965537385588688237958266773483711385613158281411682375620906523542406813479058848331536408971212821231597223400974046707703593503593876455077102526151095485803067442245803075693297393382225314883345700818601760051975544110756982691821178645810632338908338514250606054616069364614800142602669075812819735823647067998690525264484577609659875174512203798894023488246128069727657142707225096961265910282677124050168948027989536669841300885540748772561405568976521065949521440444740655174662943455362620694683603569597991179209096958819521702110946013044232103274281172061652402677294563319458218582953236336868231805000009782247062296707716155045574058721236371429331896110408076567691278500687827447141786311693443523451932300702493281491470685491207382411265534421357965184749708648358652838259188767998526438709558469117530025143488480032481727457121304123680345604766835132875403070371843611243384695022159937265236154698433961029590334867434994690901304803211144223594335349050216821674677148881957639324956114965713035179496743533107551549153694916492685594565283478808337694037079228756927642344256596778048320357127291778888420529557558434329878115648093722863320901606186289373613667468581446602009834706581028128465501358076731789515073630850401597485044512122241914681767611434253482057633940212835330140662287715607744027718451067872757430382944157076252345224535317559412081480112369084908787937658619174232485372523951293528917057974916250858218091097294379295207822951047763095897368181692353074673436112078715811904258266445867600795793080384759187320697557420606183645563623599920384453037911175603217466038160601261902632228233495720900245396310053265747585998508945575774677326390181150016579877478647819610032475311194600307761494246794847794839858007104845452046666526800358105358021714653428669985402427540933063694136765356472682958592359891909421792578223321283353047085907268755715875547751343214222607991479355043074264907515294477705486932431234088909388934869350933424207621572432814371237647612034635698033435168574850051837964501053394013757212907465664222660091750648400696408195049217862096489315993898427311720441445144619074655028153246880636354842705736644660890768720576438943618496037815226687322982999336304813424366841215990194083898845324413113337084517866455554564445713551690092515226285151223148034941978081421054418147359112772493995013466823963276940042389482516676118475851000075805480420418765906807585085919753117929158039589171056403781513817308474599746374539258245663914099280415754937905166180189879768293566922149019682532594471896684622583173636974481038898608629899179452713137648579288233071875900158459015839495629777431015274372996135884841270406870785536272028463795688515584870006101381926089265940025388072595274484397960232367457690177481258117719377117955649413107253177027084175733880214787822732127112897063423717953015301737573505491642454266573845007440756385778498239649993357164786379860814429008325756169131348600053650222045289701069329824767309167032062126147869721293887832153515209662598420820312937848014381238414952161834890801614867281548379935350661321941293927183080152105929349392121800839942658596332162204486609847043176702852713087109144878187048797992890067884466204428237639482360097069063940386559460268749207565243975725824980118643972866899482765976436107852065193723540890963221554092019430616361459211940939373737102804880590872065755845331485921000494697359484537914355813848067702488512995478986282664403655134246173386313053072303701439779020620973595626226596708419671518047576878770180891016987481539085649162158898259695190223224071166646776674016586450499504555427580389930513651662601178824669569757251572465058948401283679570428214755303461745558768714305016109761795804681042145392155747066983247616526453436524524865708965572279791986328761903738125753025261149625224186472891400420046989547238713212076945202171864977778350121174267193107531769345072587738971550791482341372371325335475088054612205621508299867854307333766722982662080200221532296302216628917734858305068594971226131354587151333263333633686950797973367319051816579856769344294922801860004380854826475060330027020847651409145823881611702642485571862906988942613502522269840758203017370049981975244132315772768893312949547752887691741093048434669131487296892028130010083693517448751069248929222371280203350228720456826271292421084498073911795974682396276100975762549540950409328967507520608861930108503236484231039211545128577390838668239229121504314614716375008494961276730496821737832938192408381678423934085273973063136009891218934394534694423510780278269929026179120292620848979548450489435129716050015945613400326054874403623989598626818185830921439666324536729476693735433033678985591101597189857333908265585073603319908527851730839927751079067535963536812973910024264173705723353960405957820309524919184203999363793870560007828332844680174343633798790837963207900804672480321802205925622753649491980753019932057071966636909767019315014248695900460109472520036336606340642031240964689097457454537378240217363268491564010296869328845346838174536645652937768368539121762380675439570030722435512381914374133898437811279132238457680986580070961892338570942860760769435426011119429865743672681737951334656421476824998934915556448516969738298904049674477199716553394183523091657770666318192667157662773318797107669914888169994684607310775412040506066589252944830638723236073655893409061417481697030101484473304888273480165417798016508221497748262895603393178946900956836163918279550836211731512333283269373505929939342644061556834705364962169135275693083937925202663041900376853014649995338189433718385208848429593017686815231099122750659378175160875619854086508548751767186318302732553377211610981510386031221444092426773937572672912337455276294572741032773822804165736647046907876252134581521304231462791132546178818649877657008081915906659268593842267178693998111825938766901095606398042778278084138534511628284557622540008792995098580337207550233034778459838900019025649598863396097231271325545806076784919764999080728837522086374205232195291967644383643889767141930071436921089601202897118262242970480419421788272953171002031159519213771995015729742010281404985538701390648070479934640260028422883486753570467597035749315774528807955692214889723440471726980777786083154254200050369340153544499000425809842293775981108297315404783738373074314744847064005146106215651944570388383637996268018179081026691349699396476275504954102350280873479603961023941529294914161335122514377709987662917165934408857623813118504062754319953261298647975417233098728537311172246716473093363516412588314524435106490878170320693521538636807725799897536142220682557210911262060469609485600977884782665891990132181026489854677327630849912947467647165322610020402945503195977377930959609505246050135941529976070066216626049780260189738957619956272443199172824004320024706883533825045744193185418431776274177896254384468865582512500700547114654442553837133619044396082125251446627057624283388241411434066059532186080800851896002619554081835361132130793945657909615628873652738378447308033117367675047453915179278338361542011360640927984892284589344501998387514896641288729125531334181859528959686496771917711080007420494610197876420829569951335997184129634627569719707862411523515557946575928881468863836023003944819273586878205896851815299448092073930144411551971270362885107710194100448126133137470054311215802306069040408013282864879801261925240734452902337489964708012299394277491601479101718525790863828344562693987959648362320649924812898072994579838684099196392515294606138398153623043448613231221035478898480290480560228446186531336462590422781265363364452928822826975305035558526071252644849698558236675819988948062667020852787468305891950053018956065926486155010600250305565448765838835751561552807879133773310607837798393234643451770793062636431817362399846095565158615577951323028242998500739590400704029450869958111304728391900853080571374722074812182734391306458175807677202549473742494549596619797211113729068018000548713714590398049119102323430483712516750209497826741308143872480463298486972040420402925759112179420567794111381487086738788063292368517783371023541003027565791276218477008144527945303593238105672362447297403467370356694200474901029508622298396454990486622723792302795567301172996522255691190272673635337944928607071799664385029355285164738383929983266321930186242721526764161222667977573042812494622816594006931760689938250300991810790437746450543885486327986790335596034932399293407861357670277078367339609067016881717126131797406215320662724227263945203391371170172135920687331842613221214758755774415873550661061385285122741793242327282216119852249993694273419714119067943583649773025169291065810174201624284644043929565096059311514861100374492122959077816712377856108404293315638416161013686759238010454106305795229106740723746100417487233364234643110190672618480340732737102996497799221198835057462013138460567641753689667573282692155200640047022633523300622532111762274204241275734733055116307623768827377103405418499183837391003891734249395998789336035782733661750970537755956975174184704168176629003302095445980633221442947688529851843854430361847319764144194987208703942654265298530278913444083081529505088009969393972450185186150348758571919202111931903826173696124174591346451661585079232539960198775732400273497132783533448276578440537636954768114290630450803758526840788377631373246509300780208963691074298789725207621652321749428683060784082560351596483395514428001732685873391311955050202066851245061009318650348697861019429223839929748554521020655783850303451452784629537551941973462718252828496863411220597235884384908143459794599402079037501078157797161141009649555127803472880576843559080692405700222445995242976369912455698117314115159621527000900757862672685224749644980500135697268589104323623973428648719481312384183729101125942607303367015728934905215921914275414146309304796047399859566400023256150772514964787813727754188861258295919879727388626871529935246018531271391529459434157762006221084217907944040074200976031117216143193255485518084993912742704972494167064072340255159000008073614203475528035868404725622339817788585977740864298244675586366867450325007262024487338005989472535210401271768350292761828838382899398732788269028469777270560484157800278439059820011709236433465480026038659453823842673978257382472874018524140869087885036625754225195588047416428499812609951810882086020130830225323021918787329842112095350973471608749670794095442662146982659345595032649741312881072824036399655789409204448019455656496059707402112374681387245324876016258327558583033364641705745078625055016455587327659710908674521780002577723231044016543681564659978113969001931884130653988310532559267118464491638505658298594256260016594860215471954808035106055796334013324934520819162631777249176947456450042387844760401257010057615649853780485056604069867864430282119238507473151322232741743930612346882994667375366965118764042461723521072549754203059593687798078478622648472944294171088346073528698422655699399181061016568374522684846874812371528468504342605628837354868662001296409315764978505883056943667977556064741601367465905926137236598961921732213103411905472351304367880367322187226013255458722241524290086475964162550427399749613709226054715315886004706644052858945471178758849739757160108111602719888155927192262456878696783124075833108596531794542980398567956574000985297603347843070844401805582262356374043977326423920153261998308914968109827813145889659343298752927101804526939316113986100748052259120291688683572354679931823496347917121702731178309813729686987926727547237614035839491021533909261539216528835891477451286517337338865849378192473599414353989815882638994296371733562181168720629430009380874396939771954456697998056739797561016629129410990211229529630489175408987557315063131363299610448480949285371802257313562014491667813302630955217836223699698072832936413835504897967593459338555132691054027525582390211495464205818354306067585810293076352175103555704955159615034008221248807167437451476566615788301316824295432254687696442819026186186917122698374532085800477705300510501616989820487725151683166830909490716994812955360766212315547366829256198363974834414688342669335421449177733418545412364753742929790663290271317954004367358727249938286511708716062783224374263545185053822636020523259567231201265786459568303275452881179586132124560833864587835520607861340339185840620292316768155294185015008092714738917357578963657567764047007983201519301372334956270840306732256681711510880963899674171159976961752606101637047838159305435268495500218903427849273267320580316043085909392705679737151167047247160696662410094126981618623813299189195621428888738146188286934664274251615127617022044671333726604734449934549405213964489221981531271102403356762414573039201156781711194317660407437853617556856693131851046797544281177379378263717904610588606288638649277647567163186796343933241172391691748084509753496806179783621397717296462278698341961798272378955661664312925555840034997257937865287413564123096924852157369059618927728646780630367519446002630118800165517002350758739107840492924911097279418257322509096642991533369514909352549782390868869405841005016565881642338915912498767917604706104864386473275845064729693575240595648149706315205735033325761735545294806801278651492099083039284216678562576427143529302780671918741222951669631187063983916882571204953414361936905107138329878006969731225676130512585208444638811319488130061631684531348951381293362535336048395533076357976916397461541603970172514804157665273792559333577315225927851431517329509280908480209676720740938661735639104065226807613261710781058505276326972174261721031039169318142654303037687008362335256537467046649590015411538011847376648486991332682514107855158946611926871005509903787604931552239335442422336807318746274203597813092735825738344969469903594738715376945299767143316974747937451127052732611388581661939321796991436889046920827901991009741730787022791955505207313053017850054563609067045732355484109000022050266783544768986461518844980177496734643116362855370011714241453153889711493493854377808510264494724110909474091610470690422369945937752340714197275161367376206040751172544286592146363950671498749564296186287729560788528853891277229645804727298997345355047711779098492995836692347045140825318198824806070303726167786289935485314250247275183992677969482183590224701301661510883083286682922431593319056676738316828012021673036075695412648017211637888600347530889705591579753098716696576107475041473964120881025175928520192390813353877324606141961931134174074006924530859663404088828161115031298367568447361249000726857679581470209603467394974086394976130771916977110443989228311845691236759165765106452021277396597174589831230282873165417089536974175892992945695137046706585504715653098122139616891365156333213492683192324185770915021786879721660876682678216084381718615396090156023045370451653661301767497180119599090762030035722768537170035791348848458112899072647049316519441952724769282132189148730792139704545047379755735621733238605857391447374997108380402024392196692580760501415433718886083937923712204820183762282013543293076657219921700606401652415555442187005765672455615751038021046741512563726620995638943032921427869917892126438226287931984897582270218867264091674166353788407313483874928227966477098516056098981639531653260374375128599177208274313495106431193113318875404072498747619863055644207378786708294159412690221810744968257916225853501996602822234908628941060685911754895135394360447353371408459086429570760523725130617630268169551324525008387539113041217193654649106261477242018568700488062259274773178733979297211038111688426718322306116293808846644412985778141052661083197983122017562167521995723293118487850162838593584193473311407670672351599687833056257839572939061297348401754235859575480531878103321804882817053692137969198404251687908396208194318898679936554881235260227370846599501836180556732749562497726990964082963536916682066638972129755953453981077131478564657903010737777177480066729458691877542686322488095005903073948550342600325833087349468902603560313095757185911349872566445964143552436157586385114445781180575859819347017182837129889699178967749140115948335788246466622584921352071624046225580392427163178243377197435003226866317710324875645605905990887809993234208139048131997242690348303707442808568110997617097934148238450565337379466492474293100882540786538970154346233907637712397403765103302189059205136094299249769137923816474337227992069346085226529987660644181274409768959473615448391346855450580020841762575605537984469469147448100303386255663141185940070729031410430135697964070665512206732378598360709101876109872399404882967872328142718013591906834168709073392624814274383504754035798271219741323998541420074097497441353807071791108466623189100341365192878248889079153659409013920369743615322601702237908494632945397920600957874010387402506193208684296728284985761623176145129575566944799139757165016906243946121342603032822148230952229283415617987473935966524562779596387281196099824503840542047489522559477794196185101279864470293334618765433258797934644055810721087875509581188998432834708307983235546132768966573567103243650038010109444925637282029801976052470613679570297549848292840442995906464676327834871821962703030443827419167735716097166802280931235704021050932383204727092008836094687694300568648424958613184249800813532673650683768204205366988358035470485608347840952522732616714858162795941819761617130722929878694016064059368199378666704283480000677640982165931458892450651422025921351113120349256241656027370127168543722316082271802040647498973099318049527419881958118978426493862807079587203688669437129705087504500300343847895032157187543659881859891165479944540101722082632707545080570254906501313703474048034259714897530924608896355005221165252111091427857735695257765003900240708127617677200837158052902627192880858290350892056498944338358912327254106898801283007972654686317922949145360432306613825075137208489789598512033426174020763111824065018230179825959162561030101003027590695812054861187844485667548899541244339672025692734238216264764690064016009229795742059570576226319818506020478206679102006713958510474035977329563536463631015351373201778509307086246891717749499836224702210342549139198289664454722543347291763480403916869772658588416182364839106700628681139923408600528824783661257277429125135793276121094044179475891325426047994838518662940807273645441002843770274682295511130574642146786422879050022761952674465045205840190036516347399417240393778881063963887069100266596923536852002922853038448321940276083140474366038032277464905561484648103705221415116743556708822395675318100391289018958347593266118928202353495093657990205868189752293635742944414600778205374270668633872701646043256619765590857634202611052375635030591055310168764866960132759127053319589675111460255171919255665097431929056592890284082486916663139606356099700823254603336843216003679557274912528243182962942168791456090605005116251346546815855407102538852495074457558444054043635215452459563933773555594349721749733240455994728625404659029209053139830545097938530627419104222287683126210926119649154916226845868915556217752060073110418165148089379233667074980814996931571409518070999550933863641061335977049627208583582175690523483954369640169470720131705663006441030932960990761865626222442466491104706113258814514383471604592036505299259960599735462766209028213795795466353559116147473783405046731615139947072034589084913475065965448761209255943659219883258563024116319403741710623369346752490664359529694646379571953241738627807627865870177144652393453722597308969665281002377260027197558592892619256437663774345278819264272361005528897566907856903037039722309506043000876555984001492539259192175137568942734280210141297136190800278915049156194396048054383552878758486580054499622112846231137118482869963804531299397116528491444494636273125987324574812774618823853838389953577706330217930444909031027958370244749396389877713254745363839512374157185316578790126467910848620435358532848900286110896354990555529435782742291801326498771362534642032649352641635907701937609422783354355558637880642381528539594122444735408199754690288487795476420197884778823517371274431211432727415003611834523684084536776099843882892919295584411333323182539295220030629257654526252485174972776392477373189385147240719640529465866576290698042673327104716688312217959380609147715629565040608887236459078394055566450827041107087199449379470063730144672012988078211287147170043021506417146775737934161777028180715971427234050929480009944258566295952242346360922251887400821645807989199783490883696578398290802456652520956984021732838848002073654162157799625591823010550079756830951270825935846743836723878972392437560095535192841380493495324174320943612579930155970283325217632607191859952108016541979054160017864525012454064015600061032475337631960828386028567741934962260035106541974649192289988723235103254861568260285401936949962679972789752382576099021200542273678471077285615963957428311835531826019600683343818031631483471793810837634955142561786809445467925146858110337023698657014772766034851521991138694819126398308251073304295059148942437174661332861978414224230560170390287398638083448032586670603633151462178924517658973785324036666870267338069569069717233193141146435962028849458443654140756629311742051430495886012529801957406627944889130343023304663677926656546507388756489165747003992248237777166005278013061176640905403011149718559952859602034144375294574897964824413036401405171309636336844404466268902464336162613173962559756103667656889666458152127009708527238589405817240655206377916104901257958447429941896504811761883965733933592678287763383893375224647512472625737081643517546054792324591724415891946685952836487096160819534628394918857507741356029198596816116671038655979720293076594180082580995691815707459422621018972020289321338753350883113127436074486690948119628693459063765860238698542091366986638495578194494147924712301421007188397806374416491529106234067651801042737041236400557284332504913318601455832101190508406707060856973726654049445964371981892076326464958385025140473866668244660971199025696729893967217475889861398704304536517045613373333360570765364878073624448355593424043372057748196917507128191603680040611459849535824752426972319916997723912025683380497213679137038924074940152708081961671942512348294257477791397909942567996745145074214643378740480389453417950982282082470539261508160077794412907915595716215728954079349909213306598559672624347097381383709813923182896528355763250400338962606081792263692643817532206174666183508281492118737024663913702794531063096332385317674604145359171507569287641675265038872115013265315257129012806003827973807086235140257961889182910446318322802255045199998813036909714661581389376177769431486316675691761741791835175360124638076319313115427155443034793250486961319750002652332572430043046972559473823931080637395537180994335331933220721490247488485996155085429619486480799199554614103737155620498602944574000715424275553722815814422754507333389456788867150059033624082058395586750223058198561840131071313393824796620583705627639221994682361997156966092133450977607108902536610654616472360915249781433182444930705272307532694536290500640405287255490563775242393054004326045578031634740881663602364952831158298133746541624817865682744364038550177091633356742978770835710388488824503459154262632775505747909339651945596540885104431808855340315823380750096235560805756708858073767339156342743986575597573146230832390930532440199276592353246384995670278379653472556032802139821903173133459270433274334435581703754959961932611356379042730400292627333614522873699815377456840911309719283122783174149130790312990523055541608474329957801372895639580554303075367130068823646011477261445791089396319697188437118426135973644200372114467654970332111238845680235316301229878339165744231140138857641998388817700373182021468403472137692814354149394379846440779522390708462452507118262591568627303429083215001370139770312423990421323080322890687015395319169917500892829988088748979196772109062106547541797134076127086912866488313960118698018339491581310683698622409253523770872206640014973252762002796369722642798066186621329159167081787633023604775136038828315507286000670698440187568433485447360619322251890560612359161063478667287002778864375950623607706685090251808512945511735088978250736035666394974569699142918838935214361643459358294735133478130222586291465634263265968076450491101166544582474485099434715489995060215331075562382683809711719995297747160389289302648670609967802352440787189620665800460209464967894051102672013270143632027112844096725766891118721195591895695961743450307627215611155305082489954603521040677797162693433215548498506668945460757599688682281335748352846399052823211886388544018791503140662935180349338346897376774702108093949139652796442225977145132741258915739577749290154724784692235623380791426273007324452707131906924901183550634485456285998934878413081676441708815880566843914767289460395091059111707621157720679815866985720574747297305625122387343034069376675514659881094479614242432810805683542745398310370808010443656983531849801776337658815372865032531547802885251729671306136413795837895415428104396848789126062382195126560500636931128933949349611843624183839287417027310923966136205259240561466203143076864886543799097835719837777322865202851293598942283236365384689027396281837957661158429999604538502615452926507445949013607246870040864115018779391355420927091557786166020957648201649520059121072569503741800000936851921199611762976598386370612243066386837320187198792477056006332725061193552977313260061344026157298944840528992385073562959105537990597566346446596924298937068169059917076227005739847768430054725175472262620238432757414708776885865157307463323660414512253076151575301560514092443517948461776151215002669312069128460095236670885488757427918937849396574499400590124365700853818423235903312973664812262097985636979780326410870840704235085717261533481908934017606036571305357130455927883627319095775035314691700791027816168284903864791147680682644673144227950263153671036522101360065676180778416128487366761701069035695797415546475072966174333616413017901357562874364184040317383820764757145257898989762281407599855811822887160102240741346924697378053429341502350855608463460655557259803299224820460993245743775296047309066963487760997595408221795375972242603915444406060799171035630722195322854563980403389005030825088105743580726437005690203124589423302337739427139931083917676466769342457645191420747071913715142345251105507999583207152816248966621280758701606554506961141049710083586187512753377349617051625745922038685438649266067866156385302283717329853359379828835475872444430335922477691855520163349828831254422811228585710615005530762168560749757420126365420331004163803939738639735764371542706405443712446858016537377629649902341426641715119427486080449738525820163666478439130524579421342116168959398779077528006000002293649755221522845301874354129477384142626126001581527439962575200795120609269859405822891651891917323431561017511308472300702871603849538428183722863379291197920544913704541550928146650321208849809618475051378665218902865775400522285439417425328901568382954715283410771049216678560012181316464495174866248495128075102979498583768267090584092080794925170309962599116207192997921532973615505859520956623404217592678695105653775826639223459688559133412347508531473005926090222544410700496296645915732427257100798492595311864736903083504142866479469646245646736336868357974462566156114231151030050608564469512406035277000938918865660431421638280168254437681165682190441917958339472968232144726304295333708524011365046904578952554076217355105469570180774225616514293430743869013280506793091901932974826154651225749609520068778686992589121750185120498472741401950847837160178275061884252986453549529929401010407239151886340612949374292227762920262489364736123132324349243831817049712560986415406379175589461851995567928901952492847188234195923305546477000367330516416922122147553617139198062991794864917554080910394312787740003742768281304310413179373770567750723376332507849144420751744084858195901013381668315070779228406843967552558149463354299130364269087899026329668482223354662172690514642936273828699683259437548294207454575561077481337470143304256175541759011737907152353770294967703204399626126533942076298674476949445624037100669359109127420444466389557760405787711671065865427111550592213635551101547116944676755752314420124556480883804956142914749392210075168837437228759029626127034028163416550896071310193224541926107588147724983961365401249459562096139531042178496738262795725689663885815727891747712144343491581612590234662194277045512737720424414109703632846566701094368409122602353218082398222672632763565487224482504623817423558745725489452272070625749222947036075434939132529089396188595252680848781612581815469795566880922031286049693396411499974522495040581256738285621101868546571742032906819811927957504635045731477940863429516277000012535732551195963502577009533635750943644807692373764628707363470880608692462105156369217371064882928944902311408816788002401614121810637077556732070550272104894494039712526106776279653024817606826073060233253850735657489790135341633502240007718151988212578005365613371721833828686839269234698493900630508322442685526967586092471672852400061079404932550965193349212414354147538872267421784422097646655633819655532214534151000369097326921580660892824933746458126620859930534478163428632897529889103157481129607810792141496451422335834766689178703508391117418449078397352509000050050047791551321508059565723285166673947228166771145213704061977742543939387337734076051919412967769447968599454169284930538817308730870228885354783592304588886464771216175870981366117430435247261547533589191598100413057285421346285175611042796774471780563240719158991949680207978977254471271844996192141608789442522578394012406986154540184323943411209803683228154636644482860161046824025693273172781152341251287784731777703085803406503927094647951985854581025319046331764244119973391139896451976591151093888677764772085873790742420744301321995947309342283797577789924324116310076089970990306367047211874236249241213453823316375773181154244539976541655365617791432819504403911842241958863252727597837685177350291217817705682516875384258483818983676935130334413101679251191085368130019902195633010709529234979018805627478014383529186189731242577763653635092317498620472142364543176651318142765926573616984713546262642999390337582113535824438991548370515122826289916076505352422817836338689367093421505509999041467592331410256643296172064821852798593966619874303205555340726194670147938129679135308301402128832461474187665961406145489898010805487106800644119270690248977297863308593080537524837694389700734828112342730692433209266299423765299292302147545484551948154176558254775968933644887775833981726200230113919168089745854832789946792002041186155124266180978272583846970638379631540153338527545033484360761177324741130994527602149627291724741245780340569819797922079362302571247778122631652349198976114140909415885736253496260850651065295975231220526773243795629346296235913199771694813226433246990898602356125994392062447352107792216264838653848329398388145676272017766328639987176720410580827730681922449753746250633946119061965252725935598285402835050693970767466586063611338533469734435030849369451297569733084046068555381437547591429124643922004063482003229752688323078101520730783844829291271511367029408558686786623579906057673264695443958367808815365184135442168904077282272202541802386909110803264017222500595360150791389295169407479347114855524813396644900728483614612243093442369203108208249786220381735554984025519550750230404314918554119291841933649256535604199759285181247578325947890805497041369877683413244231978492395564070007520036299910772024059820807663637519245235137068364649682629993815589183123580909915275995550343913953017389900110465531754481070116719779804719767054798373211553214036973534500181029144213799475334440379254007596826513197278828723063067773178393041193455960641689015029136696680074082815340092052943745289656062169410369427187403770952201068339760305526278746679157643371960621390071387548381356431802591741699514365075334971926439299640328205650154136724528399484574349803674492788174079390078324101374740795567099260296981506759948541926442213463205537140364922118573220335426588038560215123700025258702973676274037635879462724490767524700461401465071155862869065947238820467409996017436424853428174935639871187691617661695043601939160675950858050869444244771262975815586895321241610266358625179019269970604969029966608620965179567958197602873298775912107126610200147447099072210104623766581271161994409774981318454975867239097365271675557983022073052785727868047295012798156738044594091828283580250669473109494658254018325891246039725394106781802327869575819908034680606767928237967014085640869748389420549025228492121083886962606877362596296205380328373354930119295282161786446787525030476305638543315646800118098272916050004564049478198273954706381926773702199359990682509693023767857028926707145883233583157983998072638773605950429468046803860005768827327383519842398512985072009806365627358799543630593260617939407472317198854569687487397743874662194237691974817353496907618866926172286830000903689249252559700517203323025788350158960997816253504519639240779023980719763172501513729106208593958905237349143326949595927765917484274329207849541682752097294706655385807374771645182658876070138622735232978103009030873698666560458064485414713073631629094764582242932431190513805666351693952109157383632580921998664204508556445119913550305739784440866822763180250822767340699315258391952852332298043261146807116860596807971455831190077051152068306163652980234384097483890182245313880284837492401045669694631802601536103241007446802846752101124750487892693327838701529537941172645623247667313151436084701789683434268656186125553176854967712058046136043629936624757850794656329832362265261855797644202373985411285424982049860797425996050102023665268235854680682346928590441824180063825471080468705177051196089623790305141036850192452919975237311368059039570733589607758096435401822238927799212509243755966530856953580237999822949348608018082805330898415676256315795368002818839305957273273182973807329385226397422878952094810904935007394553090921736540773461591280536968925973601976839613937946554637893316411920456680723108453232251311321279018084557965795481892805642926565093471118189960240516008473961730333783687343405991974966137292320685361766788310771562824487994383583418875238219783302445864455650946699907250113168685985321248235025138099706032324350449386145655052440064263656885900536106834713557907263387109866520180229856239094696961975959728641455973137413326013961982550754895097276159167765530462449077590616832494962542596027944094711146457277155827985054191335326071778875246154046909807843078231881940150641556850159488101175839195581227188708762452219019705879863426571870861335349089090077765152288198213982433436624652660025231333505204657840064675498013908712532132932001423465539948902774767277044374906912265722165087086215492612002651007672611970387456043649258788821994105609895017103551802912926944187184741510840909222945935545988068476266077341004912656387587545634605302129353029212445481019115529185428239806837666264159299210267793947095649428485227645826733573541225080305147503263377116245444804046741131987256658365915188631434891744345514631169284335494084295495599750131054708967254332646556867535982810315824471842872194919489100800188071512612429170539583995121699845281550344232216372918494225588677946967879477273699798161335214764371173306978396586330933528268110207762231478803409492924793606847278979218392706704285548165908690801647899730532525624607377598052656878687409117659236570990961674067757253061329375986374901300503445823022005998130519111305441206400773924666160832287602787218747062148567134543235737898563473537729364205401507445851119964256521310174059400627672691706576214011623814174973902683792862374197317835145133709589214792375240718703469517896666900225541356512444630869051433870735292865104319638678800477751068880827983339403157507325858001066845003806440705497897660843691684348113580800236697503319593351573468788134151958071966098769636491006035356048455084882903072497854741689247725338549046518776817095437860838581731284750083067934748257214049075864348749247542145175450379326464542124413472965481499354420510251962149511276043036166267853498817218313453353763761265132206817242698953148320211169581683159859025375582030804078282575907283341280203924590338670828198945319113695892046278724332847495926736399806269957425022403152988283051928686514996342256651390004720661584154945578397435549947484710851459883711151085737359216603047744039057906871225946767768369262525848900801440783180563957884792546975924588262166575240205990704052876922121322773550650000974470258619120777525967997856130637331163078856470191313682341445317147386373376030231099676737391493622703238783209518764160292604584008337622179724844599505794578129905198801622953153863074711002475101554011072317865062053234666424547582301942032030222585770864983814753879179933236145359267752490367730670658249597904366252444115130273389320156764527400878032825137937499806982144678322666839144982430647011083434286490553360669012967073871961000891651086188502888111883091207777876628423426091348445939822686163196598222210587873565785395011823256026093241446742514856085298187495118972283417816909987295896926756491272172102001829063416593991699406237996114794509600338564354915988209853177180954669271360185193975673240459054300811738893096651915635349158305076336689242396154642110992538626411123534379283414390668740433014257547828758792082220709423952148030067805075190697204136422145484036471934501413777697356358669513955763678396191705790165125309072872716377993752572706074613039811047909409122430028346600293939778874300366364637484107311825079170515129697155751971856220466424405423278273605463366617733824014861897945977303113695395336959425749548762253435407832976279232331536277222083046233738481092666280692132946326632393320625229839180833214185036224516301769283091295097660171659912689748395392701765005124477756293465104769509579414524172109178313727821592064601135308719416524341468020381025861559920190854805531715374908755374979679952154118529977739014795333521794847224397637825327626632577317086565827490112546670878081621112412821520465400345639198026124707336270082175792911523634398465672281326699524424354754740047386091138817511781486620989650577047055244052517523395941727129346675719826981667029902153059261850555366852700809268967844192144517489215982032964315043538342278108788692764276791326606650629361533479511950192482092096175773320799674320551062738938661628044780218468646668766123378466833929863362656941244333889440554763401234345847003673968974939221710424956375785486677461603239048991195410484970477949128359325071683871069704606592262490353176990368193077694853902810464338862241922318205216121500952599453276618718623018338363666795627494965718495466546364493348085840171398154279915993654516600189885185366677263030672655656680703327367747944264833975582078083207468545626789917622337839328395397350351178468028557881941883710720268767814007304314856985054774637663225555379395963612187378444812137250331472261417841815481541189767404281647739146589345989520079852608557000112805908148650464861563355474660120091327496540498597522923920651611732963532692734805979791042956420215777108219491660401982265438293870649592297226082197957098013569783391361292517485888234869179769229278329386299494302259570298486922592786027826328489246079185002661113315382540893638186399745221339645993278195158024591246195936286936848054179107377807329851040789149530256418024321580273506240412011626982626279213779665729000578052592940901154694162329170494292032183926232141221914288147140675358728357078008255058905519986492987166024223370741956349743527404879094347073915920969691581262052998780879387113185115612594397275892479357860348491209943951219580787752643826890246651290508570271935751880180115848207701559600405729139562888044839270587976642718633966599718933930768397075748204997736806489710504062582482997417085539725356904249966879618882104788541240754388669051931968810209484798039551271744346616400594641015977980539816303893785560452696579728181311335720518823865368239114817796790998980711691909199328335425771309590627448993869008075276462386466465891081407289220170327049440473488565105785801507896408174118645841577659398101832930515782952588196791818034386948274947312004739628283095862550738794188835338785707905069472381945925309003185865831887046782028986690731967255359942857615693433664898349100703461512554581018635255898408797382111154125155606416360559734549209363411474154724575695590270348065652972392248837345208708364689616711310663500195353064715762031995681846973643680235528212139428171288996842588696812640757525836864265703511927543540474917602716625492238315486334020118735262803598468945402953625381882658788320594147284207719852743673752132538847355290150570167876137161736353071722773522637876161264544228219286851304110306874418348627765361888064268690402903178318670065154280086393586662419591616708987567827499589530927902838809846857112025966638895097109074927257228671594341358465856538945457790115273336781063990236644878800317470439942359927044794355933545483364473647826538316462472564250115207019426582115609868891012511065150045634923563263384463141258932882799028276374707574216926892668761597571330818517592138997162821033503157311895252680041371288216715934092094945908463879413754450783464162441298805597858952210055608855374710958725931225143752916350034810956407005216617786149509539046557837121642843561158124166634940981389250004807735363061082684568291590458512908214577485610951332560769993383945783281567664758899756156241716619215599164414651408395407141660949923958240331422755187099803364770284408302039293333385809539473257239021579316316047862226759002630503672796735087387570999965605327136463921180853704794815724738002468838502938478253055842139420755136027704481634935306121929528919761413131515885790028747421073312027610174302913795638078819529116905867909800568560507077893684100224968178105360232670076486548428798364639945166376574354136251239734820007447417397396740423051211678420817842642869804389720734637886229916640422989499291532559612972993676254365343125743518161776500584601404193095314168948067610486042353863581846687435252193116114113229767890287438659513213652301679220547821081972818137099364367040850492073886168302306537024043045221121769244116949877300624789339463429260141010340933469493407375715794420310486016868680982620841227973296662273300915528727856104946346312299190351059558294465755665610264866695949111929832691738873380331197658141024559065748197310265299494769198824006756257096336499224281447018829544586727786650678467822394991559577495105653809790828522919137987175537069313636106318418555697271448190707477921247187803516403264205835725712878444560713526794155076335321391104029504002947824189260861424178974372098361357427961004509564109630072501411419775896818947899388572668063699344147143584533795455162445981158940402068047854297135626744032353071082913741964019205179199262529087068533204485750331990277250357610457558821125241822799253993045923283842053993453357461105015464989342689210501927203416009648051696897412550774068661595454038448738949985726078977988013170894080265933993296427342562110726278455496544103330660260771361352185964082470249993053696487225897639645310698742661101074948905848383679580563350229595426401642430018854810937381531982633002259710120326817916192100204889830024359103272359591983015160898548929519777311090857434530274375187570449824971335962339316048784921095061986751434363649007291100610640802353496900655216935452426794791776467907654998629313470010638456361470002480664981720323854073895727311929062769516419083516345019541697483359377579081528112353430456346731867713350399384715618509135904551704436525252346479374039884985941857390659392574328048618909889643561089998206570784360484395515058696943955112912965220925673487123487951191281527493236965824293321812941854582838551160678332658536506446134411700490160995944369842278140525451264611501535447423667020937885958329044116216567924765456511391128114056549276630568142558501718835625237172684296381995410014147489613564296035541774968740697109458029052386201298167609753381927221098887166614181125842739584818060010042556798024148754682306568581439235095712628717164067267458579941024959222101677779392824002472915141236663227516184241138997249760959708536087275544222167528733869637025123932740518676604464073624055226000935703319798324161159670612196609166084025151630538845982408886597398957163435937205041519430337395797683760736384766394901740251335620145713512938143371358571023736587382073636092735233077670765852666517508682481043453896184257741028945551498316011972892604246775209558657344882121487642662409413455198811119267159600128202496740391762813265491307986361256187319099657872147320694712879867789332814731352066225146422949256546192320708461636191852159579163193793604730909451123903119146526072770370413995596869709688153027383792378438294628246587862218633818999568146870733524850947486759434293646427190257218350141837618167230949274494079306780731279151943925344046713923600735179452590747204414072290684851314777981546500494279790230110002259551983993416789638565613540661854675897149019773870516980197742005519731430701514294274607456336200205690278801207619040005168173274601657544793126065065233654969198580715033722062743778232496701728847788464183024621712054475574672785537128137281839658910673339732111567754588196257431093180146092047563652125480851810041631656999679643745110254571907938289816121563547838835695611261079451033591243493040078352307992015697351666446639426271849357840362469464105703610321671828277573587626858558148544466077927054358386191624342390142588974200440558865886560709162637839487820047210946401430756570862328412093097616485029185688219331152270947119831808001430034742926200385957893130858109675299906578887558313026947455399815206295510052548190466392770548746904644678550504412301331360548364877293171825033047652268913371170959078721047164279149829448983896527788848881320123593306414354311363292585337969120531631677620847507563533326146109690814650711457993469164508776674628101858974123545651391391892073798552624258943609182900292148328782372694915512141732924198974172594931384493050371341095858277952639685339480889765576465380076335895702696930889956066718989919603472397761908097332438622557796266858252656203116853956479233117848312266807718892083095195198047036086554565985816083335533146220900579293034920990128799711399722460172461565771781768157588275171698403920934719001924270791974343834621835478662295581224719096182205862375552826004744589992543384703974555141676402913095086835104294196966757202273334304503266370318063929383302277226233750469697735691740059365335358169697065736196693721222141875340547091895378067146418815080759773718036333934081135576379188502429298453118750617127602304878711629682186128596124860620319687833865755973275808887081367918187902644714209589495236693072049496199477577009470419574653520549712310458710303785623881342914114059777428921903473187081933407222409555590638648876060103786340113307428232239037108264322375187812040183760191941805715074201380786693004661059350916244987843264928610222408211627496186279371297461183310513088096716065620571679826321234081336836242857506999822808532532021318482531797553677396498756881197506811032969002257349554307966143056761479340911679810277829186519697016466444153406227755385425892955114702775690311339287358195731500726869615514214048639672571116296746562143557855548562718871447811144852503167346117800667488077880438016331060353116136934120430155094436008087655807538064280091831934360323010553117374241278525781851707218960574695295026343837684270335731247829441942921871282698994902643978005936775495881049764469890991265071109800826805695333884701045813159553789519120961227726641040289998280510303431524580120579310325169189841359359560782280662771961076188021547125797732287852401912748382642780775424496415694142752048061333534546567853102264673479769670337292512196782328441824707929980956726614659771810879327532048221165631346896874845393407814528248887039104341048073304426914113015463926722420850111353862182693702611325299716283261287876172121258406583374909004530536671411985189770916206231873642221568033549892044024732188568338011613542082786911880450281635709766066619573499019217863857044857255002444226090791051675537639461600346480248367000621849630862486479721542349917291889442459216132586395782109696303230061179086703869551937174688096566598833713920296629512963794032456745414068822407885166349452324617860026925187809878442941070455892005989001980318098961155453033855145007833029709529133034925131617618197409219546461053702526597834216983693009615600084003003882673865497225779813010330125576303058143357302838004151566271494012945398223957800205142880445754078825634809387668181125952967595805034309032544473191303386848937949165015458119490570993808286500260490819381815223173560726854904345323827671620680428174444660461467692731462277543381612875964793591242788427119753863641543071874349282335049830807173253539210086158772609715707569950751356016817615486862705477821990239868525001597859493459888917655275046703884843386347360571247737602631686543852976283671228616517481398859176919821241308645183265061511650562152903704888771403876384296728553268617244160698958134132772152217114125669735711508480057195278565191120151917854272706802393858622202037153624523652793409636351635744814346755992108964031870788135282028478782314131318932504029965346734570803909355767850090188591696041201398883801042530419988650909602616725197986219023995683007015470330617875177401803971072304588398825698765926929010387107078272469184006883881481394570136532884629215659125445841809445583615772218354077431858554051642443951439050784756034045226911109025837038940132075334223111530640256555104607388928949184068996379548080120722063870078411109265339775968369387640230404302543639952409117971487788338269047180544537822214450347904097223819258142385474473118990446159546544264208855605598372450023449128790545209309759574040554058928995099465983359814364212533188473995416699921578192676369738418291641721370409227153020675947826017281489978429701802319243545651589546155897787719554689694172566724234484850306008688219802773028568209411251539577063408994311467599964579637914454341760501572600701339235205857674059594124055126075592798993576277068543082473335715254805617491629530495526467864642132452559059477945415099163206295445932705290488828210647029813310007877338625473375584282583923801623346777483914448144833950862371211636905660384342760418404715240811526467474345832420779335369990610146794394560804616942783407374111384760125785859770432394881702550642155329258015411888535507670385780883516268750860667288021259960830286103693003850121889935437618351318862869693297464711228634662876206144109252753508966432181608644180913267834924196156230879066603883152766183780357168593272328099053788242292383623578026524010405711281802879123551501442672170391358812779892055702861783756887836169926909992230663635830655328457616611999958892065164993609172583695536490961508451176899302891480051081821476008939024179363870546564705244668400786207255753500547761543579692534483443993661378426540573553205307841551579293987444901444227681772746391292931153572057822921300113940459386803344418143507336376078457818815824631450818550838172694553717918954613408117039687335818937298426713067064466989565497230829967709419491774729928914430306007815009971954095074039173582548779662839668447403873561727682860501917681904884302601015917901005164708413951003853418994383051842681168680131968687978651417656618210516351478898375978383717157902427505384559921237972469833354694785060915349937714734999763606716206665627832709378834249365697938564360419018601998527727778838363680821785168769864567874533865581675153323922054996232577281210190198643352581950130332392980828439031496679793642986889862381127690004755148225672946336729417959472405004395705841208284515755097412101976736704959939303734245429746126835640231308310971290070477964213073657952378575360398657602419110768800621413711472707315381796618790528559385561909989964785698192687563322561380279011043624775779399334099503317832425031394304617314914050287300909247018383275933784098604123822608221233399377706144472224227672932717755611495720229531935872225003121947648634815498015631229175625349547304402595062777624996915667299303590710116030874509871450323353295225974915231794137343096005568613919869592596017127054687311013857646880636085217015669564648212458968957750943497323776744181690994169384845331741391769563019014188966837081878658614472751911311490448062670976363743245838389450913526642900313031962094422964945885084336234092197675386655469635941504970842309619961221107125085308225058007670843308986727594260071106392083625786275360264821790099301418548303735910404515849677339464454588411273417094436319195405733815713139548796853171962911731368576111911360792356085235699149646225644509737276450637765301205833699146117732880959162528576642985863070580995151196186601395751798265281635094166721504133283508687642960213003911408517953210856037683673747025162222098837318653008702731490169162896905070845675176578505227722418391515266621936725865644530638711018148880430932776129037888515507874595569654084645084229134737212048386195068138611448620590168459554761687858708122770445736251749107490915209935535055395252060600822667883240131780834059937504354470243070463406327292928515551884310237557706878459160312976931230297369595065134157199900732604565458962824800863326676152063899355302505687539644675341087653012935751694762300372156591497747071534960401601705577440559235250439287216824690405989417599011536612799233765567518950749799833637139849889912521794376020542936706331901286672702434064046384707025416698748584461141689013281130529831635361970939369429330729352254849304867445485167912223813171686528482546197785917599120721954954808916958974102150858288656313887020327116990622903768640813326578300576119285045475435651592072495199596331567282645409487062757320282543976475961168798986509439026809383870438773623279116537686661627712664261699826804601790788691475392687915566486335191073560526074666402907544388178123915278661733833176159784813162463556755460616589134518447611617018307006958493865837825353179548431940381396959187081275686577849428651373121077441123316132181480576520092205603377108042920509624623430137255505165513853745050997794109146357554062476243915559895431589437506724000738011174668729349776215502882199845060614383249875961599318254620594757939289577523179645806974113660083841801547960769366780288101284963504322439789657045400539798875663737401037879540072085943743086039354448402639848819209154001063461259746904569338323338637038947588778301081592458817568164726843100204939749176940917689301430019142015763130402185637268234081722191933893394717034481655223662094170404008943737500354410599128322245655762494648379938662273390667590300246282997111885623197916403603989483700181258379798845747814811493860925820858372409155263486365768476633290555966472408279485588862506130288658858032766420707892663760843918659692236179940829040418868114742789998432726730511640832044228023184623667523860806535437743851135483311510085806686828646072933241313885984518347759432368352865645134706652707741328765293114315007454790693013932866214745397473573025383242798612456231847553741420567019622662390978683259151388759241244353610918703995828658841972950533255089054156203905640239797901214321269734030364971343081646575058667811922961921117118450829245369031811294167697134777790753862870828845315725072838596455861528129800163788827647694636773797514203884418021342518811600043293662302930506922715334030652593279044867966664267791634941315945442741503058859210998799258216806412783215543597017631454920705117483708887132538397355715904703996547387723905223907542735568022140366367939137169264984172182001717439364518388373030091583374588733367568511385632948343243704958795917330952572766251233642385613147412141887787528362073353643717117287079566979205057659989640078046190758273326481746698362134786300788647857798351949109059389116771392312363606998679393147401553508783120195203196164128157867179757787948956399500139807443243316986596423087692537621372148494474257156393199759536343572449325723596267171593208369635745023117272491050699801727278403246631804902710308207990701162470411370485683415402513831302463944073468259607873036704517703381282981520917760677257717408722584781115234223958135309641773567697097186574400839033291734574694341317110295836807423419258796183716312526606855346395311813900555066409707418487071280475758642499301739136040463911415649464013645500635018865278812467729536550845919236304745415503531085438882478125554866986965485822508373534662595131037171973775157301751264444567865954498781545414491692568049728606920935297471173627295384307211731599127991758807112326901729607890025140132936715869860680836165829195707258048812141360262291572184070172470557809093613924383829863722112241562367522944388785045749280163813964125913759985109355986057222200215450766424599060724145712700267015477878883497917321472528345009385330082461710087507133220980797780782073587760256941707845821658949168025111678533821229626099291446201082055885862672005741194634152591300904571270939391147768896420191279010222866818997834465111547924574101741928652826787464529558201581076563010221183275863692844615682169530920195113566088127035276630537869451751381992289683218660687623574239986399425148748740814389197015802808433401977218545775941147980805115297119566588165492168012207375725557414476943393593720233851096763360562321622553221456141140788034950494207806384296271084325824176102243735474667227213692078537725016592938528336565348961613404500722561163694277483344788915314719967398736892157026079205571829117790085355187580099202938027093170207707275776839295927041377323629171506004800299727203780288454610446803211145424349809334946228412136839651757132788188959104360748505043998221261773622050335198884932203456610076270518279375978607610967729917242971491338155761464079566117771786769085117842999343918184452360566997626249676870023076242720998916909053712299444143910473785267276423238234822911583218519919112562115772104234705968797937638597228851758188813647026354422310262625240778090618286780252668109069987290402525796668538793910438128443878859274823880877822364101803662230133681813572933489405603042271315177027144211280719539601957394099109492964448785335405430827011429933030395238441022692606140942296649627131233415188653567540405607556934984546725311527345387260155815198408892747383486220762125771758703643451976434004907379299243642108914598790769654552695268621568682752815497643801416292136598937005708871543660853168890751924377150561561527964583742958176703315324906253481838356603349468416879419494677721676735796346800326009165632904612143120706337775615046916991597536131812273134460555556614927965314329286338356707158293035275697098434374000113636401432478036832997916988931392125667555010733558074428998395197289378624150264042254454797799120936069969753803218897215286569162154276837970278867290555657301161783360484242974155032373008820315404612041688727998688383308802805482449953354810470025596394688213651138311918901128294702953991047378428824022076449744578008651258076333564652717425789860564348254348464830209346416806652984625206972947971118756021814407450399827808907206898454156652470144274821037131754467854701099039639292314707756417647756899935978155922615176009154652437552744040850806976186447217100570774333090653074984785870768247760595833510396588784647370759579847629483824783264573486437181935867047526500280290767698033379418731015714487413913219933141378910454295400438869341899483019751757974754045108851857307242633791730141603524309763627516083627641379599645042628897508257059310086261216852262950565898892760150914369395493962464323980205530453799969255294802408048312129756803955592211875801660313158431505929636963164696383517171649357399239813380549282623301306820968633898852755908828732019896743906767157374330761440810814290672200118716134804945841845607517792698412319041390536114691916039822163667766678774146120369785599009511339702973001148277327769748646369456349959870817661044691848011640206519542564376569857296467693588813312918974132047937678041885056118334641461018594449463357295959267786112207659586017841344079075297047915668135695247416980521310564382269940270880657817635028512637237124477183295741837696701599821087725075633111914397867598199521992475825570788765524408246901571814776593559356480255776706859915410118423732383521538484427393177502534386560908000189783117130801097375062055273201512286651828756044781147638202468851863111532902980295218795653150144303711036716935136791516257758542747246319194908228538334446168205544455149617692679491248064092678537703395149473748178944454020485164522902618585734263260775979840564694373912777202377323187066355178330455372679371594912432268582237093393903725620531110765757485263187965981062265823222463988741686390297301908897554131323443008961612205754748902198606346061268319357321901634130005851967417787329150786070982185284495545052488091270466201934979080248079084684732782431430315165469419324232136015887432538356796608574707242190461578049411024753450518825195951838173504466363380883963498203174990579548099995306253080460450046963574974949154302149170522961246219951377678207696321265819139437213888625433392013433519885547789416435352082119340286065445675970041213084628000779900871912775809283333733290054993492011871038899985376525019822812048398288963696680295915529164179653058452163228918296245156136031522764538084918957778269594991753983423664045873249576268936951168158941484381515535641272068669407400978290321160161656494390224506495226194362566119286355985062428759391298442458462579376583925949168748521822060911444358025971806248225174071152641890678431119939289069665903129459138055550545274341187298901462802092558787653388834266183496787585271922290179392333163272252752303530362343215784864946035431598943186985970660291067645901943534213850242199768105327600860258464097288328269167695988184558944063200377947842728577776168562156316642201196738154439074593228095905998044714771051084698803359137804455687140841003844677012844106446784183982191879389734085635318664490074305822435837787763821725015752241615594875649361624636626389630145391119939334181558981910968738294048863336305458327200614341189498119656469598265452011449132091552032633475312011473380167269884683166735811872009379493789697296030711065411685531362289420189344798719002968615068583058956713561656825621677321461581569998342276160134282318611096671995771700949105076241434631602644070451549301209931263916307418018573497345867768590924247077695551451080064645648319935262707743848720495447761599482332911347901328191801290087547369314790827565326526127288316675290370203392615614630430056831966372056966573869048147522355060720545479467444412796863502476886267323466651104796369466132843341573483065147216589327841887568946005422141908370009391599639927444281753341077029380806872633541602979551461878422158797411302573943903611128291613551224527705817701485965398485786141425786334985246075093249838838082823282703022000401353250129747834289601122520509781508187809084061164835340570449539259441708394576841283761384041435600410764504734385001357608468308946889474802699941935089218103124483671038336128079131608934760855865000927977130679490746133368085908529038490137700671449414879125676641540686826059258013939267697673772679059513301501807248931633619299862471283511705242589794401888354904639090993408455254270167882382563587895187318963634048009196342379753293577001523314049694476395716293410759053567049324670754534563668364521721014237106197107857387636942971247166485254619233391675084452223818817705264215951922405627480148809475541876900915649277915627587942016163992903712381455581221398890655085925716585341803101557433519372226734930614914746268834687167618981883910948373687977535439652779614381549461023028441898894191801862895287670357485799934621059133592116921546537267692192305113611398609980138004548566621553839092719863328050557672571605359450935917086987976992130776685974700733709872349856016863446216173883043039166241588239594049138789452103447480871697322383142196191893703369847846761832938798456020783764344946729046999498543329013801064941677889813702915522458479821098063745789932275379460202242071193854827716129909516210928690165674803931905848411350318919374218095712263913444883792222054322612419654055258007508819491849113791570875283160832919526587679432501703857745595252957442779123340321131083335767272082415786040557336320011487718995491394166540553186623292903655867239208891962918363933231760185188505743111299646063365754629223388099400823593646910987156999683894548857265815386947539832323865256161898615173443654929352461814571030060054745554816502097750409828694978746751718087353541587087219075561278158702375858017076153591419360640695323105515579943599402904548212216665065011943665911749493513062865806359130280489267020373848122133232683066413732086626107841423195368774799398612078116252810440908416856956514049759531322271720175940717108053646193765121318381922205368696448466025062491482642594084050058028017122317740729350930182902061329213540812103333824034329986609265444740901393159795257202494834783957541074431870541844795896120202545686959677220731087749759003421705580528080467369030735280106646085601933385242925538366827985568950639488718119845186346361533498512079726385781434235857215333153206083156330456151263964906973190204063747865662009853513191148604431413010739592897464937470908588812473529776500961719332247097866152805504754631056173264454508979332257163551735812633146944350801814989870597085373924106621991281406171747547578473819571212348118666984886876804383826183752707439794676644731418875524624604577728635106092756665778854306899196210108010795338769626515656234805819821492247696971781713738461318082297946427092798504052496318843515632999476010816378638890208517177829334779675933249220533321497786844311910934884844568082891284926218575277907841131838818004834803223185126422939037878879671213177137706253788165460223534781177955822265501393177333392092186631161067131790157594264929621570477326363888555178909561025938768566177539385761707384123859425568739602284644918977641232499918757713692913937125869837054791167667665023357362785801003529054532036105698353237511399890068534708033294698978710529054615970596689356001820187262599548650468602383206755536389207098354575044378458483104903220696449437240057067001798501285121266244131893921595565189821659485579023488691172411508254393787990408270345205172582867501162229330433158657306890851664447568364534289191873545616590795267505417068664288541056495797333826698647978197051411314708272794420871098896452524819139753833324787573102981546389986094704126793201556338861623696854718998865929650276553623761403524102216465573623378319013598403693967396690919303783948243977268900567004931272493317611839281559284236439486799983726445038184657202772210555084804933561239631169830964618501140041229834158128098865006086989380695715684709170180990792917237750212767225291276545677198760897826508164644672285292323692236220181550346352459882373836820777766760486663505872236625726940123026138874599704170597586056845969263539826940139799146379757826015409051290248239084081445322289412270054367406216298240532497085644235899028268258380733781299471948955405256978953751080669204133558110147816910817992389320536257076927229352278372846216567332558030001897129445847380145742257564440655371832113472906647229911561055751244618785302277432024547568450744851740239069672197462813245795703831471799789150385887097767887350893265688353725699303405923636668019579212269311621512465371248289830709131385339316949922591252590494000749325620974541028366504892525999722850068625193792535374492592215469895793231126160866678899897293188867397176090547140521114996142101044052551833144769086759974540479524781386977545762475137465582168994948872700112020324602889914873424369624210011446764776237174050485919009306495388786776977762237684825178128241492326187747034757347711769601536301911273583859887012952869363098172826989377932003921841351931196776335856647552585919917602533547456889300855635807229872102324029229310801248179141140907047544513209956950625387221908591636680306054097467696954763271106098756593549252457877271065320755003523072805598942229550615144605347904594646517572527999844201423241945350945474637722821605922080349158194899469459556760279644479345176681696220025346222161603560259622399361363197566808582878066261644584968061207870266724226593592079314629617781469998578753515934552547140803027348674837812471623906810457431133617853017328729994706894564724663716148906407337216589876385255533908170039287821002853699342318826777900278973445081672285089800544635642231721805496080142047968182480805231756832727418238868901240831138985653914991684607918146332252282197481159828338634085648124485408221457066099461819792129029818391895331382057273524434181969009155241829835094907181902953840283230784352308713731845604058260488117561009287937950060946369122496018000204032140783331195442018876014638821887670252815961739299720506860334540462828704918851068950306890346679575523883256517758415834976506329717412891621916139611152068502598306706151169275163716551186545564569167062508875746557763386813693227001397406469043641858190784652361608741512040708366225131634204716509756022113512832181012213334925341053809916679219216695720622005257766500829724371929923083707986019671895959262978002864338573092257850754504750966017579780100988749956297319583988849887252923205565686301718411651253370266482691565884752154176359998418180891967400159733793599658958260454821332261747898586352421459293344470065560307095356661754433598175871605797922293587843087928799219666518186937655420226774740494352557565498605758783550819448491251019033453539838631935400713562808450311073465776405818711802412377132365632126969324813945323584049683212311602692470444888585662431693839071046506451194564121570207008784174538007373605489370475542395772778655853315249352648777303429002353064519589846241059267262596043394033079890050776043229167379303346848089269469437353427373279341513002003543329231227219794447329108210830183067270321106425174576447682046358074739466854903371890947790283119412582058849888114869302032664278140602692920768020427833425806339828825210802640045870026142164590450781517788587671721756439276660500671518834343071717771929215304129413460297059967849736908148931195486629870635431409511648631915910067230638470863292575093339960341250175423765863997943802939238322067499279485049345751719302213022835937433483614721283107650353575867404389691746875639380048403950237948123383926707165696299127016863316242999285785277298936350627326559673147632423394140936217746842542162361013455684824797340861787374581212215730314035550339265616428635817090125695072072751663600134907574777727092154532374380898983796682482381916634882640375391647853279446881550705499022883393133613520023794284310844453131437395577972068523967663368304907294974017430968099573422741103621923032377577862576248129957859480392797019320335842524382316266134295622528063007224244208512327761647433910134597029172075417695479941592763062815348002825558335812444054879323037738208571314229581795501499220509217785610841416316981886811237771057071211338586171856192605518058896097123845148941459652783307209915709105303176156868358934923301951292305777170373401863005030382536525142461975802964254093139756701459366135948683686498904841759082895024338224386159539727428979841109399030180266022322345136662434601393894890493105103409525028515816238094374402431621627409555648867541411802280257106511515956961876977829975213211256389173675108535953729901620006490020395438682564303001023998917918690164951385277879235008891889796209816225106353293213124469695711016350782837221407406598918642615947619648739408778179700756205926443258809487144825864268477331329026194957585634021392636975617397259614568333620493552493758051624442191759066498948710436035753019171430227769741275416392939473145055145414541957996819617920988798193208865642151286698820392000292685623800085520649763811309886883096344717937904575207314143145496752039111838750519148756946938886517228453561796902027473392372970559029898729980244198158868878154888167140915747041226517374246777375162476341265687483534727117373373313014037034493229992297714784693952077800168097087331605293208644599643911047948897461452392654856144244463636104350209181127994912035377330372312654311629766082486807226636006129722682212632269203578994313778321754139726698470429883297456136815299789981114433330387497988678416470747338829233372653506831281599089443937721126346126565651532338134262647641250124255459905751396777133931513073157845296994788529860966426084419324465769815025168509310445673617916812390933245606501415418544777419487246654488370525733739087390594383369925180304055862014636168558273660793482521421243895703678115521132397450581088657309409943564770722074260527609838062544701202513777914300868391390503782743740888960302959208047303696306952057296657048111198731036185939532520022353601029126728864518797085431617717528690814813698716117045933259450003029405871522507154589025963261068619710383983036533514819709641263634774713840223491374879763493631606968181126414682337668844681415212966749501756872673270011491767648836475618078805195095729972964453301424473747350726238722254356506358707674547625709518841886806662063378763192596381332909596967629109107621556281361097773030195816107830491287197036348924645129809878009241850028793134654966000970321754611502787080520376243330610481137007140484617982642333636919772590434766991571975731056286471085918836971708038110884066173871971073874611271704155579844391810973369988907526842453255838780303524809389299402638937940292229841895007332939221093195628761717532210415956408477457328543180178673120604633366828779384984687089446917857229394172347403897835430919016664780558267468910203199482686511434436518998129228963881925304915416419400888594511740858502124235035833746204559834570409618675627950688546996019969514998107294045354638727228422271947479110003916966494823214559059291146182674767258613271234226704096855891280146040326090046547177835640954730001492281651530462601096977225482733948666458270138804000458076284066872444010573693462320371896355612030066420719320543401333938210543126292774231665876126186706216388214004893460367738741962041144704457838463972504181648583812567706798474235020610974926075438244994190298944520856140542400721490866017060015544447906383282700949863636649819623935062284615616039709245390394175860699641997329626821917657409675417400424696213789380497424246238748418511222431480619577050976738187382833319140639175190456938322192409073537110407502370660062368338527082256346835917660395941755091624950232045200646990994041261597623294979908907493810829282681933386618929053214413164898736395133744521311217286131756872929137734390285226528570004762551692685414714735183933747623872717230876356606412846402489704520063794515417073297268082532453861642016259401079931617034181111928607275537314291244947207392967452369827264739308623107227613684756480260191866088432372117190462568909246619585642926953570756981966345391098740729451000787162379862542092040165050039155740099200940613235476624710505120523106313996021725703438096488507299226271197890833704920716141833540294993126499616502165044715191067506399099768023519115210842592193520574757230844386263911467955989124179451467256160393367306019001958746873004943525982631572279248585398035460967148776273524656287716400148555169302894254112186972599083804421126966371498223631250995033294736901859547245121660422725365437755257384975973009925072669058167596825056906314128677969579568352237040513483550981673212926792766536238556885818659840322550549986644083952348397877253281292170500627011106817423274680200358741597259459305738833542894043102297177543655682908051525314248822398529707598257458283255866979674617562080923746850909150756661425474910696716665230102392008802224020697454206287078858630199438873905918453051902127772033130880745613133878511068237266903366803947363101168608062073972006489767059705797738428347714955228091286479685763741064700472675848107836596924395101725448337873846281492582290445890023744530693560098698520326606212861954568588362916259908228603145129195058265708774425713812976019511030641608513873656629414791441060893977765721759110040126384693724482115162866176736708854857685468353053837869079792090897283617400474671153225899445190292899535786305182359867597498194596759965500337825060534526344013329647808844409365471711667320961334982988484999753970858276999780064951845141166461908789474647020329803214283798143354759430670886445256845527013798198055572797345144303036739607479034472156055658396010171679715928774358087550248792496234505011317940268424192192356325114298412925368716637516767834046708013002892356991447535920157709409597002570298507123718577381924340297097281610019668254166655518186997400717354898708145750348932145076000615911689446018842127861120762524332935266455534224769054797496248282455544646975315015180202331156115722824689232898184145497538969760481258464900519407646676733220430527537609222291875629955275055544251873945216758134272337199820884571083746272309113513404578553007300781102719693580703277069099389015494218301606614211829059919100153815638566536136721932614385310979755961375787045410432079087597963153220485214618929469032037356187718147395207583340325859698928705296958155271697764747115561490859147147065541879623909469890260547557718521988935384066711785205451016179778386432631276485753974537045265808438100943965572042362494654263362035700472625699449013630909148859867541660971834007952436748280350164943935916383733769059967538944764317484000977776968988023545468301571760856962731871163259842151210995791453371278838639899479083423405828492099799951399457641096657631949733936587363257222210438241834520548702730991373280062480301549582619403275429133666225751428362789465779961906916953943307820900170590345958295886574081727683699637437002445198421674229156414013632862843443760159467965107835046845233995962468825301767684380507125452886128954345318696819743594029536725627585374546019383652029108368405565652322102675191085754486649211772763695838034890650329990368501365572404499253053411637019845099669920906773755126345062196713150363616121403608119845050021601829114324440286968412374618161053531600910459532934619882812193537364568235744829524027618533772564285159311853101783803737433062828800034924009513419242224776341760559956975575141470918531198368344846807526270782246276209074913387546491783502157994021189988000111507803330501171663799082227522397081052453491257458309127466905899518105364272808753491284772317040274257981352501928006399554172662538989407859907153898134064685365196274712988601216513198776017032576203359057895550814652035217441607401947432525598350511786844479909604965233015470592506321910533443283379080186671791992826956402248425795658007237373909131209296317959747767769369808459104237883138107119404198542644412760668829663985923495692925548878479496112464284231657579927390835715615337505449448634676906158556874813131560679960496705078386239340544761285303544753421706947014782482763557596198409398558417799584610984629604476884864026465098752886553005942409247607893362595260248730496266790308127606190875816152841143244955791471195858618269780529404956416770785103498622414170777932067083907855274798312451479303520042800008410409439776526623488492693768819712584218546701058739062444283686428247519663742781163744641234460639953851119265676426285792013893350831580601134288564016939973437676491178731375318874052734936001597200396800032738905875509373530971315822332376289038756169072878308327342574631753725556633851458871928589260933766694804136598413172267773173886329793487080244447008715613517840057662292640885741725092709797032262022390203906602485822681080925007918087610851886035368798266799064567859202711319059776816156179293458041035271862183019621134024128801862687688571789809128416227569059070934785068263400450170587079313395048908516670941231262022222735924645485491590022754025558833104137273566656533140784883566916765962248312458403074501580156032706353151328931769428846043923805089055453703629356642628537962822279714772682066079982851572036228994907407679539279131443437008842742467326419786198606978604504496404725996678007944352053558345172196459232554630035077642482008273673324303570547905255102511583551689841567019523225260049196735840763395676143103725422754243327367591436083591019578435472097733476247533157940722820344880069980834775416765943652606699523357397152130453574414261836783558333716800533547827935399471051794930895208858828327578766704660777492142432517377079193259391793427578495796174771412491296982226363217747569313719198520358329493683741899250040463276244240295547548465095585815926283052117337970438976366755602015117635983909677287431970460754128039407865464205500166155140534925458448689628056308190995645763282243922235516449940328653091504132926819575602387084320967263049688116189458316245703513154453126944045523824154361581466152263987351109605809109176607796891800934751623199348892641130616601026101378646394489079614499389362470460572084642350820912797887556697115439823353091104513141543923789545397720326119647238901044792233260729339941545299863695677922877892366209246411439934835080690980640706515289115118667009288164072641481657679925186579458011564250216892977809465562251439798789638105178430611071891230262396438104210580879732574493879577876571203640894102241393628068124148907511418218040319085734043552925905856772726403991669147071540641766363156475614007419093014724121965062936841490573781681813251049591967152468113710479773748282550394755950313088086441005460417972749841541422203713688612801717084983026963553688458712594916579875318183530380839855675967056179833356219265333826481681333024389654668009905920256287276051670338141465852753253343845492941681120975734143589068074956413573886243961781979298647821398297782526785193722353781393806581013666551227741642144691706151652836567934503612706460478910353391634492171682370780218081370124726960130762635472652908847753427085142430632206191308994262093122069561367378664678103964012772651577560264020811374809289135539448023776847402293994146049825569395585704959165161634107741706266234966928369254306720468991563683418044418224344260111085194226299189464838973381214615636008833894587423233170984814581910655840610690520026986937339404670972408421233361103096738690404379829350238982426971771734577514549654357192616054831604609512103489362444036955100552906158512610449499353558951963530204002254607693701005519254135472021332809837336437088793453043169879931362299458563262971610907262237841198588631246302883354123008160577190648051987573904243840682137384818623332626510965344819707323080383161838302240713410621944942132279403723839363691769994733124922104902638762622366198822750836799618752135762820709011488216678055360696901238084130502435785928636915428025466768858025487492690506147860118460686016237509947248443224271623415752530906591208788186085876694122072155626189051683789087677098940990583076901692025909920145204013119487626556813210622248276388509772566504397740807965081235524917937193074489717344022624073261111194620330041618999225731275460942857565237327112766525992452658797864396164131267556445244828469518016175919822016386419957096530867141770445801353603318282787295682705398146577980921330646213974495910913581180481433609382620207348535921526365971219823103723893733701690844967830687210354354219511891608928634336090693822163510108054615258131351696409360532201829825244127512771767417156973961941088663664690272653707554502299778117343268073411768144829673213446405706626231450362246518986127740506100584900181392596452493279126015953217311447922992071881031703995826689592857416387687314123459440322865147975284064274526965681962398160734503952905384208035941973701022149050071502055318682924228430293669641822233996810314705860048014147794860657157070642564210113167007863584637263339001826063524934331159051510705484183047963741330523874606835399389520421557358564502305462335238927267339479996491791745776056751857533894818744241288808124122985251741633651065564484320401372230472521749877695840172398292444429010077320661837252405001072913623143223991521221490957795602909691809852080249074607759024130520290154765007322079332893577953685944330966804853966571047714826547272770780669661678908447983012075552955729318189149929906579087257119693001498631096902851595119040089195548381620754650265570766327281450811398994241634469393743599780571335948448926580347974655753570534615013049284103019541387107805359468162899688703740496271325163446559434533207047317075327545080487474376930873718750423507546706364153778966379481895369643043990620170121892018137561272525177503513340283169057138155257046435268288483031105437596178759230370955124987806779931211374459835578270942463017619204202209005017300043143473254536902456658850281117767158860327248207390985593272052593350212229608816642731607430521027661276671965104372668432823472054532404110851045161432020709038162307959549619239080726303797337519163178711482373701368921899654489038681914888630352593348079348926690749907186375988997634196350016766046093774876069592321595915002422512597012549222579533413865386582035123229531592451194756204529770605485231877478370361068973250130483152956668746401996415569712860996680309881866995774187393836655220164684623429336301425043788216023482698519318309621022089160293995875164735072178297948384166983876130946677701321918405897731565412900837044757432885562882146076395739963828341855667882593898605033941987998044849477821473598602308413848393123564419002758381104304347831266619888250350499099312922747706212036180821196454147546798712845578357051717451507149936580965612249154709228409733836587287295520935447679073909690733557065990889726505238812959201866290393668784442550847265716901054371552921097414752433410723438395093650554172978124924268756560642682828109669795516709692510061128709076520229301097466730561340271538786674882449794616636619719285033071598391921108656422570157541396990272706543846747017818684686822692025487178164014695551436560816046219442702107887631503845428951295857832787960715038637233474644145544075059879864661711810091146662782643889302245463625093182210545026212964463056362967102945963996719864716037926776360254905336512256743708277312355375953942325167610082396964915003529384838531935209601601119486160809606551822813522793338181482581502818985947958588824374050096234498284596364692029190466206429269188053225531344530082041970112903170188024595427699106676108527316833693267517041328108506414989509600219003911216685516197752062285697424329028270514676568538817843913201444890499573269138728545354230222333354718898737163639929346725179708250230382323523580670720869232057905212200531208142469416343150271235426919554253576254432531518315329489446422614506221418432572965488244134636175520019485121765043629213223618677219372229575486448259376175240658848020407853971431304065611320909347006592839301019009932003793056460444791859193395168341110519697209426289055364478513129125889478701944915309197874181192299667032352577567579878907387823642910278823523312446082798496432712678480801199570657626157198628759793277674720816798793260808934862911586223218901615414730773863548282180887269627727955183828316366891186541398282015865999845130545195215336419587445366307995577333490072571858043744544402236765853516086013100975157655644071559464288117550386832633049389671152575666867997673165131053981111594710265060301266388284472866037759564209173418355799945421504927492803496475471747412542593448527000214377581860169572420470002460299399934886679617185972661044912219091410090487441999686484500269474298080364676444043933724792987813555561851073555080101002685377107682642867176233899107465799038088557591994286347286427190968691962261669629868443201458695403056649669807945664556739572034397762057821514484055502042030992757759513045301797024832742082838453074484562997580504079910805805266964471245013400998420688040963245161957916483885857094031539424097909384925713739319107268404184530780471697249302494638296693704945644385011979332522419268221628592941035251592372175975076017193044372107813099100192194177190530646016031681747243896725250982637066713217294320081506701774016806043896695061842098797546828067825742394967862719775961085955694684273008761595319678220654425383892185911345275190652911180358648774598003752874631462250602110398418780409212982145628246716493907133875693375155599485683267487558930139728874590384324076156122231071237674223540083384068993257439263473629181000773337076016273927985327049410803140160561245405741824630505845627817484048376986598601379171558393695595712978423132108853858641315437722792259407843616463209243204000635942970933924856083445518344109115947663020212308880631583363782221310425340574273959464706645718994049080456221905872200609385575102911032096846562743354794543494289642625915276250936817899049070492455795420026029303140195767567435522963115794800436669604882394399119039974227648122356220262825195002607947909566706141909350325156367449655385931723685823546026987855364636735757964261343740263429415964954196581051120052681706812919240363902290657345396537584796468741501672267354129901329439849568990496524006776237085432748674112977604524749258490516626173114385298247039358619014185077555384162303900933857563358141671363426185224309413477078675499822301297586305387713167824947608703058727930250679877197347992461777491446536234946155269664493919657140484057026145784388563690278530224628763451432911059511444555612016866414530523236068116863983039421365142613703727241789587062287677252393005547033399798087400526567769151820257151933361744256280334646088040985552835879536426012433843038012220497373754581244288100337445127193070097969747330252683657625735209277750120536363631698560952477772369489578918973133089065081840271782756300515458218527039727572467120067566945554350705212121766879854552492837834635067130017592203748715619158030397070442472834281855651731894673112694000188579670728907868520921847344474359906184012536986281448413365480253490618986470115129229459074105741877345660889427837470501176568075154497611690667103435684022009436308378705852038790076597307287974393619552583540892926141755033313158558263881083460089254944010806468245438358600283366574685340860028595101280535045263870620246390315608693724335795600480248205282688155360373636719878958639908127079191070863047675066463808578069007267918081491438084899280089655568602164250549194722774768563642220867301368899116935037817091440001079998055086540465413894437689605557526149879728452512374613640418479976286871956045774071309496975689801518234538705317888099539887856016093470193059552114355203590386707349619049769490024717425415671378400925580921851207765529654108504841994396006964127266274524096695113953981847662776954965153287369103504253408420849738875670455800622637508004827448236809694834334986658554401015831600995171056431998917049123962240466560862687893687970616260262200930667367346942225172914528580969369526852902640570740037850135520689238543431645095376647732011627437884416066950351703255293973625078773223257916772290666514549771669907653751749449217463555509009300905405859959898748006559759673176422450318865168999553035076199927053729912978763009946030299541220023540737649471815940186239467576951252916946120799211728966779409059563301827613642640614423062268571574500478286494433470919176189692654181423491411870156879854436291525289899352514904385618706758034800851745046557218115310225279709382358832923207687573800729720745506706458629395913051429229545245145559438585272561272444871435929202486548322322842202731720492690851830222056852718845129029521972004517833612518219671454774536582566063418815041799994516400168231323862811914219075508743997683562979947583607690665359462339621884607296132629934588320912649734639410380544384658391139954785976019256298330649958660847207563913302023592067279768429483788117223200190836270878082515123453303479828565103340042047673278235128793363005236019644436872982946842226206649754387744175910706295633178231695664261969423913252374202117139075864864169160147748503148498069956997485636434958518853346109100444892247571898475756073885412892283850849761356139678918475456241900649315932258008617692536955864400999211420115283835736148223862188369926971302638585031864502657712896740862499028197001451395716318951731593741252201791281974041184864427521825188160975081330863840366911806418071402997936112378648294273308737350093419971824136966853420990601716768156720987390959168683319129138406238216604260395554990016291922937379227242194467784742178282583263497302172594237733755501734331885885972701640705138612878761123505619451814362490262815746957809155204261120213706515651695749086551821124810586835471129496399120936845193315503475183867476232135144614057974587452080908084273393336302206009176325135562026975638666932084988951426704235910092764497382053175930635230607126293504499947563051349535412949084432770552806050983654025591575170936741615575277309669091291052986069846983844850735502462318663930919959570204073085918179841745315869672166902167976746525718506167406584529322627023164814541490167871954097621746708688117716413215869345287037570431357437634285906189430526758261790704104959467622836753113538423263470506154276251199519010242935566946105145375696484663781285829232415793217131895568783257225713816977516537089849711253596279182941575207181840783121183424211466202658490100604708438545214610815134454265950854316833167459420545670141390036191931846337382516203219322623502684739521902336848253711051524776417034734893352064463719098601444610945783324652204261589594350685588352192575559328763536523364232083164732715401811384465335573569880059361081226731266486300043183919996476436600939756965977680848059110331426661730926792370632918989019958469493160793534014760780913121112264030240977947191519399914632009175674883017685106712181318458264505203072216878811704024490545760996456287248341428632921317074462371947039177603984302397925208786841419156122086165873355840419804197674510327469172300600440775363624396981576843222738364247506098519669423982612695687528790440723826585824796934896258888230481974482196980334314991165381096226592874134208546577720337718190143165028533396577356331522767712709959388282242552001392038492360213493134943976384815748269161818821254904292097537400379828185085624747896670480434069896159039513183980163244427100221188632308100985025084486347304224815972778159380439528103360523658821141486805172908233902411485925690402451325765638850101050430648104591834173805410683451866350065987899824589787860817273561086179935232659075669342985070246361064097316916914279507230881843701490757377136269521995333301041604809766119453783382472838922260114166797530428364392354987553797253028944449671376756467454020763569708872446654616705448377704047708693231502456052819460038823741099620978389160874625084101560186379993823108277500697836374573028603892298660430641815231774368419555700541919465195773504337984127500427155289479060072959206524330455355257534938632685248767546789887078289422407974261638983856020433293410875586007156518832737942977726451116918018337282864056444198213754495772138641345211998791741773814080102607993952340812551487398104217787336855111549736132112231817150545361817795250635716120911491587246729574364525198648808038019081261053233489221571349651738729454426794424264299710891673363475548072671591393461251651335629198133037667398858899174284449140573267467704284112300880067441327357587525848757886197521075727018755944683900849929156940530302343544684635193796701386636134554158748501513301801928009227215138309413313091582994195196708416047972696345679527661433585916192273472919263190698272120354593867363050339831774945733110011235219193229577785822743410259927775104473813876934513476448635625810846400169748134248292011596018470100329094758864747377884304059603534143900756034375669743171148703922809969277794909843539418135346318895655359159168488133699070352338126441304618677843746033779449831990027037758448082642412080035086039751668204011895867577589722585696768739221203490162100388014331798106536065673027517635114561312899238106411193145421615787808458296704412155769179853102361533290314857050354712989927564605698719093229792627540849825114520966231957027736702741736580864827892090624924091825641089946188500150336678088296182229048541982615749870749922234537519674010479143003736219918566738011387961846351056797901678122210755590168399173021566552078444332273668826506805399505115499281929066709568276795019543372862769526758540037643730667762479308161186197936990357048425485348394394040221245914334979041976538776753160604779642705710371095273049434456734586251188777830781231727748197861902486780489175840568882100748176448496253161403565353903813643031563404131361188301006768118323045544194983007257974636470672708881352973105525061329441198368112534414453109095385789601066689524743418345979149577123644758345812075672670636685565190204948271033436843335232723269650033658360583057830882165292805396698021812633793512031033067655549690811006990736958829554202317016187140149540082081698979415154273857215645740098047147642625682138900484193156796447636557888766227267106168291998214915801095044410794343003059102755831096312299095105874082360055564281061460962584377083409930603269818160966305006060779304656943510328314011039573756366829971153515647406333928016120594356448524207283404996292668881076176841953292100566494744351391187138289901990877508759367402068452056938724034092103069803289330383179731976922132330822893124413047090808936869292489654836596982041838362428465128349031127538905442763160439642127938361669601935409954819761376122369177421824610668285092058082625526805927506040498884305523658865614037609773542521515400949986086636212736040465585752656036311520161730274083576366029860869460022993774485898919438556311173545855193945638261545604839453565194839408974314057570195710251645304510442197560443073493502473906868384829667643037064053544035546192975033462585202145783208503284139842743033684463445895889147986114058936444531309557085436586422221152007581305486920216569494489398404525550626226105381962756634549937051449103928352415907225752049685473121498174737214652648747922904012859110374174588022498863562762037682179985563575687046023798148632581319128160087095050787510927975672310601126685247459019972102236654558678888421242683547453025185263211094160478517963127117150935333389079413803371226844724537229513272734166688686873038289746903163715842125377878035649115767232969672626955329438626656712063115281884309805693164971984335603766489211805787023072986254877598634977105618589689827048114806460300599221434429033922367853535552747011457033318542350837370497573347265626730213119627177496027409170198849329035296642702909535784785619777129411240454506373236061744662760374243182745526418089232985696844145768083782458400597445690732776807927481828126469579968474206041111539963704130603298080211176451330249208628449264150771100184296032033040763825671227261320470376810186120704549647796169371007398111169901958983399229344096230951441137707194835392336061334620489102989426231596260142546192940539725253152886731460463311080536790710625636868882852837207971937827946989408947893741822471706727692808573944438946737625421084810877425974513015209162388094478602716360558999392757757218676545536712231638115647320093983052445026208522063380706531899858333659987103448313339924243739664203764706846823114346492670531002780412519806902039496754640922530764195039553203511180987253690166660013425912517522196971912261346199415276149229234498575479747187913490397642861464518000816026749931803521827488808801426646767891112582835118197265536047786378145040421846314512601771206709803304790263081552821060917269049345280465513104899265352563266332597292189522122973212147755086345608674606085288762968802452710618081841749785130038874826163656276223869028076365087794690538826707490444806647973951528257362675738047796783473984589229932913938076663818372303208447625775302225375853895163721692504877699715476727446230073100936828950389917184580221221599597783162927776592911524504826350470397802313764162556320788754103772853120705377448825116876944915296037593888768668677968447743362406905857049276975324029787717507631903257072949843226161106095133457710238094813477794411521580760117032871007256002987442890141970134427350063217899806348090353926619081565142827185009949353799400349138579665209089898125608837356214992879781595538288613788123393681409556402581966288882855342541322348828886310699209267688362918302390448210897890005274628935440201580352657455958083563376385014495834016582785606764154315646971150320993983684410541526543273771234212788250508478232667573617796228902542169209109936156685914328932989761457690668676032863167363343468657274759434282743910875651349693547226781303427880805869577321775379815855787413911175334761490224000726565003409674837320588360645652195393381665102694609297249702526172557779769701065369113328657496949795664073209535341872193581579308327393782372982084533421856049005316222384054862247368425234144909962188959386206833595330761211381915229992808055123262171937074316043703564773354842104116522468970045967748325001707727698991721473562255266023125138418388286510206760386597818827942753386145935888926976741464465683135333545799854922968592912486759328308633248790959851920303748572329504238217213867140113242835471143082264236714335841734376616611842344071479361661689261714543429691764828071741080077497814847053101082201156567139022783404427602629900103109879788348491158655447052866119491824372380529934325567424856176424642903279451432541249649595834880004718572127619774948015426243315789117163874589021592903787647029173507361558125681184067742898492954775111319859550401741499726323270110053695031749634447192209123864192094425082199345221595822600173499544913483462516808860416312280212344746456250333706167767785002076388651335502652542555294581569311171001224929778641036786743599027506498095243625169729145238995007181314708463269916738548797838501609334284025811766359205858790447412100808038289271745713992553080549940602757696819565759344842843510401798713642855291329917801725347789962078202229532317458817756474541924100041645748528271288172470123703877979392472922985816979624358612965246090833707351799357203320115376207066350719345084165369486159740141873368357323853916749756366861938493941233217736468830408862352111992045961526167542087592762135008358842338373695801861034854636413728970255217842118229477116055785258819368744499234029677857915304387998723827836118134259545531064349909007380894636428922368989314311439536322979151488441933578033926966841355089869155595951964367326186106262908479813640629890873565499758978951411564511122126748345317873447158727759801535336688306017666343308764894928277755835679174118378957944051240065999800042809056677599710315473946100280267364264050819504329650354971139915643691366489394272756058093389232279445083197278473241209858886796146451693553472364567748700206973280178448225155979424233221409501805162162715740703921974749761984143913087706161506954608608979046001859931895078813350592477054085142914063185877212090678237318341859006894541655700452007140373699490214530837946734578022526175318904732959546851539981796063926592459448260556492732655459819150102450002560285828065623217124492228968181729395365895805444972247864523204463377139412820742008706265934264975057959994171872777511114542526232223335088576357533018129381542201663010779621299648524025562593898954040625509674306611573255020093814035722188740715654137082497099557190720487773785879341290450741301292881843561293039414385051505420291143307566492196011475088095100602389369756798613147759453254434465893841273920181233009745065225496521550193283497459862287305885491975796127776711431255168826816055368755555735791850935516093370639712810630744869984855585571753851362573729122949729595923863892883015737258121545480440438080924151068700876822156229348095228176410580175966992121159379997742995801040113701500947857613724373413895115860270496693751106248615189708201210197839734048035495337826927324407013900684296470004164567939402665094471119671116365217088670045340188837944365927521526701460490230207499655159658940952667833308006498524846559952696948323999062838556345984020001105302465186911592154153942783019648317892742642165977746602223228149603557990343988166613736551707310026536477744052948382347476083860310943124404532072155654620067747419728349042525106027964444899244896549780749124619561542297632953669198279578912863612730445044452685917376390875239348605444699638152663317506612611459750224452739972529613192079078530279613241355871281592844094220058238591104546490855182650155186692968747622285572438245849953109611205918983356821772934378584172945030282539881973178763352350317140534812563248395182270555118288989913760129223192764153491426902267117170218807421686898927665972321651665167101591532374573811699143979758863749087937117956143534766509944588897990062387037544950463247765609867656233943778587807318782511029696165266695416199562289748608586949020558833025067353491696824713251082079758218656969291038051694922341187428919195766917148479703279994313686984638962320622384196070240842013894486516863679159562814468529399066442523714026991821423965491692561667128695770794223054851590107887958253994248006104667630686420164696646558815482880434349577240957720371639426411801652291990797471146181760702626800181946770986952577370102278539031070718741384099599070102288727723902443454218050787450329033541741916486816328366060282808877159494645261451049224040801290243283223707375166416516042243289156348755745286859071932271754023651353552701709463222074689262997113191035276848737459049347101170480247322492163935137725277240827834265482485079400185791038615027241303274159478230968485153631590036656406551587775766243710376210458086237068977381731112864800553655537438813127917395639119447747909213324132106037793777027820329894661074360175035858192100699479192102955005046838472423757707471221175896909233676457751727176067074140069057090838122623670284990522313805280038653820729058923269487890742488742455065171927826223400770617125455492898482107857923389108124171129220291036066058192459938169741966488047286859994853321143857264590563159985216058032296755717918774423707586905352015354343975183391552003364280526990310103693037481066313625991966971547875479629479884890015613225368437745025006150894919358538230442809259809508073708270059955986231165194490550369146242611528904624094555633899107783160796864655612120341481759183776376350915007380795464106858871542418863665658166067112281280129410393631687726321193003915353976018807372461081723473208825086299050683951210894326213108765199667775024590861912871747714902848193674015194006226147952846954047336512504624718463226969097705453696855566793671429364767589434781483996945110526053052903861529493400318056675304027653454044305106958177323349243722480789757408946219715994164366442308627011098222267669639453162357768924220951499625008596581508003610074920836775271267682216977402265360005164600393754352927227167840677878212867280829492516484620133609692964095398616667363247177299558826496829590213265197359947268138070051625037128391527239465827542245656510113792385861521976406943493725089282336700065361372089080934010169582248849816881899141884576532470116688871499834962852313026410255900118063595334980629580953030882455193886255827274508216905885594940689438130871624312814473894281343256944706170635118518794221067163689711126304563368881888012860113507782427768563094473125666908791444209829766719224128069801057605981806973240557042405246541952416685655777452557984875444516605185546746593609742714841709636620715069594646721391221410939879328687205915117520183051526896088107689308509122889472783084212914352080460270996050216776947221662613772302301655728820034868761487775883005898120378928334907901926717883724844952320843993164946458462251548694736288695303970355947070171616698996087011849998879026674318658716089875684694236187159220386580585467798937979450604293139013768098011893180349774806289986762360262681618515298801639402478957336827883665748394123330629988247671334662367038204744073795509879554226780320579710848535212513714693544838609705665809487217757265126239509028500512519737001488577556106802540592855098087630875573403704254851279184753130504877430829316367003543136244671101990082789283766885458140963233818665782402193182928790871446423577615836297893555504015516299970996132970282596743393695276574028478315194043797016242472346122718288100496795461142114156489155229305861563174587638635631340387762456124664484519596072986622588325098013384185508372099570526400140930438401176345375233562697108783584342216572223782039504280289718191063251512169922005752534456367412801692753815591914371138212903352112253896317609892115312936386429555209991696185983179209166350013512437415914492187395488862723635313687052607415789290414127979813768558660105465607637076803254113776726603015412812433994869399977569191850346355586135918622487451388132734948711506484395360768659366172320738759153220821948694208831235276718612423904223754217095719118495673546893711949147293045928212326629104361793386725842770242321407098843212314388001502587639092186034835869990916003066890461472473406456879111279360862453827719587892227922268197330854861855005656417713015119390141247644226788401111535990209175729580899647979963355704084987371436414792959784338264666441682890584500113222480824071033683903276577407626211572591186537861203124588091020646907503802995017597192415712890430653785214582112998426823834941358298178356414675275114883574378266363298097898389694111962276760141477584366576227886742026952180265331254348835258176241164101685772764157525955809930218705884925471685108165319024118559214217171531982535841010032081313462387290918735502358926476841185224970227115926639913220802146117219801417997718895636400999245355804588766258362552355167450381462015904818589270636590425997754531201227293893239126492772946574973968588904568427170383494665898517411921118053440261750850544806394078647720045640263482581115136271808976439153119827928596812377971620421965338325821383967339221168412154579610572945160650489795804580037511264377642854892094130429041064839556618233263979843139497672190123374638277268775250319240923328768994018097576649981786027611773915860911708335354017159954290969596614371131153616518819251761396034178891233555059329142791389803054737016882537684458200193518248819802938516753089884752197068805572761634116794708630072677604361764895520969115887151596365467456987896398176995907579800997116393776111399209722340857949409472713606474393654870053583279460437627218887136037017007101858291917764466583367732885908387179919798244888125557180445528585230401224322928443615974082243223128360564006873824791627038756150468441389053806438920486666742363189109603916132648679602472254443689691529718118140093882728219073135150901408582071697628367877373156234769126208813984036536472964562317831525228515699625855798929202396412704220632402979962926214963058188573272037581087385275517737261824522696508286777468946664897682987475416128409226715806493919722301586657370971271852702157307049120431516219332631712436503702375772698856279856886969882624145102537286560045573697502889960616918222685787008663816834979996520653827460149935002507510922283239597539562650005647178481245457393521749918052420338123373973260733874756122829354410111910314581617994162152436781552785093248098006756470937222021300647359902151820890937684998185917339069179755834509698570388849638495467859158714617625303727159685586476718369840010075208559684544584642425518148962969723551930118166807476572257316790559133418927262398923407065325902078813230512807618175413478024986294254524391203880238641577805795692121020676367670313885781212115128211837057972679363583241414785929253235005217722911306047760780285834160590151570985471140736972382384550757041979191628576184739490912653030754553426224114995083013151388875001299607417589865811569134381840125514126808325678809841660937949815040384747528646505940252378465649716719064211576401992605058425353453318858400358297587862019234991252570476294287786400356272796568735691808359893982577971269269396791091866363694164871583584485259709134114995850773322239331388193480187246126593440784895789460115015654328295059611592426880281648330301543508135428295450143284331120777437379540546382900242339880760385245743202004441817928911102142461848136866450975452008276450308927484415941285461317739255846096544305277201179952923649141122412683068608699201083932940026460747454763953103861456697630196863242912873003229288043627264060869416890800068925258550676007160551099145685662582229997981240152457963792035570694153835674604307112196688341104117260189304525124777932490389660281183048906916637262247048136134755365453106810639454531796075852152867546101362815931822225117637594835670069464802064110121013647218968578724360197520390649917411611022707914827995921781963045405904639198130427006666882054672788154298909961505192940729263270553811575138298461400121409746575823620866170976967138743366083066423587942605613489043102544465989896624420447522333030925540008625884818066540314078735956816554070778176156581305143638119613001217798824456208003742874470523084427279633752565283531925955942236697504705858963317178703426618167987616832347357991607006455791898778583041462164201579416593964851258475442597413828192335730354950244926615321838900103577399238269047057190018773368909861945599746085151633891221740806640073303899744792226273343502444172053870944032486027571994812914162121090251694395592223863095317771467994582244210244906868691423528604989842468187529622378546001220200486758372602346275032116975173685178345109910841901825275752922591662316160065563216049499033276830402339532782192821280373217324535734749994816631615246323470127376775789691517212808242417773952479160888728445599771611503607521241281614197671195747279494274138821479765261674708063297756432217159239485987785609514379018190169179526934536881418960686142723761539233700015998237524946986867807585616040331377624627546501752509365978998647329820723143152538034205029253309137592823758964694158565866226795301123243639116453471058460755175437338987735797762932354705694223877426406029261234877697108926667316444384081522866605943414149800285867328334059690799560619700814278456904812567544631296981072408256775052438087530862871500141837535392834076619269275403330792557146224338647110082826411190790403857400562451935547650380540779807774835759318504223976678513371452232076684250815036118328935188498434087298832320113362585850298457004832860794765268305248216584776015228208330734020791891246104607604128380646663314165803498509792265606250456111963421623067099934569728171721695621908479250765190555201922820331997137395286027492022573922305076066397854802682308078996445098940231100189300208901589951855745112924518548665695543758839073058455949488613184975460177950429760344537785825381183226908311103572338512141511012397704451907467617330933681371797819207272712595563923049819766282141431287429425206466660377526626185167762173106732142223565170871111980220372311458426526785855858527933635036188781779232764557753694385651110949230182554092064849860905812232054530865081351658208548535944650059415996520528630438774365186780310110157760708745281490468021038321743763754899948828602132206695147893171797405624320271691472150115607570847052554636603679499807966755239824207238909815304593036529472153883894019344048484719619411682549836245773426215141616170298974543546305608637546461838167105432384564929576897480068950287399514484918255366253911551651907578743578195659997393351860985126479558183394090438973934015008670084441637328000363608808816374743794863394073561815897004338587422424156509202408398844116467657363306863301562603852540379533527144266067852415406784567245215079083332020951079369952307251399583357605663165862580459479372491319439702271048365130823517300721534682298841089530851064451306783192578757721246848262545133852355600944499097453111664695186039883110711651727781605768827675573573724926001792084740673187549858604394886358166188374778231963433992997109059630868290250637599021752707943443892332706732178858724234078031386262004588555561644036277602874254929560925256783929044199065716033536796107110840929873363311516717601178675875955564599280285141817871258403210519101005314058280321411228086330758778406514186918294799095178415031748098664718611483624166758325068739725503432319059006488713751942638790431576715548698890731917765975675612678061523128620027479392767483289676228985376356265407916294015748799888160535588051571712883985343967432644098270692630582007948223891473004023289153788080530825409098460281080461713917930113458993537092386149769360555002735945653018815483708657073751509656996255794871134727105760771089056987227668155959654507217553864235487609981233832233080022992676757937677822087029959302103308228012313475175071597660851035043031558566086700932799381220160860625056681150133637170883372881038820437150530315273683908806958291332439321489164680869952691611409616341139841988490212282324473347012012381525478748866278339683509018631424021939088109392821326041560810638984005338055302841551568254015804345284516058305080297669278584134978831125725354824594355592257920760494863623469946709558648236783578376959663678754545777940648345972563332730236882198049360978792558724906236301763165121491577347400711548650262184957503667677171001986950321936377782779161840217564418781446626548735438206062202951043957096651733600743757584124929332436501427827969960486403390485067797026397409913874660691863023812382955021000096597744802185045754254650718420592496521189769558682332615161469889110927354849895414388902644878320933932000035495542750102392876195225873507637774941968283691313637183358399325045496147421504461398670598884269219154901265099307788300984716040011491733386803736658061600763346806443636789269664660704184870992121496104042029406539462190747541190493940525849855579506102713644029197405167126579244964760682170405150700680353539362342231738670759491767502645920492230747531081602780599596189975154384702192331171072850762209320621907440178891491659034684779293819718579524633642457167475563770512539803306408560829437878374260078565495670400172612155572333242376546738587898787674314721022127239886935210018177447295229345720161319179206731624416837353696070299902378689675821933931607864783959549067178928094927954057639453842528410466400554007717346048656447913005939560322632546119562473731985437205904524429514548107581676565665584222842421066657304231365196302871802098343678791961166807170321732926158024761200094286043356293269537571996491200244193695266897189736807065619136655923425482539281029142524106704527156904645218642338976174800594827939161114396780912542130136358091591458380809715889768031778517536823626798596582287089124115810564456317369928606293873479363882079851917683437380243901761168991316638155284839218981033651604652858678057545524061552381969803611964599520016339969810352063641639774595415274562868807543456647338992146253097191009321774596236370330801975676773470693007743214900225144430357145678310224942240165193848723645810844019657967817891249809304307875943043551152216566287720638425883932918468326544034090463699620617181884391882514620131953634990123011547420808647119739266894805256067872907858658973285675777188770623874220134564353778591518119011561998000571793810050981818400343060784246521496675972135953289336826321178729827134802030639953641780024525888784633779483656041702309498187939303381968395131939687972672103490453818129885197079261589040490970114454318370247549164410379362932222745909507434417300325438509509431363290755219172159425569914861819188101355847460219861557640916823150108108913333778218458394803640311734279436621043199163589408265334170569798526970774659446411278144087894090843480619187739905315371127570376593543589966788044171004073569492396602333202925756402230740592726454486973965008467628982257465597187586721146836483854892085812167626397987772686391843944511117031887268563251313921459917619032976262925369737737393438116496663068594260050881538150128917961198979751599372492291460535691364119575579942685891346685830229832772673065888382913648670990524869879507589945138078239861399088835747074465081406400741002963451183746853242731493779894089124948578767600711613094081383665962082274608274695227812433860760885319742672007462147986264085451999625878791662815571983839140504591093523947963956072590743446218195588303462167022201777073882415774754479031641773180176088136089693956712240293529581261503158859914601491780483245279143413795744589009905300189946795379434574805174930727510842303863263672594840844828222693471660618421056659888054775083447401561226315818144858445261850869412507079271637109541001841145444530248130790320832628842005668431214976710981977752017551525005973237781399526062469659721238997824525347624855317199667028924221078755091760252513703561096109364885651145660103822932898516168575098884689493065571404364050277381914465120558387927921038305367331667964609807485023473398500828327766734319747798993009365499827386273796627481908833821301793076051120545710449515266022209948638967608827523488198103698030355984222277123806649903724176032317971792194281142134409752456327162224095823668128693497916061691843573463727054215213667613982441206415274627250686502487052299210471097145685602586672547891577939542685886928732317811844638351224445630124087559943808321461305569253469993690357826344369328952503003526125584854358723397612620729267702260250412541291294027684576304545602554686888371916791749387065906518572966582508763027276300604654062700301419730245473797723866320076138132818118834555058953701498296114791710114606809990996231533860113546370511063104632693048006714464143315866264577220253295026469594563812142095366226944944340655335915309910448885651764300762036223123442133352402958601681195473802898998767320379974373980558837313784906586630433380906200457770596498165518022819833556216596960086517883457407394639194623556369992310677736412813250001318098483146592377697838528968933376981171984245628828192361663880939808230404656790575053796323618402923774198434203623602990630036224582715247567310472856971687619938764018002547694328446332447349553603920359461671413807344800442586449532888872169685604881280429508953724864210669834319582349948953122566186421781077388844445640460226772334674847450380066130480875729638084369411017367298406957332814121617561750811949481958679829141901902870267043992687261669016387848736906947261894661285143427506347839103856436445849864202559548847240579896140677933468857975077936455658850453168968391690085657884368893276592619493769661925380518238664798370263664889486270736571890981586527735443937411250617618585134704310180876585904339738380936286977071343748675381635316632526601052326072203308997835382102071529689553121369224387453090626426557247033790136807061629955965579771767882054752938895767747379181444582573108015996869398608347292382448761285243678350383175624297679892800481894238438973192374973601399534052981746814158879423425122158975388495137322498521020429445104785619515917107774116593457845225155769793341160221028596718209974446917689105547081129254396923107137825151289572900635058468936011288774978925298489635987419672269822579887455568377533185014056793656930881823706165373857257228332936919852476733175014703948130181999920131219085329233101166992430849923228213057874377736257114205676376688417941827295938341581601830195090035120050504785525458162969671952145633072077382037990671011603810770074375530195012844153437148743627583857037135260624474290042125390827295220911719322970718815165746000058686936808235679106560275970048915859007946232925123740461495810010562164807061753364359527299648863543405907061223874851753994033003177427727933783284619783615708461215848789979543747614160316040767795970403319830839626434181705196161553761214385741605736365680168005520572844313510203291147831471986143999698716026107308856798499000387173409427389620467082033587583826218476627638792624382395364133031490934769069749332827229713547648609750749662659518882459392340434158818567212338248948549611862544958124611032010564385894604506218438309711087326473437163421218530373860442871113429561618662073440482742159120395499528700131618365107506913957948412187956197263985939984799020933385652333075199607578064804148465578605923513563849608272717810163333823766110753032970505540448606904200300967143971599848003999875472265757765909803736024463842075499233821108288486243473153676678437503242574469431559631771706278498539082421855494031110148129153385028873559606063775564047512998470800686547122179184227144619390792455985041535013363893364271911646660652228731456835345298992138265682296846400170048886260997895713920863209358953167384606084023035549554051657549467507660254045436875225875128435921420125889507785073948355044465640085412998368269582075042367920116468389638634724698436068076885477365755399094051893688250004798908149407782874012690333501220795692255289911219855580335703574992777445046789708312779711001227762167431846433507865847647660857854863218188795621428200257929229087168219152890940570947061925989848855143717083988601589589439309378666262594924351930311341406824057501746125568869848413590320302745986946120780141477954836454512896762224075768828133707388045717117828583040890189546946008916397716240671563794569712835697527286557864881259381506090064682020383410923379012285527532021067332399547987990193191644451219649467100207594669340473655424975499575175367144144901412192492724926104969692229146791390181297745541460166391739669101456401261141894128621274425812877960753775157817182593819625728405265784229524477387977997485348541280300856879810837117698226829651244205960114770600695609850481763335663376086239554947283687566916025357945295778153287228412702094723892178329940568970695771546271893035269440097082765796850068899094482499714564197708592857071800773502338528714466003998266390371883773109557839542802354545756928703855268579365179722472020918103142845988317393209537448801851443888881315956746497320940167514467017491666996983531124257151332252403286832939435149045101940999055817558701312457577451022446436372176139128149991941281534526851058156738653799753854023816802788150501261922936420029453627997123519028032977878247536892603834039316504269467224758775036307986393841538402335502635222931639930915049709851927576360045979012330608527057923109005998708162503444688091701020208444436775813584340883732644103309714218879387753012847790096816468097236155446288195158237364112944033668464898662252380232649834313104159499733800462639884619085327574694904352831950879291015650988758328093035449978548489491042682146581941372024346968522262106911615148801050529928524473860588008750449996355510603849936371279333448268715594307467225364612956261826197743941623634536434498157973844703847987409052311139176068128399796308144804155585426677918547860824592235468864115902119031757522048798063825581658155113050864706463484532709827512090748781465917109690676903528882391932055345444943030838075035590137489988081921438930579852652703451593367792065188720267744308214297149720087763598445889507579834824365346862860718507112043678056772659519432221857967024353302370495650065489274188937088730120440535091125361175609887619220406587683186880593095455495505825616193922330094293341097338769110190114155525698170149757976852637282277684581055383215339556310868132733195298090071219314207768348736803295212849366516721861609536155384292426523231857829582905884114714440341005084796816183388099980562275850586988306840425748215731358596757602488989100422745382289670875541126193807457135147933244432274783292734294414541829889552616305189973977045957817338543306412367956401537240208959167705892489109930751802256953704716479734880259089787293301574171761834770199236681243380145769645438279367856935431789817078877304853835451624321830768170322460581359365749165805116730784592954373430505250039775622870346029736537583431749141221794252438285476712113381311401448960489198352638001567927962153470651508794080335529242277462144863172958361017894008236797552953752346786953822852347227000170894491748788342097045766157865826313096188923897921811027993599096921683373349530987334371756231368676417476047697228828635854288837780260756204425803230994476272430480455380478814941523968942785821109794658921570010751953689681405866349617226805980937223796842562861932421242407435112864933667531081968680180673220708992322986857684953292993281390067462087812717189221779713982354166468621531961342514773146198019817874476147771579648708838389190002753123125945822804391836642494312069854920845177034811365202052449449471371884910940672556561276699767873956524128731186724682430044525656573780357808683197897732992541704135699418642122995743121470313184848626998920643790871578866928273569804616805059912454819961455607498459695773889347135483456096950486772187289681644977602865699603240619029480481130944914401711590802789818775127830201088750383383109017294469457458629939740244735914557549084783142002573362022385126855305917698930155917843849773225649588560999016713556516906612636739872176369343635614630265421371573751798315145350698083653794280063985452421719140028736401651966686728492362884186340961430558299262703139779965558035303303390982920167276856511973846107632457705511039773559462478748038900670722246300870764845376305052197332295216146581454787901898972251511554834613757508860667546977835324288344950472002465704367430861643041048392299054201936367733668946118867799802723851309170336863294531089617172485327827649397672467544878646533123240810272568780784144880382417251246149026354222620571540314699922047680051061177776269993027836658854331804946440226292616792276852597171417582317350252604666135554903531591622713598463491143762246436264658295481698464999456796551097256508393350682184173582839190538282115531083064424465416303236949532441084448620805417389497386656512029411045710653657558302651034738692905135505818021866471956606772234581174880153984504544709794358680473445944362415391789891612155770726810684007043930582225327794840915299431230630626310785021429465615463783763160768209611886279021094321998837320214961336834731230376375923888835872816173781981498475890089395983866849222185111958275113219153877220248169620293160201014702824202264553584543187866459454238210979175281778612481281338074536252979633196379216907264594269254455825711376054857200181423244269205673090064663914400760906679321081803173822676506231829509982160183127643840640137212355294889158257222335309983242262766595762190004796489891822426612232339707768554244309163812622964456064134125373692025397174944219482799850834499478432350994185403544589539614428826796623714383388443094855820903672948146340603028178460618951513451189637866131984113436763306268931978077428512785776270516828569755438529779575984229185997366051479116695193862231660031639582128784570701017147149492165759382806458900609426373469322307543752217156412946105353584380494515560178710066043655052327245281100175762960583496529226773406211231639613381530466614982244515632344186022279254698313731251387407950610523229138631034499908475814196204863436092552194885451740723859342620495769921017696754597422808082629957903350517542723561561674460784090710988495219891907158928456891511506313849068904121406838993102721880334758107970819290600864210928467847049386959771771260523709613539019470565931455683511342569696369176414458789775009267096868657546453199117699723762908254636338348847471660554835332468097972361031235023439443898485273011239862485631240501595046801661223866847084190571528851353582689947957676496935162880917802884332176478171487993907891717203278411210763665377656387826548013318787088367415567387470568132176474643776466430060744950198853381065235266555406245251194942050203000190850675443658263859799203419178382338122063551706127424159505530796234924580070874369953276932719325280101791509251483745264508246923253437768149401746698086797355822487611540190948157867476972421739005905887670740467386794936678970999856845037803738416920691515946030403554111852187559073081535280593324861335582609497938272319732991141007714365397567464190716855525872974145110218570150131382598671967116480653771412376427015181622118868217330434325556332719192652859401440312384357647912290289360529270973701962911493946251519992674205239544470688432765915094472695121210317352237798477832410217821409455117266162815415296562363338495059407858172169837568481551334322973501008944328200302474100224177699843836235502272641722417350464243272717843691297570005147270764862715242931684339627475530329039124880447336359970998560487411173219069970042394046194001015782715927008336411524681683824788551443906010382115530926185025947866275004006342903592752081833559465753356916949739365617188517287260975347905908453293868410513792072226664493982051899330665636549698195632063915520770765705862823865520133404913592418843123407664507275610209160952552426728888339262534429269414902567032650075365903422570289027293504264162299694128224788358888831040397810213593949602507624500956583826625806789876065681095470820606744004305183096889516392947149353678622019286295504249456542164180421287852801800056447540310631652494024692261629583215678964900158550330957426026606336622600346113056616560575541500971969588225399927468076753084023313788491602296554665078192910073773678479895144598949010769211162285455649048717208771032481940134354351050692774869758068996633178007817435359376208782177137409941811207778465346903402185603405987703407521254376111003921168943563915561097962005776997225743892778880765893662309721751976172425081844781695528124351600119279713329231310951312467514548652387751918528809322985529300946423800400820112596824663335239436016195490504754609122834808611194542087952436329130275404252585095345104739093075755380129572605273613814624590489101132432544392270862009534125988792650338749314219140335562068462053714830669045000327227330821051076291215356775105993617513349466954130135183048154168879081526349430760458616390211657659919452403923626481818043244417412595129898873014531575258267780256347686065939865750158210355916775940596567508973245252329916883554529730177443433421994729138503683344872685297572592831033670436325983664409437968842385162213498905505347140280916151289847193893753848374649985562165253443468382216494561507599885628258080859076905591619058906910860616303697755457258737500842672566953718951612292110702674025703635384529835022482007781190364122127583986182593244316350044300737612571294585667022620440262107503748604534411565367787183212330027099906234767566080971146341252861999728750973827406825455571467543479632030364575090383692780912304062214851449901364182991779590033968352805247065012937433017428410895108172981816242765477212131418458209663553449576799813407234877432881829421928727126450901149876707452250318416227067681226573532682949238118342399176066935658675949249529344097313532497398030592433217021575922233312495113736271319244103126842266202377311247856906148978176591974023558068261583952204744127304803684773415652702165233854549920948459553498002015575945578097370527384305285517127529119518828373503062994247216681859187791246148416554888882137430099681798437545465306311674232108563754706652538840681118597318601109364520863728996679997790758060047917657558485008831123606515754777622632982993614177841118190812497056044624301612191498290572636431308247756774680863420882993215078612745525490191573796108657326533984434404101464730589453272367498441600287374687826618181987097172324841080428493891026649035201157283169160503120188225953196991554531917072439724668561751834943639321092888576542894260588376262142813278839585957469206093927055483873367595674017095156526377510204882783079294199384465982998975635990169392431985949020878501238024491896889599050961365202159010622946973666858892878888318667635241498412360515807106726662257863458352657632497101064290265212818640766210236782457603673696868013263805109101942675409556951849336211919954800648163512612572324887777872012152941099014233526150268632253425297992686731426480469263367569790781216389476264196822298939431162063759470388778233432805617390296447122552276684188353569704900662455859493161651103013448946275809999861416198686899409880281995853849079656384370388404544734368400297357207714445859686241834211116633496518738271727308298732767144637812385493398760166470444884996951543568419523347107813267678505950568601274261052830166047076681621143018730379209360735987038655717940159755876112617475309037044778830344671039356267120268021958924535296232099837645299003212539945785345275053003110607449110170251184879819175472047860628084082150829515695478446558354115458191918042053829140695809413331337709411706939628753119387167745939422205543212155767701255452520542833100255407839264430918160537400365753654544444080558971851663830562679404450137647457147013581052141606449036670483263176924070254583041741457395875509653569748245587650744578301781548957413146724474256132882446070367180663162064523643676046899284936252393962453779796292565122687930361924720848081767027469232356013703682758078226745477667952763842131795983593193531211240299583264444186197647623403136867712452517295493533527101862318949489268423728164579064416248401048928160163625546898608269373972302651416887163238824796999703682568308349727388455604052681056853114901046090396690694145013992010245996652592697757887546428917388459401144971727345430673461101193808985302623576778686089269598283354149982480554175556972942252322657808508697009167007490571073369727666811188049038427028589430614133618578024754249743480120996780909064888778848246681242174011433673149623756171428704932309008653959435017818372770729319775568698915650957816974404499535598820774144765971878185180198556091864187932751045554188869672644402863024672587633269564454741240169913126827976292413929400928410441463881034129142505929620730518021346888284840753591852424621723397070424940077993261102790473896318815805686862740427052185729132198384003812255451847933670829382603500188930287474424222011184928457489632973136346603108733395692402173590662269979669303317976643679153166626266743340596620735903059909447935437959154864440573897131290987855219127002509392420126515485836422027826447006277814664704626451985001807275444794894259615979495071270495487296102706131427226548825061700629116803560845197562547780458014426933113568409056094005704812509172850684598295788138416199037192114399478158620698043488465657396784823820401541157163307515523164350107207915707747234700638135822780185259021249617753735476723002868433572739785923133895153592774722145397026136493665664640384105844130061647797525042865384478072145814566380226141056977816380208809470107065950444730472831133882472974829448025054657818469388376289120403298784364130458596436740079470243224048675749159200369582836600232379115172233541724217378247347748687589273851133476355085457962953084424887273153682277116160956942602771621938653203657110352535870033220972468328239490221183511265811892470430626210042724448172224236397467025988246856224110423589363888657215366438226386354088653762694852588194573884507084833294479193897322713358788548856905373149379066626813371490706976196266972823648332129083676732139562502286222296053573194102530110889865996017737656258200169450285736286866468461007105994240848378865313955790478538622136435166642157565481973022168274641313469305047020792856144425948978936345284975115789121272952452680083129987636208738152486356792148725960800925353960845239717730919095300068664480319134931677159952316095938907043606351939181827088055234495897328709269204441124663982399857132848153383961659398964231687468660227726181280419675541511527375476168853544580498615441157605789124732361443457783243822822953314646386940607903114644258506125460134025047990456454677336074176932606881627654863110580994645046231168989546455327597338648754013079065181871562212941015350630666079396000814230514264006030122391167277229848168807687699125547119106907882668763881034153340825219850525126523897876080828081604014771023096624335574976257552138407247174517058272341305588195691650154017890334528781433686394702172566697259737732663580722708628981792010362915672234583102435136906551240119808271819150221288605570654353236763154156227994675320678311441373795561145872631337450398851472299842203044099128070736205855118038038022059404027837870838667370513583009019898928462018819691701659726420639769043151669539486472268106703987763844539761152613079072432849549696349971898117345177628058911561507461433379938179559177663965709755966424244395310952457225983464777203346758808797629991954053362535620852614340761837083114069206485920338687716740904336928127217988512362525208850642988315868659203183816796715145912594772758386128979572555680473939900490693988209190415428075156173064958132278738103544207380739724439902248788620548016649253280205022367914490252986159233588984468828942368746809071804633117060762370998469065485677505245673491179737101933911408501829845834061774369055360191738664268217250189648512109351707463234511016766550842378639428004803679880192073193121104151309623622455450982362185012973617153005503754587213682287690625015651069994388826918374952208515594041329328137996947902300838535161242081492026777045818664933477028357349412246801873467015642022439871428236107710878649919394195466480834836084868272315165952056806059959277804431506902719590358191035652782404491071855411385159839867962421536434666662774864246963208619352140477853544022627107629828926837435713275473354830716541280005145464226830484006264832196209702522723552137789241952490556804389313055339725178969675058739932781566319693334793841364880947627476709635089797471709206206742887001884114180641198111122099263608635652918765199755963417371981642332785438775147306042041464867726178902338412291577841217040218113996563213209037999875469690651845135435865800705588997948105970557652672520266237552139277598653773657355150856769724916660427975719260088673142048510437919541679738128969671856033047753111509364725148235416217499277072011682280891756782406108027345506564286107933159588728569055155105927193118289693994497699539757068196067290897964523233853496785542791872376281979526423547221213717085944263873682987525813815605834344554093484496011182299994616008956379489055664885172138247889958102577630274863087172091963366296113997866057824875205190423496950377541759339202889654086488180314105953010025247248927570495305732438560158553318235882842620774064910465134527291944818625358494438812262507558315057566646938011471931193872650018737458719110582155199294543650654170920024513002483146434525255931060304015200586781132669883200905320194160271754683854491509570236263127996506244267312506286517025887117501087439926941421040058370103835432290083393587697358438944607876903873242135346348627227357484081712411141587755794222957924337543007493899865012942533700342312887334096214146803492632482665864703723763413529638128131757372462969701321598640199365123332444294448405701086244833704436895439022042801984072407495657080445519614352613227915514291461215902491630000645386028396597838839309493789183670418332297781743996442673616315183502201559371927524947678330024886678506120097219414712336047582868317443742464711878078442082918154916639672075660284135095335878646577055101274347667674518616714562537505928117812964799537572007406760970002813431808412949552761763801997898528213708720380403769140558036247584896165716955873504812351660581711906075311699846550959604566813739479807126633391211902014886959113582667496880482459037636672140438482316085699326814427645493068335228715609038251890503055646958236836673668925210135380956926394202457433899265681756041123092796556013489194338018220894918128839444333425517396087828711248412471819541521432423431948837956713058337915928643387961437743831523516003312398579812452338286447662314575143858151895565916569873654574238390263145589849981111534772442508566482679529345815503273893853825958221129631406829293279635971986246605811640059156105822071336924601999461132466701577125923850860429374610031763743897600159832365054569417851388613810977459289213911871962870673153475713142407448043443068788882089887670320719237857982234997242718919921157636309656111664434593940560422531730838164355866316524434776250333294996174493848284254315897496093313680803023817895089492325853346803046768447740650712473247531166076091328888598442302529279287406193735677819026535720633623955560819187976657006341594428786113245385269349263141840976884874598007331323958007344809373185923030501434770585783680771949148724141520295729215971812664359289840885373123680619042483337555242334110187112972551211767374013295142643223607864154654199601737201604429831418594213599678100430374508654958496216228869853458522661428095023839302072773230751136200124256741169506212733468886574396910596896168076104515342692066204039913937675562681980233118919778030210324472016157552645634675058402875786312592166920006136442739890346333045608411820202204199965993439604702332571820523255455144825213934222319178754055611176991586458063320532275481614610336929062116171004016721898232476387186888264540120553598849192663467631433560966176615834795371521243897270222920829346334795759918760522521645641388914635415994288864252850769248914507980663709274951395341585472747673642055633372174850320054271951318791860901659626881059718501530318612131094328373545961303298829859205138653697463117601527697754465597275685145816463128368154252251077515785595686341706179749517647734079148931440524826603087417762943915710209131125014671096134789205153901889880776065838158479639922625951507883382085686287647837123413959364321393038962742374637871797068960629326174796289084491466635245720160240890881382297097041412865834182599398037885466785753404682929228225393623598354950767831440468795066317050017478461645775015403962187073783997751102734585531780121979490460008087648970990286299837871786781720062174386991563377478203687130946011050472884293059376590523752899987068193461808951190252332323052570103112293671305697222085672756074081414693042067918593660592064574343172916544929225448544709275251509717641436908288215693319098836584034396484322405145080736315126875052503910523421874733916621414302778937107262700143917284569753922204888165961684016544938508889846357877445634701205661099458579213461190531624787899194779325085332925866669952125099387196864850437025233732861022037713807262689332870595151302194314681215859276600524066490891109501213766150963288978757839158740269571808666311182660895318501807379659542056721136502628386917477449595749886974697521242092178501636238908732449603360464158951461393784595166930769498890508182858127482816392706354659182762925430139907142280818449943234320666989963880808156719251790576529322973098046375050664594754410767063092554038411669896270222410951900634350684827979508461380214205032199514674526132828681063053648436862982899432853181495338811767006670920765633055202295888173629711423416345770769985205230968150346466676591947975954721356292435638340355033095833575866182519402470719867926919629342806402452371690528766698922019492609844420551811574691000659982951131922745489287193092775004142868355254372794439500198397932142110953330927661548100650994546143819052295975603796603778803673443732945429021151129940210574762048232794613986296350165309529095773234987961501160177655545281034993513223049349382619271591549179103330184016077204660117021052506292961582075191742172429333761122306676837968700601477112557942976922463819869995456507435039447154631562224619226937794131259284475866250079677842478935168738311931249312028075493455665164242431332758070497005550639301340050334687099902694950626560152906154085298629350485547870185178609486288773209987525243413992051969667949246031697111217261266617322829597609771681066077588187573019611648707794670148436044414705443421184966549218191694439680525812302633583245055549707108462701483734685372625849799268326391470918275437451057841642387132224427931167901140442427072707489967992381474765990077540270828501015504913589935190538592018531057594223211496712954791603378516106578846147808719089215019699358302705337601319209161189254549325939005739309729056993222456135354907396511615691540968451298914680989085951716970550495559964640933957014887934407428765373436317742758388976634612411117019384492386612802084325367605098667063125071562438548265044131262777994511705573919524490881499796773876171144048148433304994978832798594092811153870131952587842016489262171845944805916378950768062685660662359879580432787578953409128169302697646270575235944038620993427788417054016904322309585700896414389637813251379653627486198550776214780199643860692761741839873447436029315866879656343851606169122434022245668024648600782167963441819488414156433484213417680151175092493389469777354286682916070888995446006907989731026813798608527652854940099485003511309985056233589948112450023631127881004690722588357110140557780957919887703410304937245724499737918133863091010160819458617212818152742421283961413596151323028629724638668514576015419514946418096115794045150070383917306953882500289289465121426340377588950680982218539724696888212695650229895403013888768256428382370456154251392555104008100519528778716049158964796584399010701250446271017935049014920415308691901241693474071844642792598063274517821569671995256417215436396096257160867929063533331883401465568475950064067792816654213787121869606363177223263227664316484923085921179584326646934975831156082722346259682376125076250168332275517851107932941609856241343436805358821737457266039206518602291852096539308315481678900934768155598240202740943851581999864660128113840126777279895744079916955275378564592905055355779131793495351710639743981112624259093281490754440367595845764483095371412088897156383356422208719912148310431359958069098238952518788949938920605992551294311438861084488947692956870813568884456815728753166123638670041271184366664389887801167935172219676386283776968033874122498785082372499286426751719035262274209816424322913790705073035703397654529700832330129210139194066050834538902854435131866477355622167797264596039446458716073731260425263414658288483205884626323949438037989414518476517252222032257329966946255012803704543931828157347254352887789955389565584170000670250106927726151968614752200143688293157024565962651882788306562256207497756943199088903911011818716647019815093119797151456429069940772774267434174920217728075615769607171518064162025006720392318857008186718984700872653690395111108127558218703438202126686896733053457709396462976376128975123698126980919456560450783492475716075122139436297159522831215766903481437955053070010331963521200639993411809830545902125700465534854931875819474427493099569440934696293868175716919431096461796532760319089577311664876088625306027536309318222290679182499968506953160489677611806230404756320902598181496689143339442754696886419777923562991398877291352342278959974155198238519820574917528468341877797658240369414714185543950348158275228065224765619155704812449715672601823360334407638027277429558326276252450987087134823665948624972973984556650270311776197568171725763597246709600729793072456337901463474871300766541081858851166888030559308687918410378293377795597060037531101200650297031884186043955731985212907191214708302031852360601812832238778001559171566295269462982178731970761776256825375133202840545390115278170171204697530568878040479822456903552866387934675156097584824817266605447233369910572765604945724709410761301877090064109636506179117521362086401405885317357876679515048577833650342544236374277307211377306172186676774079598472388128103839665794899875271376710699167722353442826458133983075123110255863079200575824961172875871952392476792402670206222567473718408349984648017108732967410565202336695258590960348038859091266396893604918440892326633843816250087063632766096335507589693053383903942239125658035579003675192157850720693783053826953287476715934729982494604209671060425788225665603510538021470866118978394717070667361596782487222457745724095734927559745434138046176302986928508857809903529791645827957686371978412835272380395977768654658891590168214496021252158358231487737435328184802455499762347206716115213929348338733648532135642732019047914979703821088967506329119842698818140920808315891812785694475519787819693901496115518378818133858894953909156688808712024413710731554235120543131575107220898307581879297342866889727255024226419725932272300930887845004399270261069882262736824352509392039965937790824369159717247672020038017812423599965789825001473648212925312513173320177281645169424995420354190799872524471689714948978961047119176673054418509784412529866571097948304448113520577534747018430337152904628268377913179238563935960915938861262968498218280882216097638943363433462344261833243680174576152272599195737704424799005216963501356806862756501919534751707926156586930297131983965618861418927881349062934198418668668559731099943422513026976007187181591430040059030137872726277095986123176082932968884668285249370996599773061464762478727232839071777416976818149284939224948142287505567503604270106284621059245664016072770969941986485564207489806965769272838023791319572196809989140709107809425650232366300031431155095096453575149511279902649034059861877659833876515129283744639308261484151119498281795004648648796743358242861550949895076088838353414811305669756347326206989423786972108235078880937060742601157820465528641303210195848655585316893928164959336069962482573175531572235339527768850047115667022815964060443206502424417339266135070326130723053864642204003326158125167825918268745601866399339458183606933085368581694605325498145157083458497230901897537421556862157511889072896902893962267813253846372939704002256126812673677077119783218049868835506250266224342024605685287075328840192296800588167569453248081050758069059029734196627985691625528189378928568155774360474520248761494057875999595239841605289675818507435397192262376947612458553167665726695786868547061312898187782235824538918806482338677950574573542018170602181216918678692740278066214402642724053898834419693325395421644767036372103190876656473958019715243290899831792297651325555574994445961997167137832217680216657414773432625016289560926117020073064000238832030757555998905298427393935737686098221886036295397471474874786061307090077639216368051680949700973372509639523909102463454421060930942823344197187792929992642225073492359984229108880945336687916986835879048934666634401384620870075840595302568753008620507948052733047019838310160926936016623631793918541671322733008218596798091005819796211080653482989186830882986924906794753230076250814209187172779590539432742504643083723202096802125827957050079883110655412858214949381912510301652995578054016444794545745675613965659815434040478545543138207918958615145139010752860501697899289911022710884130854098316688058183428570208345235373033875234376902589350534738066603650403442498195529208931106640947674374017540701543358496144806243513942999863357071894609177878049115336651423582093797298280348849005356464016387503227356743877782258329297966299172087833506396550408563650547210829488098069835357398710941503523138527710583232025432661087658331452609581609590008272697663560896454119661532547851787926039649051058495055165822431925442764398467456600827058177320196774425296599668630822401948669498976934623832047829749449887068437246917784014998085340410161895688479962934258816062700037663660556124017229759407267247746448582197732643085881032493478545067244888068231398375495464285138588063101851186753249278536595833397889082319762819845459838790995313489423455027806265832182824852690763078473312706686375865445710034170326420770210853166103161339816144145676479056643576611598889164110191630099693356968909097411575572579786915155407789082622578208907658507711238919838421097487664431340573358449044551240579351787275410469860043211475636684887028820846805815632022562806082382384614223224612412400794444027014440827432234563530532731915415602670772344434409732267267904613735542363206681039346569836579127806869760112363944839963068901396697842568386886925726726561218250098739853071037766383129507783184945530632935116160796684509933052178416947429631253005034095828291282395712086780794948341188996959614841947672456206579525342002827550605842078694712192403291118933686512703451012157542919861537929081274799146297686888856314700078133245535542163727731216026740416211747553739621628043222013897706197145953593807665554034843122578935263117412348998177240939823600584179388662928809270544506893146503070108788853723950256014727942473444945718703211617599701755467623505531504250896811198636179240910545842726279522925982685324320915318106154902030474396927081736451319505930363963946414933203176641145219448919977538549235401073828170123619172342685045345360553442892310304558664179905230884406404561492235307362522476555155073646817855256848647286908562244486295307359033773551345418392395105224199791611259693052632686466999573722031095776069282137916156274659101862321062639488311832305737233416627261505904363735820733197898700418694246482615805112505070930181398282530285353983485251708358524359452897820926723090024058665444703542367166131979161426738913771094419258414466090051968011078058266855364367944813759970041133251922692516483619887196728357899551543060324026110807082541296684787923937762147566762613322134125108127379528601114157197265840442442353885997596818219023803579923378455601533212605522186997441611067110117606693092406863241116899771746990674196870522108374815834941777129091588292804755351009315779142129006168577718814081919462936240104156130930931408293529666594997141613671936586392103560233992621772442098446011963813658404935201205101156687207440368732380941910622505070842272885962331593096558821559617639799865761422083462865169184834736386103038451407895243875403991724097699052554356014205803439040474391779489995872702982695498081929575968123623662989931982439671533506680163061270044889531424391916841891313765602765923008023525412350886153870661844436554166543277845821181129332704615487037487399584501485918776981583590050174416985176200701716897320798619491497005648796925935699427179743756524027266426618075651530023963324947944721042579976033989448097307692965231985242947698723701386439822782344318571105833444575848262871262181853871577582624133472198917715521306048939085337975884098213532438555314418895572727873670018902910144491186967748095166073070414555969208674495464781079171023505408501243682507063246895801527959935128893606135779418001064631401646195255180779853441968545064459547659407025283268027806656906067057775698949064692277489166941870694259058525118058330874331696152268721340013225899644748287044140411786373613195648987945731292908798365083401559744096742941432814382087847571341361704477828249148102637838874976081743568361777432886787710860953948313845795790988313715028655114820550829244393578076620730716882275016539426549650691141257086336667394779783619049372468001876797876467985521469651722957926766336927638231095301479138525978200129219728828703531817853221067957430172391304003665703648010139917015324807936187812503395562025164848457140869777828394740287336076258872355429387946679633808417738359131026053801197001451403500086978687872716955221245419651521178347469289439165957546226276078049534200377122709141765547716049849614917543570988306055372524940505663156024222432352400776607333252629221486241287607079745310841312645426919799213888947349372339943949284208770765326598982166552397320628673892125403795849329390396322780027608563986724876110520499570930710062998768579470208178991161855086386410428864471771118571778011732183805220226096717164132573248986611917067302082428015767044517320424416469111762206199063191344864404871087626044556351477822103917784691955162867791238453971910530274151668785962008256184841801788096167990229980937920676929512355644204143572597177284463161837982122066306897395318906027072890379915156853119022775129215844461386301189659874357080652934701759563183727007225831689177298191216563145615475366497111026010343861783321591894950213326788704569639360798037774636903949446510044480025544718533158740022833487450810491298664519025192633912343415080068231743242566327035320912695765694119049748086674882224452469971181031760939504477852831446380613099634360350239498059137334310447092025508178617037786113448404553928079356283537917793787565382872753610873365695684863816694288361584135672428820004191666710178844557937731902846645115500750479290100684803738944159781193773202718351312371961383793210338924959702219863261420649930165185174629041182599205659955701315235496356881518037028216345100509104321188306543307409199539955407636110279100812560833702867337937446427922809815987181556493071987392304973307428791723223902466587319872088501281780521130229999160760505053462582418911695838912357845898637834545003853413156702819636170512717981253778567388999655389543402824710518157828355520724416862373244369456011040341368358405249282061969353720794878162307446984252957025551698433461470312013219588965852805751668318681895302911560033155523390019963071588026354506171846271104705029891706400889080092769513518983137234843241736522008284045550881932821717557470865201288691764896098444042238284669820738986505529141600904143295758121390000870218259690615854573543007194193043472883155678724024865728355539387851958447230874338263950660289831099587144859764346575238952881849668246911876429325943614442644765989696085529926431433207385381189438567471432020684138535462191179567175978546779768799459634305727523536203852409783475931032427138947913101799102329596699418986061663294518585424795172198475077031859619617072066929705578563264962900210217231964158679472264408171556298444808462346822596482362550351519626913336438155757746781049013682439811051403343494185793229348912514074497174306814404127508155096990340471909689642814544484760535626822701985592329009661030596142041724004552234559925669154076772850466442360333522297529854861542084878522602307862975999065377817147902428386720168730744568776182875716106162949542346287447623610063610904984064346473725968468611173332927175744378154658873638839328903351938532868685984002456086641773600355904989700411886577304182138767870045008867165037677880239050646699431069236248596640218261929786829295387593229167343086200409390571951504429617308276530310615877693112125696875393182651188943591307850941938068090886298020125834041870060623210750697970726394573709044079158110470437572913326140962184277028875788325702350723693748658088343315944589413877624449761501781064625525215694540563780373820673945116898467319227858342324763739307240687153827001359829771641823421000123237614868569301684659756243422121701319594068663436982911523648898147452334138984735849860760379110669173211152287436799302005025773914446609946101828357534034285392249881075289595354054350141946585447461873285175421229119264037979454190780520919887375022555695027139652288969465402933603240349557968791317808396272387104062723054576695019809370287633771881724498589218555586095926083510324510691657869128957821894996688500785147812810776393094344033467780154315407877553018034629867530230732975583473355416322055156542780043861759342397658670655860203020738464866085188642406443704964362662147352317883981049121842300050192360513248885466679306940220150840680221541918279445472656267304621701064622239169258158781264552876592507764143585606288935119275961097486602501417764034895970654734863706506382406493790252353746579024597195917110873752286777627577570588053208250844765409235484295067555278566913478321585966256238941873624365745812796605970111877087119910636645146626095934229264057669882347669261468719238329419854366903197867161535483740710148907871359485771854504241706338541876967387856384727386836424361906826002117905533519895455292334139397912102637850654232391971877631314468078636865025922695327370806292359173210127269467239038725076041033186071754147034439857338584552032315215333017254391178071972089729980521278302970225921398483789261012939951557527333219661632776282558744791912492577081657194045941291241210521789422996378236482711279386290629326932015981300044353470575746402529200667835225326346300507226055113287544202170671713807528177697899738871643956959787542883074076724985618102287835714311414206508358720566343891856107094364261469481820587588497855460521257479883590962583181276486404777710569707363638903513913977034064128955303818063874454161577092164729231643952175067478019711650226705227627866199707857821415325726008398791177589995394535860900420735140747831086725093331876987448234177692810475528436595556722897872084085683857639964009558072839285457808396210719132682661054921590728822947237190329196459144969380551671396590625325365450590054505865166689924370475656688421597660481600048149978568664442845687646590307189544001300884498847289658350791720877814124929114027188050721004481325694601999342979782301805738155349369852392794259485327675037921457720637325553162529355919810726979356925554990480561597435736625657978163956746213381607766806918576793366977386021827413949797450999702974823405156306449849590803004984560893135140743795465626102904974529442189527565005333499399248006181429273355950511939574533430706893322186538200054203546148428729150123545242866625755365219236410423980375265063120389081956415704725854943864628235634167072449193983364664957382035185249710063181479538675283368651947155986282856364024946374682570180802994102223037804821773617476795770115969307279825734408696155106073762011683414967076093344448066266797133805668858859357502094978354559659709842849450408571948824511804757854942771233275303361264444242425295234167368190464431949080579030156822835476814129127888391154447439301832712002478390382225266517845529773133188234464772158587667541935395831459605250246263527361001125278121941525709075216560432719367600943244156330578067850857654128903354946463713147135741487563810825577957047734781808001005760130008595199585809672206222673532415226182452932790475514404729270733428472398944448867909260749733593116774054787634229473395460650237376300358568409963095815206869848830479966568414615972467996440362673651475747182420707567076600810764217404506746349301636045443358595604939766760560892488750733549506968519858738399753428825377747293758602280081339369921566575604860407529631900691968409796830808343998891688879559937451262157774391601922948168550138097672977651183247698660568892945357799888408718881841136938887354015451664506859627262082302483053646526156164828391520276022394031554935077511962671079059974474520448028934953309263556849063584576138990939394282210810556501168790762163529008054153854360158180199373092267951884207652677279349016744113337104933728136657935785471927872048135290528610302229183044882206760562446544089211150512493109535704798413569416198453152953272575495657045296825588859300040743723687894248912574293528899949462082474272813301676884304269544155421156465932538624481339796049710858926824218567563883627629793114110636460047010973804872839373597741489145078807633396017834298171840437031901150147558002534476089792173153161236152258572407868633923048217777679808522790680524261758122970937438114143204463800731878076886937461644530066731192506155300179084616696926234013143213806351453876987555300147134587062257259107642374468878342827646675646429121251483210771604012577183721588281598199807260654357525770973699457500042604948469832469691720127787529873074030389235985514957423348478275273362645113212054623573823507066483276099913924377447567119901935009150305331765292473206301854689058420910160729088032669542051906099117154981069512659586428381961104265341968786458248481430951274224466183524044438145727265937535725586770953515865191251676680644309209900489133533725413555198475494067771212669122210462856365510387147625492185953299448526106533615903524103828548488708865634862722497825323649874631919914447760273823279380356314465044191038139696592656189269965326427351558638733846289707851228506111270176034930129595544956126220703348112736471737316330852088531362263096616759302385893387003531499618155748133440902369766779187822735250403204257112844311645672361787805144510468719862996524765415275840429483244779172510539154912151241617068428303140347943412999148555128634531406104161169597411540112017998691770800077777943173205437266778189313168578323688328211363826973219084757627289330036476095279962760683071564846365258076101417987235804265839625443980863371765589148272389054396075235623878535239787290368462775962810430125678021093110504801351643724730812797986025753902865030668356316514118635101805592931458372964441290418837660765607090598422670932554208012950883322580818022636924819305049366234043822974443328494436593639708088317548572510377297939011902981713261366768858377078118930624928246350019606060929088713970903348291689849036185274068718216199451113976101076258303748580003968754352747266710285273770694888751266485708706149829039646131991497889278395313008667799822556581077767279677989539185479199255415595962622399178053903523957467004760956073149526346172469991103784353289431273922787182017841630473805426593075167757656971967315227050828567832477811136402995328992123555132661374600296711114056932807267107283160018477593884314806636327624050210281894729544345049162801267803827981533834046021085450286299005099298346794177609971820180823920022401075056450682696703013703113418987351482902311719725436283054152637896287808999355022099938371310888189150180112147964704350629835928514463815116248418495401737072145700474485879477532719680059975290939435939481525493592237313028242223023885811145963409330067044799163621851721724402453492121705692862503836497732702556625144011896602334062090966636418563996018366574132325047100979279561195691003481443012998046551092590513375270437230109365432503801241129852579815596062791730342605986232443627236017601512809646569566936650964830928321936258173960192617608776878026593417033286010862656137209616030594528435575540342265456095209918435936190515271224733749454366553531908091333588838391364914158341825981994438798170180454492321017481056748023967795505163713280977824594000274703029623525677180645476651155069556734190640050692522681058813409681637706422480094716715083368420257023790561936731904322347768513932567258607344214943417361349134918863338594633850061882522356106508366149257985031997539816746374780506289742283016704449180378076394117139222696506276432454527791043121435861286913249658234797950958653383383300725032442807605405383652404888368634163708348744743538865736751221148948604110705805846239333568779524917811626360270821171386094481032641712703493805485736267665697562438580827754404305706884118603767987126055716061465322630024428708655878070770128969459341522721714262536441078212288773175885941793095381453544997798359669068085108597970507032444946938975356559345192852904933754618956159241188097835761378480063516553777480209793968918101650482406309783096002439655489661145756844086692399885932848852236457371436559648019300363460776732793558803602200843194151192422814119156865092141426351650779989526114586811504308786850648190540152955268383827778994080739364183478541655098503224979659492049330441120342478114569917943839372122111089342006432408155829234095086728538065233462917869767788910039551348806882644690064468943712946033264977002713879381124119761602755472354047326107100088167958402036548568239631034382027305158358466446172571108303204131677583976590701947926630942596613815136932021202290745404406751556956571253766424358315502062264301180840316603629450914082463702366505824531192848889258118612567977619367160045561020893319604849048640252606387667238616597072029570171770671632270863255163332197773060087367336197820113359113990956065180417893522765556170344197336008490725747050334831240881240941493458390628609017969334037043055111009173112567522904235915528842502901964119053203530091594194826626656035740888451226199123290935029690405109973433792927689839387902247197807604549373496724302873776756528654817972721600316207439900932120801491110032603983881215927258504963198518901376769399813249145475928556566099752772105534791297126685994500254989710800709939517558508584934016963311586840148321218133226463365401686605886260235458284444899069787633548468815940994057392290638111854380566858660041753824373821095470850707339935544958408491752473263286780801798369698628320777924301655035625105019624273162641735456923757980486430003486731410852398774142569035032488536485716838080983814857024962447257868555828853204829180012039417811630120952789432394217222132514215134219971129389113758881200423498224739593221326999686133416024179021735203352840708291405053498513908380071217427085581709409028058037558821386668648039617069673971606406195695074030584209962667439229425041849081540963752993540954481528493318272264638949335658369839738986557570288773836063136571844370615014005360992565546866963668653323055142555609680070934930865040632534074550565416231710200849000399818236366889810401012262828153340329690002749835929395009450209152731262198321562712806702600328186581676459019390048631566923145617155366395950800092268126424929034396824129153654576771946851294606373230980204265286560316967216563873167585147934143796953070887003226759849697621726576109963541906319480325584911360253343752657148909839856226765403753744749719065494293401236337193746719161385406665076984498623729421109805030010412856674725765062657600886068270866930329135696063779987301960209713612089940717805643223897525371893395659705898054145234044150835508409559146004673921919752518665801251428724095977516128059890896602136136803605991125990375365525013892843899936223433418085934704672414279331862364289441202430612955412616796842802756670355087151444744606361702360907327894784475804135104310145066515122281531729137777666457101359137812540161524878801803136657733483220725982516295953070843930202968469114935549600715552371061705606577176453278022073588856436750616330689214468279220923220651813825438365655033396519263503026457376763244486483698377318591003774637528042524338728766634035204075243501886932306591065724706377554050462899577061478214057791324384842069869019650303020011647967782881107290513299987565215303645484913702259438196419659468690278410123281816745165769327338487049654336147826340130640467681815502330218318642034718016391304792127995580487863680096460303109783355686136933871108845224456243681375050183674276752955644889300177653285563040810854765492445182018087205074917272706449986771417765968144222326340750663102409019941289145498240800922184779281043224665608501509610838217786923364029995142440042289275945799180680280694849537712452087196834614258611431362611512779418893703221210872425368921844753905378753193957972622314352015775905395715202298952583737431355042393104831376794209896014320578190193713701881474450075266564693893210455627065226238227044822010478703828167038159055284740935525346281538358925988190227975003962621176523090664538039635149588105769238693659316236235699019640421187290778166146190962234659347641107913411102356234560075208088425419422105569514626513647100240539110235021459076683670060261281482275302066481756515136404558772051459288370832067747935501297937783167922346915256809031973038222354119509854218678121609977226672169778685595066105798442421871239008189124694224533903607944329305773773657106735719317870698112191942508158590021005861038956360596903934351330223145613297160447683258842833859939290094301013143779928332496737226734571291152553644092086815863157885214613654366776596471447520489314092496261732763964563684251936641436468968631704151750721597509880840882464209698523128402246743133968038627987217306932457311714078395946766090064877245706258743939344276054864757352672388560428893444523088206201981384262280091822710666316882948951227421806183042354449574357913332466647795684870723026256016614943779696518142106821418047171234710651986556978060439787284941742439594304391126609975872960193181185887260544613858026408434465717169468383766526482235451192037169024948733948765411791015090481270854770330185494183219781215928171986029960531345040350984363000604118404923650141946972620026671559814210396484838011784330121467154717792484681503214485748055475112016265171074511629637264700102342985148856813092900339012507869594918432358661118011214400432412039652164303181853884796707004555220600289262333056787665868473219447612864356452376307356727392197082733642188278961877867992485954481892091781400554153293473364147983786743685107891043798975641340354867543426429471056841797825896061301188851991343166558381609703846859272355863348809825811647430783780928567139406669250833774151943037185158280501022743468594557317444628825639730907046301945812389838643899075731047118074269315144251088527773939643029808966382505662695850243065832793489710755618241995654654237596256324011626390286074182013446615991487780786298011323236058309683573767382434110887715514138301702585374741225701410266089102130623170411420057457334295956497858706936669043538092664950739769981717623283505700838276702440368928627007372592017367577024001740841598153649853621444262798205112408966422247607957038319732076637435834581292554406691771847749727893518381190844151592711256318641864696628547766296149681724272308603685282552573185008557591657800812976658340358405524370066217170022020125059714237267856277642670743230229432011149598656450554490385915291821872418198369095994318810016708697918506921218930875071675098845641580384871209268155760142522689169275385023324502779736153962823057616870983403567743111119069032554669642228646241776961029872794982390922722811046017194061090510972964571166234792971571723688285895107644894630068193083160427275362111600898501095598186981357670861775633608521827198991637920469930407441361370487222724765042597387369765794278011120075756164297654636211530320204697488833903868331244205932480560379545551032877283763231762286693062374994588696982121031014680880595441641484514776751515728992903362747510252286984745426267706377708662096462062597745219779527705965075234768382181614732178854997747345317066485652184253241658414102442076433962980721476449653999120089577006984093296838820847144863307068917562810599617196690903415039430307939002197559733065778607508871063980221286962789392272294166533439163099907577519781651475206233692381676133253660479159962841191309004023539945023974518604744783706705811464770232120883101878671659191880514444867819980687132373286136578351338801598275215392956707653996947799254854583306871152511763974105360076557967847254685028891707571901182845681017645324671294695219136667590965236153070860884516800673522187230512464873414169638795646484124082603793476297566857546568767842381487763070055208657499874660690627289527885081098949836385584365738722598229670170182355371048657757204457468171490123589181185638467776263524521149313278896851252623178763465035785766981312846469169405269505672326270749325660479914010492354234407581927036116195238157339364908462280689913687951789946906118872112147656474311358557805871070349304669231974794638979854197948307480332155913309958439310042722456432509564995168784347605085928307470514309691713255924732602965064702233597520366584004095947591573237156970284728489273934378146986350519572892936156683177172835724277863080772686618598975986703190044822774036228408273955394013780197735774510624396071981025976246503069619751435522158502641472298973340030209675844326652904311609420823138241280606679247208915285698622882418977867568934785446260238386556001756952291457092731136707925012181340677467705018019705512503886593971691913365945456092589556212421582912178337575450018358554427809281464571636648223858521717678825737999431931117258413602776954867515633162517248903268679123928444666595399982122259414298417637027915528289691383010870380891326967727604877817706093013740219040635621977998711293341922478886478805150291652587903425680963478083510737052336641028336655256644150332817288805515823927812673638544367618731610460504782419517547704559763359638167644637873517667427284955661826690434212325171382779187607533344362926147352605077542869771259386592397300573659856554236832474659015142342894432227861445450363765601106552393214445424129934707690162814815827824772575576421724334983503411550765689875323239295300577858790685619813559509339928044217966374300210214955003661308800233762088310199010593992501489474338431171122807490907041024709367502683762655435665000952923398257836575200833456335663854851502628096336314694910162710414264750744463660695737968818006511777092672102882885504035511872174607003445489002557924970943795121770019964205423804901115193057036985027986373379516376417709050759434698781665092340281749642432523032122376699656889772910287368358976297395218229802951811745251770680686959797145564808333342054550500109295630981115812270995501142010134208750732506644491605827453163109079379648325724234179779534103018901374313421259393938358623232190010310539808495403016704061177697587375469252184584080752914425774401239442706959868837933395228427296490652467573056260233442358991291617808505660960629299694936035032674306580172514143970084960873723602676639771483799804053029497187039792938352263882760193545919247580273324000770258211336821159309178584118146353878140071194358716664416809147995547059585051447151004016685701767545411620518666828943907274793186449693398944668120631265178483707573619714807726481716692179383847461240890080930181824628033653383731686872935393098146110628708272420198662275184415696608312503396716509243806746418945697256664859177390617437776719932003829344491746576838609763304688590481184407316050515916884123992408849674656788745455392959811557783361931774984151257613366365246879870200751570483657751920364647506363248273582140635784480836781724962011733586398137797136352951801290880155560842019072277533316635673376243750332344925143578062103358848633389986517680620472329435995388074103582199663452574313404398580474245958980814870594549558129432077900701331630058481940202228652928126115465710754493715937628305444329400445862939815346121595458262761275247972311401180321676031818885902591663705256557624969399327317086575189105549908890654627005838466376166374582192922057806779896567520338779765436124143019397496475057908768305982584390100672082160869498866188301176214538482460060737467302762629663208924593043741527345133613276060959060354743454274968700498695089461293808190338595730886311198250700684854757409293997951405080312692257080884620728951513787740050502997586129482860528767146652771120705321305902675289122191745546172911523720236667277002962859187374418300404920623102067709450157509288282640553094881342298290782465692829024736478538987767647317714055015593047965740677870372866370764684264900554627749351112002201786531433884810591546733081741739539778479168408929140369965618507555839030966148429213840322690892509831383301945441690836812053784477163429107060346595805918264778820057977069378474551509970450524989440279075531247075416813224573947710077552756931298983587594508207152784606444013623060838757889106981364478892911547879092638808435879720114681926001115902298083532577438155255246799689112977525165254530002256242741769427645655948701218026583140880187393110227529769095872062677995069590989365740032141523847519411363050232217579706022072553668818218934538275296484456943432478106755059530169946830534583075411997950696166451736569389965647072467101573067644028778223313554346139216313964280413909412114053193276700878944194066036962383745625244748289154955799212379972177060542836518712948097065286067217445730508834242228849818907757716994541847055407484721058503916291253994326863370497764100542423332143925031612820583469315475734221558473526184047686763648588003804834966086652158800691836905975141389539808325276878565534802907599265798917286773326958844810220286833040986914062343494165962258980073992579232104845468390878927247378322196149231668113866581480023976707802415826144024868973516744690628377841803182755512830352924832207460866404599415018654885762543347932231408927845984412675908389060015573034396885946347675152183860587867179151844945575424548550359363924132474467792429385992233134918529775932664157889796502795792052344364408435297348748681284778705489850733259648640624111535111750251761338842445678776228337081583698233395367797536979141703555933505178153878676329758492947884448251802254635816702006284579365081573368489940031726741314691888465859446020713406054456041007368437525556994531400173785609414527555578472030464380836476756434677757999345166895073252055314308130893922731800265920035247392767854800818366078867781658404812525249369421438705597829272472942170790330937892947778877999676371598639539644674274124871434154415617954608633803145270718027364154338900777124932021148942663346146798618917892330294117115106676770699033375284836960007030619387912722641653110758302045668954709016866656991601743129378796518029772258941659790641406951673275342413199306355753124996709295134891459756694355533720139927724539143050372194193031178163920165654455072933415609406787813751988932454922288501076410361740841250994839359138904814284973812419910449940398512750258153644424938507354229708697261812231281488501432008233739343423820015161493492927849664440918150263328152612769515968364913836885110131147678799503753100987740144666659212798671600525287243232626669763263448537642348967602005134425186600026963487760541669136972444048910741783219971046458150899420664637977495577679235321260523698634457228460800730058507277580257537961896170418122919937193408400582963317631792276202440811892570578277122444870957792233296166194792609820427607989376872087899973655566950972883906441489313549827408961087919510435927475012371337660320196081914952018847123528807520120709766873027075187488941402479549027280591857654350988197457635498882514784701126554999759194708049329838844563217074275622357242182176421894206413934787498106535451115326244703283377053526610179326759363301319784375871329719785302103863988465938747488387186150444215001790844589357677461771217722410393958334845164558955036398816810618825314278205274238858555294912654744510224301539275031491153351438921219619849120218096877150969846341146235229885821301852589066185129485364944114235260729057723871121437156418100620402432993659276916633632234610935351218178727810826180764545698998024265650611627247428273777867186819628566491716900662621575627294633378525227529139687815098189568231139366076234846330690876913837764340991589491266515225432417698365336773126408144561693180551915986616798314761304101070594247377495493960721486609802315664933395748367266446059701290238824447242623244041130584746247484971518944185147952321249689014781188465518210315366920952454526465879734414610205175584513326085376786174736476882417546044517829080942464073813258919806907977563887133848393568663092492893762450887734987587690926748126365696344959546540252933292731363347378150755822410489573897219029520347462657980953761634025791824566503300271806145189729081162458457595266060209052737187003506463147630067034380570311085833461586685422208516797030495642834718686180597485124313550693058314109675766825081882336285165905991446739412854174808200202165922232789502236019376376532932595012518867565450628602228818100524923956360747791894487326546258348547349342600144377525874708767739806138064318531679664293434986356720799890731475716030726594081300521849171784364070262821088900023350159804116932317389563205202685639627029400427074882959248896068804515158842212696580854817382900065199725777977659426333714572759968921548889280017733327644642007579311414853895524809019914488381927929687525405111199626725991666225279430872975863846022291609619890288079574107729581418602492463067581392336280917746050340535631521298247124732669340719542603290071202136462740844633440252530085750253869478715423924628928099484671158913882653753220999245008132679282871159019731618003092139322470862162253009017436828315584763660534802207114217663335050967029645617324125838515157239521891055316198860870362235630381570658926471166490932296627068570629460944394343992305686280483065188727910495117174807935916868324433120137548966621712295281107743411921847379715130243617379408763846402713977857898103419050385190750705826003178666414366416986573798594087497754587881844525073940028222620322641268020274003229244663072030699954449276041785565226797888358389619047701789173462626960263559261185817555641643422007999564507601477983649736177693283010802600547581005267194563180419108390984590437883152953557424890426055674055872217562328570957425647415127771863185730890794650359465301801862498356405025359162265607802144758205524857556065292577736330587920256862973777671197556485112932629447569967632277966926034817395610879297581526389084886376991811634472061230385903633870753756377724230772947530944395552205255873960121826659352184660167973418936374843230850765476011270470764615208517274930111164640536395621751271391911683020968607573670568127972306556915778905008698596031185586157364160655076914835054921174308184015877608069179995737808052956167410319095699855347155951651235583165064539591235171249762383705519093357611365195651247614644896027989317935595900825833339224115234782818681390933440893154158198832142156731587332826063822436566977275063276557962457800061515133579497160919953493814825282092016576031782521707761497403813741940841087033221992066127949269169413336135951877201853169884991275987442964808215426594801608449272353154546916097457519180113167374330221925506971505736409250154368058407367851954800273360088450840537723733083595891054231174728031229794949256315283334802208048861427277895969795224741584382021920363776315099289579460462411651616585778710336579537032183899015416100239614327160872190362028539033778627828926963635811696426547272958730799929579485343714208624868544640639802944784289897511102088552435004247509058682167684492134675215476140602051993661966553483481875821492453970135066683286670450325350862713736038749969015419611569240356094823711232100995027762803941582897321521748802938326311868269735414392560192951798100515532607985439128801939293032123002260570539904592162865541937639118661470945808820251178577426158146728805441597846914120984101224328760407712884146788312493548469966699370735614706104940895910181526292614091272364193637250427897637584740081815336331889408658528516478239713467827000038028806561028599148238219570154785999140804061721303431461851305538698226808163822149958015284589447245709316123029738003980573746544845173270322226245423870061690482669157257140917487698917705784193398468908623520263766631875631713210645135023191047427981717548355189396232788005561473645364241124263474418102973281931275253953031238308540833350479486772757294075695620030756465839893175910355728247197781832649479220939387055536598033908297148002322169983728666172010856600134755757724915377508914048897059855565500650384289861576689138929294686329927820826863483693519227683032251809879304148160207354615527904262637858997140709934159301736687300182213499192827307174694047715661656631444100615997950915276222451064143003563289097704059886531103165819640466625428080594493218135911902986488454239095868133689643804765846741575034352585217755989353392886551096391834317412247696698150482398560905981845189993792127050760692792157869230043704058862288446716657204473794362667950729790338556563821707521181550730366377384350528466783253026557698068442005944709462962547032742476110502206701391683416478455845746237655683350755039575151293761155184867881003020866560163789666631501665716017231470691155353510202914947975041682914309833287186397668024228334081126255767752442262956261348222680447505547047505808903678153414620650721500513720550542428425338494956320223719916617774048872747776155516105109235717603065238993376558748400305164311416123913381904536089829227385547621028117270977870039285922875329741286589001168965935662822612101506894848036150257182084966634807769297627425951742402964107831361023419775486812550633987924853381189136014256843958448205132254241013994812010303792067396014500918610897869055256315086531299021194619090074393229975828375785357450061407920945228568244752421193449244536245299194109101237414904830718048000799739476004429441382956933853802967396950748260873776860224517434412049606779919611716990813136078936828396574264105285614565777313684638113657202432378592273340881751875689563159379632095490575828411870641875826512253437672444995929316926591716089407209982057847611415641474589220635959134251173524260967348141453335875748308439117748957995784393360002693081520558978440951805218019685645671672756442385716318741772774909071983602100596920759501068796906476658780275907368338014710820301130847447711460016919860694444936025434609326064467062727466356210816721630658909145764962615471394328107997220961171023993248005990207892003940435025944728471879712947212459124278873048004431262401891551108640311737007664769883698048983828323744787975773253972790981986052208606743443444590524816288158002544480022434911940985127435546149927233962150918900170193233943922721281655104002331942987569210022941069222059187252538141271789651668622518882368120590995529704715815397980382766185911507047798872385198876173176842814369607535614104955656922148072236293768415983838180719338337526754654919862240349148393885382329184844091463814899586619981463173309466306078625653836310575404164402187646150224200356244264940128499258501654288945857893368245037964567454971644388705030163108685687047244366728461944679475412139498420798276972194597302949037610084046945092337372235486085654703126239110843809672994887733289768986608454934320218889053373992506622515397004960373200347909505297950787153270431916183753278474677791195530386424396054205730835767810828682027945895637286047766462112484321204429527316036232724903880809230541046015817056903430393382448953328882323769980939852461217416685249004423039863874946298208751209531382014700980262981764315375264310562565722996454285708133073623628300403334827718831555080808557364659453844022441554803372800366471861112186910351537611918942317222510696013215234908180100691190355256256010894329156477201351050005346232526609120305651689054749246189374806141587956858195923940148126384727686209462550724314182254309254835551535462380213884491678724607570716055275528407546625185731389794931781564710139090237325318428770353394286673791145166603480552014011433282953389881897766018376434423678711850237439761489648441108922768117217522054056647399599465379658078062417665975433470370464263990626407375346296978676869018874020978177041913723382760505181325751824423903781278138190650316371323127840259585368920669386475200808215006464835907134674405444366360278068596992454055883358139460519164511527821699797802364338358179411000624446774940497435650804549347067592259631692028918935638810148853163080893944415979545728321976715799165815781022531993380965470744790273697539549345309504239015578288624707785469113116569295739950778626002065669469340584186182465920162264448094972070437529785946321537365199921886546243525251363117128448435859092071636879118081855177326560864291319065284412919118951877766980503176177441915208392442347727273430019871765809777578117056680508382943255300391014318313208122957689520825571884339344536501131856907108493123910812883965393634750289085492768087880704269139549709331818702120468882145465314014084363747047189464333692090478486904358159384188758976218145253847831778571253332003691747585660407996896376050191807799803718910153127629957450203239034041210678304537350768417961124142045671982046823221542128652782459604808943763250430973548918654579997826842964425908382748119253423296674389225081281469075411112414411885916980172862532153304499437191807482274392965276851347262222560620174575184093332555000362866622521899967538564318098157670135390636971702573411903603703786286341421494391599894170408325801184082805417062986642046933812738290345765182393399528050255424378281132363715740137959153087547063378533893719060339284227925937839646576632368729696481068712415850094670578525776097608914306228986207188239045733789282090329076552638530344765418075757974900106892623763544207617962595821505000782562622291870863859507209990465089619059540268932081261643874517707164426781240637703895594220915702002001935504478362924698796266042543390457855334407722399274794048505165634888254494557010058206588540981976589877284954895423757579114102506640009219104076780956892458005762035839669285492471112774483453392110053702343015235504394184742918816831589081852778809653935328452124588888243890414111787291720297907012720571438472707600820078688754075218929342111320773136536260009476598331061098923166010217311590324747339874340490355380495554138108845763584368504609791186639700136068837654441236815934947144859418190572080744866895169158880221778065579893381205431439704482911657099409507046236716483813229184909862405446897332113635036507587054575589866095641454731251246225100291463076127483198774752015727376942382639089471658043287806636123328219099416994888567581493914030950207616470158093081854907080546923489724661062762519360398370066240750053011223479304211190540240831843840641161041087823217085842781409536159389567315795681559449417726951593017637682373419809614853230159634390262326799799170514218368147933006543919496736735812767970783856856916570252164102045256392938705766882309342572963974154198149738463699409094078437243483377598130262701376641061465328555992809995073742219071042875851848866123522953804608460222424022182482822593847036403190235143900729119180687582284636533261663681100193767992209255899676170436025788238311500783625065110299501511556141255714463657003816407646123739788478360336380547980801839209173825888303781132818879257944332817522083533093064503960721457780202601691100097919187979556511337847798585141099416799923923084672857476394712465456716910561443304276029286631888151081331153218026649613322625409072501899398478246917954298039229337691198966141111963285285823952006821863570939330504035108076868845225109739263153787343852842629337396928409173102112703213840514254133291321014140193108923091120715848118875924184244409267758989795704820401620198276617594469885952681038272756094223205833042463080681016546294757514931696086608794962477277848824960026790148829763139228191172651178230768407240758937567326513613511998588361966537847099317586349092771911751233379567865696134900324733754218751054237096455608717321661829126000822670065502663604544585051325377024020671407172278763862888081190545475685884918029459048709106140567574377913621725765973628513162612326793445249033722418106030899422418703082120471026374467307193921137291537637614029922167022643585383746975675184209838730761011971648798860460107070426545141905465600987876501782464956387280766071129962806543675592693089628294364697075496565694376674420355666840086647488367997116275187534455636460094364806693102548184978046890562825883637348716984202609559232800806808097248728259944821813097421667649881550224405053249879967482391421987513330782431705460989307001300076669054535899658343065493486808369113806146097026967912943675878487336719620268678677616904848119650889353027770827915992675362988001950584504724052550939415456574467277046391056651809133053225870425257678236382092096217599036172894976168812805911392103262818507642029394611330980789530272973331463603190769097742053627569712821585060603736383479980197573857878484088843410493213702157912692244684472408816265369004771569204315045725033522940238833259956853623015015352574532536697076816317233363315405325517906117843835824322539319331547961117993631293329811792308790272645268618020877315768821249205951969507154036136160472350819783455869088083168847351725269160582857763472374792604804022497713418978220913796536245644043472207541525449928572211109101494101203937083023562278673201326864474904634352971679474160236033315190576552026881857650098744732932015952291137544137964255992172578750626169084225473655403689939372619429331018322835305876202189363445418216651845207506123037440134181440908307164028441980247429969892449148182308306692657489216962697611760315350023821965315574227563336123875457321608117401129856194592317756430986264438960083792064389107198760615313754813619995651058721381411327066749365542105384801565736226286409891464581857631687839853749049586050724662637441392006525526971186322294742305962147274797615963262429068657428258403653435864685981192935788203121741359493272812999561729547708996343250535043094445424297953051793453430388518638895071468510909037655897159086160952668458853837071744683706820164703188596346107248859262831827719351884084075884595237633269465335416145475172376590210939749166809936909245652064299491237082808202338648030894155165100876716861848435217402214646811441855057541032254500550622879267681482443942648579785864797345265777788358315796578590721113855567449414433403820188663584012550772158453790910954876499647730004703581507094128979902961340297034595388309112506406943747321040807969142620410748255657160211148476685159725461518120983493222105267921621635385903977270846936426681997648031437012020535276731036591342551731124387921768234704863203646793643565849478156191261431645500369939583147142247237764861906674939345491194401177420540661310913236860364193039653472245454842574523231553314305172436006801470528962965661125656302744998214761186223413067384489391972430718247484366534248293190843676225426134356831360239973836472872284737143641381185998972935305349218070323774883639597379601653993727040928578534251845365560402197701822239040773356062433506104101478822516980907199639691610197783644895040269201508805828298765177679293750568029428345141070254970297861620455055116941429644697817064959643767832306102144610265257741885654987077610235652312657818305465032239593689816941260338619244052072024362506661806003117744531594229950736520085445483400239963627175437337953597004571754092862265336518071987557386091475309482866408584363501805590681886377352504443699140081497763741393662660963611607741866468698152124359125780235142151155396670190544833856853626223870069633168902412556183579630859270542898050662794840952653827465417479552105390051706984264407077347886974732799222647288934088437771528811753853827459105855013942415902555118101675378052731820907316520327600171208358153159384467706296941712531259549622610980017049725905579743303710128468827705393554622279226944528161052053663373520062057324492219929634382515506515709697590226788552074031562807596520924557309187929896818590554598099614957906392044181363296390565479143292597721563712844508978105029532456645798960570675652048987230617963355777042397094486917859893890917890466070667399946925014483567773133699381926843632951287332237535035650183299908324742094862922129102256098573933963657035958400491788844035016856838402530078553283166117747569609257448066994660575136224884767315554820475689837600673858979655597532233394231471846361791476013759821052824200609757514624781709902476082345356768581218950289057150771744897773450932009130128066455220991435374285795021819117810025841604540679264411310386602587309493173839373168013303894925133719972830415293991132210530438551157972597916949099718881029827634710416149548084511398303159935497110159990905089159194779962956450955351633987113757060184096230771501029897717882270260917790667816468768271171685573802147995451846496138399639445359200611124943359268483768708231605112926560134219139918373259167493333505226607500540968695631446373644042730913356657985631139189522093583662338612889153579587795939585422227955579966268594545086479423084842947595117635801336375828197219390741150126880268472816140051936703754077355358172163626786986173133737274947120598442323184351394803698114950053220949682378026367357653706826121133163531257944574439344229994395047694457158821551898960120564283628233214212104255335455263661913836824355941315881147734325634840673373670050658454971409328758522411753769436359082335406839204425682942360111428682072097597816306247899165605487947680127415433251027395639457125087466368166641421912502449231685488091885318398130837318049079519735358465578492407703853795122766284748311428976589060321264517435321324325755698533221341341338951082706372599032014226511870037025271285398693659216702426174940390175438542581492483427253021318438676806030398902018150320957624449386247343236708934337803397725519441757539617234783404387952031911914759942831914522494280136102400071999106185660448253933865277115081282344229208349288191200322881410586965142677431589972867555929050016342350540871092490847039074543991187194148932094823667311925758219670725048976778477662160550719939089423098636432402305979278396147333514421951457116179126152250426907660156273572287546849671700416904758443819598987763729585314301717355539124975714750768585751612244287407938942698538284792547347491803780313309289229588511075807140951732991402238269594970980104440607149545818598786871018558324675766006322380295014397853654164211727230614172924813211733865585648930119045039832939467640157010925398596349524654720755644392513710664706574324783266827339750302236746383432097042746907209766913724937300007812640529938011329383541687851195037643091589491329287324233882818009609024317966681623765603371344851251974923219358837179842214979031010882548265757794246785322900449307663303351314860916603083290515806778731748766960956345756404917507327719857545997075243449452399883221224618884713288733398467453892617502478707106364247277195231106323735908315657744886688768121224954269869843631041128065703851426836865852639169417203717317932746437100054977298692616957769377459383904904906104568507656169963088600739409447168500034117583156790445109233639755841644309700411141992524704394115451233068889046420724166097737372551476160088385025479900080997772101856209161547850358353193267798496236171416816721114177798670738126688341674610366560946408017819572591901171401961109169357782251746038453720566017061810202775393429953028387304623166920563575711349102446597306381725122226112284149896677672071767032408412902649111618074303170294530955718646832822200506777626602673614802318783678095196629098900751969418838798073090999731088718382607775699553708471061144986258543225856129274334427680545860303828682179154004059784612623542058659657778972524020452694789417565519031467888414882020285307989615175285350701046155946425419102887265028505835216357180309584315701634022622278852387427208090847368738748189739854263458380128322592110248018354503535327608075660881887531351396802015983146552082702056592595957949225090084140455355262786805317487532103048208572829279833254371197601526724387204285725392676902310263509392656244122366945026574028323059473497454098706388692028085024197284086055258918321324177635800576777764065554194415733247214406150759909171772146087685111083837176767627839567210331828385842459024551317919480323961422680977866115363650739099595719489628986682780516244977256585505292690754442597163472249662501159117603492383784128951008449219769666936039821436999804736420661777092634209557319143863384144949530226541481036139667903498981591592807317817314603830441599964009192945841218550750405118562884518027441759844487049683971363251396559034460988661719147016438289949569716248824846494564586296355335550224528678808797114931188108390266849723884234957265270996256501406497037967945541768149617766471867908778358378908272883886964773875868429130837821832929890807081811053314147864078107976790558306914690386578269066812608868258508900810861490643711630560213990989404063227458511980491209292033063515291356505763936708624299288050511736394995267999995845186003004367471139207066027406376496811238793756045595575148518503849146222025810970180540421621533745283552079742805383540766409016938303137206014237626614579100427445416739973807741485833741379338621165446283179068035004435378474268999064127231508032936239678470522419458123172962459616058650783860802325181051302580637752903345682566163802198415535116799302293150296658609564579638154534167072544038896333019641458078877803243931191976655599709768121819246651546744708895545744848482071441172437314199924272113329870014942808983580472432607146182551917579483310351480136327349547591146750645746228458321380972296862018837191676977110103059488683066597852354776992780540711370747774048299069157616992660446340251138462769991060557425271476229553534980476502326265504299850126631645300162889158589692928623580066319409152053282937301720365199909469011700310380694833301044087486074373257419727721553218045863343812821638584374271091162924588656412056736691516437504719953306089469679251800545563309639078440651095250999322432275825070389581268761954333595749810567107348228052291624420156794382901933432610161934420929574143991193097841079081068242342747925088443022494439828764332433069654077398616036048987776526608664840951678078586504203201876493891012297007263993991647635416952419068245572901912001024897799649073708573233211611173579566146496835710220182205628703079781404081082759390836344999606980390035651530256775156196639827774305868330708670961402601437597313533316825651509792146738153997147590824979775284585008692727434413904529563616792908781722426452715839180383099557911481843640827201876096306135138033080348754037279630062240984888864321907256426973843739327366127065342868205615976048387979192119593527994996282489032805550044163979184921055007925650958621193134056522371457286647234093141817679731833186881504653439008152428357488399257368018285587972670802520390447792665478785967704685568205998800123059539076839013283160685694273780817768957894805155504384038552071863295334444707315453082123971333477675308049002335855294059216989509435566644569990813083810371105883133387154192506885657169032202279745728838354607941655933128047662430580184973774315526072285250022512503819098843742759411702817364307809843433277296541296588668158880867946456481154635637737754530704390080417180510256830411530228035916077749618081666691621619915270865067655475452054707132322379091219047504124022029130559442004881899859811943862246469982767786420309329868952009580283148525250105626127642819653386789062001825712750530855102273734457870185411195822775674575213089461535260656532527009430032662817442334815172531324506429202993593586545184758805463672331969626501454677544506205922736164150885687488062541958393233101654101624088944076011780585334590996341737522169616922158983991224631893002311559003481662092498291760057558298924535497867655995996026597588795952022800104737215546072646236996208452420560775630758478699665819521103493306968709694437066879375442041056827993683535651887040565018002410356089081346620928659200488631074323503546810648244628027338163062306885396729583116598226309074280997801586733195709505651579776642242370240479382876662354274970970373283908387694896536633035610947147299305488981112694734243031580408765902557348961643381510659787067534254345214176509913959970221485997250414898236289005783930184618964278028924086267911570680013928175492129055565051894311334337343192993215454468174753008721034574038271916811514143612766155607737686061022369669066247183538721631038438404708113544763591301672754172580140830479371534083633178928022156604032955899923115144865671465075846633046648497944429728212931806627773963910200018947176197543643111213404299808479029269796944677192506544442018419707507129451323361004487509658393537556729037689606421374580127202899244396673850448944433010874701973142852334986545059817048048705881684243696404610680748541047453518717658961284176327118988251943300606835759337610733132554427178058265502465405087188328664407704311309136182296069355868309432876793526197445504727211680092357528879729398607624452347076632000961155932913691046875463778630106166632503682148609302172875485455915244873270537214357093834896450460423339681573812966904013323192133510506232240534026181518427371570274160702013771669344734368014437927293000837921524911003965719762075316877816998776537190100818322499755093379531295617194142482553163554553398060435959688931068163884104921640769961175742961094493629411260206303107915472302645392088166659887777837282541604526340352090552561462353627673491963800320894045297573069661149790814815932269004845735499952472215483804568160756456882048748595831911582314809650442826155692997987940002666761188003322644792164499729180320940077226531735129754729763739397166362401395892702254631770801637865733675729527160840222322380369051602016540157333562081207981015965066572075010117150691166100544146109313932848804722066698530815116137394982062012762228505234380297643136712155919644805968606909413563918016934864246005727893758786008816243082216255754636817235687576308857570289763282642049035140111556303183486916650239847133375533006235194042110248322724640199146882655620429856325201841392607941079487230826862306408242079445720584662952071715366934347093485936011583552455600797914491624499600524827366484048136930253603369875478616678725158734291039316333390500175693144564881242237547520054627914831454538951046455740917451389982606353265577598782725299261150445951250915608165844853339160579431735275508026102800416293106005750693376644878621046290196156319980564091764892100608522841841722012708976313911091896730796443096120242730604417254147843186753679584872707777740458253377057212793429848128284893088795639627852529228852051987153559878549213716440552778577074346860930346533032654468947336734119327488510792414574176162898488614419044339629922625230504897274543134911449315832373258331392404421412593815515369579736036307784355699619302794757066965325276924009094980979902408065772063779728112222806919942892538832057135526879911018921433068204676531049477453511776611091660960032222188359270552809187569783055731868165143740676820137446461914609516396146231341096073272662989022594631931461553015569704406845535230119934588516610237028207604356028035420564544355503732633414834899858236623964924309062889705795603233128493547877908820044504459366005470284886017851344194840622573451123609589141508302952615749135728547077667201408845177809510799002259704386705806389919090486124513094118130345124665371254523840453759152478064869004138271960329327749505204735052976744421315590336450482058407200574288530860444022596487225837007108742755933632852743631982562526476369240190523517094880897854847215864999704621547631670568161060864389518425215489713113273964799132779647260861247401149432272231543610987203912932363158176424105585353696087014360093564189520444647937044965148495523727462343698566739430505082911751136545026469108742059502538918738288665202630971926733271587970698384908649300696672921332765660666752744356229478022436639859621213444464580672002753647907280913997811910466096133408363334759029289224029149312905538879497091110553927614620304690567855306466013523368207879069332851350880564961668208081439030478985160691200072330373979705880397005421081628156999850315700812394707121773142339217593185579786696282893201129270239065504219118311594503637325266287505642606074171031118938138688251326198322340856561760664914520503424467551921272966318703180078192743522115767898971715320665695882150298565526443313552732632677405280188879864673076704945303560755263083202773818033092046730958674632519391010777033700774499235804678977536445204336859692094840475219819282510848566707714331371669747549881617862888429349071744613748916070877683031560335441366083623093790420261846847387060661264030974340930564923598860903166117563585889415648091111444755089436953368576183758228919960157291408266925418953235444419682761517157340773545389477389060267376025861763777782109491474749776712258400287083384872748762629461921619424155387594864842439812333296126962344239562075956318097622948268784926251138880195539539709596229181507238113326032434981204789139000048304239724977655801418374223623927629334887701394405203491914247079443646918929911677780365625923977410927270629782404226742359092809030631890060754554897597560604340501367556394316258242814543048190035155959499929101012810635125500616894514400087782542278861237632320167735344098887106979382676534835986130740556500976961120998900871627585109862642500515912945842540382606606935382988014923680537023530343955932305061786387788606833730802356654284802400160091127160502876272023254841455133738948485666109468987016020956843411138307455889580813138893566688958139532036785041454692823627024162065356705769281781587550866868471349782661776324239150584550645156282612012211812494974746758857535508727417075178254505486405530284880502538289474098735175134850722047180524432461413097859704473636336195876180101313090204335976848665079385383280077194181847890771881550803534126710707379739722157270208598963376263972338400202166379616990730112339247610681421610464210288904072887764113261888261015795362874051231562492470714938077993204581306949975531465924899573090430121210381659199569660946210080809458719224876177954011288691795259904648284461008257594665029258953668661764116556380993612248713262753389630311564063445441179860540821723923202766553140733623418019024604421796309678201990099297852368587451355886175430588206278113066772290547126630672886512937914926590412881372943134013606687313432418284322302222872632141607975949205844267186766698784525287163240273132241509295316022937941360405841582847877790445430406297094159765528636542524655202767092604152756868308674945248669046440197908562483158911201853608260997112149328247483925076669238543572361860132736358529031396739402069502302365643107484337670393745244490382743298128934025329664574012312632764681789090043141543319126687319550095023734513250459739628572445015644822390804798159259298866019009498025689499259601711461143712069111681966611601492764656561223717223277407645069977948130546661963055637412449545410516387337628155840091231899108146147511118733391128933756036627352714258961675534657196055597887605747042528014051294000674523060503712597764979579545724974008148978837826180618049323346362747888504356334501370757312123757247995923819284293258593650302168888711584784377309416481509815946588198257095906180520562694458088575858738430109468380330711142988394373400903768432101740079219273555259216536073790762600243363450363632846401191502359606798352278818446342357120202251299035862614042539262218277165474684586988250812993418502205188762656773991102092226485828828273565991226433548859569098841840453938209974016273082128308168044355295773429293757081566301752084887547873267773628866535489715591873086568656661160957846238108682819679186094674597377510415497530453131041904309996403334875902740794229572704310046553750965205519703435964168085853843787463882601654546659786355229934404447826815504209813766872219364009933012516368406605280382601347653735559846047728834706288868886172583911339712114807378091846164512081520006197370638594581978103685679697605699574116215628273812794664301777077828764961292103711502009287752258143401494500872820488885735950186959242945363252685651803677757717198515082452561303458966992742740551113182561031534889228008524916265282651609011896680064046262733253653098010714402319557455315550199220969957199600748499858954510201892496619318167527371036446965362156265495093236282102802440969209238403033858141521635518820899798434612242984484757262419076881376822126505818554853590303554511829575263908301942811813007908532112705943479083271976788772790225139831398329638649916019503780223968577381910884813197047145545420056962212419073528778466608630364944699847915740023351603490719585939348399300728573565402315073734424817428316660586439868651385791329534776812752790217638578805559107113233388685464856377219231553984629973035145117231605303160680330716562661645119247242154694020395169271528333301681947790877662955732373104265082427227851287042300744073408225112684850197042013351116531324414342474825626902286494258759463443468543522472442924739895395535409604748131930712651112002876780537293292900332142215838108240795117507594350667948170491207216612274379209525412079501025801518302662314473936702608839953751121565325439202058944978306333214256687076789930833442179514590805118147154994155413850048124828110440463776586984764580880711256015578387946419090270442236714600165538322171350893628688965712999488934338336462499135674521851684463255121221881155382246945584429515342551997291746218889424287106385117468850038911201235834139844652017832157880242083088787807049201930121382804539835342410293671596745625216225204453896119124864475864301323938964213765384452408936228794580629943456621107179739320083933588394014452565192417048806887974168706386019379987766367957463159062047880101868987981991740657115758248161179211153072647210370182742519445832348978871051311751698515286312961710588101032439091229835485917369743641728248751100042865765079219975790632185123001106847878689785575649675058569492497269821070486501125720044585286724066970070058704482279797175289831565895875506159943456377686409453844649790195256275053678212562150254092737792997394157303596289178236713290519038704225282546552346623126223713745666660428723005990081942994781007467655937193555196255219764643376095385222957174607660542368954494847527718057379342978708620632133589766548573097514644359550208126678264859235710063020781156581904197448225929933885642442404513100307103761698960523181940127920352451727373855621720013650973768829008693151679109292055221638079908987975366640430698070090616927195009530253218277468659537968732768047379900729031517071873350093290409050028030204967495860885364343262140746538919321244664015067429788358861819233623254708356404016273951557700782983645285846757057779557091163264021977264560272419129860773987400983729498442837610991598768606248692687721592347878554559908679333364526076640011999477101602039584247794764804787893329798426795863294909232147467047973960795293419191326356563470172778062607976085608858270123024273407194129370250260634242649520160396460339582926102756169349799040495153287204006430782646196494587734882754966860007640706302456776846984162419991406977605674757874597687584990566625806482722855374769856794275423115765523653575047921953648298871636205657115245973460886280638289452342824723786493202780555507552799768855442090754940233401668972127049629760461444658128953141295956017916664575096087696801781201743109935462624376067437432156283576445788096006632348742711021785148082153635216953072863842359440745947540436009075823841246482488415522263778979978457384482990678943309972931644815981398620081896134188323541035472864044741889700934963348234830086191337478910060810854895487359446436451410272240600352849012255651174503694674267816491259099298659157564505860739408447938841740610431644101813845270457818025070864826508897811568635793992422278877138250629760059079151141093945576123318148486259417469565324470389717655066599340591856838652677598824199243932346508848679444586121931040290790066625337852552538145962301456776026937461175623168137293691480278878225234323265016878523642864298774836574701234127732030418965891426729008171930256224919072620571954280044084695951090681161159578367913062024754696863832002793414777323134224696465958940707910703971028646685636392351532838661696896667367695365697807853765584566015880601941432347675925388558759273214764406470025083142078575167639518131153395525334968723910514689398685512157724851931458139483079353427296419930041734837961770819013660580490714001766513226062176787323603517585187336960151615405988614625629490379609327669440695938165512205736049775124422865529562439920920615792489520111900151954105742639044517096676060266640732923825771035150903227850451020015314279668828339825516481061342528415898848409707825379263663179705988025893212250353956451462783398632661779228966498126182015809410962810990244070814736363606739414684671231725125385960762276091586086592568633135262953043200645156534438404145302475636231905546459279514524253598525974753892393893407801872985608469269106222974563690046361784406905066379159681593511988924046896761298646887561347469745993546572805096748520473290673436652168184850765224306387965954628129048152329115693187471734979096343540479893092729954610308335766195862468286469928045786073093483785101074547852051454722920126649523518462191595516441389419484040289787806822590481556572939944809844053977727775101226856679260550889301419433142957428892880199918700000639803129541255596001545100417719331981963484928435218844437610775409264154164456961700346299999684518120573525284155098063559047905441985018281295353182848926941479721078189014346586343002572603618691126465585614111574659163676120644964584073793765980400027422980816285664288473482047604688917466498044609436196518199188832858556620655012416905199871759079551380259503980061209082337731209892247640305514879822491898002631695352592355760464185620996614089747266118345780983152339648709522915223950285690904199617913880936231813680063690495150521588560662845829009609938311656642233469208633361862645386122406891210425072474535825052257350772618583694148200413292727720515469573265685651114427372355604098167896094217242039986312090749595758173182822989372044057789091435155652600285778574650955029208965864646011740804755354319002591290113780001609670736117602385937536609246778025511216359020112736017514584892316846316989235780906421606701298094298314340608260991221641131299335746760515951629944680668833699830759950824375878151350887857876726934477014864314051572918346367074195841110540277974107723647334074194549359106298947925712136632870009822078331495982158496048712053001605061231630547220645495100798270432359843756157024595985144054970169208775257153454722316826708011341471250701187551109738287517644535737788120828094358342341810801401998096472401420434683213430580024689205654740492995441398132712343865854513479890657272328094817920456283378408177432343109668228576678321900043135269116857379801831123208171532277503946808067405186125656528103594123517689314489925514606065699777207117063019650937771484251223594780158727520491178546134535008369564760779916549141995457205440955903392545060870056693990272610685540493967167011782072745783612215313368239225993848168533369404709140968881942256491123860207410134701660514572505505547047667498947839496787895588017936095017337742202308641550590723708189907359321997217217484118027908186030811390853873486774814292278223707713754811791643952576794372049717693872344181173432855545355279180107996537880773150018471270405213395536406036394792249293990068369395826666509757279608028479210095998513785583512382702449421602122022139030948139269482874976818089482558146160531537617294628738071107736668856724506510152383087197557802135908605891622304052969931760947379170212129776106508764727552907039297918512599673296114232242155744947558559994407575953334114105246664213223151118554846658931072447894302188014366403009250958854754744656887451980055196686518386440377110402090860895141493175290635787951872575424306362704873124504470877182950165247034323356470992164443806745221492490742145938883137003718502362432833950372505789270547229696752533104060473268546487536919173252343002542444919224880704983552582575574742599637481251850837514998876026572164822347229594300145899066620824326604498221607101134560814299319080743156497974780152283906268479679586848475787138083966144305387878473150855011471356737387763088267002732075636395869792779761898511355448449157309524133941895492075540986325843025367711079435627399420786247321866178390092344544466615288907490725233377157601539157526877670398375596858828034254464449840276006281457043655016354124023376029804903750796054020535990877568721002607779267769236982477298330250057385333531011361981578741030773248162411638870545585130603856389143699228302716900502744627673413709554179057999390362602216621631757085975521783504443818954108366709452363297897263777108858142179857098749253365239815977477008002077413558443553113842549803834088187084419043949039886632506132232492754718942815410389452433691935394641842199741406944998756860380119374874827878240378492571247532738400619824700381654109999108631694288243908598223955313270304074433563852490509709898647262496011824224242228199005912341165671871159195584075026953513484404624765418765089124526264668914116784047521217950341165170485274065140673662419944444537312222344695987859680386193547396941159112658102599982915891902199312886282358004477892707323360827212624218052970383356960233326425657221987313328928921925675964177977989231000882248989720626896986890962480159835728119467694214436519429741415927466044935814126035448551682219410358181088517767235263265214853893948978170179320433180215328750540685980714264245817412938492437433590565637786527738162662664901032197574722996367890296894895958385405570269552858228913130193290978394820365211047584836539403868406878149741134974582795014402013708342492559754607988159861959255848400662141755119507502384486916847922812327147772199505779256350835605317357803478642336591648221137991815974053916139620622083133190632343977963622898444504880178645314374386503549977206606541346991104632117085289236544414095700912742299757469960907857152383586548368136735699375047831994316531853761374003043922268794988860989649394358172858749262881605994089260752097534760155324950032857772630878525174654929739549567672525255646478489265878899977397306272543989169143909582403088468509602079327294374220500773832284682550446360796163104459174567034684687832422957142954655584487216110571130702811525341694487261724532253847233213602572633901464667175449158867722325212746125819856917309225563000531882740521883214203127114151930306949412768672456812094420103581509596335576867073657247722453857986589137373164420035492480333151115898853923355677547689372080659352139281322179450443545423334771138855355849263470657128987951074516971200302525459309344700209904805303639036601214721342078457258957020495816017044725797766064919745228251615943217068033372646231904543676546343703664809819293621794059263457819377895418782634895548230400545759361535035427078976127259432857804766799237508476555223786338923040669680766015772613642571578692302464283656750483948326152114715776517051321896272965952514445392728045634584726331977352062422421163428293992981114625262730036280022817299604683424214600654618974410972551436976306087914366969182572959438618150962873628060695851209761713968974133382185972793612939497479363997917182928399055414560868329333416211531002926182217898370171582638471395540958569086222601348103119995582221329249519454065898097984569353869868497375670778428859904407286187037932480755127612512755014972406962540151731313579634064113690886485211556780294819601058189311939363522575052430022215555802253172227410704677136053083456028865067176915347137697944983562945599420982382774515053344143178101454237942127234895245013693150058351721807662608548841775332816426192114978246790078940016472516767978079865857103606110097724226556209360358858193922139230275739132649123889383967835468438989557750544185975949720434476687037648185369608132116987497910596770667785797029344486522458695799779349110226273566739821523572648982632324685292435932378099455348672744349525520283031716442287917777193273992465483638710139377351393018910331024219474587578109575477767752908388034881732056793764321873746713652437825406045763022569950813002413029135957599609893554405963029423132395550025704789971133120331974172161260020466385897771100666621249032522934810076636270436013599559456077173493070398417497183721396840736046152811683969467861456637894610388032286617378888909689317191003079631547704971245480115024969908615609648990380926717997865413991237897484283760380559702698878329309425986829148797155677845686429632940039736620751401179388930820354442269397298865600263993837353044091659513917910071372757315100874557116506088806875382739167306061350694234502755283168045245662785863268717765003562101082971576772456541936813693171686992794865463075227196964267545533103740788426738848059368078274285783250020030228904923041000930330990820405264953574172182005382500370730380794301604563137900648135036629773675656781272543390093180217061987617783770331016228967572465990222193576141547402375967455964768867066306257924030710032733157848033246501642335685814304840746077544041942632813293588746194243081440069200564825656361830198531067306216226560698232819907182420119108363172772863573587921060612996584097320299387727906466294225830978071521401120534846173404245673080394172903671337651073480183616422772992412723775799795945741302645699201323363447375980658424488109434109124665458547589964240201843413261837926974304314765659122018392951871827132322897714414468090879699131192686825774259688869920137517898555283315391746367395258580943428773807997597005050015512942556683579084154792509876137475961211255717903214774118331467103229166228932483942189603008360735289573639518490895734410087234160565135870080773014609871051895688288880311710778189489040024295563083497891961125382610573527726029861394394739576916481699756533235259928949383726353708187671036810514349649913458492105401464890390516871082130535782322510240104940301320902487009005508484471824241486162772922730102345360514266605469140762883255584390388281293074520220908954403728325299460617976214685046151749713222547077837860929151905954633506013361781658692340313469638412110593561198701535736350264772253226138962386153680438105070407844785117947485066142577564883021886850825575175299788028365854791507497696960546764425980938973594415556370211008303558817816400444663145711031265296574876578280696173588895730278519699413398882901114522309686438222736423648734072338047259923465550098176503045496394361221556622823135355621520576357151714863133818599880262142366535488932289739675416320256474276176062975401122236078448639031119929110576073329628556575451734632866425879223460307253153485343318685595202999581466573645996357401711985674126996049978522024454000802481448947173573412431005767997512121813083848896258579497241238341385436597093967178371211259122397592824786015353938861218702600224750541261338964355416956365240108613605135212883238706998096494755479918787846468941055703240921355482501934343314849673828993472227507051491883107708687909951187509026078279508824325378058465542204926252646368980555657396180363378135859085021408633814783473688837058427178308200950169126259094069764445044700398435558776849424406444942595331408351496854090313510006757627181763396196123674962787599344221931021056335230695392722684587567515973545297910410748619151936357094607343023199764104489057369719820394546609328085818440789174738035377312147251441700877246429328837989881762255684618164601556449891470608291976372921281217871578598948927935826717872774499697988956448975554701757775558641182332955877571907124057959811317558546933830838236715326495274919091658069071473996569024538796924663565210617678271346460441596409493127940098758769965092612626777767927519768505545841306273630869998897701276773905209211710027386546616250246203513262411086878632315790265588473421795216640541052420503987558967600955775163217636935481697615309366725436081119186052887800139729030256042261245612260063288674803583960330920826603584633637514347257238175939859073136912708920980796670657795012297555609865029313429774193811017861364511637956668921548910680811996623446939470243578973085158498411208228568143251423815980412444263382890396112187368547233767200960819403981183880253488013320862686404402082856485290698945107671487070921430649285038570913417088263838547335288344854950182886318714987778443599264376756853338024492779447490573980960411500925311382788893711401592680794551920603035759455722860850415720020925639516107269486532034236197512596791280584204646819573656286521745417207478183291023523468814612762840151431715286126766274358973818926535876709609723861243055432161500090000312425269113348641073899251415995046409630691688515916708565892047774820685551498773060025447136224893218488244519762355413592615737935764021109243481964115787956273877059326556254451027275706297422360729125434900763605290071444440735560955860610333364531287506121537433421306213397606432152498041175767891439629853606857890112005603546795458794519592104182572348152994098315303040407281652512268721462626695123179692625032316495687067101383845704417359055730847391760155639174026513445816292896707926169801129967351876980951033016661435625921170630593181946288868788096562569503667271505999942678818865348549231509582787314307959139779817050528821164740657805240546684415237562109094374416696088039650100938820488648960780845403698064014046830623658600783026535351116437723765077640417768224452109618740713334567907041297758349742357716661408836420711635146562357041826192940586777409627322239482019276518111133407645081844353406410991712347010928814419060261516493179765185619208247059374326745269189764271916501138557338325774167817681769795908042514644515453862401706761055944581834763826309031874752427043198046457752408982350737548581922748473674887881224963137681704101601310853043886548080893200693315593602724455313819618095845953682342029618251080094006208877128057983067677090508119387660505882408475136223445838555886332820572306929917774367836664088261099901329350777098096998393914844769698793039131566437028432196100273694980513235266626139458314205737705950734624452739276698169766221631384431162227087599535281358637438000924548475583862189467935017144117847621311864992219546846612098213839233380819226687369252172401756171560445611858640958649094625131755939043584216072163476805795768748788347280134151769715681089181934337683718764293651691839314851614629502059963490308394026603310225470473434867622067273855561909020656254499070690281932610366926194889665068115308350459945222971946550650760838139441033624969490788353111043462579929945975735264163067189057530853666887133597435809383179790208535167296382348633293085417692417319578424198595794238721714897556399730420843560622466071477986989116815535340516069757288524866253157708652221467639881465219021654894356836725490976496571347613669784482912461197137242335439543580429525547511650313310707581442192019739629947650732526002919276999278109713952401769729365853908479148842649167270002209178010193812579983580170997997598110752406642756016347072882337288326688348647606047700142792856977870889188755554184450492970609363139346057125434183208149287875219684802412839406638387680103364437365406996912001006566688403920520698373905685522999175303274433803475991218255550221334150441132822292112318791161648208565854536051795484879147119858293882513247671866304324140974179459324028386886111161560539695951658824721409949165604619765081482264384687642936628140121652243921337922300136702574903734828237965020398344707582949412356065405230377919881604578583106931278405152645257002388653688174799853588791445013064372807551861192521360510748021361994570154646317800264848133712881104934081431018787757713377348834757850343311790300428273883438207010611104703199450804771145652849281614691892377350172592884108888860531708459477350657340092811561133091961978773724225960576137383533020042296715854140259372931136242532535289999328784038933888286961471972967129244522144495230257583135503484268156396779112321657249681552954292822414834252781173616615795693065923292634862246933161805755412397025677952408616004256025928977648594801396160723075372783844137337758488605895259775960583398779656767029184908338714163442176799725943752270175738594389910806493150722442635466589961857221741472657451505077295331776471715421738907964697693707874056240277706997818549803242987591611978888059209777687789596054823898303534949636363971239486997912705828947900705188988840797367512681057675414874881314432445119280255505370954303662078873268175867246764502433274718240325630334614604893892100898770193508800811487218102745110331979973188150589736852889643802534202674166355696833911692110697205805229409189470133073137552077879972952100574655518131375390811999207729971373528014410467159749081527981901175670570200093170875624128429921639252763674084017173846079429783396765399063326719863651519273219608447212471749339634511858903489891786331325734631912651340745713088716609304799152028115554757881741850631222505568442903878729767852023408831818966400278550701566857049730034077860913019604071871760278969848731071282390585143366661706091326422482056162237562096627152571072522624506214111309926608414346738507925066127214115236195148119871966554160850314076345828949934505559210909910712992787311615296650147073117290947390219051060296237406828168502072452387684151361655363874433177050011505724088085119081956655642005408120559040417241403982371266517589075782196497147726971181928076449341643812128992322379820090604719961297502285931303215651813556697122380996389624974555473637799826765159509720340692041988984638397564586387188185745405557427565997508359890610606606850206902322170048055387887706266556889083898408737996052382782675418602246020936270872558816225144332674651113666701826956503341456045689015788698389826162119195835747972704021619240870473688516582857266499166647274657051516731720156610786460079641396311279168742829289500159517119629034943259954298029992537505320347527350686766910670999322949793647715317180808734260252053966933114990049845853863818386858876476259444545710582158640992348279475765717069995826647188085080768927544973512916631455579595996771089478182979677630537960427994342682273449493495456173062668642933217655519386479914570726969332979395781116998080822878300378703389373780943666392007603973968327039936100356809893046046332617307134690683026840694394111016480018231901471774850959385346911674356024229854123060639981348037826222468209712866098146540649365852935016868917935170667426933442129000734713767827836425861865123072547810606355897538918058569823954230612212189384913537850488280870684858184356241951129085436084029837381958728163612165027308381987402939213635123897158840982328216169807578470843266721906735177299271489790526887775869567740981186346984670469595908907211963427799343142944599911923920106332656299927592100463416192050781266295526593375271095089088605129102809648695771803357735510363354395252166043464908566198742485500236437742050296705590099249335794089668980462075987649706181903668796511931572188966417941472444095967436009214326467841787598191538409807759161720103156787896752146993995550000233269705548640546928363526071354463410595407891307011489368412744353831425852071088319751687194926430091598576459033988254141146242260027332276239974278761474973117706812852854551181329102932769300473863040033930520168889544105216996637061983655670536391692828213091133612561583280840291817900352860004902423930948103635598668626348396543464437442771129348473930247130065858760574383622492645885097908763870353936597982454466998729203052506191933961001961228570078100686219133419378855520011078591294812156556167511242272222780119630110355958155966291421387499851134038307769301245405587773057034397825304597271419107140632581200721516780074062975535743177990875183447049653064926625371279541501647936680568493622520910136921585047981898747117805055563157678814398683296992359760547739713173507175099675109869150463838892959563224707166328280659142912215133416675848350024438679075325759375614688384388720604979920808898104932777278341112161991092039751410297857187741848548543640833079903812385175400410034857209387399186868676326626999891982579108093211945949498412088084418910538896514587023848369331551630918125503115098143531924519764196088884506448982826596946988169635372794243107893245710354656288894577816145588221509074294843726778494234535533265919867249595533973054318474168334558596560114042070030344000930215671165423212720326523545873808671054888087785193569322581811834546835891229345427091901234801381807959497692881796024565927140744316527393124723183513111308497464818435746020027314672462512542537107382397763633666792031502354864677298273911892592250409726772404473836877017494067149562333011785019623049880258357974558891890014859574283587859571932641363283859560073503322169080657372695149878334988298656835779896832052682728357573833219811030936258261852298745154011852393419905077881794570779151214179083969292372600351023027515859340593727113964680112888302436687398937736026568025515745767206092714259637838746887730262069581199158386127545898388270804736968987416901788496493162723344351947297283147826913659206566472291950921684452913846178396734118253688984269701378707139150098762065887893197040472821819487767677953519871944043518454940368873796177333247033186566084435470137863280092772824799652419374718287600514930829629851501996462364139742206276154956308931884074023395350657772181355316651643511102691514421428123998594955189700088250632851180181468334161803363785985201545268081405393098716149185974643126898225924851514907865796499353578018332891436105800535996816119601188183512262433093581923345448952280341666254784271478721852199974869958479555539671411081548613134331556269546146857875265802494379526823538867899135514587960287034800329045116231127407348814446301972141527935373562044420051395780341585088175450511380388993122846475157120380628441226773057775336117937833338788941355468537839597761457230539195471644445424256577611455182668635073496275602253978470658621235190598810969550432196350344143219791853667212970671636407483231138512123495512525582392254965050185933401431253066153656974948712653444369581523660006031156696450815024319637967572725432719794162168266343004550249987204945750666913336572472890689824860921879330427120647348117537589370763855556683733217271360523693885187556366254882581340330310113609977828299347556659338535481242540193077790452927726367775655079805255717782163938669936289641171111326421854654484730807939656122235426982639012686580129384001341099048413938095330627544386006707961500681337713535679155794427803901386097959794486641041673761589272633215738811968305919481657153675014974102976857723485309068515538592171786623614249651834036828407606157875433838691929439096009285193779690292621454182309496059798201838952232347964603853344147804195713150847889998848221393721942769714810985438173961534914252448944972223706169615312311541319233702785595277015374422974998415131705957044442015508406261613152179042659291950485579131262794246077979947941716603235252787329671986161959533884809071087880342689644086784923100386574216732016889499041242722967082035044416309718183099523742295534909042605636810732323549908102254599546564074983876165653433810467777005531338749744274157429828310861896326627197856245281046887726733752648011808733552890306349311571557303412897491634293447054476472633115572941968154349622057420046582011986244273341290782800497952601728626067273227333996896505769613631736784070900402446739067126682227570601157660659099894129466531752148784124767895358969037599220856493698668539379143056648965623818711504517077452181709872113053730460964781536864583441002951538214456173695375279496050407834646749216177596243122255594454863172151462071926721133571296779851232257353778211265932438420938780041387140072255457266264471535980288571655229546408266923880902136858614419408106732152866174636038959804417335459071785954989622086543664210500553379984976567162947261037859700896037673612147421620824741588651983660749182517337347611386762433725769132988382543679125917499936170151903566816903328558612002195862531200264361745616794911858117543530072654047708580787511019660770289049748959206062576824778845097728613443364284215516678991896558746042689599687260874396461990355129153628412993235805066513799347728574622264458257487091301059394931279755539229353695846840223649186731724543763316148788894494160772465505275106735733627575950778622550644830963738277138300580198463868151164760243451758890675358767919639134634310822239584797136407514787612990239703809083011553395864925616715725171590321741071286729037871352880271497343034223850642288884216286417609651737391812665991730535178267427592851706125061805258357877822669622221302517879989284511182387453633911579482349685966270015504435036822679555571252419727908565706103258667732819068753910377574421881077234476540692464214660234997861302507065715563619268714337102736896789750993277138496699533314232966730900970224339119531960584129633730041891145745077914741743077027355127491263751319615593766911705002940649186608273371269158916968712476668365061403471443749646308491520033145751521898992381189868343770196311708825773872800812586353569595348882647998969644705621483464203094506699112951570785647324172195343172436486998316362265690488771387412115528293080168298246526230932173487001057813359713672105845207274796909917138761964876389666736384604149640908960435515696662834008271404411566518650685570453869385237753291755482946610247334244062715929276578252425073922350113478951128258076803991669442439745860164021652275755051709953023400207638051031664011485515254270771065366495781726798315838153869708438459378302373798523090939035643950044827485510802410180572329340186358822601472322119283961556483406632093785966310547505586865816848303931415685967251480187697788025467981581923023098280946733527337982969856026614123913776327973970568966200161669476466383146825477548741149560800478831172545545389603539115541370243467364536428879227590349441071683835562201841125940876112264162976688054324027128407318901803886046833705419324023990857157512792141175339413836868536402473500958515557163086719196897604093580809307480067926503124652240855910777020290556243645774648295315453129590844545047885679244635785114447973333441436344928244453345135888215325099924546468556364123742336646755355712645577685498545842976329707065552425384665829564964612814424201158097646078424167366153286147683198352188501665401559422667547683086374777917367768275551701411256436374870786649159520335000466432311993090074583182191015339505532852372899233079773545171735065536879926957672585675218157792268110679433647935873740419570164387931684586962824406742107859676567762125232288591822755417505822777163040293306290825037342024654374356582276661092381767041197946751551373116089425085415622914778647180655942476193965433828476314433726924810553553117738390800809739558267295397654898034734745746180057447218296462261802546607042853124499489734682622074508867646215647213687078003668242421127201379960133890322944921374215024890644086312160597282426018149048495565778897592657736182633189949840579154084740285587969742524691448486034971539768745266101762770825953744607054129636521595903032440531000960319164195696190918998225929237662694841908255635186319871732609821574016808827864488851786681321740669147721579558351679250370377758926366510945870689792986831616459602886055240286537688412791423318469494410971912924761205583182587960915509405688622189455802473004092283929693542225745027547313568388846451631924118394744490164321495133734699009863805193059307703019855321610660162733301033238115758709178930544374472510770206459543540888073041589120555886259185348329246649158199134088569487582498041168107964334375129249392748985017011304864928951976507855096454708537009033356185376878311864702022130397274921572014424601544525299903312193838581498912946781131565730879511819523991805628079310720080390130319567758307356004623393555390595105913181547873111054887566480255523823748639985801757201422135573906634483481476794391978628591420179037457995254506127187015052793883153448605664270876503579678203262719666241856509739140735960497664893591813651554841248453673007556770148296318866819876318468488874636316313978233408688580577780567236588975432781349229728908771933896289203536984981251411773088301850889398762971878880439049925327021408467601136488315728736311573354043327055968689695180742842989413634206840617113090236272740333055401095929087439848345326991298091009957329716525007913379128014378066138009767109821369254221892565934062681350358201306653353016610275852084323639304747631633937321406173740086515640463591783151417688446651864777988618931846963903836665064307084692253842930907418465671915421062676406425315159946320998711788304062296971473430879960049309998298728661127764498046990345686068521701592545093104635564276455613097629601070904454247943648300508931582845935165304495783878071641489611150290815754232760746824928869609697724078070462169886461991687074752783287238956383554696157900115445821758547285449578731789234171995174914068882088627843436978132754622810068987331229801111046753633415093997592611900197890014553049256656182422360525009062039523447056504179299913862072610855088301922949566666564752628353771737763936067318391510455315267724170442346445817464649468227221071742494023445059391813017121040692513124681409960325289358214653340987081602402606081019529104399406563936261196188260345330452625103954200904217777093886697620910142848622382635509102505944568988457013108464083816453300648972635425555667958996658643162427386407190962349020464962065097418580031307789939947403523801367277285182224442579313221351742291116062744698108141518259650535772467804593899627581980864830575900070129852608365174859209249751197278596339313075790709230039022745195456303136463706316343133145773834994565270739031834111697162906311799476480488316643908380929940950569397340466453840781633717006046702440785182902520182036797165052177272272490468721972706117511720543590671642522220235276442741893717792379879745875017919353394406377851053047418713885353892988282549694264897056850516411884651989953785915008637999811409412194816921643020077525897173670204275843552690679956414840690206896431943241685882217431146793614936432757338820812988161933911709735118393290042519860608891116052114617819069591864969987828435579124996973965557555399332520002894758157341023208480300766518235398755512690759583237037539071873839778373921976597726810715334694704597579975271570966121998907298031200990653898054524261805997109290814020767457808632354192922408365218396294978707042173421414117897186297976551751471789638220014194973695362961205366744700021063242166284991819406214704909963839714119279164036415659334383952523844502790004837226917300370466741115817252943598938895595055410028073094739989363862015309952433382118639165054299629276140778780722572193748250761985858761245354166085470878902709806702642848874012930054970763736857166207034420827319344337806523870979529387989802073233306561731385102492174977509501316191541941700015019472919426156037185105734310083378244616431382572337171183684124465448495929669619123953670634733323067108607589696967086619632400110929539387330418204053173677430455499630986279942901886067973989771739526018029970350865343590676504323142223431781109533596637552457445714813275458989540989960085625410079026307802978118570885700615539327641853539549418449355667389822696538495347462032100140487128245891893849247274568926007283474171391662281302977177195777938609558116268535830909433379357586276109822698502889663450113877677061063385619161389863151684475809167568119565655618846362515992755767021523700540311995105308727627677944777781597781789170479432020089557235132922331153453635592188250106856341044350572164458191332037080053962778491987291390448402294239383161609139539879941436519608591120354655812128175299475014880094755108686528235042570694352633414221569165981307075422257310282846465659446947017851051906703904004731822474312928312527069979216566572716869810809975824621356596216973004136317177951135758885105572260142316651447093308019267366489257278709350895027198782320741636448505878884084424965938633422927936770639151649553614022569542790432248826813803441794701657138928238330255599107374949647786747103043843714541806794091265660696374541808809510711461304985211098769111664163030522397644977451177661127000521075562882897943723997813734613404390453870415428892378964332590356967907768763960436682221230673893742200004124295942556160816045522858756154502100300846191040218238085273531650064873880930335173753340044025240540386927058130404617202231472829329677315691645344090741801305575988541461990452161251936054864901481959755502283753625095287644827788370400317736591226491330438586284722629416819471122534780220785951516976753243022984639065291962165315142808884313689078382251993373577098203850488019121902958347756502279051764853971093675240848657885598168085896374881125396617517427974151086436852367993234003976339722037551516780296980151766694723591806971375354358688470906123293334336118531783073694973845350261773444042025492327511084800691208755881738193312059939888940130707063541085225237105810308264133158129978493858133497645550587040736553347620847520019901268172040515861784758322958818099033064928807690531570418793300324950897856949160563397528792532701388652294807925622528721447639405994621167926647445844957749243908767359006583271403905104325219700084440844977077698100461734353976820354733136670507636349095003905636517736527562616577905878657615486146927930431096147410452212700870380848231840993772834625076444950835422301382775440804760721188743836913304181125052318788427591274987549827636976937573913389255018872436093128060852947376796118178253770528071055988383261887208002920539442616426265192698988485710447268297444089249696967481170653334484938463037484762425449800696949134404416297435604041354561948180764331174556030814820954747938157142002586650012663700538779306492435231647552904227510443331292376725758424711000657192487918169567451648501396585593469562107800538305370777210280840873138299864117452758588476979345682205530824864237633082387870475284425684333903168825387253908933347656723102896770306942050274083659289775546324260027978053234702889873935118794293791421104433079134146230059519426068620556136295595882836628346149454637330611215704710123064932653359224905896288963588732952193923929785180187366679863251675434160568649571605376112798975891893374902162972572080648570982784716935214355776159479880023100514087451080297525074670506623840299787908506884769009546040176546879971266777684358281707465580841698303765504051135355452709549972150616526130266295394618262553037819489175338017419693554156765378871335218317644857649801646622240308974458356785367115450679983745775784420751047988520833255493480284587057831330773871733983731425670518459860894736441253286339059039362480720462435289053653767847821744827023732592370102938522173803323609758110336144076419374745514611273435344322611931799951195215382120025703094648320282172939067015165100752065503150732750657914942900870526595645369409509024562360289068519183453567692071961489577543666953279411166571387720311369092409076720249320811463563038193552463266267577717547253932265160920962725151120375491914522428558874773886716124410724589441133258588333925896692828978388109386700053162677386860959175527549474968973623785240920485760437567925534714106287495066203061676660713081036273536830305641772503998457457108868345011763566933649205118067660607301412375085861410511835019289048156156301470469663889544184602079038407143201196786157130667522808444631673202550601333642590563357477816712218245063797821518144246996884034014959585813173743365412589708813354590705403900486934998241673102228386168563519769245020601039306819294840589022797119243832196996780067682487888554535088252493248227483914202892259560094256776803237486034730148257767962693278804857261424360903161472578410705526767684743375290418843512099822026363946227721904110458282165479424871424398939844915796036659488111917196512246077218244809574119038089095653227923551076141438745058571509548340973628893095073019564010699536204002321476502352964702001718884228405052870780496593420419490124660123983877630500972546151986284913752741710974572184197183748569713267424090303543389692352309704744665409706547974005521005473729908039424000006100824016306039850299473841765514233425305114694886919519780871097489965392672935893373841781872079500131768621605128995824185980910043524658697302102313352586095440615342289656976086142393973174127895960744569948265587274279346873815845030548096079036674883304741866821653072553489170003901209243312571976197783825542500737781755265478346140086711013278660264468220899020581846947145950682698375986045206794923861947751095370607892026927382247988218170839388054791172607576380679944197141403976466633608396092887672913094752720254415613138006877576411849840211161707163927874300294433601545122433650454668246183232480162096097814076871123899580563060568081511879437700699773499630442272531235812736820777804765239433463922686947665153637534293645711414318198730723045591383940006162636729862605137215727622263999546518332973544315654381575746916903832591072777874509560604943553850141443690733826325918714001795745189601843234968337999853540229448572668221891174626152643503838254354342547148280194728935947115706755321301792421043989468937012044554776904967672046032530693138733217583787576382633934682655314721290240918523199915726937493045008530807333762844670540593167959305208992300166629572579551471307793006547459994297968480742718142348814834556033463522689844491054098443819450445682780566882382645559704716306256584480038286058197996565841555817931613651369787888558635899515473564414864110230159675300613960229091099891230722081173808337712441210366275570813807867149076774881996414662950054756541596721152468655130674381613081233535765608273301223058391302405077164355131049346513832147840183138186010273232085241856411698423679408612401069112082303357474923031951862287930549009548899166577813710800016173357877778914723477615709768437043791394733265308759131222935347576254538576254258948148519830895524569040274913956635588143772705232293507616356661956198619110317437971057926807476757760543283060036305950820529182292470108585881073260542986765639491092350530595455600030637778151005643389756489182446756871418863517123776566859682561181438072944998259652369233492597577422094574522167196158416639433763221666379267323887361736452243595305278591182699870355091608128208487140871424241198019341082112922796111705360079802359920868003605568954250393267061426055839165208347980338137499295980473355100750055782785693318153326724051733816238811306517028839996350940499395003811624861461333912055866766872844209267602934348370423729686495208173722241670426727425899784279417950624256099965431412367377778997761937407643514257426029948876582122854879612216115425618693913106179372709143861201027902468431850981297082643276887681698632521614692654572286129369587379583700541153206037361886483349459704605587761575725532560527331406100016375847759187512807529269441803294881119330131700667578147078569983223154449724072796928652303063841325716320897231388986631313291543187561364938153649725745491417335644711967819075381213127705325984795225309186433086936804646767448628898688037631574099218011480143818552093233892655166822393068985254587982353695831231307931497779580877971395442822636773862940408811631282145524220990630219853741292514280053544748265520256148869159101346771868777832737008072730672701443092269717565201001441980100123276332761226646550929175659936275358822349133120829303281380331210977514155409619021654083341667637239990526464846734443148870710976383825844278629942740738882181232755877097475809419857728990065410759083851931886166899702382203656409737528186031294475073439720233525100850832907571260199434221722157946561967562368691484411139363400284182760327738570287863247180261943460881067241147573787472438527179613530123556332468110106106487670009717113539553351874483874273124691719283332054660056070198012020867841184867981744575243126146410947509584991239842253004710311282732567800880682578367024411244079617552698407983746012199493670903212867296320543315250209443286001127272325669956766821052009598933546434323355810623888313768708067631057301371865554761284083359066902546071144430738685140103880184682974655906379213858920674735444110809496060102842356538373425669085505911994684616106024379957202576427327305393027305289949314487755664725600108565833389251655526080168992098401945085315707813634302498103750979552145074571129219717536768792499998145231921921448218229358779231315012269782256268873249619787132458046599617037502619761722547689923652885117389730792517527249397780737397805817467699734388689441177874571189342462722228221192279634690734964244227274121797616476849352553653167693345019304731602136027570013960481127375692091214533477296345415172073007160693241915295810670266356775007737428954369140101342613982878965337116359764135711333927732371667647423763512550153469846643216800198483700867981474529416897812384286836268105551066782857459768812918710329972552245764293612638275866035974027534192417738283006867860779328719664400338276700466777454362596974704128615392517981843874323873187302745343866278649986589614718549251720575077634477870152494537210258396478625986176996061444163210276661511163753597072549944106623184743171777727307842843865988180124262301632783726497806012779069533345139162957184121681364435296376524838492406192274461969980867151704781445374453895188770755190503486585050708400341963901945587298248736790561967939153313934914017353079287994856635256091773094358387423158100635958200910770398030879785601429327882952205801153539571211122639291764873883330115904615410510821842111458139377335068139135364634116679911161865942235222587043887167127915047138980213571012446431519446893145537359202500086488769011416766938919033147922913490142201168188288701171596351721229353269403684491892775580710793522883916104216348196596712774535944124409805111991232174651102105643245928067681196553456862776233006233404455592883196849698036383103680042753198289490040153142205528021956297064110419345561219697264510738714234706418299696591245707122870800464837701343327772558587715936159112382149869616851672576091682273199489802342210329384575750348134764093551012526487395433255033750660681743129742769626557360740572473831183191665085620060304214039932390685905021807960557638461420506894625795425027740932968092127406087706907955379167081655729321297735482046219914125469083732404531968499995768013801971586424157885150021626129481832557113142455457977668206715799075428772431512948954967484273551492203481657505346778033722182184497321427069034626101173026828222842128764436573841782968821782821383509407517802944958350339415103050035125799481229156479125914743951284231604779438684597155880961743513203379238413188922411409368785737731349249324043229922207285875208950894750190098961853361428303317180560376710496084396108562521432050970400048192393205030709194829995764320377633176520085709250290798130114736134701014303462021653864679193721074765821470747963257279695629292169539643780969996618594765489527743212259952068458952375313318949573464471354234725611321296568712312377071831619542081562851513046917660778758282532006835522606603961894457510699205414243817496805412271590389102193169676765229680378480107757514841380993088168817475653652634565619077842425530302850639568644156468915853013230391540157695772505817564260014318619492667228694897422782654321380764055020987645007020176722548849871651649494862151842249123583846351059021375787177279646990905987506613762467830074530744344275504185511757352482255590086638795864411708087139826892624088413198106808783028163210315952552448728865741316039290421733014222318629655071052127075569810892677128362880588806455079723988803925993919854094881350144385391245214338145046835926694469635127230033735016707373710854978808496538024713903313577277937560402469588966081376640417736772944790375030603282919339252111709083588642691623012648653795524435517540475630572658220996403550429912071783720715893017980338877607435760039790577200015258450261567756054950405315419300989903515872679296161803341982447648020747175286496974188924545049188129722791235472701469903946817513219615871266958227194310997937226434962143213259541239389067380157004310253464016363288029159559680902006983998246440968152376800385685824780080748387512502281713623278559244487068491130240935593780990294826520429917873736266473006981912533683943260559337458073611973190215023842390529819082846440389043695006434437987037285942002217653336779632757207655638736756761475679441337840384479416344805318133895745808643297110669403022062158961983428172058302069162394534868497408712828046184316004727589554546142149515986298235290660733272158757899633445801043347696202061647590116031118226546704399155123227810098066703680560536790551141321076396052454542914335246705672518254407282130868307340972053258912451177395508659732749741662060218908939045083750399779196174551615312353831520885455442049585351398399352610668630351020106403566956216323337696671108771176464270714733482649933817628102249505826834845135205815531054553677527213607901685941336529798630695723031094147651126189622019616945375403155103495346497114396186147992259674344145410074620546687858016899477806398068311673760486234303706113415241077737415863502642378898124550822482965025632761936733835194415285114316818543795449352509679837791233458120339867534321244402601390471408847733495358191514911732093623543472789674594963585134989088720785284760644936316619953856213805514908725306192969758274397182590827672737371366393386860027664358831015379486478194491310412837016927065239306151469099188343295324040584989517958686485637423789056021084822792555476672886751520084949591125324798481202130865276844254963378008756536104043351386087170565187379230311202468313662463784740208813706634703982320559769003711226220110504787657082488694583578156535359573897119160563694970101945013497767026609975087761008589672291158123038996317383614908883392649584327192707735342732038609188798000899830727503336396241983830981514667687114326408825506438674652159368490908061608077013173462616604038113615464742655034111181057710785074971882720399581418481077284320181162768181283574144879869349590748155224838696344232602238367411733283163691476967321725040910102254758492535364711431726834855887389831490923594626512079062584874199082304274027997363489234887979084679835166865522872044523721155742742177271105389260619294162730660755757795127477136237003949020926256396984281104543472991734322601450712138188558713530989959356127030795283820616180800228302423266418486149194716334522445021289644036747097980216390176263878493063822298413700316393027669350572006946595228809327911610948617143501179991352361018373010166081255310932296441911166102893143133945865555307246221040190698422701708629670998323226404751191375864844466129415888477477850269447606357177290021410812205665829454309963001602167538975679656919237661404759595642274925487675573943581110305521316117541725571199976975092187925095652972728923459511693912111578780274470339730536213779506670895928123582654018101666211902464977466579815494488699339650163783669362084012286973457096207951919611412318631941247079691325009180835315715754658584722548513197177199137926365678480279164655633490016497768468100724026614662299995859177935649179083442435570113523813512174575661347035752502482366391333812301860290956396525272327480675137459843732539713624036024368536071279006832722780752431974271157968938935125559811337376735221909167014687429243040441961744012032656575709401601826619601662560378715583366427129641426142947953132389816574194752910259532568334247837030728388440014315588948922532508365383331366278860417964718897149479926965502765236854552014452916081657585552131623245904940157523842909345744046480180320714500156553098001482570011359694363431613786187407817520003892148457769336652773566377692290774346188337278855107079481431024450344368863409939191748024859768014142716485523117942058983350387539347558274639722719256995841612274517521787345160283874067440519777768472200905943404024453195209738561780163931940783546917032867133046676252081854183956479007666693565283300354032967873187074093500362656112803549984552941854982818032109817729387476659286815997353751724696549622136391529209628311063603210548837936224739252444682978923685744252895411119527382952479622439726706532493222174732538608285835376008730082171443464708093853774633546034263010411761399938193156006293178204876220527361060248693079354086749703597389718508739629501611477855338823783063719601021776288577234425666622310853944993827594847426718671114053533086257860315192245832148410540816133944791567502672569277224250585797343452632492814430944219102024289322067948455292154008289031508475941938517648739057782290615763427336353263791617291043029951917712398205662145843751356420442379419073099352083461386079960018287068506908732453884454388197222544378093283295097647875669064044618180275623149463930631237244408780371821306429686582067841892887268123056163438457670839014676794860416002564397895285518209827188636566257548799395311054285214655848811983850862341456259703523260180730027534319490706595093603069242939869592002221280036357377460402987141400271912442624369036834541686380386815904208569759211491901560633672439812531558889818636930709721955531619540067422097231712594027890382699875157584411699642366602748797784979499969758820450906091420034791411347352032966763910133468380676606395636191874737439320707479253996785653639642372352857578058222768525533485532402808810889810513574122127423327928044021132382785456792774236383736003817985439311570711913203507393831964925789077821357674403239617161124642209193267538681151763603205580599550232704579844925231528714875172352245824515071844625852081910999311120379028404617514765092534547825392346968448741049078025700249714147063066516692307223595240101501268516035077893246624890207184663757762225848656464140830757558032537095217278423575079004280895600829702716760973808541738861769960619000148149473853678210897601069206380953816863532386642864965070549913389544813943365267201982794696050601131054533586917827132889657660211394269182821340841217486893182116879473064382998618319583808865163687910754874643378586674239007887868617648059032251991393522549512858568257656943936742472979681614605470488368666349128549307296219806724631333638043124290795596217058521641109264643334317693297939229801612604452991257230985484884451305168413667878000721056766674603940940006524349539700588713107898462661758346106989699253887908369592461744602476959561617306121530827726010079384973423981575924161839606418505567822010610844912446344839135336189089406459174218529835057671754465301565183032777749115556029644550306309023146692980503611651384038248394410965308005135338482442062470956601182823813345052607224028493732786915035134334936542604540092105365955916685526465737289968711307339417344216152503766904185080353482627451618313965561230399293505454196958560910517195834889441035663911725545609353398200791236796135914848407106576082925035109774192866916511284687189674013028315359283139403959796758127973602367163889909877240677130516775901103505698380296883448002770764357580499422883141047107368061671756895806219586236559642851534346545646347947809651533180944420541218272807228335539694611723640309094416907592981771866698952291543361829131639065009630512807813280388686364598318786615403083120216008736082491806045051058769540453009158324259593733714471696211977314409863936090358547608360480611850771070245026236476961454073332605749219516998225379209288743047527989371673133124303087353496444290519253621684666594664412094747048626406380517304784385848573383020997561230519305013319324831562163238172956028274547616920401318153149336467226918327200979108271247365599775800501561266041657072415957232685806585095931686799325148762341301407373649643020345901678162560067139943370862461825605828599968355457731338179989817481690947236892139554795196219339641522769182470303319369760385395448293796685164008306917872606602419789772932643612133349005746117175970133743506905945921632286295008882616416115679594288446953621290085885960017657452679797946355753812017027602376352930263618403557485406923004564682988142465323920524418500322752526925681413764401134035691139222426769235512664160281183761766609199529342238195417540149941425005021174830055533410136599040684870650666352009748620554592018900293439832727197970253908098399000692944618073752328035132807236354323009567283138030306716117966861440556402566979093368953926731441145218643038465906626408303314546988169975087305905702675649744931513846952021854984599147798030939404557435494281756709578916059833311854173046560267027067173776300096552043910263382956308425934797279622976011735691174889629809488543104745555824570746956271770734164427275710039833883349780010576317796038731785072187157594332516870799233933257515580144711463496410272769747023675337972499405525521207031443831380168913132331341199900508333697212723305349536412782343640560410340423237760749845633286199203312715787048589147857535394887962101981203010905264439026584731760525790569891310771942759010225952470641728415678524161331351770906221613947846577750065777484792154679743528762226426838834652038684277439951648396541452404184098025106178071040227209636523668542556556815743614965850182799147657879252138201328741912511130935244583352045000682775300573655254603742689897035393328383245703148346298460486779100035929627503863656515314483474950062630182015369670288484908550900765625096112288679919192454720449091237205996658259304789723530040751845645162386898730078312255808160667390944521345730504674350588976635230956259108193133730526988837933217154871708074665509610605617499493669654543327354656253765580527344872584738666711370926730443202077972417611879464333752650474750699622803102133274176290576643238920631756168593912030548264573103751935344223210664406104479098443527717687869007641052272663323423057003957675722206669892139609033171033149944853555965366019634815531923442322432354879259441308716996099225244447669262285739188364197046692673758732933389407861990547654624526435398076632924156624220145549078450222422420472478636527724289195129064913442544583037663061424486845643926375511817149544759870941767919008545038362363763733097051078216487963016702738539708006003531414207301861442655873095046787817208966159139692539013433538322795978873659805271833635324079854945558970052010153237627596824837151875602407184511586041226357856932412474515679775809927471575306458223331779500572305463407811503598096320193154467643946430278031918851850097263166225872981435003818695321855869371018170841171835793256278107514651917119755261688582389874270395909249123698715568786649278187270021738897086570670310731280582332543189488337747552918536666936429616812574890197239649302651094849587745617366271310430132368173928791263713561541003872558766838422224270727352551632667638691499878544432526174886417290047878461124881789418289193589584996399552813215660182687649753999195574670230344803056150834533739471871121712772645621772707570269586074389872933448755983580071164109846123747823012174024961790877380665676032867423487740355052578958315614742269798977084099513958439382038631851489482187154872088101757763669196175492984324306457452402548443345818858731264383245930259676431393347261440231869481856290349955850582924732450545662241694701181887323298198756886927513108161122952515927258883578059385317715464667213828611516319616534737295162963217866099055426260896485539062252658465440105640756275092491130667568539426026693005951966055831142758660651582152750433460021006876653718117241468842865656309625490810975828040894058648238342792287845974780561253829032922351410773557318034070876800977645899665403851902840233264628646441403560435740141184320351175918234240831961754416473815654681891066607728832006983616154013588349134173870327386783093684128900699177915431632249308694192895616334503138440478559508688991943001479351439647188874861221279457155524430235434048184399845216710045512890365921606549104886555966400080780435288729074825470845080636874883309077849051898604524461219876372707371543484021014420402673711230692390042474381431578666680491640690456313715560249930135102241607330561979375331020675749812332191492685831970208318034825186570665268037454569208149658241558415071292370869135033490055790089345805653119325085155087694160878582307454906927874957448544529520810031486368864730381607598063382853326074304066989764223814696492168723244117904854833180937651993883533437286170407072561924001757775782629633665991973292389825122965419829707404949184290503837375153722056938508435045086809476442467656668062034540535958041154290706369272604156817408983477690627659540342031775190260335989280767283645015011463578549833522851663590881165469274786338627987053929101823937081786436626414906662790580497579525770166362977626134174293864768578805186754950267723011650628249722187417510775032931355389752985083777729283744574132434714022614637024919067219698736248904320699203008276725382520299012414438556731389287935614941361470460602228790798454645325484283392687931468360421296889459156725408722653651107117069658169382873424373821288190885691050454307782557770256968580825750423868658169933908195968396916145153186126050830905905470434772127521827664085974926868572030798381691659975374261222800232506821150809459777279684489850357083850184695392160441823710201507203239485811467497676376313663929204377098799380881438810494706755548814799493927579302449838607035513913352665341861326811879163214149648329942753577364294298600412830301057960401952135253635861582434312030821590519818507548529992371260703056670245376897866150145062810486448285316074582783670570994289226229602982464127487307153159700450510134541954812848268483891398648024677182540621586477904496834561944520816749443812173326700418560109348267900909873657019325742732550487962299116232281860981628702455498946692317349379078538910278998905296847139924343797327183673467098499028283134471803304595137587787279468006095423611549893536138397184954536068478925944489504681066555277749520331774925802722706694312769722716379881726345188003345396849388272960000370411480881327008180027787353666096839874004018051832263131686394351958703925440361123483199593998108937241559195697897800560535979477818756477819745432855957056152332513569718156646765934577982544775447271716061254675616025336495180149636629695569100274051201691995071102602090593609605601475582641098104593101633636346246739993481901114587271069714465954419764922285351090067311279869763854024572680208269042931448605766849106957931789466862307497534903910784836092756892343185568456579761767683617660319340088883819395236191234256917066123172041630883617602648633580594913633465258653484586425713965430872619623991559323780698075900053333694099832219945007845662899397265257101150522879021949272426299022123806645019044378545119484588328267157607318436591262971988739903138777651329153174886655736238777588370686145363298983726729480128169590772056777413725731297370798936300118369565734207836632782687936420309158326702257863525515294399477582110158416863859136114474208635518189286808657738097889487089585088337042804398064384216627596160124987215312467293196470090556093278921652704855999261548776896185661877801259700964220675684858093200737674949520862869903403973012344478731852147654648793007015792181278639991482468798201165780699878384230567080344293038937353289893230121630863274133060440272973265140683814061525530339918240121487533206504757358992280467809816356265925178369792143359963346507744854947763100259573687741511127041899079361041966479948461869207389579412984666773540892190239206747407147771635013032160759169500646920921227504606469623171991658571598725919497482598129301295396328892103817521084528648127250461970198562882548134309382661198326716891814695685966963686774679505178829931814599831411499925420046138170260194065608978423489684677341165690223446987867454890779919308389475849259010750891665969460702186144971834583337085068065327803225141568868085921140382522691775596774788995498791222907261009159687262125678803853752914846200859147138264929628456453368091954334350580453630008365049068381336085564190589324436263873566466272554255448684336633792825659808211920979565873042516439899696761622695607907529762394826317654838479416924374914573767383113656837900026386454797162660596419693465704341643131576062184250101671292180888904478162877500490484169267403837323588050802250984773626571064456390607306277691680016537499858044532539040784219555838085975569974640529249765576211061652920958983865711991991821057183882317960191350441658191780410127311040649463167529254126279075767944029261750224559703210233596207719437544819394075744545401938533376425134404271141500465499382647460182856756332535465647103715490589443911602362057235546595954596510508524309900489197248136009573627096518445100734662529398977835117462576529388707425018709242388426274716097150431871841365915139939940623719691446649458285308479987968301011004422285380144903219144349411773300385198095749734511544547175103414442180245262193558567608695705499804511973104574153483652636684345184042085418350033702951859475464754134033441700320299520774183806679880086121409024323716529245225801059618483524416489597829920927793780431191212820284408938077792115222874121522746000199053258026230056583613549986572944002889412714096172793845719427830935039041752592947575365402798004806630845102717620917451735042730014155733794535918877168995391211254367086958614802831419146990133039317930242961051805793532497085159030941004645749391852182360778226736340832608671757110944405256971329000398481665554103320330954342383107670302681301358050141183581720915741789481457487992035725505818136679679806553256083122722850170236041255192736273201076400424961479692623841066021469495218971170943887150556151813772007742509898023799187504143173838457328465411314884019666943394746686290244681873523761318805521535861805585526099337522448315130647267093461348642344872255217827550527380876079596331838433636811973890807880013556238547840595613828593033374331995117512436899732367841941278137483678330247563213514722332650217132557525368166241952065303629622464136236422117272473530109856889635537677515339234327522113587853786023208573940969021439382623268843604418428761488579685045750174151118935136329397927219880273322946622511516861783592246239771299061311798861421845130991204544014938277920364760071685699056786783669933647656474081572066672903950858288380640857586852115374482395908808523410971804450131295844092849232084996935793837535013384982822458978980885340235485505202858766304946563023350196328102844431907721525568127040026222158546982038277744244267734665116569802064911793826726978092208512894204001082642043851188014132784042096901224910329327257218963307730300450858869011729912000888155397736860801291165532870433956630608179615298781879465366693158760578628649453617312948250438932905878888190859757573306101218407800120873088387069347849953263782208872625698414743738508700210042700075857201645319046550021492202084263312059298475212714425124222161593550822221425670287990614911183733262541335540534572816449494670901852973578060278266188663881841543471120758439991187613597258292502474718733940511403661746711785205228381353585953023413759263702551281450878322254507816103292286604038941657996649183159148070304638923322389741198665304566797038279003888686704409846210825447547717875249622472877391808082017891963350209222173808093909423727438190790297299826045806802877618622165839327568034139085063954602209499717025699880817079903071754727395682155618374686744848444344479032190904704439230771887833934155339378847791895781025008482523937613374214628743946290470532917012678916888712302150606466920864380003838851299654963708855655955164240278852722858723655846978333977008362588657167789226401505193385042022145320507284913456860912324525134570477092062843910640600110274834585656561662425144462288421246095578557351549547264910233930089927275483066812186799226409274695889235746474276056541860416509953799827787191233607601872461670735420519794307391005255109063209490405423591564218169569062270260145231597056981057896805046982141346206454046438268767956456902596038613532526321043942270735632253922369093950165141284157817378641191368702840632700255009581981284617479515935309698355286901463857367797526594528337414391241740111759893701699591607975276019133584175766078524168077649805109688584448540751912425990072433349631805877804582691765991409385512784692784493418768575040726656762895611379289036384203176357967985747011444042446268166516339371582496777040073793046623061257893785395861002887238150593105597706389951807670200832710206311556240495092987079440221957918892516173638158674014002979235714912834060013062695672775875982503719436923671277943559140369630768517275369236941520898817858065167121388176628384788315567459185134161595644150057474502396662205296343299829634795389811352094582336644983988529770233172877258012487839738189388063870162613089990578569836635448054285413065949462476707365632812925308169495721681143240705061583091227909598586449646909914495072294186472646616248130823079701714317925341114657559123153137568047222132582998058608097322952975638760562516021262299677298741646440722957130699582153712525016428043200033426482697279339585724711653787168008846986336588684841954699316966490459128007611412198917482687283497548175699791838747501338065209066905570105656472628709366091376646870448711894741676668299745398067033560166460362609717295516593865752545017856097504347905346240469950113474024662146518087105103090788002937294631256389952099457770156245054456004603383443814803330888908991268614144366224480556711975589858993002749257661431520417967024750008161921459743096945394175370468136282200421095477752749663715354451452409802642901774024113552524799938970967130216043723715022239379608381072233294857009169882593606364986360602421068525062606838770599379024560570411770119430247292997830187766604720971968574765487164134648986763057594726034635399087922932982214914186129202778777658091830505877298336889484815856065565240013428588630140540459813261388125346469493980121380561063443132363628611270550476635440712167760284173135602374335359888002260064418774838103012073868612534623412023301020791242526240619694805093934990393740068923746448188100050256671998843509291510879906358754793961407281192714586161847023815028420136261343772991473616524782686421534320267506251054163813629967156767443878241513580128351626453166978655262607847412356500250992802593771516924057441878763935962933527738321154651285225150792472900214249300370647117184585311203569075604749503559783819245944341626722885505120452252953138632618954036039382735713383937933262321107701821855195157284897260736548600429683490137213885773240035627490252708742968498026362549343246475164928362490483882629944787348398970328773766861785840245423703969251223823654457734063987812890511844111776669443460483806839734110669170496196900664047060128554928266385198649415222441989327466347777416106031729439308595795347636113112374035979357014704423426639876385088691905874385311948197044536653610553953228140403362591618164654747621307379255834756815161487470865168220500840388907033046361532438896280742609436389257987415607344436060973006603356025520290170214626249212351553571752555428329333243791798807821724048332363305191154524340486204051293831299431815229148957357391417814962386674724812341031332203834218989611810234430242899803615646837970432723249464761789677170018428927591967497411975606644745436981931041403851340723107687178912474060638523359518921697168268529134389106470228028479798803124481455487087710276945725317671851799282638457962786550469998700237755063467979335368529702000999788062567428825589402674361729824703456647258710052879492172660314437891310634509512422658572346870135587576314426734822783375217285806956388290327070799739539962443073202287045332471136280415944933298397494932151234942221647102174161577441114371423897323834643279521244231279675447275673512504129659178979333972681828246035340893624972263871852682523638443477363933762722043728351669825995754602002736694169351315983943430629667431479938451991580504111502013337218611852189893242566044199583820566579461627680171366398427301311982499861634071428431565836078838887158991855054364348507405172149652711885103973080928606975590783330750823935581812522766163332044854878929472670364100562648947424553957950459300653795933144898645354346930566469842556607618783859878178370106173772983186564877947621864469859268024335672787600577706079802829481381461983044187135216100073757769691721729567284457666302628906133957162454203098333393026244286636486390318291536469688512873475223943266517943092586517748685560852377478989100822550728362640003303093721160164695397401449683136822797849332132949525565687864776426774806902023284851387790796484914393290907652451464893234502263578763373984378138476144240062655085955454319327991639424384426142458935531775365057392055648990315892656396147432363155071665474264488367810522856159913826419231272777302410663545644841664459390634943161792320666880693532257123485806345451077189880348947912148571169534478197646593087617796143508088579340824865590967145894659131548922145817840047038343704334901271320615539476788073083952742016541509382149817108333835994255249354366125281025144410948639142869059284514823593258095926365390441464879538224560470372907462570022713433078542922966185405053004246515099993021529530801245709712481231949346719310196332352542587832706464191474265292473443455853575161502033258014027420191672553570547921231081050644056122592154412167702037268239577788977382187457532201450622193025532153926484729327522329434959558108914852083913316909110313262435879206913567538792821679762700143953096815668733534740359695308344726846764278362084095597647800704064172110341818436411713652617790627544793570916397416968955551374054116037276982660747905106514788043371617964532988121418833669699190053846155938658606930159063838361272343471373975047445854618096192310243065614134266375308553417520126550593924938470168519072777591601503407858552520684424333213553070349517296990498073885966119550173745371871173191482115588477046668616142338157599106955631923048999037868667636927295677303419639741862590918043439324479573891127539974165625890871013020378946613088455077944037196795663978049456427947646395474821434049325419904703769405333935906768265521280597597480551571668466702743952035810724019748192289507412881569712653123940456942455332495946795374766401824342064817578897240805637640525192478942103367852747314649770447068648374431272096769393596173574835499337233864940718879712193835744027941395899364937745238935500132138684390907092758030516746244817392761654788376704265139440778333060816140574080748350015678721554561348544668897251884948347183656279076031910670409404833766449084467506243399973665487248864043175405107114910275897954073605386970825991019595383673025507478092093419711165036401848286619363296703340697484771009051322453992391373466785824346892530343714803710997340860094219281601396455723672827320353872788469989061731831972282511606422666243854770281191822752547521953135224614670396787802838902017744229869500136512008797517508902125776726870725618011304131744371960493677831159703439003632109662810511526783673760847948828533417778969216871556494293121983770803037495074167563246412847424874165017248737749135551877370123400856444177261762126906101551489439941098419991978556983501466372858161667203022209593651264091732422563936014816090216774311548428714422909877960008209352670047448575650838392110414060383065715328574411068542170407327847542071778738263879838750705637752888504344750182742497018039050436004035359623311639751383403940268495256840025675624957335330928281956579476891461906633389636841369492955308958855007996821626464616026523361975112825487473559501889341556488419928107331077634104998823778408974170341712703941776395862548253791596824018912984429005792567272273107780144729122720095112869491225222225553038272343819467468971279761478686816366090401292588898004394593051295573901573831527924339375489380977464320389907262826345731332359859621602459994698644756828700494576548047934027901439235321205665788642905114826151898452696203668852727091904322286727417759927134272903311746372136083546975108827866629817283002688453744570203390740211393942154015483236208754637476723681860238355609937470774126086076269127151391237033756692859412888473466989861385404599390330025983087964645865885203411908485962040702251397090458283003498146383051207049146564269360136490359361995134910816421950219413353520698557632926969849212657891301559144283544921948951851674613671912878574232709456041623238805914494779775043983109746740531989921689228817308719680927681502727791654272270332310532012958923784578891531172573533011009306118770999949020904662163110204703482974011148258505465247308067876212655109905353400777506917954614307307072664937967288473177470238781902482225546642055041402960172507766433553470512829507027482473177189176967831523636816026468398190832184677498502254681099669076172980219022643135602986688939114439194186096658418969703225387910101138536619712004187614747955361628123206237041379302120475358616820878989374969347873419927476505477829276311580323375363183017564802538326485950719629574420522296741819210698041732952754765358581134928519029834686803528439465793243640136840748865198871020680815143450577335299516776380143684209507877285109856286803380864194621435448764379210312731321598064017174405964597315669975319771841914035329178366581762244646856873552740855816379538662954528446939577609482895058314882761181543017590802016144642366119051692519718309918107984924603483412391729773203875741815792305096451215482002100849055998018749817718039919422078255871944050673920025678889631797307264787998443672764908006765990510732535498803724026886063649479883221606132540020118749101369076155395316613252414967709637444601945966581720267712628546343703992442772972050513274242651399725238680571008848961985880348166090043069507655019734291773443005062184751537983528729702848935851618663818462476701323849330944757684323458000949040517116209152166100298967713021404839061243075779327257085285259408745951187578046576873719473194905965431973928119329545911822676739704308028025479731448439140824024120457555761258578381323990899106772998135314456278974758135597922386114054558568752553656234971412393779590616284844850811988113094354962449329068270123208410463425004306954263375183530413740419468616327420512885187007836681608931253096446058903000761411603557088738908648661414709057478910358608603179768962958540112713614190209555537361312066880119046423121888195878017305447662340854726131029818181149818281608588182130895933077367911181675627128566462478099246094989813113678060679799039362869958941615676056408825640183599592180700265712812231714367994474922839345299321496428146677219002586345095008346065025443775141361917210280157881337673992960221668839860654399076557307264510794921877413838606795862155312333891632323330834945084040719839289807684299277321524887933285389356678663906039680741449891638068448698988437613338461242324909885601657142626718301853071775802770638129732972081570645518476566426902713989941854590624566224252898257380633544875657302551563665925477869457127253966699545449538012002653934918186142888232651481171810110347310812536853410401434970388088997207605491619570802026823795530086976473555046536206570250698121372270954790111356814202854936645552828999961125072817952397459712616780944830631969493552496748137535721898111762844097399555298999368272621063013006300629443816870678326680958798012855430216714598737640104226916475787100190476137549036722138647562468039653970184091837701800347484208169991512993163924050661953608095761164110252031921896795611996689587028609269156628054634031687894235531898275479561587522197693735896516559572740572924231428420842019900136989743570431004002246715742073831500536611952085693099714191175235903176435055592020268947740898350443249894050667593067076034474590663569833764499512983243710123385085685520562683852890473800498252407694328778253328883312451674875861536325180232279521905625333394955994992872120983022432742087229963466023598000096553952969505385023070752796878863272195768361183750093199140532406520137680135010781848814160646625991771370157446183981657575834077334019864737986519966939476567649851964317140820758843782783305508264251252632680059286572563309644873066480488011726322404792235718140606986048139576111458879220429868193342391134818613384055384770701453899648827587955536009893112229799980308251335798882225115079124030128893422935674258308034077518182724111513122548145087085869628627271664349559820633373770026671328881983242170257155280297971743673482843604214669325269628434853278825167503096434812221535894945554140728180773967215972070786285422430959941369823557999558809378309411287840355361575877985105998600651484149559002745361433175668128743975625783062640396188032881229309788029987291963641903529032549909356103816879758944559644363939772240232459924243742757843853754037734731707058259137687600989098459866586699566615440695678209613840133899597807297443767953133911446631736021069557065870950177502106026060675735200568713382255286586379508162536699289500308119963998634222342976011351479900646855677614512822439429206475967999874330301012749748123850006631254331792751084489084626643734075255715113206190161124934646692107856037519255994651608097792025465576487256715972572186806237319937941437134099243416001496370432835041485942622420786527353644808066397621038353323873282690721702791560356342011382502391126080276499812981674177620474383911386434378235499384620004088114414704279807893940776385319010986627866510949871011239218737859383023443411306951071786946765872211911213822729110705293266528767030771598409432886565910413275388480449832123052233277547222958483902759323691706869674539911925731000447723941218984326027742977863298937316124714782306681320225292539605297411992838224384324909147668988334788657607941907259296933464578390661807826618777591403608809599832354561917267026067741087111311918843982691489917800992598404538723442318849822229911978671351338329360768532694206311419385446968984731443957719234616633106761124270382874363898806466031480712044228652218736892747173463449120410453119490727854903491721785414716870038690094023635764116066761535920529848642155216127941367303893617129904807856233685488633775077409042005806033936365193063835621090016384724622254968082194361240749435532257466289336144641155897068194088612089381752189077719325760507930937122021314867772818545648203451445249738943539950002133630636356721554029461521645548777993560611269350210161958224151160912137579188280735013560829787610428885336053590011166981210220520285510833639767688826831076718374856406819397190730035169365792417730670682842205501224062432065233347263003605480917150493052941621018397952249597868160271827849433342605774730777491945031303321572895994923259924645397048015976723361267773968406608094329115615182967660408234266607729102483211207129049978618884405066076133528085694620055867998739112260744086695828170773195578653333742163223158450173169266527125727129787125957082440455140846564029333539142892522744248167556960783866447737390649959471086000396510637808880720198855226996861942897944267972342597494262045072087546033500180088153958744686633866340026123178393439757704825883495004419213662495429319860047500212645701957131869876458840700997445804888208710402944720652664271600446043883626008703238126809972340974713141097659871328665517500548991564719256207800081434413161609375063073414057706114436902776146788587857531394724103397208192589767888481057666148990012729004962352602617060135188508211423014905880392382363143879908990607203000680881019554656727085384046255404429529288357326337436813894756357881453062802218137474474823333969705604932182178622307484338366956857549348221827427735616962253018242435915140758549720784547907935369796556724820032589133178438852285574851306384693923023412390831311906512631194023286593059956032308322929455164550010910869658370066554320090970025457904959310857432289851421489276288835525395757227451196274419704025957077340291336715481205757460256598908812324692108263394949078767678718015483380237940305394188104090949741504329722629791810646367101866617724547190267740597434191788267124805097289279320713563626438823376302109354704150765074971747930008148682638305036231790871517092972295102205957219706518202195885416883023578951070159961079732045631297368847731843486160480367359365456801695369633136605242507465174378651699936854975278264379317204477163723218261988077092382583961694597608583557864888292627667453068032024663791092419065116723521995086849001727950000187823652372864795259415690467826101025113269956005405312169128238373541896420350973098633474909586757776632835593275903085204700526407414172958470878740969783526121163736728844940266345563329517613656884157256924502703715088733625191656823501964833901566557824909473019942304876888135612467056528815028131268029608643472056571452303675343760793624235017303280024013452496026276631371222152118889490321286211468571317586412334551269051245671297571091480404139960248740888099080161559177324146639300187808482116707947207186341947636226988057350598606357720105070430979693853045593597512172152715845910450832940246895540254899726741083778884158515573210463434568938796846292998145588548885541051243618716414378084100799108280071600713274676041471629486127887633215817522611943318960228461663266005840373828283932446470706154936246787925076687349484593335011693820966225251334669838441504051738369938267026010429844737206396393301170029992800615834932825275416417899062476446928195252365785916006708356146648589600263387039534896027871362850133310948205207686616375869258903099127856753186312603284663496307012847882416748747751759201688076163489513145479509181536472568388369554126678919898615002331052989028562607334836436182008945911056700034730022212884940792449035219819492137944685645931790395697829915569821370961615263028597123579138797786715920110194313055781672989380945363548974144083558840637450162892511969528857945018604767614404433769528096883939266887959688844056215517895962940226186201661584345700424767872339225707471331878641510000944682869562564367373446716087834132515682209129640717992285808624351514707006776663244741011229307906139051446676482873720793730475622623732797916918263083779568792278989029674431231400757464484273921423391515240515946657519825581272980939804608226967869801801210665331858450667826677601578926976730614519813414307635935773515679354718171819049730997832555377283358589866877825089695534212917062905424545309330810862159631981908433062811930557857237022389045936548465345822558500910133274581266709165592576932960845177281505554587665975786598317308092165900196605993913521011837942289698960380741694872763547560684492747504469270098426840906047187505302237276088755233205442263467661108162690188881979208801471118104202203931449282369909113226813308302182177548468873938145577297562530000199777430181571088814198265182153794389921039600352968355470985553221158786414909714560324442605541773179058437715447940931232164112583075372015646459040010941181333882413845126819323692578555294169389245244432909886980677999960122386320322448001116393315123173066145055538211749562843536534404572322897650584872146679612415981395659677403090353072104092058863332907711931492653443079500233345769607233511599428678467890534134276912495972772670645574244298182167937871734535889982174893794629474426102585398515805867922596413638132040324300369037758524677840644817637271938185615212528786977037361476349613437499893415388259052921669809671653866973783968852469721784976871245490388859765228045863120371580633535954089345990556542427029694494795355334299894671767247474791701192209479134180822954189998150786829492433989011060551323469120170931307837412354926737787576729273173142198516571361075796609767602474801695263906710531140702817933573325424088119387304144148737579924904766259837069904323195734870268396597966737686255971388326712775615916626036279961367505339877307618951014681032153148582232759683155430038597203586688862467117837631302271792219718193761949667663650320436652440862662615143041800813096976131338641846149505670941815797944447462046838355463758981607283718105288824459388945290635387474671789507147278345636366135794103605810910466578865351855691888318922663993284787227324481009067992029644833956633327097192733795001162384614891822092499579069474184402802805626032612803076225776401060502524367137019889424898231274796653562438408325095386526255413252376470927632541709143051306321201848768812162450463842226093891591204783486848567475524092133920471967856133613191781606013945383834695747126598203438232822940418554275302937352353424397524375576015414975247599812753316996249864826923135156365919828547264457310736827097485262810760409972631116626061922521898799189824712178616405153899147198222352686500376745156874118805663624889272940226014217558502725846080924009845619876057829987651213599831150554110409800048793517036822545342684513726252743125462016455859405766302205415538470907786472433327160706185217591917698734328864486992548826309092058270789551443314513819611681967034908296189181556219643548308526090120103907023742301593288521276156952651777879566481025642651047939873586390464064884323377154688670773746132634075085979983218939911796785934336969391718052908132389118254152700343995114507536496612656947849489065785518741201629639629971796554593683376047795656714823023655473642267935949308079341306955754420754072976114704603191047211765509201100121272955354232607651596368455362493191023134072305477180541737777390145387295497897038304319421461363930387527805565369426032908245632894939717863292659526610546700467129712435909937228434511343330275304141837800434788614345767543623971419111641614197385181194146641415295160349257527364400996568619040110413476312578199151606825112195700324314932406523313085305834810085103506557516512800288963265109037548386072433511289703779676303868634589283687062600459672811213835936203146506411684288433547333917338125841248556185235600137057516510523508133315450829473628102938041689101809160317140431778867383509036886509308026146488736031919209494908434331370766463668057190980233747043063866721063595994197685931143411211330779971966923549889117961843725854853524398273907104787294742236086746756046381080803840248915314528842955163424327591277682060303459271349513837350263520294689680891019556795015307872895813561815471967495726027038336979907122304542858149076955640001329848362437181892358735805572019209298011586909002567543359912877192573003491716823146271674212633088417859283163595083856882100833175872109761352774316051945390657884814500825554697929894915420979940354257087509214535832988520811521932080906160396421252544319806428184254051035338695153305513286940641008244561733233524025457444773703471449114858080021832895361641841320289896150000322224726170060327592627126535928020817169245266308244904909798502444291408771492540428074810070056499854229938120001358366101300932137431866379059037416546515616624088875451792774051141505792861093106925696257690550988164596879014342000325572428383794871553349456389305440092358040750093916423068784886544877306720102099567183100281923838432309940203521817340458497403470558889422896510376137355391584432967428616968502656046604079479052153190918650445270552102765655018889614200992250749321374393857164123817800886180602019184244016376548136499666519186494646103000237966110226528609537693493528112976982460194070047097142582809019254189947556408951883641913358737736499076632933095619984975149046808218411258088697374135100118794832283922174327215567524492458454526957585930178102554469887178439378327331584735111779604719705172338396588191833166094240602556821505549376986759482974646592233581869001087120435964836733554528683890537104107867634695541161166996487203034191893834701648534978210109986159352929674903350244352602584818194713558748367856763024520327548550887593775615510687386040338549752549836292702803038777391272955762962555245240027939500397190221969291598383028641666928644742069652522050930711531528361153172256737787826269942333234004436206071279752717030588426911417886205712738455024117101604288554712240511061786027647994414631105655792915700417759160080663315392345829578940069514730998022396913991605524861466056447196736347399700175208423446809345839121039435882193956742667915655699330914541835778388075954836017205509560215651145018391345172965451769750868571392237661947630719917165045921037188731033529286885718018387339678735004973034894096969370720696877483780494278475123023239208826046897397792526571093533565686535772800977937174922472151385880699878057395880870468934914793373956589248694164024806847866227988132182880311310101679829559183668159749107350834548882218468188949953265996121963042377955863626561261593774326901857710974965145725396934311213403276298600343160139089835917551878065759450317964911260515741282172402464624185366120734757264823148014995133223301619572199171150664628512796871980236259863143320995820150405890739158083520914320599132615977667234975133354323023557242121881464318709062532884163967923987857839908624706599315298278407505133287447938281425691215761754279287111137826205280495009968352366005092686314783090407517786710991079857466731892637359421949196464440493834819226625367886003676672078068147428959106495663165794938507238652773643966306509191944361130163366208505392469582134379935123966542815701487048243265428285159799952548760044855760052784101228834689698579316161587950519782934722993798844977717658708770748194725613656983289551125849415467341190898642286013625822295523832169506234241726227608325302130269180616836910969503245740948060063576901692673797526439060347028734359837565328359527701485796892999965333123042365528907702753101835147641110353369243306579610183557686146230426477743982927439463698960748722842922152367511637191575760907471262438016386746199333445639702976017611236772726008789917466189324768049452886028130632205000848713637680469840688262832139539421176599734490512737050487142497518460825765440844802251866502126028680144711228757990237451835796851075830085067904791082794027527749486616673369491943294466480565766470905425308820466042363395860921873061043562574916356773831296737405558104300585286825439179846964897626396136678716758882752892502768439275840151179267526495682978742897599001834146985201200479716272332129185053138060847200119537858671032095522007575420702702897623044124753830039823408498006625945268006114020228301027575232542902583360548227632512155503429664592948704748504134420754624995350191804907563053919633503455813061017702652483338253377195730192540608627288167288595544525467701736982635548773757104154256060389394841437033613067863854379190801851031181249022518374491611531732140828739974719783688869702819244681778450939748792227909152627731481038727915795177887340764769386488573022650819756829107914378797214279183934338937547611689503253206293981513501384947368119045169501239589872280316856767557683179506039849733693749670249600111767407506006671251257701158815790405663005190239115851445947760357788181639644361630998028771203161893039021563365395180086016559232469750827077846871835596708632189691764922943613835403511349877467170727183408747092021302586896126794277062407146208687380621122212526294542613190107744074589107948320097571538704102710712965323318855055838844669503418847586617616511938292089376907539820060932326152904062323333705063644203978133231289416685861406815557508365849431860132901550415348912721378058728868611674195106565031279717101598574235958190265600448889154275918752587561186285122825734706126979596620701610075000019277145677492895020986878606621179004956099910570550331872856232659219432570733060790785096185760162883905362442146109837831760169613595543630418131637723162662806594879169409868827940550685551408857670847909363229412514088475268615908237740400719824671975575476248802692266127566681900944006319071572907537521203145836459558913372914773877837305565181974633134331011099281256531221565602298339464189927740813405731380751428781028014205345560919058133081793961267401641793241107485674029843755582785506451525549248374035183047413131733761195978887408536609923715255841211438122372153553807673200841943890141102041823201250686960318378669148324580975451504352131199495341676737687796033417822226524274879035268322666974844406095150655942875511198580143105534359990565357826207240580866538345371713439239188732867519142999687547870168207263141345305671824901713037215295772501440503364820709705834698275366844949018989302963244900014858420512054418440436048231976709166387360771314890185027459748403349596305216698397035704899040387321733836997960078855020966599912469942803296453893176104216354625187147244577709394880944685554944104256160899099592626942071441625311190004209796053428751988528875975689291534337942609808544166022708961125889148572515538554102548619404366552493211302599979655092171088293097275109087286251163735468030989005608934846629382651542701019142056667255532446499852203921619745409334142965613912263353570842054283234988987205205856462422200692634850836951026179990330527201646024623285348696909571632741104279608437637537203883704401679817357027352184988830697762326885267843560609607537832231504428882051380865152487405452652282502868975309211500947311455998263286246670366440611300368176621983716211681547538604273636201780079871096053208993957260395809148698597903922870553716395810561340538099332552315911246843260806145317363373452683255126113081727521693370695766028132124972328324885273833282947883346705990462021385110290416368336191180585136623763760305049892880696804073507418723933066314151900449272447723972917471546994820093677892893994000019209960825259705969680326967833772631199022727776383219861581628281517090277291010798051959463365723958993576963193423832595953189773759339478661845453245949545551875667399957119328936145566193226612347432506484971140543819092704100370980046856674371759335896381010930047791310937408699454908677012233999223572324461718354935422684343200005937545504527436127127186665828954738972660211286406375227210466043885595723922056839970934695415463617775444736944318320056196891629851950386798576556696308732707063881969169550330408356383584520472105433785184367075105862431856062343239055537340149088327056322121827207499137580051613081420143350092932954687953227385782204057050418012086502596840550954820442050190374073428285558434978423406526733236947186083630663904911482739790997434869868864183854737793730792719266061075739877082238720866696088705838846227990286674260236501495401332450719096619395904455561564333324215771583369699810838384292831660922327427005192754585891302623069958314814111411520343468665406104960010135836531714811849298234327576244414708365744813453605775761719020671263677606482552144365462215714992496430908207853607109524038014134704278172112032864627245644048139129905682506274841520291507304439504432621692999681444180546532388645829402334922371913796030444825749205101173725126501169543401771547774301052591274269089141271923404539396339857138519466364502115955671496233389996376423223510212845526099636302974577543394445968871251602332106878807792089288808142480888974575443587939212095040189694394658141629714371469266024282691535363838010890464368593725963967033111255975716725381455891875173924424488051468609164164052822124543348606909538311388213379218461881738478787433602315624135111462176213963427247229425757032149178402251293215835741109373958774089609601423597761253738532613750043409136385451010138122074726659508099757239160629981746262865560522917099330709899700171537683823396369730441996560980275343509569217811583207496710269976027369940350412842619197053668399925969528526170098006211590569424242589800133166614272389585678798898074421461873324092389572020303215881910016736782825070236965177443125394793064810093073159820946992013899966985696855295861024401948033856712868316781542241912222657342305045526211287559755976777970155350672454544685571610801587894283713754300843340787723693937697003756576692408629359357935303825705759061687093407141749733819721891666230022008986244248600225818724845546061263098152866129994426909399785355898175267653674898169920643559048243190967966977158607350530328721711570934891879228830719398232548712540798977980446078621287046493183400231641467974066595786698323849960457885042330181349436883592909952740053182029578715487013220590834970779656524368539772341386323574106955681203428967499198538795585385224055534729989610458665987257001826053122342127624873661926031684464311709938166259789816535670259929718540054382920274921292992841927559086807749767331883424183667968749127006155881854897069996596503338193126165773546295886599865242894814790313289704131323325963517169297685070262605527428863910138657502850045849304179855332907961561544055795327988373753547823930820733086698980726166445119187794324017513264341476682217627740392901546790971380120996297871184690693912536406751403118822858697354699422806239699432316393838739004434190657837618866040215108846867675152305408350253445376033652088928476142665631553807528407232157796731636826357811197066880086250651504979898932440708400069711165001710671878416278021673893625209137107851284687887307534381127431192600862065886688841171248128734704952198019901176594317911210673939382890796780911031329193686407364924556591749635496308281486669410101630051942248453541141457596114283735102103951022694062244735924179136610434096542139612837769143504183284936168021623385535768034491266894864135446710846980061696238816906960544718609953296675085615925851443114750999972031483228294314831185915833120905456039657319952154059467025939140488623591022764541328859635914235059836997728369845671847101240276993979733257947341374414081237477353139032939224311071559545766582556485583082784459026905377039269995675585526044523244519155286242672376618419431495899288745772056086681459242791974652488224982289493338188427994603710984791187810736966731147676411386919482853633609329442499480021466037020621555520718100595333288288864238339037562848959800124064260812296449236478309531790645588345867576515080223714055630697705117487919453820928148789572922177333791227268056051733174413561377576196321662366489881602561579343508798145929994180441722467401952807105761618283383937115063020507388488758912395577587136779943211507535387033593536714178681719332210279142326324913911144979803394683236718915774813959247180283550027808847281552911251824778649853006768976774359247539025603716915846083088028963542798990422679260462810531259570030965197404444911522471197021594619093826759907339840659415684900863760933874817390520218917602793341526260952076817183730400270518919808524242417709428686509298648503443425926818027853130309310257772625570409660166420734518980263099763721599392297385181399080239483625222058018173828339545953667756175497939681708289201514911373339363689662520845548498900978928047768670831699289506573888500312351160157166417734142396505138857074038561479128248722661213981173017672903283145447387676584907231322917321799392944016230949109223318192290348961746970337775675689362296102450879225786560504000536610891379091263734476737991714512794959274581288997500911855102792328546011271765379194485406478733394343516399547574133521689367218204377593243114660526471099090276714042510148543025714901676869746339761762947739286286127498491527337680712812045522593757220357385545386812793996914550175016693467112789555862380592525453793761353498870797786258534242265677121617530875606713863642191338386748197462432639750110936808404768381811521823848567620316673740313133775809145797374057229098802542083824092601334230537415935662211595679762980957395757594726202552009799706852456705695727315599239639187422036991413712439939058629229735298893977310131178188317245690230798928950606093754789266526017873479733275569489316605313136481659749185942448659749599407242177853051598851630799021008711797482988307354684380271107418458847519070835614748252390962186671859169643662468753990436333017587806841180692399451263773922655952861761132190612682214203868239217573185012826484886576367581705016490327847286133990941459609269377517434552069113075833061120649601888314822278556950956365967589648937411946284708511982833215925332352897948157735430277870841584448799461965978569951719852125571922652461365405716209617058047983183738423716525086708057234338160050552325837426671071409509546833197541611598138229886043360889013458183311539903821265595431280553327667993152483363640013025665961166180600061958311743346976634225164938618888436462575148558586183982943214760168096038397576673745057491275623992268858290079786789906438293046808026097242085497293676692359098082787112318128871195364838309027874767710214403362764292177078720671468151644067075049117029121409051304737137980533901811713252985470170174861651457050382863156908500039252254512537564801381938779043686940407427164637707161879451162411821249694990861152768769483929692417793423924076103329154520492563157617362990686860246784535633577284806226634111392310596258885177874770137947095543526830984055198343828171753471291047992155358621749289541730465054003688579891756529613377442673399083106906127491602609777265205489903782394200154039244989185878443769258663407932254130925577749548703347567878540897841616411917406437862029029460291004903410692931563636727183543681915311087732451712010438512256017908667742338976165570923054552452282033612793593210674293458359902536656810375230607501097530164466075186976026462692539969472986497481169166259835133936460903795925974682083075483533378464962975705756285329527175907659449747647259756221743481715685849329455068739838339734479342461034495987349933583185943009782142072621690969221679367410411014534381945476424919615419280446569256827883671066205199237661599262206487453636551193327238549878062595974346563008905447514722548508985982737307744789149483178916809825628539533482255285235828218154329260872007742585145679237604123243911810755411685267246592973721060741635620508129245448263116836683661432494803504860066375504671389477517639637516962854509854672607716391300045091855100598554241713051575360543526857105338088778630809258215704778969562035715729188985529918200722597484358379346665916516281008737435597935809295002012508786368492806910852770889454934567141479469833620344352635155067866222343471849162886919318311117437049850531917208837573118481799015405737452575115796956554360547526624891943624350384402836737327281812377707311744413084228906042591113996764095427909769823873200967351612357465548731003603383227393132296348169063739733697650177937893428702987594031650785375864117515585508610152246670081685817967222283766510524737216321310208461093092122065503551239501486116854641062810166378188399527270444538690174605957901720386226390457912173901361212901129529489212187269065789235010368977009767601959749869238410819188285695849004852020173151336731944235202468406629000659417813625157969498931024452811952944782670755307543916645049664102128829783447037709815378651619137993425561221719454743073749805986355853224292196290010227514054872919934616613197513399163127878198820560791589031719909048944780730094264056950222501192254689777935907956319425952824480760015377071877454988583468722197607227342499487902663693742640131109166448944122877378899785283974613150267107558869010406868099134554718552954578253939680379941304367091457130827477308838843199268591009584233226703693428936802953980887643106583197141803114219964197263916477345831232319406553046502303741015785923913911995918782577142529768361145258257719941183624795243926219655878603644718975762554795218627718134676472431384178798553324092608747286506611880965759182499746976206280805206207017355276580561491237228976528705849298814448012344305737081978039314060801244218379949017627199749431095355154268049127807705481280980579769530202284449116934415650395308738473522872317605618429742793799202455569157671996270361557916167766181344689838031223624469843825507726054797926512478119064144394554372338942603443242016691562156867249409007794698912643398838196410970686284435813140491244449415324601172988403503130014692781402624459535799612174052485870612736414866995307968724405529227642784393279238974531619660687211918275587022108369982398142807374844682172453182212517783028457728632996746336185069352593047249532730320513116718138756402755476956004031618010944042935721015677286861123112837678650100836664081342728695426894928297428350374336219584165474777395895516172514188100245521237842630094286664086945031562238078358867262061465135231076329589616131682153867736681471101962152587822972399855375673685364932356031593783621059595566027485064179213392208051969306678531312186669694997545714315585667383554801882793334869463581814688687911360443384518007268217460166990170970520608093541787149747190923623244922397173947197618039482229175896915190037698606418439884830481095106114166731735352791107077817932327136753186756172019532714203250049155635337905786211056978006100022009301346377676421249641683788565584412322982209359321719941203880663333739821025483065194866645570842668141001050169830007535939410416259614751274066958070382299895815572159744260346365503893632589877343395238349472675169079483530233460517217498719259070516918605744101733942811249354221503330344240833012135896799079070968860398886789357142319508277595811217554301839945618134739004912366601051937770663157992935859980363105765685380729716214225521633257907173660293990736103097381583903725402985298892754688744277408959303401269415127923820682829273351627530980595472072068645511172880770891057414145805125756976174874570191067526108162676534494031091862548199304803635344830850770294492957513057470340086542628770272241854304147401005681959040174942801797710375375463647512700466781755804639741551948976121104274759739948743850910189479626400388440246430691923156990963331501827883754978667845631464631241238649960846081524781252671362736430096401617474881173015861569475873518498020269490036869999802699639587603269346794764414573834128240401326684107322366595578108607873604686645966589697293255953127524060671625122696481595804329498104138793961128648473175038967682558908627374031668864067616930411495381663427943457198984317625507573017389314373855594901121486136314000938936668865979873849656729034597329657625303059153385388554266492874917351242600561426643498489128621580176725736103482715452704532653437157968072759519499069039783029986701204124987773790565681047306866340063511587638517062418522199506783980094377079188836041043846562206741517584694503329245807975331654940988448825818182809709385415572063965801563458169768987755385962542063050426430409542799296043682124468764172398872682224198660034325073466375399292289199440347555827958081184700527039496149681695926672895929145159036890308059982802045964128357971615820216173799058613441842815996566005070356919864280801949969221588798898769161569529974620948557762278146016528080540167612477052007602024771789255397436783021120660879698217739167250818259032107644351495046898449283913207461166151992959458396025414075783117380414658453908244987111919205260344616177159427082492007430024639459187596767355610935012899736132203734628737310029316108546957907447116892289729620188847625168018135156726467740946583305252598720785606480298544577748308208663400146671496162366108068682539884905146104046959620080189775170907830564953556990075219175392811071240382940878305385787836113958754084793144915441775089635101766126034848820536644062826406586875975022109840069051105117546499554099025747168087357919059324418984234888006240399053834252777868042391153692027721468408522603337136837357860034414437024816690678892588391572485567569770814662505894745876117736611022360806048576314568713545801742273931054862646149715076647340569513821099328226416345251040418399673314307461224273250368843789413155123499874679451200613030676871071020332269792508974710831053568935656090553466872577461536037874867052178619569890296731851772721086814026409588137606337992768392404800842112170510049941790492038316518168454781696466935371175884808126562775318023974063957223037536409288739330357422511040353223738230742104788616509201028212392013652888919036164233985229353915924831031897780044313618186097722751844277371014495019871956734997136490626472830509679146857122612650855666823738053994628521856006927264390166123527824314935042933870914535848438653983391519577982809387758174596714410117802752990940772193448545594725196976058095058992388959449884743506505046773316881112757319732521363661606999275719397978431685717084341687539960147273159925679122324486125728986885499456369754399184431490121001693995727747313671334672567155635872733368626931559701465102092438090492009748381803589318588421432493845365585630912364260098042159972942591176038714788870787328839423890219787749976563733803667064185293750446409891424401428304865157522566922153012688251572431293077395259978196956882548755889692146187040976760074617462065835814249572826607501615744904361936501782073726523792404309977096580561885638728250187952737531513759067662469444122939169829891514286211742306761515092606562956393864127610870584239757728287701627785413390025425792488530272458374444588487472529614977753136113786359948553220475180346559129409471871529859832542143269509889633103618568840502153835856214202569366069642434112328219026727196478166866182530845235934441597233390798136317629755658173804727467138994938556034326752043513878566638692124208101384406270083482884479223527821052942635989563255870038891964498265850626942565073561181074390252037992129044957176327055332050489329650979858183528205163216934374498206373284923825192842843909576853031570902632527849572148485083073900247570153657121034337021649311134493881142493245764438036535391822135373478669627890144471935718579075623125045252225313091316712130928634709561742186365297934179722815792738073434075523323105956285761356837522537287027657839262962386965686530932046151865254900316920317189306940436967397109413902914913819852103048167107788379196303778252918549956267613524682423401798290137138902608019315401692606261151473449507764282646663161501364910430389035720570608891475252431457080124439134346679538685182803180016250614870306038420228822076782512002498969086296537806647093435986773373747162722607209352863604802288982597663877370637578179206703045421452967168860146804146210617730549873965637704181978443404591194269014542984522029221798738274780350774594084395816568706743485631469488535545887290819931750674691891010275429300752566772034335242600845192297523134079141165083886706167964571942249331655643957617825239647764244141245824993443433171163945738411171730589555818648028407617679323442314019878898471922543169003698545854480884014304631770418161734668590854251445212651787269902597196960962272612570595502591897404750025957355729581232233191100074773166676208192727507078157022323704778505226188523674848389993930944204841612845592388403316833728969900565655176306740663353080979143341100493412348266153924933421922202372065891602458884984372125250828041532853429008518264291338832394231661613340646955908678921909434921942370085175019265127556503444207442593679232925519144942339961859942257169922682626651699626595462450282379466814268741436738416531952199571186285188588904533974258310560408475467663190017170277196515342577809274214442415889353928396330658627667388920844519894254582708753434563455133490085061080830148252970137867976214283761048934853469352166622312329944133043371148242545695882308270741273926125421301962812493888535509166278408271297913740796066929515828467637818282561252537423421170061280816840736670026346097042361284097095182295818644986814055727256924452445300389124687229149948956003731793261827496977494978427310507993027885694701084895960269999124745824261875809218172565407169192438605949914319787132152637472949359401220587324496269993668440312999726019646508904785116560553623740854114525992749987936751309194036474212633709295424307861091681746436932773861016469755797051680357104220514567631395753297475701448012908247104590861882731759469099392259969509650494757950048520080504163544624244615075889690364799227690646231293407177947454609679510728867991836645008928298441775513308889625887956009941781239058565288960759248951390995178323064208715045486513352000136432952165792916335229666761753188127943507260380984662142524291456361213815581442796108555689224766674245706702604948852918251557146380650648511827257467018325692939906929449774387754075760329632263475240497080987853401501260287611610323536070471403761430349975597732051501433312014210947964358508439541674868649137296185948227546310472988797405835512774404708112572520682462548927083034601720533305857870049496551226296005973409186992429435703305384715966666890181779286228863748902573588240929710763773955334259026662691785655116248656246183240812852314500455112890428612584698591598276639810412652835360368900306405163199041950636259822361932914140485333956831293688614601570500396087839113692490556675171228837714814878878421976210005956612117816465476787453488216699546368901488952268669023637909173360128912274296941877824054827141059321725036783557926217439798173133502900627498946450962323359427555280285454671557148482220452213304915216008259170249258146805170440610761728602638637803282760373453031273419621175134720458625669882740596519754291897732533131570255612941113510053054507911057860916881031075361360063567097804036874912945829353816920198698720965412357384474741181755487155288266186415266072375319659990586359911808060511295775127946932708347485475344126602713200406651069906498198700497306225566006776673796407174740754357417318224542686017593234632025564355911748655782689951703921652825188555388135070992294815239492860958374494683273643688433654564254218394966622989428045116827593258488657566599648844117340979971049435220580117783238895529556152430067975463236144012758095020303627962243009661784185657511864176431245522874144739905501011616014308368769808583069782149723958572435392411164950329400794480833905025549457732819855853272413551250038621688846593368275130148185958794084600047293981625626540997072637872536427897029339942987993475323454413698879679407277728765143070764956609358589014038766675552920148589242279385825378763584275727155079400048161237940840626743795596853873653462883753625575621047424032763940375504389136044920467318763855262684077257887770156003348928068829761363622257017994932056408291723025596599355143123681871610322130007421180532278573571649618428609634737667466456119240291289563980021537194894848042982961691881046106459400514128272462067312998524753727121392874904893562137521781261766634810608217155636935179510936161597178590431279003519326034509716478988991279736709745916530017880371533525538207214036852345059445645775381656432647340224207739208123139929696715651985132326036253335990470374680775034961094969462827574962773407664737480094886068652416657756039307106695636572712021977867835277165782305148880068285962241296294571758539970568290709877284515237415386294660434162597785058809308508164369458883444842491001568325064191688692195809377492249841986078308002783026725065088602801671179344383276111666003167161631752503285452614337779637186202502095433534652756914840465489511844362020548912787680819719756448461483267863423639626090182192655301322160057637621495442211645205963256205624754361455772265897374062025839688454101917244313977368114074816154144071459600315137684312963982244901719961167284702444244644104454224203527058801246202575659332801637500867428721360989211086021900896397327090706279569906126125925436204796621131810646422323943782680062665614431458377978828576995062707689735013479813863206355165219133308250762186037406193326950437872154644592634067121148079402486829362499621094200301328437733926128664953247294698441622214124685989229153526675204754698043566572879250431438098780960774381045844487438264388821669582711975055702790499052386535576275719282214012762854892147406983414402132058238631979363227793780704285575707854767213508186974875849316887312425043796372763777737367428363916625025421136052027480867804958728294883556645948084643131384540956132818165765636461510070259961138331423165003141198724285827149567975311004094866271447753477670465540734583685811171318115721979519112635523892433764111174174737908337173257768183814656762004943271820550173326792253789439889640669781515388056283402146650225921941397390028858434754341439393786550558665853505069332817253625325853255319903095999107821510834159072639273665119047005142728140998637049430059225661250380713931067079336732646717465997635847657645036988214791196251847309267632548449155841018401324526800260913949232469226627157699105814808333247791685554434761413220444783713040202461600721399962739541450857384341302190742623932613729005333264326909854006342865613752028675389533506311040964721194746933262669247220605981105261376641716587596742924823170001363785566010021625022580100535678620089770813375350938282045004873009336817160732099649258858461486712319350446605833676822837452577541610322227027648143498184342997086915845843621901956338759833020381503017796421092354801106222798088524503161753102400740079908035235091824068173087297731680637382334308552530866443698494125779404584684395391413556249793225156537612367829920490529731651823917528981669467627265042387101841490047514786458435414111265465841322980757645011608312916864657237806219650643861886954830187584333532741806202847463925657516580812146154100204678604891935844971603547545673001507969757467068074737842781388017896005955419914764979364293918388292622352865140234257137927469206015268367282261772674753800715630355656806709604322570628149099598520957330531629773452908496368631091599365621138051300324460824367944991969762523901256729121678875328896454601280624324916266043321673087496637588037901314261461045716490552823586055247122765371424489526284922186411636795587507623341824504387197741483935824503408324932037790033239236949638788307257913519397120618871094738406946006844678817633481878216311522316351811154344641651337010049474162569707105746984570874929492463559182585142457804975357572080927151386202681396010619517074828570089706798950684685096568123955738230781109554255442954765609888771320300252196995117367851721801101891135205834463806026781049388878261042287284770127651513030502329458252470211811050895309479058580282900939335375941081418042404377793561079636213031379125567846411687236109980704615439451291127809632548724482650496680609841878158788845857034232495439752462801912909655465314530670423326232574723495994287954750976142424744055686033163232257422405062855158617722728921340080682308423075682515205158994742531818740310974952636923222730119478176020451845888576149735914226711615945548902842211855493200031219715764782420532460672678601500185097984611157603878361656494620359806838914593914079338825515891065259563960430841090320397814813526650860620475140926622468169603232802896999391274122767448746903170969618041915514733387320287971128073046516720362158609926120711245966498706422283724274543101326693143022778052822066441287419773894045886622281127840089190341509365304820405943344804897999681366236885975869015117875067298977486804527454843639386764699963980485048785963448015086383873382938380911651501520452706970567232398710033286821180384109175253723593759540137695152590618212233772895432124313152629960687231776222120028840251466931830869345875995882757719600881549056616573185515276869330490510516589077049488945309195681578982790347856702043189562974304052680810505396917938605398725247043808406564977544273476729518709427446623475930217845009857000100085983019877031494572238848954829953529983790443607788273481936977853485112844504341910913558150583559751180431762812757174420401355200834864886680508839130046767124169017962680540783610578611689237138715257763394735933133145460504999793948871632988109768609331699370528591744557782470037416969927545537692596030993109412234570699567763778950432673440118809619279327555581489689946279093517843715237746327516268516361488882584040321558722210890897553978109213206486037379638251703219823016432492065163485166991921394874432532753364673438164165851856416325364005835973674624947939182482516222380433157779455850756329048578770826109841247721846849397473414222389320374589830564098146370653748604617899212481900225521568344756438391711507348074897954936997002437452883413312482907424015304619145634501737948139349578289729726684803943266064225567698302677735368509247033870506202536561724776667888380446093824684559789878386347751952752686530411022540459211930763308981144031361042653846532662569664191704385495200005444522947130831714020254655376386210130714072403336491361827580401497151241677910318394409687219563355701823325549894572094346059826571738085350687339524444539162454743839827859892806493073262123565671964869148727819605413090508592620803726707900740356639373362248580428118107755134863539984562836352562538489017861408223474635060509827768171542319859619378530243952489465463308246612813790214991919682653869544978229340635301684519954852445996387272484692492435830595910080881291184845536583101236684124029329906152147970972052151894046452470427701151331464981177294057039805611028124150235967687637547072213897022058277085997093673303954229553020057888256054655374827111093803417155397229104878941954778665615185507199940375836863989716895366066672545254857230008075685555965749700225647588818635368461198339706715684677181691951784910455327771266458675383911373639594404184860844073232164521641904788705889719676521213208488036764177028916582613008614000335046510750338722895006649740094717364269953170648918596123941728948245389029564084437091662599561306632258509217184448257778913458693292450564647743368084172816572123522734682922621466970755942966410045215031534318509470589074341879119036438192134748237322677004098341458188280022371201548422456897242683072014059431102836475115861167309719244974626883267696844240939348387867743210619923425586650647425612463689109269979029585466068042716795370797192857004165551273719077130371408058510330572248380815537358660429484434073015978507218632965615152914601121242615443271901497499371443473100120945587677250353397589213267521875948668591885472249546018587367490894097105441652867686389564306598539739988658581636357090677068376345182244641810941415216831315314262520572851329044428871145203029838772196268001936317665331069039184367351567424930645022018969416708069620386040863311711225279266838747508869077172957960699145651016977801012864538280313610594340976910586084795503854346772776016507048919173610603917073043659929846087362668338521176758473226333228889656502174763095154983726615881711616931654174495907140953025601971986201768037050350506394129333929351817583424854076273763946243032811100218883148647213846081396831272912097348401766584752218585933118410496220324020782221393738330905773351343061208938158154685745547352336570970520488229975736701746762344359971993076678753259133131891797003762127825254541078901983584152338852409788065602137724707528938488231067770780952923762335943092671269949178993607610728016087554556493269511257058195650627852336508820403870101259065879163781628959106212215858277068171587705615246662426773673157145063143199812374268975425868723296854330686635444529108742705223453623770815488875341659076295217767414012122478062691743677155687974528007297524681303660334226486066159770713230925810142379873055641550450094320292185305578620644594449861973565714468602368803380877968309566285991029917146015109200755103172336001945033231299722548683590070325074983156853030819207322214236183365235670879559834203583319769029386843823685698919876741849691190280971693338649805263248378889497703503050417626974686853631332970049611159986866872708214567727816627615248205318584193072912495096642616103717367351176045711831557917693027812242917229105678181386660218780574724343632792989090112543804550635107964423070611985030980252238762022032065997308459004475737514144497506346218554358280546374586454429432318602287762009628795605721122695440146485472027094320676475748969489295486788876415021565621484346353422921966049030673989614155324947318457407432040437091497540144678844805896485663466502426555162570054057281055318912192270936896028386509687514589781880242800743999593872786798049459175888942158905988971986054758431099802554719232811679989701114195614408469454646342392556019492047975947691221827731286548922744821778883563412053988073381923170534695810015278665648738773306539330887960824381161712788544140321461051330142274021149259970466211616367802505523342138735175713324341936012403845413048124570991956729126805122802594563112252996561203596453531377623968521499436388898126518098019670270618581380277448754755332401992016149946577342245944963443890743798642436705717101585441450230181731781872920677676029411859462813911093016947050671793091248385306530150111452572514169027105928610923959896013414572868655177625306225328411324483445859628871169907371673573481590664283190373017193173510229074191391583249725692500179843700170056394921874682005457023623606029655402920905144354485624434330089030060700552772999651516745014655253814367480080702297875338454062354340106609853556771144632141399766787222272911920261897977204335710908941179289325297754133585249730560189899841352048045633563440046096692063985165694491722297209214966454202969101634151913054777779977755819374180762353602925881943795686887204816410196651378716676523723553651322606647261808663962210999514933327605775255403713913104638365259272190534287249328335991204636775589548037576376170604501109183409199232842731037662237843164066450246335696841633603528706358272598104403944058922311502757115424625392064975147277388753524183621569445958482063712098322643568015987160365422557882645516106507211121285381889907085515556141211724977729361415567193220695840016921963735908241034274249284840918070032595557692167978831005162180342493096535795861648101357595857330871272269759536330134650172482730293325201977298462213061457022106814770299288819047278920926302793032781851831548863020364583909493810654967782850065548549782914151483066458391651821517243987778527116096053114998183947092721799668757306553514971718831777259602807861634174999939588581673089061699802616294702774757336703730552229337613100024824368025991454200383585843059428277207413725276138580244317704877628670540276831790161725608212439284888304502433140624310733358141613564353357457391020190937592349845183451769728677143824274975793660680502719045973195354634548149287194780364840672365494411380456878599850984906201246570726597448302838234540549685821475201814245485551217291056352100072946156438634654924364425708504621587760448392630834471164416842638920390166928801675203285385319662859978349595951647750761869352220859294713646322112438416882928486787399903746397208137301590858974352639192981592772410499349926551932616265269056451110135686731362819245708415125418484039763809991418926259618937520283781768710204105944653333394969018625864480191069190125160724431175706080561802918679017877587225594654737221578137395010622302145057882426623417804368320111763696580927314321897238969873084603239457679310670201405558658067282525911544406240038723437574120076902199210109189322773689488921443792589427655910235841802779106498643215417130847863518445264823660742395129158343116418733033855349117667627716846553827703078303462732014244870394264687602521754023153191898946110929023249051706480344811113816942338804387231759293308205835330062324820700959233895506709498138327805228534989450144212020222740931340627853578477780741571120532187377148392325197513378359092320263001082492077460531757072637421008234454649273067038611063045551479930207976971743031502312826515632059320844040601126855399233282669972664412625054010046350392467612015239541142338497476904507215556134494689305951787820573283141005176133018654274643926078118292334640765686240331710652369762857789335087421206286542143640928481640756781097608658335937477373584371627572951723777630210941271619746085518680189932744767478310298732543776843806397457040495866614483543591666515494100098184564758051359327997468922568121860143459979842715885218981880335863739410120080630443473645876278017896694203190641382014148241550324757161350339837660021557292591031068951237669337194950521342717151687494628940218504978897558715415028833339873334390211382158832896738129296828125859682793809677018664975467300170501893775113082767080032092431720465053626612794267058277328270054277435352042871999389596800384667960252760916297223128526231558923259006678281244740497204386038620535668581936328991146725669009911416190695645548230879081019987920021471148452435737715143548094718504193904111100463992005722828596409770999513046508032363715760768020828007710293072939945963598136771672382975489050639737831851848452974029447380850108321167364991698781107947395705136653961024763015084211964319981454063669846894012328623245048563547328862662539055447100968017358912976788415863681000072221722918925697402954663084783699113024466161149394384085124469884284599360547788261736611898943724570744565768964683929193318940243277948818481904297962538239667077069950861259429599321291167187177295810650641664313642552825394741600137094359871529716376975639496018993718610263848159741891238127937002962318754595564414230262383242871819396851672806195539520002475233533177713364430948676779408243373565828278177232696571417642304921315467941634530345490621645692721528881349301800477718657534950410537435723412848514266268241495547740231278746540340524566853520696667158883692334669718731967007689055696606336403912995914244924154579645773617873324621035728927481983163348244928522739438558662436465152811235653600155847527751155711274324659817506686546500670794586621033197392282894637980046141917893954933639493373036543858443135109358284548958918991697530501785094271399385501130413798683903039604644043207632283714873921842150496494029541620014051843795057926288396164845246615319286700989594464178052688963742237961575031495193107761744239158897450638161915253657418497992715456132879119694879776915286602646454217943040541429755615646579612608614619864930492859112247190022608300011132940230414811658620869280979378077220666108713090436022141347806076949030212398660492652978473878306079623488386780626712296285780230305743281258669299088367112071703578207374526218180609944737170447299073747965611138770506975879371484623838866327381712961554065968588464351289479399975229525707397676397985028944604844029749508220765653618036215057464450072116440348697727793023057324144229518236242766796977403108193240761795512634282400198670521122726302207755330593812551578038478424133617496816879621373900392651348797439403712050196745886381651376401413251635658387809614020108057621281037619559624476219692209207543009587908334579290168723041950777869868871836182321847765743373878418478457653499495540892798672115606538305788494168522762524918181920631324070823693609306640432821311378894154415743271058132792363704493196029669077021843897708812440989898113645410367460480131805124053028002752036346797962592213721303891844566839055532886542640828994545800786577916420509729271705126812850175872813818625591213547733556742532656652892024441156025659591595179218205670681590745632592425759457437181750473675311303941314065514010494738567878757064124518893749911519267110399173941807516299503969633281128489278802453414244739267380985901892962285363655115522174092174470914786565419354574673177123536935906531614549635739268414961835741394296815701168340212091432942056864153305918351285427173576660398298676246830879600748076065337764476019319277116372552080199775825105224739057942488255056799072906704046583554309862079985427577910350729091817761052599072868433132331214630998290493739036852000947243380670240504183979794520981502681283442228366109560112795713238722570120276737597507531541162933824073966729740764365991403266411504156044334484039415638605403513737365243986105765388494338190141744054535121551752019450918441556322365426395216924998686436213396077675033700208874259424858505309373264606451342533707944524873337410460950310495873865222759969902551788937895630073382296102252055217890709981269373720078254473708541373084762633502163833838930353765010937946028273226412931697892284526307938640040944994715411368141489497314895448015964712663328502765114866714368320020033043355004934312857171067151802956329328418366003646347496880256485746213863951932138093816374673842316153420357328843418195194072623925725967814460671649116851610520960702377114627614674623103288880212435361238636431748451126251793844381944897390640474867544389474659892460831696787654844062691396240163742343791739333197976815953784603155967452664050140539394000217860918201270750279329901675306753492402593682306526615894354315807757172366843853584642637695340377253899444173940568798265703749915044549641337416637281747744500839040703455939205615936519533243831066455897442306628732435332130207487857178659029974751398046886673260896696948182766042607966680265955368281612430125825644171864417345982408003669418912395591200669265651706294668047696534716849462842992418783433258796344667464303674658043403270762549684396094462792897058753710235545311533560358982949741065489759889479286017313449665415303757065118538355948295526294740364672974878259083815384515280212444454402876706300326408748827407472517864002774348838300817013048652301383103700451012194813443723175617087066685664466029695944876294784942912209060073413200930882278656116538075776106072209312916294014106454671259923077831965794902906553317828085462234026315711793271161364339271791573419545604387370615403400049082483127515696968317324600964166836047334165823974000505101351831958013524217510596985183469489830431016276497242990424861790090208749261109983295205946074481099847027268586434795144444029335247951016404080291651456141913610294874979215517126590402168432177422916363335223786332524597851839288315514904086420059586834893921256404778937268292623605149037976742545619455962163437653191830020055247335939939136618033803425516441043987764761489106050947767534547154709762690017819524811860126830510145898897336482044382429315161240652292511347720610390160823888775016527010590141305077919363866112063698218560155537302529617453458963825318124509004162057359396731140733260232023507910557542040418210372371259235635904491035777665525760282228005593338713029326769327889024611835261130969006374634436567432123966327449529014846145575495768077878568018788694460206636302972130815777506946656472070293609962595906846423085986994007965976132293612583144742223414779009136079964886902787426051424833839671873557271104421843646252560230308260691825307248164894321265570933790851498842856659947752619615832598476565594951509278524838564642029914146654835601350874994422926250491072603749629159892614514372536596613260937281203023432492705021397487825353632968731377285126013528209087937498137952541838121610794469151861249833137731792469617630780980876892069082808079558399475910943865894872996636506199201886002416399191082307861274453986050840016306684916583811913707611208114255810021864592808253118307392567912636673740817816008387947320863375071817023223901887711815739387812817116669519946173486101643996641658979462713470762962738891915574358864503396535454635238807875642975634280230638408267769373753919244023945545733562663140856560809369143501913464412492550235394510908841147846046534302962809370167482529469327129484264885894216427756085289569310177998079152356689261960658925256583170002956650140756509940085624377810900773709851510864651938140144482653101047104077641456338444756140706587730446193642570535076489742917842782708500405803679116664533697559128248321093050123705428648719731807844806558371547779174427902166070546681365324035161656426306811894729487248435997358514530341495816599810599215318723951909980285312600291340548278777857512310715739209898564215945714670742624167873443869066367747989302069701636067618764273632312408544867004385384273220395746106388282295110511754341123100636922055634808505272917011651171246160283079335750736597779892941227639869486528528459388666395569565842162212095228544370254778067942444777235995174876842340033939980553056043221724305925521870750643427908869132715886673359272923541355777044522380369407460288748282018835602427426445963608083140712331920923597543426329409218264778520754846358907177372301224337664551198312015686386387752339674670085936705412149444696827121846036293400530041778950762135008065998752405815149589231360821292057556937881865110610850910015381987614758617580757793522428202845999557422422238845904915898799340911672355206766589101757560731079189973540786790261815949339830390171588339070912536997608623456185999543042827307720529148957172515609226552921343467693681629109850507045062595665212691075941480514078986874619571734848207556665817421750818811529352436228201981680209456507630700739101901547457004136173965258447708336193860178704405548190981659368771147613995384527302576121556560171538719661732179993474460168226433899553341828862224848490664563106089260232953941816107104989553648167768840650497310069245486154287634631678342030013082667749415582087256569980700198191680408069253660452381966058526370082574482469062384747363671224267679206679001663201209764768839754315338362667929807695360505616593789273203606816755724596931247838342488512028173065240272216993214746472833892683661216117223032878564564318577950680890920057486587696699966575228519870977825454542762517611042752531560452428764845006826514990323071698883384473093050327955047496129041843715207626713756631571303062333143857273265187884167776227786520838932124797004584073121233849557188291427740648102432211796958222742173749486922631196186467792223848966338467813797072199911149118823807376027390453368450816118821640605644474702497989835309241083416512014302695829633998191580084723374218554004212678694701950474599310685946131248579898133125564097216690369804584871819856492008099009391033400956427066561056743881193675070883107494754963501000666922939567502799657871893524983379518918518086168948736567691341539954448977204886753514253186407388748366531339508898476263591501890596195326266455913148773479706677763670326825418229653072112938863092387954847767521604802537244066688327404898800471269928007127471612897260057988789202304317581256536242685289812215799814838463985197472446137666610997273281261966633396991959863591026961230742975362031951513532686787758456365954598145973164049237629308926730226906434142506465839679975578601178932924896869727262389681967321779650763411161120227815261636581542574710142971788515524130557980057323190710500506090944326661700166050927391046823517355851861160658268904993462467078142922638609957006999447901647926361547170854059245407713763702553260749114555681324868381769092423343606902701510594774402006008620196175767693303702397782108080506936652317499845585380133140920702649683037722917790760590020988215591973173794871823866097853315432352881179382435533728596776330309968093252514770099515918669138683167227484679597871833957318797804567107129281833955552551638770197658404295744852844888771102019331653140080898655400675289105981727011423303195688716797903467004538518800019373778296641309521461576975048516974122137298751472902817166799285412209004110135239707620246047691885273516350450444925625043116616196297619008940184571203915391772661816663353068055090957427704641662706025414954723183762484584273409041441932591484611410742062279896849492213246003233318538919525310579703507320740459297807633613910315389642893006161002399182275243742140841788299002246009026395102622566163298997951215312225747336124290837780385438523358082482078406319183257013797223049475341836168686264948942007768997655335210550706896068727407192445538498762638985895836544587197624780128544590469463010461835333569431711093686339197251558537534746114396696684978998831467020004453887473652715131253956563112685508632045466512754146945291398284772130863752561109623556416611548947381500544673056167055550407975151780004628709498177688578824726200682174127716016593353370940661732729053693055358595106987524551131185521480300125712904412722691594120275619717795587231665978443422662461726192331728063855376472947102002340512436337424685833801357162704625160249020669041394706750960486216454267155458365207100899953651463225818227846453900091522971586263081584894535643819058785682263030895764663364920608049779440856128710808165270089023410244657937561739105811540977967157682647656220852623583723509882418952894825375743494393808809841498472173907557251236839203311804624078098566449657797682330136889036326476213918194256541480847191150929807381205069441672655887175298130009739149539290128804922126274161967435765657698795483368780705588648664320027579562464883940439175543867892543065549701701961499498660765683267814539772787302765691842917295470750321265488322079464039968906246884839800450148123779562616611737070415480887262897703339789417160426895768132727122356926716480718441835533117502533022969905382399094554433955783396920165351650027383517743513254597188883877972493851169749346019600268192014874683569521678285285254815662800144112800619364467765972266707484764356343927407807299209347044115110399708418001187182909420567462929112253344839814862685258180646331625438508792058260759512716444857298765651127873272361897205333476179837894332464147609574361999920615820642587328877143567396825593628014692548201012801829615742242424919917741141922629037160810301497030475886723422486972900934547628581138834414412800998889673744518508822477424051668865917454430641487750580751921762364680991364873644850599168750490736844636359341021892273418381863784426134302193173974872489495147022421811397973069660282468142918098511825855959515740209127203609280484452095762491388251647795250959019091847925373022019716625342150869919275016984421637989474218315572829892647914182181404498251068351666921116203881785991165585559949582364496521245107983611169080129902288952939238154640420123610269470663654476684805554972236680427046741276868489714067503806501632176667396702224142482700811406527602876425554650767886867776594003827359043813551846001105699351167386604835807655980025367163007387945340432180917690004945375780501661741806629741512395980413158823899665892646365081551565754682378911384546473251935653843458165514846274499124830748682036544094772216195459861559797865533609977599219069325954302845434373875076925955704133795913313248779034413640164561897316340622505275314486039356685098056154938054673243064400049563960458429774648692824172212280304316383009052333911940361452487951255176245835457254206138742940540357327708988219341203027098816597548697508859227022957086899521607106227827956624031163342483932149313933096633332766859876228072881574577964846433463470115179041439574171849061467055337800707232813738889912082215058583799433013922396081496304184228860346234285318176666932301247372788111282992844608036860701936830959478227003191185500983489587780189782080174612075902634211783687009123583103939044085274269241710250583440940787126458847240944263147478129424111663050845188650201687592405843014658720104046115506702035723792489744190153389273081015217994721825998809324446333230115229445499022743274749696438749174033826500519565819290433676005095406519224234529370648824277804733144742632330392478331103725130634616889920361716045354501254075936598054784027369995871440498113995906353443665607623809474624810829316446771937495221094074391570972852675709877159609646445121697077470870529317563551794771271488638520835634949883870319951886403963328368194857369982186379231029559087909564326919750055547767555290664405833217104521957157854839345769565155164984601721277454754437894819668920130043012641478623484466553768834711147849388487928409900194750537996289430279019210333928558099920575806109990727928618396772715193569331664941819561579207540475160988595821164337261058215513229511778028493648713256095160929548026080766731909623224246867408300481502462249796170262817068063178950216748520914248327396447017804822197621609649327604420797366699406158161886292814857341081420313827540044405272497538673649392315488205941279916812897353776008245062854353687044228701610806877301248002507826863894476447410865547130509579095164988895101953137798249079178252624594845075829516835133161189391476117258388073436025611275307489732754412605019773155341497832242727271382624498672670484418923668921098436635966168619172388416145725196738239991824037496275948697502169088738009106674138873871509904625545191254764320697135563794683857735695500483429204166113614217290458185810083721137205727162134317763042978479437503149365096763852437714252915317724688058479415471485929754365305018976308531708814840240173921524945789815530966037275376632184870143267933718986042011573160739095253890811957069393458799186511753714658896386078934873740880083516261515913940192142625151715803321001392492490562157746633777477353151608838933304021727768866683174779077339640532941952446156530741978388719704735127056417354674685901070041931585918421317259976144606350878356019652476334138141360576882145509082155302623439893192386137072995219742943064050387986963102032658397653428118817376443968588601859072344299592137183961624230448919563384224052631725906970835855454702948560827466595421491083323578097440803522374268266435418776478011787148836742894966452140384488540545415537833098607173808034829143873100775683605221098578585341904038543378704536308774197928026148983099926119634918814222738098420214764702067279247267480080823931170602192398964900251178595889699867011377391809824567653469090387288247463858779461182548530067775122903908282773307154285594977272777114858879540473253104512196312797354864517061378934696754046642959933189663530235613704275145457519454090476048606875001561653181546626377716402474944045006559105632738696949184164025327817575150473467320310054635189170718215429180149858799041551358885531023398308464131826115579986377464144229591723110389856726887004762171602258250497643569469944942348474750841155873457932981553232729916620039899767176136350614262496373956881894230015535590796819628962630393980560748476787540245467733808939265879252179729183695961420312679419998509252981735952979146550524600480529892257169861540462212152217933069801176604459505299351129532658334151679199780875656854521297233789867172208357611181985219798532861373990819115056363407884340930138445232242925142454608625998051944712843270369834562247635223798640246707715948377504923348754653314312843873735350697959048308850297963806024890842280609270826452720492229649566135166010316370296216328650171604641692256864557958530508907005751418368432004417781933679082502826623782481923521988911244297561371553532775600326421470397085365248575109808079339143173381889998304479715320918066780427794740351730266326444888377865160782244636837576940748718073439741079038250202897719242740815206244077029972371239629455241625750771502303492733308764969649579802070483019912913712878094504927760465556587508187806119076208836334311868142918701733141913890767146613582578355328175605920288777434196489627760905496514710407996023609626162695158389079304167497632609100103347751451785557139733007469472505999682500809779768402180206220808670013826596552312181476242203621771571588556933714150544273444462317720262709057369931187926174376156289936164761863129869323322164715838055060790640254817538573532313258191503681402820617634883479766683234791474390625839988640407670925144827758572129890612540363201076243223021490341160480386275966831907169122352703563479245585933127599070511948181030417691848800817307216556899149687801303313229378912385609251473719456348944107733751620312856250279407223860108887141567467716909914198207127418095498409903541042912791353846282318042526883699908828592403891313906424068735655611577841666377797920420132344166816550788347522265852812610294655057064163920520908752641462394078331257501787010255887619902372521599715771291495137664166841490992503871009447329760388094993131995721501262011967847275422030946781848261976155991181914868161430977568969744400766415032669365326323903102706746817491312296670765529696662740014347231837516412099625786230171252378665643640015270388515731560884903233159521855716720133088895069085985800936458581937412949109717147298306261915318111950696449306838983097133597525717612401277406113397490614530775895103774918306690347573370144410752884517717238301201437721488149023125027702371090653018798636920355748178788448673924827957407099915475018517731440573697303869451746003190236842644568165401274384989116632003015570530469855352790814260332034031172443993112900578220173282518569267863518224260783254362481620623348004051993729094930209083619533064064448012764254584933765440667380632097599859514871431750086677087194162608370586206527075697083744411899570954431170046056604795233959784229014419097872602409806602268320026555743627477168212334463855453397819690908201701622562354713220401267106822232301422829832320756058181189338562878005387029332244429171044681106899416281613104850147325650653583159441272518261662170695410657360170638300741529050244978040878184322451384845746624435702275597603145984407234505221460405347315843681895568150893983114660916520806841147008223205001237239606991832027436266173832672637225581160775219132800520726679761508995248032822595610772832241703761219053572656452329341113622283769174617887304707111749680206129044649652277146693394179116159935944047979953769021718962233821085589795634687053488070284433320208360414530053243280551914552355906649537383102604599648222136289382061791654797892223448990081012743814445291256471223224984355888717519700722602356653403756994325349687523915831699157875095047565682380703288403931125577553720184555585600030695962052253438012539877777952076980361885239283442633226694352740699350033273488739660506924802905383986594984709489654997016881929040030940668863939127081904312284665920262664388641054777564974330139971517692163867839501620774607988514154143127740350862015279243402035674736382792249291560649198048533940485416446404574064595500982115539009487035580137679242703307764616477423477180090443766194278036414269865636561020298978428168235939738600601662006557218228979714518435779710173363070928218888848642887873547215545849547566734406148137455277835638471010499290727790963868573328219353112866376817549225710660806249972741866582884265399497053768778159281335339331999398258902548008063466029019896199833398642888002790157146468183700311432108981554679995010276310258347325865111664418960968036399838119461323194649925618990410862205637717407440386216222799247612524169540374460398931745730036586003680385965522654035616966355571200129795468759943731276815264012232992966127356796732977441198815531770796491034148564905492357711263684185298339423086849383188865659010631676693543335876030892369114045682276739444679057767468836238079554830912376967254361420120491575437605295528889362810445221698461258865291861562736870125640544082520895141423944301983254493375143677892474686663662410552128586180360536971549319704627535065118243525097703600965037532184020954766393464459391899781855395612259455883830179268896107760658090907918215068546885638582988534260865246374683004852123366177401682357143241923945032334479274167081237862669654565460183868257194840576883909760978288947000988518708192227336143956496832219437760600970003035211319604773506527273357825022955337699709514082554024147954507941003290668426152463755666803344488363178323204480642672607319186658682987931031382877342301631393540409759416062544471726323164558633216824310816595709919706269727664651159626127404272753597423270046951229565322329168177808711280303401482528150229619416098493259757787795146000847186213821423383665364382665220279330284132853268103742448089825573815011664425964262505775460631018235082504018395018920559412171467557067502613101773727824023140105019344710433812936111616286444549170575182430087753001150765694928312880548867649623945024492989831290764308866152599472382154079112311478270889832690095068888741000056786592272659140405751321938798970360423740506088630855778453665897266380516827627785838288584314095149101300676275343967577697190461007472176429905880192848227538198365460444066896186913444623480841400622327690293631436866820432964442162274951546998878228923659022931539557786136083950473894921330895650188137592523172183071445213914111613878834634864076456691769240601392577339014833735453574085988287715538989909207254322654258971686420756736745351929320813355229759564957775063618620829033842838713551843029511025633387249699781464917116507050022952809054407334160462432225034740743450211746114986154300292701009139398711979622551593376887160672519840732809506023459143882889508445396332499493653386568346294209979895515833591462624528827277367690925537414847629394077243844475927856167139288562327887648702364176302126288195664827366942464257441118339129258242863235061442072428258887293223090283498085032686750108995540341715702361103787556434430414293398699498759427258676811218227565674209837721604654359927617827663243044320165768350687799309693721455548937390734988215347627729411556692345669653249828777713248567833254177873677848921141650747454622667288174486230577703383165168643842549731479166914274857065581227667626572782322513293404677066038653574191089302382560074848841101615674811993183950450274258124728541218082421389192761437289633086793457759776947987856060433160444518882654112867086230889678080710142799933451431410747495616418095681680653006908574530053596072651589809864110254035349449426029918954839437042725813717431282170397304444938714177534102887217280806840450022087298384842354509268642451865640214570815273659685133892642236805126538543848912496865467155149576043787336585642292304545648140917036312382030337499547026168799802678408942939075277886241048351529861546694918052907287519613623688482398473458006087849754107181531149836704171919442813516692151319579219150404862460144146593656294135060230659697301307852571228979260656099169908785019996742105944871634928175986516441394964268562807414922454610146196020710950449039264758148427695532956113792538054141533468989747845068260296101730679919071854847544644589741731523249352949560823695346173905993699081490615745122711116457889559297190339472799947517211224957280207035900770611895588540304503775310031017093553693253183536206834394837813785612411769597034302483790833792259677612734289657036322587946225288268830317320870152210536461729076004220612099676036701358550248883085331575427956886499970705866265111223476431523460461631246622655805556515538840955157495060207402961752109474492876063721431392929920684652773457597922816242647952986658825924653232087541788417672938169353447147362930381088966442365402221898615937086578122084006148259572300032110947116478145933759874648244729624598920437800500970120407914189839588740976623528897877329104398889738129188413844176362758370228221742041789792046452930549501304976616761939696244827526690425424214391950033287816115826375591837872526742599941883353882867892573751960448456066255602310924213531859914065593448491883864072003965155289563826027597356293789913525802881005926495280284708686174667429141403399736270743776646916628568632845634834661095928737047740983135464513147435797810801244074666011680919703962438135318726903532302731885851252561867048470887444828662877033111705188164698304379699111791379002568794092715810639009589996283026123440798242081906434074184829256033612244800586131443947845285608963534999225353435544086922624507565374940848925066352190687030139522018353186856376768912809406351933425307531596170302841415736008476961453968615737748638408260679361053104653877930950321773561883069231872415067312681023430586755865215569905634439645202808334265122382663406212371656872216235195677609425267755859814069049780260597510655507784885835079440888337904048629641495532393077169408770981124449942107843940963554891258811849712046663162130294560345934002266133466863318061476188602349214976080581145225002403452947410347653552834260695553012237276871730226198345915412804325908352789264904870301833595673751051116249025571832040203753946479111812493890087421267842022772827316329276536416522695181395579740955570593521721585039013416094929953385312975269858160591995484954547793865313039488282875634634754974350969970992378358412268374697423483604057714657086520306823437256653753631622761481430209671115407607218079227606774187399957395628863397073892711515163563042330602889328138506521861610041138438664782370538042792939991884863415898092124649482145493886873651446605685652571234903957823999386744091962950382110784868492624083173241218030136959166780431142048459207180241597307305020540153465384135752760134581701417269712274392721982646389048408911604937435255784435076445187895115289395712297136995242080444451691390021393149240904988899062996445255100750010147531905233954692814755808897626163475081596463929331823386850995731836470657687669294807159810533035423780312331355858983594645307914069582956739275352236511163205485913902959913137211956927371415315091904676401175308922625328774517351926503092231674547413255553238396431244197839896094328441085450356472598522206146613174143338192905546939177596743909562658262673076781788016983705750292267231577203042337481475818187612408262857032499070478729845269052733451519473581023804722394730121571973332621262960669465048095031429422846356761416418776618122743549933485341003225349332049942537584068836825574460080087064114135970752845009386597080195819930767504741470813732199054272584868551119360855515516341638123812624279200648316184227247074167122102785007618386973030867632350476398639587300926169507934213154410764237806458068249302079567317883573993561333076259799995324884386389987853365392866003206451880721034236951095137735419839415509275887135244830908161620383753223157778895013474179658650382521003851343242158394127826359936103954994721019096237619159671841957979715812359497823283283780735871865062066603419213237688522992715995839842508755395533479086977232287074376251276447308894431294228487808487797630869300884267619299917402071887239393036398312539478315702805165324388716993372902597308126718912828835213820391815730684436572706362278828833920915444561295147273556616806167496310279055821778288217489095209224504913517336412758863272917330066136000500583414923273521091490539728177616522430516659111411249902039547629808117619068989938092601777892868289223613762199541428841801272293209524948016955095811650590718740751421812280589762552621714625345621471256559711455971106480988193848368688341449015762076796048891910925513619924792142710872221824180340536637557316571078676823928127789963006124319954823188204691795914483338011127782975407307660060794682957353103028240725351511940532900687154540638630975028095305081590368140149205158786071707775140558387860660181373615691051539748166438130815610073477791828930678520147943038640358186953747634876830121439892136584293519342119712354046721253088272234137260994614585460509430341761746471575287917201758365208280302926123577990519433815330286142014054480358115237724017639406194916676702395914642526412929423351346886055446670715713823623141117729322035048113980503567802179272015446619301367207712723698955594774453312351820277627089917463706706010894553082094116057152232954234745573477472726810885177715746910705096400227462762464754344111787699621478686328045689232580069369313434889120665073649771707538418312825798788244853389743731104114240373366198026240399948203375450647355988940159407810380011224760997559806753166590709283662448331678957592620204211847750742224797627621648801690852712635759934736804701179128534701931861192726338626652737865630453915747661701755585472642760140759648019393928235365702547254200904635899195438467372236532059675053460166134644242304516852951218878578192561380774460270813285455406376529660819857650815301938838924173748643532476328118861869986426168663199807815879752876280846150962654991086335419030896438247775572059455917576418953967139161560461796164416548019748165313319745747037969009510445171953608889274565160913078411748173275181144037651393050780925669190292386140756218469901808110557235458148724905252745190438519170108879336739543745116343156758801461905011116709093527504012840191148318484836040263368179546461210473636971285278132822601851064063820126833748478176868092266621705268005125481357248270581827039787348957351627955035478453482116520410859513220777526013327375573103805679751281498794514040411738323516157944840447172679362226021350977786955791213656410170452772587066786931851725809549298851756730153565579739406496467265272228254659429426597302966209478960497369252490212584450173072498233688222272934747548984143113210430020588900559447586144579132128051912093578908918880968104726980686376988018495674204845119208728824180800185763665469524382740795095633992304331191493155384910159570212848787037581897387573862460221837305771542594851946929370758843935551612784420499557036294016733842821075889010100921398237788859874224546889982274098259254518790743254839514267779992639319446508537316827814874248598251842392928997361065087482272133189143187885219344087435932884186714064699326827222090024009092126746385699682242473449995808254722253878522453272152754130656323966565363680946857211411578746229568684063846302518004571804664615698243162002693813025879761906781962990756814600870866219724813450146058806490069229679503822389576164295578000207206119725754006241877860127341413888761250145216940485348451469456193751982876644894937350048156394275877166029941252671871239248254156652208070517472068538838989081199645868943158685734673989605613239321669659579559399253192897560861734395820216438616381413602743743756697477506270732166269880079023593074032649536285099546363981997050628630442661336548475245094980043477800788987968663136642553285113891780548204820109515813531469712283078693133042921590658992283788641971334591129420109095939352268332490724823528879036670572724277859743928868732016800052832188917900675839579958178912640662582708382357996760940317930731172649257133110278502871932258978948479641448074868198064931369835830723102693943678880263933138883228931709395315081396359763546949037431640121263944304676285978152027521861723413128407380319878137224517808219327425057859507880335232534063972275806777379106392319280479244370605421036699472288473887394593439614631814474583002105611201744368675113502425665211008302532892227418729867892593432329953444477258256377637830708455160206434080137502986243019307774559931776014685860161849708048621730230051517622122251860629986612155919910128307976836910953872973892940854447546853400290421801100612276013648613409194896596439651650177413165842170420094587344539435408788578686714853859134456474112518293530863639933174090030389645290167193130245217862869363738035386744702283165605646245117539104855866315627948733509801192085298149197073708352605981237013960045954584439999557560123220746725880281770340271775212250516564878080189236685720677281089963761150952199713030589042550158769074851974601453067588192951436677999383635505961284471429719995889737852979846938124908308968003148188881819940174147412827297834894464774307681128385433486755255019666683890398252842177869772035737321348832500607399268465807171570429256363238620303015170200773419072316713693856701729383360620267742117594114030654927561012547741494611776812325811917938834788738505657599905136525634964833718234301582700585084213760352219493878724535661929496275641772747911725990067913276592474806940442738932108433745799934640607059888182997576783764468720107600905225506165778801234817963382776403577116840406789966395785612112935794271418865261717144292458082109984915202011464088532217949582153258006446946286870369337330342419909834304674965126034406595802101581390799553015909423421501254737817001841485669385795533336618657816364106731337603425628589711599716525383847125012187844894915972295931310299277602397068230562822464979888835470720166700194331321954710703040052568127804122057427636071728931202306065732505084527877084046917063268157743242594204714761882305173767305110535884997701943203796544598076852398021595884271387914078603540360289585716266454404597158290584708903360354901159850576171046338969065576835167698562531115725102980871906983043448596782747646901282580071666301376821970551960671462404546826660120738281700944804567862511534579326209186778703999361787617064936261642748016182040683531220912083130001062400612521152991554772614561437893825795718395981868059480851287666789239236114030480329961894764336172259443302658611508868477454054210542483715581621601528623163772585103139134485961444010319889106721818010312128559390083986615935188997857499243315694786815194680765296441469280827707785721825786118820122728322978931375984762099451997889359640390238510845956924126906300670378064600377164319538038294709514062145244006101949011914203854319686181806340322054085443415728433021628724521665650644001669835865325299280763555372287549079523138491806017117218216670374252337732476851866146156957294354297869293126871232724264606657891289090645130198826797780375467606013198225405513708440451570677733763519949560995802067436566157594261940472888338760742232294274487743655156584645340437409305197707274528447784341327853142132323539614158011441432719207945479760438901234620357971878625895496538313324685424913253442112842300993500085842374683261815207640612186423374483285471779340815467443091935680845819513455918383978984178752052604316863945213453649474393993140790016023378994402754404903836807916586420089382324805986636722925329125426110000202402039571431741346344408443203914294836155986450622449745110591454912294445295292794393728957546849425749754082975406748619009674022981102607966084580960531570784408170118893646478799684249092425615661633630606647991294661549022416111580278247656820647706082575106338152606671419792178558762685012612464551827731444198543608245057724884846184916747749482060243936622300620152999266656698996698811934408961312707010723760252422459570787279033361388160764102708237113951401962019407292524241360624496692144666823814783854868535961617225363288936642100356299608044150673603216877735837402337056356427965055849952043103799512452075797344853572529116831125766613491119184208653645217314185245917409561336825472983824692883966590314848544084739284135278596105658876140797956454554686771817784579079342591203457724906930465432193259487957105851739426891481639130113833649654388817197105480053386804847573701646781640875286241057129116089982527686050103460148290231850598628787507490593780274679609083922254061740321665235078559467265728495483781920357672219942540133957170085231392472374421517559640266904138420505726567277797415617110498271093051678407465292372514319317958575614645802249789853399828020420969068878448031151489565609815135371564147886524613526185157156122291538652858683050242676639706018478182484417146901178647276536416019865604012660115973590110933132321152000270424167427384605412173330969966378073870842000903559611892883539652375202847407304252773988301851565491745646198152492394102362175430928626699488363011907182877698664094365311234554950923523010109898158940540597765125352212164319938944870944423223838138379889469630132543706350150304711528380313199495300038283733020520840078435088733411255139127415270801154987682892720905031516205733698980396496256458536309388434554685084292484899576000879899840745268563699919361534542688677228139213334289181409143606999102674671297693447206987660814189386287590092370291891249195767532983488763029782995595704644109667753224721421554742777867460165438639897915127246807719683298229963545288106589139906959815530671179415210846754495668364963307707987731723127618060310201179556866598695454549761741720050112660424835644256125810870722655494004303711742176495083465738742933544235507789215229272427934190040366067719324676236735344694375400044648790158902573983025483766591791995594619396621817789595569126852261993110728599658919854835815888322921894290043310765292861491315573467306982790375166429578996503892731281345629192129743718799533132875132477388142472555069059215583872988093704173322527214624427129953777883456799304650029415998291913829837421899301913658885397402231467583565438616295518800317617131555870998585149895870114337848422959583699105055206446224644231994695946687334041379938564904493635782059583062033241622777475823173534108144775240511008090612599177576797094166725875651092490342179347103594927266902876044753208233252373582864802511766958240328569380332826362223565711704047236869403623310025684863323871666646237371855256701308244841503282755054601148365317530168781238477076827216111347638879151611815719872277677124789656373284010897610988464719950759045538449202081339999508911323211493012365291990576308338837658833814114228534603223598216972361339567716476051370432213086109014006809294091577391620762152666788461491560073958311615762075200132322430862743078403156048809039242214863217556853759979035579216071128924150737215455809069286870265374498989264818269016817308754311052637591225762262060981007773297785114916410306729176104483676747325609200945366304951689977633283857444085808404107137905359159358979086681849297382045052752402886011403689324787947583812049016237711123406738211185333667341888725326377260586957883632369479268401251829950284015398915001514215784370116000022798929749265176559743193769705929116206823274909925103640506660512970677191531731976052003643730308814217468425119553295145273909363471091315925924005025715524767992163543347219898538478290862273143440875412209425102203933600712576836314718027417690948088084131090753683821258728930205571305522714400923585570315602498939899915244038548315810973378690312946508997555985761595859102716984487796832702969074345736450416619747607708629560005295955887296009630223228011546070387032287222820202441289743131136141817035575769473151848751618831701124590866682610064707530081479766473347658919911497102185436557529526165363941216817082986000390223163404399017087893299351412586964465240388699307617315296029123191624192065636519042386699271434535861703982757279885832796725114624914536402784568892585616552192067987076524604416317471714707476319902032768374995157480838940292792222421979273831003209129554715154508856709858273212916764095215759498537376497895177255141158486909728547339019258449980155736551254882400780565501915158710309518139856719616922848908704903655972827281554253302299381822238290878480753287196301015759078715053442797096052900105161979421487963697684677898313658065914360130717463126063543705205389124158295573992830666602902649897205135369357128129959039111593882031673873326644093513670601108465260066513430976566930855593653895087054102974775101006110595238693815760165283427817197854004684455583026169328153351878670293768621729261106856741052919843400874891556604708947176533975475628025595014999236319555950068854833816915604114578299423103451626533454827046563383986510607769039363297474752822657543970056692483516733468880714293973272890295359760698445129385952126298016025291471802934606932363048022783842275254554874004899723400335303000567582842979916491271207614532861231139108943035656301838092004513797286282533325238777115693304811487630912616637366539100883049208980710887066617192063338394201785829461198772907169025876497966289829891442129490645616506316720736685117623121212127968760179085457427635788646446967586126024644437157175668739183095599947359999879216540866346219180874844693077097848420535372467278130260986239080011575936220093942798008386489109521169573711582173264436260300071924604357561762742329048837539328637672904916680476866770524625327314939793050530806492417740862655575074829478551378016910698450554872420462517771844591323368609867830952526834192247504741053215122557636616245338613956785748341936346435150168989843614132944249221609325147898814208571407812162971965304173977483607259615970310477403322810553141576281175679328013160000097232042993423058624910154110777187156130863957222084263872432034377535719442352419980984093569515612207786940522061278895963142418934157038679046711456780742841260581447067557865042367178761355228666178749341847983223731101401012808622551541217281341477575381779876339246990417458098731951734736991471727943378225050025904500050581235990286570120801877779996503077569485623729384618476471858363920478601935412275760992889640659243035347689292601473174016524648944862805036712000634593807949677338839229872042104498075810629560029275941086200113548567849554778629486129864400800244409191671360300940587572819969306809246964879091405581100609666978905758411927589056661072509571133162504784894774384303580926763663076254981263521575942632061722359810621059348005118003294392282912494482117096149759442820398019519661553245361273716867964668851092687973344684732640374231877400007314583179378755061710138218716995241335296689953799124345615104026043394046352391499872637309364632786098195429993205853340212233554453835279739484145704297354217642327579871549053470832900544875110228437115623426812542070469824014942938669666322239362176150197908980788188756511140176222568268498910476997583358005870450357304907097791532377074628350665013865733038324244798093193636834439631364440340767015913556229020344329071276551379133338264624021987453329768395923514955156833727381833818039345296974758993138603755060763404330525100461039460700396298925899211534702335345163719972613187850690948620740515375751702425892120494833190849732360409914478567445122500345870876044191793726446180694176518409599987365527414414761748437473206908797873522222366200419742504765645144095106181667081022070935113223793304994484582928497068889102279973981898655308879762984913926244589090931444907818686364671108589120187091551644762824642135016208276300579678316871182872220740961624092960917495005535645058468491243949207478193686333349372518710314476588673684276506943520784840962477430870087714751906511394561490930420623055732110606720893812550980468850368398043420680751507759313324463476358836171747108155408272729283687304675152279037457866812372027408207491966108045422677159630501040531409710279059143152958692303928684627584435616109997256877036083144051567833383529261293220052762205822330904584260540851655492735256430909135246206534440213836896277228123723438722952635570557432945427248991602469476720483034325677261581907383034604613426875383972950137781546716702804750546341754854899092924207876073447728270736927779152229164475369499741003529508837917112604323183181836890633345644676034902955419250020531403392985739048759778282931000857440537390762762371768077071854043679706055104006319803208013968663607424882176499775364967563968174041806002641602712264229926887712632034622395621990111885119015328981962846680267742112560220549752834517970272981384858617055841589641948971797798111689916576698099827375104245870834571826888670675909177368683966544107439154818255462715910040816731927767718078162179559704489349208359646077354152991684730790607615467229578288198478112087715519192681256772064666724845018844228420260308687481225927114727620800234543474837517296707386344656730187354116534204356620429053525303494790909748058311498145506231240748440252858483850562926043794867163849611717905926343235274445255776533050511837229504635834119123414284138968696799157684977409409454811425263799563123675182534615204320815537152505144201496950680822442382988768186740278347787767644258778709251992629125569614591520477785126991312302052029191148966544338588724338595594675884130196195868599117518771969207104028796371741697155429138829083756769287246983638613923195675970060647794416224629318050395914441986355041669242620120250859949151031500220236156024373412725016091362756490988184277144148207390346130925484053766254498325106447765276632970603734216693027254236177579712464165560721192583707787301773717021858891993194436356016724749263230347270726375907004854575224749443294780276619422083433010178026261370029468612076540702952803067421259229109790662870293886388652242351800409039460956625091091945671907482416030073204210172866084661739825042094066256318761171614924226321237806610160847463018360427308823088191414531037739218100047025616426129531989134576308355942617640957610149302146356714703110418282499650795542988521610475440806958257096664886039030059549333259466856550115793041363863141248258984933593622394600529311685961224756119834110107975160684644221414928947725955560469870645797903864949467768253208929135834561142312292684576207678512499720091048638179100722016609690572746164772911291091191213074241242167695230343682813944469063170068156842279863355595633586061322986414318481932499952420510969860578738076009605782184178055638098404371254658158472324932921114666074265445609874739166163907397357185460711671507982574397841447389842406574066514894903148560301267820705112336484738762834711396596147291259859422631422845959829729051716679921453303850861216324962138046735775091668040328037287501278814646564495214626897165387704793927926738666223137710529509934700397861193811264902811829368870957643984071213918468668444598105775465167430222724070891606485177907950552670226629529677970697247547444475986591234261049635518063819903671776244122120268217890405271248083693466242159095660234879367040987960205697177738499255154705955038990376619911814352918428558094218896293289493383712889161963206206378555588898225818742496970300572123529375574946605705397441350834931202538641693347026961895319896346266862784910941538076477742840049266388320941682727274500637681452035565703732949149956082770926125260303072908972317717545907570982690578528685591536656680540660988229911061990227691913704473334884946212733797435694897051846795362179142449263658051479298593078626801259967575001051572859526754223881502335343197254174317539379660481446647248372268970753590406793513661569414019601329706589328357441604033795952926143263273435436587304456638915727853132067119200293577264077854557183410182979317305774360391824323864980386180412698928913397011825358791526583616468705015588106560850595606496356706276201196826042397850858414921438112929994265130304966390250517759502215780431535188729043383907666823576151784016633641484071722015736335079608441283245754739959126106870993901141858210816151123004411275176933126615796179527415925735522358268274457830107303846961000865738891289282782749849985063568121853277182133103467107951127089251250608547850171083659531235465071580567940319588277445278315461194422164083769356012992045042540370349695375911042248733185718888454409847898856072531107724546541128520636611122852513571434436146686880883585975490505860220910619220782031837994693148007682251544973947787231437871855103995894513582413625840580460051676817931670454682722000806711674428563348089848155322250840184310026872833442173070580562250061077015061921745082591082869578741250421818201959413371899268887278168797259603550245041440803204841920900637614993479774428360343878548502167470098277623534671706439019236050184997046849310554967388218975700282978539513614350690788576280273439265105284306298128952070598664011821960018271305786115261047500180951493936267105193825882569806848063818311869270844976427690425831050346799891159935535651766335700256201335437246687460330987347194741998675205855877214665785236076774222226702046441197992620118273000067943095956541252594070302726344975733536664888204433151595479891278259784505919522122802311188389670999941834287200537824399989667408862062731948220200610661789138431833617955490747602044317791661615567903349204131620027858142066718508431199797359500580758688055722711343385335539292405063311391568906495857727626624843948757157357864633917569957561340137610026264790924504705554356057346086532792175714162258121471787627186769149105202090200770645037892696135713942952819960747199056848296834157229795011607780214573648803382530546857560229818863826058116496075924247198128707569379844766564159917371907757861096162501719380787118508659474825110834782302317270462309878599191024111447347758217350917728312895830301039848670813867600864142970256349795498571595293935896930247857297237433557322304424566180665289921514691580671735177852579432195981248977699030996876768616867695475075282469593259687505440858749962451466984925811260617216797797014692738467538348533410585676400862074162002915467959852238053657345434540324063048032503989276252969393737081780195225368502359250722126667103506215868115871605381222531094830910326317131968893176385430773684915522186570451232502613511236309541914825930905671322441198423858763647172314614587632047626016949508386608187694166485951186936271358925097198179477179748186914896539943953137859279797171689410124393023098560778783370056564676645404117065871522051659132783977629366128267251284679980085011620176216713838330848462052406179393772980916602358791612512774554306276374823187133949861433734297488323704093997515186821817743476282161292227998815036211108363542528208981601245011289678107107369382006026751686615005995332812990944354277776780066226614140298263813942809890246087020810684251653156621348945825698720827695848900568726213501796254077210045905267887123870998366433669553397414658901401742928760340051104254893688157016806592356228297672018697428061002332307478330925374116659835261979518431961277300217680306393244403816742619843282291565355316580288628934831017004084860534952560201426860123853682721087378264448503566180813458065090912503886622966360035382517087665055621486257445469986222785611187315404499445422863331657031351293756704808478257594595676124428700069752475053325483161722531517662468843050803378471907536100053268364527096319122108152625223151250823809580699183200760774905434084014751513619760313034784433645874264737879301360297650285379500355433304492818953817728286040696240359688009522269829653001612775116302453562105797206204549889889416270259871927677118268056384194694507731943680477989122170734446902898624609788039642360275763681215347333927354915194528257441026846648041794738925648351670291231049413933903221233264991605919952325648191995655768406733134997900575779737348943911932746355013538268872840540773120731778067335732835491834926837960104883731454458690589051238450866427034492707816289567143005133362870717249127756431737382986572346654469007102828970696190265426763908164294316190513065443123780579418846021967152791560549666196935173361213745449392021504956015416471842875213664950881492305563779869466084230945749872134582632848204283683770369765059813498013587820774875932644560671902555280491953254773693321483521924302146664891537503633377977786300857081925258644027168488536673298416512501788642918464295635202106998562285059199035053830129565352086167832505440851668548934933760501639653970615907003387841225328178390324037855553198430703471162512933887480414149036210535647765998670650711270792830222540160466847971980323265966641794696506001369870033472342791349790713379159633957037638166119064211729053175058031148044027623570858311643858481445841927689483023252540158229986414304620676489125343299652712381690641266505382775850946053630689316257022310738512418637381144194033427329474568316497578356718784683763741106925101305912178784751949952940550693877981407006741482452841199437417570703683403748002162516371892209845296383291685266653484559467134861235052843061981501074541329520402630946762299611747731448448573979879576806358682675653440123227893369933109176893617632227922598616700243617140945955262979918110506523860525434511627369911312122085764643126709306997758070391880674213322010438976802280484413392728841501478748186567190311914909460570652659085913782405027337454662954497236361189073803472395440125186687777003554235648743920812050875374195249573880579140005279116768960532548891071930093134846103475261559771849366873737422565561919032390783454022084473238627678153728525219266529413918085837669796903632943546414842874118592043860596144324481559424671818183114182185788317519821867335476322121928007059910633084359959777863884729442466807405857908214509190896949680680840810850974351321934261239837798184595173247257323918869987442338698238036779069739674563037528726800905894802981358178403604671022503650322722130043099796896605711201065436146113282175001156787550099667236823283677184070687960084825662989740655375880290909839991570096490929928665938004491712731683871793114339793246596174723175184186758653574201203246923307608627965507787395440848936879844021832757486834337706850442653403012780927533522249997903719710568341653760883617401834891488205678069808929921380043819120145432821426700545010323844726135143076885894403313780166077477062050192837435414584500034211139135273625197124271544209487851106307843423010573215373315456818937704398243646226651331111993187939294882388018708114016556379886529510131595967501596120701453129788742711138051726632266953598832670974428541555644977651065166068675959038272672036433224089866821332671832696222234677682795851224259393578515770932863652908829443769677222540972083563043434669200695422473578533584694681202297958508966261230782141404571464892924482653934117224891843838682157958529033413458055749528215254104970965354475377060608498538411820174482608793272382185441104206274075775133428059659799917773518842436009689074191369650461469730934098645024223969133110760098280387269944494752781780191863803779533369687126184494590216286901039133491519703007212230178262550046647527134518185069516156956841325576954566626718069640514134033772866384080989426666930786201797917701188779509909420781756511522227134295151366675381761901423709208867262527687003054519017384538039991044609342677640971582081628108595097532656952459175088262123907880088677278991765228464909606089688761054255387585469887797644505780240852292118240371819795256138409986525501000790026765013922151181488370299569798991501726020472183485033936270019196637549143124915917299640666847119595217216988374297049136751172987624830244912580193178312627620274792527326604875720874224970242428246049502189062211457513525749994065464695794529840139037153431180723814485519547950547885890169107582728798205331813366340750228893282715287996719451492229744850819685049169841483100810000892793762572873559964261921752207267579309288285356886552538775921866422894868029876543333446458126026006570789883678322939129029414385468447217928484402591807962743843991767082271910000354133266343112881908432563202043431432103728296422889751597108819215734972072571342517157001834175580835250411294449032444386933365232014603718809396547582700353303172921900057941129067617104691343790211620768205602963780168905669297036909121505831829983625566432215264881550133996221740693269767362861850079232429147965292836065605088053032156603779488635838811992005494958003164999787849424518174010297190966018945089818302346574496943393055250064348750297774574913962443341272554042283357707494768888608053425875537735249925594375677560287827649401038681157942928799453054314674789210164563189293545855866496085095264851780093646433863337761915465597558270095698975617215743877444435967168576208770560422550633686110976997016323978927219407040223466521297774975166528208003798102385863011139554696220315517839910307974872011544508581047886932393652548339094026796768832885542979900006717555118701113266990031569881883932572458023347813648861893109109000440891303673275689615399274746821702516735299734378856185627592068253861393294974140635488734378681010919011519825962970038615042534413510832643383113344442351331149902451676981805258561097937777218791024404958429582159970292941569605459517025408264718562862810914812468088254892463653773022630634274336646534528310319513752001572565659589277024781590260238005633594491201415688768651409816293680198166326914741839661371657616216875725885659701532204296225195950284429913215514804558825847363612614140184884528363433680583662961967802901619125070570709168648830635661444082814218345757265929928918715676894319149992650591756038409175061618114619186346348754014218247750285529640987300177365329886832085592269241014904633469287974732970319667687786056522331716603228225638087919442093832258385823832841514998307391342404905614081814910823824289704191533066036744391810501918510646145733443086171784186935276030877742157855203147527912076041954400769278956685654464566940671791971391194182196066922843580878743286152888699678767658655914161212867038704735162554481187692288889476378656960390615020826905678498445805399345878827606767978455353068501332152759312376446699303573398525937838787622495784017471057612599679501542189053693982136571936985400360047798528700170509639977422319014509988044442895406190153363744567081078724117511472353661974209953495616203324222336099344931861123908602585351981360657919046301627140511608432509025158130804392120296539620472450207384816606688794656146538233859127011047620393649718776786529644993817465049431847743745796614652883892389472890146003078707403234257642438875736047197216570107070233974744008200704385168143557689512030999506006574657303956876825041814139256648605476931496419071376543747452188676192047558635414860383478638184507650602749566550255688057210558421483945058166437581573257920693319836298763265412832978581463778558528760905909867968167842562501958773431802313892965072690461544462115676060824612769958542997596274092686591810138462322763701726049679082670964355656556362395673958173546821422722068192407487647610340911087660238195479003249866904677175400321899845992077404863443127950225076577611093917267002850165386115164591419123035683034822300525120833739878636444033474340716829889914053262835966753823894261319334661771085664301173030093413243089105221348387064955651213748029160355146833671524582398780507927974065479503404518377183350107894775446617602860132278320438906882694617880657530547278452583480163075044786232230016692721029539459884701399387585269026155494269209473230159800606446502978020187663138187772713854811910075635166484194872380455025826543035188435462324883614348873146625602439390680835155630575464085131314914956333829511701575615022612925216543597281162738391423764956741537489443853957044521830120608029119633204460635339089819514380229608850711656812295215545712984187968969562526116138642737015906841064677658528743572809603965949863847144600368498866754170712288543895966154502395633777342401920887104228104061988478493386813157602969258202400479462168534950230307961666678554587189252699079848237170532585156556695462144966743554747797426060495648176397599040095340038354388714807246481455694806810590652640442237759056570131605794991048120603833600480451411336283630951729546444923528065688488398105625821692353339092203831021271460102510961169865679768914824401906628256546325150150094029418436503447031600049993562269791640573273067144967691927455339529455489110398259710310787084608541945406587085188424448124654553113154957229649267829884782138009367074244866856416065644469080319134058517223580437738778772660256411177684118228321086614361975971800261157188668444232559464638500349890825199711855529075209846519626975724489550842794482466466486839359680214972157335729611637510613513156377563686299951144737064415086578168940047001599082613552167254549243600703168778120019232415260080590217925764365355722271842119033938553005414217442886812360801140990837349033954208082723932258241373395824292976122633238872668153532094293585510581869374078145366355223927505754377337770979594095033218893161392322321890556541284559744056104775016935306950476305749507369011631698879197022625307028713500971493066048121554984293179467761841733386498923189717222015238739360633218776177362181879867703998165965817254270789951505984324021590892755603895372593475335324698892958769629119520741236235939527364720840400308247314214857549971745680964538361062145881141460670548956625093647034616736503416126776806857514802623803929193865202775802146000258692767407656508845559902527923682073203391519487108885776196866606134120715083858595827778100087327122890527570140517310686652190761668282789440635408764817795179625725910089823305086912114538211073572440427007999467839746010960704205243007563753118010876791135059038822960007840685082574021945753346837337594946016434738424162161591937408788015052435177797890134153011094661147310453793239372260386389133572307911972524086038532089381534598568495069780270905553848377730373097648616849190150507016293502032513631638844137660270740532254319567011126634882524151080591546936716326665623890877195680038140208439100479630374069224458033649645955367785411780252400081081962624354944085824676423177488663370580815049631591943754357546987433999503124658654102300191616161618095685482221242080824561556603609967642375824643517514191980536030999589954396837613649103089326824220473733074453316410160624844135966819685719568906428941064031342812832138953747397466782551073809829969697923943646112707608879340153394046641598037255872151526697925956337138286246636343906143320704953988027577108106331104289613493704280730459710371851252168714066224874800758054527997915636704382979960644794874095244868963121440044047661838077727860559996350204780236876360971876611578075635085559674224805533166614547808618945225547715133036143542405695174036766739439212817324599866302826871808780961064797366041149459873279830874953682515519808123040055647586778019984201201005764227627757735673117208391603346229857330991202899478506797858305760474283400544745693784092414742958287034598703926510746644471386678170558281089343882526363521434202587237252068791492499313231362412791448174286171224788554480908425120702548164621779789091275777341601035826713798539377943571081589290098855892711555548733805794263082301111198833393653776659871634945961055807056462274011950475836571962911588277015077256403913400724026546655916056191434262835561161033830681110919707607582386932169084928104065302391106532713288499933742254616288170509257701575528944531899581024915642275136523289669855220256178356752882774205297890615824983546066229065115874757184619732400698430744097937832229186979737262197340953209137834225563092412751841767379790423358337220429991510717688360436729948713165804981854822723192316913816510608674429185035559245628048591367213640757843169714565158227334665280721951283104164787438411773995694116609435590211975262162508476285873148126136619701044729368688269265710341581664778403747840619372134644526688157561813150023247645588628773837574389808846710996443661336737690395966325512808089368012867794448636568004752636810397976554054269601404834545355091760682483157920313820404779072124558393242133581916609640373476300761844549848054989897350153664361715775737778770247376114230930229137330549722782074076530784805493724686062861479282842753173425981757557534841848937864694469862640466115753381607313369897944216199804946066697120087853702748466555755127923531953773481806770145820575454065469542001538525963147242216047628255339155688084756579854056223189421874365382067192465652917260506637152327446434584787600571503259348653044768657505665340067730361838181440392008149795355614764840089748564532808816058339712329210406926652772940265481583699578569101653260851895355001538368672577358513516667933657345318607552664562348650143876189721310397772269280142723493908724865963520155582429241469348826189326907469341526337983755365371740569508927410996353257473975410745288780694671650406712353884914217217607426239421369857418100428955734121425947266080641974121057158262949949226176902014954304584315043580973281277784141322664626685961420446918575236489795005615372838276699468116568262278364216166182866885364733695910695975608792257051077632231965136280647247230287183364987497067146508853198505931844367444207955470559991500816365626942551716150376559231485954199126951655834649442436824683660742689168160122880776693304652868034262172963939675521921710101874517301597288337848974390643427638482529410152390310205115918243112720984084355343896979426145061453855322307433958621567632377923815483208000004162585187970138077098270495483098149277822903271451093335954990956633871892673917942473389483648952157943616679777309914774554051602343139036011246191305826475193490387464454898781949760876119370935638191746574650535964138142188117862952459626375323898462045173046768679135421829146124287060199868058719502563998419075684391264703561552395726544818846004034070284700044964654330812447102010265640733266611265274375757085786786782688628937377349758338246098320743474024542043341642093162169794366145304870132164867021334522038175223540382488006199197463145661935309565811315535136321571471969181970184898810641820709377578687442805536011398489434566005616466177932280542505870760040669618295402057033239897743281619818705484320160374545746934360334656937827530691529161819948842306525872319846763160661970882850934325231104303948123146811722199191948442587558627651821297148984863315920564355553815397128580880050560061960627426004518932904068382929833699343072234067454366726665307379179835048003651411149471230041347362934161437529698476052541022572286489457609527533288417393869293414187749970836218981994740039456755096633865133805000658049884433829895379908434317422699470337471892022291083225747214431916704360778393910484584664130461702190707691155586198491250707112988308646701631797914866734728184152267466338212057846529820386293061459824707539573241819271612811525713059525557993002975806889918852058625506328297287769767095795920255395466457410908599557563612336259476126831142887711313754719053051322808862961584412711565055966322528735971131704405529312748034133495646537195517166440583858218969412230277886538778289689210781985249123647322647629470587569413657472547079225427395630828752326261188689661106718347684119013760307839436053678909832101956599796774546993512911419508517719519046351809776347318594768540597114551172022478758593854990828439476565278140739063026273386132901906624329729030128409845758577641418487988058129863299606006626865436899984743578088138793295907837945233102839752255727937796061352365472020587566241940484853514331526118100932046993763366848885910869198028801853506554288482284566988400008937955269235486246942356164979970920932996693116040422144769063812250053924641725152217233383687516856918400844078797764391590369815943192981258461129182680492291497474163078355983715094576670665233285745243436719528618070330615287306131775861081264294822512539043918110371976334232403454319922467461621614002024552438876216799955423295039073992095288358780848968454457343882825129426128950501658303123159210110606199616891074739106415944072167086666830405658056229377687088529092108978152463278970982031796600423731144126246514582091529042878715619891976426788657971980415067327503068574623705055024536245940946663453452420505007669785586782719105284948308068451071641316376936684299875374013907011915094899508085911613542622611346593328332895934228718140841224851930064084232192943568553105187593113887390346996999239412170163100329260803445988193015047189516538066149299019883611337640214831617685400569536851087990328893522885230072488751236596912008007052525313479730692459494344063678575507371921364488942639037451076797992438188241717659567013730996589877182728404911459598775575749108965795728143758404179082252794366537619357304056557049041462324926201165269513568185022144338132767664353804511576851544035170692678447651652155097321197394012489616369967744699748190069180382302104577793903433307141291618851180976760186800035384693335987102895889350975463653828235089326590555378146494122523375269547292794776731141451797512944420996056345651391721052080048574127828979457380515568596022629704523279538111580563354427467018212931913345412146836916852053334325144296259767843332948580688048958541348025969723090961916149477444298700125675981479593712251344183066719527988369886996567321131532952544639192854355841675308253060716934287511906098294840967849109308523143138688166287845286751430942055305241607664421216982987622050131274261352165976543657757667001897088614393992856824069466839604793861320915316037037566188075693297268866703007594460119835562900877274564217467776625374925427355985645073688137133729438285707420443616369709813037417365697041300448932283207657274781176698882611139019234979222453692370012472527000064412594396539273939546729119630900741428765386378203940362996328876766707772275906304346999660153564061757721179043320540797285130914090445364899194129886194969833112837504283796187862916084539495362822112900352966109961824626820115565325895491259976338088961738338485010738581654912162958353113278692020272328767239254680210329434047918087371956372463369215304754334058237578195445885880035128320460565868788407671472010998483922737652819575543021975487856402355476971644824843146723683238053126438262330646392517342431813092262019264400504170005122552774075976237889061426370790811635913746573851823020275307951040233915475624019099345831825810142689387023786496549666092366178119421768286377221190828412380320225130724266097738491980422799621332479649213885671657138080562690294142436799311246209907825633567983574846330638397262332618880172796409930753221114436691843722595396047311327924785833853642251543202492408434441561955571977453088776987882495591681256462094737513275712266720792094384290309313904527373379223737557707548572195551290381384448697817785695945669927347318488314440877876484392306459909389161727057427430669074452101337316059835238429720110707041459554385152555132227606515177141697936006506033463844954827600012156786558504484985292660965087095383259448287370753337654011121132713321749858134203875277646721475600252766306000415896011320226668491670395691071378988255245328278563390854399015651469597815134631782005114920901994801308835114345941717307274019169411246826560330245029117020724684798190156087330024922393354783897763653707264918628190445619828827299232435462435824995452154858924153191566134696814675555835699006809911934311787668510434052328280400655689293629497697206358688262397770219518509996549204558143325545505510057353288816716116350945925737629423180146987021718290651094469013488019891407918327829752320569278573275486941885162223606012187571656742552741550434992488700457864530701600006988093255369398416000184247901215470535361124171828143923208141683813141129693643450930124163482315457098627430971078047222374426876444150977672199763483515509718056439393123614130040153710567395162065209906921970955875773946541884853471958424991883142825317451945978286165281258257212857498752707170588700085036553754909467570988743927287745273407525744117495013778402281496540683769762132879775409933294856570448347364145893661902415293818136444407433457073577744487910986935959442602196223482242940706915199934762438012568571161572763273597414366619777854422641157327632697352381433245163367478916036205286102318139827600275306419696737600522647925256807981422469433813333572339983185164809053958034957677971270544147638081905370601920580596542934590599454257512204928269406649588373958507406580959615885027510103479498902432105359381714321141510541938733957391338957114219082921602933694987652685189090430614260841248385547243621207008411032705365769783014114004775906790217519464533844395967422213249141163601842153679996130189345284450475953724618941128994964012274910678970621500272853717191279382898296011833833335279942491978021810594056636638098863045585834248070304547178853789996743818489801441125136048513329306545653368229888801783009826412548708765587093310080216417757973390725604120567075228672322394817890626582526460752683416118068101522210476202341884801560004953027737911960643409870692232813805348422697025791429151975570230844181972980569823055654391589765698051508499859414006774306938184001212580746186653489852683467679911249350842547903905432521499112096847612370535243657170207350101864072928850807751165648450524781676519187794008351680903104351448960194258018271097733174037253201314581297532580507638891002875477439438423444447088530049745541271897703222975478405312657530353271509794600074343529730265071464003420841667063693940836594794951504126069829165361364182956496379420831271405996705286206903587428007699621439677655652681715489794178060459989668180979418061278547806343764964887131723620126730814406745197519047466379996039346431378828034328620118883767135381463028544436534750616080946994542350008055497738679689784148017164770166914944850661684902375525137305342934887036986959540645614133192913044981886575537226038384860051596954761324281969136982599541044260368537488353997317338524064193640318431312732282249986237420100897244295940329343486733777305343346792455838749471297588520905925826700671157693336683786333061709936398047091427917159918242202100199789410119346030122998939987268111301686144273455194732085209609784055255472364087090438110574633121693409246103709152184490219790451810953763920642436253873715615816266673601311400324593207034655292725107984873013319310215821240559795270173542649896750876952372294206890188212108592218212070405574066031992599040333221663315837922591784952907003138494218985432989817637302895976601765545166882694657958161562563975718799444040308742702543108032622177544776867745917334419636752654168187978294170857085114956106831445068241913701924428750217211105818607136982710206854835723868684458089422774799677821287841253316621868904345362385092754064151111026260996778671332969033695729459452364153397919071524849665503856316643556535315259263264249772859594184545257240662913936921565564963000632846130296886891124853831821352716673574770633462129996524766671000301126619148118913831502738906471415016916108411245839559946266412687990061820079001557912586220849509693918861527163490470738963790192925472354928429684534713214584480334315542028075699937163023152698088619078997344091042231873343534539299088038415357543779341335374306921820844096642322917214649812789544287795091125382238467756390614234683423274087400394139592716334339411079328679119976484119799979266531729852528930127367838195827462318815197084785546986001307801150829583001098960439361039556989808466367419578727349016199403738015858862356065636651538974736661381350083582759343768833671883406774754960888682277194240445327439963012491284627931362005403119692588587553458782795996958945866506813170282346154947990133059392976290961009619509617013851405566289617295378740605410453135544990642523798121760816174346139905477212184643437340054074522522689047712688075304134913133325895832894060923526411053509717713950450405017096681496305011001861626181823626588029444437800252469028903093311977594576749922216349726473997438529967959408454981847421201398525092956565252560999535505840803768482989284165049828570886803762362266943928755942236011436290426088296519209742765728121484938286534959290588408415673278050971637515424842709550396756480156400250130985271898696190821765819677901878289665122647100569102495482239668378418007996419777904316754740496493809244456563011252045897810600219479930795787403594007837411778756582116242336517502576915289748883923383397034871589254292424634494652205516972037405325595738693420124018954026186091625880043196428493199850676457690691661799967775459565171430268972338334904796163789100543867607689674227734383502673245862228016082564141022127512955642052402395614657114761282903515598043040950609838981505143136153326884662469748434813226784989674646924101185105683218906580813721154200965853232520468186108527032992824110446569345679378217949163110799978063479349462293132843854694919113051405146228546650175609691750905718254337652281119489034043636000289175292914385984940981146554366239320442522004624015850681357909666583869171866918802891015738640330102762281352253976831091590061433818228631867726045079851423557148666279733000800118775355544658849787332629804014823173839631927407422703751502571190773818203502285733564127561362393444426503652477661762243964614007538750921429187435571352595558582739266566543562705465879697802208239748475357303912898197758884600307578254729378087377138430465282762072617952944288892653465715047342857718872174027946114264965386072160982841786962518083173050782230194935117821144830739576219697554517180052493540641955442119234841598419401049832564338546342099056870966740181991487743952057218148770928681994606730271014508265529628035846203430969702981216546593145640242635317462001146523408621845040571530706722756957667184895399659794940580061930641272253184500305655241078464914508743078680380283177377305775600872242552569756657254603626090360021335767841392191022994599234753284546527028038389631964566189862065485280589188485306898747172779521769883125660383447496722564897096109739767996249176635007593583176032917765758221546845019464025697126334418055848217166657712411199019772433498952215076438963981744288874631379286340550343465359386546899359255902196081228649823493043082380288782699509590787527874267225468107552261581583109961463399145601160207965762928070470109011416587382232281180415847052908048603932653400842874553431192780248927167800860774174924782687239586652719595713056324198985383243419329887192751260926423346643455549139423632083037842250367031521006476012887972872028286064351945257106750709800196482227499464682507530698231800534414566936499277055019488909996963678436456676909102004680073977903908086120288670124947971697550783197090908539314648282888945403305848928765968066058555937029567864609627174576639451864025154020235736550257931725428615242599583484961970909357898009287983753136331103055841996700721467546871859167839588092825634038931046287941362889632748485454435494227490722980808437570185417099021430545742548374877713884257992308860453270423911930901651571164084887090730139362542297439452488922257865748149757749917751806446175668012879919931012453439471048616468764180275447632219767511756712920263096548410052615870077754180124360954286519592855311901869321722787074670119049081222540848714628056663674921137884671916152974757679107793992645916921608083487039516933825560966405758678768686789489229799063433462333642252229552780371620987962629165347078307859934749279468924228999178656741818538685497521944728531493795421576784984355493894057037260402209835674227707831459604797110901789326332094901365538462757525671011288644576087032362468560601759326762828843979488409018566608950354577969038307821203480943922845975934202539987624455275378648520911281108079845492047498966780923081769832737246895884172764999509233684230875616977439993127745198902151996768589522030316782992248325247832601303439755892504231871918633235231194211658276948911787299293371673755312412978818089602745703737435096001835304834533506744971875901404364349501478983775287200101553381913503321071917337903793796359920203198810443220201984338995034922828584982014957256149888074488680816943874573238481049667332641232887857430279974821348499395146163373637759107739559289340815431512137256564545878160404311821265941711862861813832605495300180683954795304242921620954465069142558735396557528201809091732313831679693501957060964741794759379392233258627483478475692083400559213311094415082172550078411520487121210445108519078153715484687106899594838216446554923667653779486713073735065948432014413017829401649351038532724734693070480321948874823363378769906727242260962769135822393734866850638190695465919176811116366900006686185387793302792370358524390944291003796263250252226148109557023509732395720695285783788740322252119220410384746167342171224312220418597939468543703314781016354557011207996980793071183301917065318471710506265842113375782742054132930483535236184318976849112931143038149411365019868528580891186845715159095050346343299533003623721394416602432719553191972159225395992654594959907326477256949846353912953094265410421479877333594868019120898170850058026469355176116851891318067587914388478454443354781993764298990593378558780053149134320422823761601013984871848737877290753598797387076640148168826790219304342398754602262792749252671775729376934985375883759983338497677574209170329685071390119927487135606404065730247081240094695104360075078793156284688675899705081736360056758747941443792506683212934817168554962289083574836220366066596828671518085247274290118866288522940799648109345557041883930928358937121575589167811164211201199803567761169001435784723953767804442171046363239103342546153642444425240240616911030251275154957481211344765722611974970185636480335292503380525123603745022808603490388718656440664525410978360829138646759339466797345259703772270994402366565915189864835826806175604894830980925044692281094810641954656817706605764322400152433020057186489784533180121136068019189766358007830390690137721086523694522013960138937926476201719828589650562055616077737827053575010003544317327562837690095196818105390093163604206971712202122201757342188423708130166581983516696202125422854663697654738995357665618717091859095196603028305462822306093681514945467336158778111749343719311543036172321408647429385982216042386307235036781602319910565204178611280886801013228700605264749256642553638316981116512354370513330025004139013784395602788843487489812066823443013281260043005081290466202351961670541177177494784166946117917882200754411231861266548952298103539469133972646874856751700903661804955031499683378093762953257932350763694907934496110364560387969861971474712015089864314592659557790660504977124653847790434705101136160019885409148056632530045653276784740204302499012533459200212596436154516791169066705940230272062730600572440520045062350389858448956713072066794757449336698724612907936079498817838848439296732664703368089945225788224834181361938326003807737552353555536088432690874091875764469348846174114149526403967012744125392265688237044200784389923416255817201686346816808809638553628530815689765677641826126466140871035134028691422517198319691356216578759234151771292039921375751599847732800808021820243303334006277485735332674863318795536607699456870944386082140810583084405306151722670540828554514321183004552359653526169309183376516469278236889878736301112565496418478433681666127537751040488603244859012554106270566351512292801740567962187264889742535927093604802105848662407277415948006848035796538334814874629331750774464784265402110569348369607926630668996778385718780005551020106373726518340310042451705057201140095670931861151604396393823398636227939686306785379710086182816536418387261394875100045117702254570380757084433169856339258105322986186941169648706932665568235247356171815140378751249376132435289510755346821687887177692446682741798445284154908849450536915178607169964207283583435576103239451666156854577070306472348704621100368313953644857021788632520298628785338357129196831407659172082221856739500013684842495250865202436654850714287396761862295153136384491234714999815300546565313594945054666484655862953904138983209337936241511898042634517696642089393422021527330045748654190627662554814066011038674946905706111484459871108015727853235269323916114282520161514493900463758208877819869547656663418923714297169360891543671240396996647000179519761593781129360861503133442783540804291025681070936219069300406623584837003541647434554736227573164724907328752943345531211139799380535207465749840045144079890667304128193729881448641251304813930353404154473191991442386804621567169654862432201518828730030851507321898940067038641776027937538200357456389746223024222297691630470049402026935073958722847895200134672318066511337147819333398108776765391575730437811875778411223788051866789939896264423834570092971595686043133088808871305112251720198560684826980705065433657059726046959463027874044815141442689368576228985858919872849335485126192983645977460764641008059994418720433562114844604954938400985075359377660950882935315772753201895445289914745507754153005019115076421792862042348194309367611718945900895043666538375974495746149711032949218499336605198847699929571587167635967908970664086927590339352976575037425927468976914642708158161785221293949880247330819812679307223679622817085066308168412467717732165066134128934161079941795865674323931931299890694226925590209859764271401668499895718655126241006917143175499622112696393917183645576700567287097623076586931128797374400850307719952543316734747522096813798694319184949402419816177409501842483892700722838597384528946146422404883140307954907652467203179415209079641536391259476496839918329026581136148497275065955287376689013546463607056926703711644836161406471001506289939098373792615321035240572864325969850770470836082907322118003058657257288009340514466229771341645984786810863937372980396007378823708009489115472634790156489663306070036115822493604711026804003191363995046085131477193153655537845608828293131941976956506322839396525546432059467864025959693927160920186995011553315916422189579586960529390003450923132548946123991504602807404607049872946156772341307700177078142649415425900396707035570494582443401383410536974382283411282531769020706047218641952822879656505713089224497588983847429086602809629141544762670784148313557786405742343683172647811640373678847491131850392829994424485340944725968279340134791848096926908487971592910377942377714338569748284327239888258551248832793762736559487947242135234089086226021320260159906817171479630742203135142855425229409941492924062209497612689575537496579184024665768272890080605768407396535273645443374271662501774071551206803969679585408096197614675242051496711381635029304504798570725623378823266322533373219194437208196506564904209835504760231752978421889890550814454716324112435812547578454894875235224968459707960101305612946474405930884668142229873854422309743691068947554117858784992465550698867756346253515788591564391863710916319512426871908869733994196977364801267604349529812232232206325297960706446830797512943076128786516695506784795085682857516604344204889172453975313063845124907408249345832995927150003169380295680335140312189184486007100616957311620450499490158701777035264791328602850069114080614802085041313387933511885497159531169325309677569525673979125085638833268791383558554463917910170927449597630146970317883335167417780252252148981004221455328594047629585227325346507603084302390211995372011178511434165574748945840163498358775790947837922530757940960722242799302709749744078542751164474576132773755549793314265047381685674072620996671690419722049144113056089385987652729635316947399438073294015478629273008464470430071091162971856299910279120775692099050091055318769870086677804655566767423723058178985187695827346091495318605515590779942480676244114050738815618754493735892077915673300039793102951488504250113288143632427603273660602333457157429239978991808681830631693424082498114505780961228226723985498548109633887992028723879865630835173383004544491982364257726435214679330528586603871769567515833493653246850613916810784782307931188962820344193405982417509006847469752455849296748322758115599718064308230692884083299117698493266162392286628005232785215560853208602216941038728456039940562955071311550187959512901054797928170813647515205275990546776746080622899420974158502677582441889385684032147826497923247880708186318676586055932192177080559571010889280689016085895712994658519945303618216953177499079714139417235476444877272735745991328656406702996341308321584636036139038552227889954487483307378135133279147832332566022926306835924865427267132343869780382368955661890059410620031253940584975412716629626764201742714605321301531816400091530068532133110961414213449627225018071586812164200191819202622325671372635929304781857464420209834278073831310146872246467169633251629389302425547119690929252116216735432655955275610728575826187847217849452724809122504090920310842059937595612625641722051622593003251904262218882299535683383838870032975558925370104522393604820766538764712897278018834860466212199651832284598191166216920592000298286792377490174431247404770831959745708308356574615564825522648268791783538167270412719929372229467489079682455596182881931505443718366022988364081890480504871949794288515572510156806278025031419064568151394371271351446860282505427741289886410983046094459054744258028420088367017897446969744888579292863986776372876303944139256199541776358978676643132956431833003081805444834396608844092767211777599714389698246042994800400048291327027358008225907189053205072180908771892940572267702382997891461697632161783862119424667592371629672302048501287719135190951752093319396445738897308376361590621678157846441837855509577267400915319977912214057131375217855296470074079288426762659125258302653082331127522426050098204807478030553217479732609497140074075335831781815651921467459339616380419715949328519891763663357566121094672018189138967925485951786919426070469022735797051828613665515672765889602911547774317663176217552395487329881467536041277664581972237505327483999491229088185608560723728896854085370046342121893770402650773444143693834016224148716228867519222657578443317634442727161928479120674175928473304630026108966241680194458799447207953874339981816445451394664723145450313966438657422883269031159913497968857675355954756205479751181649930340394070507216631034691786887272226084329250121331974135293581056882196269191639802144718677687306644878069334664954060688066051241219650494373883883584027519147753553678229258824399872519845032218013394001941717199116507816789143636336871247400689143503092573661945038917392157304149129679050500555385996084139053460467793075747305570617847732588384269779906898965395759211200472354477900487438226368085720795893166305343106584742533339880877753016731437782933668583205527475811946860178487575053774766101996719732046691905614002127267746567879903455214811805670837012029507574775384780102798853061634936445267797353437847472176869852058439644121747192678040804319089854322304121926573365695285309695069847970342565354251463375283015169104995010051429555913859962258350215721058950570143602291878034535811957545669858723193351257915545817751485646960923534589219272647744510574972899551164319749866423442890629597619591490210081085878424701790728917683769975072793373994770155609853573851442365206214150555141847128711216895363532239087217381809103240961620598826491901812023462172094584869922620487954727465960742057897789775049407082263711670400576765979969053816629988067997378125311873933420507856116336431854714719767746390430794464049991154226969803895409403715102602536193335008278529102150091350385694811944847337514258216001788853308901791886731442112682852343598410120604499467730463335834576519843109708458584842173135753866241914397094229219976432924884526684715172252415299429614338208054091606541509689999716770170729973841511927227292435769944502369787547474991046335445460928593869147442512819169617840921204006083720729972564925797323010251268367931062238627769975305875353357115681035054597064267713460553866639586190036734105491942114256856410092040743042061129633270690147818682801834273940276051857223525184369198817121716299621578216008985389063770041910604575801682256719934925587907204431758279412055477427437877921988941045823882892929335123014437423851864414564133596919759400282969172964346313510678765028635445741523615350908853158168661176465993168026730857527403984768968531542765802269063394071959249945924673849464195901109108468171221869846265063877975275289846293833784393124514630754270480966163402842214806267415168047869304109887168210687006260105987559341485872797781742810483853764647314576963685025397613665980731138870236912774492325647466699175064102984893854948830800515480430979193069085513548514864117089724876100958325647272022106617024279822474235294020622695958817932703300756516582470894534390701541459545215663900320002467762716623679447278251574613523273552712978181472088702816912503849839065572577018081007712600611398371151043653936030414601776000068649897418805975579214075135685671627851735690590622801098319632134035638608963853191421539204235035761223225992120462450304735987358910862723460366708873321218902709221423256129692383693749169774558987868058839307725629057945930853414409424399662785768842571258360489679354341462661238012651890922519422845424493670787002964425211721746824924499324373001627284707181745539532135731679167390477694428783529979270896823055916911874934349263351140484572699400575123315707555643264281529227812755114222265456444439110115249023383332652446174140455847985591947123156447979900178063254077398490731710498029292519395107326855635581190831078145637340445884901333298175631643867980785320347679452334541933172015308085707533154934866073438381226325516842839151423332196902397904402046128823081036287465172592707549908983328620548632411758762228152412572583779147738913924367694015711666811883901314600024418522788775483127035126372285655045660471525105345375740616635806864313355506265049169776085981220001781517857139275870029177172252350772607751689867943067848676042311701111114205281547132964246812754601460255314209779102379143727020110200015602694647117428956358312987677514238425673984939294591953408020089311858332654436725782754303364694837402074302700063974925682390975924851007745116862540277561289770024952612403392362483268904070347703207569105139631053171230846641785728379339135669521167176508705005121432118436296184554306811385589779699218352113291544533366037697205870445557654632153655367332177811370896077430824260946254993418939600700906251120124047452909590197098445385680787335013263446426392199963261915535462476307843958851062858643847496296172373658968286812496587684854152023967395872677650350966889211099768224176075490116092833497894538393811340089264533179689159896186426661182544686598697539243499317142402184866934182381971825511510443373782219667541506192896279798994436025279864407672466804770162415446268172837587761742215949474505252100740747150411707420452180165987439420686514168223823230892467422865582341665903885459746418663414465251719062341150140610793832399216412462765345343559595470039614580260904078043310235706168958901589101519901087430541336932025076777584531388178677704705486455642826398810525639896623853419430117739205616382800947635656465620491639726053944996912090325339056934178598045737128327304121656142940866655260143641478756098935262644075823586955316585546208613544831662960967524729001337144309024469230542665309243039363807535135817802589605883814603470141799635657058767785136552718377333840890122298670805715550244523233625283232997771509206232822441906183583554775411055516279324552211980532233310154754355619812675737487529864514626009723391661880150424016004599912684819197998556131519754793279024682483256255901457348541653131510935019442174208309562414539925536360513543415410361890021842586096431672977954702665910652672127113317364594986410084274868941955962323185411398625086162118469339696419216546170870029091594263802098603255144351296159433746132009606872556800570008757083774060261581747832510718567097507715317076894057350379069602943099672387145173127156723735467707987570149186782370631290502959313726766625556113928693516100112994880216830239384430165997025854136812657529529252540836870251260957289261409080334970290039831022565060530679911685382191003042525274950048730868038059701423262839752499055598017150742046829786529088301399207578657128350240930395849094580117568634070705589927763922573647622865341156139535708331302951368569909920227989118736109478288271852353618929422131163640956998753743136939387623041300016231112198954076925181098778767143172164206508541573151648198783795119669470541598336089307245932326048502067819333741040204180644807977590077230422072384307430230223661908535335170582488818356641107876760163513277148570016766419258029982453213879711342803420699300963725992222322727724778887988006096466850690484119758186246302515070574796838873292329770616199010225687033358204207449126884623562119831958951494121006438280118462398077792278478638064968524201690015486714193857226472501323314064943404629697844433103981842272046219910247817168659860514188994378627787711173703427185756460869679737809912257416235135582572300738753883774157907947916943978390796818029720033802321622914517603640829515851828078259726306376886876140474063233178990945037059992552779399234883056212017604581833624437330428469473323695312134002481223573867197784336052129538747303428029356718300094504382442965559490528377049344327841600372645550574576772193389619396517528548007034783970237603627350637093161689739430031508623772340606611241286299576474319300838458124073169410044753584565019695713709491485648243276185336460008469388023386073535654255190056494571913919163057591597477072099930005814258116223368451543604154470588826730299338690991339544590129183178214876592817874492315585419534321203321028304492099683036117030869368123264932504209339841797393600378980775547765863506210073399174275261513553341654911070193871274624401438940690357874134871489627158816428560024323382074121124321504759211338717739453035535903895009068356928769736667253110184980145189894306860797502760616273324932030325887801194808387079242096009781941994332799559019433248914744883566990536643323980033123192276453762354367818463191914029371556145289170905368888591567223889751984858997853619404952138520151753160730334827448965075977222812077676402241107948998487328160063415675529121787647609866877080902853606317213516299628442697654735359489900103151309084672068078849668493634173440184299918877070006484965338897046791007264660494819970797097911000360868904675145150126586599753920118057235507525627429461105765186642515883014743846977604685590706653821895821176945502217897775247038750843351504232757348262475243213020094713845461820997073335529076007324090119378142206548987924738235972207578378956237288565017908366733298754556614126105334312175831928127394148374036491874835500788489948465958104305618020266745062288849782787940961536391472443194575007017142123204569084387273555186849101827693369903766974140404565432261607927835551764921354702270798464358201509401193890082037696952263332302551694336388425589971996693571837732012410692195991544365359307131137495886982083615017127127475066253039334498028676109532942882146179217515027382006074517744073139144679327016017326370886022035494600100151890107082132853932497800699895891933791640567126763525463810808157104583436333503864148856952302431386269195774513165176408505587858791753883972702915792855568627172749051260384778405681244991141239553097120113720875119023488869136836037806220357252679495404317182784283076392590049625281970323041418487023466326644517642931860611465583617669572082516239864854600038984356383630590628888681947900449710212504057681210317430444480938692575855501519271250585288059370967561222840854056706773198905241470018287480979958590415427015353639568614129795854402622289533538816874554886964952282861718009051066220079053811754238817290643436564103840650119145298111451502434592579731003783274469146938936010117485246006013949413214707608754673150106197844575689368078703271262938801334942075353581268302036816325625795164808446129329853939056007266949804474912231424065630341045559042488925788780450865812555719327729041389539386629919381897858466773267731709985236021132633973839154190952637556922847433963822174234596669323388448031027847571441713131010928589877206541898026970686503480868510970882270074631906530650486840985316849680053131760431862684387565634760694379330435088182091670355472825784452904345970729860702231531698985103446638819594942978896396793677111152484838715410694446374497118901809892257521821418251805242353628966206737638515987843694096463824607641334722591444594494146042066594855140086941573904056754240273815365238026459558131101254621714286748559188500061470746640854399950806120936055922468203697832284748568687418950513508117863495888592495913787757626560543839151572648772369389647080052515827991978652025630566826588747390602114142001286940701707100765780803339512995918090124901566933517197151448998134544367359035237627247931357740191766412267375692716521206089551772308044107380978454284497391433121654615281455747898678981533784543343413055780764919835267928339780260071465940179805691944602256876055725016623706923167032440008318292530019782766097339890532069053329452468698722595757305749315375856712873540043894184143285641093821823432723584081308131416077328902678118568765385651043906657203956685811327786453845062042394215719297595971742900797140060885278012308299304900262754624964014875354143600226389799991962557570787817277937811562021893774203823256733906335043169198915506648735223097930634646516739161351566680708867512562816384666323920810188844427154232387613286406901290693120488473192306762647134751045901615122960625311880659716765590252249897668638493137923001844188041108963801297581597723237934174370931292132801962266759349698688016445837608544790683923958901872814107670195714093082019527198676949657447290618540303410088787512307704435266568652734911549722112351672331473948431167437791844235533031592143737309286045677493190025811533252208355936326626655555075323883523510510944754358102336022165012645853439933638238726498288191362764565494764864684553968500650540575428605184078340618345511177606052335639099976999938561979789535558788239584655184840475167332960772261273461461224262174030081293098146906903187537110240344773038719636242824442512507310055283721411966606351098037140970011351039192783142361786251396945273710775795058326409136121326664929825593240286521824246679369539518830240828528941254375102356609463405186031893874523502272559708895976000546676600509458242994869379249086480903092119397915011427820751083585615491055102267476486419767904896509150962756105884912366395014547786324972795506206509266929089037449110139731167880725179718251938885785604999632857103636556234229798612476629510785298312871709306007672863926120620673900507136734352768001528329465851242834399186233475417926253886201457769788444892519451534305948813661857987307049503376270650692880429395190988064419573034522448341782099510660024693044527727745872360129895059937669895134901324888611170416533020996075561393271552347916674852167712428802550601282301837777715868319878329335563885819805428082195610666758994000659946969295127594799773991568075610199426915268418452536164815532789989850409282121195515874361324937526886013600185453857699439819471731079070337054084646789075025105912602550995182732615511390875658547368592931727735308298974574327372715580714503672356589601978384995022560483954863841370817284357770814050700649297902056473146638641618083719723194244002371706095438299748509973059195591858555012928658183024617332645658894024799571099293221653562141067670737682341066827097151365103089493852092416849109098399654880918067381716937015148739727133419736154756703386250819251965658293264649152070632829549173307999424520447704675481003304632318094387773336679134413903552082374004253751470534657189526948562880179913106904115462520312246645138610104276769724399501616169446707187532039389114594539754594489617761731688904359064560712940204537829065010401939399563239958033742083459890024741495589125357743680941311862590787259767422714546880871457153426820265190116171926667402169166279730141345376014008504511945968438653378453430194727694934927899183747568640967619344230695298749607416758958864685772598283216275689204437976461124759980956488965718444247148400545580228785070726160566721931234883549919234084470810204317666085126662839588228801636908669752188227771771245693180741133188746671155127227622024827881720920624206592007779927232675199037001978662892762947000591307245255446666528021955708814627736189474524359601909557747138502112376845027053925111731206587319457948540938836640612617010350644416983549984154663978348495302925481559567437603791425266190539216826520700203385597442386251778025299683765991599607604623024141896137870954349714538562862279939763959363537522569883402844508793069411651869899779627569952224859862411142029687103967870394024584960145334078094284097859619611211515867978231774772029377027149743979210405078535829042596061524687065775507567866479530484575591103192343386984813257344909651327702271570092104249857209300261623557672341996343613777289252020466710397692975210732626815855136048010779177355538831676635501232425844317161973660355155628062878617763211099486950608981584776291922131963236540356453995549721318473242162854187827526881302969852421259479310302052095736275728286019650572711348532159798224521603050609592023122147638241475267476493196099682575609090763077161731043185756011154988533515917286218428354654761925525036591240477544115831394464931442910516033347906631973266293879114325767439616927575453413444522831377646884500698192550342847365637925639078409058887036139446726054165029647152137174238025086991148974482740489729610014016767383592443904076175726474789267948397976151724320267835496339248408419672282737161751566115471166674903931363255997412672018302888519458226538949074088626876470303783270310869802393614767618420573336295730910144720646068465196371675470804489137690700041822725121928958111764940867377322308443408815030527825092399152861856857212862570357474577534633141236152981000316324776083873769782018562023957164013343640859465211299136618869498486289551730638669233883453915149620169438545588949759774859124150594733096594708963313482535574909275544298824127484214359847669124073496713384585115778133685449077172160444008584370105912790419979842804135877818077883714739918077558485290918053240948126480262664535298814287006680992449249224594419050188160487187655774950291234976861616197420710028866534468114997285926010801251185040133302925819544175729038866844620792840550603544439083861062439355570691787583926674821762110259880257322225130813523347696052799580760883491834032195312193661140906577530550405772303952353392496922028657828354744258922938932412582804189116927798344756667773472224112850181783538833333344553336312735676378811712524739432239221266064760499995015327915713946233721070240857653975289662948707478375523033905444990935452417664968234300409369515317939704067448213064772992782313111123978572578982843505780997978155678297108317570996319135624737618110107910091791890991039565697109399409664546099478404591107085107108530047837131567707847643469007803314893118104706214248708577786274765004792214616305482778464208557625994076866846058445803865865296990139759940068536187295007829911245287112165375619299975195624830363499889994767268706706686093728631440707218551665124761644341969184429918266147837883839383559830130004719786542377724017580425969338560771255752568312800004432657376576454402971924009061073899866370414194270234385819672897463212581576414899650912701868167739520465373676777242991977060236077830964271980208645520615799152690881027952277016225615805139089070806506867547818550394312797134963315028887468090689077980600444540514524428930500039532673278656050796167393453989419752052201303120212324971537025566719651701913181233658431908870275574151444047929948621297720704893745573427079756771729534776982605164482129010311783479235182533514720330907480997245352099326189538005118871445566141767370155936409608442235756642598959120007628430503153891415121925932066796355969866820522721561686921906747453926965407584740044179356581262826261725292726443575635846390085825049025868580759768812769383996000989750688909524235433774626563559336708269974254207639147015603840329790303758106917778196759510398180706191409780046443798607983010296220397799664100364343530108557994530408313105522939621531922295151300658149543134077417434504997696972674684363075884269987828324852774649398871732637854485943303467547227930148529919116720738311753289147557896051196299725406246176119233412622077428547937191546727282040869383191242036982413502859341579668448163248565155083005292542161472174555270482339341534287687948565065415726275938206823339610569861489471496844738748618746908531713741329618510435351372335990827465764743515620540037469431084568544184913688107628535036716695103637419967848506862196488448212740020468700986308381398305648364105114725619378764582945599544244833414410782788763706232374125165337024528437611790428166077310563789180134453511946630154512153247766285395272264125361282603269276869447231365630505876725331311785691931476744517252124692165198257916200635833690755056543614179052491310988698127175332318911513158043920541013682955271058158398422070627450680591056645860385841723520324405724909925659935933835610831689825070650914814539046973082704245240529640258660697053261140053847670944653894254891048651269370602174612786217563635208445268063655914893443084000924561979003531513498012793263169646216317809405842599686029785545223803097950429569421299395857865832546798837732662935189491950241328853242476716969665097275767243056570320626936046629266841375708516191028997822372300129563259046522198095287251061644935053530212130043467710395250829035827571137328840280974906380149057842103021717371075951440841513665968251370320510751943888896641202685110123838424570827449314080650571480454709361012984376108058600253364827859932370092906705626354104023347663762543039385832161378740087959709133602761760321336878379818245278118540550233367284950815255458216277534101322014072212148584875487705569450082918795341488263522939156175068588724076172591624063765392172920838987060431117232159551664596733072646653494116058185707057284915505723632131750700572080819216035103719785432930668631060285360951506791074460361958794730584644038590689667723809679755827636722095909730403818790113014771666496249976800557275515152276939734759935142428209515454436684435174235010333889765746262324219352838497348371679037729838705409470653136824748577697280558699782946320877856802686262492380913594409835553442227321437564375203727184817106190207511968593944415528847617427664082291211436015038935717504516627314677046913084511671391183430804317178890416292990143334643716734932586597543096125141752551275352585582535954300878019957622840525679238537359733197051807895674406478235588465859075654072969100864686577246748624209409689693276671438451385629898997360493906117671395071038288013096848377156290318747244704552449029658112046820635851481628454297740641841259662582926275788394144941441004814280896980586812868071440527192958683299236877370987517763513791737134587816990410912552363332805951705273754714875118122168773309868232418238722849826225409781768587805162744249853940181482945822904724195250271813584458349833362410028790900270448925215624764450721464861393186556362361696394522078548710664075342027554840565463342032178866188395328319427080531983503032555160691218866194728291807342449927465965277771403519916836234249636522064906284086343564654106781717899532200323258441241016340902255404310878609667997946121968549236376861478193185807654804598781996310080955259339290889640068662446092192348872149104761524342109914796229469721306200976114788565020570543841273961748111768861273971341546005710647019914550099363460853103252667264316472939192863053854708234649097267630442404119477976651517074448607058096721366767543423436657795061091257617927797387250955560488342822836769572373910640733298064907688716378455759808389823725038920031112812616219750140815190024239228626184337221788965220922973104650487807211491619802132093233834790561175435112854534592850978991283244783831069875707393539467220350997576307276784459330614582398701469765624790381740909431760674975210998679795670035120873740519598782989675793907440150151908708870930792062019170986125753821236339316625572058595675541845408586988710435416758846968395689501161818074611943261673321208186315035213960252877971652840221044555857039966452487547246845835835303287581094696400859704511679090287699437541560098191622178514483814048834541525921533762184833782399039202709024543790180309483687882934709320863506049928463983048747713399930501367536422248779601661990783717371838228441991575217316493380141883568641448055181779155112107628687467364795292363730443607569159678360074208395563565398916569538041397681870206866575619145432661605127187432199928585778480411661890076928524767007537939639929250585132406532356505037216216517997839051773414044977404680583446499818438586751657757908814922817892251941219886612593266434123734545666334485078822624747157711333799151180462632424287579818367745126970831604362975946848639538213104626759071249528762746959874197062131595593335964363106320659156607585835627681129921899040021576407160918443299977715252945159872910550498148393146566484849367913312931930723813673214870674100512401982828540228653677515323618945205742915848146822964640937199846702065879759939088501408324555760759206439564898259055630180225460260269537178023984759989320983531470695976623323957536804017712633955570654451258250775501514381039898366292014808986469044729773397622987208346849802694836453859328495748501490234377653457428337667700648201183106012919287954306147488489979981557036160392554638197734264850596883822932060679230420834176966071884189143021006584216749789494313131252775108079451383006949498504791939751398117530901629091319955453847026479047469861582872739258701385866457595878517053990146740234872216151302949725142226893187043058594561815288235844406009492326745144825373093836346912292998334642758636659528845000444776434939982254803104233641136610838946807788400235968345379027607759459427299275789257054749011529734622350909248537311979659037683416994339988032053219330087518701256496000482458707524321767386988675633368050897257407072562344891534324122458718614959809701448284007209083734798235983210414431997572352951867816707160341125370398320683695940424089368542161822415281871692890033194895897833354362657517958019771404568447751384578158927776903152908032941759297239986609941178809916010712940907590629756341937265492622399951421071432216895642906151537809394365571083689268518817109801801571482773291463176941459011278586688897347378215334476282859184507071730707363666379508443947945797879156087858642358045750366016461701115051894445599940301881249412996486429294462539084526916965038904668192414677051872789970406602302118011544156008105126013000402616030381457089391423291462064633029444613398175707993526469634416757572099701310906489244349818060244139201602744735573735492205213296056600942469623934893355379453189072277544031039201767241838730411366830765835164392653906898134359947654777800525324376671292466700286311006576160494180325053715573894797626467423397216735749318818232780615358063950305124199107889248303640253365265584830038626698507240718940522894819416340998226828024441845940651276194340909027653746387510954557554118904272483442616558165927876142004128023452093590636342804560964542958133866604637482608985491645023131837076783669428917981292148972427928246139808373264917267959929999436551506881514830936789793049247108461266558862812501731669593954594895539889422158244810147178870529004032418975904053382119206397376652180179639603991615254083182953942807508502558424720115511654997133838069012098593925103555937995467077697240108454885572183839635772770938433253320016532747244589971261117153437170169642824788857822157922415141780426839091993680654727111258749716799273009860894846441048438205472201138247612212966944705686803853220971644699394388052725382179601139101744403409977979334571406323098426430456331440284971122593674984667601388094022712687852017416002668695184036422225627244025912443593284870159252127796659966311417912316554269521945470047366309750827052620880105112303921492169471966770691844566611780060465616842298233720880191117950413562250631732052701635198626356231809354654885761171608165029117813910823580503817319595177109406279136131666961860449469245304151881657332664306011145616212656722817689034278497575132668311587869725201780668391444821800039719004205962738610320196142165077442100256569917640346724249707219370964983014055778875080310694312953647378930855891235058444385349601691688767322893511542173320550903331209198321345915581836050372996444676775469764446185620836160434299822875513106564260823632824779408862103235590481483772997469004087444640115616282524315403380975970523991887608210326736897041558236414862022574341481767012694715234055390276293557569241291729306660404996521336283177773150291700125366608765727772446454378145098964385159576060085072079715352775522058083253785196494852625854554565588444797735461852044145381338521447802862640243884002836775717453142979154379105371012912494213858787821056754286932836601927413675016344511320650836564393784953725687230795000402452221458375523262224313541209289577905135069229148683096086857073101165401664551237920604657266442697096876157043356132936392027594416643011072212814940671828194891400541310107988883503452416815171994802855394140817139192776285412872475834129246045624714634977263317640194373619132576440185721234038813716571693538870084544059350163641219373636237655753448183179524378399637487579629518485484953644247495662049409382618047035552800078222703185683209392379043247263230556093433129399518055143573218683007412849568327465005815422855047714685416139278009611329355881914377696629741107583568392611803906412650957831381675211967467787290527780787001347003684255599065907354371272173168013398702192922940965938147647254539403636764892253982595803205548566671500039010708229723235293009934075128156135081623508349000095877891052221790629215871496053839886931451672913815329049989171210531235228034432408873260873340770003898620377441486719056671347224257717276706617552940678507611078183359619160179740420038852066937204460373177086788662724693427023195594817049812383768455188714056222423875393308737171864607527815600552146580827072928751737018249521707036518913438462334684181057541262173902646785326971461357434305712371907990251352941758664702111046350259458704629410406969062046033526217542509359710050440398215329596989578348240992873839845796618160439849381091075282033534010473924366123263707148983415172960292782959860914055824132371452132631831700570777581412435655874040922999751149411993125202564001541574615733356717971332581412363960495799277411722473211760532131451299197178347547470039337279465901030484406013969305413161444318114618004951168995307699991458996693336742736782711804033636992780406245474998708303428270733831293995831392180328492345878375230567699266271458411575291699830208400610363816323536278845867100426463347224970062602148509526048495857917545282572646337674389181009172090798619480173312545326620841130079306258391544320178278406650745197233989049199176649454310573205822903114279726136264166234800902694969467733132384730136163489136710929984457492283590023553095081892161656001541031204301060985067719759385942115052532595900197773467236318485152107311460853495209095266239847222983221218181319469875803065554481833425278878706995973522089463400245283340446245575198754485948794125292644659249409837630585407761747450527630329007657477120199218519959397441056877062928328717718904042405763050931848138193916246548062830880518287019752086688456868490481452648554463242642811114731545306308909608971606565914981187575592349067618252564640253268590021933745529365993159472550543214411904734468033593026941804078410658237538868853226168202084645649507681982814289616511861729207981093152953070332888514521352501080478497172550159337038184622008880753381407763697627953856322754303346834951859406149321090200465961378621923378151217330835162303703629160928991990279766668276355597187255646203331553063112572011972171948165688055808776393030795784624847649883886918495936847820272646556048697502179906850907520816089995324870198016046095829861799282221848569978327532259527905514289351405869182690009780878113851863906280739635499961646282661160314209319178992703616813968575915347202042013639978661084024654850888337741219498885250710114839202521849832253487836528233620033258985491713204751347667107016380692817838620786973778413192901367846432662007515299029175747755770620761198469506082909331154534159140414417311975844660708432363959898815818999819969924891813983084452603733336449970949316687532703007479149489542725672443908198892721036766218750076555975908771004151502499284302602380322592770100679545490035246911514055546791002439635982297237489740999829199605628040568845843442559089965114351217523138566274308286654946789189399556672256508361498172282438369862034103306507044555413518294785436882378175006802151971605391214058758969628905596453886300731011038347830000467491153472850956934249692074244517148090053822514787226135596093454828407910212613278254852650777032775672919768692574827133930887206812978469597164662699232330402640738503501404348703714298734224722126596872853398428973824712780894495125322021294195978505427477030501298848514577139194786540736453725336035209982558961293815341108417373405179609160208021584061099968525971518096972030740737530492500655675123167347251324212947815113153086948541927441550025652529809638246173875289276540474223865031778537278068210635659505237551386575275878024067363737027576284903738624264633906721170132234893748282781350706423901750359568950847562456234188082085518031059620834996200090368857885532972350091935102767847870747459694469599286385431356244320485339577338790147499485594654116304017740960137757257025170017646345580880334773902265152286464223212084521045437581896185747049349632270972262445182106834681356903902972571601037662430366651552683648658831821273999929571445526719181142011180890539106520728962489568020988085485962698914680737946335165565812908868025966094728867028335038430346409916409245340278685441203412029648489226442624100683977223990588431732950183211110080658762875274863038328824397176755891903375988165068662399516786092233437907194778660066561775877056618604032753724377186562545149275975044074169225065374433607386490658140490494198218015346582170314737765051897480706413200983808905682498089602495088972277436711222372656592099976019405041460338045508622343374241892144439088903610945914417161469962333367582705090822582951572358972910450762941191185059894046955576931318856577747871493697441342709814020185607891041048014668897400545755433870964050118923306498314575750095537070430188619124840216037947953703725155919350370200741169668192506108114445345032345508766680546482234928304202620846898080615386360347171295801785291047318560861908477569732891474314536122347392113806875886277860302428648897205214629356968255797016991097626213183505642231756556717361610219091661184651927649660619040340687697543878871677163178675293823527635312224944239987145648218673391930241038697505014258302003356443652504795564244618940898514685489096468588463353002775470944908979457068153688839849251616244167204077727491427814250570748705234058865408049049316863211001250104305071998124397621128503751735923663930246882180733295446076481443567553143094382542814461844187219885377734182408068367421863629524029580104027112847303142053186666242548709233017381161411104467554208884393660210089066676713841109668826911101458863760900499925524374576095114252630183054539677008280735434848318329975317463723770623064447530904514975197742610772448253857626316792718299755507165708624676061602761835084737042285980654461117424994592144174197238377383878875904313107453511018464728930788766183866679943875994226550681109216232457426098577034168803226028202744141106833793192968898802047747613122836048472842773783991927019123219952805382399648411303947190148169079680005980655001325069980413774016589006078019352842393119822080494817257404831827512876893574376235740968287622553933407132578767475194018283575791849998839542541916903170504513890431190025992236047713577671966766565515367037509770854158733452037273738215319396374627201389445841466525098299496515794843833554031801136359935588229632359008337720499918078204507101315502299781159788211536329048951894694198167459753271261726335236899314419787962883918067949137203203181546854656821356686670331919710243247465991200838555266537005648278563883367466120314416894546540813743826759291050901396894844754594100867054328448956535428138902346211530606944623967385440466048939793859152025914755144320404684389470416331999788613676533951009978066826507538868228267402831082606129409788942958612565173711856419688259456355348828531449049313499297875154927815342029101978949062999292497881812665043742293259908597037049161569857817263312734902492825014399118908601553931439361996819368727899785800548274893740722247005893632570154090437534230039250313254235859610937962060240645699243511283719236356436069077401011783421331609135371246833292798800213815606001856512086568591408860921638376796358872732502532224175714894918010728353730997781771824452549464949110353557960557988689121081489188917852996180622301506529360496495895993796025156666500991124901263844174284202363541302466477371901340317610395593899620407092386914857263265282482676186131479346330842873156556554991634906460907551856780080007787729445911583954055095205180559929287764037795758676668070800849041313206808696370952673128879730264611203765380708890084959976085212122524199491211934002056782670229569889236498888394687591216784666262639854461779951340786695911252917803550847513702771891693204333905216684905345225145539926075755585982725858581725005808277397269035376896860698139675936981545980949270126805093215157357336754220834573527466023208236853691078474517773932368238768543893839580649145653026217560972856644849719587752640090516660314542534929243776788742123097799837136150621059247055703297898456684054759106961249879843367302660078880858672151277045885851657238979017100843378605956091132501505365137736233469088636780507661925211636387993868436788611428643564929241740812025543646678860018603309437426450211079234879679794082752865309428263856197018609487125154097688611725378677892847727543551739211533613796589295360028730460618434142502490301449998956934835232535295320700832222354832917347279264558572414730640090644455765343414514436523343234582196732085754209222190053880217025109733394015618304281757428017074980972625298828656853556651920971990322618037064034798393150129268463049204536453389249627845193410911074807455203395646761214545050413116901752030047950368882523542357367101143908612267000937378957926358556411528560005917396195051049532637023289829605691402027987748837266888328433429305355793424649918989341120283726701440350299731287429695828983673490962136175819446657171143310414824293202939439710477232461674820192344990454755995312774283410375752796368489766917355809450268742578732311084244792650260594472183862279542616190816231973729088840597539684009749978081178929664149068017119123079339060002844899293690125842497134441249735892518251414572309696769584348908212169175223962616710872604688132119695531016864778108970707875493182624968687735353308709396066266290311470392480847959572362481544382603935141654293459726107331770744643122595989068855847204492193100816264063998781464922281517379372054580150897769681221598867385815743657545053326628562534739756625024812793289451559634457877964942986155237227148317961538359261557471105756862103458698241522877221690398297427151493923920841281374064889797031167492172373277200382671779422738960432843608059830806907793385638701678799098561379739779474894390322592253676901430636318390721565496432310946773129618496669394055116654754419312671067128823939791531075261737481373152932715036126005627918983592799756733261890023496625096374923553606982922457296041276086831878560650641360798110142515164884160195552379515325222101180636531178105354165267029433978543299832947442426602051420150155935411116915675580554006337065934807349466461844142850336306153688283241910740689259957502243071836780090808786568818298110606481666361046132926583573015276015861195691923349820140199493145042942467071625403506171546890707653138514216523692664888292585274959305506808352329382388499122916680064925573186455914441623365566592619454424251111662219322657928970081720388165164943550512584283577944480896621576684428728606745034955953453115875807569642736476510188553907308712873017420322421988251119141107680571499154931832384518874106380837614135462958253327647612433313494346664225172288151561950280013299818678370039924800892794759985534197301095630208292038860112448797442630671646298149671958909625336443765780519839868414894557400394335135367979230382836427008247474482010618314549186777424702137958773300456693602773190212238334188826732705488986614267429286346264033307337076629125447468213887713819275182917223440351502028261257525739317210083542475821325003932305587407991182618013611399429818047356157385407524821276283057261900050871732397137304308365997981474303109167418820394880965138443672031695324979900997856937008856423848122374370162090511582371069175563362142578741796631067277283409145449927983584289606307836255214372060041836328234442822173496383695693142919378147177120918301043626322167977725432599292204096655983649453226242384380116563969533260226553246273185765879882843009834217267403699014511111038975261540044269616196294973537144987539732606926887736077496578193445084196201916420828978737740843728549859488849140280722636339029299064101090772803487589724513750963086024978071199084660666725795281984695837208035863317381630502105598888070059220464394537690874400141807868886679541309725827267119862418741285444221503265723231402226950707460002485047418325620178265366432850940823078713938709863013134559916382293129084655777356683400933384097662163672922772218611312290198070504094769360831017996674459196479060416934324332744958064209206616186879854573588712246003676875926817186533823968733408956307431410407658157661229568154798770378402771070574170704736534475711220180333862988163576503161468383386560859877410219581304584633808853617632099986145597144047082153872554033841744323347224632576245752518940378393230637717322367225171007171753836330372170116561871698778540473412643770285450674630376182306071909404199282160675157060773778599046824079710292476838894106570509265320947180846090498140611104414099234313932830114762435513153615773027419175679744535894084000759990260584010796082287087031410016098406489252112383650956250107788635586825391144515674669756777649344394363440840629721303261440768662738567739566490860504388488077665498879015482306187801336946225405889504791040509198866300232476325299328482796827367310685609776647024010579092381181368075502638108579734062419617707316200272342245447242169282217181073215600432159525473353715692678946638282447863578883640362004278261982323933960690160254791629585288076779859594243840898654264790547158375383779418333977030927865639442748393812810545183821748399936822635694941669019542616643983989789659244487084595510806418636940684061701982566844689129140313984666808646802642884199790538291741554853357779210765538354569673679304445646508833821629322222980906210017687894033182164273807615578033481053226981523329318834229413635383131604163193729735674794088107249979716696349119908080825396686884581809667137293028573800140629502429476342171332238328052023560657555689763570837179111736986945343515203386986363804414720123250823070407597606513261772702050149314793051825827093422854963112759122708990291578081060352347150759755774188213551656322278431748249048649806229604273159995621306584500710092800930683634533909876290661100705891460796791039490693122132104563148444356162244699719805381105766206139698772033924383250503312148033215377800277820187418746423757733506570010388001485457041067586925610810629917504939742704118400157328932667058719651640425341450685024016805188949195185546794290534302909558180582929614923580868393307777420058629957798773107167593835461031865319017744069727587248987759256564626611856720474535465620269053848591932712245165016107479962433484884493631028866260089267230790625108084417617699503376688588526768387674367241632157090094090280043458050376504304166803475921404142480620894860904621501928202325289215983643799029001623187961790481320059488353599263357110343394138190770511386568859856531411262502483436500934778299664785743131171780626432687324814484146314691414128878457800805269385267770819246991831496036967334086414461364651623868445058249571603692889566940444451667235245424874874089793021974288943284943234057353228843749310007623220023977993999105699879462977208992210641557749561365249868566192447286404962196745113574548710169315494661325929704072311748757822399399686441606180209123126244860742269403582495912656858919643465646512097572862981695676402097865795726308918175295259793885225479637414403189918398189678509315632028606893233854054390338655438494207137189976696341389221513257435024764430600697480655808231530545826567734910591760710705892934532861869285602392947650968124985816982566366545862574523626021414331550042853431981236668397210843542289250350125947601402375582587517390380572127727612689479567131432978665200561572637575844091642311803218008615120190106380245588991315582158995303290485214526847097648944031497683517052138987983606651569450864572337458350589659022621015728989546029830204867939387730479666346000866824206618765499605536719937578264913994718103607691519884015283008127225006600558928873002777052304916593500564918127529364468807034207597748409942666244805942552788659754384146927145235632620355781294245982321667239263144047644736016320453839559611684619218757244166194796715985654544426279552438419565455493089425346100718338339624185273411089948454126756399370005263411830082321019575831992365529953357362329461650022103899636090057764675485951501265193506803215403150685249268904599042499058291299825545755972120164102631063776462142764870471839499018822798183231701139478494757080517464300092920501636525245051947908744369136106953935736692027867526567981239039201551867614818987655729229969700944519980821396650870417607886998333197008396288347624481449651890597640746690927600186119086173164262326673437263270679953745341935813102247655110545968004115839159903766651503601457288245200495519514142512274411502083225633494268385535371630787190636571642325934714208146045469641293685109764656260002619172310750960242764560334250479758288907891279477150030740290268750044405419937010544793671602480185071855651949276552421064188864967623442058677286699412564251991733275354527656012253803038206047477419208257456215740116395983748898927128814104353832637024932559171968108173106469959542033050753003935534745069246529694203720563047794493141615445403443633521152192821932438959506782292603870547622395956010841387880399561586850922488641023203178318272644127076760312422652921991318899844134105811905844132453928124040058664099214149722143968304310519463757361200655687230959858914099856225290998396329596490357141403816076482583877779600719379832711462640169190942110807997101950429525266024521347972857327915655672512196953732990621026312925354613695359081473853002318948394389842802280058520877009170478697282090350965908154190213769373378025977507733625724539426254010433631910901881800751521747223140154466993875464195839217904221671758018239769725047762269706062853986657888079903756815411675273143616189330055568312749348260723742792676141613200217433233518416810536120296826208398774730849984627744419565177788799703766476339675354685248692083769066179699606339193541508102602034896308819464806051109399073229488440830499898963049350558933499279023118949414721976056007700797117543899732325661539965747334259340461524574382913352054116027137535376007553551509614245082006619972327707355812300889563076889533387062576362689620533290410461601712771486993499538617451840028771722411810075199731248414783921759979082645925215927828262564128467748484382721150438489313002231997179788992473790557604662356303462740345238379235776179038567736470170668422489313377212107348665447643959582834571611571661829632045187426598896695308358258906743283702724864521799941199240948427208906685378196708903509225735279322601274276933436857040200309761841462056177559085281856700220365002706414503427280535811171666231349798162888853778626498938687542271829307410629023329973715120403390174384939192681121161770442627794153028627318212356118192040047449635569896984918117260583760191473318854807838057403469410600893057637933596083335084679483530014701492570335243431042176469086922589738066667681350798567721645058441453032154553110575910733647196638153689468476244702315503462411286568551189198646956877024937069993103522108459772490595910943250188534019266653882512908763979041222032187055263056028277307074174474573811659738394332756484486886389659361136579771221898259689289594081854765786313924521940587276290134758465865437060896875313906933733009026270506446377670126734314838741240230708808199626195222808330705217129268329216984802857925877106874295156183325241665235162692110989348508244120796497934482294972182310431895971515580777721224144612287278897277908399397547989371630782282877794609353538979129805281653089522333351621308705307205457692817807662833531869072876259182129783305717875167446750633716928531239885679893110228435226342656660267944036160075316900670441683722449360105379338252119952386117886662610977879894715266385659417913631562001737971202412031535823426899747320153970000704961452015356821684289280996401424261964481400295491478272000411799319868346233488591512553494896140077032412517213444859951113839453145856779710249217621619146536051759075733891190992963618485687912625619160156761482548050617845428774851698022426486614955259134868236400842588599264553279107780333329871551167657553734097982372410543831852893092507363772905529563242430254591505158833054616194230593885025762116215722111257317244160116523456752539928051087110246843245184684036053330692341315675670079241084265165051081679656689007687388465912283390425042156203094427224925563212099201336750677910663930192293317820910510105685718406619275292559303308899030916195328744189268452721858931577389178112538996635739025012090118236147070997912660847874156051249632476356756111630011711188044483518238177116507802895586238273695673249754235283348961314699475174381239102415163079307750494212171630212962059289612675233412282972151916210364577147936286261383104464324643322726187866551941314681289247176701413384065974011955320306352146895207449457540732868278744949811481325018270748485691977019815971980070771933753614544257076445428475133203517419866580647168574666833005700368398735655778990204381113219132283911397980037578686442034879292350821491028944975621334361688206862031663744955055586735994855362542854431112263281449164983976891477731159797221391092424109742870435737567163273108885762553246181044573183803375077366713871678773682476694412667087585562497871524086341029169287629060103533419348830464854878497538916426735047324387085636714551886060148708850268957183747810992213923570423858661298648744624930461673894914495695533581664746943972336286343463695094451348637329999339278981080053917841534862996581119721638461276568867263053041780140641716204710250995497050862085930667682109918134396910295397733571853697018883942879622829841687287047073218678308216869602897657205529878726362745272565864148829543205057059099929422327383398378246038923040655483342231577748869837192893726242106215262984064603689492339846773648339701116450481324435857389235074007330269148011980961966423741568501054176677636041570105031495025114846366200959150342485672680204649683217941814582618137334491866142581266873537856443154942196829715048345451250171873205107073884777858948636327817842099979414491138050225369017766721346953966592507075016314792715141718431451930366903910890923984733822114694700003880959397775735258218330409227022517777411349362882467157696255506609475710570098176933673908185597076791822050223121125076764048554358587819189197690287651344044528190951058588164566953261045545823124247215067404213402627064018250309980653340286792518509787147944631474772965658084120221241179251470508397907567095103371816762793322908335838218158577286486102981517103893830885742010781364766593411520739314006445863910606185146349243239491413346477508652567596349424326278251927399557263761168975116450541489466142788599299787292016428414645750468297698803470956025848266376968566578603287513062286192431704539025303926760158477837894062577942053913688251537836323409991145783781628463065839857127744025503288861824796867847565361542661140117156133562147282258090506514736593822766019466884067692407581901620738683270651112844886554662240651297700331953985777203359553448610996117657438167177463754664598729431531079129944868118058501906592072287129546652780693491029883199359209651821741256013864047371635925212267655127318767109383521428004056691356229937727536911784911627412058940407728257693106346841897835124096462860343704739122099165685130890016877683714411919865058244732860061589548917451412190528802613685571414188511950757523173589944398880693140146725678494323174645448843146072456327424367350678892211855878164705645492979335769780190179260801131855235800812543458451237938794502919819023130844161965987734476228262265877385841634627320669415527934687025898872829324232857374396804199367276837280437279665252135007621887250424124370856084404835514953640854415464673271669667400657083275101567713391571150684765404010353285162244960910960219306083426957083841087447524394051207723328784056995654096402508830347496637570939574045229601412188286840033686700971867761141667150536162166220680533089791029042485970337523397567268109857269401872250994445247489942705747684543472828985774993849149523512637466262386841892430685609160757520597060185867356928912853528024223991021096984472312215274928097099999573151725465140854102361693449115140717400461531846998955262837225058576926966601845543568025305095353142516363782807502563424349990953670095545395258953016857235299523278536988501731619522323975870990513080195373539107178346015768456405498287786793503621860210234014751049722915563926244724266573223397566900227023204912536568961206731923411473373107580530047300663806212552206265255092595542055846959208118215784292715586193803740617626239716882255041618284882420287304294030944666293593919122873319689268080406292056223040016156704853676448966833553309438536914834695105150876118246015508311690700744606181519189487572361543071809701280254033842861261519598752332108888789291914420758837854602229162619702949361500241009456786335128114947852773778807922740997557918991169550633857711653532551539550787722861067352236676309657639846434185819651206072134965863847108446955922961930388219548051690790821246350664530291940714599853487327388524888033188680979823650192029016905125386322354815185616733464217408509429351909968817991032799202988030654211959346257456054673236679314614746601081578133284523258551910974799473676983759042064645560316440758796405568275634305981253430864042411936590837451501368840983908376023523653063251638642147338283025782914262252556270693862788014137663168608633633199540924753512500812668116774581266290086008042732932813706341882026230571720581465741241074664618886815733792959170010120687971523415028801748771581934342115974644227553902374646457560051363582189850781559259313533431194482271444394460689932422409225844749785831969383522741255657418727242933342342263065677759529750992250114278817040185064381239963420462256959643767475223744116962543287813531680511469256777386706316621117160271097480320700254021268692222471079804978547914835806233754411347631497595066177133574022850541222215939858343709344847198061752161243610475367304963380860160722311097351876852961608736461703762749950237001869670831633092894787760051770262910459172712129327907432038885356399411806354194086572636383036967857888157518929142623491538397305786410122165631797117823613216223930935209879182070668756714708164243782101642145349779349140908728175104390482331489042577718265663515385326187053388123229083589446430092363115196286757385994009171731258371210378039885798447017938245015867659255189125836825537771453765633870788144658167371012668196499327050441041717516787374446117609697239490305670760969254748664837006889060300965462393904568209908406239496817448387062467412374217555817798042266413776397651788153198255938639560903820956002853507876365935766509918871811024854847261061412167922467279595330923054128772661048686507171269970997520155172078051216676012773598316277984427382335658552774467766148867405265887486913220477988482305695501318593132806416291269934442505376099242437663803941726748309485929678562711101222024017427078833579546962142065984329340047507567545530973148962308904498112444659525392340082494776438005721635207047356666605800592096676161102571962733793520539816578328171168157674474164616386838207490834307147674439756108079484588339396028973857682988233870707651087019258359655275126311433548008073948762803620448001249666414444416079440060165076104164271020471001197372463247099705518891117792519737027687780269128301188042391594708448246203977394462660891612993177439779056312041183081085494504224872961500361754296297647850549771338036147792677196117656436721050713963769103403744626078136063337972101516145135689186834776510808899806809386808976071022642029426514945504887988364091119411895325623103244380668290151028484371062480875515070521278999159327519902190773631046331294402621491611903788871104449500283404128499668225547894098451330123848416929196229815016975898352057556449546024914205611206256720362131274128755586259928737683330906907847481792142193698458372925019691006576140033966887910562949108480047304166235581836261705358086138943294706481214921388496905374152314154615326386294825007306943705411322149342382566418688922676253894664135210419533287492671833902884408162909035585299914242844500341001429355233048853139627887875366786724219256768243797193522845864237830925981488592511984178914222710676037266774648752355171357756715096230962749992562517842596438467858307292168689657030570281991076940353982230861185939063596777521140528708302886442698261622416863332323148807691201460870188921378325607583189722372870579012858907961179546912833635794470371635640374999911129435765547670199976595160804868763190505766702058826491750153926573826566935604475134404076348222503190817106210803885171455449119010862575306897253495107807864868112832172612910500130790772222890275474298056498137986397701021933602327034380513899794805461677848698136778637892928641871711802937837353452422482016460904435810599269689480253429964791678220092062413569587500081495741063028074117805053823707170173829357711037367036689725259947826827255004601358185127053648969508598148855410504739509516334871307412602631403813324288926626710808166227223008368379139366933848178311612929803367931404489792275397401327684276870547401543511555599681062474691251374099148268866388195505742367443278145676971546290385397315376507203074964405319646662459486401753858056677945636525711870975485593039804851273253026241309506705523174934712197063090470009272693004926075127350245929890691071714705533319694617934952182237133283913749346014661076997745091802120283798376154824586254229016969186725337593089813000319943481609272269886917332610275207229937769663833669763178031912945760777726070907703243347273742381197094742823766130198252659298099005393595835430585978956637571100912195305420320300075665832543171272260264125757622971146304740379091070976780503854164304327224837407062450264803643206038478275364559962599395928791118398822501527893389599790216179014830932227947935073117180014046626208084105190999163875465879157847122070121406481948491438073955217840231336636359056512928467463876295464831260907991635247433497772746430659996876573132990532206134727632374990328272675536251513389309076888653123332427667334727096799354103320252985945813048165067722724250826127191515916004820157194447629708000254106305893736696180931009288231041084168065507661277601181326222267204339607374534187167301751727993259713250396063732974195050064448816892995938728833057959207407879238691334947530762961163254036383672233719490805396017613397602207816069667345351340735831239128991299310820104284963273223725213880706439970331352616075856528845996868095025163177217127718862222898529029328434687484733785790863364102303399388032150790617178838698966962615386176898990002478624010233354917980807342473948829669350717039502000142568674371601209365182636037132731425555017545019580918097958243698165283514663192726873629437632993658765723180838804572545091562634267468514475709506946778106045223866627826625885519668656985164872157113975045445646113874959287394720307344795918105997986812958699489008249828986962644202399311664926808674762633174148893583381439386004568120469563985619869484587752546234449285735997495098530140824933960552388216681069395589633059611079070667893578892658013438397929813825141451103076909550071679586026627741557285436278062397124697154743652858483545793832893693974278821923862997573682804841420234939345487941600374561340895340599472002326881874680958542770964571457073001243824488630957714273789035494731463296307549936759703432270377291371859568404124698364437345967575526760022180271482546578571144225187568316408795826106989278264504403849937745868242667468199983994474705917180475036372559726218404874558857119727779643703960861046424061637635548816140054897298571564854669407764468265769992206357384883919341922184248505299866139801290658656150179068010316992811236976244647349244477578791358779396900409399718534091909915430300669913425470584983229094584969447225268869221328658351764537043117724024677422209954924818472249087020127021836367666117921486228686950104097401721624994709918852696809192852317828788831332274557549378047704772248418817498170450267332759522716899489835464525169298598298120236002251450230860014970423755961642897243442332381921206944802244662164696643326921349507780339589506998681141333528585704283915155572291560230945299064474520318405613042702389404598852771595765315469722536270418800159144977893869970456021805700730972973450672292485581913796945374220247235797628396288350832638702035162878195798423282907137513951159525831344915831738844187867883368880102707518762682910267707122873738813973934549457263926415796921006619160944416454743059114828899738582979543668238134544882974593870099448463046989820910725793189175341345729215862779101630277989836758949779158848996318655500919485628568001427862829958918730037139528330285563842306223464886168433902131996686513816754163395704752708627303686018776331314687115935170975862472910121628603770160670703258191961619484119936330328655093159389394893196660553188624645186074650433925886774934977757322522444367161587883955236830959474768263801404827432291577534314582195684026579395063491026310605096738455170016149384600318827987701734224675988977567387104284586284003578848874526246340423420871170161273439838689306718936670324116758708005267274789269020854735366668016187051245358150243636494868203445273998319157119335308086149773005614633928713758201554198860133700655992670236462413522119211361229203143940787956219289641431588396228703488162799272018361963911129122254412234594920592217376934623762118741451665008040200306153014899402758934672711332799228720541585869139591847726316270137162364833695314415145647449155894959538493418069350260146430506437862226044914826536742480772939568853896258547584733095743550976040985503451692205858621293738922159252465962916729488753307636526780440445748105076703741317505224514570607143471074633237952478226918243496097520226918232882279637119693244824104433595221446201003368239368914831970047422222024425916231768795516394659012536298261347290613333450044934697331197284942051165922664663617731779340753124074052296141406135099967656753045209121998449285345893145065954216401349277742309330361761669842130223940358217031009232403998709203170283540870895979109454811978753524067936472803285900616679505141935836420375393313131269234058255166461804614077209469031832111881415225546117847771454180689090815192285955323776566421740921928502157240729908894607637624940968589585065860379389735423178689646617280833065432556862522790024325318556004314349567209437896733402850159666920563264324342399346409117443178648736987433431088838863437471993598075569524735555168307781407833828418794377373642282734684085261296034027517609535592885163194216920806586586956221294987063179661260721153330604249084667067028190065016376306672929331709783784526225878988310575741259771721366832937881288301888315904759892359086760321173633378365868109280149944134144124360884792628726928882005416120454362732048322673222652770134436328541216107324816356120855144199089647510667369591883650939290141140357110860323697504811052891326779553099995056086985311793162206182883214836903997912419273663384474261009597847967926790841642610937144211603380020007862627552064426932591835045239662192340703998219231589704149804486531160268539296207608061288207786558752208850136329996386296951022411560807806318625692288450920917245193988206527888138784370918472263850823280200443473033701762008009305182868447225282876815240336697121854433998909718311486789526341510980761110671731512353472175845717324970148208192142302837965405444110087615424829116376651197275348725451828677283073770854004541799168055766888135421754836024434186396546796888587608012380042373107966275275902286618866751351399161146247327982536994160283917595948482122811301075171032579838894539427388786175772295472693060664117905768459296741355405706571191451335757883227205928576430787238215233200813782972955816250772480169718114107751360941985517400640297182387741800322553579361751460766000928248773050900634183808761712894229430933258355397220537580620455540345501346934319822056112688463517690827806639083973896880128931649001796121030165894620767235455420441511676233925879904547258971052082367815404151443969055945786010552838256796314908897768604685583208179932101341967008265702601005170941300864718007514713778560397295070198491721133023681818165277476793272694276866725760547867761488874339094414771108499718846380141079491374434675628352113288536714590536888145821155353547183607973944177910073811127542882625649519358092635697779483606749811396984509690708515125778053949574569603193373750120795806272629893231380347322380777230440801099880715507731497553036159754385395516032422193315733570785542388628015378818059668913832922347123401310507679244375168668730020783712907894029830528479453999064844670693398821090067417406522357739551676807606086816876469993920119018984139375704414093437142836159778805314501357607681865084788011293552193889171981786346699975268153409782279955463552876253623764245219435802378871374425495626751737798359648060991781775496692585796322183992124271692838846209487873398273628691270450344722297724050701175567807741828349635343755528526818489221675741465634799363109219188956413712445022540582602071379302607582154248577111788833381460650515351839273409031170483813893845863595094741684755406360229421190895445960089754732616432658824865162986536745296933309404084132941085876306994858640453158680909490381287492791359411757064754488229233760220942928491244922760151618332902981046495128784955243739454808954560601720695978722437041289289365702063345235695136252608985075479358190457710467664476163589618504824805114096797237050251577026461911224775439409965699640159447329417307725714103824174733583516523560005680707961630856985753693517526720519758660976449414510653776073131276199588732813232793405078367344031425676158085196183745353188300433390412297165485765378345495024734010774573848184991385411689366291981883611252691563915223869773654863206368131736053269624527300553965981666030887033535199232564156857409232411092978331719700416292513305394081970147800417938681580942613273193880611538790962680317896786236371486332870015448801674582858630618684333626409896311646314861778401459655749650959301996192507852605899422435048992991507754227016674838802635085861733651362261062167844418561859667980089226338995471828615875406255923211160429935205730240607934123870748641136043372212118302478938809551058258376889307825879831210493676248539426374234494689557312826025269484808078816608930006459943465851576084258289305846192346651317540446164133353196840684724111430476518709740712288077566472550073860529044677267444943887592000730234097645796948369699261369732776535270488432620489205607815880069427340459511876808514887183191844565871387731118800262740880288154944825325594358797157958997604937842137804138922209891117789480230731696386133660600182165998775461358026007989400038542090538385340955931676416618619224202127652698445075173364775316075927480903404431548344500817333344111652145218536640644979425535137975441095270848898151626367425087199400516011190226912264123321120732773074023099806113535372838700383997094984016978273393647627018371100603642742176561248118506199582715589015854490215984552669649263899499310481845666717441475364066729266388277583704775228534111336057090377234510753389398774059829968241250263738600458527471914835957584268384005702712720821942170383560534838847299893480389290899031719259717009780216679188380976080093265395358582109524324109050898530499349944132281057827629246954212409235598002665693447305860393077601370341382623252785618910084015732949511075533151206407070118872718454525970692648133791430117095715207117717231224209843884998744541830124361034703170175865499173616631085579070584345902632891332965977231367610035691905257001418095859582996728100966798793761783605090079470873249269834393334834535739824605224945813939472554699506020686098696107042277561947954828760212894132814282967525673623217103825787996422630644721291613182431394740508509226100448286563624781757176836130633907764077482436449211412828355062448756045136051457419316994502576485766094303413176879969956731795387145659927202769668356175240596535085867091468922788456333129039975422457167517489245087752629610737681451481030948545948191275767093978590281301284651999929297150037705591207282649993993096814047741769235030843783966038793913676404667054463155828511865042930183110072681252688837077179482029477989445263246780698575128925377756489505441454379403836687468187279458116560106719570856247451186206584535719452318544099456116792282994712566713346555751802936388689469552914245570401948068680473949382709632346218271886015028027192848670691799086798283190020390560077889038149366991790464081477854863001452000870639778268958626792353941230099101072521232296390173941014068292521416358466124870037862660734790552955265346237708800239518239597968869119392365463909134646869089690261374377790650254391721522075262036942686267161693505149640087498779184577938085557087265328172541915555778073189982119475241411817544705033652986330682385882031280624108684718321063158490630659443800560077343553246490565058673749710371561112781207229005093230704968593829824261431101429097995163356011187864856651735919799309875029989993892871790917219804414852318810012791944363313760627430678452420685093174862117975849546359444030977565461855732733151320050733911919636100707282151560612262829045427753237307209624230007596886319864449983091778939358302238154580971460772138235396251909769419898177642601243626319172463161434187161038588122966565712243156388584542597887105030721909727898838107207123250394598385457913785402976595016505054841753525989860667239390681941125168838826143825334478122185338321473604828565302324809061745760172167252049803301701882886159543174634732908248807422638184278520352231895371707468238128729480819438479391592721742589773229827393164968126099412487434117444721538549670719395937851819441310369523117119476538803994042531827774550329629550197148271132670411990390030565153601292355794265660830654441871296350452629818103280913714722702152590410151618444113860820157700952534156383155983720527090182776572160479062201052127331101091690988518145237721659395488046666864629956413638155311139124133413558016098096047731471855894113594065683838264114210488499756772309652814473339316046746025385553800855222807704818679763808430145694702571195478020562079270896678811589188456906050748015787586360677485102185846950121811424251246673245754508025181768754848959530145629998134755999858998782963274065446352378235327184064567657561685810266898903325467240288897317328409757034694529644279786496639063056566832869420201716735907222991047668032184512084699118099230800146624738134174756938295215337369904207817960388111510557989958471746644447488566758157772030686488254221236010581581760446625879688097987675592183697581654442471118076541821556284205332073746594668180242746334911176556917742981746593201223324985610302851459905091027866793916353489698145794293701369553402954936671559464480111609993683860959243802384798977652650160476461709447257620744793350363951752412564512483033809110617987316685727820706392313695728798238945187276458399139051976243549980556101602027749193341779946686767838750623764577247201205681528776005102478365116036413962806106522556034309204926581310197517664936826002016681443215011216846357870189073088473603825723237365373700904596068268710653338631821096455918775409201112575484275334144442530964600645618856034008550394924484493507180088367345630735836484358278432990672487516326479520414823102642772269869117342666880335617498369478878306664387449595035487499854790670351200427112268562140213629787500479763997945968373765930944715383744670961458628476596028235031304947648670001562867875671025664668840829820380355317995552230645093180296743081185722089198495250733668017777180251798186553305160168145176692837173526293609082974175285991046694115965436848570378321142935426055818072887893720369592959166941310271669622659127661908163469792303411580066801662471967431634985092898112733093761251565895101702065965648802008545603470668331234011924641642696960090959174047602495944459217681092539129984284136917918248666397575577803539002701696332305533806048952928269695342690400174825263112176011406621434023738092035895361710449035527701230348758908346410132479051210445030937751569879261009074766335792386540607486448648207046236320989706505986454409776881011149608262582655723172992616571446931584943591669369502797023655914555175702283995271275061061531614696547065962803645360854149099343704722852080139177029834412387592915079475418373740419716878519834500318218890048930106252907784737334253691961678381990701141413731637113353379080506493292225501831986511056210556137877327921950412076882069174673644523695540888504640868923196732062850518094374852277840317030161621583811814558943689901337292570017866734280988552790712584352020261283064415739200053827348170336698356273369380719721111237233535967407677947463329261532925729624989047934984766121341170397459077692537881879283234628796003007253138331882838577678902759124844941433438517302031702616120407478934931743778183296722138605232892742861083521649103766235061077514538598525968875093927958821227118402753866900457011206158592120168752958973891795482427896829159155935619311950165264415266319042394565268403614760959219778471755564225319638901275779695158254983984340677273164678672224052828293469790253753654028322845005274382038514535036503112527725397976387684814619986092225276518701788497105651770546855352174116272175652167912844096400313096482176913293992493741709017024879488946132701279524632648719298921352117686471179206228397805034229741276907475312094643164727185412612107814759982135260326964141789158110159417823836649295130653176175567655044450247082474984393062384225619597759914128970765129226884510571048807925099240961152045025470051603990117611659929105698732820971724300909848234845100488745601451620339863761765507357645914264368906052091581165473525036194369495432642357538246659721240148419672757896124201227289654024366547473730513914934897857407031393551134887757404742091527728942148361940735727732485565266266713223668060479137499046569438260482290328032041071634041554583163438481358641025137203958334974185914960150188885922004918595534329179592001679071768033495964647846435921687979960914374915283418933717943762019604245938027430414500210905333603194225744597749649945944712941564477301500982306343286781117810424728376237425520500668646457967582196576037639607141627700169312781815445939244984554474733217755361888884915915029102109753251517298796422772217636957649296553936303401263444664322665026130134957611319566941888443545936562724934212754661143221128208375192039748763308670208341043639335080228177444210285150603558390593363069802829608423835118535466361651668224938422998859107508740404440294202798646434007386462228671751122743833663548086508741324975679724087373866062268944648662157321788316004243720081286731776487621743757325270187761021986667051428641123274440295349090391101765277230415396405690226156574222850015125847674327415037766177337304793362317917129731842051099224701187824133522014765905158751742367491869660446634067760982310148890483509305987807861031942692161247024028259551556373515476096008923949432150869542044960442712307692239231603605025575908900891295997105083137117911595264723920484160257589342750626362932081819704513447466243671711805640921539033435216640300491577659443552004358263078641064079802568820786472655128395977425317544205724755964137850327918329144146837401665468441035030499627050077102500573273214000562192771015760117343716567526302284256442318131957658091272494891749600545326833685933259553986167294938244291363860516828437450744120365191955235267528146396957060922219445720419368051446434294368038038993990827650455407872366774923033587224446623471074081138118538826274195130124982823102985214694015634504980767388908063515017683959807672784514300308020636747387394204616542125616933861563302178034165211692210377901385237130542720864786918303434067664269036560485035162836589767332122138927293633517358751801843688839770155200794637061544621954580749583156169070354832968084890463281664442391081359721410691168487729100802659080032870695706194048191083839681051338987072315244368748931440625680243541941832469709611178268785267300449847212054407385988169490852450010260662034219474437036569883831797782316618906121802620279503654521885350600018646950081049674280499031465083027991697903948407469735502446007842678808288219759419660188184764751259919569303995529636144865193243293781368090157116679762593902687837873641913268063142879827662121894625171774321902906851115772607783453197676203200001090868243136513743830810101142353707086815389817297677218526764485203789901600148701530423322890899227476989134971476811563066620803242029878475660391811927752083717654738837905325985525032315412759973295338580368469987615887434808323253013288776263902553805735117770750317089712468624604832091400370150993642356414011504657900039130877938248232850275206515824723777056700747383164510656101135553451355256220515764527556373970486443544497473095048648137881469490760823874830317514062407356103680234208797046554626404318168149213883761208393369549815923636239495771787982204282952772138836099637340195910810205494723923573968783887203136422073078465943731153756165418121649063216759338764732348524946286354637244536271256635542335935662413756011912278494908784087539402908317969289409260420029917858276190125471990429158015054639821458709934544488585751639604320974122226040301221500604055648695166060456916062725698164228598240984016558435394717240478147629388441455230244981690567962517911273206943152276923330087072422676534520122818788843292215822666843003020841507551627465686226334474080317599298848471742330012846774656473250291670834010251655233044233052960794882720251806695993392832194366385277510116852031693754400865392858094033772521845550894966096828696579926275702157548627102965698917696713322319042288095129664936986689826163135195546076546524371474640941728540458866804771331163154149587451526416401729664048928820411193373085773037730031509111172857687365302390776157753182257882931343821460115500539526289852111039613149037949522746406422662141839975416977398053411540286730547454601456984209526218426434259058696810370515477422915504287902501666387925747019108920035067091467801366532570399670834819568238247874092446380627743371342717888288189014873737533158410438509656532953121915854737785518333180520827703131573791623323741812783255020223782801537884374614158181121649959869663803574509565864677749925071487336580357867287371515366966096625467606396943808467016495902906167473058680521583254616320842405692734715915171102698342587868255516748078558405212259131433910532217905950841705776514793252042873545257733445026812888551562908768959071312222854980491604115645753527579362341535075915924910846867421211646511516916533249092549660826297037586392186069090006795197500556675556408854277532017370252616943990195311931952576202237119203252730851394465828520430013023047012238217411760819730937760098402295105276163496593999306134768444460041661608044480158562182230820145588759643901741448616645327874319464849418397409167596988224056761125320674182575827829219537015760215781204096651099737998673679093108527557676987702595088251643915675235736494051219019231706082209005653061397410142034088228469103807220591476346237958702872020873337871033490606759792706544287999397153493874155829850709881761861657186001190954250044588482493063085550893288103615157750637723352874974213892427859155349887378578250727198221165302215100014977978391231806400454323282975865258905551272608346138248152653473967157595762336705212020795979214280867820844321170358008881563302064643395135782197332105485368757663789538431983880766182677213418377147082502901206534419834230669986275246474782869493443287296323319291235966231970048626063615316643751251887184932474856768933528249332257574842655390245540025605448574227262137228141724089997107890608974556944730767982185165059939898202852309517691202430449968106725838521135758703831603272736437794326985901389200867485978371360937991420493550974276941280989303368071117553326523747517641184357219096778432851596231205978842133886597799519480081815181885036362110751548010294965709201691080284965111975012201101746600885164869590464507046322076203716775400147453607889814488588628309852047897800549546474390868693661778400927209905224553789096581754350320317149993897330979973398506198804350200276302802073247300105881711803900076038596566185079416529501276539213297839989865802559930697494414687025577121522999258474504084372371799404027420782504559143412820566249061630361567272333792117150328078713133725094680085389033771725122204943184486619787752260455785687843006123174496259600254090171898611086661915041098963200560171665984038134749031382215997848309211649496849041965085890901577579626850813151118809179284193179166291948286475649309866039913880633575653858612436738541082000214137848458301297256939714668569086663628724538539368789063752295456269514946497260146825936013289506496212732653573139613379672039049428777123730768546138250713368628500515872777889729692528625132142220820350003819890220187835111802524051351898004692139396061609904668149974715052631236374020168732781577204349273681162946279295387113479998572573309274709589394939970706256872320248927105272822445169978061030248163451994076367467828647671315146477882254942305102190574802836829186436016261971321315171740516074336814595350095476885999320402799360983473104646435083225323967783796859300015507113038502369307051062299548873179989468265494703204057849149574182299637875530723881936296865122335107605886218770565443992938794972485620854919559972323808635536803128465076961524724995926855662707269593978882657930470446646647477922867866411524154365013173867047679479406906636192452878835431524449350571638101587425017116086663695924581870906281608137177093110779166709460461833237470969560457173033690395219571074936689376285068610308551707828020765078024925186382561439221750568493829112420227702542228676347632415478060863694527955185599403932964151359868160818573010232684539247234100016315674443760775705666589697680917469742657437752593181070540567355261378956388872715277854934973193495691394650032855219461294142547229632381358678044321567703402337217042038529911421361283603664626880461552332333846847332521160867313379191430424481811122057485877293974320347114493148644943210071957028120054235488182452642838347514106891014727890533338979918569143952694203759005559216516287979096477923431185154121216310463281912327744853404984277362833270358505047744214712465279509520954714474293235865834563902466223825771035630045905488961703557467282037073578265697916420727628817056517522938035170166519016782976163686343506360107712234561705928460689905107748434758364926562207854178934763881334696818718476701131118088598082011384478395267022527033601354288024184031864655345204934711096942686894632489322403120847875738993626072571513860399607938791008444612630006752374620227672965890071704891488169158191313824168327103508150393554508572569676642926327646843366737086753711647437356848569843629363087852033805261867643991843844381720884738275232592255365486276084077738637340933395202296429350444639754815520625537079044877724901550728660226611807190824717522741765807838540621627542376846217104408651689996912795770036545044606398898213068616115331813420515224319800050674178409107629633599295089744719491725342248209338634850531165200276014566342915549315288159226010673116505148467762430207864003651390475521421955608644201435106652825151490387973492285571885337617210202450195693903862985329304690573073161195799816136510177033370673656419106579704793650343310864237500413279593267326284232791998851609690645671536732267028672084678897697374523907553606004227392513730632333974048480748975252327675771851889814719305514784359471629804875378252022420958975819986284405668780933472614156788858689792736536436803936358956512241278319188423877675607817527091396235171248404456697811461721435839423563445156868699459044582724840221016070750787326964636231263377792774580666152809119617873991140158110754608213343523908449646502132832481262986140613082282432397341487437383292027648432012154910450566193384316544836579018485315466955765615022178607244104817190997805141563162952045659473072891915349569040348351521907814730202398196662802645991373767999124557113939651965072374117509915720227677190015547713780156501078286755754301562815450390743901166746871019536714669161863491479881649057939444961779828130522565498529733227273820877208241094119747266239396701083001759159488664851730929225211446289128538222063991477874438565425566567419916506480756010487045709193024291632867550267917351286414142800156647097946980543896353885463413960710152197954317793891521324651636755049672198564674282007876010131050217854680860091063669754594868217372262144373774669036689710359860615909050997609642488314042384137463411358789789638671616170013348838331752298105035168224073720728455565982954311252878734332902335097818338883593729492819740572191793192575580848028829708169264445757211203881074315069213927416988349335886638086581008753421285761147949833479592223719310666908084730848570126295528570097198357499636474151623322073561483257852503495951861182642227581734013956507428449482966925413697956977500643888249979096128935229414602616510934028014780020305605082876016894192676372722184335715178823134286910027324637550087789977750523372371447747480797240722046073771694295022336756555657789019926010114389007354042320569260610621952349302009285746459856431844875267307591623398731611087806203119977394389364182943939074062806878720892661774651864363399024767112421242558793493809836017146285102798583020674962769354539309308846249704523918098423000244353630944737849592211409977690187776175732734959891593266684164876033923198916169212333472552489091647160599049176719390626601742852896176517287227547534674406600081799832381256353803995419926415134279203655100097584708001709788701545167947898445848633814366149212751624343879270184388350781191710766643946610828818740419297931152993808617282296685136842623260613715825352889382368707424611281657498254716483511293042298153503231246304117083392984346029537158972199397909115916459650553656231130153248085819881475479673820509477137337677341933214187759332844293041421114416663787202261368158000744637277000331627664274013832403149740125858637930369406770436022442569522182599365412464973330607261612154348261906414004273190068485357827371502839245394957326913993863269069181483477238486085400497033134086625074004264614079374956495461127247214291856326685887156830017548425354426050392504928513244467912928676079845840574501226080656527413557249593643901139846950226130280731082588440609450051425014395991553001512200850551163166042868757231780410925648909069709070067495731587072622463226960712527390387194173660227980535596373193342853543570541850081597520034123292114978138881975415355018334538527454850616941062771858337229208434523954609829658464541405486539604252329450314678254682839141406276419251679268497139340761181393090350976452062454860422214360989574677130112055397667363042411093111098541423548848604700250706331931062102190945632883083245344176153835427211256601004611175127002835860112202397684256574154781923040469191804144748749158584463680581478131035042640086476983111391282535604891913599963204963586997260009930748404619672555260717880849239825210425230901638837512735049989148683326078938978558330402771671007398975658251591180802562457985828913785239970725371703779416425010558911409056582892667062171289287802806010058586453531278339447897708796744770944980844958005720282174736683913538780773027567780161542075939646710072456149787972767969320464207319633413366094711827380820231188439478054127661500965935882536216000930552641490268708126374876234400481182135810068439369662485202753281876937264073233959719498860284065239513728542338673245006827618538655762862982341708269562589167630857673108153374704164612539253774864662062276876148261006958414236609920132044944178778078100264830528866915831469497253917784064007143407493908209633982413868833921400627034002755798754309389752469288057269802738997328236282469090376260730498307885238771735460150544561266269879746748246798796252239519400100491850161485853427426096274555005059571004901081846822157497449376810943918761194891016790049753795293692945337545195368206941649855760585249166596425807289846330555476909262287545143258106613949767284320220102012640281258670462946630622666412096987423585038422315368485577125969156817598791635034724920399936144900089275741653267244017346056781527908963557203402752719989726767539990797274589262542344398032982730264083558778979497487623341374496861231196266796617002194560326317206120644845844335952819727409108703704024316770094980170678671886978337957340158477032458214479860876235420589089655160375897698044512108213958580665971548066511392972877119487679078943416738048076718326871998432622433935702687605770726415680170904286012203152136793004017519849747471308792626661892755800098773237071205969814212663605298542749885264246594925327272343623112356150397014194482533317186277262309904651429150338854956704166748056480144933547842671881668353288096920205500354635597522704362335497748132395417189578448963518999549009475033307914310545767070508249911321980913485742557311227401819852497886199229302341203095350757889326393258631199322524748665782566247512714493516249849044175393846333592024645163662089704222913104872414554824416315661451202467821002354037510750399108678060522144790911982442043933264460222908089380995135087575719308433549527917581206663490305001513665832550290560537022836387693066308000208876323039009311741920689074700978212274033053100837113306113059772715160418170742765179630719070214149108400950827929402593371543437279152238024352402810907901637811533836166213447565600975266842614507735809475355876280812686447333547864267481541424130767999632968210736484630907422503511779490896340293569146938166830803379149328953894088801264114564079444362695633915911527910450789670414773396659871456412691024586836670098773404956011322963659580919215238901633616622158191334647139351018081052842512699210952525040867109822220292557671423783559217417178434884096058702135624376929252268044942846936206582295577173017592244576709140815955777480713303570386120134704601131147639186874179863098589502107292766200180248834968804809648399031699848005341503675067296133760080878334928826586308643004537042654982168092802109732920980576231236072644907639793101828975566744532872881393172949949874978670594138525207281745186221128584805624027122455811231876243353399973972839654342791008329485354744931781050400266649451110635008250133686529057539990845613737615228464162136353293824656863004715350514485804052283936713316009302188437380578186950045632895075616772451860906481503692053731302564559094783261375573177828051504699671282344483737716795029528607014719677640075368982387845007719358145497747646805552231953417012050871658872036973164323965295790149574959569088935495074332071312810739729039576579504606779384116309690519793296955568304581425042423955131666266996206555806251374304046911051159258330729606296649740509507456626561289578272883635339428598080161444357306910465215222803723318447055660879807886736806087214557175112097112519340504358287343908631956379098854519523169888935687302315362729300906194884013193076926464651674167175220348616339356076839643005906391366811086566447253387944316594762399582134027052442205758780008443682979852751929813280422404315580114234484892876146671857991126724818102297786806168854938874273344328352042372695636935886424581760960730138064194130908679198739003477167273956645878370182168801798251985700085906059909201807596291681828952619810978176879976942609464180940174481599532511903346809154349559292012179857395247298722637621879712142770249936531667693608676773986226681217244343000807174409416293543358918129589659697274532126204144323717974467219110228228335439380166323213075676966847756574368739981797032693173091002318330936920363976678943621314144156770387962822491542590983821909374789115597916563304402517991941066701555593210092380482225237003949394539986074168817968165855893671278787872940881550921035561632440976539321287278933895273545358398690244862154575478394297704904633041407817072580896089255136199239414348324931390156233857391846662853889012864295597950113215955908664068798935106111824464531458864331219778980846588977451859189877013564765871318633088050386407784851135305522243562868428436445249779012812067661648586217963373710672260193713384079716615930606438209405235726039163622674810815660457039970170441387050818026981010404005801313937915157701896171859638106099197536180331077851389213235328018074981293486279973958820815546565181566753681177649687908766617848449320360640120548756291907076512196918915460070042716464859895696407967001597075970996370791813559186598754251122521563377956599135953849582154958201388046664497821168368233244699109101026997007405707170963702918867145502888006985006146107435314971298243257217586418663686963078800115417314632796819081203358365542418805326028610073590855380383946714456316200556558973268972358057108400751745057926027863039658499176188977097419583326545537656555474801068041412633291469190892665343925490846490521864191566902675964828255287805698790685104447716372789112243403690361588565297691120211321888337106666321935437078765295614157176776717660457469415282171665316883094336807369257236753688271213463454783033490664046460312792067562041468263137042879204111884137688344294920501643566935285792776996599824014930872873657195177637188942565658452008673329010058525189968992743368904024127457936305644536961355850489406035818941195262105672222481160273691642837318009921996414041207501987759883944704491875149769156108700590796135002729473108797711051587828634006470957552113692311204646759099888199329389709954998648204545187814889694112435077029367149141980543164153216217521497096587416155107046098960264491185126679933632242595786260063930021859798592794474812195313937075997624726621009037013027458355313037267510597047001891619349425682774802600235693210875042088877454201739610950138763613645824724336650633678066429772278881999038712157817314672606066759481503024117470229486425749058975659890709161395126487450847234559487321946352378446836553506551168850020111016209056639575225336292098066147687823727270401013653860409867995648939380543355263059229530179850510796975258193859938666394670607512586103141228265690924062403793414151030789155987920546788434707302994323945515954987556494348177201389186159050778671696361025378740326587002127868527056775203011982224728554807996378296575883210412548954672613275672509086893113059410957699301960488994253031545721321062509316623299905413913484800000317931009690263308703046268558964539377062462427156234951448174730930271988524382646709656651748467511705990432140217717087266060419973682602924138691133895213626068260999467481857640404612752303851109198038267787274656109130801573966536912787795992051324555147113745467971505396047164258666693000951498256390106637966444403438147724615529294433678308853883873200707097706854503214394068321745180836141867677771893632202441209383238112050819637206995266081436048180075069277082152023691342496652526895581213802018063690300428104544025645096264301585499244496646211900201751061037121469778336991821984558949997354982369804822145339773539222885407307694062403907310463258006334232513000477404292307528626944815763619595367732999165440173140328128865533322532668717533683388128430325070342305274559467608883351984493935001535953212883271357783243729224501553458539458031445571079260132160734486602668012087927196771447558431581610780662695669622564003969392236071849942164212609110298108639476148397217871682770176845302769008364051223303676031966624538761587282097401992819418333744041628268950831876004270656674002392879047521653670026736098783910808462228836971124607972135943064306738636473639410251899788892446855636338441303981068329996319833489879266776713792996613673891983080575723577906977561274499507970381200030379862359212623073580835050378432933444900895744834690539623934979917861497668307412792801483719914485615707208363116673746047312506625108277907533033230209234224434326652466921433213009957715777618688649309641670026125867325212281603051118959018812769714099524637114065246198867729435599620148149352892982627136524065910500322456508749784975514686867823009990143042196646217886551556711177737953152494387517705667686871292546724599080600868113432863165255356236751466354487800510296872637302548071430025092939889924528396257934182235665672612234022505882731350719544082039160826327750187635701200362383374131803066194811850653376320178771868993511866081429109137159598848621081310803940031192204728623093021853304287807585850517897462602977392352184178063243846063064583269611969740091234405214080272688801904053394196065478897464870528541183771543536929339411096366940316460960832767040937550008584847858954004957541282158981921169714876134519190047758900826560814114905943009232867606907952341215419558728973427246225505662135376552537570904214132532239540136935527927217451629527239791646617402390411804207115483241156183243209751520384964968944756492419525889074144114920888764312672443184911760404316626113379740236618927155362065799125550234317611762991467262567617503005859400773861963359344806691576395843016021295258734717482638000529777388797722431687809602480883011565155785633200251257234142957413571403705724799417878567022897833302706881854561203257254066747322670527684867811611861898812007911264499492292204577307430873046254847512954432348742657590162207775167776916968604180217839020712492791695790990439296871021402467326428388449759049978652819489185931557689619018587458063068041857896986697999621396788397616752193581777817651935569887593313583171244290800186954500139164410630465747251349544767497736019280322425763266366211062886537098410994451359198898660378677044636619982367794723568834002387023194566026810668993440665073765414307188948553616437395827258627342194615925498172714062735627908211989766892219758315190133041194971293591256419395367202122270302764937401481991569990398784364639747274040600346077442333414865770168635594077711757078207989335929344530416435460732457981019548858918305433736466884788224950683711252608652203774263841137683257914277466121419165231817983509125671059337348930954875515045004556228033604988003077848002634956910265184358618800592240652894139950782018623386749753261900867753505720824957026935864493620752193735402305684276979183791582330960770151767540191917215160435656603880542206879155522505883665031649650553809345385679120325726019398621041272210984688965107038409349358014583432376071235604306453009169697086399086490431964725419565623332841947902424211095618794968938464663920802793152647973008010292436082499708041125939930362400874677022080518454626081610437254594716995152608506164765185900645908902160194279199276543053544666460390799894049657131013972329890896161799512427916849338350575359375597555791231169458274261522750821354708148640298065953120762951349750820344298123175995629942620575292965484035813869197502957997918113062963100674464187408655632802175274723845739920366066296944748136675544725178474405557969945731084363769690929456819316942033615571160925787062622334879211263974319028679266683763883622441877946294258382150516960378779480903703631547195866554454076234022330054943156947228067246338279761606228458674736981034389204922129693131030558168835577892110177593976120960409438513557504865383377957001256219245244222556790762585500525934535520049432986136106538429960606453407954098455229995229297266531218188522117280561809671873277574853700186611386003032847149320391749021113503507691150076787525774782698189258920954783829930176860724715573225803365806453541032029692510906149113876128018744819802655231205507055839125700901976096562101521935992450949922288660723095098089434947732392992158109919937310630448194345651737329456980013018742764938562082634386919705738438737581520096352022924234047239605669498799028340114484596591762514701713347202900545687468697379849980891848061481475971196796369709944848529114240343141608836817322064082801599401513754354001719513271033631855982870884769770376894330360985503602509313869611117969749358221309800086493224838896941391826287567012811063706783596724655880730713829207607875614375639948705620910807585366534066949405989573633618255101379323831523252377205987872369228230602171762490749760228636732879601685566958634035287222832182988750253096627666554172304935206951846422397352768465809013510236807409231685753479995592517179396556125453680149826900623776788389609811796466633940302035783679603394122384348586631095771889279095308089664468647973248854114088107450206867401862375532663308874207350312448511410543438619028097890053159385143209596526700986153580029306275669138809435022233421691061155827178499369140583962301968731202268539691438509992834508672056814540296968138989068683847132316658312750116093182830122579612832480885472517779190314838956798677364538243540709227997231798439314378069249112436119545699579633327483266401619034741698016074839720359739826843687330821856068761259108843850644678195065214613040073834112967400730945006512808210881116760246158116130340216525759926840375684996536957876952100503690729443182102831485600074539695636574784936756636167148332422105418608484738477209547145654344682974977475703183786449280415129694088933414718637060328802790067613122139858240192171657574685906189271289187936987851348130646197043402426499239251906949823162023915812511477905925630788094284341621801372942144026107868436691794849430101505897349718340383975960502462018400132246783897817290600468839151328497381749633248698918238320941573153289250682266841738787666374467090673396754859832871357827865064985268655056956033724680935749448158519427735733684352301446356393636876648771528127995276714525374578524212970941458298422479394732410741190158199602917239667204723156309364572267897134062114639023799722410502015206707437676279898809009184416849316939260755615635257189775407573723500489059132725632522823672167075721432443538732504656353500950290673060464887704823671251010455873742216648392472678154759773314098504729010043839972515238600453132877349513626357413315581687634966607351922803811203312570737839440064526553713835824173102033606017054548756465596656240336002386667370744590663071715667303491328943642179108910488447459478947890566613751806283220542693993299649875880620392446684849694979781717505425495269714702432479830012601867210997940645325708913983113716325958334175023610286064621067750546531169358568850515562026446627896815943508406801444377587824774139080412148441153116512557487740863695738068530796195846121027643069539635073971093562608099932640083737391045365646483251566000904830274931785288429988872265154951924627981994324249528204613309940489188994763946469518710110639694239358004154003015419900556717520863690473081771915409423827322968347787563738812759535756146948312539722899217455034136940070596515189888155814908610137286964583156582407991521116589910378387226690329548452384819902231629053164647536601655945087724382473353061633607078553275624670481222814114792098780337630184403538241607891746820245787974459430563616161914683797168071601183758194692567042188563290681147553683474780827635760616477723120669206288177674884276983598668063352553033771289568514820077826772365913462252695432260965941190269689684344883387222623898501703544409324960895192159492836448107975406277966301504543779049897049313652198238804402360722439629953555920197670629430988090191697458886824791079275382900035304333190868956021881927025251762434637533435176302372808770985344922601053225988494128772163105741683611388600749704795498598097200479931586174571389201155088972310368740476620371235813084240887176364482546563767730301472256286655693282848200636497433389981791235638886819423160785446042958149616926603115039019318711378831620932410417494077671096068476631948635428163091262111641175452610975673050586721080249673668180432308599403675017553255988467535660303575925468804331572938636130368386832987178420534809483924204097756177969116559207254163114753181659073396899169305998685409170521563636233622336810676929473170026466491503612350433541181008596356289583141450733013959930771437645432426431008900078631455798231100700212920532836711734087908937792055278708851429656317628709593836660628348015225209716475285225478851075038564648840395881965970906246716919212129256657174442396988811074800549717185242753790614493906102419383253637127187294665509083861258170315387176991445227447956202771750223392901368996283115036066368365213830071878915974838742405923530017686703011065873356580198220235795995127831444683433309313354702050704485712470047188215066781308379962719165689628364540246104601393472217279806460980713064813896151776581297104260270736535409394494134963807703142776374439353236379830393011165578462641338596747556931222323576426271496817275514073427984081665894960508416110178988603237390129707801999543980644207784916183878549690417191007354024329380402400641017054208425927388346901940763411823595120222891686681078130875352929784107701469401403084795788243674841208461905384622195158532264270009094504291939070042976744543730260817196140124092525777674691479679451093495228874115945566871347041246564448043956301858965128989907853825939720967163363180100794382132705278039997889212061756444810918598615466407409067565411936144552656943999536276430387585868030834482925574340501034939642936888533573652879047262030617195434871455731630239035554191262957683415115267500285237411745636870651009524645060267136391950706889054105941329133893101610100329691319024801259886320404283146612911233440621803436256873684364448399125651718586282748741476765626618099853697923333686692567639842295247946319692545254447258833719795665740779712713427046908484606482469978005815417576280960042776785109764457428167408152499109289875616687100823867632181090966956154535855707106659496920236236447423770026951296104468970487513180381194761959300606529392930270589287903184850031910020017837492093638580346767829451102365888690589060620325781016785573876526860369316136466005117085103184628765367970063704249290794094455321009486812129643851802219800330777433453396855797501240184702758004578125653831263958445076513650486521468768915452674991130637005441260739518775784217627098630296746436837585297810738710044806132464486125100773332141307352730030044820727112502027329895840301601237375853717719055804689939508024912865683364023489226810459658193413396794676301964274238781675622805348408637097086566944141365606602669586399109673929639029718745868610580958385225878782545115535194445798343699743323080611199545843643066698120917353318404437362827073710220388416225819017573691036663120739363588705433969389049597146253807764670410270128759043138216409884220008090080172244192620458833976418868149403248841095330583341175782104706141661711029705927458916349354951096467142965385415654679554337843942808782387466910264424466931730459489977766382594790436412219977232960108965979710493650447751045916523276054611866856110613980213561191070102830755615554901892705186005427794429689159738045520428101495205051168127589829329138467479136529668665138354525387672879135129239906083747469923704709454467077315614878249437347753154403855117778001747183369014818381288564886584566439013493631655420723097117662532180719728882569961876826048294341618550574810779120472219645964881817143984800508762740489061653870935307970033131881104133155900483233570690244249666735676919533677909933918336531398821443266592758577648511099864395706822210600264275002491509188937420413924777938218114412985135371475759789525108107849729633892182074598156736439031141266956119534066702930303164334620402349740555716181567680480120220854829312579710071866413008790129368565698042313005029368350487456260412307119087379332601591751266213688250702589330357227618462078636164335087401417436629517505044295979277786574195922594554872219896162557782799401956003471330740299773457807079250182156844307661381445781629355462355643636678905585538837240550589422254589448999846719659111899056136082996471078002275915802379646530873351848962955721021495551181133679373872355322380210161527127686788828782142207949349128930400497381593410621757141552584504712620845115771899804532943995580660199342900947373330522977666826736031223436568703408277993736488467365252177088309595591169631621460075438997421851692465554012443315035982533797933599122923084464507176571717298461330000236034308499859012479795708625095086239039053782441679054460149894886376636262756505756856607545555027788992107878071810729950521456334886193272725527061313489988988087937513604280219906477003221342502986295561090994235150426459963217147208063849167414826212903598057816895256575594329491754655212146656629386492831937985886220747674719551733115151372695943521270004390671247052972386165505319722847888479331875788921579427110844610150634902560094435618021273514234183081318656150859102095530196902424001984881707672697182374912270619754406323721074568049686850183299902701274793361983187596219131167356442485491372310223278489921005405706752747447379468144744407593959895522555298145143873835046018784336786176130158202429049240037403843060521694966052780938988271051985212084817007622521232364650166434388256332158954373268522473866573695713812197019650938193879442325948312318682449048246381876642813415560421654593742882923350668853283261518882628312803199980754549464430919546408005130746912911414032955939257864391265842431882791396578908932231189152589562049669804935764099268462594409472745602461490893850074973623878898705018349612204726445222350608893379053681888047313820866561885161882120638186109383325967631053972437443660945411535665310349359752810406367367345032694308631122313431765785125767974832184508333293105459497036498682960369666062646650814792261642933719587032899475873165981622554029588536650719848748163140436732058544354209824882137611900766570495475636551064649643395994272708820684702458970240182684715005289655658002569267606620620574561268985241286846064000948422207062139589718241484237664814463525717306614768126352563068241211618552410183044530651980584883284690710552528732051448397554214958322763761593676711067275876016154565894419568808702087261289966477895841125311263550948288387030933114917765212064992587885836931636482379960289327866713029955447163752913923338772377670987257886190447116224923358242867730015949780267754780474134637477478887930082412071018031296184708534785337268761899450403793871130166968458122906709976253914928867123932262483884963382096573804821850493629796267705814006604748345477003756206585076375738856254939803827045342712742709400356767462155464515607677655063243943423672853303269262392643919314155570558693820958832964431821944280584784223613945422208618964925783715241356269745672782621966855799715218051297383329178966633057584011300424214776021932950957747310220137781755703138441088469767700952391366478514414853904969325698458251059598905319185948472016049620688482257051855300732700262629600810853099465760775399664170308939434372164959372810460945565686902005960917501289608375092777349581184120685741681784009011191000280842672329453285005877926792602105598311382028433266166046735038609223750712603379368192825680180354820823002005989433052025633495992083020195467703234072208257741561365298408041766006413354611927471043442396862900572426464822566411446706610441388424537985560947837298249515580622884710131919636602157032702007402875570114538418846733025332848385578086801474897681837438599422845973620058697477952764776230727171015664426877653496092740311623623795487948882720720727241111996543672608236531283116633303693267287969877185475008497279091942687385552479480728439901790933033482328865010819287852258453767863190237203718115895872723674717895324561358811638480279817573042299598887351266543390360125213174749327384931671948491239925840157561592734371429528750120546738196740090084471850569538536803051244253032611855001392698615690654283288046639984213465683367110895413849454224169162128203121327261805572324945414403462862522042737801108868719912882722953458597844003264819993636820187506770074444417879338562305955135539763948254530297860956428607098422760050438663493895732549806272027978634727669208900775811775002335337288829361592602080017457294675595613522918426816591897179063324956056938127487548561895363866365966604488515930125483743348312076369106003033517217863123087370011370515901797071970622493701819120778050415154615273528854202664360033045062086614747067714607163272646960241554295354444869544184844923444661926029539308687548914007077605885106909508835376554720390506763347637778981238868209441122726823015774857900959366841292772737327085393923964439345629411605666718791401268640566159825718977083887744673005661423036188843247959341829076671471054744573466853761943037120945787650883024577391346004712171648241403453098517263413392346703057249696859175116864947033787082824865700052081100811553506322331220534838414927729433337020544379010383051434378185099765444905849116108599719492211334330485552252342168549086260513008873408765442483123559750533879791137343431029821417751589815897066151761508400171556757548785974365897464414327499026926895751174674083265444566628445571772550875532298909237909633305231922556165592869616821801667567219169709948582708868542538491059942517643636803455177276139946162832618519121431880919103874470635989057989912088228823665383181482406729181007043855009580040435163741737347952283881565072116439051700203416400002025293837536772568000064352968966270445346963136396596982404159948696158980009085044401579974175469114931978664392303906100207219466321980476413349618585015309873877986285384936011341668401054621229983527496572245735593123662487220230848456376906471935309851760961537898465737600634336073110658006565452070604379715443323925229250628831213052757343500686627803010292495884985550963575459255879396208172168869896988470584432520106760149792750549694105766868359596401748793497485133317602127389020978142686918034294996201569470847922936833452793905195305001595159766251917109086443811924034824690334992499159978417080561794287699292716316629414660070426533929873260644355225682032403720154605858538708759617530295715346943314622788761299057226315290466005244147263955867144622621725916941265681623117222956211685290434600498611723282098576595620762905674071737418614502632691704460264157947890319108183688113899334403583945930784654682361202029521044503433223249752705778025321972967508521875363686273114939763141104688432858345223717762834972661859237414666485581965223246329761234122651432507776638474661917455384516023695159550768273322077551095643836566077823054905155984156276726288176876443455903756079334764433148160255978052657332875114050903061533008411859869158506101782558936095982234018599380546839307119711914589358043967891325599346206812162887531216485294122743562614768196864813834287754180741667351171814729489394727727385399668956140504511025781677710877759756936740806793295356951311790941434472267262422469769921746267828579284204322636334305554335990694983294687521703934749796076790080044949754149470359779735865429190164620342705959451084288035883331490409700337966308864469697184301640624485675820423962682632698349188173685426147694375482161287343944685639771155760572176334494748667521142885977795596464508879866898772620964471606969380402100176310299983702680071963685139555221000621104929554695526976000112746801603644179035348887710370819949919042632037979462131868935107370407225302989359984498131665877747208231550598157742046229763743119593388097879717101652079452215485957010880091594015191119787346054096077311063461738447739174843627698019769123501336511471075922058567319238843106450786973914949465542321234637999900620940285269382151884293934548588871537506340736621897443958894420604354886865639246694571859994178488922539151588999829826480337398137011519312362345179783427340004868403179732514683550695636258118913692847243358805457254983611904320253562982523554823907289407232590890151565874410045818976458892661593099722285189111097747022635817472265815350667726400129206332101080222268282329024487039373536065405438146620294215161461982565119584670799329413776803625889408604625790421946727062380934732217779746098483093462302090309572506704078589051326272012005170487801167372055595571539871768597765324766717432101373983025819342397791685217118285468935126901620625438889200220313476382404536715640804521088418400844306257070256704334311270923484633164019374321511858880758750640166739556327781527763163006792360966960049743097130608220198806516732072587422405836856034531721571936859041428152994768173283808157681513055305118809649774923168676820502511915606749858194701178158675559624722337439885503009873563354075742426401936526468612043991582226942375139017092015523399204442330142516746932067541949582971571920414803743267369648713785467012624525813017808994670698868264772672703413778348762488252855333375715001625525792594881143380518808197272845688770217613381998104654925882424238716661909318492660670587050004717800284956996077586738123430812721132675265894912235330935636831214426560255394275992531240717887191790514176502305146211723028957937063036708430491980961550782570695146367009766076516205560572209350177013321750878329326531293364055184444913018808591676782559894547975973755750606015716457714754295941620969338579948932194658409355219043176043827981819486709927233160680074983453236151222352318655132392323373757687944270552736373049151005466089934837998167338285498190158675907151246200911312233867593368266539000313112457658828083511802249736922832031311023249926486362196524997659642695027351417243656236458472920336649027763278023793978343598577555350324389038875638672197257959394297830164092873302680681825847639674001444882202544044509373200403344825028935763899734583883765212022251008910910091568104038712395922176656757320092663173576010018238317816068234681279247667033199865138485247306974928951920126951853670168232364737751282613830013205343384291417558782236349026923321517149286569785510180624799667906782077905778915282862390469887976529342855463162989211733816171634128857847696094024537906942109010326755074177186604928455872804401991806130984655702250909708288245331434500855764276539343971809610101059368017378400556299155558873715904678031461126119184787749622135620282259266714403999691463447687488885579239560191454633473073358787466464001071765237602263063917186714872085206806444287094460364078510837753349087920712433612168287580718630982287152935301795571630665887924840159526779332162749458565276957859963597822233066981975503591817989458067121358879579099611168570699599125800153103059220317287105525508600189417297049735112152015241195206734602060471743639697184658492985365839022483125453283892077673288629023206845826252985883029111711957552500265950091092209439461295604550330939372768177305002525687117955638783910605708792282258036159430993713329629285566327412547670396523579374003719269665978620326158100094741868273435246300462423898047025541451771781972261768093617671924175548622894015630431178382861530114207389455400086308850568692429208687153791494339752897923652470502594705711711192688770728711574860851824241158958759961460079236610109705960482378874443320353880680457139502616214097782799063893647662307795435538207770283301797581132072755534988356096062377590263339470710469424924392819538687798782005745020336816102814216479390611585545194260415124146729980607079580232322318876313140472987568336849947085426424449924531718939760699606327080993834624313774214830230674794996146894327391307896658722679665497495983695004411193125101237151578060571079273783965524098303208291744329017064242944764923487757961282274577327373496900761321763835560698383339307796862675912051432581639695886280887721433811437874370326312872134626031153128815937322795365797081441066072173023350900215379152563577952027586725992599628848077936457024083548814003209221112780286895432340081514189402865398060010336302004459974652358108944699473974246974326247575771315776667332349044853487079271015224715703888465445594510121459227112862120401521825481538782071197266932863835386950088713257831319793461380772694530986343240587398134871394323647885103600712799228596729799287364982132837995371594828206995386649343151790733659855456249550204066926078299533447383751325404113863011355232438445695306355665222659201000377062996698774263414369711230891755274589963333289676269826944868299140261564708895974807558029800260953800677440384627731191936794972242828132794111581288760534036340403856857040496136594935371787804801078001850287348290088550272528602902967185096654453744580751991499375283368792555952316614762334038102065736727255540586724300658404687079634616511964894160036691518092396483786866401194607399779296961325981085135574340988021322582452671697792131636285902307180848667236287973963015606930619496775058588662726221381907877909586514297082756159706528167784289263118130668782018099245906473168904708474420363822745444429325240534398916018507097943304176592968366383793756092821176317768383184055071646249324379801070619428808489241976275527050710723131413912084832712290377514440299346760627110651781917808231354149081103792049277171170968500807998939318325443171781892715623449162063633307459981418579378742523319256410221255305128125157600156280573923430437796146057032150087144027344654298638227971613534266816823337443750481380157199112792158095619084761739727713981376638971965660534664091252986941600437838871856415605323572077290986069361247619349256949760943592134264038335561746431817837102406781468166521286511027152598560965408925976098980148606783610473627073227978349990677665061983244409958093045646883425377024694077252526509030589913729824214929727126258129062511877240134753244957143680491381523609688793863875873786723082911132299279052051500888975166610079413253399365322420979694511912296376621339694875645016235157773599429696875292806569287346699020394666951305445421561580838120482060069551396227749821090960390012749870765944238020802240538159471353932972220072487280139278958151193428834070414707709044633519194240676397393448040984304888406764130535779431229400258493669985055953836508087311314572256422114763430859859842720988635727564906968848799320836885774724234414335871087695112199753892119113640814335794977981378520994746417536294551029502011308522680259713750532129812303039611781172988194296586118815582993240170636173025966427675591951990057619036417824975430946400485323750565021632078423237005850711966412757496478357051348902883669938978781883343494907959674996740856992069094689327658794344732540889076833227235245814559246907295089377253656297008363716028690569068853400345688158060177540963311442780179752680801295434854566493962530738777152867012176847535330030391557783236180600888672818510453169830377683914693383322848041800403159244434499143637740164611623697278504743353782316772429771202451366764235613596495408968136173790142078760988998932076090265638971935674575295629692800454768244968112480926012422025521985860171099796963676953229604417085710088348706890892012861019943150053539612204306143211405347889224167750866758371157293656023050420925465057868949756728039524057556883041954326231231520413864408728145827815074977328579672453307220198640988594030900869868394681488494502652113338297317368989339155590472944838391205876767101258611401100234416790754295825552806740348795072155444399338592502400625386673996705202222306674378715291204887974503396108836787983649885728941413595218666285793344208707306415189529279552686714235330457514358845381826480338083702371876246121144173223155858295953029951773748052518399161346877050191058398456928504985058146083862058803733006238000532796624574799957478356135987395553429167245170278255091168286715510899921966045597115684008899647686495674744632788542465559469399366943006087838715181003936233967069845243481697626137789741319122425893247737263808756378351673446530399051993873498637914684688470720675027667802877987623453316929572872085218360673524161629630116704887108795385877467328307393689658398638715244242357123971356423250548578469264763835019003609555089864823268466091384695898143402249698115784601038917986286684458262183030156678401135255517555895143781500746428315096514832321758449993770438562090626470715164700125932436099255209266613700539931454331909563322789955033545974342154490932397312484513773741743038865240132961095206205095117269642580472914584242810743203751171086900221836172477921645891022460892380443920580036306728472946503490104745627263719790526349208158933908697439026345142599149629782398990089437358864826778108826712730987004723533958808079931012755673945094187830186555287773000976175596467849477361308696961996693136046191933851275587363702973430690126448304171029729517953513154692518121589531845970593760984769787545742558679392694918704818576189573434927535088638632618455564123056107749900544342626267787280020927775422812087682252109572780927007401425219576795709765455814810484431213723630441278476456747748689862377298296740638858995989707824986674177788973372762693513272432430853873855255649230328469831663378069673196105287820019686255801132737575608460638900955644251335395778925431205235835524204445896843922937632290062532633616722283753993750540907715509170100091394707026070033015525293387084843587083495781323061910562454390211314749585466030669416288953195248309012056180923678456629180728803098840666392058765911662138914376894624364293969789687647527221852312794362370540590965694728312705254719740492755865800982551497703287377852303054014781718231409770437384870566902143820905575471806221090446144062652413811531751826242933175354127170021735261157546378759502696651071168244641387634011665288520339361732412707522491951078314473880783939199586321451922053812684805038495860414856748501255440916630040993719202887545820103412747342197615717673809069084133761471788575749930427975217229211739848739291015366019138772355796516053373723625967043420932348056745659328893239057881984098968121970660296401718296329928100812739283859883902671145207447232329790703564856322088251479071222451742310766209163933505738933435455990949377088138821334182743888291216193064523772362237352617906243037719086087458587735052715478329071667172881795074387389390508299808352455351136456639514756945326800976458312053650042042660288679087378988187317383628254830109867235977087212484614066627837838549973499205129227599723808865223994543665442506766123135505252879033537080257275973887180628576243505546408495705000493725132356833569529960727556798704667969622613855357719050597593526560555430930975334140307584091269879728700656688559487639929877425418867126646465474074253576680902852753531274201179616506914013511545293348964709783685051643316231910627751988782490428333456167231157100635916229896198500068288132065180160837200646767209730297613520896822367536639436318863979776443476477613092803142198718436297892837197610619102798262088757710118751370747375100247953338158222322415464047845200044686396046147675817219982920176047748406789074166310545557660247072895499964046307607555644972378927698323180738808880610623447050551203506306922156732292490035584803412784828660826077979188786931400298000300193438514445901860548845940949071027520316450106937589940522013280495967132587139382233669117498682539533297869238943085939222093111664345878335375061175725715165486523989547365323627900994421710272458907778233576786771103458455838228537851245926663558600157141622349128693116468224988812357651826748097530558730796337934642128853799094627287395885386255790943308267218873166326094222453120034312179308454184084158326657790557954694082740785804229974268302793373110793598004112849003793551866184546986167614591790898657342167116169133464818603382883948845629099342316529099732708088885978950841559983543196688615483968464607357044004640131601506493932246150130078809932550035828859156154902646167983165967274961688971056194571389042638007038559109926908496754517385785743974614872460825168760496769468925711639670298189444987226121612499994977215275448219554794491214719980516019320490576788285378944322905658238726660963139969200353008757153110155320999459133495245793295166642626139920250907393513601749224438560065362876632484733855592573671398546256775531659008198959884239948407685678160955197069152214578156856942325843166640407653972369044701535450747907413149609018723437081967607354565195346894341968130545878816689006214320839582426228587716028928011143075152788030478878666042567209745382023270231247221985694496206128490677151101517420843458190608607875143108541389351922148757875354623955439201200572636895017032164035451465501602975743571263938564093153331417313008691311253674564134494873059321790095128208986850428592212414691585549521583048034827413188736701147899752377168075133460554757032103101909477616939475078333530326451152847840544059940222901295816560908516074920301568782595656253562944488393716516427465567830271751668325656203366781904845378637317197102282527852330682094495378550755620448992771691504528490331146026681026331809522679437168384873022940353911776709039714328107640804358346013948107633101951945905778091089239874065268910098625029119009097337260055972282272927898074825847557786402775773786011756041957831605143251250783399234391106267816743350038646796458800030653777285555434189146289794700920555411117385607489912848777122198690364920686506362603998559503132828133623903006083810085526487574587043000285596271480914700421561518789991411783445999644337922855810703144642817049949015791187054459183939854305995076337251607444998933408127389362523730568810395036068038049315164481154667007449249397248899983729821362527979211872786493535130309003071135010863170010739164487900816375193944990314684030485770631233852555317692834441931258626694612056583009908388525205935898603690084280169495624506447715177195661746366748811948073147028817444180235557443860407584339380916174947856329393880994550576033568097467503989747597906110167738981725203784228898586423628487660622174842890825710451950977651848219615691628040798689279055898254837600080355230559291571268566229997676515266085657100757612949699829484878586186483224755473035278424516084922784608762524053565687193571669341844125359251399350709218815695098610217425512891051998076188696618558455681746521800267217234254044616228188957329782301202119983297892490418403936936443459277076017007668443764997132328198678891514115327871742028220304826343025990761441511601318822632515073165413823678446092929244310221413681393829311497223592696599985140619289797350019662262364931191139019818569706043342850678876785254282680768664112493401703957520973676918197015609068400017420684831396871652173175538624478572173917934396058532401273626436437616588963952001248500351731872902182417187945199392236003818319748315588990157318518973262862125333254177624187583755960325398763382902251597013378170484648955498658271164294378196342298078081802725297993346155405880529285341900614603524669982788579602301891365585866943518703578103503433260640982879021014534240925066222224815311660520696789646065655262073452408604251571019844059598926270807264738168900033781407093555967270708898812225048855979751177370233172569682443750424410300130522612935215236769970645313460515621928976108046729021370965802678792210904591936684246746675955709248300088280576938078406275560352886118209003318229709632765417478089337054356101175029026807416256262254350188470796817011534348881725146292846551545643804088605106820520863905005689892033120325955531839058095566920947509428822679194446725606855318707280083819425023151307112270857357913329201971709995597532484012924348847475455742594357661476349530736971541783161424802781182176250601099277777139526613437902380702202176770149590236901116787597809032591955020387508966441906975965850908749013749867232081559760164801354725495576194041213066657280753178826732221316100588899982220489732969616024668564580284241896131428209432683628808602478986180199856064520722315492699426334431458515816063561577222087538094284647271461029665178093355883252378944198075920144735636815807921797607327916076734178694918622367967827469955689490921275346671096868492761692800017889015912117251178639851680669709378910892390202835258637775506865770635265736187361608508834310412597769036010197073197518142539481714110131193104037268882703269224924277192733791345410019151516856828193711828313317485202197186933271257826910640545793302266722741946142971022445005752172123599503467165086310711521104939099992378495770378909507808950821301812326807375128697399164039389555001722344245382083326240700826723370558719149885320739880428879281577782079451620662797083290259668190318276575371728218079629602526354365318995354991718640349842104920630836614314046468839098867537668611889769090957782998654023841540291013162957723944813740216916499158614130757296592283990678323235021652334311595271205380427655246802039843683646975820968530096228101900639240880865081837348966915742207353459860295831770757810689863560447675223629426989887261170840089578650832358519494695630125717578465017110127173904751791908481335308032444936411308019186050901471372004706155560760416873072997184244479052138501195363269274347038660896728222802896939159981006774831028077197444588775364586789028143140066327606474079954917563536172692976778318397380975585989868275520720225617830378256300153210373356253954838571163685899567656091402721811028907505307803379519530033208430166545372271259147766667793294184714463221334668253440930890558350210478595521241316373559515762540740149181599715950681281024647904485685642674324925339466771306789289569277925054266653286637183604729367789628010726966166849686387619926952019664461449612577808374846828096969214706711827598404044053790849256815787121547918696938685386557184097991279712360586542519295944446133534078779316835383339879889180973515417476402682849870014978947708534968103214226772937785149293965404037788663067613283272056869705775084068435096825275169350801037573821638485164321241486243992889566503927878551693600892176526940849449943550244885678422886931197076680087747123655322114711602808160650123791595767215975996946613636331870962359109847200225906871917417885477465601258079074985482688711550060314918457799817931919782201759181792376476698462406245420827491610657007760343218928337138106740733628366377722569754405158998892474859246813230571140483344114904243367277382691455150336313996106556355671283295978935212430345312542996585643019835556175112791054354390915409426657752837702371650806498489527555577021087978887838845804660893413830873459494777977933022522407072024816642862563771324983455071295285235002776217181955502587248170996035802632195795646923502697947074561820535015600865100936212448774801510141746732446718436265603851569103068934624161355292254020421499847993070071060942941891285873870477417836469015519344212382793908979437168139965781393292373839100837593882115974641819688033654269300730990399583213793173716102237052475407093271865741626825723053652359839307597271751541073686638062680746996689266255127221040376731609608417570340299395202354696487566171385349405357470763302672318552932876945122566237886656238583046479314622917322857338663518030073895767227656935660769967366679452855127284899059523978433972706857752101721141448002906913575446751076713309119153313487511540852078521361710824482519715557214671506085568625044761174283588411942430665892599405522174508643987869168336815103858823142036712480339879086182919288762436098249042829331128087223243488195552026964353399704625173293407469713941349726228214308902727218873113812963389556865368858964828688230578475679909089432145882230402542162895318318662935531811178735712600414174355219987454463360205589533143427848918735305069923829761139281081289825220891998638978603000019602599917010890833141712848776564603713447258417781950130633976112557473601372013739496414269894143332751770568433785644274445411496261682345436546089326078053812473579829029085708858695050968314866656855497644251120634771275132849371899876283929484531831534620676165929364820945058940763977546199696483109208516513977891110136167367408832062919083753814394686497906462867079910352874830113189485547607730300117001916367690678646682095603830391784217879970066230731595344136199280751147657298669031781778507771082959309987858689141795839851585196434407138516914939105069304484067771853702740165413884291628730625157797732687196358961640877451455682710937250331944808472774095843302376993626145695913875283262255320719569195889092383641762823497360152654377623174422489234860253274209103412799272486767189101947519317428076618524064887689164786151685174977934396794718771314294324670139525830541491510565621830052528344914118950357311433614191074340872145468331364987726004541974105241739873366042865460819693885155842954430805811790440134796535190877159718541983635890624987612272460891857447557055132995918074932408307378607824620641894400942390885616270560142556770590924372851819761471935706711891896940383332241517953600821784865691663073167555787929900472099953212986588962253171135033003700003851329756892116384241533429172559762063737975445131950552933168415413116797623865428480866258716826956673479013699897028442129437842735807131187430648602218594756665185639829812504418124602157772602742789023330542209367958266585726980695382929590077670580843780361493441810981456140484207016708195563900736493064871012469943512479959732321499325197996365006216201374000253707855011403671252275975486961821159049020954971033480842183874057990268827948862493229923384459436524300579691565892037435845299542298291573144724031525586474892859981691932125152594471172240165153405824500169317580372779661543923557202837120412455924034477243580651799799413856524027152694760941067430506763908679016721412748328615444117978648110584855980652616644344053115698151425148621312901480176251046589105340288848507619156470261375085207444127550779046720206979472213887042348272404156158838086214265568645373344324063808015189580224496203799999838207274732445842445992195214968098098566254593056255200622686227008519378630619286363704847595215492960690583639673491964124649329276418095303484629642609078465663975094990558167225888760138841616845525332635030130333422231751458166911097537209218162645723994073825470578190025942936071438859409162287944675300821293816128947416516551835587681406913586955108187157944718515023712424913940338658876488904809158494993271931404294272345170938852547443574286206246273942331613886517441077911435854077115137813198949318844008961521587326423046059048011507584569412169651250876106879744929964927796945196380038249073995279742721758153407555699923931789731819153621557208443405698331083437137860981285095357842444386570663759060323823742739240897659097119399336060525857824977723041400816268708671945924784463806149377761175757148912781295914114588328429704809207063633166704187902977119783437280463746968068815268059186273319656186973537045858886600616442405306405237166320056689663414153422975865246263669664105813417198933831124695243201529263981373167897246753356835669867606575642273853037509551909821824245576885964709468149875044928589871337456598508369494853475406935646091455950519470940319275089930880899208143093186937914073838126448261585085918476170194732550414790330123051877953958357557038339149294888589214697853262457665376707219876019754648205562310785455613837653089947716658530421921283493842918441040645282614098667279858006492204125514923961831270126687271758644123392912146339708256316051048239324571267194801848354029276831520423303158252313014066152620439130245365545487568477243616037086575671687916235513732101846666113128581894021130609835305201631229054677159234665483347595755282910568081336739247157922461672899717317554259595208649581213039674848436574570279864863830950301118440429469550972574558129337393572878813151648965860201637737244558151857504310430941747014000169708257725691792477640836411077919817669729863020152927329285512848597971365502595329013247531456113533786565045039908092903737901054136662513005862432533818677930528717548813116231571333325766359254929891795331712634367928339924012759696748647946800504158386046419774465891160492710510839706526988851284746212715799230411399386532592825305280085003909087901747604913417955337146318864570366203996653403724928809395712158659420823106661964285691424997317201244524788751377621218622727879033906740903682807084295665300266988753107273902737299698754516177191976534455681610712247108694089821949991826678487260541637008714306642899681122552098844327918623988008242887986971285505651342687465221595771746011319080165117682933917134567923638518274363085422581591877162871038882979310261623106375546133743780496016483831096820408650108435225578869259396735972492182876876776579892571662564629247939564298162184486206831789517311833525787573388523562953812223979531737045400198294385250056555690124111344603908243214328233549956726743059589363270927508474095313535853584494503488941574185046689682572925453861545191580157161703831901265453512336219736376352045630263516568433495128052022798594711155041042067583101834150029977568308606256698984818378143375373078128502215266334373552733463231548887778390747944080758616285700242145049173229991497647734056571230960879577610091631670816306761778132321006942864019730045263288917618200176449501013825271795684447900424833760590349894681586135907309064600060483816795707478273945767491561179014880153198010557340778831657214800129721921720054737922696801495480846911652357646036877543953849315438124276682701798204424710486182412310792321155549902574993979830823473647726428366516605013544135675908932548754410930216962446557148456723537275776652376616811655040885059448407765788526967731363714614850896666993686262506655560111590088272972417101119056708013277651245114324839145777615472642972654614618852246280740997888835809376062539852113160687761198681218254635188453326357260247124336143224384371426763750129895220683600415686105404331389426701486896965253553729123161866963785268488555025687211026691588335785167304321410241830931201679713318335432224898228805741664845236626878840791939010561857615295019008065227026838965304828116512058362143194926013445834255917200868514916557807419175199372461238986039526017312198007359462533760852199264540044588429256363906428648673993040179511651379251269468614242080884849614938644615175557374821887655376859425433716660077610003244974065762238754068855367669684381911546932570049964638509659345562988476635804276963074785078769219171851596407031847343534776800060613840144129430988784721624020195088301732919522610359083566775550086336657958608400386106415910037991528603735671701375552996203714864332615486363674660451737829929000272330944873905519903361975069270657888533772988527722186940027721740817700403374368583895175635057124471533628870630755839791420424134735042619599947409789459249647436866505354711070260357510574245251049711423449240588052202285752984826046133935812811481433422134049443048289228795231057042334805034109899439293413518832626076690826111255325589377353467206226715993788994705239211657889325854586907826629482776385114763715883835238142162683136953539372845508135798114138815394752030112556811221900203194013234214956787285922110569189065323246787815763420385757330806300360257805165307998289889155516538011625416379808437240485654990719261446588263013656188295246773907455175293022685104458721775909812842181089875312900209479057699146183934072733502665957025219383510742119422287653468395107714418875227536283725801341769279722644746035305096930163128996057540904333603837868523036963260047827259257919630433272519194383975746548514431044658091835462759602005867577001905448040717929865742286028002869002719707061198190263028665648276386799543460081599044443091279392307582852031720458496043493238917487899402851392315167122996764100403404202138829436608493230511890579987861124478297021294781133638322804926425927707293804298316236080030436688974206418343763148176532200116968031911125891988060026694960877860388431950321374696635227682552232303820310257487574937824705513716402356705835898501212291399996158104129324094265661991706993696794499166380364955560517446014839589536829950182247175047723613242524683856564216614056246854467489410066248584537646253662356893099232406494193607536261151053100366212002171712122807471103185700932840433027750969090094027773332553200852996011180353757304592037773774563131547190193234790128439629129426172286579504271233765698604513878536049626437425428427753406855737932046724953012677679325433787160595129533917005864219406238244259462595820937593276106813868347976813013804287622422869322057943630488353870914394286024764920023824990857640250769903447780133609376814130963126700239444864101676830582616185915534352781279691442849947629533658486454811164580630575936267786613991046008596807620848021905953335303720766914618337066047507605665972145253832159234884674744682440295438042149987300573895247561604610337024976704325844367235487125522270457953088950354638975342493512217587383100350516217696303967630157876765157786944969183219033018348339315249007776682597136572733365330582145716680860428803755211434250616943010118753012217831933889034705341933489181438938867702124990242837135385220425151945612065577519894136832649903558033708323841027358328570772538734038401672844289174589392562240250529786570614478157408975773848655229002821044962699575032600992513994084732103381656362760394595536066051362287043985300698757954450578885556590584494953745132677411988328874321375602654879957148143490875375449362394261838213957050046323583656736624139353868121314042866944341003358241848278713122146053286436477870228378088774242808834441670967673839802847677568247230020278466513673422657628212404404898141162201364015203970581565299803595374798387827637300708567430701472722027637392417059972486786828301631089274035464400986594193187386361833985026851880081576268000795022188455265775929464418982030094221052849484060055928483747276942766300594434716919994468996415070277180365897712271783619004019747133514048733150682315523062891106554974766745734056299692259241375999801244058765424324008280362929875205735590815840928941930351226624008003750970003349299496483623755334630103471794532765685384630207664027817050250423416156449848316257885684503415522577086932001510789410394666353742204976596363985250193483703123349256310766870211118454046080174899901315055753841964324516813477101400296165889297796044059629091612037899168088394840000019012868301653493915824982403452522936279200301681076005121876758238165955549464720836408712576349074739762912966335699381044836488012785524339844375980189812710487739016523654235459544720648307319045234367548507217161105099285843585532558921445936488633748998192591449079369227771097603165404312873993030751857929028080932458545145707430126356077846547213038002192184214024250116660678401281956843713009263329988875458360532245613454059305521064600096190309859921184051061077263188310425372022311814494415365091781951730565808549878033225835351749917520758932436481692275723903631810847099270245079795202382842344473939404502560047917603373674711029762762392332870050353279913763533751370035443871871902251036502256660581480802138075907365255459274535877749886716622559980639812469526839595524120295230015323920529129344108210787890625316952419447421609353725493727474049935050789993324557989817225693292817155716423616503299926614683187120709123967047799567590784361723002959535140721534562593729311532344681081156153301273064180716473032121335152522440829703092969278308527048564243150078046322408765444088599030292840637932775362109067163090606675334725782794876109980683296942375701378230437359285989559230288193738877535288427097731427415011120658402894126998318902513275601361774444845320324258660266232287135571701154998362198669768172713522982178710355074865925326989272378456086528526391275219181382253397234409718295427560045563371987307292048321958194828405355585827716337109222328353939635107776650495725143493651995137463322676864184507280655914192755150322809646247070522989527175821918802337117224915541088941018418738053494498125905915466250794376454342711068591312728373181431327557513802106713783103172188378656572115125942926735126209949387447087097515370537609480849313635186517602373927664432865327008611555543531328842269743729158767167195981728541680034490423442045290813146768474183818692958837330227471275209060309143714469364637349852005640334494004310349792938748798888748638679146917047166628052113523582913756679565274550667696818437667703683437797282336070363123992668574815419964111194111674679210492542118605921895506899121393216412942943556978127729369449528744315466214127041969168673764061584846658567126575050923942589976500444753083624670059260272268479684473929570274941388694117531459454587582987554982363445255783954173039760882952308063462040349217449380433339511053428076980507745598404631414404743995939016658910313141387646239695743027259632469285121722507904727788895346653660770945282345136164187957829529713572255842672207248920817145202068868094561286959151283294517020400538060113244928570164083008643393178650651984559167882541700160701287421590753064465326934861720245029528312255646027821011312293010494637749013442250341636921483443102527559441891340334801470973825990037319027729045435823863915124795050024271119332763286717897144758436841620910279883569844950874203648237757102414229347480283985854810433534836079478801969007466003310944537173811858022951460526352963246489659259885226069196224808227912528364544507857412703923550959500592441746592068465123816392161681722308391790972569422651279877483879603672741495152792987078099481315030718345993828620230783116861969016529763752288092935297352773623351639839115718954526301858698854009868574035565728561725574267728271026510342802644643999154459446197536260791332661506804840206085554192502773142547141169539146686901989898862272967467403119567535794690782146107322127913405430438275673436400692353388693567137016843420068167749901612866399052454862265356929655161287220905075936097848912935884391931293238219222298580848990253457516973871065895112167992681797155641632721107730928700771405049122292361237907962546117402755534381887967615195172464105175727010558113625930914653652518496174498986847515340721761737694742797017711180050090451549031272603792218623102717601370073191061053691373638961388156847903925879802486837013481134390759543792435836599255043699176397808134808285792024473797826251791655042424069436255573233435764977995633863518169658084308916355450097332974065156997388725060045684206801572229898404365053231401714370724522586807526189112913263045979114875580883496609488803507615201152810770514011877894747979475769284375186793313837388212255785092680255014905334272731142329245823539550701354758119182670717201830737649435034174748805138275419038733194702946327799122230111158857636431521606642038206026473716103594524501672828779670155535509648642359123143635791027568457752407176759153057068019239695291890211392264363045184236716984261395839753350064766626677769483630115494921756525971634128061475393063118864850462704970661421434742743134122441741329410507802752129326582235345256630620223857789120065484958565177260547616635391903543056443719204337451943886233745499392518345686469264487509920729941475255352138563999863165597880185229982656600981775285355276293552776327569102970158994405080958478664770213019376491638131328430563241695773990282426349288412969545802062728675898602310630155870612010035579130855124848950927542038233376709087906329811657217114805429262166087267932820376222601880981917289647007007885431443288932359230566632469244986661336281719708441296645100319990824732771924235490667707103634126717814932196781432911842038195392071142621157272244978995305921612547356668447793466018717498530497946337882994307072721179764577972561534798331240866351219243712620054316813978446868853861608569874864129474042282407640493818744096705611939561608579400325931378115390010720005011774674193996313178665878891454430769054051324248318972927695650448158836817073045311188064376360519020984707336645772562327068830568388053218551585919261676089186725614458870091612269440616945436462537859929659063025988728962032684414428076124302054458553436242333545163393456455758350145434844932333869112900779973831929613951745600094943866547757603073313397122561069885804253455887298802694462252221309481161631173069697898978975072526035103780517449877190822065062127093662409638024037314687479049469093328789813228768020391066084005422674859530903924087345004296899759232619764935811747541109914684855238161048558496702618459432721640365832321322218062298155285147059164684405032493334118753161542234510636929022582459002768356999894049343272814387350797731588878938997523614437430041384020999125911107932646119269031278105342923562239180764196686028096377931177327456232500572336056106403057698079315825077305663513818044352560922595365811517619344623137890619197750601030471864571242194607511520898250173225223282765233554410254239046657449584962629283858751421940998292746113267157132942027035406010099743177958267220230352276576396622877973351325389738489077417505676985984466528141861601828305553873996020752183351853640656652483991886238819910136600417848192171912395359651588670525030599310663909446604929484502615169400305179106251218429021272051130451912449927183842117994380580228689380860940883326999129244965762617052383859858487355187408687737099188885334497819025213699272389308488457306642830155243659993691818567436836565678310381954421624185428413216287658134783424476077786313499610733419451513698607665848801223290758682000117887063621781013810138215901619215803707266469989177972273757366852884524999202074705980422614609565122968270130826667449060924960702474776950613767602655089693411383594694447374455007997346372172606530113047657474216408169348501659227975715686282262768778646583428023276249173248799295550862557624988502065309514121385485476802914941208467211054986588194698461782278479799928505801360574601822465472091518435505222286334432779576844727470677977424054638302879499848189256118019746021980684012354079333751467602033596814345866330137211773317923046327648342303347801032377911133201022633139597926111199324210172506300996311671684729247898438324150502831977725660621239554417454786273572883692791407044564971381870507482410596387087123746364193860450609899888504422522420590496389202491309391689266778527084117147077502341089456584915133585769407899056820214680644026253541014848145826101099756418811124812026574824318728191796640919313605316479671998378232603252325002089844423420846881643227143130966125078659030793293742941138752448742956263940880005549832173945948478358433029028047612780139758804471740095582842532884265245517111617140883214809132297540120960811493585498947214498423765112961797577102653716534396256913127748960856588968289447201198843373259858258166014004472130188144822629911322530520915963769742372803746948065691803447180481865127900794795514831774355158282724694676917895236626021954907268397172776693838782853285506194750740075003006951738209265823923766022532279860131675374049060984422183859115656672916517926681732370174295099778023452199455594490836999728470942479060326373411678459613718580326733640119827576757491718492049018437154668768898822713091650137852276411679091534989739112030565863536241913530034022425474189271315821185293798555217705368060691135557965937159015035402969919308926055204672910866061003397855847768206418923071325679808265919591191116847470608269662392774871964734435908384440325784799791329323795392534406458091088298046427492723137934854401089648379433363544428693826113682924294433453858347229818741213408782311585020313553415091527993729001951700110200384847877513777644287682284537044198726054211948930026149577433060539556782999437223563525243513008836512836207713079603590878846901692623539156263352854275838633344274690398055943398921825173358223287738216112548889997784952730422040759944682879527273528620718939583733316895596217238277935155154912516343040009422321097361924472119098660625692963004611984959723400789597614662805491497192708406092309890930483965953667920174906533359391089363826132012460404770968724723183652459260704803483419740069073472794375454159613671189257320651166639389674015493984824714596350777737643869914702071829171069367273469659549033226738451660381455033511212145720456347335546129195573981439802873660848074275545551593958950211645864269883390493709512527164888150895976884688650589134600988141021448451709880619932265986810570260295188089866705788254666738935012029023660259220380321635963052358556521057387048483330238324840464074035053751506795328097344513200139790991722286420063684270851499822711217971620245305643087083122724483610762717133398714879293467859004995592935268764784849960229637679122901343022879847585494353279151770734640512320352596351359483618199198600398241497475431219431214684288986313284039519878032724587183199736980704123487999834137342658978245586237304453028686363844946446071000824795533580103073575812682986295409012998649230283422426097181823464068311886967596499487626461876552290377202307327788281694177916842627055568064255509923599856897661860405371109309053084875464238519300244726154561071484196477282142092435181784825833274650669671835576693793524667990833394980083079442698623693874977025775384364363068036303595294348725537036439822501515944226497968703625133680896679125239072868846259744978541272216077907656413655099192341791924797080029983952750776497340242769535539743089458784411364302489778493840100105173738232636917576677881825824266761159067787692979032142316627076366092522011087499650172543746586243751143301271999927405878780035627907733488831635276662415303704399693737236046635269490332660099188425460209447539629048950654208466951283792053815565619790827242840748007256734233649714273579657870610318984674126306315456813787904717993474476019640002952650757858758763883412953423796767121842168468065887737871764244175177449308162565645155244100133052342917142569480907619252229876500645625806684107587192876758163835007309324091000555386732623839067513236642399211959604388233742892191116911443874382022604986737864680416683355213375077794427990023704151133830123664976612016331019995434546739757516441272366852951953476527628891493588691718122104554504303521680751421664280853108309861212363125647683659259422633445732707468824471073212975447126369230071042963459642225490138759358350272685735365423035612053218529608387494248692564207734167728238772744977955501566810177884872877401631899739061808454264402085952466734346817702241477403156823377845625189594656071966844340952360438123989854612344605320895796817048913890823185208067268346227781066891556400792560196373253710010975723857903794681881822343123150006946509419926940996037651522070404371841570200272461826571612584541256855063045867437701768766489688766964984862777509655082235817908794121806111680483653043740776291861732028768533954099749171013297315302787911234342505651222105427723408711237353648592173162828306049451063609925861922030933709706762324148573007939973425061812343634164436392605887793960265423547650610008727845708016454344253693112532332630850972938848171031516715883250739438818019835548262325658426708926705301425361234406250375760748722886715542266946794416215471327406560201710235018813533822404045637371281101390725673995017140347944670970242900355711417393785294258504714693563947639454041925713393163026510113775260814956131519004727264872659071484837358265425925992765285548609147851974438838365836052903336226918547853783859825103034730714980038159807728316301865666097814104965541624662996824049519966955037311609076049009206889731959680907288019079798720481544378550271840288200558602707577453252176525083079867508714485701970107161583226322663106282653098058041298556643841873526552919636876661992984742066993913433697344012067564587282142546103020113935301389625708772676094062321346841217207702451769700416339865662845942666084298779689135699145442191548408579383765872914918268920080763139910638278348928645579366032396768023260783608085958681860319814171397910449866800148110348953435384415477550262856059030771625357864079391763255304908360498317182736185720123636561715148727009336930976813025617300645005797983881403870548348484760855063985280476963563964842493116426452820077095903119496727431057807920502619034346747974429703573213446692660492092461146925168335529439280134858591240268067680335149771811699544476482599905487537797456933710144175692317929163139398475757533040381989075158174525805057967072217652039968926110459709301124723369143262275572290494104181644869957038999579553537121426917226059848555742758865277201102769243745086080997374355896731923088139225507433783504903644227871139530490120364312252393221451994648465208947472752024578523985202767011181670031320940364401256985691315609405630670268533403854658170683887098379038250086661833228823155195060388384081143275799793066689357219225966131602991210113908537790496776860982283028080618671874736771161898478547302365036043510608684037636398965439713377353622956458281390225727892557602483125361456397288642342162466663602605582773435326717929422285165064435577294627805304732583352497191737094632900324834234412852740193854630459214605552858803265664958332693866003335455067559754729404396919822613786561484052615107391166873733874720630902001016174892322616748128442777530316473594864532825470147333158739692715225646914480020005703718838913860436967316749521129180877430637556131424565665836195873321860462709472112943421218426884881672441632126831278979003618346035873342443936505342990088212141331569744291630969517636348765407330244812505050536113065412616544638195223556298601177960350909685298129705717113712218991920576205073821126679455899110226469570719235892499901828016608546649077322580445711849872858896831584083652400428797718616160779057989041385835430284276866328882908547422842552190985505801050244168430200316738511443320798087744506275043467390439098781451410016634122866065401615812643335353655893706106129874207595479709888101111452725263604604981702122335232337014399651636653568547273045453365860547836541678568051606089654078682327266321460626374174741623284079030433322515900736583713230856260330700210435317359209736537653985907811708381573633340379469908730099692382198532073473571634813174340646481190551939117953337301348546392709639775534804874770560283730961369223910896629957377691965691052163835252161143956109898939587542936064867385779642674782002277890918652101285800447757103530959023283141437680547857431644745420779656071115387410684721546322138682861491563957028041152721815999237844531808555754279222264864791105600578816761272814746451221920181945032935944922028820638626290663568962153269383522436709831158135978575923475477288558588427622997859600629329314975070647559473687567224117030962121577608455412786622059441759435749192988190674492249476147584584932135537592569877611379040028345770586445245161908888003100413126452368044069763955527524878484404655573882953718810153337165608293479014455495289613701796749462003309175868102001636370614186614117340074349375384854877537266291273726585644177299598733685452772661366517240266170896456527981569954102445362550542248019845603891213913413411003484881419442212668464962130987311555593555552375325764011374630322864693350227483631209046995419758158324494638465904308747357992194053883973111718954796726457714963078373476754091475756051064369984653564510022865420030871536781815254180734868212819844173492037520277265388317370667650854712171857332791754339764180969044554763391367595751553222569138342095699903248279954093637998819664952998973378365631925760448131280911673018876740836305180354237074175554171550250950269664384978260828795274247993598728413146629348137037488571262967954164439217773143721195635797675124936051504170288918022146005590854600928629495883365396039908289087863604904654595988556113351680990301378743637289244522384507422380063629069456946197194652546338145838196259431530896428499843266993199261270305461942732520352299178808222301451866207007368944813761804216514451471521960210339991224986319172888433481783217751283128762440222920390528411033580712066551327450322276101486392989659035127065649080075799228444638054566983881032293805560025661909018562189119071530592302851583176338010920769095750364813579233663375934829218475523324908305900009085599054715329283800309364420944857556506260449664888477838757603422657739763981642975976211223357904642752689655008212060558605544943314068692722414921546084106471570705876685881642875253832285468407911033033811845360061948455065539598926905694795990749430130479652958024674359547397296357798990370713553555354830686075069861546399507524562771850938825160061989748557658762678019092335814026064324296095788942968356017582693929238993354201333188227546705473395918479790853260171898111352350877734535432670134212024536237911045993975687210098025523326463166999417715603009258085872056300231596637166062067285887261673492157027066983128207396075434875214620482910552170181583713660809962150483598298036671885333018906968041179193724471193402027016424272610747471088853650475475694770434472052788410720466575308089923924209649923101578291070787051834997457721453675307746921222620256973152502746271513517305911781995883790950155322215615135672540493586707538033945155648381432228834650828618791731964581165997789013823943436698660841145191032904392685971440493674323671629812692657573493361113455904189551002177483756036351407482891645483766376542537453307420057757666442741088542449664138169274179861343707305121512578544138822248920746476247096789450561956837439693925550057400136375545736770746321521622784561500506982309539329424100476544378844126278154230938419155866621259386220228691093569514411933393445899486776649688420453019753582389799442344410586903657936282765742761342950634607886465688232999733865659290031572976103637467265337996065952620087612746557986929326621655519964449493709880168004567060841195194624154711795393492610499095801566421250605643771392753782600958015888724141587357621432590167539495948529128294284606340238084681280394907762675331736530806801914836928605271059314654854431288884527152971180761304296230035622591554892462445552409689746280663619468092790986165240156544370044573545434913944195220702245056774823498383616914858644508311859509388594722064943288920922006803831605051863861234540229264335688392951126189820094435855931442922675249348875553644285751996672672396812418686290839940835962534235530476168071203301900515713177977804499086742237897630069988314059070029559304905534671101757461126314827719066157882289500466319390555536377401606390737493775279553223699106914053002128869772008587017365819641450638615772482604625654487528575079395835209556293027436974201219077395897577662076376940933761869876856236856321302620388752066234221246512235897428152939304932897889534950526718923331518786611521807832358339276646194128910959495253480706850270696268749748173077802571357961980508730881040395553121502468126085016243238132605200016398068998028024459808828490444701884273633082038018890498983680255542989780308868321763005765446030446921197198426015427384595883357980449098506990626951407023464125299436961705219639252436866688287345038427075976170968459626864717993082082919337436487525437203105687272258779762955523622844801674033768594866475364389310101052222740398163776526883189443460279047918911285834495440423204093362866468747656406297228769253460072219627571517440264385905332703611152190979153647289870667375192542908437787280492335528716645297119844505664761592678542676358244060070081897821764616369399077770527998867913670315114775063152529052506913655168319664576740771571867645810299136273829454467720199632222728982738502661905474203623631464447716621177739675450298704259587606937571688892709997721141409751224827834052309008146364316031921706740409538118676325165889535360022285244459459708088619102885046158052400435091656127977382950630676506545745920947269491856705226879173561554701206888885982535702971278502310177340369072902423378068798146276904541810965094092190102128426048382666386806677597583448438384441451055927839212159317426303893038000451348220476478484475776740701262317926553137902898090956622467016639413130040880223910868438655656724017263984614680961168552372517099401208165376393415627154976895356130476464497329321102123877754286257837455083599943846902797765236207341217590971786487227858047628452694693580192328627338704497489120635913942051714966260761534734414967873185016518971552621449539432905526425964533820935663154542001918697217648511395386389146442641082273615652969665028610758401599863266865963307570779959103291855548725478424867409842906819529408409153989563828796202005256861962216160713818192865794102875081367337556761841557894545592985478937671204000530609050761421905339332779339334646193113138414314621244987934216008284105454713580456056681509128957748106094075499503646406372430709323650511565331457572373714394174415292301322722135706207994064778542206060203597986972629349435910215212728785827552144957880643736881454756804221047608664321468331279365628738024771105939987524346302822422065651446623666645869124293324787364035410618595803593570156189029942327506366614845811727563372502270570331517367430958157939763524196763112447767049156787072877501104958013478762635646943558708016672845214008006227853857158346738418153226787329787700446801763847244550870799079232160958022301532066784386285199752288265116118825945239129025286463908588064674898095961482248112110701165595792426271709549366230053217429266973625833262978315573741880129045401794333977081098474537967338808642088429801256655970519863921828828655595525520681860865113734099927267264451208501531349951761838612385167568027817202514146168320499992046896100265994714526284442613181701180464119816038056131152867134856025994277804999547186105432288568173526952720930899784673885738425156399799363094367341259228943285082072344994279974867421900206387187875079754060900638185523453284517283981599449188210152394659635416612846452419564465465719613608006872935527561931169560345088823170625169772289919272885756387565588613390202736961911001849078793097738376429207238554587990364873242010052622033502013629156642051635032791493051781143275545748219623011504354661175354704435080718519833255620979030903115724539493140139287314334329345263980767459790613093335949048038099903730687746564832347857075542406418325382887620508394049462631072106226664822736670469758644530778872101697398827961219276521510073528610609364861791786356926208321510648675179114676805345374024137787353181543381333342152303536466721476611870263556292707490357127102751194293048840071335637161398235391310729125366013576639648260426392556566714526104704494536878992873155184255980514828607320503018084176724021716959215689394940811063444926520052902866701831624723896858977517924360500918594106695675918394183134474394467969537179535487639166118890737557276298900642153980352214780737203069504992508203786365876883230768983180891909171940762619816308748962334189594245002485034240748122580671216772471360051153118887643447784029403900758630280355837538381893064254210635110966513123188769397493679044312921909394326072437405405300828848638283727306211293775337664771934718015156356904647746558002458966239183832807862787273455311508921719912981644885958856372925601196533701708299217571084765425853154410524948816060978098376445974967859105986303570826472010128928961572646055464109431786567497521509719853116232597843976878065398633998955385435491169670958528453241247503187837173049257492854383159406167151428569409796872053456104443728052229501885666344288786529541793346360403336499114872397187970231978601605121816551690776413526227325879573212740943287642169541395081261663887194351141737276828813678819797439012160565899281702682897508926151136233400318544826458850974270435795807864133175358766398057218047399438112597772000194018867074201126182076230380346799386761969867774573368297000008262675837335257508722047354089963703522352112429759196949907190912592048420441424749612849245225954063207438179602569313141669120448674070248445588308042437908317801850423047794128693668735768393893814785635034419043269405202459914698616538333993915936267794728780416902682237576504055450536594360786112468097704863598193883750359309143612016367159781277488836370023817637247591341982821641392452720877544805144940934860561519591283609380281077812532008208934432841087425608370482328783602472048202146328170635270748332903258964157975277159870015483124473474076626777789550995670767711455532335825504718973521539015420942683762641373462215422902019108460056988500027965725484665344041664229315776150764218564075210510599717692226866103555752461026425582127586589382255459649423505820697988902051041649854104096503440121893962173390565495182897455805322256669199819000884256874702127292402507543496362398085688581700409134083070813331822706505426478850155182606251904128930908927534402237338104735986176044596284636577256583557892302555285669512128117980773969183081751750002401916177412752186264152879970892527179275801318192051906798772102183473979295979400861720659718833993077901734118651998002321967002979392496028203778334054443892144536621505270723302525772002877258431148354796168099943303507030662723348109886341105233863298584549081085941941627126234915552859177816633161394815578219188256388506142947714200953127270460037672762117295273577117962420771061489278308650260442581867873124910196841507042208662549265568111034012553893741611409746171899969419428877462684394185835615543103967752794517122086600749306198090720711128175820793702233570004499254719995137867609790195175373241271208703961200201654444972337750772627853080609505354181969450202296311969838922436616642135158865546435143108264547450681504835394080242026957018472455908175515743232499811282350787730803018125165784070759282449843921156941488452472515325272754509950097481130085545030634908816422000739274491968314029980327930036868271802020359212184232794442575572612718121002714788282918101508758446457024886995598226355630469190509461588422418087090873170829640491265593089307922074224184234275232959051932121430629009679018327862785586402596370696591871321065347503819148937762636172359116458906133531294942320495584633700535072650569608323717066274810258311408511389717421277984738330986350626998073744113518307422266211697243205564722805423573011903731870639201329573588162561929525045895274804119565664704263113630258182952902241154234946045693935183513227332413308219489842481772847013392471614859568918302637273331374717821932707678920909862574635004163301160733141307801005028314984667705161934140054112371276610465247919563423179709967886579496880316485052128887374046603794087658370855828671406777924628618476757683320191295397202810986958908798051613666667746320727348747234528463196632146208609832004681824480016195419464960480580435949579156158534992144276036975322877444923211860509959908832700566264876526801199556632647097099599944161081905660477776263719029562547425220282105899299458437165390770095585991625706389693090261185759442399755593465649310421217845522530572754167547481036618616066254171921574998467502773490050839047745363971453749554003739694743426139319980316962084219177480647204674603508593284703528145381015233110627895649174784816568946752862483088495830696928960522568951781034593210344038434882450431343004372418977858380112827349109478025516208036695206119797532027112715022440411900294869430079448717136558050084396222688246335290370807992885185599119424506922395172914699069908146297043329432159716439099370907825954409842566680856465653167642198078291470945197000459233100693263244980314200857276883747643349606243925044114372463469775934907240202889155202166216843033412135251271147909643262180387590373133609881050960541689553956518493913249505092505478518424839582216615502520940475921713529007341755309356388029044970390678429422320290175551606057268110232155331922221439039183127146896297420577328364227190355774921116849367662079819720501592341063498543833899074925795790624882445222401050667284714859083491200071525540661984636907523148616299905472411530514237791493123094539212166030951355236161205267242271592126584639468647266575926552120286056607578799827939542270743200978943706577909982701750973383961020473913634015307497765269426160321880176636665827869097951173424775632503342898345708790291273242861498784387406225302349716127871255117009809187202824889894280557541057532119665726559148711206789221941007995700824839378344146623183074274150559286543274690224150373515467355477473496641905591043034055538866823215260076515132103138492581770156310793963767635848847611417457436455436694529399304677621884192765268405744785190103330266958674351114302385885432354288230347267555911117698265317518373724455353648360769377893629210399570258294700757334338887539705797303925862723121898869868206889510522422519961141196057827621606966989261958742805245168285598011732246220074534426464655387466366704065492697553378989917257379971103387548821156348757723905114969459303464732427302698367372656872254760455148827140696939474932794491101104803004305903580193534948623667888373915412088576117858257956884817504177951311403240403689817206652035753082924300824443119163257431072138385657652470129965070192170367561088714091859488653974685359958096633134470011790367260835058444120112379439181960903249537455972978777697588618953251705180476609360273210615754483683491759141872133632582477225708753446110028799454205139439300838237631739416632390246261341620686722955668385187472438363021442304842234318366509211541021619725055446169786917112889582790798817503360277404123035486865741773973993506301084157392404771539537603974840044630483136684624036108308184827712341351068172750145481461235097843090608678250542996903104775750168743816786541265812712732505188106038729527729881012400813813482971202473930239613356397904173557131413682997764413687566493113210301517372132529436402517603396573711183294088801585597765688678393441021007414320427032960073642013446704118808513862470626312567034711006065589115471664872155120946530896632160595570225628322574312242480498046579311016509859518749557832725248152544761546711777649989259449132725084351739530331279946991097870816614474157788465939393528459917322588025391159492446912279322005477134366457603704117009838519430261504035237632139400654597889827989493474006625359707204941797692773090396470568069662187834137538378228570597602034689468746469942576084516080429849621853604536772698303450735076414913787491212041390651865576786726207999941142655484287105901775367553518019082911927441356408938536772601951552098174354694009803771166556562380712704165649212238960656091323616173472581278285879988626122982653082200554897401048585572044561946017178772233896226781717498184347985963471936081656609317217341506696835672684265038728242961385802303085148990696881673858617482451674925817806134243769230884511415350951593212360449780198135416011023708163414122733402576752087171665528309532022131472928809258204842318081874962791340294807652335375037308610140269161717534653907334512805220769516136262016346258068641672074437915820648933160836482838281514488703986357443579064246661955400362927701345636337350381092186198111480986853277828987472561470704507963187999282515311565835451812750223883838150547865441260297554105474658261003161793906006406740986924368595238664803558792818524550354030449230754799575778350793512126581947881624101198310288493338191289262581001159731382508662825638818028772531228893608819884055565613697450642865093569914471045004956339191695400401012965487512868507998302730991753185288680354683322274869541737769493833601639399768944699088683209327791707622298652453619768579230968307726656173756479181065118802027937456873054779686547576467977505491849548427638520971896427555576608842917405219646510452177170787426117207515182879839169357643237177876358353203961262969124516317880478259730382385267836323674116007243252612020490938095240962780708867566197460715320544569398284697219601150644060339825566894670253792094424294014768734191130107932917650400572719045060260768288197741272866232340190455732631879637552897082425485540093340995923321003526162654111779188415316939118944726634457858968447256079553749370035927204516150135683727945961201159360244386746480918199030520221850307301493092418246305766103412006383746726512744402296073850535221520009153731996521082769966612000444514572424151332530460932883654045438875373062152183811902294660534793018393668637033288841188755208221867442245826719920373296257934541342633143551533684041523846968801545957522992637100791290976066731848335635311016214407897139546527768628318495025279053034771708273059578658037820962495024725044506435971084932173560334403471503318828834357866658620407961811940480974533395650898218300176562383272382798125501212020076573903159564878604637153017693644416546934128863615609888025938970139264397854466146952461621882207891996243360483200190143927000705480092986425069786308559564531859677813329194121280275973838898823579449300956565399759173109435867246275441362494860642454435954145960500994423738839820983552944188927370425532681096137639692458563366726681012250144555267944952296303531451249966888676113260730269121758684458866738088578866999719157912222112261808824243965312347046199204036053923100511857095412660305843494782328565226452629370780979339824415160795631185435972585921773771336154827128871124631145680438087116625285895014797955924699194406048759942916116705339612775162057549030638742034811589547719897047484003550486068321340720265259376516928375482248816765741589004285126123212344030958119213660490365454055978560309108552057263388946360828069653242274981014791121718393948579716963726398219269556595206111096138671573670787014936572481096395188080332600688854669151313038424945891793255431880922625324219589209443735842397594342571338515677689527212525878520410182573151393855731864094467498536695778622328815106519733813156311712924984388135349852002461989773120626118238846351209133788669906721757146556082792937866340199225387041770263488040229390868557075368917378505769253220203511968557157711040861631744568807576429576793357836553604309237672610876901864490892469723793059455046184166736275467287207458035325579108459520523571569663678397570031769332993276269301875421067910176111040034857581393429092198929218125882335448059032879137136704305029057689243899338897180592269311639290609144709802646517487754379036061965282763087177042273273816321215667286029083039464047740650275603295607962280267383731235377982878072180818225905333086220960099641714089726666308857601355520412265704116401330864146918360161291139967442953542926056394882104381551890280365528554126236325918157136712255855272270607474366115260653951181503804558045493042460363928243772521680923853171312898930986251636902882438235924608906498088321310096506785210467126699565054183648650002545153881523133624098426359065945338206130765399357455653648653430611408511661512998238040300429351761211871956233180305459578006632715453370241489789610276348019810759565587992183313259014327804994569383339075738590250529771022191419090149760480947406650466072461394073972899582095307125943575340944071019050814938860655683164619912214437757049172819193902149406032853829320845678940692486625138174203209108224995053457047970892278843814658687025828430352225663472515060370004436699862408064936612983589513036904910503340559128940828252711589381942760769987948103268508256876537548642618988267795124996988671216967722253564491629435342417546493194324160391644537505888185500079175323770135812567982440749065135446537385935781138013246920130504477531254475880902705438764947064110095695891312372241124029488828421269119379665666244173608148827074100151285763338561319378911030918350184368050092454972826221159122940473557521131603030382608103423598904783480770435038066632544583123061063420806786397721471153898131805797659925594691241934546065380797719173562873339377190010772717286800025054223144091997287848260185774983587949477261264147478973141136800952908069353527274822291216694997191366344300657614967933938313739139100080794112026432649780622243694094929449185211336861708310443020208448296677518617641416698557400022681903588710046212774035373144537374177611296562679380005784516775123660451246952839045499272204997995712848826430901140645621430854460686738938948230802311178037153615360015609358039221092225315625524383842813588092760513846365709440293817385287272696253265525586581114811398910679931888445596579427294802924510732435124058788023158129808126897411092781462699943817904841560791160977701104245447793916331077804937043258005428582834520584319221244277547571783765761122559669432831327729472746868441737494497467488516267904604060639444117399856495426036071288103059738692744730932817403693994501043066872764831473464915739758227041872048222822851215160367898511564052842814393041280278533936885945101251811999678170859612090502946629161545715791383884840474251699548369940128611559012859631434353524560069210576319022302182030992866426016149733551376507410147132614404069492582571179414596007340766972204381384053497276153330175909935066703017973958375208259655945701223052389981465573419514581481644790183390614703103534759745732487285360101062808096782340119371884696094723557376538073391041739214350805900491540257155563889931862711529354924909055548983365842554551633584292245954908857196341517026195185847370554016753519721273192247710691950676115391282641598055183301137860295761079967749512503535824955367424797007358668125492409127431087061409459171039160040889306786637904396374337694841902071670844426520278566319840123715390122346237396590158772273384185627932437756752063721939580690848201682145966803226479979651770120985098413058717377850940591041108134443586589240460036393690643729308240056875730628342397337352920205215278672472711118376223154282356758809820118252112434272632342621009191416910887504004109139885090933398105747522173287787914068997482328293167130629099279569985429115180282943703385491491019195968442849931101934977371206014475674456834476553886275533124215125661763325972192108125372544945359893889246706627778739822717061530910745412852079152240187113743070995997615445075004614792010881136582931021910995954126086702983322950417727853319978400662165027242714524349571438844009900714333697607339798286874459809026049099474641103063238782784431618527161196549464882115966882436381928435376752348894316269909244648925834371558580842869533078915968239422878838852869389927118893264244664493786503167573388828729520747629835119831465610809105435168337704425089938474262123492520660180465282697503802802151375750899379310091916546039774937952293811941598465679074808207864665217234791576389825615404801753448238447203198122298498301264830821492642335525989456015331494727829307997075373946666060519606668823269820134855872532441656381580489442086814322952895542588086926269184471059465143172622875955800556773075210045650504964548340422746188112251876543320480971503522227832439072355157660893159869924265693381485078268435795397183031269523676825926122026523112005433685766383080347841273195309295103348676938749999397640068794197401038481295883929061423341404089348901431496919031741898226778273388856768074055235380322205934781713777917077525010630738928066805122581823031289948569289176636458469076122968932266437429139856489203093208444792731306557290008050036135994661412437182914851174874966080602395073534730751806579616943269413536646259187724662898453824774368977677952044472456472266021550409428194528003651542139039613816698523850759146972063307243276073973038527723773820638907144108625425264367904372262300309802502793333604273035885921925105508757176345645379407788778187703473932009638727918671190203937291118188915310366553707289343990479260692885970950793025864854668531170832767514880936230962613517085756047918669189139112754716512580062309293603388167240007696066443140218989659464369442082623257420375688042672066179021174124057601382100672497292716480129356561787364223267077682350026314686060971416019976373130605061469454606722471853206340744379295168911879562947474107837823314852811419114673224142637661907425053886881022432628357638809619253854643695500282100518432216210869755418497623454101443621706658976005193477153114930532635727239342844523669752530201276376261380769987607352819182998021339337120039545569960637486779917907357898277909901918499308175611437489591937780614747626064517398930671588528213696442780184642636564873662772424246743195777425817467110672241417237315845821674832286394852117786843051980083538273474962109710480911077400748480138408558678083123047416042185275693546728834900653790878438663984189906882774710130693783085308129577118227471090948903347362366854505553169168390148152006267744945417732498540855081356024962376885303246566993411804873997046093495850372566085094847607921100710318141440615468668171649687852181471417102302099863139616108252035866864225239455540398927499616215896863858132076133100021801925295249112198828770987665173244666243722197539306773525728363789349290908945897016118749435776290185811508602334095936196796261369674116709060197152281042769888959471469737915339268315144528747394529567518593446698498394161849826216524450081724849091294693063033781349088411638552440619721938550664156231209410631885201152091986440662321743102289459296381404674446697789879849395589971305556279573980534650494602024067109402419975875494006320482210107673226499995461754242989161760445506798074618856605512844223194653205676939554328979538134542030014413863615176706473046668457107926133816044415406104602414624472970554525468321722157498759500622048204523044630419567480112053387619177200836487053937887114295797442261344927038800152350306767791725207389129279034412753533976370285839100964791044095880252325081106016556331698488183376117864242231956974080749218831019763811444674417545979196175422880252960664125897087538206246390101762401025233911390495057042220748393968698286173620034414562999483450119603396033833861904902113832597850607457824063719707157401009675119052500209978301243351758616380478969914980330764578540441527671285157774252355141366288939266477747432360010851269007522136612623880794863571565073646418428912716375446496439330874165952002559859798457079035444419507817001299255200312388034161925162764054569892099997694255838296219307069417597275806196100941751502567700595205645108381575333486909767994270700337598395974030597522980823224300768460395240659033510483182630208755030957568465780386950316768143364230586445716255974526973943892251708894043025174147486973113284346153596227402489526938747765156241897739792276507594079227291063043377262487197403159840055399331896796361927017439141260001178278042160063828696624792308626931800401946438463427189695680559643555979943699896427493254883207913726786286609181805136553671088831307137253081830454696607515081509933454362014347031073228363160895013469134804630335364334578219084309747599263245856354312842870495390180189795149465276851764144128852588021606587408748536202794908937227171427032656380833712006798848172816467654562245938758993001352306810467238900586573184770244352574822929877041404109412949762483632883758807233311892032344949750814048077099296794453059375389922246223624807703469524640371893984261663664978417942985220693689317639681309789868777479320801712872628105339266154615635867261284447102098734330137418753538946498936708474747626730558639374622052308869399579326324418393590160492376473673392821977815361421854905022536469605612754821608266246207647448182361471592244574489049741524944861252592988375655107409536853765983486492751822166778666906208024167496036205017109872157995370501941837565934926099073619803785724523371763240453486749103670933168553395437218738151156812107288409582614060914707977598010565450044054884859365194339579683177721172807602573360654848869733153414321448517552329762830851965932965156031553905038383296083205933309716228588565681666886249695085903222551287609115336022556566719987401835124192793132918169952681364271077624496293158102264438809729750428825385018230707227888145259375200146104302185643430339996925070131419022519302458609652472543754238926093998637140271026071132573423297518170195445364824110997397255616815149316434797260686663127391860552068296911311806036230861406454231791076408794941694358390521049410307090331980021027378526729011663713262646121521946596477249457755753196098841299692743786926670170407072006914087284050270294483710217969243367414361000793529546451041454988700880739007040356157221141232731125956466572244860296943138515283058711968046264660577792959499091196635700429850785641675883802334379534041066887808736080042458559183987120449670800612193888244812508748543267954491720105777215609581554129109369098697568528570379666553347078419397046583063348198274226121564666965286828063531585742714588013858477837556916552437469669023251746935909692519847723662486449543558124306184704243961161810756346633214561057196128617110218237767087812477659442301238130122775457858640455748263970156955451572428218630721105284921830821256175190627185463628502032566905078552856320711308560635290040587824349231300572531887061476393578742047604824761330754721971104342999986804526344553893304881766589802171788872927028708597950224375922443057737596836743113217787061265335137562012988052469963782365397744832697851948882833483443210205371917304921407552666390645666256083368514264245676241480853094157941375467914137800999609149248311340779866805268110286193075040604923028488359054527209539208152192599135637470658579773992636317577811693577307095847241109277361328282982432169039086345397236894586167799627350772799898626377233246668124513628353558798002609421353231379598322421773659088173335009530323557990063163885898909685343409835934346557810145260851723775351192819627944293032152767184780220729931696880829361015151076045495623421117734974364684175433602591888188014196572293894137890161599856800678424888926741047762848302250900743455140743021911451426167655758866276321996907346242325027591333693230291828392062647043816164730796993588095575895467980634467715531364690688799397933520746443337609579125963798237584353503521279878425730692142674227034324576145566295298035100693853851437546567775192432335573987082879986256116074328328691813123938283452912161228385950368585978884352597171902048726642616525366035889978703400480581341993640527314466779707863887794116238457500497405394336226811054525994135386246883866781524818670713826845828147456732397686462040954354539363922319883953978150179769323381390091829022706886087363978127168726032455659424038445287816462089641653789547063371044365079485865268560177176849263024491555209287736931081070721571441527532978464374094032732073594030553683541506019459328210428780477963899374445869149535575047312000028127024282078075045656595409844191998833891379949071432413598409595938204555668359673358115292258191392681758820957992972687053307016305631333738052178599174921989055601019776352916303764308738464204687573860994347170995766258556090597233737847198329700028493530168476498321907585077919020617329970924862768139728200825934649828168457153517065834398815402658887258848215878194351235876982910275961984328136103298619120021210151037415880869219567414817907668592429190933136610967892571895284425331968522921415675861260459623975913504785813684847720175685336132042554006289130635555420863511903183091723420785979143288413906427907532892906010465042261923852572006067650450594773786450274602605277098281155597405777174029974053931154012038634165282101338406473136434213763947719228550401393133689506144835744536816246498458881581638592688988830947305935881005803848192830484749461274786947962825549829949825876873224399929128622832373416232179328272493251514729472845061310926699137722215677858212028458833980826527439559426459930048258071469525756707707881333427916856076775529365280676094856542284145803341538918749048012698791824515212985961284439961344715085246270339613797604361143466554085386287790004796137917530798919026562979874116559715335422674838018372641073406284283834552158786595909187842358848770107968811263418529641039145212427091774809053782762588837340092207679265183437004038306215689242088902672604217557941528237091496734217288584467901002977159505312941528141179016816550325477407543513109523710992116483966038590584568522422482137815024043609686591072010795605976778620880009741831731968937951306887592209678335460716375852115595453140544785344310215596732393864739619639145930240553290204706705825510854233910498199140393945480638045303355317361631711261475874034893166129090546174779625998499092272305611941389868716707971329629952958548282982054577752531650439711875037622801632942891547458423240455911152190988712022480327176954081258331589306969225976439116290630947353072864865189191132101496936254875666058478603023532934289056940266696593662047473690780387658813657119386808120898704699735008000327959594902122156200935728810492483113192524740400379124376464381667231572833921230838743236575808067460563388562795217635837151246287672001574951395878437994373139484564418523813180777544486354290492521022393214244640315131119721518018412207215057690265135128320904451686782356893961955567853730152248783861572875204845720805121918969050610623343340905786168966843441376724884590776011148477331679534184623741752357559739479271376254031371685496434333821759466988317280875296425905056525386149429546020333654020213379735469010855010737354486627028539209960265344276247874408817227538702069341815656974376834443544719850207479782534678923110828161646395815104225350406161747033067878118786242425624029294281076368436464018734525781579996639192301146896983514375932627804968100558728332781049589028244392478213354975115411746511821349813544160246481188184993307674679848618307186686828522032675354423014367502393872554002232327515604177918707436350688400456413638881310261865748374854838118109054214460839487949647989099017287202498037957094652617327113199153955294765034708706440655938678041726969802890373636384538378273803047228341012702355762111917818631718971246122778896732520948763230851663133607472104616489871934299419432015988077411035069955805715293740425462951216950907103594699196209114654600604154255327143598032095134813671629452900211131316112315245369656494412904636958490440712467613612383501734183148221116564371885436432576843247000052262806577510429048677772989325042380517031603456713819824616839917091378717788753131124843372906784885438696468582185438606612757529401518843064274030731564510254251274192481299131376938297705398940793693603593067803061222640863284222485395104069241679651405486854400552528541280836503421863291909170156381719607622080796229174597085577445788827263739723978177015275459639202275606592338729266127183224490433768740358280834697838089238484553968723566130933593152331167982431878725850024391532574302625186471895337242986490654792377521263145801319671530200005981054837834579490321780050639050670705877910136474970605910634732903544470895557010389806380464244503242942073442711481358694498143138671030368404597847180009986180584130896577322877704732270806500462406262668576849344652556150371384301248273681830312674851461052564867106478160997798299672917704339451528655393734053667129754948958324422396151751725261145669098535085680018751244012487422546662473597890428350052740125284358213523694613820467012036971786860982593850294309847598320454368885949858854268152336630162194325449684633755710336498008953548663016786646476649879170539448650862352182137910367735759821495553526254507650435217613358949969089432891506273560473952238352760322676689220492126302020211574048581762554471389082509889048579468612687663063021243478025850905485424469510962041714638618626186129589264282951747793272024885879949717799957524379778403833265722522511154191452265800358814439250381686169790811678848245520753882774716072880282302149508149017044554546854754057801306947256616460608097395613368326017229410061538725835829829731568543613926597131995781017056925732503377404399698981301960855095977663995929990309916061093334093225877309416260602551686260096906488630559871419511910560970918933065658464303508065636666873464981386205047710777037060811707533235691757239631535069999261429469644776628170870272155140337974561652149553483298532936954648819452297846112686736552473723681034406208143272324691559886483855889995549965425453932598003688187097798358688272689088720839649406420700400941188733906310518824019542010129762017609312701788736235088245108034636730607482164873898277810581123058545398596703365959997190619351189052096374976763756357767725850612977193913833858546931487561618789542359933391195037184094812275858012125319418974371470270000024014358582968763482470536207133664884482510023267384124048586608020878393208175223266643261189620442247980120342574312517717841061244134453256484982167660815561596631461829881192721545224421831988213090640812971557118821597851660747314649373315393579007084922098016002557553719111543504545811541123879570372112055139003951942387471052336359392612951520854574964705823428285144927654185780475595007183577029613024609727088906526577660738087000680672855592919886507611618155923242498472495503575270008105055867694496437615366079395026604828693546142002574059759319292243244292117104976205534602187191522395826833744971680285703181708900693047287533341790151679877431276276600185755488694795714488965524854205070984734604083946098010469686484438986741251432814914376326878332091416286753985106991957701315880353427414241585056816616757654104645659149289692424545633146764327399392094313553550595985291134903124112704764071522463966725363835060523418831633923344990882578314048875622118307793641878039307133705159916139869968245946731264065996128391718336585845880505552442292921310947027967011436710990172533867224400347327268811810344793884548680274014835746325329085106812397686112480476647844067205043349445118955553120274817428307620073091135654690028372115910104331832019867302931752163256337775603992330632749005170592892977525743529567695979795362734950830248670703114685166637185049772553822998585634563048369226734537357602569209136061902210690599354797755896193535178231265124422488189824706793755912161247705782908040425355994945702132197404770521102886441265086661101680461917329651389332854300729456587040413337040059391078181948767223074058786466523186799760983219467192676372226947871914067638558782518443095714919413030436742101705966277054234858192618198828288812318592138321215408020327555468206823420213488955624537202333787228755510415743654782342312872177095385937054437340865631047991328566132530252915251556026409668205866689264315485745537226315699747672460872922216575152332244552893503655276738882968652198034869263654981090465311920046982774596935833004407255738632956763515580188502694978338474001693142955803213905588447803222485794282866579564613368651703283862840106046138945367369867222478988591079182890296118515835158710839228646923271049569918472429406117051912346579756813969223174721927299464864771577550173526150806801726535852707732819176199331554903011168436705319030774059097710207791221240030570968878372447211418653744115429946801656596265048548951429143829019534263477743246829177789408509383496985514972461766764044764785610732329147729861292995847120897837306060545289377023401144436662887979198480163225270111773342060025022029353120666656115291597803312798473399931247204646770955686081211423892920267786142593589653669994298209800509114512281212845578535852679479760843116161409988679809955801175112786361185298332326039012701169447034360894778993243108972022996853960927735074536089822981550474155978446040904268344965881555499455386038444076532955963611812100689766824254527800355110295795583100658986576291606387530488771279247514233517589727796944882664402541508665613234192091881023330866612728028430276942048735801416345851766485085343979044860742120377710694825037174480418133621593255558922448165966027703688247451076931398495632037854492027714504090009416252571731704656993150205257062227333418872365001122424618469610884131314461892840915470596030643220479220859457530341820641185917970520105357881734976392664095428866416388329572232242928333020063478342220479661446186941144011411642318767308236329201810020661355689520682033976255886734454934455708864276965289289698386679655526970743498412564643252651643856034734575764095885368152230982233286013475744366165165887498406981888168775971485523121153719885053804357693434736614738367516247003227274652237103300666631033952960078541943791252627931108669258352727089666245927425799258153480831533816545853871095644135738237070188578135959707140913985741474863501515853383086455472614694996520101675448544429016219240440612511305293425775596835260042829685948363939218143657247439353622072187711240144279171554959597710870397665800599505184114756010785268046160896072329493506385657674101787801747141385138304788695489984122701996488027347676007502243278162428820195122800965478005615381601744374901472297496619886278297993231668574981881208679112439312492842154407053981070498754702771400652158131962240539857005787092605271003495922977958075452009048569845855045254207109932255856163971813300690449135290622834295288030785941066350060335903554188568217076610412551617166351793144112236599843056569965093535068991086104830552551792429568845687220328874881827659195590545481423096996038241358931471460798217911879447872808610261212790621349419475848702793472915281643891483528977311785881809582757376217974666081314216242549723435245399621645779688836965649373409142228532880954951948008675754413102298229017513504957060536753452527128951357996380017044925369994473869395156735249357461220850857669530731829641523304828957736391566023501042788859072751950394566090508321592526688271998888297509956853954479765982690732042952870279463660315345404183296365746892058727899759360813757263270428036308244028400927732645564929855317596899319121239713950681090910468102929738932723754762695496393337568023477166509477417036166672767412182355306896379280650450568328048278607704732588939058402373568690197245150327349819915288864995327850562098152526268522925367629171232487648636454872271515176815317382582665185784094743244556984943709145233496671391432526919158790426866354064322227797946382696528233580395559033948949889489584778741301815300654634144444255421881645976727497318547267098943806919457961846082825930263220045142005830149048660724517921261107772677416255534521943179766007925445360287446448817777897863953967241152445269695790274818441561133479928448498810723905667101477415847483612888522624885960141642079624100906381515361857205181145859385839606752515405278861116995606866589165920463134919542618282543674032257209188164305136183448356169487614652932710584741170098385641831474361728747076211097874063364012970353142137617132049762246201994193583010969185607656253960656913196860965379660177831075874406035969041625865366681151545189271837092103964103478257270500996342410270848807726218479271395878224085898366564795808837042823486512828099171916778169567113644138598943114658224808210490961388678490970486724502465197726276039138518096272999285883742101889335907305848512355502564514985627445214288420374752224249266469142693453522783061251865034290650424567694826972132960182257684054518318634351435348298333471465639509782960327145522877699934211362553978875704400830521075919124133576218676280145338285140012144457434969773548365237037214581263488473344640109766014324137663052054153125437415869880477888819842376225556231794934938216660798258255827572791199130631516290541886602710656155372510912505165567174593645766377392546563405278175069974959958708121781486306327791003910797236724136058061394309552119631435869027287587542527072400056180647261602503621872511636342106845224839607902617167759996778521556411105651699397744845200782041964866794432929963336023253936260613270103598951965257552223522322774913287624664729181057663548399811273185345516384867582814903404409960033937868636168744084452536863075550592309322390108356697218305354240326409858002210317928560858838775530011153310211895185579378724770172097865879679781216033189978650416588488483764498687827244927345600865083397144373633860137040306078032545320454901307495981335927763661482961034674313539872242350442746483742521530317815450974941485408786958803279510790182610826160913365818824018424917669903887154921637904107258960681911344490962837166620340412635652682291188310870722215166666061431370906735685676659744143141511395740769379364777406844263292544624612093460053384887182784124908222335755346314608943342804527783633378422369540195734726014661604696461303798647753014215431331141146284210646591273112630736008407690211891842741742601790407967584543123413270877093998674641863319160561783004202939986525720832804846477301144341539003863827034730432383245262936050048517040861067512072147348521399734021361549353882354104854224886907918351589080074947195052810048609346796012818033928432397778600729154025963970720974770865400492487204325224198747414028290569641654633111139389921871013283830396670649791542524352749602953224675151959843620256867582938997274419064465209172860731593094229105058287631345315116862785827269295206123205431684936396188175051593369387753224694736677983564785662557059987218395081176028502729354416324686511719187157763890259201388571980964306314624807570201100692258233779315156707385141525182084665844625629438492822952054979130467670968910831656385367321706364024054518170396542734008976505499519219676719026050256020432304484664961954007456620510309264287648295096806013733449278574746824495937546848016057817547439833195092855404049772605158220349331965948767734629387483354109792692750285756507825473033576122315419198845228036029390930946324450669785794984983344271617132628885280377874662230853002747857598076783637748691726197509595608704095827315197460151698528399119180773143580608168944487634088420422152464132157146903075621891218155374080410018176431927246535546107810077401059869900772485512819665545448814238584123780809345890928547328071311022263998853893200408513606125497018805587808734843277486248380911962524111947408842416392087828360692869033392414346531030087000031704736743665079834652598841342820515355411974603827337065116356374603769839265543962265783116695716180417869664131794687976275964442421967427371622996981794924214118848679925508544479109335694936924935909634679760932118676104153452347695505589383958131783899060005930293950521592998380762116734889245777750958500622788865606845773502380290363664732630725997577180628658765984453152009830257184590766982596888998740220040898462845323398580563241518374931203460768063832391870441260495669440314536955191056017113023065989252233419887967680694029052199078770409282603952016069806143930515160391015781508531674456424586012065562864702400871279688866460514473812135714834728790815858648177720353242257676089457823122254612822716665638793528680031018490982484613814139667546051739220874335374523939435420959571795029593502719616353574486728707205937675636185760324146381384967605061121766889626886514197947193364344310319137587601574748286000140556478843851097607943429659334029486725257833932863467441595411850341245632981327357849183274857170600620921443212109955692067157039775535414090214122813664191723280542044214427047573270484618378474571987920834111658064469500073997628681356240947808587107254341678973735713385887583585043541686849979276364228143886227243476857979177938679246431624063239053630458147097862536813397881360811301370742413047302436784613836372575164392562074218004957817553229581400032734870663668225478675750842044951277467901597890828710988875480462509158073183954119008012804689787292795078392047679177312338634114339363275749685928094109727588194493424376365899814283673144792803272783761195119229207804510486988107376421775169323963745243038141612324877844798064799242467955686100015082192608485621547618204054730501976193210279654722168163670882583012827641129091689911983070187881056518518918462264579194888454788204949152833939541130075180988669233093026421661226401271026887234945876167998201107335853773035531851700978197579820557808389482460341827634791682292490838599722768085972927426662886740936999198864690466434876332919462624956620499795425405811129072608638589744691036296848906529779432463667255622491824419310573107831635257064869165715493194431164096032853326606696408151008292317366276208894666846018862257426772358832904036636399028979702198096646848238460836211444708508773849682549947546941590648239244924016085380246796697495177821584653668501241238777104342601894393343284592293122877672407631289889217819320281075871443194733502553144394233025872360964316408936162986441386748663058251107912926897754315651021612188674067518820887648378901423113011687533309023815709252939816682079040144374515649053207436606177411357126312846551471352038744177808623597281381125919502501992989175796377677591886671244540374861348956722389163061063753685583417944665559591746579436167316842937272159089280649733414555132408404164134081116035785016919753459823291681721617702214725052248095688157440518467167958603309860421162166282906045764663105526489536913512293581255980542360566033787362493186907747705476968845633676198690613606810513021787348195154538897971451573748153015551485634962333265521164202984553850748761107508453486010554722189665101876950055542011466713067188593983091977233496334674073842930497114333138134310470735062876987469376707709658226182208813909227446877689396748851047295158424175207614867980610317650436146637345617246325499000906815693665741988441530400134200608005365480107370096314025571703357608730506653236533501528380119119772306844612086347188506086444901080382242650325717800906142056423287173024986573745736498997789840886326567583861144796690258223108482208843891533537159119960638543273443662340364317858858846376389793555229557564009271905203926397773185404828103535687452302218100351616838391964235620676150597589231605504462565858674178444804966442059951798379961986513980303190854567280406797909905857781272270325871958183270448082915076592724627412310265719176313597283749711134236654532348144235773274297721853295499849597653114333872647922037392779914199392855963816756885867246099601150562630574236711776524391855933258744914761503585258980586282952265162383353488570273978066855816150998062765626615635556272815412754477819969237560510880529348395509426223300700705961000406252823906820359073642920122085540866096869496273034483369573656145835966756445462732985566149942290956206762663578515334542791820320062023239488025407681911780752857290416753328573434300680037622570726762067345461808383948162608891977604977795178417407695504906631929131462259117540938901482277563149406861600505803084720878932134905977506200646936505942714922973223963109074778236485360769610437787102844358224536771727087908638668354678850763807634803529835345225297839869657484775266832873972715031314750170620371152436912235503468737582722526070712691436296444400810162577003849851110407940729550251955309237941079155993901049165921168907288552239305302582193138797473791910125426835713870801561561349749446408470978028455407216546100269871639502154469679570448993533514765621607267416140838284180092599930253300826103750080713077782961877555922425567809244350599679530903366993565197798151138732658685053958758652233940048469204713877200203827476732119300641585714744580531072528513290227990372593475679296788619458241364484103243981318697536986853958819247092760974670783703704054659142663949297691186187390538146302418153729821130344714319870324947975383952745832318101359587130791881387234917219908279945351464863935804481093978274589040287746805314391407380497115225940757690048125330513412682907957820991486336079479617533911862295609088002112664656609672404911451352067060746163306772657639243496865598999878369601042179812368042711991663716191215995723560287738772506617238493714924445697314275104320793821746270384159036097453427884871429088645017011683135907014287271685012087408782635247633762115461463865888220782947707255394138901105466869034466565956730769665842672276971573562302625778327530661301152387843529400068827595439492019298065279358134400571925019613409286635059096450469500860389909346412815969738674060943094020731589275800893272109948412478319416832922276368037894548359371572635078045529404151404653486317685296273343984840443403356419974486262766086526331952076396525814077853248948944225131678213916287063129758221402521719455829304558581458901575968034543865966625729860156392622828116842156538566522192475948168015113006021216882346562145010359362155143043009075443522370768342936204848643649225532283517607385504661150059112781383620445343040682283279118893107222715602212290847684719821111253681462800570510218587223280030262031138238158971551284100576365127918670709161923370391968178818714870544947820558591589185831886272287717529125885930528998575844464661674132290933215618773283712270402243387931195219589867549999913602009400985373825935259568890493736742481638341975371263933144841661061135048933995768699239080519817754292074728058297250907873473721364370951706999002702163153902499710135421792558070072082015381700108769451561835422747650459830169530619748482584737156982748079552970813110664437217225871975485981266419774353170887168534391095330093148182720887739050426912615625954339760949031947820733111235327447484855495572773218354994981751920968343055097531308193419993300053499023464493604058803352345200380921488219914964976349250463669065942692055447063352325328741523479853044531621748353434958256013809936350325298695271735936029802993788668331703334096631054791014162072752088890981348830527459824793369061314188435847433485716651203138882966523415020677650884963589684916649344553817486733396446387647102898463952168971937368867617344252395182202226422734414700522282363267892942535189792840215485757203652110134412349657697918503546448129782394042415088821012394430021288072938149584076635265313856842461598120293138869431770152371899153938653746620601223909148764656922505093397664033705103425261359628733493384123142133531450868546023354745589008724873678771308693029989898776132929285882812742142571773421618885036726938523170872629956083588532360634162236351451188260073590095128244951178750200707362101303101221324245603275181851182864588409090733083086670986934891592322912330284075591270935956738276753018772380070482733896558807713696073946046594625234159746071048914636978170411864967152094000804782355087727102046243701797509444177711319984698683156021515019116393968529154960300563164344361730296125570547785108976632706998911266256399315478490202640058019672413248464708403237004898222122321659097554291929988742300804592322943075112525684723865933459192411867660217187016504213994436718274351315176612076577310337385849552010911428984885268195440065769446973193078290048350396623362183446598348017130109264682049366323115417378844889867477419796944482929494037617904379970498404619254250740190736361763178121752947734108579494361632035130774312168278504220027098342503447951808919197042235956576353707426934901820737048949805239316805306391137046690493771754573955766761314981126649611025777926192514784907293712669684000643911665773006439018770731435521297474021369033451178254659377099643254627830206295277860586133061682069005236795065314358486557198352510829894484652883388921982398516106005528093118983623101472424693753776763633624746132712793532931125644984666238775897457583177818714456173351412125448249627912928717293395673940931623135555316749990492370337566438312157072849924610079530195060917728933188242229338080996792491859039513531120444069239083834675366992249817817429063878986884408071914347466288515913887435835433923394582767771360514874370777615709827106333409788875003185455968765629778479564781383990637091154152247590728025066381205842421180916784003513284932887352200940794806625363660445722252690589146061901994399746595565915453431702307739146079382505401704399274953016394490357896961445322106262146774849777908953140374431333616899197943491570150801028079087381664614992164864637460573711261858662411957885789427599910511926396584485841572041039029775358872168913570744835753614394029605854299392590495070334240797865619883126737627978586331954775512625433780909099395698172074376919362025139022927824872846600030404034606343706015393147568885189709366210938230709435734466531797932810407011333323062413581997488655155960700558866543621914378799886538054095763481481732160858325456093202381563555660360189181243043815091731318584950601645387398418469349004621617459851182997059652958358763288194951710061673635616796440153924199332131421375159722367910567855338858279742820098922437768186963930842137970784191256917725995701032643551388797144618178215233564835114742824437810997089175569873443261916459541797895371701887161155935661165918066022164315428414570258321595626041076136939441110799441448032884312188578809656517593836488811462421413338494590236690408088777361598710117103130273460107222058151177529421832055120867095668578119015428963485519246908484139561101980536739665559243439122043124085797263472372094344287495417452329769466399336817294581789643870498086246297425859408595771325852104424753934945937270259447677620892937670344183890151783717253909975496352055196697249706549827661076558795693608616434656493210393592210226687141105298090523018885176877447333474766459016093255501124265755335034819883220465317126903086056789098660478794112481864560896191402475791511944554641814371042079932183487164636528540172126517873660568124657279677800130449134393802465424803445788477752934571762232119057145885088076313891413403684851789478987984552555828153164370867198573291336929972808620891508758254767892441808290907569116463158298254120947176774645192577851444387750691186121111902526787094540216180409534589777936710041094654817137597052495712214753911678350778723467775226797808359932784681722203617992600909964580496320818370652264704812441159389353731966408875352450362988285879040402120290851600172087988544872991013478930358247263409909583000567970278777570165720945264785049189849185783891093641745708934657372484106043869560893694332916381185583018497856925107206763823470973472274278281925835918917487752353493533182242014963052946037568901779465496261076200475181439581694325362477659375394699225990178575701100895507222830855023817652002899278781441462351757764524109623690371985560559041287720536036358276496610050356183161941675278374176549725587896574043979600422141214249239301546519121798084099834915123699958797098218290779184937118058323961839218382652056053874144942961678735957264639557297516402358240978027772690514036699049953990206733938368736648903807880932843487052671674954083589007673944256721324605655190238108597695581957708317656013968083052973221971700226651201202888576805534093752729671264179726580797185811770559818696306027354436357376360530782403329549496690093815361180567360728104754097644522704070791242872366318673648964478047143577275842751507850438967278751017463345551148575176195751903878821544824018883873430450282417033756668108253070819657945118537970155141257491064149446879227717102754310386067303724697208999540415157649806397436165369995715010552102434232054274389037632373462789152678080116337411190068280349857585586212234419381470563537245034851486929259631826845004493949425401366996495450417903591109708970876547252272904888024622334551746954066705875333712253261844312505769424720324953263462546819451318004458864171222775697024989588997795454273086908329842405007790266729016725137194804220452234442465199182166393146371283897465284924901918800801286447784760463209727819584417180106765492968516490861712238257231338807160152274089555209817877261593126929504820264173321484419648997524143829670675909332561220485974117374357094665203083796935742815869173727999353140242586989995231855794211489157966544263027684360823219758099925124140386205747179282420984649014341212793297017295500637575030756704691607544221273245694890386892307570646431248468866194723777915497877590251956686063042869964059394631219988205102444759359922899335552615058380826474640991545631867689990722715833915744924440893653713098651924286927527859205287264045443835121672182950749779364778523324948617981997999475088800235326501311780045898443084581907039918350644713861278030601994457646242355482805739029678386789791894070902074768328641572944218021801022712918865016973576213793740260672848401872976760443412062158109060075560222576974991475289466185150968924516923005938162038518795350086751229520080561406608074627649068368254659105962817281077794477891865118179577004369104389355358444408288471410923409441942405416552341150536550348218544063557302695210316476132064563359748874479540062361604028014563065118049392513635416677927653143898769508698591819447024654163875228482959512414669700452511535479421821943999562337043654679925556347467871044645318463447600876428327278996744670221085305300459041964679343551257084202832757778351729178813676115113412688648364977347567760857944209596879186944827239405439696064916511459665526682697120431137524991407047737707592555865388959515241313541346587243055717998149401213174726992115367398080213202317950790049989652443671735766179650888614728966205525340430281038045584358552499322179887847010859598054180025091936517568996307116129791146948471527892215490355458323162476413680064195940908772104685131329782170140617006205555980255001450340653786589932571289597830024824861668515317300937803081003471849010756031762910800561109223863453209687178772539435135929136830150794453947468625643796134325075180703552465643102811326943673195058329840941447418393642001278208298392887538358608408013334892706272414330747232147516420070646872638072489217739077799764627364665105808732006933754876493711384087104817995530172121923246123234128465247251165159972090495685455053608392597494198171253518036480046098535742957303750320130061730258440362681464487878490058916055037837249067804501175552764316895748934780113119468680991892569032027067593685385204417391645605677181610001748751918636476897188919189882867853782785660300336192614022454404454015876293622031231842385054627160073052968174036088667316251223439782329311154311883861867189803821722455541165615590759833571939505393429430552554789644658420376767757154416499215673871679850559423669539773569238579193981028264985193079375657196509891903123583649811814309936972196884311761510697189566764541923625647760385091832928623723703045740190693143851283594329188166129778031816132064916149909944018670289512193557130587725857780444115228038067841458484447797712273304288158971043520355434360332320396410446471661602942882993833808162019794966020954365315890953984553475819619498872504729213191699728847402624164778405624942607754919150741050701082577548100931461209383790940602226275375554303111681337053009037564846538082417695947679793514440744964341862396485810413057889186940129970085480180814973266599006397929156949644096237892099625565825584009569526823776284128376491898218137400291674802406677750803059122483778827543972222148526873336616391475090946534064160769881587279986348898513591429323249838021010601359686177636616457170823056397071359723984743605402486792545248968959163794274750916937654009903410894332708749406217981278946352170501578538870112349428021142266713946376595235161515602292282080050959629721331266113515819210144673406387555568391379824937108679611638304166103441768135280299529774815881461486023043570721769211201560877353896818614159922306366520054604144089053100430326980684521170860787874790646451441596871996763312183412149058021309419100141485075720747343677454327953490180090106449770070693093758212129482267007987788174762884211522410856959705799063593149773903494339402270439140253594747329157987987685400602119586698112692874716116520243410456684104133172444672146810851406569985493332338073608692991630848439546941220888176736361604325850521847986640206661688938854545424256848572239707133030403282136227478723499517617067827700803189640499408459991720845739864644996360008769649734549463378201018901228415666115132977843568701162175929391085630203195129468532120061706656795798474703288256163144697302814928042839240916513184846515463927853148699418188180124848528969742315482511585116218964832280725342425872232430444838723793526928182484104422846882318200220009708671857085339547921238784180608200669672068232726376056817720047422997006515718811220490803686770809966825599762027990198535196429605368169749318402318880553782852794450119609756099471955959032153301337521102435386643530403181701985364306719904282395790449296253170953449966655026554049719116656761347485834259891078626746353956063033761333527606901266115876566217765873708257697225642942693206930530193023825901713713640398895153382543108767661665829684268428277631189277940769648239850596174976222322426717746095208728950305645115641941230408495393280637226196725578016290656344374282824819237765132610822927804358922962035422619305245049964725543125674854520179838002105782052590219048621352933453129890462945028925557355036849282611096545550817924146072488892648597907174636969521856742030011390083880782764406487043286390047891713272107840106831762805600477403290608199374747808000882324742660629973564396143069590544913261912566436933699366929188501682776912994454998251185588699924360223482067494050524816588232847773182125708278964367784516541022045722144374343990226529319528229989078913850974448313480370704717841469336223076289440892128305617437879891100454004386775192313657425921382338271051875398939821497832682741607715074841154466520003631648767465104811627497260743795145214652991214527441170950519663921882601542454054183140404870660836737820367281575208295272912825432470877666454090088511611369066539404443196674603108802005095566243433593790299602180088213244128866660424851066355942732633861278956468879712212794459967599657898524735130576337507943749340630924353629750426988087067946683579400778685740656420609365394508295141518157823692737419931498146851289719677113271851361599258572983814855582262595654141774486695481198486343157941833920210209884172243934214662066145734980872839135877247782602132092855563137096421903360334937972381225805450436322148445072483552914028721612991908753169992675765959690153383164194587840768401165180461131078217169463486564331904505300070720208920963519681945925571043712041680623244897371656166137500796896318468274758633136811266331985205522028826972387245850637923002327016836439774039698755662628043511527723136169733289702378667639278767899629164615529461809610195807279056349215658546522672003069148573129781848164496973842348876540393283186661603314064175745097662527241792344356001126319251983305139160416219060367487820662330226607631170319496499330974532920955552729384877060480637489889983234440000785413033024019895503242161034853101952021795647545208418609802207006653534996784456945298323054275276332818883148381172166854846104638974174882249962486513012604887514114893542839015994958055607496476676066971188871118211763710045929433649483976110830140654242318233796944914295470359265476279422730803665672862239026578696027594083528382625808558309049341345985105544946461244001344685273698210286895966080422974691897568131698019829169499438541502752462778555572106565975793854210275804081152769588386610735908648527162149421305739952375689263303467335037028926491219694836991878264410267541608081550301772425798203006697025135450967871692227587634932915952731527051432992345869262178984640636570331013958668512566871427546185266485806788688620334508197515612571071048167813936537614767426046287122762227775170702864329959377538647585585243772691596325562195978877687465548521214726347021636388844126652658519864937392707869216500629447217881166498273491438772598169608606297774907868327156007821904599196117627723131342294848418778909152059945908047478971995241797888061660181022218182540762216642573526531773951279431353940270862073175416633662551723094963884635818021225443607406096931040510415555363632785970235925732081404446898208763626155982360205635802270120165689887764691986394325967382353036254786443689691301094437160936357555112072791889760481047681755937777908623512755598051462044133133328425226394604121010250556790568699782269142333537327110285032388301773503339214536198809395731804677416098126265426851399225973531751853425858064714275221011130257210324502276409604638389050547098279330682975730237040765872855997954248894179539348416761028974617975892690454853575736227001377776270925543805166634413903334729376728123692829478868982061723511220526341348335938957125023751809878790098227063337463774092959996352244854352842177094106082910959557760335896724311850725733563367975227898635213433491230723605035993743392495705108437358325800513813624994143160312849607160660827841916874911702346021677865153359798051756114034702670896623498282714840503696243215008107623169398464411232218362162596410858651941662630421716354665704446025565162636992808273874363997028865090259414717203428643072239297497197515788808787293924889859368760959912838754254389819569135674278988857967271952007910876362124806623230877958233184210750931465753938556111932240650827760826777699341074389432944324942791508972752216992801728840945159174445924009201177489990406608044080434290605865460195915244075116738778122632231754329830990282235774220716645339288255162447621376334234155631012633599359753680192904730125266755492205528539811050659945739486694687465020892759910706759682850534178679957498434609390092341268580018748975514306927824372511302069859129674430425681464283589006907626578074305522259797894248638477830268775944174206486114703259917038570937971068048154612261008401518339992395124805550171405803430890697161970022603054382265522122056294091888021291244351034747379590293098463481377355496612697191883308407813042943966557805312696144271958833329119145265499798302105962933281901129953206250346727274688507259877349742568769641379091390307815912141384655458678636153268375032464632586084394437261830716572088650977987506579866717308213784869990249421537863324741022096385390585005998095047264374781555549948290884664953900665645410515520520115934790071071135312120056282068675914006604932403567660220396577185583432799133576864846631469382774900842441748942496178295274942709928328119758955877439002468180892744517059613133199872762662462328087100428372392635113188380784069491467813802384541006607545602703430905868793634611911729564945063905018585472038525497876185485516050030850131958527075370650831686215787620318441793949257875203179720127373867074657548577265503543345599643336245791092301999614935845483590263536546897779561094989451546025900191060464205099608410899094781172552587044090518078510229182700788216277595548295855369232072261776310525768330265727698740459774246467536346159788606374887720590975286303842066879946919473063698902792731976471099024436729963700155387064474041913174057159234760632722301527141649447015234520029794457965603616731699107093936657635079983895284522101474907276580308705157590970285645271728706496837536043425630021428361393726603512809801827466303932802952035080347428145240935230175350032729877833140033020405664051450208884277716521192115072755294396958866811091522496466848727341233603614134798748724982705817252544565569085063369420405484342350740102374352944283463395387860085873497376923537409673804663995231306905928441100788972890940931511343461664522971914954046173333234855769973315751858898086546361218874265497742807292137049335421008945818356902184446302349590772524668197392986823769057442030422129758079646633354571626762828225225885249384982623634345947741489854583177483533652497383423233578667370100949532004695134864077186177759800540483581619165979451893866641022463760205288802707073462142740560590860622257049946047862265573405881086490573575213209755093328618069297509545314508672774155719191333630856257392697814446039226194277012021173789853197653607956825575669075276266150282691264448731580106468924808629094781640465779565386118546619693030005339146939261386283810419875929782824792536940794052880875494555390762543606555287098558967253175508396299941536816590530071245748708497423614910979633502066947946791871523148707584137991545404554018137727163999417220173073751768757881314338873633408985504639112694933285845711552532643844614637109942383040390327242752562808523774055399222545359911865339271769861547891594179151113855063198069777045158492169842610399685781839470937501923778537727374450970331473297316849255179915009464230403226349769252838025994442907896595728369250081142459330350635662029002115719200984431286783717847732780544907878796870124630454524989365762039016372335011559655518304094761250698514324820010874896083412630873850074024150663995545027639588005821383694839150592535632207817633734953443182771104851647728115899939129681687459535162865443028669018159766598754292532369093110082503329364148222898603753913111132959117057341506420526450530599220333588183712508507277942293343153567065944630382493545082840488067354323485654646811698857137723739899955909191790705761332756852968757320449897002950926374351655138838034749737089643413817955370795580993087136287076890523390479307767081762807079792380487651305187292483875358896449785399838900402722704637445523380563669282710191623478800253365768648063767763728193814663696397727632646951823729385063223346807605481147983758394586796352792472005866835141710772153310225714774111612929967368335792674485008555492495319131831464791586743329138571648423535978170294869793481828654717712383561234025949985416886024446029447113059838489135282628641784567384528804686196380418816229697875412169821265003352120735225677572106768689555031336312830499653088495981615595973644845166333263101179539324367855672500727262142663300887835638592848270382489537807138259857790375486377501500448333738087273582539077198797091020749659817209704760409913650968967114244429239832233006938660004415817130440529540228544850616247816806528349317422755992642484394108788266003184591996101035994598748451480418362462479846285612076303484024800151406674492227033842076540852196584471917803395631619992148410335967338132291688395745391708207130691262324340390685173368718050834401777466593530338199373160064821911916437162015736380268595218852174823584462860231675046972009777348881520515804760797561576763758334064955049043380471064895369734871021513661235782406964114812538648298762388599457266888537935610885585221563165007722735055087937043537293095032502853750619546612583608935680494927043668959148056912088437474008974583611993205901684711075581388616923138329757795748496533990238013103683371136509097533986061988126418610206136839386029826134920139655941503066781233436976420078292916771878911018636747907677915830629737700225481533461137034430985041290053092865206721166893978862696471375465211492218766506774201301956776147870511419850149512173856181781663019494445934849877798989961740973812430825356533742352860462849388155094254814708041051679376564358651382073582443466265594700539914346149028073173454801916555855760702546860372695473050940438561061415147501859913091805911318402401786182313623931818387352493959319936636806889946788670135990993652601767745706157111397779940952900594648605052200615517796653557722496701135725362789155609790618302540841411647825480027905727753757424454270195877261184360447435966361641634781668917269181010152044040307564531188573790161620404476081191141977712593965563322890932936028984006859562816594489741417965318375018367826314309359768826975606205320198999582990692024322392751153446480476810903153368314570634270334280444040297678467365030456218323420424254738133055781636173663049886236184990667634304710305815297347785549867286958301637787102333610533907268188556137473843547069747913380434444789413399764076966589622957351726844223373447540062963674264153691731580578647406725944707642156267208464330262145389611166125337552180489983049028919677963569840729975642369506722694584711427679621065932012973669817235104019796529104671123441752220794230642885795959616781662773141773838928737390083104314425054752798295880476803727528746092276923454123936988317641072971488701840707225120322597749105815496871881850985124866893896774973552539651691636372484473634518358200032596923661161992389623731418074964098552816988989732170552044941991660212429682241711531486903138957415059196762561591878854721734198700082374637999314460690010256634702036260343480908703610799103276627074701892713961035218759900120159211192906754329591329285327819735220736365458065340790188012450876195876351442375178073803018854953195067184075332850901013105924695911951094945221856943966506085692009799564238719342615503376507063002984354827561221986803017334462351803749143289905579779572807863080417497455583559705898676248448408643268712113996767135094546628873390255636883427934929807953699167374095491321946524009914114843155387783389446528274675860971469779524932657940198744798534158291552739527865494960706468143914620892269935865766170843349791954719031511151412980187967155013241487838798887570154682129303696624010103866303776735787236415101682087864093490353060484528499818694767763744492229959682000634783082047427287802130327793651004317472599924315766957934105062827700235409623562643566326868924630261552996914025353852685893109585980020099185024604831523772085314930010345931239339896147506822221175731673523538673726201753681366343982467898055443370322278562079481875648556352857755544008316391955931881315483205018867869457885976719650849022022780621293134110308396252644606740396385916951598704540974858090739591505130769210555674016831072860763705327010500120660967185161459742559963359094350718583132228760378215545449647321437424230092805299261623977877196153224465292234124199584344256762731204883807797284565492175521440560960012434344785519012703911262480490378031979563639903431413411486330438163376713910682788596171323084561981421687761124187694083269510787930001033691795331500309404417635492001373782381141283510004596845530707412074317824704609319448561954086128235780204917974218503860029387173634912420300584629690245492688215671210294933312677777424715004416064785165759910028265170643555384430401045244440759525405513735867499514658665061842014389206244335684365621033921933947483972019332576247865893807224544593330769151330548453794938647113345338731496744809814797580582725968317808258415018584929986220525374383887516555807159106751590723837258946128212961838581961263918945111526118964786663821693521542313152585213043824598782930326966101836324218520001232290402635550706720051677025507385097263674852832417301539210110087427899009885847233464224470835986131339756583880220887929897609533841299792724052219641167785286966309802788481245213147403991155939737503044997963228412823125117650156764664499642686047254597202703283230239064507765515331962559118329189074757725345694760951934717301008868426172909079624932554889155311150650818598286372481087153284711443320145500178368110839302490212949719068715709513489523360170383897239198266537488369169970324829316061838122768018231563256933964601838601508986379129184028122190359263388156799853418742188765448899928635419047788784164963735026280979819510726554209679110309771440201208709618550447174200063038371130725151634754142962608355680543910045135389961816441547134864512280011866995415528342685211146567027653016603863481982468405617641537344460065207050356676756250367738176010320504038986169870074973800295400241532765788294856049223072952379300415480703259762071165788406192122449414412846646055075607703927840616392688900470237612059172911720147168305470146191707134673160762716250465155267025513572116307140889876703115352389180140758966188790794158928585887764281198575152409619083946625142040889299561689580703121960189287681412298386127597066392944333168873134326749644488218773081559822245224232706016639279918915387363627307445568476425717495580466465086748354699755595193951430312084051848664348140771518594146249269590102472814592530669478030902866467949067428295637097242527215776644289492754493787095989122135623897732641519140948597487610941813853731349322986356001982748570588346670507400803307136717652935516542894497033625919506156289771086635904974343578276362425004869700725291075213845518323945201729679942275750416558328690861309940292248841370629024289669534170991100067919996017013301519438316737427559999237056462200718052228456366924521448657206345959320390724969228930920639942696128034433213549343012331154032689077588702526385546033044783956879912893992738269826944259699831252717733993425791376660522049537500413288985252063359940043194417117743788753635862855074950575905418990468338768668435051624536070854541785979830042364495228487895332879450035941437492427950180880901440146554880187594500950697921563088148386466762143639672738358238481408905729049165126054021745481018886049922920534945361292368466702497721281803446233131699455249246948467022425561608313178009634476504638747790497097062784120113104795335603175890875314456607858593545234966285877054963848479252177598814784060904772263167123961277218673396251639928827917369943898027853122722027195749287200527828377162523055223222536370120219257362051172362697074620878679927150846849881179143233948176829087505407910457373465354025061214140621201524952558685214099854719438056232580312751779866546794916011442851953387614778263380365939098677108413841082341328545252553175017287306550789393828588320494592114990189242419885358910933523828530023812815914934626406075177708827214099522707123001244210969730261082399063750099761186386573631361938048413977688765715325530042771065918598095646283958559661272300250742150406238963026207550481994474375780733878552921347579708605325069297169859192324776846117117738018356542882520397093633251683486327008293195863194147324804748258373369358282095750569672070625313820206319537077037253753867252527085907466031814419849176461690431469945703178847770977259824481337460369545230036741819270543780763980683174091618482272569388255636666881009577156374625369821520429666190987560070376675798614460584297174928166343977745610370407115499776401848361336557051835851407281551549970818795514794372898069652434146891880430986757586252041592507246068244780528284121440549586506219402632513370328630771032498371319685083141050926042028369135030889314161646893329641691139649180777549204003703752131378739396629798206476053106356168576412916610246822941018435462872530135918883360187015580751048245550579021178958450924255621513629948917280261185113879956824909140393092354800312449530730639601325801502578233782996798855279510963032101295832809248656416065292723788122277508025002496731924489723019963042734833025153077083164479000337172032161806479886721298607214209267697695163888222936276821520771226175318832933888187906704629718976348238153193381313758980557084682651903571497645512870845903931301666399617041395392908587388749173000398281715311003252394784302230637063916539369850793297631248689872348996327264767110076481903877709577413687344254439684610954211101632437442201848117613152165222470322094467282951626544364368592610633912936102199111603815323583001790754385641102678862351389123655690582260515561324409953896799569085568092902925625123180785524912978924307068268593327397149685286591233639889537100694989865745904251890608498688631155860558772518317007178119962685216175943778944138913440435976440210435198970007584747810243045967624941427588040585117305075466139689930186967123631322005091088955429475110551233316048246187163520265416538065109428256361282952465000566805349676458165717025383857351764814538858409657727133371566576682537307222475419168641358766287451744615902577784794104646014793145562729935695737962905075244355989688285462707156194769402014271161806126114865947545750984061239400759298406132403127959458153657797419878542232169283570745850211809537072942578535958653000891747884722064034730744317042374093134815322192572734142392916733833629300012858190781524154101085743839899213026851746364645935159283760308463851123962188895836174302491770315671507993404330641498901174447969857756340322067445585165884564761819188693262032797757184747703701544012281834950756687044363782621104307633284783129341104889031783706923172533431745359530370108877874254853683003279031278285959725654038322499765602495030470710340231982783035294515495336813802127097327931056366955280395050038530646075564512988386850421462374810297776384826820039075899055021660280011551972466330193041217034823685496642582418677662521614407125307923167759764773055868299508068234956482779908414423395743213064021762853255344450703008382919841288287993080620408557338537297880907836224351239268677811505291905924178120231116608014648268666208490468489401481795131850233053420596208277431853027414793938935790620593920308706730895153417256419597768078848475389785272230810174583442559283558987811761979030115103061304946354768861879005517297708011286687110182784311341196553191828984182723283325138050054954670819813606878878258188179726381938012866270398840980626157138071911807068791245168598468029542491366367932249131221687523653358285877799139727109647656099350150074036712171059873572509904440046561408618726660747864813323520053476989214446072337998813902058423641128189821562759303315710322339375545136782627380849056526099871381432180547401451865564799006352306822542533446926629351783834523631158471981984199104659153718098866548256432086837256599428397429171553980601639448913698551744468028216008245323516173972448777851702020301613219830764225055030726765476999796635108471797950257969346785468223370609566282128984962175386593871259194884706456623950385509585112915548393104093085104875679543843015066420541082919590090628030075376654704832832073249906388281790674345130637520349664147374997630189692397254921610024347767624957555237616360806047835773862033643293736668102888285504026105545430333018332673455767624010180471988808677438568905036336018085937754287173010222006587638189514020084858280763344159010796963222565323140908142740948836449355324804977527954330913336148981831316194720231238382546349805014377607250116944470226383517726744265157229473597906786470898601321629907625779072966431240735868495542940077778532636636760253619435968600234119269197678175489583621346057648749282767234787413581308024027259772343884253759971210767021263547727856346358527583319811244197847920713939281542008337869109490623648309938145052507973606555372632031879174218887205584655747115166164283858390219944916438484639443258157914246639684551679592581550309594213437978969824788759201048389502962440892808818008081847810904746012180531693020849244106664744433805441941077624999448643428784437821180917854084207879646287229920396054025314123742137544518590876469929140018499902521098863415906783725305531811497008762889628525340689068738152035320529066522068559072034495588972968827306863359858452117489575521480598864937688143183450961768156709222786367086594852371054113071409028026177700673620262507123055614643353385389930592214848578655159879044193635466600756719824907403401069528583136957461115774956670992118140433741717445788757169464779079020563176447624745129603748943777350470883362322554870457252598341731350149372998899018519253168933652098413346528082872428633522190638560796458933772989532298211440016219702837757102049507067707280026878697388384483284349427127340788401911753293177599819598149324093837908595064146319579112148630904669455333777920086740645743305393008809862084975061517604203557902417730452728006379506843358997114795857853653708209819690770761443217713897762835040537547573281604964735338958340423530117383794564677706583741809564652660427290312097912107093384898160684678890731632581357411414704529017070706864083878956789393501186054382072059194035865984110998850552267926026124115973067747663220683704261980555617752123308688456945798699358116039574105553797457985689487649645122758249218289905444405162613650009242356070299492586555702118995239905990892876840314142431983917417409521796463531474449374027336343083666910297921830013153370934492104698140626571109960495141137093390661596487696523871675462717948032194497383552251048244514741122625693614524772508720975654942267572784474947943815198269327479209703480760225616734701319285607119150720208226759490328185531641688707333577654261452202903134036382979795423910559238420482062930602323022339112265964967376238643226032114617473672848689918955601075984945968809072025205206704913628779532148819447394284145950409769226637833121277330419300503418209407058141444577116896912593786189799687050957095301124737603982605930024636238468735562376891591405490690607299731179902797629285196135854860528005371571599147772877317204522211050584273372133988289869978388800933896916834285886532738180783461081873891115595297711752543171918138137241156047185046878411746798456429859179360387379548469436476336309376393290797553173630831534703389850039723690456057038165149848710229332344734646219150380974750083744322426152353656829253382185135805479762855427105746046183911621107564735717982600303048222744924751386887913255757426426968932598716578135674780308211354557769381549115307861711507563933975736213003726905978276920506269393785233530550711036432080705423146538471667034476025034843375051877222634085873074478537888815673519614145560150779937419150403346960194781827093529725865402999765180158087545771794399027999797091203733563883689601714970677905643090946800929918666002066527545985356652382988179080494415713456957373778495966291781848451146879356797907156019745856206055395750680297812380632233230375797716504187072395171862908713673306639006549427625445254248034526435539219108830010000446830021849097431951335043273229005918133604872257214596619726711929729902961402064852112742113000796670656555938396034119819511087372016307178090318799824749827733910570621661036351053143467510825542917635996893016689132913056634171068029429749321025906902604254766334646705219766912992095325503935406027729053466152979131920255427596726674908382424153474277528400788573046287926969932710665929812057351519212273373502600584162499754649579906265774739990520385167073925143013739845365262413176688014893439349403527529262380240298623324108529245747101090938155460014657987480935948211719086114940743253063528091882033079735400950060524373153317365603886875044097867695847106598484759924829900968273748588921643610524443575211249722456010756141389689082223678287235577598611992948259176003465975533555918570047521089060370102455785651342088488437010087420507252681035798302173569132482492627210668704797097362358662830635876826843833121379471006801966047273578777285424968878896371498017590242366368599389133220576514246070888712193977796356524329303078163512433470073607563396190089553471865302277346877348244039671186200359278495823082681803041942572088927021263186397353220332609234228066987584056918738937741443553656822550002061739752430974645488958498284033156401948591775363255771667350114078641073898124433582340382559132645490631103455617925037852107614375227813705461334354325331812656631645580778542637472970626412045195518740683441918124794751973977280027198397910368795873987607544137149036469564216656395333289481678067357209253021247833313586853894573599577626741637342075990226199998907213548781544308508762178847137475349277560024867562269741885765015867674513569441025072512793600577620079403314285452992259186127576667397111378288424342749141695722011378452299924331289372945428281208890598784537031341280865035302237919967137735515501006459863916336340668753034231345398927846228866271000511248105388938352659549330925954306316956256550800682656603266454009539534182942157406285798393980181050674975919687461661889616251841899559993810444048603121854373858568367693264422941475228467420573070728151269335624938907662415621957546389361036879909815931020098452024562153217857401623674684769810020846022441141798475672544964465646008991936313325710961857928347025647981281160186258940117569530555638955578818014481612985312128049824829549279079652968463393879661911737356599773819447478809738692236673078169343858444629901858472406084228932918160660333587528375579276835979206113826503279897777842497987754982995823285871065552608337080877178370628669651770514158201827227917312258252833101023897261521532312841361117250645303052608757004710276112454249551438213010036789452989401245440787136142203302296211636041760246423721285752374105107473407562372438434010313292121245655253701007186051251153150367561026314976622101654363326285387681801800296263427385412883285647532804434432948553756437851418082180984745856756315512213602567669287774741320969433734294420618707660596266609394829308127594656315312748574307741580102582395173909163109629140264315441841971708165880153531952540615094355559775218654361697968977468069078987162981655448178965981452859162627666970014318389177057786545797973993690435143133892449901566812221513905191143320627186423636186762482601531509753981600516816085967430079990314590412942277327126599510807830208730536662103505259618483471061466993250157861883649514171847216092807420656566350357083836049196272540257951014699434642013377074481050995996505330793765802404772526655243109656656955034957082063995610735528872583793625502795671973257852140290655913921786334161648518340244357162498810568834895317242169727707529166603988495918940513537047536522369858871922826046054821219415050906846432612578463572978624375359767315227875997835375674911405461000454234372726631189124839270294711000360263830551862693116503323237240933463287658197697518189787868967497535556863744742959110774001571418515852486931040188917156680663871876123608036705915671710360013034699808784460016067846640865618417636202239958842292863067438054464222215872459470495162023828675488936067663871907746069361126252496391291007967972035146008990229192745846361776764470668244573305346460383825630873838138499336398742840330458560385523194162190541567747308011220974920627873177013397812010616071033237138735592651814690737571737197849889764909444267318657077972850351251340325394231299794687095117756973777698267799730853759255848512973935578290530031450666324217213557091681018385357825003288600139302115049699692300640077690799342489894292078323252813250571427536950651297008565635614462835296625157756413490731377251736146880655870304889482344501958084162324397017894142577932814642161016476992473850307238847769893019539390786299357323574926605734897955866134803262868232486385473175504766804300323143871203110079013232471554290836962211046161215791537198661052690068948466120270502243213215812776932640857673301962702274488483851892652520824939010152147861181004359024365071042194325823423516120880289067548046294982651945467653929790037779121323787627828783644298772730438168877921759317194987265936830974322876756357973999735547580338156751482871090033942613395344086903935003364584029524684964789667166943465348991214124673090226553978807919036278128460784596242490023926265342808567051157629500388285109968820773435092674244307412316841763546520037927420421373625157580779362828642472777743461143748508270311773428583552683519137105821042716519800283478252761985539183847386845072159470837021466835757279114700023294030927435511709832218807528824493341763909387346383645197910767942971322841840540399696328185038613825992117078645972395281003704276471586307253420088250192309345178501317527895077817671698019950822174775442899164051465194933595855378703874745653241835669398814088685149414174440286115993123744739471778283014496902680723874831276634798502417433160430005799461175744263549592615791627772277124891646647886686216693280475267021264852631697688851599588036280836835441699002445677549276934306281538593307856415823410111575199391183075690606617877817143541349934268922492197286628674923013921067883806666014652276090789531608241135572847398251203328658498023996656565166123601284373450029696311158144699899426970623947818066115002632963271139419712821972673987325632973224829514850073640433523247268032898886451565480141677287044642026850872195378744144268024871005048663454256354171013508853626850834755452533442936511670183348828428516548455587980011827802018680735982668518000903018284989394012908195335189327230815186245806533614147463383321433118719020936507629056099647093998138106693682238929184852613780921522253180362732982228339002595406252003861089715526955968799973171191093903772535919178828994255447173404006167385042340507608784241371787554109177987413899347067856451031010695735316706091001160582995491840554782020310339241900568334345741344987928779097918525966714244875661808638288590401730343755977769247957685900757967423631044161172789797766627268908097581072485292406560219005172956885888277432110407630670450883498718311058626836557303290084774573814408151313608582681403871128361334592009994375709013712015404415755380352602429238853325536381532175358723624086249854417138931943005719543930629047744734664305587549159024528937205658375173966450188548003953371106085257879704386934809573663416446991878165819221372560742586504710640126685227094249486415350767191814880720418761898779613102012472627868759030960932251719622226217769254975375304434879515128831766406721203213494349727500344643515774081318368174866728020620452880939594043210206924996804477517242901600528792019732012276089801029183988875420436584815054480597055030921786516217368404503401376352807029476128002971205965417323213456266089454465561322284692703470757287123358858953059281161272744514104384922982905859168640696540319260222524442437685727462475606181045791351607117480331852031672396184990340162217577431014156639110497368316320777846906224333380279507482123282321658967579839948144221811447707875229133219679158159237104359859857108207001363492600040296591432539132806272927901184688938937647457975814714583515065085642031094898406864594743179595476770777570827193800412858493991192438132058890069494482884515498701701039434136612353410674331347115609418160325449151452216943501304129438552590629142084154325413121386472270215869975575748578083192286853382934544320243801112689482214809406655313394822007086530296255440556503940095373263220290060601419000694446749252939298232730303531567168477370264670890776367303166025759346912482557323348186268374630957733682400862525708896939798011501575984231804160637776301468022935867772999589035086745705074294911900890331816740723930081097630294276060583169513611288579836230501651193899807384876049572596223819321073008813379635007374026402403316109548148802748475563032318903273719073039193124474444750203997672077621843493361486494218157361780294701500977602446622449376440534125837471927195835090713390785692658892062421933877441530916679779641645289608549825589865840638435403175050186017287566275531831159154561687796100442646544321481066490006573783468129399558581745089602172237503367851678795373197306217174672640497658110087336461133955567958331144451205418042029348556817285440756390735304501228922742780104419235022979380449942864972519080012165124960376711132475768958998234866067192466119035522380475016119956006132803169004191218792917452637149570757476140370509255385624398774334962176025678577680132339469630900602541434572139455019401881892641944114608659042739547323506445234222357772357558546140847845241154999608433582948481309035128466842568949694975163334250111317502588877812826416203580389180538131347635811042811233782600464802010490648141590409207978306103564740523158834190988526041075837313193050832005420481893097489180984632196421991745023926454307252704682045591563762786573077876160624072203783943357521296235385284391619369924358005815674187157285934308514670803821794935593816128038371568134997977831825228546005595527878165593839429229818996247330740673908805906083126546174252084178942915542078980402144657291326862384370370247079700635561537156407974819616523714262646968042723688398103651951155241467593149058573206075664500860036667668847365779856604857644692284647369787910682576150936180438822674662001722216735161499834542700516561840154773993677169872677570698465208385993838774759749407847289463266614501584056254877446144628804747167133238309178640910821875083758465661601060928416470244317936552865804535610301189602115009890236057314258016579273975391464017737390623441959043347549469089840119894102587210210716880434648074420284132595758659851539335428670826327444663616396091126383328134528190460382641676898467719010993055135621165107665352624450606358721171056605381625312080711537995734229462983360313065280323888259349166085041432779322889888300525468760487418116430716959469947771720141652218050818371102886547707597434067875178460735142759043332956989183635978463128436063821951108371422708882453773544682729894974980896102452958693161501040770437170562755143000278141253007549475386608249208978870350329669409465962884661928377209007574808007487916138126257174074825802863713309271689998423091207810980528393908909540001516693170530238888151869763528965830483915895080261660472157873627202828709541265274268587252243164289890101941226270543437192995959263692685736014112473819517469083817567056893950140912178333794919108692843510450434180385265510457737179818835430704919209571693672033355953073430562316522063737275350478073303027079826567634889342474769277079458814075942661413194101842402100681903572336206409181172319108230751687488173660430242388342471187880415436402468863224131948830490227509489442344740052682146892920458814987414237292623925820771305875601915757425369009897636876282865677173364086492009892275203272840144791721147835863468330246173198446067614426882390590411658760306095536614929881120896561774895651488784763002562613665085024736489679263143285019095356403652339250389531073707588777911568260787081960402353842708245826834056259539132608051938735976645767512728728206975501109957232002321278875547021959441033629456597904662439089049271292855721917361719983099789768784471941583379555902965592785156966536280665931491376073210651984420107218623367633103901526052215140541824508374437834515350899776946899188322255726355603655060289073512103600025825668311183259503111024804903768961021885148346338973840315353929223346041917409329828927584116245295455041458018566603914001870310983961134188691833226431927073427036473351522425485115579861041906891588600067812693133472935357557315766105824992809417470194427677076710698192160493312103608299536198764198680329793444616989470668997796376019152872134930506283692613500030903815825340489542159159845985810427084791232248297663285367578608650709799233769120286271160754304432471724256859254241482547513544795015530099581216110703935981106343516427773217958229695261975074827410827546033231787304939153241133179895448747927484363397796884876358323940910202834125136240976440137253808026010799029535193048806508662860337198945036309863428752792762960617652183156392268551228935406418754114641546782975448178795189858321844958715291206099742356339340276244914284803647320700540962160932170922296991740089405766960991707649505840689470514800217782735719605505397726260515798063365893638788669731284386062815576569589035913929007329689780043087714266801249525639947272026987555889566173314842631288454196094431500625262007742165072482973143518603724972833251316399605970141515327779950641006608397459240419656034265095733687628601547253796990408660439945453617337226296635731481379794197112421923675646524680687645753930553676991183973292655548131231279822711963271071822042533525226376517573658118030031949760120835776016601264245294192725623936582273103657321308913045263357751480167288180681425789078639770190899179578231162591402184356660558780835216183522792116490362626591007969409938150606171316712338999991506764396617767329673689237216948068333471586425861361031736053724867546232137815594155104834573546840060277372757242132602595429655240163632007450343461737436618163266356000583692444264328857878271684731126745308648122665965732760955535151016749098858373811011939300311412950419002760270517493173748014316393622642234076681895410973860185270093381737565276620664901390031081214498529912804556349116763772039077080187944897752288177272813091625937828319600766234503499666573600870772138759535820891668790110923503220022643947330448710989700977351091927348856520798901681649190320733223084435316087871875058774213688133101169036614470929763289060749082236645376797894087981436173497861388422433077246291341072802572439023307043057150905430446007120769193679699911342761851642812316393334863318571959127694393491919834009363894783828998739880029234348725824177107811818860278922426379891640892894444986327807688626850903742725248757374673952385683242334018473943408329694541198048530620555384607111249142012910164178205558828677982026769995969595530335670405392038524425062366775169602510473371271991283366396288951162581865790446224826844056282920036581414537952458859787639297821461755502250882993589002528988048874711587023804146577629782082951294722838592129590335024033906032053074387470086585289500019351767750048237177494275907416068013997267684149232017381356645936772641084411935339660526086314520118325063357755121298792645656009979560210266484762124236942438994641445584604788726994479354754276637126502003889209799027204761950579402452088580188690345260945891534967578827478577455375889027004770530865170598692420829344596819319111336240081546171718590793556224909567242127989941310905959700379690782491234039874090312426374444968501091577331937234873142004165136299619168546501438715014711303539426672900160922670621493013660738531294553589686016582417949740772020362974069960182534093760872318631726378378287256101838203621456672739487581344781389050971276605945269732471788891490849013188998645076442647783655144120682793835630791493709844508227512155379573417830732651946065235048224594546546660309366896621162106373559797402957608746675043891945797425247660890516987867074962637800790899056172202715156300004074397617680486815556308110588857824605808248886764571714661265597120069024071932630346687721441307548051454194099291335323624526705516456398470493527124884013437538098435822522629314672084127985275046724228307377186872600163232037674364471026150947001155298407558871313485818533976243491174129250100627569874722594012598617549817192769768587375138517520236310383359243318812228025169299675970017670992195224163318488107898163972018974797576603529649947264795507638056676266374273312866550611738896849897776505067446796989058687870620881660144958704598545488933947598870427987541226406381040182512782592492848995902971706262766389235528228868392790789015387373585359497221405939815551754808138693914516920148926958956828240658802323565036692924040218611712488785020250071348639582694142845681737875744476524706749837736110966580499976830457566268063475477260374730169523249130012892029963560499623447614071901365391713354013281034824719460648438398640592793797129304372281321970001762597063134940321833518452281356438850623761518659114940983402355705806140588773364278237304197467516975705727393911801504561922578649040076818453885720502983944389977560662506736955323409117116731915928214001479319992283968041824425587319958989383556958778656731432827007267132677455782038549171636177279182880759708107854998807833356285958680530191520391374996331101288722484956596628904066178574699259249391751144215521871729393722626417617377395178005694622404677548045344196710272755277874620382484446249894606132198729697592084418499447937694031401116225806109777433430424606141113328507151252098229873437269744345196211438134032723916136251947081735026787678963067206520330715306279353624035595046381922919478427588381852212080797051576980128949329938138516260356382296757464720102287171369437617991662752280915138907250436153618674452403180673861313088408007496524103505923237903836369524915784709085932673690310467145404968438134393185706337791649626622209468296754823522360236403479327606613435494656538056373337019250547499528712422787777383584341420710966789601031999330202208464242514081168695650354964853935911230273057262742426556068969286674473997093758913071878474093337956792760838338685331815266125842036760804226535672410358711507010658343123412503245194543758368657524995863413415230637903127421375321545924635129946552307835621874942860691565463239300549932395101242389637595586611728739408052623599380473752609427804836160915943696100135198928434339538856461132547971464834720470418427866495479799821673306386231467231168281026209841723636515681766291657486621139611889992594931100671019977481074846345557995145598430494186649481245288492699577826391777796257694763512764514114677293909874773067080769206717439587282837192754492557556276565375478846908463903630763902051059843615918501109547147828779543307728822445890672824279027118118856703430067704500454773763728968816422942933511949577410399254032242948753149880469462739990074822980896862121080524012875647040924856986454187039980810687617719577676977934077257585386808991002444320150411868271637762356424752863882628068870081464181536292307011324290108709822878629243029804898954097141015606137057868031737933352729685223228286268803843074937804201637513931429769253481631717539910371505797356093319135137594898350667471893694293091514571065271624006728762609008523709535693291409274801087332833115019235172755433148949275207623741127736805440766780901875514661488093104871788303213860412494597525039796106525354840372267870956429163595940296317613730402338690033422279972632451353602836938951519198234473112996170556410351522911968405534974213698976148904671549795092181776995361911692719947879887461788047056537127255525483964136532630541748193526672225607225066977880932872038990737144429047154436446300046003243843245439431031479059198235033630932009160719303217050564680374280617162920958531102986900538085119383588088046463731787111288247394215577257862891299221847863808869736357274123619704456868631067947212016411500321680271423835722270717531408841527875738852528540529018956089832997923374508052061867417325332099716550682217500038501828474853947750755369163280625701317208783322345313362861982623459136140801581403856523029321764605528158305255492289788062925294407882880062347715691748851522065684824900149323171365803924251431282750073769669100569463504467033530447467584088497263021278509450952965001144228547861209376786402014294648382509958968224191988069650090656206325240352135224267790669197073595229266382952780188795318102518642222741373342449206118517926809189933889873360201161484402509003100346016807222411007260432490395478495073475892854455687317306299556008482943121031641526476219369207391643427950133761864553110106874472343417838533394673282922279854233479684168302356487286997273511312551466638668880964366472579043953850478612273442586191977173945370779259165179100646377666013720773577685327778709210909145007011879141013046091837856586378638771680643732035743523345366769661452505440573206342128523683407245137692660891541213168098691413065133513237850337841812794567791387753467009727214073610034370727948153804087605347887989920466971144462260123613120335461471625670052783072203654810806958938084333371598871218699609806805444298891665105868620639122588901410148426334323584705991764338205323073343819222108228342588022600876529950483965346350486280412911934524775309014261230407481738255721980000570801252127053150687012439885561586442783908905763627955617176373201319202378354465167546216328341892100027858099006105314869215648849159120970028533291686059602932741621110778101774805613713107741276574722385785142656933498057960860610443186471349022957658261166066041921431999558993423241321438599608864907706097250576175873410557323995266934800980742896715016887273973632013828541915987064321680822461210166077235930407272092401025076559588439402592905773252783109764261417944152801909709836779829916494320229292537745976123457702735854058773468941299431071706601910227548609349234003211821224426988736304543102735053661294519460700121408531043154112465456776781351223387926350206777148989709950616683183989936721794736766692326237537625782421074008436461837124319531773327903313438940856798528484071501620472483720386278414425439903634068971271044557176396185029116624648561602195043698032808201601063956800508367474182747215645263978638767710507223571698106043385758103392618958191573549568669429719238497172732266857540608244226206319588833829280424549836533577421011814206916797309460122705010299462410474628896226391581641814172330607215975681572422154556064767138645212186846584926805843460694933359958394310552965130096910279956827010639503848062123025940798932349851729488529652306738093104203768644682641821860235981978265393215264020700937179249345657410127393654663979338650740597399516443265192204466494619851687962750987296827895100232052453634011121780296273277117025383381956701481529922535940034089013417935811256507718038894440835579746540490727260117590454889073031664274386333878604351250797006306434494862067965830412243783719145042356004065225631537544535082691683593319310138257099058948950588542315216765661891914341649408277024350273496491827951041033122541761535893160540665214235885572429566623049447531247259769971786102099689695999957408332612196830717020719909184589705147651770069641741920239999553421262423938357250053776011679112995063289038002041573372578454604761015501752438417119673525941112060625283311994500843927269372533802479415239184454315313998895777625528212496061284524780918083428917657965622746602623574746305156527995650246339741926987400985005564264750953821271584842778778174363406250165425053574020968303013142954866851104911279832551495989495966778762716718047647618256333912260243412672166447521689008637169584965546608848185014732426038995752313498880508318561972268434025963504362855394146268526787190987851864752572606973163220644461134277167414187723454978373200412897979188932055579277814531806290274046565236442048280367522188361707987675002654788269405260435069243650068185029613528317076145566033845593112816065953696641022322870727587506799476965478597772412116219716103319280157448024063419250601360616659960968530527356675173933441430562925429862785015820398786697671502664455159809394557268906016863335161160803507872821920620719569547144802494073898777371302339733985171857754616710737540989917589193112489915964918556687199361466739174503334641283054318506405459851702589903893698003915591806340520212880134174529542300780438081734390178542082990538038933876130210068672682224889414714496831615366938968236488468527169043858401621794342264050947206665911112082243082444115324987601647809701372689219510678266865885628887084137846162840215150897340274490712108960219718476833189449646616455022019745885424341757357438746747295453003892953765154683563352054032711439966518635535375383722427366475956047275807100526891182569600229209732553693713472906323041107649779239227877523170400624268854384020805733889527633758979627317706671670445989820539230566458203474910081607244162014228630105003530011297009088196033003108298261131577907717946541800166382132745972659911804006980472644074745163967190314664738568064033240132202875890558005860703740751069281944855975094870369403227734293722584052076967528662831494310203444760412307428059456124239465032404386218172575243905821304850128201871295777708173414700839579856467950417027097364611881686373065431636007926071587884975116412187720226594908103839000098367777834058026618444721627147019748865661398446502640051315276280977792968831606257314610820966197631162193373095814252468894127439239541051816320128434320493717907452774264172693627156561446381772326413420731756394890711477165088361461303682585650561890957386023381601945918216553008171537158115228716860487150811617008571291500849335190178145256491044409293634740184396385640920390776384840303104142302600803681612523467797352590777592396603909323667553933283654629524499253377928488263242013160545778441678004947449454337492377036566261323844250236501499216860885902780184995231710462560235460666397918050576819057905428904086135899404291165068899432558286656329224941662379264022120764714539399672016808251826282026968598924942237239093832630679353600417453627690117529763598157980116930169261676898266891680500773250253980231531675056204154429479013459051061361782112266219885560885623781933253562453043972775568970005623474697794277301847574416304329224138709447376550615915943255090997519098909503159102251237499395987436602580433003343661306357505018307429752776797912394425003302456218058337608701682223897810243675002011603738934398707722185560961611691331443982731478467200321218050523010788013181354469433585914869082402858996934571264971512791232304423099349246567709348133967009478752679374790956572764890803375015710833545571444073596680268692127110332104075730734313558309954912728347427488368084496490833390563262261303513793978375900748882476269588663530739330974319363520977639034706302582098202121269653504214582001971110147686889431089581788538167711367621352047761598561093859072641693841860714960371512877907366998068959109196898521930423374953497581692277800725435255387274756966730431360815014600392872118990412910331112236861076598826781404668355766325803654527429246058066910975741450310233587707745714134945884523959604174737777608307925540387668666356213903232796590529153726464043151983182853313439440173570576942885866464401413063839422579197167498597561350328740097815424124712983719594919974402669350160363898885311155100034396993876409207727805848208741759131326534710582500976418947949678081551311423652995151425282818040862757213175879421904390318032797836242056797321721212673408304976408130449337498300755850626810208601350237118567121860955718569210988888628048585868495376185328639874883824783622040721477702649747417361292757563058111482058472687245191569557487680589013678105381338030800699277053302209387471918730641849304294340248798519128472851003980575319618844693690258247732876267550510099538295255903803163548926194758572890710631721619780518124960850657915394696127760753430052544313418837887297848855944397749615277148394786641534233984428262196162092308586374730440319501997440129018003796596918065409759060429754527558825064438594705156169111601300920305613467682471240650863200589158785499094665219036656890083584679442272393243782707742788979714146719227402825180518458563864902051282662765723999533287235927597896512817313603550022857595983504468049112265499495196574441128555718661400665400267544028030875479700837556707270897748290364481877707911102879198160988986371158422960891065783542441937940784977211386648988471265938925922466747056903141984082635189172411972844240819340290097100857991262193960127817697663456765130052575901050625796971793487758294976450377380898028327263619840467577171428382283635458422656970178730213489806270551151477792275907249920815650998486055505501751158433169975718672180385132068724846205519005548793253086516953165847349123639569819506516292249260754611327218932201486037331057913412420263539700106169366346586577662072693408461692231449096785596623902233303954902166610890752548953226258473010524067683804419236572765328503361157888271916217206176772659713309015094385899584928061173835086277925614626514425878383621499161894079574233947588913482988915162033516122684061520879911791904215465133709044439873884061851074870445022180447117438609625406281622448660483589587534516922826816565642744592320358021085940442290776026055040046795220360433530466838342337321026463586140708373670811638258432576127604592055528428918855260134014874260499701742928914954618917895160757590625064052139785734227240205663184480259828211457200290901896216190251319450982836541209183257487780429231701290673664422476022505762133130440215182565172475188755494255311122533466045915162055370910195070111408908344536394741085905451811941362151268786987787325745451517205108428756282279134864406745983972052249772564848930041618318771785647576537927176766170959776563799369803874248234845300368277288915108258831351017766322029087952780055945907009202723665511338542351717621307306863184972684779822483122217200101609950186230384508055995649204807252013377298068557968276932686740117829333886039390374769838052159073790361991717272725234989634457607713234320199328023621342160577282691730884894475142792733036367824630450282536276940092943726348055155573348398597888353717589269579945977689606013270297909729073984056201652790591534430354495700119033977076984522620412230247902882755907739474557980296433934226125561117799384769734183611338198067356910127781993975582228694104193445023183195282750751689736647402124034173736698322913509991054729827933932160608412777215666444756127896816945384703950577675002716468854372908058677600655497280620388949581595750356324998079829731694631520832699353795804414627165359683668341506515893063299013223838411500207926697684091320254308880781490635328778775535111859014064563494831598564149483282406091019515230791387156767724455205404146510052330190275673072066116183987263566784583451936851961911243139530432700878461918638293628115737782441213255375105678826694329598418526516686280157135356034375278503538983010515518596769594080534862860712652835973535939111895379283676932771128698342848030916274447209423681107757046950143195250017465143466586300762495874050439440580032062474556110025538928827629100462157855370392062964682167682973702529492538279002497695521233429204029375199911101620437296845210169247957142254664205092254228547998973480477043857798742283764871387567600651330211529317203095197086713967959569598046436893295033926460180203294239692791551978587097646341365795086739622868675338420970313054650506305612774082232004648016537168876820278987785626474863157103616505520747954586003866753894803929005114229367333255998272559737280401201322979338178326678304982373360599982153292806315921300443451820173286424265237876146848488983957869664206387939236736691087054984301284226020999374955702280601379145931450396584380648127386351704279645135090897199573621660578170376582173325858375032223414913862117164008612749470323611566930646873393755735211177159064820034714326566882066189071135746669539635424786038128604762393130464718003431443476910340637187122736976863626986690164662463717194296113913629350990745330691522761810438887466377679246320242607319847136317396143818722461536921288772477378886116099926614233332932877224455946867759782222521809338967108376971848380916545143279457893147103470020142597991010382610424605021772980386421869723527122064050203046699683269295872336130124023580448099917790441962596349703415891947495712032380762892657833361018380978028963051962186865803915862311949177736285116268073882528357818101041325904038952926057044779061006323273706272296460511253017812456758300211573644164280921736834428760177802834760402380771775395477401922910563326074309677951831085553994790400906491613004392635931771942531905955484531527722541751228253554349521431803908785850170791950058806881943834131915926655850123300164144637598207385312357209566960813672718288522324166184912870430241193091591143136174099841986056568335741449793969878205533219321987864225748519944162466059672742036534187585339460137013583424197161588848388864818166347040239669778050230596786474095772555238995908820709369945379946481507668719773543793712868430028457041464489673804577821959497417974564209962714413863654890329626261357928573941466202037397893632332540856537859389365451660901099883123095348834746434556167033546671633566733381082476901760967010711258092107280264554641007793965394941929806945537262814012288577238814323784978047035828863364317675523128636629261612810772907709302459824074094116522519320112315087280465932599663275492362265560931911013185685235291292903533376101871923500592332217070394348634937262160362999703124842292088458644601890472351130131080439075265416230199943220597643691178137192724505063629242696823334627057506081503386641998153741853508841151196523901649266121387399061447013353592612691584312610049495225981256864099064247873954179946673731989624674528182195047145712951314984575383542906619587792085527943838627902451037642966143147635090482036535136411165631983409691262749250557448727965649201441310159442444608624387860913509762640761684379525987740954871978187786650380235781615564352899133377467223711858539688170532678005313069805777176518502455729049799714151418811064250570860866590367041869177111502277700645567589274839431302047120914074786313633471248261619129032745923413779492585920192767657768125089383934770310418986341359757969102324679803416935268577894947934268205434866691995624531044075766504353802558344243923532306988252776388215207882778024747505122948540236833111727706077208383512611382591615385663779246656885689448739678344064869491308970841034344115823409945120184523144919057861920972657764379808250033105188255179124432221565942659891920206928097544934651646475141173721580807545482904348575312161110092980005540596722405880131938893566487144922184350039104820390327065737133573386880463290399382011065880660800252577664572445697684141874054361210823715718244044739048308778788584030913626297870556225513031951757395316884427083948799867856790631691811856194157149311006886880671200650481042110556887436981203602943386841687550191199922062105730732730804705168886586243030952386085020765186929512603808678126962181235078580918836026190844900863657922091832859281109485035744823627481047659493148929167201762570226992449998561742801521554939007303200843978594115364974648384617015615867100669768312837735378818549431087966183002544952672742177977338238143505232316621307921172804127556135050062917943492009007879789501983604755362845230719269809222019653753441212322272382789201057941970511814067829327006803462490453590805485949183384353284451075399200207369750105157523820904757840720837394767081685370019341947748102190983669181388953840067608919444462116531239537284288512498695403385745934638959541592478066230887670276723069167462384510998880652560090793316824191676267386748606744342373866897160135654325021710901491338686545808536629864915722710360038921315201009918848633117799696358455851973289793168109057661402654476266298536316200042004860089822711246753751021351837220186703407867146056738503281776706451424642336044064615837968361640097671504276409589574902880252401822501882263866376779823572590143781586153568808273062107351385658477149852088927122335792545668155425925130942015056453882026023637792420748005434486885884879484034400963044395374702915804300747196732163225200078467665839760642431836739756206886288086593072199807512609922679197547354792668901441118121204202878721751570433544824409834438546206188529339078775493933702921858881426311301631266690146270677404728557028127949858758470308380299333005663150847892834593347011804246392255005471514923542894399665786215794911968186272199605800361584402105887733808991006856995764086489017846927653990277579205957226812819554989082348016460796534923552736617128018298396239769184392918083575803107382639483385719418079450932811180387694506369094453872326960754479739838828601207916021522386583681663644839196193402983986783324170553483505847078111883867278463609758014748981422570580142484220166191374974901703732066138926576430912746173357905941185475218247248094162914515897693988230579176504073716911293414833440566525738894424018313555637538962607397025041811784164905130808019452593251517884603994193778235115742344524251142667734497482431399204047078644520001667054191267616002902600099556241188619514701353837817322771298526752644055654239261685741019878312434706178214640214211044891953416075287479113505812174802474411140122922823813685882674024833272852843224238030175746216758435631834671533563852971350293692148835227100088395270405725014350110900714974850915283666291530037363659255906436540438839693652477615622404763692567618691387991428496172031709132384180501680763545581417460063513843450378258333944769352850477447063472919673798982549994228307883702820241968494952164396842400715591263047694249046064898870029439561875953639228824338673297322082805222778093610881487384595910415889985175372755605190103718799897616944278446827910163588338833653156397626550200310503749252609934724765476144929469323374524813748754228102855052716370635247421106402907159089610496731657766142142644010915427820690984815533597318849730455967341878359588680802077935802891580224083874037162786585330517221329295733764521380121972752067180948828174576849009934783468269285387807243305033438663331667253437218229871412450730190698724131725117753485763516777686444881071142235017981327711031691106763581312671629797327222889852375920815184059609882740019450668151732917558890471734601117065265486015537124518436321630855629072068961370611482684547762818114323762364444938687236174694289725252712630694211550947648939201097383319447509237062987800647968625364507273503095555293572093859369547486700692093479375194449361764894901104728412375130111638196129638974965857607928577429092845566320663560114737582766482227976445128447612037330815371772006685276364154536011806878660261768171439631673100232572955940450724695122613236502595805725803910334386775521712872744074277229934157006235739997719205724442454300132608933165406188762375888910062574186035636483752464011000130976508186621853967429203925225807370490104715174792313277013119222696104577070555748094004622891485964548956984976478540411219656477541054158265733128799826896348878945697252745046113789480395689264104288208762437873640503393622637193569835368859407790596386303037641171516898571112778084170616805019207988382536780356761011348586175130115543443022469970069627891513638869556138875545925577345355182737325887799477573050437756322131716011128565751024124170223867135811161295901165135303882324133104151282936863008922044738270981391702434129289963875770989553333752654534355234828090997596437952149427413865920300076714523355764465568447855289798624240007938848691676931108839859339681448453056072523480135213499445109242665012843017181683943667757908249802373530170723113281288142345665833429057878342804859364954659438287935804103009126726433168368921228044712273337547980086498985906519486396416769031250680349410526589978184777286040962116691799074874328040008736524170077377308377339384207685443661245380504498356135211756886079639873779081183587303702650555161793579342154061421300550305186499515324350099192486403963304669934022516025746038388954994458087283616041551827196211991236984366430476239435798594545364010921293524182516953900965207011740991577490827656879447658342362962198818515333249199283954874546527703220781458905080665051201975516226157416186915674229631216132942057801460516714140789848338344501618414193258729259469246955294822552458138722680504437133362152492963067952768982379652112217451126925987982379836404757733886066092820817964384378917622750751628045699803335052160575522418016671011502288760161632669470481388723221373699375684746301935845789019486000383106253810495860431786604121544713748567608373101708577070040671252138806038813595280392625592638116999462107515885672403878969632782344706622208787508480020567996198734427449298206047631345777718680408161924240808779116646341949181055818682489343910301886133701797713506476710051967255121338639237333157982145324724179425049363702523400528052885356231266962289847752554700335242500801743629494266749644293731608061738010587705381448401181002471437320400426724835575378206186434400480529496993985513763166660920641089251796069571186311248773688357497257421898061005439294090684219961721303928652356625447865843421208573664564507594469878382991027292461279007173129885909250379434554460813966935357118956204985444038005250800092168243980962440070652020058072755578819612216617473088059597616517605642689766123475168557712537887162632167058371201796330611934777147106465141262146467853177636133943730231817110297205371227498314387796201525806461890528870515097583310887416595679881961787038692765245350015185681936090287456666045314831098150269361724580217445574180016271023260314176391242818303596444114891385323363417931183569884545771600430360036213313793095292683227654713207430370138102724734450373637753200615162953275506952613309597278253072329090817418829858273603686011810385432869767545563489061109344429378387103496052799895754328831471575121267105814865793022536546000655018006246634534958985927690550896114673979602765273395610025293506960749688652407502756421634540831273710260897634751337968851817414616094002521131216048863461872246590370097345846528352550931403247089175592173292670364861852995449412155120033756454910272236690997718847101236287461734273896407914363789235026666667493974652236253212940739967466455259938856426740520047946894689792102188786776255938374469350815461621960442654736403839324415847986650031286917666949734894355574965806640682905422754155124749212600671656331424089678741780689002248922848054807126292519364137465061648370751519729268226344013191963325030185145333744578714398838854713960632063527107061437221590026791400199392173342356976144911120381193221072674303056475358359138997716307768430231870643950336200567407521885882790255527264936062934482898514032551246394961084456495779017753938443737512953443775390902929495891084117274430508797443668734875294691802131170825418049852989459361352750052477859583425205579268129245454314438689599441836564593393205779695281127036482616652721997526303583881231831219354513839389110741223037320291740725528568122078028322986799593818280143453251344983445948771009989101239368022767690362774232509343719327157763670267866129336631214271479087627001565300090514497480361391987567872249035033703641676270180037614850049728035021929509842498892502290984939829029511028554091695850491869757468014031991677040829441097230535006355788450087102661441245826580575157030791908250860530331617502200477011134839821324267872119358378455780394242158574160029209949224027072447695609720971781920261908930230950470058766599397843954526494237572473901289500016070133742422426165335143195000209027749262253479963436474862005997650307739158407272231335167948860928034517669380398717780160432587682896115106674805378482398269858913826534917810889660333805222838294975183479288166472206150961085941165750852006964874020651916715310667013893088823278604744682256468408649176768456936506651379265768430832886264195996746988021228562822533730321433202195212016472889725640860239109479769808078807273267314878769732275354128461881131296423365924124809819429157551903209669285781805079807212888928784571329453279853109269934776880015497217175006074070386528866086442461828428269900719558724154026493521185605829171708418559393857829080423688284181700323181055868228633246924297277588623832799805169449473885063091199222883037314324129133247245350472928023238985391722940712802564332537506133436777717760909313316864470959512508778000190024581669550342600867339352708255073184930228526247011420542467593376674931347141577701707484501441778715312829196192868242218772054565018300730147794485209782345260650726099185552518106405682471531576987116142086649162640217576710867604169342070683537709557407827578671049026155234166385948523669133032378519536353674028504572307261487539001169526551463895626553945692039713519093449985892948217938596318990456188876515742928400094253913328012117569403008295403228573125977025395088316516005067303755151777928185733692786409076503028858797099729231153005005964629487474887355286208904403090330806561571660460242345114227567672381140058657333097269033747420367115909842862271208374717946820082956110556565023568075475129991289224685081634677574024133279386906022194492117789721281837371090352210401103868349035218412007432575372407947997125617408106700149616776213056858990758165214323683624748645214568284919064505002925504345646177607528474482669642191788882768218736654382219239817976020228818717447548618131622752307129601804085013674800091924357675701288701384751322943653803583918164999932344990890871014859708277348465173838553415037138217148797821976688557977556565680476378396060237379069930284000555453530060764654216920630463189411029927566856824907482197004367349071457549998680717657763314899268509048232279161901131127473706403443083130215151453588995726547578938376772434277446300495606093118889806056806637238102687542750650633857315032810071994213758246890391116973745949578326801227196468288494527941829750756285724538514588904676439501681195775676713219147603256337845760973038935723348084907799691352596998420532895071956598183973963607711954009760523032864457706242534691117098016137251452211072510925310828388216391808083530021966853878455261206781648794067938581163645513590969922380089987708090764406345575953780523896491204482743857456907369722783633753510185634303053112358509081146547080736431519529747526200998362695557070745702009138682087172746777114857818924776785880879350576237227816852238908954110372023760015385494434025240297239725818621434877652594739170300251023776945680958686488539306043517015094850353799469491035823246571755433802612322894479096823427295861764669536982880969260174178281265685249628849598110692205815079122003539450553699105732616741003060245756169685532835200385652537540663219211673881065836509159688844436328508025483851601935811764371070843440566876847837577504971105832630526849505456007289876721201579863418843340291904433124757765286943622870865774083670427681442378337372904152773775909278062043474052999097312118975034481008675502004203371414991610002417624753618213093978408761632757645999302518040752551426580196875852196935831931110843657976184630145337118483067841807995516703920438001757382210927743962601372331402191788950629902514359994359814609839817295664793529554883292283136445891614929262199919014376626683101057096300534419286529330416176272849224593688405329194751478774944255210903534908977849685589357994382527125237969696307687513231576679399593626427021880957290673559004036370974643494615065972329463693458577377068273098874966456943909334389317484488024903136364279546812866780623262003930672364782476028728136912250390949898970925724205501117523242388322474892897698344732637592096194209363162226367955519516009670198448181710621436764623313728542409158739235290339456412036107537311310648632468739274061772614824228792748777378005722816727201512255333870760140865753704649388202929283180749014155286943792277559739779306971114189149476240638339228226638631353112071744391323493324085210584263046593463555838435614743089701391281470530197118551766724590070447068732377411965373050757462052507727358390077239404443964685377596826665877304092580193025268230459944159209790523193814037245672248453450896088675734660504076598315996694755614887668499933350947616923371281889305867294446469569588168813291427847168617970655221658437400474446994149389520847976220543741147338303459520101924089789863300803597887909810714973065551831895264828010812446757074917718446459863977738617193845616865688960482195751856259249021157410747977435993855250363557906994254178867801892333532639458435182516361182429961185780750736970933308688122585018433450094448811792954429115038169654117466741239008040495239639061008744279707544714288460912454795856389873182821824218511805600222419283128062079045442297318106420137159254786495981531035950274979804956989117796347685062372877320424500938254803643835470300808735001651960229373956926961351724237171888332536042783901249249417135666743591580960079708364290608020374536678304569679288348727649750032711317005816590515782294169498085476028434776773412976342137342367593731393604629499207320066685022929265662233977815496391475707150625608108852113950540939163458031243920140415999426451091645287721657097576754922849545808941843201232329627689890778329257224150968057386933969391705217236487138967495996034773976773579202718498192962431013909824409592334391013518790239283881767051516284967575411745937282352608330524157885530444376080292627889749606098795647974901914809551361691263468080497914392478955462725485709904167175417081973902318490205979430349977623967076923564660944555748353299063413470788787135843859772375301592148022854210732538150184266884474978351260511798469506988540142281931280105931309105553738192385402490352090730268802422890551712825977327312324776584634479706398371009512143576582466182378614098589776451047198874061474026296452847789586449575208058416434351356517986296758868789832662532370061171440684630884859946182231974462033843628555993426636679374617989607424187486267278234342893036194080686559130570170243491902249260339580175730303693398954279933913061744176207394858049115058506232545536773684191509079705628727311656624681551929536094219070708759431768575330982138280569012319167437072281169256264388926641322099812574202074564162438713092509124280994141495403279423188727271798701150704865078563324382599095685534683600630438607686684091808979860033183367382277964202814362594071760888688322957112168549632479836425214474848184563303942890983724053838231221742888153871763710246237067137903524458478758038440603654050570845954680446218622050179486216588861764593183034941778969057988693298505946122066597642641672470854018334184485755426474944022176023374192680610822055123108231356190267869334306404982710583662011611673723491621234392418863574770298580011070116329248049177309634441992720608938716890367814466133525561867407071445697536969507280993862909915461226003669513306391170890802476173116400160474686828775183591602333766202822535979811406320805002105339742888648975606313505093381670108169781257388803767244200795785184650643271950249432756835439771326822718140476100956241592000210353893851197059213106417915476569408589455350854117266621736015810109823296213893517190250241082148926893254514237760068477886025029674463278588171243011082018595806886844708456724793620954714268027224291408929917515383517781186377222022735640486835340483013478539805188286708613127836691283544758824729990857997380393266963800530331559698641698025753504788832231411510893115947328645424906279070051151020269195021419020056617512374713105928215051821715530769391858375391177814033962904419506978968114993250452924689187464100695325985489136974164474258835604424391946206910889506276487826451707235586558951243298591893508387654773005256185703940417217137820389609374034955109804266865848773492217386530148132777538984598361769829108629099237440771329330880821759588512486266668637387669459160997350433437500812935825266807672987055112158634413257045425419292557773811142971078953489626003302257890878707283737900358234288283307102581888079866003608571441539015257532432955319113771885355106215487072112444788768028344094413371310708731689961415351813069935566857391117392747193292604042287511170700555520546522715487411796318953408615027631931219468588694349827029390389419720508949517513349126921265437983835255150601797412762249841087856111279007531889087767962716947233102976051773394127650008714596198184851608092451702682703209800809693505108826523372028836993941675665933760382193284282096520025710186071109343947874042800837296200696816669262792303821060762990107713417421771099997851579880809538937695071930469364432926436268496331474723616018152750281834308043206538214154235933478289516666121515581273990561574138829069862762488585662391612003868822246380538173998754425079916927496444582207825156983520910720134866440021466911413718645330903085279170826345298525480149203034361167711848137359175995204032461095160020161952328986584174725962549704836777005502060745707659426885414572601865623671702290615204835102289018870889478814002276674130180006800101345283520943796237329984854614253134303610918049907817161040493452112297803320322176453067577591186501383697123687026463419276346920079913208465487068465997372953774617798421697403726468866933947614381765648352780077807560281795601451201722052148769211075721899032855824422050271713492475109386688949836007247291760413767176264298786954734296917232650972182471166214488749939789012741666582947104949230783238546414115106579918077471619826566136439814788248223822356384711541501109933281560657889099349736686672952800176139322446880466667004042288367026110003177265478608336640105009898720547894450610511917159606589422656026752758026091999589433975518608992454489452755143330164895041380472828156378063862462646227942934926854602739202801698481672224229208739887116710123382649086416184076379944316719852251543790732792167474131317944974360078076409555636401694358813399095168787162778818566723899038554462125997262812025699177726129177960332224328951229537354228129330121085047028194891849704193885504381944742443302520680848320390277951978091277991523481296314446402135152949934278436342413463828574087836762330241076941314563751736858723264437755504967304399907289576678273960659950322149074974104957019902351602657402842308302784166940904616496193223062191767004378641859715414599264024688558559743747670336309967943230632552143905505566941294504701350299559979350708757346808421902472659015241571819139057839997564165586805875774718782496519596116246559778965697564166857458133534286031881908680642186936121050808504848763408150925127150139377048674114074578649457389567991924377549272023835331485403697119962584893813351748858385310849453365264192886111592919229152327443962986383572382450571243060424090697056499784314273784405364220223871678220144246474008474333888807712912916984894170188472738394239927220390601292622649996917765401630732058814866999545417939414490167330333097568316549476903664033799589848791313332762427207857071542126449843292583550306668190138668464307241401238847071963010065717346380369800672821543876088505389723096989066316116044071459935556721140671274595206705909899135919419375921828051506113650598186077235470093527411683156118683355706426804507126523462980175476660955198211509592749852505626093206442662836063215278123129146209613760958644644301910688532950403956969618189677854497980890454131105868158627876702390656816936266603532407878790239669369640940735659237656175104273307125618581265039555877568286210740061349729558450918249158004514613938316184332882539452826664828178344731822353908568549874099777672899666683740086261850662120431349526641340022298928806352292666056121465501558707106288375841698008649410806101930078002264351383840927373908769388846108035800547493487427005053530836162538882692586299248703399514533143412054726772551132572428335720942392418000446945773748739177402292827234039813150652713132706110275851070681939390226761609653542855121364219880875622449409957321528572028454042239537637383103941026743249600022402465983302483306427903472829314078091280796697673272502570907073193763604114240071041847494516170562902924590512643551376145787356148613817267594573475629917660302421823237461889096651532713264994387069000986395811428530854165844426746491076731612367793896549717135711008714786882373676549679497562466983094896208187111538010666363121136460402300470364802820152556726903476616483546719065656381548125223052759061160245716309169704080006340342883392470406861070819782507319406927298668711643038242475014574241484978982507113747863760001219728317497947553879656725107625219269110304582208003535812402072944922977779043340317481502918882635700546764438906856390285485854110310327587956129034127513184284222051738325352597701421129500197367552482678826536181220637596449771709823935015574567055691263406235584264434890912678406614131979192284984388130979817097828763324899669828516002793123214119189302212854207446943756168677087370728308547651473465943192104943320913182895336754044638680116482469834884551913142134219991371481829928876032409934683667104137976457879465028897088455110096554331292052377223778220787124355467372561112435387770988389387174755425657190016063497007803671419393214335611958698515505724677777170097770918437471765721586786974957919280409395200285237261265227116038825100777377818625972893231830275692438238196269555317100900015697101737873254782566240800045544896906630096857025020077359805435486904736932781301811993417945737336101126616709213320420710730569357688541960722169624517036531915179235362196715738460162087463618885443047372601074120778935125634477961949548209172435572751924755825212692648240743161723016954818056931793424130872743082821275565061423926048407002204555003108937253006556433602483146041327224937526626390653424329711419522359608335918011178756634949186556063990933985803433619513294011968354342464039094699299523825057866793406923193023291026900713218145128188189687946899809480932091096424557975630637794793661780602310779005680089007051167834027788077112842145784173798975010929698060951595511454396461897027919406800334586391253180320725221532619635994028752839155098547815222996653320302608325191688631724903256652324320767927546498869001833613424102355620198583121838861444505991453634458906545305440975872908705242383961981835286414915712312767444551376813394568701892482585909690677982948509649648640604383396856284969653916273319169956726351931350457519837130632897379112429796761265093051738818298634796896452634713719968946574857793971046186358360752837769081820729209982700234811342692584154067067487357159408648454411964083034947081677724631924786570316924673306589145993204144927310210855925700980167063969476734109832689650782327602128881607402204537799047792536306594530700746232571093622410923297461830201265179274093536633306639198457860703957159362020036000101927566194346487382056694087128999023089556889101640973078120896168379544574606838391308423398149506671345935357431547738674908307543621639439178287913214828790209641672140713813297056964778826502309652766474266692631342159645390726348519699503535585367811580597868525627514472309725946001765916618147875270654773597337969861111030016721069186214958996826892399308687429673894866219066871813078105233848616641926859046393011634105501584836251732922892084485870098280260711551996054428698286770962546965580374438512111854208666294913647518980521560798006920581507534755705661612112605511822190088476100109914891555114104473124410730461793492563921463590302023084609647346064851766078766889175969186499182964063911018038578959445369590991936992447831469071858447939287992132639169524190993791322468751244884664103475256532552211411816190767845796821242522326145892029088308801771658753437172688355795055327954822169921208753893448390330609333598356111566740369135033807791460919841035587164452939847131064010353572826657417399247175405271730499846231364342162534783424042419583722727643962657818535218573362753344025998408023564076324943337602645793996734535284501117555247716363931144402451189656573245248176665265890044783660684880037299905898963205196134753624424034814488921435137115962609999106699580218536927560486077960770117112053451000125257394186031849825858805722208597072498327848529609718991262812155867890071261441402013108194796050834042364312533377104777809848638743578120301427742478759744843405749136440691097993196650522194348585792288377221828144827118411774511511069106093862960144594822848403597550978110690719226822339023235084131868459645759096630010566257964778045642563994943866410632057701698958658701779398135896133790004072747495377968752836628846975815007333282365851087874018913941182324671064375059118048133531701080815837169395773807498004436648929188105607421665049133006077701491956875088998651114949845346702739364584867795055551979077670878911501462934323478732879465146792415219156046131999293983304495567318089375630139064224481674982967208246511407376069118389643190212374767364853927389056766064926046084158513195491330336106918387325486241351802139315603976322055091383718129512668005330602782796008154729944477254613293543574404248527150657233674341593056043772281846723703839652258985455803033008272615502392523543372910933759757837338216161259881340907638120384118476561746515669915806497052571555405095368070173306660888067465051572991962926186545922080760789466638700735297040162326463782730756856855744497161765155298691301102955664575691470749536353116869240752546000050609990466591134561505971327249442011632195108028699086715928679767544576563059298717994068499927856520234477372073088844694090219526951395940872253424277028835389879059080052754947889388688633593248390319043532919124973479715690444509420950648336166027692617388009235055581936036937209710230620444706053183106942554697499443091495655321118028438943881997568343949321180068192525583614603646171680958441327251809348152167881565568544334753703589777397155051794418987513264752451922340068358903853462142296517102024943514862708237481902144048290485237061094915100504419989592820376159843372672322469211087632883409312727375645324999482036025012363712858702165350090748010769621489512688435509869164477792969364623680384559583034935963705060052360871402615934928628172722763869654664314590504849392786488278812539989451245513418826152960945717554469147903357272876612090690608650241469080112855673532376507977136449180186128020737881974663702903415226796282960964968131931567859197172938526748293009350607249229015974846933969682292595125287350431727845192742962696646034261428325864299822927734995145734646718828819889751578061476714187866316371306215582887567391075999469121637304554398828522253018587066431439113134260898259449535504825593973962100603468961841364640304756903803493510925416023560005063335726587039097576137172281133372489108046771562770652636649869131934725185383494477028533378875255243435489709948810462531771284196846095768265327127807764111954005232427136565451599739062239688854195482537423229786546667377682074187986796744187999469506677501591661757445079518214665082629949634109196485666760566605812052134348604081173513680157649344647778433593195507269262792895941548586802671760119914395444681007064679448884280887282704891244287910317642357114748368424613766929968352944150956312340721727524458640052099727851642956360469611673110907209195711982356641012822610296407062163005696994999148998846376151593374894587857215288139208532935781646096732507150688887146860101555642629607223349309670889377150164080759715921113831152655259297180923802433719549906125692935066206180874867325727012016283044097053722649344260631265037193984925893583281969817783510156450515624269138098574515099753466882970891396039586031472060788465815133288263780707822080785565944999620959010103344819752040756477113154577851263244932259652013965423680160677978973877624595050678757898083446392373725011991213122553455536727195397623121828015181502292052768959506795306438852820450425966168861991631500693876576113001691069054250821925617010534518339072241403766223553262584069087601118634890121683590494601815160297303639255132145349724437606160079146819038022274328175483159342043399097467507800630136967404634232248776432190427755611266332697604276723105597317089943763807010313056478555212272127033156456413542977713107252863206967476113492531628032948818682979856936916621730284498452129785414993265320459820441870535121928583433335898293541588321368515470568757545884136956022771292679413326416309467749193270251487296396427271226399285517199678755440982128669624427335444338137515062840112601668234328870728750252628172410776658724200706808238357105718170846343550295764749955999213620894272161157778329095659616983028739174533848061677410546423840107987521615816388386773758916478666989060337456895238166351104841567861005702139128943673628542853256532494531287301988630273047901427184902555333548243861020606510799224896112182136855301365767865752624722433573784067352119938021114818990728074591741510703016467673411473549424833538444821609664958869599700791283551579006483878558664564976716156959454312132611286475282368586242084743139888210734240022729277402898854840335625387988138288621054905435492523783958919769772330983660662298789554395082720513563880410975579734612544756035671762035353242333171707903898931885600080066647773409929314821676334009326958456116240709456660745248040232195486911949306674886389956806413489050553399724837173093614317196046624755542142642089202686268316103850063810790309286021631353356953237526274892879306623346890617854490639932672433875634576481033638794622444049676416476695759870403904597026956566106989466764928930812892438621060375622492403687829918865796486527516707678007553384362481584039249212076708907826570021191149870485689149242784454145882710112553878257283239603782854897863781086076907476111863491111360703379684415835296987125409975550153703535444881335504987730258740919715381864178361294365797956181620850222626413199449993504886557882185327553285136801680612927800201775869320310560416728379020371554052045713543795860034983050902277198908173518209339577180287404023984636720012002304954109869418327788709485185029007719650949610327275872075672099273125502265927293271130809199775678453215861302951988822436273141592811719453383760895464229332332835833372812560987287400852051382924154578883461578169753026219989550958171874860776424781121269715230193102025140314244839988804819194861833189620812800744769477960390075117051034072650155566556171346185459961278328976838163049080126869701717473173217468276739929720458447468482205977861533054609339380217079919132162418432705708247575970409948382012833586491850609347855702999144483917753614425811990786699063039793640009083251186022728204255680811667666917552278834638374054330049608088504790384738230845194600222264919565865589686889956749425095130416268844887973801964436088926016900632381725573908526328098635839255085084313689208295305452474176832325013524346326181408667325516771866697573548114519659294628877217495112841482002219073802973747703210477334939697449158462805498958812489491083047079966365113949196915952760255854932983254009041317218420088536089189204672812378038077813155698995244406470382876270603666931311197788562643986307795598096192653211140335646429283173180655904894580486584595667121972673799903287018623149278335993081717287489617145524038993110933190819506067756310326166626416948701073423327976327446088831212738786053628345765758800360707559023172687123210036090317117313665473405036632039784843556985509326707957848350057584450187852765135527262393712615746630454814352851680637235198309150090015750934416186900324585260953299620927465193375626004534910760106361063644428004301083428092827454418930886053553722187622510938994034654872373865515591165803043747045615594954618267603125574947693105949913471150986148063769853411065756412679909222426991694402379760798962195649535953917657349021251510505192328222235315543371269415276329675943277195949655241926811069215101530312684396450893653141065823776306697705502838172388753448116876339900205771848762710417548820322770960411152438812776647244822202853257276987315813222365338480269540231130186255814398610780838576772306209302927861565549270958582406841103797428883654961819256443217007594126637103241969458450485351041159259524561518440432645788692855004095898045480449951898406328235623278435900723762194100775734772252058652890538296452464037812131299409354938893531305649730594125735424542053118325117606186317640006142984904747539755137747495837284466002979716012044325458435767919485702761840775693301512406827081066436975324970432048868386341608271770696708359632087501391385450944518336692372582291125189061645706322835675599251331121398655481849689030940028176754145205662121508057918303359767599055648681651221537857757318707214351184941285092736101637432632283773859615942907207588471819465410595731167699322223949379204017976811939940144770899641009231882250609598551110735825462915443596211999572850522234735760952958524030507946686923004677394600492343876083062097516642952264164620091909621832150468513260861810413751649039056000994709392554569530922062476122944824971981669126351076574013322361119192467605915404433238860378294612777519829765395081975217047906589832509469723253833849936696922055265187697737834381396255884513724189707674599559203148854490936143494593588996473819206073269699640693511093590504509359694258055671852530621167769799512235025750448203854129663000903810299129250537219737829464556808459337564668649315255449241069000642995282759329421941246477130498992393384216895539281274521887603614436431405584694870989347014482077205020847600958611635685503387480623869227600378610808930858047217651077248956294720603454522420727716420533122299451913178028536465894744088788427184343586111975522167377352752293024263006295707635316508747063260999743204459111580198025073640282698922739928597321791379071520336086448726138737187067307192850078736535148248387195893236201923719605633307395972042964754752092432600747433065277800473569949690154329872124721711073893559151534261869996162554060492829273064709800058360268400087876546662150099284428835097607075288907509856442188872051914406905094555779922477470951987135479865575553282830539958258673393357314820668505697114964944749618410179267287315057245431932965668097410396981765011912859253083872644393137556061542568955120617321812907591608266815551177362923413019955350583468130129045347577132709647473902459301895881376452909811136709109612133342045990902655135050349085815129243905728908131847393260192892583216446438987826908068056905180997924777798783359823563398156468030678692832503278919429261512137936660268335141056412214524479225756313086849767561537671740908205156361903843306405462904212362661021521061578468028024623032768010519841400953125289385875657424443978309286875132194388998023193275252073062452018285336483886481881569475348954073427311844474891718783145531090523470057931612630765601963665589989282345596382730487470327283850961308159064684012208717523896972765038758841347651871064221670528546497160699068097099023536038454333370750969581076866059386241077813606288210773504114679468303222204445296773828199541381922021716927993791621620608195876863219326577235105169403647135414642871776533665948251714477055379739136302156081828194243047381929597872589169147311487698643723385121341479212790573256312083467236948961797210712205620249945186594410297729636543816093291464080825143587564751365272180636826925687819534949782438705045551844781247244688544942055904798974766412521536478883709512777734504660414952898492801163454304578933879697010915061992218536096440243704933640038092888845677423438955485820652606165407811881333175485607519495434136270612938955145129348359254561560144929106237052222348225230984174726135032783824638085019879391272799955167617648180882433541652742649230336811796303157935730439571752491029794198273937212086856760383768533779433806080833838962701150581369763386724322100658056839355659212954285202972238563085701630145210545547187059762708827724285189636618555162708802225357370163820023298522353947131570519066604745494859062148115262634423348493400204533368952235566707635071172515591294081217237226867055916514592123886391613732963138921209787380962152699991523860577686318682551594281422780535358296831064912050611328604129753686163930211324267449941982388337510444370412862319356891109193870701092991716894693368628606555153502499889633278728581416147233412632030751863219073109704785264351630363204354079311586505697384764563670996526944258929704474505775451583752861878942982769957280751395142948074327444211895781452567694876640214105079656319034787616707244438382592565320958021413980187216461887783219624134160008912184158463848662595352295159400915018766210160829102245101981958737084881130864113048598500448975920492130928783953451664948382298369800611388502981235107795570217036952540137790233854111860182630139529020447506503114443377835187138147369328426044664599389703019940682518588661878255200950956234796508109804295536697380278007976476774318497131486418114930345165917336214372625739526148599094847221145745909369979026761481692515648758187017132065063882726070898415649944773836966584616030829810340128550938397643886663369524467668780291949007645368113129912588181338195513299844016885665761353232678218725191255603191726633264768430218550704953768733896631990106987890206457448011235696795374941199271573498659808697001062107860779770661446739597466457947383037959616303114696351790861156837798956655380608350993038034278544739775152891140224821687737049736036790478746623408749064289355162968526158396116717855512132789753623328141324602290279577529253519159831958147714124569796489747872459363791031563580779297372744812677945628069074302846250610848853752960341286299762904232680406894014574754582349371104868486446274992847253717601014552410784101168844412602467244522215618356354074765388804707873619006976895882383151249329394107493659596316367431507517222059027596865972078328504238986755829588603549108836845413439852502052874405329112097770627465214852509543098816935963785092010366338639250574304353147285830191674396484135109103616447447222249023524342251960006602768506865241722256178760852748144463010762179810698728343043961903240932999957944254829206881179913828651439689095895518693304711259076127400312428814478227334032854593740265353426627676006385455938677655453328942172108039501111247414985224995218005058901005556429065411482986151494977468296940329337101462864669939986386880954841977674150661611169207387498167318269101720014932504658067591514845034729269384180049501424317345895382588593814891074415090691732585357828011619652784805996874781111001707028441468817698926059751823049098788441118635964905503882521989891771273082690946153857723342325028450786324502966400182911238823730964312708711212371307007228583277877984814151552656804983909803506403847807515887755222778001202039365279995082581772237755407583675021249902510750573609492418353973327759486527982460996620322700983567834187074377235431065643603999006596238629279722628551157407090487536587065351055750538416256366261195486696745395142705682339675791462032288830949068531145949337637319463295957101034308843265848491335894411433024993768312033438755275079492318390347409882215068865432450781322885505416836587130497001923876264046702255752863144824633048721892058904416833607842907447353647127801417916184478492667784828572991443654648041692823236109871398829110573429045983566033967302572334088032942676828630569539482022630221263059160149992195690646151236176258580900313432411717300767309412353570461623519315582116334285221167448101814207679361520982727073492344885286613164196950680740368755757095674680525139601079320530314659072849740502788897706342446841624117322941724377846373595813518794636363457998375369022169235246795094488068489644567725407253310022535411722656101444476645812302185252065888170831065072542279079648156276314754501497129674710826367110115095869804450955561253834014822373151148650016756597617543268706640608296012949101572486748475936741617102919162222597303130814548334617890490108423452239320543232770289408285265964624238105572326357776315913317066340841093507404237680985854917425003941014936958484637401820752591286560811058426107822453155637322916088043066280278186854593373450068465167909077702347623196219707128381818783766371016021511076217262624135349341267407138230372616246425023814517093596989327053533646897026884965848971251540362189685933174742262072443449770344016379051716828849943333156041542032175185110408594699497872011844728833755604564212612725778073660460888053148184490392599722762651316149707979560509775520250950798166626735373761367165036471384097611233355052687057342410789769019723996612198125233575642591955972451444769974097144325109561557812427475063095015299428644220519744918537066445894073483001231219405513364874875877429625498313460005701338496281288836393035397519589635342099082748720335556502893283452303933893910741540222636478972341513285738654896364190660075780437472394203391966825176462133501567046626905752049340904930888009915318328401856521947152691023297727459106881682087020760406296083882359984595099965385061238212326163914410089403170188664927337950894137094513022332561402770567418387527312681388303665068890177963564163873529043427522081432751372068744829998056284293001561236841579955035862994326269456898522740286711994310922363977678782046094745725894726374556156930184947378739004772180036442007360613304906395604248273362902222551160760225687063505160707582692780503068196613201139096795491221452283317733759124804809858796882658622110552854873461019970561554998821072600428831609187231982994070905024584062967568526339414561927387878418357446319537412790309050479397030088112048297241544784266208175472043030567832050079410405110966208551281223175442551022653274514044631465840697379886993368711274808844427573922324547995149444692546364233461696216923514724487760263614942884600927315070223916048633149487234700958047101556081773635520824563903988078080256069430222202147554049270596626407080227326068909374400314239862039817064087504233978705134508522430906009181436455077828732870703335859253076450078593101612178801254356078415999793032356011266085642398055752061995808637006684658433318165209307277831916306755597610476270685765629368002334211268576269617356202183634876129277927953897790650483072886088227588984674634280158274712468249610447093385515540373109173201558368099841165367440466622724699749329988674530063109890865305320755859229426799608674768615161836290017214102681574712840003227492264663104503863095577112481166328623410181575729587427636741595123625336868224434236903166969812694056409714761068881830461828095332988803271413455516275007422021162711792827621391106782180039474389731849094791074532517693807077370082815901951022159256823032314458307752345630711364081072399870816628013794215859960576081686188984683642272566617315602035025164851681443033986605611204978038765573260614592287549157810986172335832449928712763112048122782181072350659799211153446404002773918685303022890696783145464411808321422901475911700718544301619159975399971038548888495511329744432595762614303591010783053441634592789507393901430824472874403248404501370368004767697114268821041605834843685186759932597147652659544462742065129787686914893181112094425384671475673208712943043064769815897404066585756980008115538198020083740539990197585099795829677978161608821540821708723096052434418921126718368443737559766143633204330120081072743953418181283037522712436232058950687756850389177048315120407041460419778909576942618688345064448976145744218391736349342817470459407986691353818891461557303973803266589482004447827047937923151616261555680719936850292506101644092680184834792639298472956494592722405923343722236464848497066992038165431816569973236689750081118246546432397586727570603553848143546817342877822409920125246765421029279479496659950826816660177890841459239617221666282099411099969753026107332005109808429719330293475388233099756814598003663542038865047963870568285660820461435335880310323171410915499559394568599374725547060895382443367773325338950208023913671412441408991106400569731324621621523473322690831457564291681532543487257560908685849853802357655327257615675269596503673155654988283748609771242195679470431932316476886265443004531054331750685850967521698284464272909569582979514907708808201338699014091747945271595529804971850830298246763498935349398901384742899350867191661289496068592789026249414620498958257531406523032454243856982783959269030645529711371397905365958068493456737087380133895402669598111727150467836386474728209601572479546395173826708299301571838710483605689513658191341622483550586104813412629775605414320101957234339495614185664713104064833343162214379358062877053326458776935296029890156548237687801687730241043399669037195454030009790548102811563100880555811695555721634390666251643394559730360081351242783985421231993255855025911492042599463360395982733754241215773872192511259231326212185670218235903568646668958993396483421377990738245152275499944483375353382165509759054364448757435785935499863634567357215700595601090690983503889480707934858165576565171563740219540438608978738121843799441608171255429609590641800355946643028316070481899572292058622913275453484949827939726645660099864522546736309330321260018821915570163051583289025706622294895341185948365033433614715807736063556656827557579233199280636992881704170270454319661071289590735191380087089372873209308579760254997139944986665731140230093039374534994703840588427080978474067442617791971273084728275620155241497640674233593433368492656015581068161613647917784872661385024455506028117658322774473010326649102328198061995497101009661114800583061822286657521609177702926077302062288612695051142448862600718340825873200128915500500816539551201947971230930665858482897718802497228806334650687652617705635293289143625953850793695767060436082742224035856669151336885148660414206063610252997603462493216436752793172707922344371406925760858693532581402631520854053518231154306908917447995537684875366113446936924889060718243281225221655832652998624224763248786488519578155330756636898847078823451462848363962643638675605471385502689806819554763258186639860320408808736226715127743192627957205990108061617735091256109349588556729086754225970385785159661849032255585169822821731458531974797830130025751395895486330708292196208801192914849973476763926937173632289765559602645185427401985314085009827995972087463175041442395571092469021356817867056802701156897467666777163764415073486307089224177489943225695249280693681566425330034292631520130607716312491538451257033702655027139581190991591346541437581812729247913416503100666262048425903438553460697433559829483921928573130028036665486960762279154868886142272593435842167394802236997654948045531591398957481225077625441438993424086844864795728105799856229374511492542208860894361793426190394088544904450442693790851992289658997891265105411912966331173176686771615548315440674856395945638550865985194999623546286519227467951332326236514775835626453613925491899058248427195913260485223025160153487514210645429021322282000340212866700523562170974404401747120143196741751005326743826851902863701264002602119908065887532594028257247733575121732960975912638168119374943397965805913335016457311311023767165710982175216719138125248359937386805672875281876980881234024197365666381393956583554621688758132613096857409646560215308101159377195114893100652391194936711136397541941793393981737380519604843896098437871257875186057589579220748148627978130625000085560850226401959517306640331047695002598985672562192537313117103569853641198041101235126119619439279308839969912654401540341971867671372371921605782617818634171198644389219397231900876575027725125267252414027224937616308104798936181227849093278553869556010971232567015636607043527790016123520863922526819738003560826479132972270952064159907312246454821795376812159878947424063631049784884259464580987991619931547016939584722686929833037676589076533625576180254376422353667948588552463718197769810338304908420378895308890896397992015698794297421140118639659162798639592561072630607525037239246874662723694883729333876046236709367037404421641104351412819144160819122287727750813422402730454462454148613012907827615644136902558282164617439792152603109783176773193548594101778978534425569088952984794723819470910281424869702775974438467627462182682142916212125180394250943066540986434629945094352494074785659925446944201922869542249281754660022599468838786546213927977006255666598386490864193863361252867595623485564301113692608902885096900849764078005460891351368571978527503403250646580701010053667963482693472090503004997427952237380764134961688667193278594798607067021125914526594231769137476002931918874432549516172711927462789906662917938743953882304557026431049051069380762250834894671734144195361623734970615284453190747326326075566125154703266615283083406918032952511354427514591882749508936103247020390775612421672307789095009032586446342723632715817704870244736582266393106805224108503018039605812679711027187204844578008008707727136934215980533126126609340620889651941387879450862550522883046111614277864173140688296212170972928319003687728592610325954081386140770624326967904979944021052727086213472960861632095696614540598399973033125201413372679029680005666178471553501370121824608006350982976623940601378039242838782183394359144269105307135221798210606720900235800021198222520164413550285010477844765962366463034672663051717624512268056318880448227066189161604881512829029532980686022856943354531636812189516706801213652291474634066927459766960859577581421897569972490547265061767455250685402192777420415035806974577541413610821717363160779877456213080028364665721594402411174474138771266709833323887074096574947146176028990091696303967176382432671074647169260503417929944606753605050547528074987299321029631346270005443869580688151127969069208063249966631694603453237468496781626658262688674723619602452332859563452685047614341459758732076362665283152579619514171433304521312847547014709818955676198729271702430428344228767987483188124149336666123178002230803552732736735519174283977512369575032743559077611500856681838603292382035650097935556781077304260907764875827846090742853204698971844207617950931772079457099022420049150692277263174344139377475259431747399929687921650087486540410636001713817334964277482531437343006465036679976692645302505165779216749094851795229476818773426574119578381444380292733541221807615381169381569542966707029139090098381504586422190289204793108222034525833288940522551818375265020809178701548569049972579391613002793538525349500654843563279068821846502828388955658512579930911938951191078536505167833245535550582169297719274922621487081710294514518347412999473796296822182905603873789414573274221756282493817086531240306894420276802640617494671338653921947257521012823191187758210460462824836710527431076675520076815541464301970662818075389173432186355651339353956069290179725841861414063754949604521094708416226564395260644926220218618974494101970263646781252729788241510678379993552580188545145599268057725706045264955969095967936115064178553924488426630731929414786454484223631384826553482327277878715675199262510603038654070935621224377361955047895764421319000893916406592884272993109697069944921538883148063348502215964282810313696656904048467724472916203403204877523164153096726995202046030586150642334950139520036383141457529075566942712538935735912949607201035704459575172754229719413116067567404440764650509601800402268790467243015240609141268872938862385278351850424423681708520282933223413590610612633670281483036975934297449865081039746406767656435383218880610604459722220737366823177726176212871673626891763686810718832775805540265719147682845603629211620483706976795837226633227657599408111652671899426290756212685879620360250272730217131568258166829462003867571864792541131873142457102346062034832186696195311269062632591860491756232585208686835303883672140179018606370525751218365467419244789655209890013169496757689043802006185874009734719789117808028088576473766282176974065932964233017930500444383091977849712231637173617528557709586309009750710518356926858872541043772188842391613784455608654980105524526786183642234806689098606827422323354001947824808561827847205976706154094419820356871501627713785376314017230458692987988888204177275982360466800070315806399610839295932288541306888589351408414453405943645509557081364774341574647709052385154478616192187804214996998765317127010819489393433754953346505301921070248619682326414280824641963011928705591260255082233045966859874456013333135359665191371475481362460043963706067385904769059310707695152800321756992894897782672574530573774512965979932628610302485410252750868767416541236517324656353898398799392902794678739411340408477716616650679147773869740624423050811820368180819877609131718030830718604008095296922992990085050606184738724897890043567213091712894876389694354428680569984840498122350189604472155072935605424685259151303452351840413514958762580107211090433699603737749601137608481579843600919203341726033853091376369988927921738116741898341220110567075469596794441366909798048178307996684426256027507252806291653482729197212155721388248070911176958559210428665195656978101704400291992705000200048741555400898990950206850440703576746791616520503853746288638285172573363192519219840578345697812264963081660484305513050674804325354135277014864636907838927080074559191579861075592131422831414865778071214727120311014484541967089471608641753813786372440176635935823170986419771745009032278348769488176985263846453875341307207899027887549428369268372510477306328506226659733659401921664086335180704870452857365180944839432387907054504948296268269261806551120669211429384545664470406065007002445490331070295652977980554552460753874492596525254335847018002243270209076173855477190154416550284466846149578161729992508339669392419411691523778525711910965570353156237207970451422867440979246412057017513391916868053475824379066072964738961978046733585999801508211426249915067843589118843429310930303254170608842843640270547980604144282525983087423157280730021990163323437246504766715853671420038726311055830673645982798682686814786677883498422610076356705601182268216202734674081110859247622569714710212799849964680980772436934039246044094204379503958354466702360586814393251727466082400509929709725632361612859216392797025535153309026778698832256590596371870812138063496280011156554650038562735242884919151917056210808751897899320072911066460436660738272785733917672603516759939193239675037397722942354274563397430727072458914819513649439353381832731490853719897582101972933217327075343515967441318360743861852450000998350624452710666965683246718810337534137492539421364358533213922288391002990717279399764132746839852187598920330136272722183610070968912467898918792702513722304529096340335296794104721603650046428204982685574748981306662432734452422869028876309734794446272207965346080506723569127630152719870506353141779665700394088751690419912001467495408030239905432467684883785966252384497023416416410068595107805941844159059331986398733436984803586741952374664248680983618371335363414209003163912710148520300289498810030045727495020177090988478407003522415397039122320031190129515217183937732523005571552675719922984015023530078705955771070475667463366722795621108207865550743813544989272624260004459152490714881612172265641879901530460692928723710615916050733968113649449058418190827356433852975816343824878570281432066371620912761580487155533818564606236831179765312740745475718862989526529058030081482136119734019138203875024235190737769002190549106852447809446110094535683168283260643018484276111702082000391451363600806491050461634715436861097606363660646765589397892712759429095639306898249014816005377291933115676535699829517327807710168811066337782859580070804360038095589903641829329712757674212885020115149898991558591936188325002242631817435027221158981405232827278729094932650631027479001875601596866783399130250302012202776289992880366087484668279617723137585751699239792688147759208457475480632751374216357098528970123540529725931557422614071108316336156331494270007791538179005379550439341902351272643448141852018295731062888458763892157691818086730591106076672294540754486132256871506570713490977324982083415708623072902118776878002786317937553889611024685709826500648683880552269838134233453581771053497361030117575889809271566243209855102644336077843227227312769497158928640843552875303606034743079402114425701922995787466750110949616308325297407346131150411973095092033935747576996136170675812510158919403138707151180274718223664385242859317092081598981005770850018108864338479375690094283645697399579460964805342212097549988395955691084733859809286741394707661598805988912860539568080082062901103481590779245696909627131008363384456058248047083621166024233548158038934724871753851817117762000529063698031676848770776933394975775945223832299968641804588545463767433131589800228958403922758906903030561060945250747245476778684224491580675277498905382154349702031891387803519367104917500741089904332841830512455440797540678472595342882394939954522702683346639030844346110655479812743163725415251142621038888523910552948265149388584584626540883478360855388764401023839428039840075813418091761857474065553161961190333093071882886836871500271397813577940951904520700314902306944138431888714121933706849796586876637906825730405958162692955937059108574444766871396749134607504490476372521303103427994979799663105574882644576274899848649363407897380858211123603680393528934774818668685677607888081218707233514224651484663300160853314401623430636936024117706264208951137529683178568957312928808646145522932463188289953829378073147307776505411610410754229872629039169376373461638624613860411537953811315821261438839921575989356266637498571679815227998126351991338651109964400488741416214652097417768826102402833489342836012870462909366392514209965437657004366158646914694331213416885794321792865181756578981054739343211117737489570209699326567352649477933367274284784877063402416322292869657375733094501797485766506412798108930619830369502970129415050878709767376130827882921450927965916549253891250197919902584657917820083354084315607045664782314868286680171526727910905636329546504122891619921904438276785294741215196809650752322410424834599784755311235985379567081481049827188596830007567761047385226092784201573548618561242715018221845881982985452462418895117027809796552900500958698469894085786793966718379421872375923610173981877564685777129342809307520148564301189601102069302514404208353672430448160272384156974023344832121594343086505591451940483412416215262415513415301293701518253845792320818482579170194272604230074099724309344265380699619379685529114792968737556070052143224086371233377311863124865232415178578880788167100799108959108024778977107726908283829916934277342753647521108686171110083074923016418423058621326041341483394939394850759041897121510514723436458380647460063454909455067654117147782748857220452595794447959033379030478324074568746435860819415632293585266983760225517373975566556053284443517010013497618633197025287619511198709753663695820629253652635714630646408989887962344346959564702585902041824738430889626434058260072622100504706942341941569579494709816332164363844689083966475796218209723643737991858112248424808572993160910403313331018078438754847893260365470966841597928860445467402442260967695374634973979432601098484615905025205688099859215819969323598309852599310558832803114547022598406958526747129490535046515058212147166375225100121473010590588952614806046286382330170228097182528510233893122999851861318973332496774497282921807720752409329852079192012110767827159681222433660860894677985928415746711908287974139184502858039140325455032108621990988673633754580776294660221575959001099629126662204745201614925506652959213019875733603533118156401389651146837180559514275893710174438493578307719550174955964730816729418048057646023429939817511926371586450310754344594317097909508874652401246461533107714714171939332087651967989372486185411121668817763283036515676971480461551717229536168059481639793266524871649416734341562615095654545777045314830744651403817861497620971983475540853070195752973556074207140464846021504006516562133039631145925500726617785431409649413812210096912587608125099818220339684316370021868969553908595795627243088995499083689220055903817628862034602976541680042479872353268980431823253245443070305800807419509087138744819230349882554611613514562216585872751135255095110421809219061724719380426573474599327512133572871159578938119002175828776539414013187825858023103941237081445064863405402153070676171504260665235905754660489017401998832009022120343169025636468892773709756803800537744060019990039922947034880461126328391989931707399137282309776327725580648411204742967078788427910434717137817406722175898481702896940116743879715091879642055405269951570831337390212077773062582116310679699985399594354883350686927256903253919197783839252333617158373194200011602758288029717213089382426577687780817401479559046093996124432954342793837358190031337159641095784727817215926680845758922618002474490268253440242772211368311631118513759931624793123576569794163529437280804836157364252636335288964029560454438232906718933228199954785876605827842407653308311199540079381609112429089389006010691511846467379390689885590169972604687815776065057257090293551683828969203587109721233646106487250517499161083476273513649138021241335121394049063231851931379748492688524075359671411526018897534719104834655764650240451834354587619485083354556217346418180104635614697932680860125549812228298704392873549288265147052655588090233311432556486198992798211654277888656756825986708386251692652772469098106007198504391450296303665098780035306365742532455048707382827384536789955036968474771765596696203027441339676060118337431956855515528487732593371426654947411699097900057165757497979828431873232391405030104480094751246240750188226701041323639899561148444650459293565002703283570502055640061204703323731389166341500959407818056441123049773339062182673944563112376183456142771596108210751513743929869504434244178633260659709689150584719811130785587889431864154933582665239987935593551434034180201819383322314295902738446332085527548652565552812065111087838856376394728144293355470053971382081823874056953751694041316008779829954240505817802043281696994831524240301513928682699758235307023875427229087555322916506968354355964840110864485505993251815396078171705165975767269798429194415861244175784654719991206981419345586101997321265173146304347019076969674642459002080280216203238202482191104930617372579847997729734132627233572218469861105636684662279270998906156123824571450622196924929625770072241368177487015525169812552233507704389363546543815740407598858340436834798744285328464642520689666993207289058342181730454898218867660596409111019391068318200349866226648841439817972297612789109304967609738894178833297627265036529154179769351327911649191028613889733548489603570444103659612092511515168729055664397739056306821070658730388818433397786433076787759099323901375360542179463990271154746660467085917099405435964612797539916271265507410296597121218585592157104853687121335428055124221206868172145778215715638615207527508539701410871345173663761361331347938505937997027442755433100765489713829496756039851375376007407999404551565568661264404899220927983837688111415825187867539157036336545644909550507232293883002223768780521774089139691513731145578481662565366845308271399363920521650592756256766535585733965036356457910970141906318854188448800209805036581943491451047529030514388383533707748907511472526778388765416388840355607884025318317662806926150576316004478365586535656306491438249916011252479027087996254137136264225056133329079708614104194541447958596369221470559883448312135656415124519131879919624897817173777338385433266919444564240944946565612923556703987527865356159786890492961104725259515003128140273145877756510606664303678764341034872692754980914657314415272303575135978106255856506300621237854866401880682189619714664960135796100690902912850550435096268748348188341972384960935894891376152463041053229283997769669208867666286011888645949280953483871914893635172273245129327648515526574249314642072620576182693702775814305285559762080517322370165679893362175959185277776783136801900834306555378216820247163268545938496686451905793930708767923735012564470645600021994453105569641259904756632307281403585673452582013018568264508657772585380168563366017129927042925802515247071013684296181426842138185819178627435085752801078663834046212834908505028363315735674124238155386952592133488556458118828177954751787662414028107022374952732818447430010963092899532418441770792516790873167108329576644346192582916311686831723874560924526114435881155576702416580814753524411746948304337056185381579440058290665211245873838069737759080349761186813488016735704693479655196077100723216658138391099634613624267526670931167110432122405245152945238871347122427918506770070322258073802897641928071660302950315129383871031710347718665087164938242087122790561890353746629688328865554749184157303503378615373790982444583169441416911278349785261544900450372224998915535484738899545120400799562740001241855668396705363082738189467646409469838773611451141924659211326625116744362580560631522511414206723348113566094753925907580786546588763418394940714605807290509020521887147949912001068607921489413693848785376363577660419366406134041370091664875266706011784945062130872814687439656707560547639776756737053959466059499624393349570116276118411778881242149701429059009511640494378563467475157742003595725442464317852478057996184941910841358115506379526777534677278785296080013147495454517039765191590649442007833732045678138035772787771079615879056287481372408953848936020307064419794146629411980273244952846268131336305778756797645966461697026305399598679582279862672151955125299335160095042510738384396175051426503262622095901364987133377770999613214744849326789325014792237887805994263575663241939612525433800674886064485309140233661045007339297729913163414520231213165025066386611844412662438347428438561573783061709745106514547549177083568066138785352329246814356902903754603638976109041428732473241608360321761290902637347978525103162029406309667009956501341087381633528090593127570545816192396775671642317462155083506286350221269411311115730442523692182454893624543907934835043097929047012279972578988950328068012310998719369603669167057588194263903835839443111005727513880985772989304336249654616749315571862817406147536956450062196360461138111760206999273719098734745095758674950002602939205959403283009718966206891693368385056907249863194046526715820460538560364029674841230523850326465441597006599631490376682325303062411081267300809114454539475136650266606460107781026464266822485963701065454397156130251285319238083346944884381001697118976890519423888759466619313314724342168511284446896458359911986106086505904934021415907919911256756233447295234816009556726492440067420034097986562189408501856824998793127158913173172601619608532085755828469093601470501715387430229182552738117179829615540213147574798294422077782479078238457268813934337597354316283764887982416411937910391447417211932169780816543879574821802623200447927979975788249972821878067238104862950947826613407036134324752345485793590018689233457901738242565018766237957487658528974495058128376127837155935925099027330317498085156763449648264162407019334097364705283839519465145453293385034759927326685702414949139899633599619312947992666629264859399910034071782359630129925695402903620069736728823786666083335091465719166133336620425917990789274984975429590570234508015368798775558990095769216435163781664681087711375748946463997345718258597458648497770326529816965931492330975330947136309666441978035705058348271657559702203187077354512860715863120194933744808283914458555851994897575814122112191105735613979582769833644833961711017828243267465398019993186382324659489973102504933363780594871600479720448456000467317733530005960468477558911598582354841916015959075087914233763438509586055116727291572236003638527226200293488188976722785954919385804492293656823182483570695079204546511477265980480672359311565435178955522295210378513438746552968165014878455626255883781682198142910992091100653529397675302872383965658166862967414073012599857711476319128288819843357024216498422146033648018649408995437526411539188476184340979850974432445087839178998345732851930532188150954631669188873471527847013596344927659606691122361763591621180239362754004941981362350421861306295476871236038904677345981206423456743407908209617302064358194437573654121087066206668304313687526990068261409255424759934395857930910164599624180522068880804571781895994050401153305295388793301820029687324797432941276224331695427491856589225565076489703960791656589106922401291583210223224251798157394531100982259887290140399664715192045849063506288693037999237040231052067366202423097679333339008156208993591746636497288232461462160861466453499446560661150809903628952640711394832545273245818139559877212286666795458511281486522912246713088131423122489414750967656939690195621004800646013792416195730981712146032715794996803843426417583085375092380362329739869917231040012708147100630006511996305098764303785429778369116930684975408279836746603246264214634061627834422387527333744759018395119874966110657783866778887417674370977719773589008922545195108522124196035705764003608981804130081954761953930018367710794517658154290200005236107157831750891586509310356528152108075997609641098359319686762537598759616189974183034198068834271507245204421920061183662215612518950991585934211773111555499525925724546761439715180608500945945039864287505593295011171589572521818257736389341679997501244369778834244150476368711329523679062085283790831063761129962177219000362542740013573590866677407767319498441008528682440871248991093366219445501009557213600444292086387195122720920724428899717311508153291448930748599656345665662652582324833996112885193083425081393472338192025005552030946736265686544648327121243155598098935420853369902213673638288391251986752711565057606571889752402885889906701168222835666815598012327141188883790489829923628164756543540800516620584628956040250234037087165821155867951393030437728972865776556600554387121715239595258184940723048995858613011292512546568939163858843509864163615692892102005585099002889824656144564103314279423886475811453672098974035803838300356475335141552941719236912612780552840817988087599545547705264925229042230290262436364699033044484720057414569379605152754455399703861885627457901904395955636709819030882133627812966526459624815178015637483700313082065846764607991548610012300565162357796919161629629414230204744132025070988375860299797103997393187225209871518947495477346756667701871757119355279728856272299241190753420966630820307911104176782504242815076548405369248160875864354152598050487928321901579720374378788918909719698835727773601530053619118739037048746400593596443330822682464899785142821393677065877345389561632056241377638577413233552521290506764338346252061513948798402408404845290070180019692143310823365163661371060848690887706421750966091030156635173554011819252655443254805349306919938761608655822711829197373040535981284902967589382362026802429483565141522539944066217800660829924004304691341349671979634384970851404689861913242009732203702660855288010223809248331786873720819515618835579116367940332177888951163347410014780902578988323972353224173441837526805103885839653748472839091860146834175203396547762010940475122060259278167247780644577659191487967550356392765914235952056998723911845294245962783536797408885850230434265890876149368304656895251461812585324733475878543192145406503033985093472694879469561643350281154307407263954328903982391357529490789469349612090136697447555784797089085221333305761389861659825086665447265380614090586659784770339759911131374091600841140654523563260508764660728115942879880614900224712058642396058160711953854453909070796464880757127502232880920693344800194486921576996333440103045478443602495084455490977204917460064333820631009177937168080411945189994013669292339006504111074226114651966929732523620446013038157546925936573313220058156034541413824350075174379749722212738559063598433707442964434133781845112485720795987447828822107213042537172056246131470357965102773420623426212374811386337956038975300730085880280694908440216515028804091680451528123853993928078737876039864935340208654965838482347537980878706146501261957532737674479692386032694556842127767258664728269436805223892069676554371175955323741105469639278571362502136060687517887433830233072766612972557814680228142324780351893876078506989880370488586989656228178915679134683782002054340791041914465237186247192132949384009276457773228970136696907962547509500588647892363332953043104097062992945790760289138748812308673366677225185699296109158151644351897945872548672386388107275731050881793640438834605567514933071087082395717552859459381212014713410676014678766636289157905298992943785791600613157341636387427014967493314249299846348205247106124494807721233452081126520328963810589265610817517007041240107285680519091903484963399859371590586194715318874879781534562812008374690487200451704365372699726768479105588306645363950978672871012989835594312088468381399660715694323048879488933603486316227370732537541668863171390876771771495100158844941813313410387253280081775433913720957635607482160868652646455038514278898938106245578379797478329064849157339997478244253153257034815009955301096570043767134366123898718786011235056993899600376678350803831056366191228275629445147327486547897366195069009936150352425688642076559248569015884761382507184045765088915676815212654423613046299427776954165465718789552052164893163703778164053339185855224452846911335693244516347101520248879059219020002544145113870389904883659988430487587872370566810154234036610144414122517377550735237694953775363120725802461318979377270323733496776076507828761331152217123369347193506659954514752343943091237668157645686423753022093770420679484849598196460696612653018167764167354951497106369139743312430917422097679431652040406618345172113471125699839495769998853228950715172532320550929457840374420892349229157401474054407904009405751141902817619800762648198591849235042446049681417056914639327380384340977117134098990602662755042810556918706333844101888429168963098633260033531025792819262992109671130144525457788679245363780579701448258254249151743518650197697273073856873017045037754086840633883381807339413872264335638782645611914842448355647371928453713716760534000099708972913421722651244859316659485219970638782046456279134220110865446305417448587745292283444737385302714057727566776091386630878262480374319776929554363284485099108796621173031215324688573837652756705940124613085729897268574230639922104463271546819493262960998665875158716294606281164589417035926731446014720428760169414553357656852505292747190556940926148054911264859872543637092077783979655451709836395575082742677870014043620491689973659684070180848020076202392769392187786184813378573119105901167325576731117669576214501162020216191367096351738861842692799893872873888918993629440948859909958829450978032301782897446854157699776109351864256112003081773510405542731347365879560701891276866775341024318389217233377260862203609744994345556451693978823309194323018565578210595057256740942295884328850789102739558398344014225466032058237128849083133220947234380803650420940156373577398265563198079957331822982725934124250679491998840668109338250029825112770087227958327803298713473457929283138995586382783500374443215788256873015987567182427590469720196005749682733078235979518025365568483035259050494230979542620309135832184394097883047557558643631705604395021792831427601522573353102363495222920660793003519914666860396183724909017837565079680253036002771151244005714131682156947451610925242138965406628785930791733997563869867859688137634657841557525396576479492126855834078924075722623019128192617993385997788468182600404070649416775031664044741427141085301732946782388282042664880652937658525784165284630010885798040069479676558709820796448173617359049944370698344412528980709115763247883462709966731226837375457395721822122642026299314520980210373313685523697975736516504260904705690850835490696981911244410152922250047756893315845149453474660046005587926395544316289097762076641008345418025292931703007851531685866573588720651929857510303593008516184775325266630686863469960970336111331620251310531020729858993993695284093518318356287978817394782116026711274338742287406997628335681120511778152026871579152573318568582936318778246070759830983852563580565023208333704975560841892776750729057502246626720432744795189637678441543685229574931051985484120957934848578970732178789800353220620341614378502626623081022685208095376335496324145783282167627624163523456414699916582435928453342452992038040429921628005101887210536002944953762381590640350212462852012020519726319835039640951982879045393187880779068438603800269335519664839168034276255883674365371604682390314365635666724836597121803028538443583860175348902404437185810766152473474762766583144981901514986189681691669403335297078445795535437446165228654299481384090567833342622930522794681198607081607609153584219057778898898959812481369208139599067151122370024284487107503843186782831601792042754785727007232401913258739156255860400145054379784635842688894563166418250283224862583303579470981722718256498146928463372591062892361393237801822983447340076041615645655508676670143112240996942426687489708925463944656713239218008551258970228623875071363568078337099777571932050184371897081163444247243104289598054708519869935587229046587412596542042651768862633198828965852497037827677388632330184266356181225460403646182121547148035413922557120550196374550570886340190078824618351189673612762891253022513715794719974764418766071686758150922058883650163718929529537847788619944037317264441672077552557808985637477484261153295410020488859278508281090161926632326683572178164937417005956067732241877467140307132038494405133278382524054343653662650645274175850327007861399088671460347074817827527400870251549610716394593037373253722393222666228285370272592582484358827469387958791794324719059265516416873771859812627355027905352528258983130563887723168964594456966365530722118180650215081331585844484934829029085767241619038555423616344672625591740304859161622109741636220654382572120626479543654605777469977165486816711267267414188720274624568355696540897418068659141119463820624698640303621113130374320217654330127389675448629940559567551611857662330247072142202061633109674616898431118541890924930925499393202136982011061865864323438480231659095938794198305300306963621013334366066082550789720628076421246978425057515380021497718222601789870517518165317678662362127431012954790768958062209890369852601965234702105269308251994008583967762414884734457385419523887237707777709457402371942703514861258717412262293026437889668651726587350969212705112341624012053128884804483723858598509162391411583115228888734491602519201992026521910078308618872719931958326339453817751978890896290611599299971073805219244630120162557522286174248048728135986945678471140107907507658038452234939272870129037394931316535161801792067696976509312841003921463905004002547640203530668060014979622115379614021000977877676610857094913188262379065369260191741182695100499435579035297955471441227664457508745516219582403797547975146633672206130477059755101525753363141454322928730546497227154935929131365869418957574218700443236051368767396625965462505188582240538054819285642300723282597513888843492264653192708517746541214082656591884797044629856316049116819841848588854412118102492571538786064938009642079168318198121624266658012326364535760135826822653485840374475027365002060791770549773623688474181975472448044480115155480720536655125827968661859616971489788513575431889296190175333159116437932844604378423285938451321659749922135505200929042700949988439249618222614568614836753322356253122753889833528544841773279798235923657892170534087885093434432498227140278045779483944004966343919421829782903144843687968815113621176805228701776275656381173135893471231033155763175577801266303694541461135297124883982629597056275105455701355963723161990113499959467256964052010891408382044065525346768978545522434207021018756492324688675278814315709577251665193097074795787520864203728394618402212129594789829886208654594064610203766202698912927741605598526091311416348675653015610536994270549794974712447390760167955202321550522002247193788255818251935568333165776839796350738425324616135583929495313042947816378261725532521596667998372876240163945940870670840647122906213838473600004785074718094133469265396917748927009499135417095678073150147431188325537453246233031953885327960291822797347251650619041210058631178624410499177793854010450070842040737805997492838445610542155447941998649421912985751590286820252393065186004716370102966128017650426005309931497846572429372948057636012269190361948679305292056467281909026433897704211917914604893025116615106155339642610305551674722220600049439704995608763524406061024250629268049660941082798710604066254530468912462065378802753410195962660829783396354358905845924616858744400353198787041424224248662314032824405162608138609802217577017284842868109282404669774319778184170785095033938252359792581960668015794992566377634224151009046099266345806274015465253000569467848209790192647464313030719469405655762588442333427712831167987366532912987963768154287526122524238649113051979184561155697429331748276469867405214481362696906365537735053876152111937851541064332281860367043576116788682267972120638628107068267181632760923626972061615771835497418626051905695186784398028608197524845975006492341917223854137870420168977596242303111554498153756752933879405266794458205193911022283671744258835496598618205498523055786141843051002691893770271646180856176564830825516933257979361768436795546781958059971531595462369461248954280730240254196380943627245432935902995208375172431734467445946511886812849737763650502697639036927590426205717130296983164571936511406124742479944339145771203627085767299594829960920797463270594620464864074795902402573246746505301096678191218168649350822379362121082852856983918752818175258577466832120777963377946341910169388349945410885779311202420249342023044768398629362437715007109269974134345043331828456625720613586066265094875951464700343296501370862334428382828049812908650948004887536086426094272473587885815344689916976782112472494949600374165161110379235293767409234235056076373902480692944275172407005910090244859574411464125892888369855161978783868613131015716736579707306402711142993080227420434715571324536593196699025650377016937117733504450014849710351125551119722612252300180102488211979416676183491873415383474556904987591635469458696878571123916317279956551060570349833234399895570017001220047762775675519771425616361387350068339462426411116989216373753984613987264838148314668836197849316023426015671268123563730274613967146080092238833042799261310740222802639046366259674780851112475447161221439947013905792245427425597182818093805758411571073980032808630560928659898691462886525011960569128126039388801088798693662431870939435931568084074938546386823520674127725273101017781565066762051777419803960424195190645725442343653589328494338211454507637058242505928650808966571434444639521053958260144081594894126565762225370817963144375190947302977546678383972634262236017031932551461949665892443227913828325728782455078478238460769621217365726006007221663156700118320138409182430857045723788485991692736757228791840796060621367020022678928832552840797053494592559629957870871469246326861351459135661728601061917697670891630109021812441220231671056130302713476106220382126500414724638168439718447014796687106752688497883978398894877957656137628640396663297138141536038718566912219513439809286492415337714735984138395224799421236104384091554960889058452259002988225905567618224302330602936548655682216624236837269984057856919521392683428994879905605210859778478116537521107312789133279333725606193044029429097527627465855455632007531609482509900939349945925435255614906506661768573176403053030227968090482177834327805342827726790075647882001707234706173841715902156468163838806171008391004932090140683756207042767060238410837521506535451493272687032396593836482450728141041000170091918970281327069713425471295002561921438256953301312255792512054767007373722265034474523115529955774450297288746826571388411559386400086328755103830838597028681882801512299543067430420431864198569166386487242439821946303311031706876204584608937968913344973993502710032274298376712176329249997784637764152137521210146181891282488736380887186403075214999827593474570024775157600822555688300656154070381518208194301695543727445490821927988412452826034402988500912874521180308540037025076763740495299254073246143495418171111901655702106880951887299557390091918878316710960325370383868447031256956114279053340155743053645657507702044274339756779347279764234992261957726670948452051480633061666421793809832322991307634627816572504883678415220743280128259711793840504183474636448371882382904337040934290847726814511422724562695142097800279929536783918833443337932389588505000328623062682198003133024802487090197183149257420410232826789134181426667554862075703533495969116445666986546717908403089604666906275913391364446785351500752457925984658721938447149813466577424873635360676773002367293585674746940560710641735840859600660112973306987996181728411728820611770747377309145475565409730870124219394584766652960769735040736581490210467047125352485303875506980178029879051126170714580004854318860304103823431807766722396170718001835724509220109539763048957213792334942374485596601506126899397527380909142310087163968775617323616710154446240096028444076871420899287939336182720818441996047867450028168056899052965190548326704343781470167378772519648540615985136197288866422461847206244859620108867557427352592241874323775413241683404394540193455794012834995664619202984876042749286743465910782907462902471122455920297117590303199656220714759941128288781465486093594353780575064176703654730662851156167174548471397171156045567317954997307957144619411682159279679702557254990285985381424508137341018694476413625599005388428131953125546887426363741017235996978406489322371965564392753132899595400201007295425130099801079634125542171164067276964988550551147722172275125915297233378782163255016025393834054497719978434684676370085151940679538753958321635227197419018106372040239444838178003159798358626430639361426500578201080128725641581625547480349517852979499988848776144239362183365424100359052771884545419259761143929192058032983734918423216536359665681521711360672551921598548793412228620380185852572576988393206147354138997057502101687031213589987449524041191355010137646181526340105462906481332000746552466360923508880320875195092722362030046495460737481025007959693123826716026329885943619386184748145488213555558293728886006202615373448652107251741841466900737423005633827738622930138421392920345379262773630995171456748875415263218758139899337570021078667417213202910884561761078345373892387738041541947198028804155465889667994747965327637509845077631836806392326926232399594310506344029281184949357823728970654019848477222467889003706969624840559832297650008182208962248881998141312027721324721300731015414465804206711906670833865728686985734611715527370797259183005477700697045347986617333683888460472937685599216042731116807054190555391628875135665191223401011779748440217356618683250100598039293512901707845233660642443893631850610617702018284345130245028441600245431715230105685824955849068235798029727418953285348502195721713450264830305823192474572383332215496620282443255069748467419145803442824409528465305395541514152432151067580189512886173620590396123093259075851238143097654653327106727531706550391805163661749645776085504187679653037181238442572192658336698144935307354455202342600515293771438707718202747621125890396962126553891974857436803060938470240700960401047964489194920856108846850265318035635034824700912578030074762974302581404765870603540446621400588245031461937228025748787406247262482528464012623270789454043846305146419268633068232965754412421304181608945567288886036663611050541696614449959370748840334160834016378338909579822798964972989865025079847166172560341547029478817735795080797294747225337827531125708244992979616743166053615573110998135569671586070900363145888303045349419736293312821217023940711962596885173398003748572419040956901607191116459200853981429796318527461169387331694010398999559783078060822609397952345294079020411337084169165528799385716225787945008677111444613074119228959125022764632343348913134706705124767280623386768722156382873201442124514052137197108003087004857719598001711496463807716974225843711753540118126322140989303675216214550387031387032721068444517854545376820646997325334550654273204596111822664467145919241713470560327353080137109340627029177381325969155762778116887123946429361089929104515915375059797657505981319526500126227302430594284980435306770384879547211990175562722102898668162129240278945340889716486089975781315048929823293646251049801508014495526225941594851005466324555174124090910182662892981729292171363017872595198783556797339209949335795061004214219067513138209910720337348884045400663929091446554579233278282202815078031132235326786478063847183334872490937677944357378132893524312479673531265231071698147203538442156014398265965089522056148815555363609640932988063113206446723796664464243704718286673841894957236510850347845673114225050252719519165519428197908347193597116513456662215860322507835834317012348742413765090309416423795257024073763392872162462308381091008996700998281156801769599640128749675640993489370873014419948085852728631354105378890043945958811503293510394816159482254497645579989962341988881530113839687734889260341100293167651047385822169702769225656367347882643220786484744554236241783064836980170714715730749403475049148785338819644040984057259829340503900492630576159854562446652783530236940418012252746301786359093940104046255844338884202280576162020181863206720122479588905341606152744302075207785993590877334623210707594137325351704748036583265618509488514022180267335138810910482667158338400436282939824152279921859464579364551543416079462272781697020905224617221883128945966702856868516288074804724505726203278506992337088487277622915348387654454805182635377002845205938955515079279206208300352177783172666889507827631521617256328854362908022613911571288107720553685406470403851648261622413396834138111028113823984986888673066747141945566959318796149747637427457814423101653304785125666751948060164690784952227413166172603731408311944515859555076216012923587332255608292964520892702074515451983169346707686149768350673083365221109843031836787436876960594319292504525764081395657781965102146770226222776899369216382257337120836868675391089377850076249913819050887092233190794514289233563857094925199724187123520958966466734064937320764754052925064875002806060041727386314633543149786525008058449244583527530089285121716671254659136509061186125407539417302395063250638874716078308481226705676407309400420812604388154557215296941616022575623731556871434689658067202316758046816304673681055970075303268249768924529186487509366187213760840051129710801003950429424527364158723037198197065722402779697173150632989606688089235463557461817619258619130783405617701830912077886651482742442122793095558804782340363336915348832490654029996717100236112532584763209826987641997667376871954003531609812335726352175707742290806995706128379498261528895002777249765946259258832206564794207412737813729131190542580746964340441204558040682961412680444340852475811256589437388773872785405660809303241259427960981191169832660374069604568888649845830309468199791822283959669017512941179736746525678017202246940788645356312312877863978350213200744908351738749437523333044187765537802098308969930076270666405375060081875927589865115624963040654073192057064469005371345019000959513095750794194275276608930874169999812586095987315306295374627331800139380850996690235963038177406478020198693288442865816100712703174610742838783740485251115377930361549008573974930452477818658088456614244180040241560531827523305462040224545189244368371826775804826566378255637040193740849758099841566510264180474827413254875219641316989344524502191485313179751021684451177248118726908299169951972758039403332768530677163500203526805665846460677140694890507688179073455174960607375813820246538008834569635204612124296689959971660004516128119900214020725142967483331581280888903329557946032660948345472033738196023118522904965499557936589000530350445359648735038710662376396760272883730528176200487647553293003736166667054954295421533291596862556592729771602472540263509519562004084525873203825636494032289032531683499380166845633224414857470992429191855174695252826708727125162108839308603555061021785723781850917616001630139958321872537990706996736765167496582119575117561728697281317318117105116787384308686559371775784212679968745923772964869421489969128974595169361333235654795041935801192216546543194018400874257510814423959264431331589319145279936335978311190762787343860964700316229514287883867168630461321591376263535722587631926517131835540432470799404795433049636166130651676790629557418341184532825076662604567427731220272405850940353249733731696612158961571973938326635673223585240133762572040588899711167941015480890193651891848537608222783187517096898111725054146259256360137010812715785167555343118963189140971751241582418001108913349460300102510784969165525021832648139824830755134551930261587806398897412273652260335031138313450555282080682447622640517776076024811320260024735271424784065528033875519198910297871775892412413068427395644983311043404610638468434202639039945330002714704308588082234051127017595407565630650809024773107764673023566496467833340351555054933837343131710613205125258488592933532457379554338676749271295407686367855895723326732213545150294126035825672458783535002014501635646415831503304876425663675702979314392268268557529321421966962914240971714840257231325214541425113531684263701812677890605148251573928225344175022316162921120820666724077930438181403880028051573560034536867155317956715313822929544255170691744627007896742449645420438879565293646709922598839544455867581317087398908252828670434728612295619286533740394543672035154799566027436028457616603963894035977630065205301336079153372745040199844335011509791992893311294689108406154473425772288814365093574911321429656118339300002376722929060040486386950916946362502848179144527184427899749035562414515788964907334829848556725575671277608734887176405582788967553260523803592139119497561471317952384748161562182471459059626302665174167518214771732935999751560300994872210513987443783837017146464364428647512764642479758975649447178133229977159722377320538606741494315014491784546566586942337291024641133803508284541183316698733749326369539677525470985507994751552780281677646966061024951673472258447585223159216431793962841495503080063998276664494017335911452423164633961203360463805604621444827409707800183135506179142583366685462067256578582941083741666182646332203596973139586382176022265336789430702611154887944419003313791298787719005984186100627127952544300027944800109258806439074351451279775029058054789967506757182886329817705470908288793804690796026036896360385945408928793669771054901253675284646244037408984336073371236955475625550519986293271891975396944691226035290259880956803398417359024051178727638724597694118331782923925067430981364115048510536194205306617367964200355920544308831163702224040853192696114796051930241684437335199446793323744077970194191379650755445441579077411433884201196934528881790487939444841162741886341414870969104502302332283069978655272224135846422317643473739710457257516376196810720912905418962741862972714022528906338272608222369310743640127170594292758638046299939862998681760915412228757413207020784838592815170585573690096996887501495848316335270380159691542298095811019811174464062859783254059215392334284552197178025357101456898692112179841287309435044169596423338093073920682218967800152002222018207872303480685058075046870414833322297847438906230332857840718855311355898077969018776540403315240106531565358359218989522683374407482862889097826038076634872393682475454619498585416077545730074060627520243514526896580660030380962549104584901490044282603096551197474002728848681327264169965254156903714090165516937035096450386580736506885638241148683615369438565401121749121374471188327912314696760933037434710532555627393845172692385003967239082081780285336646582268801614360688845345071422651972464960625435708355234019049677502450736035360027593830915078696882204100681855211302088914940508472814629076775179210765112967412260646000299679684173595525995101486573174718556264709667809791964822906713523998125705700905606472021317930964311619186835869990474600822759165953155454639723315758169540684670066573776555502660571871422812793981544358880005730659416087593882706790059720546265608718814326439760828041409835718949331390375274966461332654348913231634467320250633784777090859766375516415534728027248482154549238130004140381137944006164489958120811681318408413820015592657252790279500202283567568287227353691869979834754018629295640690084670310089978600856407302065362881040186791500947388050110147581359002567145254970101965935516407303138862321581723234423434126484499425611568626567129713906932249716488486462982440358311249453795722374465123622667314381501487983003689908327668728657641563037260265159757928342233176733137455437436397180832890210059334184455309798793842475231562130486888216719130869837135002339985294914975219302312105725304707506386159689660716915338291903111350435189480214926107203998634710985117820182716892670189772841984366644066605040474824219503470920808288455717793049231333606509923155184244430693960154454318857384777838123779185721820635458007293452960449770233306861835767215000167481935621410368596299114619960118949292179617698552620435403823108023982752324304155637671581145706363258704793787938275966098795211828384127192306033443202271030924927311614423477786266211748993224151773018183716177609303417167183929137309789618391724847969609415589372801138786658777988916599219799690519058103793558658924160960806109630171689241140854713166784619543521655450401094787833980035432166764614543736198409985286757946959387711059611284797857285968274139879324396423510201127597428602326819407843870028114614179965021077125022533408144561082689370855977953893079779837643482210948823909986809826779986770147513489985462535338545833932567718201732206751939911733165957555789058379102343165786576338814902733667562432940832877616257764623522420304574650039863866256582500035531778822648970551815318753131240034586640146407504902931911364133649674428675396489482315908066107166845743105004095364247067574146793854753434346227281210341407809835540204237612190804961405813156075842937320147034430808344923594582425231399017749941227080680375544891900774486561173301557900931312676771929920835829298722531925799428403612015632513803177430680680331327963848706492544894179846174481234437733007030027807800160759534099439326062800470703403684750882208241836258559185501168328709651536224935700078537397382688337480459407758266869703127397172523791782731065542696696626158027886082948383771803069941636721536824449806155322746849055847328448804490081288132351265157908254346789214892766937606921782774087730464745063405713760955848968609671966129182663133020099539220448432860052783692948138445037128202730767651950617660980690117238330723256793793752780168587661085025692108679005370510311922561548849626945088361946118101059654989404344545144578414166329716533042448723507534208566767124238294324922540788035489227435350402716953342699211578396532209961670783692047413933324257124566782336625583102861339973843865311437041064255307678323884876018196865472148604111831806691645806443501314304083487812157023517431919478338000176498205349975942419070149079558625124582306250847099858949515527549660705497643599514129889541909840901543990443868129619431045463417587147063091841002091659612073914704584352891296017280061902944203577028633397703495440290071792515428357815766728604903169309358872005161601549119759706775933262946418674739473162103545634902376409044438827456031923033975408579022149535625996419411395593294916240783881036726243711477434886436154606156910896857203063120697323629009071159537109186793617792844036866751825781308066496679466070417107130762928777606511606683135096422145010296418645224711964860812924471022434479176728325381209980878893384219280789368285694555273518346344895944524474129857453662778923904612278803733825387171059240830843361135721486388788183734403784220854406524666123286232620511101447643242389468934495345156349531066151446486845024192933428375054272363133036116908891040195977802512874023249010197448944596536792889821698715012696472058994890707537887165299677411127038809300006606272161575637778480195792313303634746877263683182752930981409158489389943590911951647647933239829479774719112674235427256439304830595365181661912808279851942656147972141131876389383347751420293267921677915621817394385149040203790200841977950099094037259667199129800996164727524814017516686843653232275370891080375733537527039742404138787062897695769320635606029474176589289987809114735923192628913997336176864992458881656417591783384226457804911350561647116349333072537888414083770086249082547474648580136018028332247984109561487317677301121518464980770761498682728760066949243470848373184795433911046399019887778383440365587384192823148570537620705033434024404100853111337076760784091079405481892032889172135028522049312538707599135568010992595723406683000401506403737523926576617417180250755459138678337605743363583467440385181309842255902441274155989759608774332884242605072790192012371928433614084004616807651125337350069649716541035023918003793152110498904879972871379080151526508094203135662885313243466851305589564721263458728891461573599943223187940503154383915318735879044585109046975887084597637499996326511105262497503613084125572118414620368798459407932720243842339314178260232797678023179332660787570675548786590773006969140234048864248672568673689323174337934474843018926906542758874918021734232231173112394251580047873658465222928528729470723574571317385249183640676906750548626591186230472046989895092403775972156349503699523896210122563770800361750765304877458337669474299900696060695244424701077782198522322864466729609722203925853712020574574001784599770588530180279966652659028191630811758273818288526509003728002550452615152892529226857529433833700740778855405030561993031707193186538071438526381402182304412858839133090129425811061205665782591053921948652815472120513541950228449984460861657422776945957757548182566141695223321004984319828768738012746087756654263876868779602893879490499497986572068100758090775972480275338743946221201226255270014979088335547296544926373389901815509798654321230379553282818194145796987315206755525121391735924735465102284119921666348576223118933782718209373380567358627321332534745218776648932989692171504096159124884386847938677795694120867934130169281964897580306069786960319295312691735120188384796548414043170606012000728687122598032065498203539876921370325122932387778141128062013702492312230542481331316069149723876275895900916255792705664919809380962867953852036993560537779603880788589376762180188242060648349003655437363303424175878921553845310270082584056041755017041194626740232786755512290773539720520955305837013086989259949033021896174898066196478467108734905330832905844967606322726442574920677464454256702121588426754832095458017029709650079317182580327849206200798638484077009920485886294036987999180157310559662762077844580572863540905623505128558024854552009047949784916871033981766327928382526149514054090116389455843110201987501289802741378942250939504186090896073073651014292686242810314685832824487215189298348745811312270528237951732275903666562066480498474152740603694926418722485609501134035350856361421397956309248385051269924266435226217482454927355898125267502422622349738003001167094641390932438534867256599426009739530234967371424546797462011868608660383035935937530773665165346550578715245299230743722018402890269284131581670835944081172503013355721706306249833206739302177163094659357425436367449035025033778184522384993814375285557228880726602432178414062888092573363246874910878063463008396481010449497103444199989214806770928349514614981461221530589880214338838254848922999001190243626358684072920597163021333227855233353830384035777026396677094182100172054697668451651272059246208558760445218601104513825507108911611630684538438531036743486824964116430202478639207413995389567844510704509937583035032693942402943781570507054125314026123469308790541517863432374688896847128908303537680184409402731008982810902401992880338803292928147923857696953030730363753647455583496434828845535115940064728864994051868916064445620087779572285449006826734110195020044134592894275000240858602078265203110637336859813652458035899378483832112023926136145221240870346939034758551765595630107535976814616583596197887538356487953940328112726941962928358525755668665778379557874589886341178088737506303031932129708064350168274377065588454611866320062485071591284932335298274955805595087109054005115273646005448916813789528317917827419968091137536527162966778208497130353909644879373212332474078712032717139745914463894028911415785603720224177069932678034867502326350192675983354326672865157586823138752644677930126414989521811183292237105186838547256682377475574924596077027356059704235050114237258195308819875300643294805808723839636249213588252262779385575673159741284193019810247285888087847275659945112909094300268309250143189722956100530531497091777699361343943370092558530412520507297316227601064302865464909044321289745905771962711545187590300725703135712518202640892562003126974389354711627384508484461955765368311677409548262973653701085795659282805629246187998126557126253456309616954095253374193125955672303095124192971781047603451674758055996764644873404514512405076526302448507455791560691636150097086861366848616834668441872291762185396229373774856898032075221081302527225982893398190565989484045963200967373950684337902782639063693455227499683226714831554661547076519711692490951534926293944803307536523777106916798918416187398685853469560432136096299340675109585129312969502773712518184992874664766831922369341140924452374290628615461035270337288871310999826565616163688580824593212567938880259638826691238148568113449660599939284593455997522718450591293071759561193365334435714446414214823839703615948603263718461062752190460438437111648319715251674946550605123886898021990613039086153937456194884992674848825681401212791838666107184756806830397163300226545245174929056842664777434353814916694798280003833235742741538761634902775753185009409813832258200074255982240634804163580096695373523102673270019834872154953079190606487094968623102276931349438330480552582692345331505024361754607149279285644200947200509981683441619889118701290247327589453056183211035636570611904772492946169534404630182338159917710887205844891232799122645095164316247190433721234854596422513119022773402878969867063385610416772906919517256069710084714532373421589050945878084569695567153671217601006229775805955685537639558771740460612836049767903522256039045598682441072358894166922802087118297055573722737942365471525176925317211405567336457102654403953034248795212284923550506799710661606807556384077221154375609111438242734362356930355797480415704887753032078167900308211183069543908853097167916791529203583929591348379357158361037511081374493501739830587613925155000592634662297606664389289039853983841106910546729803303923740701253255880407359709236649149132422975852348295906701129850481371150495318279474627403448159648614557654895836431642917880720252096801580308730215099378883832404047814922722155562668792713844109033501196208129725414070252525423874455090878304897997622172992413313493904553575683596922980273090888384199404954648419814437062109441381381333813806260959336186035647333869887926049122388856266155877876012452055792825111014800348040073012565766786295596094338269702843072606052751918118521390456676547418398869830252002211053008282485935875203604769326901537943726265449022393393257366555827287360820530516433691635973128085674369337353698846370338441672823543422357567451676140867773217727720144052511495237280030805866389808589184457134223993477219543398736301039176506642524724995157964534796705004338621053045986198099122103696350393540335676749054396490709177220941821635194501536196967950491975415462234448578792675481447208407191939445261024524954970267864925963111978841712453745020935008618061850151811924695124532330814310061592950899055151888810607779834340265221132390132780555971667728500185988511856580978492311336807538535510041443276301633745078340935796803240075016066722255604331662647827053852003809656719785934530793291139672460861525559166747854579661324479749164584844638224484016862230304575499549444844443568735427435905814191146461124861745991786826734770374087180328593886125566655565940119209051223682158919809768410103681668696124982807173539744306396996350446583269528469103467392447872782211421466209357109467857142748938892838499435185061496312849804971600218577086058466949617209360348590162453392818195847168324875938133926137617499364791295941650556462831019298812093348994806504693912978624531178023924555347244662494923562813968093924422574162668485484201792037098602435241996220674483897710250513995491702900202085275891474256466686026222962633551434188504278696011069631804231020781974581680061201267562875653626827832080827394307298475495687454757126469226375445298061492612230467085275972203710880850888924446933552108165454785366309253230809367322861014391306960066212767353517609123837043099140370450449866958244116401338248148807373413865361709260802567566283017801047492846283676908950783109007938451251910338858160056650414033050766203316640916424257339400559233121408518128035570160671797159202817787058588711681116417772096934557086829193394786041369736412051481227356682973629189843329681944303234681739511567923468072406221183233467769824403725501638720442418947673458605800832815418833259230139649009290469441656650993957042594522875299457166387502371492535095978957810573957579556502436570879451791542637694563682303926835875900464662364267929734334602924753261086001530544716617720377511735414194919347814012064236857428727153154114788074711090579023560675966864013569350370264409603006545338001157344492372586525050340301364420739049360727409747071123243276326351344921112288346391393120027588123401884618451999324470081074997160622289330238658927667861563716004967127235467568750186568523454020240631010737549867121671512817094633616983564087390808522036419782613843255474861314913888247848069654956745823237205050256834645397607015935245352042072670715996786774942120663777302869164249559704943180839524187855979161206073674061444273044808920677366030118347167446638712224539348291343852621955551908850205015418181890247209177336420811172496293610870114091079190441577257934228773843611376385496537940189592425883551755028327327190327579894826200012545853352949260110713519728461308658289116649242387907660942145903129881312745538408881002182162102872179960861036972949661320621901555266949427033522567215267481206828714764347483007225277666250210880546192247234371175045760928766819167007721790756521415121937560788666956768916926151433313892542806007095145798080734678432469299782126673582163782054995939115567244812007841825655189016063976626402715106992930786089022431125951588800954829060009890166994204461154101392161521396848878303328210900037058267307323287165081988628231697043656669205914895629014047353438146389034322167718015648452201291306794038956350507315794167522230765373045202550419659810464424436923547182454892702558353637355006805351633042848085454994329234149412580122582709529435315788956333906509045043589102025170991630563627480489626215022332723511085421416032119610755239474554841250948529817188382800485359965453118226177177803896340172025632616748278779331986690336357662926305830373436705103055715732320883623571271616121814027129679383821986179164731260131750377229077963874887088970691812209013856706107785210346566222663035609194104194419224994141017763444845924839997634769950288894699078817502832877513524523885605818382556281887087001649444706843467179764763451691832525588021102997212267352706926956751073778239458745836611940403455674668806183334783248615246380098280041758742213390437899475534086570883912400213840267128250637569602752045433926504582122445918476273944081225222466774538931334662909106499395119534788444511358578474636355224433565183594513220316311113302385866942802149809393981626998261798652301717441870941891935604775549187455599379770690751796047729097448320788418458518002492059314578815091213356163043385168482755128357149412747204807419714109380085691688004235269354217505587508023704938414551940864189061222957380528535778163645178950739391122147266623098040831674158901333135292215856292052314083190141318392531948193682405216525891859894781808693439438964155369050541863728868125130856467757017275569999335343934823717674499536446062126475376492726441306222446865564635664173903251244665129350890143805382019433656486109089589891347777739521103578502573967348048731694553328734421858807288610990500367612260085043168351360554673488545882567157344392847643957524512511906641943155785696181736490075087913588142898717131291693701981243970518901909959440922978211020020781228177285220388377649243773086910104254889707871409477916455806297908044202845570761147843932709123869468636366958217384135478883357117105891796434700888931200608007301516739183044736383955367533660966253975988852645485859357765003149132981054148852738236679441685276266494441142339514263752675658768855961621494070559154821267808300717072633166826834761347468441678186429254685803396626411484863203048635350274612861478661921882478838764624543315756703804935278473651122098854234187402355874432395601622345202186803217677226941065383054839461157594786623330863625118813121988659859406631205217143825999118887658793581376062732510180926209253299437515130273211399124135702018810150849128834896567887929458227700896379372737768002757652851073410711209155050642428073531268956962036106632030251413737742823906836739715545194936443364397002775624531372502716183729028797642809397631418751006252463332471649722570192098469408479847073497278165404726001592273564144430534108577536072079607683416760976961966961707010273007209047101214146758842075435739589617740828107363662978090239455415916061309020857439359871527206037061736048306279237806348371442138717889074005471160678773733070328720269369299919533468961335536253619232244870960043212096807261305894941940052487794791599935196015804476377898505476191915946799551086471781680582969166960623493425819669171589778060793246958321818250691576459963564723584521966378471083812711962829965957753611873631561657048094285031098150142179182281145154237396165779149116837188655819293525465586497877811647215959245285896332323042956394862046736988897116676356213427333391233518088072379563829118106547133955840267198280004992729294258338900340054318838306391081188495911519081157398660345814182889922923812574345844791323798964013839901085190816704693922984520137703308311891326287918813931003707268837633333751579232711903760332771517032769290369018903840974488795578818552877402309007317709646517762545722485401139636177853384394005509773397129713484303124970946459125257350764668564885234368941077340787676496855589379311486070967753076391775185531184908470136580626473840138157362792752350230018459640796806596022945535469692032682314060056415789437277134056125231097121336862818739390631681292691312703856527745309097161225829919517371607161674271845878879946139333970780193099878667853937656601685671848734933434534327688318563516885268805781998835290766419694034010161602394468548174471568488341104176287945522262652329499964967425673550796944609092766046073506762137492250450830583292474690166474364656466721182825897464518836403937283950105997849613630096378146149950714861988095118347105825248774609468798452873093374726808179276274124587327330714011039840403926635982718365613449683687214899460757745395461268896130671336543574901432471145382139719048561447545930008894006874520147996323071099425245194585236921340496069083334214289351715366872292604150080807659637141113188128673607680169904131956773235099662370388639862278673502889080862515749140799234194412375976128379988409895838430113082351962258059014103945703050734383102689058751156596724189208286059593475899203833373965149242831277146417852798047376272930343554546982828551956655156823192500781933748612675139495776214331495797218247971952534296786240250820223944983256410879466288388517664632175275155432820582268832433374274818118611360941373784613897007283241424575499680088229850613088162017783648437549906405237594513107849581359519551670164401313356930342685029080002308148649777278956587969806074026334000249816431707133550146739465580664279234618091304598876109755429097323571825686516485169652794809422234601538457788853180633986189698088451916055483007103743613365560738788864282408830094711660261026034977328749238953774441115687352708118735221661034733059213021046685946885970081523563890872371612301171447894436230661142762966365349853621444818439327858170662746835241557400719234893842405637385852481685319240616315740251709366411174732360437700851382540072759197493772301784188350120729051443605838373891510249825905758268933202417598233557404154436811179783053051788256728952349811570730691518796741735348804052673862036810804842400555573374445539155614038601464992231320248719397929830586310092915136667557889527227247171382567697412019526432097136815366031015848995512277468694020170898252635662523772111123893104879444127811081510571912693902710258730805765093378515717988404625299922601225601153648906990634493925325558085736474332947150211172350457024611126973280190146625487737138933813460794329671851233232695476532186584833077759941159349768415731606885532213371210581805251616394376469271211114931015075616908583049720470382214602905536161964587397845396143449124584639784896715141585722073218851437884891535866784425063729105635394272502645548636850610323348475026931163598835222005867655978833898906585559443686564109644990089312203683850736786964405065044701365133084331085284209166052686072483707496942127215380148432109350359362709749679760744237091357204945989306546858785291129993509961823889283268787669375750532650801594062863539895690962877284527158733111339448056025512559716193525133903594185138874190544013220367974831066930858904321951450894897408436335013501779536542595823805772088049514246659606270410893334384138191922885593540672213588704662311982654005148318852105325930100218606676276358829972348048482357084397624254080267939552474936110614132380591318391100753673086709136141478374594017712273829651960706421646809885732412125206531168002722009374828705453608001715977446243117212438043688871831690974050759319949260742108085674658417541938578719187354720261845233239721882398631884195667305230179390211788423268969053270503735954606701384508651251454058425861992034596081182084736979881619509375949169917432904872881897232580947695897806593374631614785894340151381184474751347022777283351111436503436859706158167692588661360214493611552580570786971625325299725633342504313490077540659944929711416045587337913868530436533166284076043362380537484263183382608770725081923904156126654193962265532852798889473426138002490947704352325546336936047232317577859514627789312457825393219242847357192596447338144007879866252754851857586973372062729200030621665216718516825044928065738397289719435391607157545553016739409972247698278195956211835140164045433551619481106144157319969734584799891106300392704042137305690106107917358273791511701022263776639498101960138871673807595391160884010587199322592038044565133473837168219552785054372425023842659783120208483293353126739298657474673535792488346953050953496647464085668790482334866764836749716210065882174386755962965441865158261582108967205992065445223609613588212553572998608169378825107676375523495077391927587066813353305441550771251356984584624442767353690686527085664654651645835712455689346868040616340184762572566730874239764152694445506949516556380396822619050668163294556395939172775917520387253673357830495884047731271651079831176231009352267828078468696368110739577792028362409145537987643109206140984163640859019304747307252657559023574624026638806778781183025698969133693686634193657666608035770237154202387767575625847672483120713254035257382444998825165982501467020843952845806609478442930452018577495401854290359541568086644966255722267116677350364729989254447668355486989245783247415210747780352926088064927904572607179656853762235386110665678919076186046129611603835903288132768396676135278034183613320185648860246770647988942574031375865729434482465573278702784750667124918976357019656486065384894883183638876331142792324564134740409456931856186330395223596257465579465436746720660082363103866210229472132302307865645336884834164982643343347418574713060764887663474009310397090268096509920020196226955766927804655330822069109566125397367175554004334776100845462364903577884674015170279798678553823338079044627660033538888454829389597942298011447198652984041746621198859397469313465957049769067716755082435925141381326277356418519566746552174635478392226379541015220938694507951052596061108929321113161862026261167140812676146465292303095990123970595342071120161934587322517379472551860347305173526563895222030778147669761197408560209197393233459907736321790657402270350954080831143287498764630865268484916616038881072681965041245600881087487948358677610391891002176811427754020682995730169747710461663324751409661043069525231818815009391966433027804984217391254038006302582126607081640358039551705570642655344186060227501679465857563719979744731807248248475007474763184132606910393042098786001668114036053881270721435173560948788664904707234949920153192169400362732579676382247465337824605786637912359790334006110982353192494266787640774843100162145627575473495096536950186026158842588959911860338782030803620668108141154540763408997728828215426307467245651306135335226357800312045437742190290139181463007772578493655180661204603014581721027635493646434166076144344824877503397802832588715972895828717610058977379353886605733266330783966297852618929576731892744018581773245995728198818998138935027923502023633467171039856390773625776634274527242175328249085301380578624382091063915257112396432293477474674101018473867489879555196699626371457680375085810222330816567071934482412114750375185528259831096332849721676959768772059141185953519116635362339844403020709038649443094456622631493958181244933929265078844335213406433574286714273129295475793190982709200661444756871787431411172527043125308965791695791234853101346062596511866967502946519891603708224403124350888447122015570107530530479482703645855796156494671015043478309127209311212789678939337143161411051984563894473705570142657166956774490450719476357809698101581873220777261920142805565941752594178488777606531712154037929282526937553876510120786727850962722377612558083899202647471609244655843709020288075047269009609002285486581358446302369849946177843966119684164932088187321380130916743104996434693440880062759951702288362549579141168116320337134089848905902145724010620369038089120138171982734752890303186400353391622915416964054550593850023068088123302368026688625845824724825995478663415469794913122340571680707138271878693964007969145351984872544999463613135130238381669872937443698039176943448943405898517103661325316000332265214222554685635849744313545970436410464833935097939314381923470233688476189128849330739081512492775612569643231393465139514560908457989002887280051850369202923997648193294656580813649864626012122708715910378765625519396272259549871657193312553342521662827449731745668589099923404595392520084185627781997560100447340951937344291984667280384321462174488101033223119632771528687802030600318775481672145660661836199052075019239261173232984228909019045428155642080726737006143206228714164453078088331264701220540949292575053173747424253514706769317274919573878255045745936097423779026779286793433251966622691496724030366906505832427268849199947784224605065910375928113476271702001467787306704956492217788745063058234589959640751187177853400539183161970549734569325281442543162632310079294109550539049573695788638903611073679817654562291182343736040338091994527868427814670360370906851209486827438856753451762204268474903502486171287478452741618187262609536429972548638118531798516290603669374480676501565554404084547660325984583486328525287057346666565015474862582420982519641686319375754060476286632563366552527346323271649685559200387339847686427268033221642228119464354221092808063083541263788026924218642042066695546635360443326995275417178076004995379285779373680344133933000453785024507878772536533953606160984488307211733403946392261022512371430817434535670898148787682684334866528142670612256051550956213176591685205265517320146860225793300041485492182097451580909874783705478575688123816688934126628343420020416139594089498035162980389057157032719330326713895493791496906905193729753855724543192606900239672898910111947875633803057560965074961139466233033896978622946287242503947287944714736244634072892764676190634993177690029404649500262804534163218611296549875893888945887405262741289988813504582178269568393323596057545915976175764596068587955907744198363816232164267112306419168677893437285919120151423185173063982562875696572288188449782521735139511071812957995596454216283868072268945624552184218933916378530317727017312513155168303763672994849314482629250519610734672664513818267743737244055968609789431571789264218621725405987177421276135554811194284402166093922290220350111682802822169776925688644201101636664715394437963230912668593289051179599455752331491264152453586582187729373678233581572085146686286457920633850115907929680161470797516251851185501865431592216039424563950031594236186207716403288222211014812356495307074415159178997512742195728437597367299578149759630170651450287912381447148175900674515888428783104365697627671812779433896532897721698191892626421926801956746352847553269382398281543478504575106014670077214772688322367301560858350822735501074364446134689690251361335534637468162522384060135506072675134799588742747984916392978743388599537995747985808779074852571934987051718832984419569185712792785756095524951360433508517953110664733390059475487579574799491090550115780770876863840515013706031508113484370223603440717021808233157859280418117875850186052646668484644623784962654143519943316448104285619059780587505534387087422520810885317705159194973488462693444386612956673945830273009187452865458160024989314477036890188310498801141301957874031251091692164519067279089491034373437314463034076143376282727204830978075675475922450623208482176847218839143691431510607211538328644421479100169060781685645399085116182247902569164781685359556411388191676786473642761871439471782497477174230222342843637417746365258450630642078075217012246801568967003377048192113395210776749586620420140441913379678076241246602287234464709228671227513288598042130312543287473803446995081925212980690798792258330935061659697129602361986703793604797991336938045571027510211377110370482923692872465366919876586862224412393923068404867442242251160828283724780679321133734786321975742452031197599664376669277231378218189417043161023224675046442197413736356119905170281282957920465779309678587911056945228844012012614101910347585543780647889747476100787541092752504995859060316422718942130522468714904423263310867907035669531579045781298091713788626393972000767105728761709856433519215646799542881957646801901343700275910355176050717608064846410720271295245021175774840646060762393924560316282717620936324741492828335519590416490844097389292597247714822476431346330076471053471711013364455239759142652613220034596596339336703158988792102030128399523121946208041234860560896099137330392797748281308862427291080057748134010373047824221195873114852565388281454708597056000234779864574341750291278037306566653984704072934405843895654035822279655935072537567897191348561086274590256783430223015847448808051599558629734289990729551321778023096158848314991275324223964493503914882207395179781437095054305579865315886692762592916274984551549338669114701452136464365181432488042120172695652889742819476090425976807107359564253793383439616900359109463350906141152733213592272017055282652606637452248175694934748249543595525952575978235175300072336672435971379965962906191342378151090865151047725826871225115630445044290490278023065261464450129631328662440153302944508221354922336110735665799834197622841814868459718273544652475557581048979347126984507110171623821986370238629422288149995250111706373390912495136745805018338148954194959683956178262340787833489282367005202373620279440571667482798440219323175825805507358614955899364562002860882080792202262346858877007992321421837038064188754538101885733256739342785957984287220881701194504342143587113602000262448448612131284829309448286149049831701030558461833555770861156633105905823562209562462973951008860314216765936796762553597296436345797198538035297977397242221580296883348427104343924201484203794816081109546772948311515993046822448776114180620063536127288898928664547901688450206729037983193751152194234027449062585032672858666795374261214056509664684985276724392456822226489003219717426117672222722719301011288445497294710547745773402142961819148123237334002061499343616348825556474654532695460273094848002549743113439580030764323708229530352367125212466173213782730910694267377323082944967054681405234578545139438105453888921162720282614436100933643509628437979892812851680560523892538560574932575896560034577379374249632284290884512283742111026956324210748413333486195606565358505928433196558772702221614976363598065778754259300032232681847356080108913588274852062173081925383426305005115280581481538364982346733529378397597051998999405887947901114559514665876326879001555926282051497407041466492069337604668410353097951461632198898354097378015680231251880460645285175424324099104684952305703918886789431193403678481675129029310877176872642464523454691599531214764752113728195560748667435973851271803130046556157775157399933691955292398404624232975558869621066664680646086066123292896136830582843514462760645587537393533160078120086502633846139673966413254414721934919483291606689172268525362715137758217354938722393472142003628346163486089165748891502807658538792284990158176461132066007875347846720277965108547915610497985202030442311648328473956444139105682693373371013169456340090945335395411095865042116555616212902620281718699447838133992315764070995446834234044864267087285709394329807402204089866346550852443556817540007659796758205997024641154935872149000913527481883541224878705355758425533527263191221376296408403935824726712056489019341280361921304017795302465571652805835404242414764020143877781992215225836993816056213886178100318814653500980755868168308617943265085980115629663315349676151487061125162807885283248455972396594105000528853282451164584900087604812489814955354677770048171240235622617755475077015713113234042296740306107264600926018352056851155911704221234104464004812091236597701051959217203256731129439290191589739989269810775511993986183677986283810220635355955854236371589127240459792831187020539346381000255245425207623073257555152309631204562633516652414080058867773343768231705598579158396174866878505427811149034742428593944241868229159394343874155692620924043231147017496686115337266324836255193764076361356487589015552010533478196721212294817893252748169851610974317703131800626633339467093753719603305689637937189369548897069280659318552046158498605999578129726506788727775740565009345377344382295972470482433237709972034318865485667928548391294640244054762850993837467660206756442313061699395951826770105882558788883755523357629283946020140595993221254605756129325444967487574791882642453148507202698020186741953548297760753620175183685863083313186378939260855251663164849158994129255044496590561710989527155263504160199331148773956745241027828419464891593955587332288251551227738803087324629174866173842803359895443416540964456575351464836721879302439860973396987957572720780612965446828606103200533102427099811939404552937093713403195541082911246637192499274072066890972731703320284821606137568389735869960504905871470753064425695241751802254025669518334375434905746679751273313402900566186589474243887306102709758904557850836698632318232895755987421675928745419822367117887949435400875344618457850117689445458609902187105119735104712527005023280182913018297456003011175846607441083525909463661402035439792608050232750328394084288756664764695450048846181237749900664260754150756793519663960732502603520037619363242697911636930656074135012072281681079035842758022125006729493959995365658638981922681248603376175853119651183847978886784710350691331215688586112907168179995147386759776572598762940912980220142487256446119207465410177189179468077671949127440440951255429053531214673208468439937464360708130830406518858189789559776757770194423882813182901214292709890219959948063173544333198843255021360472563640151400526011652160600819537185541446531145349158154598907056755354546705676463180599122264522584774639294766373033506081335670457923556636667744167599371823356068042453960718695705056418379285452239018232065698749441878828797921280658248944145173678952613994556584373803551213530701314953847536867030646856388127280566718217279158747237766424127145138516353177999933419236775937228386723863579158906894122294217539848506102661172976896444566965930901438589057900913743779075944642875724404441847660953344028812326788938140603847777387845371004017031883347024000980059096965689222243285215062295606615944419131860959471419282396865923428622016182285801873652055582408220671367233665790448724904242196777066687940615286793087551684688577125107896341075599134054852732804204089849018018737691057593677951401230622667590860523287651907749002674019047471820167530034882396544892620222612497661668150017686386395241617883041822246052815851791374196103340429553355750050143714034499835653701076363039454990373844146906401708306992665290029405510727091386683434715763300187595810234327031297532098604076400494416607746416525234706965652994581979672566689179810685105330876085121201101403266203036798723707024626853959542760888571556220764354587494175403052962483031184502563647553143274910753019872313487750300957150136434330072503117024479444206599021896790877177528855990739682323104152154331570519443576166623932065141172924665754107136873467728145869047756678671467186971236318808601338304605650418115608148689203249325343041802313703790950964968705407149239215464835375807462558215133609319531683350558231351148890127646861244059074230970512051354422740681286298839758268849130914173243939139144441018443072361359923638292829019614375433412627696901998324139609126631343358549143273837471843986961627670008877568536980959191285956999209118029508398292494489081383484556783990095681454750853141238259840033135331140526531776492109935312428759339225396013820498725774761666767446978837751165490964586736600069615649678661429616394091760155784757964155886620494618000298847275011916091217358564920637326951216873301914965686773685926454256430187184083434016023905312856842732746123871569827664633740549329233685382753479997523875168894876596827061294970209672943223427061680631384906320176667262631757497186172763732281252623167522341983791195472401209668894289926401759859058243520615230403825093777214810701570945670601201271155012891185290387950568325985062171668532539356053428829252266245027278425022560936729652907249447776424100690888504713175607091124370481187226448444640317964490173193749955594242656187034835058405250467849188692948766021351571423952665560898321417529067847788226138254836934732872055067815252700321406746458007404052043279963520753002242327727666863199257124556706061129201644528935355496671937416516397063647929963806920594279016215236648322154228690147725545076243963907943185206436185344594818970439664862270938726493768016882648684511850007012050365353528861194765699205185343366709351680963669511448797055743285688791903954731520649256108750477511220603463251970731666181888548628163176715377375892934963278145370724308340675640783935573188612713796130430053955201974173329776522067409424644704460158740118182739143046047470628194886094331736765441618842026484150937442649950954813894693299432287615783894559161584600271157170725173305885118208027924175558406798198168792321720021592013187591775794158066433732924841406998158882259509435169564477573344727646343252464556659776245174323429003396668070057028964965696535020025102976052178602396456588267364301737080611801338578932698404204774985753553780188220376447946274938110041975835323423836082528390216700291175496727262973998757592371885063745512438369733925837943784621732386586967761689965508023288647585916684870700477193788106922211257869628597512436830021608882961551145558131704078247100011796707740326712161754780688816208394837409919868337246975628624034391264102905841338544967223717579076045534304645722555078913850050185934912339256764303549861633259052363549188343496894034195092684576966468746853435704526150512998244258699923034912550861711391666716631295074786802364499735524572676267630206008794711747181192711809507938100187550865491361657897933380917249218777613071173883457854816429666748364325240938593449169746151520083491212306153129611504199826496166670730071632572545610255607599035648707171362823946458277356485705044567569914210728095040581790161814214760736526835879066172419531858885925362255681120909586213104833749508907295164847043392235012967100909410074301782744023123840178872628860654138929009624397673941315223728779338424286121887824124670004734155186170008271018241717902549255230740153397640906125234656034442354239815545044879654657285722410406517260214233451815710968039274975024012171185083912181918137986461784004795123176704752997983956129934484390919741639688343040878139622586712961333704142347474068002927817575185559238078873058932054839421171400925843935779884420877271063844558430125260044200583836835487447502660170751587170813251673873583068111520685952589507395316038713926393827100413653875603927615931041468024014576529350946602874585238671966218317589807427946723754820816369777074621920043857619976258121567259684213522725501818946229224893034444678097881114250268238780222764048822889513393223704141181526700463479864307726282961885542304404459193406300716219555072918033062572627874003243369548935460643516000524391302787093556987971635282887677373657832725191064352453212396213412821271752886750385550079051291293388743015232864362885160092926624521276600926212044233010592212996647474528101928905685287831241039002789092610049209879851701483018904637465813907349499142072721337970942100741869910305407716074062894153446942756890383095549611569296491785441962333312738300327576977052277267054649094123951497131998319155593515834307994484884060094282572354218387412213521625255587542363057251174016553593915671825745184752875793739727618305451819858531224081212497938818774747509555648798415041447047592525759024214997101140181305117884785087456542263355173827259298038563649539849120882113717113646427202870684624567946946197565112730410589513277896395610158742534930050779231925861464990698485455615472401138127006205220043559779497978678682021920485360779170973435060296722717478223411029305739711641208659721051064122939692730768459025461393425419519718757812505119028032601227237928931845822111631660271668173026828722851986333691766582850657425277549023842153206396006704515719727255151685336187420242533158368882342810521759429001103389135743249130554241669193615085628924904973338710102485243506810854582583096728432504030238224615216818569759976873788357110009484631984300106762667458203730553712441223335361915556038788087932218044565571373632841542242610623424153789089677534940252215246623885222060177057916022044377425218471098078153198910244965464936077629348091563697468751156329897544521778540188171385010054769817036969544016403909472642232762376394056468023778973425862438094346011968715593083993732673263796171748606455386858747981096402431248467156705080784061472769304774185047450992951180822954737659056738373556007566755913915547916947889162703573008554356295530177792398357306367689078147147569190660826050488786319733124599853286524961184319623299735692730915746020066527636559736481704183160364604046470608932880807195252752759960241870104114243463938568133131238469448041482843043548740687825844604203655020726249046182323860383263576259272106692247264343783224644888207020639700919150947726691309152367213344481826379709363719017992186664086066945870642882313327337858404623906533886722480073968655981058878245910028605775776041592157165559303618230495691160068102447208211284407382635581944542613410504287962570501134678825941157950192131717897774600139375236392984739968399333846096188723413289232448203501633402374075907148083636647298218171948812633787965029609080650172368543484134399864606481615970720312903381650154223560298664007910590093035991041965675510710325319135538193949859038933583779208491920177431340675896382198587976865082131578275913096711500950298686867578643291024770335480704762846541025531977633427356109059190804973666877248672689391386862218408195766074175266086047944439455634487471075749880756359729498956046895389783761676918832224579726829116684514723498606338407517673472211821631763877021895667887583733830669216753742752809873290803412491059083819839213634398891524220739784142011237839823916893348393006202170226325824317250193768922446838059838718253161890501247100467735906520295747873247973395451014867962045435357446723453372506027254018439849661079113059474120332209679305361081449683797654158176198886359113005690411632003448232390182495206363260888637959114712257666747355211326546403596757079998254401561415293267198010546194567595558164069384646204970169102433150810761554509728455748485139843503166690497651867042627366804130416430500974895078184626623837055932334024790554668421066419173896042649648725839678965726023293395244761658487588968822711101786358681026483912630999919878848500744831261748844158846651006713391480982731546173042277044651333726279410479857835062264685396209554518954257609069072946561278259521414252112239113681721862366049411113504056798331268383861979052040718528846091446108546064517084231178618430866716552942871908612242700872607467633702011251827849453972475022914675803072425476867381334387054171612037197909818692943291936209353931597244880615905819108998230932475658813245601500573509091202375523055319946549428052129524932261810052173895334842504511555941992702759394369675433129259144988953293431053842330338722250120909199813287323015323139493317935918700973022876100025742105600323080578840265233860067321540113396538583369482815609798130801708621253038892386314944986968230638599107856227686604601178627515482283659578300896514992224784468608047138738651834680685220371647228133920236736718544718264962328231515970585663120635697854397190641408863830575447379336168934069574385598716494685816538900557811448266515197836351764302729491349595450538501710632098870441483855130323297453728317148808176941562597661878116124906635614875292344861302794740045256712084053172965694729415782456921457870604580463978272260487161693230988633584366861317342039919961335062402936507216489797832822010143367107585744182141651786881396303320222827014725086757605525386678105498334298359443265730064523032308460880272417126134419214830618815109851386716923492126321742885195511178445211598869015535382870087205407948825313134979547273146953769202090778149407162081219915507639154635678977421910967406749992540793696671681587968076134892556121033989899219725929331024187160700680371507812182811300060838391259942043146411880855459367188889438133404758458554648144580079305466840654294145953848352703846297188481132718141145366025637974803684916290095041075318510878200205553585705560316047411543755522533943552253717079259360507830917417937059211967225898650065032684807247258889781157775114026394260758153547378566420818661163175074493580081401114322339974210496101394947258273700941599942059248655644321346903995117578220613949428308459322682187377116818832907922209375967512315753091920357669799600166852248740076763864894912051146960422550832493349506770937181520984943278912508751733017575825718255423522043632551149567212016103935421779240596105386609188978733979992312244464579456973236829541800414474985174697346023605321858064986765280318230270335141173299376821834824433401084765019282278246044207770773558343391407725806995223225819189024344165187347913385540304853626557354162199009945805374300740399519941496137041411437943201602021637628506150855797674311919415823330413834107072903723509497447488975012269922096675234161516685169550978091708143827525379500718137166575497967048861409519300404659927033001171310480182068291977385948857124241193861669527948841975905721991382692925198283191503108866484700605788949186863459354854685289659490097064817314792152425013549702098411843452210934323281355193509449928988359540176191979715768721641438979938048785220686100430816940023505671083297927588187741389961499939464538422482836925444389054875336546312556766952066533684784283442990579557240824958977817700252256693046468170364415738748616924414251835222360556508599286289274562174236886743489815930246038881091996008360549958388224728664608617068102603174075728650644353190843998137655250548569399359278667959139649778954479748011334991770099405011696238612395148771090587729430083242378032956381506997420600405237244301547002518882042066858198953636624024442073111832916855564401659636622421672812389941144500917916375380282446170789876829503506454012275565336507921328458375530352126166785837866119053697409058284309719937922831319011653355192621642280732049951390403378991944127929871859417237789610497640770055997879534629815283085800768753149354140981780885196604275060071583222363354313585356222184750100560004925883685867693664931573519130606150258590004532608916214185568886021281074373959961825278049258934818849623737266878397029835381581027624230012702289559001615688488610305356563952001623640365177634147943262665596440274761150705057794332555015725682958951324847091927192750004789303131094560013103391848589397663853831187127589636464814623640141842374427550400662193134303358235166228263553436590364026418236770858493722471150010006196922035796983316598023821408814104457288351926484644816870256169793052872836581534292775505267989210389877366792364536907693685560668714491727508181599439243979865411031018624976363268419494243465565881421758935760591618341061629746428743773873007880508406076013058915857343807369649841171226292765941683241323979005555468484469892160632584147670920302968111209846425898138729388467803265682259312962476939080619077679842764679446130264493077019291442624216438903238277793953351385903308929076276662304288502204267322815432005827207478394030805348548895669538378513156361465355036612627102077153722638554885726772364088372311343904472148163866807195220091818118149321479668481139606306236079080229226166551608613453016402570724293902086405911037405832486257179101721743496766328349148109721336202314842950608370669741671319209834856827962698714431836846776177903785812352429211812344149501618223857757292907652640029797836436703454711578193854226625686320368468026947842054630172174579511555894488649152563540817799496846634484633094732738963815548896798104389743521744100888959371779212072846285985534532549444871880796206212416189607359752489992511362248248949863562210403648658267555900745590488887250650907338986626236824471025585898621429965007257863652250781519990953133782999739716461267831981604000511488517266225146477198780539156946117727174135405311337964202792584454151177177800849279871544427057028813747696545654248070310622646769654670517953349483335200042246061410682415331430362376920811099472040304288525333153028783051153843820881810391596652228799824199861158042558714815985080511292625714078396650962591042160931621879089405418840568280238171638613126945949455818918235410469982441789293635493754637848188366364961335048899114673672537507096964393209583989927795648374362113566571439931362015853034730035740957381883460562351614809798859833500248588507744890024764334861084433889978177211204745070183945915665206529548725184242273243143274528480549795387917674823247779056791853809803453579510824585302120850629996061285499436066860946517916411320414138542802503455840121816161824126290097925369376418864499863178337673609585381856638296178186746543881643167872241351348174324809652934237556855304258507633190504329674601049832644359364130645668184963315956384119598688234803256005909070690066945480702271400401506764218752360129392939584060955404347217986921473415866838762878847911904286145679783640754101443176136627751312782762017284909992934220658078992047549390835399258260518156642848381458188425779923319914856124974885362910050517875777097644743288176548984349769928408212125047665240085703418654605934740691254009105823931778004350867961864735518229538087869300589701139623312669447129351940966204298142023998139633680958226042897911134490685309648841585383777587796193585118550014187312308048887983741584191629383864890974198011130196871189349190323412227282641327266864977141749059352054235640835426576660914480859908826984328580209549063994950885286908020521366649551789684645555655701642821014644312164093491742925233059034122328166351219942425709547361373478261620592457817929040390758716020985272546271190301857626730278929935717059049588670043900770084514786874879178484140336239688396428145058682006718152994065243806638250149102816020143959550118795261257277738988705896721663196935411259964668197127943842476361050008895594589621388033178003578115217289547325978804987787304407125971316672616527867770206575863197564844310224934285669860958139744412102163324631643674511808718111282667667151535103278421544053290897756748350256947825057543689339375529639930386200529593518245072206320459752101077563409552979454072257879257670599816477855975144789574754317889412467002478764821530872571629856745611291982649771311679431729122341075468049498639868954451283038421559757547297178640968504972218235754704897411139794124284735020603574270414616945539210900854053212298112533604086315411837599945500386173146840847144987798501307555159864563609837101955241723695500492009914059528203274389508697506983945903568579367315617789887527715784319956740260008812513011104472803667907170733716587218219652203976723335858452490669427713934862708949923121968041516490792231995173042676757127461609188919934612924780923349912905267178579701199129884519852904249923100766324084918562862843843431571279038910908694318624407867840767646623826039803248853421574955967681288353233686115964828441318552879235128740170485668281200259091433385674723246835106496128324789637969150188173171962368407193994991413855294460568133859498723360790024312397967238919547042206998404670240109617218642915641837213504040269895457235909963069517915198457360586347680255979792554092932442133283889601871589259187418447217271723881590173253156587322480035995528508791337535968204431110528215365204013105823011519282111971292341767543625340381272210687960779460331926204613724554629365277308275845178345817144037964613918836468988514124101018161316594169727909423397532233432308867367264423138483907079911604061024447683707548067331254643225272793132444716772550021384380209924884914622103914431437851449502078502021240267957182898743111549544837705204470038426343962364956674297619712065600770781462367499159987269443883684937339261858233304456689398878758651989010865177064070166479625228882919323352538858328200596146494200223834679218722225553878289538563129856282636934373395504412333626084378123655420119408057765925541376039782867329787668033594738692116826659729782857239578835943546020893040307484879971266714187290938174776852731974565367436750188085443901279157243242087185075387306221916294740481822867809043420955226486684751826205814861974848399672202424066047154976596595139940064146897076933898426255200901565905594288145980812855262679903974493736687011560938314241117399085383238110149981340007547110498296561839459025181432769469037986074264522424113720188963849729354806152719345377769323519573438256676777101827249934551775517841839698395614893630651130989140652856203162578106485088277488049530387513773882703696346815741956376228351772083436542479318386881686625922218561192097979362914519630775112918668470626095753114014869152944770999045126161186826384398536756137346214012940216596973825567695423972579990216831982875805079690013437054463228157561723021448457850076528496825292670635024698766008343961688243484327751302990712275693029888367853161684815093320622162937890673653366233032189689747993131957732512405354495083471110519224064306552702769733061098800157389104274777171595639756811101321439876848365169393333057602599310895646087530574899662094764131991256694583973972139928022435354245645354402300914422910496474597764325577986595534352486651920061341935106958420318506425978070979059496531862218370860305955278773057811700161008857880839304917246596166375311339830895881191747202364512122696353893044024274300194912517578641064323429820551087995994223976244658351976924417498611664053821316173834992781071331767834129016245456454520372624046778465820504916472056531294616602358711367940869075627302789509317008615717783319678275062979815822029007060004490796979874197710287721272369625029431664441046180089999774335894183069573374793894486314708488464667202018276410681608499999943457034657869208215431583625319275374533733666446653581810601873980355176068747029107096349437302664647080706349433003770250801122653859392738681890958929542389842502277008620357218918791765593661983612960564720207984617018783990813404536050393589437051896310668682925568758537876629666705243433249410083275141624213602100304065157486515856266508138439391434926202012209102348415316087144377939686655037134079188172956954070324782863093462040265362182394672848013225994521846216123442779838819665505543805451044122341489933409669817107868550367116190145503706466929033867462384715306776104122011083822718467220434727414029113610393912164825971566414149486199122985406416091833377046986855866157517821919590953348602581742729150812121873120568121762621033374563751984601827717345053752734057485188478406053222606114532591318387169079022798145649156541899671855443271969317106496737939155185552987159401210058190834642341476083911249541487500656674049095577303952607537959991093492084756774509337103669601321302029242443383726666355224141961352741477411909875074070316316600340378483966392215274044533083392561232748637477209677552753460547167171099958086232463005487148586594006050399684913934680623626348575787468710194654495179071857321369290468025682699777401431848876883336909712760563071754612868392429297426659703663416386013060203718575530475286149654634704425134628320131690116486278689814327869317294781092576929353664503241844822939223995300066301063347658312533725599143443859426719867275615344010745027891093360115444414593415340615070109435546502710783759782059663157413045519801799451064510239959275724609948855081792531239627563958718080589149753499375292183088796315055881995459838033934420079665873082031577465717880428339232309840521201194137510022364794961645336026452714952703597467626482124847817662077235870682328898301754174123114296647897212942937213062140830529907658031691045144002449107043840119874811118411636320666597783582636327384699717456897920846516102473210093395458422933468378502489557234155253682613913353131715632214843101531878774025867017566372404756455028207009712278589207674811055668003840451712175593370538444170579128731157549253924806474931364127827907587936880595091242347002694188088272222001193592375218855434866970921421694821226657139673785311013926398481440663172000582497360323958963380816587144163111328962672654475644283138153694400562897211929000282504154021424202561996160741367472875953799096955407616585757526774368675844584990662711574762754584940484509938279881490366392487114663827085214251501661405449543980959537875863198392937357305117227758156602211639089999017899251579335973299808093913564535468084387141089269277325356403650199716141826055504206739394021507583947443408157257762364431667621095203419447865760970855399130871045443012305041634971834394480533450635521053134180279831506337757032533732940742394201157444003494487806991045127049584511537690223979493428529544702642478430960833888744882478347885668813259454772818005622523970868088628652704697121122575746469337358771940717468280343300229054116422815421464324581421992124715344692040970894636713024134120338159648850981260489753827608173880941632596074967447158241491482771596453817391333279015091580321986380572265488371242576477331645135535392279051066206847662740631487508496890531356718838336496406364296447997223377997158293014367796887637418044079134352394151747224391003572662408407631320009203638630628042389250439559394562485211246605204315537456563542812969798112453919468663427215306152672407651355720348204184242248356251252955635637835092036454746762019848816441714689509202152374887124907797101860810703023151924116279639120707209262532554997654941150277318702082969044283337953295187424688751391972585224101968173307165131332259344622444210489666034459470567708489218384183336579136635792297864718288842834500414079791947891518530166179661164634854057225473589637613648496869071363564980110466631913912410033277069379574664969732959387130223774696398084073824483722180670791250521241321129866558834551503737270312874599499113097746412000313124110262060929209829915244632161260743262279338892251363962725546635750217555676403538024583068723457556985544873326703619695471319238594803901519762267839266136422872926063078448067669849605362327859972275505168530674319238128966451718643984496275939706763384740144013082573592065202342153227864761903165397818269303419591860717397888921719667172721213214394570270797756306501450685722679741138703468158650660912134489458100663666734326294895594206620709982010972380722251731408714465521887740927572892141021711881839550625949167053675709557814920940765925755027485881100440397801538727348298545683751670708755400192124216164872582486290556531601495622489471008687857365415373492875480480246658259092452699593182624234962105647701640383214723256786640638581807070114230941786161798012447350060916782325579150466558312816924773149560473430156187910982982030257718520246309811676846528192677525770943025767934621021905488143913927872925639218559646780305711303851934378565605183693802599823243465932932147464104595555250372813004834256657648704336941192666559368537206180632638098739939187493213028213599606842099533071506413654746829890735339129619400376914264627976701399468587271248725846289056170415595101455007066296427977796229960770217779693399128000156050270538732978888568963074420708098094773333499641566254475970985053610878863009898579807713542962573133965374669676097156695528975913028398534328627387619741282605082841039684410026153428158361350642221795501539072290182364758556004619246757714638189932811256982828929040949933153445170801536740375481536582817318467934716278085352504459647771442843257227034625198744705860186186482227601007950565418182638707943389629852178231103680499706466071502033054492934514082564269318256688265476327551221199040167920546523511700224845479337766600605066847989252694006211787561971786173176220736664019271104690020111692396464089436071223388983097819488683160140526258256639688384204907399223863661533733717545948849722561584512153558605923009797672120886549935971837188477451124520978664742350583141963606504150491732614490070033334128060427738086765923713883268389249030000489300520672551840106284527397248624061573822743121234726233607953669502923831051999483799351281670499829124035003937454707011698936870667386137609917952626862409404866908927298408287053000534461642203831658968762468596429406887130096711192797133517740201712915062951439045293951259941114085813733240642293091120411275853266743318709476188717545840441413963009826188904666552444661310174172723836999349190428089392557125974592581535368452771918581427869441098830598231015988131863919493246345569053032041861676757115336680877710441224464443121575062219328265843113982525972363812379319917363753457875807690153120309958243441904462435590873293041130643294713312007783343012800552718146185267840112786834477646408520392479635570779456008697428620448298287634987609499265195195772290110432642369383300900245549880080271477617443206559721629898833717939668458077209362105757570990043658754024022918782164526222366581941417834142665926174794322205746214974376083057128203918604251429612807207614217107981325014910321543224328769986873528463406169441958996656749546381146495796555212524100770149639860168211337566917639056421877489831752952523481945464057071779948558217049882642032274461265013196474637439063304467050556578773730721769671999106843194875330080202313531387246427193596912898344381518298530467229967900011010782878309438105342864124598331319741685019906281708042302304587853075872316399684425577559259623652178405678003083664396519955330093125878816812072976395253948900494022681152300790985796787864110157453181659890647988109549854341384740895026087988569274955434786351699095907604059354224743009159531061410974854125462706182581140274110736732042470632883975812247656568333397165528807053783260258077257508500723563705272049692235376310323294549000499969721720828333908947084325298996344073166377517466368419009180470373471025747382605078897361530200395701274779628925740041158627219526818509747489222259439734666161689113944845273174545370006588360336329579326704706313038291730445598989163962545860421504242119998178697588789215354199079147555524866788658716490778854425619305617602511475989629914619920090792120347586229973400885471385762663343869268442497365580434487736491014491297483133713552565680133048540920329093281628569734092262465866812181629235026590539997665840571089392043155612641432587841839348325179229271156520504156215250866384924723267361548636915392802396813300792179009873306645635681860746407513252789104627836502245522502133989335774602761525034960774512571353698848704216072953446907825737767756190338793751397549505813563367580654480067719947366222711935331226350043843500153668750938943738389741871261310020832634537115702282496276060014944068986047616904166641715627684623256191412819415674279498057740391621287595305113865138652344098257970597762409322108938771249835677343669375851640171818454165878218264024067389560133734659281392074772398657352191133239111536063490488655396014657493481623360048820554875779308211440541961288132934581307764220108683755431114311663332083136781965671975785539173893610931673538851814184770008401580716087308967103888242325181007234013977975156643986687452887935338664157888340346139219224675977441320181614404614628214728898037600945293070997352392397943406152779724928457466636280657809464611462265583414185455385677786529109548871720912238290016501713735562059097084630251789890172035253966095832717787011269004202439954833047629392529701149887854374860453445384879593704907596413472959706596434016331587154390035102423284825713476410348052852373043933511814073912774445578316808508136718789507839418044088538845255650443140240858750209363210483687148924499554947167401088558019078469584194219801187643342696672814899047224606216904730100128439863549816173417081891952064602392066390206956935515322741378329593976201732368514107918058190345464587088651225210157267059790954757506414837052898176977199928260494736208657938992719469377491913972295008666602344381907186611859012969459709719179600009536010429871343893998855244567376168502088578723987045538908489505400460686977093735173595768314955939560044577096661262408217200155916157745560309688806283824192333818864568541392305805310678700718770442281687925214323485543796178572873369438982691080383741952230026125665059683306625374280984083211619620520282148696795580357860711474512100635119310401830656274770551796516289527339142293087531559340376438502379925367606478548471983143419123397331724346733505693201019513465008396245345642233248884697150164149244697669777065068230852741568645782075981263737732963809199749071540842058378028933918416046876967504274173131540012700508153747913454577304458673420135033445736061199999487725953804740019288796567804841569243622810064014126885352253808725923253372430154415894343568071043300307880852584033033784860133064876791736576408053756912403426614558044534544069288882646563734512040426244081775940123787565869692434994173011888255322696760851980162851092680472768070239337415990330140301749480556352613542578592845228271021456424570775034231152129220127648448505764125021074750330906046810441262978483386555883467195980629638275613940615999821853628513921290829508365361574020362178675510034128612535668480816918068803405883420787420001770397695304987522662124599175875463358440819517856004764328561858666764482280842064701884863672243679798362689774338108015469530519056697236987029487572594174164327776842927350510524869212292552051589195167753853180324352184957602802977252291826920058313939983398205491422869134375426773470661086292826885529184706417686209163049103729864812113832147121283057935956775526702021597044989873369560809706417504523692841050783887748693587314973179629972406194668956418137620818710159770012407216162092794686666893793856917701607644420885292675557387871837642964311206482618270857010622928267529911379217004818496936157174920459221375340105221657728123209908750683113519765826879679862206202656053449017603481879533706865868493593313997928896078958304081817304270122903856797143170729674616073609375343161246020237745608421341209380749695697419048089730559473163413762758214699770726994916526441868847796247134813475528102304909624188634203713881271575131995439724374761616208467196887400751491036169027842116499405527682169807034046403611150203521508515567558131304832395132907627175949154601876674169546326512152681148273349848187365035963910978199704353502791824354703869162675009644029288869114013410208952111050154347629075884036178632765592604483799869382994364748332302760673872050798998807137891129891974333916631906951757818453663048080307561186782157873006845229690971313360012489122260331149137343002228614825973965884612979080936406208759692877839323832254520567261391627901355457272153888936055897406674598772274947351273781502631692697348791867699183629522722948429563761341511817505111114929413349214489564470514176826466319989941166603314335293293248861188248361047377767380349148350128958497795902427864397903632829735538947256286314430098239762555082627450910156442124446220611533727770541734950328323101707449802937564535731514783204415008590706036889335909399774378445843066646882868814676463504554145673917312195199400474228583256070777338723398392547249273879983330124747457197866192052719770237014685675084439739854647586097776824725343275250836231028565984774729481911748953163644155777390071994223598607862923328159465656078932060398395432676588550493300434489378896425350325266371234773130598815039753850974671726747258989607692644581467303808359823080654153714799776686372197457843077936716135799206800191319531230888901949895338316087270720727258771892644886699688482800881072528206880761942881312327767840207386987506931312084237524350778874662536732219965964144500002082921735415397644083469901554205136867358476763257955350065945473893427926265536049904303066158931564008751370054811730249439959328595992918089362636319098148816502865242471205190836428861408922358310545773961403562507483391824218436561128160101503562243615079164890429431309221044591779628526611157641224471095383645173846896297817707074263481103359864807863366444265027474460007721537099167651133553080348107691470964745107093038865190556618504574082543680167396636280812742220980710234528832070837257167765524878404020556256040030356198718801574115010842055408212174694029406021926098320112271284940929014341492703852852725730868816458824801949699845481873805791468747915341807714439534560566872492701154867502459717787663592631092641812369767343674650164142885504503884086917460753228755210481821636236145068520952760593224535534247696938942631636366821703145323916982901449777097410431647889583072936387235170585907806218516929359455828257461940574848915694003155190630174868187858588260933728453079588950660429122520513111545169607607135888892925427127456548663845352309135567680371774167245488891761477530228759450994548700564464464351609546265775878886158379938321305749343567918549119361360375472578986312695314150032446174384558361370925191201253463288634124400490141967573258997974961061523013963038094247199997273177602675421628380975489736795531729209835868308909048188431979626577715422392216346437524192079286395169741267279993768624013015800644541360887001505168113847802968360034744531049624175335727280852501871585793523222640308135092650560493799976089235704347213685883564158865807644955681999732535457287719067493643469495619886020608686490307051060768474498303806121946473546612882244654525069771975270766512696013904826830068758915471827463138608615031053258153362487860658983846666499158266791193899649691931020811489171144209108000148590316769967372864482980926441906215102155385527959635993106672602263844498061205625617892382198545490393182665010007892124115360601953646740707287590011845555963604315466343685026992186688064710603243219755820308309470533632370955905550106505464202330004866574508575131033622833721261592597388877584667349865569763280050618378446324000106288014538118817805762325321473362058924690039941088605168146422815049273244910608002402301691267175717155352266392505616529244564443545990385093059321410232774560860582025801441368892898241230714939760469146937921188490493920908608125623465990555406848337428633933457528512818287380600835755040289915312069526128333880497435384567693433541386228494342700342282984114730539752005215438260093276879249050341942928618105657828724739808464317288149355605968724283269575593074240412630289816699889983360595994191705558779150117992065461250114011681257326034152279610171518528477944475331953786969382245121136677090924747822042531498524910461741869981607356544092984380603277412555842841780600985406765944094756594208427514651015744680948103137442498505926818111565976942313423069467567084522186481521064321766132521491057994933706959827582810174665361658617642900720909332702312152925771999475117228733726308240815378645333649363175734813028046443743577217390404199265842096537942356271088896335380272217196846264235188592731475499565785590719738275062426803794033926725156646692562611505908830830642682643303533616482103332907787753982900265329977064199665041167696500772878605047594925074838487582563318231051278344293778234804943335130608829253474906280200855932485328951132060453050228249011757391551551125426133915741431385995720962037059924785426546725983132942730610219563081968758824529710369175143595546466327829452520392583901753617672529744767076017456045228178383366690695134978958542678526981630879717749377079687932663310422538897395748231693348185505570262050800316931090760211065214379910916727297304674003925807909054794874031171204716491497395120157793384918558341322978339319265283538617748080819983472254105416601574475398525068233031244858663224607785720065366921827841727964406593575374355511084405574647333837146400314683993381193304634370245062806650416693514825106014943988179592838438652936914493406160304405248141347593965633933373119964187588996784507666142270517548319006026036092343502509946852303727524048319778163559430668251024386563472365651248197250786984085480718374606719384428263781470506992005002899435634752447107776593260132494177354206021324705920406725993901694215481619368764555796730103980806165241476767467798364784842566653575916287113674080802094161223062828439106011669993859508812888706488222423722308631558879156035122414889008386093898519452809451480994588125331202953750218729168059934478625523977874534276816160169721437267600206200016405299089819638780445142035107695636641383169732662539320391922108631615244957494935833056986809535828073555712027638137633321622449280607204568096677104300678132954655315282441286648182539506472865667963634141370136244746118405095340781614739171326636103886058473371620884780074879645351502486529250454969770346991949538534447187088653650964705337272623805528126188283902056109468401027608808145528267697691263996696214619231060979700192233753841775148476135136742534862746946577354353740861397445602824242302383553431494850072656230546303719248501627354357021070252091557549235651267696560245750430213395523940844705338609330782723599412191805280183836704740269281079011522293750534542784479310285591330181703363872690805247559911531085878484456068851986624901057827991334223921517376392824014405903499448133579490007431540575569070105909834772034175387259799880958015605963230078056825500478779952918741024751846801377095867887397215120433448708165795976185608836205740274958452859621136159064248520036203935979520195290048186089281799396969870581145716635256787463602280637247326255537092251712983919886471736881007603866143321433308252087213641753216322530603469827319436469776650187484952228847455574415997674554715826291998371584538801161258484058424761279275765049864822359685093251419375943475010629574477264283591090878797413902023129855083450249822475659127593231369817765790994784322464670314899431132404058567187279757978247251999900103277036635828900490023086305843784283963692657617775400711085061597213005198541454914734867879903812790119649659268388340289938547197441903185035171852592813095471331399814572233105635556669194364318377262004805172738900444565083049383805193044185948263559345550418245681691496351914839384695258552262796653313328905842910063565520952986380866683261342194733748092859204024973239242730223837908558403304334897822326075179300624223819285955568734759908256833632985308098423113526629857261567032318227624944389863561286617838561032518894374692126828630612606325188838654030841616138664712537649181982071610689631612434596372290896972573275859525934023612541373090046988495967304774131751332038495300426137050407176283935148923289932523804731245994125489972535246001206479113161414618598023411652795553390120691156035462533210741349275298201818882342349205464005804248518669145227503381156998961479660614677334495846012905209772089237338060116781084387288448535041338667454878911552481570393320559524258059395904987520948670232645144180162150759256068903986717118431962464236231096366015657111346586587244191368479475604098780743187641392104242895520578624794979288377555432684676983544721672912284539238229388919364067514670921949305158267187953831769513332233225560331678684135295217823109984998508130353146660628070984141011447327315193613267040213662560829443202606918925067071059406294358507224665852708060334332602066247937580858686221614588559216948163648657931131767709235174366190415429849949779983000845515684882380519329514713682801718643591415171962659880372180297519267182732514309586684527396445905158769170588535168737915299754605474149650495096770730614084852050778831287818949532157333550441481024260781031549958182374326198393462795312336028412184159463674781640014474220212670113409825271542929512808929679480227560721611980179120886237428686674650810095263101403285321384705956343514940304226755232325131970592487569326410864103330102162061903242705905010682090487927879890055436320766071029318029338961100964963611796906540147417001139735467879198551949235820836257000793778744952933553036795191889957250116893880011786340564128152288071736298579735616168347713668453435065666480558795665256058231439538226890972843147391472510048359042062223396795719025493040487870970776165852108660531497060364580080378307695377014516437112703875453509665694532235135361847113701538252937399752346799863846186589055417249249292862971630286335130777150691149372576733763972314581933767627590522598860963837407599674535015488597067643437156541586694223627080483882464406120127337924835324831183608239587439991469518478233326578941488234171343607890831017008962273167294060580700959656572688800056630283739767152053086530451946841894986431903711103438517165965426777519889548083225711509687027530099546069372472075177041376627213355316405105275990033557738208232229770218236769559663082628659267685520482270300301754430988245690565945952196803710376298042133333083650393445776623666498299076812487215109300266951818953575949165484844860682736913351329302382059715273486678800505526981344135386900614089506967842818003216970447095170904303139243850462075465038231872912945286976156724386653833042096305308123972069001647625666378470632328660270893073202050711047742021421411356374358446490387156690987023587186377237647518789088778186022612052402739291965676361548777549685994900529303268725345634136706565264618943948646231933247017578173677827602706961535834915749984550754343474252121938028005397819219513955780141778693417662806068334380306244625522877779063846146559359443812206928871263619008249270876484609634276157464027120897397491934708095691926750820980403020821569966635401178806318517803438615038684626761031717235643194807622120772261826863473685295635784102408364508717314769750289172874940139356504537814221798137931776588747667660916383653222839996530281082446011061938280839360876009617824636584017079319059615008194209839209945276011281092319221379552933460094743253614109149468319682606140071972920505012025101923285635499257799373182949695334723813267584588358430366953449949035711740626254253413596164580766762073843497153461867120698220136375309374110300225326270302246166249409063955102894550740487230434951203179408190480161570399078000184575873575210748129288236792672786111076620857844438702823261179945463870770142120995461216427457103218118363316845156606279593388201265718167779086600228853529392080347857827432936976982608111345343677133880555930618094081804390337930780593501983775321108362362443959793467508022798948953604421245630650764531037259011416459908308655425403668676162702724784823430480679321782554192128797454011383622260096555746475035264699946000242617492200359389291401954086616575509406733668583519354225791122027789560621479883450696830313257582252323074193375405532883375890997993872131739162274064998089311197214781953673368067593269920532966798901546902837129147145770888537399031446769614656641800847643432971709761922667667391224703180367726344938149503289453478280561661700188978397557401056036221506143579156611824651363643556799181695639862634282191699331569424852523039440963307544120454080347469353612780202645778965247933058843826866028315594953593299950196161097915628082121837013480246274349059999862349873625540088238673127271235121483002657233333355516094394280901743077329924247134067319229530382614013672937622105065696343930017203269654791833682988799034933079852249444107512086459895011534262084644898930487461289274142065948354466438934455380186642208859452414780459110359820502429100941555203685853700929807517707052270994524047995505489105404161114776119238218334678406485589186432975047531218167058779016865279337334293142618682028882540495865042191434038680714370691605272464719774066267005124721109669473739078482362017040263075344094340555619449225909558132196942335002001237558326578564119440337614539200995846278657903086113685595600558611414291884567831836044604093231540094141480623305532622266644742777715690994796914398610941645201889167373255517757171313822525885322126359134657780649582096463879182755672943798856532826047005060135971004848744675632062400828101636154423713029180811946397841201516724427685487724372240618634438294316344844095298512464693198676014890159758621346026563063422966984100747485533882130007842600946947641304315840657326714062866877140496548860251291583446684282355038215448233426647181714846562754411656587613795767568174792841286071413669221421188163292466744789040296006820247092449318625216633763453110187959605230609486545510335122681304788493666337649197454156304444386022717045651032302308680385905071576202871700597363205883259422781840345868246073318968425167918299159808304822800085989904776367425280767211339559136115697186227114884879542986834765093553813142812225602453443233349607765549275823409639502802956673208980861722160374509836094241573516181899939350453688048015739483426040954264002793269679018762098237550646171454473999645031728323271372471137061201656118740324317885437252083306757765254895855907289249158328267220518849837971441731226046066631397130857969946172147902919209120162478077836861684013711633874056376199988070731985301181997686278298360289325892734971657145101916590767855116825922883387813569845235270904248378333463169235808598320838791719657975858603685988655336752035597566580997150050995293419584827631922347158087954214090483841911061439569560648982251455452954446557041015966354653121101089545967703885981059753013095461164418877779235659643195118606542033228515271892784125262167584150538400274103652107760074561546528424601295346626688225920061209311230312583660683950521856175869461376860102732841057560276483140923026723175305715804248976297065891020718813784729501506465825752381768889121533862156688241460785490938529617800767206574411186699455642630285004557818187675568645367998136658723836684212772373049682924125416296094995044518668366202799096203653485641733543621977920555919345380245485596330062722360494826590731852604372833615210671760712225858692689358354702130739612661197239406451710910387074758999910303900547894121780070271673339425244334000818300173529615997400046458164534017203719903404169823126416513597330098808792042768497795060407310910727810194066866496955586830632820063313035149651279567021680532628849667414689636910710522543276159190898552893962143353354929427130705581430771691255918764240065370626093812713923674020147666832157558247331131247292097298660485747575207955304992337862815795272385994106604703392901675129150952591920428691524881897983365916009240170501184475336217000573973907813595804925168800473295195889880228669159090761635374129453894430281881652235441796956178704800191248125254313162452377400082323532129602304089750391209024618844781829600100779638579362146983421941538228120811524784766113510434964432069687891767820266853796743884882777322035945461545390463756006794038495901303636665434773468683638840169340430602923624799900219653875457085729188872577303521289965169850167763214848386643168582872127641232583580113247912443905763300644020618883340638277961559074147735176499531845440442046651542051282456222318267912715858552585346662510223590286973067655539354060400560422775751587036153929020097881886952571012820084680819954254110062065749545830878910296093525151370949378063023681558072310902740012344360359368978681203906390240983452784326964540670791572518697216140139946119057285086085249414843099836440098114287282779256740517489447938529948630054837128528502712735628540198694847107490247373977536539167111045539106529250904737903580697132579732375689634327451956800891632738869477404641020317093597713537442374319677227905665381169065352930154195977731166866848418807574251679486858559627879006632306669299596291422486696280789541618764864446228285705636798904436831774343545367907607464970846590452232647270472470543467275557720102267741178947295722408348087589300366466345542142173304629352618175042071843696065080939861850254644632750277769716856039740012497610249485160364596091009912682259973500074444695216804648413903741710573167179632600678157798598073335976726551228565424784142651773946697649196759668498605583093058044400245715739485341285021523889052590478173575010532851629517028091939153718118085316282603834620927994185452723814734447896385278283002808250530499675444727082449606268494994679544630225428927492914867439867437167990863708023369732840893710553558267302373244646843866223575443294897863068745075433528030857070721307891480889583796792097836250625890007181025926329435572154911875001846643950659766973738674298691629087682331906769809340938650530297430901842682383662370805665859079968186445544714044888500000217481347490099996760430084082757242380066303663636491551790813696686134062229322971864700193129476044516695877019353182929448226870557103109414004145757432594480972676934206782920319069925523535731529249437415671793869565549505070991296722719133617863020832121168142810156435601061874147070397662261003822021883526510948341430887171918696436415596192871056839923212788058125394530469119737701964781256689656763085791122143472084710086124771487022862261484487457997900224332207912807368437408918104982588668539225514331083557737586187027983897451349587152874992390377143600548838599586964164918050989680928841084168006443842831470021237061400305553195504045053928056242550339123600044390599201903026679067105952802057222182176313085839282000209657830741763216099715043213386701438482259849441605081189076521032924825012813341750187207351039225574311772599971803337498319309803502023526423368314016575581345198890523777851200453750098895231665247048478981896015327986671884493829888319930417830510643453398944776976573515364387329068902764166640597862577218557298580315232910452233554780643683425476098660010541178451370181675135307530599471819992479512280914291129943479740553423700418115131549509428982874400868228999081328398341265946925416661910205785938901480094263826582568271344599473620774799707638355213809402192000069901984166144332240932760128745445190351053627496917396884569736885849319416701286687621170846466952933132118865182551750556925343049060239069911237145794757700467647862853851913023000499043815997043714346094022869667235627151587428560849440493768295644492180286435577695661280902309809548014795144282270009298968806359685882991268851763489454235530774943485639009761773127777244422801640605349682291639056118150092205637952122591757733593124579728335856712601084121745483405854519184961453541486398665157903464173632559931420049882982711249716408088555006245215877383144237712904181270081144984063293873764338134902222566722517940067069912264112329605980417690922744994021520508203880735760196954857778793664355444094065969780188146801921300550042925894067197285061327423216682051238760575993728994486286412445523531659372481275960725306840903748831186391909263822223927404709511294176006093157119698438056028664291148802137331433017264962735421916504482047079266709799356668418829609382857564228025416680647476023530100723708259744576066188153608316331638118067041466310603028862320148135499752660346679283640737063142126932301738793271470024132528317123679556001292609928211903044698797496335701993767410508879145622702131925183838038029424833685874762327019490546186392940058273358756582133070269773133224887820719467847580864488903466781617157219448946920420044431033493070545285219322184987462979227592109647982874148862774878049363422708459041732543111553523367933070577076770385504212145792644020150428384856492225143440843400107393667928944912373721675706578073187967701585833095727202019647814499349926315448365537372697099483607765711233773055171878236906500127549244575008856543346341392534115771440816473281108796000286601141075851560252962101284111546088867844253548811230582683593352452319920389353141456696153657755776653266036727568550501093551557297495610700455519054433832245546647005553561259062605347191435564370859219097571396572394978302488300211246968412432405626817774676280737909291071865691895518483479171790451025584577777990972487504432049410945888055845031869154664825137252966417877370451943307871534926452570923168929869368072432089343491380697386925213304218319487115257249441397507915090513037778342552840350522313835263759306523428995538224117561096850345286886341145773058320717779932697925798027161117476969138835550614962016452505740880401366569285037799165568245550468954615781026627038594298869348428426657961244396989582161449207316337560775895176191324271014072860894233140590717864965876959978643131907059054484483412400701050394184046936567121358136248320888130259008082081712184705445096623774301805685334718122955789109768653667807752543170727548316871270281762449015760432788392505410744465122180462432664604281208852237144095667028202934723325240621595090966190769387599587329244183359587786891139114699706839269056570638213136346502398552370091690096947156999648032735333609898569194867025056541666615293283781273415238334940264297515861590384784316675091676786953422640618146264587895816043961891363844544262453220324925776262119164269679928549225576807821126657581386406873187649276991115382683469758902205175965091051000622868074878837835048415298591911060866978265896605124125910129985844598264086803420630382588143552021181751682734769194068031261743560475046879877018760242688140726289613616221691442851873741436859586411510802879304417264289222868659779708079695116946736527480893883893723343979976881774876364137869099341748400929015653322245571743997576775717314839340806290502216178252983101813403854352925204674592565319023731455809927373554860047195718216680231220130452717860639909406942891305595272216107465756185873140064523382767642860219252337758389516187641106350369581247020497699112719687497115766357523775715728062353715935621440014761714048575368586471307616717350367820883687046506593946697858756642586930450747136842277868996149541529765315383232611093052106052022133181788065798781698233744012067759372324686923134033989008430665153307697899417247933760904810359163722036871373838131148481202269531538977323595694211890364565647157317802406600842876640146773513826212279130660011760257094255865915170950053884308352015899359330120849740746096674202475711789784202332873324092884344112400190791138144591819281751320805474059737931577170151274132520013079080817676489903751681401997942356484551597509194617894331052810149962657810244228706400526138968425283496277528742446462868229092563049486289603794792142525510254999133648631576019309778004736806449474872243688971567472417550273537345864585721470205959272595466075746610649354100586857734824627915824069898990175785318681924123781319354205664239366057830738782227531978574759987277513296613387888564727572236095364329056846432289495762921264302047740926328526742510109264152450163367816946114479076967965380010434708855285081558382708147709632423635287556668363129448284130137941293163232018625926193292208895124848875981465700550802213761935874381030323715172669196250194204062389734080394368032182933287846761318896450316960929286256690299562044803022298651362457808286839647900175884941755524752033078551627135942154154121295070138654105878134457280788473944033635807508084466974195143279255302932336759766438794009207215767516545685502913343292815143908153343058667786144891862983657042376384731875834521737892160961729062407141352600846696150125141627314696766359037565251125157816753201204023938237419185646444737614075179374378107969491102125064180085803982166132594668166678548523792016424758441629980366956479901967676379989772067791003627981481240163090519297066165474252662675693399601385792206677981427392319211439854065290706734214856294969116707256052699951892946776095430514533474154773464649302405289610645940435545777396115477884119720322910805809712029442130940584823507667746047438655542533810199696491599357286704281277192932102610033478993771218049226441088911498571387861906942808866809089527538731193866851293432295956514698551363543105031492403940090568272310346243990668260706698130259495390620769488142779941837007441113643894404135164491059231735510865037875511514260751895011815960666429811838348275133573328325706717968237283698475246130486487156982577884358884494002628453106531704031845836280151832945962841657948876350573115146314583554658578899195961069934139781453276119566535594940509181060447553198737595383799589265307271953438737233015656868349829759632823089114567717235228711829668738553526810901421093550532754792653602518128185503971287777400414358139618932040439909972896954954657319881581328803633023651846607509612054596927953008376365161665715514770086254938719585441050889122043699854599058362986233448894318105921146392900407849578848198666483853408763618995616702335378470618256293313487582016248416971238820561160855911717276637758875683007790562611106646678270916286475677597849694294800329758481580244008235761966211617871243613248984397157185248428979532418995242394375750660200198052629833347012489628982545912242521985464547212093278674654453901336732003077226241471328734318126375616746347437917191360483571776257175447945829407348375170685998900427496300556614937837640286773602276227191778344443586336922573216021648454424020528519037144242497534076419016702800514701493007977315949711959320823371538169946440717966362730365334157965468294203458106923081048284345517530539156708737887054368810606547763190667783923618141983225079379019258582514332134920092813973888986923496724481446701691157228777414735568138930946087208447910475012140774598066548627069828509426700424363271677381554673246469412215197795710073237490130754325277571789904445536333957391887685265066219147402204955232420845401335271857209134699181291786662792331764454285238998728994520086234863528978287891910535733931592308470928620322565609105043887114170385297084598795511953338778542243494159950334776594337720874313397335532908489694564143483811779010439943601542835143345318978341099354153027134447231584646505691559103900016134647193008988031336291262016922234546040501706169250847580749533106884507313857050846509895414303139172237160400777794729117821999840690869911428203390959302249433179052068880894013089738947574635050873822097211351609061331335642652815166797799897915975287021823167720869481829674022974294541759174787492130905340767312211381669547145853871460757123006493847009979168382409190304835987045898170430309205893705163121512899124155966561139489342447718034788928653115932035644667867944855005916130728714014614313122124186709381992006555835977970533700869879993482728612600648104537989998214387567938279697402905407863900891573208432464567402007389329894313543544579012824880310856692257062765142485771202903961299227454426033834718359701177380465096351330685927832294358675756363534292271392279484497005583058198316583057460254664158621060707272951256902785704222650342597695973400423038855804621935941320511945974127840005226674884356631916834989111701703328055572071200612833896495053108215425510103100065016518996852031748402369001978662374945186873876952854751289451798249062545418473930583864622067534527413283486464494169275180303839732284041889649151641521969047787823461037360051671698331199306909533641756327123635093827043677283440196674639275293692699301223817849299755980632516544263908145056227342237156839577307501009028386053718542094775870323513235294964194653945638630580825011092572001640128927990509517146741744848238177859207001536217810222802391899694765916901830935241460157104049940254393885207575752268976801079354485496773136068096451711522475773232549845553455153558210633083324960101954170701751262507358342461568698362076043446993863694739391480505297670458683788048057669718429558687671159243051425282498647208526164810090781624590232626500417612754612144436968280061685660224748517436028641345573129422484079195321633010429796001643775262134142004004045997967535775698131591010828947863620185570544321378218069751772941677114572650740604458001875639086859758943468136158770731050247081892807847037137196988797455815874197141578352428067877115221792037091236584281222101605648986121193716241234882309550198245386433945874845463458100358426652355806250354788492293570556842228547601213357148712328522950201556744833887100675579450207854789608956238371437634779805209559123259096434771943329671872878443264659483034229432013258295831634912026500430315375428580402797709080351148767661627024802907114413568769013179597389511579765361001496007352842235397016274330343260914076792651064781810025620758107221158025311181343643411558663860452969094830429086685629502641701357633033488161762133545352346157175131025765501777348962255064435669014825837874525862155741500558024200515539433368852027793108076016002077954225034318015221690786188633382861823071392092767883340053814461624641853591412457962061484424399670015729849648657855085141409629296545519144219227240983735586077023066767034877934234087872656909718745842924548695198880951473427016544629494932803467173751475061535244843490633691927863620232796952249359578255712832612286988108880396255154956170853066740885710364074983580979331788709241237910852298183014324550618511027264075054952301691389407587799717830954185890158226705272066538856711856184639150119122666721052079664054538032629612898335030170464799864823778593307013399465910777759320504261133526503774262916006622954136750091749531266839244786448100189767099455483030332253710371744767712640437987790785401359210454028982878818010914895145923165478744790478741752294908824281371769873709169453375026757573492614451863413504018223899287031614365307891199007157122294011371864781361318487259506397396703117699787056971569408326310215957785249556257421339497251964533103706080683397504288244280140689844247864925942592340402788208044756276119691064369077056443427087521249195335773059848346272203891806935612686103808375634237826281643200636036867950024015692459049526049600015854389317378546409480639724564631631503532351485966396746353666397394860177467633576725304627897289150724145355356201470939364056693044071728556185635432362833619627373995940407900086263634547004057080891604291657050477482101793913674599273857242558300101458383562388277462794387127345551613153220517139731473278716594461136547841195804703838785775337991681443473549711038909114310648387224545640515425995124437567314861240386101331961020339291680108106209820142583891638134697605673230018691074698982926077539134287672496750780913993722335169130558470894575424955431783107219228823033650572294936557428530619470758794530702798635614153878673431612921000861672646831979274988002694581595186681031169181569611652547510727589342006312150380334903728187402533125496272744842294172483603883230402558373403232111163735045162125869159722487595114931272864255200537929424381434856916204567468840357797212282238739575602887165920885433443285326598067633643481906692972781478395114584169070428258857419724756205372377747843133278350908624038978753233858459571639502945782855273639226483458739700816522916847322048679797563505867765889872775539280070791036327345104532063081278416174421905970525676031137257892358676751615355358591730608795287655985624197113463761523137883359674308937472903361133823822961608327201213007130073531275902999281887863824006659345645228084010227890800428137826770770308084884800472350843284269588980089411317027469605088478492092917965472147985026494845077058659117836460240912038564437861431749390733286225397741962223156457524193131702422835636902518549759413602604054796125245721399115345864467820140703205946760451929670382115557039720350905366083808352874999304279128607977752182188072803770797410309214983252860023431018601805729981612005263878238754722058423345276684802712374968989920158972486547219779212251501252154136302380530432253163435990635711931271466640732330642455877245936175515230522394145124953686932472549469528639721992495611621918705555887759740189811224356400794901973554646087360599513675199177375601096577611214183356086607168666618078908225984823461560429440889909947620248150640110621222558630399527680981355629005399310824341780607606408407224219660550988951374461033063517254436305053198466606100559334825061093292760631944154050885104682309355939356151725498754838950210470294965678469462536608317171522488463252036095290579797938070392261216530531374404585462898396801247651947084908302773408280061387374476160252170873076157544451715752165062083611700210463262580265223666472485946310411422571539366784861435966159255232190194228945923210624382151615276695517155711146995519097132238169178834638837933966647406111483770944668092487563359080660407245039689733449629866226139043568783858964826233185300867371413391530927702529963752529440394969174729488566018697435885145903964417066130901213406711746802588683159280129346648640148700023268953886991727915785316763710512060791279601953347351468490653678126099929908864894571173694306653657672931458807425888640771816623644010493205273834377637293157266014542055920763588217658453305861420361998591561568915277722491741477022822949736039065223927358401006530861325151968417874931402015309695975262013068427267398639396157779598431043476458536022222032785485417144140819612906515044714909439977010311569980553621816750706337842434044362559211325866639401002746755233076875568099426667135809586912001740203595616371762876885029060300310244515781712884602577637843408023283998123432419341118290869210578144062283967119522198879793162421295512741247966226661291797329986237396780064059231443483367366536911744700737791635708361161328155685395233976125007259722300495309886065402394101513095030216156013287063010144418242481471594462693861406871574144118059120751426049033594486783996951835547875620454353351057303014685594510965811461634342164487653826792643350548127566805806588382183222182623227022033846058406583720547473823566735333937992613055164748956964350456516448553982119453380285891597601118407361466192003420505405918880346996620979637856927618983796201105211442134285383193386653619969629217485782896851507885238208874325638906574221323960317069280593678937700711114848804586595741778458421596588623671063820868296036816429834459377408105576274741297080365157550466894428455519503975883200983045429390444479192588408352440280415925307810684164879337196226054928350961244786501577907836178877892320501866039993054580834374938737030067159427757122867908626379775578132417741504171146775078490214641584398968153318868502450475666267100802717524131606487983804244462332483836423690604556616693712344225903825533309051540768912692369110746120986320215648702392637492601029493641337910247530674888192069039509336492228905472328448543720872454029228128622641691861100753381651405556703717010302662421713450389035249811666168149539640254877705313065513880334755963529950005979408153089168630589283455821715932435805979911962795464964572214958540461240139543649244731299799801788995087400995533594502203448165562644297199226230240498420070518300787900480715191086051553588829362601227588195545474132008901047637834059872283258457837374020463164337138891377541224820108577151881602435659338014709191144846557348448699870936088213332853979927268293407433667198411310557716699735347918857254839571351548553796253700856591923556838209700671145669901359599701900980111916760493919711035426705606105129804185073356668823653871148696221931908325678574620710406131338802941992352123615179568065059930070835444009960335642825262311939400210528753211624924552260726946674579561146387943990112664404699301570510763332502611296283009160908132565658413683476629923006347037169867625629670909940504372657328080501643541080270703306452731171946834686163212708127303631266972646776802518334597302199006000244458189386754885427476342212976563229839675169892307855896140146507111909721943529438696262036858888982375886373555391396495605499871277404033085307714406571421372617790467153376238478053857034129167524696431899602964929942302111016695527120975894591320907131215636206655441463240559620888311611886553558181851056522513627166522751495653167172127577586482326325289045863725812042094255603030812983991644819504945255887717191806326115963510104303272232054599038760489867116689793663550814959388993078581577690581095450829358133110042972285654203868152815770612047778442096048737751661769502437120055986543718982911578588413501367342651628547683886150074780902796505310635135199568178112985830364509840871605101886027827971498757206787206707358617351372942468564456680511485085429046439950760629422405214561674884021972830196860884232397462170242389260785322286275723041853376364582243680546679358266370862647711252664815497669137642590973513710430418399823663704311520596965729512147472918626565704320752467599410812631425433288491448470361438430957081418065716638609765751072275336369038011753276698594354809361736171315550532784090898450532522492477568912156647623012995576901078249839451093379920832477593095419121746768371968546936215280973786498195000940714902577574173730082027815886697858919549849679978865595458932129843124122014635154372573626932968654785439393483253322756140274069607231520820343100311224469067905112914155061168378130301258029523221914013617882853744308968201399693770530409318192819254491314784131333216487099288249938165066314349919745292218978102430715131639973478582348452112653921491331580982337348721814807002391719304996509624675260590293809100789683382299696211327680237284008967393664581222153986818277947967595890557082474886262954745975442778430071214472759161612512497767676106926444646304971759266779160823779930803452052570736452018374539633161939155290266293420380482776043718206388550324716548360096491484703341781578606065216756226014049134736759281958104306100805218589491226777482187707526350116450462766576823104827528071707378235293196340161061126190655781253474475769092754427649182888142034457904886123657149057354777676953896163676597457113693480315286256024698119284560830240849968730258585636942755043888616692448782061801310457765803309880132444935507622034816670967979724851457030945858101875683717829351432872764887290182325290787261641474038427039393663472638352487407213625701552875349598477119650233002607015861020315955252382878216214034198010552461040825767956233728172766318289891805440907466213712855292477806618145258083014841016776995644707040360466954872121015498954986891515714552787298880099176735738226856805940055572907401552738696571368303117228875935652951990965739758864425570477710746171579464352595513886700857155481319311019098348989648450961207672088537525367772066071348242535172724236332452965282611274261971542089633880137839993164164360833301631831967852655142218802619301686936733917203756127711020179358333936386531750425962592457279902937799376052876109267358559892899015684765717092823687146340432780447974415979104180996356477766746701383902652926420133186659865995720193372542017790245999789668653390261209445512220955017950901308430477527589170113652982198867916555873323432096331963659871979289475238049128757685899912906527269468088762022204546640774646027052563558995165165683461032582334977686395806845223955357891482783642237000007038708448401188406563205634258116018062846483142948575136086621333246420024967481893479988021720172227689203600305424776376382169255101620981233912876157235413955160054314203218464835354473153363066464176555996463376672391206133336102172087206765684559661162584593796338922900338381031980996694603235068300400823033486850344603460492914452549524574612357523538548125319674070359514619643422291221278919660310323118871831974478583610505820917186127688379089021640741013258507661241221616910216546863160514177346661096059877772400433328153536494709595558921038635836655373847528318761479223436632103287872178961073608061278368062362257587750385356136450789249252901279630267317456644225763567357689926432517006120675321551215554397910540792490079275323207780740570488761735744590886212104469997754721458352430669702408131466324445320939029369478102241735079454000304844758868553665963459338323692972038095712988222924983566243469777203378002149091979469300455704376002277475607529056307808065036328290341702596573954528149683919246068482622432227824548399236073928245935105189264838516436834399112572548880355567682197093266007057996155424498937092765385986900755538708055884672758153764124091538336974746528496920201242997629160279376202602040074789077213215515503998227025253581647078458302940252830685648889627430211824803926728068509506857614480160561556239173070546256046800526140482722213859490176348460281954563596620797476260684538458115193099094486885346144627767060245901393763362531463156065946542795046119161655586867366347538790098927851418228054108760706149870384392277281893488007815900287834817509843346612708794480369731332092699616390743018545182221879722963238405016426902666392416945271454986434847938338486510909258318728399291000715012332511332416847956196219211935829020026052898087293537220851605063703720228729321524336614277444179307007750960825474243324220461883413716552341179386206888715341777749864662792946436940097401952556677333052910471702225806310364214568050947595572871315464840303248453830851405614942028212689506952877070277306539449222929673200105145604198433691746330780032376677084078522163956974230070263740586883134077255816699979898649482478703389100743404542438002608094890038045860141424927382565564972567282147114716747816701673637528778345392009955077484418728196402251196374369930122764536334853354819613899867425041633364238032884001359118500531520430527391884186741725447121057279679511083388045517966897040866726526521847768680933637222897696298402852448124102756514130703454592180457814334254571804710153725344231024136173613542960122784639574159515566023943203644843798796380426507046674848023270388849771115203127758703813799367304735136157909757777852241148324057507277061518502808246585254332437686493438755314885860374312979466358310259395763991790767689633348237389248341532360043673973101615380190539230369040655877611829078325432563648724789573806792921686208695784806327532188023498354583592794995242392562489275534218763528694452194720001961045899968091211614734420160766880096402693938855672056492036651912102659783253742809881697609042474759380278781980906604142751148378590035170990688699222535570678222708162892115423659402606448648326424122806385395916345421928762462474465914593176886078159389945934632931941956767835871145179713029075362322798100402576146314936627552274234110092697573082217345391370151372977308922781893618220759934293433955780313813982959027429767233730912719501351913162802961129759855938135541656213055738852535983307458881045905892970066940297131779049217585834213468100328141244930390769194940192862290912949907391346274098398465936462367024581560653701775502717633502945537630163563261843187377993236295813175609702672506451903308759484874207274444089545216852612517843997383983670817633727931636986483999139582364442981048876877571665025186999043549768438541680998027718918988293982362448437525398179283997758653490224362132637850287663328360900639818821391288349190864960276267579197435317992161298234129917685380005636506142926001933770356839423974647945104786703829826736311927770346350367595312662532362360530104417716311639671498481596917932565486590947501733580206263268530580569607942007437599081803047666779456580950381402586406554645802338313138762758717661756408580097523049599694812128611380982082372699207703876613555371443501167844319413479082915237613424632459632983816081105996386530489164892705951701013419004480255927503947466748170996493352825226349482452861073759485033743550703429560451605402923074818333194010544165861806690990475956127390650805725109176578761929415206488851096876502412987389358416070629390503051311526446416313580148409580766990576710424733383198761795326910656650115582545457272466023553623312387354961759700289395496468732312667690830286225456422165643115716075126085781456628258428441221042238032581515721378453029267934259342671465663378547571373671097971785013254191692293484603112860556465375810649253580946826817345461723280889744878764582905723373234873914147193004829130738562703092009695852374214925124864431518499411099125344333022032866270720065988330488976849588350861255227686682618058959832365201864870407958817425209548496675677666933215466515158988615208762671688408636729958074020682472552521817790461878897576346503995225328978139249687485500027668797126663209864784256277603767258406978122573176309076555586165980022769492661942508230803339767579355009028958923697912200023022818695716499302458389902928814510631905083753642521847228594475670888286896805720882638614468031956471908269868312380727366624393530940344779630569454217241574926972180105812311912950309486338561751003182777635325140669478717056387158199168203379236307438870196268343916763170353252259068513249570460559956428596349174445580137551179643390762598123577270221888678338678563274835351188805675843663763276840438298646145163575977084572586708153452896974102022487827299820147480883349379157336746557676330078447808692701437705405620918492311547806767585486806277866223022047341996455812499334316041793316599615772295167519706631292032655471958354986790455792363282406487685632139363470109130371060628954955301374553449425140780319272597549722527041935914157021631472218557352081516826218363769773208566521564397468953302351641494417896575511362355489157157096743177934004690894615769599454873579394343338110252578375551145691634411995206133099091620621807001214465514973937797379348830328908209229755131264730116105031167186965676399344393950281936937679629143709300623953828089886638987987277203707947083461921448778424032996724520892512128414436218074906831315920605091238475585079521535797154126163801980258917082803438253479596472381669612931862146237990488513711214881588389037833865160905790003024644920938094530745553580612339196958194648732253264005303089999543372932442526784732242962060742523300301377544071016511323168328481559909593548595949113477664884741983259640555238374649579059672904582519856869155154978811530617303941276402424345728479962650466642285157680910014316007427917311586062571112069283334446081967115622820778747874228982439069853895383216142822051759336544129061568336317644628368969305687662924340466658880014251096030841151291927211298247432878022314255682116855913460259127623949156278188040742357901417238059532408319247631153045472802951415467554325946252657187358657888966927689879370888733529514671477638012856509859614243397700662708760293084424760355299298452548670753060574784900375950563432057954151416168063973477430500900788894849270235602051977639224994504159881534003562336019123643695141666156118293453953461842650498074393179722178870286779893969172984388110020711127591615081701900109276523600374579739794032399713416630856088065335430742795668615802662834612628562619699705682273376439674227696759835605656154767439469932350496715291743829056877092489630626636503432083448886286191211018156306884211123976849337056602563822038158693000186899187725696965202185741517216620521983929449063560991231662589775276269631174958031951156022405033392227691673469056750011488093470606313876807761109823353534401152936197759795727834735037120900422115482220596090476908032155811125759625332729172965578198834378335039127148476403652971082634497252979825188712899792903433205399173438030856566447213854875971448369662665680869063824032451209538665652986671773841333978446580055594603382877747302493357769381252961795305891508642857535871602289013006031344847565827765738601968622686069738102419829292056957944371214669354930344621169451673741420310238057108678672268878553157636847448872976497569139901731957315930158936495517761770401876803876874293194819390979024617978047481501594742679332193649548824531148646738467269247927714018544822868084375463790113331623805590868222170552074482955551972952867747266353364324232821183400314949348494162859941085417211792025075597920318823078889646630232742792922110870870739202869336821367029980076952496595039307705430697147166550126892462954038505031258728256320856320185970483145648107056451867884242940874262620847725021297988684213555965142771827028284319427442843494031351229160385711440674482106205844305368721016281917194451382179521763721025232849833219691476110151234759754120948893866763865238501774751325045695630595618209178030886048387660123440309024776998721005740611218602563416365028490730039761112516460179292518116816352043212438740022742225322162601171026140548575221314816916051373200793483941718961089148689022715345330215490999276392074501972692205537127989912005925945461726158030825421807225058112056890292974525375990143513708835279228842567199124124659874707601172407465864310664913554208839912813215625737318156356683719597480713759393772014482915997331648573722643642950193351110858267888021336867316775543344227777097696524750254418544913814956086366849988952674022806364001077758004952273585705921152111032753237497533684117479947589862044968152432600291698383184610893282772422263478599783699995975148646770916810691987566267253039147898172410380322648944346901608068649885539076712512627299930820032836204116266303846678397695943498326375216366118440652031518580803391993376876778918258508361024985448347961248869849666678301052125162972758285852033660203261537705086487057040422528179688577814597077639782827447365004392664804341344162324623672688183738100190679977296920709138524938680852655350690521361753993132465854646833272679585785698799047961531618637269011220669071870790734703838853619587259966648528539623973110928662742177963732013206147353643151613705080816360624427700575887178695763961700812939699852157948711663051287005713000863802659099709722527847984214704841254219883711167518955341670413333977113260147585177481581988175925493304698450520022782839758921078763520216449107917764104237676152014689675167435845730847323191097088132216181395631384110461591245123700460463664410214045037681810995443682233589255380656804624363337165334700555149978765123062602145401874367642270733269712468315364412488011203286368596808362569608528928045097993987857007229313817376173659771213467866932179131102674121770867791117036640783703820358229890545058247453422405581011708720852325008115960406806431745447049149929098117449542972635857370108988115519714241802963957815958777782522119372969782232683967364656876671344280088587025162698251727789228080378500886189219423850765055202933877699078130118092730021961931654244108783995442494198941702577450901288092502422710748936520242382979474738733135533860426588157611987058513346652189683942845094275122681920762273642643094132309604905272090207697255572616763572893026527988515664969992066079288842628084280430858608733345396023835361492406637055025335581725766360024983292792232925403623384822296141009526583635133671487915520920328704269878002312391470822914570842071345673435714138865996486120760689986787838057686004614946514219724254754023779578211944690124943597652207987090201464579888424997238296427744622308703993823434625206514822032811173583301411488965006894687827868641366631931492385311719130426326161605333435977175706744805373965583888315572339087334089396741682328537408689411489347000493483516523132646683018106273546138360626611724199827819160712862060877853929603698900965202346543820023631314721402411862301357800184393586168450604030018023984486073058819971052921920467633502233337550125416033757294649537825444276132014308031616486634570051905980861317512747840669247409302161623451933360671677527305236442395102360752973974596178087171115682726019840662602526522325305120321477124868152960728008505890122995673200101529027709008237452111233300636441759788692596942699906052554978984799718326305550233652847999737817365802991139545321227368146267900145835048514880133968789470753461510650347611321969544527740525104295580652949710298445756376598794213835570715977134002118511408042773763578815111773097926388469026937147285204867620410599728960237335195488995199098171617987131260912388122578672056502443286588731187640288349829077760689201655682354511382651873993780605655890248669469821734656234266370500566947106831778704803159521915946676002188950794762558576005892068826123093329946926906192643098770455433802229335252202066229711455075036522124550041103891092762080728122674732310088848167347015106208096712121000833472229133950104622545072597881276249707977791589642774142099638358265374439716034247519258620094700983103828375219936171339767037912596125512860796013611079039674240982396530204912079524287297290768768296017884963007671348141333608360384455802502654437623375212337033518728817341968748914174436342930072578023461513593842301945488265035182140500319407590101753332792606718394632662529255485944803060427239617445270118047538039606127305866283486493305227461039262749628320543546352341493046211486491154842602594769276179264960985855989131585979316484340107173280213042723805894054627968151462409512647051150729124709501683598695626644865749761360020862273450582512125639297747910801377914111166608763782639323383321287606393475613205400091879667704749861348070710726462696355156120852658717431126296068552998380598648745398615270909020771806140318699440819802728652843804794925602161192711289566787308247642186578203636323870452953293539687923616630537510151394507324339902925314546390751351968995542515263624485401423830967858081308965384303127904238886589553202875469797979449542904702953932405070809479805653566895980446210127556707174900920867927379263760290317468082293403259508124965880437938352096746159327557386336070040490758894559692516724661571193140975109446247615495117924467345798129263859992035864536138270289749396074259031584809731898950780225481620231401877017620319126296150643299351101225159783931578690553524532454474555791788506968470470872973899247122758776604027362474757273917416325303710300583395480553081954292059114254806862285656148903017347273721113963113450951099360734340464457061467750049900261097762356663158280572215693305882757584486214936293538511623512088593633089654379077785955647357498955875702949460783984250639572184773745496398724834303154765648775366038897325321375566784077855048399509523731127058986330032509483431606137272794592397113167056571798110356615239810552932386328061832900938188523836039485458954191508855460788054783418388670405902108425497717015591064296100335184172275924529569771444664236161935027189178505635260400233728436504645449668515890656125548196243748583201349314650312563290317570706363610428154814932011303347233921955585294367870766683802801110438981615617805608682132568368537160032955501747929696291289423440705559263116694788577845876395476433363057859531477847959030996764621264506372586158922447013671650521538105019635725948420437990284062549331241313235014960206166040667381562624030277506698229018423572656991927744606144637477306404182822977295418790631526997975378652015239770397565002530292834087682792347368825493873031903081993230105975959572818444151571724492969827297696529743167802922561976673984888290476785423544662757033785234268207751428483618666246166249310377042567489086355593929899875820168293408490009561579468563076965455470574111232864735896810794343728018534507414561494662964971051886185015960217489217339776786690635284967938995339452696917101655321002623715846507808646087544030505253967590246782605666222454408969635252255804894316066309358202319535692147586665197411428696961704140880076130411289519021610855605092114647410261643120517602618067045641469695959006892301328464359105896335091410667098521680853255949792733949130999666771765385842247152418510828352543252284465453077910799215889984134864672015507593122418622514183973754733762562447936133898281218094529249741966296195269024477589359525984545341928591329506128971703605561852527293149401731075664639916007439089247390695331373649789162215966050447320229966787854817336816723733915832014742847115117092661006819829037421364011409474822018555578062208263820056598913027067767287600948646337352902208773208283859878184635485124096366889237187347201686043636746276710145362618712177976199208700392185705946237408404477745045501048454741230572662486155570051723688430300774212088249429666857113998343133424573317165501018130874634328181887328976510437746859572828153103001547756196447145375558227493750452342027245509416623994098979776368113085979122497005785762942327360497424853592216262239855672081463492553664858257673773182048642826021627282668707748720042363644119620862348131126164501958197124190112309678631486327812884426755280825597616222663464230856160420348764954171093418522456987501968076726578818719165559678720145037659920041173928522710976821215080453946735105494750651487270567385744718653909844668052178491944908605565294815305538085897513294031365770810789377347203075660324193809830023750243545212194323118189669870786061172503820737893224019489099117652559258020037038639556515449774331024114157706777293349585785460644694640100312150621079242725460826692441914363961200898587936363697247471497531818359745196915238128763849013545596281192532471925591296710692853555547025580003300424887780251181681207361679086691364958622689459825936236538744643337362298315230242276676772784543348530522476050036471423906414990743613309367729079553325946139453810075755823539053279479947896086263045418157498314525399436854027993232301828819786076470697555330467072888873282300151804433237998809953905631029846941786438160168805181312835937061374725764166469401576481855180577660197518338789759201742352791076971943583346925779011779646418607983154270181128859435758325870649477490060549022394474004383482122506433207933550198749950696047543543663473515027326859324621602702147706714156834880605422486315353080498891403007057513137873138451653184222486605312541552233862560739333842081588154942003207360414604347531825854105198779940532594327161078479151236075817929108562627739485762806629081147031861494138245013601353948066912380648593630996551525345522733107566777302328851469015770877953480488404408603439713887028008604146183364569868283930609847319127651266321728112375702804914795061258205582777156198667644681416039479316905070701149313699673459662950072223640024697296863211614447294318114040988828198064532527212341945887270295238355616903861351156323462469448707917168784937465171336583911100967393477678828908440065926983879414060543262251375536322372940196151654766419518674774767041483160793594223888894043127230347990594001948338373634284077130578619342706323568853103707699152582655309435849559720913634208713645800875422613187157752161440233918068453348342859092154731743156386903866140064006088333036114345370846245010778812037031610349179799179951464685566741157869913775929682480686300986324422704569886836051017086342840376243147236190921001731059548751586147871005792305050551930586711263519840329937829476272807341527961059488370778949244537876375813531411449683930638053944963156280182701244062134830308434280340788970404654699624921501962677490570829035687500990899914449474906966544442177960161734151715719931832405713701380427615671645821647694986656816106575029710211307877375834052065521941126537156215948825850414192115200876973085175189924965634808123568633991162988699932160300960425675376146438987959626324404278656310441157080308113034927049737198012138761683524910122183414143320194579067157868624492184684521777096617700215201113249971627274067836369781966496236705164322293126834418600409531313652749627225387588407147734749549292222237927907651666857293067624258079500180932962465431483856276610525441394773638855703379383967279413487740470036969664785725660536123306133172416415771445216171263263265707773591197756668071498013843593243948988888871305801337729324456097743619365709779549064859949603052069782137108985262269718924338055707552941508301673907853287267708088497379740821241410390835448546054849994257569225257048859901402526771015340702311053676399915802487282903956371133300684102343034910960859082474699867679269770266775849042357536500225969293463730035136915789361783102667579734771691551610451516778311020691863778703522275722426554153990884981723779080888300648075658395841918454331937016135069076771203373170892731201025004257742478238544864375241716560919216842120146743072932749994106139453525872121865380490367348983085794011527354561695680384605209880835202896960834281311941201749247874253555576541754140087369716859991391368946136707713537662137381208801703020637112844149725855774799628818851149361637787027931231398007160199372986912980332787448553572586300421045525915566526826070810529753807221963851152115406849922521879478363109815922709490165449527817393132021182943659440510778505592366882093335286649526224816208272988629009777519739477669342560492885826512230863788992021596704709903339317961929504424889834529687362074644136528467392818854297843841504829659177842071430209273549724909214415959084703666185009824684525940376970539704758010387079929053273786781801905489179925086623515537425956495054134556407167602024098894983079674444604947176624902527893599827286568006601739607254200541196008749484056650889656940344690897999291415377020197625091100005268285932071660442414140904707614233046658625849776564543803086076720988135199547564026503540036543761938711799961428124896896822855996812089915844011017913561572122859752548585281397329572374346432279424113544622452523345528002921288777170128962430033445455078073633637868748256804626472317602604571390228097142064340963411894804928570551004032248481347634895448111969555181834717062814645836918148351084492738564009421625255373895942681461392364978265786397796301169943557969703333384236659361037809175749322612381161205061131462225855512249810228516046126899066559308281908947531811981828633034249173859147475320778945096652695687098117963876219445395306882491588213713826647973247216295826640500176381870645258179717442857794230829414816197890811915423115686458955890874015378048963147681735851581630927900702434147434976982575597228520073536660327695765446092041585374734699134560155393998576059351241728370486981694133657967241694253654072941358019534432525967319008352323690505123350963549502751964664607458704589140941052555703970104513822653183207518215563002413096688211890008006031742545727383004997778787902050562858984287201773957300242553358875758056492401277250528666940022376186397954657403773450876274586833245328406754412119378170629533093026944455846370641428027546932317641143531163989367013335450496068749822627556824534700594451043533469684751657174187697652674275389381234322791942296713533260965408086356999910780539489911475575632615883977110171949609308154043218020246418356186970043350276821243320777041581651955416024748297439892748938598064183739256688788101797565830722854127098431401487265302130869012989477096984287571970329594606550848333843390724761247429319707331221590003688884893667185221780879720908817944987675171633169964404524419945542591549759427200366455686056369919298825544529272871477574757306286110525407810718187812444941411842523004510143781761180525742638930725104831223013980342374423280458590607189477507908249012550472075119934939028306080813879594795879396554448239671677442445450350911741785263548974807479675381017089151470117710919020517846384240863311921121702079902013057363468073494932400030783412859035539187113529529532415621968776671328545988340786036469687896302102682728769884383286129580985966953544189118242283611762416510899338212306513275670868110705845212829967414817235385635886886329796002224854380979380015144570697840963899102553379918759101058831500534156726314065620692397284782321664016814374123568999835191623459596744639546438815742429610371741089880437630800484687346062162084884031532808954225273507822142669050073853523958114425309617734510018909239513372539924152957690683483926051355284689015368390153595936563113445931998105230858920223003186411213783484149553616004305852675817624884136723452116725125083415758332741116781979043169553008665673914073523251832726714647911416955952554622134626197144786276405884390523678155935262515719005098349653386258782911252748633942880380536478914597338832902008623188659871354067241999093427166093365833657681836294752842990081838574481578424200698739390785584999242474472869018802633585243031016128050910947310685634812633478746176971855746842192956149795955714460387064956397636994453968398837137443352805978159694429391677895565821743398104787700220811753116288876622136254413576055538053458308824172892898368194616751807853860225789585246611869503038835507300213949468052971113821955442437090235781309380053322201125936138056582704056950030783801211936663028957582383241035329539383622622934880396759411608072647088023882752028643244180792481706456141546958013165118493061478386748809883725716014890496685837101036841998810987686562966073822246154081712437230114409808932707632972238543593597358891007538548672163048674126546021055181170648466398791944862647155737089176436027623613631010194177686803627079098826203477919782696892304016167998306653885751636743001339605662962798213667927502324383369650237471163552986150959904840319170035540752379326570127407896025664312140082139069418469689361882221158511733091425236495639830417965791796000026616571000216593249917987987955719221238511366720041294802923647395953088602548808491431964915023278480727689758673169766887636408706177286999133466658200078171709116412079962722601010428838781177366308164523531765810817341984808619197917902609205127231934067701862166865609333184773603221736560756824471518973684128143097201979579619548029097599873253244221182583425771024324348269993651718338064468709953190120665892252936585855821759960987854874102821137290417437992803879228224974062467938919451945641061838755689799079198336479253694476983362708511726051777193059239530384563481332394561036463806110108428324264771587064613712181774470533345074048520434273349936301099509370926680479873733534719337551941013358369681409201159360625588916709879976821282529284807384712300377595231604085847470225170625612266529371022025440643148022522743235742079805487419629397727614060780313994003431661404481970124113653041771923005415066523237934392434697433732541425163209483793031886598980931247267750186329754914739476191117378250398996837003596027825151310680890527988387221678191925003670961047505716859949532985260328032010076344541910472762203049061331306849032359569032533927930081587216941964424175151180241702868774036285351534920872320519168468657541292585611833671389245652129057527396372028904171611659819094831188970126772461978995536602747524942053616922334942191066188055498198561087003621403257898170400760095141171891660205650869460820226433944357262264060999468570347692285732190736818674119205175391024439674784080437520443762453891509814753596648864949531551140104077293486012137039432682180182780788147622918762089081585455801644553269884104331972529131382546505726803414769279891364519221537768085468003769273440343841677441665340804003705266293817727346866096819476284604117201453271022697477149457750579646114079520708270148088249291822447493790093211378962958333052500426350658621632607480857833379119935139186758132577289211588428118437588933398609912699868841078571994869639147140061095619983222006436513592913085050904137567096316358783421312483987188407499991994995807253360988526646969297868477749617727090724353429923142107081016841994861179852708556568466931762460360138680324967189714074991106964670372406829814170284587627565663277239486071944083983584298241876615377488659450454792367055695916382453824461492282975238800666480312762570909210185783918903655927513562198263552919161290946906738105461411005209832073251891868189864694023409562559997780879008820813517261827292552610973809303125248518967146966360793278890545449268209094520683787435933128430742451320714139516016984174693946064671646907953223197116851724433796094373706051398403892681534000540445833455454142358143867308093107595961671566508507953526031125510189920913088247736591141335955410794131419174531582364300956254030626707580536107966936588924512509047008567803179434950679102382988510583500831830869583435451068190166658701680527631891039938679563807750118047016232774922234249786666497567003736693961051121226040296282006941113885587892687463660011965863024648291055671110860506236260568111876954591609019435323473043087419623606463719445271946828016103993989298155665974209568414151689303301323094754296557093457938474436508863355142972229295766946108584670595677887786589918680725164818787992927171711351675499896407289596150399860534884851135345636275542075147120187274332098784857518014899720965015591508177195536868218145672625727877497575867621590739177696677087807848623481162527296095294318064664680893360518498872943660028368367559976229457582167808150675997835937554555722982583836532465216982253421462932730850168531456624702216439042042009493590889875768947825776403676089144038225323760160609248704942772723710276677106344460761844208067291122160261126818928197153227112290188609379777632249518857430590303482633791645525483357566167393652245760136709598420147358912534595351508189226588966752348642712753436500048326771729439851553350636529224874438894505306688884375008868264373244299106184477155239376821517690301826809096128337531272181018839541295397173385217548519677422085490264537886351505118603482505426174913686455355361321982341851167328164924158767040597724684447269819160618681653367291558722907145435291412065686095077798550178154082994253798338387369820433189743508959249703820746270080202455106261112832369201539210033723890948737950618153919254434018277719877586863810255831120382451091243034553579954600168022490161804125348536297868632540337405423141431694954855203472004642609228614434528227644366620884027124725292357362281737302893000804731856812722411901152194960186795505069175318188799110146313997276754639141089737237192571635558708653511412477133035004541786200525993740133322112707601731979908535119250267584121392149603070737440672981668872474353823333418845508388986873342575041408453701691982233145999251339577630877569246630876055582135929260264670969930999901749747219604838454233075796511489960911663635487283178853805960635899081374279058023527428016434756137763952365350094231133531477721171215868762495755152373002259763973045522438636722840453509017002954597612855973496284256891602287616572357755579985630499927039785971652679478276185449914750405763086131853475583823151369839858473588399567452318733503842445580730348961104397510329680567418351005370073672614155850400631472607256095746909148113917497827160835593436310429035656616149459656737856983755278455167536268098023338432086393206921907908708267081230994149484693915354223247275744730758619939793794600426642896142824757191046869614116148045672292621283480466124083604298818726151840492595831765078223384671762445680193864299121474510761994697162051600539818120178925987286360297988214085354153826367276414334408078970691172871811878147473176850507463967996527141666535683939352272628064819268264007165542298974670321846278149830582151200340131759197744847370603814079873317458199402551480205607664525665037458474259431435347745478218313712645375676714523773531674144091497750870751579951026458873714760929937917147741439841977746634215955056243901223529841039305040795465795547429384750245041023335631227075457521549408111024110263438579582225058586361743283792178889797973947671918515586814290719555619086262132154910776651275104005777170846665444221294797777363091358280157488963482738560949388680067840869542428615327696975013721278683284352124326076468677161128395665279516413272797955470347353536213471944922997822450174445809135776775722572452721919157148625825818609034438151362489231976324504673456755167856707018598401939775633044976249471789525681389679245273514227402487582937064218872483501345186386481954242785825867496664964622495755800900599225281254235572214570053381409863259860972685853435750413010786462038503139641215041559002175925904822597603925104770736317561616213741835334967559387763836961632312608597895874637526219067919637715103328039990675299287500202370185585898538891611211860410958997547113687442749399982751503866482295040996751143841531177703663873796611534796366542030338051740136302188805597442014751628328039284957779702027812400689414464473723771252764497076728553955212483199977040184351199149941317497404389736189087909327282517108602128743403552798963646010751570256743073285061810657692275493543699254388918631069819218991851149581696560773296598435311661818481886409916093287866116835268455592168946057160944178004651379424222216507534990714619533835802446652433490677684073084850505743630808847362914921240812399880312508027863050525041178820041220798484530341818986776610303473895751074571703006761292294624791247899736282816146203882487952695561868879533183123337333166892322678016372403984393678732516248334059628177308169174300096548903909253424138751491846252731664542300800810833922411758126303842422916747885224206167172713452559351940294743284223075905531758314813715695363080186347035195030229264797205598274991018019380832061655475659914004715974549076508259486058020753082141720455229301858904932391198832668514608962078953673876146217451201463306850847421667660941965159670054426433297184770507759609198733762230387958846548816705278404328901170506165747661902799739481218438723353906935231201352495557602931664088678342060584671785724921891663725006471154245845762323703812276204956567640577022272719297787062308729378987531829776151894458822180539185129700432795499198216428965715171759021702906766170654946746737335173791268252657959253589142784313158392673048726255948675870461749571598513447536255913001652419777720271052876053946460963770138705817499673358765077488811402040390839862462786539865951047649060687396506201026872299079049519120222585827879767983360845294937454935926223982024077136358892833898842999126281226987969246925277746395462644586467343423314163267027737931602814980750426414775411087653576989526466408303219062934847560573576168203431355428994875625250641555817331582595804251902130324216073300936526507190241516985966899967985443574815486475655812714602761135899380219477262278160797798543306914292585120763915476132105163585765679771526586942767629086776546947773072857637020290845541390737871426724385974118277715662374245323549797957135779576299622882007405863688787205193264328838424357014636066959798733339860225439726162854436265549813338410052609714959471161055814507074838547981523006101426815388430138944159403973359514637836744629003823801012863863868903086097235959297303159833584681125521520688239539660066919959335830661652091897378865447048754175831619478228556220860410115057090652048177777088404772106370459133557584061820684169433294756591419807294847694229566818419860566820008477908795360884435792502257705144361511924871974218120133931994660358145139232327524284368146951587238486268226569815392116931604076574174711955511873592912521453112721185736327833405593283400526979076725064766644743076439187427440775369248106688456716372152891359635465858255650388261309720183493402928381300396395247458055172229649822351083635023065233043243623014150531288491130614018931292378828445618985452837004358495443557864395311572006210646194584668829477907659482555431170988122891134700877417384861370542428336031860803603501400943259868220158019222732882939919207112755316164811935889960292364833863741086512873648761609934033467520458250691333753206692142643557930694807441938687806925774266879941150234071183671082728351030057431639573813412565027533189160341078531605912414694170785371950105539691648974687455247024999993780099155568838944220900552990401652243628841757965928246604756833338622883564625259392763631270805483405363487370525335805153778566654054049938358371696029169206617918830576864070472267644810164446479218561473409981633525598841367299812428574574068148861251880326890620320207330882157416011586314156175329041349713292471278744441684054720579207624381385385581917745117899446449420147213571956223161888346084744887145745646848256558601055788149853648399328612623061667329367165360530140116545820319255503922334986669152482072367525402283069633833892789405485376339469519992017687151881813190712932347871936321204451874330757606379649606394088865378301480439278484005849645251815252993075514347225791154126175827204989104734224653448611709355577730630196338338410608091913423683757461377693912982774100941808063139429972505656687280357833102581591214390599439574395287283981881575222489316645827370241374429299351437071201116181923971909068560973371721645222059853617567693076532366126718670674994022259839259314787216167550867683761938342416913252669792024270005316151761225251896249379177782914036920643999657089146919265730183502028784061661828236573160946149958253544118016283852603034418032819515439182897371515223344595860631997412087299851935741583647161542009180095563048624443457916227962502840707068533807619320334937929349719335557472913518759093484184224081477470603717121090187032326648037882158394134931508402628337247744476396506239832602300448216127573991427748610625837887903738490880691656475701256535779176934736350130170008866915795184704708243183345900041889068994523614592662005731116027569161439570702916026074074168326366681775860850515555884285715685615625750006572572891958408293827116703244926087928573934403144512216363884143369370795534070105830938522602382878121480946910487210580580029826177415393007409984342834655148578505841750877897143925142924124847325719711528183951681623305257074485187971830062314325776061645723553492040209631669447891828426238020762395285452277121130367198024689970046646106334876073055663675784120260913351297192293358959107212021846615531781763245500877901915961994982202676692016443393523040700910746775946539672472165147085349843258016072643202161710000854989038081864618424397263369914666605314380962723159707540788273552843745200029622103055021239940817097685208421557623358136259604556354459651426158739314520592519541430817433364357870924277790022989441891971823425992112203467325429663010705146110137264520766775707549860736297406640109897239249078738068161941193292829585214548985801324825546766284742780747848619372499769996529309507860239345337267980574393035626836676711495437717241630422367269343515902928245110975855933000558838573996644791764379182341033358488389429435494627851516574304716507115542311198556070795591362584313959249367319471418155173312555373625781721823891148443999975994976080717232990203258808585776359073256794649196198246615198281456777655670892830044984783791403612599596305723444781843626254856873928724897042546361898545893683801983056026756266553635789175334946692846789561475036333361964980705132107197380064904007606693161451936832458780172344234521392712544107974350938402423241656706202764962133202536966624303143786730205913411673235552967716535598423692912541588669597484662103897720471253822794485875544779004076436128488729005541716107168176145268740142498150915422032486762782267659459370779678005108722925695413987653305196520632394987987161652548169968357373796695498819523787175102954805010216178938669354074775428483739730736299725448412128512308359036068190719047215510988798712399551419145852828587993180887340634858067613421867976585559185033536090299849795133907728916716939854274894209377370729788677061743999039548528927340284968088416914657205274627724317538692230935991526734091488380786318329068882026228285725360569832698316595595212322926991258169908238135580789988738678820123948805971027865177445906495369885611776764715619605959088070706081613990192535337774045842030216104400963881997375070414425243545197351673464353188847341657968376333709945621887233980757710593621277512292028140977626540342744242492101214191029582665416933852644240030638838592419689063324317850194168073390174648626934424994160768461954391447513020666686661364256707078998017575330469419179942811001740179595019621378435679177717586680016056234922844072366190134060600743370132517638427872149046675885637811199269308966010207345885059735967480615432305316268532388649234193782148770960827871933253253384056946663761333396923683258350979912491824206365716892993988474210787387398613118507703688784351267699922227706789077677344941127675299048521559698559352006617349407555561600661895855589699785564146458348910523391505585728986788940064212567710157900792310652921348448461758300312238025692937274929369670140840527248328469005409527019849790741670913187797174834080733719049216281043033243622780283685286304208935506572358401902692609168719539386822279595602616854690579855752732860326111429862746883632360611113516862077255395976669317154654659385561675972292256393187841802953922147547386293630484433000117531592067551655276005121545019331397904256571448196463459815612157073672724332779714421819850321404628043816680643037465470687269718984086644435178601255894742960646293655050156029163385229489954216827789848251657241570310796366324705351108963963916421987388203819042846536513463288805176291883521359236842163297083911992548294992479730283023994930934998205296270400862170872715391243945468214114085873087684319471640574936057055414695643255676619645709537539112946012025250643470304201550070979836407311576003483618578011860608666174250187612210997078359810225286694406362051739805533469767080086616186270876254100536268488724666089262263031376124290728133901843738400368114243933722569254847041780562827858608386043639581060587067252370132716270526768350190053509093184398615536358369482782754656337199522270462123796597284214159334251125840154798995848156098348137957628137511080560607824498810288182631792747154805332745595706117289708987253918990381255443355342346385281416419988032959039456541852201186092945106013139245116767706524978233325299485081757019591423519801313898667067311679997418415916381180276525721361539974620104801126267656567837488337008216506587779187381869233962784618146302887156189116435565970113835868666257352063673972729480288905996455342216024177848607218145565817338651238495176110290692778739013717056993887654677550227491137301249398093146837660646531156847452332356775910362025355308836072377322635804996730998658495259193791360868064874950173127415880965396391858880135489537239353635262579630051059736213962321741999579251206826975625751279898369258232091537358633968936303813108177383372190329774311280755986597761170530704087400018539962738854856545703426065610706050914995618989041818807910182952037968044243525735072707031914374449011717909417971916885854217106757799492265153672456662892815437248146484711195466452582215953260811278897937331603323754235277003848338960342470348255976601430731501650735631390896729558849432492962533680831158390672115842118963197659825438858466809132135535995008010040483221128178256521450698261301487686297873700086329700072224887719502794421903150815801604809228620771258956069332332144450707362510627576625831438151716387728298333247659833855229593329166795601521327314569005606630627241513997217553543822042542511356873053619476630800166810794634884862944005325801600887668531288250250563880952634661953031289260110369232912324911744461572898968536078252371797757682960551660440078564454287879420947420414140064638730509589835781748398739326383064118138300091278916717060948056326450206392901370478050952501614916796666337972689486664825457847465613960359467671269085368432408366436183657463430508248765176156788457724879009192423447883840555621561248514827410232609372039998160866871027931834877222258158959562031823548633699359224547501134757959038090842429131734220410744285298629644979006526140929101401068681855635441790662656665784495444081438774437444411329819831561665061735124951825671238215901385560203891519287365582730211226942799784328492380577570017859863212471063112646776155350660787788128433305740452536077470261086978114983239856905298813306846078641829532965191945458083823748256088604372442941506855477650291442051020580406919199277732949708707287511716739426218513233367663206663229572770946984722339552359324644048358629176853778631478719387199402518324875491423788041580577867654240398973184009489545612802520338725476189467185939430260987736190397233148686911135469599284678692475686165893926369378596210677631355875031644013837077404656757013326180509086536245752985384708730828478187854362107022137644910244037373445549844068806796605252420043278981465079878144170179807618695318872247368794543934131439866358672628366037608425427749012557068552928471932770902574887106893109896602730365069257298505233305748103238193661604771185096838753415568525116109464595092930782725934602803421038176439363849718929226692779983845329737061640815868895926649895698971748846950190896250651089649695134219642291381354000568844494941023795386502651494360885842828601990236668873048399285973375024528578022139543099944630378645839925770084788524415669588425398388517042015317123179351137238420936393062728368912596808549152423183269307744468013872290113189399671118029052856580970173374480121150487538469644747679811642141311253121831511647633380000513754958878384256177580073041676667842417323668005421127830653769786221977234422589030464272065483540185337702041255924242255755506550179771252637626855949268036577890670001221121010366455185518199170204599436233222135611696053696160736307215498117477782179579886599463545983573506124242003248156368004061122839792043375738892066085212798241681642582604662547342066407319811066203997848302455294950055955857145313723708200311593220341783969704207293451863710916380972741824433337260078003461803592983545899870542383092490480472748817922092203180783676018456655753796025051606776189336757697311379558854552697942359565444357443011617889100617280783232368428433154600956537422881901683064778923375971185605917410970410418594396214970295959234252902345804635404979153111190477939164779349847911271725380191988627873077760529784402989716959464327062855140376421300807602675230891444964213434566197330057603925632370699646151071071434059238033923209956983726814214103069172124187649897721942297219341866306203894189272368403989743929003521956922162014956514021474812009944677416588928256223762285558766337272604202011631448025353353709673738142277408611543281788103074693342601513864927738197985167573194435213308002715623306338132135752066365283726575750997237147897523284765056331638718381405935309833184202114938595378161052726535234303008788792953156320649074033232777635620317940367037836951246161847774234228444987490333021899236469066627628066329736752742466551274414827320009974834955718533117685287162771369889332465420925398996711840922023230656417524645370881572531435803675671763071015148370296811506492185320087797034001210514937648098277540437873129134149655791964336023371316083560559230071881140171657193008052575263993064012690572624885559889517994797939024140511006930995358264238010609783253034359550188028447017085738443896417607192788376613800253866952133639145656932499131169589054929861248871655180442046264581420847050961823051743524466474237389656525045512295869904770926511063059658934208465312204912247448136635898262496280021830338556418996313010566044035121416955225568202317681556861818553078499396398131791690098069413013693166298152979252886113927996075528301560706728763590825152883781731462302673216000817481559049124337746211375572251398687564683518066663388835291741787028628722049358201393381212732612557123453028616236745796019596075245584715685650065943232739998698791967063110500647639045115293077655793767600709055050852728060146868444608226521213472424972392942005458942064438736601491075270367581318259570373031200439458905291118639453271426983932668460596553654340306842436025364071227421844876017087280940771151159888224234123391938130148386568685035448138006977885701090231178140763861047181383964075215803934579279045266677813151881152571634697701451067561663316055710282352470205730335916306308495249565418264042186354387259129192575520954800366209101214078036270301292213140045769440078216034385661520589582187442895082483329122833290681155938424021903849018267565698686374894344726377585071727577210262204138789196771555208816546181036170013729837055813997643365679218109902748145474193131451520773134652216558199448724773945193552563635608961327615033618522259184730927583490884096929430154253386920967810063444632326265273747912278454772152133372501612608291664522377335567805366247169149298058302138499350176560801823732795982638277937261368346938913607055200790453480040395501122484848197078520710885554785792010835396022641508889932191601395190887084015082544078767468250218773173013906984615459994987616987881943422059250835882347905104130646421775519407923882751516997483169662647686321463548879138825202544854023649788169644902462538754126170585900418645385168436373580005664161949474272537547026972785543829618987642368223244941072234398640187575429829715586726700144949758677585099308078276743207041305063300204574379386274655422711213000509177057704420252337723203060184338277983161815235228226712924868650685433857786908414184504903414489803079879418459400938871125785679283336939275186719359101299085761659551976084387495115172529701952974455782552876358328963886802393526305446747355204070837909407230676378009861725135121295790887687015599625325712288843966961662779756950105787457334845555244516455503828938096257012576777122221688275662434688888597189653534116047229615145556982965813119100157223998587452683283895694386096950958650742350460474601969832971220908457436392613505795396031839359190373088021137107081899937356514617045520543779292115112453091318885067115576342534789996896382180755346445521653394437179719877578780459866075190986953432516490307819143715830258572212024889023511124857185099989787964955844149222649080463721375219821845537322357994466488791937949662425660771664207391187274369406037329437085618094100855510319996926605431904256023463619314161517604133210752518125525122784689316763867344004074572091926704656165663436717256445450902628602555577838064995727387027044573020178433332144953547138374996102488248141479710972898433203320615921130300471944698437994039245083677691065965807197286216197626611491931815178506474604448137604525325768271775558253004494679953381920421149439500666378743647277359762872545483900440643556420047320532959604847457575791999607343357743229984454767719609153540934431873411911574455771265483174409139922974256787693395912270104505010769931675729532757428493337421580498282921541820227434353754881132028228636988812449896545130815839966707831576327090506100480313203213212322441318318694089261694030494215062155474773705778796245075872850821397683564091569945161618071472531430530757475006031208883770475190560491257200410993276983105324965749205463449362682674858114377341673244286299709895548434828356441668913400894706951829392897873966645539460606821095654968270974011793070477371512592298157934266190391185376934302333612591794032917584686487848309524478753586782792101743146020771018818169097165609386592827335684905912263034984455492896623828663753561350018821200998336695020236676868986937141699110935446258790921034750259359861610225963465694168022971975080208475097033206942287461202799655882600144078444295151209882447429211712453386991821003808998788047990224779119115632240993746614929871293392288696196045196425975004911580691416151872610967021597831001537943048885979761111791552220519026890834621106841799104344687493210843440282042812663343535832641103684802151005827077803688718516322854333652144143044503435054024703538019068504542429588411490279812941272853461303190855809392512187180476123773338742600206014563236070680780411224945361885238125587786179073035528229795422851776323452664968933902842738116737329066629253667833791594449387971119624226963918341219486068341428260905935667290210076291736318260209862147082702191324516641031259331927967301373337483334721031301227786550048164143702442257392561497665299318265245022211806451010579814114092239070577182055817238080606402266339979163566063060977951261952644462193306947900252679652146078525346241078147389860282852266797235814015786115453583666724845163953608861268917973913218423202269703517342344974577557317529167995014328326545124229921386979211691508696965311054061129480534210909955832652861765285330315221615078128548580031328795067514510386784439258691152718247034911805148879462777909201147814077171299631333841024996142025494835033431985625334388860842503167993551867826018826572109791962037085232927218190346942262897750195119590468727222233191318543098862579740977322133578525122921908847797487757336826221350934034993737635252838054781104219787026914793022370932711185838138685684612269925738821912577630924293397042933982793448824896440780204932992681889794229290874208104670554278724634216413905581722534734692995591227635648826825171680304685129643668319453065146761887938389093798027830156879704865384430004944646215710904764590688718992507691841400612688482817800078654193579061466957704711853890003712761443345973805431459944998861470386069195203224233693730262089769772848401332283424654523677191409911890781309328193146126015391795961000487771707804357273054809119678087573947042582497450891524816428321852209878671366983416478329387628220128475824970225791042675186301411528312940252216869830230033934048577868719465734809208447590232635959188153443100989452141709889370749950162907956815707360922743054665831920833545977872314315198308417394768997286788053020516231754130626016362495269396022523065801440435006206488500686981206209514009476519046525577435929156814506503505232491981722326404760929780037689286670866843623665854445763044326734490087972082821688401479515435393791773940861357673717760958200253139167527977733947208935807701078904199740092999999292372549921706521424466819416414247358460038909995530136114201691935902847079202961123251229109774751064760086438501238996048925586836855138633701348907273771120803486358775154569050228286313430642831757041572208980526493828313752630135955288978550527832262874531386770717657652042344245128161364408495698905005147437999036737009571034837286107559454594403524455189947881887261306556237569069200163590594332435449188092594970006914349654276039338168834220850418383377530988502431198189144490579049931992510125112712774821408190245500089196184126445307587053934358750157442957758218789942127642119074064103134042884424008885173195362658444294977042846525237557089163684672271507914947256361345482942369436441180794297438100547057362396944716738233371837672985705296486844720167827263684640628374828418587039569517977053125201943907379147183426846592096672969251745557613742951112117129788061880995304843856515846175711054192296400081167018891776232788749490806648769897365746166846531316433504753803034935675600935299577752136652527373730335181756677360962235970427827067414752593441361476525501071691740378217772338188072493427125683007269349907318620961353674943879883451321720094470664220892259786606592101563363174425189361069517801780866320742308822089849972325998985436848176575789426346537634784807957399620257585155217741191040751921267563269603246647700651015290901545120268688003788747026690180653112275095768082837787380321102021912092988986949424801444139182010282947007053412519730066384024760151468230467199842687824109981575622852408922815866916158792706286726029040393060035221802511377007222657095451810679133089638590626473256038964170187343510215409549078907182813298267126682617061884333928246381098084662796237939317478579315536699042983255740375381009536973344735949733401688601144827875360451293710457556146470121781643944722126930347976984754214220323871904992616744473436609518013689221188955065391209792562196813235800850504509154219115826659733859549025191522381470308156799870515830404915706018417881343595296498136971011204579468080869592774935503792546010821075453724865544004787627891843875448079025013095858244445162182664569454256777200759015133870449517897285187532213833253792705856535249938949475467384636292038334092696314199937246614958039057401025435649740049892413190185823583613620365979106411233535939355848040334727498911890973337425743179465890750896621225709516085517391474789725471645124397939991870406980033513860904784787128064805709744193075585900644275846509334857175250241223192753616218269861503936324496636669643503896904768114760593566259816037495067718080762705370693472516551921717763996004613492851638970675402948316345336196869381717063665394102912373545919160953409590340872474669307026178265004629827190535921979261782421301891642464057877997109644353266990455985689455471350655131109237770677761109054152103949796955341440997963607985067404197044477018514566730559341774766722776676538680157346839744194614338214648062261993762141276040098500430060141836244515982564346146207803283075645819784530255476060280482725487351315567263369524482113734571237236856826647804638029510342314379724505461076202551322240304967478083959643308269602498870976556192298505439896262395069082820550806079938702913506873485432321554999007089035088011741972815316683110476947720760677881105864108438953008507647832072646933557300330451903599481189937880131100598391749172741150681366744582268205431576143358279968829434238786081481270233619505646491748294323028314442569266986464443042726818407368760536023257397048393661667251274864967687508594195937096185181863544456424947487190747372401193497579674405108967347723976532240392228898829289808291478086602474839748098293779222075907309125360717523844580959389475639435821070370628340969304977133156601913419217940565599680967009469486149677430778157956894748703283887351726329884443736771837087753478383224971308654065497272623836360375866926634140456727080278146252971263877504600527688889429856968276069099230709387404920388542837011788554672418866714808975135924462720821387425368467165792663978157013450574936090515299717924483230435681487081271492714357768911347717776450517851655135274055073322050909813023608753801738842463779531058478950465296434197195664230912675455066391829904592728778154345019618008967377255268440429933777760891228028807510452380761161126485655462654703394576764133695867151787699790501844843428717144580459017517880249772757604268031813716895437911171440045505515091251002250782221501878262781832960439199486118071917717945549063344164630187598758124104527831025810228102092751672455342400928193474723664978125259434955230677956854338742020109091244543837483646142464222933406403299230570046527581892010172605025414864635100038105052483331279056817123509771752483056122177384122232491987496372733235228379239406339915138300508524681355986737972002486602158953463022800278332627443190212317551792235427647216274255123856353698320999649053864550795749258645260223804156148005835539053900923980481616043948152214665252806893923542894798395082931014956386941914466854490775049288580740207608551660290326589696512679265512083760933183820738831634305454076433849181598257325545635287429953621237194282088994375509518629895962099100899419746598213568437316509338521789364586097069051171960213145790625893328733719225540804969890546622174968565807016943650269418714783863216233366414925910662236653579328017111153741538975041895686521747134121901117436163440306621757391903041834079170707865095039020913274506070499683328695111906606806184139368116982036994511056467289333689077486109650553423794789040119520235033653697599734590202847476448453909146820950505371001150030627415590664958692827513160202593875339624486952879721112438219144829968401353082396812187246507283284005272545193344925410011693644488461182312771954074130909792060266950051203120289100603470432444042019459828893211606151498406433198427673579449544010988082924366114995980984502121063531759649520699751383911127697887522034375072591414543038716763316144676818370602970015344942268843916530934282406483918004537446523950611124831420925585968898151219156024109787278258598155604864519058043957608831586320717881791154856417803321216780099864030375005005754472437512197476721926777937860645644640867786294653643903407552965329001781739385593028105232900231039031424891876487032127255360158891216714882881638215141750464306719331253809468527209244356702659732855474649446907623489053121469912148623131006652223198280649274634926637442625403279216988345573909073627494934889908686155148484866237752295460299392162831466361905589514358771924080025873657588946552219357550078406745468783127496791845658406176365565298336324811141823408597935643902233287337914553110857762074791565243344312125223092590757095338022910494532918884590475624026573478356029555773610192629936732320693446708691845982294537701544213133097455633159181399127194109355734266006275896949031683575356062223395668756551066525214811669129663221767125129507118256298824450802606292864323581546613576000904247611231491806925773631000508512978695153676944334025733809872793970560052859576511856756693709459415552119322530145094989349685665357774844643092433561622801957775529784865285979464006042731524534392506298014190956628242269467766569906704840687661072700668511589202760220336533831818437517404281174819022446428439206676753454606362282163135252703130788591240208478124923728334442257471346751589092502887659405828994607664610378289222217575543374196365959513552252805069500255423377463380331601335271569439443857341816693064345202269434681657480889832859032924011391300676481615863670002263942360223962648449838118337671134670851454548917817991338086226599858473792982794642609154991287332561648818927291087978534714377159628319667485268248123408773231765236675371598263007651511483151534807975364870875398842095675412700726748805400990246099834149514276858828166456501616144341782871912148077383585896352916275681817786522921288528547050219823441722477299121005221760252054547151062241530570110668275153747533824927793243668049283221586029375144134921927345696498232479991531996367226694892977034296158184954977762818583659849380391474362562692232369909950025570641357038361363040565337703491993077382872739194548712030873589754972335769356788294995706731058352315033295414060025108507648230875459208310570380300347023992011951082229186051951441442313886644544237394053509935999784232153013233249534314633161682172423341920539994085163379757849159822301624206820887353583818380767770949454289977135383389299760048252405079897104974058519935835416985331380761406145534900836675355851750183930445159076374358177735649971096787503393814963634927530138985740039746033244912746788154037147326981748745037817522049521877710639409585069931572609266019036703798063133785029942228204766933637224909324544187451682049184247940563977531324964278146545269794762508833942727237397176878253195043762464225664276579325296693991021200551198971058423495778047274748972677173709831900487498634652563398345004792805945601807564642520194094426704106110858068348590411998382763811572436400651163077020654877385983039150739507535081943816085134330342072023152822029842423160111066984935347999193027051761215303375627893454282262545292119235426680113991772803228973730048030768631358915531390501159583029891453137033388951984057907536240383753812265101970694431592643716243123766762698357696271996768008557455904395444102511027564650509209898120545862570447427148238014478962732627807946078308041503114320203881400663474332625865751037874626824949412103986265352621519171259334955098480480673976046689819480211778262886506083159115756971110068654384290567003422727566419539843147752761341329961468223851817888869071112788418930746797751588485835460028703649397436350730769966121369239662050965409237745487533656080194104053197481939776491089544292368137644061053611798537907438872738206073936270455444683707869151307359289020552138365858679813248970521659202293394149672058878847548403877178593988672170659537553086727015189773080438328813707117416753654834984493043565229474141542183514979161535728920707830786059276354039576782963281022192889859907457752337038929782969703034044194465753996164747810592022049094367003695308444599592012126763345122638140661429700816028725980710503676199696678837059849860857647545118171540805422101360243092518787506079492540835181923186601361374932790062585114595948305046224332745063978261440770273065040090440735263939510830963714733633488317224671602233613286882365031216291090388739182534008335626149263383520209255933744244608654253993215231000854578821950123307530587895671955242446610237135131112854830298964045599368078547578612901330519702327559722161799214275304157536729776529615958584121510471738224384167164023098477219635146560812483977078395852205841036559763328591587117571489841706162129769894031200746492248063041618100744329084959267324957676686841817981409068838505997669312331291385263214802749275429514110736662810702090542505429746836703243746333782919380731195664825047297569837474548156938253009234814755246120125831406372673153101035107170878167559018380805644027515887803506821366500299681806007678603778892413304102851300213839104912369655498953949599591115000535989277625397993189117998428853694489947652214380111372937742607449535148221227101718209146061988475516426246013100597641106255714702088016124427689925999778223406907549803792639930219825050616164764144107898100900946354240511497405286069353904673253139105553787048049410295119199508852440882421572854784925666382067122758387428696871922357705115403677033595997222712710798772006680837268216336401541247819347493720598951380471098355116321702583077749115055166275209385078832299648731531496285127494574468522685898791989811640705273753680030367856709111871025902292450674378026998996930108955591420169954707913734596564129912050623507444264244465948043027452540963820203813326462362636128922468142184301496612258334500421349552186626536884711574724976265789590614865749930822061575327124832764647443854385178197576024614007402228158836907214132765731354172806036734878514179072938720701505803475273280637405435715018327677997416242578013657100117896083289069250347715727078796884798454441213048037413563983514306635720111969933133057826824230737099459098299390153015547240516662625994261047218370455238211495301928501366469539953327176176409597677689501726026377456618344943273879314034858380107170247780985310435720046308546767887894604164103937635568223509945980882444350905404632449078689702356104549453455200408387052070833616686280627157302325934464529266497532625419593806431771808456686349049930210166168230092701317181673860322222768176233128067631277638223026983718127261085438898220543226271068130871338251952544360720473308695086590852510869733443447503520073272991160773391702526119665600205246263014950111850996870334744684333189961992260827550561137883132940103800189781785921984538373447983150346112386183398106527851095804643965708381502750820326165186859937019366205296118184076523268387891292876640723730462205977862784962605166291954115821046433270837884195965820269657700471614095287193092942459205109486863434523230149803008958147985594338711375265184428671603578427625001527705381547151700024568314933672760358158295821805253956895100771334924582695988275038107442401248064748912222415642952434889535722596033393514064873698162707836565600326508112723897656117288541629991146862084163535530308880464891150179651124216918981854707089726593757315868439292546238015319342998598634051355238776172216435888922842915787557480984673506052477508724076108271407995338290754249643987865324666452779692604542405417651229317321085732367405492409264146858147587471324429505267394356211912136692495272942491773959142198753833745090462203759635300386642120632537680894564627534867374227732699410681723997168597288316175838725791746559821006337489113154112922256965389497622258025974845400010458814297270681660419792403563165684058106393957820648474351764759321751266534049395735566355942291480496087474999647011429312566885909308790223441215635975432099215958364469251689333835079252739331229059696752611750449126671803786690249282521766220003826439774950548496098783110022072490395245507517158618967043124925739282200254132406120925635842588248145070187850494484135995866405884624087276691640747816096255748041412992049741241226493755770094728746065616621776675028772803967692953190156472642499352088748979837862253760350215864593168385801083902391085586728967590981567608925744879361248336091070299962792194820748955523072337214760537006421166658659743252700157465336666229985971888519187986379444880721233047825956059326433083132414715036745279892819533548655143392635955028442409783223793062070360104605706011131481990600373128522342591445660141356452943924292750057019800133137817711030114353989999327736774721296569251422181239906142416705573452192067357756349502942525361986572399542569837854070833990593140898325411264739791728778911834915074609035114330467593836578927154833905721552285954268637687990824665218668959031909661832049593394366880533233550212555777452638633688331929169277699776028558236694410898928297026358536918741408978617636374774364882707351291791002029384888716187185463733623359457567664638678719795231264268526027736290106458209341364895125939906178881965900598919909688686327045482408410621307755633971635357756786529014485974491713063640101019037408165256896644472133322161111672576849661357641557628314695202658855489608861562725046266842687975690468753974676408586502469357193807777238180827636503116631843972112328431461224707030014234638303596060903232645936680979249511439459490556313820239408161747415876407273904092755599674525259079887926265873213850944485927992579726849158822152069110369164855141077512742491533153473248233024729902547854740505916886462920525997297136922194799407165952780466886794896250456842586887525931126070126342440731452094444698983463732509230329708742732798008830480361985682463368587754543373148845806923192183192210957720842467169732338179455171483443722983761515335690474266991363464012688797220918713033510700994208972298771459918557363201666368449769940127674112045436378879682860833228330059184476272819663442869399753780455885476479457505582842152848290620296642818676318277278945287037389531016456823942770004840557071648951351576519989179835153508666072743668800408919869509021923296366230032998465090481322335719534651223975100870587488340356978613216106361800150750822499255193705069851438636371371569122833098899827470977174588534813973510069414370664458936467174274406198368564906973069125835140777552758857507274463629883722385475741844294864830760273318152103775049370697697256332357500943119442165460404538203484854435391353095988428794587897460148146526637004020167041060428714738356541559471938367622540221078476854731078912892403205773202523262672849817583891953472878176790661112475653728206064969453320804559426917255454492355897612942288713227066563356742333157044666067732640490160919716630360742488456809729032442491467415160010834756478811164051338912176691789185313444141668594046419236223294691496025553352232188443314476710530054977841696006131755202637331220154864625551268245427093227193559762837055667486510092688802071957282319203546269163440673498971447745456934917187899248946420379962724754480003042264787906590471240249313963355656632951233014781412607648702019780892512146060101056271509661965837421236997127867954940957779252498257387475738378438635007005524213171865985902842147960232334513360963608641356032875720810230186483377282140730962520957803018211172076757250406732338482731897824994319302311375060767751263677181838136639976196458282902925448423786274862154159824159966374150439344794637620116828287262476527838710893074266395017366273863496012396660613494433527599606151857920642063146715643520999282002570153877422245415490934134859439563820599625243032908084371512710938283619329172050546033580822575172695651737356772862756502056074921415001441069600216146704794847644002877951382208177598212693780191367492801212661740107101949506237099098464716647982848497744016357580274799485450094629236050735639600373041616437359729552314585917759511963670825034390834930225351627514591336935155144251491150837728076298359699035648622189767420087137706842006688416774188573461334890608623953260721624752882473552922238648601425781283000358207644884020475782500334647360117304678736598244084644634993945610690509965900893702447723125207512928752057332090572546902639208216041788061894294160743383569194040167578422440255091233163712293045702249197315617514264880174926811283913604545983306334933598525476175419356035631134843769838940970475359124077686035921347905957110853944696124741082419587130547711860845980123571344009261010572518591388497702799745286606101661888943405755742028748028117340980435708765231408620715264901803337113995207065638275785894039344741376000460623414451136826978901215258985339257529050605420525869380218645229682584593474707676379789720153546566842569650137595377695918513705374471112161678483180331447805318630633061162848331690368263984450611628300034709130241348398975073221567296276717288993816587750120298545048165378584924966738966206365430481175612531788462474134679549560469802583664998925976222755937323967826117327594668459193959163869176164145338945639148840110101316415392564691834746684170324893929727542367082369250956734302101788872132665106624172310230032497881047599454585672476278620532388116006934968150567581203186887929893876888644611908653085613083868552643126072385106921264841787065971627950403261433550862943842194173613237876674028247803185988174882207486207033048036298101164918950141635894548438445434845247775480832180249421426803925903046066503177592972079679345889093418358122248739395368928112633383301996844944524147127430462040706900628964525501974447661120343798084520855186042276045935702236364410171815359706697610244246197641704738830057854169649304793500379357999928163833343113188263617131229238871837502293792832205625527811507638418971451942755362352722591447715124359803861589708146706592359124403810871376913727300347313532021883718600477245769592047994221720376286635956898912468288874322317499565690122346336341370069963063410016099816407256515253615634088272131417940861151043160323953552472290812878612933836499167473314157862009004143001620889112460157959578970980543191557759616592150272958498369193059341008388386377637500657800363436577391358346914494619536385744805981023460470263123767187274900990977267757636091591868522816760257940640271297012969699394809141314148724624564105718848227015745929475543136637596219442858988580075779292559734518415576067575001896871902733304635444618849884781179930194112132911038872072693136060132809168255839625065703433473902067209758600162876037441866980167297571839069639621785265178909067528869273251906256407195144803972256194542179351135037757290869241255908777519292622833114270954942509751556096077253398208199664952460556536651836520718647112937715584858883366595520401555573487660445724524814356183018455348443405953261678684498957133014962861043442212392119438656738526347761934958448947219182483820330155965428040543754510157757504593595612236146220056012383636166115602500558526655414509061359131327688797922718176793374395142611173076157931298167023297616143715563634559541888185253065676419190418439372578187931016922822502472662506302053174517289860834427649046385613055364614172595356341003032689210885340423130108819878295294971900258235134338596599996308268259338937217330528191876717809107753929787590402101668600632765522218715608487355232689682834162075941203255128376912861835802579921855916721250627473837759451158056376787558596477364448167175378729237757570639601847704426512895414991658180729949482602297118328699813339999837245491089574685296243083172132352761577638468558142374556291706446137951240317532122546350676264757394933065495313869053912788741919967049609251714933587929483182011441949937668849030475286082766654358944596144184929538560205406513460344160778136971701420639698798138768244388768446239456583301586858386433389078418781081880555095459196973646461805920427750368134659980534128542628156571269057128404114287774323552008329643509936809961318802263859157645413773132845211589955257533306170956008958926005408179264244645986532111570227754690561478569140408957208987718181167478411079031641881709676630310380148601671376329888414204731140268877619711699300637697642094542835819656999968630388092716375149738322730757428181858132346936139582145969204300311671703494424177991336899883181233419971316076896174296141701732277409283158347457814702638725794419561040391616138773511705344637915748035792699311246426479441767462405128602969347413305741906736085982004647992377957606350952191232508308316627512832430312788840698161960345049450747216069913457835336927966421342052710733592259856374624197474468855161432738115824587089879527206372599929715663001723434907054019041282989061126517324323054150418901302493578346860223536335334141634128803797688023355420209598435889287855117854972082129993210482303250774453642465395886616450831365651132638217291205124080400666094224743510422511881329403648395024291912453889745360928659689040012727595849607734746840918511990855457211239133272848706151055635596811698719250319638950837762686021564483545321939046873100369762500147354009608887738077673963408795470879515215998503388139780522713626322160903859906418785067778155619186727205036637345256441464906669142510309038837440248608639597659981035013143527413650981801337922753669264170887300250103565379378513046751771641185263264575953793585935716904612596691748709131375658668962434920816119926224107751941856565547851511403356791342195066526206310844406206910329647401635675127761568194859013635959171639041982014476362069514339144548108061915055042007436483813019174107087010392259130670290776575313584015634941444654333648631511806111731421980363753021284181711670379817468298263819639492278356248200641839636701236164103442759450170865321856191185771539696054695076497555161030034943081680784773382446629750217710262147782819887240480935789698997424086034747145530795999942293551389672609389057875160053960867308761680832611293951594188517567378220644098554716028605945227891335027256044020586418178579409810247249204987716369629008594880669531262522563454006393487351192531047603800954073922274003869478181193861813657728446398933385651474213440734193960842293313212942386653725871275892889117384342296411373224414234095271180647168478003560043924087986872668384296651966351299103269189916862261462963743050274808393216191414283111825343350774615102731361843677773369398946458807873532351550021825788627597555038053160411259772939074465880373296873126112377421608209632140501410720082308312991902129644211906463659303968191709298635759331240511457397580129754567445077273868270182741922801785477505928523690799845769175129575886380344606333836590387172274909689934013133906751110349558221139800061973412615652082088545007199656062643193236227339721488553344761717575320323408473647498033809467938403553185629033431428160759907341267899276986282401470594321641248710804325080902803638696250543167940111947947053663735297997976695014103579945286602974860396122009514793685785934962114723615736872736415823127068644786302629822906629047027779690656234333106308789854175595374898010251849153694566262395428615930530327241374646644524529730916377299452160221668457966802371032455963490496035011192303586278189654813982463370581618650779384322706564441182505971566806907142705187040758801956648252542842454299884857157414356689703234357789971393174097532251639851809557446577125175292371945064953083692832450037977552680940811466527186388224686758003128128671081726353373508080113894431749534323983368389086286979377325334763695554436908942218156124712791127047317583010046399149907253236040764410988776702912364053672164947839767217463125704768758167492400729590949721122099409388914204836620287076483256370958477098160525289964565388689681401111293184061460118769132299572967333039570000492267503262843561486632601768190151877187022782858875501147534745266519403107274822133715579164502753794065172189235946248909296429124214642491362514443636089708405017548500031217406645842176239856932636940738868844830763665067270538688226084446868736461956806920122139995480355298793396560645159057664185793639582260144353136387693800161291856906833788249038574780523325599277781944405202784983543033890128516195671485224641564625821701392174366307360376266670665327126017750843865481019322234439947213073405163277199334007032111811428529576497705995863897185498408008590305029274757700605618873981307877245746755828843872984082269710893337553192649127761978911526108933955363798603004080752794279106667887456148586530976122026152119837111172586977076395385212905469401210059103912175304574891455782808538545609121349420266070081231262688605824489470597227610497232549656246450264001507622112922773311401694258176243239143386936753690280699855570408177805360481720411811355253804720056662798377770338441296286442565436243498679374223566525653741022605084044100256608816432264946856010975494482963238739823005548972129267749085187139551256296164179056695610566869922278778603440200385815561875199856275064057716915635963468950606535815192397129720891493534340372997345109657961395927489936352672445712846451309095902527149733910374938644291964676177297070004458388838634637959470436707493138497082340307727468359852419205673817458060304002066992861250334926346634627632475759530212346716524797918095381718891518477192255987103468467251036939620196030266153521111047015166335077354201854030145445288994895422533260595764037820117026416708294841851053725480785431607510340881862849432597659211696707130212450464499797643020023100445009885869904598759443994977664739040997129159917745331249176531408810595544679171525390840987634277664102200533081688004831773355142240843416512038919017988780535971060592865735100489263980604061067246132032229092436302336629418730223038684520858056784501800942778445144926735266075298546505599695342165261913852100355405858498789826732740047554773025340267530004171902055660212994943407527240522794555254259112801593802169078216788252119175547852537474654317029070709492575549251491066626133662919543090997472265058035746115197931098915082548468275715226826353420231304875872806896127168286520765564798045296000820494246172379488799439503361589604950412277376732364356140454708289940508237757626448123494555952800342118876988776010659297867933043143833586195376308808682689061989988516332539184864469842056955627881822158896688174201774561846242055014224308044636679708559163179170437564693334062245848723295179451000032584068907851922952746605641644078314712393228257886944732322969736205694746378543696721443243604293534005573624504876038770018010279042679545833477950054610432935580225370133478885307417845603581090496856854352057470064560669778321307515054963743301247605532715478312442549586459123879016469098419535107850013637587366314274914543965458057425690959470623295998352677940434196377367613654694972065750118101278701794410836532150050733375528693706235906937120744048072257510681142124700183197498263705140048128069430611908555677785035453546687805799120239990495095552270961591140327921392334085367745652871992399263491341263748883227127319065902836884227967780691083089274443451552734203129450822814010169297500064404663211695645536863302659039852687435688835414172483284633718046040253621914598221060040478624891252474169934323903533400513587545552711121510242810625731071871659457390854951955935498514788474130763984093611254652301702562624837980326718184599317224954597800707621183891863040294990181767583585601352898635912197476711941703785733074078502513497037404169310706578797830367944950779477207421965780959049731013361570181198962563081019369446270390104468475718588559052495575956108216265361395559649306067916764893418072100225322864218550574580261438567999446862098711344773636855748530498977781132425065535258382659877177694723951965260098345364145394039503439197166846069923794869670830451595017885768603788122518098932724534923439899101785492145594659027054616811060335362936610466895609654157447471300997132106973057064068508617639439831714625902737005716770773713358551766385287203640733807865678651487087679204175398539514004882880085528899682801938048766661690957524641240313844727620476026605027663988100171505472523268286732506551779464558501859464036190847218681235170363044627538166187162190662940300719982275167975991815488220667931122354611036681888256974347108189771617498313625695852187862470281097204463125453675338904508946577556712169728742940553124153114804978154664303591705662440449531495885591250131312577952783988639205463944387636741211289304319417918697156988682199889617064712382083187777012199906323352571918277002429885453438644934909220836888775751014632181019071068378140760018334846484420725526765103463268649854689115323800398450243805198145867257666564105118128591976402644939021738583383524058630282408476766569125221020651928095590771263316398258948687441829565049512506081856460463218657434048432199866226314971021282257271534315900878561541190948748473700165793075113199841178862224073289447786981453448489709023575974510838676420669209130927287704736597897050117957561041436707293759297369937317864356489790149255884755338551056059993877665329273471802580051374250614803850327208747314167407205115860314368665272369590344537069491347738977723026412292358240749983857171357133766331364578625532435559027153767386600878968800758273626609163922927536101885028639289314494116393733347748001787455822617658144363928256564322482284843353698446505749252874040268690472117298193175421610707088038687904184153977917788467216738506188635124504149455854384568264281338926300853754702417239293445361384834792390113433747593568869652486950667374253710515485051018320909383519893336359304927178736439371245319364665228571956637486496579563605051228095657699416657717386009747818547164156109519456875582728277240354953249905703036998359802992360992133760325272161501988680110502281442099643782348487943296557277882524639817942386709315333111171457059860729776381281688787421110665821731086733161263652959496098380232662737402042526830103999907350263761756633736302071258592454859751524874955500280733130446968097247184644697962430426056858486304954500198088263885740522042441386792648919081746133894441757107999723761040532184888404085069347453888587922425184278110658853518910012567427162269587955442614627264332074542228601744682776755164299924360784206484639690040444397579806300141954121586342662586747069048902421294505541454817661802302544816192938054711316241515490226895346936274835766460779779002479548800292592863406407201994718282300255835497577185570749240414623522410117088597057863124832270760927851946770010508148526059091481702911119851462305094860531850475653521394137589281476645356824336249883510741281846174765855132230401497519822545249371099678264561863549022973198936604773982513092775644393096631635727197879281672135529592109880056356196726186523735792055026148770036079364655818178335596183369376600341781125122809450922513701291969043416801465126839323984068822288964640895439705325576209856563050306376880099350460265622118274272624260544684475466887445324501917243822767376209993767127874888234268046268052730416673241720948531976338440234185586250411914631433349338119135883561107400423146174597960816275135279619559789382283857859220246352625697832795484822745758895211782864581241064067301094942523626506906881698509042210877683936090090084204242451650821256565758199395306204759936603612188783619122189516509064540755788543902908340773081449394657845914599831037481327776207238946690320029474177608943034134385692808097760378379541828658131761855909465631302998176216607864367507399270567061562822559167452247463421802403731356173909738041799456336918505659454527255398648158751953181184821997825389148676967255071687011731164334251125549059509309140487841996072324265792156156822634389247511569294410007074409279502848433434713624979135727154996249914619489226932919968616883364741006142720984202438952227134970281475035358179532627357848262300431458361001364567550303830638120522958065503633272442963958294583302482089670408449328044017430825606385578586343297890259279997742718542385498831519825240930253262172721372509571191767034093621506184275726563172734355562725039836907355189002019708654608972417651820211345420039857964564348505201605810112118906367140354532726128769062979902293273947929253707009237346313187845656971620893378558894294950694611042347604785832249166633791254016074949824025889055529966742247161442166893477075450827733420203073419334308396834198088950965574345722811500169013295353787611531439724506247730201056891861901992425700747849787430792241829009476695098421269076893366963052170340435497238697753514310503585214277339245826991949578107802014196163032256030615522167285615177491822838005463951613853259171601937094681642685476633358013671330286056760504135204385465455823609929930567076829962214748625903878697139016152673318586577172796781101107514302279437024860202027285711786830078860256141989246107210348052548229047323990075771423032643170846877207657173464483195570380735760709740213118244246642696171914273306787770678026082156971483900848936967685336461582748521638937444745925253855308476576793075872621987340323677721443709143150228423844978977821681344221927889457867093635275474426974310744422788175799191216976756802340762991275093181066262747731745121237487237136994248962714863727699852166430654179731100902891040207244787802569291241620329537812304222932342720324661551399427335484915730387086911609359654919476396111524810373134213890923068541950711416790214610812905395989337513746107660045186648972851867255865189762292666916573689106998567193682736277410677340677316984899866625758695557804613107501085480860934500387072480928788410386891603788481825777706930249968166244315261204722212273678634004411427440997964706357508201893361517564676320513396519947273466456237797874109904681823590665906347340549713883998255389604448026394143100061185717439164444507122689500797545440331481198868375753332642524279514989410868419477496497789686937561668212157211036497420421870444355405530104433666950354487273085199982213641252674594935787624786966510414964006255152000935462509023277066673120013453037971796411290579431230723864539802655681521690972624833227884861818271454395809378165260214293845856289277599593489942754094695861616994869095176229875088202526060171422400348057611170958986958333784196062617511438403719119925460927242113478016935422608971225794171887713445371912290658706023106130002704011504109276142910775626545092099038152739084918801469682838407017721606196353279642099376058221385164737072840029521073314824104716704379853030367042584800227033807808871081636516468449311723988769111200128970847442755016007839085536227936917059549698728856661993929532105837556963782604877712143216921059056975554635177315153721380646018327368201810361949392088324317796248831578399599944651308966348979448804335301823371021508126327390637363951631206636362834708695748956156133469670746109299056270748444335664067962669052652209268856589801067926223211548641677529627116879075301663460634660981155905200836446835657704083687310210569764563164308511965932475988477460140786965554336360444609144020042972242361304298036793150211153630753814539928606515890591207640154444196857833259624301702035186503464742168870371463338361432239938109890823660549288307021744399573306203858282438470192574619987005480830570760374598589873426650676247700721170885896284499407915963807390565698111055265493396108309859095843422113790676475410003553706876209104586700109585844950426200201292232876151210690586075609935966475103324556720236886232440576459093818922917934911807366087389883282944498305179429937753192394932305054332721595405929114122895945936628481047220063024210569902112896940496006335700627841171531310582637994649780093086841717073334636450886623072046976354679233201788446800323916593878000501817160248097668895119009495009343584192330863590131808666713800675330553851714852419356641650940753667332095892328669244928436272160455223608169277649713872844020380095695804790751358723097052970483730732368250011138290062470458083450910292336648915586479977196960735501065756125128426309658222557287295542116265203426060501538985294075425474560355459568511123646244315325261697980802582856053065904940375166596558977081413477224721771663176199766248767977842844293107859083974007083726500659338718467033023403894819666256120571483396505142304315231163471036387033099040842020016001959366565694648716938891344375996862684102557667210389039520808003491063127302802604736163623862601193651227122440708570168117643869400857028047138412871914087013198848224920145416657370035575512537837343562026729475017141441582661847603450386622010271310123566852811272983697386605832009146860992019764273979508412303471467391475071438817389176329823119531237302823987177446443207445839115397163284122166119195605928970986787493852326870635058542896757552909880667601138750701397576627002613099769355417702421274144472598369174792779480254310857948835978911658085641516293016102228678049983995226983826886079255358624791402650647743272185514121802913657741321451292154019139229662390760887412974556217555148054058442348914372436018185279825008968608826335798050659282423863314621204191012266145692221362216665573926824590861207052901771641266718952907792133462677619248015412169238543279310831177260311385158881171088613171364685707005845197472350480666820363223389105863572837457480143373252674415847939907179249312866824267986836031547323509455335616114361296341131182447841266943394291580958725276246277052527059566590025674958015814911725202060534410628065643414864742171690413108028191548394164799719390652520771417994636669922264084888786763209551445263534298750416272826087941421364765561512809254777290590179898730948001813749720917587139846247363827674934205864488116305867097096018925159545510527144467874594997003849261063949872090273636866341485371095135539956343770052240751320143718608290750337055038454057521438020890056512583553453959862380242519109733885047573669047872456330721631525439592588247125033281123065110856880141601185101329815815203538925576270032990539085938586383109357478809093275984228608131090290418012185212425947629307605731063085746441611691227657717089283274745485270723373225373822073225005510559526225127932947517082695867658746831539388206106204107963120716851869141601639789294417070162259731905108667852486427379355414052400245031743360358472373036688773470756165706764168302502968758778667128228473252744177924954361909424615560054159377249065257596332183201089497274390796527164291732058179627477587946441396414239753978259873933249925055679862158196543836290704605476529249016836340247655684923567652917645182175695559379421322961542814296272244674055632797822592504710297819223716918432149563009501231196564573885532396606476932800838181653743325029919789066017509771044123948438731100758310715812818949647947831491175329946342199042475624240271778778405013053477642528499508897161916716469687803605391812634738217405936043460324615971172206638160243614080804761280818510615017046988392148990498929406496421093741634551131159636556275032025263795846045512259399535094048908564771969625861927145366574629555587694989052495259862493690183437909969902643638896815816798637922764323142279085127130465401979218931859522489167681760305553662763084417155587157740600739474336294730176787179627653447275636874296508732803390920550765390391312655669774917319261469891420882426176072545354581699691505798663771901159747785864338646545790805807163536543700254915429586153561099202082749472351070351094494457011177516189332972122182542387514724657786449734652857112344703997659342798137614834519586251063078847936514090952772305488626550713591449070081094459221617483119939632214688147287472162851712473880280021898992235740669104293777392319410964661300825750195170668467073594938101761811938457544767597275212873494538020339965404303370068465154126314233248566050565312760144312843819933757567337436806684614876263292977474319403644900407735111380912234378687237576327572232763723031953969735932098379977615653975370442002989148606882260112679475353871984290697948955583906469709935797527537741635431807393441503339325863082749015221589244633583684615950102720577959091740866100161873705690427955262957456168918662325624555212466155433020643629369461967180907383416967688535742205925221827137066986359876230835708500393795106101451733242830269584865088810263095730926959513052882576644072668848061103303501780556856110394966289443202595786954081164338708892075287829993976211833533084240276648636005748500484397761898465381473439147684050172576054784515539654094141231564935192661253415111044328991920733024003359217632396442151249507977968601891553683708857416127752072329202815287735878616375313058337668331822600843462457975352855495683813475429557093264438382372066370737227611812285912310805044721138725474523031286686123729027225096180520892204497173279008856869706483771017597519204030464612276387531336837835982122205942646176014016912096410244553859878906280727706104359742389027556880516802335024287490427545245128934676020755326830459899021345370638413769945583457799537729762773207719323946191721146506675167400552893602932471902948352446986438024115681019851213406408798242246634680605478580455299427757901261999226272705557011810126568844570790722297447717053084526529151401103554006475966278764149323815245606516786515667158916356468541520356253503588281604901533358278269067983858725965242528628069701956705901775740127388587247738429378936156416629162187703082906379159552412750694351171985688037287558821252446668937195288109005057034373086278754239923954259866524610314967090883580154098762073476918648597787383903802915578990174380026208934611968008768494239829872024690656075157203157434597948568254736956504373655626378597492317220254393036975923376770548000155486891991217127035228522476260623608506392148194027849980087970608026271338081506606590950763903149488545980004190656250510005813998787810180503403730284997259283008909141093729664134333313820520416992325969945857414692570200562282348831152236962519260361523822765217993503033775959590076404509194883344187818990364510532603808466143368004624453632419855020014380038367605668500358409079704122280124585513352744781359073447077756057237289800476011681721124858244073564856058840439592462052907692768177479410338986666586546647744750433584138506283578493949888700387778722104158331891255747663901821787139539157721643682213095514075096731263617097006315068952824393141400422776619470209664960154408865963229610858968556478123984953875870402126544710137586628375249858708530945813174072872799308051960529115881796229398971512644846042625928911373970395196245192869193225881562429110913631008361173432649919384862944363658128411149567396634161873549004677978990392392821155172443601851275968938968511242191454601324876912549636089360283186543415642602005035283459824220186159218714509614418980114281337760507878500589240404519275502632884326413183397413869705847486067068206092060922858615808781086480106239615900765218035194277065147288659053364245685175001991257848908913846799468490216257123073499860374758804967905768032975087728141620772685364531973499257909541850444972723687775661384342422798438434214725479494292924354012879425299563457742026753883788953004567205264160702251404369286895208800161562964988176099015404373182441866537047552570667024068551174966271064515007364332470639953887865304086077057705925202037395887375532584749254941826347250849828859842485251420328207594051720043959689298980516574019117834007602932439104869930294043240237909680306403715081950609194575409235550177397987356752566746746546833949299187832387851088740008799031494872685744110227415195786013141118592972040748386366163131217581739766773385390839224012727864821906642508723867715216772571942171390509780133987843752970971051316400496145341218926025317545301640043788808785754104699371228060938171411147753774002476470691996335991639989463203072270906279254067486864371508248014637349056777262452256751872090956311363970499063090814296944720802217617342997955713795372138008727259183850410692821009265897620310089106550392980234711727804531350717681732427624857392472773160309747456498183790578831414127304142889292676899376912040630872855031651281332701355409372797844057516845846616207050324418817914168147322079430133687156492993862113054427509127170627717539375231432267735795089969473546282005554001806219654215356701505398654202132020936417332738609397178207601367575117178367108166571048928772109256121244586642900524077070115420554848020862535966890651522945402374940128777630717724080893897206864683433752333470782990239510602541211257573004173865712191202961124364195801074896939223860105870250379499668036168893862430386678580693055678695820431573060974528660660940443770623913560439242955775226184390516592644596588469888656661008266047624294046563641020717286681006650135054731172491916980186198145036056349439629092960014290486327810675246609981379085021762373188362220082109491927650757785783973873558658961605430447816904569832937011646128947071706062279654141668961226395309703450680557325029396491417938953990615016068252502902896183150692882426144102212395554685557886911701712387297271278140380640039991418203999177502864165084725670586836641407412312784165781592053944071111722714349605993012489538754825476774514135702017000105558529852516945283366422788982726680383094343778562799264393460374364986046796375106744653266623964415176717995239624979698712063579869484228865001718865287181176098250879812984155661776794545717516365177004946796334027779610353946831288824240653343132147245751201795040170657772054085895132423754012313895567110698644067821217273645976642115397223349240593216621111775815103675293873768839440492837950912640350870564701886995236235599662921252749343031841911176109288936635488898646874330776469471036810828628115813757741245260826195387338800082958914536836611833914876801969415078511640088583699656996465298967203169015876618745995298258360712517723176664766954274336829425128596310647293172163720045484713368718130340557008912555157137482724761464942162398421171481421351605669261873269802676294848438908295962673565672830132119769063764606932444491850790017841900663933081743070200691213249621935158840716960636310752851947110457053349658758889414875795316071844808020908578548857055268022851888971813184481722590103747553294060103544180911658595532740339830965302453856616791313436177315240386245636230791615115160057252888269380052929763722400033561665623738889513316299253781607667393525710283483696568769349626952325371147097040069749289450589957126960843628425395422451563648413318407134244355122778439166680188104971779916382930385354469357052684798232900099845063145777411234522816251488770220740550907082946098485944502182223597793294684545912030447784492824598645922544952472017677214594926494678031998333738852704025201045312930770785339875114826589602476830347562450524700724153711038693399323311319573550716499690387102552147318298551246520854450775700726992987486182839959048976991983197692718096343592937535498815778387334912271879111781030119681770809144995927603342852720057605418312675753030266401506335821679721558905267963762362058749226366274658939350113372956795566944445405238475992233251659783848664550241877817036068836541681460081883329415931006533606784451937114880328212955387070873590920857938428495120259006192056091821309696721803293496374726916244702545955630788425077632084979859828071368309456820533158358103274326366769740198989852766471823807614071263691524762928675729729597987124316188992598438545208122619863029425544709166492158464510510847964284538363438828489070454200402315758184771331452206268297469750636985428205517218209685568800921680282606374053031587892536043281991371215798877745996522051952720123616835908307626812602094233986252549454834504943948030174539034996367111159047947677322727004519594506704552439050378214550767933494783207984635458751126934859993262594981238068358061805867028438419467374497652874456947768361310284817939459638832068690656265066126558719993448902125644192844837133105758077179111659651292192318973126685738533555314751501884086858585001624140305474650404531904725396119519405397562476057789713288224880316285598636240935612723431102829179932252057060811530539115516899290385794179986204483817566223582827575431053073421729356246645551766307239940667725785036327587495470739434715400474420676668937382261112346934408639779629040642704913871029705281504746048472636353222070732681284261811905655140410208730676995908537311561518041081524573977350621507589851364296265152392021422494498829541930142561361328943831349752007176250669806383586934726231953876649375792156190636608226829732668215073534946778925956088326646499767341258780616668509965107224625834259711030188648570688933301000746982216530986241486142424861668952144702200789525038962720536481695693920064779434956879725139214909171671327574111086056618444901493464379135644281369358599677643327675782297943773041612842944837928201761744474341890790420700064431015421370616504360011534919586175554495334839057298501315550818903285210486153629949480735623557105294632578892199604897174318017817578086583662439973376959043554235341976549603388053081056750379854049788358857078888944785114739908238547472593694575055802141803096091500099376919196235187140646095254834683637762088475160033577755427220039256791031310784883137536089211233069813482506617919696352184034033396787204428953245792512833390863729468942830433837726749768745358867060824029163185042723906748564128300189533006330514220196800277836993557048833677316124076251032069810483300301297137910125176187396491378542399504466880368781805602303623223222583492727324408451518934037558879814988001705647361599849690276616363489129594589783432908654452900359806651693258400936933868828038584929896581232021360402126747829113728548044299225373694060678079035484024505034597675879379970011278525564268486958374164436417465620357088766682879429480793369007773108547368909334254247302512615041564516016008382482239603055957459894402644837636221211840667384543606125592490908899664774249547340689904340402664970467476880465701203389206201636067106414319984300409816902515140726066541224148178831678525345974539267913440269012928672089018857017958607141398116042683828273440379197816431392671956715860391034740777641229246576691728475166960016194563998874028605092306939169634405717883533862367308999925444303665345494169697988259921434771840712245653482580696799006202779209072245943333921353619111644444255534994126321142029086969952233698772268720240994094011274925599004978331449469411172219124081262849114671959171486136626145095225449516433928420138191277485929597073378281112542770253574161880784972736671989387726097220505327732496979488911793308093266946145464578185600999586924872818982399407435232741632666413081442449730741854045190921987240368958915027566846748927111254749038489833017947983188192587153441593520447464276027191899520053057696442677288273784700923268288246378269114639099692778129625956237226390365376997148443840335277998644551595206837780803031213608803724606412651239081513536833609240454048005623093099713341173241599493657413450647137352994109364491574669921525461552944713156366068971643237377791315953502799717776537092674719676588590887786883342459494555747998729938212582079295561979983631832994645940001543623674486517184095835001351781366680664724357140959424216872805305382296726205400852444061492797455813609198629111737470824030112278010879874094544315909788565252490192314416215263127382472948833880205569847006487871898009733382333314045595177495747227888092024157723539879330311864782176775644693885426575018623557249085628184726611869312993653029289232322907034896833528662695000809936862872337092389948760115980823584818042608632540149291683810368641056232147004524140926844493816315452825434361293658088568681094704412654200513682025264353410514366974976514322539969766586135109884519904078939849223208863441165956881075732705119145615320711038436319214907849652492543306974041947071717511208064961644381649282359837410217143266156453532861739296013432339661724066792613913960124647995667026647878531825417760683513687119449893841056918003608426857680405180463311639323546435179395530067292098423908526245358786831736693931873148335774078748486009470735460186293503753459581364540144343954687723921578313139668926739838791840990763960409038975739113078897707702074609291696970972080963695012738166097874942622764866487498903103277150952288434328399010313614368999941301924323674635401365650285218334984214897788678987497641927339701161531748424089480653209062413840003679022226785126675509106419529373673975681102193004164577691100639826283070416804758878044354204553403069016468918195072969854133176377396854733369614195274698619409444182823615387539783272338746914067848261923607242159890575317345215927119995180227260483219856830467452507207030434825399878819694018728419685790292227798770673046141560692965179235560534104733829475559668259456370388702558658141069460048560967359441823119760947182232919580198998634674115177972662412952110718584458211621847427685285330033976352828632440345737014051082168016336845510623596475941983503574239680299485086192030093653313747874196289992187101132119870540961901354578716231347413361844122348056175732916064434940826641235907885767737808767540398154582952167552150063816745447121577095448916370940564894284818293160155228860978845078835970369740104972162298513566675552488628352152860733612469580538823655320938983632324069139651886819445908661824789437285653711552057722575482576705281599575008109395573565063138246352680233269146400154516873615777613871943455201337118852984679108945988528364510849832716691383903357805269334335629969215940582068067819434302130372876751816165328911700980688647560992579756822023582848968704843175071046538127419377668699432752466471057050846668119957252338896130383178718268599975796531928414539020675687808590919010398350096538178063298993043513554736311987429664228734380007796353140665394392359161248146990867163141821072140655688376452040000097122903499792723615876508220592471167039405370606077857171748109154994897201991241605785714971390715002250702961197038635421336835813420222265369384731083546710059321291041571275308353848102828989122347245273669707626139935000663264911335402440794806861613907084155608046146130831150453733704219475634497416833773800801322509864673223595571821630877981574711810502218371474043096455491738062569101828651120113681351339817937226400686027519564628781293157182490626739497080755883937300957139162583270339191069896621842827847827076524206062847142769316695294740343634737972124017692829508492234731611551101376462105574894913041535125843392343098098427602064069541089201277887657443911654024380840370306349606362993708429053029314963774419625474819144426136200464302141208767690280481916322059973251402473200672281359117842810878853718237491724659292222280005163714023256032449118360602489549717449554046563047055895331974346689128377293485670995720076515571339466278227625603407451453616199577706524001638300136182740919183100690299023481211207345545967609406428629817156800134575825148600216329230308902925672256468603642319465119760471876653121848928087295414967153215980855623887274330165809357732177405511943221919840495059955550757572075028510946096864764311336757283771379384013119158749522779949959865570363894819559502571817135032630063369816227229179094987101110376326723226304761094002709750368922382066522060200339208783757889556275885766991341560181357276145345259581974425062735056285160765078306944953524633706256515750118832107659396044183610727659339843443937476760826000418560709707256604962570659607516912296003377134293916764934780637030342644682060732282822538720942743977556296123340257936713998099446619653800591996316943798667114979782088957062098933254224872316970408649296819590851609755780454347208151323163671627535098805953735637045536853566551469886656790019452790576364525534020176926033788781603156541103966673538699442154898943127300550355343756929976239502560902407555408546949502992370844834120063206251312749903119440520755000822349038768863619188442341522934880651896441535814420653988613655892228472579689983924282741245280841460139717421361962950125955962598685548910736251383949317834294124865206418991702328966090498681915240509671284282005944819768776530647949842320431686474603170517853655746716293589336198444237397002798192793049155014713052188289319893207601241253907944076146758566847968970745447062199898233157304418351246613513079347631248124826815979444740777744456310963267804933091639795418463928198163835640245352545520483428732669935414359675031686172324155862965762673805506676311621369003295752425000631209707618039057386566366267336018903594878746739908357446332252184749682997839804215337127825926816481682194997879858679556997146733807542829531506239619938573530451659067434520024872429068310570830381239761833962190867569601133848923142521590521924742930646305139402129882623766912949593806755690487262820064436545532164087700890899684559142712016540082828368877741253693775915196785165994637699572862436170027393436448038011562464424342171833686852517000995235563243327314614741213003399427448494749482270496321734348240328834716518836914669534466082531422203129155433363974688549612634662215778127080497912159279459813598323361642573208134022791514955220351859434017719694549621287754046260069582310425917281127951653148682519306364980539642412643159496454508882097490088324783769046797208595166954803738529758421150435533803874959958762540758741758844036735616688723379829406958530223489098148791679138372231755535134468918024894188137547083003447112187187581046402729324338316408977587996738604179947250335476343285662392075159590844170107717875513526657864924285334262008536249098895291195143794634251107618769366582072633401446773622834739262713154124247585549243401515925049832798586585904496113456078825338057490422711551909246799584738132922032120313042294627763120570940358604960605288902958267097612820682019410981929581170038048018322807818628080722292042604454351262719485687452281873965471537331916227550668503428539059591781482000328980832192368741543249381211988217858386554858674920873716481199104553432946365635380072953382826864239175589216628610392745162014206492782797234215648492950194229624579431983281541164822121675024263700458817593371462208797687610759499901725497380541118061208609999254017966146137855024132943591570951711858423472590905308771818904319353299648683304125296569515591511569276292667918775745869395685906642588537869415872018937719938753254976560967485251134490958937510856401361828445723444029496250600080804131452550843703263061330987406221243040846955620866300447954766594200743850450753364780905741414824496806616347712182296868782534645813934756617589302155925998558930170064652038586425254767997159341909243738854315442691017754699454347278466974178087351312585590429431716408822444390636211716182520449258434658963078974466716306963109526068121001203439042027667797724281583920850079492753658625270376718412036594809639127966679101808471074366227501867446854317508795757526550436944482006333873439657735313669376189903690850667087481308033933808285586496713267174395645609885158263466320333227240036706246400970609328067358151799996006547335550800044448967550054690335413819860660920979578481108241599557099596368451368505189312485719049902852362176353471294472579699901402032138263491756820037675319805958038740330556258716180274652110801350840393117972952978133819909925587960814457340058570604266176756080997252574561642073071871147692421508552586091726508074889318026400223974268926563491922943570364668329829392392613389144118005271322931644024921527478157715518640502764721485119380624776396442644690082890865831036773135796964122130793226583513548088995734028225256963457118982441482698149766821558201628580834859277219909759356729467645967612230068058053726776452404704204961265579458059820742469629470365615311280194830405362232613658483156374671645615043652173725958201548910435449021340978442947681315273610557823530531894761976330156147173952329534957073999131996803998444653915489838073698544582555518961082251154243878476022772543632173235591381960689012757155954544860991294425973425377293814537697660296014429402116294534080778668661468319266410732861917424009001656245271621454613940545712083205104283716014234470560944916803208194657204295697425766959936942936455289869888834875695238113558319754569842637915435304631053540962452272896811689196475575154343890342874344555920575934365086743333414639938350311457330922356671036570832631649732850984007504856014290368695063298994667094264564922903420903376498285841374878207715896194072294086481342220257340082028832122628039512953484524379960305067260904459399622435629306999069009542855288883916358526139385324336974068035991644173025365149886137298730676594331026802531330970592171526398075285260178045479302889398906241478745393466888983859159186962271352006365891634556803483963622973968845229263276833789715968676654636149533547420439798883238077943697078049561634333021876088165787843406919054144093687882930465505880040986276715387710881516196545925036061653866201893705467406920291877155975332975296279598027942339403511286023512018111146122950208376086424972450469288671597349444094332940051883731343935397758225142244302443889072794275901713664227762776528923856858799366994592754381340898090910049799935104421281774247578623409622721891587491573366325718062694300556154977536523299216231018684840333504389718526566834885377900424058297905777032256594117517642510546144453888926723930707360955854057420836036582422865596250158391769227473351224702057498816819393974757520826864907310838013882474227091135084219511329178853723879094386197149196784410974305203062732565851389213910599840367280479735552259080338835777340427349195913772000403634631827465117895802278567697917967578345789273094878892399230925590586519741874977971489833265002473286280742655321448458283455553023833793445011063534567414880541328881208027363207141907727793911315147584057265659275960008056361555553713154202802823897083555124664625025117226517240389858261027724702381636333808489255958542432036393196392478259542630925072179172855848308978207412597976188300875246132191041918821535005676881102601056795595243252090530715704717725031652749270197395314932758837713808309755051262357595949590748581547236279376379549699825175025636998476191741162639199840152987919660063566227233978556480499732364854368811275554757876163545282318369402025896918554584524461385329528983813442630500115720833730267280206185006788476906509289714776604567859026717197520505027355848431710818201462774333843604449297284943515770796047160117855554868417193113238643900138451480559121328056609586586387916852531036119848852469129386780556458662611064433743045242184128925914732597135211337894435884151051557906343806693383291248189162201039422447446055756558848679271544031390182329981642670998154122056086149084590153793850515188923369574407742133980656953827784722779206212617716139475093117886024815177991515179140310955876181068526069141557181926245676057074326455086842201014567290173724877227073780624377977373959433212902407950319273518822552555086967119988040991438418377978619549931087235865714461200247382481435029364031864865233750826759579760240229490710622375258954374593009419061723233243368056333737517626734688760748273139917163546245162298418637233033532534694636644882296559316514046940867201773793160781411318586326734417701635705273595533828425715497367707427168268967430083747616292919407584710477080132879749696674784233006943945248922104475017275668914220222823191803681077553458527968954235243085062192476487624101401583285939483774598426316821652375763678597369928123532861740378908958811293635830834750429422877406475047336113980897974199919492892432714391325915379257594659927666521694681259632892173584255510725429644045126375055650670669161763617314473656490423480922098087569258333269915957367199120080390591646693267736024592273232822605184189687921102834442347104374722574663602455232920572993842120755562050679748750631680827235489087757723034410068670533697104740652274384276149313051583511908675138143729957228785449010747228413995831315000322223372813753165428979846124708693809679506878210431052693771465770023581123594387338029413271872383827835354358649836982141446524429083541165022972599221814214175404064440053887736429751135964123146460413716422808190808071568513885196729317903185952618734195950395681195305504617608410049574774136345261973012203885385410233415454743825476419612996290844824019085920503854535152849427825827404855072752579433442422914777925203884932203842255807572447429775731917021796997801143017610706273004256853015550590909959536865553397314823342384558122539139819424011305071163184041700385182024065073616581295170128193075659271574522841770310192585905508867033588531947267289690571647063848443984451422902077529158790069283189406550273894584180341981718733020006693936257402575104048546325629453559418689975456710240627570309097231365353494583136822423835073487768048621029146409058258539967800525887142376254920050952760461013966244971677924312387380382943570663794229228711760542794017340486201448949227308398229976725431147660907936537094439826805910533937050799749504379326015060079420818287415282860649157837676137211475985363934923575335106108341281518613840242321420509529913728980728455366852628594076700644170063751835190713996228961232940561333083112787245805782927829820284501638509125933538343146804022771769096530787885369413678507111627477437546473253395004156900192490841130011660426764381177873319979908271789934538692538555912254671514529650075309363801184401333172695663359043433422301579966499067661414310637153057730915041665470213002157998863946691631701201038376357510784484258927823452138851029798324334195065571562278156807584353717916699670168283548341796960432854179355750181540948960890221908503101132173365341857801354624305498252503164915123009401169788014800539443384858987672166991610813961149408401853109227710821470049845138469209732925225582151040117736230202388093773183537364573247004261632555161848177438894116357797703219599889319176812715167681135686740164872932351153917484193786212401020431407938993972262637409517043551212432653890861395989189058168576302945030603984485195953342354040532964057072174302339449757486081142989218158392544876628169550824479871701538892314580192146008502563363673036894289851709711815848627148856704880824755516458563642906399938108344651603400852584354737384589315069377564180472066884787540668656630013811797251065123633746938010474034730929168960084249957445344413798287216173440912957359135402008261271475133511902973357714619392374498693542591213084280007050598102086752743843301326445716559673330866825731995407201555888727005207569761629896320709068811830861715989674530822247148915581387449080694255773772262066437123131344384624954264790982089768618688492672356457066240326518567003585131502909829470803805013676248274055857926676084215738023199792034271671156083449379023816937515665849787306514878545083386748900199716520136645179080971952990926363589486607121144156104630177916312926899800610183299892488580405173977803764642524774200950000175486806431455852663062349972037888468821597360808356584527984317760665274726493171133709323974536590455368398750800701746826955049308180750092728296361761139075652339541394511436757979109818644484786137704391513837113427088433665872021008830953093553027110346952327084576826077477573158903063401490923747001621629178714086109624503752077873610689250841321773010509166021880242794705045034080869535492372017115889812334809650914058758890123082184744874259661654797066432657732961259959004062244144516615408370031519996543828360842634846615178106980688411624430997625350906366776806289405846365084134185755492547051516900745675169738049154015086733530760128705041215932078695696684089970889504201233891582006285862709831892582580964953872246986124641361256293876272325738772636239871454754589803334730599106199833889798894320518226115323918433164505641929520471831159034524105703966477164307894408918823633611908970283086968699511054343703643293637075700251677799834711744445532190163473967158791892655927922707540689795028718362095026419298151899843439470251149548030231907598317641213287571798142400049020618867665703314418298482664346238831802179186230756516900626081258912743612205940718351247434977043139858218717901842597618454773799357010480892595380250914674060757313876335371705232503190400883358292242449201559469947824129954452531537602233782431054561708446704773896245341827451454159804233900342900293733821137375007625072419603927618914835740672898600157861809851064230499746624661654861650251429266537646895349950157716373789935066453888108342124093783067421791231111143838849236836791065190164483847589914367651667375784111649337104150558254397202044943693389925944003417650455176676044506412916602039832053515937498312895512765736423487153208200318690754747231732483213869341048010032004544215146245980444323657790187920981629085035416510943961294741227559242242964891627728503235851143835154054639295727198883386473120199630545454681856397275409370455657233838300847640625973788317137223459049829549640154512871057877805800849505533788357607202520756984313234287602809068311519268537003651653323517493835760654496604186243140554540666466433560528368821323339098828107845053423225081072751933734320758803861588028186359302541284836473661293232443462957235587279030330901075963564063984332568397426475274383707762092453027064442682512629780744553307778469919837119983599301723477456967786641636105351179910581812798017508979596591495735302608196456422400944475241274019946844537685135504337346418060138336535151184225486387678905741058050585131717218433719019743433983600766998665904791130516136251437075532702972127324200993101062513177931206148672041233376921668775343498273107860708483583523225131274005111959529319129037696546844367657916273540252386655309000009946274960626036895116971310677299155278704794436449439815329520183842177391233475318119905817953683714135790514911064340864508150715570444741884885096519021619994759823814571774523751948919152394450677422457886290090155864542093939981782814591573687319171330998984563793036128924918389201774347036069778665829961360423887254490135100518804647130148773762881829817077041376935075400879933774058771914558607482140760205214648163982585197803367603661260517486792675658301519753561624861164071348954657111462304959962855909206294222120268748338376982093072869961214028836658396227445142199485721199103220126447285437324298946018900906827518738195858187449218335450395398095170740190612097038480830341045741861894878574576831590065409948251044837568068886532508536336870277274906296227938324718909186646646129600423332120430809494356545540193084997377285136254452551573062035863881092789363855911542823605052733319979049742295701980980200509207882758080116501214361168054201665590811149337548570281469581568896950104365028958795160087209522992752939707408593563080143802964842526638626557602509803715965621834630522653024899821021682242214276984305962099194099801014150334534795935981456807157682169849525416279578445727582101473032870787381856478911487310824638297827851974697448902372135028294271277263944896509296470534362825263987980704597641460505284357127517773173934455354545806527517691008493179003281893919947900689978794326129265837703554643408861125826708365880643047467449759586728386792466289512167286940570780275074305170685116108227699220209376854312548720704576391331924260498258450612750401765133283438324190670843448456396224056810522582525990822630450562577011246562992436991959369066026488944005770425628068037651924066228531010725537853290654496205178198994887187602858601964233164768201104177193294556886752717120422982275466194515362236059290830424418586542543441536022805843840828345133709611179565566951047452562807658912470138982409895165456276260484532201227222561391811251129314841517656538568253399727150897388361040106114246224911421087836002675902847146060406661590723666113321940278046160944375577252581905798800489078123211484991138315206440415018301490498226145930250169607878996182805185981300910008827902503813694380321686854416903960115482847633842498833171111963173031577736264730593971018565763438382854840584304511797220958105522222817038442054134364916965758039191938970818957642237219950990052346636881326841364689083855589473150043307447723215554885036696169003138725156265439856029271482358960485273180549761488657012630030494381319089683948790358239906433896480723397344220368976140465915660502110787560975765543454488536582940821041688267525460198033086156123398312775420529594829175964309016151177590325836604361312520668264630724339711522014568984024450772309284944172415693171837414382249629405351627300846406916518317803152489498997644312020483136802855737975029828805732890971667760619953445529093058236586922787827906921459987878388017538356655961272552681751648970419082571277401042357042807923976040142482947315827830692774547502473798454044248680636378794856262781414741264630801426450949868419752853929179735107681256671056120973603633813761211144605181744751759505406712885708869672805968867593176412885000908278141684828391191893712749044385651006825125781072151175835381737577836314636585413218431111956344914082131040711745377298538365432701330163436234161663019098514890486375231492646809456017481734289013501063867457828070262267879649445115290773011578686977105210727976546488976940070011372937035135848748150747629837512829012651850652151195484708711272569247598278420621241891593746969462421664625513420332034432649776172852504761760717266457257338345941453955477802385354749020434107037209492209188433569210749779381890377180387707212402080565324004250289222318017286063343836345722717549509162729560866685166261719070256044091917410044948359493366666523952841839248507292779917688258776651501251134491810021814106985882582745852134815927098008285993594014277625534293755124410879098929025036495247007573740583102552388702087473850422273093167990138946065325927111710795077326138344453363899790397787731694087615353543893565453500786558259274512962375351169353396981054661581708723839873290300871254744632529323046169474798492533036397900379939710103768524457357498463968532169514519673324622936816777830806172388902418399852787399455985162850902995551849051517086639727149106111955931751967150469217916665087616811824731843330562824108823224352302999523420323368286990019926230797048586001334290711595144051428656353554815595669286907729619171904569757544061806000144552663026762354011416497092231819444811064821634823850067015273486434762334620660262267639374462304130307419311896006234023517972320910357684905575175337020273532502996935092724941173988251886850201693973459268673693328240313750546629404042646161158822310985643407956182041847212995552531515408327175112173577718176096338432274483088879442851857313917406935338297782606443978633698318902179108245970381702038712732658657997899546142219858312704591156002422232068859288983540795848335637353141097230891132504637008702002152440646952315796914319651692963121527004361908105258206342728076066012178634884840781760353519092462367766298904717148958112530346527409869766671243211143279394076354209604497265934695541025305942278682528951966653707844836691138646469569608293360181149969047316868344464225582844849775970246081600225310802482837008871357954979040660627904076724202141587680061795339557551360598037300446823947942001689643502547724737701124189206030762588109864946328623933133094428630279546201964120161183779856849408040344841105999770607653589523460267283859963651775731866034816757766862400759130608782461782884607468623626050706016645198786327730701107546519111522766433373120228333940009494141296881737146123858254482451152895399481482488046267084901426801466884175490340922972225998035687864610542330148127022223556081470610363469927230867862851653532715926947847418963639302389634227620552947474946462099853589352558317685801792828165622439960316190139360293653138859578266455288488008182063217727089613857906404058350099397530547981728545304964320185815929467011773196356192197868805776657955909434526060128738830461648597448312797591488743242908603841611355424513558181720538970101227955587013250245138219835096084506921752380467181588929196740193431782232328451561437871904436966524971805139405575806064555958477689385507315303651498268402997932657040972151713807886899502737462995328518335606315147572915595110512091701651109730198679901360375999465807464819910908981215402392977163372915367866895369968821810527053822941040212731300911099115352118354403062284914117466296838555157965943783152540017677095199999309413387680404002645190953548277962634262220572704927884228301555951286273403133252127953475593098799986589326268345517133467888578944168282456237766240324985443775951450824474138684380175291305879592593156942630429942195092403335509375865660543405320240137978590276933749222573737340582380719345202746117235943083475201874822465998377233911535797706927209561991477377498944313813569212039334925664626957891242198583981301232488253246122672282833035356544974010363076890864769948273833261583823886291153450942029849447748228388894150559880621536940729361455541873210602545232828160876254322745113333079679168060372882087599536856143349657726217483558113172743785219545094464126670009830825846877790577295862625730310298534988964058404135437816044747308964254464065796500612071694623037432063140696451390736526792911626243503001460417793302371442550576231279655758973486257168561072394559419577541483815565186632389230584708957670838272036949924047182755609726810594628467300096603832890919601197002130594221358272517883347504942907603160986589197222572544763330257520237152689698884260371875813287454902456937867159316726054566725380009827210897531051410182108200777595793612077643732419027367962481255362265526827737551543431065298547976161297401088218042160152632330277402959920164862395820685688329546015143883218163808129975791213368521571505383558055256324483434759310520749116151552183776119713152265859852697134584675480387398300428398587058911748944105544519906754408243590275151621827302286548473607308972683534647784854801359288211698463795936253138238437359536470242747281286120527338027510275872202071368271853648215940373548263951009575618819046749819109588768258996884275805773290045452219226190619214539686529690139067105804014514104451502633502450208336035534810276219578128339676747459409964964940829131021662030871227382150134751469164550233452312215252007243634914906692815191220135058211641223088696938391531556319334851594048768010822965812333133277872692046609682483011194466554411399026241192014354106017629994462219365016508845933464320348571502553821428373241222093488425934248845804996166008775653539035969492937787742611343125871783368874234807357464934840661536662718749008005253547877961189194457574410256168044701167050955712417269659857542470078158086845138546957231602450279560065263762878411916635845672117671972194183449860737224710094862468721858686362899926177410228324121506466564625417154963982712287116529444076442087714856275190310134256423799817847067131499108262368220969421575506606962943882945350666979237251241658259155103184643362606724415718193289838548733019921906821895467602989876144673926072573138948112731778866995961978631470891397175305580463106215274399381347677488340669437615596555166206660315329440078070134908363685069369946701988079911715666443899765906109385737467121720403277127483431710698650989006640796797151477401966615901369054165498413043938873718246547018263454110993184395538026235265552097212423818734052189242382108970100263727926240211602321044157741652756851040903806627511355025272773934109007676116436471108814950800249713147083647908991451291917894221569752561227380103123293882177450025966281707952540158138766401136038717700869140889176653366328857959498012254040616231610116401012373846876843555530565116581209827220554439680757622292101802022831859089591387282969234457370458929682286641585648881594385938067755815655183294482401586506094093250927756983915123109878904851983915751833639999469902197547160734879261460764152455853908930511070030648424704821572656292670867636517607708435816873412267524831675994821191368937791288031450601591257816777714504295193021818543033951090188114345415075415737787445660222216233881898446363518790922413438180788453422478742150992157055047755477029821821129828706420172681076328242579821902114622729355664880915954912614304439872893186779303086124008686047039045803335296755833449888246130726280697903362326267066757022481714426144359060213941097349996656381533040394353156585926930376321437314331167704251420930001788191738758250490647139071838779486393335471613493023685818751276345123117063002109420041221320671698642940906983433365342616856657539136264605019977126183353507289044129172836506154575590695912850398954417894578609185745410166240689709764077048280020189409051599737325168881716140482164857809871401147647822182060657029849672535808307548868954903998648301437284058890178469814872016770298671570692324131403035396068950182679687637471792529965424131653330926812069210261832930187573584798117512544097776688301565469051572083848563345261690789947420302324170767806708036167168067699846050772515963188894860248682297724859619176750306636662893377978333162822416293571268109465637952098702037441028359673645010415696881761385939140143355916610735012997200813177022739402558277276728309138889659252670537234195355216277956428530311535498821559667874038208774803329834815129194160158671342898424362417792721106798935271701603840275024915729848059676093088730480357097150370329248995937585755316494031253946066738423584685858207606348986315929110940485759482576329664774615384637082055893794238243363219867738736542062774637714576505256205305763170116020399085501608522860430286018690445991891876839497615167807393462815716825029151315954752742776291070677517586894174570319066719119260998260846355893069823672183634749681457670142027375934114010907593094153742223456788105983626951255647421716349481910472016033274498440141836640638387217211607521530559767606101681288828907402989993559827668334844649904318704823084218270076511384109072718287582457376952430414651026636566715021376200617087022335019702720986779625787736243688215053010940806426625952929002764368894022559907479277855247130752765854681268336818579901789029172239816610193875955966736108739512536401362504630303374919956379990469643956754973606261851124149256218274649525260998046873867610852455345538948311477207659844132939791620885720030855026641795808533415904617958382151552931199345274033267533443740399453551333374450198602772099219407156321221758735554707047241261871403319746307298190029249368884210118519190847869274592367757176876896759311539211898039064479421627821209441442181101874560094930019578517896213446900853044229445128397431164851831136070269452632911517928842331672838611746959163548872881583621461217095725997818131850568675123698355416293560878362018621672902468046959799876234605672653402477275186512568807894287696515396099490652073905921279218316020781415115265616471867223765516480527246921112396223256418791176704838886074067688401635248340764304578038929218337287139789934564886306773906140156108495402278839726885008480622673839139755615593064865649612485963672335333096022300365442501682804497027588925467857151253508671136160695806687326487542561337443812181361838258600678218561710716886113853478707397481874522024784767646075325559269257268721946546318760618539841415840668742830290485524061596677208877976308381489725197811623304509864156974427398669945447999091887653439191334918697926912333225711638761092791060414429217504562710026223736495555579803037706292898043326491020655809032341189824856340900512726970448511740746519111476445465009945117814212728423447792903031401355919075336781750049708823440520418667793709691189406267234060052085683878249688351796155694713614455271618834440055537407122229206218136334850159435047649748949710588924883006582010016674425624045840084704124572016996124869354357108856392991134227041034103005716326036643510653446955701639748428828166371025485119538043134039563365084564555461071610026803800193824631216203107703886592090080652169243308709846815059839375541214433040206068675930793216225096004001991940294168993981389325852126002648494759447077167319434650096692420016920297100740694278448823767845128402385193462300577831689329729060680183326676947030558267980619654869479817546344041085308157584116199750056117934711740767452155835105635348281576121753164669030618865160170044910048969517437346620309915914362360665668462695334827908091918466348392029881922180564387349591596488706299363313960218552631367073939460456639510279785707254877631012401423286414330375399494709766064228308198602819532971382629361419676918446605165918533204219704281401265985353603452142084352042921341015705106348605047121030113238030894851482045604646929082712160687220296794821483862686663610307915640793764098230640787977362455000576605394961048368951138771576737391923742002727790464744972257472607700243173027122957049760717938989020526677185741214494247128432382031790079922006242573014350783452911126748900682993240861026746724612304099782430048171566709021017365325598899475069717051126305619098012456798640272097521357560725794751419388338178441866389836280247870255469684585109239125440133268450248846321220001570864119014249608136162825278412698873862850952978010874226859846086283121759767383387350981858519361026201519659973306688050197069225505879864519004664514867954276594813518518235355811576493829640443073090678785119100047878377702002759312465006230497141314315770093377500437581762771177312308691683188349401365674993636418852803274074581024010116466096606615530067291719718358125658986432569780639540865200561392796887316753768806032345471654509267542752425737045649412136671635148189197528586007660528902222563709181072118645173026575592353648732438080563531274627032637291575012239263307509597549650531744315670933419866018835721890730647889157173643097141845482792090865099043202665245039476260101020120981367431251877983841309421000982308286463294786155894892345184610240312024196615027648609932790171331544864215438270669998311625382391216166824431041598515167618964616037312184943862598979404673175549735183386821766707406215381174736109570245596206558666159350942396495780109285940671710160318695406841819810262977828437418589968504528792280272308006803641914180581603335419907059908331995827128572160102296646189119385992232280368867790619154706845093097682868953597919938129896980289967847595748971624307056389409457402996412632465773822548892520974049412097617555442568244966408789341990276470297094144806962776854048630920370565012229147819685821056262285673566689070434603832253256846639304342294134720164593512968448789759702509392747360068449274327343140417999431871849679622105340909013406769360101789277118865274314260945168878321813242896459538269502652142013625548621852169239987858690824295367688407672555683914780922165734631803315907745137735296558614272060314051108953664886406381777764886790902186990993831368727933059103120968777192610786952511369688644717971129601116386388671738628076127569304533211649672479508481754654371572260875605565094478381031026789372965119043190034156135060843601502128831591257681725928560914948550865461463675303896044813047275745814531419291268516576150239625214705854114086500247936156767858621167486619759308147513725928365886613701377820242568799880311694275124355491117870489845646801796182255097834487601849340033565708539632065740947420767567865241050144379837828955800683494267317996392735780327272824155681775891789745871496100576408952221080531229820583936286984839730913565339072767534115437722834454009626455926728216779447237644354139825346481035840135718993113533829621645226745805264184957037013769114631309497065667849085235016413125238253440808595405974486797182711815466131547610278656264527319004435517462916413774236693921814848406455767792132462722625953900588300421863580281502271530620499890701323186781861276160100323707284426769509402402998905035908630313786504324649423158920963977327939223081478356395873699946381198442665658231448212582504250445316641326202087293024940647777613067726587189039736400324541430913788957089919133885940389536286646589042162621516768555075344524338177696658325918698977075151257476554442925540037164738711419073455363014492480200504358978762683643009300982563981479236188944712065617444007130315782705175277216576871971928173182203394600867576957600841415620741340129136628547356808043901848397405169983020428543583127039204307237672777368980017740376247042971747961260134237495491374472056917011174521402617134472082103425677625440027442564684570912588707199346812790167572279969262066740070750759802056386342809443535404067604389326798693013033702552150581675260899514317446703511555807597289381796720744012782543769587790492832391071747320300293143298624629632828882661797437574711665412484547389887186532226654426460762499968973531157819661834202993575976982982264134821085716993052778780209506183987028554151851919109557789843040473045244875849666781607124690656708266242749798253637750757341429317772450849783630214915747360686518842943535160396719790453945625048682142170663140275988108417085992845922256812958706058282202448295929560549336633857849204947936811891334874170234968946246720767257486678854740403601782167745500891431347480598123271627572761297600753381621417485606293837013576531128929387756677811093499712215889677592796508785985927419815243854026033083777959684037972105390382298130523181789496642466446845411678869382483623256351640107064803030130222004844532699885708412629381285291224585862335374206678017600579419781689406411810573364373391736909527259452917729200046136194068146789873185637706392783857093342090165862493800827069976945065936614786686061580139550968714084799386922954273630178317946056825309870101063471359324964491225133453994976013296478272200489675592379443771222478719638071883584676436053156542083218232138696669797182482534142096986801919004104969204255237299331528440765210573896162518465359020257546309688596838470348943824907499076004014946214265393430210163512003188315355035974892074741712183216956381816253632633860633679089495839918896750714041233723957163208560837164227943665931345830870031295924906918994809410634763425831306038832637824732727356288557600042533236560262466813459789310609492722036576155494260308965890054598137890642816193343160616789340465416641021306926301482306752579668982456547697497269470360704020690819849127476614824478957135897463789871929544246295252724537856326749986062593806645070251070995843601455045731836017093208224104480899465485206577080415457117483318390959106615627948646316886332022443376861542310171768203547311424243919644664499015180579473622245103435695713254956239747009256479605901598660896791754094626580014584292666660014142998423977560858417650139673035939531592854035109028503377861017172699872035979713395953818085931721619513051228133328654705011391261824649134642932943213469445760382340804504275914329573230195867694736165746089223209417649408169468457348606575541741750128542082907751375618663072530357488547020362664726275132232613247275921541284316828608761565072228921892722990781944383652534508860710472314098801957921846981537114355525942729004678312027107593646394844930415160420128165792691787861387024881110809915886664880489456490391864428169632623690661847131508374130508495509508151000676275010319242898114687702227798669508475534808937826212663878138930958454524984868023684527282314651129890255417676879458325849075014365303009104689414948132749724232378476110440558674644893381021422319437125907458405354797576133863529357872292289529567425918451500292914954696265130446614511138245617702134463488473007040914525933556255597247964116714255073323909635750231660309587615072589523731876283508967006186324376708967423951127949750576860837932198847216825430740286222514490769941433909121109074186028256104788057380961782072270819868530659475429716623027464815292533171403462051093088336714042455422713069253052391578702675803322576527501770561145231607057410534030780999861107300579111990982925540526248938299001060822606972573072366092696679241662530242326025090002680013317415787863467514518549664693361002817363253798219935910189709696325363342881157985141900027259897465497348369038041577859423974633649048781593827024458331110357007148376000417105520641369328690636004117863737405268635023197436125856564568673571599840171633932026056879609943318197937966163462125807902409110153784590228343794660611020114020982772889551615429104873076296139534807266151310736272291428178369087122929223459705455398172307448229626833610854208668549825260446938554296967133905875614424437009718192720039326837705953753179364782549687141665918557826411924060493227028174429872193323993217258249098801717139053668191640978754455624643683206511191878937348675800533074709317345889414809274605141902480883827770377938372586747640821237296256482328065418672459768885543669873947115717274976271697572191371284789544644925755675149859205487698288442929029760000953612734763592775006837116988812146474879705604812274698188635345251727040587241348031412075175170079513588220626668981960487992559471016695073425306120901395915272423143417939798362296259547827234808449976278842523516021107433546385991076903855425571722768048068106175479018986564017147509670336991069771741975289092011278669207134953872550259262227766241394103004833716726547664877277869262994164924215750370281051044761853325020602662491659058617777746883314989358759105799106542672414609827108358827136503441656331667166459450376233810811508857488454076805661923448478520169322193702716374009144725754810698108382149917303798477512503135615981772360188892461052408785309432618058514253904098081626073987335876711733249265467591434731263173851088922741802987221894830724338259340710547860648356248757048034915988728697356107551091356190856573351433180245757678161165824568527747791700313673416587282245747301086886465955423632871611489829227423100780485122485526752567358372167904131946312187997165989995935043243196063444580628130782132771591670267277015761644010000968751706860107796316294096703809479349788628569505220540452437569632717528507486098738234856489839698840418990792823766096926804959158656303171289001879589386718906233074069479244939971741921577198012526211915853072265552911475075310139673165499848187307700881250953413317063669346649667280194587972785647743443428100497230956933967950202437456572155760259456777230440821114522172730805692544638618859628907300029070636887901746566755877720677340753595402264059083143466352076183598566365255255122691570762247684127997882401205515853048084404542799470774285029651201074051461609113022925500536207568569509733354506697063633885699460595790290085536448122716579275340378050905939790543220065602750444711478445751248574117525348266965530814988533376687481848038869937207240004275980425423873727774232966049299497863948580136158396338203751484175212011132508277756482873767353332317189498481885386425579711170649411372176044300856882517976167316550469938801443470832370448635096203397904943625926315625251541537202338988778582670042344373466787859365303561072325589032136797799501736982043315990145761070679948794118923812754212517293612279002210198492050990533327188924795446709466739944151375892780742648313251230646769609829621186485427511323360803076628706531400214425946725129400560359689636258958024699629311002971718086269704573735041834828221267803426372110054180219077756278842198326551080655628869204808569921178683886979808721100844002340428950323107005320078833451890766349247892231746341173828054939296134876158827660933951956487372805063743585303354632300672118717888652118559918552507841102262625743576077392197802801536153720908189720814624367865569333102833052851507629234910514246546280816975247721368739828722413211801731908698523970492883061410171005068644169700062641914680305574894977535875734345856666656148789323780832842460075920718617827706052315715384772479372572130135199830393827032407295449448971392175308073685826910871733723700790363393387906613480440632137299239766281011072859549800592767712710790088139830899393314024621155513919510995812767723523913476802181400355660641664441186169797460961385428281285404548772296672674504900606067214147931310443746949846312270255205542178295000065472496706128604932335471537352913762537789134352897272051888964411238511053955171433250786921676077395396674278215777681062263163619601829060433502985229981256502210820373696697297634337346689206983805290789875515297648561171020022734129845819125810637277015787145275313796314446660804259035740487738749509432696166909260742482621353416016767625045394156553100353631153326879363054187864196803492735774045764102596101729287754120775049174911705037896215065257815946753127351334006804146545428999561498326427623290332572304974465209118815075733672394699888396307755280972471301873479639749222948357751209822705022996134539828600549828916405784787878660867455736165999088401388268537475465852073410139101682714111170068586764404541991137609090491387961615760911025489807183068954393436844297401306617114354931655159882398999060391885181719030676130284459999462532540158949207679420618939187557769410152970282826796186860232549512941578963826472535408974749327493361874517748049280747811139544148204322978562696927384856971225258813435085001024974888169875799025249682989186709862871505092232700518144945998128398932263757095201619411089158632148109511308066276933862872404635541676640874952663663330057640802051888411432225326282019495558496256685956105050031918094279186957550838191043293270648825163345268067462042020211733640233413647815512731394280869431773782632676496027617541598851896268565726375037671610295558414263081940389256141083881924336904067314927810882692727361184173458132059177048530412115548161384243241380683134926805605052245254514791267933801995106291893668225757092444478769233403728393008886600467909529271637760810053897414012362138506304933352838257322430531643945959657553740126306790294051242476915605606076585162156263346301663775450340258425946547102714448506454263159234805668863262658498017528934376943728974454750415905722733958002038028959790696356490618153247280224314720225625876733300207107338909963388557695295690686460616679751510134716223632730964089955526029926807535983262645503783543165494982924054607846826005413358379444916817848975785261885622591232815464879761226243038137186591981242867729924173318335641067043909411855425287449126175021912424034020492887604800614632650563606403160996063681833707760982538974801817302376760137462360512910267591164762461286407339138171470177467268094130585702285857457163407140294475388206630852881407147391130194869937056539129324124038723085234918345864363343045559897137953431055002022029029939480082072852882207714137682298173542923863062193434746702215056583244558044200507597191153015941789639257674508167598344417131821494015573110917420445267880464068711963978088049934990949142000683508452035612571274961308420490153148638172102901156042692899640004869590801786959549097488693426233748945254379707327863654708720209159372112712087150161798447208245316686625939225533419362737531821193323816777692874343813379543504439315617270359080446466392635266295181230453963549064298676800958706037333608231670103501988910463636500036940883864901106430731269547674789916989364520190614481711074041062405390796997485154835587465379285365762945958993476082765826132873629989671059236497384186803606017551049847699429098750999103799643987370782217375700949492391423722771616164510807640630079457728168885232417824760711034638566321473635115291701030413920585496932712608231521279036743479940995901389177405427006580186097240172659940564365340751814809552610146149147706922771498403777772546977241853485135380369068414408905549871729716169956196396881176394785000015881178506089410464653563432649759297465726504166974726929359558214482518920988799669847994600706445949923678523919068387515676641255079131170465947500539870593489086910941259492733863852552956517856885948936516742755833521175467184116235729749202884511301727757276934147182105898811147666021229257127718693741747078720558619427247324870316846303827999220850962958553942669603289009006129237447054397353519534581427655784321979304151852648140819366772050606637939841415341784298170182555260221636499777973569165235912384368030891099181227368119960121027379835368656245228147891212059471504210905567571621198015388719933520761403869565866628897037638528524671874369791596830502314096492035289407203721053115207050548437613104219140947285471844503900379982590063741999017327362536135249569365473064157604177214860358310527851808589807407394429881589381922831414924889378800777939851965896332709495845175031719017085413325988226778058406080500808970260113820213800825277849698968490110636890884673551418563021029370717210813340796231686675958915537443158288663617724482582593258963036273896285491598553354802970165555101783059819268600220998850595335879857146505977347761964930806333895254390127590183567334382801430023985770916629240907902782064741948017961898649195859811620538007851924364522272732232966373486666485635295408241531536014109542126952547734098762831594435698145928226081131698972458639571795892748422170319310473930008049281640985772405610374632699628291313730520703332416265151616483237773808457758014232289008655256751922550661573747314018419551115829339958503707553999156490117763853327375756399863192507438061761263024384286657075682536088367161824794011380493498736623518263563537596243820666899863761777499053316147562651703824561197976784880439239700090092308704935091754363272727047137749619803647078810671346887633041907287549965633532778767473584858326742037475732056593826947816166392593710445713400758367212037883349080433323383360041671031139236118675133714741642065634253250867597771636022963509983158875881071314766915203597100366174778061039580570825866681897739828467451276388645975417136252167977518534658449186187137093216096916316047922248536815728717686211951128883571399603236663872956418083427827266473237161096693474580772062335383623889297760333558738317415049577573156203523695888461328652777621202338827537254477454435354553206944422351247257430876979680145948380699572951745424403129286285423731405504520404983268402784698602743190496691649766055905988645236408555069242208674559626736597638153958190641864914306486267234888609268421598880240420808300829837949744145529741962025447961925781811195688018162395132093051281128890566909731533867583703244933402724066021003651091377609209933530460346016775863129669807532340983992195316476984576339674825941346133951966319377889298600986985221444841900232533198789091278588551091967013212341498647378556969794168146802249878075910782068058402806817148808764037091807005220043365188122939651281123377760601004882529333589370410880252633136449454219809865947803979808104270085320707217919346301463784727550664429632209223623795655999451707949469341199722996832554456609840601557249882960732749905713397016943126022800204519536172058776983841843991994377312811566098628392123434341712482208742908900584609924794445786139445780394069305702784464423316746115699128678708780765343176793628682158438906522034314462941900599941551169940925246749301487638450598979528589188877915169784072188919921335040511302667559236411104884383028418120478688871861118061360330597138357607318522479410858414079165199320901668954390875804906718138771564530275688544380976585655636948000001441783588412190431046144311098984038872881934440074527394816285083179075368913627161846017076954736252685687358382461728040386033641845148251514343304279883238031069314953066894859820516770914050584557770172110555391741170395794008901446302276626639804419560043463545713995709067766951085834921248071220788429548403538604488805292731461748247934102752707706129883056219465980030832083845516474840970083457712144563453901624390555428898536688844808226400702926144620389440068005431630383404978165350748481468879825937349333133566129541042115893769835967206172493235460484697995437161492871653083567375888226395897694365889361385464295263602623547985108019242530472504699077520031818571204961088996519205288531685045056391991571503663412247112232290442964077262274631978610035987922329723590680038325869984501349186556696763055992108537811345955956599235551981980683541589135612722831731043687599052350289074395767534046072318621612457752354042175667685631919833255994603477240515267278561698842078189589483703675152479752578075758785799150509156942887372320447017420471819383273949726296250355684400658162855259308102090254442845230855780684079623352938093225917101705064532320034210005779653722235337223469541041973071609165014616195174343945109022790980739218680862177785190928212976125117469839652122563366720413500355016437805835355203055168332109594022929843200698301577327181830090541289056349366125828496371665594477188929423089130337247239106143284555989870195187635667839156034402252260265344469081194167436359998571420885240581214173224504444676398802133932072607820997604818647693583233449450624106225738230185765088403832449620548020278625579883168390780029159912880319598723028849302554464456287645227646924567049707229640867689987581105420063401949610158492157680158582870778417201205174547720045652955216393309029625219416670675779828534619391546736660413357140038111296350615458452398538672142331931639415919826623286066960240380404177669525912039728554998769290429743178406436257338947729487388470339468182792183426430502235995003730966531525974798477629982997992597210533708495727536501015243838632932784393030888291495437466518159576236835541716234444681005391655718689359664736388978808454606798837641775259723037143743026115303121217137785798525674789108781477119921136714231526049488019672382017846325968720444522857154092480415728730861488186675558261480077173333207544671946778281239907591325395113364973740402746617982503501628571838781178692383217062118004416698176505498240553790694211494034046571441268656842798067749143200680038024417875160396012629373939075236018926505449095356749252726265207849081329505567544181994778877587749053301107268130623856286066462317908367511485213151238564411587126508043722082749107233919814333652002856067796484089019232089115523131590870827724238532576785002719795003986898794247580085579471295104202847644276716709143917329163359355655074362925799158777123921754315698883739247462682192699121669588832188866320734847360976832244879088736753905964257253687077635322993056734887050633251716504065348530643949302936089474440619762089020555476389071163838155799839256760375962036090144410350182567085376621838807721527743330195791462196979184539383503843445844615077621376263912026905228261630667588564640129095906028413409944898101098778990770446493325923881795711517064162449774985140173158547756250716048156960129924055681312328362849841389028781055847026008480338489067258433722681645994485671489690065470233878889317500825382345710617614785802272790804497763839846978043904419221189465247801848400297527376655985291018374804009393025947625149234373293227375103415670473014349148916951119853154090822470581575181837292999974925508026339385267768125956622133300870356916193779187262862460542798979984021122229463976897465602767039045022551513990505068635701033074300386771367635497090851945860659890099253315412038117216870810873764743607546503520822370994555120048695621111277196710648202141886655614891858370892988073276618276567482339886482372022115300381848640904118286988431483307076944874855433222721870930039543767797591647668170704580513399120328960016673329365657049503356879870401856029261766210776644072481613564906014367375922263404089094732508178357629662289093499427398188653976495264882051356974989604695787672821761716831972828434978676469644009127200369032330901935771491213034933131655288685268966724487684247229815908591866392749447373560101820472497911566544290576869160152215235400773902274722915396979178284820549600751092004485411052970769151785269626152340814217777715656504933300336661703223328084994737331542517740620339964820133799939553739251610317491173994895779278344706633005145548193603519632013742803348951466536112632295908513469712111009788788441978225627552634709483666161434336989238058867186953415810832806441009090240907269877772105515756079917810943582414641195379613947395952210991181459040468245807553039861011843061688467096376147068643280320689624518672586992865427902528785889860442274057083619191910494465934977242315901361781822530496887758467711615402797216049070132177872834487647707484853983837649319343621805489017966414475104845657711026583014620897988608026445564654280390509281461000696545696681707847245985495081873773779082489125072375189143624512030232122578720843049822906652338218606524522618554623150500663317808178027782835082961567862662562346563616298473481149917603748138445437511749553375768807350623184238646249437313149373918650558879985582855070732134200848750829341046521479410230287971325455539425510714308069779444292659121949816526193878425531016042784447453586737732466030712739758373986660571283781664412615897069379621033686324899918829641652333600237194317566114891563190268109799570714541093025066283669211130457424488836396341745748127775036439219865387666927512871130986028896096674900635290414443584084554551579592855054644726047068834206611830339115673386516193953024846258458945883744351016456235250757632598414175835211530139173999164077796561437673645897969090237170539088462705231335646418910101714137780627037628173774272203284855222130723910891678033660144021881861241778001945573987613425500809101283215656191887383200090955838370758848291408009117667095537940786254759858056040424969666479812596138780766818535079097713567890651489248811974896925718673024144325349664757174456168430365632000560906432112414504226292071728437729650542585581322010640108458185753482022685176170605381529944750656489164833654968345072647811852314775525280255523178027193157335788179554678087427587255991861743350590678090011279508242381611161565248557201319829998530919056387309946758034000929915410682413006973938820175039397328065315717885748382130671756086482618226158186214173153803131445600479534507870513099555730749484161711204895116999975816384710417156816011248924872084511372518709848525296352240400268810231184376520215195896227059058647830940077364113003099978993723602314691646985782726191632595979075860822251362058491779133293345105606682794264246650237693508777039403655662110341854953477530163048323958927432885478520144128197477170723026655570318731831590993586570597714913838121730037781317193331578245738509853297458497210340262650945941599697086747213108313028357017483505594387490775189150810995679063681755560335456563200902634902062207609213529414741115258364106621253929331448823249217881166517698633026425589922961617459339095183524804305920301561142393613241642759471708561064250922079214758909850922332453926855614383435154067848202134789715633038736759577160397057678730372453071050447389960296585333027112872193831646141382505535523596908566546160793558662039129563138960376305414806916145451575851448655407188545701668836251566579402905215013859026332986613207907886434967575318404591800681737563488199953232743254239872583563136147207831446573335459334605440464911199431765581515720921620732040268762340607289082186826506238487512811368257308702092423328318137491028732325986375803157221669196429704802181194962008000959587990098687723501886687752670553621086160427670333840186380726457796008235279144012398670863659334344953708662469291728762684073315511820543806858722632742153173308190677947416164983519905140659516701221019276689905805562507863933821144871579107711254123495392827638881866455764249328081119458791440134898820431236069132107419160883336749838806189754058311542957764979687156042430454479903809733171841829961715167034212675933528397605092516419708694212894737030207455566385127585546437546804916445166627141659719030183804523849630014944339764934139963095943986439043540597941610909606815218742820218186462985112756418382406996207908196037660374128368275866535157525683827002923790719336407744565698231431197547569779375120911488462502448483289164466074419041396658605061741510910452711183726195768034447566522980730188732505795490689455864446039622095166104054185313677233744201832696660867237475270097812655895951161698368355841671484438000436024230132204058666371166429151839168078085365037741758531525288721163369366371003450943299359978150928650546837835803702434792866091192365188527179932431379807660706659339274158261119582770059411344589426558842963487383083278938309330014664982714030766994306535190627858545952934171865524689382563939002539927830437205825999834981186628873495631435207763978094473449520339246705250441486813309932364344703442499701116103782983573527983823427169829895504272021155953227841398986626432299397297081123890562397382127432592353095205907292734749379607966140039572325562477913686459344619171448731429876700977396736298671623153393623490291861815605199068415296614200821011998245916490036414837152918004280104992804447251877553309175161118412289820381350443757317587255301250593979505522842822444283114008182191018600156281447742898670193145457051536121697094899379562773571594989088833770131324747703308385022230819269256115490107407591731058870594571315802603864763842952032089374449753012506036665958035727725853356592794183333009335365944860878462539764451523479460045723030898912174378007700151738280859242229750236644499787477249254240812250915816723844933886120175360218903985008030550276223114388437311488170295915789454855670537126316210520296610858888166318170578670077924852508859413193619558192183367340662573401364482562363858829947744729669362358407366113999498751442931597034389818968741343852216241912533573503751219104314473886335716732017891274716449466670057006723266585393238473061681858677350604914463287904716611115045618692494916168980052452575107901229980179986339095155781232451370223247223668852072518597315468977354654782212155022128160393459325495308466255877396321560277184195091960341555099635989837977423497617493276946803063729465635802023323334053671924043923017144460646836919000171766332950485133583333494156591041353240464960169676853141246246193943005164209162828285461169627153419530520797718256382364658003671418950181851783350452291736586776943871376833103365857845573926300595832737449746922450388642607203257308849741533840270896300108163164486915308354324598649381694426034793690021938117819515890409278817021993875038930741368429715146269295492257240566851620565497816423547226957192945619381428484027467731166576285970316493478689537055927431332166376688073689726162387098133887040599920148096507820391234727193525321643600840735934443194294993468570828651534643561077343120483842297756238865380290657450612228627976953957188261789591085133740382285221934261338847560149528181007341299704070909894883295699231649153564968432662462737256600233566293180965611997111730356720921108011558332997189048806756922635681492977672823452591934882334356057270873511669210472624902107666438099565191295073460218664050848647446812017121347357253203216962193837510532447451916712078512094578030128777555182346743467688893667817399255806746143211509787113453286475585723501858005154157048868279536503290839391757768804130452892564453154930807118364777125517213072505539886341956516998326351178692246998016773984515540115591746417715518526571472786262501034650783693144211120623084476790600049102209218089128905387827917117804459641672262776179025566199576973289655187830816172392022615223755814143732047288736253881449147183865360350396749465433956190067556882070562647460791663078357718512365320450778125967770540806222591218414916710706417732668052241232202126143460641894167861603991941458826348554806347938010567259167232727553961319225179319166033986702680956815241089056644388693248988252374881707727427348790280256448794229996117943822245975597591164903622791812665800051669092199577448971194519059269128049291702266103861225632507941146193087317653980169912454624472013700761008286949461995142585359322990420943331537560817496556880029502976548960187624133441599255596049563539852238301481171498381636222676709001727881881196182306807916325129206396570446282881325452906218502808753055127282579699790348121093864123619942179371257838534741330553804223295389988688879244260317974676851456647422520803063075228197826801247990582523997602090721421416378212232695520075833307872391473067460208209237768112459604407012378749566849165686590360944437732265853067462630401768483943356465932237984830670851030647201778786991337788748354646778482749148918737902295552279470913195997018277437172376574337539587790355781891643720320936138302218649063034683109684427246808168626093781363641740270980662708511011803776363879774213347139681573718529284918545953053496424824108217537796265872558652578085375024365302432873686754051089154415058513540643230219510831381056135087999508296892915195423022470038847322769111531746138529241036283537249385470533514073143114656550398600986909078257604605507101621681870449990796539722281153472331843622603656274932180074973192848371391687524948179358455632824471724656914058774438326955147946889261683940111495152117622737647657760009575175023669208207183873260015540391059767784078708877265376273598958887487979032372398481797518091044646985001740701443817178285381185949277863105394380936581699268828298142372056438004933782214452512137052297781635844143283900869400810100026091538287881351007286781309835811834314663395501633044540765283618117768892430333058321747364662942947559722402059373308080140933277441533165323566441318253617625055250788295680347541329747398141151608344954574532154890919840192116065806936590514489260059885166270541763533579992818974139963268777366912968793666014494829476021710638598174966995041428285128894203081271609264085550009868528993652660269457505127906293668394416420394374246926011083913795963203341890651522527194318517873853593231350768025131258329222509093522163371930288766140112759309736210033011782546762258037793462392908252457779820688784295727490215322965177943559878492725166612437992685428873661044676257605133722387607447765083172129489598808604763720253085842699385573062220478642669596872428228514524799137847944779985622914282677211337768581961423197284582141991262750929984313033728106700507621766274645641218562344122042856923866775526155613376784143999617162969532517787860631688968638061599563974478724913724113377332522911227376476457765855773748342989453771578608710885242359648609247792273372656824833170241749466816201518084857511589668035427341889899953206277729550283413222812082855001377657475141217473467443705144168150698696154672935487934252108110811162751642327788135631882585420636310203322262405338671469780973423783874728687854329718373220400420373568205575151524170962534525311065609267773809833378790712301349586516117902983500098007477411081651920508712460344389398523022057765154074149298238764777075991077013746466699071746083160310362433885806979300273102321122184047142230872358064844859312790690760943773682797178608378315487090613222169980756369398817616462938241672936390838753457340024531042282172950946310066453641767635621958772776644095753106041760201310238068945964435378355460592292427609461477987685162905456676371179960244707580975074007310220015570418614706137052302675542048718209851133149777024373243335171630592490236820832229327322161839724341448025053526413864700026268509224215703096504266851583537214323986319129514863770740722164083438620045562694075007565565637681250226984878476390622450525200237522444802803600543267870187506609735452441666388944425944205460960002107054485417893017620782307742345184901315467000635379838695009869611576011193828222467313917921683469130100432668742020523062520046785616376408574404228559725089752048836778832689454382017962482020887777862621226142451651284049133255642185917990334956863679579988663115922796298551590086341773407984088875249795079707236977225845435686745848243854125640683630902998080881173805798420735432480256100788225071188237372607798314866372920246452361641125448141531512839833485994865135403114628016900180867618662440082338517928601550197008351083941695421944258548402354494742336312038175171712588844660006471600859287753088445114211175519265820528438511098700408906707699627423623990369555437731708887696554843208982836616348129791814943176913105876152354699039280422843262667127730489115223108847626890031103620950956580564010871222900308832681596004040423671019549404521997270982102981037035756429587024580771698123754716587923579152466654771511042642653247939369457803346566460241865816351069590766363774702981319375656733505470179076428856625331479349688905679107981692115172299445575626174752291224914607716113832164849890288034390788649962930004457141262418897369734687078863679970068636610266093888764574405907773051347044071565662972853792468490017256570282057669941392964474619793769517056084295003230302477548617159608462440960026803538391523039593018834185729286225231545573217219785769695121197514990960397905205193715861393218533195477963767059436335777575869153766433696066510419608605106943713270128748160950760034772534880713428431215034865814947507776764465998790427409867902241342344953770869321302864459215178450691082116324311683349898352694802981916193397926956212744557196340739768998058435025054312152029281977125666607311112747123630547428330586164326645912328028285292677452986456629500431336003958092315303196865790442841289160653621498059831545782726934169812492309061368330226409198320581929047907543125123603918704595275695560826563882192770255296909573367590670549491958427560797360105310174030285121381616921426376767288629350839894434620225538451776683916214990273279170998580987137185004270163443961605575671252362760215553628308900933925661356744351788190544184478710332067002152878443144404569358420382818189237884586618805426597488162007569381029941428400562647434282619670533718150321766722174468262492019920531929592847875489282697273403028449509618542945093207333521386390648064342896119679141623522548445318395855751273788005742455506769027778685914869498395565128628285873113007565723739486716875109825585241706416034230536532715010171724094669381275734639919407951178189574088579886250044651103052230270049467672115839983600340561613082378710257541058268262042296243853722899858724484047683835146581941247857053503225411972175301483648973052661122849198210806771059843106971065887450656518652477379653641688527505154681416860532192863781708407435151369472601855471626553955121341901578624202470610971244531212022738394932448579026408051793959725001075990773993055794753680878314670234075472940654496752320586174768353912254892105996156982030469765247099618322739085514450853190242699063143709917609240258775291241435042905022926928932203707814331292871139438664299055145458274007199428124617649593172616079003491642671779573051194806254844569011098348667192706835822175585079964020363694656015161970911367808712536781959330038855687731982673279636092628120204113132888094793574537728288562883748829873080390948487743927218245444638919873544722087977852879926905299162412388839058388790415571132980199784162042696881475579303372254509553641590445857345295639937872064949201055566357907589973311133912316962579450016943154589735521899655112895202579792096554184039552575451322983914642146473169278424177016281999497766401263915484264419200067657069137389898351155131285959730930203522223158551634205755676213668913902530627490424117749382905585676811296200676500106112361670909366466493423719448142378114205335230040262701906046326474925606518001087738455617820443482402691772403496237974639924474532577607057435016716931030936356247028653082809225233136400431565368918247332707167291604620698476233091686349849768233368650647459315897690032106859524665789626695591357420544342600778102883613086861078079771868916492667573038892512062780257662240803697156550390549816708702133539426505820603818648123147937441325366460405952484937885411467255247813284122017807948014531058107893689696304199870238942740852497892683084309222268074212647123379874504390900213818370782451732136215377061928951444833303886019980171075020034573200786798768329848804538347649874949835928583361659781850098876540200121749799301422362446032310715779464740707472083764158511352969915122304399351195239674050042117056529660434139490142172108728797800345013657064022847698261210459214439968346679195378689332696130713461950561173554582997113744751079486000914428718188291085694708662069591018514400192585379561898139241092455107751141018354883626994617379603071381503512926900665844996038554283814489269945432449065168679195279357657636505871066206474590717165370207565672677186397366074763018276637591147049106188417607901986033880086789710216824544787504800463848259335585504459290166918058122228373885450377517731289284284761416318567615995474474316196134617378633530689687501730622518049888960013547882432616635462010863992591073454017660952083625272555827052915127938190016850930925299772941491104347782970676195041068008468758702679727518883189659524767124994898829220727966471580015870427012677230466914298947148787917276722851438445169186170264546627414991839023155432880715620444556336127916652391293637502018692241922687548574170678849368434425019173229121630891010252437425596963195438485006959069988504820308057826616494178001957460073335468300838769848594076541325452205806079706772687406770708700062952664221366147663630789366852228623555687852993133111073181938921995262529511371756199998462305729225978441417851839104443313135726760699855905965193802854592942057576166499113872947561865081654587228029248234498692080409126083860019941445697490425964303683975932277772310366318777856076929796559344370843594660269888814260062002577141846620657417902907440893200680126775880322324701021093980721166160786673642345338603260353165161408105232823002956556887816491512753976294884162638892790506211014968996585622878042084256971133838828776939860698991301482071193784304187793711395451501811467815280368256728523595738553676510914168475308784843277770901659854867833269958539044788135423507765736110359930669683191098647987733552917083619172887701344571932946218496495413549146366679761204537368020845121327763720864584143173765610388778433442772657610299022194142590665622700522895348328807926052226036050928066818931652871728663188411314436768692494988884817722005759855487845323660223527964556367055073576476984179557130796501245691990064199363628892961967701872596929157366092607476966159576067991923165914650374682046593094690881832111782592910105712836278293629947521724420864871392941807233761213818791508701388473004334426598364009587211498974679639055620208526287722453718304333787677918970168426521893771041716028710215269803347855933883973228709242568799998539414623906005963462275607524246017247050243052518229589308128857403737791856978519902576734876099658296198716896626559201268594523975700858475407768715627941510114890660591286009039266061793623012694639088670103374085943388840447242137186507997909672315149871537893787481151422570328614523535794381173403833337884545805995947262557538533431117638978117213840579415073021616179003923027213555038037845286148510671564019812220501539514084539250803679650750892986992534511325048728288117815662450948462387347904241043480982668029765146287852365261333345873432788840011481742125275566059126441921398154843093091191075395156061818131104336603798685970641268466252942643842351026864850404214077520710909217437789815411116845348582476960460151493785631715482597163822939313904927880986283904468397658906564659937134130844594128283897107997557160602259291938114195167031919702882272625835083120768784503808014233760273142429991386965178710175418849518944227681910710248664666265518313192434112097980856710955967205660720992309199225685596200719011746952780007180061373345440280093084659765060866376345804693745469645940989064718341656047734575454468046192313136515186194423562099815868647107843610865775737602629957339945706650980854049683817293792000101474585899731033492881185386599345797506839927397483470426652424000517555039114252827647746579812540304283154026338178107256926644369173917293030055553218434071082943827970023563596325011784423223607685128406949969441106211745815440441211353653982148380438483244370317773851270942748581009792730841296477448017494765082883497152884544229404938607669161537526364825701532569089799429591980319387991728216811264047391613072143544738466051897878079655535336089196733121272994550250076060137268137867524237446213957524771470020204208573895337489701575163661397602033826895443697153628491726109735586490093879202621372357502402595933040521203587601132687493992327238629276418395590096897183451626044959324935315502455718193775520787879989103472102898510146057765304084686981327232142596014137063487051254118506995311108136733718062527200117205162812492146633979915142426344265474324867156079549607490636517246716371597562335884751072379679667873896008009323835208026969835286915054203773253536103663744300785869697559978182522316285794592906983838281485060214692372742809349681808036964922902734258896743863553605851809777240498067046926332896135356716598266513567230287708676303880545693415120896692921711206216204183930285003727941169635359369638568662407997838759674027451742450770019256831350563943466494404442867672767564722135453754936535208920306346810070789525346589856254000691954255219308431290200360920764896284579080271572875017354005149141161036172651884256028046216045638896074611240814141151474299558040130963965674016273673606549370399802390895735703088904284153746059844596040265664776232776942444220293367899458594710186158085307569287678995072188106884107528463636403634552717881594075574400987597285412285708082289703909865115558871528706818267210860881986791162472498010459677964083613580433444402860144170663609325161200237232787444675608175339112132386585865131901802038549255128918886894723454328149313249717501247875510193426871979336309026463480254486326062612187803075701694304957816565119156611376632307326636624320262003158420432078034741340889565379563910388736142988482955765623673322112567136537929921104491552657518940590590707655064066922651337720857633335051187852542572739573149853144739748308736828741036572101561315066708137679712037088256840360324466804262971449902570207004346423263579313908222749499388184793674019378403910281563581397255796440398213355930352893638034420649681171513872824914806366930199688117279340238527887177176437428811635418434139337524325892184343643189677749011649763387387736251187847542486203430558148037623178965550338080330909897968774426655528647805513114970199053178601850226938979849056075693303634012055555622204332924360231200942435661066261908195695364766760013540651002542836963096287972110963927770449479138697135976245496956369305864946473152030155567994132059586674608426035245230675099148712024003716129358285883304142880840625956213227342962804240643853388966874612477921807985166052424344251269397870905820368454856665062938654183634864373631271700035185905813071600793886588028557456281787887479086864489353474630050563646956426089088346549870171747123790644337340630061075981716410231311156401901095633843597144172736365701837934219744447608385086480686015453117730517434622902817981237697975240766165915338051369866973962325998034872505338049309385455117875362495252377257710051444501157639105757867858334271785422550711715460106876794653207806484074793200123581862936000940231652344455792022792368821807067651793791854559604836824418769268574886757021055063170865058046189251420400354246013403225997917210481733894364924863241187573984270141329359748920073467621900026403549694665762939962656055350254740612159616991056342588339258085373032424904726758053342001101624883961474706536838595006413315889928122036772734010480827284281550245912294545062147310668319893464674913317410653003456164771218932291393542015839517663706066061025336707080927540106798596824709414887086124190836230046730462978343024772057507100709303533823512064703876363167036973554735056092069111011455846942371034810839973300565084974931434754482392498587417782004742980143934202990750261072775749895841736193977585110244407253041374733245990980858894466785389644661313586727952854762738686096621912729670317957829018231384505115572244082632238560703647811895280920466616754637706336582619637861401871506488390252493359180804499202372275859685521217885245357986035909302163836139415160242341956654123573167110050687122365688298323869841907173850460712014180398074662484603382868687792310715723783200696081507962273165728831259090742932318759513501108863860552290914861445071085648555750663724551958950850723118645613397782969900914366745759489768699646813189230620992441598940197218467837010980330275303644854892940949108024567969153083334400213062229138045938277550777327597753641494693939317374802153932992404476235646654917620387702644971193434132078044034251897028460472095163825953828443572606605016113214967178351012689458104382953493038889468959991390285447545590428210911009917407960953349899739989634626045833741956567561571712174218615187473821150204138615626163464424967991513742048207154640758500819934470029855223229367602726668295931898573411729474674176986621095940688262296113289651472354125624755349270324055197911943126109541913074094635730148882900397137892651026061679825159947284626370346231951488773748359124375557049492362726266994489403496768869712639993925068010514876368586431397016354951498933006431166618112843512314892037480552662185304447004037771196634502799958533819366211989220574744476484427792528016544071337038464699767844107571032993839484737133399949125415837140943356693534171075899649833514466536752838283166997177375219987087878791141538108190908542969583630580378132573226837706939244719959762754181619698817309361936095671475288242637850955622819968102346215229745247642953027643347848488473978401464303507616472364501646894643187562726320329440855037860889307014359605003605759280698848195337074601843820273083149252498417805240957975993072725335113663600178883440642859433318992093935300010752758966850659269797546285745972155321713928004871100886036835768007990070451154026228199101171194664712137113985197776825464235636920126717417136656675877815229222666312704172584037504741121220101385785336501792811119468871990190558570674726082994927307690461882179978081633632689132967818209624600825011402904698545157617326665750456370926252397489587038040059638672887542350588655869519633669789523845117559289065269269886275129628578700701075323613280353468146194356816916962349437321171332420608106025073051039481696095905310063771326924077784859871168192697591564566049716562737936967951996626332908516947844910398520851346457743623540370177889605464392397422358610108656930326192880886724931320019610755897854006341522452380884855906147048702260390200381009351059949684878390653083513663778377767367175048845785910993286639585490572170769972626620995411940395995038640876344500498241944462886092201710136192695173331270431603771236996524038458987055170364042577147825016178742664276463833600458731166456349308346336620435039906229296710849665582341273854586449404093307297738515785788834287437967474637914707000118026577791736394643445164786908568038529940812272889688202345455677090257699300281189557931114392407788501248784181608919205778831014323341416091270323634430676778324212016295552924787701568320304650004000003291632488442847976764172519495503048419553033761541548423003057433017791621069069456879886753842128348577068930935999631798452899450352212183714865215735309581777951336023376503924770042941667372256350155907235920425244603320171816209984797083588974860161504659615607324606805920669360343721301311319032987697269973145315954560081805873447973031476150787834150412706289421935556634023670921250216210608297268058538731111873793679060193232235936252184326763832278405628448717833795663409806143722829571440027477646330962872952057030628946679342123314623422128735950881680613052351294694648417670413946820042772031771751830679852058016060546012827841888919589481601151454904448719828532818276771276082802416880468954497022582116518079929771599199203664703409409095850512347521473307947511638956878284984581389093908451612515667055824985668228726663897446197832210959652560673298492493974562622774656305839557082196080706276694551692757935409520586853686516075304285793027284625339356283189323275521624994410521214388565066989087621418924596311410599717567139441754965916280961693747965119405214801184343723901939220266892163308914710970747551861811174543849526022036432969135552649541664136401901256936556797011629234577754374387883058940445256481662372079404444020593751323510134621937892918710420722122524454393587814961703506440479015987292371609581080328251869416725519535178841533088392535022349177134153055199426239085458810755484147692418159570469343028787397047332474596522087106344848623149949472202823121612895051322786526614642027108341459784540866628390738532965833056685595742181275891040407874354521337280541074663861238134148831692337160769130740182304780302107982099101329737336775263707425161299333199126972022505549411521488261139032509093068806700113326807092413184007756495384036325412893759966703302043018182005264531916457076241693243614438127557813956575057781566103911564797185765225640251655540437845634186188811576396446304084169691037634481190621241667769810789594469221763688467047750016092039749144347845637800300649904020110396859259408771243161319138936621881648490644100469758187922549658757996244887660280576588754077311910183554523449262062300744606521754241295286475469699048261556985036680396998560225859581386050507426476089503639180626724092500873860243819951329399801215254110519923898907633743186870483364251535882127225346083848283247029691821882721272581713889447823916016030375426390166248357266748805265995993214568222240708518452565203096700337227287744557428465652651743958678037402221994296543574255717976219567045571493896912084226967400944052148101781323563481052495954875720010802414510872686139212659485907591620854440285987695742601385074340834272027798075174711128879693435462533541670706058146351638656360580916836582657233912066720225357516971086884217785559431299305922973708254411912502354979019300361956395815223910313964281381403831801648664627169794939548838993050169717724514424030405154669370266083643177378018427133474544631168705889525703197699402337848315971589139021621221534336932192485902829354807030263977275916401316422290799529437172753511081109720916458060140571363779867856981849385662568846189446577923458080542612570957402732305739322492447432306703548824259161219962637310487566327946294845984553981885086100631105074976364363743087183954175787226538028532955120297861122319211464292930602979018568657110270385469436625833587988953345639016864365521990695634387332262525139782806645412497000643248178646869123834374362499147082921442644128746057682732533389625311840687344307178105384183703363954452005786005117904731163883676121118964903258623381818257742197361793976576478961428871945690266888475985375933082558513645286952103814181693244339497946207658520451915016422023781279298361301448708486434409453988441321675327544005906097907218388719111445519400478575834036998067409156401108540583184638385923686832209976419866066993462692223841315042824637151246491655607267381486646233331037109630006109930644051013935335798485850515928272101557600120339770569612725372066916776181489323323147725838577548351312068416068984366589641182012218468755047536253137098264789684845668452413848319841242037691816602587813132702317303253391443467604688177784710105307398572153937317056827112859651231283573891579584661230732889377359848091134073532701635616871730288752363340367476354398316100253883093451227664902249291518008481609742045241636751532764089000384153311562077122300326108329817458287714907562524353940714174073934576201189325558903418119007636369584323885294045517502415245633325120751151058771049785171254465636366264962948956208149044050874464813963409041564388068827712948177154364523979942006295631245114173088557678149013125491689810721823129802622205924035868762801975505201208006505807692379133723069820094639655713994760532546942812473914148797227713627851328219553334459540615984008353878763717389758749809570225345387590828866030005783239127728539617623297929810597215556674943353609918136779013713333665461217083283177152362692714608355559973638107207146922623241570219003061627760852037730475964456781587825383173323663378770286674527852575721696788584730628749918790958754947482437008962039169470985351477916716372184837079276745666914737557416529810365725690381666158928860751538782091345470705256597322851494163001197514640341145198151142173163340020591562898922495938003785253156619977949101204756663352213236493554418896756648149583636117898643545212905580878650575169200037742637530197870220735590787292623191514960489111146376664266977569797298999270027233171143851581997472634033894473698121390499283374959305692451337930414000585208835963273683757298219237430581653821105304787832185077497284058205556582356999442999297726109687306194695838266770721805493504774016490551308957126565245667763391662779409255805136461419052650742224837894651848683757760583301337748848299494106985609689959915240204348296552199377277593434403018414430289090393160262838756738952947096652905461363280573554704253813659963204048858554794531299935706137933330406345083243247014561842942282852668871141882995620575845689222604924766495028580112694832510924133610432234748589561748754725681249658241912783000703545695201120421269670313843356003967449507077708055906991026355866453868982773291150548598229531749267747000259866461026005767205183256897334212661389660286407113234106781736802525586382973575050647377078880323916652637204851696564652714083161710238067482526982439563404616338454036296774340326844915803027258697937356706745421772748111066252936506484160766511992196485425943010860380639823222512614912986527102178596988445097761255271582559221332040743310408077101347881034276311660901523092711297583683694307377852579910464730730071753483874835745284366985986493463271598075781061645236012517557319444773394629824518354261624539096644336311034636915695139611167636018945986123141639915194728560608140859020045563814995473007202942046422920469504327445371589645579432728657159974932793612861130047743377993370289618650631793686853651077945955274471890728775183169730138205884096129817634743554473640520160430021365113788240925924846320929192970876728471805007101555068571889577595168899403844469057605255975320508843604481145611187119617929662991096364634843298157094440062743876135550301219854401589465771775299318129679194922632961972435848205244584815531871835482995322771781625967762313409501746142248602963350412465489009580181645764698660390636846007351046844728519098573181460428949384425753667319199568624509850779308187625124631311850780482954145370405457609440749000305068348280029146548758493676227889008021587562952505867966190733641065629126004332742753726344698814940388982166391517177975181882505303013103285418152356986699363345417599093352586122374605988651407494494629420360257221070655775565715741301707933482295659185180103091974682173205052027031395934776793228886934384648972247713969019346908364563252944143891212845100914405161780798967997675084432347151136179769342474518158294935600577065565651867540671664563949802182625127783039931394322199643913842791135955581782222869861413588263040389210590020933275682274172194307606780712082069390528435447975492431620996288775997752677901529036040331504689947038214551246045862497445499790170109510439965309983610773639505278936291177805378215243955888499147405037342254370328230303916760280317013871229954609764397177912499619018617874023300539149892111761485319036206010732543422727967375691954901329511443851937454553607871914802760817277695303905376484738482064710648206449643966485253400233617916082450554944341062902643364541627447677852350474840822081255762669049212891506899259021719384932551721446322114164998787822437882764445118017373272831242516913748258933118575632140185507919131133532292413814327323298211282315474687213468440302379524213068200782660587298482947615134520158804599229532054679422865510613305437564905493327151636548063830600373125708954755798814334969118278558393759375378726618194220130379930375262555918713625277750857415235339419703717585788460131893991684970591452211540029933947491723466960013672800256673745496537237426048293941642385796373113983880598509484676613352751371632079399593420553999019721871413839061744673683994228623583515465320589588272945381100041611553480349147948624311849367804503834136024840640731876199068211278654745957943967154507042145901027030181733477072250371530713789828312330629704240830007121605471017438356749476238812715107991274592489078252546313636098204840430854646065483636850235799439930699640487831355177477483250356576993753400833400512049765141476560016273455243842259394892115360572405318690059028580765810047887384648483551025147296811452154042517247011108715124719550008859802726139958475808208746181551500534134803429822185401745489086610665304791256172961946908323344869917365157842298505507814496499892547445644730207711156777522397347696711970602437742102562581768815732950848781961301864988034430541573545601641908496790928349113080349282000985776993392230127963214745798637956981406643476323519063091283115148665038366933233346923219861570140963818769810585193207923439017773517135314454670446739500612898118449691057258988347754394413933457030188305401880060381740076999516381911053873835829988905577846530334961955213804170270760527055985853433483792255333975846869329394167408530945794390926603888715826684991926388983265291667671777013377665084133126753059136162847558081234031672368686080344845065287058442646495586241508368696225163529083592590478083419534417396427017035173656731672366801957908256712641860025457537814776845069934487430781258819288229456595531520585571350000272773677375645508209203890199187798284523550764519745723006409910337709199394041304139506594944371615399858578055407229063415668911706582073204143344337523162471146708896617947304334768840723546744239746738385972031352126512411814317961586176188820793484248264165222480178660610309488420815962679558290864233260890206486400915503903403413432423045873190535243905827370990574322116471548965996142113577546107215946699007251978067875242319874456095366544083686531336065743056861004828052920196737249578516643090621299100119497267402000733368973529862698392790446143139372354501212520993653389788696154474475883240166896204570898445311819640310774965885203830175284642144684513003493380174657148992834468133635674829474267929406110693458947204475466076095536966261904480298593414843253469810699702337428658415370710035029051002489700682369087593670700258403452950145702697440485945601294053383154813845896037716096812267858093452833310894973697528682489452224400920377459960114259920433540977377416953198662211998101927489731889160076948452773738194048657844988469208468004858497368862377344218270003780073619496383652501553021519425206613504970145008689462621542913676909010668347163257886970735993702676054061715720557109600976901695816004446078885330799691280718311093577159070653238639555968532621106158614892944831588493716089287335205015508515056545495482855384001908077780391379656129957832562668085238906527033798937739172664896920347043397839476278896776340696870625974447025759553505314626238734193072822625590704794085953260163714547847787297915130403558165794869667531127296770344938969693871601640258882632411210387506452561562399046071120848989632940798139708444843420899410342558341752891992596873333374020749897751463099734010522828973060679580122144583014015420814982076592198149413663113012757354223744149163217248711285107112522859578339750997635233340043430076606514223684747399029287771445929674158365910780333170893038275466240251282656977687875321220764164998791355542371987825597536012858377880685615170599358405932353434514053405295951783510965961490134903678531981708449033873148965979372795115088555706809793577550402881516775967278213480502186587617107234159662505883868462737051884431197440042977265581956764321932925362739272453805613064856978978886160826938155853688933120280933257724641248177797816227119072462641953393217067146303826822555835708012943811425391873129680518684227700242143580034898117345642473422970111342040878699226606047901840551444324522715996892677451032998965013144971426801400092553906355129885483063508056608272443456834730682826429820327214610139777391445226064571031411575537381406090129107137966605219453614857889271536517735896336458231459402767569487953426215125145807460021699738412982693958191867286121402508546776300511533628190400681110373190161425037304252821001785379625831362863310772026119508692457820604186991737313604325752340468869463205358609546743437907661327035114073831981011668684172576798618371338276512432997969725916344357094924376957590310926388627262832466152026820384856888735940054204638316181416113042478338991622386387190313177450976144899553266189806201267629463675727874985015972209061929645318260051440324111357135888233082511137366478193958652795444682063473187535154180012086066451782700542905603724275962482184720323446171634863100372685563595839843282118353632639496501689864886284888011311155254756760110480644735374898342313291133313105649366134032601631811767600299701985941944193384876399296855629145933290020855578095541697797618941810309967790034023065771235522982580245173237548977320018818520129784288754242491772983810584601880726340731518679114641460591743730802733106633451033705730951524974926115077469780626152049531996488436657345672950963243810449152694494196164957639453390504380035457804170850733362970832161959874601453100575928614487079943331816421632790882544189842162804381645739021107693565803289813324292622234090586072740701182554162353335457919009647623117884771294872159828262433485878323367766624428124805136353366215251488345461433242308477373697828817702559962585777896016563249514721846961076023156421549714892903539605730490673289140204924863521844931756862667997264131654264993796248547064799244411933044500322271355831437463588812941385494103066428058021117567784375363293076073156551616312514024382059636838093765221758901989388655566588677077807329582780432956562309061336577588804826255526135645047413567736433344381204329009643361704064234896842475011597888998307885636203443597284989313081168065228828360051192805030809427465627559157965597253849708117825432610080821896155849497651251424038370497413514831246085666541655496088901686242456456372069984391134746415675634268950271476622407697098501240823605865990557624514457873841299846445466235503623588956327340927960068811182672679431727419481446650875834393329922234707646720692244749900557809018830211568880944827629585841620320879877467809731002203196881234607306142852531199543122787668540687848673628731644344354501639381892891331491052817279555753624099897184890951932314883340532940785124465638319160825558885035365568165449661315709846419463692251799907696862761911324562433161950017599186907209485979688428310272951406026805288335935679089293215354043332046012695769355491988561309609739490789254113691927677370472010913094970306781650825242902542164056472148359944601187276534057585707726675058929015897913129940855075482909288688465367984346651612150307550450364654178563614516053747065944127313946289808038358169854010473475084537121463052791792009685402559923129798515102412543484275899567104240006348307193590525002919892785891992472057482314626700357548845391227011594015438090615721082809431522860559969725139484224414531589805831363911283236423234803150076060542118372845298115492740891540964091916136124197094695765975311160830647173736024041693490722690828880519778183417986418313420905791111658423669653361895542209357662663528043250568364978888262044082897103189346142639983331660171106252177379800078412183652875291171770591947579413432675622819772379562454016167344474408279452240357927256157177506035533884910343309410623767788314218741514767591037833684535882710663770312885024550853363595460070238708979642246391139376192499479215904015469808002080980684312635684611930850717521448021515943362068760521081693049337170726757615930258160198467593975898498734009071836223547176322649983791207769239786754092189941517679544722861429928153880770683167828355414028423534924229634014099866771442822705603793020009959468379158388861266500970824686648093054021685130576006840247408007331328204095359426327271589348043213346667897494863102705128412978620644275591873561160773377522602940525694093860711962345596834296403507897538566571600941756911061065906054301188418837306937185561975881784590036382813335550421080892660956903118497646474889563515173123180354852547538717306105136975413474773784780899823044546638962226805091277883813841212418076614049739618616811977085400836859101243453851630118160197358328194958314212344810123995058957746794206393424727582191953963156724754228868040853209500794272680646373724797973419456088250527885706412899522702209103081550299692477250566910894538831074469149457196340707278154760333740156975968802460033191619563356232672955395096334733365880817109617383588193600951129290126524550468771116265455608169885349097216683032476171650596625088107426775124736776764018290862936404159527685013567240257423072854649392152467988090758048088048924951373466005709533840543433204041795705040601926447943459394406486601478881901589360702973297997241629679564410084335800582521956337781583468250957819991432478651602573408278221465153892066497977278255544822128795139258632888298319808212282051178742202292424605699041558795125740837302527341496886183289401239747528008483718338308227793636437206669333916176659937700620894150098689407287389155979428113820316352525753025417956124984524455250916301489921492313272686297988815038870453718658763014221807572567196699853432802384571394586679872532586168000132349784578031382828854014240473355941517098606157568634744496549121285870566021124755488607127281191452967561721297586047171693329854476877051732499387560268428530889149210065403647332234283069262062686665070889636667899350659371708593099106066962937438965655549680759857283479630237930339821758654438726057423666082030311585637039418438076238363477065637825202618740432332246695637084718029710805003326698414741464278702419893448312803348081682281836543403423214078199741556590490680529542591270679208810102470668992371311930419736838536885995555873915573561084360949593524057513684131288570131082507513526092847213975064673169897338163710106492607785988537176609269568357562829607066892463625756563507655063407436597221494089251131890582079277165330028492942876453218656499603419712320462343421699900070708590453293270454279066217592036988454909529316188005282860274947721016335763109250174997088062886542223450408219827099095045774880605622067526311892993526014746143787271661184355904179272663553353500993478558626274299288912557078003207730920407842098150624982580782052353916400407943636279200720070472783270079267570214218213671041344522250789369886470712308724702933567604163063703752104159393219606909165316885628497077631186105639757591154683758198305173330926376127644677956350823741315292690434985254496256434658195742576450695178700079171133450103907730937901429729986665808098191707099353699872876727016247933709034410434249609029829847008581882994492959135796747316624321019761834517740861551288205893682842210395689896823220631757864662413404562422680674993203128776545987627566848021849470484277860040533107593701306055861401078260618128417813074727681584001523910973512426012602732803163695109007532053872712631597270384465834112046860881624507679756143622932882939206374557658739905138277116369211495639095095559515890234583075713371503223027512240617100407690024400625990133428612070368739766883194554767611096466364890430305030024011675770881917613569911138102491238646622972892245854225476666398610248109824278230465290966174598118219213323008893809713983224495971176677027462298712640868846628441235692345828891553488048324371109012364166434234754905513503348179800664123783022056682460927846035474071925218501078554233698964076666264582585472847652945260295969184864056524617707173073048449309532031290127608494282878575499954764435198318526372913759225554459551820810135030597656626089623157526149247643621522650720884638254851767589664774650162585506592525430076376378901151830623759384525637434398530193016469125063257904388192707832131846251010970548821166163072509119224423526506263474114925409659208106262300095861080466300566383744892843956837293383520994997115210278507344477743351729564992418065393585997006780089998398386506157579658039728649370634021176797965722876450453399645607670230595643670225977837054611281043956432216269598652661701458230302258281306114475250931373490494468536628505799279048426067940588671015551923018726699542310096353414127350167596153809754711443858978399423074638301067020933815600110482732815488892813423583792556593676645445568803753813583443045454760785661997414360597209317170301635303866555509466183488631514414045586429111678548616544249536347642747256682910033179480549295192434405674429479000904821513450855262978386807646945653318733500959406334351908690922184951500152762615018737141920098556448199731798113171645184856464544925537578912383279791864332468949428593669309360999636085760139068406685122851529372383044520783185884993330650856035657873405808985400903912644792684480521760411386551509443034909181474494429609517501020185148961331446104517526054904355316003263510539889826121415763240499659276759759173148464542094551376956524852501246930515234786149332663518003789732524349040667652378870084450180333218089022830048276925551351455967103322349866880900516406794406686669049210298941460744579452072105862485097977881762945876585507432440537702957506013696790042050438047571194840631452497852287147222769753001139116629192878275645844248063711744705241366332915819170425945633712334404400916862986451829843590513363514795688677366401173302432996278462590093124923193469449862222781276086321565800344769982743158077018418758569611755220818627594633314233019560664140646859877954046730568062953883300752487468758847555530721252835198727740007973576546475496409796726001673795047503604194941185225999753679775776090036192186540808287831018705731636661016188900112368063004831509754601159037830031672830998210397102934433139399506553239714551806984120605583868903985487905441227068359821475175394212038063096255761034262355276942356098634213809767495130139981751832309067578785931392786554250537579921317757669572359754348975621812620975503758125638225449090681258544842336121665370745802986396832120270845266286970802093194201824897021787720277789717270989566136371473455174536951758121992248130029863566052323812810313161804508317409533236145506866410151082949869751376525149526680858235597291465270988599830737388751009432138252184622965997156868086465512711070917161177308273988294345558311030453061903987981016263768859562106629822610159380093406326818798658300329572863334215121615782017246099320212906736992813069224136964082678173159040588532233165462155372861764226368732991796129449110906071534478007601943410076474545335861911073912861328538984401702279322023595703490938956595364189211765074153636987011297501674732132135225071631637356425425763190548967388932849832536005462945680498229140841018339665799522094769114115065603752055346954556302966320845466896991576908083048256694054083126637226602840966543478724276148447160792589360217063196513608805540256692839643933438178991006437907791917208170374050790721230734254709303845570603226945819455687845224501659785071137380253737457639938806576482654207979860333157216550690852593409185646527888951851144576974619942106899333768519194656796481390349405011908010838622928390473156103299632932309826337713060589415506955526132597145722450674742965093899725807499854981145159648621449733969097752843071400525600259879951031412400883993498620733129303808446026007938454316718465017786825958698527716310669649829940292773988692265443172384910287723402817160752631502521382304876542285317107659470198128995122116278666916247198017943088899359612309181328270950328944472055736832209807828278389737688211062547331250017112817452766355652451086093885978782412652700096395376245056405084530558529282198551755499521552848722565666415676679265516813823226259220145929526620512750605963061685122939318614016014369384636456798252638352119644574208775616660527490600693941321669362864031589933767506584443477054485221915681896983191640332831216237732113949336626709405747917836536745435611740097427657279284414615478489049077796977098823226067822945563775802403173938225709371360730836285758997888592631388522416674366641772699852821462329643659235197053838516291011309917486509447700433986980879776542570116715819017157050802947389813318576012651695152031289220644021639747843653953389024554271235613856508241790126281937328742130080586089373565263069783122127536224171479967781135184174567942978351151041791322942363747213821702267412845134350584411237582795897557792655396161025523520126613038626239401034910092277155582179424841867759627065610654191094812688286496561600020080973411975947310691280285988433307465194694136208612135861466294634244110395792193132736909052823941953998237960661245019534819115599008614340259690434608989378389046253954089612868246052000375787119834678440361814158504239358249401485251619530506622955409790324195631951755714944947982596663385191032680799289883874265237430514323068658663877877203214086154702445090317195334475694660281860553683328261511440149479654353896090889091930999206740437410731259390968661634220711522946311643822943904690147716337837441622821980408446354153669603674297663552566532728105415517532332056208306593078663980867580623699342100945829068245530992464617269938156478441511762300378860390430958354865890003071898204747805754699004813410224753713395389262972410695704274006516496952505017705258324690285551519375732612299810663537546467160238978602777006637857092098319273826778101999988060858831622058532089700425369943842193163851357234583279717277370778626133104398307329729075589424644258538804667635770039495193774343099257571807256497820742325050933110648908567270973205204965942769982357287192054878775672357923201459823482995766597709011995589136072615182188179386097142508976291072438613493211164695100671762748232084400326460636704530794409168588087483679931162861786454831922337766496239885515740262432058219492446523967867369686445247374277703016232501628081424213667233280246627278838149120283047494821122969971633006582404282196993344800544948913740019600307918850530748037109587911010521081602298990797290011822775645471823612471124581346748404320844881687419470734292351610313159965263331864843197627629289997535475858227994882354895877598352932887842047711638952138070056815982786676810835548170409927673978186904607452588227001806891536465566745589355073687043113711570877108131552453166194820795229926565137113639267218319962878245576442084783017529476966970744638719330030966691599211102971017878614208314096537938924814286166106771779219202057789659453076885593792196161967430897670000784841976161853722702278642638258218957220866864152627553384312953954164910241679741361599447773709425215203040200344997086389988268459576154643550730307975121274092606405619658866718509439968250124022764240773997652027548382614254318935682733439070514194009621178094988959188943678948547278374975856325240302877625272912731518222399797261067405403374289527147890757764107639962430033566869596316659622085954213209108578510164851555738487817626714942818876346071740612638167491177692992821067669598747403025191727718069630027448984593381201119563679825235824857063762203481263677884692376508488061035344673026879026505829062900883189609912132018080716060871370531404892516852019616567043690260856973584349310471223038263203406313983577651813688367629746482245367326174082894128495600876750189486805956304679130891250172279570646006923196534529791830650402129493616317132922637967632598907553336836112428363216667403384491080677334772003743644255603189438496307590312417328764861435820646279841330435204755496695136416717929930042633405772223832812005173148760682939505876680774839424294298711352092487416347906279241579580414095221381145532809908486567785390784091787319265228448953416906095435939788806886838490987664603102045709574068224958536809606376376217623509769559326738341662747443531626176927150997229235222050246569219286057430413165866300737566321711501559983402145825624639389962552865772246916269970696464919508841003827950019452691120016443971943510443003894939029842517367110742567333369499378975785893189588651030184693512537169363776620750932172172465335822874117881985182074618020829776501840626322205666754922302986694533836445309151056285681818550424285479084604087347584646814465714868313461512606479761860463580901882131236030671993202711296496732861950783524764810385670188194910042549991373277829260854169852275568083514099676916252222165931275212903045163818626920780653007469568694301102588819228373979668062624165228353642106965132138337701503596781859110667423951915950937838881288698292172683581349129127951939924439703901368171012860488999372118761613686104954564319260411849971540295863792272237894824969741727585828230023094528003777192496972914562200234654506212608473217676029602721109359615359010152763780945877253467252019263263486887119794377184883789367055153888314623294089800683660606143570894793549214844567807523044327079916994245016384430942212164242911744054582890416815818170836509524757523481021296127027043975507646819169256354508541623835328316470815161976899564443962217082902844250695808990095913203963754265870667234233494051656378464698997900144987284051048634463619000179624349595862429077332864975658236843021718788490650401366669904610121996483255385211462149112581387423952788321331465537425573576659654860042180385984592306204821680017373386252751221789675802848521805108729327007263592927105819690445259708163979096826592854875080591668019442820262026137640943904014480228255080239142168845633229839897169371817392840816898537525249010163104827550997362882005371731433525910740096168145141373042976668881270799872559736824294486841003670269110158721024383305199541869761379719047750791052529939935823137133956871557695214894116985477875180989577631360251052859302793728184556075589670093131081282825065543480898228633089617427632042885545440099748430076048601474643746549213186580440464507301373169997198266742298873370952131459067201854730400230926978144623370012643054066743832407604051561558855708223229916817037123299503801189932887336487011326982675711615571577133564850617595040271584241672022435727060899382303001299030771952921919368427099466281638647778466858635547202346609143381579723652552372670371571399646514968171297901136713573670014530585305711288747907649329667394255570375300465720585878456009732763816515119446965170555562828200663013174449248296954939025520139415772623492557972927673860527950540159795516270998910747515127224138558433364691798845524713812972102849315232163474374505944049086198286050212302673733881069770489873993298096717806347171818922813507513043451159481636458520676522733622291642064860353964608460670064082713389300361238492358252165358198795284832732233426197891022487307566836729518257439981873612432576996616156559655951482636932480701153050366659931634854839439414883522270250312784561831323997975107879202363262111429821835867633011663147165875515006597697597726726674059212786522075756946008777693687287716852249087131321497116375012853898068689471579927993342858696522722648716112093474581176334962807967489202887794083736028839892492939157269756632883966552457098331339121479430158523459611611658965082626870438846820027044852222262207038312458015576751159324111437993017715154580740926277425083426584615951938551785103940258798501209823322923590630090066299322863225056035289323670935521476304833949984867389681138381367231812894629439895004116409601553996888142828816014430253777270802853302911047980789923782436833560929538098321735283349472457508917993181275287088764333916132872735097548969846858002318999992247578981767997237837640258657745775861949195823108275535327225406708189614884508718949407112512856615052126955385829067882171749334104712763394691841012251326885847463167419693993534799589169900284135171003437746267789006986137704569704679265502515816047739881945601623037473293828624583729385969422751262760399839941972560530931085932305545093123240590699842776280410638412157158667792557722667187294633351323870538864647351970484333652885361948024012404254266985265722818818883374245225665324405215267990586239965779888043130723234440391788251457337503810651159219811460516105594592535657423635172099243083644785376306856631908219284258133434073076693225230844795881787107497485172816943260299389543561105203809458011893579910462009605983530805641632458898317536520107435475142404455071880927386622151309804193994636895067059555982687269611991889320423519629361069877882000341712277950476422610110515668889127933707368239049006632703216466033122017480153670903623082582025888580513009676297198781480439466001591156900294366538099170631038811084639526959743029967133514188234966792796961574729108206801784898532789411407839236190434504446956191600547639154565139626000699533669544614747605833711225926846902355428131477274515830828295754457431389104729678126061830185041809030919275389517729699647809011319217307355335827522355730750771889473652142445300603688582329514815570734976061238757555550629048319801914683598436615054659998282777947956056502895548550964687296762190405801755307219828119684344692312771497666881533695456061513771912040250291912817464682096159645636252196121074396358691307262478190630947332350399256740851200893953923354434959530761947298545692758952146659616377287968344121777392307596674044670766398725246528942784416745843454373598255229260344456321544075714656007821249805049218187000388104116445288038339986269061936543041970823887540511027828428047448698078210059126796819235123255982358061890365312275222570512908960234586299557496871122931152400979540235482301224879660836658806506826757745126329723690719320333284177459165042911757487636834578952347465087572060416819997992683652273418176411112080828944799690041699859736401869887181268837115703269438212886366651430767430445201314096688510659199932518903122630114730257748701255049223407305675393362045987450270910959129009352911950930471467898364398523053799766305965104956658101809932733331825678587669288834571511915819098762232636395027830266862147098644530295264548804960130875653068763036141614420445380736465291950299235555053906004669968517309970944775000713310155152593973796979629221456315233019336665965884183431089455352263735716172622760897820299565487019523171583258859283053112056509385863762905149261454454320580526446527951614943795433621982480033655382343450789616208728554383955454059661885477847851263100207963183821541726654935771488819284607359559054338737826011573586057300550414107967558033446974898083540096881945470580282795569960334765493592963877399429303383963373719810461516608248534644441872787808755547991388840640035840699981045527681121851427553394840202520391935420425378402706331436947351513129414739174362497764506564591967735904659746692296440208732456162187836733586843384305101448870825367331079697393874230548660259025906459147834214305799295869606651540601148976308815262730773194705921258137197824364962140755022251023211526683972752810737721658034721673535007349014803109556139344501679733562198540492372370019526499065931190713657809477336672770343447040379034236550364731056750243275729056414480380161122816189050927805057955547203627064310023430704373946958507682032215162618278980340129026887703530180292677729199030125526005479117016216515527404645640724613258328905748072492815945560342511355836868632057947581492914541448460627136302065794811295236779737586574037960015445704737894366161831017562495089550916735957763529525925869295490151334743833886130061197570460986506942315318621651846317880496619770200453407227076481834925670152702962190979184437314813042661802518211500096534224450249440811026050314375521423281399406345293422835632552377852399317612653602055064535578062796675001689747249340136225482875736275073006402284255757361009673409919758540107931868284657248282959629903840470127015255936592360946200854825685842129243946386637380490448796118603356462890893315401463196597655192857309704967341242131993600590901691045392546217523097600330971446276927758811319208754952576469955864210591544305196134477054179819317558247494983666015566403027764750159039942066845200186970822074440845744736745324388720654202042782004206906335226828560487148085942575041838008418135308085368054736592685738374314741395285305864813810094545072274689140700603440385985621302710851838419859991555565837261061261041526204156616154954777109758092555658494641418168341371398040665666836603659112909315423334088021708960027747935776808755089929673828073782408377572093783991300400043984341561479316397402281900777709061752660453351130257752149869071724916383164480362221756071523616947869016577507046541684389513226901860993866234728295586294618405060049465398610793000426768873237502995153975499031050937055388446444782968947833262235205783094086726418961441439017393831962744201605734700047495323980177934158882393439868796017013511851083079584752512557939892812795499624126918822899242511561436448360915262397778812995242828824913946512818371617111931356791461427180852105703069135232512910819095598152387045558845031274798727728480024227438492583665129611590292747787774061802742977654581669691879693034556535283881357130632797899150864291877165046948827223180342788001684543713769864491480490810085631605021870366348889860788681998983827148150829813285811512337363579420563842234486213336896231667643968659208130670172232907686705435113488417630923417207628376293801383184004506730861287953854528690790218264122987841214934143758722740974802475876873775979231811310563324734913849926095053183679247944142731464628905017620888139064082735624566826292579456876162488720584481818598403844129930171859606388626483746056293849391831316683793858719366603395665079870224311556706455883951241223201542746675992743693720007687949923966933092536734348135811454296957598768512925666807705518535392600084190581371184356877537938174738312088232934599292751832085637639642225042679105617709320027072660832495496945179451782515558101110980166088794971425776849994512079019244378223153931862423970421376159796188505195832297226602629775366198103778509883711103330851747850038421248643168369687280830398981895679501101668626892399270988317353959576188464144514048645584383855689021460178731289488982416019089966550573063421832798702041817254715869471235546853176482966276348971993107239753978372356700466954621270967173095862757996846646744827222512390829140276778946319793842792997930205061834566583612985556397392554890856045781386382100209386034066924963229299578580654742394653197485447355873396792425409988075370128151958426935844010899425340092817888790903118304680463803768190237335417633531291555952394273913655840387056734521247792973524070538230257136582470424907370237418604336690660785721479312482387780468451103541830172935376422442639361072821368973067064573234722682020065934644829047290834974074969051117274662649970607640338325596757780082426341303599515898175758438854973715866280738082521731587682387289004095182117611633395272537675125542385279394401535147311184539185343735678347859339761150275499380618112334782476653431344785272095919142882758921464543034542153971328345779880071656044564142211321539469458703921351107426330670074551957769049947567956438097530976687699129003807322680975090902683647751505106605763523024563825392990541369703653991142190872043614394424932087521363292557145659531389188129083379573118594652554777595399457545872832271964445327369218014125728252951602355264265438017339877327624670566966170461057080763160478166959604764122344893431847082481288933014365204359337531241279258879009920650245079267280670001466182181069427487120722283610950172907895136333853721233242021849826802335832404653527502711759434876859332945012163903668752063878987561357966049750896574371197621718855084600997238805005466928881010387390110066790666455629346743100209631735526544549198143454212683147557640803064408170373431124647975780675382506796536161488062525781427418696320193012417094313105467143968761616354067133707221295943957554308098271341879589247910889596051456668209061866954284155086159893342612395846687022228817040056133835427272716606588596731252253887846642978855698438874472231435116524194804035615384564166510832075013293301250775769159880477420993000576926165224331041345077715759367793087679804150684385162538135421981865638982884665076117924317758962822874559499588063453498501904160933580350895239077425234426914005957580504964489674614719901658464728989983980302396311858802413930296957885845071520007631308040603406849457657011709680765519446229127560097307219476042485976505779188367539370575353491693055789017866649054951368611205114836528408896307423816581113829115214347987136303497463340228429233178011845126560880712783156178307791121304889225904862953858907348951171412897597717666379234286661315325276626033036251387223636466446236445513550432322984865295000130086968637252243531130944233356675548185148571143359408492929227166752064764823903180680063441134482828724388141525032812622172838099807822371443268319410581972722610289021148514735559581198548173075640783731788488697671119629342407648377773769194175395161578615667900034297927970964054574990398125488180143756272443300078570219866684067305425936734602865535952715023475231685158520687417298147478649030333912833576986811176714779097679324192649334443833849698793494440047484531884091417172900908822253364622225389343869718689040165993590239813366829662969714493795037168541543454802379354261844804196583602164862371987580913828946513599852054092846608632391935995690987332760448246860916893227782999476771552073002233243215868119043798877336871086353799364156040778299640007985614925869858244595783687992956652753085812567036695308735010890943630426327496290417121132270223041340399836190595218762488659108983155844323591725014130981166226637261386714545719368527343205263900468438908529239496602987486888661307213414035355424461887224237421039328371760458158379205075473558169817301918414512372464154537476379195903723273981547885138078180705209373306296417165921010585151885237721707113016317205578247977754258584719477339241068882421577623355418903180027818262402719645332566938737442186901694007050630426258931952961916241612274078101163230168948935307824783624513379492430321940772146304234625628257617482578352751737294683919156981085750746108837579357930776184993636646274404552230825877103125680084739160094185709297430278800089574262115145569030796300494974098517615249744309981516477561322676426493175130495640166648564142952632198239931058478746493276741525175004794188503115904763190655784486042642814320732472674364158656511303377757362701005461771711503752630045792136466654390674301105962941185051975270181845141377563864197477684535424493561682558273720225032036416567528791283559633155698764194216389419978125769723590402853283763835751539986414676431953344564532434077701991814144787744589167677928104750181750877637688612099857880570957173538929232933353102582005387854655460191098184214861489375982641879741789769682132083550377944564081399914157108059519021901362320630876210642253079311676071419037833601391950766119058612634631632979299675834916715534545913259811111753641940966286529812961082969961564006172440719037119389622203215863880256178133188226340057057542509959379514592697415495691857990239897611408057326635881570313720017118478468051472803271592283750170553685421015447801003766327783567882977833816512439767744883878885474687227889849080693730721523683050427075154278241826754162652852187455412835809830865606953960324423782067753321470795120699606042426176806083457630066357516912910199960769104551920870004837343775073884400994753049207351103224795754230005755397094608296336826221117085611263688858285437767581271384079925048385348512490842111123093646405243570064046118084128159627330172907813551355823190362219344907621973322856251717458010304549396541389846322181744391795201054672595921858219913402169888436205638810867848228161190877680349185324168255438219241506262577919745890867140876749059880582111219224091573164335563018216703219803193822959338714051021095700590938716801866600056466358589569397077981837036115570787739174477008347172738982654170239384624150937960350029335915502848655257187636991829789836879626210743313009473147904108735366314578378393425579459336902786431129129901765997303143070814636638644672491087076796815012132472592091363354994029606399185647455461393649895313747401090295988761889116692751725028543476997422863073126854761266768489084196036717360345302888382236092361682813018556365589064714531397503862374150073004912678612812198407355934346473867609136430568374818267225679082586562909057954880576659385566920192649804283944738641239092339201910939142400167953426277428141971558217557991056406482458022079322161522615733571212620566872421919557231220192226923142704733630626811086029617984742079983151383069513223891363592645479041230315782612325420302586836717731844656347000989805945858771987358589595900865624750762282886284917807017866824036989379835008454282193690292839847282278963621403987316006952248091798096774152067934079137017730454656035384282254244277812053441187542815212065757205952633327902695638200426951533750801422914883194836471584542668974802294965761282737118760550785094319778163672243198390570635684599543163586765936879593467130150573050475072210923690553096711610522601586211357590330276541529946727866684291356914121568997417474326447550320383931862598120725448556544947488827560999341672863299598110579591876216523883527142567264946810281097737939387238318480284199700726321679991350581324165061293541967953476765301091664709556970372356958118911270772996063054202191053522559959797852063589896609870843581779487666419909829872541003057321460600104048337307446513288804086077258369798677579442405661370507670910213551680762229869127059777080911232864470524493904164300353067777545592564477506906356071992090967014794047503556893761038375777634221524628220337702864297462293972597514435790225927321522997047537390702158811282032170013683486223748139210299690946002917877663703141018490856249231808559116318496180251500419960143316335758450705679223317568367646623409543212541251271187949025201281342375432149105070438645845070128429918614923522497019002115264576034445276557728436232050902190487943456486581454188089337817986977267997753107075099569123580925928763968036835203742408630373698299670455099111689041624459354029401304189719329117653781579195677743004640127619469374758627745636364863272829531617797112092026052617136756802659068657074488868519218805070112049661901448099285275228451659097335071250093674951240919193713335243663942520877864392666747685980732542411628191092989441610631657595065615788526162387641978415962502618638546071057336762300159572284454403249911410208980866738384241595001961594536843006607268679851072548213739291546574066490296006923483084396502536554226902046568259789875522165985587490923704628592985720142800908114556535368803434389119569827403266812420860860414088596820077728754701635320675534888265769290720322075324422716132448782140917015785892490352622290939153300770403701003535299962589180221857723187760837475067452803650018435832505076499356349914684640542292974371710315893872216454585805715034867747443643578293410896518153028758812727347603792214141668742523412857157040277954076176177756116578986340055764231299506266996591037007372694540867613004874752515750315192812944493769168195472874030837082432556537623849696226019138154858193763305405365760037234437086027853992213115798110370099825234309571884460404097555036882621264970377586366880161584759618222921190764783038161471358169742928492703796400798242419835558651630046928889726245729634505467466726571504180620536614618727698890180206366799348752782831818789693097965288411285636036055719322658183860571511423368722789658804537938252132119787193058165399227671209363456158095041914092172561836638131474448804470718498299230531622435756532353060306827710958907437189341389703798219161921355445182441655828354277575070032404632855093935879468006175341758735171446463832403833164183548103069189193257602825598940384621351873434783707369774874937261571892744724795452226129419423786900662349278994788489068482386470830917439156977713825088784113451806362417989471428628502783489974339563653182122265081907669670743019860341447250161284825856285264697356062605482338587104860601761828507350262852306589467318293291900971674830289543595687240244963422765292774269133986396506839060880759009419819031163851167703836005259413044690151744476660846133793535217807175842955593100709806800670944114290145218282092040516559251175423939788550178723449545631148927810374939188492650884892557801913475715198817089880933285335486742307601800108698823282976653498654370973155031853683246899199975493479763455413995141786152980806667517773998834766220265655297951901431284681007592017037948990527646055822179282158537541183281310305669487184627728373690773899767839582694062385555248131931592510798073592881725446194052748166966784667603502131359336211164478875135069221081867882933379939928012487079944009912940620281776677218507405305671959390853028655034558085065454328500667242643464162007421109134010563505898672234888573586168293637103530454579271353667457938699521814755548121496651516848794576158520599310448634199204815594941605412153987982499700617025445640893635243403345508805551110653993550308102003805474548277385713918186830430788925821695897997081955945558455534321975147497032810149020046218724120134301115541325840981181121020428660337111911856264735298357251167002201577349138406204381939021102362959660179638649311975074645374995833403766273339297472433363311852353555033097374689796482929698759177321958289733406369800370485293567384508124678030353256360508365517359439123668597111314113746234252520925705064665084633684150251978889650958952047502877843264588641629215955279022210389646518905986040423809968288668567076124225024406657613326819965201888115587994023558620750098323176470918813259774536943054307885156698330437883065592874001780693949502668249459899349422500396847273755398207127735693705031549065181280683659821233626265543109107341110309243346799882049403786309147759492488610533777879653516516314174976513304289914836533282997946672675507842509094395347259529499209817632238445327841584963529262737319613262104372814064363326972599590952158296604298587433160714817709469968303543984729606573366379782214299221986100512194346431018017156262358994641209443018654727799765036708162477308472166413301014119772712178713429917958439376957513806170213769534441944466174237460797964538658408457457659296417389516492334104368928471918647537234352726049219559947343038781579441347810841132685250356399954136562266978295824880338364154152747523833753162641899179406262030048581878407776414148459860565383191083010765449649277541802682781400918706788335881976995201497658956189973891898070205574076375875440156696173862140774862465950668563210291327784640764357422664760551925086686114456395296568056793072238554596109617892446948742859127239216534931715578476750831975014081598318023171339453915935584646644875556069450647127636624177238686670358411461834672280659047486862276629665437469894706447207095310703535838439032745978979765479805987341935255948895022337983672586976977401021531632170734722510598346151421381125489514034433317572992603722655361649861086723249429794143155704257635683135741084696558702166445146987173017581381552589976313117421612006649117528360191835972099699249340482410181531292185454234389238819188829920163197745489431515046838593591379124740880324120522997800658117724430637289677161555419976414413035088671961110830585901131103288872115721635545811316577225440188563591139805894298672185717434656733761304291778264351909341967363778165496523500116015916500362639207052950945435636277541351866024872709640526462420961341680024731912027115809789966668155841357242638159116818609654916365691349661694316882059966081934053073358895208305554579383326557566336671535799657652625718151453641643386417545458516858396875557270270282042213496095779737183033535493809310598662461874245338213881447142727177303893205861959790396965821405147667000671336157561929115450363529544631465270923787005446564846181614503477379163613602319934622234495152020186246418070646047949783968444326593751571109047852943628611785916552936884653574347790060871804925734102319754314324827220577820137248056865422161246098321647134488550463345259491212274879780112048172521726648743908658052277855369471830081848382489707021705387498426247075128177389298040312584926774332967518340408083235818818039685270640843775532830482795275190897035166788378864305890176577308543020114834547339985395870618923790241292098512281761342538162048340321391880857192425764814806466313980025568739973015495513167844278103062102705355175379075940942314414166917468607141794942398729869308184530196941656694387415202612545889114906036071071501697389780150303529297671273656533443602566769158126138074952624765313872253593548607751253173226039142307970858549045096886938429673491466911033287672003306467481001563225889757345839646089990672472843491905666165298061671337422715826802145522118458863829621127777685864845700746336614408508376132055099799840809993810120991607914529895463778750403045620930729257882297392503851947625263300761698907433629018857555145881098217928355863667722383974808990294105454314277841816463916403672428491578433727559154555716102861860157112335539937988669255608427894753300755006696204687765329300558122888224083525939055507834627375777989236561473509341077013042021979296072887948195897807768496150644830147595445591027369079745473437422084019242669205986448463270563065205194836519654455584512422097975298859022206083617491962221830385552399716858759888499426366455063495148125609648820034729844399555747243124960843761356407060372869382570581076676638371201525693295085452888836954492453769482641176761801056148445319828101919794216980419160773149818160886759794187171957555303164264563031536052347862828166356144734342463434078349659409581592040011894346087469512577769175640278289316722319902923815977511506714127093693461406306195372565406931365177489245255983842367904187823202212194636265325615437121466411327591971465573384423405114272873427393053155427716341866413135800204487869323197621352556708530299865647377538325960160824505302511031927317255390675588239277890099404600546671675901699340815459864698653609195222645635471476789246969532249712362769444459471790005052254716535758128450727817294770880514118646773756947490661824890706555220563854450210647736057201186453152579898437967503883255388101709024075070687704359749496375518827954773526924358837050162702959487896477348269627697491706863047912777815161971238394074185243152028492981905630810203255375052285469999740929305626330865125093121509570991533668015645621104953937820731509641378751844584448141736864341832072896527435567314944485268264247718531565733619757174275785940090624963995048333735183646652231471948838631235730420762837740920709166859196439129036992607006682108839918197306566732389580920039684812115381809042257057445679913698245596276769869434893523190454004381054613439222258080885669940236963418717225377033703096436675654913819018592126998614898472816103459106873821244704161805807701088420260746171124943695300692070007982569809776537511476238323639429102027545835700477023774550588524034387201881597761508756119826710831192371564901874177387760027384174251508488457142520112199617993712331729218578439737525996337590759673617014897659901562410758265453837610695196434598074707935101062554513497079551589604233180262041261582000540582773643731926729276595626595650434008441479530498391253743472217725628241070444740458176604232864988690406432276480952135820080154389191591369920806227633340268998271653294176975368499044751700897960955830682456867199241871999301185927922138499697264016019677041937085438533890533778549005109547145957492346198023948559828160657081421937387410406948794635810274181838263806566067797800384854779545537659390773471137716910637272376365542260086014699540803387971991668796104350399943798053079287843545787161063217979434867993804212456107325776694076033190477770846870544871545788746446576953445132863409415078979693041230302436887804427189362251992673709681394539376388345022443876985036557145676376867311231058833197941384334280300185193566869990266751496245997914374521419891331772275907292668693175550237975410450995094590216673536011074842383739003526375449136157005162453447502109317474315183278990463663877399923695302072833730228575057826183800448237933436356549484344124911123677854856079626377244826788768950972941928344682630487025990399891269708440440563347665933898150666938053753134129426138736238477663105213979457582326283249385104466683744245106130782738824288952208663898984190321199821187110945360022884824614859563594310903631933710875272823868094216869049626967276970995167965020903398937696335511244455389741633252934593536343884372785621886887708232708482368650856662607307207740072420674674940128804789765720483387775620256004713685332745130664428976584273794227846102299171751958566198242689474960966157013940318204140330588382991117066816713490588811226613590792139207812671112602114822266011637460463613333474409055419396368398692520420768696825308556596734545192217721757149285972618575834102550048429306956069574601161335427776220971917735185613156102016312315615062479904943062120225556948014124852169392109130445313787680415204234245304568333926084135896084018600548777141307654288246057643816660637164267812821052349797337544705917184715477163043597333841071150375176056893943867738156447441885025178538429035728530039578364712939028293755938740629485263533696082969722134209861401315656736457577027078082772779573877285565642180563249934746090850413151953097802213392591822687688606965731433209613510529981648963128709066245522586443318535769480586080933399589978656159931492547738541372271926094174667879046024372785208704423073945618802962331916901803051097059138870701602771941269325280424137257155637659351190586467372226455212179191439904667325349578743376189875077117392953370367592323002669405717084377361287582991772126185351206292768344689234165425073760151103470640665623184940627121751851844068518535606719806158328341719557533605787179726561630984412951791364301093928052032587468507579440175018069106382334254960219314924734898336581029753441327328937293616615628395327174186121209708350608713229020983353361794978705571265727018014603110279503417731920357043939281311750406492535218385898174935846209375257330590134106892798162235017216772664517059551125882087164594446747381500036616079650133627972612870151011847059836495508915702647151623187806978943472356875687378276961556018812943534842711580939028341682820589561861859981893546487262180605579573874023345012401053936286730481724302828092318945524763895266737007545192248826110271690665651362071230232161519724513791205537919257570996382150638672847920671462142636804486218920916274229156787143159735516338798530451811853607711985934553302815549318930168116849534730737639891348372177473595916641831086611162940375523902290384735527525904620928179302383897115886871961747260368784018083846127831489063444007650450704419527979189536134395616304546677869101292579067968182029023265781534997176798807374028236309607206628113678209321231782902755754616682918394583104768750585481402875465564405043822014003854236029207569761507129281260092428228303413945215098867397074221318966326302971533959513315720854458970570804146577576343130732724128208098736727995495019027932916916116828296911112339484518461001844894486454540822648279743120818360748174784115582026859168914947946028189034053128908526733547550510375698263669444049044365205338087157395874619011481413676301377311692531030160589635991429275467367556069600522299275884946900984235919209958614112622528322734628633015311315459089637177673506541727320237486683890246591456117232311221594736290753518637645267073900655041919187777883689991964119162882074754320387294112282817497071014090482969795411954771933998638182525005520990548355970287393133620328635599584877991325363388519128096937077860564132913515633072797738382992925137222486029241694789886200020733071092652154378742714563666333355090411997714048630510818354921786992149447168031701258974910816655752257380892576521041906211780103175759560124649113222817003194718329815466111368172532465814431351802064714056716229667570968116235669981876898159716443526219172919576851875063843145413303562055462085637493377952574924809150862548647588510935000296469037797695541186434737511301804295847834482096796006597732415943045223356266406914621112437284026155394980796726249728996396528771554422883190436341399833470612581056236151156123896016248306412864839205327445742012293573819702735938883261873019811485931685157625918002314033792113316882156843311745088319589223983562760983728875203563291089600920330598530680106615442244125194117800013982952625965767354323757698621771428089342202884955068361784296968383392707668137314445088449695238017708694490752255937286249920773707167504728912100465116620934985767659815946166329867284978860792687780383559989715998129003931865358264537100839164454673206320156558006030756294628345153103386927344073842825909575146881336413931211959213624771629124132803418405676784467296572544663593825964352238184559118484283353182267722942114468024277275249144203757543065646030416907628833700084030761752255955255548769084450029778021331714809782008370021334081216266894895402420385016539465532588476440092988362781565836374661400019971684077424472957475672040883736996161507183302542469947517643664822208167635644765329725341443612801945497772542165309917521566073600195636087881702589439968079735154141737241431179047112882417737958495836286339667548395362095636782345433016456446622107761539894337504979855324337930149488070753017474595402560586221403698882007969549071402751656169520023942899448331386434640961475782650324804437588435283956564523943611696597634875482762416825917634917605399385103985760498280409866768810107335135772517733342994255045685176836805652366521022293294701455179616890084203101784236299526122964417943708422218973473323007852719423680279692555412646795939828592798164569874340117934115244652476565293650947916448920809927091262581024919789886682666901599037975226354297868088701165637863165827344272476571966650809007936905076406651728055301749860559295647958054723071786884970150451529085080119330548163838227059009692775351127353790884752629845121342786296379932929712939217350224113846290412239573018526164493274280161922309028855103124591733698994156785091186209207393367632920831462261486484724674190501017786342881746313833130723063196936173067398037988096086789734086646093522721049690399992418755957558095884702196736373781809727320074035384086200247211015707264977931265912783226091472765443769132669282336650257994573863753467302985825268542621758528104113681347192489669360181875709615127631517194775108127237607977179899270109361932740308029309001889836646788187188073410622732353248459402794587171962039792814670487224231886862119660169897970698936770358789902463355339728621416385380547638547679134437637693284448056706654876254170777433646346196076930804072826203562955282668546642502170757819254936416457431693402554817275743372658459033960175572040580784928155745423791687798385306046878519179572304196473282007278087946646232292408550437049433895930274101220970053335447792355223868428715596505452942143216153119714001232020465890401927612683281550189677916039000912662610254109225407836888094654129806809536667841392848291784149342274960315609456757128407389114458746713648434739675692157451378383343828867078453195655383749567283283333272856486167843448910648998620402951208515356285365187708074625478055780898138169521896978197200679263482285361074791674130737949113593911771615226581273373217558800439146844872039220031832615634700292631571933615448600956234413587911430478982647722274359520864208973054802979276232397208785729375873537643418167452183251604157914906324767085493976170762713041754531963336796301312193521304150754085868869523690437188580280200076424876781157831726394848484420092517393767485158075754119802733287931274205785279336699859635536152373737608505351858932243121304958950402164256945981575437255880587640908776365083454327074513889955530706918533481977551762788412554630023042457082910858892919508870144571789438797541261780431225040181973209246411899129622719300356787078536142972583187525232348601752816676177111883279681099139925269028247449262742309340318856824487772122270172157655285021431140618287899343130577679682210681758557116980503220353065627081530364182829702280505734652157059667585927017153470074887470377388484459376746192164310657400200846007469141942604070158215689688946450603548246220110942943913913170589493169670957516016451313797530810543526397221447408690328054409580949737944508532794805801874103625059571576571882445997923040149946990298812311013103358273414896225567768928623169106365984944795165708995453868909100725806042682785397032849870598307476357791635709104685971960670017743483576952904164168793755420096137871349448402152194011663525870863007947867843900502394682992736491777543928611662140287750858277321626947601047458995162604185179050319279581736448648203429646384880034347591728739426760599278197938184309280577003965403474222246861257260444039193238691717347832966871579818725319358840412333292895806574441316458564457847378197550852717344619947848321455143644648337330257999199815203250533826219391067035582922785655655782134680454722019036351307980212504554617745586896222358239452043586732370364042768403605211728787896688203745142149542847068643452445407321662661100005022895891427107218122312903500948947201088080808069727875734855929209647291846631864954207952625197499944155096844357709192536589938066677724169822090570341405256416057806357054076558890994539302752275474752041118247069250450154755026431084988619453065902253471340776117133196135437339718469166092985865842483177526951917352820936992615254964719124051641920571079158328852866633503537222928389015133149081952413387582451919466393424645359844249962175705455941595348086423576182831871836423697915750235174447658844628153771970399356282641120730826067617598046005570516113980944568041483117366633456700855762923431174644087771461514551597786404865976628720586996446899756623542420634044497688996820304849352539211624545505571532927844683591102379727904842022128019750867847142066553683248375810564834208050276315623155908301933749987119751567959047218860461438574195932663524365700658816916579484894637828134085094566541487095205664362291588485614455993050776954984624674053388415271248225557529337503765911560690153322659265515941109028864220296971688710886886925214219487335857333225729273850484688817112379359995549844141789345439404742567968199392331129632547627964077559008140626401534274402548882845720711536887964866593335311168408074857710352859044602043697124367630821395605269112979656443815247912264417270716862015798286817612368360516591310439097543084258292798334226171462443654748718091481658156241524258253691444379639487079701165819674156418875537551385348242987351727492137877146738149855810218570067785999822524116667076665462453364772332797990558500631441429740503390237826091514542322351925108351279471914690906749394157057073529999596031047864268877263468172794281167833359578571582404665525162228799067380924891461497418328490876386555855778192309701230693529243225066044744371392167984780444786659839582223834085552276379374875483307448191080915722159243243940144179855294644981587517264349373178464166086522766100873839477771864351049144571707944619492136289491452840447220662299116927106044176420733942164358620444435400506545146417253382993736620114368479624448820478350167812278514382023934402388709746035456425687814330650265069564417891341242700271677809899174560604691326387449320456919837232241799648095108072854259984124488152666852096888908030903183960117931129401077139403367047184160236056797337613212657728455370500204966802324936837794538107377238693655748169065864286944230767323863714327057371732729685222221287822872412067490343134309093596148175363813016487840527924274972249399897066214262447388067702828937935362813955034585754220937756284608656178046516621626137193555544506904192969418006829508335553273636650383236981936046085455793103557217574071654155690184782912181700947914008007281133817311008724723757598943525160612359883890889599714097828898549631946845864020550160067203872319611646169719101321178265252069347538321027312866984781042732794532023544555164444613957113145153643639929793196649338093404464028734963397482014893236828313438995556174343704432557297179580845334516351189062261327501844111273855155941287778876898001727778463735239433904187809275292861399431741653858967803548872834500972588183321161713694125645147983667351681971457615092284360535995947306701327368197471514120318166554951066634337710881152584713425872996387656450931793281293219022187881828470567334143268415786979185246973619668348300316790440733603934103920354773346343670521772353714731857709092338743599455951096942664958172305215650705039820844426608888131709539202034736532489714770648316089735579028298865155178395294658170484491565722105573821922860100854282136474761917153172549763783956922990032821078918369403999457157083311091425053523324761490132029535340114301899857853115241581083997349831945332888132147720347225907282744491867812288809841051159384368900514265967505390708654245958236782617046205609632461011203497535502242829217169356711399214939307179267596477645079844220517072736966666519671022488774719677902036215284802240521591424727687383906174782010929987684596110081008086438026070663470157708750351872177949336992315897772693691713023328724936629879646096000147693729676839219599668742221806416994864930186034424673973373508959029202765670285620903117697907467153413818959128114686163491885256529974469552186285955458400380820468779563585377745081485425093147091448101918193601247439577993756917889371444275766513505565656196394780005455628269537779619651083153651888319122792098670404500587358601829289642968214883061806521226962704527215130300780809263540308135347711638444289215079970214915401174592901001221856678426986750161831010182181545329577029384026042550519052476650437754291138338098957740609431134854663434619592300199171557873684493813206373978852398347175163312746835448762739007810153038434294363899596001427204612497229986182368941081530600660301666843856104473170749689105483666420969303062321920698104954847716977421058201928558344918716629160875691719888517382917642722494563532295802121217197547333428259182431987712800555405731688806799705393685068547776204316974861808021040741811365996783540197384440948487075609849266417869709243059011375476662418412119447412965675656847074755581672328942313526288198077742229755283288241945553093034242103171417649623279784775495077664477097940420757947230511503736011096961409230361579812537792076961116825176336082085150976600310126311216479165002427665855828640107402288822647273552323873113912080955794562833097469678869094243885478180276084624059435263763890610201410702636644698780167642269450537018805458082559835659720875984862053535231372335028232768156301181915279091781905210664136934443608978701623952310659227789366923131580978847769087602446216187324434623039660944452591724140080698192592262070839620527026567972439998948043294765871534890503425766790637219229912075433717798503064749654766790126397724317178795277402441075749098325686333206931067507999318276822585480718461483851069906030795377618065932278928772041338846261841229491799479161066962216004586329134300966285303097022809967867762881325921878879449351964115428506335845703683780447194689605780758781985541491628536575816025375136661816842338415961756916011837059602868771083778136583601198764396467512484994454002188557748413492367268513031489621507353127588768555528952405036340684594478647743250496668614029642676042840416973544872689343683846357860576829833958166580449604757402663992249426287370627323180150452234941387608681947096341619508621587568701733043023807185123975383977077493282211686384931987195676542231165379538430449098438184158281505247421145619448535012219729098362796741454843563497773821954829009311970569249387784718514930445481435859370638423967181569837308459559472636343019026318759867870194357397113013439987042382559558806881349997624283552807510951048270731216181185512795108197386325754508085263218398962387434208838555939913436165040045644383311465103599588119798378009993388822805131867817771390505390521187047748472678053480055028299566363218552447293781730722235427851053109762495025772525036905166346531810433746781475155383004177031350193532805329664033904310701946753008453725494431746891996457262689828344980072940923183113580862367823241580983164547829033979856236638163773650834254130699019654911580874420082533373837937807863869002430206082462405588553417405698641498053342921119728724511323265833001884333504055015773108570114292474743088302714362279199772340885607095509240769944822283487812113868067139677470257772972202080757457226200531220126216630112650265307715417697733019132660340068423807207031988635601497283758750023812827868069078927103299688968591396264739524645434323109466647987998376499496244653625335602058452255259768217541067668675774251864905041838737271412179061466612146182363816777325960644229014055298579507106449657675761367703539116764071572958983863361638235067417120861218254398863195970606982626414199174136664043968063908075774580823227560535532198481957763218378451879768124282283834385138368669545556242537231063203950622083845832101828219765361503221557959468683858762340668353563148575009334400662614880697081485619771609696913737694245679475014390544113701768949773057939743610396545928254083649448906817261622005587150553293387154326866803004633514006472612309551291998475888760147638418430255237477802104235631579839653683438082254131467758144332028880215546468735835437607450600670365613540313143272199471141025403254642598613841862631592559998547609359106037012124137717284887706837179251126984693751004393569685806758975431091701487293098921762906342137332043484806067568232323518938282901717149188648049633804481407347177531291587853801689146278455469836798559339285080633471043378602253991470428206364183861337075703646134262037321199744832246367327674000657757841636891484544765320494053264205874446409663924818729045071140933199988216758660461105473985349485219676273980799879427247569886448306911854904325787302872389609453935677669561461232884897751623148956205045123813375033676175424317489457353967304454896017858147578324188181077277577075817061161280814470728844925541385802792898657180689723683021872241743907412287545271669525876836479805172744441062436847581960139750152435093958784494528061047071057836834261910466134408835583140301778371256123598647922414979594623733997567188835092635049897247326402498249201931001079242800682393751502455811999512452166193118242258434836227587863040767446459838130729837818657967227166040328631587338735473544701480713975878508768859479075192116296851768050355450262601740067917271442901253741685313822333829547837936689172237430497618320390867186483799400883101174643001455029465731637102327839345679044118384722705644300115854640460399253015858708636581351000961612377107305318302086718195428112411753229623919139242651016800063820344041180060294587955589488906751812417023209010705417563252584213890584632024184973723287823115884891479006184023879868756688006534884596990632245511761925135527557428037555066676832505252447225380702895298266155426781660973866951448112826562555930167032146879964333422780303853785420043542033789412095435689940659975805435716784928371252315720820525891723124710848313027760947003570346724532667084538631445021396585001921804923173581064491232324892961982140607617219487280883484671705968479931087813695301978780650256126578841143846034251302590905648649312222034676102725604373529034627354818872326255901083721597367016120508778255063533400011337270257947733444402875533107577574165549902360580984221251184434768399023626278511023311775026863373814914117526325475139245799235823698223576001842114628875064610751788995123286464582349687956435698328518611796782360068222828044217618342838272954085205684948840040450521293746253815270074993770257507515785934828688839669793455514737503489353935809106295499872073377784206622297567975565540419606568389151298025005122340051980829265994623173162107743898651114142360453574551655060562962333339747159512418507695978989587115539140932540617722171831586863016836228115924063699618807551671516317357531541789035234439371927941681200132291295082153458386829125035285439670723701063466081554918327011864686399877767913406742131801115811374743973290182416526384768665040454166434121429806768239077382438119744396567110038015382623280437996512511720005877025249415205276568854140087659233242406257479045676286521813412276063878996235601340900805482857850069567703670038618451473612681047224695494973932248647084352479419936971827795008457174182855085364487220586477577958650237024438147991888056196105265975110444743466453725476727053878866174005559802991981924637321851332686151088338908102972076772734521844693378025778569117844890566259394352267398182662643683707171836100580644446964573264137355668012578452977779935695598561962253216905923695322113140693490080106697482345509721145975806402571445279774158523046176475092878881876046990935429098814985837106204762975212292817743612165620115511329170307765328096538954347637695009143674733254859588925632432303942373376009332183002039889301171422596840641395056000707885081906132319181952486852159745362318100926054770820260327281669806172881649380732879009502824038878786613081886281674726517412217337167845776985539022094313001315287500464003828136832474491892005424212902992120860680964038523800939857070371152834829574447640675726455322335656464960813727731066926501185776895524311095708320528795762569772302909841620550327411239367153252318914885461217068672898628321822458127316568374067916441861608365999149253267550478796818344048836762310031176109122256744061784087054139547237350442666799498405368277754243017573129277219543005066465925773760219273590171530515319919852444469531155601767068678322723020997209085552162267948477710766213132376779073310118467173652517411167651631985713578308882738672548373824686251819610864147512692716555945061594286498975689609155563241921308273439904865970626966672766680582331957291174692690270195318166314306359343352103634162929163918675530226458530035487338320138606178162475825072538713098649675587494890752756652645066092229089161189347437671137991765064311033080429429798133935817141238447510785038487275910102140249859728473184069582437182053585488028388028920000558771333398381614860285363573160278226984875278183153832878123055256524038598898736862727352678436867854969336700380321082258379139689605281302149893288570038494962202083513366749274407835988991742621798484578364033666146944907773082113150994424382540413147776672125935477887696583737957017766236834350709151122184426693832681385462778301867326553729633814377159745969507494002524706290166762957559470243732170519053459641290244762336523760464086559670962886383219691974991491048074451782945811338011086034224197520029150908236325255054786804069980031321317977603164150167052652221848439074079575272861994103262598746881198309635562421012363552113640145429697625580399912019115418978329577098988632196991492286947288692651497069513639510538055803151830531548594404910907629185867157128302373936995889991440762781543674935631783024740646540265217871735295461571791978035975752901043837498066851203612375110219759835342538282558799365062950271075341340464479361512461672558740202882635261766129172024618608570829652097500759118922833252441638428929159358961693059668885094989395303964863859703131864181028549076440811355516117356409764604892322509572741853811978698594349993240956899411241325968623614891610596054596484587270442636926736929748055308376897052845964984937450020767803854711079673062474780872486753661895525356405351443881696016715585571398902324974572269400281827220316464773339394319581988450127169770402038146784877923025962927520014326987521505395223827531126065191024441840505363685424765778229371656860850470307242749085214972070819189092292656548936060397479171913926412400596006356025514536828060980077817201176973301032287809592186102630763061511011357906214679249394189662931233293034599383336745212695788858125163539939479167546229723832447465864060182317855069021350422029456146190175613045195338064014936306743436968983083654756117867012028687673273876863331610785965502036666102913059643640707044261631436014725804353456932041859236318475344562664170189545857379258661949298705249314706501401980468643844508240360436814152427870179600344558503064719673636874821024329481854324092632885451989680083330145299706654395845704149907020308738217932942333322277004425577084933219260960565941140926727471640245160037589177172784508256596864778784975192254888170476470034111594271076018278860116959616283705451128212332081836771068312953895379407854015327291374660847476865705329435739594803677970086830701621901722416730697117065484775856453436576180673816621174654667154868800733628377015117197402926648602990218709159542534878091590236901776950970379047419998411483504920812687548730268574426667375526928533350280907654121446617183168030030189202568249470104687980890431093830562560834836904419785222347131010570899016308280780369990902688499449910320057323976183143536395694462823416880726219838730769883364135160704096396028767073861723885412721444329817494081222291175555883856080922801054061773558518674579802111686943922339666452496743603198760366629294101575511047215185419955721211607314814992367396592930744988660817680837921267691523078327986244987951026136168625999095265680906045700188243724602815406571201146231952705886757548452632584326095896724257462320468339362941271015199356933266496994255585466846410982074220438938194028936010345392933382073707128845492149321572890477230148089484685703255994257525300469662539938610528945361722150409342615203833570302584097480475940832444913708094038506455600786986182459087612951204582037617404909688718551763108266160946259549990949230822699327934950400107603113365417286805232137931033340022991474322662193468809481513635559474626523739249900959845678503706874101808088768572257395068576510200188402036660853346208476166981948703370158174508768852314844666910723174255357523846321626463044430530175650879748958883226663294021505179884483393407130586010765846785010525840762555094910288806271878756107128734785998863396571998102168306593701624387915519931234976233263560435741346075187481209488071889862942723861641793258433209712750505497698612277211914367981642043092775135881119215400637590334785144873406730499660482030000934942425161953260485374448585706558234628810292375971108702753981602080457895323831071174209526702802189397486632453362591954657470230561332353317763192918169946859264607588412249055746712483584276227007145483229741841591690732808609600385225324201624569308207498260542539145264606577185966367070311026114111140426215138819647788839975459924726997510351743057601928931276142280791077716141782273587880659070898109422157982139694415774846365574757994379980643350135305619759784976239130740110380693927473454918683327907571042800258877160253099383408905029732312326447701130607842281867679005992191458655177522214877502427617021907696834704382642371807059235375875964611680051484767853561162911113839144419526917077095386288542658258212132581623593434596866267027752133460067176811339137805625082509368879683583686830785881850815948111354715371989921993875114994235300631710312037008927490562191126122677958751178198367158354732588993112271689703825239008115026164699195915292748255056821707942769767624824538481518344819488656136389539613655812024427199471704270985511514819219130830417391113878229611196611714993472767054989087427411690850391988278399686840830939561237183587474005135361259375025970302390802969093698248743826324446935558293297316570800539075224546399634035773254464984586543296006553522568405726641467600427043231626732544713776089465218713790263339339247876139081526135656741379785940972044509190557675712889597146451366043154662720870633662613559325172364250953067525821018185673118085755739003548367486191641501233164580484671100368729598114037494109391620261941496538154206811431105834868917312055827772935304571069748584818436821162057140318548311894390420370986002094287837450147967867231398210619577561946971926784194621214519625000402026858103041667051782586175973085787836504860910969998041849013784952237574365095043029991805965391990352451581224999512113686588681438353297960230735146953888879105601869486408805983310182048767338904618478345350382238842372736323221804723284247421801757350904765772493417452520115526667395991011883535891036291170732996784219376218904659944555190142443124899762868360225191229165892627228954643276716957745160778495867860065535205353623636640955657793528643340557851846555567914144148073824513581381769007575658261313228987096222699324050372431100070212512988564660845560876379233260875800041448402239953763379551940263000732557284194260456485807082427127714384593944972698860162525231757386826506547677411829166194007011186584022845588319213773428591502301817596280796886925250050312629648677039266103292279306997110561738248743943324937111782304503620384251324124744674280204625575127502943990237339592834628065429967913742008825285003084479120675024614469563419639990904615029944869835215651699595520963203456655175498126732635869339524898478171561469221058359227518389025751909511362294909315952160161573609532031799534202772982355887851032670534997677710741614066868390910658910404615822328651711700719568480939111156330423867566646344714351267735962052967982653055650059058450806269753554969991202545849287078060179039402479874020236811437125795840133701864811882691062947270209459001983510351845586685864781205549989999195139362149868978411017334388698312042369627985656435623425742598027706184278412624968758399225029994235353223026552056534072596111815802036184169673119223791927909129995607956913647987772335823344786153019329521125428927187008954646342415767886392811222872650814900657791243996343009276581593268753987858001310553496745937765177397568138807498820320019686063580950315478181813226836390275314628059659747856496197065794772386967526546660077204257914897190981737710507178947104356781960334180583758695419974482781077679324649312979049229929538316580262723296107944812116623692928646441803213627802912580228917547049085184823267441336404707465394937799190633308571392665678348677945778081237498086512880666933592982804229360298851303203891647130507750010811053595992718266964281363722411831225617215885979344132190561585481298176389949415714017642507155598665980475877927920478574278126673432332183052351278758469833010988822316389280405213069076952730711026355509081387142904691021361277790891976368696724048406700963856807188368046908862892821091775722260678559314917931927696602705435249066437320173851705033268913996378486971756484209603531700417626414597796466735366491977611396979919914435815425209268651229148211340840252949874616316138685308717630722982999686919048946071629440489297919612374801168834024080600935217421633119348807974259697902421129631369216011781218388087102163885008172854622168169775603388426716943479597377059768613118654997636804886564043968604010217018967254126180622804052461784217655724878075112908010328837725594026338928922845282834724806808080019638732946164168555661889477263446030592515648637736233310234524183010077101509016325155066161604694309697449030898988803846231366159160575837172136865450839930778802071188395948070812834426409691190497345604155461919591517504112440118729018467981556969593744273920854706781238658587944049563139708958576751911860645971583827248871082530310422938813037344301738007816665979242918824064046527659101046497412857375125519263991166682233094489909941320201427146273193146827709261990497570408059279873850307719847765772721029595649881868600467140220152763432619510956489185557053705391877736242476777737591113735140362378726329233972395108764491454675443502998343788718321248626881054420063476471584891042946637510037874954872446864208495037156146726701808457575982601361466745034025688479226091136676223482708673577366784588011489519380037869049789107239455924632117545664869984496973932749475600571126363095682851706003069402266661780369391510464380957510594756741680510062430633637505456006737814416122645593335264468406853534961027219503569141549689675097788886041404148848453797530060430684730854594327275673813839742656588943658100164993911416666438461861549654414045223112274695028686180088426607795173093143708723707126647288140642927310703420373016824919772574638616209847178687646180835106029930713232155942517487366908534125679000813124591385863241759509646900591529190094372668331995938932013167953627154054393395423154044372603639245944492344279927442961816604798866868797487874043261318521914439895129781631431367525815108708181452241574967774283439930338737102249927583696834824044766824056840292174069975379076242098852963582633740557495437509891484145784185987978597218600410139104067761739945638721501935031376931414616561508406533726167567422488637522394454400037052645259782112044847993187258267573714763164195452563744063122971013036564207691072287405354071490255795165539083648552431777009566860880794318694250805372847592075274993391663615357833748361870997837064857943785975436322545881432261395819125025163882179171661707571132825768595662755205522035040914627554402107721142771791195237762118648169213596197908790235510012206895527722250842543982023010658316806171304233226676029398658853575230495673393630039230154612394150805720901577580745860982623820746417794961969241131680937642694419721016496621886933669819702338296375469394547826190014901625355355190538654626172307164460357346064631912058740077446884662752067963871060770519861029513621476131321348741532499704546175694908447691306749053481874769827673859885310456446082336426888510350193072611230152061351040831521710569925392846471060294040392352869185536352972497611342664785237603871666480508248182645892521026030088518730096927462969105721272762788610247512518521647555836296208837367364365271839747955641372273065386420692799938500608787484798683089732385372808712319041147625362101917369586903084570607116402696280291485837460926497166154440067547540007356306932164347603282250791529994409930837226515782284623203829605649820729227078322191899511030165719591375386803671655742930288140424997422550165409524898732668288857610651907140611166053207853919052144523220171382144019407979244144043320718439157347144260363667969923355311391718645311101037007072734865889381806065268235155953147784210515709926509511181834331303006096286233526656895608636067991980231751953978247550064620675591010831833714544160312873303110583940704167300235090000870435800968370852037097887019862194462130045793670331974203927018737933466089013905296235461674076206398327390128005690382644280325957901611007515127398540931870883912979674607336785243525942131222604074975379399542097718153665620406695675711520897822410861812132026749897826849887883033514180075254668470078244701709819064760309102804109913821013172198984246653964251373414954641214304759971674797902910025731579084795364343566249827345809010107840896777341605958812636299592606880395387853398763063402495630485253767645029548358853298767408061044430960543380833302698926024788507742035983131050416543470803961766430387269058583437115197020723261285870838671186924986485213209779300301824738093517012105020888177770838394138859216155372565366965022326647804127466448322953687618541089969395924911267002484668513312689589334973146879847614133390567839351325730982517592744119999135221166441455352019195888753085149324672003570603128292053315525737552405464496355807634896318433593393469792849080262420388727697612815870456987558493157331166164200980284494173041710475405341977258997589480137879507608985934550053694686555409439345385431309675069047981942509141209516384289820783355398778295727233404817255202836119766978634144626278641920281239293171472349188034443622492242323481679160225251200084632580914507330043051404879412803499359562247490602078312161457885549010242603141977676690619975126849535952245202114982039394845799263006834851339877480917632054623342713105052298552223358502782545435961309335830361752814668708884574396451056635101512750793216603266826132901588993351329576731220087180040556349485361122965796272325059661413577992403564467633090189681568961304543947699053148135333575414467688994463394333768135972904515963781968895190761221398783194547602268312896466504639787218342392118822695377048519570482454737787543511346885131684136263650026784996757454688388433531531628603151179047087622136849586319511553065119494647099775159010542856627255157245200917305364808727970421819055914572457004359339444519342471830941904475633595924521754307029001124034423023230957008023080779132398403918249978310008325708553957361893641699795536469246609813882893159166612653824465671287995489592512022644208963707223007425373045959695198254061370287589568670345562547782681395732313762004675829275390963727645038148375412091876552138911475574470383699823361522939603035274588084679833741412837221118947277418324286455711682820100504074212986092886668004945162902863789922173790852352888540200199058120174819710816019247032385245828516733971062825705772466631940684730182026778508407435827145801147391108599696357370037481671224188488394773764877863128150686786200292737948290450487516053593592847111536973657962330741568370856794625274876109179332171126234738759699391758684991842835108927038397070816926335081370841918159213654538187040536249070491520997387773735036582426481947997226505026625661329933699773682195197267627342270898793183321591049988063895988241935600736415056728097067150945999287769904409559830076612858867261435111549524955631987093868156301840863850966920998569731569846176572938535094286053981690443360253215242005463453324006731912918723801452076217644324309837456677454624530316717450137267519220750371989443960027387434134942117837180025755095822601447782074560019828990149935575941704086853865571985526464231462396354729374994587480268493684116072199842900266772262883664451214918227100580624426329583002853047773009282664199609527350594430776558286299878295653003059799817593135827624870791012718899617159824207059157897380530635856534393073278625237599199398957653889857769505939495113724252861714526620152537788940383187559686165090857961452512975946324148307791922198281313016956127608331870895309063980524762908728862092805975246079378175405648762949042220716147244755174797701725123226125280869557944445641473946454798460397747355571831103702957040472539037939375985477355961350704622715835966811211869657041435587674054892040933303204449073605707217666731618365110766232154919803491756331069303210889823043865212887349191182909342050629744528301356890578412995198965393384163410730632648954998294494751597106208081978668216015661249617959760924693432181144636630561762687662278751391360554788407741144356593723584104795017165969303271478406192012776337099803462946764963892987078758831119757572994257031267888866441186578517965108870235756371811940115093589279112525263220869781367521379508314290634802978563715364048159877753715917853255529367867872888656069803793190047029468156085365741232910086869063332911445655746068074666076210092004303556396449146742185618873059119298617590089460674814025217919512459872781801847108740803326923848559878027971728120961813374831653033587553024735869138744141786704522223876752985467100418315649479907531210250892386223546091116203183325409661059741563995572096805031920505156711519220124138673748301040854386305305823044423687334120239037859639058163300941501625370696309994195041781753775067664820368017791013960795280030787789539448945280152427879554821515223895779937369234067330799180043183667221217498170468901062188634285917996745177357989761102275413409054221244278479102112822735584673405008285865820375123596928750805690161202209536942431633694323435059728472862612459650397804408978804982424556725065698332911720783582605855823577968964637084120244213582435118893086832132721354072568759731629164598215218034049356750010756602095544552428906235193648913088172403657975031902649895667462463163867373883494941389447501206329028142431317127891125451353083708626391431462832372498407278145550244063027606970019568665905026875645312822408144221449773922368372069462644406597000061145972914304085632927693788422622472693887467979876471679304629298628379755591066648078327965161300607577536484620439278437470462121233528702539238229756475954959641407172291079430351484627031607148336836453153488058665832389207364029483924405427528573657739355024826446687556797331614497593838764356623163289496219804536661977666740371614668090568456605649641084657127763511780997399931446797458075532086664652772091085710728900466573059310398899940204600709504202753686105732320412549001739590955344285478717936054526387649596493045861218185963295396897645063888546714364781890186812076016519972371019347998038873949713181900384906056523542759731238377136442420727724274282262333770029358710207855964470074760181791411332037319016810684867077220889594388560948164547615641042260374071902268818817183937579098850467192822826437802448180282662640968100964543902045914622238786944016050379426904300592632857480938464681493681248388627436769051695641263201371928642521536501017751336707142655552939349440761388215518713750421481879906168013279276016443501404511324585264349072929467232486346461559676135828306894071544764776396666099448198301674931325105564618307019002405437215860998225495780948959450711743295190035162376815109350970388701278244222933431198994007522655457654695878398412953076123163309160737221772929098315873088327970027868960688480081943219595085391733916625528249575572935443417847504497897828685371343369679483699568865312981363876669033368526402818825710250957752454032764746754576906691667534973970873677330115663287157650550700590740518617523351018191339140790075526473085120653371849763688492968360475083836896375316672411020672084220962644437102942399169401218456917449168399700015302258913488134070518329900943691807796830134857523176989052893197131279713791315800236126775734604931740877041929584576002993339415456803681540043842277779605583681160090446448704210852609007091993534687712751666849156062261474536897786878252248522011660696715799764306287976950179465697037670712208689750300131979072877587061426404310218937008950877174456392932433433642310567522024237427624460478208489168537584572182706815422698781603867213899104610834621687320969825989161206481278205689301530917169323931186007394204344978412369391643390440450628545638336307614563445446147670610616109654652803899976962882698829787165718522230857910334769547302349707916010099214871967382295633868842182504274913416957762043912806679224173092645169923149623240695276628636051490228358103794638772798315165613737076945774513708017665978634266005655419772018064969963325437119656304835483925268591634187080113802520943805105623010023462816236286840773764184465950507556606401395939129706331220658026917159616987173185343603380771660459818539735400998659281074261223874501675441279820784817423934668629500221390974629403477726561520514092363706986793023519811405784075382218392855151425460589428659746579981404499692695573418409575208471742175523619370519506459906273463500428071134952360851296378738563168339444024654511925144518642101481010265796669734836115774877994042715809764663316386282738829282931027927699461479137125364352265008537170188635678213363428398819626428426421671008394335716917332269760365630386416672422174965411343632080792321566406845251307808063379305266186669047780810849584459129177593522029385175041976884415731863881529663920791571617057228883611481925568035048657432408328740482338748446405853860313423907540178921177879092041228833467940661292616796934663638221715101927120207356411221490502110136904406803980799206851911484185303895124568373642800599068160042050319872455295916208179797657184468192809438281763657358731640577175060203292137562207602555486937031596245345525265383375157345735695933422354406259805586118979511887270400985677139407021394880669837364696298848801924334178130658071149288670660295727688788746444989914144093738209199025992936488619771331677542324119169226616309912232975077329935176002722647455712720409847856175355930435698462827701924739731018410856984584742622016309584403253178713357463100139988196792063449464710496744989280709813654220177490371215523473762139059886324746587081507514676629990315807639038553137987496097925470706134313994240328263547774674252282382998194178422331074453316044745489831205485433079340275286907970279334651613316049031317258217442526120294233703539016203881840159937328105683942503578493481502174383756024404951085132855133553352573069710706174569501045174258423410973222166211251967541588690487889014406499796876816463718830567399310068620069270452876761976552780150126637914339999684991065729482053858182950230521744718522792652033760903443469085439575225492443871090230214221735481257244056876395825777960472084496444872594987323185846152268306616513355013663881594987920123727786685818408338343728482852417467184135470554526169208141361828591626716328702828814444732665451292921960406996484769024276124315811000558640802969107020215616374848074586987600259035935521716291163241960310552979134837553760954281042607189238986040962866908895128134598552437254117918622174853506240515054530433565779355100943330215297522919858172679772616912538474345130623343243620749282646120058233211229974907639798514258005207729847330682636985996232382974277388324908153624394998748771451018232213515991191284187647623413554782584917664057736223614075340570025654217364673819634270480835560939517813155244836689939380756304865686952778614832744813204265608699694798258972129470381382999070110618341120427136052222881808267482612057664989814054113038914001520843256244316819021036350705256703270811530679271658800466990550888046591101049225115762526754992496332859508308396290939234346784706303466511724814186380581612055506409402627705514783083927049161974110406422748970552013000059102654387742423322121857671347131947344725385374836471667623499275605771734000710699526747517336146560597582308866793145647197758667111225654512435460983283251457345907918378382935006856649870108692553085048149047352375963432111338640428887445415907920693910029707608410039192901199338192699191078718534181735717391644890117435038720366493741312930180563925059064474027035227407933120608344861501255226403723085894599156765049316482045679606228067577936343641578149431157975139193876522709277923068075558287841425109123020267524969202210271226961538744707333655076364471836102775008230223110228919645201576421132265698869228181820939382847876833208088996281821767178231146935863282917904932240773141860171169351407032803631814745623578666690114835814422122504621928120725145592339684851546730591379915333737857101395692986070681490695395346110492066620948741326114631682906095434187125855270272779935731234948515834499509756176937590012582667388560030524816433476351119561043555011354359427187519951653927892487488597896015143722232165076410077927168369934685774669353314496887300682119454025106769131470105351137632493129457862603874211391397131531329550436670042344975669331311236361140209662877875465776598817699658895421655941204651248042752981440982431165527279572708344336509632842885225574483001420071568170002881347007180522500825169250319288513355403818704542641697891856418022097773023113634287229847500924460337608945502966602029093574969115210026749478342632809971316878201199913188608200891047562936584947685843207573324861110426068624791034107149199499009570027950915058817170897698429769056465624217784385778623373907216321022743057993208129338391979143451405378120544550758861685705637213562394040595428211455291565819133293342456457335345589385826818358755600271298256996631399097959346776493302194929496820884909165538889503247206532728435513661872255596301579202853715463764870326923193410976242487600605104941870999605555231625812987294649626022539519314907551984574782665248232471733188972035455122380912323572986513481942121785924543311840724672902112933568151057223025001858310690213409475812858335627978691019467134873084720383521025097383191439586871114489727517092984070239914297255862645669154258226728412355498607685194690327054527023641022535636003693177218802259203752427553897086354132458025573655468693423761091916100466868178086497283362179843786934343017719091737265204401664775880940822028063974235753228302920308164872814644229804060257391114679698484602037130661516640331989806845083483606152283894932960567759891767821277675085925048396537823733234767021206893761202669191133664384801506131410802645141074271279811054678329452386685057299114566339406809403722023042555843140862409576747188004901869810347138436780119712688501636275287069358457316552954599437610861473738153721442255422014479744579594131199790614811361393628813071175424671689668682478106178363113728782566558155118915493993575144238841945712373935569464569586824766432951627226793089587583954998484208571230965099842474926849868210243811694186207487494413376457214867524485936799655980409809388123480828405800064003949359040517429494773076443663757329011090445816220049421463421187021586997332653855533660682221600095828519487716972432716918846134014723028525964664605357440381647450272077028140451759805534868583342841709954919295436122850232014035866735779125525948812876891086276997890325766889804009780249907604449171583972659035794086336492477621486008946281832146672351832279714138124963696811353641332818072843487686194960971610598570001008411771727499018711557373314633560856885034698441271095081545081961897445853548930182558217037132556260771706453190873202124926894564442625736993063537615324535801614263280076980231856337726233109245138152565942446299995435880786375268454646804465405214120600528416957666306323661420459409262607985042016451853316539395341726121912267306427349920817282283337089525839548172458831717631808250590905111935828793335041520962794996594631308012774780600854303485264530211956020510218214037935953739647126476678642506751447713967076831528355470958689686852072519282476881149323367052317195203141624686232728429938491442818951326644217784400811109928558382781027907763529144777736192254481546654409286519487183111689376230541515574864151878534428753813588259847568890170113502902946514662158243969675410868673040233121439032623657279333640861081948677721692029967784286700910210741794756840978768890216795193776307078665684499549354378822946255544082813822721603238617497907122190943339667329286066329254160963217203336072052097633618734255263925350839156226789703954968153214671232152876933411388774317115006930113150103850078010393226342250520105736269386014957628685921593799195846579697998447806724174135982233713139350389704827198830348733672840984600863895620322128450475961629927399927990934247861355934662486348957758444874722302690953954422692065006496177149900487789959338812598095164758060706932866605057688167755973362187315309945916083810847296259596214058105486111389677123220567227130707978938309208291006572374209375999462604691465578976950721012503712694152729240262543938100739929645747812793424619439589535627527591948617253973335347255795721177195079752423565961429574491721943094758026430157052339992695823975680020515425677310502641538466558486756481441300558070089098466348128093972623019591088371263605851045126986010065327775538612712652173083888815652998323752029798997222022563131670742311684881582856703079960595151755214050660351434421867059152292558923077772161098641116629432120102297207918285721434001754898046088772111640770803303281372892764042385131073128857999340179369512463328224515868257600103616191673665275292373154846729238100977528622850317805816710782051762054808690452864597446587136924007599528760111743459530690780296491819919089331529839026860744447386751474088355875109365654318692883147900323315922635209373685681921056739128226627994459481312515999066786973688915513001292567940332889111212432280175411070069423740483119932699155606096090245347513467315743237303373590109518205709463484981561530656832825426372145453340517805035642221816833243758271631505961969125201783662668265008670728734640645607756486037191503480438992835751650503865003567940432892726034261748750832268674968407808980254169807878417894477670557029949490714582902911555151522527806176275987168722253005934043537482027641190618092614681111930759386728235748020172310472203902427745568765884987428042999345122460640199148002140620229188167816008782693360522895463784131518437121617065436612539756843838669567221933730482416791902041754351529927754081797553954053828321924857853710193130673107310042109787252596567191863527472638465627979875607205601127234428653829387420325664276544825676487116246138874387865265988396950454218300763002104036521885435575257156594008787527842686778399922431880935043238736035096337739896175891221409202194824861131267704447305463577633678285265594251270954810620017511001749378778994382337667471098479850084923120627689372776406725497016010926506092856829424694213424695519024267956862378953042219028749371382490063086119339627786004680827323382184593822925243241412077590271534574744138997414450720637484765800789599239114205520395783299951765468246823506643568282915590817184465602716404207872336438920145116687897200757885647867473369615126217429104237074677007826496228470530409331532289130123041707214773370730976881324721177339358116229174577612822485309337039039455372704743330186296130506168858270860761410178988573142494792784130133322432246138827627255967565690506638905380460658938372607270674213464730118489793827390226628784289228603256122284089865046745684131890369516753603829273988656002168420699826396250183846734020799297837871567944612066238211041006798255118994633169691169189620686143643075231504922665046009443073992618480225886922497266881674108679830466803236288603549077357998715397606454019244723495687269203288296220727972398039811167787042536813608251157129540402808689223335224316097368023209685361711652828555414714159944786478670963777945711986045755425983083743177626055518004610252445222324909103551456714150456362273753518849408414718929374828528063853972829563098298862148556200419996414942019692765446239990760083295790061515646822006583751563508208314167513864794653548329766840586066026141834163037885486717430904056459991727405600720242535162257924842350231363660526904182337108642328168998652015966640349867361205272814044622307664637052775798943575149612921107520895408942785364963012539725118972774187641944196908629104149268230561821423042312375654072683741711177438358175917841349466359689459495128032107266364528516996829976597121669036290689323874670700898284277136385244966178458582399581549041449111596730642052133545855882142316462305180448106145797720124438611684400861880520146766404243474669065075917919309907691096600849917437699105034268496085638120562631683293815804356016419951695550140815960982630958903729093594530545560517743910482954409833887111589888021030642824096211073101269568441267838939358970816789202788700586408273327572102438925536324759458901263568954320315024929045499631513453195582139247961310364795395947507211640493961319846505174376305717397391337064861627266733706065311394509780695371065340198033014371619174681036928997272770718601321369587899965116387686435835501482596003490630220489936886846870218505299177627031588143251829607540653794738299131375160112203812474222409880923876281910524994056216641669703888639254090379072016717977678174623067046241884757012794698279742427049455678887289680420311727150159946278707101529062340562364374733054913843328683259080353349745725373367747767879078973214569217993654876488361725694732850512484203090259710351237311506989614232281785028948243599789153448987366514333367832854864377872576986417702337932569426088971062547123762669175675233160083052454253491614795632422912087867489088038041328432782288809727918668586965766192012154103379089141235183575961664587035931085415041457678067419512805580325240170509295212679330844453642836545598646158407403705804278226966681343999994979615566669484856405815385909870386089500437931597136446474759084484111039213349192137214252519084193496341438433617114001358235815784475465467584451685610861461002524270875401023054989867962691284841857176542819047552424292657208254516685297132948968380666982975687566634801897253004225374598542527899832217127534465302284457779527577919141862697971684008432846309611016748637680030202440329219148796048183859723143335076060496315655122778576535150783246859936964964916753349256299434912232403281638240211541093181677301592930063493390820226255434291649003199653198849138405577263753510347344076938511275211129458606737818506402011131733047002869859648120545913503090954255295064191611655609795224074622402502458814712747312087313678328072631776277677494575219707765869575900136455850201519329461525566836164141166676495792872054578951914652787832893689099003260391389783604263192493394456113981162201423428222066705986607140551662648029263968020919102470273570814866710237079793572617587143295458643191881822351760280456038996367221483294199925907403177320686005733617440022091765825217620745989287962962958124483743981279061900712067990759536434514115684982574538143043769665701942498247951219121050975124606064750286489139932792104877078304087819670341177252471902323738222411326453338977203091907606419630954701475622778787139174864592212215914627791809231291866319302022147433303720949060932684869495104925408998225566455729936961360298870345680976177341748891354514231691924482191965073240965761458630993227626350091550170280826649372088684047749148546422107385868516002456984387258064308164213947808535119431807488095144918026151324365297044568574300009496717578642587865389586871850394053836558803658946099312420659546433541046813529748128882500827763866385843552389836883335310204825751024779077533656941319642854563029381759640752109108742158472746366909123830953811103139031815515425434478304549627011344520663964555763329880109966380493154510237403499353590340963848931108434557317221163510168845053422595541208779241480961568524823798072258281236851434235090671436127702632483024911422808437112858274715622177943785194756791531306615461093130573978081679662932368157567991855825059721869495824958941126302916998737352428566565460103416599931063943169737411036316818051585316851952515810539834935583995523062268439545810213378263961806933743426066506490663837159051654941533590955490495097733334404453805619166816646671574604206498040581593278816178629040640132257439801966987977940677191200545788147288970803448395767398592320605567132261865028125303333368352038270957740108452389837733126255713975838285055886413831034644524024560635641144615580385383104632637756556992732237787810027695107985703776252076125623987209149947070105867258102411839203290814362069032504746677055509291846762389984112581860754756353011176035998286118430911983789386067836017142196931310348567405397693113780863091098845764273630815666607091035299229048554376204144916292005823285964033484907022247676156281443854499186752170081144587229061190510316950695954593001672172320038451319395421065319137252505654536314881430756543540804209015017917767821616425634247226074976564373596798901778986115625373148556860009899991335283307394852280253275543474646304145947730634514243782744392140951088214707237741969860719393627204909190016760576395260901343608100131905343513247825900234133656202808839480391836775328356933223812776249374459729287304324713962586441602138446683664873525170635657821111242921571962670858459545792155602752169069652711767448772962642886489527172272645442792905107503606786304823999691615698009111125621906791839633538873774252412109713291082759470735829636516079360870405412323548188746533959619581847329610856568620214896774730351208399500196960232567223729621584563577334131634616901463346767331397260016651246636867903283029841214547579717981639233866625441384840176655494685117015918138830327118430687831375223169517208028981012287112002069029644158880254966732135017916540854423843930016600621399889271070778140673880269142432065909759631743888410697854988922929210832338289041056823860589398049379672008393660535226542993022499468263408212052389688838958348678270315346015127680460589101387949155726211405668366677888223023556691301910932800107571347045410083975138068232131301953399413773318908519638249547740333747502704445221199191437538788087841625815950330512757847233476306370906706200054079356961914147876700286326282174011167025785969726652895371363911228324703616696681775443039473536818801548564152288804658606968070608092383861696849090197273449660782823184628036814991935334388991216721214270272654614918855433329083458413915904184494586035527676969567740019254088376487413604531953806288020566112551220494079736881129483343754883594743921633223633514921266114935379492457670198322764924352570842270212775324773569063382757087157123212847245816925026001124358386689037021563501999543786119180404404865118478522340231329448242614031371120101678081105617637626194078705861686613790050590017835469603838054442292129772536599556028508504229196751413562660123029382756688858947601711883129210354131602674313574000400321746470460933066580816583717599628114568443234789543485959169284455221483891672943899290960973273466450001832566518268781441710538248156644662208838051118021543045897320850749470618939794669107467644552219138538686395994884732491765742123495813161412243366853302104201636546676743997363362247474524639593734784360643935570187579295052658565002533892215137880559445024084104778521378825856085310809823007602204044372320278533475431251745118474077717918160784820432713530044024255320311600945236892239234070854431913156172288559148991090358797091659933990685371098350931989825544782061264703265693602461397516013695840462914183323613377846907031946875248144687990278244547548351791723818436301112432251922374123388162708884411052975406813601260088490522663438469673365208762519092226768675083575123149663623065119360877430189654584737296657948421675749426578088135159228337595760919972227133482674573945352936007310148269259063285872173990110106745724760035215778248473493515999099274379953380305527036037186038723195937777543977419211380437004522971770879475692665281336288699117824270026190963264709384038428423003325545296637559179893390599602540141680466236981827450202193830956179986433711436766111853217302842317633461560187245754792917556350920895043699332383428893781587198751243387147902435271191258077451511477073868510543743871195330701381773879625220851071538900346064826391779995750549016556184744105427676060807556968385942935354757371317105011147720154365535382885321012878976587131774421133544179561877714948173045370436008850849907602202960677899632850842161447125631691846049681314258351999777112171675843642187942843604378691524681748485861027554923716073043890387118919979195070332384350545380616714597685031691487435097806949396810661772522884043655949856947891288046960752105496483857517526849667148973577741346023978339990290224450121732958726168927711163561196379278494966522072795780204558567360041447047233637762522746734983832338620117766580811401546548021767589242720976230896188554910670619392038361979856597713495730447709262354153382156549721477836543956051576331725868658446287447824503850074071826504980809593476524657455049409318093088078439722151641863102628253852143007713876742994019845801152846599307247216232979502893160950749363807318493165173250507461660959189722784737134020049133483721408120944576528360829109084535210713850560335551967875657089052064210666704383970618702314628977842092358672358074451097217853780006570431408380367839772942411952800405732817328767308592187238893540453869582506111398446898972855155406805124563043610490341952096123877637036221058227174174937296332016637435118195368217571801040077186117874145982958963672014629830706235281875715934378814219449751714091811384810518596554754645652281225867143151126490221302032251279241020475731046169465405410199162085403573213071441050741263452068640789990519605938270187505343277959364638503331482491063858884447024289422838478043030962004201185802154567491962817379994043451436693525999654369961837121987107004405304909971497666210898265253626149490381875842289403113493313008142634471112594844782716150081176782821157978806228220205364533905916332229353012673040031363494346289385387535432492568947617621473297861613262655938765349217681138371662649850427082236328018291279379326055691164576700584177093637265971719828949486044178051346116146978450082137164289481293549435732750284494954732978699650854732129353641792906489078790758430011448973400046684724955222428080856694772601376728745526913682371433753746337425288671194263133233799282837376216927012263688056146475008499692511230716326072582447075205056228203940936730116870980801534708304446380125101566884204653658322429995649007004747314417745953857868960274389516646932493413048964290778197061389940165813719576927793973658670497150144448781513671391076220566462347144774094107947871771463062529152282391529166827592756799430396897287638777853777504621173453960395107935998397087657906583454694523070960560705686467548054954974191134629693524134436856028803302863783582589701608803373470355663408382068049441113158843132800829204064810785794202247569595922340962289514643320830834301043577248284813364995021471556185421863967435984319567676674291557377635565965132832631975124393119917092965696131938850425128174590277442943725944733504252306827421435753154336416010931455076018459837045967956740111729696758761505129515097299954497962987770409888731985065838795275005766304713530929610541930431262448618864042595093000317622712223188909766225070671369857341541736651585774411781066577330741910934727502968605509785588240466216199954875709102077787373357137278029626871048286544160781587556582793437911227679755539873808475216182154486193325055937652331293282957098846655034493104297081323451378052794774141708458510251347275464722712580272404475500515306556271947997404310480662165245964789818346448462799325854428894894392850156626600935685341157555825095917328371984069766170086206805728293636038595401351274921961662055964582653330171615351179711203233150599185868910263115871927622564735196273844719853591442147447157020678857652300494260989475957532735785427551867853903486848769335173304656287019485092127223432405749702971918380837351865507722170697850814384349625188844278204900493674350948934241257520192730169613665272520603727977935292196246858177771199850555196731978971610491690420657946697047815111786239655146640665692075125513362084210913244027598181769634027775112080566086513697976347459440092353612713145743479620114255381027132887753870294254815942697275880607590338443358396437944231626828565680823144477453572435537624240774935262838631960067076238070007989775359891466413278395647744090034654888227188298561799559970852074160921756928258337128946016319016870372475756603617756387058232632012003731987464016509246775822345132324225088759939009380058570614178653705751137791797192404264042553594798804190643671652200387833249257826924204494248298232981861748597877499521455449810772220391092340461645771773752046302426051591256269622240598595437260248591427766697065438876680234208299895118373030230297735648526250405020593077326170548960124720983851432877008164739121870509933364608942985649730125983563888131540924041060548109459487989893394196349994030096783990251611137910233910500025584931166788683528034561899279030831992450949185917227688646343502770386913837028849799662095353048764049553398255109107813988814472575948286733704668935362019701554618336004492610669455258853942674765280556088876890444204773763038428170960408207666077246525427725026970764619904337090187518711260497122160186825282701418266210338478946247110389796295141200233388934641878926982788756419470593405163446069432154295767147027967597175031022400509069437065168547273215799191746647414740857819597586236711266460299583316849713600999380675514772799432601406942308549866977686800151371608153201348002537306834765638999454003500349662328922707355864743709694093600706379589273068275500515821975092643313801962930976304343895889882160272156216796200808636037416494617820138700299935714867265794030378293997590993080830734712069674750732734318450359920151504532541027892581228577770866619111074506970317286414061651496716971944802531034440016188208430930361059222820207205290075184679679612439397800887656679965121924501439014749316137831705150588557583714302876086629725552353359346270845479262208429768820933403546920916969121289016113392530683711402254383156879391199792908723427211848689729291507170553431797853364776640352094921297218336381232489344394932858464473031907581970188001057532539725566349862371893711830590980038311445417854726121429732784005155859986705874107211466893052036134042246254269041844389964900723630245864457630789229888510150092513978845495420615330223813538963183320573438312777755982061813686314012590731674478449283548389889617183133246112731004797999496736245909803164853571911747003493930122733140640863257242202836293937722311563605475700815362399797287511333478662437018662633669891146196889940241082481776417238385013538230489620194008225156868029946132477714614071788260524773033262899204124695805663449571149897161610684651122790080366981737561735486874510185399806105579184089631028726559834942725058169673984477924640200257039660421056733912743864209643160282969181768063552758279824711550783960190520190373064644391357781768786665607671363932192478745750408293833981425935025796239236342938175473354367708712220047974178569167538169292728226662180228752536110623495305988512945892408666385089082808885743713361774610883810161701472471593588705650190046081171843553295746591892779012995083981194831636662558938786693599330684120429469647648720567553251761177634726472880729876763113389117612437493135645418058941069666310780319328721627933092037306109095069172988881309576031598086625119157733469160739769587137771519739371363972622357587138510829258699198739638031120616585999675975664893173848555886367189898016914027251903002382227295235390949591964860261501283214792627198480190193474454155659506113945546732255564684752976443874127005512161134731309529120899259479543631422246255230505120861992916288450123215705019955267336427136064302631909183902859834493431282898881092059221254427705018168262000795974508950167077436976428878929447404864393203749394265263260040435547541132805790770519033137552603123080491331762155404399214842616449174710724016246381380596039720487702890852742912800334817241714961973068229174693362421159961457373601786504161190587105722545376478946387686293644523725423872705245062189669884607150348001970252394166643891871815129206722682760965936612893350811834759772541288032663149282616143585503618258196220953704505988812372079675685689197231864469511200609636371946008129717930187157528068789068501362228805108510946913103387458517706963713373574309552248326168192688021610961562138222102324652732512515050818676550926068047635712395604551706707662491108920518749329582940461323379294604966426354682669410117288009033432206473921950379176552186873079426871883421404192553340970160683906455725031018524812823947169964090120694126119919943116601966098791876403713274926135346712576154830273245570137428790849551025189227397070650761158845626206901320544609485881059961199133206763102147819505291119135234225549946640244223189433867876953023391383311251533670556919281844740002396048824160262690716440915133792192746536246237150012915854337616291302422085788002022568671809879600783841074684100447049219435044549135868157689648290581456176125174487914950450756010901644001312984839262417017978528409229585573542605365663527019843289372795166719648570634220514979348680763703393873790241942992284983539316205160501802502343536986537068443120351315672809793782318103264795269230566380310076798503236427854363195565050365277991027637481992452286152619354961140537293410066631999146897077304089675156172456695928549943883094362682443957475834003666760771016204550533844400097344002157771310218696327957219149027439230973652158413711476270409357011175326131423759634901254596797691878131525473716612986539091627686619917334889304913968595307671143711152081908764557415900426527137821539384244629688373925851975985954728918095298929265533548494793874582964673770807905902732809199664267875726439448431104355634231346916522058087691624731317028849346861001834577220709702090110848184748502402824032528700034685777577742817565258474903491237811088206998525403931931306267318176222105948525850632247355418521208610743208533618184550372519214849853414422718482107233708058582993457690580331125573885848629495086727558710603142795422662956507871685859008083441274702569509543148695172475093317637832992095542403817818281262000926994950683429754067248076525924262309902352944097809183496612076012279720527003275886087468304869558060046061876624885356352465511300228994449091583889558567534608819783357007110719494533082660421655213860190379240087450445406222184254145671646599852718525257057168322039882594469153431306008124890668153846289620500414967050562455938115678720295725399802050309649991693163085791641698691420461483277364427282847406310995874692269036349483403814407311321435470031791247682166181166710140703990234578240523223211726819989509484023211887940513888584492910088151467169593645096249213550428994775103038860909846470624570161840688046735669195182644798714051933938525281999697189994281316693555874125027062426162793037600763680139501009116731498241486124665820079360054299027380434537002636152006896612191713244659829180998160354163780119010171024201473178853362821289025468305111967198916256588540023976810429433457110009566298436240253323477558795234811413947702763388045084639877455563453302692892518840291744591902845289538972865871775375376194948915017893947643561371970475491945103322374397093658571129277881703169741537559656357289363392587415550263180320914168520604948309311014378556300982330509467474366056790353070828537206903768865977075180711105253844439635836531320155833464327848523351703571372675870831160618702660924872410700610838751945725936363131159345850760650033935921678931374247853937085564978836330941883380855529883458318344141328823225001477985018181805282700359945427416601891216716226250233602335373469887963948262948070092413561023194219062094849243815467869356707421431126676618897750431642657578020188789477946916481228193079921000364045163717537794838243209493661846205672396610337577139739192424222626340568559632685321424609152239972123888739476846246100799516498592101491574333307697395364966018588973585882331170551151059365839355766675510854646044646494018906038547606310768818808982925470295124702565286296719792059661981444764805081940845579022832950982993393093489321578623049477486280354900467200112692898245194725613343078817296960864629219799258873281401155069249586014694300814551091588530835994799841310721066764257800718346806764459059663448391779745398828702221884602219655386744387936822769255636643657052689160535753789026317067389875472561800063353576377615949287167918151288344568582528164774114555094988395318579452366611000745561294542928786579866105034658149661456644375723291270599515971817318992004590092745959752914560998832526080815958526779341174932355742269282786594656706164371044786309089427896680230800824031901015950715170295108996769542169279386961428602798749125209997923802107696523992865052831976757899714326218316530310969880029155345642529015555006536409816943214685636245585562834394102337996368252798056550781405308902647946872717237601097674777713722743931378456792673290281429889076145853082711786113300920027970284412154954247508746843078839695524868201560118459556788915486325703947091551747924114175824662184351494295642092461847335899848220974509262860406890753800422271957945938465419171629643053701110073583004816094965026866024969014181794555665030982311156620375084271587453885082993898538060750593170324162054217220846321139518822677392621761897366261524461169382522820480781758158079458875775372055148437923969405196697410412458730090950091174204325399283233937723049102913607478275388186368238725434689755093029566905807144670636611056224521096035097852102357865228646759382569220352931715601280356558606966188672314449283552100957763023286786558471657346720881457741494989354747867815344662946508024851791469914604601987992296378738003315625638581145170554905775046891156982274863389052634548079995853988229169244225915160138947098140019430613401512983932536477241225946661912300332383839882594146970649137841964159961663909258025042218825096453742411509699678115408471041330909392211208495167763200757469121661415136823712749529180811494375379340405109424680853528184684075354458605873469492785013328225003811098242887116746349349068719496930389660568551033004937920434271702288834489223493522534052174156076379871893491594309648402512013102269233370699526439667738197899478041798835087847371070258600478534542994341891401562229727373449725109009402083130987667315400445867709520932804877647052601846693155659736227521344189836969248904465677401540445013571139996392312826593619810912364111921909040425251755294094975112954598315597631392380562454359234899549446068143004297544725468225647769538506250406330302048156711154410286010541207135917802643611274422692602613035322497075900730895270450141633749283409628995602885663319787184605281763234051016152586003405518653406059182469491853674189125964964970658134300286885246605511024444224945658285802949444352630385792683919968339473836545146161871474794730269771515282084243758821781869039813972829691043846735141287837945229908155287218999158553261733941835249648194326009753506845978374436438436433244866016768331945345574366728791276473142633901533852746721833460694788387753875200823885661468762870760203004732697982678833459498182137324069963298723695019676608701854186589979006104373104052389259238703118296915585910100061309209745419625218888299768554549692583571713102104465700435389695267758670191086817832855859609621270275568526315613741411221159282142164249081236280995090028103240729011217226684511878820068856639941910194117872694897539664282139667636029889639232155761490763806078787883879164232658769904972660149259217134228908220109101269157180806816510030625894828421228785415963263576940600239879935014174516431057703069614986859784398369915112994729572302918711725771309439911285764009166803471624400241875524785639361258490452257990872774911364119047913108417711809531785248197347822365703146404690373967918027350315083069090920275347357494706674046652626657510872470020465108161410893296251422290369743327254425863230223746471082817446315596022836031694488435296369609329565433653004177751095015829842833945503076398279697774931777015287640708426847542710875695816737081155204508949868670743992319688110723800881556993851906893767451436558123932494787842571186609386500371002060646239349272714720209981412611523869297704665020334557065247984488101446442607223734731987835638209034665756062359562082046998637639681438518818326987689745051013823368075304728593353795760866569978059391813271691109060895931663585672867339601874077643126745491055597749096962013732409023845073769022488809744384123698140648376181704980559694686076018519146960452190149511864487544225247521273440762307850258660362564133555880694986695053610808371835517256949971875119160760789195296132857795728056506442794218114956087983597917666248147152204832963551161060776162024117845817119949172511859130405511065295957711430578232524099918227652316582293781902652995421920485391384743247628989289869257390579747672234840193775470870110586002230225536851043886277259475863600196374335998987564133610330504926972562713967927137018902607485901548405211052684546150371033121388248305137513796189315177810696664421534686345236293366880874756942422749699438250145748301752358689837986669014706051842448199501173021097170583851694510484921356259676698908417036932777385028242922300903401846601854293547734782302233184333514564186223243306548090344486599036599411865198792285055516821346322373871715066339050365119811064610330847910837593833997033163478689787425182571817988577128458661149992550188717402807323780690246449472850183155819882296399414646525279073831913861197823603577665663647382216315167382250345657437243045330928864415997279429887275342229227653465495418737497099968136276736373258840387548979263240358088934359658240727739965438592852573096188742412606295438594531628611462542356276466256706487690582902366258606955386890562769595797956872885325003606795236970171101890270184669859692967990449569197606044081179205998999035663566235091846083882623288386310987172057691688735259331015351454080522032499700523777638513712536588719618675100696889936281854819376498025447172935936898294905515912157196994308303613711235130481175581025734537611004800700173071905983760592452436333171955370351733186702532059648296105453870352032533285944676489268137277714297853126526466341696303130099129279206737962521815271522992100493612185411754942680943519750104024838725434539225989165060189749160865330431124441806458748275030429441031151936138478732566490395058333309802662936052352045780205695390619746634510753178977080285249731724852665735242550359716285437375554933489104716034659510564217867729859203723415303633001457891064895493810755230798295789079820790540791138106941062571385695050359011523544639899031936681710858630718587261052887563885348739769286798959514291542195770952843204528498083223484346700952334812037258740051200221679543014265007416054123092801732096668165769973894339175499611113080551994880799208945268548145465322474540587977688932274256238274039853103307501357065786838355901833915928750046621048016156949099734248264099913375018941608061937572358030311250182323935768082113702545684443234222784124229323850197163401273801726901052638716113759912531444685801557142004301596278217346465400218931888907794580086527888586020074322399702660529112889095766537908323427432446833657645061017092312447066764559988835857939078449423754064804527017155513790421689631961213050825953478587373593226936713149561206874640850457568774198930178912076851890325125002538586027613056631647668523387015549569803290216469021548709959504977516229156274660837628163598250300462705341277378326102537356235048959706797180690505550205539396596276836537084750922642950875135631430975481438741347706160964446255796617279981897772273408979214316991067474074664691665602021586177406535033815422413770319297143711244324590267600585529762202574445864527763198119401642203114234243212255725180567073930952076993097651751616386934845246932235051293039222195206714846514816998581702516520256723050994733758475938066238273581378005060886595654953359374428949978634441894744413543470812837758225348748622335644129333705398643449069662081188245618034912895922705888205663822803910359255873004769843690643866193441136368646442792473008858293147567312930782706459944240416254615520320451780882391234759605384963607392821800462510673482516587557166249760152832269742206569381963129971155449957763013608461554894189225749299898876478651866629730211770287161001882617082097801008170296424099365656603650675894032022176914986951289259040111138666613239317660415770513718082675312559736303363460393843789103385414605100357123863900679574299787708874559019511002904992212527299410809684879533394575051008495777088008851003680765746067520126844715910551649556725134673411601929645445421919355374013507024424064317686412746929678014064768636223501221545409024831685580469713513240390321072264462121177580570154889275405144694957421037111557625277745398504225369293320225509496304267298634116888496724115434852700596844274695446539624407144256384980517833799280081461792057499473411551615234855749383040459994864604116998057773021904673280830812694207134540800086130529288793049470768951242220631056501046949727594717942329750261549407356729934711844070280753607814934914157640066230789316908206771334134656497703891633203712886704204214862873679954472898334074745575429143356164815659409583474071672607142354107748235537244085100464534526424077709653447920201293009009094779479550225107789604317986543145701081972736588866840952916681589823608128985703876580981235146298102815725577452559822415319492729259596873906366604026749053011399593106474859389110597496256332135168494833334945974895639028830822705975449880836847235538183373160909970816061296602839436074017156828955915381969439056835025359949759278826274926869561198018880636644387954114679553871450163174663121000865152069305412037352068910452458787453588080206985456231077679898997472849499525075428916043918008092231495526318611782899604284764278113701989034597881405130347304008173086578775557809607663677155976183697687022629913715849191898935072299094095284097012177531733709134521319993673297276560389356287245074278282839792989782354063439890225651538797794956051112260969931109937230485505207621347966012795229299219316410004581250759180608749201408866263334595435382149171854947930897275055464883700988899255046157274456959475319032659298732208786843084025303571032820660947813608186927758739229729031299864233090169515285064259868655810582516581842310031324293963498234127752941946056753049148370406876625046858300300061677656273721134534898173975929624870094233429497602614363930067803609080294042693535877101984371941127324913959458850818030411028793390456914711542740433726009356948577582647731033672649775317335928490047873759051870854682863607216206099164627882421468364091769221948065836194894690529123699079941846894608892347490259357016497526293633196386248356504605465280419059060286472213761779204098669725532028824283282893988899540589406360610808658898278667146928350127726428266939294833628163227493453308073711755929635723741621776291681488595629034046836914982064150733886623398068706671850015972617583845485972375072985245245491526323080444482376713062058909581589566877574886517870399757675506187578601764427319884072519689849830438258917240075942280392559323308078555436635846367846511985571592554740097440968094319456403301869689099863857381792588859564729600770302159618264955437933297715891711030901064578101675978940793488348941753031153294219308032993172098247172522551300244225190696853602588107537041064979109129296444691062731008131453852699672109175971321217736638589347946486113286472115144080853569043480591736788495834863955421318680375988396852703511400436283631133568756145735243874911852032662467499771701496576284494798727887267798823122875668024144167099841821764943173746884974622012867619710538973796573168876264647952702689201354846143855673481401752976932000529740431075483548818132081384090376410041801517814524646003607459928640523471904998791250554508498689488991434828899554007927737232874633841096567159646771038670535324971467496190984292906786413420168726657690402057707167738994819523683920254182172533382339227983961239875725362286683483487012683766106461122911014736546337792330965276929738782862478258188707257076046848401059157508254356754614163765109843643055899463805289367051919745435854772162564434847832223614135771539788597708070054115113513334245029526189507350973535293636403799020551657903326016226513004944768441293791841536642461295883800885616451376588464045326536013892844389501897730975602369131096010210066083211828562832667050512876614214605305641674821659679103027539696564771493279913725884319767805756908854051205718112098455871533562461636023882002688306479314494456433078604356788835636649523798844938139336473879715228873516529028227922986391843762737728781261993758715169193755768171932530187003124097902451742359973319847983899258963994249301415088143251080879181950211614033443762032933057901170417240492852516724575833920427007579097859665516873652822446564793485386514779107437360701253053314497565047319882547889038736765440232038169237766263087015847285887638797993630200175785000875635904736957325067547516360900272615343569513313830933999242624933880195859575095505563625595332374132165815623360101222530836127377143089296984744580038283081696122143452314769059059499994488018963769094993128051865622133657630571224450285958690706353757107792408554734214969052489613335115820052417661786344237991108257801894567243236026087302175627194750888410830765111156466835449237639442712727332727203076150162585107902188275981308433560531762305959014155517825951181587344747236789464483114232834448551052034794179079799237778364818690053531681320195840691429391368375794517077736130926086765106203410826394980426000734282712550737491713981846596795953989806581725984919954476001888580163099765500419497373821137664102653321923567741789042175015997367755319900394885088262725250158182452202427451281273647632161827200963546584974013364412030235926975971403086548564835962727271417269896531918048938091096284740563389500489167780642034368071581767380497219314634502296983692833158972957089605257497068020694219430800819622750678466661223858883188714046108006267117822010593604378067336885472286415436492648815540233034944851841605933864050958196232072221757182453725805194905483144521075705418959662086303307547988241741469188541882966097896096576319009424124140766748496703971044083227553461169950532809057065523191701270842491882067811208882423671274533909925325383789168715822115115764240331399943177464409840529345071029250885614636325468113909980306766977098528767244909569913730949707002670052614455554310036150727862966747300928398870445715699189400802081327910596029535654466444837804717688234930816000134218629769048291934698790039326591244620233227751154857687319280507141700560177880242721614898763438383608991058654170057789335693787169609746639638173744395627545722661748506695940872453808393618642439273501931289817087418661363674294580491759450637933360347540524712598555284741916395826809911414134057317744133069174719994605574243301263975584232988580809461719513321371869145294092599069743659766651789471955165387765489768015911394034135890579765530568058780348286838018396220423236374354338913256456125735633719736806324839655212177376997585253868869857300988629561148647742299118648638594292142636542550605186272405186262732954355343786684151499565554131800858811843125800752285052914125052317970329190740825363809988435085102360142095745287871434192615030910764261894823892617208551220321407144982918013874780469592858251015203135771655500828749119697562486526943081263680735824354484244782978608688496326849568538415812313824798525723671384951412733136829847266418132046116525323476066403178648790145161704335669480299931425097324229142941971829055810485864394604970517202801768529218360703448702866382591231155233114586885833527155363162691674366095159250412461940946967629643159232229798347987019291240867391280774974944346234369995591189869983278390228783814284270169548483524893646272357397646327438236699024375894895472383447007212155605230016527720272820948961641092738876069325613405688131412076861038935310034390283536404564016910098367077567589051725961461497275735115016383752254987175465115591542621601774992785330896878136402478657923898579242252955894605258397672028903383735045108694486967538249812959822388783548676510247135031843255209550935109246175847538167412419748193474025665753720855792184981458619815389422070876607107249839727170388542680402719039991417810724983044054492035620886823788773966983454925761701640605768442347288816975799955731495517246514592258085363327094612227950256645438604391689579819367179460040856987819755606879287214248974556776842541650999817722948357915439437181271265517048833064491866450137277029403222078289567230552455476427336845453029629535211476874052426951051488301297051661995995637599976313090077579311068987526656183699028455608401712841564556548547794913957575648415141662549004372993645627816498483100625587954717009881257381161406192663031743672933092815295686393192007896256413860134199669671371068909992329304242107174767241347175834703292209543989909762276626448721474354668140469531601599077300393725271910587435420913850218732555591950216061974559714611859494943451513134741925367856222382121589139575642163548159064074114545632921463122101266406936045725424760793030532852101641081372580013163701587598850384138717548904250830534085254054755971536498212424370770096316426123470912872881351781209689862982820003016417177971965454586563125623539045473832316813116630800725832754291603597383924621190656464784719756051564621160930958972299936814603927550702063824304251711232923047744550199180864653440006832448229608182187578479735646898218432561188368727810575407528239011096867594123226468975861983983244018027973545066205826302212561365086178137820715782070687138649373869410187971167580584148630656423003868721860831668677878348020199246855552439841943678298432543265714334356420206629057559796658874771166910019406644833283779555980599314170406605881365273522481231825641939888257852282523314734305938880272105845591158408660931805417686101460314840970660868543826851307978313691038195123005755065578424515188803231232148358030111821449666489344754545154739814477628936242437302437300817261423292593179006803873921941013773958312065728693176916156704500261695934991950261537484125525510887708772873309627021254319627852844767073084126751200903114966784714433079124421491942817581073202600104992885496184425385374689183136082012005536743731169315723251379714230260974747682399901769337532602221401464492046639366959646897136745128464293099642492032018774612086965486273475104199527933441518654334835180293299791870290565022046401612039498116984873716552137800601142650641382793263316081334305026618779096321424272346805329417585549874890994134914923507695207923062672300762069223669095530516403627290860545884878537663846117135755140346691103173217092271672762352329507887570122385224732284086275280517619725194502357927575320458354100078559491953423680794009583315486368315220238235083951076218809840272792482257597594417690339774579781288592820778457429208934142036930548173212519043031721068078816002273586978589731250034181779087504558217620606951458344128219255536172001126818294777525406035181553887131132417608766090401652112093088205113954440513315796814847870518915663698849721213023211444798289477601394122713676454968983948785702868494421942452147079906587296478508004795047769395995709319895366833972288371054714439823571136756203548132224535961918279615001288550178896871807967260873723803999131107308832100238149763597350909994809641563442400881915504775071495152928542181954509131284420086421774131851233678029793793172295637401071281078588169149347466488241057192980482466833367272350189032874047807985180215153996426991848294430970412696536181619791127476807090179221593237298620309852648979481247615137029382204925165818285096504612316686670946993670592177136157818112079474398046602434156079266563312033649698191852191355017057727554712791026179234309947593921283900855873047743926360997001691577571157250276416521889045157679746976607968629609975482627456272079213872686385006819060494962052486635327917187505446066706865255810052915302142817810501151340302476898366937888101987475501150667855505876096606065290515536776243554676687439051490102270613442040813533388880224679266269311411592380719253762561886637813614120664014697177530351218092139149177856234624670697787047378416114099285676224989407243949968401382036951675736106712608314922375434406760949873023223600055274953595455552333299874989960079145286123996606883358064705023156870886557343231985900658227734402368059778448011082180870736908620474722114917304859961303185522590382707700025263774656399688704056218524441963844353193622525509470048124018703748516336913888710927961789388572841115214649633784384570675195536863011113505512054585652201141415110154300694095390341529018380909147235531546360659699944247964526102856283805289109323440244633701876950313189093427494268307933605715044665437470800381799484718815135624235707364979640803821256855244936112278434948060208977393439624953418371879768355927068548269309171399107207053270130716652583918127368761074105633112935985657296238060541072090759963345045400017203814370706175959141201666507440445033766929295227938062834269728510545329956127760010560971896265779141799998856785855349052527421465762730425337144504755863778585869895963415953128107487514762759105356095848574240528670268947579919416974710010520565178646742534045413178572884397958077404985522723277500188928491478126662327112230842401832802917711067541552819295083531327058955495898545838096072546489636210788580882641551047523899678489151831804055238443522447963442424117733617293871045712944740149463379357570259727716662145560243906042645859971458599871409479540141497913063133668424864520603801098192503194434621950695978210737761293412594336469603808578455509617512106400401838120203744419272237594115591976130860764588133086603437509296770612517521209305190740239002256041540717880883725880737696892651198211412434450233034855688549101296271133597502139062620276767260033095286659710777894764852039133069207283843529078891338168917971925236951906096519814902546119447126745856161261036167342636754617578520426362208577314895229567997818629671605163003982959260291091860796536095306008043485367633976273592215019832211412295233477986975058756013654676766675390935590342405058124839840799846126571843291635839615199473429189915320775785651651503627260430921567292306343234298417942553699903899794452340657146403759178041462769572482722916516852764862548700410032545446242840907951009757760928758816474612899544915451088461827327466231776586326646970546468511231801908270579561177541255968961060029121605310799511828356504469995433718927334828502757254882187178642082977981893753153181887408039760126829975314159787805236719551005712031711887713409080135536327467745946954302675823854407109249055635678236349239560413739150651283881367828109550928836782774088537628553860612874151353096793545815392555750970971687233852625741806829529331352727798008494015836860371855676828476757168262508463085343550442666349202566385945674543440164848071854312362248797042736696128522594108592100300404136842992108103727397068611965786010819038919857422061255021516815141891153709458663404587586900122456446238174695028192015784930733167694257132455602898762258310047180055833394782785462642615230570701343229609850635441922638899582154951386615641703297199279617123826984637889756366231440065731655703288123426641102100403687243478741016584706262593204043339645206766083023264353662852514357482498989631467216261245322341541855439235830993462981202120916623705436072524474107519157913556666786073065909970028777723854941725778249282041673818735063501135024850506264690158190594860533689223347182236058263023914254608455448280153569527202323408077651452966942967170807014136387351557055347763105417988915161672373173632127555083206547258054144892442039462579483812316299503438332884059963748102888499416717185823742123817285401265692099656378650304213054192452237910027843098317078249917274567573384280406415301028064203939090514099598182215815080352186335781911893655433672677563225286354952694647588778099758796970010372431218403176456748117871102689081094671665251678119257976522172168123820687844700431210008860639800421853075787420933056146891863376230759112888485209953111671702198703279813745085995072218735698555938353995421734664591721686978819044071904550817665973157042611824733165173173918656290448715427544757938365745070363593803905162349846997912751076658605960724888758393694050316865154977690031438228708145340902872407228421077684136490094811693540250550943636278524677556728324481953504070962124210936215998444859731779160431135479958509770346932032720624230764791052944893486621416869053817686643462523788241716083558407248461171797844319382847909305609787537793184233905290149025183388510565330959112057739224655613181735504664756137577943762463603194438765731039657301464978369793227337822658418418105181113621246525524902548456675658259135389651178613107924777212106255100060825540214732229089217326491516722642624892237907184502470037683455326507236926486340692509612723044600703382949759049153264314218100051834525475837175558305108727458713461801848050047013467314245132281504788061049958163691079966994060711016786815251257024935916026007843225581437322084918078130702541021185446137113905889907352370510595212906849549218407368655993089589927900780985830346442454443970306664366900824591995413681362380093561780141851201363035459203952122274395618512243915693409649590382285956136178343801073415525275262056621399631051858477650898948034654925677177960863177822015813568500882776794310217897410616111044978224232822911885123458812922740493362683739188140605096769048488662403146924829867575706942812070102445835320376312318274971152486733897692081396226800559491657241559360252129816994886865112122047790965090862135944163854036796361501194614858794240511802663440726540963933927496520010461259245964250972413493738661977335368321345887860282676491692995111749730784982953546011881740740246936504260230805220489028227781061392998560697732734022534317349479286173750898146959394936054132090396367099358809710492157866343268403401740149748431487862487102916554370713461289440517882833455342175843830665098305367259670083583006503933174434590613940829655123247724896843580418804952340729171701179551179348556056207262117952155389210726249599846216274278381934007861316559578674544792287856039050787390332822865431611878609713644209300142491394099247801902367003478385632741507776778027517300457729569527380855559383602754745865093448965436365138840144360426131292340739673912606582489195930718028743317602218696337435561327706606960363059956993713613378442329382364989043698201262507462299182133369443157083183528999824227697383394340775573763055467481555859770126654669479402480390793307608747851280998470656427729905908509842926344760888225267732959143605393455706358458231504033856456703004153341030751591517836935529832932035611123849729232252323696202174758381145600559948407792824864789678568302278454124578122941195334299995141409277786375212185202329011927490792701588237836736747974586315927843638181064513858316110106793587515581574392443381884379956526594226894798011349337163497078844733947483194544877028610128376563162038645120322686104763189520557773798431721973191849785433457655995860889722316993289263591848989452613144562523190819220369629803499934601041612986416184761650208798025369826012593836764475796311764262541717688355760513548015198905976335521150631432714987551265217822417331066709670239124212285674096891587395224182688141853583927630638550092153796848149067879142066809695533765815425153816796632694884704935141895307847688042798795816938052355326401867040874825210429953621992962025442978780097259557756480723321884933406726234461139055085462078482745979381584187430968006956874269293730288593547551783276171184326897844927452562055371816160360670924346807573733872089954839897470897953543678727555114147711588465105057443314328850689502561303000213745466080601879261553092025031694616105770457672181617519088316386514888521229029882584946583062333359992650983552159083891185580717980529044667568016187475434170302334077672897929719261771933236312331073265876505794069073991841891009493385809255037085170794691917117558035084395476434428330425735345580036414432432807272717337799788276769952746219995421607621046200932278281252535384139223058489711546105943147135594241729092875361051572888330446949696342720090237007365247605506788010655291956830719825958919162481284651868827933150995523281200933588517869836600375496753811001847535035356275421610279683532998406467458585723059447875652503145170240062146215081971447549334464070795394182136417798161845437874845327279910934094721835173581685430805785326458158976452500854528309962076489598232008652488630418155252148950658684375713858589805992692699101472624920062674031563875501175431652623099960922203138378845715624765652458772816045782659403727617408912192104081356503924065508346471380062483496473835859334398039953911435723638836149239888873095263665013782390631685007199757726479294151190813906441995040421916676332187242037221154554516762765843666374321516805587367059254979713824938790976675717903601971070418474106412022709720602086168504531209115116200130205052255925331111886289600306699449751848799657057636628436363378098505364100108294802139018129712456308052293707343830232521468282783096379703251254985777990757231651170409245157246824091569320183711086627177152782407397615175200203280373360625728091543807305704712520414928333378143735071868821342183063480684129589045218210730853861697279410655701039964818801546409372291334376512735182850630404604990802307623844646807662272735473020717250649408367211260995428959991680563574768419981268175970524614236607521434823835193552532684221179887059650782996442422564102055194293309993684621323232175226368166995910433067353932383895274443732675818114564499100156382192822846429466660739482249237079343553446920735077050131051377275761019570729360350353463777584534965001807469045752277284088118290923371800325551089066804138256386392975369598758915068223726198742465096736994544217379611387115617828505769132437784733163116396340097230056929180138087211985458915155041402580042253585757740923103321321503494029825734163826698483988554944379623295556808908845460967659381882698532785846083897964591317992003500463525788298609401869510451489542555251768197466044357021601191707099689878954634406782609155150153379537910687811601841993562348891582461483580819015193396226913088283484812858927317474644373962846860632838002429381407704943728751154392351869987190843903608761049252341418647831440974710783436138484837196521273668862482384550136294985124512926521685055548045109480437556229929715528918534145452673485152057819697676350082435397773866418231013396107691202814486467402532297417489830535191960328633999214931399443361314980998395624688561401196716509830356504283254888869217479416369618822372554273199652655819072446314165315038851345955150914788383557648240490098126811821143681703962398977344179013005213653280920113570882854865377652547604825501788072852446139393658750146021729328949953765096622754454061446475334759166989295454965364512523360532268606077245386066590836245420460344742964336734131693144082283295870881239663222086541101209065351375384270679968863492938102022657450303069860600931694285315980789159952755912349314692620973426786699971689758274200598750706026478089450148826283180099460630640623383020381354389781442526954179778726730148550702705773133273309249625568637295753421152155142693628480428353690787765373588377180744827970374402774908998429547043594097166366690041176512414243020466994880949306151102649109142425245663600787200020739722806164631138003947393453641555755932214972709441676679341953433689082828963146784880752752890504897082018991994737919010655526622988679449634526779052162639077680337522515811512034989067125756462748870447283548142116297889395558599913107862531159120771005046083447174962559169497416914362748242567306419947238999701331294056368242438674364273151939214272315090918053549300024604912329175041674889771376335435333293748633528981015623732435481839817594445617625165675207373068426562391621749153380726298219745278269769030189673397941748989896622876887321750963083002758585180662709257738600488312897442081965936231979093134705477467838319355386193428784820424692910412730765394156791820273848676326649706289754591429801907193605464699509790727003957758939085266149336245734490675403198482523246588176867177599279790421603896309473774968507368259628498797481031536139380704822581413411683401753654593255144556541096057966366720304677432605844882064923125477198169865314082661972608737028020600057344472097755294984949226800341506723559504469884038106982094750667249279629882440248902281129146118113520806277957428775280362900351293308133867813506685336863010085018750420028081875567758286082981318912950669338434267952051968982179690785721315651669464095810323836822009937822681294524373086146902379677625529992143941841837459174075870139823412491615258524961662548765971861018272256465997149106024783944928051235761396591521437758865219733343665589020556938099169358398224165746715791368391031533478486479995560105171667263943991667821326275925643483836632076700145773174693661066984631685836531151128059182882282766245600872963230786198141772673540038402843143844811166705566856883465457550435577624067649577569797654813878278181006590922599795859123018509716286331532463452831480159566484500657704755281575328562247852478142078775002903458044137872552427832919686856296594854583844761178696457672753106141330092400747077971004800929376969757715522389181509753501863447711070846955988795370933044732214956798235582116491041269660849744855451106829079500183388228557892550946679034567954020836825208325021476259766678711659528572328623290713381975265479411466810841216466568208945660678481731868564509695441073058408390701752797612526805003366328272472835459731075847058032720915088502934159315914378740556005024520118501772427415602310783279754902025069676092268896697391191247727097458783579039599977280225838488413764331787251740498644337109386143816406644228315080933572668642418843091114486333471946091572532086341726960712334040467375466260459331971394829356559887601907570805959780055428486163889673514656253925974746320170441543028296248901851045235309855737777508411992256843848496777074577247646404163741286132819652454246684401207518131538794791167597281582149215851354533730292947315048495952321628841565603629775337145209328973360847043346699573146651602082005740429699547387003488583183990163265381380368188707639477115321910026261297344115873858085590268022917232838679044040502007636948496508780698423649253145360208628100615982071539744803153700149907078002943403731430105859305650369354440674118262231392891933247716868782508591022267855333454849544197575937182816561638382920291508125699638066395380833081978152666360653381855266914595309646365928356770335274307209099280056890982584018526061781976805505558555213225903686020260998940827985811478505392642038295489265671228631670592204692108393492894711255650835082516491046368864966662013263077955746029483217604604078797753421233466517070354584264437770944963369703356076624879039048057989817283540445591793368035772580995934823218915893370338464929190197401643942861784741785840990027474730876469962807141279007903331936352515747534591631078588520425971190606184715034897561196496817418191377863210151936598212538714184760498354776834837101485701762708314228556531313312140716541478176963768782052158602772215638377916314558700949513744404939217234737169658051718292558795902766607386499051110116674093509547306919407221554783747407867239768740092918561246022805870809465123064524039498969142746303176091739597822620293227548977187745492294463080354793808342084300147633926686809829086648101404320835378931195289626307835863364878731836863299238040114424553801373797752770098727298184269161580931893063234843798721070258926904899330519258060753628586366172462047399640569034977694089731571180171044513788104391175834424741721054757187763436934272930512213690768845210038528133476927092331845825016144836389233827072585036595697521051258064975383163121439531965485013349103802661600295623433401258845871495551049700033838158618543336479116121285527109821606384806995201483621305644103173381793726513955500251665635352867164883160225365794466869435403376483900058201852327746439157612306794903927382477611966118054252438935853014148290906355533182353528173887384365796306705823682705436569515516226278921018379338528506439812707556262876038291092901579925684567838064179252591874211075594421493733120739075206819357875852399116645386145940830858746926356957859057172831134419856676776845880248129356016552734270110527956109557820315448755465091887551018177201880273500919124790085707410949546084230560380012120300018936954481927782211442047488833641424555924210551608035638188681112462520588569990530809417022767014105786985711114272854965654426855125843625894706026403813580293499477808193286583225049141954260765836623439421861102108916377821444046588903980544943868540267017825296494826856245693250772841841942533869428120274066533581767470522575104292644199772066295136776760650394777903325266056571276109845142005970993278450834259236383068405773773431833701213714511280384153452415285421421439028366398506046715431265111667192839547001206707666937904532731366462705963602740248231063862473170312962605737973788930840944224334274093653758255281070794981211305233649122045651452505175193498571863060658440576986843914369730518227646552394824906058225097637670239683379299755765239180429672560996804115973318418726243017384473062568397214399491405075427211746529352134001494238355452515099762493283762915156645105665232904350997483144941839772084855438662846472999811880615850872217090680951161956074353666662369207360886187702689725566273900038666648603513140778721013191767627558825715373369821413213273625181882314966257340389299245098259624681192334410931803999885092712898939966946611309533362712053948273560013282976749651962173468715859720607170288942717546959599526263896272542083720233186536061816351095559444082764461811665964447940928214734527386482962898433253408793983517957883562782051450867151156710069195062042815898954752360752711979832001916788179890479778026633118978046763726388792445087055513926683946090177113040398949477780576315617102724158600550220740669705432579118104994293504410874148268113053802734168687612084983795574305757434503758874743037869954432022510025984558493416174832488216815074639825337114066191209430301674566262046092197636491415842748316865319372142451927050642865702761781554765926455436036139695426260159877337251925880098212710588564663330775342032233897741542277821888379081440032115679872151247994907320847162660857207683074679264204082577895764726335679938381712339241104138726737487531216911240302632169515580072048618426866796639386840371620486511842904317027377999792144536376093003263326718399379400595480308259957380272899946713713500752971852726305913145607246600437868827638339134228420684077315004119521871908693652434068188609288713244043808428448556846983169174216003201918419336414315785766072614445736516950548658800750239160293001616379158321623550613420303454186840289652921025891160220926244371925207270944209381151120965840326493135973498826659004888132845052538496597666345170624405919899674975759197241311635306640014006530909166783756347705597570605627924995823865595949494627637337164102184106803699030970707212839212605339788438257100306293798458091677608982890959465345046696983231302872108274314635478060670447291046425542776200415098695310036286936127592567655582748104866547774309159055491566981431500329848031439025258230448599475534612718431294756128049560505131591097893095358638149640410749478880393493358688516623517654431885399155260831569582883912324669533060720828858454429242977868687510787587871475761839964012987115474488836559208164168233664579735821337050851514874911291888880252788851197830911014373556034986114739007422265984862120209839213330519773950341306570887621496617664216354947595668404165504912986469139250069814300281939717281037627102929036764203192663660329010714378299198998064753582991493659420437025086943248247314821289240567525786659056531107302635311713384495777628778540061355563773259530718354989525377121400657934371750076600603691719386787516363315729845303538869751285045446690851277194453533335548117962446959038463021226810435252667386703243641478021425830219207767160128338290219656047976793730417845892431265760688384921987719753655523164185090228475928600551187729688265030096768851233081246710671571108397317305226059479682165628500534809085164759696042433609295781839683343913945780959358203598288350792068992728597170598301452123324942064656037229359016949149601431523657670810128102810837830849098820103370416199048945678732676372169793981889582369997723661318456688514773397183158773677118373558001952121475636387777942697420774253630655992460342078622514455900953544592894392437694935344414482222227339411385711197545141481658921533454564704376047304031705150172756466569157553327150903779436756196040930282460732310461044092614260585055736301071725848711799855748045391333167175303557142390285586116488802855960452862179530454097860890676753776471208689895000034119468532251345087975606106899154362166639410830146063529841031413849769326710901172129057627939447781322520301724981843365125880769544742638181694394122760250706470566642995002716271431180766519890843610614399332287353977269811765678424304983394934921342458218984511301731594785641442116314277272811014569275830420630006649125591236131744401376245887382341225706872548645751313735544374783699212926678543175182143461981594447991816339179667177416726451901946791664795904881609396915421861246679503576549773443042552577493764586819675710555728006177701328114142399709213314343190826487550348911340799245964140679416134643729318941076964782801678362775041741098850954942327119409805121804468039876559216952757932153790946095478581070210249912781239021298184322938136929912205340854899303343863224874074416603331432645358489274097757899380139044601650136916717600394566810110147277376645025083307152390028387780542707896519574476349519149152543352081625226824477419249271246534684269814543332223449400402074139528198319132293050089878063942141304481230534615748157824107746547345055647890968873289892578795365061311458608366193640469056304379525728677053599155838174032605914370554193081349148067796259788996428304115521509996238889753143333835054921383718357638165412312094594629921635756740358929819175564878974019850607115632935924108289902290711411956267939287581784408202451626692047159141214955165340330813736690196834867275816234786915455273759859914064694851820057677430342439143641724434473297304696692608498416403477897158385166528925269403621926506151389860087920850989912163846571478753614385035367132661701103949478743077684468009193249697089592439086450264807229691219085780782521512981818107796708624222981647832631109043677608845007982268973294465837640873143048818622221042118256985055550855553701783119831984874642557387344349640494210031637458213437947131150664972923411887699609514013034836512215283706509741358540750696657031095121777075417035341643944670471007416175007400629497708506689409222560509893401480199636273405141321377646955801252287422192258907080402555978927305824431234371673893561660650126712176838064295719295124234384299118368049881121312995178737109189754346660386468433194144110652898756508870619853291760012938142834082432216306449367371768443110624814445416292861674988338914675072144843175060190823215871391155629045341864987069540147214923581310507680350956082266704195973056239284171713035312887430070994780319082395427557741378061350307364531488790629974249317653954307490099446351225408129408801585662265101608563267845384072537963198571800338566958855779852494268395438998654434527150507237125046346187217022566035943011881436737261309109001118823685154082680197958476370404637209227583791181260515748176212504950746308152494944481975586331955144278865000110147553866253742599928066708744693758901581124914922707721811019503675980518596427765824183172465407464847038519464011943240042794734999928919386089790682218371449818720193675985243985727127384616053911892512609170866725357235092845687177869883684280926585182435426875854090938845790411042965864689678277061126354832797712947035397116967086062139481455200659013022473240572775179528678416284939409044009318279949436593843550889638447962970103956630929074664036207991766452704463996796232684167646708807398037555174495991972726666703047808645259562911742571301892273920732852664072404450053393878960416143318877942782878720578836780282311834038138214951661128991345586004238143145883265009088346446688100076711415016791254039931414667923605537709849674989217350548118654239595471252845990982119241666774629366216572540682660609238272899726201174472961667999886745488393233726911698971083458363909903370855785868849002546258893540318063898891628183342107241690452923722893681792729705019160825081069384998442423400244910387391063888372057751058855270035329666763809753907762083420287993807256190592338388469632194604570183006965135947542394839281431343471081630202300065533847177013120171488180709813583144471479266434481237788283809416842143959530495778165859923678483865251547254166415442913007016026464017007844538085682977145604013621584664084119826927204881809741335394988598302750574109977744979199483083448345524658323542885462645823849206203577469125030761914192669367357494291866917104825403724392454623251503762491161507577724883878712841055208272337509479265091563381087674881388737814303587272700326278616941193758596718352538812814300380627705907957754780978917870265072758761464550134890751019340087531337437752480869790181942420553190467807624005594573076695184649758959785516681382142699868768194637935246679824521707636272166187146987970630684164959346150037316807873914305323892524001083407327456178769466695864643716769766556776135894693916578798904618081698676644748550859415321658971952662082503472759294463849423950151552105573672974335312175534351037025733108644519668710774111073316473965830344482613716235671215833363830106283001573683757560771665755901948287687363228548564938310889204313764512731482108898841568110557570429918804269881868992241487646608665961950469741824172560891852530610481486891142765690803926329262394918024510653741990534307477356436329577237668163153742020146138108625461938585760064740605180337309110117701689980746387850601301334352556723765542560000169752723528166766767239995984511827511195610275758311098686856993802888180937447344216932427925349834982405444969485667890377298525509257259919656800551996810337334508650862218267259329323773364281924268224809361055143171758030222022721244652086636128650277771714855815896032862920971965315502577116435411778777857133485388698660278263427302592262374762781308428314216771347148799785922976171653807055140500725819131894268677442610253658084369421528942424027639384858339344079639502141618528631123824418936425035038707727231390445814960999405107544859452286719834307870672281929909610693019391158400185919357104098795133071029116667463072264527968722844071467161105803226887721519729671422673271027166749278849246066452425489059548044480164185869566635611937602653560472750152542774243575751119167083735728821810235428757042012852036539219459235442028968559116133134445865165859503738051232915826275619029329539493789243213694570152389568692383947379415439834592767290339639638080477323815343502679592970647896464791411534116811546062307936749001681590019472124545513648306458800170902650545969977753731097321344358340485521155074841728737206624752598999911294293335847790108605173214738558809699810769997604265064112914778017915558525186609073326904376211093960152806849697966293116684965683281055260654441039309019498082387694261278745519774307992939969901704504733089248068848585073984058554411663017392500740554215827116640201022450076951273940861584303270176095143696257979181984019959656347790366218844318732256836671468268954242703904334771403772558587215792146713980800278762748282552223596767724649439253483073927917056591630332667261945660037539986705700130611143608115025819187014086296084215926679519119607867122078119375186170205414757979380713635423954572729690705264389481157866019456988465532736460127433835661253178521474260760343534991996397556861761609247329054088925288442723263253574428395888095954872644112442985147112864660255675771532027415955729187044079232805452587109851903181258286939453270964119647559674522230519176306252694599569036167688860516109859979327787476939249280653493636098423546682386755593476633906280643764722186577265414955293289112499828037764849938291267470058723656443577614247883610095802722716445668093889124326584310322521906701449024060386677447455291482998875774409762010516340966821219593707606628496417870756932615301770439354129657437693104380344618990868851335409147984353293388107093954002569340749113124836089265945533687025784056355479257792436409058197397280173434018960731473210620471065415456270700287662208008974990292106748617895282797643382050659346658345688815957360586523943730942965768957168406711008480540668412499315688766980291257906477912689272423902975778222751792897077466604836132378294725563557343515149221546791183283818959093442038442186888639158257726147198573949316134020794047592589866046954506182661516591370807396798080196686552485344239885680811222448320180105572751294409882688456042842719538053305572283812502525744730747760878170620812335786595734333650579664379891683378458910328078961643816974311762734031261717132188662346544013419518123498642780417833574163717836385319140166597877822446087875426003166926509447552263121074873417586590333475317731798971863136155579489239634290701641806481745731414929229764996289196093396950250256035868932842452916770919504859436143323580556254210011514798518911558834486552958673023291829531929241967446551066462740529041342177939956331303052237172493082268193456215649890442110137361333947125341759853314009789357814304201584731113710858530227206244388365745079633579335350557319676927381462040032580712795280748902533973571375422529237850743163357351778210836207497229103161567545402197656849336283076418251337237172773080204913600106932306184072441088758934651471942221730251074428070265185067048935173696218224620725678590613175708529407344390960647477050117653292691167189638232742749332423597873252142610542580289431753195355524041998246661161492657207828518468734409529937140108382710084331002656040516349133160921252370845833733676544821835760436525606090117356260268395037194906126717512923252088676522444766434583360830718599666514566040707254749858485792547225743904451193896697172520694509010748042389409380330912649327111712147023690010105830377853664656248439361953626867645680646681737868311954344581708283515980157210767494447420293838586044801253137306216323551088609170729161994206708274195526023252491578273021792775121063348320679688496276689653165701504110841994701883441806834589700617485909248829026582327196296703098133986093180144788059261302374464655230977379818926411023617302629044793816262975920123650708835140089650868890895226210192045043805923872940593185700247212844422526737450173640994222287986392348590475577284990558408120907799633638463051678781212998969413706995820430969545949779326045452982283938393004365992659289999425965929326970626328549580959546474492677941070969610976369511892159171778590882611302035916158036713540619511529744927359524791414277276270921828650116421458702286496214984455937288396492575962606782933050551697787807261575446266326985837898337792310397279081416467241727176689894207090696482180348025490524851026019221098722006506217009327498343581821411388114441449095263570319315031779040557854732815129463499236802303100935309813122104236992695594872416689802080837606323573272509147095009696015248820166974286733836078782804722954901725324339573793397531237453355088703884282429989968152602264244919338856973961877037438461993942121319351595912835714955233845065373712040130770623480764622719427177566086995786157995619714840223982618212237748784704083152266814285227035404582010136708774867848250929931282113881923272574026811038019389972587100810448918862556391446213182782036922930111669362642783323167333510163938060965106890172380709973598721560536338675272169194728918881244391354105940761926218435991446921936984359887866061218577732334067254555355194113653180379694716836064840324229474725142637147509631065473272353184467851406476308938165683944208107410091369718423308767581830926108252950464449848876783936683941878860672458749318195460910526324570531822056516920972236345900637696142677958099486293857353422506440202197946777914584120305338832790707125702367163475276511691720342860488100025248364147073085415684539820449206463925445081701579327400139480386302129087127593549918382323673964789290602552026113713015704411698097187888240742958638505223829608272253316702754598749914268968717031557300579939985084544061094273841186431420729767084097354817146525817809010351667359207566686688490430337343724196497287346924244888328610814165467143958598451158011862359549802048258630547496232492580168679580756051264214468330144223152933492481473576806559643339425850788404360064281355792261482437027733876291960468852219914183511010840187573895148705485467553949978247808943967373111304954943935525060876648104347466735139795862231151295622817320620084101728866756791700341253766029794979325055882860642026934932530528471388920122292032028182452662866840613718643467768033542538681976345418356529570114970867813924986232795947768890820381418604016475050376925985664375415531263777986639420435467211710020329605627480575183346525918823569229712698528515511460461182808353105653056716067676360852142503805998595642689009913457450085242231831737182861826292674782508484450467533888479120182580124529974276236833474580612502483575086182427393354952726939481798781176426188848674754816804232518821960472472385863721611637867815253614161170763225826540836827480453069811093985179336099066847606177138444743603287032494777190622075631451829883349054378662068511270699897841590856832890709606448698497835481454838470243565803068088442415931693164858206347704698380233350360175445221262402437601531677465933312181944250033859704649491531755898320825352805891557289456942565947119067076217577594789764175651951977391543957859956558324142591805616535255418411339892348296264948591188756188725725685447727356316475176642317040741554213000070696047212112687627637994549947494993712743019542079489540576337463567497193592145470646816025622988998655593411684068230755178451394607168146686351666801327177804689864793441132100230310296130613887758780690582005851609161081414160340331195362355542732939526039050108453723771201217970497998358545345473626913874143083938739164166286454094537903239771694670414003878746197907011909369206083634904572831741258415713473994543662650153137662302619228406886411046399773968139652997301292213411356839225863065882519270429861544469833960770855988309490132098283215013956327738741019714835801997557526612490662634085451845057634664897277357681454180796412210270891503152758706676095364176855753739937862165462683772781144777253582473549801677593426697494231444232492981535851876804017462536951100031669615889174638946301294012834058286405680739164464857628774764087068754511217415649867492745265445150680664280497350728302677710095929035509102362617105551706883197035285973934426935295975045280862809041751067383318328238599487499230296197110470444244843284373664614808398854972637858282597532549628113459601218050933911595179981152849954117487619519025162098285043591326048815097161388943257894017448390960130764872817010975107466111529407530284520936348032399313353740424517524699840335021200425929066397142452031325919605571194528039537857766096336725580021004158117466706214772851200793143342125786105237602289859641818284287961262850094706385576815827301254823299946283581418459132187077137327807726695434896065964088546793776475758620000009088524469039892294336787743555286246289875045692768600799140394773540676247854550893700255694100954828114731227220496383467685223173135661278303975897055125121806453387874742215974555872709146037582316922657790332267144712719443147769568396553000026076304542319721715073389867443339703437766294868045422452600042500417227627437712531535509610122640672235470527663671510828413897851450726928586066073658982236209017063434577788120324134475633400454053336414522650455556176231839161030839523051748539488499923744060836168267131625928938159350019205347440122417417525004921414118705419601899319389082487389993040524348187560367929520217696085020096596636821161509389859954012517938606745625286669833322131766115845583525737094598446035081696321674404385048248896135532322658330300549256473484970985487795293412721318826082214115479371050356672028105728468585411051045384975663672061285555338384294152308337630262256567668757071089639011857952248114858349712518099572106199709994099442533971054823353300002800608514722272116036261233736290910887093736177067129070718596929697545816137915967541540364231473653389736687351373658284463417750411306331730444401491636359763741216584392503499612027617399894017627707637590135233188313882364982199834887331197255413735238908191523010060276907910303142312965556490920045105758540713586186083665973110240301268398754225083234577984273198345375987621291902648047561326511868123529773447190627256117168027353836439295374625618376699050823242205161623936940842591141417690105781989919118946486673899922783784712247737157095232145617682890501721204470775590601109922345658788713632328186742786721069670205941586881716106581577173806230969083489334641996101842265227530025667239358971484456227744907581046342014470168386544838608352797661205176840133231171258782475246393626351950056991366190333893213679835445928604313368102711219833044608020357440765862217531601462012486988905511760623174415181286337287826925269129015173338674372327554629531239348730589628544748314284109254544593902680458743822604930691255340672636157152814067023276811648392273505284962315962643003825424523331863668196623306380154859614662853123297118909893792850948190955445768751784719050657991787057585705262918393367225901444210600366456645180859753042622489858614077057236860573506203367373901072433717152669681189265943065494548220087958186034885762155652768493989729647877927593818351372802467229256041034856885547896066245722090077507923917245862038816847330015176311274423555322899521006081241074007312599031361145352878036492580291127276036013328039038539927297357860843502153097349960754708791879922446571492973035918628259555960994505896013656673048860118078670195352703197719246818892669493912960308222159780665334196845039227684599196270073709833489891534157517581297421338636438787841887362373959035074039163842951510597951500164961466042923234957090148782686863360682501306203216067924118632542323596650620106152513548320969640244174814520740557392862674464075518927100343639113833023528056601308310578308850372663931151079723061655510752595409431978759901578713787104631673885724222071734629861781237446092979076509471433466493288603508318640247330524994981918046236701598371788882191221598318700192116536637335602970587920033279294170427925076764995431906409319066612216660290200156156369151169349264491358762969745767384864277033744136806413785921904022351750233305739610191375124451742135581615476423665955524707520773258650623602444888229982773559239795512882305095560353188006283849418741385893800592812012630066990410007456825728229379027793474906561313376467706450177499517167205688951148657000756094923115909963971200585252730416098478659004737435032442255822532398799858809342356610044792407419054646990903627435479992095441001711631044902024056975642115527079598271284033228147116248369977563456061360410480291205225982193301152998820620074378340007217831405253779675264637409458127071227494959255153213779441321029800142130806478209680338893185283912257390647299280804130822296579131562892735672182656884510919045653360525866420064577844757295677514243623718770156451274532542729658853018263525488219923148512158708129519898619781330412614384675952899054273460105995553169248908015765097201445482473574997116516591732086106951441808298847455972970414369949641376878889570840860377239803682237398703149339239488097101993363293957366543931501205458725265402540685213459612557458715421729833970324891914616156340652446296769750459120515385390899576140779723794703753678769842845200991062127264870918007254871879193835179698405410403555093981498928329791313812620313079598035219441981693189025383988022277032185912504937663483579980314143427137686645732160968590475296860789815398538573427452235282469522215360719006666398487396796920551771280012783803160598497084650748869042002353689096680421126227858370703145136757427261138865559833528369239069415047212000267652414799560718815305264433023964727197256423941354208598612625778826201757957875565314365000191202455689942317149287614256180659500822683806507553833943243159448515146980770918479485028568432717040709544156447910982908598156480624431740070324642854473420229109245244896843911039725421357118498740816221672113032413838585793021356681718766257330675844066230035563361004860392327442622000632064403097087008471490916944017293879858317237304861423808211929862485126609381673982459251649806540551410976228323325917641075502642806943414808404379143290437788104852013532228688185005785382638988863417888150019798745057197428260523234136634499958215788561166095174984873700805500995984733105753171969604004330792585516522321939901773077088378224612148810533693085954549788526996543322298193167662080068344580864104317568891575548803606605679380990223915001545273835581247723187619149754986492494275508204573623100568089502457201320355977679419138919458468082927503972846911035766368823531599132897390792344792621845358069761003750796056107095393005377483296300332931454904927261583425412444443824683428761174660056309705386174775083701467978585280848699590603961255601434198799274151205306997855885932802555528178936546190825634531991910749436872689280106282316526991024017969259259161353421784520096600105811826483551556896040773064767093134206602992443659908439558628874251973830933714277668000970660401085289618444009953543105679442676965108849039370558984726232975249277294513486189763055443224199106760571897348613214149766268597345317118569012152302762039493815374086396389058097818709251907493252602130337324817877502465617965663992886253317690928167005603410097200069573195855165340911669140523889539127607939882116275329296658989555968745414200012706408115080021782807927391220235018270920277089477451512564542320618312696230788442607184912977748490837058512330545252015763113323617116179787182453109596036910509245958870817653551312677279106691283288031431497615361274820087370015205685383061360765895687780344158871361383737565323003284695042079387595527613526846927213660085471989691518349254295492001002697892805441286383569402010496375681098196455322250185415949445094345563923292118283469288600320203446941176181542034348156584275109155365673645898525527079287595429531400540309485330937442033397599697602958349702807904881241702591890821280720443343055357360089549384214068981928711247349167375734669377378670044947627482405136134976692420468886858389077330540125425722370314111008537380952019779898815565256880074072324504069028107336662357193091949589616963163317727516390521397762423807768599689473483353275438235306441912454035921866522396280513025596751237780835388069692907767026099829991975086696130897851007990379283131829420432955786388166663491040766098291057366414017827695968881374793197183033757901733454105701920736909298865642884941942835725691722647543808872793397345692351375406371943106642937410337548730434063589228405315191362722226484642505208944719514210188609723663279630066965753183120441678298835557636527129752599783667121685446014361308807618506865934366304997227255290020769708875212972421805457071391762098143728928637555920137655269440679386643364823101355060053555685620329149500266843846432804636974038532477159374849540403275492876573482223216452659325342641825533289432928345571909539944779838512589660846818179279292973669180256963786611075005000645300270008883784248371336743751360823885198778427351470208131994189945392694587714984588649287512602689797301465246692071541883154156759833839375340789832120680173329415357741242401446663719449516447126466857216802734425447547079702780362946310901590778021170255970999136179897454550134431861572990689406605977893828131021019937129218921287471296154838718952968726326261813362699129193400171994128248491379377029250959209570229650331732061790370668027549548847619038672163726654824245495729334055760244783411810677310979195872909338871626190312742719464551667801180350177680891091543036225979698149676280692899170047488145888508875418754318800188066364574410797031541890617103941211661351697463851335389053320044998527708170165869040637864830679293232853871208410084002957545159571217804254652084298959137288976491401029341720420233597348283112558854614720880880458497878586408639400943585511915679354866973397205868725219289965548951522717952682176491896361751511313096259565270227449670700214774558758758516377651775771130763999210744909011750470195604980098246141821475299702972249309582872592737507928093368096797030813337028649938742161765269975783001401081307902221533686646389123004902177779639986977744802348337796875912410054553488369293989638315443619814068102638682843541859447138064554356312775495062222208982856143446493119405881112914047177731339595036072153414287510485432005767421783665029085654388516957868636619584630789849668647005161861263489355842169440781638240839107276355336165299044536281413441108485193801868901511799166416956979765420742405908444976441203462747992961261684744403995974442772040378489971255829489951540916224724980375664194657276306247079347422297836922775275429174707415706329250573585845525709433512409163266356985070033973703840792742687335483930591599934453317303452878941787436601539485417781977370175665621932909277055057830835720184273882949464194764635902097521631075085151490855441914514997056572422289497483432011021600769528768107843794202387250646877014704419978609602730420265171392332889006686190635822061320700797231054968379607758759139129150607722767177072750585942078230531345830525465314828076938043152108267892813282835351189542088814992857579574762759526659585886483250686696908892727338385362071690685294081355155716072492462394309657125555155061062297258143627044330377137353196940347588818704643411539209116912812988461202827134400145245586976061540793603484145036361670529154353817463509052743161399349926743308828480690425560375006040770992747439234587744509353971732159548172831847335778566117867156401096834531294411816522720321344022078673643250674842014173055724585585418270882935802013588145747806489329336758556885002335897067467369997580586838622755529767571032352828775509772834569977651515031145176173618090921922196061687019756780912327918353586736983702873191100687453526069383772896632925970627849108217631362107588860920968401916397454519101672981208519237636294218192214081730665544363204816356419034599164805745554267888272649472847045211637273095926638137418941566756020761471653887575937322233127140384929135935520984272950308049752606406240209998869655014819150876251421596366056450604855375937007264136695163692318675212521302060440729385872297223312504762976140868545033296773304117404791274177779350060038806190331628610730440365537084685575854706933110574400714472573333601667305405459592675694099076424771363057987089660532588806579847943032472567507984753350143404800563461480009972054269663235478043760545935031254212893193329121032855017748309805562227563437925521159487415422677738097303928518575117265169764988278502609045758867656954534597061310626482447858881743002511707812500044625353792909116460096945460695175338058757515713361398185788894906158590190437224810346617658609616424443212200555271116267656941853174286309783133876023473960309767620520409161604076697013315131180231380786768154165491049419935755292026776542524685633132026562505556300579432635632485820698636697930471153009993283413461765837194398749989571326833504410403859512286969586390512199719722643080398756054756894307876484709879835285537761996069417027701214300399607297248361375328906491425876051422515712793030151626561096525245551864227032944521761639664911001599009827809034209826930009092049106337310615648714053848233207316775777147629304183909883897390773211013457881829829589929479794040107581468734369154785796206500284992687400061962283714782806139651588253149574305164831690072143007560645568324244821374330341020087218704957785039197951276098721089059238297263519154016254271614278908236686366649449348864060714121778498356949769496778698420168454968432994884671081279444658125166928726881986962028722402133230648441892879540060160180057541926821036608434192966955136797765486963591785968205409387279524954674640070116303471021713444292018561112740026487778247527097853531208174564732417597906175969599487540152605924813434384727431917877614776557908180089219135744408859966694182580876229446221994646814596590786041689237198638857649993451512545086754656526977325224141744526072155733703193833104596970590888682760984824594802453700830554251548231257260765528393209953319132184120376224025192246144050217507936412948479489603725766133732869254683718451177792910430896088178899652462042109055061985174882409115177070904786101420814862398068556849653509182433404123372981854141755361977245124525689191916157531215455689798939269632545407869260987216247605747799626984443179926155989261137188914619741865555251179536820750210312749032918363640308375232385009747300962024001161255780125059917299157843900364897539731510981567058312163253446461985503198343597183567666789565340214065872237839598095386048108300783958024324905994569086573158812940769881738297488836051248637409144294980772801765012489058716944039412440106945844088008209236962750079984923916458530006697939479859840129358697561334512877069632478789341530164401705271099328860311586237771158199083486387337186340260367977117312611294890338112580412066621535541945738896842876488296509197034110340632823389767748759456880187072401201876279953086860334884117777918241393672740978772556580110406598651404508120528261545474576802995809177363922094426993065702823410635206469813409178389669116786018519440181929897115416558998822603312991166691026710627470018847758277822252459737931217120968710223523177263631504602888361443047357137725763923123978846302344551696009665133191203837381274660020272794313055512657451177524006729474851008573096323126760291328264647439926776260647028182355198261737042483143037474672432524517843289954266448455623856154867749221732765848720398609208706291358285255671013125100227727623750338266345353741684790387247116818612995871691488756175902644595475058878317676336526314612530719614303735450283388772797547474329357246050652581468185843086219246093241717493925304204375930091702207549697449352907288516096805622000254149740022245382271875829228133284428273824824899351412994449171741531484720250976654953768258837922979452172529259861928179161113737597442151718714819623847720240631142359581952979175335049745300463511948495743632251144505100839657855464604942093005385571458901472574914426698379251772554858777336633358415927393608192778187441830903549724373568646062395560240384882172107328156918618997725688355853246289537926611472352120100872144456805923062558216424292907555098869968101083165131852411283980327277683436386438588245236972942807671948277558561208076660789058164316724749008424781369278247910672766715321730955478547184191358772413793448560521528911076286764588157366970620037989934515892987925155603479092300210844105113777509345640621303698922396692186682686428551660686741327009310050137435114300762398395523133658815877501346259642198345713501682952077425303055271367848474503170022856900665218597820488231305573509447087377551883493286239210442937091542336236929753018872730794428862870521510256130855575482736158641543596703783386168996191016846181662208666250533849012399704493599367526879298033960573427418856291690465432732580944568963483924346166502088878811450611718462110359728762455346080602938403665890108217675513202245789829657177271116343776518752272057291514172356548436409843359031075625270071737297824800581379214153033743371567692111913232771934560823051050393291954087304778075132467229798668371242587841810598662398766662001419324920743928550763186634645774484383667635307188206529774548048955048322841324972419538338944935483829776641094862696220417276939855941854542463583837004003620022113362179283649259715992201358348359080132652882141698195778638851867159685052226636650773928159109754041840014017202341779517746407400338874913097014184072761989667097462459988568823421048727705713383537372922504273503944967415121260924006381665589192213652021586096170072375919714144429019540496091986343046154140800239680423630714509702472459794174835309333025530754420193655095933372633545368178794030133523760983662540329743360487549775573319679990723301978284494935904670137356312323824063213370796609466113531092446818080456425890988879847757849215189824699537674331686200927775188644293883338079129761202775333409781517124437843118656444123192875384966020448178854473157639036517674673852001524383022134847663458647344907133539186598519782026761376244357016114926535666127402447999769547359302245846754635991154149782135652607293417923495473627650105361512976464143964012333225356109772196528243653124031982028204695030014384398346878214071023457794995018042503178435378245729136343104211252305942722544479777027738866089452079810592288817166740593767071406256011645588759320272929657218747447973369309669272671419992951174950923973280865603201696669792604612721638535563364498005959374563119069038703158279750651514281084819808251990710417086105897752990807221803197171249964275292560544916592779688981555684641241085751302725405416459500394967911642071993988026953249908526655650009519548876109142015489453796616018630214566319234161302762244732998849979188460659853012309558925540999590802901882860358412778696582801239409491805360800877347062809353547672798064740410101255356631283668841611501034094613965656755276096154521297517946034959621448123399183843379789954909727124695852868697044556154461439944197378695058636873830064229331336307423441989044308432874918297897446529423679554431790920920447758107902493808131244519463124846496228685591509644242490420516859241096160241140149993586564590268777225669715454847630190142149786945756499077424106942702950455096295662504744031964732574625548423500724425173442927260167058860939296456154433099122805272814104191542495257537585292004953174213882709063811283635632500717500512934191887364550448537277389543547287459409952383322663660177936377937937143830848475598237667421622085546293413433511404603673998436724088465762886094722757326268282188068903952534979691213232504824699714963149209940694812544769706897574614561433808420675682916142780823598999646184174076072000703884613147798433000088940809833793707696403848782683939278516192620364675070845639469020483592649081991660828052788188771257551005360000436444678573309059315607770051539294323695605180102555926839562193413425824912475145137834169344290286157810842971176748731630654926978508728051845876116183912791441764799562633091422560322649652018925625464911258013750863795280595311448825326823092496393790671218889586435556826527925450089594398710646933103970098857142287119303203868812442379997041377848177356719123714357555800320729478377048869199245012847856115287705436335285874888087412474366963471079211397455122494202428104962673981207200620851881551628374048437136171324473938688222738893890916777323142078313702928016590482519396624038594615355789897253725122324264645349128179898708447100714600579956373226532068542363027473622344973346346597466005655326184008493160081882131538604285704903522902546340886603874151367094020811530452889962742044511449160226372297833729069088399413760090638242573855663965459137065777049725073931801917367506832807613165455987704657025581829805967995245371770641524301083351124063052954893699525437280940632018619850571296715047400987338541555342787821497979862665725058684251281038180043061911283064343716121281890233388311619638878911033585668465959510544064622397106298661433069255426379783915582239494318620389524596964178637055563008384414496387675728478365147307682977258436031893782617424137998127819978629857584122842343352720066037892145748810625787481208275134976001280611900565837604378354417926535710875248749855950063696570695319533187079515548671724136667856124087118652735600950336881630578694166060434921176786304090014310718825422586130391778168473251208317770921093021282250669723066635153344949623241221430786852786107767223425926713173326422674984075619329684298360258338484356363482984711572733755300694856411554573992384736786941490183955549651953267872596453360392637360956688532200573144450560328389108968197117485252706878088959051791273966459495906711941800895097302455894684456326321576056953611602502199641231026808351789488332306819890742661816068251879954798857665595688244008186314188889094832348352466079790824018901558133149136618907993642129837604546519867586103289296774743653415663451244724726878177059079804691251770744376734023985475292789768665600669068990432361666267063994643950257860695862590403611682373063105304645924697717431968837642363393850046176641562883088138769371748051130485494918653520925798569588185917918252507598203440614029248213060803242819631362223580547776277828178603411311782061288321204573528074634028972609684789946038284305310016138366247421277529599922877560736578464601491761746466039177239368259012296150816139802443565456776749294606377772833604531995421131456038406526973014005421696169210364488047187644049435557741237280987287383297790417367891463265266782344851347862323945471201751634323675512383106314772044583213752090453507798379820702951447279067005050902720379117830334301544680589257426848500768314506032960885323245594930277903808218481244433045537733439911253342730326045578933468200988363985096984534650472388135613903035977924179054061769521938526183694712770410650803103356753552428886236050782196971861563947390321576513956606963236761670552645327991562739796576174457759805899706225894974974475474439042585418313724298122352687236708530908808642672051210932553905141471598983739924482030775974958442449408430663048580888505058702660991784505244521337156511527537857612495306814848309324081435244310458026269677547164693446855899225596982119130623655777373760662285174879219899919006825071113974784045774478680786011854842832310406658091489815618880298920107123145651203086893063734911306683909886054068108337854067071621690570684845352697490089982293091798924744253874825671910175068385825017814431494449181652941096111526659539653690017434476313698433221653611849495127640842054281916372794549389853827322753975090448782143021203988921180318256629458693673646099775950426289435639342560709460091529873180907932384496728425510390716049291421993171589151095435471936486669968906622257916461122915113927517516074756061631781690133378520601081359742097458885122305876127674805691202432790470308997623110845795953201858474266035120252760520563054547091471390084403628253908146813550393155826364546248611563801089689116271967378915923225079781175935099188228450957748331082658121051229655228789075033320912696787040517666291972172779097499592297502486344664319611913721508853775571932437875974713227436971652336661108895683645984253375654247914711255202881317961880961223596345170282559010805288237591307911581119729489851630850973866700858529429248252197774065400652757462025028291840199416410810038057994658682054747971174272845152952476137327178910375586460686148660699488231768308250863286801662493723854627736596705793570902305259662664153366532557861140273665979850348590395293392221602077603096255526488419393512459753130915146889432231558113788213221028278016234585835003429845341179928797711561476409596518469742138971096297478185039805165628138611569451546194585496893818776035792878397084636094077024554833225212367664394632978241794572694846881565148458870796616183352533839176066778762302615733492804303217445006331878544908865770642299897419754543914769955698285519807177519104622040998132855290643596288146505411812731454092896733827228408389465309363777333059432558552715872389137953825703485354716583012344068860242462410955456820371836890925971951341823178441366019453236101809305237384325655877748912744402222395547373111653475369455014002742930796498615967920081977989455501581477566471257765248595661676029479512377517581145498253596314761077555688525460688072540199372499355189531188562971763770339308859929140858789806431411396262002410777907770944068501220934011920183979039061140701220887617331027312564399074639639179731643338696866102674698500211999709628788321734566632793460167191415395638282804072380882303934192934721488193260831297035172145495755759735625927005273637310935838363468449485072601233049604543417333756910553784193899822248919402782333225281711505236528854016887912941806271856324110430831539964812050080062337440014009964345379476032311567371121833196991995203044031909349706897017894413857357572355028430910684503518662482948055410431824192089856482272079796850482983096694561290208278978528758788688294776160547134868282750957042753987430237060115413297484868914705085442940404427344369886992262015983813445542837458902562689929507018237552749928818418468973466853755009237150068139143178849592393597422582094582654540988705922998973704174059314173154127345713771450186426266199080539939758034212537874519700489429113551963127966502383547051889279415455034230626274819347896049043462936267977554068804402255070584012583753278377449505372743784997970470685643686201734509185606887177418773259309129702762828637661275175282137720789216373111758236810009677745933207185479790256592195182499845677638970809476473096808336065755557370579725132022218537100660432393679620425670339689305180760550578711108551871953101777714698343246301405724212319051250691161781270682013079669864205284528849583971210253988827059131300850933274159837393203464566279713666882226266593125141348071113768841850835134994829715884882151170554452773466806312507791369618614433652430619729461053555623381056903111841015333795315365890276335634405196549886805927550641814678727024705547561146952040420233419270229593320024312804142345504305514938170221586834305464715785999262301226199542697971785043614955702716683600509462631894815989664987562211715347243474360036412040575982605723502892289456822875572489908758777701187732147732431472222350363245838686187871524741832957207524747218378855511945225876862189952632459005427676495239546323875154956746225089594315312021353589351646055010884515940612983343189447969921675168356206298239932342282538945744911792858245503727107588857153483722944638467974445184659813489078380655700629312087818966085409280645409416160396825262980124037412561993245827393009438144557838048349268941108553382964398676813174631783054291481099173125439747755817817064856429942709345851511850353157122194317841848346441068417103665457096264118410588253294914320633358565321735896597579579008516993732299484394596397855047686092418716321484745403768430565590683822786939453527945377930945240978830075515343724304227442545408765964305984834246916378328606249580884020492325968061436776962375352833168325319755323734284057511562492348772072350535164152663411552981251329197012606544571280532728262232207848667233443292146507051109605036476321058226289763386533232389098524634145262674394803942065842604908237057007410606559567836713071581710834340003096235344281152908123624417159459342181937039741261986959233518989517583206948916715999428110784825847853658714281376206673972008286278098689103151494410404852849160489710335551411500911822572541543823189502880206432056512005065848306409415209645500558009157530192318920725840392741698758642140461903871488649649208128120524511892204391802695503247941759526264766523699408822375778212804057797800869430429690961935206194696955714078200918741493227023335373953121443149827284105825929805495282586543270955445756044014678034128609691632087320846400592182441372721106726031460773511435836472495236214609476401414788957071434230215377146840440161035032757121882715376423117590504429331771441242083074278532005859777592016611318325633798647760954831356905052094431798212530466823441632711330349415670321802630497779094759511564595787895866628669936051229055000665598552131708835624877809684248045080331724661604691344380666597838995781540600566260450445355565564799034674083911864776919160265554746938688378851460540142328043056338084162167580817965013831713539751916021312596633332350047121986686707816151644597108424502604296017175541202616355351469075518976110276887355737662345596321945665844721473567453975646141637555632022471096306294832975222022401777265007377076508615434445329895857752281840806809584039431053544295598723935925875249385250936204890826496979680409392720667259068292433922831001522756196495333221736914097535336279068723252768237084252822387483331320965092284981299974417237438748281794929292584328362279897214488306231442952903431197761433299455721589002004790926854104651327638733474350928764227373216975608841980468546847436856115797322669670911202060396950592969103339508352618412856768921744752450067701877410610300573953053343240096373912387364466691475868013824480844200677781059077119083530401146608618935446318057190752439228353408860816910288563297247346497233479253344048789517119046753645197451748428889148348153594335414676225571144200842289197154904695472295281423220271383758661788917169645398663624806536135191742550957921117302016123658701789844507121622290038168246293508115790105116218502974470513784441650423427115908432208525012147982667388994807287032518841111186515070328004741886750883378679537311246316057878255803501320224305557963027481455149011337751443176515439649223190457627768821554191431165729198411883518876589359222209784497529810180287803825905742050736015845161286702362236733527338400094787640421307197124955201102427261847556759790673704991457053085546715905661261246268625723948436656612509644603885208474583778756879167503426406833528953902478687501942745699228795856281265338445095289947261175320483011560044049836380143115807065106829507446848001084956192065568750550802037090672136202182878124503963522825327180154889291903191014856598803438034874676130700145541380602464222958891590044683903929235674835284260948009864382829989827189349665990552739369702753736981201488646739388108154632346724684482874245215871957008290016185806959045559780590477054173089965144995995017934673284422640678862523651556462922743210154914585573801331512870411211408508305338048678336446329341293248711056078716442374844028932132758801801252203619004464399391061109840546654710947812004163715271384700542030091652601455069454069217851424203422817450357990793865476165241358687898012741376297024002131108772461430287108179139748780971568573969547280519411959635616279400487413752820194721293418799913718079598887615511551963943952461602025708608155837005063486630139432389405563994266746809480474141421281314005559113500592103335560949945189173619333029492224509340534227148538530833476659779935005065244465685773852137926744739046842992355158123913284503162496833075627299150194159557743802732260330989743851110523027017741485667721545638796677583716876140249086640394518156018346507049149875180990044445755002546058796961251346514636692957902610395203526181336375125872750349622817823852156953495982005914806491215736647488267678578614978635217906665375148544549945027723785959157680450516392445874394013895357486181430856237310352973278307294786928398110496626011732188047698205826890852827490394227870592643621029519695029873769940034592927925462407840627823121470647603823834333326934561112514868152825447925363677053510899539379602703761994449294745181354615261835022728916131842060786020413964398193920315287793953236855690802535147264450327498884916156076485000705986828194615621879323404306857942253957790752333903344876497963755999984088308939831542083548178732692433550088142964014817367052755689534382015033907193158684866049918405598475283984119032253622815592721633900569403811973455514287252532233407010532984589925801818708192993492603661419683320445307154769781897519438511524765249364371355804381224160406927061319171732068039568923801874598244111479206464965907126613887268778343235133503260021577613164640905919681879913338726464479450129209515129584743582852504487043084088203933511055214336570090684912546237299686854321060838916097002575517323669497603526644925825749218571717099989084134908333230885451952385541606686107663829006734896000755482180195941828221464417187536939255969251577460931223822380755825401460438418742969116957059227916931336300048565159412550163501210853732200812717234507556540084926288262471701264619721721401362082426580436493627572131070572994807561580433108288844036030932069978111693365054682601868020181265126930712542370253482639957785463009466131716645521619940236108505648606269299418280742720954970428016307987439232589321595424554035510119035465630184401120606919505623532104987589223476484343706740071982361968615402983840965740465590786503962331835205605975767326539979914601633360394968104617984614046354443395395663237173257991271774684467863720311008816251936639541782887870840680131513501463343940118031942835272650593220595085535497555208833335497993485216911363298894465800771965842793628716463715041245186942151445017591184031777539697193371608485864953166568895580712360034788520023761711066314834848463564725740075908005576774732202260599201752446349608988876266449244669198980375945546266418796530889980581297442013118760297766684703830487607388098918235005807282832871173306073957594577942522420940072684727663711188259657564302944765291343990175342826308105951113688811606353429337453736617085479478149633689990155748434444177439151510210620156065522353130101975036075250878370064785460627099282810204234589403186522815352476229331855387271290257775063489261243183015223692348978774314401881632118792620712943724430174253195548418431607004418798195920373242836852506302605831947602163139976607945242671178610575602263893355263121763646206678835693073595429770371086035416919820811186972512758722497320931918781166348793910971564848619281517196120699380776416597411700181395295885137632966019408317824645967120954684225136871770201777692796252185757786509649383617773763620617950458271369855176315938632304264498321119672947098207904723466333441040498582957999383600973025307422803461792920192686014611695633592379983138102449008714449351227122966080942172869221909973181268964760617542166794089953251552743279561118772803583000095553114006528913297444297274430487764412971951592816722049852611247274240619849219267981664235145224024497522272671920746529395485494498690705029674291239936346733478709370578203597211435263215305948030754867012770842451698020632132288025717963105608378193436529328691574818817087707695292229265367019966799945414418730292811641617193631604680505696230130870157615269233047761961429666744794502929958164235060572770510150957343488024134652478286942233441983941114232044572625724301051976786655441291560850469716043108893464800294733092326392582328686867866765726716231503823810097747185503086043262399337038183652081099931466829704406313005745057447160933063292316902674036537347745576182859879113942324642184545340062517476164536247456290439167124287394586341875784502431744466531717062221279902656485144577452446585676319149024185067825797075462817130416998321974057899650319104438155408356359143739601097185341074887070104676416198550948713359142415850232108785077501508259802008776715360919251035169905066064892565778701716401251789132449119458119282030361352011806458308889295456922060586603941858511464561615111037699067650828761318567437723967190037735761436861116570217326856155731479979355999094363455362779035134477323698407649368191355916443683554774176880248576923288606768385557111129445748927768088361444806973649816332797511877184365931652032764673823861443751661544884150823734453812713857331778997353293430946552488659923584564794040514625969632848204915113985186414644209089362800211076314801503963731372417872872218812444034342471266314099126335431021534243900493996214422136039822036037874516516595309135024772736653414488681770067860423346369882633914690616991123182977878470490264990730838892903562104997970304730452021602177419777954218898725588640648366614770742655475963348400525116035919095278078021901476798053473937524014803650261068502908583562274619411760162846483624336806607901208474798439240075600940145704089278736221681973344067803268393495199850167573104344960365456103549610732223700068213327940391291256238333901569853650304939545430545474668412374193427447381259029659776516440718081717890947517898210512939102583703836685002275856605651852191672110779089100725691956959697324866185965193935725904186379938080613083635452292171876734226416149542171381603441140227977443287004410624435913381114747974289505545463211350259429958252842583273123782201438624883788376435363144434551055712436552519140690175651311551055769373941223648638284108938047787115880335397540570327358244287104671301942784129940703405211722893116534140192596136294921544691925611624251332253164205984602173366619089247831210242859685433566402755685900511969657735258200819211846626126964380602904058528530458484303797209054164518737631555870308668954197149842508645259329951686358484206337506435243456752348606905597750032332434953914025070173906731732114286470581065334236177921170521371304127755812690285169485869745120951151110300833834298085986675506279391113130554670913536684103665158387594217378315446628708925115798848048818052841522181558010410852633699179700370199271537082045463792429787965750138758714310980609401922628895373384372601234369385706825568878695230229851614350994071359923751191992312818221390285942409989543296473609808508310049886826717334352475333035503326071100331408222643004820300963136652456893509859614453769706805641309540353746994673891375784203348331633225790794340339956223246554227276116518733021721018024699471596851288257367756124801323607530647716169505784165415008570133004687635246771551354588767428475982385225115619869855600154379310953892312095013710266370258365278399316062917984370531993083922251989195467200503661157622631596163759399116996330046893024919559077513849661271372946265637814931197055464556766455423752615605922265878022433487598725371131419690976265848165926332963707332219352803538561699088633572001447632491999661846767779556188722960255568692153940509873170695096081604702596061239592928896779319219797866016737896685175797452680848742835036618111021472869610007494389511651067174402051500450288391972111877819005819133110755858966438910876034755519192140526976274474338728352034802754589922184637079750448126218537186048235767056584241110318631215330087503532965342113764617445767854829795688606630553719520393025097220178111127142164393733416201407734162897915887975466444497703122470661524582765605360407674533034438549821376271345354834416642907103237492812337478006270873593431382460107891402492109379500715554678328960327072416794389459939179625678227239659963764212779078099332612749971761767929026396965450599234037958886628984415083043938180226954523486182355872195794298447102188002595649849933362502666727222067582918473445509326416514432368359984281788029895885422277496986581137569099873336166676808151738122011612339491970029611796321205328741346325681199363891821436994893609950530256719875212607276866317234395943856926818714249982381247579796966949077890275435308652631050558074424348440087743610167489226663115332970786065745305424494667364001245687794682678645341945465937410655706595481763363081214270717305632499385169942434480167899183962238931510299338484871192500881056810227307016722393648154244930274462809071679422980238562320302939060199418659577636193267119494559934185424163087826533750887987726769228041174790272478457935803412519904039136218333801844895475177440203416600044739292172021045316655266599465299731306215616940008577858777191773581690243020369390357987148893808969804057661466093117216420949309447417679946908280960439899560297695066626259538999090148115813828497404404096502719984626447897394901699293592346185076560549892532982868687258374734390181940477817708355285411465918583080515671746529944164716496449340821183012269861511198810691115134052391865892277347364332747801395736059378420101306714895928310455929150416696369232545390268602670543257777686850254802793405228331029126207147306533485082590042893890876054380844359400317535940430178809553560805824315418340902803646178009736844505713316799475278036645395552022184665249820629834184649456292294686190012647536900310692015219403114077147869433926427070660974187773497012073740085929221061639772486610709571646413241197266280356593465749288833799179072765661939974932466986944509023704798831268997616453826292098913963965239044399485468817231644432133519192797183315495548730588345537567547177723437318800329396833279116840218393232080815903149445111218734097617169117113122695532746059124263259419332860052286890996262196021554482259585691448554934003417786442507418911787353118216663575500386396491388041658005840314838668285686939363615149677945336822260602523889287656217187740895885233345601718132859349827555925453490227889213476203856058708950141231483964850680334274347960551715612258667097493295639950152645131537776346405221804288143330273174816936912512436648414122122430402979842524321731067118797190379781976125987721615599164996870417354526509022175894442704954164280723120636929465565103955989891415762312483582475835051783786192231137770988368926269642320303236665923556615642464790374498940793302449373708121532998451764988382733792081883873718174068046987018358419121647441865305860669545824446698285006552226817919486155358600858979181036862330865778754249538816016621283756719804987305650686175856119945551511276567821717246156058423623274508116981538632831277618586687211855747963436088497349293922233211913376702019809332430849218426349505298399025278430066281469074693160625252442129438237246836982689600201247561552426368050858695843091916955052279056555610729301143073093833976116278854786764134164989914862111247844296559672425209694599342683512333485850125516472142036890838082324830896897311942917959883895719875631044239429136967805053957308290000840017714395924926780033935838609505457300308144823070469072644787670553128639109023519471084999916841491054729350368120114008098446851081817554375269621032302098483684682620039910963505152816560843475136603255745806997316340035337145523962942903108699794444767684198142803020487684361996666528623616507133302330718260233773178688690556703667734874339708252098992325694748258380867065072625549375919236888062804102538996760451077289990179845737146991825973460207867814199686461083550591831355931088628039323414982097409622309713397493057457106155367778894435743045241874227428844834211580572085902241665483512609099103869001889119215980505784133058512966268626273848332520406598852252398029850350632126338806912006364143956795367436562949866489690620680814098887481586370299484969421225030908822044310571704597713616349414719930856642600120790022406124293667215852097667441403267932393661058207029639532463417522509548865538007702908706428361020449522276388497609988966953269089313853089972314432499373927054329047226694003115179445850049385594597358809445880064683265395958000590909229785025940449177764756053483846148649321545737773383433848917234042191732108786951136294029099990897019139077714028841648193473762281742541805969297021714513619079871682075114359291297456954190149626683257336959199197590839163240385662938154670430686923338224331973978665901971560160253866479305643167355009940786733704129321095659338454808691143059718835811421381348123173398240276489544362361655695678340398496334526412321270090547929994324747077188203195478876199236177313134145336439331949064525146714162371543517110391484306704756889488231658965095275814241110318337123822906656382572821835800957961198820800759750678813542416836854743947621955850500330879249588631539002973247399017931891515054002435378755099655787945350534560408525480592062830901716199076492713384251478883606383574439074938593604358074757390949521343644585855134175345140842705811840278877429031094657790193731971673667197389750255697246216071917228871135702159328052336592365971141625816376225731771073450003297266273611807966592481547682872400808693407326533837638040131677083591062855365626096965766681209810645229245134467625318003275668508701304991141530192082815225044205394831029631719529380111789894854204911360711851931496213886501497353451682434129886674087668793555821210668219987388219542825858385931338995192856174709238690909831029352284575936207678920838244490805904658163909634753757212502279256653237464568981226796271934703184478705946950565464706942688074691373402400765635501080617079478765733915213266166083870526910557169194750690638564966904354400888045237534901457193477440672105688633630459891985307382401404804974593747965205597858824553858257725132797892388714713730546487613679517131038029510496348235347996468145235524989765507400709729555653546516476140170015578888941271273107671609064901461403096639859298479786108231705147014689203200760725678850728405783035752520347880757212898728799546630840564320975915151258581540155035593167702326097075801132787725150339280787245245543639926347772067903616661727030607983820235099281182238487476940703940890038370531834330621337304641501116741305377757508344012170498738793586692942632805683924822827310749438675023673057554381433186436183317727530751217481792492051981968873260411607568412547091115455610239932480297898096434915449632269826212348697695584004409011807383566502013693854290048473190753040360999783447617956237731444577638307854233843144344586326287849315084549872874697398114519680681882415144395700466628035124211230517878338362991874128840495360039159940999517751950043561090605785424263201202845381168029596510537812694349917710143526830864740049843658021344870781359168102455262086091098567382456619072944550606980984316491903978873505047084709874684842913988097306813708081453140958796256227111039020106352334944624780951106646022136908880765171128274455779394803286422450417934599244932456608835323930027144615034461498799694142088267007224631165003892100662275671028862036615362905217982330605955335238722284499995529707140710573032406939349061744356204257341183968994922059585964447612620690731485838297625834001837996293379999733577650577054564300489292707101409745857682994837716817802132514710242029058264473725283096596093395153398990277004724739811136981718989347453083638264401599722938498429988925525918710003566630979225430499173914071932479112684648596841748408854355941715934489413640906592538896736086623371339082962206487925269356440032522842434174586883357387038684054475353719345735260361157285387377263328673073656691322496427692760137026265753918747884243200826816365015112993242449605591827256349849110013794951854805766596041845789003832132516657611766796370433842543418907052053483871149705634475235688947727577903708344510028300541469505545926548988664529472593891941735988431989898421686354908019882208786583929635642782795398492353076970333470895545641029675497937480799904102224947847739899104885685635156651550813960305517985841762495067944343665099616380320026690343129943211136970645505578809376997744816779768945973506205174511224796582222027366420872233338036184472323029042195919690700399730162071478725215219777893817261593770205664546284143639185140619505028518719441814476415525078473688488161762017483315199265191492984491827037722752815334093093819682174543052575187637573864508758371160477853082105871026444353625395785517116557549521905878214260003788259455412592918084147469023604486828388362521347743217783705967680921268899840009514859198457604271573144980569404511210947389861707872042867298211165651284995513774047541502661222128417221697445993004435590918434260826447769888579595791203190988440291644797399777446210796979581834689042568230454458998578609566278075808245161751423227720426909632649656082146222738868832768167066012026933354362280075599297224190330971229541340901428506957352554756124049338747430990933957759825462114025180774051916622395932177238346220155910941315895352866730498153449921915845917274982432961194508862682112441278145490833809197212161841328956036733045587206995263221938438998255700884335943750573585050721422020432873507342517511041558371362934615546527317204562200814037513678336357836536239832865118705621816310140336754063714755844644808036985300761999279074274560712144520916182626389500640908617668875978214048668486699519236980226733126872486909937835434000990128233976803561022168404030769551589026307341179996151575625490841743711299754470436758538419010720843494190509815761525020349888004714462153046105871994122276639933041196233159411268551819529701158774580976084509414971149420123702749377870861882398024590606970987118080338355184141416066597598131121892515120140820026250710242390208952058992693557338790720415038471952754771675686340669627937216071046021314128260403847921104052084420749722179187086501625641169929159121709937675146733288037191487386046534618254529076348224987547722475071484133290464861836874693169870282907559676964937958719016199864913739307613174866361919050585372236359746279125953985298264261464231347429066227523675036440026714343999679345545554052095903355248868493117254923997809297782557574911850529754178368630485844287831806033606489579673007616462234614786077502889829763445939102351794479310874561371883186724408190961020529629944857234879414729614903189244639426228197197768974484230370218413795013190101847653163515479638143412965611728500323396266953280908216830695092234629848590811221327738770248314200378242546642682085075819659304818357841745912842472253207207632135101178805559709884744335636265024695443940839077677385813047518195381883002485521676005661755402139071331546080876581149205740199550898866414322580040656665321968866811191915225711690902346723505923425062509726946602578281934236025545357957312285916562465895498771341808152608063860689843424951548665657354965423447593590767136757035689657623476210132305887582134572210515037762480287924539317934146592800166742066231422007578227563480024982434193195344748676745367626113171625293203030803182922419300872098578457289455278921229262631031937404500204036755576583179511016908327741152916184517154084337382602607383878052107039716811129486037785081772744656896215508958289537106335454065050153831639613730859816905153245446384843111105634682381575933108158012490815101174984243785985948154425626909028717259619294874694467489614044479301319488085181609857746613707413971715177090612183427288160582393191343943704712994941905702341588307609853745513133433805240443058339623241566717350298256150376764493444129989680080783392653236028027943030505124787909646211410795478694682879722601563794218262518866833646331915097423542378587753452328566923822733276744318452155159845180262906967699352156040625026070506779104072841478264346981288877912406971275535491862776698967398829606151383537080324865172429325192242943526688137134940425227866368929893411872693027887309048748005161211297930169444797656732291551864452975691779496526231975777497980398574282135192448102418831485225913805748387321396411500912634970169601646067379255096571383496651676627929616397103905568386389434953432988800278508467648372164212972266764139749429678919036970828175500892108406314393481649866294030347251980330133251500741642370771402376252437224603748454613074355459269180978940258253504865443553955707179061767433511409250853936555892468466537971208300346355316784427229587793709707569937632140462300769018530758530014520228644197710380267838662736771175212457069476169270487238492242412185207569125458508208805674261141648325728225033407888559977053106055508127472015932237634303675659073205158216648003746563267864801691714929750213949515314764290598043928991435029607509220144643184675498791029074243806483495122860283659948814427841533098549913267789028728585176706444933200545598168395113133872831873192762198642225388006946434449803603351526727574685023069798479893010626382066734167445063673889075576918948898354913688554480932812923404318364556877491062776196010456528541205253854478179335245203639077880066136285770833819332786974132795552842306101531385713354874245079850381409922824128635760860623740053942516284790347418034187244507532890143675467686835734302661681296509509193357077207548316503042457190897426104522849878275583830194785665775585398323007295507246593888699503403143836587660952098634418952390121760245006398249272815982647773112202508353852570444215004709541671809016849048290578742539497307156132386279654245752276608169245203857756830366017210456325460190658838263533902961731876430461159237704722409716765667514288403436082916231898439035076215621177672590314738377077749896850576468039853862541682897572362160829589706018281479489273139777709633003643055984856631303384750968264530295166466303394462824189660887765350208473678440599393164447195697935894842159494393356226014499821025782203339238067866007705773560115249398793500824187430327950805722221025149799523566743027791788734357755358528080151797481187345551666217858657229259478981801676266322270162069455943951092966625083832264208274126296325571402092227197863251303112872813000132115714880704969954663181907015008153831763372428788125208044255148355450892087670778867121513900347833318104616984801790175084087951572028645452912983568881012472800229090681444366463888347059366616947467528733576985707751109658754642709060606104496758107849352935738884637327324239308408013792913487372988157538632149285553805345578887009267091727059534689236350263366884232020623737325846392369107854330386072091386587409913496105115188193822331612717245775438684453037953416043858141482976035423048507051149838143964436533735955143386686963640610262611190381972926770027718501054122157382652658082930631429964602510186016567281785752806456166746433120589293506943668067475990746785944483900332387150964235341798931195785502192379379810648601237138731879607814672486718773945017040746018494131305018271453159241130601450069131459512213009600091715795323553545724881775667383766337510720898655263382321123681904452926760371236331815691243491146962035331725827869377565169785577087462748717934360818128532551267693454689115454980122052899010178357123033529723168090792357053114350376304942316485818005145241292104903788798015875998716520293044231400206421828367396973679754580212316827204110606519780474495470295896531591189072588266421947669211968183259879976283198424991936573700621645315649123207075120932891712076076461102856661268475598763059916516811303810105446802280296998100096437471261406097993943874244067696021030525068882826421478954413365740152116432019707181971004320913307888386384311412534404286369326777695770187527856138118956748726536479328159811074805658515037111952193451380627793724492214353923684046238969613388090886367037801876077119776367110780619330099913365094358957080388048081594047763395903734846257035437102602335760292496599068560635082245236446411701064383304624672655893630095596355185727003137205481301689387565546350990510892565818660463753163170054432542527984651166808682339239792257387151204390327146900337108495063531881921969473158864485216273813409442653007175282353774883049055934155779928280470043499557205117536920578539849820594403789673526320186224025229815748781806608023327361965781947559679329574846231139136412819360172345438954333047060070283485895585446969932067559198568947549509451366211610109208613085280795830562253881550330634753110020366824572019651367961323164788899759201861530944254750814893047122275439162994922164633224499615770021385060214156048928377958296392044382862933497861114153094156033194539110544347193725676991794293468041604693424649828328976135449539946195726424851351201893740189484462793019818976546955514913925638907935004012409905663789499817531421710326861011185653079541973789345800902142321730281290109865381604687444607584013530463826371910900827470123732797050613295706684424519772128544857457460536248043513219276261819173537758081779400024529234287720182709415509298025791003536615114648784342788650907231203038519999930675404782718539457992408187307018032266116776864993128094335639016764832640389557988885731256180460960844717489286114083636425311694844456067570233553957464704575746733097738241986885582941361118812357632745094315194826321866263404581257908800417742043711805561010023021644778628506231141078488017869565956467274257654586883761789727449848566365485878726989507573449974125305151754917359944054329326355101243538720202797600124648983756934554783039979088798567216970861307985272774080437720463517039926165964600138328913961985499081727087828436924637719648430060615945619035560233262782856787557673921080213028767543189886739427582438746715571522687676593884976136688846373717048332789653427914831383344706404551176386913499677370818840829654485009382847801178378683763281562412471601255899323791889803805074560432606534044716731585772759701609540751614399867885453414977110397435871140692721843893210897951708218440821856635482722804813037033638837230972911670730651047305966585406564464195659137005019615352421129671075760694309701228731728731856940794964062244354410239310849114856051022012321322539246134131289476885090323088581495969229039120380217559894084830962582848794221850067409027578916716155952330901581851351741548814429786606386831232107593940571617130682744064984474748401785291107005864262347362589363439858853660292046737486596800164272364495570139017855708481013402299176128615051727837655602682219196375559731005538822548676407271832660373841339099331559285384126705693538333544723338381936099009575827892614077337867257938320486841025545907863734040765808065277847346933498605440660064279433188437986938873382458963592472724493843492867442620156865983641134730598794651603539581098713576944783026664175505365869767012511551715250296716644616586076359085109776269155135212417190104946597744200137785398156372262601609176846970494895767197285257365024141622354157359679572541820107394271992768004568461268546408976820601610136123497605832059136407314735071408331345672086189783261196408214850857277096169109654251101913155263652563803771071867490594377555100674212306610853480626548107731414107597861309894177307522502990581148385041190016390019843779627461376375555130942215928902290799466268485212212357214983536208930154204708307064400974091557742760307732532849239317726040927065393751751410432790896444248423639583937089118671387319715948883184272902846028119332388718871540062953887618665158347933065135580973583245969954575354157115936535985072202099601692279732512509026750170981375253667981242910373058677051721949998591466830690031103254372181208371949478214923419712536995221304787349054732380882484159513951657257755418633997638809251710138144313018605293834962187489098793867554780898109026514931176816640903259493386903576783691149206062007331738412228836934874883133769723656909701350825597852633723801930312762508200791499290080514158792294806880564639772108431793976722184250035601786396947635206448521382790532154476774070318183248675050184790926157159820160370270397574780801488260863768949234713293980749447293331593747365779031535742819897406423741040811451153815462885854206917705202219530356748535701672285880504593690952256974573262491266223758766658645384691751197562087631788486108965719908729736754769440633477838022446025505141316081688553391115814961477784789600399892117166109715424780772944913642562642776979713029872067387581000219195051219794205642156472274163530157458302521834759704677596872037032403996090317176300107334725752624359075010490672515272794457765636854800066019708012538561130417684552049447127174075575726245817882683400033101836362223229311229362160313503901936482536361760838624959194454442510631380789185141091532354480415685490179474453122787221953272434279616419757821912744814161633964364696091534819922035187469148054983625218891077753540433483363164902220641040985631457406130842019408271985405291848033923973432757276839492116390042073185694205551318276161653492591100958264108846111900704141108820504455151823432388569446329882661081901867371130529374037650813975727717405371379721981390693654494814103008289131256120318121496223684706828884039525310381690755136786465118054870548108712005005879450219579802321346005518837589511918784275606965957456633477942144413870621530331970301761243040699050970467758437076955268097078609827068406268889281116773815367508320197728800902887275341564845691286403559065395777108383415008308308555760126093117914551964283104897130588530994471246274458845775630691772468984535516786950209987636651670677718034501162490225804186455235128822243456147405437495195902760315812071497181488256072686183988007294816870912660366263828491845177892907436348816648307367252457352573782440834306523083575154709100826274972972993847602155619852631449606391588005538826888987150401284270772724275214507767189981899662295144152769637352261545031930945158013369338223036537144449262525341863681214730391710892732558585303728980269907721586609848386416444645478078194291929640151334329503907029113127979229336979226958858277979783386244174867772614640746668067136996438109424173151335090061360449076498052176548180346345373692776675360597262218888305129645290232158327967864736034996382998985319309221851229767087977442984454396875303831443996231679795302547337901549777792811453174267237502625224962820252201728867845620499065992527034934394774254733187359486499949303243694860599677579947643418921822580137823060311692049570586034000823811053642572646959208666333901430036480418045860129588077389142791533157080487493729257409866909157731236106265163625074998237730969675250608020211714817724347646522534920784325352839187513857674034978468002311755779137730793951451331857705790960817493570679972046495577814785546640676021415273786796812299545152536870892849754348902136336867298374381005391355508575697518733761987755640851830895833195148251402397039887343671804577175750414989345085869116219271723286330981313179746262334857521264468858367645010633043574417127286335732606554149265989445052584502126938124115845487338448758008663149956943479278350339139531208831325937674733555516972801317708975146737276104081553342515979951484283724836293270555276816466854167057087130486656109904006301876559644150327485881838587294844529962603503533000961843332192487263335392001883822715120209925549755545896172811658619878026076828152889600716389575943737701809123920833703966002922539724504784922561425745439451455445914524769264859239099577569422278125658013491944607586626799977811057855758303030623775858321819533642840007791738664778548813552953386314102697397140179218703561269574336185677563400207731935334550543425663282399728478439927199362407298955618488684620646238995919646627835662705146945969725528067195207547329085244383173667807936752248101050940693086991539977384124362592914360941020829068653094857654675155621582374368037135464452262906539905727391380681912807917965087901375052201378427964385730846930047932458798992726732626054439457512609743864659312920005307273693298214974802932710236548622042278977204956792749459408351909262343112656820143744601066079665516286270334223349821385958424461268053347082741528066264383628042488943922201645154563463493640324710610954082361218720853688786460785975226641406195601005225512516662388086522572271464607284894225956770671409638207517917675597749573697459563091394407485688652644481365128872960321965932183876656820625214517473992724659564148109529579929441735362210946181577592563782918492869859393172296772109236734025804758237844479759122821697740188598377255092840153446622511849705943440640076133138196494776225416282147966642017047781000346953959960899360620451879067104621264363024700170951240304042611437367854218332020428936513093478873949533093692880334690178284608261896626337148431387904386020909207203845902699879636335782841572606671576611636143234394313299339752020122589471813253427277185290457109054754158288990873688569826072825925098275365398608134638820948275554219319895694739135254387690369979104832981865357053432084710531266316227875790779065162636561002183088077220710179137713379416582298582125957849015879638400187188287746928712130208160103874736583141763914036343759394774507503177080485813050116810472437199371561316244467279214173080414078891719572063662136900913718725609380951453330056623606542876175891973430809610061610879969036662294199605687052356505226667398168990757046844960640627238160073763827010082287622956060309437085456194752955434498523752526335039927145395324966013403323174948876294661853285349192539776260045733697911356517501152370633439810435784142049655410848598850690720618521825146708693949485960589791739831722418623419080540205918925137715503419188733397276592717635588050623147294349235017129748909126234082327600269160108576741636339661654333323825309137007872970283260610414600971498650307721048465950119931683774694178778698667166759694370142154047268961915251880321591327369895835950539186579280426982989100292945170620309856743616473820616547215047022897005280531895951363039064358634776915310482197635881084846966922372175575697734321914068410840290822661736821223626605451777720165649946733290549481476758648660487475111442810958477718540476503035310927839487334618874845333046251344257375649871164726948418582631023604405366379986064542696313109340013540952177429438618190473140554039879529989887986678484712256537507465083499393168333292884782998464282396839486081701581099912671700421798182080149495698971584558771855800295955634683095936698556275033401189940629012801696129050313061596653819510929196589201294563597865020849593571163627248155947636484443693292095851091850671705168205285927999467410141962165896994673841257970807784944353421593888630809991834376220837278995570563213746748859719243112051627056347987407915841500657927007126167806429237688706096133471563258800172240991277581236020864821390610623376507960105319964256453381285682310435481215840087831120954010485264348288848530480431799674297845193736540537297687008601085496663365617963604705372066576677255988097487474104902767945697710053830496802708463115672489956749962855036956046173930516878043357580339573036755699829404516353933151506510652963407585904192563007597788058035633563833324035301480238360864990375483057308017798506898475024848149128547529430501819544626176797095195334366565028473450505994336009446304211929612896475432025658595025338751276664245414410177318278835476598345419433769988658885539048987339002761999459386527601661315606341437762433504774666396709098403797260100006549568431310130885117121548276087799620712843132431222586222865684476037810907113770453694396910924652073253518478196592637933155744759303782900840485340393295577390848690660902739513098860127957444205947177938276393475231728928163920728117070176620960593738464640920012117180707634981761328927928055331810119174003988317324913871512335244960221242917579360885968363838574650085208367664441065594293123978163586517087241668526871738264089890358369052289729033316661671111665941413005411794355893463998815698151570695575714194157514682780371222917633610958886007811583528026328331962102916619082998704807159705871341832911017558948606772191221935313813855157427785584368241540565241132851850324753406605214077282467332313194150788705479348361451376608369402232812301867155029021037059168759157804909773266766405790523340538496587125069308105317369112522695405393112170117683176688474843033240643217898290447032459842537273216264942484503381228786339807014753865466373296014336402561196739159778879774443010819462159332022150598449355395033556903841030540309532065575378074986024961566573476795587096100388163003498411118650138740971611810887714823246698105491625868472181641675308793917448816160264102368720906638876410320784383517821976054679414246307089128774310258622593173476895102965319089518886679583698565463142151940218327239469136447519353836196078543279348771355586298490010224775366148262907220025832840155668259639948936305641604247853341988108986374171438551935261696447643905722842890992880041666055355411451973425355504329976145803052688059836464431938891288142242516412510988303416751875673980554606119873857516729313018310270577157392412723820527798432258880664576037410955457547664431666251781028606106497642110789635527715832475611076569180551644768215972688111883601985141882419366757229524709464520486998007165012381943387435099584825891908456608448159335323770105926567182709246124887415252777408595846707860852412054915336707621308174641276903291843160928939306244381939926380460803440713869332465706885534724716426595819602377597819188694294292068202725977498307490941781084492569425063390866458530473081358714011089653342511723973680723412100799599922992360830517130728594235243648697444407988089618855841242380060399290550143766418357644384285126535111465770978133806939217777253036237339617181006220175779149913532327984784086220575634515564479462735974942442114775308485324788696199177187873330066963547905328427420017244575345289986592836122548940252188276578288322729077134422979912410336685676350908995896992032441763765784594410248060070808262996046129034640826832601268214668539668214557238571967210928058216031252222469998824509209889126538086162236138989110450163151576678125962594523241033799146326297203091534949322943749501140716517449625580689418059797618606694386252255692611632284246638906520642410662107250768602973517933700012133029417382261211400149963532102965625797880871941272259014269453243300238668687875680164112088137700413873024323462138955230942270270392311548627468806752076332168237786759568818641462856093007715958087735336290469860532159455496450027650666076664926954023162480670750592235540969717126613205924420662531524027197320009895659102014172028002766780907951302512910180050531215949897173905888051483758255880584190046442566695722199993311096896691748091380636698845784746320032427567706711492939887022288981086131966026284883600517149296009546378031460823502553094397610134434350692326069243652066881308595870481910363096769061370575685715208522187753172344242102891752227113211068147648080689502728262503440864128815626783732321310003220987912255984761339688780132839245678272452215683609321242982951112445040685494278400765811170412680079703797185332885623214556620806289453919053869018716084766840006497063379345974675354910713889136298147053550523441189757452205618397009814214633479462692861757304692999306647094108398595182340812168005954169924653363245059886533079353959526616120062292884152249551303430322466632062082111117754315088259040708958677028137751917924824055792832294758460319878789040408710577390490062981444079560717173148222918365335796864082726920655358592094347711018280493370537997705116822022105826832145737585097354899503075991922996701476586437984854104247201942586203958219435607618783601693174814039426072922574215803593677867234242007791038429699099824692936991443534972455729757398569087881465575784313193663547353549181728488248276022473992887478721305381097645774142325489896252483846037263967727039172921364399619956113733617994835704763811782218154690550971349991740291303530540059273580903263101694354126941787792418010983947092026254994668738531879606295546846574836225204571702462818019983854098750480805913079499294625448135610229026182114146968223859932532998633044568605387720061188878910461178016797822808624187995934760492200242821643146860751641818264606113163568009986122555848595077630967310698523215685537745649971968910451130504864052275981323546698630680699569746462878370726505124647344809769783574672208263618025103298199040806631989654955765311468987489056531362006349616962521405840869867344252098150993101034120727938267558435400893253684666979876208786581042260513558785254967231021607332761138188694248650943942358331753286434645205222181470327557468992339650159278904457283547615703273964707545125319771366244621895632937882783181154791927948776155785578798112337229770579065588553653833577385366297240773692267662454007772028006015846304393439410396470156424409132833185413375958857525252994842336602347694588514131269409590699897052021551175137106090740750133455374372208033533647093078192305386410768016229462336414073445825060265820354566726533598005459650745065610069797281376034336668593860590378858125569798024861024834163465059530237057301694679754267306969650622470971974842854907897697011696092644960883686821091971827177661431010304634468367436305839472751236931974672684663764524100982287362686005073718424953733713623487047970312361152107517808217618159067409737601695816341384122376769474039314646518633104976938175346544737927847210877119198252508455133384233446906116017700489785515628531742156485281768656780953461898244865535554619317315487741844615965209650258341887593764359348974186050310286410592311719378384083282906890741506992773342838163663898629849667784254856121613334762564061993333073696707237728607146173388745015602729585406783906771296576336431037337883515572477330738368726372027158397657306543789902294676061019773660653272062136973798961993341983833846221925008123860254285113382419728960759132475689523767994729766769241866995725315700344232945993589594983111386200632094400802107702414569284470471616542142391655136992978520378408918711001071110166178254507901551902511794850323606948953617750777514166805972387412128439396965352740097521744582104176816201586906427902058216024193894788571943900590699190033912521786252842549515926901912187441431957682285956183288671536974778586069539693162047881641644771220246282207175490140910568482988059364381345407651217475667709320543887934601792963099805006520964074875978504884072796705056380584750240124294186799502570608180003957419661815254393420672064121329343295006113898909942204396703851395850072330261364429272794160967437021131467941598736731146673841299790759434342126517337817442458579937289417564443784636050720829004347079763278492571650635678288782983659932596277811482933249557865579039305208185475984872050775122797913003793321056987550102123134383430626703117088942465531002159567115726374088274930522410343874173724499807226487493622329009695909240329301185557457034904545461217929265968838124534519499789597731123942233399837524786441175879020207358828638993793657673457146402133949366427174681761371975490761827604440674122599794997980353848817628075136720706865428108421207733388030093229266235965817225297240087689009433571524769952111932145916030866798841242296853349694211726854240192540096280075037925033554166844367341575685688703996326060452442825059031445903839148792914509380008557397606444461208152021024011926285569597880823599081299502029340219203742385865791350368420875567019905315155407449944083779361872307006452577772972047811330096395108700442300447016097385066987115354294511982873631890857449290921928636897489663884529898682883352455776641347485091827496747047219708651686041561923756054430537250479266895912695026214077359449333766087167026572048935270815697550247258244153404775450531865738031082722680031582388450563317342089253308491215706151018502482324088930068091990990590134634929279591235788089913685058729418567495636601412825421318127686472246801625808807352594332203668124068315657276799609272024605931121529555656870901202629732294385091320379757793884175373335480685303575845146990989154459024272000426996184604768626215551765617155303698956583993393020854414565529633246660352812106052702737566547735878981893642621856043767099904714884467506127783199145233960130282691347539676415007221351983840964994666598122772194539771334832619053118177456754248870321686488218764120202328366731313485115559545008954960103693270629332989096652408612166278353149359214331079561133588925140444768614003981384382909272322110452414838702404129865307630156079828918991348910762887502359867513337923122076317931595890522495854195583028501021302917433744076225352489598552956895575474202050577803280001519790258650283111644494528659667712152422437124714513682949409830830228104029007472214717302069889180064527898313863567206745393988736720454546746256299982783417939541009084846348062683529948013367303461765082600321452990189085800167033511230974516128981317134140041354832535033782091943377784377754716123848010486028342252431311118912192844908590440288339241306602525107658449790420203023892798444271429697176715045550315099261001097919584100630171106531535315816450655008814779665190275714017883620545975379946099641377599810924038632086185668359557574431711575453442194514111592845873361113769518960424211900705110083991647623886062726463333241557657216436715246213514489893690195829283112932426336246556751180723741264537528230591097234320640494054353859278349731433372716018304170038062393298024502077641434689356006146981353412601419260076270333174699694594953048217669217853139214526915594277047463422549009525988320850397684491305876691437183477983379247975459101322261267921314597338740321759617033276710090543366236251897258297485967120610499028623517238676700702074682819702669220218878167078997193451301454045843521556990702006589876614510401215100432310735035845472997152217415600962192958930751222787373497483402442294745583271430036896284172131784838809295050702290356978347836211881487331437960327091507270580550331930266074241290232937174724090902927422665080599397936369752072845258631322305070063346619218220150288254030556927607782426107220135216157884577398811306973012233936942272268907126112249340310378074025485581257760841639668491088321213239509081101905261851031392278662416699838018633406963544247590119698213302993946626708375826968513968305237844866574539115753172913028344355856079837054156648858669932210053949295952030795973659356640793654845969998415784571239875385775767262342648474254671775286986643197185069060007652715622116991101801275085206663540776683857000620163767073887252965695034370460638272061038340060618300835882634522695518261049810180942483079895726226785336823252763675264567569436082769448278978361319473231296366900841870989578602042011526077212657276540883985460062879493204748087475475310345401547324890458126130580416628508921542137922365954968237910727783475910880345232568705764255341687964038030880269217144109266420186793671360242835669296047188994395070997440716150547197826732870133271452384151824358811030337491513448740009779738812841140922748667635215404749261892380736340962026119508690195515645914344138308786240425721505695054823198427005556800407649121064425977135996482383752818946922831411954808325952992694448968653796530411699471493550339099786213176053350543469158434733286374136915645001088377419581504772155516079351652363846531605655989257708172625197625882921822097900717090455826188003412719793694716181844270569999357654771525837819398406138903794028973424120308667892250243285291556542023538735417959141298735709794312959325326834637439075783462534205691804779639672659200455100716989915188493000824706900637978896344849777201615133941930728954708272549950926124962759276013775043889745080548757158692712130546613463186803736905412707774952815323132839944280724808105285262943715357433693465763685494408368061051493228350672120993057626471462477083115428948956355094602532129802464647790788286460473466213433218426507064445754153287271329103886240530926265475883668083135652911439266886074785982686497318560729860376714544230053329024054383832828751232127588750108532722043193034818492601147633698077012013676644952571455694768510671191536930553187554404499501554127655198297225094328776204801296434791332748180348902992349196740236481292494891698782768038828635520425093233107282673217398433288753169393616650614051991383651652941403233021740866625874022710522291977092092098142888194182883756520592831653184481048629985466202657448108046989860109597863633720366850635061770466391198408030812742830740236164488582440970284204743599940756173355541692370778289510061810018878179086660553617227304624430967601343495880955791042317545793615711657679661592193837080441548500288996236958040907550638565055508472660357057965893820050113543964599781699037427887728394871318365846834125210514725637098791050790407167244565498993767289427043796911544945135279088309987576500900374037128043750660572167380662219573349287174218542316199415059485834803005073356393731078729733292300491358363686275510457092434457188395619699804214234718164881926162028613954765919831465540052181459678031913321527220872221781407810286092852796465317800600544832819763472269365362780069255078124429243524252911866377878128630780352511801975462853096808183585825674453392443047611186537832485668754820410280069706306043938704117606573419323678219067535749764767113559866516750376957271536823352626393162041394882238413107585402378086943298540180227833598587230475017170229124575448800691915355339523186444841825863688910111786583229702270736788615163251094304327391797253131418064728737236030745989779951591120079296765074995814626828742155429631540452502607715113916893609067217168598904533687028813394407803424853307267321932074919686593552994852602234197087459769493608952354699432611686305804964973098307696139085879202455470860787579578838782439548162637762902226802496395015049983578927624190938616517871338495719935856555792074519980652002910263183789162756443119374818706961883576604967263363870704735340286302380045694764797944841932833728298125013521663763004490177719905418282525667406954654552403593990884895340474138459654104646407032965816890802438402201035068849742952997433180502838346747201504689416075533974529251551200339311543144248977143190300022567053463929469758709766808954027317200902817634168513992459386489519457380039083615779074447824737541336561479920817874668531989805875461857614653425478206599853139051086250029635516149680723407826347967406507996113312095762149077208322691354075782589151651386947412930141222064803002941008902939475251801949811167214729150674909432282920087503950981982269175614169784118887175677390655460127129507723937484220575130732423567178327613579169401966490100381455984444669836236156593073215856708097089150883710129837313403979461791250934015851367837219975867594744427815684146004976158354091222355054584638787284195215171522334124830064494905654675552265182847997706338165263572459250715057665036099591622713355448340644443730878366603264663804458624298304386676862064026673032240369766634835927736043490725937947014517814601726052348439495528769628464508100366898439650038430916166097028504332369322697865910457792353582899436849288389554824738991083623023047368829052306991532179376856666902736459600524405571599118686637845451163566282326624026872382738060506617246472040678886386731235985967241886822313449733115297863456991309399571513054634403485673018247705906476713591091656838632837990706156516720119816085369847265368946992091498743712469955031204582351761266935586804853676724711199286912024507921544385364558117717123962149658285872365673764334182556354859484974855775062392985833110787318747304764931117027160403859706813824850015061757408955011800444935009606655869520512451037465442335183435946251376007599571172904288656897462778842257550161085896719565572626811072553660659818099494456633989335530584633722190579781691793348139372929101743976926805120551424967752095679848581322498583490665072726296228646906479752080003905600150336185893044793433389795529023788992162657350559739474743380199975956685868161005671882225464713249003162735296806348454174006863079399384208347859374869339464595978278590321974779280003319633371453081284067185627391384679939902773680138762883905590589009261220919899025570596384811010784630892474263718014100975382689958552403921246426520020158735374874062473696270176537728706993039536938118692881371301046502723877831875764322588326012248419968372959764681316261863190322824368782452318462170065904263807530294256254201086986680441135326928924237928296767447079433085504318337397135185009219458523288616626920267155190800524676845319553462564738474838556714458067977980522321497688711585322508206642941639603093567992680710057169004503626405949397846360566191873386983722693475743658443114618467133554560991878289505797947732555897993869408016561961980892181290807601805394562336704135868037079093923426375691941147870552121820164800231688791633711092803911588873004445514308716160129640323279784936358507201694320789358810857157955903813531634296494979829630799077835421093574565305102910890561437207447455198427847687855885258478185073467857540721682857946010996312135733052566302742636772638234961403822480945586554638611902834437186311229677734945967538907548132851941499406303325429556655540001747252128047043582321353150391105115880887771920850604861148628603080761272087823228063708043970533893989671594210481610852315515040071140327997662312094027330751429343698757227138349437058230523520039889785214606602225905753724695598207034989137549244348032451834812121305921315571979524109934701066459936313780238842863011381099551650212889411151195503943703156368078272538905708300502024134033407800083819277340361184085327465779177243045586656410164535014314069328128859398214923442220362202989889865807071389339337464917007866977256308029173665673366587706509750906987661135975732399650569040928102851867503445218509484586060574333151000099546028050229415909737964018728056468301805336687538416866071094715629950465115768140719091955952660858756027479930579746668259257290273060341400088007188201920785291495091973218059638123061992246985911572650430354466178816431761446368157167387446737144097921842054048931628692700700439899000207424560602112363964586458688555351793150807279819785147446983004188265733119746377344282431288853627098383120852938297043152037848719014364115061628537619904361419664783197194738585533930962089179542265375111833689900677766482392739251451746985379367602433327593179644291539028247767788019531173976973815525266681865586107557686069016811794790411108866660815438520757116270549752705201434921217793878586412084059471648784379113279479640845516389134477632107404249362395255832962837069012265053174357440282771324081333987631732577624501512121908165261720654581873427712156632042859088681677175023166424720791791593099945465181302481675842065957797724918525145407467370817515183541420889055041761750859630544402850919773601635745357206121912585341022166551639701875797691361483654372789064253068473905309184314972051225465307712630558857772588202691509648273026801210046298524098321214384336718392491505569638245830887936944203865366291199100918871145484974371481194474989812692018705439716393104476116895067542998551799355678090637193003937832967389792612957722361180220210272860780858269480381663851402952983227162382676701135972755798221838063353544234689036039966185873855619126431574495433782493003085411767230482140394588070834141797044471684853084728341313042830961716152757292693234067864638557441526005971648044576183773329420172597117221067485732440421702672218185937326499228034002636586171115779100768756820503508884091000619476242759759836248559445240197207461141339985747990854638696984370995892728469467586971746559257861668629093113867907885107073843053467063823237054642490876678302903692586869850193372144518386359325223564196833210051570146137586375566662840579841989186822386496609495898161158165232695809504184214968160385399596071576153725476037423053176583501368701226111890672377423923165457671149091246232485126574725746591734203370105002551780145897354532547474594012165358791401250139471901155454497636072354974808757361644296235461070542402434566430202890507848959107657687219636521877045813823363353914076359023900754903599668691955550244882875031420781217531271917997714846560759964102509737912729093408173579089739531043463385404566450983819550076653503173213815775027303973984125131597995300350348966321573611550195038368509239424119843482555378575514593802642622200089006357210875270539152465115960228190255645760991255196279381703757016102377884931819971127688356233287336600918041710569060089994690208229938545406995704128712968079249599488899537067794835192003725631679064688746971439175178521796230452803790000954372257155182755200350077412198833597049022628837016964454041451097406539656184902072134084011121191171126169343667928658340687363180887342255999284891427231732334544694619061466708622556475843519695104197419732655881594983702920360700614103897575382455623631157828494570904971185417104474855793663695730361855247306566474285898099986958477033026087700046050561329909592604496205416427532655474609638766717659496114460487044094190207224612378470315038896561176851142838568075164313975062254622988074450395470679080825656931276644774222464812897493307412478042429460989458911570254575648815439437974426986481482344867304571920375858196115359787480572688862288877087616230857453881200405252323689534585997771041254225657469904156046001255133673147156763744412663106791291911302776439393535856654881997939392655109665959954745218325420884701816227470956589204858413761346888209224242551961856134252247797026815950593542870266856035645183375689482267820954314388817795487985776911326859317809162846901149375611248842712357892467422169213561177605730347559390681512148497393311124284580570226950669697931019038687713103915767962396661620563682648154543442783406404999582078562305505648688289863067593422506425962524402327552931118649778181708621383779681461754031392787746241544878372849971364967592281109426926840948056789139003785827202411409589916565510613335959431779156038763252239973106681068928835596459787189320637382789199395725679316767929412150060140195859935851498409723536248487586622377542371063882958535459597082003603110330401388520827540816452758305343052847320243910054760721776405346158722980550185606149129074783445927159855744693622659265846384885434843114368474313550188022753029186832057942141328167769040249678921046663859102173979220055726096585578742855105020938036734435339108055948236622198978728864843268237095547687932849550159701283160258564496876202578562384111485812057171068453004284155708100768829454352411575173273894812809777610250101572782639569874635695972247530183248585134691670308908198116755843252503008097197694555526863275073133470547692992518718658526831772437012315290689906398864039977124628249935450954272226764688687024544237087946994604978196579477665527410230847511067221764628000977840203838663804048445546780290783374660299632812571754375248119480430873664007449843930557729688211824461689554388205836682769872309351368003973936496422955760695876097081948504785018819425239011722621904017380725409859869949945790881718233170332270219585133499630404686575370155582859150381544345922783119264226736836794640259519654058702949763933375860906673209415459806538965920269728818784679640012657245080270175523808028092942520523620491513612583370169133277916220351240866838765578731064846689766554323348547400166839715198800955314392900708324678459051749202834043813281196764701637859044600127993577283039448673476426308803465845533112818963784455036984569083998310450932710065802484222097477338099945936428559930414595979014417828132254769691420948483091111170963913991847263721695636608620235179000345945081725840640249364520864145532909688551480776724972128025509072208770155876241730764047178951186957929777058771731357079549421449233112353249403044048599517370352652443286467231635236411727221134502038431633161704241787110074039079025079210525617031935778673530161580669220793977219071858880151928831115155011792683907957949785942708981577898438537210212056191835299122120163856043681984891236388000560208898656247975540132451514072934790744821515933147973950763186615599001953516130305244761260370275944397336869013434791619976157592062762696624956502070266978163154900992024378875287212506320001234405154939805319418632162428696281259201056992082040109590932400444668118756812589294603715178016777522498643196578183935590944391342441551936671895877603039812689246542265225007352007559320734544735350641434329529158216479149376972099821618488153160850732578070944620851659190729448849911927172479216553028366991722167720478415921617242779587971034091274584252675606501815240721304661287188719912909254910965974281733744953917521332569145351231441850013058668052574597816464396248145943936144284105351855487818164017425829364841408250181293975572599726444338855026336786292101198425222335962002047229431148661744817810532203447566399538945628202757713552044842302570727603317953472281551563647325246623244690389507766285294491631443220253199344699974743153436120052713509302648953313513721531874069717429215859271027348644525115749265822263085940310565253585316669863375691798178640067732930717819884514735844929310702655252093087008222400002987139055975769782192203700553787003503386701290834720585925682426014330854061225607395155111287048874991918784564867244933309143232658723201060068817483107081966412737333925704898915515350199252198884330664214413870822006620802192582938949676607973173506372726050570318524444450698241947297739185311062640819412418583448493922680772445092744241765470774825554227418163486896418746997805225316107107586413441444322277012663809862600957457796044058150491307858768106356541241835954986532915458348257609220752207982609591351969279273274957924805525307278486379029232723784811676987388944414242555614944335132131872587368685443480078221028704148837644699364610489128138070312611431708032862429084604421089757828272051362689300133096401522360205992372556525298249386288088787945783347113785170976775575066685211189558298577212032925657424668014242676654975265376114696348227332032274787440038212637717861068741387144107342404323205888799996091293360996793032843285517626472963400680071911876679535813926836242087727883302520084660568126697019826955780468092153098317799168888400072504158037626192800319141866144107549751875481187940105761089600667608382229190319835364655908937370350429380162721723101094539456361152365855109456928590432929984885767609576159637249004436834803065916058559686936030472751840994773661894754403648948303441593131291760543478526336647145675265362404421689543036161799239565354473348598020781079835970187633794220502180310909301322850888354566185371776718765844136082022236004738305545328721900823614846008940813913891662453473921399402305791747199921991225815716738016799955477822684993573578752327218540033925463307740396651887513597500406262616936387532699899463661105622922132975351635530578639984198507001258081606957041908162244905379718300451153812348105971291748116841676930729424295956674887046011860718892072921125390174004379792142395506505069668808422623630329232308479436692782945084788330641819308436992171974262378573440868131381290797570124962265477332807821297939269598952306329946535906731312276945623777678637614574070246773018201278182321764357790334896861366060276963063766113381759575877750651400502909473916374399684294869893107850647417406607199188273303434677524580926784609948465556880236589411209971556750151402142068872660620408526921008759059095542189373569463981516815224833658814802233469723312041497262802845840447408983878030933375150322150740503001278394473170350521717460977957899648355061356723274071684454174435798321407602612740528269980378075267244041456507850557896480153925398728359303459999039793986911326330306460829934859170213735703077336642009067057556091069401257658951844374313382649098808472488354656652321372639435835846474738969313506449843532310101002434038748704341227117237782793327416594614965616208546194130106145585510950349802254030258529209692941980293330919569297968250420596092239980712961619875000107212290699591302789860829864726280759467430642785304851880539386671218993252328607754150401223345134609274337716424865433298265412669709892727226578701113040329209554782195061918384673816783759753475023751929636212508583964267149540751154576652212182712794989815047354051794280522604133785784038731625047076566861213169583592247148301345278533838637147473862577547160094648075607748664502145524644524406050974316614679580392794585155880656263200416685909699628692605225937604387239892660167610517481123668231447013221273776231508419970788641750043018779123861836872757766774201311067747136021113714706464587445172261498049691200239504634028282668554502256055090155014216506245840367454963748784486639554184033178679746932666541583750783736459251728534247802645926037031408261816613917095615442267412122605062917681005275906928452112909839067127316297233760622238725869056939791616998576616032295682776322640070487604216967187908458029024339480736861327676677412838821319739388726150839371889883811613791171460629464901952273560087252282820471600020985342362590252309001779232369651007204009920769597973786115289455928809518895623313479701865390828954687520555270442968648804451318427400829733268498093238218984126125750319395386142206221656148486672663896107582512639480706485065364021887541088175378443830188343400625861774536533977201373690573877669092171085224013679810586515388304047503855927613915024822921225332822325741802588214682637454745261236139013495402514069143415324945713437308713172071153010781414594258120886526305257168966797393005690103531093996297743156817709947602097592660105822050908937758366716188316888850931296887281039805789694545881578875308527089016081464547955316556508950457221612715301222138199905655040540463432484437249663677792081595456975107188986714352314241305145581043528497324876902304075780666154629657333280605463006175053761781924531972658291598221643817210589225349860228222534155877527764362600944784123926561178638325497321978364990578296289367296063058648786944471728018742339387196793287811356460352064348548844616439195378358260724006576158921912369688702132074441306060509910838893134671418378790123581618782237569620097860244191582475714512114192723160826202891816843985107418723889169962780186783911491505830215254154829058711280408980942920453103625134491460531743408697222440266170659469557746053682584423910261392175962028393084991035952139370245324046946600924124963576033776046348682616800938621953991644812453296368483421916775635873629323045258999180967022842402813911746010403548453086241867431970791881609386145861043680277985362702190226388050626128340785163219098459434967740578983320329098865380323918693259399899951863596173641310062595947493555994058880772565073233598847436488888299687045096649470573407621192805308528813365712154942131931266071432972894788188427972882569597719285002087094193861293148321264391965219435887377793425715472384107372408097404485199173064272161522328387457178467381939772638418236373851675775847882528658620958125856645941827268571852491039555952798122596198281694445544417271516763159578048830355461522980258068468614760945078061623555250777223478187681179539146084306568763642127682143240737538651200018742189252732170766513515348645346939464291833604576249410126511631661990612312477308839591585933345347596795635564735316654617310365936139236830688094302544592556559366838572870928995553882111025664524031643082728255223649624755023137288937696799074816570032275489236814904334226714585101315292153884248793875289279351760747045511033890306899190354125187066991591982991220067340528179892121552898219754064121721535396798307654721906289483274401595902467774275254352446807064737089561325993012964394921428097325779304611147119933639602909252192154866043534235494719301138141998961477853851468817863940311097119276496112456412930264436087052513861936216569917342959625988666366011278519479277109889082267359998884226434832704161772385885143863191756701465298390571869090881570405027119754083207010737651760723211193562799765135576532071019742558646982684763608227499539225411484146930618275160716044665386119197325577782244209056097731033516705143153362415717454952384680992099556452033466605637126176905245820334987780158154021087918396338927794555740946362635379976018033861835592999281975764623633595529500181299363259565651707919440174300890402602645174579507176852961019291790514605556781077372164618510757223055486645263311129310919395217004421101012418018955034601838805853820269890697277000828188076815955951589148096804283432223946602880648120642596396353767373445860608588716479351700627745694969700883705624612379756323145004590838400446535243452358559500399048637762081777493452174622811845868837057988743143070334847357696624496505473747379179082200907781352681499751908573455707117804794249918193906647808442833750062587708094627658718853073321470512375108348479137389244514701518760984287969687921510003704617522952863705068107884013930726372090190497382001128643180370761689959189738929152396023917948142294497140687665340340387055177926330237401776632851986638957918030977592885377298169302080406937523861376620934812528212586721506128896952604352980133634292186655389933517891984663805681856120609734382903871648340022837790912397486856137144102620880220331473658906915972728191740706504021801942323987899917739763895916170029279631305579694252786851645174767083307401784621580480318058639249389486836939755227407182046653999704755846442999449811896313905888173162780921205935594293936917693096172492810635425103085685581302210922028097116872216844746744663972344180615686829758645770705456744277078771825743474333538780784515815148892994269934330946272355106553696126240583648926351864701021684878093206957898780616393498827048463391655627785998352503036891778740633635931203862594711956886312017766855893201649751621701896266860810630302137580829033964264288468696033737095355489676218412065337411741646682208497547101168846189681473267215185027827447161573072333212898828207154464040044108987889570379429283916682024849224408833020071163829674932018715882957318464541263781765414554276611569808357139091249478391556190340180574602467628188824175017376135777385697909645427397739916652033057249801637031877956590480241890941166712630144708089739007193415822886808094617730856040533034468593819824771544148109000730447845094976476179154699674281896075493201573538989612519660747853292607801412497152300788761796230046757076492682125053160179448001519972935620391431253139983530322917195716394373845073009687157036443911503226029258374997959077154001595497973197513641195077640860388536725650149174115424126425569505604973463768563601841051378015425110344760425548031990095673574599375622145520880369475596412726095974186035528811659286111931759988713421962375788013863626745956962921975865188051962831184603876606605730875145970311963888527270870894767816977415176334053874672038227344348069131196039930711910544856081501996616511456665453059324031411826259606264027588417346194153315462461119438631914984093370261550858171384769202021433413068929217486960820707149979577771093214639133340900682343579538910131786015471320478790466213038891567023514501028360074205742113629316513842195804783386642947099303875485214349910864496821194098037489921356824413807537849175465197053112623646843288894704942168665774472326803593891692787831757525118455350017306771239882005961149492436212554672390475999478282523692493912461963645635145792933173238332283668897175486431474867361341993354443860152425607401552079988385931514960169058269362089689758974946679448618964846486695040013950858477329003980215286935545455575027023415324350110004341539438532484244005430840183960544544069365692776321666567060152702539971413226968427477281621064696533829358811280413468568664409163447279479163116947046675440835621138995666161878834218922098188921481654644999706783747507083425505963111855143583094589324755656849575440624854573634803731960910563090625421551626414620848516680620019843895884114444259120740523590765301814301107930257736964717688451538733810395420757856216924467429237343163594220678709727617468512173765868946376184555348392302476042647818965345928581709407489402989638274552630289401073006268035700726535345314725008251718311402156134843436223578459306619358769951677183870970516393244817058470403187503149785977645254565865774309192042907726923457129518789918376110937619883041963239521940523301567653782424148017571053858428956421799914566901425225967966953947194050312994196324807675368794494960345823969691620968430845503571009975905710836697349809777393817779205027358451933808782467705590961344351849624564319466313164756403064008670307198268269748848052331074414066002650924416023585913157517470055246425981891798121491769222165395331993108830183218869238594758816809425243658457369723129569655883163606997346164941995484853627952975131965351240191165300451332868178018676610640867402041973522083340994439415315450853680610491731530381582654209688562424425210477424402457139700792689036436328218674465690800895389002816068636335844805364165514312417004575364213060050773721146615355986204450458488433861514532911036273854754967478272236022304431103346206345873746253789689665048953532269148061250472146305655044584222220461735407202114369109697861250919503537762911987572866457947762195419466718460018038059286373315098232084916733951233897266470326724939724600684700631609260967697549195508287236521645543833971591793485715562909317694927475312397544018641232915972837019223992943757262706202501121227925404949120141421397452445959791609793381280445229212499260962008765297080264489197082057707177927966161165954295728717807443055614743963586058073091577903993974142950471835147578128671708090761749943080128074414457085959236135936645370996363550081949587688673933781663130860185222693879312463564444867160600899498819890912232749748536036715965090775557553821515443896422372317050399240207904879594727092110013214504340668823183804926662547961463812381935603226256842762773904823638743002371707105999294178960003284994858380744789367961413568498387770223445252340601774384989525422312116423689614434587431431766935034331265217822648213856720670424294479851189136445436956022379267768541976094878165033491476250742636858421629660038066161903156549998344764161919820783701609671583281596119283317072519328929653370470104163665970585699368202500223224527657034960344782996182317214084523363112176220473276760098814772840354287564378129070206278213972764932433712141716336542606185062727026433023683937722239152321921530787780152696271723655057125655330871700206335493549145769753020417508571667511346033850469983102095351399516576268186922915998037520360811598676102569424713478168262224216860495548236525005808245909268228868644936696857616254962831717631824753135845899961479862796472382715047992019575900115050442295716468672468889518015465886174472981876910140298390503871520079378330532637581500635819549984306679504342097289938007592354361846709185957968425248064324340807012693165472848345794225846891710422007729769545951050135070357721444805749468442022907988510686683437688892393670028555954438609674584337827795313532148380270633787361118029859187409509428011297614797585108178851853842664191550718086165895823023640826754129936264783661360863752382427736145709646055343179657186244357434191870125281008856528037143808128243732831527768440833831017719018003850054272682471904747729362300607736984749287042032845266902548671367883231313439460208264688296043871030035051151743747034985195034700571669036409774935727655505516524142222925212496942920537695291866065843925827261487614924381113684870164889423333264694826866497901530441521324637388534518454549779891537666928957194442286984181447412559375776903593669847477918488087219253472406377781823333899593055693757337025240591868195619237786419278172191120330785036017630252053959243854685178005906956303982648309882349524518475774493266024771143514743911524243289169765327094588347904261431203379239590115136438212933388930763261384549653150983792657747332584868234354492618020210995586420130570476747113647266771028555376579994000494511594613164242501269479139442408571156381388616757589284111747200914541181717039439117469277536837901867269441293812457742859481987198425461801462606897327607319457503843078549138198036221016800155502237480606593807785947256140330434597466396504154436394378766882543345256928859065770323496048324417922079321221700503008999611704289275163402607449402790282465398743016751671787970939648134186825094299259144105700172106395540702522297476588701963967766825178205822964636896065183450128637935051308000251792783758733801766691074585356951711912448190018885298273943674280317078710945984689049920662283447985655492603036903304379066316653517144167605955734706265032068333704605574992161200503273016814136814928867659347377315399385796203136414883309542131802588864482289399015074696993078352200850694744165487418880265755768576697568267620569613807779794042917242937651789202850980374811243308831541424331584169719522134468789924188337098736161989237977571895375975072010985200462633825704000714200414822620452618807398816411740897291444893514459135240709062036878235378855480396574553104745361546646025299463847495291591723409577862506902037790614225928449101715778917409533483283497940282130299459891324185074193147386094224626113334322022017942049569882471864154623771450970284146522646405781246141838097919803510873538592348456330147309878708266403817237902893661868612116323963728654244222915349660750112501130947827712398498897639529576622576182943853276456137621153608703893291924893884149871336188506019057176050343440819776044135753131890310228210311243282928247273230289489591797058220476683678010491401494200886750521661883967452714133085951964480921610620295950340080629694994619256791187768675535229850131264752115684258360598815430168104691251700544345115805189465814991834771371534812683866694764023432726514341601827422452814483118827968525970037684055200693282971676712802069283466687950178217730350361959332465534911724116493985906582571421748317257925480659611982221801644622069053214206169230014230958140884968390348605471255210816096004603555478332567548459270691833301097158063262475880166873706315969037487485789698541406703286206817819516797005149843436282222762102375365252641773725262018839600146996430278961155139426970113458237252449608836436028364770542492561305701553736805120353587578167829529908360568376866533786815662452392853895383603516364951770205475533593934633687413929266152783009428769383442477535463549849993231200179988225381492273861079363870031353846465415618455967253450548196551477065799583237241697980488272123875038825654638441781538245660289152157696319487713297938136683846421004869723784789100209692431963535295538676895708980312591790107278843683741691533004015685754766567415813962227852904721564759241447463091230289327944349834420445382115949292186160962892363271688114151209471772755153038757550505790751121481776867380578961813876584407654661428341073021069274600056606556614362671025484910872498524965910626952226425355336862920783818244223343096869520027240951573634968798191265199777549781857089739373688135827598260864715157933998809273582062830630712393792017736292148818911453860609923622965632681078710592985626359724117003599708188389206341305864036290000747215783623287044040266249439258386547149499067876809281710239749278304351702149212546576542447378211294670936861143318518404804809064158661593843501542978942081531197259428593049024535291609953927692842002074881333504522308990177924323477567692666618817430933352172052489340837257097463280806039096360329111781404054907053916399414051454980866365898427227310624353277396289443222841747405886383432014319066268485297985696021424048160199345422409152993501251940740716142221225590485486891526658354441748257775820129642182070969068419913243526936745346457854114211952837741246765163978541443403518228627031809956745692903373005602780957620855516872212863611737555920868848027450034800476269287566673217066457894423730889654477188587518541888845279093910800050418871164421641402454065501524526133029690366611412715368956837001411516819153088373285067905807016756608409488000071297439628102909334909805208668422784244985150397587380299691879808454611852513632533719105173958930800640891600566464291330101065551752765541720890772223847958182729506506949452638437184218003113582784892825756811941687201431535959400579118063479658638129283498873711479576071100747881607791026321175449992112110362425956465977823851493958919955696457069202418109865606680826086934756683121240459461677405998916770001243216385202702580307435346698631871290908247699706701296579122255494117828142017375603416131334744590847964396515995364802557065326085020626056934159517610620876451471531886076292125365078539149440789978636287304810886534352642530793690397686329179443797473030890103953966333961968960776732468483198306191712860889236033091506176762574243845821006851693649101730717995958354354879873937928491199410401165811336111440864942501076297926069063616500407796688717936193412733658365126295415571785575005779355743878886687836602073732669869176834078326929171832633571888985287768586171369676376860826461975655755960866485764669307835263905760845759227771491937703048789457263353814879870916876926563577682377633675568380473178393758733928622596436371178032505325012689763217915997401268386799544736600977314818159224136749917816224498051338107662374892567859975164099947425257148942375810615662783920658697650287259129239229026248496954011465229532711538051010492468588639655715844925950915179716698285239726661808611041726662211080258050651895692831769646928304807739526361763793879418106732075567503287842677253251213631792602029594349149072409730735994303804364922201155837999320844173125686572958919297161607457070140923084596811697307062075851638713535824539090421306973562413703281135342469462707579987137380503885240031569394785391398147458519702936763000403349249359336421108648287345753163802719933721863574131038153384276470753501315658020567374515581760424291259442641633246567283935293271987055919426979750657574304076884655655298982311569149176770285017742608309834424797055179293864716912976287929878179062550309070761029394364872495836721355691350069497041234674120821149843025487668216751230066209677498912000269020767145946274319858058647105136301439792999294736846358540242015331153620823836728248113418266251959563267727557085989279723528403948391933671850989067311624713999737592142736482968289911115115588328344214949880789112174923492909828603236988418680704745630439990422302425532133721802150937087968304182069620256127859315737732125633490242323562441485718227876022356836968381457371918029946952891794714432115297651161845567615081103420234104015481155086321025817392953676994747099585825490899758327808086641668394582281505062143966099368627773997416833023673532579169685757658192814058027181252336361089168433362543168627148050949217721941237238812438840367377346672518907045537283454114992743932090476823656248807427828789426080456426543357535973154499795338352381420331974906380287006435691804928603068615630890021347443503882925692474261540904544295715591004973465515893917078754896049577259521442405904790347741219352951694914984003751119863734691634058722974912480426013625927849067205113914114877659485065128653788804837766910664674957225881180785054624170227715419390753757069578501336609675540489150456027113648863362842476868296967619093111887049105716512128641527654306846961040006071553376589746987621657020064152801238772116242921012043949326952227687224193347534424511980876154442682511122154501691034997123627096577203299309803129245746756603766113152877064393364742829507286398335769367631448370860578993257584935879463147571683314875337871808790322210991453220310531193356616930011816842348840433041740134654109735672325494476732134572584253044504111013216403509016534442304900648808545641159322718918305601830155029387840616605658650563405957933705647347198014545165502568871540288043891247906264274827528277628574759122562127406304421263757535908006728758572772356793688163841203380214824671580819687382347138937325172195937788352308593195774400332443816493804831805515005166477344511212512405615332371127441949296290838384332552040897513301954151377081466916601111467464293181437062039025254842553751366646643898384704892942049652553017702754465249125649598362524359739162070852717394854643601143273977220177813055786330516961628181231809492598704401514686176167358686087886733066715225326313888022713612508283847874441667453131925181159843965590051342024529503948164191025649098510420391837781636535128680932960183964117203911534096543192803047443143890653306862420883692652685892038178974954801657532181338611016407854436557363981268674504046323264638612740824707370035974249801779999804143365471926296335574304241196379106041875931653372516137459718669693393914092989984181164358430579461775227095284119426116743032948598414992499260606483838125260007622515057581681278962554639600416200202637285432877739110669789875681972457996315489910743174753060686607154493069397948595217986289005775664152059792594056875819482895062719518329535600779109793927761101136661279216812641504915429643122832118360914685862926734148842140215774497659101169865596957706942080863549354567709301886367996177385238642426269460445415137656514054237497705799972877478025321458414625658835051505672717980269088375433664734150443589989836305597130191998102363878143777365434108313561260003974081696822051577777979692648836411305628300990820379112721145177336851367758953577370366992637153290888018748820740150760237295072260480749606105253254766724066682591028750536310131997199198893302514962633445313462497851890002929516670942833585051728830481577938751586431341922244420759946184930650076653973819148372537347515942043885839532209091433462320825307813687200980778690918217426125423587248299291282186310992801779724157865081191543958890039724333919184099889867643693371396530925819509720060446466258357620079448956781272409435362640919378844835290973650402297206549523194002321508802026719109540561437382391949980633550579635913688075027477500115239778797772816891954321341137799213039897575648585397142485568730930377586500905823086689841044380606632358800590024620888086896013842303123351016566156215508847968011319139007039974609028867668747528368293302702301382327152597638050019764886026940463059331680289729456377487374366042690858783831198294838484247595795704157003204456201931061135376378532230250907750234775259685056000977342568498849106749486909874809594966783375619216114018995279662961099620457713750459701764376578768549565299448417880086841427698537356168685293654914727093229736100089022264678851245027697148441325551973418072094206760003305119042115346755006342409727977001386298038470666565479188765920107261710859264048958287180478935352898386227434451436348310756009513826881103658248251585041041057642910928748991644079325935609680080984478790318852855897128142985197227733222077283853928703523880414499180190005034836707890805373569864070905578530959650534881405084350631251648407750600392808346997804363842840001191522781521501937488897909358961454163938509463192855948620938511104759319983315191213918004965905216715493942694576799279995983655928037235245556883843288258522507246619617224068572911568146633202819965434175449857195803395365388026352477962192696491544749248975428179238422961476488573162262794727445906932725007816311132022534681199461991731477880932903149628531940137563219102666647472092475186462337325057051383834951332389569235323246643427051340060172619297586392499571504939577794817646587346778097055112577922728200233722023921822250734784100459449052744052112042844916694212201353468530693988019987894873008868581324393304502969624027591353750961838011938661791192348089672253894644529610008850297538189818512359741861350258581042841144468646040405471214750024605609127156658468104671428522144478267723734042402060979795029704767518727235318728498830617579604152654253042384099075928137147729027397158557949964536219042392940324963417438588393610432100714911861331347141539428680109113103726107170923933319152113685980175202813607647230979582422487129882200610579880279951998795693197259361621202089467519993600357892163253371390170726361811243832031651360423829073221317453187683332675321199303204119703768585020822501768307172107630926009667764352294869298669268774980497050702866195112426205119880265248612179154427063867814503244412637964891144358199656592328374629030996413912380263310253220366226319066417110165585748069915482723845076085435415242314988924712825307146357395850045641680131768942310696066520486745099177563759384632311658916538614853091112895962371934217741641646111626434708539524197777779882033285537418665338367056603238072496038879774223808538495911732435596728500806854236455997106417541197600413483845478035036813344345781386237823129179919253920226695133309102926594700668430697936976726333644257668291282974147736080004226171228647843864316344607560610053613179831759835975083687097586165810038946268207570508110526487237902047207108336629017933662378671389793914731032042807938701547408276810360208045465435028988750886061516673831531135666577428900618328185090045085608854808787641983746738386483770381281419313683910961475870705530990411153558705846375361268972195822394165464654777890776358211477990995287686251581108642435233512256975887158138312665693899457408693068024902089905406515360306795879546937883013015638487063874073783032602203945125117674196504212225411278271957949748420187971553191854210337324622196523338655476321321572137894958482617171819713428170449953866715254399589525111969114944455734310896619567744850275564834276559065087080060905053476253736657839336866877331455425700100467203481612377992256764018341451604628828544089366834658685128871943658571876353940298726391304888986724524689447129964177368919296878338789783560707249019550958658582775223978917429790639569612230929248141393562909922351966158516839129903028141911116530729608475940415530238330549295235963234296910013341805873800169860732916469801154814291557489715463149657277434967454328139218168253579587150331886359583408262633378841535342178734788057357059358197658557556087227008320032655888681743127257760644049027419355875714109549178840696252098179494355135077063630392413962621254695956203280388885031752522015232657251097395721192069292619641151004407452022083031491253323795025584899766011939733529008351282230592059954004083061640273950317623785398883887924808455219803837781260266387523617112986063070835577790868994589889948047623585903312626017014438366369868133309172911988940083681211694904375873517210987738502662815874386253765410405120201852325196441273666471153595500731539681073967423341863413057291019337091519077418300219970500190632715233199882090875613414702574469861894774480343741008671471525917492992333471100209467253345595536729206890894996809566592606252957699968565421077344324824653323170632810533191230504628082890714234855733324467032064964828912836629151404722196422653448328131997191239831912967386779794088225515149959020881813486141121471681232916041556651131054447323296497319328051087095074643812199342716216393398308207402405276601576458822678117800976119205649061783896539588408101562453722575364375504409709792457494698818492152878162367342990901559730424023136868794006054568225096423183440161833108289294170886522974195274773239229447300893831712344008077564280424237730281621542411129400854553753609763167100492991816059986332737274039854094914119885359278834671753913379929470372945328406166679445343676441832347001648868819252881150828749105445103791889885979832365532770148964162998088161930303780489794064896438729545802538839050584511175464545650895783347325755670767725862251982653925553027393053507026155804653018795048498462634264086884297057602405167218215215437567103963141231145166746632963940401572918037491961883599584446339504528232063344378051774417680930605465323161170490077287696344732630606759250095888090805447176320923813063429636838612676069768742110083883442742328892142523550130962024196380570199580110488392404527235620549371481646391079129285027000796558987403618292817496734361729180230804255543315346976854101643645639590258816546571993007621545502220762794761549731910123462943659114213392288918491039219733506810186774621893356554612189993476883369690443955772599164169491481186340040853812301043946941412912626176405498200323686278036901047777448286287354500128731412480266666093409483115292866284776573606637674800304157191392653009236992045089342157793871775939876370504119350831875764123383140579700090696804566858167708081128564772186823789554788542148668421416635427539977597909345137487259190318234867955796871763715377582799726075795917286891583996001127535891352480522333471275300598721078781803633531796199751275529364090780986701084749933652559661064069626605553623232035018772734673461209371686980366097161938183381391478367714283238464881503432544004819988817469640274633588945352764339170632009983153420097001339559167366605755282706647421576475124921331118246103459343629483603307206513552131763634785816908687063045531232066582050446267440410434977746518931962729590725128464685629621469362543651029126442926699422306246267245734710034696607796887245202357041626185121919720295909534442937132369510277720262710568534126379259413337317113993779671433145076426832738946587746849414263659885202474303351692309150044561096476588199637273021820623794252012752966689614440886657840748390153362704143847778909324864111578458739214148768226462299245781344874233499064907057306042207863258284980055515919095586842747108398674552878075561315298971853357651016345917288524657620633068066522741076412214113349547416513653115501198641450643304156435898249999282963222573209614360471686620610266620208787716425808549984124040015910890152140955905043493417536490790079472099518378155587921465715925596243715495942784717396313599552164471355379411067856418351260949172310063427872046558544730974844764813012922558266104487186815497921739197629216689316551717247885010425056799753893157751191129211258059972652379437378456059542246735811530357588749132875617814571581242662189050497691666831772118576082379596260354044849723778354857678784446453869550757041523967542315353232510881791715350619980380261703774847219799229203121399470276835663363385061078992658836968270311033456639822818163548174999706192342054778835288647191071425972095744248703614016192363830216217248214122064189202466742249828392247098337986546074050414691256982630601861972762330489420314659979000655528177103442476924687451611213120865540572275653386421631669996157154140286877824220585937483585199279994279913297115538249996782211846798720771493300468698223136350983831738602639233234080799422978337305370446840368837376886686693420969034213713488657834205358607606076726944995898960449424967328268346361657815654759532170515274515827730442460812008297927058006602826920403474991102143668978657372912505404961383567437755838721689175073808466615073751102188823043228282889623171123494392977172385068281810039935090133665243677615994093156954948703397434367792275010630189666506765136642394005544718636883327656667028213306703832514852460669757535369747206265280219102611521820029321752316343699416247494065692445399491864229780723003847743973061139023833863091286879628948337680310321605838282181077400565642562318647370949521151345019155441783027544284520597412370297605598575956854359315936943156247445563510358625702464371383760651287027013717885500908517122968798397918727648757144335763086191755020416683397331440166452719714152879010553781748056583721189353139274267326517281298254858254665014795526910261910156769016465647522909754065166056695584514174088614347324675348651187822997190802857891856537281923293040673755291141501880713341962327788945545777814015346628642118550847194399028170594903492603087392274405118131196951389682277896651759547975113352297478100907508278024066161817912930903205879765316050399227816860434613631009621489816697781616661725890611269545006822703999965044724075397747434357253056440830242368998741094794823015192556821293332407784978936600711425283691177434200846491441468512097668707069760792373287882168210033569674240831641003354111761980582637812590529669058829193089111583227370532285238285712396389663209558326132535554700737194461965018442735678198095884476727893003145569655492744659572979007204267515539988849089801852092565772468357055872622912975107686622385865879528892176956640932423388683778379695919983124005061499716629028852280731476285477916032642955482592229870014763743562227584859316178187293924717603717948575307014067560004093474849165038088356540638791595559766813004912919303559437247394903924366694336460072524112838919420814412450661227547090000700930437570193246945362618717419839656471754245515601267267683161365186109071865980371404287875533021269617959827547159217316892304224975840536817399004250686811499663288722778740685279571112613256178636898005849016133059563138659275329887704210224061281243773408868172081755923383231719524448423790659358188415548868537244591382314082106936192535879831735834505754043413289061657910016001389803281491919625035849817581116210049634839757799859898118752781328616080553528745715502031670816095194025387691744631403601555942620991087992275686419145819441001542799648225416162010762382527318098333844268996020671856893623600938975551318107193795805614691773252186780287778403862196226553729993989131966549078055494272825707485914795911211181699419335525215271017406050523795097791265731329786764466219396531996622664327988163351897864216786881814236616522461856999838769525152161129273900203984511969876947600368793508060373195911861550720957323879883041769808264812844785277352048040370747931802492369138305973408059983677309198318775252119125673562466553387460818725602966731611014660704020253949268697373886041216193374964325392447818134457968557945667239546813314422521049476753170334664956437250880239194449185089216811273474587786640489269034903742957529847451917062387473512336560061873928624279851772186097877812860034550779876420439108081927479531244002135268459845842637270083952102255733534224315795388960493158193092944148741269867111538049640203803238074594692066563383108649790381579769461832411854051517111015669339826140042182173279844478734769904546775896762106526332464985955661750169258994515373785283133236807187704277396954942922247621460304397568006775401936445058528938699042754148539740245222919173739721556382195395236942234529388201359937621161338890746005151335588494933752625599997941314985029279769688883377584779929539566094149861829026488803958877699289770059586543327769244725349811702474903195202503216513787785373960590518126372461780163196256212324427862345646964028328636471760446528803914094437956733200833207180899687007037640606676573141070197655022431496866170716277723384005403396806945838661543530600894825472232768625924313981382363668620149343724276642677021274433228279072348555540514026748739764243057000495423164288747689103572274394091671757582084717934037315024160394257097448592899744614949573680700200613104391528924004672385258723818951944027793784443348696992340498620959062935351425056000024950790854233164032900893959440643741739559078822542033686820279161590135592075134108882236269931282829033443371923241730979389113389652482162150318298065782197815923581537681971320942277272790265395061127459609664142659441164571727545738159902957495530658708109561518259822416959807111695555485497753870606933482912419733346718739224096989883781901179052607243910343041792746360633099159138075408990340688268758808754623227628200774933865108897158348545261552086163315332715058671673499444509352187513192338795342252163378923853199219934378867921368317839316445337084711827693555799563922502514532030400175588008509528095900650179333931443695792718802742760758287209966446491924166440613305091748670368315291009465446027146162179221853540837556418735023554434010390708516062759757911820335781269986596122366276474434279413068831833977608068405079615562652648546852335627766269481460688829781258028347046667785367331006348108319761018175681425803511080840857790422891603729964900114600521019123620115684824779422885105446373035868232183427282102496311930781736211751826358011831213153242386301415280400058373613080142426028200901131433019443383816888115575039297003433864374139539379790855864387683861233736581358091109546918000689611632131319936635460652844063072903855579557322231706192167822332564391593579019974139884446543026220692456892674016093725583723378553869075421738253810574211777896075367501458500616593635841979885240474294599917126648018438609761148794269011659571247283963735613999747120629464651217957360663662683427365879756044009230024184388336576511412500484254829627605077333368417842183064731647182627324113482646303974856909871680785983483320721242486709404177345293230877933647119460326451826730939234145658902453211411276112122902076055475377858063095126011407786641283571210290822030796370417257349768077771584567256321019807993766430252800279945598525665818505214783811627924262436240443971549368984483674122328658263771767879032493601521434693036330861597262710505624459982708035805435944209750008571608359932547060580743832666416419708807093220380464141633642542241937088655427313776571692772691458387644064654387648131336245801218076318109491304858581003712296077490777850978269401896607903293657485816328880981834545707858926910761834272544541995902886880233297324239758187846945979629684776976662439204101649021936199607354763272814266069342490235104990071863411785789486541649218785986984797390895931940486312798153805575841345407206315696759803732496218204121487479853358568538861859196365646764334329051221564969417091601322544045605026344298518360132384910439243487867465086514236390392788613668254340731296424753837529692681354214868443510532846313070015639625415339099234133847813312739712630142466421465275422906577593620765861488394642477317271556482035025330056707953170952235687010887931022376407805117452133418223482449939168276601321313496721699432667861478448243282926241881491708060102691539677641875809078789671453643877959366367459254775343835106521969711299282321267020868361882337950826035116961360804842940827538667141612852656327895067095264638815410869616699554105504637219295708378571250738036973033715717500994088667828014264623383064129377375323363813144106025690468120801055296612805476947994991207975851757208366477802976787909802327368326541667730425816699180934227170405048043943761695464221566341676897110222372320526881205042876228149444694144881285506794389180302605303695906607808977223125598939314822618871662812618392752030538857190183889158435599236056519950411338320496398233865830001648838459828069061645904067832976653211851150313062892501633535371880682160447429121618647135533794328118928777401619179023830609662799892486690683749469918104041877436641678643182093713189757328603916700155298059552209923774555419204285489953723512864153468800250985545687957413289244576685720717385045269913972683684653577222758785947189824740728538152713069228933486236905818553670019635759730609559924037689504116944412066488697998051177788852864043610413419332212375766145549890890775957620441997733799185840054263293984452966994837155031268088973367665686293647701867267667316179180817997644631985878947259146010298528177403221784927389756112601188869567858632925851154667652893500242505126007454231023166720059336519986867223409288348693053231983282029429281401699095740680126316464287087382257683504399479109568905348054918134962064184372783100184801772388916108071498467098694219379011333259952134032886140547047703751804228166448507053497237114298870665380704330200726259910753526360931498716557913540834278967321760631198509683620653818898775564809449255544116599154730926632718085263456942381890943373188401606238554897819842572227175442061024722810667967697036060302656887322477836402838556429626742947139067037647927528520376753202912389637846805093837531953577557689601397489903464382579445294666769377242766927682521964101543929503284705651637187991459829077313802941062999199946143768820567798243375616352237731852036817631683844200418375221112152438219664203194283543150272654620749284014667003067129432999893854440549134064956710401972385404099054319478050391341820298737539992948044898978297305733036688460007727395109724045940632153360616527737772238705352981376975936195635112820991011984778202347409218110325102309364077137587691746054239416861027395863945343863226464434520588957669833424176894459929701397922902664577995274498280056134776187923323617486455391765361516480948942096377495098991893731205003263930744530680067040632379112833395535172956897922745797881642667171784280526930868025872900493759589832192264959342614736591702238449797980639049774847149265869276515199229827746205876167371205629907113502784713679092428980476429060304440318406089115061265721304320215308042582868165701523666485886261951170367023020820075722234586486494875500440915311113266437997352316853563196882255999015712821734174512740054913037105784536943825223949789670185091143069459526996204681832533448281501500660727980107635920213030263852284522806826641705927082980102696921646285565865593669003555698240097735933275790988634256830660087875573113508187575408182968050177293635004520779651394333725746416440946886970153845279489183347507319267696318431295043627726983055818522787159524863309606151668518035612400692896203951212616334443102680483466034721839676525524162434133817254665488836090161981182937693349826624743936499321716146781446121110297765750557389022125720841236513689655378422081522728729016770292685453530807216839779266733352004008423232819100082504988264621562052632489418477225739584670148103948360942179792507533535128312829237438862781689048267101574988793953929659275273188592688730240585619071504626953435761562071480772578068588899606220194245658556865297958739139126312782324801876398643014402309050960955608362752192290211319357211846854994055818667398225908925783124826076019902283311707099822589892420645603801925147546050278323507380799263631708121574470935307836741486404552563305799779999131447102883353534030521017591949687174456557105305195691127549572338048816215023080589805006332115987711649810302939735113798935638390439032585303934524656234377992212888985696549289655813113199816716533807802756479518822116105605581054316362872471817744376929500924353934638059620256514500176245619628753381043339157666800997987399392306579703370171258622287230606718914716537968074893310762878282434936303228590466490375904359230316828608363083542114787077136387982951892608748058065251202479730662500354957654737563829638302564130276606946518388151092162064695328493550496123497530865274224756807962919655059707938796003257276814167287638169547231423772327734702214819980807972129803266431580379806666654909213201637522968999402682148759844792436438183817599465972239193161513214588743080234097592049938486113017342437424596544077999012854135207721751778759941055737169966084713116168593276595837668157577402404232908919594078937865346144217279520920762598986845791067826057681833605992200991504136712053269967518424517220843591468523000932227158779528476364458768321589554719959617983581856167483229850795740754906224751829624106413957198659025122654498491220486053078672962632746612409022003597824821200316603808770446140688481427098368912817025330535693996321329722787963810990850554148379666355223103642978044740636849186753264606258746606215253330373709979078013872647156116857342272676826756287686294750390722163944962286505822415897230798019854371113792531952946030455924605012781164989900334654506857719715126820771844692301737316473041670233328887047675933041260413584554037458646446116799284213185430139178350951036218174525908225975365139985527491038418706967502986061060505901938041787840957450826407196966799397496231647390156055458867792023540877148559956525941845794435841069854865226992802812366711391390355024142938604799262656658060002922834102896493606895697486909371076083689876637179021160196164489821397233176912133458477097638365629121543180418073724008240449772876591008954434464930972207453114058601713468743432784990055117694368825714014962475884512178060106473005834122006264924350019263889270552440834718055177006142901369981786191670058451847930369652785890478928717285764828916985975701925628235976508297964282267711406054659274604284508773678392779499994167741607572536032417916411993587559766910441994080030398800627046193864977524076471633961021634387209009503066873780508116014915731476858119866430373098854760037086545067546225431386583032754042152763532350645945735717220511566815053462647137913805727374838711140630598129345117390151937265185332972652731821490686421503130410982074253794516526280647315303061403211821846369163595637836360696971304096874312186480003896741793112759442589102362766099978195714145681828358093739712601178623361931958843736321383819491301201659358477367940191938516992047871035156101677107604645486142523862616268901984009687912399281846481147896763984740563455140219153977912320673903282220935147447895630165808608255870250539295995261818754116132260081210723986960798751780145938841716007918100154878330108524805369715793948897716849669515680210836451333776465930040890389558871716559446375083974352854442233235875963927378074471723523803934068025777542521026912395526614804844438474075433009846141273855271641708465903574519369864297388579146539188913513356309199332002922385647615917639800540880808251180971805519085849958609472346386378166105016226994688733372232487159279853509453520512762515517036316837910170577596458163462132614227190342631745488944487282164363203896032893930222290145658118573745980365669411689182176325077610713144013968167881208279255136255596602506802006561278898861223556343630769847673425907085271568536044067114034058563230195023958670287849640842762103336548592050840763837144103950299159330835106571920511657302344843990128125968071653199290216550574409041901812481192562862418878856755288855134461742697985514331589633110843114819050986532651723670457185570917681146003151374955766553232499802787423289985757951563863454267665695503228040427737563879027575848315866780858332054263947990292825156681793671314859963776851864238534691559032161890935635951764238229826743386688070981583055337539665314745250257204918479579182650322833091446690500060159243454592823056348113153869489908670825292799908435354388722934044031983332274295654004598181935554551606580500637611592839024291660767509268903126215521565100272897883589661118761625366942561747298832327130726559526514070164936198620067400837294564076790767463325014141390096495201137992100960210755799072563513396470164941351373535191986063855780605972288864753460141224737005663311660354853373999038014958273051211903355526080103966999397095809940533119339841792879567797143272651891140494107608044674520795816833274228741991786810593289307695855493717128196090409337966139465469357607078813702039218857120981975893322603368080884322422903299993139537388621295403997132067515398957505989215617138207217131290507057717713624642322737576389829131423984038627992437062718526712397509059429178481851602810424878265607991705516660047820607798912028186233131330266279873514308819959038809752153703740750621591792701818198166228248427891714100997535538120905853489693052784396552597032958322669993996318851858743214822673697041314734843115074671170366863721476081858583709919992269065337708905710909644295796201413801947248353303174597473969835411297814443268235850205165634215748267005696482963076831529345827972018833056257212110692594482906771685097029320016984011062909402103793348048731321936313898149728867670385892053351946100121749531969451426464275009816902325886186640431159252380564049237246864868238988363670794128001244796015554036742798787095531146310523661086694676570216245843882584015853033644670981149431395828790535041568241773125058822642617734198124487460552107402009727971095962241637869043721961954075314750181760988098352121433992601045487662691935426915127420146628984618595289283954680516350656917358849013517124595416199463577151745455698329050945927325458704568854491345188734928585035847499463336107475032897987611021366018604655925135532793944018699141876737293598940874671124980467180423837964835610997845372716994598004992147550024425710545731293679759078914814061320362487335441549836087521079622488965803982521814829550101275215918806483252776291239504967917660858898219432366874530483214024735037479890155688109114389540074548763212975236200567755060484737408771077872983390349947880600567980777073877496268643978944022191208111189834294152853942951190425160645399370208784440082233518052405502628010222481641711670953361649479564357148840429154571578375152472654812564490111949530927055666742664604717130536310155663818675893970124769458657684441957579913494117211718293123872230867480413691424510788301724590560590815884632422159024195349081485243178194347695676386833078187460225491040789285120427418143586139891729093633850275983525360829969976648819104232875636426675912264570735772943141454922835679891319822107398002691958399968370273808573260619969322278774593167350104430270746778268287778973031793472007886240279832353257482043534625590344567369199209300319019461366928343866348370633411490131105965424219943544765619763761822222257618823144405441555123904531582357975807779674673257751513499760860938578089528207579629435914310754619348941386159059770936394266229438958524898220546396080100897316835975159853367301655542956547224618651560910121674113235837138375223567023921863610419573528481682595700806564501011662980960598506727051989964424389830097176377049359531485021975371893823273832259778875591037897507418129175454352419738266405038252117401720411047321215937524064048745524183618067242133308118802137526202991625540960554990172505522052835193888601865733858891463753253281972336301349162625254972198735190875702218738416798248803825309144202414913436208523699695069922320277822897311024811326315992036514357747290884689604338339909683561001758648697862658713658082815221520646385852050672245648940015542967370236462369517116376096117210287311677040965647916239022479455680009389457144772136780564558132237474405189756668567776254763954674614513432768359881740755341913412906767096114941871388467289756591948496554515795983463682669245846893586376104389605693149328022764309562635625416894461952235032862673582958937198738123014133976372550766095763398051704415070211488115209653887442426358348731581635933505491898240879671229177196145758016556134580898206345128474616440600224063287067088763328554433620618318997570017037330990406653002605342373549767850862026638590379772268647665637768637497739054439086884386008175226045149056425600144893200130457844981321022067252200140066423196448550121303432994690458944401086898784202540529225827504853878278068409674740386955377427957024628979180102981857857445366761335467050932340699339304225162770973729803339421196896648920179019529173034272306219096885805863759531907225358322690616911045915314421866005016396856358790305772657214431252755489783641165481735383047308974606488976390728234032339618008799826552360901799461679476076982351229777351774888938096496822809969707882894035225885682072454623159290753099803431732073901407410712170843564697646392053771432389646676845138653306122986033132666167763165540398497804064563434710089719460841542966490927241124294176608172849365799212996261766769239574082596533969679465841592723781054384855191517513472026069142084599369508208137737554139359235665934541658704387692760954677487171820264719228653774914674111405416413412961134902910405243562067011002126582840995568991471963952089048940999953139702649743991262865688721723145022086201371701074544630471673877484853305138011920570361775540414300126058439729404347242475904930793166763551092511000851362862991767967616454952552827883035526137400836545479927625747403730773119566025726271983611952378485364519307413541035377817786270609847278400504740739494663312895814082986970068525770132892609228644326252639864410393316423393890995642289063815350360160734519548424444083302494629012393451203972123787826353758843073870642827446207701965417031424335616492359127323308813328151991792597963394705442308523638201740478699663672688065093421712408979971927599464669304947588286397551161852281326868454037991574132368241186304400921488188821635226932792179824671594911613012865375300445491306908656813191444422253516704723246147630213405619177010294734933941709014034146116160511345172845915591221266329001724348903168174285692827610536005498006492495644967685008216361909275998383403389572516434844853158344488589556576616912031528710103748334875489830461175345685562648713011055080520510067106287173315534662176110518195311458074031720978260095573790654627577828659247467847257367974924298046806039009305494599594125245461019918544420768630566955427292428556210065062797820856572068988457778152458765157158707219732522080768668191564857268543767511387951946365720617770062401386738937298762485101206055836768112213982656823994044737061428629561217033774477562414935720759658081009316251295104287466186432520648124114979711853543240765439060178687879766369158977788818676103629199376074177874823233385116217740768347037301179701071675587265389848097921808201643755656307368423838348738845539302825734502498752798372934194008747060438531807014367092342347239625055234080627689792277485579053199890395157044411194010592019377284752816738628628727812617268715824914915465571463811429269026505678829091947765439365943092948177266653393972590190718896263970572981780926439280256507644998711635154885295418750491496302929148738122704395506003861130829528066742767154148617420539486526857485346975581142790868670048357509199959580895689244944888647593611706780945788636300132896441924145508985582594919097423195839329293121057973100342482988553926810846803969486161118033701180713322663745928146113890750164510362073302868430524711135630698091717576950940640566969229317851940348600663752702381361478320386559204671685989088851175049309357923161405411649470421038966804346442228762699534970044215945042249549202341201104202981416084491290348124016188394750562373875689037430042837798361139735753639021772069160349193192618369249203595273131607678370670136070175726234928687307797616066724848213997245912760424851722284574065545137960052251254609041621946232414786071408511414898212446893430653297296982847310497217058332614767809732660150067907338694466428599252135636114941320858407317882738184383555964989763504729570924382230905319665549667527149362996678293597999004103137247491761853269282491322172905413388351080970095381080709751075458206375040988130864295445580318346259935573979797187306140486597266347746383493846667888295041634824746054146023285253053585653513303166337548971777613095121637763468887064776930209245123483035386461600264982200234578016005870038942767408164928567152720402861407527511687895829054118296057765264025901577834275671121925185518804723952054732690615751329584139326961286586513035703241442125165830664211645050249700878044447213649614273936257448013487577839983122520120448755013465287175193035478070249188422720574886541097158012992488715731402175709551357113119620919197145950088989225323041429085352033020284486780588200343429044950777124771424555945496773317546717628364768930217710988627713837049652541311720760158940658881836141851494950839031412428969621432667063311687863302872489673668782656693736292834535502113446777579362700415549822749891296501478282232420097876268379345055741052360787439110596360027950125068454393738935566498153435810406273870924694259046512063145601537717430127224924196767839630677505959248278528446205080289458301930446252234106928463815808465587547590539222117875028559194321863961053785154597858768043063175828616384965458457470699027926225634214637524664849505971027292269515712059539851904588769342044290260766091497868015615609855216578386962823479146679327897490232418211571217642670302975838899547513134313603316936581916381908405064942581669919081320525182400996676470011419592698320739823319016076567594806398779426051977661604134498565320249069343896314372584913339846344396952027182833899678290163046720241490615408433740946236659772263378061231315684560221359262019895540679692909532939272503118752675571168144939916583455065919907875248346044277286571956843246767718767161683359396436675495342197121447682068952020707423189323397985167510883354711752930959859493286426964132454458175003365165761558804734676643598080755521833505272645845106957515229545194373794725001798553904690987383883793387166343282150679365359706972173434883031375003166271384358475736963123632279476209630895306707080034827886270553525863006323115127372150931787850245020383624672192263695996744324707146496830385472145917153571612109390819489496051346732880950853721597229670729821712757817164807562476816511659079986077549287028280896733214126348674479782599122543302276418743476621381899312558082950892374860973974222997716650559115900168827913324245483275216406634527641781427791462197723728182369250224674620780099203476324064945914491715173996865400514312326353893375735388072816759166384151069480562646791827004268302474750307927216661681524748941120514300251282735994157309216372580489994781776968023471684780679548477578359286883352254019569628824882266127140244730902559359104255011285145132315191246129762713654248954066909885849474074081620129916056416197579650630390455347118648684639355136097090870617660107684136895063801240098043819310778390020609428784474556171657604016035053999294725165810523197830734244025406700745065862370256265776920129825876715634361767262757104212217490732315180480671738799513189019499992111481040867663607492768114609385275399886340996755763430487599434117272676569279910336061629880830765948018843726199629623625135407451290311155593989975745899284169597807877018492436231462317558315283078540380234509865537402769340119729892532096887685551165771633652150862270296131280041486695476592096390463015227086552755598165660499604175221162926770273862172873544212203879181087678725010010510781535431258040191772044941222816421336994665596982356725130003540647353200545580973857189397552570275276481577245208552529467006682958570276044742853667182562225582184727345688071648618716805838043778593703879357407933438449129544254282058292433554317348283627444436481580125925299397156533619828969790121990732012405442951174938782183491240628881975739100857735584443547442124107638115057981690929978878997863124898317610471369041317783174154695287911361568854896071407585269707549617271891252782453155602036109167048550845479137034414502853426871377707597400107690802668075647491862013570899048511735440476982181714458566502977808818301021458272334685256074325365698876282085753188353030998686187713203045175847749004459795971991610644750824722598465392540578443190363687325293895404805699053774349881001366920967805896487390576344788943759372033425889153566519871913995805005177640621753878472423447361357773842550789365957120627340637161596290757917657800138316476803082208096005588691424287244446706606216935117277479336183967948985003569622307606520663655790528625591439286449920841806094528491926351371922883172168893000781446300830719092247703583018980258748936897392490942036339548972356591151914137852997161810887527533514687482020186656117444775326728204924623933637401081812930180504001707926468571189293239961295649055505897894210023983459863557824612225986358837539369377518658847027986728779069264864563774371501396951646090761035159149146599458591017829791982748297180575619099569507266833220354045201765155644447984203004315579544241643981001734671292086101992355711744393760100939415692804335177129229469205483697655636813897919865141973784182354093151637182410904462472049144045146125708470466372982247654053984720702310023696816492615953709460253116839435409091960027678740414981814484531329897132510776546222665572096795925434380154622815496091318894623296174124244336419123729280558976115571305781979240952128224780292960841572881248084952814763912347545408302990228325671263378005058031681164613270079567157329721303419777033633755085355038151405551813939515407547011895450679905640284127045270510500408499929054661999162051624529729753985420073429420966255163255459512179992257426605267988119990171106030424563412861753786704458048251448942191185841786243050784746360374974302270128615833524317902458945089245975735224050785447835582259744222067400488693577821873077562254582732438225747118869738848171793630214259330452523668334941139461925779414371978059785657355366970576553271664278239761923534857737395230178335847522121897387080751567758805093802489405473910764777770699447073050892730845535836492339572299224335957059756802213389075466315777413539911350801834311064839934847965090001649076951542783630227606828366804409752752135512093620730508032892515296841505498499768593696681094737780029593484367613032445949890671288323267660952979092534201592092044711352682715348596647882429614930202874877766921332926039963012699450019423609984714266173476523536350432298758830226836467844906301672379739125440119277363325879568130162141783217663105165218690477733866290974279923712917855491185153946854858009673195357392724848792676353561994466242358836799616355326749344051821361541023959794287831662110210105883082479477723090583935879152102129617042778550039308471114276593402389863411678362463593130895139500459739676202002225362951646797532324321036437936369691332466559578655708691736705520844058186865849436597298344757234015516723696459482771056056488284782279455346088477503194561490843028151755647687909688861744875777912655221200055800147402623263356081052763377961608925303752439262741690028350152564339623701119161089547391637519477648377751356326141455815398233631519669335292908583978200695237199006052891008909471141917926180982899080932341967920308458432760864266398694844985126004452980249408063901079589665631735705217809890774677162741029348034890087237796895994223219264600567106747283878537596817448476494657754174201081039552957454475577627324042168390231111087641450671887578234934345502007842258397079639974810316125781873225286303174528942260983233816196882792523268607784740760035465101115678330509792483525254549507073622517538477044043364614296037845291807715540180354734920850747254056405914732955301967458010644068454760458944685700497799499284893119935901858035081969310552012142347508700678539799190926443441898253683442783435022027144701072477800630050090577333302827172861014449461701296894595826742416156709440110517404964334270212397506414314854484195600220744078994051545036580867052257369234352669639608725479852369297435999181442950573569370775355616257647295486848531448618405523758815145184331885779271922527823343726498229864342391203047684889301168221121441433556176717584477064339340007300843269144618696306310676540120585983266750047318508463255265712345515050334023101196782562258506546893146490373765496768521427683269690909725977037109797218199474894609768840141427176866458297722050855855859973728803691969982914019356581656197762695141703518055135857128094551686036187843441316712935773057730267899604739773440894216501485463984828423211469189107452611352274953569838123185543510170169023441630371079289416448098703840198337527533841532533008157037059677089547424297312796174873507873275954668062960505552044952120110550537226564472552729506279600779643712499084266768432118528103909510176862401441442128763758004032048796595050560312600939055386080071192933104031135244423032065551502396585319516558648180046746795916471878409270058155775896340616526154348534438447333461859155347226576951927363320338274410725873584031436877762515255266174542507444652980972650381637611857142823573421660334347290413709549708720898868167464100366644168239835094116247311349043425068792646766373046499134830773766773996011524970510331859952258777425670549471252719024419330929723677473294663056957662164115294435361226192065246544035363484985647013544195685172186592789007591919995735154765225208016294271486658407341659397652168088309220084292335593624258693616002010930918545232773871470053676992677763878728860863792795229592994494632288100154593090065335082897901315126422291876793761837799801550515099302898324428417430779708336750856124769427447550561479043459280379315556172438355115334037938456498213816265871661308192474667847387067014967239593613801331694605867502288888357564089762318107820209108238618388269788372485986776834791058718473971042643351847852653782635913069831417692145445146713486520877284849632179982310750624489802878714810841285301828161382629079002015138168823882502269771893800909195647472723456554579957728169608559296593974822816495629164879802474142420116947806665570645301669129788286557712132056540218150311020404219357738011221304095219574358818675351098245386085745239204210370314657794059508769595357902570108215593908598106272327910533603027746747430803959691356862501954055084695809460568890313086750046949849157135468150200260483918242733660793947344174849070494387021117169856705848238296009792817387252982556895511432669527633844670303061059489420001659171881217669205975305080192169155787161014240333832282848942911689567360074827444349207420996606124478922683413928586550699746661021477728032211491059111870864835007764140535969226609589292918161039652505838059838862426825002050620797697636642720074019307468864874200003136048100519548976281987996053252639077476171624851708564769631566263466214838384928852389009509467590269083303107897137243613520054914681979010090715712768506953028526430611013193958357364099881844574144272078215246737700256693482950405318092446084524253758735852964632511302802074133950327383703874925255227202840118170764366546836043940421414655037119742166198868561240080567711177103273715531737022264455879441286007626708792589081098911565734367816936903833935196684164069505201429962616322360518805923742087635513377889825668167657001936448348253260185157705852931332954135597357940782898115597070721663206248816785525876789032073632534583037393432256050233687064349578051430609139658191811323243194438458982103492723820085661847650805529712518432363972147712653010102873471720624617792143680673408783825005309969177525886067803233699227969604765762912674225377269854550818759375648483409353941485119627973266941175851315686434842842719930604908346401897052022071787781967046938269958360066815066567402673907412601234169226509211293088401635942651648289879284034082175478655456371766404232824776014422481225374433073998886432993550284845102178016508992034898718663968992626552547527548850433405286982842960843209471334986434543968060060961346513556765269456033266108461659693094997178473799071215170315050648759738907274314764969051148001473692039535361972781324966503504254302009681293917890986302476611897876528392956090377729205826295187049269918895905712890821714834759536847076536986361948965316638754229576949806467453869137477469642560323475333184582032480653895765836452794657137452580935957553582969101749593978293967936853280265601910136099944244556584079133632191983091739469767027262534538650307575884189734492817866897640254948756061943730754049155504998993004224356171245886150428481422803023321114492958076574380505002828770883037683359248119932281694840783363013344034659903913839724173230087395541722808250446768057732468564791279259492723778754619161665163231048636139683474228984066035279991075039641112834483508180534514078866410690760251776959432859501318827452934704520070037644009423844635436309691201108797908472415565394041400256564816505310926582933883201411002249410522525766845902683430909524642972208491350995572406450422055151011625653572828967379438614078782212278371735321544526720019181532805239038982734211513625131848369173674450937993467374489552568461663628307464398585071565335246736268819527165197686043496865407573815097445287790034310090332904542863946110025528338702309819072075026488929786351242998225564035771894857515911606979612298964721016055384682303310730497082865185827197966816760429091205320127489529830855499195245866377873850964516999001171929178510046334293786116834053053005564854682004479876019156858881050828769033974716920075146335626028186947781517669224826193621920306493808164028969017097034824223121665098478732446992254969142286994212429117969150415744500619575247837299858905152194463539947849000019938226724311603310118870493195623143071863505800855981027155924531426078152550944067067656997423679626415532419914542343236399177257319129489519615240910455550709677048676094596959962238784741275381302385013081773274417797087327812698554585991044128215964738648313919211301373466147982552027373134983962575142600437477907976605525756140888375101732037493669953874376585111815166235764475182521963397707365537290683691451397183150995549200226801140579368193136153977130157535254487381568874119887723269172509478302128014318943169490303886316891709585588517095760251389528550584079761842434624388842282559417957514918620448987367413309018221195225362983645672323699999448963891921101747530406267223073337573249541547408604841890225347323379055555662022171033903731440854344120014145886779760985974104837251701930710560744589340139389922011060114666283824903407480434995681563854568171191149895449087923086539154901473701161616208390433868429724970794277715764799434141216501696798817288890649005544020283167597789688671963147915051204239624515527383681248505809534235568098607592925082829932165175614022875687203768535094260562551951392244673073856001033421077748155490432312985085141277850159454466363314350302583125401207095583337175781020635561597125781121199574509074774527698262921913657767512863588208821926557896277691390547087986381031835909043093746109472921145470708255699731317009903723335012189243858333924539622576183234130397036956606951942555522168921680991008642584207014827888218443762072336766153545882763094862458184159580515320948413365080817165432531117001588162855623787100423816183268029216679181892933725020358404095637981663083144928742659281577244913234537413378227083199735178893470346133659197546084980769121549865427880374553020217322393982770239680093978666498104424398312074544400673991968467696212815618808093030236419783981468493582922548902671178175822206962817146865458776736967518059015645764539205978134222058309548385839512320592170382481936207749166173338392753844807699916194707225266216696855786557774912987898013414497581190501090909123995606079302822630176971224816994027655871873101586406329661227010473236995767699326471744344671006977324975783520356202960862826682040499617447203151270461810839910794976387883252644619505374129980523600420757286285768982747122089199918252875969499296512700630872614266595578395483661124394223057180158505506267821565450202973329013250167014660744417999448516331751492876684277773436860249720448683330411881025728416860490591492900297591154089246004020303124562482144860468373070412596073627064774009070072099128381895569461487083908165269411721029007447695955555319810042653137195267112233427451158611584010197296659026355679370753057319877310179314717564172401766794968008553615740122749494885916008704470493254734503283009246509823790752412953651518801004189504546041837901037150050528937129269894442349922620068562165794572277935593137760259933854016439420465491472742842132701449640267967868868663951399464428750256794795402126018888883081019821659167064173375747904082146052385604645933918753236823122115856627111440069679333807830293913935648398431879977563957203612680765873845094733986790116892048179687059883557289297353095712486095537862601167834126229482447628094157900994839505654221615026319439424617017877951938250999602097295301578433353075860198409171492669940244974813780028007488805373628497349053433384060278646070296978604638888563037159360229611026611371705971345420594221305247201183844889632326158836235876725630479293445790313234095853058373836056672716825618014885263296192168161896575991475656569462569877724634925765979083311480865234726669937191402469946444103821797272714919362960248841774602457399093006952413683477225877449732850336078343429206175832622556229072599649886467164815714100260223732889063436288885675455332406061617140485316497812635388065266760832351649509980681239122913485377205745735289274196319555875373364636495113475618698117439545363055765118223567980980623102588398365556483420347287624833625924054018360918171275908652413842109067657538414254751809196303022621975380540399529505322403471984674587152493550046459051658336296686778274105113820229347127908133427287557285137022060303285547422450671890456468402411128648833365732671827799864817829153770915392645635068324096582736986022279567023207980095962047858937096213927020273944468482642140437499473770708768317487648306007186136811699710508957028448642014971765894957040928681740040959798572281455471655227172298198596777053259119667305981123041015497961049875226013867247519767883388833693447113567389931070734056439596544173744970639384412127755237726562322981505216530425152068565343253217980623757836758215265339588627937241972542203249498115731520910958443407420349282299487254791443845393992891302728190904846117479443439478762363972620836146325538232144570364289900712990116198441912673928568545820115910461382297351742693309416424815492136192707251787228710372087973523046260796238578180455184591145807537246298320760883618641251330711002918415621581834946078748258400588782580186077129193715272347810694959215126912136546515965871945867069217363213216631102692801751040116683332723735101488662596415279009083488700096231356185400958939356948606111199167068824179402081993422985488141201070759055493156357330887353253302527204604958953653861560449946705774121355041813088215922747554868819030740732673451629381572137428155556855134559588647230058547969522429841960435635055569320798913285814689246005617246484918483790580490610118699505742130370631837936759399494384378914577635058236352852099360090829527167830085606722779107645860076151596604148360010392867184521391698971714901570139337780565159488502932287004668845430601539917253655647196332195743194114639408236022395950763218583018755962738522529478069505231482342281866906895797711760226430015565912741163507347904456877268394700870132073320769136743180382625602201633543490752395856699552221668988120946722952044803924528455444742262238812677450014495034046364899569677242948150814560961795847438626129376272098788246882771135253557720827103318208037685204338838438242025201285919432531860500753523407941107594765586638548224410901309206073252806460547308152318890527418206694752698145849169946213061595364674415585924340639951684592232388046782391977867982267472007177836817692416669984571022462038250101978135005077711088808664025148963348910012838327929037444316448545755677625026145130395875528182269568690712092162518100827376554918162385582399591341209163975191709860673836966794922183320334869372629094971098183179722490588061443378680649302094501671758105088335591614114799507828552262516108495095379137208977904904458264160767306859749371120427494999148274463804093816769665376743450617936248050035440571054885895150276185409815753093037230190797204269965367846378741618039271052571395388622064063931054359991891732896010375686629498597232146485693987539975168082779702048365997671563554462670333480096046593745734848249509287566547138440121418479412028795843401830682195876985967262579155505489571835485821412322089585368385229226741587553238309942506374674653019156005150135871729100601558131456749417988539078148601664087650776406566860268805647485887903652800398830512860584149413756371007984789500629760788384674084881860095509498532381345922507701876228580091088948583128148424737569316962246977213944666753712309977169041144158252885031302478931254030431002638930107541640872568229005028565101040037539087836056977956842691383082675106732127288653401792308341693246473364768566151272460948043529354068315567420115235256096345449789013604644609550107425668140134100669763085982213832453519873545683554898779124422786289341760471012238290751301571630508923469209079300931791509523420363100712235718034868503192437052895452482722707511487365061525575043121574312019163631333358420877372424082772035418091756905148356797816502851527327102661683192974896245927402845566826418188012644637616544990822321389868385288199702623718693080185582603234853854066486524863312663022918191547482831970367782687981186180547698711549615467326601330498081930419125448723149421215471165730319151182924080608838824915014478770851076795901605618036755531320354755195842803766353791507673697940672051103226036720833001142887677448639439939987493606639739576671213664629928868779504780913774546924416732731271174754888082376719845987143593369067872129244787936573054369846523296958791278478382068269815321194861791638377961653851024853325389479464341337737885213339545887474971861953056864457603785763341382749280150181463411903690381270006108650975486754635238153993199755373439665616726589610647349771269781983691039709093420894980998693029671437199119305243938774367372303379770768140376856376698827191378116013227722977908616829117149286738011675633923242770309602943154298555357988829725168609877509693778112097875064929928249450269779903238639853380866957888243379471497919486958485267912388078096560973456819557696118088014677186783969796167396317553956559423758960467969528991235370810042938399625943841159740387332167128169063659079940340508185178235707518990985889236758845154095059355851743968773817299599013223505635487654236127214625494786322909279202356338971960641513940123437585770637923163050813967560400121442654992326833215660114783543704686950197692060183817449517661449361589474623431505590717130080802846323622516774958560912681592132839034698921415629584608703736608286028915744146995845867509200289339039799970194252843328322644639439845124568164187801736659285201555792404033797241657106019223588001749460077129854804690134662444508869619034928981338454489737022183786378584111757719938455591862895926423260696596322060780978890773826010844211111629684791673997550815233843527004742799348859462540877264703014099882798355855936169944770380818001884000477346143061878776562861069852874345662273901089335039548531507373826019028003676557731243252376026227060108097197759634294114514167403150074346890559370251291726978586971464547662981528754557395547732616786147730664926609469391883858350273106193286822552788786824654123343241154296087736178086340043249139947651409543234526036442781571084658806143419808737049611616464841672564018100532758165015571737328573358779477271705151531670301935156396123776355699975180503445202562896277474245584738078453901268585492673820330585678626048157869869138523295402789263500900129898492833762273907235284986960590526839029946310986538380829199475030337566697579571718083556645544629559622530367929083980280318975704990841121247178501979175153200905105468779799622214871954583330274554333990437583584236603822023245824625417640618788227751112526551950551721475421459220659789357013596926779569856319168798787416200076372836238288642841769493427572100435266824996566226999847974120906910997487655560437632977964090905519005347035515424536885929411056347926410563813455062986325894502801991926357686134732359500304314501316455395815382102407831502912103060630660308184821366294521530101985504955954654700796970451967239048031867986979490439864926035484119359488452017618968368912753199019220943032473993522265935949873402884302918928244436027359469275070982046885630063403952253426529026652512065585739571202568244710748758734831192934860172828942319740534898131742559677083645466194775738223986680857022988844008232688913826554210114218128814828648671332417338413925461027957673990981644588765338331827755290971102477908966221416936738239515568730360149337596297265989058754859131620532123177686960279364697878563213027876936517891622657188763362866137336691496622106174940972171861918005481515869905764380550566066732356916201527988203188204255473491255308780237856609974460127434764394274313460640636254837739795389726205512580324501973345034332641284888061035188682159103267327984679888535999407684868246825511394477104106144437396120384280947296603050374475522157684397436471288247618192036906221158179776480146579301310891766003626018421981720444408421678591997542019056186498787796237960040420701520748192840687892849985674647769726664096180098692251072695044203062736838985959573752142575133597737051939881138289255632473315584579615236674410493627110343086661073865525540774591569000610222219563263726152946779524481740799415162201494085913464272742321705348859489305289967935692659536585299356439532694762578358746684840886983685833972903276617752795679667020148143946720867718730570293700582795455875466721767304701916876693298173304563471649922946197967769903904867541150089616795901179318004293946258146451636913437219125797312134158498203698390124275593012978058933013090377732819294946088409543223191372508523345630665714046709658116318897163643889837882903802865984849519460649256889720019055373388086004650064085681125318252116367362949992948582469480813625484391893240200886618208183303870488778754995188370364576324502496940825945704315481659839290279968107719344580251877962170741793175046247212345369122358869817986918907690872960142164890525771688132423608726609608536615842854831149122994372448741795603412504859081537279311185461933398892505479986287530490030582645403183524873927891469229832040699584413374422072917810229027705225044791443587017564084806425717195073273612449903893872599411458230814889325219835879439828654881559944938885121794993452922081063139999166220738528894482571265640845986106981423863561901899679666781442730919031985765558183127789236084549263027899833266489058907694187775703025834551115355981390229762024262195852097919066870740090261500315384038588773471923507920949119844768130624028072620820528303147230997483420715546084931045390257825415148636737594609846716966140532708316302801490028904669448609885774179459956209904925354306309269749911681764101952405495068439573585721427978026049832286049336481470853715496278483885345111634142626439300539072920449449417842007000463594396733611545039311147965563834065644854165066186780560495492422408616472927142140299848208499361418744788833111309359835323909757019092977718430013556816775215255298059207911149105864957875647205745603128558440795785214894840629657603426935651894156075858329802267916710131460985755716147389705387690046118484238088596368691097959333887406282836358192451763732555597244611301575232737507375857187148198073433221286258791485670887822033602865094685962219126647547812665278419850659803395248710672531987733537195077389359188596992574785906268281586221222340105078955074919362918896346567781152683553660751205075762166446667802181566943274576427074511216981076199284209144927581147832155359818422198043649129988095083902251111374211898990427584184706218067252222913259646019464893001986721429262669394566679209143059009761809768972904578294478717831388741345004536015997443617540952561654208588298473166451420591894136453236404167664163419056803162463928147450605746247343679562013135581383133662760821250258346721999260388292360674919381953929643688222062283279982142868571512824961591731721814506560925218142420274026703677908178774377484561716738386075720733226533640857694277019886487157015185649447277157788849092726434008972169759913513764172063153964166823730352411516553049019538148712202553998591267643571785898432284383601594723907636161336849917381841752093938411376272335598907915410314045299182601991771860243037620363381645441365957767557263063534756423086694320544499603506230504687516140447719297591844530808129668256295170154675749337104980671848043088848335342601336691808818962329838621382650282092896351910696625462982142938056785295056572325047640680323656151805748040226465405630837555411568308147801186277590514214877872550573105833501710235920151356772008539670621821985862453110923067134397087603501695230559626448964621881633165901430292353702868201593858642923082956077105352310252264008875597130548365637373172014346080490512686595128861814080105858855095132824033093175118501963578208246127329316549080161445196137843600062153402420930521309904740415227489273167041519193719976989316202004287433306163883764665153175137699177642961748557555784301142924691777748096701157506713684233864005211038348900031262034113569989394226329389973193741926367171734400156090153508316531376254017173802335767839587732524726199686797545060614835172695479300380980699032464908208142422984634630162998256664086217848122968722008169139758982120657734514641135285439251497614517354693373647493507916563102626795354175074868897856115793251528018274016576932959008767056375113843965533015459894145556470290160975936225428011802602099217499442634113907230709795092981302896179426871865057013256396138482361460691815119429166675653854620565408244473297329360776958727485127364578561442047585138734346313111980533973589881399847390004995936456885159900050192375309177988659332166112175878375458887060704992629284329753764583523611447776862201170614643759460545074252636798304121310152517735625641425470983958716095568778586288127736130510912660136905749688617431485515821453461223133020951523962599903706034432815464165273584902462275767708341058468024441939191801460978509997307818260324420350403976874469862304673301827206124071424873159210814466570880136698687934267057912598599570409481294243341510246478770531183507301402882202589838842719561145690653672461742148244463365507012979537154277517795019421523413280958219093481269637478566488584670874557438063914630811861353311613940705826063555371013556644563539125413146305049094196083401327901964762132498564011335638287347692967252039162850890499490099800748402929890441995638624217650974671661852630025602207631507085556529873320809374197832446517848116423627939381085649195422194815483809762627034073054782425467818432813472994176301966512836400758337353246318603448157690753535313019095375150815796832936526863097256709549201252427208111600729354245879474174756975725286919867647296151303325085747616326695870901940699849964343658883245130603023894508722794472125144555803177615686581423094538166773563082455585076181406784511953756935835040274748098907644064405810746904858347227470810229000309849653996039524062578806653134206730030883446344925120422997193237449240022363882992200865589530069737891524689904458698483129613652251989615936496394627256374710850190555518702590171595756912432825018387981456782353964346219379789172236039012199015884663480224844678549791284604409205919462174733905379230123165273730363233325929136919393174254997751692682303625085131611718499771695259717138254314999494663204028285899681433704311840923029628995223025337588117519529579584934141207714580225120202969220922077893558984613181717057368190845647463932110262852808518036509116385081286763073855387020854637422353339142303936616233282010437758199214042135698084319433537535845926515012495475641813153948980895419253746067612466504785407782343461463630237278898586189147224529327067488031876555886907353619588963699522304912530038404102897797013972271094667782195965724866016491560807722508344062867444567595816786567164912824902971654391159429054868175396414549711677434586176350883688480413283578457242099376347565187599133819838258924136642686668413832989654409944418915715997899817807748660522021426613817844821127073473680094858034972838614664184913305489924919381463508317668084547076234971702060980933909244835747500839286409893506319284629575097390100570602279968666969233812343811541350448767687138196690329236914330873154601464162162413408352534733628463008505905255799943721205272256144254058627204293603566546640459213943912910351896559905027111215110065670316362735148887363282388021919578979103649830590241051957924837393380063940487222098492681464052504244314541610446525694344247755110877211581757920744322121509533537905693335508703337327151666861095723768279287861234845423393594941755927561402846832159979097856370720870092704937461316431790587410803422271563010569797735780402153311505574258180939202387158937553995563113169162684803675200032353087774233518429702794465632254636990390696112483728213286817804885637496430698640802538920222470081615641193409968001731333102807140315750843500157992457317499038668100432118655674646273938444054243860410118637649772659110710713018303716273853481783402302387322449262587377165195898414046356916093928840169975933864941351767961557057096115245560287661114960118535654795768342270224189805262665352006627631942844326775404623249050378456347194671553144860722718465976467981997245902872996526569955398596012618250064073124160475927074129421766800563505265221761860243160592068269130720206700101642391782052709983552685393569704280186476667598936233722447785955856725359610874920004788469404343953833351000470002121694373339333075738417792425713401352786569124649139308699454872402606856307072431843336895492364106124427477652577272463345028781086106303863930025140923768511311123278123486852612701100709623927816023132484769093620169718497728137838484911325224851334652350061396375395526309946661589571757663417879920717445871425674791822444279518575045247635152176321253995017244671261097188474411547961752059620362681127859018917791692602841073319131084144754604651061661137285570120061349603737738829133816858723256604486366740051282180984443125298140525689860430000720994128708924515831420639326642257862893833231706899959629855613858917632763740105506429710635322003421593470610236316890700042243266733623636204513389013452760032021925548827123677111764715417902699621112824234915910281959451461619661411878462510701035811446840527210387797013737894576403399082356014003417299196222458067102161008640802877257423069826728252698167060182705480746462297587492300030219294294067412355281110569590486405802866183547545333555484959903166818059985691427301718527837752609263025292903758398505884532219715977191345273818563311973682094802432617482851848009798392602218073543433873151728859138189851479036412836594877452969358431598592352786729362660192257114809651071601696996050465883410022542227759488704667944159449323699756554385288691572167764564832833128571044050200059473308563383907625557161411340567025936282857377503164869530179863191039703480816414785156574295846577569219426569625626435407806268894785428964384648874644161103987036069785682036334642683482503587966082462151332623308445970538902907651302027541956796664785409272407414702955395014757319371330934712855306996042566614976182270548834983191004023970050325904341142970625017115100483987468850378756186299748192800885607703093042864526971741104347184426461953737977533935935100627306617066330175360172984313129158971572357919378953789427042459631442356609208274888462114675503178862069762148877825277397053293155047266770255333122700980571521628628792989952915550055973552075283414892516533641205940171598895885508530838299346161414374749999254571206023576500941288601926428680834135218546072197467167485658986366942358128727336629801100020364029570262518177655659533337327476084720046550276245619346874800704739889887903698321747503465793233216138760246406398592275028003535370925609588119649338148805045213382915947160161720679536648182867055415921938096423605086215406157187825255311033707433026675297881432151018452786237693253442124103802121824591418039457754504632370281464611765751893323013956690364545279118413124704811407967701926584191491437851913520556274057938883079088594021498640334389297432907952402138006538706395632133523930623011979589487528910604069759834884102888520054297982466141899385198472605670409283432511396282691587239799102661673986058454972580444925851847431978125172005737922956786822406250150098244671340021478255582538858779015945356672680538197881506104042056027956387112271181369354483582485852256131015142607080304895728522061695132017158397136075297947976281273836763678447210454830682896459376054515998987757071159561879244129510999182939243656575471214837451569465455451564342088593696287818494167694444000297069227931056970532835596387456199585182265298258947135230630056890096668904629992114125074589026961146733832642894701135473314241006368574550889015789289617794834353023669828955978354499437602593672382884406016601925842306289577560516540366146175361948331263577367218455704640482134811960763077227014140425472975094526543004176774673747710953113289481559692423263156529246177972947963895893272873111491965343657928789670023014724203372933778862249344288667553887519708910944795354109203074499703703290631750227132199143687401547783805514261295692786782790405326569857237087189995487025129410173656455993845656234517624478892116817502868078355732809955400798792299984980514003164543915121237851412351483941082237807673013701533009151840073784325996712933725272408237809716564686432732332210919812084693748637966816349047641795795231759408544576703531596257248508786965844623270557668169705977762201990262208544683670778839192037233094554572965325482994210924826089689179302521507588575092686572014141932921528902347934121873600876929315591610444097206108455724754509198404156071416360442458349817952595452739178570541380718033814347264890063644828626000925663071449298922860521901203023750920884725163089452623401001650453339312758630887449801529963480408138536605588345224118987298843030551621991720041014373395689363636511621272658499974506684723506213714279165870419767841935462673033164386254628628210163403550307748951118085270237776635150563917097018914447219056889536136734749372845989766992342392099040206768550117377688449032158510486042223487348465861413356995651612436015801088648319177223357187199294628623520266105987433651431080684313697699280730309996445793377499167460610239635350355435862205531524525505360733128593471815578606181740781350767178589463874140902381507169192442160307314656960335946231421169905271314266710835213617351764338244476387669586093729444888731996772234181524525306828819482279621306392781043674007931759094632018431977296672987943019338841178255161140262275715267912248063779648116483133440084368530173895876802352832415300540243223172883405977179784752398178004103302696341106689279674028220256447864776970197961002543482458557515274249362352949064351322003223104482963563532429914806641032513769073705843643087538859608789165948074283792049579348254600011725985083905460871220540363813473999922317754438307675850535837813935919442403648492082036885660594530312356085413594136071378482631923539666939010615661885190313479314407650121254578266285066864811859970596493884616676967586086926924991324925108233540012332868987884913611364229543895802994173729403790101162623434939580706482663343125439327264691746707725751630147066332658222480166259388193036656084491726630105973268213067350761524528200384046690106081754151107566708068048452471923373170348552992130060335573417046254851121618997273803018695834245885491986334466249983529633399332181109665631256633116503428953492558559289854154475308472372077648648295311152895611056158998346059425284266759228580215134377062450215943952455856234126819911346697019727311527545217300004418978679722468357856190588284843927819320661610973722617861315536393286312252510005720372590649035696991178768862488367212753959563099269350888318666729722174787228626083511714289291788154935313341595839612624588114691219347533953387877267316182095924270800517727520154187898051786504783550509981551333842753583594145399533079011291624968296481246788282463392197342393824685888321981424464409869962109783946151322629749477041126515065025911793042181489624041746508084182155517869730872022431284412313785214547019197881374953896024861315699257865198298491657192066262552982140316538922877273916073870605050167484992320265316234939841961621294114423938334176256239050679140033354061631390714829558782602427876219598694284978830920933546249016005264752395403396080836119790772779637676240402271065433652193264346315653746458853114360434218044183694529328549269770273581370491699152896978805219289949477063264178802349815926595125508927609130352461758002929658454108362279325767338827027042283224925758969359803580030937484260610513766648639015765319272368614840556874517563552248713032226198206454795088310112693917521502285658740726252888545127592984388685485509517016406297151744002033537695278663453256921557496197666249594062196657910079291166534085302139669468672065713267760981880034822061450495612124518588441628251270021939118324226007091215249429308572645350058275876073035784747050296926715841826689846991472087746841649383958045939805605286682491686901238411781374487316998449170815409234652688959970273215608232015857617070958761488859149928975839978306676976097267440256957868854334548078046936092573205050658197000109242819259257820623276444093265558023333626639642671718339046948977823654175067703406687276984788706942804765284151967973095945871471725534888965307821679447755353945983168763635980270967712773988305342672080203236101820671440904345272813477399402673546380551823559452890504715118669612306801113147255066210225942828351985952544906383403919847187438299616037074835716191834678831763391228783041675951839044123603456532609139480413449002820511254353328528550327380384803839787985934560605073698663641892081360251352017737430917252889720137264384005362846199380881535928981365657948592276354877416375743212526156658850299731635527514782104620477155491679115690371048507851561186637748351500978702484788158098921881404109738672954877131420089662867624037862780569397955043831705639807087037309492469896567106940765342404640695995309784846648657826070466023392781709919061273858443356122726377653214626798376593858905225081205171700118865484220849685270279879944542386958362309486819808049309139956159559445787778195990481125113552597519940561186546931404040973374563648520083628045677844496773873934892434527271820471238461915432519499015173781208347343442788199341442504748217194921185903439908198128197800982237978086141688239872027913150502466588266754621124517862286622154334869293394041805539293025240935161668793952555308387212191095255761971501241462862565509768516081152964879487668308783332928925501788668676615619093866277341234021658893974489930897127203891104033084853925221993978760230185158674705676864175605384075786789773048271234496152532463985669707089544970414904315759107432043955704097175324276386321500402036272936484997315107918267496293675315741151748582619287293470369995864237571579185728993768173305722898220892890730470894218182061617257391004373421991838858367517351443749154655878471733527438471748042792068693446919249742272704105065910579282005409341268013203917719356062007019733042334059760409581177166076005225270564233588143591737903497990799844496051720226816058555853104034564025530972664842296485076160580201670701965400675054287250090175306087563110351997579144884744151574889700010171579862848383664563227787035193198738189901701023315269219001884619198395825629510363355618400101025807441010132631028897596996307252958467000991214947696839087132374235104434628984346137064907782948717867841296573823407266717348601853940677202546611037904815604809647492827883610084784008173106250911017259909018786617671504917536178104984528336218791479058065279322979902108050913917611981840498252249101312400674747886703299822416100483038190490492636870814917124194868883171234589334723335068884015404577611640305806147092333933720593056359424629017579607381709980073559325796798474997516770992155082333022737031084424558060386505587520593681254691571321269425631541541800489035627230562642378363989420500058563347350247219743574243360855907415977174937380834252496568091741420701050116970302124823338564897830382421763725225279091590114276054836293417203470777895763753936183960233916505706003946406112699977825083620846737449311602388297225296479613173287341921649436889761058060892643762612418631074779826247482384398864297294235972223994992200358957420227764394993272183370126179512733501771438629762032044240847818991759359823707837856920218942855952119953440207438975465216659801957236314568372696053147262953873632151961111487751218255263462056667399233977469991613041186441202148877176186299294215073473075801110375738656503405787265317894239855757004735367773234299079554438419543645273937347452491605709366873422104252729316350717135691504909905641489072996187456892133823178119943836986453717122586549728887278132750634818848420547830052729564142711865133613722776653695443018495923492168600954837091216945909960248150927215814339584168368913629512709640365576529416029285323600086892398714211346065681345440144472206868961402734126261384215256828618641174212840251100121537104228660335353449785141134526366304229634391200727929053782833250426280440434075601142894090564338308512394646344229072943163630094064342181248662712244286239671921735464716873161926834665873132128032670457846868546351871867702395160148571588264351832317567233067808483947409551664978332058386549535269808448507101183235403324878716799568320412163231162934709716893197803822839778227851131879466882363819100166403302374580809848146584338245318161137554370949506395008482724990089229157226429712483107953634549216027357994898531529294364640521781338416701288198387226907099639609488507382694552832980778350475516131247153431207077557292483835776795705568477861990369009233654823184483709650301440785721320986650940028223289640476470874491063334374963673445990287183245094701516909287340092840354365847467569813552898537150540672761057333665500388336959866263409845084425773158655330114947979175739444418956446137085848220909344243032660246628908311264695974923262605644887643960212712325623615418234970023797284921765734896099109290844604967354327106881333074599292498532377685881935361750612422652542018162954853744189326073911130459884957302905911580799305310528287583205649634213606836533466153492166167815738878305340916384509150698265793873844904964735538517384448482955006447526649113030045406668849999276342842876685900639519937781153463837728949580859364369710697918213115111687277732732615758854129916259035216300038497822012229588415867013451184695006382475284523445309494019709344391493812909068733623065275272244390899917176399308066222331836404227058042189709139952358355392803689394761689579941300167269709149958003849306537309822566821713076980945632512730052697960823718794223121822737194294937974032274944253287559159745432177278839467863465533702487766653024276892970177096888374041594655886543644988292748737550465601886431459554642996320845127720598209730979436692213747906344461851644782176240170290033253567883510523243586197932726803745956358202197823953465101821127934939991825450074147641393741494077288326996196696261541755673950901786179698991083834510554094586291385257564277800747253873327273414371466912819734902000213177470608353700502509679067156558618247775192286897058411891268451580604722332608422576943045444944895969959971222517351307325922913691631021957350791690153642244794784437250526685994898050264120742018893605522412491908627513963552936935161576426368579489410059198942862025750867180377430599291971193424673468992893385390045006770396536938318034709589144886273117132958017631445189362761276401516457131053137140198603525910360934846931925591719798669150259376798452404059198709869271010613964587799374192950576118177494077189997323550382719659278254334368941822002815140969070081860440973387295680867387223408705773020849819765654443371768051010534144639959061234155395872362879689490113528726703371680745177309122013831990728290995660367806945236318290771732310308005809256621558775129958189532624892053792891177881475930820199025226412538464713170750298877031738998789382942711134531137742914041281689452809033029346679860650873150271032216808764162543574744176589426511442036104523792013955636005279113383491265181862747657154648656202668841886235435146376420667692561882968890304198443904015296237699105891863490469760186428202942995331510936828443086694524511323480000716629142452766460395231787281565787956237771266198610928250371066156866525268913478091610712871747321247446645342783947023527382566673098879991957270543828100241702545928194972346768013387936906532393863432937154833336645987318971032596825413270710436839326830682851907476007893743472915712830564455353454568056296757514721877666394968740221108021178154520115498618730602716351089363680209104296574750338524727902511176713192641045783712405236546024832181039003488688958317283104848371104831236315641558782581444584127792916813364534010526043571957176345055551241005032165093762232289360470849378685472896122751318712017351012471848165321441109849544853409697002174169234933899387568765636998836661370222983330819281974252550904078224917040224075504468193343175186579375140839830214692081317912244905630012765844752913499562264697410880036704298587270366519070282029374706892991529623528292667478435409747887679594640082571848615057046454424551085733297402957875454321722806804590509918222426350999564334929700379065426306404056367853299507494834086101610517051586128222757921236074533713458124746724083423348823722760431421067280067744101687785364503867708040258131186880124583651409282220149085580660974101172556785108466846629022900163036930857233964520598807826305390360347803366129681649737233853946279335717548552325737452214419504384944678960133436456044172628462096416321282626607097494290714706185274792204287227549149694735687396108827437610107080369680623713742683703264324887846520646123093551142392336597248159422386784254236817844322402374585012487734258768596310057620176871897577459727920118598000605766607413431020803051985717444607232927787052621513000279693729512132647321138452474278925625550109915970583577426048898646085910668397349682074734440764419054996564881493024931936552673861095564106887760830507463085056154604600983477319289238041991215025075199591591991346789537230084046050194856162607893842120338862580747972743386717209341937276919808453956412661611501255260588649864075579954614965311921265181755021685469382806915201496783412758640060288960363725831661413721626415605919216482440601095421995537009267641056927618451140581965475689470947247676991588965220303995394877581206910265548231531493519683616489707583182761267974968569285896473406291742423011186882087505027357015523237225500578455835358170674858765795049366495119702618986676236305628301557275061666118917202216380871505872280703637475665332059502436186046453836798638405127972262084633832178690233237831690549127976891644127040214256683235169082064922620270318199310278920303675536491574955766891551968540908376869039657731459723019869703483105970908562216657781828820014081242799511791578538603144521215866131709993255777355192659454606700200253988766211943173008868031068931827133220901668565386116524170385981602172332236782234525838298760770995616287190289852469766740064104691657819322997695251114972162509616096680350228892692480076421953651307019458911161456865623965932899748974065111007638993058629567897493850765363157143180386138664568154354882839419288890750747211143673975052199857185908727791935313114627746047843029543990103072594431471842868033172807331522211162108707832842718513733226393208094803972709776752237451387487473935273388769586793367805407335016851017995969607708980946824023766605384418436586550478199902309409883696865523897837256269226000865825316777227870511048019794321253610380093863378163330578549486975226906794413574623223474954701373679084985920691529587250613395532677060791056188495869559682881400528280920277589551095200157862051018868689995822231770126756671992461302512712966499065033176898048792235679760909236447011087296961027756471555106837249489840869443056102114166451827500123530778501696394364768570771875512989740847509157228058976854302986497421842736769336428491720649048585413065959247994383749594480850384957392536999511600688077578148175456108250743847567819602516774707123512590380786895322182104914943484570835082721892649356844251437580187470896539190512373940585272072146496611560875433252430158761108954533584691320223696766526963620409590562921393940425215541937289666309052784300204175676601362096930358276167841315015078921478854241053379204909665914808554230684130163940943117614888458491075667872290677849144736649220327857663243654464227024604513693766899983647590836751156556824462602112280239735639819854082466208631413039525305516020564687323283988714471304542153961484076060587636453655515913678568697134465919920349264267143696376462751189051609007513944182465552137949118647469845038487678889529691239220774554981438959896590942715342746955748192527905619601142661603467964268353182864827230120605831194414332118074178892954281546928481271090148656277297622607019208966643763837118690674706563528505482125196147658550517283043576709573140692564655431269971514249914869357035405437254392045539948555639373290354160067645541440320980063733435493962069329490098801960274909430213204029702417596944251924255828725232935809650888444811899009841591740837492930980808787825248110250865239277795741039836299913753371491490395856377590984355227183161283486410477141664961821846767348152450457284077075773888436401244364890240431711034276503518035564533171889364961052844271881377348893417454522032621310509138063948671652513677729113553671773190300998211729537755541838580096942154807592829587828610835174691907081344484856981282398349511145338348495162475440165754576719666257507126609215660083877005818358651149637097714638245547146956191691052639427535348578777761233139910900661332236053248219689295510466276798013220641951638617611909052581083852642395368090293707690622083696921216893028743337893779738046485767777138891511663315880695556823925328415293030609999387904204763987628092873993540223852807819133704260154455998825223941677159770162623459590251207846686101061418854537441101046759183746543059527506625621131687277274014218678874582726674704265171238899151733582859267941767356105621750606294115913350374447688051766065476567984258044562406344477947800313531271300035738293052435272903617030114400803594452195002240003746132120188898654196807342301443089084646492236878196875215952643789901121102777522311306049353949884433509531680736671551956352024092357149231819035304949932725721285762512278825044687441660984887027561504675536582492014555084302004345806715609085651013509856077916750178905602994513873043261468190065068081991885996732388005554960674592321605102085346265755165279140925108858120461235388751268855514356360374796678838570847813345326228366918071103282959430914183881232227774945210568886608966595849352664837787005385467795636817267894041655588958890970483225698715908067230540917760267199385113359887110563622481109692119513623342160196794098944983499380732050360685403531943376721915008390009459023731304457855294974787843699586050959150706559046226613196672455580753122508936807627530716056047908831059490807022734879351685464499835031323587852852670782538491080261935622351020508108430953062516582246275211954293781035033944617093143736203371133957364035677710443480077795620057247478958969485876652269699964530298382212176468771703899813505037535916216791368550477505440588236466970576026488261372220481673205954440876213967588561880022856242365782708147786004505845826685778903029532502808915647324983506706161202131639671825330071902814598194902808025528300182480277422324954321100309969562469446730313288050571990643141463009156450902633787117128742152988056556945501029327200059271533892334819663788140022725283371088474855340097875607165288726934933789456990264063627050527932323325595051545904496433677889295991223741002857210863736857164789238715408636607448808527246875019210662498271870384809131619257107966917324429427878050683050311755526954775962288037581314614712930157899225269290908352178857949895262746798083797651326826722831764636725751998155735814395502259139026456614764965990214068170840820185899866317462307140393038143956143284390028168260586613597895874260277001845460767407137862885402389675595308352523872876760306089574017722312793346162289940749810829984919088969739705236102206049576476745478156155250870870477960221327042150632344097547376893690629762845138300930735559037868440376614699586098829401820975250507194068588130479063548134570531664605109814662954548324319206720136804902555068236703778697414992453583371317486667679084164447998873597108805910811063502790311952888601535341810477872588950520410618640009429853296361645556117505696971713986452063189649093490821434119510446341902210628204761589646100610559618333669633277861897974794198931209111199954195481392412229575306037896415421447685596529709162880578498536047018855617904383227427202590144134927915950612422295168889425790895753915182023485173612068993285064160870354354263222982883869002156387911066406660644156113043233970561298658184181050847876708543410130202081727724701858751938211493054521274675575838126437521917584416829318753951769002849017855797413808931946439213178944802659691535373717193069567837645603014801412830320678510752730638355001705956801652124194649401909306036932641442416218001708694269936287404868842933693003639647920985030501210827173100040277998023575689697010311900547922853550000601107143156392443178292089546884926089775276910586090632123772928232486577837539885361113231884280953527735015047906241395993539968834864782738227793908692830552518198337209584922780993749795287601649723731385055409195493114832717200964780988521965704443165950392336924047214693921980783433500107202471263895540835258474256015665528431107566191937084292933639985934077132669894782784183395055285404865349273291849738066126534079271200929799441751324544297020442401529586574171628582870842164150908177496077276101420144436607461042198617085711041451149433226198874332315976327831547422887274094814173957309820417047715582491660656560162149776615901189713530230013456761852111123381510942629836758981936366292990945898184896500555379229060472598824215958399478257883006134675836864169348027799542946326904891743113637285419732440157760086130193560823788849690756530627605833633281464324480806898402984796302198548673584209461963667815384941062830307660938956460302063237728930091587099381405066895582843597944580600354856114409413683719825638707849723627817068708545497550654133311224043640283559582324179412028820384229520252417182231023683544933488624164772655619760893593556481351644822049042272583041328169649962795436154835495065092319302496590009647677069612938993177311762641722520100673615634730323191700025335402800001698112486568187474132809666984655934387206855046381559196300692768909998472615327289424995427655034467219081330946075525717577483833758174774906954606476511093611671353037552186672009087656290177766120550618337696392499196366421166252309616860160874907853327175717947959157420573570864576275269040632790212011853417283471849280326307505851347072616852686660675402211860213083619852721292702381235012487414553545377808983270455360842621510249644145778838062802073541358433275378403778067599357017829415693930702224234928788186730564890804618683833290528874791667195623481320380085484822394075829217175256279238126017052931549375866510212881495369383478589560022647344855698686384489987495689933604606416862529051719366223855286585918575887976415270481423181262790419302304038062415667245885899642832991020482843386875390961639369603232584792109929924995464563923639710537746036646980954865294618302068231476034065559838119551719279872870616436052959010135254720138074440199861187824069537334586976927080096347716399488346689192122146322211715224615372247045518817278511540242835055648599926545803503415968856572973534360896204519795253678165604001678519838419664204526832567573632605896826571422502186850065557558872723783732307506491003564272866212225543824210153638928907771818508350538993427270627935967665888021245527079090969576969558760219507801260674506802374461120272916693274901704040239268625120466347934701742012183730832591944234549147219301559476367243367004946760146198851451854643362762734204253244056084462343658669016055805533897157511727868443232859471426031500511249207011357055357740475901160753454671633675824792254087748911207367715431957339831723411369524954941729019528044173661800808873937126147590094699701220451732238314880085090126715164244153786444584610064764723891294295844167154313895168724733525795568223468426730771039080123080560097813354413197246880247261647623697415574127230652991878800294570051673929215654202882069058216130265019732135156900730344240406945835576357708994435629913200353162946871585645849333825903109432053813991510477327191036738413883134083460300892916085803094603991387978599345434229896480309383118298456361400451375873504031916927381517047244064292357966580354447989637372650663145453606269501707956787480694092883426193966760717712856985152699202241386537345609339135593313598702925517138109431513602979947477700723402743621566273275747975121246997822064500120412967123577408680557528313855431281877606457800561298247497368158197218599935919886675612394858857955519316227860929924075332614234704075496683476579103775926193718715159621314684871996568990877387285299630529335324264730212437493385294146797560610358341732910578703767971800596139946752482233695161975050173085776922645972917531344408717054963235918213828898095910097807820106226321743546878176147906200859683884735586370738188241958206870050009359220310750071676007671690411911594792708516898123381955615226530383131799803366084284235082967301984332745729550416730893763267241808023240703674840381930111066754960434655383859361371858994278643023331009262103283133061814603589735233388737924538456770093193946133156534030162292017406086410416541366977870853007758021649324230805488821412771863116873981477979482116842860001468525056227295844445792230742951969382553970914296392842691530030517023284630788716225482240590911893407871326613223199117689033148500758656556706443914413331576608948778867979883058860426378295243658760000306459620894916349973367433170756310277682418564215123937493147121300305077547514424289797422234276714090087397287545407192880192742339488439842657999945048723662600056277001402379676887249316915880470287078407243426131876021137974813098723161154609232687582154065635723802605121236164338464353488409826537580771694945775286530925943643731299411753219529698483191462836528797169272217382179615437127468257388861157651615145670150009214144888642127870464776678143415799413371861816991140775910678065199285047498451282849265102214350376883974848238813812530582842423572113407786444786311712516079677235956432832075315183620371753394172709277802931409629855440600098163424287158473696035104382729483315914404619662265441351196002636394184127301067667309540168261483033689810191172016986763862108471682859196471250101296910307771129578319659173782023508934498682179991640991347268586356506219321656086068375388856405057327855889514403452852508379236055823060746194756954155253215002528495380007105895265566334577294521581701982178042806386987462170535861828753073166494746163761382355851019122405231055308625975594400740278158697406198296439428662455238213581709773962715107297613457398177284884388226648357630764425105513739892214931899701581881796588777468600551699018786414906619588106342169269945717373204359286820991896982684771694236832838273606099153638574073276592722829994794287208827065893333036135565773901977296003213629237103337839533988695518569918663713560045147831099180022671715519522135344412871743359630122343095310279812456497865076194316375789888664001382286222793860920164634082612741917769735465483221356788376930488598926189912621656563202252718076643062096986494500290449743881065169106895357572194275876088584905909910869085490065119038716659870732224560649782238948609232162603739947945584849345921276551351039235842719290195653511154866993451719129252607359108033489994483387384251167705176340356626936978403974666062104989516482003169970373420055046586493477305957464957446059687032195476113137628247569593979675618919032309700943954191332355598403820683528179667441208366310994171595085651490004975896070518005734740495028110862912090362121469326724316557174200413566181361737753750527151290423281904799409277930459679843740657666313242216582769220101928966341834849114182700983015921351923727805719201752611914132891951806095554657265519339866605411766056566918242483647743445980251470291949966629281810803021061344719743440218564528022011652811166414037215285015060716385850735212622218888845765236729139869252154657689154446868078532771733298534750509446908378998071587696508673178067474011482255042641157535812958333323717027104339611554071372940812007265182341198322369727634190781905318972876461427337884198090951932778152934581923879246667803152914239461220287836806829688483548002088522293361162734444503605714898183493333458989369346645391943105097762906447575318840848799900687687404981216067790747059427631268010462143530678566670431168188446726401335659755538925822227943370888546603639551432436256921218244159993232164257233089786440766769772112828291541070995437684038099649373227295795566634696404089843053181564959396605520856182447777539430583216361488593268315299938043546200421836040464880316803268426392933367695360738425899797436352395579210057297156656083557130958054847053462107540148923177927317967832908642867850636645254208660120780133901767149653705831459237700981387546331323394772697171082831437415210437881535558877479355574645153728345801051363782475958295913361555606549250933264920118458415121887291694982223251719231328184494958129344254040638420524797860160871614926437363896070403560339600868475511687085615669877876240800147502860060485509564135514756601760003683168664606665056118781496807254483579541164829706067641274274549935152794946164134501737940499139952412291987425398867724706771778672993758655372345020531226404297492773894184304432071952514977294425331170049057808230367394256645888131921161074337935754558744519186820656000435497219911703211684438180768723534417900078921466280968755656492732545870063075437620841661950791487957335425781899431977130717585674249215266891121480477484231302126656690127220475406971749965874817967410232732401597302524545468179173912065507327220200250483439216805036434437779975713237165036729586635472153901917905343112820252163666507660050268852230580408552032827389614032658480869376374892890675331509903798847442850642958736524172670142207735201596489867673275079142385764525708213069402943026266001691547195546965123791791803514519874470720334339126383173710315105497640506567237561295538491446895662003016689777979675147463074668967532800233164690558749154244431514954991094072952398639518812636450291435763407609703795520948174287029035715315434387133820132266028531578640879988124998277259173635958645957714001945893783592297071006885981388873348349856514414428922438121727051583056984710461612666349660127091084589868178439606324439341993706757179454258574062504298559626857737222164221544363213829715717310726524024829593683572801300468576080464130961612542598665638030200529672977517115994970083828681774105559991056727958698333193601610882333686203630674563563377372690806588991559049626717273691269249033717739876781364144873958852245973662571119948825153245184472604470771408217352893920034291603788503105029201153323311220888019372131564369948727681043336486426306457314780880938759869192491242539140296545274995806384985045384625369055345856288414174035932245566412186398577302014553320840813255080705637916821309489389034768687200707425670944253196577527185775586850742873856257222774634254338789091633188668778949332879118843925531372808904844691585463064123690627677220856794254230192948164692388290856622661978474198116882746770382004588224250263774910468145857621033810271195067680653679492633018980327238527589378286487757612882977766380546605467745831139536955102243537441889810323875233848814179274544693710903750512867635270699237598668203691287583858278525449986376426000801987927583926057361799548307123623609232351357426537702336280052793511178319707351331005256713675667358309456402933804055252466572887380796888124879168773551914863503680702261746442723595469238635362713078057091086047365955383134651966846308060678465028458483905074297826509909560399484885050426146604039059976042135095600526145052978581426619871063032705631100063893769994442946810727781354596029575666401213320718345967757800881755944455981408281277492400023654224133219772962296662515795434881097745263457284858730164101432430323075601176815583378950124442224502739973082346203576335004135014519745737499598916199029426164179502919786039770414857967634755517808786936979113504141701121505213279356494335897120262081139701910053527592359645727418584661387263433775221544459658388548151855115886807254060068893697846675567110196256213784051609412150831815111107414124886323983119796258399927208671517373342647022104707896828000673966394492633467421962752184416818160690672048594087824766116662870098053619480521032333204211259529567754604589111720121180591953828932695173788269289152815622069835422522196681750158026273977524322170219885202014669118888727518498285869884604960602360536316637049499417977155206121264205554024067880873926416138553435581300888764685699511447976049512897662669211247098979650020914021500957133868648841021152599415512245307199373912335367929047771993394168445357552143949498530973655439587993284223850444489011978945135925616427985699392539885579451526889652188242770441882371492481428865824351881968526931964176172268946149615847258591347439215841472555549188626832717876126733976417961934270405234984610931017220833231243765663750243958463008097785311649234522658515791125818083603240397629269826068834701227953903680274451626611490728001509110638909960049693919393137719720601208622807354267037199410964144722980026824477542503419307817810377898829701509772835677258104471443300469295404440703235249842196401479466487388952755187849546496387574607712581186319137838017462883658484691850850811222311229299018430166491715442577625985653593000762831571061703711915688316061202113968741413767257157281186643116304469596899603589470804360231246740485935027615459699445087353899123591335273108813067091486931669167833620109611586323070601465507984990452979261891831094440445527710818868242822864998994985209048095415988811245220970873690146018128820760572325169920981763002391165442327714526837125929065337632082723189095560790449867808611807576298153813518136763183087100688745339570761692460846841687285615087387367000860962769923647657685689634416802908680070688081580555571962802908110114342917476536715741299591553793789897785223053902138973038478798893681770394054431621835490469397250808003250486171353316610957355555841186962684107186381392817627293034169910456105657754661757038457083006582288863426588245961087353183190987742004455586026752531464635861169696470416740446836646364828393004147715711772887243184312368826567153539242849353137402687950813139910997364626656480940648188022691277703289596350963153378981497004389414938623652534589212114361338805319763187539954010000336296698683556943470275729767043713668974465506784036287621911768811611881461149016530556085140035192726500699043730896764271420310668751905087502555667482141234936236575053238999047425732207403205634778941345542655645069113566063231581315897174344652856467662245765264101537766708654310900877193317678841666471015491727358964488901640255562024841603798994448873801901175297852596006343935098470007654278723869348721973201791273035054203759382709354273994962379086269542130553990748578700297997970559354015789471290083717654241413229115685358012080267839043326776178607079760845804059882504383801253910656789323129245699621157638745859210351013759457945907192516214179559607401867299354186432905589974166946662842789134744881718931495803017654751693259081305077561678047525916137468576574463418238744769053232110442973746118772679885478198487181727729905082577470416400221136374150191436201175855304838019679774982865890030198252398849625944312459648124744256668485841976023641798876778859417779334770079030624860365263762094364333106215662227974733133476367329768397551715134230633779065641727386027738279371777727069428163703365154104328373748469412943040760684469762697784709342513159014255466088146846093830472127278706360267367162715200110012732234334319034562152491629968493921161968734380400623174779480032565384212555046401563581540195624484892991362540548954800676251581522671427140331514765186565713118350880033269927920423851590532074380827237736441637668920948373661033137017381328932379883743126727387285319434847227505185845554244976460708741924680154429856215786857402044259579241200136915575652800487127642673846956022144692925530149901651293031173179686051766529973614465722788282624227483958436267840139012715601459772145976149343081288241751087819548394191348981988150582219010741161257040289469551732672940039516115109632968770146582643167466523657038147323739385956718711870729617555527341639869744513445851579093984851945447838976127212767709714700551511907360817123094695547569899513271780112259765754767411165949577953123960739114570340574323319421941097955150165027307204561394225662869505074149513263070665094661220527436125223954189717316585758162446024942726345154460081906834144569882584538943951296422990788765170714857341701291777416609561168711918079827368412500038226427666004187248981633737355205892689738866271240072153266653083098558683808727678997322391987947714626110351588770680658247581961236611075627099193222451624196678026294236088101091914816128580697541971946491320889521760915518433255636946763752041331775220042208576657355472476327539835581424030630622921222008483063545542469196525117087401837760430496660117399511131827164371356920371810398207328835266975303623415654695554963639254901018196074472251092936777880062933625661891849783055397721328212795587482410953382170025291692767841794067529442376590465280957541002883309102663978316110368121267090673325690590283950241401778517597601573152947239431472599628091944534265213339661805233785104299137174431804523220891826156597853773962713597309015867326883060872886613645857042213620589610475604044563332343509339273784990486013595720929125527052813838394235074183724656019725442707794895666761017493473608987298185885635820403813054323557216338267538207680759004969673052510635657349058804641490246059682723488656900698845632358447764967807142241627770627854015537157159475645004114683913042050308726242569473141070538981229780987316287613735821671068900247588534733285473903956325729540263565874088879504895637565194116506177252609831488666124565140079682488448804157346489170853636629881628584912575685308530116275445629640990278428276017274252338187949566967465296213296532970827321072699476505026020244848236167069986138953509008651457270743494350138467330696335579090993003995252002971266737039470387998331139144901868960228860407618600359733724670228266222574692014099258646992859497394792268414538903428495313908840186484409009751704171098295202215805510531913641592313657515861022466195959981981376405282482517012165040206287014415486558392113767837226864667615272388909547326552063014598698388610029299135493702010170858366476753679787043581390529347927840207272634328509745918376827211603542632913811902149450482785192915263104909646932925303368334098772639390354778832539428458557186345509854945348090534267650295970816423177750974644217661821483960618373702087939593131372955700988396409515439690096251871077505693072538665049142538888354319849556126871870614212640113467661919885758437516791929754902768992122804016556843214612710359453961318767514264101748213077251655517445017661422179850533660078974012800127438556566176209425719413955030837252763555020020465731301976200504967536320246731409450184028142678673653962730485307156584566953483731508013565631778942537942639461658885546851073264936798262202964198208486431983194250591162865124921405906751659295706230731849241315031102209092104171621730160931686090294082243705839293449265540694340423952184201259549153679958231323048468051323076043738938464491315931413688303208952161047712132440221322297467215644121988112921629000870810080840444817477902388009887148412049161940571191957160515161849240367498859045951225880301633603354781774044376684725654511183981610418635705039364503248741361625595124680505649922440510380907601385504053415508367697278808135083519496929132967847051082677282942161068927561526339305092518146723461874775435794669329189904667509761500349931357130643282154543378907582897819810748725057729217251738335898983426837446112680609409055415937886865633579673554782418029426363362087686056251529260306419479589366886590311214330946659839243417258083641355487147502661230471954656947303906255715418125371103244312385400965971751634136787531471932380747901374851813798278014186808947244282657639706032482354780337003703596308595060552467127245210462545669376435119339145851374006976818380873683531854301069175537090509124286221034776713241643177775821568538130517897451898342415867081331098737376471575404834778260688850264559088931838994770135163483814268356276277796221383473096093987254163024796934707246183170433275616176475261311871453978089533144099650017860251693896317745281320479508675855204464442468151498968117565107735821056268701689522840887358936164247999457189004280241874815229953504438903391081214160740066855154087799844721754579980559826896980514134690365253840758371530343774205513099818962154416001684312985421190427861916847349038937653859208489864313124094320918261606922493099518807403556803843643721578578989332519991657779991468457638972249640114554029363179014476807712024492242640930535654383688653270649049229785927659473205569334881489961499211834479565943257535750062238127815151160502736364086913622356555138896844662433193727511775708291263160844827369843056826963232049007751503015124209948867437909038930197711949069963818587279400118982841968958512284451068725298134218484756908000071910469221443721321734088272548568781676298642023211181841185285893729685091315924115692196619267744077328732218225513468062964681448179466295616046007870732944224799150927952389427052734732613275789906689595907920635547265511284871831862482358193605138025079023013988957901408345951169324275520835274690778238887667831685399027112962002587860885562292609823529062687980732972924066477800125387706272620999929386567915207110573711269192186624442441138608424912013954115389301790150422647127058699470490301492918841676423350852515769625498408127943735047446502482346763653697527219604885562569584639536303024881817656787001601156175363389799435014593240509426424085898979616472673783025342785237193132091750279610033841505099770057578378890349664691936022909873758302065961347697338347977370394184233408483736563017076023638961666411952343593157052178452587904315691657692411214029073954734580323727779711549197650201766270740786152012329163368204776209884368872957083565536601900134929723274599940993767289280901718565738607232636627793534174669592873203231644509151438019886493670520323865623536922949742927368740252656094603720045178536755202628584786649601226640663938602699224969525899677240693538695408721369115647961077566344589574236684434830922753046224562386325802434359484257738834299992498979527401600541822476231984548367372846184899156917011253250878163919306197892408825822602325724160632434063583483333512547688075576859338843248827634944800305966800708473147015872458119104084138447460063515080707508474995449468280519807963578202750353561370433219265973802799860007266715066308919807590599313958813191527454086468782300371816726017705002067944660290405450445486148495778969320521862757799000231668113814356036363853544009662336509438520705841406482980091420840551235915872130286078350901514020997400861256152861602600197077832062448581297503710432816355441103069111702901899830094881606794424529786864538029643632630817493434107431557984832438077114586397388925838337005667646583507603625308714389227121912526535600692580071685410083622567770339306116470721591132167145934754028309830663172216644984069920519797567530436468273526387353919388486479706427212098527108438207197509674819084842749977818322291733052310717051012800937261928399875564519828837982970248959698688548495399893251822405772797980379552100755815741588632911027609039218409930144275619253942125612383872019930909623226861957322021790052891169305735078190159941278869816877016530625860191849201527176243072384863502632956289793132664623561946303362218598811197340023463566549998626110292185246573050534137322214873439605568130134190984236233799695472173811973737993164791554540829823359205185573879105995811936484568474533511225680930637447886613725788711294809031749033647669617790526940910346612427988665064840032548412365606235571526633352296308155156180976271750526948067882981521486741366807416276379889676170736818325222526159471104525759700696548673812986600712811752820896395668184105096043430287770268462639962429624303963601449002442610229552865550748178059020659084474710222105711462767840820124225594572623311104761537197431186350886399289315434807356072824661941292268105622620192851603993274288479573160279704011980640866864793129737921610263479319193789167039119625768682797719377215746149198998679517821546817414273058343291754628239997182462744027065753800791263573508601806799458943258717486451492452913023260094108851910625124249828627621118691213471715310638111973677997585087949562131514105118330867086418092289215909845137274009931797632485268489296651717277670820641579052952948196238412369977089240059114074123458786261421838800497089772920345621698730824407868198450157260949419746294121359351679410677132595059147550808235904386685312568088437551338955655661600335314212727147377314199233160461021163154858333379810657885869614722634914317966997153923821808245829116354657033407462877817217142132565001996579794751684863286084905382472838885984218419614864832260376276727498844912478024170035199269012169459230718856748544905763288494686396952595649075569440138380895106053354065711042177825207093301846446923615442892705888637231797397327414851237759064881936169727791084228753615854586400752445505542103447309693575665850178094345474940170952722734665575111501491275871212865165866006899364496152096626244790771304633496913586628501202524887311731604763667946716802939072284446286698762728776516419452444038207137532722090503714386643525441913831435169704434275621064985789406174420810406083296285806150044589090836978781281559602380458828554624099817118587915191603990863135091337948117232237123618939450360478727416650839042835047114802334153537011310702189199973400494096115586419503571904050297463420195824423131309863723843291503131996359825044916017686531899283407763986725789453260470092983375788047879860595812117826980962203017004169865724980384458623692660882246511291069348999396801057546287093663038669428464186009220879987969469249551419338504027355028095999197423420630398162585372576107156229988901661599222683482653155097939182592640012233764353188968988831176948790379729964681169295516826108069798009854396429684394007945620883952338865908688725628087054208219285207920429750789355505717674656183579293027938081735064670835043463122888485222107995276787566179081118178250154474948533342519240440178815973785817931914629084471370617469031166684076331232436661156492348702185703527144138358724137937256636176463401849789070109626409501226060136844808397617493484967379718944137058267937249257681884688023702201827882505264502343991256118831923442086690007801804999585016876664058815619718990436990045182378144082351757238545347399254220017023251412420697651674027708166242032755432100137555937823115110138729552228312474485222155048375331426049614864728170095178527800900967659349883119737879835615354717671182180322924284941859506543934410358738136643044593553574232928108815145598686101220355529833863059564896240713186914785791680841138603811259370930894252377463823768267545750298716865617135413311502099112765885019337796485112928899339293340752533946468407920327577583535727849383495044414846959749672138868809113729543925919948579554841225199605997481225152276258315407037318406417205200371843386365773889682232096939288794879404637795433005871481177835382727647413125226609054020306298548824172857342907485966860038622975961064199244395886673096643279737082350677685934921172372540833549032301258743764187784985822205717175883638589259151519142510935313579080543821505538564704755012771519552279328274077103877683311429919726082080121953992191146228425243750327909624438090332204351989385510999517305422844885046438838173936691595937076374215951059865786494313751355707266157367395954271861729606692686271986258093774327228173106799042228756522510557538323864720399468791838544166760756264823586958609249613718059232203317008591896753865234797558215129085020870425197728477825509392436801415171769450401758109266844064147477843904182259276905293036563723766733740574824111335499271056913590000145637875418956144371699391066857281844041877185279095492024444135338591155811538630942594201694084506819758697560975156708812403291906381077759863316511037170402673105487323502650962381193528710306433891650473798915229023961895477891655322678661890747174160664599723803385499528622658452251522412329876822588478784014820594650904253093276850816479590107575310995386880236015199270993341085287040384416707080882859955474488684664827707375111280281142605905755545157826468871442474500057654719265367151150943957548866812870074114651839002551777538579095195321891695572858719689983986240150183719359462086093628914842307411799888966984635576194855382622375847338721766853540438850291328886606889545626924838403593326550428065686758020090372630227361482864929586164103616754518906217126778674390199566387741837705096777369064679572506105391538534113183710122191755499729927832805947594351368577316148396040591011782174750115434074296579791852383731802406485670798247912443611367176709142699574248675781654018577636918170052607694747831177386731736238385452760323472899888621984400967972207063077788774511239859748861422454569411265515274564431135225040939855070646468961431912321490735955240354340940855064407033320270103058959820298100248452113981598914314338799962729557229869472759210619168167493714698667883495226014470956516378501302999492524800357911495756593863229007026215032381067380491254704962536370399157717828910523317599220588381433612701054317360401518660344141993778468379903024514241576453239508631357141726486307682063315821837045341045548213488980321604236861278755181591531150721727529078694984010632748003249179010651194182012880728822737862170098377957759420945179646614763552714495350526207134269214469392112081134867623692229544913351759371660315704899951659301474702690346382259958127317454269850163626923798230396682834594188832053595399013961685155006414711304992831226675424701081322515475141738412142169430556578158563274268287099398117175743609807777403640686591490101515709906091308408197551248823996642378368805636160804297887463359449537181100831871932971415281520656014732551440731342420760570325522222801604146053239367792229018255561173421275036286057770369154380585539656862526476088197524380339975238024980220248661343724768088752487691283995532625864020138485590215192572809119888196172951912397451326521443817728089938670884448068536892945422793157341550551202746369693411209019344836463050799976544780334794126377226810186932925013465638899912883749731491120808670769435986263928748548234190714516353484183656740239141371668354270628583004325246011812899775028199105341682430004099226512971997734919238800562777317363240815061625340432762120683077324613347409653257915536685337783552389372673896710333412933194519808571679839279014060845238482965217698847609476732130949045848742058154969129897801578069344257783263248765120610437301376612915657127592517607395827676209398914328585668619988346364618343863126082552184686078165013508146908347047723821784958294207423094837949662858849244922024545502262990386452298133239877204285238656120277311837639154275892400273878058528280278341797196811845355643143292327423401847178023531661192157822804998264812109768455045085373398989806946015147287275523426677258348749578659923878866487081481320489906990264275674676014607270892402949779883291084556302401581974983646880266833692489183518305577193763542608205502417645850870740559712837653182132022404511541908085041105809147685908738810393501888056521429352294386255290355222014954528411183047382020519754964136507159393593567605445894025579199746539841618312384748752116487621611936099751476184520359694744190200499548863562614625081188316183020072838775071537551322891351973263669685075426783383873500576312524539088452507715405603003069623980667804775434635623624868528265005901078360199071377450886581618495673872971450723578419658477895187474848428457873398486447508440177663576348898220500390802983117865992299453749874043133111700667502201489180830593987610726712431890840461707910017943702209787354874351239080321527150370911412041295756181734209469292793287686695882230018943493443342125528158852685780454919281021435234820834610959836085810338192736713174759807883454445253851521080804743393972960223783567453313551960453199680966143894611228270011234982879779585276524334211714803165141658590598447511877646883098977838853124189280429838753261667154130153401614408772605004465249457948985173505479351396821477172389474317700305633530698434885961675591601220185844012290365923935513725873208746900952714603371761385138801745170909327379852917251604599393822839027757008397810680953856038404646505577509072876064986497870071482849714533990421241494565915217392318226830380123427397920948442418342796706599476811890959622387259899612902293425676392569421774609469109648676001244938581291926009095920035658106357035150348173278165413668334657306576486603338979035511216184471964215942106157709033263879348760714501434605269273000905716466851796618777671883832409948263080957723037989349017100745819195717048530899392759453794682697701701996677739706152636410157491586241961795803354331780991250879711835713527735949155010794790304980869898256200742637469498489686938975149954887329571965433667459034486246339124271570937324125321223745238112090182342749789760449363296219412066952180160215783184228109740402406369478874570163134471217697687366632731258303156879678195782810269038271597686789068141113083816915523089644264173323105691910406615561288575801268267752727507599443737003830162934534704672899045147833625938904503287863697813695479576114884582689132434117743789616453654134705323807784509399316915669863883214644127100728119984158201964180514275383785013924338873165481465821558106748242831664178926082906374623938041612557338739578568939573923358191246480140918667184786001635544009007011336191477878118699669414358989138997077082959501552782908075339973372073092818432417635040442006357506815929387089423300951929122871772941554393005082048267353525811386314871221273386214592404391324030091865802889661305988547181858878430665193406621393700857536598502013232011846518647880653828603744736216404639598446894232822088985163505984502734343424045983817034251055248992756449533665814055547825358054023783039357404649414436208167377816793339209094412266690551897180101374776860182053188028972317873353967954508441112093092218949753319998403074924874742008485775156520634372029820814587327832174062821220390999857399080596176978392627465381472723942476516031997630334781246326252344426122698435333432210200551181196552634231041566300849924446681858047841666637673754497018529967442457913880853248669718372662720179168880353617821379954381290603138421561796053487204914690612522891836061545118330587555893399371146080841863242010241277191717761774480766679829613570965116961507386063463196337174395538324962509536297276028660222809751593859148955677051218342696519270317798479665921921584105819638665284900499697451741309474562176681312270293311987717320267735807238912836529706574710244129609259299790468010278663932565474879700997443384793902596321043009630740901770216336315882316210076359213871045947256944295931499395430896546014071386831937538261292405592457778650855505659409376443418849976155202257762943448358557839581740988467406463593604735391027080951647504250626951751553298434003930236153980003704208942160182715816679583563121844868982821844892411325465688426358911789938723529248729791711094376955810707058227717219094855958753379561629814160690036071264476006337908210455055637143470798695976009122502193159493057267382901593348614515252164624152086130252141515200382437620823794171792252652060741186641623932268013092483554350162585925599476423415276813137784048378665116617174134224048708020878258327794039614239933165368367108485991388024298904698058072650807838856763915081276362792031976611033380721016354061652797374594447299223488898528057588119871090739226688657945936820957696937931268554463506100270374667826224962708686494129832810229843489770154888526940852027573210232884040286302644030457220141100393664291729654901331144535397434648321420700613983624709618129013569392217127395755287759954673406064394235125654122759030617708486124099719972895076064982614335747766701059530238826276932706221813741741458512097679417622803661903933799909771728007236106125981733623846807416872814629173012884132731372496295774768086342209834372192086602929239379600990495025674179058338979718797914315556060587546718725350842685112497181776710300284076873750920781419427451437293442471623953821497334746699086107829590445941110958814392926975260425162152612149990680557965598791870232776460018330561984184625475283956940417389936533177876472032700912990503133702188358873212836560887244357089477937887781413720768198837840186067546396083791551399904109675746893173973260814243294796889630764462322640306598288553729400868633306130754531308060542266764102261556107973635650615064736121983539547919121921955544383633927694260658398003566268045339918829024328053447783848871861292983279928680250221358541384847982124526443322342493694008584137021524661016083072126130923712920831956234509049228943325744872559540084252452584021939050535340879764078358973745633202606859615613813173155697020752658663387537988237956897591459773489389827308092592035692323996961058025595498729002340530209878784757365682413053524653296892868851897768147097082573320007241507451122304323827814975068818292418656819465943725459787916399878923240676256988547830513396138466491228117951303103396931532589681268806091460305591480417415287404033790366018526832519992598052636520525057743878478888344705762772900560110909192585344856502935731116739765633800124040402380352689954506460220896216057052597698311141610151225608470699384505356764588531170895696337578611330156270920812842457356006502517528032845862350855835150802604828454439094336227449250119107090782042063708212350900962304618289432729292588704913693759847394027032646675106427537443432780837277039895022274308508928314782635115993391166974817492225081353002925594730625652882921669306094815963330971748367332543114522439267744953025971788172253580951633007489254697339042371849777620898436416542465945316954880818455720614945769829534330438424537239450774750100837858932863041347191520947592527746079815641963726283897335906880692567747806048513966311189903902888393578867294974574072768759123786416810440214822217497302027309005425622917049011891485321534094301110669793706052966627974677984158629528468987955040981338324407228051186843094739442058106955752689909147439664093899844820451726865633767717519235825159870482134493916887923273727913552497784391033853906641253865109876219126976960365342994202513410149392368827929631586731409955984792777907489611525096957095784896653942220765303464067605888826473466680548669419820596108919412932885191339031476006218382126252243599940112937938922777760749705165485769637424115668499907431726304635104938956619567909110127532721119391684416971016401009135565183001039690147329365924703594823056737670403311967967963302395861475412297468852492041527458145012162472469288817739574758101360978749434264410254522441778990662514787841931976490263446145123990866160873143921204524210416355942081485482699607799214905618461541657469141207414438406112938160445851415231863150983996668112402358771252392317829690131255750679753721198793802014955556189798510205298398846280964184112840673959271475427958864080771937269960376236359660809585151555524466208978089162538360915353854239484712874891023395312767427948948392923012906900418374211276211639757187785554332987138772377657810387999950067219183628816496694977477698193911979361878953753299448880791793091317319651474669893953695606001742650890037437345932085267812701162369732277806808325735884257671085776572926556487358014577790341222016242627906386059299834996986490913432559129259708642393416399776618908294387088559532049166361777866697576163513722508075464718176685860821957344449455216825999689623359548329668048271112308034012044506403306579316561636315921957008998895221616121469426966090543677454805403268443928781772863438637420625698468996015734606419271567867928773324352858612490640436973783881614364999064891945321556783172606932003360166387851533847937463185698013511344239134560957741116221286366434938627341899699255153954409786236947471616574430926226762549829827738595258953903950063569613835486020292769246375517910635185100547376516107905531643808014829386404702061144422819401238737831862644897166028161122524722140950112955682377748515507837120401234485123223425891314713384177680212580621016617432559302198946330779607216839097953047914905636633239311936304165937447268867684754712881268782068256147686612202076668942460242886722407518162208502921060296963265221520149938847353689826318281214497137323918272487808901737800947423016077007164909212685629746061121276460064003825350342472378903653555041549420700235020993054828352975246691500162984118999295436661484989078797359212803109317587744678927783885064603591273011999429030913967979515212713839532498912325023936422139476171580419930861234969692667531328555409631424598582285174022443572133182380571262489308013574299594972947778088176271684407667339831715549491844066748831739978361288467584671415668240746932891676564995554009690099932779216304846629838566485119663363828078786005330572644841725395655463139760219345790095118472961048494414229588087376358488787685765010287608962865361942329652472018344475973786190511806937893521158918056334238267255680365862757026355386111045386638369712495694342996928725175122108982228652828101234520692232976080193712877640640685525729183928473115712999027017252960083719723581889585603210029900513008946948527078482712666510515999844797616256244599069081048921678465636481952267287323527499504372805392799408718549342339785831128221619245089336674502131610419784172477357312020209321433428433397155967440164885698758657071857879228579801288261104019047278470584842828478612709397262904093243751830503420068583628052412658244639629937234018444858914460895503801222582283166652810551313091258263505086788148410702319594569200137463712072702901915156568372895905467475490081965842087298734574213783007976923013211061364494650878408792530971869959295249336578824710858354907320281682911345098690635468373112821773324860179129231192403835824942772468219959362759898051187553521267195598388865863829813626417005402548485637134199757719165236618661754253390201920398275588816132380760272861119190819677587069443673456335860842112685758935602772567644993852165424719581899609808449175859625231490184803364427504143287845651325768131840499305545238963473388132864841722684315844424066560487843207592775576556141283776430259711888846163729534345260410075197258074637826676924741507729148480423874445579358140917757960410110422746182454416090127776566585555109647101746973921992750859755197244530217186095397025460582149904016655915485153139223991743086693632906985039649934390452484083959374811023102897364452000306666175341769649780837674350993884052389928301747582133848747314533648373332596533340411174310471944044973485124243046796028089375088326226647412778484555684752817925657478680696451083624639465831502352587134017182006350668804888597160793295054549748131531692239513045886673633194280788022157475734515862552195138195039167906141794163889803268881799070842603879360480146566900907199088614318273212419322784294072883871454891855136310643079065827260036682610424196559451828562045169313936155610076786863884774840423698236095773696784816785479185884123470724136361448433903047760046480022418952194463008647461029527502993911120368330057947688839249298764144663781145465422332525461778824176501808838411231398667481845641539941593455782867110430672702712719075203409988200024280957411603058653537340919017742975004294036876026367508658049823088824744481524890858211326370959018755925658807978538590154577914550614189851446058984113186839702284709190502501090564687739642557431542827144785724493325815176323443401451831579457032823438301741188404173677043867047749910382576948018465460116881548652939067959618996304398512587656318883320364412423705630249428730983580559283166837677452098329792946038507629871877385935294049576242069811177039262709796238445781642622120503246669036379855996248241010542737412931391576566369275916230987621382894806772866167642148571288929874733101828428178589383687883836262699883732002880579400211916231398804236462929577979202743300463048696564818639836393144847747993921483181770852273543071015523068722003402829075803467890029644039733655147720598117425244330984851199958993966999733537575114281650234620848542836643993944979649176621796653516033833278585499237399742595606152486565728749684900551184058221929881276262556637334110798555152208542080189104979995085661019186839522708601690124251334472571022359245787839968778714178795484917328122585268470925086093950038896721619648479847440529944206317868050160292202235208639941100363267092105225312530539942503672171643990356684970945776584753638070311332017607616739925733647063978282688885362421974215799367558965383894449367339537863123855928644727772564349028169207472014165928022014061976372073734546350387077155020325482569255830636683101579097475419885122644919624466798868610392280525438196201507780708163319518297760372075908850495418756537165968670253210842003806250356534883831585610857667160676622777598367460256685322132240938673190268971189955873891395615584512328968902424351549969316980382721632992681877682423587768446276395628600467231313024127681574055654544347877690101213789099077958127995830602431223084533932559008593717539904237621869779765885795784090333956981028847146843153950282518662323525007895414263045295043568118301943796196854006905097383602591517630947581107179395048127628522433940707662411718398094331692935892733056787278937819020956113648616214818449764058351841882974436126570723832969092003108890676055856991205646803114207113433817135648455401263367822647529815419131077740908130377757147319011830503540007281893466311693573525850983800198673483080232118067979629752035009349934360303072528984026802739045011825043269426461318831802134511567127448467178020245209340415652012665083740370156773569011888778763727784911772921943908238212098095176244240154209635882687874208274029108979226332018507098860376171601164922181568202127449150326464568716711074932007135584195266807207580785266600411582017508916200128911967286397742558289320597882941580819739136036264327896757785811262309217240943076474414169410128181974707154593200577562764377352766827696045364035682827113821589070585573013607919206753035241117793418951312969875075132849718237150481097095926315221509681153057243193227404948852378430888948961042714475992901876447317113233548464951833367878918468981574387021859784394634139335488967660709294506994041619220101887412260447200635816595787701132500484983356230099468525886147308659211927641925737752135510677757627460140443717440383625658382517292144557907058658915615233448169808999521143030659178649409556895351904576289675575751160193914909411814967595175703873039688371002732870992288046013383048779954644716363767051264189223381277681956793855990949871977214754507362116498264245352920470067818936550456567322821013401549954462035826925303561300998088002214853860739182808731283057852839263270838940661757155803107197635155033540613059704163393627440219600796989930476439784392475207974859584777618656880301195280104898478138520123729726672956343240644709425958978416724415950124046844806247682023064396986253596151780624863859329304726823612963415430271274069970644284438777448380364335202289985694515777317479922731387314229052543727135607270526847109523196975559427505180341807204589225951188677876187261757639568765507982812645089169062901533917968928711073633085494826385520325683433497509837060799461328596553353946141581055001550608182830869354523029461600575186994138976327036027328149191298986914393829850092076028325131936034407333511456772479534694208296718580980804028603276762449022499103510044028438731373049190300120552636374025457244301686317552876197671453966260059804146758590134939719115044088863435602531594474624669896646069139740115285548211227215019388503952828602064212434421370827223654313375928256009346985437410823417170445616381240373602704150323704410920590226845681487000063090752569858497755968711560295909577439071900415598391056768093669427656261607658674349990695141063078895774127570478088760017834798149380351580421337554082257516530677722524780670080062819855282057556625898887464024469160578642612498161829673991185412681728995015912725440021975037626675574536109428149362952073206644056442885309786645681679183950196067057917799607691782125366109125611651303724171142189100804803022583240267288377469569469266127787707757630533923872609874828810528173463600799408149761670058699495461877167026377778244139768806559510262797747537248506072966581774824544712855104235396784575080013489296445928103914184675313106256182926713427585918742268444151395974549769378650984901358037602022509254773696387721441106464710048230783072321711548796719115599953363879661613068156935052748787611985327622564362314225872475308126896985129653947578086274557340627321321048162275599884303839594867251577051110505816385274289592199524169277827651269153515036398320215802704172198137979078522330318696989649649405833553063716400325924804801181843318083041554416702471814428536152667147646551929344341860732785695494178328614771308492371798016520115739050332517448404132121386671809178680786347735851906291862873857364973772776773227935498193378010107091088142564004426741066289558220480487235416378030328673091524060531917642740040899580467850760788266983905971465894407720397833777113493007150933062558371539371005122598051504895550568790892897059074754710785043972197493546749148616950891733254278579282884796503194590423714600466700006040936594750319158989141474967446333151676144155647117437479267235548672560918539737732427050776529328449511781839116304658357975711503852469354453964397315258604251387277065942266999638731660620806792487686641856275492038338151834435816709744755737745476263355901408861160973410467612280745383343506145165916742870788085063863639724154520401339074092512153258619434829702256670750075739437768599992744570654375781700442297954316808379560981557003114532979397021885764062108982516056779798107514407787650527847147795119829113562765211553920208646624862464163677912413172881189679695544468920057817145604965478483598087241041475402067852834264073509600738467584533096250117330591922767239187111137002948272407245322363745250780655100131998537742890997930297285638563615806355115642620771395872092097529416144252806658297181241059569639135885202188524850083750087601795960175578041309877663955814107106906842816392796202275002222039842996577316737945662691876445972155741586236838839123961509140836416402370299663785149534954896880840627103117782924818858777426554696621438308735327910521215787673778411809366392579048333679378784494226234423585422477496828125074032190579259913884939419575484123086899184922581218300820568978928371695608507020505335047032936028859341460608662707048193056677447098754209011581260015475454150505884695628139367245830980961807895901660337930551430422060943335709285335412035213762708660317971116197965915326668094063760893812960812479878996876415856830644736552714229451039820415779353864948240871018388118282757221772718325659412104690055018538035397611144788788412378779930438827563185163219417194639534797646145649583613973596380327570187021383696396464681619054338317830206304140680786507053511548615669511786247492807958234679840978470448400235022789483999135080516172280571815398947422683154369250796079146761946049347985030282030312022760050812369374699972066574767216883403600046085601316910083520617444722014727685823622816403222309933935461164472884839594166876053840263527829733419104039519711752373124826940995170190429325570070085944001053735365553857366437553496728140729942950375363177284172290623469986307294841340049730268082099472125709153991165096866818693740475195738712348648808728549009371008122385728069184139492640036736952327014888648212898776504587216466034493907704713065150096138982138126704938583782324925082121184409233326537832060738730789483387198944435228138017472612829448073867973536219099991746651728259749495683623046546334726599512634009240320692240143848803551022252394868246857907366506791245688557914890082066732784850698776782924713614595198091391141657118080713967005792730408623694680792413220930966702448985055929835607425468538803983983042930329865764094863081833262777959757349569155406412808126232261422385283296839834689209140220694897118125496281900447580511544777691219305626538416569363439192919637455518952897592982862254702140986551767853122156880850446233261563618310601426780607630030122285665761701579422890295954307555137298815297140586743033354226674713616954876452351145920771570118807374121570399860137107671379963409363010709057275359034145049144338052381699464013253038353856376277473001416723640846446941030467831422458821190538460200770249381491832206016112798334855648907648844988071805607962403994589426821997251616017437567167241364826441716671169618147853317520632440918629569278030093361128131591515532039939688589156094607565812729368328681709210181129464684981132627979065356251364374673689762010468903133073708981489577165975886567548825961792844329369215886178478196995658445407052525290112488762552812411137236349755856628467677140121295988714450487955718942389844238234421645811423385310406755247825085931171323861927065186110466315457843803787466438483123217654670089528926863441988033834701066732889139804034915655035612301812164663907075730079575996144762891670256152374256684646830600973611966562140920389608973455240877408827429009438931782277119429636529078641868107287299767278630754614106546664235016299401522076464788878670017717202078574414887903223428917041472969161231338122135688105129130173152379016726949977208050962581288383169098195702265015647812732693302678291202677132207844207915233646746544917190353132711709988028170879294379084771390910326508246659229022223512552567705790843460607643281322980553842014215385001547137736163581455839990875806826145962271432507131853132493533025556209459051777669057056142815705044385548828319702420994999197683644869840152745439321232108980183696490188105834051638011309876732346408163204074416076675661146954497962502943708074259872948824244239077259666316633840086433850724402984723231211732632595213549712115824299660209968134008308199888489187765820606163067164444111243737839945310731324032588007839134303664314317867326101332338965721180536203320242290333666729241475129545711395644095308688809655201878932379592298952319167568990957158164298656260126354876776948681534645608353000925806663204359031152851836359852027979322651665171885510191973318144616157629943538802289500821038493491584909294979951650052348438753575286044320396107720587026390461122367601771708011173237636502081743149695805773653825762206782417026529143494155325690252904014057340002751582459256154638278703420728489448447485699520690441454209867414764456430006774762661272037524074278776480593216422322158849595216039751526639379816464210325412303095901875940964691952092243946940028450398262193272259454538632413109821492929629838645465423342244437030224674408831164979084283722831216367184284311639479956501215205607929675889244652796639062106307816075712516805170411737450966311539728671580492548898245400556451480443830204448625640057663297175501010716652656593391187772833099366668180475464731637346571844954447674106591353062583907885303458128143670577534635071853990019168187040962315369528276986236328161555296840323802492049736865966879405908223420632789839648175263038228317863513671162192282830249654462544522158690673826486466377822647287839834040829523899939166450772978385193947517204040681051001161020207393987714052659918289364065430050825486559837975151251083501484660174441429691317292000198750060803474008989897901490746078761156898892800388565557095402058112065106350854049803891353222289869667646727436855413148838781155524703702081295740292907205688085870364908055985428635660387064268497126571477334325095611220172063685948719864563985098889678309259117883773747499851297975493933635666109260480760220073692185055760205109009894717423932947046280615116959356976492365558261333199671325950202810438867271067922918902459861752217577438197083557254109165101972080899200473023913807109426422269194429065552524993808073746525904030674142792851390678819121812067665781999197247283050477543373953198317138219012489125973053284734372370950534020541262723325720020614396616547360119794245420484453084036365649277581318323713231598027230112733445805149680205779187146029084387865800478333549694583942353754251858390858149901727169384988182001264010355027750734837987940284204864899560596138254030568505417452140789566009343854924340738659216831916593457640629107587950711429438697836106618709027286911423652502064645324232799504948847142200514199775030898547632679661470131286493128061360457346031112245601490781734729856975910907381094185013784578123819812908369111829348959102384035805035531065707431081961313209841383140693774944796803814425257744149585731300083665678916388323853399097860585069427769150245950956487378474634595532486388619168799290554697132409014065690464087143036486585080084432014955452523055903209003839568732842717783358437571707890483563222876515720436373854423007517421677841052279704378048249664418160375350866284795120191891190481755775428480722387546611198835976080061607099487149627134089821156229938472257627920023370513291324070928487182173650306054232038288794187217981928249455926371717044927687137171315760476140979706255527890895614975590870752230669819086965890190007039212112521490655552184433109275439083111418162213326182004709064564442356922991976493921177496783424302655730970915275653670438239241383295670695570385830446445318782978048072373216055527746973282989313953920012053892855058270455737878740806342044104397188328140906035749908974135008576732673558401274634458791026641055216816194013221715602708530515840421030838623021452820188722569321627506899651927824658028618384278032852348401497474813775531684179841432717317643468759492725877530684503595956832037073237106021144936533020734277937514491653923140694411736255109601276132802201768955286074796549584419878251264447573456030356536203182600789678987170685646417700412295195950126877040171117474644926239583077513428983719927465458415574016614272810090285457635267007472775662834907103630339227304618649830512714822029635899121888022517613803004120709088826308303527601409970850129091193706476661008277293368428729538690972101094520576612972113586818963828647669296528762853694171212971543223869573841925057585147889041018069312594192071710666789630151475117828060065825426822349182956729920942729616244869179514056648854677545782677494351558559555935047775557311099692315352518969148574251411351345220106199303830144542018409385348829310793602652347822040410385159151380319352634015276895316244937673085949304803657797511855544716211107291295250826141170250598072217688382607394279155384545981833415339509306243503287155252455141552192508783735316801024160355857794649618760236064762798809271846721948546002593690455238113624360459044604217429990916523496010591565146044799419447779700126124677353764530123192897213428712965173393638664307334680916678031510814775710879038741581896802879989317475764626857997706346739908383924344560189408454859531769666109424488112649390101350009677153309129499929412649666156517019543299636462810538461730641980564875655184959647553496884782314643407658777930017749320882202146801272234064005796916677759632726247189760619437132781759690129443306225074972633945590939626982294644817254646598729544879571938860031894856177348276196113345897649837544635094135770947331137350254030697546972980683541889718044816833577459291778671130120347021923107311668548076607279279701842932452361405343888371954608479401211962553507996951966355403094727985374308364140669662691649700052604168015883029687667152292047434174185333196707664508594159734843166909225578612226179661491702066360815579219543434042371985457568853912750085265658333722544519126519126752087326782109909242732587934441919081744948759688722746948467875666283564965832647799516258191866333104602864643354893886733986873534740447847389131839901987206584747181508543360513193614337028258548387006086823018472647520561968561487637094521383445861276250482878553219732836049650869086700561905751762232603157905249075216995434071806169713003132537187554678392065767120130448258428173147954926812536950324147469974920078807767837850291206127539084079263551822650305910580559922895421828245774718467874751105130896159834213523174119739667130458425916069792359486643793030614325798661113846308268987673295110277252801936922877748582375358035883664490750401595860090924999294840860272368495813177556458817278552357798564211147490987287131146329293509358100013966050175299835660145117284723932813917183636513713128333424846818529142988550069982707832193085310623990225760009367067690162210196540027748548678962290160446301136516401385089449546519472067938533962901650562742175194457156074217003509825282689633753510096857238261806210531209700420349632213957590815467911110901108207816483031065841328429966460917897933656941304872650191653542955909752425862266488361581854064008215851728599673349639964438297486465751120490138726040142226652190841847971662253657610460115290218832760629631185345487890424846358426448067696636822374893939541930172787564036357672141621677720457070870090128782295471305294512869497542507007909199217191178444984700205271427489676037215570811653330197437340872673341170298696416843590528473379862905629034108685858597659209956457677883567278886614168014043324934472200441079247536323457636003388714402153188153711495490933192830632952621492456822621807101128796045141072552440792959602950331568978456710707400600725050255927256862623968300458737886414108141530522022689344271307293582657959684188020180921513648232224971197871000397609952391701094490670760590444870589397486904094988331308241925247691452635745541088961077313079626913101098435117388544815980283963944802938166993352358231847741647788442152056194066356551209853165628858203455535219034149293457042099783957886224105686473529776522370219214142469032365071710967112227083596038874789173509202273042422242943370025546456127848732674982202160190843932147247472017817915910445345676680463383900846132707935353166878347179845120198037078422438213810138901865295656146015657266338838149945655831461382089926647818406004142897420577830807212449286000555125196178675844687045379019785253378149928003250528478245292454873048355821110659459738605981865512823535755118179356514838730637291141340992129001997880844481824176438120610137106211785303312708098372863812081143636621024212676299392610095169351570247672077598391462518495137153648391523860704314569658529467070705496806932042015297035036968176503815875674895134570715049148976362492595925997784261067385450550500946028616005369298178146242079871977485043410940805740749471223377536809533696836832649676463349913950342167673675285039956210199736284553460912930086404146629177278589806346963567986932627149103781984935534340840860073112675931564212191536739322410961259550591095187130420914554444391734289588674867738385121282129226085483135033110442162753572901938473661578799676109831378880169414567677747790745256011801466126951304193473756888346129008570806333264980242263003037749344841315534275977217786641027432239745277254516255557493065921400147275547827224945192270246026976056291880148786476988808280431517311237443131348030706160978888085703528857185236718363341102588378538999759863999541490351294223706262147527688945008669578678567802051135532740422871494512928695705843559828557214066672234066404607231105489487054996344449483671515920992203824910680094504949173913353911241928705160851106184639001590340308102422381048712706804473519707721224486728023851265001177803429002657786040319338925291594770308705691251568401379331774941721294102480453316501580190351016244278129054156312744788770492029759305644668406578537352489821429955485588302559438302577305270355125493706824370625515601727288766348163372045460510730416390236771630197060689181928452022832588375852152021408089721527395344942198870244229713480562723901372732906709760601939850246332529894850907232964428927700530406638093659370495160831852489253955127838769821248902189094561425945460652832056125298082853308345008359654929466477003850341909311086575601231435716721478319221529384633368069626916515760719524078052160821564830006554589459523303170256425847202675852462773833729438072319277344246977418150510070691176029077176426868515428823880614147693698582513225583583064243596438975125285138681693823579308936398180211425960046556013717921567980614082552496150191414469181126496219944802436859434095443250880543796603733920761066053845452843205272635935191900048745156182329961138484331728871752577473998062560158110170423126462054108828479175491654483725879601506133870262859021488850157363087127078994182176520819935597617183709152398180766124972770919226470788193651365183688564500461173971328279551192141780713882190122972332303135620255548132353153823346009594738291016657956203625875625778519550063718790646036857777121107616423631324624062195904998463341389853743575741234445855319407228309296113580642984666605787467497672018957505542363673070799033396248014946376214307239937790993721149144468052271570047271118972744489566783199864590467886047216196067013102069453474120073575935212215407894221921064028254057991367956261807020670260494788677408032498928504326618511288497860658272424784065276455162421693947445676820107156083282543702049049032578894794163343369400768358766008956769393748012074754147930158100190607205736770641115871167000224409335005038770418695755300205916725006861079075609345678630233358975086413888783116240682664503669870621264291352155508145567550870621368532559173606939007337878026987486816365217937682068493565420830746791650832457113697092763009729640074760454997164497058336726712206171672049009154720370262947836072407688875464995284489838779874909492995230642914208061794717550151845394131821055443636044801201089172216417614408343870878639070598223443757258880393420052842713793601553137826353794307687683532862046764845123380789697144720067177794869348699126360160903011444242333628904241661065450146855721299903435567717341525417305042054154383172583329338349367769557103763420535995180787241786488764802414827971224179433090182750446227684152934816726504677710076273187314054966146804823025129892329927281864720213894732210920344330316173249555205674181672218102560867552591412258979492690646140046965531005189533329300289408320992958860040794596534699846826100390080007993693856779342208316798765440353777211927254957801480345317567418514221199153617443000920942095158752642096119869620927968184077987677535775902322550439176507726227185528306658730155403845639758910930127655970193497034935262373841132516607083675933029410341902016454418779255871529579429486962756071199338563794543598815348066101432975662897655291585708300978159258520831180396069336513976016807086117877220596696073806013110084743784788425767464527009763566505332577871729147685685853152382613845070212651676082066654413804097457469049152825527685026453841213431783001856497694305454765462414621429869582268140490378551369556878053486829268699860990031657643817215853872130939118463335552273773898982293315491037182001101135849376896757359463967772890545521496442159837364984932675763435470336887131220353695593451493077864696319972671965236776447006445779596956792944900007145647224423674025590215366255276593810520254828247619559559942797328915551892116923992013193800225690305198245887025873772955867785480367826262437547894205063143769657881858520388721746768701794355709450707905572086218208175946520672386360164794995054449600947426932868887274231712769283734703794259739322031632582979914514637566405466553110244543959276050028412827704916322727288118847019330982058034824488395714370987341124268846577022531208911321192236202319460585500713359256487269972108939554416462278150557270277180656528561906574909813927296337803753818538944438641511367695328880599298597914899332463270810333909996839576666730439793471867267476184688801652209782904041732703719671375354137729555867120916447343073775403362055463390018851086640170645852403507651099360549349673036266112254439392886285098184863646632929301058459282938410176954528024704713201019459373217100326350386721963135740699880058332765792375443281430133040738293426735610394444594751973123465473873691897638226073714953853153593556954328152980085149536530194142639054836005533254006746602188407920188361167350095741687500391704576838294110727813729952168971037696112613560692514219485339434626936514630083694932163207041556286066625289268762298727260107906778573906767241602860792492420269368578601396742394484203475415937916175690982632452578652023126108135006882624012353744519168678321410785824666686917969555464434614251642641795014565103676100168275831371754641327487358025467680559092713804686116938506093279085664777312033890750152936206798910502595664307491937520658499049714576573147058527862198316165788725013629266101992850050632498589027841758959152194542768922922413652924971417048454185098873393740915490268157256288967708889206096053398145362236095985400284608424915950627265060670317268783127791326117071613606999811427392496164892197125054469776303316619224924689933907146925302410001644306483574765437247175502244532456684215410376281644310549049190978803528941341854274655100812774065971719860556435446162134881562621752426961629935172591401156539731690643382890822947345584457827347082898722449193219042468942683364121186474426390911270659031695519386381715565414756666370926540621979250600741890001250265962246576120028725948518933461544424733749527606197754057115735587612186331289734352046084473936833931993724543576480077426231580724250342563823008877101555928074151434620593405042614573261749265563092688081010436796479651624910654385348471772472946048532108603523671439335889454329044626690077966723456126564490482496904246478227816557267568359941526607707618416685750148969415704800311725158822606703450378467490870246604550230855092947182512377293906633595016635421678897633416184155241212821910042465032858513307515268398214755965681814540074594042909639135809248705800675938548480265659934423483703326638636188789793517423085946472009370785096801640999301344898368050076506511583409278454021724290392060353439204051613756052891528076688738273530219276443823678027057647019804860885909988806284685830278174242206400700451865322830631763518697743293427007960846104575543772635054084164021425041436089628534259859853201231455776714458465659313541246589243769659441684786222770206876868373142729483363483415515827509229221529026978728800710014783118435382630309765724337857447361007708629732302500469110011252767907823455536387973530096166011867445844067109165852856009531158885829659716618679765862936188537782861522630417370964187310553341678356401754423592792728289025410858013975518034163229578843668461028427762459963719654169946936439594668628763074160376298916441430268762173530188973404095970283684521449951189428337868899361618732593600063744970695854372799265944494161630800823116409519206243167014440471870606287604043149631766067958750276108244709314780377498028302294521121290229939149560565960675454371348265614719401316099402257218642072820304811987709491976104973007205216617111021851221219134327568656896827236626933456285375456142522291218718240938902410260321954460920597859536953373281734897944073728702277498407923665171560400547439729245737721675881165372872362643987437180096787214493427736542467401611715976935040182735717531906257685966440422433945113647583237497466711014075566139546955672039519976552503275992075761883460377063263370882077370148545739714377011022667107091739982166595605408567227686598953658705221737948957881804082807521684530172346707398747462961257057781042071549104532816854502684038600438450007639941693378882076598922651995505953558974503276709488261738278418463610289199489485280816197175465212903032589215140718659056595015372289004307765375378540734423506737284943280018315759841013006958681717608806639039654714896538101016059920839398890538444111458730619477083103972051322570635102423606543797086006942009764767555069307722533993571330255899756637717352918312826208736789792760264832242409960192077454861298117201207749507102322627305509038601922603886782204344073639524698086833316479722843302837316311696696217825545016460716733060560229075443730884291427640325542278733712927823548929504048271659834227674381446955141050408863739101786177154923570433212992341552140163928765193689653229776660478900991087591698189169332764388289288553613376723766284635279306427975769707953278088481111020238678757332410118707732119372921886916778120467024206966538096767790495000512168248711193284006020226446484366738390152360150182175525435570908717415053542498898896523413939455089846368493472785864250333941605441805737419751104181052478785919680971297785821686468096746538519235723207259739076604619420820345285123991222430675191190177604657834334766544886560730101296165729323593121951383476427965411811448358372418616559983354318903369734292629207756041526441802764635519621211349944448935455867532620704287433770848990484258992551563441681125554644448581853262806895967765753867982508745218013344763324514919081478722563844945202941968491146262978659378134306817154603217568769681392782676422123594704403429028467357528803978854504131109294269357001816586862648248594024666620822924856596275299690234671748318628805501251132279948117647372098304137301292458631585066619165157879771535916511572571553181913703381285705710181024981575372210699040077931217916449883939924705695976709344369437293404158861252429114571503931301810126510887968537271351676339131545038650051212599539164784765932162168065719922366760726043129567187376925927037480117162087882962428511672838965880455770842749384233432000248105325683730405509734888789324632205508251996591320315074228853527652781929035108794856211906129237588328573231111749864678221771037035004878685138359790099115772229242071867720923467039692837187589754219194425309639776661056512229016079195114132905881492218648100773338050621180654045785296601104540159454375220016084782122659803462279454296550755006315641582386795243764444392534918737244693340678855828108578916885076502988808218046204087567854564459596833596285709899670817403565616002911642237144477196250924841604112093128731835512877185568028175045907428571548818500697043067627415545596264999362409241269729626596872275490210077278446962692221227344919740944166836744998997054268274229635112586887035479659925304152991601419967398157223750219016388570998812499871410504467038067724074557933084929136463731267665507492316796432362613856294617701541488937515431341402848904143525604470557853082987173778183650446419082149054000233137122149425784252822472481334882755005614419456744497636975582060356201112764635090445581394446492412359150230481192636480201713723362782957938770646069719302221102838233541816284840439646708754397863656238369534315044040004992445334642501897042398276121042132726260558341770707953664699771064824554553823440580653228940669603110035729132868213295924506791598867339087973253558116678792992984595053604031882670719044117304592662590189514149067743450225396769657748663214329888309051324694844241386731483387482881992902240493566575286825978116929188203332913240593062239392738330244344313257396930173488270643932184567226312575688829365673889493892264806690488312822622739817312351308078597907553410118424692263845699723296015034946935102141221763516025285543086635586891093780676963423635468878126872535929000836820543307806676239269054035565095599293740125343457973789838238692662945294536982883281950491870014224353245494150707904910125728898941661879002049775042862833832618700177951100016945486415030241575404720686260674540189385249674000823392606418015878406622867679506892633278406206413505164524149185040615171839947976254612833052696070758039799318523977624600304040315636301261094401684237190059428892782660838633024686383638975733556030937873510170456211289654685268673605728669914515925420403553763012193959405980341539689821629406768501095280097309631598976461507985989949359604459475262060329241955429217723225431953279710851803342269070554663048841211312146046315685059069897652999941076852479021795500068496708337004443027140748931620796311493698162166551199749317053795330784511203807441370501867620687696069618245117834977589032712847746173417254198185744198670998963028104117642339546361912696496545448382940241401827298734865310966378197170849386996988101661500001699632749426955541404966427125839823156002709402610196007706148014762735795119062295928864979381247937278581086174439414148025791040977805104954272192384508518826037789542909941695338174966951550157527218075527982832356711968064197040308949785312221874527321344860452377233744873483999416808982075276902385114810307042136766734875898268020407293480632913149277256464464355276433311018900618392979034676239060689354411897642046251580047430415547509396467420913992254036938247690433550212387711081777395897485378116507816954498936962600156410194262792583329772197745422209662364446882489361408544379115494618114242014951781861148862430578470568643767406045104576860981309016874065506392755169543617723991000120422830743211478068649712779624353493581950603414479137176949613515363948859242581725916422758189726860112724502203066544299298121362257359890297198449371762080289409880195690236122875660471809176173599864420291408649196682700615010037426483776964109042622041685636508558900720298473875122309502556401931005514204610857543024693263690425525527073292261510710611689017455901852005603548872383015576115081087308095659698689894642658573530758548843871434978583806818385158803640796709724007650396169830295100740102875057102703860934148633979830672791146389127922572707100849496984026842854325380465838654051856976763211704814258634642711706359613068107381888594045831407383236078274444770470661892631934602900806380172142380763880321948429273672039122894680909958852653859523375546197405592745670846122124665640274856608553078722663776371930666966145276412380047959555959884015706041033626838782805253622571072463174045306975367340214103943322764823292699851945709344033809693021087379603882766851938175112302912265259991757627030675836814573740372888999878043656617609467908527614406954829146243118517236030850066141576029627679956215269462031982041197130490745512559799200119320384656851876832825444086754438201817819152519169562704711340719004388976705344420708976969805711779468243834213281564397966477440113941448959571956955496424915517470470842024931724316955760280275330112963752964705660386128951468649668438484812350960365036798902320295868377312330452421638578596841166249437846725237750488861795498344036812084958821540121930592524281406986254840713718835354972551850604987118524020458051145639034618103564774366625031259640782654477262922980206937362004199166901749755015193063117143978076937800323922925874830087037405981971814371687599375905219629723576994013640494283910245906725975331783423343298294115664536528146144936503131652529459711977969174913210373298399240077968659825790339528485809954715333926669470957456093021615753650119676890250133888332066535675195684514550518899323817442702426290930581876884724914189177178393086521348258575635374621385451983860097287505868997046895574409218181107122474522619014962397442809702935236422479909226672167810895956973982012433207715914088708266572454711469559601027346775149407568919927137859768772974399946815162987640432179272083296522080789792774700194827042286462448247834299871563185553466509295067952912988960192319852573615039924207228069002676060593645080629617486172179204768085138445483178892953828232683113297123377483070827357911559749478356060837339413488216432949916763725320307518221733450778660451813773810285877003286833968623086952950914640163438524427750321612173983652118416299096775953934625161971577840932889105800713148717039769781234514926309674356817985323490357746619561015254606009118579613052750062279636450468719097052808618476288430317353230331263679203066017841981240750312499951559437434598036601476621154211676025060782362977690731242105477337490887295127867930658542223633256793038807066401124544393465974273373678287736688696009911725213428778852053338492861318352478924455193530434329503754793734371292023829364484328202099651472639088826990931367443962954601698558276365600593521029492374527540594286981315511541981073508325464968553471432162789033721537369434806469410814062640374795141268686812655722898382986765931947046243594811144733438621703610813156485895215482802352211356390500424480678623384618642938778700593139588390625937605231145076094328328444474979730450752040754253520198607480923411868065222612492851998843024689703503475574111283259221086930486218448706668604089973325993691040897632680799780280826121936716577595239318912005961070814562836863140949183321178087572611232009507370913150632051191791112109567295030139888727010646030688084183763740395406737158824418604410831445513177268221263706993577446143098584030558992187688772185086733817698781950230863825595421535646019305547002200926598718567837257665313507986821900604777787197110682068148787287127728523373773725998121563036798856190092654652359015982051791552332458665932297819899607639977989949191721714284893836711828022775494921794223544544244050262055186906640933792918623119886752246689091797700105920222066550212137092444947843667352873947856199255927858662528514918532369892664641035640595032217577984238878230245062793152675727550422285177713382717078962713290484481951050432075201735561865872285559683227687088364756762107701805693088167557033632484395223055007846670832382062942062007932837607367015109252956760313616184594150981025087211372386674667109128779559296285677153512577006566354464004337954184373035237215003007110529853504589115742509273158584626142889075187489691977410995260292190473958737161061141391043346177751713424306528788522260778982011402678791502674058873761282586405491097010684648763220335052483851799614112339698199673089431507900126684561241300221938282233721765635412154004422044506097197756607811351950421338969279500102670246585700215604491609983760686557727335255636822390696216869455204179864042176569672396955942599720744769028040576630312023051307550949755579624941177126902345744807941369047376929902544148376343415139557678428116276793160791334603903660851803372513719866877059068193674954156974686999971851671676725513207643203890809368090468569899978506047707739765653523393968088641041679826502162357193545220001765716471114751022152815305229250705003859183682021214833856001882995113881881410855914447060133618730071147632039679805918107803800875727303158379419201076706622613270090096346027028593337266246900800559470146802253263140317677509322150734982463583941897246250611633239143111107727329197383186929428896694792886083404247434992856432294354379454003952537511983769852104180196222916916345073837832076970910913153691489091262567762496615071305111318626860964384337329330450220268546827457682514513946496937666893017484594380164303839521579735114268944560152753131716608898029292743259682006070932159793667327248231975919415888784791369454036129978396225211252273070409085098038652380789370499816748654606358003852928371313592574229022815771540832132680217382393865255145678705271198598362693261098844366991054268948760758833598686730570747803232430698578970407376820196550074988119323914120554544792079050832040765725309623571271616847647443754721959061853313547964813247584588326078723613269565934733441562769978473530465303652419314174452517507886892372376331298101461726018028261492225958380620993367390800848582865919318731414217723338270447867304970979246251874064051963812832748392699174344954037883022284983445086279646221988177461385597725875410307609834658575143301251602718331036005863476444447968891599853044776789705472304687548824733851534547497951547457865210034932139833329520753136655108493610718735236870594976277747266406941146825289269493806203896908321846014380472305371109488730645130375689332463970743647901611924430941564038500916196725174341590112042477576313729119469205129117010683964559760772082793041688646838007027371833772650816746545778428900792606972580105729389435877800790403657311109430331641190538820142318684797122589729757457351852181282388922331887481860224822914850329258629359474868904603890722866028678731916804505518415303666606277707203480896165141725027647836134207768189910218222471466235463108267091473769278633275201781305790753044889755707620059747556698137704283214653612033476914286918010331864175317633834857563636369756323798499001557679949497645006806240916716767349536557925707592547577788213419970040643076870108686366528474774106853652721680583169194522579475428531658706658609011412034038558915228388029109884594575039950466345039495480105318585554679332313898264542729593800202827890586085676883438479224480770058968558615174413429005977538933883072993902414185254592622146513273091401907508717338959472308581853055529569067830410989994910053130820410201181040713520878390118677493457826957853541200881603633188156111872908040635887299058732796655500767817896885583953118199176392795728416465602968855889627894452349641287697220911533348158686901262290323090321015846414027605601400810144856362599165655798871139887052742836214510122951597635599935130363584330059172983730662545479627462540491697368563190438523953050491839634711720685798296058792213385291799804231043750645593418747421773876349122951135099772177992006152638303546038919732610758716165937276736184346330156905025063943978143586653936175894245310326978695586158921589165259859114553065109314351135445648134192431252163342289205749236622516643321946755207034457566376893840765937632454309994553631343718996957759917058322612284301337835726667684180784440038929729839748873509770286241642970697453462438336598002780454834423699631824038066129487421676417496681750532885249249649283119837967701483363257234394606920423012652713734629667289905695836402010814841899585420535578913340653952800151113886931080323948940697528326014991194855699470689327427089274636812128791767182506868479977124295155453312934038138233939521659197015505431118241671612311268647371020480495213971148455909871557701210588354905543144598159644303322379303395551134365371848142825470716414326321887551688015288520079634203773056047067602445213516768523970260879444442954416608775882644938571973959387933307866486069601070777179415791857352173885274193187705394768228920636691665007880707128769090399039543887117255473028993104516197688697144513203267699486080519437514419373201984239483127156989641036011360088968129632914230037145729284246525394764265751783721431030116041752785052007561022012095952505835222478961071468486559207492202604989065579942353277987840314978018192176413595019137506834983090762267101682775579444549731409974823830151208440506537016020799403087090474528402870011772440460172019172612704009454558370423040152054535370631722536591628485399454514237694248626801649591103111183243626186801630127223062415389551779132581758138989049181464143650230847829452314838958755625211398148119590487721396974531070232979550750633834377018636898077587019402693341246102595381368328445835279805678712055655663607606170672493894609179815382005683552360731256633710015265247324805938785040872923017067278653910331678961242184827166243881329805379033845140888884427864501670946396900726919134031775096331524095153835369095722078341405397827596578796201254438550726557353764882577095443764593699357674468747098042249876460343501025398398196720749054077163291830499301063100848524366544614998963852137823106891024243943723332309500177731123138666966605947425183270437009044682155708278094877702394643451352205601283954015764620965076901816418132237777705083726459480777034169561686875723061227621694915786055705329254233887104527106671617148576589644570537821905563436720794581636536078190339704561140279968581903576660362878126152793223892781435541839908521122862872772555985228106809017124197262482814558252414461681825757919881684588623517576448685135475335639711753974113371917855917525676592423916825368921108485883063084034541908628158486493596165874439907056604674750796959113150396732289922910596137069587755568768249401950042404221792818415230350328204681537376242572542023087640557547382723630063614912742335235848700407170197777587669169750573614344921855251571783367515228003491744988453043584955383121929925097987289422231373111225289711322946752000087550804769510877981090116972592652168268563032402375036194713542001440181103067478948027598501633682613356348990526984928400502958050149147024854588928719590026455543465694795816542044426755890102117044354180279793980264867873066900398492003267793785783217800503148605841765846092303517424093994896377837477779386679797749684129402388745568963266298094087622276767013401075404725986137176520578650397779670974241936009553087802101492261321829405204680262125641959815505354668095839695954682262717048321565662094612330316368834397851754846403970904680274961603045512059234012857277652021183186598600438302187755680324718010683538606436512246745929192241173250016061099763091777929692326144686255996125495664289956401370416990076552168685660762265669972813702545534025275023391859729200797270110381551205516572605383885360406095869184936832473817927073952608425066052789542313985354856487019491164990791769808887389634714168764734448334720042114556301132091066808175669848603603806879215460013269162843830974449279984826015027946601026300143706456782676631848632189406293027603069898714986035404470751852966266027383166363195555056323258949783492840737444104600513341546894749871165869521174755594374741876494811205295889628236268579943303777639465389173217005123961574914414072366091801767573774048221299755752841525522409646361024048372875424286627945053440882403825899261421710070721152247400086133896655874251433486516919636202709496315224745197730056302271497223197562091475828460429114775476896230068052484883290754836318114831272754990962823637071974159320519756483163185884015605915119246996323025972972275065880941574615287439694726325145520789805347811600105483662397861498820895561745843787104559487901361922956461069265695738526860717831124764717972350490969543947191253409429940348417971135073201359116699181565121533273224648555088391630959810691532809412236173529155117804125129848959923202090290449937541706194412254375471950977557524923147987198547675492968715866540395665797829014336828732727739661526267547866908331434812264880289875729787346411745491314266385987200910339018261779228982868432998841360002008642285948995760439570172240042744299562386777405438619678868794221353401119609731842109033666466360876901743187849797915544054773866156842952933781140416408981742983884618051150314587544068967166500878760319786390358319426492146204373105243365827745811959990665556891636923152716075941068931498219663011088687026419048094112468657880386319034670597652811401407415661743064369605184062530318317044022232749821638166837769956988970993869674295495073538945545246074363606178327076962694492019021807615750693447385473477462533716059723166882584517975988026664586338320839221309288860491269176891517925217720933814510970531427178429477530642441062142715417288272026767540725331366571099338651175150347907223951373696302079200416215613385344530900969078691678256774909935265825857317462930569489908286731224156926387392545886801705430750402977671299936241118094862340924111532271840484061403708587397140455515479442822022177061454711561762878828781337133471371075587750265317465348576239059796350463857896990174709782239440509058191942060700358559604499265133657084632472068336123495970956135993094853131681677315213868335022506729526387645397120212374309567974130497350935218726577478997028890447961066516475472367128878929303489795219628693695207898495895764712273694246296428376524672026066402155334802459347257967590346396847451739236154668716659813470496049951580848553537039499262695097073523582818642349287843384682812715487270184557145611503900731077428929818416153945362424564416622456434909546135404587015894677781208446344722822093659120471097225748081599397070028914974555099702128529011719033840663590895172653070374124604308601824951306124225196702621974356954184394699563082795609845255423354757860333572453867056627498303356337010595019011554247761776015130293413584564963925973077691464947845456950950931372339533229807683901194484231558047759224531908431135099507391183003692771952671417916413774546885084845911127117368419166737871895338532325612282054076449124174173475548092075249155090044485646865283991729831247865482308354295797110813332767257037976570761814067018333373344064909200201302906448896135355088696247115683443832191650385193983951474598210539776412891408506836474346165243216360439262313794079563415003626656928683554439490902141310747710109990455529678930157378641754640874789463114057738407703343528210978894548065739659803854607312376732740206400761611648061800642552612237792689217054764674279649573109393175358153605548034368832721984313737728045299096493011383724110064126695837634368179598315037402475488421013494157342658540915465677493000328348090134310949596964793982412471809065037957411622445331481888482329031611906011106632907536428791833171393854211419054893222707762598805103753772621530025223136368015837507670602461886578069883032168169075910498834878811351202883049205765740626311873741058378576210622259998635180103636067449058417755123640579809077809369561658251098266006714096709857254483781356438741764066351881919871251258627199108638856190843677013629634873755170911174127692231851849672535007285822619070564324353493103033777910220860286282750260196354604914837423170171809200083455344556819438492639323385003783393073263332793846139243878797619046135722164321069850184849932459624055352251802645084483552815603420405544110596420987453393922901454303312467758362830676032376762558338735102027604110098631492562340155583565670281954939287965002568932499951441064688113422771319125833242012819110533386101073370665959188801798816567329167429841992784270193976252013992913818471400749745170493216197023151762809198230663485514864684986833920005871077243641099588743577566883034747160674286407085600900616011678346617249182209518920380129213252528741748217345035889688033682640033802710978419467179996625666858071899665692287858156104665428764931960076363670525999747769326990809400173145299594664823652524423960639107869910668965709068900640664385648187457357827115938285419976015326489689989120424727130111179426260240298259904979290080192820199042083394175711264625510202593037069404647619340004595082379356779017996144559474676201024545826825380634703134915478701805932224919088286407762788301331902571255408432184187128073854465980618012741644395471029375503854087116258522953010215861024587251277871370160498601625652741989178184636237042636443260268707859008405518996215756811716798735943895822901639668924964009303307496505379401427549778924841748348189215291405787165033775454956237786626871328983872970166673442832603197465188227780433973153496265763914106976972425982482330427465645147110433745407667918540412229643820196150353581128520582253072521681521389578613065080644687039056864432180148114963694160119490610522743131344756512773264635969766070052594377275141167236348965828090541875891692211658413152692602746848115890667538885932704734415222212354729136055131547206747844993626817722173083413094295513660206150261105476006632172609821915809024221997972789602700320554919280599707772037876093717384195239306173401792448649844609312201742640162861307218305166023702119543654857603970228104893275731844623375626832467506782278237171434569156933898359755803163860208974850287252463241454931832585532432963404395940995011346359758882424099540989768900964633938895399226416753726237089514220522513985488926083229538479271430004049048084308347043579867665601179266176822618092973960418851425858674571778047058407798707726968361970190634180474371341404855148418298865099079492416066232410571089557306809628193173813762497909236099747887238755755307460558990261237316883386154279868184051907736059003120102648967620358088851122405267266010031554637077041123736047214091786099786420221802090585156833419948418931312284376794377616318006281626481273537311404938972314177218803843248316822159846135248895351826351735087730654591243397707661062995646985085836018782128173006228914624324608181466902911207127292048922939355882832706533127884741394725610347944701034733994895168859738331158855524285216355101135296535358384261548425542987748617490514375336625902647173475929910957071971795784077122728882053732213114298214320892631944543204139872580341519328132300767858509753060431743617673174813545381456161834325702312231176186359693015807939859781557724010777641977952384471533357792371425253136428233178569028087094854577881369751497419634240407547046146253818663479489179238708329571792464332581214766467855123320065135573012501307572497234165862830873734374305218729597867164553875350712576209892973597361909892504920344697987461448661967576672593800540725552070324013104297937748605296341463484966681170587828406237819433323430650436149258442720465724260067775951458832508979781639048403281908300797583911181855818173736663526038342309138275073492736434167385776344535702944625893818683259288908089085946990161357456547011687915187771002374759315755684296654183502861974530328757870455300305971148912486118026179309724338531149874381294513882484880698270508728325894516175065291313503025637257612478732647362476045292582828099863861182715293950511950097268181717691857734844537758859118431333024919549872453712459295507766490987372386515595686599604942680736909940623767727296805702397165096244378878101043588079775213915202089383250061894251841824666787893519976482335980916079373937006829463162233232513738610575748871916775560199272551963062314741753402804700844325947145088637708478235131291937243837913422052040092358407142677538203297144587090021000723957090768023641207752415272418505165671874845808666186147403289746513010214823083551182839529172175841113731714656659924266701722707530497258440297060216494597803773325463311335867485906465822477080217087780580332748972665869318723208265732551248721768346086107504206841517963962608041428239124367789356622208719387406218281934749052378428946648853698332943829022882224319336433066351223926189835757474480972902528135736783088502254314966119780227447213153188736384606694763014317130903733776825964404365381276160759570005781662099679754454930071227346339165278983970900871543391599296689206844600581813073718639253567263073423478088876979764994333696948767927252546712196223606178797448828484264297724021102311260341591582976647540927833038735237570874540736960446249872637976473264969080736390997341128365018356673037234821655728024995600967199079128697919118643873265939790127914309836349084157362356240543085932722743257987189139769231404434943480782123197266151554838594109051567728588424683670340195877716061272527922341073024272991585978324540668188332459147781567438632856021935064155952304361474146914681489501866979468225493174747827975726700363393379738373475274282892858736112129040994272775406405742397578669790368434139237672358760094860951526032841109657734127715538870890785114302116541875568524832780870604465401322073400319462446216359248612710692492276739271562817158831968212979543036397434852432741479473061492702369682529448221308439723199896041525918299673547091620164851795158664341749928528629938428003513532302497664152763009116656539617385464867168502394003253722637613467756115510347078296951160022704446840253401772832178909821397929494142302439197180153775183980221638697075207247052017377787668082132183212741070662259610557332694579031759513013650518098941074262749166283256022257413881029939036698146674422443701224067216553140770386127288673023225685886286071945449117429710311767365209849885629544312015283242506909326205725416418873587908760546165007140600844951429635821476731280804114786545077740422836557673134686721081062798613251985974961502200741296342763097739595373256969097622909228231185666310231548071155709958845132078050450650910856178114740715566691964842176429347736077732613492499474146520378045138520606216469325768122329795049426634029083563064135946300054072631778843642463617778300430061642690254670679751612979554473259304985192274413270821045437197070673911717753840749374130941736975786215037773950571592960794520393567769853714761478943224909322411289096861993815858710745922045934490062044488395162373085005376653271370678233587089963927188275091475658422523003357868026163980054206492086579055245317862781183491634406279087063280307012023440219577954532371937165242762845257816955900699747128719260865014669169986392742734295476740078845276506716591113929862228908494795871468279737210594192702391634623387500221181392015718775170406363989911277662261068230400466759454027489500058099294241076686332665297261081131145211435001978991167688218199761007398183787151326167447673402458867169813967041475258217414584424319787577567721214468636525908764149530672326542840742871542226486957479648275740104460203165398478541847233617051339258876714976971579581593236740902474822875839912148810443016339034282293371823002538107408558247319540579523831334309926425675961591482997025516148486817383958086471481144688212576702061318937624193181808515269343945850970132990571133470084760381053736220832001218781382436115640964267870642460352831119822807806505322974434155457706605710120226635536878424418308985971709172842676516548663053967597201854610780446160086399318646574539394750244291387385973456183795351170190476314397748472233646276366026039787094212158137016614813841123021424901052058144093763863705157990172968484812503819753979607683926594081704866025089391378917406812255820412427451713959048784128270337786627354443601423825958601892222122324801877320032045435964029994538247733164015114165594549655490919620056098855413721642460530668199251241559389285699138383593661577467872403392420842394678831637776264928338647017376308203305680885607819712342493978537443045265715052115976237290294298298114187364115857784533988567953387213449432839492005047086840598565684591654635359345432404023346216271571986817167841760687471195809820498878218395162123140159716457211856024130485830289338865745475205824292978014581727660686829353672947608719279102522340721646176765253090127706338562390671923285710117597714574946359188515437181475982838454601421712703351360618230735713152587220300334143176293961697483843797124447100660459379115615271133652743540338036585240075077597040725551811226901176133905998792340696014737343441232756343265966179710754785486434041573802037500504702986754162335017038941387219474230006900647686673582150453089574600829074460806148811276984062315581762216194544463586846768201394992362263902175044324149414071687417681342615921832533550072268506898464519922686814170548532949574115949756258379110488820276066585833209667276746137239926898935197709942926484481926804948959123554810230758897379628592374482159931122627901827176333856677588231958042843911359964998792832760411630756455317567265879656984779780598421879524142442107907363926908596866455602853788375778763746749929777188292400676243703149189752612091605962724012585415078347808720165844471444430594255223884630924489322658350387860370696692467853635871103308801830458922252686404768804052829654681701706014130331022342541830122446736471287958514703678656332791691709512035540704875903339643107483591454290149837022874968079826863290923030514663394481840733235582748563621021027718038077970802815603593381225281510788243128630188674233605358639170534041757758152478095809891376357378977449052048883994764252057927300994218848152233135640289220556595749967910386421582486209351040300785534342317957495034404713682831802851819013547370799201409813054449248041930890331394037581799739994140050424617637525614212242366052066925066593394643704735920842858522576584836384138498333829407146539833478005356307761788529302595858965275113464740613470630250381707820154876393418630412017769571148441451172475149990877236578545907806490117614051594547218348413438422620029984916928346116428084301634696664324670630925603321935879037023768786894752715804913977119048532992727823149414488084247379757195838974679155347959908270666891139571800559068082691873351619234533024030546255677692775753778800664772046162914827107879360467833751881541398695913943588553407325559585741890659407070585957124843487852828196796166069560967667206640274901532722237204242537721661425109689166792929433606438988592189960785405686740240698135292833819526907205986968859788584563242513825014426912711516351724076380777808446223529840477169927579910716132833233323212497533074323328945900027109193020713713522976616797534192271516447229672651807069993552587330140323820462765641321881321134172013506518409526248842458136407961716327913775848555119047100520702154807390046348239942542763099054997973450215574832429503006779226385690919545926350849193029940678935655923909236466068334203362437222152719856001407460205982429952420695926271575433645712422382672965748791758233925564694044107291432112144592409663457976157930221390992868978493372325430397018352094763403459475919604218130704099840535983058824213304279351089025453635204616279501095846156768322961213166928297947799900001481834744747417417072608417648326425667694770277853477697574453476408905015971591767842962023025462026805157178882327582363062934411514033719949066196883565645709124108761150698372492081509795576337401214852950790512123386654221126929031363016785036923921375028179790864093820686752686232602637509543325692305185459155485526657706065199844637009690485628114008795488120441115647585598696256498696730353316847309600554528654645322954278240007655040858348554971035454320780455630703564910953320482861625131969786514922399731050778653071062259109047505019926540700568102974599288172417020346385051624617294868709185602292187118375713407543025104948809580023566774271221411580947970103347102424764905972570025141602168427564243361211597642620129687846983316931746074665752325270820910978211888322014972570770049757737201841103348338974429458225798475173280910263131683983552685427728815097244243093204669938157071009333688248577456321317265158628013119398279611038730802119810562709478476085968511121605443163227805367491046869111025967453081375379001212895002281392879246202550823599142828185889608804727889449577224786892479558567853534631654943080003514741303511165558912200709069793173503681448765356988337833632361611788742940430347787487314513014352604059966168774747633977170400276842069574834423761512599518225120936089331178579552071088891265240190301299569855300817918016499378752303563003485513829319559599946975592931608817076587434387766465064770266209789094427603777000996517034519245536179050664133805918865529892844001919448361102303711097786374347249228899555841162082083420761018352120857378742933810881987257126415493131372867302564329569919236965693690826451429052758405112725417223582842344556529299558810014725054056498434774598014227369977665374273803162963824776077426650493736939876876038366189389794095057841545425282501781576410796914587013078084517708864985234720469115561416480147651635771117905296321868226644653140594436661609937306315982477047654411607414205084453466729169968740407538509911755556282724812783908390056989713136656747265117721721179299714371335786914811467419630883021845961882468794106221529932034393918635036930359295047572246144970330410296767209496573047764043886756925327892414413913551859516480994683956958553445675854562816974345714070699042909444111463223821697472189165445346237486748032305574715099128165576952595729074533060925500109275743553136533857667158912449028844982374796666742850176522894288012477701496913297309903391885349159393778207123183861623691203109308641758253147101568982977937200450980800012733478541405368330485755256495811767462185369634253470485331951737148685374035408136963167846591882984555411609800197921649751573911556553438176383685075038471593185292657005494568519913715040494451242670644836023767992473539968850288118016645456953985156338596646151612200899186291418778791421207415494337959356714142908575826483675713331396181097173791462913115573612732444286289750466070145065583092714111133070752494924366084219172473886704216489477324614920143134597005795503995019343722516475373565714062919641026185744759595009866841179276990868596112361814788484015138303281416696421698453350714347307350464825829817574125363703118030722680737562361633515909857948290549371061297906136220458218078315557835439171093987226806958035394904303535369672432710141215034183175133955614806318912143827798239292070295310746349799170880417370541621686745050121017842844427715967367615297459317198037837783610335199313864592279508646506846734432760950850045193549767734821478789180843297263910793759843010399208109415430969528331729126592512665021099989771698880398654213069598067681204870245967523505428561193454221899700714885360875431523869879234443587000074777857053543598927446318502200275861642116684858424338267601649799538868718216630515278275330524296654598204239284057308549939566047953186828889944820539042199568932486346849913480375968577716281277412189020498002036010513632190632148162393907995763792927306758406867232565661421405759881911408265456589492241593638802505213557574036161534025275202550157793467862190773112495799292357894893184689791742751150965862197610292230972165595419303162245110725183437176467036195003870760070556054007189838105494074790393766966568025111508528324262715756707101885752442818520948819949454440189523357825241291658515951878409131168915227319628371042356008732380588810262464508132306222110226673166500577042102979322289246865419410859383095164400124158039960571654437467953726276745756040393140080761884054119251754246838326915439754769984829393501784195444579129696792598335924993850190361604031778018762943236131962203170263914582794740015701383893145917790124524720190859454268563316827635494798215726543403719259612888722343044805940327841964092520401525098594929117421162615232105897031145748809202892243669402052435917967854525090431527659489745314797641999395900164393259635820516762037634547233030939947704919128585659584010371027058426173198337881006853259942984676267783504654695255745563717065162791875526697952090151853453151127906178525148577435712030781646903983630961267822356361887958630554923171271830252229920919183883986243628890403756656921750551663822531512025965174247994889070021174759095014631185264652360484161067196644602215848111701838677200430366184017764047689372077240684156310645639888173753231146088677965308432123859853949433395420803838909339479149556493793733944568528396935880223387964198616346305573957909156283179374455958689147695810325621760489430155657995741138517752622049227133580320838398806644488092998909139496310384680709752717335749748768452790123915403419777859951018044451483992475364426830859094267532509969144954680221226464961723152107099679705343056103644113632322621368443518165336387089496903582263965414065002251332531182277729682052599162167219579123517186899476094602206008897151867914697776421322640605016235155110985275852515258815696458732394881822797844234180538899626286451683688720123070587596715670440380855711923804844695284392928471469470960100582732355116854391471366268613242891940830213526346309384514272102740963514655035182136528588307236386223852051682695306400845310425802596204451417124776435721007303744670751975027097149172488066549604536814751244139265872231542710123325278025922364574111623080944018676129056416348674974362380536945963951616596559770610705787306533150392506987738026682547651496588780481387401633309956495926843136891112658657303832887329253867893923244823877663092282797621073404127081318433701045915085867432305729710026648532067455900831778882977919252630601514129887096417559316422157467606489995591986509219756769174433226494678832524765553027241908073856114148063965065454572540150371220634666851373212366006792791160117886891782935256859094667751404943117292505065683226031151060311312818057846865467902812432028527786808428201922585447724572868259039386017427046716832290462138522037220972318613425667818208007228650743915080595282226574888827650875104797551936810271891924403814513007932103157730815077535253424715664913944730977327341183543610092701013931038582627490912682024701815810680575041359063434892791048169601860401248665052155768081219031337102137698356284606248713676835836766388762490764474893359527167312505907348645329238600124714470478647597301843591340311702873518701800487180787221716079138362356426447505268872967306071563513977825692977248523978738634310670251975619361034756116989169533116765730001614676704953969145717377645486313649177156915692938937880075107128679922771091460307392905303120942077749628216353979643357174827502766163156134501198514086041205648674858583351007290787438698339634811589464965213289752715142862229330336881494956763870049690989503380024039097253421456255882622828010164647948475877953261009012361109725648440983537640355121459682374892068232623553679072380849073926084802288618753161983113679259968790256830087756935360048772875824436511056620807743025494218318324588212144417111590529479033510161284564471704860772717149567058716614971486974995208190854818117592759316301679737541772172061515041959049364285991484933742300587637642035420468221050736270062147166902242755934959874184792474628054438973184845619204498965231182595185263650885950872552812687864599322142766450268267848744021284875623593111028736833004416178420472223089864870516115463938587364057265774890350539655588044771070881542310880110495046186934029974100550790993518058528141319607419879413937293503993883822594369324056175107210340290774186610825810312902589140948941886294433869607415034363498279887663350541725891515960045781598275151906910341226533562846408146674130583431277100944450712357518998486485599861079890011304830701483225440810113586098603070399110662430582771848057149577371038500749885785276625002718921244246263761046675350400499165267971095769352790618939188955452477335405392991774503624550958680422096783912693241566337001860376422190699921141013748486749851909328407189047108055310574022663393326274826577750349937053326358948598344207849148402281118127928118524820452804530746878302197504648971661016695682355893945319946705043668282861029102933531162024114893465561775274252935193741194160386701432102636098128443825672988787191518719694267290230117401071007731258757100589059980223636530392036385909168333954292816740420029035432723467081583355425190900001594316713199072011623662498958759218498785323129863663905415702797592687742047259785161082210302204603458720275216075034774744767510160234351480580878037549714703171398739645168148842289978344157998297600027997447504275587476782644117393043633623989383040840397689625533310398396321394581100982932855300101855728744481017189254443086867952186757766347517914182252223548353863883626080179470243883420350319263279238875009601534797800947036228525765060920586749595942630287620655072197322670940271740747728462631587289656849617947239559173266995031517041402420294235846325396544746251911307750901925920870657984795678521230020693462755899585749582281973798184219620863739187537008641082582064003970954077059442179704384149599705579198055295632909207638244161852750532193583862022994310295697564928287832154925389485364482115553214657367833617745507612691666568087619582031755753623379033572838709105290938772678122962198518844058628250498056021425610817022807861328899225464434788004133017148676018666371243343831446231986855487094327773581221743487299925251218121351654309842981072767080756503912056993235230809757809170710906151192661508598556789851841126031524781118265181915210021001724465921407286775899885522329660453038057617616281777226140154932987682157476603147679010095408959745972865851440369267371323704980681127996026530248454343329184010320729333702614961012309936750690409424114696352835604139811379042303068279389699585372668454897758863079562070462341803059059291317636052906376549896152453772749245737925505428979261275473656536791976504463307055254184322010628595465640418390073253172746165732880560434785529816326748813264359307327073684643742238212907146742843674936892081950709032835628278943925181019222734565082363747637933268310873791117412290972653388103291187247141186545255203624533839598981367098947304037041607990045248314203959530480028948684571594460956539668391777844928317339858940490684096776325232823405675066297769259491418954231276463065159924012651788059041949882348105363159456528086895594453161303368785589226591070041093077271091853501332406516739484347312889559367263221619151134490119945761486165092235717928583783170085828307167488261868528986408212833190112863314212410248830492132251538206721952995526863333208887492608641574328416338379201275843434641682703346503637514952559995652817493244222712610624299848548568172966887885107746334234333880217491287138907300662758763123349585346428942101347579302995080865547570272612793165690226072123831762255883600437105622060185456331290420781392438913153654621395877500032948769837975616147708979710378095695184132565666614324143660516130010960448321248827433505849085402550628079350054143545178606789519397157886933007968945056933529737456857928216607977914337748469869900866742254864079617379724233643249417865369484755174457776828869123161182394942212913305372686961891894615474273412080372615139504428724971794168370918062202739488515972825648000292016383748399922001506215335049938595793114265210205549451602186083585864605134636730651705721228421102393063115977703538218869746887805605601567080158149256307017089179166070049300976372281422271207214739355701633890136356719762186990337764901000546579212551825106603441614110722137653586661087681956792746663842724996700247592479247688119686907074201775196986303627443484574564183048091391487630182529466658293085590608943979874498820765521633002316931829296522216779967718393370773155658172378653511345982437973965867990329337608274807093311407922602866561942572045079445762828563538936096173681611703167475438684752289615369683052592604491719710984086078377172664639908881012468410710932089746679452050445242947458867240319640616688117330311766333455792640786837198270870237269067791430777614704938536476037086918752131705411032197489685517608561775553870071515335430199860571259026545144564870590496617004264288464769878795630745893176207553550357955307133229012073594177431374901959668635745640041499907238573621102019687960433842097785347280128983047189722015015230947032630150866381226299521696272097703266432968627958541455092533031996404999647430347557516608322115857588113243089050938886985512339150682220695934908291523760089723307180273819114185342246407232673651447011623215497540143086334092184126610909533529079352303877539040927005562842915300957782086440239684919343757126334424737461749672967075391637185140304996389565847794483979733482272741396244376001522665321877178738234635307820694341051326296112823780509912330223851156773286453123530960888760089308347228404631548989368001078125158005525029004674520386912847200613346875066053446048821892596197779555566105906644353789314378227900265221171682121726143283583235634819428452594635644135201813948723856008532376964131561189212813170407899778573202952362674943216876992000116875073670720190279159956544420248444570940668953723283739638676786306007763781537328963070090519565184559769276350789110677915661603964305511049919139186964089587851733467746434687337635915505987688744256992099606409055464381430135877179842922718673506588878637447246581783240351835896820843715947919535376027607724501661656603093824773306779539110629230178304286939008880587369339337503423276017656316833312192648201530638543654219848290543514416968845172313127522602096756144438591671372336805399832718243850649910903599778284682916750279225808135829154787561069093072647805826299373775893009622169845818078198762042886804185223138669428695675880563111262427410421284098654075222568866134488330288970577206042330766905248371729858114740557115886292292948856217839109611701876820888217266242545852965994606872786644670494680645792616468858831318072268172762445413651998169020731221009525661250718677809986635354628481217253414128508376921574649347280259656612000067106927146078076256401237559421664102040570065536206089361288583329132097336165985894092868579875132926112897585759710223192287493544274466498959749998267597370753783876477580742200585514733091741708336691158339713626911300587129786776245934246966414347354954838055480901424435347753685053294621540241187673271458343691845877676376175460935217902966744207979644624440330471307723780067127181204543385878163628774346829672171059854366023568172535001493754189558678628584743889660230814854053216629352741036094575493340345025011336587689357238085433050166544430983136005163579419154379757695883063921147016563446352675251862841634679339049856389452194762743079886197131924100262136206637194495534926114543635154800034515228728014068565302341579796189677166141217113392413375198636012005148440081798678077971611668823387805956879607936488154817179625699605295715874050165132282372510327128859003388000708560025265044354165477762755204335450565800070564938634540376953592261154792883851150451989536560177341490452796990751885093895138659785810724298214862882121244415597009837075897264573072039185446892345523420845204350115193213616052191401952081154393847289197506017908409793163242243929244703381711415694037607499120988660372790122265174947253428566810377859945063062054798293487237197247542597039692590551648292781547426454354835905566552168025077670307982009786763533110881607565667554843894370147044919881589119362722455909926340604601891031126692137211496619511683708450415461027387257731579558535402971327545768810265334492065119941505880671211215879811148842117496851683242346118026141508621508666807752803537930094914811866622703576354388497279395842896051901170041322186244602481875322943548771204009439297652597290585937340017748129169269756530699943461555666638131852450184841998053673786660727200632975237984683158251065684310290041258437164302620420404955827598212851834005465287486676952219374942907028367934928800112556032141858321653095315223639783916368414066941405601400970760383007406511412255737319427164133867977573989553491566697991415911049066293665090674079126640109261788919707005517090850224148877749025128710921588748075331944606152720582630433244911265445002438175637862342055002143404428542509491588629358425557080420091156738877805845557143795026755483860559795075739583217651198752690352025351643590964349919776069868085340650745587003179436481624189944491968398083821241880744374557611306592343470639412578096069237774952500727002598694668051870433192440002995564132788021967742959211443915695429755662986978967089978672171231093708826078621097767891794755312301698303222770725473692259397551202471053678473160101280239789848235946457436137431283090711100110423780265189942409073836359773032917323695917747123354480667286056873376028747218123356989550375492692723730506117235687870462614495762177835810992417686123872715199803242869242079875694102206256528450332530639459329630659504632897208514514461013979096373593774763393459814138180470699971249534245882326260525173375302269594596977364809315915245395694125754682118980785502079609447384925090709857590111602056835990623021823487113774477049491286680505400064459145007123207425545146880497976617606321153890920087927937125004578418001205910221860458280711758227991643112620921748933815267357213739089069505548559625267332880156003098977671663474361373967946103095856698683912246753077210492467301869374013485561917273154734052397418334462754312136675355143449966745139061113543595820477408567472611344097640146068146496730845153022469260382499884215592456408481905763112668622945144166497558465334933828004501124386283046944469949754688295958230574463292485310017921921802401429164853018890541474521076259733511220680100866720557932288027394844078661413923390042949264548697566094910309260893228137473971363468592397978749777060600781385380299956327734188510822855859390088822131051949342718733974282167537042327354893476370261605120010440238630702594754776876630950250950784272687919069424282406937705160101396174638357184911386915427917803866459765559464576736932186708819612129312447428063986065739562515731331409811905799271305099638522532838842184105300875840755238146702252120734922603758153811190841046051123432016553105656936871051994323399509069435705324064126878292694220026762229441355542653908405999133945111950395132599865959578038490672046847633934366322538934596008888733845719495407782903081991302956716170037558387441742863206333119832524403012997222335984506576109839899438589797720604874848430710290291263220009714952359373067415793689869471241000353452261891326890002116052279645828931224890847709187963411706479250212492483657559915701018293765600350682199726288588861470703999163735934567068096185884695504487205088799872290444405769702317751782038985737442201238434122564823557348353953678239899820298248309819510300501144046272619015429728421532969695397564529539506961889912514007859411182328132744756923868564723086450333386935223435962185781063473365101198581241983936243076814136974830309998779964173474300040071100796800425622710408414785663676310500811619210955451171145772562008546106014968454025812734800004634311774215714062839539015143964631358156953724798675604756647996109338834645293140077593729366956542381364890487584690182056708396487455159975730964191115964247094675924417247826101679082214922999483173983878391825898191799562574016838136689097236272074319286791193540799042527716814160703409504852894913246694487358901104207032878742119925728263395707021764057051072166250606475558616885168144214488012130300044453865850324680693969288576985035762115932208511057539779514812174046302050353854877485809150630548794628806419357354531537922981514721220652899842657051710876668558950027578602064817073716604134550794285621656151849067431916341196539721547813403258210857002203429794954652290243356653900440399180877403392039255587721295446623808355429385696031834826338972903414637273888309605915205298964378856070401904093168934171710292316472420426402044308576036452745750781234682221497298228806670605851434462044212515088709694755972892438757629808471667686880619209767132371273012650092034906229331840523207718863291137701883002464841456737538277560409870447229172339897471935763683285983916850939563190167851387006783124386004841766949434301505143760649948808112892506764834146137931950438032796234485720498017819071349151036380435575946858494310536081639598188254152368566058697801742055891661194963289062952111661693069195126819331253945079864377378728490674087115946420386489383378588906428887286015455709684859437438506324243895809635557395220327386329315582637460103994390516764363631839848939923433815829026127109755240410862705448103636450948752687333428661270131639314422477976198581876649000613276036484067183902042912990018094839550489665324882199631960308196762045225274945772167742496965377794037323805641608163966297914108705431781580605614488770979572408326473540732101460367131267916718363991419830299421032423934691196940472104551787841273877477069417447180008977643258745748288531951247473435611621825268123250708796841585760749802324946549630630124858931308038848950004134154942626166566113328936066729975652569497641301272144168077144187561611647958809676006673327426448770494295488103430461225316467467678839312571346270235986293915926971101446182161556209282682197545047459427823655629992443094596516306172068446720800902579201412166978624533584314361653376666672405462690861585531976833676594160900889707840071230881835989198765584292691768932744687953097279723910894810388769823220360690023831236654115555598955882503455358655023148292691854386882994084563543253826339864634251969576107744079013405517960137553143440283812953621703058755307511842668062681182424938602414516635289567796030849867391953397963838699287408072884064646747554213258379265642457006425946344725502159082774838910946564591802047750030739401871298035746610107624897021978221962503003169821508208911467698127491920113027589549431729211559296733364639188239080556294419199991620142591516843650059253276510462367963659358701720907959735397578437027229122535541453173150365792307364514358296458786250256194130273639052676543957807870282392935848416055161708502210230992874072544431400608542316815329159061499313057874644724324017887923033249064079101898031206005839425217497382633839907138105028359026062829797213827900953329466949639011559800597930504594672696279562244679606542956502085685053179724452980381340816926323434417984287418652480763900078763358356166115595801320594176343138572423953624000021064575353760164256020806961210727254809697578878097315059984754124111638621249972565777507364745878173627474960146132354014628722776336603989632642894600234305549080403952295891643510766106928338992609336091765979848416881657740826284197129843640412396848746095597233019370684069225654379056460787166895825085441978800660624434011995117231252190647805892578638644702110587628108488059922726314295322123499472685098436189087182854867572285490375700093001748231026308821121003672724158424441492202890856023178514814863986672732610824360176331482553720385850731345906908364815782617716592900535993796748178943086675953615011719207872102558925319304853873888219647541823928299636307086692588683781594402229405690112853150540258046076566539895534897757376260719295970858681723668978693604134388409691527666656768940379895453482544678842807579332157163183846292606469777679956107843478737155917873004456847186599100972081669087584761946389066120272553115844174645346562535721393860649756135381969945825959655885870827474524327243073894794910913600600120146954586037782073703074416174209232667154174270009512618429837108460442626393005856119950823791830977951740236726693554500980330859601348467028721869412123127494042889071756671478885022668794606077682373027300762703282052851672800196232928220726787695821091614111546267959936756727401742781349299653496998826242531065101518248688619904047846231056871666162617172398302446142845011324087104027577230806606687699247792774379960623859581040088382615998094901949420309438596923215122965942619538225068279173471177218061608196475167302064262129373137024904289944729767253416884351704139537742335212762544303161435577544847386194755984715972198631976555044154248850059818702916242856066961106109144512500374837935830246237589961028422535332981883196707939463405216797007329800731600200548841993416135691924015891906399168199854795602443912260734544547768761343231741728453485864783845996023517689274512487744753525593631622606130592687866720779837475993664755131045826638854198877962668076964081668205418713663590968727705075954891770028700045251649972510111873206832589649330686629852231656839090012601724892290439880755842466926224500154985432210944072791352015617531573750469607790647812869048589747039644007211763949319827353894926698723020006629865361931364758073257599572189523464157709937845906410355804478836463981631629061759058014876618957215878871714918326985685618464095604115440584235518030136125846434788960999064793892541431327366761047229820275278429261900055921244457345898907809819864935288152696104691800646607708489088239929715691628482096289944233583866936894122683140236768741575600500947705652854929083078477738108172774437147380077826938107325514502500992604955991465671190481515979617675207872121831943524701718296940686675041271387412827418937929499316490247177334946283653458022728206825617053996130169703062038828781476800100040323797108469297768189239665418672557154535013874503462686457677060882576309903649194447761797304039622420463699976750176344157258122957647923324479006080383617261780275661209747787734699218003168365931084911980653086210869560496622616257397093030821320261490469227182093330573972760817540125914074152552588255591127554449372273986666335511334408860246389346990002627361267141875050289400906601747228631287196122680224334177605570682973901267425809577410777489247160485658775497729745873102507984458271611576903323511103679320600559886502741867574773184769643427986070588443596103594787362168682543955594851809157983951876329237952496635608064256745143654635638325997555176843538773294414935769409964490035864897939288102043782302736619059572938249022940356260874951703022077390739816658399913733380232564132976675955116654913989582746831232977246985092741106689892996483970866670478989063336343691869226394850222813906503267025630232328211748127840950465545050893306717102471602731420252192864080189576570980580773407519202977182061865740996692297204581284903511050108552522499271815729351160107836619671884617115301335572800148731487552033413425223661718041273697646031109130556146326161485750366496896547963089002488335330099806466103612550243639586052863324178847606594020950160783575506901563678805388056712379899309399759585464003581652288048123201720175220939169179783259834265186283835416122909467095700737460666588489141529896768396191856980862461871497736143720036843311009240125765738745725998664320625608734576790509769529147572168701397190104834203790919359993362013588029421380544448045502032579373029223144288747143632648235605563668269694951867030875750456485780076701559002129127499933353051957493983551023185868177837338190849635545664725714272132201645386404988621631316390087678618977793416861257934064518455214355307201198105228815086300022937104317511345678066982354622068976671273774846651103250004938251655963938226865352685697974956855566214401338523353592960492316644482349154311470624051014637995483485400959190627586094650716364628227505076998606411545803580449090325407789489627616758545416409716116747438251995237239939490387377185794232444505087856146212632356001505104469619320674848940972391183735796895766159468007104976042016280739586766035914370608040958945868443344429248365154870173237268680526327270411195690357754573968170234281738357564985394238795015557911881670442146150877241450105324739723399829670348262182946320712263611478529925708172971533634786520932575995510135790251005447324694297060426786167743020598513915003296357902854632040149163693204588947736040127995543223832680430982580241493402065832190057961981037303526895532325398819440951279652811043234212768774017071150446235762840628298950848937421566002854660395493805764531045260479097561264108167618099647640170049514696225562801875022452733287804137708733547426927938908432932924496785494143691888705899022847439860347092055611074364788575421188637015621014634346504192907766254758361613340863503359186840538752957639821922856983533207624060373657853534490464349752255075283434102897247184610991679742049194266525833892739561223655991696982281353735297359485166188660832796308562469553332963657784848733286972345881952029040971157000163694825560179724470321747188265025326548354272026945803449313240903211207188289459179563441340161296489442411943712416959890359830059989917206859791508911175065836387685724458553392941695940783930393843638101787884321519346564485252660036183054349533718537687586864133041239867419066368005074838394015948586090877719521200718865133674237304222918042844051283348303899395108272613880590215322693754132888197416493593350729380498838653372836066689814502849074265608505923628439664968499825804431312245154613494899113464508720260084735066057110981168726750738748799719138520251815691371287600315222102927564037468674647014210226935884937808249045906024867016694489600023786860202129567508152626462241716214649638169599067910196164228691105136657021523860302776422478494798374258192710000007919253352297511181328606000032072956501426623106220296153768746255535420479263966123421715509829918510628902998761379620874685012708200951451753873837192534641225787232167114372812287147302998743208557933220293226052990579507930100654867578240674316966181010160830414891383420791517229485996663001791766972332632822192679421731985067521690259823336833081539598311114777506807526103832241192842150787178885328413032396145227190207926413991064008049572880587011789049814752935688990308412827273494300800717707203885309218466865476483883009580459276953627583196928645668968563019296600873766678468224232749790205811488014073383588447198997979729808443223252516250197614148423828266941333125692185929059922262568535746389972469263043387617655735905502948457850053015026496160409821891777310523423527150204961912595708635809955510850762054600074389288842104032134046699806299803525656290160870047251265876420786073405920373538540961568857437573520257623191370231803069383891038425433345429543147633948296299353899719222107105828082064747955060442570051372653788719334646367037148484896531707196758780461390421492896267473839025889821079724474165158964810712601228827135226313377857766133568039589489975809284743712690339005417624574785265896839235716996483324972617519544030650962955408764678858198899247394847135125867682561074068504159986532924581042176835180720599744130109399517610204333465191330425107446337597188801174476547252613814702617515185793864937617542120518045300333691190189388513785286707993455031378510489657102750010789927830256731617048310712924768391643552224988813857953722382364458335882344683730683657280865428593590404995734362504419681287811053326760132519388267772245930035721475491168683408045341597629024589979536879029450211444196000919996591562780507887065690871350757964581897750951863669834081486473156586951702431310662959665353137553086925738350464925398756432172059840201234684905643677082853772032179080749093051506723290290553370905159059215769177897659056411578078319332264579753372678867612011400519715145604426642990580813885217146891139684435154465474872979681846808650249673493599142278163229995517239248317095568949635140722665844146924699717410470725584272932399741988061105768026332899128922506610489530805003621406400650466513016384495438198629986047293588704252554527694178065055485885642149052575651305385045371097694139358025629121707524129950309570147801171255605881181937347854789253210968674715428095271322643358256111471162587462542447776129778007099003549570032208475017706426287979159045058049827224132895669554899208003320417333817834651383847298539260826956567231365819212312006551477172694663693496300890961664312119214957465124937928631999289587761328474939177218241384750964313046388343273551523979243028124361555623569543290038512375904471183368435925690968223903053596193489193622166239816399296114524432527944395868537515268470455989192775530014685069962137885264323193424373559030298831362133942684929038614113005194650702972322612970055387675810525598002092875554725699180946906180283267850229719368706285811417842199235287834634578058718209729962476293680531527517479312400534079572180286003853901439388100329191385153977820413765249280992736650694201236564600268813490948846825415025621792495796675016071655924364346394452233181335436867654464677060982206262838628519557373557598906141836869670100912008958978090929826369153880233087563934774484832347464153246135252096917800605767518020421919389616924972911241168457359401003353410460660949245453366759919404237070245866536374764049747335811504552410319319730875337617013627433804010685897598524859155525084803932908134538907653403633865483283306130012277572698397292494244475559519744616465765581828664569171284713850163721761180295489649670789041276332878464341970444296224339755684897434447148277321503499807028051371734599456520479779760696249553863447044086484481074577631234524148761362787671701214632326445260741599811262935547329331069313204933172254440078718541607707857032297800410066813261738799495593453257955774311030728148443103250898902190167460483506924308468479138651670617718744063541195182489069631804323230882921835964888074182136610642974538001580221904423046456477106021579239679082117956157223323530464537119156536556096278091932234427342593688953015984297724433175085370381206358549891834195248302388469615568881104393435644253791103671677824335157957961930726467535569827702300167497454306321879394273249445628653513964692813264039602688979485167298988622191359044856390453295616553639832909252932520565164329093531536551494605240821245745430855007795671634338484549096687342420351711934525073550896887198904492132898278427133959101484885355076769160441070519926737051777506372511827595459711798051354222872193378842566847326142604867183270956570418086253925635846938394105339093002613529180871283894882959759112261433929133771110589291834629220118016771484117011122956745276043325609467759640749760278846817338397237216619780673040432733533881664499432517744931788373916439023400709519183253931520639704315621846614601664457897527828034363113064203550445251798317960644356880336244765033042885142218687064068739766373908412320006238030032644756148735102526201632683539352027286771398502216565424369415958915277350741445448061693567508033158034293336351130725759706783662614746313477257414354677080888080220555472114619447332074448206608217837510099298623184214545933872906992494672576784274105889006821568874786733440592614978610606791355284423751911373933995202667669053591658926036103960593125055558624412851112227575111278817942297594377737368943567869156593594201586236549867643976684954470395374667264656150106402563004773907148233786020573100943903087888832674028899359690985029488104239464714885260207671587325103887479597759106230259976771306664589443121017653213239131876660387427680498555635702030757362043704490812946896422949863715020124304243526997978968645042296547482630330142943542199003177208342012272977889495257897446482237814616048592553825389491664555840781769786022202082596297189595148221773967772915879630779874689891739372474280184912924513479282058776084228422861015460281488450392430198215997817706640759008156191043663026152634821784098255641845968945211770151509400741802437709704032890852989076040051322122829793792558948670565233360209265906173374847851193476728983026395867056554114355149450053605182531237239512356643732485857195327867145519776560344742396102583602227658186916446204443880152242001891623393995411603960680888484526374512608485403011001370593493933316256720028850839659392026966873772290201595004122423820936315336560998091282206648714340007639921100281842381611659281691589811882934541693196907408720761188827578851291435873978899821740732608743206050112111077653510453505960125926798929760918229149089465284083922789221838940819986416011473515585357127753647349958529350259651824053830896424783237236323874293987995313231772563329105293599067537114561350218603790978712473571344144297603665528828107236720095055968299046232772063088452977411406206397257827616045260844378626821557822822430091903094065614387177755633478173714383834384389358854060057831259342299356700546399711648445356404531484176156662503791431896927214397744140078588047523532922117991296532346108421567887665512467155337533942036515984523221008041272714898009286068436721675977105491697105035945797235033466122121108482598023445267136171501160326419050892978104694882659959380578749270850236873073548966455894348297063732183029671983555148821783134284792063625212192159832460681152278735477768565823212339724944715080227054729151789926305063006451358973382656534675159718450770630601236052039268339565498954947953125759402776346865656793928484086486062673101197802700863674634159119015151456972881118438465279447012472279512645632731067226441656710045978590501706130413314881826078096365214066749826630943763846212748598551033256027784579884895363293455323677680953042491434549186531682901997674919929288754266469155852012484872238629869229342891421949435969695453135608201876187293013227463172190584055060330054699747405963658895828104267704194510907381819973285391046683840864827669918304979255777299153797054016004284612090739726236341842446412492789143698765062089198686765707716163289207905975366471565267943950023757308871632136797565080860447631378481005110875092585021648282757072105338327551494788163396534097078555945966378071984839626595375423493957129009722152604438652762485499777985772739704530706065520273343261704524070818974851745359026519219156312232638498847040450392603778133903429481197231958173872945583050846414749087180134250655068408457837351969285924358455273531523852748324722045347989026917206885931996544907153884065135461545394647103994099839677714047418506866199768033606007764882466104565199418872904321790550046662607440633442766753203447381969082884453127205924779345240206641536270694694944317224779108210003422387213886117883403027197674505418407149206043726029661375823289508463279883456267632793969845824502327682758228105521582346826370384513070859978589505523562146674248228008779020103014276214442501741998962254594772066158944044893875023873947509289132077828405747791565533181302450353531612262618062342549567965162397323195324189480957866328450134358625500651732066972436364127290876831394174248826074496485444082993416813645160555758792820316816325332072482076663016177123855016687989565811634502193049906450178416377900884733429543739842514951253093012900287663057322646392072370186154022926990437387447937199844274470427075394968442112371423399094647723654971226614378612430152778741030680322355866048250999115923146421760810988359447048535862506344466761386657210227574201946196800720230590824040447839736090190754527423027942670112015957843164388670695869339898428606690208377636502463434084961685932882237818766047298997106210525537939627121013502497819359186753477132491829919115062878931156447318299629915076752324808258231736004062893352213115589649003274520295334811394639060823991839200631756722258034847131948184373842940996788646159974975108688944712677631544906612198349434977442660707962851992878793652744758932564576192073908243099251684199270384699330411062953756085207149253557946952056095848884678678093414381234479186165085011783181769758260173391986578920837640970936186569595342805168168787071346189129255315543579254782303545552859101411603982531275135287519554866398191381065377335542345523692785910254945734047057386336086588327016653245551470994485562047312746345006394004285960991287708602293073531904505603379561330892996650011210518880663292138403688197493685379078028635330952345285472974403964669795870252141836806299114286020979709976741175003444496369527620674196492347738186715487254904070866421760178143758451116952154212727997299563947249818720500796996481845417076740462345474343364451087371152884694353725716268589193370352910963616698985437990204813859299120673737861276255521902315860797630744006648866518673718331396710892414441770458332149104964711330428920724340332925111303625759782563476642390791082579857833260894015525287210406517141735813648278751854861196137781251522576768254351747293547910378279741448197097145974337495146724638134452308185479911986786998754369573912503062165319452736754819025506418793243404659163053860488392426403771028415757260077453179814234894560466139042543434549900367969413015342888766085572124390433081348441751970655377085035584636678923064406904031220838929535451508704029453799588002892495516379401746114541442263635946750261348056107477291900481159709981896525179655545622673000393832536115845953077465915134808040498026339025642120368583337456553462896847908168348838071643179499634839607732705771983619833998580770362485308494876849437046306353503162833847618224656556102946947530029881968793407875688782372555391538607468611530289235095477622010155689367261150864398880051627932905276832632331468390715965300629660411190530375533166615531254175012140432169191336457934207484547280254101625863948773927100631071757375977600808727081180388688626837116922988909786694135853189257551922327257010322460111559045826931157474264373752139935482306815958990696043838966892949331675486360356962247688768474151575285636616043466489277863070987335447276870881175719503154593522194475568947680331997423203768046281115375102940153388308179282029740942866690821911700772233436835009994789511496853854025265051465673609555819220457265366005373931107371596235376174091776752587962249239554943362094695910216490108625074902725904341607272235685227039679160108617938717903724908642955416217483216129002766806139486688904801898371603597225445952523664920437197641410594628037503767084353609740614277867454764273771710109662872051791375405363928101317319161472715125698148277894077488563526877136923893465735271316453280241186210622556246762515030097067811099076566112360344220312670522050381044388058917755575703085142659061807435822556385583616652589288974986001530529495690193361311875113543446912900304436393976429801375218103008197335322090492545542645394413704395443645366578299486067753815895836571748585730505742074005905962833195674362882169097940452920657706130012961662139913053374875764014355653470785306477144525205517820196479683064284786820567816021744375753003985106230298284375095601912873520804491318009228179916235742916610096469529476752448771723189425122629651895101412646190012056656502360472264705942815203853763953975232069863369929562338555835616033205680969304520029507469509967247306088755519253046004444293514404793911320262971127153631144299711415350397547795294452923860661793283599962331007448438493982142028708331116867376271387331958268045565279636898041132591718703350828128223927539827404338008824740571098104782038954887737373765797579022861565515303111996802209318165213540317451666509340022090663225161626729315482855132842564400208129470338137327152676217686674275018320945666844327066878495918804602658070206084118820682469917866226387601405457589340891637382629922618513556633858488232017796519034477271347599999434033801989342958246132374638071873034928571579895566155729033418154196278764022333572696444100270973077928157638370018833202800457639913022789911576339789715769170075996639152543914910420119007333776280342443993765099711436861514578401133309592424848515658925116486033449536718689236170509774825598971412786653018534971603218394874930596308541959438815930501134566298327076295349002245068404583395982097240283056762926149061331706407886749818948036216587965559721490884912594113185785479915957552007521296309612223215118491772371079528941750595921048333865516893927355718265787369172351026399067406455636518512746755586647435909601984707972105507883426596606371817456327999190110889251841300486433938958928597951589916600518658924873157404371142442906689209031213716107217566714566703758086055314031411460925061786611808557354647418783474853786399934147255402060504071060958421673671286827833688027017859144605165458451737871234843888327884048438809263365854455272014152911319805715936411605896168141208014816813826609966584247601023749790274418799810540129108953366427917449855150052316138556038351827756053434234350860116794819694868718908428389366068136563903157539092721824011932711451704723116242785156625219274470982354422622969415087046970757141144372811225184255568014783655179696689020457318038109152452941857486019664479628463750474060808291152112807812469009178431136123639548970608088993203515793551839377006499308568322793000211160303310387598881775369885954576617941144086112349223308011655574416058667106625748670946641716907363062777538813092303710876015375313258562445391478574222870721135295279500161174930522213471409748116828403220584378502553993046969707308696230772570738501684109301301177491483082150704913318601279436466962462793472616307875036942359542156410941110842728741675159440409851542259694530007139646302656838747450009181681564481511421042693549962484064085962315054839670895783298499605464374441252990334849196075440291331394029106242610493096418939105546078553225810779820184487811977389504807863795495223002952169103220507095555239206054068235904884453725897697129331983279525945303412056111850942625948071305961212568019258922480888278802575473220711056441595842678074875103527477439079228372513007057456296050348631485192250656991143400561044643254449504246307050172922694864425205679467601921604620171800557606807723208812144707051654188381609178644805090137231071323803524402546420858116267342355792851912852879593174238523047055245796245113417419498196926533872106787412565982207486802607880489631633145227990482491594819044199982625054103008916274937314991222093642984463538431291505922617893735623431027530133767750656227720861657108950983782982670124295777632276252687465770551629845861007269179986245430166042939754875094633799144969549833315846682080247387948549483373981413987334225790875805777937354809160397966067335470544140587679937173777052014491385551097405239029289614007589529658390681910877295570504781378196731091280973415386504459854040718637176191152655075704503785473135307024061674658451437973749971127199434493124502874401260695708026742615478377499876417872832841976644891123384746474380917665673299283009000109452578806560751154027154423865491478679737416186248455107852361044631880601918714337651580872233115309820629287499154724232768740554710264933412142903166410703971853615122065082738035702224793711624976991208542952885208338178579671061498007853203103076129590903697344302625275234614709099343630276523402009150956898160993157678444254400049738103570825988363557678973630352162517841550741727242390843895146953863130756645135240382291792027714459130939690322558085472717307125811045479628397766912370721229587970719743043312317428125907374188222410988223535947781305083996032110194878940300547618469842673108460075413211264573982369724553243256764412638983268827742578335744432153151040255830469368153471258311224314082763844031644742458171773310633800482149716390517481247294597243769607503317945773666368891228734809134280155752929669285539091667569474110773200585435492211759955232154840517012234303440238338661860642906279141775976305119480483584351092955476292439936292751271088089786783231660929834992628281468788383600906520902719177099802001881323744490413329711918400973047486176862389684380065297433957993782221711433584646095747437926235983326626593866366097552833901555717926318679064155941860782488801376306825569020998034707187559396288380287511586242817276117011630852714521642106682277428696141425925332348652229817391254680462857079889255400067655704318330926117196537587862542454477010329512348354719786380313277522571751746858323564413336259046784025481821269870417424243369345543455891774976109626164159843841762879088974974340503904137453939921228809833910060428121972603438354062025174413155926028457969820320369086418969551853455636293468323135346089846870120795758005188100843693708091178360636267291057094121952046864771557468892586826041423912837500433225463900253675358766579613536863878649867651655532858363094692726821151584434767615862805453534108469000848043655609732964691246042524217852388532420715221675741534449881855039260516360192821486508365446626417062081346249739791567430737929780549795855500167165237805158638387311203607013623652888052182361024372312555634145710171507452144386266591379840454942106364738665144216994046185562683318579985451808495599979256855464001036188731348421935545532184884866337087550266165498897538974038946269335785273127100609393681966412832249110712935458480999445097558973045813644920718091567320563929044360108298294070275497191789108030898707278647389494053922069354338604253045351885659420758815364352879510149227573070224339497743708171305226110450580906248217601897941191242654147156577005702401119984633470950840529845468369420826302819274900493899120144174846913853079378184751180957120796040083782480997083688579865213831370648696347922660165409262527509041109241216178470218848501671315173276613014103628031131455732449316917915844536547015322543141358481779778560334879218492175047975056200842607940938856027084484048885836533809981325890635110206388280779085303845774087629200478401408909082433312580065253477880114239414581677669692917768458977774718223114134280549696086792548946247945311083394513804380503392085691470268230829096373671179903930273906650376753654391850820516465248542081214836779086161198321307770246946503020897930748204367321789403724492069476228954013580770080285798951757728867656994979449260104466593345909141962984669508510339954765393643397650575058432559328217509392373837722005573998181482106440179211409869318498137977106734248010858321727811564765526335193423206807199002803453684358145607955805009521547175526607995087866603757969495926882760862332446643834905451178985491989305975292116636937815469785266033148127549472554315874835511117359993144801848198296679255090260543631124658312525533151601131477943210207290207561042169312636681282072333965745683905345011630422646153785290195554235996597509834463146520196370643793904427416522336766343895665833953278242384541370000392433708227438493692354236351393642988313732776706024413509605455503824211509055001486700687616696781547004996939238806449572279637409704565073087152964686852144361214206861555846326392611466074821879526057692179519250909052617071638072653826802381580804691647712898469501957185131465851737626189240048537447363457305928763717301002885731946201139424717671395057477254669262103934051509062836367847629264807236082678703332002362933463583099147380956415647968124623577101872041300268221828510145296063634738904893750645515839385388387803258067411770815798663817416125699398163530841510779754606839012999735120797192437929671356355663183767665609357356318308180067402360407261526909104641574921649489232636236011552006318268397850399398912380277883511908366832782354473486781737485982473455831631591126750249094047949862251640067859452834046375354109939586744656689127042539803302267315123873318830051675514003902971371606291253304631131943526696945522959255347330262350104233292073535257473415389893006512597326411121498315240663094068392199673209692112204573848825844808377896205528018566181362929823995058359002534146960616574781338575302490530376621709470492046409939368340632698033141477006074252739978741112450945971196432513597601088346557985734663555939262704810622251573112631644833817383134570026714921702473173416104594740382846612475560076340211142241971994015020795185191903824377197160278952149897618632876053782636776921858116497903203281701566779268069274418675377404048600177122058259826007465994526232089499346413936786401411092408837192982417874182177635250733624562401129256226666818318242942496800003795637344034004670966023302510698150866544624219304275902523032847947553473723322870225044885617888999077965310427097651865279351510225735131528678821704345496066834798820512284531587373912289389536500518831985752102718447739122978114081890244579648331478598737348540069411373921508029933105120114361698776965542277173138789233302852955281682990618110767749407184886169025990698877505541507251888704437448967090404461708669228363539363110265547628681617753844038355164961289605635490152629261462211790191963645453123001291153384139668584052932063460533764483425797684366345027705901754567767292684614444988873688248679227933055909013118175346396533642140223673937801029608374908056789355343091932322986317618845771843321360118444102250635272340698676885375422857637357881169914693089185913775587697563323834746443556169614118124051559185237894055786813137560292550508587165441677844531043891118710057330174395243931527640132982633674649844953525690949927512954617843249627659479322692196312162168766563920078187782982546261291591103019472662274558733683224969889328924630593678404100200602323887578374326565202827616924576020941842405258365792423944525577098448453791737551217180957948228785348019235357548450938301041391185925384253734201125624657247856461078531483128035328541192775598357739271437537074760799064654550326568559798633678703425193831288199219846086679781220084100048470214620850540909008673248273881365597727226723591325035288260283259608674110017178932274580806069023176029312984251043578331870349513380521747908139539673787753062003192197849835321277972294831107363446379354492151905776351444217065767076338923961374666954187342203457722213354248797837674420899279715777678258773858475696775651744617382450690458067653741216006099455735558090144744977112374149655498073297946155440854510251273262770475531243089584157418739285054420727981186846571087032479893405305733212001466247563797515066534216515906736542365976593561235944026618365637773015395530471853228959247961496726320191205480773463931161079662349541568102500052994731814821432054004877045993251480205674025747941622223497104723972485168626893071567346320680822166480371813592118084095066551124509213012705026063998902085992564494369189488103666056070202566103472854894451088365497654055397638598226901900237849230233738708238390320067542004718875653240055889772540252955808534736164355667263440135453680697076619567348305121806995188982964473489184093107698635879872115113267260337313262163739113946819961716927212481798197583686575531620279093740722391148858609152484968637994805619342726781161299060129322549882281302748234811503792307581696819916149273101657899849139348844182451054500775696052604539288691184295502110044850950140521296177775077349502938123730295639645710732184283205979705519112752532320860475059396390258622104682568337836216660904869787107026729462562937056206229073255193196392545791083126183148786500808731087752844269977628792958311060592170236200751881701215967319875579546932167971184455245831416538717469537069536669698950556157282735891369913933596372168184015868517656698861605045119035187743177182221983642008862740281857758679498642028119377466498450082043133023178070390021219110904012824925357139753309935702093741052966123965328354585307042486370302528105019757647670509211689215397722112215718055387576555658580808473962341233810189990679869062849199675572118862982312237572427431913618225212023495777136511117462855453734827129335150636150381329463240681623945749196365096373423713304952945065987500897094730332019783153631330451762289904633036721856327258663053223188381357860875075168581677035592672450443443512912779684857640846271022765968698915798966046254433227323750209700807899120180150485306242331184182823199164777879753047801189271284114499098706351505700343243313937824273756756418763562045225975714693759121946909183231321059815532700253410344072873547307740217678271352580820555397674466716596595435451898018437718732577849342918756927868228708492705478369445656914299334462370705350433889456992334490334947386541892810971120217171349877365868896078032359265152616223996509817553349358621761629087403901230457644304505698302917555478067678078391268540519405179845949689021322467444666123504662971816495607016276500474177060383554303757677023175334388721729171337885294095727525430899898762715507433916916054724180290645348920964350959627207398174602348100480103620279114900888713917638346456738478584969180838797938159081894049295700564620262172673474090356713580998514415773008057512135910736975490266894903690601038039446999808771966858481769004401553840082933903533904175834921636282847448222739485288737496504124000911792728002402147521157282843209631976383309067802992830396032084433445651581178170076449313438262453158868259170583605134834451947941963626564087314410558770114089075598562613177231526060822370640122093245029139011624645952515706256626296376055449227597212521463288574788448769380805687150747656784020921648574104487887890428946095181602989517501512069988200534345674911610159497336050572123821693512338381115879747026137998855051930539294984910827160359944291863600349672119553260373868246410736199634653095472901974229385543015258571132456660285740611308765719226092710759200604365393970871970596952130123198523212808427789458313695181640211368582264285019294717965867657639225861403781467063439646436290261800074633408725500032282121021464436432866322342353318792247220606757006649217869221803214943994762830109997613931406311213019144176951624268756149359795688831177015576057111970293963835783133432644774273407661724267853246132823759793728431254068546327067927926117716938064433293699377644125095866915285995002453835489937434621319825101984219792835144024658284365204367227627264065627430895147010016707029182734004879668739489459215763147927134666052012257624777941310524179943985835665867306615714326061554847039806572445374338896976734927056178965286007627900614940010611924757121898450404682313473987979716841993910035069271097871391904845204873306311897477014925187259035117221194766850148611889286581246475604791805285292503284017884360477191639790111077465359893392482781679888004186725969102593244883486609163622702681075758880642367860805502224654599391878793945153615269294847214680690317163879311052284868240880690048072397386841388718182546905873478441819504455715770522267012470328650901727926408133016768010429970677509492749224135720122810420090372361424080495917755047267271963506407929807476723311019778479789193569494152814231731572058783461380417981755423086013871522206511825097200887179622494003421981572443323275078161872305052581601897743689445304172588533751162546652839391512532063039491830833805835029408442834071236316976279079184414130112041862671544629778438043402391625344598696095557749693851918086058301058862198460768030504830529304985395873954846140580477912877676929039510804173387722776503084542723087058947491359219597206698051777587997951231597795246034896643203237091974364749582673291156842351770040207982636622440230699434635673325925541026745171713481025077402514456895125721586084801584018958283112569094804041398673294722558925565842208640196423338552956654275871017357998961506178346420507872059271755195069065231610271828878686716930842433782597261669372998086845579317287591695364323765416829141047573096964712368504329691066068401138100545443010748969980308077561715526791527730272420367911446214205241731104020763158370069576437640681749501094436329420597495156732703205372813140254812286449585118710628955675357741038858199692798427792478193408375346873422875509510843810259314653743063766208458951922482200162267647207178678214706163267761190705881158090231871447502702031303109486566327614759661127127839111152069310703587545475873602891883438448734261492323762757057134633515915324936701853586406078477696810430984784093286641571888866428874819751722271945839830497342083969690440579886859307291888464120280386668791251751914805229017199416721742875093762560985464437302922959309408694128761366352267010020492667282645676824802685106380433332363432793447354921284699448119492465627736974187495425923332551715888660888870286697192902338551486663798827510542639032713515893086124324788708057574750629069718161962053373970171441374255147517515705060246206666185384775984939768201634205979056913551630063603515396359616925704474508241579368027340749127584332534581796362388723683213846992023131138784546635187340335616546313716513415578991137375514564442534186107194393190452272189377476741923720518886733285210756761868406169631177225503783771342299178978275285504974476870837669740800682646680844709780431340429928112126279567796280882210460906026934248190489983682335875131669769952028551014820955780549191344212989545423716346203597090739917100413682251762022261555193164527930164508245342286100360820292705309804524820443028809513784682308511698254695452283900626931743880370554107147401362309159834202167550091076952777734572208554533593188544160703352573002523718094303751352861234960364784040455314429392553447450206065120906262064794152267036194904304773027380031608909187571778323739807216465449711696689875930311452844879111828211251863502463509661445327789750758441133370417526275072949799375621004594259546790998206463180226134627560578146023844240718999844409175592485135206911980245594131171919668052435641164496572741137290223860993096291508981562073705264260818627528019205544421456349121495444938413378110201247342983693949422395366052897917055451398420496432493282072985113120250898760006658258863958881738124411814399184974446601184907408269570673304090214545021123304869617909796680223750030366251179572269927878748945257011386641570624585811441554840428959760584128817362977088643475049269842897192404402762832362268299162869509094099315593856062080756477634421493619532937344181423961863332657388128651438938610913819210388235814424727280421285734490310724727169266047989099029540189335957174259570523241799063530964373595765988128725421979413878713877597740244459765177768054549254601811824406380713233940725357651697125345607176704410009534698035489828553422041608549680314504965435423898810179974359925048860161545875637797235110429010962110824836469757611646692484310992790698226634456665145771395717618230974384039529580353275248885947294865161969218166971528127050567179217626859685129567830473284849777596334279466767000166107636226398577412547108293800057572536059066841854896193171205623919744442796592001168871368263764969747648102910954473597855682670786518186033292500154998842777555605114771947877547887036560589079256062992360619726838888371721964671668244686884763537005602357539784760925805865104577833504809306552777111198693131918351296928780139300172562086667364495800990383958732611704728517859491696697029762228393866597458866188992414012094546036955969209241582551576077524357281349114137761117695961379368498690546786728998658752270004506932480399872154091050813454047014232191303945569853917238969776539850459999934429684027861250642292575160597093758298400747225060318575567425924172728780166196508565612891139204919854245083781002077072169139004584547040076324768786446151850005067605359939928807333538607835891815210432456516255251876370090790747272761127580331353231156022160913929475240802609071772227694737199760835633444510137777372400089672348172634702221023712716755945246672057144169795716104612157653728482642643361434292901808766043215741773666504715066626265381353664160466894494762813215600578786666623853363298830714454134304382232632023031262015392308758483308292358661778866856504941032493919982155523845626031533477083057069370224859112811373937725267728932675211705344341525251388889555940012733122924918806882125322782874888067752855512449693704941263291446523505877023438621126945228778686420141253356200740267340886025215056283204405360770116019570537982214120716642666972531389250082780443254723812830383808833934495277654873337442402705471479229303855635537057413740884960698828477389641680109237385168050470950654027181695114379990050398647212545331504168322680898215402726089508921890879841800892495813879583966995230638774274068382227244197121847254078577455653728169499783758679609358697184417008239688745842963464855145602485780749171691051486953660238748323338603840662707600906999014125555760672648275532110262375910806138440952239124418704846113753476684685514095322101188670292519106830572929272567620407712567238634947887207498654212145520628494395495713762364838933365366687246824805712192411541776331327599180349328882421599396745603595627871377837721912865124207374149291580504139606349900138155179512647416934714271591990632539922475476902849770246760366379956692736124978809335933900341889492806282439280779470297394320682511602793598936476141275059922690683938058522927206991724656706752512966773569978247314945119712774962714009176806628409306491977169978502028600880128374626949112177699327240898858150627856235532822645811285955646533562322053188388107320657459966438845601520072676403015528004019739602675061419804122428921324396341073267028412393089461653929576696852323549876459938039992287504162336629057283526652489274208260595321376570110335014889214583624953582174305750100104521831581246584551093513113689212676820694130936022044336409361531802338285117735445133619295069802376861413634017011741709369911063254807850133071565399460992872270270744686276845916326120523569742285173649513956557468524864691086163520092924836882519870495862824713340331632216300176730519886310693590630160402714194740032213149686835746561898881342788050024818810677661191646816351443419207160201244039862243421808103208842256239883367038428324826318019637366458140287416435790436200041143082006770048297537416333173162926215522296047806833192342541010410580901603763997041079841679926945328237910945758149637410548039796378600079348424139459476630986535805802514828732885193126408274786120110960865370864504593210598400189843329461824964008840245601111700243438417383437198668274841471739972858835089415297745505707669630570738351558829264708218240702135358226323853304764355301958153600026827703169042343785517717868192630547036441818153962238817071296816451838623062556783034928509839665526309520327827868136987915683071811014481766118917689830020625749057490830325261742261194675431741359997670962237987047835620018828865071984397496263295033422306022375457600660881758520908240420120998378050602373460042716222494521266788203358385807014890040615825178624106211477626332562973251884592280951645610908091804889136584780268079965078361784019778175496994757795582500307648925746189643234098922682253503204212936161972620351666302847284841383449611017602694677906765732012667267050401717737633999783922822376731649233287050721953438368985656397600659224314673748203842401575084713722228765535942554910213521388527452590152533473515901546602828654762027201173518292728651989973802079624991230695343585359537344455883131316871863367012423986077888871141060752697473553579941373321381991393579613888411474720425248539730119665324499781315368233841571728098422380788602825421055951434819843136722175638613558156475016927817636844353116176186853050727747822187183138467394731363914075062163147013469610378752066957434374426806502737702786857571147024110355240494669191494309343221848543567018321857328001063686520116227578947803056057186131106625246246703737804880173211040169937555821884116540614434065235295762191917267658401655361659288888360506046442955325306118902527211827039409154145340941084849170215914843441570750983313174764155306151117692465311973316361393851268319471673224099171791194695764343782538105233158659018701905991004713221532086158629343986865618301630393718881435242748054607302817459678774494801224952759430825748681881590178589258272676263506243944583473888308291918762509995129235124257599773094479977377585173117684096987188182826446095755236541642165930343780590050126702642007348593940653660902231292089967872645674292908010682967108645204597065380595716066311098413997457969470282532590163318962539683880836214273170719227088087942446119373025474565437665044138826124574312316620372314164979689972697690079749330089086576527243945041114146116731146448984613852966812412625828995958947186670638789564559443618844663595609700144743787989339794993065397627986720879704257395289089698585417459167314953408235453203683966348242990004858428981663032911408140011053259322823126398671609433925063606625868190331021033006805434143479432671995554315926479875341382114339572653148962680498439897814936723901646046128868421257279840878486790409503646934977485635990897267981911110771766443296247422892145908578872389425826160798316952603816733643039252906250400744787268669463721250363122600954841341464712582347827392122338460437777234137535477569190189632507002724091600140552215421727911179847641220961026791193840446292628435539475371236675637952636802875901487592109010169372678507851503707698046202242687871814218554866823127519922627196435516256830942578066581637655787656768313164313958982705784812494293125325931898732532424505888015466478632076879542755653917980903179947310723657409401581294621134422655065952397970494994851531820437465740298637329092569654885606481867424756237119365806861614051019170544784366387052828088444042836328464490426868122522588766919346373454812848835279744989517475000469482102674453034393205866912021127627543905963367450714784874298215656143840909376576972633753283785271519667273688114236423344654281191293973465928013688338563208930878109973128512098730050050689546828700861955093613837303136842017916463212927662515983657648447161669071093395314600820847117249659137866759500204260653257560629164777620905559554791541270787123126934215635941491985252876287073349498277686404408394054310938859751040470389643605891742980139990573450812167326008514029905018848712288670111632297144932832578708344575474695841693221105785198100634256646738965700768334831407308665329718084814405898994665660086519126040329854034242914367043919253025211684494680582091696788570396813004417369382655670400187934960005659344560721232001242082846657996790413001775899916987223605447818698710348503664857262528098321370547424373151539428968424679176929178976599669001424104286382728081336183684647826969535588324680996548561674762638955107915032616992020892846981052316091336006478937041126727939954049311021767173972025890761366693253355275383967735946890096805021335084567281209981622105296862457646989172547729411912661557084800402230333328559999406676030726259990101471384252642338890161683149032864376673183566418710767475369449260475706820130640937577093912756579976436328733422658974360040301949710103697567021390590464230868934589281833497007561356113520294980339029809416702356378699672967447840487947500899763332654987510666887460576461406772608220557964131555150126744028854166137707776440751431044191303701163844985111308937143508971813250143868195439241387590268317565629616311824148821891446200593011507423203725848268037997915953817638716166543221505031681520017366820363245360924178114172101783147677284559742100712397651154969177392108834631636803756203875858552649005120020611654375147540020244533756071665815131321750961364692220580550757026116841931934131542073352504292421907112760606144588036213332860889541134675259480605464957699445582445009237351772786424712426009017753547626637163986498134715799550286712585276864852453639351580512553383294817482984721295220792179960569520435360749238290714730768779732510420114118771652611211681935495775586565897274151777158261183039999772513982994009684049077212352988004490523152831748228005284519395617266499846731390763100880239494162375970976938888327090283673929696843125490310080586694528579014480767308060659118230681338381319164087993006933509772464977378790622645895487261251879220088699786708252161696969257324595217930051312166027513358477247060656701526235241310707931352633749579320407174852515538674388663652618168674370084721837529854536726430039743138093137998021919785586746089347409189580988504449174235312222289925528346391859529875743366462329271226401660789959239250811117110175665829841117365001105279274863556114445425814509323130650369762391658310479508207132728465290092001352012451388018326443815477023511253961967797505310108338980863288915939645146671614843588178419393110563273967621571165164535224235599474270273625793984178272662918936081867089823105734791668025055610477860633549448513991920713182940182109596444963232358568878098883095923889574980267676197768607150578237218807255501656383050340753312210379029316438621850098709630436350151489868085642563509257921366526988731735627449153102298854979593734451339414255957509912580207084733635883773864150410318653973796334072052165063764574363368570634877721672723590968133152902462514939234152050701741356273682502233841434203373775000242918594160477803303469311234849894901896657696497673754718355533733896558592506299459649283616539741699480499364692977920253685230994701381885140844642434710217845051782620627641636312525753847576770920745746488609503871262114892058997505868455313883629742655189405990524161423373055574358561321562582987394438881345070066567448278234625379868953136784366818968105005055699423458541218777027026158038252504794384431563174043673405916602808606707057925218092403436156165871171318608212424098760749438790590980185507224847284599612040840396703845451585714868493908053500240304270974051281131383887767487373962763089932983457126850194076072640701164592223358124062986111355740523322355814833940167815169475783304045905441195099276994540388000616462514174792081268548074484461051682914179877999702745508894341539567087560120635743287855787316979384422194292645544254501083767926386159623731928584457618276528135580809966773521890459776006321601940391850555947686588960021745678580972716070567341272163407496871080235875010204427768972035291143195526610679901595798611815573668198223406155315918186782960514602685529034177836633347261745477433488375721217796851722007839969953684500164437920268165005887034945883915140680165435525080386281309577817199601182682601071222458929682418548705531687302416239005247122777341158904813106795044981229591455974386461547605464629816735544095830422988611769284675778262583592131405426154118041099683622655210607612629112729096119253968513104647024799532245273918052703820083330038241359742631216133684795488308048729920122405753150439139151451614298678124770863834397613903349838426883417519908814400576012932391327572475521378913859286712385894540617205114379484997456465935555422206643590298310922212235613525505563064796295868675127379072271052373288955692487953241256492432813287003778958054027231163783224263412636312442652010137451128092479053899990383316709120532644779568269799955602715067247485403731768922255091788986977927260760192791584917726479004736917356805820338274870666066185668170966847214982815794842824427690793324310868240761105837583867806632300240363144422871498015743584836398653530728061213715566306858448392790291431874417823259518950584647976573377273431265428104950223793743889214162069379572568607859150787400935415431536464993586581453194466946155247847817218904613583052223785386319055202984689714277423951623065027256458220433332716936874324170419743842209469870064703720984546736115285506627526754569380989824785535959278865779545722612817582822847798055239312650107214734270027980825891051922237927878291875437419780204521544027959339627894005668954147622939996538128934980510871554161950234904942602393051393075275941928933874415501602674348168173250153527015957311553831348409865588540395498805536542949980799274264225463798071652968893426667154337534749884523421609063942221777137717271505979705709561071574620602143776351207352706470851655224559572478973039538592877660024172347001275399984311086587954063344470942027255202757351026382926342670564249259039130419185859441123086197488029069869189312760440737484791869583153964210728459814637830329620593095118678540503549436937701260215733721298636210223477169630325913986204375496217186890025994090679704801204036886720043070015685484630026197170150976985372825107357896954409064508517179275142776102230630294720815038484840952277291770957140025535350131255657917486660621949175860613506241710847029466017330178186379876912592860880885238215020731464704431628134655377937481418622039146856291143734669957114585527658218280168917425589453819400266650201284245211607986545787838910334695955118502777556960699974968838372877116208905628474774755309453693405178762235881225781442372403713308113111958738032836071529917883275283478972122589913044124775948072664272739402297072075324565979323838017628230810730475852663162800995955544693861318142623953533499531115474645543543084640627777896395082054741436871383032723491738252856796344616764402625035238394988953495214356834160235448571977078304710253133114089938547824775579628910340274658319971367460784969939828956557479249910900710100218480127536022855306391709743868085187376309086111288240683121636766786595820363776506850846125090148229567606253418437998696808401621015444028035105865132430162343218531922394085914493963142004849682754817033500188516514262318951264997377864038174738660579027680477064923383186797815343553628771392115529355517280591476679238095421929420000502348078069325730561391532028888130174001344138802383049378837793992625358709614438237880677846144984215057719361985269265480303132858028980065923285078637460014329627752873128916837724724882111106521441263462982938154027930949657087225006718097682380085096380576785440657114415210268331973437570892859314325289710536474191766365543572118219751919110985407403816740306923628528687530095880928983226238721887771511627333711622705098097346490328639067695995112088854318251513448653799367818407627428722666039381324930005174738136935563934699051196556634378351023162387511962740458172734278352955489352880721537996412843866447304306153973856000646638692972318668685949472044236131017639496777489196612859033420371986764019210479400621277828086929313751846993217462801076224561419198671063909162404899514443910710093735811043968764297636025898766281088743499675325989759442352091340579981842961074118300853561155139015905454248524383048780445929225282240995204353943787558693331388934331078412652424559767768801439129932041527865540007408258392688201922291445715266171427317564831313728583489046075238621925737037098724918723547253616305281805391186560834899730713315140082466658016555202628767765215994596857950603063480298262631164495469980255529714545529224143841346984634287836654525886546963669290381223622641355250099880374852022928531959285539486501601264229263839123844374832387364243362039521378032650051744725270676422288336241000963198272352523619320422798686371581860743757969873368532847891177603592155575215365859246679032642769567757221842719470637728025752914801923962608792872444631647967786916434383832154521014903805055169651119901740842422328809588422533178146084725758491690306229547891125481003992387753765987940268269881601737743147210307957616049321531987369465177253570899375434186336402457821854100222298717159457824375966247719561746588896274114503396691826319501777780426310476069148739653731323293687295616702970580560710136477635990387162821997286074877242364217352036713968588493384601980375616509056831854750910034962844670472737987319397130767967071393898326092211625172323618138858896598518734386689041251397860094322444219424067151035267646807181305712605763862274795917022857395930240230155132723015506216651894914818679698564780809629123286971003586958140072461694200159356274714112791938697988637609068059445741883773089371970115489783964468092650985180116277587409777224357711971852431751437525652707159894739923445403200004733477421727915004365804647774003763726586283516903147340251425281591340442390938253351646537656925403404577165274346510920127741222864011285990093401598278788723612527694904761271481411279785312441312453124080306291810663604483817794674792998112643522656507710071945713545349767546687126706094875883433149996405681326855841023168705083845887056132288617676190180305825901310259403388299189727346604607964153310953268480148448880717620629886696301551776329124480049085689001027039645586843677230957386660448740732544279877392932947779815242569440845758975131811003726965827766591138861619650550718252295264422758819030299695418733761265146547476013365440387469770026457455711365469288112904816706654540185756862306805583445530051768592029390544052950166907650764933573758422376605140612478573685491416927991590573624878222060805362109476071802425294020497782351173204223148641638454281698029277541556931376879447653645423557079077634207811565418451243118246515644228716644198345101872771520812393620808288167886556249758456926384323617141839400484904843512598485535385058058894308589816023835670492690609138922274073108266431310539703948676095823093224403916783893438582395990640394567536507446056594876543865571811723854049286476375734492539778029795540780435305386060238810727854686661003669165279486807864158927135287547641858887805059823853870086133333474687707055094589725043682696461275316861853894445256282834013066175055450279200004597194708927673575286609774807162542218449092955859699852327756164295619886535596317921114038122803161006157890795191898386999928666064400022416188305009838843435015578608859780744149239448001504993171349681053148491816407902686304062450726943728256473508410119931527187633014223184848606519401014075494220158145882154368381714401273928836391176377696039357566924411381919910649531921646252390933456469555262541258023483700318757982567508033037550465273838685939489583401303538719471978045171650725717340960169002225427491919970791955764828919712737333476669549273762782759860758010231747343897135666839172426581219510220797020257354667934358964858050810752069529307653288485878435639661432661635968975183743227171997505840035312293326175226893744031183604488043272453954844513800638857708197927725687286308631255421695593179575441766387286485248890416627847760242795996221172082191007980848504853251109718571681276572503264222023943066589631005603307183871063976207656129438260993854615719365376550798074556347737184147319403555476825797145464620073763059867547573623866907629272890648219365472128252051853574874341388703986222902333803778490357717391892108247792938020214167409206903681319415189303412413932725115013312939592551521412690640938671327458150185538316874140088952304525468437541962487726007078929278835875247907141056528973030393870702624647864980563386586829114609840184626326403827034946840742048374677164377503887592163163940740634050389211081039867069961740249743014332880045041660122120464255064292365412954337283172329390878449888322989808988821556154847939659347245530658204505612720177636142926487539769536333051356264765199779765341221766065790524818433719424567720195939507600475195131752535736986225063184789440425892023327275860358178848800195800420546426917898664049432050926510965183362194598484840067715268299887040546426048462671077850736271066100480810124135598614815583311248488181313959014537068061934451069298787419863787878392654062212408974000316676020685854039103542973508516369226001644321892061680408242014539051958127414580137756065187991473445384804140619655963014997515841829880204641624031182193122361436473626050786473142525595064842230701444178782425674534494645349940679742750763436633544023918053797744750840523094332362776916066600721967542576710075667950114893351494606373931132791769851434273522378089204722393848448637462669414098677203974658944239497263083447607678778128780603098860566019364294838631107503719013633689474354758790694078959656023237283686467740166314509208346281128955964796926755769386227270712063578648521526306277607799956925355799918006178666953053816886509740858295834040920179049762910007411180489103380282063977474524251948097622171396285095277040890109523612230442586236281947856563322407270293008784876601594234881936163706064765994474323660239108745170807655885661071098315039901267066577312585420409648047437723460956309089013455207233077546142599979504722214944629940692939074548661657630803633384784092696821731311944516335197229196131350103361542899013820260958526345925610770691016406361754317030613227493718345720547075369733818884736425785965764018030434636767667302912145563582143240186580190300212207332063187812084024611342126290131770786056580216790623801080110845146035404543729926452926446965033522841439232533956407746044840810138931813985326844696090130091584022882588065977677874141282550989982477342444922886660010136457801047714945956702742482804442212451743074833967057469646672544859406196137670493110194720353350155487151079604547345148002537260704556440645158463050234873639911887043405076828527390784651488527927123752241129964201778922625135589418456246203161808539668750616133437938936651581830577340591744913127011016111394764965112570102207815833563654229547931089674640163412745262744439287116998648036831842506499586083251252604613405068051130362763868668924128397337216607501097956579800776945958733370195212594581797833420987814037174855886764607942062931720709288789983260244362651260723707714578739202847962027343124523472694619093359884870971033589614324496670856882686898542675400320660813421591841552024276354708519449155076714327868390109531928906920568160766090989021157134330484868803521119796520452654923688714443496409463402911506440363667488604730876339059109530534084908662371569709687926783027118918507425906185003987328603886532451083645431446071162418119287564101991018724754225106421528369247968754444117583775894554187057244861752654119699583966100951215277008723576388921961245563563010975255435124553147710117254246980938321899713690969579090076970577952885458730929805451220222058505066046137857385603915923362510903325191961098826440470655746459150381907082495570639240747004043108777197856072682492313593504763050921031309974760938344470068040137388864021911372174901229938898618470273851296412855644694292922435626555912946654636213896825170658914019369116456132391196398517038477730622188138537652221116113674933654908859936348092514786204923853743694498025611104076984915311648738223987744509692168089231321180721039255148223824019108597933538006083492619707993332980659713586171969813562234692446332602353919750122771601087493009057096888602088293044276755751521673484445337863508091929998765606498266813097190389451459368985635928400470821359748221793620262055377206280244892607203899340045730022279901963465887698171414353311877307293222758944243914518286594245516353519677247787908255316085249539777381166966276523043606886895964772691053171274549457061059085721115329986304739423654631161517283525519448290423029310040242488881379077278098340215156907196410163533464350551717774328942583169374439824628147900029077850665229891835870498950604895973815908328774436457677802594664972236250722059588273982957875681004816953441375088288350751468664830474633653068629034593991272521395828395365912402938738165577757011975219426282190566198449382583371032952423173233373868945752119147821343466992270982634642739302315082038897296766607014517677461277645268305877892562281657244540545209598090745205435315046167452924768404879262517712878247212911083706389058251221501952589931064116861949092588675766880766561426269095075125342332378778222095417996191909622015528331164563799137340708776541644886243279682466886067427079659479790496503985610894765913741504062545215946243321962855927614380633598235494634907890457453123205071008509834498254624341513931778490294458171954693562179703397580731158990532579279642066554650165878959132205900360512831327720787759227631360583814007657005772349427276343653965856822220806868996042448126451700982070828776504577203479879166339604753893468051389179056476074466063430659822605288018430143093580635753759750767739643251056578016560899421552981985170529494274463188243004637407861354710240138599242997724894015036415737654796111123115182983992882158605679804980267517889231506263235567426425717891209091967918668064759553795856025598281011505570798197733790945618076391827707864154855769875295794237532114048285284764636753562759278923376995883393075517355833585580573045063040948384306791250298321196487459827393046775232106110997341443529819814484430677592252467326943987937398633021441489046228208092572722823629190041802886314291153821994510948413614441799143018437426235827969890826804749514421423276620192424746155819014863678258577265065352110955421340819020466194588244322073644714837595139325857459733839415174011170533906859697676834348862158269187364621135443227922839133359953775358681443509238623644645402887830499190733102548031951586943235219486411449090047382761755185598852752084092970339474135153803306936126015340389886119579859151666668076563057066545340886940685510432042854720990845705553309418677729411623180082924759935758733807011144193280552828349149694350210770476850116079880924744091997141171482441731061674552590836906494590362101278921956164864627907264839867452468931809313287371361754011096434334298849667961572606912595351660270403871048350907022567195887483663131656537491966926369637429537587339942360829206743714779636726773944114969843650219584227519741238314603332107524639287989422132311640244436625484450562217458597034304169469186319802737168860136278446933893316212633650836902098220726395118863145751657260730979753259346863596150570352301566465374206370414902687690759185043576058258316210100432403391401423633711651176807531138125303302096128745011787374932001515063235767705344146188861477286619074846452268432043774713046757644158185121615517565831737343980626729288466092629666032693189056141395295180175928015106648815553997599691708482374461204799202587449677311410044185272659694768886660989117031760717248105173226554072212047722124459898733281869367475019516334450367348885647627639829769147692463129482278988722049472139600272741824103670962433048846421727946670995995820002093986735437387532255113319838952730109703917610807220995919811199419312470193560879666649630454393276461541830999119271751723483454188692369218419443940330298268940718197851134476188180204441181003371812186412675328515479978392004244630695904141362048749378324686882251264329190698601102754898970615172872652200264906779582209294199008531202631503658865216551980475966303003915391146044290649979239456883075253785358397134264152547850261207389855667938856874590367353695501179036929973167011848917831100870950845038608015362108079693444920490631505996323725001613450562881335399601909138644211322177849874045724898665454324994007798979811806343665338468479564028378416856726307499042177843087274276212967827424003335762850693155109685194476324749902186921410316349343912203070487653870015968433690328956184506233631096000721536890674099608466793473029126100989113113632139217315454138654995951019196841784329780685142828060588579603217563279407244121711388145741139351938715845624537087130148365081833998127469888161672681237509433332163618616598751985794488819874693104272559320027070928826768386041990899952501593616508771420428151949762214697151539440041120694730581095272797752100602893730645719649134700542871222635316185286218104857001117585145014819912718291127552631282307849931957601312181565137083687420404251050332666649881171138537640771494782147191398617855821409031480928873179706851455964898003798628742528934961386303977074800884629752117879048625271737119603783470419242420837287817067570503372622501514668115228198887660698956902825828201484348730243819157746065597773378491643883177774750890652748100265311729472841793589895829941920207971084878547857494841387047068044259552062492671859585695540484886234066447433888073626618723257678516822677988272460977955258016846572969058160806246717091259718562042939649891645249410961015704638623454177752191853703886268174792304828103516024403801874447286854887515757682377539694316330717717990569867168492060196428554732509006923170744834233544678250852423379723580455398859893383477262369070301757975104753797507766316672306148993912333551997296639918450750640963560478717857790368790304995854418213180949638798506880316442968121382662560860252719864610255957606623539344689072528332642584701562701824660968288107281611133407380021672271012194110854250443423918605766731983885318911962347532808370916364858798246932161536514779618926338779704991194119192700580024374096577346427733507907678198004289676344411701683953301474585607912269600575424274503809836809046165807977929239164818299829486832852005326789112414517866387626129220439673914904883862070710645581545776437317676438753829867926791976360563445360466303452553624801688497435045964649139355609416275717908529580884799312454594547556810648929483292162793714444140805231489586728421406888203217902330133483934669005478423173101901632676747607151152574530553070250528457127308935046975886603972840150669558113947233083332057753451176772301767905992324511456274634965291949452400037593822870811946728435709198207254375992962792734626847550969551238760820982475492563303065543479204616488077932738792923015510627871089877924881571692816178056839059265936228046047267617890317089309898867668731442597842018223455324086447715016113968610615627201593646334868582177628429981389702252460784103606341636200074098405188060883028867772456302341089950022758758781169516815992268045661456881536316393789117367560001580363710802081486952467834494592728990657861799401528977729713425466480622247742080041855464045532548371238882399993224001186922663249691054195301768786172185157278904777385036159663905186077018757943381821275406748595747933580786194900036366084173285296580708717510003031480107798211448949236966803533532503031260149921795718260610147042618796576967197543234189704587749983535061540805767662557324274436191022037051205072936030913864177690440410280800050961557233000014227050072614406638999442662145634487695588648030041991403502057918740583950560467311598898495270255522775497377409408563479820908226259186211681257620024473661626705097389634529662180725448021313820769407466926395580145416476950940478732755911163355044222360153446610325356593439119180258766939701690319846012696531319889935152526120718493895694711726111748205559781041920829302961661587452543041911986387760856764578016564523258482646138111200587086209803510198740777165660747599245007573793834999437105518760801354201911164209402009380440980955084386236912676021974463010668680808090760082005957587224198372651236632128909459373140134943970490570256999787805053186618575295888896813713684424626760036503023383945080462562946180288278934618697704340089151878489228024958428497709068669191642432639861565807298898466538594501424552882727569969158919650785086440385052863710240974573143784538220842634971008112131556360864370240609260902352520835687494567042164637576613134819953003309519817314556174686220290176727520141683217463901020880237161297180002471817184192137643486627203484612330082331864728178962709726899725688547211826608032453185570095786415249331314399360391505329914052296626592798075738409226435339506760698372814291150681871467605203403965493327822529633051808926512940222353154011318930964700883633632236121197239796508273084018579062797713258151826348837519954031469743403396730049844665404551291914382837615399779720058091075204100056729287972414669302660082153617551999422446318101928416359893860033565598555301853967600361412587571292911791211970917679181304974575467115959978446033917815963664784461221801960678913397939783087443384547351460695342969896070681714388582966914039271419578536604827379464174345056945448985622151207877025426881688038811708677333441270912280866777587121585590130916662985362582495477902246572364044935587796034058484401509458965155168443591672863108830756467882894643054646911032990374753470066261455019513571679045348564049181963614514281931135333698987376662756374916607829967470574526336690965235422576018789102315073449296284705198549743225711719469664131481653257406168784357663630521433432046733743337982279232656912972841603973718170894441174943126244981800791716676402888187940105844416071165021572169374839501673282978949708106512514458369212432453851575143230913288018996083368279943154035840491203806852636567251113722022237126924637770028255897768356020702986906697233029415690039900634695037894574737507247520068637728977049053147556414954664945799045193212763080798206013134848132828249630313776092539289020957562563289588644453458768736964859907758169634830223318057353580912125395477331133069592987388353406295616817882053436970974166123421205686731173945747967348584545578185318550381986650753039713216933669422732887152339192531729718657113948840530449494974040350229202427163370960085984034877800428470036889307432366845714143119761021250545288466854811054810435857323344185092844756430881523348859286991084442180130759165627960929619727033592575094414658594674968554703545545392790564328264394628976778577793848346027328055000608478641167805551730080365223569763557276170230695475451496976694849175597514788433525276222972346729453746847749303979546167990915363384764795330234482672754113816210699490270479769400887058008699398035336913548639991704024445768818913446154313400106499961289427891123887673071901250877769281143183062387587049635220975719479372449456303807335492579662680897367808978851123378430425886928245739962116656619745059483395410530564605903161075259847107355154405896730870952251764038287992588861418320891718819019258624515463025532817972616831391741299751541235964659825845584868536420037015226913022006258847211080908518445329882648224540332854093311811662547821837077991320276300693952144298960388968898146484559010695718409168942532510982313786912265681975582263908012261429922458027573473426778519375174574671191876440122650513415780765984567511290498851393650083710539423147200585705946255986118930463668424025549487375392827210206437676461321677430798572112343931801791592725015519979774778474373596147016840322428669843593574900392386034080547770959824347520118673623889269400806571345080289812006294162041793012916076981715061710194443830849786613213862271359303229990475672235314817617807742296745298130016020649149361400548849945695103890094165877171492777721696437530683741300922740941626762593210977708636492446840499910501274225730337557580083777883295382769799334626155104888441747051021281682902607868872421951983690264073281310179555494511719623484504459786219561612574159565889713805270812749170779106338832551436804063929746031761743965760262917743774881734303318070361211889710969996176023042669971760915509847061960364943137556692141792464356197958466823899697689596756680003349058470370960644609114107516001952887164132834707389386103472555907558119626468946278364344545703737700263609323361588992908834440529362852604556406930267080085340632464896632393804451185336988766564911590808643284591656233612316935368436386093951064757269866025523930094499887150114820683556618260068733941819567144532585604410566251034234764367947707517601176010734379881784443302742415096989810072769938007474388469649948606861297480858060442831430405449991028689630683549238385878646237143778656923671229648752786346065944542094889695685644692073046685675261544036459219933017453955947892339997947488116369183628448920222639262519730924097888759143977302762690705348010920472629565181462758710224386672543771293120818989253560552707330994482212949268907687537429268501544345596260573768177786156725523576337774439481464043771573744304321173110784809161237664120667521107021081259901835773309009158730281254013751853657113736412995202470716950556147843674084252805099816879822723164908983499132898204831512796839297449739219336018269147275999216128393926232156555551672562333933796336672547593559344118468615879549911812264017824965002342105885347224062934438465646439618571609976226145909489262445216499008853772703708094004213954388187125258370683908318693320737550042635761289373629370377499154056613135046762817580767325394015733432483092496485881160259143963434670803672168913231659860043094871223473883822192894371797385735485455121458679239671725193217271180480234606039155812244234635589735486693156909654863576343084735195702751317701944240975418341818506287734872328037093319965735443533580471783398815110889475001075182781490315936942749166049735540457206346433321691848052187964206802131814154721433590569970395831733231139570525912271184481896561781697939264571911779475736092002866632076997414069960401732285256421963390945640594532933412411849743215320852852198644115969076084000604629044960560684105779922956558034378372481416813558979404769002243472436722736729354414522653605223449769471403683144558882738343431860070001389172688982366865408543411955024712223352600637403618909467287132619075137977194574446510367279239273916107478208628323664664325474704167400282596088898421350276361438611253806572016696989583280887849891679760724832439881804298057373675948103516495258983660041507055814702755002562776630846065968940220391743502269065840591631568280046225834820290973091781629806661347700828718293942980957363252790475242434848836851852738301007642117463934570781106396778166873102204096685617660847962643275720664823783660424058503131434403371572474670067418537754557650753961153217983697952089218377927117605678002934412512291792123197532880460773320324949668566835140492698838322078989793623855998556622098223219073995609642050474836468055952450249843726069350124245405378668168391484134495382070210442748418837084053126983126471500712099674284983373853811955181006264824616176262769400739310431903832445038857258952430335131504977632632270133768451329277875382084071549299474376721386305204226685015950889858678027803493903844609613940480650586497187822285359890206701059346978027310781096847268918209909496173324800485687592153737323826409113405901374565966201509132514691248285424780393180196413532107465795964512925570979074142422766293241957310806248897713196213669768744783148953608702001194665320586226537544364978461946039779597905538169007274295224270555285071661376108949772574625439775319831731343604760868981147862394174652333523657666853945723535942154699070125350559453094127559970888700271728201837692716285993781050617187441124507948765424264880091802994198631172733481514792784406007082520173447430859625167306172770878354153390089860184814118398299010691006221119530542643945883901169973883368276217135871966090495992587264195993344483944168594962003269100209219868152422012970943357476599117228346205559815649190849183716260086829587430921588099127541730760198727357805332958411380007051250449353790976616061510625010660743252241860662408305120172894674239284248883026345902218706918845620214605297688722044040674625147826126771717737737034162244126183025289305400936026209137303280135581498837579974941544512367414321955471469392100067447018519152828355763288811892459282949930524264891534640165651603279672134052119310983700045649915350397640635699154182770766232564349081267359236203984752034763353228376223144893357630887354802629466778743032328619663351067155919601774717699961620093767235133853773865246964161071760047320469094110842632164130969881353564696655473156816617184172682979359175961433781821864227864705794372939674371318940554791361103260399726521403210392797864459236003179639774689129148650020435396415965549271852678647971819932160034525035397713129348456183647448300311617431117363034766245233459803943340130612289506868440743666825527851465048492321404575281389805766094876629542611296632915515181894035585900493729881103272750702928456081884697815885950234364411060773869663440874124011067888981469362083698715620214077787281964577608593551423031142371416887150499010265323580881678281232919403420821772706328770765833077639910883722266940592671986301595634735688732535207949871367119786796003418855455917418036356161548328182455400425818063398579042657712171677349444888918175919581934392734315498460664246499168428133329049542839552127755990298742814150828051734030946642257365776456569090499446566705204163164161385830437575193652361038313131884920534486917596116730584606113242461586063638564888586815880509109762308272865050105668637859548415303666248723249544668054134787240446806089624928952615740900071293500258234722003446749792942296040441102704555637814251243009040406979219359058839338319447311278876360786509707600800698854734959953455788933832422006302561509778045894748625014060351981079337423203010831299788345846632742610618760061928130012878712102842339943562011077394815149632685947962302600064331272269587058743833090950967179173099471827303976402505316730844833061282289152961596685922524246253873115154862265889011825983921614494173306667636915030479445670799660061473465914181784220947568412007134171575350733119802707749986751222285085672666718350760790030814305330165253706300956676349615335593499088328488102580824928934743826020166386667018734569430130295630607378498974407740119296760103903128274721988665815878845878594708219451742799126254659565446360320430748899975779429286726596861073996994094435082265471166004951440236065581423909680138221462490889898189262672482974786413698166451914191148550948689808995933634558767649912145589926826238577211938464920080241711854383702868840745746889807006484922028087862217949574745673620579678494317680194165163771189034677841410425295911504462092372046780058589470990313863133425081900756279929951903336283207740337546413032614275878670884976383309876675900780144254386608971381318584492394663549459426710434961123076579861508083356662852855908069678816378866642480499593458267854376924137759004994744735575177824619258352732700452696768045463169334635648210234948468531625797280899281007992272990267091268555261508042928866192432287980163268846906995450426497561338370371528203645401614228109790174299289659872787040542853125891887880755600383627669940343916598042679987031938731032188915083485365889010983863716299675445889061767611789865601879569276629317861296302525483442229755989938676812230273476140151147400039762765411109459128627430287594167756371291524522352973720853437173864164791640225009703027427393877695988755995804421604895925329958454042301787880596840319567052990219455776414923395148819230521209549208698002925174899785224805204588653963049048572466785428584508680415912513360640123343249742513821429043773613928245249442226695571467890825436646928828900481679749258959057621164242656923491726546166424468731494963473572472550729833609906085819526892631238492890602175766222493309617720826629166269143985488708004975821025976624602402701941464575125535634538798649763162479799804109379859127429963139475764923572446855341574825582192676395449492491615263792081179542141480880077232979320103056230130410594076389375190881184812517400552119878971260460850649872790377714233265574067298553417461130395831527107842978535085298238057973606555514270035252871021604279729756131710691039920921739051344465552327711553511221720373804787751346242270047160713207462030333323116435859907086601239883099513599676070887327687946456038777898174328527667759286643144071824107728840332630354825494381367086712821830461434615569606974310666632363954047406441562911300865315216194816565820134465665741455139038925626614675336015322081605047958556000446459587647015327346690034432900456451414812213408118207785245944663462260264392311426615293809857298156247711785897780880876429286735688995245743448478277008950244996281290390167456536798393793639110920973940684915964868099823225301763498506624059341066619824213615724708262671794786115452737717740040118719690160252607223265740489809573757082112471687482610845503149769580446508237234230461994432122486256810213328727102797348904499551925874921974008629468318388241214256576580261994199221534760721936655385613257587570050516803820787315534419008856091259534739350755298583970525576920090303186221212065739898732520381144315764829982306835870811143871824849562519285988529088565725247430965934289160042605831920295108156533286294107997085296717762154584804528285145966990198320782200081279101604585071229837795026717437300331497630481672947728255675283403930915135655406163709717819414557040370137858259056353009229202089028440868227298513090390562866510088625295615284768024222274020447977731045524589943458525267528518801847478381264101628444633529500518098986464145097578644698226320529097649684014475839954385738590495155968061716588075784836105111227147585007252486709869485699408163159591895748864719963972422154462930650616056433382838067042577935789099545902680265511549301024689306366011807090241964453059541241810837207274113429979637596400410806688532353491345899262451315122389799255997945256275506154335380400785023082393135149529991091726116710766077532139305809034415683416206736890166690989865810441100741780522401797251636524154514221153324458174681842459208450469519241003441374125983049677632204717807982954463109234450750210461799620794882694996864498249106174058548518309528181854033056855172856998640647146648030202570640161044802128637024840302856608258866771427497546067229506133200190559634677014688616682453372209439246864470970760575927735239577809127992236552167516200408172631696140407150474941110833984885019307469799317730390888347895355649291349232821249961898858166611320848549558815215343343535931985648480469746689330261170575390941365774837738487914534695805726394634200617544451039216499227110872161055092694092194951969619698014814853247451168371761705492438745610549138133449998299687882522553012444006279579830041009348171408006723892329396497532632650365557243894444087149448150485059454235321493806616757605675130714718039961781613091316107073830451685863400150387073845292036587643636756336023672545912838273651203426134510085723541893131451078771995411092098115045625071131874425465392033784801523740689616690436570853125429530358925957159439969328201328940677729285531378483073370568175292341961317865997933362640287449479607827654896807338632594238902081827241795060613398819225847748932318483413953906758234198432411114619367809284307360608393259858554381668867490665457056233894030529793598862302801799401888587550469048963874950627625622401094835669308539638099263331516747078385548786787006704889394743011624065664088639488149088309899026062218944446128582568595089840912929921793736991460162852927957089547144618634359349148721562699233248080120349080896626542996316981733428378505537948369681458712379175780032269027474159028550294723538205150318859371015821120123654505010576983377303758820727102152153695177266115605222703637240221068237545050849753170486604539210519298276640864409970523335733869079165530125241340617709394288024240637525849911321869430444119432640336256649896726158023045190892363668370176306851711998078088861037689368753938411644215249252387898068703499814443205314128749538915410438998370982125150147924066340413303221100267246973529717062069361236700281753400160374558563211240511232746010337205547827342472527047312607944987021331493850262442393843646496225717779876517757590488795168524714836662257404548281189036543369825194612123568664761616218349877148159363762452757248574400666226373116470353705340195358302903297684022004861005503772268272296182593801264492940434597704887534515842557536085985970651377990925715546525300610537794640021477403864697769398211021385760488911283100760189666384374139911255540473828731484274787815568688299583302307530608980769458833734660845448352311712223682998450535499294067386129276620029440793012215459224457294555805986842095208719979593074355141501565128901088622282488137886598081910197322706149661923219441973043487197416386947978112776847887733771463644276150550072206394376366123918638589751459107523280058924677086938363489418118085770413898647968599734670563709239537960468428539621518077220368344607742752467650829817832688921043242999706558895508886265000572608969180867865000665046319621915402668500314902901560838719899551351520206177688469220253389678669872882165975100865725642526086492687557259746275811256325917100385869510305904713108677495983849270550366174147772121292506725776304923220931301355274214500318292666260723726788873964277206998846818555871964379607950378357948466683092909374272401348913978142646383594464984426113896202888067476372053813021084538455645632183980239954008830634145137657391251741984737120678766177342259721660527536183366294954373009233726772292650557116397980391846686200413902525414862737873668541763621475676552812494552493093406589864484435004979856063001988607100200689178270127409129527695024831612143365390458428598555095945325577603316594055042070244003855517172893917861257366487295921966668965130513148150226346638105804864927852648973215487640093398404812444715407551787534905578541564978286460613431869047680076587510763730613878917024338334115438737979922946467561488886609608203319911213143938242400046025898181998371092514890477846824469663549956150262154221032871544204349783595613247597879010216369538744282805326034181835623537257407486898608479960957569418608092727030869934820239391930111205537111419010458248562720966322212484687815516744381359741492590414452123470569238974160293827461869394230157005648850137794194164518366804372376087854168018436372193436593976632119599481214664040618461053125803343799605729861885681792791646583268622547847886964496577332214773699119484722827501971667387736064336495868516453348408907696184138283160554624009140809531652046893381007321964090691700306702397151805382511450320377349919058065296089927778743346788756940821586164774475909395484987338709259438117107352380235264353435489258640650754121306188558018789683399200276157242359543721833106883169072061304799800679114546990925848386000250986663464535481762858770300672096633629036505212115429129415286673331367159099065240712024447940874866441168325376164002672646449999638407308925470686314647858707314686015305589073213749059147311689622451298672577070912075256515682405207799219327664825862047995939963191313850735548054442644670960110653094972119647716914497404238236196465190522653036195450364614105097677357313267618358480665656739134724065920279409393605213876813462160931708289795634486653496337394163173224219594683215250324201949370664789966629688038199492557860491519852716696034315229836318642850683720243917768487130692336323779166534000953293645560882984018162535704619397286118428939424089574420973530928095672634949613426734174279144007337112737447981013277166227327367920751446016486355116657425310685527028674845547022454336498448417676642497332628639949579689505932060703806921116279959996999694318696954822818191867458497103736860604391057341793721077282045192599783913575022327938141062818022383402432324857159854519664700979449589765709172799978233123949210547285064700992510122590286935585374537268966088488200733545964094330691167662884988181247234469023955011565696850982537165213127610652582186213919465895464435528963117763768488256792541657607208203531754817175968430305042956469508724592545913939013345482025060724783275323926253141537970419403330545082399681103443390036121701077872367716645545433536181065737086631790567225848173587931439058269108447930211048197325713601671505128746932966762316753484196919486774531184267122519690605922155763220434052449758930313761462086973529755170863046222030564573475604796738644814847261189095801172189002611909168973132614687215593333550647785916858010053452144152854025949995333094813318701093912996742732885000475525145521186764199244546913457076484771178144046637406350030696821960587371465543169747659153728320491497590742097419811843979930910306688253928718905995406300459840532902401902215521972465285714356769417326271099415091928562969851560691996327130027628775952796570992878208905741034050316887799644904604404034809260058186673911604049790853651313732750541575053233186015242428535141329393232745709699101954771641499815413856132635325191968635174805079935752675363708165403670184328366369690562030668691010875140121299206863943078603991853020885364635300522218286221944890410235813691089483313830572190995010598526554658022471898120322414586930960564203070085654837409201300298501029504723149909204349184763100005310218142532430476078716390499167397707390675299971486247945341327732914146120777083570704190611718342996629756936667593894815041918184032738442310635248462382837532309890685742132863444811256151484089361060763266240081052733155187653071324964248434776394532246769084567827632342164555910136044114574699643719684057592495670405454716723082807200218403428091507088886461401982948342598761513300459036436513983315762882485773601955500748697818758882026330196652787632821631758743099822032867133379846936480764311709346675347284670638059561187519268237824151005484803777887319260773137904435625013282378300513655299501302358354608090360936207269034821637626494380427528302754845771542662480891167607318542274740811125815881626327802979723360335191661962808299117812153477291918556874030067252800552149281130873346066942511345114393353571765519509702065999140371187301235742849545563801969250213670952134239206130751350758326544867585212782930876843638525491486280191828247926500173193423379138444893809422361174126458060404920638896853170365326186746982545777309041249580695125895258493010484181743510633237213814129181651944905489743148958354501804450121146614672794543955533115124744987031755876246627503235662013492541194063056498306040985189547074225397402855379807905068376371914332618681593253002989728582577156363514508197724125077522396565247621414298097154132388582533354822233317098659037821514376805131589507842334731255626328537508148644012437148230461969092101143385990720162538487686100093845199499343532882482377350939461648627625084897948414872509899184329640387723106747445135691253276437157551964903122347622132567799769928535825883778449541232565246353754673936821753789970157031442832225110256300719013557686512743328454972240226239752443086363227220873163801813178923494200204957151669691773388347625713317881451323908577943273852274376112858144929544269641134306147370718066775243401067220550942263212885975100971404615543659346441400960939175179811723792903851448178905349745617393853486164388416345686925715451183376278251277787223156089204694395241567254437926113497731465073022765111839227328106866609598585170419127585158339129962323621380859796875788972486971946100905780963156934291182078237821850114312309912798029494980466758627684824462824986247859102236738781708379841778194319701895299143333412536581431850481634238281149346060217674840943696899406423177300205752929946682640627277231861560042077901135984296308428822627999248211978761004792758756728016267541981917286314507410263371119975476493499863104502710532078408203780513208786298786422183782565618120681289671951623037205443408579831479548504773383807107450775053531609311339524360482666956436980019886061500203521434686733675770288487560221683478383169553148919243171378900296778155133814547160687375167436905080219029246877298742441106163449952433175021512038769525120283073219973171727852680790906496300495552439410602697145688394646452176195776956495978131973774173667943170535851872496285163952409556214423434923394728013864334876451795125088286288254750284624227742084634859366982658031417968587569389989227347609541028930882102469706529383627389736992470681896548660585880733082778573950627858641089330348762113204343943000167495575219255025463459644136388556426159242805728262073509308776960610178673796617652049136635646095517578988158009382750326314396545353267503934442577067568938406311001406080569878710126113496075315217965652419242177238064872826125940721846208108404724528022150763715934970317959114411976415911760992608591716213660235307216898554642954320858979392708928405672196770762059605266893561349738003809576398421506324609421991481634727409051055978616265232009942289203336057919524939182407817633634932101579082332603233570973198176641708842299835997956207290517345599301036925079825783024638655869812259113640134913243565709837482612930221750664083788913177960825355767795386938514041430084256279885243787001183188426299640649539010934748648110185931121065615664478773267238853813876565020490029998339140774606932402580339978598355846986751099576242630259308166958229238279986905849076446967101006149616395875287607358266577931633065067355333150491876313144780231834559109937187703665261300523024642754573957325252093185306815964011312095173218221500939392007953296709342580229321982469367146830847770538454327460092355019963178690323947033690753112743300527798920980493488516067807492140266650171611496532837411621955876637435644738486871250067067718567862052220676513454185322697538059204909078776380712749297183180536730610868151414728127028816089764704281315601958141215370692785845744243539854981075291751744448293756135107163332662018094139047337742946085983290666080732855634212502490072618867278593929511701458786206944031264134586252997428284470126132209984805008017813609570842987284908355664529155569662923602375582621670000748071238708005015321924203736774828852839286178226404486604670751770591969087197878568701219518529882887934475828047740799336647366619628336005468031615908336641312338183855829400156468314640855706903636862449249324611339627517275466276737649319930824234835207897765206801348390203193067290539328794788241467729127299988207948951128213227319365320149926772047467053777231033022506411654793266024323472023257874846854829396958662836403526485400684207281799814258497916316540193714682691670863167962921179400602974024013180763136082930855986296012425910268319803734999804151581465239904425582103386110749030731393451430360520579321150131778695901460805716639517582263385430952684325014510707659061311374433441510110016342491925105872470451953945229257002760874446557880340003163748669459166417968467423859957573115082726683479722042681963491983828150941386500290005457510881907455200594124694107090895337247804701973197878528566193318343897571567183812248492449777727896362220144685617424758440445642151419387769895885221122500664178181098497065228007708824965869551087451669620213419907177928615687246427144618881806380768160597380553552293721421491806478000505909446025595136570299013710500265282647666688359649640989591221498439506291185151636238375251985568831070786611436635585224607470163889977415505958300972466950290106934979125613467055803531932907459132337128014673167097974152683173057137845316859759441603210138328134703898611501385048717834623428068119425616469439694857731085821362387979330494421185195656593775509955081068122767962269562392691124932221854616669581041613224688992935872252389594522951214312148156645969257707969478878362957030505390969730517498073335908346982251682277405101557847201569033464251317071139266902647569978564923093148174490640366790531814225580080888373995512938731487419859027018283843182556316438760252412105342282555016860685789332335284062293626887019482664397116911913277338124121467371548492973028414646345052905180174640029508037929466836552185118431586747040999126152261419171675445062585246048464189059549849980146809541677034756987105168327769717140925696127332709957853736408350028307050916439732877102468998557157684362519412208795806207085295997821381316927124700303599025207432715164132631787989454455893461272676320600202146517141262632072191894876970405805517692699612969499531136112333035656449269914682953578190366681159041357301004461073200023199654136364560159249574195381841530288886901053677494808379326280552143799736686322644765943965079178652088339347432508611625450194234991869398355873756301939605821748363371072588025887933385196804586724271605522706108426718286641151949521081991856914506410784216666063344409038112392707939038352802846936047875676598906188829430865070390142130123159604232267792742610387865221344529258891375578767677322038595488702258276547154014935615021880676552621513276188629944889287896436281025000391639713151935967742614352380120037573706806366382956697855305860768679640654526086484826766470345756651700141173473485454536461232216297379444134230410721080552841302068305382264430812393983246795426475870508684528943574245413907356582551812972808475575163793085932828704818732450487078274504132867059237623303886599114494071337074784544671125558986491665040489435600388127589665443479861410540677602062367062546474980997658354648681782229416351183814940008684290404518296664626768394792013542522989835080560486604614602101127120387066748755256019313260434493263771789692483761041711912281345444306373088339014801597768585754668382680552254763536462610435242995835595089892632184015990141017990085014780536943645079888548969443048483090236252151435581466030907248649864846336245586263586270957106274037024030398363329025643064263762978241732305705883539869933312537183293074042186686286419550221081419541281836724498686109415968985629808790389542402437229952491181749191502376033156437817628771000411044710848901814467525345012357434414934313200267651915968320559489769482044218352533014593593172829236967077864463557877251923262598276360331863231495508058401192837833426145967155838791824200950046456625885825452214782578212687465670597964706938886018215284770063683283407014321045884733613002201885164527937179991852180175998996523980520295860991619729980047787432783163722818802378395661224308776450279884169188217370688171277755531617285725366048653581926932813466719180532778017733116246816578212125826445719760266798986830750404138131864995029719898939164423006750508840453429272059261870609237850822594641520558345815536039630922483273100241951511334287064296160031035955219524930877719949638758678773292668066945795540534218689683262928984499392963325030445653078973522410341982771866207244097428869033151589539689044990460176374657004205715115834957615763321894595832723080909585876565498215108252882126463384558005098049483730204881514336350507554978640810086401811706200880101519901609159187777802887910283265038929012405194693814881274744196874158495883789394800757113867541095319586306820006001067163619417376275096929313088714731202439153589568183967160781337192932939412387854935188123107484418907263934023796178842396366404762514117276904027696773266738988200199986902695806877095289359157772025962188347134542230324612573255631113684614353879697179746987286589810502578990601681079550451239087195941278507953385439034942336180967038448824827427731186258586282609609410286989140654482788126813433662585293351069612302322592666219921976934824135806410383774483907035655258520920797054279982559608439505999114012615117704573063309941717705538222082669237143354407022338921883559544466367237019010087494901445857748972373134901955053132753728265394731776106791995965523647756318870763101859601855719236102431720749720865976927845525746338349375721034203995027432102074729770803841064634676790535259665330071011344346667605219827911059099994624004106685700298540376505469345840947102808576600499025945540192171046553435039234520739977239016854945763812820146285465811137731144659626180445145906972497903144752364586783780176880752687946781440005812399565271096764625069993826952315979058431594522495588285748546215198228331680240796470891572598958472358071222826449756959967737018306659041686020887037751552447279325453287805212964965347902681031815348789364756839678388997354253641774958322582936852193590913286449148117925722934228883075940606077091007772350130333710041286261211531363823194570507665308126563983063997383167821407055832248206494725811488417625247728236439798066812796861660427489992713110265237445806141887943536795408207926067925462002133132049946531138709215337247946657500761756977037190047054960333908163603099881203234653061793842487842615737784909918070000174752805117875256647349843684622983546459580595209875398000409592704393802970717176840328767633355836158379745573954291227741369789015851140291269333145252341046991530368938142733538727463930595408968386807681891709521696872751307526657620776103123945984665601339730760296011625126792588274668036643822544155067074530354613558703362445795363489933681925109248086306168968176670266760809514373387757097885955526717826354541564220313201205965387484212476859210942007548950299293428136124176258640845797722389163599539518433171053267639075084332268239831798516620131524811479216090636623869293617277116829597814136669367563572372009844430059529775925896662733543770014486877110775586235984031082290494216600952732469622796064874390646798268491094404210720133639370327545688306127570504318243187919443074012502150640962478065884175434000623079299026049982863571974273345375094982487186161199240186089361846644666245780627184026860539275999057677711068171222602082962893348385466175327042422534114656782417389497038572791140264228207015763531901381062200603059511038199289701617955669443820963228128640784351560682370986967064712049389060664026578526549211185819359305960293060410943869558071328479607751434846145638032463703562474268858068085598887862499658180214148327768235140379088766240576804201357964111578942460424907031847466978189995712881298483999983846079261358679568687308174157800750078293569090026008443225867389694784175087276794350759085676474520607091773818654333589972044924058101129052536761901549776096451929495510190041867806474666723157679018790753359392423747507257034465004197024283269289848782868175041020056627575692643615870927120332184621289766829098680516676364810486046310224807408524041394617316503059791260136004606439985297471017925238858752285520967831872017222941470922717532899652744041944798212184356166212467329748990740026028050060267806548910365197796372200342040149884004004219518775827956888698678265600254132523530454713360091206420622182377598771593388964873249395634476501619393282767102229979145865112637182865625670086929430858640902336554878790522790775605366843604737157005192000334554212143110472068629520749588190268323168130943414898918190851430555014078327955249809078786423395053640503491486216652375274872565389040428844355350058955422745769678860309673081800158816661563863160452907530353081962475167603488195933865183970749577129375905504581734179192190351632220683304923130953224491397288393500264192767363837756885489095102601096713156294723226891511685373131605635837861925575315640379203478576508487303795466853809696214878696260562307189376943313848444893388553310279001524108397387553289641416694193142602206926975940927457440301280178233390330523770458974889517286053035707643544266737982296094682507076610834652969362306430859576958100989431593855964343213456917881067650292989027175463930913104474256118989867239502374693377888244093741318476788740231198971083388777933686257314013047372927685232196069931679101198560715144380141696194928039037916564329698789518348898690922897448830373582084875834540719234155582626335533601354615167970774372034774975163816172605122487371845027052548348067149791125172886364453656635980515669107756180752646248195331682894808667089153476476905166441449032817141321828343901924571067909171193643773504686132597689225127176179017943915331362329259264339338429910431205448845630518073417485418653679910694170923813498530467292799705200972168985716574691714231935760711944391896409573588851398512122090374657118185426165546964801581664826560246784599116015247658927120496870850957912583172331335877062594514897739102140473581684070022416857201152190801798032065821680778588801174366169092557393802684392913386634670799526480301786898272693348502406704383822691199883798094521987666371196117882827086018586469025893078377289032609182878098042438233061570002711716980628407671005812824783365388745850702312471368755681444810897163624840990892849887486387408153139715134911636783032880817664282866744886215104394663290952673060248347677371229757335176704159264327737505501827275864918151865043745789445672605978837901963622236252614317406119388183822929794905215713480935356106247858508713751499001886418184370809169780223821266341763414555732087015403075460441538151682574048444031154675838807457014033919786626408332438521566800495678608281493890390194911261705416117832803377223274502134984614029465627591740528706681265740151637926262042349204677443440655137602745669412455779451997334240557802978044320741737844718801897049488768495442106794328839916451840547505816297056308773971963884292790925109113317016397925859168058315706826327565278642620051455733619662217825258390054164477768284915186857284105325164633202375258946120495961599081297238578564044460053175286030499799142167876143677908522832016071544445359823483754951098221316279271018888388067145414239680088134885437559431943647331201157100353543290032391247027629418512758302485226586547229740434728093588979309642275232287098149199752642163824047127964139755537976249454467554644783741059066332239680976640495578243965598248492235669728215763229405476809080564808604433655808650647087663039719195846356779311787186035381566883344991457628085891896901415061970287805391252888838857718229723794913650755596836641335844033864652279373858246545230111334417824847438485496726523912442800455558814011411652174015825543554021996538744382078450382896211426920368503158631367405323244036178722403071715261451768966184469770926207972288491506054750738425692753663346898241254738343033176389662863152833672764339306259933009571782955397327605202603611799518559876656977925566426926794646742631667951568544785307723491312620915471865639294416544783192528621948555851600914223100608874702506146480626908388682994822703587776736087213304755630560043770042311053151563911909755715142596543098410950035281205988159441017502208168736669703683110291952778515391072076020149399250089231364826641039198975636092484982418700301030789861186944095225412789705280261337408653061165066304157583304220034503041984577849065248080741790349209873047321850591818033877743019182567499991017043374448417795486192788886705605979061713826758366568014408760452180936834549704646080503358532959483395637712286721216115363500061775740997563251661849402190990390938852742467874724711970356721435653121895205830835067599356677810552799691809206014635819681919117133644176342016368911433459388905453292658294956018046813002570733340714608612536754024793903223948988528259235027575870081333466757742483228623754382438215202128032448069436438813429992866817736361873897227589536414206937962312290978036833707630469060181194977796753149399340271152649820834634383455548234862292578422913002851896783998928434904622734672807756065447691349049078227256161258625140683920368475054029026427231106008265904268855484923233576061642914763494789754582763875152474289921153639799625524808864796308645824985351282627845735086949291375925572463539245322575333132082329477646971108598513895098006749924191703878661211667343121542692740877097654461887027162379841578978553011048158904447199534680379525919326865749724420695951776462867293658677202272776355783361226450503238257181625556747661098874287360244625975608517062384473146852236161691251892636179363783399622118564138097982942408229431037341841921381800289609853314321215557555696988918649952788058306136245737773822681354895335108797803399786036623710914476066413964854006211465879490530074140637269358401773938418577137269822471801881711552030633130254603138524818012554785372248255332398293710272271957172105796685855822930432981871322040958015396551452363176649120704972551377844641407805112805008125957765617539494985546110663949320777464354922982147898522791076825871517925952879139410696503034880850218303239101922521972507008853548663615518544510435852197969922708045042772941044515843472482106639575746745629857122834739606766499438743713312974255162133227274034339560198372788645781304768585505181571446564473453320627074369297996889753051339264595830829357489589422702524594087123659497352037689851811692015804422385312853525304030497289104452411023546017727892224613896359168537906665189534573689523503618418626778444853188459344894802922465768355270762341103299343522101557974373503065308666739795395815321787994974171476092997828593258006082854427744710000511245656102701021641923774823234133954712309590297140390572806604352173845113424143510042045418506738631224546801579913673785333359914407282616557296583350929600052562513425078836125024931194206079630557173303429148787436640409624938472661774054277629640926620958765612284545436854087868995738764837620447391427175338807413708707509295953440684519284062166140144365193102693366443722790746029031257643455609007572431714729200955703188171419115542885002114047464947114822661767358498992953423011317787860541506263443082212051512741558423600806440712065885579104981583367823558447201680923753252459331446977054413711895964288849922462719859064488847038140803244558930213165117323802553529511342856882067879516763456547024571805769364033304150430243091524062364010819438063105377364000168264336252897830999711854866654101793197786881080351657512770379649023085174865924595450405131877580293528959417405327260685106754806859887244919534103294023689648465406849279531182933876493752324516818105416301811559393632492011677816408437780486901106406714736987883346428224636952969217920243060085443351898839629411016869807789789588028944705185847783669368598603001989692586545731883853743892710219939896487193391624120908376031078329660124861134973705683227293732694716186940475091708075518538188785491000161943308660498355891675527914052715579032968804195810721367632487730243266459753817889994940421973654512907611165752552733961876115261029681237814950447893111998131650176276014539872842537721925227236936373883130915547480112300237711387704376742545213218697973157620776615750250924237400915264360959866365935758176653587439700215629591684706089744372711009437881897903951807475847387467295115953094855753434648697549796859791833541084779998529969207652098807490078867894272984255476089140868645745886597069214119902922858828150557051601708164206109628296799701379211804533826199467834857607890341973376450786025276921247590831956439664996498159025987424434702083743976416263775461458264438108141721013004897900418791766023220211777649702596462312931567957699493313225708735998625621857278648205798039168489667905985284880266164485787010580217656182323374303710011812985247786260687581302986469995338676541543205023157345382045399365056397794155899083873126188704229231081697708263902076878925970892384635985355818538496878957873674977326569228697702693037075290831938614205769670209076932246151138344101632169229393233874534016158484680067543848401642614332545624120154671477582387957307790686026858373324511679625174420770986432884971411173634208213139844428079913625317823593472252261531712045319546106484801759799201960863423397424468554130422051973417051319571142058459856472631808622267390439187237918607408281636765884590704335432754347797374830738417715474234324716750128874231781810490944606720428357875461122475089501895104110456148818208050106561871243676465362293633690859709028352426017379934700912442836398595481533557037243516528953065637666167821213607156244612273901789556135475047210110326771887976363093938736208448170862617334893020709586129282789899287746236827916709499100380641492090484562445359985057063387192456728899170364202715309834681991829866769620066194649592290032353464547283698245196853067103897643389302519188561787109269433281567141405038753713457225551045091764336677824668558228615392853706257202976616813809405943721845848785844146661833658112230962045201560486609434110511485680403884832063677718940087964942481973443737458830588973512323935778849595848659539836314527832575633054507986041610918325913949118717359463796513805656890302360657005192980460545198337296554901243427286448122222184095872386843035801601856809272090830537936289736430972254667534305776404238262752995487395147073047775829481546934508069041913660641573870871096632217734866025481223467161719428696216245146656703567172531269090057364174176656301289222533354671492827382066252420006941313881593918352441438013958201928354387146801331185148174424389452145609488315333884703084627716680158711432759489985578620975471797292331942594089942801674164366191433611201503794965584908480883931822285627935843297974924812748871385160194586394445440351586342417517054371739804722333947176900012050098281005479852732742759066082783486463481928477015294848949415159356010349980062463891031974429577243726474241580764415380979743413523303219702449637125090139244937998528981522707538515109192487033605032650865316222478829907798506849427074101178600026959927110668470318255849469854990475291271118957317815981196561923492856409981832330231631218600460666012666043615293014628963726700168853430197861095462526799188179126664848088505407401442618865466014721006967523455392621301749697367004188251942217658191800095777367833488639061322501009477433885203442164996164765296252953111175432444978926054132458826233191766451578549228628718626703195130919651323608443079837756685044058908961494943999822812977473980401672000673462726362378314502883821559882209083695095083824436264245685036574505769040175423681864836074830498002231184531791266247665254902591628782327986358364773746108013965351455283237763124180241271768182482889832746544372564427388245688082700012949778882519938282542580332577687201965867709051621421158856496524565813463965381649070043364911103870254331942909061744586050517238021756527594285600204409287421524327356181952795338463178357335023673067431084509872404672120872448483814517119327936470158806756608136940890431777075273051423091492537458335153140332592473384142929226653013069026483450065010337045835162456966070205115009235323113729153395483165593900015851862101428941209569229751682534983138821657524723769376995399970036846255444629263630405899239226746399005385769838392875961741871792142917531331785230556756228365635958794068994753442143543683211845659787474197559519701211797991156144017931821351118747037557323118553293922548663919616537640555596939145328959720876838606217933433069979656312333174828454807702237457836475126298670020346065740118845750406524145247162672898446549887178495297056122796114079553642559859136607295290862763579748160737240799359438063382979119466758609440533138590972234378153240825619043734142713684380576139498612159572575470586768694507331721277700166614405875781682136265621793028159961708276052417330963912643102633130452234814323073355700793083694321550573937721286981072082963857848073023871040635342663517711686615307255308137631992946658656813436075413719034797916319482027458469621068956855962838732739993538028634510037046982878299495976515341684740563851730380469756306134820189967414137540001536471950299778877788922238408498742421952187640102208843640379690860425589828505434299900182802258990494711054050750179322295786431412112509053321239805149888852167322859011862279816230892440761213664628549888809914956753023148132525550523412696972669536325228113017005970034776914390230327770493613726191608398015376486962794874913934005691553402943698084841461034709269637281453633793819071222716066415342314477377103715759072662896741401512927842226720816145125039680529265259180727172141663205253877813950329589645953780342227854492610283733678951222233125274074415636649714390937506808328686293970299778324073416655563338955880071890737580453623896510247375557343698286232435683094443072953945961421866228285225267297702006311751939823298270572648758298436456090536312977890756453459474293299541349679588555949184038496376164077323486814416287751167404141677808626185337755637841516375093397100900236085661688884517983750128204506817954825264103514426536875415350255295888635204714802234552656630864148098612451526179840453058101375789142905464361743327893039712901654331211417331599119222066370749162928169446723737060363107946882255193731966329807159871003863057377186975584542742674184833047226990459166097839901956249962028868117413901824693678180497492068525571493809288607724705478308141350500919948782341393168531385029473459261300238374174971864835131522911087981516029786877293848702987117097991233331131602928735706282802069611794578272998730636970804344182001279914315370940802933747505226019936667018891533380451212230766931527000927565742954196068372522301640573770622363677786661587326434029980450847417856914087150462110726866179980922804862247496256367478902593847138837598433283744497104429625008401679800555270091024060021923976875626451671340606302174813958032666507280349072961255189537233906451222840761725280905506485941647905710595973883553959362300200264402957136041143171777314705613409915202013926484411297081076087087911780746565435300125875358884286482421778350578664848685219284869862491943145805821222873409891722202827916531217575182735311329918568261771037156369496270620021582383461887247406084929003800297976111547847394862995192992767819901685190177096322727814436012085947294236759358842661225524937878784542863948038742634922359552955701750839957888278829235033870670910562144743297087982191714473072358766826698809120888317243014521813656726802253424827326582723358894701459290906674928807932150503978368170992812876774751334909151249481962575933231445350818336976459841895833521702329576894780854239445807134853798807107799646641924802010107644195214815870014528063226182817805599296137415707691398205879046260119380872944912731691745162219738900270316603632114672054824425814165020702446479857730325527407224703928901626184984190880929476722704114779502113032200563820050913151220502204598273649965501267309912814912273772134221752344420013528158455596550184364284368745109837691832287171336448284193723889637566868482649142599870717787458214864326097704266330443438490468998715277958215872483832152259645148201553920353906409187213053736304876208337749527939039513215706873003912079396890827951452087224280677277159136259614055851447022719751436429470361580464712494389930705950043671406483603424356916071666799074233206326351388946390575650747378832723860391216243196357723509459766485737287817540580028343142071809878881517299782833783199129497493839878837690655297166581421335997191391730814442159701776253539552676570002636748070348677441456612631481784124306735048644531516873321800181449015254308228325875544059068098799108536632236382797782931502082052920484037015560780273309689399045358725269483125091638933265278547805345495576956864038155638489208540398773884567349264570192502788131947968499231370832510845709957679606500351501452927279252323832422688082365026439342643194720535377421751916056312677499509153814559215999005138927784379733526875095130944269192084047443261922593778914290607042080477721446860176691562807414313530003552048221814131573235266496091237915660762639704521340571149949786467460954557548173135960498607030190004133545304195385351663827466467681860582562667351877900780110086633149212404099668434115420279969899638691928538303815778327132644995894111307142875362149711161238709121599500230080631584110640874821750738624202821234781809264111356740692049119911969952027030135691263537406813663197090568700060722774033691569864908994666455955908660572002164923955023475004494076296885870699973081443117419083550245634867243777086144817725632281232107938839400558776838764778728979886188477184839072913399254065830603557181789455430785684210404727158767203854075267754426836591758501171035784849119877884237691550899214614660038794406111179391590662463000857387980549297869977542895379089151056105015764439515085500936207405116449784089452695224208085717810962600102575989425386203575221546068454576042394446711572241970777443536199263798054217518790389441484196921600162085617498229778288135643211250764373377276010477407585510861048183769828482403872772718692433890753874740406305229506226204378165098650509607192504295678492906542103356907561427915197078352547569555391130311237352519122422127141167253563670053847030444301122996668382811913783883035597604242126850406790888770733579323304859705217652025106535685895458710512515548751384897052852872369010986250784735068351522947052448509360467517533259027678692365865705407329607822224532516275216010557729835836839095554864812128810398756440511170933088236433318779678215195293605794869895198471180432540735642851600181310720832245549602394129345620798739161090093120188574851897490058940553285665626874890555777082014621319932557692009578610599916355347193810637330374600436424947964614028866502478615453962269469686569016783841835764756192679919184932335596867502437580986394519287124478130568472135637954991652816861252281396666649296536507017488398518240941392548794563830876302769250240391893943930164870512110103329255235693289658069837498011874623272355341888126811318892524844644170471485776575263718703890569173260165354124433560467262696508213413137408775227764232174116729399429138376703166383599729099196532041846063758449542363526963951963059709594349989383010757496461632354394034173951686667879487621292709307560285542402333445653631889176570591161148231652564543003384630726837298061223091827560960275129018768919871525257064889048209810184114791340281624100814378021135961668346238429011859450974546344194861518377172148054864272873597413541548018065010721729444053551078607330557164017805993870929060182148741877843805203314854143569196184675160773304918374704442125672399056072631279976063946353815773703278929294781268185345414858785647015516013738986725349186901969025312419658300056192613715334522629318738002202830701334937674097352054188063216964686317851770502304488088841205751682377320280787714771019624488876387445148239242183862448717800502338520540281609250742282144828847033397656331196742754996713966621711033614695593153558875834898226451622493494932253316241562684433917072189169182084342244976262733076859019220811466061841637983805115106185885394079718852837679029174431447501214613450497836755912998398931064005467938135164096983656966591400349028248361185164717108269465987122612275717128185072022625636510081730566156077905049796623988344005957370587475973016175388244894386810793374101918073427779058984820303730382678658044244398687126191513552597609408781597566833098414493648069042037589174244081497636674029555775302822839247935629945020542100085038281352370913046716543194825863086239979403843842956226597955198127444923884936495702143621653438318696367517166490277234524746056662621334107481956088400482123165900837525782297595174393295768620946382672051033625820197445519752996249994674933490165134551359309517917346025808319417815572432169913145526750205485283450715661631766559741838599266598009245172879967501720819115180441862274641245484149069294281792311554453542488127605115969630496779871856285875786273816705101639975387995316861932206853671847572088323351164572857727234489826807764048403535426089792172626510650513273131664161673850863180264304621883100263363278554407231575970670811018885230533639087064785009019226756800272921296127886321917796284776193071200806153871541735599654540407125166034722607047626073917943724551791718196376486013490020770502938301687960435327652317082275222476120072739184536632253279557132044903106621125875887053722467881106359933190167769535999616198567979752768620184244485120974278544225720969538351956670638170692868656142885328262085211201549933362449964591864843609979850439426258561115195091833243590177384753542102131238331106019703098212437910073851828616613868231910096853556934774637456268513937045188874304900315711319453539859375750941898346997780012396230755612869890496841462019834032139702858149269735280564328799595752543162825728252640294400398118137510354345073511867916720057842262786156669469282500505465875278889181449497132790911096837741453322966946208030310243297378941205953472803203782604768663958643432176268614183931436675976655483673718719774662324473025172593528435127087313045178329912876003182787885443317150758481126315271475550868153613106915775199493675324679037132367101254243305403721356716942043943847787855600774509212629310048412230255489178828003227260125835100933328001113676123815903464256101217566158027404797260053452711131745034252681070345867580000847934381162023194124108298756876184141638180830676802333116567921658629615439344601086158804388084669554305498074220908453561818159726920610223510961122489961850240431049562550474005732453966219626694117972414145697879095595172582563718934321741334345484001738342219596667325185508507612904824105690518454488748048203864895263762431978722893733358791516803646808514768621750960784771946091481915033039886141819648515879033831369170973404459964870501411734406608055703051888849066438922674923745204615790301257790596921239096037376138973146697394750356672692498964830938320586547700262780397537165147052191940001093145500623597783081905787650948846498111276064396356556449537597746522897874264085492558113562476946959998594490416929276363426600939306964444922017296847873401096358796217243526062684492783193175142976461559341557160495197169079519273603257282511156242775775690529885050358365371137577224035042864800528842241157752456745848083679927233082679741708626318584461954535354762777526606366403592887394865940197104582872716218267385038490763534694442245648537726584238944292798445387205623195125337554996130745920449790331930467971053779893789773170801015658695466086080422439836130451098545706148114292509366387664443900458218025228216001535740945340852124766695209688048699569306637352661882420369411411580613131048288407682039963553525499296229889393330489460034051753267276089856880635810646988055675146511646133319373602661852228809951699374600331207447143279638391923764974931705189728017793496092942449858571098355013539427352520203364837237189166043507904348623983558112474299225796916979001038789019308812371561649545544628694985110494762249056861240601181649258381100090426706959908629878955281113560862410952586200995840251750095242290724895754982356400116905435996742031231961653054918959441988710359800846732860321941151339595344733873992582495181058598488388359797436504684717455143223069393710377871550257511125025124204942249346054358135068610284776242791786816405988714157098231596696340685617629156880925193673740007600514003671897754971731025221042103622267904843847512243514860993715922949218979372330264898037273272656072722177307217101154131197946945506662911992328789078224537158917874317307021138134860877674882466939296836100677319082098491983146795877012803265406946899284523423662846068464200545720572576512913136201256443288911891337989156674847736519574386970738602226619649257589267699004200100566442826199687387759735473688349577668489802764930328570411029780340496409330128833308632320014817080119145837871588468243050555019314248974455300690509306418457631749460149391454618277842455788336468886572984438806785990623924234908821189025262244331588430624377992146418989041939668302950011972920751874194237024044156045414715609013290683150043559738399198686556582154762830330284382731904092425573128990866048228388158376337808213480499253743672620740746313000809054762598298421116555714367575920522239148592275273652856384336189201148430230576568049942972971982733812710902407325199561610433494050022861850438627821453979640790849282191130231447579880701338473621408316024230447167518204326919652451016200949474444410269936303928650077946854356397906213126642085555956032644377635600415153043165759287023547947457055029283320266859334648393121883495432715678685245572457690886221609862326316132967557570333919377529785429376551702520881141494889018345438604160893832035217129591283945820676013972086135365650694248465526847087181578009421882370710924136953692104035414013546149523114021221790404538230849963354996326186271524298211290803302736939648805770442872550521442227601156927577506467597384388533836624287675715814323580096852836644662446296579338226058783640731044780234341820714354061382661957364437163177666635342372724060547137009412602417192608469493663409410440897488099521431214104925031475872229785103176744475991381699624698955474519950386039618002586342921653849297493525535441379017556944833388702442163624937480301781153609375713622931466014974900845859448080330746356250533569558280709022190716942499209786069156447013052964039228861806705332989591328041512969572751452919485332129847410233289591824285711806245921682914292214688385293028908680795908366550027321819213689929505353566684669785563838750363735564511447905739886891838593059877003375662156510295049644738221386865814031138898133146735108268820155694337338138189313639806110908682800353663588184593991753879463549347436611528127667095116921051723730137844186872221277487947194124834243185321470684662400621662807581205598336698284667371611118151240551230297652179749330244948832796942611163193659465301986648716247724113797012584067143762387661525982668254191576116527495681742003884875855924720501317820583793844348702977140935577346015590640207656360094584753079592873252403326575085854747061761663265971831087092844382037650173421840734941362417750572264022470498301675410662189813852878336941255253747780458101556241931787864049911376891894504112600538379491104930873280319555941669628334353246008714127031001338446685595631926422465421786697974610136115258939947319586547711258933947811434888374936029293216789461805510764405961887121924458469961185211685036333706461961891213753639373983890244482813477869629564233144454944522928641107686794726310861458011935337014381984398412005193595784236581502642759325198298261435586256768201283914464695580728535948189467443467098711865295573000134294838736800872651536784733297995661520198551222265322973768171412280367703808740607989532702493396949907595773554305321941103922089215762110559553368891136080193461988980085131301634853786635800029990846479476342731343235676922617873272791155523893125283750579138573261771540757966446675723390858345410524548994335888219444130389678555502117539093086058320962804639867636331710475989052035395948629878230808047499303043196352994394225627710702439318562013058202014940603127385918956240720542696527266858709128733115987279471200032078775288779215140156637715818544007577964920531178526888071979155345673524147527841511260570970472492433030374691861456776752093812106288405638400235225609616414264636818072871690023584969128924975007027014738376359389794487865859653282853843636284675097998870464781541201687400811527815362328808691180740469057111991156635298620396027813079390056093335652874279088814373653320188355694269295375245447862943693793044441357280320187481695490746741655508679953536549263130052741473879942831480550848034962915163837076138759494122074176953724454763274595773411627360216411001240885572965676926161250186762684704602714888477749517113313572986955614324921916756782388677328790075440162937153726414130170058870295891036929083217479261956615353854477290427584664494603066044945874211352080523332639769724968504643271673340046704190734166456113228986822923690921229300250852347991377600273028435154084125506025126779168880012016347597903832099398800797754425965900859480308535230098173016329435079499901720157165674111572790566376653615251105441593531174037624947680669431607899888391990778484212305045381048217969085889451139634766534409642802981933822051049942293947328529366789074336247900315738204312068387986878636489807516412214946309516327976933832309942179964898352804653225854062165475970603736244544922546739369737040475845431728851751939036798869293347544513170195906509556501575179489089079202176414374611531827397378672585708281777463630428425089263465924276254152950902873680906100039322067906622443041543060113563629113514052457767607030696690042181450223352197350039838199356551916645751870498849005107503882924026835813636523867878146193483256433143306893897112973567456670543747067297175093433431280084344537671127482137881146217962941242047036900650086341410390559337077572579618195529331172873183343269486859035560835771754880702223567774518373217405023555738809985918951418705459877464540611580589563360297829808352541216419138002817004635059797644133651479186755558431501131428637282782955339601491719007736318022622931636911579125038396362658490782627421497610523091903828362208234750090594220771545920038451467914891735824269751256341498945637998942283406233453492760272505212192032064922024418364186491038929301274516662113963625309812597260674608501749368109737199785011509299744484842611237564063909325577122815975915449763151359327279377397517230552229879393247146578933897456098632994849780445303234870547913143459828637374964610409293879804740050365439772601564289428648710362460368428749852775732199300083687209145832426868060053931475466021697273786702732008957523489753723580497652836364582218997275574657913136195950845972905975065311449905718637247474658724966820847191721661494115402656201178829983689588886932466818190188293184779351447537219764146227789371751188914284537172951319029418300705513731201062909508992843201878799308546999885514108607087062602206698786184772306833488361736988681425322124752096544120024952679585469082604482912746642267166934318760540170892500181656940242342469234521604770634317713402161176610956201719217773777149609578155130979835061164795627631078987887228696257660900462525482884744589640360137488353971390946417001082863224670517275630092862326501727081120540504941857911810029180836678719469197606089261054722208574831988135520558526657655722714199399748061975223776409572176273124358210973969565871503212486436632406888126428353943889756783347568872666112045694586365075581532591911090670407174100516995945835261549519885060160528758495103902052753819158790486225227815710508974680699164398513319771377344139313698088737401318629108778371250480997146856731327087659404762693930497774877233535746010168019243968343769580148044949113404569827730169148201070966228591173165628102174008406667625207782364313837108826864795930951872943942554300703682174332944825026257822325513719016983285517563237611905488506632844189130239303127940639578604468367948700304701329603437511225322490838962772995531255069436698803457073657922550264866335004318808431499201760694076397459835919777984308750270737052231433544712161067077877726896921852905041740790669035241166303798200000873986729285494093571771940135423879408684264461928197003888169881610290322799594035861383184950032479757402750329880662969360534409941339388531664308701633292174630473664366612388697670957698162716963831244425763345632570772864612188022433140787507211989506436024216078146847467930064988335416181720032724841615746798234159355931263385269732002770350495243385415831228733015925525836023561250495981841547991688846670240858739683348945347906605163539668233211340324087410904337216460550675002938249751287552570701618384164711770623250245912532382465519522537044488664617894094034974520304051491500213057977726344780349990502564330718206539422579518127405264771444269398144044599503527631790041642550776982483645459437314676918278723825773279118613096999891757711365987814426698105584240134290138369562314991082416987515993581372490001595998029816830303237281464329267303076122853662700977294709428500871295491531547747706055662589891285639989808607571206672862069020000949443201476883986471328189998719956710234898255881191879601246898945069644139378562705948505583593335405874711873871691917984738301074436615010695116569955788409084901494702477463119287868552911406840068759007587997658252159430518480074553074391408779076997515014394046181473848709678787385309826264944319615600228754286954247506355312275250967842539912143233111328280990386995603943522357419874462345043949748842470794556925737237116997595042200928902730339163938523952876981958838905191328055112833036849517459110702458424771733141843397994483842488800976592438853022917789288486334825619744786359681484389573159316081015870803945619173287631357949557603673933623342240142790416784288707984983624427539922099403350034385575226665910450707269054067294998584856315712673727755650740537475090679871146974171241059184888261470617443831935942921382156667160893790220552570294969713666596604161303662334765360495586262705789298296996835069912892223230601306432030125711704066284481928050020001627172526226108654026794833767037049003356244781349524388308909161145674218802127054483190808084676770013665847564978498523509387226700360187604477238270439288901921546521640906317872658735067010270368166737827536048268111720864678708617786933284083000961751878259000861750519479544818988853016918929924594462352521183925950526688179280878714964008959540477967605841507083785413648063022894052097455249956341614725190082268825345703681721880969974542224762110649503049685106867131547757543283953247513682694108002057917661247660842022806461257494349905047360015240529967476526678977442313226974960788172948935746558859891543004786611331769393161630572203607350880212111668237121664395498124200579022906420221630343430166889451168642659225038605642190399501593850982500080293077004457666435185402614658436431969637415802991774141842733092830999543039303833632524930990471835590601188279579025251557100505403627427329735746558915877895355105084109280953984962211190589432437561784602569520470413969734147986058126868882844733947387803675034554806483558217015418818781602836164945956068374893895814254957797569847863102292767523395809721473720920382705320162453746825996989634494528796564970687947559140212212185337925239902146275440975522065765809938032806168218592733297275398416041186528510163839773746012248817956862748203925662574565782491243499137823420463492087906675064638054603494921402875155785234726560002301472692661998891058534890468089850396899140957971452849112066058892088494789396830902115150935285024305415370855643312680354479014112801755024561811127800592307751011518782946418023521113413970343059090831966669565104125654492833075277155102570710467620307552390112625999869482612774186458850493171281938217393903798025812526203372625049878457066570189572858572344747745113025882942637970936944135244173836013902804640455397655555845354086880501924591084127324917781774414998548089494318147721545280267930866275154103145360566732463291479622562967470865592747322490117722390306363860508487997702880184410164554244973698242798546625745683071572002103528500514620397361145611802600839032325059287908539767559309248004437351914932471126277672940579496655543147397517062416105692172542111661940464041188918683777229908229818939055464338895258755814747161525606639288921945246622262980590444767622732190224847393156478357595795410961861895121856190918935608544141564392728823642272625572226981666398260094819482220518728056100261397581751417986797173292357368649138993656212944889455831731416892228187119001682731471886969784481065580526263317625972250903286242312083778167044869181278038542387275597374199280400235320467565004649395549562812093948825300362436841756498376175022916359276416405887814964612820315718493971689209239187259971966602663623224440207680782878945716201019163240217372950067482373361063097957624711082393429876541168155220424316194836152873203216837273994697391259858788738624761544168526921021264187677244212187380686384389898670091127108318209685984955261181713627348025118087861868849432851653739514953524538590998148753797364244553936397265854210199019588818829040466866613515423579682177509195677030447065895004929130941122222899736280884234451031492553380891067399531986098084666822345773075695159720994448717039210767562319000465878557085512571356625421715143352273377813841939008498646472851553867361812215159282738794127859602662313833223307252728462951175524512549269666061224558819810468323798699184584149504119128687859359729293587875567408547378689743578147832985323864276473163866273042923144039317052006349300333316054621655761746294245023120430862207921728380545408387646807198418741235404207713697187914900542495724800552626223059151833424868634645576648236505468597509765902827909558166437597774763742574194759611424985447115279749897576967321701010608378915135601752773822057527357237957401306320325216965509085191420637542477483889564497424436849035329592807201812278357194048823973736171232934627369487781400552270607836471032613298281209701375381965865965725844689622584299328215337124245189205557127661537094728151118620031470394071798477822276087759540087423343841116500008371271794065090300537557678021904821808767731827402736243556341358712315785406609417901653720111882683298502754935179006385438668827836680315267548619079257807541289106925030719941545714675136821353158151886619799681516391494929843486180892001949059148708579994727754852691687851501685424474162209229176133501411912365072933864979748355640531271133938728172539162723185045671812212739766973217315691678973512480876525224682218773610904424162351665096515378679236791058455699106511261980185290678542839854725808673304238464209259100936632211851257661717610967608750298212721286708486294136282836062233800713551567736725860191774953042348034949757443073913379298488662781076750054343695485208419681492332307373661691658779281428607860226281498199673037333319632870128173086841246151544634330763482792930852010674791039543334299283621368253958676067143073310762538785853866624853007556332532874533657409018916202785799136813050201558348883451285005159528521684571313993878841238464786587571677298496466671288290403235956521955851359311229707137301076901214553421437423355144523779818293182166667567357407181926898266507255996458156599003389521853122188128793238723530726922821399316780302199994573799469129377677366787243695387506379696022659362292680091409645008931581251294619399124199367457752113550460819600836939431255082434894019921292193188262301527835807510255566118596381670118924322520555871543856404926835276055501625494507928787441708329383035399074435436422376856507225055877557100926834612472291215431241890734210219000400456760940734520493979915925121751510771179729628942430607792547546089567539589472170953929974800027956596675836540654931856097122054005382898595562338201257948230752051676295676974191154278694795707283562626666060678584025961298964897600219189598946329832357424242067684600983689337586423842965940521832853955508812425303892761073839143740903436860124016336960567836268185668084377956494907237945213335664118978103793356556056631082825267214981609535911980850352339585924951103808715619761326933741085291824602716168711470302629085685850356203754976294334650586800892648375506202595749660148818213967306598160496796310198842890507282366179126834493751955991477835999289587061969767251285301310499019484073247811222475553995924635165205400930644617415693696626207155158053017719210615421844690151977707917746417807348644749676943468223376631153604023686694254525219201989970320741472641964678291844694778751602012307090589585007320800338984617395719907893539296378505286775762181443080944197705973604096546953054667173874770414480043960055671613838938071069799395181790360146261167827995371254006902207713538839872033786909911232542322576339441613390730652690720033820152035785918761560332940746322875488275025413678907800041155599175236631618776983477914805133844469374090117187616269676035766922796626961176560685332665083921278062527083108196403575091792330565737232171271127585280193410449336195018058559593739921832410700635969590071669957139076478957540866501910450525149138040064744558002177021686945854591914336291642271427657757273885634371272421253187031184457994730626196413013985910580629799916985415175713924368059060200634935730415110074566150909186936644447679600867653708456854303491119516412377999323007880563554350142637183620384083726577968822511295042653297484708009278389020009509635124373193553752115260547313652920028507443654911497463887385259862595944120306340013830300265553543029993199220871215396399678614400532374380608291416354266515738807087849363340929401424741233862748228320960145576147973970699266426013101701102055975004140047122882603372922863153768642034410319760080985025233649747610025618704465316768343633197167803573327744040863840168949297445375895028265134877654506664631801381483957278782032055648593918661145276064706733480295202288802932673726869318902023906779925107596229016758222116815357050143375404014155445371984845945854282827258597237623001617903891956201822549794625729225848480595074407636552480761820080939094799953386552833334815864321653761834646874282307534206844326541399728518485872231841831872795594831864456382685190071283214267479064678148546103225200639107953435756400765855525937405249929160425065181700314222434062730373711794877401484650725832430206742024398432191818449323006023494507236154571923584946801485157954879284982723851125472633549631079474856452179769636041676043960513327342170220823523061469673532397533497456194939971539154230029204499826857185991617806251913060861109366658793267971268450200844561319197524307404149615401036097073558564024418220961399564280518114891693801936785245478047205671669414160456530736340843356612385160202053736688703078470662351025312145278574425242777922238115958661855321186155435621982734344900086505852125466484471301300642537410285402299308900046853113657956154148213547382548551496592824568840358250595664091745953594428242811826792908089960077507696086875119521341762011450284096892594995875180366736095007090852948818403855393063083386365486340566298146655037390355558190315731930103751318127281121817122215195584995324495344366748488533338774877703727643676472527899046080835670973528575705601377480067015521648637654583532593203294742096509262206292340108959892518790846163410509212833673581939629596663620334364459040220943491871604282230155224701791725826737376582086263617193629207594222498600182417382079750510924838637059941170106642243031039894088451609821214844674768120408654259886229349231954578185236287179896118594591320370719370973391563604204563871762688285293463210349637742027589957201518496903499652402177758667261508034397280023051269685599158496876593691250580432437412891445119503330760456454895642002492569703973093312401828040494751186106500390505967287720976194189685344362374896678997472268610861746453528390756024819936338319916051163802053115082320207073614806080981554224864762935440473916425397379282894992968744067879177781680262663416051017825525299123814243888741497401583382330056289020214575839982690084123613125506096917013374004861666557161376795104925190233420743299368623506671932581392251852172612259162908354895177157796661987767058250951920677203397589531746341626058985146165814137971720668535951975978965554827764263805485208343477784187530001975259188463525713644722210554908302628484135673748881766637346859850864120761347758988724178804232517765396027338184492851935442987106312191166914220835726667766901563503893905835626357275596126562465689058742638659819511497494017940436897403643195071378847346048378543715079993958582967284868471472686076351001968584287384838998671412523074828414322511518003891811160297660404745141687219633711969314023512837019839082837036275254633266893362739014726818372889334045556851035775392948521660133171200871971587855912271389422120935789747913169185761620369341613862371528737735560940057436866538214396623279573142010386966173428697247643156928103576296017354715170235432548574139178603281913756782568802907479265243035502562202183580535994420118681012414050952881327780028744794087069242232328390984149197459092270966486452591085680179261765451724087951205349862384487137454774147591531940291015154564468283950206372123313502575830550609432462114498074168291409320105625344322654601946740123458825463395439680463115017272843953262306313545534380887075642296713931909801642349892543184482460428175392264920489130745755952835324924635819779947560344517376100108168851174022097163223113110153453226120787417654985852896993624547907805652105174755424290355149185852120791230775450717034308365184175392444878388462766400891013480983269879953985752110331367325580407017243896609188627584573311738123089202376491584266286282112396570372665084948175765752604295822290478076135047945204183389381151995731685440019995122806407426941571702112711168549970098539988806514088400690886832002801611911959163931971538257430564363066765305047335288471910224091207605785629527286949405573587260342215381992580613548870977877074892169661817373198946092527993337933228545766160234695440473777997348589200763084573796347674498920082212024342043602108709840315011754649301106963070830182396293522667238098890011332353316932864729553083438268022277040839134203316245661691445675950732378183131213852571145187940368320278331444350536106293420420617942483197410433150397861173729238186600639687868583157364412970273742620620414797999990601482222320339183926544384014076512851039578008257483554226689319683430892735512054107372181085993562574950227596275739194421036619915806192995652448160860130508948653708763305386484874656961184398285023651609204721178221458657967719313888280365786081545586305917060016258496637957199620748822083731823366201067689450570558857561424355092533175461485473403846451471268331832113098341469451879439952101686377759212140606952368434212544841424609397051312609243593864330669219980334174499896074367688249522815225952219530167561442894556697592567804655115551284615828729740224954814100330626840082748378403725667007628089778360860668201491252543705506069115435042966638130431849993226450214034714303611942698190181082880663162815323990068362510455328708006508595686426757005593766375776689994700646514638597839557097498827337214943711382918144384524511281942988942062146022972274220859813502586900380863418770352093187999041436784835265024369187338486488798880305866929188671124587249910827078760406503171616777868168539000841464615891026245012287951251466931672044945049310333865615553134828908606577834698710169936307894259138089841469894602834595062188620320843902179305926116362655437972259528659244812957226700723868803589570524870573520191087545357700963150413997470241974843472352872027998362191756070429013867555640889824141679217164417165372953705040633647511523767870538400149390070690192800296635536828856547368203466024485561391336248788093950346682044620741095503454445416050535793609305945293594931021773261409433730359180482555416132517634415633078455207897077327637742609008131141008143547288566918411446259689143416488512810469368886346529454178334816301726488629970073374141513560342606483054620366311777109903146084397688605336759026815999613842671254287968562993215107018886120065014803078125712278835269395946100720885508839296647474563767088953149924514156547175044747771918647547600451899749813679208730683333301250342220300664381887123495812903729737442611506997515108023245568102443614152585260276074765183908832252616527750524700232822736594078280424715193370270557509166656163862301742137308687221749299208003472767708155240720188413296742563098520936816067076780387260241390073443345407708096875536547394838725541655001474810089892709288312179434857019731838419621917265705299709650887196292103344031514318064264815762088407980549030663797713586996467093546755910034427808973257952294436270567371284365753343374909985852658464197048688625133815582502990217898601217436159842426735213172841653276683350947737680613848528952728916838658847441739570842230236805194781724610426920710082180159279668649365440952492801466419194256446514272347085131964363865756943393946411745269651743816093034283771071668758582353957787164138859631990738693083469428448595199969706921847202169553156691047654928356005755849027260357507948711417673500248515974705528012153313793635723634608811704027158299654579950158501947970829297980683200561424452660293023348193322663234073840687525631689762023398123401994432528212814508262023901035518710858387542185502870874605926373656089717322421152140476919459837809786902582170276845092531813737980794216109968507683136106045903961661906256291291051276721059107024315580691578772711088159776670820904395444843272508057642762326725454159159942962396177946338386625747753737714533887395693983994110323392619264624886262136523024456729626833000657174712476195730979469329436385643910977890334462548123173808658268575365095470437860802745060106169283388099704757534094940681974706839037692959573706419009748945263485617798973912637781055892639498151689816618114079381495820400694065336730524149004063809922549281427163877680999903422426561211597217373211433170982217217789781491133386261389148187786961911091976671893915877917132977633102907659699251369609203110768070503679510860322697676272150671532511595792499692990615823999124503861613120781539665189858941115501969535187360864274122212246441116712735652753570380083816368808628785382339853100588046502436224087287757019378678090779485928188535095484375878306920691189486498819381242768833109123940789607345281926929522252448485346213381158043509730386477907475753948625083158931050585794974537699923486763820970556093392559312609127112780723401697255130603711187672578752993492731984989144992298605471302566439232602080159939170058101846627643860717217044046086781069416936037582037065780277101737679380136945271534162396637706815286944543337115075026192787434883094790325453531051449669895314365048548271757554468694078499703840773304505359873548977939664121849675404707388766274549263490157022770243971071498719150521398714653043654195511770994187023366019473769904031498903449478924051743468781850906207133282953015621550018926947098286224493300037716291662469829776611000522798935758576100797815468857220350576029614178560216039629743253199879334522676392775877377273708734776267572337973234250705549271640784003239671732550515573789697358973432415554829224897262038182655324179849098113516326757756354142256805822509863137239111277060178724798850455292145408685387397177669476163747976732516834006265380478942546761657082494916916100360760467689777902166852620269934389330993325000545554862943009112743575318600939358134286091224684245025355894079303382258639284213966380739301210674198018868843232381744438236331417101083724737622902094883719201860655711593693047501764420971605314516870804088469463143877455174059202446174856424369811343909880485442476735406795454103986956690920698674930603481329744344710629216013519422988114221735886105860230169184838424481359563740103482310790073402369672744522388927323522715694898075289579452822186555188669806725932659454406333144359337440827841769039763295056770645742145417194313409052796710047509504375434083232211014561505181151617246384392194257346581702813189420383166476469781083366093418136505698982707230160149704404743713449618116108097264391469585120802599692044392722256239411966869666605530487580598568615583159061977820808181184162763559969017557331487128601937656357866194981714176245429389131540182541914243022338152446691172165174988278324130747603568567621148086044049872423119698866275175524622041742011180636214006152372996369306417618937788674220319124217331564688741806578712503725407253515741485817133140477526800405837532200439520712249437073130821203568633786923126054897550753544042386280345073227125591099181111047383539617574645210878841640274934743006908351805753026852426953096572144602007350512445117978251369739916102585427119442809137633754252391877040790890926585080463462871022995019848112524944955879255966940924842864944275154291199482033029352302464933150111081107789609151054569277834171486495014793773281387224371279908795016314329446046917978833477609351857721637922850090153836923105681849600185628257720925637561132207614079306859502918303852064942547160400324433331306356458774038108135243735629226523947894841680205762830792944549023588527652567952240679365058707944628093546083684330041767255287618422957950206956358652726531779173232353313204210863919069296601381928321990000490833514624232138453757714748828866721454892267602485421065720297378652336755821079315968390318889724393985155248993460830133333255838753750695195399534171047723364344518267917659473358879566981487739159597021252119683650914470640221866787577187738996478698878022404477409129791758735844862452213814433973995109683502991878416323888333665175396407329501513361385397205824261528702437445010368316636729857809777549692983984721701807278633832175818932082003733645051902151196180688411734873363602607603544379843414741702688417309750777670859517335222660580317042268765215323321973661263817888646049098041238443071120616251165565456101449678912529952753716078843145782212457098003510609381445110452898289284381651618951586899966645004152812263227911518434252587698566200075950204843358497440854133668693551838828134750078834450261578750719162987365700672781900302413519617114306297942073826256662879204412345261131070470669772682135500688373256592167280917208687660769640710177011892142906791973508353049076610847033918487491149944173944628677797442036535696473428784378335044407669430627016839834348756526964577896589676252606431274698244503571355978012241548704475575394402524619872945415183798277827104066307760210787339090301653293585283836326091645768014669595004396292173008006674257457757236759578806871592278028171644558165168449046037018729825223584241029444063222103776223771624479841925048663372618877773570355195706043079485535940905379969201174012269652474068511561144905550776499808249494737668194356935242904282693772523243480338076143883967905897192317278937623003128907602965027266911745546347637213203537042618244408219727782123938590786785284541755005273664693888313856201233274877551637000733985967364169188514306063744044531247490003468769914778861361486262760988886075838976713180435678158541916298009428291321031897589092227691936999417884577398968457860621156607464763185686971422792509049690397324241946159856749027461216892859472525269316895301780790761332166784299966585315426541054190738710442423887622612082567066499386084071456867299512333234273299209369099224935272633276059285765011129229704197402186467994036688997117597134653047215990686435694106127339649818473127947712691124524826800226776522089141986614527069612065593008729460375434156847945025589668644333068027384404106300100133582922896241278101671374441361959063504506918495578838578327645693839169179475482902376154754665955738001983113286522027165664368283963441289255316128065529602958468617885785569607630292049541718192251876510125261730824886665729544843482771271824537004880308063711531542341937980684891516380316277473911806112284498713441541142746783991073446849279735241655027068038891461219085206727724601235942623671475971014555187012044424929652539680317444839129510037983394384360867037060000814411836503327240923940597853735415416491363514905287603960357606745556336899729794996872810493286344610823797232687529473078125186361325932261838382890482323897333121308721852307439578471955503907801622485167863738224598967354891071251399735124566517265697111282940168107259619135734857722227115887066370693888373533433902494963133388907979626766384765120483680269836775301472082718063367533350471776877028345204648092213049117611368531632873029897694529387443960579894945693594146858940368946387584180194318654372552067065297707572870178161752542904801710099619749601720125231006143143459148395649613353744986649796336048768186611880693901427560956181594243543996920480895035464124385501366470636251679261816307253180300713421174621210924510457554182745025023201754688087918364955498069316820055129678230020564047107822881972205081314521658760460793238959828351667105235353644870015450011768941751792812235166881407053888259928026814185246229494147735615803683676340630082950187099085102100701542079781059820179451885885041310910605797381152547700343548432670190399457849313272666331459467949728167354792487102472720301489178764923037840396145988554955579828698490389654882473806623109865915272205786973458826988825153086231027255111199458343725249692438823444619075121058961800593424225809210978469928854732733375729081850247159991005909131025405233551554291366149965107448305675095540966886905322486023468067332420648122033857139719887114078400614250258261868181152539360017774952487430029696508053143685260338246632723828786821968074576101485228135330546787955797836514219406404126791940978901225765518461339996709389314023145785686055368713144526573646154835625258035907482821946549816041859202866383636384808338428098916193572090529504529514978350856124512572433054005789883445438513410484131278674479189810271914595387859464768040861921722730816764477520763206060982592516931341255377176428748924383001157293349548449473906106137470800191939071740162169357758772322895553926200981391810141063316798005603622441684219383470533187627404905446159676079036313978224554998252097706568423527051769850020390803184292741875768683721484488103471655769890046100619193603358111117588046560771848385090035163873094294451018830661845193259832411559694748259506254889341348138083671425529527079266725760919494217858050349879882179763884787956275315105264549328397465432706289404144134877833812488620781655819766614316916425399465385376242676175628488877453784067532675764870486718346642148389285932462991763936231337732855008529479134218628855679767462715212808535316390875116965185360624608152232406985464251213959460423310574040879123059747399584943709937208041247822226767750855459470056488365153274871386806817902355167420972522959479542217409882458475585920737928245082837029337030686626804066773639049972933486442322283522510786466449472518515001656434530656550849583124434087729767772600054596940355057258810466637178933930066232292913296543954210889090290736941915396351684131441271312467363645029046090434469076850288494939717325360412109761584602480767377038503342663885079258360712454781577112254960059540053531706363810902599315948918959640650813018774488138515625680687056658367918446283476637709880162159230556519290613695070513429614792477442092384826511480778455471063202861595866004984284511377583638537815698417899083319938677713545723054711816805848592569876982404908665877432637100199899790710805472974723348659116967486309661300995171663096738896175198151461405911152030067593827182877481935140673598932406183319859825610697417036930957180579766304735554236096312473556725364774553974988921060634745784868681358402502729519563954919252256133867913354387329923658756134217573109342361888585334060677286747181485696532177364678440828010390878646481041371400891493896286204971572492005042614600606361536665918635120796936230543348707195967068274029339487143516468004496063827948405925872309406351412675601873427230143589954108734933208200147441892006948450051746948872406113926115126051986403142241745029971076583279597806258734410743273304932897185269300199826885954819113358006947760521301831020031331790939154171820948976096058713127977572331096901920842117931751919906695222719802228091965411682430653025880421329503111218860497200460204917988387774819727720104574156104618013296767546540665425418757240428238270714632047421410060498721815180136943461607716682261425756299352288217405440749259711318393778757805578623409165353147022305197206969323763107933996662299964784762065405589692311716148827720015785932723421440502242751095076306351119060770731921124891200959103518373023274395766112649778867214896881737221900387687638643000571343172440712318384987429869415688807612260286226252974685610717484044725921549070864528142913388403279666339518472714880923026500624941676111354780013937852914453758412212833334478020887595160138671106845268252113976593436520101403878887857789597485562069221806938888390319550483086286885433465356232823688116069685022056281054348533460986342792163537671933346713211802050853201184210170666975259871383180995331292374327695493551834441349324386501622037025288963091649279172234356540467559483050197498202531743403630615605124353904066889662869744288243374531722331185010531714799754936892450050537948547489111874804000553324080340991243657127736651785371561908504649102765998852544550621037140724458244288870083250529762929649877001803586191429369788883422696308726851033682344313738734777472177897192739306594242614580359627892891450959019742839081952200639520417157950614323156450785291150890306411773332455228387716359559485093466181162176969107429965644156207517022332349744390812585342098832866117271154861548619572427754203081913997782751975119003474211071708726023291530008645423475925095129830613811460140979717310358971846300743341357732951503356960307590574133161914767436167170769149584843176092297752657028551323155238763365996505650518268590857036374056600619714637077098604301815380745271621885639182666280554419663683064643284393240780595517161583001705137119827806969158786562479226845688005935425975078261568782562414885851810141724356013774131798433046164234502886980328908798488243404068697463775757797259350276331090282269701378107124780105176863943878630222947641511843682926267297060886792155055886027564709284140135760132192138035253667327980393097027592124128928685116273813971688302847810474159882134895701852404188096989356942914318292686078312722406983879403834936606455958643865022094949040918876819885543046580519265973482263579176762448161604864374338115182252684503833297960855162492450157652519130873243838175925840218512336547009815808548761168691574262825341774141679978695820967242479967509985769028826103499383890802976717099100690689445600794657764560367088956226843076188982128457708417816574512692452774764170518625963404748238630311465322279481961381633598396257520185088769100272312352188638263841097632064112720206616397913647855619273418157412920319280052173725192039252412100899054825478951438422533054027382815535979637636420316838633263597180003336907849466427416463266347953166906418616056043748406371048981606173974791951073597328251602299985591006744224747695103537797560652393800362977658519672966920679818068274110815621721237184242173278885330552796875238854932825548656574627772808234676254264734517740864439535916982800413717596483634369233623666092192914489056238817353638257022306798649511529988086982835280940950700805281579662941164915941780382462652350203012795421464628260113055564338711333471661843192772990777786654986565476417065236721669274055125971293350921736575167205536710127171756115469089088988258011209587085324064298513764307095532221633768999549241781583014556127011951789657572713288225902145847891661766228448965222778783826173550412863203664338828546344362150617743930287136618771548589311569570364728262376084290868740994388046284189814947995447253542108029886219575262098103168757882667339644427150769948998736079785843631193567928821242547791078093394689090619008638995822491006421760687612597475492092859622359109214224259194090349329827648120846040135130173185104733004553651580509758201673500187949905491132017533437322065102083246523786627954071574415465656464860864702896755311472540591424626159864293672060622215156866167517384786756505034215378273150010639793077441360014282492945840001561434939859723658128169965496091771177923674621949775564612926823595521938144725730028279644768489857153861693970688997513275576481613637487170753955435429035677957340828870781766606959222628888647149895054328635655876267039410101584217972976850123678638246809812169903227547631778488703013225904060162458472910500164995864945440124431514194652310780513740172002066946636914628157735672629799328397482147852107268091923813120511163161563113500074351578474421337593846761641294299178150685919792950936247621822432087795691458808200450040410939014558353901369968450696544835024584649290710338785002701707289822446073978708808569496648116447813783857109940872067391912950578725283563331429756987323352927195376378289030251440571554334955804830144858556191914437849058884704894976333850071416389211647248621256568292843800034105835712390322375558658940594690566208115301095775008021217978659768660337288209857114166545889705628313721107273453660171469276134722596248664171016832041940601268136961789396847493199906189464408332510935188994262777879767427222567207441790260755865959999010272172884006319084003417298939728443132303757823841916244423529943385195355394842428421932710808941932751454438590799621972038046866158771520890288427381725835388943449380723242556964064089735581981845895351382215196687588737430086894193610819327995603641696085795895088717228758793629791657414958776201498111082959829828467894608698344585549727039641374353764828538737107046624816513657654007673104267905367415151308911357815511279708346852898055577769268128878599812531972269787351604392561179246819406021619972835409248828472666741559367068228834592492196792567779164394055998791045107195333763519288163165743538531636158381284720694084494851709566835977411559418251470611706176104011071693352261209366466935276925911665614094517980804442521372392997715975382539045333307358555609391949785944862268010171544693277043739094275431872111473549906041064121260798170440349766031374026370336530579855517491740930060922274934730013171960776022312372242090421128763794122460321553952422815320326517431711358424584903154421625081744694887943683465237409481677122256490865245079342509429898396007296978242175086109882738223740615920927805647991356918279276902902345934116337522673169140106197481323280423689247130209494708396629632666988643216446827271708553202572931929369688409953219660606447887248340413618881034465612225810786398081856956895099604953760872631929127821230235137484219688645541756534958366124165161357056949777852317525851881324927498718954013391413072395738632211421102237455311311994627602203253202068375797128247544953840047783077681847480840716816103621369849133217773710983956532234660301408147972747891643531024594362091284084458821542936218138983899008358714913283410646107221880440783354468709295062909005958413656403715264160272609019216644395421919193514155019615298604964527622381596788381341405086008959933036893299451974155744540477815853242861157508118101778925576088040022133121838973357896382172511606746794262806511161121974310497465236774857488536524360149288605580527155335053027979977733116216590215846421348775805383361856267140639953606752460751181745617669543851034429094165730156756647930806949273168507133656973605462137364397494034756617451970804114152734459605765720866861443329760119586248538839300652849749047833271222703773319059353026142680974972813110529657687357030460504519724952338429625045790174727211789713513825092364441555285140791504650223743670370438237550394336438827072101244759928147456172194794298395131553161693217170386057729220807917367788964703022341239708966479066635931289177261346108535209161134936047038774742733620471706540256440707463134237714663793940108420123036010034281169125410761843979847381700858478119158106274180683910281826096767656985077961182213943770021744974264697018836137497757732185307575977665547622718533697821371508690506321071938053576821818423688365392691932585584462522071275427378283420862155128162540482665345299090205425739445143911377628673213577535105043599458146296825711431453687344847050648045015183206057331366125178777910842398956438443751161111065700106072932555226832782550606258414409654488534703409811713304911069082164477418592239985086220817264384211749410858030196401816217167078374746999045123842452110790666723876965273472075552319534978892130106332815567364746140832663637574353795857978925043324517936311547941745044159651731243456130680566336617613598163588030912380360085018922369157262609897764126095007430216147323689390964432091057139032041867518616013778020411179365463512780317675596955764228671105853175449299328402595753166213785988075917780831922956896400799796904400571168911778077737190193943751878613932648915501998527956669650563813457673086874526688048447655015198479315070175769009539156503656243812398078866969834456302931783961866555301849323831813415891570751720105994359858505936489773923226278935929595029051469632395318022994238502680295217958165692764502707318881195227854816105647554186613029254369340056070400478996760094490964692605518110198411680293784086946953060604886758182299219991038683202262090803983173905960280615733436610136959373501172745396744675923451366079552337190417210618175998854384818291071419123252246141457109577448543683598903972156597902377005695308244093115625334492511999229708586759669877913620118251886976959671350607854645715780643670217586486054165035687935581469579657027974238440823131922408902008260059159567239332769043055428546306081250964474098277013168475609536999935738394994968523043204884888310947679013424118051647424152634780604116301141264046952116162038056818895871596440336127969043119092922703401362648014352193639207680673239397187007755923963769299794001199413846554115657557667004983325500717002519553072658119950706014722855068009064672932711654916142544764880945150692886448073490986147869376540894959551991578434928265592624800361201301607693568601963654729709958214734480107513744095830886084404516999462969806252434724287546966156536171411652803925696972910137666159541941086153360215517158194165982055580807481517167121058847312930101694120512053074326209126418690566377948820158820391759576707951012079271181898266294735932753519264322722078913983416579776315209010501967696139720369692810143175143998303855344372010117158906564573691543186787715995908008745480840108396883849642965033599210719718452152625135292982179672109444547698696201518234411935667572846544626113112948749900123783125182085426045288134907226853675722348653394792592995869637585578725601937481450376615312224530616896194769696480235234578126772295229107674271971288831989009148291299463936322287777963165864203795899102024291520499591195026481425057613235850100077787259168465340505559282743622871797543951189275394704485574645742132791300285804393634122221154041451832538622182963078130630588651784399255979163063594664081402820140523233402583579153366487283244938858329569716585711500883414199331784054249540692617762028186825673152647766472968030091897499764582732484700455080583269241233097954577758871763142981347933110238637313679966458664229761472217910910477440636678953987589100704472235216939862013637597759187090207670810762127511433385962301178158779321938258519559345634878609170161305869819189570712703285072486134467500776016931612464865898302761086692073467390643440199912778999832965713656645258448607684639547183263321636317406138713937364493204792821766044387296377829061252549358646013496328036492026832323246118862372206962459350299567245800560407775072026577485496686387312976080384438254403049988279101965116849285572641312058214128961928590620269752477648567569430861444785208775645841261329811833445927251187744682090767856492501128471327047575479409709464110584683928756822964858405615839950466547176928634077626209751364435116308204013178534358202366000440271596929701979523156861952362514834305335856470201896312740103174674046786731515238961599190356809367818864024960710786464818987974426771354206242856389886465604302408140373126814549816356654674832983364673304882716200632542263810881857124648949057803464745047927647413467886558409094504346777634954052815755897304320810078160148970353821874263720640737935970374846797491876768137043601082914196945169469951566594151397029457064563302098932724094344853570629476429536347887695989502861016662002301815027594646029182992156438598150728930414515617846852145146587904924286396489998322564956174406402226360577967388489149122619773958101147004118070219988147806768433007879062853997264314612491826948520187392126069136812779267483944031188964679442132353051350850685644434762827416972781062860727876578066651687740729091950135156620556407067054235189791915301723455809774700671155439595444533808267253585493724803028875546119177652401885235008062840391420436755266370610548466736579191242386751703181451655988481722239625090406782704104844767404607032907431865930097737360296540159038481361234076957772139440325272599983069121048378070386048698613932566987811364560909526507951300734981190934581220654328841925305194205423833064964092793930385693361744161507742640841819842998376126795493876938320897381709194137220944022192761786832396916851728818728425937211805778524484661225485780271324195271722811843066263032417171972198282550549178977737289423548801251538401845005853722942202673351105653446463890496546004958727052097382256351061856249061348271005393448627608335142585972293146605792079926200110402315551313533362465148242848758501062179569346126206848098041396885829455022659186170970671437334343222663508541338234820050880717738446375994838927913606028542043013151494517482315260525822267484302020809974108881128753182368863330160171976599226764910252189035133232842909052853580462420100159295957638480342697785864188060656517574334265371296495597680255610142259908752587088141344154257265860268046408655104176596537153961476006199550941007624008938876370465725261199337691404896402980786000787493575012003873126410249044049884932501277775884417074595535349019821127887493962666989496937170825919101751076541224933792173870871539422670234584920158421433984696793628033180140417567567418132104765924187597874119057436498818492375753929112170084155363941256531115802139278638741638016140041852631839548146026594483461913883171990390379787530207940679390360135787693344384013233356780037630737679283494858618244671226056061008096051350120026070591727346960865780718749682863466645646718375809898810944500989754588836773154982790326067075745930865496525658978927942984950557349580307775646265281114173361225660608006552383332423072555594346025256611427836366065390772813021717023218203738116099787510420904441110308477438493089541057141886253789630266601737558204903446191434633591637253768012382773624820846456461127364868177741168113416977448810755331677161192551082162553810089747893075881214200369806393994578978393601571439478647600727333201817051598206728315191417370002111882396160325474595787338877873427465415227896166406143990370019813712846297276968046874575634044376259770470588382782767217208082169958216981355336133746736882623380231288926223081595120520188412902547161427613817449071584229435772820047007027454169014025352327073239866281228319511048978607841911861127952114151259694848673285721543831245499751143125496695340349486820188591408664839528465767150209971201578246726285351640572657189855171145272964647608498863366861754000762537511840303915147791696409561320122056314877128229555053087077526728592863224438914674104945658580465819258688857154399459905015500276120759642276720298755829387903830449588600014374896061924988859127629528352577654476500842711712424326393008292393556488031303051896557115379395938440781136387120279178981154830809152353113673589809940060013239345651125126853193780876597378905990280503504017365406844403584959912703172349648213034547896564533967725114292674106456918586998231954947939827982060558452016074228108077914326200807930731052299285035172845424769361601839209615788339987678864838648197928660228910108518985999231887530951003928606725655897130813728882683070321080599761453063728592216703633350631687930784230990004874635693962243080152315346551564364011077099898490703132792796756100334160832342696208635028644846861115286007829578530963638993864858392017021088355067012464365144373740410791928490458000080195923100469889832769489319486543681999599866889101082200158169626544893236772781450176972862406894255723838619984677188807454464229641377655496318814496549299261927629304403435957073384681803227195809998967005727565383996582009491916309733461661263925181680699401113709814542983314277816956016419900896668975319885448334632828705452859071109063670430065043241955643680465703534159508477231668617718919848711207158696557197965507529863685780380307159225180966338701557220904399389234382037189396484943864940863218809811334818999745097826568670267044194176604241651699083456657190219747989654175304075515762055009060237882970789605682049256632508703377155415286617269778044013771213676014326978695276051237440536688593951304918171378087469416624150681617803550793222976509642427935256395421589358088325208102215236719617130774625371488731231669900167247158395517268676931927805923278782100478946641153054493328180412490845272513083724731680169335204879061938733961500957564077883063203352806468079309545326299961799098594961146548506265592558616005358783912769944454167472399995127857101529325675678619286186458864164055336971550218819083305256794617352955606075112817807239870495952532529746827451360745860386871538688669178928977367825874418509525311882246583036898585182723073740601830006388951645601054308957641426593495504838525804590371851646444272415786442491216330071946291435573052782115723341104085586808050031052033945368284442016092222479542683738137607314829063860089807488714810585169993607833143597349175979930734946865627997045834326525505434934489342323890850300950848583038778331074314245422103963474704373705231787463735202062926579029458862363229978011386347989626450478744195088598749601726174165666878648094148458919941169021409944961463906615498226448813302985071236225346337633363398484693273296678327971063739939374835017661250347809710935144596572214603697851821766139241600741861759844574977940853647192969979440583791836004701006112749063939583651875285497399595201307691714100097843840771193542696315451315016828931406288518253943132709207749977920737360291815043702287909081617735375896195550918191776550517987631240361839406982265582050351095331912459446638283607062745989966445133854856132486162744456620717330549987849286934808880363446069985911236382962484114930017465287551380253870165038527009349734447888255199624790026810921707896363018285481095458156509654660630169534616541365062919943597149602147166996953287007885034380546456797773906315510075065329903267995302753195231640244271482528638745622521001225971185109037056868449096273965357291492236358402230922558414887558504852363612059801420280043232803828515185517916561805887350057646536161594484431479957919867285188224749185920181987575499561509206512271095420388177514132587395707051925742077104455779881665892066894363313987446496300835097401256031638974439938727385629400517375946963863450477853653077468385892807243390004758015184675364704946370008073049357838356000172229145457851411227949354128801455948905972626186541781024187066267724347180114222308858021981728915254453106209015762598560658266839172450149074531643641957542145042578246226508279687659315130038021091782272029577484141841919825471719326603466609379835694822706858201981991284517345065804092097389624692706011241618805855837926972828474304172904007570930692590683040041076328414500913688731224292566647723307086871236093927137991981952075185646294320322324105074631329658311115037718964153591857624285758106455458493303040710515613529417993473716659881177031864326369960943524099335216891045296395750755411027224261865517670313717895437353158378328733477900761235517652631199504023035376616389765449653079753222066514163798665998482940502929635750119959917456369965739331576305560250834162664293643274177856727138923257614823265455080995214049620212291879841696803715453865287241183754359118364444445151802113990078320566398248430650069112843317239258528539356080897894918527702692972570444453534944406228764979100813826079016514906048974944252286302234116438874500747060565714453190598451411917376171753656928180814087697251849667315243380015132750140763226282280716896303908360279945332691541185956427674594586290242277911560769268529805260862707729685592233282816502551039355866546118983089051389013980474302494575669871923187216537315675753135817033427089138869657021979563990035843173977305590347873607882887187662322528906050843955250279159094763630986312453972754664733985550272457714100359169839715036606439347444295018550058936227646142087897002382417454758122720608862985567071898486140809691011850493533883938175998865783572632551896879493409928214042115506881922082580172989886567535890538447965580429202385172600997124683788414120076991062691276338570233396364418075158292751344992935196328890994080439202997877936745651536939441010327865105768900231952390311969158821392975256990622924664331079160447240782366560389393812405602029833330893147257075316661128233333691440082814577792083210172137625734412305301237076613309023478024509287763384550881874345691195034273488918196668411486913896333927317200701309654718876736838687042232241882396829242515921561736544961946176666609033137559304647791827800551734787156785008231732449651246115930541728234977233177663881579022447939555760332289471615030952175782511623236368476602818927605482221996472357268845944571079684821704774943840176612420224042090074743813314478922784353244719870920490204417882852196837931985281257108289157390789460338213689853783678029289416848262520741444735815851393766105962500562832465456527076879436201801885716354070306312872390957780544515497855871512295902572066590028404789810106870132222834093830648955145848265653344363527806808521370982226532086267142971628074578422898288544588759672733891282208458486595005101857015969758023135550931420933648354728061305749427540846832217371775007875589087513239206367778484853375571347199625072267238319993751570936432629122721084246453192769120789629792201534354800841206943241808820347659268397112152587666264190478045886666133639940041484869896799027697199323109650752741370484541158590668518463261656552837289482911497868118765987305504487429796112597929600677424491834833937345286648754480935577170248381294529608285729228725798812512854069837511985549502995186431169450294688557210104165660302647614895274723717897944433241152400211404775586687083420792660622212463965450719161086639863594335590325634382372449699823653693118724165020897335134464621486974848689065017035243842220074053164974382992215453403977216741300462944428756342123982942951264134827460794412119809939581837467089773342719383457070376462041575173160957979247465331002744823340408776118631813415693552474082583339797238075889080841038999038252222134813509576364043745083754696396263347622815307390921253428645107687764631660458543563712716327615087655017033670031727025005649878259403840111030944401547307799130396978548372887275862197715799312855587819158568109433525583731731965225321245132703049275767684672587191166857408214818465517807293313285776875407229193243912796916425508547052615860072691192428135237208267094785906629729083771094263976393586290208935970295554707452378899724865191249969204410208239746301764569083243716475037548928201399192960487518985023928192124969816496203575221714546287782673707284716559863507169093616101817435754607834163474610534218164339005296943445493991850022229851065532048873038005308698482084388047516969859701811054543152142319102313467876895659446990851291361980639292045363746822541418216254490493756207135404865805610764236783850279459598254361255268932915015962969445545555685213627877385342389242764295113660579699255605458330659956213701362180487027334848172039803645924442631822766398235821316282516058048477444226994344665218163928636532244391551021555335053944559747836952883715394195869267201446498438749329226301597274262225208023584777076432078161588996102972656662132367653201248119566649474915492246848864153445614857450380643159059931021380756310380278171967668360750341184569317427830821280780370479041263832035252295961240429982081124092281742304266148624033197400963997709194442991424278577774345826969413674462770869967478049055107214002168994405822692667983495536102569627392804912181523420299364860393926525071313172162984752954172537091391150992074546092979646574829427911813022482079853847786221328703418599479356301071999945833551625836185254811156660207620578411704445633599325685013009035740951411407580537358069043470724253377274303408103569542513807367860650975284564228255980131754397740238581542358081211316272497156136514893427507663399051599952092023692973240490049729716110737254299806037986406037392599672930103096516732343852842342115540904756212918995051814655345402871221464425194455169771158682533959509433041614006656373521645258092056368917392001305354298484827955224312593096702762852311386906057387087586787195253768632757025240256929051318253623971686458065692143673689387650155996933310231365762994538735295419799167567621639557649788634102680931783546248846556176548893827432787838458637616367494443195066315490040046556592819329808342421640319954320755412641301818212761605243450898042153385290127180786947635273545724966898500822314721677505349344953742819154241682148690474410283224148151505603235992483922485746362456418647500010339004087157930187649226290800217500715773027195428458246192941242234267250385885305298900483493924308040254050444941736930017838256730989698249302721015715876637287258993164109176594433561902494914438965263841055809383702271440752424581908117550613833678452996227871719419462336833271268184390224442093542399337474832691308698714034431315502945124413806655653463999750970864681209108417144950378185412643254759927311338151903954832520441604940604386381516571649815382434602165634217634083304444484933115810451443876917349501329436945976014369832574495723761893071454069506112247591065746231932383867078160039478650161755398052744879410623895988683296956086524650427974241810923206597712632322813836540950988501057066244721406189814161778694223220733678682292174662816557579342721267153866436346427400968183899023848112050205088731733051775457358683466783194336620453978733946429991361308460286271789305006464866099351347623795064702142505295077356727428054353314154245920259553203687102069837431030676784896759063679482463512944084148683341479114875247228061467250571334639329265791960977877963724409302291855982517413399170662659425585896552032438384636430937275588502561725744109812045509568563503547915749413365963875825647792476828485473524156090475142918012645442398875177138784939375271695647042639700087578329142697942951620149719060138175279282698226269264050776286248210007928082138902188172495086214826292133506562372988486455460680141275333824214783937803303979317080656293163300285814854048667402442718999485544503340056191005754511706588543709894378591249627771197873118743044539584165698777471725931228821409410547195368753748954948705595913716119129105242213357336870483145134954871052432589862413114324451011492351047421262464499679457930437766699599451014057806974578875715641974226601190264896994836632834829757017050055398274017032801508632190346870451587939755055915337990780432236621810456538914293793809718991662888065383701743494138852433379990219031006964737586596306539040475405151227603077401797970384526159650385399145958784995397306291546898111536983147449069895113028966739757585903186962323346761220006311532290838754078167468703438734771584331215005147255395822691011838079882194408718924701228300591235189511145856233698567585503100308117833952208192758778687168107727813517027156054005882241211969383898453845934845789050605476707989281893994711461444496425659496465152407116605919387874311468770124332634861295629824054871243174663109653676766323030321045461376183222219609636747903169329420552029850331653237715390094141128168888715237848750129085485965548379686974338540979446615900337215729233684156328168693311777785022765625891869792436397260517847615799154209514852852120654912450088261396547751874617873114998302447461176338604183631581358707615051914622664699483852675727832346029456853590229486089559215705287369862496143464876813359436209512069789824540788027968552327668126637657936643738118144404394266984743200488234353753887014284540955877309271911887695079996490863567246340782603214712921035416920024140582386955527157534481646927150900829252108413913078678260536976219094058897460329017510607532048624431274335679058313680385188756411492442855137641478706477472030645877913638299881651478283247985516673764828159136100703131876575882408648626802560103738501915581343174129234177447177178940599905047386165225056843955585466635459251047296769910658865282107172271269505099754153966733916399604763443812043197837266324249048224672497333529409140448618544433835078153543660756557913219403022624989306719116396285381388565164411647747706315747592003373210481659843760662247962323474435536175364075265604937138423049763929690490674961384497148329937473838161908797112036617665043097885755764111078931224132376027310601117944603284991423966571976516035729782157739597551907421107808485955039856618652825293393028395728444341192872635420298497175978394013056131075272872298400992724200689341318569857760024260941962451617560169893133560175817362134139077260232224769409936187623491983771365528661474919169216044445586346037060164012942252417545997414740405425953733929182551654352989921293718097974119165690192236530771611927984779887952888631855515483666413638575612775687036327661231165951431140927968249404511815747584067417220543237290695456740341134337449967150898543728052686082322032548372405719971156593608375305478297004008842651424021551682092100793980843148860549817723615691246019985845988804043931897942448646116308253130156827914388342060001166721559359557752806263654659326373742285619379791469220852436915943013552039797298158490056086837531046768885915509998324113413957662933948390496077998364149366479304180888727010048195541384801528096004309300599068079266503795839940380489517484359005005046657692233565562641483430133406864333679254927758647942416815039332187660830116458540571398309552273736979565990421047281523329921706990435713727282739879584989320979184412607698138151463028771114834742532795083592760238147960989316482535787658255043759787455478762943662216041745895157454500179851619023042201358064546900084549284691502137957337978476536311503535758688722664856081070808339270613138700936778228855623472227971544050353931704224891858824507585284574256756654141742333658685067044810369402456215955659641388103086263084682517978095056473464383192973131706024986610818069053181321349360249451166177401386926739066269039430990800875793737469628752546345745092478042912103610354091615583580180427416698202241714798666945911518437428765484263200612360620231299579976862105623421674892991517547481261528492493194519490601156774339439844117790740807425733164547543481181560221753939270765574919972552092163083251612726020997867789555762422153911777585739217929357536556294875834992110735517467991300205982370796045379423583911836037826309753931893947024208451481297199454926759535752745487404053746168795985109505861639857395692010945695467580516037076426666066895504806474547620354080547266865146774649586654603408427870102898175106680223058109778750281023347878183620607786973772094737186459730345694013546597729933372748787320673091884760459651490978965794694347675903204344051916733500157217567787721936883463819014655728796417887325761453141404123653626627258170643633475324504693313140512394384013216789370941385503487650936035185210077480695827477072233650198645883414187614902879802115915562192033861888912992957970530286594021908674920803016736675024927186711504608423681152527269703085889984428933477068671765307321583583065776910880507182894001980340561407724260046682750252959199222404506275742420387279411153591273695454287568824183049689509426498971968122123315728021006489739630518326730011770068428081018987299310165152547501182279496904996828261012439527865254601724830589070338117668082099302283166698526263865299300904244565583063298966228931743983495053746031313315756256337735983318480987031196833071356786052955832169561576423553558546917255071146472142782890984658221380884920382589273497774490786206162489227204574744012863791934361492463207092954634996348230114966704905940758431458688931459735514372322358308871963825631437786170914319841302277170973843684356145827383177816053192134494291868349303906913126712858396434617676249308868358844228853596815725144442929153688813161128558540721393957169339466410964487927724803904938221904640007002643052061194841544062347169972741613387094704398890266299722628870156846680072186595997075799260532596661986676105975369016475552081380656567517110420593758204875926613523415852785293150621126259915878458825454360097491174253456395124876323594348883963501038213346570334854454860613245818316477099276176489159478596422857820947290107780334946325872454448025728805247112029127807110320791680453838786231939196442202066608116185023301259864105178286413563766256106968050518613413827315190073051569380601590517697182903489323854323533977224310522761385426065946992755622340090497460867495562758202534484845281191975850533045095247712744675165455268920721663538771821839266115020320796866996899287213433451563609032786976774851117395607502610510644472129916603635578258609130312668885226687576518953176040261034132916836104166537651790911718094897378356467978694401819932003660613247275500369304124370604110278027506933570080433874646892195508133408355318435964695928668456087526993230426378657682551553401170993651448643235115347403624687905150796557515035058664996023225170188409255234594773108013460298869240716084835365928160298866564901623777886909140336517494032073755607805374656817565937061383177630392935105882017855403338068197273989179336240213569318937076724733488435245302366542472548595500112879726179708337199503931177552343543593044272357809060997294007943738155570113503576748705144538100592244101506232176397060658345153902862570884376064711035012448678363241377138567690861585421929844938898149145598801692030529839389875583495175939394895704886638734142030381868822808342999276019771414983957933601408237916822521429537792815858952934888126911327069485007084998656301424197706702298636999762505034731125326880618937333923622249300690018478153253565738775385604340948753784609696645018149430058036084652171003196917545966529538568129983642036409146131067928120845589593910538261882686911530099322792464659028943414970772908300770437180553019102702984821482276411781385716709208063562892628801022072391139548780326010237276444581925368155820719578203347720680494687272174653938059890386239004213745828277664549582258135422070149913581497666356342537751582035911033492270683697707707853771347992173029714574451644619507909861057511572839943411750571257703060859884830718742738195379338113597780631082921479538518049535070224486270763598141656424700149987805127654753725058560215108251882945226330885765634343247873544272104411729087584093135477335005187621100550199223283757991418680531189049805727373773227946229495907026195529486917167874989983681744794295133172322957353490683591885204225679990046496429419535772065728553393686282960307282832922793474802675851647060709586864315431628848397659262737051986791637042916852267641833399069893567647980990267721966774479714713728503978343386218610350222060740245859505642873924692885816463377194540463835467485650738937159678429215345808382719492471793247212792929263594618564562729191229416363305660360640585690032045988709115442192610057076700648151724676155456071188972991431312004386861437845357223882213921221885703082424734217883756601299902724053712400312762386201966871807640637570525615599314921768874033355624019983709956080769318923814301638170393523291347405556436875128279240912557003969190013541623600305459493948566706700837310396549468415998274367566242611405002174576792415432985533431390288419766802460859975573567428541274182429759450695968976137092017002399652346366713469666412074819416658537253953967650467838861855462494479987392587939097159247853082137421471781052956492187908650394529257436933802146007266057932963638244737506493488673718676946404576703638451764072670489001327570990735851669337862013164154672277931196673834978116343641692698529039654477775160214197179689980463159463364950974954281626865847142570203876169345927244044721180999022051848590724760427329433585323389620308881989090580349233600035687392707444462865617608396256492900524784439675556909498930367777787899367105147814989079855511314431836173898922865615925815690399085634529174243550404829387600566969120653813555576440525307096689518999423624927916282233334915367857214294043797586873891589665364938570351626888285999064733767414903303980375324559974197655610618900305975932334388008127882119885077410037371125013907406986118596597793185695979896486830416319561762971958941381235312240093114091828117152838201853275551752952839553915060020286361376808085986327218234358260202768479950490927584925189862323036339265707930093908710214400958288634013710032464646543020409414508568769140004208140096119395080970512674116184098066055650982772394251680490137525397920950453246287898647912004914495315993253185622699019844434927371463777771314803807258692981127200408287317096113068047717142847398210379686766469686497479701657083641191127998310467987801544996210605249828524316234226035790426260686479277156860469252785288997052669879731181302310415449344389656827913157348679717729259537814981076456649695199331931473998710822580354537746258981052080184033406580310370572064492569075066763388642562883743840367984904536979867093791144368545692340124906218548786367580790754565712697553304037260076102277845595718450606277280758603892277713234504637694153365199110864615730148328545124717315745788588964240606319666449983417208445569926775491294241327422264581328881619830783446718416522702471401914252296623821768300966813080733739197319218302443416270656277406938528801580336141905474311657151028099826486979448158398953493275007775096470094844591890403454536612981347847228706133966715107433934974510367887207616509452067604236164853262504749975954647749325139309919487346131309223771427143474735971804896638960937649814783816598268699339476178665439212615202074282491139980917089563361409838709976760004679147499607415169408849581727362128325277086886727010802064039576460079672551315492926479332613473225922390831630701207454527680786342715392664953922877130419682981226159203248419095778919680347551992492753781790483525789264319971734743633950830570624328050302875514878693253951635594922097224333095123130060938765755264165143230310714328261982541625214231697056749323363022030283121286541948541993176776585219996277662530998025110320875164104737143068036195221976163084794443782697421043617855478305306513169610985460385235392077467576839838713021102865436156473096535252628709670374628808059081551008247025650338531266276856497807231460435237973141030069965572431920017560549806168673499530350916736023981774409784030528092219467300005152722382970339399157869978526099933545304219200600162114404703738770057340458896017107195592372929696557710769899195376617837408531591060986590990788006398864158886852670762327898074375412335352869653210663121624534351984793966408380390424809836207892538338869596505945276244154452855409147208243022853876651534442905252985779016409701483107365537948696035380724652147385338906033739732551928249031059760623955175502978270057503696859952416985343950990807310259377476734026919538784058160328893576514312756568346244473357837866143027862425879525508712804704228063321335621963602425495024959776777924667164155284498526566234614781066276209364495829159607568476168948349547941401592604520436700240939775074090748084556706475989952058841053816785910542088537511167811289988569481162723751727392311798283459760856804278146031513863788754582564865029417446132435551486929615229546458774216528442767264081160782673016774386803952764043406279733230277398808025416643619137562907256785906547571986971568780278406917249732113911411963780131142670675917254924618824523735505242922592877951079623682859752695542972877601062120377847439578805370129458648810478612173354001960460594651491303744446329453840077948932237625540032697122455324951939884944443267206919507790161455385158915922576533898864447507857698469172342220945641548480713203694448949086385594826955881263242643721796840554189188351369530243254677496576470258706967138423424257304491952159755144088071971588122481816017817957542300813128740209198447979026324197597394524072469413869554624855475041576608703986513021645735755033248985848994494371660845971875991368919951416850450198339078144669333776873763120895277111392453440387410748489048891910333120580892174020129298136037492098874719680131583006284217416576723159365040881871935845790448694345092756524052674854044900585312044690766814936996192062609504435151925938745842823190121455501055604734692510527113443322684727502537676808914507079341727954563046460677694160097809429380294810104178422974912211381602055591991021822050527855659144579545324888214458696257434318388764025119828361768055618157164692906075919567967786921849143721996797208112999303248515623118088153072329114312335725148949295897533391703079260525646849961554398521344958101470989152598160565303896656314728058899623432036344021996625761167311673332494665585927602814425850839974694347357753048973616736407214865512742396048856316104052266493112545653814658028806471751132169748775154073302384496403549315497853667285658335122408823380089454350994723550567395369454903573508631087074311081688421416825628068614047003514815208225949999447149113580225804792659676984300889870810136786767079644858052471252585192440881152658350351801672077994245637908820970793060267738540114443980670648466180789655999252759094131032491790491689935775200842469870457935874735997413461374864120190546720873320890517323098368684632894648422908456330796937763576864658816008649407291733298950101409628798174739678296746108947199499874001407805055442664919306078562507647869568332650146700197203037052645986559803993179480256214814718564088679039596010399417436942273842096589528306552039902804242407484650746246278235785335205181376557540791047136676372684688261448365819911062753092919849333090487494204803761464583566440674657361363803355916422435898825179717044169236876232672794151315721756247086232011042033775874082419600170469174644383846976854118641285714856283766050644993322356061328683165772696583868067077573427558446077115137253044899673601930742079603191941575913334055964285422978924499305176933854024985266278173931460268511987213417434077471324569976272762845112273455913954721049932752392509416633657650121411082236506360269561008723764653749911749406647237979164965607120788271159381474459188954329063409157255429345293903647987528680071159544175919002513859709048071223480437428512543154054210043098630201535574947747213491513230897198784000672149498771511769134460771256963147617119101007395400444374881806806457143315988526657108544845617839870716690118487133434031604148949683801180439728454903953076658921474085884675978462494499919770040815316361268351388329675855603511057156370664946795425862041377840937658623622481438301824946658788261625621237326273621664099074549678376844302216515737794734468994503065598051800583879356849760709043668908545766066295586576577767047808744945434774629304857960438652129541123037267204531649501782950068264490800326921617290884863274222796689474488404039332063809952769167403961800098052236567458923514387583900043363824493375200201369033111075211401064134247745620520897790032544458956116487190882196873040300732546532593532088206707471160275167491080896680734095770393929045055449124834275361519546035711433470195317114808984303414696348881606372674745107435765266713172945124928016589256979632062260931789043419325887952910646938650650156331207584372830847346360710714108357537698546123835471996234415144163735547396708449493279866243526866290144059192685957735912774702633862752451644840850964787090275529078014762270399871758046562341864538379563948438725617467340672187698563755294179285279550656071168896940314428793599607390279022334557596576012640665857626599735903215540438610373444826634845588832079685876634441268526459496481805466951659469945915501845715245813536809641698149328252139727372880899106406953556218454113806977600186769588971250134528929506007960214049739519652841966427376775477878514746021259420257212166243606897578863648907788893907803811489095895158372100230403933496646011660300164739368420424325367899571164796492052219963741400222454929333476241240094956125728092486609060616526954765508073763043302910794618525028278040838372643850545308013022097019056790630880640374542811230805660864213578428462612662072307188392246194106590630644427529632244162365563709099844059867864753285933559540332456158951612171721249999440986053220276340965899301245592530315822034757574969806534155738608764774471939486605890352404613840713446137616479914886349794685257622740661776947018436267628406609609386546812803369266342472499673701537960997499460203323366029736283686344335223354416723591872735481021776972739096658589708804254575313210090394115576091710117460534105086777553141309880188903271950681260217034166719482573712662356972419013416344482664365622180987689837496117944568985210444785351590341458551712510864755086158881800051942945671110518265622110286600056870028493847305969029136288448907848137246895742498168943745740444584337455066918983971945473712840160243842317661143595829294969637808703809689861214925328428584289673659699884107882130434285169546883515463890478686197928719701351372460582451875380932091103864083150400728576448422158107896155515400832100246109784871203799479624187860075065862422627649867437477040602665619490387627426416517458040584877274488671961643093595711613232979527815522779942529050816491560052580636809798811904739987947478407891489421300874353187289042886842125546705774969778328230529696499417145877390794821518063471345927065077093621988795829794943261772898708183610087060842842880550603070901493782470485393641945669639375114189390756560143437268770169606877707555164771007622410026456842039533108353409832357983500352901255245521590594583951662454046312020762569950046705321933425160979232329252657022282655831124172232775563573673485121029645615415608381775689617162111817556535696458652257207138773766374336329682233642841466356356111829100427039231540867608032957324645209832421838055460990494054056992422992947375852562125225136284962113094151564697147073814336651645394183254650004028412495730753206270019229819505620621793718798068577704431180925078626922134944210431449601164909450544626254803734223989581307260978723905844715481472342559281442714909100651756312259956564330240936152878797434963726093864085820265302399171975562003385679326752075585172982133560402604643642510824340101822164793202025849590728717303527185629296712997137952351334829942764150720250060170092586753061569274674388533123005546304607734030672068232588647271832056850402902356413652614243175368429876409704659003463639235217566551445767527155756858177552217875801818145430573183971874121746775112793566997390812165765949735621181584126897436463518494579343809341574575174551899392171661043143416493325629832302677413554302121298679714957241622176460838208083103740843542713337380071705263437239734092448115570836824670947156897758963360023425382122321677078354534567417553819689565442846897469626954329990380378057219083106859865229378916357769556797501100774600013521705789094563618530028755250830487061917861182729672400438425015943895822380310280779393933871147984847248357068144966625066538301993129345070839041164913717200671995690660157218383084477290595184055956748431979379267393777998900235419286549832044870421043277526896242828344906300066843809163479695853718087378638572518854769573019230991898466367150611474930819907036291002032797379228398639332777035982983177741053895815171353848201661269593492542364501037714400775471855768346157370841592461702426054112862011345608555479128155503842963333344063434022212548559201538656555193904995725729654248864193149692724383859519955142320717938734536919485280257890476030882968789844120166461587173164923477625749852425678288867594106576510659611663663101479439960537631347069523033765421755321574399758060692265905756165420692472344843489949945378758848159672063323621311319510487329549395281170362125722597293442249642413850773010753714819879689749355268223891286140872851142019576537623821817018255707819118561848741703147791655736384250641721310025520257922503620050869081774588207121380800718339822509766456763594926682489974651947247676329213384077074200809192026912084184063351146497431424327075178554598050300165393144905586275674763289695225292468775283422030401645935406642359036225911385329093112811404868319638716379856083726568603196199496109496329477173648054347842214541139722593960485079281343612485995640166589156261810197026893367320638902672671806025847662226167744328782585562890908749479739296070821429744583470594443895196950997766717847398705144862685197938514618666750576037681797442488758225396635949649928314483932052460211192291033439523902217288633291261593054434759191257609386406682905725623168126305405144027078025680631550947208812001919721014828107057996407458808884942021740815985202361815296477064852154524433055276342685873971295471452908043757735211463833942059188609917549282601342185813358976158366721789259099226830701033121085442414839323385597307184828558434474070441785834002494362156830964731107205329477480776947451226802205620111689492960780946205258690957382337855954081901564084501958759166911377087512751457149463737940554901476392284542392540629602948400830610518457846482511148386584806274900626241513345462338973373589765667309009863151115273401344384842832252088176241697573405152349825636600470524207359869725940813886762466239908179508580699699807018026353171046238637541330971079942948151999954790470896621794525688055879891418964170146900405740020011993687516933965049575064587783222478783883270651373615487789441420174206658404522136911454258675456121828618993641169305547458647368517751060859196602306764250424231030219012124947133729375543631782677576687552403757130904643725881095798631462472045961479269328016237072217586396403567681100423752545786784649347277641302622174011464756097290078425454935464416664942364272170344284379141980115675891976620264952636531543461546349028313574466088630597308946690217322763604351395205141875874101945222758903529736320131614723895399095889106496395682793275669149235943758240541390937453511029454657265109215063128945214944378235094645748703884687558305180097238706486903134404896046737220186112977286258737512571271590480715713753761142584764809778886185831292854666110739558200806730248112085038998760739260312837022468826644778234351030769583077783648839376076978752775879994886945575732426027868702728493975498368555749804486662397475201965310406219247633903054060148887983115513093656991597081448334374634014083512933624402182299423547404783079032484693382414493576240297858270247733155344449438735427667956385175369536999378069034962084173594813417869323377117373087840916238568819500849212978514784010385386944696939891748883166702023233282043005257032707269020621787378237261217669698547995709886405810286033685201642140172038432655733265061594851522396891097882429727100326917850151477634215623547525420011458337025691881446471320514988400912517152682230779434863788917960728426957525574233047627465677654292223849968250415711576128756753234666554729380659822109469984583811939644568059984452152276150356165944503285189986661842841079702758141747101312629298550368517601885314553987413835710733130945342524287992742609928094811283076042987807836034261007856229546337400773098029221490359856273556966485278001875678389316243533412566666022511902814749524312991762013786616246755863905864700700148513232474243681747840855496898064505251989836141095581626584403739658463460748664066929212145178109610886903348412148921389868175463172349624965506400626498018631943351023612528549161368242350781066353372690089933950023634698322229885193587501406480420876765602780453907765518934155682577560555889596728597035415459174808466435322048360002186669038521079863186399837950673763440235950437585515105697931270365241719445761283621380342190770063916732940874846642958899163489665821638385534753087341015703692429311947737813987990244426350698397902071962549298544607454431143611922109309227830918957367896681468373014895585673571094463571786233015301305370921069721493124403752973014117661036914938470284844102701702256654389042448475228834091274145687114865352187067375511157824614963820445561568830117873612050357467788010269850471881186216087715568666052397904062598305460037000664261745400622629247027835988466108065018722669623366648208775306869923765072377887137920827825550316443656718028380477098294198892022284022232756699298030909711719088744848830976280631395389259570318693992707683003448456949719451965678641567985811708186065773968611072931793392525653627157500462094222447484074274562341078489009709020408716701327434521607854653188506529833615557170118261428143745781537256374646083268280345612552997738827147560628915333531554426587223385286917802989604372513148282346063575373524404978131205705254194400280524142962555092186111220042162660844860854442814951373895203308029149952074562338389278574103952975497320632919831271104582948528762115465255829651281157046776655657007680109383015001423498325903750154217559690854972807480017623782527665410325823559261814726670373217662100271262269850014639687340911441747427430753812801394912983043034325570304243708700218024946331275209627273667028340973233077873949348246980618907156730705087185410133800790871358825476562218796474095560277469546883762977203273962374439810306241468518760389683731103683500066508607599601005977680709521462277662934149065627923768210468958273236362634096457124312108063114233234253522071633897815264014449788727025491855256351231685160008696804066237632195187490705882116177971015183515028912363783666728469683722018667581852798715725368562700716844535274149812613928749961366993163611879204639555515314432526269237673884846037604151640289935144368721930892393906410636380816535384101581283971880774951536657079287558676081114877801336666810614948254631707471256001626044056797678431543586448957539600687282008637650964303287232871416092291423404538685604860316902569621003066796612381441743743423873982006624423440876723842334690474426704630215658384611837813662213504105573062372753737736628924299223299788186272803844632857194896062952703489246190079634236561327243647354511768689027403694620277315007251979951519294467061978701082215738430098049340940164425528117578780120752540491684712672164705591899602577854219209448821793295539594944419353051103607505442209547178503719089350475325148832692451632585973722697265048560543752021572506695820281041561319744056570859389385632222375999767166581728740005069639301559945925352889587870571882730413794534718989159913387736274172052659643641546657042372163290610699201665010588780299361489622050206564640854553731542171514212169556329536406050288378827128699013074670203200522531680505322531965097869835502063977409647941027563603753618037044537793220304463473952743747585964562874736713716668739999662835772632543384875340320027685908513227735677693817370755436519104445822246423774100634261830545507309464786548348988054788152127476498625146977610836064059206180360916732118440533588991504894011136131115858443301274661787046269677451594064745576625718385693011082695038520235696992183465725708977881548484210957071326140011020952594596443408538968199416222424786080722044704374105218393288967947070501530597740334512245658920564837988128601672816082166691048582847923022016897363015425999015093536399659275329493823607588814637966699138493478954815711900400546596732458318778721893517486103562178371523208945719689555918243163426222153908197427996176009478967770477866313528347056321301322007424752229132977565168152140810204796337725604410076816440790335107579196638474225435871846591621040920050454836999772140785330139261923077920490581171407384592397503044707583268977063252796377051269218723792529285282024053065235008220404977863208448683150173396206501599969326946940756825154076321790881166632145897515629101869171665834271301689134306288811322861110934045706989564346724419794120028280907001829628287254694219652730214801331662215360845230962210199382640024051706990924667544292459531097842107828410793775547299261028498806498334729644828536052361906509942104458601095936156168691292506205269564592618505159476018656192900655207000756538873109704197256426389051253931657909078626366014600106453962454020226394920673505549963508346738628666599445929785693011391476740492511322227478114938820317049574883475296375581449570148605545233709796555600685802576056213678525068970529237618810592160214277224205660422328257063701230576177125426410253046369240493393416681549993853338071353598909746012310994871675352000245466744947158518868749438902169468101631533614376096010571830825541809457600003982768991775745388481418900812851694716586381181646500519109820500206641537237619086651515330913784510542785469805687272248069937842158484863303701418553485119608406611716668679061843807900648993990753021721999792412627340987703773759323418634009358043038859145951965673912990792323335580495808874353017906767419414808486728910666938717548829488991557249957920702815463795889996967546680657583552386975785651436340400984997476168839474476856720598351419066305362540100195717301634787334360105778115964999042082172323272062464615086001038075689140174857100098498355517414318920787889490344410820546530764738095622239087612932312813703040653101624827996690110043869608449289651070130188360359757435516475643399327526475107382028008265208734157901313290902731231448678068420348711806725539814486011317362792243943823016329430436673796779856673555002018989170506016441684975233197508192061073976539979360279162496421766861263329376168501841382729454664242674049361566766389675611614170304628289985607844838908218552370994459026203516362291346487344527742228961048775531296373857818790574732398371911796790645857551353827055156446820693414971018901075121471618073175608995489753830102659814228040994176644442863211287877441534982370271493258399523879976680573497393315251609891590354014936667240094849098914930626006715500222489950836288337919975660561019920374260005375058912622938185259282477654955136067425140967788019087871890250207600945800844268077612424558989595475244184023931153834125411462726751163568222459710284145107361437204528007710769099350654392616763304902947861925808634725755156063380033533777438201311642398197976586730113070009424202829149386817107542984345738668630319031343846763020553809868298614673647059316083898158110657268028004945396531548254513444833281109502020201493247346614583779900147204954152769566224190508181434064726088547242525957359556072064991435005245095574307903655051901299533183738454181223248617817390561935450751197678191540248460894745366208628357564910733526195012943940974244439820271992837044356405202448449082426510481652944166450851000738956435261545790901995533562730510832271772594067317186772805270190687357999665474758613899095175171429919932585813138523659600781195949738076727034198857718530758764022350963050481201469122467678303917155543735418610163368880364297904906618090975243459908883959053998772663874526096722983818380301072993456351736986521026174964132850593734691078294004723920539429665517602400565592035763492581741058995838322348274581569635108910097049410145654666166548280741973819246222747615891753789922053726094606232392992224714314274702973324155670355751473954126218425186870312665996595652107071100625284874811522466590437825848790083326442292235799453193604547492791995563330071903987249062966221448791421053318877245143262578513036318651865418784806328537002438105012816232494370658489535100855949018839938523862119100978153369635336022014309773774526745407388863782602511838386307484398278926291042175180939981707585370856571567799228202136031813170248854787283623432972322131594079169720746452756052360121967653463552158529241389199980484418065094480520592776358974876777641179696332475729879298549662394173805492072158403354553200633878740576375149766501412502524944037580223773695151871636510305849943872443778345718295621353076860309311753722909143625156034450899108524487061499323034947835353590296886250817410781101097173451675608636297400236066837511029539505437598688197795896444951011524811381814693265969856852215425461836841155891937342308361593909251327920124641346119405992566363263660714661560957145743802111192948482465965351420028175344673472454001318237040304889693476553846460421977392333557460554893691632546927743088636748544951704966468081605140213879328279722649848684037077508156327606547014152546511899947614436278975511337295546302478871478433958282475076661077841844506121760094470184281349156584679627967604441607829183961986095546219186970267181716305494409176379401097034986784929334395192852517643458232169686558654666390101048212166835472564408587974363735775409560523795991167589311860335930056960551472784225149157755482647291459962496011925979712446254809160329142825018836894764526991220561484067167483624877662280638137980480479635125961142542869001118516239232850984187976706535904748904922581309198765446464255368304535071864034164874913286985773664089839491021033699642443587350005575941863362074746899098094023631596932118014060277841884391942207756992271476373850026597847890932673875950806662292403515598185892305827883337029968272086201830922690296297513233478536069645783339040075667648259752780483419666553497913415683200939007137514330114132183711163136371230456780501029440241797465012102605159326209325101612856973834582024160060416046911056605976081256293884838311992979399405724825805529269357627119951552023856998400146021074059800337524674244432215033603068740323324826304839482139092463034166544096485510329156943143125135479979129872096432026396037302680339967299545819711890788430022162524208114031283578977486757305906025434788014013381525212818938213325454128437787524376705946986349500816922626956664534756727275284024960876667021660411763132508356320361648773397118090863971633753362605295559959371097047516058334673180790607267030287353561227719048162637657761376704582871025132566580527590844067564259440071088287409050408141498053538343989507469831922850643526809312163480382815437431265105327312555660856161082738275527934817048041042484515181746852133561740603016729691769751234528848459560076996919507946872965790344610962991717816474727013202458337518011432582587759469793937549154156988790639947236689154173098231313394703150796302186787898995589898903848522151241836520158632911422567459048038948043925062620042214082686626638374406723732309499374449975180934951634189822253459039816030381352098981748812294927345953681436477954844239247433012923240707676226918152481835596688616758941479371605468163539948159841892161511697747883864489038011190419203455237091121531122121140086864660058881176749866339897722422881950505308010143229985055046481744885375304421094029394082143046031634201357988771364722456421766135088092565495611081361971383400289603932573486569613658264539151298655254685500861918074508473012808453665244688615457447616748754995903095660682693377517190013094891417683202957532090055880499601256151966549318335919763401275072068501580947683426060508008036837015462124733043746704539497921087398444837146013938476101872551504114642837940620447300527932480760327689371982086803609699957783266807432484417726842744857994832731735740493437513347330697473114655127732157516904674063893648292211938077766647570362542603944522094441223772418147479758035258729707433061041900650081790656586394053640584382999163302462067654561119119432283846520283766161413990148928093043517873224988224342130665051061041550250739360131747069009374129786613388283596321563428054618295786282240438321272047803096652474477768087288334390287846954229525812283777534154539372145895640582967196863357690976666704015818825246530862323614506738060109594143755202679967429808036616537638634996100785883272308436175277352853995856504287409383250020063604121249329950605234566310088556316295135756734714739724851376450660226502422572266576885397574480019196715417931738953321517232844600708626774271606409147834249352938325115963094832698844166317099883424377843181448503594864084858385978311982747053065394941215683746253403922081606036323236981830670072802522679866058079138661342610780059672126828332979153258896461361416928456296932046563407152243588353960336290323838083231159555291189530333866732236374011067209249723198294752561805150618586670832807074817612616828338355962890658496475313477077636119368218951075263519664834431022684296459738497629686026999080569620979972958266097122527892166736549398882121870682931397268973630105600616074797528272691815113887122098911481578906141656689148015651528671825327318349198542858053016809947857975765571898301680090421080324691424623140616177214473005702293340609772861157477541404501876721341496215409763506069938020341398959196157020558304108664049209183808333194234897942694401576410536206982933398289666456321149986644423292381589713746091941556110015574601162892225831705540585434891020217805105179025725381651307665532384309182134435606984949315559401276165246621658072692501181181725738133639986087347289969218480720529911431427070040301325204428891711152180288710479840261353312235319977801263520947043582042412620983553047404804886486940489991950458987884311832518180419943542028138590576472446306765223090997015550569242506905052063422654774238478159564147034646804603676341192360489358514080004987421868540571197139772551547870967036254790321124226344714863358315894795711702964612969592086064744412808845335350171534482176749570916102700123593223227076754084940130078157013945508290146463178666046652332108982721605958274372996435885354021041995364706097535377655861012093772902016339348235126788000211377312075634254449558990481616536078539355954558292088578141529215184109419013319436347562758973572223074324802171255727986454390928976395969478546950831050022260561370661786814992167149162166536165955908636355557831200437928323342853125525278276416002901026576898801053914538083543823385766868259957327806070819922166325242223702940395824883876485943939362710295398702642118021158813725910200192921885435617563914328127464115745211154811779268139988875781429350829279416979900537112995501833636960417525068229114183154400236163184485335482285640843099727320924218165865388394662221776678901293393604250770737137628757214557257351262034325869389491740236592834939373666823768251404895854973027868473485806024736186951950433716544415462571454034365328624148251890446858391677397014472105518618357135744602085808502528666432238417381392247333006789254533596553729502011085970321258934354238063715104901046377921122844274795404520494720851677012307254965095885672313480069034057328233549755440970147233286262126961178787038005203901596164297379269695221909502501351250819143522989069265329665401908655742861930134992652943176744598437031299792726979325113743236258039447905358604401398148836813615215164550493781763535198475580630470820552161331922097830588489446111336255258828757163171106167277551738633537096099897469495306425683994345226117421463337435054943303587366226270866074191756335947962544224186724581582016233004915627657740586531979017775069882293769018015265964171571342366296746379104440577758405576599379613529574810555020256790414592194957443149554992450223062125383330431175783968697258618110212682703184587421805714684504555518317663004514122070762234721113064962664072812697544947830190855618489075220150577354723595728011556077109533778243349165091022322015386971728950276400032601458544321174902513240952451156001374589730901923870645030849571791861927404003353986675371255400290961968321437634076418061151692016479266389269094260916807470680792331906827316858485965138536524481634095701199741344672481071571244652595384653152820752262321333394769169029624815423852439635555509295616052487427613021007547542608682252587554505002290247427818016314074307147022320077892358341874393317928768172156294960773201796104619928912966385333547218312747515536720374555182117486401867456850467437561093044293572578452606348858481959976076899867949670717780714525064727688863300905212512066034532559682227849049374539383589638944114890088977592768618597679376235040586384565464706476427387935297410657377141933145356549203803370739793679387231793583403032359983146969984650043823378886598572661784584487267779265438668310331490111694340315465622455668973889306704039650306710325514163259350020462014192808298899634541248355747729271400726769997574496972580360141474819017919187142400621448298147200655122107244663318201384703429081808496232977286954607595638755854036637451886140938852002389245308173631756665605570966951073787818704774550434835918561939947947984895571051933683998442674214375387655283631023333622654300396670702830015855921702328588678587952940520073750090276157618684836329720201205153089169863685076488798093213041007664173480405342542789960630447583521682377271150913104883930551728149506640492953275828141676188848516328301923695329765015496964667375274550040603923287509038948864021573645871246566375668039650150943027224211451134349272580459285673120307813435342280594190796080208971841857959686511496974094603612993230615634021996683969462518306295090243718653606892751980912012235999938372402699070427271885381259069686540233543350697429199009105998693872554405808726389188307857637310490379238161905237494638463556193417509329841273057322578338365977382643205299530522376183944256015289763003921947174807955024060351518954677141984128242861765922301818064951559988408188188840621219498981748610050254985253770316296165110965562786413632967982022250235844071422674284695291968386650967340158587620614049273974268587730215366129233792525547024351732583496903281615812241175373584150282743774161838192682815528469346337013010691755627293055642983989933260898797742902232975765455169034512230734698013088385402950756164390558476560698563515412652927879781668098269173025026819262218544196638609473483059798394647044024699682287206455153418230341509172550823079276374548842461396799139965613258065181342042503606355244667489856940359415639269180031813856528528064167491999888034289020756151742376473760727161204814092926097324215378179617370382238000997278880483299224694452217894921946814915076841871107068025916292100235185169599662173161589732323908653507665741520254545778632101955131440277634447845677909947337799373196855699893306506916039717984560916409111615392129550665452683105764484883088687440977397325684408925191502248482414461072496120879254411237218760038223559951307417410709692680736549568085277068436967652703420340454088615412666804413825651479190714995158974807169657120061882978739146558305794581220969340884434533841955142161643284956780895745681622589245843497766344979963565326760662090834376462598369237052720544731581215288328605163879201829214440951578435364363120073395168532737673289124708888259895459115923876514506894892194991901380141134849684992756580089416731476814182553759814862164542823117315395120221624643592640442556762256486887311848109760661204605785837791426251971588537843038492060476912150090125525455287226194692884576680364124434229203549526574581958340320804597026416517389263809493476656392117900440229212065142066963328782522064754751785162677548539051073577714020865143689740733463551710005462015084769806985412435043699924447993972515505992457955367926343363017296840070563251910014805664011811296412322991654892546590686931520617733598072040644049941350852087232209778950743585301838836241894015289685978238178244156206252236838098340053400688287493915876336478713560353564715291364273280576040876082539548241897002043547697592514923909578356498378516213566374409487080527820842589961284978701108933814351149421322676549368382747875935046846951684066160415525823857261343890812960642986854134122093865526212420620606731619148110894526484133513254237955548388647038903212808753720589597147439085275319143272536810650895142191115883261753772220710386819544941111935858674916095170147189233440858983872961691412376402165759951626570824906636792826641091757865752984149483813536441671329712081000911786385171279187633620857359854188508293476984599122277655416437076005135026059532628028005343472831443456519094681449041525690153034879880426794589050964646155192632680462728267908966309768324387987962932698641063223175407461097546545685570292111105481766335797323915082588381879019785564460982803568618485289434912936959049260363019953351918667509437626089573611747932958040421537125919331546176900918672787727313409737901001753076609908015639165942354732890344675712533490275608903887966905606194125371748811650352697449769987728872696685004636992026377907320618027320992524810085282436992963069635104712794357917270803019759941452464036673863545503690548860471379723995078603203245622344039957117892331152546797648691312027278636141670448493516029741652456617978495451568677247685511624105504081936028249546493157421876015553826076847509667663861711029535435042748533523053728945071892095711391873120872581645867166141332987300622631056250242095869243786140488997338825341929423590931849463091964957687288118601518777332800677150400664407764472891347086638122466774058592093137600505974137730392931878710563226598176041969559133631336437398586716078456079552235989186456092254393547816899549409368980726824311849077651849658726684479588317210925516919324362549473843988698857317373356648821797696940028021361638643724365662454791427002288210373749646904206453629441457460646702403841409437315825354025400933742857555692502523246296567158025304643043913319044951134201209888321837699351758087570022712118571455384654203306698066132882515047429780923998345746197588303466154915156320608002535950919241234627422845113716144710102693104618494167565719176376519387801309065395372130280422096251454639167338709592000871937675589574052145697942325604102914558877815354561551777352692895213938082253084469493792756753113038107728103403772326961399433242633013522067339250782220075091229469058047505952548411085415858156375835429808853841623625230250161830999133769775220111413065803880815518441930532285512709777482677693328775274483750188672187251476035030046622684193617891695097278189660359970777131142642073696063991808827528538304449797317488747003814955576822673838213351219990044053532616394845921269691313828785539811698415976172832881711559603928986549750456269431613188787764545270099709578838322657312844840164694813100329235759788315754090663312853783629280763573440448901668455586488917262207241007048093958548408640477625777909344856463156364692299977098624563535641865638981812195992004099129375155120398163476044637011192251920769192072041925935347340394598640434618055680202288408310964320674054722471523414326129425573608203408190087905272354338360340494609377242209276814556437225010349731701093118923283900420224525692242214125876442774588133987077745654249143484289138676886281345206193010130180391116421887907440764526866771849198015154406832659643064232565008119754902466391718760603650202844461793968976914464531762195605307031951338952861429329462545516391166411667943730414149940279024838295872913950648131049302935226221115164397524503740249248370681207426139547495756192866538361337909429226970453821370856576370153111492715148886773989602506731191676154789771167733494668907932006680747607919708565827071218200518704782032289035225491996447596951214256379963993722450957073426937388652544899524834889311223864091130363953428659768999662932755796428813080718734793136722755114300048720259298111222562824665492538483126730682306641758477029297633582569833914555006824965511082686745291321787606293026850916477152662141426967232222999862169666901762906587965494995415679550403543877721209612943749204121807984780684720573760896589052067136632972319707167984670009579666523720703307351063863058737161658751164058250521891577900857041310799351460751602808451592095513008891600075946146947794722308981623676495628976693740756087067119814302240996133168893818663957883711758829475110857397709975101439303825693209159347638192616764098936489595047914997435722981492058983771934007639388231902966002322710453773283972817611362660760469980782824381852211516407930372718767082672017601201829452582840734651862270650751769579845996502837616575133399297203098007824874707584519543327473994993450173817572759948035123250951781395533090600031132311407085891511103067918815264492770937742846601103213937428949638672159886237163616622330867400144560193626965948974793997661471550066061258425050060539457607330605668831570814227604150764650081370538834982936016071887490042929822532379327231870292167109554801378847918179147621684045054355920018982120032184466799286795097748458351917209536676875760511177161279057763990182808231704075728873874342096860099916452285169344271019417021979885458616204657669905322460183872435871395433955694845997735424498269303292066935789753990949841601169563910445020694901170606716487044567016970819088184982757041107010477731036017296280445243602290145732869887840780979142094527824389716569393391406923403348169786742096432492296268686817586394698805404238454806436817281842857998881988189398576777508909183595450778566563273122264840105633192566033070601382506306719356011462459290449194751319455129959213531968731914896908913247950523386663352987423573703570288669616955604099002610138249891948457390251157497471074511873509416465068700471269140553004046524938091778591288793147471041775457657743212554074046771227253665562820022169168289170508904034152248731605503500106464157913657128673841455747728462583775800571766273022956937382985847101685459825926836440277270706279870622293990438406813256593259841345430205736588227863362974445569746862482255979082615471476488328481348739362279019843527144066000244092364063837670944365047065769423101581521870543057139795453158921016965403170755839883467501157394573190195733176987235445043634062700465789619153549707586579366878334013309208557837381668888115971317932732146741597346500281631291131435616821493769295740573387275157363575327446707720851959168787219597384762649797952032178717092387341108159828063320433461959542891626499970667538120924595474376527476527027706588625720617310147926681261919182535478316865836824013707624860558423781146864212067856208458555395015625929794742274178965583180193996408898248213616910007794334856677372835775219807273462466573802562017554058253470081153960615146656259332140714274456041023118132125093662592154539408051175307135659787356927935558580196859556904111664365942943582701439737657873903299710594522261926731872498030627053841941807784571324632388997688699462470931747382677182324304564760539482999713839579274274724327241332575398742574030350341712468929040615371508819210688323134792732783696485103198609537821968966659225998427305183989912086316435316470730748422148714679545065305050956575692543871774962616771858602902979641883076636196591649828417519874955011797326083649822959473755869617121194395368519077516736614511823710824669577912081955808282171386115692547302507795065525077345463064806151165327171844206420204775718731988912640761518630851207659949579675203973264631956080789912908857584783208394144710462173965782782895622150850004119997008111100853270439772941596636711615294597782438089141472195792047097243893036787118176658594772750141474045169680292141293444777838242702851726171017528645688323580032844001215176136884970828432003124317227115053488538176164607557331286726690870970798801191353989584703711173223203895027259270811174273859251218266880303025790618932974188811043332374144619179736002920555786400249877151753521045880407467351267523004348135568878355900108925562833022540592038921179635888477111686691992355953004946792238295242460396606403210603590106431445175869713416762390757727507173236856690933395458389816146893028193051623277361834433780394103113381451947374165759967142916562348672924842468490671122154775503366094387092889683382966870657230877444279429205855842208636775380089279981471879691832835176981457125261737329366813252182145476386434646944145950706145825973950383352385751702262453813209929519719761472230085337955693270106349971459378023797577358752768342284614675808524410328347326664030252904590703467630163906120717290530713933850588111501999523670146260977282519171656056136848962033031874974850954922654617029580303462747598874306814882223906483532626192800475682802028470529424273211653819458260146765261392588307375553049687306828888238831675232751322289989280318887489757456557079292306204465001142318868228657188880819116287016936390484315036577382673123993308839205345963431853351796079252587669574215668743632899640513330009705443831688553067685652966222124085080764789788391096800630374236844113049328531827704922525709137876527550525631680539195394272157296773306004336978921997914643609457457842332112814711800881351390589818295395175417097990701155205845136854080065775002875697989624426260075759065245344890030953071580796714772051209330826740778788898125019471502093363215000387962456513003519784391957959191475953590866203769383277477252130887285791984205593656317275813763778014984367687322797904289829663341251386859486014820007129940641154792264954576302607755624395019697995040672393041596771156586119798055409389781440377828075815332891127718941202593685241774868690538257276701823343756796047939507437020559847875183235393415071404512926674696367112080841752904046607117494442030245905442242606339990235052517262405771219066650225997864479201433051032011420775423952312438585822209951006421040489378804518088452533505130063396281835392252775739397924139826874333325875679417238323829647617588626323313172184149939079180607445978371704074558622145250004648828446115341784920929172855819284669766897004344310149044030354355637172710725009534505589567278785938050577452354155210260418003342822751376612882016978618532509215288245922486128887251397305184697546117402189087108187121725551381597202131218203255669727391329569790725016334262085881328905065382239482755357311786649188292434748341558037519520439371543401524239407975219433440565952727110838790317332574131861568701503367045737867453141729112265149370326127508069544570661018846066982699345566655438834720343281602265571317870434787483652285896273030060901495055577902765162633234693882865736069306775217010171797272866718538671766564693074770972698687517921972392087993269947752222263675391818363317254714864418802200484083657489012622487756254331200359384890620125170463988739512875108602978939905824420781734032106821827729340561504208965990871333833755903025613669831989949867248639944709619317029293704178309062788578757971576865935640221584825863098581716547276017150529810758330828748282380757674125237813957654460180671354590590188107519079214268580467873938465196350890212988339871944927558828912669277696486362775050948770808009719434869746667698663039745687858920627735663425781333068258625641426200470202353220097433994996010126851497514172563131134139929921178021810088762646193487879421466576245554816013181295575724200423095547643544399085896501406955489449312558082349553446005287763767478211765840302542283033302841633427708981599758923732830375640085325402667974405619862190229652901156022881436738644151045787697311310973818339027313711557672444576202827341187305027717635202781223625364716973909194609422383244700179441670136133758735179744599113533446918302641609198885829599916035997200037283933518681580392683396718693453954860134056842847884802293348737701523117075802487318805479575380879666037206798811456870377482284577555889042294696732326024740630131555751231256241832191770941778530482812060231444279255632509159451867935785616825073692798207982837975666392506517056365937563280923202363924320779062998851276822867734986956963189943814007263030989077991084221310640246044451821270260768762717723135819912926842166917098677382071047337022571906620606495201578987921484568210389883533763698729837876797543741754507602926840207707377740691353169578058240491175316156557336444779986390737627027896158279771957185153647187797979168397853843594379811397885411323207808747545046994281325511244753971685586839934789289904126015930079879055812042738771965728381972188426207941959451506028372818045707188101009839430197522874930367552143272710539506095860371915899718697299653584456619915944455094067998200411356095779804685046061208690510336753618505028118212376399179389274623546611384677098010093318438201909419658920718959478540766150959966705584052930152193587602748124553391176883650464544920606206950554137549500142288901096781556367961529552216419883407553626285780672611823549464303038869841783411047601052555440206117780333622446699370693928831110242529282502562402093680390584686062917796211548233523314783726890560687087138281505001726326944831653489790804832758511637527692132941577116780487619812706745728874100516286230043735028534570103210522150299104668967927058390028052849993697753183540004886773807539726947512447656120242130256029519223440158250766399086858582902461922640257169683824638960291581425268832349235625083762990734298284633987163113359367263052466946786199590866989223763130772862425971919529676225789762573918862384471066250982809152203976769510653770051532011886786853631525801537617802500246586329410676799085518102454957263130814645094879945744892954698050183426179830506856770303607666012584649871707354846880321323494742039117916800719867924973521624893334158947864383355622812663283472584750052253804971297058857569929955249064542924107783564643363817458905498498892213814555467320615844001851484210412782086650962405010936160786771553760607921765506996255655941393270250218170323026431263340669030185579929983692931230168465165572530948046876874061708892510471057212234107518982557793732846455222798712216906640095280673796501820123394349639970539844984420670442518790485429654159620554957277955033343685875048251264111171059879061871502497374405073763631085507338541261237865072124847809134564969069355330931949584250171667577956179145112750224947015668804461001863335282155808770582814155535023494538861078177741640857219015776646673441324463161899248246092584619145419027762018937647009645769902561628098764252113326715609852298237212373339803079650013340322303560660163131508199273408651342116092481209438108822654680651534487322655161593131006713289847805710663824792842130868836247257928459823435589415572415314088415784913129345924761618210423407679698683550849515625199345940032795111051084682418499090641038077957296212934083457832399777661769958423603454244382354628453364949313004814879077748761207919427701603828460843461549613657517404938448412658423288485213875018036794899582557668283523734331527139990901942064160346454976763776466064594799353668832631403331028661073534523207728699706433806272188869486021312502565929236278957349816997013708865475722988234524450883199886768714125591869628404068700857528045068600627720643657086036329639994702455842590724559782372215700306287275362511885471252182219650182373295753016484758043768470861498638545363462273401341167792313740274010333578060270580284047108137479308695558367236725052339047451618611362527805062215562359075332422795914893008168656616661456799876820668108585816676168802473796835259684359886730170520894950441274153124601704314366377364875235569995673218488823659776839050336477522349058695735707450890714941279592155711892627410756952310021286520768384453642926312388807182367167372725478787906144628820795206184727048328378114216321255299866244718671289708253184134060600000522925490912739550753861526789282821631660685074235510221022433990184446467156217135039154688610687315760413058214847955014729189461837625721130062636020918512086997546800721823017116020156733535109741042146693691859543845041982913029178900680927212001600847628133674642661352342374881944784228484445436381970053211924403593716721259606709254043726463796169343229680515631129743556561363508160405818195673129870390628616909052400106753289431451801642810866839326746340237567533581507900863490415744532563386414999498961690215966353424957483614965555233128317042756553909620739283384824112326680945775224960501473788425690642146670844058556028044979798846308666839161915536645210765318453780104717728957778130760006708559198686717139567642841277173761992587921081779084276933156399861405756244428392782115125345851001014575366267118458667915605334570291995886240752903097819284934720877503073719757521988368918348795655700410436626778064843511917591366819946824900407469228760581079494063211082202249673324441134563356317593878376020793588398433631913255875189598067980439710197571227504792951822615703070387797605512232177893737400704370798864489490350478701956251917301054353193009032645259018875244893238944841869431125377168326519201506586292312882507252321436863811437924059462193292823206185479473377276749552994176736758903875514589841892594289489418236999406070385522467122989100245165193364476853693532098541070984457758374823989727633577550496694066055559179141129405639429259948817749249579524945898880177961735741826387456441335142123111932578192081218226313143402676835933974658093148691754374536086384421455973220328918890190749917156929810460188239366218121874298231964638080799734373349991825978499317525975169248551477178311152276789014232978624402764463746872750895564076845614325678388109829306696533750435855264070793415401908593619613630283536716198509935440469220885465139769677516450163492020454895064543787718046480726233090904157406542414661931684322781290227630963686056606260574331440506695748614923269447906673717060546074620762824678166969749827517087831318483682229774629853173613851019152446207625718177925107755788350919666893383348951693014763149585954591486011916273095609084795202753060070574685363155525835260349240803586228838155125418327238664401101482103252264452812120676337069001580906441058532602330724823238349565348808834158630815641129429766343728848413006099570460782873391319897876422099001129303362349776424201521372389570822028849939068573154189189762075946502848256350573759201291362664342573227743103735063230450661137976644187193727913050911373318004047792759306583897784641395041516308781695563835099534505651846199809337246447429847492598940604514961321636392299985892293255792983553563735433231027974462102509632632157224922517602902447669267231752633944318545904775353786328216901643321387412415205835146641968115236270125207243803750787090943715449754508412658954158225667911639267218861517477690291833415603486519884860802452952263554322913487642205533520925883708278119439742689817465990923280971808131670156673891502637519304451356420070099611196788556746856493823472847206510784478295598128071026177755505580077892553114961379192393806571245875721668386132693884387975742363852571219698720844709326972124216835185975277383734824131118890555029800787896878030387926310446684300639511715569067075574516956115025161467818926869412183650419254047484732611386662263783219364455168885043905743225987753873609577897813231510808743842169660503984864714834115845813804941977518360678525933684668854335192369130862761199975564579490390203151216378201022728547103666114377008492482540390157088258568158057708145997855245715630855902379333100705907944097767814932855115201912198183454035158942790637995912209036045318523452596112771752513460631279621402894392521567139344495128238968993129966594281809091149421355770714560074367315722782340788676178793558478800340538803849305230141371632050434327189711933321457090338185756110254618095207887177501267369290353222773697949565770918376455723600046561059917064466696026710329113227851865414733321024605675783058389069378683798079750001040285846526579865435154920797124932038023096054053148948565877620716435593989292653736212715179562333657445441094863429523894039109764083379257228810701423417260638626051663891409216488147969063818091873366796277753877184152527796654197338087535706697575478499735641717297991500699796277212614758933624063462967785694504746274943434728998944362042559541449075719500227038676742593649064990213283019569423858037684904055583649794140556945003666677332394112874057147701294689636987139040516989290350315139155884090121739263236293737518879361834016726853497029626138235322677497564477444402540723200823294181865159584379929378443621171072886147011861836020120911007416490039307320269496036094392809450994615771060824021260460087007109871773025688349186676622574435873410048462534967432713120897185919038692782545527715982365629425733291376442124415912632478504108375870105197621093614353140567766422735634402184788803031950958575598171007284562099077256514230948995763849912981942340414134618077099181903681013303290990993080077581616069007780931236951333819962036290137883028892649973001071968643992027221539946408188346731208602547821585159334456594106764984115622188669856530485393483617685930704562743477563718119829609658826448408603215890220522203168331580036666343365125011618276357953591988730706243593741872095603769501790492883852716024459132548893113773213406880576267362482618044752665361267838757853797477271645080252203532365065479033077980646924613534821043759208642930558118509384941592015196969960249993122810011439932506875057480439064603553707746229408890646816164856178385144100972705717448155896528642140334525897631571344086356096217762154378626009138400955428745050018644866814246860947315677129427685668126935318304187981137923188956565440028616215866924143892701289453268707663876002718167936726683715296215591676463111868354870607668499532596237722762538115586828410960876725598430808958936639823752616281762154343419101380279954865047872184867350329757521891127353625527597870925610355642152010211790777299064296079038833928996746660389821339114153069241497862396780132892707427333181333015127999008326232608541320541583937267528267270880706806601201676497682214799982413108870516192307602726166631344173773890341072608146371714247111365962935522412909409924500266613378344359518226702632121096206724078375534729678732213667502992191254706775852561645352532136840403528971153970419449667767710144473035937941529835244327227142261983068386225321848911815602442579899617283622937128960412764373362138477676903173996926282268779487499486014164541331480682440788902663884891392026751256661641742896553672717479707686977791811176117678853675677240465784250660614314564152881176344865271257230186740667437936346420109544474569828937515977760835084951001370166685468438760586122697961823816676539052913176846784484921867750172912451250504281337324461307836335146155238134102491496713216847989250808575975211551953692448796279621480413687691481434299316183515900904909087176557584260972091180867330665393106884054747776455148413178049859356448956083597726125785245224552962423195550287611536153352768438891321356241357884704141812966528127740567058830789092285430706785769743912845652594993619577578125235834942911636120390318995829760697026451784115420088147524262013206451817674651407996561459580278548734187403592244825508761120932396983082312400569643533335223159664628437680770499398599717290555309643003363122017155361530102223441037261474944257116887570621339637386907717325087851335725292843640573007441233520019833150296605932610902516808354444273920482592755060528851893540258596924960188482076348813805159991942476759045388267207157482721233627620600372278423009468039717034662343470643868571289715221378293220801366045291400862730063235184281708547054096855817645729595470889277370644260189502814343474572743616284213721546243441176375290852809858105150797774770555704696421509602849284442129418912193121999404245481107871495069832034617428705230787882355045563289082672618180977761542807041796228587171149488986622668863654341021915320911648300502431332892018178456506233235525724271483579642836520153079927952606916758442017536095295845036811396115785094718316742371976948889631536783005443594513178012347381882713035345569278529809981077362356030569526310862041033914694455047963685059216743206861256412000466939164391130459622752600623008419319322775435855856297515991486435741532932886357128082940360757774965571024307735251406339204781705427149239012171604646510692667176246701075976843878072692474470459512835192493081504604682776540319690975033856750542385843164701198261290850570183146258737144816553130760926083335898986302805977934849980555251297018379552568319724896307705051161868596147661048826559781705691032921569701358841305870831296544915308308566290726380333752086408389464407962289251423091338188748138416879916467163527884912015532008443583242275119706265747022368910222081535734547367868788008538535275250764715689132454971007881566087873840425853025928453777793828060135045040858301575427703543395542602981584109726172419980602339929639526819668228031348728750126605133942024068189499102866668593174534058390432100940391253980247914909616195717064931369320992699692113907536663601135883195496952216103788915793794577033550496774708296582130410343687372166535104571956885198962296822846627346475471157072987259207307694401641884109533834930267171518374629075727682315872282774290587320476725315911383355713273771587670636649304481367733082169374187713036780272912141836371049112318189824204191665410427146475020071784993570586633573702827270197523153150585153004944579114845850581524097706500077632812657297278735926534913182527643275036530344575766965733277293017575304458599519992481298379423413308178357281814548495062106555464557962969921457140049037411464268196073404017089729565425107798159161237807597051252406199592529309613744375651511466700884236036800150293263468662162846273875070232844463174983396392493733210807646705469416008307231735509635251392998975377508087806673503043170637993361308931938041245435630844377407720593199789886837438675922988176987451871643948322248215390180160229370690292193777791217533679448114328608378930514351292346639222523860214409711845521234631025496951429028744892044118061710219341884631762467885027379910209185047368357228911636205110455764908631574899998881379926310648158884811949487615924312872154986320349913375101818040875135033656494494211750592071995754466222814037355442354471077937014187555413098465274156545662368552178279464572723607348274722375448338110416474348764191697880271909135569772695610518416757647792867477409046672009024995198334150533187284750723240848252934832949205117140310692138156160724727195104969710237782135693730365901629454209755185350517847802925328030372405551426325340803118446432549564763169678908441638045217770501489141237143212945346694209013914437321339067142206311695133890130694865657312770993400039326998009390201258262815463156637783918630721088774133743245207410297214743928513572268681290067590245640796867146052830913524501270753455903159313653285267162286183468434430820216898386039843642913647813331340911359610750073732340230998741597977329498697122791393884971674107570082697555201686021185105361005006988908893634193673884410089634763936048653841599593485031187088284528278573831150230488795360501937944865027498224921247626954881565381462387462322739052918827847829791627849596588864155761323814752182946611447707557425955395312154281777754275726753200584275257526360393615955338325982834753447197842359643090046538701859331413119034408030778856642301511128678487811875385875746211988836825207073413860207231560458547404474384530003745801107455070557355466540445344616851672486611820736351572727429031399136327053316326343451658936900489191411580003262121287030468016327176263684202542682219103878393646019931756601282962978290719308025358154656804011412468181626640613708066175022594410801362036476718646717509796472392624321723876838112624074370239929730959857991399022115273598701420036562405215152710244044816321053506954935830513272378433011333716368157303760193214101071260844074398489318652107584743811969536076527006364644040588434227206665199322563565054020176696665800854873001909756975109844222303090106347370619880588780482928686265545089387044117531770136545505731905677716157351251486726206227889932123718305677740248346489289617220033070140248411310550285881985620594220479428229532603616324330398105338875711817149924110466652088422630868477529717159774131724358178462859049858209738865555937934389002488164108697590258838858403613659643007367066864021788888173162364906428263866469403188260844953167942094498068154323884868441721266252607603734268593009352037739104027648744230753008169713146439101575798037350320680473013907427672206389493220957589237477712501086038868053434003378952678601671175133370853789649653424460696455330434967953987358427698391859823502607671240675571966784591934820434002844411423014770071952615839949000160392922909437922990698639596593600063786720004833455350189470572589278237221155601732325009995090431548253147715922525153316121359342177258430075349821968659492462077976763130860259671003711727110163100081998330770224890487237854551560651139368490881916283962240219392755383736447624385356806381777164958865509628427365044742805036505157457520977518734240129531219219097417639418829457681612369940619621464876272063660233368933894255673727056517422339042575105758276032386253186244542974782168512008255826327960843177835771517586248752952204784184044141807188725046423818393263754485257021992256559570341297734908213995718683657203644453552601757040044963865643788847699592892075584394410675927265329488169968229277313307451038017687154212527131056622364653761293764240853378990736341963414990527366039072253748867809445533878616762418405023510176401713990056586117703590963831009782917299685525533559182543999082307904744623474317666707310257106731980133585606570658496611959988681413597044109771500986219838317199802058535673130363735091180960104599863614363906823701205036812613619831989398912421471326505787562667988882970725656939428415564932607060761167338426814278211451346201739404357447527126973993664300766762492626363857592360745780307866494301731777846636429519707520683822530128137592561684455369194726236584334966884599270152753276130540751355109030226588694021885738165657377297169106576635586625830885663098205242968530921654927892365414682397672400992894219328113217185381379188117329565666121790824202608603168747030352085042550459665798349892947402240353533412646709546353070443924383549786661770818453011831792108509708321506400637485648375069701006774810325962793783478601457753382975060818874408672599734244338522270159988026748911341646042561825361114236106161398468118160722479550316601461807949303657344674020309293372778192656151905510782499188453223057505531954019421755863666873437173720838990500040016596875129247478695413053329632600416492256348876497662415032238661864552759464939409217595312766058849606517795301241767417948480877536652525436592199345296475156516753342125306235868267263474416356299444726065015317984162577388173912907875437403527584080037429057777792017226412409296935903798101495657078619921163202661746379294482896158564413909028596348380205345674062573552519577773626374943643497928067453982129314183090105011481709477986112627114532044358897604511391070293477340806444491566065192818046803447141937425276481417244570461206167012281346745258092622182200966249487458564113383972461281185349724698171772631038218413089404794544328936083451482171531924277012894003154319221419401067937878461715304037884391344551225578262017736469539672129008149398270954503247996406879820425809733966991950579358058032641980432723479222167312313404900008344374138642236170229968552784222578703244520598074941597658092377880755962997892114924731627081971218496710098929599197514016224726226081938756900360302796943176196196804348474329502066811680346449196080002293421439414067899767177481248159728374902777629210066511273328324609008265375225562360836609526577450264301690105625158476532177971361282758947967525138260281563636418818454259697784355323599281508498435387472319466934476324766468400175113445969671057556816529142191733084616353583181370180685055547517141985660169212444352019604879827178740422415133256611621983554575622663272082832067766536305887396402074145656665991064887619523436272863697004590114305757459518840595907315442921763390392825771600480164373876022230288718529906229142827149320728816902343966419988134321944837953872870455796117065799285635104403921171833055047972095470298328970136445990658591697789966391928583399547536621775484252080682283827872784876971939313783136081421630592437429772843393803001172367653328897489178554731703464685538293718612088051892756339635491316404394985171799971295105242195120449362487859275913959300092228464169145228776229946286666371062294614929168500128047277229566630132382106090163424186616734203575093509572360505884262392422073329673411997572512471989728118503010277907686147802096452875802926150667162827925035097131822522280883061574714082153263785921550273439522126297715103535178808318959863301705706013222220346885195382143740270035200589557531268721782678022893421722112423576308269020971440829397395444909978012152411074286259024976737009601871201712827893813371169262220702250798390040631799400101470549110459564755686415926598386249500851191602595881056639683407514037418685360587816190958226745354549448874776427436994141705489952808041130268607630284079449200644142608649768029379112662396774513133629011467730691104748809775782775350920664709742880398973284169566383043711783911047240622660864657995269849184421992222570783192620853196574041214866784857951426770676764527097481242254557540864833919619879474083972857460390484716118500913560204553952502300373670060124356092275419301828157656485932360265453737178551237299524774054014873373205141366890160192926518285454146065310859779856209792282349175537328869165994925912821568307916702110795990923188364103832676572493427616746187050909626998252528079412597412431006072880261839716083306390338173592000681367546382886972303797502940696748435927338337594242620108102475747772596543176874915342804710327106420471569298445823582021622937209411004986618029264371554508671717483854333446166878818758820900955266430737807203506547120763480339443660132215823795003547235922798582768058886416579130879219361738869454432019140306808429408304546478498648481460586549615458708665816694112861747451369839622205628963107352456025505220296943411802742920944227669079376915748175260964749118907077958053606316316322763264201321819344961525876303517862809125487333575917425204119217146534270671639700571812320338268401886939160175478297066766820542009926939371599174135664945831041992344016818224019959390855062443184072833216017840596360928293756553971421521194296882801012738599684490921318230037839990228376074574834323468212639539650392045909774256269238507405542654742645406454644047399042921637454508049855164267289222237778102494365808897120120082749303414608562408666193834041320136144236845487777327863097584475383404159835965168423624395730616989686048258138852804360323709607612932004453808416904460064624150374387103033203064716080801633233198327631213116262673208727724009288709657438529420741669749196667575714287944622459662870082564400451838506693127912161283419139186463347358149909771456138313710297966747529860755021122569538155715052878469918499070524926351997091631287243611941794191835046532239853052144846997730554273761842185056632984808281203727110756865104155141766582338939826017070098584571753285754630662595440906859217144051352409621707765826831394881447993013913067796546990658299906507008727091466078567137320117631098397384525528515491969498977339876450307700055879918501918875039666773384740542049692661906749596080540457470440600501937083216640102904817398534733607558631992990955333890395952194931432051747883748127294730601220809874107949706565207217260424869765710812905434168163494883507396401784735489515076822066759198897952305261163072764096843445057758375655889008732166544972102941908024117602189715838661480461768568421224451958754481148630941604619904069028051601334719791558083776942834287839790194848449830211199696431221478754801503660982532916943852238708829198711678503238154926741235082599467094908859098380197314779924035329709910292327531079665019841455602807253078242780265911512707576439163803207755306934763247157082525801620770052675198078769661550611600786802854177959262819384379429431048352078844521698263357623540097450931533677214318622450207800867534221348593427168574155008166188288661542908738512232858633029575999680775713769713098555624795385127605316238182615620694730612652892277643352423238681943920100091990332675361171294715172226318998329805946781724895442514806189160221061484600959142745234204425671442789044153053891458957295344586081214491238167086640470740767303062685211139458087134301631619797653331723292414045009865580707128182012042507962798219038124542555396401722613752902835464217826154928184187257598916569555429831108564293183429767286526637127994972638630055069027716152969141296068207252062447010581851469845965902436429085196532543610318826891573932536603939625209127333749222195834243072837815802941759875359003419615755740191254651616510964111633839597662567805675984358985776959969503944898399952025747342638500129528371033134254762078157727437061377537665583465833087528151348802193081776927317267041037507182757088771214561379285611639745003738112490508721307791792277950759139965373405502996879673069149453456312017501939467594609169634116382937360481119492924258073560778188826203761532056897492419626633278441248504320910673676859899631548790781377654147868423419988641657023673771905949673628868235471641628165559851999490180637904082445144994147215456218427149271783955442733277069044727759728315251146191424180581255198692901843507716521795619070092853625169249351512131684189844503565284967185489127648868704016915659210421004895532465919916925612875802356516974913452515901561941997311319817226880228950466262249524359719737755283548462409192567691552422950536982087854078517799343171673024127411102563581601225592302665677229402644155024793781640898289500718053207020349303929924481002093514459404302303266586600021005442337789607443101554951688906629488497727427251435683206313901673449414484014447893467256695071048343503914347186164481108640308766749615367721423153808970261346568427328663290521145377294858602348629203592749489541119629667506665347874298695943946514774872753253508396010277685199086846653652353097407329107782075845312537378375674696605861714658657678331663382773058290839262529493215920355167494040287424044805396160987551586911608128570977798219397496106700584690723213179315298586120392126841043227152823736990082785994287446748371185825814447220632103433205977317695740228354550932526425054254146034242527944179003203793555691834827407469465159605087083232317362521104655180087581535866703176248590537737769673751235980732391959166080834239674796116932701720707135821848838369036599059339491876031977650143848645838429177654499961030789092518853405507693609287411999896399095626863656758434022150160622430708847203026673723627343665109612264854786942743467192442360911355951829508075224439792856205307160164004437168898634465745146213157964821764588842861528170360583643448688751109590282200916591285042073566838723223211817052059668429274097689104538044634109571067444880378569974973981808792330202761106896027938496093424476178717927047830590416166155579883063208357827530328252788247652976945856169240108492927733334329301166627280447342294145516261414634923199119359169188659340645327115073456882315499747033664858388892133907069180903005108698940905788206139971754478699327112235978507940998153096032071023437169051501666176656311091645221375202293145902666941030294868872296130575211853915752873836889875166515432291808377994640090186072905559973637331496218376501159022909664505711248749358010353660091110995903897188983328700301272896397821803537096571219860999490281092706152020504752540833662237220243542136309964892551475218035693326994083382850856595239326318704266136581974105504549333964622822811288075958209481516659301672855253210889580157761557175756359099362349616935143690783541332210278137509103171684292235221219808931111190417176053280766179341610758956957584209979261576961081430083156579781085536715136940408863122323683891801913997244147241938206291778053586394886710623803546705439824014793015218843626479018013838854786691192004957060058110036109559973589247343018740112003799237469882225689284934264580891125972647745504089551173996594251360774348348326902477830723659233411591755335970891506135669282536924969424001425603427335268003181748166500093925838086602073434612169317676959028644506813424633514586611867701255760094056348043847384356599102625290187642185776799888243993262672591421903544342847660024043746265331372431255656787226450211097829428666983970462917305011410203680606179616311140721438974516394168498582391394133467293399645548863855226684223317155239826272113892402634291623370430056772661578322945616413563949525096177171717553526846888054704730729494516442812099323383171331858077235428495199474716183893337500601062590904590571793944124681268433542537843642360891581524256591548236657633758270774249772904615257011570939873819768330584301879259171677440587700664042317591909728448710139123821423274357818994826288456908728687214249888274962479632832794098731268524974601869170009713488194234925538048609955081062954783342988579215231962244590887896234405188900643395768978229547866159266891773567990542959897081866938495153331215866169454361038283370009809822738229136643320602685772537282535130787152831348228611672988259820668017935030231622565163054714473464034123643735833086574278906918901789925469408680427557387312580555272061781829844349566963804497580207820343296987097598258018748706897780889518848281039535154714110772592448656501426409458676423644971729134158334441887894547652284584916467853722184629805987562047722279019039434409496381632386834899903359404854329295731389329698016511699775174242663233572241374350547220853214182609413650007230949388931744646886861848686017292651311936675071402779298947831811093540834054852946398421065851909698578461614532707435444159620902866513290480043032001997876903680115253803515517573701015184097577113314298928535034130560100330693896583304265466226817385184078246643887661117576152627679049804654685621155989698222082802126294017463504368669541051792072324691056643406397059113494867047411523104534188885381098029579703993137261866788865495531106911558539697549618410255469890841954622507601889558615105766272545187935422175585134012021177905827556624039870852478778431002300292091264687831198928196982849643591542515031912844803819055302591131577361033573795589925506824072492013627144471314873598130997646271194589817191846751981647382968634199215735351423488450222812958418156715735715240148606599876991109810379982959955663788011705998508456570537194154689173751453971206255151094217715172239447408499687863000443186742770307926901114107149592047809568077391226095929996875004962452505011299501769285712281854394155359317508333983479088528621647830369647686019056671756751533833231854013029487233424091184978125923013740431701266629491008515053907814420510419210980566879702253785096811877220110840726231914706550993382814141269871296995968731862453354682840209257288270133279450191055174363988153787284904119816235703472495595463658409021198521861729118836836927382820843088772333180902426720843206580550066959734755037670797284444022013566162345527195562064349956201653970248776900048297011962302825230880193798856074470417005649803134438197473181818639622624924947997687256458711840411313844342371611472352551050534205215775547566621517436138784937862542535518507089029037490269069668378140924285971364594336077219608147598412573552912460913723035838519409307198055596946531393582841628850659913519109596422598125667572172328851806245521719718321650027948932185359747324862928140977271962186566559245415935909175043929677682646295753540923460614922152278338837678555250595208726478979126149852167540752993395630093060397931361194645083046252645091811898854697642456701551009167494335970627099695654792814989359820294741720851685442116693048352203736451030134589728987979168426452509513740537222997191653761579472088050705628447013264442973341999845435065751733953130388344475497087009236523898858027460436184380840458825816032519035313903527101235534846455026360408046089383478002734441286271355845340647974485996555155647753203153239189389631266756396792648961433012985083440774140031667693609092769160084511278258304845637524124779529853220851263000574778717004110978917380494034481447513520317771952865167610670340829998543613922717597464762376711414634105404846827729698539210457177334168768616443925801365928418902030813769975083348014576401084011931103957849183879960476391632851283351388652452218649928824182830762641796237752281092960379328087088906889214574398817834983651135659076785373577955858321231934813799701019800986532385012610455218999320872037012438688439244823782446584727319949945511554521271108732750496560780963762627076273054560046538737086440524351770216972840848637445182227261640427980381297756990767065991204688085966646492962868476115154676716851385628252008347866242279624429693920196081183466169471836363298494214348365687011600036283356633731723188110464768876080503093756212157887028137954199882297702646971475864555052724653585780327314344637400175619250580047815809896006095207034904670953228307227146572073373281470874539043786775397490734910735221409613438181864404728342349439085285061458366151869548915420253247072856953844050855274573108572400476863021706918466301836211656659216547161608916277542525665552681789580555572183721802335561451697995580456148094043879808721713856232018916390098446336807567999086602325379472320286416599670008436622897507836225909765023335201617846529633460823729818209071867557605942302195650251507632954707011114525593113599024765951480397845241607148483450761025467643342594259752044877675707737618332660982449669541057116341256926632059959804150769135982894419229963541800501682329719730576236782353333711925108177793330572304829975275467417596491833279951856317335714111067922934246545450964092076970752989203220024645657390340044397251227613073322302260095400054353820086232402121933703002645977910400929655842709687522069543288389802406435851583824605369091946538078262615805951117834844867945360127155160266714692057959411030303973939501463086264473798650541850276814989589941869655020319285028766906153349063596216442466839044279469731638644931328818428486737395166490982073535974184943834879226185463697268575552078440483146583494673878840641441082993461616574813621484433644440671209771957334847689680770730422617234901311731549885916617004721998828972055060941093734640995302351683544811633894578165539128711758526421923321389846578071379580547125279076156099337245615829390776148978795869398308459052650887417440615003546891920512998749736707630714446698680987366917106534716824693408010563107097777595621181217572078547509136382520165875743690666957480816870619749269649183733712272517121328580519706092100539914504170272914407596403305223774458892877132240142353184101949055352894270372489438205075311462263980430569735562798023157184526846952817340615153807803168141002880580523397586297970445015336197567460317945121883351824051077386876398794152171291374441679584114691708370856229196285791362015086415100412060788893918846326728738069020543895120956586701472718112028157636878564881488914868181585588152504835013871169385425111599546301325147124544376098806184692091154157890312746630843861655107503839691308636464332728959201607344659772294742175225116071845191538272109183293121170899579721419305424942698990144491829965738486599470133755436206963433662606469150496016658003775712206278599099053669200583321105196481872132112869525294674784024319256765931346143822534799758451442711259564735305362133354899113721557111288478688749012443855887417075271213091266470844629627110297746014298401049600284714818245765136703206995898181457277924518634242073558274615762989023327793058539225487811838879412592419425245536735264843073646385806582770379632537993013889997972505307983453506254848567396566023371646821695558842175358475532226979337845790287879593256109137397785892830624761381359275504820191372834310625284040309025612113888327995532127201369506882789613827481705569296784209302909244800125948182064849781515913591783157280408305279986270352890114712868617475971901160751551710859826626850276364306274682095361411305561279543278344259686028147924398467520785848438620870039160760341013286156034220339325448477167369007055146430840673587490987844757017932109318604043109248928760218802667636795169031003528314738513466910919218578371366270246358017506462257530500532649896649291506308948915541881459133232840364584463144106308927536567495553468730837915944874700366793312332850644566857329564031193348801070189189111519246542208454585177495616541355526526961745603609959339092116392847558820322750840765373891977545542287652663535816368739589480253275907646028194543174918427967651326933665991939840448653419449350280000599320797157695398781214684381212249065050433857508161149836574714408513100753931654073130734768149895601303913880708883180182903881997182229799593543307134571231421833228460088492019830678091387251470497557497670509584562064608184734826862248113604428759859793609339777936603723328606736301832990276000322852230117523402792416700497496504808351511265222732107780266872456623154392280544738258378498783556791450765706845265951100867763141851532435997601786243071374218809962293733774781443975446790547184353597204360972393502564240635886014853653155217115275180001971005407565342938517988630436801823319332824619513892625404748918063648605778800717893927221686137221952747416748191566029857374767463521879298482117654132072383602783013722348773849674587583429094831114427740995409115571605553781619482533001818485924783438276719596059953272617918377725782974236465623960268332670222643186254949652621387722111905557940460779491264580171251461795185250737376902890366075672568832782477979620928008239113564061417035324140102711971933280822811916754884426039248029924944551087308772989635813595365838839262759728074499853204211360526783602964320184365492353567384200164420082509968975982954251703083311007851731752675011766151095421180481846699299486309699396821788943978007452304315893408403398249853100727959445845546419622655033639573234234892465709699672843524856871162088966108292862290620937198379430340849063409993551187026256679446859962991740341155782456557538869723987783410656545608246413705790897595145157778959221139630084674516409407821571568296149914343162520225867190466333549628764085913761069847700706352440889464196385663536456815458677798371844483226838544225441473829744731228511546945152467578302703640992730040246597007238489959810687140704080500665169990101218195458766225560163647996261193817871038984047119329266268043531318619427578275984245222192967901001154160802021086274377718093240768798621245369166839299729640979468235995157847128405791718030617090426229614609070109031619988590867086828536748262055551033302328363519641997010343472549127080007705938533146237508830631852126726315626034259334882573341790484825674522460655158259425606796357159116307870591583258961892303057741194325188981166981378217432799362214833400821238176983657953155982988163291552469577537602313087207645689448139724572653105599750147652112635967593361660944740297414349198266866264867954546092795431195486150316757098810827735635176791435386164349417615635694298992500161108899964491984615143873186456094466714441178372331314801554792843624799655802890541936751425958993361083600166291093827421736333065712331404056282877346856338630575788190386810185312521062981076602875084247714021266559200863998904117847393689796822286771760033973933956212398593722793428013539858860861877959600083718994769845849704827507353603477596016287921720031990488288356055332061241090692273119199069504504341214972865502504620999749949452085197462151827522796946663321824860999925368152372376407387583238082573971069174421684129237027381478746309629278303916831547199928872981426696058810703416604818512862850700131758374922407930385573717413377624357621183450057154211333156056177411204289330186708870431714037464653336160323397096481916902046849686914743359436259353410907153305865686468410202495339278441311071666674327454782450437157173662552385059924068024847228297749075064004845701709680139071138393014095923909031239880097371242668488691554165612666679319429580866164646501809562912949229324886249428385846962880469152580179058478225228005927092146497041009417948393284432983210693998230683477362467037788139882365446045591760529976765251869690029903717223563040136925107944524910767853198916831653047889492245342962205309305923927458222660326736465933276022858823907732343258110137642013089481579340802236578830944258034644145491128827175186448060917480320895490881770492574817950471832103800813539960708199403345033052560240342987231181364740726239867101833502416412902013736549559744961641848603207371271662831828263469007252799494495583553489642635864525037704378677349119007762239112213802705636596524066608013289295923439974519563660698298773652688119811742899901733682826664966363273745261680691817005173199543771509298885066108732575338334726128731833948362796592869760342806812659258506838466666982752800451522660883092049692660466641306013007953129015363735582905440376117016978488007685315739383223246366750860944591445528570521845516709988278373316162901099522691042984271351883730121568197506493325494351015930664903262384239146463532540094218794701553801606275711342304004982165135013692503965563751130804262326148209866408283227461341243991315688345621835158185288985287163170910303546795826586332364571758843609072367685340913256905365584721931329332895422123552732121566559173630289883913135531931576041905607755904100467103867527822698867228436775046674530976629127751793126013543433515431912312160427330733143900577197619681903591458898114970521989774507249149167471599061935858770376148816692504547182636091165351649853062224158524654573887643611650166204036111223959451040093719043224231103385833377134575323082722191807288905041534307617202806096558389194910145895748316199949815118580780236784226810310133429944196349724835105832931788850799627657236441103322715790838138163263005932055177940598219878516726197842219483431340968978970300469130095430746729055860309152669992313032208065662748578980922169022772203031689157461717856241082119662024543432633612265133894687494499239082823230160168083139405026940589019517726831535383501251170991704909135687430349738948236810240582804830553111335960702478104545484602522856319734883353310816209234369311309528711912812166342124707216005917914694792124852917598097082431562443637023969108170257460259200439465039176802326850641622953984524649251078472896736224220730145422419064934661138433600338167148071510153534214468585471219277108325668021891135334331593866494777423500200535554871387784029821717825450695289174444170466016685325711379025375874621480330945110593450730418631277025263173763149805441480194886674569848522338866059358647625569226564821715677398442169505753704335632928723524939333060849016898275589707716918040180168501723043847196926664947371738205613856899766659739789605484481489890050845291636711144983525135763414815940966255332786475940834020830231049680363653318144634859562836249158799222233669228472880553380509288577828267135261292108630720528043083735244300054465761907405617448553548239310048076918209519591856548930236764882414686413786999081114729687712533701376670875552232379987530975298958686297763543503290183276236018553973957058309529291171292679122168928187992520351541882278127641444252539103066416034387642737375286652335804938148299014559693848720808733139129855699991683923113138688566033263781771799318999787593805961118348288630548348116236641435010445875965611356996851359057560853063783398306615594607821447997701392842941278475516600722691094824873287101197209601804235931975268586214413747302259765568282487199326771276555312111619277077807388664862467210040045156509336319448554351036729875926167820623514230605854076539950618678029875486524377098080217978356863690925839645275999006424008105786544644228601490638757639842169349146737380271689266606181740826633444910124148304448561565269912444197215993906963312538359517316034076060073368357305248624475452058011819122803715486306319870802146512182209873725685084160856742640722132145863394190801616289430301739250677044254421014698297659484288379640744943216886214703011322750575087956981570207789566504970751873221687562394921244587452515455081580280212310772843483662656138374992894563328267735045610494297115847020433838579616137187395085619802340806110571213814288518572437636143827657075963485793411580870657852067438116691619945434054629503562584243607037389156671486601694893384125964881407364719504319495942183651778713322355625410375335326186342749214395860796623145986202478936933059906533054857056068486937081405875098120482297054318532272004101933663864385467550174800454172022100251133761644865215363697913575903743549734574886539599147589038132438447555452335852084547757139711558330847158191751239992969521256615400173960032029472399410706153388831661812347672687008581423888485383099069632249165278389623654587637096219202806930543791374575968283869422182674048779943599214681361073506306853711090050632075021785497473216723930324445489483753539506118289369969396980970965750427696236548414955047257439416710569960158766186862741506391945192864242133422366168714836091400578735012124942205401588924413717352036570930256295018396416581621949803276212261219866071829921171569840638870688469074972330802767697055877351771921049786316825796215509925335032796931479559141092825265016379083389266949998506173560829037643546998851951062393677517976720265919710971567380629628073648349435879316122300653634939504032662388988744472501808877287442293169078774943453593005943386249385167351426564463676203612195647353506656529942066890512898574956067542731764077901576674997832939627303122882974687682977642578423993759266636946011121668259152974697116480298854519981878909951735940003429437789341142641639943910308760134523142598457608136949326319785915946827395426549735863338920674444167591849738805371636256591095325944442841424958122010825763827883001874539551077531357142051260253539450984109032505255453299033101941437082316833383917253341670610595842163527708175669572743015811497034031056459085066328581520022883695493321573033810647317240360637403605230380324850715660634649806271738525050118696774185861489947323232655694213961802866236184880107830201673616271412829052406000352320654553828913267288748940815963526431059062202609024067635986254237579541830836852777666782064480415006998785280180604303236876503100805592562216463899315936766667954547489198312688010592802357272207504537290411112511567257565099221857298433725602098732535406517078889615905312142476001313327356820937831153205555091291309478583289033400598705958532400719145164135189323021871991551685922390150559370193769578250433699040974570560778988915388221360825500511928222995064453802341843171585499003365765196517424911576274094164608805148861557379853029059028159877264668996897225402938862915751711516453384407162801665302879760092700026684583027705380276924364832266658520857334975667414861561734821572220994285159489928024503114039065655725789662428825121939385818833152333363800049040537729847918597556347436045183811937338459290639570139353242410146339004083449258368577337970094273278494001861371998814903816558748364373280453723062241436731649772810960338597779888303495470964367052348532088278790947813230763268520350193313336543528315728925889496898705653160316205464227736608516457222990253129330655639111107011030151491815176857415232728531295442054988197271686996524406477249112420262712457728435478500373193531285211915270679006386572346839108415799635020319104469522568765149758425609038207021873382589177199734032786311477852881388602768166439552416609225294985011708171810579499993316168530912625008667093489685573182762908882205539655358392288627885415337395735760991444449303736615587981374262411671573974036951386935331265336386281241979254127843862569179788049647712042803110298346247357664073269772555670895687457827046716425881263341380054398685118558352974742466194362561964558340306318002933600401789921805467894682089878291559217604436737937178812740239496542895309821178958779931941998878832143308524031263458666641732025764377633529848840975990933832908231425477759899902793102385218863335639759321622798422770249479741521492848486432849518775233713634103580120695662982207580178243368908664571941259890908954848343630757865379351547851464247532204587785523935244984692439784263904062326748062428446900312101588679335658040053495267343424566971081718729115156866508149059909597042497225111188933538840284294307227446649040870763253165765896731189240860737399645870996887120414217282165309620931902154570095913387438026809552423635379222083449769692590193492967548625098822471458742724407970631087615226440853793443483338509895469533539969103028153030277445021587403221812046591071391864380443546509584029561891513679251063511312888087723234585869425662809712337288782667216935590880142141159446049332353747725236265760454473766094567859520202282336058032872636479491590866525573980498015701979173231808363699036120880812189864346569450070173799017819269933756665908903732597865939964499698137747709966013391459878811702074138461357049100347988033364213917904976368216403465304831143707149669228356463909458612126723837662501710804039661189991429494881324557019082298220015757971869665218269192002944663647033211359349246164308809133539835969354485720166989394496888207822329595693493110879707922631334238707611135660847278765188425059521744321376646974074310640133095634020544096235560663758562664457897764367687670592608261611220607082961538606228169664100021619805188443676330746422196104134350114055546209812675092000358477345655491903101053570096938124657231941586422902119326293489355318421765423138299647657521392982289544885693966052691070534456433416236365532261306343886416072209912303266778500365084357465737450190490712066460201041789219360922085351739970108193300456475762896994236413974417203076367737086950535949407616959096775169037806629494178317898381089651135185080712724492689778466911211080167859064317667448962088758941595793408914122728127859096677041806679639554638171240960531281007319992778397010447639808504299224795743635687901617766606255597509494832105557735651971045733199898430496063547559013726124617152717543675638690196406570828985357629527166127772598103807930761804565509248865422081166071167195423610466306175369374233043991474885686874230276755267590420775834018115310470041524526142321785455289910930044426408454324727646019923280228207255017492409328787703315524684282967055517760442971568607982594394839257892476617509500892023826136618074807983068552857561366638493864346280856563422514047784358617056394413068821986229220124755614626691043440274918321227951221072011452251983315975148229660705672554964627503329908527436883577182203703975571474763308813534071030075212878693984910831210291086630497361807638935220436361164799988876267046236302079937269273585066147180904612994137964113109678365332226661917106326854278423705842831179131799367115506285274084681762633839448230875784385557578146697154189308149422180474801099036175471305562294733251246130961889581636775042837743422323487475500948352963646633329236859509045343175489912131496249986891679886442497715559139065786603345410872936320405203318979439161240177312712391666815160596266964194083871279829851768773852324312969165745125498005915120862522289205534172488839215387918891093986828283959131304469059906194532194945013368575704526900276270800574050328183245074401290432764079104704678035338066529908733875130506932950091458189078897127857320552529114833708328591500550503856628893770434457579842670143384072711404406573872880483770594093057588526814529000122427082948332494575476772036975524111088149018919572205029567328704083044769400351877632012234832508858953544268304792420106382738191396784845739447093114663671083734390318261139849598410784726918861557448527145155958915720669588865086423672000575936721741225721336350387296999597382405505353058098106173294127225782840268089340499320550082544192917767930063838918043903181397378246841148749719186751499525418705129904761325452952482896929530115761663050404412076904984905449062820591181553000882401112857026406281317060253847864957355284735687493555827334905488900716499659039441277187045076738305660903529752655442553197503937028527904037165953285580447127798382781074477356001373258796930776845145733064491668272729427349311418951468073597004948879382251323007126915106691578756643177248546657302529886048375257979077681338387338190673040663701158858592392942405412022136817992357122469763966590656201564569473773718798231405153182619675990580588938983145459815594838492681855435516285201704914040017852043485391411173662073424837467013312607130595042812141692087041180482355710835961584252386400033981510844471102373718303308294742435054121725631563405943840973091388653446878872182606679287693424738818976781186427750052978452889690106033379894776943416883534547300432083096244417311540500055732561245385710019304537386886493521823810621755836173264865244439769117389366485201586549910650183709893892929466880854353264169979613872260949892636014007492498652936024760119222609784147027953980334253958254650764684209093952791591807093556210199923448214508499033679448552730593659903989552565855015355368310416848887268177049393175339054638186705140628826777039408138459383620658614908253284910377940353949382617250542294944119926259945139159495171504963472552731156747748045178783006981822351974349550940521697156683616423711662690383168393496077118079806036023457746215098499316818711170680235017086215085493066067814575821672202819795195793895009874936373235812376331454255235480594276336012091678687356681953687944651024564901173460762653574706085164044903236307858288573316422790117237615440100476678757096654787104329976834276040763307885140141730823522546750220474159018634376513050106845149806161342066433698410934704025279528909263814302260038716587741804658048756785608478085362993790630182553259748982167306244090100639731637435023823603301596750071462145161081260704802231739023954919476334345146367988594916111707737116255708531599944408936388312740184668641440142216382921528691788186010083400128557928245336776097755717902899294923807675668044822089957499795095521156496365129884391506050974132382535854524092543669576404645413601002149731396648533716333230763617960290106636987852048624860767319413866307152919514762537959346999026517735847127177894695539786825773341774740750624953234855846065094531274521183539773447166364482295878283639147295456989773546530585597776425059323451141239230662358363982342257603413134431815296550364063702997122490055514651457885696548516422655782344067901027147927405078424234674836867595287268338927443417443231875574704647884093096839819022350583612118472038433052290430292235912365725012884940332601385444427474681379297365257941443337079461650546309984851435314036054640846402416552280589231017603897789395472694167812452307809224630006781391101813952180144834570340165171352600282100471346311393492839585464931766824117833589479272729106561252242149701442113575636212124306461374799637709387506852563490983476994021413799731183110531370134588371019799192365768544109640956054201239824638967568084090896241913462465485239538524166519119739728069054666470406817473017425912371025569452485791846717704154764605515400836892454089123032648245969447756284342018995060672615649214726365769631537274813066403664419750085143890456557980753289294309696208679110642345825083867609063925829221898110647352765896424779685083436250385759107408965791743022613608455750529380265727750909882315319771754147255277199075515381591803652447087047249973988714042337044633878674724503373896286300190832373807197567939056987565342797012615223302661158492175033408864746929098799502170172331619455977679739307332024487812130398370222498173829949726749083983598353077489760658946767903197668169274263726079778485179873895289136532582258786768472900083432413042115406549335510056815763769613688696238862389098923551153403280693265072360435363233910258735873338540632612658715803780968772349112182872182868513209759928564708038893056654866898357881341200521297790095279730931888888155294863426066629023267449714742482085845619821576887127984981274023071349592598263540408627512164459327642939224160787962424447323718926988844595889239775078216667150290886417370752935541938997091017667538459700853676592951334768950996184274967571152779980689550819343195806710923894813422184043194975025149784598654218724614170435815368278477786695730912858674882362692488968167713551604990735156604366792131738482413764709468098013549031231056525435575483428112572067029554079972084346035369726741229624323939477351760887529530793007959977996211281614283242873777336215731666207879920780616015545238990580279398815688832772569287001221297879526746087081338547766731533242900164000746703438051443594354428599241147760965624650439217548203575369716173332555298332581945985245985097970696542919608475536678623761489661940318099219415938264532009398091372157518025627968989996304150539882777799548597538392920196259226707844858803904094661794371878056380911919256383546947116682886293211972058369992510368257524838389030214947086958107031309330473095878421494373117689734393693404814929601079314878718678105033130399012673003095572214150140811092075582879132478843990184360809737800293678757155135321789425631655217105925339528155524139147493571857486383823855671567776912318410373642105004911657632865359158104386950347060312743382322455924899178531147726819643922691898817757354562086032130798092652337860355345816561247073985473725264425435675655071881688582488987205561780087918150891154064910852986598768806183161379313377315548853323736825599886320241219302617725426114268200327779262401174189361989993272925781073984842791451502304082592873079423373920054347259430317454965543564731751252015732030627409374978862805832135703458752493667883096313296199335227446203187659818276420333399086708092597338561635829886389507056914825078244194385844588010378427660281344017234394095900674390741922699409666103410338199522904307096073140077155196245008114338200231444444074814360668864653952244022456002484980098428334404234711019365802397076288176083668249440902601321800942517616170520575913989724446598182055786318737720937806502850791499977092501566182695536132037465041417968130339966351407710500635669135127895934058109990409918590339340092827746006518980738064241143764844849173437345747512967338572941460517954892817751344668115034252136656345129478180126060373516379336485805151895652751479467943250283867865031891626131644156993547022950051518577947675728848270651682002172526779210383791652132321544040580279234809863542534585946658079152290155084036856678683534223066134926148230631052134371585818647009602216823630845308001178336661195541319496161525831990478526891236771427185343130817721645629036734234273735289893596306498351877507067527940700869289382816585189182030853183515926371551789454835003853776305180422985058877037115731445693751652548444644941778640071054798313670387125628195562946607083846644924398998626418028085455430709477693953170867547370915782979119516881816362867261021164908870221833628674910496244449093478956016584109319697820278700830701329004736844529652371541856994640489449627358308906142126238722398632283209404963959571705980305761332911355787117250540960798680664667595396480705818627420376980123462088370901101635144587099619935963546244117796317062967277530392793628838815369816694678337937981854630610069502846518871388165247367673521871436869293250643385684521589493655398080676612741293953496644919786876047438879825979211241361525041562130504042027787255672860057390700217112618372619944252762585781630735441085275033756515843120883397230782731166609108507482375543426275749099889860111424981649705418039079023705314753187404546560170348012336878649444523917475244671281818327591587397308163579640164219896001815675873634240136954210534770585171096953370405195685607270290917331355077376356925893319197690254540386246802027519272255338645026155667445261871123323721158568477796078803634696534345071193239380952186334113436140826445711456869326487012391416340463005992407531923097001222029101416672618824812230749351547252884069304708344835397889437783895671987225295113291664241884919914472730998724121174402962764875475087485028525143650419340620106894723798750307926051695522229566827263546647245796512390410741403673792415309506066186333765232343391555619639164653563946798840294292858908134168813630174465746245993028536080513710396189052724000317274415801188304231140074597679554382716448657800818952823593993567066361573271648737617292549810475213528086265950274853005242923074401782731260845364429840722488340705807311287596058864679992400687746384431160711975070595209132768415840491654886655483717225578872325416902445666708994223103442901284583420910165499906909081297860076080507267699160678034105211482297227796405528820888166345565212848744946313116492751235215541353632741799862971114159521460981207125823776741082062571984654270975559178074130124325163310246782828393831790156829205794016803358339466796743305271947454922620706652406836705370107480512679828351870412381782936905805452435493747647404644995908661891788786535346943432906080943396102811263648173827927407325528229747375357286716657651720113257453968026910400077706850009054256932485287669939646258308880242906462470259838127684317772798226671360960241130407912315943458836643859237076419099237161153111719374545970416713728386977740858171869594917019259208273675921426152871916210966570096211134262271178268524771158976372037759006448121728107928999086040872680182740181745726267023089449979611493852628452517843374052540043418984056300015488238718194080050760737723961674961939775224252942885363055367185250731923163606465789664363986343473909804442858544007643065535257404287133838315968137250524871399560178356384371802727231453336866708394537107115655050319186993713898586130832961612859968850411590063275625154491784565065825570475017831361693040374734880901763064923110418590966750135667939786720799674766802476071090809133359676278081629947923599143309972092131837406254200931197008139237430891875802020111948485080018197715135258874246703980998964857519946955144447668455299555732988540035569830533555060026926949519034408439659449658311486260785927380542417086034272925798283957794514622192704599874495453877138552458653455947344305598645633296920191800495837265528212567844335520944887641734064367623943156678213560462836309644443172035030063780553846394432797070694949843759615880016022242662436054117760358584561774657112189555272484651874106542793805302833812379262468609407246318475429599358331286676077763305676907914980736090311909744291503052808586492449533719941351007651358144168957797827630812025605113493862108006543465893633449126050045462479285115293820795455324469951326331522033091068620297739229545269282396619765550332586578171107054341309257753701384996968872295483769484503036395689532102563549298269558171587875393058139962295758434229037036028787968411410740388487039487893466022428162969741721326154986424529035195495594364943159497284335378415650027490088614716468063577367452345773314860596807244213236747285808205810994035841941213477220137515727993987356236406669521401195374484645658100794117221867518189503792950277312600875809820347844604550989219008032306492677620659167547791936673736042333195632578683131265792220053132557907641919255854638300072188817845321348484843388455039686382954137639809363029507693540601582987224268306013065343355395134569470356786586458174112546288568095915838792971060733896589507640217032973156621196071067636588512330684403618499464057829933135235488748774113543828766726160333331109462849401718415644250906430250368538820727718801721862282980536368354271153691681688204364676478528996395722040557144319698467782885781656063351587077200439239187004158937096278003703293403809780630134341870647879821298103673954817614928925377076176038246547954032327483610882248228008894626741038153032439151645272288701018910011170534112855807136671715498033440760201018250102753652913239475014143357489071352952846173793199791599703900249783208660737418364276448662584022678195846853981590012100780005144749140586594050632791847401795117190777144031379333830366332718924382146689044869147160365523310703327500100401696429438974020349721482124271932485822618413721322175238119175600118679636480093230490100772021093544061956341377612461388291258587812661392732084212027812634262450964743039976889418278818189016626390394493877065914704721921128579066200250509413488251492809113181468151093763742852320725260808559971392107978456705289114718685245931443296915526804284097670113077208073638462072683174616727999484337135031375727348031493051139748649179142002433726656881298063228603848298051587325257451474550020986704262260194098020697416670470640293035776518375599817668737435408762105885717792472612319026382829618903334148845684622916372508241470706862367778698503214968170236362093274832754669791409611229407519846865945601930108549936134611241596938473763581874395469314595825410916645795037946801741343651774375323031933182570932689373677773156698434463149456833078808978976288766942517845729334913353255493238709541519090955097956321199898856761826747140657521741224439066791390921022615171029638087090646111611960558120204464139027139499442110403138773902983623093196527405546801366063156911413571710377319252775378745521784113861678762580171646985983538449771116850326597804384941480929871728090078322454748584178593390625654017242211561510123030338554150561532359158753708324363673411017982477827291771843140566466994967337906513324313362871036452308657220851560234755485657377412466406522180322204560766201140904934886219662271583282051107033933100848968107408073146372557609671288004786191281394503990918851913378647892458855505856678991070211033804913081405210083192175040256699221724913566118425821900838695418012195900280082029318070415127447754472132201357495418821823582392225552465389716689095610288741902441014760837916075006973165334215039646039584809460515143858115862408619729144871445953460111588957808955765667224951710684175000532298539995355698719759615572836883271910933590960305531624655443418363753368805420397882107126600088094338594144748160231467412705895478368024825110910066125024447722454057671505730877471963528215877609041958012550075712224154796968521967986481810570086290080866745001331117682925289943220792446996974206976927868961404525464070530507375849465909829810270161073200657699828320532867281584887644797176816137420894874923547624054382312948161408109740624171252391144401570574004024891418428778481284354852021528883902555907284694797588714494309576373402517687990037047243181930486461458100609985647983080047821667044319870622378173914229885060999473116810016143776653710139670788050046878470207539323747793174602633632726549199175834150566234688756162863302244317554455349806436366190472771111706858959952694452073387223843704439162781411365906208181477835894825493214716511537669645913824317525325908148726349877797741620462691374719832763326379343214562193044312791811153353678866805781393780043783839436505943090919619123923948112295624306566354436532446827457110280195891322204318476393026719976666911382868015669614755818995320119846498794125094015912238476859866487035554214795913366642169911719923849506891417906896848387875183588528013555333466763841338278857419596514874646287013262907475168181880998578247970967562238079788553818189616798398836220973991907807306222936254372147978312128773480071128730650115745131903795286063019245862099834214498108576289012024711855400902418451339361815172726973497068988885810527664351066806746597981289617694377096414180390902951701273140458948456521387234845772562490590574856578228740744000112173288685991733043012831085065942717997625227002480921582172490544493650097483432958395994099608711019452651568908548532090144231811541401823374842362906817611129956145963151355736008869194959110942061401187204592869707507535531684240757866676458579937595971414377772933025360873957389557727114310984005733447564492542973871295358922888420482920545197342306537409505622229810912472221129974572641591903319506969717081184439553343918451730573448040300290854055497509202206427925754026441321809327763969107848021604081194727685081236742765748217655269553256750117916708092821081778754263657825364965358219337881881541013445257044375075617077801470143872632263753713186483118046544683085981698004168504400679865718953114662561852000134333500905568792745447985640095296972105229272927679699813188471797131721605213791587229738055576948365966625073498769611303145024671891269916127105184748539714137973811679016926167660191918704675117210950877950756508248729939873853100492384583622798823036840629827016194922238026796407951448899916314660648881805302377605339235540554779238453981845534003313843816817870670316129697107514857156897669402874356621406677566818626169669798055493975080689888934015046274964126251817489564024459946254731579837539935776145007754308968389721496249791746977555720305434197971012545618705660740947469804606972258797870819905233393713614058756026157722467422976269212337975483448457526517274740638127267722274156984549891578771506263420111282914088659920783521307949154451979786888208804544058277181836387947185480809250681331338635402102964015942406073515385456742529167205533006912132134616280694242048240752398180485487402164892154340837328777388496319215339785740097780678297585307918053247733439764292501411732550049017960033261876047651129086345907284595121265751796468619280124580121455959424720938669881129027044595826435077968017705615391742353256311747203667069361188292010501870261731888160275969030774331764733666906340004272544470044875361947010309746282672008930815201405482784462893075889087749927521122083380804479548369944423229514118256064765005158433253471551361539645023859406977379897333191361257324675684705129884940822902148678826675889539399813920255822885506045198797720187801397073074542119074645059027530134579794188984276212510103312779038188766459791113219398351285785438258594519240044315366961311842651909383765910010738218291021743600760968163318655495417558686328136930272650652463536034598868311198176416721495654051927499342006441186216421828043665679104065766549992465741474561566875250099482658833077518005100340323022607803034617505130308177519025853108062139889639530938369971343461034211582142423998743613145405881663522375092476123556686416220510217355492668076106128461736904187348136930975121004225676819647926208716054684280082683694734865497820438801173492575305101976239784001592146874950036918849140479509869205440082162923716311102826744420904122042553922869839012494902373917385087225233969155452774120575359375603483584471399081162940472769120057674068584733977451922638126063186262231738968327254641390387720870824394831038266309931607344987462092230235701412423951083261118941369838397231008753625954698443255616938467623065076532992878360626731688297936153588926516054753024976501500809478669945157855501364102563101747983544786923934279915751736922974919296358069846708592648355193710179143326478374564218020152354347199166569315704822997390238087891735280632053106822797261176363651199087626504609725976707522132176419844100448092071614816487020098947692280282804588472330957995306943818616320733151527239170491864715694762484005905513566606256891788698340072219225041114287840600649776116050371527621443389155020137011562054533563374428850524956445756133606305253853764287513359444265648605422747004617712109078822107075595992143487718628589013319532718846012517679592798402066157842548004517725584431373915746253733271365444286675624526107598284791096382595579398036119873105829498811000779899682345726987641613571582358255082152837160295472031925063578954423854081580421625977595824858511007437351015028934266737478832339940650567594078038832596661790031847635297844711400695729521833238136575589462008455586800153817341559623866781641646747091715012320884536818692612802637210504437222910731783948026489605754372697957923393093514189829112819329405289707657093166701818931512667291452574095227761246974658966438408443952433824386864018565882327997002000961750124996623356650082171376756975047804386938392208569849357663199961430741985075701908049901434120203222815818448166971930712177215577799692747468830990773395408852920114641258500588824538145559828784752241307924341888841909209709986593562616032214111378646146648138348287619777945289751042244776093914201957347262585176883563056063748311970596181073417086788017725399953921307658736456143126664114205503536150676480966419680096116809310304576208966695085539538202353875114388225745264333028586165879534997265035643128053962207869514939432192587186292051135545001025966815572172082614196209499088522812222485954278384971742770282069153976867863214683193608295888804381329129861195621520863927295496702419358472502686966565662774978740013676517435601729778336524951884915248134375833564965997021377691635861063717658960862004226714977062842604163320274251275484534948760983649426980548422171829477287089661199033233424127024708659166324171551010149642540581867220756176869453044836772332317185101835551359748859086003821866087676296225767507797167209871243012773325904234643282781097479972598809190008938390586733249586315881150597927983952311862020228964025165576923923709680920520476609004470130457851798193351102390847035440426545555820586603170440805432931052398473400476016352863482464354343768016433125223912041463707104382246279956171347611088695926298640944085935335772719866608627128006521071808246496845646253435365483895564891567949949685467706203202118424941615430685165388238833154466279968786853226210452876720446027104103666179957883319872461702882364245526660804577476623522820756583973250595899662433925103672917078278417711684734142911647070503164588809184316733398203181714536050105693351754676477194379155659428673471606726378775380676216145118853527526292198446667415468543497811181913231594310901792470010593409848062500671522461108515218633377018800767457279451418177803663075182839722141863983055478411959428497038030307439576356002446743588894763030004550321060168803575288132438126293016315510329652161349733362184836110990740336718976228003959451635251238057078455069457713249229942296671205478952605848707590161123507594266013961612062791054670986126013778030735039463140329767683627504399046696498617390255106790950466552974413653003154390999666864472065070166017637144318885368662850589082649446737278178786683372857394782832145168597708798997167186192811933810988885928673143121692423705480018791408919843791028291031473069025971245184276960886481817608885006042399068213208827286114962031964758578879284932538181845782411365347367247681986695838182402086107862935442673800909044158300564762139026204981387088114534755903405551008210796099518545655604875682701179277473853123531750439394496153191617512575281446496459789770547304313317729332648336311775010357567729039334332153654130811185050763687292565648933607482471734342663956249968287802204737663323746583675856250405242782362665450273711655286454333256426208838652067549752326015905738242649916462481093964014043489173974785108647439243041343826738188476190752074675470632834841109715847805493841562789904400445136116012376593665773439937978244856911084832972287345874725120129629487767080736840098474792931333509935592070839338991918104616552332054277877173875847795745164866622519840342640347874806026005963857056832436881607038668482568112718753485336273873296601910185062558746008031403146063233614638495520293901654844416597166425235133212549501315699069703990419544541662654739415000999420609828349185766334347229883098809288706029453710973547830863136364127378361030532453626199733750430996902906612424701124279720231350994256961030206025795285687290477344843954904845148002216676030105158688489908960288169192994296572173304625397144304941291723426329097580893550818304634392726782445734584348606160745261433680799167455806949708766557812876398231978126405092192110640949364714440505746598946113171319469892091874415186748759568614604647862492552797049083265830703860653846540437847196744970229790809748650183578859672226253406389758376880381909870598522185564432215636951422874428746556569057569047397923567752909548908624797736742092164505967142420254704797228241703522723384265867137295087077943521705706998973441520996742732951604208014716470206807309639211594257252502391989054076332778353934764371573554590649030494820589703926408902946435123829925905103977001582890132403425241378045727776240768100770213057692516800673722326095255314251529258435490016290780819036381721995460360014015555022479269536625250096770898225177944184420122001349091246096780713954268064326894935395734644143175209062165561899439358386810466810739489344718214034703389347941502734617600175303572067484656738058328735125735194226143197254117142507114605752727742396710155209467232432980328242137070832259042580454067438840924255669875469437537177402853217432481322983603243383719610540674634783055278228696903456200205883067991285649421439478473328577495405299601904444757780042423495469324881793852315447415705857571901170642666083838751242931989710742274842181185175320891881117855733743573796615743695677149937373610359179555265882209062972649526214736334021731975185643754337167019964654400976720001921902938133598982818417213389284821321071856555828299481017471486566432255234733137576753035447074005380827023186145355997576427781874035181958801654176865793160991666519423169693402384520477779364647339967274704918829362592465085365091355772863200188005802129233812027375571474764513756624978362310151952296422769504713412168265120495606540649203744955235767003053472498686783434689663530000610773937212159878058415993766931570067787656847119340558653598809027143460450002531399511170459641758899796154054229448510544121687225721546087860799982690959333461061180329325381798193385426024226996687136514625463497083867304714112687511931469275333738348456917158298414497050347778475330732909602546014752294561594510245030808990971508220242895138657343420410065430104361307863900205404084046280557237368885182082079248900559647588721657364001966765884281990889560606288769307817459810697030340840859863958841676348488875015147086161962828019644548406968293782524508704547966290299881572065383567977775289098714943722854049385038128860796730190411090420369836361741207040177363343956311247333808068086190242809443178536597116564160602183519866404032082007029825921389393591957253825890742658453634076141562310046016759710874524883821619875538574847361595728898404922701813112589651482722027240163220857209844637399022487137922124976975361262066901765464797424679772557022917728492672666260025962428769860685718896125877110306490193215553044253246384651127531099057315041598158037382249199487689651222732809800280443184104175741831596293807694089671360367719418608727354936570247391257067972888445966849198640997465240126864865820661537079841728292771249686817411494658174129685415644908319533805000710544945501391292063924240815890503765377916591331544941050248658159876712785550511328956276759719625269824336649957451434971272878438847831139005432969448288925965501931534020827808506359538634207146857019781233072030190016696832102916283154840247751443282291587523205937645066522686550118103205077777803040148876527231178858237802940814224787712902214994774760259125971903633420369548776987005060261100867398931035875818920929012205144916768881280722860735852328536850477338535395091402891558938636116360973710901954026401874378786044699264506761489371399562460455186904191336861430332150132058509598691223297960464008317700706556989201453298586686296124480609841193002671220253892573149736396423425605198548265513023725209292506141684780004493253976361643154296313588044923740402587807150380915602127732300281066957968404816211445542541689903143990865319816662433581648102357424686274107513219726203735439799604135418864878733988577050292812542150118759586689226515724252534971977481908403773452992411707464049916973447073679112986292359092657805023475427658132823860467185712281255574789990360866643163494476223085424399285868324035453883956276754321457186409286707272176833282558526101321905050331944013274951058814500143356142836891301980244590425542094988355867060944312204150863741197473050469433858472490250862700819382089617843228544911187815674044693871195716532762532663066769167506617907987628183597204232261301322698851514965938246062148455993505770353110384657167305618519672863401242694189801631333512241463570420931140891677143515193842676075247919210873873634077877492609438218327454093974575687815084734046006833993229467868648186621842823093302056128877237196501259674249298651722436385802292638500383941782418722695347733848552572531105870126739140579347178233080848150612922839965091620893375128364342298409662949177342828786282590748304485035993703264148688602062749744655700696349340996784265381408979153100780144123978451319507776181640877505151312829916422910671615809809675205125902155060861517004604595697479506210923382354929419249674071673623089946729857872977689726167611781859490540351416523224545459391578589587310023438552771166770226221866648102952057622665489454834984459951803798169357211405772933376014895801104617922768277600321493734315015472612392725709246390315747644099291825838726357504538413182751535530131536847855744638213879797851318640147458976418657366926137071838071844344080449686601827233878713299544233785918796792492763527803422807243508339530377053569702552835316334180372799398337214767472968818647814856644649754097729272640081482298528197967152882583511302012802889491606533708314001990119337275430699686785514014478168138078001501778801578602303769313562962118569688153813732591389587545926186858326343322425707529904365790560700650488019479442315448648907287134858692548978223697660382541843421610074269790096058010008112280807856046752447885715440980196005818933489745446648051219038673730305789841931102951806105015907352988987874892241664516661679253127441687907733934604604171335187514837993097386530347032589652085312391560923198139047282471032643922968074125801814434366808668050332249440247239026203719930894301294573783011926194263028860308256158631397439398206092691893611592260030849339933082512790019455865277059675296513603338846590093825815292538808888829700685230229310516310455594180625370828569515952078574976099759923319606379344030526105644603793269145361651801190146576125107936833233378155364789367674394071361399417614547157015718601354139435306671703736809042795654992836611229295645893236431578005395219431555127493563218983941872894295832288377316572706273426845847182131539617884639435132558471996694097526135020967016887204538610701857600595382046748654118466695570162017822913157198590540922408665719896086948196418511183696556031792444449283575477037216230904074695809353532393316632788414163313545497597521058869378443926133431849632791555863592925390745987639744398891399614509160459888420934426769784179928198537124653547204965277323008886358154789449631296080010362164093628501492048528076546779909286151250745514798460464701820872255878907128916280305255227843063121231442814207649407351368273020513665915766278556618805942990683134185224582524389167562521183321572459084223005558768180401900896127055519861446744516266277466120909993673827858304109411110030773080465579520642542787437295470828776694919509287689700870705518126908518341329877739525726360483844725490094348312713137781123776718872144961895670414592491542222498737275460780518518976878202614423524294751731607299407488141769999465540041011294675971363351364812850369206727581041412988740831667363592145548464304604112555798688331173475605980629946384133827490568473378697997042164488122816910215110820566193065188266081135772074751029214579419229932958344796514365680481343160101409615231045440683066046756658529197128263106480966718466821397916895553398981871594939033086107922139270057454265480594901492758227988124523079689078198771656123112603797596479430768721380171329543902215355409001229891007627722304864293579018549008145031494599868493808374237693996688126445698573518548086285407302501775549050030006669589924361026904909820446183078399245492845661418043566361333810181337225345140494659812267918019458488692475496858350852337588926365369877699726295858375207373758582892073794664474776251577705180132618812899170800744254035844387717704976781645516299369655991932182276252952143060248677327245666171099912587703763145137331225511782923155122298043040689703282397170099900258876355114555901146038639442276421633507225965382112244418512783466255596910144132055643607748706342382596669275519068717709549734377681213108043628536781941630602349161009593166335362868472121433802350282837129687142036903189883969219659667588414047987886402372901141131225100906815910184645923268339651604485170961945707277141535761871446883714028341923617458900143360878802291095081630161327354675064875327643731993930642401442523551512220029722012424094618790204378236109934064418769714284961885042271775013542595834114029010776876751221279107667985183948977742569093897018580124574199613069385651461122146896427703258611111927393999042585474155176342046395291500902171116074875262831822986871071725478199537272163761548168093698383045780724259922755648229328453843688147863948154382103830572502983816667439169035155660192385025326961414331851952140995211511528389835425060160852981452730488341993129957076113231169833254353592674346605919807253280184605401324704899336515899292395244752989625746862768190678581457232430282761865958332981127056068396641120816899741579502491750859513080816452129919549249243952783043951690786049384048223992388892939735213559543611295203893771205384955104870217049566408473306964565425536745001070301707327663094464606941185385455584906995734616829812452439520500272130516154750783462499995171932093581855385558946645748381504572267995352565188146448397250804975192197524587311656396679602959972653504417755220321016056440664058849430277401697952602105826366965162646429761390855636163469087504304161607449677875179426935927690122343433812829635546672158393370482571106489072258839620136443662177068172780592210086557510785106522884920661283572054888663368965232539853516612102549536716559734451842174331235235579316786406804474813922630088194033738544059994512894323293344967340382863869480338645029612877584389532920842141745952727490704845488378270484415259117754714581426812723563757317973441137528399178563479303679825456352608926214317780433652145633889178222142228308215101317692062231832132516737309435746253146191287752593777216746473441209954693749853454677191217333410499712990606810445993242023855341241789587293825570828781152491097134476053353523612363555845776099739570167546864463837073912982537199155120873071667836421032920502097748539744251410186254215628383537819474293264121825150912950731775876592708894162585596374647896341317489877941926056318113323608161793865261760692467780579051891967387138364841021850915444593141819843431834331537638918932449075029254736366774650447331802507829392510553466819274903649035098428708217592486947933192461351263067991141601061832176989142792113763497550261832664432461073502642389604952747480280824346435119573845477413127541513683461286399292005281862245305716034474958415452893574924095763011792632446135510528861371191414874085548190923605846762448442398640081353977842508444903375767857043039140533801653802745538465169478236696364966461432047834086155430096850709549384171021631576947377170362977037595413220854003321268114761669602354215286443674419021673165567424294803993202505577279692924855749770748208402776858607804247814071283374553056991750803367099237231563831449321251049764470975973930469708478167202002607397804417961267857670864273660073174614251454204715980817954365777940401295737407608509210498169175188406676884425485992334506716913750391627215290396046510499165219674795421993732849145815859414450114131749579123794600065430846121829160225824183122165918005600893831529526290247742775494017597229131697822783057000105934082554073333996371476618331672530208793696500504370132592561028528586316002540316442397262174803740001479639740339580513166711543326116663787328074709571023010209751164683704656359494068058520824034315350667896869832609094543242993853437484097409413053974749763044724312644355473456410130096527843823714766008341889072950269931856081883468120025439906662018427484373267484994332679715413500735597431825177483096272230587804617962901162031772429085359211177201741788177149059780414058108382226123948168500672641816354693877553907997382534505790417248162940265382947635886160327998673466077461321400773218917459776317178293640636983193223184861610129565517949000667191400174586277348010831903601902503356553379832398794807896055891566793982311458648861369662870157610574465574382326163224028077684483594133370919561885883032351797687109435160395125326083845243046272415607106283328482104201510973268497242826506775773311369888665091652877777970050388835092185614372553333675627624735526651805373034758306280196358694283736425681621292770172476056728136393370185695823199829043659534407271172128717336659901853806174081797021130698322786563516679060617646406013907019710135721858302667847820970734142311333264399149954774611433846723764316743896364303098704858525310874442617631641188594808811256949100122294204831364911366312097735159112892125206212675822162494271489951346898611581940722592869920472490518945754950755657561343972482633445061895588780833437013117188035703403858584872672141719794990943597383027413715140405828649259991745020791425113003213391039635781903127089973199339159363889757102614096943466585743195919503618203273614083382347740930887831968265277812506913606885261420716986911344677457758978560000772887370853094206248396435389178749953845870351631395116579020013811665634573125937246912506224527558480951188338833680206572239814673576863129217628997070808440044538584650138309394845307012627054656453280198538842140624503882773137706527803995704723469748086939969266099402774060265299827708645552447848968809004960236080247571768926631400294571578040812302717901525212414746367694640529677341945960831762584740286169109133080234221867021377864680027565673037805481078516777674243619082057350238624130372783777097602164971851104384787000574482258167040007381039927896890630118647495651201001497667703088244768221233823847940009817782072189109017936946330606108999990416496223594987979575889146576918403883302516853682248457864116374842122923794168629992602018111218970603298522529045456205586685479512706679435620540233918360314947712462614482283426559707043090568203695176357568852052880512570353650086972048972135614969436757430827864041000427500848643804408204472929888720518762511570119165587501297114673150183725193379995562623754293324282249442190906975673889402913664568359637882631953740144052967650384293137331200666212420159037953200831567953773092190899033848643346035823914517619212237977463367478500717226586481539581705149679563485943227214515367699722643172472069679298231700325443414292570880648970565465865591470102192165161056505307420875284914622631049066640959983789713322528988662598685648195853581788336998916600762864666398005348507708693290188499754245421427041153267276125549732471097059448940101276857987765620472190362736896447923722535795094273027988348590908589600033377844830106419871364264343784608890419807506601982130206142975069789128101726753514571235674806223298021438723671628255360780522268245205263954508817112300955520785181561235453071906906574208906926393537744191248010611517101027357261239850879463611915745283754890112685240016595106952995696365180345772758226246793627642665402646949922708750100583831041570362967577314409427552689716805865595679485319272145854310626157030642699669169161656375380837670231722941882459940010397174319401158557851360743702031771894932109866259975888287273486117913111703365676084189666389769157266353971162408445375568613744376659561476957556359237259989134744187251997504515184324866586001317589108779482306109397306558188801164107229915795646493105052255157557036578159403989472797019390153809325625675018154731162399308632414524137903646097173360960202037093119965180972440691488831433398229708836398073282876696560695727091513725592254638537815866725308283483707328706982822561257531475872953415212628959774389758916110574999094420030454032073673376124970657188678246340118012873166153417615889307765042830050980400839743858605658404046683893380302211686722084579359481149257526158653124108848422934398377387059905618586340035773549285593482699280240011803099987100224030846077093797547838653048676342716714131453547281793883560458677488554607377785774783995563220012831830026848562153107092200479368200448131170082542187361519492052998461246844188857541373991324854377574162622428591685690616599672893489741742024342581803344497806670743826605674205466094098061157313765683604215063417959096061356180256920316983874948067856228341118308363762279325542798815407464406755514849349860080325697946537412942130298367777088437831349021348404744220101481074797998112021914341056621065606174122888097688929812684928889527312430444657859913895409345144441178073153442932531696542142569089016350965267802223360439239985561439873234644503099282007201554687982821640355119384765299708013047975289757267970549994256751756240093230477441877952088686046434173409361302785290097744612249787946342283456365041618319891609453411593639111183239203884588790208102720544382433390539685710115833243979685730218371799168749639592285944028490869938000160785241479603017593818034316258091633277608483212834438791340287205541122106236635998785167581552080754019530457491953927758050469309612902003354605414749687694030936277143702949466405088556727097171515659496715669048729104219185323717776499711642117888344993045965044517552023538766919885703338228304838530686062394110771649002929408500232140684573343644123585361029012135740307059073294999034629955240194171331815076723033159669488159969900013931292314098518636635407217434726087002647243180429927499259847559584538251671104734829628426058249718201073587736914719160598356812699180166772685991427015300147351834208606251479025084724304698672246069152098855274078535682720952050687110035432889093566936038660451018037699538648147434185981840909251241330883031971605401783184668676341531680751015970992940385931143240267392031137046924592824081568369286548454057163747119487223362835079735759402332810638535030491925456544816490107709089048046130292645733271328088750411067387151898524254266329364303222706598399979233192726823202085012074434740413614525162313132237622109232210620179067423843030553169215036488451399254417403893728162557895088472341257452853567952312799292591969297656250287481728951095878646653078041955762503818407876075768816743330833923957298903033818249841145655614183555254678799803962719605372720945886965969437247345643185563833035663397266367181988189915857843728957796816356062786253502425858542873201443622605063812387602955927848414196223738127662876016785560860576791142082407808637853826849080415726303120898658519027063548959046051100928454329185388021952837140995029022066861134777147909367430238957949492449198637864158738336667418819192608798264995244387753282399069807767214339008452704256405166431574355274998638971926903526049762881350032909894350140102679020519645180456413576896932557267678356304306308423074362521723414629657901661964151198851852633884983250457457387315994539083352944042233658084102019294535898653481513652643872308801467195868975262684273659837688211712102028669474472688097660160329065480381043362827584687980635833076227674153712833068875297575448701741063320734909574011895985659940971047103315110412223515518294861851698176409484622586099430316244416262703354887231345094834889000016583669822283416988715844579262470017596905108370972672445882244474743613558383179076820155002461006665839511140840299923904240020109875945630400287661303579197455048488031274915346033095614872847992562975695414390794162047906182276785948541011959117748348944133495138509048183972168132422689954941901073373468750114540078541212988002934849169667656609530767791695319082597169019867383477251537661231805897874947469600226990462714164889503241934884206472411998552414226434385225604838471351885442120769504142533579592745700593579851653384452483775643890114646920132682277266717076211619794160956996380449955566047681129871029767207858981430759612118507528717924242066864182391870322774735936752144359291988641040328405541119246741749326048011989260907006500510803698075418723222752062654777689168319888711891057530571318738490297166088440141195755237245834071576394275074028817327566384312934303310213110054954618163301629179851025597490929406999355376072733291558890218107344386864413585048633621809385323968819318661842695874021790926108151349113827655595958479091791379727072952472839248003854278887100937253131005379810169326561329960810314404828516040120116407371043110722100328874067743628287311752729527834322835447657084322935922477132098108961166110258950498628745163715851516577575531438332953805924969439526703660572630049434463298312665561477904097479379592245845465238901395811933626511251316725464731129584233916400030521647132612983906968293646096315375636195324226412407217675053890844295373151164100184951714619724688194414707486995844691028126101396339891452087555244072757806124921525722558253448954106359336294638187384822873925285304320219938733414738659115165723279087863032648886878837629361251037177402864611904837302268462752402360964107595703564166845582973650546660220832544716284361676794866697981519417614032435467216310499252648889098622842629231425683628508360406152600035902932380295405786530384518290843664880268418521356805931624492660879513774254490672064306688018252670129798656988212266042464982828548374633635225141466960631763609422366648433205679000778422160146860899839581523057268362531676436673044243916645499929540792246591544720556481537434948701641942640155506576750947311142624833152659483031036615312171297908264666522840796654831004901851881448700973343462262681073796985022104038613204501874278506565066780202502093964255845369072635251367742460147556926163965532293905047675575689245347427197251097420767608585040501028378219892471516243425696065118649306443371692685290129893030472303806192946666014765672416202342909614860544975801070133814365942591470787562944895389380446798810511937235221786951187904764441920126725647671633355391816335959377230359809585739602819380295381713508870578528979979432740952908039638663087287562691946195253272291646174274390298725594194849665131854238474491169796273872541287993516566894010954460852262508578745885896312077090522797500333866879042322991442926271693532687561282945576934162439740623187820133127973305779827223738967073387461340085102082800802248571950628873716333506046476119143323520957780011271602690033680604325391295511742180793922356406527921068104583697080965852742678499983589680972495958721732770918287437869532852925261168140928009445032447466803556939017083567069956351909294732377261307134053860831020393491067215229300536747532760079295653228196038025704905689940782518945379012772235462005047078771429388443177070809216140201497209109920839205719793204372173954864296899414647069907251267738932999204855631655156854492992979628886526729118221387738636866039741286010218077940458951759962394653282178954374977662151130006564502961863878874517604517479926184859822149087801447179594297821783090433110315904074317722465637951344505299962255021230821946835440232477541813297613104231497729697600189965528397455021310719129636622855469414574570693097624939471385317776501719754637934925529103959333962231318697628305408040157265021813652715652956727860167189186628650319367527174056433013762034189514928015799499259542260288052553209764600828288427430100118763535104221348093715495499574567104235940791666981330246178016765845456747795488282226929760475398160805620265785511710373073718112089109798693135952923397819980469331755920922660485830327122294919665844303831370689724596572116910040602611710299105456469652591283641617870356163186342565745210507486383554850790803580804976075119442454919186649932110018832513235175677186666102154126075045375450984527874934672102684651933508331231204253254538687028233136230181689923463703728830971439133863815940983034031366937780609563714595464409744150929284969080739985845779126519073224134319447187041571827179444087858652606518165343246997185669736732053051443145451972483071002948827272198794296659065020557642576137058827750107786435825011504819970418259685599452522405759304100158065136568814030255945987869243043530849393783036031883744336385145114918850617319138446091910901501967776149004597985014239281721503576440735488503721707262221036757333928044501146950429787201439634447422541173783013535982333059273349921961510815297717161493628811500270605852894474368664469588845289428831734560973645096925030549744626921588339024802847924510383885261214759835061905222868288123302597511157246504152442895914654442144633380407025296924791925800221824961197270270733652433338403640582866372107622367011741044050979081343679956278783951482816683969748639260653785662224859419824928390206423162077891315610996703423573610177614540869970685491785727922935166043886629954253857208812681000030527122723921614563643560089511115214268662203005221315311007204381307733696195892973359643374600369863925491556263900692650043166997267314674717300721832168128029067179798922224052969063644676140881116892199996946486731960127983729243364721874694207448867908180994715239418396603220458718407635437012688120045368243861323899192587498164888525002951404624825472022020149763421531741137328855388482871766669813955138125394049486278015189054695928692770669614877329910777135612332405207936387203174237384423509656518165242482335638959282907717633924485744348862865745696117798169820871152215339184872835620980291518726805545758721015349568532453470547361858455873589378529316215012467219118530301696758147789582704510634064412603185332981892062601560278662774190936366165136039733147890063836678800617382204348193192663831678000152782989313119911284982108106310502493919315261088033780417866221643083137618219649600845978262159127480275985170365686142656067385295961790626295429519782685494482292478635061437927947704138452799267689977712522917805960863552971045454034339363100668702116178938078493771248014272418020588479131852155786741907854559052079741650637769162849426596492415584839256711187692668460493266380260049833555332024288369194930223025062683343582972416270992060318495496577946834931152729091977763049796228562201018077197506554674667021647827938757204946546015813975355075447013552620517667062092875390686938404778263727332097330911044245508829500775144751338184785651184316992414793882251197655983727300561474104837804506448373937774299236012999502782859069350568412276060911003978998707167671053739540311286789093525653985484210526146258795539978410805412886849061156229323161735568122033991241180629645933451297271681702009537199118401686491560189749986723579265913914633116466933313737214828560729637598710989937143757845841930455933486081032807038862747702530605318995043980404685923525250688324393801849480057291271524686382760278107637155408136709305419834721217442095053653231965681350313274413910631146631287856270375069611194876574253521241573471858262279554714805996696810813543210983645912481382470986968663865965314392692657202785789763993204103778324195169671553051133550031885589667385162783881484981157059065630584683748642442280187623995055742408319143221952438761325229197143927017641104086192833910732857461540050128125490366277788667890715270892761201262702438944173863023223741140041445876039710291229124331583496227134648290662946973714101821937794546335263115585671367151912033275305881154059758115762278597041847401688202450411680838306404988210343691496538881062639200463605182031413565691985942315538924943346579488841184865461155556117539005559062838869819623252311567033330224356132150241912003868584137493361941289315607801067291834837242266577385207710475483500096842516464908839781431028080124997039270411384786475293735050140010527892898544381163126179299392321172464399714683991808609316541060041918337864844545999246581230404184570848898678878401475563749588693795666573985640520883891990351702007475075984271725986170034551546105527127010764176054885095256884356047615160549487835928306595320805742777120073760574370819783410387890187568963668284328316119550056904224220627574502816607128753187060860317024340637760166984749811330319888470385362114923817595300092734677529830510858711953754155827693428464115862386819436557430162850849090313027880286031797561135966343106872922785581867155206948902139546498576858760771716036255127003986295923889708992895246176184161090938418536908724888207332669652719963991898245041033716914292728292636522901712493678753589422976990497353189710174542222528304877278856198807102224309662345596115538546112911079837317115675351330807909531858373986196119275696773463897203462915999379497627882054140690749800341134026530936097526830046503530825971771163615795491598139468639093721146272817073688285500473032093555294941641364627689017406937892267101249464317450157180570181412565740265842201775419532612083809421787779018864859601425969912391009937090628362615385672021996351999383651694417222391861553532625723139558176122933957069922211709284213032116924833790509598630331490384171083260257332701198687809199932005713044071879165146377917996408341935788162192546039083492392975604093981478868272885933944317640037341077755686308119670518524851070132070019443383720283724318883196281626860893754563843443426998458770732914943352848440623202402229190707118289062198462791360000459580040334805832049868831698233631978253955435661552588567491993098626973197070974855347869983502222286294909652328613988664490220346241562795259402689916395895498527572826702473635185747109639819490742038119594351666564379457928022014199535443621838301240384501197939648560471912945118434466289021627380010320907409541710979640134617185969676693686749194276137458119276702470940953330653962582850190719056203248362841614807967351325704348343642779243548785906187355791261979013029708533120403772126647827351113815113394714837283216048216897851936236004308161841194063088300719538192799777295717990344196697780789398071139098295587768236013688752647063860743950532457169900213061321033608858574210670294830760232968810892136726807824987064392285346858441147101660927244917587706172576635681057887649031504572369184650923762820195756263317418534842729678800692509161175239495086470995999943175581381435953051178821528459846888312857543452953497252681113649112447420916401317296615377364472878408533651298517081127126052252606719117404966641061724213707861621759547478514676077732738130983129617725144430869172351042805994138344761412634796169111760042866112691571777805839514248124564587667916896220871950727068062317925832593358341514813422117596997788843308737090162650327350412640498528387150610432455982992659219358232953808088986899212000251017207174768649700343166653414964896592818042983913611160527370090814706090586297316345048234717458813339128840828326295001872738970422449336170793902171734687808854463515185208210558540969027670922563991688803087703927940942596210714449692748862455682739375266863791568551142619317962190088928003433167653580645357226341813451828159595011392978762696970145682249227682980055326077604506247514137163589288619719103042935173400902980498217667176291423004283709065438836383422206926217963203257298132473640447077276363072581646418542577931415679449257437909469616853648526891342394513877288466596412439832308486506384055039220249951729314661656255694968151261812589587987914567602951896438101549671516163898210456563151315453249508438233801348721073198039110726267471684689762631192303235140993225191517433180791933999056927665377149356149123023862365817797691621189907047566277367181641902779245643079834388094340360625323881363326887837196137553339819580471533867927309119059596531433173955877934121193124705357651378136834042942686288293582979782029265030166035362627943697207323131671974027527765932446192146642861757738710351333005872706536298090753724723890077219406628669875909842588612712038516653018595492123795577658309634219895518168336215258881706882536813585617373334773548121324949159552473841739606407088352552260301922582651641393783112440610754528843698977466926575054263581585309238226583725630629639980191075741049303982664074248545986358494367348274627240390893836162279256829649917796020103815955489686718222766911829617702878967065329185219384893176358719521152932882229596394674877763393306325631276460909226610204942148664088331419929836952031915202805059529819067536712434027075885789657891564572872137365851841631152138873173221125474772435856775405190429599396309928638081809155159250507778080673560628091624424715138098957713192866610523135209529621732776760645475659354094447828737213456661276661532486556726845753502979378755414060321360329238279839946679610439671928364933227480054410335365617196724045736678410414589927065662193114338902815717289453001186567075099846161871757770584735889699207100439731737602816450370113913254496695183598568204979877841177176997036978863719834920795899087947820548378923169748558443957652598109720733565681231546032919155500510250294384322834811127384212592702800360496599253897761585487197684570578308148091190167343084390990628882681858989825717899219429402142503491067344811773919068515464535976506540620363218741367029675052012155795105104316496449033061889251415819930670690965671445927776723746018136138251374888030245772953313144126242941238279144892052737138519508509548764887362928175163497918785921404287165738607928653514173625864751634622113286796096615297028649164776200767808758680231177038103199363126431991597375476754346055132428801654851164248016967957994164449227447558916355298485749700649198112503827755982711314398561921671575471582855418639793238610443578265376054774997750287651576455676501744742044966756664746019919005838076164453058157649539557929442358350551853455734812836063107141601215543716559771865351651193515237673400281169462308458486673585388034338052459236816759122069822136448415700304475283790907715012189962423641593935134317611556897423079357673354127680471341264245223547172351533242904196024947655689731572291296072595988802753425782644845131121245861927843006037561564753572070654658260037181716784631281438710083155166963069086517876317362832415262485812563755058017519581077706910906704231034646140098216290354446745945638641976064092073367145231262232359343610696528249292860632768021927763570608490780119402122740382004464364859033096050139526393220389770785179068348439735856991382870710908190019448077674223054520310210413401752069727868469264558889023675145373431254715416764161280268736495912043123832224278805706186423872976425807501719422216004148222082607226935019565994682719802048702208471154700148871848963138125914183732217156774184677176689238423127807119796249097324179705519701205363068968374526074305578987163333995222945498980257360476813681986733851491140064000847293428762795188636384373486171232253960256852425875568261005174665798752797874331364058454793033389971373845458262119936033068787403655843501103114139364736203812884946874914361951811106745210727881884754249135773206402272549520708502634537346140334098360009571536883588128433484628805139290728697588596391351112497176548967409700533256205058140550003957222770348354107222589820070635350157795801401957464648699460925792097655729735542856569227336902649229510818901848438567511610429458399298452259032221819782978272749100852838804616082492169746972240822017989914415343763840261416111069108775679601370538344750424906516776406789588986595783552902348094596784104801306254283526467092098933893032088741907610642623559908833676964440276160570114531522255074253078957778389860558370030647643413868514387638822255328519672909821089569958903915770953591934777685088209493827265459460814787956363494437167792599420512028178104309179385725327398059108137281726665820371959946227221243958942855793800206905393455933527707928362727630855323621645086542569211059994665672496276176827075436663138222473209419568677507644522380994643190305460542356512218473732643456502428158307937576171672455292109578444336566476221583729582673728976705785447014798812890309544152010052012262196546952201691561034638054946100566378218097037700937747360926385246337638613805745511763737238409210775086264659623231682737106469746011145930011129062244828859442478386502870946223605102738729371260418541802354600932113994996554432262331871085416351679530263401065775129077546337513952589752338390011740928682320565792181788215652561695962247480150100223994517665103111704794275633146753152324091065049814286491400157673333368633213006386426095180180359524965553627267133048698227207683715141865307866884600511498294595229753106640789949565138628323766141945250079159959539190509305718546604179047943101032547105694995131027150382075775444207614580588662393524447457356728205764675886421501765822875704575334009467493501534690076621794443417609723922410826338204574399218047370985077322313551401870595345213666939048886870809138977324041202842969026186692753135959619238668503657455468599748823338529419659583383691541783211144540864720217605636031070075274064193521106810863062622795377239337602708949902962806931493085533831567082173879762086526577558926793930783659349890131548654897072434930623013467328825051335920566504691660713328761098054374494836417977349486352429636003207642211618070159729515904209621560053422386600739418513664270298194419814425521467305202874676243663900841216713659608216926733850318993399953757658672337818376133920397250147368359644239487505459581123319708890033518387245897681200171083222419378945661360311335874737839965702482550738373611136278105953865161374352403027873193583477533862190346802198628897388704084562627037482211940761663281378617457012080786727612574889990077381670463990212870452161396215897702692586171869464071788503636781913753786423553887999619664597667067025402624173027742263426154237092424761021991933896079970042398492817995709582767563361379342104455951979775733516361224360672096498380408711638537686004001993398485304860752983847568789107120724021071751623134466362813653861361027176242943645987193645177050805482860885246903661388052718856574884486139665883358688468739001805884553223543034829792368631123410281679508646945325715750065110094053936497027649883959026619239781110973053738369034723103492756108399755986543077667413096398156091339001546889751859405443612430699807329062841841874671698556914254643604168578969490268320285988729963374868957806971230059998864513630935640948278642477566006136088076449379035085812609564271058000427569491870206355724870927320760873809687339664383232398821554055077698617700094839326139552637710273085297119320624269896590299121198530979420007535461095378864436645312239618761197869482366265980745072264138464321012214310018120740221498733559730089604336458058544127580981670383509146270842247586920741903360434862252516393398961299350413301664556107907291397712468931480582324492686517517037231413949885703487019030247250684061559805437259075077834624147496122217314289215818851054117076730351384685956297503662038596326102398760684768714687565734925977952832729048539164187456436352830785784573044004765711477514217595224831043651865625197225412336658428091110752455421895747948155752683930117223169692236276397943000281654538046962004380142734596839006420730309072649591254614598576277133044658328373249305117472238274143788116052462109450565941367172027581854927367286853295037814777020706756658297662706099250061694245120338144261794743914986852647017673598579200960933983209090583039127174131104953935698919721697236235557270925329640487161114017105232184932151858710002212362801229409911244287432225042956697400004166930849897893082296202526801783606654310370879558920510120788870840658871217330593569320295976770203198815587722642297373235536519922463212698300625497200206389759067887566380236429117569659830731282385528925097905230524157529409163794763410563938630658923441931447612359435220432429809462860794107991651379107839242967196604977836281954706176662772778997589350975204516032046115127164428247948066034322454181871120056275444608070687812835249221268265141995200795018168277167524866851544166144814813529166802432866945069026344201915855575902915138225820486258754376980416564433671017024771058337529690614413298340924177871315067832773083257184409786338486314176604575630459923256643372743502689358916965982219055286993874831235934624951761510735956887805452948535547980721623078250467017175535677952967983533323764868381298923672394884224523170133899501971212096370444722693476114255366067875277064444265099451126379977594269732765848958511800480649139492850932555608686038626149632394125051756715733396187066432563229177886562446160612687382804091464168704946598260056096534085886176220782934707164457311327418254916995501196393531227886699288250129835976521513762864703756482651203965013912127410934616395925725875395304877698342668493777575010186482767672183069736773591570147829725440251661208616674303068126327994463539354411144427328250654880187302164014205368080080538715623472498414781834458658937725403175890612415551549189144746229011125445675034063105288178622104224458509384087962304880301223483311688307105795252228249840119514045856039496467606645160739403586926870374316522782462153040338337771476864831248376922952951774082971000624582211837604268114802446328204125331391905036438858853719062601316238096546966293407361647743426231469857879591440928578033022893617109284308081213760306945350352747372439319368056548758238641513838955972079939387361163469505000225284719656254093156355247354614000260080600867358057747332774989580777028001030720995290090899849112346442998398334894661229058548044892417765642014807940957953172289463938216627814355285935559060743814229372763878839461391987338989444275049015805779895171950655365491098863330642721541559059097373608830269120463597553827259640616277218956664114517008430151566502357759798877607948548852861105741486279929892586185601104958684463372884032736753884587077704957015086290906689366064066033556572786660670631517400199336915094870001224609861943261540149632688844640884438054681994983636394834039602304770081833425655797684786374783412060405136283937104439976930406089358987120469904795154976441144520573457141559400767883499202766572994611832010495137602708425263105649198648318287863898957867539331854522220904441479864413513475836943270809504678881970193373243810445277983859636208847161219444389495297797997336427692605267976736601994255497094159447751502193705500538703262231864153848761296602338599041270740940954477785071833100752794000446104216770705076480664381145530502805874034197425879462824783201776042112710319818278407294413288841213035774901088561311816817638742579414668507504082752170592938388056854966233150553794466490249502428819900216003283635055518048304382882767521880951039758282200909706386431779110440163301171685614454002113095153331978230367921118615497344431354635482394645588907879484057847100317969355809687831471453258274904826490542703684348693288986767156152417398565429980912062483562081245251141160043253640505540234290384162922391171840086438754767533772141449617913504171170597834310324912575194324302732851555318638009677728125105286685979466591836945608915395682741163147320315858626984224067054926303215624414422011935353602023135620067724344402543058868114117674394726168329989891127713423775861381325878697601617888953546974301801520982532684593535959468944742589587341579055818138042701498942705346902025812953533524888996089451105852564846132873277516208391906892175243876073044546635522086173240388832646675152224588864740578466271301557063647980291395414052937847900092395781930234281435218656624253714642065047762036077725436448488379303424226349738341799955338383295569452230483620501935180987389344251460151839557995991909231121281370370419478122327362382807112937178214169507975448067712859775152011458291156733133948671292182698893056912639998513579053565611049975567497763320048908125138700035679294926603841530970586729746331959354260795478795738531627467098352895977346398523666505713242192601805136452943401840070956576489153674740745221633573919162340756451615286966783367757395990338470762826259382806137560614113357875515962793036568286022077798741981591837283696668673114315224398844413891864300251834459479733769453780702244815660715255795581717257120579317011954100956303821205168369985817134414569918933513822561620252535067170100176096870386851903421542024110159598538993161626473398879401802675531415279070786301041666222528609724756917429833111578007349271936807102355250831679169482055186115768068594328891077680939624539661118903146874537832227423744647540311211745105127702366688784106066040604705947521572377488826767960822137947203339088381894844584989092342024733250429674664581800669764020785692253913250349173541429919710653251412282784390157038864782933305791931981931125742656084353675051450811479988686938727349479369585609921380066856835437178373287263867977527062141865545999576258182453564176730271160884288041187409924946092337694605445316258877520915122693482927006465746101338579964726505918854903743899378501922657905098098615372845774552890123235825321962015912336563852100921410247064796428215316854535005861350020363834063135979754977481056058048631296283016838193150941070310708495459908439021556516683414283187106135985718070901489024297161179408839029421063850248545346263213919892131753803267722579969320993880617922108081603807867254913058849280054882707322890982301266371350089956204660108330839794830910153149435576926307422396712485925172259585741810177029107493766396947791179959009991165313453810483491648190035011183327479342685201363621373625047950171197351901863703353324688533505651272965732388511746024887541538088418727900005285959010634677336092443171987204820444316262309334703524415375384564657695900532563341105861011304690395790915021407768717479885701327030982032492652394005546211396379390774395802945063456996054419633915170130143527359025557037925903848967641743504966345038490000992610292039187528880092624199817749263219344197688931517087923662098084246942487045258853068091073684824556997405924911931900860935354870768754119647816161117681690086916828731121752792606656591818223713095421089879257237854001730708581274722003188926790004571265124270745064509714838793689351859469430573317935517753093122946897909161681244079964771265821335060219316617888632751926598561330413358780463127842046260657039296255733975379572320998218542068556656189008665660403787060867387259631319731687656206129869882989835003538628936861548417224247969013120887286976752926187893616922373507997793658754829817345683181178858221308644848809287443976078842406815273077734447868173207866607787758558754281129212037513335477661479018735244676655495278716870682764137747315803128877115227359781232851339888440773124531941366610919482503100499801824101236787500882745220248208979597636096376376522114561474570399706792668777487209366911119137694960477934850353838726743018477582716583974709527099841988307283013069807652306489565570685877446121223918418198822255291600479994854800489466912304597846776036054545082423899150637299253242793177798924211644932938531633347537105962539057600587936023608685623758676911689945566667537009570903694336058387510422354424396736353520907380078643243155550507149239449826739069889249804622929393738376636710423433985309363183010043175416210678443918366768106443237443494420680594323545311473382436522232955920474027354547777317371465712012049423567542742739520079876396141673585144075436262370466022963715158382712612733205187488340908567282142627787804360794100061749252883955514990886820670963574186435371655154797552134884186350140031108942922555735044363218888674647566648477842119746813723579326211966364966201580001822079590265765041905382886373286038390255819026136457714161098928802093482383679387685731554891401630745487185840835240899596714662913767797813438280202799798832842901740006769599701759441464057976068961899090483999056692798725766772880655049282268447912512695945209164584354846007764065733658242420017055337524078191629175684932217401149709241239515895672687490932442558518800839280305512573347301568875243872300988977618943685346284076202753690636310865046428959944753402558815532887706976446902373968943530059525222420040741451831998424169954745308920640075760533470950745154252143393082352352163841016942078661122289689220022828019286066017471971585415523356131446352936955295850518578139077454675492831336752946513861670781486507322788010911595273563697390125494093666926375346450206873728864818993506350614164713945412301759900588188980764895637890107467474322276537297581672716962577491585069869715144160030818280003989886157561321638781436383723252368741807500997324927958254768523808344111393722006106308256579176902931385627789715208090617790490687612013784672359229115408318886048288711825252326752207010099277631987634150759133380013996158996904088638517790534574807914856720436275027068433746913177108057484405483588006466496048535176913579999701298427785210491771985514915866159544948797141005576905153928830428623826251443037493038520408962970437019814133878128669834851122990904911745357702334493773762605695088086619317508870473138666033919467976485241813974778495261777138478814366623346254218212601927541670131961316139971460525662246633023518409286977223586622897358716228916802723670052950900118138513650989070258367952196884955667242160443993470645051826856290825919584300407177609834017257900541256811324388598598060739502274164620360638988375551068391889590251597958071066984155427642859614337377242864085029551626117585327963450091260165574819195234764830048422313075544908796301686871384261845631117795635495323175192233438701913072789201774550360535168648668377163330810383870827164855755828646836846717411023753955828274284204954826218446421309561989640852810230434848422186636065623458749045970012789115702813563047591680678681470347630478859377477030632905231318576006254459227993338319903202596474246397770229237611982723880251936931420649731194832195432779265091410378310222852145827776839148820460329304775809089606778617848143556473033911058081665104969530165146164300568215701307187387950868888545583562598711824813260154347418905816266550691024926330882617296268146123870073573976788073066195625797672238277207881991531980730444089501847112624511041965109740589342885717056752715930990058285928855454551803091842146378045643477603727100591283702621873672750268307040790531435195015783474093446068015159953648025953992242055191537927551469944374291175447974232161578164178816842779523582028111594991843265300820425894114385902491341829853502176053421156751206634270027720299944744800260739950792284372481570141527606983733819952449357404289266738321740428613219112315328536102716649961463422346892290433541420374333604567160518266185698039790050969707400330531923199088740284128080415901139665984210492249350359686350604362928615274269390299289941666071288901643472896580074973690047707539835792223123985075432013347637808710032469330073914253044270583286483649692599345255696169059057642939884110588625752755501137600693503778854743546456956995712613044978778558510167447718973742402326290137676509666772176529068097640680201342306351969093012310964932568300035933896097631590676711874569020178785298393069177509469346595727884675944786781266324895534663967469145752215749557526344229737098473699802958645812447683621700278829760471445932044229731801782527925375516935871094535100110229645147713969205872794638724071653829244088784892308624616942833238517000992955912219806994510986469133230781521146025834662020443006601475817824729130682299789969830182029101174531798558636934343496546832911740452503850132601867180577742013484799418193330960091495773694381251890773752807856800563218972559247724764335919696121786888987926342660469429973457364380262626828502312654225334198425860486359206830959090215805857992911275307391767392436218593380955067524876304199148974234545446274455865937569332655584548509718927492724113022595843227312756564172233250690028110734523744761100346917757156653134166858854433337502079004304471091500982629311763444469706929105544139718033122106078326061273042247174014098713274821985899546152485086876618061564591432177730729719104266324579449408629539624383207784502978939513750903353285160050920715750815706238309087577207272676024489663015588603354123168849800336249462887552741215136252861890627130055750129230796087853194027156172341488399613137609418584166054912877209645596523110463304757474435537764623121188723792149653462206077329437955524053306569881752355533667850388028308307593238077541787649397193616558276919728841216554583461838790188711369469459541715236251236837198081685024349063958798285517572753399092155012678433089799749752904115292094383334106925394148900249918685930902852138692268430505241903558726975865577392343167628337037088766385636722071386787093283025214914139207678186206923764447428838538063380746374806935418792117138552652661739539063590437355814853092165473173144214584261209203368935326868339716920908533512217799415514475311612887350810083444823717233608920335472614978649439975559571311391004451134209116278627401409092572344763094000021482342583446390084049565027923708388146495346991397256403360904129188988960186941542022035387761500709436606339798349863362287572725435460722427304137300801743825795230935570234661123404555699229752364400619603789826181126463672009473185930594843628332455613913135102794308538746506831157502345887595159807517727424942055570344726434352233516622052613347420710928629157960774864217880107512117714535088075172447621068020244529936965202342867265398831161414706374188058696925480576104398638645417315772532450111054332677898038681810222518074454372434991155914180994450367692212779540075105192993900742767296486492472153083568145510126099557292010790232898033504322750203545410885458903037675990072895921949150585959065787541195058837036517972679773867341101750369141938257144849351770503727362882646542738720446757295672154689811244260307542925358231128217274570941311507250622430174277683460493744861415724719684488839601718146673695909239492603639140176516154030750642765995960785471802813050109451945222880589802364271447543348293693963846346298612230620935176771549656988376008174771321645411600885153297902654263881506769178080971978439242260846127232507922485049894207234034897330175198643827572363537605500499276565572456759382536801562064954548106730509253913796445782320817156530834659274200657806014455408768113228017072392682577187618005272911031364450234942929677678184998324333887019808946866153296270187549374596261169620429529586579574084685932334294021438732175472917711702895533383181167140128386676197631999442560994576779460659993328172204247142803110429433522065591576799821417848472117492729218036765580829268740623107681252537888911342471713345179955863522701098098587204433151936949664817357992094679308170668818517621687843383872231669611610001277741047921026861204202676140339908211594487917892001507345473467165301285747553401244647903070483025400268085836571755413162447926576576711248918952042741218175802847039117111118933098541118695021907855242686873947850806565289770508988493457583089554046551290550210683358748178866681567378890364897950401822524109728003040150765599357074972418853268123594441450964841174955892128728587826672358182667922049586470737369689521436368219825129141768197893731912685766980407827202473496116365400305520208501277535433863270179057422766447540095709359760019253533750528113927371488901578146305425620959426099155368951974923745517211213122584143473084405533168836848403906161384224637579267434474796764836806734318600535810106116352053578112809593389819341300647199163152994124690433637898793778601469627050430565997491356533914504312957110948282721743849153247416589485662696044090358939322744672364690423526203670466530254145240325811013493198560965636310770290729921374424933213110923073344173587464238866800186813003422416438241281619918426352208567799646222051884160570806545414953639769228711873423051734755248009544827220292699246921898285902681879770633760446773481388101479895992013086961421185319855049709058010736205686938066445597594646424392873505596249221301335934831180961509030259906681601757594547839413424497440539830030983529531365250749500388404768694006147340475685659761734282023105278715591290905839537247304693762582761811995935778341025658316462204286499570106009656379980541576639884808365887678553369025564905194097784654875778944588413973011042079428276052610457341660043535560726435056839430797893907646330109673405700766370325173094577849039218920859983986903046860349562355694915043173227893003943341506812032752648046898695190876288608138672602608448608011086250214713089560492336084585563434061550608272174204175270329925809793825870480336984792547464790201177797633074388953882997284254478839107395251418773373021265228592046462264418780557593518327148108256062966673631566799401397625517797041149870848886449165307667667149758273914863681668372592667467155500288239381454505791805318939498235718018220999779666191713306671945465160039026492263717155270023822646165790777023277915893616963058563213170599064337853332478580018163710138804043044589499662512547636937388636195540902798438661586719736053999763112307853273758559240679941560689541148778898698824453348423026619328769427413941224547188110088453093755725779326889329356685776667721347291780763871750105137468936241512705808503165406986020447152922797532056275515649049284939437546030689996963773578236700180375251212566724328822138232333313208136449901956423905175868569140948488967106828547579839921082119856244004766164923031276439173419497626866999257163875487715841424460409037312673966884260364143833080682764342050370094587238623618532898577906079050395136786349229492199654688352085795302477213249932872348945576073790072115232129353832436789430415019136444898456633598201066266364569333815919856532170473530046889854073165611366577964568530604397187847703878567095297404875627210926583686478119963788483535307572844554265563741910995665823095207451870799398517563521520397499604487131666792996750202041997887018863693529564383949565526800215089679403471456276301270655989354417197571547422606299803101289187299598276349054117517875280352222001686138033631644474072094958721683568869733240570085644258983565841194013943376743292459734080909049490809637575043810056924669684030702775136039081907111300813789884640483197899722383224988529487242213054607619391706387263389569794031840273693069594172403646707689867544396792293230887208091554679525656776019887397652530567860072735354064859415083204057207422408407502734442660477034449142356864639090861456067893790015878359502912211146747191927399262554310611792739987894806158999445231749206370051339516014480322047973164860757489439228599994757278032934378353003695076768484873786577546860255617403871681670549365365065119254881534582655013139848799306468783419528436266928231132546466067102830855592117455351349205373403613813423707616576137670991895814019622663421899943414482972112834281656345457834086723220290831388628896774632781754620382380945397690014582024849162116030646063147841100599914371858146769203214486766305817728598341230679584094051437050110854159447933933403898973393272740805555271218502293907567551257968992959491506412153279573426329300988178146307390715893054511246041024838600363537020091270185120666022271749962362262480603499077295295537705887456836479895851294021171340368178152397157556207430640069805630014950000926300124636258707567811964215101110760432296272239651208457179840976819250652847040654571251909511481336071949373944308238236658074119434271917742279623934928812088332661500172941177869169881090702710297496997249707264082268428984944306347858569382207632088269315520903417241351846313203582421021456358851379285265972273681004530366940496197790287054615106210164175621862907923886035308487210144076164135807016506369546534521304616256907314601945536974290319834300934437379309888323076666243860485612256216332310554205578764996015945346930486021433335964434789916909166535413627834080544363053079437090608397833718752656735643284979200484971080685773714989833700920681516732196673463732216270321113438152479422113430452970896022097421892726047539570363053694614033922950251528450204685423030354586168524228669725759838807533233094031748098760943720037903387936981468094558459884681844565805936624369878526499337690258472684146723941261640334506907209528758233377206774068907344934462079872126026152282221252867464736065648976246438435894994780575310546118447738301001319335448600058980266304125618065341397221037054741895498725088003926812989539092716987145331844272369938093083941492698129692367211247981929444924477321052007389570907094850825955603405871351626228294700521192441059201540003780508372552290076423586586735779232915957667277635386838739224283902694338721899331403180190712124956321634968324261637295551513255105309083153198302286324136106675614630790179903823952009987344282299214211202546641218633560154549193666749196135504498232633412786897902336979607856043525149767853348602337833442845505521584079106668682260837424795412521132989088006142034342789649324949363089877240596179394024235859636549639945136732731587833601328626644916234367698957636576691892490321956855468201603338492260167816991207733367112425085674069932416671305737988811114146466330979132073629222028854904474818760308608770525801503817742212135162208726847975265593841148917770924285516855117059639119784586172020195954721465956416945793873905009826166232500163297593700253417496188116379206159035138257063194566290362245543225174215435667131119605973452066772747773759734133600323483191915773500165439513426186893198178008406127313183169179819818185458503993280301975360659439092146743699606488518942290927778480737060520918049163394938244649137530101621679942140934945858180368997386019077593979569277644995797739608322118654261988515161406862376153042976933805813286778818045408409798506469310496439175209537153767679095628031755464223900932469723745985851901064089085428876177914146306534367661182852547993109989529727991445211222086953519811607974148888819791296020309405745970688528125325720649660685750600310087595808863606303019829782983652684760124142667422334644261193252091261296109875324689325275232571845934448428133516750938693764620718242386648012404410871690106298206035941197503957456081584572526262816005849624585266721670871905491917967589944493304956557800542531571795007346771574118723496778417560534854078140650964261184516540385671536960610511631272626735087766752974683269165283972618996187439208882449528873507839265939821029309542335711633147611364719402612217779954278292088725935667118912095769962508624035083305646497824377623391552921653320765806617827312059534504681959497576331634798832927964386493228474529959070939703089923959950439454824960462321719654043113720859620587782254737043220113845843540970995424883973618274647210513742562925882540364968556299914829004566496654188625938945918772711958987483798155533293948616254764404408929668686468190837548318147614746317685804876548406157347541485997276421439719929119808562639092658068705883251413351763597935441444519270381071677305439651439995154141697989920071932940396531303850746902376020866041885171936845432082866031525583997853319114745677296413196213481928649973728545706915517824522154757424721350027809088775409523734203914318308165620853373273726294397592873602560621026385138344206311030227670944553996708392771803576123126917430015447379814043881944212080379841635186839057378899586181912916374921383920645218956829578499524737637911961473307697735572881217305854970788902344180387574550451671562047130972781184948573128977748826215240714701535009794570947408848376789544632092386301977799928755651126529207160309800885632044352222211037984738016287818441941852416350013140718625968780914079197383239122485239418755729764536247966134615350852971274647193240952860114730444418618753725312962819158749112058859159256830639589416682400998013814250929749904241782071970025570862809306987372230054946411384590808805867747463527726374365942570645166513157872579419178618495248459169478176785035697662713128425623182418869963125444363053066110153044681520516049517030688041960070989466580996004981014247873297605554090324601790797922039949289916264443752179989367211129750715060153578858333808958735351890330318104733127839486822044029379716165648130047002969875455799938363902652175716125795106515286584813757000355779700150498942397601551237841374068926313256155827375532378500473211589527647618242475696355137684184730153296229522148021627249379945170734160021197325308804779190024473031574542977294387421688297325393271232666412198079481011679950372332509447398399790519190835812145835129744723159939778525267614914446751964260617395537483954898463214871018339226179156607850238788150420208092158603363552450197653395447393488211944831418865667404561672718097214997799621883230792868433852177583631019312261544663864621547106533134641894321816376710835281982034038533333436060902909020792865146217829202885025213895781667144923057377594144439383587356558012025386354424697634533873980620839419337627015240595321439230924847113400896729010527851312508775143292096672057244410615815123371258090854067409127849693615285737670427303745492892984226852613892607413060925172254802371360644243410898759801183405521707424252660377066245412982377794189954676835634641843267923091153815021519846441293275646424477033994374947356224123549765870238324268319713721364332434525403337845770570427486017498481515015445790343876410011031227592711437185961762318031281403037125083916144746686660051173039566159912516226116551768678566879282318039490233946065027164666755878845866515859998393745734381297971295413784458790145398818194193130327260687636358265850097016372932222706100891912573116947138448076989108141933969353619707833448504803201517626310197896384964324119702698261725846820207849367894219753374419164855197186178129795839117972437695266975284313318268035811524173495402319894737116220817008521945040954040596625703167820102199599856222631051383005348802366197259368297561132627535164388899807659040719538895696108862896549941539399843409199443829270138769033675389778411369865644157650788152363578676750042588576944708454791989743298728976566677848472697681854891596452874672522803039866099558569076775322431661364900667297295810969029215846934620463776543306470828758992804002592816374926839326663513675362095400490865957262198306332491225226858735170791132157452452078397110277243367522694940996005377709375860316455155675205219495675639041537619263914555752065499752205216286800845940695116701515179077988330352302156224863174002689065178369269096128043754588617259587579956466587491427471101681025446740979369045789804475515719706186581431819964512805778989669029272172637341557514477702791557134769969178466756367938603550191817196824438244917832799985977522267325632421009740708083726255266424191759824579862631685337938668418073335458189104114164644917422852335256260128064142269348393275857822649084443255348501958174827443814021013360816574899283169537922318866714369336819192557366843465344720845866721726396656253553975031259118013532276431398148408929439588301999865557878312277233709500730580570152280824012156228698260932543123228505679257431838687760786836308449080870947734766299686391168191715969964932216145678913055356230426204980702868133117787458091571795357270044723155279211864154065302950028645986588570824292767119042753421496213052901604596544134608967827519991840799758252628593541557212516562922762336939745016058346696325969399345077929256140559127886448402936931940665113868992183674817197102541021266579122117696826901699937073164651579113914308439768190232250430427303979869935016769094857026720683979327512922988264465580941439269706435542324710788167987704549462798465853137639830692503587041489712853483253824101827997078995352757993062644151432682194974714134154573855894935456821087133143377224854696439024764600340188555631088364574303937377156252315984924203826798386126152942810449339826893672085286069639787286976837654764476166745917785400123465056084125458232427714579783889066881043590450619572378423244425788287410110652396629880629577219898371388251200794069755423448051559531253173113707084697206173582483659884453872710935370431375436429808023010672866881563966393914708357636681641993516296616907991493056414654300642689341480555566318837056506072506957304669081919575362509904232844255291356133866719593068732633927568583089746513023949473870896559302784554170967293737711653381419231412272779862848533880003340844554154256379481588890001851846921826974831647466881377896639158579064252588472514451964666984114657697227617569127496735332408849620527211875982573734643869196342258408452270901659631458866707163280931963813368200459887163688625285498174519577910075694930202594406408049593123721161071694800906175676986926356929579632153373696425542322966128191349193457361416573169099652843990917697210551044132410079655999097036450961312163956557403099688721509257785783022347032758029687642728299722146229694295507476908611646332896759483108901809678032790862185770138828774121475574841928330681606520664385676337480693240956859207292906872126139788562872611182683266464457775670040993203668179233202595556030319942678463655663171326101699611300443744424195203528660232246864015646197082842546673225018052173556140260754701629527675534016719850231939290183564287438049530616806867093450259577682507593946776118607747721233850019647364351134678227690485470849635519148699116591306050268076519674569627393304537506353518657912894770695590093672910918464070842102504604860919120887585190202468002233463954452913204083471331044915897554304970513861854855481559414358144299784677407691016781883643375769228555263609734236291603475929762438844990526725433270631753815597138030785537720547240114522745666522257885775459156867420255001624344716397199160590563135314469194216724270819056079989604522447732807874802833019246811698351557689889887852920022986513590721610389005724827139007045570214673777585764578689808085654261570430460088753256650926945091062059460108963837717122640227111036078364504607883611776596167524600378261011849794255132701719977689322558193206202621377597099886347241153556656514356952683471508313803077513488427233269899202047474366798644636522896229691780592096363508559910126807136805941198950796496701419360079928357614551541518179877739165610667431773245864910792106180130886100570540865575761843927781175978359328754891819480866381045384343182597168084763476191017966188815913272804592655412932705845135845115882447921880576514288877813589137089347484653754651486136933011802234660440391046750539217760130714674501922472235727707214019576488561062050673193303643781139644278968782976572878212128626813556206006577059017762481811605956295107310855126409186631372788378247343123054500925477905767755182450741531277579308738308291574657728809238840684782811006627273369945123254006728047869714303823122842717541694437242426061458776754066119760958824080086951437206052494436028251849992445062175581484554402288886537033649829689894551429661482386295754173027378391762103050673205464926447643114460298593286212407818026611388823937252629182235955332464961166540435162659323194166945054784667462621330302117890615854090962771185132936081024588750664535286514291763416242538395099903645240136020801600638755075729100420806865908833287106954527358410769603226770325119945498017831856016596974761566275531766387027831082879143373559074069516786835015707225483466000461334310421820308077340366090939045234376169075465854656718285596938074895785227992600892180105979025194418713573247633438736306381660311613399705753716025440570716889389227609261198722320348922281541248302026522009442081992104055556443356995073678379902111528462224913427419736502250071534034187092747930897296264461279143626677255187416149513131894808529634651908270774480178723669220887723271954623951628103228074514732960675171659591264682689199174813059110600360916542522163630741796526037076356591537441305393195660241819698363285755562539164225117541809738605058092405374090748191352325383960934210739740481522728621154674603089429847936887419366346218779023192296702708190078801317177316624137772300334167315764806117885457740560074099451617748875137580932200719123667750855767176511621485490670468926166405691369820843684621716542934130665011455403990881933945878009046349747969569963934101471983661585636754432267926410770054520483852436398154818730666581502461916384189747115842928167587614871033244174873508450003404117514418485356881029723461276561123053854381245941895626131806102964088334340647235055723059506752656350226376825389033782382440881206798702165085381058569136653752975320454153285336847227124486536102388152399317815330052216235890851992213461982957623589166002602266546135337548298569335141248971067516239287386802311343895442870625979284325859065640321349979089327456116599632629856468566013233789664333023078389537179392295631941023137538926723935125404793168512984153421080422567565836182657616429302353850661461674757301241319263110094435750294131621379003379461796742815132247387861045659451661561688697078735831220166338250152513658658488961512748243421011144569966151340876053379068416075183624632681162877233799276698901210854008973641378088376401180270359039628218479262279604983344908112446328420697557494744807341759730566142322184882338321055012381980136103146420301126493929312664155093185469425120616231175633623218885307728758585736342836870204688558207702131161747139616959109122397625810627064125293600993856390472894395776430913407217127453846016539203814007198385562206046912843912124824729840778735330023537122991512616199012720229141221503217102358001122021367413417341665598497508506301030024202024801951579004559947691764436115410449295998706989643895643944936072797850851258609597030392637247603548506145891159660762752028825271280917517111576897002775317649526865197799613394288735504593625022212506536256495270535621301514051834947143764758199815676575780356610174152475618452738011892836659124358303422144480668042439258171448970294094499171470548102869316308226133619387161694678388152391601591572217313547655468118288409030614250715155061827165868742330810657740984145171560635883675608514689908249099072017209566299189694146741970216517577655283978723138583785816408630623243718895301746902672056242334255205132441114883790960951236626828425050871981047141181909077336334091532003787123660281432287305090965673247297825374177871431599663675497605925556988982823482350437966872016617822578568701432008313658038069238815737820271577716113494795027932081975492881500764321308757811204921864576058123022525575021599286481774075593540583928258623719749550299037885778157115686377915291935793321248678092591843036233322762827965367682111075304351360447517473513404666458093151066691991563486162699694211083133864841347985353723509773890434897003733899261988927425393478335080571509011371742658055300389744459536192172499649729013724082981499971887128553928461247789147201724029288458016709463639742556238512956221723783016899454863619506478613382039991310289404821607499359211329168505426930761820363561011005754068090970451932236006156395119918750476301669009555799709121422454832919825929933059268984398047485327198676174521752400320804527974493786710049241971675388976071695629133153418365501022330787412857834250965929746808148339628735103784744521170975304045859746264249409724378166265409064815910669782224484517605166496209565939529869923754338273487578523496543644143994815134410200061893721218794381947260545690441647253537763412449666441513990666528749297353681351069215162773495219063733179410545423680378665315418589040077212622740862458213871518434492105882323057268750086010159480897243515842527366966436879712996407797566419217625276254419747133846388208479969373674626043166236168428711835902279851652851780068251492699735603722663923428614065976939455102330306127579896775531397965262856191466984796534558545190164231916215685362079611078971659351153803725511377282132761401538306041423142373344617677941529806792448938291307231415954936220715785465755004786458346710201524065686333506516259441382380265495686212450291734810261934457987306975967575592460919676682989783734161786765027685017701567337173796707645133190332770462934320649650884240083154385030569938613137232997200137526646669721651996976471998221346412150737369160810445728559835291344172801539507371916371106165193185437040594644342569764847947621174229903640645924443507842651739954228602063671989576612634436462897086233671753211027653359076978515153526448803359304814892227796105747335526394927984301919043346736025182483728891757120550058408832825396363861834061487850547427699638850126448491421086207809525101054719775993860352721740363942686843830666272557181088613443462427183117685273834432883022231273557103486651046018461847314476319993283999534530876058117407239261710353032933796879307949630869017561626391253261721676619759041546180804206330826958041886768497578154776055507413069388272570280158482062128966175223427580539432157128971834326784843289400139311026564587704821026337124436130886577504670589799214835422727321934684307436937733577271836544075285467704304230333715939234472832523133947952651547842490791449641313137596000185686949902694905127702457693178359960242955773537655190300666428196601880841010293347279724340461451974506672534490069030296409309368143372151505269924032037369973718890698577762387385096963137439799081298204447380946375099606955795660827332884278910958803701851906199631572037334231221818915110326393710711567420319379931881006618489343128613061501483510410880874376786265740772456538183431889933522750617661885225182286713333845049485425728407246594191544395807185427729091717226323573410265186044899254768864906889100152463431519246206187135090494769397447179830133786616777133711170578728685256741082112340079222943362922233989331324964554595578558421863718845989304426078981945304019187954346694084285936658265421830573863010896286690196233950898566568393899584181351297441375003363794211705004701643824108464537366094663885596535926852611126870033651995583819235972854219321837341534390514023253323604710872728383607692196338518796670306566856115371682506426816848424748825836676745020285161124532136079986838950336812328963988963491794917118357872420902259541361040624477119768163216736377035182399919251586931866272329925825116516108265881177965916732302971870434059435041716583499051552310775229124950652877695579122678111940403421706001242809682094430178218413365647395714359093071576824927649450222058342349265987009826105788136517656341478343349455952768811587469083391024985521986640237172487023475951784687501776110868261466423206961464795245705570763910092065071723064320670948889135598998530254720140130512489846518850731137217986763997713383673413587942729303704797306089418870981129295003469919144656890559465511435698161242143570366696057359496275169055575292034915144538715037116805241890381380772377826930563681965156564118877720846843840614875956816767237905899049950174091156025847298784685225521359058145485796448695419106443117599672122059518678426193143360865404823011555353337472904050207749434893306407263299626949685295210286915210302794060018189205307006897723793046295994767237817886393032898855237222095123810565253392159879290769240166719335447282716685378943091980504938234889975815227675705514670966287420272291601624750078931303337233916747983012636988996405388450489758800653449585190716796356544011594752720033015505904042383755889899415810283428234725391087917011255230478804185834921529255717162622763360444126136930026139567898263818666665623144208545282172814745201616692196641500126946425745411321620534986731847009832388396420208730750631838716438644907243711471481776999128293887036068858532360659605249171081882536207712083641690821303775264001667877939716868742619632501678777752452791422019322421953123404345534557993116623282657017396263524215745043871407411570168362207711075982834694321328556430283503931456548410782882367276535587763426680919106761140537039485432454032331481077517533034633532176580411350398002962410138204346671208089016068246336079113283374521369111960985884972483639782164868975628553927642448320605114524038805724237241009099917295192780289465684587163084046081614902640974825207102992796006345509443180158757627479582681919807705487703385237130303472291342315683639872772907057801588862765473857989434421863222258541723892965820362212069035103315829291718351759223933951813958836549311414774974434433519546658996982724436888002356598002461909755244965932011936594832945592711781125356513803049031960411893621678801546686952111318906160130472955196415914952025362732706629473171038696014397233001683038617093813087061633360683508478016050382357673796354165443782564521511986781862496221413480018495329271862319749377776264876976269347691694385578101542489768039988069453605266170284039779757955225832131485636565430299972465605977892461469882681146172070199567649274535777572462681352091122405738736173947575312555557723188459780604086646582536967948911481281286507905445684908120992514801319476446884154164644793237304295418585809976699151566713092036381261731029566465432092778982131567101588895347960627321388887278300260377225471426399571652900067502042223326511421475110225676511841961595569267340808918549255399701428657737557387262792642860225506901012110810884267707137415292442841547333981167795817026272050921038519017765181813931726772462158571002565228822139155350016120116735947717230741096013762290832259324032175437395767870238743857847773996810210965158496244265275477234765048705798451274978366531914122585913733572650511775419377901819534070984581666034283101711355017892461920175199435479783137434053866756796980458904136324023825092123168025795738176932703067956112237969908410805416877503571828150763473361908981562373007563585780738863697756728366916885459121535121447617735205282411641279097394153843680218713263762932528246573077093515831773474497843723274151095849144369678515488218896806755689019472940597375764498436972954604973041459948563694565845927742440543241111605868518273216506731592107997401669680485167887260987213087085166633686666940019597924036915287766193167114511918480052619411391922664236553686454014113013886365261360624478914098291159911983048236788261419317212686492671609649937854050366722702392772066826531003682035355043751827085567489841529173238668543212031404243939408428508732475991527077992459894130758266825435202652107639403341557803496298751036687551146780678570649571755571134550193553811671754515378074430903116628607748195154983433002785068134031052619921321468321765472387073322728346280455455059830621329532780914363529963595987378228602316984595620361970048026688317306077559067646085771317355694281364864381664538418481952919731846919964511866568758110460475428084056065707952171754379220763456042495529129375964581538938103150822541430101457860844286767335668428806700035148817789212443057275212155402387798806465976476097819755230683477366725880311906180768571334930758662821547515670051375109354034609492728015855970538271196598588123903082796803199713771811303367768985329635180247916632903198916776901156957976786830089488227922923915295037462289000529954205799477272895869110968832292712032422888327206212985637389865445240483616271085483310676564631512772825883137596155896210305347316303793080968912443955009260504145903981943819474648042492347678115947875071149822195041645475570945907628482435039019886950572828504774424777239000849498205561697749918437332179282947735074796086916028017354936013213756435476498114533256361013890285189708194967967155527266910171684430049425245171710564170748954934686598104273078229192049934529728579428729412423313208710443037826713083483008639237466075992788727193527392554795080642238287320573806859706048636546101905663141893255091323213901558259899910580159221681842823546707148199513839257110268304594438672174407371463366025311754528464463636268831342408852129672577468577032392988802967691299625945646611668572366776185285863602941120023137153061889311965255986433200225830403495425067232754228850385317180282695164579858758417167089050964128231938778124560105597969182798029199858791085458117959109838286945634706857664566463483477421668172869819517911828251860819479624693329586501875874878468265811379629834678487549502346650206884845637154861205167058387840539347330583902275365581021251909897002293450143192995573805996089355031614116618259775740086320910407415515987328677526269313742445062846532663141931135594167875153874538210910629039846016318572887631003679342036180269610430114509522145073438523781652998154216809847479720067061506403154972315701355232480612507134800630781025818774793920613779165147242453023604128288894475887737779724906752763036897543553774974382820127802928045586471907382223081354607706570049491472659390896260176330494180878705945299492798636227527615513435345843626915529887269927065891227952585760018118366691166955202007933089736335175785946755884845593600309646833589636983448552945706059158046589311111604482521980847571347687339555682739200344624969821478461751041778651520306447314167174540861101818793414785608092336995610842740326424782734989770951801414649399312927460864389219567359967777400291665161533431604016838121612867160421862007979617958851497752748919572450644516688626045964356514739507078905613918826342165383040325999645496820239507995224796860801810996353240928752287087185670677945664409962181494392102638550314000063990070778620011156769467529212731106885793172311898902650370228473961399172003997456821568055042627125584049439321082385163213446535486836131226255132123973787712902118339336239401772043250884446306947166381903476237501567995658151818479234809457667435398529073958987503782842543641475691136402136012799822111321275982954065078800031353788544760146077274579058532803796764742960485923929507423727446838988588323306541948491077912359132950747803645382760532160153156886449367115874850415836767312004734742260244806868559235495105255286189012488893561070171285513065393434375406055917432531223633956774371625306749154864349957328610004418932315422043147415424310276773808080202685489481362516625356225701928560421590643074091307977897067267776784678478279673415935884751550231779138615538400054718744678390289567744024648356072591547980291285669659049059003293129434763182889420789844558675801300334337220364298702248631049765141748402459441926545030191881628623492184536250410900206440175524889054769973866904889739175824340917387747765002553085544603772703414179262453617411259146756048552799927527123810215957689499149365422836275413949240715289715835012416048851800093617929452627852566833061456580759536567161268590601155801577424581203190820101052736117548502251728193052038263948263125296948479350452816694796623904256978733161915030416652003004551671113511979107024024879728511159081247967166905898109539130204929692539252974442961399740326039002354567427277800685182180581236808776842117839517889461674998851606527861415505546484408861155521984155572558783398864779761932266714822696190524587555035989650683448953935477029856125369911495718053367208837713367860338208005444916387844128019829811925118202335556993083083834325260523933253146730476848446828735551442307714851677785706309488584401329244968647454974505589641257522156047544777350070289058373556582633696929147662474889691518669388621569947946951870504415155240885290240723497351595070177126407831063836274519654535669473624372219098548364343713690487545668028524015366789767551422142920633637380007389105667741322303995556015714255885914929453245638006317106293389935536655189243084033218433871982259012401899259174878388002034164945478820675702261715955771226645204441937671197236201026563503649782779726850516440180910064121862610645263368168672465981848915829690561048050973218267421913269152821525382044290800266820676401604119892217175104570980815608065976681689705592521770845458420138090120790389576869996762434717998734979783467928049088791909142771411914625322592840471146456811083324276260063971672521008070646789133275856261854461986458672039799590167264954497792883808747424720021590657576631466151910441356436218739641168366837957527075804675680576070583091820156342254367375468602177172835514119415643556014762546464293003057366982173046680101211809225323132959620589911322403707391196064368619169563616529069301829302449122307432014153484967349786402219001894025823424457230977335959773603571577591951278190926175612994186909122669181478198004013562240681275212018036349955304787019291773337935313909440660381894883997679128338396953479164196916186819095542061851864236624704980709609066000376473611858629738413938766034034663290697799743622510447817336997800785988758194238280414506840949215821774625765234416197066397788909600809324402980071563323407939536233091971911799430068199472809811628849479022894124576668030846892866994054800642640799629038820496133516765092294874300405685239366451424259900482116829511117974517052944787716641010181073612473293834366931998837004228583532017062696185650338648395555190164394010704680113413304141237005444484610775755289208331906989515863015755747452244021097583645257910641713370714853253403386265541362617577740332098481060067923425680274259673416848217080470555942262170695381756050590889915232017163698405424911768518333426299328646648551725474354900907516673311958790547047718790445160147551235762970252123190783252930690084088541743083875550884731396198158709821641250330105638448639749737628023655544984445619344186483831128678345975684412983385973583510118830760437974462331077845327578854142098047171937860592323554322123235684197189125656253265587613646609285886556512132771752736216570871035125542183877009942857533395497880460707609019000175996834938639091894064362667089005106756955410123145016175943281556500516827806791634308655661393885836505178824766960095466108092302442499391902105503880562670750654637369347741945742026089699857004632722240604578785156111369709545590797751694398457896197570463121887015016687967527698295466663059650798788141108413102043231890300563583719767944739401766164882654036613195160794140591087520247595078515822017333444170787178317043191251086207025324715306864047031506932515697004809340018410567407999879458519883101193580250830389129372955422314722492109039447727165981939607284532439582148736009718346819767250384792433004088723943738094140220476566375633066223332345154956460619346038329520730082134618554262468678077296264971868727826642247323093767521066654038116358514354908890281832178425261931903065900400046782297650060158072658913127364349882947096469985056744170626990387928617167371448971922678245901746698095677099359651374911650420411436750100126779630497723645248599879181564574496949156275631185533409625902394549077848607787588948742555701895561270531425680501950136761707974913599561518291948186879458524006124969455041391744993206622610343643911780479669610758998909538259077100641261126638766157700939228098590328826019644089099101894625344302700293270915285005206718320024291707514497102975346382805952788634960666867675298025034866832098534649792186950816901774080274168444321615110496331859596328055005096984613755299521250594896981515462663445198998463813790310189214097174168320299422756823629824954494895814901959865450572844978540415737429417160153821047107042516637280829091547906933890776380569429411554087941903582891837683509730331637869335352212993157892398065846878411102359876695667414118855720611802761124537839477583724839459959449213486992477043764161336617034488514982255796658430031379692042011307573775938891266127693050651935588651627954632495927667861125974803108016798567649270025078742880319032393983520912411396069292474320924220160653295991027859095822804318544131903699589322383675549815935628701854522080138952061372146851728026520613627835138641126147225962517131316531432630565501008603323784453629016220590753299466700415918318969307112118733035786965163482629078870006405713992005003176566944531335448535861118648726570011464296589009144154197618845597671431348843183957444002036126866498535572536879264356922003753841301294183337282460752727370861517900343822751150475149417870363308589296263121258170995071712372377967802728059862646963671538340958510833428473365721439338894398526355350818814932440298018469468266053197716964147212329320961925406957227258458162712530576257613879664030796854848496212559476965068020934964322955901615651406847214712095437697385758851085226328480078879345918338914135511880563003931036936208290419727775685320768541612327892271958509397283458246642302741895098406960427718639144405779412787338705504734451140452607406728052395410887821986157127449283695995702039150877548503433380083763719932048803640421486380601661378418947959295959929989550098289889196880230928483357421924488076012461355080588890231693715283652381903015374637781581220754546448992485246781552184101967975175127955769143691113422476683978114906706297201601588675375799180210352082827434454377440018033307218133957066170980288977419060964715986631057680293830722875920232731060260460976738044397508403898692892966934430408252968611778125615108439204953004841515856135583804547063947592706439002737218785179566424495547512173233474019143730624702926114184594241161504793363375347895934526917442051292551041825683712901964276122719397986386290417081810677377029637068899805016063016044167493746736125246586691577011685359692890242810403078639015091611024140104272371202587147550955753406904891659097100027307723392350767477331017364297051114029217421840977101170657774756829136971281652706606013295595016269474449979596330232444789363604892896846624550595253725044751115866157094458545622857014857350873500854369764007530626995721628370626644176519506660209233729142747091460917453249326613662280079157004839858255561840481187009981819920985975859135014926978507037982059180900138184353016114781659423009488810035097640392924018255503618681665857102104056947538136668087847315646078767904602923011113441719359298300272836001773431596067273531732260892571365467724724120626581728117061683607236589270087478651183683673414273185017740079572191999042365518744769747225303118086461017778622079421244667682382409969905312696468916424472205876557962361029495721092925620582611556306996089040654715193567932267115805916004554452090766929718572974692291724442551522086003747674302677825513506487821526381583207208938798320687610023370079801817375596682704923549104452300323276699884049178285521160346470610898508919894080689030612121138512284588346573722557732200548304444539100249958240386550714707818145910808540192851545585163961059557069454261594396380988865216839547131063143728079778535733377361420042569814044085540113709276999634837626355630645321668970378042368251605393074837623011061709954390448118787524469769510085891233823762566190285949306924007360059923642001344579161862632327987786738387132476738617351970493825264796273842322089340383253258837122110795424622155239477108783017766781413962550113080459926855391781264992993688438572821525077084851967210517486723297293140460786255624804188574419064251828607185835636698973508481479713415387328173067361594592859543952206396424892301199512973454167583393384663518651347967268069493444725889893133414217228677374146421563923986708434671555760180970151488798342032417337336597797228732992090859680740160674075099211370544991976564994276794110461865098503209285288072250203517947757160997401222818215517617261723695180974772378679747685665512930187697798694094171858972504520669404978042925996647520790786194650818476582850039005294883990652195531122193468726593688967198456318607616166981710486411670795748626285982407113008518517607096462425967248527063971950020713441838284115958712640681520087646705587956498928049231797142739651507623486810315887622379932715809584294972573047637559183141302750757427956570987310181039376156041597886025414866904750922525796493158920538886812644629986744175442795374089628837569423326943851135453387315334772394285567952542987297000623024257983269494753761090503247544761558531944375953329083960322173450704858521346937137869791254004612093408372760527399803917108615079514594512079184320732123291514581831914274274705145961541894998118367470147627181603125245322718840030452304806398975851859576692966458489766855726461751053601635815535313138088638912410087442860160630457832863909472804685013572277698599430481520112934341134047787790794299986765222722419567484893174102204350124104059153527870657015959884022434264112481459055035373740243892615047715358031569924580574444428229939650985663593889236812247341308882148527101335955694961145315155218049131611824492382105066169661512228813964463839029384408109504228118633629158955937356995719829688833481422586652704099869177605752092556342849119898167340372141294884265247097773270215151898264424681410230456557925777478093243389991410839085468719650892840741957338508959875514567191470515005177370443405557449702710003412132266005691996889060612305825655976779527041603120172008509570588013987343674109946680786215658381327789033308655257990001794584075879382143269452341950570376386106361624213798317602935110966078757242456427749450609589054691366649997614598565415148931847374257953137830748617219381181688165716112332757049127680696526664489554869839610111089757267838991356345882052308056892199522937385700292078650184367124608069471675214174385706425402198199223312386402928330778372489488478559822774598514037725532362283822649385476227230242849993203967772544913366110483831486414741995865872124528476654125926217373517445384168453721093722926792793913081088168095764885201232505262367316198433783477220325703396927948063099649288543008491716820009540509708303671308542492158245162956746291088417413405297892071723893186198251526756262750534278472234073653576416855367328315139707023619461599416665213285753501111220325688091950093451706567932569351976405878823788541173721640506415561405682734219218654172637199515006835029207287475220811103846339340274028105238154687678707329764271336017197536223560712368129624369757455736288941698209056511896774298125225630119847043849449798417759535311658182302702841316289455080734314417716670020761918677828169690572358547405559099520615046640513259964858478023461793525302530214992416321396295245854467054388527062136209317984257016790121439622153880859740390743484281325823899599609882640005568128853820274557373459295316727335105047268007036837695261943434381105724557435098589266913754156295545686902534559125765843042762505990206775902588776199198574888275048811051427557430322000748887961953662607775456861247623510771114646719081393370973204503918402973117709548108161199208398588050400257989970966055188144494647235386871214698852367519729365760168217958162144307684705751295081724823426960556770553122565723923733777615960408415089760891409761196893279346533122092338181206162794998744407281193108198721643423705348943622279751827759581641751873020748677199311224828242712969070211938043357251081272185978810258149680525687399864405174581096529878094973271746638984083334433485776127878939427262700102919241423149832994135075612952221096772556669807607242254222212163444014699903742110726731381424366705449841174084920386632733815447339126029232828335776472711371105963358648047449692528713334944133608496769686312782178437743510533676695793477318043241749393843873916883439336594631240088776160782095838487956483340769436797427484989229187663277097709847287050648796036618787303129087892785256208321095329711140235789291646782182443917389263578525523357789705364207589996921786112544997628330287753305683462078915481589779976246797356182525814878661025291226490255651765719473646313261523721585714172533996424706981645332503158187058929250081620664827774289195430854442860295415616550374698152200510623589916057631705546217323984489908915477831289105953607582996378959164401000402264052081901171304882285720122610254335001868192478146079266583685619022081948214954159361158202200693498341467632146226573431567258119487018254625560205216681080098397205605947519577564654147350882400416262740974718155546369213162626539585507368362667766495626916852589446416366112928735946620321497693774434125435258052523555562958203239788545730625878807575000734659631533380661522337374646806791368146720115848088376124504249082083053117352842956834907673123590429649182614998278098748480738769616923416255842796061521181967373169423711122235303614678594620395192938125989557043883299270581520551610694002752957098321677778296680872058958112182962493875321582980667731476000390548865792804692588546297870063903172395657989740291459421327360604383570433825266433723087397493168904052075479444717410716612035033444519864048076211404925641550716538328811326591953505879551751472915776600823588487694245421195592822787438975117222180508984588860245121156890048707953938061240664231406891156364862462130562967153446582938796078294778973586519665988855903788845813011376355477007911606057825634334878747486163242117927748127183982031313647259852799174265999973203392562526693541483455104982811601173541844346958455716658822644418108385504624417475642398764383003660069559180589945954569594478296164655556005052077896576840506363998342332397731920217898654706463828868964845051609678720997823607801510201547450441402749597515802610657297347336698192250374533784665032081337249219305205174139853967140273405477198642499968679319003031580965674823217859134618124884552002824609488610663736244698891870542273191815988821395527946692895721192499490608271523226726903562147785011513392646994616095067510574211630782103217987199401327732121593023759468015829583342953952102479836984945291099078150059712541661375387828335497384968304596824316273890483312836588607337379243489510572982801519201119208127067191107877854837523411414207863181111153521608970334327587039209876122922095761967876324271823356047813713458301253834992673988383218207464732830205865108012476941923956736208761680415443022228228895299242865021760673693890507505628452202574468496609682555279446072343315288886851505774530706701582675194321667210843487701728293623313346775427220905875584133471177680618873474792882638898929317780792756516957297504321997402891301077578721210644795732547281119795396666885856918245434384990581323218363276596737449546567171580646421555165880049951839298491071944830597663410778212262572308564918271060216576628950561047931575199301830513599603248387475500276904867268445343234190384408464293300712705977418965186863885509492697961704630118772912928364159863856812677532307703581509286660808843430830433619689202416165428795763001606326116193968367599671587597923573251304697596475614654990663254517852190522954211919476459990363448459731905367878439435668860824678147185200754310279825441571276951458631893983082841928763303443974901849648055918125679974801272297614109447528643588262589638785106803968636547222190956046681063213693873865808637550374440449850908063751430842137412588616406904553834923388262852697549318149557217026142504700364554943218866394301368661310472245605406171786975421182447212023678830474567986462421512371450637701531520386041763445649098962718199471259276010262322376760848752928184008470900094635551486486537293139983257715334836571798772949400297391557098161900576344902358981150606879735738775502607447993886083927938861640061822617767612182920836172357256164053806616058866932347733373198996162729032946009220908221151994648916633504202004507761334117072538423058305737623993325210296502013575194191583598698727534410728891646753653573751222622586273244121179815295309290796085718013583214783453208013532765178368359310462970260560880250130209601553458215933375823607761732002445405578690138643578935101226500375624656116109327061606179746522623533899547709489548425495859509008371325527028925232655297072726569742187484330024859163473258429762324148004003964807268948819111188941172417273179909466629503376081379259156666639296683130217575942811080532649940847926856647100725294571221987531485812654742567502181051386165485148982892914448143024141495792217296426387339702919509942832413339576060096078981981088023750339022705605906586857572960208683854165875442440684999218438040202832777791430554227212426995516666083092382095195109471698177262696696229186023501633501263166374418490035360008935861650294387670945111185365302111018770420922317296297839246392994463631776839061251330847823935661284260496433675160592543110707078603726627044120279908693761124478178232939421916541401596633956626548517276568752779705311328636969930119881514509036388105449047114442141368432375616761483824641495734598700158206314458538558167700359794871532905230317087653035485831559849056978042769413097001545084158609478234679954437344286357361856011249060575056525044655864603123990282214315600431750786496100736823460879655290813270885827852029326045478860346850817293555980194344951976535685993273088243277200506066695954323610928943755905270164532946580091434209046437871218677154745047186860170277030690401307922342470246477040619627967491167455152051203108040465713914871360558982264460337209328898304253790846920156925117540327103120488955607866047973438863071745687814353767559529468579014313982980409640469118582661632642003085364865576316332370536300164848685500539106970594091793744775160529877412838110795304616926822906605328977515488001244088013374111417525018863972723228012205676672019312704169885263860575852665263794534135295596051933706320289356140716308822406873531317720493661857401240165880407151428872510392277192998368731725606052768871860620984573144614546402938222087257361375256782235120335756817544101174448440591681441442813202620524194222656589319667601891017470705573223296736530851789562789005482379449289039677842184870599346679348780593278346777532979705026479754156434014017252693106396898387937654086901144480703959583532846121193613263398067572090447327603100025314843142920629508206266114465912835714784844048321522916664113839121588534886806835473576848975383084674990750879708166854341120614425889430614567482340936847974068956617361745035098386743014101965354095106285187969159600137325218562198294088902177879625698165386112181171341967211144033242677341374323065570659365161370495934478480771100227002322856764260772949681177402690441536276063438306024139496627956219715828263997405859252850247353249303043279570511021260085838875187902302537150337817640365133059625971512631184357198062191412839780716245261184021932968015855674359599148471678758060453764291276845146597566018324295291006360927461816407940485892304936510996063972149115215924054802158572742135895269030060632466852628915501274748060104459891301958349376817623192588666162394474095089684327816298913254694396301533820984107682238663860228590548639393018641764242164687608861453842443611699996301193785518876304982211357183248121228853681599233179930932218991897704582111465331659957970512357247616166261247667729350645136030571382972078850981561414282022503977839193482689160913633713511017273788090707414822916020549276622855992732907114725805272942197390229921127206694518973716730771523851366673444112963658790372063104512718470886356091550145765847960787267054914444600622531408538507920563446537708479165487581037709092929004845527275268261104798049152942197080467655332042316684389132202143045856572785846550824507781650103261800238373284003466811188321896871140229772717750475928563046895386719685633855072492737136666047445816205193430789468533900053155147998433840946027173204933595329833865777690241028642774889399540781066005892725721635051139696027907774817573973968899343201821516021855436207224403827667460070625047714098004454763011909181682956676102841111091110008224044396732593413904847021417398163044909845910704489470116522186055567131051134674096373889720860464028474807586218455013588288007536301857001945245445520784510961428371164289978488529924669833649362790554940128786326620220686107229424669558737600498562545089326885853535247412575404088315509156075200686393984866824404972382979966620496960310939102590217470217492954153839009989056453837150596957516037072384955737813051374363769889831345889420736086117409078881434905621963781426241885210637502800039265904949715419763109758345961983403547025731421150251209132783400937992384551565245725310691251243305944375552017467698386587610069529061167756256967835044876270301391152685311064613704076482813542842093985730575216152996141714690298610227502531006187469396904202472086786714657464585656512733238789816294713131469214031780925414288114456953415252741867854439362766921738543032539892161327179876130183005888797851606330370582769246344269002666079309771920895766157714334510961016192171063677239702903765923460385341024589008269156210700850966073613298895097632023116927642712615265938982479082074747853393377760011115031832109175514674969792013564792376892207620861267036705351368575665983631215367592223119524685803414335729874576840183800533198320401366700535514015337949386450428225315818418279747727202938367824230463891637640794790968419751601218740740711228365836577951509619379602762526228411568382425739341739353781381757537753371358697819651557310190773978807553300467855205004865440162748758702156715841132328266104023544835337582872466083894424670312982676942028012056715417622916152377852496737615305852585286493452006275703552598939487294116432046641773420827203753085772960820765761364417155569159467171367123008978018433512410079985453077460089089714971370662636566652193536902810932323936900071684632253613377246390704291325533826446247996913107394025810130230312269105169510956528877210459313219196167796985646937511763849372382210059362024086552982698758358623339087741682669753464259143970262316685077027289940736919869635581563985013764773834109420242410084145573503605436962424089357417578730829822903338249407470647808709709082571709194318683609834982276267308090066797113176491263863704213255729066343510724862098051268216579222787017955867634094955743456828580655132817915880099940637077296305681364632805142238338478274570587773569121037248819108792326385417207660357481175924512570991526244369419614184736410270852979599931825097576544693792147130062463184883348123045014349991603658690704573818855188159213102402772569061240326790746233278684873565371102241650780783244289892259185432242110768441627085100806278224620718527604757593216248735410947566273656037397292518271585857773993036159029953875483026045499688000875143942179983054610920360290864854784649615249835787388921384119743789747841812658923353172244161768311837957554432178409304922319924510283744241579964519538003017843924013420806762648398512813001645122612953501427076832225334993641890397178013827318265669858335218729069008391166117875823711877656498395760263551902368271988427377987584455291730803464107874088557224885720742301999559872176556902398982686235784472591332259911364330547044059338011597259427170761505509638375404248945019156136616221112926415874146636363579675323977584429457217051927793158387375918846158695548094304037541483995063683632738875392732042977260414765727648805946334235598699273819465341820947813787789476432070087856508002122763276032763446552450260782889230974131941714199541528832912695278694286950646452784745643487683207312817142481228350531305144153689443377565730064581195460342014285848878555348306770760938982984687072619759821363655665523368699279448539428744084804916456905336403933961698793101042520380235479801625534912800934258169959329112811616351094038139330789832378012941876777334284106956470992150486192825188555054509556404507114389083168065253597805370235214619650397347477984585588013380126344136423338716707941422218564800274921477115299222236600998326091730134801110780201594416479503864815463480386971336226865866062505609427357733183580016658579838302868340142498545911723235466528224276519850784131185898224713917860672719775524014145571729739411959251737417006137362986887266557581023946355489917664295715538365778530470873200070154336292546800514140654231011460151507545790921997642960852706604831547844713745450002152294319530110992981265638024328625899736490664428624960229949949750154512022083697276708973612260984408811147165596912452865350050522984923542577912817591520685080375995506154026914429843540458224099085638099477183536335326582538686478415685576363143061563472611569051263707730076634297446037091749682749081250544577080595617762661326528581870167139524784851038409478058605246146619730455757778849692318873675420762153902552041721465972835999393369164787898737433968726095716151972956045684858049310612935831518600758392344738177971670097527020821764620208408396529611930369659442221623266405823308961167520572221680463381902878004726170801264394443769613850984153307293901130165447240314443129760990882338603482014434052359114562090576156105620806281520589976217107653867934304745323277031610843437866863622737223269878964285440645798249667530587506178740230951642793993302741463343002437563924887490653071465007858877983006151432858261147221506236231484689574202874546063950409498749908527755425065547266281648701912856134592016172912631289508813058558359839533735390456936331328679654959585227127842687546350227089005255114139846376734426420707941727802031028787988160507994278517284566488346924288422225883645305895177045931771688376959311679806555745087229776053922813480340592294231499053179826348864127185394902960130672645782942572991328667140881135674065918545543905763570312622202351496220565623167013246071813251168407526522168940877541236422571050467737036491791476335335631772133363700972358507171965659814390649476863359105924870938417707741723440526135062244398255275864227589824952857039047001239801476275103472943316790235936663494554917000392321630834628350768488128404190176466163576558493219684182461706979079632380960688978062885485698941482659413247954616495048742862194756096789824989856219195273143672080997708938948267588467729047515597961365157296616080476372592034331020124437732638980952993893393157679475178162759822187007497837787679495228521435373041069881855132624262673107160449598975346481114683653908934841594205078286540761807763484861339425902083695247440818078218599711961998231970798587258324928168684267128640459115629735545354822607167931015729130434523115185183681896204534832692855838302400201342326196333660125332498926824440407520860819161966422327589742709527563573400946902373955854739621519384040333397308149803236699484136811506361379721742996558167452399009078665577180578398942855401841952070220478759963252079348947479798445306074139202333245986063038496171800050772263183894566421534311995158498858461511203747353509663884547389545736411081501189304058762602819647348583016481144715833339786664960753629253826093704552882162576006271786266279044229106753671099266241583468690028223236254044625893284104442825154226452094258552336888328457035369543756564547966219038180790146061771503346610979270015393611259641333782379739217559719086014445031865665766895521867015034115636576361827020451701821293199434129043092498398495857932221261661771844343372362468820324755948471359891841283716904769688223385837837825034735531251678245681736361088952713124064129693150488039696294262384409406890651976332087424999059599432816852399829584088560704175005652382844644980396000506438109531818930883106138461664163750497443729346480540770124841693043274238369030957309868093158580849946518262397397985074957382749101739681400923710677838960288952461594238927521792920751473721359367200715118781147268375158392741626963063254543325539046668770493200522034580528100534067342829522819543185392538215926580916532805417323271392191174431147578354997464449535509587815309105667534109807256959580319132189014633299286688563068305018867361407386630297780360641991457287248994190934201412422258405787445047141737218057534756642561297313233230220216730594536230158928036971050865438520300168094044959349610501568646173305270016821340437983801727740453150721951934129907528822945519427213144683552988397405757335430092557962948067155290573656598704481023557927257739786068324413496552805119556849329323250856981149993893903469761651952782748720315570478972518039180093657874083152450411241434062257295000173770849454631109577250045275722282782097826835051484325096785885908933335460594013315477969613696045319632637594489210972702405066212487624228899071713173000566781456240672622872941621874083220657016577396472720816460776744374613488712517962743455664341895053830768234689125326130365451401755828757814645493876148174430514691743464228313699744384817214786673749021234503772115400028161502113530977752369359400634104813061030594634985224931719857029983766768990870455584234296574118873856434366031859549271058089862693854097578630675316189956932626932932768627556290711879447949688125595457337340806297591732897779434292455806762978940357844073592781286910701313541194945757779276024754798822762755944043219911156721044345822010314067372074680840536017459910418658331272567050426320994445377962244142593937129437118818188665853724735400116377511600652586787718317873705543306890524535768768046035579274340596622552693228116169696666841417575983898557112746707434196628803910904776129198497162291517718132373668155626515374766833918509907687523302710938811538960950752434820637834385214295331134122109726241006818862380223613871302028378181246977425700365188238159508799538676390634509785699411749920476870546333687018745108843099348830782002061688541537183843542737949046326998652822765534106763873164967854160705347908070828944610180977093640518074327494508293528440514467920683817751393744654981476992764819017202841544504857649235166650167538157600698676141485829523952854636492316526478684516743095575767091008818778737762434997539201413629142957107320933846414010534841761090609630526968210401210953662969121651980158946459570384155859343600271090727809757786087139705607899976484190360114044869461185995641656585795370832334622474504742295643006024327718910955743471213383720068234805392057191658492859478392450454280124393760245349739253540555561032185351543141043185829494036667094153196347741685663872942616851356866781211673353603682147406939828193705105600420301105137286086344068449787460673158653997015512984734758871734631905080914593830585654287892088648140651897430688185210347207949942002779948490792531353475246977189708253144032674321507317121429414274953337455019577760690582245103040687376847887482428979196003124887857968093884205510137863312656237560458063031372303068908552867789689290152497757289402749328863800143447438240122307193466518037920547721593720023454867096852247991481644192506201578030212628210119746692778537313639795818932524126255437060246855430553093543316272710378996851371049032240540770969050324611058210506166006398888494317725509286182635901969981967773198848266077337318705118009811226639154350043282897551584491111150726154526643388051550141208841104104973309630551986732718320238957514331073921576446277207401851188322665868022374849130563327630474743748892316064702307809775769518412738671966720826479551837188705702682509896438392637966547167730992379173554302480997550400245632347419613784820087370175519756531809500893797826312691355771756466564769078450475416697512565078964000345756856721925424230993316608990246477379321422649089238312266477078710490746256144311538065432148295384818557406116221438553890422228047262776312237737109422048356388306460534270892126844844133077050813661280960489011501595207748600338882368635822822187677786642780250413662108198016046308626454311602414414219668675620541716644196529102153034126117578373285585790699847672066626619385433616330600732209503704185868744856063593369350297314105184732639778971209657185453926123014863420638176300502819950132931738349257563545678601929366888198863871264173682772067776286781071175113968280001885221150115858793797033467206516866797153220256605583121753700725213131007495493827933028568520709306946780910903493607859131744046881664490036242533219158727848077737356411257101969111064149171074526304217361571298952877283875009921138655385296535901015170085801957686044294795729661117175201338314261205749086198089603487721672500692592594806993933025683137926554465415516495515195670561658888194795489974824670773528631506306254238916591499042431883912067107963799220678922798981156720122952045940124695402113031548419275353756175016518671084458348933386419220287423600500507964916959946236696172515593501462409153841395057648223241906730258323710884737054187588556888858991066538618597728706967462426948035939654087777189845956851104004052716146229718173741845508150952836811809107757278245867025478680763000368849904351676941997614630772013703229657556559384958811531143704904147810364332988863655228786354715792393000545086981300884773617587741178421364714758914895737106618616994459569223890680775870119972523717800440633034382087707229863027838228771075179721847084695397300809631417480488347909546185328498843118828421458113819414239558442382854403903295803654946971628778843059501039593608631414924684266018509826948659588728402695691532808890898494221057474654212400000142959963051715472070806416764917107062238944784061241940120601191917972275275471501357571525663092704939425668673250410663155582980454697379780875541114840514378400957076271641415446940247080125172185546710032578467590813846509604366000512705233546628854984211743969216166326140535858476070048493692894350021482177866791971459087134141632864024535400319180028592370446439207781465335602025941625675551583764113456549263168773860874981967264676415001857082016280212803101520225976765715879844324938386466496360992922022168888438599657486890297595112415349239598930270120716183246802541952294746581409360765020995326083108142501188606750162031495224585344908390933235618605582167500989516796151324477553897252010904575492973904349413252016004600222580832045366947264939712519001790788182875024487145670080115812099392226978632997590131514493264062236655793601866653456952879072251241384432362099360269182325517099533470039648592637195798007154034634099428092011674643419448118741709022442620726311429198508310309912004750561929559767481543255320299667399876394235904935212534745546988705435977127149732170780449330433836952015261184706548268448987971910650601330627475662094574981710705853759406784464225859170867170441310656856241420412398993342360176003325176704876854451014890215051730775909913309887172509571150384092377278981527733421555205079145850324058071563977904246726259269928141671793364358520606396772659990748896481614581539761666657507857321515137022121333349785452377537623954890626007627243098996280127604668815660817445616344755563521118160375216909850842506884840905372510572041900293220580517362950072202172580528045097471872416494943173541003487960782547537254168793104596086449396821670305333917775653933919532740562867953253725669938683937739330906276983228604270518827289564881416801690572669682981542241271602745808893819205624622597314357398644844606715359363934301155244140482641879694455672672113995862065917452466589191991451760763552914878567130142595258543173180244474714282224686014825187533999175264352433152745838570897984465923576090996305557522023770489962605678055617374375451669293717393357658453652112711107473711695092123036166118639790156150903422681461098509657603725333678121853806618074487976318167461452614587020388750839389224235854327040779227020901724829906454018783811206798719209104721913456675082352621137907545708102600745923188548054746737445058316832101557298275844395400127732752139178227562782421970455450027289570855876012984194990631247025350692252191871696962906965678169730389528098083135312408127003484795321078368063142615835808687363226950109617456875981585794681818648026482461083485411153817532495369031153092924303906132185883168570102047266832067230436973687861433974110222379547754432349665577475984042453426315935359257043167319234346003165205443645271817232598533000912214991410730040202908187319832203706131828582197761189251290744444542035455619316451979826451517713039539398378267355096997280928844214409378776951901384302774889832518954152836406400836777881075121499374293827446114020774827056627959845295707500805177606010084736080640046720328026373555236036496004017515050579894861423947064420185567946782339415996030145636436921025151052392323084499719644556735161840436398888234993148786610371534192818850422271634645084701944723364618127352076369935855210672047579466582150812715887736125602015171521351432916841898876854746393252459387968330093550854222651764706302140085341332836247296075381214389434065940565097790875313422463750457672035697669683908715150771727259819323189714222904001598099628413771347424347014129161381184188740354377497731762545603931871195931086129555369451241500135754245198341851345234432995496026960354714362950484524942204452224385333739508812188836944603224178394853893313328294066111955512792555950808106830268960634455966424735027629405725709543239157336555709007331879237789315877514258340758399359792255980073467893387681430291680737006891639623429692300504254619654174310682255575357023521729086548599524902533799933142961651513216006352286257414757198691728077324653103010158744183993385318736351222603321803298291741652005419565489048309556349213557962833187246254436383840281463583813785524106659155641203477030418401211261480454042513391894654906806096912765161910320385428363820266219869388926255899687059165837801500858275391059391320003177720486258900279918252917808096426987521478925977308249431542255252819437253631660612930555625614861078297415764068103576386033039184851030614053572100942239296802700524365871111376986543060197333343144997210908812393972324846714908332010093983591240888352343421417000101874049290281908148655290744880958502967011384410173706843885347551972817792380010734054307622582485330656962595622764650490607626381776969351605230760969542029269499594483948437895777891723437519562100337024124506569724061822847135573668865230586278819356015777534590570424641036352153388493579494684444319840991096260130495455976610712158341692130950500987972800673604425771112816411393291283988600798071886090614323226274131084989615847244007444989734802789283541598870500496603654849858071629804090895394891670606675417727286806081742863953898143610688945235977936951805776107589472012072508524721954065882135898006512858455111935088379959552792570440819843353755231983930422555036245630749475931707966049365353885045116009538411336061155325452756893325259355030130636513591378242803939395832869671974368897176856317815988646091100660870741818314870557576258249373046406761490239536495007199400341889633157007654413296230672796787576681535210677425279306045569693897769667231235638371736828889582036062452567904051578140509775748919754815318903573955521768763909784571111360026200551171896490266615789386027354403054603351763925436693517842255042161803578003161086880267294812646235447523105567803269459763611910536753272054983330577195154269918595236269966018985020660175648271713129650912992599806867151877148715944721134317026343201920798684926196097621028638937303967828150970788220135804548258858952414867913294348706313550231848935885051548211677654438439127281790634293437646778132333877608941290439032242123914386823848485655915569224084604975946183204835370660906051441282137726567348467813174187388853781228432528197423210147410050180004152075040159756068667379870669360970293714387406962744172306889499854689442573478970763091839446679639816365310133734984179386125520720134137328445573767678018549701129651962529860409630571470423064933164716287756145327852994497538750575886793483967586482073806700149323489346536932584620690020363290647349394530950424504754229768111603590952979782636793608518690320598983593805062374805023643254609930823103353899903138863221699820432815341878744118437045409779421330380551032652386364472177299747303428285849261410496066081590546024861389178510962513519516004926578858999116953850190345598427993761487726846514456182427849179103940188453277130343401286790870842363930357976579231462854654369233278146788549725554116061603488804364020442754445223566468963185659010790463253745459171616234333192054188091035228507277903921573804992473794286271556919181857222662749476586985793904730183103222627819700870705141860724713180813798050265303109894594629098033767142282858220680528707253706613208943484992412081488036613347641807087551097891242717669111342085729963338057805336825910655537977244968059798700003232668185816426533321139116883362565182630767087889087205406394715286612175954794048668506208773028942267617162753918178667493830178855444324811711705949457340300914630576267372654299302807108941023895621447219316031100296147526967852837766976358652614140375821896812953402384982917500184740679705849092781577479981609255690829612940974534115890333756289006785708780911357058328205800233985022522512545205339470379911318782562383714948201678848632677056740963879546366911898633995724428867662164068470548093249799001863733468210051401275286969948447397540474040227944317581041669953302416518394228840103138288772484482106494643246434873544912634483057390256219564365869096526274238763592272548328296556783333148701512175737492559365560055390695658794460970103923893848707008523407580466022765850321664505214018295375921863037881833232317746332769820830660333466394301340935342582332559863822715447276222019707794902323070910897816214627373829829124441904592940332676821626686839663848257106111796891671277505590391137634164558762626681298341367714787236600468200173180815455870468177045640004115170224500633041308223965517877900673985959524067835809705149976488549413407878613436350693898980304403365142162856721968050796260917674656943713652983895775189733496576281172577534145381376847092229728640601622178802083744598992687092618368468598193856278091823552303794602636092353485061245990288237107749376984970376435655925351219035273530239428955837187860299392247209051254429620391269872697225575190462196518855506374486394309556956960767790220854658466082567591224479661400698356548428025503333696060001649710599643450871699221289570152585126574908960233090833573882499108967785239334717628682472357849456701304717698056942108515556319985778677973519767724846979287757181110139448007729824531128737142175921924779452247173534137009631769218068359822307428845936233128959324263500240153390038860366243830187396803116059710498922757728584082623197639856368849843584875957683971501987695812934059869504600261275888147540328097803448787237579115067792298957644432550599344255374269162039028700915591554276008185041496684575506958545255338291337214128826145896635764066764376427379335868513222425943057660189953211993136786252276120764595450860034367660474823168730690372324114178215365637577722640409862804093828984369795722773665405089881129022000822733640575582069024616711231588667199299461517979373260907690759395106339717211977668107654272567281421907042715190464798039933063945840176466329797442346365934790457096620241397017425111688098674561949278759658658931016067976983933821899962692903013285683686561470935580748759682506047069422633425384027901926132104121570896273979707773992213257935661922479814860046562999603214226424231088221064559032816796050981153784078774369425599073332749341081147587115874667266556234770352759661461105744791866079706937606144491942449010224102755664815438181325778538035522610105350607481026468075560846246863450566810697631920446383140811161362963724530332726818552611173377573822037610559852422414100814866813167979054531804276228557436189790500196809454042827495832344825572960998913755769570608897126011323159068001803938256883973760728911321151529750112388009952663177468491012565751544264459216124663217213609055411053116443946121124921392550848533275671769948604069530099766006895730420724543008045375933993543729750418634691104536008757966804232227234102009178563829070433642672544428245267844443067204160049928174927843903922337200848457935434413837023257765191655064500319613434880295460408498058480180813217926677335015336578767899169702881970223907346966959184229709228076804434250962520374221026975050274235714744354015541131428184226406274387288634428449578581855992000307663408392939253054158431748655008525920474152900902308753848536326379155299863521458452498607773699070543864532698500175144035613892242811813957624608777512675491493652567195462329537300768160160507337664671364934667680089797589585896606821532152961330401496140932072055504048254510867905531193941109828138660651891961549216801771832876688463236110394156916964998155141272873299979961044365258916723766605152348731297633050711809074390557735698911232207096371827683229705854794607230375807398087874852270345386025543668067599650809260914831014598608072124697073797149997397805312082867566732060879374836475624608267508687768386596976287208589892582639554459299149250194598697661252347888200212168115725087117768779225458670269827712241514698175847843919678357296753376169172108440535921340946221901852287360232278761210914593656445355624043971539817267780922959676593314144127999461193256665541057282461961621053749688413332995833443457975282801334742909726100745412211900612342173890411264085638551459652611159395840487321228549183370347048462032448844942592065048763298915936302558755109282873446418636957044688650170935682693401164874433349099109801479063382314201462998773430838243665069725542180332195069644931811867402767403474282409102003645200513951403434738735483009988455174995230108371001030435391224088257988139301787688401311726269123533337464906443365151959312305953664393470461187450130839313760305741995251418787947500115368711620996940805872241148887094878803143718023580741765516103427961869839338538052762118887615024073854101704189328452014221920703951024412280976991780089049228483669314200798012996530685102273005065455589246702304372018805502144544214849834963331647099157853128549672463835988945205551690454970575692349904691420836634212983851767936546296087336116232093861417930557514905151320757855560105008330113766192707005859509144025762485564531188945932393908495548972986489164597281882280435289228740067104782233659938037541023262594118643037132912479392141183998569338843046870051371428112025893304439223979036904515884696524886184991717166693371641521278548795345942100156140979921496544526673876373309682271549784239327789951284061768435318681413408191199955707503506861954586744432450986042266496976765275796636417372501272253397878462666519774079515349207509727700140017980220718307811395348992302637964829733324425886438866280924094972534480509553993207754240832727629876001944404062253136977362091765411875096337081827292248940024434959793229992790136027810070430283293310469604995987527427418212778434657156627187681522388622495895354797072600752473843997857593699979121257500682287484391117219053396773211632774724530682951685217035541903739867149055861031678735859162730396396969834498903317517144020056194218886814037933912205006817555345591450140658260634225728101593334621325741269214084223089908130920626920430496048535820311032963017689093113729919130248459392633130084629273574714461199999104766089184182822787449774857900774808636136543934003067549076897035669990768131949465840106276288112635840096038502609229683849746194324084366224732927607779190945656071836736363596394176026001016675940931819151933903634492176649974668099077781761235377738499605141631827618305730766816389938666509426804974359747781378665933056656607930642960666441189092373084017419322491600511228825227044233699259280849275600361929544329197307348364946284674698816527243711303669323423405874062670599177750373401603963794562183373816027892120370250960383693089587068982945219358097713087050076754205669704374069303042630838475113575783169668639944498768916372066792784243588057637233410050970194662449979436380560912937481418156670903182486006453526229560201164892524542155242730571138038312996390231323325045846362444843200415340497972577281768489097152674084573465606169249133480769399416750239516265929336033247770324204007829464545783880966533218265178346874296305629859367045790555480220591459771986058332611443894019055019688755496633588293597858706631758826158978449438253873490808664616492890066818541202815876277842547008293344797656707031220335483806410481516296131878259750508037868464587378015581152073643495063325972175702327797950824206430454238844035124807956507034581870676516959050661130675330911175071081804580004093659169196014642672640417084491535129918687158436924772827654253476780680426999240399029634098602274325064722705991346924415422841325965627485656135695415626353662270222808150961913220597615247833772378599581490088615553294283350534702720012137922917753948637526381008864582570399648762839786785956334682600545502156301835836175470874230411572089298610779383936013461203665675347681231528299732635456663802289326191221456691081373809613362483917705283582944969078550920217331966271728042029691646858174133909983131210723366771752868068200108313678085381945503309274679797918197996081840735696408897047168969385755239391811103963810496672720020021978578410182832260528349342164742776221754255061089433748919555195068331459277289076536644746637699348963219561215057960099486404824461334752205130180069727040187236958564366371187773682816623800623113341200186532999705760916604949229641873770920843709328595175010104474133415083313517235057473648195548941214518577115030756177604800960585823328837362446432095429594015954607433137275422938393522195734323964186559728507579126987942296496030754325119941878478608154036141982414300316607263550470484660015565812494379492717766760742239683257158633499806979605378077457655693428091168153211543774267103033638456065059558304297075090136913672123200052012377615366816827127355053268230128452703260226167412489937435646951277080655098941954702269109069625111162964888863763990073113373607975930251654064995801158911752770268139086702358069770127669503074392268942552995523926429368030927994827817002450193889560499575189897975246833968926332394917481968463010940270703167178503562024842745329633899317585429562914818425479859592513987677187559271759652875236601479445984783807095501690505098608100074872540324804963687669839718557643387272357282730477245453894691214973967890880064522018163100112032564390391802680526310505713405416127563215558947425619100580314539414615064331466619519446962250884033987599787518288167282781246038130415426575853412415961398877848626890029330201936560082752118634596804320389250013881453408142919738735711455328168290502308018734908270871078943167228695559451434763440453278216859693835316969172689972471193152735135187550420404845968708745494303994428946022708996488814566632018385594281031714281539554636259659210581824361647826880304451522368783757447800738466240696491018170651247769932168050936508690929442962203162944414334733580681692872142700189953222883522314350055544379828445666659860772886213334799382344266227929501259996759065078903739794803523231894975849131381041773801296636010244860616669650639944052184753637726864739861242766790964338620305077941987569952403668602558441953310508025765926109041129257576135857892497844474850963214340194124492660339995315196995554054859507291176540594826966670380230181363333341729865096675848258289356690036981392368629243569118375311107385530910877667373413090130146718376140013729799913240110973894174445903485337670397668005766440541031912421548306682721786525366499119534082875181135037124961231273188955505466248546322859084804438012692944537549133172097863111780430996428201366156065765027184902262443650670543755263393949692856159780487307735463545587012860270761182986179750318330906469494715688704596415040687078601899913686334547809854251656196133477822969252725340142739932652923695451461413667770253055312049763290201711655880250272880714066918531596336748006776380470031997291943105539685506441717491431010911644370358473374052988392840970384229148023993857933872455478333753873828969588561944250786840810120370699450529149092337336296268691341122013399351739398561060984762403004737041856685352274949316916332441177379287371367991500165744557814461135874642786278681059019610962582592854269105307147010763611993847409873610300202767199804911967862577885250659513767010131968229978482710514086796016811229875647708432623674434324325244310607497166158114624960490389306762520969136844514175842611471044601968248725406242872712481857626207384822189769785716862008006073697471706345377790588116692216062934482370374816246521737793802373637688404023971704492558554681313174381155713872265970938966751691342878788215016720692255055197488742525557424938872420011914362757569227157482713627070314798870413999100582684457897561605095654461780874719774510485382228139015462013787623950173578291772598831610665679672220317349812645264909346513233634798494453191138522487790871329926337401440557029431457437940071069054077491042837953811051052362541203059897975137315075616751995539610872782524621950771272801366434890446716830227384573254460798055463482041670925200937676464442412682242727188916335599610137204571650551244176219225148382697364336033989314715271886300694225099513933244537380250582687516825314816813997885578953755181157276762667825719586290859116355435649298014993630277795189134378489066183443695841326028065618554996048315229391306610389432567864635757253761436406025895224441858341915947206842326769596076946013711343904286274129941698679766106558648306154217617342344513256635331773500262132928389792774068654191100312061652943866297708819023542754697585739047811762558101742924876356885211699127206214720160375798991324683805401855302232364810675645590296335322341994275516437607865981501149809498338719293902742295650933598529217862745590254692044826566153063363987162327412215493635466209915990865641630789047486639517919713988260265430272985321511416676657489487519252378145029129756042490562770321572717729040037700291106704048379343936246276575391586060457310462867762421391178640625449997186978718872065371941793173346019878106267347853636272833929782611228854332713760495324473947334865740209069546677361338901274438620914107018778569294278636528557435196532754272060066883956996974915779775750689650385574292138718876375493243545021199344887039060838415999387663444224391545250235931551225841411110973124836758902149557420447672815052422180918144618256501503891654084336198286194489559234393372823115333574707268308563403290989496966556157437077359264485951697303691192217025057615194970844944505897047991948028560908851466534238586942471017684678127607005203238277992111599117902188361751250412593301344756489732793421689226562087125709137580788449939980577821954861934195466669326844925284687039889858512661347711516570126639289153866172422003199682555629765605715241357943615934766362745205523745399945262824601570089497912914259726738221592925904766912002490218030010791759974204650706760170695853366300032803997780097898440583706808640583204594699020868528236226870867279559797769709198505469980349917438623278150216480046404345852540790128111978567985629177393048999232110647653264103661789111664812670899257781343068493965185356239130459693756600730765010196386766891475948480467795500554226289516957236414198087670892126780864942263604854670135675363790454750932947237234276181139289407464818029919924372855795761688521612695919708171374094372809660099340974343625939570770761720977595018874379231256288256122842858875789653467022087103097569883889991296379323206401013997063279287871568678465789513453817425444845186383749957701447774953776662181073125009520330406132727959980767658513198369895538585120768467627272392779949803370517231982405137602255549996388197308543987011178692688780178009599332290337086837868236926886619009317954299714704363648549966112492803605382549219298517595337816130828808750424830407270940858360165332273298380754586737854126452041312004342477957894291146761331541394325442794872559776257532666500051469428465232152881328768750662885377232397434768801974345702969509058671723008212868332716676578946578952328951992604331462863596354891146984350799723077620042273053141743691221710514047216865103491867297790003242095957505639847034375200287454500719698489225063934167865447198225238217534299522989751304087878548869623661268127333075027265229947202582826617208274130042426910317318388862800327829785183918328545624628840482253282273330310033256014408331316555998431313949401437313471072148290734601583432990586574786634066835075909641801793078843792531004454213861994010812447492144555288071974991944592300579095478628708259602352300420753808114188760412629845639680757687521212506761146675442516429500764381963881083434878530976522785567449113685504018043769951899469884332098558932066643792047679352959062238969409750689348209317167967366429585639315313162302798795776936003892270872553026258476372749474776038349531307103154551667201076635463018999628934655260130075333150468508907219108935711651577013483505717941040646135184113430594484651832615128535094831704849052700944406330362675084811463760134147161707200838337407955222294636265528107050394745723231010207855864795633829136208699911037558184498789768357575915494994171243494897912185614894440735158579300665062319920506562473147807966264178569182499227819013615816868882145657181524880683851582867983863068004484789044065550974007621537553282311087707738530850487616288222611800664420223543054105733128808363789710626809527793546523189360057704590734257037501337087825855832280981423706137551054352216436436510237281139020854596080039140850611844323202907661273730943754746235442439298713920250207419761476490831304804511925609278084216980561876381746630810934313754034463557567620628445285417003335138411169792909977208171156599296552931233728000038275701636997008776874102833593023616644501889427821263243712810587737189883903215683954616720032718686124390304912299539283400291011853332923453058635968770219659845699384994856324966367987339804237331477968497388772682288486695699663576511885732643324085598118136179674757193296219667401458832122407989344509625379228458142261277478276302317603150696764589378659442153018866172645379441573126480937527290624981748711153116196905396472590020682425227653926349853863598198877601439362040841660527118319352286498850824645379370581170891260967738584445837391560391988121549687445115636080383905802725385986058190370235025863910428355405948702528395685145479634810427054889017788454018195377767131054087064899064578811357974129043016301538092284383378667043423542762121057205362981279118811547373097467394492298991013101134276297848754966659962976302744042591877349627518544211208112454285617360546808090597289889585164303717643421142478968744510164512978642025831344459578624750810442907001603459188237537292948111180653092147480986118589301371037935379549989244859967718622585945374291485237157175776824701998135929684586667244140742218789557102728683393951512335448012370725216506196913076409178261096162740288892884897413042119422427670306643521889122567047379381422482178363904692597243364609081407117983959877945777014347148716121342693398403929876174615553004452167988492822527130601505281964036998144244936884841469838755893679103656382531886267002265979768043250356436332176752133300668151125112302854065876159122463924052339447174606454640906635637572703759532679712441587814304575884739308720125809367419313231457707302501372740328477136790039788604560702305036811534785297218529448235958321076675166295555582680000499085919306153358843318135833530998027733234359810963207746748438655940996680694225392316599156712841517278064485818985781339328055022228033987201257449710624138124639456367903898406049705297739224897907238905330693206182669796635514550560973092464529012883830742018873025275259911448878420533547639953807469289029461441938685544344694479238713451848000996757877351629351334842597667644152965014884492320122660376276940968441485507492340853327209278552687669045832180257620091993144325162755738911903335223708664158133505008933353738669820022746390882387933007361285934773160633080158583302109434163861157729462112077056023808896013201850065685818084765914612199864432677802658050145616689491408402768545834596901976622680096944593704421794328253980902903549535066391838641770953334884273511049464073127436175462714963132304067218113311049045922761203070411545710793372441983889264103924439124338574283201481971532689178046658408425313575826820165906266803728419780433933264393326697515782596686092484355404052353747484562109433262864725348185447540548206678547634283354122888331546758005371034459010324775521088599497244447805151012235968998807679108763456216833743255211339794523879956436386281557070955825275266216920263425168649404908548274287341457284644636177883082268642773607814827188837927316324236768555441172609909434475618459267904486403698211407688873135116611040708693711886018352564376716074781934234334521620216344363836539793968984287999598851827677187816886695829448144280515121467619171494689001857355760950201769197572284741858084958379397056651642216155806232234293858270209886971605086614710417702925083545550194241082856958632037735882986193140741219850057970854194127204633705883384900154375175126355986487799598142408551946487012903839168607409043678415638665226025329163519229004433078122720260163513105213578638933517897106070854394539764519269984400175775054722820498665852576824674319914913592289587087279532487816942506479668869812965344959330967408811045630974690290020889889689331094123081688711833225975328713136216885646239299239759249418482712527924128452305126110041062015384408880744995548570482864033803205268617882368658337155331543331581423706923051552727308276461599005056161892803605814740298305223486148471453822853471982320709232521980554970941754907776993322852198614456629875765818548462727366634833808981079075195254895457580833518965433711034872606235607093224625701574159730992101971920089256719142462790788674274233233517046481000696817373211373027619021163318820870072152188753246892623260573159295937700533309827793415614327146446993243066864732453499814266320140874198162213985892756790993642856942189942477187378519748695013813517643520211743982333499885700063279210839528003054176936683453872007765527463568477095250283732702885592900362255858075814127500769787188845289590046139698790537885288310093619373216404962957898853015620012353465492314799738258848759409317786615593530828021138575612765995368081533274350063895306417325885385703323070810466640983361844871538900454325970688462428401197635303571205434886563225394314917386313733442293329818191390200496022998551400736612783951634439066423321903180736368641189517152680591273709664846497854914481827649611577104486474619405698870840494854830235734368152789240139124625263214154859050534019032470242577596487504427716661405146432498632398658917501698295904383340036886234445891308969691873041437984925440462461512715630065324601582966442373852760086998685573495869410070821632021298000895562804619030092034606148697190150650344940144601527307637731053639152675511648619826855207029717670019222961048524907241064393443200538390993672346623075726845127781327756641710907379066547880229174189847685381052080945522759417971566240811972636098648042100635083610605150398153666958327393162171909740228556272762535781918781400392728754350369821304466634625056476943974149965720589063592435076955769651525439664209531746919369821827029939357079589078679150240114213149570549177063290813910380586913073079193136049029460651068064138829829282972930343581872220061504935970388752820440507424778246743879043923878241276556939428808595820080055480333881657635171046585318904078639429771219895276576233901812944415222688593543569765055826190614021952554310630277788621642701388541389821757549794557745948249312598617182968464428378119392285259573481877898774656521898194589579665412504049579515787307698993942896771810449042040089941451030817819569742533830948728055134278053212493337365431636147187748577157333735127382447737955782993379881802231497463214104507638853905136791214930266808691256276777037025028792711764235245375333914424220405870589707096772485614377337366085287047013746849495722964569001494011760062114240787863734634870640148878544855202047656656560527124572388231343390124822553132549547296478268849395176370655724899799430332319767652443488270641720253200055731313122368354702186014533361366246536002386601899306786963632149167741916599691850006721566250298202529892040999664881322769200361573805054091551867948918843729905720034043573288829812387466404824751958523328810714013330183198144636285071536470549796361127988820791616110683472567851139231879003277675359928328662847060561720319340548299838926418913411468677685730660545285862166897078536760209538275414846028428055938465290822485380287981757954965471311793135745963961937918577027694519386886760444987940073330605396965642203080147486461292591639477080211611338960504837719810574709521380707535317199761940848895342057490291853046636118860309738857891224079314993691203657902903093358695168361601438454493370359394622318262506338015217184544086879144004320116099070463509374192772871839877152121185561713081429929781749744092442195502743860329420196636342379333439830534048376669773290473043629356171996079845776343907413094526188319400871740855881274919614177487000125544020574550867154054699071765672767626902147662921100646267070309654218275397380063369726495602211410312856271268209495336992211453813443644899223116610144707889677425027942945738174403492978534752240815755072932298322504819582996348681844864220131740244754262439813897305834590117040954339139540745061695243998761761239673656663518866024210851052839525501042038785613945350897600211292557020439999914437093173187738596328722856065573830766154251627329604670347004384907182213903761790425116160377900730422324948463576970740405229290079202681106070087013611212385012977317890243873489920791534749957485191842238993006342889267397529578347008651916413290627079695210651393121700035329921245939095905297492412085199133632617327196622562792449962887787963952399417007174643686164644764490314361651698895056111636002150413585782682774617831698102477344140014216831030394901722432892176967604418872307816777186397545508413227313668989488175201793300207332020273463365832910722936096507994856593609364861571391674265996488979754018604690851273052513744483658667326223396625743293524971065560388592393507500930284189619977299191961359777408666569550361308396791083868576261688006656051298723500957785180587724372326280770872554931983767056497637713946530407703272815678496221356746831230546494875152936874704453723413042544022323176995828180136783961339370610953639548358457702402482715079504175054086384338994222813612499672476311528877779406816480155120381875323485944963649960711961144554213648437742937472849183618950198353054656811700626651614332356244461014586138068607251277229347763177778343658108470187310972248843348743193312145621005033766770889149561555324741046748708534989619479709320031019714908887883557455069264546281384263386861988287604199953986470565898229553142854993755693128006503787422200041099743868289511843559738080276802228938919763448992691180216855651496199913037948480661955992105484406863268855028512046533648205104519624548736901187380817135754334897097689806943175728590244734440901133884549928904941878805162499694923919042966597540277894963442104146106913497392615715756202201920248585183768010405279035723790744996902199522300382599100940933305832970691181226850473776873964066680173500337535219331005780559004899449117702727141793872713337299103859267017558641397172853645721121073447329277757139266341386016807125898084723537402516422365494890991816732936536500966693282663266183341232261219257770401908196919309746138779780593665344750334299655214807740772131995005286524915277629568732784306308921149261365675292682946231859656612918771309845682726651696841831253677245435115029593110393742315405219155698335430006424971995238540405517277146354661604386365214110694434742718270159016137741530722153491061067718844599952666208352894837117964054746785287832279212107507013476695169199514198036411347909293340314768053839154207799102656116454850214428569866304813224761976610305989735537600104874849861338576790342082298573516351814304768874704697688811362604444369285026313590766849681351469381610308293670280885608220127725362726501148688839144571837345273936696870479667713286887823045385489669559097188763743409587360044705090999449876981810396381280281162832163333009748906559348027403266970021379422267169536209771343261752965130182769389184051622353549738087918464077508759363547734678196233564720674460479597051147792358185909301599207562943716746026806524873317045524842304704802849841189302233589621828110646191991221453324628324696020024004929190206667253264119340200152344278414362917176193702973523438423912620203730062417127604156550208974428593204132467578074380746040352480105350052597364584630000901196586845247499459418088506835940466206431176486725413701611995329331370783629352513732494889764610599814443733569177888992120594394726149079577172183400244812580956174010485945168499381743840355169391042400798427777692012530223949320655516568614561916564901871787348483319149687595404392770309795848850692913355941767963285588952803489428357986904762538093474367570861044982703886393872442693832372318617187628014314534094974877949886828685514766686704946478277079480651778064292058450147090221865361388507887523467444219082972410577578312429916396646802912355172805674337131654211913416492569186207128760722040576182141228770598271165295293791210043544641937131592679007568564168543264829738791904599745142099608632111402398930495016179693705964833823560027115892145426765582158458300587706104045093093854196238344136801466518466526555808791695661521592233748118533630430704226028557871905632160061957217294691427784978296080346151627980149728626564109185490293574401450742707524211137035655606832641984769066451628395450851473825542240978930071498450051025444269296486898136472701728313102196493614935561259184125252553249483710172690477408978564049972062585740786087735326623336659128391222259514408333672844360319394657636848889804921000777855126361501908658711437695703109621749323104151312023965864603751683118031113599041354625547091055498351138540920128533937753875546281436216674938656302879008556462343306543454734972531606938473963547268467757723973450104330944708888764847806152580045710480551843573749395614299418750399741572281870252165010743078265521306534212630996184610179314437846151936618881797897882729537392262652414607892432763842830098537970267378688295719051683724876896837343592221614627813988708019001458085006551497630274913608993091283248003422232568840650793885483274984860784087711017562788065409156162835668124989003152830658381728422080403406600296862975804141588002310168012829862843215447022990775328544228444871569537678769653762444303980359135424235003035040160633198584369776915647270842742499228277350166983042292147255198085785580652184166624636037075761996993557211585534370913835944637169445410707979246965554309638917113884442717081806323283383314248573928628745361478556027710341816800629753273635020655360533363571369571288701217811499491613053339978237153769145692816958050897421528262366952694799052860912383665196453804987601093045992576034181501862072528926524711274872411379992903686206234987451645509396232999683777121318752427946227626319126951556863135348197861717889813522588024407259889199186832249859919310701013391051505500632383120674313166032203413348691055398454934472543240931684698366635025913338952875266638407619829972802411557733480528667890294898804164772207065549947698757320970576744876763018771207417081303002021971819498767273795750796388582333947443882694115612941851204809927259134132582281833531300983435349546068187668262462829790756763066263892325570601100197698674650740109221945796778790899764052677578051198029582288320542084644255513479709834676897464386144835157792251492563852506834501256479191905471129827172331785669079904466605338222422326878176554496713469994532967028250441112201024183754886736295517890399909839511352001626496363911615057269434997222342895806328176030079493528460307588312688057140663993568715449473199174294095561482734141505671985930369501834857920783773243309717613005144103109806948196719394331874873128879496040920124321651898706700404403445206707047796306446726886946454753437332521886655536503512512589807829054617401555814890757875413183498450864806029104535147120336247999565352951814998149662221677374792852764487003028524730141459631405636492456400343703150189576293432288137593726773680424934469733577231275880316517971957178413569737758230844625610561165540826639499871105879288186807738133734167331514303919349890444076429959239350150327495083221017863758809805434523639688303505433308526458992731119216456771405734840709859257246458153722968772034612355524816137723934952752129473014947257922697623512338384931806318155709840318277324192853978777878985621023965036430082000025000201172799754363074192978094030393479579148530851833823824292500101882949108160573723260063337884835074584455956008646080645400950908101000742849676211176912736546098108740270616786356982544351884861752478320997802803186497151488846286177465001655475514794646489401752742368001292687342010504729770790325116898167960240614024719620474370944653857420758180762305636044062893936756925251208829181254230978544574560718502516698453492823542388171459184540463268431916260910097740395190055056809820407375698796630184758165369663837049573107749778489198339733248902227352847526382965399145166565514631364030411330569237603896531489106451948345043175631249084369202049534091282196868148873614514137346314898361784008995538236720008784817722702808580366601700868475800205952189572704126267034968349862317399662547955214913582718236733102675924372519951251124822798597413198963183003806766656979370496101097036104880788302749059324893205188825368890479017991501394572070272289882373009215600805041420846641186689048803596433090298890180419413244871331130059187900303373631533750493524530441549255034532125410095366659315712306647349962429975299731984141521046410216987285287072754325564437224885217283506204125334559333585932328028666179538033682619392306513877249361891743737237510329052300388137145412234289153341404295686857985153224226930905685423971922725155472495892966551725076996985267089846307735834456693255100266616311448130286827436960786349094893447654269802055768767970439480631794738988124938374260364079449596101056126888269963943394214098614453223461548530814734688540415088877480320343298094280038563270027735633998170429942240435166671670861575605800816891795276413608141847767514085334359722218521369500907123108898707220293654107184156056106385339931367933470781264932253208430901755702421552137325708374808315964311595402565476771126714044435172277206669337337059359854734961764094628042137950743467526922496835136375942190330427693039555062282585653569074716697737693146220630590871401058517566815770716551660099547683738373921952608800009468756677835201517362845631723498113646017183620181568151513040429485992830552436492098505944905757646280709798188197856118794753905234143268726250608535283261230517009453169045505037962109502526483560862177518370798696708305334683599001635223318710830374271977486407792513272393935670996174171223002155613820019947048563904104981156913739457561659507195895294392688123163133087957203192016435558018508354557800695403104352775258817824705335017393882131292313282253997412137224039546862041300361324166779899935511451084298871819617748881901235505266286400713439041163711742094408602304929423382604837169664645384200816710236644317112577630044890308770688907872159583680330292877148083370763224585374391100757307929378338240629063576951465818199972979969911536550606504830410339767385132150120123951323189324596593798303848181145200876093379162476717228847575752457245595433339613538799606974312434313138963653658989896691041631520930479563382899634646070939360010363137609491667361314236117091939285028456262780463649366357336041653682260403781439543050295305991236186879789915476109690436727666336350277587167352868447442755030814735143249545108086409951225678809372589483947959295036110866497085247156850230505129188370026487357399195830076418364404632512460459324332112680692624464374021733976662563018175535843565621372261401607286247604883791903738081192259705903807943226193889384759615593550667317358812598400265490662013301309178900037220793083426092429610949579736039901081070259898451843806461075501613444112338744060136367476268286744250714483308275758594300653586360230132543094369935054354183759131922376469665175151092242469718223019227183211936366405123028366764133746284048017391533581352257912930996056860781406982085948580379998872559958173461030121528457612298216936041519825931694516284143273137809201483797461636001446725397034393760801918468450324216511307943474765557674113254376388391029617417594983021994421739619933677788200754210644858788314086995640146378000942183762792912621813742389303881529961383733777934105302855342421653219749039270882290854510060159185225667143957740013064306915672211274338524634441809854090419365912909222384022922145052924844975697488970191808286695095219910444108223868541762194814615030841232369555371227145901621360059051152364234111332632022594645169245667132458203836525786980463292506838802926742464944312481468112935548591897684026744920804965217107422736632351300243091634179581150636120149607375717364036065182563416046160507208142857655590498612829787577695141019586601573649546273389145876059259678683077182654390933392980864797726243369294629383222369407405292216123909952159065198740345377299747054895234878359073476335293142168419153429253995862659450405483069702820875078511618950374740068448934617029750021158939585591594995464635758470015503794702717575414055530053190936867670168429334487259422465088301879893168110985332941386309117753983478363832784193061748719239006204278996670058983913454469036369264609277055638855631289879352763167714011142985496383134467745780477843884728664775820705420046080457617335432543492912559568347239128800949407678360546224872062399767038132737962449054644487226053411362310014259503341023319951733676377924090236749369495376322543157439907693766716448391979476584902218645894150230024417316453568305710572121543617159286944734104289512786771817925361834792168179450878900392437851807556133019496902492204347800529387421789168130715543650536473267844045933181203639832800914758778870078603878378370008914581194021859682764545314317949739871260839117488863385204221201273555586053521271061759698855387574574222270133570042137332521886560153751688693878598939765301595281850105376386539775538435125368891845658120513817510781171304760086648560511682387114573309010655745221169497870294188887322563356199874494188158094865503261627648285172185550305381361796380211603873164745943925514993181953402860306575116103007221737063338685492644716221382295245614544216537095681727359374232803626312273961015036722724553267757125009122327365322364853538845010321544344398322465244153382860445193916876497106049608515307358732899535937096553077009302867271161362659796166595383672708366786731662251417293757528187765948203716835383274876503715115594295987401526293330929125558235532929844111459559820084680438212798270417014874460640673221984722396687401587139707868581822033222084898573123761216026303888981999882817747985933942631011602273889507392824015602368935551281483436922046076028545672721504099196922455318496518041032042568671587372663202649058286986547940959291142113368668419687591574360931727547166772141145689636270992144113288033117998807932409576940028172232172733394311723675827347981122076561863709198882138996387499222621216507982998949719953391891706708036275879422651502228833916115044595277124219575795640087065277036299715230044814031098996128942409866738803742733308886920357513560479203240100905640567868303216732614119764906859202617227326758297577523983850494838330166081892578704923420945314338001853516021724090784464280617957664859739710439142756312081062446478837050228671203378084468106569033272781414036163908619773116715113942862296265981010356810510878236900632222560071605663569460113944012879713507922354415446805055254716119705412925093023310823270697743556824953045575557257216107032531406629002562088718204254425908126385018891486259791035855884978783575726012971514339005001817408745522056269652774864514165536406757174849488559472812321257245855458408483043668617814328356264990512779128069960511790670040295788233397162456056544682109870617939381151470126085748144316168531618189309371034896787076442039346901903226070946489909355739438220568633814229513498995777995211795744772461362721386146583070144917429809110757922930359316471706356371727439289174642905424703140735240347328286621095972740581230220798760821674805088002910835553976495420801626078471077261651412668593257635996898712741600859486245974393016880968397490440579430844386090309181654094982568300959669652310129586061518272606158258075094977126230661216461440134716083930387356675045842982399022492168879271497869853029474978027290194104018979486428874699069606692841304846289204356709359423668970363722018668554787825753805877670951798226766884863508920852695738797902068665628994455132000858013529634418669410162465247548615026911973542596172929820421144785489408801699868619766539818391217347515592804747069900974064569955541985733545960650391625502204004500872067469119396674794289021341614363842684306278152245176848725048855933656153617412192622022488366095779697661864812980405509873035272719874391318271025508108090978946453900822800407506920911909051142482028212184840304019034393600733054411158608019233314142687422450030964534771443679233981899976114935501502212724261984028812594459223716336860856334438007651422281832636217728794881289759335914703967379225348244191909933797742608684795099069570392297824397545473544724313591620366402448777649866774242068293104413173442378051874853677438400874647381429928689870416299829366413340640048967724359709722104404687847515058050214364206835746994850966781214283943512126225104973255754070233784661065490756912826433285920030783584970535280987519666927250348295090942902802672385278273712930687555012571379093938835646035761753480260418581617576912700948057891673279376158578636566154642010765766506103592665511227179789575905437323734520263570640263231804371228607089393226760414953898854220388747071412418065127085117071269924647828839185132332148559628351275968620606784555741259165882328933545611997061500766750544643833389645585800246237198931669313804938028945095769986327695523546420191187409518952373734755276295839910482614135498822476616954323080024810690910654724549146464570909452026009111196581463444671155389161010166984378410166058461420048397871320904411434101823972761483304452441185808350131779579328440411589329550477419345151669127929358973918103604341833104268473837589327456586025330789928505660146294883170328977475824663506259001862011219143971589513072234491259471798129114886724960209383095348471358069097501654172961708110299695318216310955265621669503234183053206740509427040953744494690048700073738387043501864512214771273265218647718024892434463603668169319253721357363208035614081505272876139100289558825011629418865158240985123064091707012339062326221922820042213203453684218966819020911753670131619315540857741778648346118988931321781636924592026942256754420011284109362960426904983333391672322245503754130078526408544691396948032968229866320178615742686711153283293814646648874457872542671095171441962901355274565920342759589154987170449693468607626177767739062480649046909504000782358666378308674748059628108936025899861718943036300227060212842426284857791364794519046722357388426075743782539279834134333097892744075225406061099017577261207879443757040462378545956494848592621346025555169516447562433933314658619526802335926531990209570759129677261655226063982334350003206116917174139261608077389885897552054015732392177022577600238375527744488040656130810942718152162229464110890843530970291576273938138845911925442923890187515908489099578212365020522551655444259924927992266129014595224455376537128553875025020470636878924572824891962474969037364022762413192488794276561522047582872474284252952139891178164401715921566257619219392921380697951230493608355651312744413800141566264767117949513337248316447744708101274488335836845801700499527438115223365743947447788602668809296663188977601106017768277082091881427027199039350567858073748455879588225735733430971544852469380978743605523808031660796194942371683050507623623143745312151898354745946342542585270562455535530881677822346463627571368711280041905717563650943888750065058572917930536686544232427507279072070866943296050655971078424711286999724334092423043340474517916720199663298307391390906150326954342655304579281623485323900871182528456481661713732366724693758310047747655243839781022439933603372772799560480901683981220144252279234105526880911048487024447792833675021181159523180378604175028702865244284602035775015757547177596149288876498783625923047279851609131948021100563278000220637805153984108494555246580427500072164371781135092032302553317375201424335341158501584992313123752354692808108418064704257457190092182023059786089400886445397234888197732045931375750645365039819375986676841270668100133352996906097933024098625104421458421615903575212500186174168171485062603631493321035759110706864491350846224136323656074062097176314054174468762371011191585260963602068760120533997501415335010019969374728396268964061292021158353666675839978038165260461172052855763814227646504163472300962753636024912006893806154031962505752415415250637245391069641981418114742994224637672037044138315980911606833127161978882996284963245835605075353108086203346176206922479720838225477981604212132212975360813705226885855813338462478630677300142458021483114273619568789461661516244290785161673061179601616817712573067861471534058856973326600238537929397865247513035379419517841451694313208677367340712641279124826917988361910374258873301205937660451406725975881955756246013619570420660763579639301479221823091093461828985974832662285717623930967614866557256700548907518651407526146553643331375152518365141235267627627665474341799900605152648056854667521974104002522385519135248514856095989451919168821019743398951066435280126469495621518846016722657447974138175224357229840824359599774106327691575181377743098220540962697541046866587206845472184218724873768029711665393549151087453992586086502352484998626849780619499842994269294706039398418377500174150914825313416598452127937787591158827855571807522540620005816628830771498356817357958177247333428006801876340148212138293690745992458491907281175931966054730881414772942772191629064919763437309200861843910242676428208258153812594135366737172342672109023346413847690270807301871877339312743872898539131979241812016338191012910533963736929226761986403747066953484969497654111504353252306224704330344365390020206826686881719866105360155895151066836834012821855601645229704813677157475639698220985080822075625082611098475242531963668568043910816844226147547575136785065295316013754796826491472011826617087444823019912869021288994698018061172463208890646382327947812268632166162962575112004163480830764265388369317592671401922225048135917807268812191431727348164844149735278022639698888496310003718268903226510826826677987699385865304522073949003555984948061363824264352504342791719235293447295392596412504904429216800450519827591817895650570583305542845981181026228395199597885004827984239411274555578068658000237501589379302876022190406693851531106981007371630210775565963479436308182736649999790427854506468057900206556374117410113497420128281691134143745137876936972023545696810441261579522178922055953713248659515898326905399463382836933098746129471068259924707985420671677717585522774183926693064161546039972833016296954535799771804688194153693555157788231493515267343546592262585213083998387909291152783481717963713990827507422469017761817620611695439821016204935404413753421140337463002012391034324837709449216975062726292917837924525064953899003700145798425392160473668219661994841897627221956243529563552945394708619697929029176490465600781863034608289370818270522380075331960180101626195622367902042232499884915143486006061203630638194387577016957678891095392824859951219887481772909677270166899667742470443079276160709481124073994342611078958609189565511172987487766054040489213569312208525896707376240549368326215096867541057612698407257750177280586807234592748860075790787643814301133060501845456540019303705537906076632664226488517600414983715869748399818426995287017927900794393265683958351292616320480521405480301857434735247616514155191581706345774454073277396089803254577519085596179154152632010629428634464652703911339491213220536829495678898818793201214686608812205219591451220413403808263604193274160470411761564692090683244011854909002971453302994293096159188614439133473184912686253270769768749692929226365138287213411901966918973091243698231764462445832857361501604437464620432880038255712415330012325396425366646076211601152769943779405388145214764493713113295334460310609650096503005705142506818495490603365464951656012915875422742929363351509003442641747876340311688618277585067735546275387721154719380668178217192123854942865518303955712153212885870693880368671966537756419795106802353435001213896872418474064441155526304184222214998419890139904363282514406561642354834459119826980274554361550807454404197543960481146373316659017143979321662828518632323881323302032309661170633911326071826002489523867051313475419669445736389053844806081633128085346392032414421661525714803451800344698076898582828321716192781731379289565610352288100898532109938974384302717851925324311780628148580839737372687497778609263323387820003385033640333031698790708673734343535485121795120817745206311790341663424228024507662311377703115960329546773806851076373251135056586476882788364221248846421675803826988471448156152079197258549905205605689021923665332471269040683814560503428970513597823108256222384457773397308895367123150986936068590810310005232721265755243996961933519996266423244115174768915905509449935081821427193772831328192781470184984794227127603443019869704736409615815550250829637486434468766204106048520619281739020517885958772785437277579800744150295902155468035699382350648209152823205128364193308203325319685452456303358149100927880901793263974130494999386612602838829502891340260557402090852995688081864654982920462454487722566219806917889856244471543777091570269459917325712291809379053267255463238269988341661191890795577549850353536056312536692769315904222451238785017768345652510515375531981951594033567494390298976615712471185462504407613261699689604783124134300286681946504520837736784906028067790165320255785318874655936348090821183934136168483321213224577777764545903391232718349095647599224060165124809232613298288878366974566275301835717473749682604148973396307010760026835929404041436010971473765033589316901719190442071896921600591108512301339122162079187294773624613161989420503318162251013426855139521499845018191298946859468957933088837718299953875425345172606484376127791398990007676466726290869678529622347303903744142403486035219998895467410235841807403872078660613817368925405970249267320747138400120141884583262435610278225185017828354088814926185210751252939518673414622032877277880299871620462533962155587393842078069314967125705854710160774620851424995374552872767831937043643974268073119604747876627785108790129234048576204463129861148925926250013786840746302146747728641284065850141897667860818838467021325315341691203609945588179779557006577814992997561131428069318662063539446871540854326894244451741506709358838475600548920937246210784094839577337203243813792995887017486802244607284341338530229081397689673307050052622836256854779159057685029962326719814088010654816073592388839733243670242793293587369140882456997055957214043404942058232028683028382520087470527813436239905804976151786459744916907771208176164369069006538043304020354995578955034257254387402668906320374098068163690403077795671295342610150853173150947139970733856608912773698959493553259578109782743332729008796996663650454193423110264282486926342621151775872978339687785174464335211046751815768448311297273588711544732881656111829869127231311718026163950128128497896087125673679914925493484162806545559237661012194201112897738136017828348639574719832371153666709730406297144246499143306497592284010103440541514954887484300327273365291292310571886839889253558152141160191322339076402256983405223415819813241204270822231357782223203072955032290120800239700282772270468084844347063280384551563210353636519434810111187935438374630479851604613484883959128083298820446498065850971337444317688886941212502887108000051025752859137734165091577418581960440703804804441991808507709712601239700232839496820014386396144426992709412967885745400304674034271665269335773807506870702678941079424066665296597348004090978607518512390403593946747125577667958631192719655559041936345911538750755901473787217661964642212617407399617864483127473934394814675878220600316134003130745457885668359679925128695321906615979412257210070011315359102990678420089788916930209965892516628769743963213777027200429505480413314365168406750023771299749974145155548142601024179106950494493742156043172686184178518360634731602764496527191493767443029886271902074186173215600475967217575054385384854807288485537352313615295055960571329882024022627443056256626077860347889412801652214053809159432752254821349122555130591125502798094021696598564875133624732346797614587409494375686714242763257601692751132034044995151054525111619972822777440041427388249622475153109049866791650983451675383357330661105036550239267112118675172874483611249692369069408005374539607259512511261829838592830824996831844210728500036041000656309712861305535619389627041815820842573513910001176359303874209346701845001307332403827263579655580374170685965173882491587286058812893019655280833170273533492821635101859868434769752406546799237611978785856749080381998775166149694113322969852855442779789217714202599948839080653899809297850681563693388039086952213131590099989434938922240394664320302326649679077750663255499927475512568104356371369761229909571657414700465326606017564269583420849875030714500181576336533069638449931476472895597361861736279701874278119503176533097208059598938580619762055060591558437946017338753852026548455177861573220588543473841041784284706115586185784134112062994489394856196233583629166554640864843309960599760707197058564198294469527014256349970994226070692204104879561277664699297278871053245286417845158864920720879387131480501766975272580910687837377236941619502776000189927457100965837262216583391420095403346070385440568513501615171930190367989063649304830829907497359773816905800388210578532372982102553318290050045133401592025353599978480484464795939985646114030117111634337386786121943891412064209199199480964068442788816770081336859801756522417370372025318437066103306395805268557665302164344503678433183830651260716009555083934175012208577960572818065260597133083421590117201033922853157752929077207795141872862080130418493653035233377082105528568166107918162226065534714673410503507245647732616295402826425895723105375615616415214031106659329421138046845683294853821670323485813881094325871570672575154464834397133604880303230060825428457838108955501498438006033865472242545026663801595370412600980681166658401392769230104012579837811785165932797680222657649576638530254551134758945160077806931493241962089593166838957942575028531007831644896801395550230188136178084831257999824940498939037851829274067356507211816116601176977746144715361669035138767881682164547154639899851724675122130220879722102683447589605501095459216056678658858865658927663769512557843321311552327893610487992641975056129942191898511405820769347045357685593499681073618002922571962975118805634460225119939573881513233364979228488431050683204443708351116586624764817392212796793185660682107376323901312791081406637749650147941662077236213550022062173329428315706413029884975252508075617414337625768311825246566772793587177380773406418020912300562509605060950405372170152392713857933971401991011042136581511228037330433953434082758184652006559413336484248808968006887611644006516446825199653949925559981197237181668562725279953975086833433374172678011975469175190700707205685102656694182875172374588369865207874752693781874922415609769786871242848974062746064248908203067081763892507197142824974110015459053942343826323804648424807076798067778080707115003510970666954370948860065693955124204717184931971141876855079050952376039763537216567211187054639250296788808693046526679548174006107054645271833633114231849563771699811667691558238118012218767300232726184947593785810157037539488496054718138946741789597147856310689693213018577894058097665712887384961592467828232032705648842415784163001818053303506799041853069595336978191365613140237541228651987618034258370556162269569251828721684674311259179823054462861195270611508344659151489495470373612254081172478966142446197830868366738701375511152556485768937555277438380188615376778646707755582003804739810698337900029454600475190182908353969058322787178008010659657195739741698349727914778800949052820339135722994986465670883894323450983961338141600233506683300703866922916844912217260891175201152561910920333525729254825378879476583455478725801951508108495594822860233336482716620960801741491530483525066952753543526512514953103285547841723038282438144440765246586168748689078972672634723480191505595103612247482390146707490187587806416458919251353882279151182831190145218202588590669099967153694501818830610291397244572143399121967759561324370326363966864280293642667178383648922742868396409270555356562603705768848375482158502547047461405711852130371354225139291826462902366302199999984919938557604042932054375160507681207194222605132595971717736367877155771823826167671652032175744849590426245977260363366117188629225743972978619905455017409057606561423066865818021079984710212847760140601574624309114400811075676099908938448052569021516945458577769149770053993752365685165289576393625940574223652691382249419062351075151142333286496346432137106370155902143030200402189347644230130746304879278565446756280353903229662350225034289530433022494896716794393491572653049732957634355443056452079558093049643074156926746928340912167664144679124940683263596650547552564234954653849451443688619357011901379335357888586396098275917860453693895048857330497156883225716619204853367268691613091171161225204302937609206524508258643942329336103553523137584169316128185029597086109818409460438596684354239230450015418946009446681950263671471093150530449356614909900269137360426707984963419346084231430169368358432233387186380230944554759116072762021022610424652604725633779135007801826140632204973430050774083269702628351414012317774221820817211596120054199318173984853046035867785546919643984417087373314870099174820943514511255803805152924762577914947158736323809084630344461952888378869786676831159976528570383947301062134295169854747789932089938249689239948859993790962042575191069814691525682320221570094306807604480898917227976685127286321276751553963951495168865155260199520488376135685685289045738520613633791876449225227980566566551466066824898429799470120012714434020297394802357217898888750411973382977559124690777151874455690161618303316423500953074479859192215990008249690597917276127985768117536249605495417717642929603416500278303937869264223194460871463233930515294234412136439847323037527530739248905370124197722016664303335887425761176644874218011986289625696783690089444312888939067188375563037978439127265906594700867346040738313231231679037133182719105107474926552608842166136110962830866992289887320098053091908309503488396931370830899045326913381931559946220744118610147376930893972877601248631434059377972398029131462379895397618669087101727411748274126021161989651586227582127921863419988046920618175206463057947141563768209095789012329040744783656180522815601687270101644725010141405080021439323816100533710109107581451903645224785573545774085993024300489965478340906974429816901613481577980393088578035464126301052550443235275642292204628340565297392168437375931912465857524989509269861866671422520720125432050600163216830300961104244344820896614750017537750309209885259830724923367427425257316384456895363372990249647969007465317527357243605876657408860718721763926212658157629203800349605020567340160438921467473587215865214124908464948593920532993071033845751014917601597663034363269707877490604162099914018414371975000882749157858513127046320991142286434901024613321901633575899741680817076841678062438772023569831317900429592148629510205458387873989522228059426744484928546933583240853088016339037100201931442774123399057957704665345739517554897558264539690288133299789140757314710091642530019352487138096477865426526871587307528024910544055792811065197243863359917715130379540238305977102561604323635539387146846838020972445754139812864053159526156736577482804637967455855786015536178162817225191696930282769359811328002034098404999311924890948168316862324106574295238853643982494783475220120471082126464323596745295744013957787973502430504887137766343827843229510833748849188687379337406930766787201580253319583010019873624203128064187152019190704054337780691822970140326758175919980094134390931474316810082102234301622572971830113686224374792789489203252060293593092885143908723774871338435532993083507696992179893102771535422087526199270206759543871601136336623914278996952836509777378401018633103461005688494811896179709247908851492462712602655828452105470983606963048066756247844274564871346175786626945794878753351190564852047818424692715383575249405075905730942761015796891061866250929297860307440350568653285466345112396044496744143942295375103443149456786070553165021145267596344799857234622525299734555635872717709408745394633462420574456117066795990980852747372046956868483855319433047161972289010227059639702507556044537926164472478482899303650973792159166786883217329305516952168160586279152180080487889065963933105441375655251162734312633931834896230257561578616734375398802748198936415753005668055715995688248711523749032970235517323745887066904487317204227487032710473995689649500667989998769257741363939374455384547514449116356471151291256331678730927866570649257254305190217336178922297129630918160234336505714744265649855179204994609556692901929113876929648602487237235173827731333087325193150666676041508689100160076675356109701073781719407153386949428470857083089231817493548888295680723477982275427641996989758703799873874584189505083401619082265311213195217618885583554923382229333212747304784336978610657930572746322509636499700229200968859540260972407917829594872808555072204382740269173364371174484364834848734341403224351788885382974398294372272675576846455383142088034955352509987926265019710889448616725652440084433372419812491033730508980920523984613992127349734915218752194837474156830202635518220265676200777066500920797232218418922331869299177193985837008791621390673579340985342513388340920901001009349435098666340190730280919443383964506327702232210340605791462324014954126228256118664043786949527497466209124370238202076034118124261379535217718232794305947217949489537455186024623440782624609711539816538689967298183273444444100270866065273809666497345466509424473969573929512844495393872241325344804624408259893354828938390562221828485862584741334053268479343829157408236038328901189861673807796706549613871599730244216513913246808778564723061924920542886076319760602486672534864379897610416450307041552055363638350506390066148715761631750562240421657500071743559245262069481059843932533862488221247196477216593376998305188736622632378520856354955530043182853117617896210627180920988222916514209094501030398151424581443741357055016905772614302536518027060432158935553855833465342238528182222977209990587027895001185747570489668438700511272280601070034633370705680526210616794300852090389834381898402023033498162517466193185447442124910866544155138400822311586041540092566605534942535867642718412185944396247897233477364988275539243282524798927818641728717274685730796117673714489525860436097800312288124126896557621005671738099911380774427073415642769520794901314144206509328815135224831274424618621974537351955473821645927471038515471629437773964045433880873097413018442264498488849820764445819870045950507332094141836596507921378275040404174344001238489033226383772073283133847538349382940386269470147419580482461430901217063802723913186142384401353855670161192051664981025669686553284663519712851131362356235119801780281423202441183699100972927117587679550453237530502112445420203029800966988252631282895508957432537201049709382531994910272773176555082678802008745371097037457824669789898771558511946806056200668795548698485513597802889796968896472964669924745167219580245518401114915667528899282703701106077287496615536239927380117223847615521942616112372981479768174806057733618867839061294746566543440362967499145499769787073804565698409351293999248753894061328974650936887111267194784114284552053408618415934096119818414186941368027899106828132437761774166525045605388041240529456060170133475810602018972738003277881640196278659510350480055790052204189472849979974217799557033147045047227378920781223455635034920501613166159452285785329409011630839552666709137807560268570722216341533075668165299341622122563416353440412936797495577620676201037900826293595651344947787452870231145027422048903101142749095384260541902801205151512160570813228948442987524252694479488272326791210105075013453253085076011162261582529073806400956531420333354636828780717376234402705213873356800013047518358716578078424018298265678575791791980005339040024557271422810983941542763793194047965069881328489267076973819267980755342500999252228878570230109959241004574402951568757652258726447154475181903848856160986373829815670131841427113077351914685811181224195734276108589451165880460185271076275151763710888233200086705783561378384927946061796303896321970726118543863969028436897366039797570050371136594240302759451721797332434427981643916300925280765211602209757636322960065824676701169108299243665654097801963965076633539491672867473118201326336043653422258991789498094166853077052772784340211218895899077458989910039590523449253883057881048271361559901724471189705228304343539539920163055672835141721006044220658796926072174149072735298793670205319972398902518792964948338065339084911647294543451661458202814172489518316729264664582722718146879474310486257798497099078389969193758443080460863276502948305291312006545080819407632030487780912273132190720025914409089545062751065765065976712485083878328939673894609384573268001113922992533796331308854799647875407600652780451964922738438243101665613436952640255540863883215740704844913890026267460762880917971008108132299867071602220402710254389485231223858553871933558592088755018711429190679652310909758508699436912410938007040326224638599275804301832843113849300626578861908456537677091871099270675380105394895611165487000017112036841598660371262850347623433480188831009098571637001383578989047765639937919354197832449959918237520525547442712605527279898458430798310626050849538467680373659971427075119248376122502518410553279658080655382709769380113713032469058156159399723829349782116701709156080242021245395954991451715703050852018154421133065071769995644083519910822908039710820266966562035144249920289910459757093237511513155202373651395175879096101470140165998932512027213612170033845149711467544774629301693122036047486594602938943203429964754609980053350571812601684217419061616860052957049087599540289368231302582748286184014719602109727668178662340245223657899873567743072178938591700064589072942899228488993166616769595795321798181343923863167043348050839344394897691659398518461174807938499179270438113440711263525008107362414853949856196813350276115841022435671353157763169430489120109049402431044682886927923599676517720860793646874186590852666595315140719323880299573662956830757939102710984561545025853705116946893599161767785436169512275583104704302603232069498056237779245390403211365178244505776495249092879222154618348444841477722961038784323252005967573357985997287060891911529697024434191940438663997356887762276815169601185627923495639711871008816221913312417290510645263280310427350579815473056723347160800701177404371755844628706247333357104583668426458370093835996227184593352768335248175418345692353669322086221587343757698028865358899482995065153548220136529270503217638101322134391769121093620897370543894025643266232270835576819172322395943480520199806606583709607285471410811866080364901731444495913984375336578040707371837601150161911247917477682289097248434540297190045200002527415885157020960436945436783545944131890366814733863235447827929122714547858215776753141058151809494604817152288387686642981365687126835412999526086742046891764578696527730964810062970771784382601131020464276559457896128219991444664431019476635694657872327290783184912257380799152236463985670378025377956123108102659180711391352527659116369799630181639712058042857610464548204394032182594936982033770279868178132104368490616765163003722750907344723482240502701154158595255644154934728472856279008499699721250573317132361568630326524879096635103439703756513620393720293879577922970710661636151235474582779369546693581087343166755078569832776739101218034087144674849052179065003318785175579793600456150931235506179173116359732807924603497236423543299323466626280877849056269538002390704284020611316232791450895736779550540467115848138690533662556984630828705587202422432533475245941686817494089966682846288277777722469397177776245314902207533791437560135154696107530846027312620809602852520086621797510864212574542341438925161774370159028145087668848897897239634753546371821389353657523679548673087081853933024802627157260051527403875412171560180993106293098274507319142753334068679750259444630674323965770880851321571483334822699554190663604196080675511650385344486709298879468434700506224121718762534328398682791705657151120923002836444687246262736270867571402661448607477345531545415225647429199032717507813991840597534386823356843766272672307416963153780400780794165196810019676155892865344634778071766306091473667746394445604257391223096413077386682841011565733548026026801524648799022037552994583028462790370370492169772555757742120695913765267453102006735720513569675223952427529996145678115002816406097683385784444785425662757204360614978262097642879691971085170480246432561967402201139107377957000007789701405393944280618243725934138535143551949649527901958237509415879107505194837116616246575390879122850854121938826149277019811150678240395075200386387691417562941213791937458868031984376477709062744651746119813909751047697059867651601298406944654298170520210856690250316236821461106202181224886077902181576483915577179482429840743943905098436626942621614141533933537105189975672795394661777092435946179206704205318395067491368494994364953310050617495851392797387896298344273213020865839302577777190129412137199856079179335102464020409071957425675979692218094917356193678325252641127586536175235378324460088118452287633938318160668570607618449425267253334970590304316174761779473173533302026377226639096589088124695824458034196959740184089990822373442856672683600865475404604390794249238106948282714738148947182290205174527803791592209643316585898512673515614913834180174124447974146286222003304125435527597886531256497078325584048561346836713000305769021076286617005553796917466056172901351669534283229118565718932879652620208706713142227084348317372164012915817310839902381168964024994066619683486752365061195007146752176400564681799048103542751539205561377554492016515307286428029474410818340239888462654393463958102947905281347974890517764516926307615124398093082620883798628837345456169130352988262884942627470324756460316567716692410798485377985998944958799552850615559265750081199900982691649793537741781128646819491148629745831558406981628987809689614317313839635364374869585244950569215217406179922783256789423903916187502511109681166209082033678752663952718762879153280606592333323416232656767582734904995536759283849456441622711042698942299271021375567114021969379801358876405293091792731316189301328462299430174827694275958973873490747234046125316869553531627176504747841444708160697493732420974491521811630260501077021194866933043805849355982039563819626737434417756362544388962322034863234038962257162939964455755648982273043191069324787865376221900832966935507148706312747809001438240626205289596827146964475777614347059562291862483675035638422221503594004385589587517650905544755070977210636430967009155239329988684305040869047722279778050438234459213201669241643549856592505980424362544078861710292233714975854427196532199062339759777530683035801835515037652350931467486085174743928205615256313809943761251510254055940755700969168547519435023018111092334611610499178159620398877169841319514712708884352165411558656223554776153289528016679973057108692597036434087216904410011724366435919464658491962736396058589481421397547360990325631362836650548869417543892336862567464000492594266287520058657211726702214038755880286854531376531369695411674087487126218742887827508802010500236896374097251872639330492223641231624534030011066340840508605326231724642570516182418726258679113924976929481762607742041093393337249396950031354918447784248961622220820513950866068262091321897525847249192184380664060826583074567729781835983249066296383633572811313819086458102013548722126245862474237586286122428881155665530399797459549224070735031503609484300103036497977538983037330966525265538359171668752963793942576227497542226463702657856716373084868089198899564858106705531917239708611592396725520140140150509400492332066011655010976278317690713184389879317387077118472382096803451665750160515749626811405048576120003634582134581869664056095389859203377325655619346799367122031245891194758724302813904342753557307454316720694922623057008373279770686819143182356193859630201019569910365454495937878167744961304838207740056024296391118919667708457724209941412760508569746986916283171505015450647588233045019711049358286902441626522299116672231657019763713995582765804229621489865076061743458329542229914640476642040922638512198538254107588313514506405277088010975237547038309649900651446586225006080370693964659796131458587384700086286958032399567269505620279064657739240709934218659603443346448137176313273269226479221258832053039833956622552437452319325800405031004405988038960414348844429493149336122587314234903131920243155174418011433900843562149518079144784621311116950104164635682552574941960788206909640352001397066304729526142519601360776210564991196896055983214272031656168117026788443081505532409938132578495785885421327498472502831869169911708725409137142963498000111454173222814832403983632069111963569712788049089319907828946149517555660204221841462622468309551829408215318031799252231797282077881009647685593839890785764422994916532660574012827254750147013604378151121897024685864825448884136519279473819345418405567582598894507987795828063765602745074655581874122010640410462268204509739985025844953136219385045308873526172728125401572092268822831382410120270998265350393646668542867481248939356081477383681336698618700450977959654815250271724384637045333467816718322130489639157327924244905093404621975655548954803266237952934866138374781483580676200070308837050220600435714778159655417641324164858315809993055118205929056391091081230314120731702097161446233319492353324358136425315634577884224127691468807880857311019056627120797083400410066274978501659149927467784332743390620784961766754097320274293698381973320285680258432023198034534822843105458357365266037459091454848351213689682294928374814029150198990856541851668892285931186444399235916991866385383182710628080021905059577419021693400617954672061879146667147175029927059309532229014880760324943331155558609785131795769956620909171499535706168027357577206069830537986769322030037991300615929116758908616256126374704416486424388327588397665186901026650946432694525407681755276948220904133651546189594206717466357485573790241134810865268123742051185215510923734620190012488653509583513867771449932419893144256579070914294146701943174584693051335514706309572313771235524411603218246305959174583170066183276263795405697343456219939418997828026767339037696925857283154455169489819675928268295362193085665457332903982621151541578471303500036189199355624330060294270488976184637780005147975912081668463829894488870721986342867459596350188816208016588394416510430293615251693926036871719657941745170494468154573040979322801713815461360087712400792252402967452504912216028944759567307856204108086033751443652743160455057081189046149403932668411739599540141767897678840265201810761700889442696791045791470155293233609838148055558948960133417510184447991870323772950994142204846048566150648026344712648254356159025804468370247907473096667994185787328068197245060810224773714632383533063886524324490774939105561231877025309852182112930781576495779459957566826611232609300104004131738202625208018625866984566505861201431690439553290649132319760681551345118167784140425533478360117765998021741970065512253551509636951909515954096816623030529100717094635948146292792935052103854553064580306014475915736231197923510709682775836269727036943600420819505808546398264421809177472317446619410735800923193554813149341048969010632506147074699570758135534286924373508999777488265088275784334264109563634500145813075538978907513170970627259604893597759146038333074734833725075375432927257464113646503549332407977664226239550762864381675766056385412974144853233486600153502197472150509454491004579217115194329819238001702106816761275964974310663752698070421295811664003748220950597854405808342705744518562890096835251754432063783235873509136935541265710728271764622677819626669200411164513565630859834500901191270345138135964409117967590356834611843511326592483084307326630702071848696187045012177569620313406027530365694310822229819565569769089335466868519723772016210182399384903835332347861349349914910675239650352079983800846122965233207322891851150064780236912574905357848000329351779504234907324629163787805522850189841600315421558464827379655660353277676081346190847456372415117912646172350241404694774466706240213182309950798325591066596330356607004631511656610063017730325247839458099009246339624039294252979458444494133412427005109388896057367410773345508842393526072477697100460741142584671731359961932147330482280830650400016547366702395032387915270382489422266949939393293270690167335764347987053389222474321033876403996853554336397747140342095017720794021354880636704066998679583450922196573813681696759556512008165452534192301644425728185774294822594737593194989318736060757687369642860896024759882349289746638778372692001019914895128742543723757997798110388522917916605989285739595736961457935576134691709899681100065404539903505184328820451499216244728346329189910531804172679234902925634536934423799993369797982434295670053564290149369612192086242308243168073363811186262085061024050795476398016674658187427595311898718709593502222685346660913355101821981252285105420055545532613725845057399544899158803170167016243724941179774132096789507432982290509171092716677709032010083690910856651325536706400389292249284353397838852394917115214384163091789212996094448091281889878476539445710285864933676374598362455825795814254228628595490080281758216658584169999936611436034428185234856395327160552254807136417486391649929446213447901441158323704772649506344615326771285411862316218560444194710304399875574689090816097905237934818976833132783615898908893356899887413492162928948903802706196528800200173768816835070948186273103844511410100265604480666408261375267235505161177634832007438297001409348644914768430151649680419556191875702928456802472600273191067122833676512783346948833625460482679946744325564285131373247622360756251930342090739782079090792100325433357111607736607148069432594001850988017731397051750555765992280570203785931162467610668910745947923967497686895800650781478561686230144308751071016530554886275143451986574011020774412281631732075602476463613091291133656890028901851202792404478051054725715836462491880070792814321626961405718129926379583867780428505245210921439522268601210091802587718889894018235210069628765760049534732526497257993577211452049481277964161910772507985419406967071779826065523694367940116694914934822710058627930102627454917647886096822659891487173185549474732825288952509257904562388983917834179699989519390571986753325797256333505239589884715842285219451398518346883929756737631180551634157732353609910965492991487567556411338991742800161583503640758859200244939747298491486510641084023511846538978457169113519630376261552014148222604877989277422455055626373163435792316525422935773093901095499127582848865554327712270390876934446926916587167205040370954597231060241844985573107204036442702189911775968634216800139321430477478160432890290543201531467407516753718570914781271231414552898624509964692999333504720364089466273265108459603417702966797092843834412843134872676252617712867952770740879303307735430879532688017341996028182315678080947562605429021400346364373376380816202988931051944741224171119144828023632562919439744690775397390893536649016688935646420074737396315200926402702510579111583066876281374804008583696458220285733250701448231880690809459318711001090202547278358717268379451166219979752976168380136922486233149422114192246265190184735986937092503446283918230971993665518940453130149201291844544786737269432669234254120744438319412330642496552980312390091037503289189299020488709833872723145665480330796197295336553317070978088076998725570991445422085910675458956578301906780040319172181666772835400487949451526111217081712053057291293842806821079685033969417526222139215919806423668486200460371021136920696547881309715428735214217077984560786555566955541417461427169770310733323670466577031533688433790113156335890040132645550735255005696701597605689601763492311107331804731481278943580322221691238518001759247034121100142376942193555768626992206100284583944520368831170071262118528195593127575346591312990907788433217075184985929070909935230387257123484571078102147875997274215707397848730679429773687530734957182828903982427044959695137615393793134798859846533336796933262123617067161617754429990493703427771474104565675177527015250668651056493330361004699623309999448653265993283111728677759874676720250781935652845464020645670249127865857411214020036074438136942393104733033127366391488552008448573890933903062151224607968902513156614750302299941244448347815402827272441710116693521278900080922224790498046287634416837526638205090763339360196258770550638027164503198307156481126814745691539902046489567740005970047457815459643329456540531754728989103069274974608819482019184839282683378470778492040365549439625486051242034720014400748934281651659271213091384862528563309595572356788608196176181605508998911725123163065067982043758560417580675212794819301522316859386979304537381862772373442157954247026134023482193384147679101678424460446797168213606616087760933844393758509077893920857431289286910986191668869677431268441130985563538136034746566301930407782017523135590974312903019565231409074708309142836034375827830590195584909114640710877490474039605695436322119206137283689051370618814585102237092611368612752216961600718654776520874387411798687984806535327306272877439941990287801381505689014269710831337395481317386678820700845327724956045041863405465248248109546296029418120392558009108297501376608620802201550132676844978648120651700625091510061234655243383776624751385542450338577677563732902355490643373528750310951939217368292645552732222042401836497598397618365731037620493558020898683391611850019171490109843146161782892172796400994408589063529210037700318447088343843007186716598831441134695375295751914716141541643887412435417640917822504144798185429231723261558244846749044823485441428268629273728009677045022711311550935116392654059102123178156183743070448474001780839561910616464054738088284604458956226569875143936221064880854488783907314130235817899084129881389752411267101605684834008042519380001308152188447543047230783237427880584691879751372725434541187472455023634841030161035939464214515729760366855852785668557224092917714326408483421729793350273744244387042257407811270313150933411982151497663489821174608963628062856724429114957124619755278101819406987356778700405511165890607653895279839980024187486355995997501137944798656727952410612927589384578049199832399527719836474781787673419554090747935177303446327679541728791846153276837607479339036942333146010391276244869517825647571308773031088756367593952888132540039727348138804516175672692985835192192752966203583541178131519022566164251967088728870817504221055533409427731612783473087080876538922690719551000423854509266712511245456261914987015706739389698002133150820498607122600715071617100517680245474882775492700440027118723718569596361970320965016656767146363233648750256408269533679766414313880287645724445967800149106071411005956676120157737531978350824406973935186028290958639576837947229795335376525963988263457391803843311353365641784011916516623333514097516816536328183559053832987510903088299869580794170865391929649333533260963326814820295854521303042059030825166885325349711088235783834465725011277118322367737169485201799057212304338758637229630727087004384263973292716175493290194040202283023843892893758554141388503022573702270507585519314374545713718260581105487200536984850266866351265421819139919294379819436078588961442769601181867795801293010552075636349843651826200494219753803606991385404118290938618154599716028855231113408445767608744314820488051601287631589898257900223649637501624255689700799926061882504652027351745145927896201624655632862256998145310909370257289590516578107942570299149081492941255940847986330148039229033071069849174227724026659288455827924974835225382686423909571975948016507202453193138579158691523023055341671645577575274827070553245197973013451964631708348347388735783653198319992758210713818315756224397117189283841003171269220249868390222291992621038969125138651843968648398107085498604364687774799598152735545747001642727198054412085789516335737485286252865051388148810281456587574707285683120246179429609382710956675191937292758606540331549074395100965010960827905426686729165342271522217888673503906953102216187662956291249600033086124457716868604657740282842723229650160306716155385069418494858563804478143383188085716824747659395231666755798946565651452850120304849050715601516324333446527133144629893634233843749316421274085275980701314394090917354671855122439046289458061460451521958776511807778573182018639282509418578641558532775256030841700732475667485178319337357646212555859416182050085862806716898942700718106816585662207085248844690436427530573037283743467561533801554578191817956914818874946612079665808515389674433268608300027343202892793021112150083241593140159357196771083312520157996726913961416561376581526547478781231686543545722243078364446492766316312877053162656492120149440295927878297988604850874830719633143847850236365872173564050695749501099837394669633698654809256082252069448291470139032494816862146409364262259416268446900920485169989907234945472593810477320403277834684986495209628832229241932926235060659966143151728290607309546493850739198034259772617349541065109793768023517572183389049801559581450124661698843539821479255688426755415193839133225654249249438616600736466333542204211688715452643681953582604191021296015206495413149431093115532290715381407487665215852095676719165834682402057425538735300316623044060017667776310667956207230773019563657892134629675873617112681661676018969023184070211224981182044388916209823784984643599472909510464482425231810472693368792917562086957279197191286920305734512198305868029124949458362747363905505178761640632526835219659496933007009285080295225884770684154828256780630246856900044566061931696045684707793594429843188174384686596464856832022509666112913761721136281321307598581149734914096166417600820441772324433503023674785776885468835288353198239563586466353393186820623467601620302719860416940051078243120654171995438321629243874572174890204037271435633782151002122762312535858144948310976755754092443216209283871722160780876552533632757426429921713848931983880057291937226528621149738376416566224098342099717468847372729094799086990424088371094209844781573014339742210554204741679853107404263367913164752566654777081456729617072163115501325375884737351536045103564994245308963423663976092743634325574419014936254098632326238152847692479547231067814530499014429225241359780831232362097965219595834091649611381195769388529589417406743005174967270528081716513674384443416857499965333658628754337559708152422527648842746478771588348032629686365239791890438906683763489956006858241335183944230043110491185531291046826650150082840821931120969109872853274695311486079026644922778364661999619000558532887211379897358217323077053669072493558486487438791970722590625505019733702962260192611713959434748483162560802578450863584097877019795307446763039766319608370033369081815526487442094410221042683878658383200614544293154874287486533369343097874272071940602447652098564829184820806296189476919872746342036037820717187346906622097351617740534006886710818309365231610570114476206758716096027882178802419957048361188898798161931833903116118686914955013548869030124255984341224182118638921829793472555904899477938234817460088716925133473683587805854876861902956652903469683691002800993139132168340549963668752833619761144035686621441006150740724096344041299766749708150959866412100489090174380838143976993176642787325995886791522850177902004342512231495473206752465172676839134110531794870216335300937136117772623823416367189316279357893803706323476627998144094409104002531355203801078336244746880761725419733341956446598079459709708008245693543455209917125549282104973944294697863128434816583776573812399007147129678150097706863901179440770906578937100465125311369230630353003196501589042511507782450750236899363832486836352905399003493457243567175979819917967724184145433134580964477795794092782765831996142321961968362799531635649258488453148699308198456433377053684521628501588550775193994422165920461769718625773416878487808350997642796563837209264584507033964573945461060690932983913206630369377610990173157505585709827756099363147996231780157682021307395665411007230232666142762018115359286423715242809471709675627397218032304941739922763034016851509165219828361599336541833739850349828363727914985655068411663650749242415984927220464425350511359258319834980384310242175792143307581127860187070258995898021157082850089695403060528362747758783373022111646296300044483488451377775045240067959133033568660497508207427767373264978411391145811063960944789454990590112080713366454259596698643178519264125688929138952445678774774335224643807612567713696046094996663621495608023800126034448427431745533542891326094870024524470992456338792902130110502552903977410524583721766059255551562452546390867206008126344835661884441408687161853972940221131578542740478943265904052140224895691236736992726815111754117141709196549773126604991187985903868768501281787684518669010139412419261291006392563458786925016982841771327907184212918974477572285709872826478766904539769336306685015783482086412692136126124448047232785159991820349494468392347257106435057562904195487488569099427280606763098428983853280697638039649939593843809387838303351908671715136123631646869776585631695726239325434204552159202021935140195592141930434035233565233216142088143179748313616960776198326729023931391607695152394968453637742850120001772589420810246679464573652088560575016142885512677516479449642984073476629262511373516886877945639277266271338007675975900700498855615642109093965883530713570595663039220873394031738588560897533225339162260472008240929365158403700436588822324873443501313851110088158404825177854370995927080247419416802387550122064906551928830890109594604943286036350125290085905502535903311135787883425566730174528635328910058740968201661285465709002918076953717153335687121973759029118743224306325126040948510559021079818569045388660942544721403781355090186060493057829718637035150611234593306645151056459029707189974333109470572346510239881844035200185763401944610101026296332049499132594041782663076092549711464306015777102226001299998896325998966315453301648344042075736150885020256262507217184865877618288272713654059879522356534062558118169787838691463681690053905632437086802034232831455077377314050741628874650032095740525098844201890122327878820559284578981638560118198231581802148445313486675826840086297318422172408246544428653277549244028984292408660136356464550772105689595598392916968736595814108640740807169170001205477213860561134106921846324752048298394403369268842664195300445937852219702447460101428234669225289944760484783384890104171559522534792553770072237442949343516909560329793764345138707830410831950431349998400893953969845567168964049623254458154396693186253538314201197820764685268230559023272622024424399403648935093057565315007426512153992169063317907287651465618627645908707524317121980212276398411592634584323824018302865164615282168982039146614130493306474440488048588910683193584830845594589876781980551129430009814531619647103879952731992033662246960885851437249089119675497085234124235868454745752846876546384056725234454528500925899758500085840302229112277213660424971506953965277270566781467647543339054202403764187011094153107747257688676873604280077258281140600591371430214493243308240208295803241192678676373936950655358764080286636736881766709869363496722491330338127061500045271767241418159065480797349086115654787256083648682798384587719611531837473556241944633544342586725285151642451175948239170458012410661017195294458130052033979522930081887028478136761961092593520514595382889079352868230987890888949556008415986665596232453716503355591051617645311582849275551319439182756504036384159326646641821159632796795075722444194024305269575971823268620722895269015172544733903784948647479441436410453002175684481513883042403382539214515537603858386949987816085843462660175246609148932450599624724228503854545017809669369613871880990084479468523077167942546270578584570131407835721931832858972258890462707318505251556825028904593116306121504404827204725630185751103942276688452060591341735762971556647354476601391278827058265815408257095850412417149503023973891452538781998180573879686649334455895747498434749882759108044751219477354701980281948681563308207256654731887436055511955495057650891525350939827793876816506784379455695583107293177979819836996533376581448099868552039730830932609018588971368826079940767806781804598109768542065431152312771307920062812154914949946709919696408129793235623881564310073787505667396676533532964901600488146801892601272651853941185300251395434749709976803579411148109570479374551961752059234631523253650243995730142561390074399097088242930514527713255137327334388735701702141720170064969287028304265309407821513604668776866934381587586341285565865130093810803392804833273799057411252443849087142578628295556281645052709104216204048938101558355508159317104100741436067703396725583632448445175701433570537806197516376432956739970735608235888871285159757536461780111840429732414989409936729649723975032552639756007553586422853955034833848890354458190141499482525407542090195947785245007410226834777350024829049512137148881306796015397500506719129664425257159817031510904625738440562113881748171580217616461519274352207042344181462925872957976865439483577912989293135375427345181200239719268217505756326409727990571781699398023458545293708775445341831672456679928085869294625525036615251412530148127018901015964877887194154141153644700010671783355830385678965915387940631489726832614747696290152941374316155466940170409392482688176887788737104137362780910181407261804667017430919719211417500301250734411109294349054017991404556871193516402314518106905129867389226737521621654929929689233549610116708041122829638108967621955125952716179177978157811306536559237033057872117481747388524893467324828010196860906895840079718905248160956993636593295941646139045685073200250618303732926242520756871530410866296799816057460499453526069909853673280361780303250937165322088137854002665025782280473944074929784941827711938224906086677517108232454828621403601466972644410311117187204813988301582016232523028404337914859217715522908259556918691338057908308612179614998326141409482966397252460320678043693358590997847806383207104893904803174205933869117893072646400723434317324686176494075309703923072315136315295511716840732818770588861059180021775231833329908094493533306584249352466446624669986991565081847149374705564152637452804719758273260740938949675822516374154072760762507590072326148440432890410981586887975098782716819499317882917207339019584988959335321292006333927036076289103238927905972534936556692769187596691905614824717894303390014306921742859400852094229922517800781973657092651543865495274520364167057140239369098579111830820985211452799362126239637099920218375768021026594222612088615467361414384816935344122833237126104441472827457704353524208170339697333632706323868240730678295116594811560895619039753667217559366837686609083332361249441956500854069240442266990403386661521854818621486174584217845134668410226259841320973918177989397049197879514720327534306607798796606545589921623205763017024505018394412500116701187720863968337649908412440842121993559809230491370446603388178562651966405322969768953713483103415034631731333680097535772659709689158258719044274737266010873077038509203008876715345515131975517955605844504916902007441529331923233091124642797727118794053878381813038011474415813269194657500976371344492615072277013970564978587058773495036813999347439766364307853233639905429506180208420773790077906993412555461023543239574632896545982252622319653964110235818902485188418429777828537982104006748698822574259044166112944783499849015888181150960366702831503765998312329758202580850077654145199222463555133348188904697180753641155413192309136583762480448982504304778359978915700607086239598934005579944859663006098494276679771791323879857739746642413032105887947900741860905671005181936885399763923028854942646616860856226594435576923176369685702809385923568059627534748778599979880023538845824808151074635247747378864429210465842240758765486714950676300338390660370136365635865579367634354941190989583743184501689160806538340922852355095960415248374901715357878204078034093158512626808729194547505375610684996006529399134867665001157692268382249732271120430750485016322492329019778474203782187487097674617892440812569824970589398198404571757461016678515510030709673478357101294918905712342918525011197307208947525412301461285825596255773829275238439707266359257461057487120929223443653705843802892708348542640439247706401668310164028180998506046017040417649533902653464031716829253528158870106312954970481346568212163407507886722304734910894264467826118733628135935514250759091847045685613763783211030237367258253749349033387301123346535828897677777425447630674534932801194760762082542531451249663123197726691856085010588288610561162860998675039070270847576040405767876117827873112756596579246728462493527956414140246097996593115085284330237828653734192212913335229515393447459737804118846267723885854860392562016032078806448129608346481274583742947931306800120057830342488447112852672907191673655844298090415086682786533458032716275934411733894216161852516156713324281294524925393708990722858046571994560697029337244524147829453312947504107170862969012399954295243022335255055478802347999526978060800851249865275860743912348728127872647893537670868710232319936824248579116643210426682004295312828160977856847757658392841401364876658629534316567370198666647035262714450741293137610671724923971155323563668415213256445714045586433817328720734451624468414235163153544454500829871301812129825946958263887483327177791021676321923638127153510980103079189248605868498657708465515312313778611832078211648422665957552178573371622955757686280863373526490011251212889793733676710615601980997659281413755640165644346355331239000111280156672677169452356157715933839242132112794471833602171293495065663689430875062242042413274504585186821841568267627144015209154827416963039572844559838864041318761006693874351878373224867293813558617213493026142856392802665242383502865399153301349993700644156422434493865807876848407885585168606495786735358527287899044191005200864896585586878130461325318443116970369921671419113035181549942560741058843639129516155036594156168073849746408513088511654318471973637557668580965406168668908774246363704785277888217849705199031768825134925608275161778374029411161992989566168262816132814444142632766131051523291310842745476307889856790646815113692932274428685291134978301260852698253429237819731194735591838954118014211418029745745401474153368951066910335181171487517351825071411847840037956861364044153442686257399965735721456267311211447214945705799293540692576906766306466754183580835365296712859275203916048503473968135489189681990720067967094310188671319712166582869072759542498122876868167178333025469524996577005636640056522986204856185922339227561482437258003758493801901063043304870742447408147247574266798531045460771831791132481933742155579334473534474510530297448296630733237923009045662235442707589875582590567143629642176974921593542324997673459833737407072349966167511484876204563325800801358744516045532708351640488762257165861302298221366320078667008425740643130443861977942500884686783370894898995382302354235768566482715042010686385568675602162644737048442040588929044986011219356691961644960070787531062891030523613542747510446214516028363146581900158802035076457567838793556336118786975981999747360154623569855755908782193028207465889681139740499390217823604640910015263502871316630931847588948141050190179629705957414366595174620727397699343416235381708499818418101896856743559739585871606948679986492581791709252318432682505277442543502046150309078303044693568698963867902551493381098460797798045883347169580269082993801089243872361165626650788915854318590215636165289212207935816086151322308635548851027735708025458754021989382841741527336051047969556122926254173770785259186997539572057120039284079372058469323414293006033411103539454965690294718276782469069698519250865716730072615721556141401179814877908528549661238618998073220526711076705434323171274530437221714145053609173906760238108322055420650818932193386303495562170701886901087704470242838274744541956082517864627615365491292424588278688583030101633873709305856422791814047589889784518111975074385506985926387413875079065082225193476825698458549793239610661238374993244021413211210078884991870807646279020699381398479868429809946754079034240804374109768613772445918459867630172464580808082130803264241595299126366371309438838792716042407958590737955454779354059444837802950370520600004657099431517623807897714887004616533768013074082161787979388582201885702827749214372380075785825036535580181898258947925440655453881737319627982977554994495836550519792511897724194634337267851250221380741360526585325100556858236551900693548188046863516263396591426655800936451753045936365616188743587317404072415983810148774990914893671679200915731793100765797492288354282989475569206096850017169917409954929714776935332770304028737647452973207513166718402102610087252355359006744736237529523770377315865899500879985728844493361710721592709759106254595050986218884986597391517244959861058545524463281504482111236739410996349583746380040580130894791847650184712549624864619160314324196967849681701638492710233276719811694632350591377427619991023479188369070017818582931024231039162172957756234264779006516739494903234600074947833436429457824941319835755542987245746711892232139925095885261417507899768194200011571567612328399704301176772568554789993866201439252680420935382712199463475058779555170119308976066866053797154517825432571849743602651516604965146041969381107389442049433721779907445470706193688016488728562414541760660718259074588473134793867091804992262905593568075903839746034550169169707340053349114842127136339486822137137391867368902871282579879078560076067577645299200574021995237865122699185346594655442395764066283785105772571108144772465591688745489423167838358004436162870524918734584095016467197384421956844598903430391071721874695261148201875631342510145131929536877459698939593622312626999688695694270054599615952281990771425904735906415605958417590974571134574909964287972838683371129697008614084165545905468201730371739002262599579526337077781083387025073339176334035576242591342755518658714492995928528063731566305324410274715953586073790920819625959029858514578752851546991035526607338230610787215211400878687016952576248824146599330793391428703838497485737845513484007934010844899612594131094920890117530068783177626760150082975121220032686095317384329276148116724892073957637374175648266294320153822112052514059112994785477209124978911935394052667076359680612272347373802693551952773252247953239074527666957582920470067972907020968682755801232578628282927097053240156400431064276856642308151666962428659647219634580407135294218675807942420707981081116555999320213855082036700114976986319262668015517316605638623422853008950105388916060027162875261571105500605808025949842400920694810761227189646944078590293895787691268815194668162614251219501176750024995006462366618125161670363346357651036387730684493907630764301012248725469190247860922689012830000827365781382398670425380985890151740921389659120330767997676994878311600724105355463479158501347666433240660468842111134496103524623485965268369729492198603333947711061871104345514720417496545348554082759379734650320521415946931461281572223540491942222659481950358546624215081568916679729881669792411835181965318224299053627213203655531505514375954697047244843424254683337849499519583812598025259201468827997802960249919853349487767644229192983060105488058703976447021301852703700791701585087718674043376242779941396780746619453535945268653191696121486603417381654974049622702768072124373674886127760595974414341326018033882358467600244860126014396490955124811710995095885291803285722494010078259910538531604433088601402956598038518148532941171421291403887436931059633013435854838207740899248391567614257503073573624235826817350712763870818279604605158511159330037843457845092265659265355073724185166894248282393710127297966313379777353715023603724876722544595073181624830799814068802242582911842590313021122984221448109385746367849637270643948662712258599277166967326931727318707319823074310838665338099412861521954667010421740819541456504801284001550213982082282351685355519521051995710506219944367515327845718276320527582944765643975528759961441214241023652198609024807265453592187165709352490826572824419602897766527362531665496188353531151115293379806830117019255749942062622359768494802989295801773118716380711482325637397397840808892445946791142922412338026673751651545284485001844529436832011983915672883465991029954125998075953344801659600402786357869884256062017231307391003493866456595419091834260827834958824733421226889339396245270670873838337106990208291522683970868331574683098338408848673001911169403440435544996108275753804152423559657487014923306918269541051246022531753690833863368905731988290482988676782241391361857350879533629733961982050094051688313184977001571136034494260455103056167767202631239881437290444126354575646486191627045868745293369753037059814755284995440577593019470470114854387987158180323323693798064627631425215821686478382625961194726199235519542368968957243192508131364407947649171792467374764941213100976834373309584291191286204644416521561617586079113597221779913930819812598179204352368016334886105900508997678387567731857329625630563878991564806762389294431709511004367819037312969155710394710390948402696147533732640276599564925268232697011007447659692488179679665349557182264093351864666898272180171158788221148025995423112841459738145423574825484122178805860806911928414475490257194580124074951652034246075929555940072138196075190231445887671983254870391828289124907720610365797788805165351535946819693117085945658187032700473734808848234912417974394438111035259433600488582418126134389750957316725262417338555249868148524093021317138470433379114878400460307387271109049715732080655765068619277889783126494244746425170912968476904790126962558559506617569508919053225954338582403167663016922830941899886925597820619022451353278510317364979313630625226102837983825288717239036878383926193964547510975645183115492435029035692633944658121157067459104965097233584782209019870773869216566287699031042301200726320506876357373026915740790246646474967133330565948108962119840313170582684705872841608015143737233265924763432978063288881905655632156196734302941629639173978890415874198916432063197211339224722516914556488691218320389129878791762557441063570696451329584106721336755162792330692868685508647085482324030778861120366207338218999950679484439995671169292381495341734466359161052488900645614501417780339434194030591139552063292549430250413865470517013256836748930084371340180043676926900436709361498064992326884960223067528406373168440360832110663650956061787254184399189034794076420852292721026500856193308523581134742841255581179952017064735729837278811245023669904591930635985697810968287670985664830973542658452366716547225932560827427028221809925144796887170622791868325923826399536527396734763611784003580786224268676550109534007600065358976297093647988733566268507146509427245085829441945990264608160171335605591633093188861704768189919184812421516224367630065183705377986687195904457090062172338490355797084864436328846130349692884224354278255597057108113746721787779767884692972358619411282711792130885572042610843300447228905703214541088167621359290342199416657833503805587382777815361102438777472106516747099307508698241088179086951567613498259186533612581454358526915112475862979631222961314173557409877089635762111311045997533188821465620911967230630517555813575278532540910472333775820698785029399884368941991977631040352357497452903972363926712061912258159824565448368091283307774144145955445271636347038244651700825108694562389688885044613327455104716256147113947653600285856869719754128304194896261439823505642524642476946236987005222178717532662616546151389622105109129808666836834394202126374685540785533087916517958754069053755480797911551794197415925640423772309180735749095835642309344403787025157375307043278183978029302665275557976930407557402492670644410974566100730525034919998619887338752610404817386635685148675218868039755522480435172247384135975867973776835917039646535269080448652947667239174241972432911780870389845791330894031935106721601863589143500620783679654073822988573309359866732093047680481158109844542043045807978671335073988717025069056490560192252102932429496356351921650618262386240516241424934329182610859134552970933517242742082129572237940004664032467508396071701107433798608211141781372635583850716241999608777105437626504563561675672773016158944056264447365692643808318952990317046406933302784271918372627885671741674962346250997103727931874180024768693422676603819248611777275353844754163234534864578750754786897431022735778970050427095104475175600124092799957039532590255386224248977262792090734682828011910912482050895080742077748419695347111888644458844968678580832423623906614481941806684532679177771132540478965653442615944558147888755830092015536059844556601565196991829356212352052921486267966136050694332964153343899279217886279531994685352827088827433207244741136024889257946233233917933278344039571390170373587713063374300470840276332531127398819754395093417102767447964869829786242710162004723917556788922680368075421614480518665804551667374906146092343296395879218405786877382112442552721117554851666272542116666367065388220703294994863709829267877623781636672524259525819308152721877434418125039797638961419732847452654908977506285038112221001542208255532685187068185225418409467532088681797063532223341320323388382743981650188041334355994753862295197512017993923750840788595268447560562299000151676109872693432593822324084052980389605752534568233088423620766400862765418704139781090290396209732393613005909439081596334607865877562958341089868491091778950851192229861552598973839331392266489376813408647565546269218737289729039783659433496563508977778085257445789460379863498118277976198307564138883831057003166457420319676029391659806689682526931228984298371590914147073696846144375805837685156530396550207999853360659708116343285244716749898239814936859352138208425935254905827245849485094827422983205268444354714779835941640842930876958713584626020513184366634620577583352916491345453373723032008013170244193756018593895989842877692875431311093317437410973168016866265555401525762257248488030354394135946370025375611021153305001785316927366395336422138346843048567409485899052946464719871652880509450423861078175522880269044801996415808936303100146407020871320942389341533709245649335658585233698926490320099146610453131069553447355154334864146601308054725470780442347599624684382755480534916740032178260641789863338566386363781215893101971673536249209575817373406019292230534946649729145239790103839315644981422477615809208642216143382677688890448316796336230009741766270669501646087617648764681121470830472283998628286163508671260587400549194411395144559844321778975207144150116291190903636549657878024513250089621148763190119424706051204886880064569087835056560938729994204113185246714002977933871838243980288122269784248668438367284142899328761667703609467097256676798066672003138603136890397820904448052810967044463808685054101171847276304502885481895157690429045932798322774709304005452399029793923258998778844153962235642547333590829337772787731414877589076745355199681304397574713235403011521907589827284016309766516322331721005120449536191785835380897149995097222236503606965870693415502792696217065198370951432075246722470564175387410830962827643722624071103354919842550242077384738525603454308374910099369293026056039874238446715643631571471856580963962570994855230888340329259479292020123049161071787084053373671029046186471679224985738104869926406864338567955253492623865695453202607040566261510384833826538606470155664162180762895531618638476882010594217182302696417698307570217877060253776612022104525370396735425399645599635277655985754546359260431290323533780338982306713092555727669496729742547622019879167530201757348565413506244979847240535710884971280520307184168540968765595206345944489209999818758025236533504168881683289030732165074359050155113322796171416063187549460234845940996886981046427880405882726951959637628119958857591058317907712076321577587467759800852031894017381076679441435956726291186109633410719580396370407408056676905015127325363806834721814912131602153706768742242888564221315660424814556810602106864518781264362056471451598143385242497711606291551624900575818221256463710478387715609807238200198658062202218429777260000501538563532741713331044452476576126455802760444934091795224643770797287640646535890323048359965751297406792622577878069654935836638782303814442762748195648730801928584785909983436390920054972194878099137442210716513524021278654268956917415102183161416116229763750835332311362546789235705939659331231662764088830044250967660144732861216099480925885409074079852481770683238753587967826478073085869538583811028711967615077619028547071672193411527863273190390940338447476486581207968900836824233397569487759545203427612196581229433105693615218494801784697990263335307848858945164167297059314122334720901809995462482608854590090865772582201508813355707307919536425001310244882328414929129973623882801095135444818584236356815782642121123868727967953259426773399258338434431436613328293354952011533224438790498479456667892843378785202091539340562319642733963541531922802028779410324201144107535377256044947544436282281539263757104301632149469322281602055967268647373422362531702820239192387104303952948722010308341796304082788431221548357406605997615847590885005361741531952140259328560502420088953266710562683514908121671925299302530570288355423720905527002833189182550186327036021813396840292776008939859417143835513776308119869393704269637372750305608934579589753969674234306640540333048523371151563392336986859296261501656436459885708377287753858123878708726013544872592912919018350850330256534870260577041374394886149922157426034944476884903530642954955071375128065016887350575645810991916181604576931345568801237584711337769392625056922200910530793561479427806957213682603942311178610320695863042850092068885295013676625341925575650837338705610389712300647914093409249342759359249635583266200407979449514395936561482705203953239175807510540981619920874048369149681667286188096455317036845516394727491586726351355653298286450695882131804978997637257960463239845988068528277489164217745937274553727056789245623558599424954542304764495284888395444417269627645892746898407243771824078116888675089150662277538066043577165400591637767765702652362187615391692762649720158319499603566661292509425524223652476246206557602844191387434681551498396848071806302742950860639763120818406350548773662777090877501694076517473838719709677423971091520920398485763033746956478423898170965681947589384822393609362815892914277507702224800653869624848581303766390766353239769733996152322415253609087131360625462174798060047475790588449166256547279501395876189585880044472291304122556342874409779038617787488717017042059874885004744473626114022413735350983601335218958962964876231259815082016990136096203040941402078398354682900293014111234157251738441334742580471124043184032764381857455901102005137771909799482661855616754357055422820054058190989150783612738001435728530316838039657590140462318993390995398701621560437747413558506476879954977756329726291899132865403791994248944157368281086349502883728395948669068882449445310142998224668272217296477870341662562893081789466738598389131117363725827300617670004642214990610491688842293588191889797792866757639192035858296584557538192563280935705591503101353037869811708215411438899408556703377526325793875249415963159693787632715249526435030201414174493419360640189561169273703132329484440670087590529175198345559972970349626167497676362242549316574494548489090626234242470626051442484419568387568609268093740894735710938004377855936246502120690826323499346861041678254305102515288336624541198258857113722951242864695898841216455869969976846913690331272317077687740260364802524240860626141029849275418562477184473794247347843141279173017473158555239545615061889798975801345907032280295927148834316804094823780312046991722925920801997925577409549324673487870754216594229061277682814462588125691948718888489576907091779172726061843716112450325277523961674622676388272119034942948959077594054186239979859636597561587978712171941050867143906655895832676574723017192236498427239142929197131195272982452962504446198794611428832710030946874553571507336381179820625642642550687586305709972530916844482542996958064711555591178569714544244396141865600605101899786287590409971365714377476960240731460878229066304344497683905800874537233326125806014602316516367233140820210630339149730208061317443592787046656554684445520231991611393704171794260337164661138055815521547540310040654010503695528243760399814660171808734729212431329512283235959815562535283500078680727568757063140584795318610907312516538596338193862295369985060112582201796942069254270241638768401510731130089247832565160302425801191906085820313391406748757259152536994024587332215847251011393230878754123680727038060191049620573797823061195361235156716543264569686064722474963185424712749076125992373369297586813649902182128795733030337048143158795084896350853721060772132129080760013584260048035863106820475306942647427493996462859318079924573944590072556189172537699115920296282431265325945819729202073926522009286365231181494401895288918931185999637959964864627706222203658395889913385914427890947177829269984135416699099024580184244248711728535432557915189026267771897656207447632320680348492460672327942795424319338917258666216220659286608286991178744454917487542285496826948397904488870073219307905371333179886838510316558656683974902948290038573750607614341930630421173270114677237899948570123492155952747678076880705924803335417920610426804807781862265734718947147469434259248130772070199003816667888720456496065632175856801717231830854770063740525515936569593454580797888027094963652448193048622994062854773411015684183349748335037206934849550741283561424889702334114860143626112812717072657619046945450899764039524994100892702432708886018575127410923877148137512457322936765664425553241303197155744949664698452137157101323792361566030301149918924482385064680263744623826066971451822529438439733301158650223501649975382146667009532887799880917160599740230577767610985835040147205938065962536858686174287720080600376870942883592783478147593445002038679279953846493881825289133897916534806532199454307361427282415574958935873686699620860820162243179016937439053172782533387658791910948493380834008408178932950678751199326395346913075187081162416161250094263075664907767426247051031811372898918915813274356073734502325388633673620709994350788344103519294020931310147710490278127396589758044269710227740505683743995518870707181386815129074525163284948832494960212159174943978157456532329238831197744904277546308959201125313282594018103410901515101118282672118703754327961816021313099091111197894700263482537636510199396526237987121161636340394140763769721279846879364651265396225059638955970765416070514255499807419936298016840563230053145162823497607103322094599803175390777547606849338082820397997326615277118409714078691876239725009789209561565309662681122099795434302733041443666659639065996903459452857848328368935727765781400661632851208655685424690555016692855673573006671275756786961167437691621415969015396280174532626125487345742408376175918392417505574204073927473547072051277252065792081924429140826483195774218591913537171863227076348157470685013809791647825613991166479853079411149416354849038205852490798861852080878490890376136726311247846648003257542952088337990923415577042348524495435946275323086590127169155166256714130643275809503544532847706225314451420331104596274849806336829931153198210288432942199092813633608740051008748435782949756400122767079835850282728650184021730178991320719951047173297102739102696195220995071302368405177884440675229760369265744623368813463528168732400292899071179418044661419493051311937637783302734744986618332790182317423113336368358573962279023557447903552503036639842868782645285023614852708558693464353552711037225366653770993681596613062116767779255510460847757716335815555258797293016345497709623567150018360616048832214595138818548682734564663502023485172483818006460261742948391109098132343605584736071902219247604274793698723959033350129043261846141400271733846563267255420444232166756146208194131116286811847515419724629461086884868411287450038686400326086929634852440700322418571627425648613089137647709429261931101981886365229069936602906261533879249461034581169796637629918761367877308102555201346255298512461130939972089720863368091273916268309118482364287525063734765100890815930793512738450361291499478087743369169084880596934110908584279481824782421695064426784175675235346166514799688633385265563204629844750845309888537717059824370424785942952201008135377154150255981702971513387131080298365267230990022711029974802302379708050894642848418810174288034780656497890986521087814277172387056224909729739006603623809180460641897175593816078421338400644687908142091165952444421969656790193212874854140779608494645596441769678659778443546114237105956948198885010328969011231658436872762323786589645347605147222194353057168014628830193803393972481568571941629572133342734665277951219078252851014160655768255836260806218738164426204507457323257210780880052756478126756487977998004285977001581122746846175815505310565087382913157500477351457641044417098896433276200982577733357023658956237637943438050826690282788992174745180563008484544641789340170314867971226897219163147195168775356774052697034123225833110308022781827054044239347389201931440665358932379115047044290096308880824054501005567160543217532797954326080896017868607036539935904224835300680336362081659717915871264971392540723965484409644544794703350081849988423824019407706204855258437972498888444281569239543791289492406440865315455169775099354214484591678814824169503666354578779615612282605079894160337085838155357505883067589256841717289076654194834619813533095567826873970388276477511992740177277781461360401694033659122014478916406075412601096070783871657109733616997327839917193669034079248234236935133590385659225599980126768927443742385534526173538739563223848336267188597936031573753486518302007980451666220165419869534592670009375624960608515006202180557479364279422128806646434481939175650183952754928553631493273199997710724789308909411606455326301048055703692064325440149233498431064056742305109581461204516855553021107004880967623865077470757321560580129133797976978309800865095223529704010516043018097392154903121435935446139425251998019572972219542007063250999375094162935731716194839730060230920406729630212751345511418888933867474893866087043859746679167595131231061332754314032407150927194461037310190909146096388995888253384401573807006710407007946691406637637378239683688990175540690519796521643993021472148616275316807129081733542185728835786932675073103884080948197324592115277736227918524680234492101672524090589329867346392959265833220353994224822512380919697500702859138557413737148283922765711211644755639435288097130803077554067949504798639129895696366406632781199135641068719919451695557318816554227961204356431953899673953195405912319506560034536727667083149094910162624123833072926481410120299166536466181470090864957962773387011694640469874039851545716680722417006622617179733601770233961775186944436005978683269431819368278419393487938407346491938522924500118253187987454023940066034626943683426907486518934224931204467886126257561152737390454118241453900327972276890792100570514213962953884695589190451623134908575046349978186650452382352351258127010108444233942358192525275027507966730384109153963589331725541725305998623710012731340797012513380082608281179782212942106638619572943960761435433425912666839638735276438471746904864045369779359657494664717459924135611403876413189817621951289189447052029050701498240274119417968549593841771499793651113420852947914153406848158651943022630861045085078049268261709654502006601084261178095788706204093389547029723814629048935717294274400663594729200771570633512967371113272806144618547098928924708788496447794141884350418304940574947118827813409939110013259688692663174109971753641502375154490154310172765211488895636846891687328592901705856329568475382137664169806539783433402971155510798034359600849870780897859920470154676584838951908961153197329403791005708309757879753794279181288704986027464264421052954498382852563625797106333529975557618334223641196865612034870337274857111243522553595208836309385384519280494850737916070933882070265303623499925563524918698248006556631828859969828447770867308392016003804856311253859496470684450992208770184269156205282042286947385206893828214466645584450487137331871030418919297124127031972318015025228889879427265101104424864327891028798636155788152743242373665860601663034327841227637576485420761730456668175969607172086312310191896814725724699386383552210855308217579335259419427109797720189717591496936950390742591326767204875186303440565983780618977080118314941465603477369487454669240447976832480354997655839408505524395861195145101763585098143271579370370456064887553443874515516554052016131082949630125750697033586835448902603339593862980055774743662171231910967621160331889026559773309516697917741219022097386764826769218801523504937554859302092803774890144646735937639727126879638249089262129503130048819096061632559822038836656436432950922227428111802690987743474936736457147580833111913479899010840162368027222352876548565854197605156474157480135795883010209086028395266529846571404009363637211155116232566628068854257611673335628637865940108082378877340328876853259372532446753586854868521808879222127650242530521316716503266611167048551816707286497453670104663501057076747598323132630840662055384708079811874587064817194338646752806879579373980621291677557792813311902199378156101222724734652758659024289988164906892656486377241951628241602470833556582577074851973350651014287822170162438880840984631692790466521462124828396473796443945511211255329670857201344214282040813401551621974770816334145017821942404626321240373811793751355671643285240442763164684444166665239913411468240196389231875418076584946370918903866756790831053857231061157003567332768674672835978943284066947588392630295043285819037585763474819209825138962998389582245098203081488930650190163960155185411134793597996923428340854974636317997338166743783378078225153864281554571141848171118175908690924840044015761412629399562246016477246445575344711984822814696933523352013130553765141095419506499868139401877433957980385029259184870502752606276713358482499514522921853828700227191234598553955605682114576039000433413559453144475138372791529966514508927515816966689408863085051286750416956989137535735527085804326681499287472251955258529688278362288039733783991353193227595584006317187761327224366318293135317686709863081783255149622368692252230638455363506454539605465598616271621666267102495300848953637793254834594688762371526595732149862660328670813238838774421027510034874104886394111162719047803563487619398316980408557363990435555754090652658525296830360580542327943251938762510904913063237924888474272814158034080915436367504751471180046814232536631061259827680908428316600664734370449271328445179431345213565553767860798099607963191821044228837286808997967459051210743955913913772599949360512525774512424659748187178415991995200320870385476507148089186233133259550779854514325107390935506085377509515535926869944453446295722643186337229424346937194210759050672294806292840894354229659570588988406036607810349411346474807467413872445834272666648774879059272770900094235205468796438121282759457458045011335240585501635550204744060294337093070052346754625147190068670146909488238649410426361861860657887278175060963175513511305896553058377885712682022668078953757562872714418135596322319024767932285954301466135147359039353650267578508711651134117398660478466998502315394611781188209630896537098510381415131027449231876247802318710414982866107662306609546586268710649609345895802824781456815357499883295581813753981481887777075185710939272399591667746423635271894743397911333829490861286419318922341463096435143436927555469537342149262569761466579062933450739261974150092917565219246537154394114040757216989646060253704417739514685477104874315383142011494976377970870455587829510887071612375122569923586484789765794877981367769035568179986969880922787323512686810945904036420220467885145832093185456215712666179504823788148764873939258322878388687887629088601728734311566908423775512978754482519467883837145199386279065247700795377571405816367124171459762654458215469510436898557064887081497990368405754857819822903324356377380586016306857936025068226640839756520783943873471243770367626084968613849763780653432023336142428239972563829652377976059804568621393405543816098476881469525566476335269843950362332593027119000851453090238951333832963929749305144668163868784909766722825291006719617506336686960598734354541166534507704512589742184150930996347906160846529094625620835888961187661619103543908849475188500362581765697243454600019888219267843736005803980415193261367452831395727041401639414359841421357137902961168121473424275855913868207190374322126928571156487872409971151465009426247497299342607461042941824366133286565476905720130655659792117819288610742144341588320781820637942261395117616870953644057676765008822680153933450809534929898509458597961390436664929864692974737783118649829025083271470942959010443567335234141946681621222479967116612766570827936027944493335949203449362441452155805330300122656222406843783377158792460146153374237526305500171971195602921423589708136410012889360941384967768175050069745264209467718868265481242058424485654077064692461225725654883270665061173022880188280595214896353693757968495114240080437290573476269660988661013722056015203533871799870192164103745928788250251240782970940200056191730708018187041613483143604992283058881255228226321906869578851527759127473619482192079087689211393088745726339669810259915560766202712267394046287554171871034704915095487332188187361165651235578209981326975520836757065585225447312120791867784622200141132512982192295022590430093892224376378501512321261510712389753824782728664878037809797035566706252824011660014989335470093932671470265664411391458533256538378088686009141228813398825247637132389355043305379303862334124422377939879286868103789160277420699698232584164592593974304683896840010360132471561863961953246995933318912497545319599164976681187116691507566801930090111969905281960020473441682880027917815289121405967623961374008734460552187619953790088432302635394191807103536717380691321481609464576960079653915833715514829393415083514665704791007910791046249364706293979830258525549293323679310723700192408682854831003490527227809842313530779908533695897574997138927745456632614331389367408155421426194288876606603837315895125805922334189706196798706014565430224842151209725534451348585417029871288237665338825726681291672513522209435327063185283629769080748084770091103427030717865088899276069802297007436181986913518347155754388906118583961742263936925530473040032339718170274673518915755461679963786085656003877119136578669966135825266926173843661028589947208895835555690513620362839621406644336162282742428836266734603066984525753872155521369185408624705569335465537278995598634372521542238501817227906343440753851641945046824203239739898506825917006938598260068906303300207749953149085661451198549972292464784423912382577344060758736762692701957425603687946107020145229513864400911096171284486612143316138889891304743360197804823230310793471805072303912378443013668183460846694784216596269459954245159366721518919758388091823576627585098509551683521774237106707647211354034549930999424744674185250609760970275328206517427078367926481714880281684914064124972879974060664780546555232809240773759093040839906196527163106875245414823784320810817996292196915262282532666105939127114774830517223433631240823493994557244974900133234169520675698749058127784041275695992279141823704402353268949138496146796812048970487291472285380979424097124336748515148341028035952473504957113098961979590176706705564177560506141544607595777818829253182025078918201161581991662116199272695462471890007521466798223262546646561240848947801322959763723691965155321360072946737701625053145414402338258672441669023990774754301531305541854957512537705603749256863885248234356058212165073351132370108623977603617034525808798152910361809984857369203391852057783443328579784987494263521372394026248145737141312133579672465287739806294506503219976894091484618345183138568813198365961820920870771784270253476830745999114060855701800124779699735529555452122574321633280554908948597892976975400113222145409481083399502051859329993026855764039190779970789853008522214836394019655931416162635456252360248577755128886732049185108377825376370598696221004346458567700275728381193180409711760274373638894891756029860514522736728436007176320793953454667068616529293494158272154061997716635249253480320087289153840596866527880730385014524228558823889458345925911140142829081405752087085505380785046590029567989427400760543145796600151594269099848833737460596603643443010373525730601333514172107797245833804335658999905792778903000948669310594097000008586594591733069354245459373679311292665386598686958828960058870990556284576908408370337502890491338377962930958952488349313388035586621057099721373067104424338191853933997527573387080131767482783248606927849832027921756581257204035448286412015684212556969097350069966689213631350963615548953151734051492161329192765634260384235917125459993953612705586863336360262514279508274136573179386288704979454411808082946673264080174801120459426620469655022866294859823329050579045283242034699936276198394557219668599722871770975254065386267310464088511015298538163373113163046752343643678067620179754335804955246170877845548292864473249773961890413616642913727311243088299254529235518759363891700653908171429258607294959954524451541804649144732417015121732605779389948980023317961702130244837957375586302993977868342095898841886091988658099678472505204209888141663564198818878223558379225991219061228873326289589700122885275149557389023992103919853658224199474149717608999128168909926369935769364325740170377617625715946205885285136008064463086865042850100586076199053746269372337203955666136238320714373423296140542400907904342255824182944699455206191710093441199038359158081031418284495080822604277986694127260433456712573307135199413234186266270618805588794098737738349152046237097024722520244389957377485132617511923058973463641395142090991757249981928759307196698000765853218278412041441492622430083660321412638143019994793908921919458391820771457719644926199933207787896069176187112166079612598174483054203655501673742873632777233535398358510939705363917280241987507166282696981287433080672434515460658088132063016379565204450578531091120422071026510028485747627421062545043840308122858522207038750328047825967457489484556376979877508998321140812735106711760737660182866204891816809636285263640751493003861735782125597354307907025163195861013581486426265049863846971557348088221195495775730447969079100081616391305183427061399669209589378445892844763578366563966701256740204669673916551021160740733969590663428356039017054484372216089683033769283460824389520961861392725191496471284856816774553421614140187077248691983891898764791445675828341202268635175499048846856703887958408000114823273892319638430014672095258578043286417465406694460551291167953117346508821412419608032271414295582974453508248730064898315226426010484190242868401746359957861633041745818221216102763592506007204502978519992102210250027193865858069802894704979346634160835733101782548736149775642180364437209829208766383408580317567706659204540963645422761850962229457287293839182796324546444458410708852472392360268149272981960935948156781288346846395005176385089601695894126913792152505790092749392847351034259484294371523884430818108140990307450678039418840768523916725611184169949144517605488175916337121677339650883379482276295400330849891852137617591250347328878120216087634734657111393807728670887111664539377944703420745203200464211633864137528294231379380636006017520133623055568531568009753976995268681065978811987513992207948988883812439981342026763204256607217056027172078498422970038092178212989547174029128503873621249523828937420115204243870177692154779392905083908990212319249905608328442889199074124991433398144224200494715640294796486908975960124260649393885041602525963583338893597621225724979180669048637831178203409978452702373035974506678353686572971633298050003384471513609559604662564530479335546851297477268366918229532561606171509280338638665420072264407723830931230152628867948922658590680633780717272101637345669656100220034327058540744462296050548091484890159908261209573641497480825140031193584180798713662093644811050379080428461140630157780654689978617268186945821643378047545621715786480675472940769691247275355525651216479278184121491541269473043547605675444804097430119805845675031285357747157031549807459763318659289014316765706396308987148949196093610537713805598002075515546277644871703007900971347220958046209301780417618284677440919893921081643925086315126618075971206753387348486353814761511671839218624093258827484162238937171710357808668063074651296587499538429281209638405410888507953832306490389354234879081814457250617084012234832684674459097814837028206300116900776568239834544241262421050694160801958142871696343723665631217063860198013594254978253769975301646453661685988570774535240051002537996310150122496550896486905235682454267994335288318111118764622780788848077940795770998513625452959551425231464811163103163487291091330991845138125451147147557172414786302697237937116058763482336730698789064367820121666176434252939193314707017018833907764151170622032780955318530757944543967713697575373119295583419600349580951187648915527407171479374267570173844396174554784063797592665422504226805887407615060104441164668163546709574502816469269036015841743637467290443575018106002069934417491939675772703373476797979890326849462119852534687142134587883721090141176265698812604399421472731085700540587678878618577256023832611218454299143657691274564373225141860386988448082665288899603608702215091310810495555517796006955331884520974547637333441073959463809373898557565952110108693335262066756581268726793540803932877727584853650313358663808211110996215223502373714092608929360736525648706170720156978906567074310608790816163461809511972799721509324193416081931872362104083560996769875692738936081782657790095255097095647292563647889207883764887425883270403757547209247369090886481624401477353084735038048116798448473469086671425783489480790165759826204155728305249237621353187471175972368386560272811901071467335637709230974839158044148016581793086434040281950640498193361941860046918920821767915752866127615920544054390790700245622040303497995906127890804436943842313900115151161381493988478692552308837162857808126999516792702679980705799496864761183970767909116435587965394609687118995035360790002412734070488054296416210641336886734928963102642846172092822081534672912780248124398675824295079945956486483932063147888608203105593293408061326540879066548414776450680296621162298057484134050221831816004081096949556469544537550033041996226889234473124816702444556520213314587413305110044859178544363511154473922782808598616144622649501303748156774813295748173732054813869835762277566088947419655092747947655693772850277560969813565532900118107136339487069750877457224069167530574759114885774255394645927894876455021720223727822313493738327741679505011082430839234020188980912426100763120938917677843666420250824506045797024881979364923491535392534199367833995161685597353992852202293426231594111916919305942386511789693059076976010601108341438959207343102459303526468505379150630920746411270641710878077599843231564999624530975967550451258689791976954608306639326157183835982223614184734228985157306101362551119568355728950733406403038532263594893093019979327131357750563489526564801218024521120490774082614057409635742719466212031280981117664924960322327913597121226847436770631053248732355391811642706464067645766097928748261578754319200177968892268016786429178225814666451501724513447253492154977704713759129492041456054452890460920458157745708059182557190968490322999334975438293695837442560971178361628972675640102648343551587712749907978633756731832646009230473723970693316939657497563119225820967414562763446674280964148968593490528703205647059597689430149509120310989757520934006473037785999766235191382158773995685986313881897986797329460095544075299957496503976728029087021312957041749409044333366615844756970139647509408104624804421608431772520980948919676978377387146633857541547871641358250586195207418116493800442090601986366810344671391891219177734365832216032178899869793936879110877247083307324061055258947107906015158894375293986064826512010468949758600202428753052024281663682150891073913505703590143892840965054928376217710989603491565707354697096242837045994941404494310352729087873182495819869823581391616215808744069294241674912416610882256860832584377513471563979570978153091741866045120534668274577777401796734316657244480085040729031024334960597616626424568884138652004010635730623892611115944578496885634502534376196569110034086150720906152394843700005741007556320193057985517841875023108987654180321662190704114873688564257044038987535044667018497312119066958985407578768082278431903432442735631918620836729162966096002758873993635974204650094730551627321030001945677759706710276340707425138972978451334596370484059474647716189207301289503097065522617941100519179785645235270486182289871810486971481210754615474622707750477152144648202924360442865466986845654413081781929874663317211277126925931369531963508029702234748191399430713407005725389426049306072318273679460732513823445216779790278095007367734482236698617820515191797041847007095203017801061523530581255539391904855713432735653649731432426919061254703841661836385373721578560719539496622675838662521492559106507011946056467846968668061455876947867811260488035638715412102249854097883185096311543022764696125621513283649286253021241949856977642155929665390677688108727573083725542874500528750255191298765190371690974764658310175359786134373702605341711111234595262712204107579130775499431457427829916407721723478446625580576917132433796306141500349254672900481121153413241841878551536593459145835621074043835398918028592976486454500375149934949352586345401821851289710555795285499663752413305789110311517612256480702427846735856864740759852660776165090342845814916198342942650538368522307098424099387257544486799095038431986679872438871889223606155741244852086950640720340780515716165368294800807069385137997187338080599008598160312255230106255798186215469149510238861971471098125766101553529086565109235933370022939002493862929749046049998260841447237077994882178142854897954531051899837380913610686830416266148691282886777873936767805930886580908830439036979197550406874500886902740947785519618864912860224769296700824049692656872131873960263940435934510545536449414473986296362775704184472018708204323209932885362156469205310285133696041279665091595202402077098949045607910935680972921638458379377771040334951348110755790473018510242299271545776172258717132598837043312251181089781295500258391659881888356041960664730204223899590555589012095425609095008508120214549804332434271582197801716558368199102595727676729969165160491320228576174941627537827517853462374769394676784113455812628499684727500605834957446991127419596820327162687777595199897817996281231454032597862402671492575011365201516196154074393281380248813899793755855355167761574379149095054738859161168487156945120700770997367928684941072356696840522159528525579812789723390004231407361891292964784854301602730494003412185691072192884208104746564729791233430853558562264090349854938373080802696943537526044027954438053619813473480813246876248159378079470618562841890990954043595182479471663157896947662893165887607555982360581848764858370211514825394074365022406593143748111574248703410104324140902186772298097313455760090382122318916757875807025471278663857908782631862742167596843766252359832529481892539044098195960400736317802361421124748707868391728427362272863840624379214164218044619255029223549812672215731479700256428046635548522094637984982597045060075579605022649438725715561282135674208372288105538732778580663311109733945898410996182617209614989458230269233986965636804974168424484629142874129492537583590498758409218933912668303019512627515840273964029367589514251758959357147713509288614148669470783610701490844637361716233580730217291260443203668105517754114528295593056532455550168284211814104455932310312699800373108097297722899453380327699920516595332250125989267925324567365363646280401581602692625351210594274902800117834998617730326376211633033741609388801085526272806804532442004847467130216605815793847961516963157180768360599274332969258802420356898372884666630749052293713759733456943837226012428093949101647413273258734543092632682175168700158823121097671905232227348787467069581490337752067684653731092688272725123496988580275293822146886636049076717330506612349849563475841755874501914810354817016820047069431112916797931085818739313430733070311443001073532070073947979702192377509383435485408195802794757836958151276460108535527555675229067779962042369656798724978645614107959424119859313998689176999362419810398033601121212075424144355921679251601502294890603856970619639402835984956672436817354185359739552385689570031137123036692837917031829576478519344023360049960341205948270674509177980165289161496010218861882458346803838452934910357303482582786088023879295090718681697397367229182135932566968684840346865417987396339747955060147352129996173040655945679068077201931755041003845937318016462941515242033907546015017427412130728127437280824202709413021808129947455937648652353574488624364361324739067363114951165237967571536339391902472881545901245458834764299194475000905127862361773941248670297774606273796300547643059611549100013555525952197803166719192448706771459805200258214943600243940211995907297772743008595002624847641887792265441387600599277539686071738171816556826113508094920052732069298182990434826660310414522267227775129031538710860328325479224911693558446967659002231903397427805799880585182512801178175878039883105961736252055557463086705010818808393314795913140652606007445458894751331983953950218327224558554948337698285513739705088362873693950305874264780252617353634037099428792779136779427265746070558134920428855597115384132323168221286543886330670629369197504886919817035136327653650429986181914393314766264603234554781308957360444974332307367807482599962060532282515001930844628795564046930757119063682043915511731685117256853477764039134511843898293434847187871693612915641465109444936254229492009029366689612407211432132991011956977403052395011306503391404731709634926464802822981979035261999442919740801918144548707773224198996938884901033391324750131893474839939213338757433945015841924603092596775795091971886202031877473971474642601197765929901025776312414108802345785783593749836123203079548544098378209914977469266548055770280753168519015440198619317550890653406561378630341925107638281633956145060564552937951063756736256955378080929145377626255919238814585817865630471423513337905844404702350752561382771176600924418967294021586463810148039420620761416117645977706250523080597964303233376623516847653755781655135685702140367215339085243042871187910752153046482846955969803246184532283815382257931508445004969853636539512388768807410034642354228639507936906718055057883792383954468833588841286907463680816226457480446916363842111278149983632656104472346675143499071306391563702327564174422745580919742828257986313588757422504445739784669710288809207321578822227534224197863959695822970582920246630930498019776490921556836572199135053515094486755013404111686669423795213197081119674148943209319616877237962457736500652101795930632864846396195266953406263634238715547260765312168880593091594209628085847338666057121800001203622901847413408329646291667234482804765073550522281229621856847221395444636294126034480211049917163487983177679773044473201985806101758353133157292235477349342019723025538866031364016171884193137353456729725298322484270698094678684002239849653447567047947031747563327426040393698383083487397684306503640297672097667693794476987993969067979132321458035037041624119357679066211395014814122348759976213483181901467915506244286195031906218178809293251619048980049896783107889954417781685721394623917138662960635667965757383829771786592387622535578831464019587884609809447114058654474468658449243559870415098379839137588042737051833659702580258329388818505666019658016724483830917034357725238204045103473908515041569894648133081555067162151356593849803340288642127972014165856462474405770781769041486022443466365238986817066416414496390134871580978873879101830588571166284167842017945420399568406642502514964473070642692055513981381704849499330148058693840537795692972386893749483246022960718022183674805506658629173975838468818825625274892584278958183577454565869689040196911832590125801092664160473237872183086830270376567867098041163444601921062771176967050566804183771615869298063109748081723189291308528371476566178956123720313732765642737910246982667874636726841161564279013544004367811616835036224402210865300762315978986433794960989018736577537248622943602577345815760055916439488512670827133738715996906108483849493915465645083187614113617215165265058040665118951256891261570537041520329274488355445804666829866062296560130901172682510213271096001987390627096521698756950998470541859054997608520025716829099330949582203708010024063481060013078950890314372022962331949142315127047081267697622302193175981826135803278693844824447263825382876718200159796281670406268635832881102798579600006313554494228983736534087812432188574861729787840510450483077606219055126819594358972114657742732558823159737604996349796099674021187809743701478430589014402122680769916704614553843276738839440741929233859888981473218059252130663202942006401157101219023517193776601294135224538309267610004747092659330069366581905141118790344873210023857404050579094697025199096823536464761221912997487901611729802329770195467664087674375945641409718371003106122516088827222091611174134017346929981515202057908023967961559492851554998559482166043945241312575841448423835709089185942846963621316490963144098113876966861726873292963758854043422755246081434927515023576488552408317231605304806550452036738089915081634571236718116213653091523726042913540500824517792615079936054369213063133841184423580333741349910846487241386603177191711464610087358335157878258100025333268944452764982094717890722677024671610160859560168999473208126078591597426087473301331724049935337970097279177097139965563416538758406843574785459929776851656693451083200762733305075272813075322875459401409040687433812632796496306131779097175154175358638387417195180463146810868924873228635386398375794636921737215354539630917747317062832587851335789665246394144575498689116518391472629043070312274013250338064017235312125207497037194414843614811374104325073372908962372386876139408247146778280586715025016148042319964746771012325000169987279855547965759702165817861474000132139321466313843183124554062067970179349582986890461444984238819996249927713520614915476839089912730968116819751812643847260161854090696322101004307697601641818891206887816299297544720887844426719152535839800320035935860734421808898691055343594930336358656218043209885763663830261859633270890185292486675364416798462600696134828181336453827502334815682292703149091700937110444332842520835938754760368529669163558453954765432875086805071802323571407798917126122534303845054210435632463929801821013532341675482010386382114361660902050233910463871374191330762947027519098573539881915823298311981007653634527069988343363677056967461091387717095471628503684703837036381867786169285150207933833410442789501761995878239370559083548686084077770046372636602114283381854489234342445074189156961721429837990588587475318110125312214439716890015607301634669551415205839315631489751293414211305380660748171767447857404276386654866285054168210283651464219705473302585574485318557658972519828805704969793868183068239108669753922029061517260865657415133460503858684158456253550814068732945634454578279211833835345872603983763929713040710262589432421348734002615156034126022967352258762121866961633701388979495801373181189298792702329517236775344120277427470470495335279632490244844500904055888860974114312020668470964362363826426350039312162654946336746910757026729241011407860132531806809412679260051910372052903839069920696136009154402452880883857068260396420178762424330497498705795245119377501910552898061553736913020588393242256132364164054214633407671043173712793448449923944876173434745672337937929799404921109566990844693284163893234368431793554619573572321533423536763980420174810621658608865153412293573002657924710201637979971805800235897256323290728710465456748240403504349124313464010319604306353805445396039852487852751351838789848462761461305498570522585122843640725645302744256326991600130720477850233963349597206833411487850678863062811523932371176569800990351347577382862083550805216410181128885283190660983585645701866834094733571258794846092373588658684728598521600643978602167703281956381805466695601455242699683774038604771659479908628291266855026042661534892500531747789761910510200896467135607633920721300794323771403919554612371455388750741134252434610674218070001621423707098919252854227898821638197920143225913531352982243964136187001465969858778596889233412093324803802068135000913004257941790974800388223596442407243973607011640789987060781723011697313529338359839779000043765439648323291493457320797980804977300776471706432725544353086020520444408636289382101089291080537475273600819717906930511746757173088316594506480178011948351010698820115163887363808345450719869796350181533771603500530257701066072621798337830010813155399553900009870373792584270983860883519579680746917228393780647139758794340805155569287820791620876404758170484349628400686693756038151641793786540066645817433214330453631076892288068117408452221093736148531422186577734596285484494131477299728942885592208735349389611701645214389713809054782985084727949321488185521665751296526907504444659464278313200427818860951295710405190280247525284105208845560369889009748514981825699013970288538777437432276096209346688015811385271280379624968992855760254591906676346428706437406126388330553509133118498870310428424316683428407970895692016936824340982553822606376049666898826268496985079092917841590640283339894320188753975401299941432997025482954817049553975762042761169210979986428453198725333896235749587190179490966042613064527437020767743711352797194611618559956243427370617655153067563295089479345366635425735266146452978504363672111158980156903425379297602645200359100281155032818236204471237020609821550920463518001459783127472072644779376172916427152239405491664731880265470063747908237395391340527607811199143985586129781759563038684511367206030176803292625054093388929438257656828262179253662478234101793385144187080809480107481760683489127798789538552684662663637919086321538387715333196151750163304486433456512269443572078675475447258674053313726398609364111137029133783922307682903843082640601821909907707337159688702378740233196662274968340286054635785958256985499813690630921422111214994779358087204890878789054031683670146710896965887936158691780593465503951953658794247960150302992538635566268375159727130533150521865944802437058744209831277151333086271884322995772640804931685859992943602242900898007699103074172164308925500015395333946816016497928150139909493041706282069163529049171560600064691466547212885201721939968830624787500179861735643706431930679714861096350186646781835298700557017833449629205790673497099815289041402761541489868177953415923114517927764959541376113870735670412205742505392361366235060125038560442540232050400527387399472959837716886620426317255044846821747105446864326313604098631652148322086863825891544663496826201395988004117766917192844566325382800147519309731913033929375232557582502587863079697168814186752873852493955770511540662256005019944582860394029134872597697695453996420889652206236178776733989785410007193566456691513035069490609380099664150787985246589622080860586662832760053469069186423521755660279254159416916791779700183428369670858387107563141888713148727233841806377297313870470953146453158770273289437040781802242125294313212162605113067289071932442220843265557627104637125765626998623370205586131573498708947618673201475005533698782903698646313205968859275264006928765006331450333710590645605100865091157061393320387966411247384210455393257208553775800526566369622735812008051766258607275093443807698652160951823152672085981163628453756007909720688287800276855824438208313784435561889634383699785069239026888172309743437147894536246696263342747352671448757363551074146783539173700318472176605241917450744419115946662721156893450790006840368016229590315152598427217254335076948856235874889908457729013139762572987767867704054493519729187126722253367481416327996739363805661823111398874952732557200778839373071364481683997301203182098161010630859826067287770495251981992054673743253052491703247407897822583292796130208841817509697859761748872243190025779818056195985957760415939217064855277971983651463523929558697163052035947493683807705027539478900831832279993571887927809408125407131325299972476832358572180355824133300444555776242601783622993488480198648098972094545787565780605712067202350196490875581781448049061481962634501993799422619107019394820682491526488513011196488007039157230889344963321581577830804504978756690502304574943492951842482275729912578459506255557534275261996008388916336718357991904751062071252458074531819152270020435251979387512206249637761694846607213998261964754049526216586044725020054191972186124434434560977896222191202664214262194877422591633327609829578982275280170293066071580477827156159338229309945972368682089528406403620319110013499969456458892260985936957057910912889016291580663543604447176578106014367225120974929332133633541964357429273706340045851584094274760723784283889902736340208761778384189348144790622669716639417585045141890010746437372748288984240130257683949604529330803288632105166812673056811375088940897560523625491781395273521481891336041266353509508641959060090451143692695625823242921084746367999784306339069975865810270955854906387321543267135774520223361774233018656223409857786017946239190600558865366751058824265028551978057715441720523705761579371697081296801474327346960051174849463290854407731502838960845398307071227320662882652045748465861805704907985480663978425180412420134737970756934573825229284548074683777306553032531535099641681344605176099060912758401806379193758159921976965253773980638093343274270412806189760701029081203095233404466775195781677340731268829729197861345490567111952346100729490223751756210951020309537143949502479985272233435357647232756189745208863647515408219456893430672183344826876862306017334357881673258741375818094334668170735237837024351169403472183052087050224246137635751862192931415323999122613182129247482822584151570658583905832954910552620315550472504482390947787212540339486160736788278758517532870537716870492533823623357761567277741203624415207938569162630047356627229214854361719274473944116792336181662366648312611710007049284963823087817411895036067080537891618987664229721560651498095979880244018494017791787368649460911253302035321149520229291557413799732841901161705145771358214028746865935156635964870775341716384376288655893222489265714302853631044247249108498103991373684693653557190530733041851709921929527300706432521732390183110390977665599658947647766493731565397776696314310721770124945493765215300769593740592602083578154175212523191872396179009424399070485617710396677724243225934027018603645693652946320809341711667918841390480819141110429255993242615471296828697033780092668489018208212416482459481719049559697858973351817749511043623967730046026470358620300104981193568070901689775490640868158945655816178942429667691650832138821048109354267005382697370532688825132797499745658824127372045163752285445836318238269414951113671320928802844813490401695577569341007763726098095665001550176791085910381586561309667973310487245945096535321417400930718008741855735450917299749841902806408723531472635176226040199007282737282678049763898164204867338746895597514300426671243173811784962642177610386016319388109677139438170591480832805027330597205690379960959394409649706572111008819690911204225314997551625081689894071164659367931329476874764239783914563664569927844518336911097412961274254694712622965652849161024829046077856793292853340569622159106158007504231599439160559810528380946068534322153632399264690521203138929169635497161220246762522063037592901458094900459151514317487436166005244778249110552973518006217462588738455843564146751609399223312841798985010814356623707754780938929270907377034144501304546926968842171331275530946886218480791725431732813092709449998674939841863535907862343706764642103147930845162126444787485100686941031301695084125161148769000145160938426562431700520840828168634848300294941974280810550019190057403760601470980768263348836219308528782026963316776454007222337766835917153091141757860512061112804867126152474505985472097169719957498497182724576328131606261659513025789029187323922006328322146292499430485154355764583240495351304483393804800359317036409564683489243580997622371895633000073022205721333868309735050437657267974381445371258896052772944228463689517280277376482430367860978372809756641127797894736283184483290515675215145984076017323850145592187996255022169786669354086687739765903413367690085246466327054470066684204516922294965269404354697939235542985353091386952776402581322350278640658979473438550210457739194738367789558249087205959675152781364820433470818474425939417022731063891412454191350969729949764416973905353459339405284725357834162623125615375204358490013324796530707050949128959440414435191670289528114732663977577384285253362082775774897655935955327647887884048932746133536096772493096260065188561450561746577211626481282570176894472706258251821091919966622719682826142285811959775847911353724661012927636353008498637173399553715487307874627064318879550641571331480782534629469841767306641897794301817807983030172383372115909541935989587914838819005784572396949915542217031820270170903508791934483376582625289587817501480004461321020534898290196039777099117715483628491603317394525420844826717022052866713235408244650158204560973016833890714888696167115938392754034301442472299019806021043083311797945833581037975970488737169852572832034228951535915594986617710674686543096393787856382751277711700385175737559087394388284119580223600891882372533860630514979610253898032032262017210161932546894707103471332376873304325491136851632827020251759753043423706356072014161917136971574502745034913739272564984636954579090958651908847643995826667620794827615876628703103038861476033497313973213735366670482071355869161151986978712085306078266061397495429842637159868025472184434134797359779707701583915650002871893540605339793578421158227259315037779971006225165093549777289337407261619682499727811693179725730280207370981531686220465266683187437790008330376908291494774410509073489101231475149442729441041804604374112866742804835304551796497755398492571772693834409292994408398788912886658028008745745066132109549985141658702297806541226268989934151856005285653721651352833292405651062120174900530581267148352291083212973941518970621641570150495802245121791885804280301734871264142252984746174208792806996141035179965557477924279821049576205978148073062267865806547741530226035751467492232413458671884764653109083717258293171470206212241728509619377857986999094483884674961891959539924094524610103412788244547424845833268337974286906304003129194434361763122992074120162750839717046686821156999853502911325872700105940061403409293622389604436013681443002486446846974478004440304450477755811070234011152328500538406953892322266431586970115989986481955018634410723041334851779571673489962483349047279985317153488732647416491507251994153507063636429220080561414347236460755416464833431423297489009241423464711740248785229803157377659136352391715267510272559609297606823776010335401537335196286330917555828568679702409801058584663911220469057836506752553987767449693899907360660297924197300067654815884665012189595585880396889414151054831190252670692265836031925539467114401839523352954456345321680530385743835670263521932695453555474097121879631236525746220220126389677894962967782479763410421530257681835616084520114617139058190888033304688036723408552933073872161727511777502544572262114533907344935797583877045601636073284959434898230920824738486530434342892787696671502756324520049297217542297845676743094576518150532207149845542058998337145311676856667132681872492933843662226611559576932902769031464778606227279516795193022203644084048686487246190262193194537272864980734841725379833693550143924646162163065671726446134417947379210806866076601475160062713522532595198431454820771468117124003891753297077716191205517604384253266741737986680737136985843874403131734648934970169061360621788732210400509908269291893097778274494466451379092745268527842123791884440958516163683669142898667318910164464520768878185354160263191611149463273581162819726597094905925511309662881308143873669012469144210530082699664762032752849948241274573560211999918208113652454038405949232575289991999143033198278954508112211672912768873942778030742929098093531243062122340453700437986629992458241785169723588012344607201249476074189780101575162429564120413989304461464663307841228656872231644560426723948168801100226335240254471693829816182238244674421190380695779258157069358592381466956249924748689631459731163083642802154942135722584162411260412623446067146138296046452132107038060879833700613185947405592669121625162784329064060828358972261009488587542812540603955749652889394955008276433580099137846113976221487994160062585664158887294835399170711329680041817581350306104244177887892973712612881744670956011477104020764044843522532419223571609619969615762139193348845159833816378499879159219951457073054727888808589144042875415898604033434721353589638881591328260633370551766977473958562592839033985208787947237021485279667749424234789828136459587566746262021035399033799266558333912301372412784285982257147829162441833561696519339018411153641694603030058794796216707746021840531614760687497573919983752222286603061685179704573522068221823297482145639401401801912086090290800779654824976736283542460294312649274244884688851352140519833222055823740871247284690374354480687024070175506860615102105597698970195196827642389638428091914876292509926745220963307622874235317434528754094683614931815887766979357745726523456934114769207768546178976325432241995718525846014877401169919553790188337398434181497037833898043449282747129583552875920887851459510443461404093938759052773031756655431470188157455942591401302086050051994734868882355324500214489327359313140748782592973498439744516080890125427881190674532766565114366146663925786718233032590705153331971220108332819533364018501512064558681041022831983465949212741098819073687920987441644782385112424912184576422934274788205530646962652660377780034153947103798838397142113029072804909615049162729389986704300896015613504223585664803798966310627558265793006443996539837866579884339087267504322848268277385865214438426722743310328176222121467482134075622338392631674868781357657436975441933196295182780595921398996995498465385627926329795726615823566619002845997358438056705539730833841418328559862010585848956120482799272149111492968146736103975087491775447247888210138397866990407877072411196312071688919431353361860872458528195022172158190453912467103458872560486843249462523341937039755750373628136200887423364265377079682265960661062628578878303417035572331167971974913226311596070619222411486220367487774524949810031316405739840480350901222967712413650002562877732544766601154837669019587641981306320311719822708970410713631792516318914731612501398756324106198666148633893295778622740333034057252312725359033223267518515629019932444372071568176123169519853413427430058597391267173006182537648324795542363650080845170211794919446627987867465969825644296723921641226864971905892401100315485246583067504389484173313878758746841753855384702507629456874427331160696426208466987084747940894298240087670150647737827528142760525284741546258276038977592216376542161957890762274689790369897302881405807026535529011448422349442656840838487540714396844309663606327639966357901590043883101227349612502309585670403478374691223738162747276616094118025931505656111574262372271164427026670838659801584115051477540898734934828812218464405126479859498537781650444136131801307803608383220520914498270446703061184086114385705872886221145630224424407441099478293313439710269928308555217002762624663906716059866137471839389006996658914012951169765988545109605496543521678777230335259568393477096145818495816563226110093716691855745907793596423508801381453796567310255990409346061358259955462985487514050342453633348838824925550248529072380403443197086990673867609658538147787219098732256854902379891885794025220996375665471079540840705022726549018996251923111363794565965488535407196191837171610965156233147480917394263932508108799497169479951207860338669667635774227709518390249636847783311657924527048932361833828084961926761026424852908687792422782972056954982451571276318235094353418030648894080665205473109188153099345340089134191702604874015409970967143892129061076181597459064688793048790772285951340859253379628747454071791449458246729963372902049081922697419167104310968344812751601362305447200290343101396351903236555786471224537624663871925782639188100886490338122847998127645634194575756472672549747737920524294313123303580869387605268664457741632044695793964587163648724668923695395896394202095038208519392765601890996613306439571192700145468528833277991498423844248120322220732464688010450793874631247482834946650014908512633101360750433300789604770797167410821041900763465502338049701896084335853108195516938544396116135712693761060661093184063397784727366693853453449101459109235965137793534791812903183937682990894071215423911943506987889066385512000062353042487594255745425326753684079485542054059939308216072234761118349021786310517484034742616105378683456683347137966595265458593448705658855945715368182795542903827004665697727891649994338639370623181436188775251799886965586840986869711237196468060691950238259652070541072520019973324924846357996671280534846831025499810884902591726368444997926366313303117700405981915574053331743746104467478369373947426381016089182040987839269601623058815551476412388833767904710013449617422995177680230671955593802555503553051651260911676991644382987431213100389829049338223604037435034686634545046043573683285964023167377751954734818110078237859916152568899452614899349445778265524742006883635616676541210114419992394039017318145665521776818078149756436367338567019619438501512672065851458684885966714377750630442411943011593303126854581534666079608619092255144181649423685664522315632789267552743634331740781380432513897854338021522762933414887258926348593755571271724165638597236370434023471410210166593707861364427422399141385661987796502523616832264816196506018689015408362295463261076675166454437301694405232137942672866031040603682778229241345056517324746583165684069068321344799126223370933963603503867815303463916098697019189143127778197110741441886382817488067819608320306907124326696837068508296895283559867101031321096042858941236138080694919771590440270858031247799597507002899610688104648397307418492177484744638685498709974001984890868197315875772086478751784907889883360632077104954733999534843838782263355573633548688376313488627903884325099486769904254824547516402581174721677966483206030654442667604092089595922000969959937324788352944257340765926862731897550768184237556119216195392166203012704689445652130345306957039320954590113419686294753055951524777064682237669828715434859449047889900110971910233535234683013404133012028878695449134591052589144478032021428411100030503014336152025338673155164370173058601437740362861161150601416143510675271430757556761227745627604034089093324435297001093038081496606715286572042067837177951823843254380748153071651188673449770060159931299878379977205803218832236874170416673113628826893203067595680638548373375578178298971398306348947354405921234908858377352003702101632108616899595828968888666150916870564012321912124073364288800121563844786243555924795063527586995215964997345573615041128217197124929855792684733065924813676830640714506134298328245015327282071453427143803464124446134418996378524269952930838088215771061052086738876574834222684599713339827922842993109251839965357807731093830010127347581001644515234664406150183325000183407175297184745801823656341849258774034661474567570825923049854215202913363711082029673401957815544399455489986859003863301056650366859569168897641496916789324576287190680919731463999407694443274454032808613593304041607713801100530584801825585178354658866191845460450962698165348521559532808158192387919251972973781837396298283873450763542797636222883645624214535677490173719617218577793059198597117674291356513614755301083542321034533569950997195711315300155431409177521307835878248282976824753081428658412196437631424184377430556513535134960906292393329135935783324555962174475750317838310011366183840786455218445965277163109467032992590020911677175847692797527322308562071600844110467533196960817515896632426477445614304395271276177641775035953993317556106521211242259080129907218053424854893450275550677603091366159836903703437767362965570994919676144000176022546890966599971569831507538509379731570473109512478695624210061474210669574549789698234123376374418006958511257698111298888679332152436226330975671226096081220223206096876597141005037883680162125284803525491789086992181887550755474511816445228765699026772539658402203295371129366596817296945495762367481032125224278832880256127563903242628381113281952288681030684740824421627890659859878579541973237225450628844161241350218289833591999316278049688148323390356264584941422541332567931051747968106323487174949467964251084378600734153084011305596196787895329184315482367765108675616296104818755211633268733509164221833443270429430242375907089492416879157312418454167898791965940730069113249193044934063085263295423839871091299009234131487946426099818514913604153177353030471688250168322188887348528962576600343328097057440981459368020532293689989493702770489559351902454461913932682260469822355346096329886953272673564496973075778834874704584179720521584437348339268769868015997535419706848828167953560780311392834052434474925052557217889365179189217558043942941380699703040981054978903170555923758626460674726301396857720262880477825345053536097571738040790556666679328886932819944995309693535341525584926796516515587249684308033051303161005852469343500329023750815040505729502049116542472099251054500816677628761417944742460329493791091234777746589974879781347293847014555890083584732828213644351536549582790456589056682464517699418243018392889264253176648291616465204573941829262646572249707635157238019386446228439654024591196076194180222253382225727908691519018603145539306258527680303812299336720920191759685303252503231660933799489492702590042201944745183480838463800761903610443634010967300333573285387203156669791370826451871515552570912332370539702586233852471458265604674363755158061978208520939693489879120303717985446767164081406091456594050788391964882979184411324272040275175524965443885818033415206085144823344992961756337804586339654743892205699088182904008027618929688177088605429542153230814296565008959601969386239868795462979127067830979656336851438119611912175233836421030837385395353080413309718525743099183135623793876899579734046748562749389798205270571505558719783889423233823593882290031071385381815983171778955169534878934561631857305716463274326343424243782091797982520020888364663889588383778344128616951668699605306915579197051508577792698108381483762957233375615551566542270887517220713265774287734126548551612765853867236303093585233470971163114276735278529298407021992656132074802726670990320363898759585439934878567278378381602318727633556977522150308260236450815655659842862389567415094225958433817027550931898131220150029377432500586394247963669685634152638582176802744669019445244202916290290643733461627490998834325051384864035660938549904063111402158313003725471388719693539993568950374462599335955979848417276346394566554133417783007180687033867100987422720449817502919828913956983700811315778678116880347347425203220781207183573136601136817960575426742650872282812693826624314908804644358750224386501054569814009361276172931786840889611758059226321360806249900831661318932800462262221535406852110269310417442780827605304323935164606364550889154706079147338798824906935908342935076978836316086855700861433469014446619362486119841159708196505268008642446289098173776547636401406559758836578278625782615466022834919561252800811401050383489982347045189208059275397717159138142910573134645181373999179202275803327430879657667852065106658948788646137067258779974997258317310422502282915372529537067774117057986269879523616523220917209385145886780659611976993176862387839230556319573961372650702849120049303198456341157014212418473755593494438102280650573610971640037610713304539776208544364240345190813066300785114219695162175011150559156755045043461824168509227175043640447338935519272350131587376567415578339762034338592193706400595974710885999585756385677933265160034303394203923024116598046191525741524083187284461809161229352883296038088032932426807152981072307878897051084775498074228944618145260355558539163394159987777495363210279407914518024342854535243163379971249617075256047557483555324995007405266851142275808146203133947580929045741085131618500281453464977182789982507733164614015422440251302411759570469079282305729586631129821628599503440583559974321116619440041367683324669483214151051385177269072371163335549392521381490451109115350259440676603923074666682518280780999351343973101900662490780439063209891916016486737403859571724032707377247688666593535086860369240161138563719357238470999705601690976382362726126288677795835959984609815051565238643081706006365533374936317681456477746975970701289616977563016857690600336702681979262737073624415174328004834556151585884549617172195153570711368453230442368691836251921726826131254775073194272741950657678696244964855528983451863996973629437874483020317784847295454599781883551682240578312110734869225120900819097864228864732345924474359380971294967925059300570073151118156315812394229909333193771857826493353740927143370916011922614283951673301123051120572413701480018519006376619321070542005560688261942681951883729303785549568849899483288633696868489780904250497124853264399263050605909190570720637256765007176936371135534434416876006748870511674208671404531263659985865955422977796847529185017826193493073570070431499868907851802760473741117300401312992522628345637611687397777397169345079816384325472159286397502574003707200180300892206126269947750958982919542561058674363628224970957912993612677922331395392518039937015170908726281722180309358988129092224967014874720543995963057681554106526864723763465887631562172056449474758542722915700400518318491025447558244781866144105196280121467954539607669366548580763101678972765505473869015865148859836381139829211458296333635391944020612152682384061041738453026816218688913391033584599284808662820951307640610275792453145732685461365438411456300778285980337304002885129831727565990137901531825176231989570020449773723095838746337906411345455569801303905007825736643194357649817399908284825980791690837181106958787353306322133074968132952972074557930164847155473683080458505866650901032110384575143704154841256912684767645003481282588634664553553527455446032232619165377233643581222869394477876710148674018745500195635754472208593016198901940596245763524579580386471481688124162640185627146600263662580356222705194151068573523452591927213672873424608678133316796939451844446704906829159483174443837987398152777166063131635322147127897455526208757955643518016322331940816681516550621650395254260106927378597696825581526602151623158303395773587622145927444489372357823738005040357218369372041192828302191358844040671550488484479581602636415852377026266504012791451183033699850867347810797015911793606743537161594002617976808462105947099414677614536081492962727836160184912288505084992980706942229826960536389726757368727693706136498807903968539401181881024779978307142567375220196490997175589575638973150130784200830476610317969592650302454201672498942057446682553637543299386492200995358473890644454869791379129135484675288184500723167706945658027379153598942105453209755391309250383485480122727236541113033205482706435257376944765515281688696179709653736316870202994132605508854756813776769243637852787021353615048904864587096333384267015954031859636694343525595655952951323570200632476358139558046924198993676768843128229018557683787655353364645006466053968721627356127415138705460886371178499529866577415717883634870155688262713382121079075687687538104784732756627683359561302233591928343693457276930353307009205404867932708407171612063277755134863843435755417299608706768380106719557256261968694560794883396098270741984960758941368703050569944255125097379873560132669044970082895558426870275833505655034416085418671617130005351784286448205083388000305589557057545567832233369458644241322423524902949763061569655797498664020281458052163480272207944459766905852376606978628377797258492483562526337984278843417130999529396671483307644810902333916361814799927646989871430792273986712179221542260121510722061405845925751621546508128999232697157811336490149389433572710673047364633056348177544524745786975060169704904258249968790677823708797284646547667154101976186841249080185631926660736006755955809970296019608973157000067718475315372196447702803209242066864083625836731347604635206136034142988151833532317240946135687346372265132846086951801817742691897566773505805459250310685761610387959852173198476472948663361643814614155123569844199515060663714004203713965488592452829475721944389702889968265450326353738815864552643679283377692577811803264795235338335899187704042669067863164342057022755151508073049273201873205779142911361358920730247294860243546562075516929981897152770461765477983984584446459723526439532898613278002206470933947638625738050960518367201885317589540791176834787233021301546791692485699878120434527987352394075972484998368537509586040996737931684207850631101600238078041409936652944016603584073227431548670815752463966588423756702584987483887984626769766446174394780407696222320754744185445081431403577919743976093767604617641980640997520023845357894658808535867232363955469640876008750276930560682705263113309591413732711429076682034671801449314884167227530965218772694690497202554600554673753891038238087862619770943026168122040095665812538156090124455328113140818049388938441251814313085561398963669017067161617124193796435986860786048413767835716273982498761387145630976274057418457757469721079232788352865549205928408093140003386444989357867451404193011572067321695465686823028914756476531115207101001648241040483316441734779145153094895279804443389789591808385404160902110825935334082760292163659928724912866730218783636074090625930915951864307543350108246286990770488140251361837877503089185360240154393150603478857927240384241872665973912514242755331858018084819983302430864178237414325687863697302166827412646713818374970572218892305952495749238541319378267986396704308758201533678447427752143526394611326441082299577068092326093990527220618493486301427852499733887750432893044109928781439286841790178378030346009880369375151557678498674079639263581764014425953787369180298584659364339476451631170142088457083528598912401361898398374192930428595712215816829367214589731579773210069653881104613994023178426381264667168080278064955691362332973897905422740842494492427067300042466693149989596707205631125980456327660693461006576761453386209928457806954318525366403752989327076482168253426722537423489851485930691594501772348273234215279215261097757894041507505077366740426778954693165336660708534360841139019894888829418755580188649221534086682501141088308196571895426591981860783172586322436782332701677046812322606550229317371298357068898145411502921577091021975939872840063395819023865033131055536847089864262364668393043567133286203613950367384972167352755428340882678581904267203993195648175796189194702294738858410426705388657524390632516680972525859894888884757146653948227820623609438021005168870288985207278743913946317086660173521082801221248324890403482472460614818032179005070603014043463078439013657001217459630841848434474595029398897445156189152301248605811873551571045267581778461643304215959513699833725213499507649951353628198039787060145733844225579693095003246935277645400680348138999903601352991416444508133693266749387503083081087185523330409216278390492985019720568410044450969954166920222430563004440257256385833094276297721291487858218048675536277307145717595643266398983829459536141351797944407925887688581674208255994473952124775784466594697917432648851138549745603718602277331768539940375069657096824958820916761637681238965325778994038865525691758156098970259606488370395222139783159889160444988575202546041875374868092372627062763194931332656058866292169588549364067785372966356086748225172592166229155733554147052629494183305624490988051580211245583785907360723278052009789665676159825566295369153707541960749168883865364037337625077278141099381267199476299271181019751557416046195375484034882002384091703825209984657494345227983560237488307095565595369822734318781255109272006885894599338855959461485297317509804734347924774294746794374573563646274050869796360441542063729545744609479383856492111576353043600867162824385249683370182540588461713051157286922133958909596336676708034096112494953729223011384160806152375656279182960539187870086646222683522871954174424316926513428600651618783251465973273625883981531860889790207715403136766709552936514710246064798410668600857974533909595193525000817289519841801377043152331685265668968487096442799920986494310632613751760830160943000013654887616452143306332347340631089153813872668782316923137173098034488768680542242169488678436372803677856065696847714048671951753890688127709749975848838329048268818000956232669659627994675337559999429651491465486429722789290520262827340102028049225370551262046210138093266014991239428331430292625221683196083925596197341286561598395111417376679342285000266866852827109700654995168653634726859939553738632437522228146138000985760429834676842711395226748578345707788360612282761191014235955863379765868292407681617867244837057719551714917836708522385545076694218498038049456180162374695337684237269621794083058165213716892558456261998761233772193754339305538680059233175241184231852952435587363696149769564645849413293850792309708578636200981978593430350069157951357926029248201165174792168913470686096896559934005948727956931498895632014798482251276080885529220681915487068439596027424492216341175919024354085483862382121445478373132866072110671862845740123486600858815209479958210494281668896286833945901767171905772172961858122522901236983368173122224513183065371068593754300404559744776741115754338446778745337042028028421563959906569170759303609855645132966712880185753166183296641930305520599032914168092073449531677682520116132945440183707216692267241707372332808517858895915312655764043127930503536119472774008906477709682775939828328222679568167185781720790419456178617112318802697089786003183014876255517314826528935605759575082326946467518864571677646203245649380733052469824465720792263571364391527834517491507499638958905457932865332742403828396640490313604425636589796700132135164252890158539429132268452694182586510580047483486568567789314688498503830919468808567932711264771201980570618828135758518240999497946183033574516890590684568643786259448706798605056217931321636117984800666707850882564934680074526752369266052924980147073692018644483046029047962936449895723353398765447724823204179706659858904954257068995842990193377907145734160537870565740193520370853486099106226863915385337189212581871264859963713146512070568596024268276357289788073065675297317188336357661813135304721375038925391981489460308579545949496005514189463128296782967674465892351755672229237066842612591550529956759984868776875934422958606429523010306521922333423098177405604943553157595504503612460098461276454410946217222498637652607420497880342115715478282855894780798009708852104962948764351750550154772040158677335875886949706514036242006897225035454076566320176782286488577445356408950688965869647462329407941138040789740245605374836734159688539380522239921454757648736539866872812232280013106047503635250850727037319886260577780330624511741707548962994652585251439953829178702574552177380845439664103852472021166298400956330977252652166355481742028891388934453154174785499144751026276710663181237543387443753839360526075483840972871421776180967511896134962534887729176107119007923777600374690044612929728988640378015501937635159873902010470171796251572885199094048423746004782270594349200977673391535551542804385041655881057083397038690548355764287077785686822934984547601735102258591557385905767444394879781761272715586328620714997880084616510633667705117088097705430045894315519012489193504750080645625350391889350554070257720490356747119099603991222165147087084682680490636747100649066818063038943193936237149112872931699213284968880586547915446705086497828572225170831686405356036993177569353583583590419776665492750681871043667696931369230087333435412351749674304634178281667793468994624458994432407893743161967838336383724874125925759411770241040403611844559056389244602515647651474012565204554285802834344725492280996021771513483222060611299875642391072683555500629959154488609765786992772153689668247527881622713879863111651789246597966761453912328496766979070078046786111099152380480003146129964662297222317662818273027302919071300363206567837081764465243663596318257664912007077318847756704734443174580255228252650083346964891327385174649748650551221346271979296474161299664638489990523950630949040851642212566422439425931235299546599784710056874835152429827585224727224276870370720468010394678898177962152153860291177549993949570169652035939343503163445565388897216564017749438648413236258350641780121274732218733102156475960239722451971326172174394573381489361205556222579200068996968441340933087325934041705853182492976637109686372499035002143240134014810262041141770655931494681204674223736398553458552021171411060107354775228067899921325583071742325775228304558545742110336893370551004083180862578292082715202356104137847436604476704998742310146402029406996073373531009192129045239803756881499496676223842945176509988190562491945900116593184520274127838957041624106069560255076832436308523885371355490662058625295234044927726834163682491930190198916051160743786773363811027409280157863072399220081930268271784536248166430342311040894461064249013269418491659852390005994549903623442905007286806859238928274298131381868305874955477441420168151958158421440210079250133532468051876786657495527790935877766520998144961839186294268518887751462840005595237387726408711039711965356646723813995290124304434843851942787328083957370274187535673260156244473722915161490641795567440527615383005325869153923278346164016588072466620995232509684476281618091476980850227801440036203466302143535603341734326330564717205951133162453851388861666451440369400108222406133564980080681419704126191567971297397118443737064093481332760645437248273476562042751638616438114194912458402158881042745674702695420778875366311986126304345558818287117425165457310666319172957345040542461828476408225117374821554087627442896582415013911602102532687090051582384997179970418004812136844887339518319653419676529316678961203825180377212202231861154703143926871750275355893842558430523671430727350253769779656953755959466469369738164901862317594021515315403449599075819830694757351970775972804350524247455894536949253570482393909882895824241973606201107502122825402581991252650833922574986137682421552802846569359188740279100495814918944626584125134760573458023171325796238541861725543326601067533001274811325078055614973646339098341249235990155631846454949090461274464896231899087149601657420084575244018798184147604290558257268781484672691728487999345915137211245288728606649107328763094717097458708171363463221471648678115629577886880726990369380777481240447183062731185613791706802364758098125016378611179235789197964156096391962138707043644375009682478760218371064628334825309192214116781960807445085849382588484718683750083350113750386159083800284003303579270950534733976940112001931889507432963563262059956823153328085949980332916270341148328711686137047408937126026957788843890962829481932625020512136502786630839150113746887422046309308594595179448811265894606661893682042161385912924569341176309415231724068692337673636072847706983429732480203209155237771374109159922248375158109521310522279838033403112826628323053996631379976491653348130605716344123662960444375784089400426271156429348613353184660608014157093856376828983531618946810306705005620958188511963678411958378896509032834767208646229234271938191888608464243918670455906225960119216999575355104258782394964570536216482056667383734151148066434539220769735153217096464225420302838532901496611368236877098767078769697215509743728519215788176715145374517243512566968305301873639691627107951984981932677645064774943518737023475868321779943638357490638900364071877759859660425446194771154694576036513649025718844746910167611258091502818071386979613144938862119246916100508948121395395173094213634278209567012806341112525935277031455458685365646047334861674867499663405827293170275494368596138384930928271528384906232885725139118647687839176900107492867935828305724938648549853827309883755229772265122954512928619579729735919335609359095094787979687751902199083087274705907655270325892508202459959318073091406387111089084103350351830907012067998075796697108009055019173766024234010548210905512393683892565776982036545874579224499359213952905282899677955263878395945062307509736955729386921543129189090606173293696013909124179378153649747754544267649011275219456497950465684857697092266133930952720560639310556063802003491346031043867634273143446847214431693286120853947545464473602026456967909876680989573924926593847136946557205921328190502195744268119867927308331909874988761633041338452242818272157040423981516438151689005727414529939522585738492752066174785928002243412547212958886039572091490805330384621157236526308914574532673986942301616569852520190173621516009181762472593444939803640036046826142633984760793834410767507172767325994284221584594442749381432114632880884947480717688194424718864094094667522481630044108425138577532253368420294376448680445907308221350908743061828720953864659000085432925698969845460212041970418502322403984523074590925468919943339718626878687354318033792023669675132242383997501217105229484807371189876578690312005610977827701779581169922685761962250574812180132318108405102587930271035559998168261539113777597662955856728252047646249460662996335822899174456728265742654538214635856460410431887446352621662792589942087313801831287047120381269031294038868688669110470882507430821055825445963499181217116538815897970015387898732983864393028284925106018988702892185579993625618207275079478209210930017162693554366787751888395331079708372204208297586463788331143149939758450411763033291862452697289126822158073962659158294334469796032041170549788051859236149153620148875911319075974813609443019203782879631530014782800403792127622543381670895408763886211472588650979990631637896605650912530659620499735032831263610833890430417532131918806160070187300437136115587123761343004796342085027915825055837657982883151336746947423954937449662285101134089839927848453230282109465874933910333443661625565250922792814029787917070049890095816797080955459576460563748129167099677251254238077087027733774948604261520649638701734959877035561561110341905036102369875433104762704448310133331480034161104455652964190370687553416707579705031752033325932731689182726289702547187881323259511120774468748143627392005033848651873782716265556282407694763188771521039703531914455911408636001178568942474880067548739495267455755617132289341052435146327330162102270400866622504697737162833052766846680081687182723329814122207100659466524907447043449137785237580053729717547892732684452995234755265042946592533239227310359222084525418749410671166799109374910476823298222262794929282199111306398920025464050192676843463222641421645379526231707577212759552017780725561259841361821304250233333865041120064350100651672282232752560516563268791520502796571078355721861051880306140799073296598329177407446290905862771723654750274621657020183636134309913109234924350162492232765996167180464862782283759285543454453770772172120753577367372581628833158747780898308569158105714961708181100839370277042212823613425044566819141884058819785616355750627027094080465026896147171458209346849941409082710867854209376835033740152701953748304890341934416665122854713540863848974545564093193458246411378467491566210092133955328683475625810165564508609318236916192515470010239910451787268362279781190375844585934517229921957396033118769525939140564975478120806640923184841278535596528813734085674939950613944592825274265589732388746696217604980760583596412688714726123842254517427567437363749714639255552044734254063551125627781195548281805296414878866421977312210474004426152438957904099725383514938744747197295885218933997583138269080693837342079329171765543081479966808028256131968628820425243017423974583516788904610236098918179995101623861929181262023790526045019591035943532176623698636586843621535297395697551483710963817106286323004007924367114908878598446457861695494663136851570833605986723571260483242882514652263705499771530803825226594142608442146850625868441286805053999900241809220701960577795321748011748582707381505993716155032288339801951357489545770593501772317456761336783446378260019320630383800443547087621968047945502829089358645689892045094451588569185383457498546267094464997118358607897511384475793113056326819920342020133251731334311833351540433647718801375823325419655454006857685638364413332507281950676795065251659644809987891679316897237220225012394739672450210573806726811421469224367587198497267797883200730815612083953369166336452186703535722038505939248473062681398728689488967314229287241363235930499587420300678469742730674417781062575194304819598027558105249138014951183271095479141135336772054501986154324620173091612327716860556415135171263146834038752605121409988036909705546938615291929348916586142736465155482227794905561959615733744037992299216704896697373046334371611663897028205499263567886867039650205169469798632853113666699239661400575488788779797871917482042738133411686038516270174948614507948773020336295688443822790552847519027375405943548668252775615299990220502039090077779688938343316970594508098954156116202260003490495228269642950133864172281853912293500825983993433377752580647954767592313551962845429366544484264789551389440420813004651212000569892065465855334769480315870828971519252632463099440015206801862280683013629919411060766462994342829392034533944059047863072094322281709649136551372471534514346445836028945577048217287745461401666544165779656884584098174720027551193958389180108522804502915298807621773693817105097635887065390456913549763332177668434363207024805520112163439025014608071239136496226768396576162592428714121040120356451819021653302997997691893484064065366925546376858009220833239063209886637400095897807556670096386606033558446640879148966136622597706074090727561678421923869240438163636828050208526821338489325053257705566779440038877164886674757930576251645785234326915503538186351921099895627247070265419657469622885625069080929708131168138320760757431364360115474197833880267377039652342535799265319798992519814338218124829079885417348703356665665638812732188354091354852995371745075492735331918057232727240078600475412569880425169124107400730753896973219051530723654246700011778247809993561667925157228753032190760133796427884532842981816553755789886364664129153898198937504893531739450115152425411378438432095143851975098549497838293645927385217519337813601801064519408298145494975686718061059416472455797729887570838947160975181119496108063828098699469552455031027671555553880422296306350934646291550694002153687193240034607856795993021266927415946861667736227341121397410870868292329725637552231089951043470112977246211603039441549897088500968183046889293993665217946975491838648109210404478943028170497352961612887478487117136573716050695459910170586208515838906518947043349634766687248523558401979288871043592364445863695780376953432852660318257957980645089772179114120206736809082876650119990583145876954760167686603001864882593463093672162578439998408958695483709336383098231554028219126414975576015865174637732840162341553350388675094089203488502082384859502035196868799320231969279137610822467103805816566890464999161644171750726888342638033923381499835269475127711486529662343182625139830355237588789695506258371050669432182286090888146770580332041561934423243191330641918077439265289449973523519748240738004916742264661720232860209421662681043237705085760496516224863856223883697401159970003868052525712835654948293624710999945457075518211984310621225299382570680521445738660594888960391275517656008852534192692643016088662199787339224157080151544007017733649488464275499444610526537229616135849078637861487521260549941658371403475336750159696659849784943117513952787038127290871176708505788493895797038526039365431419000302445285644718791510562879562699203796211412552899104185875782761858960960609059842192724330615213840766532110942161695214026823051643022127541832073271853183564215718339816882993407155408234319492507919192259151106769447577147177181867807325260778483943267134020976781374293462493964913434161731831790480167989294495245917700058527514242328225727167769467064685724057148615828826815000838075799453081441268524121336725224058775490406457435643083961492294713783368743957124861355008378635438333833271609594128099073322449762136771594321147973804755239628730552316398934152028100877428780801153023630892699325656996734795740948003549802201999719347709073245981259217051051196053835472143121535604878286980877002371754673127141415648550041542145618996726149488539623553477151300188505604048469284263246168214815091295074669556274241738676777896451725030172850889556664118325550672870437142533930421086632711767091925349807014983517557416515008405292523995580585557628569214701294927045110815789778259608347888477851818237001110824368750605900570307585011155365205460503028724355627117116362955918969004894980975042782877671711735830772084439709681241125080518038685292284086515434153371323719714411382293372132873657256772899594120131920074619715520726919709839908504784731598374603155718440321111926932486460762157839026431909925144303390866601310678364740704281452138107352814578610717010227492439086492225601283283525633393876942149652026086826767986122561998055629146556931085722198976467830441310055275379950336095828918665752790572193771802585309259371782043256285526914866442157269071849707401627380574619984302868248363863699332746949824542197356006952447670960581831912805643369819276250577962846254996498626571731480629994248967967291275780022341673400933429162113791597642732569819495819579709378052797603215030581458751953804533947685016704157413516781758023880527806185149447360340855712111492677748237568504962802656930669730625681013962079917009762598130626171208696477039059259010534548233667042840515853451679155243921960790733022077522812526125746796696481256502291936490008860529010639625110182663452326405754032392337819766165648726280300044897057319734754825006233374186425433275761946277199348033555336733498014591693645339588104936592199414311590207363557907145241739757176280500093884689666979479047909601658849967709543408967673983780479092619867188829311673651379665316956819213179088799232637172213368272484234823897795992979937151100806612217683720919418167805161182479337415358161619973634583180927164157401772099652762257727150980584914094005971901914735691276335135937601485048357341080000941853775255759533873322547193438831516267402543107972901540233119295502632996561410974836985037990886690015648004471164987219444592844455411674021980920437643431370306369638538751200418877407319810566471142807734712088858535709573156532988639482824132857102644903286095447452847161997331491277172411684634289712846110165963952309963608916710721968670705103212965201209133972860541528450420437676668548738083248279596517781010569198958539848523372004427608951009126423866688545243918337752744692413832220676801023929601382378155703376906166208458096284337028387978112295550315906294752505928812117899182697182035917090066483249126285373653998111643674070087829833086909466699648887811452985372229156510356874316366790494826758106641280948423525665603259076272872801001626298213067289099701857690265472310495999328772248586523231988922933157083765528079672085652888498574448801426989539424082204185044064783955472560036455161599718553345561101351052141070918749663692235329960415702767557281131944868674046758778588890214616836970427195301503105451279707376646045485699712328810182335110313617759670058169934091046066647978065259373080193466053183286227863377378309385124411435004379175583546991160752815522883588942459000286300259178775635864575268080882327401009683177143807019927439191126949214474230973650898607330409525780927041100371498561264284139510679179024319653253908691996392307534313674666157693010909206730514530178923063109679070501585422425390531773446858211067563406492149517140781181483812324968854635403609413047399513986278510520313492232524545667951980927398346334622879482647347271308608207346419947982051944953692015514601782511701604708000338668404027318420341342763725157870103115927287918294402803623881656703706925026048763257896748778715488597112209400882773457185087416168596462384649372221809277724183911121221300528478631833201350534325734567213981409808666146873983051317876929628635485244836739843217547622623746358667923329440667709077403232119542396401288891564566010355566912948149227542874926113442342809464649392095313958045825494460193064407471045922784592675886534161403641120428867040202075614227266433292086983352729218897762200010254546868286629805599417972543119909908797781870689324851326587572692917916363669390925107733590911348477825585170402826332402546524119545725778846080702433161521855064917902420377302088502066671745504301851293355588390578624904338666813140446190426083452508531599688489031542263699611092943589676082367451539942646667546719155503248140679376386998049966224025303721679366693042606303277431858136947954159430536925929869613556870080855454980126331363899177472538287770168366184017727206896719761655666456553315735118316901245407864242324529872925885769799509173449203893908874566111828589860755808317497526323793917180194141377126802123311130286279077700365767658885167487776693560103719970688712196492094094199635922594012975143474650508192923873066321907499997983418648991838410896330029841404031720076356034482021414087080797772852622641456538565090364746053430896397569160894265481352686773511014680695868087553565545913356785515674713551058871213756701397842406883725638845960684076612056334152587909284183139210235562945129378180981992271488630607359811948184957749512956565036343899040739812739389204407352806991680835535235453228271634312981203839669887320305591775049868699294831446256005996145698416764959687373419478782617956457396581380654205164900875333717586052850880393857026194509665848559757196870159305667354858225000249653078040361907613637704291794490978567376674121955886315741647417481821922450055132651772739218718298539821955466291570294722887197437066895460017400392187931500164293978203826947178160529569444401459716385249890304312297227145582877913441163862859484834306385453367266014196693957144146500391905192678216200188861042465491129591358652557227214288278105897538656660522941510554909462758698982218057388630974321239303181289794708968212428246259510588322777021918697102036716887239641602132889885995138620687901666236943627706681362442753424802983421219004297886225187059217369614963939027296327855700854485572033510604157426149443429723841726202544189113005895982864101423335554977682180235495064691520181494527019877935745956288438055320815921829949597957605070972990836311174735211619525028169310446514824796388689076192676910652691286533636491406333677472270615493546006419608006892978266872797187789631848428673581741974069098007967771967709020397874979514261035633654319576691301361059200003488812801384175535489366445938313383136419513694960770686628578573681604011336489938976643427781466783142866093247722050049424717446739504316284494853041044188531913324710556991895730887078842230415183661391515079185894226415697170501368366052061892433584890719895419732867574485121906537765100123869326941499895247479920784169502859389596618805104259064360806703864465210027576632587997211884492165279786947805407410348986391793487328918183309276721617205814186666462200329282634142734370667189310605743550485951640486794747044497976607567682427800428465928658537350244044028520910321458659327397749973215671520280426109526061870006368466698926881148292646672244703395070870612287562785202733314951031061185912648980796738082570749879085098484493747507313298180693624711284744770288703166915703885534545681586079465732365788216946567119337977061927721360407672256649399710528248170050476538550884433623165503925876930659412812062195888624369396295875877634563097286644176816809670569324671793372089248861130359766327985996232918442510010853392982930385103566058303375205163643157891346233089091035055543730428486240099868428013110442845418250903125033291877129146108606631374207978562099217807200816559230027698407719662083194962821927823486610316967355211082525938638248188794283511772369837360567644826829992705811895393964035646187330329596636892944531375618882688116775638249389765895458473384392599156320725399736220152153665964620358577120825711263419009238186660570209957259051951934869406885683175400193911261061857083847281847483275239364432390893635895808197864924729733279405107825296581923023326414245902018569960556940565362351236836654559943039317308862567270329985609104263529905587668606120785321269101369191187316265184901145556475933697818659428598770301413265381278187600770129233190176968200491169016279853879911088771331040445276350263682258442177871199061595674109138867031893431644497378764022358747424912717888452321390227685487908898257162129017486152542917893089008074378071911870917910996445657963498352221329642530697431531134701302300276407578423957490111261114203531397436485964997111276236407053111645653790367927557121007622174659529348779505238660467719459896209512230737208930145520746358771446685041666206804332604409613697942638696936190792655033307536912166215633845969739231648145858668356601315639394728690770559237666008617099676454337276640290848785702118248173083856502547812981967219274899219336317767695550136694730580081219311386328626288250780888977224340485747320413315991164469711950331703070480948031395288186244368673703184601946865626356025300739160651294588421437897455474012540238601938826534860198625863440750074685174034356465829242775337141430670655143277358814123259074919989105839197215988362355641598002782991509692903191465024769297987972065629912122486823537508788036444871505429549783008071325002885137651386194312433131360951424707141550832521896852341089472031038559636600113787706784353787091490840962187293771594221608491516519875045371896978798309636446525431339857769443107428066462757244823219254424673562234122819184072723109406952073057868752907459812877979431726493639924344110983018468687352818251540753506729764380967436864005009145597515111119539970959156223014236997946362865612269110877187849440330448464551047907542901677993876952141550324587298108952316341147060570759588234087577874490882104077448034196184256020117609009832351234017280459068459437717884058919923229574634619205373422362456544750162269923246091390928250528759819048719576961685486411605662841665025975721623380799362200372495677410556433821557306734841143421261120217982736927065025520177868035177449345827457813291239431966627551941785858005377167064261420940981370319552164973203717154266609109890785478743386699951745493393825483175419634094923300760287560678148071507008455933137538791595111677519905086862141058591437884366477320715876870935996166703296159714969663634355773814386181172946023278822171381734983294745261514126694885100625248642290322240794747284242878027035437994696805110455158350611553010270051969532147491747413572434149612547106952171715854045242866834268890471958503447858994488055661714882256483683071453719729695093866170226284386942622697756269949105783000852369527678314847223917743338066758815867062163640990348617251825966177958104821558505248359191317851975520797396731760462169187484567414803308375313011967289610300893472847057352258831093524442541321462169978953736525341709621642984135856803433535785831509884822501565789620651562019376430353677816223012939820782314100943723302334860666745291661559094808114608114522278886198091161095357599931165427099965873326762300037326771778307815715827391043543270969767200976941247641692580623780532577350051244747230410561607372928320614985305036252860160510460453562051620134750737027339188526420910518485762557342334509219399396656481652348555175894028029642802061338427037224234809971496826811913741397327624186482314259704312429297569967427031763106011273628691412122552452290509670504303589691474755878440482212745108788494696365041885598631380075090393903383938108094849165849917000177840434076987498197303022802682894462039233314932407652741251374457464203351932935605157220182095105133476744119486821205272047602113254206005134286558455461234675818123249223648503555981034784182360208216584527319850238683727874848116417624879158711654439166946288314855628401964950492914342203139417445557569301412003425668082537519125658453871188468896347955661234943066899862974913792353365695420036069312414701489945911141201844347293790676084655918876765913700304587698856435011374159953227090294150319321587881562398560655972384895664293297171417316531253031006537430067146297111485062483465757142235204916872860048334804563713064234129492567261300749082480002558572758517385895342114559091348735262796818824353711385886498771232835202731649969584704208280128560382160285384137173761093222130541978086092132131613387912007622097470141764939495988332481972770939819769202784918698798253962977496365989336022292290030158142505307328759606342159825788797630806338336400861010373846962717423150177879066444072280965800704938243369513126645678551240989548599139570173713235101632601134691550262470889220996811153050962810112115885683467211304554993177353122592754312917046024875328929306349913896311390946861066200331467028827956764324540932198956166004266672281362335931170006408152314691269366399633921707939843605747496656016796454860983906164044794111351984496901346492239573162642833928533057461713047143229931405373192011032019410378782216977081217248822524595263261135018452419842424585160707737808183905467772661485130711298444232125824243576500337452724739281703846907598655171498484886807810621804358472471110754401680497634073225099624729324219162963718615887537004987413425302843527997984308909932516319305821064297725723527031964613844980858642008935323699324302373350272661446436412099010573138525883853368959371833003886250260751384883758809039139336600618433399598291909839772942260597789457469486989253601978232516724911623889056376324463283203662411729782957564559190229982006892464309469977576182518478112568847069131854074438387432178035083811497557872179223995600194295284312212047779892471407128579667440133968175428528812826752012429933088507167271238888731910947658305712607495516870291483138216661362610485563267384395859893679774667985956679727164718565392275258555163231125299026254675408754108690292028867156646151187384297583318278310972476347406909864776976560039763185972545796110386843879786856924584808729297619445164166743299944026596010353444598180296117643966453317570238951296527528160171606726446301210732860606643781666691365572142027542713467467122828024450999614783229581049967992832002225654865940142177976853055162634169360326454053969558149974534865773888648706713986890745246158479586275014998905549630406005327320725599111414406388382959617764546207354130769013278067832260169411213932931947854189851210260109339473265913094784762835723688070597213167789945819427669581256185972606015870968808911088154638102680425109369576361371246838240666928920807703760221001733797592796605013011270107568188276351971830130429919249042372075629357854451881167762308935490390181033891391487189125594742380219168526393270725757227358170495942607347184774784166232571625670564026732440195974410679559667785456633814713605488072076604247450669205938285916245666472932299479041603374128702899558722858564218679301653250998824301648649275038869916213029998057399696399506055726407071761273733552436706764525140498820769158530266489721350908991202568968534312139430662478842702419287812294694400235135212232340719709900102770958328716847824343717222336421658280731829161245424186334956889891018548699951898656401309664786368711510020440453853248920788049452903008328742304431714938091174059631900450614228613356765754262249498482739806458419320818404648757814653184285485695947694807321222909636118564378711749598793004117902566478810534012255105692648204811911331930659849806502999119000903559911119084710721688148395178874779478382087824464764365594498012149341186390288355916590813787558610449980569149745138213621871350516066569506495456944390791513529954178470323929311292770104049722768269914549317321519462041252179350372965616084884546804441424020989215656471258972188811872245567172391462655158072523494520009849300998178661020717831248511090442108263648593458506900773458401889516014681858617152543211589726886404282468492348292963890648099314447580247004042451013604074700413795527642300121535247820337758289470950783319178125589158311046777109805318181773186903491937962646879406716910932788945342532953247644006244549403515330781670027098113630496984241821945153384874462473345200996805123968350214828065384588262794154651529405022538015264565910568339215893631212417285086419054348516550670978142778446390485742719606587745354190019531442246469831649268615005601726712256248667309561538809138163819860627107947843708658976673032246561690199416351196452456392567419573944253503238323117687238977842337142285767122844692443871414324484887685268488877281907641562197446394357234025857693265259655582081764332390837971071017451605200309877380161727908919413066800948216221921962097926200811868030038439461200218687236256441058502384204986097889546604019671882569007222093883232493856250719172376603517526478856459191491266633139623603821493049207741120861726096937974990956277138327769236223111656711456580210477613253161961351183797671097964809341006790564716936056010520415679352038882558142541046169125689059517463083275928383514571050406338134963888994908586184605685112995384916114330367399979113300267724116579892717355376675818646985810825225490821383985156112312208900242578297712287401043745946470956128098221703357153867443339014525119729814372470065037797501422742523008857115272488876545964234718704747473502743423547089567510553847843348960873543167985869966311608308154775524893214588202635333462391032264769826857575972412144909617934830942798257375434190844724234190236284171315027408261800292877999607679785667324324892068417084633787954962220621995550664915642054307974106607989470784199677263252369967444122665630513136406127877797414484322803994741123612163104555336873235123096460834112724636022334549713994013870446440422739259606213430337704861365494557625002962693397086473726333416015441702225151953278529097280581735490383832883704323131548108076015039954548059856883131594007759586480515199776197398198416556840813615278302852512098820739934792643961091074465128526308798831687872668406606475457690076541327099474779883807280809091140678136620900640201777927470226262573208967795927128036061880890946530826965828776117497220481008575038709390124057801409222410723180079982186551071562142709633690882783967233806453659305597898706032373420542759100435646235113198835487363255444925064254483165594200380459461968419202436540449615689014112369196232763991509099451030702079895939068319286108854787720744553213697393837761883561742154112334322310266036927327456918638172576522792633631834508030349291889740394366037051186343163989756857833482626698672655474841929036012927257176435124717575822906741849183950657629896621339341888046619362565472722539567399496033691495552754081797707850866953934917634092150202454492901464482767125270776587093439652310239988038763594792619815994896558941311037959156920940212536765058426233863561419135727475075408248014158853388757972084340782108089771287292686873730789950988481603905557503560020331005401290861368084468517757642142473931197126188801408934313920019419636731788949151049365745081148172643134788727770925980240621422699133772919892337954206918843338300919767682657206976160328414713207218799953762801485943522349704092044194118991656272004460590142682997916131437150023523823411526804999707693209265491139893986779103839744806745777001482500307688362960739326825377395108819574843486123195486072165040345659582146648037815855905134310842941647653905670739621414056640523741843151515655741012387394843037468998381709300378872799474702583789943166459704660427969406959328440124996000290178671281048779008678135369589452332799637757624425679811014182086426871270504101541908316319260698879122725061590642320782148109066423568739807905371659419379155964713832874109783639954386508892631860400321116563168752456722549483208608424186812163521478312825982471348307992440472523425724922013177031653026204298354217396795375719427753780078044241307811970851986201456006919788144822738354700858334864983595404501472968201458899941939843884282904365875827456657412490512812842879992610778648202855137595432788154872489175232408078085784736983071438292953502954839357654699587649220956511453243273306032296208782504245204983687732058018510527696173964887800856928452153372886821751153131155259088678096587062198794084033085480813991027845999898104842322161125559563606544012550165726868034004017144965228958332486898539830649623681780178841375926227686247786387046264089060024426347123178002356635722132941751859717454433504447565204044953293360671545084610427714874744006611549151648732024395864007010598624626880177176387540452313499504218382180165127115727421698765282915695229192748088951447165539347273994533634497494608244432511057830289389846200009564088549862147050217214957551444126218129669647451567578846859078409539646093543040975292043363430949672810185965257009414922499076984786704047306205254906171171665850345745595990164391979570533779085755601439423455616646738354068928937345655737935435493212851714639854065413102386388719991700044440280042141007690353722453581936255085494851371562174800368422429148870482467203391110198217600643554609682678012202831227681294712992007872710939068961686637963707095380141478504503640378407763999616417063586258578623443192203229796399022325929131741944574591709256153214056732184180141275273161020418379640346189458810259620686441231006797291453509300664831941364548379045902077363601130558046391142481452774546501788181438282424807503536534786262519611534936945528266991342039280740487059884659818771871659022702047887468974328415495176833535566293739133771448950282927521259103064284502609918503974271206391170145876027922039099071676855993230187918787028773936545177856704170172931256900960261509711525619568224866884175342384719110203640619864127195316577472444960883353159013028720590462984061548061555975854136242259082669953450665586694942585269960594440717608991688063910442283078349215017162823559062865481461347793660066504027666941420112670778328439823563539367736501465307346657223432389284359659853797491566299675283489098460468593736073380343359463870147660173338583286221548850972183020673268182469139340215560695544774353478968070201976591067364866333619237420085815773970523189343706424352680398925907820089719247805695766360580227998634579305402653176646016775449541732691410441780538131251411153995249518597447140574226593433694837703695865939468843886081333052031321734157133766374496408574286662309741737535649838176541952310766006020710088269753535354257688803434596164977614188931452093621774636055785092640642679969050430701931470517397264269204653163111589415107654556750360987028128193119608781529210271340446278798872980786411803541743915919768019383406649537917341667172884815424564068628426003637524203362237521377153465368392296410576365890374563410523639123082174888144200606126663690650181480066082961663057714227712930768207032153036180792420313691962437443173442842186194029784908982779267919702595746785181446000487245443113213428645359879210919465451865452658350650370676072987337033590078849677142449485730946166548936348323753923801603463521624103168634192292845924196072645833260828357762393351023684582197048723189746147557719828563299453800324676540237878900700222059614549989195871441647763756199597118298564261097692477916049806473865135519557883854597095055325889379020178379361411839374277925060840578004088235153049026185941139883088612556515348834122412086586192521859959297770021046666065283412165160202422498722773392195552621233276717388763488547640900614103349526434218315076747391778016411022335548636185839076398851407950564906283521206975950299073763011843245746304529938333088488692158365772474293792020974855953681958171396818940827369307609681928611478605866121987069070635441490219016695684805055132791031756562906099987195273199098931361653086184639283475712641845780806590010670546578617857882816369824226479148038382728519737349895649763082819349123065367892555969984573015208932504805440789895646015510668619658648451821394519755192206766775556104915445393423905352377373479532010933924487974495119466135841636602857471779466393711307565915186855000251481964421028136621029162586495894348091802973469901734650631240548289024715860732717095984264105492000403505351214253141306257749063511289315169765464533242304588024138041354091555294570887756750937217520243123215047242066749675531813423143212606881447771378907085398568472442522578336873623847787399887429728907504614301343075097463293511543207513533340868028016260135361033861671213611333384221534591357163516143741173287575790541080331452734779909785287618815342181959153226400356076676393169961811146444638219569093619517256830654816487848725596888503016935964218091769934226098584616095919111114928592875026738549784212536615044174750947689779309756879774587586002561437511956530584863970302042632878670207737647733433985065844598340530718222089328456533371736902913114695577222500523627618631973521622932575833644138302216182057700518613576400720803043717330802141075344989284893422824898554356271546725777457607676282893513926600981502870210325969425029409924792562845695477549459249290880523946795080170510992346146483007408034270365522520601735540734072237987719771334413508178403071152363159789422317380165182338021993530735971483188940105994864777174301743071271583263071351482778651078201852338256299882041713468939751305907472531063836442947257702820324210097462294750523466341527842400245371648475795465343742392702252372257273229478016769455862473327317953424804807770679174432150620841563508994716248166962801311898244707838116343475848354665705219226302344409168554962258067462029379846527466255757949973842324417307880165105469007731771665038772415876437404653491091132020435639114225266779945656580774774023241912832045276491099577800222027599548528829016254800832416933879838938084611483040980241429603321529165035424783067973556102826013432502532271280755104039355864367633150897423471888293672179385541795202576556520247726413452126721147752202734975907600152603043722075118920242891272474318787582372910035374142650944863409196784590560116974304850073962700528968944026829993760715344818947218634710971655774162182267297803367856436442849573511566686942881473427530197194174477061851829702399709387807766778962633074351283921560691208944484146536748687824958229375553612571651593215349346230578000226881678079415462531539905637815496792908279232633116621550171841937975193139869718931704748134769768640364039134335768902777426669594447268779445267384138133564458452187742113078051902447700924381446080256630703539719753653531139818859735183270949710927909225306196521918632595966442439788881590030229202153666153470588565316656903122671235596044217545573290277152056137899754969030229115354503317127032066773002324299387968959102952856350628571677622787483065768547765386147866147101464332564403403480289363915996768038567422922782216003257214967341218485125106585409770547040759767866031841161345144458476592209253838936690686491105543475879066295501319030835632562959487629670363678709441709454398590034488055690178828751176218629551537915728629765745656282800243589176779265488992267941717142953930140132934707938407811441348669335643340898901273799396902365111588066188282378231932317276974218622320377320291804028721636407806951812272463637623638715220313489376941856989766894277861749439743221334061931292794445227310369793847356056358792696934203420610607907068988611163052713079526117369756871133254697787405606266271261248055916580437004266710985150855112601039234723337701311343737275498257876066154501639390067089801107399203755993070942465374113403804037767681888387841369724587532199440878215099615016334885787429942429294347692089185597341898952652475142230396571474026159964458888718146272682356296462794289479456273481526098624848227986516276674451348678178077023186908391224666723942411240010546315348071433431063365142720041198067596405860982633789428150966791814802974074435529251847683927863467671758994649977954679863273828414225089553281948589466084789638481187329895158623615112440871999176114418961553132880843873106502448915539021897059460974138943937846531289221235765944841100756741282308709457930258199424074426431361315986499261110026694152151189122962783610616747098369999789443034205240279519433873858782523787282632232065473137428483641596398295343639330581597590141121752938805692719044558339674765661562303190284399258148716567344336349521349897306024161607667823676963437541024726921075661068540211670530718293795786573403331864999080211036489708945242932586222482822244758330409760673420398716968300704252905156416834242732281433576498425436091789228762673211992189094681829718262477555252414572771066489375205856094176735865817707271767810019961014851967387223670881020942990678171846871470879624935492326615956435084955744786320745519411214292417914912748918014954079901228629224862453917731966313490616469508887293185848994280472502023213858918344844013775111040950184746241102718826640422451820751644190294341543383028196729155284906316651041821954635694044252405897350083223498547567999600118581469017606991301122177212703785393939057674995447403001815476733975928057904647448495883690171831478317224897674987067203065435670476857765504842923159009383624777833712242679532679862834918085459517205360046814916735202140186011984140950150827384437623248793462439061514210033064899450266316849444692981775834520308677965451322012162531015412642041849900914766160898438539719744596373239674799645448260693087194375840302706035390919033700656342153190266614799590875773802904855306485276493191512180566370494722260093031485782521015020886237780007121767294895759838926168397268307900849825346753529542650042632985960271220453765320470467918337595394462966793944975339128865218664988199584012252807936530681831547614966587037999934024682169071024885496030808026523438982110989309362301891657757652602845440787974002690509105055404621583075892131099020598861289957899623050316152020858796797907868293160803407965771525234417384497327963978134853345531851186855400758801518367994597787629590860109226894363335678037456530027020477090375551059161228494122543195927007653261620687635492051557083043283788419794147588223830342837610055258232014194828086094438546212494052999342531177261818101973156808405965528976580268459435278682816942648895138893275289666853771892305940902217044702256581931539960989205367945538634649909600051493146120432143773440560073025168223586318785046894964543728370042537269705641973910005507714594976013129876461165412177349949328169571309766586123609468876783594885159194425947163781590346599508737369029410386244745538784679105108174468234599758122855789965636904368609597276099111726135725206061854227651673289107796882478447086119581217459399708665945396365975413387701847788824380198614960537479232803126332215365269644827832816138136538966553585917597465367476683886279355586106038312843245483121317748932694582416961607377370270629554443958039442827807585792740760697891596458437933730991943014983138719074309108979805634389504497500520097964496841233660419848910774591297665793880489728755926759363134929159822033742157206268862061884027381771329945079137728737562092943422385243882879075626955451361985182148544386053883800862225066874592288545864357696673138386075309558769749511325236808352414019920132786539647713565345305058269706192919944609459038074863844379885286123267346609826264281729459934587031300884617527072747499386682631614853925834838952545405128620273131485543385162601443700913715235690978545606915501210060005394783550882704826766440348131249275064913494271243431133481506234627649337786865940442872709118618092450966072385765445235194499726544467855980666230736006903156271011686502942899745207809351851361887382612619086562043614886139413885350687231580321985140723079035750567559475122541515913062815287573107051122794136108244790039349067024493788569438973291920741749480090169803695117372899702711748770326494792732857611414814737860600855879045417937575570131301314692738764017288097517498174260129696637595331145386922791075300902098044601526892362587037186277104168921484889398017949625631496724619873557116254943493692078323499054327470417420487649107359573797940773562924323812976801427753024635877070795963834292666932051524097190223710744368265627198467719503327682873122852830853489172441068552152180813403687247466521218606511312780324605628671718806609831494077080273594651746353696542865211578319462830072627481171503026246493571656480170341522643074585723953565194241443585215382844883644728176006327527324034311197728223649541734893346461329932430081950257654294399258333638847851095794901749151415082533568445588617911508397310724792225488980863061102236151498948815040623791928273397729611089045397807162519127910989678137832990646643942413964790614196913078280845596880406960624577476146515990019186702475588142959365174950536204141457989789923621807333886801028768554762664913547954905626114271270644530770179825919309330673565694681054181379621363694218879036035639257383445526045413117224495853086465589949140363506100185860810839335290500874290988804429864664442093508634215165924872526844494680702833651495724383308628756269691686475352919070279490928637269253203763194231369933081100467626003186705190113949087655817636964689711042967126757163581324274353241314711607825914230111007294991888553050525744732788974445164454316874145220245544569309743637256916715218761996429297477707737879767200736278501855628143031481557230020464828192131333844019585285736794418847535286653563791926267170199937475984739127777045009511848426404012139598011003385934640634766076787929486034200936510015109855057513875218237373681822028450558588955408765462069190117102756823909385569749767697129999127183681715905865031900643098275154098982720280575258602687980405373002184530468696155271677591528378048656189842294138798892636662423047444463061670735038545025114113993503577082781301014183759226637682659323336673179408339338600272612634864600292671382824573157101892082055723868249029182015490463256386256228900429151200900737091705962601025476768571679861886999508391691702039180388779196834644161589006579096361062348349342321373547011871197739045572074814622817389632906385200863464935183384145127366907971080081759251259271775719947069344345287141145419035644858658955410791125402683013014335014587509028954890003082521666391547861257198719000236368225388009508594290688139843627172258097039807657480389711377113017635735947369736824790564564586663964787875825386267738637241527170273045022584390004688872249209000693526945728555455988910097517439219232386293916629381103427838040842217846023529687811754515144143314307569246937821803139951585221092501956382775823138107411161958795314248880567035313766913185688628463530457308284376970343046509234617581840948801943289645860331281255218077557946891644322255571167636582994094582220090804701535511505465343003636603937920549505810319790997097462808431710628429081230019282284163570834152147188713981063071322922527798762980510895822520143123913800357882513312074146870508914748899682410762402264202452922787130337051593122867835373474655089205578995075624622309279540270386603431932337420102459108064960322483307496985108630798414681249445257459961678520304402596148041935300643617201094689358437367437781597610626495580793048598905565976832873963890983613285025416763369809781554493365321581971047472596933334814583503264461282912234626638514320909913575369728869224212260175836215075690998667833464601006466045015657015682151390495644804680654228961827110478567441078907656802694129892973076229194398465647702657097320975453363452011520687381540109534855626051682629977251173342155683071561439046811223419481346329987197091462156287090420273871956535777853755584636145674059779490467559789443361861383953500423707570817661201277572594050569079982651482049409603476681881511204004980811774140611142455427027048009710934605424141284050751558312106990809483621031874840505103977494801289074009840331673080872318728474367384749392222891218533939620943476299880727203533549932045626039558095497270712228926105301439973867942340470803187752301198166037074091830784611021749995881390537301778987642876449816979985705750098456836130908949887753444561372838090631154962074026012663735412547410376052016759116820250679423964461468058652033323690857154036871201365299120456942097946130898523562500660842246204087142562890632189466468121658752679581148510859316999727975087092271518783154229174283186962637742279480992402566591286749575181853050881209560258952470373647385866010995637635037719390320284009142246602087465468299500709693345130650229293159476235795018576249213633425913721603431754022358938788826853873813965328194213402619411579979424576960854568138580041865633656472875575407555635021895221019957220328429145823531499513504762374450590165897187185227015570314439772471302682737183673640635351012307741373473638551551859717423388193858499682240632103517918256496204754599677867056507215679798311262924235031146024264880681685569221259785703875078367109596040732169149431537389065361611903461546685974357641706517649775661558493788839552768599475217682180099395149748697978048155916535286562557498917001627851248392878579542482361777463921152052992517070126749735636051094568325639164589450437129248727500697419211896191675360555352892926119654807917296112045995222284184293798095996492541030119121418737917700243196616015673714273733093675434699295269651770050359350002163959518789700672333231788624125773638388759347916791417268725578687496591837775183835650491295744193979908777731962089003138325931639469797580978785837166369557484804489053712276025225510155747095710354535956066151720186153461677050430017069753291655147757859202157631449168017191776674102465076262602220840495146882912669008908162980316852589311868848998778111655693944725579353419150390375486619498728117562728604342846646505032436456291951349248563700609876934826925163228287194294706452800119191677112342298151497373434876176320499838703274898948045707244467183469507689134844659206337348609809975589514962482567638386893200254874341667306503669843483539818176110857861568716135214094811663749320823797642890750757304564400768453934089398027064667979880916678061661719627386002551098803809855768819867446614480644798753326352923782414846055277544440591810785278334183378270802690048059704721760330863568538834390387603265886895866476844119149144936384689810611302206853795369947439392256543342441310960056207844774161174147740347429850901210017989461749682514412268351652403838541800288742204863001203054425347798836815919935027372771421248172612483635176502658569030092631723805669239675213274946217098823008031708951959473117769991923136255587979473571592732045445656265907956058209631953950406594238914805253368419305896127718473051506818238328925041090389664065248820296622388223770671342753232678701679372571903014398124724674710385594238349218076019826230822706777512243853252133589176981544985372223170268791026857926533356860183857235975392496671799729959343485942535988552494900431887233801153561246895477060953344077357469450829486619998677236761067300455667694423947180347722722790316577284542006551630216964105846508023223852418797317433853511217587467271730322050274379759029622987291585942823469267101197049045445756867086074791158159620437264693610848228154796872913144033238793405960426696016087588710956442166401775318692256236160255867328454670867603220104289767602638509274087890234346263196614257545092007842160029912616873601765435166214311686464052659919116993660157094558784994973368664607121340125191226095947811238430952296981884907713405350449926813812469821863612531763183703120854313229784848277078155337026888548693488392489393524724949918300668603539962696380507518199576097529561342732281151740590986256857086025860412424109952777383611370368321399190470022832215003502534224548940517992546368699450546700313952390358806560632910494706034853387424212611799256929791793351870306624855516441148130934398965373071695602669530459596733969244639431140381836250902287404349893732209280003522190454538221389718318524876640212465338653527318101204687494730942892937471395993251539511077928970095797288729177220093095469125944560842345610892361666932754044230788150112352652490840091746265994070567022554944522360511152011536811116603060213636436097954396962693488368631353401700588398516691492225187850189371270376284511212758882603702128474368212954162917066974815163747446379864269730389744902153795677711303794268325291473989960972836136362340556194686738346219137432990562111699676523276922154109761066731290878677023183759195165967132703454114087622789501225023719232431004680326392217349130406664978223591947901521429189048927574901525395318043303954097175317602134929327686483151643521397846821761462988585489931812792706390518223307271591434933596577289026315279074362147962235517049576094200658548473280710403224136819435195415813051943927346344029435222381599524204102562196320624551777395326411545968013551472137295309182652760709672833914401098216003256989427529497038094689243541832901848648115542020796428401192393118386460531035381702770369529026552645437964801372360924789365310164618715173138095701401147169571504928408511915188397983489090287953203282403852321426290233791199271074054909303650300259286397773757113076950895842059136896128322599482161021842386956196148663267207682685073293512683126330481996067134959624304290580991365714892247894166635142225187657589124690067613655155947127090387843773886056128951305201848787903416311015121775364870320303863090483981183069099370613984283574381631288006374728658460277751464538930907315193467113972783635533053490589737234393592370027168552628717573571514580755020434054381190241522868565132355971082716182711192586629273082872422144154935431135951884666123642696836395999962925546339616623944294953498128140958655251176373945576549595800120230165685856888725997502629164602613523819703057203500561956107861983408711507590924177176270424628956417317272969573069802606685773713795172017748130221804807546766389055441000343358920996689415900172595711059556521607081317091806667326993109988406700667944152278936290058393421303367011615012791478159905275959452529507167406557495260728763415994473482650208820995244591901409617870132867734533713505667921379011376164986353222306888145119805729610787801866214518154188892360631523262873619735624361337134039041253317931158576979736858209188783600607072757793992554645148862402256170165877374764506833592471134031943297413826194821895192310423828685845025864647038367938458206071377437293751045088008376222567362705871459607191957586195495601196982141626093851227806425709507361066024435015257884582198611983976734820435961421508458301054000650068976051100216465262478451376717423591922870619664340304411612316259800965584158844270328074462842712953166829173264720601940348919580490340016052204947083778312197247497270173323506997365384651747839463103211785211731858977403111918786094830355938626321414726879990243173332898409128682173693561399296934801928082140807849680023390015986120869992125278582538681766880596293591007028574694285423138580958315508094633364725111641569945542662794417555890180872722337926250805799947281282678915195395454327258529659032342698286434728610122504473961250848395245398850936076307081945509336400441585058739599967086034599147170719778441297731528087001220080479641874163509726316360810449384456005357614415725812231972082814610391175124772912968685793291447269120588239417738115954979972085576942976328674072433550825827371476530023122688616383331433601839037165893559812872951626497150665298222441286852657664905142586402550802388814386432631395359430861841114869568312446058358390624922636228410678611933696193548504448582301711256240665208299960103104800909485535223467385905728401691070678075691055222771373671383780531999272927985548267214547513576200639647736120307226968965265857772105664928660787164394003758616372189561136860916858407952469733097282176545423513842511679382951499805868919371087080453359962757416012817853772734424440385543975712551250884160555428074827517976536343852701994915670946367515965831647439986136154564788059825309066809769624651892843500359853990393749980804393802599830346432216346915100904151255181693447911481543302923872721795050374092793437514002489221178048728525935581996779284836399053048829850283871755332996989009694708944805380464268784137418350097884233124948492631013902447639054714232022221222955658198665345911466658435694775275361618254347449595070963250207256127698644200383921908411524570050768940659910871412370813101111903031856566891376859874940004939679091877749575393405906843648134552211721174601247524207744961125299040935449647023722259746211207461444521445590904746977827126389934342376287284872493750586896106604249077246055710431114509411967058455529151301284930471384892553942091455096679836579347419337930581506136147007939524115069669180146515090564738087461547477740039517993150525555888750869963648502024442654523170929574333675809973074506225897098368680976688137797266598231568798086029086246909725549851215204863559946963551431211525604244598916517070956492176264957157670424786013058531951145613422081962685832420411266565795851450557613066933610841400893398545228218127919824570541060087108305390077462257616697427756459017308590932578279085415225024685414247174550502092257657382687437762915615338735135922441862604947735392275548242227362346552993918075301556870344688097068889675184392096554168679642943354422473854619307205877885612140408502620907486228063988150955852321659639687991379082557773391128237078759210112067843411973946441684670236939865467733207905078623019806560429747137431801786342813492878650091071506919682730960574617489478728494846546928446597338867043295548528711181821375828165525889256776681395644622286605193404791301392455407374536859332484958825774202399429107381869395806719792273942941495231758158629006685269288564573546547308333656079301468339086009904069299802293189296288143020186584344929873255110328959875497561299239300595145851051028133358355753368166226276535420602795540679144886136810353240346084191474675716866695867145252087356169070367335039760302274770938926261610658021083231530641097350007025063307453017722766023205557638985671891114950056071202878909726635266044102811773255642833337905249392946777890518549954307811467304051288203237538246309908624081698743345567200184034685948917362744601769857596102499928479701529584715285652366786387213196085355365832161884243231678700116218445396304891394239684817962306695935309758930026749491150597734197521662694541949073204206748366977587681970243598456445617352738470367955545577134121862150980647446865914746191872641632658110978988696695310671335288167546652178690221971494853738242767656296091055994707153994368000901099125372454298949454617327592339129418079482318394774619258878579960590663369355811787305229335591370346829311252759027619250978199153945279723633893720200242917001090819508372597382268229869930493718958844641713960806565651683051860969878728823951872142171995772869854175649994559958035818318867412614163029688232156259961659469067005082998164465898854777388239647828876984779151521414453644328112836346020562705159583139082545540994034796138465701624403422827771042497560979616107979357671344413857460562908169867310079727704132557809570192853980416642874729700787203059977501036806013153669852169855888156375214828638343312969321768617907234723257088349461326791352732824002769576521008905996862112222805559038782547909599950142886297793822927122821075690897975452347375016262353301779401918091120937531529980666407545306338310644275903996814910070870970569028895026913275865665268134722643342147989087372724887806262914115470500926541975973544306804168277880522215516127700675025590107983427469057348154570498642379164356172205303296889868503959314117380844044537469850202243546270682835704805696781820156861916777097087826516237276703310042715236438295281830481585276052772042480559305183043978021542534242408165537417400954337614968890725327817498893405957459732754132227143930818329769160236171273862641434962173789243195740284655004306348897184424595295630471034382922949512026229907876159495016286688882277567729317234272911761026305838673700345168851055465121658763705590830966860134817395610115391843163090205477611658582334232170246862952035056791262171972647373761538629148664184944732803263911275916756826994307014136655203805824494645158978901295850844943452643691168366177604161514687363578531746089283670478912127768097820130073111004073613915390017342152281679833190504216652891581583859790831833617760151604865912437414345935437270926856702493055575722104054578408724869399723663345881944760320243124666726799986019298575667658371168666669087264369655048558770969097125881958693406328193857778262090484686573979057020708708636999941807686996967558692146916682581339292264340282375186122953987245779420487404819767012205632633665673427158635035177932658581440664373153856598318929987224563945174370857971861250568060602848465693156028643961500070566137865434346488597191613268942720179143905082950717377491367627863143369082633987283118225497962385454189780443595939541548717050247461378204438001544197074891023969128072591017713407618269262304929190918663546633845845406355490993037592422453910001469933930813268732059865870790862982748402624394320425861571897121674581629586809510408535190929226864000911923337888096452440022845794509561849186145114300092836841499125049281013484635115515523780026965661309340320555079042164518646786586853722231161879319957785523963509034313460211412566474457428370183923763673449014149998054075906173630274971919267892844575517981291352800538172539244561877859911791807797419562592803478380793409687038820633610481587412024017844192211572329926798491204389136309034971958174235835776537300710296783678075176984934023398813126543902170354606967122305220268119595062050366315592448708601979558110784423897407490066130055898388536511754299843135701431211079941936147551829166756860501366029988021006875897096624576817013513336778551550439038458346228075831538649621165368496010544763491301044979294146586682884032455166062397237962617811579730770965421095000158437997857077831154681369734916068039354677889519841105682538210751308638396303488254274623780327178724843150226474324149455040003767036838642760385143402170045724379205594408365990141817297103231276552222755590262354961422830278034923296723248333540535538042794215481873639685242716142806962573140586206862358587738561955162097407613173118231001016096474924872282155595135590848042169041047866815963973652872178268652222785320540692277342184401337358757150344028265398221309947259214899128418127997871521772399305835315433288163449624059326261061504712466449249114473644434583665639442123356525049373410484114175221509826634081926776269967379222306938782770197553141554715975420763601199602498711621992329982638472200299799737737549169959129806190883488357131042680800673500446082646452320464772191513766307298645176138912341296402202174391429268861861081069628407223345806136101841341688082333419409713476520405060455182589013299803383578804707364127326041332560234331243294485125597065501894759230112582180744908731939260464319242491631574329649314084658621269288139832226259616132174777359476927965687708109910233977992867702883463344420797797812934952897609473229349099232007782705880078338025427685139769706805626173543172020468550327188773738640362878556217860466342887113955662012924596431156060797902168996661709779470124384023310646356800342976507942781954401066504926014551091789181875171063437450906802696645443586549514340775885078903856700837461718059475094589387111706287505998340644296392341961046829386907219969773067243562574788177704165126104242416081741131284257012774884207768834239198049477641334773319773382527416913870194003633704646884298870291123336686808704856324226250612749948534376139030108416608451288660520590485875141403493989053472065685818806335481488927205391304193957776565262816965701354174394902878226121221784243559235289981586985438775922479139020621875343407428749163669521931467007529584587853198035959530269196416859312317358261674983132720687512933786745428597144280336037015913134956342385769023137980801597094998837258239921589136532635214457016884157763678340778998551030521514390321001800891870806365025870675432627509827829382690205845076219124851602001056884862469563087299921611700562311055115733201254265689087129152284679295706480133331812211224644280284897873952916648688392386688265077110861173094286003366920485340017353253489834926352583511334174761244062541770417477296309118201787751574454354240148406482290824228169398267665979746564702969592038355653980734433587506379099488105289821917065126649896231606113361358971227970974082105854091303695070507061866486145131917155984631655132111917182974666998249038789664467313139288930084474861643165209890059557183548860383903107743210512007771504846331635736285857468198760165794887520534864236327366813902334365395021222560409411585611060866151320933393746225512890906483012610991993756867623016839305803274230541133756775192230020123130646914227190104288936980798788834747269242546070331460168799711387030741198504908874860618795570884312490956849926031806041270785950831037055650224978009314703297950755548811877064932474408591417164390623236241387405831427843640918649531468496648462090581488926879013621168079748878447991169513950694469891732132843140926954958494882312751535068035300041865870695741749722809679377212028012172879068086707012016342071888835374800100935875669362131196391877953824654250348295178047481146895049858735259314349618979336466940191753400424993813382336132059242968916340498324510856767522015263144046830021337240702048403645602620792712510687567566986603994488537538119452054147426400568477526878560898652826412110037002934876149918320350986492670956567403521442643536276615887383543907165584280979793891132346191848079109815497480262525324647158919628830613190641656905781940241604792457805794151295950793383121705728686858973222834426934521938461761438969234209913723932339081183165858009708129621434913704695815454514166224480268094623309138468531470075969867366286225954589300732538933358043755513273524607033000647514489279836783570595932743641399321711035248862184041772674939716364295373233267630669040917845628388819900291187226121882794823966629081790614635408780677934084484313925989403722688185092228431269483277655887352886814988885244649917924457166547923581057365647829489858900879255608519204506466059579419705421446062567600848567683080440939070648792504676009425439732958579316888129907924708788344354845401234471500468508287179683570510483876180748914153152873258797679970537213430305275806949449246471898073584443518877199603976357614104318314586499012714363847562795590036263317168118032495148941477003980490074797556972497641916447171589396321774696176639681943159715874813194814446049668230148457509261154814738291264708324921183803912926672810672437339615712319551625604799089913583191871042667690552916765851462965436099407444710632408945685534751529696755790366670105396217402554671847219832817618667831014750170491436593324297553567610731462672226199019376325299230571704904912759069807902718153021463974004434171115181859339044024035955323161260897075136763865146257227000221161456410278341914242816857133478961610430831561858249358879692257273523140941555600148143104804624907419176623689408578340819590726151157614334553949012527043196507760654971208043325646691038703907574288653334065296456493788948840105032947614606009810747618292066937889256369383444745344088010769703877457477803037353690377537239887446928448727490095642103437244087051730311196000746100817857427526177196773109427107359771512497900407039167625050833809461149728904394697450581972780271042610417041292213443224372469955783964963882830892228237101546066810341411458430062056366275279000920558842285598903160713557887247732133204001855174789256724076680936107524570929962745470290041950960265976583626829439173135879852632700756715246236832430583417215676274578145646832617961159627753499074732676357982066331564242115233963245761316464673245836192340260354398076756095075808732313979892298556825969260789482713764596941268754040559255536305316698069378759086292937731691560926881585261372504531142920734131429792808746800358315432804238599569445260799553321677889471692766012586097196644293696575838587850583559065014756469860111145258596387546050175444158473938829615061294152010659044843881643527465017380419312576712581554776193187486056057539475792857556427261317541744199137410193520613408595504968560855871712829215303014550440698546198100951396647966104870974466865734199712484756922676034380127425619386097832263628304532757141322086396598105999107423549754594450423533478638841823391248788704079757115910566070010478696397797751404282589628009666556691431722012731375027825115512407449058909741246603081887810113465579634893302524996508888748504113381077173654965668581130373551865717606039277104775501773575062473452892472805647002096664976172961472435190036272849740350028821313074566505347217257237799559037734360504674473834018331768306750855206569636747012233957006682042081727148783949802732260509028812159240966817560788918171423537772661635443313744370817627699438166441692780102480904720725117283599066493531942092183143904097504862812180642531233734402011579561619131784048355028107441349941953087844826726182258940190903061173874757814513999277181816530663485848731680261653477178888923448685257130240793828237392537739549644111977725796958426732111886634184827281276458417554164314555834068889257750789655261125602008765594951242345582929983699716874457006045591689370916157872259787942328305383520064823409661089746770260744494381973670869198746681050686876412722058892657565107691028197550172173684922954249395763541536942358886826248375057483991045210101494062541640266783532908088471044587882914175801477160486215053983724212464542143302446815497565247675859081447644750938929466821387457273078340105488683463917631241566572439991399949438657646127926962613854618874207194993816399928307827109358320771975182288331961526266074378915869570649083705892458997234329482759414296277548126486621885521029040904782422209909392521772355198334162272518074306667049825125054498461405162437465706252690848124236384164967615595569218375868303611882639110840498688540894816596746003063979058395792119080777799623491256985623040068545964308494999881823633911046639415469139188438519049363788256404858458586949197792516484883719801796101366537521544087968918365785611466095600277028860450868973205652974793502086218421197397688751851284321821618053757316995622700058389228594544749907809762235107372133099265955492652517091323886195372057656460218876340846325528343561723820255777456803911515718323403781804866557656950392679467414294876485277992920628368700277598153421444537251416790544429257377341106386834089460146130114084301020324849955544092469709313843511699330480898349616573809432133878206572154368188514909866065527179712138849867784034009355713690643313023159609598628762438896748093410377437693541582778555514178669274734996349347527244408824471481671908740318814015880101305461800252013697836013215514383167383445940194845904505725370917687080572036048809013877053620051555810491694770405349440073217568563675712165029686210445698215056035438542191383911943530126731091622143115965082674629302491043686276806808310443011322414363143367737725528101309380889133128319718288018703409430825990102194006665796681247086157258549621042981774885606616236433794526937121729345789502214430517522478943045634972872070141226236572013401347854930619804306541496781459055665147606818720217267186575132406115030423845572831843642182335086210400058948637785680426552768980750568727288705264248225843504355978105253463741692545106883883354899199605784879691318739592552292501102065292770394011197220370894247741589877974057771118636417693878611957727190902065850232285746665945490381960380261669441819199249828576576590016874328457840161550391312658102597023698120347921694698770638306591241710228040082562412524860514105635287297225948826209302911562665586500140409365305989776686020068064218595392078390741777690730058021642260303574364562572480854892245626815619425350251566325621752632349332084641860528029702843674386889842096059307285090337377588172537533420444562708161460599011157496986319111895747751307346164413636042629782249914362429479618050257790154338230832390804555121936980480574192576819011606205735853992672270607222244638849778797639682400109768654074052243731496666870402686524150413275070435790319688199132620305637817888091503125256071728481519190326176033190822145487370629969220597085004145253558253774198307876489260890612564868664272872217209618703965200059851036759858328704186372055951554847709891345282278225359242337214834653307462957990608525907608141010464911674964861494489752831843569984031618537914214586494231344034619812067675847463384309099108972733186081006181743685366482418868269630457175481570521093446649054611813979452364110552325323815165683414955278749831160792320692336126960736378648382945761492634531651986295694188311462492188569159786900411925279934315781334763265659019886718488150129975503699777309060810716521339147441458661310031596492055361475330085926092261916943400921120354871628913092918242162638664146309436660347003844957593668772127229803959086412134513397531183766721050542344871348452281125572840012673740489381249152892557740665549942436443195046165774446396009598296508173357797374593420670794652081371482491168624134659646058929711666553969492622105235892471508279518704458205450855218554031402750000100569368894706814867773178042119869989494495475505414007583828492279080117919055468412837247531107339970086681772942968780338370060510163209952256618035448789567517450840760368433427874187598051702619439391984230229644622161894920908855949491458406195817033734980120511966276089923958885744691574514353486551371405811672547397354226430763261045653308082164830660574417502093042751381663778669628160042602719999341319898628632372940531990971910123205312301679540519318762118532804613742691770492743069578151125194220636087120696331501212252897607240112007913124935677475870731748609140941943195109491394644859538281698748732217892943697462334924795492610743200997217880054791995841875381924144379830165977982599583543984566608973364724616228983638564637418746745800665128642743218458538583255273896343824859940122580810969639065439837521428733156080221063772654075199418637142377552882624345816030626689502837091321863875642808408776840552390631892167132419598048867857083269959750973104432266748269328885254306773559632566700289251431224766256828356498383523764085691420266522971025149924045218571312043327158487905579430577813205353080978996106287974507314747242100469765356660000472440270789482519581891153777235232868780104522453488170461925577287996579598153604549799465293704499821691733657919785378216236147170893208778381948182869946559905727544230636485424923876286322999574920327413606978684945071910497788439533027177031245453014867330154864412720326494216581999393565318431801534548515228598588154920891538709087209156258774679983284689980912553711387847660586695844421251789111844461594188521342924469208179933250987794439423131464637941750702408940247989729445515952329524272275431780101040654976973168840302869495628513864921149350010993575251758640338988537991787067305244117953319856417449793161763258965545202839552072338591219287242696893259730822552021385409832005403980903340445689807617174506260775500287979353485146234977813514894456161093231777825402860366822078070015693963745054187866171097745044113126907164697330148277153487512606514837897485442660878841452986445209375971714349171563620458738481424956385225559424771871382176549796564725733942076139330117625461369595359590972596635312980145148939953355201847966401388560503445688811400752846336555021806745851082437370930322233384584517339839837881859421197475167908558514967671853270814388452999613843599629089542615382883474084743018370463521325160311544473831183774646098410372491674895582275328078722110305473386332002571608682522403433606401407382213524918978649856319729438254300279067586251608653256322031093138304372695102369731197832506590729220276797232671967675726912991964645132627275170719617162445368937075312172332423583856221019649096005900885291898050937498192744472946563891853889189489845391795534479518262955773212016844151435712905325737158697295559653868897703211219109273866577804579472780891167013744871282282789060349149719442698805202782237622260984602123196441164474823630115646312535275213677295894009663655429768573602354496689260823151719612011808307884752302872879825883454170542231959667434700006993780049054253774566663215985107522856352790209678261288949366856635227385691378180452474258583212641580619196208188502700280708393853267441097650849035121518971338537330288587728386903575308102500425621827953760586931435553845491250642757462287707037873095190776804204453630712972093243744368276918921833578423091877011927402915576112961822265564825753651322071617351748883936725157670575313304302171362403237399703515676879683149767389671374806178722334925673657057330248371524122292589037803846431114188852185206090240118063817672139819122538858394739438022957731074341869224859134913456099540211133415000143588566625069487512704588096589064957840336663951553847894073445860926671722788295962505320000419843684223487426803206940241716952747763812168779636878876253529668891868329838441385244810555206690545199622526316962140987749746570928333276587534506807166123902713508692224001999122745640688032160346460488807302176588106534766756861500810516820775037714981211389981054068129941031031638802925759152924843358766919199510809416047961269230408414564494407907167887140413099846254060875331627360496683048641175668273191977783305218104641741140443128538374354045315989679403887892650135980385744201281887402077532504482096749389718805933097591367315297182371209564582970754770950864439836918680517467509227640185064038697156823950429781830460272184313357929978375236769517976004745235015476714929751787974629031828712696606771762458983303505899326228599019020376217052123740583372502908895637781829984140255792799054418431078142201464404518365226823396696075148519376532456505261255812654232787118277668820551583790337213176404540304880855695318923011927650291764159790149263784751210996714644796029622084632425204806581249109763413655731941363195053255300599982126033335206586516827976804650946903332502855448263188028658374541158680356811120719250919227889079052442428014378601715363682803741494555666752530042614438013268180963863646023809197659078121058328180864737323677369797067276886261077021256469320130058751105409270581382717144081955779430496134963593686275816186768174703958322591455162021530045677294269959058130056895626797587892102656964203250696228075122261480300714730597348553638107626891466802135427736335866300354477414672382978947231860365025355807823552787674081015528041397994028730857295708821142860068766444006183929933768184842703649993491351654728759111627847140429806289307270260235009981091555263484094071092939132991901623878992519172121087464409861067459280036287077985793191479777515780668840793610963653195657967713208652239517883018077338665598869978103086472730254228703248292997545949098480787491098889564020488642466860070897997522679233719096206093377695798312090956451757201141413772528610790603474531110723919309470912464495833844936789030545230672849943739042958911250396336189758583512301772803501575419137655292656536778133626132565362230143128306810236425223994687729407259782579461088236241007484704743207481785104210695282516930653091034361315839353117589920438519550547029370635956422523886716379992119754508445392106799758642660772741670916157614942893507961100820590713940837163976230674260433203132590636001379785458183792292329888173094013107436202106091137732152241290625209070070750285441692586571812285037484643334456490353882412007436240798179130345422301371186730021623108511740314815248897004298166164232156771378817802582182745347947150639164015144765161185112915151423973416834354688835035327898442337808026502858509500816892790816257859283876454980894278384870859418225248478635518956353789769462536666692653728631617530578310236645557262387092332616451614373876515511582601414616734161286629056517056465717659146643194590330778897483734294771149579917167302645633527429207441835359290776556104225591573096001506303936304535168486432017706839979144877103473675234839250254128091862294659077653291999695523044951171976110417034062720519378346293370448360588520743512056028737246548191976000704746297742295431217491207753923330871896537791408462001581983082283954449258998894668061584790423787109568709771954442098777622682553270586944984660475563655385908778764070362386865768487702288113123634723396021878627721633750084399333788854600146339366998448337871907341130057294960769804704732153190978999322080579196829609045102339254582141250821485244559721662357526254113518733978247483739519561627722536763255899467006200709636948521938732075972997314880129335865338888044590349734965990874839746038508865517819794635282918654806396146064205345186458731368019861842304158998416349198968753322688865369268847569049148867663101960297182664721696142065728502282858942672134872039059203281468790604367166202195786973700475358448088351080877895360079810798890224264962167624634280208187030432656095157285631828947924212077237756652804030611641247604636114150553778565479575594180474666876900190577025293685656792350819411874591613806660669549061010270889880844224081694201897227621390170143517062429770612173031536931731227729103055883127717501266293726441600350595886275933686873746256163398437921102250524683449950072693843653048716684634135841479771359893495111690983467820328709813035139886950929307653730313470423689785046344956412959093168306219631145775265340723129011493547662104947373036158293462218034706750398495978387355088125590802559772293457419665646615102929792687634313047909814399758194450027170652743050008002787482944145595868047786664352517691370101268249054296127389144402901507333107641222460987950057119191597232744242207769199052691742217634269342094369728860217955281142784619154988643056564902432584525058793942246094048017786757478619476147921073344532822800032459613911319353756227395379151946095948962454119163965121202605006312943450309135852640804384738856403584928591673041861331518068114486870293213419395988929560392756263680413574122803515551611899833891123944616865005034026807704367992282087475914641135575037301322131215302300008312990644170680139499658925772225888479818439451598684985032118576806346369632580860240660324747991577378622684196118011406643263496817706063722872002066649245392181477376955274170261221735862814412164995233847268490568059690855694539977577363079794200421420638874196969151224503776302161024790700178811769918636513838776872338477453836908097132353016151916204004469812921332179127477083580299231550275612348974086065901124443937828449743808708800304516800580314528953178615110356679206930580327695265460879057053927171762037645435931886760128058091209841269095613781444638675250693880480089813780008074571916433626546345958901683619066007809448365167143991838761531036337725411317821222998562494752681399909290923162281344096615006924542026784680916343167589877497406179365234429891366474084559415374462734972172892758024502583915305964802760562180488287303475279800788164471367499789861218280147251992028384071547206291026978870413374546116163537690174665426143232858861286735551111579603102424779420255514803377743965156989996913242287156522939925583234632843315257272202611920086812665681805817576005343761379177511643740390031802217010210610795555711230720383195428469249517259109098687049583087562265616421555353434894216114281473552336346943635221356884851589779887410137530502021986688184073316136632919526632076830907243230198766788530431931883742795819771849692216479194727196703877645922076482290494064678540411613565511492971574337629514753711301587191056666292447413256870380033907693825575166335787506494101244235804952867040194295919044232163340929654404500942148423963108461378716802883102451716926064671960696707667521745018239806379736673748336963330074913328668091426723064834718227838459776824397716878601088970940860496567375947444004293897607223120401609680582989689488183689398051031369083048492063059637503010682918577335895944182842211056907163358831626775295944102601881279015049947611150671431382788910416797628410878085646795209538080846849554259651296992981114247295999373987491806702809647739446336262975204728269623437339792874342234638629458695202891977188053762678086247490472104553985426394738265918142253882148129513724738128736693590543486481905692984804483686702443267354188699030122467748398610791394757467788308371083757298955645099310473772182177041217292486840030540467076639640912766546470334594250309545956271730484420459289390583559468651578338855752111918756762631980313957752763461465294060364424800866198394101720747208241756134231641411194520307763044856466651289758764813343059515490744623940544200148951185096422367659556461110031233251737358985066307014548052874467608212745768059720872306434218023522702875288516075578686899693657333241764900563326286055706659048973134120875572669584070119708451133219203179102368060746916370259943645504397388291652679580126841890508082838359277576448225752542635048307375973221646274611072683710555017932698253368326277659707564041268216155254676157939745651704143957030292803818113823214629276627330198381631781696643358690328436245403616983658674696945176984554606015529756376462631662516931050271337537018655994010574995904795835822056305499431141846051323057569933689498409842737097505897696966556790645520353078978986584751458300505897720019542731906172217482631729313804845398580209636960232366762961352837424200848573703762532901046469753695859334627006722061253087566433002319279404638661553237501788072801588872987438197681122445676897290192051827563138367338737280484635356335691711485276315955697417834982656541254463453529821000847057161139413381795413633041142857798846668308375034856800760766659360979602742000600030917634522390442958852303399195236643679695894194895250422841927168206401651857520865109411809892582303933088371727019738509129046693594030079195867727376378334339580788188428706867972858607451378320500631381053211708889516555444085220595528549944497095810264949747122418864455045108975614036304711234876510762339412967896442481534908709222649136358120349699609271591799042143310644926139064011490340941247976148206179808782025604170267852212392809628702269368294116065175293145975548926356243971541739232736089779066716301594492141347967719800176850134683609867642933494908762574610016547415585637322628243382122775793847305422601312404068792828796154660752617764779495450969166507912241383634280650703974766965272264369435409866957696026244435739465297007987484446901035479538612799691886510222328020010301943735734088763251719923545740281339987486992785921314185930797904552123847983819768781035217420686549115990007190091726538071724996445867406145805983269305234675504570317131034066213980102723946282761333684737063774711544603098960617963340289320177678059749076806632802076328592210272361395139747337786289084050094663774289304315445526966476049135248989480871649439241320964585967604788197955827595638506951226702424200177218720417235201868530547082980108246523613763482645910027013710926571800983330635151675897765594359210520714947815215946659332447919125423029709435949408402822283626206861228728369153381190098769631480345139187584561908541011739095844553838967103513970034535973032012296323639911706434613270633342013039233554893218337307232326354988235892536325712672878257694819861250576034983103952972441129216212336043933854157455131048124776162073428225503445081595675365836565487020207087473863144024064947797985924445003127766774564537824657970449807216590129644375976402757984787584141377248115704176821754733563063906481681361523603319465901280020214397348160225577452605545175862940938850240385108185991366392675142437257245297924445571559024905465000192512753072292826053439102493587634919386786212339749504902148055318725128602157434232494521217484922849369322235362436767939712722887761938576143826267190803711605898674336468136118108293896568506790926157852045016682180933792185969593203709322587916963858242907823498593668661951557923470393647219126994458054753583233968463703167011715455000034210074469466317879264910956624182769358476522837326795097542341056196489285837751588797317753159986532178262397927678418072850791613790380505783865262210254598233282323498309031996962554820032351270662200055962190075181481983446523506055295088616256724737127497923944923177310704850204723045290297448458650941475782490967934293283520244298082466416482803317141604533286408482019720025611129605299640557558824955873371902356920249237642392370369435575204138082571706223540604300488758938985688937676889458119726726298376154328360257135638054466760958592727204774947051055747222149438724193977865218882425613591772984557331153790420398425375252043288497884809625068259504737451025504407132108472830704089304533202996912103858511761144870315299656640715147843866741154292125947379397978487932866868992392622273084914302294037582346697211733270088527614052695264853906874751278154647915762919338642188569747554545479362436108963015145896962940429180728369758943362084443826121268003362136060222462261583889774884776552086830845600000286611609485553432710248839085641230178280811009186214340359810077151485440572168240916159468192286129063749505083031279584892232594924868288949603379080571929124479541662293431519911399319074470794646625985377144106176942003200136185074206959927677553510224614342846352343889547288715451033085853516576923555877611025364281764062154566467519108005765633272012442563509199510502546370469700909352873627313588194591416241482210138131407621313757314567478785182302042808895458284924258863800039599674711598674031411814052236934786260065760000054312796815897989325548831825219725217229323789477236309396285906091569215153638468575253519233356051589906932428625627937216420367123765461099988088353855841325089763909126097780524012462943609989233686634265729929455660059368367271876840522489911778404413256070615549925839925567830530568823558915144606294820263380510144686687032286624646627948347216700983387558032243363566681673961623928666928808831299470790719529978832931657130398284767265558924001415738276314670152703208247412183561147117802733917849331253620748576681645129136263980483797902768244733970114167841212454749586005702940316496665837081202646499346136209606897837670226121988947557638250500234452267356643440048057804194265434408047011476917874414591616234030301837701676398322605580853962532301335629553685727118501212467344025220970513652549678072594894769114561756169902961819736965819474197459574995569866004643086259727990588962801264098342144181243570444524319283006371051104093531825459461115207523120694775342100563100755824260254657372774565833145017573341379550285937468732289024386331419667277187109031626753243796015537291527177192719814145514219381927557637351719342889905748577663193678173231471447123846703868835240591686167581490876919541374501125550573223071966143177344967904442688470877866516225639837522453650656715363195778626432002479833053035436523902707671223869310363554596591028050406746483335277096172978035913070982457005165084918452887217703125073831945813422380472267608379386028052886019062583921533768687612895489180278882824687267359019738181577300011461570986365485854409690164458845960838478035148119011803904076981760688683449384109274800048401699740726020924547376471253187917185311396830007260607792763924895940358897433841020985327154659068400285717886747881180580924838881291490696628239352099240642374676793510987021571130699296237420826908329572984709333404658737840136677993725651122379470783430180543072733466434771026164276531998598774706395411626911678611576675606035515879835867263100818311387261301457288010671844422468718882373732996156623877511008774332797398975089838194251672074064902888586050504129099386416145505690348135227103282387128242327112631508590883955278532386402198288735979227518077203624065701847408899957996990535670456699998220098059153695382354149262102984741111027264011991245423219301203275688118480233438487353075645819012649299387475434607181397329514150981950499560906959118534279094108606464109047038533045168248376920467951651833758105165240723651580225594286007799546596504986643126293795849056475471076984718840399649550640070941895601073045603114364832631790607894035829040374568268575764147027802026727303666578440695470534583709586087055884422971705795737607914043983795248630473407781896075656779732117521682930263755573117027674017701173561599384247992337540793384831425223485214055221704573009511075671458986253174502037321540780719102366223796411732169740454332336796633400326443853994557659083121899103303793132163511049495946847140562086977061400282506627777021330219792984959054481861264420481322202314042441710093494504109630348082652634899757985819002678011387773724856074153063477096429625837560578879926865648991846724082722805493106279961477759384342485173379644154120509618630696427162342989337712179100372610013553753656254765617951562718134992283259562393151252001314239306487261564910603265180154379710060119913075964595653733762453639435635803309085275628167492886521542497397753893922142632236733858412551234896587281771171907340581139471130211785857527941118497935439432349641460221846711364500340025989460007903537319963237928928900802802807985649051019824528453703174391962905543628721595891874758589570769860475761415843610835823965299956864821944823597665396608155736648474185941282314696120757672087073803535511939984596856929359653676276666890952756368315711281566906178559020122630181082192573496527406895291371370712840379126306669644824428153228618109896628388909050691085782128021875940943499111036689431471450655244622847560205544370237394547817047964918289299395198385080720817348862388988444286887377237996321521538947203636453676483487229377716405748959172069345727475678511362702145973618358729578650961793488739628765649553825918411051816875969702845159887731194314295738366047403571631717688455232873638098961728377345307180174773674467802363653286956461829107678065750718159371418711605433192469394861814763240458220782943661599632894266881922555027492850787739215508700317762542258994419977407386447235246409148793876898213250163856871875804592401022584197724027059779743852481514586095180509512613379715400408125655774411198593147160235337776660875038401066113236431928132295196755916552101493056343453541785790010010275471080337975588866388272815033499182730079941960606284680232859278516773423234892134135935218472289848299047806025929181470566600110212766550207402120197662283349437915527852676465177748133099283657934797445900763573398700005265091155017730173955181552428440895514192644400936851348330128451158606135265356845548002192167237278945950996310700154874548845027660892134770031476540731724578261113962273244419015866005057288766344793583369316472580859620277953956933048271875478248023324585934526732420335643841322518628032938587515854920506978886242742774113158184069101520124819381607379964004748381157696767552297016462082354746345034725575880231792582279478460274983718601865416613730111992063958752201505773262017566293240551174120412526199778717402853911888293679564833616674967801015407419860817885649612811602226996648593802736325734213272721047211056615208330858216347592878116475925961155587558950806895874668496295455445229388339309294988220530845011174172670657389203024291357164662243144379305211705538417705010139450651807692796793306364645708622989074350522368071551701781241017485539611995128175665346141791532760282796025667988201201551825979678168164486225847199262498624147308231102381995049073831517018714631528610292721192464975809724579488455262945180538841087337082413901255231386419648437687694471424645056252238790631906757750447745778662579305768124576501090307980948526075168916219363107939962461306977349391518620944368402872941087534842706195838808973734682129526577079820261313699119685255969538269003512018605406788946152817979894899246239483121928932266447775210650059436506334087692362923795628007197518347088919436877408429656246779694869439043582928905450697805095062378909324941438861440496524473197266659093021804042581951353434855357055289582343867771320173552390996781207606840570940180648316693096675054874582240306099620686751619588560902119522906319213103864239569627342941005499418891329314740113104973993483627746471775783052042426946502607348412792105639842845114501895494949805178317144306595222902865697145810804789695806196484673830402124208701702666901223341234225071925929850801998637681762920709748614590729138422127497208068505616167408800100741949487450233886493623468080022955772271221846683960181768058380592125942372960624771463872326533728347095273213099201627909356881018734298249471483173523149506059677192337896774651229711717829838747158933197441396668366036833656806125032369706392775275995846736095262629805165257606028227181431690624460363425539026988495601760708854292810945679470586469602427337584040552447712955308829761196705027739705476854012804195623976712825126509623845437712142253573577796599924409388120085387171679026621676728696994307567545355866423683564726958566737089817997673444442909358598790215019443565959743977602793192858416660467504672488497400593554935321238868000217736419961417885927083992425454557666781047683189541328405743066061987597636686923170069871503045525252441059630846438377537613986047240549314960321035277037295159714174391847691336710939617820214576832993866877457169419020075740739556667060408226734061138082306169751348368351967025148941334369169148561711831928583620662877949216760371807386146694238179633896378308612103020123652926185484011612932869893340079953009483509821898860944393430557182716061860614445652499478402372022465484037234074811338977988404581265068819790338227277441338957454559085238288495497764236829009093649180237230459688361726411729625208142649946551081362567164654668647795603985023976460456194082677475985145130993993242104038998234469863872384921069292564200539039467539472374532714895265726829898755599780845314817836430170724235466650476616352845933231700092968244955203721426055626662701354611244490368991455122045734325268210090066636221157584040014117483120049667971743899796015973782278933553456865310180554161736115189559605968709631253758973465832547567197231460439565251936424279504209644677651400953151022819067014666329607391261484068155945892725407746706022113960542496182157157534540692629524239568606522840651056642942351756152259756084477235985511598910760153210622061145347314214699383973371763096757912094065423581778036836274877612495739538104275477464458738587254347113802203857239164368796554400891075314927568025326013098910495891534412187089619606294115361430152680422590769769802945760769193387202525186590620357517984804003836906756958236899152897158989310853259667679057314303806677035083536849114875931349181244012073766735768900347208563431866055749027983087142312397050681297043216112572368413026533049812815240335501293349162743547662578849771549579535838151750945650215836167887290123903706156686335973634423851782565931797154603731419449618391380650740803099766721413603486605353796352752929472197390046955158258390972851205632521607131206027989758380524643178926164814560586654606451822763817747672984469127194161420524602761155461458756640851950912129933411090970588116598835972205920844501644878544449242105145306257341264920490262030392800723215172293776135849476073433644808728180186417692005091425026825850102952520565265147287830704038302852714973172244319431778531555544018497463985503891535281266793902381793818975113897743696167136434429768045600128250998770795257607118776968771697136022805290537338889807239587461851691631504871609893662030539198488500252781626137724830811516004082706696810215537056641226113211305437093323112597402010986484130085439301030899306511048258258152530773157090725916488481794913042841205257029537950929521088335266836925450483722200718621477973275526224852675804983271411531239123719005525077209174291317692788189955601146530458739730882382326072442722552050817818114133976874716747942324158600146787662957558976966192245574660764738257212991694645106390052694574914568271484651634273470513128604255810428156674250926212193540042104902771766783564290133789637478014268905900724738324519383466383311720133461459574798941845607737980611869506675641180222624247557994058399891140575005771892446286095725654836726500134952723910532098966549902297873470882023248868602842876223366524469622313819823415450528246543740477121821006416677014023078193674278100752374123775660084930200674924008708691710707628275454183828724607257121685223157395740828880122264151050521240195386559898651171785519801999153245267077499993198169474443613598719297982690564572682254083380526632014074802834844730244571709372804358144729881579047415009962266058666723005045273758669590001736464107959051056405233113248437267657207445820107207396037686487696054512809785097603556033421479777793413295968293812455329816010079371788492429349509837988700315857655230986965704814063282912250279575251531796843355153937500533044265504136980711480189471581169053534578077676971480409586875489399007615387575867796587404033278646105552632854818510574093067271600146164781344126211557883981314133534994381005013092743262167819104077233242457420970751389422289970909945228705862998097115495177242211113921088014631651928989925729289227493266845593960428590719220465904462951247642073841883962515497264808367949968719311988258840726635285112574504695124903089341647457826252849969870843694641336616820347850194653293325655150671268054224381011236416271763835098845540452348674797995305501068013518913578223686291482406349530337033237492053335826976631529848889118477847651450389972924557556890343842658900627106687098491572218050659369637299915029378504792875130127220299841429603715191129980863194574260996952647106303912570938826218447259218775684750688703411356266662035257237932104784699532328754957001084934114409074332554277962736484800005737505008256558880027114934933372489314157764698745312637339636136326014881493335831602558628444684133257232658364561125909304247183279477949968792673271499098309244783121539575849853458622411037841693468460834656391845413393211865874261674184327650470873192968792642228346343335945220340382356339274883524019291789113812889617039680995572200681080107087883493029682316916074731194772256765773015194635471059136439027363736758504695338394164482444022183723145741481298922166408424234606948613776911563376866698766243666042600702491024447842772030901649622564061007475070535519259204966834522002593240958518565787034517929469719720634853914409607176174948060740751985536584797086412319133058076954406756264778161812748889184340466130516155306762103249619228982598820275530386978340714468115478590221737490344041449630853626230094819416236646270099786677326172408138633562048074817819402641640671655965272958761000772573783407698555841636489699999514246666027517625384991210835154604454237892627812647635253828875748308251383449510734711910102779189635357260754060621353662402525702667697531601261663909019713126446062042456756208851373938228697302229300607194525522885881669646897710891291236938490399655368520998321040175433575526157453003771659205133974824186266919409349820409701492741460126385000413439632399863916359309662266030287290846585885754089830207459426602435234760997752065840967556713738045188328962416709794984044433578582745303325655830150012648179257264342828631253541622463318609649210655723286066468015499839804088286310526328255397534025677629020086969636683155433514892671359525716643185074367494509819022228089337570260524992512468444816757094079562361479716824127843941818132702569179172117366364071308214717397140314312157912166269813736257511057737228007078240031186550320966832561537678728391503282679120842855607504927526077709250253600652100445321937526094426709604418920637807284448771548853341020810550329069771357532338571295110661851041254116385655582380425800533162159701629861042588509355725719177955613640949188361283399381583988945345791634229900659839302237823191691218398099631107958954138962074061806001340690252122221705536441271313542463697913164666856508496854931233477747015608112818469097655485467779178250090769236251713724615286116358119394181305891520470685288467423127625234581137051643999242204746396829547658230638072127504243750428208306341039003889998886624032084308364779457556481587995873113245796064635225177945737556202188390001920314575473585965774906687652876800546895900208348723180865695256307933148421626840106565979871758286057620102066755055524465321947070895134106780669866488817370902377011060010900557923625963355861188288687332936369022963237026798995361270156937263044137700650749037537373414403904133337757059163109291714797727212471914959210191453319979416064915833280701764711681457269951713692366765542027018515141251802180517118540311915015159814605999590452288510726494932333349529796963508234105101575097644121220156170754171375146650060525971406571369174736748089732479734700622878315387743863967308273160299423616738356086169073205472774376036135907053849790479938003305265627990702588436595920131013611157301723311105547436216909081676017885905954974743729040979965961860506679909838118190391460118439043055131817547386710211762957742614572549864839461205701532764032948088647251692652513102593582563670734655167201029659340300223138371216376587614647945562734577328769392454334692804038305313154641202298145022802936421119596256386783138982018547962538694468216377512550158283839106504597324252092051706606961979149602301974492867200892105967727224465555301407421044707535471290667277617655670862709683397074628121831852611080907266932476301931579256039180581665007232051037411521816042952135329274880629367785606672749865888949480370131838954770678482073324839935851288711423510639877808443188166515483327815796110884583664874460627844833168159572684340309828802351477185240024698693238133597060870639504217307311019777809253396685083431637103401608156180672166022744149841767719157625905501129390241956165240824900456333332138575344911213211991115520840127628622858926746021592844304653084052040764564484380991900494476859589678976319783075683161754923042338736933288925193959811833566779177667879484169736312058468735618466211768423374513224083195912707580106623359865277629234726651415329015917423565976059233375538817411098835223776518363762003115002072105069482640405932017076274513650757242247507783266124849928043909690294382893100835423440640885004749076901464001242756618955282481018786793455644062200030610538802792334014818554039549148427065745236259827819990896364754316651864051143887599342477539553029531783498702465793887452089980278530466958149005966918879518036662872786722329772509202429484851974337076424950198466486324842711274590608559435234670417986383901456001662304729011306495291333955338501148465607642522594716687660700109493208113606431667126938117682550635105744954283238886765666593461543522184379968817368287524283099776347622811395618088398052910026727010222708627975386948534271158513991557246921769267880826765410988873015492992352451223136030949251230659570427660194464635270384381530203347816234182368056110995668544263080243659460916071570141542367931342196854714750397826642536193630557409750490500528221007516113416378576402107366035358104904490630576763881468682046413647415065658188878493121101213487588997772140515340666811513519192162211160813519686845070372615710221640138544031269953640550762401677492184271276540720476969760679535134816176379442925677698978139622925846923549426096418406235600700489565779103999472388539201517463539596315109772197242109075572151331581133568307895152782953581684916990362619851414214537602748116200929288576295396708260225611205693032458251872738884860896178535357060906916304174093324492086562359015849397489371464148604342682188068489554755674069282064893874361634906064895990966337928098198295626368090385838991672097611467235946758888453125806997441178664149216339812516594012608546463848967343548938227577971467092198391332482988501150182098085937205503177984285040272795176623803704995639957496360677668052323570736693726427618599855350366962065020157021373750463326392380329124935918992050312761932891057696744479850582767765090703636972287867619567957250645290550178751163737453406870697928756964401213520455235755208607906308452610567708975510966339443766321220467889507522533022964538816679590567323949123728531540509884917568744332364022998009939833678736565139617095993694541306165520275561743042515910756202120580538554236867719650945811765973549054673710451538592183649217372332956970178153028733347864486284432949466939952455295004232251229836774316566556053536222814110290207232535354455011895009331508248949898799290319741569717983362632605532870822052824107299180924583951957356402820063417349139044389388546306369467261160667419312824774701282001855084819907585690370596322013577855890183138962415943854712307697434640000672261548223540937491242728494022605808431075026649377007157444606639501828268939509156061758997555825827653423584657298321675457169439182875797075329567997664351684524396450582563083339972210613861206689910925025798561283555749526803764324757818352205170203219024211319759893044622980431811547938849532737920321108854713536175542308132513097931466353824767455968611068230438553497700427901648050930915585777228097528315855966828382647608077708656691210761407105311548277143629157783795290258890571710904712409939003609077114013209165780073030618463764290197903772130452479006224848991479308312919444891267692019213662766443805285169737831348763182189176756522521400760492783719173712332212758275767333240478925301374913824440801584605009317359979610502272036796058491008872107533792306376788738776085634572868019931973353798908772780946923187690866267813729040036034440730777487905689487694698356700948458097251441594501822371089234161911569859224534269875795671685730301899110487395594618643567880639061903903040901181408152058015881336330091408174765815070744294723558569602009823145119137862223668303322446952495031319968598471693076907909639015930267677377229810730817320862286156928194898549407843137892153449184882420041720263618917573535741255660108264011439653774156364929848442050418444467719722615485118663206462515219664995863186916725171206455552238712476336714333972687957333292345793563927399250246894880160610234860184244788141350802063438487751556939393893502690447075438580941193181326658472072383398930626594450541311688701374267483378113074141134527624933264194408870851649570463468654832484375799825334319252763146373378223911750942614135929032773128187397287496238725507537142201165001183257673939086205965474816917674981825131673616647151094791435935810527034368915233463266567837943446549446403248720699492027445430760795719644802816135476327800864380379843542506915353894969423523685891672608809960420742763970309695878584609131279832470079919306018988229446325438204565460164409945990802183259848995484963260257956766429968395732589616116061480532720381343342492863066849719252908080164658040433695716585915624204854451262841872437255721538395234920219297223552852556027072255085125927425668647449344871842236493711127966100652248158608344859118815526132393164734227563785639301480853358130265704475661096868057893526219645944741483181382213531674969525910299034260499740851966376923353461021468009454484909806202894780633594048455144420229680759784815320604176086508462377549342448027858011964655177218852537595674680576547166997431733982643367325708809674881678967285026186839156579585056416565349246540067090736274200342671157290492174095909405405494852150546575475875106885031688215785008168262166415885264934931214262756273470803394623154819752984869964031778516252621576896475774430830646991633435195437899336219449916833757421242557663394089823352309467154212343308820982784962692778992288361181254371878718763259224974213010940983931220454869534962327450426962779028466741418307240018105875542982029485709004419673796206084760164850814588886763299165191666304313915857759703822580130389146620365898659760206114473181133120910756010298385400250848273504828484131437243986452528778195698875180730155435819269165620912896930949844850733569497054813428348016496094737486869858901077774776914891608067509799710000593557493193580091486946169244106582940451347398083356613614874531421584574771519744067073426998048055993299047891947261893298196900409920891934803554833711658926284036496194163358882942051783006750525205913351094288540003612002185336333634188111925509469527040267977748587115552599733133972976752651564624155464103831372837301866589657925400841147317054203332129025252262246051358037935478704171287773485070453789513003379835634220461261256419347363961090174177921872869299887804331147904081730585301192452189585040849633480428727308732678775253827779308657597895145636500085211641342121677958485681075143281461334343304471920447982370641073962046874531692331055575482408980554562032673747512237898603866418715831678270413754483822449675611917093364010257384219960797845766969772148139645170194534040444919515776922976261452844557507503731863767168710935010044371011532884280319056759197404909446274355996134195274818401707432294203196102646106984048462832632531744532209704481845903301553014913323437759059934983119973606132807389154499690945526908840322709944932689677136897850468445732504945145424331861199549818506290863602726373721879356559644615191845764127750386398695076831315006827361422564831386227510794080219234627874030623163033657874706474528944544646139592317481239360522862382189860819392998519373112741165348864228096995497956594249529473355232845084661376424161368642367813620361877345734907924320254690844043026919238332042477101172441396395857118145775731501036885476603325173018738280625105022303818491945159656782389076871937223988304689616714823134746089915107945039708917916971472910548343545731747721750913436018294619333058526855054893871128503975473292661572410226546209900822484826383207723225518262833058508293751589577196593500399093885105030680439381106888703184911815187727280977040163544565106665114303277710093362914353613464877660905152786513654008630695233571249852904322513823953212448760348405231999725352869417590847594309933400604878170352668428022717672191413941279310629608062268123923458257677728613955928165193883994961396028983979898971613704618233638053446252613824259003146085572848104326729716586166196317352199992350929042316902412299499321890571868421671373633114379316728161309894537311302575284703968806303908872896200972632729675364287735579782788919754564317111085988472342968277805314080247977541724632609926086142454762263423469707924617882302265143587793876086394975293920330332562706964393645712927533501371547963215926921933451917708320718209971234294211338773711698535409646707771341850752079066706292905465010452691322713498685668519323961984227932114189936335442740848103380835318824283522241268048181463837192213394912237373905574603474794376997104746613104327689373062847452933715041539324119742146103204541595432237608740401876951343086685551322878106083323167790069064443095301822458920184296339020966864048213540997585034625730242902150476768655480322919662314339628021315209370550986084819866627941399121615963814553770087528328558473044010524437696095481674746039256863926099750220908357966528184941990119434086451247328147721126408275764561327742518592556718552126544677014878748972089661847110808377863309952562149612018100567645712746804855322023285889766720410415351513698998905052187621971656965398776124965860010095181045946001498302426113228983537946199288614352626343165122526580947343064603747721346686531251222438528851712150800779288238794049533833226598829654299485794654868331323973279401835831319835344188097779040026461732659529374777745034747401101622112132049409324613859131840267189458734609449771020990068297290961958359941472611349204503844488674848161772449554326159314136889513375834389346883588525486235882911260417628766395812948963206839997328366281933614446282078219396453453549140297489096648318213123995551621627469547041431199720978255736224447078422678935476019405782993349045298950079698680125504661087624386871490758597696103427381258064551817205882410846696878275769851905723510631235805037489229783249632894185444827501724140802288037928131920695485549539487741742346016659134943726112175109925843045381579228499286794740425881017891221397318451565305270246010093563518635323979117386790987858153264684857071885906748797265609401238030134473250557211797218011440299742758395012728490678782096749653303978523023379554046684597875995212993148608717771410765334278455011997315143109612234816826926847351212624881002786861510497224496998316635666525830759521346089226670527311339810589231550911591166458599480253789198283577025889423728814774150287226913814022131743984500472097296807516026615123232062040987380505346128150438401681859776320463511193480108866049094799514219277407790526858766687126323254271854504048069553619275972716340159561614210445806759502805583714965333230516003459978033544501643888641111711919563609323716660732626240763435537822026091885698773067354382314992370039174356908666615363136557324029867843361945447542823449694329446182679104072190507107482768587255285393679011634637596958622223695332189126846445001439419768478138366008975890543700889438484332551056972975339306255388685751273117149938839681059303131694552215708677915733783263569784137950099041445455989160734684803242432730496336319413983917187605982920726507139642716630627835194402838430436354664557413218275760852427233313391988273388627073619780465801239141232164952696002769813946488768481961827397362651530514515206465189991433481367308305054608232006525366010564873847847346857196735347835500261343638061628548126166546776002216750650326658448507748851162337293459753253470564671524833397984101334783230216009823194481857814957687451014133543020851460022277280339749898490214112113945390060703464257016464017371572385873907826855930484578434879876262389255241672696803275755399904552363942856871985212469726664768971441208531902856672502789091098744352547041312780093615466916275009817506135887323128815832176331669012873226719102347281886765766061545418153174669328551377150082604902507583843626570844265078688108266599941556093967398867735848214389954087728862361289571441898286993821580294783541494109013379590247637614837563335228543076491585224853828594668621462679157765254969729109517800341958749787730048878061809607410735184707537037321406798326886609549407163087484042544806267791112802729088223088933169155677058240032081231547596602084711248070589466573184996181966643567070022236921479764527013697299564226740701091938622594719341530629715326566585062167251301702589563083586550107331184504194463843143761402323548162621590427584143667217101655731792770937979474104071891029441031802223570233559563449322495904216844064812960766980770051391369855412435703130315080116709870199096007543197858117621458911649102425592175810525026376722779050045674165214819658679241925727990595106601342037574253182358516212536547254264091235999484456842166787898953293265672067665231424129241127470076127231882127170324706848944486089551947741349665239274109800706713345569479828074886037252186319341755974563506817991327684382142823672812359647842070950604058789173205535210485832298227497195832710182046153259603285448190053669391929661374008021101945638164764208330204061233881747361688655083161292870610555432097342019518538133315544633186025075538027792296209404391452480304430036553963464209363455483239598303835533903913053725678822533919833824014775891746880598154600619958164382689662703357146531375800012479059439735663587502089008543643851178136585668120409822436649621341159878144526679218731704598674704322970696182373302901318074951499277000269939144873983941934360547402119922306448151869007449167470479030382861659017668289745244568473087192639241360223590415225459610333034275217133333422295149911869243721296107659600305830069915800813031667331929800103613504289119422963259818780979293118971338393813893545387721867835843411569257594808252104578012479738035986837660611384113575005200410956340284679851922343496328259607887893924137780695901012331655429656304738966623741546412811643819505073489287866308369543631869660627435489538606893658887509532696001244617113711531811267693383867847708404162880381492789673264027246586164909707096024579873842759422297804760302291525067388367514540046153570724496386461330007093976317020806641227472846068129397532100819545909066155761281923866488488263472905974209917495637219951131223276861765744027034441157931621412328430466573237182279825283178475406528979019082026086139366581542527136977374549648971793577142502228724886237134870691676722413425213104757527925840409235098835874273421888439291858599018877806596053890074244977718306331004442526678286869143512242530072692922819903502242765748008628764091646278454904900979883608134656019061289513268644851019905580446217239940052898777614452745399045783583413554758350012977247494773710766455114090204934647933114276560591267747398333182247173236332496718413249183204936761310405085195972540338943607614904186822417330223285983326923618644718664670753833325847276028654713823316163432537802374109967288346166209970437948995213731479465116546470010080257287684930417459633757664555155824681312536447377886197882570844049970046765480608857587796431404471675777516571218131336737799577657518683429569303224098080216071993918362789251457019816163621770720555689717346033677300103794759517466129027174035727175679189672400305260681528201809753367413982533840831727294188494832947655187156206341698370706504518697892057293390092081354002672812028165710002809133895677068282896842445678635163323876092500646093237533964343141030226526061709353144156746968646776068199863310478677033891070990053910187659033474424542317418530451792222155711606507120813351976524025648545762099683938544099825439675170648638649300187172962849179755153893071663209495635651372184263909335799298586952241074820447493917835940171572142145344105152417648839375273179912169758737739539614852142164103601195920675260214089163506509688087838032471675307356805600637039929430827620746938856997728799540025354227766784172070969499155414000595522844219873882555898245389302037868405016014259788975493017087183215523279157263003790401182203401376636794071644332656971050691358464460722244227729148540599775269887815572077802020541789469457828621220007113610815230371296913624894727064574185239681553773633828621317181781850787348268444975510205678126030137836640870287644583104533345723421114539157306273913387440442953870790200662486298693736095764423463689070870853762962099523784602655047783023648298045330157031840509070564154374081625369276687124740378372668270738097895536283116437409572739831696378281252486037373323180398373076210510158658193568807779164851730822060163314969137925731993722614077817832589026148562534198743969345732827864600925754168131483790921593798195167598071519759346639864578996016224059735537266233406351484528430658683301545077426374783307127600600181062663625400826188582122533947248228458793385936315873955423273371656188571013818397962612658795206333718527898033314014263333864201549431582849118636129982006208708276830547330938349414783369067522657550587287940309934398320281671293484784240783207052432560774962255577280356530221953586090570171441843356824353386719283162449322207206334906078532647534290879018637858760183023372907263356635979191056578459245245535372298607710330181665580886322868359635829700650662654157701851171368354153353718160441051594100712926595123034179881216364577512183018556364155839452513530549313677302323348216481594802084309944150061176848951560207002683425236313116847100777116785454051565919928319923387066135956499721475668343056885595742466103379005274451454249778122330721276014527267227024334838944515550376176153229955380600479545371539091399916856418618808231000561605267128175680757713063074456538553900044173906467358169749899409473860318804081829582910643919650930070271750725992280109194816395404836311399152183139376940423120904142293611441337170250024940369009972462993113451705229568702196955868314683304800326767726628776821761771495711598948066824249460077582495613435207642941915610958273676574683942727362986903432693110777554481254463933466425987469098511967395441106939174349574417369751054495247365630251614916612681589128415070715518699327903237925635423765977571769448040973026646556576483400928027949059570884303575615982813882908011713831083098763009671762706243508030024350810187596244370985117259963152165429845428899282328937728200476727803613869243301979572538274265724529143452082550171759010812872200028596821367081439323172081569682308231317068211505737200113708999255953450693721268301197800885650253530877887736257402092326193955749982403588579975928920499883883740510824082237400723874579897594760838212402281486354961975624691691871463296954219676544929680614513701600771955541136519414452599005557540321495918371875163307685687412229550437710582797242620387692689211924754444435832645482489805659722287757115308623076552278866339449721089039141294245272599229936715796397760371379083026344485363077717587057475793934776670217248706123115275695929737996981290356188786423728308392982637601872258431742003588592074739574731365955069022172271617980149231665107647450225301033275583580389270852226820971163904942468041747350939637024383173925736739209940860304397725538903995157042842609023247786355711533500569950608809702654677123212846332285842294309437278524455595292344355187206327548061785329429728649823963085616274733643320384521122148465726361416861612542756034354265127434023919204194949431172933513395678326283615344618638614255481286369306362288024749636787652901051832794245132028008558455337133449007294298740721857422188583389361389128603767899624548903018554004597551559721472967723822468761826941309088741641198058598884573441447993585564632554503675827843604879580330071478539160492895317666032515236386687220628305959026330039520853970926560147365832206795455404830906077954639983418835671629191314735937727144699700935509925309546802965429526367738705270577565056570761584546317797844270266800776849093664223256516501961617596386979258735919726952130768181635902660910272622968266916088081403883144335051374715285023144837738318753556009564514022931080371099016155670695903217186963050306469133291255433800332656750448958683445009100002802188132066537131478913120827450096485596959789754990572474274225912237398946557253208417278804304645969185398944983348172605562194569314275169681913554800128964828977006542360484100070047262484559825456020995936178642107207093285466656411598096656796025351948203220204901193393407283521730616481718805110108541927263552059852181525585548762808652714130508354053672305504889432354205933656477277680306014190731535843716783861731433862899605256308898538416520802628655847587034369817563314558839666396663455852250568615113063885328779634851012717148866039706877529463064052003867016536883693033871303927006671816292839706304565536835093595291295900577174349028013338295908644973186471556706599443038654241378545002803945921689900417049838810665071411950258429620102208107616287856700035742416256847893986677119847870021338674208570546853655768125206364184790176151819873989378621533094162352822894941162998605115623073331814498462365326337959995177409700365923117499371426414377482750081136144430139780186365931890308156391590532861194400016150613971865911950072093838645927779162780010865955240370165329066759353531632819866021981091503687486654225742138927828553631167610989308710384472515347560719696286067645185966637536252177717314684605263741977268867059289954876557973968951668096045608636073990711004174490501932581954344007165523295348703964108289000295756403980733885857788255634425081316135058780023451865875893298460941267673156339481958556473184854974889788846744558836837070538263087357437298518130925911887807741500651823196499244061363202340455146859377622586880233048649455130365845826839720970510239753816760698436839067297537497120028395822529684649803758331910081063105886350863521406096702299749697721352384238439870339758380944213328450819294589745328078523255210454435261285828569814236297077613125801213122995139542983745383490877723716155632071508781283246682128249041234615976921342959520358395753958213057422340236600974698687476833016298786515019966203345729156682048826389834080912185697802828561384237939272997958171784803790037833011374927749416127131265584145118507847334210076263490026275349078366927560899082398328082811706554270842957310295157100708330327360419412222329130971655089502452736059974387463777554079513978250629444492686385636091360692052957275249802955758120176780628795026744393063774193087897682356785338916124773852147827863970409943218742266904929755614783214651951744793511799960832727762817825403996139236841102870628642778837469071784765661072845126601106324106522405529203725562706070635241177543717381922546189147945435275125097997209211976472877805065036352109428341546329969250019136616375142471968025622229066305170352086583074368371196530209719508084203718849301133703605261670864414146353188627645514683828649277318984468599505126846680580309842586782809084395567418011569757241869362498695688923979645509238146937261636492196087883373819386837456063264628519055726330463279129989355334539043418275252919690195189390999236413363099569700556499707222322823205123836859841880560233504050795070339440627881390201732232975356908986600848012809466663214563280271168156672252963617166436936833419686043774281437536083883949293024571389386776913541567303262639234907861209236789753644847582406293358896159764458764298126700312628238132455291358170473190275725826689277459017406842674733225885961689828344098180032974789610676977643730645312224852788390038098907464597759389049083626602114063059525619567938028423209348928699549524609220776435074658828177399053099291741176800796705805245890754017984831513774635689521548620540468591085202798193706929385540904601853726015001786903580327956637700429471437539307055150192405933184209957157864923570750431285932037131307601658994168711190524890869669075758672603962049900339702675828152401002712467453943780754372634217476359257226294469899680831455386164490159900946205947609014141898769788569515754561333377612769625881605126149490142764063218498308561958280729775479887859627931080110348159395753460543062981033512307471965295654230907556258119350411960685195354843278409861856422018289228105564787575658974705574192656293691924798069776800183181915111401954018896229316372738853019299088917595074220198579880891440445304634639221623757377051387707640351801902683107428148722824086019926788435075796858129651916293612271525831349518397275678013115844935991582490775743723523975548144967927737843146286291993024942604430069241414776782393089779825127309247127690891944119482495056046666093765365050594104432860483318043653347258793200227392962516846323591905581103101300791595009414313999291121158433067652932056130539895841956783470726306839602681319450245012170681096474414983804534284925665908563072131822800965023466903976780799966783301699478630862080488494789839817304683529996186574731061075287530253889532351785758805598253468444828238052651289701350605954032501413587817256191632000111491509836445665515481517756880909548304173258031587791672517255564715388683097822219377079398911270190020112254075148992921792768304753800952437736075945477961452696534930363752434378914980596234739783711129336214113934243004637541934354523080613152425649682322548358591265959637659758587226079329345457849293198593052750495391673305944061483627088228044337873461256383391820421883408571566719932739659325827342825008427780065728494305521655449827329166405273958484801338196093091976340760121567405137305696392362081645195570436056382933438289913630505242297762797888854068129461287003261094210588288728807324367990825458178592060827544219301068331365336603938021492662421130510581232862865060345015269172935597262390506987981696057323076977387870430223570766005380920879670541684377235499215502336454731660779000710237003751756292492163250834632173380611272743439387111324791147961075575976631457590008274766621491724838705204796403729835741285377239435656965506668839235479406984844675227665726863405322539136882263883286163566930489692429899229507607207784372562590116059429439213471530641053753751865121655971919434450491679596673237836814706984785303827264430593870951462590593328252054445870077639169804382547497710089851099046450108329506689199074824293394585276523795659245844067729221665081188166342779276509403060266236806447366875282060108880070316676003028213339817393687312828028511939118096137514343749003166283819845401113267303417409283444337177082215991505016838022953112967080415570974989157266644256635100775413658405884910495367504652509459640698429839962177212084961204288473072651575162478683938835015203695337300419433028095282991519826046206009490255253512825090387197318508304200387436783688787611828566943399412300251718468528010387844903927555680162232137837712387226879307419928994470230230373505813870832273507163637559864535992887245899877194142158791830472055544604878948934636490892815836325768506618153536084479369805603701012134676009640998898716588273260069163313487123407798346447798665604782137733480948859822173912500593786675154026323208678056943427382091821681807420257510633592776870077118237030794536101346078356448670408935361323904572649846250304245059139385240360680133128416246596693851808935267914590697536535588462757242120646914046857628957437665400125072469463979649929166843560087921659920559099001734635445134849991524485171308031748418760949872023559891966061715244344678157290532932714976393337774802554582511041160471657341264684636475914857073998102611961153633675408849981571741980114534378713443605136709046542591952574739966466139094763027841015549094409980603014955893567614456358979750749603973630852525145395058978802367394643035992486881220933862089006812815772926201841065729866687873567712086212930659546254197977061543992579001657953793921313753312859920074003739324206305531463916839463457531580155004282807406909911552304758113955767721238825855337103829220155205559114561938877252257140381025030470302455570727926045974630230864571415626005937893548556404985296235618234920975904065746806990658432931689875269977048748486670990207366398070803551003620356672655860882725041865730228995500757550502753560519702811868204481088938819324512777231755117152582375853817725895392682639041636839730359043205982492024653514897174095547056364814926862531049932999885768443625496328241458610116735210936180694220239088107447643092592372661745388172844492488235248856277520374910030418295053303446614189474648921318425900429261251921166191926268349180513287791189009210864072823745977595134722263390587663639592864582422896218036414275475831811090904994068878519577832577621474033341997379670063101644497064277671898048027033090634907807548626481988606465312872259103580662583927817020143202183481856492695712922444549899550936140754741220958330585475744310631112604754648280411148803770470858491844081658085964895245662869456329036891156230929114312042214258026342705790943273806781961914030774861150787024862515677557214559844743346453391027459243957397847401565466781094329337801097675029830726859869163212165860029669707927543917086159340360399590465111535351635004486417067539749192010909520266828200273430609508546027844599354802211638582388981011961431582091987184088645746538018138805014714186104990522392512452785978990242221136842612361012700801524677005472711518315171329756992593477334602957328890417371138968007227488593714103385215171792674634234614331175448093072885775072521091668906157783842266900132614113348569120823045640454630238834594130984539648800929245060528832642396084268836709508641651116973881899249826500405708700774430285001723492443947923316922434624187582501130893376058333889652124621129670206175837205607533869707222373525292888966153770612773854226839211778662942125962944061155908542837729809917325626764747934764391358975629882376935991975772001148443763313961041126043584942206506713790994932081325636752595350229103122198269213269373190579475073489658374232326900161799003871830704790546219359381438414650068593120992464453182663131048803841693589358720594620892519277443250460890694371868545139948185635692475413400381486917921899277260444919440210461486769787676875024888028186937254154512114545192165859280518592694198471348137344808319703183826167196515899052825204512268304570822047962823600234644228886236933030255642953167354983803786821309931504293370522123638329195920720809038589652418779128779373231017121070006273455160562890174494295356543102283789999308595769398861207303678492273242224288608997956111970942316411503514418675334194236905335275920876684169103594949791973636036658473135853322442965078277375290769310754535128384527563664435825606106736323251513582802250965343325448952536247005292450818949486046139073903934293460846557098254739831425029981934079599227316813198739445764704224813712109916379844482673105180511145493786367828050840390917089127867710040758319236317957630578922819314947877728549256484142239517707979372796566250389016421154453202865092364539528654416200987673209004055474463260587110841761673960113219576161123382955670030608447927840406030015977237159998754893613900892534023353887940102892294304432365975213257560436091201675460595514095054120097516975483360726750045190749412619056755685494776031724576968709796355618916356190748325857363896682543858439461982480272916110565327965992257568430787386643997109632030158085354054746801788555631908966857285336329785140112573313349043187570427073048471032347976137743842521901659142064102963936726199799814593469337621655093661420096958967374523045088446383380038982359565035313822034362478424887796563657400777292720911046164876092637670053936062045255504174058921270828961115463509626071139559421405662231743115026543975717770017341343752650035033626708530189744396248890811714251077637136884253896553596542432126753244998708743063555621989450233443171654304831066519780259540782780102988763425538396403343741512111569391228658430246626835652794198846102721872060242073022787149561890001493609161614891321207929968824354637965430978954092046402500388452364201526033872183964835779315482699538747204437018281458128980596076957412033445377624573071578056878538537330662853643861810185718448427385589338456346010515305208624168323148916050870902775659714446405650833615704537348960125206469326250321635012917773871931436799429164914795238060927198183935350357520580162482042684798556761545817993259463333514746326472038620468541178818834087342099851395267797124708771827161867745417251510308152399840144169652241121279494004017326159356328708089967976738652852559551235546003120214866513372801103719103565418700876346663657801443888443667483811151824816819949410641134413043724839225821982805385227841156417679311510603970882277327135255374370293102351927983400425290079205716894463228404303498879686626766964859027173620647955792724335013871290867318193815433879059666735025987038824478839455783346068860510466096509657618180269226560128525426569153075144620058376355806002027163719244471113348251212898947834619019128277183734892467036015083596357913016321189414222515897813679587870104078866703637424628968936819622620465609841061043724021367921230875099657224401250983215038598652145721180144209621138728615864167786430844065591140202825674861517448011434337550651646899850755375432143612082810804085889572638550946122664297179278445509520266231316656620764281574921717189181878380364930927883710539454199678389156654482301241989458245421181185554423145911594306501335436416529705362649910214530219913676695060724091165235863742344855660428446788331045697557999847834101225058900023348233245007599016445637624832729249135267009955531432881690926971213312252122614395961487392958577653287088025654779479235635183790404296521063773962384648424915418721437867333204859892038344539188708768116365405168545956959200588151629559502511937943869204737195015393044964009694666866812705447214402816131023513604321137588655508888811442200782893175451700959134698730197406522134542299610248501298011002340289690345516974346982570005863618364965096155795553833154254745010990618718556595200912282235859514526448249719960899906064997522015565613659289985351116067433964039350436630902134437599247799818592738323342063758125117272154820946345413556956984154417479324956203638424089796421456621120328461461690490323743017589768253595810887632045514347109767143866903070213220485800852720526398728064399227987683345136758906591319945298782341446922345421407565656433607712749483519050922903102923629783514837574479264810196263764880438187187409610356243025810978901959383547891747666165005160425313293491773425369503877083292794109930328374280080178399431220580701529057834494235427644161503132103063133013482994378324368341702107965822235745694647435729249715060710158437114341687358596111805597554725162275334555918691552376947787522701044732815037578929364777072343554014974996409462258997634259833295978824664963495135116521926435651484253906415248837018556100131754727468790657567946562182617490787029123594343334505304024435621315952727948827287985992537435490601126984513022184506944474256430899294045045824010334247457182255906277852713316329885987504405766673563746394114668544702707725640161462645025341404018251173933800611322428418658431929476518586043316749551427217805752914976091760240066074663904895392962639379738320862892210641952863545360318831176258506662912249869713294631259648095484963373280341116890321292115137182289082836288585244369392998483140710737813260038293728495359529096261704418252570966046956900696742434286439555515291360189119466374485627960949938581821897499100171790586568707750626972221595423851869979719337403359222345065006166741658717588098849882799682689175522564354197591870800678052757019814939937817734144180194805476693430263623794773060924914496710966446507773007726554614792741804292356615481358273733648752600441024006711959546909490201983143140521324453650734418461603611126707634531352479326249945304412101144535627928435344549077915258110710267575873397920108393237540382968739020054402605708255234018324054831890264197066609893744565030874849614845406053882578370330812556900689535632815503071977823446200900442564759836228393289272454258899475902979248571052607620316130244692048490245687284717543522652780120582452294954897550463804963657951034348722639926965552923001422169449401800953646136649186381534130333052510647383039581266424773703330881230420529653780376416491801623586646281792164279616270149243365646372094289940923373925391554160991647916226618208392484706486547280318854041842327253763266693530811814638828949440147748739378949850124801992156843794166592957886968525667104991169068473788324014720869300861474732678026050478482107139793082636904979878028792627130407207323311179672496959912513108942422504130386062491745486767741458709709117423816407411598278071923136508813416715735291980128568762726320874278640325823005318820637216863752095347956651074792168439381851039342029319959304081964758016876456137060741922838042869633269075091637350893321451543538779563369936287718548183040025793155751658889476493232993990362819962069435015248756124070701466582729630324815601786415933723765252888995115241337994206721224960494701163723155597664084503355256863638006945371239847065881316937955328948519606468828980868104687598270054363946323276185849599002890650933577433079917339794363060053894093450519031908312516495038320462261946416968774071363730042735271672315501809075397055968828766131490624182642151495990482323214484981822355790257862185376912997776839601486075051804223890892467263383220417522735492726498471111093727346999473916562117394586818128129137903434104150245095467590580979936824375470914964539495322235241026280503297780615049074175208245729338591944456015169261984212915767841760933414580058538174084462204064095272439674972089098603940777789263976021551690437582540733458118920128446262450082758337502157932513325293426450801330533836208183818047281295464643386914005064872647944693600354866801086627531179888081611124490434597905264162835682407046571196139171005771022242370867616623209222206574098716626077517525053921469313457729480840303739984248125017655684306682146497584283805390286135132672133521044348198291443285461584330904607938131415609559594196875293903969960819741654132144387586169641248183655521982734304116222841628542817832659683175260417432747614790339786700536855687479166549671436152846541505013794838725390378915357707634669381457951805997505901357191527944086653418362078034646178786559493249193035721114514474875827964890036430443920966130342460379474118019223421586894616876882641038695693937174464346886622106935362251267523592973504420480985180379943960174460592070604156408194653115524102447768232356326143418508557767430347147302189555128421173247062423028124540435385791291786880366742914906520881852926848575824274019006947526895922596896092486029225596545393621751129597688620868430832330916334572264297508183154058905710421921865444605785043097638087954072272562122650277141160877864768998558388036764413838586777197528623944417765244931063053667225961788827627563273368501516681135311291944696969269882545338870448684237200616986227199718844115263479832687174370551569594915531877678388066334849599499190004665220361715737827206926606026794644797908233034841651991629557381460968696639586578041303967824336170304065496035153367855226024300545090026989017970304310377618347129291947830452216045890363047178296885695709182616826030150249715055087880217570308146983718345984923137692385922961581808696466392014058084487590098421656621596336619363132129687532652004865988078925841697669982701676331228052565677312042172024820436438125707315686954319206653191806559003391053209622743925742164524010942969920908120842076985342818120609587685009603838876150750289532063616228447176098690211186216354663230666378537457899829153919064370390270439582089434795223984846684883426456214313234626646713730856069225193445842695230610507719615124113061863590239180227771768040192438691444998559205717153130218684255149720684951159378939128394441672064940388606885466421623102088059388253199234574939803268981785412015184293242563133321663505214066438339153487973929783534482188408803043219961687772179768623425918686461115768004492133218920038437713998603768775115316080919354695243200864954763014158450458660297552479245464184360921421628169944892332522354370108379674943337396499756472587736887117293651802062145918080269213117766977594402334223964163077217506104759531883152735983873239209796130936753003509132742128254109409927657127043836395438801137795613257609326083808216887107682958505701546927795878289111932846969157812267351312818799453709200313276967156664487548716771260348498247100214292509657796894298609408930405297834563638909791281199025073972339019535127139958913822382776225352896152419878473815014828624256663827685549010445164677500354710062473193021262842197255965212272420516547953226050751459251041095823540976137533040514537780988644688157952032650015450138426511285249521477778209130143825339029239639898294342426146636033108070685091664430741180711784114303752378896060685239449318849410653822190630932807547076791992692205875903322713498297865571415226506608367528800682494084129369378901499507869122650017916065051959826608419471341625297005944672920841800454324354226654859219079829332060214841593952433201002720355724241108921388458938117519760680451730671323448241188170722314929696113200847521365698136539364623411836611766766895821254552373889518920901561960341441057202667085964007804312715447048521215406762675637392673350547696385583952779922664741971945092550562418630221563368121948443182356872746773538585361378097183462698558290620727697416203449195580363811629086851569393378218772571005450835925363191588295550889804180155564457229848864764774122209926057969614064787463687302262766331581196992766588099641052488361417952416660831222129106705569863196392489552261680388573727057575997296819769694799346109092588961154698842995493237246481918965120187380254814622231668364438953215665315515718270648268376059311852160682528112102520373715500957611948374711112355024187176452581958726838742852683137264903570218232495324640021185803645629200423181291757580608256100436547671141638589208662474266462724284324741289580026969385337605983141991788162716072582038160153829296810770768536683205499604117439573543289819661765480544475741102674130440813593302929108165711409623417528546839536724863870233438577597498176482237166400335136367681163786266793638915971952641386950973338065470798504544314395305248638521919080539934520302948824083559878478491320743533249010153349702155528445576056019547902815579379636929667228689959033040604195902662548162787339141228495041579829199435193211353593402705333210193320918050903172956443266917369613163753036950528267098071796888980660770391734015597555182398220097050673473519412543397713381680626358282732882126415759464969533795833532788821326347794785780511247312180547019289597977926153553458217368830190551483313560144573966378427340002787439593423529850054972368386183468349044401252952857144946220589443595224756398010764559101051504304186369284991897636582171233626254608019431874418608935610623876273613447417522210166302498502558590126869801838275904316146981623319415342219118940790940539667229974114308650237273505065553222578407858102547973427435115370999671742495872594667461594688640086381298641659800360662674980460479458164166960148818961262713245315980605458014642782281595783147796570262783524877784267823137343232262719843553830562228614872300670060857125406320172314150399055166079818933712685545269148851855940161500731613356212782498101688876457603933908319516199747919733747068727101071255879991464219527696964151073337552013089759154887858288563493465426228207241371575393104738104290502202890764792395755777595244014714909741627190559185690046906059565010442307128810513069296671164847660265839958425784418043637829630755831594904180199604638298949004800224956294898726493063939049560805314317409324958778053891224312805242606124967925136590848591410859222174332927758023038322101250182261578164279141965104057900893297185623839635556294652255528405561796779911055007440662347510219018031140473146581996358928921093438224023812729516720133403623506315947003615704380240879247211121124605993315857051933753244802355688671448377645653512202094427495345390624079474092495504557922231360189049548993026651254347080916675253821172058596513595089385212693912384755463776290585285678976517891727208426320860462242248234227987822524465181382573810249609456064607132861476356796189265676492880491773787671727290715603738546566504758217578739141111512530263892819915946375840488673631330847047168275683579653898173378244131401366804172971454295720683166960549086087421997248296403385381954195539780343367827988523914372243423273874214995088853835104507563818794159833554451737408663067900428882078218657586452123143445860378565341253091707673168537236907050459453384040234244061009451730948341382162577408216908240618768511031394953310385620404162733216144814590795195897310728375212315244805604058509194099260495334660483719744426214076067545289859111234158990749242129998008665834319929920612111908150232500155055185775306188428587582340761250054453259798940159711550225201876088334719466933248161144502158022844159141217070100731607267465187104077827582817253189435680062587320566765750852736827328629673874956339596481238529709914146333255897844041941369238578605868902202694008175735886665947282145207072819729574164386813183682756873670047468633220837402347021112259544454716018130641759567256748152943665740384096879260708971773426397844769002961594363647253926327387033015290857181066563189281307084761678826529238375222428886590276144948640790701894110246503940218628108737835880500648104726908889530049374469437823097545341165065127108895714766893330437913214632579343274898576549430405975753317825114370235866888691718043814452587425742435569785736889755004568267508976847942697280500267519196204261109996185722404858718514143988901419732783962556335302046090496046872018040618310244833013005916732806416999602152606728281928675129776795363177676300403231498714232000388073932281750422264456998939426986371375168878482644757901629942557759553583068644201049527397274554258948710408723989462644401118001336068039352933202109397330134320580355907827896366825381356999121900160569854682745969105322837966578421116506713786250617396389198144130880497994686493744295916783307586598164966980890847778217146515399403539347681354255344358349017315304854706622177175635693455182582893662682018597148217683633845823093841631954055871482133720773663433069330530435636969195426759678626194519874904726678378526879232371742100837417681532087903261305656803390906974441661299612106284536734867188551541161324924312665589590655674360424440000629332262614729692411686910738218378195233288294506943584834616079533180776102121604572416953337771425646701690419360629857389994100156937991584101332421833388411116005015123506362233918050851591314599758615701768816329459234659558911864684715087139544498994959435491932565821628774533004046409515365449250412203697385334458473518579474904931734200575193039558009504747322819140557855339279635813170117743994179547578221298658098353443738695610328697752048090938584130126061022525751653134606393513726454604312065055358110508164516633257552009415814334486861699856222000544185043041942519165485581744195238981045981909931908151302840526973823844874773907656333818152208440975468149498153885407364111626677290553803659761588789035229148414747309879582108297833510855970140290726220807110628685192946424064662369883398370400851309704346592055507932758451669675764375036821070351360713491535567655124493398387807760840779144203130535380163780169251234151727581113206098255417654196405490804006074860105373148816684631682347977140378966513393674159161544605453875468443208531863970887582098050314645792346575804039519431877498835815818703580873887788349074367224105683778625419627598881041499874789408183682270885155098099870756615029835249600975229007308727821181936814232164942225434087232729814800647304502819466874655715281236763455967076501815607396160619919683321365579627807806433084886399001726082738964968135691249061591022291572535963021833466632111486914594432133451722451507957772609887057649587118179024176514094317232985641097901344906774183499688876918720758314115143394109441081526852788046177558193914702108294180137022254064766172065577448195820082510873114586714046038098467484944125230522546889487969293341413216922099621340106683164835681797653739545559828469396217956682537722354339765941639233215386676228266387001115544155147491910015608066740210204570210177758304119497578675070894201985788661149035286457997250621345999451677597337592428997060444506114594466044074950392475032653871927772704753128999855891547985894768694224041627034507604089728566577123914054650275483770867532451564783960588130546116898598143268028512222146243689499808897070374768067397047290600442856608808590969658390518767411477312515199369778721866361700600358557940392775740897763781442479311018886135050022673086316075501841715576231755020665649177982329895738694217624377778362131993552215779713109508237400697041062743679230113347433521906610042949098536427978389731112843811551296044891533585884249235474644965078866900256684459746189440858914739922148989343700472218463583728781805498903485335237982617482829934444935063715566911252107869483610139895185071890862942027774262509102317929933076519462977904694555895900025150325093554170875077784012350190520013636526273826939431251387583936519299015723970813157031731610112390552422056379343607169273159736881123463182411693438187446737496043768340574711506862943094254687017242951746684494562100151593000184638743839168060439984851417030050695050401116534607638210289387479965092587677122672243176766376785838979924600475665970980559744970846406754125538635587683860306875212832133588627584788906022581588762855434008094825756407185003344491385132113573166976450004187651551494226480889438549607033073452101440208980111356112919483871989311384119781587270095933782008971766254737733716659380705772291425604437875509140566483411320920285590712087979591790627747535170569327587260121074044775066220052868323009317097204019833585751599626922979968007380939924304799439982758761301976538867257830435861288789665452807584604448669821087444632432359171662375140214901730248081064227626792177136026794150007009523827506843329834878610073865466334429411308160909604461257063983520528572703798835261625904261376215219522649520144370378665848373992533683026846488409109721574247522874440639327130620762892320679105744104605433044716379978251990229560446575777301202639461772354552500435392839762800327085396197104125469845735065782319594858623294952442975592758014311292760521988800730193182029129640583156920262497736313038778764841726294699278565435336527875568291532844213864258193740163550251060885700100531855950260533820831783951985910147746101062784292946759395740903016464557318577634637058106274646926447378513081349884350831369765494623420266934505146981256852636228442395451948240135279351479692480816336174978621720757503188251874227345877800109551165898097290716054656122280847658961901576854500806417900358837665533460919491218322509052689492842600551676907875058087948947920833265033779183281404604790094529613918132619285215710641216047459207752150268548541675438717221087590261790529721161062651258585951018611848760212623124700397565368745850160963341316882895868533104323069605537704908986542897257168053734636513521383942534802807365120160638150383908290732761539281719349661208193744573134686448233638948432384600040577798665475797415660611500339406692910482708688088574790808789377223961023406859659683755746784265341820599638050450229422244489896342818564473229760391713657915576957180820131755164077139804374503787523322773457062366791199257433034113887397664252550248604294983188556475795785692163691169067967455521188159364616243166125188131477104542280181769995386525941476748530076466758354987077483784712710985689644471654957568020502571324315167474588714436480710228761049264423023979267803694180987285017896466263629972645290610137831558019423126969318847163194146576426916462746947452101479524180050497508565155616825761570211175358393152927352266663403393925206206902875381411527592555470313198842657965949038917622761640819944018901478411654550936452351006847924436990073197262082641013507991322643421866219010617031601591718093773323183673054187543624435138584212535826735682143291587766478562396014072341190573747525572000414051002306648811699130661850765578392799852066427368405675744328052517812311495838836008312021059652821757793580050781901259563468734276465671040068336443991293670611459965910572824694787678771372730171321074263252941611354119730986437253858712097203449645955502750375534296134951569313747749765414503221620571816893634101273316474734864148435377023619452923484640675924754281374374231071343908395384251931482903324760672522418044894528019300093057474298727847583527978462365857104047251213503060370057030374373977841142037909209906524989794479906210748700186349473791964911232404613442666508468165107160332125667484508879199759318763691516089852694148991600620860584706090503171336218045145012627143361014140164390467032942232806775517338846035704454241748955014361924971328113926514607905233261683336857098376531587898732808027218011983762421719603984468430453726163980966950982785871829659420995237701655624356353191413000333114653512966173121032998410876487843489959849976027691510252805816763073542832602250832873377458386724248484618887299140527337006323129604205453619169416770159606163357550215999823256708064681245801883817400421053595080967365337249663049262299032519103715697786614437571785196712824347777984796946761088753189632039156154510352887281909288647122286466790737720069332317838566651209127121594688424114353161083440590274513943785678824822932917112153068527670666144048830050696350074137164016848854572013027483698894673050110174240105162904298349779289078444063770423442050426244607364245615434831291421181366595732988439427127627761279529352778342295698953373693612718854022711324183291536321204588411287246778626358352729514009790002762797539766302101948421283874673740962431862191526762531113387343039719785301966736383349486952227411087141351497257935005761700222024787088186214969233385811771116912957721250317830069531159493443469571660989728528918029041964064368437119429020938497474369522916999349322658506442578379436760884445117452766356969291634762338804776378418561475308117607163074279311236745992718487304578858299903226970265260093279028144137600899152477240226633501127313587905439687913943129370551095026996237436300300858498343393674443921600537051840392559257788705841672157160693613805143654602212403733527129783053795726389005067417491730796785332511465747075092481882750584415120904213757730917225353511637972931481846512574527053208187221069771111205535820975262477990865532623592203969232064503714132356466037995134760876464966424525643775469013281576200072197424842100016484331117577163264542631118758705203783535239375504925526180932533033542647394081071006442375345089336504769403400078272721660294671376439262102047610877466458475754544116670794433646989990968285142459229247550477272913203074928575402288190656014409138660876625544119070885612229965576128737297595972303947716894039416035933232983647512102489780079632276533041510858585474407294047852797990735436488473881824302061848330610899283483842600080331947691719609608614838020056876055539686360427247540191640528843423364145268087974404424393632008297587449310232244519372626324012997145750552283953881345413371384812489117005610042254377267431182089143560010932745164802486674144799566313815800144988347449351236231919799728934491978855021412681778882448700041549511718301213457635279520348091123876593737544714916901778708973613899405578841552126806307323536289451670471900500121939180210043225582407089730573874368702766620585820215128250240704239127614556595705609033057447722578130560859078116517351771086373278515936685680194824394155612612931243116238946840536618741388697887094985212270883110493110534633890542147698003265732058950093810518144235377567424715031619196558113877113526242599257679991590695907978445408964388640873010782560552556214414650504173569519261090715133852816693390230047064185578871064584879436344541959805814854112301287449470609548466297231384228528511395476335565203934419806089160263428885275759634050898678764127877955717618012938028273288914609430233295840928545147842137327566541050512422871570719720940823759610915457762925945082733821161291691009123430087259890322217615927733115974394846550877573956712469284355675299976170648004717106769614482265683640041413664242187268032056340914880453983908756994816162342560018050669142247508692880588064183813625786751970332988467164937969397479687098652289584924770573113507081060175532409552897826519089670030986506084988564518627796944314444817333236800202618398649928508144725837891451053175576955810033591194407090379068336773402220650106369256734598830685399818152498138686281343289482979183511549174781409018499908775937823321958369808116460534177510218025245086568317478718363747896052026450906441140822229577203994908848536229605388691290980306551016498947413131975326055373039284373434640232176832747367780492278815655370524695890368418689985778771582975270673756702111179450039163173642425832106833393290397526475251452461404500085487400626214668282201317810666938325300262756619918564746065238488711700540650448499639004615719344538571437175089964500436000744114863596729249902131129580323035921420532280722601225419495143449085350760120024170953679146064626559007884502285139328323188359700155571375752321741323456302839673501651589936529095290562690006229411421019671799195248863215948600822792150063981671254467985117824883343612130977373488600979662977584043971176625883291176046008941000495548370369387256035056398460505161144124113042624867108514085757360036877520235179982613585510143802530634681221097416094850520928205848868071935337322034354246440903736340696522184987949377032647174130561049460032424922943445059670534413227650359401269094713589343325785800779761464978519069139583062556604415237075725156391884455528611721140867557180403123470927005952840798856211875500260435369993150961174929861230645725752765659351707692593558805149643132473822995964182335722141396085377488900968837835342843780227958766505514208219277509682045841232168249358860177424212480863560297989975095349666511810979598534515878586038852031001749337504066288265454399925412082676406741033223279344986554527497311885840511406088679362375986365251107051561199564024159955388495870073584873145042089558927562934994850397194773781466744576427517480480964634868883649837945267614879826760818953018924906120723530987110221830707107528352920772345561019899925561253668745570505118566034636755194769181367767973922580067143392475927645566485690940917645039238560676499227242129654764083570490492296334545133506286669543480552269729675200218212178315622867559590063514473822076704828112080937804272511863710046029855316737419458343463928284494486907449804950822973584030294884659232974567159313476726794205315176648098076573516614944863733632773980986955624670681741029843248745509243469142533675888429608285412303398992957317532830606585710025792149307425679489732441582392832220167877929269849258804730453290233955301579741431951387953268841862098678593062069900029152472537655951276841376646543826866366820004196142697052699597257583153468184820211370443984642760445971570418356182139033473788522346706259125509217321710354943871468706074699155943385264667898890963845840550856104665336796764096629867678800266987921143108683388813525587768522808883403894338384864840863498179336245511371811498160592912989330762771581458972538701217015114499919639984549767491742281091144424803499644627823414752095444390632504143612968774958359853493042768553720530296399913037345404552884409556414634976918142219468166692601735944498081285774381730436879059716774369711338719199027903093041524870613389543136369268798204467116201906094881346694830953316673088307216713761736372189365950855207922291206113461799564949203514041092046144770352590661585756274572179968026947102868490186823645361217244567499836777429952844855543758949636448221483157790927375884862144786175838146346739286987044920857117000204985305006974853414451060745518650643917959196975938020866247043681922802338572358203586668423367812034538282122249978269564452709933522632541981573593942973190660465225538978497920540387037123680071966804828008085350810723881715940497900006120874290459261111654073274528416209596147709902822642168106014278862924993808305028414989805152680822986651884075584142742280391492181265286191279696545726378576229308393266914558370690013428148134662609301765308634719031619631626323044686494093318846065323425375168261236854537240726688460342347468857552225587627655498559827016320657021911926036334552286638518466301197361494892611840689966073657400439220035405142238728444567562166502785122861698080728406904020876917130726862879115283097725065099281025600215624624388778814813071672569812140518806294275195629690552126834053759229897944484091051974393330620466599980822532310948290260127526250597600922242417004400088610266548407654435521879283903583942894801485407336913477586147256974242549693202251236591399988490071045806424573217297605480427655431488391042503179444792846327768744222579792012874011173357603851821332497505925715315615429164370053992040957014882578312169739150764858911464125578589867263293413645664212870076666873338516453775582081115818043395310464562676279987987356612490915227722761948355807644573160614761494595703706057471571470018990259438604789243898408650365432700919673197570713588704606659934228796541325608300444176317695844498403469325199345171961555562285256510676119866075503946907125470866891151058518517409658002228577995767176456290453577757019884423640460267010117387010564949225064624773631490964782054146405526936884417357959897823075706515220545679200707153113610111913102081498349741656914845541551886257551322738279754907369496768841012428703552201901218046637880785595962073743557371840135146421418188757802326844491667009133395645337222257140408141622456895278417972330183347393874344544073388493498696645850887181874192034293637706498656639065137344361496117628354138156614472263178525131486967336805064079078377971390131668108808651394848779794023029634128476110988916777181095085266038845390627877167783323334016222796117497091944799831265908329498689552894986979930974549443037866424087797632202974050604713490954513252255337603201331301815456631935222366659932184141423643627039995173659774627536233578800226558947091546680257613049409662434131141532799338316185894060401790818728118508749698555129119620005078664690544194680824488205276153515498995764361898540397668982313205469819920819997986685284484771513959726128563104925065902814197509155758768799406695422371174529398107451138176787390563099669722406859201501293502623411101429906425801003147205374351902197115825839530433323732003516098809478141331709824688515915878320017720241895152124240887416049824026296362095156804306462700213564262415524003289781582647211799121383405463602629199347181425899926814048543754303176829775572536183843629258073191327411862087847536164779413588003444873102176643291496456229893797567055774450575602629300974593043212587044107924156943013966607505577253191422889672770558861161909478723274117054637955767149431552333365523415948564756386063915853879445955330878081529755869414978990517906077327973174260427210105735960125048384824932541172468879360276351624823794594587440461229398915479678254921490729997508518105344367395791500177159117243104062612805114040932701014996652609645982324111964374636152054951125121966611358064129834687282238124303517481540144637451544515016505435062917327480326220145820940453533388316984716437942346943307712961151707613816382298972728668558980449776115805359798628931422057663664310978053362083869381006197347660534284474199618665253922333783702376100570538591145143228529573701980941283412108213965589310529779420587195118283008805996724666069888573803590807468972460987506599507990337720486701814237349316341446917180666951356115363650659763763227977414408078667187644038099093232469644554799517588186274612405086711939166931533291057890539398934021319660614331785777907731695413172780201408356330239209135728906119726740094932366430748428050404291748587547642610062767090715483377895900090324858364969195689395424607965429575226067780050993767733493503849306537213448827788488454918543258376710213362658301992786105261283239612744750993738373348341887399526873422420752901664457423866385695847597675672561291913827564058362363639389311664163448092018210582273827266591386115870219545496131955589967765062719534585598964867120274370272321664320497480513582733726045069875690725214954373860306923968923564475728079644412227824330475771159383137214943302617110030918957244401316868868172936970082276210922142659434254088847006015578795331793009207548522062218517833261742383046296985421170119305027625946621884139225312024570754743922303670258770183517241561051167623312075096429422843829501560092827109898757004828230952148773699940249740889751644501971803692741124642519185949988851195054121891179489164268024632576757431305051060669148001526363944586065385197283496890793520558010563673195185700454555434393403624696861235172643284765793259197614280510832838616481983618614491811432039411901771102563266465011419552202485757253975537125715303314461512202430068297745943659431302613942215387627619050302648272952176851476011515529949260352923629807766164962417618112806698371409261387629487287120229447103888221431970833961969884746852161510324912414123780066526778733127851312617611881848434533282939543073352632365748612229748589624842158027167347106318371068005448250803880812817605584557107788106895706903367243483427148652449332242593321580641026667565487372771004718906588434508218589432884252042622824319088887134102283002924438677956817037181796497806396978139961062289244762404837679094704105834600989408295909366140561496982488552506123913744391090923882734203675237283304754647298318838752725452950306813488236379718889780095616972603240243539486062677441323361251114159035910262111670521370971356796726028834613118029628574008762088772703546290931339322589351524736342997799780262064762885023120483674320416710073639757451289906936223283329952243631203318373995291356855782937434542871936418398081098754651435672725045378224152465269187390589532508305323221054514769506085096307088591633370388750702753573708441495775632701238037289339122821408964645164073196792984420259394344525110348735367060799599821498233195195264486454119703356656581218553465640227651273845157143376941812876036178738022346521582481594669697546576257215647261847368552164298873670095233241343498376577788835948473203980073592151058827315723192225985840114838825832919028171423531995018792716257619517136710401563348331868223251276524429343009249296771759540554338553609137652978536943115714637225551076578490876821837834353973208709976746193971963834498227746461946078889147610485086198227648450912496882325915121680243896649065419568971866320878770158397653031131912440379155785926420287312030247361880877312143251052324578643457478249582735467880571611002519729640796647626469070061328309979089642901170763462700452774431642426943987539652385471582681864216215127181259630333328790071635393553668054737459435517082997144524725520647552986931030684502055381165302993444531506200925956731270831532382486544797086247270386752809021341058027060999010138458952709208731588982051851484540466405193724254922254817004777789823490008967383755973782158775055894129111443934810219203209019101116325341721983213960840585761780594551627485574849114691361797514449714703492096233385187410596055770871955215806016110763676733408735025627645484568036727355822360114544924300762028393396484095712732324795998544359521824444098152308886142756296611555224242655866264713052667502483058757614916692192293843589711161146599217008861991907212339516221127430084828028327424310971867470430255865805476760504418963893161310541196410494857385610351667535733843999868941808431278662929547072770453268584344175259997342493442521917526406248973633097992035772985423949938520667047708776582282672646700668025751558912268258208900689465888805207455352694534762919961070549337993473929292779634305737671177696383873508071850174548169453487249942104582261431105301876702951513033413714017927529649541384423701116626518608324996509894822533901255928579385296553297148024792148288225817151720612606745638204968758382229886250408124146524054686127291211452761083673844439348546504765574645824186687499633292933978829828620924896970454386786181488837057617518582735854847655905685979605330918118426237149964620434669375468651853096724266541074538076087916550408694478513028566844448140940204072562541386291161213432861065998478445892308499925940727003314738627874947067027352157722006243216831533559718438612424981901252294218800854983286885689424371435881513001117813287843481419249634543769510034682073083935623242321383921642778003872848347343094949271453220066204796067714090399066430661359132094176539860596097318149974728393545095540726553713154129894755902281366134365005352263211010624725487346184113713240929409058036478603452526737254667453227361389911103749680378985380887640523937900493428301170108139634202628900611287297675902409940870062169472795139485260916941624419291625426416068201562888849282303721333197776847680105715795264591950955160637678025535589899406901252219810439431250571365666340388053178556259946388181796059936128531697926042646640187858523855671585018497002521500666542585316497631341298993522581925227084432681331948619898981916249247634704790649146840677608711320312072029596165419947486725068936998228269734447973504558796453168591571449550954932265788678554547223855697751012031742057008523420558444670206421131133328037626172658555676200223032972850953054076055697522008151490132442241765449831819614985327057817843481466211858755461800581443500992233030335927558666334523596239812550052874006978238860381520367957432666534943149147515258882011712851729101778813156176657575630502349149515918234046536535819686165914172543916859170243078486938677701403767437153908062410691858269174552391609022742070217240356355342394974506034148204725266854150495858765965103321762021706629721426461798668877735021625588027294696151508951661242570935381967870666894479131840341142715832127315738140160385172387784535465287421245320743674495266236823480665390905364225740188864107382630361777864311933891552437067069491193209865948108893539625954660423120673224651908200215419716320450345562459077079698712962352134767791319336398171091521188164096013690801213231274382386196769566573482352765541484246692307133559525657605419144629321924260642246326119952976074879190265603476694496545226461068880152454181345125447676114027515888325913078571649344879288666016296013425247865561058326879121331248484296103537798029795721687276897861556022995037482269149366918687022870729293954731118721751439215225183582477277378983621487578072951258390836618324862526296098086572267226606989677259806658504092554611725239093762781340310925455227621673029374369891957509144058722659008898620567183291149510625830822552817314904788438117373096628406821452534316475893915332566069043813655337065709268141520921977468744319531367491627110424358547635995115883001860075101749413767196583684138193619813483662359175797382713443602840228419443052582149001676284585517255017448187584372389127865770418926574724605296495626469045085570616300630613610847440603553547882018540198066230952047284985567977607743782915627792707670568141435024979964255129049562551666720786478393266155493747277511015215618351311928731280455060434807084278382956864821034669407812710640596231341219134273220873323656060015582879416856985728036069615918811522221297429245005489290166884770441905601682886170790235000961216729320118843356546869741782404288069293902010376144148010221257673148006314299710465901159046705217073658385218065818875318980923410447146512541117347695049388129437303483692797386468993272407610867904364175049354549234973946812066516165805020551802115455688883072334031897891159774629965262194415681859498736854768207448866828324164365515060970251035928570434915909186993862751273833582387127840597631795721906567313967856705337261685458940619765336573034364295181496828049441117231722954311798584683275997661177018837343005288083022202741520885254421165488945549395411519128321850887073114027813248460125002078779258776501323863540441529666820672028444621918547763366936304886963443784240473739919005981244217036501470699838745705541757030401082274026736634051877071495459556087260516652455501732221838213063083072829187718395213501307868558859917246430355194291966099077310870241524505186046284656861097805009564921042953422239276213403790256962816358112811678487220845714033328108325031382543678061511454399986850378799916696023986555379419111248537588911385406768564330632054412763898536913161930810479280774401540464263877611435229297043210477137994755929375152615084784646700148463975431273096154616968973452357684367030439252559409148306001833332104984068714054641864018489440617616180502964864014349075756967137804116717669519027392577001125237214564184550824745165453558311583899512693551388949972785609201181797451497644775187975426199373476626614984712840949002663055788565460074882097178128291684038095124025333152485595464247216942790472228509670195284645710963442137101597619172622707960982994937944805609412937149842074305436433884117775588842060104170331727159303723451305948150570288569738730030539738498808683649711107469581821225309878098902921847809541917153538831674391893675240789576294533790786466329816014972289845391055984047058337938297737627869212286573479372052351943719000722178615644843440279002569602825382031835069393892662068197241958252240517497778289883542440594790755697676488553606605634677402060376241765450306286307423989700270094694432268609653491007885142002337518553189004824595150250652757403448147724802957301988369041686672730161535567195639414759522381613593105586449657677055416793095263109091071441912472455807355932195168771134248373747287812241978962102430393218879937285517828704690315016996222678846672093292252208472422394263094022136927352315993826247886080103909636179841148778986418773687555274227095648471884850215227843089878158406567939495163151399725236036736704323843035939436585905408873716862547648677765664970482719760622899343904731121758531722753314432655629179986426957980861938735621675091825074396114005682889274288996927257295705665401021349310094791718234845561131257959328015216860099056384548120204762873644647536539648933712061675411032029666647163203284057246759668569315327486470648193852667007255310241777997604675666350243186561722140634421457478031127450450280418493516883213180069234393324978770639990411620171403618876524282417420166672267844371745595597451210986751469537523002473185657080526971020551369709969285198884116137420676277762474417698306534958020410011712668867021454501273496079789165901376836227923587719025118597828591197361989563475863936221490263026694884190963326299167364818502048409357953959697525582468298524933204202320137506121679155061970249412476901670741804563655171027889245707336299109102350043403492312335857893162537400957376368809476697389401531063316151797875885937950148546394393452822419308605040435582368265180127441185191445745730516162104494817170269401015365507389902641201010656985641943243891776636761445147961802727461121509184279176587339622313258683111792330902225249202716108962555418592126844865376739181221031382659709499175061042950656881540235516148124992787797075064034424004505979341026901396805374334859620437118055536839560334258026271792994031284009258427915834423845743545617608212342982766666982705674066635262903269735591049677742293290066376960042095452696045684330065270798819883006874829595002864650565825338264295954682771279035819710471315968776798872100813225763939645479704851881560146928739311006872834933622952781389127328380333605688113506714435858483889204807499235226016901439346615989620064947006605087766876743164658563019926733779606254740074976990146784893172743642030581864448538923590277435926215026009301563792393340564075821355475147010651950067435962533485100972674753145097543067733646312778214814292676913742888786184984424321083966910984231530517811197290281273469894479237366664248878438753610062873146007925028592684280090197200414969627625571901232150388977317726705387449115224747674470579968318115166175571492919176693986942896244112717184813653462970053644462202640110596783073220019862045164336767446352506239458890435720478002831994249398615035154521654153789499837562845031476823161842643545890260055098250036894526428318136402820995203829133923997313765955433644485652410057268616426474054416417750337711693442297243584632321548749525811934640185249887542676557139458079234209150151772076558301204772658829206072675497764314881343861577617160196166589263127886304846091669826261225481889849115366746081806430449756982553399684459201648772588336686602201040332478559610675777751731558147632067401441984241882574564445886321112154125150038432020870726375580863978012959184303680090658148055029206382754793719439358784446440497062267252081506204311066765108345571729883656386429598340936103529146984078261031280078785547589927661141557595261336713263234337229042008426252056794815704876891936924849255374716912815416540143014548766752948464099827038895616277410694212886964270242224362374775946743021978123768539858530422708493906575566019664909281637488565920777373801385707245972656116578679051766345031265412135855356288359995547541328122093051551888443779134784144028728092681598111717229170549665037015463857476803938615137696283422852742054318524062094520283328161273096935248336476555483413137719470539373759605889095228033237255166885227091829426439314275921889544343781542491152182220055513119016823915748098935656237512637130009974245347205961407788628849204350940090700918771970679608250647645488761874681216693978810070964151197327227066979602579386255593179809575415294550657334600851484606612088323367944127393171077816922645137694588812707364522852300230267426333133188360069760609349882956556559198941512753142772894232607755629915413671780599223509016779533353214492507686385938019917957013420259452547773908581793641200093342818213044330492137431417404788970025274009447179136838390192601463690046162214934345272280351922949080444419951706251167802219081004450865811301432957343698570330161457967009502984450958368350943775473469981912190159275362232878823897280790423219634570511953643295966473863500056832447169402222806840105088764564405058404307782097778499134200711356231840988842538135151730140492895359315239004610512471999523815652508775669475034078262930253954295693132054283015067323112001728731932632714709887527183216901939429855026198522365869239631351742066746307824750247445989305141885776363564130119735758597271577043317203842033664546186336580524750550579969551945725494062276298108816360825401282550275603921496789047866320264558833224682634161128395611725955251195226034584955530284151691378029048825622395507595856651179045972353324735438695488993441633860297959826061982783934149970213572368239184257351325441990125582117279540170286034157745669523676051388966801053988521429379119390423371503504821964264060615274233708447331886515635052787783811246901879886166840592246788305915500271046456948270599280947204352066411920238814578128747721998669577570492425814941019695373025934162333114783673937728895151365536085533729732781213827071748658106773372686856963611660761850928350896690947875706445697241370426549726896252403271473910815417498831919465242815506966474134996770905094629357908310130115013570935109763024739576086592074968654500148808199273258529300289757148570909495172968056315379241168434036287288620168407459108257234626457983703673387148888797281596431945909590322788308563450640397747418605675299446843975957923258250877736045359298462108910002014489023705481912191064990372582806572218905662942954505545590160962049157900202806569588459032713213898950428320484463928533094111655746340501906792751897966611783072751168989101931840334497448401713454504462786985637969475902211480362876828753858909261686464025422165898268420770571217266167528960933907165811331295007555697887279481228538171602680577555548128075432322276777048952569089652452502449060662430310494185797738310681454713913047830362709965163357085744891854715830260751384099145633973678787097738914381629109448798588558681703372571682288342136047892376660225855409318737950227530604732305786260462583757082283026603724302795855128644931839884578088224010979463581226215066446891228570003884065167008744513753735230845104662303853895479086615462916162516161754672686424319809046308613826314911535237546373509178430555984091304961683272600909517691577501859421587992759898685761553976497167450898326866378233874964180477926764333611207168387254590701696878256413066820555089275283034456604350953064646459957163189965817896800519403071309667006499261878603258945414998166987824170336745383698357595189803206192266477431508269802523169171965820524764271963855429775506903111227552909794727251262633758539468230309786401997909706352270901962629582715258019646093612963192688303765686380444836613466617428088104904655220775164257240934652271909449342194024133340821756876742557120414685652448824935991042301911879525922112157792736892716052498679725227024270555809006460729533599866556546814895544549728948496041090835092724666897217170681505733939187448977860376954899553880892814474580568302427455273297965917352236586803877546041683102144993320809890081123581150720107862609235348306327082673117628289538248967124924347329927746711837814414945084914774074790267167567455251507334633934532746688217782631499962511744085529135759764673942113848803142274053080214317340263244393196821399523766832066833054931000914874114817230373596719198986720459289786615467317727019898776586641148020876542745062351787261918092826753556876152449028526582145304602937081269712197900921224525977925566289323516312182074044636174356861926455622233030453118036183756956408171120432374330062959951187238483275965443217930198778103480538170478723528520572695981347971168027720890049752366254012779516161272275643019257577382902837398544606603553021054647782502258119334126963801314308257117071999367119646216887126403978698353615285858641386823627301117048746914441210112876841702937904543487438617408629332545089018391859373111816361865640500256225312113324128977320678323383730045037071343504423573338527263089605028261566385343893504322809683631594899783839287445172703986011595972667884618102169259316816520908423836673451324437478796957777307536784998981660557821531603890458580289510793367353962214703713144917325788100010248628822697463661872869847381927656319774233893436523271392002366898156997034542139580046850941332537192347054382375779969897400477099542596308336629677835269300081970352039014661492995052803919805099550707957198740680389043466994574905056344923381614626277450453475590635933638742804216835620767487015789977433293497069839927192377619319688627663644552338339600820668858431299900996740541215070178867148928579847647677692104228883583941351937719055900210014243241085813789334269392200586453608615177394627388750616786346595819446427863713076309342537044085157680626188146949102246907877147135228625675277066977882680504302011726007709702791876970907465957536644991918062286956334943266971186647618244187785601202114009288999416821523602814452902419381087531968620724963160498471327736578637867358292790597125108081830087008369411700080354598151307707641712407622637471121339289486045766389601411273397169130975311577209385367793605013387478972209169473837868382399349589025916788886777576628996617353440749855918089451298458108762541909401907656017537106684343947698953887467730896352151578271836917386875087721990681678889928108435178663547084902590217609169933572843043438866968856276335187165239413934076224483482797638626490986267834015187378907385499192336865348896859701372245457935576973589648995846292289351834509146536565153494855362169197411581350473070405897057365085514887639273925058470349206073526731018188377140224244392865703578857456591419045603232140265938539232584390069282958667581898853708502230166118129781176651354087098007059837448721267339936834456266711307539057406647682100317142670720588015206581622016123596561500228520113092797707117754191993708171168176640618972829326676126723937397147865199865693982966651593814499931883582341527912408696085030598733921801785279150255096946182902326042659656966652626353423728893230970296196789883182560817112212345103516608997793379484173405809291672186713799598189985170329052155997516343124750927294403112679666500747344944372583968813315316167165373978148856862113055335567756292644359581484701069560017066763936479043853678104272258082625256979468322009572769430358594441533388698260590691179147882594083178777046056055213741845451722052956245491152728121633220384786366295057128387983215922886383129779286143460135463759873262265569878520198861688708185593366101486080272841586883266083532887267529305162182603376280411005523633422748945012761239738113681723209900497506406811228808499213959866501278019077425779055017092874843460791571962520513445359951577066765918810104329147847018600156164398396404742025113767479756946072454483329141314496943347287465322465773346635465811537547619523510840256674721587229475823111623184989193317404562047243231482731110911877984966776005063825439661888915417565466931404227784835537196031762007412476121902703688089340284935281408048366480840758708661790199371683298449469252318211745792855392139360532488198074527844132102579009237663565430364194372594236833502765298981386510585757081013233697712138114891864392573592176480454608783791495668266111908832171328554676533723586570611394762486333498375335199492982506521396431641759642966670176876679452128317007797512241554125779419108761868237571056935183591059134345764872929969801783023379396208404117133007412863605744532023475137949254237329763031094272664831636839894342701352450893498396132847456946023505279374465764256496824571024104353516746580956498609223853035284467645486470092041041177576193674629071040181956283848703609167442173806451186608055835053239948222041653140225925856927020585234338803869906611588826328807209499277428445958662636252293992366213909201840710686627708797209583554963933199509218225962967370898966651981684372739627915865892473719706651720957495222372127356574183448926847419891185899881077714270445680767463619808345999951485993682487853520270046972991672292372142388000253571922858401151187194513379335808919528568657888404802318218407046697872902134202365997360582440273195841034446197362569893096606698220396178727117113295371426012351398648111016626566350244931783554106846809699044839594471542072393277866233397797233962045092872262638537553721980946395258312726547944360828782998922234015468894609929151427253934074428359752211448627871464461445105568891621481723556453471117342510492843946052587916147636691451569837932992745824305869481934519195532582698129499252529972944742437569125270360205601890416419574919467617148108000350443443954970725733039227262455055870229362508588551025473638953368335406770749454012127816777288108517360422411447404714726943654326185168428373773498781577935858940763947885023115676466947246651340587395999163700763457104399274057992580748520889493680717373575066448337938848407677181038332281377163322598774790938199633784332248943293592962392608341942333379958975716976111351302185218087019795936836591096340744798111022360446066004854507140292738120575073329198630177780020053161408473899732588015625861218864945375773623795571834661052351624539869147661273065957675489939868070530587105658601550418274749923500955601009978656806158310530821669132194963790112307173482602873420769741556094278769032996810934248811768941935873023566308026116254859919912213608048503341177623266132478108290606162594986431881454583808420589822162433817056970415312556384115602982448254030266468235369739230125317186519165663888660202827857997832373305990773832874271965871664258424361868646957033687522190146534961982963890567764641454462316389157460911523088496268376218127024498984868770397920395618763236190314064972909444251241770045569101334511184052878471806277257518868308147594484790612703511308177028247441409341132656639846698040473624801622552185271599494386305649574962027905381089693722054787518890438447607028218669505145532727959093879843020130581751101353658409824248290657090469695682420611960551170359425137704984172402403685605514517527835912735823439928187788477787950076350316049634794160701537984161160369676537441645954274800520913286727812906422251455188396557423090929200849124527954787461002271605549883189523059866203498058714067714402373092700137819514990093123894691703261865059858652177000114088143142087012552374127131404905184779349199164156393674369853089474998512575563896572322019000280758203909384696545042729362176567347293001780473039552620350760910420148379071473966813166733963488825450257490864679499872825830111694091161140389961535908497653336626694950127649751858772405103691504165585670497744285031093284848088133639758816115079178410243559659891724262038970667092782774723682465863198649264178477317055469394597178507684619843022623045915386914890491655246915155765346348848218403324001382362059602097768611816454082365633310399376215176362293969396672447278285563645833213258230742066483814387361198311752621329526699346903925502896002275175055084757272965194623233920033787891309900127690362081432935441217446129892743738271669163270415201413329766973126214786231474167835114310752804831294277226022132835820244392657986589715903446205439993866484183135290540806990278252528165824826545580832889107551748156609852538354727635937937870706935833624885456602343581131119437815205830551382415659768641958385712838499462563487219503632307216471528011957861033205708388130056967154308377998507694978792989431612239499852830082467493107836625162112090985399757831879080498649402593590681355997325461843430779741705623895133028144386246857161010725945617974411190518740270693701911108507391800525229571778068371116065489833236960990723565181362840570804963506414933997133125195045745519156254518188363455498232401871626129085462076386644563610902116632411838743350200498438771474834210766638683206826556426622219912120321707255370421871571786637013638844298480943126572766605454582434467004231922572145144480142037004767469690652710051958371620653727797468571966861376263797941236131397209492032669717477886441141727171729241664514622155526234315625489118428835155263215195394049868736995602073200146740300672355460230682179499550210683962604868559169699540723501663316124798093081884790303871081839595051359542695618140077919440562291609646700782313832321115964755522409865796155857004269826832326703237674561927559080324376334352036754754186432876550857403389143322079755914574281419770875612085719048893535476312859180754655416175765874973592161503976989792411880693237159013855828424448785878734983758952330144189020819245385717815151105102576289480155285945724374009604729835388630242028789635194929420116852342276672576886916361745102045537360032043659437561684380323121555364091606011660510565621301556700847188505872501781126087266230758636706800809487277513747124374110879362145104720451273916365709965843368076708727732868823467387162752302925975942266312896534663358285093874343714180763526217734721429484040120416885994123039822255471103798131243707721664316531852360761562558614797133944550211869521438548551562065890543935140620704531675829058992787583295635338254176235517448248589915904902919423219231958323940348589207810849411586915785510935916986764841302580299818050174250381686851195926592703055221860543083992618732189386825658176321598562729089098808558156387805973702732223824699910970043517170529769553688908513501415982888007208300360429016661540647971601712519406152252744130099341820376018730316223787936866199780432163353623199621984539916131097025171435623100417504211865873814255390093735364753498364526763729930489446052694688634055598177183564245877846634495308009675338778716551972947929135367555277606484581422374531510405978964802790590822990612297895016499338835610641509983650390633124927002114947734028464427103860334351806529287294327440965262948587383338234478851074550526170011670153001582124073835247505088026918143621185820246852643609115700441729647885155043868342631551523739981342929062378440505054402493780738262556793077712900747163807406179619210586096385749428163986422786798401543783112990326657320305030349945495128033010111324960769474055373112572139744392483410027018082787821986568455907714103464329388755305270664705155835099820614760068871225603270268634115573178960210034724548744707133090070051913529727122347194173455215885664077224865457992013272463744413481896445355539860540259657509098604646213450320132704109855152609289570543772181064411256262207876958181022297840746338709200098524785528401216475524700228142129177136897759628148385130924999246234560848440955670123910261530707132697397781251462658149005618312821998110383595599269650167064548920540789156727043051101321289502119941289998672525284781907341488458764413538146657710650580241260651713286471819109658335554980594658316592998473812428793381399579866714467472396987174341747025655363235587358239408202210329440884695169414268557670042211856784961376273286517997793100908333321157391313883364239044261343882151133307890303919786839965790169177219887656622330665169020894140028510082382462209566515917198353648339182583402915552975951632320090783556229722293819921841892839175039883814672373946045135724596845474425519984427138404619289823975573990352193147066092860434185283521317515360479979708749085985451358285378785189457520731483824627115623691304077355336179354273681613208595176312849571565821767024755516208068220280607290886160998319265716694999183005548258900529204927550683221902397236286990098481356870714886755271005392333245226175381909559770565169264364175732952859591809364731152844352650390870560620041105177052003124106800855551219168388142156682676237989683396296508921424535917154314672295483354421084812268510260979870302447072793872758865979248296221644196352069571693324191805009976801975646839428519738492614514436245532983751352979632062004767579807072331680316357399022759256848025320558492033210546610424012666619922841980713275545967270197238172350155445671345659487137550136829834217984426585121914890972570020694437083007310082728541542084495578710604516704773075782730928977757272069595027656759329715732789853431728420058382813761892277695487452914674209576836828415897912228793084465371310558127528349750018671481487521053138680005617636772342443439641514511724260295971738374921780802411969921212503204220755408107194008698875230102840990734021547771022264363218895899596958617855127829151709735562902494406028339990631426422096230963320241559900579248295815961568719512216711503481036181833661754330921778544971299375911831710693471282738520684876111280256622343575880314036634052705058383656410596123832795612782858197676516304347617324483163467077409287238066111122435135309204686698094184737387417450091976540635697328749703613346190656788795265225873852449133054553327141477996524287894390876321574060598746863463097846892356883001235898172262838540294602875473600859589589012783803490621799680518430776122928675149853452584747512757072614443779943259593307569290163113549244724450261276587293518125205486546777278259481755372606240713650066364041034251513493177152755495544606524061351588657647779106724992789573099871794126550930945896433319952059501465752496567170327020576065175299018774666359317072644818456091582404195869733074173286414663058305657826263951741202315141817807204160810066796364735582129900889612510727770494813679645234275923751744373218687421189403618116475646928255175069546840279614061527624509420943514483760922340025812977014461043050476853116364935740183473315173496862517647172104677965101894012155953874618874965201353725662207431095153443113436494476290033450252166560821162799709051345849223198059607588797549064104195778824579794350000427238953302541156971768631134558880192753234079165792252557132417728900055153325611433873781509393856886684286446207322741212998960388485910188737269987704474202213510526585417834714041398763830271241839825052698665687881794236603514753032983252645296912619801492020820002706141554864290532201877206028867692785424689699989637730399824213380065510779973262420098395021367114255197159267180603767920083748282269199188910592837096641923490232319458337496579801348590704259938423397766395200186175311357017123006649653904818255837085073567610932758735388480603780796769342789416127361134611581932325113320107268811514222477702610625757196286124404246255768136326049661357567567630512311137152082566550533835905102591773330396789430780251033186215741329753288977325465833235822905004549424429260628515987672153155577163621401802226166579246668672711646692050771396283144644601457468127258910645386655407281256725203104798832493857485080352056478261963813636388740189102737015815528895138535747041186133167184443372537251356488266005186980536749950079919802743760942994294835354175148482862246473828208637972224068880740175306328381656557895493088478636800252411630507091514787828062322632438627478099717503196110478768487947704865968311131145201583300946473949660324920738019126930838223461911785783308270047060544989648687353421306887067202387586032416253352018260288325415865256246433430380982402755868229267926481920896786895883286855935729076578225160307995942184253306988684336382508223351003333976456283452254562221079617625476947471035370651651656173915681387989728257306049638860670113197865499523474057938540171464232778933650613837679603343442484579689878276018388739784244505912585198424675105260129985162979292658662288564648091633948244637801319487694127392480024056752084029548471278926642627815888271035383319024800213625603504102782931245185648547372748336733095730582890944210428312659682357187263650849046452452561303092310929404164198636387572131386274563096609067468670096340231764053985762657021512803050699749766802646658982817957020520501230278964874162083171739724494980654718487951827551364649699711891858808910687134485647311327126153906127570575652536785301542576605788186743397009333433321886175356945684163389619107142782570380910480246967742014193709329712049314134753525416681528440580645650922485762859268625973052762018020168052529286704223051343207658379481910335785916733336940080775250339249916104388608688371042036450394437815741454697627390277995343739945354328200005883638556755411775919187356110378933423513745879137409065282054171924986569572961238418746993374855421734823870692338788466083048904647755796114974058396522280900579040821764130053393952951977066869779763963732922092759976753145579806557708265529158735544467245036783938204194856395344667553428240260759623200888968980643595656869995301079675125097544985212156863935734322916693312237135133149827136638669436084998790181234286951423473533285598101736552314222664896766416544370420990690090257184409820946999111827501315819220835415949477487451759583657336940173304848302883807752003787281516629861065815200784420230113167033481597702263376815819037245726174544550674956557246423795670994720282451730858341415221365057080073410707428635802723862070812197137466640425437474857101212123394743946957281807557088970998240047951258349102819686880489152847274683475242741346686168277361055792334165082633014949187716270578314581401569658345323187938435460388571000958085768816475623496198956257802223977860772197147453527916230212446964951149034538957266745954690698724052718164478952351469015388113612509009465335050370622588385686517391226384077261445249803567527225566644290829486330117074324571805215343657423271382050063915369047843213085569816302992528245490925705265686103805668448187781328291756130583114324767113313180624579302829528170449443301714076056532472057197437890707347319505469142697370816011154210488801268513796802410528175439555979570756769087624458515500798318063285291416779685674901886833881290177625448374481850070471499247818655867549409441341545610476146880796678972963570785050461391747472057052410702179969878775002029525754486407971323678895682360506559617926420199110173040815298035670290483192951503383720380563163462964878618454841431585350256063815471273413064558569220896428475995857368696189442367557841372407693739196135766809119686571010819753928788782524337914335690562424642725656367115217435480698271982676249019206382044397843933127470615021196583926363435881126500457983045105037598216845117655761257039512529598779449639098225181661647986600869436950379043486760394649732155699097645538170125026712094552919310367877882498675721995579439807487012810240340534596521385050063178633611705789348212553820951431132845164805583099530911073421916500205955658497496198085356150440361088631103738204418893495241115451802948233938479355217259370240482612852055482009001007831609184249860225179912212806375091448868076955804534011490263417521752011860107607961774152046051487193786821858194233328735081165748969583439230746908645929781027899278120027874436230238790083256036808610139319992148377667204700951280176978254200727553952534891191057998058117750528192631855873571850155949202352389990108938288851155006396296961801535901700001146781848285047738325102763962360120206888032330148960080969643820225507697768908945056024924156431064739803450882323470347126453729393440843078697499652842648874078870284531372646336289288557165195300550120100922416940524069635461714253999662204003147456390342302653554668917331158655951689817823798636863164037432391062342359758036636137909033837975983295670519881406715621684451417879777409378613537269736501739554175617813705044297918513198622591262445887248987999185725896629213540033672057338142289344568086760563711285736679018345180685244144421484339264577380431332909046424695717202393931895509313765080944367098886551382875416965970225296714821787898601644208678011716205882809745043141143548275619217068856568254885005994149588573526547083455622631496954438318127316487938951637046397431835353137577654608610353873979909825986309306871092541076587580952758102648591478539778963884833969616360179232869581263330432574151347150631064009523693450891582667975951306924235972990298463119340694867221279263326633935595360870364643866221343662123030505282289935246025738615044035887784639595214771309319466664681849517133700760623146952503619890716948144869535549769892641982470004599558722795698969387884016859172978425200970113359174901956821323012387542161000088973087944487772607717599131785342461104922279790942585325725383029060477810184958842653185152990629785578123322255818623268815578220273318515197500784946339474665361046687378951510019700579264777902224429112343210545813910502648845875597050363186475516142481104224268456224030314909894092965464860211450253612214957858841882690447780759894323485246634148471296564658925718489262963259183658890208471961452554054857751685968925553207381825355416270938015988178003340001888251810034318315209499134077572631081619039569747241583536915911805396194138746025729068002139161878985686811990087705520728651599172037085775223035545408934835549429000864339820342310676241694132408349250321273177707402732149606372945406668637998135212456908569309542062425766062123433537873231003800450709462434461091289957690455730034370625587490898484657186354210789863057922643889549708037623776531984226177571740929089222910112879558482499798562057772859952654456801910415399510726950398211127435234624068275708901260514600669565743990283723920958917345688087073579100785766929993552329047519465225518350373191052022500128693466325828798345693294774363459597782342017723434687802199092088586317732780086100663585550520279744921900569130582085474835102467037267226577583559311158591602298257796376744536728739338172738672302339857205299138488388166837575219827081204432659318971521109048942609355459635798934142670292876578663394970693513556609623752315429019098720349369896067782666503856876924277350341965502124233575289182065502698466721011636467766426546127149187944710241261019192293896199009013911333713130565292595998695853496632541481994618569611554295063054653226240474097001971526331270536799267002755586002974917974898666323493978798134827131752663967750199238314664619336647412437542447976117931719186463745933653582576317970650110474995226056029285267341552434524904455235272307074727269333821439944684161227596750454951021842533849834523799659419130809655580455990281842749501760573460977301547765979678362327590011364192393157836340993435372324919890091453574961595861384132622392567335526759800158002162814490129083422622557943154096314134006371762574034176025510604141117953616151040802820662335626315737800153103223235393416922681833436232961326953112606156985340736585122638244432238417789085838908228849789571396323078137836061858230423344376593304597312594351299854385373477627510626048495206057640050006691670407918585500347715977332247910676475985279751449317127894246379555797126558395200306188030181857525652034962943081523420940189016067814160515812981906257504064063265827951328405304126478828356829093556538664905997042488201830544360707193506245291199696476698412082204042079506753238750673858509680243744613530023629701176039704801511522412182912298734083861062922746742612247196777249880591271744077486593709063672779462411971059710233573239447918906411612678917514726513936957474989771426792197324996054095658223872062133818066947509529309128537075922800915151253281000686592660984102450130031008992263181826404393425629058480049137643161803184163718275913881896031679480897891308206598656909063735302433513425946419537002201029989383253496848679682005592288978089218589585096064555877624244904054675227239555805565977055360435669125922597063887045614287821360281652686220756135824252771401905866900229362413355751756268419841427425674908758629775900478399245082774640755548940586512515171695683789075941316353381403375486045405734223703936661262395341119361444264929273015902331529796217557175628271801329369912745832919249483340185096235617325863527465342955193937750171177938347311127028283947336283216260656734152799720174635502357597914540699036672126899227227520104565945280852669157066098524003118138469102356338786029379848107715589981511677741014383040031806644956461796600728688601280609314418506626835162869270544086519220443549496444881290450775010187516192586857295257207832443013599014470279450285025681950744786629332541053012815081681652469815468940749348060356840385285556261226316319427341036646018839910775367086315552942636161777670289275744734643118310169569689322968879045678603827129987251258515055353438462771400681024081421435634369092629525783673406874233265768811237427641629583034610994947091414389788899049756411322651594014116785357466032426210366972979525408462736624494977426535742643241973101441349554142154304326306420088182642545873309489903263392142787693596612772182899239873016056588244925309218149546468370814378236585724515603727017437951799708898894810492360808764559580700412661688569075141584981192847858827218405740645284607516712789834121290088156780158275871547244843112315212031797711865190056546292085301197557649496109897191805023610769756022684835888051064148653169842274625020768739534491670409300474446579516165261386227022296376173959636828108288122072709868713911027055055765812042483592264160618203012630926168189441362008819884317863504044797225067773022585913810397080412860458127717756041155796085406764877800235967245403463670647676432969896104793972330130721268364439798390451169574974890979078169888741917393434210418353495873728171906433275228032630216687277841803616291529483514505895185191109118514575788075474640456315529825194472923819755169437990879505400084049666278704277573173904629889537539970661393385229008859018677349149477646599005008061661775456366339091830942996579186951928159344284332858701028865663879640670579563777787413057755732167759345275232427969994423480463653086080913341446446531765541521529375792608657812696878488243815802549904440713953607055780391854754851183863267275637207195936829154264038431634453046415119309985410081137110618823866972354694434650508081422876274053480233746702755387781572534182303448803654328224176150630818348730084334319233737918530345168897407856209066023772758287164532009119666489423846112844613351587267183251953036084105718246898492243075842186990644613438090830036837242449802315095763239392837082751757772073697906498021979080705879917938684562097290087220310172333556136830568353593374148551869659786968610394525875181846736052129820537316387489610572420245425068470271737707021750206428666481129800095625099018147922311017889819094705139757450272802507946904563766651856419121120451501944334622023669312912867717090118325474168146128719451663204263088649278943836087796297182597437592525941131295412622383330946744233073745189949068374589893111891261856690289056224515993408827026799252099043794674435750569406891964001861448953234393186131476438068566661169842627942322936621816484335633734710384876991681770478484897258566671494664227363639951558618761202996744221344828694922957946362859763365307016197721435637012032253629009207032491840996931813601377573421675433525501254117924439438945760109475648338012891969466357007309207315674064334022711629054691524307937079464479162093156915044336047604372725256625956383453356552867168088620301483317577790334417801429781983522353687120735425357019070181206281803258912094023404888483184030257557830968103988189690380802473489167632243547192562501893958604138631715162808813384645031445667877828694932491878286314884416521228414539817948421237857034594628388511378030742502139568394479943923744493410709918190125485777753558980041530668892206824185444464536976857538937371262102061800381574684271827706420969117839037523349143083535932683348469550877727807510443786392797838327929623421485706929154150679169768257250787045600672082237172978245009696980267386463396913185278764509129616604091167479346280096152166749407198054984052387849568213880983896311362936360261074680524780495901376294828465048335895545425714488619942810324928816557225477005693329293316480774113373497730675749442724024245410420312664502504426903905582913704693326227985757950798327900796594447120376466791957035402061327865718100596002962761413367121495223087884371805533760404828466242554762496646435471490537990191543236447598000003337980334969696988772062754357252084631543593547954185945111009317997475455932174195769780118296408476186676229909458618559896947407339819638864530272622828295025099392543264216994735882027645541009369792803208187346459722219690594008114018327286052686700990262513334046713643643713793281683967283774368233028003092322622548053013555582825053674350140940058873394538263894166376397020970521295755075476221339938084986613095170104409753977747999742044622768849804975165264648156610771819086248049856294906208826806639808420629993174107838392603625455090207519567564544765208322697963386799586366872145478028772836658956306726735955671151172787513131964089764556662287060056458077372878424175117599286026049390908349403010680584336342095909473138308851386944715009100132161490118274846818654551609348790234436851662745824781580269105459784059240503333034186441176904412256304515269717816732196336733098390273129290235867796639401411591929210533141225914143099430092539756931557677169797362772581820948654128697944188321362708865491662080727168002147199242465024800643134056654509423652317819921537640188450011788328426898770542412943905069554541409222422089571077267832873720683196082528310231218144279836297148875339521627530949833391233758878159496597470808860296298485705818536108180324395378821092505903123409162534613875767653724278167032085986699290156244628071534861049347270467060845533387270345699942601019190102674504880745057981880164260189863801722936175596363742809530127659329024362124227737170359576933323621912362843669823749626410382753518966891897423434376773259478130388687922240051586321436897594531878392588715348949675743476737906619785735634345441448088261955543921537988043503166431346795271057088668544946975936676066148671203827730239748441674217663442192022968576844508118057504655194204410103229733165018718916781618125779351962449359935301655283733289886329525330314901633648768220247272007181386240086556208198311518193007409957240565856950370476252053391067513519283105273868369689437300152868454293343042510027230607588411603402144135597996321808614763976363761959276383443506350300187906501599994278550498029541850298396569320271536713170051043804029212694409242479915649992291500279896630879467765150027365480943016886841631502052242560732971989375418482183381719014574975037555079134018527836315351203441937319059418413738542728794909106608252830376797548926983538617583587002867310848287365220275206579014591636218039371475384364136175099713816366475658493638814784118351198882174794745107062495533639996606623080938218094629484100296702826077338495665502598372188272009222081449595840093868348210385055959911865133853978425932621429617390371410584231649751768373334716843952355844653061028529012932278105254738944211742406141716752068576399891439871751950090181494007837784900244211567801047938951631452038455690123810416978928214174658009722615108498817609304201294775053393187943247859800747951529004453170470322897860579182870582602154234520326050773350063947701252168553379306039691266385477821118010802666987425473441561513853885450744528947337063282320382695863359807990512607158533168811900971342819116143289902454684255017285902039119487151147907836171741416079241663492811359349658169117336910980066809286604302084874896796773629815308725420483699743048214871734280677644707529366297401777467502389173590057457302835124965712003016130104449471763588190178355724068814147557469863746220911656735474721975089799638120300296431508608820219797590405500664019121044032873537286707660558131597473353466366183445355754741690327192870595343977496869775801279820692916537634672660629870316106552045607409792274309413398455205531131618459941452999502497679518509248477068360592188502010046070061644064092987462353508614570777116631378618020800251064938142556940536791252909541486047243310740731357156851891681326953921731639959403218895729994915040920047152046484785080077590967043666539104596982755578648213770377402857851643973181103080953186811142137332139610825896912899529994671882309276490361724635012972750316048659541642835627423973211009921185416992264154122862000164994917081306806836577703290409292342212439086407315793055991752870804688075642756291746283203250151632010833570226906548400747435998130562135748077732203455832207464299874363818786663458597260106963345839283970639631223508219783877793035046662338022435628721927430633491519285927424980530848631634293772429923001033058545904456792386332711104577151808664522089262607857656085219565380907231060372117086153546360268975106842179960905740787446423322939612277988094112157891622180561493838387053677092929998551076559684512214975739937249849613776841445012604184881378903519948376804240409086491614445348414329633256642740420271515286089549282647951500028832147599878214530918963343074080954745371156137501451245930038744567918132827252151092449416738293590828694259315717154300806273930550678072701097091444775109380613562267463568170293615654748142926085292684801637188702099888845401644534623207640227481683397154714838283479875993475768804941235413798638254578654180605423869942350442421754514452195492052891902656949434395244193740175779661479571169146094784941320443056855600250915140440861213475858406652830204188843556523681340494480347113983779881920767334408333770377527192707795293382779265319708784463247573817467896656477857345568455795471138317863371806617877691009280790937377647939474649407712580344708658728780626417666549690915117850166130088673817049563369983324514345484820437533435583876058750979923261600381571796486914312136288799740557076160627575659597926750246594583970714534081519487018336627778110117978011757891473420236266070088503064592664250952923760537564630530039356179069189151767704073460000096060299980928292020150583511708426524941296393405599174407904805846120953037971540555182657711753145113932873451319519589286317509265859241512438539160684225428709015736448112961774963384840864450605597758419012597990722071032524591574477754501150629946619531011813316730353359908796662632838915883250712569762803560223279629770986837544597632661101106714979449631786822464437089929471729457733163251717787286309387027654496136356901499617836598834053163444256859105729652741539450465444333036613348815191119514636015578465436325070210763727326169984956826074294969349327626392053323818039190890119524752776196839772427536491724314251356728515043770284005873956475110884525648541322267727203033093192695168627955073528093506705916624849660278374116131486920691368793629914488848715480988735338987259414997874650369941841953979094301110906329882879514445409717186539596857426494785176353595808426954656275025367209799921507602794541044531412698576276469439691569721010931700411437161974400512318427116410620551577382876914412129511034080990679389847666018031192800226824740996066322793154538448529210825877713514441586860389894349197085991388106199404052923836654457881977196946155550362830308838410014293460882844289738664056477090698855390061829064589241255041446663737597876726994893278737081459620770157103586801943765063573915479200460532350822860913873626777692791738034788096622469390289235147680533746797844281734345212844996815686998992680943744696295677034074612728490221179643882258003844900624243489860011565378258205778302988881754989418070404305524181056342563327703257529381953843734092438082412061707203113361217676981605553888993911255640265175439650923558197448669528592754366951898972897761992968161393294506554555414381568289479265075610321912228567693832717332474607804533624050043722234719913986256853764979146395818486622581784666570026078579576058574813017590261469088179447065914224359066029384517712766373902929627871641340788575913320023093420248938384021613039594733086826594098709428140625795651236692972167786053084664438250996847297917257834353167396509496266086676327245029581444902021386496652888376101464842925590336669061848959784202465004360314062868465709258006273694630964330662108906930455545708919193417045482231084191607708120694393318151326366035510311745926681846537229809420093264271025064472893617925986472810948468299964339424997664671436938558327123200396989018885891703224903471429713957617900040062517268881057549892214531360025054473986620014731066044766389916231726534532359784736535535737574101070882015864190288573308055034131099154343187007125946498412111901562550331438646076825939928516649235740810426009715367479565107305676874174622743465860944307567560226998154533721283477958239072378928114977139991032701902720777576318996696208799437887886320931012700940494376148091219518408014648978688423397098603505770808929653073853317596235940752284712505742463935063403104729621279613628558241501596198202138492903109128512243789717317186343055898581847391911512044145935690123822640449112602544691191387428754131831675956199732947630962177922086303304801666956468831027918094056590558759018301721067349229800013057067762514050165816190538108030010606220211235111391110426341056037243645833497562728366007041029285008503875545759828694344687748452388793146817628102763746593430171265785433847659380843757746405628947567340576200006320060053586236493271817215297685230494027915211348667422403917016163932998956751106178649085052134231777969194725190948785017380935751160692300963652759128069915078824326823228368759914266534563195665440640943845229820283449013446315262076315855331352387218040198127106418435975640730508405366526739511145019497394791564243450256322437805511493597646734532178758794023520877849435377873192914767528637946242210841902992076507115395694101141830338869910402924081900288911621219999476569190281219863836078702125554955860135808729550295794914204634329219343622833485207088138721480128400352924028016170851785059193639312120792277901077567665397095016474592322388475905632561167697607291548866899041584892898498700694171464104659672331613569055644731267143290956898817090261905115504162652278997319325293027071947664369426726589558225732634965703384545145043446721609138743843568733592933900010878964613375466011895748536882168159172169429210920017168370772294603239683040606542179296809227713804679577364195843993167951814527111550292095698479750492082529469896619143867983534799592067259417170584630872835856861031140898002478827768902115838123777492805627976025167487657003669246456326505390761327102513122105699645431996648396026034807060017636915298176659192201519190833910027922128391528462271153184671883562053663799645169139786913675985432049880233135318142614202996741909318839136573325354464360372745552496897259142220948619607857667057179472321274259366578402117458675017801907234135437045456050426857132824050753065415244158188020863333383267382252397620457928542193488630935714363486285330649664849197403017173613671929755263800684211517244582207078683386679167348119257097932560674140257309522685968254979733928581226516814808604155533209595735304642908764546903712817101501952193096920999288592832427954914387033826334672334532131013084181193795103905863180256518516088633965964059941437909474022897249642318842894866579392290635954866218520401781517302473232148403262940908096376055105868353937993495105802164279474919211035386712401308621833983452992986275687091178751371901750473655359872355130441432140911095616107648010387165066052093865479541969613015080634388801318791502599420317311927175069286587467104037311374301144251713470526795692215921575223153892825779624576363752449668735882459598660110985136889864515929802110801885417544444925957405696853700748462037746650441206565165120564869306640143079743129387660266699634846673489915880213134560933377415230258255861670213061671167948409232008332580407725484549227493287342200152834451508574292515283469890465519565455063388519426391078954128333627223784128567714416725167925435965219525936938507954001291099857182357485270422968846146279380621041331072761460898769893010541750744830373403508900856120281988290799342129663424147261154271285540004159088695907309932172731060640271953979759139887117725575130745736271238466572467998437562003449314844919726133245392622792906308362284442173143627597061194159374830600847187463256237972547230276291118635794160693707207948969813451143059701592663860913721339799885906757578771480805717355704985913811071298456109000033053833542116251225499226634389799119461674605448292566754410781110507848813164940712604482970310373471860602032717080227841688297989426211729343775653335367535224394932123799073171770535054444425222646792385712034669542775533438496307693230564543918758049602934791997594584846159386633362430232015684914224386422232578735549492993491910549781355740888820922007828574867405677196412888612764368703791735948588252427414120863728570469455444612390046377689465544173854347330564062894232094843717312289519429270592409167371531016852032060768564018164671754394683233983748337053064725149186946982713692646112652231306670065033411591936460852918244911934628013692449683070724732151462746873890771130328861767503044841269396189387109861787600142467516290975743256543161371427214667666654058129034971082982991937008183839167332276818455819819957553809471304666459242652621702495921732003597546118581822919350286114444504946353204343546595269882941072226584064495658524870905696884319740384291258059508341418891557268678434655658894022634175440790834531397658293533831271794966815751589481713454642257467919884908729191665472566054315247868180944851908884311877526182344917035266759743120317969937720052219206074762039068125079955003355220974042875158129813257384714656973479490113284315989828754201291069439487594389178925895479844046211511234987121904156261156610958645332371395821229395842702071915820036453456079028863772347952523826599258502251251560869956847102361153774466017361207698688187339060124971165709123941411628605228054670251396141088615036180287897477892164963389800170230020342691911431556225844819736318066556374476436909297761359601741776911081316518733963935337698449968940034600012346778478963419423388314870007618508638497687031529023953871416495465696637206146777028125692537151581337493378895777311666570616695158489556152215884819671723787877314719707631086568564536927609673250455157288173502280440301796003550972064681637341506643992838374634817752320007915359148225690130467279887660873923973393377422927972308679074643488089623737726030008155415555649454441208612116561712884417136383767441347692646868601474481921534766666602386486010445565030042076897214650076765897088427490719769188935805698915714765262052329264311815147544920170242467283679532303544778387464698353164326700417137355163315794358026598804572309495679568396450011465007120575701662966515066740070181610121213628796198485996290030307118681058336556112464666206622025809523130659099652423505490886245051838135375729340018237280036263765194786696314817989531419869196731258949466491191914862534963475565658156878213657709015042643707496037074834097597790287372267587588144422139771767821578449589560364057208224334351839480335053399274969621682033048910030042400504551475050326992455452051129575323225646589009288037157425156289881368849856722007884967784054102642062855417000278809379873849533909046761220563109813527749774304055395796452393583859702585266174795708819784114221860823472796975216389027084423158534683962237847987272930022461046249785903513208309539822450854464720095805622243064837627965466493825737471813895016604693759903499173671394955240895574042726059597283974707024969658809093628125590483345417176238964201938652830121100699681514933029843348077205678116939205534428698091771463710899378754773938619065642876927446475788583189202918139308932353728216539984861621172051550686130901015109876952666808542180388412388331938104160707517906469750853452638537453080678401067921864024934464261330774688948140446413834671178498995879772054019325220685459477938703848682028927455601188047941073727101475625383430921842720699323356922326408630414610842888165620532045225736827545651096342356863982749272872286041134556584154582908027384101631135736892537679248822282561202054868188964618576443346991719790945241519161269661128982950328984086709331351763639932981591036725858143891756095535479056634998637504073850245027374055373463361116753167076986548098250676955130823059677516540056077532081148338525464730445027428698345506705553720502984044860505437335861747735205487772821755087780222416021106792742034049803852741303607146928304865398192302508554616572407626837426063176891037638636181686193315249488578713096376480625436634839997998776983456794112670892582690373769732509107656949632090676269487973162033773468306878134216754111078234510246305792309196763881415517957116051760440156485230279507189071049659923950114782890536151975564066052657852304228516520938454062667459568332866077432454609133842598821348140805015006244545399943770616821388629820635091171911180015518697051560104324004368936185873612491376972142412699193999366137598281285423331598925255458044152260318779307507715135870318435306691020162625051450319672648199260730578777661429978592764513580390362597911880036643985283912056079281961523700843197310515659257210468900505408942384613025254234802968757927822515879048397555092753879318971061467432639142310179614551793548215441622470574844125570840936009216645470050725045605563208212167033104237662970384169823999484877178037603536498290297289076340333264040457420334730064123402945559998120963874876738518389233602835734489650807008009674251156262049431032062713615448030293817861818707656339630835966385122858334008563098934247704128432730082740765803234179876659259619349232852946811987988349010374776564130604235767786229211749611773907719242349649995369131611316326582103237887427744656161426823565383451116082223932501083884651286108294992867253426791897671876869447085543997637842362543334020348710804858023055465558654950249039042804166581450665217550081817014102150207789110453728531745400398117776486509762495690998180509331950594684053195988374016529080769554493696068314282048509140996489641150342063271261841707346806831194153106980773427515684457676389556572132158550877892103461433664366544298191023853475613257426862293703950547392815241243655747318291058739749569000904303242322406061550443445620656760990591172445240323563145475380701477647817041575858739620043855679004262307663545475832499546809825985878246623200897299229061540883567194256551866060307054075898292916159385398382133310414083034661118271767630169231666873678766604915215354630811040714064070642810970923475708958320101746835375114102826504180154816724712706518699326837397479125905889014185239394815708902895537692115908479007381657053994552035747692693080555237586015539275403786761007700228927894238031593106349178814867180621157273685265097270081929622032819461173125000048495612539290635971233683648618144819439099870804684866618560415694070061435575363569461690422170158157634532668260010704196743290991011712092495982214447430104539569287588772191210652031060409419471811901060490742234457731896722829239557989299467630501932962483573044487161007026264653344349898640948433467806445560722258150521406378516883204204394259132026625020504799419148469486295272671582256140205402112252638221425179882990464756280892487785744942929347692463183730980874745566016693682486656019719543164166110095018563578863402321459681852980897366489825473379045193019738053189336214508726270922529582395271051640203910389728268906460405207023020636186331803009415410299891875791097285068287010377725915216925566056373034288871808181642415789061252337576468507553914079489065482520141348923029835196248428830355900667207368247694462381388664536636836778166773508736423393293320127843503502432436170361366902837754829421100039410894417858392247733435431879150589957693365004702349670530461854983813008146768908590055174094518900359678121744320576698358892838400600531301813700527676491263003785215851867298701278931607038173493806612247591281811494547354913693106118987170740251327332590215901738595358396774270445475093965255670437060943871311664430156209692710915054547744559987408481925532718956517774198056987651325319852748300314327138186553479031045115276733648966758778749942926320274664901173019566106735710672217560175409657024143173062137316158781383667603302016285727986175600330360168133961424389745819531255379030559782027924715639513493478604039065839068409699136322504201604303323054213034729261109513040834392727197016636434982876576208019640519385804935399822795325792594487362493077026283868822085607043389760633882772972548811940372494675972648415362481926437047408950577887241036151684546304348988443493289307015472043743788933204891010217262243691865227958406466292594429722134152559783057634071914404626541293190043489919135746351838858533265546402987133467330632739016116511525906947183822620824055273802976150831602212203322192767235023742006676257547478114676151956486514031761264306797026180812370831651180692932007127045878352754198142203902283546695520580101605713082587606795527869062329638526873690183448145339313932327918873031480448132412663645936994703697975240476784612486265963425937077655177121957563549428718544130122070688769999103899490057907479056540873582481756292179833375994319362066411950169417990388358357836658049802345890970702724912383447676124874351826603399560520092729491305117343256615462941760447452124816741216386279565455925949193568644214420581773100021213662759674426941564803263582082529320637381644929142119810042283126948578852850673564671852200404211343812511288057249539215521290813932313151834768676458591198744220669305645284519781267719163732777966919867090024342933608910183285387435379109214829141513281470112295943925063659491550263195044977585459874214153009932262337727607547701875714445315546618153523515090341449339381762691993318132635348548718831959040463918106995650992121388947172045520542204700104544202342374545732710740375027773760871565916192864212640244954126667674213070598399225766554178088853495538698641086697277765644422492058116040836153765524017132259528172490669351510332601847688457949976411440743200041317191389716525988413447600137336665093044135215496523954610951762188375622119836679376096259328056002294681145787390969876280304921465345721316132015461676975541804975176167263301175853053606293757498241656971433958038517130689324744343729333712981979564732653193654119679912357146639787155711214356194407743890922204052774948890090011207204812272474263290351741607641147021575587876406686063146298852628475785546319420016503315626091265558811997484426368394074417178849206554577209660947953268588760548616330657316120384608248587203550754159777795405168053503222878989411377764733934019164901549867086735106148262941788825042690461471090487979932616527364297835965605281147346035292318404310729412145222550242055161836758486036523882990585195349344052192114720458405087461989287504178948127505932319099917541032087412697561145205879479084383448162232807994267814715462213708445874172448009535436606437864386532682114514202360745351155043002014564741705705039416937769843243285840627138729587228420204494213740464490411162025194646776285107516220482890148021192879229847377504960875397503731626542448824647548820863966074352504464612544807752058800407740080680723816058946774065142090159786698358255197080854709210496286822559187047157852782063375878812999438863261727257955438700781911548179377036401901239901339724059510399546211055254398735194727918428960471747901238753965395176139256234588683852519155250874724009334721582797098000797509285458738398704540209002718515089628398998436500937158802761620697502249306175384008564750800021417679453507555075587122237508624153965717637911991762102638071939591982121392981089796720568407618937261906600883049934306460141168207744152206861855936527624019853127807176926512238705652517489187850963998190130430273073858904781068917229197329190019288770077111173103479152283389756289591079024381584154145278020412019672491761074175010459309390917872604365432915484038508684120689986790569544826013032767935838231801434027762917202027915560487343792763047195279678619572216039378234048005067069637233211989116855525737576740063891254112665270395841144978437085993990533189710376032197649396938967297094987713404042023257843465086463813230602887233085467125329738901425562581492633782349142033970212360658855960223339193780370089233372361905238180927539600048501740555919131587595208421330611010944064788898418978506278269037598017756975536107518785541797203919879555266339637446923906579684004510099766395448073601646123591864077626947508463367544681715726853694590482834655522798282735714394894252561433834373503095998768520601432893838400542755601490350232477914975108343842780911081047662163417412806763516835365172215205612846685021841006807317903005750819268373550027375550490392283016325493546567120844615323050579247466073031165833304213769386599029518834104267419604351261374968147379142596286575597161891696815958254796404185644157827083325589408627884949595678479293257078636911851333310386766214797240295147687211449748450470090629713799684271864597142866972277549323032765854641204443721542302305846880545574728928211263209649016803174458512216572094222491641093661615659303467312707394477101491856506545033342776209049893368415821721268588146425932402067882483270262464907974679565764620579338223613378008450947214454972176117296718137712243624444693678292054338559732049198724593799683486081622115946687307435240366363204128581180395901404921417204551592117714836312690604703889281081830405034498772028683115127122772277201519178419775040603201548648119364274963382008388391374724437871152318206574008547313819196065420142321634428808144264542850349052797389899551641333677691326935319246649106884134656342128404141497992531431952822301692953733568636141071135227254624296359374033945144386949795664755163018397548384929443305064261798601006795153022011106179830140659218861781892497533670967423754128692233922923702421182343207206004555607116600552231751516022270819536702731969135751800356809234302153111069565179755988779490896838848385475743826958801006475570303111895212951740126197570666679578606773191544440640425403528398807776931043896517891368934215499827507332272577252495016244937820900437178855163739866620823792765999521924672279628121716264637456337225425067439030034369721819097414167331428835694305845759180647919396398748172554650032615491270158933761926827004772142603804937234556875618830346274938115408795872946995023307788924817217700262516400940583130466166005730900975845453075932548406641492386675939894446280457473846953642602071093297910885118066352169368077836126499968397720669283488469982593546233376223444817065821148652967014669292502705978676726789438559697302780422582654234292704271609016295702283662239092446672824798036153240528179509518596853731455105217001171559982957174056025586775284210867129686742224210816075709648601177832176878749515498672957863807920394470418247188992481140297226074929784097024397518357414904352682334151442195982664799605735896156519417573865478524702904348898910515767588971236656464377240329729559340356880773921639688797759189153333855529274572627739315942563088772512226594527515074208968542773693920237519952115865991155907467776236234303296021318810469645704329871422731722867617602686213282002616328581255863162063021665666534802966973755075464744645789456750859751633222685993681758830325527638541402248072922742279580444032824781777023927432297908120673064526164565079969429414226860143250442888266828537138855160873721579743170935902002518031517636943418097939366187928688389823478890098258369428152599143449288647236587782718152548322816272613609928287014453423183397928309136456494661646441776537799397571379480319428019656959358909188569709286863757652291387992144894598160133184698186174723216678859161266863143221946365471443796546267610591194499730548316872898824425161725099108694852642937849170543515058901354507372879426201846165878222775749781020484424815739484253588458194008851309910639358092237160110951967447548194191835866864302471773693582537441648363037921949886669604367995228441909937327585415930859829385063555667815848451491300241959525009900319447038501050257543369265831902790172547044021210771439607005164249628857852150873425128074189683027729327361931610733696767841657330120072324501891249825494347911332994422162754778746206598760608234962200285541239191769035648642089302193949925809230806637678899210856065228934459201024061934594320404541623425293390438903790667372083468611113652297952136912865473628107326137790562404736504792800996461862002637720871867321615821072270751604629796076031506257520464434275255184953049772164106016563845368164708482085521908408508919262609905160280956262085583799805414801340406489984293249551585117546674155112936184173677864180352527972863729412425964091328423021311010032042445647727173584125863656760736798884041265015886475412535506628181257620288618278833904694500087680843536908077636867856499160845922867945081330267075379655147353800411743792385098683654491798705738859729957806536989047321832569705558068097942679392013620576051885704706646062187411141506841939049066233511320371691829506269958029405375129160541179292079379899054447436107955973433095757113193521233027868255035383780187683570430319343424920273621200585149637705334487812967536270179348567178832313443490436211233133187305598187174626827866482260319531834726159332758702097317981711618278710895513754680819631659025740579894306331108019084732161050399310987483696565724833120706104289619872034353923054116408082242975359052221396215285795780951430759159440945112543422380758182612259250661595114792098887000075869415630027789418897833556004017891152733857013445893071482244498250461358453951954968387644991144789198797211046976110462300197855361848963306868498992223328069611749116446000724853552323498915978635955862877984099254448777227129096420066873203208971319275524389271755837659847070896606939650719074251529599324900260842080804869893507639867566129255228791247712707600581010931152285912736786156881751088498632392114703266448660809709775092275389409849957732307572104811009428533697640470209626021836574454677472317364475053500387729898364593862099588128177072264757292222083929658446680610710390904955447499210592739271956146604148846358092599953831370152794139671048501352022085111832536428633267150269444790808111011769684756972203699364254361506198505516622437667135887404204412543081964000550521996885247825613809341110911856284291045408580793257014189735724582040422012802282764075871321845105229444249443967632226656374382040403831146170488731337751149678100257073620737565294154204231368488200738441194616470500568843243200268734102381235308477348993211743085312366279328700855189854137935563993054846522277992808688148918409813038842650532697698621913721703712672521855650669032551046677061383867158809290979771419938736931654389050247765631831718368603552716873014269240955527550390241475809262140850043562157202824974638671202885178422660063643852173741106701347680655262222408024804437388969239242324186696072381580759514556229934505218763613492417930675387699863674922717340035730261776642980662632834013176303258225482360037237188193214193122202620045207976019514879109471687101245192624895358043821245377832107506381961707133379960796296589840075352903547845517605449428934686847974461283992090393627931864907817044105486238019778425501239014436457845120118326250518098626457227096461448466402455573213151145721600033898055828142995537915720821605133776009881940945574686859971695396306565154214423143495820501881967102526725287838369499523101832992108354226137268477640744725084244866349585992105664253159510509827308265510722666177312681665035936173084687223419769681947175399600214108419068635247792486429945869847068361349797336942655515434535561938890618568453520076527857834292133178569755746444218023157278600532607288181450673886603016236026429390444604552094436850986207274195919137476142831318380231849923024336798575430798056596751100513360199970889539509494134959493629430555941500686128234440496715490397798170273408597894385965894790617432314186507008622038046998745611923782784175982460977670459746252273311297965207572563634595679900400226332940437824628985305695059259678556984217560128355379672309151123078428612597331145273657208313658070368751832820204648751889103262193961738532118336652108954691464135331006659509738765294158813966792171737654647278448919831640339273509647294985430179591320626366779506126230904600484718648371214985665876077710704150560942000175219953681081150270627973743088338501875926602683724368930004066176087448692854671179421617777164413855155804820331392315242278653258348669522766157864691625567412074839482692732407568645405145728641344278502710441946449336946951339082413640752591170724684254345036190185260265078551633588890477995679812011145183847255301994032635753155787703319041046081627780249494225740974301183071360144988380921531400667135447970208911140625995570068502360362760110459338958260641494078310972441188149692910979613605762012294859674344981876881907137405789051069138838153654094219347278866172420346561932912513389713887372084440092023090269363547810200284830097978269910779401343901990354951477085581547374882318559150115862329931063013397103902058202997147239287907504174135757705059012196408733320730413694824182541155350764502432748459975918392994707268398809261079545507220025641407052481553095382380021773759448415067838616627891070518019237775899923552787699412089780484798101629737866469790995715587024673626793826159898586713749313001480888463451693470016675272172326249505110037120226473768052989587115099772643687618475453429479117273241813855762799525038242061866014451331054819807611525149530221731483245402508117871207684834232349977136299694326215564679145060393650606629246320116180333185968015598357113353253685647188465473124987510821702616151450444003981385167142534851930580975961254792016092127616229249273700101335058170492740934956564615810344318783653362445638756084467101987362914233505664331994628068538075742042864652764692018568431550827281806991606757252413569748967665410809747163072447240001267443354108904227215673555874473231676498815793328890536321681897427568596634507336531689901017676016375542372277192477776581526628642323326017076586491667301113964638758687286225835793834518652964448813087200256533094205358664097497778056635009210115689657139449106710807613775840835986806161205911877950959979831378393813721062640553174665566447864742943444025415458555414946463621721556544191791487012650211413467388788698734305717950410094654904845547886485097196604094311696993989912501737644548495613425653419448186727151985565030278829907209626010924183787216443919978310056682470655822172025430081959888885595464535845061537163521301213166555968965919164488224954139612240436180248673379998061147670990163333192847059890560351970101730176677975146707162338641431347821208696942493518368995991497625072088186253258985480227955787847170318620448860354715357306512192221656434560909596381534714077113666512798686194070054003010612213347610564505962097013499971737367583038914353375798679170563429087326667361698792915844754494434156679704812150790591375600274417489245056376508826439081531498310545222644166020404032128240013961992482343847009630357019354294251039459242001782906592238886595855558078433320422994615227897503608956358655368706977078224514629210910970737813580588726756961074087488494106296730045812042948484784539057944232193569152821664158855960989830015132837692691122144591355475254477432011135417747592578005205813761134293379358417266811606113788872082402986018910486295645173153191117203697390122768752092996080843923218789793158667676306114476082720970532013824789142218195003292586116556358441125704769768770236057724696417936448226654853861156894536257410649832335365559129837710841421179224840871441624023133630961649371671026525307003531401081344072043657637925596610977198867194324582353439707134329919928775517958763856859870909634819956534183963325277922355384848268796549306989902270899146018165467079199234115944723148597268586906795508644459044801060767099347551517654739496460978376704364350099119080348198559614715207109606868538187533656361091048368153295473757959186079007030944580518949197633642390818686530003536134744105686514647655341483951213255290226730456626874173826751062408858467940290983150402915944478337469318295264271635015184801445700757890979507938316258596744130768854813759733057432763361699285317208573841900606088369532546543804232510959273358664383940580782706635054668660902695875307807085827003532944864455029013682071328627372603596235247741016110072430945965059283794527234278589374654047325435009513584912426174713862436449163138820330156508772267626399434090729534251946357827141634624527000336618196537131429489335159948054521450962808586008694645056158860469894436424404579177756797623311637418353563105625359868005242456497982500766849127407262575796851808928603653995270960241477010401935534949015134869633304590437765195134999691128701958055614100418336773252933295215434873802844602992778185021741814723406508109946561360381313454801566424202614560999389599716482594465063048619145229660775616177743866894416498177452849628249718249778052114606988709434123539013544003593240935423056653243705748163262668952894016602609227114428267631147551162700566286091966412046611217673576878349195489329013680718056067243783588973265457859077633644132694681753391098653792365360679876884792535294651291399072267032215733602315349465542885360007901512435343573928365218244318715546816323484527054160142734437977856105825770917833945949620428629926825126582551611410818379355146413940325374733516748624904467537798655072047551085104136715122204746767268527654597546444295421496570759150227243672942548897262916050468611167816193294953096270105896605409024799009120841154034924067206880870827961331267709335297510579882622147782997746081479969948019451780747576439594670742176525344749168715824565186578902212662879470633584083627978974292336638032445625382701803921532809687116982993883457632338686073828187570044986389665451023835587696088855394042003886162665127638076156454566661718101916489212507337380824382942579783189355623870688401398668618190154221802370050604144921938281924982066544554034005090622774218706136818632488049528197727548317357571288161240772331147441429204807295203426536591471423561290558863871533361227693439727263849893199159222140482323578333115269945280231519948570855638899500946884664038888088626890766024587515732460714733008709160205210139796810572767897172464687616530409037769715861279559794231789653844036359693398788688675600614983763384834757679957700283903318217652356007093183081293520110440920950555216796849112784376269300260811319675088903407538760115210948077972555614621012119115814487737919039144423483177868679930667615469404469252993970092974391223452183156205615558907885527731384803742594936077938669139075770417954232239535847931926277246041965377498238081721743743115203677452954582721542132912547413157035871566271146725180688460891136098256170799278112184937486489010063544348778099365068221199883287383713061320287499596020283975294445286680834446767394095061868386796904578775545555482433146839377147763217793080734900128425051759499175912084933169154915416920458782582936137054104938973759201550486495639068606368280914542311202409981609849643612608531451420889640305071569251434088136212516913386376916724204119097250545831927844460752786619614060903817755821404452491317359320132427891661504629523136984478517462388666151646949659152380591434403914307936884115530107571457936991803035734559069693469105049196409904754276086375444753710782047238564762156991177214535719635681424241309373686423348803763563959224060542390528288846336152211908156674111366212733885626593790850047080347308142896942133419622198332534047051876814336150059316129281164440041503936533482173059905046925285214211208712414100029742872275957811218514129370748702803284437669719248997560276104723826973458863669533518143307861119309400557209352461293975051512078630696319694171054866788120569530252194388464406818389586527562860133158090878804161647438283520927060449050445237135850842890435207829418204592106753344930529728884902337261754694826916301323981506705454916887790086890698807160417098584178052739380311793794241346485365781006393182680752931563959464591636152418061429598385888131000875641438538748719792456134095635331548758984846877546005215380952436112791998790244434935223421504268159554810655469984368978188906339012125857162438329609061269356029748362590897619888758689863448085721626016676217230000268391342473468652736065124186667252569297412033879352252239223949765306717455514400253670710899692891798882185182984102340148151694363366748307848252457284956621385693380390622213346636570012274306958028616022247387164721856847432489747496743758575775854239738733978480852968264879321751651267116033459890603445987977452878714971793569134920098111830544650489353868615791034397488947584671403229550029249387294179343301328911471821209935014827703862667397256611463615941775267874673394332404834608487738147197206240971969285561109025422230021735983358655879514924960034587617084425916395821980347737481754950572307511826157876535742219498734545829240612940648624656289605927139948731188446829730803132732321543902905642769281878206690049202029426566802686582228203179373212577078639024607333163213774756445741709441452380603950414174995448540968687748708075081267572781970879129662218319041241786102515379256952257769314720232896210092867826334276804550465072488169151602033131950201308080902307575283504047502061535307207110257198997361375430848126931383660726097399528772340622518513996390260988350140848087507926191258460421203958210988047003205028113390453167953314437807000786318088230803549851155424611083849217002869206929470736916197958983850128556633627409633278271330734326333862496868865140015085462724122238729533425999889197494382817179432550009862549319593225246961228359880229275111713662770702728424271198510305750061159889125899792106707463615946489073002948094299736770978936360301049953390607099546217500183280996385751061303478795054197228018859050712862165532245780541173750645770524358050163088409432311401892566072760109288818868537609601038498302783823820044180128435962777509859228015673247402643496095260042042886023781442237737890486495639238799311961696807681856956415231989569952475061305196055988120808794607385208762472216688088667923009660455161879985677318725964476863409678536276584633973932393532624204325479171188615709184188512978974063101391390945885837621524505397599390289886969810246501236471927648264508464589448087812026884825157054775994873345995305507778983765145521596975365213877944536623760078402845192717960192352745331564171122024767744776082952382927696721438609852044380757074127695610470313500302705715893521765139754046330699512348634427155257579966777465410677091294848305197888540532855026143807976813817207550117955455599042981391343001920927776844526808291272314419096689468455959294742001137594533253621207713991248721071261291055029583155357118691727069493580446399858406166838149934231970544736275477996989520773000695340687135048325569596578521288419935473647307707392120236696917364355737982518759041446699050788504282603471129490179472122719010844691743741710856781503678873304909860073979015890845928828867467644527184580390943757116378014035535314785312121319022922495415258852024892993692474767699620437462634670706968716626817831118833567385872791516951079849069244996928055226040583594173901736659852883098511258364950640532754683361606429827158811744574833245666222585942914644166008883174720537300448622122382252863619483456979838258746352331683058540009324739708109274912482697107778193495478831948104838470490530040925144895837506454069758712353334146606447209824218892066216585113197574084805089808709872438239060822333366300578586360549821499631367171680621292941433773815735306512589310722044882241171248997891261867611826435719325350930072542321483640385429178123911290457344638867411623324517227682953503233195404455833471788321958721429954793658515809213935338830950273158307014970742732300122777367786740620806248624251961917253008573630816592320204101157274778784155543698302502275974701637982282539313753390012088732226904794126458725723895928366365303385174282414497738042362508303420540298600697410024668596007564697421954710317584586331738448925953338197749256268622892168806766587684912012040322223780837192386309003813461652620201997974954595988806486030291440467907033453728921395921774197528300512637588956729857086731086919296090412078981571607751851629739361972765744299694445678723060509218656995005057321147238760313297180017556337775525972961788313856844234040518492503504058068525454860514872893112851681228972232372593680957909491595066402669095081448496401617906022966253649805726189032243284484173659127586045314757375611153401922658608066747719284794776682669056611864451161329368796714979197546247066752729966330295686499284778307427421831887501219147146643585738840705350399845050652768159308998995070516107757236549255612547505667485895749444917505136966857432487573386594181605430287111104344952696859513831652567997368456814833064191367716416500186113629996500301947455569386452295081682662930899041998876743595699625093659918109802098087679270218052846627194513208199455802481246243557863925208955356832053545219058326026291644001406328447782226678921020536737809612643514490369198521242025511463207769364700790303329329523469285510428893455994148237261492873575283123020573744759569319361176453138899968621936317918419826402611547443517575131990536019238699074306639148277594227737301678550342829669236386917360861981603056469994818172946375485262880093988670327926225375332698789870608447215197530708568973330671778862647350043152593593798015460430803198594941301322350350965076246693785336100660152497812074112120190323590444749551560726654928687809446759817126504212853350684329034777089106350258707190204934728893539675799414262027811706891290679909098067096937098973300943094603763583517762663212145323065331455508887744038661591746543802217587251563462121340768410044844811450138076377859397155356017498755566030796972290731218843280221405322773176542681696850864579202097760140835235306183996015098500886992007351477614407890112884332415042762074927750923227916851769744557318084885197658859688491171477203190125083436562243661217162340082830354546293436731297750347161109643113692819688815853212470117571764811890951444248156061960982804083700642122611780981678713178592767623949519056943075211460812233958701189092526639380481641162025784602555560099462995985596338459386912876224402956854323882861773040987702254595483197830104261800771153662099075537341614030410257215183696707806377356762610929495987587359790093834324144688051984906602551424510768577269023190583577736650882467902917275189702181488722738250640644760580918616141440567224151985899989489944147312755959895388879637676205585643418774689043083865854413585549867106552976928236687992371856549761827895537147805831814672101333793836642846792898772236195495658503387347556846377515498705983521624656692661547998818782821219137449999958337581129348876392922407145358613404234046951824829436056157037211535429446084160804358728386945116511587598060050558322938136385787833004425746440122722059722584615595161310383218690881077020858401369113429925679143534090625633123090508737687544845409198154600554466693015365537047285672130034007880284550589396425243833650375909294589717220936554772221968446980066934532191043770222275273652104784012590037173141952459906945715318757572081940378931502198644484752501058815099200212208646574880707574973005705402381770673705714710594833682546694383829733103938620217692960189799854779704758491471846967574940280456722550960385655259454908369119234415352155570793957296169831836917008445289910403200447858618844773915822024133566505518418326347061327017220020018802212495174852081612819071435805052935015718301268464751572161437070828477957018890805376336854420507500154356579627496605967829873974415171074455357448696667510898431048074092380564457653208491946959483513944772780300303335034287304334743188101830697942407220326775928456997686984988718707843977009558831027327965686883503449191688495297523531974044694042533716205736037077384736826298471964219727644789153693500025510424260191568701765007262681782824643830975654208412544875689279417366205788121088118476012355869995270474883069142038047180758229044076037609983723793209106564509225190270029508049841946529879615572678532874707672022323496899713096511623550356123587655665049304033381763876668801891891934336166839119585720792195759584788807311707766865025039641134783240069200743763422804853630638160467398799661916002161596922427673765619032291202592499126816732666710938956911820025768926720560418328171245664871656593430759070075208649387669512968813373372737187399136827470720660925059829081173297552022185749823346234019337059511846162518657758381856409672612827845665413578297662659935506494617209240131051436172043926701343531028872719074357322273885084283143011581139595957073407405171620625201090143491223391381714952066866090871908306961190527834012436057296730566327970695466241786506162620063703613173550623736633588086123081046569128574899872587222578995488577382102023749248321863993617264660145027143443440792199881661681138334718215823734666579854426622926544554471575489213157579429656009816655212795366153154189064275905890290860439266302474804659488285903811156913106964083140589141730868381014362042923596202423470766945067389831108462935177165638429640877099863003472450032815190587880475424025378321056560473503208305518403038125129921912151151660812122651745463634346045237837615720376295793217916875313049517095617945281779977760863425853535524677421869635693752894738164196437722204930340333905107925979424282604873160080332375476539460256521151352765503145980100271730315072479937278011768392519421196973522266769760857778617277144909708862216903602176073811236015601674026115578156495748603486239377595560460921796645217746690427536681618223993047709033293114707950625288615768208158281576966893724919382094777711151555999278438539743318231539498983882638171595819828887192409927909486285544163401871354514615994471933934403947448108598418919138573358740932723364436902923079120680260706627682885044135975730381381996386216600860977178723838644329321334627959953144643754761409493444469231579106410529618460563799703676858767067583954000271075787774604357173747602813176949673307873049191512826888042235668688648705352987065000212361567724641851124328699160949614891462696400757006111626160898035661217487556416255437909076766456412434035890031871078830890278821686794037771797249749974185833904847540100252590800915689524387269430858464211667364155376944196080336881916845730581184192079716004313730843053950450648332776922356994258972635316648370594975723353770776218580847795823885576377204350573384049636091396734779598693499113827036760792504828087762048580792543200995933219461051857423022472862562530306306822651768299183537423675874921705291783996027664366366403017643414248428375149145883498693381060242859851577577474593159733574927006223855303190015566293650276598691601273477128487037456843818236389774530016739338608856294234873209782078893900884794022179967294821812303755100456533979034210978289008690498163279213005005199199863861951055830073026550398861227429879503591645831031685590019640636036817261245628980044609607225252686050779668630550995977615634762737154672293588440622277266367869093893817499935889150427332672583550334362951336631527194444895783063023656158759910539842216615372011480053244373476551777191494451064756481908219592773847080284540540060854675650612626590122726728195045805273901894446943389762806931005697082018327048068836662285516830748858833002900464408221083113722744216729158208325956533691561544790241586466052998476115797981430517383342148776807247209123329450908762030227042866011913604229963167639768087968607469156334437094871855900578625117963734426078007019247395975698175388417586922205913166886834853519050443646004433089294960501101640027693997474216471786102323475312330811313755022791792260773590720652776310901660919072812155007819475667653208685782868931375526813260965018371798541157791323345299109483054525931365231102155307148478127842711337077050946096014185911992157769452438809482492271925026461554847736370958500463757607780635077176046634423840054648103672156475488940010421977838268123923691788206042105918725732650410947817755906425351537887024601486965663294279688590983727321200079621839140775418204571820620661053153398192670414772584993015520342276778307263254336591046596951173277731414273414306616438337862333387957261597121353361063951344226690623617595929379875139018985296956426232099376485923104775374015883959242201340994501195055193903945323156574671365261794255740917178993755751546042834161888401343927128145345944780846603190998773788266559586621138421978018633200368822639431162078628100573063995804502713907943142714941711660432711028598237150112824771384268230343273778628269520423254112704725565971335748380306701815803003689139030207966124111870075086558043788995016099312191790023031748181567606519095625328310140084355320586831549919490577564646775075695021640436926392949375243968155244271912279410555833200000335388665420085283820083842424438514315324608186071409631616027794490496872276040731547915394205279386323213706669223366183999317917853869323237543619513057346526742534518609829722015026257719014218396238750125949548987453327248322825829120068980692697418134250140851528792611352705583917329983851481067832856971926316502572798009705331407210202615009202586264911875723188293440396128745031868632047208480193832850553736551707613334451619400614070769786160131968001109812045772745229764069937893200165467214275855291839576534962218168416208194555806531255228796442626411294531483740281490997697067712649852211108320003443618703830063015356567623320832012756884704122104821686816267771565393595368488026820823670553034082265509167420741835470130318864340014280990833989897839418176793450923083227519585974381184187569738390282706968957587532497551784389760527000071647496590342484554787490514129246273938806436087744010915926854697836324788270979357475640705234292306176025337622997258109079326915309229531264249439532466856801954765449501591241285417109615873477975347174393109689043781864638364383775131036358375028576585547725086479299357801698621185859267136172592706638248671539280930164536713424929475512485724023303049331058730708962801082365674350851902318676898038271797997517996993233905802659704523782926004002519194103721115634447415337119742360793900455115561538507158401952109696643215991971370512947842074790049969187516614148577360392665429979349995020911868824036327448306610115765125826427537360301947322496592088834994298876849406427795153562204927361626885548979020743541587183011629082529582187100688582508699497785328754916861703663649279750244924276422444203682030155074798619707718355376539615638538859787312414285233918686788143696804507060625084053306876380716872133579368977253550630393623635655506750340446880087576453503738482097898599737428052012567052750742538287632245191381237765318959606786323013083485352321418501064577065394400855866856469639589622472276815163383946795940622847682060834988542657005813715439665949168613514703009047720906183454850109678782580374985856868639104298276700393480140714851137373802376645100466478438326791958685646759573214008278761088018733628024696206984051272105621978802346283468733216999385671584285637103738588298052724838085384097812779854296236111980383955935757128079942576608072746613704447011320856699814766678171017926553284575870173194297430769099823741679616485077629743231170381866087408741832854367684577370171533868799245213722775241885868146417993330247872519171051789041699055992434678270991729109526371798152957534016376875391492529870702778720058205315742556123346333760233162577695285186452038348843844524067002692412151248830957977113014820090313621752094598161953196832985881524851401625259341795996024763782063927458506094106183108289106698768777811766439199099736052769690194512289872437937655629649125485588535716624834791740810753325854917348064121605250157770779952662078613873091361336539293543376548938135145641620339907898423037852778247929916384126803523377043255433438927933910927842218616077534557836752625746492984214433604579159302400916419773649579980752388491527619005599117857654706405086296360752231662519104202164275336724952939667508078354549396727731145381784702739800574690534307333257820494600159476898334761320623526510126004224324530501854169259211947263497242075903247628299164516660567404887605699339144807470171894351019852702283573323040576088984644400178545887520596658029967815807166444622102530356727301564285506881117764556409093633550206164404087560434192032579952438344948119215023706452384911671393997686283201023707643492505665437162777713851695565820784762390582319118606513217440334679717994812959430205443084451970210877760574346311419154632203344884893676146853435997986555493493073027982954144693034946295288699678120745845766192003214845758758729639862810506125141181548749229888403830918204108210179653235746981122657848325660374856004734204440614901908843730287643061087172911892224688324674835511564272774240512058648190214979394028028418470847510212188866874073519473086669567198994572296659736177637697851228095838722682421679728047575283578027066090890680362951158699073371071141233387219267872695995598853696775476122615607521423108522192541329491465679199048983913271051800713755990825364535030135746635525558652130488677647779936729407648661659082489434235801366315155237940535016281914933316893594697427140041629116577274092390235482005127662299738691369397318908012067472670723803662165674138814955265941914724163982254799161930837230665620566820051991130407363744043180831195183112425156755582595210212687604893105037506614427658148824335205257039235357290315505970044183061601428104734136322645536291542478607313967481601341886610385822562784191475262720825060085053598151980066088731521348393360864295651224401081306010097198623374884425990538760478913456151462465499578447387557073931870214042629108280243023341918887918596309991067639226635397211707120054175998434669430389005855081938868446001166240349814986976349637716944965280672212986603337862581603271961532087607345370847118417628101516426607537980747076966369530101595548796910650055076088704845906953155812258124207817435410124155392442989358405525997360070153067232265296284084050902424487333986429285246846723167442735398392361421103470188584195144270914596280419535539444187710845601377904414108752436229076952179677994592673436566187731257907452798744732893313267867206987747766873530367602951551257645941426435324162891023136057611450128640577591031928812012290891796432730941753432388366359946146007476260583502358306859113642471243835376569465830951437941984113165747408101247735935203251018767503905314387611355331996942786602120551623807358226756539134546748557781682101119722503418369013150730546208295970114168037044856931957611074992956248878798721463983514639041563669301318539805297428727201736358290415798141387857867179278351001903694072182993054129210534425466030143417896985636621263393198353158209546289497113812845120940730236793092745883902208490863673295682559725181977705907598185578005687082657937576245541354893535704880636654924382097186730489399551717702427442439356290494806961014588730200082175688499155891181119548551175325193721702336815929705871690075515420489200331330083095644760740085821480213136916759446595006109791523047146626409170185737812659957116048805102158008903927563010422091611465156901825007055679335474839317155860043685034471113619681335996571186400139568474545980836938200081519716911116981370266886467951415294432945500858278617363709793926921852563228888310760806083314199620753538091428748810191411263036319242773535831387447590751228442581626757097617454632639281962386479487240721327388097549872479385939545260614877324494381720688872771055516662743942786542336366087940847063672506784398955674998181428847028641497044195819450844578101012942352464001505766757833167462881606852108986977036687938550660675402688821318385972851750986883095775706012571411434765221690884704545165848639698688174992916007759586664711917629724343870526443593880505316490991581688445703423063293936551423943770330500951126622340928514251802355514343958112051857575285940052113320333129484589246793104261201189906046806945710195833358709695710055136341143782992065957366294048590063981174197236880073130129246528966440761838948265168250535990965632156758664003234155760996857745330875271857100910954039227977766458367745888101307589976637194601692207908854336844302478575284104807375690290856217232432497738186249795880024823742466376916873328587503139612508969130890885292764344587809963668052835690018747525548288903492476247601468351139761774881737014703381353546633561088398406932636491871870612687384735954644489365493331751991812235679160578337955778217930460395547514184419888572532993258379465035389385551669387122750552404793328932236681930929263575817369125714031491688739891711903067385587331278268939606490585835314849247087871223711872718435346336412862471970597512118475896189205341631612277538108398396385792747988720196952215094089043371066999824484125378328514957849390768278340318872683274205336758133725771877011780090182321290105267953958689704354228773804444688760588037766287097360986357086998760388008930101900682274246533088112803736647921376860297826114397092290861793052845926709150018115098012176732497687273190225364935467392297468211474666731075142083663743257654453109784990904850296597146043395235308883399620944996930838456873175172005028975908580192286719147194480293689131967025250485742045035986794316723123030316636804207988632527767320307774799952001429227919145303911684769218224133784079035490232400728981143880559581408306722324777276654807458654602030448305397657984396735706888549567385440730592280983113491716359177807972942649218483446608539211851187937228648954614783556052788889285507763421793086206085686159519122627771497603020836206922950839941592642737706307944033497531003502906777525682473852460290083678450690220708660449482008273486537628688510982485431767860339909186525173901684730475143657949525869667439503625123724802338529107987945467102424696656887120964244074836664485920993955185076292493281017789527418836908515380341577520996638813012433618939466158641761574333331377963825899269073464324761122624769822732605031593089819728995468934463446569757089425536184530253963044068226884741664716338173021602684308060063936381552326721843509766926758408026357603259491487589031576947529118159215381654673771418104081372261700228965179161703785177982389166510673792982423778142363290372761169363069157168969417525161984352653285469192323372305463162869526729363604548887085988385473039289340948004788769402139196961819664987978832940217483804427051406159811304306059205385420356938274431947374237938553393182505873316540355726981428246486468807367300499120241366294633718799800189410778923798866689042857510314027247769627919495809585310702269541993998349787892897948567909258715079740387478111189756099637633771065815980033730458836754887767735935269886882100235044005520166783064721899121335848667535264119011581721266505430132521101769137409051997219676460142736861335274840614121836824780135250016138812217181255971885621014252788030289587087323194519133416447334918158379847495023343072186449900529586125842612140384781117693221849771744570295299945565819431018242664065519398732022432831894575159063538570070312388262874437853530924088948166907402177167199832529524902807674164280056268573837357121103211785538909343983098278914950797599718508205861110910510198163644880942925535559057979172130135977269373651077002947282160012877447077886806207597409736667683750963038325255852211188680971537308468291911110828934167424253706384518929749889536319733161995143195337409057868330571382686628313697189307444811623774500073293293928883811404905175450735812515177469132682869803423030657412579957600360899161084009918654677642989718026498068989038828933751864545415916056885720761992226787212664538940619932380581319787319863528372883796193308691869614797625106144174431454294716286451610999508798260315131449060852812763710727762656310236845012695861691987921413865056340915652017436911982791261690655126271870853401593947540068141881830659885755742363770732552377193472974208914069263663518428479739536265541537227014254000058675316100441018625769110027666033517837386444078979282338346489282385798270542850689670763665324703831999212230868993371123384547044596686286578183864981398992376677003576242470483218883286013821898909436980621329343045909461082240021178928111563501162907872437231942598065952604645991926675526382886540479503199417207285753242636686065839035321886567010955959285242271394972231040508073636463907927645575206233023567499470643626332465496025394862681727285964134670722849149166033977240263745992169087632051720025365140622550087459731240620328525555099104785756401009902336916912587750371036221479990068332308837723969202236106305121394258822087793152403389135050354647803840871044405901673932836598180976300048197718736254492378163147063486371577151304165882255563446367195179483557963567204427425413874398858671875310910564925314350571938831796511024422902377392929475925756420984028462806852996975448862431338829449284175821564102603879023718716748182319879465112634112675711892214713841856775966509444859352926599166349855372610620989911821017268722540560553344120395012877186012885257022688158609946369954857915598151485210286705954903765921764482732328050068364881589194529035622619294389675357947532591231682691753979677781889734064826680035482596553439570993395254099011126061154051384601645419516206234278902798448555886530901481973066348065814178734110776742274890296840516626133138172953930565066887416156284504172524254435181547918431554490613747004803101757975329369800030271166769331556822321353668588727321117739921532141732665471026787873696858153789270043155384095942685900163453699474953236261599432219725011160635651277460343790276618354814663919647987140788584292905160361454797172539077001788264312434473283129373392659735864951665914012817235132796975692089940118847133603589542636166128733552268484304437401732339060810474545789500001058050979477384546062642214352015462251331997509572938963716545954439314979835890715739190585212378461065911075066725199208720119126432819246709191814839393727994268475040259107263953681156133809141522567364499209976254159822234147273392740709924639817548438089350118128389450415881215399949629938479159462444840379871133007668963938914553965027606060524795029566772362669954643408563638829492421337096928403217536474415096301326325776946842956534296194035241857928531728608010968520274016519616271234046017342737941475233087187855688572825612508007700359782789410359498025021324236392386507052360887102608147523602065709746207418960111151630684305214655811071990769110296837758765203172015649614675075781295188144208941770496051419519841556409063337944217886373159216953183284108285840959198881501085452365017112834457434386124917376088382406352375831394761851007729706154283024581008167971996753544903246126618070257159197550481528435816045780158372217327369498743135785902343722608498507843291515892171520200421023012445454550991451096210629363247773819991155744106750548607630356646367428608168574089066900168327038326654121085102059189376304494148779088769031045803709733621610079659321144001058896133809598335700088118308004770594736342756900163791341088293102304704310488282450439067093612467085022006733494814779409316112439782248825334979006154349820014350888948116667406895813628465190568940727195967603942426554568193612555631847643796603490589862996782466250969558005206765010123180291400991408377380395291991058712292352102454034595103589250344701897131217508160431786328867830245790879506343919134497577016806071626994073716665756251201843132398428428072714324164568536298413868775631759105158253170699063963113384756443707257831430685529040131771242180372552878041481457348398723683863511471318206559257819568674271286522243553199066919759228238875456882467645529658910745574586882733366998701980445354944933745261480753615805033242569534777921899822574738654484958079332551194820509001147810432365655832304704228998303214079686421224140353067241308446663617942981565669153948462538751248013465575190035659316113093327134920677898861408899909072751030357160210133221973842799735232690417270321956376841244441851481261504026792396603873093553490529245697937233683748635357580972097266327301645813594038459359994421037183698627286915965795675114958714549537403958643459264348239076100314969086428675813698670159031025985283112052921189425341483944098396359228791188304350397628217719527212577356646567958051948145322337946830872807752366287417196910970335166013518825635919208116004375970142042311383141476462831497715003434735880405109562595443297584435319436376140691107156453214174535815088371277645075206333066504726103931403088148088541030072272307799238380625631853508209328364378620539836101861764271653421849762010120987383468521267578555360671576094320348423064977493838610508365718490486197561564588634224754931277234380475413693058257305409168463224517748246847722369566603305434846069766899532285478211817997565963794840875141174528401578256978639516593759002101435097018646914287969904571621436604209138132020569967232296096932720904110452968056153854442163942046318810641780851635173880730568274219329412319302852566730734366844242544234677954401714233640198973418374080063077636166360716247053448349590390974013895138550976084724620828647481313519463776629507966281376342937738476474845921602505236933588440299138047950350743007419413068824682335031809320379999704976687679247293443018701829716930143063382667862229097345802183625197796173044568360270476649457100795990374131398420418336259650847203709176679869982205695212500214218848403739163670084843979454145857079021520692277350357349200134927200180219229834509558510570416648567503455808537930188868101084596541363501765637950298424980470613204153049929172316096467532959200897415744991091559949651055471442550434207686709140006282024610686618809319106542858571442281103388224288571050001199283321416024684097231462185514071687197445333551992584776309765594221080346538616377603225963037646101335300362507849430746830566607456090833100644512123114316971553519276734085896668149180262250693332782984981622410084204384834923067595970447444696669027968113510258484187518774949214885283759450870603502276027847076899648776559423139876254665081586298813381899369439331572771616396233590842013551237904313828198644251905801033882054503863429227146971340138020075517809042353340851012144727337998442708021881689061605379222595326519222516858386684115216152166083494065437051374795433777257816063309092821848409783362242754241450762139063794977229500088470320350033995836105636051632999133598655034348808382371371094300954241613736189932485323459328810622900038113351561649472928681508079090266445045460697242754728175652791140792855196972710762083216356430807111821085937702465632160821957362334428481378546699580235906515393624703967924887309773449894109293687236329154745173650491219792452521565568838666130435991143166075508139672096022580491239630663759150518355469758710186200999156658557522997472404705185145487114615383839648629034720625181412355048660772775014189201231550992301042705351203437259170698149541434121098201403963213502235261073867194687685707787535450384072896673780604094025366860581708144873943958705836690549482251908878150929084331335979357220872398160869383716947020959342523781973418948741866199737398796213359824435467322748214789559928460033188826723894291082932618964270369247179545708433700007856338822806744261845307606192625943331676765807256396821263076768661498047018034504024072561735426127668264512397876851232833604847687987119456194177239279449781304727629393252456995957319906753376397458946178486010287399856166248028007764884618181446146558067575274083294735225256724623089465884423086309321601529845297440994937047503961583132479411186784397584609316696059867522425789306664812498736287150219960778014405336964835837270665483551918458230139071647731316487415668201434837106594416890881654372279392795208419219796634989949656506830865236606259415263707177048097109334313488691958798072012656160602326985353709589361205531327462478019658770894148702771585213452477060173264194623219810370063864207930467261894703574798026687444198933580660425923045756682375132056538416379307694677742314580661273197133843642786806606127855155869650027102238972780067706916097182692729326082579728266602847046123883077505699129065719360780357058585792510170982039870612115890402738523839295274872008261164504074517773941476747989225487914960848188780334568928362405087472181994995469359482092619611813956574767273249384175555631875734336437505670238171744084567426553617911670953098790248786328365472765265179943088573603684133854167186335096352665100642462589057847621238687447248109709667018308243842782698603721992041756447419487952535033208496993323040484230637624307949828822436629278500379767771900242680395406853170966335888355005051072647084847019474305303512508268046920841193491036369606636930976465606464668771153437919269929813934465466821404003942774420935845185897098458861628875781251263687972430070041859121905150318215735662120901035435526784813295974659696189592985510977583659915836415066452038822565143522231279525152943414029211829419760361320906709366066272472529186974894608882949387140408151177963462487649016409278275295975142374365388596443820562406373966950165435718852055056202005836496027691005541772641382518341418805667960261036140897004021875635312311615400576763699414404909904271088158822893149010741581500670412790169315879505479139453662142269434188310654003234760861855106935418327764729043493568324052084531245779235014090738089953005263568410909142881337423970265507498229045823333978341436564893178856909809804351621883043602789829092599324248409640497605697020959852629195430622171473371334576878685624935456325953488655355806981241673335393936868549801953727536929293944266588093279810443114710691844412339028060888951225077280115634246390682816657600634153974932182864200789452599164906102806918714820053588174369603877348120834377154661315943887592252501427262234978948459060025338194582341558667402156964262813978115203762459471325275320900705960087713506716093191894627590406862813984300998817279628274479120777676473870278554277353290139968120384354911368600934851027202136411283680865552580008204046320345605110138690548758982381191683239146779055723772427546414166294129036952265298438195184237968181902964577240782181746217241058061714804341348769967438743684783750655772711000795346255035498920937023574514024534775457667956303552834946065914812271171413533162971103364835029517019562444654344464426424943347284281550246161034538868124891863435279440090607174507744804762193014882005570168450291192378421073254575762310374951244272079485116456120082185137542817692714391252357416348174948387043728536445328500485952961848230945721128063830065703787474297377370583856830018286931660087719093682809551026966270845938497555404087170902523814728216376675114017699719247005804344524964449263724120456672101289851549197558719967965588530266002084633113969860618911627614523736568552207709783334010361463422105078495827689203487128891028433244257838544024402151277884013005700408551912006912585057535232767452103104398866497055786742995809028542300337450409157712038523141794649780172512336202994231660647021325491112933730662917062622311221184863137144522906134497401142626070614281267494179146781284511036542730532019243645063780271203663725943716574595250497129472343357617714701959415872168265376608722896327488639359469272557312763010218852792029270804123864910850349010493736584086422999527423595265099770373394578730500008872573096242029387307145955427992730944679723000727905236018750833590715047805157332139944900209842401194106679794559766730458661897660979925354069128828058772657197233067447996485196351401724015022837390263297670605428028935687272123543520982505294371879070064336853384951278245046295805390439300413849187952323161640080815628120572509389206041006484298794463676908282722016931787290431822151047754871288779831560807322717695145554639371983010779589554236882190958752290725392658635452468741668824011746647564724925529329834989494243755351245756932629871472575694548066236506476135838712874648054446781723320910277363650700484070858994961354839545769718619318258300248559784318280758581855641022572281346931069329757146595182200700054168777194936838844509584709593951802132107569314101813489941878231821865500932171900211515409462739477476666338268329291313613650177062196011589158342785018453030895900290066764560088567558871136566430068901708530128643524593053602413289294829252767313680331330372459303380665089365390311034258063614620544728259548875821426550035167490152346379568228766588492882981654554787385627498015943875868204645685625917270161517010553404119384591189582853506556229699973874328740732287531584588751795695042459987750858819893766854130951941640941446803405590382602999753106236518616072726730282304113609026565533669911322009503919621228784246506507771369865585384542045967790305664040179809100841935185047957118499398702931688431369732996785145937597552190207378195512565526127939488469364051021807657594953087340539925866457792304213518856623382471482918496910665655662467387009908830155683916407842441740326363824069458164436000238843801997511058902982963742446699749746428817380505709014805208804143012206214598818170088678578296857195966330421110059909831179317732934984242987867704143561906037586349534195954169637986848097405995034320620114961306009837748131779602472259239607714051953015087175486412166977941229937917713825607567220033317027043054900706529137746064512852974477611715514290350390476149235395645925719587303746894246655100749440134912965764337165228267224041301028894604660853831304663826402783687123603965789308370251905143314763215009971872182967521331586110465467527646372714371822891595965102821527076102744665007673222146586132360031446615263121569874562741719910119413103650356839968419297427245091709328783513180559312617785184904616627184738996765733512442505222809449693340186080521144528862005071122218197467543709533848569097362000561445201937599672058384258374972808592624607092060741560057095557893009869190272784538869488813055163794774193589519841402287542344379848259597200894977526694773135771899676451140290377455612536294133748145017614904771547136763213442744077938114515724584944134894582959164492573990293316294343025611430817059398019180311711161506164230431278020104888762421043484158646212227193798075217267679388285508519902460586776110094027713192160431555256534843869273213235364465417639465272863715692810878612036625125361490443458958425310282224086401822870462054631115278573099648776600301979502830434076705338100014144514628003351367299407894310725042692974636614664672212399766874751536171484772520161558188861119962793819437896093256154320370116446278767046658833127322537780262450050348261636194169329912621323538252457765844209564446032647189847704026314868275274422027392497262361487493215603628531569709542747958907680518591416898356149628804121301241461836744014279040539539993102107169420563017544665738802731930517602251502122481001956477778616062910832533086120039213100587872792616603299140894761863409949996585607961251357528057267236841492823807148934531788220173798469713418186243005460105213178191229424650649660857905682655319839566560708455080681362938104504032292125907261991942648162586164266383700593119993149666857968003210233719563137565744159096274366325087240764657133196850761264654725574836661563848298991866893779943421854499150530508227212308437923129751590631312379242340169762010627468597200922678855566596870495011547779582673268943450089550405463251226378719759789329811989711916104855938446042964038647334787825534925764830175854475056209133393960672165302493693501653418257191793560267250408472703212387795402883953680280357164384761435978033775080215976113633327471962456565101637812420686697459833197644233535801439732281386708785263632077010910495625562187428485936147988304447450359211539492781579994871218182931382623078753510823271374578144385023048896756729180007394641216207861324932835123788668042327386403315981712286483030206693683433195313169078396588451277615692075612183566267856005457533448832183287837222470756277222456206390790370885712731214619668293204616181211863289161801380755088567335020290291432873991645908981673994584236734985632516190543841237396529289023383724251215166705839396796152592258144850657636819569522921505437757224027727117487487301625368181414981343423817625062538138102081324922399378804788070361568506559639006461382985476370168485315272850771634609887017984681422924978661301695769371758315875875973350525203503453385596843504849504792253149607605541088934177425628194676665930066884537603312524931513343778782990490877367139145324109689469608876879053357504041084837882980317521929211324564163824719123148794804377364505059411079939655720413507722758370417189147694686366787218139038418216860781655088161796816978120659634290092892095815111507657722682947616312621896777414343421800290913076025828238569491802262126592270644593415730167257804055118575695329786546724426852495281083740484839907071913943738304759491584046790500508987459321806010626931317549828212882633885167709525801935164354580670589146505796121056873225441457422554457304721715489461501598151138996972290774626608948287349722280029534430815220467872832766439632900481160756100717553831498098015773609077977588409115496602536160134738853572782152211095759782482842381125768088416460764921074438367989077257089328080776795964147594344320737599484712755882493208184815154679305437322743884110378615907669133129270951171300222626339079755879850028514342753603852944785538918703497027747509163198039943679179113535900003330978375130340293577056598215622701650517445276605546558500022693647513628521425537513301807729375962635175777949644838251939190329167862385414737175540706443885034499385565543473269135718104301410197019625912617489071496803564813769535889604660425092976713747270670424791151012736969566764062709493380622547264848550353897979094202763077663253772392723838823827808010211677292981342613756519125394722887229006424481715206367721560793080921952167876672900165781726397364038767636573856653576122688130802809680841143633118927490771455666817467332482600202854780706782803572412510790890799736467230656788397814344294032201494137354480954396675129574445636034141539797583503816778541993462024063765751629584959597588802435706889930825520369960630217922404097022746316501302445107474428350547596083049087736703164076877686059855915804998855402258046168755392893895789267925031232485905823523147398286599552126391029472892050533262771921692257828922724830747318925932398519348028599171928502783810323205547680106097628090657556331546810270935371507411608699958488627685363834947180616117980806775102341218014615271138222653314261723773691420514840996113052255439283563617459407097448811565847281962533643109808701853927123394668696987970482072419375772225134860866271428818060997174161017073462992158568540406311729010232001290339696840487444915777812950969831057200582994032765201579893060062177267768403979436084739937700267252781695257656165107974238982237909788948087992035894268569491791776245635357329979323987617570511970354405134292115442407484468585446357491415977340012818136909424244101846276847339670755987691647608523848323405592730142947432842370928896448290407754996845628314501272507284105655746289494200647222602702324441652728334141595496916509929106085431879132152186795482929884963773351228911924311615745247273621506968587720778996352714313684850766920052720937012894935750655327637923772288091594131485808997051276383081976369399422553486954450249385040071147066968019146441594587584414520792544213679958508430676698361816084330600774223987978337025774895814041358696236486787166466605692558829714593243526269055915591656229259595204396564549984717166893132057517823332607611629123323228902082667818397287950906836744671437925801042208697101818899655288984805631766516527032802738567035463268915242366170252515289523336385192144189838068074606375761674841508063055748798921309864822846932542283210039445764129511057510269442757950100100776942609357993195016139060153530177210342669880092627420012448842892911361794447923233694884701565294755308536927207605467016424184218669047142385999407418649162563741188947589588807458929584603547992265903269579228247615547549977134186005963343371630584695243563518822396596358283803566189911982843455169514332157566623721606359587901554430186724476835865480833327299738206243407441096425635023090953035278043097686514754752749747292841563323542220446427413883484552094281179053882663137397773898025235748590841039547268995557432065197459896251250990011262104829810713799524873730172530394852834726306737162258413470625870713366562731308264493299436989258967525904345315357439194231119377392409469269676091416133941684329239376147314873237386420108670010350131932040262781266922359102422739114784298249759062145777475129877647164943722862566392468748157816172422116342819261122557990984141622323488008622107385050631972821201747921124255703227380996828542080205034398453976498688175726119045015369756427228275426063686994762356115581685592597003987754587254980915052594965588134738222176747569834619973889122967711259533012031813679736575696138829911051315999831312651535414438077976180394845229271525020323180051646111761368650380679167016316859771858950373439588926317965851229577279576359608183093892481095215463254490097314779060921302307667581788715954602485703596250597916336599608067474798210240858973812160080301751003960275899023845208839669907989741444199548011948683695889665445646806512990931313688652523286624535816360610612262750077058894582923715911964584007444801575692788767200344226940279344861965266492501565375475140181977013906988402455457299640970254525114623877599852762629597058491896178517177575461935523399143316854072262266968572167843064903147315926217574791368707495385871701740131718217331365841018219185581397785084993864893527850977413674248246513568962284882179235469707128719053948913865560929825257465520766746808444913024783533486751613482776816035365470689513992002787630063997447471370803120984052194893032993074074816528287977424652887406795607552601085457384186743478405176612322371528049905352831677004924028925339864110662104253092333145309979632919962153340174954355489471122509133470612855994507282860933372098256351717974892415159375385203135745367526548061845788937061612955861112965170202911565961780901789659068494126666382682620519932569171319470096760156310334589071086682910337369725237075999403692843597169135605845763646302104943205661199098848241285009876811166028312097920418870788985302955106872728212043435582564032542736452467364037537461170620680016629849147515081062248859658440732914401683091273086238339260207713423527658234576180541401893632229806592043760295059288300527892549407390891746542773456699552083227394248529307475314591497755845075242900615818131331421326765819543856346485481995247398106803983120236019511924609389320148370419793607157591922071380659028777572858809191739929236402147740387059786931349940011772674336156199405367568764201349830176021648161267437403952263832416775843684587740053924638715142012326927773254255803308605915565917041853235028441867832637212934669590800210114518660086718212689928175566588438260997791912217145740711490326399150041265008286582591585038918916136431683684890737878088368614684920491560740924206629008340457097993368977325736361231148074710537254774603799457203195807053628996316281919254280482407918416417415831504548701183470518850984595484733714982391935475169391386638315549463902901418557243593398275518067159001208810510418656635134462081384882736823353885344579143343350682467182074364522285965445605113343568960689855181295170485428615738472706397992462543081374330352322724559611404596509460079639274935175360779045254069075313373746163503464469691956900303522717003339026897204009431496982968826310911027468040455040091541906803007654894783965656950675640838889598925820110229708441580173506821286308356196747678755527481644817030069577021267968455348533846347128243907491089624358900015888660757653968116636304319462589781004985147578105518211834681421133054674863047650358545613804030501435560861713461277348521885746053441927220215309819397428858033663516017706866305580243999449498162772909885271082133986302891956516298718472543878622402138519612938439407911694812867116089268593136552708799048092954605540016982819525367107456578323901048942793282270622461122475397225685898859233841208479408209005895487223006107407652716104677548897000142802324489065480787931372614363547201905925896798277122442839412058751186961891822167471287851169165312678571229966354530859383490543675250626076188360315764371930180281290918617242553804566118309768078676080826244900080736652892469748048559726414958487629732329996076841269238352443814849852471974787490558365092577184342269604601763802356324094588017114893191840702089791966003545812486204202002586401342133953016328180876579490608998197844264639656826955013349446774520621864701767945796950659959669166760513152373308974540027606158318481878507232673306369158632803645848445236786323194926376826174914899986055248829804501675672534227759342969998906637690170614035343250365924167770377822272952391519297068881321546255089803538996112811164707714969522381863220729636286281333578991275502676870706421631540235525634941199709856831711002838021398441338413445287046486902248639555184997094071473485542595424205424137117519896606977316838178652317685092047890392314706706929276702226507803567857561583802457280148777671721599691108358011647481477466314227211869878433986390528823724102819186391950024587123827745839734041891387640056387776839135044684460296838083329003249851808007437662378351889644608952827855225907854994993260470810256449268793095138731048313226087583255472099012250406705039652893756793947162463766865541561190523417129873013821979915811266843442777304076338319651586495191084557174073373617591507588171663991794387533128760650579954308986389833795813703538211575563941481038757316981473135146014875965076030191824197609298370272447443744514909630398257490925561440366217922804446774654614298380058073998326743548454420760805358781862184624967040860186742800891373897701359571106974608911729139092471496390206621105850130373673660603357749436388089183898750875358195461359047292499809687821098978873683353386574514361740554203608553405116062443620748293518603465695840776971214085765255884194945167692311120983298935219490120513205120520398074478701164349240827762191466945799883766773333181443931093150626889334195787679476467105966422126499200012279906267255340026749193348285779848826790510508510681762019915616555108367429543793031557121277846551844210286791040058839634486078259622706329680054651617671165329862169698055753130022617202620478617409183617977993785254189337376471219768532437486011077829406185960374337887884920944921459857455511714522366111442377590601111621475780706280563634691275691212274850602599739925727632075790688380243721558235184306718793111086437889580010895945949751265204503174913327308022436473964474115654675315556520076070155185495778432772759713169727891994764612529344802950899646882921583486874524483030623322109202348958520493625799002956642136682202549665630513565408171067194652435081367259349581419804864944389774708241812189231936888334637819243202616182956014827501148111933046662664640184859066088169017734598882189021330240418679574474098069215111014788518829914823953458759231151084749343493114579419629103886422664169877561638321491939467784058164965651866890968876708663454337353105921573645937706394075627758310994959655693281835654344928664351697430859213451434513604643012911630944850510623663062561950057813090431039361603448515577498647588758539382766430404946198242065397547829677185188872258677882206775866722618485617068671751394296742110658416762316615824310819757587974156564050497351439607391203958004559824944947456228247431083622028387053437402503893995574955514624245666652811852212677477513036977643131551297777520409865297488142252426849395008497012982326827731418340469685238984748964101668559217145959890264418053646785734425220418466961951486247006924659045362026993757737871704256162699415728663110929344256394953676191139617494738602485456208852989903620051847080175245841519556772528466740810879234982910985740377535721874317813220658508481398196873984801713045541889304890530113151012044971144379128910315367886002541719549669866922081771996290925402950736887168935172732557931246354430906964607978297309660491821208182308647399490108407685323134622017022926923467133760939165907581987884210184309741160737233170114874863376857233040232162416024919983362528219520606079035726292712099738872546483985257887015231041216335030637184843400001704112246545689949297066638996932882619101479532851083917238661133734473540425122846425186648358006958477064481303319850455159961517891727414121941285550829801467441457351249581654463881568180656294503899137109306760705734004864695696269655769763212366882671953058894239310965543882415458610365193246300145678748098333921834088694948856105972216154577167162759582028453426876936848165897673909922970764228074480717218480503480951106325241483051489312732546894628275462575309054534219808158647800927590510570221632135186392058591589635139185812747753869514159329026162201436299313336507409549409364465001092078060593674313614798063520114128317014488401238924544029227947392903098911030700321991486842946706635456541060592668534695884705665448117645417719719817451563125405660051099839633360491121060326614427549516161521637926713142797026804058778682581488322952138186773281864074798560896018443161279183016841832363655370704005994822805984667664636385630103033996752720682607847821009648222303329712511002519757336111504193303399494351741182126840532014461693069898645999353048971814304636908567201647705436411445000753779355162325108817372386852940193720932546559264196663290692398630425385725227046430553596027242673533887122191360623221438529588102614234643246013602982884659263518933186026397811853507946092693008402020413566335469001874191492827450910900212929440191914372152668595715763224432653804422514954267075993653934668554873678411298953390698175687303426075287806891814117891179242015165930513492307670375415772349857590962465564926240498932975515888628343789940507804994461757260937001816234003395039706376250004102479558100407269251496956827818888219830447363904577617055841732517345502471086162824999353561614723280975856487317418433511715419369548691615191640537233253525393888267200916895471605413754148482219532730459393104135932866611743633663366103203800430673284849811784143475350027363419931136785468472768255959058978427084399454758997740001209437430089651181375684301497406414488997977881009121634529539010851888348275996076384688580192693060516634377652164097697881422598471692921654842334270297774664467788624387797351051024091297661688791160075409256496674631506069826330718601663454212632680479176731217775971507065673348156207404195329050848369736939257646201772175314444414483182539634957887486050654516074311913402208562838130452554021889324086642046739219361070633827962058470750873161454342494497390925916790747829962610294379637182784654206744789405944680622164085444052428944168927173881801656987620548591376989269457144585607658198330176364914362150414743958960080830397376700186052310289077344078943563533790279978977538958317957804434738400973475849707118600060061201005839215504491164273214475928826531381021104941766489502011533744255223697714983104759759876222779057174711251228076281835744596983516642115397472197453732232047241718826658081593808574509799219615441471299589482090013248999899726006465662238399022228421176520887569079995274001963725628801631781876854695547765846621118608367154701179714450986676621497526493141840536820411620811901775188775569021880477920911397897778009123808798485343272158837719981772811695138560388652324797579762014597732573682609872190022878219440993490573166192046618654936253020649051536974780505877238014259367367441233640153490157724574861490270265577751654812461403292397302349585600093862827050275213292879597472224818910935124502599977339779742103264038727224856724536291624104564236610836219534024146640146694508212167142246037377838265644151896393938315941578495259354494565632166171295310900839294381252312095691502849784517792888587436002384417857081637503187684467765429122848263792757693191367457004060675973512449483180470198065487403270934447151332202810860843137966987414685401885425722083529672736341602731791560542060418155792128536355387491205821814578806934027349285735731013736487065500714269651079292328429662022612705984662118004640175415133149773127697469002673439123241527819816492464876737906636322142772529464329104558810605747143807840957384677784261788666021590235701572412135101124379696609468467088400585869956420566905418393266733970464999798289361229565347025319833420029787561044166119117059364964039814467043914065023149093349841760480558963695978928727500708946292321350539459626564106695588069657625979247530631406459516913030223262789744498598426245453029252895158690670210107384725397263295089322071982113398820623274288825790351683182191456051990465338944980715300869888200533252448494110207467756979821334705355888869635504328936852441790085217020092201010856275137415752080895047158929472325394957199882948725401657875644758534912894534409459722148500629334910931732797304578001498382920846978457085720382351109723712844682929301075822131959881030645689328505524955046943766647679416465575547188882356083874990046598009030078533421717874227115057459620747145901815332018289131129299487641773283524287389034477285795548735016045233634545779302750771985756640889116752908780585929597737510429307871856318383608199535785995176019121891454495396984501144551237107978693966670151864639434969411158801976627462045860088724819474120605053450209831927097639401467382550183238625349070836916233600176700642594996114664364409679635328256030689666307473984342136119143029560705671827950477222718310355943000009282703114887528249190753245843748977385928764202333043741652968476994606720868609547346438729744975421842371248322970566830903226581959738491859056344735595637117738285390267965033248922902371513420011531226497337509483863260450118195952327350667344252529301911998300549049485450703702853184715524530833590439295485742861208626702607601695837400674521361655112020532445272248678960153878995954492754345421231464430115647478600710524991211908123836979053696392973217446077274697118005669513352046821145306958869732238616376153305618173071966478047079662598520098374203081552192116097896436281303866831302805858160279073522306956394966088269394226448810965645000906736271371392467367377908362253089849698167402569036287344563674797966643344984877491800386108201581894338598867707307752407710166264936319534317758085625589980961610317301170031754563117109267278203241264857805424652538864555368462853033365955532053490948908214233970078532273451148354502244383350126654285995692110125836121800822994774089126957642082068963422213129553480708960572334110810078908180195107894843981043262956540369922547083607770661325411226657913508246302120139026685243678774191824774490072454231386394297539989800633266696166212738538969121893137825270353319569972161654864563048643383826021926507839092759240337206505556037079044643934467787171573698033505084707089393474584897587565460383148356502806247653333477789693852765947849449820575718150209761824911246734917963837470664064089920096096378884737111216030756050076559247138835835420033899994262738374621124348536681217591550114385929784263656411829151928407286682057324636702971307482311627737971368996057153061574848897040719991510987069484345563268341166845095074060923973524476799448833085411133112619000226023229818973098425938017405462241277209311321214503557721595376641336653500198590281017931259448925527774940865602580749941625926964723721842501045696452224128813959288123131778212133030194395992623891418476307857932509601833895104588740960961359031070911223603054224775117675679378436492776296541327015613815508929203134956220111301830494792992346255716169861208996026679671832846728136981459444237090665597426577010837624308661856386163006103083315212974206454022022551692223301696449964282799468527095806513945716865767660155106750885924661224357535870947099399762358932879590397438747421016073403824990056349468507747380331484174007982067427412682581277522333024261595435877957975381585073248315062861037207482943155821304240099853693479567617492527748901398149096729721714905458413373090063145025660235713126672790962896262849967832422930455302317231981449577375491648238295314407492739394704988285787713904669447936236296829815803019180756926648237127243177986979248443424644865684889924747979458260804680583170510582842531388206679704882692626235328569748353371038672572309897544332946030265405808505807458288114093329706341846788640656392593826801011035621355824893679826802517734181891847813762136922072673057713091150871709381045033699328961040092036379287033741992203138125207526044953481476812334403248149978061537758821329279486519774808133505845418914860926266932449465630424153855333713250182202339666559009525454177551259481426820714349516601802614086103529025565702125982572050573675858587923191658914853392738085170222323005007305769051256788145406025959130290178977208204765517214276090463166123003044681885460711159860912752531700584960783974071427842817073040273300787073003661398307712191748477544414917067076843629299875713424758621319226693953756295625075047400515588017862894044057414325654104327371099125355388027312900510784655256660905947571022806926339997723080759451548374719484031515729455614560044523096976676942168574345481353970897497008968515887205163279308142998522064897195732030567627843439969905503920121995814543595132461570110384078574879841015693327694980042495775005397786056686860136682373799030813209915032256844762622511256726911594571133462353201396322372655662351683560655309331193677154129751400803840182369630751206725359614074453350440348050534994851463671864958246664957962293587158294093018666392007599538395974367764448641257461698470493865852798238105344726344644078015778223420839700692297119585600791120344402201785321510864631157326456472144618261743957175815251013655700776313266841923003161876920502406892152023293357116330623017634502485456967885334970884152540716493963230413026900771946984343270344342138334412961287877958444334427007416789004007627164392884696784802286726791145676887349544038031947429131436718870063638060152096785625587026269024904155104646258572763336573141839324045482382051289488884653575451793237285196806762893570188237688919072970755542569181560686620977180778472770989911182807250153382940889186067929504857670714470052973774555152778220605291497081156972735096863071360059547852979047444061503794347741584383172707150248142356154531567863532551009163577279044060417733231152036579760350413026135966474128996724354423245472270037425920564925323112578201186581477956430314558498906440588672243718937168085904654250616105886491834087512981737044420553797566195243133421551110843741412103498816774504450903574276242693610962289908195955378469021412129013644414005734057744347571490228721060803746297945258769061107572270033732900161680999448194747547973613810455414053127047261206549734141579816395114472226333755237701622727899183363350101970378851881792506018339091298379428093461700615216653243207330911106596788479899985694228406948549276951904940734177180688169801268658371726087249431814031480303993431196084360232536277495293420344712684999967541155191814861881882860153833861589504788922392768762612194246341929550195268058969282954434741135220004267879022541351089131548837860068871035771199042119405329107410630846013969519336722096681802289896013115164120976930823341477328488583062436938681788037054418384101874096844552428313507833803016947346275386272588255469206303684030206772063688733173789133319233377071819159590462656653840982799852429956829220284771000305589679066576678144949893287766035955488639979348139484737173410195217123086529909670686737314751099037677217003599786523765622950739437604847442781802673833825177850523958699954852793679108072770927349997471779530286826799125385355281234830525749822738358787341250363351076784190513481072795317520891628298063357377047621972875685502235260355064184331127825627835679063846728187668817883449962292973461866552161605827666634574013271778037006060628837070195583988908281785131799677219948262027047894636451932961362300036160050274015204300950365104432516310582085026458044301384173141092370980062472763330261434862875649132968271579081411869590263968637274823882637501617633543891107157577955860015132897631690004664757572655769526947896028333044833255576145365649874540907737231757820469936364598324649774621472913433743209187457592202134824124602605577197353029424339021902849247648495687559710944884380916243291107389174768849423102472176230973898581917830714321953857553673015331492780844168489247942405088944288012299475344396301165685480067160083694366573155514844263687103672379674710601495570213179833327450200099013483259822656318834203861692233402359684937420625317281499345121090784371400034234543852276691686391793365889572226138267678791618065716030816769638947489105420959786344436074737940818537914222204455298684271328264357087005772928987794696783249257394250546274162323678867380343809463555987860740079215736346501271944573617683637094664224680794018457738721888586552101676601189947175749125050471405109649885027674152114500454992633030608883945949273550499340261156364130345488810094520638054527558297142109060459577202544667303085485396915984070903549553423487871109061626417380376929737535819700195588599264063378288609729359405969997685767014169107664765601249539526921087598345889130260237879174357732254704805669969839238452687087433098396189380420878616313532541129796395819714286037899309316442518195129820796190841677293059972369476478283052337548530363573633954525424075656940966742612136378543395319254683391459289547582434286404587059522677380641545364810105251745886359485196803742431551165261210660496157431257026850920198449497838665042173147785141958876046372734352051151047424386195940309391735663069213080266807771667266095538308203377436697310646892302921821597144918709826430368812742523899138806906052998988739213419277259233574887545111679672096882776782217860083738531288157467524961460555405761622599901620581924146255439282562420503759119325116946999038955650404951264050639900059287926152949926555902960216775878697624599522844100275850268995380341922598246138083309148511809069277514993517390354753898459400594884421916622187736271165922792530149110699892694439595068446614458323583590205102074191451111846267218535131548918049653307086828514054102613295026843882710666287521960804085490129377539723736998632401580640231666436344580511555677761318642819058080210026457014009533067750601898101668772739243179107710881363534121630748552494776071995757288862672197436559563407316131180993979982970940419513973823363580311765711532578182832350490043315141555342074230759695481264180976682923441931423347659600206418360362413084470006271945452732946986511431071606307658939268632481448521400032361659906488349286764370199176113826499751293569783795127602239964076032288083638306994224356376247456460101968637478715030507638873131796176627127248406318791663097929721917538854583133112769741611624108092536192203756025558627302400119274920939047944556063466741238982493701302768366651936864465170380740082723479673642733586354008843452319632551326587097293146779847872686330070806663054198404307867911422822955888664505451468783624395810695079001299404285573823759225828311221616471552410506479526558840309718399565253425048543347470871534406020595654887641905438514640343815330432673190728774193916946690310553750117388550152842885931381510912793941098216651436398244714176470447726454091216038576418644273612789560243454953916675048941473667146898019292490219418026851259341540354980035549578786823925494494114388875585900477762931258788641412802998055709501705842017142455799552404138448664168977706124838966686405122024745935338152015557903028731460787922120477944148162316418644915769265674668418850231860765986350989476274587445941994074365653382052747030418853677367718251777244927318597725105144354553476650862329010297582368976961979897210364317847960699085343100441032438540997885563422408200943135295098811412826811720869743384842962863427058722500527300252493786388851994060161984697696508507383295071713789765636604668254025779771718418792288570838795898100286164340113650754835024871906843697012996731507471412355304667300029416799299305532509969243605062115705981703172316307245886521584353806938060077728551248107009693670199975736742004490698824424215783720780198711220294730589233595149940940385748055079118722416700214113899331859823283751105016084111000935701504198913188911313443867866735250078652365302013550436292923345287072749469677793110512375742751156669918568028657832904364272177541600353776308339592609682239995451029248537791417242473864732238064983904536518832616370268668695915262283767814390690412784454155963357099247200492360138450044394159193632476799625706071393952122268732362129994376584757824549923890288973701939893423882713633517785097334576020099575900118836575424961159173275570736291239153784465904758760981417537528792671569435366318744982500392013683438526865721716843295622148137221708949549089577640998805151031233719212153405651028424131417002961632026092047139666560796440528728369873281551239235213346837379353039615322524557683983390361011780731043156667175852471817245612723202570216322628682465212096500919394222961986428982618629787283796967632011099174937958273283505941937548363801912501987181896731201661245593459787676410619831656646931624618735601337862000204386529412956167174029123651890110818029335865300663990492038711780614198726464560946772388986390255837228203822264549801467265717960546268361693163126665274854977240264613961431289382401701830399923656454542225380529544124270609766431588304069481836105227233528953055315111217775270167228046278327255712592161605731569640566186884516865653448839760520705816449536083156252499343522395812169059553549702581635233008139825324357902431178532141602917221859458360550184211084924571754710227535849698051066417890081525813450525295062717960199486270268166179491766775449634119775574243040138223848078539088726718535363816198642804115592144629860250046082683840832404159993936647218780602612862708443369250907382927493675016519395173323691752378069360360519062567702782288094533566803381455515957763431002406622080781001652998019323133184405304530095538385865261790162606821513805775225769688621668637590755606201900183863060498718160788168435240887719511031114171796087465648659717033018141937090775446898931070990502146929362259978365774311028842758195553894165844621434108768339629314020355154769715890939014271953870691253664202187285365903087175843391348615569724285868552088949403007615792966876033620052721778098111077892021965048516052021993085350915131162284633624798316058708489039649042123641393209985999883447633807637606722738435047124817683608783804707955627155647443482846568596980378822857860406625341853589526049615668322647673791390596331947049875990731657655585017590614176194939422228130803571434336091326170110437834224485167277035225200824694633504029040111664389430110387293610267426434856289971160431024059536855475434365788376841278254892240378713827519512540362192273988709505154019717928352057879815276822873428305890286445256197682100252945972258108891054845784438060125327452229296429435448750795202264589534610670303653070570849344849589948695485849307917744164116463530715476047654950432030798498062806876035665197868267201245238977444267694711863430810632317615975198541088418231828815994212653018938688526795272475376790816434064380617054250000329804367860634847397069221692926595662728112172884824828963590885411012895032635675148786189857449428102633964184040049333374701595629604944657764094643589997378130032690266618353206668146297082686294703210245337873608272613394218049555382966455884808302393295152743035276426290190523598978462680738325112965625564510041315163108305787089088682130167031338144258558166963727809532048042570629059150418592732172412320243726187536474165368745579200734808528027717631630337617080949289149501095431015761103904508177483864796375310502349061710709036688618014608303019266156127741348592030880452933889287726889227921463577231116751872924096275702302498798586328570420258846677202514698810665996301031901122072879918822172525631082041903369728186430533208297661927574840991673163724041786369664449698677587469506445422129653564345479603615673784975707700853803404494282280035978940949458142987969768814623696051096013395162246528804606706223766660092435379898078507792823300677534620901316610597205636016717542945358810081801733609936482131506326403479053100139292977427943854514598844958567734042755218457895201805486478442296719427890833763351582383253325916459254939221113074820123609783384130569860188717793164754506871959179990065980548904353838228427353811021313007670679015640799489260511661366058948724097067869993218164374690513410290523295041491337886688639515869026032117345966715857648680390846787877424411349713544158815223228361427692926505253555272575411870913136068105956109675857718929555626485342547387720355188758897438133796719050898103513861370080530337961232943842310260664959074485899937765184783457644339095350598098446623575859730885596197602871356454228479113498224947234911574705557239723468137624616132647764554654147784659642904914494672568162417077914285518276977297307885839508764252082275405386946740037205705392491117395013410349254764299029112205643167829215908926563801224072201170849791820594067865356185327258482499611533574264003195121614734236357936196868224995394367900645853658530455138365504620841504710866422531998109817205217018711230111329586346801019182153771065953514283179015344311610669691582501164803985517728315179822981167018492464352027563559105245666123701996423445782504725551464002208374007404461727034296805791733245554260957119530477856805544049574080539201924966205243404248357530071225540195295675465057225813243124198407652411826575765380766430858293076128656912982938833779059825672871798811589824287808552001414487501691187229664638196943558264088222401609113192412799324071028933460358590671791348385938237896702397044790280655446876839433175711731481253678480705190643617800635149214639998387151860194019547279672580140002612681404368931290135743380527861898473660501232524445981769289134261734873229350223810806230006259294174269233083617768739512519102255325076470514778481686399028867400929735967252306673471596631718051180562671832119744231932457693209254490958920389946131922979899670578242941898440422161288987920023875881163227122910953505153056510622803228189103602903465458343539540057493331246881104633588654979649230539700210546406170049031283664927431309081139952681351668917470822089725664081767714101677555250844586738492618504100301883988664141092342618585164182119337607884293201895781820165994093821407634758556728773090304394940776959885554604715476964893743059507052496268870216286865516196961359229068387662049224102279106263190196076841251859053541293450066660704921546824837900334280466839847963150264460050761817355438310321248337797239314879932288001054105030185992114597559108284884157162269379347822442868222489558728465238373163402269411295091026886064270675781154652936736540620885663665147342602896963660920663154719839597821857999087792636447906395132618363438402954266555791789511116023471788574993214646508779907022915176266804375873665969889175106248617832460693456437846945513653570640422834228501229135598899652147252270662293985797312442906064829464634297379173124824219609503355453907811693015612605760359478545404109466455160144833977888805676136655671129195650483767312825886990979959469290738341083061359538944405995117392704218078116105829990483650524848443668184464753895197827497104452699405440374798041819737060618227399522300927648021414088644113089266275135026082003252427089016956140674074881456842009670231019776436520348388656277327270807344196318473406501339347399133791395028235866317003465088970920164158278369447814393235455375457751666027425864145420093122199582851934590444695395209159971300835622666100468923868235242537005846984764810077280866750508149621816946105481511593746106383320666853928538074311912060583030234529986135985012407619376173788342571358591712431819229142001451733882880006357043003662877089897402714361627510173302684145955932969172388066889210160725037797635212979184574507647967667873003172557315054744893082115116375864148735477951324829607286767911679333313561108498946475352553523614185182508577010559744675406686902601339507436996245222224994472774361495523066603367702244726583550469772832908914459250603599944554544911579094618009273040504580449581753262106140886796766645294932007104974255633592045512846449537958625806463120789494763883263757837497591407017772425349473314874320889931542263509209596624645382811837910596908421452834326465213073418903084323977852899740584448135823743340631720532758207431857343993209478510153510106757185170903937826108584525571062916992130752959941904119926340239614893635079143052421825244128369385935611517749626656846428580777859242536541755691479158527978999479525369474624762003245883801225891779655977008627153404056999327938342660573717729421443982311285872248096957208466060150503046869303236459681804405400017867111326819239233489703112134932694123052921587716153192447216219126180611086198829332379953963992634517200548987088155899105964025986184369441660277002327759642387844261177981726904940920891891947048769526264579374255577331184797796365986701937205365627991246911710681927260957157293025234243028930687875558743014473051169473809059355691204756719019575013451972141176935965970718856267095162276196259854696125865353850158946111058100201250176004474329397981500847273553550361902212979425822148614078588583687033707646856570384470209375461227957243788276262173637912916062726994757062194387542307636328833849731499958268928587293011003595908304995737308313686297013782169686187905258717662125399721247231175712078744485578549272965893414849133034683740869829300010077331991071270974831761803124344865705574114083778515413602706869972481917251982020520639455791033945742184474956757312511397434034802401838579482327840104033863232245920734009681715290209459632894000419175101800550684572363279000676709670041713821183907651468396684421788607740972076947242716627128763286606007698982532948332388573360860780738780580544937555565493589849619168656327585503803500688337457604753555426939994339696876212107407969214853373235891065546129588712421375452526099451686939807379059018116457332486471492971281953314033360394052235451898104503165763383415264321169537498013865851349548438188437938535366078190324106568212621423035936806136767779526140870631278724391527539418851320165229684586908142778947922911551556318865085100865401273768366601239934572747158734847055860226390093179388796172600131370310385363303061148268880288359763269717017624601694377879240618509545768590895680748830754244591465709120807341894375296312013807097916680648261722883934736242582575076773270944030965513487881977634532486853460397644945918813983233091115185065699705428105579652478133238461322263047878525345013580336498435068191252895668662351580715156691321870633092872289610846748758153344838022019005548211446272475430466627596883676694014518221459998132838565682731252488032391775645881497055446047687396488585032467626353387372237211829475741666012693694785087229916901006493410402649729361016196439478185287737137958074556253645830738229856640632698555025407104737780254496358694099679858077751305003478957034886149197239440653080242517860043612150600940322958452857126546778732390641365086555190997502866447108000629804667460020770149976163709448025938571997774249049823406821988464506315564885172086782667999669460751298190906937095161879479247295992934932328819035448741473299914168376617927489976568354758376792125664938627346008973564112687392778147781431036499007285993519334945727354371140306743299849008919996943177232960219983177669128840817085062396169936766500640777600736864177709276883030900629730151757070396590233902809005904967806708337048831490534603844126095169706561625724554846516903375964122548621373176888745405020415109212239228488459289341745856302283197877112368617265279710151272553051551997987830981909339125517885247557318860017128193533774531234661355330146391570090281516404990906727416131167791375804548040264521215259191836206514745796583026239442099522486915024529996560744140685564130704922291111366732914470477284570399003917816700978906520975605738280313140743939128749002079193200962508905898925866936677303175983826809753530402763407677214501559816050264983185664959245463293329362820557958066197121206655476695657480314666453415716186868846241935010832175016444909001962651593915512350607830371248256880618893612504370246009651306041579167560575885096478979220288066290138952222957833379894023215718453340392866451833849370809814254006580305634683330638547478728914918317497746926991535200117069194501467662918094198295250919170697025208678712132585051927203485493894998079941270890410045254752882810263521196780642136520138659802905248933486169173441226787556401680084525116792465528485442458579305994314193538816533515444424665942087283754986646628203335752838662241538507251324493812195247692202499582175379607078146559487865856314577997247775424658107013079940185347065495069026359839762185783556386670361072938187176063555730640899406814871419472388457781452612082588424183444448990762248144885367749527214326200486863077623177353797480049677120045765427347338310813125373897301899122675353355280606626774480772889043546428993265680698091747887557171773366005548267195966801952144505386581057232503763321992001727290450729559982588456837371848240601310647322466504714283212461011888222493940762442421335856719888555741853885071901194835541515226443183337419627227494138203719110845339251391632324332930816441387653338204316090298888658299898902647949379347442952537463602926963278514807611371646157563064557736750897456477454581942034220714718393561694049107182931885470035611513103392071626769045535296149231362229682434357009008595152509610109673301433101351665651508181318004418309180613667004294183127128724890005051926692687059871896400765507445648654379902510161288583047490352339164047642055726496791937073184688405603205629718118705777854360536538096423019016959249661221916915190602454892335835512468784239493523483104907845238526884825090898952773369670812687146402237044470592581287568291370726465574224858569606272360605878066552775537565515370878175144464592936274210159395177695275491188787879387538267394184375929495331955297054892384314303265441944383643052676215905918824801698688683895909879337627263975882480364910698440984268426981268779629506998152934862296257688898745107691452507982140008161950550936801944590324468343934655174926226024652918975689318861392815719892209744469678444641544836292930324482015083847419180168937695011392418234574067807117263501624151267961823594003426763681003910182337422508920946160950887937424204741561727597238892817462056462854851375705347475544765653531350843307669673884443955750827720511710866575560052293889590739459081650572366642336671736402105686664180918683799910930811209288820632783251527004328575526586676273970153894044020246387490308462321426008117951462272665151481827097097489532711140346691685330868821116586148338008698666141866578925027491813643021015718755176992890200790872324416186693095173698102963000358119393894122716756360333829274515895144721643412375983224565835701276590434183181103179671600671980989621550965065062296851319568055153312027315010161015869005313292318374643941898397848694622560799468190545234002819216767664395567776492707928657870463179038159723608585282564438273614240784379073517944441068776798408123169913549112567242611998415712380530286948597038885127495817201347885482573265510944760848034107186734775436525022175355500518612545560008955768660106010943098802638902673230373186526549978570520071202673267872817162425419069996647064108975774757608830234813782579790331405957939028654646884193269504836537720103690803459980615873137144710259320736725801329205949810784582508145276254843678882640190380632764335103145469178238597696673218905577673559994748076922546566124367461762787004799052229064267681548941562829485253243977642284013251777446431467659560582581787139929505929365486833184146855533737721832028331370267932223166467940854826795037120280997417279372695389916196221655055732535692661470031732856167654059843365848019777752525346139470345809841431949063145201492764774553242897031294323033231682472824624198204003566982548803635188427458487774988478168048431521562406504099359771232967062240555935130191553433009628190925273099615080746941758517410921430704379128818257932858209470675818335386594169228649404650803315588587280702792354681900581013520860970525604622718494524214594460595363620607730813843092630326675422003568586672781164960341376792943400439865873879668768612959742428899282677945332230108361962180794241363103029906666562049907013448501887054841302250478048570693042695649751963978470375181753831792769733222330054606151522343289522128697672023666590698451502657862363673863514391111537470282683578221630055555609546586245294012591264587052347577989198855542991932252592370686036815481861177662890954989486812757798306968380250693437357992696064379946515683075629416898054508495424383614840003778214969741563470867805378970367281308968930424431677054308819920778403785873454856418751481794792340197643188938436191157329117600260200483917418630602625019095185321343549074702929324246227672995784893733841315723641658614917339888853320806756948810453628517161928132280210496340131678278956059462421397276624079071284765908809762500681382464343629700247805136557045993858824873192686817336456686371021137597307549480620799603810121398263685357900666487024928776707746673523468439463412187136639419989432757278006578412220245029035360797096130236331739874781674397781970804417825162821934843958686004322803934818621596392151755190263915514674799590034765309177788998697332715711264663096419910704012660464494116664867411695538510013682619990422673962029750104546154361839770283695546695216858048240074283630685589514977101010193562881975614068460580840351621623157766979231367611537339715752183020987047933236388284869313764151692588245818054584726985143337156456983641594867956145849761179119248585869302615948064141150332472841393906540030858665894329253645697350096510597733385756716506067667973320961261500677946105508534780806869320907749949388217285165020308615325278548994667133731106544386362528096643671945733081559494404236477202230472822778170293749678555786570186532446000267819118442778817825546960439861862977346077364162498068169489760609175898009258192185097064414085128652321940799848006145486292499246212804612311869196463326169549107734347195950960846463490466841356674070505496571620165687396626566226238464194347102089968346327075486893891392990926841897620497997053202344888786981901440081145637386238336501132188891852483013187825914538623809434510706911030612472702696915130749771126979232904046274804579888815107212550539342385352789196127634719970316061972086279006615363075139334511269718648466325114257853839068547113242002146280253628029936765815757093051325795159472815173395164698029243161438896155463691809325679925335351374912327400318087822166028530626532773597413686967575810212096162014689528349138945286856177190042857231989624718930930623407180682641695257030322680305385994363004314015636803133196618390753909681887696443939284892868507659736407499158409750543569212789830198679403797231525535274983707994602025988659893782363681573710592353736713773632559929949994969564002292937421245508946477890370550049901044481575121600940884845206585501385977738236220763232670999713426970743300645267802357440984460077695469548799784152311229630404448237062608557617002840482504492600502583927995360064258027682792680880909798010676313132970178463687321048497198075787645833512361418920827610664290987677640726288905910041128213831843772729773918231734249725355338477268365015983943107494548109172386851749882689019344676112944770249906103229657281173515898881929865162993481520634366590650080037553985708766792725000496924450744952160783146441798983919520911506129479053575533227084393554334147898612224430061763181027186180081748718123768029904870485305782813713909358637420687136144626511899175172299766428560646413622084448710258680022819764077495618048108100696711150451908113504059822918188959542547740060577703545894027122875968091388604445194577212795810737474883024048969039181356995542859843929473543823113060617976524120826857088756425500405827444593472500662157893407718445533112479539147770987608271040723737097320508086636008519880567587241285310458219575142607298016154103433308570571682599063273209648301316601339662424482491007660814980345163316045456906784850611186780584513543435820982450213817686160179760449705833669794131163852226982378097793628292482885113133942069710533030818205197519703267824443310056877911887959538217132681432740424432305104491499730647967565467012343136402685129132332592286216847850832664384996214367120088988940776008684842924588268717243762718972254847883594481835879018839851108981262935335154770488814976022858117049948278663301908039664350199792968549265482880145747767669754484035358592999338166179696893289190797490373333072697268337425336894607595490648292883926683662533395084138901160718505861557826017314653811437790483246207313948414683925423766134790734063058164256972904516306332414236165078265550563339757863091880751554468457873059326848493210345929133154751545260726569414387475775454580855616042307439182252543818216260928904690067656639507831337940806256546195018168876621151432275295839126701573348157464335794573669744356991750889721264684800552612087434027429585432667042362702838373757867709657935991251330718360740677695409601655582744891267517851966292033610903067375973399182559290841790634628289170697147437328186331095814933701083244275390666934106215026892659939861042492939830331852435596801101499310195745638530543881630809925337857751172676995450473858262841968856741233346198809513617835773807298674649741132290968774177870791701965591249297485659419926010378275228280065648391715359247518796631642759440267378535775489973092016683855481869400179823001311403780824568210163291084334366403627056781686143415165721572883259707410168859032642746319872503483425268151062631165767475129195025354950698966004301926750624284354217663291737712837308199705036856616304206451983100564246914439186489696040724132405618720963847519918629846742838444038376384233003941777971665691893311581263851216788579524980756613015979084042226574642407926919822344469863827070992932920572645667775630949532601849138773138294443770167368039099962897917952720029169707080934241477970890202744542482589945440253096765933293848677916507414974076168659976260434548984888111103810642791447984191915378670206248591237860769548539034223018787151014841747299177939059401502083189974135913871747586907320465817931607857981288776427758929951855082581815355496900530304571341280362910645150635898884408986331527164929420142005592087517528070203674661450822566993226770263604957515412368501595289040354017776853228382871080094384644716059666657655372518444745070600585183222009356662828828645733899852346612516006835243986657997219502806531428644888514531040295822020945522454693702536396025480538681413669612504872371023255313736545229444951149745087690498508982670533725842577135161881988144373782937647605838264174614015329049161601020454211505823610335977410862408204349464695876925262236522620430686892342991884080957912975254719934650837549972229356501485338110277351393937671607442433909910225797019375985861219727671517419945264013845420573173622125283424998786660510096293557416772779315410458155345443458705183174101449074852499886676001754576948042854264391819287535603334403879773069657814202299718807346930742109330721336217560496401514935604647660101143865978685735927486114631480159194388308908155877532960452399668253408176500195914924553036982599629594572264850639495110534016674932603076100909533930458161890750403541680777196053264482379857818484211739539241611944312164356065078385794238937309867185131197442730078818850945269418865597967342126465409099403493629552543075296443202849399764723804119735443434108705548108825143993471586752804105165525844227158891926131759226626920003073188149281282712200362909184573844611734266749450807900645175748794456725665542693061473927679825201904993472769247138815911372654369618687912908754206570505792845561590968912595877506412604638834228144595321685165599416757526353223568851587885710047894982101863358649706620436351566285090658691886467255313429580801834466496700575369199187564182102810369561515915524689383903634659268220403000423913861725005684316166214846684821710312734533383161045508080021627528439874896937381477340923252658599628102137614963939595260640617320181210614876155531396809674609414682637115283379501907395196566440273940728573848493416701506439930872885418537079955875233516499155750558443373661786749581363858385255296057718380398508658919816057282549376037463110441882568959949688328958229391225381650368870698062971907667599246448677291842309509866464700053289145684936481599567608897893532415321634323914150585668539848980924234941323714872421217337035643712342828613098613611380931923228866588287438304938130019201011688756355218167789022107732453430416113233738067620631198791279971066147331672093307586555845715109824153607727757398503615593834273881325357729411731239928241897963046505466472377826873987907672073613348094934900044916082709933529143328236181929528429274129245944020051941440579378534551061340277497984623117783222579942509779820461354967627893171136718444104527519351115138234128711998500545229105274704938947547303262252722986423920494254229949335063925833465404502883065256804645723482692081942895042353274615949335913731429537760391721496770398900507336217496891635765727322417114616291760109260228980051123565389829322464894526764276778556535913012683565852529736045494957480078930173971562997103851830179066763717395786180034994240590960996524094646504335381809471567350963739650017336073366352733587633060648760247589088566542980782256205982735995311367271568763962129360686294282407828428132600426462310471850789118596802346972432151855700224940381606787912860165038760643216796926163435222785076834765128420635542715073610599846818878342946175686721770318968077095601103526192844091054201077033574044781673363395759365595052527383438488482479753425599935876497179510927761397131722783384639152480315700174446524373406412302255304048025427364759476053791506368505716939092295348844881434771059906908671778920599731858125503436801497269718031397702075996652809675750235053603565796507034118283636904951963523992365584949458808146799568931159071677870798148209127766328772607148439101992311027523403820645337847705290211865472218666189123064453560435940668067750475805239637188670616851781508476980859260543983416279666570625398495598485180900042300275507186323807689467776817754894015841961286181393137106054782360446620559088961693380519667096760330385397549389783136700243397944537525168273430001265965014771351791849802319313371139608761074390160073349635705489794329809654386906111805804225320089389810921359546596909656716686611253343207382218588354380128402739851885939099010706179532886989119490582588407682487375957623508616043809588095481149483423571535085794559947727628623240867616976072889393746895983182323090182407284762880757201298751515832374577462878213581144174707668929278129969342919990223341329721304579296223150595377827037681964703737443781637750810476476678811347760656268458676640443745377749485666525259858447129607015710422227685591999427300128179075913263083445113912147416012304596133625475996465834300177775083852344283520615989491403135800279709682784755545908133040754940445186559849103841864734080151339250362059733545276548415195647182837525115906221353890987757045567097925842183134739764662390891071005712686923499006662962113254694984320308238208581970447132658157305281582572242026209906605068102747063786899424372507365781542950644166262137135934198723163049673242169400775214095364336545646863347740435462808993469574732942283474877514366186371233410418881280506749701784666110681829194334414767930246523190120079383332603820059880960286719250099749623648598707357242998371163324369720149889819040669716506854183674197121974290598803558687458677281767263035718449871967435257398386794881195920691094521011547737610698824828842277595954708931539582356203854648044246517945735214745789416395972158421511494498869038967708563207680061762419573036895962454262743805523908044244797805195259734521552186506282895976977183430302625333835746697985563276895659647790111942954632605153389878200086510986324170741993929492167762003304158263479091580337418031594397827148928711052005077623976888918573066821341773035868710793036079839470820889374382111827647636871684667794239278648595642760944344323398261326032092776975266108622837508661460750952723388750201979508014409713507867084855860469321959673041910832921743220070455202682593860228713478349379481070870961079968114146461541684661300723307536223051926831501556025319286757627059431638173684497716176399849867492097337189462833203406718539545480931414277648773238989393332469054945381859352354066181097668994651358567571076821290843551667218659010009502517489749377079769645045413005872124672586834468754531751560499055811334181051762804747382523787522908996500483480729386411885522648682643929114950436236296540265195706478582712878974877677178392065749596007671221952790833614356940321996330896523638520556427337413450718706726476989527325004841071120632518147185760960437178450606536080003005229595535962865127855204473137816931283405056430191281881281141192856199642830737400659264835685372064518796246733385010194426475373101573681857159456599711715412891773492318904114722760264098869524753815768637172057207285889962808618727701686434677006502410233836535570882939027630680094314381457882416478355359035544202281991918965245695692070417185696508226652220689974818534080892312520179821703530304563552932095701692222869038887186272555939762542240513547656434141041767070546504543740743535331579864479271547688578065998808409234619921609601295515271374911514628686566817727760697016090876717610279196012408356315790779281885930693244929803969720026822793328866348274164990796907891154332714268290415046864774301836585839033447955503246288427287527726857265648392580001958505844194276815570823701389292240474652334525837240292922883247696911420531909558874840596781985558432077303973502592625917190041693259149894754236966115394963332480873499381677622850813607824599495343263091845002385207555318304762633325566444648865054936365697996261802372748221980959660788591536543127742031966720707889027251692852389902704878723513575283394668231761307716116561664858078902280384628124480793497793204161983778315367788512286175054748499410761451887778730103221767448501668715221413555373297980909307513921916593945129443480520800288512485554869294509556527018119436204637657726885491041688528322252176497191342467759804449170103997103319846436304470797196211225623811193543924742043769623778830529292375908584073461104153708035832987770988149596406069883437998313127003719739678967229582009982653745304515928587928982509974429935158358545358993679334005846980416556118627879828805563583309828039432070345288103673626287622888915443012363873342922752151033644203306109296520639216914775837971483273523305250041848034139908099657662210187942965608583710489817392984563760656759229950982281175254779348026671523933173309020137114026880186000456476631751830132894561879164741433485620737253541228253627891715866317994248687848873906223193662467547712431956889948779097571034959923688728708013547290775968754518025108190344936001972228173432845827024895852715412885635252306438196178191610292709443331138566734543124789514710893581167842681805649006922572779443860315362547941910935994681247011407484690011330680052414072622306186707431620202835721350703396077285545394507820353099454693130914181668554067882884311114425269568388969976643368479012178361097316816418615231889993273572713594212088806185244931446373970071872602383317397147700603215535357087803433753602309154778675191541562797683946619124829229872986676439941744764262353574091922687101623553479785624442058037099044344172345855249595478501216874751630340026650134365119685671442956446631563714853987975147579220981914960421638672254486919640165737835114008557665067699829661730212105418218666278594067157334448373605968179385247672520945985707988190602784820432193805400377558103797466317395149099371583225055214003501705246609031543703857169203339631947026823825424503911110253145259817217184783968993821864692147745639131391031450067502579520920576317447399633476220632496232679740440017779244935008576255335427054981092789205741201693288359869952327688216957542117645394557600894657916600062130572146166627516365058831036759398210036627622034492026217546378515311578966231203453670921042243494853999312874474828112345142586494932877391863498244024387285015557285336581001037867383694691265625771510425084041292600785383903755163395718570623705881864800983292708046129395804191394172517234668528181926219952556138348786252986343447199793404083523727208556731706215680533894000601215255083760915752902066136286711547806638194725786173620912072636568372061897374337508640585670523315348527686853943725779088643847104634003244673035324255256127397494767227126666097108945026394245272461087469417763025021216002728948704663768561543511727316358373651654556301047185516855534768409441349467295942758025233266632753791999889870248029831214982493005411781207640202899026086213634359286540863359316321078142648148030927385000325612254170466485988285271216079371411943036520460120595883775000336115287705265625464566563198944660977829470159065186690392288944612590484609845694288310845070676284597839377496234448405541905533371277747404563816089365898060111904593366866805620732647242164268984971653624361852715171602348349022735272929535602054315187226164757360858229498734162596235309995161948520049235437947689465936747054121352656868642841567280060635300086186495049564729892615665499891495753622933703227973527521947775914281154772008719611994903721311229386060265410200135809273290163883986079073495931148190020925279191309164131511965327126702107228661250842486414660340362458033317133167388346065753006995282464045622198099783747255973033980712727095906091499024658519813920133107600992220696272566350107043959217295543986231472599462745695100470221735577568949040434642309381277785722970779125888973019582340545226459964226965854993243496540705820714169603371373099551068054052962652910023547966364807320085211902600141743761932652844866337516232879605027932981456937579054484768766902543211849306681904197132560805244902574530322430566126834455908151300494982907416104902345860046006398399312109831823184521764897447793593412844701442329253252728217764137800535530572112841162814474609885980192191465978477470936603486598693982126619282846647102903470562284124519708264394367191972435641886465351429551573720027903472617494247471251649483394255170673714846446281000318743442537823351841618964384988840606400273192582710173488575367450105155866574420313256190973868640310971409745605915047903606090979740475799841590786758421974922193663959456379529457878429544701723911397877096003521795105328747286626653985923084235420050273133413572080056849033079492459642694149485896169737553958081324161701963491782200924899305956546532610731962631123755833929719051288082404007483428925645132825691637693517396224014190345321647629374789739340692260776934459145128410385170905115013042987989351202936378516417801578339732805237750893380659314022001983023984612170967635408444298116687169528606415851650103370108361288380602505728303119474589210818319253246096837831748165626486010322236226643939497230157020570100323499193485916441847761244226397040918051059371162364731332526757266010149557454624064516875292937587945368515825223857587114692258248834982234573686265500597824913769673019726012842053668768257713986651550919818752533103016348220277474276218371830324118653548478725282594228999102028213312219243428845428980148662664667060400031273715479400209317294376805973066346001836884270601522410842272484532808376073626000147118087843500885261002653474075095167530656656620647216134166941690966043461388821906075586813536183519403955651235936093307232728134309683659337141278783974357182433772906923099198873015239062644669234272830231327737519100977362031554389820009308377241293396402711325292387720148727107888201800052882567741508837545240536549491423461349347079968562365516417664757312610909461421039962372317272912657148457490767564257948317786152488590859457544326950064172822884871711375022418449801803534916122891808948038517111544381053564204308220930172741544091207223175569069774058705046233055591678370740233359460400279347251927997653709244071771948601484644685341518728067149441532218754514855902158569122538738376150274344746757956027594486293815235851851163556673594128240078556543641461330982800830069990288628047153129758243544898936689977843619664548052346805493019997565675198902707125571320501203956429818531129170950902976187840148551739962506820747705910852593577491643216635626975337034768977881096774458336344084767380129264761589746108612001749571328763374185272698443366512162573592197297210044691860810905376975935164520669188058574051421822916620580958952356303020701385935827513188588006905804675784361681717851020730511138564801786481672063118499278019029108252451370189327213261587426371148008990146091155923831675236766847054744148186448425756176126465292334785555649330030381120652465968974017323255481762089732283584187075965000296285194029950854929457360514334358109035395644625147954360606499037524775725941798419412626116870400894638056595037125501574208932175284917990495157932208138358949475465450013102829567594088267016178382805945268845905356319044782950186302054139948289107787184530832641558380164936532294913412424837745376116682446942023646312205580189833900879085065485923237181963321632360680580005124405916408349958708570954105451196378797484213236836755753142375044340642706561163768123389926702362761270109188711907703462739945998399544574519826851156689507317669709892353971442911841256786715251456544827748225255311092373944682184932538268348365791302652024455518646472030885739396120361470069444002928752956363147039734099523099569278176105382415031810931845443770975221262313278920855090116891076294770453064810028128029222496646317857508498679731273975365378463674178758220457127727273888025792326235158606939451575565974165105017042420604011126169032842526152460708960758765421662592900007421692752379349365363231550937169209897127292458920116183870136679316281152483339733341330124700785993389106303289438285967899125561756523252552578434225500349127930169704327264916693566793107762499982690669672046127090079641853200927719857459154261565649805521841711347902226791880197156522447575478970701403251764726300123038435622437390497948150706915451704438176817352055226554592637265199540022974978882191902170757166384937782404621879684651459649735022945999457797248674454352770919663230967980063471746098174176901393298985477516517002753037443617813855934781891864755563022127876547916871840180619515349590216048203892926310291925703083406133474875678914081205455943078558064204748238042113488398597947614144474029999619630568119865294342430960241505394445923149654310799484773476031680097532007625966769068356698527959153157846873251776460324625818441868546306817545748039279775373667837342848509013906549113962513772428459411614803389475496192633820699464263687693276071470707079794888083717130509275788697863847114147359888298101104576718437050451739910746379530051654688283407715894739476934925169667728279428711754079819384396539271060254001277865549312551480347847637694877853396724950348108634896753622645175910525776257757948668347882452883980452765066513066364783353594259434632854383038390261723825966101060627087040865903094905915132020775564941111103824111607934949125955339125512846304868767178451493859365199893485237792394160884114498717158575329328675875675309541006897698267274587514477429426315111190598467603025398468906311728152312900617322658759161646133449955285318263371584304290918096473521306188753805785225401955992537315180272028300576847097425088231942821587825604830526505206646029192675598081176416749668757985052964501279480645510093912114931197079666768756329047133113571759033434845556379759634858411980129572293726508064097950059638366877417765369037683741789136339347513399744625878961912417661374054745271057302888659937513681530623426622605507757037995771180890897900223456791572601039202791850643118591559064791230833791950800670419159337743996259849212166581914831771654349522342100064997511816702121789637758233418638397211676955444748727219909613876419311440439875028477663517298150394277531883764273831950056337632199647445035789391009025781175246034192509750011332465559555284123512597625591700344953052195321203605002487195855913676563615762453646462179241768456682281615021639631241000364319788562296183389129214223662735474236433283760630174648450089635495582750628422278687458409803807903147650125002149679491999494977115895877636969988622972222351162653015455952237121729313333787621563926266837796531463014811325567548185543111375962305311119861277807571470367406765396503090323981784519872503040841651919699769322346449867559343343680738400690368461915494699948829167674014007618549302054959811662022272878209739557073710739000705768526857158374265133137868528191556667940895144514704812511164317663450842007501113815178809361541035234303122662545949010399311505159398631227188144587052217181487745809137752764250836129482013235494465276611978125314081404922651509185220579579725066798865218734705263505526331226201542916811611883623179667353826965303684231783729237281503227193798363726660918709218707198184860229708913311116356143118070032445158033250931779784518262602253525780083942642052291051562363930759872855606998252885379015383976653637232403986728287829714492983329875777066388041900923282013624369708425543609760596766959036843363172930379488124908206967789257749339250666729304824041691472136194470441073931198742494925511631673400675053824786118204808709754096264027773151165456283171407451822048489416486909198140908608854091434518300938231858046542169987341698557813376248399887612381512602801926422937046444927915582932172522188493025838857631801401257506863822051495928108965805790725286216254960848308561829976817148252123497051320124372528536292960083458832116254100093278427883683936575392899034900559112766457095405790404781847609179646265793957586338637680570576534354468200731707000758588432004567833298451137849776792243529174976392583645445359675075872538187240104477682021318826256298749706592057162094616906388692159297057722841706798588913024592430259528503306225838424298949578315431020707560806071515277453020578498378840705361652201606049582991040269027117460814367666651536234650225953303338797871902463083874538386468352844538029035554039727455514575933541630364525771097997291216502224990944207595469024709660691212534416867707793664592408643910670062884925265676508957542984483145815329522996490331108102745472844230111550742460269768089891669199561183075149229692044157676106864692704565915087613125152753710015676394423590631520173414591376952035980526727682010908842007936504210673280059504951315573354939208907736746809548463340985939027413815339158741225846726783587082829428558752601613749711094989275072522231902265840627908397888714971779272806878232351060116478437823302488008662772386355682229491504733414359567667654028260041187245417056370766037038833212269242903101253599086965774947460368114532853303820423839127212811007492670197165099475659580012791128433537335065853564171489620410324166709277781935099550116414661144989515478040415121102897319564744737657968403281931990400150258305139195618115654025108351603522599219951012257688887985125300924186455160762197348029715367662224553379771012610639238291635384468646805539011770578250705288381425068820176481151412027924490338801202117707438014206483471877137413456643400203220304505566548579724471849392127487232507502844544796291438951990743879327427936093764218440165372714767672231921390489629753199332896761573466953603393731775076100679583530659465843695547866034019237301663820730023518811154666889061383477269548294046355358033177596078077724979327877916741993988429718145682654492060363721386476477258367688496306615914956036593186390773438281975823355387238598001798968468083973368378414388103217159999108629346017686704001472061204896216160933411827825280756370161746373493516861565859452455877113178012084127205606943854329815724033217634539973327000527181030532167124976399345367939267677041127205193027363816700962559373644406888566890176310384071399481011716556630347036793413117108331683889604273389784532275279056650037731975976516327344402694895038028388698470638464343959798077820151408866374378026021468149815799969037326384962287668433672190970521469715119993949372783604367362729275973855684943473691437380462377639138412423481350187916587516427506884581031359079126835530209993402396386676109588943978885913288402386721284039188277753108655997753610822327347720832019423253835098353293373172944447116855918025841505219126681322806048432622679637810259069099526122359402068775169673119260481995126307023958440282465356646227249644447231451576654163071016859562895580209116551580213102281625777525797643782466410090773202494437027847568076510008883217682779373008445993984064213964839174456639379336056906684902529060918138243699969021073889644846864320120789256308605568482899711563309448435062950195710754069465240246583882729416404437063653227789555015111618556199324384584297624492996865941996789503436216438622602252260570470855039425410360934149884239737789219131498379539275322859158624862934394353958625799866874078002698165302118061841278026814986496440431211241863902408847629281120845772669208695431733975082770374295139573332701720180236281649320992553024058481391353671461906960140986834306152169071879935223400274725174492609565588450937979974881497235946389121549196647171340352056735107570439823857649928561728756121718714583494320568465736223842401242265570986281351529607940235621552433944791226851129397207449337469731031690554357997398307789051959297080757506751236168945739990869020593819065862378434775448689711167387273483671797075752886374775749803849493874070665029353629995845675353811055720398082153476666838519858242467255232142905525849598567862590448127472810468038404616631476141040055368489194962132044121049027370511597788329340171295825997188096762937472243624168052499657239687915458533594955125120399062659657515802289575528782714193573434456130507596740406987947588084762710231292826365330286225977179502711280916467287833917214891630591496640278209286044153639191209857605590171046066802491060452504837171877278569698851128520598145947590118666438133768988771077359062681003960875120499297107345322371831547311568069074552509306813431497416624568939603128705471005736063154112500765258417002463755060662893483391637832165188657266297165628842803838233217615951825582430767003650876992159663765277855919293525964685059587304825798466838816059195428783153772691419840860000716390485224929570945044260040194948218826728101948917310824852433517679105671885712161367272064267230476500116572582104222484186783049608769165926160979928023493111811145681057681523175132294539820669922766285778641312646761619347852924597782227081156918640558892754819294792465447618516636469402886294269787430679969545430738047752987031632712364733429436366867697054019637706209261520401541182065615874919829141629704242064864057229183316534047074255512399789300155879891395385857912753527672509914224103742998215579812349011103166495374023131403510449063961176456591466576333850107504052488107672522956152440628467501760880780792999044466253800315629665916264115240180495223814736572025891979487039736656311346338222292752766721374629294743537719189829421647413376778788809739681762183578666820874890258204581920050049441389104837503985128861451283072118060083309029097671465706328923071710213556807469537727995171182027869011077437302188539576230321816451667959977922133625395978209180726909739597712816522279259590452639715314491754742869497308052397137465667695378858976626894106783545360428008816452475108187013756434543360662428906317262244398980980610215899179718439204362595527935966804814946501357493726966682852887527203116111072802531674741902665553853303572175346265764755690455262019152020263204841692596096930230793541073046845257102558059797859419781315524783142928267370856349790900355708103240729463889671091456027493323899260317175472597444317096984138293248519804373067320464995136729077398149836551412785219059503422049356493995037252588234230082838157298236187000598376397934144800399981325683431935778303092386861578373348620703145879173346579766887038591886185002402461226966407892519671460502469336672807020689077601652363368034194771901312088743388796394270543172777558414193932561281756973495115768949039310374919231503308858648499460163409435813033288582679680940718574748710627111133733230945482122256065741174960556426771239317538710325291669077579393884180189921241884412348433358255433077983387575176685616415842883773187221340062671532816650609388314202207311639560230162156160406501411024306131385318136677332136365809147117724518393046887076204686461273634993872889548062872721889030014471854060250074882560302295941906317853413691765078875078317891724066579565256912137149839940204432736817525441040642591518708040157201114420072033016077933230412362991428521772802334975969606366942959622421174663006327016364416479374679116532597488393729123689465563674738043553708052956659595896668518291240956810127135512061214351887350884107485502084865898176306759644092589974810657284340413061712921859624238347627313827361415099905617677372916929188186436699619242839814676739593496794425948626445755968466672974264606514027926815305799680472714509605331166799120624714756720561122209421575684891516473016021680692344806097124710351328347113355563198162922373964693688031063356665022516646076797560837625994430214236303368960952150277639258885637922992233458070991751823304521047601173333709515141066145606711019087787308052031031228273894844521302648821104017580625079736220027580129887586403740678873482291024329772486172119136774377498997167018525095366962619519225822082754294824743856764257692561078683211198153049664794290981642624373375489747558004129128300216188619226806406845831199376877454655228986623426483644319887053553024141091375445537955874693118130331425859647934448392469286131135620321729596521262794973446635132584522818905998240722228626654254041988910248587516942487565341725516942650448186096322515654289582535656579550370893665696095369203644999640085731923402777348049360072496202657473950724562064856973516640964848222710558024559453938379169550907529302925546574067410781242583670099143030692622220637843343774350945778150737091137180068261620337404123546653618897552478459209628291580905549048995752332108426719775293965162103401900387369428280636338514367993321100161792145669770117351216636388093531133539258805038450684117201941422767875048982334020154432916356987927399367394087779640134698950038793537234092281648122471644384813190111515930278984048077943164682390430197345783715613689606042986048221098575102291439579760669939621686280348574206303836709923171470140928091921453055299139102668316791461753766632909379110552062478210937135012210677517981540192410496550118070037532626956337718129070896962857733863837747887652620048864090126911668356801551634290664194753089227366083145430017358026189637179432061901652935989525497439671701753395589331916974627104896869294625769528491649492084487114731682662229212569282385395459523553409537857295206442425584521734128714256791243880198263912465077360287701706493329199626939071514838666623082598941761290553471046474899233987262885782486670688631929439881490063770914959631906497020678940484095111396153174302528604395559533224826495005044924618120299940378299805891299363661556303535410783208880473857809491306572109423675163710686484551958602729551700961779810415047444976831606568778129949839397506253965491224164727528288316092673365586568676273837573136454792840676747348595892300136927614724995657416843010941846444421160976926186037458411541635750343442739228765660543832574813893642565077404106304999521279636366687032678989948916500372608461026222848414977028877039480519018135337463552559254307369031785039154314452463456131301656427016256130042495262672574594316648875983085684955493956726985332972955715256937053232057037694253837997051231482447016195688548339177498262169820544690769451752456797364493115530793068926711608224597851161712790419643356836964722087964134303503611932473807782137866371718868421681882519327210623902127756282107391974815964028270837510812962340837388795310459230001852189153616846407963257144561478358066347750142839538642324235665276947049172529681057232497577431158463259823284558459237642435717504049275488424504714114998472991532346996086326018855165019824858385675566998451160263972004739098296416118589859669548145027200006501806839555852326851393131082910886914933739446501358876223258862802574572320007747782687142434690846103632236551277393643079036313854102118861686282332898302540885599874791950220561033880770940454236806552589508035076717286679649494598634914526666942382462482033607106733494308411627595806138358326968920479859761832049808368559233607390743259028432693009938314375210128162669735389486454447290537907357014901922518210710960814498082498757298657121273274814025373799603243112137704944643955783482295562902749621138336061540564534038972701192604264903973776204187648566271439406700279186234246707758390895982539682698231117135244587268119827469815622927068350483019625946104999370922788212763890116127092896710129009524711411741376522207682441979194320446940838810027975874780341989972282616662572251054146196032339577645928989165402926370207882757028342819611795828768482409315696694224542930066936544711998036799229588027431674961965422436267084440273902388637949691043080243576907936952408040597212431849486314469644242669748184347753836547628692335764034514771501180431101842413547599419578904432716271633481615331931742816426954528643161872319320467582669043722316258546474406810407041942800073272415117564003959678820313724501924811873755521359098985753069882700159827304248310532170984611708815949328526214718623919305909747624146116103138547682901031377448285450294844560849633207578149989091210064962870172869152499984809696718227221585628534916000632985280435780006142065443598823049223704921957632836875892074608558016067675383017247422989356948127609899584228009716372479066065942141234606643024735196562615884659432203226832679952495513320063084938203756264156011506892907748825399713291437268254176247113945830364842430206810897958531317807143052128167864365028632991582104946723443246166512039737680917128444483075787129864314791634456293296777651535130745369768408733107832085950578048196429143953497602746929396124506517652207252117855841288344596491002893151436889755728736167045726780062772877502030365799869132318472965690576663943620225557373367957831504019085758429755966120953232818520505473556419868749087690319849993622229079721257517068831257612954219020685235084919566524872296118800958531477371291178594303359749799728805353173039996014891481709539581265119004818209546188850291002750061377200920966944852120622314394769862159148543312238113669903587910272783824758673420910040077445454028975215753778401438130860421963919973045461464675023600954547446784938315899366487012838558859019842238171221940060986394041011076023105762538322793044395949330432796161369436674383403174518832079681220290105245516150957951471741075995421237569837299424860632645189996338833735335473228772779596451269579240213880928288626227384995859730509245975445389854388272106723534288433753598375033362181191729551121030537187091792608280636407473894259333691752486060004199860117079718482994693110796988845281314506518955217066474527095984384034536725173568478197879450221598359751513245009620031483920562862828133895830245568797805180451633403853540885587428654579170449584737647229054716440902097290827523405844660387210741701014156602445326777718398850153727364151275074559660865683357564795980825888469596040588133325946540569595921283825834938751616049888268279121744210510553858990666290588947195453415828976138538534804604100718329968554523567205762438006971818716902252134102856612367908246760791656292980680114222568534527005679491102123466172318012006979839594640795476830461717356900085962010558022381259645471683273458717651277477524406160315445360333126280987761052782797846430447584710435072869953952586808057001593905876924836490422266198593085986815822045146690393772835269326303355114681959327550797923176433723927611824922037920245663670134742602573111405554608606179140175844275861564397677547477627063209576395307540036318408652859554384698771767026679870730645325881703962037782455394017940941428908878882602501813387648152375122644882686504689631505522460844676400987115595287231287084479784806106369009874245769824446993817888451533853956590468089051805567995483110086332014384429901932091285365088476363656931345028944436879784601510692392174960699311375218298510502425457685787428186799476890437932758420327491317683845575576116894552957081585344841495419402334325552499144800206050096243292437195515695885554033255626910204116407453505123144984628135335640715060410894216004832434864052557413700768108859948797645850065909328339605255545306584531513289226489038639749833023059168599615021050922576596211478202713119909917475263750776763187871809670787238876857171163941429699885164846465163017089679977894642326461364877070806557786590285670599877452567972382718891975048662639792237395343095170802396016302765032272436982072553737852674509589555431001906258576693506696213457308543953699831084785172171706956733895819235752547413342713242682489766601028246173420290063774056357644242917228714794903594827463905197267813784224918322028620897017119995897132460327668123068459137317404753174022825068123690114647592910882119322273340990780658651722714777595397107291727916049632693868176167397445294323449089660964542783402869815902054575618120643915865743644638449540872204370349030028930725160666359135970917950567602059757964473091451474808097127126702641104731323668192374430820986503047887427858501839997246460608845715548971612570294194109434635798078716255804651957458685959381454216299039401065057450660700971355437198262091928410513224718259461036515738786309164839833151951099068290051641074738848576968126931779505461616478924370541506361850910716843103852281125039802271042458844852863973158682739156795152445104662263904849617964580583264518564656998798634520611883789518505782924528906854033432758302869610115492800801890170382705415165824403421061450615096252649396327726341220487031841103377453292612172785190879286238834763894182126415733168512712007560988752755669810716363384210459278297895947207999578601812529510006629641774239593942127414003176481165619343588743365786515104640596561283106634329078516458250007020271026562719251021922930003468553110713332943680971550953889658084496715341560244905350292999899132238687622615738523864931689698205674861691668907911539702521140522499218641333237164661801135748046482945468158805037007843061136332304148578766293496763161012916449786229109975006428255723555165002548184757258257888155537652817596564567343885252456693273618301263268353724832617535966988404465958480493527861086602267392936320186749767853154215741508857767554559200300466778511579760185888547568457228555082536180460554993211416509144779138236304048406411769734218545066222983110089345900364585219700187868717446720568042934295225640834522983148026985994628230327259688321439990340082398927368991104072653309239519271627053836665969252358791910395278049516766779187458922536626639768198645380835693173740309120081494453693462488348322792679004832629394711369407534469908678300842160400082100670029353674238253421007261260178469361132584946309986672047303571650466271490002909900998035311495769274109195457799004247816314069467801878301485470836104723730351941198129897343270249041582353892408642608033964308963755147901753849206540105630058381374334558680046836063165955092039734813842597838940900909107349756110976672932662433054002632182270856717705090655881841345786602131615505856642617817017441284348500334306707174267648441976124000196881199657808760100460999844731463499648309080053063465586966757645851372348315899722097412818614194899753508647032166267535514181516908488301175466356567397471543025702071995215074881451633333151743342887869406336335527245743866002996958408092457767862733434734819642565102076896545247537968539645614076216973584167967662508694662998440887943673418029367120697682743522883212406310395423780116057215303703404918231310750433305018244119230950059783759472451368420832044646313863151869575183456972558342474081888677527471625156119284730143803776454782831126790935906196644586276716790378032325772161521646999919176147051967758409313606036648632901847206395319122031494342128118096631838884702317238445258853998490949888398179194817315491766518343286302426095220165373390942859194328751614792426009862144738886081533705955884250996212716718625455396891968257941467048234829363797810414640793132115963943808711259885896135117928230993647956579292437495767206858651830835950624552383889667834214913379436160308615798096898269170767821286121346446143482221644006143090603982388693119730063128416796407219161864590133410839259724186582522596084510046401008947104416628139329988967981871165589347586250377821475986993316446251086201278282510199591917913543744140088940548661164502862358206362227291521530691894752854393085881000567142969634098323483543453117861794922280747994243325702775880569514824078971610481046734281226759630464447803967850848251145994157373164793458801286398135726847649089859563385770132789995999893288033795222162618653133904629087837487867999719604552670617579900326486729878077191569982058668696886526707516781630633593736956370348293212817098281013522337991991462102932814273977885259342384647727153073380469588188717904270578850287254574210851324007269822906962498374759546006262854420595974025993255204255536220368145564132567309653307406158533622807132229676282865549202603305176066099829927088880074332467886855265489813976440688794895495319658644353257079999441690555441263167040831726938264099127463512688289952402187194621806660727972228910185550470430908798385887558194418497298077770027179329043010574414060876996903961791155469061845430900288345998159411081526457832010450537554152665528542576306529250949924392872309771984429077862018253946723440662907272063753053553163160464688847012225262299087575176595969879925448789112095377912791527396486980682892808930753782300516942191987245128594748463084353434689775191702160668979944250416985250678275647564307651253703285627212669438064273032327795000344045911951391992493763196766024196729560311003852137462423537911317588908421587000328455319762583523151099350657542144798558581864375626453028156129059307268647492293842427001423897766841270459523623235481968734715459009893655594662072640580165864403139339220017575575601884920037222838273689001815171326375338331909354398639948076835649860805345426285056811066298121580654011978546702929615072716221684918608784079316564822788220088350100437875369240457713723365540946744445443685741825023215402917528211613045293461208285205212845199089966363111482303728159789472965386350968798290444219047049900921739697989785142139203162853024449438229397076188171039002190244197926154976680242798406535110342236325565026711833501792529057343016762103604339026359700225921080007665240686363873888108067698506053161935347189754497415858143489657804615526278461442659098158051195459639217696825815904429662343734753608711643159334865939344862147847144631485763924398970637819714931840897377567623374914666893151573700030360832212431575496202589586397495824776018786833098351662567675050660147768560348671516755250696695913613325875994659266917326026239055754322341795575656824625495585790554205375899872882586962452616529828861153898357705872545372274717894868765715087684548124701142266262635575572292637077982724632985755017662726520704317874220594786676688020899077732514133793986135483107057567718709452256067794690007619229923237905500368439713135688370300176586712292300524383012205377659408162144166542917626674414583337706710795537947214354165844973503469047937424602627769723583959332166544995968834438279271834489337204464108402043222575282610065679363534403363753050920237102024676506323820580690488616545705185375807849609490434647008031874746015276039202051501314170493185982241062973660281092482546079718987874780771294636908243953006515811797017369335503619685250853699676096323087628975841221919188944827546293634118678031661134483177685743420140484485584264706331302762761253458816539317708175866469652936975270556190158540667446657245784344152981519796174565528696330306241876881074318406744535284604138360619320701823800160363694377030471490334406580450588198366799065961905716638126288711797729708826945478253018829362025152634202179121275397224596852699047209430434463650874295175340273163502150264961488633848014361564699742305316645087622875708410216066238167768828275696519163854663612157145964069435746182653306976524115328271407237200082013652099032778397585432901079444981251981003626253951428729779277613568785752365134709209997962851458996041865104690694031831539435418106906709596288758884824498324225450655898446482641718969722300864905267289852099432026170068513341569866571452411145161834731762347301376244875847357447428247962100929709024976007159179763313852399395137753435469907818824079364528902235364498781630123447188882340320425152661699811629832862526220556786481426097833134115742224007506307134952439560376901126882953953545756059014077911596481378063756580987662247827817451822857750019844265389004993224089726247504331936413372672377556925763821942742599197208946566848090645964576474238441775449058414118263250463754720313059997904953519583438395659488796263857078159035817601855259223905292150936779768174820090070891544845996100982802070820975605296098647918237444938839941819276932981399997775258298108265080826916029959436073216849050878078985921560388480236056049549751600562489598740554181836413973429587779035900195696851384446559523492572714734617775414409681757172736652824456292235762348653955148704950292453904422383989023526560334961852245448390068649583148686421268287445973993492697767731967503319980801264032370369470642089086811193182261266533954093477029852836451164563915567858625669337446140765301696381340877210044104032253396707854837810611713188036271915734437185752189188731609708036607871045729645167061708835482670471452640306519804240452654730628145354736854536270395637892076768029655832701675738174604498551221081370567461702960256250372536405985568466407224317026063375142867078312584701616650450666984724698286432147298695645481381055749075451148506476502283895063359406808804207383481446614160044763770099140849914117407274231986825852760807522347801657420159113609994137211203434934211591609380003567194131928422906592703583587255241728048224870224468288838702505496007345189113405783644574656131020958205213180964688135306868693560474456048605212096221106064256948669701697322068214811444527360680698145824231780599273162803591071119799498815734413299752989486865116282444487134591730774946762989177128198377752877058614342244748996099800262936075485662554286608549305646790535953586200874578252279915708556210178316787731035469521344928060624643593613146838332924393106751390258888452458061559625146045010243619122978450512248033669210279298704585031754072232281139382936351255074519229884342832324331211825397453419240620416846009056990314899682015873433151836580597053193317733098949267391478262669588665913043647102066295334205114662262347420721824735574875229580003877809529929565884821061240342110816908592334257435612486583312023430555733574754709156827302649858444898831795853468214665504708604668566933105530984655963169031030035225603869303578638424230413641961167871004836257424008327450511296978824559735572803377509740150538974845776724842176013445913593851926835248642097607569705064699626486750630975126839754758982836093234984816931381787589476621821910365297314465739515688509755664061659543605154488469999148190039101420329340360931372100166827391638841698781158520309324683449907769672550849686470174668737715069167579613626071637415125475781826490900646094445352925680977681667923593458024151686872948959620654543012648496468012114579965440232150091620051687170616259749131954731490544923455315103436642266388270911583871333568519158982616407116923258808382064310199774279287208310601916041863088615343976747542512018648080858904743702854049462076713227411270396044537002967251683906145211180452358935583066054326197053364748631773757727251510107090581697273235335825723913133697146484221326401549829149648951619064168633792174175473388516054464286772049174574704349130806390197933534358534632561299468308214871399594953011497865971618655535726856351148805805228787976727610801700850551280632929329263105442663568724298001643955763783134204300641883028884152273774940662638497538766175786472072649523015379858676205202368606086196144408269095912201898173050367347733393445272209904500085958528950544735554731484273787646733953697167562752997814604860165304689101099394754378197628117562262590215887740154426667209161338029367585805725517712160636139929091678410508065500064246293220109227861926455433152944425385573015431529162758336845694916633972206934148471008475124435919778154927168276634181974573713748175945644712280654703823060486872530990027490149926942603882344086744567611739107939585156003272053244525818000128623510965582044056712196270359467538678849351054406254979094841445614765199216453888853041129943533612973401133590622320779378301255937862593190854891766193224863124791738163419977854299585988811191026070837752043092870073347502044881119199221740323988224680223683185926203124719046031057097038846224933074556398971277667857432622503196979984413610711014726793044032443334486024160311774751079379359330449311459573136252948836512991996053242496085154175021628728188117690556275215177440967273738749178031982695231896631418075860840700101037855747607365001208570118953395890045317409449894541423937125207572238289389853457293391453947540000816463498325159001267002736151691845012267199471000272301885810073154600800113842890591826732363425413922739099289861025604767389547347696271398103690054289581836513465418226367104756472308957189199315731758199446987043075072430073048172470330479900220141065654012893138655711814297560771119431146079884912174733136282694478704948944391640512961833268946279555219769673392680958888762284337042171495823718282090052945860070388654465574380139520599877437394379221047377298320742970310676381524009753485570944687848975582845477973267923657481725743783455664574828227552947646156828917039469173638980998488943916631614696116601439469138557739776324714745160618169264916768221562356283015560460783018133163341937571142982509666769098894015887170473885805167493250602629746001349344093211058856151597140074539017854841389962772573311581044024734807830437960752422528112977725904927114979607436218770274245943461092750830435645675414091344335472870133376829946923199426727120962933035997582210167838883460554542525433760143542942635828045751073336425540106531939710862430119301675722777015517974894820022911210774271816082486665245260708898589209917810451893284162216659066663018711054580979662175061264703460231263469869577824936775322303911162533204093415574701645079995590357887348144788518102771427425149978814322614695529984729266192789640401377315494932816430452513983909349667016339378947495733250136799940870404414778301932245422912912748603564368402986060836181491336966283254083859717744787146391784012367262919671534072789003063722846600676106381155263492650412383645146874116281862146393913226362772730034688440712141933126680340661380047550817176087821955244163062415321783789273381111699754010008514743138945858601987360678914846563194434544729727135787004944446739624638529099845010596124382184035784536211917883869955857788308017537469842186032320106148904183137396087156097506453209897332419899827135882680880377182655096934586818523566974332279987595553933630018502026770951874903816962468054803789216905334513161208762860692270194269239296063471363374505425824857918403510883247861277316959155736537808162494100835337291280787230628423098548365384410490633567704036779094343165024318686799866229696840177912089596624553758652380536377827083802604988077807214668390449225122963244479656631818687815828124127137714184125989027820944498742978153120408628857260453856831099167776502932090081115532683933826553189571916525049898488467559498374407476749265772317435283812146410353845865515639692190863906709421938670060385207338173452924157080446826208154565568916156805421734509267966945722598120073919508188026849903967094769487323171208903444387327324882106010777078761133932256802340679574240543903213588056347165924519680502281952024305805751321556074902248088039258009482674181607278791655063273452143562979605526264323402728207323106718395591598613365791533876902554981021835109004716300731899364915732925671406440017798211297505054507762903679279910308716775537800803184813319639681020338698142493430607660644369070994443352274632939659649042116404613833851355345145698554744620407247258282079905704107078104065681091124953726898702124900393957585551329903298050769249669132018100644990673719334303717289068894241351254087599228191514924422818759201858596628935062169859584394290846336448622408019544747913221904532949897400302669133990876813182655045005817869762360368469107106446581822549137624415358830921288760102714401854629429149758499860779008814512609313203479151067090523361989387715090489163031348419789647615648461176994876650644406195827257713051592436430752444921222227984413877564956315961089473287090526116970041079318946351457324347966563728807331449061500908076135140618860376731229929494183764667095967261553105153956455131538023278205391303282926687984611932000489900705119408241077316420839019464814858129059512896029005657624854949543690275830319352369519778872382690255835177810774466688739983394901360689028214525871691072474199926272808978957845250448896097379556531337977846554326628665207667067087374628063787324843219117102450474905116392067362007808370031019491806110792426789105071358803827200908877307329695827192041360972013811168960910776855985013124713340664927424290669777142618683225018537183994896446745296955205112935390557256437621509799450296846548939181847846356026586714144097981963642607457593098097506356006830686893642967584076366998990050311275836022289466196963316538834725278790441644092054441727604549556470019757175069733094154860636582419811657472220074975926753156854310083652587006875832668229102545475866358609530103931802286876115721745920726121671382068767954465193183574848029740948010584751475801949138535354920545749501657022569991707049984598457264341397348023120173870827912350910552432744751980986900759664763033908559870344825261839969860477770628969464548881980169768983945939774149106710099497091716388886336352605737448772846713362230408052459171362445104549386064945322214312992159057016497700401863495135301573575013828178252781830305313248256019426005723570423799635079529858077880487107008918018206299703250065751679301943076271967209721853048226242385317271082648450138047622224801621423199682160454351146876556565316760657650243020502983486113497933709851149025102042376916448509677668821086034074189279892937061144650783833423832484620671031054770239739748147796891735054544438013848146660868262669625708525113576787731510015956711793909480969621936176265291658885457284612725637783789409801538456003391903403513715042962542274541588469516015482174349401088125915749694798280572227411460955591567249186392613650207099826934424918092824486604936884141232934753801820743651464553130058980386470968963075040254012728526980162488450272587984604069783786860134180879001728077969407815322342570125780478867537704151982028492961628309989554481091431405315498548078936133106505604520647794956698942606277548146551197126607891835879422019177568523653070936544472111320623282263249486441479963376414597063003020904141286619535538619274548605943876475957075781174217853227086275055236913090905827884114497882824179033123539510120857856679750910904844773536150076811912604136946862988290748417628192664583027127096849179928804530568661843762322830924108922563855233495344315432695667349358908988767705718442157526956645898615737054204146267903359262890936421289662661374538369964043656042639719394528654706623658700760878560857059052499340562611379111466073377834377928838933269245376025527701272855795645097515003507778474899672873662606587607640257950384242469562051884806139053275875169637277594001090167745655405294795283136756476872731903580243463786605022124770485372579330782473715916234678951070442823073937905331236296866922988192755826543296305102825055196643313428183566257077674609640606658686477880510155152515964530300316328052719827825915000815154120025124027883189608921486075081801183203866785690581692231045092719711558304527718093076677198409573719105812142211934366661292861639204222881356727234967280067381113565794586501616000637874809428907936508812441724549236105694489364224003695325685103179317700922642667705718788613135485647272254244855919552421134377753131618609634345425380853446262199836368418200149220063722314026330917037153797318395828125941179587280868784898894865310228337286886307192809453940308052841955973390809687248799614079385604627602953382164436636194876024048276643688353995166178056877254178892071017796883158566632018428466335466045693199559216308219112637462425993443307333622709163868935241793866556612755514742698929815454091048674342208258158128611252489806305911085345922168872311581496233210996748125487511423116515116200100244795007222226494292337308279693040226467762810665988496229219398108903761256254036017968701202485145365164222486491069525059001530605110518243173049017002196139980018619862437717740756608489956917694082453824750790424514691262000356533471509717804900168516461962699895335845886749761200256872973449550882917009781512699785734244530996685659798928287004621442775470938381367005451470098474025588789682066880787634420636700948839788317203551291427392348568293854851271017780980860337992947960487433269838759088059895862429009385542035797370503567084923382827798363261324246066029174764474725870977114596964396868040536783091833271674139166817041050591262602870361278516975738561291126323142490070929329294131156904401030376472455941339032312186971265619840576510282126153327316697883590120995368744569258045776724421483466126616590161059111916237760043774266008213725060613498428757246592755767168706277791908897946697356436314145240178716826120168494143100244275200759149623350742449088804979552530443892206390131448302213746730300080617284060919476351411914393729547758600810229656394559109712468622320783421611161320688791902831885557769142348430512687505698132607208092988689709890205133710532448243314266028066451211899113316291446431756484289718432231370709304614665661910558682590604558331487650275695404547784712023899940842572339451024546570673911517574689153291007145345900059520049069906218698779855235441771863569508784874176577630406423555384080100885709987074842125929392705566359384983246204302265944891979659066735525577732683685178192211687958213323593253254621407746492145509540194874736650967982349240864634794039891271005558807827078739907311725489915895549849020585547789354497219662572380135620055127094298772225704933520946551336226829031155961356339195066178181739230424659775335563793808089772760313314456072633452200253805309963557056147924330572055220767252848270801078589879514999666760332368449017818389225405610503101186392859890960811494000913155176096435822514449699238657193228738137555833826042866787721684194864486854097906623640630939596667331502816171068891343564389509141455696357659525541514714969196982732825647194338468189060063776948351691818693254589757676644467685580927552680638968907678367753208326277034285050541830855434853119807939321316142346105752022945831460230418660716224069448133483948969833572113581950034379622478812943760715579909898337172428937087975384458075957804155503875820491814154541959684580564757352509123264326463738012415790159840415147911415712763424644175182390450071118995478210291472637785456907521442313577331690686600425698690656395372946606731490465911653715527349810609098894819317089294085882927710741514608176464503241993112712298756927688057595646648996627630654214426704538337124102208931685707305621461447655978135382491148823693323494018020818427815515497629435099876086537631422643113378636272635579041222197705437170291617470246764680989600659217447457312411187611872148614270628128705048638525128543490039268726088592267854365225749713618039337593093070910294213029342798355972095176888794173004728907705115746969748030910144187376578817847467426366273178130955149601026844471119143766094716595196247162120687523453238288536021341001668229869032424360629455485242479782261059344377143622114663463996283883824601725455786262896052961531272673786133344961958712052504710250964699300696226599506856327879152411508301089240030315491634540214104766537416709057485934440520647141699381348238766864594237669198216417881548022034159716664696529014295368484155409079178749491961272260988523065928134479035854262179506220763831055577393098327211298940404223471139771632043826808852133744055062329849737814140729352222685234738312777611700607107887628618902628742429193603073047503488005089196527864424513153872048816698236357437061135421898017913010813931788479169443863824956099809416851943868732498370351641606247582991916535405312091425562251520111648033232058473590382517458719256560370700161679091752816323095633106985453767599042908869904976760561486659647476050659206884641596771707016312432769060961100444634797962051779741103066286762799979504661883209104252500097538791083949383398888853972280627133156553297932474396404330810587311513203244592036460158243674067476634765684973303742294663036073101412805960324437648152264938614283461939907822331584828396018525514677045795950250914177205143418404002624456005194000395189973496445967997279826510196753942180306599540263242145832381285974796341489131757763106388738568168030306990164664966680764242046314669970175929428986601698260974733268958764513045588352589851385177874171089934390470684785835559686874014734283638404325884772252478245070799548824250240663678123399556484311145372147131034284691443571430383893147652674709896404156847966178744802066401900278191920828690670889915192539744455401793655828527444108844452958939162438024012832871987299299403560189046493250920116953568097881841888193510090623811221678047478581683584876701191477232731207552695304384294379527704097514926398077406873834069930668042939290159900570654328392975961505836094069785895697160607155666723945986747406559959526527669724439996251841295351176358814919273552729458515096317801821967030672083827436936094199213130579496899915985424737510159863699712103102406503093409078306160891484607481302610919643977382949052783014303284073240690313841878275608434327156532738360498365123923315602769693277238397410158953858773412560889329020722727634254748651074959990605485751498030835251660585550600393062248544606777918122573989154759733311333527867376756467089214200200581712269470660552759058400257492101822576363072878151742534625750141978235088116021739783086575600010508999824407714015822852975604988149478386159880479826045236149369004552284041296946266721637572777990881579057358251763654861341363072791028325813813430638855873345423040190578051310126274309636124997060214786751541871345783444570883309333202612794491672149306128790710420386715415289803742931261462893071952810470390634376072421476398217593974665239340641243840356345702015915094959171623864924787114925424696838822509822184874972460531984220793654355885749664279524280203472522973427894850194709348725782340521531639147733465683287000439125774817219962718252230852618131238546054198046909526863049420677806902537610107028911053572150720251351124968563065098456306995296023144976896394042888841103310960762873815060565954922691839308797431084788475600232824532935025933330972123657654427365195403941406764788773810501591343472535657843115006892765508386562138874517991367138354962909867797457210469050752525037129481030721006092657891528352241371488967234757162377806561498723129672152392357539710392656130919416519511361220055559170619081892884386294335899348528087413000217958258832814404007778994539489190889887432083889269462503553487998361979697084422132865683135293310723271204838427070461793900293681166671548769588749884366072777097939126470952311960439701453717731072483242785241231978176949827005095564786347827487449229247209036201593240916545416515233789081663702996400920402984290774442229771250392262094019989752102837265370172131585758695178493251960773406161649629118611969295865031570237618273559274441978415146633041189835747964414191175391070893071488026902627330024345829004704567217922907140290687270942995022262339818450584800229977636187194941907177285968397217263357290580775342348903475609588367309681695583709136646692657279186543961352834622736487599948382427408391795314668701176620927080792109559259003451335952398635142419565563684628937058285432040013537478484924589974735299142933979302695459577015194797484039612178045261576551890409613081588258726849889341080554655329328687243758060094269829421496238084888044950989308027214157812932456620661397072494253738158507129975313668818153982075670705486355282654975444601933035613125054385161217756108760281897865248671609221998222426970671490752427957017947421236382745347320737148123301337892660763791641464132575576442184218118681449053401250113454040942218093953721195818871253217065603647934601785387380798129117376455326542300602867709705310134482834273231385142766590283686877947866412596132647257186215926314195474828373426819492479403783167555526547908292358622111669644203580613162408584636744053962883711952487744066253439313225565145555619314283170865385022955787094873822380916507638520393274488095893498243794079446731240629045940958707045651099187349496671129504118168311002285688593785651553166432122216373157808617468321779328523410325964274561686640642315053950451602059122828003389157349828809348396088407712441365327944812719985434027746392347300811183278026947861877514848415663158851347276071243702811936893662316126686046724722599289890361005240345413912552382740641939281622993808153698315386533171844332544039816296288588196292901002626101536235423491117850657252560779189811698698950864013134277612612276436012584519197489532516582626287607874869624189094018109784031116607403226396968000368392598304266627587148710087373064727276094229004148072745963856312939032397589806647650490809086766539309600983449518530289508428823867765861019818787598707717863367091781361116620456376516325938228738090551508955743750747548662922877039038738716252394103319073751069247949085141144183040646872882436361717181558183064226547874280544932620977921567155115277804350614418963890892442418387017880568851634678769938327753745137513419355728874195748079980191280569234342711889747502464839786687030028502516972249640350763007615436725944699704717465521732470765822061490169766113912148695516594272593165961112678564332164159203990135732795626701325622685596391954943875599039296273922526646285353403816694704677011991111339661089799778633559280428919149429533503503165686046580443659733764288937641523380398171664111604959425271039894979588619082915598321490216604254810209890287354067505643267899813974545551841766410438178636820274414647715760989895640558488152062800015850160161621059529805803312149267393345059292156053455774928902533394482445434165600950981381961744006381399348912063276872132067904994348777480144822348522539037367156553931310176644676745768015326786946004991273597658047066576851997988410950805972589253420400218391695942638607490015940777901934906287008184578772257509795755685650462464328017632626340751652354937324245750097440087785302863865522522487069335032537135931504329279336996687531509829839226868217337783166958154353616835100264484787586563382916983795649619467316842154275325350484865889037207063347608974839336956013180502110371851283560456039681502516204444118518922102229684554580399980895598462339720688742373925618976571819159880912701878054602319197582727521738089390960131949840060005334711740964243680714790692362237103987370545801229743092498843247544640842879379527363785078745251627616617060760663503510031718617687029691936419571091716640821216895554641334052890501702411964673499515530395294598632375484096975634657585365234161633758057962875458319356082583757684690612248618464572003773597251644788740961925247765402263248548004292502581988965700125834052202598188921117628010090092728888341364987106296038246854145042241225910715696396160949290627251768840766586329650349448891639790576044203280439835194893819193701281068243476372765758071552178320748997247255897281167579989495156713020194737708808139374790589826680812391290846867798231857783547314749655699522397164902987296147422609655996893166836566382208861380044091410459562833800003415083934546082032528604608343212278183965140975964991147512122280157895524377674078399024222457715315594619853389882175999546976216740804414201566349608741088238954838892484564493756994384503491239217434816336310281555186218749468079306330722585517662204887161401532750525271256102079424386707172237044231011145755519791628467331926957641114201739911648008427807847593430081787255060556667583119049428042866716474244016231713546287789044398926232308157742142043482254381077514418597116616367819995058632575842727386072929924933240680269245698955386759838575783126490478860945402447085876825612160009704158939873065255732096682973550987621354407322856552229378182340471542128375630028415925112143710751334946363229208386077987639322153158139352704209795648915263922575897239698748559373663000527145453137466800854066225146816653316279627035426925831378450749816278730976594049572256572202019081701576149568612565074025618888351217845096697325151918039089310368877384189835598122156928755083004782881035205512736836146365775903124413878123497529932406833553769624765775112028900285610550224564652735691882120025676334928057786867221464300078357796705084841775740470706223921705173368080406762414239375746550998394470453782089527956353351386437835682503258625037090926496468441004852365043219122682766928806922733680324794784817802735946033414777764490480857494351577598609361641771866788025496531352626915049550943555346708319744119311350320029254665897995833035919823335446801219236473567874448514809928422940792386450398708200283090088655091488826980572874942017607497856020152259455667655718587673791224664475419556207421489156190007464516123640921832634330146480711611359890464071938009346955784712594722504825918378276214882930612870478581619413959824372304843223497263785583081785476741925575628993902638579650499358606743287979878960251398688900565575170322681721788379683414067629848717321023365361368988121823409749841851357839534438893040056108200965249335476907543261834172766318981282343109416372723872946656602170672097401054615025652091021695481760969701554811524664562271012325596811823864181692402089474489784465753610750596320489414130023020903635983755438889560060640258576664418662723059526085076809590353798334370480756527864937128211207390543083798060739919757304005527260212001198882818936605034478488709651765737631942981215899741438937687376255523331756166384043503337106423263086546401795144128487722803947069070787588159386044277520901589854524845184979884301344519327209039555021712191082074986963304610253756266212794678258787021510480970603271214407174861440332737556261140719782983507184701438640790949291804856703969750528355345862662409293938051782204372256798953030433370662321708212550207986316221615029243297325287055640733119169081744781135691476934955369547822343532534894445696440246965151503515906738237279515414513605765241147461644441544389626353707881437257967154642592767174023221665609085762159299327230303309686714807200739184447257871179915714445788357707283159667421061977887535347997860202420637805675943255005594485305594118490487118534773772386832288980914656505887222393506815616751050199546031552480838181707873376145137502706331460943917334887789122448907517731778730750153659929517628298623609451833955719319037276767433001362541586379675364427768988343309547066150066604320903438712638141894222497056436467031963069220467604995457655291016214294030242150289530689924340006595946645039412078975467225743779951437529315333249548557019755511142445294100279921166825558365396262105131551316167107575724263566004040476577835507009005332507998447754015467300298543817709129586506398396545919019294376087670754567789758117284779671655939815099627198613466116712468468378572267341427072264374498215454546056843241956958159890984854971673782716459904677088874601813518010881632666835517604940077530695447706689080376325794372392838075140025637264137286715400905530071876764365395758265847887938978250306596782335430331411954196901247213782745244286208775072448233362659543464740190903780819363350503231577020469864994785226528948372247381011632658310926454390202083344345205092214275151506508214839850808116475312251410274413636618598504616674910618465271085928554347908180060951514813281094371679282452595801987424797520927467469786335738073684915227511678155003651511308991285512691034945857658139906101196687807864199814273114350680626714380858674058222287111551132873120426969783267880114924299786208275449720267239402515107430691023452013084710383893146003199479164088754656803470143761359256318970672983208646501764045095814040479382888570741263144175540372381867528843263489881753160188877667247927224088225949210551014215666831400824850753946969911022651738460532449125016855290178515024465076963558225339188180056434386569805632954347098236090580119608303874391528678986902050931654250694500970053793157652471544295088423080325841249977452791824209851186819665973411605456135411175505682659200379216906017160890099749648453452425013267298885324800940086729818635590177394202898174664847154457952374337225578587132300812027830772527371868804848650668499816059982089772705359339060612239056590637689417134872663925278221710425564554256726201734163307132624866705592783238441477668173397926700362062214597562226886564059358955482765905537980112521383860284487204091982646873616817286169356934599806817795188260014871479069320121681473971369032550122314960407542995720579724875432920092252641858813374334154087433075400049691105129567707037954449352207766360583851351080028794280588380258209050304452080917315494612069991749341838111356016790837994225875421623849572099900136608025186630538770129392808791569848377099821505078093333650140043081986335718835152119725060308910147568259499605121972398225941170849023751635794716232621809670566734727219497736374658679370801816691462757016294060511203802033188169187661909917544983674713722330914686518793609685225171669630960313679177063449574497243646454387236476841781579895691290978370533012855347705521962480388070640815046065320448510798658614079935382055842250008397199049783042608268604224930632196909043238555318370027486431474852247602454390497719863285851050195787143991311199846459547343459032949808040957236798703734018530601036585613745899508517706555528001596366765275187253314958948469326825061883108970718501566270035171343995321961544528645688136638026919088722331955316903227524447939527691521937994760572391131229019411608710936707791483850978768850518641194092485122671340503670392365471822653809003854456761457154526149364929467033878587284371049110180292397551063550124791605455559981036242939791535057959650513251407607402542082244490910690861969736516326764298497081321444703472762668325302390287656973027879432209748118201893684071948771907060502652974285365308625986175818559484902971430228126830205212044123452902870382072028489267489177862649142706659105454957037728973716068255072540115131706675217878764699721384985744633521214817114048887895911083354900933071133856546228170155768928939271797136527856040173554538042517589947984141875737127091749305403242486807138963176470016121681275993318703141829251197629902987480566372197760325543029005637826894460492312139555414743799595526326371374540172994515601692995077929794037048252571466059975138439732501849076435157991159224474794467653094723816875787876566086637581937475019457592788867034499270014954981293018224759844084512186275894661953834688032759621907889633252860920765486650888049278045595210690965721439830023494353556711939389530940587553979037654251961113550783044256081791133705802303220186645991702713201283366174751713831892897964472424026782407559426295044156449674717491626780684729345639325104141127498770309683226020730096089894762497093676910894026838836949542088312415254178503751826742523952371875630082928155083798647670547942943706517496177340105305767173173934497756677855714440188435897635390562672702007714193157416988707969121721020927270960820716684687622869925049664349133485543774818167203504588825635811781302534525319659321149902068289997309068504844173241997587577533271630146191560999101779368088626296644272163128421407088749128802394958880976240047692297725472090716116329729753758275486371059338332240182510698932365561198890237974254479655983331578686631028876702010955427859260593825965727976054324892534245250994136485417915939493554385813230642803677786712724927498234121438133847097227326990845933725407405644611610446569419240838517039240511580968699364868824877777906586659953877469380848716469261582092881893213440161219357189543253308755763490283894448637531928423931404883688790295713457801964733182100095168606421775887596372443597767781487788289164403422617777486426809105177393894117060601072819347941991897505528692383992146165849790586904127976605567158496039357113540298428881860372516377683581676710589247305135255359616751528763440420703517944737212764080394318048223566978243662407476666466907876280576115577685131912528740763948786727537869426184776910316235956791021912475043338810276424858755140809798651964186335187222607065405766264398659795676971407824308352889311976715793007517996272783003447894345778773962608561630029052112807102741518212198354847088519118322790707992392283462465002640637515839801023687635541774408931459115555031396234573336262255532113057153631726783308228182108521387668258421816930115397267137774938188736643021673002215391704240966488532877866799739426812751607531252930134522795062503708959074199504595976026406209325213053618716642811181372841768262578690850575614617765105835169738097209099511947262294092968285158678746480359307968662837611666459050812978603442466976168630255266574137586081629838785800003220310967124062943951878022803949941179652787180894282272870410231367736028522443977496260231049204376157659207630244175977103647771530113508483658265002538790016888787445841730304531582872660543495785925145752700098190137103479734038175842569317407033085966226499848438751573443683107384440668069367853005311188985779467746785083012378102696787661724882819837153764526292897809326778140296618749018947030828505849625230128417612852896825306666467371070089103983485800219076969923308771415007839840125478827402843887517640145394323451087722496827320111026135589267046027540837153276478313922866063111240981933211323658917905142486006009254527748348909022575744993952721536611954147220586413226184895892060802426079381570582327440897032936230835885640540552354937337170952007317821270992642590453464455066486754471280807958801642797970815097684101441793312276256388732286916251645937781153835909833274867749431711508178584289981651946549088341365319074216419123939859778467065910594996210775899174685262692037331910566282715270932947729913279252779684135236933741413391402326252162281878993528152524472649606266341831025736559779168018991602453827438369688952136273765306106127453792747617080994065378366874322701262184324492697718881546841665938576608650239381693558642706701988853527476640283561149006857659636215102250360984737444582370298891857652779565632353978996633339041423609124471398095962519150479446960113856193923183159336030008006230004388970385257925089726379051364850212452668342821376752459372511847849147064291405418337056395658178531363688150027687151034913635879471001921743206341904008242941277913966764504837787257347135661964629955687850396246142372694114243795686651792613789450460994111782677212962650255786769908170078561205116707495188805871878182360366419985932622673124075064095125651474553401418748612807689733539047012374970433779187593402163834586936047646629198992194677700459592109780135516793094106784418691944382154443076205446690713265160406760685021772894817961599971713270504481854103113123116770123457141599406790315240364992078976200348241396831240989881290553050721158039520590816104857433385312042928987877468032471230249863354084217751451605565406745362661241889667936388436916492187061690180479757864984816582166932698171549508758050816083516637654325052501668766113337536255604648257508710719240257842720403588347315434552535352274700391163585729475886533734027421794323222350972510600206007149304901628809871004544754635326270652325309687529445954322450103684527475996651242062628577797558562323801795649989829510782224098051413062180340451990950606285148169709626634986231996468826942216025556613746062755255183689531005134723513674705732900657617960634983315831956665514849776965868839158759308202913597901681363326498312375641941133229033879451462740826531755509577789717114126651661837011830638260921434384234668883145390881544118763583135459203435277875021055301806897199135930401218270249901673970667831450776012628365188314303587508651446082211608295556804184658502053828642415086566013553077082295853057774460733015193355367917090927852905658977954118255755991053685328621592013486909277959937992937336541205367386086336545620630552705993934281987773035902256411969009489499896905539181825381439416149385253618516146774597038039622516047561469522446246737000752278606065435365279954435977770660617735065311897885987244467077585370485491500671743379557368804382058987905549799509798054521945226523171926604674843426994644162207744666175626142927101982446281274586696134765998281738062255778741675144003558205496793603997662994571796757353162505966310847400374044166874801007365389655961711252844094324601156185782796728815879956101826363255385869808627892867378943217346408662008783681564309820760310184408373699450209281991409422753906661799005099565893519974840137160606465103592594305529001520204293564502682518119780662962486377196005758898743972291949891947320052109392002003835430630895655721295026410951970628424988026377067928250929548867590609176609889858699730602216462806958879852768925725697755663918417309067061512166548214871105603956940488129420012364105937996365804683590594676921378821662197561583958983819734926677423661696643913858974552041665867477727749174517232945265573888780197084633512118030566121456617287273270709868498626549175229886502736524213389083417523028029742912357361177781085636769293230242727354714126517336051811833883273602202737181684756178463599651691536163353549654336106440437739096026235266474024171066295680378536417028980678087689422261777915501163933830382398641365140973652512518070655490563123018551503456420907526094984206584601457045687089888880699223914413118763620244111981365046330249859377042203193528745145812019134187617706749223112080338590832283354020373287797398582174822278010817025089202014964992261998579058382525060172220983395603049762892082769818732221069773304559967495685714953009933546164677442527468983852620108446286196932626085583741794111629297603094019859307991205473584584101879576156464819685423024825357303030250406363197130591267244621214946289507339816932593341948557631370215579658717386939090470380247886611176727707564443988545868314460950219748244170946924978292907087849624055024708739218884024960711499011839058823889019222767952747080177364375310116882534789387273340672447511094074103526288516972233532605386692930110200096289950274278566317237737603333386784942227099995372951759599058223324030896194008981487792621995836159371991891018752031673814964055086891649241680067994439649653887025786342522419135499900414783546917836660967588002341539033711748324162993623937948384773381629793343500889492465470258403436097844363830643989984111443252187516615861223252093449097596236982211528267912308902596731766914552483573769577763316540581113400991880379093163837635369196490090579750991874941299463071722022895725076245083800809549574383694297636780426550287943395048518837201587237125023936000466777639085333041704310821841914318727306576865388488204826741340506697968622475857578249732266912540442647601191256340570882939268801190115163460003174435208016767374344488343529947316190239129380892257514510145066188257516111967460596085164277927690311895493028367818909947752949298795020656097342461030329991621942022103211071814836926570192169231198410379198025882463887787044103062947898372765747389835242308082505248967880040396086215704775227938160270340466837087827291451628093421364409268418010925280196382803109949576826818326908625841460657035904255228161920822754567885643318208126588423175538362715016722141922930848988238184185884264712870018345571135749165626878102094321486044438751310578499263020167762466512407909918031359987183086388147946629730518336721287464821972300894653790352455732575899249793648187004085762984555311894065859020483803890409511595016611897447919602890492308097983088609385845909588659254762914777139914140878036375271512973032682031797528450306979022439899374070645629454997357992213242947250453404422204487555342253325462735474991880220703065434232363770009923331774490137741588045354067298285761623074325438484034328802651057306610514562450830104977302709515019903539417694427515640635366721684760572848388555732340675967997085765147967361306318064381508565631010826013034672165089772140415356784271841413479171707354671065535522134548622734025619161977892295146840115266036280110380069890490150501780910783580931383967764091013488616415056745027815798583848206411647390529559965757171471478221399180403341716588483515404733026783335708974096879674957475186631512417913084639577472413778233061411322928993777469685123933727660707299618869873139112018937364223783364713611577041917012632319751792859450240175067265421838115866535760269486761146074450521207427458675626101086447247859654388827121828399432732290605466314547523671933643621993360605110838822363718453184083039987235352378777412854842830738814038358585519455684280795185332914687636437667200712785262802764401168453221594051583200650367203926841984154135578524021146439164494823282278659765227799092504031259863923028994671705067616578118489932488287825552669089053591490882337066398167216963668015526495745334320643754627158872693209014664507630235542073665349725551277378731215931469598461007264162560442643119018313981589860213861217998715894706585485352366299092049104775801082965930930075064770181738830195911193234717098585868190079895179580268693971221620949424388655221239508277708691494759689357625534280904913098960981299511789296322699203828452027894724395917243561120492089109116841924689135535444388094094203855765538087331169457820279613324142998447053947772371379818407123533343349234244500561124809769116607556339040086141907152330907634461882187301689608909835604869853778424814636787217855133993966269047139047110467773760262064753704857586411729427472342525297748630892925889646798463635039826736969399540010666685254682693054337385758645319935223045828480127431579258973581195643311537544282591311539797985884565468239345092247151435435237630429066365719413322625804618917954547166264587693050911634191033099522896950722334721784759591700745375833837123128811101788708626368854129526203686356096471506217028194971490006260051840482498916783683520053868530085044556436670655597024354350537434659664895575317388158331267088925611661293642963780374972024849216530987551712662287776162468600130083430545591058945950484804021198012331039602350090568436058391286544433327892409487395354869567592231742393428753918443595132653815458431267053589374338003485829078454295988145450727581496566258463989737000099719361289255074968816105551439953243427889925465332238349953716777551205576664310990298913563169258227276600541191425756884922220295633540443419356662028917011158123410870611010936884879839419602668347038396220260531016443768852564233507167226662386896252905402206442308287404670225492572030092714704781247593523052271429789470138172155548446168339304468071514857920097692687923077736221584165785011366796123151866875189844596692499206981733477066268603715860647484046375428291907303428767567414645695709374984118033074948941954534904082760061367188247992250397333304371076660940972822742302548310915283861769252285720490867838104660439362464958909480571216608022443638898354474626097598257554721375281858443042584456718314122405701125105139068165751009774102547644489291847072496004112153022912669940069948130744375122010541840877571145414176946090224023939729300855255353707122110452906654879810395321472001233260105509482679637261726670251935994083230037468048665288809260007274114755455034435851727259291393777621934196937416151180043378970283879390338073473571985393619045295889845000819917034973218823462124724476292662263012434587886723596894361955831714361943711789324259601192278343991492551600120558923248084813010934883312126997936463239796504889242219625272353791501709365977397776948721809498410768643468472003443806587072600416204183395308301482311129813562374331038972838620844559832741518555019063533596178856063051511384490309334347415366716945780764450991907950698688353528208204689116000860979314388504031105369304350194931853747376412321083340677197605869626085442256887209211049868381394388005415252694800874199635750670243787557977742069212404461997825527391728870260638330991710388263831512099070275485511194271449831813591108419022332471948881638157517204900572407740822235560577305942876695165366206810425814188911125937231558264131213594776672737624068694956838518301208091087005614376845896628583703932249211039869897465938658121081025978259102586659169194656582856902150275894974653209356093944928128430457120937302082780362019070336039850970541934541917185044179660388163292840947173263242599679301470214955009128361033271602360298909662487218557054529648774249743026283885410921063295000216445164096708428790858691497624952491569177059302248659543443089875911654844896072048718527503048786284152689168489363252656244896466824281173692640567697315961058619699289805534151049016485576480129926768941520897608458397405857733961331119471277221993367989276179868234556733510663098314831540032316721076237900570852647994384183270273949699262391365342707123695102717816624262520446673625906867345591528280360863455643140203880604369491562866347080241971250260815477400747069535576967034847062778022941364036414191615045610684184258161581861785779707699551244007485583737194265797181042035395150323948790829566095673752679910493855081840770945084549412849353076916017011345805248110827821439962412459673753259027243917025118214732832012992867205451296761756855678159868383892595553743977423061103630964829902142714788368655973614554006025752331942839933166959758200773773369183102047529039133355095850251422462796714633251844856975242335556044742565262255073133457420080008095482813894923715610156506622476656829775236743624855536331176264578979923745525363923306880977506482920640266346100231867491237647978429272855134812906208498856816671328800712645047595061602703299083477092581546800349327616805288865278082284726832432350295440437039003252940170345853498699395945998536812924665391316696762992012112890579785302319544214686691865346218175450618949523230416427473970392739017382503968454905818999142803902822481885836692862461746315055697394581217769023084210739172997486755519218680719391590343189974909210243652802871654889078240843236824144356695507222763739917606991319003289579693145641817850803126747768828938709280286210949023819831218638187226640701465213801824709619853962576973798476465820984731633966579233375054070547896470501204130087806895533995895207825643113519867495319410661500482612687276090112756031352310576811193247376665264440397842087487573338806518470349617066525415153434073035870786404122704433080983458280371567966029950986383156142040423001167435170556338252140851246621447520506894665314237112872621871079838486549007425336126405156257031263852667448012487422714431103710081113555996964310142875889953962653740787507447232275709040984634639150452498184748854277314692774804636265768572323520694393227220115476580628174284694552972945000652369380737491394081023522555706045746629313937017946202072576766007028699731441310081541107868656250221480545897594890964218513919051383200715987108599597757680466313873000643285181840313783902576789551244354175676688146163359667155945530850689399394238548382206017653204375655162206783688554878924261899449527635413150327281514383591600085001718416060613111499978882048677839096218825436325646048067348583864873355773802922228725396337631360190362828412587565921196776852686870499752855775149827535183649851099962321814282777777895187693167921839791165554885380772728450410799921516194873274653938156907159835084536534513332421297335424430448818734083834245365650839908016788862729485483797033631736147024634753032742504416385473199113960351848846261289750622567675682188537673604481304447293949867244461255405735727334838243545182680470575841729164856824677438760666701002677999714844546035540998715041532653554824823711692201591809044333469372819496246349684999728683652799840766131992021858358474728416794597496379753216288613245871098591556119731012235200393933486967696267439032965071412241768656835692333579372695428635017643902902287467640080996307300766305943753391076525894149669999048825188906333533223955551912811385307485632042522400603302819514769170059248325441516633523020211041143307243700656845755317245271813404577951544298951370556643817318757502098179058785911873657528696198546462565137387390834498911598500260245046853196280592294187725109959608583930837560415537105936704529864603297734065880132176914909208891815087529520775182128356221494748384278508363451412865100926364683486162099902659061445870699297301985639113829840134697891393094400068105538203184889553111014499209240866890130469046957379632710397861156947949071556771697780076300998669096248731423689430918468521592378073001477193011722058130822335652107396132264287317984184470302442978265979131268827435605748287705949209525850783081034501568291142799760522011551432982030976136609845632993606291452011284433573917227368568374286622039449012991485152207965741284528034441482331061237771681347721775666119990077002243096805012660075140308381179493182285674004454061470550411316095042359562600839447646872308801466982963637839228962810546953277300552016463925495343252420733874947223315018764516121657326681035104844024672425692309435065023710965070484533525679157027852595094804250128037419071175729200860049732643581089336696933793954290802749002366464021902081054859338732545707545493385844835828017279295434792829394947332268021053834649416451359736718831030227790364781894902414272616836027176957946141280929282678413012659093717459505745335739955733785136745966878268534039437389698531645036780355524268077372776160348617106326055030594720807814199134223026099937298967007175502083248854549720147050717865372977927157930980083542531766710769779315949397248505774663185944924971344418155411606605250167887469983978977701244590494882975841417645809013053740659203784528754767126673869188189067110044803129171470640262367115904586069508051986884864259296392070291434292193639989798950185474245994480856829333116526510570017220695249535846119146115260567177380479034588878437811326679687769185291842718138164909808058423218466885994638913963199272114317077173156367873056635937008456837528691756562782453601730159305118030525940145708448338792191743584685478112034482280860433306053333155003919264487679990801885555550772714099245910561406219236340261977209828337770216684711773963640964716123081273695485574126499432818307200860831397966657072480314394417736249552890668382897823605490637285058919302587607549572024913179230349424507012651281978535006435271268934185804418806440792964816173093923734539660128023928534164477786990153674566969098698628776999352651124570059927071745401254473920270871088288746988960140916627055710720845256144199368392082340020014669215758754473827560081990751308589728613056887870187134484096233990999812993099596872142511029384411297621717758046863502880515732457826779198909329589770900559611554146732696987276046955721306857080221069733598155381010924348890844821169128190858856360538062492780702574641295035735348342969250373207779358542377204498350427118564671773549959202793058834711369791383517095584057256150495583441571011996413652773248159054537933320504620871773716965642091619978130699510184665751840595650230494261361545246717785004399537506209541114157592931403080258172470761835258684373025998909850917831702324098384957392170294189314336365112370905400071674412388778263667503747763677937115149315100887178911326622051072197001416957376204604728248570286101809934221570959522573231563442002488657470052404090912593626843402596269384987674103164985514622928074826857686258918587151288337677287857521329547812978883997938288763527309917490511806414422161864487420987828843829171168292863877528929115455941107299245430795932981277387865644407348235058976238211547783379555292375221504504020860598510804814394920018553418298891020948229754801178064080780447919578405510810294162947966215066595466123605932585848417876685175051100789202291152663945270182093316621256215053139539793334805673648559061153004614460185639596685391658186838486666406380925585220638662800520281473306749105262152647068990707730253336164849861177919110728562316290016841242678725232721146932526663085015656447281243577455733792212547872636179948384491836178677852111956657781404447770194071247170161011861096525500959526045011486253235595671454328323639528344230571044782538193473490786500104764369150685444031990883633166749625761084913028194333468379586622668380141502701670733916706506294591865984421054018130233991067994311090451805300499054963988617075613057303075695894279941864777346298634427016722805821974177801658363101518587003485009574113435746062842729626614361655228751184487604132055268514372087875998278639408553104871918741928547588706455618184256265479379203810299208321655683910272260880255167499496925575397365053068919157656567077495900518530999548096708443705101754454238372537463153206757083176412478951146221734102360713298489123515379738657181303242403037625246818253998035053948868403471047173204001493326958285282025652792957298759503353191198196089384466149306014154141012797955600284911466803132460019353888059301332937447245463483662374012748348050210022551699931934264779582991550870637905394400148578091078595956064486121711211425162815444915592111294483085193845240673350651718794711939297940510166507319756003355268324999829663204781590596094861262545599766910107375067911433623522870764782556833338800974355739922670291967847614215795997562502891874821292739939033779047669185995357088354062756850022853095288983528299530558997085982055368954475638678228499249480989692455967585879926616341789202050987175427142392235652671725567622320018477423620201093782983047395226914849662389221388936395686588604919164096618819535586935201997282798953921274843610979703907676105725412037464136093333500971050976656757409767213391695258372360984250902313283692036963027877579603407185159367762844223466142613444228472502916917678030631328440661569776887895521192400619429907038819068225584245822380768963077595924646600176310031434543337470919632965860736861572692355060744117691324435173126929254657848769842664296616114416677300951261274330323793527767124579893709696385283953029086208961639591422968119037956460540695639623016751780268282942828890998536298960515242438160741387592214254510631264228466156775196473257059939539884503229648093765263613897459405214127160047746657537047263999295044334850928915575826015834676230764532313081278053320745765244848548219794771208260207033102490746922224041012422100628235868655018437311838345992298747161215215539741245931285842867254858758015890364487916501411065508904114078375137352675427779753114364618875284077597910425000659153483392836794935663077757619592571970654198373848484250103231773960242881268255394675623628411430726686357009799939855965299490996252750920057031590718532129807229267348603803908654694899236892894176908451410144685054871649004928048734345997803609442667020847414259875296541386360057186049986833312408971511446181658287475067068731198815357827211660508547286656636422187894949061350902458650584225510395132876847781137468102553776566384107396191737356093883910867078463978898336532957856195381196226296483464405435146609063224201193820235401432287973245858336710595247568266340662277089263802824092778617257098223177736211269658226658417094066097865290938928590483497135685781958819832913993679530935200215838983350642068999346243713694492545268415338932130866840856738102308601539176565600778853718933216980756180922211467807680451890559682745579593878961404331849971796747681441537842621903355893363496411434523891683117048253282934293476508169826103373940340208192325466533008651284996705708916423485743375698263118156873823228152614164199649108992968664470862144645800122255492792940343666659382535900144055109349937305643125310185855816313207541490909436038578027533160243823664894702160671748132488281646337687818674257009415772219621546530050198317402549256266040705521845472437340279848787453468203174748266943630660661502930252094891694346277034485594384230496810056861329768320792069193941472023291641624330782705374597912753291351167149005377658151283087647948368321901038315439171837256199042039508182220512206936275433085949427308300686613877002140710725377442532554528163898622757762726878633048479234933911760978442485470578447809940847486438472565605383565213912438457996988448784749242727538613410396510311197678268802431370665040727882823560339959792672740897038555207568073382545842859879686741669484753794662420918725629215129836959320889632130296767836320647778436674451480254674820763369731789011852699573429451197276954767362233276879060168122148451555032910944264707335571706643478170597176873446550804839470409032330729874146498473493199487332173785849743214509003151197683239915834155868502396308740149365823439033886242180958921543305882684747896450845646116829951701161521173007082208676902585795111157670283714353102964491950662370302031880681201017485700355165612895611720758871539720322068955004990651630454996744098516557985442796655372512393944639853362828194632816096780164839734755594883182560698321088490354899833866303611247183911011106093294966905444820190524570442454067570223089360586327225020501735643159566481268864366596957647082934260812416707158522445314432620017342533317493777220860024702862737201721168257962248295907815510817153125416576430537443949703008131669548138633242963837597539858066685093005585458114374073969637383103602628554373271334092394861922995504245074958886599240544320086632669255436328023246960421324852578338009466851891327412751386098650508996351991795782845515614129461021361641041007705420164370297164819607177129277378212025133429574396019931050110131685508851001715510984136269035553791611266581738039493804980021213085148183395558474286855320642622673996774786868262761594922819897779449684442038711009934160794552373781266195863227960794311665066467974041850951449005622412608514446575594381760911326764417005113426521940795545385961936706098519239384808270005710115112404352158481150672667540254166145480581238309286429025990273523418992573535220465790395992555917996052862953354147542785798284657900983632778638823667561621818227790480095922623425893084827135490282136811684462506892198285195158310336085876726919979116788658113583491376686276480395432361959398289601442947994313512799659070506354296403362292763777434704090082275692283168495386303451470008937027629553587504347960230055602443386845380194769416241323985679065778198931801313207023211880378286982990073869630880628103311310046768691217758672650782732044830969948397131543553066519016553141860173411978724654851218283408847011931812883159926543692086643705313487895505105889597747333680680469420514374780591713959824226318997822602065102859402865984697771165679246566112193249583637346589237264016405587015542511995755073300830922159570951507219143564903326562516784183573236145930315005788506367360830605759140655055016673192617376264503345416170547143757391475070626957860980383480790665861752279729871938805748114227683940541971514010629268762187418107764088514673355920126431798192979476785322900635407766077252622186913132811969512848197599792231141994692289295322702296489586755682337380351080661751019596067183119723699036020064982348468864090310329052499577587682617403861638156533328858655467015945647860781801719821213001279688455937664440879561410174885865255301820718969863228056205985959985098164085644747886651584804440480364318637732285242973846566090724645942055211986602305186193186536337804367948254778722445463189748300403741665631683082329638354009534924146578729850898443360795619803534462708712409793734198813163770474561908157658432952276031157935605637316468995046207536192708932696086955251788477555389109718558084292993100010967127819791150353199664849649387553518003294636872916907062020297335519758141515020421247257245184110316222185239980444806854339659959460753680724540357871692413410101958889529749631186266258115595836148621084807663146936743209319081070388584724826304538868726799246497036563402228201614033073030791612522301406912041380679253500748075258271117714077535564507641237838891834475999846459674796927934609833892531109491528317366284840784920248075130253522220442340140921404748652972096500414071010023945276138575854795000283563287224096903850018932935925510945381708924526274699937488026849764345883378925198411100765482000741754585153334726190800889138705026730348867262062025819991900923208084975208766396832627238204174425752562033077883075846076796127329244946329958709502090055826518129725336073924075085592693631983523911202226665608381250011126333095788658489810311066472841190093456329595965527876868209855256317008871642439231196255139605753138257819624247481029471545795791737180477542856997911151339984944203931276881435747092933656518889414639571178265521356146094173542480504794516436187949674619895516111246936023337921651944825368201827461173629643719827379469375973418610844294552490222000532686791285614165237171318339865151311513104932295736151737586705552611370841844757440744199715881097544670669478003760266794720749451707480914677873538650806634626835514653268931356527874153566303865051036155812393216317176708673546574090257021446207580608399769185500784260181100761637686259662697197196866720811682910991977675983785776751335838650494878693856324795344505677305815038564936755224619682002181203265541197402975657258544110283515741803095464099031391822212079289494542524079448742569796185286600082730374729379150035741349456251230047817282925970375711272757782040294581674974350325757324816527161786719307926698488436804363937013953112124041227565207482325001551602373010652290422635215223735180242341483915586161364706800548007582999159596941284656724721068936662034727336719102256788172205823858878897840150935209165721743369787616197029766032067696598609759284305010230150554508613992069801262639179423650592141415593942427539395215877178582900504116510698275386691484969939368919909385421443943094907846396563294699115030150869117934655907519914849502336923044206435332893843998919701821718680807671127440739514350476100181826324168542101249545722877075456459144465621312587595005704225603209379692018881786669930427403423087858233721909330466234964517195201525158733949222168824923513640608227794447301272492362040437307556091881951911620076872049162906546470306604781854684554101775755748942218226911057787172015238822093441236093650182142752253300936101890978316782896073970996246803501651911662230066050915136391938009195254718944398911371997807053536921739560078127097675106121732450559690374473340590611251957209919107998663911820340874018254574853465901598763932883327506853306730784244032667478794842068586986118410893916850929835874262937669285433068591579794772856374807666315230520379928066147633308704045765119369308665072931197740039179761736917218333471191401112820187034325492752743951604815898080102976874957140615544244406503591904049766943884507160439251672909980330069013160918274821507511807490083174687654830605659258937585152962955226101907156946067723277586742931502132414789838298065275596536908236296401297341085852534943356484389239993260829488895493639612586642749862186686120270140679270061780597786105281203455969829048155638276942382672185431431917107883123506200884548959068324217652996895595934404221824220971690535608016510378468661608573676344291920123142666214025705815514011027438255853439303305069935634468623360551399955537203847585570837480860538579891055398912027705218275288455894168579308439522612051178331166293235828988223664886866080242945323959595493560408991043986027249860056724142515371984315868437877988209332700771345826147581489099026451917958681041166845851726217127291313898420445730716270123163195976677017085779074642297819759516249752890477721889432435350451574751249080784669280119776468328778652653436341370222185247832710192254883990527791454907104580845157113606120225814608127542366871723393148237378274968261153419701813132638100594946053557975060765358765062041250250217124203354607093058720885072611399269659360794697075632061945223951708890195788340318213930818373654702515699675038200203644054756483720487763294183345432667754478014132531236786754713902006931268598914458992591881866970645212714930857261762924829835768903901553020260644970263148224499099057157356338301105479731972520335299848666041583406260187315630194435894102886852547523419685881557466312058435037440528797657345514636088983187403339590915117198022170159606953311669623865251055837567622955905642444663071294532347654980524659878024038791047219835715137168616324677412883001260221828979982191293638915353047395766913490853944558000791523546169038834144732809181299991753301107016828563851682397666860325107944606364441081709087951154814658763590620609609792535506814451598045210621450024816408573399994900794157184002689491209011643410969012457983248581509413570603848238195687547148438529925658233024303348168322246968627604816549809704640925119961461330908729668834370934956683186538419297393287089949236460930396034523814889369476625663055597540205777775109547003723274229722680513043445819090150606447327992091118249671852584902918937158778904448335418384600227540007329796230174565168703978787931369141845812582346080933435443236111846631021760491559984168965795216320114226398183841692293902747132668292248549560540982060674699277054019043786739745037308308090229759627956294002277872811781920985738395542430110109748397146818749965074717513470770111582835507574194383740845847627534322103425901122455799381086724352303934885466755024109099174094254130535517898086075304189777568534770237014857815479077556359146659140693182918494817622902302319090777338176689771377113310327347212244755019632780423656929873687485364330420689770432429887851510876633071975411938842761772838953321741131191960411244163913901309665960657400387065634376894614026567092275639748647122364261189825115566914731449093977832466239643242530902967657675653337421626133615085014740164434290951873046821894826644668412750780087370384966810778696942552957973013211632333900563231632601531916094285862719905342917276601721446313784491213234506752586295778498090522664251081718806578091090320592430754952203058961985166820180001435182543763834365864035637233312085930569777497895034512531041761865947045341687057039064617307082649717757888210903747364387805118646323719087816310497421589349826311979887451779099044945244257247286430561538049105529621120434877177851286048977226759606446849538364852151089755456884989237417632972463169230573615914135646170481452560595475415336949526053175226667096765528822798549530128652316867767862933429591033206575781269696187047691443870974070075224131751691583367608260852473629111877121759238870308139580284059056038343910409144187219439912768028602864743180448177503510605102452829205230331029976061352126498201993250403778481978831947240815029221461892999575881293871459263927639190649278300866999415472859991978991513943676285237118829151395482348508319690929431972726526844760621573108720308324390718976757870747349083834252756060426146547444167822361326019440331536004745274337318295724631381612912542361462573078929669449014172029232564970767027336410906880563253713448874420834485820765604149989512875698385948406415773674313695388175113971837572717766393381816649260347231442706910077289446449451672441452121022974203366220345619879920472401767245229810402652320123428017797648439736429684172052561396761848650177566166705026199999571378721387383915403061555417988619539132410685231858697013697070561246480808979210108360348705618456034997181860113494981147230437127502175524518823560325245790543447348165445120556793211547120159612948509086458343588384632169582635150973588383054748005706932412200830777842392301497809559329513708722230176889132424627411156495522286467179454957718199372273718281314882378811350751023983602053771495124465793285727063468039228779919211781824741318518917050250070820972940298445962866648983052490568808165748945722594303141869095099101707922133112019570065257981934190115840471832905637990089907620491863773697343582673376158406613241029190855014331719825058495630329989836658944756566978454897158207048437455991651648759425169529343511644474604138029866451448720482318658878443232751638641999856307284957109435333286231345646687155958467911111721913312816460196053863203172617876599192510030450067946913211646027564548693577895026078480096938700309236816133397383656706200291866694547074569550601413329348649147090134071948579214050004797002658999354373529560635268215655544197873362792611767630402376380228623929270897201619897066042823999980199266725929409986491150343117684257790524247591036687260934091392468889451935373087482437054876129480259984836945803414033173205803958654450419913021396579935485167266896764953215425946345226343204149498586549801475903169604156459420061570432100518057687728086925673463775424589537156563808852218720408494217327962315369519594350176520444027224985938030991631832980409698495213684343917275298491868970201526323724802538848372554036451587298604801121705367942228752533873057544679994595315661559221474609718073865810351620281346304476575128364590734104070440485277130227983854114796730753053725900052233413613048556186102668742258951478828643462399365710367840762953643077743538535980352247377717950183785544139001582110669131907982376275625550329547349695679703153900742399737011789223053689828354348120948846357604919367588033858882503018170983203738413956672811889681409925108181005148502477315295131396971817796923706325240764148669711191895574186228749453984884646816391985869202905799030808948286343301667428718739597396671182362441493098614208606393867145680602280459593723504174118972509669993859981431995994820842685728681305400655537256556962016618358099039764371718296746709823372615648099037758759467947997589516932152769342986044383423713029634312001567598680300737898282537807371604240169785768337476010909369991500570192768373961938777629645403492170418053112462456426850258576350523053476824963578895533886763290977158627057808260467681384032341886438363980880911412026472824999656071648433953970096565499095105734361779559249443921934302176137195663517884869969612383787933462615513639237759344641707444071616725470024675004086086434804650728286002757809849632836267361798365476491140804506799598526180188097329870808383712555412527668232296514449544948399709845660013338495414901423032050892151751091946384004911485622446037910301623126391778810291388248763408879583293727236367914951515449595874052244629656191536924810080021720214525059158007574867539607277674958533441880189534217840904244422140718320524145138490848492383740292985558373253052422745118436741940239319373541308920823160681787094608714749033244222863223532268389014171397814904799852498340454911624296498180528473207281747796927244581143499620600801377725106888393216219260824676990263865150120739831838905944802248149626216002052944253015967433507963287164917776849888694705269094561233215098793125592444876526531439395743794927284447605068307864335133030348157054673301689088224921031874277000346952099996900663216566296399655206729961659822734541402366209457589573360562187538493889757636815592203375719012231396461709328273353627222626973426296583898729105262114039200751886133572313009164234973324232777041541095583000245263381544156391601418993831082580068507354151635737572782322527204671520582042955044058276135110718129352743079043172036616694816850794059039743221306509414547581655445277843262891635530127404428785623133068625645444867414546919268477660834191747891782823808555601613915035085030440520557484059828117801676673056046941151198260555054452825067745362368066967911993793005337998138408822066500746523617559590739558640631176242700689609897066865623769655240139416683088311543415055820231477785631102391435649452663700407990107924336396765977196950120641269408817760231090199769648183722921168036876443431478481441922711643331382251283336249796494630039240337023127964593227420784161721600127853006812909451064970949071373593697656684627377987300236795231468622427999850923995951693432158819290471501089197478097689910992241587980918093333824216555914996220384463638874606912480546224161526357656446823748469891250300402107840391236177482427446728227582387196053555854957395292296534707190830187773942331549574205691310922297797592638422733841249612799903404693186743019642257451140720009215555917525045422918325356469585059586392907060197318338878486043759629894169413469517296411173552730127569749321117403989040307417164052271034517677028264262898422685729454802925438681626065971331064537763434774300959282332997973994234620239657914050721359293340429617775227774507059758374751669905843114358884083086595445086625556170767484007922611928118829520683234472682653028131348811023986770495455693508801144431887132345492885945783010600286845186830000848358649941180083300374593118479595263493582796900638534332346602825091573981348934619735228291415818305126016038427709634387435966903628795407309976979521359561675071080609000665297554696836364606203374945620322760141804766427314861809497007820630171750007547306988105140972896072123658645169530253014235984234144911878686081489645467404887742764370106399451010966927026747659403826268472632989371544495179897130467347080623101594940132134264126336804415104428610392501896396567777275473240319784362810053888942606422298610175618106575664960772088013768776197519897651797311252236211209535109956809990264457668594173055987512703528653926176723844399305231270609042036236073600894511991641842738720167606735093188308964779151244449497082657994642946342748299746895973068847685910058111074785555255567881890082189343173687297729641030880163697378469920069613787083511744149500148045072492009054883935243931764494281514141441781652814828154843902210959988333525240348980929482765199655575908176679856648726408720812399501264234376908059875253236966867876250252848453960431423529861075261321352992746498726998576472638827045396891293975636616760043159378121144721481323906151758097571389546639443752040542345197969667869374515562176080262945755634083063082766297017300987329658574912644967861227422556962841808116453379661000516517854194289534767494270544126971639659393207567494588120464238955994449324572568043316807703649403398665313715468067881938193508828009377388362266317541241788675643439054934898844472881610393024925542502102529198744204032434395322156373364391243580558825063202923158737783877538348347888302779771842313458163265665312864326558029681972702579360341340499594112020045948183746156984698878890478010253389215654030008677537438633794968860119131537050143495915788022614826951327290290598603893997187200290211115980240590818614729780391371211391868640032969099996675926054488846338158287488231536782973817265351766168356587471799610538787345660556209078056919740094567040846023159564651784200528400829273748004605391296154497202482338674202258214652974441963795203212868880290701282131415669774886033186509527600520060891553311858680745562201877684137934545092541741977132057652324476906677527188090217891208367817305868796365534439506848607869257190245402594340225019305643678718681440796604375747671684847776478731266245890886505694813377066053458186095321381604057247608478426078887249715709028694561065560569974808128346923269073573231308317613649095728179087485050122023627319316281427941075783344961747289417030706360172078310869999069402127207526092340147788699022921004416392752113926958273644335016792303823932618865637417466046460987041361146567835161042774917356801509129757514764198173541523017288407808821531540667690209266486320758597811091818177070263134990507630405748831791020744438084224430861467044877421668669799095480500289669330916000454386762424878307534013740539136867914641859652843913905007316277597715012280338871347670760670629481461282038766411925883293573527992089196144188565914751361162494675683098160991469531906342365757514642208873067938578176126203683545295978614005523110205246844902247588093641798201593645211278808197411035567553957632145261375645966223063911445738453308326320379157010018197564387088588228519920031374386688058507629527965821007616875929177125593149314276762111001290932820752882781422531795938604837491456029767341382133032587284190619652286503986335103007929779757497276424429684208514354167656386551944694119170690687547945162209703286346556051198765259177574317361870451571350757997738365690804687738450565729603825101551557423445073608804764000545271940773112013811213099495799147964033621175365012187499171474960931205557679713467328873727474666026077813909200856636131936012013827248647371941788407652214377403250210385215551669468117467927316159940726556411812740925587759338357207448190317915284274507813445330360097108626417791650711987610889929207268930524925794060269487446671064788432193549884477843974163628955066841236839551329828485847425640163748523956264364693850257086978537723624642213605129593544435639222140024633564661844617400902341590088970180115043653803316415826605611323381821983331051064893978650809689908705125636962458925112450140098279350312173857634295200601282079074821845711656585346339263455247961939532377997647743736259318637806487269999206073550177736101815964671281770073488583776928992504053977830235774923320500154561846464333710112501714016633645688217478231544062060789887155845808996948161512449000685139914913439229753817177985919089364400077420443071187172678640209787480037154252615767516113571693413292427007082469033773030300580546917661810046069675619613431885110150942514129631672591744595534104729572521135796348134088956085761462447436700664156588849888639290290240607415725264039547358381886051747381648274064739099865536523209408361850754951405278565621375685181117815606905572285322672549410453281141134444971181484780785866843143800529782604888129677818607696683629256323050681066998654410702739603340135823742737142563012143645560700559468600285256582599599739614731836054004129117621210606220588412478199367073298971537275467527160145132210284240723627650888774461256449811251368267260357950563814729053583455627097733894674412854863293150605627204534934098598477424060872451407811127331540399986495602044203600362840792351075889640324834001877757157243574598217466991960596122450449850922180475966836375929010122617294217636107725078786053196159304179474665803717858432761043970189672006656449151229253076839220986011911842482345522424798381206387429534686678371650452562301212558124661501234015075651132897286088310236234033356331768735467593812638116868714274413199209750973679853789449914518573684276414542822850806774432294978512002867957152709268901217850925957962747718410686055495033115114908097591252218597165320318133965940340082382375851407777956666680418314074158074307992981379818806481207426663798013716492512273963315207565397279811741015623598104335113272171960930535000623981224551277379644112669833122777933749578032635110215025810887029276799892573620436912272987084162371609180207169991260434906027844059002124319488243009893168549393960991192514012149187103508985778885363652019882714060196214520792452584927651182578985031966312466337428964072578301477316169010785651042093624478482758061754783726124501377844528099729873000608308141105475109880197244780763618137408574454392768985683495802520098903090339118662890031866957559379048969671154706513134539864124874264249686707183185691848692397388273831129378465989334487322491013588143783667609919407193393736156788555646853144471684215180262609328892772904684538320667935256443549610210474897935954049401985752688798441246759374210807744514025280477668890612975414660457110144304176097952991770052275640811821997173139246152424532719186844844148916554430440865166249206915130396226006340854433786515564075763699276935724672630828707348219958917394955195606577366963461046194249935951557159074613177799899236113976406002053197771289770745669258000931443300724192124487022480261420940960452208565809359689286704900910190239150964006317824049360807260134205016754815425044464573951095069916108653081037452465222588739264591190832120907874378836417220178406650278262894189143481181124840218665561325623333281977899452581633651585226366660926849425748218660758942917434529020421657733889130099625196264911498511059591866078439575780551808313385704615563864683187201452430423388503004357668131216081477611840549332758993876820723468458960188656881913022082327806931695460601148401537248120605450678250415137218097859459277995171956696963007685864813603830567244581397232693423928333917336244285123603151668597571440576451447897995874078795697791301346425753599905566571179492943085150070621538439587293529692718868884165775892707780858924541065857550710547344183613272086490743876404770904955409972655179478759359833176767262754003631904597359521395051598283070237238204602452884558942554633078446247704323326705088200111246997618254221221673323198897602561883635197125298040842536858128221815562453921166381252431771474354111402859893646227858685944795068926231019387486486023089035812565477173163924562254559123501564612937070441183322237664369180449182347641844213000647011079140475862184007570142215529400401119753998930560494206270378048659685994412171032890925128854233372431305537511261844986631575374549400137319618789223385742664267410305344975478196858874808062501065182924668713460458635303538491563709419838927033787329511888474750572350183628518778582956872945412753310107944964951453731517386695648407321599243299394369156090766706927670345688554446923144308420254190991638683851027508259662203922577982660512025235179967207417849667745049727861427779849125207951894506233268356695830171838524438383048696326234637173716174488845284675878568151998096274476231093786072713713953923064641563669200934084374184132593117840259636307742488734076987167563372712403599988736051601566942371163869915508014551167883238739918325389481555389089187059578068268016322832108741261524055710125224080606652660042519740440974427342979016061227488649695525834032979736619157699789653595155638885872796943588861128142140543960315913054454964439659986195976984377821386589929988272411633870353190832933307663922238028367180596058702221614533208768098934016448426378817838069375134420649582400974598529095975272857786902242921515083147286716414648822974319811256587126685876326606424778001821270410929971034947125479360131418642500638421377678601001674896918244238582108663386935289553537626397267660980876916979798345719710147427477582538571930342797023850148242682287765234323058019321839669568172370320897735153668286048630831173299550158594508051657114693314262226368038078071102605133880234591784115434740730859575013599053866292241146702607800508060319730473776553540770328444948813557063948988120850006209498324046061553098603370545930973452991119395433282923670445044117175507488564427349388730065718708345914935285491055318189610510642795604170445773244646684016009505942677793100812539497957389154048854633550239880069662880363007679419680357389419807357775923565174306514750150090838437709135360807688095753692827810757794414045367777109452223199676889589072547372549229221935017569680888785341273712842793928155478903215735478141283752334072304026849588550899703007368044201353344345840834449773745221473691564887040316723781097468563399575659970007925674125689519890880337566512095694944380210782902881343916198346625293970627386428237703163058081729480766527345203316142890321016873288451713605300068199691747709029813168974989947762086685467078850022781991184903302112352656549051406617665987758434623611276726101869204877543840505039977524275365878057674602710926750042888562315449498892399931699037851828540286896108168046145795742848845325263232643198476405638409089481743737677038302209334238504569906257011380504613157054400559680832480190234103213940253801811018850466777541207193921761035139550510106801601463804355742764486012768230689260111112285444393701921671833878645381693747632304797660913587660205358554455185500173534957398504993711475353924841820221952515711449837879825080255848565372577726427566801182581360174000927838692492469635835599088693053439740388496128780358987357074574829114659899675907791182759882596002978717861372679975968020709464546605550412375771302206136123115022766559370263675975610506430274893277667332447062698019604555979435832335824915112393128726451967824108168165798487640938758067703037015508272502061886550857067268425395379377406030350316306764042035123361492419349072433412188013909487132748542808094290169304422087644629744683281983681778405452202465030659418691110685693247153143142432928632982904587029887373857004113812459758151122770616527321346020955688965680073321859444657983584556215684700948799504946870985804449021370624022551201487985117037865429176503834054952434220241766509895568434209418574012044459719119714456552747613726720604510681713422968727896670778750358668642829816856636873702831356488711705452441406560403871136816952071214598869525924260680285149070473031697906213187964798480457408976999076112092586025334991351243657714091002555845292224463180247063973234837190347980193675132349561764294631156373399304097185994363972606934740228236767025365989486967411036729761424623229882981705760521149550433202424484884621930115061211748925151755190064535048582569536572924892366847864210810037898483768104503931228659763194558981024422352093058828748308710756958831794040893343010915163560796597095320876848763078741383619850523839862082930099391600571924786674847735069778990861122323153156937130799975117757324529780819593746074504920973204251554924590004500025716409769982080169741338642743878559900645530000490470941592386296447227901949205418376065124938808287818783062811080434859960024881711519482159017052720456843867123848519720459127362553786333783092093668378057533849456364315184477859952496842825368893185340435821041322638570767980263037696648195365001828429968382990426877820430544214796412180712585507167345737043552080086291007325530918416006151352803741365171853306159943930794154690838898208283688890842727441204908944958313046135722801770204776562298750507587553621729453297199380453662450677185889119197389422118637535793777502727035998854030075372997337692066344003431013791551831334757161659658550774859816537140996639255128332324925148372901393655728187722749953461833838463813497973826731854679410786056589575134228271869806206196477571846484473348862097930261452849681126687581513934622340303160717017391450563652537281013024029499711994099684842493458475880141563118151644900391999926612525627615712005158524199534858599494178385466562927657410509771424704474785967827860688687650421913567754240933744261410476598179986008248224801772663396832373364488317262030471513216486633998688913719334744826355028728164131407327855616244405899359346533792583146643813044338721075963581781748360529112749562307442301640433779239015067120243579562628597498841425114639056595460820614166675274415707841463959685425656168462777547741987917121917306324273237632911637831718597000504083648046670583047915457272016879376722746934126896706687757630021703672827769249737094088108870545374868974097081548541906690511899214590667694250357073045774153136774967113409050806898647785075529288734686859105250145998499874059504684486188931867551776083926494179519871579856576475280969532681326337153139816259192156100358935895654093514019525770847252482414702096775309281713694679926633213451908466641269903038774046872732598388738407267573133292351882219952569026187254991171035453453593067559553819055570162889375492834464510539120331646635799194397621871240133142279353382496373028721272855551513828644342959002943630511997795567318941681096714424740216666239379126607527760649977772056999336070287557188733048437369297244181065593914301157136632578058228980734378020032247018420927289294554943308624464097413928486942259440044549774020846035865635876990104500328505193268364174471331925681562470160402461914777359691849277887896992617107323903293600467446953261124759411335397620210006376399356367345391519504696716045757558669158389005426148307566648215594265647088018843688168358171346360709292330644943573210191195126796842076952543028610644277528373601033729310736801233492240196812470303623786002612020814138513914286401564161309223639017783497647573763684161645230390553114193715171698928298613586000408138767805059865436882242034062761446215018625085445869294712177228237803240793659286836059026833543286986769845596242430711783359976701285040933738649781851769609739972033192632266884012661629865789298710554773606818514170950847223437603431792820226816154753592233724900914163026195316412182300217514216947579854648438329839960623023362288290384754107955938717268945170332885990559208242045435111687467065015678847813384667282654323282117496807034884074467760040467101336846464445838097581874846646279322462861967405125642685460748485178888119392153068972361934745447480824947685579805896179704791206803242740683047538255219236021250147655973766300556748856446144072494940459206745179378761526304672894966961450613192595109087893088781842129100795959886057970176525765624304270186583533893183356574704062971574817029037397015588949301036303665120352868340569009020314521323006421751226529851441575878015015591066644868551240994747990460881964473862482288476200726125279875213744260655836373286229282548336472985616378356275599895438143827391608966661129174809520698837467814372752271993724061819372402634897689809686159513430202338542472962114362073328664987712488797960525302060814734982113607423400292781561659431308410273611736299045404746720947738196614306168330474726125484678713822839732521286340760817448970871837054631066825058071259306366738685674079392770147275154144335805852319988089214574221891546610973565396545055037062195726190736336791237602869628288737107439136429348082392790387599314797388130633008480793112721491898732425056711392021914691259539912747184363298926468576845114523222636442403562343687973574331963550575478300370127383142587433714057275766937762832283866634883178606123939501530936190187700616383364952923385638880935536426935638618127863064913121075702978866123138317034033214971054939332767291600856056858343734138616313717631886047501062455107972253444705314324737200029375409019613285175708504781138323201810855395369735201164360532829356411571259714209330914571081388333660791712923583680471472469181623052394047187733081974055960378163875813840650563293139879341002345739218428101062437230744020439560047753446054231760163389985729544596667033698272881740665266332381685540478005199763300524941853909141539041977075626152723278814403557406887255877037149225088740088401812393443938550884878440453885569430450985196830506998537531079138876661781115152487035739467980885638487653265401768410345634169128846503520941526963989440049827618968223685617926206578255307959705464128925288771719869469959586288169843213343380459172950873880905605185186889585912239019183602312669324444987174326511783706346758762067823848329993159433696863778992722063281647545997408457132767040021046801919326575925489586732423748558244408423263568792379812191634323122679019959560807148900791898070121904633994429637843746767719886337036844236550829098908304794820382272497992649068995797769499376679161947176272871256468583636208965373448841723699384231734832829543234449744606806485692676626910224680326459019117502202253738603120049304650543234772125979383802861294106267226681403659910756525588376055169358879931106335252603294618315959359417696618342437878941932331855025526276831495224264555220323226256052497917026836576925950808477855316483165998252031585621772920675750788870379552000381580459610051101358310372404117633429859497360595097035377872858057548472364634343561486721901661113454709956276506895296975872968171172530950297978691623325575813020236396681709131653104080098086638140601907317207268577878416042646485396930848446559580412880804520141585012339016790616313092353124671406569213261537025872553771740014807488813122167428095030199911931222998768141358829544909840367053766557222319984825717291315906062915799877921588079490751044781178769617975770874589400120790989841162959843125089149696436950993568263599677162414485587441684843967562805374488250603784768417604337491727972511436453541857723904965119417124555466398550486784934541225007440714875267116135492830467039330332427388081292244180711529089046867439999202516861623727587045665937748929355703234065930064280226044725573268964762102782868433911793979700302742287386550882572320501498863451947964156999110482551022479949718402222195411306619124620745900292538711505045929735676889207463734674935898643095874508881302970150047996483037141714592587102670952085563046850245345658513891562829294671749894572774558078679925664575524129611898118612789812616669043186346307460260436558692215737964044329792152542995564083997967047817630819480931411308810118742629448217298077650893925336004264620700952832685205553801622018225015662508666547981928812861251565362923616508485871259589883717271843779717179383390900985737613359858629532464005541040859191286962687464070272784363482139846606267437846980943696327774433442488641953424552752501959964820358130873123821127351993071703271095535893225874469461414237184624369988805573163284125296711272808981103425143362317934973954162886063395875980719351219315036209415271762113280901988593675085817974596213188975391188546810779890859540995326836487226192443554348990217500816997332616306248893591742280735882655303725581421774014360582618336133549860893734177245076051493554063474367152627898493563809681303728212071488137714127178865944207238020503877472506854484958674903414425433707560524481482406279158798046739137012933333151028586421255940461950004161341986033733004621434033515137697529252775071481105564850146678737272148395919883702555248044695137931293279604579198576722630423452444956211261880430401522259292530295903343746051681472652853789096220138078670280405367330944239081815980345162059624994248167531839423625141921478215732789146342902881530981663337327476033099473895397876699128736142584577975770772622808714664178819537278150462148381900834533123061285823415966113462190515802746908331151183432844333643833621903630018069204301881845484949828797494848303198402753642798143126398222514279551495602849785678526291653061073026379609174173728409952129241004222123362944890953046479914989063579136582294034072083344405061266203151908443664638451997138615495989605120965275972777897703935257050737371246464710074372217091073428132744756124782162068225307752527160318500071119959160070928569411519275424184769323310637396180893964113191999616220315934774919557926144587999700724415726959559766342475492676181541991245964137430210183187395044194475628990155988051911265456745019108582386342543268424735697880998626456756207660437664392178375395825518868946989921030841572625473049674186146673712870213699258803742411330999550114738150406554635949206806409071169834239019723182747055176757202371913881905678433837933928196362966653012719424990995586947332177592093693730827339794006485793805871794223536511165194514517724727147765206745064751390540276042276586696255231776012849883840602955484224131064905445121895375584499466306687462295707350036901009676122715863091933158827454170985689011723515960614290536471636253395708338355376468671016002523017154013931137940267201244912806655815874071386368995337349686975942554326827885057289229879072593466783622868416031950564853574511107347193115206690748704845985878471394582139801613889833162377992885352616058548857018261759347853616465489257502295187978334491505476076020288849145256020283423273100652703886782219950642558105966452915145372936868827745156218273608967099788161011815417847936720460315517459216743020375309092957237991390111558910144843607193615943637779191742239346894446848703609074039436054485093677767765957693762878498104262394306583442029134949860538583818246708403377745144624037811304112151264936740848280607050993923750352949679668364514108368075186536996170414788113320228742434631878680710439632307072093419098579666146247597319809519988490010376471541432954055188624701923036823021989425300275230392405833716252378849964909304788590164017557820653889408588885579923895137668899380576165583274868035057398285470341867601628821105300022468701255281367872013145360020014300828065573662029673801244728177231023435212608124480616062766391248090824131553064476384766543722258593473578120869152590063176827044221999727509837736281571073285877168836557700783081872043449291365522913414607484340396322216169779914476796730642760495955719515076965939922098250419583148493973113817808671621284333037462675710122800084313371808014976543139028978036740273294051506622700802404153275174316936056411651816069671371901598804713847090741015472765070000444725300052639244371484643842128015675144981065217715122030462122332532524881216579912438478276060091538389488978966478566960405575694853032903667266693525579044801590482718101238099268644589348812963843091299790244562501470288045779322709318862052099157615105008311589466883452035763196418351341141381783812651415545163252322050641739457103494260569592940654801042021817409368900995613420245568723326786302320940785296082797448955023027648582325950109855360099665178489790626004014932414882541152730341335039958947500511927135287579504738849289212089824401156425988306626361200382140359104804369619885371553449285192900846971026493884789093048289148483463507406108812872615826934442231237710195221307512926856586139289942999409217390313211155086860995163200016768177578549053329908684976110611317509604417267180166024945261696883967342227602044699840109812526004285337324586514332249407498845046679757571954079312132328944831064868794740056240134254699486567707149916843094153518376469390401683688132272432913995920562217932256712527633891928139126513569085073378531974028229719968624737869460582272251939985092338394417949562738836987864134147519029070461581333021080475118096995979460396838660019777274325885884624707109492234897582709992317996874467442910367367943892148750508196893107386257193822175075218149897403879448365544944604946922641065101598584085144444042364967835056723681390309979244781409935419361416532861885469342227218451955697619280511118457858174825313122642768737445022169270370213020012323733821627389066700774668557998230755378647918887741453774042156773467160708785892409836683367906551844172059784974476053291528717303109940309378103205596588780090542764404769472589022910036152739584892118517241421323588830260268359337151992545127912514866785394700045018791030866462554435193255649709048848013052665564797541039819388430022740544278204846771719512565693314742393114142118451555959044334491194698509759082521343213303877562252797115182422707707713562067869454741438936018524811393364071085593778410651159735595358424932258904271902880317822907654124466301886937674783853997952365850370335289248614566818835878958489336104459506604194028630537357756741132491810200244691931133446596135736282331333647730251301247912820788303605866898090517780664819453143974546411806325005180203650274424706146588249319334023634171482310508662708551102866828257485939625102906429690256838829970604782014528515852163025431704253748685710911069974601040337546517284996949755968556800389327369660638725127019184816270535740813973228902976647805246349565800424012263482107117805041010366127683295935698884156025240273278131444828483084035902729272541705102909481122136498680742655742430390867584275243415967658466373349753352000776439411363451689980240649557418065736540348095778444264977224349243185781913178509755548778040661301553890312119187287805125375211125920674685037781286674413284352501760406360153403321530173409824735099920395200569380202838229028722736606994861377010463949171117118435764233443981623109873906987636483438911234919010609240724674203564966981714956474987654884640819174745714183068270916815941509129673594419410939204790505501093108344967810120511371718294053306621414685968267380727193534313919711326604460569972606938125064593175887407729068690600570129600085679999916655278800440384991067626511740440234951629812431480912142079379488720348824237689479399037877582025775576964967543999132302987619239066424502809615465684898019067167163629582547567565100260894892492422338619917240825237430536515899240738649530496455257298648290341711504364928846129529628622657648999565740407357615446111082779550284936982385317005687579251952147641710307140788098391276813373348967074211914043283274638683222445346867501515827455573270252884965950659186744321613581758810988603525470394630871197469813223167762760555479980822875911743930583591155344568808080591781604583934461946445271352257354241704294531253016404995553165169617594306659863900652210054392097991742741244411784170864246478545343386160386157619187410773985954581460274367630471694751173087089721773100923726974938673747529258269774478824501661522788346504663465092538057321618501456512073003845073675000055116012521716119066913692317266087337576497302184580826323621146713550477315878298712726175419865088406860970143492679687878039171988284798135350512717816000494884055493340467714548651860882238085374485511378964221516921691808727431354711083063585213705767085585147811222372947460892789114470691775552496552714425162499500286784581454014602872974808706083289153842558482093498397356101587145844179439462568584406407056110943659261265915054106865701640717932341455689524462662558646349528111155390613922438343624734407574917312232123416291691895625754585369955113522302132971377677907253671707437150160680069959451855995921624028620137682335578471273774300640519126147879778986731214682273161019848989088942327367533456191864348696710915078325441230621835203985879305378366983667128675605018821187219555414727501633464081333069167380421557155019282038678258976936702563482942907822234121883507987997812288955431473522434414443665887788699859832701887930629924274971314083629626897257855866435957802994722801097761746626753857501806744902219772141132911724301083547326171641200153795891061355729753068793843737659567466339725258087441929318787519532813502710754217820991689424923207911375590940519982597372708147196704468799135134044448712034215170048642368023203187703884493669354177582659677690275887308353393469505325000284931101342063643560068757423969042096832274020627501398765395408588833707266929301975403291851804685220427801165940467705893725799164480701543829144718843097216090787222360732887682398805318908307537688500117404252828243372419805816467436597518623080429039278284079199036698227130886465314353895366763488370269861450558341187549957168066665455932745738007719079047176922176205603399831377175757353732879488093314278641814878356156155932987830738248833954903112599410650367849932079646406548176172231933437245731719156840488465688503274199164251626169754571855663007642465157302257717176419757627073792463866233648179276334300843317183067345127297900603651628275733785306412645619365773286910207805862290916867269436746875948875339050507554752769774953010220079871330704783690954063966966386428932939420455174775971699304631470792943442705825192910380928518716087169602047078170435830680388776612991696387106750428192935715630124475039862341084006411250344005160452262955231056002051304478632355413256518438903262552115455946281441125031992297696187660887936154149145483267066943443512591619800127058465848034246135179155665233202246018051518446661498819043492778324871325117922474558463909486959589567612685146740614004989697278566469515283180947892661337380485924696770933882618090329677938942374617132055374082095370741628470710770517481100606826940123077343809487039272068667752187018401083004455077998467635597416463800368694364623328979563240373935200612915748573853628605158292874603292520925228090742685483494252675479562447400984147655017833013472758364290231830877044829236007282644251252874292673524630217518781473442790915097749215431061862413399135694950762434037963112492775286139489738170114542139771338758037069386008768286364851768624052026689040507420128384974579122604381099169247979237206539110108176239618941191358145064438681170910312780652535618977713594131412191996599088902929402911395298728228084755155221529399549064430876322057665971239075743667689985313075309327091041849309698125871022487026996961847423919100124258473672733287822661580197425795351797580159522568507778572072309550360854393594714509074205997247222069456463255712903474470867854797760527069912352381780247652545719429184970630493598191054282741773125957695458961505897679453137793808349449724408860903317982803599560068651343860483401380169946452356725640479152992107802471993722299155088210234488713496426576605854459710000474285306926924734030034904131680593622026102295214765786887223884762278384573344965359674742090165158759402489854529138579583231028931308793380772130399316401211718281339925043102122332392948808188207632489020947610120783290323203942442574434028475420021370877519462387319333792728412235924293285821288915718765624718485438008683411383194577235472863213487813850593077724788161128729215878362754949701080139627184382720266963558347650980928707826564152699598658865846522799908128683225535897806925295460975901781447630191393609278797274503722444998798570592471219001573925494995090879909272996131667003530002537978693251359367637050721696066722426271002247412681038041112844520975486699995640611101791769815530744406287788737038993572116339295843758366703636728823468723733047027545381631697257747666073046205943709958431509263146373350722493517216281153063246025067877624757827369753658924055776747227311268653159587093288766202049989702260387710213226158195692556302182399340302618875927738252763834412311088700037934501424151281312176266951069870184545380406564327855015671706105693835281537785814165478887199873722948196594170396519128244778297390686498045201367072081059549712915192918826008812005013177124806932015167520827382603656683151342689305666474317370998369684883035282906152084873837897108280670358384629417164859878302318572581956924756319439276601445890686203335365000676798350038573536649861302124411430611910749706952194618973133601232086838982160022973299839096383427049921816451282633532199003595261996035938858570160447982468328921510655866704532664213951238061234104013032862808736538786913106250029505117483174802487012976265434928937955697696544087738283895634839038719619938013833956786335788902224871990465663924947724592983886660667270271352800612605500020235933648944098383945630770790956606522728943616880710326322229917182649604720769392518665736279462492124769391581240794222399689865803728111276279803477101989565031551035120828190522140000182832731809522908044096783853585076023061966724370275846925361314900324387157427082604737623501919245167852867685110782642464600627340473282885681938578585920796426209949009164074443326827395862258409061327114526147079408554418223175065436485388047658050113955612152107980146405640047659886034370044156264346106249935903393360573992472716862499279555640859527454714825222461875249985189191958222868169533581617667160449441079254200625161523482986728524000167928851539044797621437296280334573469386685707381688527683117358069725635699059170665155864377131676310897682022613262058347743233155553758759140998631105778847816359977931224052051616008379038961032679980034821158593920761973331433543921371222506079146796190206497754138327748177256786364380313980546607114570997841566123222131023682384291909708086528438202245683444610472793935755577326277174008157089357556948558424789753984659269877005665988212651186773482686566747335015271406855715587102032177805934393276512392243529124441551753466714685255769811650328056576262166086806335587872416258817298045042975422112666032230863443448634604559704485448820939197997555240982434531772354147223690851649873346593276164556700496200521933899434951616525865020827790641028092994894158785211782520198996008392695023324204861693108419514713618896017259175533189847386512159326362133937444866495384351933655357601126206083896805621102022886021534279778741006995375443411783560775235339511623050604837003511620496690719091485654113816734437866268854011266290939159845396726513685268132327828394178019021217323899309360707388270022042035264433442307067245883755595198581338359053508868651917351940304249047272707025665617013923096285759429586979956421302575307952971402427944784896881900597100564972901040072898261738479266580038741822946943827847543848321770681521022515359715839530279632146326613452457437076357155790723230234881538965769856858229626905103467395834208420005763648972395121037594123988736100368486060920636494123101747656865802049493207974217309178800048595257495103741333787196341062574409543840628919253818996808503365711664406000858500758897724407720583074381080676323283575702021992012010539334075390295185143813402297386623281040895694663390594089741563117011560536292125782092777382862944009703311158038932567170747666124180606522632804005538853354544059666547837283039270079135370299360335979740522697598497204704186724478017406098554574598724972242433564973179848199411831153064003975596455631707552443373441449746531512023270917738677673343764496748275159136639437776043128372524665533253690742595104368529101480021192762094880695606988434216028831573417149384020399993865265766464722679517480799823649775007679184229897528624954096713123824492785268248256394648107909215834777137829664586611612457324540089073533276929460041054935447490837481606718953644833283022817770895131333989898231463939897889086638697329989518015262010613542022033398558494525057607409638514931270030400066440728557875656864994768111309909479858414035759266697075081413537564927510927322374754186441316583310455161122676620159081044914324676396132491090974735160353736088015596514399457869144882542481846579832749449634760028919711591435110933780654766481830835892568990418076613130447431618207274180423240197258229493036001318794881317072669359378748568756769861790454492091993504191394414481236206538443884176714712243098987508509192152315991926316677585786146262881558608865285775219337515267219616639516053076842328348569079373492555280760266252210061762926641787851693038734623644128485622705695990074203718712103377857463633130805835361113461703412058438693003539590320627162931051334551453292950596739489470954773090310735827847653772083285578752160407977109166648012303418233383198362393270743138815281963347273307920880629942582066505711715886790803575204102092303641391446971603821597359342815813174514856557451292123049302460499336961311209704910173797140867335403469455005579284405835110069506321028096941131495005949754183531541576171864788072323401131011578252378905274404295934183950383766892282736747426604335967891815900234513767125648747824881911318954475247382326648437225916272908790159555258683903854653491414006656191522406567930721682065971644983194927726189799020554361166753764597306534929994616842649114027785383502967431231999983443357695990470028649239227034754761876740163179857609333204195889807741001063250354312138472370637946473592502964353909188207287952513411386829463935622609557242871676601538018052510689836916449876311978637922205503616328644512121214199827033653081059591346492545952811379952660218783708030272857895062330389162887706503053980494835580984339663752325095623675833156064109988030132579365551029548821448632908125441501461590523601037606483031180816229229514736956396410398016133303685895316543255857107920266920237585659078664053789474420256308463696685115748282943499021577571767226902376904009357814690097174100873963679965688429512068461466856398500977179715879462601768840700042400845760504950326157058605617028015180532717540713572291284293906444061414301616820679773874753493659372026700272540824435351111403372819991032623056865995656898190583355747596985400679080229289740054658868562823744040380392988358755877356004252250480364982438341003337966124309820523338029925951737218424828289641906277046295422214648331919909871708145450742110433219562884897910411538052079453635201346614964006910196918474455619350173972748163722579531001403087230896039061382067731988781397230103879410796268676370307166085664800788634256954239640508599846148627497412622171085727660390895480618130324544592548151199732963832653044796483285532585944355448850789346573545255792866043920883955974352199253984942713623063479609384095699884386945112243061340235973667833540177783552050459097201982368668988218607516150204454820128877400373449763181471235117809402746756388489473857595376329583501926369973981548368339641795788408132040070630000839643581902741146526115226548945473861413382253967438376005685667684376822624259441495155728323945616198538086682157543627824150590693932373220677713468958918853096609516541558313362104816406386330580016434310975285968115332385011599486364355900012352016177231887164702557282838444063244117102155706815526241645955355666243263092392054429727917331845257743088502790364420562235471814803073584691057227020480029293441384274922272564037473663151141106697950501319776125281549566346317293541633944767825512088004159045487318579613055973917255464501154076570649292092841784791114701927241766787654794285769704870309916292471649223193813308175193788336424636774181887509087754231290332710297150443399440950461454781045006658726475423651517820760920084108275443452044960498971790169310641876786426903394508967938011303194794558602249341157438533119356781340504671574361512255822448382024328454231720601212055829113118918244166152159772088897501676537933675981759732344656528432219604957510982434613051772894356705961257126880638477394124210336610608887320869865983851377663710906216327359893694364473537533059281218504590075581156901875537666669948310238814898664562899587397128069370874892204689991472282283568367417944708612878817580042539383222055976616510584194063053794212855749076260588608375534928756332286988868199877092492850659428843517837989921650107786847315233754881318463407996587302064854141754590232010669322728859050053853571347788489856971588167823143431780291939090038478670796887357512758665872835052510145193601310390133609514884447470302671800008262519641882654104337822823097275492720123608471889699964038681771591589600423202829226621647061593296014446151994989980506640011228296253891846712353067474255742681974299454220281933927052997360777513593388763635657029589646646636417998178969969872699153928787192621816834900430093724768565198284995787718690607725079349174159218471787693703024023255551308312437147833205358305081062433785900969801206174614451935169638174712534584745980725074692747684788665000828758882855470901273205376663284214379480238689671052053317732109056160063009208774847190055706802855580055470167579742487990410880561182466095131777559686601728664195169830279976026911294704970813871434619950085061255058862358450612975362530568896203755696774992215428288974240342440115535071042267014731806067715831683642641114684658058784434051741104669865643549217419057612259768963260316779285309933006117074530892407733608370604502314555672657786213093956409352578548443641853044674771561117236771539498591475707157238726871545550346332727566361344663975345497962597604523971274279160610589726154375153510109865012296331698883723995468130480434937144535541401361729140148643423055794242525059902808545588459643946829643056964653946783072852121970035656700840294904520279890286319407464275313025972533563891868503454602789823700169924033089087648642786448628349337430869325922376739184403534127347323234386781209267962035989844792252821337138126849066558822187398534958875635046390160773980203987833641340822988330771992320668144842169200220428022953618103431214420946023033649718340497283072249677839794753278572936294566497430805349277887733680184449159861301247995491572886181755489376219329168460695078292324482951942208229480491563037432365723830294754853689487367230625615793136890952844118395845629665975511530392207004360731166939430548323176422559798101078105343719383601016168183230200833487568788965986930658488855603519790973547786972397601547567090523323161719904674103599601868928813173390414262658017307165323671396212401876346387996950880212244339948932045374069377482087918542908757464295628452655490549886726399933240657256420929885381544009264545136487670341901077032366641485214166999746370484845765203085904279561187293038997830974845993016028528826901791492199566210143094193496031209061568831060013506261466369609456798774515170837200015215015544385067302362018268859550531670869269303018705309378766059716356562688815230190856468427754804296835850064957276160095718494104662704566814495150666511130581044871516577835883451751255615244350031881836428177823805250845426902619175633790401510146184852242786299956397927002385932533439388198814751436991862476516386141851556354756173086421008946654985742512006215965193679150835837203748075726960694954160250592947679624591196371903239643374238471600859070232117476388333547136733853183536700835253609892151394041529539051314840375716150937234635303154268138053437796652859247763800019843030596199003128019870875581300480237663236957700802736744703610398129665068917197806062850716600946108743269537618282613751426824273386796778072934180697953501893999496838687331665421108379517471995861524440015200104350754601564970477047596134052349914746130722169576320635763890916372454062225914088921904342541071875485611244915573827801724769236458908065442226569809170766639277355220720311343815328575745073854128646670393048673301816566200949882186285417618890117837941454689304822864056828687683239200585281368547750481011203101040270633998212131685782564296344951946013309975195895164663833148509223068540380803788409528477916269666549921995894012668137801794617712439984627662383727587259501010990175392287712142480764680314825429341338341341089680043582264600580005254535461222854358162776560583385490249491884940935291253119689868275937353320018871145449110859826424356465911447303048720852064858338178370084105154842619016038607628117343385775641046738409683060125133618179378290811369899592304239755113328298665760212860008216311098138472789292804346905341220318514820328713848875630173761039043517302572844167368039268028344692592791139228025768665380542805291222818843487424722401878836101858510674162323069095107051513996081279823227332642289345668124144215873407565929578247224471601985973981477091919911977262139311813179922532171297699260052143009922003119944719226687023750388923565391650651410429301802200543449851541852201414366229046406319596433664168013796460129950912126640731439640482431541950131060482858156294564836079468918140915357743174439492572773379270276958489793735095183672587909974196254121035562647950990548441102383166882981474284456524437927902072078529304275886634090407774742194496496409883878365099141912831788364355593462193212974567153223294602812206493315639995168587427818340937916577631423725025292726637278557220483819095173394721789895946137836166570880855920212974518663254517444864419907212396736679995069006330119045459618124468129078515332489691671152836660462504648293722677067019055241787678785067386407961470766831109525709626163170250363213482402506247216208673566518591596936004863516018444568364923846234914461407732839126369178364284320461511905387551282382138874600243348826288753022095966390015891737105996835459264708269205736215954925512726403683530625490330917208115960824681594071758845633388314470942773661333242639101293416807379825984274776674710283879522540400567035879888085423457126149152332173486164644862517982451417421821505440157023611883975563786759787515446545194305504966976577688092457155046988497155008648458821634455809130887889176722319756330832107133345019246224420686212001215423094178726015032361552321937613116714206946824032641963901568535744679947755149299897177341272035371713462891410182497062305194970768494695690373713232858580283926857972821542362332292988419897254582852570680314457168146334701651302280825892487445066501896854249643773298969537509057197173871646189996092354707223471844233346405945254333489548111613268545828830505263981801509580107276448432944713704772702373572826344600831756218286389197184718397392227526464076594963540469427154174928573011687386974607219291533438518367374030043678132017187961689025973772232149768569559816713326787521728636664032032049347667569347377280881262479931175660907533321548368736075932392085530273039127858021821759090743438197177263745631028012186829651702550567845063740811359956158009850275768708383344088034428609113744266337742608287082749367890004040940659100283083580542125459422597009289912728910356485827031447727470195813235553845851802488364154662785520012492835670591863141609917021726045757921494206717217474777657859555029208003385552422613600858873056848926650149258963939264401824047458511203895572492245237925425313708764186491823385706778069176825922746669086252360934991801307568331514042508570401104992675167836773272028654315441235383000624376272392791732708207206261127199731889767936322358757942691703846597090962347600038998984804180394866048273260825669908048483142313077006544476874617178465544112618907494263130428451478460368021135531069597523640586049007953924773717074137803337847841988918511582790937362952319028812668350699324315034333464721850738190098975872483067174222397479536806270485876773604749717897817051724162088450022667407111227795609672676557890128296230800208117611599034023434351001940208741956318990857884939260557875244120689950421390932782466490464066688035394001892838438758162728417473801378612348997754857178145577586132543021002634571914017543611922815982792598366253935560389724648704441910985395057892977684052227069366378202636403251973069776255467951534953432145568904768759702855811259885737665410647722732331289155765920275481955395491085946897941272939487238254301684657567472361150590104653956653947756904601939670601171188954941897650035667454326161957235498302522104114881017824338340568392015770620998230033545808225678019574497435875250595336499616880459848955333097032249654916257950443280984967336103958446221251873204535452942427580728646878167327404306861858966415969497060006743168178109006442131336246656959393585446692551855303258854643138734653489554793836915866513575464545842537083769828692208901482142441204263737855347615782187974833973061448487948050824445382461658607534372607541500553815438812637385534009403212257091876807463119893059960269066671425820807536659657873984268849545556552425476393719073250744445581054880301431381926890400918133610050399690780422134556640401983124268227832077898839336226249296973222220071687413888139023794351868274071714755419315054257474182379598081355020057264647500487028641759335056286913027267001105147746210280735645226784593961182135371953846302747998116604581949407601192490428762637932160417536852295832248381935663620313473919334512049838093098796843434735068931228112451752959438253881738035253788711448645429348242456009358775059776479977374261552642420602554918017948125897158137137844576947963333440163360006974382035600779356548834508542774327934280454318649068769383989299105150567216982013568390481296650241517834522663417112888506366662398077402288801766710729515935840184759513566193936215583545272574819011583033057393690912935366093398288180522075549745668409294492467787281157920509973569428484269702680974509203096365904554787199557961635249564763414369437657529903309268203841946276687736108819931835283774040657621106011749658108808161768485857268150192255981873899877408797383016069713764207462693857065135857279673241539187502934791337677333388340082839711831873888466097825009700126544311038864551122030523773788829728062715936667193987437462146885306132335970180090107015984307976780899351171714921935031483988264682019679996851433481703574120350460302571916945985689937978843785642543091796124435158091289001305462068040781792087814150766918623750903941528598481322868446796107537627260579068272561794406354040133744432829421038393879531215550254820246662439280375366897576855622474757064009842987511131336665093524436253397768284456400007820744338489157530368520658499513189914819960320238781277554339054517839342792543701222965164903600410445343758973791949586903904987499203230915694656936830395934207098553156458152662407955184994143042757046336817974191911838976578100359167462095713900294160831869423991662747776903070144725178262288987827905816072633162623425262721780047767804181678489298862962938135486707289462077467370236956253100465003217282129976125572868572717168622962681762198658698355653311247379314407389054244694393228467704716963654878870490693454912699654590001014883601712937810555847564453303075466525631592834696818773341821007065336778432736444688255859292146295052794450179907818353259026910101510032012456619130167131866558050372160852854270296599603094064402734154806246775982828354701334631837053381172713375513696661877067737132257742503041869614338781937053404888085952762982871304427677211811243382028310270643601465133282365894164712203073495916803740774022925108482891900632471550241814633725464666781859747174388538890705241768333388820941885276936399000633806138232516346714941949213488963122719550758471579166065579606603654578260002890265262303137345005312106567463531448124913424229929107502290370672875893232104554657990655179935662335039936584977453495356338674061527822109720251694011777616123875988853812305761905582802301478125598052365846258883224309080429170168315652308005560100247126145141384363952763797881347724518054330167891540186826226686573476828365541946240852198511961891472018066375931554823699077421127582902297183749470681722948645438093576684647015964611237623380845564711557387569308623901672788343153228264981078438253374415682638306370953548058024306005316311724265753826522568970764489623265410877745837393434361793398601942256328090722440434569984235525047148366880057805550955547684538386431163801992654257936682750679447687968144664298180772671543808567084345369170229547647066047090726069925529657664931424797584225598077235096001777510458058603292203785839209575912520122792720642006440249961951415180026560608396633000935188559463855834824559693589365020352762750065177307045479483237018441960154543114779334518944413834061908257214711971718014989697084423245072415158694387952020805183665017233121026460202877425883130423498548023611504909236337609626801947141293117480831184128533182823939127656146286754740101983507983809118946336338208195837023001297095170443167716781158233687592193471934190991634359713722566832295690034952162256066412368131605882051610500913177708925261651348484857071894463153036333734895383411880274193025788600675585438890146865328265993665807408608563101857533747019798366920119567192645758990395147621035045914954421979589519064322695011099949670493668984905177038570232933657409453839096644678807357234234761578182321391104120125340592370774776279318320554450625303666844043403462786851959017033973035324713350636710859671638463642666061061187046555512694148686320088238801010684884099389240555082437758961041026675482522100997485402321622843560419418266113371534257547218448085710254667914555603216292753389254310964132006018613895175733986207098751638023973473770352414312879045730379943408950368743304664431014005710309408703109229243569122292390282871994173745405449511856423356842609539375527908673250136587427352632511994322242527808032645974901873074816809110348012990060779822073063810518940566899373988802458800297520130874160981039045483601795070954831250536326876405331698230762514580806337829460833365028420852435778050939093493952238953966773352554072480671520035012520980947714130191471557578870858887469712298451854429960016971519054110393456100192232415347877048699393030932648943694388808713564872715695031525968042658018202782575923802688805774080636360142864516327119666291374531111170643106893878828538232482304727641198719999099566020667348560119135912800007392199224388716709650654895664696859592731947580882613078403330482083996230753469757381981343239197371426000113170782709075485839529045919703430789151563708328170362174479947475273529896306190339064687208366761207387907636960209057907862604116443047620779493900132422682282169824606236352887616481635014655329571583655652664768625560117535619066068801510137622155300574951050513196675749829825921034189277902074071832872601031189866795066559981871481586801385464504403916712820309419730759688880551307697249330964622118908837928678582163628446358442518034620566879596918437666920278610117878996258395840513901611762674701325642007338052444700202606207837919406390186590546772192309263465813502750018723811579829904093251056426470901416003044350322581118586873063879742404125905718356147762111696959731188034246368003628916729967189749852169225032428010541653350293537596055018829959198605265621228675608628608727776004949658126030500545627712565329997555432616533585368008994317600422896011715630459975771928937779119836110597493821355791437988298677486499569384749047911163222170111642775469450659529307910058434435026052465654406696716763875080780969147670165254362076271228066914169918017391374205446518939235238895325919580167170102787489551945013478512275363239139467540519122669329470618075699793976515611433203468775767061160046011984832764600738850496883223081641290261247085688690452290263179492878318345013908062825923022145404580327103383701628564540544016274081521702962442374881564624300966440476928657658710119343790829606939362776671882849056915918895215885657127156543753015858519396597416261426722372703976619162878341397069138351454060043908412451680279419631112444693984646411815090406816837711152779434763978711408373629472797993042158614214391468127780578733292664933380054237826461306689106843227340172743068935354911561579952070516793745831085941853743258855283776878740631731004276877963177537297140138911586246073396620922754153257033782716692342383981564248058653049670067318293195141960074361965703201919282734623194269127830773964396563347023787126702846402362798994799654850217664728533801934559533244744724285532464761726800017649500585297903524139284771596990283147574913415574935487005090297553648002648202281483590086467586029314857119672117839362587818714503706470245326284020414848417178535481471005838299785341214228545642244155900736258810788668035109380504073829173369709910896646224179728738372544753847241953582847076960797126680571292517034652336080713567165476385826608559487427846216989719686392853078250499531850983092515365785132101797103113404079785037753555066972285666853594609391406125362252834867618596381057232997758810111123848440213868645257104742394394393631821108664449225570799767144578181218472881112528251805172331311220189670718385382521001772847660188096704611056725886180106067054325179429521653165575498176218317041080339231339945880550538780826488226886797431764727676681101719412999767651352068690742312478738007096506178228362451787854648547608221186659631946625796090943323178981771441730297183492475236021482702602179612345310800079226553493824639888562587721646486490387013119488780740393350149911928872091208451823844363070940293250338993625724518921281014066050500475554276935297545563104298068555397806615022432150760008180242406354600309958470073858512356603143646044762109053627595542108139036613753753066763205343290671399622168682739519617574386737393455789536009720228223578518884182500635943923393439137836004697157067968502375232095639259700287211848534805582655793738603600725232196939630924388866095374199310619451118609382022876495439944620032660216285571306846254734656516906401195740409911643920971933327158120672853313888601393366526415821907771048059868763366643992258231310251445326215399453113312139341231196604658960186239899496691009156257741619917611715883163297382368933420589687689704080274451548785415719312180850301179535623992544481635176360336469086665252479322023523818607796325063050690321416783935908053996228482487368149746266452878842676477540265808160061760436917318653664591679364006206809394882095913782594278885870436295977879491601058240467090086439405817721671109968516071105179011667966488099695353608106824950856249965250362880219821267457435911746947025346104160762511973922641056034929695172613400817067969573699962606354945212228422741475533743138124624565440202132888257782387575013365188949396497186151150048640245676929282112367261174172205472332972271629655704343358530103363044751659699600373694282306092379835148536522997996492224232849532391246199116427403673681033169841032562033603400017149342718303184834651006252162850905817370763479680778106564617328296084311611221400670297206258086835503565873971303640066649879743220689805149704912824532056417108002764978780470014995932207716288027740346262531499189663008808387106482404208407507159591855828444222784473837023842681356799483509472005246664720160604616941550914749205186221438187028669886262428124626265142250796897609902013990596826913921545497199756137821133597309851583904143061580054813787720760126178232115580031108651120685130701259015663629810460222657961172833251516379185292828864132903203626146443008182070498685650546580757029599913977334625705336999270434250117478369393444161184091937153467233161941894556130084721855053863876129731279729166360498798482466609971725722508588276611073248530341468859369342987794784986716274790131825765263569854397488365299700747845048783621836603098480157196211303221957673063917334033073783143975073759773577024416573844570966718306758530287033453925098187757937942426206528871047461792656047284311697697850272249979614806632618453112656744466088710891218873129829497964061689649117947872821104080833491896391162456518419205976811270956286434450174477498496697117332187640427751858751858813023108844780912463449961458370167960108824293910560741215532576990227119260459479624461888045544376432134486351299610157362671226714379712741054240709391046173670865533243363092557401401643017774159751031120342064174932678605284902955366619662844213655672976614266504031406655012019403351979238950923541955414121363547856299372659737105729977268326140550875757153778556167363858442994990065086890192450776084444084621622084912402901529150973854994607047165338869332032879043921117316525193852734414911213813303329087171357281015158351549439383941999150250798772048491984087149146717601415806293940501458974701654992812931853060080625157177167644969345813641010300907887463872141402616099485056795696314366224842611545626654505802555770258156721586033208040123331701948647584646302770896715908619077839871590628937791725547714219489837548751290425342224661525652885540868635642097219938805504499196220179034023498180215214531448453239748448815225217227913507989976278557409766096749798539963867317104900341391054537284169392492260982392158897374950199348180736570459855252782212067664903320837254151711669101125517174974735516500601268320702774682170291003742628356971823897500441920940824088800717664677809661735369235850838079597213841446617160495370105335764768081055161569694522695340700142383691955793877891717148380916643695566464090506454274204540129859817080152047967909180559977444597499530537221911587194034284175081405179469936405319479949062051565270452392921749358067204013589671599786636155973443960431341004671701530509333967013362643122646862161607610343103185333648719956303861894231606211482662087976243427177515369472834251844636755897498646365546382222719149707962485953571493849019484901009431018845126709669249838917233141714341856415465522847644690473963770818647420706717782495813469494306743507011441431874199973558709613449526005087460953992330937997817566122051416233523535340938146383891454779972221749997259680106670275372853983462430001283453124558159493120758411716677953020494186001896403833125916522396277292603434129813375698187801450737625272994144444486585841959739256539050274845295316024008461575920189713633529069252035597172062174191922043097890351285796858709467438803773195885930919141604954821943008739769906240353590083716160397134084525235290158138572844471614978888352815927484145929414659505430917500476301252386103790789534701618406535196459470321722565651929878225290807076463181207521031310578382721292841491183919744651966906387733201329789930779944479759486419366963439131722063697386661360442574910123582856041891672563430444854990887995756249697227444165651658679158170221471233344583559868836306036598464891994093208625513823303536934566474651080550387895153295092653417706318837837603921131020560451395027823399810287159328578287404569430364597095863516575499122541579148579638936738520416167075513772555441201574424763498054324964405142358211023162284229649753093822579783489584734482685596282816665069789662462733298721815340306566099041632869824776230866770677502393887096552200941952117068908961855586607705704572184331974310412263717451038535639678929539682127552268330253585523976228352960226153737305976096834440320231913300017023586970556481515616216077218207477361667301520250280455727591438731337094948709988308979055778752494895458187790634358081242392148105494952270687661440976801007656204392869766708062541724232810204111733879225801450861013168992056963359877034053056492923409454135869383069166579349862516650081416013136615021154149750016361411557024941283163380364638378109191156202978552159296491309577444503615394723589790005467104211505774628445490188065900351300501704083020058242743254824026729206503823724916119444527326160560883903663564314015888484240568275649824773295001750040255351363210292206331680284009738200098481886422861519154491481384584066987579134173272245994829243610090698106515155952231468665545680725469179020346370426295257374915497104308351820180587484467300126316407352353663094925692912805741016038427704716006772018663369647912892233429296535887005383357582286092593237454856419652643303515342441332388569597984457231808012361048531911437254075618112656489669463139780698211321873763432720631712332357665760442972258987810613212921838316276490194867902379947189940507689367770159392746241904350660329066927471875725956536959965873070738561438604384431285064077657326869280579296163300101297637941374676184461954674953115607005040954555614393219318586635932351876637318760136877701799985688566938725630591082637033104562196916477195684150087011564420763833048971742012477997341611384613274759838669126251402718943327736756861556833364693540159883280055740867720116305274763910522334720922440962724245300043729157451609402560350733475763572779938069946943778913222676588061586392628173170869732594226441561633845674348812684307308783268549311678573663319802542304095010222428935136174673757223576925382901821620514999970916685795875714156399355826127609183858073808841753488801719661084713852653538828542955327405986189771530923332025682588817657576644798215407733639259425396310478901587714491501754849465561249322615859446949428907122847566938112339992065643446984006063984795125105546083298184487784809005924023063482442457669709609088760208209384424542865375451280397606081451215473344854482063058332922271132697479238455837495241414349485379150842523141073178487388253491220410662117291993059638926109047837771248811728962328715215192423560700024218531687315610539533050941582292047668169063091478686565602971969687774201929725289777889061073720879212564813621657162324394896486887751575856429697641228324233852890334091655293893273103034791396503191887988701378276616350554551151666676009631624697550648796647580735797943306053996092458655130087274723510609375517348280497944342557099261152812039272039017419916954494668508064917004289576134772109213205313730073435275714914547141581543910446445338487515713655362898272955081420399491742427999801775897809051421474260220076029653242872230871979294597267597230408828032425643170125283889958040176907354301743891021256484949896549164747578846908320151908494021262998543793928991909280139066967022733052285741081483802712348575854806578526645052090104509601902295593189724723617303508196372919069011654646261455261297875664793421689849257356208184100724087423253140316442435331751311127653030253568342675531602975480800007331672223847655021437778820652928088780247702188694827623396533148382657379325369683876131805684759960580365460888258801807010985165421463450208440568506592591397228318694061888590222253760949234887506442269590303603395334730042348921162252174933779911820193039065119513902497205331551280485769090929615366409064729553353494521439261471535001114738345969245367914113951445080093208028990965319277029058933114189985413613473565381549125763224200256887011201981292004239591754934493299420239164698975445631246079072265961156426105026334291890697589761983727195629936509139312084177842961653026387117823588289335435090602078139219558003378790190422799926121650119078217171195270057614851063818089478703423891966323276264398782668327792334244100815001423355299116693736968222826406825477693182912403643483146169506313704046354601638155737659567830242561352528930033769068973767974735534374962111168322770821011196750437817836334381707669092246287396121531935668919716945041653713869794972809269603138022732082253187525725036081645353742165902059191150240188987272944184965057512494328457710620266753539238957733042994145342220234504992499275521768022585799674819115685555670333679867986639513520317961964568668229257867588064486591201630651826078608519506598988018269692069964997636698423479232311571188075950188840776134253448724505729257149916195189615637156176530324692983057075737809159728575354859273621434827844848397007025211896626186143677607497267017376878772081606863969263194020613429139213561645001911684249865570502260690114327886905275681692670904115331204852534128414093421582452399357778926688733885885484037642668462068347684225565211989450471175372494559353016448228952953624252139765595389869112656207312612810857306056466697897492777993675766345010040587733569151636900588494768035999182296102471658325072723676617474297601819064206984703173371270677359022435269881074154184407156006606941174973020303500825089691175560116095729183582255285783810726879425467300531298841554290034459770388623400387207686577491513352149598129365453819673449432238943585006013590558928834357460321110560281855133616532813665957943611746223887634010865115686483652878056010822602118514555975587041970096406659380212144827904067410114117989261336957676457800676018021048317125409698977048009288750100504995097148681345789457761175983052688834587385182967886942746371989163839574830248632269447618447497586588206304846181157917017986167421904634661170072915328365069067858262348860879935571873299991387103055214456859068298246367980257079211543517072556864185903731993849951011165896756085939402699718243865036652769686304747554860767117579251851453290029754089826732865410534549801639214334823307644229977006537207946540235444507454563307611365598046831873227579065012890727815851581698634494414774572732974886773271383650216404771911555996379597017120505161750746264438463388937994534889069237336483503696651544577966157540619900482809494190389234163783643228701267591349651335620725543470296288123658480842018311934338532643011753081433185984681465681661634800473931905085490315087064605532550017750383121459237362387257863750421232008036679548213540621676316322029777913387150205241707533887786029886176338131679991452899538411582336491746137006265930237847233389162260641183660186914695712279308021370598657097674653353636297291751843317990234743086712091741971292368949782446518371901127204549970385822861737507917909239258502834612236229430526811841966595519973610775841596667772353699258864567805107745276094790303420904398178901205942268109782727910542796208919159094675693015543442888488000893771117793813328280594506651963307971908313364098599081951274740147074125398479462268326339066662429650571613966944305359242552569288423109451490570600289190592464003806332718524194728929827160454086984358561405859128192260845126782072063024849945993315699882340678624962574091461408977484599595514063885642146185869804493166844952848481690004446351959352236175209119293148767729403711476282380044719725273183117735462490368193433686281165381246002507192363719560114482347890879681761146928413304312148624146828795490521638677047669209005612817420046793707268162167914878982205190780674557814755595352759786159279786524342668334715035874082907089884839779037174831023501323363897036358929227625876444075781880313516198064135047686342349081155796378471470227433893625138157383777708174292651067010698283497367954085481165034656557929382312843163448980802285944388384840793348547299218113530025786755212331079619141553054555940970215074585516978805244504709817050049485562134770171088274623044506244771589931468892274714954913192105458005257702502869159896093130151699588238355882261045167356668226993914897647512327844598229575433168067446534780502848561647388082088239467968828390203825590581882369562944628605481463334408056413424036796965276133758932278922904524568984567931678279998621502955003784713811528279853035716746642946081990023006908832562613463059223715483337593183153135535571078147123906489853582701621191107859855031158202101944459579956937918167308096267100626851576391982046350804464660326195119542416436359760784929757884869541161585051488322385668442263531345381344385789513892352714234518003793639492261937516776405420726152020338501951173070335266657433171056609243835694553709244448695860889065445314230132729388669885889499823325123865752810210010994205310750019083909686871629843011638707546071185731388003193002972946204702155973341264370348218152293063676803642210471534525451670136190054523519915027557106318027563009398926887216439090751140557210108527608005724059848118872480250235223184968818417010586320303466686847587244626334501755801917986715448834758230870385314921662943525841717061811905023509119503857120625513178403894770374264700415383721330351994080228084230735696068318191942456015804195058464648196766392918786992686605463396873828405336159212176324856440815461547645671522005881317429812810518772880804456535955796174078045594785389091587847948533339525951541211648372630981698334670709892764590640244657015624150868802618430251151138535554392421869738124632939253663922461198620536004848441565948886996727363968647034899559309432225215052468192426527038855810840459037367257237802016750327958934758154691288283257958163497193604437252890772775241344176134741370330771554207549041630115944986366361484914519191172653369905299551262386112906664015035774506464085825215567457108514507298262310328153315363642933036968979295131938720492520045263542951694228854204130193100372458158612219217113012230273415196342141241948424313532980590376815020703307661074716348830840966751764858155579612197240379952920607566133390053313192150549944968641384501101871431479730188507420499682043916424413979115436494355095867116240062112374293769409560959472435468931747800483946029961779194174667630702386708533929810215650220887770522870467996997119808730409995046149113549124860561732334916395539587725800990946722514118111625135580193102676289827915834312343176044337353281385250328658981558611297325860768894194358102508032417315751053135690419897734737591577070825244745686583941786091399861562147703940362639261967447779195067370821944912415594221996495350595601255242839567893544410003253097266691566267032235360204362911579866231369958009196166643929133743782403863399297813682447369447567294639835930617364410259747445290113686294890163955456592165396298446331332271601664675026640668192665346454146633476941172076076019148655860608846982495379949603241475510815954969959541199567937113212860376879594298305145402863526072342987938943677946564764103256339497669407431779443917951746668145776941330179193810998406291222729509876413218477758192255658075177145686175730578714762058836936791860816105981567252195859310662158796255101654353515996834532845398908190345766918645454260492965819730451094463381073485345562543723772122457598936288021933612805842931409979599831179343381892430387199471385560934130380362982367223279601266613628994031833613157736434808810223531108185987757647676527652623945732802331025925513796648776228984828118340596670162235108135635061397796553102737808558431464138886238001686749089689040356101658058421248192377136300101016252241066192866887743990671610539569807159480742451050044692531408476225337013651229950931763531217483200247477804806579327319732623790038022054219999492889921426730715985198929149512914272088883151608306670658549098094522703181603298775314626601797949366665183194174981849058989624145965301235560623275225815460287040386960054872475429966395518949256421345364404876947057197642798893990573823772507703567680981978594617441071083984335237472528298776059101892564449100507929833197320632235961498519429721340524088708079923646572003406710784231514539430061151499998286111903737839695243337408755317276750280033041382616664105960063108615055689049568556583963123047230690271358512405114462269833832030341100744546559976815315017129496651032053622100131497341714901648804566164316716557209616564315282117095231668017688791158460438106466265186044946261859833776186456456720318866268679410358518973442270228941256018103836624085527408861191033486079240485604263139602471073375268702531109380876297074799102115356397322046672301347140846811717072094403394939261099496333729512321571734592332737407725825582308440675236097248227001794435331758557913981546122698567037717109243920239029385738131758713109532400841136404848799254424419369894849914857544326808791811893325942871751315943714786125436160734641966356526968112748004403927441315080885234062302612696136457190849836766035433863218657435250779795382575086540279071792949813213251303022910523700922924415826906349789166756404766542516721216796874703956390529692587733101859872896733922156657524820134692426939139976229892983396487244160704167964589964047407860752655115319170282847174261284549207677405891793284870833919928755712898413527441126764557856720572305941481792637688235086988303893034806721991065835190312788992685038761709836281941904828936757837659648099642277381557258953306296244119052924314467615062052951842831531144396210894675240634255017625641252325995700817607916720191567624526650178156296415634393947293354749248488006186301814985295002321790672810005175971277412578035783789133886431229795805194574997797431788430069045549595167139042148328122809001825012495323037476229636115429024789148254556706394206681119030353627025197628039154308791389797535399789775559722378507808873482010928016398293128718202549378017254837087173100937785212588415533048119098057355678995643606507145842673798833783750361382703690947006461538026716265283709062211745909965795182042947659314029555874538467186813312745273856492061416039105175679263086018637512863723398797662545422843836623633355350079105647858305352178363792367526618222016151712883231663483657568576026412052080440673449097073304181341898281637620191671707719233903849837637586487180290387990834494775872264205902167464759998404845692783335997684466332515020269994292662017768414422366693551929721113880571607503689806217129288998091104241308952746886219664919185880134284136003307380310297770296586200047500445161790086334048538064733731825103737077387822731593402926123050223889385762035569185314867746300499721479511456372118708301086998834280410954833634369288223914575765169045567216992571530789110935252828029608608761044719604831078247655593058060547545142387096195616728228620483332213924398928551645465236715058984940433367861574122264858612573145789178680174296452108213913761853849879432582674822071238400327787220421963333468432954401100444081431215392776611248380415846968055157549402869654971180821629576291315326274463218524407749741030554676919366498073975916014220294169245065211053173628378003304431516993372765851214619937766639299088378681723927883552378166861598667754490454426021628180306627086950713775826581338742210377850469414288794280993352707954085535766509727704007856293863431599023023930347468037747047072184620592101392851580775154342629319337636308722344329424644206459944247807963705593742309581442120585067961239012965778558516819450476062732910296724438363784469593452228984188398722500107744355875766849517509896940064292634650607956229583513500042045221914515282840434790286293281264160724793415113867046884470495308431339982517139757045849218208744817409779094762242940298006464514123395221136710409785540426082088365721401022228890277411177389665144384581028689260877270111213321431363409804663898112777127431876430311403506504579393548500771484139902416060865482605262371465913527422356775621822604209340775821692718855636934102702962117333383072344069827839207013319969971345478350468384696624711350052000347534255689221131560204011911535798698606994324902572116420442746432755631601905901871169569163225409026494461856962042165464773714000956847641660403815686892553482889204093275877571529557794892240611772292112760703574395692760638191072767969745625723030837064424905007989101147505021475645893250138562123250675115369497819466705186258586557055779281040806606608834001550991311044611995107915853649112639322784672402695834852292515986726930213103701567289550243481419593825905066860692759712569109246329217242763955988666347854142920494278302704167084424553777670805194310742776806150687451256037038615785848253521366417103745607436755181417053508828167245405085374151143775037544398452800576143289482723607003702531539276509453900308846734998631649090321108784539511525656429724905605203394839851929738184774709658283646523845824689712065782861949641385874002077553397025753390437236278098840356266465662600079063423104435137757009764587635149615782594560636247955239636555948765974833024951542732680417697913369260529314629265671711349578329877860447025058913922389249054087436058232577462922881470516958816548873197657943610714154963047964699091107987429431501680599424476126805369315604962379496161250423327655216878242121840947695454692610846650141080538342037562780864959905665458170228358587038856070709475863385569812979325310125506558121013255590899749855620035404340143506062064307963969545622080481657796130401995771526952743566891888720401416927780482904624186499550911233149823534581573496443971885105924507183541894268589183400528104455995114559516431629580091941754122833498545809964481608969518640799088451018580400270399840288423955931971889924426563914352046852126033651010964600199979144099402700874034895750697416111831971818151952303815677810814532944342544963709610364072330221851932464892045603458407679855624482550457745262353688716397803314999848381368204135494312159239504978211285290097786118845945765497321810071020957244821276466245363038898999165899996110705327823711594286572608218784062355318709952435310198746414381400901603586793397396243593317538471999256625938307066025892199950608529930868949234135932490889657854617817503934977624884197150363068726073851345802929256786233971296421793914853665237058826581484098859140605991526300460242024655938935008262346131462938473104256799789064381610366684355136384090705782871109800499017666044458817502189670262841910216756980531037006666055346104409308742449172605977634564504847590482752900310034982412742285375958433432129591437832047693434845889412251147466449327762831781797791271498146304184899541858845226099017038735098719288474572001991500358719197813731228954558550117299255212489007248957344827516181956526529307503463337641477310861423504466060538953525442085040897263638404432935319248605038274275620634083197200241375335818404657771331374437061430102911840273499466433162863158307104825171463351475844367909096660230405124101833923926783159961230752448844928683838419967488697919806016262902786102233225586710180366923313941547335008487316813678215917156329427891492522273631931559736942794772310188882804310389342186684282318665164628639449758705464388420811319913040309640072112239024967242737657318884213888729162368977376787420856451722217314374209088595181681361329485814683842768097924867279198080006088258119402052869719565365420026934694680485555950964869123155439277423278633653730758986518925754942232945590196522825860599607930264973245218505377161871925825371762487112725746369538985836189145169778660776123562505576280829065093218720789457585500882654973672410864731792436540597253992129457532094040243490274998796642078881606890421442328885316227881546123313287396453423122129494542279884363073664580268764329268813151868420521498141232595557402491201975546671832250988199555587604682492932982858291399723234478072259579618236901135746420776068236588716722173487230670189804968573493619433156420517707293107365991009716520879530121765011377198165804291926845843024201339594378992645039772762143698587422110460702133483257257251015752363414404598500617127869096039682706600000718945965906243231521675042830606378751250867090924922208957751512734190853023148723386948459904416923141194725013928864590177372316447470853703457741352168606862940501953352005826313804904092579074700404963557320516188492274164546021781277067187900233037878203854828673315998166586067756269389126610220058014357761050557440932556742913721321681551716171630755157254946770211093220696519218593236585501008629375209328960372352414881925970422677831907451951079518760656162346741248436221183155611097192037254494415406997245345714284884298786116497794723641800649578693389822340167308417789610652280794188046378280054635749071714455311367965271779555312949840614367999371974272830931245255150191003559660262249960742942041310131263443308464900615958856908551363099414941045778620563095543148821370163425821553918277626007976275635248182517098315593723936806384706283173078835102819708812561974182572175279560516605984445035380833787686877084887356405054841872063029472913234998857351693117103562439801661725434169149052750753889517857547739900037564491193400291418029223078856888336180704272191135974383172050357859721797953154504013638512890930430940081614679471816163188270407350417250714662711922649288475605952512609471309257106065358922210285525919901804949630043493982515870234531647782580996193211793606707325645300871717843703747041081769409180546507876574973591460034448023677886725961635647627753233957567481731159639531823561473317198703885260026892646004652327975897538638615381371767130710768406806349730260688745291394574501733150432383256802213516677896995475838577912515612910152972158238476484528305974097771967590129306822149174645385897737909834918148597243561402768531677330802436399002349117982287659398828791470589639046849502933853866657410737590698313966747026629200356563638806691850686628680324561639487078237891842705029048029260591807624150374795040465604765608739921768147977143304287121687855326022066867840357554897972490577805652203284938928860432678972223432039840479459108783121816643406471570234648602120055540273821427231131439069953076947378920086753227577726542364972793610895956099234822943355921555194606191600361920888000387499383542068886388781796881583647606187505147415267083466061133934285379272886095474052337505758119984076184367342269375249651660883352438123624589057440603522370544381442501681346300194297305192688376654297555911534155006732228392973827981529894118911171636830809292345843137517315455216632292506546308361766175357589266836826668684699136062076376140546918249586276292317196340965894719700437905044607229577937360690347929298538622243770065367795087579388446847006775007572502652710370547833479402560564928937462081735158798845481357470304099358612757661038535678624992344441318815065253824173940729423328918410495079702589276101862031645706325128791141930266939196374644036403284065317996448283124406032558466812996737322852754986030498709580842009211296324186286242928761343470714793971087837070365584688293176962070111991971363588972555519044231787253293427896477257230428682387344237946349799455176414328739423163446505168468513314144225559194973484566001018724179943662935192791337172585321097444638459777642358876454889856429595209131499514936320013963467304477237020671358923890782020235358261744859062578383814455817133707365449947434873928656267506322166646107344916063810154376519087857651217604443103907684347705144590266450896754829482937145906059310695450630165694535330102671097758091251910447757884875510984800665418887102347262510019311277548284374257663842184548558911523362054477759886457471257342034528894807885683329271085531457174387681773268901605053244864968736661247586476329486881476713625036982680892777471165795596827376742994230524083491409628497203905676245439867301335551610809579113026538474119353773325248139183705460027845790220581302834848198105345243276926413413311635989870993109451706682019091971182035192670147436137866816450160228211347592954556800843358803827923400477817426121677111693766492270631917396676167388998306200712969181221655440146278127182997468251431988077527288003400571663167737591952603958000714740156036134399379358738943254231920409609406586292238322262910871096983572408963332643202362246307029946890991538534479251974075718800264907971980544892056051414463376330043425386043137301830880185318191778645975316959420999060810435590513234679892919252980752177107921528163108206761485006051719065391738969619545966506169205602899589348560922594931864352854850049224585353564631405317831602840200834800929848217959216967234999455251330860860794959762612659554369782812362490797512457535143296214143061607096968366197764260387777774185497256163176012280805030639344751847957113873544345888121837488537535078024106722664390925049721305578715490603108210626353739697761301490931063940145400953263231498313475321050044957114620153056933118810178707046946986164719392845184486592882395666274977430104632132687659087495421233786766691605520913682706758758060606073129535102309872131052204024923346583612677633420015569233138778556075331857088741315520940379879877694942813747785555381916384355383914678245563741096888931021979473717777460007473633877087862136089311109859767259381493145064552038401992864996875936167747184630118172408785187376359004866941202524981578882529368821884588706028569133452874074082540079509359048536885288833609689028330133161307582311633525641255546924731293775159167149620190294891219142897357100283280797673774093246859062847489288062213094179841015224429604197874033078112343085384007588495127889906925455490749989615995610888972435011849817928614558006684538559081076713495109030975558171102045890355513862726121716036170064843272125411503385886700673956139026810084849797764221529054901039694057097564595886427302186766793155239461532416658186656284432139010296154031152085800474909973746435762874968533424369845867571481647814419990634934323583607391852627796716818128700863593174830093820024069613879583426004106987353527830616895556189511821759400760709021161430478869227578384920024836232866934083693701689676514240952352367832061200484077143827526530491587205089067370925519140130714693509835830891524384541892911265456146244886387593154718006744090069264710196648273120534387416991728148300608180671136155487281067060780456930317546424277851861517464733976418434954318813860733531891276250931727625339034826382861013625614701256435158235603011887864611590302209276803175997750589774706838693060714729505174402390912733784646516571866592149109660515093472788203544849629191002581721120894953102700425162882302708268685779762220378293757084012385835910311127065855219962620429448192798578920609089040508136794586793742299426584039467190899076771106762470667281589377324554255101073776271216539622827725186331897638218659395303591626100641508308769057906284766200357459062399341256243174641523347028188443502085443915973854743661359223077044213547638164429755263767446947302933157429221086021015467080276465488267667163790928422055716809863489633302121366712879092001925648058116688509589498445450014044673055717693111066874608941227100357102965816463868171749159202726398489069469208859911763309134840678164817046080944416296284218927473352364603567784816570936142174778118660516453553578883074778805087212193194159093489872023723644364720894014848673009069777930096811109882743847090730345627374935788118325982167717697666562376610263164142858210667446358141734353952248799912620231640808591635984674718236569022015456652935401012157153849329133930007323685431841711001851478652726375027542607290942653164378138933646113518874396381357441195001560359011877638802366496735952674317596021454168512191865585162542032628680784248549343045460624353544648607146992235396814696679780646609831398912516809937706764377993699738368352490583771031202812686630179714965761023286713027894927659084614910190816719019096817354857303432046257017833119883624397571125237129520247435694594792960756264955053965500500134460361563051577757707239951166022205593482291543575908684595223962035214303878772300953783842165232083552021236776877150205447325855749333404516782152814974873225663679426181747498429677800728312504161790298888893197352808882818880213902600598451313066001517759099298329832804958262432215524384703964306691779399998071278289543613268649125469413695013125236164445234811234379590573357810013495610079993897092881587923211189698969161343226678308739184703067520854061400529152418041134807878539400914231560272337274940077458930508141599650859740093833183799281870414440798265072610191955199449956823374064578663333551369812148364582276710069811681692369403879715195174620928980694546251638110654453658642849241103658004888927631981999999215046227203343434411646650995621009265634380149381491506378277881212520528340563893582197078232101646517823749704934190834012796671162113158863963208514855168053888877339682367280553440389269016750122234979309907221516771279793266979670788530234255868115298018942468987524062922919550832989656844273890479438170974884119638619590938758967928546196385077472597072019457083845982949086975097648646348027653036623508478529533762508966453006872797155546732953312554455736839620286377042167906449943540344651772242531319405904349633092380358045843972688089607856714895557680329951242531218976029124531665909377164499030311901602474818881975721207194676918465936626474923121678622399363757819174685410358910855154754162288149781738373518356679351680172798697170504505463625818631325177480286075343314621813764970959211209619427081231135051910901646083428941732168547285477594446278753251865506072492084370331105176027495067558103453285218469175848972176033742786156229564082938822514403059172478186523024999152195722583202752216301187153345932422091946195846459746999056850345192661238189687313130749404634468719365226667310829203426115005870880828587939283292467244717244549158593570745456640033741662963115753479114500533084399366801355092936507234207646059760506166908317361536359050713104746064094919145304824610590867451299721298635558420386262839075536729447529411477328664175472362403442268970671278710586501444437463910166449956923409536413827626691392236062002136835047961089553323950342990757411414542150987940214726438646282056552511931722301519080811707118240828840719822899626425230764644664127606846350403493427471941106017033015333079867214238027010987971927559522665901840085208293551527180678566594808980109953322129508338657344401509171777010727460561668690170676375372720131721559708541169371182424428489062204680654868922545845573888326917847762475036001302257181719465842984337533462545921657368200114549903263042881079061632521811458922480860992775767024538812929017689984293850161869627556936000881637885421002187463897173951403193703277607740146819679547514757544037417110093271292127036582886068436694363248345621564492459806593137766562014507574340931461725562757744681849110619167546758977444235756614296157362832381126719602987611414607753940884448235146181972988624976374009036495288610872139131630562671651891131315827517397839251937495002174175507369383333778862890468410570522203052347372766049081221859876122330303725329474185880562432787016197115392694036481054142317041353974112259179158818564755975770559426426616339213347131511510155489585477569580125777013596136596600433479919159768020717295293954127025965603696383496525166415161517521160312426171466134398284184784199083691978498178525041413129370516465142020783182471841206216886628242478982228209224201730524430458430140811046242143426497672821483036593714221215735326623904464041956852955850434556778106741995882771817320372621039941162120340020871655694051528761143592786019361612172685788290563469228366100796834873606945036419945911717296531131384790776063732255021193621481899869020277207079540043151516578417952621555590431089129101115089316552677417664983012487287019224387618793809578155345952709986382663902925302581490960745767188068842752537609209140706592396604452501947890925410966367086250409212546894468211977075178248490522937465848842178097691769038396420789102713656680039605505328665297975050534717288031103153101862581406674104281803429998720585271112666630894975433243688577126775522275429096380643442223432247167132323635516461096439227179570293742817553977945928390171668501782142365184334433164508173826928090570146698825172841716632211266594705095663522636631628550309032097949157032122156233999578637574737669613247223377072026191416424687931351563164920335067121506629161975480783178206518002415561459776297838417908720006853419469828691175159500700478092360402001767907128679931297840629336946318321782793193921541699597862913916374540584456806693341429167999248883687258472898428930779645395494481652828073446560057095988135384988070741494028733949928482468581126520880161195740752222474451714331162351876764084923941789100536435496464813350384715354267464044239309506210860678204417437573664376950647852723816578727770846640643901127535508898115581147488441513154324622137598781237946255297348391520237295676460196853305293031372144481090546360550861195524559342028626819867575775623251070505494723278264462902851364303957616344494314082859532388426731624639683452710242756215202308976194820756047471617898918330037717525733048081703910231684472033112294428691390748384425311936003845779569255587250438030445842582551011044061316713332570546326953602627915514311330921809091322181683824285003185172659181306736198827477034967571117972617039472475064302340208568793195291207705225495122888387056904278370090579303732528751148867320652625855898204025264506683380798709482917143332986299725262690619768576461937365995861438496608014016152258057336961002123758988604987865134212115150150578472019984946160373150216771816089890687285037369605443248920584609828352615090586058896896542680067002929994937159093056315543729825147550664981668855169207436831061026760689982402978730127642912771559258960911870744850051320019539293021759485784148914052010742328284858196388205044601671052230804792375073837620146950029608914618960996639629702747164375717587211531794212809128288270645615879783958731402096168247996473365299719798483936843344203512549900423436928176750759422152739235452200098275734175200295937474550401139714825441210594928478527664821405325913873978625069848092333609706176808268643484134215730595369473181516191688840816823405070736261770918684552278683719888522304356968791215606740487912076297068197054507422402652082144848816547855492079258718737274570701723688404831614206992189716189461019433273970105476187909040047930101256817155058103091747193164339828373859597175421838106153889476331692001370707891032766216192096145591467096044574361065829331471263789261693336809859319777858849937934544239636308692843631058393272690988749430273510444355830241136625381896539326962226639638676299873727154122346633317175090434530792129087008688947627315797524451543285242282511880448567847102535213982625308600102991920895044396638807001515634082237977537097437974334816287882997548670644368214493695188182178042387182647081941172911044654227541629652912828105807881133835965266377444624434740047413154634589127916906133205037331921432245436747643829675580628176890314549473433576398198476509539510430377923975441604909269805230293603560887355029049394102099996634555131795797196988456773723971866191103541840126978760035412220277051798399945637381337901319382237710641594923854554565739176267549888807856008298557700887319479530929132273116316801580120009913089014527596243355466613369247270365697247537111652711830405111283603863194715000970270329803481833452367053118095507314525395836491260589372370554330029072624355919289153834331792576705847851313625341256580160786789407789950882116913528590657180925338517910172116433372735904167771916021657396619574844328655844785211524954390843294990966576688615418294145879305020081139748284475291832866198994102149229437198484334602569679788101661699748987164048542269019845478190345022554627035901383851047418437459643594397675366486946790152215656834499492293518503173575764472008986966565733455285764945582952549306916910127125627080167666277419643471964120853602953609379082708288711670316797701954345642209388322928750361720281060254074140975040400053321757755070525712976864186163057072319624078332530297521802476675302367311609381953885103379146962938392199416734782125715750014923597100944671709711888381362273773633529175787071365327163049081789362213516542255424308940713192786810181954303503908010127093971150105697111425432734235183898761282716664789844074289192175318821256093607900969252201996405208630513931630694076338701324388004114942816109714707003369526141385345156916736601263071876458923188868714736671779401816453970094844991674371020122557421639915903320348293277861618971480704773326313346472252837752779367714704484145267405885624628837559860536594806029788348184837752249873904607109439069376385938097953376611083845785764445524577036873397905467663729676679279367828610573116928023402045426769487709145000586244964636153751096984143942665433986301812584763938689632202916086638948282312949790779724170396694318870997002068709986117269973683917180910311072743169388196128741682295675446247830879903341965087446957133831948678066807572724380303849666851127326452899220815300057996950948192162475961329534378591581832900500773943240455087412901061636884952455008209610343091570375800336289525423484853793112880986586576195133451230273974313313985002788921639269548376394363849437948753876104996506336544617738174323022426066869165327995841021373098476042974255617615480955995172151065574002309883967134362026546415502064083529006684493913440353467856116374284013170193006032334883210394785747176708279603257941779748137908959379840373720949246406797766262856491338194642899157118346462026853941964851483972849774430646405391981303709867666921178867495971388538851771110316091390453594251955237123677119732552141756886986089437194493508058980559200959412319002013922755594443641891228138775644840172372666739010333356060299993586440188050154262590037090112379166202465462039221483797611947021929743322512658857192272323298305291393004483580070808121603886803878966738767677973559211747600127813111921145486891292504686059100755427800499233664618757355577973117693623487863001812181984559263614095360355267874164863995110823422901726773033736278666929096160786828369838709531114202206187033426572510656541181021519867186682128495318923909058396607120225127262330652469706483468230382834600005504560820062191104840516678910091005837008225239787921969037619208875306718495728626313884724155238526607928214895103912863562374183535620596606007852035873883569973627262993053898695435326889142670587839088394396487538794880713888717433952238332203777842516933810176127296683737045668504096150120567709729808812361626457990496692287834863519837081960155796824996669846274070358341993265074404891939863088817206664312348631741737318134574134713503540337370994829910211806037940132880538384726749373711280146138090657764232611989340853566895360082492761728579586371336887657019891269816393679854383649167609765761460691893439553945824859306189916010897676796074120470073684600310881494392690891115894582687341792746890513348727881283537359610584701635547874648177930569343349049906641397189890868377913951973235176026599086532211624324974899008686663111267473775624226645464501833225822552235657712421813987629073536984742214007211492107856378339157058118983849534140851401785585744743844956023235650823298259571912746290920007494395589828964636207432742930789934221222796350312537719840139461302882303812112016530664449930369003528859164584858248239622403056381725636141370190686607989605737736165106121258212621963811333124472511671297264992581475017659971948617210305427098945465757545318487409113700497025875530089013585553876946351939611416341338042685182365238460566681746812447949967870591995299313362355563246750730568503579115203324701053055662276835384996073073460694664419636337532191234191014347712183053174651833124419771906834092234558912164288038064810316291796008460866210457437276582095762303534468269794442039393346015979798413015363818395008589086004594851829307495530535222946840695752620830006417777972906108196277108744741749430005216025724963719527876549931820651050805277465116393074082942936563695458004784769060763524190892723920619412432611248390341951577990682093415920459327228577444567448442993676890066639449724240151522457481888247422986105798524324384154335739378068145220455740432997676520396195221890644228840835569647643346099941158754022590414584203589675647801182566165321131289353395023833068192899661311997707010536544361068389547161737987161921702636077537653686800934760298477841952489647252858407011987935003959239117327761792943649821463127434425573408542822103096278324946032872636194455046714186286344983430461452105550406491031943192818927453755558754954107398123845451132114886845764410687359395786518730846163950248508526511553627754610330615485791488792206254493113701081715378976517247389637039810820497636353331498580439232662336917715759119358658201185877959874225909298324299448417997565775964564836098820417012394619157837781608125458399577005875723759073993030822925505990275985036880354182078673079396523465954498097029198961284441593820720460074950672405144143347021167915243697665443088757372357978611405157721711419788896210465954560153356622904425670623337969063903506476913078497798285579528007477013390901158911658444310044735674200430539401994729497583506238836259938083274103596612269376281467881698079236414259553996269939912098015655031093800026793071409117186756983268744200139422944944623283711844105407358590344666872752069851123126408219518639901480485732621522415894806487169028382066297476551275915719627894214393497283803226914799448676849388699466459771435053922385928356933113053967127287030116353960958677210003266170111138313674877757309260090752619197416942698138118263536721464928320880930806695498020797065151589210187288419169488216585030277420943165835391768392406920879076934323149520908744780160908067194375728284310248615915825269659184747774983200214941023376268135437550137500206524133255409938036116903872675664794092715830271216015415841464491312535094338601456352565819883868553698818046551688353569150521754205495032903304235079560297420502668956256993087783717616124465504266197404682666993415645295384318678163763098455192772088644509263342717452168861154459077960068854808551797794048931167660333989793094774392711537105126478870420781693713440118175938402718405550775059283831869977551092876521327802606679374228273991647376613506472810321697959730999739993838064146348604748459137333474754950474904903899090824259352971254857260858661664993397455427821717506485456360794767744302892321881036435567112378005461786903188015782666060086499377449354990143043321980915194569821322260660089714299133031021497120860978135864569128029022148715492265747090616589216322132712767393659026242815556082794512549592138733279568790807323252510871975913527530390666298510300599017476040308947057918186649882947715744108093508433880830750779529755697775379298146667637344833880187020516906868851842767100389529874569360783209100881392203567333543586932635806869983574262953357951110901662061184397961668487414238855004079418049630708488185137287674385136707793878184094750217218512363027481228551111420949396750841885781773904626956128481404586356197298093621650995546711252576436877714677078391822744236698536316959938397018464572766188770246889641034178771266012384211319791126191305183665820932900187679438783758950225189502244680646924972338396879839365940181799695470511074327660861535832210559184357082019876208714916417326356109391891062493512196832529223328409299248442359011229747715567974065512118908166385711288927573402342313804223566635336345413941904555544327874550559208780992200145932701460310116566707948965720458196619779090070032783711665972566936751709901926144590971437317125711670862146548834498386372232651660706891207119915614414834965351279173097378753517384497805619256393025261140554396276826114405808092994838979341915838511095172709913438679423352957706192266022350237404724051984335857731177252315916741095486360284379063069163602422393513924795469287351392431643701527276072158550482473164978784465696314846396623073690376138633019717379249348620425521208188064469097838664712016121959501375582330454483538835517036059813622403889676990144632720583485423062682605855404459760193326450570156721942349184722710901284622948359549472970338144814594732841998351857590228148570850758462343494345546118878710704902212414499424781015404397653936559950332431319051659772180017237167573351189275803913940232977697670083574552897291695463478523621877064291477706917237129956436498245480321767517765156715137483394550043412391058380698947032698787357337456098206135274423491814418464556523243439792248105273908694278240799220551711315214638513549374587655367227985679723980508014456746678078535685333867020196890123624097255138120753188069361695346642232963638063552988501765201261012048323528305781737336793277064971235071010520547185199296252472689537397527666730338574402665341028428149318224016888299345548612790037086994877800465595441552172533584415847338563181482240608872746020009105674003870468089939605264803625506693247669611313378986311337385279131168996554753143178909488846148913414031662419031006587753978646647169731079528063680853621218350264528821448053836985756069640946939068465459311183345118842566487982691346815288286170657358766194255785217004819360046227331485845855935298242338268109121974617298983562164047501985665944574460776242255883195024870257760216354986302798899742395251146052288298670419188116928891999757801175148736002775778949450232910504227325383291532606374437991123735219121515051527265389042244974939119836617111429719958702807439382334635002235764658920277089172877905933629553422026270385920406124279300543933092903134878747277158575909479921544145006331738940535936321448064332068799954686729662931971100234037008031693535136212370989632077787802094421731681699707988964520061126019198941974571820998363017796684294119603020677836408802700885073204309898683647221145391614616053539802927559660886405303814319977746409521422880249031738766783042558062570736648903026720243055618567027734666822097231530346189977450722027614023462595253631179238485373344922453994140690998127092713724820215319271043096961452529668498433863283106155383272844829395254797168417781966851300373689457817231833243342970451318734624789831510721899975386785553680955505058023933016735305704517179147329099070771949603882681241080944665241298231393457319501238051378467177798210180934057443951397369157560933770813630638604890475624278139628624431384558174714803575606501925076183865717338030207814750038912351889372584031949405824508442376115923883205760303929621358881471439772262095471821662279443708587276760661161921852050194162029876763499167867406153542431311424659030932641391263655238449624337295265722155991533827553394877589441240990004028619582396362346739147088668425473931038567469580382289930401932073125945910298639544256398773667244373029298314612216718246615154729013839084570782123816191462041117578476864850113483884413599414405310167183788814265062993375804897443273681908272406015364603643719503589456755787511094906018276947435524751207171655113385853215457488180209147335777322295916457487898689700932995336513194538454138954251928438260072449782695977105460464666720947643784543973550001370168241700779989539993063466574818044441064170841720300195215310833213868065375434593501425434073575196155639615745492985296727386588908517780926656000890297675329586276232267342137629291674076503514082398815412072272048085257528452148053074438638212058274755279012653671246228468292022857448562018824672850144958598758029896214188828474718612945254100633908077293323326846258864056577789334904443503148029044353659207809114049965730409446583937126559859670441692074144848586658248170604532303220169297714463795890946942459191185305721056665977056695882172504049751168281718806865436948393185653346408459809234813043614935201997092885648897435400513989885978400511638243620811045177073253851571861691855326702417813671081800318192823699520782939572967272506864034576878018258847087938216807119812623914863359507181130727774347896942254941045895983189837175659807588657121057501631903632178093948946637163435356135465725680874064151582926422990948415774969762412689587822964897429727436234042868330623165638147533732514503313787039232601314355961895128979148026823240878244070709350369289219524053845753995340822096411426727760763625584652910737875042640528409309248199056828469671173205137042063183745063801806436476326835236463914356210247317267069017592443939217343562827920331482497561522445782288947501997691008732526339805808438147778464695059839741272620257558589251769715103890715594071905503144502816117976251002244459640579936969227452159851994297337207771376173665080028938227255465014592657647178091023494451307196261839884925080540364695285793303626258967804545400280684418624140272662025628552195162453540081689541432056052558693243446190710703912882958957950016226568652344827981804760807770939943116405878289106754557439407409440134360831999487743056940873401714434589655481338131601655200327680843911431382618890691637582860194096643301248935138850140841180681152545056128673859858957685386776915862929768880468235342285379035359499533343781182780206650958953667092187382184405943375473801908917496982420081600612368732148779483396363999237091765366801612892219164571603545616527631926618907666064007430732593406576370925854968633401012480275014679196798315638958700333845471052389670510023535033263704897179278004007169386404095822359465723796777266966159923328711513151422362002708620567023333795430650642789779621341287649080269658206956631447705199882235883526045812078260722385293094305152587134611572196639459844306374216224628452664898415130066694646480620036212296247301849297545019593691805636518876951393064053585974216935345208182798617989220301014892701842777832236851586036634935454567241214810798128251211474569103563756061974859095147339681518744190169368225342753710689850444446386443584402900903982512141856852109248427068027079456140380587697034874935819913568806523838901663892678146199984027291521433283309822446838108017927991911069626193857746754055148290021794299518612472006930179238682923993806582706244650094480496829168967010748087244298494244098223779018108419873729584149153412699120894100952426888307943776349081980858777605260267457579366762550575894078378281256648067216076024006048435673143519549104535322740785699926605734918759573842703354730257333951022348302001828531814669861566703155356726278989663677087573971127340787612432029418776245986400432480586034607146490757975860730888201743949609109181011475944385527742807115835691694649483581189999247809745275822138184567326288853971904628243353109212682873281756187527501674725976227650285192399473304733049942108906862182078128639000307596663253957756214733583501457955910664357774969189577270576094657844563326077839640739808757808757810017879782180138123203596672119044131390288936912014530933135908367488025798699871841023791404542039414996806685575453969444886719224349074960984741206275514276400647244923648929436075490908530424538830161901173892892494572073115938740890235984798673274518634072887427515340265894061720038528279813650679509153332716080286131206009202261799676079816183043170360502045938667007745547319146913449371936094322301671036951782141964279985072879570869633647293117501031553873526166823802678790701520237034618672123223449017140985005348237316129205898725499846187612351497782830295111698245591653619629559634158010285705979746187877197357089793922262666187361919823755455218974073359264110248416950942146542628199498277963379172222174982536643132598613726152990617215990578170644364536155680580504072530862584541185888874138505935639778439832940180527321576809940657211047894193052724377511901211170773877161051128878788512524554976274246634748722239864091222250479010657935358895412535523357014051374035995380204099134328602262246649763715580613886841052219314688628684760108110168149316740713316291910209713291592677614943370497766043824836724624436130758861295713514106551511926507221872688530356222705895787677063360602917947153606261482477345145241044268737912225053331623913902141408999526855559466046786176632879751949237550135307763820385002707509923727459299631735765231524220872660229626885385511900625977634559946561549021690532653433930460273756838571439156469278456154393782711630645898468517910516742960015415031960328477278210129344807394427772337054743306905960877999924522777943535108882327417504149727304085903306429726876836443499534951791575768259218376429203584884925652217820196630207409759648253857856121870221856549242394309796494484921088261661912805559023462060631796790169403443089046443405234074189118695679647755864617056751747225903263943399108452574582850796961936494784058471489822765202060392841156713073193642293504414432181090533359632722700535476350078392354035440839402952076561031417978297069833784885158604618114428749671156662493219033807983879383612363431557621512328924821881829572962843417773013519724241692623487954939684705072638059738546134228269152252198651350448946397865658297065862771303331548777041036244532381990204317172969119295205488118223825873735325348938183051903672079203134216883162673053080167011174469920462715205133800809635716432681473373788665143834117950259462000726083356039876013325947981281609850476472430694657315553794793955870499662173635406743202771280295185533393136943331538284586108634856730525033224365481292347683957349075557710757261721853758815087745908496430282594700686329072083076503898867831940158753373877742346000753175307607240076769918000125255148767849182417581303786901792280146980542491312635202310121495699275482620902169199631185744378659628676626226360195991853137423202563479035595384984832761151225059485509955386075811787642192827872631213980516647314432113407467293667098969586764012349226897355807677338657477116378662093243978224570974807758922833405044142252017905914149315407680648652712038783518864744714170795515088805620878786171319919661266032477253076037866270099293661596451980797419719339336056105869872902023908272655420770709204789165516243435404120103732783732101232928764203008000717398654577862763134762519653279761591302989300326900525847149776447253625620388155889729471855214058403644177412700909586010235628703525919046522233017803034871202342530202438679557671326668197913958247241387526659356595445371099706807762348428342260415740812366112144708048626723928866319851027351317182199522291620116027263519877247517485169921091706894302097570069350686757954745123141236693846414337302714233048152275848641543914909079109975882438899546594979878493038018674603037047427313800848869075625461292113352544029793811041497473109973820338603698759594373350065888007536336007773151704435685603298763482162178797471937245838775972373265061643619724462529169808643597050712866176808644895585201588321685526368263858865877481912175448712163274519432653625245560613281505534333589137756085067555206902484806604345894976034931285849309870519178582486033681262500071675661034695554338054632085049981428184778788814278981510765569275059402137331225488915736329433060335370860620099979169697904722230864379197698083026211300046408661466370601398866667767577224907411308817475344708882570034413719190293510162537708958024040574333635836837337386986103532987045113509953949043511766420210126247952254634223054013824294116583258023417786143643485449511733900990508459689405216569407854249108930168756114541399021094672514708991232653981952531882202871986242043987073555712045018022032693606885211942629930245381368929295228936017099399869836407775484889895419118036385055563903992815518019357039915226661736653877932123983123810446078270416549323797593319767306614726506298261586033479338790153887521609177323049953183524656287926787109093971193097488053923508456577073523207730052144680031501392450066095430509858600250770513474238957313386210557873743918910402670267900289666534068048688261456559384902081293404739938518647412222320323036666820635950796429126327128092754581570441360031823550083969714102514899699064855731551043255678044030950176479950561056708084397530132247394288565026150053126454047894809985839780400207781522402879184564465451838819417727408969568483563937654345348004428689277416844378006328593913722897032800160511644396849998987264532378098636371822452338787293412630744763722785579269808928196809541471778574013639015032839603910993482241412375996863937438424949967607137379277957128299893706657195679470356955358039988061020340961797827029722778678665044267590126470363796081712745816180098151549202046293862492094151352711478604730525762576449265082562345577583932272361668922253401832951809592797037122048138256710332347285954335740237340932987917069185722953069174288607087679744281712155254111134201932158259286911221223032608870274740488781214889099630369195016009135190942589211666849181236918548496935926227620819036523459674183620060602255101530148175374609683429052829558037340277669012260117839143079493946961211611588732016459433133379741976248812797878817983153097824623647863340094207579191726248581517034209975131205399811926146538480983871857120335297814784811259893084154582146816279590207774581219378799169100735784698884087712028084515909737974894159403029769840139484422262483747773843363632178397997018628657788952025229912694633644481693277773327954155761222604162906485451325365515697355595849972475017173907274495477360529296795803610889814108918392761066236257277928169502126251008987847326526705650528287207328638218357016589215587410707662366763622513118758805094319369332502517478289713431778844984928504234691903117384581714931920389024894815675403823332834601287564558962926609584587340913521664937453914840577591343987044277893559038738895815276274830526281820849003783767907706016963095757338966457836187226882369968360896781480273967871873025033306472212917604568630091348705336403114523086006795047519303128921603336022468670543015137961328259813972691686443135824467443817756082570116056017174894670669555349099271103462392132814639614671773946417993296171564323466554910738281585967118599364815718696765300682783210022271737542539518411687238990679384769033621041116808694637293951106406364486816518606880991886200216601655314579119284247119034593656964079492274374094578961789020578153984571718510051405634208859921761045819358562530907235228645276760914781740086285071176390381131168441279581906331501395540917645573104808080188038196586430646797669566349452735383881613511387379098369089336378637898110277538133682522903596310775770861449898455808470334805063046914516241355674254346872673839295232159853501361102091890295707242211371226708059821025272474503773295854505175977561187164404844119613109167683471200094014256581839463224100176969879681759738742566330808468460704252957047966177036946060688270159488117407536923650178759321552083804059037695320832197867044258047847198493053869616136959832923309017435107397947982688939603670369526984651476484573145979465600051182281149169465809262242124597711687187088901465080278629841038759187304571103458190792710707331050427480241613502234940958941468785098460839877366535152197360706656388143710366345780578139092161784642852818312458380971588770570187804077143910218747778988672920410780322929535050220055160374124931414163691395668174608770403248939284895130781475656963056080669864890922140743473296732124448550122140295499769038728084635262051014765549340470113175135739247145920160815508840296915988876952195419280911327941696469335248971671929747267601059885933822979795653838080767133605417160722381199720697097865198938493166425567583506655212885247994092582341825911853258769631482271799589030152817141550072061141296120274843325584152142960260764903921816299728431490911787476183621815208351024897817631454028419498139043950171241706140723898520701563414258999919235466765847037314145330660510825924278514551882706594978379021664920841122926719440861813787811010005791131918269356503047883701826938159011898882440215389795970357382274192843336703346462048429988831073333338740565907181849130857723772002867236941843487300716045337965083017951012477995590275704192967011958803913834761030470049544011920229287037364520956234724788195613616218748601423093177439079786721570029497940235877617802744837294816527030357528867788750332539214707310346414918446553254255179376754583559119889411121627875504680001439287301222257557339399178752294548113721662207424236257108137275409103192265297982165686833679213966389245133432293818850977964411395687194607204107412834675281140267897232641974912632129524033311000418015279761689019165967862562744663474206140883876331823759593846152327572964385584422025543498932921129945361213192170176558144732983680740323538508519544248184013590255815879042291364729222781115799005908255454035248709789174883946851776138336617705614090127597590313052033654897449617390536544016021625218655740394144758986436376073500394863835660004551963628617967886236621937002634828760611729787839382403918658242729427553179356301211438779194044484587143023234215651702618137188008344114750069128868243921386313755777684279116441779886082583166519500252084658002382796800596657270984450123534484958171241096750410790392393009450017346022385608407089348981655564666221843484788113500684494367142279959258468269116257207994901657483043799162030022829779443683618808117812993931549383686276247626385663272270172388189414332657536538999012833941268280063107789748103867384287324869449436762958408998079790540889010217583844474187337192750816145234205468714789239865288372679520674763582013981529306123819876576772114550264169286981500480541656998803375719484287045708936227441860364406750550389157475641396622041344498968381660147165555550033148445864552956729886836977928413503924358235596787911452664268840228301982790733188868818810578907701570483067038068624074952990874805088622749561543769687416028945495687028398615817942030965122307116153851999430518325177356928473779400989958020776756864835675733680019773158365314838490282373322039830957201693547623458680989591902648529793613422170025861558738967365168023247092206420210847844672096828135009623606487922126855076115334434367510868200801785499600631685315129439249315255090947357103769089303794626035841851938734569292405251767318002445273223631303613699456334304294752046126860386281781950262640834044028405059898017196341420284527318481288402829948646262735461419751176204212971908049769247666166707086333635524579724252499014219610762926102927330653098152849421852883902859347499459057132300014300505278780965003228137218514873127529174854343540037479130391285757532593116358670066076150768643336632860937647627662121421224465112691152969592503162953955429564666335138907198240951791132507880746304380127962918958743684853709818757085386854041738788644430818496729347154000637275688647061436660388623991206196748154997705189945611141282104214077396617134978615787344839012086289683929725166732065083120456504414207011420877475462877152059860938859586441030394452617949539754466616978007042654416445107931115209898877315245436612200122769057812714865698100494642453276835700350749008589452155111625866003539103652142604734903854639921888519416053875550411296514555425290566033198099031406463750047867932908844920168970040848685465411362422006551752067891012926995773389201066720396717764701841838944464315012434001599501277854640272882348722729835681990744948449951135140767309915122029576649739306162469128218774335083069945647387952825415598270221029190547324503078128961403840166774709372812763882578792506506359529460007270597383106393741859530488957192926422711669271328706798934157601101711908533922097299496455061672109295407940849432496916064506013614934680776277223516654067176040026305928907514270709700072604655639653556315720031695192283816793960407247658631237176928535106929517330053160506579286827724054400031441565738833367092813665237403717657206487922209993697847986693158798002037382490200886298843382158574343447567951358758528892394664422490329377524291063013437983886556219372364874878211814145329996797635651532184628398741572938209208360935275693529673604367609786211447078895808351643664976042300341288031635742025430033671752740353433670001641976746500143646545033581144808336494818308132820180291337731555499424590777103515450244853581310753166147953311586577571797530290325247970562264930175399219417609775277117897471968628504374910934096170286994412165663312666036138692159648452825899972680882736728817665046494662768604722019350569356017211768917508268788929917286198850080299037496158643316209076927251949175014075554096573971266258317458876028403693594443490423960777688646457474865452335537197352231791946997534967402183318988768674528501114381742737121344156692697808142031419124286285774649703597135254006009318425317983129737479826306279796665199923599865212130997693331799683589393326155526101911921157506103733521426540679590708630859506298584388037257577132238656681068164554087908351886533989894778922265985378654396303286778897407675018315580999007561812835084719625897708829775970533086425228381148436968535338048807225475987999058558528662301309167186462254871603572258423888549152264206886640701335980272102295571834852418742923192625842983376660668570187822026017528359758064895899606608632309162113320577200675879202464922506389478482680727546882955518386053732874124094799900434134562407162865613165076300489188229954601834380529254914851262984811047771726973594108251364595108805728625123735744126512033301076013819215352705528746337164843577338407197811788141616836059620789313000049451237713211283003438995537704786368368654597169193917253334757988842001617086992066511729622294281735290473986160722599740084124145780950074876862601445279872562709444496471756459760734593864453644647730495089511661560271586190777191500820219616191993022905886816010413207741213796679181730547894987303499139615959009510933611399437595207995269010476650415825670438682731271462665543209831402722219856720297038407371027526016893743910539318252842414187216649089097941757280087223663264691633477277768095807401311795126342784998718661855026275541146388188239031288334684625277862927537689057647598366868215457262077029636805099808644325516259474594970427078769640571203156895248636390118557368771829226669363492659726803020050314485943783841834601410499057707209664949838154244967441523216848056008588874469269842604223254453917704577303635407877618009180271365940221971341564406411917661154131220119745917260501852812366548647475091507444950712635602165159332664741027213596392085400841512443553924062951913552044063146553508013727491806420448713043000332603700926247197504220103552598463643630346978429003553578310272989435702818403755343853669851072482988348814515813263094271720254465163620484716263998753278996503466814373079940336880856830614151207626580509931372687231742178230274163570027282850662392018847957644749211804645382359332778732421477858559863441328955423840442687939967702228127463789961549238552912976989537897778811346332893644941051737830622143085742461300754502673138463805571501611362943428938201356180589004852630038769989290580233046154425820642187726206551045870486764288150516002087771370030768316791282007659732501100235777297538541774191088435932441136967259504359059593914647992749341141284614397945682561516373545374543595752961625620613225442090476125032202579433844855142483423139619774977326776429727838297773379072094434728700751457919709993774951336509740849135335369761072792761886126873973468246065876785713868343539750145944156613962651078590048553982191291216806694067903532660412442279582938767602957413436151260800243265611623377918827013149026123522547381924748383586843447098491732351016335376350572685524502652309450300937997114555504132201711220859500528612219699294102068120802506782009871109244086211289795684796981734619820878206170839136154333308244892699254645867511001392637388314681922858893930620933449030829115791985367046296626631631967556849795703684710401869867195015156924460483925368764244125725487754949928245683565597264991408940121717384895718623798976909625657290396644256256223514006109333901495691754829979752676174466344753726837322013991767003105131565854483075394284075398326136414022756484612896491019194352185505724365367312733314792823633215398963531357223219762095621029682359678981983513598675451826152385234386538968068508413603229717775197847938893656923556162049227890738942078025134973678266139634922395414905623293050239190966996228085509139782896388056538720234509697106495053666627446431108527284904091588503676923903070970553599225849938018121040920800183106917768726350942046109629371192053993124324440193773544387536266693836278887224638753080443899958233985812677148059061473828635200441238585571242363412874321221602921854526132681894421187803874265852996290349450312170745664258945554146815463636833591056511833581190683534747302195305985461565638179541424752882017333289031269679230049147966547485854144782437866324289424537918337927759806310836831606830356775315036068120055044706525932190830211007583822356031047456328911372691211690093673937368310071838319230477255498094336330321150487115814082402563835455780664606836913558733732676458311298153399288103069479135005545133518814791455526762676762791032448732790129703949429661463363780491375226886877560106264421972997680063002808251007002503619009174413445537378409976039714220407060511902935299706591519051473025331371806723773808752209969987439044905494508307393452259801616631479221589353365965480814135208966312455385868283042229355722637619276344235167785055212875732374585100059968559260350810079478526607114632779658685836647638099306013469321319368314807429651257641825222470417310109990992956978758132192629418548187528098468868851030935802087797268488164090335406062901089722206360658201803010516954872540624556563476931836264155178844849611059464199520765756043364543788967468315559432039893460314086926928979872066596803713425869200994234370356183370834696315371796117944478819468267049866232104091947038753078440828755780612798500131986534449056349709677212034161353147042824998677520680645250562385345217312389575596411698884398570514740658195751449198042061172935843868682193822101451922373196071109894524039998903891650021809602674529867512760285042337326103177867143764927083219235121991336185205878651394672924456211084766460245148659773143498177283400806306126510258315488710756717381001728679330248734705236254504149699381165814382714209150027888384957288452215974460933304641710553704188111886657712228675237865544464302183839855400418091478483071255099785346776746212754386549099257506060402899356175095339531727379660801401287261401595955022896585702828355232039068097606633261426865054829897515844152252280409149794968749988279592853851885139686722221145214851556211498902331991247453628172231852611944209349781235743358915528469199777382965112688058062797396809211400274714282495358850341620649491431566224273773726943633178264503456105014764760177071162029448045541711851919946026066213804640658774115476860502549754478888645309105576802457064597578758092507817411353447964933866300138498176866186320402879944124891189008195012696506427270869006458658005054436031796794162508789947774052836761284189641516537754357366244807274866992773222481863237665264295191670861618666827095208128043640342478230606769247105858529162704882337219605912963614187535886920751455388213825713482947295066580564721186576977416210830251318361885210712022757691270812880698993624043240851638663859128107424529492905778369798386335851176411353674271363664481116106241595446751735693377444673642169565480023708327303269909050874605255810702423907808809520786109966533587235714937772154328550362362679793164111754357050679787132023392417927633907547704146443509594042130199221219022447379508193228619947759790350234752804948722453486302429489229426082362283007516551083043240948072083545239189078751281819968759185337333727449575728109654196868457159399621133818914115944853659943795921711187363023865914913553176447260482178079729481611431478381880492682890640082013081696084584349814286450366476787252709050199094192278803319409984050055677606373606074497308692255121912299756088691143022128935261460439566385461826909680852185355071716730131067666215565396838638227803638110190711674074691710408720135007209655831623646326526651027104798376622356756822503925983187818911802462708477730219277931934653776012279250019145690300316740582771196506861791137696664456816937877867189422227731936355609129382066780812082920361500521270331543599878740775687002100685372839210488126754832837291892227513539159091730228062280110450505068999251831209135104003296049107162431222606161359551510724163634198034545463560180173283939763268435479692559644340164270077526915628230013643336740535864177154740679633335798300154549373922406458616673074375181612248696495132548577834704618370747552517081574011955581305963223969210473179489440015298581888341720617076891757507044159196702342160215877415968224357437574980956763569499585321425464104339268218949748418311215093941229432072388609902054031547580603369962071297238574298103063258411387886378714010568236631324566772225126344257896982246192085116718425455904900887360661500677988338785463004823475569409915223832511455797118544964272878926915219385601909659511315422778095626827599248895909592422301666491269863923665001488543982555378981449374924921014385491672037496837591749086769509192737023187183029080016157688175826228491814979034605563557097441583570591519926744968565739689824201872298664477931835144952105065476259977331002247004003331390905348228724698021358778117153296587204398878042353472801171260095517656353938229451130427899577030535625457692701836781403885937424574536199001476258036232998854726593989279478191330906794378684181679078565510842910770546057938146471661812015912203708129522599499265239380255256243449186790825364766574703320141246463916226804756385328278422637156318509156674842484975793370677131733881998413553028477267085196479498622518701859864529695012810800175008232022735477149757648909641611045391067891286450622509399534738624358969589197619727819488040841797152088547762771271968261349529713783006539697968809064768707674767020829711383688407276526182430793608498576127903079975856225780871422275860295411977341095055137891661757343769353422677255805005074744861936902552471356042472272485783855522567224252500521611648893881082002331802402126044531797220307388716654319195480294672504373460651151948789529177824710409066229081756001171167761419233764838639474316268520375144526466261265743022791726353002879388887131814692027401139546435308187033216826263944496217005914112216886578458678142511025869900897654895901393257371437506024980932424394605052012037417742706946930843100853612462780902603190521105748789194050775706125133647345824180533492354559761127624542220080812967838278723959724974314256854529393114583152229220696538733815475180495540831201063789130656319568567271254600605295526940390185776539109726093510765530631073351709342759365394634792199188119281459156159203422089505406051869650326617553562017850797319268026361531308428157543959509916410901166928435053894172706409062470945480470683935373813703278912983070065024770945876249218398246751324593230716223144394752452280713525424247192898955298494473714862598640323526657050889001651209223923415054302904516527358404104749010381109095823276366212371039387439105204302819382718837825245733269043276334666748520358159018054062127780617154704224691731007010986108389499541423957639462710669808154349727019639556511410248744208528317852498916810339629734178866138910231240521557166403325458890029553982464440602569737364945730184107426946201300305024829417370832845572876777932703556027280646080492378712484203818168651559310743664985805369787379223189459562437159085094577309653913288223001330992640526260786250500977767656507023261476955762281141345696005366373282017430874531546416614765649495970861903392541032776568964249267468850944184107968042709114023624177944852638036686343962191714847937419799512103957408606641617199773580288271090929683199861492923898846388214306612068692086537521296297889672620532785401996824944994782703975272266622659313389145636631283747818204930698309657453885466676079209912626863233197179752243858411020635984592766559163940562212453617799798164001213750774151976753151724806850786083827907912877391003998617578605855178482410533869861523004376836027170058910757458551103954344703197680647226340409690842709689114030378133152683003627902739995587468423545932838288383340730556185862190039590238289600205514772240978692137057955664051554038775113775304200032415493973981721470746106613750929936742462761413716459268071887230773655868724561122641761047792986516530136083467730356555521029159339374074014165557199605808277699555890259869993012202117588570749364484312691356001299816084663136213863003669382061721087039301610645109011631043692630203009814650687821407704502173871815908639861367445903877814721325810217838355737809573552814487602138288367985196632477705572393141296735531611280376950220648320090988489785184935196073911607824339745319519481877770935102327379933605689815398618977586462969956963855338426087238047184614474451895475509820152656834139088466779960979068780300283343640356897835746270833768381435328423596701907921009777464983663633293909380807780239455434789823537373398639571098294215767221926113567549145168157556649670002200973830891526958916211485426314173370835491353440217492584123116460165189687179355503153530207625354194755777830487327615573458308013375091482041442538664837508026265027363381478131641985867779617319114604428314289063494296252557178313830276791722493545857625679994479942483766690685354872411759307023044797830373496662950493212379269058515267043481701787059403995720527609826205507757957626094612697586704994290717210270345735156432407201703983918065959566268796203397766731282784733590070639658240722781496888478820550111874372538731281286888243134504999098960997415797762662100174028933722839609138594941215255075383311662405978239301588497391544656628478545505650679491314136797085523883429475666249988596971658547783881181897783098230206281860821707730234403715279101576006094744048294399794863131622804166280373273025148539717199883292747922039342032209639959236368608418761986735353408333255155837274491525002605363445213213453585311997481740527992678529855134902983208885958080930048882195874887094229924112835127313869062755983284195406463997306811740648819643978298220066177026372250483550645206378587693558933121126062029653151991976180213409891630886919923138815980561069563543408343897308312162385082974528920912137075066860813447048977378218745623866932289097573749356650823705122834360616249592121777532535790698201452485576440658615608649247550441029972577368143406584344261438653422955788846338103542509191624058800372184412474718434019536030951539300039363859376057047036141480462631416176144740710698847454096190098605412579102013902391861582593307416975370230909844240287297401754992913086403721662219698393730075320621576248271158797980480298983930600272016003612096762083292243977413309539760328597128008035652748060051932199120364363194376505348066561260329480354466650889845341384351866565552072475312011282446598866886677643785874251610287243427759267372527597416189280612176056666322857346101693330875663246547613420253348877325455507158224330327009759147161335406752629034821095278805087751622108215079784792068859134466819355102905994310007449524695388751546015882251746336074967553583112303743385298114557815261777772963440829116517323292976847369771378811352889075001275850660009510803481380348555900296827695228242818858119469234608073609357170949774969627735805432021825468608705676893930240111436150389196818654977233683006813318093934765232443197816408290708402979421661891516759106009212967347011891219308278559060917952107352082916632606856089995542359905048168533134416924485915458657908230578611961060547021059690818881302353705745974780829452439481171474536939155874196827874062011095874340953237846393982070767565824323605758008671227570454102232785440955654542608894621869489020265619342877614183972048774432150130188428518997459135399571734101433794259871412004121739556541559450367983457613651591001429950733638307868363353868912857770233823282147344801490411363893853790183936421947146800649138564064544186715912805332409540429550604929941164574244072760817961908569606596340460101252640870644758704103775915969524867677984964112077386604105565965782848867582691158509386581233280387208404456732612563388613847569395434617374378902817424713786688998137799919942691570213559121722307811477993016350508449461116969273086299553695598380772673629462532025875078480667142686094650243457978321822407048580528425220158435126442891382799798083903985326052021758385861495954793733212510632804337928780963778593431141101866330945158896208589415422368658013339708095468630152623843957316383249756976905467103323494430272606592023144136167090558422692819033350856364235718877383906948020684126379433187813065047308599472376236070368475407140328459819636706634033726818920786905170055488743695862514569305693623526080893167867817363292840050149864895378626273743592222975971438793558098150080217309612900276431158007550857020942413127614198494727700659922250006228993409249920537518799737967682661687696987808585906258466460571360305397515571929400332999811733350755561771824998148541486100809104564256988035708919321013549676048924706367735563420540458002064634630927040361238495736502736758005060074703430764616436167101799559309185605569740842186241761111436035469028117062778705989359463732966247266304535254225560735762613572131306931447260731114641593123219842538436269560508681262454115425482416022552771504245428520935784745559472400976978862952132633054391879691681309934154579782460828271475400865678139610296689297659840759062405609509865286698758707194008638959678273064040651502276761563415272902983117524633176807042343603010692059665851822985609132959682243062894690859466745617572933732683781765641535801920330702287001967497241756739345112871184169294427591251892565364853644741826919705821450492031490418798354439558861752406010867713425622242826803779968062954408100589176298307162211273445358039332144083808324895663164636504575699515932300158677662778426570611794339726944857627082792460105623212344457258493434716523364462977959086959671431862322456213290130782674687980418079471219490943879071722161691244851030659188538058327415315934508545288469360564591888254609371014789677394306299205480440438546450602660979362431647919566122609718781588273365930386409527407140718729394531867130939963865222865380220154473721778943112274712183553727246806265028844590261516824457610385574659844738827444111985900698379005696085474146610259381879938204892734655474481886605045109902655093867852759847826435917182291867778577466807289841906107481937445160742436616415960910975728524798625921101561149672745877691190615564747655988481334286516626327068686399111625211346966348233647182734958860074859475733972386322178017084795379469312344672461214660873163163000113264606391989520541706293873069045370830728081008865652031233003901966134396658141019008312027240971912651606985045838672930358186742098702909249172840741111029099860773607879417324478313034551793914927847153088281607121497918531198053513923136176669311898479779075956310781199839370301837406036212939675578587697449694154638449021505054576279411861861789283801263613253323925439624930365281154816001702826539269069404265565665346059788910678448903966302367296909362342923190896735866687492715419396105080759387739155417974503460038589248099245788111284213031654841279516598983435584343237630351487059700323732723979276962714664065724130077103450142205339005626465246310836031025822311911319524257326508930168453256392613063050898165290219667324750609968000269186353173031156354287561687041653619510658114907354038953432038304994598625300500829646138143133655181911251539711929968200691392669194819020665709581995561631565725350182307937055229684788471655098553396528617464056959062512303473951747185536348047451983486605254032428609632523953441175636689462141885199282408415018080261782089620958191657530371496347411109354061039263535858635143814623988384467479133684590797061644220186798665799085816676746872437880910965532388069823828194406774959721080067737295403123656649139751536956746454025556868795703256932266208886283938570241140246394135517782805635550392891137266514981987405029699841279751347328413703267232313037082325094768869113721023969796435849029192892482596279983406959863927515386024720821087593549471904397584565774472966943462641277599804167593031181538619912593272099067977836078828916591493445876697152247267105881937603271192791540650631985874303093249051703486146334513089097940114455351852802740325966167452303165115892714581700163872033642350997331228830982683134170881617302739760478810318885659141492723332642022636677127152952464296172897317959125843179921985550485115435302714737605624175046482377970415436116896863081859072444673509709048188823811591455014421331148900158565681890970966932709251157310773868860174462144653679551980221110890598077946218609249447431987536687391879500623679473483498995474579820567413024957207160728838909371030020935462418850410778514528087867089406426046299004201251154618987829793823676860340353074066337272074593848332822620468490817073136420371241313225140870702687290133547278134571150789493847517246499801121220815052975702867189029215846156435413997273580504435863249465740868973061697130284950847159827759351641735187783985361840817164676613871500694223293926161032750503150094353344197594631217345386382902638338249773239291231456751908437525826100581818874030134077888397821840507304518195119502684255004722549951770573256598360575801519581217489512349289369581800106382965290122396020121558310627965371024301421998238909463366070557144629053601410364485259636410094996383939587731633831332367559013286291544120977260159903994805191904074525393242611653193604466950009496410334136884875255434706868356870401637752884268433741631203374309417239343964242051033331407927126146403086241428160970167279882725017854218036008037580304055458433611929185177943276261047493582058856079408660560452908755123732514035773222512618000392798772468485205093647695788298807229170779004589677274472134567944565187793958426483517690800595007076961379031977771580303875422627310569506120888621557812875013576154201014917346352335632243465108622305231674386208087498449893738228907050921922185217301672909688391101472020786531670524212460510181767793183976031981216461877365573723934191691391555350947667223713125941718549282402389465472890264170889914733534035225809536369527112407311710606331366195550984054743905473923708332671172202485775811375326751452234136615695046542277974573963767056198565765217262310416530766639564306421194835905346434823577845041626493703522090326703463211594896695738763189976167680642561022888919091921882172233387214521210118414276814498137954139183492026207938884824225872487543181722836030789073845861665948351080992678854571856829286306958170629439378117766686747225468955062946387102777351565195040746078557158669350615698940176882050274264089873060711327514450084152333434867721034725401144949630320354851423827236003251016082115465241415144543508440375140089746958546947517338034033092316497895229337701423693925364793853426875251506895610628611717442646149799261437751819284403842344417706511579722591758228004306770761939723861998586981212180072002463339109619328729708971515125508422446427339301066488128730681311441519302343000740018317440735490422694857784992452380203076480842097770658826738121558534276472620448517119703902033050843730725979694951676046637446856286805331224079790468540877925266736288803204727772550986532118586740259498408118220931380425065368343766128206918445642298993025712790790030351912200003876569577750360222032113731805913677745312611346854555926251889751545258346853195623350133122578114190422816771853727542422010101076068240099315948402083384322215321697735107035772263441548480823322691440901027793455699177514303418441117193319888408980730087060611974865065451344665059082226763053400883376434526051214169705189241019044934408509111323499410680861499672916767946814812624346114083132629154237547817236757366516784234079461382701799779187913171926534634513370820543270210448953210144843852200677785969183739120324233287490441314088161328560417748597930353229510304786874088196975000595910594859589303836955178578094793840162476793144552395017777652924073430326052679295171104063975831080635065380862093805177302527046607183052412532109529057875868790253764316291754143781311181831110383089802916661600558835604395798521298686184379219249251411322307093161834427815978981323731525140015735337921910498097524956093247686478657797565702051208234866607199338125412647811694545883358315878122003230079773170754079124344429793074816404170720167253497710364797716911488494232991820523719184745836825801929056038910008477610975137602916274808415913720863366390798538982209042999310330767884744161631116215126054084734664515648464965733310273427891461810806687074814904851134759795299283314392312818104157188873796373270789188459894890793424259593009919243237064431291789997099727725399084470017987444800994589049126071891516107046587607686793184565677747889237857809673934874448539621887233630566382115975493870602919071726577941733851170200613622141328477282140419114479954748263921411182649793918349091764956704900231778659155825423178020491555061413620510209438324320181310522346104629343570982573119127574861625225056144494301150744495920050145269655741272555485028359105256094837881310116699688366473410526231531525575033339137227233156473488280797394968017212967354541865120605041550046708116672501781100761504423151353999780633945331521652441870157898825030852473894290748691217170858656036308709688637363725914727189474217762433149086088749569006401167889113459191721061939054441431668872209672651989176171314457445917523367645639878210949808483740844763463271643158306856223798418064848464656537558738656035933315633741490190334357829631828497362791435160290667914599085570718607357691532267466152334846587599601937455130717048696777322851635882773304629246044686170568746263668125490885991021064070896201276964771442566696608041185367745313426977196031807837734944499489518125191052939202467735167129361216139839602974010509003897154208999849626355459125453666350476353197222291691974929686992898344012500956077625357042246001665618137093962461789387914376796083669612896221590443801370248734549238783777136582181273388588106374846978001940563908353905367582526415576663709916081400725144996140421970298265853473140582907935508377569076643796801033116933573101570173499351606963517075218544964543997543394480842928717902403469684035083684463449843300402019300113532097230904119507403095157688167604447029138342513441397942979245609601629921204961524150926729745736903199891591639333166339385864074594660942705908624073150549489598797366171045973628373740147764510007064170701113300831234776815324768995597817034057994592082804489032971508155435337956547671971392806688754395728978404876363942661518429574591301653614345621844542709092250807027407315271130027261069612809202661221581317899335867833364271652925063782313840978923531714541351136633319148957283603906398252604953953218889530790563022810942037506236369452092733408097510727020722960957225828028205108471149172579770749815611795800080493757695118298721122496140313473307938737778868626085951063159835631245917022175873370216147394314740544708897675516794692415126240214973735058059709546789582408665679629176609432833141610356800835072713183755542810854507675778376264898924227812839028324856599418449206793569449808213046484648694387280783931853471831785406974837870926325462203727575295899570109559707881629362570235968204778542831549267047200286506806500971098177060302033024592550655188036482627725418533405469678780216136794997369297012673946917115728044339787155248284374966927055775268091821233975995787471884241776778015034471109537637978104896602549686933702942631526036273833517616665567480399275373252777061010756182215636371282480251729086459590120916257584360898918135795231650693663625816510827533932867333297189089133479945231722652460717421958693526251596406333136742798619710478629498885246606917575145486881821516923118191364122371927987955573166194549176294741835018354325862238677036061158307152436175564261284414169594781996478967238049370041029246755103474632304351119407981238843865637342211007596009104151487362961389678499185616216867815555585838628107991696357432659992698647740566413003277760185630803324789442222354393133720198282658177872754574131274331717986906150224116754560182372405625749772203178317763815520083523071816075936168112452365232879345405200344688597848748136923926822748586091777541919704745522817927209345152777411432779229725598664089735659433615499925590804919932225856438467154277074715476105158555847327692612049426438093730085981956212692515863575700902854482796024869000402793343338686966252942293667945949687648707719687221106218435673262520619502182447556718488810474735970921643989675562323300226400075971715919915673239733426037933965520716986469401607478992149258216141058396924941979074224237032365028883854074207255374134462844665558401890960631325380769165458139997800727121611021572602061390843810237602716515374525557980879362608437065653898013749056395671956278963063565873483645072619429862666357846934555749070255453432256522224803704765746606587306194587567367670325244194482568634435555046880722980035520007698156172681979169802146526400401637025863746939704137071560963478537415570572560573201894493611755591362537102421228422019443382528425857472535903310432589872525255703713920290718170896608131707488258083682529670966751621510967782510481950987851492604474069265082349478940721321230091709011669149328121388788411620488479548229053459606320995769516792997150622065803941999392823069966402208625604193080086978015888336605163969278661407668389074046991892563367086278797633647853883494912407169471670073021128472148720716988530478375317696753350209883824968688431264694452002062869548494766950496902726255637836177045000215034603896218556352767932476823242870601875114569159983102017414511188818099231765618079120583465562741499465589973165756563705769182465159860652112237172088401843368208135137852817880599589785694685419412924341886255691723029015539530961780365566120468150413868151909715959364073894259240195026337899798434783404664229155630943744824520633515883176156845388113251069660473787583136414861896852070168764320989544688695014868011846550593579297043149787342002186814711772204415380514434297392009841139979010594965363003192704610244347104889607910758232074916838786301847383588442793120588785591175814714269434776513944799626209088068557399026970901590330824066174404248636471599189140122728202426029651525860862757162531701370579877128683455928513453966908997003527487242243559733215322441370173868183967556910970011702587633369666058439940959881186206506808531010740515223406259623316961208674747301411678589983025151711339208867312850847445406170204417018254816172951229818813246256554786855895771506297498415464576504301857001818458333256928458616184598189316093599375506751598880353300592898727880868504839671325804506223665135298432871007785203240887793985015486177805672413004492853379829344109737189060819661086488018992666789431071157336668204538879066808349957063342617756202507619150151431907243674609041653277964278679880638076632618869262688804309101886275535719467477901652673437977731355013378769256466691084487251588052578962934589828045754240673974536306000220161538721037143316948856291762593748066905628996596756137779568259823522508710396158287710663284830409379242320430928149516465843262228665731445135180958967158209381596936760010505357844285165355556774832900601248680859658350735978011247475842432824209994647188969745342481910737879194391533367689467394584034570350579726293488122203911138362824576228722062518306114532796731298478827657001939445393245222738998119236859711721421253614670395021249236421750878847367166391852362461653426717431807558354188561415701191109467803422178456653169001270969582464620529363018457911834020329830573204512289742643237865865333377626405954913568553266952161331090422984424813889074714399708495021458911895916316512463608699075965940346892489535655434344806968002983612187824538843939934926700887398365485618625113161385685785705315346631508022695716540543991173820520198906866137456361187042703555932613292198467636150645622629587915928518951075203675973467376491270798261041600018565587503817488047782094866005381059325164147122131846190080456545349041233803990272983385264634107572198434945665419735205192352592098076016014291017162852650145818635858688942711589249620951418233154288195224522139867708161096172771721457085942548322661710658255526218964963559436399353659036569837236181873231225924260332654738024449288747072259203839972487395053069281476627185708670536644718196848342286743121616940523617191667817051321698489346053649180931094952466742466922408922403188155177490062244559320975647356731027886021331929803513346766288037994730236777341216734776807029556822833891717061888122785009541529212807274775432532165743152327644700970483475160273422543199241273493949661497030748446256916601616916750107746325696112322263862595954805959153781145379398209922869607919038832994916196601437215502212931323863630155586230270320292804484625652688930294139756355368890526166181488926102872607525692500696870363704500575073100887431507395008229991688369712660299311521907324720563509041307405164735271092651534171028304832593957575297161604254919559635549578596285489670960991152038001374894643819744702505460519453190768943885354477165625482308541226630550105935504840789753453140334527884846787523385468045545872220047647217012476762326829828875267589300565430817398412094972142766995940818511729748045692596999437480576733722981826740037677487310806358991697850138116868411908602496333450914358829601659477975008476527395943925134326000032494100817671969464499318545251132585667164617625591480074130279831506149673106882186820771225877324115534131909179635929998387931646735861089667007320264862041764815404699214542126937882963939435190368246537182196624742356579491253471121551313086582280962242320651045082522416176542854939063042807662840917334159852633619492776771272019381353267475496781091513506759883231157944163069010339994311548381831340090850802222387863411475354540748895998406833309418209019142814048288435340397174421645686219167568984648896643758976149659527528469801552009070408489490473908672986512048034934848962322407518212655767922704216039818397233056744656927246600824383674020914906729251087607509167600667230344996953214669872970674377535947183361180003597876409014655800575477895060857737658754555562936639222332982527669457659288400172811194888410315788741550080978209078838951051405150620381802690793127351261157182421793356765991444907295510288328291726595555624520798809367625177700955734651333621457905656340731671651629496365193756404335796807345523372485730421247434721324670114342213571167209504478062226560786700104499743334875575469140948587734991045498794408228861550202213805266174064257670644750529459271577682344887289178343487963501049706135511646846367135576222257844719829587860125776037402620111555098534176707828528899249018217143371737087783961653644110751379253617987846176617498018760787462185559580779954427035914591882239506450447934543044199481769153194773640370831523153095570790445965835828034605774095890615562123353126131111604967215444135189755818206089542507504596269627245938492575559224784114362404763202150573031243165654334367837390792740541696568873319050134006534225925719834704343664787918139409399312437889063373727181940267396231615417889428785327475392964313055655731431488853631989572716372357076745494697132758876496677976217261496105187041915518451187526596280234161320582210334690061426991088295259061572055074778636120676091108710719800847646284856437960607116921114538512829973023168874179011361682392254426235571775814765729566086177934483422155986913872072394832121322966732760511404233432303508031561183007306147996892368513897631732611902978558389554336786936629672002342048181685806776777888764170687142084544081419027019643553138967262585143711378828005645747868448184961659216331216649804794792312115954884087899323417171045179472586854838111597154832304609717045772700826352474776871025006876839264567598042938392832683796231159775257823391592360277584360526458963848622833075878838947524469993106298068945241737102295231869851363861977400859029682594935771939071688300893172039694022434001219107958776211261818463455898454826784497468297584621092964533627385444319762008521762029071356265454769008941409006395645257934085113492226012266115818108641104841549741310376121818164032141333317190610588255989296142608846664905427798277454850010819160042585952808495276424458409457528739778545748150299009316476847487596710876418877424014585131246580287949003721305148506310522440686945077621606720339318910210784060671834638050256707710935855636157685251667389482133230592833371544911376114853776819776519134239225323451182118001030309552311552606554626855660166756266572020207531600773333490719717137935579062035109645965548496470474070127960993643344273781909712155398799998536420277210386820404591160238303904388495087675699935553418623883805053923562519919586097096835858884483582325824285975792556195315955449275150642602098924060461849924848557942423827509048229530124273621611462424784904929282470910281935562182756249747297880778462214108149235127183325487210459000614221193758927052193236806555669666536143095555184156443295299022359509550528309556489411318169828152093804702122536579951655580831701380612849581939031527770231287399210958223392010738930227171881983899069637864892032687248525337307263520965835948803029969576179913909218028082683857845170376735918467841892802911922463698076219949424226214452091365930991210075156058869369825286628967160988833668029525933569582149229956973296476151210983132613845629708202469077115925403875602475914434517170662667268629493952734034102806085701528760043619298026287011856587049718788338428601533301671976329754508558541778087797582763197926363689360783300844146544039295535320914481778608619682586876245500110074315687807901055404031494061727618020472728626362808308432144338699082904473955601903168683256348866279620031960389396370235919329249504426457512295745717929322809432319289762615955950721403302866846514722592342436168722075347774407608624607337452022504817566050943885618349215266232893336604944568933431410828198624923366158218670251137192853633177169718507763616229659921105586136598432576326308510953374776059057790094855240299516844059960164293876746885627537234170757074224611680359447613394707886976889438073884022366676548434594758729505452282120677352940542533777351864631389823862075666962148025698255080579675137182192992243101881343123402985443394346706923540229030452814595132166535204702639673308078028572546772829723147849023362230174359809396190902461560351673266308502091376965279346741672489739509552516706627858351433782688634862546552560630364547299974499646292123126972250348329696923714381606817012214509476532563054617984404672560486672408610533367344100450283404083984922082946618162254830105511334081386825938415892305215520009066468627963516590583186754533657773336352823339927451819382998641495756746850919786392929608922764217560845171460884809524347251321786106816114871655837028255401802766886199179150436084185083478516805380052668248587326343087859443661037568036083759955893681677532997698653298196595203127353054612032996297939404480370884538029611833832546059286060869805099442650553487331739082432302761735244700387264988211894017840937931332219574286702867766553589832491040973780466553471003398022780798518939984960613842093565047770871767815437814563015984439717855512508290342947318614263171815088453018832476919280553073786677542483563155810453163528873933528510399155579174856832224793607038799627617020938572287201304128156044372163621747575104912472887742035228444388897884862749301105307827319231964519264270999470125999911566614916265847830405894672644556099323965968809061225781778122441382278008653513278442591932899679957930289151426036463381149938691697413849366160805766116160723900769420071005225982926409462602644755268463114618657944793568620992391326359625020489281949472871472597087995713765781059889674534859433324393478191708052472464563580691023556219290494916577869354745220383863950769550498309791461352738304396260547595738128958137949931655351755175499347641116059061929929845469694414675243267317781795214315653228788776246511317243254279381455087592112956129802884430841569229909040037310194363647726635330065424510423959881651237896050932320915196799112763538512975309021525555462439784434764875201771944895544651316792361544187093105890621313155577838577512357743168749784267278739319822776771024909321781854261832544813341912771919535211523892405536099258879580935498458131375509726813380648401343237888841249881684710326521483926341363514329398569437701039170285300758999411883706086758945897202037956804806065333140166951579081186011379907095397830564052295655282440795781102412223510515012156002647685526517732204351795449119318475161673271024979276599503702497945535601723151623976277309687635968243620427229758511367219947108836012767845639730421570604198156704046185837931481524312816826180334742004943426135997402741821289221061150278071539301116139936321999157137613676288129107379157131156808871972883405959091168503385685455157258839806212681442722153699212684827648077070807532841960607670626825270826903545654941250670734626715517936730450968851668513082452880380918902871951908416592106088398014679291806674580995394525687574449530245124465958019529501958891355296551823642739441638077309259281342662310019212766838824450499350292300716122318535442122301418321884743578648731623526423861750292008330883472462952392673955729501684968586603077521876991796537427854549434971971269776269624175268279868212630122701719419291088797343639585909797731211474454916127652478885535400802827121510176788298368634605239380396346119585460486283191396846853785653869010592905791669670688053608191106394192851281815405817078617218693601541845209226881271383768481174729171065769303144430242128603851988410464336974601792989208491056346986879243444694324649981222454715962707987866904371121684740715088455990931325908529133755937319225658080890404966577061816301022743421415492523061342128075808557360880718703414820885430308671041846889792577070725415453929780355529680266424629412422408043046660884590484155966823717548300936347404738542469275174953094598691325965147920403491798788979499593726858627722902005332414733838166797593712122954982343542644006357895186735644040974009779752033045040413689540433820274026065852144368954195532948207063237944775800678474734786801728418509111568371095760749646591223253430738775173408194557723872606238036964509254838516684163347660338590173455715369246622470213206906281209480438978610168910025027992140974625360516955985041848324013813489906597561308676317228604511728744665951184267388032880282852326599584738491138759254889293099242432206803728320461992561774200486365121167798884818258869581615949468465155073437237530944904059210882652010715005876238355583006624834727730616327072964200314987343346319320830805941571796969062036072079229231738939035036318535364906995885975501663855249084077491742821116528907493285022319347346104675517036848688527869937405771798312524274547593065253207612067703733238088468477036752659948432524547693221676729388656518398450940248597129548804921115939638062505140492289361080440232033789502278665664160483993853126055629723833263583599347497714658593464143845072147548474175956829424870795534139364527195381181493575134158817899023503886523726328540070891305043367728865411037406712748670303343549424970342152834214491566453645329715824913800914279196971999257098908304188734799208608125660308779336331705224394818661796996344901868241593313910504616413042162908945828522765078858698363762570997442129134383648333677620718334496976413264563414205532083464514861887986457049515105865712817651577252193677905917218817644960372113370286273983735005510540925320301127691072783335361986074209608217319431077368623490177146741903976419802094442151197022464704120919541614975411847890299770195422659549958333940005578472170649756095494982128696730354152982224011789769361092195402565974659510522328144994014772276171490595669059221283890349986003867860541330175494820643450693503858176430780681936257912477228216135659699815398842382895336724674205472429107053441088881206634324757868650505543883804371862812645011819366044604292737549908018792314289334462729104249817243747778549944341315891687070541985908356173937080067168482195888815981238132347102056412783688016138139878765616175975727179804744015987815132951217759539951092113512776016328654287231006220827096492028542525890870917332849861498155674143359508586820293815990903821046988865238948271286357221978048115307527923554760300440233247344654623556461359259707576742037120431062992918327023313847841890825919755512452777601841258685564756366042537395369535570050771301942886365367524711781836574205989560904212909728886438904781711739639104394568429926101846719316045117381964239426827273084722109489611564574628634994618285794808424513199573830911131195259377448939067159244910104128701455228372342134917463873040607272019734957492043633199140995024117122299402009245154180612907539630861870018403447342423061091259993617260374150123234681192192865600830708763177526671723700396220738686477236456289810173309464592140058288162882666641043320357565713960661426449672068726975060765427214386104186343235884261935585028916860951608061398224430943046799761463605512189312536413696990364910797077241173394481134281778536813538860660392500060462835863210125923103520980848409142676692944136876084252617161336465684989002957358395113544077763340037458658759300202423654148222841645949454197262559870222808234613356885580467473033050786279397127329681676186061048076013185161224482996196055290121279316643746622508480958313878875559411104823356712951999047004176219397270620010122418769715385614408849613633044561092472192710208714060067614022410009406066182129235243512319615349455451844377732885138852378880685893473686145985657894490243025906484721847595152876438798284839696351111056521713648785961438837468200887513156796677127748681923495933172982944425617791965123235843099363737049478662527855639239188557074816046861461858781356567789365812940758983284234885348714600111749627559744779996627965233209566298375891958514017788387310898293773778074720358318660002264197658386130359896022669013922322486090898354446729183765592140646975749914613618466742595700544924229899931675577806835871959564294681521594008396912433367743610586869684220407425561418440229540260097189119783482226841747285025248123803619421767103398804902639743647865623839968153653931731148586370475032399082177030079163553814025113842435094177130368488681948662276052663349981206220653173614123463324891061199122571883639318751433617610395745752548291912787741508106930849016371308721607298198953794534450846540762432266366999232386123244349675879039210617426185012347874482916988762482168335120772550150807586225123747261406835065940523403380766257553753523657746761129678717376771747504907359300866792369369295284988435450297549870366080946000804203700528858564038511756741029936842312546242321062448252345121389564577366084190007486693854348892666296236133182310119475976862825476589868725339887276447565599719057726940722897580815472786243368311003606045794168839724002614108580023003075684039265609312169574048941588954667358117893801121619295005051004978659431267688116606269916070903404572887174006561582226847486399127047348072196680191652763787296170301081764096230631406375237807045101994871250783666591703194074965933393231403988244888693915323155039380047771825266008585466013784849954393779790361041352108714924676356049224068193997281494884269248398796476756908850986720781419814369648708788201765682092666044656612113782662504497213646230536283559538208051554348506073316877014874082203100087698152026811863513645524797061750370226941929003425026799978356060102722216981584895611835182259036476636510393414013131291053224454781286662071130239583051002650943010410646508874785213313576913572585592097505817574070633840048965246038805790829360652720814894918795681526555391034565591344510112297227960697293794496420810543610312978658869844086457260186288821763981196805816855177129968485870528442407208121404526007560048159934629651852297825891388173471604202550821726008859532466793837706149568876018217316650976378630377912847210170022243769867075608425177390554853309014896728363888020990746431574587529584160433829418972009875351196154630725111688823297946037179590525937600202475966501596703465089277787153006107072455915693780671331971672003197463055714003034792926892072192823253518701783389438284870797026914071333378252731158287832018408009027137629314212960632516296004946109527564730113488459537346832551547287603650016889877894500374656699834884007758693355596737402002621521620090490570435688805427083264970816642452726242581911171352940629885068783117402934023558643888117715821795849077464761267504897188045248548449604444427147634864801009550195931999551790890208184172461835965866281055776150168639520739170363666171627828156464302599504579823728426395389552576639919942404438246882361690102320048436701431306573851312674496314640699475228527589859097004824349305249784758946758480063925748501327664886409825829542521646580814329860346754191867751065850136093236915830400973024476446760280000699184806595714009225899575403388810997290863293475536161940830171255688425447964666625324917718777966466612711203279768483492651626459007668078268749888982358722168643418130804900061396837184947760691031484471617531724053657796229810073394370196268842322445258252435441727711581444991944356001827373899751562596438092821436975110905084686163672024723303969861241351762325686396324978411387442135484840672655832171229104309691155218639062159242690692034614637215457855251004670212023418647818540661288884590656535832834113193869014032747629356673439114390793741429137036905714801267516553944821171003869958265917947742038883803692385549184360433036881877814533656519111815433724862929138967082232546718777051424174217717448397226024396217097444345998366471830109363699867020692316500773417795756746274815524781100774100586709175871078270931437083439804371254619357903463433765082651075061123510132858633024183453163969500529952512612898591752889625674930291811279358829829592054205918318685409296785374387268578244307647752116648946501646716332296360090342410223864755564830414808571771300892425315649526034347768974714767735668153510201143602935694629473634623842307870245038897142004654300512845496515169841331609533069262233961166384355827772455892181178581856955325349641093564351414498459177586864966520443289643709730379629477554539983002578855175859247444844869031598643075912592645349298646703227932839299831969407925184528465546484470818319361676725302752999473826281446548943523980892706567820488862714871216332369591298923734581219524203989748103193604084045605648238084020750113453508010820126581628813540584335658977910288141455135969588146639617423782383565942686688350521122518297064387771026848012125258494840501255147033824554662959226156337951465897559272015608353703967757022815450500915220467665885175082331394968266791570089767750775368102513476434845091506242619883385069444993990544931737599978334885836220072617929029391107137710806801442676439971399669987454338318275401329256625731771045363403542854775197741017319118705278398581243962759600206794760219046441723317320668914726015503397052880869027952689382602545210236544235698998021403244734425193853451493963757512407569464768914817185562674587006525685194159489695162798460671101959185241019911937982576622289108269736026425446617095604143720377568083707903675880510267594381176440486705715509953804894882326228533970257555859172069124811534362311121314394131547143913447108528102723136256624755952888101929504663439258011477939999147539884684086541899426606428794162091744072198009701973173495836373081349982908299651813565457352647154360768920935505620872090302929397959471854951400313890701038887323559358701540180122614705888051957328843050842258673546884237633261675607554481855939240533899415543516226348306347774975162160169419715841710358805222277802367948047258163408224318714094486620333401873259672797456391199800955657163608456380025804233954290080133188080712278412366475694036605277362078603248876514084944541603812209379488518588434190846438572153567231164143077713526675685594361345875368677081271963823821808983921696900301415272533499328218259035166420028391598732393255118216566906419831770913534149366588001208696049927890907212408102219977038491702612170056881773393720136166970996541557365455875072720671602875050214418717473747291326500961496515462754560138309202972178753238140340086791919653835891730525156965680417731847053530500147507891938848396246550145951397248579093567910249152914725661323455273593427056325184922604756966303430813746097476477584798788997113600778030363406844750011694572986431317928520737169489663059086749141648302714636500717022250952823662199050780366584699831394157088543164811269816701111365156897424633861958022767168469640115388888801347364957585257680558866604463952926316823925552455279037223895987233175247884846035561558458721831395864165487298179939133054153124631047166019380399996325286624271062794068033625553378318102380631018216316094535435866777611193240609589307320277430576822815583313342719169768593402812392306238131494345700713759658075662313559263540049598258705493191123362619566246154675355635068336002928821101517414999502184060368550480298579291996829251440437505536142726035675082976116440580258762957076201668211983761806403177999582893802921152307547174278343677488356870907463367397298218607866951378409350736509618071378883779128835937487745274009280135339639993808690433281743336587301758901167247236931697927780520052922058283916209753341783813984137435719162216244895470883508029628535359399236515357131788848355311483158658136598039833649874378164121483506246913923956649780741535444381432497445066892576867360725328889425466202412398718620647597365909573640246291885985884390755895385881815243028021816756133584018963532563759780454436481384583913444849327382634694768437951481518315321068897531748621734844040851653744470074179785820318139189889912100821591196993607776417653645204036391417788385300735834393200204834585367897488964547839177505208278016311051715603663973783180571933041297020288385085445794616851543784109269883627529942157835790234365677794072331099844904203999458343751489200845287922610881631789382296129201478367215378245257254914818259061146136109106406659809842884553885425660926063817103681705237411987646037302105978675147154434994348470173500340092041935153134514959211274223553303387251235124103210352743770156799755702647432023419983623961553701981913804938627818340754280419807496295734917106723781119242158554649308916619925214355404659308902377521821072672935859412752381486763486329073684902416607385584805805201718176830231338167938483006331130643121667266886975563048024356156691007983784961218703550205830661020100144345222236696221404845620495818464169614263101310072701304216820912121088734106071330178022291427255329896396140070595195866012411492351762354954103457826251685161762823889983594131192201658299543273689476133288801325197994340351062002926378952429661802986679659026451958068915464403252866494930894784981114053943097494197278933255566477782393783930824588488987076586039447771023274533510504867926632790562465469933694371581495747721396481291855228471100711312718346974812688019009879078050453613868065294910745191799358316820734305300262315661546269587830711993340175799668570222523098307862116408020492133945788240843147431017915207119013667931593186565504558431197255896570566221144592183034201416961582268594829620664325914645221678609155563235954617547472671630583713993087882170847561048777854789881204523493832033947653247665529815848210647012315510888566302493706006830025884399145590708427766156465372552751235032784103460002700340962770822497661955780134827269420965166652546796863222873155174187987568840227400437908806060133644864621810846074495065219106124259431652435878611167006044700126864711723967808591437579274529235269080725232936184090230601126060287411578795663706499392983342545809950410138946622159263024866673295669499299393629385488115490691464187254914959297160744202946787047115202963872449803339304367040357049771540914767773983174658619138683403196429412421058531468275263293653731309101031227475888781021236520239229123559005834427890740989310053473295913703663527512400231647128708282613029599068906756688117821902947420332628314026248424969583875150341946844372302878670244294468080435771202000611630535263437586232315669025669700296066632199637891988456807397874299523477890669310422870516857367694921975788126769928312539236283387997481275318129168252768444058655787937057593671236563754909281373818400819907461737106105925332644657695175291508691731280880999468784118022417177946885034606902240716908291264838204822145660964822468697949809829333927555014057207652273317398338372341940345493968737328041500499954072095428671189956747930017829185577514342789889152338272270975799697716948134881754565170386735065977980110985229476286252890603920519493571451347487266969649200175906160901948650606735193112020782093258037833433128314722071559412311271622606274031275187830732968721710726348172227499790852615979282181426303092909472600754665368323394175277120853671094604410883317708984564500601262674630161537169828058483449008474879959944406822761116150000540144478756765573461153224469207200366412119669741068326173280060571897199737162143877572267206142596365898943148917172551000094422072595842451503303030613468244015726011059969014206878833687550236223858152399899680755342855560716484510465879534027561692289991343789056513905599936842643609267827643730429780659414239526249446608052167745941534282584052673656341426315018686356847428272477979159773227413482751706919318654928821520374458990706298401723023175021438647738155281260751978623704252514954781891736417755622892726961859131333292876119361194945305288662101678531663597517493867173569456311432899506446392891161926484121189546978205591333077615629851649478819246438980866746618599796972087799130950106736044560965353146576848391409666918759175340889715037341821401795675587475362329868806833861510350615866529545856722677539784105123390723907890541455248036741603279550400547144347054368411643711675529450561053396619245831321672143270112915305404880112767714464076026102127180799224513511787715161375845065673025817264471272836458778699311789890310287547710179762834679013593332876648002482602626684461361523703564039614993846685589427097935426780422525987234383445201248235495741110796016072052082475810387851627150489846259357109606929816343554333083202781126011127588832178609557159669566078831437422539997250539428595112373290571125605074054468266508043327332694061094878085935923787061051809406357311984472094922843083093180925799175028024130175111912139893995008050241278465984661771240173732367642672869367167353324692141525850236382810997642718012225523002899230705815447458121219439856164998471293396198224033066497523898738492910356903273307115350127103050521091530848484971809396133768500022269161175583706311723363670830757326264159491704821389624716363900779112861412735957346894205707461388856748938209972375699068365627738505706786556621654150952644804365386809279278075625112927542208800965364287597249485006054857947846510627626755805294227250785108243540028719448087605868144666840145569954935953030371254330000189030860911964417086340181236385570970889420088529269984493899480365130186919056782982319348648877285505604279853774201907725591484415021907917453298659156028450741203374990159499043247390691694238939384321465819721179180884236633827158902176677899044739193777378817761598837357721391200765409155982056795601722759722871362587577405037643892322244439320575362545868413143751157689287207064214071297903491211672613727719421023422498355818372056381077325942350674823351150353583495623256783024821371407305121630267451934035955049255233533750476664474015475037621456908652538884570171493536485264031025832895566479388593938600954946286534126784727385307997824776454454689413926139474616962034817854790424776920373132952745903682034661872807029338958709305422982622652596645496199850115022360186926994509093886604239706915938331114868079968417856991023924916489297078200496738654355532389544122659456382705798117527852546904068648027764469452676470278431300963288803190028424187443696392243818837405214816679188259929357305540960277369050479886082393656906232832422374364238545270013359311817627893662399693267633962467391712393892561920717021481798864003343315095797163040318638156208242568949634345323996005629332824981095481105421267319879453718622867463097428669033415271278140606295316180770632214339316096264010551319205191823850829375629649683499503449175273818617730105113403758154251601546136070232152939588076283459115123133220140194095852791757877687705819604576398075873866524832599217967669195762705753044157970282066470648646629731013534100920729490158232388611856217716264232964497921655528521278025614134321240427762025932706862311466214818958340847017784813642499220834928192760792462257452436015125427008493185514980446836402065072931476573444824846650200774873779455180853723298915869986102467489564827266160221991304753138984314174577196028646772055385192676516264505393287738498990973097874277040288659396267742544301311245387955444201772995914364148709139745467229958241330919794801041832991699019232934797001279518473401293989135448044584441150789850906577228752411760441364914798533261870262398152879901265563762262130173271287233425139350129633338267410165423469523458550279699555498772073487126377562251653879019864734853262220665996678654607938210831016548228417897080829748726279327365685903061098266651314746251812667721987927461266571282601761195401197853768418693713400895767380917909121570349306931822864420128333948508700463424930172562935702182571699602607316526918764090715543193619807642726735597722544461012932821994624130109432198973856908781174895646697540871077958540973839902406838282792342314583813357332464413109114421949288091844342707954305500245241506856420944127975679430182053914846298675356637968670912180478618373718807182649075834534369066228288101664292248767242024678897137679169792816118102017010306055620202193015736204341115810905863685217506808265026398699584454356077218528709990435203427337068362925980233328348608661451798491395603174338403884967196572371279731582566467928666551490357285920206145813947821563709891412803874346594517967892886241451310549877146696824337030334000498797524695659068361042070673692547327269273365824281158940430188635442966667297923766892718324584684307506679241154973686439406949175237034350991473654914306264160049773305231386394446674283718149198167882749811767630267123418465176273615844526231690750818604541038605951778835563150763563820380440702090042146721515063064753027479472788508000568765138968858230047355391193527686089756544689445403003488547612562041464376768948035675590836045241335156202357401982206219145134080604980259348557422631305490918698306109940786520680408194814141554518884661739474633902262942065163873271495179173276789080801728942617363125683796836901234994192471623740617508875035519701938802716876736063595938311378709937876612175102396638066733858804799811437473409964450711732963226375410161997838639538647460187393617919565897820920489191120608813967419459328927516896738524993925817396561518517145416072083416689780116689695948861524983690418489704510666753988582307829671516751189391618548319086006737290622443229244530056628895350000593527725010592062885478774970872291336082352892444663072882817141940756025761920873972069262539305661968497702352061308820311161052102261578247764212227120306557055182075765320735698714140358487277294875159469438840140571720769766547366349567035050341087874762474885145130570241064355349417377266347197642354130245241270635521287162661769725640500160275048886694286195723479913019922539254450255394979893018504994258616025888225207872460463583693600681204373272510086612991753579500546935112405408307916939059295888447531650535139623163143969973034655751636857235182582816070580092431510031260918909341771805941314149228420775830748135167614844655621849634600375854127644200904014487773310031547372765646404946972491347886527169055214646538128531470622348115870980628266021218720227768133267499165506625258258477516110863895839690218832250549069084188677600815736181468260775382151703404077913160218568455962383041330002857464803821370480606946600630711101782315283076720298478258615576841764651482484460979367616500787068144081631325496562956877119833352725171377427240224411786293981939042225858716656638271895652567511417453364113016917531041856651155975739390484414260942074909586792061457892952040252657286544575486372985519575249454188484272700616520392041190533677105887891217993189451232744958174459110976854780391605330200963583049017400685334806841642444391454308155399210871016855755149836005872943697621309601913913640935163450675872167895345417039070277891809225444130639112962446706132422448151761112547145908389105196699295633127202692297255789361793817282332615951155325779145988939100450558752544378818139352552642737843180229121166743038689163372681394837047813880687889146752138545033645691633105560512374003464124246440293260977076366549424183988885801193062440117656000400724993924477241837164671214974595707777022452962265048518962714818451086075635629724227992409546502542163808144063900514667109101951596071579027890233721832929301919674970556115630911447066580599193014607102753375234496343030399905953001798769356031476196489156042926950858201422620554154354246870936059738232294998107044310054113743441749802346167268455230110282528866628070670700869856521360594437930827557779884378814875595456523161067613989171361957040127802579020632118214280831995263060065599323867468948424887183169953399305688123692468368301849178413099233823566918641607321179492475609958370117431556236175783168809221439297690438783924984053230096551252501156732791658793513692579866659824208953103517564288921171797739845410170983968206989704287049355306387423161855645510505192938436709393332390008281182810473682974900223921973749859671194287823204287432506207569379983106411407251440250613627608441792618697880396137878100551307982812266871892690281063165155160944812907970258556877876853761768474410373104929211620527132563967656767847073057361084014494808455573913813659817895939547544140234788938283562640835785799421416675621790026634892452560859172233751537277024638493501935903866257919904542688505721846546337228315720718731920031704799742878215546149860349406627343750118985554472481828776713846743772127488245228135785317653631265792526128532588001832444854307397548261799166128807439598052914458764161487758834372716304074822807302095844350742445509071734697473143107207836924672140325057803566677343587313458373178166184967450876003691706457337914380120939910427825112138363951861259021227848517750034792026683999406280596842415011593599987841278653609781306374484239503849040965994915074211752023575074120067957973444189577672831697681582880719400009083996749736850963583328173188499665323367960062409543574080804881296030156451599350315681426424151580605696850247308050367700183550862598472818933965390549697418723194307814688702859582298167316726636780772054748907616927386706298954735851690450081938064763422129630272913461026171809959729302299283645959807254399712162095827588821617413433427610086029525090022171136028419379361682826340608650320701149120476716350711554311528180568141466300663386809687032467955903001707715787890575910697016639740077777122899818344641636583608062593323751956173526585387236037178645426409630211275766929882463673935735857657881598079834654398857072054434046336774925370785883123471944524747106270115637756745555004172776549409741509875759718514895847048130827248962368294818813701376407960226438501561502690848009745992700133690546503858709806422411774527752159013742488265979608133911006306665779984518862164715334502837255485793666754877835939095514411553208654334152392491359553803287610748377937502582393079086894799881067099230777320300692027851317944130880483756168491973161893459323499554261096923242149354604973322317416505313642675029270322149037515974798476750788190642387730330279495240374271333220670597844895348702607699360435940099280930282863930552786876674651688810762404407298497510277129693137963809546687368494174016919404945080703531816661168650879027541239405390824264127792098098440287415151413045904401063754718761178627740077336902318433508566044319830964794443240170630042652591923619108446965146911282326970979942805619388351247709734365382585853122756965709723110412812976518355805762094325271372915724306333772461029135786622291191657218224714532086243628278421037578317729000308850351765850128558161120421782873959829083605142059812745093499751281370127645508095896481784434628532217601016338839510993947166329897420825649016354126779566487271268451268953111953321445996308123080817585699661230700585063092426353713151014572470129410898119148850608297357551524104246353213935105251493804124972045918898088648215114147790143965883264961377265892842114106664226041642872804053730509633735218309888157635065245124534335417637286018276953269233695502337199400211492634071301450883066196989720346469445098205372791977299182714022075129155250151920332655781313004293690869705544879562557577881298394312871437835469309905150118668251831317665524413371814082214332986214824779821416642909466154331016381969793349440604425479878145892180653226604001723318040126161941333262524900255795440586694475553404464801912151433943525952506616920190585866048292135522822248455621980550049314654010966378417875394410574836788169990596317288771873042078111604128965927160531762001331291733338540136352823955141408463399360380168498355113012153029426715751652473462453730715378124091449079894547260311835160796018622574321306910023242127952101110420801753506691952222239139608279636445741896031767553744684229599142721236450719692308655853845412033680203833236457100251168576041287454929481240456104230498457462910820413275669940705633004366639762604298949608190329562704568280582262306769836750346702780021230489854044601183455732464857794946603611252618967318277046405107496706957869981677018522385847849215159734870904854228085965580416706991669720710998527754152131475927225529124663184827874721757449763840362500971049269648988755019285648505571652992207359534869967067773512480281542634375192848443574685623380245900975092949404235332951812491131691609447082330649595286645503508453851208480915513625685782121932947177585906460535965015626972723265007066043685895235561991593159811616601538250977206770877059792633891289304272426883496042902140953741353794628576671957735437217395896906315892004217145870671138051035019210284008573517723552939025526694082924652266947345153213252980657012402286196080677691046989905138491848993731982396558154573466310379599405392343619147183629746869510466523738142798923369892173084731354688965631774507333310285924718399394633426630214735375339955056799240865010172605065450345896576303834835851456205533270042214645252477335744760252403451312259095119957997191592844491771111766976951718358408942988049271970934876832274781398513472502331851909274479628250233388861607918524714046888684647638861837246447008632254122136543360604453276286959809629344310439986834922047486495177038286268187027022152540749038148200977368302276456902437750163011684914876266123316947561969024230598565194343378517375661801574844424940909068753280966281807352815718496220039042069707354815234342500741738394307070276766505400183638699005683053237887430302273017490959270868699607300668913384177085239876228633010145385739023590011687313067968313166941792338984459011350602771715464733573322586584390962109303612036441424690244426427009365999419697521280471006616650297035704139541171656268183540408560718084601763913873697879431629234760526578002428229553573829546209703912203879335486597633659676949377668009093884746461513019829989815265051492927409857963637181353761037465077668202571656450109757465239740221747500887313954186799359263679618885502876359575737559933715889937010404541741765343352988938991015839462699297546314825995955412083735485479637155188393973634126794591524557496768550707225491166273181023362017840516178096594687028962082742549645085194182607578072813677880894487808663705341627884976953364813744116618140008809519320517150736913017883479516849069256886239494078142965695489793035411990499239671475847241583815285416492701977095722333480158570949460470093177551973024816937559619429025469025920813473697009656965426292142875499010160163334456718635585635037373768219292879329182895447310037443324235342091357945662919770367177780490305295534120902523393402783674918399707007378714140829346083432216438398741741355746875774306797456102838944297966361067844187234374913797553479796254764273705057709187032364386600567825353696678332603491767898003214574366050703502695752081937427485076146111184659620246784078737880579794911778916430112365160025723813734080875908717367716346554600357747233028758393330380517252997402653346587102176571069434202713709501904429702227264926062750860302553510332881508543307264089891920418459476697520309745889261820189781333437707020468427725855129387539312941934862721016920818879818659070908675889040333158340152206570963652496581177286257533860547945855857556350866464363682752313757725901961227603275328807373317552180141042557811037723050039821354685436455598994611839779022322581638058640474481010443710321035936395942922895752558704057045085730752305640852977416685983082314142055009329113578860125453594264410144161452013863054502276665850032065121489321608505424584889452369422368649153310964582738608093122583616507300957924095405974147408223204604635232905461329494462495093530621377506319242243665286168325975643146509327944482927064498606701880771458398146975184506333925701575902358093074339354289605879566602509029985901811733755774669399826887914015589085012262125164911507574853812695398047686474920926763035651027623020900168449259541505806451590634324214673257201354731325312050942770906166709925222914722971546053495691271461917678473135295916745427120852893762740895635840490107813277925471494362652954456864900018799785510486810802789418873234134949787584643158178526683621618911533616071843064196392302910688480348010046693594581983449293011648529767355089184456739709690697479920298246600915339910784176888764404845044861612183605816307632325917625208023825257650129485298216722794568266789824865023427547577644735291399956416509749666561009069519126508495097100376661925219743335509678512675614649023327663653761953469176536318010647974653227543298403187936485833016561419053387641417415247605681458042579143726320552751602877434100733309543895258248840640784294313395990944717827216430964492480963015643170426225667152992567807840290220737375233048744117056933572386309630801252759040701472199967117721841228602430290522933233776656234796224125657346495496282801876456043399683692004494246367966128924654596997007487070760186282292374954568412352470339679577199291992770714865640382472015727614210435315200316546624294816951398880272573094852777273481931081565148368571375230752900913638943117397547157024409366237110607958157979982101989269080760607289181745522759895451107073834013249442954698568198954315768201615742722928281458778778713300286810281688251504695949927576534757013650156506226804051464053161226071679133414843100260524114873559610312090815421020377354241651610336816086778139480658960212141433528941112461133996409598883119046844126676459235367427269650514454093061575144749134921483005889442146473255067284217750319593652528824788197354066860916155321232980741560189612718384697218555754545527562729077021955343605649002822616982456929748867765207950199377736695909928634241034071458065701410617781239255048564361829885807254318216750660544640508668366561987747217805466058678832259804860860176568990222353212726610889229362973023890978975558342999769852419949799388282311725595638479076370970595852309300567891156210774981544405074543616016392839384513837131298476062684192630819896223188102308480181149356536445786078174916680987486709336724723582390968082276104012103135977038427225866665063222990299612076775663679276765743006705030071096217565644569970436632018242577762741060009299808348662020861176826052123781542582763955536692732389957304163978719959522993375546228850986029118385428215969815869589790720275691867271862779994680798038285105635909444529529445490353514469572018712545841873238619157937744826002952502347267024478044788071959522938927182673051548679677731623724638343548256185890317480018177781580034314424481079838594433103348471589605985152931138039626844492600207860192131903662357961278495908876702224097011015800144008034854079025381146903829254717243795222376181532657848948985330281387125114569774333371928904381348508757783755324039142380591219933012855234271018653300592964682713416606070921679402852965314498054874024848456715052472251076052568391172215721158445192189186782840584846746199433784781086422152411658759549497503449919451398098511500486683293503332010919920204071497969663576858667154182942389300489834537139067934468454637939285852143463575399511280996860900259144305798559321826707296671074021500211731631328041220170971477150245203830659015721449174205570713416193770183034189033825458117075370004362675047628539308900735454036436638101837176399827121660992930074265568787647161375690851613441842685822975224752918569277534562199827843043279809986499668674469545803349627233991739592075001594659032381432708593610417738565966778130994683196897286808421614714298751818645086101065799350544520003340287970298285251698518572305046731977800077526861862535636429761079804378022834138034597152016697267706961716052065843948640886235439378254797510159030786959043200134999845891552126979158519145731309218106086845775284408412083882900181503798145840627560291253133894382457189179874995141638510354294764226086814516772651229267737749807467939526301603508884153256412076305238073861850376492048592729055120219859380075494618734071063385033622021193881579441555501234720644613845599086536376443210623413431882311495027498820801512887737670283190998975015056285551551833573261609326343900133975100349675257119703197397819785845531218542604585207089944229760585153621115985395207826358319364253966234535651654102433948590221047584698321116372203070059839169515954957099412079973171329189096338161415911999858717289872293872382842134909721269746209782908590966478917317899457273788415414887922002625425929556645210535190318727125770407294997517652778196989572466365342685172414810945458897723985931044799077115254528399987993885173724843583844514790871598459324698140940788100972964120017109517531455473891599046753156063921375227654960829635851847016005746772027195653400576223146707769796650904681559091852577975060542398864956233928874871566092049451566344206625175415199883517494284043226482324914129055171618774256695789560659125889441744161427403636750253137598464626264682493578084887646323816605951317430409017539157324338363894829123963415638379670162753380392752024740104840142843491805531036885102321799427529178067177525204733442102291906612214110474405736888917834327940027505028533790634937241808175272574612229406438706994856650567536128339276239416342492524419237125812414079587650335925383431816617499255310088880909965900222911326307308868881180217000939418910079319259284072539585806819148783041165539072162030225096465950196211325649724851012191634507728809613907536294484869252293085500410943866898381309825990642066370261909342265990142174333952803392935352382054191740024491297629035185419269389176044082001587832992636700999704815202498428448827365904003620134980639112154274183979752001734083305024664217702847630729981346925089392372399240520331296094271213025729811569164891889156626131268483735116889602585419808960958638963090673880569065766530809076765918143410418919591321391125505180569458094992450627268370644797694388445185843237612299950274664800808569990360192318989757233258063696904960170700572197940486976088910959073317140253499875453595618383087997871828489942894552092370926778690774531202015624895423826678586646574145133615674575117434591945767899033660357873203157301577275583274180952025191623477070676672099547474886086983022469669124565306498399165828292026696447185293240577821775607992255013696627947843904088870362705566870856408558993455612879332384752980217766016085872509995007702235168156466929961110945961832751500526163639887112897792791115600942964900150158651396017556152189356329197528125317929937747795497871739289243718608609647478588749196516044992110277247363610728861302334939040219298226287784306761022538499718176923295184308678859233869633907791977387385652117327827116914342346147926530501498836961291869884690025153843469948144888687683839759592089113161195204729909747136947778393719801643768232395549297849598877904686687464987553551587536534855039660148391456032179508476934234260690868673303623475226708249209975965378987474539139694766360817057045075386581379357206400545880843509879674345175272550941306551268628045166814930367069448551087476877929919451430896576194712478342205757258466605325640657433830183031188249456523098191928733998136629102876861260506120344337110074143178155871347609516247083214948887507090560705251140378107262950746827646499686942971307663005578271690835412941994190489524284214543655920918600187718006427945689014191511144926853988572273387128902127731317651540906503209516997999679951920331835873104526400278742786589555999310504970746603633718061910123679285262268926827715904628797199988196242749108018942497660643969469256630449236601847633948062274205809167424492645291573691266017956282428820572792187154513120210885984860229441414562105070230866389627545727040777942100440882366243068468581573721957240441840256818456602707312775031436467087137965837121637028541699580477853286707329243822693157009958240818474041537432618634913284312265734088766729444582247847102126444875756797534792202263860828357544555131322199840945570774393672733849346024319726846840865036172726367837480599371785392481909189743786573114713973683431412692872828732964599018632179735289882211568087215046090067514978215472361496996007202264116733918681945620908638786511708140201236828782539251699709201222818771076569847653980803028642941612825912355059145508211829635090348341655621107965924593764247971553075209745804053459533795131206231966938953022609294282472051210541009181736485104199361822866081875185424759525416646685225737514800552927800970766727891151193898402573270738187776695339090152835589292903884083982500574517009883377771337358258311892069529350010464077322190292308006085297896745200478447881970495960997359525666353058834184589667452809395696153406111380022650264718890522449531233353386195777920174207822310504256060747702293146670026052343200004087673305560934587615058488425405062386071399764318404376349045805897535423795912045500885710583810868714781758905245925215311849581887808674247152672071202973995465162242705218549712932353803770568120538861910650482582392148442831976524855303809879524999989674517299507077343909619146264736041359022374994482439324298771986587403483979899506704731133561673127912404200921803161029348032475601630325961095384805779560064726417386366203667147832465529014504976162254362324077785946895073062513573536528522961088935431361272678936005998032541707537144997905330349048092795930805471436570091345191248885493518246134639972492151692386204073778387038706028422391110426524324493698187608747675421138127275974598517519642930623882304204443468629559542798299892543431163721815387576035041723150779829890030186895086004377512716502142204833591391233482835282152533349008055757596668722682429510089014729090120790253054875827199515431116802131327145215536363868992218295103290573160391796842978000529365952964447062893302281503338309958893896110472459347902740485923275372731035492985335600307074850311040739041029106963551148933942543713159388716543222650233999103862000491091969884195915147746427565229240940747400376453232899314965373445678097316052723341326109881111539677400360876428438929343718993184637614620951057508748267458169890665815413421339186331113382518548356024823048054762062507873358942680976136595937071613750766397589442096270930903007680618781662219505970720941778792137010001494283387272165501530669651941677727044234891014449627254022297180074766375096488060292102834363888335944056537531925624716523854729550350281027120051306179419828746624539397595369067920243027335987887686604547509244376985709893548653880780368582713161563704055976320364811742933932089915397435171344412997894987831000254962811643021471553856586650429690018996507579838779046358119293075083659680385161649347184199089242039229960818431249756122410289464641544370718078762895871830669531216184168034687091777414398157925869332664815149048071801739244448710342760350716544179729170255291334980025343764721766326964188165410660318656242834136505849932568972826531966750956990999682027193915758123070753571950973516306610542419134644055444696630449274375263946983553142143234976993679992439298077860315198622581334569753066134533468570995466778723925299088372021444484908165821136109890955497115576356938061275041010933601566552359431979728418867259918151412081043708184131645847294853845784814566145242066215553279002859393653210012083262787430053071725514656314138283886894937555929342001295359630855289174670891073297409975492813637144825229076721980485388654552254364272459031050659616029461101831933218441965372959911735174369754327434842051618358169857521903140509699427692277006731874645921276889250657411794103664578374082151890468248636284497288382902049183679279787097038173894898076359650171294290056720555654439614230415564921284567959594399294908558849728878014627571022090160599667836651057598706944591410247746276254878646612866765511876550476862671518208807695216891625060044936705983558264947008816217431117540698311994125193871726678143927422002084807325934944877642711961008518717413369066108333487643925453578363100180693422383369803311422539381158883657434428403101192547674453448355375979159151974389620764706656225109299176531930017046108685287063697803756200984652529617280023403979530611717872687081841964126461336046913285888473979605753495113915186011768753415418518802070113756001972472807488661499360268796540013874738686734377308503329157113820486807715834078381943493553944896851086976178284568248184700486838789926065023821401643039038901089533613862680183132835442217364304169514932155473571006828400478350346342154817847548196340496693139325181585033097282130235510867689146132401571109110928857064241683371269803335940162776521448259762370400191391305614649751053584490598181862397381599716232143861663759967529955775079201045678950971914339933416492982110171291439745807254697690407184963433968467150403872281157528849712060677903093145658707401688773970959039171060685251975147581794128166999294873912295853370302933884602744954726068913215858189043862640479215869782589212496274842668915018230014650998590475664097961334897733522333147149275693010812888725586029610781847821370106788947388947966289688631899672696793049879023412096036185787930505093872510813062673517885910098324352481325016322107218576613944421365416291334138355105190587388150075212239827627319267852174269907997528879064465646444326416025919473232477730448352669045362108298537645423242270280377187177242559217553200059953878950244950532666744019363022161172513320037024220795203841314855781326863659366075038295290395465404716167368324776020331581718822230943620547695974626184844273538885147627783956151221964666926961535418124295847639171220262141200934568830696967606234308967097516218289398835978238748943736742401736474086540284196589404147146867121087231042248306918421432915662796286505974292224792770917612352326062500744748077398684303245303532240422876864675404392334141998380168530848808433563574277363523898194063902051741587014606644591370772313301716162761473415070929364986025684114910578394355398537107018408229541710745400421638887156247492495946787417235057704213649976126097035121871703400973117660442476597555517755818767160517473718577607326944107947715907280155233734346371249565736599418927484899228072164154070321297310020450891088117273825375357518158000183605447353585923016197529651423908599149609338256167865470948189227514676071909521591905223264288236138016618016350331721453889832100531979861067124846194618632226598896734911356542254689902331415000565608655386800510676385602010854828776297535771588717592554108864705970915575275897276252760590271871131414424213447620535278257345352002359287108637970983863331556574893947890413875893888459175868278628915532800511074017486051995738248734481308199164723465082249896230939873684900573507852024626861102417154041826991122892422223349603337284742702690434870098880800629366295636768929923908140262194838384207826231595978011877066946202837216694135624628989847577220764029984312254611073369560653230230361647253925485289983100463731722845161767458361027217274315327447547257359427439964855219953087639235619215962775969089212853122242989600565675414538564079992660325453283473918898545650959075737545984936679848443058647680824000988541109765019189580807744244431919830641984228856654743963019197668479123757480710743631517579160133437623389696860159055742622866646775667598973213510423943098616113563753864640134707274275616628848449703676550412740630940400373237232755064631693274397374834085372193284962254076682862063609078697231760331824046650384327949417779772721209749981937815869083595376963442748409793931164277129096929196276852910266321473384032088787906078860917941257360555296462198034013971987390796634981564328664336922857510293552697905646485042583851725133244789098275663262161572384125203488029183154473891731113844356922621429157297893204218789355021801988433246709010625824234764752376519040802197273559067136455905036115886734433857260848955366939459921891054238492284961158825228799736683556809281926709494441677436806058574192330733178730250049286657336998793986833573853660934572799428542513536830698666880894441513544459782024359551790161796227076077947877047904097085833862308868346515448489746226066945370288804607181014199977405834972006034055534047387909121041338608690437664693578844388545265806630006405983493213201157773013156519076395627880306261608403951988060411741109782925964302890798901587898425723040561049835384183069610762899465708245034332957008573141987154591861201526234398609544468528616125818180689579866588153062787010775698413008645914128740680961124536458410525693087489427492266838050793518941748378442584557101689246534634941445042047637794570211387061854566239167569338833496526917730270359007700334937561987166971542405039190448868886140211685514387660808085632911391127820566235290239708181930345367746135834065921796290561102336079423370077842641964180095848809493094843337134363150687494271191150349709040886372346252876304675359500182200748577907454713025790515682253988261581584158015627423818451712107392784960768504515390105602498989724171678435771963236877227939228717534948312082998476946429981732156022329872057197074748606135116991350360617920294248701207214707525252303885787275568255644208351843229769386334089784622936799921103052762076611570092883873894157330072559653204924631539057514329400991883894951728958611502886624626653423505207839734280906348050361305555912602944499469492983276083921256674238115236457626365961618994694307097450980547109448836040190906479902267723448297232959028760253598596208937731440337600699005042160648612334904498321200535771037729999001289847087994483938507339437339476209225996563863042590787363818519704923889751342570158945500446701179701974799892886602652330242324883486370498077909768893951232248194193375922661177994424138538371256946859934193114250962361685968120819436627434143963504416660016442359852560348446547548734513630361543100921235647154302473846163415717458959226303712740334192040609095213082106907045629607450781605125939997958314236328241921474565340140406981927965374552966353915489262661818325020704069490611149132151482894976874284215083971969017618238020054517490935044160706972812228688538266555838254368051050731162921294525337607582294471056751475103401716709269851579797218485555417217170765377480493646528732355539054893614848789073976313767016946101614674791854727847690493188035755710310741516300727876090106149919966244035876278955166755152364986768913835581040365188369054855507363344748084782330625670043147285732986489488517748700541353609207478783048253234900509717314552389980132322141770653526378408762703973660735575318479488136017805496296633664306088760853659948957760749583515046939341556148830297993153180496227325599203669825483591879917316718454465598612129355803186604740637397600005044081302638830528772711803736679735600151446001333754621980241399565844358824470803832823671131311731867951215042535560100458030591474317607273972150064032111156088366289346299717366468383532308124391124270783907009653828659746925767172775411192758545603719840857738830141794659970184430074948139603626308324831536188064630605953240127907343911860645251143604704116704357938843213402451965751982170498685340509128039831667665615215350416996046944299476670208240391573823832584125267860194813223383698679782490112760926904118253672519136283387846225861886389914030510944533139614527636594433049015923712334422137469032914135235463377316121629965524875425024962216446514791957444950859762626159466142103873416389988909017507062892064274710084708025123669164695601923099089274779765261376922609655899966336263926840043931896991245195395374665459979243866348783494506935797086275723643332658544288314065088927270269975772334098345661813115935773213790078312616440875103288165378362748389578657083781328177764384277797269893672521494350759834837988943115943378311770507271225436615067917443654631254726762386512309972960829612852347038916987372230485042171336183133569025072562467081739473338828751502126916760448682749164960875119399118826265956087761249628831602279054322167937972444126941077863533121314214580938432137213877653838646626610734128384735802588185636645345228020099640241309602669630305325812781860487045633960735892233361350997946116412059730946157834012275153710764317295169068680279099936405640215568951113486173883799939005249365787529756654997427824602048382577298421882588294505632029018542850193858164728394653860064276040681266074450017376575204500944363418133084066003401922699632251130059106614825899485190508991155254439982315800025562904579542188909273288687123426512885374409727597552619256951809949837243375601608050556948923859925822668258563382284743953685240165368317517704233704665144945755258507928085368532503754627915587200941289282300575013102114726023033898020281161536754956993738999605930476696486762686540517131504814332816355979404516350769942506594419324938185307390030930660482161772584911645383140696114597668361095656085083073256003498987220428269783138920131491663194160381255955174319553928321284822269496739338576965853670954960646789102645800403438641079755263461731319059235141424773173323821010382300802163757933586947777689283489007874546091023815117893727557251884606079716188261693858353127712809515854110230445198173747232526163350949497533302185493077740719368904583695861645143421263404632908998031268563567864914813728323565283386277299909547463595760823809046098576594439789921442487820085696024896727328522835913403974028817142883977416194763626769752989494232034203170401726498881518887090075828632413119353184145260401727740361224965062697346943763411763315699211635399366407304526000559407527443819807389871001478167641305865488295228621598605570633514644718419267450940710695033380552902276820180290730547795469986873920555671324730188334211862695328588472566385686742846232733031193824402305519911949129581139681746714266117131392170081385441334616513093946718226111432805263706173861033969291873657498305115417957665275027509512357778666814833633330643924481179488772078326648435018663174526451825589862521500170352877281716314131453547464175742868191973233419254594476562875029220538133322474173241031689872991061873204197777871294230028194711123472773821619796975124587498833384828419377832504025264367142302070521685196285063721236609049111945720334715128284818095851253399464805623827531244859596003697171683340346582999262346416641140752533095979305202662110233978845770224651552761999056176153707318874669192683045227912054318813678576864163323116426609980431652090845851964572817838296966854967632609597560095516664451740125721103212014426861078135008044720924107821597691306373577316151741700307096087436474294784834949401287301962037753730594943102859850330267121546715439934471022790713232011664314783027935931341322025578961460614865207661834408454020548196816618415425407803602563580135988586183661298299436458110512133489015499430962333837550641016630923579965739971012336022860583483467105059599084963747842791674160399383582975006816766559266007821780066619359544123062264326330778358845748971379868366280284352228597068050453865660222691151836319719296061860721004076142941985160104625756091527768109451721088704259945543310567595239618327269496800017432608318385720833859942320858951228957010402028318260651485363136913871167577349663526404066845082138678167096501543987088824085486616650334035367164188119083781155884581414048121300761466970512177059038313961540467518756776453994256191699092744975568447852728127912253552641301281917437414562204343437585302432909768406935303678200557151883517826413072963798664286982891289529256423103022107896446333027805007186976861050168147874325812412851875591406746415981351440839062919003355652622448517463626015518037345404268236560582661658802539711756442206064942081706786147331276450121655558638850791656552486275696341203575374540693569372366819952708173330232591514999717738990166159144005801059845082997976757636566586256862895853828753348681365783612858368356155055527741158481107266862801220918141523488490074613405973940920287125485387535371547661478836956060880383792347117650088679122463449986330534582832474577703253688606429912198914325613561224881549389285848957287961530258461477991024826312641119564246974552725261515456556940497573636240884904636679727319209493430667468951685764464905351648094180978481726575198286789779604426567464143215754655141230034160782833454158225258145712195437329683447193886503112047941565391944058051099723397101575936331765240578547517701736056208696878066202169079207047540264742588103171285852953452202426037225591881236276380333369493625970882485363085259698178565451662014556514556788641847685893657132235014802717886197571788483535012291657621763310121788230324315906096892979923237730407488284040645059057119995296789043289404735181847442649389065598509721550224932424168015698299798287636192352171234996710442622046366773001320719467409492044891718797456013842968124687545039796090114489682874834494600248291507503588918515175837315141170581203198476140779108562357673777503208949406369089818022833325766075609264141488394959776028510318516578696408627051218949897138471953694336667338294479510818622574876045373650843980430480152536163072619812454475675058415824602108495431927265170791567861307820577856004569968680455416272038315469082185741482638311293469607383341439239850637331311279309502723642088828601921023262881682893665653802512156156741414335101227162442393556380993777918206364090846354559665682716085472183833337570651020582264792132758626025961518399635418110643073422635529369079391465207952668986277775301168951954988111162186033242462122745294418424694688563847824181307515943326715982829363771786788608020576256019934877803351778813155455592592376076117195915729157843327701797833902251537346962058462079248568396090938893018770343348817438663843240824046830702017793883331527627713795650336748907450017627714261811383649237322498962604143831953992496322774897931894677330618235030078103536179221771580547900658994603539345937954141824770677294802441087473182452058034949143903575669411288608965369634052482856606899289239165025474846629645586035715592638478691756234693341791200710261097578923364548184955506824778942967022978310803941456645945758618699297736566471800747956940123081671025281107155985993515605017609745713152064903133599282681029793916724616977436748986456508311583569168243992031754946597036623105702385608150359274042937954188307364670981075940586906176468125382214916172233504236968650559573790381866812901386855724951982569636127102423789254811404927106374782142146156464653690698436913238484157033922355148663904088548352628296830906007094593991226614845931338577770376290684019688947635904405657152573708542575186891905643917685643561872299433611012792965341595110481136089096292602272566808886377111911514564908007507706709016176601807974077805281829797059465314134023296426937969940300699329488987991656478509770098740427512900991474968435388935883047141192059202730794858007027343415597667848154617716451514825751669758066214316256713299891004028417929809898555929656494213345232844756305893822991688941658324338694186099097770478786319058745504628877575171935641056948806786265492825528895092880309118049577529630850430522775379422909816452107175668197992341376742506069888676725453343187210297199290642864617019007345097573766484534835145852138757914079604962888509181143360463465414634157385167651927522031256817334702849130420697775722554331447311538820688899723573836964573845149096046646223260651166950801431200972468871377992904584735657250381065786533930431421219116358618453900734880276845527702117829338341152746795553266632181895749788825016753140317158660214987485266536578369982798738285170052110789823959675540979007025446821327185221721299328941437693455160446058567359345921269712055603726895975261397352112900456847269736359098784522227529018381237095781846121555799636523181272463583965163242686162144581941560692700422044727792449526509420495388990809457853517921746913638699169351420606059395770224007440195917536646900468434587480127619029449535974408970535482396885000532157890125072430418860489124538419974220498966148601739598705128018107469786240208305432964495949505206832986309055780451505347563680499353383617295910647929486667466506736989731286140095892855826102813036161133825378647616298310121326048316906170241484275982372817459264904449517529524019653030319368630191784245602220185238238708837534573864596410165331987716269952871510568131497773043598656358614971345795634752979447206061507059872708403099509982497599648556107616510760619721448998887881290225395634437879013104288824565328968520551847998651647769464212476371325785097021709691018297725340690400098204550878493974830246162479825958190684807601157356145324515110664229810937813012933870640268776353927812813946233345859425303834629350466599867008712105631831050488717252285395818810608785714917190260547409482369767542398326463120729748257973763782997753991885801013968301761128668376510164928236610214205926467171238696315350813522381174748501486809339473010525008889635203069542047942952474389377355616314095357429667734698097624929106130714753677200531846810860282163744548695469711798793960926638384765943792062311482429666927281776416138919917857030670803479367398135659669454893682581970162313501637349889960838484187860518351805708824497748939366351375215795134082439930575637090853218133622629521592238164997872708184165280512757791170225538378967574639575643629826992751642619624420470102788230900393206099894470875806276422285296096524660828850079494908647361301890930942751267735512323095358794009246435280020315806177755760939913160166494627229125538619687238367759871965683788181801780049949439507465775547951470962827160787361945934482882149095989334380430933632143728569634149552028078387561818273479060741611466831825043125618452269874322686719001410222601195833067664763157839978308020725719133869892994304805883844916008879667368158720700944455236517793871293523493638024827740954809411044158126970047827752405564641781613075406162921508994702057219209407177965819638638974080697825312108839653686481287874276581258343663084717410625763116257807101075566769416803905696024027386305147585673354223825791228500519694293952697894111797592044164668343953674036530754062860859696112679754692520593134137270879408072942743154392396427753976230335539168955346784353162649250643350652447154420876335631898174192992619529726501092197192966162545164701710182300570990039125515208212187258580102832344169089625263541040786389965191031630212883718223402498003920836427234467474900964646053077464203921208947219512092759722948221158828194308126081777599074322430919492434265051775668382435772228742660255390991249165155017924165376437180640299223237229813847131743633376463281716511690276148107529291437330933380256859290492859387453982298090346908489098016618530227338185887041634393591308385087238137704301204306601674764632226545782497178668882630908338255425697226769114834208755659375918534450881358091248424957415362765927547517607314784626718955601041664147726640078742913549970249561587235225036524556307712436837722460588470582908826966493500829118783845539909043044456093794551138655486872904662410077708205577684357867331694955096572700482819804467473536798186056781905507886944241958682546035676180501024106156925668264699577370920401698800910777281483251704023008719289268760411224583195154359001231780283479961476990317834412660380908757707572407786152229791844155811523112206535256104038550714246360166266479369673876389874836057653143365358755423879328523788994148392861644932948565671233321311440973294750550874543131940113484411450454997150408105946092427681870178851786471367669288153051744680204238445705878443272086131022235921093107135421360907091719627212328188538352849389156030002329503597231871214137577336866385095098207525244951182049672705234134961291131170267780368922794957427242514716212618285488599560939615015839550979407392107492997467461993596543057484380094695727567772898631922897617386816161727690005701600677068488786587714930601873076816524708912555076515812485462146477285010453811208245937579582469855703810382476120889814261849630711661639753037506745791601890440325781014284110176207007935951052735231881719714316147525800164009499464994742960830126131919980784293286463144554739805695178436807329173087582688589566821300819500768860693725417899147539999331321228005211455881636527128201935471447568415023778243028090831381839151889944717137960444384104276814572164648118297946769462933016886870587829143144091521214854746291351023240699374608525294820142676969138895398083871842787595694245474806255422156309187998304548057697762643745332580381135616049136131139933354274724270629567574704343482217257953022420888908040826354380330204339805568604998525606236478135583614160545310038325710608256771321830508606987727245270898434220969756763182316057110942361013139269463227949762269182010452436200084992077830355847228730341257202601958373703513118438007685374375051543731197113434289400514236928822912170304243576624234866200487381169943011166459833366058240124220654126483717129165811503805155712718132971319531901522977681381840152885581255293599739360857945555511246425199025605267436442036253031198851129427253406095371002220032951212766819854257742013329762195083575256869385053606839379094839220536154697428669709162303905760886871822018542736550082884062776934304695796437560396515653121203604247872440953638106043446762820959557424658089762027676261475137570978124793372478505213002257933545916328413568658369594650730556563089421939065028637808489466703255968987440980715174666076680563958791168142136911089426244999388665935282471921005940589745018288295196916329502469307773073335910111673932373470583591568875584176707279047830040511975509590937417510035213204916538477096387008519776062998130983134755910344225645650679277912928330486602312057249547472749834742036190927260665953227142437663744735098815335284578322109032573090598111865457276400443285384710430105373322466752276407059736921399964748724417283673732129466492950032205418665707981259630194938276890906655343550263422398540232256165043464648798918989320439085765182119078568325176473546063453032782543644953698474673974534930493305749883299623076735884989854607277705719012635634785348392442536352576888586584451512704126452693567912348683739015403474818885189594006430319022780399967775056170553862722786284428091379194349685197645229721815603490629763451095557991284556488072170936478299945989262045275210169109600271162074267429467956411076570641677820789650670306420307080969208328236548761791126528993079181050419740552420951351540336510953144048126706896825269612986890780156656517475350770746050658224737151275793897296275857027060859482121869543678747991331693397984387861739973156654582869525970762707850823046275331834863906181343919572659171711617453500012457895669199918444991869300079208768472129386685593003303120867356458607069797300598006917258656270698686353851543071482865833177211037677998250467117874649380372803213159327046667989892357260418155496686054215729402364182782032543884164114847155960113598331790136594756199341565214342255683793869562807106413932726422925017371113608264115296163377895496499477183176225796335916281872912679289435012015918449650212321971748288957307479473524739196664652859974634472418977040686972435160356676447344464778004533625594975175126933640603828367676481154458459039546279187619221885817746973710629754161139870639874723945820873292009358153267298267076511074813308765960525845688599846648406824032870475296668003795341766715017234930400414702528275771259756309086156067817029199313611217059668783569360360596562021552957077800100169931164413589848702698489822210796844548178887937028835833016223200597901545212748105301113580906739271270704140336338018198027216944174685590474435307341980596764897363176890742528517294881693936245507283695089527584692706287677700451078470125253871343523315554353483741769177221782981468752473192011026423574320241394421593015630488753446305280902831807036314448254681482913084491937067532920592489480827166161840397010213595762285653031882773218585166356188493830982153016332933828305810471111135501096331953377500208973222544058001079046713478476381075548675052697366596852590262603470627832250957538236174774143658448224486919200605399764239236939427604937419385001733951155452379835767331565951706785682609052926700440896550893612318590150554227118909702350878689831145928579062045751591947073098204126730831040677311308105510242504447615556901047889037467305236762646844320292548797477237746394935295280626438291886778892750547044359018851543158641785286995913640764075479117977356459859424865416320859087814736573599074722060271893863606676494374094356285225635297291480540031106914968640048613068392327207818233862498377921781716685969286691455245600382554559934051705960932292831877886643703164559357316533296884904431902760722265462626897182199765592786547509679436706629251257741723626210967065218012777022700755803609568735255986180558110318601110344669952762614340583802843501073641347805552646834357035110374572345068548785553077953922359301772497807105880822081029351012151653908957027492826714754641297678392448654586021095912250920367732397752970048361473768175973905810298595744656525779846864715034816146178387328212821184365676988528027805322867029577640055386648552169057987071434815822179041525167317042743565677792149140134955297358859579090520526745784933777151603197886696518807780014361485549761390170509652843564334171280568392563309744155757332286840056700530393645965092176245105168955490122288597367280164820908236721649712826253560630298141062841257135717391307205150078065930961662854704437232316243132649821519522829119749101875620211670533352654830253101562957594978771002288146188586408658697502595559543594016688342691906899557341715321275766570387445359093169505341123578634227864336654039403851120877275757406453069790149096885483826068896760258029563362243144918331861747630579322425658265385863184014466162211507521764222005506477966858371463573066150181638505895757421904787983569474334851490977009202333826361628860234340801101423899287485264530403325611674250025144021416697984288729239695279758547035034817961626067288952953374907089584109301923023754627851222668685484114696464494039783386143591290414858951514075082779091038726421312321979515914087364285688716150918302671195510072811819703516963494255058741563028563855846628856533097250311152340279920335331311012537938907026127089853421007034456510875742672568829011294491473152073775219195781358884078252011647689268035375129213602504379529455029095874135988145704495894611394000878546213346268478736283029343759144911688023807097088127402109055014864171544667920552722513202567550201317542807117271324950989964299717877966928800471418853366427467475490131132657377709417271018809186441366628713065884774171633534707421954784504084001854808552189273785457482200870262958650483160130109052673249929574096385610645541791251378537730810569558657368534789571397672410866753919306069198404442661864489370910361220096969563362306785889691181570703807971315255853453357271553135648664147328450458209018379894218839146390350046685136076055295100625295066006536836883941971437206370984038249432015004993049264469234590322744310093982815417753911231995711249090898907134160954913631755017858909516473626153185946221585037224208292680362071075444954449090974494089111649187319760666145760059492652736418750432958325046935979644444441191321115319455847792120800100082461144940737063160246187011405581200921483320414715033938339308060235047545656135585944956319006663654152665494292188181210829946975263280034049667801874683963819501977000746459120763808698983757524943965559748016769453280347144128721378629593209461401745762206764166471920726305268847266088973786355129146729241692680182176638263743901886588467078598715119142910523855988325482407491696967849661511107120385933107591396016600051902776647582881098334114737754261588127801780280841633548025524322594542110526397519191702640847447386771026967509276124781375953168912758347480970619480473878375564355641309850485020319017233240065871878154309561197368819256321346479005240845476207676336758859434753912594883982731435492944134673088048861139954968113840021596143131569059139610526595374535250378672705244869557161019781153391028767704525160908457190200596026876056908446018793205428844781867449462037832874946514210007412681457048653787064409894421972339614045417532375932276711727267080671266637324955533254978700977563967823571562365731501588451271045660027637122046805479320942414598701492770690068010943795344205157921084164426342752392935177834579714620140073347490491941264869952726691137760476983309662182182358907692242021868112491360445064191156236567434722507933324222035905791238508075694166135892348792828050442311136039842967071736890745275036776785334128536659338285617666709614259066744906693376108617344288489459158914107709161793586231328995514163733989596414544155197760550033796544593440445051727010045709765147267373483156701782490635015209451512102150637856619338623259696424362750271741410398843449498386515177769656511687208003417041224683266552387428044883979955155315216689627588786881905694342776555742872475604345729713669764327011497684003563454340196156912431483775170367338143654993496500301540135189527764127509722662761578174426173824971825224494486957036205041608034416646155467932074035151922653666739541973879478835898621912462207478021370115712222783568416513298399872986041837205522682588110373944783438540662585399353481413374166155372997726245732214402013020981158123842420054272769788766611750824120858057349396465639155732967865544498470332060397740361397022730257614790971763640617819750066795808812438688803162882173917437095516584811204215402350977772623393897707967133736571007697288464209018119123172419631352322268428249806198850436430085693735655657302900466074322940217515760323126151158431625092337996401201368871100629856888567366985063673335516473454625447400343657956109534536165757593654176799409525508023742446905517364203869242048729265640046298370216983773301025367663635168652731687006262839486357978245580744922593377228944684526177120368075583356438302073160941968951966344188890335079407811956445348307539263496679248151306935427103005665888249402023323332849819948953849686446921832329032191297780697982538905233834138459503722164831783296440437567159282449225787118603631883292009120457914454588316684979953212267046747403220499250604547328603958283062473937481220454535516717227652217980960909262473301513611547283025667289457085534611525905525612461028962057068948855862976340579457023360647170809376079232683394316925758516427429049964832162418671864855930893561453222477580246833930837974022887696379483804457173581779642108201397954679807050136722049918964829802073320926425248765159567753428389318949024461515985615628321936993407729751230653584842414111158049759868618285922740404272731526928360877064783102984175202390038579965087399062454322371729960115606167648374625764621587942100859195365622129387263463495628117503516820759149133288102364863742959248800963305378816471000057619341259084251068004721876838847854150286265616307024392000615976998513396225323197131772728117618008254670206948562721577974948804263007306341454889384330934705898498481649314857568691206962942046488594205433925672547007117455024521014724397166129613601507781778632848763827627593692350769181658471695836755898665809139961780657392562172803986489752187174741944203096597494114146518106054624671252752429980846676313152185300053016324270370312184603957531181886014144741397363905768710327624932278903136979061064575201105490468408666006771536838238397432372160337116237288776861967193360572676375559035092877251299533756449230704098986734563938403494876415103772947689407228621209995507496373706645274567732573173904655083886253075908372758201142326035333799786617187665274713888088443501568756810570843271786397549180266908121474616168440692674547078171580984418914202977125492292223768612796895494724750250740498200787435605856837595418995505527299131661029315251543747956255320584640054692712173828739543084844982054613598123929953447401622084161258111113922260986698185655585097453360136835763811677263947270524471978709194891764408935503500280768861294632422318474616832187360230453580697053213189973415596628751495815028159906259369549233607896006222133868999782211261523802773621060482277374496533423334078674668562348957809216495099661839002759615397416287343244530121072949454956660799366067278244268459579670445843181630037730016724023612235135710947682806984612977960870736339774321812005338179883223606134905339968336182267572781354038191824765284853828544629992562829001556511685804254464775029073602335983289577397546103454255871023009370423532837217714098382833242312103524872036434775816349013157210239260413715163978036278905568773503616938367451815675796206446942892394265933958583868472076618692301573602824065367826262821630361611941826459402139032396360295932227406884569393994997331439470808115251043509008913192925487915988989376305798092150464982492378567209909217089782675132433541693656168902423951175904792210572604328065852419390118813903053389849058396809535195134893441690917138949922494157439518252456859431139650951275892210046083043357544965152671855752822299228360543778113633841878355986691428293528465482965230465739165226515269780042964842012668187178293180569460072887819621603790901103835595565035392632950938366041251132449881696010364128103586256061735631231126611438604130143021036574324878486318931769051944115420625471112623377507949771169798883659570022390656751563193979793759349484956130263814355331961498654970947537739122528784431410888554586009844139747446548884100367344854058369372154154937990779459792959025473223617251378720436468325413201041183018915629235513978146139221566311263508140051849265420691101492554304889116792266279333820749332322279992597857190571587828344563597714107046865004441586140360111216334195796512414442834700412217388653243572634733367783088171957479732127265121899120802528413338011256064223100593054515514993008887236938841494811359141299507393848598332260758084738740214868676914412203391083032663067378930022927125346020615539473932541249696587512489657204860374707762411077005295706683321082223993969670326867249651375626895481941331043475488125083448531678596977592781001185322567287560063394022798205987742327195543488960616725681311905530274121259539857969929924711145176845120992018516936598951844251580098715558170110783106816961695199221685547035572027289742266133610710107292088321681537233857947805500982460074521334597343069745959168417553822516951974050347906028742981263738933662574797287468821763533326195947360486361595812943868687454302121639487200235771847722531924725622150616671247618724250772647410367779827117358821571597056873366954776779826203692281733841065515616641235012640083072043331750461202250893509741800685539497276683563810231498426311001072523554543370024851698681073653789629792293946802731466845058905137800589970111757728892443124956159200134275412289614257124986395164301228698495805226527178397709147639834983221955000437181530453792941761085378767355753256534425453051552013470736857379896468845593610825256593993126784600970936013316804597803009325373630083990954123738470778814187524036876873600339733522916905218279825838849494567395521594764585135732814509647662024279218570129445713049327736077217729544582220643431540247868427824085903695434203723976442407473442688513828323261211142763034714864177664070490282529434876330602677228204853805913354684096284452850572241295215036233781966162080949783156050697966860818404042487457288409437033498494458816666715142287102598488600409183869918389297259624397225175692442184420153385007638078077410830784406667427897284416662263760163674712300742784646457888452920287659574856603613521996816101412088120180128762295003937391797804339365479456577228371251516874041136573929125015136697317262868514744233460216281427037136623311405198523871249876457541629154845794981636595813526403056378821642883988772826883869821587306702188026613072187068859162875638823708384662492409690676355030662362912595773558204018245715211251593640123726920306597685935930481732783748143121085529494549634645728566178825980907858022687193398758755996440245815465447694867700755894074611006831197300024815230250345935484748968632420752685129925017699199767495093966254346716171028965264245609450215157091690258105365485180421468342152476229780287223805239364063056438199885980780609275888669027080871362891389500490334151557947592704981516993222165959771944671925032395011624170673042728473832138460764468161594421061334624912024313700852318405890951015154060046355685564575505848336365112223527691606079173180688674384233788785537738461540586603088656698353306904630663649396709135465438040110817101082370011703666246487141874393119272334733764329324987012047487385473977038946337710463245495495152948734754279753513707242247972250280767509581175172326796729956477876348346745034846969693783120303875416736435889226829745620563667994863184481063698147473133226727300477067378987867381774733640840496629040628408253982295136719839013366857186177860268058640862141505332043655395851031281890996885045556972661045116444014571974748123340470817116551363674424260694381132294104282889537105191963586526329130526701865871445968707181048579107671035685424609820370037727411032749103903316828093289416576240329328914111357297209421075006767599989600488733464734263499105199161914865555921954745810935603034097059674600835957485328857313088673522724226267072811962679624709097575270731025539863154984114188843050301988010331971644506787665699805181211361683459944705514523495558474788802577635239241920824166678661033525644217359864747306791546551061766488680986837656358341174094065609868374743055948071128280895816885174766126363269843734505709352871066605505612442913079309004644709198472359501953815740444870128869286586129253253442607082861253025914996470970831658988588669926642518133720781717990718183561789629278364947270656290175066581958398782338760246718371797429651404799731909804843291303852122791132252812382461812938619055252816207715020992261559285318764066908969679997742874341928544191245609789585469302476439187769523255497095709944797176400748894523322627127454610122928509651007709647654868533174919822976244489142212413557116936177704410386943610211696557368568656492219858872930161030478428295647943437279640905554444697615755365587477093320988625901057532479235696763462377238588556132472718053560143140110699547447453533283888482315907255602431932167597663559948767350310657904643479224171045587341976956429202916965154654471391453755959925600435353036826676446252115554233091689029753517893994389154051749799545676795301874952907469507017859337276814997567812270075987935309198296691844972215422482496215640714111045050632980441107733526373403296222741780316456654661525730092686348842416407120982113571357230498415052976620255874860658707591592134913890217351644871899448643320866168247610312819306846483124458331735185346971287394722874361280829157839206201514454847458380018927669357572986530136292229748621964521519629203109350613765481963386408074984576942045117520903899798407044491769431275590831698910938153072858214042960922416774112969099841011920046971707987157098616328577899239144984074630639081075888178019184472079717901618103176490218226723145793039623007075177818100784541317455494021257633755675177316983764707627812997906077004604634026890485029560531936288020729870817445350056881106749282602349783978329058125475883745382956028313556017486106932349123682223973819488686045640615493292994455501797707710773429353141082087631956165736658372604867841749454266732898498371924627784220632188097168658676082091035715973891019121783289496995141562069581007334389655161337293156922019732230207314054585643840633954938493916944591009671047491561301264567546391513365597399304435354446550971013610189243405902658863736876480279234101495412929087671392417428756127337661539646966036543174263530315446259690494852841318067855576839954013275927255926161987180251096827415004728032249609324309816540232709037652085918077121327720939061359057491407737049947917918211737477864304619363263882491591853747302714341196685849504076028816394494238734103448592446472144737961708595942489902386351896769936073289972260760902042651882750656778662188316019920249048086746079535544599832966436619112570379282537966460174993654697637791738679119354155949020366747099253714260820135801060185369065562601033895370811506927439557423991133994441503976697869345643469136629557776692277958780265118240786968079669506985217433173208282936942558496804857785102570177089532876420176419440367681688699909394919904072300065266093746307150933293167758744186902378562876581564516613429415594120432621895579682500166777113245523135984468259717086636636520595168699341342011056908801500508828867401878775815844732125619181606428366891425324322456174418657552038396903832104293250690248225927456532499717548563478294817957883798197264563795680240236577801428011419259389616369077198858395922852009358154742134815282666995366125115248621331696663978302380236612062497162356970663260715372357379774634831330931372182927657334077924445416705183532503878039421138918151962309949344156109685759783372600952529272980423559708555324229704594916448747969779541092215620821529365339907352567743653603387247963459364162541256999923230865513424843931293035295398075126018196438866435384081058412219841782649872986185787853244855467870519332512280804453155184202218033640941697878559048649038583557533826019627844885147079844684635755554477397998448956357043452084676868799821400305993407598202577184540717757740215096510286285525507355902770277458784303072234747873754980344566214980872971633729044767261370142708755574229930826522187985908105304432543777974698866190451634599557353565847558439866775738226363788937948120523772052518950275330032362349440081741207595715350858567674418080910680415541794321485568625424651043861418119216390910074473108527050632475237981778898190333137977166718525183494031385608567484582383915743865912995361828946334496815818001924193225238349202295259039318010679809843973027693116588567449056201045660830660581735147322509474958271519087644096485003575273259113930864572871420816165971838988123660598094384613571902627433012531199990113520687887741750371668428846742893743117599659625002406411043253002554985738390278158973849911201182064828190753317076118780030995475789083741091748790158460604051737694661147794489885036413761356070748200555045071176936373672426694924786558026786638162302976018081458884375509679298066062526272160224789067711232487902560138423017730481511934934365074430637272525369289620331220188923396164598814393217893193277282170406973036724245965153667916540059723560167116893119574663044556825936487913621604183741728683300316424904210762404528695567401731127733825290011124425519709501769457646605305116756906217014012224579864329061900951652313362733270809797975983540063995451249205796751612449342626177503894974129698508974824260652969131930795253132332562724599877327622444222612839354048749938351419250418478522030994259954688850530421108660723824655456433008904417336219278948728513711979455933793426924017983899890289569252586770437828004497230640796174630006652229503989924876471061361865724889287225051959037984263472830144122933878231899191983448978399762501430792142385073932714256259663562050005613634516734671728870180071691457514406582148503875827417200312184752444717814961169352144652899524555202840912016328864389946611440297871553418307381776743842363551370639923998006574171792543123281685643301527356276471517541993173896607510345706881884808297608017979221345103239414900605137608589342996216457363388632604380478530421222189214797840472806406168443525999594538069177853206943954795488810980141341934702223818876014443769895461635296740149238800037258464292212498656945834507123629540645723259565199124990040337167209272216906977775253351992445990306230985910163883634743839807340261528698398575593130331619724837698031155254373476681102851754010226509201732602056173458164316671147841238257687604219951670560167047652874346376507803250704199141369426452487545311205946372013495478543076141935409713742179575327864282568049210965918050364875575277271389740719804017527552365857316302136071887537592624182990349446680158889842705159498352543237909143191841868626521254119859788322164898849716060028805608458214376738115773739022106921100505553771195282544869436768610040326533986329880374999974761369748380746631305540959836448275542426399621280332213570761289356879308436306894003063976613850319087333475293923814350324266524609157182266371192863529607242510619484951434868392516707892156846889364744432752079787371138013223749726108447154960012431008428508663911261021479567425191623107003215669757969202368868983078386762337153246068173904614040828562892976832544231850503501568607310795256098429038651682158396732779244841116623788647950432821728843881848396761278999386868954863810045153263017970058694506444627340631747173126353413663498483142361531873015666249887118130319924688069091949896243261878501422344181749030423240745427156240084190489348606613766721248858116664178481781220708322052474882372321733226688909591738613086140696420781936367182201308569450438987242400459162954530650000590066085236745586795341142356996057395826635114679031711116818908483691934007240345305428524847052898353892222178016385378474433107803280310407347041881509503437818329494490301947742346103632009687027847361964544434151174961360643568486363066655611364941435749199127251444823457189676297929305505157641401527697164940403812284536018771978475847973672914115855196488174891529189524588457878556811345245011739840207091088571312888191436966617567174511087131454222104870790045184207879546843980939859279431577628859592706967106597380616889317126525134025639348291578166649461861827615963273282807015172557105899162503061297581582909267780342338498455667450688057834360646329581101579914430591273273422309166984404606455437244189706649671509541271936818757870400411543346333687954923114913588516361556468815308556179719572207923493931264688085351896476528937524924336381586423939973092205933650261221682458461199992387657208130834727825107551168763687482330480259260700520964407465592087706674279571459446659982498930343074917727230417134779431117241116395352816697634878056411573452563719420873960037433699345341454892641311472532327145780786131637208493018209193789755247829228156271732786503549112624712688042257868492645080484416349220622794226071997782632308722129393342149729282682230654258661962062964601914073150188087606830382578855294708368036736986988411969908306816227445643866734090108475569708936236144327288916307227300192750873978584317490135107212140828333623500711699983857868817347163388007219879254500380974991885498248076159506322420015618195283195607921312496829385756086090388090774939190050417135223477141796168622386286693785003421598156748616848840450157256954072538529184405698918331461781963846268160361160090045963523602607545065766335587331614681638860525463206423434492569312355762356421946593824096194175333621391762971256254494345015724413356091811899558617251626044757006841780937664485332361752330678923730052689429494214345874756840050786462813206816911134073896108842776881794588181369688043723757842642705324037617713244738197262315780173050595318701167750731039254008585062887355577628945530531726132540520970180698174266996378981917231230830717903166178936369471280941972459503836934856531985427033276187762145668035555844297163070479490957384346602928659766809638315214780518832221337011290963000309720018340994718997082267065442185976939214114714364274214552495259512325395274638335873170076796496612877867307010065929152453160973875928908728673093911220221010932578332426144349358150608425293697124196622045229299187270006914172197044746917204534341059654759528152347120319257442188475193733467358270726307263033908264071219966360410040416059476178180500138251472128649145212862575683148085520319867077171572724207305999338967544279803125480653197960418948824169720596709522418824097980080291778000053867076727008557194062708725085441600318056264883336236663064019115850217960127282207400185438565234055515350237276718212469840258362820561686558926655258253131661684521200901131731097668397724058626951602344968618470845286401099232466196034739894554776633257623635409785912983594147742041836155162907340045375358190918779739265526612169418507374145348102798100464263954461452205433377583475450389010282532727282270705960306355502923396144752295230638397708609786575542140837535163891120640647721022282883971990605742596664673275738401176562314336498892245900114650870771120667235804707508217944026065679606177857961891000729172392133649362313235139860120766265163970934738214344272994781595528283948694097019985335595816914348668146832325069274320900893098124817984151080157112432849253933374538867681818967713771965929737833900228769880441043215922340730925164536129870242628774802617375362221405998620336062602020255742232881005830746220079616723701551709977754860723903941428159603248992824335151463832209489654841319476367294676622800975726233916412781448734957583950167294511580818527746747352834439338321035996085675750965849917116806339827763724840437577126329584279597184054364993878073503645186091898333562627849867191047761766574816749746966445612904565536368819650572838016751184043330764981710545008137542866332243679309333800121753175558682991750911032100434413282837972895136308269058304412472760964582507462021965263984434853250428504890325137976292198447621420820824836300380014741263152633499875995357771206754734749502958568837151583024763321275829573473779864521497238229884127049868331037749185144353733149731029997471225448157743487380655105834096238470132135835429879892103368715742479551058939164771124540426934144170167044377054112806046066493296688688933224919157063363134692709860700013065808107259379247554043358735694632176212763971863518341343643161288700451475186121314109671864119336291957795922578606640287064509917334745902507202273728980245781949259095161966057091419760905835599206764056701393536155052324057829507505572957627181532587384184060423324257399968457698235926447326305207220237114574380367316531025342747874915278511093133307093886819026680339529010945388820051053320752622734777226234975856804606777088397801488028223020604264586211122448939494549144635196108190113050395609593135064894567148236192360049963996151574733922171761991108127240039306857018289675729830218989685166698755687024147639648842543203487077217216235950225504940760608464077442958822108978371469743386813873875254197608315693972031787047820544477108302605548189123667308121539355930600348711460483858500167206368835880223370263430905605951511850156560482975833722539109388285572282149393865310583476358513125950359613121132623014179212623957828820131579589828406026330073773451601913333451079781648581091646214302019379406921156025205983879505828314280167300427084391567932079030150148336238608759780397521772685834126836676291222120819006852880397346127936717878027604847657124873357551095601814155356485502972075916360243911577645594250051152300086428290524276197440154010377471603070933518599871511430738964116541304143470230256107137399103177129233505227170884408822821058546699761350535928802785952274156577147722258032710335837041871538614286903052342386711086871477724029449067929876698276579026797073476477855437080944044076359709945361575895220257725748074298270104003908845305615134582189827764546845578424199685832032769381937383436906245284117501128039224316858359856641881168049854812106751194637539003436290349036164093415891654788735554766241865487212914894354604005576231648869896863856835302298202176055011825269270257197778188376442783827937524942814519239988135388771468034820250520284679613652900158066701279228486206699889802371914100329420467644075589608621451325915825497244704264527041154364619733549939427186953234949909827075083086787466281665156139943312126485736407779346105308026941367685705069402778368385697780549888629292594879830629410167338048006536148097182514581956581516603232944216503439511472698417097207373472095553114481896569378507500855359410922403736082407718226854180890316478021149070226418736337390700820267787209120171150952250593960750319227819419931774342974924011478023906335082949380827349917411197713267593473239277542389834993569283396532334857954230423452451329076882688820472060950625979059928822546970932470761248498801853207833181042763924373537391702053071500789695917554952379583962709684565503600846202699482713302911166648426065996022917996233677065520340555302320146461142637488629720161414354381749178198641603956067878574243554074287076043987764391717946016727028453102953362207660026676909019021035378672595087143648702383764339801569395131295297231034936112342084656629931561411018903940805592391133268266324172544342432047731311629685488526306258967689946362762839083075839561026768818096862612870932698403867254371045869505054115369637762885014236703026230528013330602673804586759384164963814296380429361587391044231573109243549245267166633498610896792805515187284289234454101716399815983586173268342876950763848344099039365035155005924094845754722752216347376302556140037347819320625332099300841365835422369749428808397014401235387711650106349261514767887971906720501391884203397236956591586354382389501650177329056971529226849164757126298155933833104194279731502438263333217008165719099834462167115503310654198419053048672819718512747079586457479872583707707354181007525013621805402402455986117706244874015733508381485622949894040026621200342435299069264422261702383984176873289146423672426641580359688453016424097648420684234998409056693467623650065790831691439296424540063184758321108970656095095547912572986992716037295836159287573245648538170171569825480277942627087890881626031842020059147087831024653346273308634943875476922983372423023456593138601514383374831158065962080255745183913693978988441982481274800864755019690812660278216570402494473542054483228315162001651778537696700481205570626296791631105643398168932952805493610008584258565534821009974377236066667763802200725932812620171530786399729378184811075966078109716007171857931345948453367809488583289269072832896693288111296194494119686750436119369723199616205775054707319288714483508570829706999669934552881974692599822687875323058384048775948747183981134924027225606201628120569170779047065182027131350391296840307874640660431792925312851919954677614625628319964521950164313234598230108502075780817232850853862104540318257251639334136914023286949586710335557981361280256462143264129324716597030057326130689001644240869599515984346809801335336617235393465951568045113842246846984976989621161396841360795139281000367291190758003828470901601934374140329056947544119872005221283178371578029490913381939885391520323132436120140315376655459010935504325173171790068357019863666921224147888969323994736790692540187523171585413893561449853300046386097494885743881823345972427578335690561728713951867776999359456588902665710479920695350519218333290883524849240342284176133343213753625140711053472152061258574526777735622343418467414903638244970193416166176165829281887089782652052117280890966337781872615404373055010823142555958096617798035921365435707467646329938256459798590311978060344145450190168638655751234255499233655501320110326002882598004942232234387129060483260084423493813169064849760491655256216141165637962056426154469427636449065535902178155684988989305093987024016445292053701445089571514264365380533048469025348582643618004758547777469976887916553666844095467798946776381239702556987508619767916509991289238934093417534052157218913406890325969521883373728595602542423691057896452357544521519343762796490917325443498457520141904656864894174717220543769487342298789332952669608499507005849576727851492944117566074621242525730276696285701781610341547253703266120164745908289968711359966274364352038150783981393704239387424410042697723125184931808612775136945022828097031956462790352943363757934716023877953230132066896596653314157754916593799578611861885378958286095971432563007148964704558037925707336011986116901005416083766791677300015816293880807418061525699703374932690969757013673569205851921620083062320995852488387843199973784587660812374969775487552092468620920133144081993993340492031817784602350694899838858321806556246700819151267453662477625649504276556244426773875292888785707635698868490817530695395083256708520843566797889439817417572860487950995719296177867176382186009385619243364197388949329878811608778854190684580660608134843715633784522975502582993860574805904843672847842787438374048918376416219134679702629153044905817777918557263946420169956498513129437947572967827305902478470806426762499023478366859790306812802284392871681758473597359356218600114451280305368086269206416377021527898507430696574488677108092660905359802430687094436487270279647325962316402703179356812038556840181756503314694281736341252671546268872529278245834071209280707936688213538611315990080327490044647406641050731484599726716324065045960948241452174927179082796092313844318015256655834540348468220875474667325099261017008948338851337199213619911480654161726956011446284696164196178477855595461405572230141361056185370799518469213199325627834437110510017416080731157156801862685769456781025425637013031323967832830812685415122876222659075763137927608305276921739653848325887667958846447380179125095748018255693566884064559805681577251746482629919517869165148461934549274832778953307811814155527303659330813201138557808185990801797931722201466133018676586142654744800903115702685743155938825503121099864244327457358823456823542432236684667027665187441757687896751217376669524357708907126523815910998762396424942888392897095686853523823752408017961572010246562956887435175932618690821485671872341479157423583980810070373305563283537375334636104493306406826206897882135907919015040685326244228634401574787308949235809550396702711314801962079135920799698381060345043123844874213043345434343291092178539385185213040345731376502797501305493735310536050113127736902603484819261329441686076027507934803057782262352175943036849469789628090361869224590744506692211117399019435302043177477188653602570260225775107273438237645830687044171953132750203443514955261047692938738937787218466312833286367090967816022349714790672822356170493389813581472801260621799560682812318807525423300804240550372369206741659013194416649818273246840372152573321047824120868197573742079772709972040750436750049867224539855353503209901915755645158387532232974525995839323807679506469328608518253208056648483434422768837046654180225081859059940407587939595618089132568835003105908122075558102419900743709126165783087021451975988659942007975982604496137905578531543522645799396152422011912714472690858416812170471328241145012009924301259432992064384139597331833445284199435515870131172659613390474640344017842124312321977247813359888399094795930829519871281408705321859382583149015905179409803073495129674121481642224357969835832903507950037583811908491213216762784566384765638976516927287755672004486450341781007216971419390541724885843576902332542826933358485921393800588490388019177542820968284080625008527779612577024969548318966609711699964278209893825309245791797054020485262993877473054293704472190607441914347092232990538792893664496021119437939163351554340873042037967247327357656676890980548576637551369898906261914405899283602991799663733482466261941452830496033569246453628018176327650686522137485272869695590442946041888360234232733917558935140385757600004094949839891077807711800640482451839479606681598019725490787123024487603391306714389345470450558686746147853804736447882007401420407662430520626870709037440449746610208661478465363175582228807740557627383402335860446718067174711531916246737202248745534539664679785152824195418675085683800239522785676753077217240797142616694652658805070277714622343118220765827696292035043342769215516045129047189346030375687889413138907078346727980656512459860599450615312587429262256258962665878983670423110367883044504343216803136137736959048694291758375987497007620651950031061008556253359943303619591937927985632269441963443860381618437560189052551126486932607228118465269529963529829861972123346105426326617688098633815512021588911226216289289652752434114459757398246932059939695905769783881859614148581523617226971062430754327981195547415583972546208971300250295018339363801565857455298313850342653664032182268726326573430646047908391480715573246038282746994856074995481538061060912370343371318244163047312750680614178075603477174451721374284012743083273619304017866763222212246258845544959412408130652681762136717777224995820012196912833916699873136997031382143132167941441446848751860262178036453562107011531765792170512651706907489392481976598134200105893261224192400039429188354989284214754809718841673948764325755929027580028242896985021407446346426544894932991842829466241126108318497770489570929925321343757134574877777999203052431795233071570846671193285793803688857279615455931062462779466822611562347223716044729153863374605121893616104047368097448819838361270318236913856658232143898573927424944758329208086854880235168149367359634822290734472968317756271223229784024954225428103712584847034942378613889733092173460057646875596013393341285461839446046359922518654532233125376981690826880491756285367155048672733436546316470100042678939014965118826466946827526362898963310061079966755007299128461183097080520315475932349208458888241674414825550697107176142250409904038873226551946757279379695740820246965262559661672684125707936974019654052717977267905775807620326686553483957407025804939839615148690580980052827348917876835606503217358299908320162112673867645439590763197809653904518228769276336615719139220431772487884312889882687182889118295585896450322657816437164999087931819758667111280511743200517851390017210874269725830714346399142055131320352788115449318406713685607838388694222361770811609551054961728769689995210170509711669135954745602832074673842486848310490671220582108685491011694497203116079213740662059878917669945827248010648947903672214878302741436765629802311609521138549484120380816935273859347254845961926611162043459688409220580707966268539657865508869077557247998953635226852715258371896005262288339656686081029514844874023131891211229880803548223673992045226477699247334489199075590878646480770436029833175278621532706817267996876305226873046300655860804928444792002534854718515749384887104107992047760829896776856359656532570213293241618554288190091319758118340569417668987230946708317451279284815524202193081343412482803508863684716687376349592204648206225545263209953240986963312410228040749220438521219673774996802875556994520336176784806103039791702058120516812853413444253379479990599675787698552513041773938927638531439231543761520335502867108082646350233747591546947283319643120679653530371886077742376815947949756834080015434232162658271634188034456992001761135811296658759228023180896146427575299432479635094409751632708716450711633775483755687981345124681846028821442541449732905286495725235919147370881976368872956750813088504867849591012575942175836424044899684513731606601176637079395125389750568238323714755161082830375410902008817298877894757253131738299556468060658738381292826239301995351542213952743394858932310674379313044015901308992619862575504226394614061486278074042197097138342941805242567670516505529651416361893004482846438415786411488844475098701156631773361765041064002564362305824227102955660000705941807584950959447309939600772365943814429754715289901459357280618413631322210017978729859611033943015387934785795195049817585131240919275977053075346357651878235284015517561609242299220785918987340114324783925295408562763448913946982601171596278285964942216130726630861604153708663701766892879926901523210723356870712353557393262330093361517686789077806212171443682764311863009481939355038766980866554494508584384040115564931543180552315471651716106437077512456331869789872066509048294823951326048382520169429274111230354532269345310897919621236689470104210688699660326131183588314777490415875312431355702959817139828442781961649489222739951375229534705068728267270411747536305207067037171089602560227187954699872552543196968991913677173195813737472578385665285964480301386897329742751115710007278264210004258479296234034238007998904150873743384812963929935558013415791199065140865684777531883817826947298481378485997756726705112201153465325995498596896310191497288689622658501557707716665234184572653907719797545611453617566665937575852675040379551673337268797904939637572647071645342147764243143121148183916828979841179586263825051204087457483233775125918186695023564428525454132983502471934727382484926106812515808311542020541565895696201686697187622766804449407788195283272561953756223881971312345218625344806420072823652286741093814769014068310117796243865462799290119306169936692164583496772549758453875271190217225524779075271552196324205488439265072485413416985632447356753988736224693272677102912093103805204805294464109832366784555968877462315819365829080231740829898579897768304186478108116948744834640691829860646709788225018029380189354977870569927652940402653443783715946998832207907659432477488154710701102083413747127804693620818840454532729435022373643744855041093641723085322300510907166073701894842868201901084837999801160917950802277140230420027662069005601741119463270835110472315094512738925852340921579414345723222265861383058406527806728755719020536734348886955726178654859642901620851169550257356676535412875202070628520878603143352410630044511312831462695764535245834877810942306045399567928180389634770601957645299708544331600398671806575490337998157021826613919331068542476787465369698021447595735642397418526640853454791661566594494416810755994672197597836439091949155249990631930534341859841040855966331423129064422186130043915031643064059800363063125268942224597007050274745457535453873885470298212062648111297228212624752715557281014139069408237379101315937083548838486797503991748430368567675994290355257247743817646791000966924043150413290654496869608985829253988668003802815394506069691470637609088075474553044842199254772970129215248431257098444045538262722246150207742923842316697124477549364922304632377539997622318759956050623791408700318364916090199063058276627266131275339551250631025605016019410998109213919530582508640922625004947269960092209685078065505333000482091877550586948057399048187032246439677261207831119915602655053433534574650475630549137531084696740203845259945192896314614715789786898907734192913908137012490823702778549766813197313307642107182223206276479914183049786748045747501905136383934367500504202468025627858761714946907571845208838600110122857322843945224272702427338659356268347870658138757300488059689429821583363956991484146051790137391831678861108722996786524069164503284483785840396577881026219582284456858459033606125078135527367598737015898275025992789408515465556701505773759622180331116052897376904376149679016483100196857332097066233320407501768751219760108364543849532119055589154225853737264760089762982831269238574102548491271710458861121921784312483801397071579505406685072994981641650056387693821424417894589732193665700716440240518360002353561616578284507815444007131947373803530996933913306835577314106406441041495892135072893866350181429501916706630065633893020876469552647304749358971597001203529666215008637085343918224698766027172461660462599417181870559011384304353741847984791528483546577090129446752239205783577172211127866361590042499541708612461276464085363886364522238440835609185218554407633267342840450194149873441758282966184191993508820052195849598928474010807108507134708819605731534434537386533051500480061512073715237601350185496485930561792972605229838643190638025092566735292880247767281424182185638791179039221934243245559287178096401041620681809786187947129351706995637545807872169352880555786152594959657125990841664872949033761381933127001593131263744974660253520757196312949082041964094312534139248422671696855501083248810756283512818909226308314358988533625307251859151182357626061378080128890870140604909180010587120963698941070080554120866923930649911204929805772241557795798687297389212736847383838450138704133261194874053092592543934673127327665922652886828935774336798598155397564110012612686813548801096653007615486206751034127325369641291029025505738368422193914171041273550349783066881984713564078492919563430600278651925216229305949804336187053755531670960273025604761123429941475478272664486128299603737943106693995638381883857460513743633464386674404415705179937301525306972294622771001824041300122106415210299159409526188733550672474460830156223365877851258655994656737326754083545312490701048004552551088882226553915492636958296863079047654721429702159385239413249611726409348440374335643083259299092069996355838788486881648448131485713579866676820183918708054474401096528328862874318775536985622936776705503338805958070284488032090682097482669440212315084275678642482518010084427242473020048755153898558006983619076111668071818371409342285228505382454132957010797939063896685970858651820219697472907171037918151596700771537333691491228803978829798423955789288157029835556923560650174434668201385658691754612309897207447079432757236684619941781350542495483472367952495379273460582439484078926398957601215576688840287370703410984060324110885343053003956398903031767196095411194504045412236313446230216764733553933163952845810112955932228410344959177328716691107416677569900942520789086648448590209016656473140371245197192137907614491026042264513209037394683905824009100315752696553632063771934132641822476359745328767334561786272668492847345115615007594512711905110751041388402882430036925979424562572458535775633561155633588953658611877190032967245147685742512541764267043973466250058859160160142096391098889624665721881836137715732048672733369120006106312415537258454756625295040703295299100199966634622606120056624368106706105532860476759661096531728543880440603923506730360438513264230881289270708696383815898985713741211548674280231601088882424064868462307392721078094810571221964170866198496173321038598065891567882721275221915224827345889637417668181563987363984063627032376601391329865277340309792159065966380045542368268873453205486035627721617015386547661458917726551604062444168630888426698850611514056853973107282857608229164631953847586124230884699921273961541919358429147921162672276611587701145019655412665337622796799375857204682962028863835112562785893403504946841816101564394824451566672604143661916619718339130809250260077939225204662244783882167242471661258337840891293901069871949336177569354571022890781662578724475142540814499483410454276925127018735975233336157492492577192875782353936249155631653734547782652546781690878118312475551676129544215226872969315560091576859862244267923717418001535140429990678701765850503027825659576690488071777819652953515238979161124598957882405708982886093793079112538218722105666816816694056400684460066338563819153737291212369998264688252861772101257907688395266413948422142474188847809544124833938914725904121319852369816555767173601569449342253644988318271751164774382183751332590695210385150765679916266404602256866710871976547614378908563124342989896487903603141481472457242256794231288760175289894157935367654059051009269358090052699007843921996713710789433631437979784407787240624640786456118084934539816499619667134786409438207783454861798377271971152299917863554354070941438462950301273171956303869816117245702939083689134681730353208319570699078890094112293180773928835109175478507017589182116157573833568093257406988763538377669684754528536084155262295863374776921616412565959658686596022639313384858154336887311937950306411262724956044620162811835203655038375345630685879571588166296961781757844955665107898605607743355992761195052152226677811109850611733789232566147611326233304904961012452638437251944404061753243326360100403645811642098621462899136045679516294107664043167763283545360189298401729901518601393175931412549785209946640904597641860225249131848337057638806878797948169012682428856635365270636466983339096550013036921821462411052411985870164549508834388557046108693144360436296253219009871910526490799718162374083202164158347828009683652001731323206167789554838002745439230200218388994255553567153733052251113442796639200746146694329995556229723405197604440085882514813715591123423624370103934754348441403491236289278711979726431002134273829052054452293137253512539320163500082447086498597171601977343489673758329315606083107460987160379639447837975770523754961063094047874680709435051627669593854910644823939270299238654507936957743341747232889615057462535569980564818836910479454708658922161696005093592229911172156768396191440722614339296438417471784122517526265363950433342761270986718237129528572357306221002704783939256155998681657369528340667733506551297974305388228355477043625687238430141723082954848917430075831130269162182098353598945419710877363073241699369882707694349026206481009837191692783207426211079288205036325904167228578898547618887026897243575408460875800180813680546781206895171314354885213830179357340464472573826204765361712833569622895065270992520143728007168830175827398387887514449202164450901427936880770029629856629754345066376592614414742474190217038290166958161147805040355853983357377882025378272699356223225265100531228154168730248912464211627482588376269883211322558378938685135508903189160172220221985326701224356951719898495517315854225145748143193962219829267957338188897096166772153470526262342334949725705277463676966748989314059266936904608335171054821308902916297700717632201067695527768926904444396631406567688064917262070283071092523181750259451826878798565588036520911039321315899061404248335313392600628244162794564374359291103657049170381514463744895828015933661588081991520603309991914702673904386781573442154077425253550429953876042348665861354158287824443837326640278977745823471182815860242877968988069785698590246848896182965737357402783316277503930741881667887823946668384872564791853668926807868071272559940585256101400083342010019148675165367609095994418249983886764369969325407751758437361896230732264700286464959688402168392570083719326350464450007048566984299393607619609886765733118537777856251784364198084684439168263522383402215706467818867543697003145443590877891782047371899858270642466361216473481434631593082966934454226786549615764114044256682244213055814100004872485842849132958544139083374833631355342740042428557970887339846038263165272513625776546391387377877234788783974574097312423640077619772849281390452367105298594146854641274542777409021131548247299904003024427946247117202920625133104103746003914814714764555665265917602501318971221985704500261653754763107847938623214788994367281860426317090030945897522992184100926486091305038445853346738171152225851881074177095979939799790599211012666849510805385701034198738771123442209691464078175422385906243723186859092867244117586822135803004085409860776153489920574705243618697950349290301475187674733799477628900307062781397115943593886460245032470785038839786543632996882351790121035933994217374541248686423609064476680104671764541370074800738004087211448566825319279995253308020781983998307443759246386565192464506843321591070843590172887413922932973772647668175961683774471492479977134918062116064439719707676534966737625112608544732197688426244264927022384960003309482424329115345932031590082355282618783946332172912279492621009767696472880986882415579321585413989648626507749337558100788997611632762447629012579662250807041532912325013047636871663304169008448765215703147739471242738963624023339157768721294021734707077055182486549685558327901902721876095999441881617717428053056145787600254653146961087643828692763037182553902457123176905685676493579274787742261494705914917064435195712172749988711612799418261400342739953307749303791891064089142719709775165657126417177877824281329874480454158451229570961197415199953965898149682536317532750238477823757785632247724330009677570164794639451898296261658137096353477975593568592600140216540258206704401067321779493326754095688229497095917962272914581460819879150770757644662776364786489643006833199178129268720827921236415463053956735480687779416050395239942047854302671331925629418172861598195276700679099219217782888770275186804517713044795447274972314168249737250225332672890161311675864809284778009845886887187843845336801540012400715219524326444604905253436803334209795900103213803907591666956257012609351033553078676957262076432120363252152122940882580775919817836515654517760455159872537891573693804452207387001687572685138630637371630444879455332516911834152307241137390247827593171880521257961101594053367048769260731730551061657195583139732583188307548143545894788773621590037288397283383640318453654276513708959695871948600318173415280243116295276461819176322073474010477453942096316520486843268945590807747073023132347894713440293373484169843427516811238190285438347761587038335279592712838447677253830879576775435599151799288434609489713932661077015143115161577527323686777524278397072057604442986304087751757092078589533234638452983190288583896292956833936291426977633355069198983141565565240183138246960879414744980386296996321915055275988658666474163563614355515478250555759325073715470526410384096116607020890985708122741968955868944577187508156727795201447427238507529972373257374369960234355195700824239331876130252814868339373674401991580406576343371668738259656042885423729662222145888734712557693015002006577796318099880214520893111825590363801069338734043956101782971972498902861451990623033591555250107741307148231255002944193297518062720560493107785435427003622190766166801251183284042647729911394169626702731853876517916751005071991027463288339987007653718161659547759266417393193247774550637333566909979617891909901990415654410647537274423571802016424800012863716029740625268051062961368950757082446130329120107056711107302109330021959364302246447082735811696292483453558686491667036014260773167003317488135240558080028695114173246143089681902770871906140096760363111524798439177519469430276705390925602670182603435708472801449567215988562143427135588187584237045474357615705042864650677135966948874714212426534822860638008665406133390970829649542627205890759023242877083702255724277477232128892061527125894564670367535040068422141255525314584879837391208107610737428624490715898835200118742480162532891766001388471665501502766419000015593424790890915959967068472812722745660803153093195744768978266843029943168340555566629409749269413584745484547237413483223181510552705986801634340986015978870530866254891554814350241812482259458181818250513620417327406428909590665583968413323626484399744208732346076548134705447394198779239228136532446233133301507861611457319255296154806959762496236030999960869683887558718582827805087105898955787985877575875818022676628850561169479832041725335824097019881393850667787956053982295929163809663982537519800223910403394443539642909770038784674571349016876857729989668285949755472612196136368267421397941827791160948984244549052414663444980402082060586970828243549308376552072050972758967716383078319638972234465658483206193959254066916591726808474392518164701721035716815047513420030427714033634108044321550590414622509027635885252716077473555932368946807465678700147812216414213563463512875536786568634502312627553936840853622237776905414442030481459244008275846882530589791059760096108954731830382386668030400697012263458695245510071709994901032194352988434591541768117444031733670899527559787692509455102968039089194804421751532810671998316183007954034271527747248859078232926787585354454774514053723550747535511696072935848503753842576015385544404777987519827920311087992144637437994729519672830301793079315510292096924083236176011748300429361426310946272311242049667392047381483178280195695507770552062894441433621723140960033066116610287699904805372141699384335972885903162944158562091136286268140543310713500185259587282881608958765661869775479349332327789748848995804740780586798387512535680494012732043747988852400586509982166769528135805033245569015763132130572851473015018802650037196602418581039786876819138442964935601856966142784141550440809746327913264101622860411819663032012911236505648306221541686793500972699131743998774712895242596969285786947831111642232836266097129741780121990428906952391920705490019216080414041951789240390746145356232145549393566301661565533021835719408697864238962888770727441892078303941417032941569638175300545427404069609817099095569885911191264370810131599059011941239519964961854218764346895512851065350105023586971349163595833789996223874555769189064206633950095528249974383115316014122836284810856925602686318192422313584668721456391664388471134672964952331755306668868346756638017800983721502887015947506193514525720206055299702558607914174089706302552720799037433893852282709930306078205141454451495613957777025567040338740402932760846447652570230619682059830132830089776847139659608069400768855683505884179242791797817022353674179408969123304724895845791374156736752578315866041871652191957786661662989875572349214638742501283510684170679184753827684979444208458750692587091046958504083120497262267843061513201875785365617756806593789312493719450559256404510712153028440850709524595579069444935967614467398036238136841876724942174547526489160410684393819818450356397849797106224808046274798943609338638002921576288507723091557690003788286566616301457889037493422413436154966494276058273811385517568354258195822760548587236752695486835372894215509957433375045319596949509902111163130823049654717698882074283311839234638863600314449545597591611008654084489704697504069971161127173288374578673878916065930756133630003927156899573004499621347498202859060389720042863611545536523681681042650189821578932251091537510720730990804684475624619071912044396771419943598006825540666548031317082586821852315837391556033282273865334588410158506584461838854197044606389604696664980786251941204902171087626736179658011109835167824699673925039451717692632488984336017223877264699225126405977996980340430008316409752915699103837368498006785472238788833626661538073150620339735367442771579632195988937437983069970853542420223158649778938682601816404273045833853086966992954053286889098529681294856777452193088981411230319684466647899595472105496371892915741565237814328899154097765329679183464887414939772061116630615430856556812301192086902859988492712537629555963692138783058365576197578327236229926510245515318894131024762549681569076375088147841387381530579010938966325734173789689689367598011224224020193237250602972155665586706803296765803446896671328262808226848681872481584533980861260750398688733406266837552644004443630640858908316924569017051201210779921716200892320612568722105886001398061958596895839206045587273754691838809197434654860071807475361982920687941325831921624527074713584605401326500591880003381025522886448282924044942946559269610831555451665888055846697744143655325038110741113654179778868015759155030987790656847876806570264717102166611097547270488478356268146036024594993910385568488988881983590250004234539081523555748624304478440254701386975120650030272869038367150198801637400126819674154649932373991047486740437363688256925866652966224022684394864582089579574357855624544000877784510062032950892280501423819215202707971216419976201120861293693478175191358717283810938718371444342713969758171141823059541262897828269510054338550139535590906705993988580928324422487281546216128829654537746308038452442312668759483583129403482162324006353426139444968406058463369687849302110963239807957144224357999201313757912946644893428704627617406213237334349577580034676328319593595998765889961106456805266695263554277557732334732844177250303760099593022031121195469973982111103469935266832238078377126232212609071298965726764051876870446079047240081231610774725625741610775744415191329947993692643464096335309682889796845412270791106667920543827271920573728939166799425198734240567911532322642565553859378054206213773258154227553497283632913700897299788934757652969864330817139677449776209636121301672277372350098557153851812838791494776555589975381975377054844212993556211783348594733532997511739943523215890912168187320048901412600498639782365939909669072563653467399368927929821192098874610313933556676561263880547889780391123111656952530167175044091657392504922811185628081152808575610319235509422408746654593460430770242759441950280811329935731030913002820652458428757934411916697789550528875600825701423326485321557076716506821000959693313302155239075101444094419863262458110421672393599983540885478746085912460583521331687873969864054477510260882604146756327039588290888682384340388662609099882526499461204496051421143113942803136766009375511055487528472787293368627373890970653943907739615632355199589576379605001223799421799954438529774908788506753032658208342977571374916084439340152351226156920681532439658445082377504564375010718938267091372257145866414538259528286203631542402699522835394330745046838537202132623382366490703618100713454735194038568525490081513327774219679704668661595981626394811034440202917177886159701073714658074487250900432938954552869573717442206708298946945214255686759924340363833954166384835222388609128404650625470620638814806024316842633386902834428741397102422248846216803243076725908286499203469768919952644927516442674155483905501774799601722987370245578794623562258517407335175374337737022620624271021437730755560453794655035280575901371219911184381632484268562301534734108082354046542567644032094064244410000440056369502529129675669383903691900018998853396471301352327999693163382913066538947917209339119221850411771524544560448004382350843691160416886668271068014462133640611270956436856957873468601529913297883792134437323350396182067339568591192044665588985132660141924213599750796896975951517420446334369995991108880375608343267716870559427982789620857205434463214647751176113689234101027548840821233275666908962343487077986792654818963138600473614395095899876838100295648686779542504671570413705243412251011438295641539965292970567427287707564059104432608944783443874481077194075404945366716987753293396719036490526049765425892761033736503054023702181262700232339695535252130504891682494591820356967540037576341682850890694251727391544881377387530800560503867029372340356494058204877132054304122131488730140478850441887649948649668136370719069557790134779896818988963427869052004297408938054920274813857813097766084422848937074759591000800017566691150983036065356614447846488861905954938642614900947624880476507444553753097985449079373461310331376449453729423803800381742497852341176580350827330130756669810524738524852531685186139356670062604554770064570468111400740150166148974509996918235571746349751787130410785058325949014622641455833526575575653049689624822920822717553346629714673521646215856090088282617181357457279022305619837301510225419068319039298114728921025746942760033268869890957567600293206852303567143456816803437629964249276979061308260466814956257728777042224530551691771006015709671371378499489135388757840915330725591162560657929120594152192822152483257230183716427292111593490122000908768288123934899471396192954476845214891273294065689611770777587684659494781777976660930755025802911035529976784672012347100902053465103917572214215317268359334606077144946603267541693097496170803385770673632400628554288243502854713943741887580320397073782576404806815334913730324294565659826785319860486198926840215312592563505189640189589621503133828932663169623188504365852156919773539784180635558796567742018236766275417508665523312028627512603626189218544162712559779758894810789282635622439667294899395425528500162968914348520898727492394334401207149887013061039293667207361546378682916822900392556050339915939997982156944192574616521873610870662115048217045045731341989699277300863133251977708847991190350025940097896497701482469856099351067862270782104031646025902802690767083626047960461203924939120477364131704332007102566443263187279328400668680347184875215024713750312356923668579981004076939975943290142305169527198675959703525068932315249271042264889800278609436971926801724950086405318367972213850882776886948112506900074264681724026907788930488457167579169119974060935416305263371230576163847180155627804068270185763485098338047539949307703185731076209065756276737005810496947456285216774036332944400098730253285029140093641921741537716406585903728811495104341078333500930094165680738610720147278987470506338721944687372483146062847435878910095864286718552644734493361047825085840166194819255823426991355109735340924074212081750641425139929002808281018100891515556686457068041603806934815420704644868837881360208124092591100970181238691888577932989262606353713087293668116141589580609738861586583141598672884942347717848567173092697225851477231742259929519470108145469348274334537224732101094791492493539306560336462304778449560197515533175679363626739037815672988179782350030206949877428293328661772516154349561208571216760680075159754369596621474658116438289192310914587756500972979823683897995751402080829912616574552583902772763666346065950239954479956562297335744128567703662112799546687498286467237154524553861791634619308451305862003022819083564288950539771504176063369055192594874189657680554365862164248253746786395750373246164520203759709819201076466758985323557181052025097601192091061220508229807786103920973337452355349742329224886700604437441343362885461087463811774967983593772577670169252217932398410764694225151641387938597804228394697643865997841331456832465190134219242139854338800149859234222811320215046076166084122070779157649564678292047831609627848441431667440514816404634419531421538036305297025160474799762122222657496048982997762037540341262248355967123381586170087181961304757069570590807031675012916292430770444557297328109094162043089741612711761508500797447414182705617102421263642703810015414168842936883390725702362864235228912830421594478829767467880600416877434961566070292555699395827266086470826564640338532507979095693294292315063476834020620030548432879458880375102549303833572082066130134120308153744395310170840101286889088149334194711379429270948562441353566785127417879490109260118602580413896118623769169541106111054766747085416018508744826475449177731445669419945272977013882272681207024348013746652379258892060265370573339586460294933075899941554982955817062791598227238626189963056274535824373209437573475537337663503725201832066296420082439375957666839714928782861312273011068934351863980098365683111220339312853149480599719174747804635931277835730724348060235127169486079088972242745076674453549338147868602195290780278655138653343171240312072779692671571849657958848684892939805739080970471422852709401998865188404536536164591542573753551428120399028623534268794920297993419035296703713680360633620153696168638719399344321989931238570126455627647384325634612411134162365942025336044215036759379502435708499601604843890781065091905944941965544883981747525792441334133286907628401150127970985925650399288451928582333414845812544367648119323057079357351451582901634697274275535569343930827983152787560997161355696949299229026124819657930407907798243513397804054844319199160587183871815184055497331890199426684601708771236209219203070362542142277316938783803557996805576970427070980061332304735530349981215311323173702217947807209117096200936249857668571097353192501653784858293787626680746210810566058745933951137428152638381510497051272934510315631107582008121684329947336094099152987850798603019924419335087695101554124855288651402967747685033265829419514659085941479363671968456964359502518723390199668018832269026173442291965411430828389164087712720225433503832596968939663304264728543193945148855506819137616389250690732649199617568873168629327451919930328926379836689774707120449573274592987680833724741575934400683303019266676633808886941997402995444157909912339473521630132656920345636864309322884359926042439834932749139834174354856042663188049072384030866448906332796302783348478565264649296976759707031386129623079397765316099085826325324926549096396011226019264816339738054162940845065641480433638912181132167028026156978891755597858332132136148415574425244784832282130737770709822726579821985239409390266819381186446056437607679076235937840613952571114758410278588140950193975466421026889499579630447374409626348550902674247003714812777768434422213313201392380411688127491432817228349590234510253601247168202890205269937016726986787441206654020781746393414489349920206816042839350873407751631870072734794315590775437415586957850450797711868667531518117506450891926461175619585296239237658614831190100807757575394269987509359953965097341316601881954254232478055849888590573290888946527665730916811971539118707350114343460658449949059157763764098045968182065392404982661475284712788365200503415168527209297630374782859660995832957002192808809284854444157035302814322620595555105982110911030586133365430548648224498327036373541647041350074874610720347439463224101171761455462059992474894424014452961034418170982747688292487159324911056718277178002003387124487527290811446351505133706048138235890693407938049536608602129625746119100766136740280283520344875251520026062193530843766672584350228925073202676102835341123648430651094292602608051005015204514604260262446778159713854923260280507640019662639074984121220804267639779028070678095506861153297273410199173857739023063657152919079077674661182538578686483231274180641847157688438330826675048045330130304951976544133435391202225030123958739371384498173783007096349719072449566645001276270632756226449445185630320873026219615474132633300882076531995698903974516972590783147974968215162659127647523077269980641684671019419999413990019764163673289488615295932421342497960376555011613486779307081484509559111054000566177477206333569147336128040418903405230102160678713266507730788231249460744770133158262636387344483132908711821676438539236731674588582793655693382172627471527990676078313435539162051095476500071795691374925571998278580121288249682948108755474034172981537438829935791061388529218489225250401180697383589610466035474202772346289908487926755209506080436504706733814613595316383220222742368230655536599435358782058599763257507573432686507710123006721639313386706685216525269614178856826514139678015578912663323777135299197025436002832463589169422115816207050634743317271362311867485521289674095740562203540435940104116417459586581949887745032036810698457223642490788818137067435764672012678554418583063279818813253451013756631932309556214188732209381444602669546473972499125640388435874303068714084384113631222279677611433279308100043104962146050241117051526356843777428283695257424566382824540621179780655525960002836609776231166078447886866437790720205704373809001079149494697709731210469927138361994848378806199621894856862722987114742644315655611692830498229523926685419374542796762044836788011833554528117662188511823734762687543302038497083365523084747449481539888278112075478830492677029484973824231653275470934246875535342742818491461372298671383505883533903940122395557768185373234313394654344943949273640349806553786701430329789351900033436414230988157315318529359318920610435909237416099639029474028980283395266997089475243271019918446500024734474309559266999696706576335260578695789796686450887883086724038483719023477409974765657018276957636577960370574710349562290933447220138059651239520906317093827264448446227722055158882381398477200041125444824814859665955315936250464600347616199294575395007504839719693728055547497014457884231651894854405870926477575219625802753077805592473154893032636231922893090243378062151866762009579809189593750247319725708963899821858371684793367628259246876618589449622770413010141003986221937253623670621234171004242580970863469182033128258522010134504781301431628573083620904256197643124486370170048046742836481664535247533791609154323146938998693201037268056654375840776508236497717338208815044532338214752329661891408590818339475446258068068104064696997904854395517114349925069526477110595812298516559066032136589134970063913113080580164404396831713600266777486374467426712734348013871182493873058186648820881274960609020607717235460097472502505230917586142814672940554947776324014621314938902659302782053620792178628547393628251393347924509788292242981276805554964645759449528076281031823049436597390378900349121874162907171087090904866777300299910252259704564992498728197541088142774451048603074752625267462088364216930316116521255355699753167681898208668498589021275682637851554330461840524390122066092380254863093502104148774115992834637979488858583685083348711486724410739795545636831757770720829016066533698564859402554809537769872093491516507902274565379931138458119625913461951349627978210835899790612960847517064526754576598577431753967305389191281446032175259190954200809042010821432890914321046848541236859532000697478428981532005587047242018230364272046624844408790645458519936417921405276365449362868843785540982584056241212946956601403211101509092415767284734623861513621904809822605338405139347894183945437996107103424057788733938573887332349089225409613794527496834302245293287238991342969247198892751954219317762848128513381648727040750802880659846630523229365381111274127034676805510939477737146763827231409284469314756632617364706855152421580099878578658846245291183303200551204208439954176116743437052268936301034766471662264262394769721252749228877189800525831638190609574488674217135972312586222614755127394774998779097774597431790368580598248401641863082808474358554584966545349076817660683068477708644331610993142559546846842836978918715120852956196603094248202695447173725197289498059293058432467584203357332845494799663612888440569102367405516497937571421846465962115737928224145171317479799393850929198288892333872853570954296212231137974716857138839222813587446369899037997944227630069766313180722426161793992864024306296012357996479519512382988430958680511558934193719131666119337230344180458873365566610888953571496997368893052300262995041069610716418214319783890375339147075627367819991613086842392567602233827520693172608662655868223700372010032581027323331634564489528571101274495901260560260033104884223231007067437862193879224315473779751530310665940643454886912621287842928188017807674917811400833263511077331685420569628822109952402525762662892910227006887180248141066725036144127111457562953168485902416406583158748095446987179531019115732205481599629507880119769647653623951243836706087088135181519724119632410387391620129755186768425890861190376163244514874293646958898542632997566834561135152456654604614729919877503290448472928046750433161245932613780638014030057124047155458144834227257729739124541705812816331469962510060006581159070636210690716020292332295672995731990660873379424829711788727882560069632695416610923324544981865458548467809120624349329345324789408527911656126282322326285858098744484434900682094886206251896098929823747580382816398972870840227715680190484069697873721635942852988868816149299834416791596490149545805279061009109146634500601076157962501221406462268380667340215369575753917439634530180449273752920823547429009887985424433266869643015673021529482726568170905539371718959901268929564059252298862149343789199360101522852237979195572605199954097410954053206936529487782323316929271837184155851511330746643621421050942687184366117254731093323111321433597578215848479890623624051032016053873284742614035207830717207976130793546781060384411826643222738268337964380994140766027181946990804089466700647385126754073954242316528197307528761585978254403029115347435564634190943146582092761341996055320302386632713421043847939980498571023183181776759341783005223386131386197720973510656868987026050327613307645626892527860396241557364787918356504992506906158574441117074515371643090031826366174967897508313235989485225274219809339990093033085819913936712888189420715797564136819568725300416151688813010395729096420827681478253941237082484317238478286969270839423987763554519220489659494383437875617858182328845448825319013543241141133194315150025568376900113500479047581104197450672793454843328207569528552342856570643844402349325725041530201533228286839670658945114187389759524142423396317817679305728618838386222473410941777142813887686152422708327838041592058208008979301587879730924657399131646393712179197864760752646572043023335056277053892401588446721042376151654305962646593656135743381067519129711550738665889403158201003306400455948344277935520265904587209735569839974116176356386512325762863652652593221935818177176930016817122247256998271689348148305049998606970340945873326124670720193721861832138337767938851049824956724311840738314406738656937776137126970696920155113660277058372446078610390335235166817664609738086387713437735091229391303773109948846530035480874376712541705574623770421141705089570146172692606327263170522149129120511201249555093081533613605188068825339773724159297949998988623720987458667666043661207756319801578825212654447336529309788471540339299768438402548836400744567448269428357554368141269388076686899436680012276935328663669311664263505792595238499358730389799777062835348175418597066608256876767687675364179807748470773918835276304646814459845201105936762965203828535278172783378581664195630127363525996941009786909218718322656522525141739132988700109887072883352503279868400466801827875683011727109527909653972558723720639611753872001708120407228731229877323579041397362789923706945979460318693886057393577721233737159406846072205322830523814566003433220302096092147530594571478802259930521713465093826912619516826389396349004753041582576286662020281263027189405407031016860795571836731456518132408376816592452104774490180652200332126015237638736801418278630768899853602051856058072033911253975513497190817871207783666511286929693286671174937967316090170076641791287207013155300315849977819138137106646362793607190646482850269159319038698148552173020398429720552965338666316930516857101372906960822455493169674038536601688041973997116606815771958506799641726377535440794790687961977838906088368293856712747742660184280063886134182876787464038120940179834033370700371706475096761783408626555450754870913588667661995349603619448653805065165160104772136676777234614276456334052813379089064675102518627002082844791048746734385447371525680240376638906861204908337447719348690548681398084698870196801138202408690975321733549133789004823873056819317868129288630904959301861489514222137116210357096387484903529663314856773398857940750163506775909791294644310195559121610066679849422711592918691367863251498911415107204528318324690835948644999846072395425782639799547730424689652694033469931293202260291272411452608369788902552844263639775776502835574051562625486153183652873886724407256027798188129101535214451476966289818860018723005472581120188116916762540396289456353050819180184831402028928784562763947937126293054946346125853337879812247053621355844330269405271822857830825690196181482909780351549832644560270660213710917484809032144899696930852520128892783928325134740361625712728240157886589863912306556569987515319098177841061777638037196207704400296496081168702455397690553918801672768154123452677313670511556117219497979925515285804250003205552419604353460054104201056773083495265707534093056901216424429481994831191036858751309461272325966779687058203150358178466301489616927965488637371040124499492681190452799139490564183140489014001081437779656336384919191567380849276291018595728692517797207845132377852074143422582052938018265928543835426659056175786624143343689719945449838649929065759599144566481705672978518843795449407940557165748168622567166130491482968798777664325993365271514673002926179273587596802049826742770545482377970279539714358084767064771347793523748590433637541257928140111470423856340202675016655731855415241183795214808075657810237550736956697681183959799023213040406764485713074990434589102497910693761864188497905819655569771674639404532583593668989115018466086837628326006138650808733607064151843519630750211665773973961153515862193072519763924528468204770443387871217808612151590231586339587199198603980274477432161414563490049824294777093710506017985975470634088641353626453858778627781785531828800316965414824863096344975513860045333659551695332260199880158683194534817772733385162543176974689052080684045462244334832979363128190048405178790960145747182453791933308512112785891104442170793724973274689264875854550336099045691680988528065916355727111087702732702250303045172654552053334913758226972093218184319052545979937274710018764691557216450166830007927049203094509217328836909332343931700602455571514513020933450816689643209459295983888197979581129610593635588366271438150664358390605670538843978782269594460584863441322845822836984414429580738983259615254505900644627218317252074018327949320843962718195370157973159282827326198916220742309770185176923820900275764852991615772719162674819136624236162433888065934328731091957806401113711834892424464252143450357848592967968832475458898405335949041513197839004901637862975788535585531415727631319801851032166135370974812898768482565644414813636127944117393967518037911373862500103679468007001391598223610249423102359468288609947747723171488457538245727081147225152373700126683180451396432992970047511714593912343824530245328167026903658220576344896194106281298962922117935914989514995618378203184264437094511790662576556879110999631813833824536430597419779968689259799369447968138465558629824841524345672937794993959153156206795488621597320480435997524602112776427979223642932991393608302205906755909832553326706421540844485874202287998214929540834131872174204679362483901099649869586559820975333598490096776282989339881933193329489734400357326165088343650431931558103331003373760303905752639009914404038386577918789490825470458220232151611699494189113350872639882410582504095672822228224589693400247237065427075594267600046410347214262326921004322568714312903734653782541180925205615743814514649166824990079764099161213769780516005449196885176591553132926654602400404949642711552184512943458009572300901532099015605652122263929104249118614287177762838482081858338414702653231183101924875480450737497789730837507283997792436607814100157303842421668299351434084856480671508360857694125847854575796310574524013232199552565470994006623962215449543528930384232865281241117488492165034544649922368050615813167354764172789867595143644343867217240587824793398997932846682207640234505378199920957590329281828546206174290645453873076627806828052684173489914356915961090162724498899125269804698182684042996058453560418209615297472948531219607716660661308031835246647914421400023605632397306302349281008203290481560736869069993751128713821814794366343766415267120727602719039099890440901005040771732423733840974319887322388715954005952105925254053296471734760941078595301207644226345575377240345186722244267817193852196520175126770740711674006984754738602655800139320362738348454201874581114439801258879732473083814008798552803206607404706451365028397887239129226344535780362884600174433537735055223330564418411514419099949483062602170638841560499934489824380446619566114808446935308499323023347236246454536139386729017543390044659121518104084526854542423356532508712818592866667822384267414101997801282158696073932742484899524879231752068145989615487657053057018564262235714719405146282067646419674846260056357267772187180488378056375903559973779399778802669578229488729392712806780730027827272190977634950776256591476426337770279119541746601514838759795662488196498223071543455330382953348779534271333669353235845785210280266749282116806281499263204353046339378897502681293489469318741025694627204122846360616408541180272935428224370970502681819761577750531347096616681407551435840201914506306914865174420510496923141995906780577458070144383560838856071223388846552837687768349266782704722089986134227162879798756252888048319130484661073564273855943833946610717776882743252360123477999168386964822605092678415596864691182082841660925335019024715883335696458673805152348380588428887632162246154112417484241747733810394960074838413768520278139928864198412190723323912288685739524810185856855531305242054207791988240968206400537015584866579923840086799910358188717642603302062553898483700690922157327784699353296715121210856606577445008602828395548480401113745780618554078963998854887145038400310079381192040892413391650959074332099657839636334347313799209109774566503699753636761393126007422810738667962389470041040890921565390378633142553256089292253729756916699463035634928219922474729275028221523623767149260898574347428113195381298281125985559559901244539013712129356124433030724679774851491171306833838372884657359569528955429453105627774539969640608236003344007551950670238451147585257685236932297021657152953403689852037227229020548785090008018988892712956156319805601683397258786636931725851061184105158704875641585188430688820755925866111532850301093846627250695623621968556108621722684762374911720573671332798619306854883320222207723919238851222171517876239946999816938656864340879513722249334901836870697279391194191727575732746754819891305458637104650409756165913077261559669261408945698945358222691289288511909757097552857237077092066578575003100521814613228400382286864018014714718516706542698815160485589159490449212740210937196633184585618989249824525073054677583357730735931813096254198923259842078404152180685252745288900042118754154204048602464026935891497384703189482780416419218650625538638243934876573943762212216565297153200694573644623952705773104709409849347078016047148509214448452574907089920687538301199438399093341339204188591203496398163656992064857261650284319080787618247490816002950844125908906442182151245546715329134491118150037632355475128508147065397975478884992967342751253672571665680654114040300413634386341600904149120561062575579528028119734858154215759386619237649136179922492149089138883067274864805163767569713442990968174796868615157830867359003781652740469202622354314032235431860113931070846522601553804648777234993936019053782849198153999558841043203510348032213855818707837861206403251676825308725874579741106756652331889011199658003238634555954629456799590673709468180245712990549350611453680953748969849614916676123633722998665287153528683276356249054769002074956732509794158515977524398887388646107514449303815693955286436499660985600991720920482178400882669231793169526432663043453739163036947777551898870419213884004374292675208713854009655643438294120139569688568900441928197381271097348130494998854116853390660345878064625642597538063224694866428010219645902753225285766568353230166567715655386252785425096881272151011330528417156711050839503916640759091624917529056507793131414030332267548835729820571968860476652217983063435997771951371701812097191327845342491671575372631090864145937857764776190101298486582341579666166345283191036861581734995841241983727779679755736699988793737324156507974970195172016413784939329003724650816035389148624751559336139912558682698696842050063195327466957668083291077740688372897091044328460574627645477155114658338047883889700734476333688644954319949797686369485184804127423658888345184009627326301214050156009771964912746190119485125347141868142777531709232504932052352106159111394028729905496750283507694096334226026912514252680650269955087595615223886028558357003696257145182914220511315297797819046502841937148792221116711785584566732855353583589304858829495158403703469369634956587842528386113643008131457366926348354366388937678785393016338219285144386901336594662813999647014483614886376372347286284963427976338089827135758065958186431473226141937788125580793956949422174106976885993968260184357081112363288993293231349690941461632475014402926439330429317955911211615928544564932355723268003530464531786537695574954768675520907403286783209247247291788677100859951693818871431455781284472041927364547080091604159807031772184371193893362218298267612511130226886894284944841103825792324934403822645026915978554159081311114493814333693749905211808987539471035843238348818373084549823360213823254678908766182559130660793903841427870489982979623293574657086706447814554126187183571429564846876394804340949665447136151471249046926786198921701406909611612196713299848954836889765760547887560897344652106085372039763283121627603637945490674106239006324091027285278850425187711163674711513020397583360752264053087777268039783575319804668331275200961035616226906437800872952679756684403808202600355479341625238126827587486817281090241119112830727459739403100249887931285652930561310679810220721879976472629075037907743088558052824194420265989232599960609644150166748918586713308633075236280170098374380458359381569271433171338851005791928648378688129436597893100224487178677937857189451358837090134138503882203971598684075149715149159544109894701234329336293659068430091631571360248737740153376708380136914912111265559786978141573923659979863100592251168863904146321118356390967522331727777791189814196841436094661598076414595146042218327264410591819893796573912936001431079809361401752267527880048809724391583740699213396497087252484118058284010673060552576173911489260365354561890408309339873730541465524367366952155310338604016119078439080861602693762618838589560535776050451463399990054052461739453630406509180450437542632531972324662221543219325960813771348447799900157438362251463181546561325077345315071688412570857065245789999389654165174491319099616830482498171722231917885966111101575853882345639751930187737547213028832187686489770653052771914892872633769687565339166156056122442039387559338427116786312833407754525437466778153996921103403371328105335158800496751502709427747307135677450338302769295079413596184836395534959344308326949928270750550961237566311387022632898509742169223461908541506479342378978243428767530869780672299862702358069733684741688390775806275301257224372142022979994604237321779150062840410541662985742472989744684633024698456629438462154831071095330718800831509876706936844873156512977478434318066223244500481870036403612658892613737079012236168001657019982303252436452823662914658909710763334763046773500690083640001261383588549735937019568421340762570250065545289015483927250432550884790916342600787573996039944534910114216978205840595863508467907813682279282550745267742508175924445455314461968116173815330997267395918566380346810925695593721650340338733577762697160116358527115556141260498660188509075270473705825411374376678979546740694737062132889180814916134625809461496692612826917407409590909245981755688927543086438343196024723945020245906297529809923581805486225788523225480889965753869457714345762506011092603252408070051165244872318008156342693613341624594450945570133907283647225349137737479519025102815837687437528989946140507759812330519333699751454802972648443510238936572211641429687648775320740870096491222648882235282726953931526114696362660140165836593391574174793186539150336481050008462144168174834652243372093292171061317612348032215169096814532016165621938714279513148483643880294047333610684535612019592129874419331289388553290538387272714664030369389203214357894064701654961529985936417158541469671508781497695834040986759690473891002585979645637297659311017296430935566541807853915317252713997438707777338709446846440724089002507745479454374980123799592092891703182274435525921738030605878629491809053904173935902178360442427682136434227448737664364658964393717831812350774448205405405498013935799145266005427382808253311007115148650194376098541757359318480318146874126487830911197508145268260296184531232435724698869081877949901589959528040933616854165972332393954390664497977853934224576440321614929561885723644146776312443712353652064815303448171327158797741420672601763597887574300593018882117137314442611937486650698131344475358842234215157314702981121164436735223112223728768925871380955540684041769856068727342409574944050073944394000963518177755271718312881516683708644039617596386493401766503095536958299708706296695243880634235151750771024299943314401928091515928952311407821276012969210546478645846124293311045358712458650390769735841302150399759714860993789662834168868252935762309364952183928548506851658564960958252538109930429109298774586409776698305676152274277015422410710859569985715963844101724088410636043076986675980470862780647576187442977762925050585112870368119282281969428912528508499882098874943159676952037403442623846023447898083745334068371669498578650427161794130947065970311013956092593790410790881816723531623971281799948290784279054115262612505054256440826045057788496212111854537864183947740236335475058261941542204340654537382809502280067254812069676098089188328450271804346175254196158697839010811009748493527586640806011764923588471125797691297358396545389469591805772392428399015937728198998017641734826516982086102775874269028687067343734695214717752129358129086753516806388770881158168153991292400459891261202843824583839698616124496771969303705884070413129982944127107577421617743253152255532926991817200684459138997436968235020432638845892433796461339176548049932274485370351055488765537280911569935113520692148974141822092454331452564689749196627781437803984249618543269469495054300481578641526271147471675955207745699913602951455461139423834055005938389394369769769003605384981245291626273556696918095003158073664162506058302454558227573361133298325405321501847137543968452079849388539461683449348382412267919531850133171177699118421792902207962139600044320135701453568355656467493272823569400917705177531576660946229924581939173703979605876125255898823660524404656344309786189264431575366458956437460751487479408804894915531226441135216312248221149078462073340425741143027387179702200011442374817662546679562703799093225680695383610140865587125626893805018853247765816742252472025794009277358790500322839992466726154069632300778681623775508314300051474934735829493958301482514709313380427055468033946493834218044230848507027632228758435711240558375707231280650041939375500117809864675289748430146594077367134409853402178124517780862551651679965327325455788696472540820916267168251677297390668590586571991463009069567428267711170931940855863417731244767936054388944545567561607587366895165358824657391341552258886860017867839837652779070474331149336636157343249632488594060785668119108958313481257960366054910360402892777286563176908562167948230986762585083269035193247988976834436021540795396828546688444440336730567908693248231312182299438957272874565333844574550870885166925585057480243050410422747585857067136416466168029877003326158024599476381045360089908581915928550543007873629019180712201519458178613228781708892886548613278530427595915682202247186826683323885311775083726370042188765825032773310847493984447160119890850708687554594129349052130095202879172105480417465863014319364431617534129054901398658690173937966879932356184331697268398637757028861832535919332126790525622954666460222417310873727227640192639317055911162390204427434154296353206766833994728295296024168931967810428128182593561160347299653395992428150025910580971592886262023235309191430277663706923375489792961529286843636931836503107320641336476018409577592864993290957692009926695331602531253217193823800950784978522223936338232592534637246438722180916498575588068603804430632502203623546934245520126289829998036223768962518143049983186353536471067809637285336424455374369552491630655270084861067010832468141652892176899780940926838218450548891317111178633016567481762131957265070385812937893775619017496534512954124654187937331565570804240595246228893938425516786290331783035520900484552943746265893653542368327340188393380510043915052231416182269914093135904504387504723454434882567263467367785236393534666519367720033390201834248007053143210287076614818073462814752119206462253279083299472511330527596134308755955095471353292951303331431306566614876120114139322175100441189496593006540165052819451443249610735851235624073303326776007053687424394214855373418502644817208300024503317682180728141287632512355925016674729515719604262640709546577255624193813195678742709308842999837837041089122559297582307354189006441332842728849663814838179888244603935071529828489875774356603861221015854114121284589701869193324577698249240159782733541035471053279988324354444199885379819475929154675511562589340209024533877170126463454290518007766775852733767579254836121533021016856934053115339042313819378903882416334372169402611859138563129880286929271956029710095570286449318512779437957353417414222438436488372678705651081776252885373569285196546784979967691627462284880033792817846508382114856887285199872097856125863470187701153351700756284260052608991239002326926196328830819639160087079079213031021164876285258236687475434515893597435868734653067106750934278323276262793137294509213227983026943915378016282509405658906862207129695027574124295565507149367394297632518445406884436689260418837183952764818986337876098707102540067794182620460459105174385319749404459588354431473690355887734727414133691920178152525047537173771736358445821859549578168282900338783904077097556658842768520241454781156313408874779251646204038329088279453528860032365300666373236493043142593230819896268961602093888620101843642231181376511360487892060438810790946201798952586218243847381095331078210166230998866604481343237035259458069866563315319763630434311917884997405471451886528021322110120468342008541671025314316270457261766453421297362228098107863704609740779242184012054643250616683013813151912905875052785717747352984397183336820147908465505901102463163704078680850158962742218943823036474046466763824663313414608076015874153648718535390036882006689732677683092688934598411177370877052842977392293941234135923451847522438976999721255929463312391976295473145765627277563156101387112680847682020139793821168585615899464337612081755427098959411640439412085149273874565866529689749721633894972061207916003877560383066702688712852362871186413541012777551753290325689768316343909900012647981885572751596883625501025596021344464614000036587475097812361463242991118429097912439218688046429565234006800066548184287385342811894467208730901093762248070570290483545672131256673039680783422585004660338271963385153892934968709693608192357195655126014849542301176389226106278082477800215157380850388644548109490040894602543167989728422662469403858331576217015499806008380334432507361994144714379292859972509172332759418232200323222278941357294543580037832099250374435153398547992805991691628611339335652447327195531029263339940814047154237107128104082162902257277948771962971084720415484525104513692037688502778055361023344513348049840440955097492133799248045452639995270102516397459518193076565249099851537186706233931599121327184314761591071491674963338747660553536466589437286456752938308202569203556685646295333700265105138660006849854167507014476886464897557184422188344128901222823300699061383669417761912573135347870181078395402424914912739419337287364964158222320490458016378572066022186837575304596387040219532060916540250527698727081471170601825385988815422956567930174978581717292699785787032839330892321056934134319628459603512264281999662604886725132036415067429153508081132822472924270587461796953885532874995200004682251163431791975630690032258237500042505666504773414665280325359231479879617764920529827634548848291941369796173231629136307668626466287290869967433832325125758360574305864968759224566183618443941830229937374583878061882610487865551849477409100052790265862741549235854807785365439856929022492551393749111794043370827443911519685710725299515283758075463957764174087696675730090059760335875042243849081161630184619601019874210563426383210306682401638156258995404329985332330826213510591226374891336224974603014696185403349836319908548977122108628549580791053940611911624743195114638520150446786139549456342118356535807273842460848068830470298938229841544299463632702070095054321147181113792606383437397712732924873291751637557487865162580080227323350558855998446509133321760198314178766746840380517317541335277318830128368465587328033351875870555892708428041285046641028098703231940858817014870227826294629434344195980997600591054128522276610351138045925236250596490288926635480497126994107579788419842827863507700083325279507095848532752496804441895870040399258589846122931965799635713287920581850576256539132283695159712520556453191649094354151890715204893244955111522718209860704627385366049113908302650796621666232370057650456390450841532442324844258810817936212695914907072896990846246780678456761267251232543804372694528640783720384877557057410112381908724181052733954237952260332444448687770584202350186858341466078891927144578564102860415925263882670353638021616469555811789795368346481731813833508128702943049004786615446525193882333598607151182111678152451131445161473878903748232816376260663115377249620482698538902087376631556230099971874941735734295846121861430494187497703940289845855183866023465487685948442118063435825450723930640029146285154280681402475861940584548781007015900498492364434170355079685840332395342965029016141250150852839802782459198696830583612579004434816058602526938007685385882236674441002613138183264060688768850653066610373147795058848249832093754874328002918322833321407196327752297670406929576858850653331787218352876216599761780042910601542710824635079041402412099566451419162252191009782492388053372168034650757955843732806249638513795227563564905554933953821830094532817724179995362631107158658060464723064646790295952629164649861904825663611606503344246265586935132930945017149295815598348527129121117644255643462878582909186226553879050238845918520640522265065297513121209923837290578602416517032094857090009302811991438242682432761297614022319959629403967156080432631113982023275321592562132262586294794691864961177674966449669355010283243385463218451037287723967670052263967213051485053980360488013688034406713086551759248948166899674584346472662306181263067076443271101800150828376030348854197640632919968945614194742782004742207432322355979218870610123877631600952685399257390567377250032140133724099008397273572139751605003182335976596528851029237806211115461094146139690930585451929569023088744503425449287812882226730822495325309264253573791448692821387486929664103314321281223473121818440403651291098012446082693864942681919914528801470168609698895178013234322232006903859355847859757424082535784187397722303141380332991639873564311719155490982675070542419921998864367062879154767048235962250178591165281992714509071653693167110900600348028926025161653261406049875277541448613947423012415329694236236498324144273851559663199932426997918413559919907500141950622344844655720408404735612544801702675081238784937283340607935526986919426414538962128069659142311151711865879117206978588089162069208922801642135898121177041759492657283714294231897974164697155907797609874391100639276445361236364720826346786644621565611477670524839033481261407020527625052984622953693737158631702033788033205128689537348671720537563995187640594280224926399965660874234958185068724506712723642898934974791422119603032115316176479541022623782415898903824140263032235855908648681523742207155634178372208563974338551026754748224646424198468277882768131948288716213567000199319192957705152706227895588785851761977315737944777866958708930682790987350224059274064796101981509199828110806823842807838896205766891191126477262305271498707973359784696272572753211806868622767438088672453555542939247604169574143657744263817447306818167975884520360525055089115786522498016522614657465949861199649698834264071478373785120413572246526446043617382434277156948284886871454133724211263971386938643582280271443224206301444542350078736914096122570325900760277200363974371491989171230783577042343976229400677365631435364912170098284661228166566326538969183048814365208602521601160247314224564980134018760239090236292421581527430388468590983682472374520887419516469462501155566106951262368734839876766268112074208664998885151221425313714784272455626436941380512593702775940981650691392743453899664714453994535283261925209795052933948410068939635247645610413589048360613765512120710296814492206801086424435064281525869506460741722294542920911724567310067202975297923880076104077416878062468461473890275272107700285412950489057259679475840775748346104799060500085410244229976269582976124864445578498072009264779853697083467256626941772527106460933856101663349768194553723904637291535914875137983937771127123315170318429463087886687258802793618579999101929264693608893030672346748099556111758607220745120468448658763805820794608808385102765232541188292460278345903546221207261401636995287092585071417970539137830712356675505536455241060128971371319541096770629759041787935531192652872874987398521901200891130733774207400343500678217129111244244735949753092058450653258994247135117884377572873730624827631054407877575756970079265633125358241368496456453648895389683813335522217896780753688851144275208187597021923994672654909111572020273904916555797049396587792036667877768669014821059965274141007423869716283191795001183990012100400286381518475668349436874981685384720428729418057216440921854776858210036475156601661412597158596004057679047848781376156715626002878427499817607529998108478171315050929195319771978533092447890169857039677384870745246189349623442485868278436702693808259910590869793408593683706008136186886301272254776542390773604967456187158394428424215005847603282454208890482687277146602774979667021021094677359773417431843989609560394523015774507599537199310022694927248742888952553806249723818010177133671172113092271728653925556759756917464246647911185107538582294072444227420246191950207453296089767472186986437141927326233377576344748741434424257384215511551007623192132948502212585825157998953317114109565288096267507759969704015152541785402131754640460597199398197193522176396278798218023009779543664965179345575009862833468362533684341990209254967552251862169630649404316603563015782434336441076048934855647905487592584284110648392098093626206196490342673486114357518164533938480120987851454144482856277759524233418783209767974650432321422108082040235044978429836055933721558038933068980573136041568890984304427794801837370611019746350962671559859658824195106463839284141187976920932098565737469906392629351116747563860951851931082119410245781563841595717330852169596460782182712524127348206736614749165836521025458868619169398254549231269165330422929901800647458165526715539850677009225813803254469437593092499875363149191968723412596674318836120662292563000393850088082396062979638481870740547634444642175017533466073408624399450463378817653918275007226740827915168080299623653732012552670322884761212327485443417340692574614039896341351980433958863192282460224938709840402515403599580327258545969876790990351290514252851129813712166844395382682078128037530780856913503430362727612148820798549728467282078828240156135971132685814488006755657864583131845043898295762599366533540903166463773581668524100747427595568636584472042397240977435672490104994435485892594967619065614736465355329268162347462111984695321059159778503243928200600748657395336013035121147904302856879858414933737618004465188944032285041503294160018125637293018518412530850457886783552877537668601683721445049157381407424622827127014037981224177297861633661690368170245656560631068266259969177007347578314597067298684745898272177874228682287137383315230096363397021340177174763765541557502735520157803230899864038291352650152685018742806695134626976581496635170827069389639206845344726122317366521858008361958323297650315326105689638376711927479097022125025362957305816016154034602867711105552845125111029157890487870490050994100848987681859246891600855669139227944180328655329441659604034075034904711804139841565849781023478199119414226567769047896447831792967857826148390253180296238541434566394170624803114098279599211651616884140123753802942444066919315150493095871738959384099737397334093717358970691505768844974095550602567421145322755542152391975569184017957434392037630776646743842884728562631698978924647682865820971066663193582823811780227854614525249469841236554556657816063373222858425367960535716056417094824811498703356576005872122345806721497109232971682834836551293329580077562746947808518475173352930523654614435258835062099506805339567974333908534328981940066951151503088315770448563080612676853198597385543952564044973951563396096633808269209499946747841156588857401185750832312616790081249933431794715880490084337913795341811327359422894084724543851328837534013990051305466876185821363290196892059523065816250479662398372522916332510512541659022730666295775623150814753730373569862100470106408541253011533836865298200904699637701637933519161796216604691711017913614675755142164093052829740289554768283014972829383511195230451955425739661417347037796108324224416974467525625998156633756416241086726371319884138992989019655318772498694107806614267778705464902436602894271270307301892059074468691626261217862014406337940095480592699474634236480655091572626717023276155342993359690717402540087988130218233911183896718304593153974352120557245812989758281375580793348240477164853472705099277398154421963287717308619951613005309092907577829539074660675637559553343083410325738305413965242906738708979633717042240052832247395697967886213517756984695874226755734248425685938848885303698272305129488149044880425881131055108805373610115348020986227661779554239268514988715306007844037947028268491543525769887974840903786739195749208979848205082064890101727983055139459384655470128611557982121654211092911878519335908386459571548147235036002816851078578818013205735107839832614054303379387929706447115722965931706563927519052217586054293439473728790262177126265865862417984438559764533436320678907707079396274241081088871199235822141908312381325140445204763276320741657840516189155660532566205380554682632435652528584273632094419779897074963876962940674735115871056650871124145405672790648038667466761321014174059280987967419077035459532074864973003595531538220992199302510705983945469850288778459549514614157544534909125450780926991080547063808323532342304069995883499768302866415246898852097078556372467983868813828374355918410348341322789810612870713243137384013437360679886291943979251658374254918498074453684140130893377574972061533959435243205073991766642081189605618558752017872468746524994835433251498981356385033119610588441901096147953170661728398447240483795786605050537631894712577802988402781271116383367205973753154280837281607897599993018421089409159193391842366730781411792458535455913526331036852394353857120913111088903969676538730454894338871588720628947656997531718305808914236457489109007500189017693154708457530151864817914590916292343210524550406869246417944930918303162952952256904058968855758137253000249554212159860886783844921348854521881707865348933462288043126825133416692701665244865328238219161808787951978406377894198884059813542712755528036893230952282391866511767936151533402715633141585857045635868462494223849737569972008014337754037644303427995263050328969195623723728789438779784794158989958304155644574548948017174630147380379864324281935540935632911172657279564770113926788688014310675361458869122511563442847701528715270165955110686596706996767232683856640778779100741474071319108654704312239254976908539963661880470035251924482909263950721110504911733521718962746161318211190563408952990163170254060130031939400167487947008494924148288838763777956618996102831414488023258009927957602420441218626434952787815487516862461888351242404334557585753667972437789823412278133222089749377205439572823199137226918520371385835402250437437622745909557046853431670946386061022319857433510237130834162544989002140104477432299915519811796107997201411384263052375964104924614186522949207908806715827114038662147091758794842148593223452337002495178878621144090424241354592090773780099065477890171918905705851938986851065131086557403908621252225585050046702019068148958624685107500709077574139100828929660774962528635055434815402464931903469462191267941479194537300396493957260889179189635215890419429961779188059254323316723917248088778357752687433818962702397190569513963080867354559692898227275071342815010991991464081315678741347404110831714943680284941213523147278513018528181697494531403504292843444649245996703580084654389295384429211274293072816281998211972830821164775417029761569354278523350450155632907702924191619257834790067395622402926574153026461890311337061077121111850991414601069239089335546610052879974868858970039073309239293472849578009969848107633700683213932580916166568401122868538812682339296156747759178188691385996978268445382020934593624810453395323865955443462726532107538988068330626444259844488684350855173147106238785993946487567734108540739719966289103810441029533280499738804945401144745769089452730458076641662898559509827305124945262739037668599332536591365448053948726067049640001037327421930023856186069903385636669537001158159994990382985136221232548453032989705134543606879651694810357054453211361734116578520911906840796337998039514077601435463551717097520189651095130498206461062014785124088998789311479874579353773045925768374398762497096517486957821868377693186841150555983619443005850848392451600207175751044412530883692486572347027887083488036150891685312767817306656500575520104152497019343954127659652436630800176576830559076952462834139318766398578047689809333903068191570931254552370415694255488403958563547658176262261229181526987500204709518130838129158792991718807880886493807658323400985354177394702785154806840515862344766048860329959447875440875925891574347035620223901112823687837531022888056040507020748759303109050436174867005512296618670343160085673608453034115619423059274280438086849179208031017767232677644437464466627833153771708183933976090927115389421326243119594544355845892459700150098387918488406049855916719736260363056201854398699763737139653809254101214955897513459176366201638399292638807123030850140038614915130689468792080676807405562641996834388738597121768122815479870095845502195235796690620060927683555188870126675877286118658352473008533996217772401226492377289252569699848941221178332264351593730135246721640970655224619420627894097788278285215551249813497274373316789934141449213872490538480746545156958889837894265585184111589177828058929014951662359708429163039814298125695131118500677877968167028674677620216011191159967538312369789119500705564825609910413861806512205907174458494164033238378650064831997809213550607155268225934165342158734412152606824074138706940583710640286257688647940709386172661998316624813523986919168131960259371972587666431883196608036982541344464856313556752763060018220122016968058012617719063786315713210880885248252900458893953179001899149687347391517823348643418667193811325490722078219260891552335718228998268077343239412311669295239620639242610987026184379515533574636222096242584424072842713300152608947802360342732185737025956946456971846812342108225131283006461112703613337064649631836522887656529488172726730505310350158772101726027852117168595989722356059319174939297452195028452305884793274939712634366757508393371664023890987459601897819558041120870128209965671148572387183596251282202012348395708954296173671914893354761375714278057242980666370285303498002377905079627358904697546783115910480043706337401184101055847053633991780234688882902619324554753783325417766699020435698991330577514432286522227642016257128205406942169032537863071567569367212891349879233317675348252488806709889111703251720153196145503942902325941935404611710512774763877583176064945124617956365830829940565251525855952547387457017690504091003651558008467387769240287041570707559096960789722012858226423305130557496064135828116776124165658121913666199717636068026737572273460939955746883781012557584811153787287813715935274786362156763844245147736338506895873347072169282457229399855105048411726476721626449695342681554977368371513772460353266638901200820019676640784706475887960971104914678237602101760691007644061859117849775452393727118343658197640167134950872341465050866201444076701670846233793043030299908113487054008245212469918704162852234900512326120335844564042885196682628315509082133379470195716357635428950511107159912198843641126095088929706094092322906205515960271405451515731200498521460405498340281277325623691928708015511061178045949988277756894807763598085444781949315857519987448317976180972537326190611506763337141198338630126307560614426076584532064217805041222173930350766545536519879653635998023547584008402219558928772719017887567737058542435814436820376602586554007800192418677405654130560394961758961758646618987650725272253433542688943151191378649608986313998730303241092723672645501523169024877272137597962805840580122494437931492470230484327500060079030743257461047620004566443231505908428503406163529296134939349602111893795906824955744962968445738127752819952914230102614580455111829102758154840564966593852017372266755283924330430411386831567337190485767439787003415807278335166515330700060617506295649509988221784131465855889707244226978398395558312499261612663053254365514798039380944207063051879488698645484746279461510904855846546632048258501108205420878514225463482693751322261125492341896235697834261813190067990986272943830137656530379140709250079617873006841115171805800871334502247295189948464934762024916654893934597702112150556383338795531286061390578958428422626628373411505405346094868651254339054171328034457438524036830183050842337481830396021059190545723759912253423732787807928635548204549722793233404683047793729079240127347271075431237388336385239199890123540057263468673760677047358180979694669975467989476665140368757607767722711770805914434551952229562636976691519997510002528500226644010145689242566944328570290129662207946569530415544969893698775556529181603186677963879736073517143980359591312802811100846326432949824341404971662153920045456753293812945803155210823294922369277539282732712568845806879141700901878291589653805709821484534197864554992425839502513932537198057511726593077540329905484883147645508032137876321972931103373579895730986148798779125971469709232384501760634693685052375279017335177746207493040027555445263473537868679695611316512769506889174606922742854808419106009954375857226063044823083461782326265483841063161295800480265821775422252684863271607532567059699568605499621238532175280152019444992678203430720794083420391633869337686180215151124459794920004367994771344040512910611114571576175921479222908528722981373413286537701324627189308042040671556434727215811040237126054668307354541227427296478734422645261236754500055150956365398497556777412448159612016724306236672787621375822757513561814325192453688654630678069052278784602827355963317821247770050520236317221102983528086011264904531845786166161768945052423745455866972244028217116636113741883027945222107412843233435193231629879253955412267191738200553592136080866025943968467399394326113431548254064846698859083382302637104546434482359238723536588527312939757147654174375323047626751759758028560340015854139456893970667942641287329574619380399041618314717904320886335877776431082384740441246680120983201566618080583649277296965428600565070060381478368005074662763659304104316575760199607125398131906562051852294075802784387921441542588922684691527536015610221979862026124013405021650430689689540720594183322311991912445755907003226972645351978408189401864992312409075744405631436287806996730290886025592126732249136382161353322514061905038302468129547592077452943298074531991727237926121707853676644497157401541066746103796079637580916319183654448556173388145507241132605425101480171280251468404459190125072754190763203305753260886512984968813157045074622467831740748242698351914564432215160735374613338453519172262806520220724542727280882725925162180979732253907260642896658078496513161907078835415255478506040115960953268266206066154896962787899400808055961520227722627903445647378083483542373904284028110756160232379720236428713710588660090595977631003628380580211462247973990643575283956777810761354405036473875311141236483302359143583857039395309304849450711872788644024602422348475590455934140615993892987625723881894308183888386280467727440605300555789434467414962803292993864797103314548468214986279501434731107808327576503532068158433356422323673768013995399229948305669687829523433820877822080498575961696277181523440400013329700130337809098231666576819343621159667421283204874234972816724589905460908434451644464232437646121853109860878513652718728054206633524658671414975389534434893900665954974135180796525462366132917972867566778947712245255489806111251947512345506046066502695544145458508641570417725513915347120656224848397937501004107458875457135173901442396113313452210029920689895805572557328947549564294312766585398810935131797606917290745118787218045976688449373537911166094312831176489800218299321738896079892005149080531940652145878804592679384974246898956271366972149921633252944465030666304518909028953137555801588206643797717951235599881885896743899732290798231994058533314079744036864780792497281461498548757865351996663846486434933101257093737214983619430950384369975501430020686264974383596132758817995016735913573909922743411565190378902381359503251085214081746599262116954432048984726484180178043136401956641981541365822578703958408672292291625688066661460737685005157437964336727933730941987776114917959969829330662271691212918388084822344562024841430980881793908999879836534358932851105782384635904719544416688355291892845843066477710480528514339540662406452548243288846840103686095684235289733305776646718580730722599998121276717408620056399531821571209942528373531598997963552025140899337591912540875375550764794812808820173828532371937568184658662161693989051997781215915217214107166667307902030040193643695666545633501237361551468735117256631304709804011815571997204790770287797386090666587851138343811223218539955827641010125622760097152832006342545615015492435207768229503344889268472368932502168256427442439855387174595224293008403150063854321319633119183423934364479690869037851953347227844861095921814530630234815876144184206405706901504337006887775285592490954341974693589141822422819468661889751876624176391978760954095799377281066886714940487960096154469167990778176099489934674542189793644719221322176769082754352077822387752718013413833214126344965723475813791678543263425451180707269896861417514137601542392781415665838081690622568231659596033022375535658925021113122555187389208566493651389848295624374971809036764406458442502480802247212696626874739756200636070013874210179989448540875933723163580888926848548165918402316158859183524256919474884765576394510428189969150794639134373428074863351665285049581119081936268731287921292727098736152815617435652018540489704219278797055937379690749865584065694680537939004434589124223293295447124530851791911919770895422248781747629431004133768301399466433581349262152355858003220851717724345568783366767480180145966434647300258587500756234897089193857992480333908247112797711217629241867933836386104735516711343446262341850587215542954728108647178943576541106720680958132222133469693898340728429721099303882639293152939803876554066199765439182464942599216067542880352044836138908549181262913778306546219299438223290127811254649360298164320617218269280802847052183296198023063266125226831948679896093003461272968210235411364698673644414255195271694118669416084432514239761571043503261342285836313150781339913566342099376509104622788734042672770690082582966779298772097459554755237926515158054892453505459440524635239227840736261884595348495574890230571482849469008011118939318857043622197560319461974198283891105544978454393016237850617160198326739724423022973263782490117538353309729982269719451692168169478357139406355661267416101053953499480780550358732989952950878881527922616357203622830030091847514220030059372197053709876630560529055506530504301463073060807967265441023629297674967886742133572516096984228894398735792015105094603141843284385358539961576545424586734187255551647200961978510243924382729052879632400584113872336416103555846728706277303309008359796968731814650473564638630695277671192403509062389137032964974126656293306108720531230701492077097691272397550667884823870370205921132771768357908540858820058174548148426484414426985855063185549906866300837974741162368428585919619747125305345125431546139072123330701070440953867843377287135876969132147009941829690809966605925784816542798095667455763771738819496376224658546988307002211293033562274989229464571901673678241143003097056749228721279212695826893805521808512623859392512161963615011962691242874622401146627246660222591107139956434879284232273545609644255879570077212899090417841719987757889971688062384477185331358849707500335168429876674596699325887895493879852226195680930980842644068305342401171889644016987902029347519347945498742540882751052983122580267958299464893426967844148264257252235514803157645751162842148494101268432257299559511879331931351582977296030209134304174691290088107525499483951014343844100047509121215416881031009137615642762739273276185425367467973535056645446382913063613924051792516633712679388500398566595736443407909262593558098745371753178781515901795354934540680457222495666693261375438409427239178863601727894464494463709786964281423811642616705755411941989598912977286256624917412596519266734186944091687764538462692882475281803313505718280033892909936056537472045744324350656199542817623478691712691377909385189373976255367862083940101413194347803943935035542571051258521142946128161491782841655120755801485414883598897926847962643326205473870790416712856283281882534876350695560093556394402031164554390212870478106254966541631877946106964598910734729842416632140023024882078462359863861840146254638355876268902606137870658002678716263611097879270476598380116879306666530745645106741943603729394931837653615401900297497627808200558902141354561877060485448632414847881097258976155153513021219054653234350061122122540143683875195898353715470880702624928058925417320119716861960992570555971907073183974065680145323553305901926423545297716557080695183335570742899344519824474632687731529059895183159265587156171878921374434387152259821797433507834628612691335294045491188195907067312935715093816507742030169468466421564297913665808779705942739033359992507614917190626277265267246212526540228048003858149834871362104757039100970811188877507554858480675113639765558049241833985350583583485939167026617961035693745262819552841985896077511970580144307393882312757547908268498330197637270580073955961909956318535179655422843357117079043309042188482330319713620774067672607132058475344901741265717682101020619263744653986862763864596121905805557310271798524376693586480146649002472247007842612322067778560427764134008098587312588674703112828401547104607498360569463512853633763695600219986866569365985042631619874570652406196717190814871787772816418402038061070349466167571971140721164210925143265202837937129959558936070195882998901920697062825726431798402016382388923009305646934155873338482735877748424240951223526617900182421658070506760142819937927888511132627541141475263954748790932004967618604755453446353473801669975954343978553069572887400984129081336868662306834714162448670863614064166118248080582041545582813464267441829641565261476404281256024134229679492673240593023327056889775968795095261493693815032059363169245667121319543785140419625774408101997734398294206135556014146948570441382178909374610631883374565522239569794476550759187982331029853228084122559634743620248785251333189256365831457550361166875845439045113719961462796762198625502555591299280127439419926521209347220461021757481475258948946133080265296408277989729152343494305470700139888023159150692118964808479665591678040767290798044663574015622527132356986357220151332682076311699933675386977781888224431941638191054733362364000674512230414653391068360615378277276994432664242594664293814502703861067379888479817958305386151280266978045234104797307717939568288264784901253857772732699781681231348694735812129336519026516735759279458091033483729010687617508315747780660736704235406565431359617485098714444050732523731721192182476614103837707861336440576629470059147491841994634952526937523179536292081670054915871151315156342427018793275972729570057488549170908927032186609124548376468424314350254939500721794707903631106269541721853118020952742733834193594723251030815000610893048301149042165769020404361433672482384177422762001022427787443287877146710284771456419592255771889936955401973109417703476770337071810043154942190927682358205229870416023605660851667982873522339511797721666064107087432448694033418786961842166677191543987854145147407379858700133394068632938106666513689836310795232055525764961114566989164491659698757677356102350984601333258038425184034442476537925935452544710454643002889172926435735878560190064084647273489316160079175228449605387190403587252715099580401488000546853897133414879611996554465866221900263293481090750283441406596238007202617799281273221633380026590773186441493976353751192084182689622644343097766914680064670196082802631393856670325146278691737476284361893949330701235498256316039516435758612256767454122264742965481321747454567859960957141211423937556571720804289764046947085867885708283120153337119751563681432955429391057799439349881542410432518387883840354300651602491266613814964200322579280135153845838176762558090767317852369177861889966880345533281392865375755991873503008239274925099770564360305779750046768514478855387195900247655648156189570505618225663307930122709492482967367520096007486466891025344048806431078120440668978277903867749332535698120478054192696503262726399592305766911413947140845239907885032787831517945380825903535917513990723413385008820577669089820217865811709131474598172640499645374607460214955605581915361066981142608411397349415001263523072914534414284487023865910495452337359471866809641691501592012480928471055132456216978821974260894864624537729000523095006015275289339100161688062294555429909230430447711730038525471403620192393695455676254488637832491667923943102030618923889702969193779903230487913950836373477469669788572090264717195103962486130059048628616390543371689756119558686051109563865299926583940151364948854519171459180745351730997434876447226575876164453849221228355913596311432394665606962167669575050838579635150106542188263789600128115327338912082164373814314772789733704762058263404226512780535034180921828725836313714021780241261933126943497088877000885645474510505686371537283011163987541431842756029869591074855339721025626576060830720255800466274164679959204237711579475371233534088185928205711964051223314152756050976186325582205170025533722847464256627792854358004278942015888772958642369755577577818586186291992278657268155940508665008397340590240995177635958758559088454609154047331097044027419727635178278946009173034673124999786334202249644032036553277664812306261053519351933398923300160099019673830158792705632190429285012654551360997949976712808628242649386312354721939145751395588266448939872035172944084084791089623536347169324634783273805348634824970766682597136053705192256627398997288201497219155104131148484902291488446382569240609378508603391039808194439625278685054604820293536555467966842672253297941851585405825166915334274618494125508060304011106292006605160450690883198421008735050797391814327399046480403441737528064680036629822844076959991478425703041121161945689551464272961067882143944228007153503104031493512330713890424648924676916992545870226697047435507524345925422918040830966488063809808711428250869219748452746512740508052234053566511505846587581574506021028488444255789883537765927043673376166223745045374513017022098554616251315331363864377892166451532057508044427553396357152233530957687512422255636684767049224712803059968193198429208338832367880573119561455281705633692334956672666306079274971085759801585165169121988877995389008638978876537680588694723481709968404489093497147256066118331428439918252714559700096731051542473920707541391788613804712358095164846613556933725698897446542905633141647864041458505773395897142595305523500000739239196263705320594186881651683831657401184813582960660957257956677861969511623821502154859759261284208287060565585686188980410430051554419351715741273569068475935403297625278644040906069271604188560099225141894683562260428984755598679506665661403905187936065061421823231374731253343919750723984238108634337052778849637315724326160380379637912366402063937831881451145558321508445358803733394619244928970829830354362680666322255328343336732667077647980991499734430882735731686466422820192530858083132095080350656233955108479324004701680900202576968869466755916502113268547330206804150505084067384664605308397044021709397262386436861742320864713193590813661331077877781371297717420049888913247439917495257808777543026530276082204494628836711920201426730431232954526637077880049907587700568359400042363228882842965608288925528328441939452839412082292161240904620384675564461255165493918407716051118831725587810113981547776148117990411441057344736459298690296748282255660079811841605906082831980376063690824634495659990912335874900413991143346013255021527536766013647972709091185607359846052675824686263105891094096389804735095799803312637286147839583045483298197470680528312798779312580712694151816837785669948315902972148230043000165854530467670350701203096484891008353353782874350379566670504550526077840161622167523943359181591177641257699036160097159950533830084912604082178357074397495396504805365918742381575575599525855884659557448267504921446373283908176160440672324109939510661167955712391417622347917754736549079865121171765855424537435427777999583055532223122240124622242070042681440353575419705801166904718544035161553778856335061970015687732450315883926960966673431949916630010152824522793570916952553913101776323165967530722689094067575597360621629405565712956935981801836884846238960216131501898256754172477243349793594152844955894537907602526452392702482949047281178335594922767785555246980100462290650773631600890468869961140314553791539496571795465419316274884317396100530943851815832095392677271096111408452251366961999211094295754729441650837290710468309129059417623426409658540232356655380877942075545254635454501610988489815544044840509826028018398182174907688795393642247782833832982245131777563689850766609823630606216342688280308258456024076148186360535422300215051173176071602560390192891572765000987302321764779430603298047237697023692619883875930426057126384893182929871028756843291795783299173874285303229653463131458502379082610706544879127033758118896651945369918711721818990874698088704645806490901389447565668281731790853163183220867079852026043361490367738452282716981617580364153555265770345997084438050222301956886945518327620142434715757749650373672870787212085909996397428753683629341082954569727039085819455954166412872538470367849735607425050243266318874443296413777920911095796081039329520138141954770819697856384174515127480584682104289772609354403054605624217608863779222277787156131079048919051588394219033509363183250499346905332782421144258275057026164051957737536919671347415655218999262064065885079527715083184542680761872292733003766876950226316722367288745880665066722380428078354722630875161620864162672282173280795464254254465745452176950512314908982755699076659778334181491562672658278838536641121139268736604502664052110927358386947166913226443519437830245979003199933554279995188717085376570625323336580396239696758792515893149877238386212646853999328697712944124083719240867644326227567041381699206864521795647553152555873643093293785641879056889157670235462859502713101115649581299747768761557924469963270123570562049204681584211789054930549262349749655783212654446111373206314000843698632287568090320583012452566561158550766070286398271856623872524866590479780074443850000867185517690478663500996009440282240033240595948361080373016871925068073934372790683079339180637839492577327588515637287672736855821630102160289452687520382251544437426424411831792995104049648750492333183246506824899224016858883450869225735527027718195396400909316881821344444699547318967437642827781325868559543412043939527445931193943547171614367662391519436980753397399176836654123391629025876079892699829796135066861329576622185228476755718007613588003396201397310194026035129320102287621985722521143397016420294981671086764566347674321269427455413245877184376230592104495830319738538139321229974394982965949591698226654892533949621331198051739756327311428039808275673222514550839805510008793831773927345040061458093983073335632612605619778703545780656004636530140102201536741293883404293752529566310617400926580790234732969071604086177669382623266601644466835902992575387862052784991038267999357101276564225848973540013980260351240699543582291804655443193887215466160799559622606091956195090683251163029594610180483062261584016524795893656379251927795288687564689241366152761410887506035027179896928857386882295501012551643894984084449503534551764872096495960918507954932272774393230458903325016814128097018819419061856651081202148987602490390526557431352171406383344918313010346546897865834883214004094521782164305783779745885835926350409058470159101048523554322001048270213469063172304819036586367890138867867928804028624130854116831054330575628305234766918286031471619643287185567725908272501563322341754343668162465354122067586346580927392944798113191168727432790285493947203081306006645836121581474429282832643111860311818885848876740869675892949897717549204059072101052376521212433911169194305919719462930028533791907001312478305940318733771247316422544567903192882703549559322381180292727240330310455893196056676469517958378624141590699600039363716701637795567331782555030933013992310988842909380095803018613556383864794195618096695455127539443346009845285110314869287375320950023097835575667881321458009251604487763383833964734480556862947525968193984218268346429400572542348492565675090767064985861507472625775329806196189515604070945361815183918787759290840137137991370477566146238443108588591555624231839173179367001771062337184103053798881174261416219928021894878642288274762514601733850286297001440362759804163793850679412579189103567774711092625203906380542661168759764506354875051812396541603863897985149678040660033573579013739792202433879542218491140718030484572699386233894452851882167740098463466965778400546663101944894664450430029996399944947128071126382350006149292447746215709989393936751354973313703311542706917096408707158447619415990984945940871134225731058602544747958454243263251354357965766022289647485721910215761814575535517183263683036473492478491697665767494676967266632355583010950629183859945783904122207741508642571665148774100283553384008329845076510995986914350718591168846450026350390004540413097997786554191802467586007690577540094188371456785882804507023338092735513371876693874551184032773559603024572365060072864615121737717424914545610865652958598386943855809668799323730029571797491061160808911728431003776663995359156542649005179447659033882024545250951046870014766989235677472191049399310819339934604809619480820416560887903400953031742288877897406349173621273301439803393818994760962746027840387925168623286638500872620523617671243923459918047623899384554092572073771682912124462823340780403421397037508806352565064035400039915846779664043151979905483193559474700051902854511654010572061216246956340452223235427437699296190207628237764038982505720669338727623948541192802793658657217146547794179568487949596957246817263995113198042016166857758304123357963470176731554246536283391493265350497236727089422086025853081361310949187871330899865342914615973185140609676681025984624808327394084714267829608406829406967599771322014561573744290681576650934330211679571889398927864426090410702574404794584071061967996807778372924555411640295104660811041013928933793169525347435066428869429311044464728544125785312384768764851656142226019747958211901694377157148240352358200502438171748637543294269012183095808678267114265648446489644663446405002915060564923156757711777672799435137387209221337535513684976538032090289656180598751057018838533828345250503528555356775188227976753246888869502270773832617785236456948446870180749622605897309150134757127402337036593586318306292374542982061394346371590397800699783138911972299490235844529865955308208426215426207815129387729345051466340999778455032432060767347533196598079304728199863598326395861593004109686076994378081993262436672620046265113906150001162798896201559457250570453035600445536617804822419951452163126588131609901654636038096680516851791291522449375188769059572879070638167909991649854494117530970047719020709297732835856136907968430611313632484161724705204553403842108789784620976170870435441100077291347011530920577373055805851478643664234342525471622554940124077188635942362874256982412487201852114620901972591200068382855110124902844550932309249206128016637284042892624372650034061902860166721542883734901360035316683959665656037866863728968772808385657782512596590549113735079567326510726424145333197293473094905459734783620618799689936922932679853038914626655295087586996575500797157159714510295661527482680925734880393362577756917292430447805456956634461886586662767194530185345048352636917713867803565594884877941502866199147869514948168915387194054586629608933534882422377370021647371651946415260306643872073675797686246371886453667953652398742604990105113729095705649246573393923196358295838199205632501785810777042459110261084786655071526598164154331053016619258590117728539743987554362389420744605812642231903265953468769895476190598701307570630859313895628195356711247690008720407948529332115114778010836251706841847273923665006747582465455461961306703252241743754632794343198050064916094091872698165383859936611641008977901182504680873629338996978792899534079743790874009929371301870849846634408366651843722296963786318588637901273855009586335955187388817104171384074569443204191585036835242983805945733728640511724264965409836549168389494675337237748024659642116182773902031604069493780949685754883400602371464107780372180847116569706562545112758098685032101789776398739253116619154981453675980824325016616896537755092296835135130626584634148704707956714744491002288170281186121933026205401806182964022156150621356413280500676465913787146993504143613885590416334985172867501000862979043163306925621783733342041631546936051226401045853480592378880211121881833797958585153971600186133577876850072359493004054222077697216060957410315999782533926948294318110651429337785084688979339324486195267327022340697603293240312614617904827272125844321217452181947562247776304579210016023147012965431258281088360342328925254311165292220328781492587867333988798254516978526077739374848843467358272502724968696601872569225296286463825216119263732933018942855810077827884141270196661083300075583137595234533198243321468342299091362586715286171956907545145461714196852083550159914863887574583633728903661719391129397232353622064049385181073001385655794534053280664381763293828886782857600773178878262035689964359283228997436290364840305287305239079714207080152527055664490966688424159989251650025425432899929605740892206806351225668525066700276664262712293305810027299322082001118938483764880173341575388748923898475601557676608322790631536380609556184624798919863096649367287907684551187927413070776017231157470090552246419306149093052825159365803178959496016757781092127776128887406067626936241839617957872970236711699785110990317284463316589977016215289584235296544530511122541832150207890042597008570645982426280795338974263224272211420259216819606864224189726517904454636790462313540121887802586791733716960497759005262169325715941390808432675337342518337621205458562750199742062011442020339678241919696490863243332174023262521764331560721621024211102524634146418185392123752938211194774824294882908775198906043199528025862900054696550961374389069075847171772991795166044744160353901646344872585046714315264660353463454748683419215274877219524512289357222084072664928715930001657508045676052455048920449618224460199685956597393356455214242217940043286386839273302778152949216305470504523403657679341241810393987691744736200588046464298654502155010113374446468971906088185247092028719613115188899837143870531950612216558947766042382122676976052433481657780962634099551862853518559108799067374061552641260490483230891602826886936250659559235783261747527957686265926591493981348537633200229856817566214634910011797683178762816840491444262336372680345543655372980426724661923371966595911359845976761573958188900485707463983807507125020597201624244173929886405005041321474312012159007580308195506631928353721899797611708921780486568076233289152282369634238479292675987291578851000538836710911625753953686322408867598291710746623965414805978537305224216445822341902089471870643443348097552667588009437034275828833043264543068789561122166741607964988997441074646996205024690325451056782404273279986106367463312721434863830494478842400398824811950722130569815755354469329142634536409568550144602190441255961451072595859015572752822373212064709797669465466527485799074790235365940050489069620587665800725496648959057304619035900814289689800265889507578866164938184270199985887217697648206257106786108174412994104037542227183489049824842266919503567626018665999318589230810935126925101575868798427345053042619282850783294412565618493682779357886063040873528877151127567268932806895056972911246994605421464138700757895712157527722423568355464518937847914521020254240561511172828788859135804733564373631416723559489246757126954498543164037691368629504948290770604693434770615730046085046036058814972176223521911889391957451209922839200650166220173775304167232855423430832469327446945232412491709946278662135755255510637322668498080398964606887840646316609429446399514695255641066814301148353909157542782847740022432426279930796768205012384368726267449893516520562285003490904009981659881051572599709144163520074424732398440490086606539470407841035594072130903639961261155215999851847193222144450510609356135764918617395348404832674010498051055998051146475306548989634384805391354348626407744852192955650929596738090552999705654216635130806289725917926020497647668390668732467034689714085780513118233715336808926093979815386859169178324978825090979964115434360587503513927833101545414007403967977935586596705273060219692443091184202437345168501951758780150648049554090921801134787123858986288730215657348103496015302562105576662230699000263141946111859827403406452955326289889943018138257680406864256400525545997839148551998303799989747237072996000955530917083351145215304822961494697273852996271976450001598207131388130665607632036366518946664891036637053463663401644307007225927920221921766720022200086980541022167813275258605152372921201192979349716159569847058004933532447989472246853648079294995752067289922335470802822989796714733931462184252159450901387980020921499505330634340323881233011268320151442897433520118391847500019557976616790121300648434485993061216887900019126900319914464530178633768731139606645965649225023507899653238988160937286711571863800157187478668568436117161705976095716059330237731954082819544901710521486211673303470587287155616653519702764852215049573032514032646117125305768736026341288732639639266172629179665537832887046008665032954614193350850912329495826668653884685379497694320049117251358788151720354262582747971200902476568359162675491714321024946338608634251766895286825867703716202986405164920970344906013853518606889882120920563150041468777829862864080048280169425680893187452078695887751617400494871086430624995742546924374268969664892875982759088117916830340877477213589944447307342360682705484016148459946052700727643421268815137958032093079488145800337445774127485508753864139329404812658308876379737521358798525222995648222235457754821499100895220170047906203975316620499267535874157249615879214491666751911395927411799236744113141728317401231062009165973139631298594262317238326775244862049086874337926144905683028339385016986479032194297401490719308246268635145907231608449872200364463385818424736673436715195534827248748448927615743863298741312541047161956779194286945411537938664863579345126561301543962523689775379085239300385574664168820126113831988621222568946938120649587145447151140413082504829433757819840746336769822066447804466452547916866177349997674162676436449150448484211102991692400230271227850345114631394315161917082581273997258272310947822694221711446109857231455929130464039860151693206616623512406298882839754777544499380080519232631638214068865622006673179474766578714852798444925145033249895489847696336711377671341870187837710824323417278895348468408756741397018286832988396481839204035758424508583040417403441713539079701497861405089389447078868699115113619793375753062347294618323385029225587899445341057790483193250035212246660884158801306077819241464371701905055269218746342977621261497543700497475899463212041529570495394948897245002184560287566936854364829520433189345130862995605712391263559543393302960628255098763231172030480572019593252897963582625238559422084512587098986147286455990549371929800259381632559072168682495487101460974389502233071450434711405442593428819476292779046548177525712168150837362968466240105831727329703611830302183384706054367151798914882780856558142713257221569563957739618474764724549299020604357376660422887288438387866723583905123948714389634252602287551315555202093671013100074076511443511583274759773072965204660449056370997801672868122754925940754318389776046189614850167362041227285508350151138108530858182332937552131668674257580847902536171481414857302153050889748850326474711016398730781305879758210343336351448790694366158911086788696872589557108934901726361012509553141721070854123572413730973831266457638638825016444231782593415104048386087304919574419491187915434365705714561335199156882161317591665753309229525843316705458840612628017589218916754740076445719762817030713132679683647313512260355320750772863820689833154411906956709512879974065952443849036466660767794459597687466481778438822633662661451418334503538900368696501497889511852892893138796477130568821532641384334303889563516914478438612196796168108682002153883814006302580999501146610737198442359578483080995865349440075445759781407237926882335559994527337756495207139068027453363733374364852095404028381361585622654249051851780608022004978514207891411294990238148216804946798479618369921763949800640058596677247072284618331392623723373685920448770178596608178896629304895827157466508588951062754798918572849030299783187267115452768614592150746158451255671332092755425433052199618935957380564190522426300974780771554152970221619276355739816417863682361799083192169094965313859099692204557732701533897027423097156786756785091361327837955322183750346755250661519956649120323595730149562162958664483861818605475078523750048055847894256789549666693554599298604371943887533584635144644098524853034162648831073823160585650674932140007362663970879435014175674327839890732797473757092033704645192980849141349252214050253200925292714432384098274715842467476990883487089624663520246144173852818492311567089860247721334234807527592010845904057173798220571566269098327779821553930842201180457049571420090205663724741528639562769319679067664712841157402112229649715570400009301160942607368748124977169606877448788475862106475018680219344366999605184609197308298666636957093248044246549044682713424395477099174606337770877860422944745186676784960445977383851505096714484822595506633799905571476780750018416036074881881311634329155021296304528393848929119993093931589530572165596235826102334705021664654725610594662260999822177834789840432776249510593054025641517173724304376657629735639220274366829941785842421602215021236869506192115528289932683273037849663398571361658196138866281969458581387616502152873378687589813991038530509821606190083357786919451035907274548036530375286691449857804810964707889857341338779564915446356237548395534765070188082347767099278014697321058890867715888882657929430568311977847103313153842624372495897096756555222091584959645102627295404707561445557197991980032579945218299189266066043228334552035094399317706884618906751447752072206770875096112175521804539555362414677694629165630238206290178980340328467141472691434024947041928972037157106339975680957443963993005766664103322286409766734258824606189194555070308039263855802774258693359559082843343144086598844063655149672083902636266035900300100131021015641509898746694822803086555268510475566417888424582571870924078775991295988865025640801272856489478908173916234024428153812574334502141958496491867572066318234488015965217948689538690855913988052338334973745413611274463093425106322832169509540510731253486726419035498496906800161832720881262675840992744577972272901422028200732801213464684423808172585207786557374790689835257811695049223150978737930840143844158852357174990532518975448142714027245343307164993880646528905168666070812184493199871506457069144852036097574206467148876604025719994140047289443776254460496298363140955461865540018491514921071377658489562986310932690885204344304289593565226537773669548724813298637990119319747804036636363714846928427404215125011049951377700583557582381112259575023985035061723565732374797706605243837335102805565813781019860449018770339288008349048017052555760351736756822912500494431458539293214974748684999021072220312478361707568044800777928572930533465241744062290988888160104058080221475198928027612615056756837387292169658961168866543331299603744721079641037930134451386729682707948112479252821368517580728721619240941163236396478520273331963937754717040806062458517038349284808180301207980188109349700309142435174290676249942523266388893362481526459273592788078371461048492754976581328962811737455516386994759348456605165352243714359918610568900730058249883785374883110328242552571359120827801604611192899086591235807959563211637143762729328802632508587575177982704397235829138206517014867294873734817629435833656351691998858795413067160556788233970680537950766787062215057154780926231319620924732766084715720681252304094555636224423823365875780649018011907927787222248687381734255240885910974500791651913231220231822092434292987373766937916195906049884700080406055133651406444177052570207255917513413845334862122214090809539393281274894755411644101757974194138294634146281846269785275000732914997240330439269816194695998683020273053930260641498314334168464139470605216592431039345945182908043231999457691388751548314850682276568777688473420070078241262728361713030883705472498425042818092375867795199167571019023377643983668965259632241981537290996390852143003172555535566717237209973747786399644477565201344321732035167670051125466753011200905044531961295843891849779937138433063704320469007651135858072463382608926701273373391180499632947066969187351192612435623256858580907656447847018353728620607821054328543059514395777662638943889358657387940802553444498242314802095875546779955207676624584136043266112623520449603884174771547003335478247848000977382381948834996475363347196484444297046617943490557707940719493048686069585042499348333008336763938525072868494691340812535181869347557863135660288670481785834098455121826586273305439403647297167512554113152623872162927874059980996066298931150826496829354738581631778704260124157940500023036752260741990377491981854968356807313669034474494591058703130126728255398931032401445783843323890258547803728777028073244063714691240294810892976918154297001992173037514374286860063214138338955796508058169536153761267832451688346704994670423522466248749926797981198795817180092556764425838546447385456482227048464182606238395245056486789764189841136613072133988850238673877271595136711218600916275890604679531220589405999858374180808526106791744198285875549623266122682275595200697389285255945429268201173520289898250122879646717413059513671465862993301553776715229699586293599004903006039740574888900133590790552329357117852033731125510254104194331096138621251490126161535291339220847148188856348676181375000318058378895099111371678408947987416200179293093892147645935663139324690706039496107386791928363649156522103404485136639184796542533830700984038071058522743039458644031331361854109773033485447547452586493099959696832707436581515015803303342800496141691839600009328611643530788388617846738205378465398389169279405075021898647662158655705442531969387346178066426514622834090713829523062844558081405034337821693959031330228406268896087785177802576779222065184338825592841437482963558661624749644242107758207285942511785392548363055838546496209410434870746828814300869809702250732503338226957802654088705472022615476416148176921817864551765121229861275067649464487217625401127521033215861673672889976909187770294042260927837186962465058782978772142969283328524010817678494795338684974575919635398146383457127630755605156530156799461861034859040765037476909984062776972582698022481324177527332712365443465850027392484343876004865548218740031728758737492881735703462327438379229974468686069478171397184180884346241451682287055874141675263000279333626501102346175716572576149783431736328395814844094644869307616757354530547701615944669617059474319870120393400734523000571812559316048418808002621088437641924840007587361145292709017430580240411789505035113971132356618719170159203507222966170534443854688555969846266020704605974941575513759505930176238127837473915605894123151452745298284463131242967484683864073396770999349644961038232776403728201762250277889508336456970553715515331648922738031032479567209213126502052786398875050735741392127379074541410542540370514110120742669017338468938993524437154411774086412750414629783139921661731082086332814960879543459469910253069352031150241953263604813281238676692577081573078367477591983182345901297191380949881739224215355468906560101876015013397233000462214721087264968861128436936849193278700614467972904226631454548392544850292353598373612921258128418141445655120619275326981626247231526677138341458803658638807963753003492924966761220628842148894662060882913316565250724106566888787529369366901159940445883147111673440926360103171539885761913402061598395703077504856406970780375966302219244329717865380086982648335908982787934380151946771854383919435026947711323407789457573561816029188132426350578420675342327665266036778316311562249791084301037379703201193329744372985996566264645196662480994670470164497481637663813372147328508654214370326676340057966073622845671837741209254709269133619438258411628667191053587301049143896691965536176572983717871341084185540201907231019371930743638446426586850863277894555358063708190541851760024697569548116036618323385683110552259704521224189063535812017158714951198289323261814434981505026819326086400284999459978485357497192533534041699458459073968916939191876390316405321458384090905585562288132450488426754114249137530707406453050288166934611916957187056309368254003208624379738912712898833942055436275138404449112055385354325727867805283988498417500153056184361852788316295352904139667734142457936818950672994636311256336253151953668621346452982587706932383300606325633981687770813694501259068563748957154547047124693635007723257574591342071158889804380432765327186657522280051918537939766531613698471793770745560808139203952481300058109269607666263015438975191458887455679467946388863262087051914662633345402245871685707505937756565713620516137390138475699885411790779773218875836578062553096644613872095124247578370565090111803092317316699579513903041815827351290011955061010540454684352007043439737273796697506095256161246100898248824729219808678419837007579565030740652258600803242351701730689695326920769036462807175262145425325775686898061475566311402419215350317907927306761776801910306235716746328138184128488475877596106593104306368169574138389707148149030589960636812146265081540809840753532156474003445573879940467837148861860738493775965749505170368668859646908565849202465145233613502182784808229863972226669602292250548939849094024939049690474580517412524669836789584434702153927380036545780182241569632235800741027043057841330553555183614328305466072409556529427430605350692710355563872783287446477517923952918389781294496523063027001821193655348533543231489095254156440708075353531402481667774245218285480000518542205689232733409632570478966805476089897500675302631314633662668749960163656911367408889430222422641363678170511551510694719089300729340700548865919039196454679686894001479185236996668688559819114384934867226637003412012327211133537220434031338829904058471802127855350171894287396510594767868390374614994458490836121284459976996181804044944555541573409383902576633765136132304244708995465247748672564004124833839017934658002583368653384504871191819579366293872065021980415372949398690085406196309731016554710392138425670606491071910239290353333554199833021008928196515378938651626999501087524308836512502404287963722515545772097919799842012024258395948971245118408092976805145621522475148700971505241619632428366980149748616246900473832153007081501701273167569241046770412837130148736222025554291139147844625415292633958103684406620083934315979228546331379727515294361326487414591744326017124176242399291902425239500565324529170902406596465824762781542204095736210478400880071165312453080998614233748305216268485119359622355043933323104039975507234072684855593978245559675910826345914079825593158946071917354364003575644782258326937027707047455268430153971860429906304072650207256407173277379882080904563473118201129299234232756333387819726395255377819692601988815721348688842938748389003069048390881522156371196769726015314236935702606864285947756112177326949210285231884471300502391487057611775872558623708361760066798092528431295269959089697878663213706085035955072486718533384062905611810573037941574175239602503042709112713402783919424142878477827993516232131954464296929277507722428162291792897873716562809105823455116731301536659629947644293922893515863057022537418875649851615896279900289106675281060014584842722332820065679730560133125145616342986796090962044061780980477852444061781059759663626526391505118055290340730717737617691417039219735571128611209326865571588390313827694087531594015440982003083361381411632263849462389293343944422722114253670546299148206194686157199635524247603579692581792764965897850549705496145631203091499162578362537896457553885925563219772152757627190664081842939500451108076937805769114208865152000532415927234249129001508705884598623001542164134638292545259764887156510338282829709681378182001048856543752807190548848491073452214862139078390953928397220546724655797478993870570596114719073887676984934766685403419642046316872632454978260685106715486706367285698173657468623936784653694533527378203274635631274816275321166371150484199921499583265160125827549055401572618057139721634007251947267141829142845909991846712057808912399260142229122546633877612049746854520805225822453214284153667885282686107282381141222236821766406214750038148307735978862753358785733095732021220060914745017935979169511798944572220891049013333166844595627197744132540413023271554752975476877357778622407810734227957984305926619983654830092664836680528798031827111244743119786591092961386642318710292985411271039326586329274841296296035411229400740197700344492189505954208219148723157277616525740443485985388524758214691943932655893391653280059124797451745354610371087872324947425598906102060745964905424050796025136185082447622474290763801102116566702979546987132479367635734159931621028826948426740649433445022945717317644683457507889346604897822329110385449411852748547594142104922910202639258121090497293416471189284897413359151381573232568569326121878041303210706426367673461072243634072614817734169273210815919065120690477630657789389494582638189505749665916957197878959677175484349097059741889812042574990776532613731766712635691989684123541456242315764621594890978544149248698848141559823524676417553377234091311079529928851432051282461204633781059984075832404593964202002281930341819361333392830996384005741261304752784788634170929880382117915466074130603872773931576014847767187595947827552219366957358636342965632265008356350656489880980929611957594649168040226785798592907817129536348566597249239309989981424085400577913190927576964302916675195827491699054699477426427477958030798081231647956025357298651856875237513009309869338605994742905842354087710494893748112425819009650721878905941323177694473664402332856610302489009654700637337799914124074475209855011607133915962431796692724726472338224983617854889916208832910393382687726305439348652198488354664378611564612129614982046586684855141142376321044271158570448422952413786168642621288303295880459425567878206599281548703387383285216220366317378524112098961289890348431657211433626177277352277765094897292388304111684186834326584265601803716646140668513372762946096278947285932061953370770250583258446685710897360270077192799748656267761135235677767118190126169290781045165946431272330113928994717877147514166021541123554245463434722675986631465299164008028519186433085204971464233887992114638889879603753402782700561524781125417753464149292434130701282087314524674665091207862468231074813471229364002818244248037719435479547962306369999662386569196890687407113577611967952330267296482047242693917011494412162806809049836861796332007779575721834816481700109386833501536857523247527090858768418308374695762240661463388322925497642245425693649049643040274795759161378379766074710189706618460639867638534348337771984827648171792312275888703783189612622813775337205330603705598906490610280410763589211328948850011962536699388593463791974649194631739036538536336621603679024467532039645280206071072940629726904825735304592221009845285838637078692883518941522901025648732680486811020567366061771810615381014318770919467390784864266346653275348413058581517844278603681829249993962341302588182202576849531151124579719605655654724851766595371588759033656735177372815718057669963411512733623952012909293739171171615528556313884655752659367367154385140860770421262728612066696514739170943116950607084351131087174806306732746060226512267550871693430211911461421497752746985542689068920589378581798824434074815186100799564951425261011499520122621606684074770356038056196424171928451779457822131069037202010685700066899247993798337531566669342688323401137942632622848563777011789027074238674254490878740870868118884957039588497319632624652275539150778472459030724966461571188241089676972593054863490329120912932360476910561769632344337771718801133586085318100830548001519963984992477184734462626722052521287651879923123772443965958302713931118032983510869605533476933053387967876472683898393330424489047501360702247331307726569120122059327611927970695109469567519070043140503285155516856798525050010596069479176985408231599347723929732724873241906169144166986467091817998898500605452109394353836967481158377020295914961802893456309348541099772947560666486962718566053498041652882503617996459601655320133288564803172682456186442935355121720435380195621372074428616439270474106379971036060373704108037070141469756166967034778326271149944160927613098465970639558893450260323760540260151439181423457243716197374642243206089440272914961322886436566615537171908970342377854403821577670895041399167595926168746935100508977605867089348156037405062088495067041665954820803787463071917688391834054032200305465785832066500073463174485595125998592415270062103216319083099774156610525859463733144907654815442275821966455739325593917445763307297308319002362861853354215804517942532607329689025244768608817656413463305514028002796009710219475734048646204171396973352203933504640095896404731002953037715297430872333652483232587558262368388921982722916865282211200562196923844364647122669027692045810219876333005436391120721742377066949286696296977127225311272410618871972140814899319934343975424054573023349640193614952953670549141788705696893438105033583718599833978498625746833656638895644406590783273136871074630224067195995471992064328587586294188931999346461439253468926932314326427575363262201233041114215959438004226859616943711808724121884355505844876791203782170176468952792545813944421929415176989508969134320108823475934048151625966025528164508034049998481907693216990297712459139017161441619669680256157943618234998118007370473061250163648521985815787956082531656282436932580547470309083107283587785557954271508506323069830264537926025422205750834859082983024877083783765494416279117371469751319591718435058941647491152366240360292318513798724182103671844792085884034042451157946294543970192667809689154733935172211320233474693669746826298373567228015220094451947078316538476416413732210411303152844753228359178102315792087630788602604589614952512814186452784227115344131174716657450437155168592150722540583620220324161825115098431803985624739311059216188046297527005876592503474058509850748100960973690020551313513374956400534062245909314747622714164950787395260020550280126899356511196042475359832284637896835697943254326584741295636062739725914818164263716292658041092451270808769626071786385886411921110447318028273647171082213278754256541678120063488213820682920044149866632822469570357540836727073924409433174997452553456978166731660449598814920827843461987781036761175266249398276815920765720751601892167873528307371978306412354123103688016655880821658670014867442856473597456682135505885634618591231292745551541334613316461376594896647971474066567513167035027110624669074759356588362232357405193180819217911452994718279073850390518283924969016246211179378527343205223396561194536690824767395216907983476792728261636855889127989653097242628262205740102892752005938789251582108316657780052402043793018684676240287180604855208657901782366566451698787782390362335131691261058419674035870470387076794404020137614488327098732314533689365676725600475319949964226369030531598160244756913336149823906357113879718038738991740454951473514517825581510245179918084033918279293474398020770810135840954590019833488906440629820578372097799121091120312459746968387304154069809239683273191929474498506016108981308070885048696240102277313762960696667093496314625694142299545598815829289994068179798512851986554441330045132826951322427966820439952640105958268956938887048656364168007798610237054404562859509725140653324423876969617964048517739145305036922183122727138324971561988591900085508105111923141755567383972570506734936540549069502574230488619165986779572021210957002165728979285072240587745745152034664459086944507093913849286736182369747651376025331141033929142973636902143831035972811562676631101934758106457171869506079645932557231707458791289091838836496168611060895045664220043082483833143835093068371462709373743204305635662901660256724677664990941350705337385986246593399789242234077079082034572870509878226130526811686728436801218611319264881196614653238861651111804204018478009199779670105169860526907656596958504449264573771982350652250113988640929863155176761384969282250832734329339060610070773472000991450561935018024535473846476595596266603593360976246654642492929174713581279303314410326940105537914182202989629459074923938324486822178487190256946243407150355013506672647328398287369552105920278986192232686280699122944688868604433520746936395303613326071907459363438121823732076481503014404253804925651319011590435328621486729054306231840463000123628066118136614633723106525439218940560613718088014110671202958487216316973870996648091179402131928433142083980526267803977240332694783094953558953273989406632072092575168497756358144010125241049346067326122201325130080907515168853360641863726290560658615924481686340643333128764536105353073126775356131904297952095647525653193130698201315827789525717161202148330056244016712943190996039668591568427853831603473114328300465723491007146045600758052247668168993609503501500511057803463889481322332836081205844165685996600460127261540624518034685166315438568839920042798305392541274146528368250299993530825691823792456158262148498384385431786762392917286074900413210619361592584258766528677868042360414574807920362197110157121548288844956408289970901522002876596067219029972373631002852737643042842898818177890061582327327199084250307128623061117214206114255371177567031436779088291999048006907925036050714653905248422399215567278614190380108147342839438896818068525410061141602240286567611246889114420518361775811317798815452706975727207687948203065953971157586306744041874586718253754269110137226805092616219091916953442373133017152694126033192090998251786084870071566381373878133095080914101947089344936577032835518680633776984721106383690391585417521924106706610191891597606121840833620775026779774379033068469960994441777363807199039248533148329591925157202735604015266267858492638908468139749951559349223294902091099475055409812311397216973394049299950820240772051944903958045866895421695063742075961398459291678576291914828778593903599528186352163989382337363504397086841520780397235894682435955407541157993871978317805843443640653010255293375319604757986916839940231907796703726694890572073845680802534566950669054340514713913707307309030849962283490963438025326418279645966697482476698880999612690184449227687416468579750919059076877826094628017094730954592603266650923215533655841536547446815826442876453684066317325382603277445788296395741461885376276206230819530668327252314472224226960302546520226459460690761267443758899730200534139923502900301313190415888492144388438453469005745010847030150114819759585601584602524227537334965466454818178778095619734638682574917843630603363698309052196076513359161119669837140811738889328206572505512547406473517555905788489524511427292264853212865981909851684997465301517062736292469677081922725231987735010771521156148398295346234451586324536144627165600508210702174270846105996499727063916364588219369278943377767899470486545662117085741515249154943740430787586589061359468439196437751876577791713676262713206783989233859391165879560779741409902422135733096486443429869224860752054370500579498400914249966174881149290396818506055005375006741476544407324670854432890988517649262543694515451363152844512490875851827454547735197707124001776153271017633108704950209568348218788679058034159038926197036966179289684447115525920598581529497442345086221272360906646131976672582953966594360962130607958877606149971318300350411770451742959861806527352732063748309152713671839271579940730700314188697243855296178388590661364614137154199966317391351534174691575415056364683430597086720274380962708696916996930383883306314673390444461100009575481092076039911891893503498422281907852735852201489475826896806865701533008906490851226383312703147499645097986391670036439730524461541356549056344794798019959835322760535685781574838461883570867074029033096762768462382974380453453382971804449456394711322454558858787309379580873285928610964301668995301991703881220025741556225701716044061351473647785673842550811076524948053831353771697630767604655955627391003769400140032705727257103581434726832005323847777261588376103326435701740270961679273489237026684361882657450429690646443853438658133206496781632923923065633829405492043041071969703215444796428917953435128186512869207913082169602313799649475008492476987449322350456857571860987192946268825614255958891869281707068166140946770259189456261999490857451301735924431760277350159324399900724132940097547800028144338717300682867842700726382252502030644415466674139583800308983955010951431388329550749299647783121436588824841185634053436492977396279332150722647912115602197350557409508356923317473703917729490737869421440770323224485213374219394474385681504729553145964841782143653870219107014374645313130343118769883578181331058965358097186550721527845328316013773303942895152426655191315689052909813213009807202730747523298003779292009607095012951531730469032588139589583635230824456793326670642211598366061828189745387734631526798310543392135850744127866402446740403157283220471041266374687119411454920746702418442835167632723969954859664825159183699699733568434802946190293783283776709932946268018702313664925043521371072412209903576471086696733061211751560070318944264293854029792840038447075480714599089632718798430605881053201349149764338625447338136020140606663275029139943785626429735263264951083637959493019820571531887367979907357227188567894400692409249840865284943116054974069305687077211855236302124216940870898121383556656612143734580230447475756275262426592797732892922262838553111931818015235484226690295539977650304756290768875252624784037039752333328386658163921846757773251495906057009971006202995133168660293697146202250277587820937767291820304621530096890364102156566689899846914356730979744214721671719000669999096610466436824263528054072833194492645450672514989102642217951290985537424604758787404123045672408504882622740290776512724607022044077564336105757694774799509334110890494584123380755513742116239598517175032806194406459695211934512801003107222813904033073173284391518304344739426068053849629714089602965015212182955099531452805592781272246545103126536492416547216315094280421004196524956455781348448875485347409546003950494076606136842729044431849957497408580022568778080879631192674863997727559754236548469905184150442708167631972132950292672896397171238619653557172733255021916217463144294805518344517507060023443021211565797111996149061689203557307984330922604107504225195152504274402800771583757339659512374637445150357413206350339581560453267124655985955021983733977618946810440575512353238712428705337281809199916657841116835703674387034032861328151362912662757430485371443201091949135883074904882600992110268013418330406490002894054873829849777190580256297423005521139831925516978848791644944020096789240996095101817935973886470188666110633030145943347904761679828280072671906696109154851875229583315739650776231295588049235130255050830943592837055577238413043295370080141411473907912820957730970067450346822424696071310457631859609624385266856706360550735219444741872002238458369808130480236767196694673940790772498005646915291374449117110026766892396775785208330107834441849344303535772197643906061478959841188579047807545790826295545830983241944882307706386977024229931746288979167403906333936535722881635790503753285986177141844264847468361909634197980815973703429867405827568863937895007971391550436627025745926394855092651748023860207314522482290269445787953789749868697099115802577023085394897333592704906022259394734130307419224191304732345966728731250907512374690481407129073254931235378478978379416190720683848377650744500363703317010814193253957500935738557757021724559645534175498565033198189719138354462704093912544167152309509768246469647840065142933908879389221871584376985524886544737721714759172470314223479590933977993094890387528311482236648206661274220991441390321363763705839734466430197470265829111572665120848682024089527119459336402409150747331536896985585246683770417503118518280743260017371016807024772930770632389695707970704648248709728156620356883270378542916379972213741189586976065828688358521325317598715704175232186071392683247461172949042063720636192266312294317853632819722690156315919053854250670107242044522938000858910434836219313573858605479510016866674537364476009422300995868604355051719052678174426365917610489883178471995880930581163718860973613113830994194065396383996891397945622203003206481480296242628376140362344603886485012915309441838906344174175373956623636646536119900198530865259554959494008512521381398617204676398155677107292314739165428402591026554856963558120450425314150454373505595058458379867031089295885355858293903069695235285182080660868666782821890991148589796211089854575425230521124134617672244226413817031401015638934039816065467998851088858369610881484777185098587900788463239495591984221382741459277305248775168001708294009693554721022243299617449328186804602393216417317380387638578949159903618755107775530904381670388394525583323876784337694009852089202232937875243461971286934171921700960050623742926884297280484299177118690114761514322098343461894929576443747706421821098057423691491310315869563894701361176910269061195571988418856909039939175120531096053078983018792226442054078231785104902431622082609577941560302642585114269604885464060241158989371640379335908471655472799337160040394066920762908405144848397428981181301123699912914493086155324363628922645709907653672183776622865182166918435664616494640800755398292491885105010116207529849943332822650257244229850856199724799514826147654532521871836567859617216702016101230445716451230579447021501906735444438911912582508548642702832495699668353304522952847267447171846771364958275667284387613311427397874100938732559913582120144652309617492153469209093463765594519347747335289794035672741566480644952617194447829401184870895583032586312087072823360327957410677224256894684588928944990865246789814595671687833150047096603899256500109215766097433121065608431308492858865161962290437165979073828813872656901287665739960839966160675982849082354876888720999511697578413484193200711371139464703675976391069982677056678407954991796520307507322831700237686482405086518678783105581091788806360201612550345592409579433065557106717276199089109259980820497070704335953856513356574481892896690803655286906218950039053119911340289306488539335119431661599359439959220060461667015164481758597214731050287522481841705215621547947133147310903068826856976273370736403685023154348415819694296711558904272978957559229523004015927582981095380326159322550307780186486994622153957693659199393265705788486530531363456912439955390604492171100686092356331369499150907722094045173864232412484877569098282831941900938371362083033128108664429114317610558166234225375201601127982086791959717563424357273944346750525569552748063200642757333425198337642644535728657515859653911389837497033004903985639283336853372842612764495994716175885439770384470863717960544717158965332102420141071185828493159991669315222382149076428627884872626816665894597433054873549646331758383034391808135636924785916642099000120980387284064751412126104974729938272416199788875648357839082101410985484127463582413917189759505901675231888473550074033693603171044341099932146479222343626549226523525492110155807061836471578021394204974135423008895451168622797363980961825379744080646575076406137713904104757783719282087233372951739681093193416237639808589181887365861742536597716745510206894968062475156474938655994469702797570577582815980444668212511067724358471347458207162718096128972310299912148511674666695775258644293811149295780287495982309162202285621835046350324776275932032923153249779717542263205226318467401117804208720328584857981257625216232770188158496832390547072831545835009736404230161027713053203045533631482302543996081276294466728762773424920088640636992116716121618358234478491025911012237009463267233260719534992689700067968593246189255341835817933022766629209231574771422412263197352814808420224262763869236399804845785125981373218381027745545597076178192911215891717102418736181256505117940195404636923312352685041602707747919856756004414637041634661346227696094905898381884101234395646003528996960543204081147307895892468301592794068260741126201840364780615761420502775982603879061456894300624936423038163079486268122968468643034851133508203642971324620143525112347784398297191092832509345432492640563579854455371661352813865334743552248340718834909781187381127657301023709297779336369583813734408655832146116511904701979847923608856156094138311728826848586954816930631486900766550143481167664152499525195594419885164655692985533591876086290680220371501391827804189809546858948957591612431519218732311023681861972227779284811962724324169182696120940978519424428359796725730121988372915325675131069812660904593050507691836676450141656800461153555997253389434825837926335476611231865704066734026521450410292351735237580749697274342958382691963247965906412883905753958294068688664217651739825003040015258674694177645189326092164846681254102401379229954151353780423749245955949153616489425566534492984926056003832720676286970226423640713948897782660313318591718747145193962158476877967791904183687422995499205299891068751822234990236338195136825768638053328628341542772014700539111715210806707441317218351149574757543951424956894163194508086596337829994303002510655905565885034553226632665087681058220133329280391847111686822386288929850244035308574259843020866158403012857589695252818064644369348159650380698785322981896331543811105620543043719458127463160859530889021139741097648444917654692386555664108326568808537424990565123903222722678165011107855042051835148971875816673305836595788911272308341460704278773924324121142797174481366392303417929705849428680434905894397375284468161627825862024976462213550444686309734140568299532363544753496439005950372552811212319449828059712864498881813209155148508969023299628980526991381001651341985596155000543376885906320954733216883569138542084278760687658944217795099019227520170733529091317768926603612583858314258773630427858847285102015117612530176367212895421953385988105667871203269568677711059103669222079063572408566903529352771315441208442396078186611284573461773167778012282894003207095155312871143359804229355650344741661894623755580330515061557104591407492706175997204283906633520870430096346476446139417610895963493970856090113422541007211541778532580378918825455420001529619308289316207171343104094544964054945420150742382355651968449211738929223683593334905371799682396215145428108385975676032529660570245199859988902621033463043179596729797583372378268629355425893421716197436967371919607445329498266547358913366573875132611304290462608693006102487993152330794304080795985860140408103119499095198532707045341166027269151987440886320896609286513427141756451410287096765465501421371568731599043542105911879274645588029321397298560329635594968991201268628847579365702758380145603680671690303626218874022249176314096068361902128750976318990725862833051984078525340571073640412283021667900847918395764748949974277855326020108835509681283577162960022223103984669454684874515599974300661637627283903814663031299981721532143395698432685757492472367847995583853029474795458983912791769718298987872943156498775250782036627936560887122196440367699884674204773600276747653963949898255681778535944248124369824651319810858218702805264139325471589903152742332923286548174175425993788501378680133577632864567832273238281190113164723194453234304038188500229044053759562193892267500931779825631066918646959924974552860274795632730477436275805633390392154373966068582187501459782965182809600848443025116553916223026532263093002137829327788658946159021711055761265190759749213640042270631251322004221366823423484306148036317097297270345385004372759434170507770551191364902539156417752576176268631481376859837999277497742412023406200474322832253625013203929368650946923641766223179450546092977662971404324870173812431438523525466822016679301517955446114704963869370745996179911093542171891832061981941256341143651863096557202184887502379341788043591883412791043077338929309157469996330482973579134815607701971682276105879722836179520235772580931042716462527434763630102113613701675180752550442007896683576512334355168029902818769947194881522552274102993005158138506032796985968294378214966343807107483542569633775152413652040344695240390793134299754427600311723436370613790538207322322330419621800219052853699148359596627026919254062667368711251813138286172791454436122542138758051078848640060592977457611768231024213555014585945039038495855866862409722002172192673695816330517822536685152454356976822260386987876658411624892819935474005188738691749722443004716735368311075755788966503166427697434367388901309193625726795090852910427675235790093146321889125035145849145770479180109668198390082703292702996849757542402319432002381049909267945804785656810062164335859631214785622374957432455881152101378682778795131000700274022422886296876210643370830603227305674775114011276804733712951810915524559428640190478627715290138429510907890814831661842612837523179441207771624722391598174257607814557418565241831187353868955765522734562714952834992745310532014664323338335512910075840743210178480838569226915717120795703887793273046786365293481512804367892377938752504389555886023975163934003306726050052835320433774896839300513538957490539885221737989862071632417016043374128118329627548573479664391565745975141872582796573984073365710599116614236764560717693068776587244109304291422272596876761163052589130541377848378761276930412514990749242196163875546475631547811315416528779823038597822241045242017531251466750857060329264010885300861712053284095467646023182408241339973196429186334279082888229703149402089520300210263825854533555790237198016672001356255376097277689404298067084511753006922003946704788006286890049281798898630894552656009199201103041999061255759625470208431874607307106469751822155917132287886128400344203469345442324846215605390993900522040883191995900836017160087014000534306537735281986516295631936574605657502683958078204569367234405142603907140264095472531397438882898458275880932224731117147621463505888180637507031440582620414282065238746639879848979244724824286820191841395683496066277665919729001749063664646008580628080613967818803272619157790180210151983435354921578165554623456150178191016013255452504527269018333048693625930369293467362634111896070940403722809892641213351762106545515654145988171446133854651069339712309420648843362410533117856378479924748374839262030159122648221071350676770279184830041062696010281025230340139843974930894381660429908101811182235959564996562858493645556702841978867994153470829009487645030610561069057878631159729083983829954957987000364303575007145626422431068164811608279963449252164418369747813873715614900846303625419113593781698029480929777806684593647839404741310126506835787702933516652120280457909764237127237662271944588325366491898598295157065410383198354393007811880027004494510211797992907977478393781832589857737679466258122413924594112942425046973684632186094125075372060805129411445418482539414440644329158578034898298310952726196823926289979392922081833258099054630685246117239941258389115267323357519061660306325638517113769407342333768102227979906832878830106193356539073009641661879450978841373752566124797563132650153670060138606840324699543390503968177252294405522066058154636777007013957898856235748764364347415260716699642789927274965280252162679740444904187384960192109503159195727434865613162502542363655159001483546806081789391824864396825273074114566300394365463098838287857628295091537180953856167944006487624104642233770138276396851188004282707767971299310333852044928182804431741336154311730245676934816898440294062679816117150204405388257810119287785411129677352946389256608338774043871233051545231745900166022694237955850011852586509272015418593144487837035988058311883908595550243733137455827136776053724269850270122045280760420539109170213322051182471013933670936349580539691258955520566641395937171845609883477120531241653376509150049579706093951834833350999747648300622820168225580623098804272131607674396572943733842122513059378712206707602748022876977240651112404404966051806585631280220776849963610424876867377812301189266138907387129255964519227903981957834953940373562082959753337074605482335987494406167052972805271349247351799242331934047779729500597848009566420668021434734370577847767240240246174243578402431939891401860623646376652113579094941470094300552379328599539306314423048531873113323003467468638947216959962397744311455600003331565400315974790184618347997065814112779631401742673961617935268792939623922177316259068484627107475179139876572344656922894721410335355334932705437857053069337508724014048346379799999085659703170738258693545871930842187829489198724069768204820544995210001845468194545748044129847464548426466412383567261792114067377753543537130698238807710259338319114303090903137776613392254018599592667929480055240899804984367509413993474137083582727155027912742275789957840539869055886939035904797660339996125197147403311089170833642202916553546203839697096599669107812592650995539502488578317210385882116195192390081677081504513404918159327627820392849699035961184967906976797844341078197493059876752501143417823116016367491611108270029996528418007513895628180463253472718212596524883426291579213641222400266421366613581312309123463626263649421130229610527384508004606536717798686465764360454501033143011167504860451859036597302429364925562268811311154093926169384117930344968927027231634932791429417205724366381451282553063590787626514843808410743962351516499506617695123793310593625383036055127348634406196530275419759075064575725782805933565144805667590791499193369808112686274067819105217117943448780586291075917257033924169198612599883998119881376468875710511574792506880098907807512003615319217368142549320020953886161480606844631592743681444698563663847435779582174677426764249763561037576374923825294969256727607312830966786804889949436600342548554862115068746010972393846819408622732136303661831467269567705902300908043091200104048907415132554511728696729327792993102678647984774349846063593602079510033523311651161001307358397620451145870101047292392323577954029060563474048089085979379415921174492518792771685366488483427663602669134696561350847495889441383769328728368969136277576686210206451273988540059211126624640391570570783972815577892343264621802770183468049723476274237616051436648087079044244342398338419797549083166487827533403036540638468997157183828624659344538952284051703955007508074400095022720635611330885099488911848381457476009974560306737230518397741953762719407113487601779016941462980651331548386849655553485608513329969451129320676409714595971105171234095120466997462899614641538597414465219969490315102486607293515339950136788403988291851599895925140732999255652580128032268646209818114496515636861010381034703094517340552274836456140920656917547176753982785749565330239252189486244327030768052713739165007176232518133457555805395759285584225412885883555760509795922712937124098266439971911246036168265305024306794488584952392620364835013306439393886932808995915176154628989348563329230918254670266437333213134608227082054192235546344395531069308154128532919860701308289074698140908020559752138498113856446985002990580658041034566507836748188579808488983945872494481374775458788794128918206140826480053358214016157514698417361910786728371955025016045262837161501094561325350146876263167344020487166388708677983091872957250149442235669525528678982184780856883485949268532245681459578502181169774424714382988387461937808124517977983527080801226939945479485411403547364197501368293929573147780026574190684653015723725399497149753518623691067883625509390785458508880263415811846525030742126944011727142785816968699355370370887334072521304870924120655359437918899285352598932908671028812040416800630160199373642722047592763429280700992085993502770440368142335337410171414243673982698170584995779265334104561040071423406743553201994047853204442143742951027496111870349862101661363277860022986721605423293702715262309702468656933155831841881010888704985422462214150420683441562740016822837302892413917952836859640569723032858605388177817545173787399057230079135912848316814568559165987342830133539963235399532289663489279930396197378024310054573675743486562237282482795932749504746754062712747989104240554947675783146048532032034861516346542743854768428157860503672467102649234531633880608320075934468265838540949699997162317497761269650564342877624874841062232677810777606148011140304962412764550994069209731686896374342295073568148263531815701144352148811251917510052018670682806180666409939987818318207645145243221914810129914801505473715548921040562870594128364634044869063243447945688057436938389422831993493552639438921152656101802194753604154444818791149815024998699896821516170587786479036956751551477393486463946659319776588996578650618891250935437231797896453334836994450460515426829021460942855793197747730755114658931290039934736295707141677402858618671463103125578051108942786300237310142016979028149758128260655708056265268300001218369464727829395825397893276155638267464886183678543638066068935090898862657433357852645295213760314600334429327215997140140129314144807148642571420634942918457357853348135850001046039072199836197144900460028774408360009095989608615485624959634141957973125415843106415769616550962630153591480229903304974885243260576584409733616539044062475693767890244408809028377496746210936935357300469376608455410840326576836420338193001261723326477338410178568543529422577937125828791718645746679244475678467412721532489046072463329637947807755734704998651340973335274331212071416294667522253050712984106454400688623186191786105265658805292125659291350051521281346037253284302858245282906134573652510958378675688640359727758612121761498335113192149795366533337060239932116794143998415194357882951144858088620969126644217121640137064941677161996668366689934984536582799490004238765228507756646215606884432161266724264593280014172328298242601889935601427217652857592408909129108829307308887765612454736151080115662031992392496406284259815399390028550774233294130535287042406695175557659990994722370026568028237666969556825813873760398634434057376933950354126603326785950709837027676093349497538493552857297626865546924491151700339139328130091693258928217157177286382630812062443974669157694327875404142202929337895323712710365481684383653153256281135988904537009190000557349492776312048376980445321193171046055956874975382888005054892755248816448552549199798877002681157961288328771292426114767922985893414402934510836278015480375108765930429705321288434608030137183807091998427660734416249365257257837966628913830132448308884441906134021239262112988058401305291098752192357247782275708855028677983838766525654836218733056696835160486779860426830605435333205154796829335906718587316997001486900678750581459046047799629645363628061032721324018327194557361023904960447617656701796748089161499800276036605728714415205444196016363344002101441827541722688767204770859003380140417063436081359812392689785947260557116615443928121348122142161415013477257270771048261214679822423942211368493075949120832133432734416953866055992680499465227489807014707824005899083349512488693555784528582842842521311071463959995103676334730136866274144350134157468607711645371194543040279650423359246184503505575795491802951188950814320472519879732547499911205679100683238681527278058507775441994387659543388537598921108508647946445341722021489271421317022090593047693037019845377232784346748961125499624548590791526392877549559645192352469242180900804992266722563721405849013537550250552407803635827315513771552280648948812875727892785825786557502338467041192184482042463853114441070422455719496127751638736399864785722260915794812390969333762681762119446611684651835820191930171518907726352290425367294497084078585360544209804459723175810479737368799277096095795771448614004131535724450630049764448323522270444211716493140305051102693773319768153929401646884824397335341874581677481370737620768352830325271035746653103414248508655316832484773606121253297477510941663163732954588857901019601332018280934939907483667258486711194804498423544130691189732055158629864465800249669636739418308124495726393270317198354165484581686462981243919936963277979577809347685001204041455488862011021606798182565208189598642237443329517163473905845362293916811471864078739023023056506654352153534933028132236780561610954819930536954821442813948460556575575842210836678014895876900826765921188618063680480921043250043454986616604704055262665973783532293337144896125359080537010886166277298860803249744161558113437458195336722001974053881767241821465587627109726351506257658182066457826180700521860694509276321344395492250130076924152847214963071540116259497419242322106340068345133606740974622851724461429598938322120737907067458279500742753672637924024227915923463703610088571516309060879211431334273339914618434989440882681685710155760726883241728154012827168066266082537671949678157802979788644517715881009698181897081394282707630966471087011689802209086905080377772471157152648533849050613236731280774151161971899696341303212943935766073683500129826506778691607060712385054241114044480198920109120972718343728082486529271543128016525672603254551048149045569637977938724995045052932864277254574809893223651497876135598055235911982241382824724089998574263482637804532060253851984880786372108391007392587818402829809441064358577275328098237889898487056590458931644496689523228731597522326331317350395462425550072718529720071630592278706226385007676634668497938503991066211172005239351708533114949491704165729800058327233511878081411690128681137861049101801850716552072174158971914647105716541692109339547639936556678696577815268625334972245939704638597920241735925719373200416325055635398150171612867110195733897848776260485560823617065259496484934472332583364395785175291333836628199927320913123012795565260343924238941453685582250087099974672923931484241330675860138200743856913700311509723620190217867681618203271023131786145589531645356453911655602377634456927330084438343895674671799516625343811185597507496210882717825291170636049663841227676003150054003561617062406141828962559186096850335516634207692113981375723834669186681887877324903894113629832252722998113340021443527068258636365731745896398199859609801181164954999463998429428537813973006249383882419401644760476894343130237184683244134774408750268618683866505277440358119484936721360439040107276638523743692691554846149623595821018602498927154754958371786192823716624291524084857965092332861669114300506114160120907705773952462988107762239167935552747209935665088705196771640895969169253941783969459853718363530651833047171048043241048545861261348794926903439554081758905790909663574938520193856958081713348398752262553092694997276691502353169123886295845206661253525504505513804247678883276681562594471480132390666881701222504920813029554327337451520229193742673158503985930199437822138235680234430301351662668159066383883495890199112335970711403008491753271124250565435457596731970696680354906231572545808181567134810943692081465563966239023090126140419905319978056886522905461603942670613722771051761582717603712117007538918884468151919767157768658457989433596594354578405104013723402127868647998857918402922258848178233217573759964243662307322525464093436988627413602940342846220550836557746801862760277782949519063158350598603335054648710618484350119879289591177822970273737928212371585581361905103848580858127228436621131545539486574759978861790444326194355216231056461196606766895468147504409949943309624366215843308420060874524064799999513719944644120078328261512467149628689977202891484578040819620276556411636090706658021325850629041023893603955640908207119151125249845279545934896984122130026380923318029586561324164463035483379466787632399068744626382819493745506988434044137164506943787863461302460668328073755353340723600901448024979188398368065655033046575546336958000275640586196280444179940494575505345251977781851259115256299879867354225043019204882635566595620197860704572261975489501958398462158357548965998303795041771405766355794780172364337633846940885686481535774449621797138247362907677717275203795295211635610655111186037056613007638566800440136830820324654411012721369534827828114400926368492622458653964436710036884785900222428081616933588737719988536796183580512921595604320656847643935400210963942967073551839727076291851690023710843223641083412142798217396086351405129543203127292799818144311169087324792840484169955472288751430281491195429763172885226003157690747746146756236952731506125476455205389844615210214426398509453439481851468842407837095811230283782917424029974028642995839285860303380506566691799460656561435199067227941720805210630731246685806793275733519808632822183954102294832583235189883837721238895570752280413513686921957304725303150367066526752816480589873495784894217761636326284704234181282686513198013466517106858390683829399261741505975738255774328430807022104576668738211768031472929039580352395400014336027756156653481171810015622089504797457642261236128255150256429178369578891924305076198781963999227576405223767134773094860878656953199013424842335201186598687025186796483235438108345761798128541764870417921482173345920634681294649735083422392899376068866553333232448342992954153533748066964955914522377875443311534708213283029977925913170285262882023113038607965260209032036895990850409032832230529314555436201959883436082049020948089779975714315319900684419811413171457573300561275968655380530080511770182623604815055976414970813276206313734542529813260591965574471901690643532708122963946434967458739658582835911931928019448919191824192650648806636757818106846315627541903710968900541888514913191727890613698379403407323974684484262537270647766645423928323005731558078146629686681756791440294853920052476655339833479524959616054420491430360566614599312628304135396530681275645939259188861543532298043597156852278632902117540711408555708355146168470527399719742093602008668243639052388188822499398965594835135142231276024694047873530337811619454026582346392228308166555799252333435086930274436454248487707060312629966165406868653678762601857561573363061294821455898844167438503901587047715094961176698201902950656423878982422466184632722530801191048225400499851216820294056440373278173461392666799452807105123617877149227556607056273127411428186875248279178279312280459997537170914819100673674106964379949281659595412569653154401768376015695555462564578113007708847922107820341953744430544889426452486577527689299339744225004986577905483915876070817202205362108473439259807892003163435230421158841984082165908384723082965917860366325190320813027136578453632811799166271147235024699061453310684572623098181227960490552341839284095294543062191080813064719659901693474859696108972658111510949465880569945060532073608990219973964997169097321974009831953225388814954352129701811635070707779126201175602019552377593960965122889266798623158804891876425418405229298587685236912545606260948322642398804391854801858387947974937502129491354117329109820440422668284520221899625028390859194382244432091399636930996642548100274891832203501820527473560832318790572843245158028326314911363878662546878336738035155534733760323076076625235132686054472234248234484802433974669035199349889032185425085284576618377539696664820508166905646056497483143890672181629286858286767236072697779378259339296843871997937913166745325339361739659008721945705345266583797430374079254017311071818066633890792944021378795446945984931164248976935601180743729897450312923816596705796605812358157536217787571876801469402929632685429157229389839671038782691743373187939656665712467123259554310370507829370277943553799581163338475681787001162911439142266548429055323879459882980822261050862274145649442730641054521883530756393006760138423358518951071815217854005631328639098288908915333679957587493310617285623325869624873779195684449721710215738245320691810300849624011556602497899662538040779301493251771885339090533336372845705694533715114924858134090364520400892111007255932805790417447250644523577295279071827445535524293984311997773929838396867703485069224510214075923646080684295475746668581631353671436149437390510700421855285023119553260639724074734834851015110679730625824006602968841342249199007791169276898218862612071291451117930042291597445942116596638250076003460591435779966459413083157201526176669186484265253081413405810281959591497806809737233599130712726760096866124060558596301652326569670949486673885057795920239507618230626396804945088331724282629471343264594929176659164141651316845315190161285761556400837296487940751295270194307932385579027032767600628527197638573318905255407132466756191367400122424362766202368393450298163667975650950955670375963275145938671843081670364635492836356580045716372890345050084945117463757101030546774828601848815840035720946939078889921042463306085512421329266013259203126324330481498436577329696095539013929860557954707392483657526835260861315401848579172004317755381693613235500053636420091403823110027125906609127050653718858059375727937938464340293343026989406279884839608280219052918415092822754218748972607388279811475824034428431970143930579853665579259818562827496860388097998556847720051905713499515452630207643227492204266488323597460398610391914562826348489409402452308711570443716360094297226554061250487184508586287764062503493011641335976912729466012555217651130479413965596520925537401440059188241835166151545591507921541443358208069180807675258509522505513968563427733387254016821523044210086887989320408063140167733222485300577321711483378068930849103751875902644871156502802130444145517424460921886206376595021545801326475293304336078476169229532425398985391387965280663075787584773097219458061366817951511817347510247392993605626887160478765919292564228693958959445185103286733246619587580621263511152223080324243355896353328267137418695282173011904094540409988863707405215200907432745832062331468977901219868005347087051778409355484264351191583979931043994726145647002500510467710681480604592895551741343348175342700728167960697733155437143679594604109417129878381082524186096066570965596242212055317139309398295448017482566862808238293998937853211747319221497212188256110734083946153603578826999273897668950544364274355561771888788336902437594828325824200719195761476501774804330600488652770821328666408111871282881961502435118478594211923034187292321376609181110572681062577934221728657737094417083536813730997449491284716737809022866092912576101491406701601249512210689604680092193262075061436483119435237931316112412388772310886137531073182383996762461742357795849165788582469678794785924472800404041505221333014896539708281213374201006778418727854735176338373660892831850229412167298479905743219930813244799878609457269807267361906059687762483218902702321122177146836254322713420891951735886896977163254408780835117161428770276687909843779550588412804071337755186471158813755044595970791328743107159036097834146968578595947990684579882829417067035126814169401126432290337518494932988996032627816647364530568690896422917526733167949561629984189961905889411707437128492746701788364077331816948020670692594035542436100643147977786044324822225679853697882377453864429745155947583639770787477785918931582455321711658307193946217364933643090268406608517240033085606253665868829635060367309608206336662657164231187052844532820298195592547154707461800670496416905599689626328322253828777512624787863265640028772346438147193437910630692355545455690145033234914424424839509037925776070459890521322657895924341954035112283093140300478501362246446143567520236653302009121645957304428701902970849547080590328169258909038149651969681545165743443585130504228924528820703050889281317849746634989414314839447212789960136312045990089460219617909443082748006991515827827952933585720300158729350311313796770027815945999615122452255608237257071005316741821887516238962035170468723525975847734544921750771610455870115423214160651735588901910305771716266487520918897443099654270015340678688426374901406571005596923325399088854782549608539128980704656665332710133528481531079002661374017413608885114770958263642637548979306372575790283147507886615672424304156055070540783696281632357564892979333841679945188563680914211660103991291028221039210082732611001514297882407273343159736975813058610096527292995556081895090490096418279915952184838487021883648665805164243760691084584094197507762900929405117653445319181359882436922937657180534703314391263398077690677748972080597673405688335322691341797434937002682504513241275459570060867311931797507580420368698973242931622060065989416591702859651359139156483942452205376324534741888294185543374096386015288342879838713262299236755965943839369918347051775863880263783663773586548111912274970716866330592848080082505159840461589404372906326920973774670568990635415077723320022127524358587729643228934068214311874332190178736063960688089788823911879531514881777424647677479992994667514915535245489372122700657594646376908418339796728625409889242167978935296498918785538965071570842369331730392625897922786198613268152262581543108325927369002800927691918382551953063607264281470501543246808800414055648158824953073799854259295647921518900696099441370197123762521589996349821225001369273137289911149675487181787044981974616856350655906378944957996856594785286524497975044418921345862679077096222725989585600381401486196680388718345965547796017665708913728692652479249644225043333842270859853084021861997808711896075978476352126458535537212089218536586502164888476787939152963785232952822013649368951402260694527993711983982467882189827619363317539531660319465855496282527797161009130179102409340622212178551924687138316572279375434412077182146604861799082731694628842496869227440796092115105391860751142703891947652145491470650555170062362849116247047926890052109188288062698675921652277061817083361814339135205071540657948960816527131341039444071042800496687964204286126062386959352319629464823658408352992670823650191202862876885692857814877459824061396126619071940083037943035544671311758984082917533086146120958360549919648748241092198825376895483112452619366197030960760420500477060271586396288174133477680756917408883077017420711081466816390795040249378084132039949881322024042039835477315835590599839590051486323078021009740467762066908216037192896373905743521730548194391725584347730417052066071723110440497717466985514471297778194869174938457022103592329063832707259906717434660679184838261727087254924394030687013118577936957613312374074233012427837754546844422572090923151827083501924649865469692031295414495411539337626219156447329925246288086705187626674633052215177493388179458679833058290639226260730856005063358429510501021306947525955099567642792561626026772140689003722281040604041003335366312523581731588266256625410719598370968274722679267552968421185519259523989988037638461802722795531441656978797491110146991148788356466140960230325179509643235877668705949390654168097524961475763837768618571640823308157653811678802195027883317396658457652570408333703486390040873522668402932262056359345769607532145607195588570772745744688968828333168496979986026849141094422034802424305860430091827584797640399426601153440336362811921245462605852526419514708853202208934369700462631740965632054258721666139131919643562150497979717027390505981988187546618918837937381654058177384540982431261797262353057288771971704758058827733118438067188858109143364159222476116093776605051560901720412613805178358814111247757550968788527207887465251259764762124494162024066096612226451146304296560434087549223676222525785538866155403616018482130176992856292615177128999170221699686690462783648311211563121287264276637354446275433523081079757411937649885025507772322920987753549772027834677971611812719141806553630618754228507677911800099614599046393279986950361143032356528804381812671352449014964714139359628590087403422478106071845685704960751912906867101674949186278492374156406491099027780253949063109469518860640724747941442558280955726478013446831032984926484432506812059196934260804707221444931038162527869211285003745002913792825881740637812250295464835221167017850082400818031860202326290117180907112565797826264147676780783909123548442871562424897979359747580547044630972548192388196589364870233949539845462933080590216585262012379853628761550003579056695582439487782448684516942761819413378554388874040932040944812056321363117229303877289991600387726297554296389955069661483484985818327667397184421328012992509689634211090070900167527924645285216632448746385157763525128930564716866262377295606590817457043613561016977845574940763780777672820306731851348529013634667931324734793904312344438516847773943502947525495351459474154885164360204807437080378370336030982925606502292448427053369911232533923924117676544705988931256038947331017384547279472865437578018665800173568882760778651256091407232085946319491730638910673144411760141801850265768511324468195733401501274876748658255150363390674993719593054428609173322921622961342976044704071339643563625923226075500923037741103135282080748525657468168001825298759828145466417645046468436746399883931199557175724421950476813820017520348278389959624464192398173467533396527572507443940034270374521506326885171493851933901071453802470087862748456740270143250525670109138902297356809882497282213123940095372136137636602757460774327117587250673966415798333545835642531580331745804062833946544940124801019626721889679164410078098602882300728034884303580060965798309466687853743806004365810457151508985047351677609407331618028552729891693990407090180570498010730128915757225019711805137547635400109273045522819516141598788443200767132828845899107047771160433166512730385801337985919711517444100006449147821460253374250271739859578622709101780842618000980879601510806433420417981946141397162967974135307585088272796019399226817740673428988079277863288226005738786407413054308913261474884812891710652797094209466349618964609110293896370304666285628318469079826315362737650876019679887101948135910909978038366924210816204278039715081636147285056927761347261466112938981836584982301235381228947126646346066631900222258132588681511703698595476654416856600039058064029969545511958242338794526653558776233090365730146320604334281068662923841619905700567514968405531260777792375557070733141516268228870414025392505910819404995452046516022237572099364332123668515806252083886802448886562070851177940114009566330395686199449368467124620488632189394714031202252418978656211049819977469352768354190504408050769762078245902073674029377665771191466607387496724417059919023806976455360519086801337047844380126345374419728714768848089670373014622935259776259096785221528426123512907088091832276603032937785142647331142506937819086279772708216564406695456995969080862816771679396355928507587577056253947139169807634457978157020093557644016025841096420687058481922349823111282761375776861259864906426396771147914777968796383999726765051272202656449428796753649469057940535650234518615045633097489551687370240884943925225561066174784138002119349683273693343851256121859083824230359294026392328328043109060213865079442767120111791641957100436480049666975334769878724030477464767417786355701415438228774899957623746385826661564274641724705305177598941401850058637651294159279821647190658342521496560835239541468391174164422545881504624764773098856018551863922918003775930016883261016959956582557228428715212070860929210876020197858721596624720109024864795425960028330066067767945782142766488864273729128512948893225128113393833688308868367024598308499560969055246421132607691688143454003924814809211158888627557135353662493180235838058020127551186176149711405960579101166821858782618610182562713099894767671056002095289325844219707050783811176567152008160307947009657726912436819299335317612090676588835153436053398128834647815180506200317291555667328584370392426535341350039916004491411920833737267984733803771876110879022068521114796193605261900938882292441139412572121414620050686171049214635742417887864554875977514019807131224114457673719072328577423459354963114381806705449114010705719060810370323571645186418351924213097138657662438818146121216144071432974462582575049268170412743894004106162245927271700817782039216474770271598320165207138871013264204668738424814372151264712423641070595011636417357105985955883408622856062121399700501416520506495578657170796436120270254723025224208372656889286465127911738109040185826841719316545996427866225575947357993282450254642604123829118742488911007034388159575627740646326708648965333681266694398639600734537951315034982297494584012139845020983665137130202346268580514699073982194179296759867488720566303668178908557439607180006922484082642501308170815917142950290961753448584793175567781706993005311712021252793323314838932298894862560803196923281203765731045505323508033774987382656013652036107881109987699177263692810696433546164004234034839457880110095857933154176427829638618690434271962934797645048319491774790671761559782636793307206872704888843303041676549986500563319221116670793930277623798144623746790924124166304491352108980298421145602357440712864375152383910526549994203830740418193472836087022841664204085043611210651394820364531884592262409396430395364996777468881382946771593400203756201445306778738149341154448958396502048038058845987091283224906656075599601876490075712459646321752816723418985309028434274898991914514500797168567300015745711701038974645623022671255830707678926567778177133359163463546967334506002622822576801910151703094103760367759669061998971296863868580458810892007930902788827027947765850361664141120920773656098134808220066887265040480298915490342654874311907141269517018740249942101245055454523722239459055394206011865973159230093639420461545889931307039988693765144856247639955685316376295422933494076850401956457774247739437244897853486154283684893335879941264564753838070031486793905389173567257394503128656357139209015564761126822989243822014521955159353921957896168440157102874749285864551477487014401186792270190196981570768629716190587297819192720538978535241802695979685778396464285571460868361889911854082878698475259278608768673442469434517641942831393592704542646839692068127779563634244340670628105253287841237044273438564898930258824996092194842298071194074025062105299924932191125729127142224539679149385729542078308389733810932071579949516849212456595688152395075021067469605052632837488090061685606258875807348591893464119848832191720568039575230880199044303220982169025524755522548114570302789645352607073467797995395631010942544580433091987411293299157537287468198658954737407006078556098237662023533651286586698697180762007163244920397591168742582073216599854538617186132394073580471625919355070270994529214841863117188339519195263652143392583191987065678122817238524740743972316185135280561877010806278629788908444545466395743990388982948193083856085724709377797651329006814860573619761851979918400333587295716520750462925724939588611020334361275389994697030809957245622644076211819244225163694232800456220404994120160728502834712876264173140950879524572379370035022653781763365224707200933714315141562596348457825034016727667852349380744465286693261502877259797155747924309121254433748639629886254399264149221214197663863650049434528427307360372352274731282140104834310630164187088722495445563923244728928470119896132581115546076341311730747051960623214036062755493129286331521165218822149756569628724827106740633350645027518534420415578156858714557534195774020460729713618356655112215135911194376473249678118809438744968664483810345743363694364411629349215129254435362977892293462154877510793168739421012152449449752276560420797532687208108556691616945469981492893602118448377642525947933021799271343137144312167507762554759642835801411895329467777995432745224613172926413858456819350014354062314300577753893061670731239436167223956766003909103676521631003339009035283851784492366570891457252366867859510065236239949657073705942044716833175808896796427384541625018377396528794060395516059028451037020820978723172427345927849931828865170057518658954418099737366128214164197679476261776648476765723875541854806861339816910952411141876266204328136093103480550856550466571112263143194250725561235226773762605431947089967454800086339778155868013473149211205189595455615002421882061663143375121522348693513606267993384749788904602975979531361261266203585813623499314661829251939348549976438230188964354275952791499477327625921396518487797981395683693439567123900594519241461443163769679584857007160141008532024116994237896750107499850698907051735939970186586669789916461091923027661782482012152959824112546388083148770169185379853900974739258913766061214947603839537732125113288749299510263478026810705339368233156982451333792463700372663950537422620084469181458352376144462168542987155507474564390707129133925428566230541078339605635906835736641082849915227758993264090618829238744966272554004152774298906209628496778484262226715222638355691278971534011802613872705264508246579619772398360211333197424062819802442631511846564393420520791699252359107659765062991048577999244975986462708795228264929579324576395568679468312242695232659508554990887870795805498980768210959059558075094206577295098092220839944382862428891305795622257990237694369285014330617242885788942509323145993569489426806959512888154324521371865566200182834507236797745086887447651960603750188770312963978044982353775383145561234801657768867517186746220827551951448711874432464205209322591240214856709287271122666732084914783826647666956531433791941873583806903147225084339899601073924816632865104022824697716799980216947261543399066248081618242771959765154579256152521172755307961983027720498217179667360619388889385967331499674488313938224942543890384246698867893435938148188055202517021600412806280822082064652484556984973538424196095222169412764797718465671826841329196603882771275384110709800666426632241312263313921614340301185316039923465046701781709629460355666028605992598181271300970134791834380625115969199719901623380340096856169707622752695250911983943950610620717495656453541636139728340228583701817493634256812492011784824989720941905347140671279205249221902375142969840740421631273706325096036468802357326399965229899149055047303762303973671403069375519204387244259938948409488917881061792505324351935425061035512110181362008966975603122970200115736725128589549259997515329019402505342391678822451096140177735470198052442589495798992976721355896541586885945167074196817151502316800809759245693547275780715612446429872669751015083219369016685100878210890608685659289999884954732344724976421057176939863842464596232944381381614976200810712079298046453009467872107428721979007620438935309520169960220777596043023376031379400695426788590288810386952731708337666290449113991273902243057808072607432349065966029521886341344661485451503377450839735646993731722426151545640269861523624165597294639148686583067434299893490420230261182682094705622555822333525933127926974476907731230386369634300048330940986835848564500034902977503378547653008215875590921537732686894587265658066930628719676365793479571264479039414723498603316632324539803606113773240308686085887909124796134159681605366028256590287703243247225267090716311809271552436162812320014531470352119497414175544607256815262685799505338332963685635023913739701412432336329006899001515912418136898436851134186449005697966882725438847651197437790361016262012517448809182204050773167898145448802270572074379296379866884974078138303433949131134579752293460076778159149229240164942447612983189741577623991167202575327905691687438802813334031338013259479532746372779681545336451491198608259010031076092278382566389423004189857695730974189440844856279409278196658550463728875030949728217680159703316735491792441214649170666479777483071589753595474456821922225756852529410011388100591899522353221722462773790978538125420334035027790474730186906911398275490120583245419841119745383422140337045722636480506004315888779458577571629846861363729931363424318997507300224782862551143504443904642009095008499708037205662135707221514308268180866447002654099325394282986893967456382750504511532825984073852341920429901366934421495911154674675855791581247212612457831707004195635894010428440990771241315844675691413220704493299833967953295745626547196398749116689553415748101927643340341669737741511838455265412525585401137189330852776036263427968575675683153607359525075877885829741696762346000269395184545622116516702595170694473268380336092668014113980319545264167167400205807371077419818781492144886066495275095232426362642947425760056007408198952332884639161368335003543063836723857034826507931506934395389353124640965547253629595378174536616382591121464309812240455748227342736321415256445905416781515752055094278928524790319816573197385787985641856625219864955227830133706779394971881392282395262818326534440786680200554469849600198329924563431005144135545192129319388740675656105450180171197798429539393051557325920096716807926804091836081680526176819224631990190471198859435369923573152977774255502661773741710720389515613466245933620776980944253387235708146845137145109532773774188061518090020132956682741205024191633411161013631812573193658011879232476189306366040714596533305018784634053646074101476623810991551713708501793988446921865139349534283852325683120064489736199792908757388013170374245124921477748835916064282045271747042251944006271889748989196491136538997600408081141997334653209617233056008577539060628487005517028504905959005413001857156323494932332861562794006983485973611834765782059365146033370200101589542011277423485650710868508449697982567842790819795538513686139085751264980640884087640237690720213624432726503014163666415826253993649299585748606782094718384765598688800612162519054851884300718452275203617590389255876270859873891518019074806294469184625064814582369009017810660576993909958065556490026270353275573039179836599357541440824694820347677178180641041867572799941386934957479323293741145370412208824762012586470264437495679702814357611321411996495737454479931585515928079478557722448523035737519633483159915667310078097180418052214495188451707230905906273169073840420944742585630496543321955424986685472479509474842568649441775214014526581369007567203058221094095957007711403787488388407707595746801958285193755351647506702513403130912863365797727238457904626303595071996798911616110761915588843188700692274367438537497948799231845453432200458409370383539874260222922473785765320209595584937722933214871773938803625724067026677708409303921547447295909811029346883315159216489225952561010571860248119669303934956438283859408407033632294797820314333571135769313162613827443505494918322992229283647424785143203743688194747731963571016216339058498569455973675680062082016134911558265691455703518273236621996122206927371092733319844076873086205374492027919111160927782994242499124481833160675333203154722385630891223215057130388355702388980048985414949447073141359077258098286946063534034585368400090925313599172939978039669684827831795069312910714062351226602513551971981980174945695784869741214604639426407179787195101982838656928724324390975340539474875146368621911542899677052790604157652566679739420062049305013187139044878436256069533575866373936846489996025280897285229720721283897425110622534744478303395021377868704447578285888617254212056926308128329383624607497343885832465783728513626994708787360188736228319002069844697158203948316437854424406373505438166072660873358257605221858659278706019451195699759963294820909495506602193781059023581129263627197667816489504942248289243802565736989136054657208359287239031675579787216302284369800102633035466044166513896405543735112459973241670202391665817056274692928572708303355362763348891053241554406330497798733781010954603430032603078374898711653186042915353277259851762828875188098912662786442531699146263803923975629810418845358658387952193243080630321458776003388122320079725641233224982052047622857573493023794465432139371573415230233090562465377611091849058973617978748463135123348354133293356126958671172247808544277654343847437043519524418441984307366165071553946805087080061809980296668314869206724591989530742143713195521140147107994348170167474947388104328873787421346150845035816173070103444339426830181087058991970551882787700041413080782540413224330976135561960943543337909560882337686790612734493830381068187341954166358226548524383383800741387418279446354838222352528449652149227316211525290964207491083983051673520269414572123037853444804276191457863427168068652686562065117348807276296619937955709749813008769979398106900281014319106307893170816007504915462174379279003499674585017789825842005563110944107712829270595757016900397313831202583888585307708225509055817300588674690989011220422701396195782977996650797066673448356758536555681619406393364963249653432434413539035633776585398967333079606014267548695442474755015802723382882533695173155773710157681779338590881155240640021305817400722726105917506628388088944683195699432908883837394807673944652354253563542621778827929831125980239837576279677832516599779487405791252184257739868352431848692801824509768960521112839874347664633417248825633536812196533467658739451859221395665322472406357128229869524319342301330804002839248702963959748437891105043399916763572287489744991645395786863524562817103870593865782777255954075721447291818387290496345916201540790770819073052376982170622238310927979553770485806344533462215608534391782413813741553388600860604753434646165405423708388642909818398431578670436039122156405491548780826964371605401928057356016550606089454450037839940552049533058181786029226453633683868101462512651137767668880679053297118834586140237319599794233023133364405234038400776359688744424075184979786786621338215807491652338599009780770213507106663938065128808941754944231641545581075174011317442561935817316624332857524316401344985713966167794952796037578632165982316742984332771833579956050541274736685622983708113949026956082460660038351275212882579420186736371990628895933142265773304092333719688649992759445323870427382252740651436901078923836193889535516675649542704788208305040966501810932030534746556287670559029623601344255957775803707117910955631318888285174154391429463171304051600351781683036820336052560621415575819110889089798619565772804969620541504298774382491846840134693341251540608168146343182152958187089413083746348012505187148591239733080714770517554799634230372667418254857099999293851025056668398033802542064093751177717437357247993261264152857718072833269846012539277114852043283941159099910923487767470073956537188129280471588820298651100664011521852338611421815566738459104211482209960226150081260698692487400906409603007744962175104802237983113074340487753098995186439432489196365426630546631825894828473310634988866248014814096966826683987626997896924582460117936511522338527924785893695265116818535648230626484712023896364247630334271732620300322852521659079110732516055288914916943184530784018958562976791732649314760934783655984183608915845202650852948811799654512243172051871163260940903972184854088663645446158264740211393809348859681922380698164260955781959369518728658989628337815714542880691499532735001294677420911759572283884127461815984152626395293555251836493747059389743055419663978127943840550751091293801437961654666797710031442783074401996364508380752465588829880027631788368471351946181288715224893993085360150805109661340999750166362229394482974387587207135301010394035103896222004700547218361604780410179962041075798095033389028527643805316068473799898247074855279390339390425659835472371296753218944231456930742914221620913455462277778144303017240279637510232727432261919697399090226446433197983833335797754670759001404706687851292763190437821485949327983425613928087287704980382923492689293826658412067574037500654782553996029337414174782502000241630404707609813555926833259043983222715259877740058341852481839039547075933968098084640285926994032271952404305378007989905982532795979576794426052969827330700235254255266578450725627335098899562515154887518991689044386350879767255817961142532492218665566000994584384732959960020858706169426902125796439860325473398074318221521231586932382312580170772062112979409030015576139136099178504251087526455733181948201964527732703124114154800601362723532506763299557888620954380542542737747981568438150010004019173729605433112212126764453962615291335606233178170253539581646491552608473298047180440918544560118005976036484506495289541639428584501682144361237916110976395990763747130593305404792032971005320962195115114066396025181065291979090640609132079673912045042159488934950707618954004335579698071258417205748648417111201877481822830980585440658941119071430753094810753396769129272296483304863465383406735382213485430096146158637457260828333725614945665062811187960921245352263585849411653486822655537247917290136629574673545642954530009753308953613497634780779207481336921792759657903251337669721522118699392250450551952019615396561145032374791013707576218630164452705013977112956956951508908972594742019211907526758737309349436025115786947810967917860690596175835325564111818114185907570841283296529215448592621354063425356319778435694178829931146175184812577581984311122860059449537083671618726110167932261463909476573346167626249328646443251941747134006526498651597323269516859890938395092309615717290746563629555070549222393647335118914205422158371280790283460519536953313338026823925258212654886715382454620667839845805005554910509550005166091971652479310496206505166506047692828096248012665125313078136554279812381140564255299478772821679395624824636605634041295514613247545346926793878091394260752982202046724691858269533026334466407221846958825037631814415026028867158636886842101349343723529934813517385334371953080317561968412031886807873503471646632820746234169650053336215502061486045185118829498033002925495154608919495345009532167617914793052879484058609118608372044715989806748685145665708473604221478509385149538839034527088093012463781906429297592374496144906245572360475166978328532162905082555592516157835634259763520349278110663852341459892022593191884667166350495959233570974944927773810860344898500020650126476945681974083300772157175989853778885301171374323404595416330274726129343837826194699042262159772231160902226621068463016928281490462853723775474351623453602270552111265014095171104617467400802617207204148563661923874130581691783350959230438511917266582913291416646789769849459414572672611237037296944439560979502803314390395183181637122735853544273406194862132622751620143119929112184324273745736511260773424149948365899225400370230857795084665521131889727468151571915418226967756988974890534872104961841506327834743279109779613934647373948463392351028756301453673007886255929676052306045234801003941878885194082635313259707127009856376612060956413205832575024783437797496323175997445614025728524954618720655881954510912911677069618659417706146187334565615899122583844060242410757250806271529377792211676268769258188324850216056628361078192324955874776456541989610981030855623436921305264847894280312146021307418646676202030763569974525724320560068836722796163923478505126999896705291777922676520041612570491986243499952224201867585753962179372334217613363114758345457417340893079785166353462464646998092233388634600053018697447114166964490646599809890943505323954641165958393830773635432427916420792462707012329657123039058791074529114835005873913992572711435799227333058516333283685915090397163072608354298924631646302499615687267432569945318632628668135843504801977054518045599830357485266487644274303840399026460817630511710858086365641881187492622915104572631371994506548310933508072875128766603992484116604026912304921172146090764060793442282915587722842857453808209980076694189161230456614092369757668494464103091382420358537396435009520729737008788536550699204705067399252122675915841549747934482724718689703691094524731947485958156446471259177934136497193342553246579330522050421510278613715550687536645658480375794806306641731367240140365375660797579642366975751380613606472461777090713887550512997236139436089951213584742611329193937027882963586748878322832199874907394810888553382108749049004312892993616728672312293228921285391990447838628664696455874478425368490806451467409953778838247802260516522890854765855015131750666976825954492894147996733257128484595780902858378355571776972290545199531137237750385778112123618769791766965044851569757176282978160660607545524812815648525448078557475489710035495310264190599999980993364951585652073433771166821902051283977734750153046882610773761731905557781865944345536924356074095858650010949907932769490409634802825574505437116324387708998185326705083165920920450736093629603433068810978327484256915666504512627287754056907776965998274188550943766439990650535171656019965786173282471416373825982960846441847276978199404306046011432689902285230419531304376041277513515260106119693428833458239558251908785919947188519573227004651005984301547533837991278640987880802697972021745487290989874248169573842702591971504366984588186439701194159285365411035467758440503639019221528985684012381906140916443634413770502556988372139678175575459010234030344571028147943225892009623589664240935877161653036988079195006626607818302694909066312115923591912802595704527067822095854894012888320338620188723517130498981099227468168420638150130749090265264736539908848563063805838351351456478965044551467947734185238328804851164454317140525857511482973644888937207976830484037732513613855802698405872159664551018778348009011235538205921957384309468524298114430471350511618338869311842223700288432208965056613222277714674937965813587625984122347749795896122270493695845666320655093806043361721949915490376327859870644962882284627112582069229352138239163327499409393742559038208037051343445875871063092281346012671170712201807592738724088066059414259934182265108078746545475100192506591695321243283323979414670408062079602378557247845857152923634878409336096496809630696586985042504536261778714957370873254346863834236746089847060624539784885770656622089298688593831219656464552314007522709415017646603938152592971508594365497866632506928634938834359701544335407825257361074130150802722131603741209191440589167002495782948430157078479854852905766389298094299194604503946428361770182322138732775370850365460882356720100395964581305296336680458593207172757287824153433351329380510737542778175252957195148362124159159295645580876563012086320575464789632372134944868680015249503193488041761497068707709716705607220887487436177785852224949257981786877224264688066444339725420956639425576046474436345871103561854950314124279170729127200206505999328109889562391583468671672581813472581536370543666353908155948145998735477695610445843582018845054041799941618347729992180928124687882213781333616628803566810998964428859301662599228166900688270498989033559956136364476300160770259639033206263116445556044476034906917901480452910018753335381506954243941098952769937860513739812251607764869803846077395628700462280348327844070498020676009496631641913480988292183713406800668764114526876728964011912975714848851090827472746772320268056241178501045898902032870912653300922533810145883701724699903491423522475430659252875731757517605424954971544193880638979595956414759596291504533631249928236627477300673534386549277488343367051925736588336319907769981535154310788009019587466165870136336957535335027763496052624736696554670440975882253773147091381932748657235353460567460632179183875883803534068920477890060933149067280745048440771917038202076969045243018625069623652135239577237374161461473982537500462245197224773548088759167894289029182334709215056472243213765884438339529898165212949834638711405516336162065085308382430319658828387587480414164790408817221699785920710763140703985783347264935425602935922083278772092285257279356276233064190532918420169794064240324103548264230963340669727783853026920978360072675736639327040403395519052550592095962394977056845380591180895950828827038529522380076250647693052335493106799913332255007555144467844041909548264177587152065204403303349915876099761567287459605814993956821640217569478991845261356729503386313934025375038674369817053803097172664530380063141498540204608609443833768422492102582785976892175265627414866680097946182030736841856206494647413785430319278898388895543496655672315019909094077303839406565757135473861502928764322239403738236252697807505837288678374448496746189777160051506687821629183735184100444700943473934691078700415741995872069554989920009395709212843679622662134317470505991752243270034573384277791432987723140413069323393068436504082686833308840894827955421472807595564737394713702877510226872046790802122285753680910948005447013355866803001814583715849776809707542084825038659126709355817731699647922826809072642952988318906061546322823112955015583436644847914584637279959401704378587926631888009897341545639689409218731349804609308429657927444478445046752254139997472001436884446920082159448660588928864943707281057348354127568448019268447054514941346791872720456966974693247684248263453210598524547656759595216543727908718760807638917968793091560284985272728054556743928592531701460796380357040559675491555685248541529428070366487388920408778661040722986397238597887897470155906983061660415529940579147680213975711595046451772949518921516412666793039566139559088099206584521216993741659448459194372770973615729230717282708734252245416509737526001056067494176455171486825759723782881093584143547178451804221653622473527650889980539219881417910106606616974876630898361558712268846562939909423350760172392082119004729710661300934605295588198608521377566288080316949576285574075461930666047060110586724739993825767620470710567752808256386246294055658567865675970692904539821659584185364544998070285384017024283968516554067017093309589770894854619112571754533863335711408734023944400318832715066650791766056338457977532512336074808995850784003854399242480507170847864018297652965391019798288093179647024233434266298846218222496770548056995722328895093175013012109922132417664711159111420064115214356023503729679833346721461185205682706998065249214918450570739393840034392373725615902891440830001365227083118703158415574617052142283697818347124795627453599739191275745435654515856044468028322158033798868512203274117659171502692027655389675728763091764150587137550369237687404573066266105925059842090770832455837495867457570881865075462920214298566751504482124322898990604782319297046126046026172003421169801940612536509765267944233501582492710578475960272001527340689057539712880070982777800354223792754628461925957569468118590714426534385342886004717728753848771475647678468090086632217326453412247551868245827356543200852695144768351483493115237077676853075990630097514755425995607112972707177430906289352840488220924033860665707079609515709052422391908144185014459145920829794485043041876120450340485727535996512578297823526387818984206074665931927089216906177595411954936349719214759361873931278502949864865847934543029468551029427229713997331249516768529088756073324726903857025465202064187115941808792475346327456524873211109628873891657229631896832434523124374036583877147676630221122755910981288055445234019517834552071352049421071912533721795341990219674192896822650548886968759972976405785984792456367457283217371833815701440298366735405465253871248203502866497774251576034889327082038772213180685295092421652464288994816857380636725739216118128007279604244075550142672026443751096999846235594541122405458372654771801440196845592822010762512107259622261265545306191468772082297931101029846686665120717547204083261854716213920986204104887585201792868655140323676254633176983575064625597499771168730304607261332571968579421171232623143824182744911205822839337233546739210279658378365020585937161610349902208059894371594999659950401059989484548301314946677369044347234982447877697513626095509248279115592829196959625817431238960458393240937992482132024232273165086301375096635145097489551450609512537328608080216615914116747629120482812844429808713839460514429097973097721712637603591291289878738332565150109967379824181925260603260245274310783237830738685034896974918731811252074296984780947609087693623020594165313033694587463322829907335762515275808394346192204438928662805082309336572531778086933916024816764110127235440133601847101365387757656121767833553212064866488317147665254968393810301366650132334763585049207646362839199137309722538519000638045654604568249540573378896699930052875386664867973964108594243390642143775753855340373366283557117976868144452791910800935969478164839314148834134555967390085123772448138549983205744495486887552290891062296764401589865735499088411383315547977401307830489392147427238548914143984593888561649823752611509369869634147117338964021165809443028185234435935301166661079713089371920020370506957485884090707895378143147200210672159358340001616819581351892930907103165150152137163535510610161757576686932108305137046636052923797600920880462020350932608039925712689018773737098527247713599181880510372778087544158084759845642289441309890632413609893166047604578460825119837442037950012358523499298861347569185849636459423721416596127505570619276294438677148725892969361925180489947127869539472902390078567066892750002892132380600904843305062017296287880409109753488203410688652471943438433609880849118530300034963315520512047008791440823475451637113294349843904811330132147411362272951119687718867771478016881916228596368341270668061801321576692144699233385864332016393738501746233635450237555041227923138195346101286300655569404465458147216143600278899187992067787172640630180950938317306083748121870492835635720675713429725999224936191981202140805388656296592722543837459072928365144256907054247769406255792476602502043950271783165617008596626822666088691403927935659967046898564948876352392023183404384686626366195311016327141979770575551142063980168531107908346272922929059679553963550078133777491696079562524823339934796574457235736385600164854485053002913515583363647645576470719279943577951935782985065890304791520570716230800586571330417782936983429896716492718156139838860091666873954173798887588360084065582860359336525804793662139084742877854321732450652581202994613567966967452160138307665554490841042082682698924714557515212976731360963913772761605989958529925629583198874232133170308554635878057284248685604201245764174475135574039475322553960592761722898126610010916320687297706744365600796224600176947960988412967219930213181287398705740024303017221360759579577617519019067782395469484675090032857252110068207221099478617357269534149134803785106275949126426233875079555068870886831566164726642604304225032735588315696248246370689566271150216919658572968222811266616321295775417735351779147236479725837348441507435857253586929849356522065817858859432401434886693171966417027375117148069567094516778993490579437665693794846211608380111288567211256114415679324250182653533341403594682913515835139626268652109160579293569967043887685145783525280844351478346939953774162909584363492177865909140493047284893419968447671452836505991209038029527299594559228243662942229983593996147815331785744391385012757844891443400223022971939350030783983137282048817410452890213158618887204650240616906343989863401838763254167764488282987785908323776801153543219627835215221300181107471512740800272893124843757873680935264742144842324917750043710009064290008906508356831717986123595187455557572838497000251373660891750182287527531725105093244135816817301782084256858059960670667619837387336439381180312331209755995247292107807629005215480550590019585302488875161297835443762000346082559331467374453224353294045604187575476104566799355420620033276620987614431437282025591235571162226826646855747112782996143823140120625271983900048978054725898121742643041378394954198945022221537207140224012016936187957837087436583217605956503910902279970086385987236369509231818710296593193180291759865496381642740381340604100011278845025246606667803743553866954712575736516573700124766078582614377986876513956363522746905834633876173645855525022541104870713195497177133457266475766143758771016001089561780080987017971678055521758156163319103276551944199920454706883982064967970669747976049398285358602311603764287220555187933127859889682631585265220281188719823332868015901773098372534281854347061216277082468896339908833141818842503389843332956692364922950433590016669137482138526592732789117083803537666259844984366023101837407556414691345910938486044352933388200314469516496310582379605972142168786412698648779140198420889252459951618182144733628741145848842093426772513277245280193871070616489238705549467807437903327776830749985529825975863610021289923383220494562953612589975253114310450608111719162876553789815737919451392224046909037185132441598064630139906749816143062825218647056586280247345239902412947798235064431248071954268978475835003905412677612484654945385969486010129961483694180553092112375660079501165235093515573667986343188073372137674797348337248229209020783816241407269173702741571292358765302535321356680595035198156963371898143251722502270889624308395569871877214641681194708826498947482934908053168210789251838113283498447471803766410819249070290850080730042185453607334121722126722325366393767050077243683468202422141466119788757449752501652458757032706007756952159161173392072957727127294145450531367050979891202045812597324208302371237656654612113765166756481331827470521908649734698070102609024460191218274248655359497731662933808802513819447663290225638929928592377218872653230547449290699172404329625400319723459107993996480024195537552141700786271454158089438824657712799645899862896807500142220969877847872728153256204791705790436860186261218856680460334497136895331836808024285208866762324042181204568268634640913074540603383854260384687154537093471262644542158168300975874431982887429706684027970217668946578463122805404603712642040600743782304304573957551540914555731959073291177667580180872033662858963818568676841461912628261769265564586589208164705422005119680328964711154322455953337037457462980658948722700848719022086620951472387935916239778454527551612197364362723977225684239768696202436566634536374085078739282678603041488147158576239727139934019348431442058103491472968713944106127558842255282859524554617000363605806616206573997574195701281774829734945618218594233079998306141883770177303673458004577040315092733471715491852046517182157825039762513694318249673494178477157850070630954695767509600212860989619528831104252983079577427445619767464612429686585194798905467848881972878662798873324648061809738738792553141255437287015901375956047287762023760236373048090360809371667854103288477940538822075839525405279107312803940644422713605796152942167034413174476934341010342847466226368233690774076053695032008828648053242039221442803377540488925977549257666148207581715670545667695922497691776289293412419890763899926085866577736682034110156097487626395715240757376944891086332388266879737540958059898877304375558285843950712228291110061798319756124832849404517922662503695211654899931105557284169774461272159353991794975301807594931403063450962585811460706168982971799575313668729902404228979970013796395999828355227530712284035805056168174220787789827892223480614638518062574441807244720896406922152580842722223166272455560832438487651540816373379973442821221099270022153530249031588391097952466156673724447543576111517102855905302448065512850452675997125272103406843320124664493222448322326586849411459398955011853223922023587735491442883181822900725844041509387625461640049842122671908663379764378247467966298351121079834338635100039314019418866081514692570886673945467532268539077522423255286605174457655540247107830121075703869419675773422462518288364503286530920128896280986031595184040218107044601876219800324850076274498214949524109185723117498845759151207194924840718534942913935628337745909468077629925622023370004729113261811024422918965189854964514042891247981746738144430969001991523673558512574298138738995745087949603732942144634355114538998390653462941867792501417389691391839650040479797474545502327368447785862920014621871188499344382918580525772510121224647522989003261750487323634687957595433087867320191061433287587179350612180975187082196025862547614263035288058514816745096044394531216640378178026044794428243770035292428009741218444225548471226980702590462209027972231418555718438901167437761042360715984292685341063404207045832081917294096958218515432504252767783252092541462032565911760660066953460742732042195837979488808788948784524279238099891511167837840772789850769618847978803534684417029469706482666872534733207485834761859533337564839940121344985430336933219139938615682864235943741148440178779787342382998046555641407631436026370451281508172131249378298601486636595976649888481284241050969237847061898669294807767702605506680514535139191449285378327627335300447743132922572083394766988992798550087968280171963284610673729239861753594734941298637071593671208075509956773364211056677400472165420085815540325354961908824689607816835205892193019573220679495444338545826585355998072634217305912888951445218486718417166669630523824425856509050097118410095290072597689773156912325534692011393740372722551674539947801237510289889398411874544728373790819942109365168897897825422524374056606894692573579331189401434795927408544998675538581922021786835437449815194298817527410045164700053229364832326129044805159166729772963495662391322606145416114864270156329873455480756659888311036105836691544022738534779300488392195660602983983863824889196230617209381448026347049348479023677149368353371916665087860971234004808550941308953330177292017792230722875599759856103027667507405115425122503040862361344287528541384345471610897505806791122330623150373432556732794740990983759507676857091597367809880569819866440005193005580501375971921903407143329298928857281245116902115023706253544780957440060640370455619960192229940221547494798730320710122558515059001799100997636798699868909592362390578875331055823499027724135057303259814020297963594172545584689180890744717501167998264203637959443299937413623863486065247774373065424736579627081087132003055769779777759954245980335404133873908319817981109937944712302949378790392141711390683366222617299344869052197917191969437635128186787342476581186898032814820175670569421136277437468555425897075150125158593940639639636607126387485920885610048535159015717473240266278513500371504566297990370595886008488281323629983963366899157710572444884730979223406164284955292934813710636844584775705745874585972434124299368675519726585508983037316806783223078644105506276266146886262855653332958030062566176290970072863205069962825575271294397285866863543535325223450865744141055601819644572324790801921024428499862346799358845060210088041937072192868188465223264661639801455892295619036042428607111219632295696732815474602031057249464056552598540114638063181780174630028078036344191935057008283755907242712851396545709870453797011683531766646711869945325480260997683724750573522168828046466485231928513145670885503112034614187113831145709339969998646981620418756450539881240510835386163985904535637476478512636437672453147655479676553795124446956692260419088662866794135973341482913272366207974618144491826452616285347460327784869346363870363695438442434989189514244397317314909858156925414740888369221328964478988548655297602793811704073578388258009367076904232304584327221716898654975267817918046721756389722192180683354001546370937901380989209708777160563147239223770157003553899462451432362507465992573383004199820392326763293681621640363991459491836312006395000546588545737554695777790165317339895719895766293821239891898935546221835408873527150558702307505024885251496876658555003613729211805932677281543525858122658689392217040250193294860406219916653158464481446354042043170972613992294730795368882114648273716484439302671171871018715456481285474603301244446283264544803075714588199287547329057199559168457948624866736634739538304421713124058544714481102314071926977220293046663192004579381291084038390498873372924962196787493310331245896901280624881304745389054916885502380731007646410006895259691775687273214698294981890960548223445434912671829061711733966806874194303165413987930984078185587495423266183419093202630728084598952621020221173098834908713609552641168091510114388907502497486348442552947071936854989832911395154461501925787451126004083061233379862061951461704349833205725913546324246299623211674764304528804139991593684676191820185082042148809302551911290745212079594163475247678614422773819108762134264037804018123794845621618099949947088143258399251901395883595692520153938023772876002671445810700465699201039208793261299531848115733213252742245539339327519097651211400367239873127550133664848256041790700987241842010713697230984848420725378468446722654018490800755728406221017632874520271820614374273357457267128645793955434994185334214530677583501721844760880126518342358368214525476037868820999870740916530414388536624706343744748738645804595669999221329612767101989355244251013475410882752305418490076573375708884801026507700906550260627816770584239500326820901306268789693652557250910369167728208871483144909156211759582945380597049091790548413730295598148547241175219252793681426203041234558017459223965108637531887100301564625086321037997738814339336764591109350311636070556464983639780729300058466957544099498481176442189786763345097400775023852350211263947909057729783222409255744351396534449252376023743498953739278305385022904153504664933210926093852053051737466145901574459481123071759012958354864025024192775339445225628453641968015547447939427979184050022030622311118382928270955941510172902651693962261992265014376431805499139945317455378601108689934366052662314268477507016344564880938667063198139990990231279496277414454088018921479362410727957580900447361843799922166106442066053705866621910341029070889996108932249129155257653135458042688071009364408661630480200564261471581858230148177614514443397431311681421917419357836076121997123952415242104379925024996896090473547464400862209625599262126881974822154052007176856371802758746848360218712474655535892591035501586459749663261661133342549988290279983629398844562861297123071969825097125095587578950742435290068032518469861344782900959985035375572791595161355942485771637636584025818245809699752098326755874262799220817663021350081324932767220131753410644715073442530246614520285166864636478939969985573129938933796707076226250872023403015871645698492589247545600567638725698213427274459917709007358547198295048904270175328183929884011150125989585599323611254816976814664808525374189533541370948388344645259351133408032640023198205260338023254477291683166033043373972868968081535976943030897976781549096884203018017047579880815577096846510234159118254417722373915791900704825937647543837484174069827974720931247050465162710584130198761947914139759530184135319413395802127940523378715096484661584532856714808642973993460116752680218115114756404925741138490437982938185417403628467454806941258324611777239618649805023916033525810805092320929890449825738734652802047325699022137407699782583964165687378756162170795515582850691642484088644468843405744015691313308448234728979334090138140785063251366153395499369082539771533818218614809510727350664570841465649397223904800328986413123649546437768588968747792091308681422638843453087827237192557822212710819592857079037807425386087229219116446507697453066480577284490586057585133470925122425372060110519814928170569304702056545409503511063736604582018694446029588641389376335327061976717247545931749899917969539929464150985157704150358027215710270833609783645705364234688985727912494032589996601338875912122080392753319778554677351082123972725146700072361007470966750786705939945087090269284612480683698077543494050509508687859903276088544799462514070339999384658644815172570358482277603336667007053492155133582918866655231724931214142081572921631402944805844800640215261767427777299691542155411924133366467811336782245100259412700430159406878600012298525197955485008160010788232764904525022705171230579689361952614380039248146315075111634680083381753055733854955369110403309762251233844082728879151253054370715107580546688020564412762959744543903100437518873187630911545562071315677073659963238194948513118650449166490485178498497710426054096685910814280688147249602268280721904276035884869201864815847946804392738075930369342210053580791991183959538474138855089776261292339115716782767897703473456629901691801046225815731245416503319997230527392094465624321048053920011985949722736955345745658543226439131849814475552766490743097248114555351365013641149196710679055360795467434218666068346369191130919707201973529093504534013023679433880638305190590490116759014862776470905177103611374697115281190336053883777570192303710750624375501137726545321176667852795725307937210484109594896080620013029887884016659464092949449192967054430642688996665347531984219171216137179650967993481447868645851300697280306413140863073453089620761520508390489154105084305646457708068845171573607476578756678033098456529595672945487168955344946120777020228313864837683424236299291560294136451845693250471136629520445175676746617910495665160721245536462547338355302449619755804700855743018875507672975820639061695792080667415040370216444815386692510032386435306801968754873895693597298140409782591837280481908158997457642013726912426567866487673109816471620713987050119747256343561584984473595152746696901661123722644520687515720982362136307767946585402103653551038318805168463996386481810237917152535240768525097511158532649903174256619160464221908728149889727850544166513836293020058033548100798907179448035349182111377174485454854455700204418678364088520453741023149927808800049658178708127630872117158116825577049673701182854801923278074278391130769870928649147357129377666747063777555387329437942239034452544151909049899249316336921238067970344777773974337991448047424769034593529090451107234710556280403920112148942937641230062381763459512747793224321765018440709934004438866044103687360447581632625616873191477291386047657593571397757101855515239342125919667064847181692322257709507157487295591808897435709837694425622659891334938027914382233287464610282863089515343257766641097019105921288547600046508152573254218227693737691817733031779223829471090340318311191926152366697244664131508207722423385003731178935047698533017455458982758671086025223649687742023013286994194267447494792129715955164829041731085671945440802220217547825482307801361773865122708689259273313024378293899935599081036538394582452968323330094521576011947599971852284152612027152542780759685349636835715992375320952031372755314405308456989023074286847853575880297429983875059999293790211223692690129839775283458623172433383952755096669605536274792746385249957980487652089815363629475076084741403541718268261932420719885747789947199537857022165467041697952160213457080579224801052236523044499050102539085576373122571309209224412211128518498995651532488974572987473360183328937655224890944049290637898584441403081188067469085543646545597019801405767287296321909552470025901637215839665253535740633482043695042835687417239015544272581960942062668491313925404219174878333031638397294774847365813123025991258557430350698474354152435303806869321586972074148160280639697744880125264419391401511736247031534421365756984806795925691252397356734844748800224698730038048690705634724205504532844374974671613478099726851632711178839139929654536648572104111528121105460863409134321280760098631474181838698302363127133759310456886805900282788577565625407620366371279878763901244099474618400197698381805638279636173060458233178975595587834222823892773757332678993098637593465022934534649357971466520214094464816508718239361081768837041648045879752158592447475081030493548752481072515123865103766073506480806480702802220915821094389966615828350732938043250234524802056220377677399806019509082081699384169225970773321532476339096997734617878295602374129666312752297796932165744078109192787386673845490087411062338988507527642724743584302471375899040836127024755619396388295376038202184884670257370023055978927910170998061853641290754417008223149136134154316137170980737562010586728000535073776530080880361970674136006561914354434683240473307607222357332136720528702643894002065428981288010133855861876659325200089308808790343569658976207718693982722025131121325160634566776028750812712575389946938993485884685783424788410908821463030256749712904190158886662100743480735231880333449801933396531622405532589611493983463132006892019937284119864592465866813685240723405626110941446297764848637299919863716393928430752564368389581178511891816798445224623350283609187743421047218506809722531187040034618326664004003763721247003507116662889492683927237150918126355684573483575521287942395072291016061062684137646825498229923533313607232270250977777934090845742179252587539987798918929470862770395416941654245878480958842613095324072926926316853894541849455926822622239933685164457474153324039724249440640089422602596926316901786523472858841368020204044309516190425629063920306321941613730778441350171886017936971274021314449798050536626764017242515700628405354309184989002443004913382736015830406755085796960952101677383785880940558902874424111873951116776444186925454946565399122302829469108317841194191976574392203693478890502697619291428598253223594128462727534830796334760998929661120952442931921492703906158457387828603132379557707123978222101456157162406477177660218286866125994870630980427288650829027724319538916537075817718574833235488289149600546897458425859433138430742374355645382599142183699571969526188666557833566541933809711543514405446776213488149190094605781984711065078504258370723885281277153251751938261459946194065076527973011682683285462468703694328460420093261087874991073737304308332979519797584432022307454893912263162540224333342561932218056144739076981366916688727635643087750113335047177353019085501534897003226714173482455180495890583075084316298674453500801948089140729032962948688613925784108241561868971848870360549132200916553192172670023003910007877795968299245810177119339344692191444733993361655459781988118186199473911323508229989532641701063980028777367632004583969321064823379731895167419592655936504149090408238451180055339557826313410606131700253733885704021513713262628851247374102441717122710351161284928075378295134535997266471518407458635551063261331366114394900603407191176345834240915121001524135831219887713162641772980884354969190686024185421634727143484302545048614408095551944636995078508494061516833351489882573236842078528716855892359568729103108516375398140207436040782468073003155082256901322702399371950980981591705758497937995853699022159902699289076985003898685465002670349094438511883205419892068622997724158649788372116455517659308125735582906115818320857514678145788809630396127395704261134031471517823644649922167214624687293326260290553426729611739027313072314173221968006882303300968703778891748465957775961090547911255669604808509547902880698635804517076833798159372824388047980940516643176189823183273115458077035336758998598392450913999281903004369980574744781252859104143523838874570331169530736285408593609131739444242423002449015102533535009916903650588197120938398541957898851330554597901169397074911399992014892431436296893998490076945041816142069154828955454652183229748160786663777832030978184386686222255790574386821390851047125837987999308567643152055839618049029966252313974182761947844024479928328621854469551567997568830908332815529427617538796182820806538338536457234049180007106893608349315407231959459274695040857215023692281145143551261475122838616303943694065044898399941721676906480853170253974824784970386644252612408155034162150070160736480740545079196346231676341680415487309095937681619357223588045035430194847663663959437578770098498620169135016858604097142106627660473045162906349944146545222021239312845352319945538753445824115050144045878966211326330520332785471982742789391055878269830728629978053499358188338486268952323291637209180184109241097838855417572503681154114368509834162573855520606829266926690858493818283810543434339225425541808725240955136905143409141408313163413291880571366450404384317724887443744973751529614798429584892508302927564230262241691883001968610117855592193712487516455263215721365878153441309606422664298977330659055519991975776781175936682384539671913251602965882114534165661416172709488050984636877866732270825491275663538362028661599464669071482978080564096443149973179277692359830181999097131465525053908817001602571305443951490602595217650672376944900269545646761149354816775942900268902722915812731692592016846156887507634556992595293853445502092964835228096116969880285890800079552324716289411178164823830666253220424636151125667166377391380515631958608607516944955491704961293637563762544306334610350882252604882085719198730463728102000290947540624416168073661335899402006879009303383908828174364422134250807687058661026264373648109985802909295871585264707327344198363495075045664674338680324652525288910203307363937869467621676135563164691082304263862404171510567744608826973243697515629589041985835027013867542775795504553091361648441090330629277538401178044153161241568678324229012242269718272783409254781813941103640552449793512064401266478737255175582378813990566291922497874820274104714137877876604398365020193066324205985436343065161602162184682849995807213891745296206674983955389438009041342099540410375257260738368268312012417739671828818780533257239669959045186689058243419395487957623598016560250907472020551904799108774562675761168217398959857693457618118201830993301722230336863958734854348414584862833792620888683966068436651559128177050937011057392472086028794185892986798842646541619892532320398511577774101909232732620280115083515677150006352940937648218300721615875367971757136595168798684276310242689669627201754122483846455491001336785475593593557216115291819833745727871336785398325002256812872532585773589083869924906857156676849882975281510162858689808393306424090040070168895013716116187300313552068706277295993337555268994601286803860336236729688996681289799382039466299080477570578398221812206241029013581461578647658694332281071534425297862572330884585925051714749995601788746330531344929031195516687761057335273507956998926902694574329260656932739129322323286241027737496496544714192773891943235956560396233160709204996011620093481900825863098841023110233530694352415430163653164770064313919661457053223248547465196443491348700929060728744178576645151706681109084555421467034192927431466072761867965833283947888619795950305196504020887098481524521470071533412734168651965383927865481367524442971268528322972105974481074680194562176911186383812629261484886555204567234636222140376743048180753696217418532069517252505368906917164554416295799876639691308740863907368702093624172121415252799777386372287183261321934133794744027623564442113872949055108991852899578619661071938525306588695674680640758293478103328556297574172468970466907930508926297669588800179014939267255466269854250024684840418506302045989639181215436455355129200965248114459879197667168063694551205054593904654050393849252877953208726495278969946082492821476635051918139341237391870027267747248990909653110422126869689834648123736819489617547210961527214635406825521277297530265773043945463304201484054766575123413345654291464683161241079476933771448809181792964914763280389531705660695023961667949637163062286590335405427078312647055760573857032480730230241990786218263040256492255414714220379848398733192265904396625722945807033112777298867163286435280159157429065082875537801333889234913529284396959672292155449080357608504141704058641141626266945687665918735343931806483630363163582800889849108199740201687038172684676518121669537137642683130046444776647476031362387800282272764534842243435847651190608236217750363799634861098536147019316758011341749796900441596377466032164179602870409477026021718168643268659962935800732984671807071899877394120707441735957343842601068327086619755638317755235016415158798638189283204483946448896148126428730210305634429710207946473236390636212016394562687580734645920474896212785212789947375896964654696037842488495507981994922135562203971921344330890100898213677204953623877536897158745528677294014777373738583795153178896617463735528805243370239493595456476935100014491706149397670712758791217405805935883675785154616058891871620916699036976000399882849441062537250462557252225102926877899394975333378188586868523319478381042948765189030046096616953816995776447855745932505036015005701457336598938307849483662631689145459591873049471439011575445759144552413796627375201396476846908221012815046136104637334494310551789892755148271894372015742329259935811978924704153199343805767779018437112073451248545039398116142145045092867907348005828750858293096111971524077041980954277313804233787542595239786828232232312575523897024224620975757687647370428157103148689934750712687350699037171503725936925055380660135513104296853516820119051106235673457260840177276782176347213659920649762470229833229143571537954170273587556635898195597560912986582848614503233886951666339998756093452993870096274837188116603031588477801494551843302964499118303853270197516335506245692558857133214267117750340320111893756050699467026372040808187237455011642486992541898293176726421842445605508511949283417571587045172834616520214485188206598450954167060196336477323319928625128878123402663452067359513230295768534746357597062573402295026033597961841473047849349320533711332139199108999107360237447688133392303076974944924887573798501732754124600710795581001943923208535899053868452090317258546388897489323738890021399860944233390785044690757069008596602398894946832061770134807745872455427364462735602872736669624888939280203500294000174758916902225086910114553498495368230749204366750517810740950660880671678102536428876516784948703741576249376210580165219833055334608446874785400634355100613915282598443703413499618883184296126541565647932815624871201377126604175458101903458000235981682461162971496491173960969604013316384320420471560603916192080664765271555194069789740866253440010787662487712611293220066485407402730524008242632405771516081338355176848164182007616357177766732612355705297679751856702669163807630735073927441615421095168032713502968072122362359476226068131992571665199087674667788075492368440141355095525348132569383694434252354108127388486415058620144267751107472878259986901703266170815178961481270305266557607606359049126379185798535805650184170195688831185088036402174334805472689770131905724502069711545974959130423170585281446159615351988951779336760473664409555839392445448642873906398747115111372482269015316166405491106152743603640959144112960828493518557526261108718803594239448149307427851096510864025887395012961560776014933665608791205723159176477280964221664042505946642824917949324519482292696290623355978900286819885167275582383430319800212887942044377691715563668992488608592646515940861842011133025796297743791583764587865707567673747092898736483023812626782867224315616625502212233526889465102406586004213331127198726688840268499036240864124526370887543375756852841760571442321207845892512250340433750284789360096363518239130713249672082211034179696822472078489629979652515046050841222020725440396146760531220927647953567396274007277485979025586069100218926009235118343168284805959564155629602906579514770783586363545186530344626489602145336550923553739269532893580338036947514336670881704425251347407629103057369423502564334111005183586976096379153722563488501138410258067506860495590219197934814089245252064931503284615679341658549847400598877594214868642160161358306044399069307157950880566415536319287404472395508353633824074494503965976959028691902336607236420940073969333350268779559172309481829251834664247838163466045132767015248793442486687996746656526392577801866371478246022886068320664879736920687669430892200414837468453998483145189787247281300664277183706953811374106433708615394238010038955818809457180676356263057365020715443857525604494079695579274745261877258436254451054494560902706349880362526652495766239929634533330444476886268868164570387706701729761287518113230728274215718774030500853449585610886736141616965472663186202446815583878420330778623676979089744755025426071230376668436436184547681758267633226279443285229508141970997103364789011873506799877367651039009946926051661507278284757336856899304479081832696559582836163248190497518697501313444790155126513609971929238777828434560095679194264592815785554334844782042892166244132378872997500058779863464327069111596347546976455728606107933162930682027987392548925419813022568841737294164996689404712228446872054545498963958495653704241699346523613930545274572295841672522308732161574264496808970590183715928404136588850885187272953111299996965174063661882670138262716429109001562675347475605475851768362419821733953770012064974517239838718323269862786803864595015920966485901970145793737276124586428947976044705868639903829707796595572445089023231808725946756569504225668381981408380072702797538886969605381662257596459945461410408241799592927977452736535077372127047040646083697280816273523639891960709403021207663170015852287621170629154020014717699728415963816921284399723469406026090304047664472833456986359622518394714048330476960055766985616676049177649721059307559718539130477631268127890481684800058156923439117491805380998459664180732452357076030584513049394956322550940727921171804129991691029017871314077531351383158853502840385530288620006590887584842190980180322992599925182336802363839257737250685068881753824318184248253404687969020014351881907064438013906026400612987066281752473908578901359811568572367302379182875394381515767148531321820340706007410430519822732863941518279977020610822273359671205011778718131119884942124856160534920609331263275098763647581002372394470295579938696402191418824577829000046665413853473023623118399285202855290420556916926198338014749148072850443047436336641973928875109818832539179670226746121548181447348638234928568907229627906730147238817796458626543856807814136628329432021259008390876083854155704894076454161532139964241986057055699568570394904164991687177828745244905917410588959056879575510246731820583471850358825735324357570523657623975776526825165443402865912121242184678363192063199116401729015560546641971790711440799986846057971455044680500738451129242667074949106641349357698637895104972679673497149440743627737829460264879816162747195574679519774130447726591811106315823282392592708010592573875105379461500070511772037994737580081844412089905382780886508297930577510500339339169446379670186643978737684189403050060600807903241125650747768746505613747629857124047935482687119046011537933627070288979981260052795734809772459138128264886854471999272767684565281105153797695248799013196856218651696605393681651798747388661640372144240497595029765976582951010880295542135526133265015387015599886207856296275966410585948127968673335551622592693373589448935896154002542818496009782616560934297671274584814094681937367792185413309876748220014567862077750190632593286120675660467611758105138695481711742367756211068912340250120036718028764117405374884971374676115728189591363005593372429204443056478902022951231592555479684054254647255354542852164572288771728606748358130042350252322365105655327720041204881075808828181009229200792049515875832659606568261888914205681156871306372023804236527570098784512683337841907627588566534405877507016208310870708407666360030524052038541370655583368861131152618068805746315175604692219028845996487306582426340973860251876996291896872205894699637595325997151664210366409244200740991894640995680047155413813934504889694913919759097499166545907869258156993030792011760318049633029029523681365158251212201476352794136393485913890934439583443954782163709733189850632822259018663326796258042446750111139476138253202931465342837265014612589665968388470715006612865407561622298301182255690617889251901381747136472697890663808382975571939068304249948388865398962263517162126959528902595659863570917594544159561929081446952808289697894845246725001359694906098141894949783442058643263656341730381829332299636415613465991700562694450404116901736242411051378168232817872970162372008613722091556419935900223745452770914333825276229094243690857209153731488483720204113211450741259713631265510024122287473194711877311418187770056122021911309150131163384133671314669975254426856008053946818001193320006508392431607930018034247543290833552491777410343286996478653448189305693294444354540710174037978199546658766366883530462372214559227441321701935497284632313094498695269233898361694967421317517144626263333280799416275003897461246413135831128281278752542837935341917427218128793324855580503914229487925450163348912669404150665797730071510417663124705535301203495551278595370786972414229201024314750416219021770448507763420294287973466378463900790019588453596825813348511862080334638876748923174304907497081846245842382309929951010530647092979799909409287016386774182580800707173014581754541378649826253738374887512058913360992471434304999777976476412164899998693318371527922288208605140114643962462553914639863036322324706472889152523858033575729034071315608652639360571259466649092448320208636464254119258777131857361655228676707975449069703265594960437242764068717821365137278676161659121035301699515767702643478346879206416654479548041931108283165121139310497731729977528561731615214640842289725360512168091745676115625519576445294635860885139453308466113993343310579595357510437472565481557872465389108707253515729272602004300719639291311460732342006315009443932053190999719565383745737762174166280327902333310543448589866010693116866921650053078825527704852824373027932029629948709392049821316323759763624535904538768957104482558228114947604106724725391332325432078890265858567066739870706709179042932578276220591648822493424623328381708583570073569910518239339494136090829573362238223252216325788697096655418734108804538299525154339612257068450613224321009344070916385788395368535803798595233603533401715288824884480184329217009225078453568842252934752947797846367095654324145823540558709053703863147705540053193735573833159511960506480136139104081070719197125732818186759555285138862813343138986860137185148564657240378817226746950049795428031022556125542878363908461443843534691328389204484532992555665469298555555726960105220243406245177816097437686750858807750219153802032410882028347044029833044108698878829949128090362342430144407708444816191674815210225315671256917141735036451614143029076922938039510467749891369366895406006194550654461176977968360219879552405382091243726557904726043798894037052599621490589616317946212543053697517083084524813784642449146251823250532789524354766549559378532858885718017618551030550094128928267600070342286620651684517006530500528035383758381800617566272179920948137629967815811048651870755789082186897997770647094286400219470781195453329738302498992847776023155263336567675638836473123945840090178542494564142698259004179715152067654102240616128742459260005407927344528348620663045348037595754493622820381588229383453280595275233716225674449779677579654387572163485887176285937582493174761497433275858534033769571586019715604137288995796316902537139819099389416648535000918923758439455679094195119927268637132947439049248462110431968842963094567018202009209066779432874763478637518985361880794627374759538707466369758853943200316798393667479886156670843958975873054719919497358018054205331244617178549623773686982825838277381787431856796462835904741929194287601486546691472261467501661357481193211753925978282886832713246325377691424402654937567688981070954288650148792809854600460757688903907535987921442477393264590729677509358859020484971545704818174844953449436839652986476641659952998593523573084534868639976410411310937382241623109184040732784703912088287193658752273661196649232829129997706990704585467401467445064440914732300863742444311331622617591415092608620283371672912455306322040610248173514919237263913654472917670208706399903383631259001126511055814013281300715062715809213227179729761222645044167836150692078562218980541262756331832811622896620379161212961662094611062554898250514469375587421415626095202136713179180773857657748678248133832570400923426875197891135936089353958792151038229718576673350076881264583362069132716558282050365570895979909688897617727767356983654574813594403628482541132989406046497824471105554121598079045400319539294446597714520675435051711011856732614423873721025677801055123306351339366751392470053972846776251158263785306371940776231831014878425046429711593355496938822932083270297395944366633552516604545893713615539776486067575549623100246156598178295814292107027115359007861656836954854994528548881588941998499545296806409286651559376277579095376700541270930183083956467636044848026475328657252426255829046121244477777557302117198299048222176659931666792952531088416136886997802471532565873717637712065718168288191730189625909913867294171373573132316977789735444400301249922166771547807839879179541690620029350126008265421343557066725288427402252341340806998183785129471716299352066455947933393618372731955055753198858638720073822754639141962068130327378990134249500023464315920729452883931606895317343140508554531377446075328386111440348071833292105409482383126400291318450119093467679096944854333487816281697027109310315084361782308341560593078121229400324789900805502894743945583276075613664776329567926328158595557160452596135748477650022859659973734551470044718261160256482988610968919295821052744004628260110466274970117571052794626120796303300688458299847327942024606054157822622725397308331932801357638717078037030210928194031746622074501141771567769220876613391382804037148266246296258158599205990290141239659975497626892908547881569556926162326343483453396683390648421657682794589460809339986980947691321047604780695217269355395281493390547636996566398303492183141382699176505113976789783356003148675446368648902054294253107634443690464745938718038450766479680498288633633547249333165878117321763829780564885133560930221396988612338555930780228858284077007681855124703438744911675465571758899064014832039141028839213830326311731377794515915470084191131877655052956967568586066500898074255026614113995554005814121828986314926865327413965545379466651750700129288311580760362514486318940905506506466126107092241413869153674410878261737700624593467974181722882932515204316874978913136240080491052493667581209050546997312079377514064404091381868166464022671639487896105755338835926778799047949146943558627926423463117337707995935049479689301069103898835275219243554221244056556348686908969688807612787010755104198628995887350074190014017042580212241345473159266807351723053251321641242407673419582221588432820564017109565988683245876627797481078645694294583438500613614680718135466452986277453434060806310081981817940993762626398465759102265498865548482614987213569079113145554405164647263228426457552155094785629709013969119791314771594252803645503089585643261900411526600210463307799324306255289055214349143992115701456567167941977031016197341628875426492301768263427750343506096514415320836868259906442045503593343549534878855346154749246123719631661642234061771053209248660561370853136038332427555689392297445493300862712973036165891993933842767667548006782203348110284003896745740316848339099331614014028822068578185943869436102014830149911783977153468956143439797139114695523473183937719443356155612656854413502897189643443788755261005267888913132650220419106461988752048906870201181968665945399945008505972711676635217811002296475131940620162879244994077100452672527374564219370108402699909680981188470984201782750806083176200020312838023218916325344165957849537748218782567116407196209277542441723267514670575973497458245709278027315945270401154714624652015908450501298504054605150046762317573056169581489224295990020263143341071490047851843685551769005104592045996390908237312936441558104005813939946316411549768499785348299130993835376474331228257484536058150002514811355434497303784754591667034370681876157713317114369644645915060660455241110886410921364570995440971430758580734606823814340957110254636168728270270722555491647111809756532787359806292114770948256751888884154220475125189490085182788862986281959414752016976382443208441732335459351438586456762060696246908350028059551403087079261683123996863178413768815547966717990468499428975311338571096472230471500016485266291933811262889250700784906736873590138697336003003536074650065507197533538480214882894582848276140063026010997306164086306144227464536208917948163211337729217234362935755326882600641811300501166070854726200060854747843124122759561819083957695511645100104813118685715007223702568343815186057681539013799124607567033907861528770946303806741505771192663676935899849953174502726588226230861306567395302796391913665670002436642450222591446971626510920906344115250143843266623617619290711983874216045709702806933190004763913166287784745215854638808079203479220086068103760171175333922245493682996746638756224123083958356367544572071149088060382912470867988483797065202432848523528617066418731194977986570845628020216580359020340470894576361353979347909420363949757213422574801621162064870741165562497799994144709828450945573488624203753600265555170169884872399961802526459276266957668833163005695652052653258365928847167887775531190174663886566425810905556104166311598732981758540754073412880054599599631423153801974106123159243512399640478551224395821972703007777078354146702784820571503153365780746868974408103116051032518721067392681429604908219395150454322200919302923053391924735007384991292510770174767501597041748091391846120017373444817253868670220502025060575258783786329701746105503519746433133155277163433575590893846503893798125490854879882904946845910219514731932754374836243912959389884002059554238572209119183885122938360277078152336669901345846627901379300751019989830784163449416125331143354431780966576946524029599665551546403074526288442522105662367904635363618680660151572796420807473901036101173151796616071580974292158322312474122838531684756482356455500339362252479383518558168072035995360409070415382534185730369060747974626993726270626678533074798027956680257043362394506494394311530313883303931181784728329904834254533346391145437113329699986912894159550039531692497801736258456221942036317789125216734533587355592619806408071985225856577281085269384150455066747719885039308159649859838249099305591846232210253677599218757124710683569675101216786874644955968290326808260543583445308935765712101647042952937841017014621388946196407144549695591466823209147413717945036654740917771593513959021371895358301567625958230774739307120766217005750768013586469064904523166068514616768101545111483060165113336850365792250188084902594961449430962976601567364917456688251623607473675587613396558032934119485486036554910092605841424773546693300372616602564201324209611063052751067968329771739849007435073912980868894178248224374192316452248957437350704211654842664113738371546736224275503732378690548594924595969098708612659492429601886004361647820975574035187204159615749882269604267412430173670369442090784674985571754560522762660391322057087590846957559263036473183308547128806126166850768876791117852340921029019512435398810465780360552731142640041001262714750166446790869065554966150552232080364486684250959812295649615445172507147701184098945506866661020872955882238918248520116622397981527040102725086891357945447531807691986800185666219921776793036500983897570524263196385639346786239627984408340731288115680305785997269094748209943545593321038191422108375265051491683893682120645799445504529903460404255289121385741428575992615854894077499045272052542659463621611780322182474030265961555224280408348681499458704025223760725399120350838384307803991904603545997024377188705739875780468446537051743353717628005744819281604312871404716586838236246685956423584650295217244572327370064504608392727621796159628849012893192371539855493462036916567722777287349967013857393262402535323509589548474772317160840459753208540239637025726162841500768596908475254802285333808043552275801535575966167323003281718806033496858605146016374975079910325884379448783378494856939833796888185625320845342565612530987966102775430860147696303191253943344336376185693714846816384415839254399415607032372422534530264365792149850367923308249912609542741071708289746467147297050657021105810957877139664163217454136587273524368914928452399961187952008425228127214788966414236787738419457755264197129579953121632107418043108020161086773745240458125011648666563914217177806021980147282483317480810189027619797784750930932602719808972566581582589837756625648734490540637606917623564091320555991757542033520462662234888676857694699430845288472733906652976239888936137737810839255215311765607161663764884844400273236010718124646625312479369205682781340212908725287192154330870447287392943784451419537230832713264269887582531234255867208011176587363389007879158581972004104579267411515489102416947191761216735537149240273048740973017902816607853607333693278102957886627604896031269194799593421997118700431982308959199403315872227629836368585519895857500152097779643221246150618467810312953817784923313613635856647293913907285356236940152160481185980158068199946796103898530549289168082434095547303072583614730812731824953069351226994301561481202998987168983764983042128149858591006791273974893453536637957470035977718618078687890415977277095856210410495979044196477960203491819362648024059010908881588781108545559408990897785442325112047797077244564926837506249330725677345011399973121863868759633041884061479752132618718067627186937350342145708796755212864234969809921034920609705477080173957442126545113854237592862633242035292827943667982816206661832886903928057872674847075829674296306508073339658743137170146024584517919002531376629854513516505213577822146438596509551434526137267364316553776309625276081653278646836043523188984335772268819580178251908319793132483952002579799517500884000733146428344706406146717286561170474186277293432331731759579147466661841982075924652263052826608289151708225562474374885824815930720341571246960301150346908188115027005680259447480035459944481234442469753511289882870970385432343394372211058056210681644917775131091472872654573345347917970004098241841390449436153962529854014610461689764970973846343552788313191215542884334031926211597539873940427469352533407105883950109839021621015925148542806802354558527738902411927383137471235100915702710921076201747100309749301115361597543700527566507113784420137017303931986575394349990002446488716481077889230137229809176046663574926966471628994830816438958037097910268553800680271521323834086240640592483695315401050661878414471448788030678281344238715841832857718221676777179039924747850142501745167472182109375345085481033780805349136593530202955677014408525846900730326703887525319274053323705325983612527746776198513627142255113732843844687982538193314883568395257138233850469702032099642988906213388609325245210279047384958912152533570490213317502236136866449169488908569096186750506106148960628464759705325089755336136553666924539000369997093753985915005413008466404641009841017922847977404469841484753810845734602584198952444130669716297217102160371739122825765890799830563613821017249714564545859916422853443144462490310167054027460417655226965443587151981976064627669758717937683319080169361813142867831729649850131063839830949159264044974268996929897914693069225844065446556845905801181363024449788692410233917421039315296195354258752437210508248952873569670975658196258870002609708540050468554676682984265158484689199199189857104661262693033070342671354678092757052405598322891038760701333886219137428526427909614258546668403492468309934568087573673348756499538056709490360127351732860965307383743644385992329800167192622354676210504078161547499652859948875604965456434490987282824444469348668691630596229706231887816863089940080261332551567983686641557300208127836585811478380929460523464007891537524034433101920275325818399297784587054173952433571539560616758124285288539435352111979917023598042324876655326056502053296516156155074888029200492740867314919961598660439812764943269987092312724652432271262818269308216558461101687978499948437023161496459659482366155423836531396952274228916943305801507092838747240092996719350895520261229002496821179632920095141044597988590969529210203269217732819985692312736155751392037361416573616232770947787760592704574367708130977969778662165783596988835075909666698279373658361299611220583892454209446255675406939655496169466569517768227644942747249045054021879324892636214954589223440696879911351034320761086413223282076789448470195935245965699958908563590179273741362441421305054535793124199226895745143067342029444477081477220320718757387585931421222221999737705357597841324161724722580054420292244811012739577417952208069301878097803371904175775067145837226460876042452272831609948707915370143215470755668378987286981935608971985873825905217344756175448311314451393987407147233542845258325471693685577096809634828358991349303948721628103582083233337792976905739314784004320468735183100501615494975239184443716179795203313779646438621630794399736714919965067216503873375017572323569156907815726714142164510960929952401812909116303678574922834528202800222950184201289473201870508581869652753975813465724503441072026931058526761984110447940003283998730297484137437190613129166236519260062330474014699064629049299817000988592989192738709073133618245168394501271902889665859175768091232505807977608217485638493397999064038605304977128371510506269611335745219153034054274653819502983633205953870599102271224464038949217435920633850218366393846906016421443245849608450273059285775081510688597421252137159215972772021834826404576283989216508670824218229495776245651222026428593069442134762739160615344381464293359248453726030779070631205841678629116222393047818481229102517351448392079133764664070430152357000003910052698560739842736655086821629188190927228864229291996569690474809171496825956097597684901496669735662007961967338074856967827700430104415645578633435095347383942156902846296584832802563533470511504302053567657963249932292107160839832043684727329331902781065384781580491808626911486222488075133463861788703986520960072933114811602678401347539043211184125237619955722714177718783176578926277583065151042695619884522324450008815380137214991034039487167905946784368593102840124715999414949243694321610276886855786805658252304590287065328947088130986545297593904756440414139575796557275144786192078791289701978308246042936723879404603430339638424037080130913597261846800978308273508408693003825371241167682189946553000044464518657010841690268060891258525652264414172534898668524199615342997986970852771917584616088868856188240166081399897087280184056006474709673655126989917555498052362929959639394251666518043435989315403195766577658179776028975443778489561574650298172792585342260553739347867666827698215807844941243424989541715121146898948192709691633143946390880278160332789251229121854222073182219482479329725926500666704925908553332484872001998397416498050203562232002099661232330902269689297351283218984401691574500011096941723929956939263721513774439098794181645129215353895317780144535108829586523557170544454416700404959878402868578269135068781735757565146926855522453742812051102094183374979306630371157131525829426051389147936564952888799011456128665084316187562273923669544415716173010624376309597125271744386096196407672063837823686942280777061344699468197933883210078068019635358384951173854975054463132387363471370799809803024576272955865103376928838732246162395320279878356560887327847102394469626845253854486213327127684464169551926787357840046039142822688008931742386722611470215304701600371709403950024414930587527343439167036453099058115834131707577259971205839555483301930033629503874531833867665371461531723819584036107281773644939095986559153038508072233348107811392024037643837928165459366434959816071259321281252250618841912177505684787175157079588688654167609980092031888968922875000766771643108515913931689804293548704696971055101788441165459665578080530657235095283564674313389108598492157324375720687907848240338355820028983705939615338798067473650643833321344606869581061241087536869161903093626209689680381467470241964649598792814107941306984925579832318760402198684357024269687598689932651490929853571230821982530111942625525082223405454050817466343103655031780223844072657168106669513271305104534151048930627300922718548438060074799788106932077195371015705032760098240227971143586027250810424674952152733717325163628318738415488955701384987914158050798997774583432944953941650358012410974031965761782848429713852993836783821754308780047359233179747848492244433352090350274320277149110553408660632554901481672499800807872888619427184318835344393909753508457807320003830772324655440604140235709312569829965378731686437573232146209563280249765221627002164782397441575121356449839373635758105524434981044241677209363115470291753779749435388771523767393668537878100670463961323313711597501299594237454242005215661214457475345620633946039023370479406958692365012012072808814738371227725053970488866730361283381233540028712190179785607174658631616549447149557602593798184569718440729726701192892206895350477480748361123811082405305817333023266083350266306277884143703575441013357375819021232341120125046542276788335871297598821196925879605163615343672822080082191557423698750055041596676008181778665062054716575814752881681143602405326551066703742533777815060357979854482257177820748711754719408584571042644260917595412321366174538050199387893008256230376661724415210986877274619580413856108121600239134462113274933830789662180021031935049070152823492805741084338135955797873977813949164581498430881005128215262968229880437637991096663430665729637726327480124959998855570268245555555024791917315646351997474522712509793261132613295819905394045619821156478989401722061183353460711189033002559536612162540036610364761300150133540910154854356824345700935230506255901605966400047157594323540514259587391427634489007310952558557366902473837535526413001560216317707454631212982266148609188134321503508469573494049434357564100680408520361978415413348197232487842853054124625325480335807360534698859249958541846301715022667473597915624059042614315670057472065695985619788493560777289952862872922768570821595340354997753584206771941092487157767675566841843232949398161636332726042403563611074826732510361570923738985776217557596968747597126179002008193050042278720108912360661721476722488418823888917976749589324226064345894951869883014106083183885770264718850513447106424066131767328992092530933033057659170542665875804149334191906435406952539239879464086301777560551702168098016355459615389247710585033999505423054072097269810501270764769371587954694351199475167827506068422781964185979641541258405529599973115641447906932976297654530456938623237072175764400782218584917549701714857723703728730970794224105639205373510377487840769211594068002824177870243622452738258501099307505319445586381251554589525370516877643317647203880134335733964684533343277469097199200607152292574953221495188150257003881499837621940488546925419875245292267375200320776118670496982462007156593675573902028890960910060989183549120157077786329118252257071774472180976908881854579942870523154535593716721737490464610838920945726053362212911621938695481593653367583793533041899576559878077363894756296730146526915855464948529750852749125166674604767930950115405853716128848635748108827678876521723444048785362783403252566105187961682168055978333815132903027612765050032589724850333993827685744655615850627665915086703504378102128555942093967738888422089250657181607626369083399164123584355953840862546740063776700311602228948226677094810787396940955859944294242402927173801809107070379167683778838996201018346353731120345842663794499726196725795495748604987221505819030209268353979993642995587096964707322293660342747665178285521286911396448960962888192498847385454965622903835185555890701431949143035199638482081403387738434093737136915665502727644542536137590912353433357205564268245745226331547339758680644687770657948067883552557934647131969665323982568324473685617478158528312315598368424845036428929431688373337028403889090671213308327721664194710889785047648740387327992646931631250992167293856076902331649230048051522955464751730900153607337161436512122136716792885106038061048008906895382415824605384653088797423873587780544883344298475063814118587804190369568682435987753679797312116097028591130393148973484739699327172469020750531414409806427426746877035996830824675610555195646734532803583546308835805484785318922548280845738425805476297377333404159416324704485321221042969237728653233966125980823002725200420134893062311767729709550435294117209873562874147363008976575591614258370888763124848137132881425540161377158145309737950030038512731839570159765670347796508477927818073478947328318614388682232322830258635105723540487962599034521477088161562631485981582913154428872678310547455130997923013753430640592561326935280663779720539048314991619142015659930794740985195190991632041831716621095584727083371987903720439819257771083277872093251200083734169085358686544250046779610179334191883139241926944471174452943666519399190800345760606040370818760818653204424926910912403993226086643995690663934811489945537623234146755781958625710418289378208903887455054343528391128341077154922082165109621428755770655119607212561204702267186546167684336383190103126141108739513978626136458516007998436773878198617491419091970815349283502011109366450692842127623762925405129953838585180381479001468200488252576610803149547907569668056720524424256837900855381426956501894886881455048588185947403573826300765093354473494413639781195812100933597685883016409071311437394048981393036439605422520863865313165120962074259531491817555690677742873582609503482069744518982063727865563199281628326831413657339000317323402728748464889091642610018457829775462754280428898328346345310101816690274628902496353248102916302501983138002381470441988769876366154739828827909650043637844182910750644236775698532954301849514153689044568454138057667004798396915183613507086653389488825329443979208046727537991253673300250018045762950499965936036052039872804315351580730596862141617618569926223989760192060059089071067825861817979751367999095435278034696583481861968971501509512504712328941399126909511531472844971010243463609947373411329815610376713858150896292905312736853042395600638954862975598434496668920324758750484597748264692278880870354424661553666953007333727689120131237550794107508939617796930715744603996498191646359760663374170515453682069428538502736120542791383555586507318777088522265925508785714156468495368898217193909796763061636375722070075950406649532321592432362381739298608466674050946386246422127468114693779842909914859016038999177864480293636967111229723653076104307133074215922576815795215237737472549275297772953488788891556902786413771914825515278181359936441919639731999769656425485756177377347304019412735844518876654640908238398193909326916903128479406363715733424611385314937345606670665686321215300070521015218719149845066317162050985205454821096783654363377993532303401164705167870055676241625696843328904707881590169788213577328882542625992844361187163163994164744828208797934194851199748550236138954559820439861266651025350401526303003796218142200534293335220345642945757460330597850101314580885678477163390226695752982469287704995379477508523530972769348764605380170175502033805483532584823505443013477648328000300623356828927444644794814928919011629668607241986009180881440189524138074734877983183653262520330900765315254453247417771155512132617839793097723355121306685538954590324120858025755044250358608072783476327982238049913804288426029884696244720262702680600729221027380872136596188876107486098762090837446624102065737943807871240216740745542782774197635987338382453388247899076306225487151365662725534458344480441301144752003146349331411621212678555088965557861371273481244517838064270231688194620389033674269722003253841924550228468588068687203715204358231052889219634058522302228475597122716279113791271431848511356883801211377934520476364195363229209112067577314651978977325931216867706000551784855798185100801507691274430438862575989546376676918622382792999565083981698050485292622842123412166111518171666017487396769311688160950200843789035802513209391522129110906199666899827409663912998475715506739135310412765378044031405378167608995201085160568466244333192278278492647655454883358482218741098027717493730934728068878406226296239636670526731177363913589523568755358042820148927250883814808223519423943640161782076951428835394387975253915632806931746835395096302108496667252366710943482283668914075019813893486420153306848030661313828151888054972874695612412330620938944524935167332704856180093741241138099723028683559177807364979270692742388363132158783893792207508010530566554948890668940095199559889721017395422745224510212155776873263510221853244243253250417637269767310237619421656373854077824229690346636089225294283704141245865537640124715701565819763787437828701769392528009875492971844538030825743247420579196957210984811327543879715701555447543311262754969104484748129162187614103833317948834138639838314191968582857150277045142777354618942314147955057836124673690773454097034297189577360968737146312466500824999814812152651096295477491328623955453591499516570208263550949679299778038482864325716376713536820006975015605890897874851637394455783636492156964706239269106893688487973159912486657458874901699528783307826081650370408393998545532873850750288200183720694971556193108236416356665517759327840673817388549136268980539704211831360627773556192419814273262041798909844071797702247053176210275651493826319047967981432807883481104900245131030825712077926318151582913545535603104440179932480513250126967376087250239753791956851554515187485728129789948434726854117003180232281989210509458250298798858333854697996224600832104917168267028362837837530590186775798451502676451278481224768518391284367730107512794840208557025509657832195044716389411633239299954857654007147340318832125969251805660572101666501498920675048725756112334589864239144260975363249873462940972957788423024646794752991718047255676084791344455832448838672952757604916073605721557303702136179461659023239628616970035784546611220498917054327709652819987802417959161160329845968736645884102456498755499095633183655977135440887787921218955431679231393803617196745844977098394552005284058376629104968010261414672022143136621921329693591361148267185799756402727285865659583285947940800058649857522193706028052595796161059152576686046641382048079695741043086581392722420113374037747053288838235689939148815559894033855026687487916408780916459641951533814387976296650245681936953698884942652179554186247618482070222911195292466723490034840080203188568873303791942534765514160881859198557748565815969341081063155722921441655854996561498616051834953568646663572662964015237397624529905014844491730723616561062593069804087396792145954220398507706177311910852847235873468263006915107137044470687972446706861610397196205910189842616388418564922069171704483863946406035767608956584376572665216357267966678515690315999370527696299444743209740799449489991292317102373817988795317574203540751608496483829135147299029039230353638275620151996533793005276259432304520661315012116708427955249497352613657350465541153943523353924275108211232988836519038354606161657723055259558635205963004958780492046104450765648428624413546819063010318354854087329171335197921005277468724395710516644573019099107551341766426987083117495959034025051357569127833822054499877976539386127418951527398828822286581212625590244042209353684754627236108321586645086322496256938197579997185819819322741751083495934101204008252353233136827114740103221748093735081705474137084296700755989992583744031862434512047583276445054307392203398034055269986622483032739227187155672565979730082170101137155259264554072683644619203867822802634633125141717940674446236781700287575534665663198268104489446295452640915367806067470082490609036394223699455076784442276065772345004973467768736344125802269026632165362897047458770812516766342652317469228428868078687626522098400370441521323898222514952832663457668385790104098366308879174869687261366641751976933029062134594526379581694718339466649728349977137436058950983379746936635625354254552449030882647482235626040148840717007531248655220837438125926735821976651193452785240607767063779688329376685091920103287153292036552174600405330420955103562486276209064196885777427248860575749914627024850821060048674858184247457931558099954181037418875400077432502811040171102966655120237633819876599494253213375331317375287577828354965798756254492053353206432108498644366915527226465454604021843182679757964575813806056998598692197233329039268756645136206976250240111484459787323597786022049383757403514564560328896831601532854778842067767940516646551588892337812733923083925459546702004899214425824232507757485032500908378847244706307602373372911986166378643432758542208930110581851273772009087497849936261581099711566380925915681635671745494973973949621649183990608169783223182130616368435106729704539343655748159615131221056831962522890747659787303424064598904200403208683886777154076247429683506077355880537975782439392726373414332991983668090063531273771536895450567116362511992181178768800991451221810525820432403601181364765417477364526202605816270343176836168072741475142658891836395310725605088602497957493979287428754487330645656215876746060818020529542548884584410766158765406428636729812063396063578449524905970620263277520882985464296513921068626716404332102607121797018173074967771258347183110775518637520725971364115905832095060277171253316198831958705874321803270580988858126260111728145790024465361872462590251672752418642032303613825714101987538740272389549554330950251739686115801344167571546053075197114849643819277570595334859633393057817468720097395669816123868109723914011290173285263745470728852788997657826843303255989172603846592204946542908929827040664661922808580044811784901082099809437804068235771192149674625719075491326256109725161352229271204294964631688578028462761707448227890706577304923387935469168293099792549684729226979293191581736874167201363121834137518505983964563331121297611559106310350396101298021973097824249801235664258772541454000643046115569068820167895111719438573221366625033282831635294892783329208024979563346782300576125417386234489108666390532153993452276131994041699564212024269976498872445941676163965649896723431828021095041004171047920827964993284939997961493244964330376255099081313274316587806960699107085020369056795442650275129741856404732242150960132588668335719115164436910837120722229702907573433286922962444046947888163984076234367604920922721950752459472064660902156796330892586188976631844718031751037951384354124512294686013844344920885496512856641675038715168234274942425040930904984996083089506761780415199477501629550618707658674300635041148761546149349544171563350413071710015436589902528786816121177718519915927550808051347817169977972730613205656554715099852581542722558110228388327225920249816736906897212919324598712219961226574145129401633819908815627852655951111242517614476159275096973052950080293436799884532596469470189217907868313744132061893214694771437373775787036590968444660650039518320866272579787221060712205032621592439713541620250707268239422324425513598253487997337587076334489903589620451019957897561587903260482362272639431602050006518832349594460511619415610011732145422130059799194403179188247736317822495345481062185961250576358177718657756120953042813463402880065222561202109479707680566940171541908412564512615418991176582686872693040558659861702761394737444442822434125874064991186614725269347433708328418054938383861918523550842622485755439416465254991834776602239116655031260648507498395992958051907438163372893463649984241323865045528440803700994218482189905456934007246929819750339587704731030352490330770984344399927681173013490658236006310103122107579949250686589877286747319879859092913296357765728254822096498381042806801355396157189105244116532706341665210370809311505437468780150128065394748985968439126909229719570679059823123646486348840081047061087490405925135449238966809199674740370543719044142896870024353795986606255384538049852297130812795771525156659177352442401207171387910763211803233540369936055974515641606277801825915649217275771940865940973815743080302201652195904269507392238536663671779623123965399219599236589196178563582310441963981914361434019185102487489576098494354638198940378156810990430912528864267837694158217760239951020085133707531845385987441742159629483073964586110107472849195503267997874189390913477110449198151067803608906818962079018907087503891455858420124960001039025827729207372242153044805655837905563204511368059351287869425439898619972904124765555334660245867880850765113227572359313289338169335657377760122811147131489051935977648992802379685065366092874841232732073322901659209846006647762767964683708915547631804457788980205914496075158032420216103403567656978240689534926920026297655187569090227987424951514293831949017537229998808337348989554104775270461117713040415067012414911439943230287018761470863978819747583610399370897742719142547776276129851240771170895498280803424474709739358367317776356774158758286394193930795435161793303429580353359129710637377913540782176038682554097828433602798770838802587146710858176129096382701885753547161338875203504795542303244201532639155754722191533628109893728303291387630283932608652288383651237711410903522836428029944721677231670971138254152867967486019510055664459413986397151518147648033065793788737321977882765432389577601521298710866811924289517785827355167561981653490549091429396285500919297175768176414143839812937472997466420451173947499777305349604550586440719722744013691245739236367799096848473552919812430473184854743890282082061174716256541331636659919275292286958415239388941189340099494883723068709142095456164300055997622112512498279269108605890011232907984902745039198897127984189376326269692888829729732978952904322561801566118713537591538247257973764091245853864472767494187924891120998027901938298878278969624342477025932383629646184861236976991588300105521412255600365890462288652010258126895311040367069614867222911825586763357127170716661561029296598903897551857185854588512975606519662368686429272290486695772033749011108799014117413731649873966453213093261800398145975684463555703491930309558226891152441810026368726232034942609437948716511883518638263642345083827046664685704051397779781509420241317519343796321361784070641894492237510430109253678207848779636856219047820189234971277002029670486280121190508188924765191485704098388203561631513896708888787955679685204703425812112461593478760541358824947314420743167077760067802136094670875914208303592069836431536288702111545249409921370177235633430923388385690043955421194901454418404203568151986586991838527277823156516749133542962006186283413844418741406191226415097742432215438101603957662591127504851892156767348102674023348483445200400363648771748068077139641894565232404446853470318691462461658882729761345039564090523042593701248443312405807193658973793137803267827741737117943120920749027396888402142235402753193737223116050664502210273116210564802271513535548891954134700184195853019238560327863529341506690330101563767006996495789721963470176338211119133240132424239666959680317573457335720251642423368069776791387986664134966016395990729941154308325987565799072720476599004713562404740783854996643885868772014040729574936531276683862916752343737485551746273904778563087257893539644488876752931585945671073041446860315753895970053092789684863791762290542355412333079453333813464596733118679669697868869217798047258013681561637108687283070175621251114481015944877378111267780233738954058245115091294499812643933959982796842987523315904050460779563577098961372732403395535804074317573556472993155959770986594964780794957400143623230380054141258266096076920574875406047752012958591065497677686284248139792737865296410075395035274259625148983927888594744923547383821243394211631300251502671048267023777680840686224747067298439586603090103731298507439827148980678304564800190957180473597065350526324587232070378533454425294665891080967669577980933650942122557584239899193700792807115944878993403066959792884149300324092879140928383709718114209726048446837253957163964782059629445333014182936906242721898152379107457776971824622719088243071716659638262681279958762194270307100694596499697784395367516101066936970425266380906652122636656901596788743292840308692796839077091756799458579574546939763983307885479807900196540495604779449609378512460107321474330053560418496846210503209339543761888768744870046733969842851142965051584027834276213742661865656071655964161618744546315874069514542455083048595872544058156504415737577882739859200753422317859890445871066964345915939319221641556118053770299154408166238455215458107261149369044579993565641025626285675705251650914708276133416561398018665032779050164116527473294757696289569211591753362043773070849831346368444103293848259729656906123847460825538097927968422003383491885144767874793967420420900386572247191630997579322273437744095102382408660086015623297110888137706793389089875733801327060390799388757624075771624615409320758093288593140288947829201595767605561159540123389992163204112460443196129473965956233003172531465459323843903561897869212608815230812201707188229234879100053758022789292386516493802986203216588772105018319969026920355438699016297093408537049449602252110128332094244083200709200785818179069530204044657447562823811394358424373189968696740895128664432482769663672416852454420967866978573527468451094059323571926304943950686988198252867251300350085742703882175747298902673923116404437001074102531705330341178184410220030227622237487550088920867648780295691797211809544569444670846365050307192372435915229576343822371648372358475536700482317711289319351015800507490266188147882963765579964041647062454389913701886528267481031341484870505310374583733413233465871871217009700991339601204237235824674317649536828288600897006918819204675987306357899460258940411477253419782474317075020363380624472841635451140145744960425026701341192454470795474749066476835923014044303598419020542224603993418086318031439082952813242989471301150636603659667974091662512170605878652382035704955794438629465941633161701685815558273622747487593562582569622252368257343662247349417805517585870775393784809242093532700255454990425165230202910746049723601853864100024101385952985777767357458967666714776487259540242996793641286535578255042944519414778226727150298668467232424813121728451226987285858293507761276525748275840248674805833756871836536688961493402778870448011615234225376885746779274688791970656788670276073741235440523509251089581435133817400129825903674718995978566575487808497044970209914725954552095684333180515203808512377615535125474205519987904898208975891510726277697069986397191201370107212578978980290647495269355150118881906601090477605192014651183550707549828153739587726626456664766769471070861101243737556484885079347914008267778260717869136948172862559125282455692370581855010035203159339998539102153418702174931913923778675485229202612671262228652823437426862867894125581766931162420614287087513722844168329219717276037494278408336934490911283988883448405947428736704710148097253546052354355136223916935351741643598978168060082301035341065250634977789566207311992991584038502215796022677784716844650017719396451028290744975427179006447946389473580157971597318377704840865391758496008426811972080196458394799432088226204955349095746231189626885375024434182481138328431634826904510576065271973496498887540102928712631819935174405250512408649781969105829136013729663493167377907154686795846776157446747365271534551275810309295796017489655514126745195553947533397900346068151186257407512414457471704957947901617656218358990209578986689413042330346851990169197472489849278733325982344988034482599231332120646407176033992094449276911158967815101662179239354848209884764043894507178788641110670342452818321820945686515797330408908358107126873888044858236460326546040510876007742242807274023062366294758094166726912220907493062375142227864403394106537265161083222537713618558675842576021918109642923864518995626346705401292466607047830908283035688648919477686791210242295037301225776685092883534030421567153232070470740689067246617064138126577516717815977301112880162896946167558158107846140715082658040735594709597977986678621050892762140824279908990589359700354613152801169100452278153660100477286657638009084622880220824523518718695121504323401456430771866718114848978697356007153963653845675981335978223542436725928992903832062108888277926538493031902733543954411069233501504560455295936300145449221885842386263726201636323864841650613104683486895914696784146644600606902155350384543901046082208953551000390287465669118935304917550070259948630351886574205314059720739889168835847733295376737159292874832601443432396002317269169864744367480581238809598106079152202857861851064301990838057796298018874662401209105271660523708664048129545728590368529134013551080980634245953387599148133173029686407260274720456080810822511363510091618964704366288829312502065835021355287072810976956710006221781420953768362012538967243220993259374899566279953036546830734921544085060065943002104634623775560484725393697602659480147882070330126034122692003385738391841168583837364532963736305304983484311929872039181658999247744255697592868306987657045695219970093733181400335602112044914156638908013085996372825901729833156922530559567009539759630246394305314004876343958792884799312826958475714276502182223294518768970602776651582092835418958246682928803724136789151150445779289849833378844182357673585065075685999158028749437476051688493567037844439472060519822542074340617741640584994990832587847056565694121090941724002598660412118257018856327795593415390390735377234344538875788093823461708704013732967786268970213984223458592621627608295667653262406252153458061550254670264875167418778511407315574303002459126910255980411698522623309592997491448288323210309134260967311134667569645166262634329703760553690729723774554401565049258012048245418085021248635287867224942618176011833437908720954820712633346411222392113225543743447219999418430558410546175152552475814143798202122316283413434563973875122024720803392799005870635607018825796372613288693119802195055729161115271097455612338825155108425175739999434041725828502194082662772500384552038951888484346616634527629476317291959077759657849837848705082002918201981271434391638940832815620110161100868100576359238617743121854395746330152652574050438137249923585891405473591776198443227861203703940703812411727798863641865381760102617739961143574746693771404790350076509035612128508625737958498232338028859173906613524955036506916874261051671856281225808300964561055975444638631592848025833891861116938690763191872378849818251769076264905443030829132601190390105896127424332925429752141715413615396201675100976667299464545653326451634384162272887721537082401026560759341656394956531086920343421882370602263208064496138581449254486109438079818558143428375632750086183592190877759702353175027386673630869596189079713597156855722330743884568248268327013845653368858460776298094236067849108218288037764876564728844396906830250737539598766959660590501216161103844444539410689021224906442920983726355160388653593459389733182977017184932904892229231424585941866465555480194226349469448604064568095813149356690225174024877964266968792227385627231556050645117489989154975883096620129049482375946249377858605473673284143829204792474467895051965807870682797538305302403867273406259461212283643639225659909913864326056370913852008092967971795886766156873721377823225345975544065947902401379892561631717666578249496444417958005342569016164941206909781208429285594687434934178948193460644713963587438008393470812265970776809178158234502481744298436888323152074672649499441541331736921052758839327274858962883189465627889397735309718125966501840778144447544065801731477152484646894409032312277117077930955082567634871255487069027743892764430788884691196014427924977104746087802842024660712493034916696755098406495756174647702887039800279389477485190932429775463775739356269180180184067707377971570341118283628838409581580212086830888259494044793036159856583973931651433274761224452493256786154192149650444520169842694415947838547776141239530920136380676759320836989176448495070160686802527268917754636633761195976659151711123216346532666579568286456567257198024362153895636541389874573769582720271156969653257228602174215781572786725919408595486028214847647669080860665501568181805409419233090393150541702668481096249720850167749911711596653575265458838995801995618696420147928857517034259078594950532408588471159512242453696705495324512675081663599046048575977731224815753514709904136545099257472354942911771096527701812847027630462476686564140405667865219807122976299849814544543371940322045673123001608005491737670792573939190783541599829556039526454118819272166247038059268913309632814372438835613528358007105183542032621883594986383810356311795585165131665309781491659713025828998934666383971003748334608536570617021735990653218079019860034915755559695326164983518122132413817486221058736846800993064893294109073379529456461655508194240336837577865351327596972496734037837474681400220453714727230275339645783530249651139070947945998678085825250575299061256268427839396193561053880803318947412485450853846984701366039225987096491721677542324910251233650397941620182249669045955720558075745919617390752234416816436424955574191017154235059889780539221989779692471376199335532561887061506867133298709502511080120697625171770781984940695658353369715146996440764738430190796741388707732982650326237748499164334129106709812299973326142050153743033524037296715988007896940111528796196795245966547885821991340674444820870102955419964347847280394984888975248145466196982607222619138314208103396305039400425466636069698623491950973531601738344574591412845998357009662748124455495245672077597584611961462539201654515675082046868025366321408176488827276505816906403273607070023369640364287195177308322355792147294507036681264462134407179088379014390764432005213157647647427492778195543165084896128914779113016832637884883358115448643106346613160428532362941785453866452172096907300366512938986453763195995585202965947832395719356721678069087028474806699488089464407127893154897726765701055445643204333924455473925840435779501753260893114873083534874018198503620723465696710514751553274028655789274685040485029090648496013097302061012057940904745959891058873533932974265338180327152881440815584252663366630828157146055603076990749345311948431995921972584419664880637701008824361332815623103584234346892820685933298866391304348840285758838786593928886308687756189109831095175555174056975372123604788737338829716602410116003044600165179038602328360570505155750503791091161736895484306112922935164769008693485504988192481435999525965272340997702491685988065632874473846825106109154121551297538069185839776257285694220911517576035016833031087613212925408164442582896707833617175593624388922544211156685257792618113906432540360463564898092066936461603533978086511274143579583041966575934573546334819569484867505547209337606080408370531442410712199738954975271533701895620833404065165755809723919376998776371794298698762632045042628131281276789306578036962771915314220008947020700681281203782444969877963365230836837315392150595566209761179985882903803355408202937883892863253061544840393133772451544707592264939767972651695074127119375084899330220420070349372409813061789666770738661215159195473826645172849449635065084439508196005684087304585761080288290268499384248938680306784561741338279223620660290624082761105962456779889333842429655903309044821678524612162785987296184147913644842924936311021118652335343536666924081832028134511551309563835831937568318875563478311172471415947652581705263200661757138965430868792787649034594366852587177365123414636798097580784393995012098879404608713342277138983654536528524740832829901753945309174985006262591622009544556733111087889860965319485520357337505005279392385382927884969181324249739684938059584131972827947108572060041215772578373355881955624281244313161529712514746784341352248619905072854719264055535208355407068853096924499582783672410353410100715035536259046709484382386347605830335154449108670572381906631282594321026472017593778928993597072859685216055659399448378447909609967199774350659424840437708842325909394246530275924227742805773537161573920991817576465041051152655385250497255415282782638445915576107788406839762284019233660600758741903119598599781848070364995841203724529564228695087075682816839246667189502891594724753442813717741710499697000748865574525142109940827280101685252239500284236202335181464000084774180854480306501832979765718338158471361647045955706848582185709248202554501042600908495398194943893107550155839534055379913927462460129960332346263004798031805672301869996585860891912327538521881018223339442411513090548318417832324661340868244081281584513738217276385460945413461917594059980594954496363638993096257027051811627385805515653584552976240209831208421567347951714246801298679931207424856861337384463822628932389829283078770364114305313088021733268558359982156016428869822921566181493406971152413405094830289770166270745933602272165808985374525552613413921235689095800816424819195874292833723120022965455994433309051680927872774711798367791357224812083331712095140137890508519365032660254492455175324194254798085524907155119019148816023029416824442511033087575015841688466862635749866599318956158263462977659028817769538677937156682670219857241160876765293083695386291021870336686104076192606091936834866122960520342368786551633341593647658481457776970800557903817570562254512795569856872461759421748509912457978617318103805166795280145872539254059218620433791024637150442773785020260144641465547651542454401441105396769517833887996758875472385187188518592956129282361397795512131448742865805506389623556275975481599874215485563206798194168712045939932529157603338538156425951482632479031807177458828504559104230300874855359132456238966324095598190147925700054943724569148912216581096653175151997189045615549368978092313381121750824804167788025281004623934503376534527926819995781074180507887347376524900901545576682390364419398991446205193493743606593921859953036609420699839098878070486424479785178620637428173026079947472375293451815752815897628554276887328868110294609590497965880944277772835940847253881326147713379533498043925325050346989401890764662646250595997607553843123613882585638428392904816685542207699263255076367116110326629532809887630294591779032912197243649973795808197995969798596113447071857385686244967041980196901754064826598554232311433264288509795536798893938391941143377794019122053920345150120072899599597638034975554863071501361808693147851693373327446000717113957190032107761275090419696880465395064672343428974927698825852441419562709800062374781924735391383472538270484296158333718746991871584037136357428026217316075785385984275772937899002016288029267000173000546646111537063789399422987220075498767575676389555182119893718694093711732770156028122488736699353147354793701265907670855925603116816977290366044459216672932834800011133950140000753471245063091419835113730812909017903359420016397269787221568048813175986151127282458828845562842019370196463318661692594432375741951643216475129113077980254955358978662783097543196851576144891634008913678600283413934706483075081651284883392387650692097827255605131621023521709463542839016053815416034328600014766386880060136243472527774944083787628224662605881583302703895101191052921663564646343987268922449242173779701914199613234261594431371247029355882293354383189731747663204105044242045380651575988993167721603914646538822170106682051021257266197387838462565447284816361347056132259331429558236036487409913859835507929029351000845016803766352050267348173575254687054794757873411980725938971167181141187583766152221413560303439605327323901575133748551545221255679716258433800451571755731487053239062787280075822440054243314520291288286017885196652331401049061760167883563961061909660841758255890148066879911775862654016557297770900980187653530366369587148578827792006401367550055906245543034689518790703814831024398040445344694626484842924304693285162666134566713802695872716350614764846012144698404029612987043823590927616425277945773730538231396145470673167781367277259853776964604957113619617172475977308827278932054575961373168909994178939576257115762667757712207738455005966670100916453810553023482230140454464335245359518858362917676592993252261975144680852207465655745200266676379601851578519873151240242484020779320149456035796979784036046033250537836612915505182705461125588041993419368236828802641226984803967291197364341358376173452198145179071672370816578393520697060109995960906419410075226803714295047464877925304499124326345951588032889619316892034068340919211557986321631218290106550047463520739562062409108286234474033170176026373728194355202076583007759054019112189013420771190439537944418957592505816251336354122240344289041115228498970689733510775764369780772504576000825319982776369866919200400649580607509236692798285035546779252007270869690658656844047337230609927257509624013057298221831474527476634418978862826422575049109736460761846018738012399939782323944815781770808706428153178406474213834557826167634998179267960009215992632253211802832080054506724561563799814629471589546430625902430038263236751817945123908854318157950362452611940201171356145071627817707918910397721764600149191468929270771812867272778212702403401053394234642656529799064533985504440819394555485158333086108882203780255216686784849031732384467279164229512601123295987436027276593941279194910779436885315465278456728302236554171902206278330634631233272198074398347772701409653768356772191343305573170298206056170606822732172541230522715079963331766182326728515234649197862026751437303653436691126866780939195648511538598392163306364093229760023326490961353286284213724138772228926728853589662423929123218667697171377145971293087702917697957034439914713990290641189697230273195368546230074513741555029551678574699998873539663593511070805199438263340444476206043347693691117081662118812844092328416091754035124903359400535467582466724721266170190512682073616628825198567815474981678242438034013578187476876909499557563609820523797222819652930549009015689197347595766386071610202081869209340507209714682940418973006983021487985576773039803361711076033123984801178545626523056524197713021376819853127061722959469478196157931788566611109393028473145880366794611293326571961621860501442107438700733890800667268440329781920579233705414456171551546064754026932531709838350953897386811755188834282710503880007729748523763701082272239727543436436968681423895102380807008292481256784427998507824493030401883756356340239976614229634143107180827496057679289368960283763445541763504743096094735660284390759692733385078066779188853087634097405719057449851388754206510443498174396387432675069813502215371833732195040067697247285215887032992347802127557181760922656954108699837295533049782900870680735796974033288678944831759459110510385377968250778595935034186837037529248116698641962482226633597650205458399538290623532755629295766235182266942498126598329555469739238646836929131250008498890121904272183527022582306182418601783794057900030885595724547140737538831350495827707237833623108029732617236899266266448659756863495158836627996480982548986004498774037537528552525005614799658444650550817116796784211214069442700154270529973666254059148282594442835483338279416611532864776543909143161707254109216619810136671057200306682152755378862373046949347456011850568785413936884650492593460592570477199387562752414704321358154244362650970366732267549346680008792701835423212935592447690684162652437895400343558201252038701112871018300841901031001212845787811503058110693825958071200674213272421661754136392990939949891295162425012628599600070279897308162836974147843833279729232791258638786387013182437112075808147614204745011569204920982196102696328010593762300018362399141948139297383456424986008721808247279463606075141771583198975432110788524098826310342722104919395880499675868279258576621160250244808484041847778839830653296628232955092486234638767057215924399242149356736294148429853374342263960375390549264489401320082797713037714187228117681204467177918016321946522081374809452394101364543522180098313147489219527181737078725587433103678890710404717920496999084507855598888420445371166903312137353087589162310248467127307871612877526353241810681318202105095557131590150698100365401836958460375901545449104076546584518851894499628542935074042118203415895885797401050241337715243606597451766174322854778292228484823617725226845544467498919893908027737732699780065384125219519265251398781133622445028719869620474062015308604527528494218652327567981552859369926040838425039295289844767839197785877880120482165478756810696515760040902896832143218003362979117346306958716087302240707779713958675326695531352465192022281732285027265279572644732015407377262494154505387825473003160298996269970662425880375512820233935878743010833355901621212061551923499402953965592242164096860546659807672643406811743764590545741530899367846558544603105549213428136581440163661638553624381963330642685058629807599621474849046767268087791417470348665528044374631957321246538631621669807036118320171468100172224120549848745198386457258870555215548365237859166220529717130578567264602939972824887835657547673570676297927528013529168143863488668772412143944762630248920261151105754033320250082534472402987054383345345299921544206671601751498115250644792095076650468031842356564434044693327460880622181077505582070994873119083682957252151392747414612863452530029312261117331075371939375467388585451775059246439867334774907238467953689025877903809308418081123500030892493110005640692607232446292339657137631528938735134391706362617996412618055818841781239501425753400664558198016364990182635864540307817647136043047257430424941774652716982192962405971504370984129700063016337485297076381096750888853094667552827893166314759017163174062269555090766368387502313828867893130500329785136632761504195566617937257484148894259803354145479656862432254978779955531671026823031968915856908427485708049613929715089678563348445401988795315710462991144902361457833275296778778743966777297538313229594903466067094107587798187110944522563332941524768787642615863373830015559978619041194137182997134131912165434635966798990554629628327704779110590813818826644680999440179390587340251575719333933838872532797814947021568002865580481706955929764596785611564633855793369686367527310021031313419137806820721011121828917208018428368950136157988908028050838655950007791809507516402522858294199192177128296506083858966516554292061036028187123397907144873772066782314827823520891284219387512267874202298253425979156081833659775283740171355277127252980731918877438478382572485598342352445343902911848031507569027129080627766831721090484834843174510977192784359895053812680708333097511138986220194593877304728118520305890418646542576960302848971216662068594379416638835530661897690045839538835182571152560846941570139933458605547770065623732639294465413954020647365601291722753871921910342979410678488949516760940892809514085785189901035193793513079209132715414692060176629826375428534925303728924787240632918578026376240754872738327186211074203192841262269467351989302126451670207037033086944658256450411071521298371130785773608859707505193530921503928261782718441299780769736200946768660126995309996493762906536952052430145618128165259005273052622721021177389957202742283750362800554257437923332474421537273806098955493404675566537034030341581130000288708360307713527998769130510029714127124036912742748736651816558179934693889080524505666148229098652334534002575995673904766509175448542876819199961792887968254969061281979511222525865495280565722964006455895985380186066244780463437361486133729764020297376993876752779552107787514077705613237454301651832944721382694094311543744924635684078652247187641957029176323760542779222011092898567734395534932473261915893187322517950757924481596392446662876905059180756574349844567274776413196040752265551319945911645823528960720786801943978863791523189436413159024014694064782481265355596774006462042726113046428948804753342517778975647928039714618632440627106934792829187556214894309988692063017582202709919131781771962948765429447367533419279113142441209213935381254372519239028822187960183053951995728114097339920799016038611890419936359498905708054504898482703355811144835030978396418847856404684992689469163495322038351936765907269959520696664727242958243944324326204164707659315341929095108616853544786329292979750693850793838084331125108972102742460168759109331781896943481757805282034970022627548675556957182042239831957103541504983012905688488213134217755905181452778462872379825568769568722273041309905465887721533981676505021405931231877068456745553936887200609032130343131645300055379137478588944245395538689734044982207810512130258120227739310476454836925302129003429602717804990200368402444891477280990122038947778645793340875948005233257635403226038366217222330034231648609614906201519413713742387065071178828129270157637248836962280952041437525434362840703684606812148232990864348442334211549954550525866260603961745847741259581390932751684176011946375123785219019667522259732898807099662785401139734385610963362762358238549440302977123216222011653028779875364007759913133686600170880850968384564586642583677255288758127619867460723992785787554117198274783370429478579774741473893954793961621269967196781709229277010431585470066526655141968067099276830331191251462762689548695440473090762836694725185701264570601726394626303910098474996125151519159649425112017915591277939247393208543289967754584640072188066437763424754837250233385264351231770717204613777139259999755784161485970980136506785992298160408970955410577155852249525441148328920854376570221443683658224468408586864779617875873368867152855340066085143984448091099964801115187019562366248341806060948915408333926605721738209083374409948950381855634791466496719994656811306981790442953747836398574575665264688762673863827776212766064615658747829956163060888149829944210295055153254444007517680466832351363001495881984711879741881241331623602159895510778465802983494447632639078272404650590398480050866012265354373257823168975017935012776900378424861481429015997153296434276381010730270776468731067572819527353000019220338163729503966247794651102551705104167839666480820307143100300404122381593221567871352743099729427718560271543919630540566047304434412467189545371539390678604576197628143694999396728264366391939689557785868040771711004031081827475915394588938799475197041772945850953212843655479463326110502481632760888115605590546186949396887748792604396120559235383884733223826189422534404660951698144194961585749258190305129537855667579218895667907044308253654203046120055902070377109058831536496541060610018079823357804314574237005178276073045834535043499970120329322357531607635593920293057474125092739589894813359606199658754309883354027439590274517847583353933500343085927194947770585933590585562465580047946802266800737914884665596421603667724370158646006959493569506111414255286636003011213647891569050792184148129020025422603262536132863915284887487352938707730296968742355252825233050212510029683195686133287474866171683273204241088439494653359018928721329354604094044203193145444463802201891110215457982102071277804386506025465935503046537236630973635476029884918885758795972406346742216300681824408123003953134131653889189966424167819798074381814504953706655199002089332806516072215717564698141682664370606067484015361730068695148075608883510554576033960727752134755243689421513955150346003766728524004154442244886868935803184397229124992938671817532208489330054731691003605746777559487743271965650543358838539045649495476292627849675128671630177298529462140000578490244569400318607266841718766507970146153292843505562726199636058060535236037864865022555575394089105908836299232138906885075646239987379059761371879364428081902403453214298441910908257136955611078738746886864444014662031251954969122346374963469809020481253916178546732873346875606825693547927257830784491757215110468180848940365068502217908458931002343312200646028477756000276480739858323021119855817957461497880202910369886725019152876326765162880650080666022190796402867885092288150586208040021095743164959785557424384505231974897976194284324161996155670785163442495598016578125251476260202544473645958740081311574039347370405455185996600006724143584474727052941175673275063917415047177154653429552440599196769312898004529616931662344255523950065997923519731427216898650218437077335122665381161321622659260820848736651668842244438962522273778881856312661655102540891710153365606472268578695764622989548509885515859539527363117346441554320667700751826127340717998254199065321897178227105341402361567384063902231015459218637252729156968801365316296422575454202351330265588687831956775387903986549047375005489315984614857688177108163243362054271740045463902184697335577745592303557788972160900394562265469152379929396565691391053770414170240774219782722477008650660401109154094268870045926385852257935844784473868146256015127568283681156802303680384618481758627684935981257175189386603726109414452347339495745794469639961947793296099096007336681147557839569401700095323078264141634635198460087224062188782556589606931430610483893844067523118233043425702223673314193738796715297774745210075294778088576352435828722441777014471656875104092999625271857040900965335409999801404178403980767234342097532209682985114022571296274724413922872928177411798414838209098577801686716698246973519652007619830185417378010272683059807618459877892863390724303232862778595445439348134169360603325827806525052500714876207308260774615302714238400721268793942664983436914625336752030373391148769776953963803132072519063716126256240447571686038560599435169206060967305508386850970105007028160735428326203656278921151370129549307927767452633949385933834846703740383364181296075538312659604974595065288375384303405184300865888871190338474646589767641589394587328118852398869738920388709096976096218935158404841938229926264640712151200005176046239264808003574525607410457001844462099506294014522109368742203317877593992332790373321359334547396484702410752175775412012935818007430781916685139193269520851201113705567763860874465433708784172726499059883707658783770963564094488937656982646245118246592746243479513892355419308835915269683893125285002230843941740735721108809842963806131496541048160872641617629338306496859755262487714505462048452026699903181473706808589589664742092434127626350605945947855473807139292804855296144151266590257092318432706077909915120440034252562158188214443784535495781044301981450777452912581076453778532050583659152030252935594252521121263338750837916642442958946698795934751552283194152652766975406729865951372055284810378690352180139127060407971678086874538978568433386450913210876944774160726511298725739083264509175043990077618695117614646908052223168367737044316286168449968745145154983410587895374157469553796973998846070696258447845525771054786840450732468417659103867142325067149531555190552298297714142224828952813464273061357888428801494497500558468598667812114381597835913326954877342069404731182715465810874236387956423996487718203027041465294871221993471278198331664821869424099011068686263036871225792156178002764283365741409600820418928588149542833973959045897899195018393865001822941252886446659666240180969752726538760503762216950259501270010215745890270151320818225397499752439351897663008951000030422550349009930920951956469955579549426998289557440693127057870116199471875317937813637416014547351768580899642739430417207267075397100179591604155137217577351153745342249084374086675853292927824799919502944857520262831654561824978891643795279090613221662171207418058732110739022329416053009241157588081049576534144008393706528307018653470549030729312254753863219976932484942490769710914704714380708204006812981850378096141653197526627023208122461742298886668432425855690751835137801884498231573889779514511034962682660277624074428758243355536298876350468361806428532105662477730897921735727789118045710677495314118862545735378894218756337003602516875020571785347961217981570639645453355005994238361938192305511157626118942824936318152956159451123624064156122159957231991175920193246150345338116859658428413642492124284854258721380084183165079383197683565672547452010086805183204521878183465743638956864137643729229252090494585265978580098997006209101108846803197189066159396775311887649281380179028428583035821306700559401233020068870109174598753722318115902923372725495844769312587575845880469513544297509411875229442456690427793290721414636286979990460989791239490538316927361966890938744652269822787137185304669838492252076161718047847388045550885801969268107234836455481778398588246133845917702399701526658833646162728109643383641366236772934402323578842361282592415846368155540655976150335223816148581164169230742587142294177955976197468636848165847784488256949763661134312056705620097627669297951001129615554950977717865259008613217975376244399768649738529457142106339731848307410379443623674984463605385081486096233271915321167323082788132387197323089597744403606160535729267012205687630211886161142178437492036042630570555361122728371592038876132256958744399327288116213655834278738021780293709876035329801747223448515682259330138827180126950848279217938162755937244130970254641298744335192288647978480593961168550834072816595118625124817174813547694354656167352432242417444516382359304283781173368019399944353211206611247587934173714696426624253770917018994953612906754085881494599195550089716878184155826972365228600475415439655664924176939257662716788861777914641342853188378639389102957340807439887227827235496409533249888547205771960339771623867811528183211496357197171065410309774756427019118337121663776471948935107268065121184640709112345417312696921747881356226317084935423281918247936620864708748108002995513104636821173581142783889280740838201000622066648992058187451468772023069837942139356125079089028553021034333024914472395795004161114861584379317338920748758652814777442684378620651477705189268167222628954202403586715627255699848002324266323304484141776205042431991646868089972877683648701759228309125506539016176943834027702083706553596930255417328675573647959244448389660285420282747876655394471356569361216241752004193916580411350678979939492741916276949079270040038577351335787393507121133875799763010122317492238332198575924505465868076882162570546495876478423948739634540349778991158878346403304034754477967527079514392140831494677225406647330903305894622539399522795290921007589878720103153962336725381626871350918384359569264590107269284638540369142395023530684698649080312191765115863529013123336786846581381398495654944579282151753547491911573535919008041607236812169191427828059744800107166333254055190323130135965412212991126683338212590856700306101968306550356580551279798747400535816108244931656054339520625088307955465594706105771811285253273924035066280417378866320675175345762559008428052339378163456995819063846817841861707547965753895675483681604247827487972802066415552674696170631212513595343660715446033701702111185902176853897880863491864583834610499328239079258873508262959649287770166272288147819999965746124760408979079599362823489209441899035181632121615796278110504271562687317406923584149922907212571752800480472714204033241370835713709490484216486986344288233008304994520709826717722008784739452175661726597843942146962608901396486900351109832771506644050420415289519141689319206968193177047022925508221466838782231906253119646225796866766552459907841282416222759719430774252586159582543475237765500052204251982419740888945777596164282615885864187347311114920441068940985853223769326522240209392124734211540936632759188959738938114900590310235298572275093051536458807824615694425417835845621044619748141850856425032094234527642901264267253398070935677512466877953724502990157450653423038182277286282288469134472767598106477600288069237964922436645329762518264479786660287202258910999564763498235010527229913564533738307483041026302250309444213585433540835330713461138688870013385001609398175566220846908406030641309629196267941705548039084483984300748789891222424895344445687495101869635352577840728449865282154047775177085855506101761279457773158856717315727610730390274199341622076820773790994367970494274148315457235788057304154075730849098342543639183225977024831011783150359104027533888615438047849252450658232666647331339599643339654915550897074181277634453717774299136902696369280524437353483922391176108149007306070341353069082041149796705190264672737261273678438641708249405352711247549892054012793142588830008478771025330462290331989302509925284164906261868487047074463236619584114391890793986263823461388085169525552589201343626124528330954212450631655391061096119941263357999547034269725826806812369025556828880525506918627558091804013637542499801099096412075847994665105299146795932416526104387619053606625564653627239706157909824899507908583694987147017190471629146272442051202117527997124206071441228352521150690267445042938993312795202285218001625035650582400009828623748056317508512535977740764899602802108227687700310805374390078682544408540131010966440838572046457885274398993584217534144721623195725557463829817887760962479236089904528633907704190265709815951953150146411160002564963110996694782870735982499075042086448257668158833130850878754104869506338812813070269848531740923319445386523596998609278630666129554918355084045238459166907885670594066668439490489141358422262810750661877081232030777572564549303611393442813767942750834514212915830677342179978271383127989145733215751042812771634733525786260671743969628564020525721737289836097377593650399110696699239684833134435156803535091428699304325357140788632737416042608407576889325888477179730667640088345872168187906466493687690017770161116145600193575413804149491836732234649328778022753134077792455121392501836290543069203721411914247559993936665724722151016269913209523278802340850273328145291835477274157341488743799904728161467847900791054417604570290757774051217390630436227088159919480776127552928619241875078135725708930458709978256808299970134232750956150861798893729947945359003573280114918593878247373954578731114787626937132082619787806741920360931744416431407809258611518145666853171467407077909909902714421875061368434784483302464441105563536016999419751132027408366808925950822783245993851924633079142458507395952923880300492065659364061436476785420287492043340138019096494223081622462479154144711825559427091861704402641411785677278855129686893275509979232430550459862188829946019354469939770583651280487016314397632157550830060637611047433453085434042303295430318034751961210563273544468444557243815945332127784288504671260111599405671619409048880235792370821682788118553629157559938654256538260191407628857747614857121522176237032777248829540396958166121991783729866186601940808330461293322484590133154899733909826204851114878905597685753498994828015657737454635233313388505695129935263610074373714948537383020937190637901726968143160336483102038943677901760234979810974121235596539885057704081673978600711895549714914013949667118355811707998250557884500780500484657144940543290190259504058246654826080420152949337206552034069462642862741299186674110743388204732626555386210207618787280723856900011618229768209467937998612593045007251177530742203742766624827122922676273627827941178261608920626211198300130629719482457804800432029761695217698483672833118254147374344895642429400693971010392877530950755746731273722495034480798245779266915171869241893253790236521353099852962704227746161980969638201304116127038398316685623234258409925944299207305661407257178686102641446916826307929722034997584012078475876465846709177461609279575743904456200160910687898443268010800715622397777808084144829659186704003577800131151932858945200093312888149850888593051787561912043955562228910916815998053908369026555693696490388418017056540170383621329176993072418315155417026035591453633517383060095632867479275642824092746607615327642969381428212094605199292485567319765645038889996053409025406188663604121839754523251705587538826199097392801359277520936384469411872532589236605755448275475331125286458343219521802587579957038653609011589398725886840255084600075910270668766519527036957333147004819795041170921605753333876784904743981428357184334994017684652763322353281196813077534703040155591856273330236773877782916587241312331839174384202062723339752758367640643683868103925372834648099277469602018930134572259203119576554614530888957652584250812307103420099565764891285426083391343862298655688764292579238770848300534745562827166287940235703769205243534106799442118433408313784595914021240088569884051805632834730676800149802817453260257932373963774237014580432204050024846409746212610127104465783024470855280433702238218019608323042449006674530189497392004389877610145421386704724561451408735097535075753625994297226245328496245966580858914720055310575159811532343676367862014711608140258152391981346469507258300975691492046402986943125753587336147095086868256364306210882707872110038683066837957869377230024156195954178435245760401743565735771345511530758755405126673004189025456897385681227970559000998292982803627865640069091334620010506526392088391613351580712554251921616961280242658066255831105421027877381410304628957635546679265225189333891088027850557260734993195244572733733575994232483994606670407530960600404722908419426565187756374520255985176631492991842388557562920784068765502120830059926053271850606885601789634915095274067364730817833803276846961039061260950332970489822240309763158242856004181387238215862202817717977344830272940822153292131848485421637341904817107036399364135954201865201147457571109763121442711212758418977714198450357632687275542288039022781375063502246424585428557388083292063556119121611179564118788252133091903544520778495660266259946354298519214084927415120308139485088976407313011766950336893784423094203653908146302819228325278104153385120260631564924185717758036627834246619372484031588224592339399709661296641948933803671763433629855747281346148735336124388611474639349691510704305409508185588834619227363562456336355718821450629339028381559258314411519111798154296408793238330547983516432192304326591537980972921795936922657274252154625084786654055901379648048750462577679877132033592345023577273712766295690830807623484369642755190391717138157879906789770140858434336513005366308872241528223174849212340728584828629682453069897996933290907384406207253130189699488101769318356700105914117624097074538998885830064854412548732407705373515569999994878290478971055765959419233754379290951618178651042185601979764852448903827487661739050696780287020281291557966393871316910300576188351852863757333485942960128159495366493041330538385383776486891422854815083466376481198140442196539869240654825435375933911554715254522282846276072123387385158958071348328012886949311649841928540574397348961648895058800125628525992848883705282595592246432671422242469959133042772861101702102752950645456542370561700288408954826859370458848724458144774418680551120217812179966162704304977420088180535473371430707437005322901658852509580917514124099539402932796876950620621096733662874352995312643316055852727692460951820104810779718822752274187042704116684563494357093328225361862630200313447670308641610641577330041006392833472095110162498983491889960159403947717922818194848489194430703608165014529369107297526267715607572285244287582369401724162548273208717468332379128899473405779139849581148316289668641905032295789754013922662594130329623106699293520748975335907350212914753048497746848406507451021013353748613183048769535013872428738184673357773680342749156063150166783917710287651127946412897089828428888508603042954465483582175526194938404431668768537599261049755536455330591932925940509588617023663722775761369582933272555803118627440191053363626609172652792099081542138675090934007229465081822734059144408643660166648859832818298779135686114343410011432698655809021993901261626047880658648139977662958887646344374709372097308266136067585663817384499391924463945943256056110544355429401722076555583257578302564540803691546839175603360911315157061222452878260289364292058910675052818036107986564022481662921134787799106928909634136441562181912547215981028026298455218170375855596710983846696761116525521932416803425968123907185851068770412321068345094845799815089059648902605433262516088578538635123196723880419095179123240921642894859066895057654618540762755971188347412933052952643513423338560768376519628733555231415473365432512636786652811163812896448877576989484998225715101868534377097093518278801861117032365934357020652401868119114012092964329755371631765949925176378646026643114840493877819845875792645765825193071596087679647623699760310247231178392781284738526054534511880233419103868297615146199628071971200112784346580859818201014725437211187233498432792400769659341029661229748286662126733950680254862523545915000210143730438280988837099641335338506930395667522106008671624405371025620819089202936647547846921963814321276566640719651977369711215453671071385131396370368365101766379429991192459802729864596486964778351416093655243489036891974611971233233815081389876271899427143415236569996836052508739773592244217457787234401904793020996024623237032371764595866924091636219026175722959692953767280833255224654613807193152850681275878462954764123524990859290564559171839625201162478392063589958352109920170347632850103691064262983572560824715327895866461823717275991689876407648195431503942029143929373975221190851964716403521681723498023644422316108403003663134213169106780073994251995553998892293957694388528929919158311860005828212014172486022710287339405547490841511249970946621120166729124798489753329311531439711763752083405045220810407966144259605588578338091054869429214571682676386259314270280345533226367198899037143704480972314221184119228940486646032089650369394102355773827405899452313837322139435203036128586846069654589302441532183654454419011622673692968919596089989703163016884169083657159161824546971759844418067312207748217465037576370798499757783109812347185479471172090230992591281708857190630687028603032317596073982214156134452882847398142101858056608180614807807510265088644152988222059952492606079106467141556814917855278771071736835840862139687070371552909272172478102663199032771856268634054117941118735411782982218092014385333778218451465059230862646856599013645219570627991296028688826119923316912130889691587121130968600663959099205566169602034608515227968379879804800145743313331658253201727848231035904750412972669681912177580639442626782429975424541344606420640293903196704793206324328859444011147608243451091825051220783900847193824330229292666753738113676416546930196966969032007421871024524529014357838398629901964444159793693749458342492207515643234626889667774202837425617617256523352646366656684025440755298073148230692727510134739621170108088691423709477012758744652256631630330654034084504038980578458448088442737280842741494512266692745665822448730088221744672936939426087402984499454323189809864922530059188598467739730148590770017912890753333920104138402944968822183440284855227171667343186536069195586371172825365484382776987729789046802587968236856123006850219598692388167167488571714822843003348177730930596572645149812654355499424560747409608142608635316738336347975677091764612374964131777292551471384836575573391504025413200964311976682452619020543601336031744526363615205521179256238858865491869503692233551909989681044896368109008593671564700130884258009366347641362374099152551012455946708853225259130026722989900746884506615458037725840491239603670735814560822817933500305230815248846236387213445283618425945651209763269545151194591039422169284767700878902235764908931845652644004970127489817712947132712831783333495183887468485190246183181023256840459226656501966823644427136636024688888669043312125066383198163001245140955041167969923973071626732319695161146444633829331196647184403838918104978076044447038353810849898362607502037514677197322466048119760262187285315622380761022408769442580511401917714908453925391598889752619685932338621896374609013943713073426192474756618476809063441904903088758558292837742531922677626382587502824277816739392120975284326761243847478489304444483059985366933806697361136163395415494575681446404990541807427739356068364244865909821808007910920043848844687193581367883065346372637596109372914108788192608515456977506472654672109942918110306585246622569446056731782041108349796979414524573496335771583694028220533871333131774451906071584576261683860039713338060692620013236830103271128813136802824324447939075354564852085708301702835275064966223411689836495426502672460362332920277271299753078503159684526485394308051025766372531997651610826142891665979403032232781011645430477635082350253669407088216600430499051112004872258720117302392220884847448706054074525855035296144066302131728941888252404507466457720044336150537033632200306514255491158407503577148891977317160519038977679083541744775637979374913258756734258775084476713543495634275414771650349062914072137694494389460329601330096655736514495094760203432087218012158658725830924989028817295747211780018084320814252591359189472589719570401048649026577135702268078447480312612437771875716546310192064225607471167189474731793117505677556695564543100804642534056807561451272614075714341541778293610127741153451105273575454846905706259852231833386946476109378785074235772556686473420169174538906220727982440982973100929262945635951787399932473848260120910621090002564413376421340248033164930330494427871425508061893984673641412798912355014746571226705454672411755657582989809334502057745443356728090769578515998955131645989016347655651312326754236537644374288124683442182847389265721831813508621573805601636068668274044452643988763839581403491726372773389857807101327201463801302162581851986023937839687982469310272498151696741078322048330807462590035129110706312762230582188642282400729682358174085167693131954796350315316164116227287811614249279652792318892363785532997633787188358915026481050152459511907671299765764031118486769778685292651669543924794317523417193191221498366434068087830078674668965565887954027469232249119301596489582277649668666691174417661279159550386416668767036362416981850618792192471759472476870633445934545110719395241379497633670882826562854271213488821593898430573678786573866424469336189434161464532594587262083353953643367804222397726613464372966601051360681797037443828688956404717297549275942552172456494988763035895659276724303381373860834662241235845206072743377528423381373475996438781838437812936498725269623505324804503312605497620768319492934240111037562653371191649652990263107191450018634303555761379134038647722347872994670850564375476503643165310425232292798539332540748832056635469954414653817786284607094599492258528544910370139945639645738647668205954686862267660006052763932148764948490036003523040444948047978229140905272483498547777475518211348518872111355013401168031138051355632579518466141078672426234239799935818745116088640401137539066432380543289842952180777948378530689382841132915505771629958057434873292426663925614788215871732530691804582471495853045733181289294469616682665875789867777788585393019761920245100665339351885911910245127168277217011404339973496413168226854321965892419829575325707238454723130607278963365798565243724765436575267186051641991580795507725842418600793420053957540353497651149231358125861420680535336322857943149209685214135825270998236689566985741051711565971070652101250335674374240047016381550842322917799218502161170756617445382405095072248707775513326082665665615902052608905535499064256133424533273151939361467642114106970520473485636752248257412002123910196248677484741756490508817824709731894878786232835685267374399926867613811713194192311288716000586954389715899320366991550660351397388014697098914975707509052034109564922046127795341661175408833690367001214323046276031437097010095784524765893949166989154691784235755937290925234298990874440656937997243603214673635345079893594653018313933575225624205734445208863127288401339332969200443718855576457835388754069914290639370209552732962457270067365209091553655441155840502616461768567679100888460278949059866186850920162818563126270584064391822306179667788868391383498564296261938140854382967816710148052061502224878440437013375463188925377465686608877781797415485291111848787000473939269967335818351926445850475032937110645314754012570492337413047220363445724234197549889115612127151514430316958612450215491342433213999646277868532979746134329324645375126358062909414098417626033136222001585465226255570172931826476741224328527614051382894539957736481373727192001465919787635822088312272140952999209989498153264252006112490392626815664180921718852562987404907434364030485011985796855747274683883006558464746640387267558809855277983973001873590905547936561596404446462691647175874399140261152936803252420665110496240908404687262347255601184621306855927062459948559914864357002068491872762804469136159766508375543715714549720108952249880652843731262764781799347630714375672244017018587229593888440545582236602171884023107443986351837596222479678508149039061609788090436823804976280929911781257550955506195876797884192417597438254387506164667622234744273124034352797224440554763405969228553729552106490665801714346226666091024390944618567409142632269526997089097412642033798787507831992637260303758524973738180586736224073711940875459746192352889638304545578459207467616649820928705645093754489844898249993496394670658813701127685183281425561638824974804069726191970475311706476273848934521286337738912041317116253996390238231086467813045473823676795617851646423784306502810522406806660384506773923187930497552127724323222680111739692134538389025593491258683094520393764748805766673616476674534536484794545386053799688884331676499895304008000984339317454248282944367774246809267169799231030846513868882684669909013473296834589425579184341416338950806874756896477793234092561807257855000643159926948633409716086649548645993236937926122583383097379132225273007355593937149207328903444977306374425663566228835902224303027237817576926920455641225287532135156836457430028842164029616607893839791669748019674958494632376635082856832864113821691471413351469373631881661602025475051767000074501415301669391865299068895187883970903508604377147678949097842588659731308650953479200736943636589091531957298074427456365493084355326655268009977669205863640624339595273539705980130757319029806029442728382490827685616233964512618304530425637578129735334851111157297367411094082887762105396604580495919750113207892337947359846582856926803567208096003085843426471172893820049883775671718479969531800208769002454613556340209471371287376404699929592555159908254645724322069393505194132520184934934684174853166161281695643915968247662263147612652426925535124642506184596723866216935495745037615173600356898970883563111241812780720185882885576762353942681387410052278527395787055177232491619404345028173705510296795977609912538059119449393535171131997602764537085685817339568433694344268298043371362942126980368081034394955803365511720351987110465366926595693052139351714599641790634828797973246541709493298443035467886331952616338951369689782689702705032871090671671233384521422293390998396201696582051999071954243426211947539271503797919528637539815163403276922449974962336156322229203444602643230748361501984423727325141660608846129581126071458820667750919067361661519466174270363727777570456329773051154750590968780476324016086793132433049565704452029150647782119745918622405963337662443863940699563223268583043276936048817174900702848404041277956539964204519053697756289784351977646038315548819930662605143925187645528189957998328912625117153445778160679116559631739247971825700824401655373204514293518651406322323135189419345995317104733072867316253931622475550119588101996548248217417958874042996868842156656836223970984491653206222270257425977235659924639161894052508744925685852161889172571768887379885330694000038240866519991029326932464061021080158191876442382766801562283822144339057825259211886599646331126016567871384152388920273013771134927479397260254180098249776067684885697808344509336099544316217473083329193129604633112823865891601313181023242067911352064027666664822648174257559377553717936731663300593168881138616409942758931765952315215252168233998842661976529956373925123154567051426725857975478320088802446481073518976907988655253278535187119109365074606276845812294586363537189251942708248426550349561075329919210798322368564737520427487287640757412971739647720038306861681536377195458821074305044558537949554547884011731712698628666343709303270237459560424561377783068378505625696993248705991330005708785155459174994299332130655793308931253271522878680803594058545106735222776746784897368562071990292978471467202535995470750419129372696978081704049029721937129002680869248100574477584656316479998918131743346108512052685155015995720873960293252009364952710078590195718882291249397376440255838654881718699810405998465852945157812704739100631856148171547384385325881499822708662671579096571173966153065168024940786755188966793332888158223725747771678981883337917989820475637181416600580635798575388785808628677554302659044000880804268613333545120882694591388656224380156073544121118434480792125957632448667533899575832063623499999706399825675164242645563968190985430506239623699390321704766362676602928606056906355387563439318907949015971522541809765226469720940586103205285313462964337995083134783421660183396732158522025762987224501570507343207600786176597711996225303880640894622107360212819038848447825346550695629343581785680107798429379758707075985564685810808082922664136041323403838021092326900579716415127643844782333289930567387400380986236703835704895008960129305362929698665720270974288376446189391264513689062168438267471699492727685794323032704799040074983921723223471699413582725996283936616442125217515961106940012937592450926475447545906304140219840157152266647224516540324899924103046622918051108842804334109877841025107859827081280587156636901353183410007857464213612608286747227316467960483871711296172307760071532096880376859438438522645579548322242076414748009285259260497242297619353709376324310190973357781890829848081038322020679077540225263353897449226411047937894102631434941428153651212727110662646458520242987743651817031065336498198430025500657811921812330143271114306614838390706320898664968419793605972925776900939200697854930376165517006603264066493255369518619462514159208113093592218986377661413793096987451255853171465728018771234202427971749488738961063427603252905220991759561443709054092979507192583712159180429152442595063348950215377665342884234156300778315180846080969566378903178408408545971007542688698711986749778935900246950303989875351244645500612397959696478907400161897567425344685578188592272714532084393848020681639735641367798414705496384707839267093782926638697082727379049545788296446813839413243899914419316541331932448456050887770966843203216855372233955654194074840215553369002890652151907799581898387874009905171491798631463453319750283428126608905789261142671745885666714264745327399242398429552533572996839947966011552384054879214338355764942934690722556967469529505803656749974538421123002782202312152368847505578637291786522299844721055524527625661196371287243522072661259492500391981389416118561162622279681453012448597876808651770575184887988341666799078411940512176157286766670279925204833875153687874336660196990521349949655473021409888794282981127791257414851541467357066165662382899884841337970689790094396521846481448256866376028278437401495799172119268441359355787252998147449980027328987744608114052530396208310457434556501507845395297294104388177319099207027902523950667331509644540687792574302745801935917100419439759776632381265353539787316057017761859476807730937544265126538558964422707455380286899861762807590401466895199561987768212885153753599924917853844972869981060702773161250462659403092956198344321296677563700058477609927261286916844307805053645501876516214124950080436201528807002588427221275258713984304983053685735249119077052218572531870817000896109631141233287791236824797366644342834081442712748324658031567673641805919195374017223575655303761624320177281119990458888797142648992732816230882857543914588048627392028307022468700786617919110916470810854783755870837821604504935781790328025803444623728278907450625065565221255732011848673259961303742694721310234244923705932362645526698409401872439311082347729981075355812127499643593850528663161225564750932539917500389590017489169549688371567751587936431677683637227384763907281849276434698846720920511442197596465030417094416680232038980864936419644802404433017606334485470052157240751814192297970217021760650105201998254368445047103385569632172582680726578706267424907009106954187304280692402339027683689185486198091341608063788093595958595371301134558115031152914892636416654142618571933998914406319193779339932765950423209681578997746537890013614904910937808999419213069754518053779069008513484450660299780103137977781173820246669153587912245197295297134978757487598911683778053280240694457522736607481811194815603396383703882147729063024935952207768120219115861255360499918386205449243100376708038011506192793619427643458448892802148366456961149365641729722578569684375130470914811922521289723413836318595916694391753367270231121601526479555166158732616105687901317267357417664163444816968167078248893793645043865286296781646985918452345034828149170535177267438226155780558506082349460409730412494877717335236047102203327877668538845112936514887520282172866622637299120701021399998714359266946400938132390989839832335271382880397860739530520062887284410189535145138518639299230413401878142591569842844751643153951166709967654025374296435103191503854391846013544704764612294931571540807890792701551771805327335571539591175225798355166552179236946442274929908850435399384070737528146380666213530227982399027376602058221468570029045458864169322304043198541350102680027059968254743581945268356539986554058551874520165589111638956285049193431963422914931364072295684778472005375561300727776223946154648907730306692270199040318447507493545770776620880843120526684755107325173749763334987252564070899189701612258939322569454793133856517322729484882855450943075268227706197984845214322042143483388473084286628195407800368098348575495311312486909172621774295757349358242723003991380427702754179652778750671819065356104614329162893177242483866500645082462340205096623958376714790309609311867941339218420101557911965796013301276112189192278069488982735037006293482902068930475360752784843741121190356061286862203341133062181021411946195044048155083720140149521738337778240784046120851077085223115095939576732566607067264846707602002394630521767557829086075505033416568289866354417243840790371073836556973640033470906049434718025407519313754388165252850350885313803855553069899539580962568724121281964242136690743370922929813009160024859748691837038419645694750190516951885505975413819375058720152706457417264862024676054471262413504004552419898892028861211417296256735911145839333704354588055669815657057270160862916465996541220090973195063608197279267412278813908906097571374123212113124662655245348508860061031127047222607013257720815615408561866833753096387706908846984593645544537601274713712025798032810900597352301420971109376133172039935970817331590655879608535397906833930297624766399690206387786217400354110657015853301165381381788139980932503497013058629386915513995694741878129076780351884775403505252203253955032403699042246851532434400585688677506331032597333400643337874625579676832660928238295726541432409535275547220542236701921332437316326650561461776280076127203812480385676508939261033771565558655271959113914838560379325249778008491933215825777539811595558037416119495652730476831266906496207688268524584643058655039475762473883627333194841358392331323602295674189650239892607888103201960500124673770031870008324753163429098311453785971643791888882264679149878353462187768830047689483983469933190564358354795338069432715089225488101006011711009428826272940588362681050213620890063618913948760420142450013756708927382952330450184941552882801538068419750131787393283459571501015873756265814168413865920704281316342147443004293722941014123049382487377843499525997496056845945033618502913105365538264209821972602771629629224887739830451983719628267000336639448125133142608473157385064336080589260208555692219742855344262286939930030792354093882354365923643403362810427711956496457271487301891877732399177795759521708707099881503497295999620018282402819781418389790954916901904918602012400054749263537131962543912159019391964130508649309894462987850784858959303104411061385535169719857790672719698031682807960602512360869880844350018444322345259237151211745860673337398939764272493926872516871947024907108383200845572579574303975998167458234211074966677790664850367525297239476682862795660789710941298177751790277717109926698245600764643359491297640252666162318645377756314535255184817739338259785540561609870558440077543017464091125850553139359680221063577637359632838503268822947481925370596397991523927877077374870610117799122093869391374771162586426853125350590314778715174628200959261656182142288876244525454228186689927319827689770097943949985846701284635707557980996669982168341990027120748522816486447805322218931794772570073324408253016811030555094161492702179464334834495528282411191190329011721772166387783822680506781968829349010840076881966234915165331400136009768317168557596098269290804325171827797314707231349194060567646888019493273157314860361118685674279531991458973207239999837327790505748462771866125573196925466777995199928984293455162215643770371480414867004707411361631996442182987481341148486064323497117177676884659665608985059540997897405781069940381424270547963740771192197056112962486459026871873238527714011366432669440466532122366761632873641213731020824045698897533063462232641838022148436906289721719411850623282003714140635571395989792063080082617036312015166971701216423247762095400738772308054143997000661202583755107845295836940703303067477835691633189506488066564302043604292397093631501570533321677504021780239198740263056685424038036816675729710020740274551609172941348178764020188031186053877659102335037373853053749731224541462439219574483535840052335621568778828167969868081643701688325187735255881599987949187492863730851613276017634377185103031307212721947667251388033272047001608755509380148485822745671494173845802834386786996023927558159686604005819628608511976489042016592262152251022073068916652647891030199721950080082809925195747127652342585922486638350232466675316060961108695721574270269827312289226863443282737734443944961721172011029575018000786143809955936721711842943901476572088087488492833699738003938768489610809950498284286720677972550269397580241930955170413673987763886048028046028164899590953753225424349719014890002139133790675311306584956176131252060481282288169823394125056238677492053748975553791279070273641620171454509397186300891258865287475988586991096870757451608950721746978398781384082649214306004009348500688745103277408713162698654160666028118294752882230797733618594894738418582334729957383877067835092103155504323919771379294396303217735166118517028218093628542333178069392807965314595442279046859410853911833613018377222263411731072574885817849293470936366452514883189481410202815445175998351012231988308511984590840374688304071436989104419001878613003130179731411551011695482982986985073783136878802076545310841758479684252276550236763352799891844300897135031322160162365243006676143829462701092252184417881445893753242804939036481088621104482688780520006113795019215667512923731822275020624190166907233125441475822364692333790109914817604710817376650875739538368823729670017465699754738592023188015224380900089611288275744785202873894970167453576392308398642529734514544821187030028273050430927305461308792242587819052905875041451699781462033508934205846526232872380267332281119753363146450273765028035303606945809077560053746774409595496659641520422426458321998486444979220114459689968750960669733969767426103847675831406977448621127623466189742650326167334407371393530806399916828813533957180253518487765668754150101706086064669522585977674652172351718639502927873400105056613638045153213367353161664837141081749378686925512188400728864661921493956786714288971729063041910159750521016915438704008898132241857990546151438344728016428257863055618833440616022937806686147877240483531289141791306136617802713467416438205930341589924797053502351463020705280692963422720910531007583273588598291109763362462574107093830818425465927785459287785739637959627444320046558463515670294338956739069189992499698943823416512918177992968263754727434010731028721323214784312033109979987060387009698874052944052226188798395186089053272466556826315437250165678171831666910166619528027840031750324311162413952862141625191416615150815280144947269438991479700346358970049644295102115384260131876580697704199327997485902225236327721328871486522516369987264287888423507362608053500128183402395217629973562874513936004056488074364239035042563348033998454360456112678415056969839712097927750905506887859417202800598914932227368398952118187045147753724060946783245081940538371290544715880859079721776600356004837362221925763763642617788634124522198684980617171622375790227124514116789067785440097613685978233981684767272035641636364276281032741210784026951483539125692137408026879024506610605355031360637651729834918873658647079970320637290559077483108480822254632619473734380968429694586106869759063012044739682691751977101449013253346939711335237582486050196426693662838713289807672593094027843280029299131747910760567654898020756211837154521494113583295781036736973613633382131679004995158773997881149391331754174810541990817597334312042968041060869155967983834952176101465547420046038314863263942277336441809743845574566202698091813403133610180330175874825551605309319646307063915621174828890643421454195584276193597737638969297561493289013323893773005107594389556718260823203369683065689963536188701988182983772353837348617793692782791416869476370503983960929443235909271293516725047564232439938574511336376971887067888180711714943369448839801234367089024769358718323465263251436929822431923519981415671033810638726992960576912114325297251484119612865502281726494520108676105488872971132226378674740798637553933539022461480206674951647409985149313059539232898574714504607482749438194238470201439762013713413636007468210369306315607987749026355742624430264615636461216109688198088479629069160084822680304767806379524290973581298253062459733074362862286837365735335885694616365023631331409398398030300564823333235834056116748590299820017353588477080747838513893088864901699049842903761641869757531787695628609738414250080410277508468274682871237997166264794455328733051665918005656788713826310601183369810617643212614929068605206073345998000594764736997721077569984015163490954100356342479964079361000898962803185998449401701524484460221328793619458318770327705904191204204631521764452517449547710174674446074509434970242177369708854086695948132714849976526553071635679638321693657806799325554186634208404792649813847209049312564798050417599768329553564330798885887635860284726529923208852584091976527747842956930010843333549908589292676322244254079048326982580480062102948567092690579411645679079282551950996031578849781605784817809633964496565631092435896296792120584213746992810753158278085497177318501907715442746881404080899243691496891276861976534147195463196814185032510493161655094722049102216953238774567154494638660900665181871959473554192847156161215986684497964671012769663696910414265438281849725319431647877110784790361495931359307740259999652546613754793551618904641093564314979968796873977162594896020282489548120610049667023793982670296187323987593431403038353896572536510150446282522996804935564325820157130402001228495629327289177489032390069512212410124727524933988285098744908884550998447104877739422061892101776894571286572297420532917908767878355908144050305829699361357062001498061425277548010208982683149541938903158137217913011463761095713374484692606185518721412821971742384002297454314992308056322732905035853647432619143724053234417369756707442887822889142039349713888353102015578170390849539371327782128636702003924564125903765794562000925917633409000733161280403893948258111802734512036915318317789178368369012520357046463555981399682050137393090717426043238689864436924961871654095645059750973817554282947566787362703188430393522659598817267066558998582881112913473525534267139256589982590646883617208402305511340787420133195962390199173262097002983908111707686373109435008099393805937836181998994699929978351563181319585529511464978338154717357772289791886813803957540455418326059801810994665668660957531776626282459521632109138373294850628071567585157841749816423545097281283711590029278586158867796525301627390218833402173034940243491719212717823975542465414024825467125298569024977183340570087672685153463565629631006029751563195876352845158499909079278479405843731552572901310625214519456167052826186100306002474252410731333966610349801559685109973816233549932134210949349130623655695283402998191301574146487685861600034506689363226732139658342410958177739253274751133294005047800475589891785515527862218074881769138666544361829725984853289465801119021218551058755564019135926099773533320523705323863262641953953190317121561521113636148358578661900153992961352626942608881194310287096727818330129023122590947345257363548213658651938043166363154285850243169842949242480962312277984174006332852309218660186353318000758141972789058328139377770724839644587548832713888724003024897271080763222511474090526662567978937036297933874888276403215104608772012227117777322748567304203861581363982079247673633781299795156685317270970679340445410662321787789372815364935788909395610912082850128237248390132031807254317803993580398993235268212257016467671900952144844576227896537157097983628744446591303693347947608134534530331908733960839128318112818113709867490163258112250740454503489473332566557209471987116344911370680381882141814035702424448116704527367298712366053573395723355812772859438724012956222565097300854355550370111045822814390909924011687181567991394669186042553825527841137808824091145985375365159080803135552489072866376686491413829852564305425651296089964150162003733413162003046087715100182516509798282534214587857818936819848069587839783808068436256689928759178572034764853496272998131278068440071238138906212933027746335412458952311036274422427904459326259291497192678105305907682975643949433014566999386980934197274995859310565679710124503858722981420681445938340722866151208986644911487273602056352097745220881838439652356122265731084210285587360145373609300477656990010361371431728369734191920584726471962743100035204377570333062025031314722925738102742960940492732796511536242838660428569241423226443994329549242943724036690908354331202261739982253939835711388754035781079144413162024643475439079898084812449925266163017570823664385352877823744474396706779628722355329261979302555330360366540427382212778851144623610366309625627481481319823390993364194322675040430393326997122236519932968420408297021407987257473004373834827142389422912216319168925670081788892418373386414458201004255283988271835233663253316732904969982019221394751281202526549759843326324763020111978955316295796252383607877161565735251844804100697464765598780828544966582391126139116376393686780084207880954831709523891980123910992635994558230314232527067765321631125805750901031301563255293541453603965005263803288714415436146970993609191737292721595571758644152463811979269899632673302196635864578619393736513420809444638015940314185995738001052693793893606147753277184083448803379056255038296331962409481834807797051398218145958596636117705391289603209586335831740732117362607297859244176308136322798583200316749041627629808770114770722954344349932249566629146610085212259509568667918892775979154309959721366579986044043032137636480636578964232419849557140230955418191098230424651769080661026566720534598490535953075211245246685055796584238426664025007242897638962279927524061851482149736369054140782665318819638754153550444725576111923297196612617717716179969116066235462744375748486760292051844812276037191069519258080539758865025566502255534102608588517217297367651687055263004303374927338001886443142335980878952102576241089150082148417070787704096261871971314933495805335312452213585613332351749338347696191790780060787953818627204533897635255368250061175821974938538631929361261738528079327851234847728680514973788036469804118432402190423294293184236151825108569265369682790121142749561164888964119249648199693429078537243554331371901706733993040774143102924106876745286341332677060129447315876077241770163970421533932137228032536605486331444966534177960043245589002586874079361433702440594469714964730842934618429703599278085299383667532433257337551575583087521948308036251803189229226415647241569352472084425446837210649054874183745481309958514415092989275706378020802148897698500515446324519750250882225417845525139726164912842733959871920646648183308267014260890875314092090731424928739592350556178442770291302131681353960730543276700422530838910935527874421425318663781080018186598851992942092031828236120560390955155763320125154896021615779760091763239708149809579478588079575636794365295732310840629333713123406140143448341657566248546259732584300265691351107149346669805448870532204519749640711984412510904638009891467097456502460617762083733747093697284103442591112653940898699392647478587747340629249843363888205801401532444259950924988044272693422218468026809542629307613799454885992101221266143294603774328942116585891317722701362285408020398392688518542046309618586676713497461367854538483967025209601774438754071639457521380307004577247485978859303513202582284274614316543473563160573806662362940691705766806066576238121211760866692367317360728542489534720213096101934210393244624070945736644279071021534304234428089427749363253162076876468411901927881059826313007768466836840321296334699031381567782016152935946820312591497135246077399096302461512287375971309532269933269166178966887407560001408725424050470424277444266027718533194714006949535358144557831182252201336107115661421875341316082672404489431799817121917779621093612845341662556729752597568718275151000426884583848428012125884034532347039961752478285073286698799290932578941323022878437355033433359980298117877628651741091175025777576254978180728156604675233165175209292001027477115731409687345503023413601248940106660411809111506693676513266952175278838846354225462562749524358098986335682394823516846663649142160042759234071011716253974266188418440884473686591738195944062503183545137911336020785859486731291128574065218524956414150041923819822103062661047368940710312243723040938097035458319937290306780066221240313598329552772552363719270734752928818873901718923815983278914369154152578553668995967901567960644815853152695813507724402223254776348163425796113720324855402478848802900907102256956874915212284642525723794438995891404334464986827338663448634657704717342524740491972614458005941688697048252003011067410858245345083453610771697964646035513726786129268127581078209436357612873848186145816017774645351371746917073556194637157644561403581889473040025683692437614747003756304095479198452454830827299318699499602772143941735452425216888630744913235792707068577337062447609530604055930793091508175727363488135813516156169216687452047482585246152089831664064175970953431691929836670914678540137365492323909320159547755629069894387137590413307327849724833438730598868910559168052701806123166972422275342398769150353490888280688923040902018841183467274671739074853396380720194565855784957759839136449165760776364336011168244354456759991041874891634140354916791259088924367631344609840752562401668039276935204379510602192560675289431665389617652486137192864449659257535528675005719819275973867318724529719557257376551380754798021091759424570017540272248916048487781076756474405083772931058036530821162113441720880121610859558401399280384966037860142368828189093057455046579578662009623640266695525199275801763130382195012312045471865083935860449299572252934905306005607948215900321332227533149578931513431950363331953657683121346568118881381763372200127435776081207866010620746510388725730418073911563139322152481929283013293040616794705920486883741925553399252784370917986828937467069024477815066623082378277766016095392748853002934709876117798594804847904760454216486491994307775897622255261163081476423946515333103299106665128017921002247446946509902007657977113941456906290330407249088923607409483815720803802801183063511764033201591591870244743660512172739069781518948999269161446041197064516476781486128492008548779183437993886619416969409112152521557024577179310698597349594030771228872351592198032123060996964339798147091196861678956240037997992015538891619084714691452996320895061259209909967772443484572868666109474164713544857839691003092131900389151704316706260863655040971849872925806438906254666399470293454594551506937950391577876652843136374299721913656680180623672607997131217047760737969254742062967855371745562381620264671292593336938266928937326990520445188212129589649524799574090049760622242621410687389874353227597472884726877947976357530459303487298989070257930529356199753176140681443858182254768401563642221875119086324671671567648623020921299154455662376093465609341114434358340906638412423810564342750726835047910430365624848533114125265295357651031661545611360628754952394338544556909681573080438755377941758839758836665328863008730940904611315763349418259556085351455670549960544559767179302444114091175891030128143520910392994206245413126062012344105447775669091627261645911214205421497635629680256981134697542699696714996059878980267355212994415395555302525221429716341288813181863610522054871117845783437439457761792307167650397438018794933010867373255838129375466553006486222042710049565448952616804207453693562040880851014615047972394869891528630665890900881356381035333259970083578935890622165135709610136512906593584189709439351402109463627259269495166754156523181483424773315494791463943334828936284849723040031789857182413067046297848101492556184769653887522440595476430328914505027133339573085177874451869555155186446113088242709314294571187927917541250963818079656536582691725198710220047310355758334217942731384896538605652420297749074183292579858349996713236387169613367611342951451395194039648999490866733812576243972336923081610914875408387197826530274436054590964280102758184650187456091812330068363874752477272580273848417106071026525236653515136340092432480561876215821639117360306511318806274736653295291883820001842993090480732111540383357994423687347663101851318181202085872102460857902669977248725007307681159467847760083078516653902030448572193016168104029735550605496652419500587372487226136508217337088927936296404427466967324552141811495611125325201896829748205784428790048898588844138047321036434237132567030406671507969313307036874861494493843578807005943076890330215760740379080079718925090200272652589655771240550530931100612228487219518636627322833560973026231016696686230477903690551488968414755835998645791843205186073769107963664305881331017458174344747905919010677981763531409367356918001554195218721605555484546543226663040470896883967616436398816642569567382794115715997843649835133497375955080126840911504896446954752574691367005056280534310219928851759255727968503947619627477087391060946237527933457475308360993477457516043478535659045527526119097058673619444674479155559367831998247984454525582862296978631157788212122528674545574874092333041046722090740308421200257823689508650813254783771458846108341704807637450334138752035749207607647855251775976940665887662509193887262920867015459805498790017739300928665006941227729682309456212438285849757701246416257541167241976330253353666685297694427402814895133334732303607631768302757146424440412762798661451525691194088523176204724860534150102692725478998148525703513527817524168671837211451266332183320349014238852981395710844080164352180410207472950488559522152112842286376623759414322458932146532764214402744733992440019652106657935593318713106331922166362698622966065792317872156654363400632537344761834261784892693265696306961028374102590338979024593030305486770609615010223723164764315349600285147348508004768591019107702844706239185413126275293661353971534476723592146262157192269148784462439612538817942431168005805904839462843396393622578951820303265937717393483398412285495498808260597113153975327610474331885069962992675148422031770355175182729483802554443846071893465224245772090548631977980548080417403941300200294094808556533003449060973968122077501875862407652513971295567349547063958529540214390172687216242057858078381319347721138020649540730956202831535312342515034189703684739944375634385974174174587510075953690772228057366699872259851462034680210485604098934370030364829279517575648611579999058105407714763961323242147765448331414855245427116614959979939211166601917494759008586067068202731867476282501124293499296248065523227937903772987782644384284915615953273760548063579988323736858096458140564703026068671344636699630312179287740840523884486604515218907194762449602502206170438006647368142488720112067050321870268681369411214957184280431259707957768969541255215486370748635383584261346269019758337790299220702809697760364840376969173555020760206990179468493628375281621196691924158397015355545188231695731582789889544250624214698874238189557478586135808163795651845481673780336475403525354515789081652021869305766218813576435137212269748566240601631660580482400434634389673206626699992431036991913096059893091104158581170213693083751538839184560858235377892923477683602300879744150539983731254055927140537144854477899827032170125007048821732668329935711998341398543775497584508793721911237802454957430642438097466760390176267460064367405060968366766327145206895283993234662835080048944407153233837801204965662338687113513105287553661505065114295342854429777642837054846040608470930679329885833396289479096083171033917440371082794785216353226161976425092041311887617193300973579915726046276538071092042788330041677459885607828041357817593945988014337638100893720437048509791455014267710276312647867561922282276854540853228879238262728737946537255182067249532213100099648554151037321628385698121334105157068558122883768300840960808748025537778953583443789209084933923268249438261746111143057405238860003865913085834174962742237480280356734549739470991326552067591496837747568438502708312504839482316657868959804119470951251820008023055878899509677637897469294519652184293264768105516431366100039828607906895115574866965376802772915594535676163942697207330560835206713037841753053064714681936716531750918486211939902783363543182540840232670796224661007958064204484484033062030058174894177236901293996447305598548836406073929820512640652616188552188257239103013275060894183373818113794066956979143280668873254229755139235338416435872508088979134603197198916875590985086564880843168475101783470729217156598647535706388710035291082949779019661839928124736582686307717616613493222688427762042074021256621049224337485998962922032979794665543177749883009114520153808460572656266910420603820900820584811115151185725312877069102661949475557666077089432689630814897656004348669497883825223701252977086362888214400083727718250410184677754538088586901079089783635143764786608563099427787041317247338468259665320307291021438390916766729419912110710303969990880899196396121512585012063638523743438346220484833842632851754823471358973831663147567557942052140708183787353791911933512046977528044934905867542184286346793627827078961433040871021832053108479055737074624587174744426521033833756187193297056070221966441214583222744220662526049217210562561499353000198839190720841919513278685362703610570339900624496215125875359110041838236279231213670730932509501137007551327806799704312153506561811409138698910140149618567882168475725348674351743142204221827295984773814729330146805022800161761020420289688936740774751700144690461091585789415899921250726981253957082871192887612511657771470162536234497277705848847686538513100542291113298104482335760432246798607499834337890958910966954023202492646538129615743078758478219308025814136722332662477828146038899019636062132999755353096767692327255293987587773872151197625271144627737399991317588148997321010658221697615287384036370311002566006432436498021229776481386580430691852104938555004577041538747499240033313428805059146658910868950074959635466832382865550400434669383739037833740623551589994092081087239650999984176016819993168676823268813582073308628469333554425546883422227474838482783005283838625614000571030514251504444355269499994746393264962031011740725622410222450040362830810900318557907111992003952481022061867628887395025369879797921651256600669359107065276638163567113568699535717856735710014654478158540981531775688035807410688247913941727059813985302670636740115299301298786902961712425762653633064215847755779955396888884693607592870603881714352846326299545951333423404162728151906839636586857410433706752796995232701080501288152026892241925043537540009706993486679592093157108374216857196808650842795363789848345016162713068429180442720775914817755741013882591879227313543432122960859271109688639358949716406809897676034177591527004397472572194879322562053562985303618271357372732798213487683186389672313865623489097079991491443648717812657909845864057199404249462533271852551747396650836608608720161686269371488548126775930716499731600040573602007024578872146010665918743880060322101307901133653722718932373002638165527039081867780737444326780797612585782758265980503112933180964736326950230723598600995382414131602467563289697675142204676303700161250109043373323637858173871241701430946236588321756171951479939467143587296798884663705429260510060039555430010470581334625890542666508175133243604015495514658776297320279946250316719231837707080142502434028986126236026141103763218900570803205706462090379525074501477974878745758964645607178749046976939165325156481221628410847928236496762999986895555105998118126562049260476818221526013022537869453274966849880720438535853588023185679721874047425446770927611369329376533629260980645309471065703442272260080450753830833743289358741054686238692889618708920827405505785796138051279667227374765966429781318549151853097778691624714513004070394241804571829133307092769920699143527119801019940503328286506911020300171206485176364447028652419411933721485978362216223203467482019067027434135082484746058253605534717909745382198939528344470345082967507579426476905897687330321590307183093498193998428946279618122259498125079794414520052756984544191554985360260924834260011656782832532704036332911630567260329822700784977959495033815297903034536850345750561456667235240480008950876181734820855116716619325068923955368507312135412183773683986450788888883314287572812487402182076092776819962779984063320930523338672835432592482201908609363324307083139574475425736040276345482170416025349883139885785283383159755657448734012883535424862968037088224940513007329837330209299605881008909138208850879562423144827233478402511881506430580819190642091998337266706096351647967414790607507219993324122723708758171185903842206478497932410137242701408896457256929709874291444412430487579439484629205839073274836168116659112618334812963837559651069355596095183505864202648031635499393272095014994129684419340728423122388197682755297762906062190164824099436037789335918239823357034355458966476161509146121320852313233950723075110099552815278032803241933002796969825866258428063091653615576904939795174053614885472787332533369793892682254299150929826511173811607643454967031650366454941152286879497029400141239343699359545541797410141269787381121626683938022622368413954939502900256141433874516625095165088134980081534720402753657698357169863763287670953918996523264357668017634619223902842304632162380773230126063613519526369249276984082412756677540788288802189529701552456175929196709763511622514290084891796830792115521491583064647271432874518032652066096880691422979572151057659551460822374298692293722288089053316318581972960131381801300574775052911646349412098733165521007199915761232948520651149341962255850656624491441347469790194645992984451588655494925194723668139613912197535477999227506602202961433698358427838918410400864297076342211640590665280313468993593556845118092251419069872144439116354252742469265546580504059537379795297212427183881551760910499142575162103796192334868800320809197144647180394750672707072640074812326961250934166955314088323553176285126158465490992966218080070591930099704503348755415541280076017298755937120925701710805775445072223690213812066227989394069492604767652118332689699709060672536052751694463020265444867025339366362266982137327686416694284172959327222777734815463198200409428534125733776210173247431993680009969250578969513737902546427879341023662888553362748947639175285074674604854027290631633218575288490808842691402998834075789609324566521935584836026477231607120210554439577483177078125554969973513672345467844698016622265967542207443130244124734872935015772152302024891248701020157706367618039472616436586865399513087932203017931918484765202644035016423189749321746848183414755349886101541141109223345768125959796762887568978841238850920206719083499797007737423997128208244677022972297295395817434635361415511650975864970247995445512057646557916724404289578833794257887888877800321637263195060399727689608542270872079329718165142627000968883411135388910906062374424345237180783373779860273022466825671436885992411171661940439509272797648691379861937315602064954428275913024568969788798138261853784400642582792695925798659380422313612323226187140411977680774770976248614723155736075836533907420500366092227049875948512867881651554817022574930479722089378824419547854394558089838005009351378279487900985773197446874632618564215808498685958465827366315759896320624721751045733575623517613368508338438968067876083626819061130681530234657652413815457055115847886354625876730209658058515098606085937089885852195352490189666540090436423782356337006163985251521526771997388473087455488300251580750638624074325822847994144120197508407631487570572638390090733610363568965709396081013890208857210120863758962282724300694518677279253436627121412007471539131673530752590675803688118978322683917453400631644475531645281133748503353164117924544487645164841978935653873265415004116812658617237645747800183866389737296893823596692778633229846116931256796695447295689834981200292529939608145473324689139142997870855405626389330063265222645189405917876929953502083428818505590836216372845052901998265284914368803517666102775968703222644492706911159059367954122761606222980904503605040980160404267416831916171279974986208973244590430778913901439946174374870261666344975142257944639192053703897729493478867972727885576597154571268998945966395447801500186698304438216432284397167025337372560002253568994210554514133594667817752853593611764617635225735933183313007381429886936045077332143543941438645379784305733393288667456376468715657654920262809844865875934617163224449722873578115972048198745990532816585092952295749319558948688524315356003628261691028572269856096450956206632447120924817009700557124589384056754392944251688841124650377909001559010569557839296914063557896433773282816993637384885202699964834009880203184082709086751054718391202832091121091106776044792478551987643786675752978112816335105117396741847434780207007395753813386234640419817282888658542109371545815590321795275117545784772427861786468866434517300888159793688431030455772838740408988805813527255017275371359103407235914000592137871038659675013587636207388008985460437774236709437017447384554760655888098756177991714090471784135161807163442968187446377038983391450942727054529803725536580243386854542923290650352017135206491678766922298104290995322606971531418026306271320034283144529816426192244306457537204645206885776307559109934889081561548534686218913053273714175149907149275442006226345738262526845396615592043969371319500228195764090324645262041460964502739893565405787832717978599123506205033540753876884951321195494614694522157428931270635037513363196910471296961641206889784776711505691848168891882595576360313848527274382266423253303794602256822033956380840508502755091801978931568097675267941424095733074965117033050661892333005292672062292186373059424697623602793468412653661790120392208178948815541017864048907598339392951544516848884919441896829467264554935238562975980364279085162249611957087570860132104973868710523099896426730428090112159438302375175378869537770693451937081110890748124772810359271420281859938852035590247973990940121250052624030177904332139793149673687607702458637565141364484484155071787773023579227604829835554932718000925844757737279454818368620853865675597097737795620797648898154659130203295731403149923617707345769451501071867589589032767091815395403673512333084099300414135640697486300814564529662753770877095826744668313685163856287892445698904030881365166007884135417712807749304783166926067436004435929835734326954973438239457711037736673473057482905312109167029451791906563009605119975197736869843618908746358398766792608427572577529985515553006234377152974822242693803137419041254797379377565307558113796480014283585919220682413824538348225289392546625182178667790836911401828452642465232560627489266482502504847284684766298396329432630026333219802608090695662868989643231058363867860647967795586905694260903716599497511514591143158882526991805637932787267174767241197702998723504475217412397471528456430893452501132767764873687892258792234444470216986293301120397958498370462923757138436969086008694644444837055135009807323655652377757407024476927893808363396199147323489100463979154007467094978016062913210515457961607616692216687134749542625954919946395381444919588322646806083426458991533144730882269486093556627427558864318584357529590152327065803556379789264329551880818334295862728764444779771979656355233566992258567550427583829710608445534659764444073782077358776512228764975456523713618104668473055638121870546046069302926554571564438405744693270860846408911810259063503778902116024127101108808704093282585792965458435663058939157688195715005559091720191330507175510946408141416980996619949701803486427051315534408414073914700641154258807372935857991967997423543131723702159647947309085052075818960954131728874449334875082030034034265729318276581276071642141467637392592810905401390114121709422824847199762350079460086529203267213004758056316127133304988298147324327017463486581186051279755848794810438239063301434899719909848578797928533049075485210574798477769510257591040370152939930337206724489516775593030106436820548689845834251740629327024573377145725790314504300230305737712380855862826314067046961906610149220188530521975182208669638668116580991091993682825991918154973919272877915853488328668514622147424293934594553260110453403940881428649752562551167733873265483267615296821479233440725937776274006854508423543852543242765030059462241458336949845315485725276872827396327811967036894699917414944720872891239270922219536314724172508575787259931106761672564437729716329709321965452822678799415571936481430761178374293820661218867916423833135057135328611893356328847425690808082033675799985308499801054029113943789485161541710566950686304856220107618327253185200952502667278495323684940380298994829788804287830716391082030248705386084824900652097515329810109330488705656243671732340681750250826014103574381525793075401173349625793114155732845920806250805056490541891735838390063772626226532178175353308918198150030143830396386632111897574892360167997222551654086002780981508275969715529829326413508908553254419782584387614163513246399254880032348875129724890427110356969403401000659668215295944316837826304859789815916151487642534218250666557055112992742531558437991275222458468452041099705520514587112135525517481988502040922954360821024198278377686071728233179065966833710992319917960807262481948652059827539237891090463776880344136214464080921883577117577512511065619152567752342760431565055544704086749742768416146492565432856422343756175779759128658375017402896299235045770316971002595906431719422219540446938815640241678553374964263640920556737653151343111085766433674076908175417846672037802088471210705475355951483540774095917385262595466333286803608528272278393138292605691789409548306140616564197812389972483743140191844232732243680955752654076360578285039316518369602408185607375994979251011202627225848139398944888814771269466722746746712017800125737262924414416999765245063797881769867225347394067983098028156810451088883753399151833368158852185214573716959210736460594464271808236625084890999439553791622804600984233230421941327834324173741550603746963231673269207418992538348426134154730972428652443741490211848206135557356274424849395370119051547448843356831515347746030649531288097568373328645539437038329697251522642137167011760313816420420370397204347762130674298587920185990773680719657542210184807595650091165642471769009508682054967012912706713552352240109190135598683918808973595564666810173234388087322507938883890681088441579328854215782590344488138718091443504971681180439784073160711025607976662165564977519474855080221414087248846012321678119035841058465582015275215419117523351546303699344617220240702573919602106603719493031517368006674531314087815245610681080807158465109351085792432049099289313291142979718736898977957983079985926096848053439184756102260265440117886925504810517100262071914901861919190647959065348172735411718065859723771825688312834097487800800230750029707603022535970884863621864116549882046554745556110700548215487836852090986139487371504513267047756048100379058361944576967652926555802295777700087216395676912077297671474988279733842210043295691974386432042105996430557884495439426003961462471092430574039861797380779038713037707953917272035940291119187173650748203251526476606194391610979088293596042202700428522322124883049567287474664207384203325036652568452390946571645677701672893002212885657680754762027255324963077264965229162734666698125508369515396956230989552635709371285118299866879826911650819866990284949609452738333693261222683474132013877871918246330758916024318285173626831469646668926437247493223654160516155306810299884935312198871495478048916399463919236485647924011263979151633045048540866636575250787185519843486660331541371606054472917675168073446823121802705878255713426063710579563608831669715159921651000963267482947465901888351027154630411325523224000281252364129177319387882772015430681373399619214432208776346204508245301990192826945350165062124866601350062475618105251424437814459166665179471523361156476086117157401411774879249923789120359975750403645791821410340702242473848423670110567065052323217243758043874486737288403689471076286937498129560568920798329847220992837209638056983621327883939063207294203929893382696426993720095185773489143460691991739244571972919087911192461046386665458686052595251531274542178220670167348840893479392308899736569440582533409854029168373778161708942222964261039836482111835994693100399637309537132101398969882152577705444949469254249404908271275491640900832857939076842314569302781393194937336935543108335667000829304184080070026314099332764730253277456587650437656773291577131493464620241257999083960046945373075552823578886598514328421625163344448138684762482423134120364007825267960906479061863610163759394309501808286674652545222006305639879124137360460240722608082250514485122482100396326152668972896984702458426986192723472371069038693257914943942836552082627486190692494249499317713212917001980737392090689502704135270110968483897474001862328834842927407614595342696701404065365490853911130705768301652975069291551033000432688328676091821705874255955205775351686485121956980162747960088824214676232464893738069961795648696774981482869431547102565007830313254334157737351290015759240948016143240963222032346359721989920893221878619378516538783689523703969490253235779002148875183451707909839962313409644752487641229716393061183464765362619822072680107058910194429209684642406253625683028911946571222892854972676170388518290168090915018912783025539739701183714174492551016273485150498831697952628443241796144754954306346513847154338907077424429977261983306329748827015984328578446921516300700298360409587797796156956770903260558188184489281796137202246331145447541341810003829113915896808414595015089892149670545411919517985071694081182519011042856719507290908086199570310344724779778018718155262489232173326190914804865752108780868488783482378984229112481022476733807464760553297082800643346992309142288040516689692842521338034440369251464882540741310030546646997218338475809559116427456398404846491098287150957952643836784122833355726635942913612767118628513549411919428632881358284291969912279200381313950567076204229056403507466422356444508276638328083850866229177800080327836623567415504274556333301838858180165896692130014239896510148422514247980420385755102233127843447989075949268721931968186538361617891912131246114454090727464333689597305233621209045873486853492278536335567221783436300992216444544758628874980137649503801007973284317087740960689642800056722312814033739792405471840985269877830302450024305209795184746717173286882691258359924550285164250519028367759513160765031630883496414184181166640751237056683439180291192631217124123049431390947155007874476160204041815506260723187906080079084305036238592214540343696431728953762248666611626571403949704145843866192411739849360313490873302052509667552439460012160038109698090930356918887594406026289200841690073162530509457817065356172488824504169211667021638889151245005790572876065603359632105838678764703421308035792159543183261875229466059534138360312192203473704106519543760134814835805232273573831940592178585166605986570820189195544963283054402033039657733272219752871073928416315209890503269643308713651140162047148658357259994006524331719525513405085068052155556428782909910488837292950652193155816939988284365312768762052985192705977222914297008110014369844146405691607441209515866875514097584601419548211383461154999156096849707101545531021387508084177587271945277760188753433422313332151565690824971971311267561445211785554594034768497675727586286767501902067342462169833119443139573538660315925486314177384058952751698556579774610983306192487159228465028968581073980749490699044115935387694165773307180897130893972204743103891003233472948474479395674215585815115890585628843942423618334835849687043292703744573806362439187996848862198631730213455339019802126184622723097070738369972625557822703307538246223176592474770625034313272970632944544886944310633128265043887511085210393880372349846992175818198609312892912231459571463178351170864183324045436651143108990809071439556818975955726138264855585775827781825087912123286531217953146371411918656896135338873516560320038030404575874287289776029592013695795665905069568078385403625156021522330766647182692824344233267009928722140312315903678411788216670724643763994587361138088833432307329681834308924294452082913232757755247924309484038892571206538272273711292297832374356365754139119745446527956125161853270326337700985073344438322893042802408977371907708672703920304146396763379581863403410800820882148909992768785583221638762672616388352753850489310353935691988960851665269879761651936967921396099727784206938597314583176254602624724830614571504780666654739793367840576038713873227730067871852178184947525938610364840508713024158387674909777057087164431716368723675485112961349975194577706389086266636549866966116367352119530146947354408148791422235907223450741735368960498315111786911176489131986837064222611416516336442582839560343328460019840022748620588372939981771049495007763167896420199964357287949901370536686801501932827166501487794879813103224339522014784685844186869186223241779006744007795034962428183298103876155328921480696259526298013293454023416877522866490491984540653699623303812522696975160724978018323900435368659338596395807019374324565916427361176375009205594460455595192628836886090985766349997198048742656608018546413329890999284253581363433292136770709107036055400432734422789125447707222104973741685732454233996323676218509994773523509395298024753853721300961159412835673692522960870450919510192699474916658795366587727998335780070443869946926446102224213970357080260900321017791244473163314012793997514010624718045316781171271143627521618872671526244427727854518955520062164491052055588576243281198673237588230739776388709792972770687358585995331722828048643965536100595305699742790966935498204536277453113170209475772874936625346836534484557632076721914371490573842267773049314541368370060521216215658082228459024211803394607914870051403892052900469918756478634701518711146957322549856941833885453037998558492817946673675940985910647890872216179883618762328536259064745164606552665012934698552540001898850992395783864339348759592634862931109778585866242675295141525299500904401833813340059370235190742590203741560096955051136965890193987230242054786789301053127213868864315086444359889859936319719171191065578482381822079408432549634402573172621824215733098511446852090552270361223100503864256135177649468068298017994049211552432437056846532070018884333409338779298440301041415608290953580586347343564200073405219425232384676240831911641387208805658927470077232503824165973209658910418262499671827780012399558851111665319287243418151341104045636815336325273477051801796847680261037529993514210734768184876469536221339051450204188061504624193524650716292111818181239296378615079006358220686705341132204529975316761125234079623462832429726040084855251043355619917847912621831385711412580914172210966176211755392568546668710788328085030404464806578747867977002592643859991333726291808900655471051463155512717875520676301739010538957202768649673274007639143108760090058315065868142138056650867211346171732969049202719348534168682210497528522173568612742977842292335096029271051723872055907123620001644957942848519599528906271825455563542986471428689600685436972734300872504248788898297173190528902149812105506052358082614552580636199818362546238695974623578532037496208809041171613283326919302906520637349084990787938939295762164635715232761065878696850730347860990258066823724960712355717983285573032718549961672267949597821544501190263667916661956721156942753552585623160512532538476177713642441520516685456337275322911873250320409332145520476927344155171535538601173542699515938222659315064609679753628846071316205331148938549918871424803314073121301477222916991638802356854146446844287866689056778179046298761053001482767779401574792028486009446003291228100997846788573734434079456135584573275069949265323486701695651895083971949483708766531355948171360923757206908012442424973757341027981516223991361564241000559721910431497997380611813913104887585199737982081509071985525107004200164994822914772728490032134865525195631862930493487791099489254077117719560144120382986938792477519964027485863091591541267235893599209522562232744711352257323356446270431420992076021885583651945758302308044219900306570579908682715454906656988928924843778359880843028633276880357722933446393068618633346348505235284087414604627605164824986052798735204626042193912169542453257602747713720068155941454611620892200597401324308943215824706518449202015115917741533194944574878323916528706071788456148743038916135042574264573479272842946213217639568316325795617210768172662096522498127872269601383799400768579262405664957616837509806410476484751517080316060104223426808871687064163422974070829605304951198423940801289295957776163316299315010189570001500505713449947542798893600076379445782095683816864213249622394317392483941737811009342633144750062282192797181147890570959265198556321936673419024154547479447167562888330897951325632873195923448366607000354174093714287293881023285366428502004575326397165452193098481749161770390305238324395936491038316972108106292512510754910739305888673474600236821395982334282603037477470035643312156861483948695727172014718421398898653875369378213551226201340891724174059027333938399504934004323414887810422128052481015930417874281449492893993414423744407899791231358283338843808141155723364788570507913564753886657591445498512940277176661063218861756382038430475768298463434254751948598692375699388933497776858976555761554375845655994840513404827154224126614703165389523928830387248765543925606133059110505182538554449712457410328390040067120696403231311411177085381780917526092235600688908022825753178455315194065172455405175029053385444039991714776992370832992321307896001333964549908413636950576479067714682411902956347089842383082218966943989277436453707609318625941813088024037531490958919331699104255298416996677063474969091567362304667897404934549073947411861641176573632718341163585820478708514485530470002903574191186346433505929084191891477658927236691362702868527801733740292145618922714254978755447414172227395012450837652032263441128360404373110825784286741827523193087193816312232013518284865794874888006637365713408922147295884791092450076195914600856886045387138394761449441617752879596792027458391559860851523842866712011291317987442522971307308974823106971582852188240745874260219579288095868841946678124112342584609872137011598768425519750737565271397801324601533105122797009657398295805518664956385769560472711835847964179410432474960117888719293931309028852659331480969564596768564877845874090965534603754810769036754252666249427076905356034433882693712247233803225584498064032150678731355096358885395576690764098893192166426576985451271314713906887340209053010661355865895282542945327823597202301882347380851262203931551971616743338773287127299804700535351540679227819719108376330984020966519089702510158756188022455238701834659810991770484668475799190230587575552074352959548137598485600214747020980060412989061587266048670798451500745056582714053679390398666542851984533697231136320824762540476508282146116578456463064574386422206778229263682975557437854676312643942445048540805866593494005135725339673671007566903003103673059793282709445818943057187944879926194379283889443151272886234553188201285198771404079789785912625261751067091699663700877284624206646666158425801449392487135884467138383374466211811311725203739476369775220037116244611022116107254073322618546323693267615378253527272016330975308049121929641155101011930963940390134896147164978456643402410940995233155280383979948830922747601879072362318914036953608946834142826351368380841000310150114061207050509019203204471732031743976296174151206801977177885294910652960295887987701199565198264528708701071883406067157984822074634871771851448556300198649548521662097386747763161333468553363244139847092246977761203771471900049134266743688427139968355370657961519361857059693025961790120458239070768216321468276637088882106243251421253858635622317192558119036009483771757051297827572893936624440295798759306244890730071874634272647305522538930155269502702257841318699487711791028664631597915232210500178969213605241428546328795410209966666908588047988488841191730815219776804334470099383258811692371610077384674692407734215854374618689087989763426557019894456822308526806899657166025198289264010829862069835173010527867443146962526549487631874764136473201279272250891603704188635079743784371840835866162183466952443654947904771683437382550751658282100777807121438255168946378870241750742204718313262413427704553297918472651803637117414205871896254700851972254943182286552215388874969978335222416082098685020328228118478232838729598614017331873360942371812058197674205756863115867325416688427478519305775998764096424073942827215032176018259846093159468701715707336834051023072118755569850772302417471416973078075994009370596876375849543934284481944161775496359162802899968107852102929201072043482803451508506749244223403089093635163894338496069871340936521063352635692407721414506810348313574315135502539114033861028998982238019089087135880861389657409092755973575993291825180605579535560346204788317809670400095379336822926454633153250159361608973922363694736151543520504775417730591150060083350508009475387225449274452065269522665017864793609680203112567221006364124919129998118456536776743474009389651600395453099021921526482493803298683549749358761331131692207896486721965112437453955996986040271605582482227861316446003012051462146751296936426566599934829754238093854745312702557586196484723749917135193378576353478598775752449186865529248309446153614844942270120845207518601793878320995200264291935328003182343555494373118278304426586385821810699223768729726777447606843575576224969713774190344405477815098136922895859611417875866178862782888922612975194337997432460915262354827703021709547377145898844590769764981333209102423700509520275606251783908522061295357321407400783483386240021753346555926840243736698431629192796748441828984029665792257353850818023610734334917271474335498395205836038204550832234667750209177488352999203568001456419095975103369895244294729220799295493939916084483553239508511569606721186656763305172467545220950942372961540755938646255893373047040621225120103696718426897866342273316413472648078745780316614095473629820719185691827185929417867971586655136020204322516189468764947784914948756608185719807000185876569174212761759553271846128267317139605215408451268924417051365036487425084213923526646060442419514122920948623317035653415721735289648056994050902654075015659745980767962867984297103525009333317804543282429346335402482183048008753993907536332024310776111466992562204254694050971965728692491050907368977192823209923006600220160632338480687621246039542168578663701643626305701227215246721695975812214426172746204957264695212052611105461273734076235855934836837171071573034912032163185326999980200719402931868334307409033167963744278080228887004850603848570171518814799403295330703915933587420076420360020536688034517068688642767197801703808993185413974103281710666844463124498513088708398480365416469721257146860164973899250539688615760162350715197369269691930214940952223352597620523749719160894543005723968122572342878720769849992613315446578795495298074027952839220643057532711370411295524351968534673951435955137411101389486595749865841345129959028796047325572448602450332742035682535121711549324802705539785756079730672809075556875021991851132374849587031954820776186153977362041161953290120541241383723306642621128168400685728629929053850386370088277984219609316764666389137833550779542226863500219876752644609303575534816001686897020141180573930237006694291271270531692230708821744907257389858345240365781530671286085420887191150388250141297779141479505461668797517488565431479005462210369729991763134266626149388082866482380473242843987333109343535375425472639474949188622722280826138728857742192687896030375266143133184941539275727705599805248222796541482705774925271490956614835583075042242496058456895201193611699014551336050432190689717076598821533437632613479193218027908632962522043632445673316729639214201883879491433929419324935981645985121375195344706586765406986512102592422171795452427139621960765897169936923288994259826315629919207918848271292190318234809099773130452382116552050493096598538702435846626140795323497868301520632422956967948932460552747633937440791101200163363855144537155988497196208357609003042962261826174747688535940339306239482484116351520801999973624119311238496071507591174432558211069596575594774226988621938175923467119212084677551773947309575968086228270272679007106482578621922842665733996792639949118486591461979171625762053839592876686297603455996349442374524645081692367359915298065121788732221493472178197952027110639663146350204810597211918365296009414290175567925626609291924571281064345122727964209447709191501297836448060760861936459335903013187652098305649769447581166200908470763284071669251730086810733958584465367164373058281137842742075166175367445936503305473498241358768376866515484648614972367331370791105416511280879553339964125263085191397289691017565174915736508287293402386208588090911141118865996327661304995399447442145789290594478276855602452354398511923601748969754955869931238268443401227642793006090076471393711966447916018673797749345209038704474677054358342602604072630591770983662099935786367180628029509022341677029722645363822576830004915267592548208191726665418398272651196508222017930142191307023317288499208114771459544725120227076378937234431761850540211913172730122513321157279123587709229825099456634800718110878992564088313494620282967563359637456027612030107512340206093541724005268143159131751776309641112817004581351415147536476019756091733544958259728503822274003411684703892647393270266588578309329856292655007961298016574412981348540340231190472393314790108456424626492465270856002168781645747754509198412329027154985468915259954108202400576756993534807956638217367902245243204285210915611569432432855123081046931150995504836342364028740153488343692959964911308331657096256269730698360681292829393456186641325387424805620564509122663937556195818142504186615721496222352515995860652665281196698611857303133250786759059224739087732618412612266762135828770345816636054124023264045837406846736953804273909112828813420626703551533496121336553983298699521626434822120144269598100619506589615546502886831910676461311184503585819995856821039304402822008174001418264773503597634572959226866008794980204894146164349859988014688915318421882266363855249345106730367879235629054621059127504971517270384698159705483006741005000888415244174225760054183484689844714490221367240459568637598688894871669838111956536667028501543005374532223537689626748495480967921401429908292528774747736369563332516389245576860563815775929247772448594364073875713225551095452468424940477602291222554148551929667994018891185989083416178314882902528527043807504543070458696234788711261317899581881062477333585960716729420370624023403926469221655177225901924407169333207405740192157586383002050492678812146299760649672680692350315640477566263074457071352628475052562833921510084300006322966967663111277458332540968188084073544155728277552757046990184585042746811708092282052359176480633347129058359959397636710534312634749161533498634330481542711208758773418000799938113727330495578052306011570019852960248195167323357109648017553055407278475565047557482519063366797803514910712364057188266734826668216007289466488776905722049149127464463083557073297439196913242677685106668275575924178097408362670458294490223544732429016237821294498074963648476763859306459833297831788263828204347488291995728753292880158128142776818407653256912011425384416113136756067601383340102124958657437229715453859132748707011775536994208123994744649342095320651849222794827110305491368931198198117999447117388492290388568511364854790308494730832085300860126150912783835944255656667201893728243058043346452041909997561238622124978634120322965117106147192567140797964018751010819082033852295492575067440469609848783501765632057913520227888824507000689549416428872531394328103778953629365496869710275857196817472848991064777417353982237074558682288813717449813666942380353160106177170158638262975189660402245011187023266172025961207910909584814440792709173884112808060285976654795090159323021923691932945657613979212318088192745420102667569734965229750482204744400012627959554135119980412181688498955202598658105521764267671083754535913263269093987646546149272290724656524545978701661836296569630010615190159637787957648768296026925027667598102925733158644736271766352592615465540851275913991959320202700592006057046417671812444750748834412747436586310234317692044165239666952894775420385172022693834646711884874271575531749709384302007159673442238699861079526308046082756445344493342661565673137747227918842052275279632085922001315216277790704942145122092130913434247783276619554750468247085616807822389305515523754517562738091352641172117278570700493101775893795142839479751724375724145470575742707732619452622004419188306214333817601819211677435865471077415572128203248242298957413422466828334504767145189223544393352294102622278472574832082579564038601695927923561301148894480450427621963901406805261040182738628574242870853524002175224651739630624986343616503174970589320481648093587758588962032632945374640065611916766045589548338105658480695930685812228101655151285748438951886538737390515167170827005340358291234094170263925709881722611528003529913604013308187199800710145527431708173751526107705949351005858477265730152218649130016065529491666549369963275665568134204353767767527526837730282986785861618677139542815720166298775673789215791766938934885238189700769683042265978650457049469366004554662045836716602228481259196282179773262971688261175050325779002162723624559076735623315819898012049530221841298698222138189107891996349741018470508011168560462283853983123248065877636344583037844081122213630148747490584360326832867949849004249292317625092196790097267571847629939309677788633623310825068608234521570879744302667099862987678688486731756563911967320230020058530093999048736951976246417230578268591605034238165522741517031699946007943375959588095741023432336451123194278934478870494059412480149697317688761844272834301403483837963354091380793406259593387174003569462349626625993663927431763432055763090168748828285373591389866154251522441437484534293953027709260429923450676541656892041953843405205869616742972907412469387170430245919178594373513364741086322883526777581339504565478657694145523485959892948125133352311467332908792873209549096917996301382971014007462512388560064976990237313748886662069699330452436827946308772670334513713923413898038741583838829614062551218652671184259059730221674622916352117253961883064058561766804169967557308506923266595478132839966132887078542456639055971723714932427691607990599002651263024716987864766644852902910598002241957341061348409262419690839097884175875037802571858144972360068111041943150390392801073668380013695053504729329183637425532122807683561380403627595828382527583455073464217034330122202482111578949219813694004306654626293917857298754295775568123657367125593693488873670289482271504815686874199004089141146667613688950174070601801466454502117134396316996021755028522850027669380899056118568117941479050903227594102840813335653119659931350173997331932152463707327287577257974130256716272609354656113604417944408798129950625841207036276027525452608943574012144343926084609292948852723588694214720709706946815541291348303884901616789600961438258118697240891665634805526554765419912340045630225789110354631517477154508541350903594929035831878587634210718150072848661696977279961830181598797755594341268848494536095188518204659709484667595553485861847744983480066293308312714353928446747620387660616283424152455169634806373189037287682038768927491705812816086875733112240470215949835797853676238564999709520978293583615669108241692010580188617693102638248982812785636431464215476086788069924794966538739389017108462314665320667601153862302801292449832188064346936070822556698390871643135756519255902417241587758136354673956509742122480548513639643841468780451755397229392007411306891206990518948773992318777565732684697937530496083996345067533071614483564294408527456644708192613596798280594921863743248445331601963513191700139439193437277264704991953536296770678138690424895963474611311783293349209016519704630593305965310918990938201053152128966925976190293932800134467803388981642838405662360265467398774057265001450747422856109372035392871368639507053277804730080479685646034515247120629801486030880007523478084843275628275332565037944291953842176892770285054846423812140703039021837587837359766418686212257778297277656990274019441381865506059696207924805388529552313840312007989973567735873509010945078967072013832589099388425930040900954948456184361553464413260195861300812223785728988407651211938380129712235959891256578365018525399828794143804072100349063101157880900809873457015043307387596365082328234304620557197418954480982023115376739183589601862110124219598859719144408521535689601300209617545541050652738676908877861958633446982884728504128996119918628952494486459514228176891198941096851323097453636190565030175574698600453541947132023501597433456755557879540538491750444093696271311819548352045529483024479467276514330400011609503748604576935764611253746159340445746841339041415585457099458515166693222724155857550900282962274456067244373952344415662564982169053511318040391966298272099176125527345837341055707081009056918513849919008437486316475658277651392952490898051131888376376520380104079073764698330081292252178469213187278178921900171387776808885372639208495989003540445453146858063178953967035505477444795391859069088979599195769441751559315550111499040443061815241866111348708488315806284268440570269126573155904783978745011816451499637875566223337480946796079654677168361839783175597863575972169662899564799417936691811375163848930943214392517160527312980796456705657741530537295152069200003639251645860576565624432893316707917045766671944521970691155037949337208664209325652758081166330819972469325247889369296855267767258861277468328297967826469571036077172780570711108905539959390863549990878249919097505823019631816498725469378036593117154316051099959321623114178101372747171368475268675978506988315041295552201895081230269121043884814836533668312161734397445361673986855151136087705974430895499795842762011301537884855726911148472671222123821719999293346196493429655765261898321518114141847456475413011846350961951465609647827542226959214661913021043368386678172597020243649839074697060518593416157721469290912886270671663602553099567077199910105061485882170770347101093450251782590433870052912280656772695598935763287550242116281040712610924869752802023844626480637815790243975539309255113046890449710968252598595551278640080707160163032694050247935032100014890811902324628804389625400683331969987412819367237414407884642448598626069056228278629137346267742744547736432625608136029918646172515281408268942187703413056543678384016199838706789366045241061872796720097894626743606547922034896773447757559514197280008743439876074850738515427907678069302638686560521534851767926382231450978966747748154264064652056534445992468098162831758183775672001759418890465778391529994169881818663084366971370605076739366442667418345117984219985070316457835389125778737608925619929339975318397931814100938667616230604151653710073923007393659877974094274741382678286669660219957078106909574338935953304910403353695710779580119253359355481513791335752596132475740919301108014672196531510335859407006949332064297699692106907325633911903704388168555361363095909957567582234855355269963883739690596827139493054551272501226918561699870885501219611632430251773772545504642153842538960112288016931457216629170847404713703883509858203583786089282260155208099622485900330413983554329773741494097204866569736631461466665814599811362255094283999564088232762563578798081438430146536860523418315633629130268795906919471315851807070789600750001406972786025640708402903986873706015969714780003537773644026859102411962346676342263896590138699108057209634810116499159753992687962779088777117292512710360138473861098778851093750967050243194388906939610146761216477131387170031113104052555486426915726176395583662305617472561265949637031417345081082865871197842061555095013914402133771774295878320468754881844420666896432272915413482557255749180287164163668114073079480719703237064145249114201227936625453429499175382347002884011320692272705412551259690302374870132018187807447332906028744195992354262126438757048314523458072176656115378594367400907213821462237831079244550564192195346247711944537043706946781607144155889278514530339434295204600478129616987385752573759567764782781201780191234951535227494680573203385397323755665874698067591032410417733470671074684632881063764362570861371250145530867388816984417022994456788840766187249976039358036377340684964935981803305997464298479150744059880709549512630087060245997386499012703378509170457054360952408641391888735653964573780322173503604429825002392014628300497295393059634449706005317960527255665065370666966954687413246440812905962355449299476069680634409635682035185073279199964419122755007247816261583408998797689014482580957735767605933215362346702653758396251801460931944382139862439720097025043549288685961246607529200832946317814192661283546776426012439345755469465147394820575737793582048619171912869773023578484037129837734018205960962311342497622669654572910026365431051933875093339019164231157853222259465139382735209984052425189632498967633955636017592496626873183828069268608315899607729707170788535504898806356552685551309072595976274176497378681895619118044085891505568268682869856377502882090252074795227993620434818333789318905015241846786586736791620140681965467814363035613324329890017566125256680994330708201571997029628838044886019906515507184904505951841330354124879103006707261832122972059510667864573840334780051648311463050750569360065344052533417268730775408132912504639311035109726773382893512890387580905332594564349868492296336793641840173190423698176346318912649876846628018759418344533361162777549440462645388508298922110034498969107720618911446046799070875008681977993595340475559763302041247951414418020223840533543093998787304949043895149494633503379513532831535040961981333022950317334366328058493227134598535206337168238413851645770337409664814432563548603906389227055203524606439160114679758829478462925180751744372641536275521986712253081268128188552785604140454161536411761243248008597928856386101350064861671485649468562370179600796319083513103587041920668400490111882743172313577383588363776227768542120259063827724480613682050510885612562933582947285426443027735643487240950936463262308759679865774582505090105178115235457324218824411946387624887840689713323633538255627983869576837705274967638525506477881654998433532049867702662664050290481291583564519355812207700644449637589597491771130820831822882469817582107031961878115983380335440553990386444480250569278389873106273271584839564296946364842208909902018317697800151671396707144103859189390878144423132500820239812682162124399096166177699971805659084033652782508072231682942659845330475711880036112633643404474028291950912602019300939124963289131957960940103442315205951023657359147040611732364453228360399838195132209266036459512635825382823498118386306709949579511331672168496236188229275760051544096032216329309055654905982077981357429400194686887990512269410447971395496931167149152867810496157783379509964329665207818468130496413803717762115388758616428073449806763117849951128250200778302868361675159771489997293349405316019793417145975410861871640889183532042504079296150652011063339550133905973370635158275822067787441033304268491182215497841491904134119904003746381930346784436776872261020384773554546065422356550107497957644891635511153377411501849254864772553567516027254075680787384192133019975412337846501282423069230599893404938547161764948350778931219989942256823776351315246856143265054705167738546232415366335719147209088453328621695850658631461826086691333073410231680065535146008452029870117215387092444482036830709621750297179791538716905984004200375200470910793756506238726162489439108146866450294281134296011250825503333012340377888663269652539364283101330612041741444702096262725448471615889707861113817294417221014166318549646243929917992180400106142655545043537919002308604682036484694517069692264418449842604046379061788023001409890750118539826411725960884559708273854143016069342213455985117304563517409999075782042200319291336050894639994647643359825556329572275043972967665098480779101431526684135449320485918609508470646924629178077390123351994580005443029479671346004194718393015836806829733595630000674196266902225429267579145408659939120238575455396829606420402580636388927345327829095346525251122130074049839563943251933712184901220648249433732374336088878767734647311230477944882777955272771439011295710742546456658851329169857376049334105791276509391515631961397604788625289935223034226624187204627485390947424741307779235748638451607425392244484238084063203830875731391749729235190786503720496176740793217062001992929895948258183858337260187000910273811757145718391221857433265873570297106435392254209219644098189678191880550917342775343926995703875080721104362536650695147771646638009519457137943348427147630554238767728649872567781725119024157300785249239978650574016936200075601999864722921781974111823303629478852029852823135577056832899154336425464910381709256648299853055294679559632872549367764375343036198327955977962694981791998234373862359902804605114217131110718658232416446102047745606628730230606505417433280431430857009144668171856870038347217226195742533421935266628156477099116600314170742395372566377603165555850213866806790107362423594086922846706717350502032438909665078915320156236350676641919237575646764799052303771002598279504985599012018401624862856292942447476212342471769242410220004682149224225194771577490875538930612688823964302803906468934198294466502155892939064581638667754442833362300670388863761681741477063316727532176590964022759226030695420095877863477066137763244251992236742811895394858313078863993990696455184689909081085230471528316660904803865477976399125130306552060660158284488632220048552619169618490426730695834464011595533302579573688195726128651470878958640559553331852171697539580381647408272594384785513342912397136914323631921392888911753176691347276167258638411687202922954112010912242064684930446920686644459760639634045811600177604095084775031898659772482740159975952004307024329241872659537652165784941811813842826621570177790421730742889271459870426902856043289264324821087402402300767069422775670919444975082473974362553212777600416079120005824401884088154850250219508221400167320502010515736571668677804128168278058425564689197293424470218953893569791768599938521738775651050236691966363883777365321168170973903859988944813477556119618922232961003541087705154980729993543184380340091906923950582542102599025284105315526389733594944883444376204879818297813516162410761831944264887079973246099331967547168650160180582696576485481112454023153505275965701686502948847982222218255138918444308175453018438508620486618544639074725136505998535829702786793209789604437443479542593724880383421630489266787563787343374667994869976472534006767134000334735298951487132791951247061390785555818022044638399834619865801334457983962235653988313991725780037929620267079963155954628775753913007802771484114221323793897377170230565299770289080368747121235032072014552476815043506089602512607705062767079268903867555570010744438177707904375419118226517043571530921970399626308663234520505741009933667792593691677236382984740030560590343736767056470054026281006480554170191549896573163584951563832438088374671720331481854658916516829243628345601168090131455509734358875168854932780480801264626583346282927758626509088890976730878980678064546227954147881951778979998869066157921491523007597547805921915509601915737166194108853642947578055742298767950828383176060896343680956634485967869999323320609295935098672986539773717460550845433351403125100004352994627615063544955039169062674512575960128049492875208455901959016669821032345175208488470449422034992885285328915334019296993816104082771884003239187803713038115988456291762417511847863815025202188704284407031072066370334380455542718644778555593028765601381030631846110493806226597294873051497814816831949947572112744467184088520783521091655812025346795870001054357424153241476585067037852317971814200015965132352687882089893236966682513908305319956288057714536590477959999514621888081099012313763848381815029173090240114321611861470786697572951978516523492354806630172911702009806911326445217594177225606612769562401365772339819632932585567759360309510524976073321560777841629904552134756864684680459491332735873580009121698477772452869286586724151145486188395413510052661696707418778351227340480969366280216439773930727084746468934357389553214297763891284562712020532845008515838783430846325836895536284335881268919441334464503472675987696162439377757132411589030426131378448598848109129101107226563105587845641821997925427366436139101217546927389160227837624424083585240505679376334388252426803506388116409803112153785207324138080411863422200957026503982465034921163162757395188044926810614939004128003041815847456088687660860458986380207994303392839428984217724314841774863952761084640846827541488792421190902398906972844191129330244474336374815185661218172844986226425697538977118095029222352074942198585109660360242273150063110427918189868779242725192614234730882882079636433662711889759520282342075859174549207633008529488454489541671462301427129840775388364665262792179556588175278667303769144048500201622666312021051042747085581939099686933090052810379589159953390188078673437033497165084778003648414056058171634996512691737435275890297924802027015903384123127404855651320545396600253944309114535422308627723644694782015423970430304556745002237757197070606966330415752319888215913380648034433166546497228992941721947266023308599041498352308725528388478812717237046540916094495488385278584143367345582969557582669496371849072706257654560168219335153577221642472197108421658792498947718372681679466079660537431701679947489476836509417019774015840552370242917527335718052746786866825295598818583767501228656149734038183720153387375668230637138457997647306148472386652796210044119295077898303349862744159723058723942658007683431286363044097648531819748528127206799059708727430310406726488664382055066587078727773701327524095219288655680418117976667604544107946913597610733555464222533895577130371964881006964701361310504420126066615315434736383948242256137391728639056092434561866780547533185774530882793533863913765237534559875988154304983241069684875090111215483089687420219407955558860123150694372635415065901491576228461225819248782346723241222293378476150131082185258682815619470693913235267681764876466561337796212807576482811528300590696403239561163622838868501934583187859039747246913962285028730360927347816974096632567705546288021516328499660810476836048559657234500807723791725422831037740248455595174324505532567216717294039483437107970727092243638864889834084168787653912899978063010634067114574561730120858569156649091558118725677577612615069847292902303043501067295872061603654901458649948430317143615980215990198175598186971592562158615032730541518376098690632888846200500231057282806057652080935043375220289191942166109581440847170806270191153396070069151346231741604290580628083235862776823478924509704672979028053593799684783377373725874179057648501767693474105038851145773281941716116551911025970119890353422500887306030870182655823569553809271471635122417826549062802257064766311677459585148312002680082200074312383221555802097714582000278671217008606285619679432435321524231074592390998518228296943836811511873285735331344883859539799028876332489859014920158600044759463141348623249459860843337812527681122664744449129942210355616141899421414756786158917042824456303024235388178588326057301355558287669253857870786843409152993649156014497266714440645607946783919707482385112683300896895432411577697361913063501974480993888813464977269155166765228379018824367609230020802838945887660765033370174639729233495610621578113827384981112170935280345901857303873038957667335781950144070479543593915553441827307209961955187933053863220148580730330312144636939583991527762572996382960121780952931793898117404214778716816410710247989588620751528861843397711355244026513504885748249959036035665339051534162690546948992834489097707076405687774941248270739180783978435136889366717243878595244817415961550435984900529143700185728234718654578714503012139086595183027849260232861489854469885554592280631200943202966298929000848853869077118476031214508804755441892277767845342835410439882737218805453894833947872811082169646511309466628561680769267076756533587842740386231545459267811234327987057746656869717321735733353088880865013289274986800739558772332485723573042757925341119229684287851907225835609705642785612508805093864472511307567053868635129594002461175166361662441575290819010043762735910512116736755319161410599931188965792368542886880793011451386941398208550857237559598175130876673077312050097812609955755756298413774882593461058351715246905404329243472208315579100074203880301038864221455061126509063206500303536350186990993292029051052297917759569694244906190211131824720356310920612202747272157687905325777517951408474578811899277348395593255313721482017533890494248011210006313332148842666801736145441113676238267831264507561360745852848648084436810211162434091032132786861243031140451094828309027532018018572367278274729510732774742723801509087316129167038935193224644236653837807396619066475001669867510280564162099152428521926859510867907596301062436157061939096358390003826925667190761006640068483590226143293140464374978040603954658956391688713504883041728717558710743247235274591456159408031365463827732199697013503516573944263316753433097112052127471422368099461203260692382073876719019079223698035077698485508512182024453252584178699807998282988691200094618562943438672356522336026474121874725293286422225823257751694252888207079024062480613117039809725890326994303919016151942256141141373055014328613089054213287243231184758125845788154800021539870830716059507802015265344769182337919837921889319938581376363086048765836603362026186080226549944589325930317474830731162610106373595577198648936792885491133635057752256706304419750290610927594263370583843260486433092142280077771934275338910099422898322618797445999808272570171280402125512196120860135465127952684141147720646356068120793293253278709574487061658123227960872660617474179416160632087405312577819135793139877868163027989274300180305720416065918799902431745513483910282232041770233238553695041877228469124477579334767088577995569767021622289258460805101520645778959309447867756676972150903147874419730440394613606136734818534428601806089381779121137862446297048545169929276523931164725005283056581452218168931509742266074770361772348128286259078978417758346231262643674175982224459780868531108760407662255908908202332341483983777840194132962091518656446847209881096829763507740903465770005524050722194510331534353887542322520552124505368724445335048579689190191258977903586581226047028799432313097141010750651045595797187210000634232447046022382166269706029114605358763714882659320080233942297647491338196712116208734152452637684150769221358771885414678022774604723463800844422814501806433060090719901635195453721401170634222165716892233123157573846677465000375260313630324038443510654875088297593597545889221613408145251918660810160052653755229545685388880222882008560685886029122211217171747868013917257348096948760684366415829361000055163857792672364054048674407687747495083410621789061086333146307475113907270114317851464197918743917990813115974762240081376871193066526417541502305067839808297434339339468746176122964375275212425300431783034920473906387360414019526701764503450413815991796714937984476913986024719526930320457714589965113941071788290980309912513670074357891058063051771485716011632511129800791503432565771166988328779937907251550876557848620572672181139258524784919626306397221594315631293815548684788952803795844277227032956291565190378275476494828587877693787748952089736305434452079644863293274143083564914725728685225012994081063615395168251437372603862010267576359909458219725552740418673520096730590929588197654559087267179045581457994198682854902634540395923313343474322325507531628370836400915296722302565153683946923493288049773012908189793151617452783235599252098928179000333643661001374419956016724241460904422462911069664557090899980065143235635883876994053180989979563985052411500768125893129473446751770360931881689517268273483442060094911579735088379029151299068733748453855437125543311677633415440108349495509636338450312770421514311356547458757307570350593886271087292821684476971847396339653313780826505384237209871148315940924987065530640586829874671105618026159256884857696880910063333691093592467088486089052527325325121003072089860430151852008149728687608814211231140352601307161035451176457487359817202171354376592480632223691265794155997649558541754852021647986152375901978280359413563945786432727910915004687814504811058145843878610525747529912277287667407145505798414665511075641015486680161640536028139307893593642141745075447518223916102095671909450774355794783436419065858170283798870971356627861559465199863447838084313290552831512411037226754535051286606061116897475243797900013874648842582543582332437200239607608986120788493686716285748359341625571795491332191542431350385333346777677417581011510032837200374051015170518653297104380217319593137451378517350065259733990963660704422532543308798286207094421332543619347489139136159870235307088539144013664847061923345819932579715513402775144445236753477868940242418126236858592071323652007234399687370783095427765094378841819286637365636826760779019387353175713463686416153636386473262510482204535785679307338694130424827398123378095446328390645427776992519878534355849079316021686121875599012075923363583613031988827148078385710931317450573405254934513621017184394184769267799522200789400063247964195688674559280931856201481034763370514956260359341776815453049518559233679919202324973122900602658172908770384747114089527158408913845950474447567234973061615425842449146836552043257828116420794827255655536859059730255095618537795519856661486940815301698549408893797948989975604118081586263950647558041861600388024435806946337442087020210405584639383629263708270838899533886343986591233098152754119269374186905870185270769046382654204386763834233333630599824689554998508297524630545939119233883365513906684516810742158511000970200650570553219500905602526091579432111806229490481287353764606060837108861695175380789959710511620060649051371138164706431408916284353060861054246848936877263127570917909845528506149710273331035472771856122250015765141252405823865195600955880732868196809546849749089722323585721645193055499247511565559543206105895556607841331821878067214044683926331890623580829874043892811282657192121324765299289896113868554404890594812628962393062764414032029636813611082224236445399939480847361388869480611202931161470806093433934647952175745609312829334347442970747713359591462206128012207592129150584260543218337468160758319710598450023109244458733212321704533176498144970224822966013122981314810810054447174414976638355063073126388507999000120983674741097120814090084412412857393021289856365992334923234592982429795518077645755804087618278573282623611556946452101468591831855027912863513115811038741476443130994326916826220469706147815496235155239081008947943816780212248564673213708859164834844719038450907440572454754868146894585932558013699302454261234710582270112285207110891027003953283328602332701103659362517869595386269007614712690619073276386369440447422154258409624997347340571089418853401690285583110628914635273069501437715791106298500795661755621798781965285176670235931349451914922569404823125271458529843609342894579421633367861606605539112034235914931210649537101808430107479728807715259850838157064531838006816172295570111125884787093304439845516446579252558114404298179662419856173671329568197949554382133530859892125380588146955767972293423776981629891862492133127412684292255628823481435807909581880178253888076366606592455068774582983453478237017042831684277183912356124370907832659669014145273035710082433732645292451491553278660126393901519352704877328092046098950844761271007295314762740248398702066311159787228114548355607315625696645189849405815894150034638286800643590270843367595608716955781813113518893391772085153861509134915501328923096631762130037100418959424323958850685752482419481746825547413386033693312434457377837910710499976424130505939593544950898745597041114729663040758530175607909700247495441691392002994311947567520956077333119728620165179775968844546028913907992356597138609529894902079149628801318086638345243518630904726683358999175674803844308697077505459213073489491458608107920731459680879570554321147304324806704411418160967544644649220761453122682866306761051519072232625708185592921286036531826303472090832019575353083361035328665401829752147755208991302836440407366860028068101710938387420712077271811390071078493713614455765193426392901780874124357875980403833143009061815999929944811775844473531930297289169566725527350869104592380336088260022823222992740422247278021264018671070806847538067890484830380538771406699771183895284663152207712662201729841293890181627411595184250844521180838470063384506984778963988464815651287891925020937884163735907237302004872435765655711902244367517098576746572102454125389572267826780292057907370281299339180865663390995074169198413444982124049171740768458533250396609096253188739969953862756743292110245377260640273281094123410332160961991751196194321541082936943090912268502766793677420929455313655054118384717169087190594577761748608309171458086560715658364694849858535875820996230728328705794379493224801571283434250425440803037902548847857985257224601050396744931992553555217964814020160050897385667402372708841193910542208066246492668172421944066277074934441732186281959532561188091445494278542043967031228212384630822111303843423794093187834521198419839153495666291980335969941109197746847184135427701416116445620783320028658479787296126782103796014880539637061481888886207921858751085760454196829039304095954001117527613622892447491959561420395722184651015774681572664474133735177983314380181339488187932465180713183044440801574728838483515281312714352734481694845787309330534316638702695750091788037549979828250487839746244152410458041680991799020814596038672274307811366944260268892041086397762404070951840129513324317856478047242743083039029192079416151529579483606167697051272796341869299917430659651806114959712976611684676586561987301978586250064276172964973646720944762721901148812099730744365027664211036639183733048183201782183011480205451522482059733322321317053498583626955739804179849462340337845020688425661706326951503415536670080611621039293642137280690311653193351632371214674619924023373601006690837765592690320125707034805682870259787157065649743529282307858452009671175552815800647723779757089575578762963820726643775109027653134403440541637844149533100457546674597216018870706825593142259886747200717665324419256177861042386174404425336335030083836480727653481975777605492375069373592233515285376982770280035728204643810220192943572502608838521928419319452974761083998125063535740642531206347953491226163375629619846410028183134480198548585628204634533711907220257298481908053022104260422516601956150217677250026737786128235118934381793802524661524569099453831158238014460441528843312058245627139623183189058880916388332503215720846450497177232772991892371553888022019995627148083061615945771211493412604568729835577078361076177352952688683946441602552857895515225176692859955602336774222217755290225926993907983461135547227372566165720342330861867245540753268875621647536865208970446124614158809987679664291954003474170904672639831424012359352724630590388128744974524642047751462457902226522526448680281821587915586945864279508319141463122288093663249191383557430933924064252578140344820666265730816314831971518127991638313255278240849978367541621447438056088091512926677789454339741267012991505585576856104532150377711378843271872274147769753702117954134723455791907921656005135413007969024297352176534623513727305295252619560688570778720543548615672793125397677053804831905303223705214844145432092077129592351547741102618108421584603004173454009909581744662390256428813056059356777527976142000717583165624088949267930174018851499591549368716312503551038454511152418305370767978127866482495542966721357071567483645980784306786844837550135426448093653744323628597105680370454427756991238639904892306112490227594695414376703137786462572046458744582590919213884335631234924128836151628931909134293923240951455598939411049440368583078049583108549290418657393743622374873808545220402105335619163516585134053730259494724836274202535387631466021948661145503676495629615201748502333025818033551109629825861993797588027229534220957776782266126819210396040789340558740449532086694683937862857167484417597382832439609893391861229793341965366077364752479253659004961961029125290220740749691161328279762392315521782761561949293828830498293379910124125965806467633246261468223714786909644447186168732019818673691423092217128298809613355998933095946498676701475584517589619300326920485725191171581036613693814954000321933830312792188789279752045451368738501443530386415476728916944421939354437462860954706866620641053977831952620761732675015501252156065962190230657621767392355412756217127281424740943890840712177805053088697285476027176739312851819584325677624148704418483900886143065532842584520794850282501144558835882731369086625658572863974229892592701652837981558676731137749687464599816103026153620079407421885394490858410159258432143614349507824625207614574243410742132744019065442204517525071084298859993729572527873992307931307108551746251725132911106803413846326484261346618862786978792766998614967686691578813349076776347339564964538508586212087588099481936211623956894800993844006104675871528832241442433559842424657355908770393793837260064735270967449804193052120736185408171183373676014600700054275137104491141596891714505464863762607371581114919211246840739627639086266300113901630330933228451797011321429468306207616501245454126352209781167978253400819313825879670977279779037903070541565753211806847586290175681745005794323015646252885898634717273426297957174788677600803539501373791576633107452037951988910904815828561009407490262485354348045740633972953981576560527185302337397479458678538164348828394617221931995711115865811262942477934935067255790303956194614369906094945863609988551198393418496822036176914766908739200305599241095779870614545359048625103763754916680768770821652629817552658629033270689839200882385319202922225899853354467605483335510048639227114344949956576375845144465305862661508116636326773912691999512242791923198376880702643345137734604380608059115634801378024307212035140993491066385171561968347803658155337009061879183887567301031732413777242828177019673302834263275921965475149912473607320893611196279498948762630690305948626903550799967421399386301229522331414635938608949949975250473944147629965982802030339810314708623837118608947451515486324751429750898551247042236796753734426297420979261427128485700855668522969472298137390834115525763148672014859966054638688342591968207328107648371170830405839916038246614390998930979907041182010763409424515290905544864362665199842741143664776489951698297801587461599589167348973558268404368355958739749595466583227626569347362128120808684083875256562106749649389428841743953361979919809451469280497044681825756528744907498928593654373940393845560881197299646848361530486347194671160828818563052885801613880892893913966139000359044910452078152309381810411908417904839644211892699460635360920281376005729349050734825554461069224427184334236759318530696374266153802590821834842334122032806451141536265649952982823416810001143434434544441071113764938154189856912066188438454315646750157781185444494391675011512002816114531909195336806756177827526420905318248314848447864495843696987537330317932512590077975559168891691438768005082290578557835505760408587256303938529266977442879933733744913081128793273729827852672951002517388946979096563931468923462051188946649681896310972397757351863794370012213251479597535237841085927133652111902860953720877279046015124873777545639894989789870624209877288139263673851759019482622488977609033934038232731722313802434205533897314264417994612871952398959007113615919873893642909526446368568962893913083366516616869052574008144861958053273216868179591267691257186173102657565689453537621142201671080682535367949929602096161741886053714737237206614579654671837886436783398801729557956774562849215198264441781688337645352749890431909716713736920248937417058270805394644074233797522012102035979582516590727452463262557332022167666114766293832312732547164579755809056370455220255909694116571149193387556509149337167550813539844455060773782524347461074135130912318357806158419602939276023938217209068898850266271858824893816139734780143289331091340547212504360602622928691460984810807355360472492867603369529347883038342881192552136065143013998642460911113875724405978049403614375707125345718763446261312694719410005832503044234562113340698960436467462212511532668834748080745936968308136173496437947147684474804052860129580799973835488161107384958445841708089493373748695978012616675046075486550816325896980328739194123044546899163558338006348695658660078316760055545791838988099092276883387994082599341333105125574640136779537414998776763526011457648163600440191165275109889977629442402089495032303026238088389834820589702863955993759179506995682989997429431526996091451763406664848956118868905427441317830583093195964902667093538142432538332953215107670681790841401412184962523924573483117154501888698311797481844026241953682193279855380343461872848231675018648318775218753226764878020198878247375961086686402834676147770897929101595689809930528965943808361899243149533699870183284480956641773200341293150800148244420061635838043620044789013973754217390870644688995760253147707641684368303011969858437562661236473300382091897244090422600643354831430495652973959962320173095224956801352401673918515743596114181115126135463164705977810459811657320337873203815179857218366810355792591878128505850798246295283404889032281901185836426877258612036323998647909109990085006460143360632316878022956907392586901911814274828638460761701077186577220331435668931226759688335037692073758345228368816891130991499701044552052467047437162248163397072306009917025844266415466937967712645919825858801685044479625816279949016246270991623326101592175569601383140476006767500243526908806363818681078630771196286478750473838198752738498693332022115273919111806650739329709670823742486179852512430503363940679345424743160124586374766587376248758703772255672954689230778976056631313771905335950628499062920402680403709494847421383477421798561738862373816427274579582618648707543512885034141955208020585277627064649227734889383533610369764484863918208954974238872085692527809940537304129387812569449617792942946209466165020406701727598141027446633794066868651757415846539097294987668703132307842614972708349904064711243425681179700474851419881642536477311234908879413847509754644351878342981848395214823279011109886020274097678616022744090185672832597172466179859325794478038750074898629569732042158572742635690394718612932954689256110768485370419912620914453754522829963825714404253850993858098993606225228724056136589691677387569200008345801700740852283422919485251080067864318478951230587410623803633319905922216309414109301094548365073200464625590820827256214247558086559851954891790758858186262615036005746365620877253185928425660965929204237536155655991102237370585818280430099091670532283218199762624818624295879042410798317983253644842063779673913069345588794095105209111763086274567511098533621940948447085366807705537599412007702388735288505094904144215070410113810781157829999518274128830359754282607970168530497461435903170656355865173572912536598720668611448777845090954521794896262689465110905775891918765496052261146172701188971186736535369120661798291914846134933191009599150332748217478909812184785511186543046945200970507977519185912857404940752283585992915464304637283668731793231283852021138145889524052786833863929277800576932339010057027210712193128006033883917655898820935194249123992189210024495773985500813455966445570048785508342755612354464960174841661133460013431909546298899625863014181341338050578477448122348568162301937218895315534084899083992484866187467724919704353617086034932104491318531009069048215925076961251980217441928574890574343282548425154840805720326934098099364012650345462205783838660794147917471615702482084991612662278888655839377649335128684920170470537569230842870519508196477496058033497260713608154455093177986526909146653713984324967357006107513075191030598209074487300428824090399344872182891282452217428170844849280971355366979065863424107561198335990020390439061066992471579928443500245464664088842493824610663967809556375282204236093208162113814949956499491706997206885503765108308377951619486293660150095784479244618002828954993090349462368894408036102087799058065734268469587444317662537514515034936944141796188926728188201877012279890125021526534419489740157052119525067170338377978611147265207381432704810999543887808874536936144707484509028477684948957308482252045867578971971688886570665604154432799196904467079097995446893989503061577163304736404338211411932658008354507954653257478760368315351222392760679412473386161468009665021775404561479878546062614192103976155554170068896666423771735396343345444183740309108665879339964219437171731507271974448309113648069577709190580943975815561841414020943285200932993340498630981436796511769189961094779699214675350494002713083044934846069300534115874537458921399146667683382379475516851334069044056472577163500083489690928855755090545104078421857005519882996910085962732890770681632913261369167776241506817023242835195168099365385045287952185976642416999199876406905192675392821067303613053624958106547234308647611743039125997122966689684342578684863972725109618818432884418383001821100267520898484781256343607620126895323107885784081490502547247267987874968750604572635360259393144294986631015794216307184710354401622069309468558539896153798194994299292943520419962731838117909319563144759486749334075505231448933445255291791694197851609072375186217165886205980308906400423340401456432426289822229837756679109317304541420842685312022414058751920119822579567231671940737098799356111399333704815463284851642331136832723148632343205287925093615694391709575223283203259580117281534284485904287309626218698682272479589033260267793950543057087293794975699121044201835492299007056238100286712188656021679821424765096004478111445568317657719214254084827284412225343845605083513036164371479604643583803709235389705641768078418562004657774057085443894045117633426051828050970054082751470202371040020311978482466668359773683226350819250447246908161220456293298046026274070504181594504482328329087463034371485910501281370267466522967502136222610045113630682016141296707561469553373523858143310818795538734339411630323901372416319883684004684422285104192037576823721573993685287824981373458731082979272787343152081180351153708991674023183552878059828817623420651115833881427063692416588223381494220266528891324594801472563109014087418698894305779280471288259564029421712642330687132434184627058584937169281071320813557122880640405765991934358442477150664554927116073116533509851974325917280244347885198947034606163173783191506150713134082369878941734793394720042055356971752062282798980306381942230144408571261555113342728790656399962169372693931234820595745754049978450738078146174452177781576294967487052599333223707014812053180697582568814329512289579225889567646270846410646566024474429295778265926388903009157721164421892842740851935487173267642022617532603779698402942658358244472352161449655689769484938669646308018395301407302317103530453799619406595517911958790969113570226315837932876133088629661269780264433063703704723931643636079596636964713156572182530954254860675323068496593310310827582955615809776372142252395870632282006159530309309832565600037300937122370193701875013650263278271716862068883086179850099532050535080092092266307462878843065084891019598055307814412140892585703945540715171507070742596824912031761106199697896875677817391331520365611900828924176953785527177097007455222108952603305376568512681704898827441027384323131836691040897299271555047483180134729991755697078525919225827280401305626238720047091900604931483348954576378741047235311162303002759666197255581058670471965275460327577573751378143386298786320436699598227527630533847565316107164223218463098055128088416947993388573941604157598806289526971309528117981620395920556597065064995106761769627133948435964444284913027741714901227397363286944949323411231657259860793882475157262682786585416881391969406687514512023442347876942669028385966812519336906635622371131320245507041457222640104561871794436011135186866813399669721453944990018248088804557136533259946746115956775934963886452710946021688639202782131557910927529923934467955800110457530509893536387784815649211876358104704792365189334323547966579380349350250208708616972498477789862269697336781777213672249531433445215797735230840554545002876300717323934486674728783490548377953949297286196901408855917660784901729307151625630858754956023346516580351649367236354622228021849563429730603465688809613631722998777485703773012112420190276752090829454759913927632075721379046811732436194698092833785308179322358639786009097710395672637705768500634109267074688924280938488370297054702276100353664256412712091765367044042113530153959752641104322254522671664271154200817729075920876441926256991290669372582292286606492441503446743614431104740382326786199896848340651161214871824579087209521750057535692389812804861040602540447428960818980560668004141741313975120222890728208025750102353129267986395522124554934463089799433723190413720911688067050366938498893297897811994184025767888000206375650364308542225716284711813938043164773525256738123763008582752871778512912380233742637270753095556239460639239343036752147290226090294027719535210724919998344567041403173906960485295226383603042522860882873699342144267135258167978854913212298395799940089289355190142962571564567123115383933089285717203317779831764876821279179482347534035660430905572622178829374157352855811480983312571788420133085664466889005572898945979538778169315098782552634480723463349106956937102126570581027855479853565894023182438439289908850558076195426095315557079456574166517298907687805095735323178195066351178066976707956550766648136030848231734732889972655865382216755563028058961755204256234335246334445823968302117046180294383508230454088233346279317732612179105227108003345723739888151191439407323615923275417144511040173297403135448680988545660789447816238048274471205360195410619553277398555385534756239822479113352366556179051765741197567498078544980483024731813814646373715767702884085910455723050836801095619712691982653672912087408140956780233518983153427548572489851531902314446164226591916822142222894657428912127439369353084137404212210383674040478959921936627205292270750739520220124646679225010653453975956351318919918554255858196723473993310460204218598485879937118181313575410836247266782184112890629414070782475968010107250019590765490464728831273146962074792943782895655922922888499060647210571465975537374303142832342758413801476313196490410317568666320987614676391682734738942987660952786304910823667468852983231964871800280347030392945066402124711355788374122701940280295572738233163779993488572607024125088991947781885101499220645314843017974950083029321715430017743457917588538633900816342879285856012832171676516802629513832610799925499740306407728831462443315287850600176216310705104195968272625782592155552855512855974746073135611490196445618798155837593975748520700572429701173303872370198620385471492300032792638680857510546814909671780926007973831677113381589803119267653707247198109883273426245844914351169381500896512772433308240655339106872703137809603312219719490607015329246431138630656571181074018758664509648939741812194218982752922367767734300825972668829104671556241440329434952895645116322741562019829157493757437430378046493867094744395478213759167772422034092395097863282023473558534189651343777642109110086900179223223547537535832876833290605039549063300222871710225576282719802145069184928360973477307638304250229984736851738523870548939596775271859932412004557023345667045427533564499984176111454400686269165984466123484714845145724941076708090328734967329088078567983152291599978513935818109634628802035451413501559168917734820211125845805779584606834691916533887712232427688450833094364067507822077670069442731196333537205431610162607853696574414005816324032970223454921485706115300594878788534579756428933484150507846702469239036342148722662925475496718589976445192507195421352057376712934757923647939072198308867543308291061780290856318740836930007705750397211914114226060520841177354130849233884853807608027996001709934816551389418918247999005400840334712853752574304493665280738381434726124724714771893989617328935151201308460786148638036214408486294578652776294723562722144886507915475474937242896545501303166857171064318345825720956433590860123835122479046870770466485586340355707161095324477986666044625823745948115429817538929080117196009876039262056357378704097666744830567135902293532529220866356349167015541340984647765690121733811648975002638542865016502704380405351133365362943967088029042882957103812910160511720352948130528856657618697535433104587736043609677373704573112307792192299414336001767856359994643975130503041576542418944906988026418753759916395585842883340291452392939084711304895999495738735584097765719972629130504394491515736814767251098905530753356481418353427274762597227069156129050676071930117794953557025331896352056046572136059284277863549573277200109481530508168079230914508247535021555205544129099685635764834602705787877283812043845414540754352038802441157736146086636354607427170802056631357911557926899524349524516102903455193377770859612866642601468845977307328875008594706886960536787603619313953695032989441753450724219073138836584224131957330529856296748156411445377148820243753187938436737355546049479127374642866111746963236368115775699598206952757679498118727061363462565538124564426692644872154431496758677319072631323423319236055879946454098007954368996736935568268660744970040146493366003032016249441368843801651562855122251001295834587234336314112407644434421708796114456303504516103696032879781943527968030890162114618055774018507321832050748902129573205456975629699809979630845276072280114389995477288842832498807908898723228521956171290679646469061877596389292759283114707182159696002974627751380670927991880472364604477263771786896700494354140210766615457832718916354491368963027888354514222067855508496823554626075325121030357581103110738183323385578626637374153936004862510972451963806006943335836138984801328743028710348604477480498639164111710422617593344321999131356103122363218653949802196371332189914867681093793580600967296020665868784329356796860635011104273317893786778148617685971482544538613103988199138504715855918806386281343976114897803449631325436569395625142414563435059908809872825088871962792485769985206101532116854011961503062593494580670980571888237213957960495373239160540533805383815051094709607926291190582562375731409840834024439409150321629369013572223140251008276225909073655694808725564908300247146853756439552139150357001969251364781196308735766521107816535470341299237361226124259142780693905605628474362674285914162801455036454210401584821569082224292702148424580446157049136566587103013294916306743973097544698273118781729808181758967806194673814048729210179967513117810838966833537684404128904118305090383743085195612706977463369016421998220528400843170067497597155233418292995275645979374514730352109225177460451459437043673217995160162294935738317341986988745544695327469768871885194287116083477534189024875007839965906088466291083882066869063274754205796325469045957335793557373677201376951149785541422138212802335415541734810566938882784317879582845368710030973900031168578516044814575605032053807738550100783713026545587496557489536635582516466883313123501752128687025924307575720995297365614177420020726012657851606117438393866997907125490440675104639680146916514642199881107931761792160437862421961821623499309460820348374823021124297158895022069612593027733391793138622836351102451014288890187354752585867058962660676119976904589470476674332920973599580760040910916172372756576491891430454107248695870819134817414467536153240998405868434118051144286089513248843154013638400511195287216015604609887292981040734861094302179313802910327091273142304169174535199912307081121188098299831909216276934755187865190460831233567970872916896750545514574272305796688350922266173699056567921684223959931593993682783212309231662211254742711144881261202720803759397369150870297003687826153545647423280152512165350831648615587126610577699701834861156016258546190408683861762745010168658404242114446938669451599233598167689538062443356911116562327414503439222438788888222331811222799594813613991047308494107919323956773461850283752746580989358621773446317873255384000163213976433093491960883275021116700491440862512612181277375568831001797330385754866002628508826203225613238026454363316492596961364775779543496994522302601554594559115842635817130832846125159557269726740981152514353742647448425471812523758457794573915836002179980105321675946485195697952508016123808948475944877396581290728403903785759611602652652701346717211376579408679846380359990232753395433633156713958860072148368118418096843272098884186782869863008274329134313147807639876686791997687259413093510058746385287584254356111562313999826052235188227475804395036976612961910051653254756038859179326321948597605616747594646193654386271136042488025950194982500237991984313644906139150935392651211396890778768206147172964375473749233830542110829062249798683893243137930516003813500074041269699923801564659227119558279947776845675540512416722173554524135281288740642565979576233514083453817454517568079980200559021408213958587269800733535569882420120296681474176721825507294856909153734132305339847017318421188860960069491762672962754825914662056966371550698528005504412065689790821641371887998189933589271577037649258549275423953438264818389636689376264204681242430945706001914565660743147660145073140529030465042506002693171209172859498621096568781048102513246447240026372197416393854154313355506971852214656004135234569759093728686881850486378231110082002893270327091013859972217572253250924746414342135371382906025752986346451358510919459180868638416268877505304197399262234482319613841043429667047279188893442059440025187124321646420168318133229252647804197345823605393890985575483667096370224177768897410952988800009283978541972396584104394592698489463630168070541861882335867964518142923095987004843306584875648333047940697081543770433372657220436205052577593470358489427016808892971645378069964051346783625046109962445352221566390169009140998183838250978024448639036474273408993242710617963070431359645290568179915779172388104170162313265302833458225839593472557515822747554547878828211370411723090625639530347838111757710860282982902548016082074937635204717888694668698220582927150758383126967745504588152512746611295585636087049519434968514386829642800437260407595078788781635771221394592181220691620974110414079899869505814939463251612190958575220887556679024913160186505135391092935621632444990121808464977659225355878849849858489014695785530222065114993018638452577469492115222259394281425017446894959730080851077344424328389592790791968543959557774340973116926445693711774898288125284385811595224520104820535846270801121171703798392783068847621017854321719035438950164083072234707373062875487992665373431382565137969559382676373847080429939191347755266306527214965846733426803557948157812521408781008585006088868829051551649473262173784856547051699713372511052655942614836232029400544033541963722340686626523649915709400019894082626401208357124122159008468245751342931578926298671234121181071435527938088451718172376561180172268070263145632730364326250530757177956371141371550245306172987169660425484899617322435415157390331141000763002961697356704244714371514855309507188581951835434727600966784611865782954174803513574249309560577302193835764474665294054454063434938530522788113632928022724467376483954836842859481737201725829294465549798828750791843908720286521286728724749262558347717129159384333926255458912421063055476814929472429585135496979866121281547163866566165850840591557840533423748167279315392521278054888602337875635028569333936279527758499914004235218794416112866428441502036518130095422033300435293543010780377262853094290404855451173734292045653723873688443952962035654421022414985450555680404758199176926763856261081186602286622262767298653389145321168648887908489320613838845961588622002507094661318271491584182719805597150359034641571827388085755858201569010464295610757965960737410876616778667721193884951223457044223024312011653594627090661634605730908230562713282429245588824278380959443378516120927618794752846779782718018917635709297747481858660323842723697978810940762156877456132688981168495837397101592067561761326644801958368927171409492104081446948254099346586890291313648843187429023061172333764897257485996065874226402620113970423719349425268218490057935643523397140297463793655118089693236427316580901991161929151182168877149312031132640811296991945367677420592988533694426023727406895022473868305970636936621419189942177640475591045770156739619769433012797692323003098287293325235961198576890420327365529403997446302620702663816976563576338134052866706876302813463507037026168918766737225312128365296180155981954611987706648271468583788259002694688486129647506598925485588666549559519826946000733352957995000310307745980296258411904392814803562309588118744183248754821263387422629875222456911151140501545976685528530973750182566360549788901454615472531848236922630246177350928810153224680337223137576324268234660547039610979533058494401051217161374882972880206959937483183003871906683769950339623082969137806589019232028998031510286721043317479511873878881464003847847938572036415332411480356214948341676341053276801724819693106469421265072624529449204483995113304578407725336480245339785324814376116564140709693357262731717773848189209038075225026256758162567456056190921063088663305405688093887494482360298008484395622840666735957447501258046482151776780130220985663832844840312607729298539569046338016851330496225755262363808962938403856498543976872484384864401558702923618697705372955800858109889565075125121293118850000273324875812321959468220379924899189590160020103077811348473566510152667950510491922782602579061359649811308451060335378490126680535657309549621859132116028830259614473034126059378357324311867132851520076094346407397915107368701530532781435826104046443377071913619933208948017556451969206956279404174544552271290132276020182182771977174956581387670581680214199112121252116557132792278667073621198559576034986084838710185808348149082890949930127211553598065967726016342475185896505574914208857387500691079746684423884377098025572309980318417942833768119724201087400391015974585617954713793384055707764807069098762097405336414161922701976114781883276619913887840085934603896766049579423945362265391231343683579631530982560850861772523534316552188528606326941368146400886964060923278522024165336569885303623601108934594302327432144351899415777945847331690974354424622357283906684338638664650758755223253792096117324817383874256662552621137236846735102458086706900081642566873463217959104636836396368549683564728387498612036763621214164514412393243022186984753240739187276842993509105966700858219578847962131037172883585675468158656237975284128558976101373492544395240538930041276747581621756022775143902749993179588998691834377443019747097698577144041283508806530427336390492239790983875115550256764366568606138398499446142921681510728482336859355502724050044920140909375843012413182655159045617071768639847889465822116612015651553528249754009235809754023011495240631148473043089727883615769255575489377970187203164527885591655332038650917338656689239979252179974284873849288129173958777378558603229857257107695320915153932153661325248369274139968725137990253725502300298554604745943768536930491974392727883261716217356925096911671199547445535196756542401463122110665482091550726339883679183419079241909460052699435049845901622425228259690969150233077909402125896747228074741988702625964809169499796613253070379050271227275060229325779500148262356550762058519575829423056395208688984318978593423463330954671905052410869144691984594810066428656009475488397899038193933739043317562075234584569554925128361113521519840122945911261071764736691369023372197735890102254801602195116388539306037056115810323502625217086268844873753945966695664536281998061650085469800766167239437598391828143189008749118118679470532341776477029204612282269314094046000392954127256026940737330436925892557822852169543402889170263472522251007863157509333381823299041931914538016997197245064182183082265423070351034437959372373948214445559501170025209241594306352147790267099906652655740882424528427364856447098982659765781681811630701148511881435121699022076176097911147418412086105807910261038509256233331371722559955304447403669446081453482084866775130875506682940667233387045291519187186323348878901498452064534169928469765432287121343121797378957195919681944631335536645100454401369942478672090342368570985366158782381770940900700117401063989508814112485408259204665526319985004515233300390053514024209068996730301409511095743430885338608971164668941468800880466080759402597986543683884354303486400836471468908003974388874516977586312564326149900768716806967614579807500151660988395585413848799226130706935901390381705586116489321917603477382746353010575271756264019794854660600582258048734659261102522134562602211929931337772903700462133868961699210002728441737594655436479904180422533634118255574491712145432738183272842716404628333756308908465275420210920103955737028900420702174917619605049301640741236984495069506216833812138200134930934759905650029353160785924347197710252490334197591914446705562362643670479601732012956747462748374419610244557827409852546313360680011196427251063404239577428399816033440928116390410297989289155850486520011340787545290215518295151666075838576567946752443947266693327517412228330513716449173362901761913755475467911837972364380070340883504575251409311071948124412365867115015135192645718375699950153993531201341357707046600689070330921856989431359983035797080897351892088972915114931695766024727578155281862684721600569682336829845407833963803348110802367970235709843687078964171774203669854307322098239651398230761837473340998028001807774370087815149880139997138533992921075569207850465484235096767884265528963913193455064089932258899636722015303757921828335970609415529579931139044413293061799413841175388455937251636713532330381109644263988537984126839702558949248932790171107821734814610816662760277569897302429462338365967388094855294375132608884016815630101434492195664705627180321846140959929886551052074362434462103498026531358512886415043013310765295479236403429463156649734390411881203829147673834469306084576630992758738702035473038341569975218149497987429393330636072328243712038136463039879373388333959602477763136731660357294010373881620103313304846662986436517748394651019076992735160260882967937533968249004966256023710613880031528493570090285148287143251655110792938620941843534771254143002147275229859376172355649891732844545228324081911712847904244724041317955242609086057987762624493094033634722745287111852368585443581658487797444205374916029991987685121467286333416903485795922033706505691263688472800985586677285002216693321071250521953676631687197615216683215903815474492416410370602944317440305597155660709123831914088268956902544486898344690406460467887543343161729997123512040175534138723261367595233254813718864030692317579103315114321754353357976042446898248225221095904868757506903224741270793100952715069888281339177515243693173033510175188200123576947526832713154643313334642061609147145807770625939954254777320562831330488728063424282512330117772878703337550840231693838869476753446572915083081950496111970957474473633505405906739590778454113309343356954031842720616829545144141504434144398147798722269006437093797107863911367277312261461915872326329215102517086715152226687687269701345280502993270424297000256666031963994390521321928114476456568901421481595202558313246861763801676875569159932256156122064232412102562878401713490131231058066126334644344454055709023977106427601908259518291495549541647886019030308603856774941321458245522691447960229093041137742523463437292707567572675087846968505900423916262071611686920659402542164744034965515160216701730953564481673707219482607055243389427703413520760440353703776662563182067896488554171336664294470247650186788559057631792493646401132441672750512420914794168201638446096629232709845256786181022426206656436075282201887665201059857709863825813341432851468451581872090125331359604499430530490780540926189081867942404098076994767330785605299465028409398744243960437849518133784454669423951598260492721722405296006865568979497024165575755548461021041288846898720585816690457369469294802887540082202243412719390325677110851895557281357233078891215361331399690925776315307674476578267017427257960071228550097857910855455758740549971322562821955629666149127423762188186618586833652562609667609982266613058018577704941768836197576673933508226357386966383500334168010481267784275333947040670847961818657691886883199581096752154646792911101800389622455266514943154693808533240797778387995160617226720415421043469046363079221131755409959475620988595178168319250084352156849553175440493817346709969833402646486308447903455230785475449201570124202357526511136420016118795522812962681094847659101935275946257899683929174532072952556054517986309208952336412513158297509724739238350092109058946826188726885736754258085960639302588053020746666745607506975676275811472623380286614078977640513172463301940252326679921314427505725539902815082120188709387635817180375482609703471781749416972922262841774911351550546167413061737925190502852626617918010384128573219809054339488737530476018550238766865954465503283363988367109998960468681358830094957076792112135048968535511404266333882952420450891521102218018091311651246289508698613585445913440657804441941079378230757348811943979382516412957172810286004496724700350600371878516281185879609404861491259193641875006905114027312568947142227322733645173626228313120011580182681512460173222159499094702069697697911302517455779860786712563518694249795065868887110484097135696193164293869760110021296657962641474757739570239717424896717105642706901266053212191332149982370467221293084876000119887176646965770311516863742623807190808075299193331835955172718544937375369290276631454984051280370787358699924612077439790291478532677279886725568778946095089659579440371919097551040423010815761428814968081424583512696180331471723050997776451980120920179771052193765569920085355886737534106750341327792561358821766223778340267294597381917042986485933729438119459234840154133363092111421374098483558979391157387805395322492904114092811947493049355663727312291245893135970282943610827853972086877748744860465265624509393998578960854509036330022380206142114907719161019274036236202711100385924125296105783323344985421611000579347932264373978770588025680115674323139331187194539976526558447771718801288958264350505557390733310962555338481375347034815678261999437651096977394072244129646353703285926937030369239079687450618944841768594943092756898808478852069914788776114134847950722159721222688803079621276477348224881497196199807744673081671173861151655676167824905455419613443110743931380177719020975762881139945402029471960834059434365877558037005948699655676595016854785074083216638410199942971217232966012121134975933703682417116035699518869879162415912852624382828301606103089070353381039559026983911966051902591485713351612189461155364887619837293032607447524110432470732295235099448814665248457241561606645470943222406442944545676082049263390079753347188004792500655571856331576956389605205457061017656816667864688424603958835920130851738028045094141852619611987352707130596989231680373616547872144377790379940430756132411313557858111881662438476595649119820379461129845896778557447879342836355535080658379354575741959722295727109200857179740689841448924533733620810581471276004829925045777699459226813401160012485466326293235109856008918723777441874563903710662207694246595682213743565455824386300737495539185026497566513743409388108658968430348249786330002789428010801945770885701785046091241836438868781134786468572778226262136525000956821700185826230609800905048250750031326627475422682986740082625574699852768089704474761225551109028201464271086431711525469151401627992577163456341045851012351699525605424016115299648915712893841624935421238563223844610932069525005838482290006735963511773633067578533548527395182515414916286420659805661114564183779931821715944664105350904509612095377884477171387086951003636127606161573485991938761155273022962393267133276732164729675841612353995597900104244467120893635687421982671712870552763751955828882003792593819051094076894399855380587642247396524837768391133148340735816455212644485958184789042564240456147581794406146676019707178301561799663696595621866667656871649725984453008193865368113339521465769029401578500059169021351514657243491216807270538354032542745631352426937227448297510814569509407988687955410986971905223691563471733682341800209814401262407349797860206852362426764054663299946228810846137553601744077145473676974400053218040097995459419468486266346992162166678127018330795609147294836547461772502187401160115920107061908653869820322016480869310845550984190063026542355385024912399777289070227080042133057144829562944197431377104934473973884530806878981711822858814150319165571026157751111434253653267960551655756007394126778475628497641498446047942249815296257465116439304555745516430628368074862571650677323799328547638563258067010831435891156161357510906686521744418340089981323787319506790734052778975834901933880396867296109189817431444541125737416533559726229454561335838650683707962168766215633707998420524177387323548432326185911035810746280708714345845884218528492340803750461797156322186101303746297185980623269198012728145944310548631388749428033352441607319936412003315637648359445389524027532286629368765677333255189405054855888141508730248102166748334743723592596150936733121017396448864309207576136214837675407828081448310982446165662872009109554891291769557855688800786899426546346855648651987543280507848625822604644338809876635879963755641474868894008015875806644004113453361479366884994493981844412578809447011844746616217976648060615791060032197835470316092603587116623903490909671345756412510720370953589085527855810038946957979277836633228367389814890283212584690749497117243440881869748643749425833478587182543497929707360917254382468342693309304537770515007247244494422763074006641839604158291526554866144871072085416690361068650060148534095431813333327592359937142084045203561530856967857965637395844113046566989430397431729241112526542400794550586589144707760669115043089097148337640696879733882392035732351675406673571913634497372124946729294890395972298935002839412247805533768653446257755960611675455832089884707328437550843648144902430052458080406527509061713473823115073094284684802332037158013145034670459807364649423688308505817234307389755929877707595034557598818088119781676743077810812116467132179662642036840920434604182227447822217048282532434710959015694323083481145215017400208344607119984531105510611384657442322439748484405848901678077370924939115944992026041658448666818320387609522436443625107082415402969968470244600754986191810865575507479795119849816949764516228864346446009691903253877688207518139687598532700345230560758887526393789325581610716346562319650801906785109116121034332349040757684474876770853973990638881921554035727016618469272874490359758049113521748545125557959677417725646371601222181971228420055715892409535150501075526200111180885980753589383373227943896974582695828485945239819320555511194155611946622848058024499384765379259886760717279603697296613967672118682997564842973812631773054071456306215960152338645259715733621631326242838606478519673764285804741478217528728333803688621487444054172061049813799747944545003103632876476470211902296267416565772606573085543294304136749350236346703212578819076005179327487241512016217203342466302776245227636126978752878109092303324028353563203376879987269467415151892197157058257713040195733766502650600103623090231788282762968416140516441617054712799755595540561405522881327541186445056838791923178478852273929523629855973688920278088830170932382178315596995199153771940156543160812764835499465591691682268285722021983528213734748398348341646514854176411573394328565979590697876737062200369158181423413025050257930196418832930813020794550356864855234801989255000560230042748345570241074172243802552343078213354041982158794226418369488374583151135905285974325427134774380463061525907218663174027331579105991184125239281392515374453932294082439878399541391666584724385945432843100660411071722928052949818152128576222049846392438815428764017077273005626998917147910197885047326361001951878269302171330798475191244319229513301452851130543916626784482925145636669152963023910009066088955582269672561431552101204779401414193122057502036158314365142758482657157044295460616277862334796459239484103422717985672958144900586903668499005281842158478411385112389013877024921171347391986873389926000084958747954446714580186313985229046593253018724710112550437268689455793276774843685136583538690608526968288927319118818133732063686895892941456702295552776619217841528860123856926357689089536596897975383324058993147554884911554889115543748641717375367613497507260121343802198681825211598598221924177134656771675517011163964431316815960580040874268561718630765195443000421543964681630319875735125587874080138048190350462528853606132405534516467419381347833469022832321642313906224179145930346226524058657600436590456223644384213597863766905267565471927758935768214731210740119627107589717186951958547660853664079872655713972865935178736698733178537738531568429659477274371957991806895095051337308793465206020621360124430256050219319684100028606146448001501156039291596236115321915389509158690181476986134018864985743383177074478650849561812011311894877839430570035894964852337237322993145020957236323669403028458359782906787309961977739713334708377255423425071569931453453834038015956916091327293604541970473289917559974365350065635220752654068134849946848405824414409313882197903066954441892210400909434881249676135961720598725602741970805392932747780366913957409940430475035948053085787357551662800155769320572428807417569669898339207514924352091675940680018673574129553788512481849868302075835261300746498178059846835698670006463795688850440651028805291237797936702933137948958972251892672644032967871069969193913514074525669718177444300535781550727628678420147391987927849101979253659775650659237994034491343268572476363879436257506342733841433775724946976853354970730471531268730397591886591592836545711053019060762351533033646021487471359840433027639981536646325117967372833128309525185590648261483266850769019183289920487489409988247167336253900439504757162495945192118333551670435076625094993210598979346135969793882809678744273497233869025315703417983911041489823404199315257557986533568407904516422169692010395768043516326588433323690819054971197585209900195390907976606807518544762260029491239474497457253678563000571919627553311561398458411696820180400311848685748371942726470303152641300032237228290005856088790761504632733045820044010990969500861436843655984720611380832039876039890674488315634833172227907617579087919903322641365233669713535516095899340851887121944778465872695986787222824419554067174281962552883474480270572008909725109504142097619462497384371871758294087517375305132508429995746453958726450938240081520575990869933252874593185052060412924659614893876246022095483711893909265736103855126034961243223043175975893627551498592359903629460483545005543726558411286917787048291115858287130299476451634567877114996665147311081899880434828888942497890907180931853836406268941790974084922142771161513363937633905020266662040096555992338911691637274561114620208372678385285591380866833719521551644139440550901920175537481895788986978254452788515702623476950196781555964410898096940667006196316307451168266545941916376325739957212301631030581461187928283759462930856915246681052691141249028149644379968272025929611534585741609391668697803691816359664752917312348725808229932706915499507714156291617796031846044368984351400039490608076895787790288141353549791443664869491029777885330446300325293694060722567112283129322587553925988777853932809256163125673523851021966168822149222006824971528691003457188036925676152459766581365919616169487827320088251607523193433750725372602249416103047262799496176175241277101831948544408726681173746781515610901047439024785569439326951291936741313019026547596032953879754645402840517575353844219454593756082021630621996226466301310646499058819976115258896433440485345498549192813207835793709681178952048980353256688964944011607613313660794664049750588913165720213499346805155356531038598397203240825588374362772350571106236042257964801317965377163103996945231177281014475616139271175389823404374273461849033119188293591912526556417585791804883041406786079930411228114809741879736543283060898015642511411320606304466572489319069584667807997384585964881962384276416227884015568005133972177930759821686272346392245016088060162366598964616986368807870909448868331976110941804479115659022184657292823038438654566552987659635210503856540945997736217945843983387462402322106095166640131798735328247073031884160353801353218519070400889259858149501518941457926302401735286664641261669845494563284523564243873309003461951256569067679608826756788053729059187455896625498211976366599775273586637730881729457459846154266627891006339375435667907053878746052019310929671443206295441083606501271923122793534219308877691781363108493738621396984734767347412903928907818339974317968520310358721228180201365110317296095498007796604383259810045261306317834952568168412321738554002892059748189997765960231190386020311183925435563494125023213586436075990880735907579522672578544992907636192823267374965611570134293095118207400306169428164747739135449968845569477729033806011840592803929840414053156997343021518316031697159683469038500645961154125972263416467478379403834862817413781239312655637662028789236452644285045941892415702096913185458434012638734395957723728126990503899654394586803223358797995200872247196439634645495892986631599978671206818560601753991561743067854853980440882838331299943160858951751114442654923893379688457392860221476076077852028389636351606249689260302762782231837041400039560598226899151623917860326616733977171606799821462134220079946043827917581517423707949655834209486686504239586045876524862564393937242323650429088560263637791370020381328383376564859104083629887571492675718478522241882880745146600128519563923548152516878129626226864729295884113692878846811377021783694312431514391688079619582611545694192839467393629367124195327645720908803950754371655305425051210511942538015304898919034509737016943413142792589717496982481297590660798789271136363082940098102676900228940617514756630299717433197122346018263807372347591240196348880620955115169772185563477914400483754696591462008590095219224284326225467385096277179396390599526727060146376407369803240377633234458712093525018338966669652254612978349958536840869747020530130937255347016021313167203527147212780951812939033884387638111718518862707033449142207923851680566687338740286973828726029280553696577931621972342318924099387594826221956774952485391134370165979979993217632066379755370948089170802391448721898489420556939094824772982744889603500216484289902039030646064027272159387157113875638515871240610890493815750274810499349495657545096479073105791785740002382629855261299378107198060996945140988561681833126848088057521767990184745102310922606082588590311198021566252805918948166609148206934726725084331005605430044463641908320543597468742759450920894579985125811144390124972562864770673150045887182084762390370712030126698846453088186140573463412686712235886583219438760758494360562028325719115586541622673243466381586600797162109315044151064360052096079018378502577283851990536730577030005052376699965533436611021232356231599543668445938271286629093807835728705791686768972636264202450622199379026724612108340555984437713292125901042210822088591052345379217973443768701787985338084607653785220253974812392932566252262804791329080415091515951119353812997606481743063764526943021508933974638194308396591527221136777904540259866087642386827790824709127242260126661420328626031930604898848740281912529786143485710625165836326848010631303516168613793872326712632959999989301276864034892546488212309366332638190104090638066408027444203127070582474711179178394144992954850773035005353731264872709037728851212681905696133780143886745306364109023579621845978802896965240982626416713864364111519435661848393619173512253381311877718210023363964358921091547830716910183062437427699285584708622635844948964127757027202123261376465892668807029778869514281611808424225688004953683528274047383447414199714440366336767889384625279537837229576673709102250513017055606046764629704616898441490262068170445246745782837936785030932444855374065956156704184216097148967477798362857034655051436047636535590669187261729558723022209830545269108581314170441262568202577056357153992106987855090080346294845075896873548672243236429469710396950183175348852836273297567070349378688903926299476282381181818883139087256780999406887861745544720879047271576338097271046478266639418641108106530051597919847077874995296653190631969832830634784805848687684940772974668901266571550946373533040051516504423607637269145305202439048594846513925161204924925309928822750812600539522295912624748328718232413445276625349243508036531806992726343854159751288346854398005006605201100576907862797533233236484755981185729550421150277370012321536059233307818276592657673660790101222856291255355831916249704260433950475476567888471118741644343998745014366494559867114834167011273878627728522878637914133880613352034119618154810914287586631794374967653547484086840373416034482817743521250672342732001539910882520251172832663289263143418735147271059989669558473909004834563904825246241379041893940097527621778494128699713845540220326046221491433596276185853405232872568580031696932084419997216975494527386440324430691458228669981147052661523723192285710336837921681088132894689004454307246272808057701383405158250547526513466858815635952060856924971093179766830196233946423787240953424509599143946034170526139118001116892532770086115964947483691590703144954445379888622817981756910765888006334478365726539865968409719168898260254234327355230677620159962736203521217527887607456937105478091334083774999608927330487578513462437367991067387229407571611045811148883699462245452687721399064519966713429208438722313259615182862634110915360812200921490306973766065739444838305347554448992596225811881491854779698375212729819229177190928884985270443396662826173781812729219868032447880881743398085629021858395856280420553695945151010046468741957904542941186377149075883072551080185638961328753211996325589940363228257354996024007095306353991080031865987072935088487121452823360084762428106701048762010100222469810400829033585817217077013080298729034451671995450716037829760804075599731339235814808284225846342657694484942504462434994637976667875325582025831167498908553224585187125897962391060562135408663984303186338508876100756931114507723487728026936509633018386813858270617265950798677355945238266479230456027990132653032682381807164499307365932539896394061619586645434933793145381536261923180857743423654137516659375187757985964272769012319678967447156316440242012614400213351444236868702202575641700960325985938341076200596475892768860857935548888285615298816852047439891757988249748987739321212596817432427005576972186092736899138736556284231474155435797166716566339814998801733766113504042343636813725538384682035728213103242643714740008045772569997951583280864868356246726995092090089483364946395675070542887206320268277514604361928127350426609480751647309693949156038558754061867324074703691657958246681448957602118271590011013546513020619044694002824344122990839088676094522690700916732741380889225862709445702097426756222208687627983666357720760764577924567567122118652429001953595152148868824411674864644773321828002145922189170259666503305269554926228546376900944148288832475311416088614142618908269944236100230569344752681827659583332023053926782770263006725996248750154596589033047047287913632760871023834181513397406996085013354469361380468205083198008417853456017406662358247866506570983099259254940389067829548370346892761209359775126611732346737359408951469294364990660777219774101305371593937675776732376628680567031691274423639977731918223664444869095982155168250244720386618652010302102092046199734687487273809605989718814616304406040573785542126505031368386631827630060363231386364260748439735727020031610597700029628828201419987755114293040729489223912176789616629468851586715303563561731156244847797041045347663524504808572860889019809282725864546959853614709947624351890111142637799309401906262780324676713641288076597260807407905665714510877097521992970282374556376110208051154346200782999128482865909910115151619065309652402606601536170688848044611086303122286706885144515614544761667275483011510756639626545359205279595701155089843352070476094276671213956969136251730035679359423793791020195909569016133717421030961412998852363285395783529178437754247104118150825578929088845784367418979442275712033389984171751295666459266092960666658607157240203365403819596845163487948655061917084562584419303873330644241723947712415637435212631620712306468881400271909764293635997152195693087421110349999639656159450322265111741666384441736500355854022675127846802696477207113130659278986607885584760414862171189797901449450344284184118890700025303249372181321068051706107112426661828504727932041477493187994139560350339675688237104895696305048601856712071288056458656190253264114233048492825550813268761853910560706448733550271615990626630923269440187993705953222245957730634120591451583691567129146096747745899997392324150988881755579659827469415783167948714160446526153638343356994587410372906911713609332800355058454428894455269963825892311333493806670200556984983579892106494844866943612667832581834638212770139256658319750487398987499989939327833551132846168299437503130792471465838291438391574538952508356188403410647011568307520161348112922987836089599137999918017006798983580868680902769257536451693525687387679223466203564023634655380821691602271878059017745835667723904800569157318871465173487614400512440772817424198612852629426057674012623728111452131253828951907217058585848822864687456000491752461890724046652526971747677914451347270141370160251000169348047835724475600830048072254866047277934392448132085557007730957827396952063217534809038449517730999569104361809467990414034468544274751155256560765146691532814002777123777508930693936421679258527037706891841661403650053336966353012504703760731188327294099110150689460925048880180647681670607793003929510369965310044620149621649957925264176766936525359932216922437553939739436561581501658792068597541455663269610423556345977657669880633773027166340209293937528527585123702499017514375813651509909104451587566879335206341871610075405630709146346775136548161910412110399281339885297404072617992093684058686254072198010524949966018481072728109568022076888010256899486565846541603066986104439642907740693425789678214333637620735245850072522292956905998737626172733897819539923282676218549978936123273873129836061937680822966798326098361236457851996040285214316050110927756353864107696635743120588659010505891378836797167895614208103312244463929794194835324818929132170831046104380440100065714837887667457681390211180778838589899732657985132279352053195079381018329973442938546572790831551767866957823843063288261167886780478289474946256047326608278226546180228107285652731507790027727859123556481437234510048169881388291507196225265330722361684469904356841098516328392474013237561896666286915933906723706900245933679086164093220075567301595946310206614259495294424495646216170880592296458624624372261873510927140069470400548013703677508951453632918870873152634522754942521005890425367360301662625624582007028215714060351967008880651935518531234272278413182309401084105708147333019156939804976196959554010981335288256927307439259890102176050072616341486313573475165366055484326376093412433123051413809218022625386998635646557799760621155799753303426993651748652794562539797105784701209642641304211911853847203195492334771730503192402264581675354078430556151504719328609162147739989890386708308934988544520410713055583297932952221185925325519766397253924949417571047382948902482030727517837946065739677924041507452220913026621238307196180384323254499295252285392907895996203470105081079053214163818230940130828445221583072512384604754079289197363899549105830560852556542623671795190066203017131035156897915886840075619414513052165038107100498664396377354629207932761190918851070002420924965433890082056369928769676812409634255917352187593802361155142701431121128311091989809833369460547220220604885362339106480479497571826971836936646734978158616367285463684856390037781548217978284562787849889669739170411472297377390115911872960142688609314539056364275419860077112520189232094890626341318265390618253999638850093655635588412251823901260025350787103657237897350854499716056018660877780286626928827613667389705047081146103628402278468352275672791583622612289222444032153938988447177946814421524032293306588974322415837398662746584898937543974106851432501620472755895900512604859663364158723396666855212974325413112121993868808272399489584861026804535651140877420650278439040453016737281452267645806612293284901262638984404311406075991608837194074776970390628180062563975869538326207162036237879210231639166250203186482779995760548057356290277741869370700817964528169081009014825999116558501487190768117510772817578210295877943009058223671077440067728581798720700485517902161060131556976869748268270568182865746717200021295702290482962937410906848221860478994753823488663464079365465114617310411773886080185082205608269745930284739552736000042525799631303069876012140458405297559852621459121437963638724495334492003594258653541811437794050413508794038792177503946176755055964688837349425217604050679733036289774008362710805753989123104936356281665632398226078955887965515182218595476463491047402938151554731543228256760896523738853939594585105429767235409210758965350004301089033122257292710434415551520702519366966203241002924288105391414425622768419303031650679184820621550699615155004251109065412556784128266933822549786719192759812079130772172759270792489388287251293542114715484989524855893811206824010957328524812735683728958226115589928071157971838373995329401751237255992532545610429599883071918264351747547115554506228865458575570493569513995855388091624423908310364645435214915054677528275275370702710730458080277138775337828234548699353184742795326519752570064663152296295080778390538065862407013255755717917295982489416270373912150023238953283124702579231784514381134344384543487996351704775868807016847719808306698408115974935677217162183695784236250084962966684626669701187311047314288028909032867030869459897059961192116176968722250103366464602847070632721225167644886647892191618279037518218443056406350184959606585752383846613217035782494028926533776373182692021773864946675908408634530924215873020074795199484640034711051622146594980054054441403092487216295508605428067731449647802289266210099975685416678764961719359647845536892150473579541345156022780495377580391080667915567604503544345974840355649925611510592117942383243344437011850859116045543444199857546042018400912100683550487985861830381194425962542330526270190514281983861316725999033652200781665902915445966264567584184450623377604103429493956836428669988333081559780361664853613059326796876163069940102652031956150299748737746916886544440932589213710777726510714570162258290093922778125872570530581554383763709345530059334389222724392356682855859272828694493119796109280996429155176781099288552335932163860745089491035686489649661976950545931816609223328535153791558431750423551438675121171322519302722371924297404071066223593400031263702754717929442493479128357199437667373840698788726549499788760076735899535989205467106128695065424859999533739002282726927848431118216687718883194106061904126578070724555020732081121169746627411267348419176912596704055284998050593792124279638205181465215826058427951525224815516402894637609774570655467756494888884372788663477768001248512611681477048007643374385449592778027748132513971782968425782960965374517504308879340331598697149713202351903460928904690674503785482733154845448648146075603719752935225591314021746753646234995429678492650841112197490825079079667983426899189332395520163950271745627034073019002568270541375961803065610481715513919519355819487456508088985980538725142801205462102321434990131449865693009374763782003115304060086474677716524596838172884690375124998523916665694756980468463832915361676761957427134198841697513054831315359564822535065563364408688144655667733518448108204586482252449154200857496277540784298095326412363626285501267818196291176045884657965227873899363320466597297848130388782151989473768309293744648300378286187237910930263117895415426721288313992690804613020040511920331005705882584151692155819078057517618866929049513503249450084886023393977896976311248726716030838820931870189733359625813686048624429984162450488793247371228632162620725072541642657801768330867801266810871457293833308374290037571718082048923729909645553452127158244528718607542595864132063051658482634938097798437053515807133142050200656009958901932006227572196543592864626962288443882788795000167577011912526470247217215186578165999377919212812393576724191284924210050616109944735586478940426947658802610655808972563972768741817091373952748333332081419207942780937201290248558704711446328667554662532123235399930796943684708628564767798266181000737990429004356552086588232117613505815042108469514442812505079125594940865710929616791266465617701624033198989737202407442119664030442477372122310896021180511531205858810221239910291213836086468722676399625927530650775792139229343214684230288100870993934963440778828954855715366336905415426530706891187822055847450767441485001566712864659601673262539616298793602933321136791418470801572726319954084491241298837217821927143262358701493259919315349076533474861301847216492603359808500118398845397404308123801193041652193830637503690711348080874999148295180295983300821707523929785272577720047080321442918156065933277220400599143522828655011999338237982111414371526436728786925211925913196693265269354720172625211705295061828807066366319645353303423091917297847022273465761075615412718686236909763473149745387048185218482432244020982720980862624654143381311181714900546853990137623484405856599028645121466679729702571722526292983766364090084866435668343364634807011290744101992823457587342846435024240462919428239419164152981047558861231346399748195981810300130582996092053652476513883522559259656820939971160454001289697707541869043486642889527504229393612918151765094344710177928353460518856771390013457596468827544051249064259761343773295268648332134450672687972482383626455657634367949105770312901200486553565581969138520653746541008659291991451756281482132021297819925949904243473967773992327756132294766635805918025608523264330369287725885520282272985690232548425480353377126979995067061502255741593244271372875415929951941333350560666307186193429932026505527831726452376411352333363898666186999703818692579863998070813998824218438728885309892832837735330904120604062859904232023581921866843534852178629036203454560837920850138051904915690776037301938548937194839955983608534305545294869193627634344856586803833014742604893815544313260099433445939695814948073385213185033328914302755352958685569331526784330093579839996729773934047481181907646061875367674935070460316525666233476291715139117263835024836421658543125432056205773457828877002870713794056377037168003861529050113335349525879221480800701673742372054720159934691519854053146197014590875386667688850031933036979424306413249353559768091460749705388298387844989897169903035396373206013681180301876438661591107023803917053355578275628373621513733676429608037177619165902190656018737107854115371360608950433339320472672762213721323886685563234748056026382129156125709855770670313197444061673377840549980292063496385373598059503828931447995195033252155714920644990264870443255956265701865948658078372054488425408736300132708651573100670906344092061746742322189586634478421293964026461884424026501106359698148474566871931680630446777380732266102072549641305821868135286113560483633066639932913637854092164476702990214512257848651872492346988991316844212350637497206126012111984667260559593180702388601311768656559536194042158369685910472956534082353845647557147037748733761567834684956611106153688124665543695584905336719340455612995271233450120611427947947703394402786040582833103887535992559622580384847635459804655878440306413996380712894492082267152005098594601451001573315134906556392124327854909269057801791433805549972730857748413980397335237793895268793485465628005354279717992961692378915684493844024170340678712833927030401611288042495081572234018519633147017066638602031980809496655770138924842279266174150149392584165271019775287564866764202483539133482087796573898935129250866110772491224848820026490083779194150430847745780901142579324782522672058119579645011238963770091882540860282767759164872395346193700256431434684416106685088615769830453443877201558784955236373635729817663825569619486846439492905399120679022695673764886309184407837457315687155118720431236871661241925492820205169865442909951777581135941452002205632670011308986962070018907748062207635600733959726323267715872361845501574720498802668111394539152174398290174129420330726441761501883836151874404039080829685675176931015043281661753669971930370580276869253720332778554377838794188445003867659580362292321391290198671208141201994459762865642197516095676322197394871171679685397157098876594544495553488254918291365400170501946856850619381299182919856751935244084532914898695659288088726327077937951447360939114983937472319239633822925813425946950728839886840726845036433839520715544342854605438464348684300790948318977732415792225602078861941335635333187113752934289318793901188898088839149102149327174784384292963246332775119379169692535017488711528533392245503833693433916491773921255473122296016753906954301506983752530143382980968093518023273887256234142735532085677475384333499113912175047676116631304736266890136269279019950864498166356603307051325068062156891372174095634880618949734848688399800876817153622422985592078401184685038038223034624664609465336394145147912582390341113772253736794893185147817051899918295158205513913283963290235037219165924977299877381579046300506934339156257750203007044707677362955967492819444227450450728599748552046360210844463102143034303022932218439343943451676147755159834363040184376171598158904554709166615230771258717309996218005441398391254527617512535337214816088486701150794476654178104182723662546960177406636146837271848359703102900619794783015173910048184380212478326021351865183676694662117027448762757424736276914156302567953913021676322367094272755932459522460148956910405444360022555826028138016866286287777877510354962386375650086415685963781627975430634336011835440821564047894622318237520303822722016819088642490484214785046220386207615185645688948431832675062304262344863749503935017529100187555014303323390126790949993353000424373893370846009535419328944533094371170457317049945667187735378996624405158975221045533352053031647251466671684225953250072579416105737144042990980422111997230575122987635396859885431819366868377264593297173781787590453088822491558346013711165024763070427078460759965107373773990606474307839751801880068680708184672656814624789000077325996097044744767185495934555784076870174796359859306780033659899211486064661422688399410081563442842496821997427672693773106929722920334791237989934274282009821169663972017556112968749129036786761643675913660326666126614791926232505065292390270293103475225480665610129524454100526046138249802919810568290036070427059560171677384791645078540873479282953861502944301484759709343501224770978829288975014027182854745986076542538487704639109777743101871001086334057479141312183896589197175511736342408725372112193341507762540912589738873043111795830489415664467769929258421942358545929872090073755339667633974351084038518981231015545112447094982626241144891770336749317194178435251179210343967298731386122801954527349204103710169358354223271960184617033005995377734071543834603318632314887965441603139678283986092412783087107002630064711226804296864223496353358084596825053376680907942116930320940134089341434837922968425651351544008375904936716542708099212849216165223453571660165340235951063003369240218835204214956101088095028323755972046359701508673395362005331143255617398598660775667657649982775856233523398434317247190046857692692743371041154960310481654373507992534036808287675029601738148164959496155563664670676494658548128261694310763660136616714887549774701220558064618897469302205503701450180142829867975241281429084942301418633980374515859853296237748994055936854852545224144248475419846683156025770017032230756277317463629925955182382887803533226637623577796368611931496281620702742991604463596863450139300620075481222575972306845799636645395946016363339044274074468642176101570187349655002898653491824776938718262911816625674764746103269980206900117292168111980264672084835971437106421779308562969711560236653245434827947057325299763233211859484299754980777916016274952168119100376001905111133118178886522420659587275418112795966759973786003480751579848058755574432549678477260951153843717435831746590942447472725328792697674387203486566440496414635408287583370215188730663307303726945326351542530603570684154113875109460299359923087834734303619194047045984928979547549668207357650472742401938096041029025228198936706403171371786580106734026748587266657562304911511981887880412599715793891013557235397069286582497959350174700188006491435914580074983204089721690864914592900909603109468174075136470034121800822693919880841644936594850932677135818362787355097682522649520471561543180381583006204321094934386615194346786109317042165568922557523360310856730495197049440891471119398914692163758680139177965328128830415874755543924943878406215337894521387531488852211056590911862608208837567835809777914678074424597335494273975779113568209095726129603086134329908692578418976219485909615569343060371422959360750557632783998073335430481189958580461788115526398976070074645036456326124186603639413314509620851163364825669945289104292795587349329544044892457513406346112900134321316563669326157215386178577430458666061090591354931987760782472300697447863537107412880622121512074435153023012461452640036158984276011306140114242150560154152274023466607592956384125290634168437829795318700187988146906671509070925700636824789646300026671358508916539884425468004853272028851745362269413096606919557634274298771391102559368277322770466162460603100019192452483224626654346190603993733596358371080222180412419516615976432861917411432703053831347489157966726375003911540829275194977911167568343808432407450997579089455484861520938349782746016984068208626399643345025101799437726939356117713799386770766718779521510903866538771488531067624812626017748920252119972917850736721738063689081214377344867422857646454836968993646658054347454645686850296925310158390218547831644848945114157162650922960317331820807460441054045802816035311058157993752941590165801967437579847545403052747873013328019115999865747699281384931093776842378538414679805865035223881291320902577021872157651956879827822151617969399384352870621059304726537755587712509019498544581251859311196187653626104017511173809114376099469199449547197096701620823786361607867729324255474106145487221659592441844810816065182179550830852113541440830508136092365531900526392514443623070390507963506580741517746029296285398727705134790922237098067078285140264915818342626916951667067538530237877405684661628942047928391172787734073922295320960959350866569183612742849206058555122520139315148055804816211848224042150655843674998626459239535329976615433904174762985991133993981883464041022062178805541268590336975439603011915456182952355446682256845119336994676941862569703466944002177640784937414262960883064901741298045104703096697479648957864784543231481892152781443690494334194287351974495085107938072535901056539392744791115805640307691803659521043949115812202681087773830166588524992808470863769528219442240020125677635213071608427187066682750149587499319906644118327154601212267972957183638449939884581982820415523116981956269207533000229805482131533675295182346923268154290681101270331008207993007375484052630743902597285755215933551362693048663633328099364918556042166182832610629586641906846540519729841921803274462150651595393828895813652305997920476673191973360325342436994718474817810772980049316537646677749313685975768980636082061621867517289966079736081131901684331147444055545149480754387794559283782674617148904161155286996477672553326626890974994855387926504715824749434496459454039966251675215596790094062295864649617715128303556230265525201431131026272995520508322386654725075629017624179021371965598188716612362673621736870788417944354938749972259474801770337770986882561603731861038544744892393700571811091549348659157473729303193648665303570101539846687099918444144661383119244023578962190724938439233291845320016589461163347725737666148986055247877745294137073423260182462121554703777005545955269628423560479488830972007201916997446554868592297744281482942537440288939768455158216412567193985329267748121395921133463655296358674739900663446463817806758269409107073922781117981580778023093947262685091516370224824860770897071915501452175145689739676538790395969393023939146401543945302559811606390577271045232106331552667266362436926835781542477203574824866831373346371260600350729470956366157232482938091533645625221190258216017225657255778387871232472519278184890732137049463411024145227594256497503086219945126294342016447892394991719901455775271027885774686490401903973349169443080585028809070155965648505413181883491265941238725099633237523318289239986993087858455538983068342781142062732134996991230282170860491327027469748613013601792179171168645858129979351413600845997048881206196364986509988776271942071849495486897182046793457221667213621162529913784922239819241632775791099220253319567452598193236281281630820787747149478170663801184819326222129117771810869529119382695686011966074871200512412503478362917936621840815289446664646123102866309443511700743776078857155147944964526994209820044553670129871976147083823031267425820759653066495428753197963439971300996382882027239061388388132631497742269308096663194251157175546698991113233421999003292499602219368438269399949063344365061742242513328124647521763947026045410965693130106065218344105687377273742210839689923658378577355345734789796602870049841737482088917004621156345497760803608675620402865818063205486505846469842375699318741972389099160059787728016051606182518930704758528790339770795627519124277713029799329910538155534418647656813898164732805445134882692395043897283548846216096247340846766095201236059935099630903010053076887829422869414304063578180124276792540371971398168611146509346440302750860106172161778617516251265374411427741479748449985926605861878274026108290945813956452890587461114672706743349613620816824747327325015913278370393573213327622607652560040009065223888201468962578800782442965343591499869435439841579350380013042579956494438863897973946259704762672521885315697592116620011784405031403956603861446712088821953563356204203741989208009852762073110930879659259691299640209471671086686045246628295157325206097784869919585080072761466773530503453734363421274951779314937447674466028305012915429128836513569926984207298159322605996137006326808760091045014747341769631353879632335645215161645647771394906708671113214314286512952931487721405620929116141696004504213476967632115137533259592592859590278376543500738509698828483229716498584761088886515760008867526756930482221819105850506473755400100427415832517817136190203615644889864370404035135128198983889359419152484727318507833851785489088456951644373436272721860589891225266278153782222302926955927296902257947696394498715700107981331829315601219279755937007011414394659631658302917789461892882600210948394231022613252120826623890197510756731926314886491312693256689060800796683872964191802746681451905379866303058647372849815069847544536382882618356362428533816132617882231778162761053970184030562537176874814787673590701546384562086717642523926579951695339389979496757292142618157476058085891650422354340628570174708594749140314991584990396678398761608922179193387544692667064282851114627757284973575630415031224205230087225751696200188444639979643027033547090580766610996377586989001867972421222844293290880797797856342334385546715165029626648504364484687004525829626242487569124382731105962085953852000666060422168176948848093496515418286461661933516358859018986254906960076799719107873022705449987981119681674319324860397281594754476400732519446582462457609758588348031762771805758891635153680621348650169253343009101594897813672516157981454586871449729781242112759968111812280736078369691724866461722765480040609349808222819297042453631868908963643488159892226347274027382316999365420529631960976448164400045688656345940146737805703844636199338375222645076645996859854345433031817497564414887291948891257429248691712687384164071385656539007421581794075818681517505342441411583581237505929802328286131034516170991119943689844911056555433756919990478328031383836923557633342530549986332007545650355432113291666201329900226593022219941746595162326302589836639788415054482278687325371829030971487572107078340682082187754272468509135375695271589346444208648829881030682182137184858933133310762022883301556541792748119583389920217943178348193041175923131248634853095969862055509814228038272181937199628587845661998226516339998704792203066035494904217752385349204980239131068134404312099482497146650880197606758623603548836019288881426001204962711927776154948738576770954958192935344646825209563026107615010477863352047193626013085481505409287039991982759896399458927686806561457814645993253187749407924484933355832749151615698063411070265340140801117381259717972122867807397339477286484862310078905027471251530174041805199914763678076439100942202128065589621933888008365504156436133343189128358084056609529680037460916366286436786847593988146870356527794148232306324029537941718704903626671922031200354544192780308097947120102952403857159200145307996781701374016597936013854229816389435619038220393031891144412124334734122844583692750706611077542588949814820982659381459571856216497774521765669668167667887612979377555315167775278282960501699024628179113531707941492406090025511565101313471765593066375373409483836020224033383491834753857953744428299993720494893672012199223281460126467682709551795236807365785953222446066754813452427877900591676106625192951168026102346780591515281641834141433259422610496406612097584835057134920265971285858746823557581688756907474305888688338693890261790620227591930935730588775082576139175811908296392289878342227017171729967009638550172671720282543534639356498895321935221540603164096470025293388323019687621827696217187758794055293447044569935147720714167598678811683795528619424617213571776618015105914303412644766992245788961741772157561650855144385837102991388523247999927590565871081869823357791525424451175978710826370954371999270245554370801004289566043419147068718652599220774214252205776897990449161914014760909728053519410917208504089275903226315795079138969378632971596828556858837379787012726746333428160940235089652484711574611688496436442123202517111437489276570536029267068411397371381375543062598739329754347355911662178705670616082227243275083030695615901379742735884945908955143101022076177606875721932997285557343519312264748282682932559349459483857813554517431660972508088433915732154897926549511407647609584843372697721059875223837501566509234506996422523839874034848523401677896750669468122080771564581753389485346973921714049641957010336413008798206748481736544847618149873394880324850747443275132989933534510209018071247980579576217030124423170069976552380626590038729904639647369927547494633679702107935507191216655590040853253488856773458322956344040118220713410626695267959401134446479728182561393427663781173115158171663774347011108691774594771908967121385521424492434920772201410189842810607980462869327431754655159396240438934935383165136442508784348915066479540438584674784776556372502867958428830297768484111326524068955686159100716459608589534414617698465990829849513303799709644985955358316119870755057082383333898986894563104912702939674536771535810449129638149354663096698048923697041816027938606100180635257096697824532227826699688733641636429614987558483574140426231570011880411183017275970424744308589230300969117574782805004855632526058557645086762954067109673663358580160795469454660314726491577749535997236552526868043058846393516451703596073454842792055451611221619518424116224773383138098738371006421845473364952778764308254213398758530244792300553097069582599328229692556421387519920785850197371067546995392572167866083845271983959811552535267882517017030543858687371530185768169999292787970681594912745707290313430364560844476679021542103947159323010782114181841786637435522683239759156871694548021638827872018826512737961498509335079874869874579846170612211268176834012274061212407686964815854421577212006388365315568653634364801508737835168388123209440337692961933131133580545699821314542498676035474180979521510847439020266579594920053592890863557632791395241738904438997361409441756947320552770623778486888281443453579858003623519895717718970884020939006546429858847312122241178329795270080223787333929155263263387708536566813441645029516077747429200684353014461293095030843678516566271061706634332542190473849651358762424946081837468266032566514148776367500734052207404189338835722121834143425524283890193652942326894290527199895776361158005615725972192860773332079517692485276292399605355178801763073329459970555071734428851199029459401071300974747469778913916664439202094820912346064986533953166288275814069013095454352347000752099160385841133041372589137589842942514100166481104388272108218633983514677884029453805908691953897831013111123292598424707583139396033654008417455388732308777594650568136010897829712359746894582414267410545767390398922277990215497273989638710548005487091069777067194645418598187262733216167048254772119983788771322950960907317853613958416529175476089527796053698351827304619321192618992894587276007844323364269567454848777531813490037902239485931529771015234990750943287747618798741315865934996995040748391831412817905662227144268673476232311778397095051340081678332079126572247270575684267637412259463237643466004575663409963703932593344250600471603000632627897283678936808163548705299543813226686596657131827080025520240615200164869455776526747100278366553547747075432343709040092539716915784915608313484184430072586866245101116966764768780325594475675895914266434469585266626231450974744279016858253985389084949295774779492674317640442850875986510081824027125918787847697698799066245363790739545399219213872094897305700013766663805584020272838925900706615771807461844313581796739058307339054434022676362566289725723782032170354327326610568447660623037623343447580942279533532517097021725187574684533372048743532880343461192161946442112929919016395151564616052803521316171531503324460486032484855179404935032889476109085313889649397014343515435360789737144889290140933961561427716604200326631268685533858757651424758644290002160007832113794317666938818619488161634868934071626175660544655626453356287622236023172088871419462077710662794199553194548268012106707963117230581877425303916468145702619464520460365078420386632516769340330032823692353460444801499191254694060645193956217383188278689315176591069483153626481478433147492913610898581634339092139944862487808169073902318416806602107674321611115896567971285962256316901177129373083032771054786339675518786083166297585743422243569567850567719120938385754445398567600621404360850856650140904827744923877466477438513057130646148939655599604634199196574100154187515943467009880551804898600012379751014174537527943693390286977664548113494663317334415146992881238452988116818857836727954855252513736719272775799799082190494866632347313929569182079103192087107018844858415008517813457524590577476481415974027064695667576198584745691987570432054631676603837041450611282471826458650249847290563248538936762993601042874443725564025612212673874720871476611759122746227419210679382848491196236822111222734003035183189598886590308101085771098245509971042412807229097376717159957360210693473254142844970924125331274387781297096781897291405117434538487146979571830547605021535032138772918804099073828045848849937633984309158277760963796974522722637813825387073729530571702773531206154312670551723404634347178821963713062343798402513418664761433771083756338064815198657546551462576532258964083165358327690953833884700996020800266320307342851943138380444416769784403494286097286741452711508338817471162341918609829016527013315856673548765856149930380962015046045108166422262849093944023306252155994416732418515807862637915715697357996523858622225969421084759087308833853846423402639512884617231857226704286467514187833691025093568451095945696566158004626849972245761504067664123797285916169539494504611513419925992297881085415626367854435591765512280013471175226010821490026595738976458620841196271344061238656188552176867044558263374244304264143728398743368598346745478762396039330189109198047336833921382969929158738488645451646991281425127622632899440291984772594982872535154570484529211515416089140868468785661423975740069039410118596490887567607454132778779693131811575837277153059303218242275603110999600113286639592563351728683640956247083388691148255252480296218581088591972023332523143195605161331284364730745993422176767961774503284189356799534013015800978247279596719313357697574215127396050910370505106667881046218422788334185941718194079668361056457263981273989186352439811757803760536326300861375440094589601066101246785878937937209500407284544008967962941387658059355074548592347045982474654731932061848529795243799021026410992543821160926980462520569582696946448056437012979041908154429391044150692448766890082108165471385803005927547404629910997897212937851708695396018402382183492586326522834882184095514567616495371357156845219306359822853929509689476127552623592637647646701386965306375901368469454335535786041171722995310686721780645177575554512217930692977142076748612665280179679761299067979599238119391453263006520495119313371219268499870515666465739210464833280372460335041628640865586671302943299045586045895929742762479052090616170963617918370611730251341362900411504779074238756428563481490839619370439621110942911472752864244267917642890209432440926109330400315209964708189925602024951521950565672947815556714082611526079074150656108663175012413107588910727427936696904735318816418454574446844116959286394037992029051465486855234818350880556861086838962800827116413816385341814372486540345506597805845585753391651801195732321119919636950970089220022111075843441134796812380940283855197103846083744329728843673273513475047548190756986919847926390033670756604971075931112437576826305281631878290594339476414822564571872186436589680786239673661224669277423647683080916995961415781879808127218448931475215095773592622595532048899517542641440289983341929483482778453902255852432717077564573891491864457916693293190231975576076265706292297845373942783596946063973786812188996644685329306146290578965810142013771110452367725667300747861728460509531589963186709679042202232373904493949580958689309961034780629289322033424482165302597514906856709729810552200889335378368608859299071961685545750677458593793744356941693659770967722118623334633909858272518354170469759836969419602421004447736775429027198749466244306191245081295890607750568109457108693278398615914920764311366601225116152666784502890401197843784548818027496046137050538563667654320431527455596633172532846824263426202001797593452391200617646680272459440770143914662974098569097834373345691595411113500965595704103214456996850317375503224601886979088273728470884866474292228647558784566169854939809139757974774351803618850516178833433971219356601665062303280499677333950365897428074524786828359535338491893851829838860307597606681383118136749178771301917069914820688704858757305829823017080399112025271335358823321499084122766049797540124865410327958450922849134689529487124046147739111656736024657553220387170000114035266208412554306456044748541390168815660238349228281063516808978033386153830856027687714640968874627470792861899665633622653875889531669758264043753733202578791570059039516917628226411329622304054792013527372746021401424305528322407482520870255775996673138913648075658393004005169925552180555172666760832924031446311288506314902989416464491736095490171936599505736263802991629502790632370073570830664810909097353765393772408004280889803397841583285536142683756447912761672156611912301735570846044916972630229478522325517580428937009553496492860791000896469357004567685564333042059338381880389508979832273029365243328704778359324191659900751449425469822237052133802105417383103760302818198893915916688199133720877917013519717185216769725916400657524187375698858032165791845589478511021839488042213919171952357329564407633618413992788817879452441122623509413434844282953567748112361607789983480906230368531503779406350050939179327702705585979015323221173385033892690487628225563272888572959128303353675987789876880074151035144076794831761528847203265334800597212620982076795249895354648976127451588045672159235948378382454556636634069875660188698948008362319734520850445400892513279276298376202944821557287189594046996185018469963377227615520809157291140327069474129449822757578148031061580454284110294753197763031887354959921209231808253695547047840471407094057871891904679402109834644337275135768535259581575573055379962017111251823434030223902196174279940422916882428255405464294612602140285069270687562218551432261106275170407269166687686974966265241985113494906474069102665177698641426772762498126727197446183299281501524268832785523410581342235970145465505155843379986079970335306089180645060468922206938864341156310967373761167006810940353038627618679167931729188344333103541410460901253556836040735925899545480808147148751769749560865387180401023566658877497281153039004242275180317071420868840803584708976655831624098855768046005022709817127793382960585878459335869990859772459026714079766674143422223670462552415899213303499774989308447532217726255993417933785555554210515744655049516187882000752108735124302160326940844144550984787266740810394189263804559092230280925211960834036065370558531479000446286106978772963024710584048796668587471646307042571873149404384506641863381209205420532213161116782812314252958820508727250479405866389538155791044019182625372727110532635488655890382979804635222014008608214658111190715301033945179603246088476239749784165423583194683679851512862622171289381396154268961211927461381511351478002769777562307325787749953666838081469000768089208731068138963328071273598853917863679562868185288890874500187448833962013695892347960441015792318938862462205959793390193854896153529952091203706969569798108436206524241360733858663538474035703682039135870630545345742212422113017429906300502985447902114083113381313011436970165996415378037887420490902055954697599337299510486695104135043461658141868116225067447814351704341244392815285725521773828224157691049403538355217412703683532145879614310206921114808224360493120880086806728136131994254396169444601414563062228539391812420089964172578739736577788799785884735081273539201419796838259195626829664973713258635597425317540205903977483739538533572675206862317017541566644572179272808587394700745292840492680817351459680365724360806194612300231125553971192999876097082107408736919917089220371399017140341937467570670792307709350483262381248498318175197205001081298177683813801036095730540030827248107754108899830001225595020359467969907180565810898653818135853822217423931375976299022083143879112798583191269511549998428394532446176508394279014916452028658024839223842377061480158047162702095488489182912079221817608088775912379835357498330956102201035402114875035613619804753951216194998427725287334916786855687186529750291873940547371621813893076895772069275881111955935468675865258689707600323756067809390413270786482617484736911186325963419592888286824251892396108349748705525088085127143445132834464552941118446499763834593113936433352879842885645500048047671887380597429940548545761467544756719325532305934378522533612144660301336257952839422341587470191139010304288049675937251450578602315309705153128181982446026177586270564258134700380580547812094255373672169239064725607445760062305780578141359859969288191884647653760457263590596544200122908433278307885262731493346218491262930624497566047377189289835801928951858267450544425077696850877558408375097873764281564226940466905505665286260675198766340871628580629037396038854425453277623086484337787289102685157346453485268081316303948956601473849492374648423774380306097996812057041823867726361663292686833836001534541780524746508393474477659830731132108298214164191919038489917114228443659911195908854290314988705639105158542749393849682532529197664602525244185813786773809080251468010239047634511130449354449382450712816569036886604814066520432750117506148987016500844492020619604635074524763774885343744600673197174329933076283123330269199884818558766599074191261257013478906870907470147357942312055812170929490772684053536083515253207232473626015503209402160169346581765303420299408237358849407987240490119638911214077592027675152415890740858575586788261226671078230883809214755417987163861257130732350460546606464773305477977629084488690889426051013040379394166404538968063880282010445161982711037209721032699408070099482097614507636166870250164197364316304446150132027309783068137373080766286063619280406394151524108155720879831640928929195028144032872217163995092044136220412211060891605174537532639960604458091299472630307204421072971799249566285586331025512264640418897330207510719179949034900257054318166642827825007426174663987877903225654463531762275601787877331545106562049920226406234641612152658098400980062796413201208982545125242154059602014550498440809328916712366439207250557824739228961235091376943756471797229568425359456846414545801514480444408110576219300343949168473788530498949297301729249502494372108782193090187528136703429612977796644360095035069727183697547072092388779418825103475653350525813579606597475333479464632634728552791746418197166050833568918115324605751951256089157326234788183588402934021693925761581012077623264849207420722768890458729804284025181948595718628517232150445441323577620378388108593906782642800063132676689774813290512184760393958625209220329183386917655807307883898735746474087749928469050761394456434577048953709601582503446399635988720989101962875849367849405644675640765237287922335929554033891937503419216073301478142193800304008357971519288580061516940137213610719399709499021875555750554873406187660348080530372990532199674188946744594224020463698018273072803450652163420823096367251063586676144292435652882041816028046092203493478016100234954083725101572947358062194757702798913789757438316752456670237710708605732464126966787409613614169645809485974472131689205654211552785202227586270841445749683015594920554454524907710508402548839634546341072529121259372764691503154465420081870355963750061284480749810239012896234281173915609843022520336553626500905112976838153446277045959012137283556548814484862870509377468526331373087658081004367708298032999991387501998181949402419458991153184591678043739665941503513791036958691370241498502286832203723380718216284224208119537161174032939249124718507740037452309507950588126064567347838262033971316787749261894216134013770929052074754146257985326124807185757569061370870344798875938513200521716306459573997943125376932591435203959542317222296896834654563542213312089378868368233896949200717627743652045181941518640763645763345332347754761912812815030510939026023599326748374491151864700682176408695286021947998055073891146518937669401131316906055551775510197428391266840522132896965533338904580438491354877822283454815766104677367970768132734545892990634611120896749585579894122721965728322364707506084005375686431790542210855332350116621769545803220883100145114277949295142384299380679140707114389280149847137258472520331451535505065254529724744282564758770019705102269445472988204047148443702187341000092548278460379491488603142858118942493848399078203957446525398054816024018332425702584749540068569946586727497097433732254957039089349854971249952116790041904092066912284880340171673806536764545756070365464776553324367571919388879971715546257705888271383389459070290119780618415175142295403608900771109891778079240170133497933379631020587115339904621830730148997688782929287952745214164747917444755571223179400819372888533211020442646768106184086595892494116564147329248420708766406357837651348040901441500988525591654377949461569483924467182263511559374992245321953121735760658188000171865432771328575012020680801969175835790734449055446042180997277763872551104749670934198379601371266515980687362731129409055010124305244314106264295855131277943193605764569082424932636339959454829659660950687180508322852211149093208167484295549968204749049822099962878703172806837147864811176026073095915025155535547055505151540006308545433379223961096740641581430320625280690644449649632926538477913714239754454061992123987211290172835027598810085955529615828672122811698469154558486148208311919892504659785785899395339225874703639988811940994905393320670823496541945635800425272672384057167440886883895831190727092309400448465915857396544246182756735384696020650445099856899180165182356373599060794196188602504250103623797164438883457030262425461316462369030960387199165584171718115950921711253243015862365167911148872106858794103860146061675386594513788040604861749235323391924143411071687663406916399729765987501838826799648082983204656574596812820728584557336908829995841932040031935256160802595203975115550792042507930363926286704185295121986019898883603272403883718428078473127380986558008137161697903174285675533727906748872993821743515051554360194378614368907319581604719461630259324956751183095863002619333598421353374924665369352317783523886039465902934032606436145920592645296980234963338527782091680599877318647178639011850966741440397099224207262724116713865173046794599246187779517453661384935422671862044217171329315911241494158682574478690809702185116285843965261200256372235858578235752634642477499121465894973932665110472485004948150282233855964389614054529861542443780223284160098896037510567052882972326176205702376187021463744055906253967632186467670483848242733301265845036185551886252968627798122652260347008016529317824646794958570451597640361618378826481149659764018977973739934270570221866941354959437671496960998688639801157449767793387100875606032136144540203748257654218938178819937908589487783225337155710497803042563529553786376860042266724644299054522934674209977429231956898109329112856821022673331644019388774426927532197239122389795612298581601502256291626178638895822794065017475433175225662157039020653967586803486295579687261936873096797320757435238508894498298520040827624768149641042830970127847624824160514558748997997407501661104381877283285155766846804249432507166856765421058907957553669058353362649967088597401631711821711859326721358382061820816254141143783372340849587155159272314439301538896767855701530270830287534111313799483026839651052912036286340260410163951902439175707120597316474717646186614748003011764673230995591135565075548579774964608934137557553001638750737831291784198475644177664318222586178032767617206575064462650269797494627641880559379812520980348022253047962364552861868010220941149586004845896590869251692594922641326907357943610447842986460627254615251151167665901570266269385544749471663072417075660312774417765266662616401395033867823778009686518526092396382080086285470901007964970505510455160695019082903962353163806151038150294458126275609487638566697747398643845353550137154681504782949143974183572791964012680856096408824146510424431939260243049458425512116221596912605877697450285996027562001832009512978191173912549569965018240538305647513319633433313691110873808051936364389210060192867426558279854485335100545345388633157227421027076679544268891239117766825589496416251029161372815069636295310291713074555742331984638772185673585432682545497303992013631251014887665633479533138886203364105510321381671467269891687599763745354153289855294723580094980603714459807358783202281731073894060974643920045977314162170496271417848004535427243669956536315835450269121839188336071315623031159419349936183570262195340272851107136387100216005468659317889595693415295569012612913855897151096294455232385375490684387664731712232168671616853551332364359203510190124105706792268118850623981722721146700465431402948641081514927387050935975129313552357628787357589741807690242365902736971893901977144746238172536963278092456302606626800100257971457404604457893127333325700717033431781167467951519190797768068038584706059641156523694370161711393387056896004894739936548972827078802697286262068016623097042512814117740890771192255520803635420505083853922692231486541194129675145941234408722635520357698997361295419104457186570961821680512478882591570391368012217318603439828984797463509647432797740489088933857335709133020746688161270536902329594927478498282774211061729692511560150214975445395863515738470886080366159037333899711537035699427339255951598689929601374242287998177822309000174651614596916004960055748886934534960855011771439957865687089188773773584912832024226058127340453380109424290658726404254278397093541014106329364019776011105356572298868925914928453944514366665715838868064355998280026761569996575977919640639337461359246878721626049400976878907578470964770698130508985900807547170114483898589901912671279919191758286470245574114548517869565047040272377061152951048055125256964134173224661742914247651003961418688811018554667611126234855127295398237232242261530442241575947428964051504946523816496758191158123150608551570895432344997176760427084041791412871979499104581166184175371715181060055061516573778879901138563877520830829693755008795117558209498746871241247552716275176555861662735095526483497411751410286083078604503794378613998394970099603796081990170430842240155809026947410896856110436159214580800519008563047948048272143266702934533438407579545268021959987681632898501778145827008072106110258240849721262344004884720072538630407274119697060956938553117103949272007405217733689684088920968854576445171286634469916685345023608303814023863375692253361011837809354263439645465872586340313436391035661841794280278744189577138641234144323796158053840230949042576880498191424074065766218318243405858619824285257894915795533312427610708268368988582892633085714236469212924898296337435997850557697599313693351573006179884368409772957235177913679688859307264511788183009269277886831368260719031788686839435066964887146090368522324255462482762868175059249523238296730472528269137316392241779445579355095980284375920519325457760821450914973117693518425629701360975944427310419669620170092982436480975754952649602458609616644821345006356853762323806879994474772227955857825100277930121443599587057139701970935677191792759142776258396642318204081784432688154898863283297079605175550293658532455011438782523388973376779692647636448134955822564304257979276658589204991682920599181819171320066722277942356269246386855097605962765723746358888373760296076925850698305681741062758242097525861353297805216951060164788256090338278764284065715845307836283950079227721581468174934687937184114165417853295936588642581559025046757007210363403456140724955703916826821023740709030286191007560155193183629324114049771753521694346767785607800624519448153735181968719101327148648919898358763137653809263036346915384967469854313122902257852247292627599510079219831311966642239123815523175371148303158380883377476654128020101863280088982896851305318617003829760869822395406637634966502869225986755229921461441954303658301188797313676891046076743322494822969260475818792840000388586597547417052526971474097155148941578570227547777355326368208942690740084150863314204158741957189253471835591056561961524778838793921960202739227694721549087208754175063324886669244157310527280105330829264273880416024111201746154309361709188434577631747107666587040336144971760417608643645649712242025717103833556153422937233373120498803300050959553943934376655355259824855687851500411699073786869105121693706102538936602427052317793180822390465327795718286547205081044073562121944732141186906156313664142333657500190517326917219160596491930128148457436460931161755132028208301690216373454142258806805250510740179499531605453939176124889915380951476152833503420565713825330324389777492488716113627592171981625726332095970557158108973914062009166721971557800847049378858373720071920548707757455987978877194626852106277190169404539605450969018613682841540112723152923600570684448181586074687022607825104465357492986919597241471145205767672367707357460232616428999772041492293105875107771283589784964257068453706890911024885213064377190497764525990783636695070113986181384681420011200868886735506063287964660652978759860575775676695733744504054915784101912941937948287032199862655588864312054002010686275948284560095707515386615109425544561942008108213860097283303850352374058111529394165220189340398032199511523909929099727802137461309117406312966081343507509014618587562800130114427092729134084183014185813947886830398425651665896687192401692368212665975760914760018795891586977466776358019945226800127977078065528829285213075722304634121496546704053061258217606444781846416219767578803011266830678381348522367564351890249042231682500939512269375930594223870836979952998906056882187090123771372511315698042732484240250146801804584292242493863708858032732347781622850450248965759571529712101568167703430871307044438050652797240663349030720931295302059150945678094779680707708850399307167444459613270763684387228608948824309930477117259432015959436885670063661212464394868009513212110265988831546816158779475173722253451599070676528615282512509016207673277409376489960208501950195167437986055490357729657022605170698481669984437116738715413595256626882330641829457663093341116915420623993024292088862809162872687066977886311700059998215930408158757287373070082845608485769006822074629001404523144006100395862405639354729284151515374566089173105196911172577284687350905334916402043245700311701587439646560653686922180915361573859781732287059244745816075974604650270499937072487742146653981859698546861459878569727233387269996479271725597785624728276738870077087681776223501487951198013954667457882330838672089726701717536616041212469057365046803029460603366131395481419904398686316215804643879985851559160285614938839815557907266314872518834509718221985583946356354730957285407153509350037355220966634537792406703372071651372744602370768209798831362474209918249646638383226950557687223769085516349722955718932038212424090153801665349420336408556277794294517274291143405972552371520533562272501694265403435812852014763110357996694673708281502659057082511859276791566397622900364580145813966627596322621158570842015219046304992437349685445978933507059911024496060534612155680159773786206778506144018795804162827155623680406595359161038414860209618146732283723371980312915221739561159433543583826360791833856414487530845786806301778278029783745832575636467667866068862165318218359323773071853501029446678253927273925224322263364789216195832153813465532961618075581109654842230603907648695424447095540383458697726985679624598583300572029583032040650419231048621852698924442333912074224607200188312928496641954989929981245960750679238671680582283343487462326141096927387320806429981229952014328340567659920736487124909471570592052623642572092082010676976797331563195271390351085952736025528393382134913447834956856587891327174435273931266483171297657414302867401416000982005418097062505972037245148391292057384515857913530693912713942654412176791571409324003306027390905819878320068377856744605427986514507329546197034047358237915709915567253411809695691632424160454259124137020412456777753101362063873185226942187683277410192400835071617826332210278593290984940309641310879429588837739353733618493056162308194468380760485821934247737066100965851107910318494513688746940377480919212603395333207774399166567237215670931978995036444721349264320339606050897239903959825106088175973828635756775680838848993310009583364270980713317889041256796763356307953220718349678073624009234647643487430138288198922830371631895526448050530896977351749945499283895681212651342835326689946110319787876464759216455114364572470888488468014431316492018446087753246203712756992301122204366935562712829754005284170793813499699356582408893444114061465003521260887615386822401298419686395968219148879401352280447482156371314045244177707011974948048073891789049307049879363150517630677502785193235473010789558559067972418250133989027105230075526114579131952800378628170851753074465777813821024073960817561187896402842745865277075342480621128016474356032897832410317422295846411273231706555586719108521571226094874516713813401739411333010360158978970504367261587136298836399431670370273432793901776853355733156346905472658484671272275837292781523926478930048059170700531315832942501471522783748656990226375661811851286255465627717147171197953114021297787482347103554803117497281810589696414769407740606316748134131561424231819027079689273134498098603943158806500235604881286863399426099916272089409319740922110251757238937593871262950949634304922422759316656392802382863217416114775691996013765648100181834881650047621887796712093626077265343907281108561649942370592704650849201903293453147864844123084275903445065463361452457711612056250968339655575253932361529671053964377119591784424566621275839184543884667205110303572922884586470499005080884165007575652570192098873324173002083736040219445829340904044128052445153678621978355675505395522735552696096002707245000607027550508975347475992438944435754636449331983279507753569640160713717828566841227067001653207286685138177698831029736030172484003847557750081716630970691956213786367573076770984966673963186278908298033920040715682575148131787870642193174903952322845239365187206769034838985992955298705749976431339219262099953138484129618205349179571217855862834351087915500525920972445691310783200991529840723306064110711522692192709195969785861808978961890452838188015999570166923970670733913038000715464971312408785994247248222636002427805444336146623789100428671361626658260364592207948325913097118897263314412637218807645126476689892014918812030504373609218559476161560888776175931789195293329423786783744068190864353960219897272436321038253558150747255305554768990819108475378350594184680515760387073255676035757222046841050644822729437947497343599874832712881766797167931292865140346700743508429774084616426874566471478041174985559585831890295904486002241599554810545643991314276355337552444935194106363544998232500861852448305991198730086355071613608658476354524679869724933908365538976027416641965802577249018031989503767343185831905762690624280340683738865125461455262481435116911773255662527192261058030048719992490718662376698591436734409728514083457130181454574576759268533757734614184842304530639481829397658713007772910704206809306480156076075688803077493481764218400050585938728701706058648856523670533473743583368602619619519444498645137810239262281965155509398621237807830005647206330822410397674206499319340225832869673869965649276029215795140790723166946729880888784569276069283756724304704933823410703529396576339874581572737462229672465796732973590565130932962704208591228004142446652293430501662272051109262149685892389766210364255162192010565250080860177064774004839660301124640730710759332066545447551493854544449150757002497956419783664637925451038404978144613113375477122621694233783363707436365030860932908688293101276245611031285994083756988904307688784866640915308730735636736135798459771007119329555437868335589058296061338192965972355333667703474386283420553164320738670181307644587063579243766837460492069381434245750732365973982843436952018105612381607764573183816255414760047787341379860463641278144957579590420492391421100727979278680917068255120893677023159799212774268783284205559082759584001992430881674134639626258260675620971575454394296751105067678916533130796948394594343371283227489377535021792052827072744597699945753723531189822079939474711737988004088759927856821163338979790536566334511858674741674070780479275911630839746292851845801459685139449321071420237875855870598663863642157587228242117063281730281234054108663597363645249260213387241977078704161977178643894389084114100448943456398636705795252957973957500929106238162403510800772107206025518370293104506259199770972873404281639521694114279186231764811706013264747720219433472320848647266248350966752201843463600622631732675499702184060901407242920636335032109669397561456156966158447928905782311921816451673281350950079823141558732578075717038685251002220227314461513619840797686857725990976563886445720261903974884500086369155721255297291658340399051531019919453860577367030865095880813428226667048594969113443977957191624023561768889454534949837282054387474232961718231398096273755417593005269647452138796085711826066385873843343279650106343818047138842938656418957885058773018313764469481388866606995594798676193740767214630012628863037194464769674493401354936142684548233745790306576386921360700215494200771107895119433801777375696918388202494790700218939335026996565296792792535794812352763510356077082320767477493647496316049507770789906546955390907944002786208173651797016030887174227084540358091849791403710173940281571002695728130665860483407551606441867762935627141544952809275192096566573951559384210823472250651830033417745556280593547726253057220854697528116687269207359494387662749699624022849087928248607417349636490816725146894492499629489717694770025809877860682404798790773923358650872621810930329272404886720145467142075827892445087475408401077107789071106333469855624760279637298243669957096120942466134423424295916977829858169575579832724012354750111919812121587506060835137334103714619201331238047400808883292068615743902938083980820704455151123632029238620182269576117299057463175892440944884348897827266377905676238204917471329066032037229367750290103553260408012698625898345963159237167537051477192203887166923527793233931047675084753129337615491381192308078852439063262536702046856659085872363807822440278063117956384051992301580609989283975792372943638639851069206814885097847380796607261379343189724235410783088176481153166795321784100973243619937063871269038696003456268161111029989898625333629230493520299292016498809120451901529677077686804900927634225062591146545259069392560391604663549840705585103149798165570954999871013173410817128201535958313108686957116073418920190238940256443823520654351259373201203744475643416291485619308356817272966588133459704122183524037484526299736737535838673641394261471576133457093875246589470944743814627794274514811257998940310892619186385580903105939023549164306925090823797925705605167906348873133949918859747251256653018916086992834600525000291217051335686334908499093098634062917352513464972971590003542211281495230070899686846950418982624662698639679738942201021164597201346473352438337004496673567466437085389690550074514109092893214619300866649414627310194709472416627559863096852388180345983193778412834836639942497591877279476901385658187806681738979846567059814271230768571148139864466045140042696860906126597600801217869277700881409349811234630031789221200275376391877323106859443470407601067246806749361633562741329867774255975776807293332498022965858727368816465739593876778721737441542009987462455674315420677003017417123369206958603253070698402692867451089490560700461141254126888760965910091696146744536168535252120388226842304338990818445276963855378444240901488262292988242661188005981043767070847851734037179834134138159193209501296328598567593664952242654505955299577428420162042550375769589249287210923741094713290885574857321168647765617170089310827357363728147459970481527428241189500410058879484220727148907653385132437134468005057930122067081274523862414743750815409275030010351443740330284297943999790236384805168799677926395630218812573687223097390107499323107096844055197741296655829770317288574813248170612799225998204249588060540079408162989100103197441664689933723557516761410228949356057451777788808016920087627245427248466779968861078088969659074734230622069370003232672006509130235032371546084528783045822135737146036847640095218929669894426253171293812052407752823216492415052371342938418738717360802795928869742179620425018201568238897054722389221046008002199461923139323099431288878988644839670110560205326849993909648909141652719524277159596139418280686091133258735753158247840288078895697656512953673761743624683786675696699874346164932246984692939221866031248332267698041802266205935439737298647151140426743226035769544737886695468684112665022753202451377679003108020523239929591497916359036896525413168881388293115233977768007957534573133900214363464331971954153331136425266610529086044637578820471862124235253925940591577739024750542643251955396589407331002485532203178713420170407185474055164974611032609651468769646363581859527421447987708506960587230221389347965105733730725194666364567017885259339920357147986726912251251433529941518361496631501240438777972683506823825342596272483405450247809703151199418639274414655309110664082858652793353078309506718745433770089336112216797556395037121352323326310188271939690085799801481893023376279153864581580135988752245885888429755195173202026847273372759185461501811525890834785749111888981275404762356744031604975347563721577833710588423881848510450404179274287734009822061187399300321672091750717802772910212116249219395675867785586097361209790060662962687064971174675042262572252940356735668267233306720721729451897967062460303992370455787999923475531807073292310731129249756532356343870219237835534387889723779017995573377100135595231595530030445783092746379974234974763316015248687116209312902566409774825302886660419058398744426563846097675581861649335234746481699573029154968748940970371800131444549174187214485848151967432836976763725104444604094951005372373851604565295632762275199229504904599907915267574773423135253834498639585862659210453521615388835557158121841515498379496873469846822355856823409483808374358596520667702646092114474820673377114731253385755354495675452701037793572112591130249276316216225429212761346346560429860130952920430066656457308939989784398182481979298081352475534964065745536692882862596516545446863630864633140817642313514501071569917452028696388357175295119572057702244606201269762723303271601334957664060672910573421754080871470117099143100803191497454215089291860909902968389681940172268403888084457225779396705886889075609332269512324138306240581719569338149682943858496822323238145391150965787575529936982200772949663699068192415634911793118729481179512585188311143002867865710956121239590506546083887460439735332857091494008370482926009347179532494496072257380543054601582548959965691623917722230252670093032200546613533147065587163383192221005774769008675841550037158350142940260477327786150517760381455038530492171278296707580202780515155337365511147726683816024086092708162317099180911113016812477699741506355578886469919053363171424005145687465371303129930609025433030337740002312950980733386119131105940771385272943834330055831381474163191957740867199843970468153406904807227553935844190328187526657636523555573454966544262788873811459998376471198999978334964924729522924424649395442300416392908483132068547335947566888833129853728311695251555036173068952628408269882658429755173236242445871752856469202313751786688047276496783853775671823787559004216081359654358329795631898278799135414957404076931632207320127748182839690850143257014059841617501010498360242398429724079426781937671131764608797659522746651464292548547563953873831638270871232140834019793575599979824095422670246192816748021414059254595821302422101473700712068185710090428368600660525238171253784569593946437454434201948667358603417103476976139934758097568952916609313612421204963524162319251280354486237664472820866102480311553770471454370766745479070983780735603747266353202835021475440672054414646507205184016605158837925231675806816198195596948182207143056390967569562132645853488233652651985458190131347682512954280299997528976306069610257104539309347439314488727007950653263969806182757147430656674108739680235190495042424583398021855648158930256739800332056963654896016446684169349029205390728770084457522779525078262679327046819292089391065907383017893650918154306358646754530462663340600721188028195268554719800978542138703888376566976954513780913710274961350066071464591092827773877692972442945973788016939809785169324844445932821118599082446028232864576229959765827638332525287843910168842639151127417604685491774144574034510746723859808375135897444312657970624598956513522786747378419375037521777881496332701166858153016561320190563849359524478403778819155679008823213490681148795791963377179829309104458276857086187553680719135106470224017605838418877504655745571863790651755254085635115750433385101905045614586055174687669314618687410919801730517040992596447746277811554309651612564833450521759728312217130727494924255423649632037301531464429274772435032769888223508291939701472678193554492623160694989915585108730830123829968694320138735732864621960460390992569311147698055758068290452127482751117235906956957354078185306443726544986285596419998891564642939309301598835371783151439747843159169289623562400634933138604728037092499062811266163537020815618477840397620305685352668817643219381244384826833174080830548424438355184217574926466992374128836607900961863373978813172510654401063833944491144662426299776595593389939949969515030464688642649504072893386706826519432701144733643546795319373378561139449120119812071366997776073323932629917165758439883296754585016100087232757983039667242400606602381774209706957908649122060838325058585566461567351014364224680756022730862711996235680412610487628853710753084834197432001935333923422106278873654901539958428099285611589935503449002552558779203511886658372737626011900823013517234027608426405358520729521100202511077515621812876275186401729430038959756023754553174869645134603690275566826379998208368928975579547906712487740016811929853577542987126567370775470332342443930610001310860905429464825336268949125631599541866097831228678679051744491061462881280498790839950782752130935930678453328071753678037143059315201829528413997445948315801676888648712836666701778400613861853161909242776172801333602883826351838727862129106620122126041251635070486729565281096941839390093097345193812969854819331203222803634783072955773373094215002616183431376531155044939570045085166253189678931852423627528370111096737868975440401069808771126207702252260909451571456915781103245542607940965031061896635526715287774361799344458025291824123156491360555893834231724505274147865198292566036146612968624310707503751098093276680036245848688156941474914702888625489752400541897398894711893675761866253505487150411268436939612652770381551926108383838668251519780238368079289377845134729138016950744130514534173701827791080229153380922099913439478718260845227210191587449100073261407691140100491459190181427441564660215298308991496604161369659304588612427570154904369096735073560530210943713073899938286002078406726921228359307354168084764762424274162771223412036815713431563707121099252443768740332835792834629460917788411604360393829072820087889311264975325094302591966878801262581227716241963775151012163362987292001068152652291013180230313958830527635957918695086875208454319921338219554806016364948764197711593512572527994877798952260968255679816371896547843852178782520018127400346790945812671655034239092391613347447587700295483297886124468660385596104052532126603046044078498779950145587545077418670201114788871144206516124785117485769665343181984837310060831399405500946384356156876404991797413271273485743537565173403945631532254991281801686578915929423069256256779708514227254194524262301467785062787318940024502816956274551265479100200082498333465449915255093578578208206971422078442127601369532058892113870671437164625714657031316976321881942082781726232217593335267430676615858367276067776080973077724854458799790674820637374548274788087598080402748827043688109630841737154194796715573347654562211877929917254807355558319502622460076247917786338496529135379998081005633775706071665985943960782841859334113947383778505516845353747583870403218462091854758545530864210366291090563680593929740066739849714316624850597682007184723258428956791151492063068833104454398645540905216812271083028510303270208925560041785175005901432010176141009879311950889325554461352524624114591186974853058409565406764179918723536406862774670906945239820954193594900177897789527092316516239616202317346283792826231561060849982253086478958029954560717847297194039443370297575202255632399552789299879154367730780414776730802497439072522370091572503177667444606211748851245004667326784970515250993736301937638996730454232988373923679635212244496653863302490282791490208133901199917668317657493845664684125200696143943490183451779378810370598426859116830853201749005035162387827669649206193683953457689766151056786550101510990722447185275227071116871843817009489942998521895221189803150516499996450405276435546188617653223745370835401414195428478027066414119218720397292561409056218104645645308487907219789394586800889403453114830934052258673639572435213405663622595935012203783519958708760623130887064087173830600146954354084182057029643265669144911457728174275296384046171328631844376398079760292180166546542147094362855325004790057765544175087157119833860189576983724494958394819003984482490762329409955080973149743099965779153772021740666052788060760920751118445777400239851441734598412314386092170634397201979918889288703503828489609623302232450267103464301807454526306708249583656627697703200255118357913170919561358125697665037673435631288422623542382361553723213877735785141308546148612237911145946641993958733269655107401441175689373946836327519745610942213757775031415165934754626553015462298598250520446957693097179973932082955856217970440958256915890377547012841387414926138877479812601531287127466118164331154018946910645201580156894049043366432447122212920896300065772963371147762602318073002614062717885686223344694495101211827004988033149133068139557269683193090546849492864201640343527485648295511577088352283633055245164926322592323197473170614228861599927051916425179811477375156378313814878247178037559534209855046458078343440305957867798242689727614701933781088947517334023066686336947883606183765004732181962778424963140982446384287862599475809978954147840017551263378979548740460411494462268870742260404258354781927060387795686392711161836948605018188939250847986264614187731570606778033755814329401600871549940634511070039415989512871405698118104921271298480035914020308543889090233396554039625334825991456916119478952146478951923045118408768931892361001870090550469750029671478916337288021277857782987364791030928282723633748213915430023388408252609819403816490989831629731746918671943118355846595831544371073655050643504068591694325308818502628765991374043838238541376708234313770276113022899518295778280753939637254435641230196584818903235480411641733023765090517098820437500880518523354165259475237589766844078579777545610868935350134831592647939094383326751375339337393713629643136851092115395339998731737686174643272001212019123775345979760763092081217858873632481559518011477056043099654009293905772283711373296763574685681881237070447796907755360623343764428269445129664598651081876331876654725973638923997098991894652561227865729457044957101792692965357600368368801914741974677380117330216887892962823274656379592551115064624140647795051394497776449878370762186906622363208536104490223308965242446718701902524746880203993891730631873193155938172002634089605060436557242890625796946033144825911501974070656466635024534153179612288340651544448933630295446787939071652604261981223299193725659812101813472416637446389228196127021186932637230237848115370841259649160098635693715675601155566281263746046751707624462652913008261184160909427712993239573745976474145464650331713544819926356086482510991799448867468287453600515235170964053642512546480924816628117324559504350836008377357611142050989088458264632087671667380776591438388664240926755432875320285366810954335171030738275807514919217831306507937902752833491586701576016534945125127922709385126931614504849443354216306902297419092468510945009418972321840404882975213935002445295743938226943525385571579687012871162182598511434055506696296383968213783347045510143036087363051586930758674627551475488541991198788858254578562769885064106624625270074397981310623285326477036615967504639481934270855426972005493163746320588966099424113082663423650816616336714936185912520709531858447197519816382244903523963228174027805414324189393304652556942464993246634263777930472667071220944057335743714710704544894430365974895599049393483380152926623098307946465786900560765229196670291159942493913438388201549596731053785392250808271969790440012649508392971253445967867188739841613035235069198537562238915754516097672808539630080454421865939989702557366091910797017767283697898908356116800441718673911810249366791207300287532738732234521324437507207120994548857724849134293314402763786382268819613213160807056332917234097487349898680113460257389692858657328031041105647922770169524351902434190340009799128202145103187839057137425335600216839274161232687701755255874816886913254916900758186194015616827703944095933626026466176723691614817396275070073444169651652090219351613488947034065071400764686377168666580234000379225139750194576212907008732402613662990041934712239944662140022532552902764342331333144457662671047343254814899391362934959083864483213270318377743160595007022829823714662130087634707310541374581816994028737263984514821153090633275166889432263442080226583995599691023970354334762292800357878417639477201016828629596834312461552235120519765602056074713040716667837301924459103541404001539849053767597522147617976917991548853925701915261644563500413326327633478977963807369307314912636372223101628932712666398508995191266051877617229928915556274406110479066681747919331486581195277548236988528099415929176634798716943167966550014427799740465229921981807057624886592820129229053667820272649268904303433684094530541038636085247419327368910492818223055220795845797413921016477303292709985525800998530695324673666282992519492308841364307907684944949913765590297414660018668654532854728874047519747970936184223120045260559033520560523696329944256540681371265138807048650696738698045778841173208430873486551729631087257642589187231582811548537913723219373359981042618820906005221688444507452453713835950623236461127991977714540211682064010692801228862234237124216180049851177615520322323408910954714192646108200101137767537662622735495480472558992763535820521099324888953341646421329966932852793448219438380738710897992137082003693989457526291167537759958056264285419626780102729058448856410545420242569989345721929429437724572692308874896399379042956788341306003974448328566219357632366730683705904783826540954444509706215297496567477632660245928696278511024060431187786597079045128553459692603258521821126089603603475195918251588514158837509920917273264834486122495497010077224501911958631831405894053006447769370219202145212680529153764453509371464990129493731513858423888132208338526698600204971327179613565280697440257702976495659321300545987728480556248181838996615491585025603380422813065304553200586670054694637467394709771697280891209090394388428654246756824523134547691575019550435535983664441187001521242441257344602854547765107213279524611239171333911180847293911385242200798187434199007528104452086694005832473350151413452366549784473116540115623174616240593712310755404198057138979364952207247005251468677846505360258988720224665476593328364941448879293980516860503580433578002269199015006476002779203277948103683514692446057749263978722965641043107710979217016764201943953216261720978023049391429213815756284798542939216168422811210451760851762451543714205023480618211231199734835874145464521626159193521193493189527375413313274830906659817795931217425707380427307399427411010758273495301477771099442020398755463846141085368054232442455482750651825070748969084471312243745172119333650456379403528940874824343593604680955739179529683164091562489277194707021201554821110369212575715616918629544817521136128320905842795899777850809545076362221999903373637015038002960226241456950360369836112181379013826014339196067418717361462630706187944850398716561842793023097883189507594297971595521731384368032724213727319496817404675851389841471229889917638636852182626001474080636257209304095263784489946041672338885744567015962209006763785331143550536008288932860230546389793148738171676535795393625337361117740596453008614216013694634742184492570955178449205828681086398023685942446858252406732547102110006234837926645065214359663833788681930602274899409830540792431681311503771886368242209829126663281609307460444334954049766072961930166672633210751231269560474804343244746727618675250737773186943735851404893724452800652491774071261853171520190985054740824598194510101383120025898584430802711264765407132806214521919975651824922878771442592355943971927042024377684391059423759387031714480630004513743774722890139353733881408350069023003942103513329779306625209699577419893659387519656022586810985675797359574974481850794284842874790560856184571821757189626260128741267169182700258127157085213310073479763335452920742750226692355495106246361561520432171659337977889901131961109594590656896049202114511736858752479625866932321672205869751764164244421026904823533464142281105698857069139886237245853151847727210166685812239711876634531920408468731543856819194118489236802987909263252319821273287531771291310408169075727785185262890941792288511903285431288720833783283699286240514393410260473161724859422895460756192841529907241575458751558232079017117129511560758199571700041867291378908357536058067254241918664080250504950233143037870746661474572341088614199781618871978159544981359537537383529605611506782563040270782397981587196847356735928441331987532668965137462259041770695832274267677598240476442533512147839891468185208971641307353023527931592293085435022102358269035118677988988716876648254783921012793610081242897399776743684154318061127791521706953396164470955099383713342634837381374609232291859273042777770901509836787975745164497874596185949631184379362211419021292416624862818338545002513917522926339101416860283749637554272760746111095847196817381616860896042976119303509505518205944404791862731166498166328880792705278622383466005593833190752137592645944748571102114764369870147206957862336026919842193892423326985785085967814335447536042794608633178476858070772497522131287404195141499256399588871975652699060859935853064781582041670326381365273901674103059635621370830184836746099025633816184011206640348664176527097638686738981889002963175285108354972564443330260814675416397511069682394285206600581362432069057834147893731319129940481794023540675479080911874856578312247549573805874710938992239954960270546513139919113439006059471007499528471295798179536306625214462353605715608776586100352036864637558366286249079475027444324353568063323134556342642791563757761195537237190169956670659473082232195422801348742981453825521469046717279256709910887697309317493796990063441439816046828845597631825171275352115820071704480584595176035850411061677799638057580995895036627114921424063416666815077044903040558384445312119551808513906605863862057978087167269651393150311975847199974605345572987744788451421782205605689577796737238191676379581184136993626336530824797970781727533631614026893979336773715872142614372882588860355813931731833608107196220564917791985272256417235716214082265605104389201087127338822808848364828199695751193867875870677029494444073230442960606090204101613717040054678857374585554802175026533969243884098144692115870583585922427628623638262851386939271774444271727041744083507210547127982803314763971524171008738910479793377549965525854012809369503865236903150363333802915139780600352417487517035886521463393608663553453386049159732172557257632638556320355883244791821405961656762975326153820040173110464525595386699270442951078852543749237145154240466297953445994974604131778319917959198752825809110891408484206946792686923191592554748981817402221202953181097790670187424467999511757748339667521268370146940816159922609860942792658386054720445772568579243244372111951844454148902926400117474526649350302051208850788785327105884264178732586240930396136018986419572056840083509199266254324532678516268223777345111523640091356290415956772495694631203759780809161284170662933338906243604507552234712848515552191878876602747547658890610431091721550553294906683181895595861705480628372274734352992815619984877040236296751531804526764713423117837505563154981877422465074371592544719182531682415281967683946302577559334530498288766189657174016014583006103041115895816134225583387438648783984252599803007577656259168238850360896376695437284283326461773591646010963616492370793903888513581367476373782746498002042729584717575168146909534626916925953652233889346205147216098852514568352247303113663998316819429707596105319851699408213811034176049064453957240315955295923095851544172338237905442497975752338220300137606161182540351533247418886918252424607759033834878368414953344342309002201764904224457650572766066973842874383118082764722750253303039970308457898789054421218588470521790825608321664218622048756543418057673424804340419874558145667064858478323716762068460838561387304474678445891589089334980080671926279513897405229502064637432939208582769320523758674678768091145328220408989441860369200874029588305404992131382693821884037172982287583246823903974835136860476393673889496288596458750398777572607034546689603792066729531360229420531391239211833005553813955907880730893859249173113516053594200431835991903761101097923844550442691951797318524784043186313114986478768557063845706960589426134942800899549773607015508786266279258023786556297271689820984928041374249070703630324978836616816084440620152392973660570659535964100896797093529051319830642292968011784265234338600051476946477210874462289325626074591517475477875701021720663997868877697299351153318356496665013146364134304023471500134632537633432734077995403437805316876076424204596982448174275383468502311138096735591494226812936159110307168221741312468724123850876167937111506346048269897718604234085999413178161426701980202925212975957028826115202140521445583869228309431596781795180430239102623990633764828303548570540904743732385014877166984517046868805972369457135601975953476401789975495044292552484028765409948418322162202035842607523898951026822274500139084962258975400933408538003101524093355191909732704422226182486614990207069822706242422423363346982215400566981484209225483322621062306526158111146970024254562318880459069199144465885406648263486391628086498890248988551859405460998227341192556271553417367488071011060883999196436839343188008040051370780494487846144771548503059368986033713107476348023782470466538930703344180099035601687090164553304784610402935672337688571921859394302739071069142664946085791458587822637929562478715405560344622869336688729058858812577046637389342680913848143899585080521774280680075557582041162022306589648944480160603100838873324677766162134824173132461195381236523465749720697952593287108998827858294826615967905505869402160777039746464760837526407603185935196225314663179361016006626069962052200088314094944721309021957674619571783030828506743435704812110407526842188157172898823885765840969560578125541432397347194225133474904462692184141548242893770970801556131645310104928685868228801764405022255611547311823230633697226422339553389629008534213956628495185528342769612291414224251031140223336852608958968474415087547383987185424295259196287566849677627880322466814913604906628440112782830001849758847381108437170319489804676184461100908731737938079890351351162101668738627663058317593673367668953889292297810915256614692181176284724201762472525110045068486008796576245868105826309257881786538964996097411573814905824934361365943343388689699053672903119561746652608013459766088928380316131758166708844750428853399158384356708029286917984484315400638067522179068628066017966120504457415762404004897334979760843242997416140114725635840164345248960525217257477672624321201182586278214601970197869121309653009714453543564821229079519428945739759280577295537781120022804578078486834706884304457201859957682949854397270223756548603264628239472029160796701173426923211571353573540206668839697353127624251425798671263013643721379073271815529605275824073369622203923256728789226788090135182559757938008094649090388330236014493892716806992292866625043270058573917380783234139812299785673934807781118288972343820200460214472930223699485853267151734544376674014617163598165776428875613413042530517620953435066343416484578545089281567144936133863941919490751264574285262965251470068555677145816888807360912711716405362445521083073806518731402416893929944630371545561821483988760170569937977246306021670161949786409742468894211726164368561996516511414479734383748856516824718850028275350821277310111780003999683472413402640476295344287286953468204783457992342614747331399431376705071915398485772563475941929385775106147254209738887471646335616137139922509091506733076675524812232264630384821043496634602735018823886111178425068328633740114427021863209182400744776951231082554866902539274601441367723704476271742545437222839434378043481885219283884401032445468930495280948686011447100622129614908302426971150192560183817610146457915448506264158789852178843524762035935187664618211975957779837969646868775050640301824874557198959358591004767309115810294350090689551396954872776502508141999449638996535660837173504990698626822842159171988937733333275058805916950804036933731593151098495881570003776210983501150156538099154070578168913671700414145294301610146763561410739325036208331415657938603728197363565166855413146437800051370740538335215726427420233328841521050752092573392029920764098760714314564506519756389788006016432273367056504733843404067343774926320857304027181280370708343882449899164923009324705128017422270945645976181040008978660618048555772435253761767772725615902863154214716106195460975561134483994004373351141876681233421985400687036551007265707709413348576230840110698672503494712238379859505177718319994216203877893446629837235547522060023345393400680133927089891698947648150560325217225417354130299669822120190621999297525857535563464067802999141569736474375324482667251022806313022186448576205290822268977009116644377609194482051087524836547077597661099813777755521212351353133466956494931524637687969847822540145001427710185833723111798819348746350251645968370543267812571129309013017026977926034993185649298209304859639032342231847078902552888248102870182849357030605302968336569031969799438867936200924986044169018420138962664435870378890317148249464748317231209577547846215792090978176167503440517194139334037762081700925681353904713664713561021691339743465257019806309261855956421666877090310575655147427001791373847179376270553566746871719905842595705872243447671728195806054191149984025367046314914552392205039618314561465365668540741514527421194210669574777353141977419220289223175560244996534744167798385174987248917122155580960068266312788330673313451272629558068738897087088247149635225102884669202621316644486478628224952606912258148490859514477456816386887120966375946672879868837963678915746340740723844157774986055051828033541770081397939651236586255661165602225609897494438720645203367172112938405685200372744076236889690935655702742019061685483844855121029221816594042828529334921733236530425503421151986521437940684785121759324824935305047266074219403409824033806004268618621349782288084356548911626090403658666511842677023556383631177419515412727198947880453037464620848466609416797240862818279621472569169995092299332793376230359949473875949224433705948941532039665207811080075211915094716599905143946330363919590511041509766663763158220390394240071776942600180316331071444638924171452449551725621102392525955146701918930983556316070874168816268716354934893342849204198760967572366662233489145242338474570528003026794704194333040177723324288000252888355371973254205754149499051610876071040749522308964897183219820965265769236677883768157771618702311817687280976278635997497646728804474186521039485540776820306461364667563602919664767852486732645288996677520863342000668213093796950538636502724776000909329866660620973097301546006363754463305415086219455659494829094054369565902599374841849607505633715636349552668628963431332148139553285997439187038807130536756517613559770978661933140977197222739086247841035147926435097138513781893355762377177896922204381649386439861421665087105149760930349363881650436811160520740867460503905644795194656238808374605195927949363747989156787764988166681858800857247644781127497421821851663074657648400124662721897109103310699583369958307365209608087456160312195246834953108019367490335607283446693296035743807876105698197997984828817469440185768769441950477713430737175769579864803268797643901181333217418191455401541202239448149532883590379669077010890407299201436768854218868878622128618500536778864814352916136947417640905628358680072214494481250655008673317067889508944911493429720569384010157691438811781142718007989608148905031121218843412785523311746137868968275493047947397414923728438917854188558876244474805768063506131687420683768985909038548031433251542341222779535023201801648137823505887429714187233692697050767279270969080368306290848679978501172982018295358953579786550286436448753672655070095739784319194887577310212855919444673976316401228734128576082049847338865128265943184621620146025370858868214768491649281688179825566772515612314762012926074820708772632971630126574482455177045958318573509413216348727294426508602429544012086334328247447155902677049030071729642164767219540106810335577393572630587019966688891996863276465072598569299525914812870237723104795384898442614641265831931447308575098907805516094020602296765704631251827075557424900873720189550214483441310196932743069946621427400388156528893742247572591463420766737757365400447778458922096060458458988098030714366152821883462074105991464158429860652121775911581939148155667445713283558022651357989911792200005272153390774007500464927859759890658849809539511683670547805749833461767259676986866239529256138349398848179282920446634694182570420457733789885405088112929449359260999588140544392319359536142857565885027607164485349507679747470181605494766467473178689464267918230761199989447739017716121846533602872566450008219589991302372973356498350551644644136964036813517789147820447692661766477001199408261646759301166521851370740944773522169672640466672262973479960638636476695249212308946617648629237661020812278954460018935133068452500848595153508931129501428127707455624914192191019583333450642591697518296304293906108392563653964803807510283580637076659527748311607868699762065260799222705225332069852191007336894475096127276924104272107207772670005141327746303439582328399702088124582636694302063026821728376040609376164822009175366522403799594060404412458390567139742977959678825283443501919531798156981617258689996230831010106826641884833342390035442177106302225784994564137219324665349991636701767664157714725352776811613784061209285122873187688920560247996680942265715425566746047964810425706945393055514774511621043328570595976677836492855536160847888730677711710716623529819193813269760026014448317025701596422603901437622669884825622585897512426828339082157977047244076298261965662461681977533981516012055553872201763247516283167873508092002277955330480655547863800496844292037171855652073406731707634403618950738906494320929168405414437057090277901314691044832454859119593823311186854856332592319235300119590841485184075785274754761846989682339833221168349020789747797708736108811129258247069546814375171398797529627261248387288835422501468852197253150641525844463442304882730793232262207702539603890514415992791380095155074276573160871157344613395546983254216190288173604081741883013575056597240099989036323323760649371338076637973127310012953489206320511412432259081692175386049562239756560546342486343996918327131519301493085443907656636343281434154347915847212584370182828157750184094851782408451891134830527839557394610241406245844271904477781223042468178119623252710912470981964094305916222814007100245986296772575280242504210597949568055406048541494849019415209833302156729947890025071972766628603991089567926911143928138330423057936923237054709333870585096433191122624249626085142556691333116402487622795974744867350863453420220378018822971532953118954627884050945724827782944230129104566093803846893019510642153733383193081532861345504457440528968541290800417319879051621293579338384627293840342469481631381284680483430130312079152326926526168652363704077839531104569398468309187536544080610312139659061750522835607425678256452019857905899129452296695882412438180000739465059215398094576346536706960013602398529803467374148193364008367610013105798743135705238243466334041559563367333525853115853811042273689635094033615272517218982544251894809920574119680049451394750828341394062139173256232959006639783950764474901158308781390809874535606728713107375457457953917534112373234137163091267446867636086645786488580185918477046610393397526730656205401400836152085297487187686019650210197778164134482775437280247311464255834059962507340189810836341491867116383198136622266473995568256215765406388190193883067942495058181612679597200495608363774718222477588886393565312467382281971607256082214095215879843366063970041643200707192360541861141502620811487639517610464893219255629137745440758511653505814459848141449037610737051115707318632543787283363790930194801868177879814055337419796655194116399212629080948799112369773913655672208071742081107549289597131090531222500790130525295036427102653133169030715685836782800939947783446658534096171334666367799221219494365882918829767965980082220342664419954293817626039472276092485494877484224332222063624708808560711977695088476649990561428361452750806829696705873091177602524037436640865752040996661534890152144651616199323277304922246530824067267318075231820932945353159563319875993671668112838603965718736256545267866844782876180830718065068784268030262942640136426051603684656346447456777673805512676110625159784813647746193921442916324868141035957087197304370190450408146154365308387877875442580486692415735849271816680483909157059253221481444663798411263665971893959765667973605713965018867040285281800832456629013345402512570927763820601444294706623071513065638352916125573618271137741821223502604870301267162970394628405907805710844058633511449729495122079781012071522365473358637981557212836392449485249454146362573884914296190340081011801719711093129336037579954498291098850279336603556317676762848175671652126029854701376074328625480933931568694358742524599528395368915419545002585572206848002756155687743722206210413108240013581935480689256320767074503153665777649543242999365446832232873567487123895700065242635369450124047552363530803714194386587197760194166095161667819267764868810638781740087569687334728475848085966912938547588949443936341375528448214634308009707845534618539228145959976706293506582657968084699549832609395938625400670634196886770038940835899213815010236550923435017044068184507701974910472417417517293709390710849489134827113032126865355441544773068719701092053776048775383038937556583923236576058268945227054858522694605376176399358747707618427167092595735167766889842038432383244262464766400510278524504325199855736945079946014263922245603814390645215210013642186741837903739571759629872729175566582497039240854159026377955102617259211302064816467627210006266071209474653425886468562835093371320314552025274754213717792292376013744291232440943815294972553459856293269713912660373385157120946318018681361660653397394622869301005489456700582545261703729900185593453180688462512698853557187036631002162769354079028052018617018922818853032423922479900219616087460919293693697900164935261467576542555710299412848340766367270947433929159263732618619525087680163449224139268018116841433200304832221318195140718517601694377219570714645573384692503940223724537173520450557166615707516408118097027404458124897868523470828604443861804326831199501980484686465848633747262122884948188376190620055728218933959351360749958948271127202039422729535184368420649578847720133032080730156315313012562338427490822453843257359446173172065629319754800537265539224140998394802335937200216639756506242320003909322748537098280443004303402694197434632506448940491446979039513219357255499755558809400918413003022153417208291317899584315349057571161383316523346942576251114606993225758369007556240064875519796661648440142707940040597132682709491064095461887378181230648854339022362180593967631089106885112750643521591921947556583861690314149975854596923952749985044432708524746039289846301129886325579723261448284058797076144646598715453447471654662319113931401383456878068910128753238717179249783957844546655059476320798702485478109382798836180597922040111071721782488541138128053439807370090493240606312662889857078353312655839875390256616056419101336850870765601907997521624394537035389671776266111814000705097141905911469516156525493184983448752356498876080560159122499975386195635094987011673844536030724090802452225361377183899674883010412481324286370480063500494606799040897279610902436569721353501049442545574166807208195466745209476172736273849247295416539693361859039045594863641076171038259968004344490075212888355833578671161757003119834242121966919181748044719935452061313988656258603339424519946174712131900269510504301921565436299843483296653423461656372568500767269403080477364675817547333767314087484571331387721536806158681206622893719123583400049961255754995049615033835397471302656528619027462410833971208471168467450591202299612267104555840764745522258607128281663719553786926994162601009814593857002955303011492722624206073263781113488215513751205658512589285787012769491910007439364444508314616392669068278529862573079401795409417854142269449572251496881699212074207111738862817230032574945034413605501897928992086471781651944299202459450732335843407618455860589307020397661763728751699227105560906706126164490963808405859130223178905727437503817603106603592442577193055171476435518129324335519532544203386110474790405504020809564746087375350374643221685561824316096297776367993280267330037189243958587096307738321329247569922809255472656524517355377608689915712001181790118389704537741048452916139278059220885573589939473038742600469916080438183880745695280946672959161225149614765848593081533564912111089243489373509281683554728458946745764309960928583000196036666651368072290255519403426005628575479991979185478563578680430000413538484637642889954997820796897556308591252111805932694301630559902448640389221459246294471398322945129398121966219757280910143890137861991205111049010659372357135851687180862191270476940822393290807340955554609812682301046734910548895009543969013281472963863709297357827384708854149915196227475337574496694646786004628641494404506943396856738908710353248727846838378303400123826029875293819960182028844632177812010457360355020399254217938777514243286463635274899076938611483092771776638330792128822745733131590390632851083332921509700994569191502088324851652576360464376786536101287772987314888061834752914736520521437591259600969295241772192261857224027253254523812134021891812103722344501920714389263164473598833301766131641199590545751949027502892328059075535059285330069953418834824120452679568706379669170090510932429595947557821983253277887674575680793297915832228297812354136394004652533154019314970889159501358181186099498608590196913572096209310334744591774956490612212239259213780854574965142029506211497792516578730279021201084110591098526505562077659226164287854758294045206843841716225124237440563808084832996437755542452676882725344412890753853697172807521642451118973218420933634061885138149434967380823747104822389373692047519235037796305729206226982927262764438357077527303738613271918275520292957928671436279028529085482832110708649320202195052659262985454893669099849325779187267273994043314774929672637254463614975599481350628792502815891603109694561492577167494217675981975360806329370262729533796905700385689116818874542204299818332529873780223496900315297379586301836642864192701974132693173267631215387530930670163603747423910510560841024693139194666021563055861947072941850901925142190182184147517906652219576296969738433329197590662172527204434508916672149914842303608800764580660658227839485210605652696066854765401551528310338650094798342667794631453202648019356080276278467692706331245793028244668141689203854053698449132796090016581658948093480954294674516565260509984181751163325996918501868189481455605589635734457321584339649378041082763147936212043141449724016095207372700725358521163926786438095525720626074903471817268553673651761591689580190031026343893200438019503429300725794695897606644203737675326341241314976557638952859670371551762187144464090137080318914036264877521869159110976890937274021246713713344312722910708180535408160646416040222246472515553052268984581971780427404681590357136792059443034358230012747538570396571518103926959856168284994790303424567095126682999792997045458008793157275954458281572328184848736823846904985230791639359680936976270467723138385998222406903110194978123789774788161794953755611820465615695802310093610825115494991284353524700409598122671871090307594417418139436351160455377138207152563805107809276358569558225489014350896733870245465137009357283768618784537481437986648792048909799088998632442810835609344216782378640704108255640657550428674368490664277009551950802583510128116229071088574806500459162666221148716812577598291063524108133097881532210822301362873287573220151823117783023677467682941276439096105561323309195941060150520377339795947988571929016473637954026822601759717652614609459403469880220219883987821329207096955863763863972742224918365196225099900674750706195346049321847881177422009820523252360133365720514509195948090888303314538042375994026815551844312661823580518618929433407597903248410315405888738112592382743308700938598038157486306169519816223604007885098488756313768735784211641816930048251803473458283837316064826239431841136174931799748943005536788858073896172944549557620404775534349963771461767868055383335028300883354215369554352286423737505165248385270321170734628918575976945167318880040571258896266163550826636902398756477006579231120638016417667064767189746722506599448388972099440969098320289052025934657699011010500185096981057064895605813728021842481975697210362001206913287422550798399678841522953568330474041904341837133898228729278796998325796110888386120651040863027705470979755132518171897987179009501312137264506127931207910034871610233405928626395904872807560731257787867977647587778850271376691657902988651546670215222573315077660996088792924489297567171743016025460387629995904467485558772251353576455235836404765783982807247966959201984115758563211416838754995410014952373224286192902522561649218345857878183452244266866296607731029400119338137034669525523793996826844223862517278469172946991936988622798397493474724898387196076446166372453687631537889625320824962690929941227162902894497728894871373619503775610950389577811606180517079896475319712141303048410834110234275041299120300674676087174938399283983955568928830703975004884321087962208815346024073490584165707886965701346271626561339782961954944359184186970861062092867242881912983806472149392700084631760277953690200565733444040383152539373213655068815975396641486969227619021406603535593105843002947385566213391167302954867097552298474800268810427299554602692047416606379950666940729178734557750996804519042468313616502131220254296738079438035282732004356840538362551179685686528395975433613844811215605182614743123070489449002862277840628872349189055947111817160830268837828295785928922259229709584660274127817608278093004551312005304206232654625228583673728234477762028698408383841981771123374033209092371245782592324594787901055799979974674543725415720038763324455361399458752787903393658474134347774461251305211749666948110382941433346603428565387042690847913080346636873579380380450192053487514579718546477301588201820601595315424964436274453565064019331563481103695614273568667917266885940177351827776233853170764572500431508132500117345972910167531629961688296918725562551710799664503563794997911010824589108371061744171573556500556380222627971259693355411196431950410377420961691334398185830362192923588860749965971514295602317101136006413309355476824555077584258038336276820339142028096159741058043345366358438251945818560997099082729532296929529373026366457492663677646151990727847853750371870553126894013791203847976002623413887546918249727495936353224116627913885129655499163956071921972636675064549899986135231490718151710639297424684995996732495112909993552136983455372370406434879436759749951026149640175659820423622081661256244607387752620840157031436489141198398747895719064377889728567919764596312419294718098433052808498626928409200577791382180675537069021405570622889444653117145014381257487925015882813650305964324187350671908485267491745752596907266140608515100467309564884333381440279577180022098606918986404847296903597044800408808972853099493172766040892878027529786208618246649757596010848976528209232377954624562239243647716204125000621808621105883363387433195725190638468734540799658254836590564845370766796061651248350264101397048738580295658533362962707286156266475593772194916777469002553319981299937138514581060453284217181287616947774578257662538483243862466623720894515798894184389535054019679599866959410409048918386745727545350477244739886095087994549943932147033393111897340819273244524049515136280326030279344735114041341817489447225956660098099523580845846238537300064156034739732825422493989237173408723813492296639289011289746407588370500362052554398007041695267515340760824544114842860461547284121565051852251289714242781605733700820777912390798951901014504079555813682665606412377538858671510076963647625933232838487809464717510008254092675258108089225589392946500712048500812118316035811231300017277966609939760852985771949994926571730094844726745076991277305582984766030070463577782996293692656061626758820626668691368142664445283331482751886180696157276654071123191985390113800768335671548952283506804379312256395248067535139140172818059274896332473606449278597903036726854007086997333278973443717277633043739176089856611504311936485244420357999298073990315278322508376648166291160177347826387282976888247123511580756878619934773577400653272632353142709344926723462588885996372073664457178694956624725378073002587684972828440606752756864051283571935721828701052981317815498275779274454844920972010979400561912665581475917408512735138027825144470049473477649987271202356528185773182087757161415685810254513888483746457027533444694770395259612684203662593598824545481489750236497105527099294545240709170143461504038747502949900395097303037800687823243597886873302290721569699096454292986207528092615207020799377268394764926620465294862981689369060875362953057993842235395358802230731163290802769946090516229046096497195993805349928188327743881131098911449756062214545116519148696320296302162891307131253810419295536152239653871013814541467550867574794483819816220085561417712641406080616233091962400097406348805777675471893358886025793631514707598436853627172105036285295517643340617765335050931004632965993982172482584501621898237362918569806845328209374740817211856348418786057790056056729349773430231178697846697039288003000920471178142379357623278569256532889947272824161067472662127854722288463422158806747354495349801076490263324938401354924649346641112474782253538453205325689773510750258198032314031982900386007535213701931901600242207863989452062866822857518166866768494303789309928805512925005023338304865460427464046259606087605570499462562043763843102387468797797616820894107901447861776759436969545988499482948403724317072384169871062573246870284416888104392867234987880062738870588446534326991526967861329838765836560222182854576353176113974066123396569278469856825509800700795706970848049987215756427272293825252109996324085114498290762684177103018039221039506993117102139275706492779796637992256124590324764913181333032382197664031009532957216787989353698759340090096037588382156287115959526427367843565212940616377028715530644130038322421445327651237740485944016508223635554057466926928603431385688891278965664262297819567563502040244654771987265250766071858529138742304304045033969735033714626216493205094000023767174341660825517378793743384523031663791445314888966880135714500368060622762965103174924500944840812265919113536086410910732387811395285609296088081542713031440093927140891648747211296375424087005707753597811064917227762572196703123793249428808835244945996451979350287982465895103973387954011300361214478360017230403984158141930211391766942476671797714415430573805277475704154719832988289159503550100705730063870085445452208709759076397524497793239398432310696516002945070269825299660516285802596291891684969485500150492842213686132455694747362660470458834955500373975578106643303111714292257067710263045179978043174177200343485312044852496376682083204029580999053856420076285426518984489353895611749391203332430834417976296943163647120177289762759675336026342911977454369701943765775111111879467720007122778902098444161091310022418785680147177110203554515290741771655757065847269248856837011791960084686452772364029859250981514500967214411841557498998469657647477773861727214120539644647307858833229936270506893260721672825449104510543836253920809017660968606093588183114965451506919799727676234195144965733972985410275557711957204632497912494628706974249529679037479339915672209855474018126878317421963377277820744177569500454702867373151342116205000527912587711609625431680892858143896131531252878276575552159822680321583241261115255229922121116691685891150360580878115824656496566756895460262923717530250672183801176501453233872570925342051161352679454935834167344832876683313198139207656738905899404382478581608355182127594564428153893087227394924679115139110108433428893829802337884283160986909729921447165636632276427314036815418738516652034961369392850950964657590578017387373429214099846540958994981244895179567595381390290209774451271620872514461185155824308801372660466644854419576989186998780207716668544368609469621890712198036414698959494394194506861396044555131660626385468815852714202637418080899867652462670251161434311591429069099986479960327982295555606477350821258131378846185211419854159385426816920710215190268137935559158038292689164723952433046646363834512413632716466669984052538897170780178970306508727890983394349874550273640464396308958044582813578244293747194798350223039878946731984468412800313968329335883752410510214096757407953440844664797108299339047120155726198949578680755744602356584911519618994155814107637961119703766321697629918286046258881464621684369930829767654578682350363874719571341130272277901797554282721832371597386831768798786087452386490831289758910158398005443546706184722387257807446583193147669468726725572135999301858890680319855476096488875008156308423353047221221583961391866805412241952442859994754268459578722858125350324198888230399985407170021558524986243716855384628146552939609573369426813104665792093486579255032851414031802830529778735177186150515319357766480734254649427261430651553395620867082087363930961427628107526175860865738018886463056134121205252841411564709672611171624605942790912561683572903967945734997243077048999002613578446445346681393558685042091206976323277970769800628981194124284619296993144237788699202917528867925316378767857716129716946453620279829455655774155144298770801196725348806108404783046948747999830373702896385055957740507657452492217503919941458234269649719626916476145865145166126295900031176047325866133789699954952247970812087149399152792277170383621856185249707161106803792108021411215379623799677470001453823461728430123630293457931473058904684200280263262595128822926645072829109992739850560178478075664742883985149296877328862815252795421987199364931349866802946237792667326600015354955699942011456320890983103352735992877620372739766654575401158994637234049572919459969396844273808586314898275080434266397140504802894461692177316079274284010093564794989348512389189797559899735157622413015547218221939536947380984859791394198725090422190362685594240036041720994934434620334150724760373778857351036079969364075264625808868046745966961770508437532252111726732466178067700397042452030601252466821714728215445867005387769533863448470552777131643027144226105148183538848863906747834290085785805635372283981612187240004489085710131687084062340651114460153390367480004196130689213945545505132389380069094393621179281184801018449225298774702146791652251436058351487443809177376085878410404987780157134778560186679978170306565824963711501329978890702911220003934499099937811438988204626450877957455558009777090979293113516350953310793087708813385830994278192455256151574562496283382970774815514117674816642603069498144666463040631183278640356068182144058239718575701851402816545747700807336193731399281392614184232267735233561111855640060463350344970069355256146208583067631490854459319336881740776639515983107769523330810180498771674592443707389515893729085822472195171249185756503143639690464884146326024721819107446538504416264384940437596072107157508739745157226597861666510318628958997499723628557756095515500792028761802214348400330437462560216088861979979703148857979260423779175463602712085214792129705006611482920322956745697442597986241395057572124103566839520133698375837284186405014898255570860454627600634815924513647717465724651545294556362973469600940545545387134726750510981105329174579238898044330265482038423852529859971164113427222194739830707178822286442930976449131309835696912369905757747078518615838711602474048492363972189673733214035219014386155149640024247258200385636288892156700384174271239262811453248061130195464934481927746051881155683932791549056311064723003546978150624784038933994697121337615325244713379054782937007584762992169920113330909921131765499372940291799309503671336690097342691177240014735958627061888400732957529499112145572306411211396772204013073170490210717523491665535358248773079292356699299638722702288717419906656037948515966963284095328339260317098831023708354905396492958451635488382883979602487009168132897034866093375071896317747373185576136782742261872221074245999731565509432163861989037126577571705778654205975506451662001885087106159209479828983991676814646408292563001631777494295640235359753869940646956087676681778101881722236153275570187687173075387171973043972362111041045316566254490004406361233048438350180050763442162888756358962781718420488286839941737070941290191088930844254582964917666469207184157239053640648192797686609776165427095946762379901063643926775735830532472192841836398959384374807545771327945834885625985941757623016243728312522043460851573421425796854468850907478201243487669600708288371368175403278506746601893224180873653462917943219330458888019305574045147413791798723340204777633358328319239719733927885335730751611739501970086766530269209254673085434557616949198732104472643560132688321300585801644415982579961928054876823752298227473477504354617553467819088774109782068495270327130395212872575353716405053314472203230757316257232367647405740604733888075794276619636120057086752004881652204293178783320991914556887640946986311674415611845483547213203565686227204308963036143473854585972235091865741357759165074693202397849678806886975261568750548740211198351371844399182292867498190503556425021081828787731928136061346715812517522413222801670733892037859388816709247476675404612810773075399578554400494658855686611159707272283332669240762084281592984718001920329727541583798127293033168812769602370677647957396721346937791777418920634044964244206569097176180911877608375926564357321164972720373259179819290880976166057280492581200497242050250781268589425888018454092060777369281967815855945397572099193406324707492582970157590290615229411545997839341040037230364154681803982868095021920380949216004644940207380997134478618753197835778582491123722239746815939792647177058556601461830820511566804365779359082613719292332876768121290717383114876222567454082487749413544209953949588689821507635051950531033427523212103420491609207117707635469273002132511754376065037126098078195575325798262651585610534617730209997209177955678393277521146479994211332750916086542642982288379395251746807127245019778427023620311688856413621796968819592201394096674314538751622792318749314831106220660212850183258621072494517128987134426814443339309986143694252300451146292991913106908889879942337554872110112398553678315618451580055633824806947554665882204461436050361673468715107590778395928897475565786112162338994587289789617494982382166099179428257008091213724119628288508109013199875543905983650096165237300028846361760993560631440795148629616530934732475915170985349339627543660319199837699253969516773783565924600224405262324517108816716354490936802579157704531231384553405528507931496174227697828442264165247098058120828253894852339634947164164218838037527144027457789798123711311404297184645270773993834990862714594193604969371216547990665401284755827152755471840088535650448815201027276850496301479034894363351368273919470965125665141547659565428828530646802302492201430202534585397342097950955914375488928461661636996497962133615815004553348450635766600972718330821936137968178749951652643654306389944779030071928051068326536620619849959042043542318862928809636797472310463521796942466891086679226470334678714451684187633806422111604462745679573867984947661943061407749243262864353743077501795909408584405353374072516917437327131100564674654043544573484643176249387206300847558052735085934618928788776473816330827226269987616095492984837294928574135673592837024759985368474194174550332844200203287568691755487969410199874822586413605140046928641730719600152381787078558175245386389668047069039680443292119889079679469937729025091138588138742462836319208942935285819037437770481943799283609429266260978976598005967215621453475385236510582523748952541490798510994900813871116403979238535114373796017122559940158611969415461381654365540601249641390593174379749071217143516263563792261891170991451997458882868656867105283479819946142088150333073867515673948034733432263684763594291986162170747019497146367785768889786679092121345110865992024321668548361720024577796953336497614727702690494218991304485324467834126456572240595450258020428555099686113399442688153975123206323490480068914702814130254878392844015232842195927721050214995272874361930446836199039881483772645610863902277467142590977156271813671371428111585488798034023456306416724723025557352914373576227071035120775118897649750004540376301923197811221172296783660799598803609911946253602031091549892593577684197853312215256099862295038715160132932538346905499952067253636765505636666207698653246580827979112470452657068043309519740652877425899176174139165149610181427665503483218343290228028944031902519716160196351813310644164765120299581777651223587896166983827684452647535829528230220612666739370004098759425326908423977782691069734396064915107329176211000630575456635219051279871252342190071511820870500715511556624571778984153992326997101283741581878168616233868519519802063073444679699845620795502643338156540432113131713109623955740428812366374646851095166774482320938945203424731109804767180700373700942331884154092910483543262071827318347022743138573856340291797928065841461202553860024644875112705611770458625196205586613243815618660321472691479310949653105186283198239024247138705131640936111100141366505839130033275641742882727131017400800364222321515573764966538330159666165094409509791329765201366547818176342431951135362401685410842806208998251499333589197836061123192155327685741993195533299294917095033746695428193061602173820902355262673722315215749466085666498638018545830728516920719898289449619857081763860653066081948796455380655593481254297058486557037431831164305064350977282513041920184136189869765871060348729721038608717930758747814032700208191157915465907439779917038416768054202437009246694143628085494846873629929127837118820884605491096694129840962222550623109378846667132537711507218106828612567877074509458103794900152353593065728690477203663511913323767330645810279036535626713380692229170079027271955558701698816296373889326201470104096439093983425303937594584613033793083536622085369340844264274538549928922806119149769995169006203467067464652921611785260593605347300831003988434512977673610334715138104696434857474462409787105607175177325465569766071323955640670154450730870131919964306369100199692746620255199750120051894731786481697669920657363524370380546109217112523065237157103320829810382624831049570601989322335046962817969214569866985772115162835428833834785668908979243131497474974147982095518175119155457833435206222224635087480811903478094463059031648999940416969858599656051925040270034284419954184988579325190768153360557999169340817428086260700285078919913504200616156683973258111472166182333670931515386870000610024290115781454157865297118513585276580495813505248319146121176647006052868819703352919917969460666192309260386523955553868354528928894513172436915308803995051984811179243094321050078147051787075762236989952167285663785320482493605861280860682771601217683245659797064090679435228666706885646821909049267810591557840333173597338389254039115184156058568357045330338840429808282129632355990053363647382984545783688476318425111554805002481832727781780737869774908630863721151098172170511765686284802299018210397462895580036731540486277219106555924423915600266285928825760310024689858499120224744104991613460121196565650062153523109630962562332409882929288973148365802633210796872491858227966906431594254073769204890979239051943582435287194909938170287520200871480119336456736726340138869000612196330729665579909916445161216546037971546199613825547275114405528474152071678115160558871913788125827007344727972305990295773126126769209569121437148612422427354198340529633488104018846079369270700576765713046539883488914964423713979315084223477560597279323626085466297959947470746721576611657143506109944195457943003148273524300041019327345761505057617991510623208118971136455346735212457873963070794942417931070899752353923905733852850939475214058104448005768597212369546253268927082652180889553909545448593951510037715621095551141816014632098593164825557328466877197070346682928935256200193479386921246402428296452925501383098350333086537096162161685015881514551927064288638347537825144100716148553176732750602426419598279522972816627235520012046016940177505185525649152585912222885366780507463170872182614425583882300209279280278083312940734429131786317625785297994914468627718689963935242636231814447465523971133485410883825760664527792971221306758394586372620205302517624218440780493819387703516163526898937776163933121606952554491836849834922077366470044484897469140600483036574806239846729113911577483131232948918322223042203034881656093023622983533496684513717635720067061541385923773029853821751080045931749149709965916139902695985289448181652102712197916395411378244889974094730384820495158009376072449756257733382353987432686040101460107884850574945706426902582071450792988836957109884880413368179010007016409029870442657894694250096483639210647424164694489288151754123168127643338994507692387069040599572043133151065868163805741019934602738099138461428497608530769604436425903164549308803980099960175696923279150858002534782827259398639771409979423722278318568794276235441420279827404897507570611027384643955162425201567425677421687266260223360095224458434584812157588066269262020768157158540637720491259697764738115673980854545800131626292678195121238206619832529321722287837223798605155516753059910773423390535951505854260655692694578221687777067647814580529793981366057942264887222304917689369860650609189279256611127168610239717837786871380392501546638200298445037167162463364618418398201120004394261188284636283644402718481074901382188328116121206228148058629454216213822764042212360681566977261105301430380828251071656010154251062188138166004582230395383278498491868672968022207676445397894423381864098717937100583118369624488606718883459081870853714123320975540486363357383824026452495506487425209221645235160411121185619062083701642764064004683361344685870685892984498751724806178155426541513115884739093753494518276439299813281562912520698971365772519113990481024404166972061880901288956730470387074594882422158078304849975223321442166022304246507892713320096594060027323422605092986791854090354069470440634683707869666257807400236258215695597068599901302454559533028757880384855158905339362686227481928929777685888103355515525429158341349193974437893341084678115284117022946343480342993130442804748227332708687547297530414372081098547477518570829026952053846880167369076045056557323827865549863148869448146560289742159661111202096281807354199606398128962412073411240958400339207483122063168899681536775733761108561961314819994852343252895274865544691893875884716280825082704756700171331562064785780841027592156045839024887256378136381494531926938477941305050021859565869827880181498798076937152721185115687316318082925032060113082872666410279315052157481098921049910345728205948034203683868555331158359433642074120414296993072319475875010366252070055095000450205224600228556192329653730346215095559135513104833696004186357548348081442463799694360126898723502068429659850767749883766722256128925027686564661246519531524557526823651990473197987891840787100481116160291893023861690178010712676614097089488977536304972145262709124673955707020378498700685437670683353974365893563865709929014279930011848219879023771363067787196249895810274105049965866081542564261331231920752076617203988774985458617142195926593797055615536666372996141942261869294913310697757471422448294128577594433671928461573229920148494644721319080232063002903008287575025629804526817144648213626336623954206389477660185489522155282721244239014827566956186737119421096650384534744229309742131801461383830079473020457157865259328026435463089316791625800948051275770890305177801523904394879229391300147271195436220932544984780405431454247188233061328000823406377686316666400131389005955463583790638714343025195284829132178622372330265036021759982608101035896484614282228163735270560684071913890496264732910747161897843053694595546212716159397399808296420546214444827450178302416879488180024382328760951339198339774630727375859502685920988882668311496005381340463262291065140663742172318454292541665702374971623032006721334468933940198267477737427003118400775021601012431142036544235843465297949333857859113481443999552741995712474237954654885418466124525898007260521672340396312844928012409350013629022237674177469494782172125789619704971971958982937256079896715353194661242953868474439414768010846092457971243363028233984779898335274995898282189353712147169931384471199444650736577156219560332970170925024256015766367709230481341644165819387564036587671754975628340616754078363217224488996151345659023352647329874125102962897842201727863721416562651340129716286385476522769208739780692989745886210848964792057022088854120527064773704283400956851151324035493886346037183950063735432328788333386317145671603849117192535870079183238306723709815017984611260217081082475861365728054795799947201097973114530590227480061816957247013859821022853125832880322887406045766123175304237550164930334090084740779283203672982932358735435280862487302580001051669928189810985850802826800144085811404186616168966949864626102844614951974301685193739437061414102067003470613233621422928628014583679707666965096696190365353691904773630502260545649409660141255696320834846547544271052719616699480804056403888806802920108838095973500623512002161696697473337842619657963741067297141567438386421305779391726549217110225678934795800946187135231484329450100849387053014224224902607424151101003068590041670014595984588941740303982008100234487589173680378966351522794333548272924065810973540704433356806505143704251073418299031326619189161094133259708914361967991204760828505169393155345720840871168479474151017933041581049799713340998909498416529887726628294783977109471783866380947337032644516562816874449198708034186919630370868900396978886654251462062507792939014152808595274575839279609908930706943625880747119655113433532065221631076683416935241075747369124598687049398836810100347833454263930117977252665349608585304264776721714073153528129069239855774787796288073321978066783669994576212479087978083343432968809663328466755497070491532520334054306973967305304635533607533178277411812125220528326427616968918909997622855331971437600556506637585426528758331395775215554701606768434269507468323955114184453410702779022477433212246569258287482505493771861270812853821403163009500411683486723135473777725255612826125941675390612215250459905297206325952173174111656455719360607884203736770410186702829768421770579363236296330529881589124645809198963337953716241993911667312464777640616987916260386990248936545096666189479755883578613458517238694362479653396563778744083947546385109641495919963254945575761900928023855365321118018731211739688091119700900956855655008637914433511072227640634988832040084628768449329468509867966588561316090747424754636879218081664734780900116715853724834323339872110869748581097300547639497610468579255283027526737480346936530699211559151445541270009325740853603182199560573306677832101856576206127415305990196159926395733581259180677626744929953433767804856549616528963605351723661163748817689434914477516668692628663813378427286333702344838256224027871680280691541585010001797756104761722665168748264724555121892480541756284303248182446927784462678712044808265716295988068168567346714769654663593663898252022265670609724092761019841150041524276422763595716982069626610133204060347879831637280696319231042669617878914053115171825506802363837720332727673011500979549813668620385905139902475788011344744619106649985611331053660407380479714109651007519946757164610360892113432700494308039723074861734254434944593674671521158258539917023527709153595592678612332895038178069938270272930505302160070868816776590173726427023671618455118539633583994448539408884900724755335486720997772867060635137153521872046344001823952719539125933481526233553411698899438412997861647557077236255742232190481285489012874281157245080043362459420965629260047365551646107641174734786200458369376327996470242903771934334119914288105896420680355318943383690538493840763044036602409827716187401179868109210053797310678060008806304327550482473664872154848430295463923792770094739125169540871167749026044231194510690074878569882448699412980327290438379891154489955942812249105221489446251952247784618658922051501924099376883178362435933671306213041991761832769023620619092841062071104354780325966109997836962787283608661122544411985153876829556301047066453062216422066891551734423114951010340553334420294390982117475514209938496297142079562614426269797422253308210604704769478264772379708119524931015652420333869282616756716206819745072388264361246995515321701706727590419953929425523342323481741252792380751033811412353456188989224032364669534471374244121374659409882158053995221241847020924600384686561330935631819400593566413362478548890221300010032090838944493984483840487190257426212617744697715241963860566339779284144643411550726310375612892549580381908184432845977792104887879157737823833730384449661709121616748620342171354057749051410084492326972960562933728373780456353260134435621785426110730949088794482281774394338507229188210941765468013368256865888339135905980424988148586596554232541242696872145658162633071938582196306161674335621127331711424828418189216653718694029030631671809683585881227768760825516119805969200748528242730767084393694750126561896192947669828102559218492239942142322422812696622019514323290032477968922405977497001431003452431109687824808849840325781409553041164700764236148113947435411613006856486724292551882295549524099514206951427206515405074970290419647675469430553676944927646394313137190466477160787829962398429541941672760868735370353200289266676632139280648148461311539570672864046455780835673545176661624372927296630821605483410194618937866204091513352703791385951530138236119893852817320100075746563947193659818347066873411940942288873050361110471956900998304819317148304983143588224497561584996211517498043012050006113602084707660755943988212084609008339626756529109639760485956227768593516739968836488422362088274679672477051175385770254936769751951576940056089815714990252909925514736902531492570062208213259555381455410646863967757338538315274177651845306914373113071136338486183674794895255313749683350730278494558369793142036312878529982143228647983515305896880025145526525804244732239096325818011460009501578342063596246164001390828707898702387686020374867679876482033970055875479508022002911554845752658108609004027143684935066854475331312611957042844243482594262324236794476672907036654715614126569623337967375929246366389260292091857227548664306856128720259551021512804514260847911018424408367234938351891428853405560559983270432686610706985577568967312977363247128041366021261224382740829012631607982448457764237381578309744350157537779117202689269181936597507218334271026868141414369471205836392174373106238534451724499877826480641572634144103643146493433716124431708321740545973660525275082955678357051344645707627263001928030531056193612147408931466968137784599012532034656028174983597815126215290067323251634922057720311274595885371212778503139994371288254033624797853440843381152803183715040635598182999806971791103332766627083274747957324342531866112418772828019451327612797460527911010307425737825550147123940135981900592528267020090811730735810905110971285372138490500683896301103803013612466246186505619302249433029595186897386201458720282828755202675272714877233586651324711919510990368361513821362023811980276848194920027154071820152789653418373867525277653611724106932901098835771489077237346370689902316900894343644139880344378114595350986436010648385012691540957192724239270310454261681999364198116983617123469572821942228109869555666467870465867018122976566729576184118846243017545883896610553009792457709296417669799054459480883488538685154171060268723271988136104622747994990589829436428169376086239978603133159005829472882553614108762799078812623569393313096630807322081927431547315600588092341850216271488202051101211266187025284137713475255472447948498620294108992542365457430886333417286885581172980814865402820752773590641863563550809371979729778378999659456666452840258005043009915368052425575425764117154261910638190191746301563938998100462130110389008025748482694650415596331148555287654407262161748487540491130830749447248733304388294268062498959790217051835623230776954100322704629411705071808796967191359784485838006442724916440904256473859233840135238122213518724023796060244601095224666682500874176579602003050825668541820944585320344636314383471576177974082923814480698708336691234372501624188991134158893976806522008195939218899437906902312958013381411003379793095117226823809317174157540512662827789042723199817154375535049413113925943923958777769311174701631299712196304637816265228746503337981255042364223869792755684819993131308405986987105468443533863550432585076316864973813778283229229996664899157492291166444152435639603085844050186237220339365436303048451177099210270601135964154059745382725176129601278463162234270351781112683077725032792760021717333411560561244508881491859779339690874538358567266037155589066300741971057710210283415421993956456930793630268218760172545879229148017118026251037663079539756785343013552203262192769456472679161075947653880106770220372210548491882111978614357540972398367636891562004985053184589123539676740377041658812982965166531240609303394988900404258681402945331346173080134871587667638726627965132907644409135009396728393876623136871029887503524622163677614043855150929440420373436796554587622251708754922013793528781939773562125989657914395260868378624560269884014953467010930873747991072558181717032143921254188130737954593730525222393025473239877178774016286027427189006235840061208225142763814755849969700205938049201997857655330984843875243549184512795072192565314614096565706617884618724323284023608030840330517692002030384914987425872216521932698784802431403895551091835127227882766681682772902473674716052675310119610423916133929000446986602451989781888257346985926932007182424606894724928856332096365124301339772980819194941276698406311608894262380623227953657114302028122592020327447802104430780627355163175733345731806779941422515820000964131835168096506485922678936116146254139708294181883747937982660885170078318952733076929843675943278250113128127270216282975059506716228548984869180729770778534438879095606333599025639246957797009389003408528121359022311868687970424398321326733254159992986339815788476547271238076542629832530842426249199807794569782982362383571177575948602751476237124214317904287388891993380206274412961164765222979578403383278407416755134949266168997467615063447119240318935937501981918805200356157192639586531813965615197785382675966781905929326247488984338346518729382052398526680702385032878626465769283125680425150569414239355862117849849080245176877729250776426883590348620434990690034563078033940841323604548004921701978296558516412619706737157583569911695541819016175661225503382048845021188309913036612991819922321712945502982902039017637953401037214038784458439577918301144203454342868687670968532991854322585258506290392730163472783270027081880494059522728514513827150759355862486437290104396536176901764723544742925038420875593075152395945644359459599002161248355289906388615592054765396505048038104742476124785930273940179600763210561365898143706816826008309124878721526991754799467784100862042069444574439668765401314418991128564385297867746776455966529045039503761997057498918564369438329126371743649371493629744772756308064588458578121429926476547842158452071923612008949531670043163509311505490519016450554788933836820881909197763231643434023964714446123224892970633505853309202280930281519771635541436034560696209320251529137517641828151518534214866908022500102835916323527801015428263948381560465330423561783354302927060393441290593487262209050645988055397677841172739701499531630715777689415726755070330657042700627693450217416259089719396071390216853972313773000090939199447212565082779653272743063827790193920690903260869967973808030088416254431798572755917146377124780275771490993088171029991499090828297045015151162953563317893345667810165433724988542877654959526960142391725480573425143560303589917241937575407862201885053776244830312512325713597425953569109384647556307479843756526673160003349325922296333143908958225708454689660370820045448823277141491056140408443830851259505469648136401357051706924055687370491184191246169501137996705464393318818928375794139668728347942198716519623325007514067559221572772241834854413547226282400107473729120419088282251957155225637418904742665350363355252620005347437495176708455160948015288651845838397620042418100017480744614187517328423347429689859864524729846683467284715271434338243113412532577361090678827874087245393567260157663565740273089816756239849787999899114298495381086049486294772072449979205532135758961123031680404256637182905243196737526177908283594487202578374919244052752923576994640955348386447777340739318229360040723497971383223643005755831057519856479048313139727414828898087628833171223222227331290388170117006530514430223623210166999215819442756819780127849824636739644407157530355522635207887377440374248931198200977061629600398449317097434950059735435727234274486137734938720391028940252590546052277019146739698836072507616513464569119107143384788556976083729998220964175417291784539695194495307780385232278509669278956728386741469069155597540674532179815253785365184902997812966711526807918241257062450717027048282929279226367204660885377549048983484881214236385645340171556247494243102036493184223380286808899407852738279250906447519600348256957257707623355480640788831096130403359259613688974043720331682831456421269364963235127528220801336359578487204688325725083134689686069499882657512991432136752106322881608408751336779110269011592347272202327856745128143406799239168049981607734526609168179928757579927958043301176863902097081507867525726264472945034936885080541944675167568231774733622180358874395898272859876684744014758956456370998949561300574690967949100337699985803790270616313943833574423905599056883996611078608297251408432754059674920170213497862312354327397122896207318745818410939580806932687706447196908457085741399210339653264540241357453503859112952404496151756572909912771729552273891460012823360516915240963167688517311319313465138637198656087534668403099121013956988206328371936945046296312767157526782979470993169312493634193978600478491545689632051658928839234449732951572280361678530777752052275942832998393477751132072981120234045334655610280932638808109595125805377717067283820453239609214148187312812331669788172257864510710128959029623708409782443623648936202856818432634574410243034888173729523783130456010833015877048573754776188760496110038484839398612795016055806676301851837511103610505282545544949489191340327739489422070565034806820735587362963439312045237025198666713411306992013503747747378256764854120990517304253454160136633815956280808542783815212454770017764290455183553439011231238041656499987959250023448010083687263877512746923126371066194505583230176634143826410948044111123091277944556737990037577121074884979794837846375973333682390255834577799707661719612052957034302193993548848051266173381743915500078216094502522657917131005842448265189050809056699959538559985707237368434938608137390169670248247655606063041020631155578434177439732483217789459980365991428456382012616988710627666434148731108191252092012094725546208614778082708891608133488216580182994406628451408237583570983480513879279860211357137196178080015866296626922488108847088624377925134039813030759728527909950518220569960426268849529223877263311102709348375776902663384889538803522568869660509624908080971830787563612126932105684756578545491051717757104048202982809739599970995786469749863062230718717372623980664320666530894083323033347719923938053653788956070794539655902597112388629518095499867853518800768771158247740439500129674087066016380773013828538541956660293619274552474054422511966748545630910225547697600429954053988287528926937371029991368579898119138111955548902085701472094989788121067188647992528394004614925322561440626472415727430248098250658013819537324991049490903098960878653500377789643676948101233955871529443581295248236005184726521701173183355719886264740323766189945812586857519728115733160657003589247869813336332850723285697592369288475970802080769937930189048276620434322534700567918218311594210306959993805967571878123744472995556927262762034056600258785125243948673293379178059981192594425062798797501254223959265631270805323534329639862508914656695177135687520983056612131056686821420736914407052216025645694597392002749729170149917473778412435079731921549752548344555187016454528525545552503588691427766862985138031713126338411809688609251828188887042774430373722447789160897169963843316122928541621007488960432646702194537564176287598260184826088004324007223936774970774265272783537685341522277193096604623380933666124228047028226271348036179973147861759015091276443856626035986953357866909603089803355565993724736249031418829393982051940905941110448593629351416549311750656747620223044262456406795760528675361016749921336025168448697654229624243590795752371742539964205874382459823523225843437510945332264317925989809383057532362612285487737267800035742316687334090570177859155505375394870629789723610672832713106017347927043188356570840698457248869617339777613339409949696663700264561398212587037774768911963744461423379069096093641319773478864756731146861786767096889063639844708526501351252685161148050623700985109313618916522227344897181541803828054065187778492331701304033708406824640822923506576680826372794256082738228868846049132613637434902973812378024453056082292640105228307301385939092255921815736965146773726364494140983586979013325840310191527598257422469793331608994225751806313646343866612162338322110828827359145919852681699255854265205343347908802653762320567880168348214901666452124166212783687281122482201955205078611338918450933448916640205040788684514672016406958191840825398358462762237796443719775604908154892575960413787919654675013281082442123442677970743802934966029171333899365548281807323177098883431004143638184467386230192490289173326344874707997364102137821286839729638546856787514202033833365903501476745720708871253208194490300487463972617146086355050675367946175762374954332015614746360686498328665094029544027505279709516235414290077967887801181890474288140299559392974813492640741911670292119657933468829375454879215902696540253263601367588467381594622324179025718214112695855511919552840961085450879825292534701705704180505902872524044521655798032848380277942611849767349493851042721417945363478460381700931674380854960622477810728325899369405272248851127492008782115355898302216240455328483865738124056436614993773840296141873640533726379243079365607850824410019140846571182826188761919997815383083098157013593437443603632347549833804120221354195062180462948251614006387914196597658264335020660448575486679567795027042816945274538416129238796224297760119630337072186734527934613017717055587455348264968135968393649443187690163340989817108360223121770737904306040043526735434850668839815257578653719172446677640418803978156217454387644592970749253974478998049819567138186062953898040869997629329283849354628285344927166462664095090600159497095272102727983995458471174424977840539293851885959639653269475404128468772505934740984457197382698408630170557215661863009910402647565571171897485870060177531764611031703071098193347335111936759347051652960166445248090431360749165087005092253201899742668832092256122050406722660283974783201056314840812721859719995860509418434884294920014443096747837738170631172158600125528059934015750352174585441966441239895577713780909073497075384506378127887455108702644452999692043574560290213738276562897136602768590538557641909506344299332900270581162184886318217399675962069151406238322294913575823416998802313882693682777658242953153691986297884556170632262406444200024140264911046753893318984393555396204111995491516025139270552654456678496794051705145365171146907022688987236257853395844405451506507597118036882650157725143449469999419007878719908651794659774984929719593415245104222802710976088969961421975562200799168197443876380491073692842151853500450169075224581619491596243037817197451764741456412090093138674788349863406775392279784595368245520278261010353384332017097315240434759028230438605830651038664878051453862385373541387269632549882813958498093703884356478521336069745522094622161942536723349287687029913358864919381019684353369994764480392279630343571275605794600624702545134428264163497974660745703567599811486354775963697042205196788035644701873966072586214268973644509419893842292497097964939927275707924079420226675144328729093175580874450468116619901181627103436815774219239176329764833900797899961344587153501344511641238999004901452141613820762622054740299499266089989838403995123755709334617727258916774019436508712622297559467480229634042276195412456052197647428376310510294479832753206312277648807244876855065148470653229236599052352395845481971438341468938534903033209141320629677380898296056178745221312474358916429602813466370761525849115218505206725423498562127167278041209947666309866147431060483432454189093782340296748596701081357221224740188654766995354749181199156518966486323456472024263590028054498092211922860460597774713907797294704460923089530066921406321084262239372815247070011911156295516866503241882251407269479635329550390311972870679497283896684702426418259708967567341050784639477761964541165470779379483298996566508486971213919760756349098175362592577264026961741960795315098477379320065538424808458688248995565520182937106347024434309096129042870696886017443064046902380003938922928772630379745797580811737748838270499133364360057017388834761318767534475947536645564648387102737209276678776822231601259554867718783792059958591705158334426059015243028034028058191307061878054428863537854906263540647177884343901286711768154230286553605463645993368835760940657345515974887940962743337592141268627420907011404600535724697807248951909269586753916448854328343883660318459946504086998649649321633318103225279245673290536672156230327558916172253625888327612755473132136822122827002589082710733828620911683052567865281708961418793658413005586949288196532158190391641340725750260429554947479131026329254763822264528762092624061126177217188721406663493217468972786924857816369360345934027424410269780916675112560486824976850080183174450892100809484150558529833408688744813140711883025639609892518668755215542659205771222978737263113158447076824245675965961582542748632528840154630385827375535988219207661643965349158883790134279211953561088884198452023713336312745048858637095894750039272452556911643560938625839448567909305099753033910351170196273858669061754571860924790888311897584714368731781219379385640243963174831245252048399971774465761746114390279921903198802306098797540377380928662354234091826331884082156911892775908774671290581382251546935286210542983036243563064390206640722124570323109321579141523699687647507848249751761052584160930145447131542054804806876949446527585401439045183000401873326329408446125258450185110610828513194742663646663174484168958130166604319101301275198412463348158457110406193183926554053600064402353884216552127419670723174384346368182406584530526911119561950067970811386848189445748505999737663858624109594899358646896125623632007844451962849082864254486312495156708861958304313505961885191659104789211509005228879448535779089651377050962515133934727370403368276568347209232763634243614864667720424210591468712085333806517374077826027278233345022133117960650292683755499408617192930289771611254096187113563232551960775613475138035432368842385549205246258414523795178434708453484728833482946245787511928647527260253870054933397453570304434363974765786503556150591008441212265412728897549819362809966278828974964581816086026454268012728297173737844586522991228755593646297395207972349313076584307430546204483032683903899936996075840356571857374267984846334968116827585261134696051528278941493276498180151333188138738057654979880317442706919417548906912034676939353244873946288353358778761643256249041492353839501133820446392375381537950571424015347960997289086645505003308251340437807340908805802534866584552988778027361655064994620385046282865076294235160697813764440877816912754672782778977848633404595284628864038045424128343850231046680146610171451182088043399367665356635073673703305596255312615408593662017838868888385858888588915120763583985724053384372326570919249375377234806297877620474434242864129062743881116563409153995988409037423086449013745721700932206443667040674207679871254457743814107818893121916463602332724114030763450710158691184129392442669507577204204211165859919290962419613505547362956589291186525566671995132339926072201261017269314202471886428612894433208765655232688618338403646040789932431331766638617774866715560235641027766244150897122176859626050027332849511186630947835171844732562715869313877187970371020804443951107175470594401797291200145270958733135624667566327534453268434861035115840583981995559004628320960988563034091671153831894613451414982154376685229074444819112535374012987366380233284666422214165646823042429940650496240818035647186585685232728289289089347366896057093041349237959925759096016331625457975412653996966052144350652268204408117666320406397605945534688058304694499107580562848820869908937919161726234393441021947818409275682855489483212986911483213920402004489215134682953959728190125620259612207892221444386972533522614513287204532171285744345672104922692329413612761141899765825997327371598000496871124600050468039818267321234889352913198152747119544133548325859105023552143023718204606290193328589285332989572508342025555128802498282265975405887819877482612513072067289735918544474029451352088620056796336642931262372085056702927373903667904172849264310836491211660027777491140732145635496549979140915523242549029934722142763213181266993302892475340230471266778016709832450919056644913719960841102846248042310865013545987129902249038226121747449960127132123022466277394100782889607269723865167877414446793993611028645627144940432882387661494923755010893072401041007680768118010736649709030004207245072832392299012744427978944833232149291578568860817608907932774482517477753980969150785693744301887850589148371391416179907077265476369601169030409996006142084369261019248924099101127442220627987248766103343357552666293657709392929263273321479210139731477563737679988789581871110972841724485566160805634646431057117501542376803496343861332281610525313325987710932764272618858294516484058021301141073788029839498385307559017804896916049875185500182098351202528996284252495224712538016236611731826057939881995311688014307026685126691550562664054175025586791257690566216571272187090381820593400858965132375757277829460401206641191741779210092179184129119292567370235929330461129454399564778882406174066755904821431169312795005770778044032109957838882135704419861879974536454545898299828161045440549192598168372166867359780167925272913488906200586974483779219014024520985956813878782562357788686197923968988874583216975743138554496745919656140498922143105291186383437271903754440570347009726728299751142052849212210743542981019435678726510744187072375759181132312297434917900360141784613598681191189032977493876186143066013603234576997587008902999940542420122282958802404347381859236887437411479938247703062521002478238648190656206678979292898762013603748507674852641186394098409748242218770442556777025860491370505449144879550024237223610398365483479916980425921257743021907245824107131182626534310172009434249032112197794659050617647601614226227568943026359871773185853289359038417822239168143919649759312649756390850241368490746822223411324881355670955996024003358646289088368808112993290052772734505508028137110292473152879157432761956569450188591984707682818938098991150417538913935703738344582441348810256665058362295317081600351936669453578189209161699070647854399144715775783340062718450613095943685386149329858512649657026112284143960312056011488263483768179287883093955417552893264418161624780428438860432577184635091590174794920886271780553614922961000515120399272782540128354064045678131753358557073009400411352575714798411327361071457260588020845183758447428589402058007055388996194971676599749400507538642481879243002500021580243571251586095248013904202493020941697290208160734718030915239993494462816484977769499842085863696406641514093324940200570491337672299258997435065776771306050886284795144667464640166623189435106715275931584858910668482344154282068895268553623757837388366250436716742552742994918096351194242017943821372208720901164052342459564600217535085181315573883919556694872715683481142835365248944670300515062912741957260824591688106494685847580542046491330507732481048436195503396149846953670001937607609694355716360935069403734919773594580403400719491677623562307638943353886698051526875098894545234716107609685288515762054218787092289388214535087421824867030875574722909589998364339252421917832515313242751121826713489064533345799744320876289333314378600143442380280805185958900116472539505226672879630905905823939835301480280006574677093926895171940301201809426864767657898315110156549243628966966129413688604089293731895967895789703005573968591542121582682103259203639341031930260838111891372954093281366843517498113880373222716655751630955397013200538622629416602524189107622526638758680820831772611712693506864731101310192112024113301142848362294404397668227277942767946149713988745795546161166544500609832351734508036623813506617416985896580132832004034622894843023673463213079262765608311547429599350559019727104810793501304924155310906066154039560874544581824716302429682038361689306048376208056381365505498299936683042936426179071931729660160699924630330929390828933261943634568674542909767740152593693562189165881273647848422849249799430834474376270642066755621828944388230043058985902435126056666707335640165168751723336460969250688974716564953825768035638483248287787660321263854065490040047570653284868225297999730046205170158482289214750095757189292196351982385411231912949409290836424076649966351613552790754470760205648757085382863008691072684163566584505621865408156582703990525705159405956784749857905971002513840422004691238386485527191126623883619416915927542669826776960056568544077830490379577726147783892585117578216926128830341679940753846319480855307907297188094973812270705428165429038734535809311971286734630110154128069099611237490273504099267072227089174947083713260661727879783455915042960835095873531383596947446895818643418326561257224748157570191606356567376387174438987467388259269815068591916045057826296714998948804285728974332183622792638956161345746101190087013688491536571290386623267460271689280837802520930711398173326919489985375134071574671117487465443974242752180972418314879272545494721846868093406431532388724510618802914451277078645064454186480040186276256055516362587787709737157207709387388727055281665578583821427253863406970804763991235669499205047994070684069286074954336825014066435366082405125902034756483692059603586847185553050029777121661984901947379928433903719368738983877185442904794591180060034824365172765559865472221275169482211072109224141456153457268120173923815811506529250017975588005597950432956234000461990858722222488326900549693877552085653693513413800428117663634464616975156869640256681400910702644709487628596311027335330026196581346832700872350097889474461460584124165057557084851154045275669008468572481913141097173605554934891626072651376940014385528733692975336038047185488423852991708877553066660238720704031205729303468020075994450171287742666753078328189545301082464415814404654483512603780921243086593394909539386389826649877257736781433452067598362403053079057656602144410407998944601087415569395109684711593539942758168120867431909129607906988105655437268274479084887951314437217886876158447920026079382614762806859096370034134547711979845663830749407834351784816083922809536977565747625611199985395963930527065669365198797827834082443478085168269998881232178086266873367065995057114805488064621096264568954221068397528007505046221748663308074435798447201390884216787476228186375467069528537591654236722271287281319717817753017073394158044088434056825113607820429736403057605382078376045569023231318919058073724826828484763217482016652867790837906886963258149305116852705649762497393215712375999699357140427538523185475464085808810000094121618970558609973551032797898325539174705429715516496720772422882303232796028093490216688580053401842441707966689324173566460330172094008111442720187931516524704203198410578525850233217399593728030741627207096346893227147603953452661264079848582457930440193276078160288792305790160929025343782318232221465721934474877968240256961779984187914097755782650783501439341216818332602599122834610188818075087029129910851432997778241962965881083516506442063161114856122065200345219197464784690919406885310169557870546905722952127357696373869363269943992607042839288108890813952907627814775178722010800981519954420379019205625906988775607306791021180578683637288081171842443454861955436693053027272332376715418294442670093532325209251048340483527356502268624226164860131720396424953553690653338807237396626440303085857575313342111321361728368565678052306852310948828227347839411513836299051533661441993614770854193069299267701647930688047834256713782380321764157463268587415822874232782442518055733807588419165545529408730040504568944251037304470036146973521393112431345579639997867047918497984493406596696590311689831898749735504885023698560763674573366665922489052568868428195250615721052608151636932187186852872901298983733486740717120238578435181384555234171034186717123983716067635862461894749343523836502914836352927228694788090888179664653743129298694453240268418773983748931073899849538719501470838054295919792304044952653516306086709546417678991640998771095612691319384030240269890273551695451610246251258387815208693647580286914675013358066765121056005877016452972078577646032960049595367417008814156585192075908969211225560553021966319641410046426311549256939420204420459617329121697595786883948511552361053581882742923617148022937247425733080498162296721322109773175086740745978218822382831491702960889016271269797619028448258275613507386141855460413174270520326245858687305560061835128377294235240916078894041765346864641217510746920044574777793354443085524475788854797069563573939714778096529323189830090541213994100596346223119965083841497816662142430971542199178906026331656309429206450404897982944664703494687026587105762319285567196455703411236778154822025218460774141141006503623519326857945399489952752965036435599210746547089709471977767297841189587900669049510773611413167721020748961876655942360222539419634927378857778654257210030400026347558527158128870117002482046570660753772947821137454207147400859081264330503232909712906224489403571259007293911949548325925434358997747941924136383267743744639847278158372024816166906177522567694689314320682274474998186903764166631468137140524114185174497769740594558822017219590501469599417355436518372342908673189475195067231460413012641013052176110661064081978075158851415598689639641542761735115682818317673271253861542481370913975430233822796401871322814322447027796760728569140555536193032180378008968006312517194647958239997891410228742509046943978269962351662193013197421055671371673458246058605634792470240366526740568891811335597415174632478905294477397155986032839996415684401426785396795638164799326362560566421302859553581812687385088447829113050303338990142973259371694101692310546624230217292992572702081355008542103213974869653407817218754524115654116943086962601254085316714264159106417496453467304412067182562730464815514960280169514095773976119172167479458301689990744435080791564575784049219654898113593416522173349127988810473732145893957194193118096173177628072197454029944452387593927761673264285498642128313995724332686913130719516285985918307773613537402250936379659027894992957540924898655019051852060116335076351347817735941235668171696987585228508930087532196399622198611222557005026779352010235605484157865518231497395679392740910021513174641547601510745974854447110349506764953229239637749133973114167386021865189252563707013151772745557228443420189085190409630415584930564370286928259801752168175231873107098261920602735389794958829905679409716953598195525400321223272308468127303529442369763739404402367120878950627654753160848906643239641669523643603393528934433010238632092382381578660183411635048913312285579289560082365322732102832729232015108216498699379427392624840713355108431436159226682807156650740036731838125028853189208469826567874791982624960977557923480177812361642050023927942826791107987863803610952464552732168868802745966683465503594131458948008459021856503897056881902005740286574806207861988593523256057776404614858301460335914020315025492283351765492013693971280426312198541389114106928021632695029477167862919663456267671662646577353977155539527183009869639711622352276845364607006403773242332020682265260004516114112057559518100835880014790526241724810957988130492361038133106343153847009326519163639427476172829539536652548177895820371131567571525228723018442618010622731071103131765908759392899859056212080453844457525649011344021548781316146565933578200235474277770302173221157101690461122011555033755883507236464392088770739739917369528872759005024957061211699680136158415060954966534461978145547575211176162175066787430293854029012779746515666051752053061056011709509309046945783909666566877311738829269980885773439175389309922782337198754939174412146011745458570779310874910558557813144415538645213171918080149185026404163942011569379683360341981734122506559409990882564394024430072091301988837020889561141819282884728491880341251332370639339732714621239604778939337413119664439604632897294753332955875126837780639671082531183804180387522873254349412678811981782064271666812715928024782688771497690920743518181216658864075003747070430948731955982652924551055086567540283881247156154566419369625994332148291875326451643548468272682439197852302366397129747897423117728188623660744230115874855527560690107842927275827175148412146842734976329200074497012609677701510383285205292191267272636033423014858579583374955833344938280355385467715599089488783980500773911895004043412301200006410270231512145363872060536498627616275259405681304470297557554730294922031895174835446485838760956159739306989215340790794684999204411469388878474915854546046884579284217247349854725842828068031173613292038652095635767501818351010761022209509663693125191266483278397864583424693793533998738431587565082418764183432036658269358477045344701361470372103435187065439294084125593665666181579781485458455631822858033646505528807392005177110367659296120109407349914824863931442803355450161516781732833935127952461719337807820985479365313739776343886019146783223636079389546972148163075336124199096559872754717331081426723106941328119139968051749854039251106452018874508531791001424298892045308666365814615290490717161506403333035626453785601768885292073256309529403478940522399838997359669299351421045720522928381590952109507855689760563184548189283544755079380923085615773114540672482353563220406129866371418443460818969489087502107799817242096074769183959241464286391797818703363859149934619480570127958529915463528814912045670912629991727422086512173423183390812336038644226067653191596117352950663734084428329958312773940505601858316163406358852323407872869864949626316645893170236712111831227382840674128032982279913579974462192437647849729332729717825318350112324391854895969453768516761014734040405781335843113867584508326231502874684995433062587079562861972802773506481497155591053822736338996972192036000632932412314998860424109174062748961702209172690480431904488845736696457307123436392812731804483610541602287150516592444018043585550305566155742110523595057058135996582532332888120471483157468980743818550559068524245453624224341792042645400108819797709859080369369722803267787945652164764482364502798238703740908758586550213540837980687425065594388513718585472567477924474879289368250160965389564026710548720126481351473692855373079325012719717261987013167196704751946028333552714508192988163081266714377772344149253674717251115462684511896491961184395833488474063527685995958607066152090131466824549789921712126521895065251428694544210279164669371553165160439842185818351897471890581338257855672466220931561432565529862560764042388804916835861221577239515544378150883065032172493227977395624275725834240114196014358545102234493953448252575727967168944075480145170949039394556719988194312133927175265924530262558633877519033001241624316845444159391243410167356009973651764734421473768792808322391164682046378324029445998361106666415986754924703548420286511835397106366337704890827024614411463969997786853037872473050474411172513879960389753172212077604564556125769715168679370837363108800596427351976782485594477518209565325158694012338113067421959288982414518958530465307426208461303851834617045032084439788298546017938855034514594938170859224348478287094036007444606643667735751339892832702021178917699246662255098379004809834440587515325400407685405336164401866925358453974179639082866761958623640828090912170329961517747917072124703640461379638563972379044079132094145129787078755940387677201422779054034135249261087952195744743007582968291071374153297361794126691697706927043311401150664749986218416119092020650889302128976007671819118696547320209905868926200417148506788906514877594126394351896231968438787782931570182497735042211444981504042272833360571044467385249326570886694922698882437311902947441781368907953299063838780529931471585068069257940672017371452209315907922537836186780953238875629818745910412216585811129498783782446819831157276985533369145785194384945320179229802847607138847133944839499967042640978580023476796552215885088929315968070302697882827692184931354523712873396503136374524249010466106323618748694185754157774398921111348896808849065391164758881142620553079332535960221054150445772145172190763421008062111158102867835340803107779283544392544790487285945659793745108211757434435853025135518738354483386863079137397863633554907226543656818632146710651616241486120241170604869463834374952365286770718197891638323926663218758712400091657380122090478908336527753186991184335227330634568899323894437663142518319756773051514506591198712187497372145943665608358370965806478439492938025421249674444017684695341128951392019956142151575972664313598605574220254907890260751707713238487003786326873171373009188806635382597722402613048525943568955374738379138722610980489058711045896198626150888868907954024424618591564949612303760679219320687346133542089227414341476874171051648987429935520678080429855411411073745819071904655563826427292619903508101442829503594888523697107755586177586398574967106580712616620833029329763623506927074545347100047126641107152625871568534431828542039627085847132861945810474064836745874349158543476801937877626182902425043995626522634794675577137282979804347903800970714549512748391089412958079787528208104478138998650187789508461703586363258932964698405199370129887183492141809765566855510824293217603300621233036526131318998293429754394147608852192566272290120243220632877893178797734262731487244631678506610928404540025103590395220291724224258448317678549665333522506384276558851152629483962777454372645056780158988611072780290989748319556440146341072058273671480551368946406094934028956324428163375725374241186757998749335855390413197425247217042251424280948325959408898613649303877402721944784352839978932363543507566357009182915914544574251997768439623543906240086835048366231436628456399519814397102009919493905274505698249317780185954426968056864284766046153398110707241595653038620265240226987827723520421869166440046800727353818751866166910901542640278621266742686269831817506246046620633570440995994584425538773798954275967570450173538122444764496533681982183985357356564987815011983909006571110611637354918246114224027730316773633406852589606061700565646712176014748275979655436519172800415792863472087186216897265972642421793047482975870310246849299934004267130124374020802540412207440203088111671206360980643916176022589803948415160149767774201800402817372421826453741858606125769117045460319102573447168528924138494279710458602511076758006107135270079314505286921555917166714694147713308878472821422220382632010235883245121750614706710025727799047341773047108775242010769098933644468507622463053738342722068993888608404915999226292344364299669173974886192187976420593421339446965353904757463760897355655713948094805844680282872654704740743513590040966730479619254940216606755497861170184212879365905496533042768153828207461421255758455464313682623815575831278483601327280251677715109531670498233141715637898974720258827659225605235938337861840291897967305090767388092435889598019453960996665079847884762570213459257561874259237646719631134223202598865400633294007575688999857053838197106498506833292837617152876063171196789396614083843326058847994676492917621576614382100496329181882078531276753786702294623989280126927261732856734123649276957972328627814784018677720629964188578406971669119011862164215036354889012937974030783507766205921083633650343049309870453062635825624005319185725583354944612991246211294860665627923247628699144695870251373607376661272357784201593328420318584145886925322178216576656783798253777822853599749386548812294652352682126394357686036913628136801394088730667809343885498339499175221535617862031494730556191929113572031764690347258366745373633093764838929530548343253982773481987384731586643076881719088415189896156846382091879680983196943782801150476926774604601209441324399358907436522853586750796169893131572864368125695537709589370101115170623811074100388232617584584781949812220210782211623921729224593419171495191440062284788944832839424638277955832578723608078265674582150284802840473724556339739544725251102138949559323090586886379973900849891652998284415861910698419743537801963375481887927845889006823245866044174875462164624485739235277050021126525425807417601265094270962039882532282571502268090384217826554051984348616399964012403573172532060471628778753049852197089421897785878699952593771178274830280790471683013032795576847185016499553564136722632424868787399467639412831301449183795521640569712858304589160295188235927565031236226614519164810787426808778089435783450491402213415961187915776220566628047403044453802670039706434971277392282678765599288224716556351890794961785974232211997706568693969531766126438100400258318030540164036187664551740551115271337986271698332759915272245223238804675650132354053617059120578622815968397969534876799100931341511081633931576077407896601965884719579853962846610990150976717804978053300881577501444919109631985364175890918241426865458366472714997022708893640011325150301976637912712704358145505522734294444265545636222539546117789745426170865413458582401397334478016941225719560466654006045269474836948500562716609831323591847434069678204667221210223017882909167727669850801370323728315123725866326172072572124096904200763693070710062364693858918912624002537914521919274385953389425713823230895029427561274330167726380232872809075241398435484259260722252546571403617427025616652656714919095985742501497767525970560234868430214666878589653912690000110803918732191003069673594800631835302992688711089218225367917616505231405445748704915403643735956243409600342003726775663409639729381398776484283093100090977965663695939401278131411478541232800213754942584195310219020210515894231404084372363538946082255633224516071555151562166230845679081178329177197138103026810277831407961983078091007569546580813835529033986547692954288345910162203398166933460838921135912926762677066265643656800164486123886606943235418455369737903831647696365860552105407887054563769287559500102320738669987751896039731056239748532791283149127888769717815751872785439173310562794888160564662119372724713089162015396824540993116509252002425393289988961436391019264678065211440783712836854139061721829672740529511677639246737690553179040317464916958572168758407167889144360323387379017792526859103232204792263099382360635838901712317274858864545093851782647051097199494153076580937696599772011892106745054502136603782161355347184431718207908680573025632664300131153959322393027268869717282759661084791470989414446373941289033526580350520573358774516153912121598833613046571625370371512175049957954454839813008509448319619567434673042885446248873178850629966321201806162461634167670294685508407163256900804761297650194771330754839416381695377585202976321197661924180583203858028358314370630439581533338929047550105399233149894913855151730310716892004542512344269899254789078611125855984762668246998623347228010291629744874365954147825679843635484745990050445398817278782162073161681107372332846555472471942752802985050707677754131345392608136513456621888258381544331260263665324017251912677374646942072218162348911141620504609963995123845676334265842478457941772993315333604120784190876348955933665644436377034079696700292722144535168840995771566038672273387750068893219711656489261706340073464437752259636740130189920014508577370311261509401789037017078664672861774161288932151434020273606259254703262958223165583297494966685225223806699529144083962774281026420081759670003775723738803404312553049540985168655088160045501547768603227981313748601622756215956438851368613964235771970106794887941387890343259602094187596613944486595563545140696974991112392139027110320226033932048301447731814974308444789521372624898257871731935261930381156439040048645004140373912666347852898393341482338684201154655464770691259127773514444860126756897676799063392388934664568591598881342968253969374169819898310347073522721008609092866802868535718876740016801970542572620253367440482486901846322182352073224672589128776741846440196736906083395524351724733143620088468862154077411840706171317036628683985430120614546684808437656468460499066830900835160393840931974573156913247933616147190701613643692277256891727848672606850943883191124042113134263591623370991105992757168716311410148654234854210842037106017123018334813799463494886831317017006234117295991761639360350740208432430125545949860419019519136178682353430739714031487553408818764377311206286344324584641906381945873217966799175783627499275608118928741978996811209245620374742527571474695676134777191374450318278196253639173075018377901096646557310571168612037108874908891466502505443341501878673303624669502352958677424629678704499683081473087359942908611624568952776158481952489628023262282178005857313907102377732896603757469395654082121175299884348010566689808980204127764958557769482860751246737723868848847826246342356136451336270423233617840822475274820172409835214890816866382650713228109603270570040547861733557512577899782972015958969543341662410984946049887773663595417947195599153171745549632829864824359029441102652824125987183188328158713367409706171087524527407174891432872650799565873243639064176914933435154607746342713948758197800910610217237778567838934010202089877022164894743436913964976919314503300524023948207188610813132129421597095863294728218893595415768208106628365819968138826164531171351426447404420510921436224557565235719267750250424908848744674735167195501051537766983162393457107553821121050307247184299808940375860467456284703325901184789564481091376464406810338988131045378260864898320707858124091920627872410366531471367184399739205939576542517127847464901200712537327643349393363434893976860466266618602719679376457198195506928238462986470743858622410174351276117608113598801117958775178250857212731533440688932833739366737869937107862431380704299964196917682959606029519815764319601645063559194779191102326830521592742352215006777023888769128974976950235848629136291654272019857127223750864556496173785956924832567580370205435457880443269085844631376402306336655939411271973600922174461972133793625567342521877466357627528500728640173755713250056291520591507331742077802387850492898762371869230306836807666823382064938197160074206866037387540101838549617013612487216480495324445009848349267294452148450111361347453869252045314400709524613010702367372555279887296655088391722107694667300218557998354550877013738371678332244764393193042483285096862231633372243159754027831326113123171189004357884280423865821429498350773432558133526690088949217604874326457709176830067356407473992359384381933480729097922355710624350769242448814925968053586470277783489809196753953065881859063450773964795906392578660247242504922533269743801611619617599153190099223728806646345473031883640290169560837454677015134513286154955765788880704761145373253150998345923532665879850169641028881276138929733793807704661857803134422902701125676506808468521604256344777743686836852606903557866329212896836186089421168413869897600364207416194243613754516267530125549555690595909609826226069953029399815351669672958268996135529129846010492710487395656932297536268176937739101038145891354827474477032441818065230180028638600565165979844273018953385672150936539776567480539176599742151649894013150876019930596417705316858520913146736946337840087686322007498444732132963953405480750425811988975347693599387788375700150400515126358749611748136284150823235669727197142561975954762951286271739730965792976909803211127609802499189113210153474046415255189318068322742317215025490212932847672604461599903322962521326012614541010329176962649974879941262455233237229308400823603156608179361834093491861363066180434729073097541265947273225200945422702852644830092994683806759821487854661584261575834254784652923113739829389026890187854695300735446109711789373269063613474107150916529870597849707878031885952421709016841056632811797730620559849675268625636847721997369953737569171956281846472670799722055500625174784682845249435815046521750001928357007695507915074433902323443438693658907199975120036463654383645570981323519948932682462350025690509683600004812297574869054431653856394314370807530703237177851462629488355371511323078970408379551441987274507473132075716449030303020196336022836975895010236220939608404663112966326369460919261693957015769311076119072183298860336692709453614051872962971917856182852136032743816048419982850834344257823702172350265529689066575307988134076563609600686277515292526033921286268601026084121651127318592823382442509981133301075507173896213511516679555713746084199259517603180142982369608414774556614504140266453411909416314703116520416965810056336056220415937981310585803652745055216685891490179210728290753435754645914264056250061592289962329515176140861257362554137940128215018057004595978634989647567276146459748809358336546829461883229594269040636438777656147071947802478526940150894591418740894035911606025532029365690017892840661005963162566959933789244490254888266819624575163364023590738784365771103508564302391443744452738263839152601017579625886280905234286276071548407106769071223273831933281969940090790289583856291246630274300403129753943692297418859058849862584735510832746722436198595212694789274312090571269760439929615539843009016162642647325659247950971836024542602131095091547899320505472446179461584750427508081219040207487028155436044624615032233461542258938449025555706904185158167135694200496879824872605946577901684300065989026808067037493691831342718986424280006218156672352741141519436460350012843678912263189701847314947696576501265457781438757933175403923568581931264041821986881287689168579896513527314570312958412943225529008633191286923633788658193975437471301179415693711913488982641477292074413099036756588872013607034665296890696391368246236447223464061808470421745792329710356456342379815232866741953280364688542235699070157203851047598482932350303910478710431825849482078963769916689809303944767577033083610699331120941378483949870189861633094812051612351146827557035923763395652847122393964844062602132813361769195331579103434047303772062175975400488681854231138992171181006339724863212317192484304046500649429004515402087043433421162968413911967018407779128600061987826982036087225558988093239288570787497551685805528218451428546140280315387625457088338528990999442052984183343033122636985532876041331698343988343695116871186007682832564778209905822918786614554541510017236565877015453075806912737151614524909777875267784122737052634067930214029211031401749929056532376731746239080691183233940259785326828655234339517729125875311494390817506229797682973877876004848613538493811154292837959045766514098912409173691324904337918500961699200774597729526083128036427421023865481763435432014010214189448139611117906466406918709639028735779264735632477099648365103198304429840624189788130290490403026895767444787359222197188313189398285903228062847013060303819709018863944527858731790832171907873990151210046809324941472576600908586829714864776792890697955919888644422986493749636181320877382683534416914699893951959046739295816768792833367209029494962888576289033951892559890213413676657802482209511585980235128379642107390116951017313529463466043866521852051052266524944999807614792228685370813776275940624483488017307791399059230479752399032528806979989776448421811491607854630205204853291602894519806865702848068461927771476031737557219212036251239615263728878739100065711614860345165255144700126164159674025354470107842815381786672383515907890543609976302583019954118008282185526962189972284149811114017155725563282901676725664759686623610200217697731085946155201552718131985443357605514666353383258454154035848137881954388819546483164346601745234112863663989600660687982736708181274217680032795264923615625255095975476309409019142716049091023380731890597838178422816097557800024663824944064652514532957910214256168205778270341332314973250878560171452818833367652568785851999256882032773184602807384700154020598420972024250794198981528612833652916606579681622742196860943666235784443944495678274802724389346424585540141527927066590178463725353434286163979695080712734117437743526101644303718517410277489347915085039472290888970600347303865815122395177486714859211523070780932565565056449448821775472609624081184821859904588035083658993580319352156914461114116442681142689625034345652733973446801676845912013836168492425811997373562824624512157998390027090440799317794656824505094263069611225894264033586737645164269810059044397528236074002501867896616860718051898934045042806455998853758774601102490800568853120750734119568067136057828687520815543966844193513062254995124071454709129896492201050222061286489370841753979569630704454418824171498722650718702025388629025432018670823006968706968135089311998393163552677959202538000209531689269619418512232063174435541832459282763071621475056153006657248292025381798877013589792748337452995183577601396550567791151798775814507230893014685684280383651284215881474914686669043384922258694266395987806643187201180706828053040121744458030217509409110972499007941948699875871699704312511756114152684006180107694703428218433883992587423617908590871704896005219857441933167979241227913958961008264629048994549197792902600741637687319526599737313815728018117786617038964226529056660126967092037617978294912378864081573683772137169939474639493781696245883410226335735667616334707968799340576532532700441788172465566734622244356794290342090512532604038572282123153912285091014620947470964672777791255904371509254135485463529148326365105448535370949814158150946227880410820694406217711608454140192642241450107660078052954498262310223011557622283179441590063433315073345738701422554050026472450864245218476685209620442352901866360407385301825205441932393356881436110047105765769634076828135076810384142429658082356653743811912700288757285199162716594854306534872616874753927440200431993502248526457442334622449071467706640050130278863404905422528719541358614591222656818383611899164870522297722361784603517491453217547511863911205362825668929767600406945583542858941535833523825577521971435774704233846935268990950305667313503205397698599211498833881093722768016490024323169251859940031881037026218096799567815931838637474266961078182848638961946513562823527454700825149371427810607836503346341708090939404761248320711117064694429690434230076958176212485221129545767724974243491497351755679487751892319072861991682673304209109332320801085095040423299972795746296894452229851521125992207496173222508002344055260833867626609045648670165683908993247157845143891025815553824182220617378147740500521737807721766508476547026651236344708573185470600362216251457307948635780654957153904108502505371107298002435797846509895104586577193095906035889730240468617424307327205939950500132442315966234977674317083590871905894666225084204064870395013471244450192287457120534634003356421311286083048728257298762864789351891251638273907058447435400903952346742916975463965114813306351046479029165507988192560731992983498705664093578004054602360915999325674322300927203139903134267943719130245143872484143110836962075441457279221677604670945995248570311838390818051135336373587944887416896833307013145260289439738042735996935149529547444595086878289905552006583301135505888302312159359993467359573007053543871419135412960914084904790702709715754048464067622930068578297384984898120145886983195912116916561284309678768245107927837220957360046278867565243359866578843287249093260305647663373969766996115123314419394466965737957340602558229773685422881836886631160191600587752557230308540305988761578839115146217255545017351022231099451160438016976676793272206020645467925327098953928423542549199294575571428415874335558878212635556859292219314884444835575493130184842368130509226385209116394860192802287241884882574048664324018824670475026244401628214997182869959496976635488453531538727785421111403881408067707072464327470338176227244388729611283552251281373093663841852232654670715676061192419061717533130891470857312012927482605627245564346827148338468429691083094582328234143100242954649662086370359290113297784609229567767488232177854156779301808509995089953730627385631743029515920107404386409806101708351245646937579457498385266537025033704228627066010674783942522442372072263404643275296627718725062637374193651002489075377313079559436316890590311866204467793281780343444815595230414043647824802114843910117461695063651674410957696220669240630557928241229793624908537876003974557366000687475511142512400244608640288688971907468412709766261646459761063839972611437605338113962213491942619522530018501195402036727825193705960347511072268998547563356489728285670217423582993126231486666501826935518153782639197851187150758638740649353729402470509338021581264802508693615824130720945837909331965966133040782527670425567210088212814801616936911738120992086325585996560563918600098539934901262817029791465142601687968799745563376036614545451511788447587783275120487600186568864787059537977743224561172791126686456629112575384046250381068872042461741113953298264068362505338580602395938294094839556225366036922907508879429914641710224173260934006764699904681995896505766298669968818763125179722616835540511558289158472232806565655390566283764802562027207039037635785114905450947017819146914907674748687458001534686739360186076225507971418874026209171997352194556292750135460739106968520268670865589482640279047885223872799322365273496976859555190861229751592072002497906245728676479183333079990348798144627016356153964611534520058073480684250489956675478793157060930664220383172168785056760142130675320559667825054599643646371020607202709729472123023624162838688474110425936745604159690550434902346926989555558092249990238096425132887590944859921196394898338332822034194991292112558040135110453071504399648571591185835502674065564789870145302766856952695843851384706510948870494521186098217541027244759591599498596267273386074635978092115793119986064460164790420894295360718120260559857777402660519822105510411359934497868319103480289890560827820499791011469505822370144020425271347588779464719426361940353353991201321472319894118542057597491642095656419620429489790279884407173063926404507022369711955348552087935996181259806910843331551732158344081739386341128158780051365503374982459376803152739525066338521590763006299528529775860066720346902576985245990627631388453490845963134897639901194032731422117562942200525272736277045315520580847419866563588293744123920414834239794011516609497183479981857458188224876064338371747985032771366404067066337871466809771594415472611137080203534884270460858573420998310440728323793104608559186073318965024936088144847687937580676815944279074361831601603614402386810104093634794851758793857957238476339532963398661990806361460362356436162345513624648134950269513566520155801240525069692798848666576464734461149949737873859873149121692675084653575188857092630534801652544117942274294941452283168122529860940153617902003996599731885008658057766208517848600113672096561526216613177442876789774411265988787119751616647481018571214004893402419815508929659852657734164599018683895626994990059190834589731494473965580271550021515407665966228568292622283946708567708695264053526115228416180389045702152047489246835768686971828548048289186939728855396306317009336261807427243989438206906186807011445819282202538999651565425539051335409550924131575920807175999959803804377503469243552276697486076892204153169180986145719149447350057194736517550407098484606669993761782973870315831455333975888006303690294875523198503172131676784001746626941243712404573886781888934374884976132738123002084664579537905514532520080498311713457148949382339993739207541441134794594622817504108155440834225423983729303844669272982772851762481145680532051354726293053785606093940070422679023194838319362370411141052052264186866271902300955169324462226989946029852675604588557434410607057420571789508310057806063141481737384213995655674957505930413320818604489306223800273067030157982511581818389045657493111452430518553123338698860230326017519627336628937028053751237533505296045560938137234810284075385413729289357062954152774766332498871561458203775910409030726190419591721307200913378337940402465227148806380704810213063681561676195622330295836595073580678670216597813701071347940318119415624233273282901982625512331937661012609157610310114487077986151866073633464208398860509549887148736202345798864085259460259855551222714222597990220015001421253723749912071309169789225737641572547644120977078829891360913639088235350086772282194743991889538288373363639582137247365607328900869039398019218490410173088312812767008063179269521542796661048734019278165602514893270859919001002845069140722305514199835706796103777071155700797958476180989132710645060736625951706424624647977556332943186345830227422236293043352216341598412461328538514428802390676376903214327332922805723545098522808936369813237984313566922251409382796653301651779693930514631284097381250429119331883626693018981737177431248775295182152961918350768849220172624416534205996934614581842632806957526070153257498123083080067881984393291537751335052309441735877219132771036890034128837279933859710309223072774943933485984710773291765733376854407491059263825935039511540206342014986760693861245893926531949493898206108619551314888144629177723065825634279024847954251972453887955590610162812843403368144682396620610801534768349750794612761747154530776264292559056150037161337236727742939560270926351516675946299616158784974928688002803245816376164791546654386371192774408518845283003031173145012716387084340330684561888195758497589983861325034406898710976155019636801608084236279861413021378465307284653619356748710848540646982087874534223925742933645392507445427795795570034506661862595899157464150915107275305550538907388750955455831184811163653428801686329845522537152374556484313265450168783426907480392631915881867948298527215957992655721098218672929754978040624564000293069779495396523386767372796345231691953708249558998984440012174913777887078615862190387014262367313745827556884174712234625168784097929943933233661509152451375722847812422905386910199032100291613051778060766152127724864033334174953113971967876200730749582193906616712796190752015276347285517769631771195804528475739799432956319941285301187650696648184462616951438807597164948285539766050070280113935554609140497425276390036147849653349945037636173241375513927021728053720822442801957200790814386710721089942199491430580023487033549040027202449709972857929997301619383063386424048894303127435237066190838248942658905959378564980547090451826290028886853641327832229862048423763611291567277761060204951100117259444707745634328330170726793122732787512547288502270347980044238325768748792104097699016464710588589338057968205820150900795292355844137454901325061619261646583460016133138856872065162002016727614432350975434900291576687020869322651162978158731833207830564147936472305249198361937826818957575636249540535236943448504022673815836694828202487276441872212834259296385279081802184181473967653856527446293425495219806841631528954019581464503983970039463364934255465070020740093810243463538962186196561648893731819006800931032200185125012094747366299016410338643534007883064847157295998900150247660547835244963463678572784707747411663223150726372218014326557534112144886325551573662992013142012825827191113708528991216380578578049643666114139274009958478999854960154559191533566067541297948883376446598637711035657922776079380175038383324367985862107097679478820588815603062985727765973523533552659945039242937464931264465990418597500200498678102633818358880568699520877373023893286110951903446268962822342701846028989004992042980933177323936753377704299685199185680692153161319553235809301453972639180069689959317081436094787306212179854065225849316217366343962389812667345200804982290442114619287860948121876533737827744081297578329264698717273311916795838311570429034966342337821031863985850081280262079489911867036348466443476286244068807776747271610997723977326094926682090619685509750694177751443079795037631895644796549320483355518171971883205779638438265535348946367994846616162558843567083789096383890088126835731851731616569049205229762533670281728459825529486154856034603087217583931078682472587484238214759494791513152987733706503073724093928395745367099685874969955445026734584650170339967047839620052318325419799448523265771182258717287803498210865406020397342138112145132572775174670935563424548835813529278742284498110447410987888899469310488684115404675771463001923066033031188584747037058590495163333940088189131143835022461502395331547047799220580186293054046867668788053064404965432112246627221516670166089510052850828252504619098633464650765956714290675256478974855941515680570630786743753624173976474781379295313597504293111324346356914976491827483792071871451075075187321850279249962629615880154458573188902754978184861907065199661322493807691924540794038747500208277026931052304619429010888986938483364944229769251776365556792810426323478409110337857281118246408083033526065268672801429550544551213920609617202139208492172923984593290920609705247742828356180452050196166264582234282134204315338021989309192336800795146577937184330593249477701110948254135149586453475070411658640926210261920216301039911344983742539626041978996669982758611931370462013469627201829661896172615376558266927753221615829343905503235655855876565826475494283352734178654184717593649644472958661689181616595577697893824108009750995935885720177049919925093039269518020624554287861940155605030489807478519180688082973285491622458819122275176111948619644645027256195534317292144530910984251509013808951929771531768286554721018611817048993530638700771649081230847934862810525749345970596075359646135321565105896348791741519697745285092670429221426089460693914801363269847839051551321984141677883554294719910849693776094678260863939678693026484013479396433893677635011230849826910518345579206206099283622973220570168260910210578020026429271620348728766870020383010148864679245668052742873428878730156314959258848175001758821235398993516127388369495251596279257168634887165410781982753397400253721832474000893454482943542533517682511724708005212930671274713233326390491975229119430658385649272913872514103591817934280001100637530936023364751709952542419137013067047466131734785673758550259930778038581720236949157916757747164062625462974692458506969093181828154416961791990136445281942551728208419849021674439989116867523956172514745232498345722406969519491375650585463738987384782063400187780427035656566554775999644824084536783275462865908150297485128967262951034333636324400806846903174529742913720212808233340739392984444100113697800503282259287635372069795922957788351777212469915433344242661220057982119189300446404377342469681684681141402870355288354171951585170172932377153044710982855391920092777114048502110672338690503351439775814739531552714743278246021822292813790024937760804762936460015615123504298802836014060608928052370742613089709648886745548207443899362798232115253110991995379186954301626849710545743233644289343266771824804629444950324294683686554512494408027892756586102189506338829597107789183330805076674442151902435683525027868300343022006026512587145181843408514774357163806306186651288746222882930890436473271655509742506526403733157768390115791074757552584974273747939501846573550470210243010018737637579938773390635576280614612328116471841858214587369834171229135291407620144967993421075840264893921044840113620223344875484621309478213532080813102593016018156781336033627611725372287808175965625534859825702652133983006905950377436362832321785254494486252761921944687064762613159128591544483812174473521178505322295670393359831343991298987282425679583099182261443491031374980493326773683888463786131079967149807596909184403341769562133196821271395641083043483530602121739741495552414428234159061036172985673665169262380359573538035933665517170061828989846676365012120880405307464492684263833205666142893208142684461895489240959390464465075328714245372681369425864953333174620058399343418874314848338945996672875851834321096744276152551036374221626293924618402042171870869769052836363414759706366624936398143027405106038738783666250223775255499403953008698537531581850850188521192298518275836175833673469615270068232785465355862440040667960035835319625613440704284847084911924014750559411431209695081232087680425508326843745161823343091066930561103974898885283029927906499134859498094574166860061996587902365408665155467334455483898458972337061068024803826304442539853401889305612372976677947621280945843049036683822706998134102206892018481129114275632640387666270203993453184494737603623436592644188418604733454965097220726736419226262662625377285765575164712926649945007953523086476832070761412892425570932015349649041106399265860917023257330058746727599808257459677486575452824002376377981828787425920894943787794961866665186884495300352189462292282597031112940592816912028984352380658824016042503746189902494787402206903278248567183917330975602606042101346579867311359596034301561007003379596427579466535455725927217898327139227644510285388980848212622942813764051180735901623316438584959254443344866216495550850471868898550580216418015998910139718959567929809333723297726940257589670884924489406771136877942339444979248548943503194882028729197589664796778477392241345778907097168095075827106566864948222385982862690712531480358968460639368755272627277416154857726938934642931745399561692632669395537837377600728057568925827742732694764428570201490005786563574469464626962691045806801800044398224846611923319090416191935922930728436421081419376519622970078856716455777755082096390636705514158170950309848475870066013877870089175877761675158797638088419619862497325263701887467962673605814925492305408773212169509175450150217854405018492874716811099924628366785779368275241387265351390546148977893165120865792946601015887492991353355459343323421714107709591360054049895802835048138617978568977326700903474537742028753868321728691411907341697700798026951959301982230012602963237085021326750393759183325619516159539016340517191192707570219352124438373948541734749425967525111320549000928245027387619625805104053787907804259388105075036734070819889855418970586563132331804051201407635054667703555751722729791254381374486089030271273209710624893644217916209947551819549941199574021304745558536981784222141643174030896348087550043932571668653336411896879475923754225265527821878605400744899104805474416323622262817009796997999340412939129146552518548453616773040275534514960940555922797399360049141678018983513688993661691618008010772970014066289808142039919789267833133379312551876356407016583541301464669433081725215318864919799691049070648798982167795533174078079917227191093982114000906393263860211743231198541789914241161265359463109997361108322627074966997398281957128873054852283837334774967636065955658161373454799927281103201999260875670536433822952199019265122618760791954561807249847526531592162478125738941656465806878023092578556461290328998332795911692720144589842388632199643496652594842275481183415999135482792508659436056503962946243644682387148529264992416819420614247676318599486711526633404457742530408392036980646402731176886875276953428865409791054250646631364879427018823056365296529924763829521175312654005562241147176009104236458302405229861713375200319014160072741744669470595550063951508911802629297600487936270600924525002417560441472883024735766625727514777588561050970048675742596780486521490988128798535434055233856226032863869882769277940418695680909357517032126882170603427885620163801850577032036225419381655505161680470420222417319964128261447750996397062465143238347855898457153269974366344248069203566405537757264079369924753326557555349330630963856814047242426953381928056039345890933176820290512239039054437489746648170549273996445994563102298071778960162487510353823834492217907279634493345979834609429201461765490741839971689511643040679349156938445514172269938961763153329166525120730756718177163772991374920163131875045135293352157582384273251567028402349734534386538055078178898835116456071647532246847196939125484245420884387517379100331517489731995998474712252531502109174553620343696360720606993274354074401916213015904846483525435516765560306190209744351813611716946406536608423761099425619726063998258805139340038383631949217542525419652417608565983435967414824433782545389180111309824870074337183661139829253387378233467973219115800087326785385224193351266997683550805123035905456449316915414963934380197566301926453239148911417151694108225603388646909990151487302681329634573044993100918800100546518002037002371016990845813398060255176973759744683928136663533727604239929200827266372342287415709211921124003983265260632214170518362456945763466053514013568034174383602665594163187856169775861665440065721668263450487866808333285938576133342709104654387757475251383694818975962764672138914304853042728014469837403218277472418927881138043800168934079412677222785905315203111501758280566294251633204051590103620122646109519933433584959013624646460670063954554852924966584323716238905542101472921929973800994580617651247406515226060338109886807306943133720892998457722010478989682041688054065237297734646935919189393741280308771904398548931009746447691948532824749779523485670511448110596712611508244531858550532570369996220652447416630060553423938166746165685664654454593734913119677015184671539264527910205677168911334569422524948499110839842200615084641201960618606537261786001467672704753866777014587195109083280684996044029273800025809735758347927290326530364864440940634557601025954147319576639597835104814222232804778246516101748570216322794580370332289992663297973793861631623926141960462938762623459872563358466458358029792070009329475234297689665754732951122236207831607714165701745159857031020856398589223567850288495419627136969136537441930092268116710880096723208739112170154591812713944795731609498040262867852870259794210022222727421383368631301964645910753875051564876115496920057960926879257809786364892062980157362527797353111072107254413283884892320904000739216402200068745894279063087593458199469381385087912399923567129887870165667794590702641187245490301460102552789602526984473030615792551794853731780029693108472768972615868720815305693688649870245316176737072521026107198220089463265689701417701744725932458972663190363626197424335249926536056986791757613059642039412470053125606379169428346400067099232062119392569281220455655979207670486554991631810928089808105297599116035639076551922035521994961340768616774101685553447085816707370991987876447872281527699081762746253514233686772775960777805891026425223874599707946396043814606279004693569126490544294989673643097433702691280595654779404778386352758902690129537884729488549579669190069408586717105742519536013825881933120045998941806879411243569406870362700620931808302999877899254661781128455201847202776279870016722397353644234004628027547436442133802997072805006517463616806518120943410143427816111782817573341856798568771122379987783759713004394999585067289636543831210623378628223998694829529565524527423469294955608557982631034186645354831299442312490117833766552927352467458447125640582623366171788115322350794610600067468709484876495100567531898418432109034980306462127327123848825084217991042817393328618405096417119508840690707137621879032363879820664624089735697352128867784913924878430811352604285584632792941255962724889588812611693937598020882434478990333838242518592509365831386763891579879107713877525028218230421794144084191384575328703318954835049366257959281895941228694584328570129263846381101527527940112130177163336722851467738293773765638401649054280863941898005348784980111136255616291801225644698177512856107806522109698572577997092840076181386369840271441874731176659486954008809726547309502159442563581675051647619030784200945257318354709298216567259231712384735593479575420622498474636078102796640661912187872169969887413292175574869367072066703577634333103686494062565571124807378404808182650702196658195785207397504461373473581968695376318964021001199386196905658005386876650118879470811910937562225766123567999070692287963924621917472842568940817533376112847889906607835424942749682263335585589016272777475018194888742272219796751416249144853570886711497980960871833645901343833117038807203756242252742074094791853944369173069810939419201839098930710517641392492781473430425096409646171019583593071815040040068625048356192010328615362203905842925315698956927311427463116005642457571791593063188461797773486444603379603126063427377400636560249239031020760541047348505393390237200061953127785054651294874248274258507184554222902388802358972239480718732459252203172570371781072224643537340698688942881439432770046872252823161755712286089503901055198581029065354795987616263860187587766363494542145124233841943939886373722592008958666946219782515551298440992295864915761333661657093019728650467483679696461400102773001438731283523799241780336521873620723528906522495426004333456471663193955401191163617852729718755280118964230001744502348675103112468298230390741960554104008828549028383993655062710539046763818394492348079174671243929843793282559542864635310548746034064106504445041715006139235885595752604419993426782180980715735483121766323061715282045945599112071579583862900903043704487715390869933454603170769261360164915981798604526805369402944043747026248228745430518998766175560118554302782443668672318150925407509906288290410470093209680212995067937569334967651410333121211774792406994849576903384950061722589280514008525253193372508634528209179490941067384718179782823100394801613489935205318277699796621572579815221342079332431428308790816246048772829514684440572815849456538372350864606956276801983091098157329457635367978149743786045484542492549468378977886385911215498631234508526963101617569483409235434352023374278218878646854421272744741007217198613340189584916404079220772460731335160764071722674115883098660859926300118190434467204031669260692527141298535794444662170467036546108560971835753749875796904093825771319678527737776316403333936072914343315058188686465934297457747483562499884427125072014607303013332825695160382226350483177738307809004052510689176087698477140959213540537622168684732535605412174324458335553026398642095891945053878704483852533196064776865584788345259886263369676754527547875853779380636344079035892976035691860625845605361755278107809540652862868596311327018808636344715383383501824895535511118597683873261469599814088412296824788102928262087700733520935989536296370626575816063525956167878733358472115387065709573919809838422113594894178888821477209964363439067827686643257240775495064568118176511633847935069527729099692627404557593029325069671876541312229730111867206237575695163677623041817247341059760083493984497188012750335348573201750928150048706923928431832581067322226355755105276849781790322754686394426993950986362982078395516624503084598901797921009201680406461267738877000402203738115117677586117710856740544731508762123315936861933491793264894430152598431586862461330890529607878370903713659939299356482916958256812064794041049681167169354618700711938644103606901049586250939091389256181091377133863506448581749864599992066620790831453356833531177515945795903639190485466490415508644951095893744395398019856638061900830415096446940719413557036983276226573706239228722932094412311669475200626639625613917073194336041789124592460714283833351045932345860168484608026626064526833943467443824641160646790651040548105347703853792120049413564115080166318583847143421289941832128949345061888512585057942108281122398236192711729629406226446790201557996687379959136660522226538093707297225434105316622431912706531682072534921699036720978911595893367811628923318440050523464544316198828453905193385760675708900211800753171390614481414847522827151538156665013396456696969685304476641703470793498763907110004744017951283313832794711429232187177376844521066691742890318682491659958311461290040904584275121978300526465991597415153657439934691945659375074423328277669815239756632545813685683376733158530773460237436425689888806338953710114109592027015264407850906737982764879651108042613138461699902972718471473024150545365116852897045341783225004317268890614958113606834695245177154081662245774279383374131570412137014796407614435384140639632613143057637261724951572865886797949112697391384153873295266605461126336036056490124494070454952648455220404999611288274589003332772171950150768493816952198534505825337412727192302631438096514839954885432027797105051755822006407424240432780824535858518429804432523693116263649610139244533753054379353945372636077759313403849588087220362937529464375578809148845683587038707037007143969874966325594618634127723172057246080788644110600693805805816995118927042001759029429721786523909748911162375130666713872117928026695618676016170834958249070646894840214038485805101764577911875682823398633401221261119201335362974144349024459745205461870511924484466786263266416353884004512374969772876334933672307875794828834094007015340227342966691689228676910805797016902988009305901959935116464313045969663279804926470038935258056719735691865126817739256453984946222103585515207909885722988297920070965052653313954138808091771087343314527440375637385261695492784137008948585946131166104266428524856994760359202639356584613728634918269322604457193254392116389974779098594172164346160422249980318300478971173486506651308472135322591738712392304527641769209676117541146902067040824392604854278288921007606391298829562638724872675660058948918719979013580128836830853100623562024366447124931461770703644541809994723688985244206555443239010439785607666906689813285523480579518356584929599869760957225777560835886209410532823207938788383978942187298709882568628710424678219612197968819838587382401435104035735345495487970693584783541038621627833531773112409772972939876314054038232946860064956474695261903682203160448448283574855985123942519606913017734989439706277794931628350218705540021986523326218350058688961683351628364651647358175225526125101598645000756004324923487440249761863374389109259522883731196563516476772251487136157369018315993129219399064303128677562085462546597401543609772972439944554067314708431783157941482307881052830679500052408822979633456371563215551518554296165755199934334498442549780302674806515867796585107069558119813906682656761674013252413366259479042788732084466651537088466879640945489527411956623382355756410375954726557547024738429007388711573702668237977059414415363567454876766051912254297055033550435477340361053973834099096773320783174310510458358024472797006484911853947069048229794043944755029474075016940598532531012480058731487574085814727032918494691017193474757139857619679077726460320077889356814722779376167658570936684225693057578168109316647471695464462397829018065930534579945428719444633944879150587343525874520463222818475919705197900802661161852019610953146852241385431101627117575673100807900818867003456120018102547919192998448476183801832648412145751661583037124000687120938706125097272364813343444001455696825425118187522223799202601538185303571126711990254257349022695163877102705363903402827116897681037464777030068207887574647807927077062168008414312468940507760369267545313322854185952254933914157780866537033690664549988098235451625786633446544032374878108139181202223852801447869216246651207003940290501022404199695652275269619320515263879889240091121588705433451289142203975472502476869704365029860032382753646148228072788860097439067333363096916302508696967628556820758114697009034830675004712738250672598932465081209887833041682792622606719653024602542180087754217859670439179060823898664428473090087088733854036472602133262235037339537683624860603847810915850276487487217987109258003705613370992541993656927391496707595868114201221785232807927632928708374175890159778419077844170064733129423854180991716368032022324685355934578355994954984306956626030886446964249442191198544377194989261685639155095907801249816006968547390096776380267695769439987645813091269580521110250397996282785897620243337226284012474382258082433555809605208332551566144995409388285748936076415190767590485348367197241942675113178243438189490729436390883183351578034793509811736534124965311078325341184779623034273167272948952131885814692606709890827778260461423851524196815169584938945321546271443047591447990755482395304663951279877388583061178753472047808158326939909991433426075239721522541765286671166677484888688916123116849531122818076880712490354011175657168996924680861452511887530751011394610049265725392333502515890835879814546362738518269327866179481601851638284684100325967307698941533515976841865893947357789049461123722304159000423419054062992555547552994878167509202911476657409500979361173426281090701085088663999026859455916692280988717799353872526007092956394910446483484983833603874100107246361907923137156476062084322022188355683294645639801510398503070444848642597445662477585879247902585331229057616139094931599120563374393895691526607646992718939647233772978062204450072219280445428212789745829230286808843381218574733702237692344533914732283104409211132257954147678411521538490259486130028696898966470928185471896365962038861592197983827291346764673348194330477504399831893347523838112834778776843251588386169690979895066047770201804054153792310348136770702065151903112370512033807339364219382134957830534028105449796063027534366507811115891050468775235929019286492294879232424993378485131398431251666983226558608535464191706273265087268760274826052917362488631046538468399405757427895437710709883722252640696790011558528025029121074073296801053213569103480823174090842583920098649135564960424459615654686454649670176662347968057458660540886063614046180314412295127221705530882023218876253739034747214812595862814242045205500312021991101993238525866610979424762216728411058907320931786086169510237224150097013757563149192206353738586319694951419443604367730037434861665373395741935721120861383076846497827510840305801124391985078322634516226795465852247170756687191022714751421285077162927443718526113826262926482335265650526277874722853002666757040660551459788978547499985665774027208704787762451948448355609521954700272959726865978035522096262501633683685237533020930641856663003670850472472232774905183119739029848962799420779111965064388023784852433428643403695642640268577018072842831383956340633040450457256017052442933083787216900687417823624552636784741525245266224336903496037004655171902793087822675245584672273452557148676764316306176691043749608417357511370365355834001336125900783099820595008812717562872099433026601664390815238214444399445875011479148978118082453222109110680520379745372755988298161105649812168790520134844138585559296550687156707235673596212930995418294416199478041917668024394917352278318475997830472655898976279707630925844118288985379184800839583442084890182779560395492113913122319132368723295986171786187877803522235846750223267839498651990757503088999036456040185049395032002866976560372028007680487551223043875212861213464804261843736560261120981214281990797167573685179917666659083065739915261470899313493454854411061133330544842919598195779221012321857894734611710612520058158751887367929603835422794479297199341093215074708324736445453201475879429073353141180549928871755215596601197412739479376229031276491239257682014803046711313825393067768315288814456169994921891841423476703108639935178369669705794285334078048003221608700796059935377994910503909057519406049689877241658018566002389232438674866693656167189851649617014174118247069486094635498835913261171662491012360887492387408527456671264890159550380118804952786549316040555582909188848213218215465871721351509793836888323911119663889641524282744605664727068160479330921292597059857440571340515160145770101435025109665896990135116930257300539734147575222965617027681836953634611791048167130110236099238131425738957304741323958768061376289172497142310114300489140967354158778140466686822586258916247669587067436673355192667784360397576077085951412962610626542446773284361625443252305127721443555687687149869153736253820087086192629654382191235609530594044524766796383072949892453770825369962064723647175479644362777101547625240134662184846599194043629313554333459780943949873948443357154248521006483269936675104137314308919946809700211774450515621508745801274097829983024883225140577703930992242675085520002258342652772713995860746055865350384728280717637497882978580620886175619665900117936300319752806821918415642267780297572512001033219482819880445347524546589660304359709675552286062656767605921706813283450314246741054176041170449171334531768461370682025319950781645400245328314758467470373447327009596551978469113962819246501307540467767118204450328520607787016387876088205880154635265316257489065159907539513641783392294221160193575856304500053175667723192448322329869865074493702547308020427538513747054581458330073333447343051397345061832359640147850418289859701757747791246876415672342911093811620984929043569141762118744541434406379613486954725681832198821440698832708040630766895980606180692425824430415147496203416290604252414935396837572861175524785810120081723466823506337900944695538684996939895199370447523973974606195420945536765547178850756634227549140058160378878343130205521841616444142510122243887975619560654229363471082283246567498849564111004082215944538063710587467666585725258735257372764365462776736385926932044214451097072846844364567526965266677304756843578836341997323682076172054253820137896577368605060270393918449680537542326974159435241000487694768453814160139937110525264938919766329422403214431907119776472779575320188264531720765582672684612206785212030413206498900635320080247838267037025502268682812612541243437912374600531250524961361765608899365036004052841557026506258160822500661502019396443356041427155666986013979117775317144195018326278371791312347507848784067946002672587277500787892660676032298202397157498338626491893570820748090543885866362391423947392069860902401627973015640074573791960081695724167874466808808509696274922083498644440547747757380088380359345512918026440636876183388698192948327180598426527994109928131215554829476006828254669153880552712295370310654153811421713663087090972585247289816781388227837997360525594914038697830916108644023875097843381262266847141890725068305609274251309111136975716602915227986841124764624146233221493713794204041777096890404523360184481172489914714032500998097584528908639636576472433011581026901217214313491449980341294447966153428363255475388634782117046499086057092354852208656965832354255061805679407723288038623692305471178133092387459506382257652756677255453743858923676570345993076435385930029960099634748047416805584412494774486553395158072561482599046322222450503107247409969024182309954010726114814637110636175441750391371369085937818950184001745781518899073223977796297333059224384136654666093431272049062954144691563083409570471848045799463722048161652095582690670356128733547412875998404473723948571199740541136899015409940571347483319311127504582480863727148678124945574069868658168924879286113529766570503196558948504220075190988192995288611746033940727848485994144740037302694617005594388778167465108124909475056610578829973360159469710676625919968621703495121443843312072988956938160664410218334811919774212907570875027906773788312645803082410108017332249323547630788963881112402868653313753348590675462539581815666515912220689891256168679973552045929130715185091683048952431327574427965023156189457834129120375916284856475352008466512691684559037715459799579773612598041187305136847324328959677749542058720509702472070144297541063885628983442010332867446709256269997111914122739541707601242571033380615638507644257026848369441510998397246125446042649092845424394777926137265086540154697312287746882031818255431607843994630863730195096446475493708114836523889049851812096686338286452745163313355128240244964388047677475472665112783464578982491426026151496216314201292937071313605622022774245807037158959406696341723875020781722918144896442823151103270347532739781539728777010384964787271876217188998795763285062610817868257827733922507066919220549530558888507625542725574150311202812218893015495731803163497044822723133708092614193482407827521660918563795658731052081989048537332037899895324508964212367051064100751805453995986895750447247046926010235175900253240118127246410442687896154410968073905312616910264833195995889944968651752813764693482684493169348731285139501194143301614887969624136857158204676409799749808754590568031076272798719382176727049612151381712579402536160389799556381795497827759931188223748429816717990506536637718863425584590728122857827264267155199698689693205024626856880650145318063994711559796255777502498213823158011628644401653766538818920057602812498946946218433279659546802542828461989500331595460477900702098758641466514467962511204279326841771833687452856074138112609617941425018862490516203988492633710657570538162907392328390712117099919929637682305263746989729934873783993365142134494065456938812144934158229427846075720970721536196227987374920508011642166025087485606593646831334689597395063718533710815733031764446659505973046302720822517759420786689226967146490238871811549656503687616479046802226245754263430075484300083493779948851749477789730113395895362268567000851498402585059661866156264329708969358666509784590446110532620979369713082577292489398879942630999072199185024200941599165637168976320513931108276648490492954679398280840766322986739561421929805548716888037642424333764267439859167876538660941252784448892525638174535859967672118027800670605547163745663976566304292689486471773396709371350017091791259067940030272193336168662223291119916250887213435633093173639592448576800347568244911372917427487062439563747379668281260319064887844439273778876892163168576855808664923186684551937015269577458155049818902074065023667795964190531213032383760935166150755182317260969463467232664264063287786829792778501830838450013590667555018232800529798925888112567824067143484508727538034333365257087266742231857649720328879257896498097661369848915788506474236467833102046861883496731619130332808725022258789101581312075513614368788142686216334182989713899301522534991795185975066399012469638943233908512473227994314413334884135933979914853878126991668990389226365310301352013334553881672413288253370417746399733941740657375765129591733364807675589503129633644853771821823317647551914322987483860698820805603994868963698400460969803978196509728103514524974494293475153651304484144161443220051178598187316758448107348857829967076086803228797154747613433719024322047282509455543986027017284460760303415654112039130327809180893160611419321321926295688604238058150582039987587912706962514083569240889618174750675790935811754343904218678006946135863094459769101110002922716703604468954085481017192112474519348774876793927534890143515590987027397279663202829117765591063745396720066406363111832482580303538366663089542492666999192391670981021415672919140506402844494432799119141571025483633040318705365041661191626382535526081260710431974799423363698541993378925141679313778443522844676369563421011034080778478922674494950599140420316275491135830872149544937231433170682837039185763633894998118778637192120553687392551021018494284593694467344220508760713663978886495382311578621437230403607775495288096744982381241018429495902308576013920582502876200706992584230208227341467295169684986385192086477923419263561545500950169690610894444905491013861350130662574701267582972836882152744682379133836513037010275644897038690046821945438969545949576183835955056946795686606037228014026818942822499892751832434760674724085494927479012787343983634015077938843732353491277793317108740058127078720156878613970986653112081727305984556561779837222132067415121262929710865704143972696374492852238759614428323573188735681360921386230594449074830415787617108402693502663418789007554083734092739285787496984382573909904708449166068915882147637260281254992588736557799616986141618707860060303871450828777560202208317530970214160742432252049423344937251684466344346507300272505184952033315058357674612937892120797946668477507449177960481499171412715923942387163457158365248077613777046507287667874727936781296393739899946328481020189832169116666359873392897381373779583109941866198197592524937400387987786404854788886175547280763976190209035086262613844591202780397614757728551189141601627393883166595179381513725903664791520332531456503307378120319780574964874339107260744547285534095476907578264250252975092180805367961849037789529323710922204777614186500183761031373766758143871028112259054867347660120620214938057917116312534170027514918671992350648041194863215824716941354288938065319579344117313126185655988725787456881499814496758518619177552974251007978132510207371885121332368645068915681815639331652326076904862535245958410394111458244444520796919407287455959912717717532582082452679869986207196596760488534162544653727028184167055007277202383132748928021651175627856840719253268748176043015846624138688657141429406589072118337859314534087534646166547852817482122493878738926744910140420179397624441241838626749056566194752597931187543176637275224170826871913064208158621455689418561110422149290121448328852479255758000840475250712394925417678396142035375403551276469141965825158960085744812938811631718344494151888465651672473854150880084285776620784981752221118297792234832125698207884435037581902296572242614435151785128196147080708396907115820712360619635707364029858623263139184351282097007690348017268635316755696448411269621526462760440920211471608979706286394790155699563241127656641345808090612833616859579453788005325300354688586129934625680413652369842974265083764178005716276892758859518849241501350244284104725855319617583787517633200906982135776175638103111329441883076399617043579488625622549231720852568305452802043072822739396844724072285937430938200957897585892474526116645353734985011640408137305450087091342066244670285904515589519928037982522564983321243936627433183926174207968494309239011016968240983992056020439000776789589559607312369854736182379688032940380615129370326162784358775536459581219523555005441774302190064365122386027623611046150252784841763213540115896666878494734953297935707462110856843006483995608642573488691698329437598626929608205892907307751637421041122448158596475099090560237298405828045966638026477871581984093170505761387222236295438328447146829870795018351811903653056842947731293244282258085124554790982420891561237660094926403903989700157046890598083776599531868756402260237812110078362348113403254944104974515096730764413428800596260643660742545724174765226411448709809011435000176911444582097453044020048840665716902915412531271557409166082320056954485035883601469889803591707165023853824279947555510488257888757809488582125636494672508087497536768254364600469116346984083518849096927885605383347330282380953994219866149073479200081605366183343501867519331326179368959945674640291577621574037029855223732640477960120842993818660208119577494258781110203780987795870514324919850629953817560204906716450221477378326951493286765908438056172646788082447872716459593685775866618361496321702345040138403677921739124795702428683415646370282226246786593927106538990416710342841196750718175417976263805043396030243540309605938852573201213626450129787076582845514341012957237779687630623406197130766426057535388064851095217858403703399007753990980269756296071770027014720570426100365328607444584098920265123499065780356714808807980704957541614005832062233963312398952933676796517286800994917435673793703253337622280338804684947172782060043799517139721000675484038199144609056490300812766843558597564023518290021247967305229903086783788370399242857000399155816232602708863188986103385913792530080998520988557482348212268934051131737565178732146678370830258445199885206408334951261325039392375368842940249350893502044844770654181325593172140381294771610729564243325142623714058618157511862235631495849233103705605306664060989833195491143404990277418292472263793171145673712212628974488827382133757012431037154178223255741407172705856941189822654169677618805720270531332856627575610682943235664479813172801750804116231664752162602328963698158696475941861759925472985187228092433982427697952727423639804293495132498579539403523836130636439250770199274850377315486002261005240272946880649403212654995454184823391708715868942908512671314854379093530915276084662559011416785976129153421718288411770202731601550392393085973294539495288805808712332575847678725480257014788000478654047677054292083195884371055504795551135081492028039928563672065497276664006952721931410641988542126103261653248340492897234508621778659279917026539340495991968479656567879016556973548814867625714965949623125082959734585627504934832988809961848657235224172321778372034755086977858001424830837927730523750196063236725539816944329997800822623195429466627299815955431552775735575388548254528132722102023826015309035319692010806842886811063662102342608701677464655459861644721137552508641445756642513353450229391513400386844911041586307915512477079276865498289296718447933883595905461456636847985593906884149223392747926517313697764148938138136598717075795024898329400517637018056839667339088429306615313371615329332648291297351575244475320295464325716621630111690151353574504709889777116724013741707341011494925792535815219056777566346175498592564204275129257334019253615900395438988629017119052102475694324605714760600561332782269222314918852788393087117418131456828221899535817076722846206950449782639940426448722643181098642840641376290273850904127536350330341194479870213544288329730240695510746744271539939209629820716283907076378249169084766821646011685366982416250076557793412518264876628924495609819421004394629741099841952893054328176235717521193829259453366872739173147115100055077845794256826985617217635790857312135644307933183727975751209139171349271137775550952972151400354155182426767473023629371911157369101351687929434276332646006306975788314031809778921679177583078813578958170624644834618284004057091036391691995979307274174767261810829127358540775202459502194245139220164697353513313528848805209721845123048867744064922671834912486342226362182743661903692995000476232327214163410862134394684402751498884419695626372290976548009966734943538238196640554075616718228434330803094370632861295626654136078757966998805828027523797841364216780369681971418360514393620425435343995449538746076224523725135513649054167756393807311219108259478569642105274764905639746457984045337510003623502326019147760767074874338035646095636422368485427240921958806985122438957884117376349437781040338778417499741526701894395816752414249906477193866680116873071181171125880000422007709828287411734595116530310367041733101480592629952022500905139337305885792345165030124739734460470442917206516950520452235536042194057079775782678140299734496844338126907100206967255147782382547331097123903710614528015672355368680250575278636863243079659345521382726898114179758064708200549245887003012596273426337842124814960858553219894938166872585017465190576801377623488123081423437400056272819874208522110379139561888000175290312338459193006136499324759540860987382467585505266095236811144505130644878044346641766028219876596397342444315347876819586094281196172871025422282682764026925854745163053197408381333529107095095867476737370814583704105892948034594407432749016160669312079475662617681679570772264897877071460896637350698063040165531091332332639588226278771351349532593357817506406793612908960454639505093859257807949527052890363415938665609244784882110490999739699696484092889161104142768863958088027432920283952116399114103255582665271323148069653532340364458603309693200560448856983135730836906299449599214990707551312254209257162995821192842998908818033235194044727713116671486102217114055226683340241313934447673572165401721808771331484977608181335814321980465113218598081920842259262585470125364643192324624351910364104243235014311256057854156864046294813769046927928154127156273696315950144175920237079201256479802431123425364147046159114402982460834808701376949044751686123593843604232127525633076541675129621076185866066068050034342026436340702827332456973441176099026051204748343267125446797463124680048335122405984637795980505364281545970201358405797018226099863625805736241922085874681832428365017701226164964443810930906734641978522747788292143858964363162256859859070258333445946081517576758429161091204195837115931179474523654680752444952101463691834664735544836725541147577562662672934887843859452403806611870188626786103586738728178809293555209952617732550959634442919178513754655054127859684909410235381924934451205519289040704466526189482101834807422502485458281522919877012996721104818725717983036886624547020743545508308000321172848629777474792556581955155807841108235703573736154450396962664288400084297487343748070279927624228085914270715574381160664903882419427707571602264533902594762648859079522805043905110606723657720811948143159739510886284654238177890520078212346017208058138468340338497493446269369248114441591185172187800822555134337990754796452960135535121259862003929293899224248298364046006342730564895239004385677922705475972600256921772013627990248568895620149775671586714281873696562231755682807901946494940192933035792168837113912032393420857513961547721128669599807060311810160068280823627376105177854606168143577636574146966944346567777783404258918275970274136256387554712222279056456290066845962746151263388486173212326733527410036352422607853102052474169106090190174720506645377600969417257560424427886569548975857340623363320771525850976696511810953987967598916068228827131200636599573482445093317802437148080243837356372990411949355387708328305158547278352521163174610757453306381748730152835409919495461640956598917592510556126031486501606502079771374444591743465927852534490815048318539489612638750493086986223531424696439509436490543990747125150421484084474181796936087351603366992524295570439619721381281003655448804985835528637280104678601792485159066828102365045680174835682928159936861710335906906077244607655435797197158943322466117136857455515645914428124744040232185315311827257953819633985792392089300727185903027229093641910790329533793471602011153377672793730425534261535460407152671909745550630557443908318519579377828404483661589906615822759713511175943542426839579481202942105547019679561636548506810173222350247788689965250681054144684351329210009278307102455586656276054810748137578228127139251324713984650487801536069488785534729164684064895526942215502512506256597916775244314068918339160031579330795462090681690989035134635094425353502970406726329199295252316673280703335006395321419959341480219684445482258310829785378066600762838723524659703499310259979220723139879983837606182566188671595645673444220788608809463767054776284657701886670193385459140885958503064164588140118104190131088219060166315383515096110293701155521019823805371932973616640933241233136942670514569007958645965621990116746656025788248144230542281746704475604058876073451805806856540315785257091601153303483357414698237972501118859075776209370839077716416714125910210382095245418860141677333092144942295056221962363917439462903880969689352637479214958920634334789996090801657224981890944394031281883640471053420055243356793453769191922781576410278510017660280404530035801619418961295166418018087439830926470126537646084420043709245315347940003180962550745262214705660337164829082461640808929628933007684533075940452543666444161198479484241105308680864440698790079050814754213155931631536548014980122769407375359466281088032628525637718170507621546519783637491058699508418602827248237089139420383773051943329644474056669776563788892973522650200333680225141419060555753145535326891657236292158032561712297227257368221746859888974820273906683691679731531212449103166624492266495020409462967303403078661627431080251346576480590940540536932334557395957099232747367895756870402796442324492680375418581346689952513392339007626753205154861935702744658116896904625602464821081808477332935669152239927816994256324767478261252398100048806104994814854951313699029175578080569270744147168408143609490443403608417312764504789133336867010955022999479134810070059134033471433706489083533695826806709093645035579672037164746992363179132521347776054305971241917279531282446019357512025417986336360398916568869816893015797307856077842552074997993547468956316554595471704574161582431441037929524971419539779359035395603757196844496373768045723763692828875886661758434706642271476154037559040865069832604047476675323630742011253455599529743643556201893943427055873180815205521650885912896440116464454370199460260504469071103668602916214399674636222288769857699873031058291292104567266835730574482573617597054093588680392357968708868431665874900215154172801459848321272974137720600980598761202820769311440192992659994525979862539979345724798466841473241523413850618831852830050255029426276520585236922313658993574209864642004362731525480371123509456277927986271667424789891930019753982420989121921500533318212429364710732126323196108393948189634738693162610593646766601296400868263917470590525803467722802262566447046596022244645288088923603927152488156342228153515353063507922844461917331785675990110188810410568387118243941526071504701000675947699900627252357542313003813673246265013502712730050577998799494727579791021143256478224982247066616385916338446593717853340040114495685088993383886456094262047074395674225720566828190537179813247510974920676432141610159434675521050628676537093660296885908632331239771410679455108824251472919199857072249665487986684872752748393205109724552865243595041290317086678768152709048742551731556374109849251569349339302470670117503732311067792992700714629495262153436851608215947184870450833841390547944644656716092441589623888608938960098163542880878921284628050658159276168979851299968411263500485431522003133047458928134443663867058542850994651800528977939708887216407543594563983861925924374852851437800611177774261327078786099607935835428148061800858500213958084567703498105437875534404216540512184544846403162594733699283408041150752357489555832975575300550497368368970261280236003195470397135718205807851741326664085823421780584125555424661845956518409136266061916157182047834795586359546325722828581128639310727464513660544898412090314135048210164842150577758674351927025597219697438208260272920227654802680933662505793833316918460158174625917842124285444464875929816228361400204711087041901625437890459183143613176595721357318160821882069578732229300370736502406109655251963846690825119260487120824479195325468160082477346552420493287461135081410101796162598275773480553810340308043024790054153153800102224023628896228847411516259041715547318918608049574402850368536098038242547010594852245395141841416265880154122283353165078463823165526481522183333309532264426830625241922542641233383326514892827947185896467850561666790139112718169467218758779274148072834942761073018251537617332853698065164607808368452292416617405729556228224774603757347005471223194522101216753879631028089052649874303342319547060062965351503983419536355504552515582253451121211329032223537963432937517994251789610194085198660821403598145050982091800002988899372775100068885552812841074719243508404384624247204980692466817583809983055917191077354038097444301118752661207229485922041313896229035272938158426192505175476971061002517320245883223716756172528830622885787448843381794201176367430134503795409820288969872169322033993323445007078768935156116515449956291914722517656130416642081223139988859114582864725395461394997101321719813805564756258955979446322523245633648484808971330583808763709638802272040936691483213547922330788749882527453865442482471610621217762591131342617355411854009723719436031092270068586509075339920086049189512875646127398351394472400754502117507663753131670051658067980968997714536205786159688414033800861114819596748766082835983326615104698904852915856900929404021833475588180585912915777587113367039379027041879088477003579132441160039525699097336220591156393750314932860104225383237013923722371710630381599230713745816452398293870474348488231605049324739554864218770153083968331359089825830555989000799769997713233059764296167092409517916771703351350313466428667963566151060876998569198252987415441410203360480981965612209816696177635764888058636108496822288232775453330804271951022704581068967413412774467290824909349492531824715620608994052505060874889115988615975716717428086161108077078861454964921162787086522587948589915814556377583909962827157900238094219574280836114166924288181779247224224934573162798905122245118828327835432161761333504108768134762211685830809949066957121682320105563471913009432842989541464953792375420919053440158085714998297997306399818885142378159066854185368593571777575008392319096237652353369883605237180081449745612801335634141305749081537291850186822224179211468608050719317123608115618615569280401208134465620514471948355110820615616829083950138234844993516461904793791205496716149829382146600440376694970157160648590091807161274086282127431597756969791074714445643376782446016828844261593014737394460783277822008092835004104420796522738156277746742522085337147720641919434872326120877146428086001294780596167539376136009104729592432150720045906528912121630498112937845947493062410703858711759992579793663640336156659835030097565687963377054232360911643907161957928887318977624844596942391757128773851357887384259457123049931186528278375263192977024281953708893575743130865271691817856335848547865305707854868059002449446395907610217995056252189154222412850700751228127925039434255574806371198632894676785492854666403062551016096725976122195080967872366196595506661807084423403982275207826027887336131927896783121499787565869189288591251218013438139711751385711368489884346438823560430066034240205974743228738487816705723891841293443069758729600046680464427379978159134591861332336066325231396165092375198265747310080207816331141982278974989548049583082787632737810567914704377460582103027249859454033642912514194207231795636016854348926254667557170295947622004681389361679158158013724265967333936902071233726196595420732419317131803164085111504386273797755694311837567276344842583605666822656759296995583002830346395276356199080038641949768408226886574422089479464255688538782055983818813507100983747137823298541664300342247846652664249614988962774699250285242869206265044606326413300072905735796262446002920026585941071637214786693266420012005141516679102864227676669813669824138298214044417490132040782119816830983624495805247802022091030388109525880357834446526672357799880984928138149300237472220745561951133375373032051335158281944526446926760551067990762137271022434575986411298419376479047787287256654854091194430913060995606828815644312407578873776069294425390357472188539240599420541022682712269658396673378024355619388298886075732886123439414767420009636448184018586053653849647609261092671885040999099212287868928299870029201166033205086269890811144235480662268006544488011256411985524677297297642250919540161397489771629905970550587029303070540151819942743173100912834088266612079129181907426023680083842342357393722466209467123077534537129382338377770637855331777082215299467348749311083427282597219637855944361837500822931771354441643212052494765168877086087757757204515012468734147289111098119187610157906500838955893269258333370229434337911167102075951772850890991961976772617885538028298476093455346629258758915884941897194945909948919188012190182560262877075218678052947168729640121783509447441162227457574874357900530569476691218298183172714306730514208476663514180196439232814473241236608391063512104392818478434231490035874957985834805126452878160942079550921819602972493670654002965938939042672554892994710337975323050914766880879024883219815861966154997684420033441069079834978932200749927925834655999077640253242522846476911527888309567760020551510586598268465540824609605822938948819802264432192658692679161926275160168349988684846878840736797909977222043414670332550114935281752347301732206069367906546257813197350085500703217640903187947092322173243273356808293844679440430257942762870161085360474396904888126482095779583518952437604965772026443848783432502625884676649400742051307743674417367173611997481907654061931788288719761322722504554005379905285371360127341727927093617356915906116425077931583492409992737286318197442220091708302343456620394179870826478823738484809531120353113183118429758999391861910182223207302090336856602507310790102418541492221563456252387442349037690317754961961775992512493870732188403509911114535501217043946802021303673437103250657010759883138852935615349481318829851700374281452029165944797952233701706612080693824413975555919855044026663061201102768671091358653770830084278934607294378101669793985991760624291044835645831452271901383601017766899658882373629688131045436728931898518283137876622617222171839376960607574692668333156657976590125533294756562861252726462130377601371026440551666197185707403681969613698612304053137510441462750330351608102813244790935540154531596415820561119471998724212074729364030732124596492349824446784871395683948312461661813148346488602151226777245659278010758059660866352783538487237848876974869573465843179166695894868945936542974051988144367246141947754818397485318270738583447910497747129727938293650047565191769893634302560983182130827111091503050608783679696577076516741235251139253402631162919002969017661613984556531441798638129910133144864460174217404447579593123455007285837167912871082975137487462181005412220152851146065919506108164098516291806829412550810479342138768840523020613623316089125305879796878181231570316749031633849547731609598893772593852518287005146608150018520175021130628947998320795048258682115326839144382092700569697244824310653519808170680575077232925808345496682662420441045671306466622437240541882188196118257735315791271744809554839099351485250952593741839945554397310011218525423379543734938738423131881559463409132954760139026766209175636637711014494037163444066089447226149439682788327251531126534446888630499590877311249785303626080598618758450741965041001875978884063293073020765917904423238554512872899740300370139638856623281689195663015560949318382891993873800308054958467609661756906730544170676394560184821780489489544345647861317640921223663377794860910451180580401710132315521543348423764216529900448315839987381751585795080358268821645313517692643983051224282334701997269770060481912902735820014399607718580734233387547162668704221851466732408042790220252656680363499153900424268210215691780309024057494358119353124949050904470403649536467080056241025063008753404498106104171682444038927218448061042833683934748737412819943612796103655634677048655647244359682200148845671537716776427709364982637952704995031257911757741221395674171017155960938533709074984618012204811384486258388615629794448261693065852831652999990907898130641952151336782285254079932597522629053360626225298783397533067872294813692114728782530303712131784862342274542121391457204393408092186220844248694686005431449428711453743582398093471065108308534540402280543662053729007323388933455238251571718439615428718065811704161414429876932523220703004792030529582964383876465624839361102704682111605570777810110605166112454235969637997911905780653735419216408054950136486065635194327442957008301904896158664210007614898308342889987974115556659886400100971823518135912335032207923167921504177849329396715619605089241826968731359503864535677906780279236749718841546701334270476221381174546065501197983555589304476421454717796499235212044355455109520029149948763153962485348898649672923962911558902033708936024240029400220938920945927531167394345826825620632522345390523152404070958504373319524844204835967324330895772038870481615613025242250585614612012962536210708506167843667804117105097013769787970030601429384059848490670515563050641000476563928072245241553977476129737119071280249621570653596351895746308330401939142351926320606596511839827984062768367263510325041182033190905339413136598183495211658243735423509563791035094181103632576075208663462888060712288391265823513001328871517564609797059490428694451353198452258736956207307582553407275881020784461660807760533406019148930215649895019430843732674292665992657241267808718451431489491057184231549275600820223200408239880813531141158325376660585254269897698328777182942433458268270570127763494829563631297358187574285365389223316366306682563644866532013494276831310602392317357257680510164694330441851721786353620520006807941792586828390427915690171209382475005522317714964182203798589178134057909465533371619813681973495975759635100313369659027028314062383546825202988739736212001431557257792848065590645617763431823735767152318761211977982380986348199129732622786326622346894931944844770173014865611066452620430407289110156389283857834083176237626959834304980503633839735209248085361382261911080760075728872181781154849543737290021813105452644962496652791804243586029169141636913720154237208083378159197301945137454310183045621688115844242437496319508903303096680680809572945265506118979934261676016912913164623590431394689507514947265874554252061369679323726270995601048866264400074313858310684529822096236481889424988629754829215890971900305480827103001139934864922923944069497366693019334204046335386988887568371502698248213288664497985550897794324516614409953855496645630649377065658559907206588308139828652999105779863975446860512395005114522640707887146409491561455011664728015998105595915005576741827431025798821583898221009851076646333108500836168661000867966941146487975014304769432188911161094476688032947310938772463645964650395827056806404941779104917578027412054989429752572106589023308774146950710476522898982996025795264298874273357100491473194898507911934791238280633302950720209563438706780276161943552646328425179946884041962795215867322823007761890137985121041876127210290516273231070754740253201911491281397302593105949326642598145410334168964297961639218693773766309881355810564899823221098609617661535618759907914869490747636806164802118010420614268614106693038899840583876730916575298538269981340994175996656165269072518854056888189384509186334632763089812620950396627186870799032276903482674820344293557655637890180648497840643961984789009404492421584313735952524681071740169002251337896167469531765809988883559484286212004234987885221153894982366168511578221456066566243425017847207355895361711604217687634200141728953197967364001327090632923841094760184038233002989319823880469292737844405881082910251276576522588118268034696835361649662926910949202121248876545483019717226955990964922927152069540417128488215078643809048071673463584341613191425824190726053671540665510606031387038571518405934649067669389585926081888129049408824846792462564334085083297786726164718009938797771472388075662220816108250044154078509500950721596070733598816161521634498054165360413812616904306546876634657790349675599299955668713476120646342520429619073129595235916160159838207984582460482330573870316878774659447133107677182245548932011774880697198493389936441390376561128116853673361176953819909028594989050033191985956912192988562476703776670983358549342954831552410613151933506257705995371961152851928435075761848707645846547230483763565980409559740805376621657679301991561653308328176900035532265224049776820631536358697188810241800320238425016791144102823922222075959087761085061273974701226550310126797684096236174926538532761835819383456825581151580448571173078474167593956905822899900880462469757836957712516609792450063161681784220989835212267699105520674608311057286875792888067357719708444777898526116120871792773501842978342498212352329628571043263590951971071475719676105743312212308995627011711773966745255398199939530423978143962118762312124870002442544218966748974302220825238010334342819484959847201312943326969830201909131725588247883087369310562101009657647109981723604517610909622130515470811246278652508055825446253323922069673072911511814679542152150308018851863687887695008248304495661858558306818324100141260456719919023156164610666198341229523192327285334344234108054492711821391585268576443220588950026192488940660698272925428250321276742854294349564000937490276210779490036747315552383009823248552353621885430239278977549696976182261844033773729536614374328751066030493957862678124325413475735529608147632885298466879015864398775369125274841504035374293264692650175092928034909617893852465292243236219049641543303552774190438016554801493393043578693683477421908122185409452821944513196346415300990223504621079423289303406877569654550399409619125924054155468204874888205715953529859218065839877551106294195061982747202299490153753938082599353608610657510888489358590063733495853014899420136810722330952345318052187533550322667211588160993922224715173413103656161990867291397008050288923807454192287307659028250859003345933687366179421081616695544398478590818213846065986920014533798720168430664135321933640036918480117413105303629513133629803090725617177241474121524911353253698758947949648594522600430705332123288336445402377488420915423187975649370338141459863066182150381917998371674068527578559328476855346448791458989786829323962886817820099304141880968511393305917639400157700021840696385551003690879030296094616673806230791687322207224266736400649627534439155188260594169769429184813682138890436812348305144331767075531700799093948352820007686869629525925826093419285375686264396141263052515758214325912225118083710136260587546467462668614027577932907732114565279976441520428558863226484654751072362459988578505289918981441294396134993930687561357514866987113877442061603730032734261887051634532827726199569905676753091979059708530122772125248182217194714619178517599595175132601639629436726263860977239018166163094512325486014424708572144203268459517090789095084759401197920701018757269948832388707279924529571057153640414770004165756686543540470058226567160997825725892485880046814939896954394732761929374121166618455185710791498720007048954140336307340562216423660762063642395817499055586661008941733256143171719747471833923426621589176540711640037026830563031543723933628475477913140407417185805228393192728731192159173637753340405309331625055070456646378924058024536448046771554383750100341386384722815700657368426292796781588281575287865234058968491358900079421710307409642965324046874856583148796603633055864319090683811573527588226082454707044745011034572180567207999990789212592312582981514384044684687639995899303092554034911334921926763812579460253994681556174075107797455893765610243606438847198337352348409789446718543832008092730091842262942089900794444145405691510112272909819638449417236257211539658989894223185259090638397638545211390661047857621328110816070050277414190288343436132649903670984539038771941143799361014545459671084910242063366072102771323556641465531529779569591505850982879273981420381331015239023707006145370747740950111324306488528495017461840801617383210759169642935316086530237980997495633339597378816204330628656514587782467043151113592525469192183339570570603261166609443706347533626208903725475414128454009717089024576142824790973923890900730843170499756139128557815992588178573299446503360799563138295308407097339104269101910307068835582753022813749755156124525328960342388420739083079444718761625156663119444488278304887440143377288507195251297603191462620344277213335466468408062552283602776912553081795341986250643335774339343303773499635751712703038235560823560624081883787447670029804835003297170148637429399191357239709547180874766135822137214572454225740223007909845835769551404501862542213155713438237297119149171857991661498790933552955452394070786053165339524777628274582744171592126397548624648289612368860127558351614775195634063868823343681118652237084249398547366719091729833371189554330876286790717396815081253347216338915657736458644406798682161060969817720267071381414951854668939852935263676450117441140502390962859733813629194247202905303592058143516732867682362452802529992799807436023651236341210807014043653121695521518405946816012349165692209753380972962153248888751306750191111997562749675562967520228778268203304439396009803653207740037969973838543363392932029917066781856634072134404373587817078248464242806528574195282086599237614147547981260099402205440417932578970738614234294847990003246767068009707992796167101461021385280112274142962720799997607054045949233804178569260665160402488973001996900892188607601948864177844456464274187364261245730699406197192090748740174920517019388450045663268572221602939941876224962294005210627817170562012843888519271717691469529599643336348082646179739887709946154932535998059064621728910191835746684960417403202027565245867601315713734856401582861744928222010413177903004050294007550040616653649490643168578660866249648316107284636431757769981320806153841158398451623179394335703851360812831770579868797850945934346179416490292016739715635788496947051656919710588795614477210099805399124408088482396558763945817197839563329038594655953640402161980204346256362694113748538054284669465756342473204327366759849241378312001329184936098432545781289820138137489282549239150852649087503701099894429426614046092762142236036812444629859367624207159759879074714074206508752446300437160001805398226073660273927438309598095774217082075532059277675433001931397886546578728860224492082484438282514044048867534293534083870374955992769125336276137451563703824663950247887072351185277207358454015754414657110233469490987301545327537304518831474163577159113196979560668968488828334235481261071951505560512958533096686522808080641521298953704986186862941328085867360306017136812865278422005453105493404746162166866776289859365201730143634407972406133101944186609471443969218864490350928428200738416985882291382050095812238138584380003666976682740325297764605803462735983682451973478121631188414629189131045940360945650937975156857493211543648237779387143630728409980771141596206808846806404241991608346249456964766163585015102806529481082536388343604330798860275600861905239210720473323197531281389702476551107901118343890325054478613458815768106363979957415772275672518579326286149785976238853022344702236903615348713658568404491598713326015727779259608666392348844447087456055527330082564484886999949981866681858236678836741926042279056254661192224055283570909601420044613134886222702644424902814616759494606354253717011627810919388421132912816269193546448410325916440937117233830959295463205278723477892608469978923285596736103262255507959965412946063542418260885936496717673586002596373534160303659134914601018798708007251574969409755692129388372647868136968421146785361397442832757777077690458084703840074755856319163013911492964563202366452753980850605103813892611721512057480968631636534958298945710376264803398216679177971348552436139000192203124645742874300898463057924015155050957522853904289942721756743684911348037433086188543225345263266372672666372186509596004360333956681504922643634244789958677537676076028926451559192752781035424470578724889576967039473088557468452077585311867198114938727173462176897189537427242593663769789193528958018560612076047181404969401313953816434234715649772568888318092707979016143619606853331791337157219668168902808879762818361575986911830207315011787316476524245194405936234137894564661252905158083914968199121090173452139336673626428517677117460658327833275686921208098495733994445678056822097734116912280370661528931665656460298601998598055142730662651414173409053551184123663832857194423237171675262891126234529087419032071339297568066457574969353216361303553427307833507440814719486860421000558020929497489551579586891254731248634331258136703108848890816211139652302021930338551075275140138398266449219578101997000977471518298290097740725819961100962474592946003981193359794411608801039043602525231426318755238156207625363653837647368502244349306686774231469716047128848522574160124049785193344821354846028555805831222980218340308692047794704286004629146835136325720329026116080779340896043183044043152461782640305591265362464056522168249166111169136111439450748806914389690951009381600164089678499856568384478223332596611114356608622689465131538407645883247559634676742610667038966391141679383084687224618858829733969546861348881520061362034228699255802595083855759055177095186732850530817284590790277092150213500553907409753717389425472200399956408810925763315818112459434664570412176078755320714423447747428804359193962544565243480570432076717629511471512739845042685975002933333895042608183968003492371824669376917893519112476349208172587813146418995699179748610203194435604945805181299115895247718408065920475391406162603107837594498931234924276171803258227069798539447585199640947413029875271490848724907761671808790295331093919556873378236886957177774908192895100276431632101998952576408091898321562523090684159418715001156024237962984954416745474622668918323545663992819254099627368074274599697918276755646317436989293539412659686578203491285494863259130565646208036128902999295041082330870705929914832100111672047065262307915444710414694344345868992147476735335610164085309409677994382980952627270916735432967926929281910970599703922527447294276813904378553457714978928163053250483875348524136447257095492286952987959648606857925143265461225655550919776272752355103466965305945238520792031974322569135099441579961796529281079119667604887558788270376449173932063086050297457369415162393967497943514221006484677536639018718281147180845795651714580164139431375627663033167625458884144340143912041916678280070051157093918321073210693691073812042210589422798431718651058373717015729754463700633059144602248936113436096253367875971792624407793958379092544076788234107256664696737883416295630169401808887726684642803602793005918168693354238515197252560892459042435179470779664272571536681388386187142076948114755814902376804524001391061877041288815963382018584691109578894677096269725564644843189516037629364881911460302269383864609237384424396691993628709972500394699250460797959001219481050065140891297794514174964698246787988449676085002049736165251089003994615849291757172095130287077591639146023432238240849613196392606478637185066593761114644455531565279803220601832096530134108252360788462821769884574391339979207978728677676530403599417750884719456716684846117252038437481507176226664406794457116835418678766203182411099654854747330471164809941492669646292746820184415085549729618516175412129457894680000294912647418503569993146736317376000876821961233766438250682572447659353329609871209079400796610231366703125511731176430695269605205461844992083606966608111515813812957412606290648497650913520682108394477358875698841807564237964952237957903258894650096256068855185933380283804464180528132101096537495606334297832483304560818889876341057957197012686054217338127537275511775854764533855435047642318476285867302851035786660637817492800657083747342622523333553774439369131577222239526847818111640791280947581485836619436907628088074268923931238078272705065296914130097148778658008083494902357764363362931575426598694464792444216016274209575741817385593386581882351165150392952586292813359996089211670219468665958266912844099473152002091887010311887879375561739044460953594334543507325494188526691046594231533635027894373079128833021863878870406934891464383191123032179894209761476019872723303779456904688599265304941479217987490018496528078691390746678726783727672877643752499397628263302031623127474250105742346136860656141473218571398008895573623930784524341543415437224780659422865815452901507313976386203395676351574078478034840860843052177394371762962502779564157306472213036638742016444936531095740176055083948406556400758217059565211030629437057417373259711329177914840171412563128472310066942516209428025241827000635004011003509252420239809186822993831522694331662212735036979158890635533559669414268678635604752949574958989399909576479371026368340585978231320297184228832879509949385696775233818473501822505079508675876394507358784561208967105366151653092881568904120616577477736027216149634110693708875240218501108015703832053291284475472901674405598653962692054051964150334544875922068463482122215737938593360627608337786856387813054756109449395097889065672566785712226867709554019659031608651248228142581208302952597628155269778424837908640463110910052712155703322302531919269220073322939762742117986627478206563065677043146802301225276544525891446755102339469049981137171872327590665912184061628239387136705118642809455371705814455777828152299142196394597785982538712795726768058269232937046670963301349333772400899851670204386072821437927621031920029175062607510296172465136872457646257612339186104770693337811797924174231353889750576883842869233434956150423443144957720545527240813097639089112921948538311767202797264083518459609551435828131791035007613688096066887288456576632637552423333941479275250834662230454778699658739233217373356783669448049172342901173285469124967307559601000159774404312649983791715949386884267839056801202271725836155235029937939496679560832984274052888180707023564787041604639927732996454013399219824564647330721198997955913119051516072073765804629430597230211329545001897834427716871697857532633565421910960436503601834750839870577637462707858004800683098406165266003413879410104493460133226155383847655940501532542029883462475048488810164930798061172665510612414298636918402152545680705912965738695184856991650735313081354942126687315893414311980046533531783581484381947186789045029176783948825770085010262598184483583871225604455631756497064968911784391797148520164726442194434816374501313239057996549933240591754169077733881517355655426569152493990562571141937739450275914811276132878082946526932176082237585393612876465123540993333778857588916055688086602682887682051952912781830655395484940460139483720460027315992822415356545208826630286211978784017193474239127849743538212883561597779986987531008835386491711778181978179083208717925260076148613901803079635243090021061413504244447455014371006120034562309460478758750114025209609212297967124790249423897200899303159595550843083616605758848950861178618260582465587897669894520875967236710881299663414718543094551928216971652569139568261968210805144145460955861564453457198233404142630424469874551510567289224350627799175380425847578179618836174216120175173307186340075634000034006312198474667415794394713609316367076463259969861889831386768115895267154602604207665306481555426193672071035908145002125942001746288718859077921604054809517205187693011873831550061400978042864061932541175552435941263737018902074690525862473206791817756384188518753640833894599118695402133512735078782334637123419480122738067294814511199144453486682363233612013038156213960639918098919703361582356564477668765296721063217954793787397897138990332156597285695319421616934414320698169600122782778218690373322135231944142895134971350125144836912411623100254423642123898655088782390344802111664376916343130178893052659677860214565197031247408008615864191112637796884174553689225096169212127947021010326841737174165569172727155360517021367420437011054346133003957289861211314716569566399573328817097698113471469665924099439014358414519941927582292974417397569442818293611590151463530815103871307302539047439153921802043846896367900407545283037489646772692238515987465954809741887311959947215155385663792123439138274118311310270067042434887131791814454839096995389165636961131490697187492429788742157996938883365378361012740121785458970704468286452392666818230003755657319442774955337816028742711548921369194793858741238190520279149469220950862436351857608472207505888798952069768255855952674695414194821143149135284250692467046054671270146866786121916511815976784069544315657458532719707769998061094345497507274137996588873699160764616592507560566854622523416011140936344731666509979299310254024380291491202215540209750451183271325245252169979625364464393373724779603170081301014895257680395812242557168859083070489892469729658842259018453382217345010033107965783684806232237811964547389022004175729756706613476433650392088874240089616337736350180530232165044788076912829389933286517403679699485238087294247583430751559421002657268423420676497512198482899777037673629527129746700450904681700714896921227779622895160174807027360196039134542425588877517840854512018650785157924851625007482771455203249413783129146087529056418601542647680831285911153897345495172522025992974212630560458198894738316124052856063071222260861712397316626245042759681830016087471622363469452990472406655495507195934175618552986371126665996959282655250599747033385367109991100784240884300012390878109115756751683576885272034465073683082795870553972992965614115034453976902288908341871573634750215059470543814528771156899296154521257296940213111303597250989813667431226644432197222262806549058692162699579455510293234182704495457803977868821069902737532586580873261657648739583303634844444304458011564478348496795532381805575486409225179515896993988426144112202101681738446821432047571105263659921756017560223171482208712550702018298830462953123384277482474138803815013400190413881496024870939074173560006412148830612647465333951663710644356423220256247468128579934704595878895641205207450907022929307540635595871217738136190076038116891374937037370375863859687704671228448702466991310528898498361314892217866776208939301351221609160288131673782198454752192366785790969446267959598372015370531352407682492199347072794136385711613403738156173751493942322097565797171651142631827597896195340566027084526953426570293085729096613122787127370760755639853611173397536098238517588779759795263183983678970451425913972433481128360643478289002148318792633690869072131192929089086991679644056239091656589059120580509989983652930071065151032116956002907481137932834753433905170342167485362891015336488881041579464099866709561458608579683727395541947283935910673162435890901312319693144621289152074649358022745284169662076020886751002628274874409458130553997969241403667052869311425030290256498009445080265126748379883690073817132484382933031524263967486068407807084037638396381340773851169765292606904170052307402326141541149063867206109274188121907114570520746531178337417131999485381859286096164310727735868737075568260620735646520398564583145465570204811354317847233642117131242343390034172436286479141503975994702731520903728365433279302409439970173686927028654798991191460800295442783522579915097935347649799688707992889347726336816614714217178907045777732835960860600850633083240554056530918237573725173342558426965526750884202265813150165626528787485843275209458448064348452703141720413519257018991486056362684824605728068642947655193472274212136958494057249421856813011965490828566300863363087201651974324244223635978848177105780798704665306100673200495616286272637734204094991713757664556548241157765720186765343909177048778960653597284372641451358025922652678554955157570482821322360249377157877144333162379349257273857462175234524850199084736847509125853118669955586180563830532099071484449761777331617648049783184015456429958912283537498035754461538654558052054298129163842424833698019830262238141757051460055286728507369197759565396607612992423517108915243178363185901437736201642508672345223352683619432345990678040199996251823241065434965589357266412660324926228325645593627733182129254588776867985180057725105034368741901446965418134662597533675870969086499939488100984026934759095822943655776857157632264136520630038967188491253896019538925058939153532395668440496398653250460453853980016586693090616703446347972241529712680266690323144914677782170021913664671319973286351216899503795331905927933649204592178257430602284166338395712500985382680513707115332580315486884440016623169041663717798433333824736769476201966033103333547205292546923138698325410920195019935907240277571110623484845413269184735118681174454254043104651292016278792274429797609075679014004942737581366529787409540972656308282568386356878379131800747596618113820819141060094661984293295044259123997538060403141994203195105740626387313760195252777455391082412697657313982009276551563445133658764941947114248806406916019184679064874410934951417724927325135220215390443618305223619669829856240940380035270576295316091272065422553665357941790095419646945984704784588538026760468507480011424322319470662961996829938702981894687166426838029655960118305325449558879783089413692193108993474212014005669156835070707734210454245854114695453542388954749390128539321626821877664020060011768025885126201606140945685945605699664933180563390310831674141912246534243262836685108018222699747568578941491562931911082958613265284420188946650444210776642147688409610820765371465038776638621790425795123558841850083121676093051963673700208818607136876370597216669134420307660344826907568302024009518653286410913375610635894748875553513517664034614884271964593180477121272202601999882045886311267857000479556788832476677400766827529729100312611736920172036912687059879759729676175047315799162121223963400856920423830722029219674548893260724293899048138677371251254992739446798207851282154629621764980751001883548595974017086445693871021325948876542791488220200686723879168992351150079602519215869420636576627340744714219125161268318618986178212251508578510364533840764598162123676438096795281059234029598719118821042520853571691183675624208898249571391476829987317599662670244139141951663108826005165959878664425524566065627570747051246490766341116925984590427434971424214201601898366799267362173839082139505247279287012201031939551268948258075138921540155671781438584566973758874263606387018723133093672225246146495817232805816005125902459394538523592627042717172002929400786612188901145891701662553653777189914931415765718837527618736250366136571532016014618120692950219004330066906973062536047154212870705363375747815289813982087955286833893354294141274916156155093135576715831943797678174657379978720872122326627626921735887376264072144715933618771400947984757270358513178545625621313378659170351969812069247706557367599995406897305472454365470800289168624578512783786623455499008951831872675518471011697821289119150888515876879549410676456880952547383918664478189146108673354813913652506129793734947093803648950975031887966541003114498345281091219911541772300669564727361369286378157058469314347664835203498829504231642945380635855767352461861461816788516155287724192370180632966981793414429088142677751178489754178072347084890504535298442949320922297401498076046531924968122582696231455827555808320028807430454541722926206791929509108648847056066263788896052485157950143054909976607997771819196733556554428989101182775321135906625333213333597905942480399559384024892430079275622978286102846544593262674569515934037304604053650584786698313259598034854817195981217829895685032310065566125276133206960141757410084346783971090301116404182121650283889630890774087019906405976725384526162107580749519221450127260051526549778837007930435723776092829646720425113809658206423823420409934041766455070557266151858723395604251914387026808694012982912645220544958944117126545079632485273607941240800336630309927967431948739823963514195263275843741284864681569852495259800838914985862325463181739318507106035369096944278948105747405253705802747968090521168408074381893238227324693196000336918116649872571346401989470948312335125756440371551976137820311955434997782508416954764296853170898212902143920414193547099058348876060409468658779404903707117064234646723858414968708444474349491646741087945506932981734879332908878548556136411131633734663315569025833779692479655308293153845654284098200919712832079453379262822348645526684176384156069866009026883995328277345502231324357248910197750121763449280007610865330874196976343505761155483055062691168169536999346374526055899134834362116273749278698239035562567730447567572922224591533008020950505388414479237304545593369126442095311451236669284943453679212942966132166990898546217632342826798164484256542713384728249514708472711232481978169695624685344660366514891717831248790788472970468851248401012654211955936117815947484292468697072212037529898895421628641802057794023634963414027154719662221270796262365912457123214704896264191992367679414886361154959105356003272275529367308573490813543364612784812437790399595282782786050912388223332629170812294775949336180635602846504580214627533208753838522440007741126777073706322924322714564916328224143291821651610892354182939622785550944228655219820345685718426206727932722732795939006388688539958117650626170247486807394605800566831493865525418635522038059966533055328967241946054508601737566290330989116663028264613269470509172102298666643844912126406972560915576799797262926087929765487465615351815491044033479733308399885528544852617822288109452111641907533095051882549929277358459378417178313660628457098962714520572366498553595198121215845025218720322367424129651971063884111505199350500353543853873175173410514946804783107673962913837175551457886470099262463619501720141983347900454831697187899815547073533005151390483751269058239423289156321845293450854367348933178969021892937458612410205159873217186578165878983889792953931708123692693630172538075432932011997586486283422243013304380317615646927480741704602239989019480043561534900874905787973646142308094785438699370995568374447669709363851537045219330854169272541073638575515591593096862513047425157585690741091480611443641303854275885226381447632644041172901909642389429990738578125197189150621237086774638284652606938907799281040388545653515992330461117200127644898422045548292672582337620331658772120527381909414107018472743650202926939508358618758567746025012007776238926185169861072019738297901722136908844333840349748922809899088526413867903914589168611951779426276408261089814678024819723240344512316621145415263929208979396370571333326386454761250298569611227182512652228408599210146741855162241505821266650660789082179521858622819571954819437613395744665115105102073540674338745696826680666025188123117431921804056311427195190784370253332573048927930052757200091350094735865102605769465536289571954230171794484227824251468262167357847684360271918027451316798575271600464823549683443299348639537112923836209301277656158703671786251712146999658051477354839016428824323838287449898733744635535213871999206767157934428695472434932047515557156158398359684565115815636301086315437944671712699667035523348522755136975692071171394476394516091978488957573338103435224546558076192505857992611743826483525447408474936075313655147083095518768379176313130258600280298036182621533267341801263169142080712005820928269251944145848274594731483379595823381295705099706992069423344361413506450390971051781046646232783245085039105456499171827277268092801376145083283635395367123787117315023240191653045149470050512004636676167903320487335104575970567117549467978990702566818758094114813233333817254094685591345386051258380475112194840158859084480889243298198959350450990068762471969050178068630565302887150485461196961830144593856527043323769628136213671651750201650217892223378814537287256749308767477573439195472070957766374421970468478208404796478328701874703011890997945190245505680510113786876985727625201208887945461061060230927075986978437272051263392035316504997175654602312191810113432573682965441046158516199477895303453663983467592911648455867341083761686609344771918316098711216948732679289268625183047093327174797546916482151362062009900299661723683299645304305506376344924586234050297603743410685361143991947779059463754098562254146164264817671701470468905157729623013066544757083144849736712506833255264020278275401619217172412278503389415662070583776237116130855735388306073294661320296913096813524866795493976687418466379743917773076904205661277692609512197924862675671833542674932650038045244026567958144139899227817062222625137114650338996629739819022789910107789701257476782340557716033198405706426340681561771510991466473589501171161653920337372689179967869306439007510603839143962481265459719397891506118930127880435812703382775851354717320457750562574988687320450158128694828135481324042981411778769264252849424449406495562123097564037505880248019997088877079051509139029692700099926231874937491265323676989047959759978351042617085595110889288737257298100126640021840700136364486686924709079885362953953694716445231293670969367429832146899159465111744870751098412349924222745491261143954579838218270897515592471144693061702959441647997194705802504180568532897452280077277505687541652668718206467594887790333924506446903619950011889419306053877073723239228466744644230681630677293008689860651676359380998032413673529756943559477357121745683442035222112431427779380687289046130880847348615542907880975105189582300825613683808188353449803906539492290457087102227030721993880170338899838152164834518724818178350558645714930614819255787230780450003279067734542078762876667175082687881627520004900218896907753118130314365893248626709354541138803123638880207434897475320489784551394618598501576452627888193366179617677009488948790486394077180097408874198690900179273073960702376007737166330244211306107169878591729447674345938355585018009220295538847340786060984554457340347912899342450231056176225620330876473462401347248070535150847909396886292262308229878947584823686831732459682188590303985931542772147684851620925762164574019061709034198374428733519157818006214324887915918365604737175553612124975508891234183696869101651517181774651800772543522082283903822427492203487680153132669379368520393845470649372325892891616237885569235643524352171831537671129328032329249169229920471083074546198695121095067916466985312740604059962634085055393795873301313265776752365895142187470967781345526282777749480174469987727546229146158530821955130933985790919521113539728897775609385239214481405503822731442416914768712221837273794325601913631977395067389129844241612097905874449910746164870362644497127775160273849016640537780821831651888482311303015394052294935507997546082008923889245749280639264564913463884149163681103356911323047484615591744503950912305395495105612693691536742663578436443107000609451991883855159128466371513887761240977802546146314768191501149151431397140015056747100577068129090544478363018255007065486158604167573766867780191305543533198001980463005214393389696469036843326447038375331803085615814359715173782613764129267380707495008098850195410834233829646345044859867834173406526648912363624892060895137620627574478726692115396940627247663456561245660787188640713618061892866081465731701508482342101631468891589884341672252751614079165578542611620951310316356528829903261212546231630130684423528427176951295654644331267541678629717660527950871280477190912468091710178780900069638101686815817787920350672533164054335438116474633649800825521398360523228186028007276244148499245456527789182590474775342847286120852059993576932227008963885460268293109924678342208948803793561245453487713291561183675280554060773000958942412017379601370734425502579418125915129091406054033193384214382942073892725584091842936764721892391346418608527018119087188016923231670264169156395561344082776365173750698892547642390897520116133438835635971848103877076875052512735179459387140633298605572035282751468672966729184733847130569905543387122292213521902082816422522813928884245098082124797276735931345060881854850673612789148578375098423236690675657041472045536878324606811467551088762778901321561841988809504049909711133437458729295559225796966587088003387987154216488855430899178117555379245389029439403244686839243113620707163458602962442086846187600908261410565901492995347381142414138229321739897782085708957694599611866136874467853329647973769575491730091870528941296791348007968173339794800690952891020439576818849057517299470694391077190453615735286942561122555716657287067518814068865248806530724636878607874378131535872653824412910998242295419304577250679619615605495566970664920633129744156683950708852105726302359112286150060907921187160662687780960819917607020130455612921217895486144123640413334390599779395692128406992835673988807545829091464528108576319283370302120918332043270482752620904506171517373146803978315054402276249087801209084174002216287810944509196414661816618000272302947619160532970734013079855438107739043118025599030841652024098538728488929075763258231189771743729876101262477605330441035941679491242224370909311617616351050306604592284393190608402517125731563876994437387326122291721286324352504054579697248765632135971518066871302851306325190141563771064514148240678307908918581350022191432277571808744919751538314496970628296299852915762165563250107035824289195771820795264261107675864662919543056509229390038739770827817332475969924741785568538588714732882485511515942026477213958937515367883241160853438279168243651145926429497352451120207992124640507358219211392402435646213320622570625955765925228368225718721640462291074612076256090010704974218668902155710372040975839974231583025572777826498565448192778036394090395417198845464511783345631854345888144869444345550237800914986066553520711013251173214996552666997892416319639460264292491389490127417417514029846507367522175337463583041940051973732219132964011112305140833251858673193253238679701882434008316972822503292543431253764534727103245748877318808392344491690194110956021344657736212589290407309416197232804579555939483438853118390477321623016940490855353516336805271655121710352920290810703763421988490585042456774777118388555472105849180422243090764085681483491911561429692665257936848207244990034582718110268864311237195025760868269112111724081321066778340977464414843770593548002798120551518644391666160119864112541703646847698559221982986981844615999184863489294484684334032871814254523057918070390153781784475380506891099647729021230856858485770691906446212462457940184240769977744025050840182480097681509100459863615130755487690141398505335470944347393015494709696891665426001889212875328650174673869195063147732562430299256137479098105806058024056357784835097298599376763911120348819535542956106315628549969400250303323054910473755721862184645255524610045381676129259835704567042752292375084484518385610242963567294203259498204644432043241882883091957389047751922621724060834775768071105555960758139728711242912533240998726105166954367187503701794269357158449556659354854129355528147257683745778697097421800472680472981172089988842913801613224459093114099099271012095529910767718745640453310006440561659369890600524714476341029520115588695635251007817874903590688207388662090149558900782243639640145906485653074882673617079211655224588557667827660982842316949621021851034069583964592875749661362586576106320128615823259283073009048990585659185860473857041461183283561415593638167245933492328376444548353500303868195792044087221408379898770498769399978247099381779476806363284205348491944433707758651252182142767455127155058871372076654099077924076565637828226984938371150649734682979324079726400512969908723612563187238260527912667426959897885463027275405600846643418488879324260679513948737640548937231231271890164372017254643490762407075877608866952901665191980191755207218964708987500462904606224133868386755589104782381722322191897062521944076522722396134585734448423245595711669515582765569362008109573931002909002436659692573896029515119203580287590560514807743458992150588041670926096710674591895527263077181187525299818096941110288280761119961345217597515780369798613346379910563872666925377468832775531877726866625914912920435546940649177681121058251566905463819917221420772395945339159406012289185936820136485081357078484021001213143087526718564300334391295298929838500687671738976907997614253430581610334065329737495979170775286018460456162577004874369617967856152862747311348996137473805987805107917580208927830868454678067149644141617852926418070322259351494588825926740150538403235170387719035951664577099732253257026313086186652736497727949732923661104301683256770512181596827172810909008173248175285548674179604856237438054875395224032913622116163861476943351312407136376697524631526899239349175620449795836499093714944008881602744547671772774128367989720309164773660509357017198720627693356049918650216808603725410905124475554824858950817945335508241539941048756933212019832138094700234703596476582676050916931683279681794526842529695340731662570222762921046798342938561784980241741766153098394795902296730032654108231119747357903362195981995860752743548612599724546897422150595786912126967494165661141363517699576039082947516218576180532826677982094919184799801801550370835579180951345276778881930998816781231203649921622312695335902011682968254842123531987852899564348258031055202984419475101353371734204234516294174967225625914666456937028620743555928032066615096985162520855304942002477333873188550526197459122988191226024463773811623089530447297085230305655500267503587950459330601904562939650727472154967898910319538982270914432153629371552969495725278113562415026397491261747813521389678549766902464296125043163890584420831911890286821870159629108080559334009596749158837817355021983692942062672310720296081858629482821147644837084807136310928780562330861176101310840855279065986025031205055486991359467082574272910577889397487502942642112954478901598456210521159959640790548926650875573077609281170309118894553387680759134630996167081121338880873926331258099990314896848933255549343087302053758069276396021592943766126995425617732805091865834147900443459149254978265095841191598800361968454803325924709317933889021184948154037085528155343190300056632425080941876853779767748162824434898427647280814842300391010582682134851768564370263352504294851970273926081692596035994891410344516221706707328059014219598860390936172737106699425096293849076800958329585960051637948192258157409953845668401278847403482608186386470081818853553137298015095909898956371670673493274761683598485593713922896409299651044431264659368504286152848156689700239651670830199779198969871660363209188876160062141222950357080961258989556546947284719840922627412701402713587793439447092767798308256316746149628499859170035083931677398116131765096132672332942261110159268153898176449202768029791876862561151693217303312957150131533904027081321846135023173481608119699674048856542805985594067406139762422874247082384960470832683793770818491135769801958022198619524977554636317241089252638401684959542459016976884961850143296197643286618293665458937349443472048444914397625717089471555605213483172456768336594753236915485685639634637487249971888385766394919210657062126102854419992856676871038127536391342198715258785760115577183901638046218004112360782855481030797021992801981334584222299119899041880221281678175821320187733303798672228603714479914426962146357599335262390646649481053750057704777556137748053086725243324158948313849018189036870369453492638405784418985360229494645275893876655065962722136079957058117312776283680973318690149285953235806856239234310397806332094158834059064824097620095572391990994135695260459879164226427712872049869921584535620355022780962301746021919094712281980637453450891764290673381391945503628554551827562406667760709543303350513602618207048783387395009614359501607910361361211819109422342917049603138974815523668872359168955273138421825383204134438173458372547764131159845115716907666707161032914182535552191596006501196785259757270670564487503576869137294594875578044222920048208713213029474054502153612586281637504383523906545896940605571038894981985315615424048873669428932757322480317550688247715204611469467327510558073851450357117240305401277598090862273321517285795163058243546821987162978727168753609189535528101218012077874312728448191176623373346716730716795691137756302711362332547906264284781895186255038768776715688473665410371966339334205928326563406448656303766257106245439905311726195997153359012081722397305922604144039351137002513268334116992449235825390644164762757247004129427734012125496352524237600892122560425504048063567725949134082395549221667237385631834565018658300807005492978343055442124257666023519326387690988827582368754920414516463256138444979227986249713019900688191876924756994257738258709345282123556060192515908817780383659315697930554760709182952910164692541236217734289701266663961832470354210587263568435696744332689074645495135086937589409831707785910121888338727716272766070416317759642052962217084345594501036954016696530224918651851650330655827136813223444264519696684248604601409686836582718696524917918168522295751148343023944314313175279592571713558205667318201279210139135356569525642016640680039590221811066827524672206052603301901293219946439410259455328827764685643502349751986820815379832206299003413973445612619010793142447182529038397792441062649795980648206877826625678617978663176901364440438372933726928918711736513845735131161484934487551489498133038046961321624621656361031234932414071598286815213357314034370723315483367943877160866023344982227004906463746659229047915138956574633515855771665981401340325318499111143635476550827532697990869457745885265372780149432774747375492002120636695939487195037313525238158275824281049615307624270021316542240113630654941645126893165897739912339586714459222017214422610770966360171044341581321953583024600910546723256544579863204142552644399712865194380961561822715173836624579488901143401176256022759208272572111056339900856505909646203914797724332220150056854134206365108246409417665595719556668791221205089728476246419303543857718748433533082139525365590243482923494549374305027036823887186111859530542936968324373341996697408154315567554051818648116130515206401744175074990713008861053776382884711932412343534698278904327551964348404198654173841113968838103814471255666195120853896987320592886963562552740268483427478829931008339169487098357818452038116144172597231379164004048133166528697758634801649703070975681523153936239836602667330291511502290417071384371842383868136643561431946095228700778839174258790207655768013500837047812093457931013293845099536487328435586590884674928034979384486308033208148930114343032034355546943468287229686558572028063395492571952448594635926596115481308001008733158677417530060899375949803398279325775432376754435230137306656988173902129678460933689795427242403149691209752016934149113243023537613983312566946206615622838689117466395299666319748665572838631746417151541809290460129451688028167676762196375207509380664121202055337524546748825027168372981043659997379495498999099020378429691009319124861448049031431612854841726117476187722643439496562016827810308960944409295159647990740281765523669084129913737110270179647646750824132973629418288169235915774189221465316343534588103771070544907807648109601938925486370631156749641025813222405243368000867488907600028293564684296852379584576839885976895009101798933367393653995578134754201884155472281991195165618678559710993836070109690892880616020246251568326995586541715075820364866105966315111546845904834374042993329852799534047550755451563539505780294182661446252066304014468022250605501607854876409562022241177257480656367780856113171296856943899314136463739007068558729061776244036249955435777804551348562130451037442681275248695154164860747328582566892174850284086898987368615238672732091408536237154690418375146145927104116135270238208886781642511387021387922994187780543475833197685099640798223761600332480003457715451418669866162528277062732324199195455422401558212170005223352283207592481006872958225139806499397670707423168347360721981950709137820310459333331061136444714228270655953878825650434849633090604705726406740243778434618917097332418134703717024402970119877265589791160077101931478144923964377902861168007204199700597990020001941923929066784566072582700033137838596897823492214125185692743285935327160837035275869930518909793393901628510776519841762218771524851419176798306425374313266531216255080578637969067098948387275222457733396797245632011315537861395589249694831686826261705689350493792019586678280253370370019532655420098307680893610665377784533786930691018120065236650531517865644356365511605038169449967604276524382746458881593666716952205252679956291595802363572645740680927300935636560676930001945353620832538122971305812211598315683743900117579172069864269468063122354913071025719463786555181631985565469138039436962298838361492108068520012744768099529872616259379655821041951390974964905818296369651846601753444536330952583589805790349118177875051034288977493066578150225078958483405908744746244924929472732974670742007287944389599456149893839093033180951577065757501266819221130469743806805133318138802943175078874439536780672289725497118473897546632138250645687070182681644723465335794357591357738939119341159472992435716953473679205963214719162388927197055834278121799178992681901021571663513124368238262540619911206822711184978072010715804353167623918917621493048527319302141565836261249068884739639518094119491420874293834219517333877917059510826590740932230460196144457617508640146349155969272603722339755927069322999131219288455854911837363841810588181290495608729298672827716632345542905792058329743714628566970622845861378853489665709119885523918070307880414941819180868772039362256896608317809843532853020161890892668089837231594075538124326610482009503219808394776198896490704580581005266542255934579123732376158573842916947291139804492152424079928427710211465862721339662207907504091765047542735710903773298803975920586074305898193957484747698408408854265923150328662512080517255854849288427654147993758726004572100377850145497728598590582433276077869803914795474535331049494931236440853420131051762387420844974614667042860858802962452587373387197600625280515440137517197900921484241977669787398173271610677031160642868553693056668211184202751496920526962847871411886523620510420145772598230458137015746004096485927833438600466612476959040127927031858899902807449321588906890959243538916573778180302389078295137287633693608645667551354668221869391317357931752642535652689636572076743029486522139565426001992629970203230400657101955123850001791036206098658693067620441293752389640764219537466939591863402709989395644618162362103368209750460029732773912589227319071589989638225300139588588395270775136660691833756670002078958790519967672168167833776024423635692570131280394775917470877957366446296133505392672087987068785355404039837246031604917335665932680857630930336872655678244974541078571486323711989175783796440505402269490621187643850736196886262472879573900287032724465692578886654958198506680418337967570823520063369003011847965292798589353598652691202727426043957167635732945369381150317860522776698565262284350975039472503186963749681543576936194346084614345070590163218709041838282339709455791217974767763581522254050562325572568095812793661759233877673242231779628441290293033451937342259553491282014089486787801395503936593848734057517038841327356302530099992852602202042962644369653044566937468430978029485558051318344579571812381112055720385129375630786790582625596185831010089845070109216577097484816402792322779616229267316799349566306133362661927934104235449947654665339396111697295331404540018101084480397673067389435602892304134186872728904286805345633660669359090552302520445718704838360818504590096998497094346193769326054243731056328599766640740201632034354845952830618961317789156212342659969067387120223420544896286876698562296978611074662424383426040840998783740432869216730902802020090348277534226972470803666205905002719285907282888124606852618894325118262428454316202951653929314882931738181128308786499496306497805670398045617507834307112425084515264264438627736248795947135216028841018549569348945616488444466520757183974089413120335186158812875504340903524265883821688079643612851457302554533682621564180958359482812600228263131904829524085216816247509802962063663037213198920362447215780587386500362046831473627630295614879674852276052779642335527690705919088360108041957010516748573529714178213398529580402618470599636267688375310127850895575326611501237617818387052800569001920646759481225139614465941643859602203765358794789709600340504695844086915053113953771918184627081220694630906771583306139878502879112257804643558596652038081013038717842573086668344268774586918059720929592663886168345283849023679067413521238609342297700587997003655256668879375311076509127549948928601889947060847087973709004767839742001455704874179325393389721381905577870558422924834184398055603716751429430650265010100593532487918787758386265369083521106455900364968123855425147038800963210191582318054453968084418235009468905883865375165866696435465243645801635699978468163016469059174535929275419256665242376531000217558222564390556193634174544315913603744405832675658566341179224190884313536817420454357727683693619989841429021202881262266483693823390387615280766406288079770196211438702173958385471702592699378008778334233939323297100304753530474855381654682225070422238133155555538348008280598284125604494570946310192522286908635023148957935819798829544447944306358895641878429924020293888788154466965148538342985791838931059853381196677737540618496347662513789439107750148335758539208037615685696054137966298444100778247845014385097522821826973789355297482951460089565633724702038391923805315813313304923270983645731142796046511854875843228543270115516276414081155925552580920197234242399699209379991257232030819132759418701779824630303205433817731888037271840431787242302318422335144702305785295617369764318679266687636956969308504337928470043138878034447673063817523331195182185126185150299090358611144334115900404044454278820828497558128243201729473377002522992886468025522905295189396564639231159151795179085454770174748289517356303174724252525221392580682908024798951019341704389966987642511625789181942337709685328184731186199114821321487236477854242618859702434090031472785837150828635057882756723727696060075432690388288945667969906470176303194512549058381002041785602723125837332884055915363870542436250265687427901040185439846899643492554899404209326016764783922493011243055364522978610561553386535195123296610660216956482430449305913257083080231001901972282243333368704979645695299919382993005251144418793805185391034391113372127264012247504703524887562690985499590745588144652371992977437862593099700065393168093164063480563255546330125767193689068210297838754309218406856209706754237816339684356507263964347188200684494381657668909972783807437868831811906622154678806689532107764012615818583821002119025975423479941991704629245118650871942606887358692380363946361740961406207420256681000722413822063590956718436828662419035511895241545259331346480173044403481558239089932480935828488886776782890532003754250672857202575563940970249672168795170774709740712854230191552692694432088304727273507072489877258654495852422949503553194810670805306886671633370129549819586487982713276728399896184689305621738568738358817975303331585540849497241089968586653486873579069864788783042815956915827727032516236946001852435495532531148254367592017583664380802483179370152317977223851674737858550856523486000447343892864810657295375490259348534331555540171741696519533324006929689562343704139653082425493283274503870564221204949436450216917855489713646418835806163900213994764633249975343260566776884081663779095036174569504760120929624873949166587391997677419784562734377249411437894798078781880868274901565800822634348774725589252494435181638687761747335292935514372268123368466366050124018960104619879208555696623469081448711692265343758268971606300949675880263304382417798784436775380647353780574406871680690971106146419323670564561554275317587996702245744037656840490444716610077744143623060374707259473293006068625592981922089302290173264446831043158870185991972481735282199600125821412603246747595610454455227963542465412138038258532228618304136291630780736406862163377557246616892078336639416914415523820793206575556445385259725118678363938733523360588203905437646159488034353204320965505528879010483914441074893973189675774459207310577801643173216027064523379706519691709171444920067193912115017194948107416099303250210251131460335122227160062981656130650299495766703810042048455017652976126911574249516601634505357958720608425003598031507657852288052293709606992007396580410801516511152625498346540663930764379901684734635391401691056123462946114506290000940068960669410977068988688065702219508400288611641484032915968445854414918952841161164467227920581508615759867280871412527146204223656238028974037237771656454399574843128856200960631813556213091999014592019673143229566906035257018595268676261323310895153045665885369979632750362979415439561006278119151118197206781195115076422652831397026396582518906482347111159263518617393356724194185050887473720659054739736327767472413418386438742827701390891162461885214159930644401054281728962325863782823519504232783673212463513282239231363463857616226214820534509458380235534654351122297519935175868885036223175886246863781733010990704154025986541417192590684194571127239239975968768969451554606594287911780135445784173498254277058105329583556728080711652188546873534871679194949072011806850645183293840148954147157405641790031161591220023408277312712260909911983306997209253961089802914949820849789803828924892672473673195920268247970121353808206742375038277714650393881252157354683736078308637369295283460473115485631423831257620871448648595533940167420204621688074664879303167718223472878945337036242675725877301789524991386386590930409848465115497797553938334287777585530825210330026594080651004753790760834165027968417816561127405668209051562839351659908818700318982855059318634817407775952979677207544678258222933778276946429225888125920513679440255226754595020742513014313750057219029219920319561612644571451647256141201228792331383717483559852305177004085750770911700602816540312697706455669260902055681444289453963654153347541171320625593605226881882204926164986133674866138105674178452123441087343537007231803393637734508622194647807438200272687624070354850879653920122034818512086550614301476242699302408934918798371350464463665182760891189533227156347014297617745585399490124042764788995984416259562081581433532615849564934720913335000363890486501871801028157593006828513421066943909547439167665120975921746172321875791689421988389714452024204215227793720989690818124139025880021212316883132691050692474045090533009204859052256368236155528303063889319789014121459287475041366632988871299693003395699828446964906327005595052823091569525346924520193423342808561932503565930445260402164196075064757531777029935192443293298036676313451798188474155079238304294056559728277130465405320893705021819431757842427526542503012294019868720355970333549027215374868443611102785246732584282514445334874222079466052058869280650331366176159901188265894368682288505164795412001521658203030422981415236923825293734080949394911623695234589500229684247263037076726276857029677642570393402664938159336188962179234099980219530014315832062063885037556170842355792439471915997680743146235844709546575427647399639064992882701310318934941520025019157553977706400364744655859483875367618741745269922762092553717655971567056666715692062794794481163544185334600592598476558597710725946720479819548481091632160942741786538401146790144050828681804984955675789575346131590579973476626578729886552759147143948141930712978182406713906791418114961554160336165353844998824064815506479339705952126906333527731942756596128095727880079026398372704624690164263007445842002248985026867283652289358665254939868834780049233064931092741427131340736705055487226486864877628123962535084743350992833758122980645761459565432221804684806012550590530536184192329908621659269020354621853076295038211071570589019076481144455185526922703466953206703630576391331712219970245417614198907885343896590426918551428798510103588709127771000347970900246795193268635689356681052806611006427749512418422696715685923283117285018837151730728747608150528335281196280658847671896170871033223724252560472301154343295174666519368380677056315506370789564957948465672968119867351954142221227018751055606953724500200359670528714646470471485665915773806402403944803964189254491770444771539582047693055724045627580968431602269095549012201818194678408880992249612795377172967438667501307110825265180364156991781901125515349328133981075548582139521291286904452112253431312432930896761312720408202742211856681579153241043737984126438377206599519780057201940452616894441762820287221016743170892776075229220458208808402607644662268417845998871565176107590664675024971163928080672908134079799486580061967273118574677992777290438416601210137101012301887620193250901439046920270978605871946632896597844244724859381563811109013397914921590450751132067882729116229621188743312947722754842276043935653534656578179100437543130154906909980324588700868870018727192406533795357840399016782194308686232420685218128240975974603799400629072833423987697989157048595304448425228024938729515737109192359493697546436767026468325962971487755448594821171993744765893168705929612463932534910234508751973016818273588425061250024282124255196452347264294135944567524302929738085399056459796702900038890487737982416988208777674994819870831478961815009077558372316950947859631577162064389060395050024902138720993642880111359884085048110529633737505055008763953956320102394786287566816963388327449835439650826653328763611634240175952394856745657224409400835959727836177198410249705261206438865460203182766206293596284479703960223414331259962278730309304952403143953357278818844718352011242199391819741631519359521284176930282347941596491941924891259261404702976847874633012804662078228988248252687451893391811177940617634147757840792946777472935090741526635132114875256089741972417676637728239159018899805224524619542945723072134141848581664622749436552714422191275689862653184512439681535003292080512989981755023694184605985698645737755074888468686056409984207411329898281343660117772128568416585279573137252481289299504308845279595337702859331590320330533898504393704653149845362696161547264345967992980732653850703142796308602606648086671565171075147632149640154102976489082782799509829467343231978047686455236709085548436281162642307859628015714822847348353237549263797555146359647313537117481408842027271861286209832875857909403590736936637575978730490691425930488198466539521270794724002472300165394346907161927472488412944614863210398080544515757215498978875416699331561256808818731190006560064459813014213999085563584653883307607038785801621573941262588070376460346971767243703664260700754081204829711445357062242922481921099474898984314646541543520726068344828024433604175591302000494817301293074878488182805813076228266092606382682991536737200686843001866246331887969146623535269174606168453535539277273368246405352928739020144761393549334226603118408269559336916389393353219360880585124962855980702081163549174719150538682767824506424052364792837768014193392802854349627137498200272195013820939649098927293913082418302014900422350938664367594223080498461216654736962527644765044891467670232593845099120161627339524030002411730574956726817229194935387048533704425569551990347094671208727098842024364285353949928174357719470927135175108074941905881334871688815780528922500064165196709700094335372728225821994497487640101398864348784313583370510429778117532000123934316932295359177027988029268698648452710490237665361653057165449864829096481646786006426565435144435976537893284991425099271327195987275066025927557944259592396291139668954572276266004791662138601073299912873951366666791351110764665647586190251648248000726803426958601044904736131691996754377723123785083187108271883233202875022647898661619885131065879356680047522207036620585491630594912733907853399888717877668183951135883240323424399557248512265492319200400847108582542864723773776191239107536957549457118391890728090639764109172798553698958644811918036180269142360425682431505231919038318966898304865848166170864768959017569544816377000464513523717551989033394614729581755436029781136324895480669470966820715194558175781349888633647736798297736654792429496011495460357357297433338423700180279580988408425667769325922506541411974631998193596718894440253007476784654745062112704411176253102586426639953177794118173420765654557318386400462900011400131226497462343485749068291485238140326196099110329228257596076451287821580909992916478459546430259824821312681133963878946262375860270183931375056052150540223591497499539174232987488270869073027228060467090435895065847494092074800376785276052915438688269152420520143383036757914964655062762302250939139185543363660699216913415021858911923214213195411812314024462821675875954546917425414935493649863640038305259820393959758839503209321045780585734501393553737117905267262831299322561596513593827076880177584436082106496885216429500829710578651802522769043315086373240280123707371566025346293114421212241553404482759180760097513165905102862098392998705289750084895592624512912331012308576675801749175564813991536196058324592144913474030243157347629808589029777512887670928697066867344981299405373533868845996819008911449465226111375643529000605971021790727020831281552401467810256788145693317337292654396887160349989397251546413535684405788459664895816312866901905254109658407849850736891807505705411970123421673173811309432786940107656018730789402414824635018903690595180539828574652903771928048182407581451317534389853482769856901541386357469227231681620395212413225607346136478645685093462026142961592931338820849174574192268526116014545309765858273974629047967344336390774598586095231935861922940538254617365201360010049696534527280210725888335455142148398677348870416408134853817758366572229540886463847250165262694025901092414846955920183963107072192106854149238360684143225046940451979261816904881720188296756350850030770690075472973994643765557157636895884644228236421086442455044584863451571047318307200338616125998958341123202586825254660403153545261121016438113135488262791861185394956926217937952450964029812289949018595391223123400609051800999606743038139697649065527567699065032855373334956766501081343284179230471054946632839365475996195395529063094588479232408541103481107752265746930823031886503798802799819189912089150392066845793497509790892371680336843843712422475900233758631899665239986763111540630282674923486225795929924262877900036655305327101195041212244640199862831946010247836606235108329179215922505282807384321732891588728437810804287119939744070094561616466650758266268750874346535445177747746691146610219208319012320663894241365746579746393957011574798166212034651362526925283974556137149545730651928284168584385279723201230554953303732763118649438554400342688790567292347168111589435561954971756632939405689679421077627524854827514769837081672222141953338657831554040728849500913539470662510474961829993444596244832777978817385201892512497483923457125059915284278862463985829932728213409042668097664106742595460607076567701829917364398407775855431186320059535562160327151093176026088312934435593217260484545307735891715540614101197327183334786256277447832365808376623748741408997666364211388002375367964175489064840992675165397387049414368623084795097808288696506997100966456949998399098740031372024909614404155891260878774548606195331070259999802215579006806866908144266166904820927394623873309574304426542511843748121755163195660324671114883382172729419636251042169364353980569764744298496829899984848494580411692907085289494141320553921357034681784513279210638710884717988409693442638845684504856492403581983114486235643338598496861414790933937201869078250838858373647447978354036482939671194594363325532512029467828161706119991065206928627823119652491884789936345721209733901345701577687735099336423837660542867069434088903219268414763481272458043918098240446102640598627742774470091795432444830187697921565768169163983378675670084819941883177289658031805215144819777566033458813876994058333990590641563792605933557510213308039157642443180718660054719662848095861162416784734408709630336649348390162148064624551387979460223928154365341550183702573688683230296828721036625266173560333659171572241330141738065527922528526331127871813002212402168855299624223139729172018630488770014713987445635152571449687542662467029574996931626206572058001790349885961223271529867293828042899591288064258318757909758572891588052816733065244796308719078846275408789611501563110066265669359183727647688957481213323634081554588323813346888634386764298816210298915551998240949278880997537566419646000918014958843958113213261407251108023233821917287821296797450627870578868895065221468693822032499015296269873213642693890911684397873704184485983934215623695473307340580835559999581491681800046445364283454875220130789256235513348143987529458606371762171680317402032030352401038820927001828617418028478295376451640387810850894961222215260295420412759959848192739125806901394516386317359222579739823500475435638300942045884904586057642318969311358313619640624063522087723117008407697946120316190630288449031071115418233544494447984954775446761907115944742699279311281007981977305996154988976643261698558583650885533484873888174098229502944763330347962643071248480494663568620755861352228807563406938006025841994814533192596873210520801184515894630568765727515573596566587543488416811286345756246791118306702282963195672082639962547487739702729902277060230727239831976629301139785970975787867915149426240368599196442164968846742892440243547322130574292884358129475878745549438684288852124230461472646273543940102852007997139170990845055624703749711398641522740175007479396222774563993348367763312760164947659036343469381254500657069820432781564533907058968711501244577052161030410284441576649514295335727042404040449073211309057235319131383847374431102721525335376776254681054092986912026544334669035611356388569242096885213123407704670393794880896115316803950249988157516729375608370645218427970914391735642146065683591781320641429454238446881948771376198657306897123925938654333503206911618034199403115011171273272345265936858324255984798359821834368066125697434666726408984134145218216698800887531509223494046030276790952263608802569244594554794919022952625413412792288758249574098059499619116791348969339579202055604569428264645723636204470161549234870782593123256027970543130441459996960988256905670751892850674713162067212385773041735579754102041947936741454583820216271151030500981972139749812870697862122624178684303043995710363120965908792110578736310534097998019107669288414309126600966023237707719915699702176080422232261569803438494282832153338289157379666028535779240338333270860914560252573752858737997066630432180937824535642422488590912988980049849276024787823116611154410658433494481605503281583143585341090951590697627788398323823381608778133035985772715151768419104227691645546008524508462986832662325641662227915539659410403283484588645930799069236786348370548748958908722238354061019786252894471056311222177151945084027828664677004430031467894413522535575356959484316471900271814984065727010002317146181444099759856347480856355842524516120467459653406474413509259088665337292904839871406548139432794655673834554626168577717639292694781548767857035616081082968963786027142682420425083816986592916053707560899064753003093821960588742916154541164903521695313429242624211193931925065239894761566015765981938507352462027856242502663263422601292040897982313103937512802816757445723052165425139900559764282434384510139539572172080638220795084827827358573915041087939976197565041980602164295790402252131123843131759051238743612377650424224628429788913831031109251464289325905293751664229326730537831981047982386544048192085666921027945041687947330374893830485118395121588171239058902231875631008744418030797036878883336600282949005277057208799084554905908219672112476645110779018790432602628809605384443982123208628639127009555768614110254089824701738689191985312131581170416739367147911682422528021999580313308094608238197504803643601101047137999986667905948814549992247629746192139064188255883919860300721854806073456195982891497384321445521706990163975149663355251054846103439175406231177187362211466140999046100318112954940098782360398240162586689259276637893404373271217135373489560292371645316095535456215455399828200628165357104967461107129747933568936446289806993485543549165387132056171921464460382529465167946943148162691618096752790980943949772053642570691814426740906419465933523223036902638888345171431379988008734387825237098050837309656990880997532145051970238170485818415754660871954509681622801701314658013660754723827699983214697174549444166335719756697440621603538484546399252863160710301960591111541594745924863506847691163231175904450847145919979489735266298601814711257442111659534727272599326887137643575403139810368519181407162095410395198070535428991724444606198740699911248318759404910311576214881849912279278437668341862309173129226938879809779483468436520792144805165478345461009406716893642577407556830369468926696580528362354821581941419136923473083256474360440099542312963255114348566195012586685495608963247194722198527000943078063575896106222578434042462033307166865470983790680832525874980141595877632326467268990600671435185059747702296008900715991100059760397793108152623928846927611299588003261588239328405798711807332470490729774217580004622456440064515808260356118282465373581116451153265028440991429781333347470905199799148250783343056106281948000885098327983259421567260132852771144731891111311312509898853772064953689643411727788990103125517466928439056744906483260749369998800469445023228668243487247258678947216124257231713489200725561617294979323178866459737772401736623285360484986061785409086290868676786981236364846209718257814726068584799178482446423885991818022881298711104508751441210473642452644448489911543861892106044840400412051118519308256286172266033551375103727015936982029774445923827894623954609009272089653349489386913123306881899344665810933972182502474560684471378006573774095634552243786195154003752111864164348760108412260195529428698355898369922569689343720030690486657062984654495251344544426400586429673346831777451324709446445864728544149057219946236541832954689701469627468824192198159397540837666873819315285032909583984387146989330212610383994749943055881255212990018431799793121151543350544644466351733323653811783299195862645398067034287351398960019428825606028930762772494183428830922452541282839189234197780783479464841071971241333625321772786184464947846607913162843995086537799160047993535053512370623612642654080445138419910948462534840416751765294296449393211030389137638145006578016622851229428163182625655537876606142967811507221811308515749410296641955103029807990595258055992798507645791135912168814558478738684206442435002867677252441557170031833687943561436444889209290733251506826855681917611150863924216871364839775502887966026664180968721644631086438548510001122442464085601046439416011551307994026406008256553933209232508120271309351956311002746651495529880698401853360819629441306929093329773599079047800845030706663500853755391833946127739008865703557362263109821193390837559282941783208983121344720964729548954835666515471638842686574786531253574093279232423279700840724224470389716526504838006125974382413963119819016144873697803793656888179696853264689320852399641801639057423030771763359833327158482398561915009570393012936928636140976542433391702977013970879315831270051729673510934850194361492467407985948411833764147116983161192793188952554539545745739344216886860539417989678301044343383267102313906772690270448147940623376277229020224242235645773242982272381798059158488960701131049396713192169469420355679678800188441289803089919996015340006582723337534224938124180341825521707587078251651464173629502580702959343377292090480787117068036887382642538950465960651470508226683909737749283188805985867538875318529631295532037444954570481123093955222384626396682827437419186212496229366819551461921062947410212056881706549545367549944051225889074393628800630216422875116831459788902958460239235043696243634873221511407937619201546890966777345354692499238807898809211008772329942710884826105961487382543863660686049206191868672928595060627668274217898230669576792243021793901498517079974030143567331977115083463757376360634273074248258199126294453135731591286397803819739063306373051674231064978014709186861449976625956329636340034827734536506150790289868435801978170879275298328764130199458239436444292528323605591579192559811852092676748663133882091018469643721329417017372321497846509804023282036615644993912035649826825231497010752653283367530312272074605006141122971549407379185002734331717603190195016207404999511532771900246001152438052987590073195819681601954073678216416208953434252963842214026898181503742179025582574490410770686388532727408453054764894445437077639824104634767413313355903300142467900455083878909911833147606719046010386229050587295853571694472529674327025643123461793785341637620261582076693319405718648880976322446089829448418887286989449915317094945183715515447473408155955790120644562713761994630662380908383544226866918310698925571801224302232268227052189795448385086378063061963770906536323457896624249584867966720035940719019215600819542792784332185203274006904119734065749159264528292490104249557606102963360694498774185790105433198150246079332242220737314236778714661073641312675575124468087682135657339930579710262691519586235223796174252401582701269806464925450179868909735253667994758266010444252702485050080984808425359599309793357466534082504583617026627908887894397081194477524537837521532569771826770822417296526541086396401968993552522572026040990538669180419265127597815294299842670298792751778150822830204223969377133234438457450611732035081959569656609477350705835224017653265320521235372438693645547432185694956767763561682968028524873882198905007136517250469715256324609507272723376714608460974531090525578221526807001256436905220295246454955089513066598955812616396184349749069076851168811747697671775194238857676627350618097239565833390438785896787763568975630469577749498603623612981826497695144323929473855601349049875827883362102495106221913927946226356938577849913124091815482307466936958232308721286409083826498772732090312165011077293307350120840220945514672885945948769794104768102784998475367218603933280471949181724070620704012923648148924069706085784984384896784441583216473864197166912560140320931398664554971130106223425176956871737495492597113295554718646228130746420500748176752208454144329378317632275170931981996104702967190629719981308001358333043868458237981312601489126848966769221757012369506849541215765722278889893589742198178131915511634414695642854106905886629363238843619233046854300495044998456489724151867846700980207844230727379939092683966120290860378018337141412228296916599214444950008925085135332003852974211782825340719888227832172207084818937398308953484829229037717793242798734221735168247179308783189731152784829398419801914782279821106916218170501960346206837581798784979221724992172119024953465423665185960319484224836674999332629785245446040511224986797137803234691788327891974284061875506406296900002390489963916111459739595204285060401581442446355574118338908384593753321305549627933339434527399671702515925949505630853808850664648422576058124330724127702556178927679951956539368140270938221789810913206186641499776754597609942440936967154645953316731285010077282023998356191566397374726340588911840437828123497827008501288305827307008817011569444863331545819974027031721994128222739428261357332253094639664220660176645281718946721779429773646304131399618257414173376551248039952316458998406805855531223073463141126310526006269465515185767612748156795484744410101661213541161797987111103494529268904405394433629810679893698653561565855711739654242628340668497260857669106497549478704259737880857395012620962594797255440016312490450365279592748110189658105241852342863557620010821833084910412642422843223731112252997281605789870036331272046803114541876219157639536728942871092727832825115077798450700319838306808930963570330761735717552735134270178073620573816321069192435085781556221309034796669924340156237326010167157727437203366166611776158736939924040691672474184281307697514298343249705175340415268503628121675505074415122015107510845114466485404469531339536192273687636830674354419360912113710830764673964214445247805253736272783083011740098719378983499888278602999077484673837812353873982183247996389475612177017687253798191966381528652587951264404729022320410880536524443429431882528312918974600271583939668704484619114539355115849660098907734968416750858318529035794831773228710332069289384997062200623705367489998198539941759427041022262732802522099190290563922583813482352070130553894460078674262386924932742283413135368087767262919177814369558101803422359368164014257667863719562254270010852537021913282659804981567060315113025792986754528286015678336364788934520867245915624109736564393153434231510638238465616715991795825319971890995987140967693989669075268420173692743541295416779289515170854340007091720802719093079447466629328317845252961963475317999025531053097958501839152296774491293844572183801514181261401140026065713080743164457097563922327430870253268821773122801212124888556385482439300415062498833193725864480978675587820373460866832845926726790963029236914755988476660713658941200382770199784550340832675823636614613654404817701222638812198431968899571841637919690738150650246440704470654574670414178567798891063377361813897538794057621178612582679629510569973608344216616936699124203874567720198187598990648211115614284339049209306789769598812174999960317030458268613402824861918768720920359069175290984061442326498490809390002786520653602448127752782295090038462976924333542129128956245473660252503603322035173290286732728105663904478472077233568198644049827939488530659844547687788639301880639096397149154040882896944615691978962398774564482144048358007100820498914691381980374001301644279604069693587894803628216760688304268371603243285139151495803075250305736504701064887643551045401584101961484360348345619503076952152319870240088536647219223476802301841167164942100592045364398093262799943073440384299267474837687634194969773613370600512114159849759024693478254158232121751198656975189800553792252725852597862418721693910826835229541245642466658602290265302987649881044807162825154374879426310117481014283378521858169687277805121008658981533613568800245922023868125152708790717441498517288513124413093855966389579025704665655442950027916129484662787299444965903510703456841763346476959408563682661040121911948155538823297849461532166738080583628076790803589680331960042829903668536938880362713553986115989504339397409314012842498218199763833549251470498085420640071909426987018370133366669253333284926649522443568954709134492539577245960060652411991795848143295240678343489283069245591049622523580932147486420138142763106964133489362331970031684203041482526723209258470167609701192580647038228392843696205291152146826705536985896343007344494081414329189401014376122736909443893390988745159023159733903718939143246212485784014146717595937413417698300026634910369016738689367194047238148667871632015358563752231469132890060068983930026963363078407092839377079880247211719970173556829292117749799586697729873276447231480314169990807147813857652586085836759552424900018415850702589906420388979111536759579935987256006483018397443662264435127750140313900862989953644346469817276478829553552067629876401450189957229268183614947620216861671794057778028934902324956745271972475378024528847987362638210970552148768246689930783482354545523356538704925364424068470580433406513669260401437545836513266660337770604853653369335789439871575208597734042791116137828121991024048729291156100835266947271377773450865287407474374368261588296919400239102972600405554159855864002017380273617432770794055159879390425550585269548397779353892648141342293090406444887735793577645022848166383856303058981782331408771139127563228814129275204997954495657347054173107230651627903291942946002419236770319053884586673099159726553548979011731866589841347938334188029636998877575561294132209624480581462606548358374944620054748491309194924699191397972705957996653336425925915441646480840586517224561107103743975467592297987612436251121928613105080328917810934794219006275333238429632016973089869553945511412858329105430508262014014117073167396850442401073256627164182290196628450311559288710597649903936006423554564154858521599556908287604658403222779402912113733876949755756101209027359659070598812369180563795014103954100555749151115570239839872453674053987369047422985103184425095786469343606009718001498648935302207259999693445068112080248598956877975795063603918405966650751157636239961695561062556934135549448968579246486848441325801040483035746417290974036595850120109019465249524561360647580763068080446414315121834987639508062861297714883634725904803633276762699914000053305937454983523729605139274273107321399887981931325036511379126669517898995543290152006242231287531116704618464971162978344568307359829711712872181474309345069407895008199369439847220639505249497721709956674284172325828856832057031177734843985106033945796526172936983023634308107650581424032514701722268178420286247662113107175564884814634171568499267964592308865405228977145655631287987510315060282042068453510053233107798216805152443442578312426647883153680054863019964836683174274934771527249472395260382307055092169263523194165347879988206946864165787549793889712544796979825257808863239242952434411881090167157152138592846625251305568986725397450035446138753094540000082532675020167112758347377383521247858994243772189315999030496653129920427718918323767113062523472166752258136228029215225344690294498940904976099976943786642527355132000664282593154199941916489352235432663487409864244201245204228522067764100144600020790600248373790885780058342297933585357636482728344905036168095091494082260548437859011986461329744917670683200215097866058437042378591528434556534015422759620758867608580680746589427488444293166076443318449297063443980662476927512631880012750716381246925423012501469370640987126769506324469006777644452836515623567133366176383300991307159635196983728945492702121571221227908896896824591863047970599952044714777237565510331008843233624376589291418978696249583322461446305547793023013008961489657946416632411426658949275242060492482106889425874830885773566609051971707839828310363225131882207474689301762535785503056416113476054763700889538552190401898767796137004820562740343540528318576085114577177610504233231277055831216770199749060601756052685346712356911143575870296293133342657042540361946641050806327138140637248100233517493166530124208704656528537013529773828997927421112880488530516718833198135158022601798029219972592148051898691009631356557430195324644932375207152244632276032922808126110460832867548130178124996202926939694471545095675229709598983522628075563388150023107238241822326897466894338239942434220317648227842209065097766944562194785475602519512921213473775650733784371260685640388234378568948823736777545739472370804063517674606188219170459595948219859393469646861892522721689348110921260283425713647615932806082535318868287079807788802031880289517663061500846762234381125506835076195947924614118577076296216037621411088566382267343942185266281212741457679275516431414782447457292978702822222372561979215910318786943300819047921885574389934673060215376861273512800682917994018064148096348775290834823824492647959680359851745062633597217490326041982477787012054918926953164064541865089972939414816378650338232857813975821649110717393795047649124967606919708393520833414835587156277042113923138861532630678014398368094888598214255133909627510754420331898623592446072021300240085783700739127439702860474892403266490705887978762314524172673282391353502847332598018812620277432130184577875152365862866062841140297554772783012999140731276609226711961165311025599797657654593311326249247775258120585520655616688989315653283528898074414328734519932578752667337962766964855122051993614672532213463149210725592926913216363075607110370774819375771235925604355294701628303657626122758180244020506638629480319864604500930418799812751883192455934000697301901352616211426271936203412442642545898325759909465827176114651605073246230872061322085121862602089078520624231651551377425035174823269308793146120226132695690017912911546684179948072376464492338666740530047259824290454221284425524218161851490758964358155154934713249751393189290706579017071833181705523638934381156502475759970643338674098903515223926815199416178994163516562637823314226404775909932042095744401743584010022598928602043643712650125561793328246936843033523940131109201888907849860237223257630812960721183306858530140670419520885008116722840437083672158317839660176590225003620781251922254684822019383570854529918615073964710621137545950621319904502689291143042556086246312171552064595459701894201605911323097542981383028465287228372825137889149018056625379119876044752401395182678904282392236005511570785873703544932521820425206397532849068560562893377349548632684091476156558026524801602370771674891245719284691206534330501169850897526701193593787366403281103223116275855741116371658114347231187879846263028320341720035516817827458638394718751789463702721059442926073141855778696482938722052291220388861168954521081898867748852907732773475877216946612413071969838146673707977469141328755640992440575869093416138081806708087010243156351491604449611396552996721701446964058887733957168535205755708557789571559050307491532044731117014142302053215091990117074936642030731308050593407609807365924113438471949471452486834110919371412194892325128980386727956867175585719997073752493651555214515932302533630340852057388632694446663804701122881448148361629182607390626886037046369494031930842184099624072789988508503557433177489676833978512221886391560440215782642869308038555354337285558432820207879851202967073880546953888115670872522485040554794814600113715725563423402518937840582925617082967823676664628464557672891831123673431848922863107553946804043610374184580147707915112738756008038693596512088227659613484173720271449094089296784076699243857869642485067810234604197249651790286844287167136981527743966999013720865165628916915424278398242234243180528115148180981836301220650401749099263513336866588055503345806800234406172491765583154619165584993931421863577365599708627558634805030453682585725287688867819667355524958244583465832873180066207296885920456771484309311668238148956364796805501920853612617621962646654633762170426289980612228924138140183143950647968260811552416717321094581213241814101423616953213490892964032625882985493544082663383878389881787757121044225289728915286321723279416036716729997923917440695933890068396469160409811263197161752090884974541843749560524372332148322401612181560104827849657398185730759950630977267508422770685633193566794536100063895803531301935790867271832912473169346649019299153269360588794421936962372221057713293364108793590656115776686254470263391401818603306184114416013476189951406801679745935582222945762716992766295504024183670622767497487241573299696944083645525027115521837787406933939676460377895621513768926431741938583681510506020651308957618976211149269224063448118851509523250091667010059697445729654325999661628375119185604177445747215699752300968959482105029661567546341365364546861664357513227221811390982720009728622860659026376345174537879493163897042601637958914506650561481480722663883418899987048796443579187572388538288874021839507452191572611205269989370266178852523197367441359747970699586229939270984289467577085415809369679467468997044958220929703555386712853825007161524425836200099910673462857927988231997540444997658229912925608054902587822161506452355783271212202340107721668834620967298242640966670627334492257978252083566224671839691172162827262764660410117793746207580669921672318290765719657663433347898879453218531839396590201054497826863662197053997050949846131104346249240868714893867214261052262298365699998469317025595555280260562218744911294734815710092618580828294725409427719476313038788420180287468392240111402079628741252481845747159725162602882148842629137674120119718703609798362623054702848931176854980105281954170179694609678239391645766200048850198106473058951926597540191813641808302536663707245186692329949465112932962180968312961415901898065447862434946612050580175751185256344173834167744744286287739808437130360056271737296523923369358986796604372052402641392725552379591975506277677851809188624898843884663174405490920380403527157149538469867521304137403015018083933774177985596807723415781011243037325331769284325563796753417402763081510338165657855431665849499537856110233099625977313344814137045628229517022327392568400392000438510853214727264338493412219040692601293407504876990395494923393660223244839266199002725161882557651574659117421519298660977099224811753695262879272771570816028368319086741130226476165169077629930703408882978989993906657658476763472809707607497952455192691495873087188943094974335925185288499460956790405569352636255740890333014327201943870092634826926708652114516844197641970407527492437510150168852746735590080132198991425395452265829834017873249017750073453140400270035758735016716810804819599669991583221370679009519274495588755432556672967059077194251954728053246605987817920014007822401696217127234245154771695596244461891661414312258835816548266395890641562448111596920869880994899940889909698022813306043479388562075316582502207171871115150359383939916330257413841054964511186012132665881571697282475995558403755379527375798158974354063060029712423518358822452794979688007181595864143359164380760490621016185165782546303260947613001451478050086929978753703499936381149863523046350415015055085430760512741734176840808910996777330731432292482490371126151860561261985517036647800152677306401481139932072993733043416588015002084695777479704768394611438951298058721825304616154053187794045437814721058774506422518492596452848888326201345557445484869053976606894689144003732367223532699180404884470420550211779944250329905161023743508852038089358560966736326282349669495205778974852629339291827735065283481960358681637605268828764496293881287980945794173969499312734091270877874287233818141791298936564848867533092764861070683719999236919669997962485231045482196034891166952776064085717006526708477910619107035679009899714637722241995234674842501800846392248027814444609590649707164041831778855647737919928966486808617750690762872817858271049664972303937632753694235974901753323096691993549406133372119506225244576206357719876671852109527679036711125297870964657688434272367756337417237358866035737584272814631770446760529454721807697050365723060148139431125269422913423272934121950858744249135059653162125733519371545614684952592308197091070185065916819052094223358562745255885672757918226991427759945383163447302910632620643733389755748913288675657744078214648291838874258095823972939864979132927628312398580760751193119213318773582169300077358249193920147845587273407796812025997539993924009557812785586089472289468619688041787411908372033777063931156127728707266124438304832632171513704248292241974040931923642165172050848943154286807615150044058598122677591449939923243294681665279752339029747263154123786485619977063327517537587955905050345225303074944033861489453707588748865043278034391480846525554405169969747386177977192985733405709716083058234979060997525364544021289936519697924580219397154671501984178714206092268330570817241196812937780894833648554841227024412726622963775350976633024046915789932399231192613699430787726468107284867282831324094034607373265057789304441307517685362102837420466250737810037947355473929978930222835479157452108673472969269293532182834739746251526730964296841113371577013907872890591081017845959238037457536897156203330879553286673747145599817255943377920653809723021403169764167237283818529919029206372907745376492187938553688366910384899014257172158340106319137945005387903225548473781070808003063742942208268347092745615256731258783736822049619837823669637410285421146876194228373369042924596159431804066815257310758896743288603155034427387264623148465669487685015270413470701955475000004032985998166971801846833227169786625800613447940721943612485044228749858626905692515228857137219302472164359224972852998650634879195375789288915325963844794506000306619949063945273143277653791830764721069994211538211045187212063727496643518236472666368438681228895424029571003970886100531560819593609775853456578493672926524939386438533812665724307066207453893097479540575049650616307310206562375184004951056985353510892114366241576197939211666284972350270424859761249248640820027570458870636367789604536067744271398067751547335500452500682524005694529710182910197999348710707329758042912493482890278785005659780742438594667914787275959561419643063297748670742696137107323604833680861042888525959326693085321652449186623273022786607136431671297967680736242438193001583645310875290270154058963046734769114854681171687388057385496880286319571547938320360153075163213110667366136480528580703055783383525896460105388247131362430348119280694865960373365279487015923212636633287603483009661199812392456673217873921436932359699366256044866827043733249239224383252578723668340932398196307051798171671701799356509094110636813669543399039987983348696664972439224760070644270732042188744613724483247021196035667246127606980423864914492396341529461999955158229906627719228845772384179933054273292687508133851392658311179378756909063646323961018954986695494361208160547161854130996647075393482009403581673158121315940070741427712633191684654525742467027669087187623732688523692708436080319596735392153716693057346248541289170354273711222844990612995610071988235214547490621075656132468612943324259766304729443443674198933425448834012692319082196613629169062774821449859954205958132742704595420740106497908760706905624185545018329700539132588978552453880846702282092913596947235373560002219310697414227727909610519746588714008926514482673466560530887741240130466252243728857214008163198634722818608555558323162641864651503393022842545071519504923180017883046161151335195708740493451032408383540837435680638128293000448500675708591141298006137911094730947005084367878169942527084669523210055905500528583995239834617278971825702293805790161892238806431902719618138495662961034076471045088191180645814877138940162588071312201794030134443147507299416960344535035544690130789054655922768204587514708940838987613346231034119081217592902169833087572126700127023485882627748545054178227650494623434140134487454804334556091823890165082754205098772342604949539111803268110826870333212382230115194599950263143966305681394122319103392543531170118642782550534093391935164953735791369820855669502939072606010873650547208405433375755293976452161150525302349405749742666992951295387375620962227938357935786427597307663607346825972470570500292500372708347353804515645123316427445877716349964898411672637349428034057562295715132878137201417661586532155890505796831884077819652374128660053674560056166694619058629929463760154841053460423465601026627822874760803894635383623222937452739459739381899081091614816053544110893367675614096627760676164211228241044492404646510055614464837534836240255164467777381743819254784653410088720849155433115015431090452557417144960228181109316242984222015600545296496783816984766710197263542267321090946154049255659494729944984922552954435898582347633523529220525940933242524877540517706222186465885824419141318006665724326885136112338860854563761463398547367175648607053964358245146123941123899329149978384955090017087797533642108716506051799308974858090681548690197981295283331000827527374304058905154050918266658731042691261614662940707592974250463247644021480184145319258451128066496192204275538409735045920964698384496738271891625320422995519681203279858287507569398030671513284751093961186303177827903220625765132400280881434733513851964175216372653273704908302369969909188953621977034440478440926861175722449886241451658993664765118161675193781058326129858962430002936912783400468017134651109249720081932233202967299564650955060558589128986298879026851043792013659138665875899962798530787694936133934727745660429387415077730919602271338720310835988883186716368945220391568190907763371880951923441084421927967969692691930066867368367508218059438567032585963528359381795154507618856735371570388036835680283048369888589738647859086158118653492219943852705462782205957896144775467727896083458177484610201627679543186179408414064879244724841727394799283368202888732912824295814204732260485317970509356580081453213543206407247789806417777990219630165358568156665753472853032237594714699112544069523947121600594106127548912505450528583139139026718298291343389322145485616090457513153099574337992768558495129689697966040667118550061181696504422089271720646634279748448328226025709811832548562893479645308249838183755027773459356733641665696503525383737314921828281843309335353446041158880073569934411024292434552114275744604816158249654634028976194562468981809495833120933293779202324236980432761376700238624169450745326366223963486818415662152515279170558779970747222668134197627342787227400382288912720315193581169618507652271062576471126527535277499592687271622703865218533931025648278247950062290940239806140374688422239214456849387842281440716125742686006632450403742565280745369750914099816796989339003939440873248170978370534645602257916287230748886594820043528750993470391518413509529839977299245036006924068439491302560987631327342163731961414173996603889797602070346285908519306893681511523478501894580638535020585327608238485728011626391894608625945156113550252372537578194069080200867023442014345687904531583654843191899437145340704677719477332145147872527992128789982740186902423680145559581524559566059558317033907009313470290833393043477416705800123653420268938779950177488153814992479718629892162733516893454280806039182968228108767641914198786288436408166898816920213830651930596968937270973166911066814036314326184303314942673925643170696216797831258655287120890840992238815547974324901546880859998970087769046271451803670283507474235084096187003559103759930150312627248122689207241004272383185326830827834439391971612230715554205360398536554991310508462098774791920720836803668672245733355421873692703429990940125346037443555419301919019955336256886388423014015333311257569636917657494880196967125842023073662044637171281171328894963974386173397213274457219305443901496862624591188695875774832006487042793333375239814195615325967285528781377546846466532710048182529366853111712398952679035894090127832720917394414442332829507534322011518159291901613671419596403666683895778875430429749873613363966655140191570319659907865783127894191846780494072322717252241915248100684646620177016378318072823415153301268567665405970183155448904451596513782202384425452491465771683376851258559764602689525710816998652049221964273274880461563947617296447535779254655626441264816286654391353378300818246116457955273281166714018470492226560070229065403580927548374933107091837096357425800986116050635809532764525295330674288463117750841504267289755316191428833551016964393779007686943503598861119928157332595798234678224617746517028798061593792288078989888644610720963523785297955438979964169523342048368805246897502439095599769238991587877085179997622167538594613259513276982689240897255257799977735828409326153284923337775312293079752600734361917389219270708284230934388077751776512930212719002362630699398675659815459075014490398680981433908844556665636068932723975650676892658738828262710617639070617739342302242287508305430521172416047217854773483633392129146209410330278347682428594921029512791434443114427335964071320803548624251641989550730588347449036045088226798551020769037378954689521979890840796203509746807978928549380027875571054295131567746131609338778302968306826394443576480376886748096286033667659154802391794929308301358796027466561535237943923805650097890245047169846498224516254640009630898797520861671966619368263861506285961364394217247150256808583909263081977521086493963104222942988228790946929207152938242341631774801511507347917916808385465021789080595012361283417087273627679972004548617698701821602721405141976551871098671923270759011909062330589460045331996982431986963507552459884768689962294671707297586093465686864324282887039727440973867932083637447055913088698813495502823945455824158553691083716561686805235961627320817583374719525170536978001083239357586368535182588301298467417455206258142686022097443648573212630623870303007750948897174390308672838866189766206636606057133181403926262801526056295399911838315317918972910010583530753394776676281832475079346616257441031419729717964709738991206493947141582548602352346720003333314565224733094099749920294475099068172595322771208398406941681972515661610543440249659036039384693588249307338972525803983444282746345542294213336486020754385461491232906154097566317710399207411884608274789211694563813390791524144212273148941344617587431387249749130053712361842514121709436037810923760973309025272020132807345483518311453585302583028193271672428753784634767990744003811400097468909226569077431653961053796196859957049343387886709548492529724498797867616931158059042495644889772811425949883231892028559045638764013794495307546406399973099540638458146672978026483278442954026238254263847495771649533809314923289930555779762527646175701927956263644553732291938580409661289891567886678713965552628747772114976804173944350820258951735477926247316657011299721815790069306490435675169685269473764713680544620060360417663821265646390998968014650058826041533206132145846634376238789056305944862122827804328353947165040508806842102598786261298642789990928508589051774165883724078260266671844141950721361930753456227764616886584506907035276650596055160946257518696628716941002857890460240877478111389671193579002469318417781631612655356300075685765064014551794037333117291039097808916166696434190551361329753537641252780113426373811047323539039553792757487254949686281489275197451634208912329355586205585676847365485308737472560784047512541422028146801982867888720071806588079335188391030811452630673267101227816556597734665045112127069119616509597564837214347272118771425905213154919841615392047349937788454269446756631755510173619062869137299680171784358574629249327236958883608847433038066627111980255272179673827514421936746312969001320715813985790240584314978855695694557015987028844422167964604867183287497315603074638380893867740523404908016032985022198207607204040947614011508010537562387805623591408188484862989882271881729026978712321924627199484662273785128689112401839948793059993863465902929505642300680838180667655228915240315407683339233734216974694436683903565020719596769518942145763701594875832494335231644933104777101218055135035897310638290357415288698302596345013541972990447955941760197131144400390034669689078393996227773748879263785472083694636426892242337920560698692019210430785834001378848696540261326704275247989742960472005282756706463633071787419122909376771479143040321350641785899305060250106355601355346730257914610040448642727436563792328469627283726423155851886937832879321315348134442129603410742488587122333379302972479873936664741560735376511048167257583286592704936904139033154133768568923970628804289165670293429057771401897576026987152243673159567798421160710951230718421948423494492568645969496457048238020325346274948734012601211936301787312533948758833769355026450091007938473995969284142758012023232890984917646486811618606934195064401846481820116894088177561149337398893781941274306531342890011693085544408150847657668885186847798136448704713145540102958257261849083096937833186962404320702057468234516288437649573781410736720696395327381952635739399291038662005590502287577579488215822271190141872866533371519105010681319651243818139804075518267250687842159294117665124132874783297626799325790606653764517892000753517601890742984063493264710894344089691338723964376830470107915903057970769965986407489555695420442563668888840760360500665878657730147752638704303958920276336566571545916559259183130055060250318425848702614863412378154354832174527321732525351121614897119917900049627613650942575069525118737218692479203888536190852253407619918372724249163493545211200845968382505454474178545203475433982749161787054413951447282034535351036164067431317555443590595850938457343610801388785913849274733559957424546368339878794238840141819772378227403519144365733771933921849761269801893218965026506114359062511465762528924922108509670536455126686849009602377547309577544472734915218918722720338352935234198772551280202306008997735452628857808334645012705846586413830929844417900376418675142388074328695248684927894024821906767943699435072168141108953679795856198238195235850351556725031581685723793958991455014191562413063174067371176114519736119431900665840814606630895272392413462968498834488574480556899630562247981350787962067759739493097252188447100246720900827313796961906551536474641678302598101222060357625949157194307808646879239026396993568600174833004634567627212110080913091774834056582458442644042459031748271736888677057066309891571089609598564164044835107596809279830650082754243150651078412331323678547117492538865946530215412489827753296180746452216286667919844067357345080852730378580161308002333852166943923185136647195185614331897993740885382314721418621523688958370369911985321145726960172475042630025212539733821660898795306948805087246305742650648010614866882620794547802097575077965514659782443185654196367699098953728014240218303226719440881872088940367342545743453593929045237488636476400614432867600030817808361928904228859231097871075799281635728059162874446771950077387419190070874986463799932725661687759590323889555060720053193781393103897119433741081121396578415037516481853470206372747038797202411701891885077297829544111274294928875412436409332968314224364348275090027716205112379076721956572065720059770521744956770867018427867706569862352417299305792353772907446924031776913016833196214949168814162426642119560144940460128095696535726424662086996350668842441128039832451787874765126671250898563056044719677478584747817962845203321244397565635445340945793494573174138711757066799320179307836440282730275367844279609012567532389393848378297023262554646375931837637245185248210417966138853328528037029938169504647261174326185476662590943002587364954509895671685174759003501183024767873185743728931873923765308572441366090250750289539532177375461801320381133299906219555696608251854678569015272844760051668906831370918409874044388736864306206348016536601568175844680243108094284695840918311229747829975415809778290698925609805930269934787284703004312015424435386365277722683364896704923474094012713264819807019662118888087875391607507603342759747983204708704326596463928700441390094350070448462714311222993458176511848974752684300138948845986889450279346936576115215243709272116505065743332509756689390541253728922568889024454730449188013700261671291508405764060469777033405029451366503389009441092549667137153740180333178273936375159172053514424194573913208972377603732793726717559224588196035606525589080556966344865470867582565114470432017064082930156642795272885888787450403870958506941848807134476157288320127004058371977760842965698077370544283268109650499397566449633032120798127086136000827968764411732781827163390306787870387955140524891121963322657864571278017495767025468305442902157830819535253893016339775349596625354504909471618808887279465806755031183088454432775494730271899988776530398938250138361782673141869863592847162586144017101005551879348078982856025367328355897249262535694199185329136629086384050482880535757362621258000380030106944818795141735237397322386968319657122775021484615103052418992230771221883399889991364037047976159024281729942090470734712276801290950865015895733874490807862068151449154247878015725932544557683387523213718176342324638302366360267947533411595855508608296504907609968841175331045121224014115255925234966191317698662848050390477758407025237942633187476358122924909142394545443056769278029445359963661915555983798429409121025211108220025994864485518890681548470509365857170893854360147030642465427044043203414422012735775386345360789037787410450647312002715355593423359098105867803116811827520189384631121187783354572267788858921548097110727728098666989327417364044318071972046972323337998023194042197449685451483633130973223025919494752175545918303189804707015855331424070876409386436104761276934099505153233761878752645613155808933519856005897910626531852646319211844681805753873503867207674139872841615528343752818206475037381270679300215935379209231226526005843100720210188793363957688521218323781554197512549999339165159149366584070553978641022186798692425961735323116782145543843804008238713065532895406504857188158227710979849628520835944821777044309817647302885563709089783001510567901212268312205661626112992080326040826859314033814306923330526462234345046928302474231846927661775998471541707148638348672505420501405104813276491265777740382783221257803128676511289176607017244713626592976620587166146463869742669216247127596038667031217077543509177745237085629386766221666033956337449270609511667919312483440691164030557497708259531432409189436374806648643542432527548827499237981019943410513037743573960740484115415919146866628906197272058218837451120031713530589044899372541677713376249651056086396453309680455846212497357782992442760774668715797534148115884793528341370275023462242934995707032891230174094107575898925408700248018964029890644248549718491499118040959019992945625940756783576674361356768825378204153363263059169688515680486918437716337862982137360913098853338229187616149357639016967214937614295891277219467276310730800441918146033076431826809796438405871535550628151491827506453368681203633955352818514252929481252546364437792457870845694657450726155408770957128997314624723742350040881448093439629009928016397351976087221736380511814526113158192879734219331008518874821573227610539438368169634263791954220600064246604568371315414431650719951784261133651948264255947536119469157870621683323267051569110796372106484594331243732548790028192837759029886618411518684826530360001152869813866361679037753094654327440357612282379093832552270294361564747128387411941043860599811667300210077944195766674865509075011501115935705951905743060356649787053454187265896956781635986262810048978083608732125675681966181382021440043637783978156279584352159051237460604898558079217139392409516731176737573478975995772584564083815135864191136281418884723869491916428223508233924408853393401624794639977951527383404148619386147823820068144177780842224809889472880035123031586230685288465062735018772135439249538736076303243289166879221518311937168884490021204206720363956322865138247426025483136378266756321333008623566219535609629736101218269112062351239765970305551242687392128873798697956319001908659874808433186631102534913971328908935246201695683100028135777727839854542420874859482706849709469733439289461004966130864359828034672712548583597690182767330014713907726907789083975470386662287374178344714573232658417857893720271301349216534649403159320110759810273013818289815695318594516346986037424631306920242867407300131376922796907210913844474048722606034032224470540500136902841524753289064894673420636246328614941644374847189798761978843894353238474256611012211249413990497536381550844596448895554005321657841658446024420278555289875868062388058298477339696108190875939701393042868925930132795696202262031295056067502872731318923164867493897930600668662429264278179556089813701702925416286068612803818613749400650108902252210299085290747072013304235505438275520307758581246133749481410848256190246055253239150857503155300327377060342966505040429121812036145128424306034154671091900534794734299539677729240376232966220474258689180642644169781362972825644908827032715201988672244080542260220473175605366875497629943852879978704025461520516655136792331568897314378439878517059634629198418386832853662352836144914002329353099925994311950981309565725226797797742410426042121893528863220109037943192698514003212686055343337201817338987468955522692640445912256953315859480190093398820194547414762508804159769920417977362524627614454598765751415274754966530692636535793570986453256906366118790671627751910259582198482925659708360882400330546697963954700636934765598455732557998527408417619966114201059723468027746099541728864013815898104766456574641516205718810942524837401595756288554812172375965458171486520964576922361203457756233709175004711799401754607116446570791209993153712774853705297315691581173871050176384764342188299140883452758167361264401023413356144383605568536980564098277488210642040286002840275340668311594278190583895024392630236779172249322540869062850815753704745684348235997580411555155902717427675632584993085740782159667939972687955157863346761458629675305406513549939351867707206562017766692256271426248325652213207593450602375714844217143595421730538335273264591166482926646995124331067995027422948546426373446980291438032695695497162932696587366569361112204117610312068853489198767801497889482040760312733296295566945287488049434315598746186090084403999887790199463094299882628517770090993395702511849120519959588597443225362736501698705708109501191162318415319673543318994769234125500106090200955386230553741948540522189462622747225040808619650097743732932564914795892393337005581976658250733306018886146428960787088251085584714769253399481801342025792290923358325587524282163952322679953499945787092483372249811280734672444376212298253202772535832895333141139980284902785557559955844650253208605363596331791924903015270588570284067462479171047577383619846125944576225875587875697652784745387467359243346242232626255402949979398432894088561266898647146263979855692426949604842173284871424914307273380465280502670477506171702725985813674500343106280074326076277117519571952190544584983168085403105177818948903812897710666188107887862331850540192238270677917363846209947078808402907239994931488320836115855259234151330472134818211262086694639697672834463949991257048837893133763508239800146888166264382620771006961104291452483092693860488779375928411629775190113444532496422643279294041922912226329076619446068258888845891770046737725456382674158741207745192981664862966314873052022858424729391932316063659446810285982041680955223840465437363843994951126145277900162449794195015555182230037578265358680658590677768919374275966419086270709429081182487415306825063779830567507771170096761565255064828374662817616411170543965536614463124211933060484148855023681372371806717896300667954043027250922072988659501930079166322118247412553537168151668099626343216267138623379362278623232378399844922854008875635578268265395947791689797416202866669902255887885830697685058150999508414772209685774388360778894528703689920643531518816531971079100568709133187331457263576380574662233849509852488506760128536121164806502909855067613962898129029788460499597398559589161146753270950089837543277205721335117628646970184118842101726321181036799102159731298855987552516449943497027533961792357652634133207259009376277348861128531001144215605433808858662584962828923178990812040513697263095719490048621404577402290842898468119655027860473745101199577927644973272980367550717171537245943041974515306407762490761168670572699227637324778597756803087818445382497349371979105149494987226050015955241395103643771487468889549427799266487966889032224306921523973040860853690227729437057899027574198808843133818695884691263476697167411966642827042676011102978629073994981259961301378306327766490449316415311752836145168004670513125586208265941058850637359801588035219999705990524837100166239061935568879463409955200162731706197004168023438985933803589277587172974722631830605839103415410133024777217422698527174756507361960438614116493635506923953600899078424440967392585276622385071226381818623282988496631619235742271054443799669044656032147998604913639899224955964082486497066774039013609101245936642663936071578111348925035387798815887302433178841552340889217612042810102128183584842717053894909932171828746604035433776206863228569561166473268292736646039454348196946184470138006911292811072447911105783566123144593581445813032550295398388961455588350765461835804492706850924474199168006535509624333557277445379763959186272621711109592075266542754461926615966082068333248402929264709492304221659192238603658567362678834164487090568504880534143936489132856339844295211013876402114834787166703811363469032071297959166575297106649512910384056625643228329704984250742416523330711218750141475668553389451928040504026550910868087694958687823783249148963058075390485196141629246133622613550030857425185949394370245155826170393394614978616479950314171013639960026263650094349446642292495259871459230487811230414757288714920165483974039520339822007787691092623096884697453040746695649372261536001164794677011039849008565249848812881344508080891933754543737869420278213066932949051751734952355209942475332670020595638208514467105857158585790253692074124323668024817629223917189444054968917779274863223526552777580106693348251833771440118739501634232859887377281381495716638737869612908669228658952846610466298013868687076765311343795321517663961498687724449495131377540919901322132647709341203782796499984254628088484188286768919228453309745505241374072934314924622989827127992569326799506679939427354892819850996369738009982416702074999311297105585873997479065784350642501511071699697021106767175092015844767738939108318161031000351160379332168036996612168171220695613291451340194975861987905001061687389887972172879038305756518099067891962852747135846038564854423792803769924014932160107913413063862929588947133678605285983374549832743844965812774371701715176516982599970997188481494144943567083978995413087871961453934470277947503388895931800299566321222141221854972675290569122877046319549175164234840549834978928576251035595915677981331038720665162319498728083150049380191450696287490396486895275719368799582362371785600882906778448692620355258548121128031896599364521762868655433926786598272917255892443035370924902256852525025163776796876818960176767958024419691504862084551126702575733317962256961847655916815144005251165360452314758613597305520751159995767207596578208795306899175042269019479379195784613292103927731161899273037752707462005505704932471329666537701876703780367980293993749144760783988247565043709508852320627536972611242263911495556357266418196424207247473770730007270895961906092154206079844778297515457257861063694871840111355558669912022129328521291556257088843404377368894227077610732471240885805649019589491061513922479506733994099392124500488056731440328679905441608529581118857254913948851482412640265153647650705486599022543831873603377544544828743601031013259609257076404778778890901046021022911586526410221150019671484945465841448336168450726104445621696832845256865600804154215494061154132445164600546151662310609293550611134374748301678707913822645100056283284470412964042423214779651331040877708374592452542842311241370255239429430815452362702869035280192252214179430849741823395633974850952322818218472370325479100387448642397194919529420797123002290507317586295295764293538354442326812569717474839403226018374548334398663714945803255141130727250327440884597809783362898953725803995753911239108335901565650297193758785001328719059357580500702565778733646539713855306243416976648607309100606727764623479667173240309295555214630177107220950119560324727194592685840105835297647626630171974464390931370823832326245986150552854834020905396252857857243751924986731892049385860780903460371986763871077913517735618318355345892725851281581526780051096657582716532711010621868404082051988025241900664964385500352033076567111761316772722584859131146433197656333878595814226402985670684405000441133302596800252754627294641706274551102167194355435080478978184541887894995358235737995040755963868065211584373119043673715347987511196199832141300685286367002411594234465009513976771164906683873754639433589126224448517497174446780795289129595656511462721163261796059187015233560847997257499838202704384104217313811133604867765119795338686323335955196983725051957416463952610240906211862218609192163298261237004380020187057602009314972229062521831352826742449194926095673052618665170426584818427310539275669176909913548068657415460079956341548099815870278047856521096646072531650040011089470125815365092670829133719147217993422334480882634389738865059966825680245003125603363031148532645132424152094468934924606763404070625953381022777093520525496103948955300632506484302298279987742011983537627794320648386469939522615652249982854787967183481467539706796050766326624382175641931640226691976596704155884087719125516224802722776514946697844836117194152981958097586011391304875857245211569982812235014743072392844226114748656830246453747317205457036451875255297129629924668894239494204785039836974780891069395420265352488257804068373348300899708138935472593718896643370712943295386555817643665424442862363717268804239120206325422427548092009816848953619527239838715529176433887622915709510559096047335630449023248564583800835322801528915318315673723578981045213856779497222161153461866946880810394676925997186575190624479376700734919077210628409364100592052912416363141155605148050378894981263138770383254741550656077052888365693352071593190645521878217163659032790970687269863478205640149578379535134502342434931296601941005611094019124352670652192268960132055670699367855231301846847757716632101792487844666955219900846086985215776922001416003439600795908247220823905499563265372980008138925240219436161750718687628190244973256752452993082654969954942464174479094107167155377444028573828991292499366564880010363303594321529096080373657455127372127023123689120922227364760358913530608189889315167973339063589293718092868759777250968338582947354540746578164852492149218690518579217793569890057051259439890020579186319589457130422164198895455924179705539965569896790130738653723512834959060825570053923946056798953921200296752279096840242722982195530044711808681423698917764223191119580993308422544588253814965967959379526794289771517323494741063835593354595978056941830772360821727337255384315291371131043212824108089600723322915910441632788661625592634446322346412496549512203937897053755109603844323533515006355745713800284959546165587638217958595820419724789817916761323345222809824465125397525664602892714485644458046585932454735420085072422148723397606779714230200765540779973531038873279678902178872623490178332560630301727420775015184979035788422438340382593557444480118309697231777906949289330257253874922247549315930863761758492408935422588474787842924123039785546742976056829971633020687351568837875666303964414164854963108584244010459272565387695246030565551027136561488017681786409112790524428396690527871388500729232157140373507460222887666216864872308270784173942753043742565717667093389985190501545824012850425947260760887001071872595363274277649516279908909673688147951607158354131764359746826590233350528108677181605953441079359904313523041349131503555310104824159580845558253788320920403538852474891533675546672638529194477999351106283316107469008619390772088005115902750558671592321400170652425575481945206018621875965174461136826330374952276206023163833095629928900606127613966087065754507324662014032822399104125563971732369427440504005908139824884933107756767717416159389027670126740285976457508197699189265215184583030374276087664188950534043210241569053872850850042317710287621775843282918883518457624077650860159305666542390765938326590140388301026224229213785169981106363341051654343603073194082012916061047642837779959086007183611917295523201988308928737231688396102763214590207832540082490290123620116840748607051619975263666926313193487957677593105950056588246600816303377234311642035762081803392162712320191935835517902792963938837939889800397404306227130957842435994138950138442824431875470094518967443627707599998640449707746674962914895867720945312528369640415071112254568014549539580748149227149647107573957634167012344838116631765617821810119130634393353186219738740460680676442864420371171329622292206960024478625418252151397897298106165658177742722220446087622047093662932708427453136462420171385930828873257613060116742702004183344610843836602097446704763299534623061836155627576282022702111589756786040518326036813731908366922439882231296505978491609269324497945580521449585733755433990034835180694943494788764000096120609732472693924651592827582000380915515216483956112206117640353082871502291798366705265159503989558241049226832754508642182894445918407193484283475730882653740735076353473992265321173592837762615481151704803190101780121283252646231968171417906676748092708838743546488176874168902302714123211623046016976782574221096176223487177392737576149339114934704999849343577249048505344909087099882825639408174279224681836229799003881977791270544637406091536752252214831782850571594806400347200587088746827233624370218845345284998167962878455295613581512898857516168572275019391139659258022467996303651083968890120706991866887825067996945785021011653791654893959672593497262792944057141563157202704719371186243899366475104694460652612571033098881246863628045767780775291465632746973392943120520095802512878009177830017933822921936281019440913573585609288238813779502651801089156953887860354647851716781325262754478812045987444452605017563329987298927143191531868319078710364514665694533378426156277616137718170653576941328168405620771724104163009091110749238214342225035864480380701636024942081241365541744981652774565332320727498445909739551742674694291909308339666199679911309038755564801287860025515194010245124311417213635733848840707330184554067020965191833106672731081360030155597837314577689332419652223670626720416210261073765958714280496652747551590276062171195716105786678039150864876476637570270854964642448279346276046782339454314851370363544059171977601503071136057891682388331196231887041794367384473070385965008029428338187130795241122088354919098259624975408456009760939384140905540858763317859401410598363177857635423237103841405243407876486936227269933156995640181047067808071696396218996896072182825810054562982086919130980837560168190184161505546163572860909168134047431702052587937849840477356745754129798733162417096556432931590469801527192960455742664715938917786165900088706058348594966480420452401990935095757737400548864887876405357079478660948493153497227988499920073023317028650772710518704042543917515006747820007883317353179001577593600143798017379345269071519899143973859295739963756878094908935356875006774996772260443751109798775833520533917288300789524753324609436496820879702613047147430233640195560183377272372363933187082905643800556387709971556215166303256167451324010657573585313055658994753561863131069701317760480633914183541171494343400548921422364888024466769349932371542762404793012890395139727725716376137676521192714314142082121494041843118051436523169497498054410545336029503033837602047514395543915413766854696731842499650486359644509716733545463948669517897259163335257088946130871757151813004007398597502679457371522669925451792359796929188338944223687898224500747875354750731187967056956562416169649103448716488237363405003427989104495239203811700920888548463541487633242577552378326449498352582643277398321453339305549041681467976576467604639429325581309090324328723942077575755689633246956632502938338428897675556610488970615195085550618424458141260488271668884798220291195477807232150637401592331065486576790995274914447161082227947388184306835140662279282610998371484961561172081476387005025517458661472549362782086266272571742930166927031766603467258478401183154812555472426389347575958923572153380051994736651693645014453302944492610591894514736347752595189954455296993711055983068828960225108756974395692337376298185342257238827413809070901924501767907631080023339943813818828744702266220864833427790037097791726976284568094886523040395425362158572478608531158804566993261686086741753028245560908196018639400234766748485985940552018670384187158566313388864173990484773435097401979522435561874601946833768119715122626481938611118108597352279326467155605779658409860052876519587026137252681677256363386555598007910304523527665450050470173150616991061783767073251220521311991330558300968904959054848415525551639893928110077340840207383236150299692249818765841649833473331911362840078883612194882867965696910540452382474566435543451437535573988869038520269714918883999670133350944099342583555980037235868159815882276831711347521966370883290320745524770551553611079963303746593939966542454148335938344104577737677882811195812840391370814315182192739881330174169806319884208511723526745183135233750589688076258756698073715793132395985910111018387052547529254779492624286945684814391195588772280956280956970751963684399357150398772036933479606672715844820162633013489469206130866985012284505978724296066989835554515004194798687631246557619951925888425322097153949348835487865319947821249132646317952583370031629527841103598125948132796111077985598030886309274940147693170448379326241739006290835192999196521530577508621652222295536747713254585695382829463854182117250007365783975814214236492422042250339375371302887000443837039781125119833754029160407241391262503487605674948524080568835140175467194842694374412582373322784324383946232832970650924452087121984348845464460283487659276011913088233810282902186506686052884514395790250463400953177033442507554706944768032143735432357362188298674088911593855122096475665739271171263435449320501466748991818885941001936948963503029198378085242095368941101077298950116144265026033667601524902992186632211974789700514745572572140521791263187545020456991977552729110225967802829168203466445688417009154482461744456547035560463715243323309791615668164424961865872940346680686829144291515725734590096928586101191229620424857448301050783635617590022696437272485326733554237374676688481068269452429520908818219857046066901888766844297032733860516534604166862867127149671978887908976498655597664540387993541678118367120686562461609425185503786484056589276442615069908972615550909302894444956797207478091288259869341855338304976576445910671055348527657754380199501274650670492454033399012487477769514297317886399967235472174557227154574057067340519547071744812992949780262220184649110739109131860975679475000401910646733126525804537015264525597754195521329760599601287868907244898590717548981261612115415965395506423741531036549546138350700958103989958885060782020901124685461561396457288025114987507865389604088014986970868564027846977258916784929232146468120214677295001199805763695675478371764844894825725890136085592037428186774294252262141091656924270961765550144149703134978973156770474247167783105554383892384887041451964019577274606996848487317138711298089583798049659541380993457027831806632614343750307953124831229677538385186061600368601347714514332162673058580973403508810039056909090525501583091857966047307145722028326658013493229809284591539780885561017716408518454726524025047931879577875014414871151075674712890256866430014367526641764570531851579774278195981759529643505322408438628723616675365545880085594595877067503883916963884685454398245332255579720832582946109417533693230497760394769476246272931971705977595513615695999425648843033257088749023302739979402432462262384961865634587752003609692969010183862070745147749882562018975938105615813248103172664597707476317487451615998590012805337741737701969988668754435072734511988756746298459161124931542579688930680481139069319716620470540348594414236768780978906536018569940652507398469449543649471208468973234077426198690448462588449167011029334404654927006847815906790045904695828924420749825568897061344326170550184189243600313963390333821807786233241989969152173629054763683618104245732451170005408014929496991418908523944954019653408063483827525038616706945600141186478651240887314973094615921557908174226241619493757083486521204284180510390825015841093511584576450984566693068566116589189704676603275151833886269624418584730898493317224896271625334438970640411099657604349973299345383104538002689177153299060145715934280354967927923476585996110089201481632035558279633854638894344901751060739018358120667534002729957763199692404049270492390450020652558394763588542260788414660266435892744703793545455719135350410169041051777649188246595652541860175496858922521591987115883281890291622528440198674344519341740875640428410084794184129221340688374239951443885325427054436663567182640676778492091492955595511066558577507850648785809888097840306296886069695396431946998663846725064265112929390289064719820001135385866994865213018148884619996627766678408346482598968488990783962509842852425331096288961371737596689169348336240186220761100096551934281125726817449852103859568509521249392334875338938636756118044762018590192119673807691793381074584839697246879110183576176994076928124891838468110418290573769562641028333741431432442478222131052866434239505690436286187774951768217809379340687781000192997252207120091296759625727127325779485538446647362049132939410447830883982758051871004264362825359270753516417526645707150282745770411717345193714024408438846182185609770472093022073420298278727540896134227910484867870077798854420998332559635471355700849619170813393200969321634385581205686382256375220029574377663006448317040479120221913809750739714135581404578464594395004625640838206628730935920787311095883315605150389593021579553740022661423280939511790994816586745739711502302587872569426747882430880163594594331567412011742095190262384968759931257449384862752720978089779615727755615025649474219442022103063728660909311134992522584730342359013702654656906330288068613844707789774345411683476443794396861497516812631796556344945856239382367201970773801858508655355018837281261778293402227690093252189187037322394822825758424194416556100416938279744494023117230529375691268856280392835858939840278803401544093591125990259283802782510565109389742449291179774343976960999973077712875318933823588506090004272841510587126516040627275161111333839311489381827755530161782926655830333688201104971427497714317409627089367362068722458543846874106011076803574758558764944035666792355849442464821607479071152876204608808746555007194594598135618829777563546515246989729832359025052352843628597432517921474101828982504412103743774679540894460182282344176590488153312499150079833066487076173019908936391387982372982481422981140826211258142996514897737956773887870113421191588916010391846542839550829220806572732553739979509061721459500505886252157712367148962664568918113846120228409259732909303530394003334630048391884558756955129736972906640420080808090195377580079731285031609500165028050929701547339722797202127901443136140608907931012989578845538312663453196885337496700031111666169598997435762982402616642306899076327107988657086058996065419193004052512807088459895776836251179811295829669215785899846322891101876449417482239370589019324933674216310320598976326329667483692957982642471921981175630661043217114176590736352359673546913596116847692781611056399081619017834004672967325043452050432369133612502782018586423757055654939890616667364876018048378814031492138273999914079034421811525480254133650459031617734636022505013910101341072014263460396169444185369345004381172439206867556848091316659141971710665185181515742597902803500358425869610779735395860235690094266544319188056864503428525477786166975646042181102161685841187973741794326207629457774228247824244657568994681814142455840453159528713417523087560790527854520563284961696999348789268720839615201102419655868239258936531507218447610018322189787133626229817493349226710004179159426514268881489228861864193647843232718538374033658764348225147357275356324273203134250510586876319640594982572135895077903883201395675286463330695414287437572294416210070407224630151151237282805478448448248919273833386820505589452820334500155182485605424730837992775570091848722840980962349167188224025847607718595087322599119499131520700906841031969749598725219082722544818566957762154455317182308022679645332649792684924447755416916890829491989324049207708173807148468862533275083807717569378576148556114627484788627287493439578519574863471491773882882200009297539746767497073850949187288968259731058281054030902571686615878257545211351778399689137213578930843629105970876477087814545863638145240593177721821462281061736517564555896521283450032981819309593240884964665719374378775390697359125379636896670456821475639928174494506771225945725345455072400548513945387546636770922309911413478521750495614484659757281148774949015353229241153692247433293847669478381629652016915392835089079477633017212699425566065767327152194882031970652187068580300758668033196727363955829437716176831042765660347320771537758072444791287340078759490930783468902809727803524274244239024159732721271891784830985467069754723112398946101828446381968853748234856638153403525458990143628206282635874498361935192351679293506661853495983231820899756629604132469586452977373616419708948188018659266848441990314397752029716614510558798759866856067971553694131540982292820216395883121024054424001214914416282501219375165185363410905724908826369039461954251764383530576809716840855567799582854466052239336760079674977283803624267586701759741079511035682176358465256029103314399870066979224915240421986934023103180799362344098906069412644207744362265346922751050669543186963275037213465673698635150821877613054617083611967506759676158325423032870473833280076782189273970131245654492206562821753718427728542914926180710594646366062609657796684475785160246977477382233316143081563015140276953103685410571482072937453829377626289436558151748737687644474214261025993612378778564847382283738281138173572290983083158990782029910585236735524438739623258494212760565600386703553041548065149152664121823013932833975871079599532368723965966932795703262412235882409843182571784546333718515789155080214318603072929104571256477537011968981180852820614132232963530249074921037976841773473923239763018595022179094682253070535941752237240757847098681076372265279894837878876616697849112049434833301718651227875318704939106220115874419128084283387538635248892713079094773684431633911901315949285429314527386752518590535151457339356727513405083736503579399519130383572620177814962768681878454280206234260736970859744177016750654454264003326859555159330771281092331997953652006469768172577911011919749608261810121266024224375893401296865350261305802975306383015584058417583555966533501165559380563703889076127295544763351111694827898316230712050168399255793645897272949365102163129747419604506523399650177271654045020541806153982448949096234502115280126157685385846574660043861137408196120900608219416992008475178709009252307320173308907550776375696489057471352349745789065650812282679197155986048926777335587354135415135867035441304601800995176475065544911019697144069491533655026815182754678443344172238106992294438885053725551462125552581842364802452544503075240970438631755859563588475475329687328741366404510106163981599128743684788339614026370394570975130158626815333968370795650553694026665556955477068165037982450022268669744060199225982949072832574816716357918836801332879110990166642351370428113934041413267771929531439167636403766673450319522007454489049023745769843560421837320076178330903838081292086070041716949864897290580840608699323155311973837642522301364195752546356536012068051808810371443598523321824409673037996438493106382996786132605141684039909519789594022436859955639426316708977789338639251122946380795306826430440426171039009385455769513357898020551214211813479183944643141617549210164549457251548256259282750367991152620315904667954376070445911791202344601069077201323040752406309203658632478049124162775899574673888183487320992297543082445819701722351733183464910397045476715538701204000006497835510927101842344328288059822087766294886453863316458033562480939114907020924252496459257570769055863427044361940548114149201528254969708494929714108116952743738277922059781486712966398003982661615766061922344611610803938457513673108499178227211857577389322147029144533862051639720763414459931625599818425737604312738914503000292857225351976382602220257663072047209297127907129489387813254626259945910407041494646890849464490055973556071627173000097629489091485853988019175247194599893738861743187513705667871846082939510635153802391497051911454033284182256493664919733128491348060114818313936738487105215954877251531254905572568584331494187390823868890375331024583409542578337127239754093606125324465737798273181902245589882485553617847372022607251081754496763430017360118001653208016413620391873002758660800508123521085782616434356143526196073447398043015756692498073028013667340525248154396681524626469019533845623987662228635183556044964017606719997444516068969110211204043679850768095173935385637472292022411533002548263627342868656275806052836089908489743859804135119118832207315990491407016278574863338122685903576038061648042797279619342023007873281796996599926386549686659220177988486246673512197887945548661795042611681032866204617830655653311923522842002112033187961610207575318930963584869110459217474220634177705990156496772232436489102091054971951066272727490498656028877837004571411654131450716833944452594307102194800796988932649471623041605349405135259054085052210483950785294925652643311330675932612079090339625180980760299674930710448166546124145350405101525393993839253063354645901382936365115022075650928968761188225726656210447608959954557702858009470179158333455308574558823598712015031562035999061354006340436303705480390367850017587681326545087245651602063790104519247590527119985866010024214107729548378912570540009828965749074289355692877507388431110808814683345419743316744723191995019032458888830135670080735079616506714330919918302149046962671587136513599946198398545938358399281578367805761227012186637371658122588735616978802029793386191172815947806138532714955807393339577333198485749280617290170083303813675064285059778953628786739658913290342261385679355078106144344536551911284432891186581382409884204417232965034455242315289809686172022360688670942392071555039006203106415676787880782944657148962084882708802211930479003540374546204595474695826129806132102673165896156152630430404799325742951287886846165966324119698917050835617815590515935941922472729804109889400301907899744356343997899663709041966559626902440173182705857877613019819621566104056354778441104180720570168317608698665571809264527081586056259607202868209736542008576732890033517265731349707794090601780542027033955086476885123724112168941867929535066052741535119179869764813065246077698097873296058625319216325876741346231871016306687635045415488691683547352314630686735084874655837418971615131052768475965529343616671987724186451127910885939921210253347272320912892802242680577060076083054571856135919132998306178477757958166918977853355163556384791277847296031825505172914520602496371804023031723724872793134165725579560372241111874973472733390103799328933344112656683259370233623773946427655651998857600279292346980965321011515036683853007246833088747058956348175349592391959195128673299394877534325387514518250070666632684547025765113714531397754016172823016937953761103105890088717328727918827767026562136095235865562345370907342483199010369399714619790314878142615468832940407624409539914025620999322549381986799672224284574556694814391595148995069046216551151796379255093205783577440739797951023416336081018243914756437898824633419569245113306157904960667402125459668063009980722037090556697475013448481380205907019477418526634049906922193226150739870747020078545310743657156527074086776758939429092400015013349127603734481670126909919007650746482482567534911792302396456996282608959825539413770385862757163408964829320108668255303715945347212323034498888771188687188748114627752802757589418961584795625359305932437060847199686594784772585355894404605297222778645686634608132914714676925174368334819560822309155374846698949981649322641594184851194592023925975883138779999695690415063422297424598594155917694979550327309626757286659527162116884640803479970759631106041107622941958563638805494146556239014798268818470609092543099444236842212387306985002046203031715533686701728441776294331766509348941590509726070480719884767382330599445948322426309052962666295715860104147762586261829264694139669214144075911450861515897918924239692076745530908912421130941009475259679778627429758749935200408442691814379360182093555457968094777072258019218670174581635098148684681782070247011404024122498846523073575944934190227553576617807979219368711200752936054784598964078612844490270345276985759153737260874783736281873609680584179990119928336215536503399978734411331459114153805929904212454499462186009908409431227615830666257125804221619227277295151972742334747976876801839655889131802808591548138946842048822501415192147264043479139358497402938064938989654834491305625910400335509463256120317063054131678579038190583927562180648916405127967988380647179747857558081378308750745133269487787341514633081062108533168477646055303703140545503418802018832093480634003753040287399374552156761210878570412018955175124999622802605904810270775732798653921081722880534471815614890245763140391670090948877910519142614779980678012291123395230925359597819726187635210320455319858378723290702280737704137944269362271867351981186352545941349691513114692644005795306937935350177335709259293174026056979555832691403671135661533614767436488497913355147979580624634584794211745836131685309544518884264023702382910755773672375262203224835912786403694420731935487781367038603542549257280790488646721630158664598329903830679038894757521996901251136079035627123903779407839543047633284289354699626131547417824019551536912348559796091696606517277176331770012452744832856963700382951000900681770838539050681177575657909668535947669574970444432916423135330881563134738003115634480263120270823613172811704249450791453656862292761828532614711984653372761526560049382614618209742705801570492995042035170902332325491334768323287828262784764222887479888064381096883154226722357944670278745238208571406483428173106376370294227899948776084802756071049778405260407414707622274952521236220430104174681689951573429755825376689711589516222843953799751099710464620757959838748888697008543172922647954090728440345413866665057285949443782053099753415007063351897091499604130859528942864684913872754443029605228827869118942551334398935709703493777315048872889764174983326767746763635957848494218115508003212713641938690748400050688486563373236316778449525782255335903493803042108293048361037075670630979685123565603655499525437178956461636413948465617981722459618521683313592822757606936656140473280882825114178567178288022610339562375623025224390632906797576189665115212225900031458719740022345954350557724107519219041258603290256565466193802494981597766879514326951585873637759852328531383336139732500750878800527781955553273705302410482558616137026471588670775697129727402176139509747157322674107323473169726904657904643673212573617305981820019014036843154409420843016416950183507843841638528655621535124707596015785848520086397914609056195781044779158691997625390088054771130378859611959587961968999398490114168608487300863964522335375015721142949915077352859572674112601964881918667023285661401056462622452212170225357381225815277562909358296284223828674513170969690280434537814733863940115140318598538657743087258417464112015847778952055045349723781133407477739707423073679895763396315297220345616775972935059727621872569400157879285220567792111119926660028781242131701973029791695974720425572727999675931408897847286814256260204011531141777361470815060261562526122726191020974159365451401232875213972759041182274039019701313830789166325406628748160971655685353999291084159390527390571833739341403001060337471408567916508397838820728077066385558700401418024154145950351237693401365111590629309058921655253912858095014280974725148925371864154911017397100662497172198074967426755756841424054181404656042352014156050069811495149767352865186205308197609823328066371283267447939856098549595352569120299258370867344802072721873823775876140339034010378369596790952171903734876257700813531193235070463172920907940576668651348983878055386473030615218481858711993070667312532837838331046371873371089805775700236856412212404846828587810724453210557494996328101807568076707964816893169876181184893560085153554340859688011643737803804646675282032107587668523810239885901811013379457022083617971468509313832469342971788562683685949239531449407831442206945838967857848251059685958924502997388659030715770445140695544402947414820217717266306084729263300366549923150484310827024228197296908332865138177782376245962611676874470582431657036777004397799454902957947694342494917481512562126048240945633630988888309848028331007178313815319057837934012350912599819729150884668659782189188311523258524456437988946785895445181516195476473994740101252900247621550393241757584991366643544149563871317333582008762975967916852518300239678557321186213323828097783193129845951056232913452861224596935629707996224766295070691355369028992001812752362690053281039193842090946775323137799301988187489326259481595952420802047083382568093106215619792271606914626161576656050785583700377022260840715134185370981163131261491408305098177264585727747832189674335179515622319194063061636405136724519171020780233400166959242030207039368311132520868481004356029712619940364128281385268942338762640646010707361584057291631748782024101873262955721956922461913333149183109341663844499740398379567172761388827738740757712912252407448839050637786065961466883574823964911311102946838143957213671869220874092458558645994374601270409714300478737564905245129292997402036457666573209222445417120066876807081232092114035145541433212463830219650960159219075673336629899349481411835161055283662218056002148618024318640092954534273031136822017458907559060680746021172403511682537585903286056401862554869082777779605084883777672537178090698470300375162044705133008997167901297770025289920513423911157016843720674685235917150331531653906376991222658564225597482232273979679056102327022854975448046694262362676365830396220667085784028790379761630538430249068130381148267426157281391335562475971225641686153035729450349079940380954315236338384761684106157219481010012308625741056851283282352933509026899282249480462687568655460012189533327143648253465467663423513455260125443793034188620974071823589616106608254659962120185407118942730873653862117545411936677873836747832072047316000004446244599896155273895429502307743242527843052844755995404374242963431354409565053624756180168977964596987242328485555505438338235400040577905722280596274297005276391528520588386387561890141861713555620926444499602043506894123581317576236545067504283987793727208494383180431392243588678795841290431465652338538806093973679162504041453106886839232694309776937447808809099736447031374622811769358482589086608946706104669748517011394205596630073108790593540332084173399223421353222427504626869671971876127213659697972175399064233949502215696991354144043626660007696808609006325273036998639632984733431400746956660411255748967900293182944820328805860614639681758490580358837342322937951615445083335221687765196093479494160546314779801465800821817269264322686634992139233082351116971364587971013370482884294690038084312515393460560456841240633498335782361905541421666828903369599731809433809282574704281760361796212699468671143024083160948016182992223274502499377945080669032381235842436152755056659187353483062350506662761106547602754233265350805827382242285096297374370370882087323155327599843907615794140540982577170962571185176815985172451244617123526506455309272592058667397736335094045615662718113457807843524093388685816011868344800894039294498499916054631970511378925832358491513234465485128291247236272299199379297869146119643733794116613014542656722939615517324251284172372053941207992625426357191539886737638256370913159348150293285600608885179186330145972898158893389569189677618857890627541821577686402618321452323131647472959437850918931875531756177096523791086646322740519820280488858149016957935768489020114491499384388093284159603320733821598284153634259976559173457757284395883519717132843600784386356192909091587921884256998796061076579774900739241136844509669903499419500764254805046851414696007429048383202405335114144664447005002634738634070012770301099076933494793933247325381361240616764862470299785505449948799614839477207498129258805974764902209139850268707580325410572102028345091442910432077758814011313677248106725055938386438951927451035417858795789956737101994474157962191489754724254388517861442763051319972155168854058830576608099779934633547713591799872627722244654855884086411382533491713643731764089365959028167730784295501652944218012837550750689210284798352472145020934709073427447024042740541037154119376679000916348893716392683357845461665883388248551409413300192532110582363217556681518785836965091364608650142053458532537938041756314911529860582317239605448979172578165543384093004526075346209542875072382269668383562812745649489631941645549365728782079761783892777335579735617080236270605211138610372690650531488744905021977981347556744032869426100378754175872733604539300709867820569177157396928561851011909681324987585494707575894996035865537670235939772513969231211991497868563429977955903453781429280404202844060672258305469751686116456442079220188459667222792999191805492803573369474782757902898906690140574251540778541789895156415037120021984911750738444565688154128006328641749030213283700737895810766760368065995867789797756464766829627937841183791813244751023584297949628750825712689641496052042377294020294883697576692357842599188394084042383047304558260207972942877222003236043833422771288158081147262362099336123552761442009925513245507727291291098673834216747544746007273226552116989686421714928333432288535727301898308789265484941865503550835535322879165853543269192466306394122360044815966142940288450939095825103046538375037909679615239774736433602357132990234287127931443195629120772636736020706572224515045314729454533872681998922745677836783242731633797768586433929601232881835803410673938446029849656794960750068935953797501623389139724077714609173774139750292396871463734038766428300390313604611009044282907876073146212119526100701910865054310203157656079269480608997920066738168965555361672230121422048159531119794969885126786826928026870628260834021191381080609585948787271280717086555398767751129790601494565522666695650020493847659282381349271694425223015342753873504667000705358604985467056929824111808328865803251711378744812333940829972236352088873146068485917521252360709967805543846459897299810576863295078567820427405479958320081132569393704194447351040757326057948849164621704022587905355420151439446189882063798294041186774934531405929183461625531574169408003167528020574198124803337188798950888838133209829348333597638134154653774708554127850245211984002983156562807234823637751578282380346527064629137593365009406142403046936300488328160982567534292343965023556449067021498474599756552160700775021581253884757108575615288249390063136697406157581363360231290328941247568181457989785665904960450912706897104312731345821281628696551569549286693440112422822809079280587416095449113317699181115710929287215179646131801482240910256031678363454716643377532423883226073621141254857949447287642541854026620838134152846901611526227817687541520272551542482098521147977882235870375638849127461212037151931907043757300189300991204064195156830674492668652626876886484045375556067668739202076507542822512487522060476000502391788016330182209277649409130333284524925204582097427387903478872458882172754445597893704614844491235373462026524965352060020595883746496022405872255140976321310871856901052537213869457667631379417630674144038852391859925475893517485991695486647220326546457286977182275120896436029554638214389340986939583198989375103220471968635939357419685844081460538053291193949541632079340797482606176350926511609818242876867904948651578991355729693742423336766278742627604224143086510430660636373905333283371404353577103718470911943117076734867912913777741684550236398752448008631600587751553522870787618472114954097758025851346595512706920514863247876843561062644113128742527026294806844896006681534060143922463167634199979320658607065893267785355508658503925087599679619229083211422603752757698399612218098630912608450168136905887141956851227044107551940430467551907509466118182424786758708552440978058845814871792631921272332622326389204487887247704118851458426570356998430791783305058546550955477057040911390801565184936690075728999918422405775664232720485971360127114871852782178879902400674743982741448104496140453671416725187934875246343472162806459589950867361242614063158591352867332206408473661070707103032112318048742785259177488319205113825960022153235861647771056398914307966734746520217174685996251448514305000211869174138044331517458816149240923424919872002896504704213484447830652549577774901785877907023627835028219938064606950682308232950690776761143952560526118488318269560368379074490574594997915098458357541248386323123632447136055957666326451032306136341982761994484140979151171160376113087530674286690558912235204809672811466380778597719854568495298939833460465733397496169830246831179870092301794352467717292934007156663919551935637902640001506298623106867929434358064685429929037632961419839353774113993890838748284789564725777470438121319799487113876323134972629773848572713782178995364679003739761240296447505416220713893271547302454046153192470527883875266815636101521114022276279713280078693365663125774648399291476290374235789487777284133985181426058972139680125901322110382301936343942347379079788760094881150226903399975097181533151805017264051424539737469815042154611246810067737322288993798232365979800867535900234437275985544054309004426469031478115418090758721574213117567586719502041472887282674886686390819359916105131360593277782486066808975514501693499015083780110258478170529279997365336390693952582165148685976738628012069385713971986449152534566204370708494634474642551091242588420022168719027941539358562481774294034787344902847151356897231444492307861871711947726406033065010638645244579569959450443645977109703750172229227091213610714018835577087047383261389099129911593021080801766683739641788644966629006561178222433322743229824601436746829353408441522019869298072897098210730759114857522932738673611073753016526410042226902533496569473149514090477815462804643160759704244066959813235063303435773513053453283241554258394436594118551027710450094059393043696347874284827774119485380343965541866693356242587090117778839612524614626526154241093969404270960793365692298392942894221101920759675122154898083404382850252115975777665744868104577651490921081269277711436879087253849379641557942457371080548872177748564379884098590594261414050378890887077051876883808015526163698791288412136218567943410793585177766432073428243523364789436282411719396672784637021107439357377802179193989399476441947507732263701362430986707771943682396703239119198943440970420539749316266906213736912259263531323801560285785843836456948795741701277568867525301975816665151477409602958774247064929907838877371536966989146534621679958993125941359507207340186894502038950913853916650021191262591587959687310532114624463089704530041716292734949515111418567315464066539068570427488976478522448915921305997200278164759972567230560959886732085682852212183096281451919424282065418841379592014097374006525226423866746334736616624830136454194690801416091297881968495138918037172098147505998294248931315844541707379046547548749557553261841568408096481435016897404194051076672018685514743290163860265626255370216841953325983972497825698874112799543734701026462356192480247404168777301458561684114831152145558139753605619663927432684379196958914697573758602007894766739869347692669979407976302351448201222975111678595058160298397684975050157372610499715104910416383185907074872067055822037466965183625360054790538108260583415230203522953275753938476061945901345189374027976567575445481321790830219383126868261239737339279800128960123877595920797691310076360749480384965597321453533567025410173217945178829144050218571466843438552979322024336493617933833441336054855957652577120931398999849153026555116626141269065459555148597988191720783613472783660725290377699289819048629305861840714589792491238029775568991855100384751033148870993440425058538451189616569888163326641696318348751447098820799370831031612099166736256924921520230216786068877529369570430871861648036474946912640288376022845186684441556955535058711136631107777811239479360627589837062031024533685898749170726398501690685902161217837828327835666906386794600455641916635101481695224734697403560687883389171480982608789236844219662152713395189013416335797051524554013360030725853562564610996310175461255455469643017576566082333792789405907892085684174077910181990897418192630596186357834295226169362409577410804765579730986970341575416500443825293330360837890845494956306757080457634717062184587913925746707160436259663418452922521020577151781662208330541717143660297350904458644334203775412980912460700411875518497230561066582003506098127278809243526854382732714673063506827807780790877009467063547587057094876464950606377248229727755917558852842080864049237893105862996324396762923861999528932149194194415523210623744088027974861227492302306097479744833690847924172536560471142583100438548272062454898214207348881868586385802048320057031664961401826318856369858479357540905743435593226838865476473285848283422874633569943075698634731974217389505727114728998537343669809351804816510033152568756819018401066078744718559295929836867273149122729091883109284671418986020353341163506772693349159687212071976923447204039741389364326333560201267216471734346955620454166036222399253765550814386683724950205357782852796107590366218914133605757537479197684970549116523919621749995428237545297238881877968630118215061611113487443021794335072957141975575692614394063967861491746225359268235251630193136494019806407355131530637210539079992229081531425114515879762582302676472221960465844621741022737818972612990590711723810272932312939309011444048464554213620601822989726017152053995129411266812568670465234148885974865374855195219398526277422280442412776033680151437169001120657080249439733739977781955160377443626012150373310773005958281832387428208334176799518154633188237599746456056682450063838906139916884071078775959848650086708509307519220803754112472248743487678944239609000852735204544393058301070576354132908680682048174996391198555586084749837685985244133137744954072050304499307718819356710966762882631396517523257379031281724204229707301041469298620252338716301935735743182447210568282965511540963884296669779603367154362148282798784364929982798869789773096242816518716872046214002548825962972051426798733785800927943151985565605797333481253952396506102895883273992113892427019953128319379196095122857418031253758793796635574285483835606968144636275217994502511187351000885575946405598537052780627175144732809845566011959705059540850098720194055827843245407884281269629351897546334068313392154794418378607315190165944496676573634872661803466334546188147858779713857117976203787840098068950807615018095240711589966049289783244538427062207027682299761449386713103251255330879896131245679546786226251838946062136264063106204323297068253213111975778770777620883030487249509985437229469987704357966789614471764530883938772270227665580865875263666901454569138875418021122731614837941134057409342734947975048367848010545942181258162781595433470460905005108117518170611406099427034074926992342177232823102558844828784680715756923912213394900214575658552079081178519570375715426823261159532963611247260820783561375035509920250290278912944346690139793720014037300903427580924510631727853667713709056006810199576029569842538695477789729391080074299642960063671993155083921558443770764931047192470391352123492306233296933269550478050010784527601004052405703143541231210312267135573973370124809293097882067802671680053025980175161950468260684320416682143345124459667026620318681661367430787590531435321371747129172623015672089853640194984164539207120956979263310193508619766353355753795401650040954904345522432909669709944189627488120113453351432393646047959140400123262205046847479504027240313885665079478073175867341846838468898416021391466158967952928711087863491075457028023846405299557018719457148718281028049082548716523398039481748697384808354453736646716710272540232213663472748678900767352670942419128367649261810663647530192876681921957497997948928173880189093429975137916552546785519131678984076691451708248198008098315382666401979025720048747745058433808444054395838055548800290079177467611205033268236734176180980632982456585693419029523959276016182285369919906611689657894019254536490082763562585620373896781788227106765119828310121710717427908288622599434835108514616927324069385624338645579310923601156101789130677234673436907215310507358282921778010669114772495265767633070346587705299172754106337065113755026590124679942204232348949150441115280518130510602445921365631884060323989078260744214834326033931110272948735148845639627920550814421814350803911549622291569970485568496378269691003766629804387528329024150857632749431846249890097519457777076272507010760459136191113784517403793888163742042457056377299670974778307516563019198608721028703536546415356975064639352771208634254452456264958653180621766606465939165465243355348589976298835194841296152769930451434581162932087177575798441969739417031795209147069707175444009355326323037952101704653333052361750757568636445451512967743189964667506768045573135188176784764533058644614573295096763349229730607947071162557331976599671746465535030147739510088915341745330358184644705747601327748139192660833141048879385702878439508717500910916917770282813560557705028555230553147141430853755581908426431748887695363480139325649845134310093609407240827052005546591703486427234432568840669039123475687505319430894231450129006265429756637124605135640680478554698549050664303168744506626955639121243304191373089389727595533527369960804193541966464182305819730819963990664483658002071312675037811356812453387853122229736128416069899316330007529932442926509573471994031089343964180459384646218700903843107859333917290691666242292062618518701324012861676641067067120130176356953617712778150628192283533690943089287788319893531620600508718682540600300610063606873607441112345377086735496830877941414831534131182344859859746194167741998472573390762930644731945842644255332167970151195197671018194420672040201365156787932105824143152632225528460733716484856910308222584366416825035866348603051717562035684374102233110740067915307191429101906884214675538961913618097877518096470258905280088896164687352716818002083873211618474044496964110854260177174848075512605115721845721809570441213671726260414307968768697758731932643419454765867035964805619380105839362206117149995633980788590109088889296321150155735092958743420365084136838011733107819456872126469537535066081006893654769033212569294815030197163383337581177816267138779161275469714128525537472961938203481893822284853070551276591208814943868061365111443838191649841367085268268823294102336060031820246919676258378166485686870833494756206954452297565291153014990842198701211965975336817003431266588439861203155862080583618532904617364536175574267645421520615186673459322337674352974087392400240781465290800630790072042590364921685022425063530299808029256449277583124713685599836454873197348752245530241444730002035489492902063325772352689276634951212823576103940728674934334235801938540898762517480183805786854840903211162334761334988254286984409201770827235620299235431021070159210826975639829372405247996402475705172282465065964036663526276081281092347274182825730590091571938286276769065874467489210382621306304402197890511447630271119183589388353062885314059235532384151034465819848055990192519905605747578645388308718582122236771614781591787409434323931011001114213575021835584805848908291807876852410195634371952365690451235183788762023545319288761160981733322335720840420557334443607599628778164242428990901418384995447780118935777431063502855993189365581872855975221182905073674055205720700611631565432806896788372881157804503132356038886445490466764143080976487014850850705612760260604648794854446860297614904498961923060763914908002623100766858551307661212423047317348780312555057373736654071879285373404581876502285412437971377772403280559202886357465298387794289650115369714113983782089840750753077462832241655911230650055791501337073679898613583914828449847604887157544532121406924265137729852858264390042228657382773361986909278922294155390495438957247881289999307706054010654900046284010176657561347837372645711154288743299307626281812549090519697144344220261472748298741282229484625742912703197376374000229136900064860606979210574280751156265152225280159104957482774192202391165143713757474053824390768092924233424750939758133749752829288259574718033998730464625820514371929405945971826257507875939094740732029190219145675463740113308392283021181546133897005268384637799330939297919600781107740367168109690721816052443030320839616759744933799420076513571618152195063026984012996274252608928042668703276928034044005500394121872850924748760942731497631222114153542202853735296246689779117096054356041501252056950959398476956884949783213694245498197611444430690463223922689616731611863095089398010803363722703937686793552434908451891283859576763335323723017164956690049850722352583002014833235154678892809187678260054124921245147869803177925861628812681181261402100219226216018988858452810070230495548294281933121454416044697235026786138476092584985684061013611416864062750344345985365257845015888920405023710540524265957144856663668356191328948369500509075429203994957223836236502323555698973719478605623892692086210610896793862378071540795787032198670275025325215013455517030179694220773164415756505176639180311572878219129882872087235989542747489908077654710162095784459131006983193598878049048623060965815003404911016134774842290187726755813092728686968252241245360019015152197878717438563324388925786363748370018319800511219583939625057415255965493193007462114508293830017922484965000545831077410099686986649068352791053349456533124976314900265304054185487887927155136756670377190741830164390981965300352695930204081249035189046872507069168178969495305132084697474706635035225555882830150432926260556053779435182644820172171811880201096019834970131987177495460042720624734800224669303987067228154906307121544038992593715116515705315076572403700900750386085856509670082076396974764471929840134500153510198053457004501350750298285633187179655788499832035570761765525928181095784047113502374981993256543016284826983277455178837896773414301670324518999263139648189448633620179164857197670986591649371774085247450653400901282294168572236167735171294025637648215090710479567953473301811586243913783238474425012390407839047758320648596601855672480493462160733016121451703899792341356108462919158766706279518700005937758378710693212888896329293046313877276278496212872089453572038166969793725509486191307361723483643546238544810397488430876428922096188046179729642720179032593376088157204558524747538369414137925978392136036351024032367811942169391483825379464568682614488213126052897727405798278793338908251036804721599334375682874333341060088513136506966832614805904920456041454362244623755580592419439373771297703512870077293019662369409829941537012149393890034375877493388223661869621765611199788666729126052466740544805731795502829781031182436534779546694410281205024074926209404770914044239264518412239843417653091046980515663480036592069843168743092749019842950123614000836252189555286260691996750658574463190456692255249485360448184904183265212756388000898288344429869094920599604551802046890417666255993120914117646126064104252004237235795071154204612925003188786236092761471506413721990834509008360617657363856396883920923933347761169109857730011860098313356590948163034811029729468868697348346725662021892594024731329245475171278361137729059212411685524240880019058219087232235404524146637462416693983518708022356469289604095207819671974723312714642289243078520641465912877259199178174092616269896679893385691012647900473310281172674823620213389750309032647734844425766969271652075337923881900820170380745691343432772738529080715725092117243214985625665035378905389363194940862999398838964963988429927898352339512393546078199146644876653868818803052729746574691545842100415056287434147142306732661615423178827789686529838417864724481873110058592762465892256369663775675130176533012998498228829732073124063523853657942930121895985643976356281352046664247113614405922473726149907687238989385922215665174979959161330572168067694307583843235630666922375352141509234627939754890117787357739863186021183392222485641973214275862401161140135853925696617927096452457310985526271046893068005051798220512937679676092341727142333802600479531803234172941185453491345959857911333608452190785904372329159066118689037289982050632702889974638825678473577827938175180493215213117620873093735140828244921086779477499858210995295056423702254114197106661273206406678373714990172161313651506379908913087326328318814710160942960204909499035691330083685040163504023297619365596325257568929326550125462356854078274477186344179819166558445629064129826652174566901025109542775284675847042706141563230687730601340532345470200266666622559766994880750080746581996184842304377722567979334659202253596096885220541499908326555517798957386391845002160025577528154368584213169643351144477880960324941687560418502379084906531184184679985212575301336473851513384634631334023336280772588874453107546087053788007823068907944924255951108755747622749943664537275306458074593679308797871970018332508765359760362481174483442142922547330854577435865991916932030853659423307152200852018208023061844923538874761314826208261344565859909327515793247713544778724809215360718071374828390133676547963795944464074373785583033928761295821056768705178872154823233632186443132740778042135153514618342842213515445898226578879470876818505871563962701911273394714350146933812337745431805476410217074417260669199474218126381830628032748244876117690853206909616864052402687376712705120220025841755843788550839781186656753081450351142495729301114712261137161137725578291932174863301395882338228658821405903461770052735670729014736638039667396091427519088237587319468901212825811344271827737805201861688019325250603466372804544901938120526827281343462364835467018276989063671380720134509455581325415979734270383981500071348494897116268595416553406152388205737888797568708704706479181965701909303316164076855210661547762708037297119506099608454751314360091977496648473580225680703544366324907375704525104910110352696542992500154381870741520674393481375442260600113820924216511732467020528493347294170997721585864882026888639302042276031832435916276094403933431581102692123178025503953391836281568939496912765514756909567704387030560423405297428070969071243457752513835178413207936219837837950161619114367595460790709564889961284000827952412690526428178487152356560825206549107272024991810139519570922927561545450909026604378023957117909602341251286939932136272613148347091277861552973385171031899335564869751466291081981947262722013494911193748786963619792842043024748150261731055640822860426035624752382446058675650809367649764980585452142008286538958917420084135554438007588245068615447879010873139250674938725018463421071547871939242634418475395811949534037497772697602499364786745292826430994524352322390306861823500853099760341968106177718746818383321669875747958623297440066881518500202127568646277217666853682431126805700932738253797124860799902876018161601628467992814351559191632113877851486356141873749500509794420334617252092939186793394045042918232409165370244565849111000618843805990742711277753009961322966589614360781822083453638339048330083201014383636165658831711486474897169042720953113201842444336845605556933044343462884471733408751805310924851355832275236258992364396887882065131537164854702211193185945583377950075268231376067923888050550723372586010162902891330174739438839702118298561088357421719441995207335359343404830952810137521821270669667088650271754498003175232559509731242499903551950690394785953034015302410654040515769678834259680723024022483704985654876292157124525359254117695558163279526744533019207123010196101902128170684839967622816138133822549854280033308086222221290781771684031913752335556324415919013859402227705897030569288028618867523344081352552413839531201036805670282298586423061373036667127965283034983591848452889162978848311638886756923319256563006892705957466244189670361134229528649708305988143458673936644216790755850270584424577546361774212080348986584090226634850062332938028717675698181531497618564466658731197262115246018730985568196933790680748089839391948907078443375289950896273514706394037914764394945386515103639668690914333437341246492773605960559531959580898075050008233916301176206539766158067117530611577008401606464997004419151440135293090349181739438431955278340989649137535800843872142669096642985311835770297997047668011624942322427948698123859524013293909282716912662178429420046903510025115332345837202084399481781094137529112513963758025295952378074374737797203487795379314466286231014249421752811696638727042642418244898110680012494831274432268432574945428110021295178150067805283608323965468919750734217585975111606487400347585411394572829121618716279235305938651419230805843841349606872732680320273203632528524143315530450138757782908044466128561467546450171130738388549790096379297295508949124656536012530019741792144864893732082903877321771155093644502750539734137874752413744767522396047372383090390216469171857598565183304370412441499686633726793083043342265992836788939922467755762018664521055877887434144496670804322253937875389564870222019760694735488443660090334751794744514286144882195012046263025390985844848600659085377089238826365422412824531979753974255133742359876189334402595152539785897019299844190707487841373978194397504603143076065494337005168062421657886191687020987017135715792035209087464421310790065962695011648624875564206199826040304068309195666361316122332038604995792438135046323197970568358695746442501329539240676884512972991092111902302852236728236409815229876446354236063926657265038992775329123311757027916228291726858751149257662987121148222961298730800106880267716089118756659928590855773613445235888137922809086799242814057962259707293483805313017080237247145143350831275634673762024994966880801942123369038210940167156109800150099005537253176998167891037537417102875907107154563372199277801810846274790440622389809488444354503019106853854118356418754297733483267490070107833687345401973167636310656441265735087071718912094713032221458824173173048110738518936330200540405900139289127211077002629934906294610520457508195397557642436312174031312729375427485143278180305021022096682556654548663209832778829242769469170941026847018377614114573577879100734064395962885121010632581994571270580885981757580755704187362022819811265403149034332591447153373791679101737974315931889702198756188108688532763492486035000581901499141660338703142989169208021166558692399519756589418295452079655474684034673853746582352511246458089034748574735126806098922137374383663843363270272399938716533018050665781683695279390686882179254820450827300255791842943057377152288141017337408990087893675567271020291282811834867504078800296771060896308391431281370426058365538871061463573820422436620517767564401906317327466767382602325381262779984468963178749738670925840121455212293526073191565288570806720348753897061586527727658469988546598843107062566314988441436106609900219578553049626451547324095216168353576740559639574154505678975077607310178702169180309794113187789177903461481690130089546496713744554013530387468314977396859624410616187090118485585539264941933768890070817610717446250193019145274763770958233354029811669338725198857801775878322764999810649834851114595327582207607714692704961368032100931465855450197209900967012282700747797953967690347411620899146864433703878680003698668999100145206306696634659969085927597503824838377536105519039466484349265308265466547376573580725803864842513704561453545748162383291556192481094270707550716447114806825909263118968080622193906645731462503678776803640997094020957361768303042984055883065896840623701607040263493899538644166704650530654032331703769977099180438072394331816777957434276986210390972653481212117973403125634894962339515267000690614922943503971262523111804383104348007237971923235019990082290188583399690779697881896529271423481289673552702865941711878960058592987312295347320689702076091101053662109903818401025133774931476545218705070298732237942053355431192273574510940717563972908558914153016088520132490195805147105476911842285971680543296485322412143538984529970532456299380721117557835184121439914244957537424021228226269651578791893646752829373690267206938849808799174840350734048110016690161784449844040526270802358872629739473732766808555819126979381281558884266291020006140657888883780129468560507082867796533165602952463690857429788141171387200609056464006597743870779548855095621192732658847235916218781271590811758733643796211419463013515833443205106363573179286369943153332358597652491333240287859334623511541311902103116278378280209777501946130257823311395443224218682086441208182577357925107499476574158807337667723962419767079212227435384233909560447956333786676117365920634558145873893849181109479514132595066374100529587309709536451629843435203974355277059572530881336576590901270702812753921967107061028748438525276874664323264451667894095535670429418446911613630682707757427466321662935990211178190669920304092531801441871493234056416791410756364636531414981441417831592163822417813840919981911186710029643466476723333544763575695574913361924335622171463160756442407099526125257304172175353473721061795346614227854555668535672798725642077636405207139679851676962210138711009339220130568591591139947649463474108904303791908559253639205714639064128990553022208403937924326966394057921783853499956101944478795791371638632785726744037597256004419005514660503460719824949244496798611331023393918944943422177498440203708251630471275650776756279063536986576852606134556312727750360047857975095478027847480633127298764104460420758185136727150125379526528574516007312077263307386170963889372709183654027404948024995474358808736919652106726954359649234157047528557955076547319196381959783213334272739649170198383138450490230563286309938272673324642791704743526569958149381866551210224527265098677609416220760971858943648832407161365109423187797926682605138537556947368845246967085504054027263528175514022498879929725230338841610719667524803253731495776548755739150404558653444606276032363135066566051462893303459707790688215816123485105345517003813993239069564757651289628977876353128119422512075556013645914141144362507590348661065495576219266293673324831851257183070681279445583436613322085758937087058786367023087543859537476695395037261369351018002161465812455052497393745593079081019757548489895857698092710851631931883248571924810575414747801019349383599207960882935528569396403617763400841297583242096717548789073450008474730363058384763597075907647433737230831270969655289519158650785796336208210811836851131539508098899726896262389391385542414195617850663341686296071879098243335342454305932204445238216967343455444262934823850793115335755716450146747741074633344022291078081589892173852975052360786734242960804961400321558819064683197758580488210013193199760044852069561872159649045972295983287955705756838092983159306400911201276749372338912913058260088623300410743867400718132340768767923481206279577006005332616340637529400145951411640113838152472504674694975228858195768608922961468795360947447201986031385378140160549299238803422037053586309149653799416785100138392063233394680151280979173257898335494166958000600260749907295620933161778848558555863508125166497594585701068504213332958876431342057716504383012862116607800995106002550494117157166821358881676927279548975525826393925003589496056682453845916968566891467576862801989324865502748216384935987771731596096101046205392282679381929867960534216894930179300664374606500871090867921166614172206105305709180247768985789098459556402849156480528026379192238289242835800955278167227739325800652647736266903807940532842885862856755646168598300906222611248549456262611932860659477051808418203532128537970977956000866597898670131556208900119104479639070973959544478525526820702271418449313308061892522512593162843201493805801538162976349493387710976483071940436639505821198623692190755771561304306328674021230436064795280875839293416726694053840106452295866703731372117014756084830156581524007713541066720139397987235724101028727691200217026026003824186887538699068713721880739266040556868301626360173432006567633505129882977042434608204740055657106548259385664835400452260045870635058667698442244958935915963103675061411252586702704222629990625708983176574762233309149759162391492608506643879123122250861582057285742161575923395501664820547430240511768741095219617329294578106801888829476277214192769590596840138162880788129611322966887951372376665458098204737993707061797892873127600611284598737600204333975740137331946527095310833598149347335976436462916195481280129628957851830837526264638145075109971504109852691246329191805068424519560011559062449507351839192007376192476540961929901441082571479788736657285978078032174635741113887061448458109045751759965699265421864159846870249954763598974491734093703307537094795473674330861695596102367060364755206987735607812474123130099530431195705903871644359850511133030056665998572498075318238067736646783835928510714955052954179567084919491111653119092961286405040072485279622467187537271964987727375440369604311494085090088120564494309079145683707693934103293892539125083168440834505946089335642869263770843525297910547098890106690618614867132042941441727839516304898305160373885217411842182009611112356842413685100807805817333888287261270061648337935508285616427057352083711590682983406991980036529306880187656716924576867778446743990922333429859495495366486496954759984025160253323146874043288670616183024905339768113503540152108585786053611082518725632138034567882258027616029691404284401598258857357496666224441273749152114636751806301823848530468505010215042854558596730882518315689217947402968907526667045622078825511247077360208623077200126420627335767564187711181350451762205405586525591528586377207473425002646527484854811043962372386603307097139274173577192338619380850191368844806277656070010686916414743759300427867323507889079097495344853023770000725179331597709192625345861683475268633281135454350607658846314261233065643282599791684178255854726740721509183782281417611854567906674785018246964834561302705792032204014668133325607499798653885931849273463043524912713978096255084943188143285281233961230264509937537226228537455864988136250187828164833622325366639457395803165724094922961662596805315388007907062787956326333561789277173044698382843951207635431708293899260586128995468688592871238522813907619399268761184156437058627809771300615053399440289903517805546846816467457712868277168820609970470940911149765036425942943868155440510775387179890352736544892162593943984493346759075917922924071802562400156383227741980061409009394877370641207762862905318068075020896974452682220052779445200173124422511807998205749186861005989706434457511829310702421434185982888314002928464635654997065944587077703823947263473053173568705652848562230857563071084857927154865791551433511574755403606696117611883611245581259097035666201563235309205624720128667952138307663579286996522500701956930705229690113639199339450096860021504632509776989903162699988475891989059347107998370266988567845831495266366121321934036158393657746730588877453832333638378749944835221337504387851508028396715185977289450752521872200355368556219972831364630985242739353653020475689134827774667774670219906033848568082885880844048682605924939641374582898333723044540086838522721787036967357168731689947698607738809953039035570891024481933386926013781703427623585318142597738288597770203825658648609705601215000138223552952996409851268176947499831094094986618485103646000197727626909681058482461869398383428214395314916324707507635145613580059687812581957190509999765239605935900442989715950730859487995838447668608317647252493239608821201428637290898632392217315913875120285183422861191687404867661237095438900997084578957291383218541241602341959348414074461645732844700326462486354500754015432823096366678752968665003779348211801398853418038320266665556750510144420671402541830949392858254233537438879131580722953676352419575031623567242815885233672074371785471674997697240830336101410856881817670969846381239989721872890338412648229686817687382123968701609011919967689025741696752440218149584710426322749971340871929586809126265120603933364344430965298279149098106967599434515052860216352924899784842626557330252091095897594088705117203961873823055083731808722457497028975754926701805044439031862577997454164962092017759808518219182352155096464136189565634558535430455562690882504725948564466891362902979733704167557339682935282551496943584268415808393320294712026334622947939249383033194623568892920733014423542560080389820821588553498930498889824569219023169393285643637799574382358374787621439721679880331798964323919713302475768883580693748319162553424716972278643689206611838502140632944267641120685767406805459537231639654452838275304924486641680072230995761973101001327817803865435782843026677925449712487027117670417960002339679586058124273516520560281028682448355745650490418668179998983829958284367389290403711954777100225958837219166844417001214896924237045401395113124426961588924444513526161028341633504473846788219742034274565126896325059646593886802524594081627837739276822267651047996221807783393545346877344975034304122211955849996015541820350233201396339575792987020706539366832637970119246375326842816744514112516143435661553147328954394606944524814927895815023904025974846241825182209240198758240655350749961912024761618132235510028450209568930669510921281742088220045639532130950965703661419329628508281322754000608812182527323593785742274443210958526920047762807751345566565173889856003823713155830935459114168691467824268485926855420826546396566565536882080564680259306163310296416301076438539895136177369128901812227617754988457752583230664001705145087277484872194203792765751818351819218082402467439117730624693602247529018539727584460191852729023691095406497872650852244382654733637853706846744952170093996271186782426959175923883137920424499619951478784596928930087581889112885809139574646304041392310811701977585257576747334100933193510377740732453810546388056152781368616927534880826935181915712670908359575267179850384966455919782081414971109423132895827455902165210735779758437711866067328472756081211281818937805201716217483862446887690659441907326007859727878080545323590218774019643624209352359971052200067853148867846616076145732837129272941673548932625366904061358807930440042280788187643415668304595038746596020164385982700613537464889907203094548511225294548999308796626924012976626748842918773753769247786100216708573962196172326156663517700204256075782773088127203002069894600054959240050512426287534070262559384015976154560511624667765880106769576508672069496446647038110034402202514991834635062222255973315993426575460268938916158776828937361610060848625893048875082955233757814778605869137404982889628152585524266175313316796124634599015245887191752992036299966128757088361834400082380697666636010402034656289855826946445082163788619876018697569073552866907550113639189288274622395385582098897063979758016225728978271000718296856806392006809383995052549229945061627918364703777152440068891115497708989497256750798822368203498544975807666951537926725695726030272094171249961660702671783621264196692827676055021650750743254017943396047478182575529055182318388736849435490376947709546140278848508151858114224464238482409568619811361121875356662541668379381837394170657806591569131044049683973353028891388855616656737259518092060858381341365163432723153713895217044421024266193825458395916434511116897727431868361474049924702216948325971445903926354530201803090766393908907703115809478502021252722472204850877370148667383944072574086660524127215362423432905146088938175165649666250255673239489075733430359502186983233856765418080451559281398448846889973834870942269741077661296662861856659254652277327747352377398197210818390024270063833026484442361072099907642340211626517160045633348247800662788613804150891984746650240699244434156931949287730690395280783783335592093288286983180486780327656724974181974470402000302694933839931947612174863901469311576823898244631216501535356163080936477517389154624344614692455942028545430928830384750229920474433925740439578460966095239078025028847262675653389746697388524403558783912084852153064388718741175916405460219678276372998074332906246490871446721663597475184419333901401231206271077009506136920279995890303888619482998771871467163448528085825289660470587866653921837602801041350184920621351495438702874827251254898166030784133874766227953203713653006333880474170442268462280329828520866140426653918565501304953415912104092408654693094204027276669159928798074010255015084782040888317840450681835381735625846956458296464787642378265490155297371858609140810915623430106351913115758551224237665253450667550487773263505289904974804221700468174621383791945739098834747018164754052786318231689791559178692441185797164223469259195491533773307453316778672952894632502966993543281437853132352636967354183123877205754610349054251419624787087921615935244584756142869719322775906409573498185164650649920062304559420308716183193448975033307317437612661679071060377376351358149315485006066099265430053692356341309482914854685596556466528538573890912703357223015710712015038938996354149413955256624020708826796019730029430098642141431579111903720464115882775189883572513441128035800917653816618853665165115937476462463704440030779295497408809877285859159946888147022563413845267866895378920435920112659227937745170746184588032188473986861965832334591621627476444754672352841488817487527747377312314123760184581490964963470987155294996046046506680984216513324430429515048725875715787178515585039643328050061039237589745177491116320792437000351499751879077731963956694363469660416641836169483221427625309708558941784882904700137943376603841058510429718832758785799740637766859422353145928600151292094948104481795585184527975285322842303056040625597528829297993381170831577198557881921529711076026275013755055608813822635675759993557266437865697564209532571668984666878924059507501352264851118753111968807086600168837400831460579024496713376634058125638230948933940399681253048383667077844331548995521258628999611648289166007425435420361163623898142076068616102255102030335676325348196087541732308685505842346205068544502507851732920799647070066562050186448428289823547845660027305848072177337332631858677685191472099475945403180392259142162054208442696298417793975295413212567534361047006582483006690535737019269109184726560545052329214578404092708388098322228078199826886766398225682171309095414744031991013820845748290043262511747249458905567258459230153281106331452408822334142780672942125211760341356024419935215415350670626183149785668266898032111506018512973577852559611185542885448054446220474860184508319907875431311550297303619463696647014101739979233461081459411788480841756985352955304984990772059391119899642228731105767308811384122591967675881388797232441682773757521692956201713933014983825391589232138612868872641834188398861379349408157875578759242941889421737820575120074286299727084978762568259403607295644310747658201363056816565978183890348881780657088514827419566235965692227082746488822751816914170156960656677554778703732943649815316730263717377922456780864815486059109845831418317069296883114992013850366798713821749328462598242751104558274127846492360378339318560748736555044338398632939462789952968473495922421698362258569072598595778969221533632399841523852559248278801886604627267998705135765908523982140564355540341111311379919290272507495908445774058609440063902467596860447102297410101923725046709373225849988105576241149444455472925636123308278532880407390096949144634682288495404005453122839440644104988100710173475983420029324131648369517581875848698072549690816666064634188177429156061903790501221626631824070346215316241923398707348883924455898823518670985821929459000918384367135426984614035922128063196107099701623337047524225199505215003729781096484572965631984288488238296329933651745050391832243331068175304303206938912986538393762228867900945927934868261746803915055753183907010452122209664333945424887757814720184731139007868563574374864119622402146411119117783502805563350373957111332338490340993562069074132688317237437682986301944563535423290193532922429960409822224245680049963246409961638619084716107850510939074365748333109461543142920124380959632627149521827253246011237838526603962512843004869431092303907055385819225968898818414656858169358302496301131288466733646038514165621385882488462879245195500282270883234017457359471297935020441826690929698338419472012783938571613386979194553615059052421595258158716232712604309954554901200638990023725506390754442371873413975610697515280914891728945458546389928581604353002213218218781760405147459175545394605866488647578638212041298687596954104638399261663740162446919061759481287677370681761857293960861420022956606032711230840454940932799242308783251020013879686501645824633100798593652401706063146071045022856109628288965930205758782985570965962495332209430026796065647961232575699114189822660350714973710160713617586767137887491541412461381921624895656521713474413029613805699977988976990658740155920841438670329007831182046756625374292384535893936682240558590085863491591135483637495240591025012690132771661010661505120250934514749222705920928033084074240748917083333614632846166344200109504539847683717574335430486632308204562239570251234051935154400578544520855664068436128781340101590522939429712753880641956720930186695931299606822865427100836625459230025612154442523262705409515263969431371605356089980394081549257592844035606750417514963222225862885032012144990260878423937921568950707035020118962901966884666131572059051756101005434965339522644071221863233818601241544213984302014434755345861960183393553287281882930032376400990859702412607037461381036641480792704468863369968074518839892070141353039654599369253425783794072233089803992572327936822291686226131394102891610749924811093086384563169471774187810944089512751413698666534667715911023407884747435657512091574696451991489416723681503524754190833686759693996707373340318770721060009006259354702178778465097201806716718112127170288331592757431004420744565817392444168636393785989421429585418884837953198844568499268197539952491019938655766807832369448849259413173182896461536653564727684474032570003209999648545741646431163469352769733631166739276163488915814049101322584191096086479978932579807627030712121415665316975683079424706982786891650459357518957602743654104706163446926137394158447239801172455963739592831640403521578842073889705420421567275988832996955722306979804615075522910160810492358303229894967962005374491062962992387208614798512490302926203062583558684544501170355734128146153750555805139209925261781962396338884144356663023483068547352050806159559799479027205023305465253843901735936670181640308703773770421471441749686689664114465808501717665023702104165919107235258909778222278766755076818754319973103851575192489658019863682047302054038146594555098611236005336952218362068701893917162326331837610045591878340442020148943610662538458501498604637481891781624706676934581368171893548962194593218476988470157474393533247642781861921220007749196497206578532513369660664710123149507890609979576276078204287913611063183409650295286789225255148691267330976941131655990495215075813354093084567327693976435351608316816610412331549098171129580937227376612074371313595903486878861725545016931997700504555109039508845651461968291958893153722622904187202710872840033350783364223382004038828125333250575964391038580962842687774758972627808185716953375646864207722216675258072420716206928769828441339608881063776217784680093262856002525648845219752973365410700889987775657181596451598893278167287082636371198929002307425292660160912077058500331737286449913221551290892378748043462259753732745648792982514097257361327691186015403974195477468020971225532502860744301383808267737716358813651295710743596968213706912646242653109617234316399572335836250205315811525680204346022107703722438522558771804900381633570946634224332090181533244399473202418683305873525793044711131486966641563041573708641053304196499440286710548213784464318559602256807415368431562486061480964453326310227875178247677387082505343620716997379889545635784453054853052211645121408421859244953108880529660589640796131207035376864827607042564130310381152729898159157347299809237429394805550184606182779972714000227467463130794713775377387667555352126398196347597792562319822794832157441514983663377795108668427039772358090698923664355535825685637538089123709214563745198225947962921115900537520992913396009428181189066413764458942190730846623354878681837593263455579977324580689271166120635154782071585487652967541605999551525410657797277386409936071323699214743927209291020285118605393562815966199147219026777920872726747928091710749744269610843719711385225353422586049064154247093517514087403400173355889212805195026119779018249210870533345138349521050880339456209076857540081256764809060264250538671861415628844333215131256867205424171853838143619464484264157964897785681271519890513719495518908139394701950425464010286835245205137970696476651204295438205518069708415109290164485829979218515996013562300574192868641213915215160744601297673377573321155265950197476104800220805865983469241006271384169503859619189282973433297300808875498254612143163760765658799590303494560174026741605514734079200743330626818836582962040495695489501244719711262876980473820806900465432627449695208863516197953358419249603384605201172683600540552627564626882668394288700346400541019840406557584539667474107362793461497543277506604488819095089615059690823047817398869642543483111257519109730131957862080661527815632685370412303686231317283590739618855098099826638065760563458664043115544409865278130379425248730685793124092728059462430226788528898884765538744678598119120658137632697062864718663101410220521560765735401439223973934894959354693147217559955472396418956174690118453954614075783568795896167288866246006568624414970570074346461036253830370360169354800274792257934508891399466782426073466041697010400482071724232340743586763590883050931290334728456794868051035406660614462815589994171682828250650291852896223130137687996274223964103564459356209973349334647218076853261951461640507627816262365661523667543310860820750406012831913858129895589376340047926839263240683381581775751778135163392097576835342448243091341968780101141108064199573109026229757692498391953056668056254411696914271954953431345435972650038407620994655947430306131861257366305354038534188451049177022568256552849638785349750948529536990051745320018441838098864542058508349104756142872304497013210202218649786272630772540550948837785622379511799454491893066366761507407818132723800170043130089297717535148951188173443812405405778353249925681985412259586106888580010198420583321520516631507319729746116703709471285098297875493266622778517136554056570586857549622887765954882871862332944045733916649937517058807610771114870097221445900317115929344563681299707099143230498854562776423712166988772828454467959066345129998749527520586203019499987537604688881814834657232166450066982465811930686463300111216903821468262551366848262082662894072653151022902587806652090096872859314261760193040672312856645768908607548156249228122010999676869505808391260936786872707254714404875155095438541326993527947191268765762667174496522056725913093704402094274071359427896486519340535633613551685401246287994326025437165563988062321558943179979847758989778047821956447657929354545216009285597153119834956959306337068914761637140020123024848121681027278394056843899973755862401075837234836815655386496778452197805596157560397640314297157187693609094697145564991751764916217985175948731817806335131738822424441469258450355348662375275022531858791900079083587794352923537387391004658533441227639678437175631521308482668840690686753709350462318119717519168992876201196614009389228352671470250214874392320876995818276400102969412973797938058937885853029798269289271191611400678651630700445914380068760785848907217041041487409919179565155956677253425885393842831827054927641676709116391444539757734440680609250057587057871253842823035270609228473924210422814577275642081383718093568928905403182680136928023648726430829140089088085329184069534050251866481427219553663480507022197929582226450210436348271259806731209372549608128640855456278614315177027726627191676207643049792189359688481860787519024799092644930007240158787168545262701443841515062457074650997255671830681758374478126877332180614175519871773333822752911075971545484198378870337654660960382564591277544255209049942039456367323976743268123170700880175578477892851197382629855236381529323317866193203054168679053949755721085248333969363256795187330223115459663772784589020255162880047225158786689046780205511392241477426989688246815446321207124354342298697692053368929914159509736768277720732781258073185515034988085469161687627785859746407329505389225855398406473940799956428808362312235157216010589462773873238811534501959865893289259347245959361279045128364474511358833439223113643791254979410593413598742667872017054738147478745388279093496984809096261144428187381159294946869203231233097343814468689004892866016890930929114546630514262366594246229769493220471831163191117038201800168828037840805963524363459112944622400198030793140290269918337040822020359129121562946378979301541185385326262131698870673161935635330327795390225988033943335379637155593547380731670857466010242670433886168890875458258776046022796484277149980948464471678311460877154153775829535057810459409572456285280997133745929929645742110797125672951098313934415717015822336398564849952475726122340246634157774338980401786561100048965543290197393167960091528853877224490717484184177777672076036022141260142951661991333984778038049136376749918471635233859772675976901475512634830194090242468737441539740669626169914893701409295736839292824262755819418907819899824739478520629734267773726351223041082522541130781631572369406886067344221499395709316811572835550176553311407828442252368751820864262706326061115707502231474196198584472828274237708810752005700024484415560479001303529210761098585780740709966371616350139823748483101278892506665120553772997665298520098627310972575558694929855612867933134666742318767234323661862581475048822998996236560403224160839283122438887929764526497368385184672026878849138750746465829174891614054811470080025577747245617384075042226592876871043794775257029420243524022454861056837018041275717236041793539989534118536496392338493153108978449163755501881500674914807386793271252907717609085493098058163305654058435736050268610354760894442716868986773937003385735937655407805542139272224855952015286322502520672248659549293266684232817195595606376692588077303172373521383160656240386726966060069884447310352167487686144119343668309948045112434629326174816120903580066985199680930071108645127026495942153162145801941190202915671259341981739922780157514056446990885749710712189760530563055847893804386445264329099816547745287104484392001525652460712781209600395599185060117744296880653609726173973589265019475189699746987574000872101347540043120324635836908003369177924391013566901727387428022395507227052658720509231365269479446308083203344720828434877400501617198331504032217256920421281756472562292426234550899705742425560132756482929388199934231610545416755930413760100896832071082560752884595119246129029473401680575070835148733827309381981686857739365599656951468557840844515538655041605264845499672255685713011310966340966555692296878995522646535859547668613723715829373836724567229595663513670775017479197883892454134657214881786409906412209164545549200175067404937924543021327724020828963040175453885086295479786134200611628551051893063573956790094682047897594162929554586943867136088758292775150932465669726808087261260167640960505264492199213837471778385293232993386583911730335383913632347159795576953529430196882589114818541845315270941780674929913250486557081194127014803426655453042026065565701919806696173945523598108219143929159539357522944386986243590495257096490769567497074480724012114685866702569175034304793147315465374692402027270047033981073001415638854896284272808023268596375627198878255243084141595324976999796738976652275489400611138567214574044152452590779815102597472766433512082084043729063152949923092628941120499575878642458767291547986212600198231215443495587278813901031949999310705367854681436662990649147361104663256532299239740856969104249164777004781750140347268672241750255110456376941812906473398680997736051989672422805506263986557487534628039778234929381788403593328019053171200735642593884057446417327321329462976484406172060592316701473885783929136630341275074070166231929430604012343911521336413280671951785860583801081952922371097309873637338069675277070902568242648413016242841369754647670674253581457123541126153731870043784665174542464326291598246412271896964560181270479457200379585968982657988891240194930923716673950281347589168103568821036663649023412186869047220634221327396396523606818775468363568368222756202850689666322589411767333908687717280568594739977869735731234657378604904106945551302021447021585667255649921850325322496247045779044261444198742301354940653360059255777049234816564716931519464418949781633037038308443680282651050775902325783091720838150110249111774955525310927754493294494328374867656144320109604467815465137064556293886557515827066887059430604362680800500748490408470844038081444179120282250388617527162531952687303059804854657412129061821520339822149671876930692290716017767784267342789890762040974404548811385911815451619866329085924458753558141577694761593133922089974349674063133223059654567504857639308705049608942723767288962536902999370868853710999659061155705404527903955509443870295567372516745806514326386959308910176829158858969447285128518475878043586066708337081603366665262565935626560062858100774351036738468142083785625364920214350810742646939532062648406686243906066098210373703664054333666621464853619689543576649364105355007432959720132714295418421314627977422410724972763357298570928158144917213973131281231510599833701811783408382937560852241584082449865196838290235220165089567845391376736799396204074000583058736724633139042583495903277527446357392606293343532448216399640971287063097319437222937531527319159446521713638613089558284619055167167431813310985009894731715262195460352162368579433444993806995496085746967654618264134922543622054550687992386583945065840447564014532030634257075615569918478664002687755261401673806891757869324521056610656120291279770011332193613435762710744232603223185633244202826602585933192361002706080528078292682228482076927584158748499321476948636703953505998130027730740043276060600210976645967540933728236142824649808730133101270619538290588320024355403270555874959888453641916557459558527488624314684871955373728916775050245485323542443787366397238119211811379790780206371728902229797452461281367041519632334443984999551739484861119476443993171668201765585311176132025384212290857273453641741386639533288019583689712036643815138541809618224442807007437758014377552725321610200572666051220478378131692853172684296715782705517125247143140727895301361036314069338765972059594691738225459321042477803379137733401367462185317638268618796998039162925919132102217848215537076937316304569146185352401011136107412381607620551551632759426771397711851169346449428320184958640571168954252223690802412557179060732394994575183370180675453138076777742184503780387770858496162826168835430707615597202320983422051639792107279105125924934165598290107914751013581266513344608580968771480317802355236655817608885656853143337168862514200562838421942555143163657748400482297677760808169357803602520445275025513337001094179577418043542604721823287063785308521917560672991015519112842817346773460057115829948043902073733518077753773846230722276728546515084611635720988772867436720265067411261616588275232853188696166532430920422040640196752169261688603246089105138158067201226079319151927102543792221559427145147064826152103519980812127374874410631468726816432694636206687382379587785676546046529895779389337442409046390392700189935944170302130313308463473755017078675829465464337841335744289015019457045977190567818670860586385473696216260316756209459982513524520641479954926990700234404688626769656228364837065503314703643363630451296472124519822583913266983842419073644766999957539480173355188004525982197984700695505255070130638211042899915207032133195692229354150913208620400678160758635567691333459035137944250524090455286823094174901097011234418737816408829813304243110631237865238756106818145804299673844631688185793215577714021617465211625054273707552064572913326619972536036759334611871080273669801948372742060927274424705803733717808316531187082753671787178767244496713069368724833386962667476315557815929775643126024596672207554841070310047671262048184895884576591065831213872084078744445478519884469116034736550552202221045858584946274322504663095221271145606060494815223486138998609508242708445037376831812607555773388599992273768063435627570793984359147786800550996375232912690739369056278211000132945231003421191735147184018297837325969592685519331108126652262909638625902816975170416546812889131058935684905840815102897037847417159530962753805746571764694647561704588829885936199286351282958301942394580361744414563641413279283820559811287613670177067947494510137558499906401790233672949278339541696248713341490401906989063426243414134845265529725207950755660238361029519881588025848058758039055265494799699568095698661672978256861127854033373868990494417522381173976963304438043458096659354440740749608762602189936500107659015425140145962013968505790978991233409128875729952914776709712227432425716988172002286175451438920098594623202055149652590962341818405727259277074188266739049206021986824819779523555928504868768420024062166639790286663337134530511049434050265690306239687967776950053438595534097548547673796713720942976399145149925622707363931616847475725474187877375406693992228122068204334543345021318790952838395453872968624151068075756094145228356820274310083042674571463835166040284094060621903422007785041561319630128544252235910098192418184930510688568632850565020864178178978614584722925761699415304169653459498252806388247917237378916123653576638493646282482561610728605445466386539043693687321273779685621763882870988368841177293840513903468544152346984992571803038377282760890456098116357145596736333623918646580619602323349776474029676977457114500513216092165748764128940236153655104520691751584959633541590498414532770250018325706922290453910700509741926051353250752649132131030401758607914306951007944831977077794628547526649184109801566852206607756247695888930907705532025520879015159135481591129767564813400584805265111871335637147878078858958244926907230684166392807489116711200130023040799001765381504983320136752186640291598589983386573212084411921011728411876417807482401225119128579704153459563531310476738642459502675902620993270290833865264662131450574120737789131262239721323613369651117934482774755399143033540947647987220660031409684459812477868869367488448873688658283509613604673778731306164639944387762860012165770380085678933362016570897165961825471936414283721655562551258822896556346470979951763664797793355594600160659395915122670048527981635677104535345213535208222642222955067729506708253671465640018256886308406248779273415304485335575806726630812514113686508588712485369202785975762866171500838246696492392090400615272137633640686545311922146424311617493998980620555498649068646272846880902053454811958346046661897880679955589610292583358499856366025802165751190696687556137894236737300871180565382296157108895519960747007536035605506541912064756052360874175549851358902550959214099400250608492476376020288968353857443811054487524141775334367775952269826683612254599988127589035635500351050431068259536479958142179329422325552897782535740525904550272231491610368461681881769971116137279284607344854454055462484659162331378519626937653614022288690469228745547874631986697563697009923059515037360172173226727612755023285372044610969024084215429636420038188982730765812891184917062311384815706594839632768220786153977114861406190015627661401953771824548063769767443100115972988352243728489414840175392138267158330797895444637594414905489535548428096963803114448068924658300012293314774393477752570787785076836965964371468762971600235848285868753591799288939376127531116911692005834850938867294621051058739176811550097789174077357852753874643585936546000423764202967834949244588149735886450081176558628786046815604544621104217393936269835152213705495567001300245623401612014865373620701538884349872788718580115874515625957999661919574653129908940887029489175216303328137887169235422277943660815125226826071388996600085588510668506000186549230184978287641362018659980428555299428451957543884148633600734333981643854212832792537445496007175145458633652490124074894063601586004803110297059081240281428901038012592669625486931430651215627848598211010478143275114586388101725112385089143137695675179700197961536979147185581554556788901559782976377931492711445004043117969715696469314774918104713175405387421088471512278429014824931063875473006980058242540148845569997940967260620593484627591748214758458082817138474261983344596377428003351452776516614437979723586534908370982233799443158039337733087432388305896294940221325639133568628282393066654844435782288166066048259148907562227009985890519503976788721394218653498991454711700565631138488096942619119436996804720077071432218377119253984810557937691530340931794517747371864597359534846263122386863136753410549776378917183787595208772228434959926597500884584250768307395346412496958383738688742493445816625856098263289211085357389425107115926277891573066659384417718437758177034791228291926167626542999813137594274305214326016928789771387373119832709244448326429807936956024668739996031537913281611022119369623460933149394009458563553565263892814967508732286935558940904201894706996441593917731931778156219741571701978522501084919780765751578216265394481311431955678212827992965473582623314677398478839898431589131589113547322228930834481588092777873536029041427183667212681823989816972128986503781416826134258601813547542189052741695323379460183091662802592363577517710466076594275856397901685453043158834362084359589619123341012614261601840765399896827670631534863996936116498109419433071540722673618269835534478028087447963153109792768747526375586032141240200260541175077220949343404852809656105527474969170237948008322796356614346264996775386842943902569440358649036923880111528796237204819582092453136455178786413715700269149026182557139770857642396150659793701855585493974992317291644044631580586193345361855768572869214310728136377219938178269653560835377041591924028197031662369818392933343018343584607995100933214769417441428970398789204886513468449783674789713390412936640136551370014856833823206023612902734891280190323246727764380394773967333509115704224291350619090538968974174646875269248329606058259247161909875427383245179938392692123580089275882794385184857290228347789067165327256923936379304917213867006589393338325859947004654410814479803317039619498611800987103219464923492513688520024498345602974140908991145802583951891581659207064485459846787459635462609099913406671010119397055088504932264238982087805822208666406657685570164799152392130428834607477075137936469271043045355938198587282412336472164774110224283027632963448134240637317252524260450285868093582319736697328079684615510328639759609834722014030839562454575285384784413664828593861278495996874479754884624838416384796876201692647756849871398633012885291254891729021870781442293117748081066786603612031247521286616496705535693810070324062827600759417560939911907750775162393464756421979010691021247749462552015706674959821814032073331758012314236277015980583244353526026096293753184927044152394340502078814651301846535119091551332427073203703697895681227597275868335709169262568656429350488841403809898482647893591417847989081247829157713480525065537641972713361715069279154600388022141015716243598054240966160563442371740387718990001728807172690065007258968023035516691801974888277888902809427250355298245744822100275515408564904497930541874777796962693358100440083791226240926722586381393363797277394355237097164594487762371193802659378894705770727790774595176780161105399744473055451536830267821870487709574520701915680266405398098481359296653363757563251667822116193251879912034024635430270731733429277947700867633113126406870667787000863477197448199531629119497858440194409274568495347630964522318993035592096461701753230088231308799682039630768846177287262490952609435812390254375491916979918966784679520783566567690010154582816102214398294194112007033024575352811144689403850305732669375029882290207783487322068581960830546969500282281867018345487172650106226239670962771381314251643802250093918809043156189721245793072471059544508392384392484320580752195928973170282360711804043415931552058712930244880842797503434786721544539036353455422343271113036476041479757249492393527015085650574078035104541381133821249663710393195358760088801140785617159007414869848605705171730235470179441885172542525392116601836152417258998404096746607026778351807874062888226178799838755445152958576174482044972435670847655114568116190582822885186477946780229696323767539962698903559689143668863091866982608820229060609405991879957858518856050051238729099016480553942485117102871088746034801555854078746866700824888241964721267159390943375927948934349324535028850768224763402690444573942407005714431931579246960440158834322360994094350869905230769120739512739049147036318642776082975769987433278040603312557897026131027401669470222830299031414958738364597085854016523848892827079093104166905382738224899871324658749561647413735246928727160235982225842273001354572801930323681972836300500848126454318962729235961965871157794645675366807776972362571247552291332763736233291691865614739030646350068421974567959377464850689646299738124180151623348186817956533206504471338003495139365790815989789433372581121069344647735534828752402636945515391964611158411368547107822484625536840068070966899427107238520943796797907482507698425064342009523853258327244127454799367276319138995381379037751250960429186361817787918507882801158257072790320307891122597618521609858568010543043340096311914289728696259040331958215899332809418219159594303514293937192494837771924659373872876649265688944023845494356378777481338968750011302801404118692821578810959061252959272033827405261221699739559170200253396676448702309217108770985737416511902983289153709164395516093117549764755124218207664705318116071591112488602482227218811158229079914341674633651417698338906262034323505007427324511235684868290784442078202568151793840479890542830109045596961632514749430878287931864916960231917327913091818838217980484790218822660067165614490004222043011852100853409171629486834019792200912053999857031194510422688474016356478282122758455166330407436581912265021309230881494417408750349142020708922739764193421620306496623215330447846156681261678536773450732074327214091700813806149322660792186107623935740466365702775235807245587915541156622913351751954347134102085001148284805261818371306812884174080811162506352477795949491674898012355307256586006217502537839240839363551801619410110250395671361470723373739803015474643686799022527071984605640822444917043144114400612796129959433056015409785940402644212057871928280611933727536763719318716989154584450849944859961460312790611899212825464410481424406326244083075049163930376289563953176300434679607209449993783730412745413572261383883726688931091423643448897372630325374346838771554870756070203718876669909999361359386891208428647122110160366116461543932914798526503493878514602262673343287020484961126985072067977395481796989183696139787741732861007344381041338177035824796646876427003110288434756046962940176841440318378142234367883982161372020681339373059856045104193235395173763758186211605935205601327712052248550572127843300230754292686335335477316171299663098144000926009042808155571362893881846199441740557295318293935589983606263597237906564061881164573484344694608569986441518223413235180274008005315872495738869303703309732951954059755586032485876086864833068882729339292854354111784725609220176959942135566710625281738421449507703808302267069879996784018632604413859579895262053338483982417315183259374465485265307702641565424529677253461291898119445113904104880891593929879422313709578731206453184642272117338645541371993841758439347384876804793980798125457661625246279948055990682874721652829252915983091363634400241805667947095328008732821753536630806452270554726771620438308584939291214505900183721394388441963530282562278412990435820424196085378209245012794398570383312070278997332179475871978298631811198544708481499749784610697214986270415215697593848262023002965930048934559828011328579635941175064295002644101235908773884891086024557789555988619764264226996463532235152120925273275761550520686694201816599696623073435952853260887661677307235884248073962102091152123488796252262364891489793156412899469599735737846436339958914980435031606243379191229677438554981566326889975163288594639271887172534005265235345124739845606748433267105200253641021992173406432744658804011882219709416742889419780124399571649286888983294791032959159462196730817830960015372587081504628656807091065381034254856815460131573557167810920261927616613519168297228647585165727206595680071307306221691592281915160359195623729283363973033099055852723875862857795383893100109584282771203269765287383693414213888758635597497774966778720685107346240178902192264354522937697451981437633887408238510198586417577520394817880319915577061437153375462090477780779637501163151816246355877752447484140733346948244844238070598916077915403204970297176142634598033215798494810954192728636044983988495050031730273712996665349813997002178147778121313563964574542317183117958366297711078618707527287706584491134965929100278818418190728939963251050905121029037481725760643378997962974938651630960089910649378390319695919039168195312334139225376351230129326706186367520650664230960127558303376851396930621061506314480449571718252591501258253667704790314797244545472588046214563515331770003118686482926425604256033152128232754979830779655476936802657820669287269185037984148154764735882317828607829577588704657929914910293475039231223710086663964706265489401676478685537101736399231071797730909673011348198054531904421251825934791991352005685327008468156894714481087496869175695778345679471515274327711061426939620375128091272986148268217996841480037965551809180423397928137409055180679149230258483172497379741827847606167754028788235207766126220244990005965430921684728918756527744953295497045810271029206284409830413385252884530312496628188519885685245698545004073144104861121703400246394196464582703339586863768628635261742705048159465156853157093602820471126065477695060914813769672950478305928375134102905652666058987057401578822597016132030328187628990048140063409616986957871756142535741163030030431231898454621932360649411673442906191687530518217184089476613474120525655948380884161312887355286452629294175060683097260201883603143827870610970149574003814301302383310824729250722435971116735943846957006478039693165097505781661799530038677063683761570993974396065120024574909368050769109791267892995357122726191415061888312535680333454980414547482129515702883743477544515905474925210788970986846652048703785428287718251012471006556320595621747239200342059847357863959507794593623509693206001109309747538767317450610078647015705359072608940228718518435801657699618504797512393120156418537803219636113381698640238205869334106729259612650302466374016207419293156646754886098877740443292646980369941467201370661444316801530063961266626529844862305971046568111104375306559200774498765194351245117186676763619279823020402219795840438228076963111555738680612027489748302464323201797474313138954103260327242605185387469725004800699680021524954219020115914482180589038007139314803221731117599078697592531788393667626525582711489712129691865813877432192732832337255108376026025593999733688736050540209303731563616161406280105091735168770254980245588621682538388591274053100522814697831793918235266401023745320717941551940275550450714499286646602791014546835260507415401702412957990051794648137563498699796226709794710578746854736841951134119502254275440938582665760105381034042900489454643937266303226000246957485391291616140126958945956306860576781305203158138346437062508560774217237408142004368428883246080330956099861126539472870225274462721103194843540882692044365510358286826832196389798559743695780142027306261816347750730528444052270259570977120593962702339811330979648134387855020941699851340689923756139311425770410727744128497091020303405183585079135247476129434649952817777124254349568587315714362852337785765062410673727619066996400744250818130271590578325429571155474278154004495439362572810135548482410849184954087915027384959807312377868502386703980616307700866101417424669634157012310996676739490561538047980784542637436326106657746072732834999478446959385373076582351859254584231870842440835753367802572627319715772595549667745028242975934037135845967687652628169313814165882242154197909217156621293005271975218357422295436375364393569685775749332985675267505542922600548186729297340029961755649384733975180402455010850869668571744578198273298894608924498947669764677402110006139429477005039784140881705082608509675965105446752442922277992945090355213782252410837315651319906257814705524491715402079481044668581732647810603494930672989181078389843132528828745521835629671951807495931630057637181756365457999588832586780673476361414539323288451829486675167463659176464584303334692638418912693841156380576382240407423294681345884898851658372860447131945086364638599318495581981750802304221842889938303340623529222530059945429784597223571118684614316209965625641045523445608821238605530655769708183582574779626517129876798318260786571244161755421349625268088707530357574569753363399812126487218512041313943806045507654039632124770407048777991775958947231586161456507180343309216050984716989317968699773433594795424662111267176539136965949512800638394774998664344619401134487309613183427648633546141031248503046880767426228775447283191925003515108279917904690707885898983922213831943503046607408636029343612388084196791798323461571561422727409590995172359556128906901348784585495534032833239221636130981475006306024044663609788036217717304210225792203407013434071994140412242765906913573685959069139013944280246723789473982991736394022887860417363859096656637131010106387114227389471804222554783890545778672401886120277055071452336067930663053397962042815499211343746344581512406411468815623005488298048581990572197816785929191569047568061266939290002303171362140782708108545383415838892175614574789395171748511884680144141373948409461231253856412647325762598117384648428628695554762442773174472600690364173405990097648979770707912430474687204173779861488542177449363638174177625761379544785993993125149799180619570182448813757829917745471165510106185826945239214964583479004467592628373995563242615241007590228400785350322426601144017546638394500223934387003499109991828794773134001074577592266105546896805943108705160234428919460118093530226656665223870812113999137665305024386745106858323430692563867245687853862404336366586766981008162000143659854207877452603734051426743327454964177950240822956813329731981613972008513185473008830200779210678727064710184783329573472017826060458703250272886758523192009699888568485720204338767420594453167373673058216287779092200586548172611211038274026726494229988456735230926729959802012801284790017630243254713908043279907090337288085973161471110116893166235367680708332046958143800984399966054867242034819234512598860954028749116228173943061498966612536467420792428103497767803183335047692041471085782342883255827831465352656892670801477483749712650458839053224915644856378034279992520373748408025321249307292274514939655183844469125351413734794532226888078306569293242987876073343565977502297985799728092351331339757016106822047786362586408102583524282002799629371285444050595864872989779638343436123994779148298287033791870200178649084106337682085017873997528189802465804720819883447311382931311873528416651895767929000185261685855942354438083338616127858899122155674603458199029967403645669799396206933237463588497048856883053290902196566584127759919459992310259724203800348366375972445154626523535101793949544917860882232948941007048226440038609658351597527730849718214310522326492967995142258938600761776033779501695986887606997938902966386021703215563258885219602293828018707209476849586255608751683572486283325028177904550828026423733673578817283146463300268656292966404034918983910103900281915426382862805590204361612828777844465187982074559399816441600224541756511857701901920481627414228571400641485880415406893923052831257258001356367131097826041639832837233076122827083863813995888126057286530242147294678102062479820384023667873054460161757924770306964361915086522435033283950805352199295216334725496269888698880639300733193055377988236577021846074535018697848711903229192627253620667446451247731146459269101242352627830219387721494878028946436926947834796139216854389468873043619316079133925823969455795829942101125842384410489905057005997748560031306700481171284636148375569246725303876407579956426132255663942161930144536966359765008751140468134889084775420576092516882431893963090966310700267911535395423369695287956838911003416785792547380950326361265452525599309913562944116019811012211159445527899658557858709274208320962525494411687823768693120875042994985732153612990135628084188684032619200698518459372719515276320828314678912327545523820971008678008760942138682449896852670341293210550077839121253695692686532208750320397630325614206271239857075646081006142377403696800741734681750641062479437814173627552199616910783591679046123727005725487008688345632315598668319589482072969443833815500361007517463870791576571104958564851084054429893829829887400752805560132017449363063654463452695238183331477746004145537260548902773266941804592257673003099516197260226866077081825182774786101542009291547167627484119249480961216253693391669358685489991748918674930778350607361347643465385344517797307740727621164367034960675449442749412643754089994711449995659152917962759936980077814298132330483919749287723793526838840611687427538292361802346776606177930516926666572019395540629083534971796623159343291424451476122890831563416396571428836941588443690583032072447974488133998193301595764799027531299298075695353365478052498533459994148821612758422197006079404056021904226965054025074106356317078208963815768624651156025334563626087771896785105231632241008903262176377352179232580136292352384000779233508168769482592809230593031935074569590895519088062694068499554335806585268847202014502089493631213418006894303049699870688983835225366862095720681568163577404662093924521011806180078754487602964933711904762530239437052335984386853612245675771001871111410899750517323016286389677660556255337273705593578030652510285221661206220995020938701981619519054985349041165353916184027015961879471870149738624887062152926977723299086848026707437674625581562566862343315263647483622260519931373966889976561504852324663393832609301396095663103719510671189043761455657839669012308261498520624236828258537059401456901903547316660220037774207666893112133770236833026113475456140070964764406076731623364936916486762953512488478580735201256911630170739956790006663511957838374809990650509100733962482712362955247367481020454695665029583239014935964471687524112595309759014703700111969371760063708122230625872437201979493180846551269152312770091245326330216668071780597248470239652407013049576881838169334320764886340871459843427643352780752693899675249052733946992043743329885656733451817529843103739197846662110506181243253518028250857053637617590374522165501295780507285492753673764794684956849567559972227112842366063600960293374989796181327093600229684482591731445015044398857154103439107668920709346449699293254923094744577597619388551622670998113527207149228889204746865557678420728271128116232203961565069839942811779992461364458732507328434883132658675719043124138023598123212829589470074715753887122875203140743987304188110099009722131452477804068508984025883552773068609795943838936388023248658352179732129293171353019769840571810651967632558063176626864519008399255892161499032469236911227086185177929661823864531873800181986250184092771820354197789186754746179672855202537222046136859703431169416771014529824192494042784978030245363238342021190936357070390875832961753767809342571931641694283435604904614965215602735856860075430828511715465913957354626461938114671261080740544958209927118370654433193063599020986400891431355692396835284133188726094862877630874416663234392858662754903201599911476441010084917072413403672205563262618241556282398724850523381360891677752509936080771262564386118098182090534668509932940396857636488006990520663401424105116958612860506954466661168572183013398340124888372232856987323518751365957130809017731432207130710462068808542301547139110668631261867534370641521495342371901695453376432603898140386352504134341738261592205583146483359271174259876914591089882645901340559248227800851087966981522662268668756847930933759657433294678251889772081339408605296685548997149038530350900004160503403297810852382573263395094321202175281006504458633671607744855603769386461056834784559810869093921336937684170700479787237017417656879669542519874573722977642689300358779209206876170551495100032190275048057061589806023801937018009956014839175468683551760090592748153854490826913130925266395854780854150123538122869782528127390724486201906015647345797374788890886383843693307311040430529951620122107595594637853880719075269893309459282997438687966078525628607046305050646489675990710392682146784506909987199199808982231603050488383938484600540317891409085572687149687796019094899190761631074308574178863772579876883648292219943076885162986665835058772226643055684784999214950368427851943502660918629958092163925973224722756347071867114918389756052451321311805694146738809638097184592644881760467610722941835105311620248164177308959480129270371569245394455706391029935793270089898201159533293403668386457642854867091700580589771491557097500090372622833152257610268064683483300166972809352156423850536754667070547779505670706184735416079626906479218250355877567576518917154471883217607530848171255525522623651043510005798235028615999787189279598354945297009259537953830459664081723586910313483123015262025231938211007348425266060031833382343173856320038524634781422606686700950067210184305889849263420322930965494664977183918266907747561941046828398498925243116894575051253043223772048707674600461535944405275060364575284013295162967799248785905395486912012143969160807229367466287173128313648571409927473739360343874523733602988073663726149656498029796711683563318708881014116434210883320547178878431703266977955374659712211428250101530102811314550246029810165857369811570038058357149594396887369376206690306963053548798521680789932576995162805571498648997014984456446581912601880876054071787935251837172674277210275949265978458199252490811162635898656008210753532559472027824283908886410427268000534622609640970363663122957541458377394136532776465078870460407445639550519820283151759329831261824765051401247100400311657008996874983545930788497944094958693152126749845340914006782990116108416052973571560893230250149915080956733791549392689517756257728365318216829708198170526237415632110787380759304836233812057527377660702852621122926763933298757251039418140024997529613605209964618139606652221492830360932583093118887263876971194612971352476838516819895777423433696795969393502415089989617343426971055848813662809673409140952405986832010044313607214215255498628815031155407966869795624467514103262135837235233637361537615201619032779862834630920336598459915958696542486832818532377754396218100093921706843090613857968141978274795442710290416804329386258322241023152152975064903523949510677525971125978137563144067502451414971484311860228307393656668753588678812836648821640416236581509614149395146137289930483772185470244193904042214015376735078895559054323854239552671984674777059280179744107770850018823913986563054805320313589067964261555404705833183125133858234973447689911729795964125579205730035520132600586382944287835849358248191414467555920840953488841372187214031285198089840212291921100741365342487302249446391025622992331663226538879504006067023154446695583302577579305453272861737720062050960478162760236843108475926885813328979742932308231016504233140949088881963701295387514595155346702739382135166552195109896761670684879033894167229452116304825872182978239773913184451916544865765904551861461244840448607322534690772720259637837549875391046306386015006241294540525335845598905279364170197551706082641274055333922072487786328327181536058218777976804660364136026436463054469153104680583267004556331362268644757340872459729314055584340367544358409086459135827502101267723048715662672888743972729846721098297834335766871420667541752980526364331050192500515567760475247231459587972950094801487582796254833038529790426407027440263637370633345713804134425432724830896133039113215927178463210480350827263363643033601767774774991453900121668544317502452814183522839915080751667824740306570567801281023554877211345239061668111908642899588460728897280071366638526149775402706353310817292763372425096617509358282431725095553712859562299711321393206941886425886078501311560378933997446970286625303661057025871281360083847714333673602447916244074047494029982289854736228560585754649405371698487120125614923195884380852726665489667451187892354645773263318230011478768771292347955952361054938874068457837741144846353007182527069299596441740164743345056126785095053839332844084335055474534754207599728504931081256600180466712378952206280198218470588478292810151453320670426240452731613979934971138113838382971470206417850134790996775892950302402955351910192819632849216275484362487362904358784408507399110156174420999443419567259400648200744727334634894937919252256135673054527716485949885000371190104956395537776544495837670087084504203253476804124809239864073814157882557217242650315778923597457043601975662699181319793993836335879177115818848319712060285058696646325133542599056957109995528814454630816355527154493837413487323206069623423568244136480919925523465734105270785833012591754851788182365435634091771625082869987267792551400047114628458414201936376731520933533278326316238673262952276133144291102907101985380937336124203195689611611930926841661386595313828899273980059419234144350423636140842453177463556287713071432953887092847109568577573790550880332762391406309056678031059020150748617531631832966251001783135327494641438313599101730792034994781843896899714683750345647425457379526478033556475333595556657461243961635935984411513351074332146446248248742964457633827632865189620711599391310143804498491038198097601079748789492394328330306405421850227469007369432830178718204728095665657091428735366094095263721681796379133165342335938283266263501216036433347279873052787221588929526664191342608618959385251887139745500105145269519205771171169294932914105707994790757188020240267774674773813195961606385627425234302370812679991488729055238367959077249833326910012801444038178922714652973057271901113821517840345664032807794719528567030460779470737283307516241049036733228640994427704491851749397974868738838314126276701455324422365700396976713212175605469000228381825366266679534538052630788387387719368270859038127638152026309813245596089912881533261737075813108743900555792283144898736713112165326197360767689438505743663966260656683977704068469006852256347500027887647384047290217912588075174750789571253969127395980826284591827783390944598970394363653816566362520644117235179583841866754181107391970097610742445514315747411050767827501288553810150744855551281597699613378900894325415329545212814623917329513637174896318546754203260384420200497680279493202059762481915331867386181594588553240632209056675312718312217118642348233436242152674867215940311409131323080117714531221637416668683646651626511945973415854729702519544194371347812370025008828954451678278931323763230403518630024398708720982225303951800495091268879850356316485998129095082032823785348010948094309682598288358741393952602850142008586893705391354902893262149427446172753386039097168003003631447573161987111520330929472173662962017715435701985528132617580495628431394293080956189040362966686193959055503996813702430454527048673817371504617658252722355488796014347998084478835370495914362215741703565497678821243117535927765462339742494862931799256873216472908815565272778337337942050224861014905360084870005418582816704249738005578439324869641995885062460615832449757173636669523313726553949810092367532024470343058882639668513405167463162015559909927190126409085050519442060809446071014951941659702342028617163291389472532077973538875486825566501676970196103046757737662183423600814133500897976478524703753641842917989172603109671869026331260908383109519025321078316101618215747468302530559607213181652157782326436469755598708861854004208485009625932749018584785592816179314181869832927593330423294930626572444686811457921551970841497756247703505434866642284207733517784403021401247568850056350204437780637272635822382360728670309561063278198474314959393894194016161175300039704672655429426594534892043898300874721473131705343220174642457869470749835667493043675087749697420588420034979216278002849148651705785181611612515420888161887725150394386829040273795582051136520182872580154049988576846724966477169361388113249763403796316466746633676937814134076293947305076415631386384340318721575306259196547420833476006964430086946110196690160336042110773557879453483293939389195721678622639794817230230143197901436428467804231700944315361692365511338005273233049514420121303892567037727262467967659645891222858288979453396129035627062417553039793011607632044035320294121975512876431830278869723533948215455038706414353710620540106624531822944079086742189263720115411703909946337823596136951958790028362971633323984329967459224181504455594233248173964009372371307528519219127085894222189871151876282404160406392358915168229610214564712491078662346149023552736231347952136930340881399652633007386840736050587540914490827152381981941027912634887982802710563610143437628347745368186818833832049972287356010516398466021786151274921580202776581200297100340830171607388362318321031613564530718176066411288904464260185037588581772286197893293079359650565800723780226047115119472849447184549872860146373100769201290771591636647660960533197779256373515842405548314651070581147537076616786936643280912631535744118780203574430609262399458027259533561674508693444804042665011103634875242193513033063089393225076075355002084637148202993971354326694239313300877644593268807439130978333860883728830705991388909554951898025548172333981296533443189733563910282469916089572233865691548432876552517879679700918553461128091777501252437161414945176115583156594213902512764326610190395140477463535651859063368640254100082953999569839143944479230952506342056361027442800323433472248478406983980461405310928113879736425049392042677574660281798162269859348320558237795732962389794514807098188111699769023189199783936266315515170892316951972656980890088484966106686454290537953630994965687828929437317154416157310765826953118346163648446485313763823555914238082923292147230198586107509629424347535854330240413477519493521714077647756184557982404536276237553405393375721339330341825649687647842768241110810220135357954571415294688046250908651392555687160593076111724202738381526541627628184183127119338812382703604539764301978949347393768062287431158542118064484345333074045492617617356105814662705668065969940254488290460693114567966104571414071215221141929745023803532619634739894298901434984273014993996214449176329018521406534166468117100850327924082514208536273942337861797043090900823769192658214822759831433785775613368827327997635639439812465566883515235815090654958744909827241929583459820534708866113757765606518476872644892398413700775772222964237773766920416729705427056988374512005979748711877083452180459471662725220666759293106896981486795751878678772967911180190183256655055546327601399280062479383386954613294395523945178624880963609234942788571689028210402559007356859480512961888322320956839786695714232928986002403853016462858459128043244986790563809789468673729557220832844292111424569879110352610103416155928077339937431980520078767962884570202818685043967331634282268913586533200359176006425710115883099364854330896369801908270895771517041245996770396134950679758398237018300770541611336386557552161729064399951194440507478419934355055459364393181578423861504638387203191359769376424621350210424055518652849876163191871370366949874059069821001915358822056218732267745312604240132009800178349347253389288364176037044235507337616540497513567257793796670726278407839225693785759048708485858554712839709020745982839481965698363164713244657036537638487202610131267773580119692803263319104096292408333969988735149457156681672478119433318276479371048808446372607282127514128539355534868615115468015834455724575689347781234127095992068770345885654371871846289066372261752338101987368125677155028952239352157143823637355573689475102908009456324784251264618455603926565248669484476565245943566774365923670866091058873491946256357123185176732800928074498349629647831525918734500383568247249898417452441139754991717763421773025228560292998651493857514463927494961720823943226540564394523762739744554907764507079477418746741172726525269516283737762933392157825363818799427201415785830261880676668743437415212426430205431789722322068066800527054620883335676774157151943977623143106412324027651839526500297416620953405076866759509613714536880786219417124977314880823373828428525315558659513235380805015642509465228760403327870233780297067244085687338772031829582283995405739792842269644564613732201311135407809512114322456732348392649551124583504107077349184519442487454621249716778139904983897821466293519630303955418770480756974985974941257374316739764106607906450788952484271900764255775206034245502362215668464083874281377876080398721996894120878107107334379796050944583047331336159938211847805591950856274495234564447578336197290161379886652458629623510890596565976041940034997599454811822618703318949355097313034019916283899254432573654757868849888248253256779565349130621867751159594909943440698927182508135933528617805088267242069079511578264952621778703616838455654272754649073969578001938558570008574250183610860765841137185554261247321510302723033027491218631484022426331290573532242263241953699780949105216198644570234836550550712508101971095611024828928429338987565270058336189568582563805396418240882360471015772021050468579020822594521538429865979456400503363325117119248012616014963612011924163240937345771239909454157226850494309134558308286876995528291800613251005270061646284144815845922936096874646841628903476651217512162245063480447936173696407535359950538709110905017868714634003272446483066350320134498816278218845204216983301439107039173920928379466660685229505195610333648952855758548064818737469547099200995125853723039855456898067602159853500949706042524997248831184756159695821810248051751362960876698176971714956554534450170984842547383147959291585642600783489924048745112124201158679650559975882580988895172391578306865935699088931506300830201524409908904883440389564233598322344662659300238824474090135537315199091686865674666343820247180673048554717638888251940506251068551779608777417412617874132120407501714043627277052073231490924100210263277408257774148664326912438046235481387937796096107955570789519004535588173598895391987823916233523235393856622862852273581438600858618835150218695243477459943047366039247329491913101702091658281852327483808015197872052917472816865985649981351986704029066046816525100476934326301439851070663612073002459363459755204879883085405543757920834739429027173117654156806662801856583516673865482911272188178893691974231673546700509547285423418871804569741011870227770551156891648036080731599192743198766121562485577142130711776316366610737445018731320425963878235207099179350325848982287470411500328133501772218283995475688678693355929746892130336928297254527980004102354439240571266001954719591759826486939923441502614729293301946398470417734272770348384678500537577085854775421798279548123222992910079724672635691027927786767868607517665139503064095577210633919553943138144311913294482375327923122840569945102792694616830676647201028639779259193497020703565827893532650214218664351849074956967122877857813089563832530622387094317979765363834538685865044174495151688718776040260864564441508418407641266272304549332846605169308518917041566493136511686830396576871969972576904760240964878360300378395300722983289361958788112514050597991991190609019939733043673930078604860779917455796036981101856134005880394954521628498837361265470469634969893661231102384473616146969765432370798290530444821931376839262525743700770679455591457018260070093888119488289763894624535030907327995488354091549812023419073428918394822630891452674129889173468745377301329223501367676200229267336341661997157941799653248684747020616564964542974945593361582426843168867774762471920552501963207414864571214418660418643687307818010658173199528632743737119360200886462230538667763678979988795644638418199252338987925068158060216504669880019206230575000456525762719048960040089051496041962059936461960734735329406215697602210698556278958342303607465259261882339486897904727157751073739362403475251474698455532622463282266982379574873775975823117590881894089344380162638117966200082516419776827245188073958488600091467412994359714586899483544633558438482912371858373113144051551872919482246930933127839801458080465340235745616692877862675825557589187682641506394434890679387640803512423850092646968069834555903064190437334246166944047858727515312333823952718380381898594836210800460034496972067631168975538242931291727714135054636310286991166920454542636232759742566969077882793466934205233464211018161667018539941783802217512843378037098233636467816922621584139901034938087587105036041671875293361361132678476187809864651141766356673464817264214391509144344012572468976648584036730437919392433681463035225669142867199525588737270894044409101033961827303243819380261499677155515967144679433059838177800477721478116046922157435678585657829960513512481399308430718802095702148743242347827471155294526198198952404837969192844000045319040899093428551352403772256674834166295245530904331912698279294996306409506339884974817493583794175314013409874324545761899014965656124356161836137784974953847623377075213166393715946888077187507025697724207648985915538313337475821725438654381456079178381800572837473461406293995553412465921409735124909167990819491742194658185174912918775075920782312268450671542989031649113733638532871462122303843804258703525130370214463121843598481972638023309926677630715048352464946808420419837297043022813866888057412356631228127260426453516707082843081633808871756710157809509064000491600829996018906870896919004031246275339865420401769400133484744145026661028056451076282507370795546046918963595573207670035547098299657062101781874453792273606249497556255953582859172051013401391931615421380200645446257113928719184318002198059439337177685471314018112368631591665872523441150766414149115535236659863935330630084411791668058239223393498186055073269783917030030748914165240344869979967926298549219868670009084564754622028465272276727690256554169192177625796327524531096337244039099698555659748886629594984154484220503248845004631789358379876958112561310555850260285631106364057115419950989467498608825970954454706680446768348966256198312301054337625022397165422044191714113399416317698707627962884433733352670741162414272595932970821712740082713751980047401114135224924446011089060289258044201178641350433633585687115020082639977115559571736741196534816155879430933117894699960376743910917482190344576405730613393263580377081769770639781061981787554043646767952545461673672117867936166654268608544309616100960749817846557846200679102997998727683526371750953040156246402282324531083643754713732082549232167703661648919439884028211502725332654497691945160406759903193137992188541629895553230780794895968870558199057194323269427590427387673362551157213771577748396177495727485385312952060052221709090420015488903968382479228322813901206413465208011316472148345518627368929984373428368573572896593152521222900111661803698421001540751794654995427812719695132688141222194683614513764153978019947727909491816151199319777766048441483559402455156889606740716956895492420185982714237426746336074650544936242347056392585095546960418423173393572308492142723420651791704969381880242757952988508373686170872879386553701782476194252428976959453699185360145836439832193960633947244408352274114567274508466728571150369021830091960337666639880786168085524510303378587057044530630408361272456756220488640410259653675375899828163135173248159502909561768292811313120217399820794403857964777772356812920036503249436966600128333722743320445795025381198428637273761965032963355307024928438329062906909178527926124910601092975992868725091217276039363905515617481038841614099758116629598619503973033264499030274271476244138178718190967453535470960168192681386257607721019202713959735693694632383955283927657456735931660800738140149246150870818047717212660577010796697496990237109764107806987660224335727828914916267351687462578744969641602040280955522418317316803390063361901250228837214977506441143623860992311675149008612811324101275851500056677928804750479742867420522038123846224030932825456984968133996267011504183622917973948668812767739937989707081931108707245299240015802686323107669209806594500031730800947981153600180986140391212246664486477532279652442766041734043046539826825338029802939205591102054042460417487787437378602458695024832751365920293827350265062275944397736578712165074072981207524254526273011751342592608771109519395833824043213110132120727400110487040975693218367301499643428925300854758482106857488265175937693140104565930918685437231190523891970496606699912782647933573168263724418771107516850733465029214090320475047067681816067629405437010408724223881963321784785889965111147354931743266954311807909232221114316284936639218158096911432166559847722549072769959163000107945256652212331493698230670665925160096317355614975998691798950065275465402384730225185496658919663916176168092707253039156406207679788066222674681044547584454215405380804785371832651276398204602774978971085002062514866053261786286211096239282152842471232045307996558898516125777196578189180911465853810299718397295301996893624106365394858414074833841723476768446648050702965169921918273691893764849106924771448100523213188473984888606080689513915752848442619965614371649823193382908046419259267263943186840778577479078158643997993347069900435958495790329727019629080838744493581356758572313816970969486900710483781234875255799912729409003089422247292732362795065318822437001298599935978995574362629832222102619877089667263761085093899525775687138356299678521694452439324217987439425795427106512723244989879283319712162881613012653080603136488368609158363899666702850058348598404568083890020925921210927574336153353494288807610574755203722450578287957258350383685574576205866645419890565676619633816638775876996982641184217273548863489039543282985526433016724679053848216065321043319925328346000556925112333969185965748073417013215296207134622098685588226976819262763304117894449686944335345864995410876162475741998395802914748789664017114569430212978567548792093407662767772076258994778773897763752294883048955601923361839126194823308774501597120399760492343356282354680033955559798018651056712072479273934018265977413429739666426742834526358937664076838550976495407552008497462639447160091010611486180143483276794347011512945370461173240236634159843810834540239252356321134074627672403899473745372865806316141080697197307150834498701509594117238455490801151382545702978722737359751515124636669501834240588785674084584750861081649028541942486375101926274972569291907441535595729378700057438457686374545015216070873535491492649340819263558243896763461666575283341119914156862576066068916435465681932817248164456006865481122280099803615324106254097711062892776696798120521817896854279428719084496869260930793894084111502625549958164607622451411959546254566986822761206173574578399334505781946694016194918395535425070745995931951738434229144775588221423719163670657745248887848162383062229493150755718741995896513555773080058757302025023100633076747342028127943306837717066157376524462500970048133215587831075402700416624301920522873585572665489347321020476550161626201050831965859992768560073599774107748540162429242166677706448064236633303228988336925702531899409983867069588067290513567136854343044387430424661410943937254640115822975818744084761126934837221548251934535150431729068821698037288615762387474349272963932423981049739586718952576870392026627843042574246249777857905441793190092400847578488877045942879680391891580553196145114158273864053425085117270183271210399933889885193734991615912963320952869629147581093356986320551012680245209182666354151339702292897684322496669445846183360653131644425274955821536003465802682970607812439058199666369319044326516912149781254382575277452926903360838250842521121948632111908806130958529631923445130811572755413021445475446435535170015256076399037936530266019954176934959650792975525881620952549886778753135790047093749476956162799558297992765499279683656339360350263308292697195726406730805625394752960267050927508964135531429112330541816979272667328709323311484220167753798286073485330026374206348345810657244905780709856832784796733135304890559975457790107503835223394611678833682037508899515074343351612820285184521579256566818875967680629122920987236115226095476425666806614572832015874416833365530492683171412390746752154648105616409823700062634212763946771525004027678466335571342490919082625631833541499402719431364428574657583842212814518115833007590935241298987662876650950649015280102624294889441330471372272162241490698720499965675590241324787826233196526405960574569443954101085750493731774878427760045536887257667578795492062211656050725005743424544117849405927418761656857309448747843678820563625488848191601743783176768209275384406980702371220303055082590110896979672602475995198812676595245145808261344413383278674895253556383918921344207891942154165465883126706291885110962379918577065653582107404418187101083235499072030927116883279653812795014881403382187873686875983838578650171312599311608003172844785284598069859126315424020319259287421030756159377128212940050890948104822159909475363988408209692596815664494663124125646674517322543671129572222417664116739552918357261523415054199172953378236649440080399188348328916012425033887384827848542361740378796909628275552502555705952358104214966736093352093887949873275829807190591758574656566061211783670249353529638949998128305441548232869509828119349738984828680301461294951961634903485866250934065552960323632678572527347447769454658686667123938245500014759875632784153057945094172715933672782099332389725008408592146965852417238119167894863747669311161124055959098065677529453495411634141159542472472182030442753272253303463321734315516368769522500151621829193659030497863757805965053300184666088883385881997489562842079654101266138453048535089085244205149126164771822363106798561446241876605153556415884314192434781620164016911038106128133803522335133813002343137701160339980393314982518730069334153150786254771979128504723042101186396429980732460378053107932072686730301074575811299119061228834986284907503991314379054888500957037567167850275637803033689521278280468753214044472878332374967330104964663733664833120639794618136888223485828532664037808687099689348735885811806325839606267174627584129806008910836968544262911966423948681066998289148490332158394757037688477533036668274356912722346432232679475898906967188371581959139044546492031886661055272421222323345199052544014592983803642845783417067862841133334995728476031220122226610476240021061513548233637064273630010646276844659294614649099195587785312489856697759855137974241715994051052007192261858609015670325203759313954053673932445740241738198140698147781476754684217144051122672689255477568097631622099700706232835635070948535031992673927265013991418676141742961535850552975699169225666841242492008036170782270453477206369672217316004659787837866289125752909921475280357113950395639161686201667904221413207529508352137290478403902132125483470016568313708183978962412897616692043068827003519239782141399722179712437225934092806498104490319450828567793179375912577095427043770150222201227971986162812759164088020101656305247539750484715769898489613609690868680106645541720630812780241744727000714945158456117796859498971235598493567785128160930654741843229951446619996187901023067338269150882623427377592832086000861470527959974249100922670416583611381514665982590044009716810238511681385662731696844242604952760724486373491157741889029057417666377340100428474680191355091429112563928594986542936075917193296771299239719375324363944102564211451192019616906262601049744215744397591844687754763848853188054464427697131786150036480654617595279668002904807368760295226468754406685253830854896531358810383762878679242904052342343047838805084612226090686270857983948454916148597394113631238272946464478786376373549840308542058976178424732485909018758844708979093974842502138649118205949525945135296195417531406741545972070987570133929226738134430476701933772391949913616671400359869874239308800748548788529212293671847211223828525645106244437480645520739941611365792429477725779087743871520962340362945914736071166641598680975692211754193041903065345574272436815106252739093349459163764789186011343829288796011507102119612954895228410736339743363939889085064493399586178626444652618303948547043315921776446846444439523241981145311798010354869299816287646103158290765674011132691495486641218642938205504287560098191983575153242124783563445560468074619228463494420104649449186291710440741436975486437617277321246738025492087450100212854380901602416659976236339935680401685715183210757149274159329019194362347199132379253524328429500372856522193580224960642067466702446964708552977696211145458914119907702629073487128690713754118774265238810700605642031681940790725956260626181283407833348592708151463668556467323788130431249741097426252584049458681891219646463390237848954074481813470858414135227576035664585687477158000739017307736460019199885937425149692578265947372129418239296721899649982484598174779238475025929236000047502015554940948386166853798122861403163355719305045251325813559939021402039755142583813079808977123693491345920296605701351546160262560473935490498561252276558422985775662352569247430665690334336007739337394534374248621876452300342342167665208083676534516273950183124962743762312904096888309490966733139744790014280715785877878546228077059080368330962298962832831318258058807305162200821505134520752575569844788745922684752153450903298427627242841950132409424093640224321407272777218786194462895968985475054331681751588088676204387828692026947191779621960232711938893152979967559100343469102257655693857707215722854202342576020661053463496143036777011034881063320063714192442964737647361027197790290967291227139870453814338649740654596442824912591309015040461986514929423297716698072006147640166980122752346852989069819618409645900949391680807652224342685333752195536617829315598956025923601591608070197481017556816065596691812732899054266392380387172635525840433413390705778733691163921603386667405896114439315730350250505020644784664844575618123403614583128218028486488358809464045959519131598025313584385085991570671174764315109357541169381133113879344052000018209240957271477358943373220690312075183587866144367627363737548704215675301294435307157768382486019393104036543625562890915448450504883404770683497308912690088278482037509656040396363898519346153634193156105326007851923750935334104425206541106907423278233128952832146137059143387649241605487464559714668504420777999671143434690315025774184159559335883687930645008019734971746542855709115125587684324929518842784873619581385429549555328746642843449458130104750953324593508282982830436020340046445370819426313946492874340150070757584016616951173241396632926707169079128841676264952089893134214761771079145618329941906913920892128322772026132731994069952644331305993358864084329554528956100634290562318953251712443923488333552680713985770421505978454117575908064460135016797815377677195398238254573256864673805350489662617490195944260984583881911780471026447454386151427750859526103137389811326597754734335024110277274835823888927296477076970442458415441930243660613828861349275564961476839573382203837810208655645680464589961558164504717595577334995738061119550457927361051730763434424018083978465054165866267377472838856475119051259025384525857882099879548361717337900754044634668366550275228653248560690378891718473571846596647784188576690269054980015611018658524061203866670987976411674038751290200814214446621518863946323734111071622923603152228104128878276912858794429169790572801637803911080503151199598836087585548464693393115294177411111957765204260393614294311664258977838451176452827352813408624562070903026816930795686406030943787416908235075997259743427992796516258580212382818832617706408754581148886016373573156137622893177215660216748783341146770275246954262586706889656985649547775715810440722928552099949336190466708935725490465522286252735420417165341131086657396214729299076592848150361710975287833851590832085316869683228935610924047449220828914562451921307854329901419339140414346802915883735367537907719836405449951384384550549549336300166627713026849206860892028313134146142894675283773607649217621577976267736406869839120109262225727697537703927326553568768119503960379650531938872183592305537114781786814853278652475534656179462400107611062775871742838901470117553735699997502834880122211609330618940475340951424644109906420990630519140580412034725768876679657624445100727983518809476128121080836126945358584366319726840251831521139355433105771298090028782573866879210055230305714606145155328822761431356490467590283508211622311310347322283276764505938945175559832177503287380029516237346466847505625825759986263970472646672899058087733450285841914591681628623754973631768132806877763213675554083382759108131134638886919179739144840949526011576809093024604638101576481209144035545269737112004690070808099618527426976880686989194715657451148594363502521458311302635448722474892327291358389434755112232085535575110229952022700891550851328943380379489820068522852521355208213695288626583783329397863641051665963016830371433279219411878670147366408491641262289361332901391428138818941866885058888988171435124619028493167301496836351775670989878432477923865209801608492256410285531855988282455644808988891896019938586467259949271707526765064625350129778981055165292139675777275516715959488987691704469784716590322524655616895378649266348540249285489942757465639320541738192682807716733566480117105651604810126202741299792026605208301244950167708384381572947203454767336336611857722914217789939758897784629240825541301356655293845341951433311161569164891582210043612637643181770418067015094265250044444930945095317092727085912836967643861256230087309681351064886463634905275320612986111939294194191261229053331520708902837560874877598139137838244042490290431858019390583834900590867187491585353825933041885390871277716856841168715121401012975747600814588775257039985960738916737685433775032546169941947904261704729680085665108084469919896610916582166582528102506330252582743416002006451417997727809739397250467138528770933884350485991334297925453199824759396736770704935460897709926046282986302675095555591659285465214128028875688745258337543929272504192909095953431231670910029820884621679814379302838965726779273239521343069866947456913532661798480602163776234943120962025009709451322239139351670785248686975224967909303293319181305069604111411930868658281243935341057813502788326701534097777561265504956876917752625021165307341593442772639238402546816405166974214541511061208585735357667402337731953833313242369524149658615147702302501691692898459044787445964636557591067994033137080125371101713733700481334999837217271621650658938336877651439288549681873389721109312118155102870254132683625771781583396489295640719464769416756830307699955320406776136783563029250440898519084081868608387792951299519001893858100157360984196469980755544658709577141988903274695417384090405223640190035970356080614662684576436569319950753743334422904891742339643416262369721354212296908234225866489637058299252812430899017783692252524545233275817289880846803627213478855482717117203721163213354004467023350962457952571910859708464204327490554030839265516257068102582745942406607351307803769395911984724306689518592120757405655556661110550467060885659015654477945410297939193026206318531790230815980891553205183604719797012143479789306467679142247860615265728178385234681982374988144487008109517958343750076940735985279640436898678404493559852274484722717066884212200594330347981980531384116924108315644179964716962299071155693592850300088653084629599728077816195522580555383092937322609811069098199038510212376485473634470733317914406799615499864488029190360144962829436570357987407108733405360638048408241745104747251703313635494273223517735311021116755894506944589848327987496314392984934189345881905293719636753277210373910810447302666642780145715825126139561373619489797508014366406997619287971076733820842159006361069116919643740951410702467082011633975035795757087450465354065102186385250933161923862284883516227994013067203206517648570146369704679917234324514047372315414622434577283738012545824301846728605905542869728119798675711253667891442841968448672981465302429854686481684238173279846679662994484721447304041039354391319775570437429439117361683566583212150457909328425985675903251425194036852127858541991220985881274160090738035765701040271354085213348332437856544861900364390063751656695641546170662984937994968689995178468999826791552846045052033936728955141272796841236937134753244260924141414609236976963872113172754719145805634558821552038585634985401095217372702167017027409691745010315865101502086377010721458070493066674763001616213636425348066400521977247833567656170122146162050850402838332924370910727424782097602263286077575369979168061236433714243391942356671032574728587846275485999328735314724356770705755271024755650962988434528100371647809798349728909756744994650959244705341107910184864579661969306156792891383911652393967686426549957811059117313495345699576928639647033624971941946452653365026584804804749996623743883464848295948404835005266712400136835173527606497250015289236670065654325943295565009837554680579611825676807865472535947293551308897286039775135132026383947920751161279770453513594890979902209625214487326668637298009829062114263622000717017974888447911376015170992746493946216587196837616780737765151340168983446690508865217100228613755575726638465422410219142883277823948981434547604143714593482705968654672849552111923087792416870399769020387248259481516090815769667794956058140666743107924179322888726162786506462248650079815810496936636818008129383656933288900172906039525584516530447291988232820304572811555946126009797509295025540689896179474655455325908770885791847642211843878451872862556970729110367548035222322488488593767409322705414429813489666899140520620112125311730404309978436324868923377949314842414341292229080238233163097039617309287612919172701533311802124752760908433331533079507168391608547295161253199432343639559454873084859823344758539957070620950475970823276502317448559745003925624783605872812622769638198631848190437383416426430854909461060221087019868695951861990540740031371469447253232094548136704148057658654602944616585490994812161139262977094033174217042943266353176992150874907570453490247251315565196204215815523464897534665610564830612075080202959281835176980361840314034747906050435143738172650294721731177428739410471625525567731110465265127584423001951754456519858111440221835725193910470801618984696340138339337389292043995949998591372500659698878887030109787072716718841349921869544399059772181590630422568655873904293688810605444862246240017069261696040141246610207719578955817420812232724759835333988293733507204884480707079980834443769769701356396269206291254684027424359506840853808079006540112639434989432881296549782729535584614839727435093336862961266142214501822161209767841616436190988229758024353284886635762749879093524091065568032498217486422144789990605348299669188552589652196508434034929461533293359578348622625002704948613174557935564826630558813135876472597459429959848518053230096978103557349716099782639115094481053086792687349824165272948770032637033869130630666199551624777842242482212112803823129069597273645770313842396994428924453178669766674083944331324408275435142087697714297140583120141176616578609564880389362602251669065041863550074180406275060439993731023717968602898880740703126764808818628289670396094340392752038193329095741833564569703578527606108671548592474048345397647878990637370053610815602034903671793373870413014443974617943802254817593179924917622532458103961324210837266385471523239532218126957926762979467541602386645991095869870429154344761249411861661323524824521767293486440934730982580725423460619524963002766403837910696584823554163366588623557068618844763155430408426617462263932127378756362593556714074787387951514368500975965794326720707010449599897848500228516249223721557910124610791978233822438513963801546564230915496169426406309204275101830758123254418217012233180062952482800567953682062025013744033716566687721014581297148541608540671981573263319602467592295908048693866200628202312289554472435723100455927871567083235448331032191149180093280060335315653693990914464697566679078025048866865853089976920214880657622218414086591724782803657095882403021610069795654597918065460265809723986214791641198380561761828911165225716724996731646783849868240261468480949784835809838581942107268360235973958643074095785031161723595514341899869661094504012942854869900537986174445874675300755559623351410286524810682640262681758511393437903525848464041289944564772384665867614604775964048648922123984755527488887604623434353420897779482334754759799249610349018829941976942331973003385421813465367852278539115990480136185299213079820459259323157020247539411880344916141763506292777696257704619022509672844850355583162860081823367631884186658625422917049287991235666984317047919454504000514414313391362774183561692341395883211988394481441728377433857630113505127441030203321862177805880883440483713175651054931675448844542356505409406578503237318801097381005318885754354118970993928179647604490911002588240376579899435877675008324666330035875130180700664289533061700229086207424753838002555146529277326796719644731311399809643991082660757273615938068631122946761810382407689417569167797260344508073086964815632954230688290116619021448002142811255950227709641556528595162379893783711535141702319271998134255866496039276105108354827752238094749113987672898611987698695270326758497024934210099458773145735200797889643348927617414606597218358400225100526464718867824385547237216098090857917776923265717144095396026746202082633287680840068284071020774496933593190975418372065232846911097290443693237989767787136260966226178952832944278739600086636494846304264671607425379853904406276998786391471056714017788166952444487786517437885608706032112927541605366059050547921263249137082810249910363949748255450984403630703942109448514815282710952877925564004057032571524452536083778004362882446040060907535042467658023420303269093009535249077934496775901776502172418764762603546440526376019720751304664205702903318640203739946519328432235893289933383909838617978139731313112400036880724594070597521309915677001017238832715200123189856274441538397394441485165567677691917457155147154275510925557978477665483484467083906520057902094502150111947564194223328821166502903905980352568617404234499007014997380960156184514361929184183179634057925311854182424952196832781452961030002961737597448144221873983189105512831294069565785371054770500890113230027507142729844041556730713236040790029253459739595466975744357290862946604361621053607282788774269314426462167664069598613118824115963628617305802218842058329015733166910781886066100763409750238260830177229462547879164968554311390396776238011163118589192237425550247087783428454930680362980172007384249533696207291017956024221144996056019823202752696812076127894398869449883636714095609594146925358241205019532160856955572235313592700778150994158237577777410271928352086277762591916163947805601106826457466211197951886606425198143315609404402089850105737151657325521925415112850841485019119700833587365162518329485031141364322265819236620414871115590637083634279361418155842260321506163933260552511843143524453645547044267217397693085558776062872856942973631677280028183084109021898856364851145269724685629521592053600103349504457655080342675316120453120577144223904855756691336728385577894367784230967225532111655099035246563825255840170555962611909457200229110800524632367655805628685485233764402863231361780115731838150537638116442875786047857265040576396047964688473695758127156124017167202501305785798351736716408640722728281611887857771252942835182588639810163743394206933051596201047714850335392801969384569521392068414378471280104736236326151871371525137619981695261637705897686563944214236307083171826582714384175681449880999356573786036553605283680955688019747281795007394692226982046353231920868486828813679576459778326293828950969863399148482246633978804394488649192303493924925158236651436333680436158137506034220814412031516543480969017315083694921834464977145689276963862117809690381383752567736811421295687152730083399058119293007553618771270097570775881892633817327603956272222355363847572404576432111528251140614362967899933400618670842360157746426396155995306200133024059459048431978146171020528070979207848787352423020054502941245995738911910135568030929873144746879955983367073559947104653533077541338957497531846085888167193429443669031017390072203043044053287781261284402268696432736045989777432132644641492028573293104622335493361191792504640760205361473704086494436847784048964074051854172795787035868117191681416662763514428073942422640356600400464190397667611275878910467271097226067210092938126774857252473711027938417072268290846502618655377743855228275946780567686335880496112868292907244981301328886416939536925685499288491991404490279665857865951018503236584907885088870163711986592313478682174133298460194886503881428430382247731021871642851706103917098786646502620512275142043784928654624017506619968097830013819479286479476348285652158219468161504375635564811770873295992347026800791144903788062947181601012876961020928934977911303559184439891435602690534027045876853818788428099891068561312367043050831657061020363414504928056110254240082774184320964257875174091308045057893531972120876099967814967141470265805688723002926455927047396363795853264016944587153786880857748672793277869242468512560059351246168712101097330723429588122398592746392603934696448020757044196925702365360585806606143466232136935328309280885312714051118937811228108215956122645108873952570448856126134326354270100664981963027145436165277731562611259422641555539120288527404922151338776279068672889725255491956653774647032465900315593910810367687359680707289217662475901919789023072093184660023638517871660596043843498456548914831181948677547602293000668282934522759711201859774054416358830619445596537556523421971693847460534033376539861674908654154824746026819836569289099510427963701057376440131083583386133980578779811810722182924185782765313856667166389341517187478126040309451249847770820328388764985805307145583279917245521360744185320082415990506594600922665270057055393775589360332642161971455327663530585209395992400934608635167113935670432084100319725225715730951242681646381893075430325627687545401826567438362328582671886458816995588925793227084419002258026942455725961070328080205450090914356045362307337011760781648541952059840603855330375543669551797944760709624018291529357387432623455803552283097865906972910852147074540803845783456516859219222563364690927610362812329076568403962132527077505270924168991377371081175826184552853288041049088836602299128020364772933695808683099114743182410024851307452608566275664674914328162597744101303605761788328724377151052564056424276139705551378789802823561640791713500167251285395124466249801813078664707028429020460031042004097042244117177571007322048277134271542573961998888183879873639306174556526586862451797061730665999725096823326915397339037843987523801648680383057538112808499680501784158975996791761722568318517070234616591796995649985173110334775920190451466618594117711334434879592577716604879782866797818309639276282853246992980591956268254442619159100035211692569321407913497351361950709912353536692680571956512762837627539891034272637575767200299365895607511290945177943522192014630000013237277443799747129075371319177100215964489668585817501661081845574509997436220599189114928859044265001884465707927811189295395088773802381343189501892541630279867931015034496388162717569212796625532719788007978044651210322641465306117153488112894361219130546263438530134591547962504478719810866836764384638008547880083771095177699630044228104186640377755287086394733657093427855184008534068233970708936792824721298957230511744127040370615463897691623407111884309278276491432809410855866709356163991993965959609166967385664809635141135390237322031004864812131420175705924162158111941434537853708803412045508482126166297001694929437142145546285027472412035933696295042109382373624777255911126786159865965773009423803353721718462795027611074747825481181391242614656419953307863045620417316784066952867284169368550983436609697765449852292205619261903769296616943185310853035921776156341120248210760401153565804336427571298980135696512302701932599889034194965081669382995818078635692104561237017365934638532517424183061951045099757779898126963494458503852811546026989703590413586296467148679101952881124711918508874599385916119217645793903081102325994043358529469306715707406360199139954530061870782353078680926562967858919348985239418457334316632319992431783567878242882480048577767939612129852730940497145351737074888896299298600988023612997069606829174268409364551826741454414489725858888598939822920730916464580215856728434291228649640158090054921219007932277447769551384380559417209906546443198109799303450170264874085652138654137678943175497895980772086156567958339473581993117583856560127237362693105621094067974431156291259652608507694891545985756276209934287986166746814440239727772651631703535891764542156227487663655254363304656039913504613468475278007962072798552001783220064608890506244084845486215684449753798930110979437441283187385893499926995159193059479290670460335291978170746888440535952985127551089757483029377409924797849751597295114633746227170964207299403663304870664713499036982318241426528278195530097982208590155592688669124901107014824246404704924694645853143277035289423388544191971996085839966787724211752288332388180866825546293347828528590988719181865552626658638697506639028612689436093186625725229119906149228415572901394178663460566268348839178582067575931843948354302511324256536195694964848223634635087849983891231665053658492131374826867099790342033523068063724550360567106096399289032491647093372458732259655737637764450830262105845619470266186308311180501046150390166933368404409050984804513998161635049598019097746462103748820551495725830160899582477595048357230311988904181267057513218143307683702627444408629469028390307781088769469759961524080504215806607250424890801518981365621502090455194374232141840705563754263947665724440056005617954122473846954975305888001556626157237139854591121976697183252184216277024910067790771017085785053533941812483518505002257299751466103146081627237170597542617587500221846195380307061084709595356621013121881246830992929439200989635454162581614875132635168696118600725603371728440299064965157190037728210441823709548072244494112076035875353480969101379320206295761797048970718031869086151680154050363822901841243301816284705323972116472231620931326568757956177356200165042700155048634134520357884603545832303434788406843811864536152252799514288239814993035036890417462111830877968788892614660619134846546435443059448604921429398919628660144704566865065797943637268833611870446364386256666292459130419550407492385925934949475112021342633310002447809146017930049838455044040419923528829317066411008644584816529648885906915915677384483980959172717139612736993085817524519596395745546586053061208036312615894519479018098973754700628737217963983712592843383430071569350485676839447722297219596796802021745653435098040587348482569148819118509533096999293721576971991508686663410372021135424026453464202322674577428545166752378264908656433518288362395511861418179787416980935057426474915445010586897695972054750243296102240181399890342039811411424921335360367853418001815272661435495915264130766281884201526335653432338473990529688711819789962815490765867806471065771408573601908844486417932261256754614496754614437695984942044467379825353030634905997765244832362012748993193468459167231635853635278193106686043978425120081879714578790356235026003853535404043922223096713646241221051922906739182369194419440307527239990726512747335388492463038528249950375506335381457092771064725002981327117489976281662273871194220713886192782009339312758590937822843620135164164440209749156516429285008011415744093178317999451352480787765773046186340763156161133995733455124921657595356295843874244677877671063454853795727285268115355448523326170916827299404552615113534181124126603883595123828516415507410425266368503398300309620936877236225016557421940149513068111537046564625394600169154146573460687813915124339299851265430433704861108718734585959919462945259658236278221577347305661422999976511248594797347946335847710530435950746613475450244256359715711863634262745759620159465962878867249447521781243936306523176827935533149010287802269439141817300764811619751670072372431026625093154312494835439117778423147135080837489662883706650134521588668258394927653713802271609140086118713919066658490140643273017493969851584000919216730159584154231805286533260787512208120143402147832284413821655031697869750765989381662971305438523836597143266413984286037902413752348479727308610328644963689167505307523477561434449776920824222374739166149097309296347304246039532031015879888157607539755329074101062569026203911317787192406699675583623583609503073878115744821907546259329784488432784896623439498355367702159363791132014450079614835343485886816524862073399372795932070024990484587946615949443460462987106944424997328261937980831636842407846104632219487899271718465710584563057645300381689045930316038544698041635685803322568683722237326937116858185992685722665769724223516170027915347415528264904391687271475144642684862548810604149225035866093672418895759857597944401293562018239432668162025529854669555931255025934580322425745831328993957667468920377627921863030892619943227449799960211051507730995308878665231532333490151844729818612456893660587124381939104852223960940328523652475843825841860490176208713370853279109526565218647179520111604187859948139382818511648507031626067436706217725218720450940291210254918122266424972160652061460591316151153683785858504856095157398343303508844166349470363315131712126774004367844136474502683706224256673093390615056936168677783971574262002761453696892981858311492489599484955532155415101255936201944591751819432334869015271117216039789955176807623178808321037425637848757124336146609019984596083606647184171442646953598728138544061106582608207161832209939203413554098747145201086013300955005071080040142513154248053109137607107037963654298115336519634450124543104410692529511802701384441743783293181416542004028150007081590249618448042177083555567280817225546177286551480922676837873970529629866721785188921215045743559557403162511047399849601350448217782298356172342315070542566909304635745021615720690204632823976730957014900197276487638870382430932657592511232975865741154750003021356268886829158039353334807714811006855128323866296899300292020347752282463148344889816446783114813918681312155468547594522920022901157415313452757923617296741131562461499529081844640734756921536660052104087362093425603215368119177523522709505880109475241188450637707848457494836335396182557542060585113644655959078278703048113786052291692534397570092160784898146553931157935909825590142325407155857472016065073958737481504780378112248572406980252589797101403822130850473757677921477056142762467147122241027996733852747413366260820361247974164346164887945050317130728581637465401238308229951130889114131579330621730487813772642481309526439386689782805058756222534749770680553190358033267739737245998142098192569498279623688507456783115725393460438448433435582709871557020567453969588135014252223216553561969934450468229348069103312881206942183817714989050008526645539603792624447169877278598544216130461104259221041325054004151751024584363993123779865707257572836284723910279603667121150961467695456617837881442095001458278922643778016607626237900198471543756897273087954266372532606451557085118815505192696524804588709885650358325181625125834615122263911860262160179067403965640051026913929049776593183443995308347573157240455151125192009679081967784804170702798169148304836708220842791275819323114808622524927539529580466842315487465315390628959105291404239291768978040434296998775476182676600516689258454769644156006196570719222970380141210319775563865655250753722370602222130432054264281635279628246333626399195948584867744270722347063843030669265136260943637612983256663858175454796749209064236012117814138334089038340324078412163518342960946072506829003053709378705342098049467562907922089539601835955619974966320367138775564457411928403037927759571778672976896923249329337364682259962644435087784132709629423488313401823451500622881579097594772196865217096125597025309038199208603966224099544236481148567031220511548660354346590098145116004867766008511773405922046404248372921647552184956002750053273348640243924995770044515293501748073010010375881458852044336835695736924404853245556917817929298124453003746054292665128592854849128937667236765135780235481820839575550057401924330523624441832632968014891160441861806453846781570683486548638039758028652708103627341048590667789642875832844232037229071139124575750768409325513190300827490316593340712822124717865461600845919646372073082922057054055384384032837348481819099823444512559677541347873412724607003630531222403114973703851031787896472273899722723865025981573705667411395882180824836127421824963276560232259973665708565016213232224363476106053443754320708276499139553365521573199615002097780426032687448356279498657573767851863951350645769896527378066695463554399784592927677789659212253486292045323557466612259070541426171882019075469925028638346718998935320417366602543981482861661415468640275515473563173177511397778121391804738092031373787106238876198237230363218710304142754731202195184122986873798912620106084177731722626022174518285281932521423751966935233748289702369926439811633875454671775085602263200048702911468999202131674811099254566630858248283706207822120516867468319750476380618443643942604477574278553567021669723149958992647833762782540780790146767748740741782633787850991159472666181264538695592604244789259591062867303355496743348256201823998641460067766951537289747440048102228276013849182755140682474623554829588342097001419457293252122908734565884519160430448316953709382222898478244037169671627479294415381195406758346729092329619612941633437854248231395414325944543021551122774303080124854906347257620671298222077943550850113476676815822124221407795128665635407569579069585537124463107908290313275497100434979052302572423354680236429819024417769520594918682606493150652674073658011427301031481185652246086151190530178328679534847363866347400293551672433413231594565503625595723745602056175346248753139298364357642549549453496355410605204063455563626727560068469718855996024318530617528079499082937354823648698960927799557618935943878604693537677779083026285523613989545514678261754185382513363650446885600083472146505230804323761812722993285818494449409243710787938468370468527398342650826287165272444255768101841069969295350997716873427453652884525845340277838073127953305649994328815841859455657858654966379993235453462958464671045747207593026491207041854750350423341296592580792749447948588144260115782753628204818598165934893132026828804972280486059842089203999754298845154430391658945950935130331032380080249870623630387820623450947487581573055958317981776591965895760388462691986253626023014053464823699370643283826698038371888833653018842894667692653202787962971195428972552270890065017850851298115597229151167607239931745839139971969443844068525303560116182239630262724887163087692093806408232408098688105905760716195942129773446569299745008280111792792297763372112014980681358858631336419117486167259453056284947309421869781936793080462283956157098223555542391218938544399051668448577980417051527794551137487195303844479667828923072250426307436010781730055556741177178776435999383567058484251697930516235669364703272680713257809854841618235989640649496811284326242473745734286150362301333841442204716396956639231200165017239168674728075969022021785424072142357312320619517414029504388344066514161477237660105488659828291292818585764645521598364760399028496106842213211484964855015307715945507462493348984504499674136377699488990112178388466720129448697716261067482396305808523929151415115697660241469393266198694665245401018628427858641729131810286173469323622182617505898047001262265437028752141538192223490074416687057808330957122717458875791744897659623195072345484075127126036220977859681707687645081107934653004273319293555089048553412127340487405069415631996963641693245001720257425653041216469998765106433390525396133788163918389227649554823291153149555848722592201974321092030157049677575991820972619698037037683012266778528331516457871642819169784194462780053036508059396865612649448812785644753400451287513341727092568930975405706045733386391261891129221546355715904308931297843571541034960162087673414762248588769847625944472735739199103224158695046946286757902844150550267384601321539951353766493920960457111712663908709179658514557851176147322043474032146906104784323254394519917103690865122235139342475821290160778645675003499732925569903409200114132535462483710130925434376220512677510856022053754758735895842252747381037978106781676401260521969224584454895592059142854446388511417900613911907373907896356141882905829542046133155524497963078929299122252486980344414430237783000524242537003903694447736754953986583318622875539803796980117461138261565518322256778726269935844696327532439660258742323975248404927719577876428651578559580762117488201297289289457303259467013526812721235192967973368744104533782578291662465380700898544690440760681273640546261846717239059200182502853955226393411255250200764180747057935383917233207578777853860702476039495656178800188542223346579951143360923901673171027665105444245708018638041357349905474814482179215697235693033535274267540996594485244775588874473636288471842103838785716292542802242868959499716381359740365848603624688919760718915466222818368835560639857601981602845398182344605439635543168455819280482766380689165838495914408955621714441406447337219898827537220110123192829506503657365498598851941215405625152366778087341437239782461403973260659960229157052033314313000744368057996706702537631305794422217051964234101823476725529795837926862965188154029591313602476647795547594252480815772396907260868183395531420572439574807578433986389366113562912981137581958083546528712776553154673733707931480782662247070929295340876740070662166132885594277063646635238406875396800634081218349348888395265630263322966111758996843324863737044743542168799436304670530418290470401502933261294291766725196762398245756812543545824493959503078348764111969972996136504699561694716058840133482140743366632664040390340194335503626705499321409960285689275987181694062579070678875161090404491415559770260383292952861332098720487408480977778902232943373704600408900845462676841184884188493712760122717672461816114296970955110772027645507748292425266132715848783724247703871706317846329947416249396893141714188612297517618176550645265498579345870639090334889750756192617936841529470293402324619978382623154603885516657095328536489077857985318841913875941125658899434149202605988972688920662432673126738450734070637198917729366704010175112641754242930482175479022463571456698997063275676787637563399650180154831169860410016955182140509094485322340879149069302445938433492834818975213722513787142627509437526886003741299748524345336267552113593174256145346723157250591327479271202391423751366568162174150127639659334453465622681511740960071143518321035552851697181625387488029983234315500014540762040997177973191300695227380662752057036900329136946914714097014994217301302490890222421448397563576684141077145492621907132279373780954488015584681184931807113316990527694073824220676737392236054326465099314051768636496965794222832934719608887512352577394991653902524933165646891086264859774314424460949579889826200944334409914174866799691376601682200415227883539907305733601212167124927537425249809027249063426881848309242714617047136620880204343468672988304998839032151159221551933036793065992119894309011923354449098552775675107230889087391011611125852621096162140398714149595244958779472408409336246976901616442875646671615658143153123476612742508692316457820668201529184043872039390984704682829205143212018095654133635785523327539316414845990565140204342426940370369127963629951156213084691182554117003316352023798795103168161974850266844721518782711148927607468082866361941703922889171242522712033573163029088038824643327935561570643584439198501597716823293892718470494529435443911268896376718302681854151107343832004403712727631710030030771836017512538675692190007881645828701127856017981231294207915520086795004362599173986034819896587163427733842945770974849825218584426850344626302659487880596856185185571601853037125954316636023320505179703917720554792687034477478661873810938952070464640248950320204466619384870961592539125192268360721226824770801714011926361907250543096503700556613271782623949888437688741815237031759555285420540841440116108755444676961960594495294474316124210743658552330845458844797602538722221455843206392807235631560023692441514032164178613972740815051735481515570108098504511235737285807967207259184724020663103403112015564561473239003937682195034974903120428948563099097469935177680518757122092594068011155124210609008022828526304826539680347683405792848119362128536170358918610073582097020996657058411444086323311181850804319572594956204331558230300962561370087225100897322224998542769931879177053837841908093936147908007276756567756894315205089287782469224833886784823107941368219276295604506957670202988519537743004142929681227090956214942420807763378486354800943663546129997585758887365911794118738498545582028951430406246202429544625454827459196678790481191574301803946344867505905583373005530118537029439137410267854167087811277102848123567517107958167719653407388593802038026782003344881391216525085166416757264746200638224178555096915219230421432323968344290108912673350401443143547175762265710458571330574189708676386021747525033135071562800810930528342093122123400877374370943555339646133404332354332527669494975246082757026747898460645159013495320646624179185325131925462741670614215404147234281244786334416551832686630955617036359114438094720335233726170711224703006886030069091467226461978116232636800558782445028181468133773911928718011472132365303737979859676153145639292117163447267430074689664031590586902543377374312484280071250206090230262791106374666179105464909108727857687267975795209821561315903823765557412035973836742469787361949459354347135541176322599035414427750288553903412684043364055978162155336574555288688370502443530233009474983943808550885491486084524470373531077318981317327949484629073562598816343615410757620364284859097375434140139515667306182643212317146186152496021557582209779664211882758705360257802168834663515598176475437319832346166088008088850018426467013179924194183976817174971796635645306490462556022180711977025998729284475306363764610844837874919079306465504699047290439636821681156141259133730788388499592534524455869845654928844259355656225462217609558750807607097868614159083882682006746871451244749206199054187338917323537214630847220633708827269023494716407938559704918440583483334113992973186635986335745961238628154902334148441803012607117573579272942257547081822150900906384265516036364616035633524198524234680042018853711642608972732827441627509474695237692915351969405071058363474497311803694504762485879368459359545883766587503633524392319468853792213029772951557848356685086233259159449832662110997622861792415566882464202044351941191796486334626902275201602341485041013456085871754603669966112467837770286762677365850468055372291977425443747576558574112588464961968671393735094503745381905092147452239731736279520400561960616061757497381938277556957592036241421288287219547165329728683822875172657520652778750736737256259924120806752671385607710957002165603378230294410339928081323942803720205854749882722288396965779672391413019587160143224320977291458479249956630990972277755794270349340557255282055283271731799789430656727593500114128136543341328493050932693272866944953481929129300800080943845161613701539878351775950731057477193274668280829955265650623126999122324963521605265893558759719064892697899537552372624807204732387068313713957262570611427851371934314071443866663401509691008657454736752113854906732000137790493376288834376833745090142361992492557690852428097785983317089983433798349283237064925390576654186881372892316683667325830962824822273287024148567856444895706861662533267642850798250453457869712637791907595146628230480695666055003929553674517915285490715084113560623928377115351322981420118477092926307648795015833432521123043653227128275837133616701121033135222743422909729905276805777998262449673966799696983048206004131443840400635126990955376420241692519087876878304358162998921952492637946062823994995917755829971914371399373782983206398306223234313899342576479451995437591484531518684102020166399041169257556828434155229680764257935518614474815700683648539309264278053883749886048894543444621529000481324877655412960746442710220783419755115658374870727176327131648220392502256733787767111091956220769885766260915490095066232063253232761343101588830299446882422472339614093204095195139186268773352831286568707914423635469244209524843929621002189353325464944827305940777625741582979064638853229324587749520177973735250997139338886598411355288105233203646743940351032244888117908453935332796264098269303261211741123215584561768906188306940122092677563389586540696829840776600230329683701445691994675477233769712746133851078753652439574691079389338286241888608778097613090623432723217850669208131265393839898142532180911304316847892741680762929900645104733150364616217029024324089080951141196600219294056059722595182701017576431568036704360589959068219549962125632573261024357553375472148753932367779674610972670306353230183496453509608681058079431777262716105470414677306461666070690480710614261020328223585651597670744001064651674555609651441420364669115861342772589534143654735252959356955981532759832592919585908232111092266730772491316901771909625251584913688683864586546558037943312743009856590380926122284668222390956605557745132448548847255528889658402072993679954202220400892986237818386051281118235537815048702652517374153334142980603339937881613941298783162343581313473544424616246706856688916244571797584826436445376520134538148930301989857470347537005455909916408389954611043139211117427352551846607670039088668278707003861436511879062323932507745484582201687521371189914805697179860869466755496896153496958551651458921031739800282257671059475124178294524697999030028789385393791041802520221676404522846397407053521845193292930595858954192532312826629517063883000369466996088665231489329391504349708657258344981915123435336334447574937626602299082067157631796694068002529156452350003649430276313086220009433589331177598366160948468385043666246676340262710030705208829692701927550381645555319594487705293561933518933882385430858404059089072871860108967189480751037208512170033952972123029528996838588301521364855639971400818253282592222569941617469578168382596635627545757352016246425585485563183489391679625430392650882037508342303512656853933471028927963448257151917177657151917317626651427305263582112255675512079481956237295571650418753591330698794472880260410213978405609526281079096556894032471254556336375581667019868175735917311908517294780292274379158631007378644856994613100969592487966077475273868698352770515515119854039792386120073938879067393623721989554845237138330749991424779045921207082323602608760978719050909986299976711931428826496113778084776263838009358342935058076493204731880901126099547574446528713740360526708644909607665688361863658940297696135331494311053059854019846348985963149242708847286250401604990098834133911399514436772697929075209245601660432741710363043870464501313401565607782381059676006139685212173059964871863378173682396755915905421741066601404749697135089631329974419918381382598281868816503269558520519012272534059436163890842454093221121292983682148715266995866864278672220093039779208809798717355860881394114415314884547692788554222556975714924551809464436006510585494416840403674887083147909478276119449978194948950372665709970600744503460037053447643571219063059751572221140990995058278191780154440109076798439215323345958351274137298925672386974709347225428701033842516595820451263477038286581009219574957035657002274126152358967453535034594678559671456612030363081307862559575416573986128394894029114438528446862075184912860180266584723465904259016805382143319787387686027009762389216928212533268764447887020433040415455806181410261168626384640661834591981052101463056557968797024450540958818987520334214879698365747785019840273754290471044789925928322991212270367455909247628618382227379335400574083690130736354154695148795701271261564012732179567835920152820432490704945146418825986737310225360584894620252580529748488738690723185897022945319136196389987603487541042393760207519554652429388131711554137526499305336691033560544924707574691896408234012084111451417495679312157411070069139728849525207345293284430475489973787688285441033522849000854689347986117780531486526188362143709168438407769563918035780494653692502263753493895095190339366647727286495869252043060785075380028838411925595494554217451941752386067200661926848615527892883311161956902716123039756645605521172867739902329060268495314659222017097069795869638827596110773224714364423119636493483447463562281354611392248512579453814011836371597262438375316624433326907043621317867592286046275369031249819481255336550447125651369616016218078447025811718986693606059941725941832480856199880421186353426204311174989845527162552892512250764906773717483163911974839459190207965982991675196009697543956986771414674735737078709002673374210281086601625500574616884234714664684525270270761587539238303095861610335343770480923290466970882736425542771335635055924551703689742095975289864901524132267136388353349512502429431974938524879869022261180798640297975101137484685426766200306913688148698589075698258372964238850360818246566337161365425192988251571715565395836975908504660240998383982992983732769148695407909156471097448968192083768893274489367838392784711230450517529326060049080469664011832487702037858811347753126718902360813395261888127616939121522593290284627071915334315295162347012681396192259855286221184689287848746835108224388271769384638705662776665606364911973809672434534397435747801197942983103451325109715985394390598177348241925730169223899986845616523874219760606915348394861137340055358396699967765432344467812477300634970716340092197892568374227679877418876558511691395925775992838749857520850980944579947131271332998821969511321952101918211158040868470672353389450535533685788347084810858069187732941104445976064700669617643264425575631278019484600775159407488453058592429407907887338787524705228961195939317990947822923360177212640318608853986703024184703069363940254510971614939300961421866121434490221328318531471048144161950963277336104278393832268415258192818733222565468997761318175508228980558492611369394523219611598612411475165715717448307674146887521895555239162697998108211796688997317837930943775798641092748447376554179646925640412685462663191846529025608905748828556842897060182069666721630685508013064861923985611061294416740217987741204916372432919239705021255532663734469224379545936274563060017136198328972767414779310805910568455825951898011493929090562047835431431305461526388876766916300110117684859914447532549358679082228307661181985507740892429222729559874235986969352809608785886466504753824754705546704632486151502412140204854365259570406889684497060965122986358983662699878028344744201260622719803373006466193119352473344804151042407111107622798856626968680975899941931467451927658406597646708574199273368149361395382908619873903041032756757589828249965020450482039211922607814608260070128653979479920112743135551659420411510026013949806790948629630144270306419895664442505637823678778961552942805448494105913518033934726240090358037293034183525121710929623540360099030040904350838393214442138151601061037942878169851234721651911146976573091526325054887854507224079301256949503807312459178993536672954683217703889208341742078000123518289052090775452526662640540387355988624281886394966480787029010148178762161786572378133331569657091462703004304144026225579969882160429280402280414525938915394544160596940200463815929626103525808794128643340060023758533858325654319431701001389347600693799957749759132370802558099392236322493151419884826393036913681862730088106077892639126946439240377009227465051841630274377880283744863363920741781076169246225486683964719227857925805490602941641758690093756567446852182542825740593857125139784283275955334602079570629918417406656667122507881172454520176895005228284628086792291730984573781628853012395416907729041286734022035570728668095370558844151315663917970032640427649747852554836560689253308886589607516028003543914932523615513032798805816625511432654446188312023648504813440429548058262633919463923588767837456733799300066282661350813360702133193246592350457728689198084695349985333698519473250475960111358678600289074345009940419261839825482831794660993033008351567802978930161609560032925641106172699224116977760931702435602231784825419784175480376158114614387457019378522423768630145471701166775839485763066956258007121313536327930916759399281635850990853965608841879465755611504954852461650946423895119135348862673495307132334377895623612828867459694321997002988512125652031051278203273871636557833265745671268448628910685056155603985657430305356560107985037411302032284671745117444574023427194691207086328307927867687269822802691745879977467866136941410827901734661710419059883240773658278287471416080981727983366793453144249362958927281303245723267346804590401620660202151054800461158618455041496565461304587528083642498650770389320717526331720696402488860066424256441494673275236042504144911269116054558174772779436851880764865053103387280964294217987945897176801031013115759494071123871196007439103303746307302009680863527224138927183068166968734395472932097603270148053626779708370672649163399555801235223884931577569438217082870092296334374061153381730328605518963561304843865463073592982550995070233783842300411714439628988184384486259431488805109160779007110432746294630036326883665885329708876885808790928985634519780478823499230364514138954301183886693768405380973304257269485425934404587779215828454874688425628712776542300847178121143041539467277573011484455579340154799029262095246654582443954458785038717958032546996073438684594338694377538560019970634474711041576442493315044085799106308889934874575560759858715110554234493626400992371437605713880376547036157632230370346100568903944291714211627089659423987416734721243137822307199060964791324044268840110245070331391334479452799503290885929275955448479366437232994069914242912714309977110022274668928878322245490250654717053607745081535398297310127926235437225283974698716887755599621813950723517027129283212786384881938355746242143099603699452914528687628060158013098917872894009990029439266754080696316146527821036178671198132701662898368412719374754179855408297663860640000152646395932179713998563457998068538853939299813899632205335485509414259898007223919284904331738410954767289262531222236922355141100063276687828159022318532739638481274090255802685896857998365004491283503640933676789900701001720443198978623616748329784378988084620217306609483456747049206604290790475986082762080968672835755893828524060798110230029476350736544703648314052253180737919121477911435406879373737083138451923438773193768799592495331315018551329005236606433516354213907605871426608419386781244115749905166085718133809737951304624735260362881513420189295168971080448624027071122384947776278510376893612305290784233993872065408558524719317538746090478109874898484325404589118656227766018542456557860505019230052945095680678769603161419004869440526625959255798989787620719748343317009039333262748509904026121739964240081264489003861988885016227606602913349442296025651164830170197013742147102048515154152844003623157537133967813716543264183781744766559773174657242099161073361230207725510898021694895484623270302668590374079331649755800023492769062679799215931504089538740253338437461410950061698551433964348056841913503436790300851583073965166692835571209259648796962371021399870955813324516541674982186773086111610134934055881910275050066006140941793118572800713042151189866129990500801699900245765621129030571882836599460564483497764564143902962226473739490006070934862021040386146868189848121266132977236116783977979810246284572109834974789017950091316146596221767455892131154131728995821252266570973652091216165732197002252087436608774184539040808663646963457376192313910353721853757628457027371283867827028871716725513929826291431816591441488800516316189152415639214802475618206191354186282798710674521314302513468158199127989795384490500216723115214171244557428371258039597027339726256470370449618652527133868800481798681684965766605355271422021511213656076193558024083792220697783301235898286566269310132466902219208955783766024735643654996447736686579600501871645729577039252604989167538956257114487467491687566882868908479309051255869302579012687001334275916445050816046227006969592782301981224930010033358729740002840576882502524055702776922225148894784234180906051344307597857976286511052893728781600397659757727835739343663685395930245946048855772212283916971357270331979038602880579082250412832380104037136758119029810469903460009891416977933564173145532044855357824114195393958352573685967805740784063099232539693528190176230673750488959856677642937506156279110296840254389468886137599570354821413234559339495879418953910732653164510419614683686494961056666125784974987795314943905472963809086578770232854045514537636035284682483199036527310081931010785916668628291855643014008517433885127849151935626651751451486270567272532415220184368997678032401556292183197976775615777982660259411570058626598247913078594685760969032294257345600896375208045169846089464861409457838398382963650504272583450868920179576787120669030139855784234837356445563716674866105407026030638573069390692069427598949144767631417551186126274279299742195381571078074865852932235308804054401320982660564827431239198771234698597217158118127346512510499983044981163516591885424034489405482798042054264924766729762623804114814420832185408978893644146150253679222519796632957482542637973605806984288091945091720584736221365572017454821521204805995090427458141161437024882032313834651394127140126794150179810336043592787047003132015350894825438361713117632053141963494383551118402792859792125824517711806435570448085296965407505283184774140385667039734144212059813820994202930591225320089505533775239680831216829946757600021880223959613766867858173546782573622856401600758620215489592591569949331390534650757168384386291089758425837685570789665822131697652010902472766005016930154479178362128369225807538180871564350970434196658512745003596779177363827707671779714568431379766642188295020245680930894630223244040387053165983008889718962453521361111865534139714255245805876159516438551279692538296896482845300500708219949930621378749127386567825178474606021174160783378468896518815782261882616887392797133299462527766375394835748549334746176806210698174678875695887501829597345657598404112328712435129059851262907150214762581297039047684980024849133939014938649457284665215960800493201661738056278481398829610312097179277045937797177159583160944641909976504007044158873735955400371712165658482808184668736804060773579868852652802625414833389559272706467491713485066026782401594979434318934521959912552008809438579724017515363991357637763314822021065816284108558424163293729958823850228383423280657250424451920508973985797102781194131905285599955547060631873179868448670918340398397103110042496752877315599055607170960772190481135520797943438168586222741856125734382340874477464837659766269013134925270761333378853068082313889021460905249402069162004665757580821003737188817550412455723641519785098573228693298075411751593968604745211006407890650412490088154066097691703403642464539967299487786008039517394027164189306941638121592435750000625480496984744005610820695463976124193314355481154523002536889942213736576513216502259035574595363626933557529206942472536092919875759269911825021872172940447346223845255930438154569654790394333374880290108510869440778933696514413454297112960416328351264434210375428178019653416244727027867748835934177308835314791063798041805111380677320207719751207056307908385368563074991331195997878529716443802292996409673899371420157872703098476280165238715276748193847940126304148347916724304451879848060445566796773248334148374329265216392800622074958485334126846112520637897019381083028971711384945985871814943616952916733627065901846210762354838192326784924377453831125631783121984457338111304732150886775400218341712306795148314137576445348666092268051284512581842373251858869457445992367332525283373304792333293781414893704961420298880221764697787219563587578205286249661085696274744905996244083509907923331644098757606681649229177669198570175660444255214808921218474764897370427570806969712478011498472562172896742049157028581521627132598551986664029980305246803275189321639366739418903240381764173149880714944412716253377849121377309641610324289132984606878846996701898714245361790766652911502463120706960957612373602101462961224507084498019093269644322441288292049438215497669460689057238677545645751845789030526893764671556878346573343961305367902752079706116990618287710589288672229661050057917427136061853512482641370790503661950094446402097315141790637319896546003734527411810153079274393018348545751093358340999665100979381342815597378040816227252925014892421020909239730009961911774472744738074083943798859968018404249891009623392758861483870422219829773029072462780031257899517310028095769740000725276346453498502623366696968426506176419137690865798598729271812361663995266439783298486850016310738903863077835862220042205668926104245127090201028379997814087927560873118123554906331741010012436746381762334807579899916836645020770163771965026032362589292950273664295676118306120855593637670951156989886003295409917172517621083577812395692515602973811070162861225846655734648311457182099862263368522140719420755233814808010323087045381411561565639906013156677431080571202599807455976021668740298510219395734079594274426264487530860234067707835275073765425940821420359566018282298870049241488166215056434873744625521095292482412299530150677782533794929337800327594331534973104132443394252876314170343586885888765324425101740225657490014467515607432826838204433171294577880478636413272527954561909068211668163955037715070178621658667040698448762060254620805260575002991013319922056687058754249161783076337288332906143898315739307644061076681966931727374105469195617027819293830130759753146638780260674611637802104587539528851044926996263023996585505486606615051998359299694862935519435451244889374284896670294047904557457056736281454362746213592121712334994260169447855872302003412191375552178627956485988211186450788248850835524220163614678732593931634440774684327111854789124066506563298748080623495986657391709093727362644100973929340464673643759184015439579256453190505262414861523454631840985540784189989874459457355801851847833080196258887319837742827201883530117721892113946938396910376662198992407750627645765574429625953002159188371635654106916493470221651268946821231462410991339283581695923814490929349017716254701777160805069530642439306689216028968830278058791972463514805247969405016574240652765167239037247185929612490583996513233001801458518867061445433612283206235676960954434210084014149154480368644793121254549847112970528962229091440100246109149789315010967534904019132050994680547988567031019165170159865081599356822132698849806316129485772524256574478119130948043398630838935775317238345336208739622256716302164460439578653784297896909294603972082303912966364370421587012720908289703154670901736465343342252490423083339206194323770630755206200821022695410819392387812599853243668111505158725177421966044768212574491857914446759393368042341413944918175344294387337105515642571963008378871141957587491425136588710631541930116651904172761748125162556360301692108926756059453712932757166798773535267108637852605966698442132566509722015795879034699359413558375351822597002219753140535362166409258781374429960892459747510099911458272824409164188043845822262595415158243274115388278351431473601957740396144669466624511732146025955144065112642773832954798303760488391274160352821439367027597381674001953956810421495291745898910484740136476607058662734111268379458859184460196042641065851745011495021863711608696442273995532613206062796741148885421427165696617887767505409830741477852663476100897424064543658777234742494487646347133483378704649177755462969628752420239513860764951988451219329918055150574097637091696011745635391950719878553299683130249476478943578523632027280593523873143699607440788847641954651085142475391210816990681508708246065990806325348072433933667394483274884317283134749643354967796825427933883346651164409140910837072381034833944299032288260457378121607476771712745143025994467648627063736188889654023461986375934282676279849891938628800208801129800658036015908775786334760259229106822058041172865509309611668817026785506346859968348165184972120043916695885870963601394505542395403328583123533557074311642381070628204422781810435331204270384346798218718876666932876281958054873567549803371997011836002105050928186982259971610672045650221530608539817592665810192190401280471664126380513963745239143962674843005234167518133608002467539113203703339553952882634501218116779282511227860749375859381962516553695699952366225375711588941738122137337693619967299790231075127016846509524912267131309661678258849391598522815852172715460486762374945396263853758276448407330267032038324320693622932424276009287950507053509672827911194655848832768452472920457589438479793794583653839875829790246130202139604893363099134592001613620098756586707186203294759019651984953988217654917805141250752043799551576088520929992584590564051142290723607579012148187354084365018642192229826482583289110229280217219909385561015685788931091784976836472627153737083910569144808015004990027886509275593322230523783350347989971426490448320603302372611830991519360511793022482830297720964121110629579345874923805072350180617166635426203997284720137092969644270404321516745197992519668618396617597376193092498920480195068285658912036307477659973900379743164705168841370312865440102471290964999596616162648987132546797127818613457059844890669970654542796512753378990206352494147464364832221024026488332591697196392201914559607988141430620600478369638105791325902841092700570525291138762790357726235486026076066398208929086392325910231978108688460908025969487144660741613436719741789111275712177109684642221614093371288546560469313308560785411105050779160377314951762194058268297920544573513177138293447067135179319325622610424914641387462763787101357206605782788832649541702890618551023776001538548706014921754318400121362259751668701645370916018344037595282903915875489240716897568560139076843166866040124242973802266681639532220527082735381275387705788576452694042753326659666513015518334870511372350675811029410477493432324797484103255967265484204977472185884038440798542300031833964818288257409374270699894357945512123189574908473995804811413173948497108959113993574891596021814178287531312301012578620682820564592354882160596054459343151029824235609619594927415471502078661023069747288331481579981309665595041952154617740917377924683244536796763960124894517293201598863981623577144739347283669616955620113661209678345966811781270499464470280746501330790104036758753764363693983969842358636647807512538627791541387106040575484640484624883914504594918547741700158273048209381541652896853922163854372187553263150770663493852626519348036151737801914096958211575015963319747326043660097095422789063933097644202381495128281552036803896294741998660101803477423428853648909008920823388990706415232588992429081779101467382498967442184848188504531733726753634340368812255419966427566161774155308187636673045304924246320825438304335417214429554489070617661280093400620700951696086239515036549277112199536440049542115020991508634542045510812545598519575166975498620636988335640708737591805380339711823501320895892361131550140390980551054874164287278443502389024292823514471830244394412764107649044219603048073305459591929219585675551070111881759738629350033219733588713483515311911305367459190591661127043141135270400700670526589545907679249950557700288084342389278982702013836945047928267222058742419798787800673089931158061882045883089548190845111195641584762036548508692820415163043900805743622154343231060259964967464220881548104448993985621449468032226946317972522517483290926625817993890923357643387039953888834539417872623979352498904211217881511905948991296862799917749729426367863756076582034873399046662209377440979016378545725657436995008066285987472235937491021144400747639737023842938243827007349055307784352937035922447292440845664035522860659927782501332604413146161212652960610655007461789016851210023863450586762830988596431523686477034303465838564994529001775750811171554074915211962113427041651936409016545810656230467044752804480006270006805163283878686260135202228091565725792526735749319712308366009859278234853512446885822553238247934569347217468675589796702162138843391487259367906207058638142665656845786905604426388573913799744472222638501186081444833381898089150901183106206158991902526258369810750043054404104903576874057709071084027308071684666474379161508743988835341368176699750309011660663234841984088714388755706771378876936894373430561732282955334995808717283919677410211019430418867581414439574128342582532478129976781910616860562127025640979460930580831254929023491338229183576317799518690900251316114279095111485875720994811849918822167101416716494642485008012424389681994821657327402641019758827220541144288919783672817317442574936626126302857520646962181265342759691141693645180922669261977639705296539397492987943795181452127830445458568463181512042223536648128054193058418458601861349407615724583703666468832708577439490574888437344027538262731492450946267401735662654303755327630541835627309540183319816014712573441722653001575573155939760489118884502427619861273632465536932492656082206955527153867212862405154847160821793410061731907700725983890279461715088822105786411600190043063701444689623874656166166631184709535653701775708625486775508279700640581638061645919709086326803776699769119672008209277972521088963784124349602115766558483816179455664664431507842152904157664009975944276623345574403392826147920096461598663952948175251908639222793296995479250980191905782516828306364523435805133786429110067066693038889948301777832314583083774741355430442734381639754469137150748911307269064982870532250260958650873461611083877413401664324378525495332656043725147260074666732506598005683574597668437747680190310685383192560222107943499875367801690761289770040004798986209183379977943281652684163301141059292587790926505838527531413858386575678826399679134606945916279456447356070481755095723173711757027379076810240457750482845246829880605685763418735991276203087679185777861548891500850095050750292830186598136499148071720959394738266687484012823868047063090796284252061267251030212349540449963327668174275382099952483225612041623304711046122660503089547137783612917212399149964258551328845492024935034850245682049020268347330722877318443926959968377179929808354543962814377258346021558013331667868251526692301956788772362673047150226061554690094036424340241837182251680114563486964767977151489138532461637996516252968550834165150118470207930253830688056399315922836564608811023800545413789073206960321992123116729207842919062972419674311395535415709810539382805987538036380847026822315061390698290592715167241447058682162921782371595990147811150054077774911398254003811522449582763465596702373887995556681453895138944944352084838335903282236381366863913034215262154346360756179558451254734679393412664984670425162481429528947771256437405399692116282447388136813789587436606576981430637356498280519461655823980916898217484188069167586090146467384337766626596128588906315954633559519919671051244937465353403387085275757447017038040699877009686706959825688464625271221325952779536038125868381252617684299224219966100323434755554330125045375143798009733425403094608297234346000370507678755522200816454276004962223054440278736723831953973254654595352009059315011936156062116775662673639597182938605278379642392609933910902955432094492601557030368753347762731704148337281007873233778494258685318553250302346604403539492251462992490456426325173843536484324168859937617612360941520603278313940734453824056249396262635937811238336447789242337454245535357501027655669271742080183685825129219202012820608138781075231958132010492885680847986072208833785940356514368762846846831676864487410366436577343047849153164704716187250813899440227461486964362755420868186302304207146946583727042916648077265604286288926077357994349943479419023138485320574367291929610627448589063078109597217679448244162723464055844222775764558716890793795668526776120050917021252725653554378645132350609079059146152879423128152172647351501736123807783623610212568417227407503954517854768282539118284989120734633587896989425769299363765441445303453014167401450742088405130881332989955565305026998027688003165926829939141167744990245899229722550952112249592902586392678219089278985003957292444866339373436471346552443127188344628702242308144539815796982917545630334813791854583003292210266846299155316757617277439836983411757117828659469503544744808997840780039790009001461202668059994273864064841507680532472482601439770468091406552418605121309871231035035866246889097803126111025363036998042343218720355410007955093784868835552951907978362768142037996804272736986457989591602336087140532255367258503377607277258923153267105813994075729694099376193622766225767254710724612273904352342085283393613616053137416748618721001314976769025761609044515683601951227061702371349229076646914850062120745948112638979209103216405935181834741571966591939934864088963887658097499405770906588536516525957148891090237014879185050526374311339528163741704006066689251625270681744312862687223167851022726925348645053936256033666661886051948440279411133728983153522091863176633721673538355732741437279811599591778534113740027949987563374007892094305281879191967938594649133807470940766181965435456420419199859957321549835730630874428624237355025858625215311816817418327007061800615344925749948383120398219009593878183059049118430886140104577860190006786406113705266396114767793426847639894337848839678788504223575186675709277370140643967604800481508715956607693498045113894586629893487887338158534970560959529241870443704294380607413358752200693919751168875739034873601821105327831355820537013807699493794198352707549150755504835320150831251754106051355129550625626085919982115126179473449995241576112602879242627659618022399171804705042315006630457053008704719685842266853295494378963559725627320570936800307347504151902830624374229263922074873838549748975614806761458613115420676599017319391029422455822917089376356719068784524300695121455604844186845219918544728118173268397428980051788855757517490246725877862555105740855648351183931607078160530198479299402369667396881360934487131631945533051573044381938444903020740343851377105001619963108090695966783258642333526790410433945159085596761669448276218207424329324480549588111520802371630731330620432992882850525583423484732872559020720075646919882105998412839869327904683726790138565609474125281034331550849498503478432360460121348009084358504110675787116381697117919146552955646851902132798285439228919406337084248957654442377325537887112022269859727146970396517755924253092678728043062993226027250751423427942538782366817100019389124822595115972355771028045653540846990805490456341062983803811256654314979031293901007789959698552994375801891556659092685822747588997889086814431993201097451798886906041216146574450886653515325513701788310935587029129808403875632687953691615271929260163019879643635457356311766783674579402457562378946951280578345468600790595135789879695868860014340323854045973987804094375138704810539507940022182687041317343862783491751004996099656042115930355213736902108373048608172016020796748344860507934834723573915104767868103167686363094839695688258074990828364032168911874198358272421476075871293706426332735748742232831842336101929860230212400410619123722239259989630456361597820426539273555181370642260125938770961771241033843258115336524052295026745164183197495260845292832753110535569855672098470740767321673852760849098577693020474196458773668513550714934324357693304544198032998000379175628521468031903831901046445427244089609393585619237168118783059629110974612031148587186809230231461348892763761569156820071248869008087204074705286759262669628710762269254202301659054520785826482433761838247096672599659724744815614878625551936139856514950011918194910667211930214564110427596456545311750195573944142793024821278592585387582779224033547014501656676327439390544326021683264709311286889651814191232089364681844960624380750188166616538214713869590648149344695662987809266512790358827369752255992771328527320142017097541184521785902667683833142051977782093431928141299080274381929133187772156470998026064185150060077087703748428393410682716576714035761330747148445599038199768697578213578228653216177367681787062327151800611249187872082764786006093065331800557564395909492788679318103016102446913224719209833036041957470598990318700453506065056999508349422854968307213591151286808444652677870193634355270720973824913965784620485542868816829591262254282924101118192463188765884226141191131583027748358453385544962775109153085741571477250277483410968051331727712734927816768783402006233295542979231247705653521542897130300003397516619901485403381184244454590205462169917150938285005177159575335723860411956438539163635530602684684961824042455204676698831211906619567955209512668507762841737790453144349733231236650650260956696724165882817239336520066626439999345753354028260583757036203789200865086931051505046718515123758841476728323901477978591600369718760095052167419031004259198455619533802564441924907581927815885218992766600183029192420057799159436469740647468949638964220230681285845171487915513696342769959059701194352926946495779090707200051022934354909119141967891166698088528636002804731557927874706000839051570208876579823758756364837105944944057865905007547018416468188921208785920123890811732184616599709634687483442977252809831615340787417700641020186935130307897698765857565661240682464919648613567791718098077728424662589397821733548215944851290806730638588911517211776984643993014605266693020914399869484966337310239577981290435746771838985134687231634188337843469916631488913958154228211101994080053558451264372588067402112461307363487024849496716639139488034323904832739248177616579348848374019153594540760754367760440000476393458429354819365679445526771854061783914872225767356656170758909416896557420877295832720472373192473326572438255558284117325503570519504191930375328052816741784420565271529026298196115110284142167148576542367042265420011346441173900263599898668664095328395059642429114766914544428895783417338525872245049812277020495905233617760475727098443820695913391409298108212200410348486523284371761575825117080648405709545776316551444379162439705997939173452990837020038879162535820611222620673677742739067996216229844942054223540847702939659434270956439483534444406015422967507975599312563992686771124874804797554077414939127349792470717977940319537591273565602246201510489510329591659561509025221537664025482923345719694161933344420858518379891732103133881570071171466368828260762243357088610770172178555999341931603694522919499253663211956994179715500083231277435759289241945145174900742254672784199493236225346471885385498032559196057265706135256283878864238553816392293266562074503954051111390267404882786984172829554729879040792851881646409366404331513602342349144437126168625747165727376787241652034829659928750366100958633546257490513458566490533109534746828841639158056833298332682635844073371721627710457821360124073268301117386016862046019034664768615183909179608405783996357431649761322866831844644239200974190415823779608869100899503887489700646255531167308383860524814941939079366874322397703323092480778727335874562962494128492065298630176786760140409402068992494937872567523144890525046538832902409939140268682493044485716467948035667395079325559760870949191111953035448194216504960180182145347783858040103756232675318527485561172651462158703347299080774192128075957749247970090938146047756507090183583977788118451062785344262289355340145416910465697594790899805991102322713443833368508446571598027174955316918620413618875157305492642245835840193554264609584236710878065641657003493103678985155273983035797035358290481589491609796320393886531089861452772872857568708856406506874150923585889486937674131357156630047243667301457737874779888857807300732726451336056623362462001728776913613402045101324753930608982180401382878706308337555647455582494258747116566497242928075446571809289927189141000376603039905920820847014251471385353833099735956470642182666443108088072319566740699013904321483577843712668254137488398045838935691940618584020293746667798317612419954165686477793994176450971489264534345340513192650574737751331959320464908531187045674480552656293294285842042372165888990456185821640405297609508155949651042470889624741041765444305110812448943382261179364536969083913318866744149647042759708061799823316996936599069625885437707282948244608516280625641848774127879979996952938553357313569024225690999779597587129575131918224222659821372524717705531590489171419725499555972071560073474152325866249924245535959118850877573791708278551169785302261095106736375201184373697657247170978604641962576268567620752540290108558464786985821816667121746924467927520789471960658846258593479907357258132704183187578047168638399148770207954763034313179367626782864078975201651470526388071974100483674562301100153607053788034069239205037491775953017304077627391121096802364223960127775901026431871347904508537483374035769718632262944032037962085717093298756401740899996495847331302353590027097701879063329199090267595282516671456128261690410674394332161883375892653284782646455660275322492525341546949183783560744217909935603973808903187264395288918869192154868957662724563196815261160172443791308841831168618168610870317967983114312653796633506032366343521880699733178308158546665077359042719902220191254880592930944149973532115123253175032183757572534104135631945579479979715625711538671060347480788392629195321417018176343951593654513448477187101559310761812993466503747271111455975377683152852390630081113902342040325846413847719457799860621119913436232098403567572947567718754582180751078787061773351569625386144474832442151514946202234260585001091297973859818017324099526346335721438775331958127876263945436807186925617894648546273560346651274918604485869681947115641484008639733537284297726397309028393372860517823066434114141278731814391447658162230838745902234010503394248504850018460191958964905447635221121948181706340116933860599021582273147185606945536800711658806823673085824898262994386322915343130264675215775843207227897316505944680429492013221245467606923371173534537300491791138213996342670582403268996467088410197345106260202571139762154093785182321799186149214040513937100182862699535796721881241784970469708812717898717101823578445152163818020503729834596103077221958383532041054723302546952060940434869848673710489995136620604651684637229048737582473431869045171979286250752241388528881823551675985224618805749388568634500749768707743555859347184689845219897972470260936616540609733027470268238191858749338283949984234380527885598193838710013695790456418833509940043600842376707128058370847991572829470237305493138183369828222077414079116359244071964066708046797565476069276089476529810078756351790493266900689272668980525920617294895699616318528631220773361613182128988529240916883956117180460756321358684209935208855983434539718508849942671698530632011918203110933434364238594363753564008346954616217099981324492656908437729403034610853209649732688858156207402944060333078020659969487670641320583981232986710803747609595539354378748353932052087820820402615671172932427522723185727404226285342223091939432677743113175999089089683366121899462081576778263670652532767432669970445060516664264684634731100772704424103336225553534205234048665177754323016157307718959143948070562675671612953305536538243270526259711375334052545113481397756144459944946060946409614177623646591870633289815018516072435047884997354547882923918519116293730228515939951738774358928239489857771458490211847980019895923494806631149548135921365230285010651914829387534508660155859419693082624904219037350580216956927390693677628859370401129306825778660018887752881683023187784803767981577282436294085438662061255686662482317619616956041625174447412168791309264546197186807921309497746666066989023565825560022435031173000225103988433465421240181353283999308412850065999249091620633940195504951291572205094846214486324959010679645225317986233952552493367955559034943369824633369805466052547170531586660889768429536144331804422377743209280860878970038754023841502497845810121975223388006350403124800185908335745027581243880029489412187837150759551789876968828555298163486190714558048790111468546431253864926966277970908576436052217838204934416333699914410320598375464281683796277595981845342882216537891079346711136615422527604757619191339933272938817218735651164590648301466516192283036619594022255153010912285628235368251764305456763715040868767560891404314600761994882720691131549914532490276649765259406353932945092921731649942977885042948185471170575531919979151990345649797312484157127745955037241003285216567316296464220721133638553525581668624195248035312502664214542176703668393922431609402760866052638531381277401415942201835616368993097676805051260141333446320680827403081525893584901686102883666113527763265847669694327919554896131980815564150725160788112646158257849140511559024830711179969400260258374377108423349620871122905370199974897552934792778253848158674821358835219721646604877685011691870566190864075985699350807262791147031347234051856357371391218684559991216177496657634894131522079081051127860974823171183447841635120115998181461637971694074242625899441229463489306022309936477803444240571285888903684026475668709386167120771551561186762252189675517712456435815008882257868084412718013038146589856679190923604320704265605676557721762118930557475489391032234112848101274589155487861883369999701117322507982600696654561932296670409238214852170762481328215117936025443601457759604583700068745919404316698288589721322609811824423933415242062969254377060658182687033878984188330768907198216806393223140322145984898393364166269040473511333413858096646172890051026599283841736450391069423578682879580264960821098633109305447644459291305317063466971628810367366069830504328088727858121707977142293699053116922809184469565745577322431920188595175598751370557992529826190263074014812514257204941142976632950478692345677328274960939243204328428786251075400031861824400351181477739349227607504001754739407644857385356159332714167554610553847509378547921824617504653601207649173542563508273775573638794198617061631639858156227555092022865746422087584563655634576779016535998382625712126739421527328728500687854145406716153060409384488263936186939611383400706204880556819462235644247920361654153966225773983421986530498980130079072621011945045469080595821303755482033638722824765124324197968211507623845266825768298349873196881363301696960900886483337058885879974204921257944245603179763508738856289599211954087647482718794670631851408429567880644194163702065286132022839178644939140346916643889120938224373144342654129602128204206093551407465195301330230256008039118005313856894773488663830327500423833597356827167907317693270976904822727392642745503752348091355628783900264449802809921197147590698096347115209187506967744197868955747161118304395720662555397506266925035817782560132242380428556351273678129712135140093704374485854933121881652977538065856960422010783451884988401720571903728930423514467707872639285006280004287127844522844576523212280284300550281507710562682748711414498922861239383696120620217699488064979619193075673187047530076076738167612712919627604041410110182095657642091755739666636226123529491301449697512553051059854971864161004659737705517020269930353669912235088613329942159831366986106439239902156661679268411361203870628891996481372806696411612881569006385364153359634386878212075757624111158738041478108884596757221017056019039548253023093503914920449335816499429771637009853249664381395116466726239380132112893376131902853506417181197948919017181261057209456708678614010187032217648969869466569390886062321209507221470867978223442048474317083130153197170845038926451910286568184269335784611022841509124704064311789815471255740465609644664373223358586219258280015039682794570714876297533101754398895656674618045621299242597881196692181663307168892904000194599258188649310888421338021373003864954611739073259577098830897648800970201482773100337617964968014217337054337187232302277667175682069934140121797380623096348140234853700846403261702115435414158614416480103507624859880021381958820234217249154790290729688204074747836484641809656736159849327291101399908252097863083968436597165992624922077453031885773502541282207587081045908193902266425970492145574258860377033666937168412484288049722875126959107687244001834086705463319661926952616463493726486465228529370648536221289083924568306667309027137939576224635326195217143294340494879267352076517316805668146669590342033210843049768851946305540548433813083713846063156166298205498845918733558064475922400039060712523403899821200284585715789935932248636419611470014758724741715921634623464517702689188519820513024891332898015506752446914884004369719378065983859511445634541453652264129979509197683306171271147826335386806983294413165077256037579144020704662132683118526995393233543423915878635415768307793246708781379059417105452427140096865372890539997481572728663662946142660797656573842700925661051614763833131765063305740966257882961989821589375067899897275775317389247962596627206022532123391433890616162746724347821887421849317903434993905810135897650727491589127082567394053959308760343038890016420184996510894523883586785714159458704501326945908707224983798534122285937394234227079629343102283575527585679411286720215106043270128870596181613465606461236120418528814712926011020997839620377191366893236241362769230280550635477827655877035344513729822118621972026826905147582386936902788715449846939117493978116185527794206535897277572147470873777330971951966990308075456251709128603622771637188975474943384226023806323582214684328797624937160746066821897449560792373947540299275077630310819942484550069066242338010781498524587963153773243112847113708692889270733817365998786933072363491010368567563621507014490249196719194150644544606902107439261526223183705706276254669188316068679371946764812047613675760887000053678110313124026458455682387331269691552220967814400708803379968339529981500174696455928368716307578547245765482670775864063030915653551478159570220588211072138181109438912560236746772694325512893322804966790246927572879210015892482935085003414726862254808739070235202338166269044170851288531346955515333345004360103967885976673147963428194645398763855242554471015973646375287946959487850530092945875819434195899423598979944825288469068628070176243120270484483232252587546777928581228906314914645235633862177758532865499644413838731309479462945264128784019151707731363561112758451083452510873059813691134607758146363671525375402071228799602061940914886501437441636045972591554804583474159512535358194627348417882534289980041470084250955255215007215260044637263188252459632435188319338718338465507526961878415629250037447132678982682923076235699802577029264529866473963851551658350581446679687264975701079813251574227164277810988333970716190460372827127919695925965141326606570530100921553190476068192835616249098024444246838450668404580909265502251917438697294020389939363764176931892903270910791011360403344729251727053330337049166476850625715678639342826193607329136048839472604171557173395656369068677785547207875693789926818092166367046549366027540623208668391491401110856387748639592965179828723155838874552814986630031067914068490871061113280595713836681807082015390768719201770213628250962107094824768493371358760899432079751968874245583972878378873156944542883957550987079203243890912038024098865499009261281466353303011268450465119972967952173876677530735497306234557606891083614176354202982322858821859354847702679148516970893254266613178767087359350071341891383583310530522913447571842268707677587811982950166847560625056456010327431249201037628562093864580698023126217203876322017555467430076216954545641538757808177966411389126401053817367005327430580037357767683225630728806487375566368856221147404108207355853916521646563648514770950180158862332991739726563381006565551256799212659164409599961466308175299733154725853662323134778405653222987503068737014280551679377717754357833015629068785706594962917344788061543278374131614983896186855438958627204694301925190661568107144965403601388820965499742367691007599745044836077507233659730245565699832840901410272620644691278568119329676868207312707571859297067172853837793342735977000022759290420453698052479033540495105539495957926330516455355624516966238493327338099213907972339952446012263946679836647714482279347738566648162907290495179663629666814484709945323099152308422432319799531792966627541240044336409717121005199016795164538937767528277983517436786396320151578236429173779820610454361054353887537560865732512367146066135719315827866624298311048987427436543468539891333698688916032426168760824007075668960225855994811676341390984792437395016024305224366473551540917096531850190821254630934207009120205734678360504252204355005503592504562107119390660892756878977798162005165142629533262292847904398314740675754745137150081700437866427759133724394244634642168520318473843941047290198789823135016790045079852810107280815823297534548240964949914266952438828285175403542126029469078533843591478342866140573757616003219713310714963203278328340541782770189737142901052134198601130044185427431851783313497168578596799474150254591145015507394639885804985955416417829895171881848564675174843575200237675473062068271401721268751185401561066390212928878555027062245940090116763332699545996210288878317457124749861223497826669826550447318962579773819069557495642178886415485429133032273322422493233326035368952063283031648633386121432648603111239743627224739858509135314851349030314352161937081708349754834057620565104394778333512301552809873569334996285513400986182901488817251759862191537809610989970738027646174343114815799299977884633104925424665223109051834572600651694546070205892320338955602090044333616911662085745697792518032583894850937074509173387917496788695136067619942875444335548152866749796508209508196338563316779981459681184690256995961008953432136792206530035506558667042397825922772298683280208343541456035024173242255263293309703390942750029898877770452490903248163916978234045182989903619789209967508458122221032648147475934909594584083532686594963510282161581432020404066922749927459027616713766406947577225176888945666021704496047690679590024085153314065591913650338575645590730311226330318116429746169230975209572091577452349852739932641931403823906883840288870005483151950071142254691633658008933051925188451236684650294851573698387705781720933920846161897547282145622001814554513744769186425965031226237086842858118882756571582878777197161908412623968453530183033798778302992832482440935649521786023880033914471896420037662121373441639448064603645823296311606841693734053298492127735534372109670390640473678636084882250580447994321717305358112747170084233640988339656137146931382969746450800151037331672715960750837111385393083061954766931734129666638918817284601243738286781844004192401017284266590462926077092080856973338481683941554940277086697458851313463737835376910319708116940749290328947388349585282439034772279325589234929840019401653507330278109174865870707545662071395614016971699569422073994238195156222957850053900031819588561078766837846614206754804368696879475288075284755008943371068642727260008742751676436839819461147649100316310313374562391671091339498430043511265863705806070356061886415835545864684537680398196164332380547608439815749133899548437790349111748564374927382567944963389198400464867146125029574904439692614239707140388511900901058711012063307511365472302317093142467238874395928901569942790655814264381772361277270425066863689844812179762889065149943466098419372982393229840190386322491251712126391305873624591612464467108917049321198977495502540539084604850767307266571161252054123084377863635672381118275017299457110431125685585794135378671898981957256392452199333025262882531602790254998569235221018370258754473314383809930809867986628218059247310900913049431318162519228745480664775609743614554772855000129003526461368886679125815568627701291320747569132348060587157649006655181865899323983451429432879841347189947783980318199773378526351117065705499223303444813038801616504317098419282855047244979352381747378763394578813292500525139201479379144609392611360076106653579848169602059154085931399370870636842573533507129010740550045264899834207633431344656107569034051204928373921150085181663868178466210190174531224503456172363856425358805404075499508944237358460580838180206074965769894067667294206790796101564050472885392752239745201830371021568020715322467535518953822520245279460036654432606990884138693291116731417642117510545401949220804280685875605548866329410547801410193816888885868461465410425430863309698027405626721592921098713452485051461105898711915838383313185517846342452685231774474207184574597040197185479842543467946167123037081633833551455720536271211016580959726895882970036208524007081560761511295394920406146811987840382139115945574913371298594522496491386623372510604414825436468515561378825076249262839264292303480928907369877332010137359988281666334724140886162663901979886962506277389370054306124939746728112916698025725616496410312301930391831555740411077430009825595816045168445801619875718068437994786521448201794702134740391930953388756980315417058500664913364857901318534690300356964916040281310468307361639839718644578792210401783935222530914004669180255798850878352607016461002442059856341550074335113730683784589540728291187347922555506051169758909221883298731205509963606984998459169060274406924777936668112325878462270899662339954278187354532888841560200848177584916182010007581130764134037332013397961792748417548187056791842386016867081546200877835677047197067485980523646414009066568670112274196663547406627217168214538026850265934393683264369890661055704025607333263741090073986799538483425607018110037417027576934226757029213573741321770607349125545298747970459650328677943992329220480508309831690803611351866683881213784898888986416792357751124746242898991396249680833912223356523265937478065404715771503410195299829467176136446835095873186358768461841397996217730356952629734770511844948521015134318481085644998466121715725130097523822095348047547562797732992872330723561656107497456506628492741237794796384173058963518408123872034179538353079243095694383785443178880630350303221815715841551268787837083862137874560518840419152535765477166000285951217163598458208604038273410398738803210879427852988275254938323107055616256852807881281808602297406879004761685915195216060081383856002893896644573492394819250240825723743596444320740789706041983705907577160735543257368832884873811089880789730079083248390993017220918726273651355793552868545854543476399169840764960616794445284512707319147670930687839523456631264982729821549888588044343204692331108068163156006723366269432563354499910546634801414936680558173484530487246980760326602392838337280601083282002504283192890124595163380284204470673258229090950664399756251964963754714626339233750623403619119335826066143996763498877307266918711938250674680283251384830321013251234904452588803747656120152955938391281027659609591625764160133935476037831833217350648666729232179892894616129405238109194516064817000918721898468944593031144819577919175939593128844116754020691031300147545366747871457707658443726988901961865792524995891026061619265285294195309595966671628253450950038796225419256197793092766280062627910982533200077988955410965012685810149795458241297539952893037223421073951277999030581481359390129645556673245861134770169970525851837933885234640233488603665173804456988442573546535975114496744579127207311198427375036401818019447764175959902093814738200476995684582121165963248542824788350043732155799676210039302710575918611742924206151524648464110545949340517342335166071520172671608982586941910538273981603124030622015561203567146285638030500694261326584271571760477235934580044823931872854587347541507221632262631372843189498912237375962691678980343458486403709459877945007623708707734991271224919567993078860858362485378204721241629776463694323747998614629917676025682320794582641686839429096339369864589335390625036980515409956167038061034099359932696934282183382444988263408631999647353497466744461273279097484922519213915825851887679486726705319930020663326599538438633172302247772529964246669705717868586246019409874995915668768023111418249832107458947839615456785544495869822223974868269360337265590328635621768634281760707322819251887915600584718174574769453388914252720387268892859772006813523320312174348984345318405720889045377747497594311499070171184800270536318539180205576034244545512572376219864882036304778881046178452031128029888124737171002674820689519336842052324673092581072819616112001745307395499512033402247924899780967229600635029827515385883998634048901917709708154290515572239990909952424685829632498012229715345667572357506002607849705448621059094545759989722882512472347158397400830380936553095894799811041109313055644537610914215939510929714268644690486683790344038439943890929741598656883405472668132205904159608243683273310164501714074825881051772076217160843182818619764805499264746456968596300273052838528371917414539789647520032758067620088625532892083176357349427109803907290812226684078089698151170363320340403333410087282185871203631892868966280256387034039858602626136456490107949643749985250957843876522363798202356455739051884831723143501660320859152666644347872456545483634435952424152922841344698923248015686012101449574535601005152814319472397376790588912205337179554811036714428010243824116936882350128862929368221270433957418214844011531057318548825661525639074036896331275020586280056972870635881538330954214974705105607365601441605416632875908766679527212544358757425626952715718486442827213761224728002891313677507865423003845886245998473497513196656993580022579325946824000644722061361408554648994961021462954199708636238849807721843970754083263001178523666261189695083931460018293510387629066646170678522644821023314044456560080000750577931810583491974604853283859189539689921612362784730488342576846847009308537508065558927692338566827146212066500267017888668634343293991716923591725236765054227679356286627039479618899303129916852674614974811681018112972925538481781647110866724164025775948162713964792483975250120813220809575254293997613728231100571303602516411484362576851293217586143949976110372332816676785823286075829737113411277356579478922683653028978543413506183686249341672814992547553058553922321373369936350522443266311124895707568381377711668386642200113687203256521335796032910261627323430226112799239494161152418036854031035257910389916630263943119566867379999113152832154524045755345326201766757213878910794783502665408994271706824913671865453875953971640936095349141291478720793288351473134414340713946328184563886803427263651670226984818920440278936785319983034420192400233256814789314333371482011448410964504080077436512928672590995692379215018649945088536812741178675554210373903526384377945290405640622796189609037108333527897308951437133134861972298667883583466899220359260884970037958841424730662142781484404640276167293181258410721768425774778940096429599908454051107139485651436184072304780472847768053791200049836589200443749797083678105481821145764086996489687412154199117086868274594500263371787616323683682736256384907215255631355353629049519543424849960055331504155803939902608436147677271765198217790478556429116278896568900740291126124433270911985576541637809192505032673245630931601123982674154936941822098904231983783123719775731482960430244508111258105225813554259073186541453523471363627838802029069923277412761733882464345365568646817963224069482817367216758643221320156331662941990796855478635571514970125465290646258430165532611350188318293174524257595380792651301991036507219779516671219676164102634382834743795888147080882283244062409779024011609629284123216041959653019881799157377691866661996471003909978062340389890758398543693048654326298048747601750931264801560244253719422745291998185434061638475367211890949910123952199280544298942669681170738168436732587862427766705176278065828637231779502530978896201955673976341758488304169834692428315742096038759161997236169627058194859425247420682714858931286772873409347115369174975515339196592947839782206958417800313791902960660588527618364189926516770982066173633393248187862722216032836746420771561883547297048345588003349723699307340714818807568326794983614663013440039186112256696438498895103934181117023198056497294049587166752776635644999366021068211789280773268821785143829386394267747162068494482616992998316068656636021099287574909864900165492265804063207706075450854427937380580219971771861252798380294363943905577837977710480835790200353723086733746368939346209193044467799306523409551494302205837478235233050778894595862396052166479664516717560050799122011102270539564363445718189809810926090242422193732524431798665270073517160775706682017397821389765308642093380273709851238069778967941237417505521067998394830203458948296517878830969496357908559872032481056109149248829442981783146349089661461650864885487595239412228787976668739667327080751705204295513716654989415088479954922677418657808862277300335981970100837926533951592785346276304142389573494797839844723410215561447564367222477332667004604230419982746657353907789614783399373512137715070318917089360397552687092130576606251415013864470390563998451679768403566809103516810326759819700237975250447049038110211519571846691342664132483720240676265612849174897307472907988079215239633313710327904477474465373934596964738561597232813598361713831482862059300304227542481365074714537147717485193530949092454233813628419118554014751691713884560087704307658523361410548808325335193700033742432413204299500379251104214467993478466947710414247005803509322727444334960456832233877747826459997754861450846639420101946206424789020983296474936938420309605867856355011072739738726499524085416758491708532879139650157497871891496487970128629461502564543814458566306758448929426542796882645051591875302519583239258955776235769195606350244026640389535067213272821019031733636985557446065118872796361051819933840535414623041454052057837247338508158478599890542808432420538336460771011094510155582373084562199845060839412955084132423003443839410153833158190693508016951560573712232653283588308061152894881908274384891453724025831445356901581073403248180508645905274228165567757036917210936751287283488986728805586651705646174205199465847884326255615233132570640657758674453589411048971306018435886962495133094436726641453907318160543013048311374687026354796155911940222368528736067087528450731335349356501287983122203465200949282879929748834805979621598208846522447317658189808446304087657760659187357917777891927937017167067810725154268276348565075700244240506861224410402659244855447467409778482178440711200196118966648839550018530920371103178988144818538483003970979340496886589317832789689277184416052188227238210873666064637237033660799691321895021799704735873098100160069810120011195973676499326578800549769745540320778820900003326227001773303318213701120626336958735380684763574285368109703627882752786619585421329980062728882987631282604887523282866846930058139088756509271563185116063769457920634732386159911515014094056049939154729222534230082385352117766507707150278226156022295209122901236653484659888723163268305952109451735141465988824632058436097334627006785885189541761462640004067598048329540151469551931010240073495964168384318368809424150286026177701069437554789288540793544791932086821502512105785518630266235899074608152589235119298536188471856205620005690391345209180346033543099136597668541541116990187534803915720940043225508911211490053984361663860012420790064140008910620614045007555961168692694880805345325390221558648695549402182869786302030795777197994926638560435142975507715019146453379322513112739125901554556338489601088413416854125245673800259174796487541351220106640990563619919503577289194996058428662064578925269351654359264850827349455717941759792130554612139017083704638589062650955580846490960147287919700120798695234256896019949665729078924289558250121651117070567971461491243552071200569910126239858535304549810802920338748264376071111861574886250615541920587617945327114214808539385502097701851715644502975681107986723330297512312086056846579373308565065923884275125304732512108200877508194887519434261390969425359962396508927803116274694382570781255760220070826341391335066319991294157844163178497245935919794125102936084786159172161644387264867197029775552711354239655684076687745131275906958002687271198156872306420435125239476214883796259840541975249547292147321300776062649421257042580009661247905937020571122510975038861556223236003097131581908198820399471409212139308702045624221611097687851313615616450212382560235963371881040613225142217042741755040535185807280806775890243122761908113951656889288017259410526273186691884735057799315553573981136689151189466485114980400422642682846981246005972906391073496441788537490362376109582006126384051612405991656828112935280714115416655723257240347856897552769341012448888984641402033329783131781951523190694702145074040647348771320385922680205641717410660427388068138091161784740168862561582465588102958239617563657677170370125561277740736987837547853248269226996968879626983272325576821053736494892450793164358651144840455430801798145828908158653457971038604603022558164941619699394820654416853857928111481900864960225601929846957679845803183840712971820156650843837259028583380016244612718387381296839345147781321656353624612364005647602765261941487099946978953653931760068914610049273983535552148070051240807360148950181564619536979252994499767591070706582986624310817466167372125302209268507577405251895124264317395298360922615987091357884733879061358988108526197374714713876477830965985514729212171732787103232512751212719549416469212911491413153656130868905325423964921625606946445594162101757423482226337281653339196115752481639266588289673739957656479870573436531936180925315686343478951903222956289892618366316622533637969927537208553560518271906728350208688170077212375576379353897222704832955595422822811272716571708771551928357242248063267171863450855701082881185415391441403536437399558442780785630168313858572624145660697067113200137349016169633741352244659704630152792647350154074701020758673126561826626628897854255414192630465409123036551820210518233993016201835370254450017057677344890858225187591650461900924563510450287853552444520023614594013041546394486241142085967846267053826823536871197474409232686898579501197037992240110952766997358449365890060350651512444774485554497872869160618629494400583347873867221686619299410502397404598793975017478224076051531381643358803645452044779293074324247977358427347234925209368194696398471836014265615948726295527249971454370640877246151950115548766353574201522106287561553169500929604960163432977887116603680439986853486856828271193884504887608040041030243812744903484562018747595188339189659058637796808822470045093082474724382360427767101571793060962673698394247787564422536791755946149509687180548679649215192102146108738034708221467903493511544356967859992169279629357484768877473550438202802692399310243789262945403898521931140356168551076629658028614562838695797642294123174991688380855924926875815944387742574709967786593911161948125507744455718905941849951139579447603366898787033170142194933420585113974886014876272563384113197088559943997064407124123806447853462678827992010833228534371991522452257222567441192775592615646220737538927401296003107155662745500859660153024562905440803048050508605482360329361208390654216439715129535627510784002912364335551445944094563294109345891164766177191604523790980479392553252815129882532156989741018265996013675303857734727233053350460502105415514943477139262569153714658822749198995586957816240503677970584906202285938923092053790025854422945514077564177404059895127711606728530078149686484922252938348130198270909732660699142074538129262517475767572651793806062323928350980555017866179532901313751148640498192389312550351475286206104065831786954283613281562297294914801021619383107474230829961945454344829195856009135719449505655845856116889397983055711715682787146982907643304436258712956898046959168495454822312551901817874990792132383543123405801802205564892866556426821604209841349653928907509970453253840281414898979019250695862786383926696078261827506639333657004436159726678207038733840743620763128136827994227459626003670562268534732419357414130381218263585250735131423076879785683023634079151025768545193324731468492049533699469858485764237188330353741999479838646252247234795673293139730994756428686428708962322085036274668452309936628296701873054316785038566777446663278009482394968095226328370299798962569158778978068785880288694628150967071118354619780927912401281701428172749753272070684274393340007351736099808738690238316741068400689399958684511696918252813497300117576356210963795000674765787645736967155771465891683802976071492930639201343400510916064752354875452516328843189466770065822765441562294761259968979277765239798260623910968211252639549721624791944339743994943631160395289292720574030596102523479097643679373271732657181137133458499574012231300328122406950992836256999923140734822376992806122075356593631373772548666291440065847636879826019633814673221812893688564700514545812484876193232508344151663616758901289486536901964240037956732905013448817413543498834493598459662618340952826971779148497050294137225881935298643227202066335474030024431364347452099228148402833565017441684352580935353164507335016315717875368573729430380124249118627504814884972330806335236751582752842654182916430082753326211472007463196133642466780636103744137848438495703446228979545116493269151403975383984531400532142036029081129218681509101091177533505622825350280361856330078974935860988665605182948469234012452483555252981207685890420879564297540085816924146326572539602176096770867841447141453686657091432004975400828486479695307988028183877156300722138818608347252095279777260490211270262224787003095147701249918010333618827354050932457178880278131322622757600416331268577214377665949168921065350576417668904372857169041198077055307025931656762038238052637624569686948290406670688860652245580420884483088245504392595604997078988920828179377874780585199325705364704394684458141326342425713847367805245532070827406414550932504280986154359716957627167383512899617257350410207998913588168544455522670411297558685928390016668440675908152350775718931746983385355260930123919282151147774375490590408576275591147106998674108447221075071615794296545121292179624525516529216021490347749580698157128146276511967858718603246152122351542404489371517110732061141340148537161204318526873647643838507024434740819051031008100554250483967227023619976498890206329593379886108569805975930966359823450283526182913763711938824161623452447505081186081383524147709689369011170267090509189907952749610965754293630438517437226880015701930564591797015189887676318694824176139908588970979091568259466566942417075745591517464192823273751956762442801862335260325574832942585318204851872137513608499132912596807239579293893915436827786358750480304984532958225611127355687378922250492350050202521984805486446858337983204392353152916065405447488283183636781370802500220671579293786431139800340192478841928131341767081582915458474535576488734407591790804707082230762922971918162995395157927016786318711251123006521460341389278170978413659362284445787388586208554891626444652233580428447097560931801481958829606176316205919197274484844348980750364662693319598296487266219821822282270172673858918338126886847920881038300783820723536066722129920706598150917887344224297462017752090570440737164216167204566990649154108954067558950069504349872491010217157599756602518565205462218704639612538226604143390547170837829324011144509489211468636671340284446470451899131977546673253945469834739303813186356054017073502571429266922640664381632124341684665214303333357878211416376505175228096972338553858403143008474696504520623351093345236810012212251987619242638648690855785690363415620523231992440553876469721700750704999608209801758360593876918981979859968614602824170081736057350474543008191287687141557450542028448265246549497213688165341778952311575893069973703099828384164096861203121911501677957105168787461067555979998654930866420232007439134867248451782106883700423043740467873981347874168366271239414038466158667424845273862144954397671923247058220431770191334395437106005492571817489141860541881470378701857717257687006387891326968161832400741114581392021056984975432948406938348974826762688900487850274070753148314951700851259434003603382180099920850941949020540430329182009448601341731490356541011364615702184033714603975632154646283471847784081468376729565157198376428400569291659291154499199707721310000795665053727438186377008716300773334970156529831989298863632026285798251068117628181517500833710137963198249503477033293545715159546485799347445629557278507802049383526625973812595004056212996690147213491459285187532120730950772507872882119625879581897127114982537398174990406956381026659902055706474989069636312332624876559736395294268991187905230631712502662828443398374126372623143693762555476724622927011668104145415660545389869469860427880687443255206033738022589507637086484479950454080439439386172505228634629220124991493626680280341874650382740524444925240657828911622401196642954165955598350209204746001734911395357812930967657205164295345339435642419943446951567338492430831835428584967510141420064076008333302044012037412712320093247548822362988613037988446406074872977282973789509273059782539165089212929909602653509337489355511878619965205614218087099265233611760632287625300158559337137820484551137128405051816845253541553449693882336452595308583930995294102795916647255201886928950159018696793557698699695451462998076039873714561389377409581348419784873296380052420046160840568456741411020002846247813778672519107983507749873781275459282362508590304313183490821025334925281521757449162505968854140810746386497759549626008903262596282858314281189982569261675439606315738043996306168536492475647228148710360388807857346066024555506863172559216771420149486632987370136934963004241963500739289903386991296429866902541848447808089474918497748732712282812961054488505510584749303517369801863758896714258566828487769023220252873625266231112676756715687205426543257510123305103085803689243332895176544190899066706644648922316703613143413670674462863242660718047295123482468413287090968094090424231948966931731219410561886560041230971515075409009504251778375468318025905892833499215447314430178015959811788155713398743265423442219038394981204843060179472684883884827501494593310595737665989349679924791154483293266848924080760745064447902222267971532568946320536827400193913967174462885650423491816066590553197888260988729007426527090376361827580907513573885153498171921298094959123517701481687039358133290572676108610315479645368598939865922549750340376446388524456394920220427539425514029447780825587210438335664346553507822814353859736787577866126333468841961414322267192028789823693507272710197287063627504754885360569838088287590476886096705274544037827220769438217084974509694451155896010817294329390254742636578034668704420165835011129724405737748172799827703777269311901157853543640399260731652489881004658044323372823878630930742611305565090732783021564906645622670432681138950173577331236322835753478323817944072939154675782126212752911101334287710053664008996172190656657659627842726945268181155238089825905847999568888120779130163438834665582532174213152153551363413792640760689897173221948177084247112078849792563630277022502252282344769062900570219952853933043293340746521597346487753836734666798166312358317408175365295770666861842642321066935922390726966677209811173674478145257018613294351155905025141141882640544233236279274391199429123788822496575186414421368277851489692222028749798298611883891694870217983569127423362899008934054746707487421018259228131815631444726825136307948285702504153238224384811046957966786107482210129197538207820044735699918195519857572578365731272091497068598582193804211890218527271155719369287678009298580940887540127121062584979491370772904545668816179406297499404095982165427439298570320633234630479007723000470169796735997604074898893284130827089437422007002750310732464997158730986536266742777765227146153335226332955226043218179406294141153731547455656873477100167295101979810771466191496683485889100598908872371890038791498140659877475040373744425463185037258252410435405708197381373167539609304223137143708287681672967193196952979344960370303543395755665112957237006886885426056502141763886314925067841401594431912181393632557081596643380639850351445520283021349314503828078352753004451182206417246428671225459980254048431952343338920452332797621254377851163014145236872892261804295863977895722140861504839307825013982122965107130695792429047078941509737800500065373182119634021084404758039817289543276341052551273568455967793224422303414343772103518210962182069262237681289511203061137709389509650641460482386999877339008458067155248724176551053101553550089139965748722580311959522303609712776544681412363923761474877687039006688749234909675336578175849781088791025444217255480768520895929637265731255877854638836493814570460442869898394570688272558311618354304577006881742609779537857070185943429742347881090164214506480456331614100643378812918257682532584396804899709835103173279650720983992838124368393923776343774624566109683170240032445036330489681075781444017586465772233370553392149060574494585304690991513792004531139485904540919957679950155151591361749803080784986358443814163850886714803049475874699957513928180308736900223994686391755434034780370492914997551607842698413067374583860690702302462374434480194249617867855217491847866181202098412729282493643134609018420152614438260249132882435543904880365251927981955983153590758497630196635260817493480759026701433993077919490728776689814565532120830349685708249029661653758726570387462026321763893323498052212566844269838119240048311364290259659603935921915777834194746789916817653910905608240995852942681213799665777395523420428385381058250546218618418227959837712795465802669656430497298808729096492398330046893749847592415933274976860639690436197431356959507764830748999078875354878679395748091523158288166466144026207291764471175691964400768272446660593102609903938697519751057670597468164983220311683403897203067136204144446536916637766658692473234756490903738996331466223865697375008754432652232841170869759146770639372222475310631225204342487077667506665425508952549360528013116278665923138853499276519956130503022549938996261434282154329279394238747369026070844063490389554581618821360527635805317363260075044891691006436752712351621853231556713467286465421102919248275890088720319730523642281310678771606996462209845636538557387296547277515458205818413006808722224536677726815524419380332549441722276103705667976037144944413262005625574422047071986579816473769913776531223155863894881416672338640371459560109461417627578177232204177625957010886335717232143781949498356317995220512647223159014632872034748856361529180268122889487623421760433762839925853352384539928277380234128767088078972360792613680935918234923013790792762048736372656569506296752291556613875891232547995963869085296307571344797264185526290670913852512651553875327446960265858673086735645330780077546128194210583676454429918670838623860390814644607758824569655477428971292771730429244131847749887466184442363622880715272903746350912182340283165305162957960264622561754161173907759369498921045891982330993368823769352832493361865568785370409218680675879273305026144899494152905088337573661921092751944745835183465379863886503392791033787797186803375521745535839832621454314068365814070612728657292717611213812835625370310743583943317888245951094153410642556335848816382247521849881952918005775383643777175626819588652312821907582208982068976066588297226753530638351670226447685218280048185447272121433077552633802425184306307752753076587752895515918821806729439215977456931054679548511522647923159008590439679042061120664103455977416521062301804019388465784947625425334339610201131095323464663889560166952525723445231950206074848272025419718394887840943785936479824837467799768978906068670623104467197174347364234731138626149386959295155011600484694997113198549217695449767540484608552319673729382861635122656399058892608785034903110595667450371129725963275953669569083004670892233106089169453165531557160262934064253234933139439873505590686151376867509641280773323373495976606060431149989994155998123715212344466484046443365949679695939259242095654743978053702937349810802641981398680895070574496844554238388129050524991675014140419745815582571878589631511936660672490167387919614287178354946324798393562237236075912119179900401918171924868971343941041315845179337001629196426157110507229463340857589535366275890541153471397273079091192342215472965475515950499850693264706675720026685687910692658944125482282343550745815518808718559855482497157450049104300183044236255982645346667324141923343371753407679537461142453724061385237011518569198229994668094620796113171006991860820785980306715078389066278608435256957740265732757692287580025182492434192366730515398915370683690145449671642342501645113731342381130875979887764255033658204472294109623179178245178197806349637825874369713839924290198959555785793969136610823533658943350085433004673685260976191077916946294832976259433479378511854860206636991103617881908105758698254911728868860961856329539495899515604229884639926027546507895830120667080574563964726633021915349616031095755184982866115202814302632047783572378004178719947666038786674822496457922061546678770028340156010179801163190977427721612038978412387253830599494377207858676694807729077853650363773233511361323069526977106901958061746661851376992865924132124442991392987511549124119732282397583846426221669689897699235518480507679210012390393607343176712855776168157010838570611240063926751619220787888571452556665707723286782617306858698526206807280469569561603508903295052855276526335856577463108070953237658370264423074184591872215700651672291045399861216466920088098791549817702882051957057402574374307812799990312404866296157822485095118823394422300652160537596689914650259599299490656423916190194165527927164669409419163238924592482787260147751528216901794736751472098665037321735827914115233031962601812261700100908191029689412371250977270710536524171866288057511707774142790294186755534700154294912993152559786397449069735008696942774549878927789957230261909152076886382698000920155963938770940575891769729224590034191605487903394658983118543216030117831653253886942060550186117840172841583981534751258045835148651789651676444000215083398540790883571714523313199255701291118749223058575854323485714911734588289759020807675264183705280764881093081042940603399602214142117953999866129126326733314716295452507211279510275188217685320359263292816726472238592270361348123074415746702377865521001800045914137826086451016534534223423466484672918186566917824692463800000417827632434389016687782223224505982567221035244577964472684329818871847519394769045554222201661008590379558329492705484830330166946708687920162847703570502221361232596220973724583407688664074552025284994453429532808466001984600429257768547260170019933216468448972923490497527974327146111800427912065744365332634809462506948721324781486735616321876175492115277804222524594396681692491115924567621792538874697189860053166653918197580876131497942858815318417094998572662501456384477129707353641312694489051371457630008858471267653783159178109869751775897901223124745920566724081034884097144613344903701630195226894472358931388468152049300858286346469642447575572256918615250339984765059409892777039037007725772861288848273389795078375878599478595643850061965648434289253078800970431945370247170787506012798217968341318338526167391565353411471993092757271022436985309424807735272103306667906242831522658031039381748897272419533570877701713225164569671005297711047055734396039456570940030246292307530355641858398976269781736741878153876902873998977975815308469774996742598332323117187546836061800152242067827720302524186568772284006404335719786685972781990835481652271983661760839488040543290291304794400940081735395982187972481473254150207566693729227259797910606223885649590179489341247554698080226160518781953081917051112867896789590776375983974576876145339865872225663613036871390800316052727059670521228330954387450102726377280105911980491100218443853273664904149679035337430335929693872197753579366237155013258047860040880593998940734671418098553753667990493093943296895900065858808434302310107245381048627714380150971623361340933381169112552141308011590156909360642200994725140850491304696571759690757669705179904289669141562561843167608949152022144878829134679348009137969087767851546507269949990211291494286925026790232317376781201595233935673152570124051745385554591561021703494297787601378236009425673327880634462190022824999342590474329085661917968821160778378589181124924577878071490075938558189123810210576794906569982023345939666104371568018288095750836612274967982959714837461212552861221730761595645407869841396739509697226044049837453806895668423508007072967340844501774981577124233489469113450722851558913155649979098553713032137915694067726849715836665384156982886326521297542103106657717460592730461506626762298571699360011876218712555246642640333717622820086949327270483376982792537899418484298206710947291119487055028881240740994175925759523399785416082601400827211657176311245721343636953794210032097407754744281145666599951704722144812444736126056381890919296141464947830752110641752700627250816178492389050227986588701467945201182975618336655552040795309971412151540289312275337837260171642159870779771478621062798002051610570099719024884570310955447595553126803977750150919423977573170703150779358073805714438572846481845876628886031998368291234709031833465025167867614676787434789504614994771432620453576890019164570547114136919126554310208205355415064273174446666602195016234483171236524703149034154030877901198363288212757498978439300075306220235043704793532142845995614125368612350985436881729582522531476812095050128379982055870711771790802743114674247666971441647544375834610430267044068747196005372709740928106966681720869510933217714752155101049715226605235782414271399084794628583470443647404714728301289764088544971840102707172431889561598327710348762012255298902100077058047260821483933988848746889840875837833794703133098482220765393921075681963637206965619955387912147419142112088424010722113293328655346209401970002299502248487935288945793836940890497867981379755570288872842983539412486284286018135777226915494052749465639170919126590493931292908405168140186965502129912262348089666950623851613405561214456844627451049276471011281781070031609598281272933766157961468892943557092419521017093087559700179083246261002061654363799444311946787220034545424357952408882160798156042363588760818735611658761118961582229959012293009351088792321832906017399403284697001026797513174492414893109462424661536135883876679840068168012584733203935252676834867411570274258505657514778814001846924529052254858682721158056908887327332830787221933806036927828212283882077319088413089657440659443296943870023087021129750576957446544380262623385663375352095337941355221705989002749954205884775069014105997537096263951457952061997947371805157516594457900915113912394058516349892192569480357523446470382429239670160386986222868072692079619802588068623716435626645455664669933522498590663947350483755210634621818849213639897046752161491966296529044299658891379285845121460213265382842139234438955115439080570353159218544911635311874946235572843632934983465235184432894934750355417316187153584606736419398156283604631791756765747311553552785346132835836604662767675457848891269070541107771719776495840436725197185702029641798083824388302243078966188610129062206150854944872772662015638521834612625546363543311304266912591646444380921141906294061035989096958005733165441279115140835970828661861024176740336545665875825194211765416143845012442661371587863380302093800873776847217081765278522041193822940619259678484256684546855574159716867993998876264048206443274379763614592677396704986108639490228932479482750678100144009554921163715805162360160461163883927764249304011284905378847429489252077933254841507381919786214107913383024735783414947606735311665835745678048902508271465366086031155417982520928594976538735640663210113130927214745330712114435198738466707410236671526741464657136426200891173212022408363893838491462343482052715171117441717735986147956599871858530436998743244509259590084538073078713507459526422085996746697852948160067696881680537158522068369961887309504460483618452574603902650339864924986434705610303392131458386134852748809184875253036927567634390679569270305968853056202059203612164321841053031553366799002092565263659306637518163169455460620577091952162343802728220626756888376061910181959954234937826609898126063545242724267264870044768054260179370542093669399209574055535408608795988872172438223479394930396216488643371098272935641039328386119018995075438317394323105716292685845666544124965454407528872546359402952869513890577151808856249300806274527418063108455577111882852764667183738187693539480903352883742240297310499505915401247678444326447985102905667452036940436244433935843298915841599255073830122856198952999909974752996786441080004586566555650112589228183377176386470855006082611617652557625345863701998009499569890062422853900076589636607637053364204909112508321705094042795326717523471198311015085039506110248310592360330753863728743837308502595094293527021916364026955387215862899729621261754063409357468471109294302008676879414407541989257969423919807979677649712846915339485893339833552953349700826574544320274280810435168629284562650717868195143160986944614176694802284356160347800306819013291399760852031125876414826038369028939674648799326532442538336030422516532509686358117637479042624126292276108157301696412499673506290969733784877294156703628881060018387561908004625588897090918047041380517113425691710171929667852144364510315985711013207062624411032778576967968752921802145525795992753916477439073529526044793239044192641277435785731588944034708132149193516372461253281978367301607626747199481386940756589401221286064705412429478644667809196049590644698788084366436277299333529705340800292606591881094416870270244397367332173026675157166635275259926615512569385259518787560258913054344064581523142145943856756026596471503595668206269348961135197578335943406417813494758636345383642119448545046362131853454210303115672285957115114244394971015093683101088028141389819690680797136563358737589155208704890865527479540120969283910417146545246998096953133236775941268992756956577896217497579153842522544205453106294086865820815270316196079399803002633658773928386635114057280069648357796731363434035778494315324440775639698613246736678990551621057974902851279907811032193512259914417290722318279549338533087293541136193631893424353342169159113454249203046659656028145988922420616555956492662394484015513631166481875903866395506203681757227351628513633990381383405156247973433487220733544711655811643123693004445131802785667303697559650195702265967599001345171240802441525997496414045636740932776276195256508762365483978535104945864145170334577206857920991835454269548339402319994576632242994973848935213820205258862578498085823895302430045566455453921947847768180080339814389810315596559761372371078603660156584964470359987775328614769937772258313552125271985060013010614261807344520599674435647937026641281225911209560893072438692711732031045006802155570503624023202096740685733338669369509290999830495295015048344511755306402401428845242271858039004905211153182082964773655203690259234937503450520428862038340602366901021267644393503655888180958959154136847657939923977736768012528901479151212324202713396670000437066995419449315991308537191148283295771608523235337818143424881581151258749225058564573350631639897174088760608393632791694121953845310385216282741072536184941485759695610539908933446026829169368017152529470908280067260315190019932442128233047279243800137056311676311263952491093412326978333198093761449057394778856295297201333915866519306862878067240011500056861220044189762808348229497708874975213956428363590724524393680330753541821491565357612425372769218369187335393728794505709308813086157260491787398159710655103818615827543540942006790450275605083794825009030780392637598781727760670271931003173692124711265897233667371565069283788850665872562311262643575924882987491093452501567614278267708134804717589240093089470999162767433807733672618741508108106730104355174979829339557109979628063343132144110786842535490426688192344815142374029183051833527128780548095709390089746444633150809783151651545302270935180136960818879809729287795741012604445150530657507313017767239988294379699203693787491003931779560430220486362975061804996887056122526415226802051633178856999693748255798658854406386565254004412002454404794735037172327807846236072548387739850760765801713755126472086567017781090903028971734908420834606586249250589696327191191269384516677438263822249079655179372047730688519638373232084782900509902162900489504720757857424130972930064673109445261780113877195653079577916121770795110631979274460891780624604663895756216618733041039780568200308312436655688447523920765971072693437416830551241573005594276798029768186650137062677181499599932469095027887520449344095164322416241477138477824763883629757030215923958035556422739206229379502291378860433097468202564986524861598340467998660240667019206944662714567641687583760331526967948540014757868845788716136665794567627789864138907035533918433713435772949860437048344680086204653436008420649838235431234678955397130277875478841692850361366960632382030927647271420963167961920999584189183393887724009769667084044284163335258732883964380128197863849676621266545506222646300671092634446281988803161888150585534277450114240459147695097855557845952343836594165559425638906923776584401204874938680287797928974464508163955764894732364847460601498922831046254182098757918912696494220321047860500256583546413099850716860041407187700925379964052745689626395197350879657432994354176237912604833079202767102508324116976881023137301329333317490557797939242027191265852324222873421659808989977373033613145735424723488425221410507770049712920416394205237256260776666126616749946804862603262556165246116622639874325138664047350882477964792379090758205205809879022942856621181018893202105528054885641225492032959083504649877374100634134983190929475485744200412441468133663266431351160953498956381654627741274148117254282236305011082326753550948053912519254056565785855472427798304612195025952361034026144629716604157007207135550685765410284932411303817047071323358205153240321946447813807501744661123621934587025626655325084073424367718171666894014707859286337094320370525151787794066910816514592646656661381581970178396641915416143717122750323001125537052024122216234478650193503013386796629097567829542364458387143629698720046203853024055002310126190284524486292507116422111905199422366383643998123723479927347741258898395910056860860434514559752237912937884187482849541193870773488544876543917846663585331878330682813167579363230424638750091982977641986562012318351619657223576481263376988470023544431384562612608208407643539078707422093677327553346100355641571968213763049679553378496980945314090771859084303909723653823519314139696955827946508713866056302237165861466877678754220719787224321274196416743970639786973278999537145481091057038016433463750471837944975551501843916464296064161299051092542819915738039519515216175256129611309980337209305875692191660714794984399729697485921897694937936663546798791907487863033589147563500623744614791923070105445337315163325837927663010088580009474628547427301774556842938670272968708452995291433558995565796702387042753094750796422298603392574250637196057407979765984487637944433620634679175277532561736079817044176289590840970828730566359736699605911918781561367675112091572281716139974913743115644185066556450907387524849377009707880894863210062738366044653643609227667804013375884458434637423135963644695036299925672601651057552675484173193942072486697261473804052594953051068743987499358492035771890381315741925394827833318528303770786861576461411402593568599656532015329637420810398907396549621627951675785313878483786261941103517590500782486982473955556183608104194382979479241760187272612229925237422268981683160950959733105064658503371462405979075112169773560443760835395752897329754832282572217448627203409215926712672520230636243504584606630631814917114888926342928411860657050712726261462596456866837074175994616094759396382043248527945237403108107203706398563821701693255469621650069831375936706822643001674168540418167772524700837768456473746986575675183627243607409541898903433629515601235048331737938058481416692905351897416493225519347311441493398660008562839339171418904650552578341502362389838852980375870206907991864397997821254712991750556263668333725983593277048283343068413923857063285718188647295079347852186156847201585722663385942024000083753759553279344613251965047639745783803458024822542710300981152181067905519173927868802170588757561025722687506010400900815620987270568672984634982024813910002771585391948001822955493882188071280547532641208174264570949454682683833404397619820149103671324401561629534315545796691573074753844938238463329873242695676042511410713752920774440816168516927447536669499624091578398836047326013413552685953641943026365613498270982961100206172385658102479109304338290056660221015090386024389909929393709470318465829331789397147854680995342209816787130784660251124429292802628875430255676136374092856156741915087125475982424808721724479162247937519248246969571174159390110426527612858702273484259442850302616198134249043776558184057707738055137592869147530831545539026622934563496702920150587238010751630825927173672047345395783446791388958009343650451391754630766507399605823708240490184836995165540606781027642997095829218574082766641762583197130408878174909700789107319729935990625303720839370507563475967372191142058647253655446226323587835202404323955107035563507010737577938391088132187306245601108168383265149905383938908005654103308104215861402665837235579021090147131296282479853587205156353862365347448525588156578132073361449011444957175468934578274827328554840945015778531757971588049187806000890254833479708794469062829221242949567109399336042253135135245197201266551825095042245590375837104459628741141826749346788243687884663380532304804558650564287537926194933482558546607597268717961917725534688162668830012630369973992678575831928178533616779878260722745993406216973946362240052665491440091373563888901966045948550605680929971581741102723747594459768823272003983999004389421639020793359281700846857107392498122307920891328515149408477782962487979695518249258982096188112555014703509692272132047614399478375066934843139926023913317359834204233926045842893040718414923505030211810480563788983364821110081190097510557902141750045553434928626009343233552192874827960476282715606279517039586227178725894690472786585289597482164545610630964179172767361409688856983582299611845052906641008707889993524223632214895971431798009829656233471665738272288073007315516792385082755729321624253273093961301431388019187565526461611627316676365211572548029987251742959968471863360263147989008832189700454207753652785400939900153341789056661772691582164174735224224999154070992940630048863552553257948223679879560651851805829702627371090542389421983424055246258311253341823681344685005268631221380846587622024293373244525823719091983785121513533596649878718500879362450135783927833111384156532264643493941063273092628908430564530718431707146001457016609567637962047846667275966313206845387583121884807878355597758773703953369701365132655628331328404131081668349197522155001742811779768078435807809011031603187711584328056961602233692374913993375192116037366618275778459605949217709535781247731028968792578972440276494195687635081269831299509275654336912963622592443727060364785408772153340350080441242214047094807663996536200335881207124372862541919843068275829967766129435759613740617806740163433623778314341102206668478687393364246923263784119971192355133543198809637159338842670753267352194444837495581654701922140161363481276746520042032374219765477863335170787370686680307508092124608260622291216653067009141166964731471680143399623139436645750137161368867024991828552699706015455452135265616544047626111771020405238654063191731045415792281313575372222044011076212911104515182673045191383611561235864572809709780973667254260566352368579141677078863291833379744387676293330905790768371740342114122483089266770370992033870632291397776238295343397768753794694922989102686543591633110901174189697997555959814283955816850249958826258253595066050081288706609155641749743873181436344259417628194394049809613648753594049512859119524961682162049001140029875470075298504664695131360615983628172590962178096446867105113777067075169274620384865538742411191909056526796919869744181550170501533208514324156018626644137307257541443670997114726613095242670581374237138629362462000651546739565640588272316448217898554382132480499981933475680726461928713114680039025784011214598379552653124337659596359333340972189034597419285648571984460237102883245269301437961629118549294991433115587567862891578367995869398855627776092402892314144472276856245089281521798028940478386910192215048249927625473649524681089231956043286263390798456311963845491613504153606574459394088200002879073970474446190443718012944536384084058348395476311122983604720669969196242213158598960341953816029766284862712157370563510495919545108079582671410407846691759514424310293706795796206439859167945779195471827901270259962290189731494938549420441525054640257515086652885582560712394688972446728575850274595169125684091105302703806304053478659388100993107095964666487886584750103080392627784889193248627361925825762974759508207619324656514823239854719234358313068935586889120936277910821414750941494705765649799388182547926816729564369063527993774267686487492364454191907529102225031694045697899492361416616891423720127745166233646949798583192498853441251441016362598364866406165533946182260713641032570998755915607982947933160094139963540317601798362928535074660005698817439054026278582955329898688030278962776120242081659232499213389268924027998604982683864122465331355839732962780040782274458433266709247173523978456869943419736430725716689688466115201023750716186387672903726023735710198042321574582049443821918758321649711396994428460312578568278132188327842529141023746736458315343393693570290491073638564850366920946849671913308150059694546520160039747461264577282682553188065027657494936840588719915010914627433341812475949943619518006933271595358009542536876952157448786085681515604490607152479321516685714321467156982092682114745095036619963764631728993582654267815294064545367359611160292715867869992235788906353023994081062161428456194211269044266304864615152233043388819342587087521100767337393700746016312630176534854419760139784147193223586363893126225339633383413844442452551577630878306403722546522233729565087794364823090047574685920676999684430653831809161561902706261186924625543634023491253683394101045317250158336317490533444174486419058317839359975619865249687910532173597352343483565672132726280276305680413761325040247573423078323885005696374638516227804966790786365631813316536625801445861245271923325551429983415336972920128819074929494279103942067731649987560672052219271110487860847182952822814506001741587274081061650872291477643606818445734259201632033749392434050917753821953668119757696598859552627037954197090006752625936502123303100272109019757846226681609967548385557576052605832319281966604592881356693560893977576102397331379739087202315782054211583803214149583924535276015636346935753029003475325594020390942602704133608875473959505762170817417547744730283152452126086662668729921237324387489036907053413284897276658922433505941320363633332429651719389053768858604124761582278328775469445340116902768159269210730043062538401384749637685180586379490257449282562142898875440593673297726247007111275219068418535638278461380871155028952897084919996221269281668157109239974460765179336409253130131018259180758737336722790725968811741241408425119350412812592088290840103838842620817981975546051563584454116958857417207011654380359103216197564054518986308106880692728053158428890739101754273606511557022747514147861407251419925593446001427157997762454633887036974447140404303524348524272663765051438489757602437775283181152794207586994046850646007868639326058344520785503372309651269432072945694983951985155557697381523893457304450440666228756559932892954484521288157224652788924546237696725714175449941401384041375944576627764597275552706206639051483940040865083549319426242150394283177472258550817698690263930953188201070049570410076959079836872963682418363252775463045411992379149169327707854371539793991864009029544005101332380385298122418021691596375896626230183496052428970403197557727537051869460214620783944344108397618819146658035723392884063280600085326205927779391539445100163582232860347755717689096281083252511753526508359543913668005872836050516661669052180172946421180565467649976783275474558992927900535660089288441597016879670297000168552982971374511621906701027260699486006613538872257869822127736586841043900381611171705588010151311641760416760436546383966448745697397962837433133360809858614922387406978102015192664587066567632516385552489486491506627460055920095672490305602543723950827017188252330026598477230996507588927789502464920641053032562239935237836769919125936581540818195039910781691022519811455699500226841555601656256619029843674633024156012438821594109473228719355445529270942817412484058945850382852639761411660165314416533343248496244912689851232818464379503267398930335887804797063580529905207534868003898124969203603350113593563312529147847294031081172242113502705286385625087989677023806835547104552237727216476859485753037209879641234678435058217291065384021343282669292641963878185970193007173900162345372015607296918115891398698230656711049606982661104860072915753290400612635979990185491870791551537574682621495737407901332994066528769373317464676999585362202189105065353148443534749235074612344730243397850326791048502048190014419335910749078311679607190842439734030444846805063794736642559905612345926249492838115774984588636699795898074015161192168092313537540742123672132839497064100617809988720361676638548841950844277009446391411003384931305225594051949294844980885550139728631335811751477360663361686968299472936965952526985218166894164819683176826079361730750020978369928622664894474697818290834616684314371411266558509452920977951174324052016139979409739298197260508541097315181222200163117696781697017260141032957091911831470063598125442361778281640838920493471806196124822802284001623949513411304258329853824666370639689330083316836756065369018001414110174822382742300394467209169073647660970166924429925775118587990894613992998241299279345669905922338850144329308658227521584692705102056489642060188626889151935123548173829723861917856072568497540843496793033017889645155579608031923828802197452429292281310038645636138109656501167472374784394762721084654706616620452987703151098306971775482874251996659713924648115316009114302788205525512449820577481729821191225509597016682574010378193365211614078016991235267104926941494834476580690581199521140899933443119460176290108487977030480084972272461570246045554135736517294715717012736301786930579610543765988733701800324651958312757300056966372974463869463811578348183581347261268701085785109579097120969544202654387024594862453661826444395505873482535937891712265070791840463767297558682540752200386041994451498634249261078774093910529528301326854278374782950235657442359181383160862842791070685304697868977758042055322144314679550056780975788963001467690769241145091978991730948563486739722888476205233439593500745155710790718023646446776842951898994774380575560248640717020638116265187161776951729763556641107389065160702322859674784023745013886909579908467225665413348542874037084952412566227697789827732460134504788203854730681869210549490462426593615756446516742447362208798137287970838308134282792830675134375554410551558421292015741783645435577023516436477433121647800721466315003290075608234225753158401222964971214405464340965657457531541522257456120579661723113276322230542288631568509150279344458495739570197137456699669312007058825663093389143333593766432305566683660346457555350380462373477795323566305440116536768404159536918921375302557976858285528000881566931312914377893018100343489239623487146622879847415458922535338179851608300383357232126248150927045393431641898717754934666609515543691921667849840812674512528733697377679256042782637298608821488820851529328031838971561320506100630023507317423405648900303430661113452643786732136478839404502701586834329438699144723408298548993746801744738050297466888224294899373562518294002723377859418046050574070266509380116447215175466582249114167542313238988068338543020925514853051146826763811343838858828156334606529218594772379379027179691645232965745059417696433955632545454426038932409084968861803837760433967303564348042074063696018310967390889969128189173644944666429248418207032206143224534021514448328940920455888447171117647165023651400450556573971287266233469389675245475327298968086526166014147627738792690853994770112404398994303737436222994556598669431493475074190018685802493382089557331465629719132421670582912687196739029580002622407129189902957062952876305852244779722975469103352442552781439722947899193208172698433703525816054083155886719854681832440519177025642114800001868685684481333465413736086884149739207106131182928692988572887595704165744248088442340770857347095490767863920089069431668458201895896088893440727708855035026483625372380472634303392912184763746878138985797772177577859168581004527084591115739343463784478898958236619467199099469553243764831273459341642380480959067710820539078552657489986920699037134455551751644530140733996356914047873384406015439512004243983031601726717793737884127444531706805918809652156930990509136781041176990371641299499634269874200306007657460478096071567259724029640769226545852924914703097951520253617431905009513631334082856481219668939191584636666152881970285266618031684377163317056149767922384584009335646055009026257467895269946117374815111941518548712199080001031286079949716755094340195195489719554804338769492318578510060950109333371510562776907913301237606356101026326503209853896120607193917002415905720333152834073228304118180734576560286280427006318846227797977827750304711574728801684335550084094769104879270304041711093529083009187526739157547225172352026176246861532237681070408435065740336869385383348514102876868345809748660601064246465916118820501171958534299110038920894794395477963806297669799527384257235845829267054483504714635374821839307060374654999400833383514278663485001840773554583306288963085768188499323179969833351947840625301606498249739157545081522162318672860172488908464723320738868913018713674788487522579722050860729315062882110118069020491169707598091786018815899030937161755367658500688731948346308776883832701326223907427874871638584322901452532635054807333037852572900013049195284263238998397657283059953733835581043804302532060131089468611590269430928159576805944294391552578593175491373230680602868944103370605315596571455981354549768522211158254104548728269310204468626246966016633423913388358656162961167015438956269745638257036144040436735003306893418351935268811921575078923261136137560909490864781200074702181225884119253523473007085900673162487023528604786556528271636183656415164643863375863979561495010099922772038634711181016562120237190137266090411945390827735823980053529847986352115784619013028859270771375846283705749754790108281554485612656158166920598747147108861841885577684643775529223622234985303060088827707506356334126494315183087125026880108633430558617810383459538379002495084326920569903682139817558021777944272963276285640146239893573482819483402684178061460585652560076450694288521198780950988892165518948733773091328833487207368427138353740485940294642651898185641217539518217883319027083005473918513303647327539742827453302486582176417963473271427380635878595513487475395522411312767978364827459039761050762037585033938674713574510528493088103152469529728912714988770090945232146483280635713232792842131204252991572013213266152022456521229507970558803793635477111600425476312019296169434848795576381403179637359689061943877147436542405707831943581121226957169320172297647681807783616342212857916882821406379359125234713764369015851540242551619573852969710392463441466704231951187458032255036182934050054720511378217607090377856938158163015220958950144803173211052422253191701510359706298153096608916214306171824497363081672352189017911143057892686773295979558333570906315642942172071700268520342828006758138222925725114090745842906117975449824680097696567846104660085219201977040016644579781726857347591400169208526921974663328235062494483588118243843012076481684799247122601208984697889002081066116239090976457062417708278815957749224970784140710074928370365441561622471772690888355305210645654036616110626020287882568048420764969510392905450757706641674558022391169146471001434317663710114170202610001011477183061522849050901952091814287421889166802801696521070176241144837469430371931233811024176106604743890006371353732787615291389883146001033574040845569525797205498466102552961354854485500370612987042655766698689735721693033334519342185153768078835770733580506724342531525903530293971516732747363915363509828078573745384986514622733326493560888051483854963005883223253222013326926773915693108075083637783768543621295032278566891971267761953205173695229649214671706641056823945566688357206874480927478388502648930332058061006213263364056859210264835405929906869319449679153603167083810837672870646010010694143885891419815359556125352937150951655756554529187693989912573717489233403879346953748436117116190341302277325263415540701709342886249654217401350651841604377128397594261809926166923035128208799365103558396024170517480854311597362002239297167850318907612569120338053526666655323238523993201591752990929055115359083293095594766535704005298844475746661932687710858650966063371130522005624419157934355662675076585639925091182154125374224576895611340827434791105950659633442537126166570521892417467158804945184167299672268494579408738520899247431411549130958050587763729960472401385936362683234356206709372610255292828871617333230111911002038915645488883765115922617057200291253487571494193642661087764449502232139758531039680253037050379638824544239889481401611744883084006244785230790796421385977952494970695102588267011602466198145865160007838953794458529910566902167122156700303783022311942802380766600519669603597701630881411615912496820820405697857050059786547378101910252523177183940015353117655412954784910946882793172781252386600590338862731686705306532357580522780708319327777503161761272937229904503028893074492782197057891173947934205388037864757222011130642547827124326869359056656290681476270674311706008648942640833369731128731733674767852636175419088896091807361497007808850474821802049678783435510762216316017710223627279431123810438971204791553327586544430840510747138789844938365074809983744345669182130780574455060314126843693167477817828609932686543957435989847697145568720242283287990332074693004770882278678029540411957254693662092060556600032353688330791191582442918427204371273320966457806747592436568139184317771549259603627435364371694088355401420233590185145512189428743667424272608760129111390856314435349113263922090169052307406895807920678911500353153553963489389820591181592033071875063420877905191677960290681702288297137677639805041510642629823303094799888619707122831177848177800387821325165593858435360429118161757396301947697459411955564776296264938932791405908091453648980258444759122391433541343271267218471464046727044114139162323784528562730121248769313414412961034573254557207457982773410453182856176380078842422993760615214443074976199958805853498285931749550743530026869041387001401605493575314055556692328032072741617236546068264350930018234885700937401531928763273516296388936007071090975621354495594860534224113600965810501730940367217647160916204863505217517257540159393750892230998578546142567732339206708062934621447337503771572757001946807702350715736778434711014685564300822555636575221857803965036303874068781776990731395252692362914672538059709200219190075726570622581040678114453449403391384152635427489746646575119804521327823081225302625676264560847288580173479216100106971540930643170026694939274765679335704013859067014905934084828663782499074268807783158138987886247585123214685472921433636947354270293249166480125310241187311961421796390710630034406462286807772679243476939043796189606676528392851406595733333513539042145659355392224906445735556694515446268146493719899334860893072991232088674080239905434555983945779748251106604461243300658679270339133005468207588569586604493412256300489700274482409621898445602690929434233593945993362252658248383098646979345287504936548391203218587739170720553349838115005878938893802550262355351290073634103896857811833168561557778962982637938611804395459908241441236782167058322731219899882662416832458621147924872082179624188177913780848507959688720416801320093343626286654451601460234357771299707554750222251016944761725824717322581418875723493621194514631740590110648472079877160195668960078192887920559011229156956075779162835350796449187472404124283601584640191505776882064456344305465198000281804329068004437061481554576629318660085566858032243807498027369570137316420178805438269204033642011200727662194259938166501745426275336933981092483482968887408764029726085217938872313014490946293604817502674885634946485144848669142148943068227872992937297396153697411572614246442833573677217778713360841168564439119009193506050597985362002723120024078500297989459676980018961707157129482325104674585027444595865626257401465682845778025122066389834756136557282880264120332586997917256543685280807731829023856727887909085899755954633553342946672605860884421504002242646055932942499741103563625977107225059411708414962550486813928638433606222827767112910705614998218580070894176358630295939496833143385902629905693096527938251725107703573303330457115455583601603457160125060210678534724283219987298483014548776797947941682139450443878399853260702499096326827247400973273735839177549942351321921407634731577863158447157042433427479500511966078161986067988336156193481460833621924584436482650974891288608518176020795338842783686610874761451674362432059869841145564912533632757915857776721471056344683847768171562499609973521733045115648025259581334264550644370820352479977422534700036885966195288060584796634712470171051850832780268004179107558421763933653981134529983904022720194388069043920351538466351317146137121740449174540241916270772291980198110709160325566514921073668997268626901687376277837026324503061741762274969520376578977881877456149030141405582419168121537138563850774912382026625608788285802610852682667397357563958477722070691659564963625530270572716783896620522058049743041770482769576511812971757120622428690056651968904379586271404650129887172238708743772150304604493939748633639033671542483247037302135720237700916822679896092306034750787830702809463085532193163695629496233757704904363887720296131788508457314248619138979839666344805942738600861416735672575657352627917642458312468294733118788745931782633215808531805513040749248678975717918678635404431036023500789839991139059545910953811574963119367479391514234776843498327238520641624991868254459729063254127140559680110360145334444472280144348732570282730621233814520808470913619305576362572246048483968466634773663079875054215056793452379300409442254478958990180048184385034899806744280961295827414293703189111240146052408453881031835791709862573182999821025223118719573928136889689366503754063984221827064978400247744083992338504884303647297826700959978049470047288623422993941212391959409756513848718122492955109751289181449831007835433978466665414030012949660539322191350734000373178369171063327134811637961521520440920234853640068662716711417718516909843047927291921069152567477564695320637218630908487404137983359124925953404867697779381376458674576848714920015904798500375760140946342714439811620025569499223502446331288457315506960106309292606745016092401036657218726786961234982723071329003534576699786653575383331028323634128203876028175036110449652441234302264658434867877171273634323145630091491078453715913428663711914943700788036113538477192769451362422281962292043889998049953324718329839376711628788991018072837923440113263829200148266694493914431954639603009140418796910981280446190743756862754377276111267592496332839998986467428839531947978115434152999785606612391582989295875899809327024962951505709515228958281362051671135516089216276470615645444165156118385945445527909336689415798213544336889781113964958006332677041821550296602714833586092219937228260066353608148270805283574892638015340055943646907621406886610231351170694048231199665639871682812296034398480320567131552277288121060537114051227450849320823326448523648385396998722274420928327145143999067413133745538989252823523234046186900995422691756259652771302896663158492386771461140688626751775457119178137076597559109186287464625921196279425685589430650178194424174753305948567464016535453250198130102426737794284349151584552738829551716947217680120081469252579174380342421301884649290234045989129451377353933030442149888079663085499942300792725982273409478148012367050519175310735308051254096768373183138762231487142458718172997884787467792203900324678857838221265712415501081103501433059751950045492943107914606703881006550949523567760303119301264692549939156590953440820212127672382506635703103979054031479777891106769786366687460934996025411669393346043699549647871665814737563214607612198509362524854253528506357481672292842008086984938185547563558645145754487902445187556747117466575554601611296667817772479169213849560345019578865014351986146294899697857182560042192322681070895055706952267831697071403217020212331372672818175798956836546817848972226924465695489383005846503260337667821406512766349975292240193300295627080460475691979073369216106943678833063232373520055300504133243439545278570802875857270602610261481311022556955861849750448090670166060676208739322778310066385644038310484830225983247983345307827060337610164956877297585346301538539743487345648285199984106518545176710192439080303018486666942307565166777711698224324437736780397703296784832474775905363712206743241032010379977222930865817945434783463054124331296683052134402607738896699783869462425928258310534653817967782271405336319209465547259030454341098140028443932829465374345185926073640406609703451656457936381425643693542700298571753480280859411901201665541453478280074248674987662072665852012057150360644690032031190588883277485171598129040331832101100517292351518879400839497621202755032368590422202919153167704577172452954006946540831334634324771651620234213167220190587242399265257612129457033224776508075590428069471327301503006311899904689889292252383621812234886051024613121493981940007721109259443477080301830856561244423155562064501644425767487103793505088654272950068539594285041546203921282283447829459892779216546845838431840418100368319663328251886107252297185617354847162980676762888662232684862690802835586252002398689355966641766114304408027768929646113915883778148293346081813709125116195030254658025771972323722080972796292263338157540626217358954147775874246161131905336987930163156031540734327028527124553671256806553987193044619048241439888838507730422210851761331725545306129471560639333582917812300006903611606337863907939897190656215177834707001922090360653441952226645294996699357436118073938284729162847225637735272069633639929801324802725271560308439236181831258046924575415744992868574606143228271833097773798055570131290751825255951706851476147954147526874004923072208632208427039814433970698096268591781488129570548851332975694295864538106739329898768976534796108713116870658554540761086161711768818806034866694986035187434356226385738966928817287351454271321395675350372186557360991508487429451651125666172504029997329528866490840089494099008176889962650894048867201469774451031833117296597572494605030531694698008232589773447075959374738337149197852256932625161349557433964296390618782997778202721361500963655308800493760702490521721971383902534183159483141297046491624067096141301548505063429353263975658993401306288118681167154909962821052910638379934004117555915180333201972291262600801947205701646772220236278636625631863457533961373678456499986527161803327961873844560796701929988402827605659333336475659523715556714983761239484232930802267652899277683562013690498220081524406615723195346019288203268072829211798133962290349182303840391755148562023644978571828436678661680538375807535477654192331352422822957845091589194342921520746291986975781306748620065549136845838822292121074035243725676915535529396341496136251108837896184312969352036060252477512734597691582427847237678016192376533019961461942012441718381862023585526589109706410596017812943711031277401550378902131871867294327756821995449988172273891407800273039166725863035338264324830144075056059750826579540448067323568945160693133139125016098165637865723436717198924581372769980285566098534833808201836321000975130802975426758350441309120764443908529049020530741342273340261687238083331445931792693033146407217249603450858511074775122643602208008675245735083462030023030259438810146499058854642682597082392199691861755578269154204626623369419450846843035949445857293931048670436828943336341943868439356464262598158712835700758268560144204628259738302271923267940626699029581705490015527075940257791196289216367892364659798822362355885304931754187446677841799840790297482857929334992008733860545454467594908423521945700677878063155041303953634094293477452847518044330549182819338644560724146561092752035723489508496157046581193831962989398220848072284200068788798570441506103620727365964478116627148934741879938124879798482215002375195171425891427095750544579960232890403091723381481150165955396518647417153946780441460441032222108343978495281810524079291607893836185537148254282521876862337042093247852826752662549833892305967577023837989449526026343795681906188238189856849445258638545179853696855562632804886538149210940350312949850488079351144508764230066805349421943854683010064264832973501400507265332751891615521979439206471527726415818383080055092633870416224460542642218151050501288558126940047851274285194172766895140081122923593000428795307324702662758984766041639297269185940771586537807582943454824628114265602710054125274617289605610203304521292314065773104628468292445355105409736928133362851520007109929071498627688777891942881545355491886904637370675828294693982139423985008422959839560692554111895896604061557029122467478098770837616318802994414884189971411271885595004050020513026431564307350343774105282374234649934648098046110396676524158463165756712676241859501643065632857508064908115180417505443903011685300218580840619612759623843485526400592523640123782814467784377237068602482938378988416055447781016190180923498383757094457514499906881409623603489445822722759083575039341498043724070156017784903563455317823213076689091840470357364708720568888955957241471955722031279273273079267213028909239271892005028531306372330410768526267340195325250456501304334512851588781068835676395146291934251232087652672015334060750435510822240363204623739582599080938296056337953942097504260912399581372239639301322909403213153615252930178042141029283063456386166845066959588047356439967196778680536729623202066491567838439205947236897785730576420068254772746729667838761883896551433088896454033258376404513959840517242650278172192781619687022928183102706024726193036212529700144357725086341805913366881532467785021009099947963324224871640570162877586686989759862905878575653589577883375511509375018198179348829114837650873697825803528371523945361018055398771444220787326478412709355933376775859870785997873616031363674060114148796078662383607953493874785597273914150341389084487082113292137224522039512153725686164615074040323068007627447051808794556753242753458179413663416279120156996553568899888192486515367100594876107306606102294344900870350255235812215811889547590693187714089408263822900829211914944833848004087001981216257367587222241197232684085798760686554668792680102586508186751125933153363980675411322245288611514891832288423432304156906582040675097579455153927634949686759159272506324452111927200615560083962629491386273394606326259807789035938528536245968448444772760947958673225673278609761725760703771864859071373230483205607587941653182707811396682040342694606904284994022078888033169999245279342466458046321406951131621946681981967541022561501598716119448420405460343820706967979223856606160891386784583421969086709512373570707315080795234812467158325992318060463249148411452798349746359549433492096503886590281437253434674714579586854034268750843597679293230989243330047786317281526449212783889003624094306649709489276834653252716379794671504627292767825072351523059761770552767075696175355587571986144636208885289392261787452823002995557796615112052313299427284525883292348855610037241501767235864143999675203704886426242643177203472166998992142653546286513990850408159959157479300787941259055638335355187451600414196923266209755887839451511362502791874498902622510327764866040392312373063391041893786490837313764681370655738408363911038335732863452682241999905572713878783513913694347088180858183304045035107537048536683073028690361719274237677456259637482508753143787203354396515822855536302452551455461512311592023472669029571190285478576734970568993887017119115199632614228640377962139384335240997766953519667866549204870449319286110383765730122397424468805646440957460683483881285791490792925703359917041452932731860644593184856406565469330209045413652356902587160298083228493667346327216039600143768369730206595835138773659400162202219259335338485846102548618398489089967334557157467367715930508540918773708178962725194199481665967229799368933187580783787747835071627711876776964272038558244975836544914707839382864279629699992000333873360798479498853788165782556631857706357651109255140527106386115875995281394374834579364698159058008094164425608654647498013121532018013236300269715077586098539750794452128023004226765994324241107849300179198179369396676644847885011100851011940496202952031880785156066401750158162260149025879807818682535393718373400859600569823315429421899672410534683368178652527466079722536876716862679026996564939755229651525966282364040380310742414689959702103972119797120248789614816817258786445342927714258480280430366660178851001660814020829982751054291914486135584836873696721085055593174767875264161080680825487497773189955526947210130177231431323316572348359570836951548074293595225745881675727447158386589882536598390731180980675933505208083208492076338104514799822467977917212680732922124963726411910718007701897001126194212057125441380457493649237250594050354549614412510741929144522162895181512753222990851718881254795596874149797930468168590711290686838555491710562177559817309062969104738465649576139097720044912010399884455025368499556988921752424923932802940000054967150061670005518906191921133765290099958987625660199690379112706083073759962239945901382306250562870145855764861998601255265390680078796394269317302371547506977029275231399413715239543289012806794141955323387582248748123787943339168921175814054518161913061609788083866048181502477347845414617199432822936525541568950286363331377660593187384072406769013783261013471183555340908028251089029219950433207635835294262672081594526947142343803735217067371552185076855924711479267996915863254731335365351729569588604570486418565862802559418159550218999203892010830128988884920134388793388976587234649614641961572292776509431907119148706236188338416768613550822875577555992230751014242604336226694157700245536250384469334128405803665014761493752009836741262606194629673552720965450531800967370761948376239685693532385070626429575646870894735281497320374284928683805881829167600766968922326094466991252122583361140024369826533912280592539041162504197232387633256895323671575775336776546725411241425759198536881276674018339637810115719275747213012865736152874278424342647247348318417328913068776337501307098519918255831023386257728002844292664874254658597159903384707787038114467862534308557258846479339222705091027203321634795036258642894729223660455785736333398242096532569911125799999681787250242306951345894025837089708609196472654093837242135111520825087856688321603268639862817890808572950788018533016584077324688700432133593031289814950275781025048659004070161863597887659737942648450900044513671010476199584949172379174422358125188113938940944889865119159566956204813687982543993343044176348799765325603594015891745700860691519020688807912249067716918661031646973851068166681572649545415537155240835537780727578729654880743933179337805736832951290805505447697371366146440449133436043332666812139395651522937523046614502770043940476473704696730677078529824969049167677074997867111890656319889711844111708582175188101131816799816308819307625856939080780452348855561018285109702173005105764788928591544537941384410603108343740942284207805344482019072662507585909383713924895057578637789503546306156412196668512061241519421296645230939715880264531756364872944700508954478076783439604791409577542629883822920718111712067617346916351571480735118443344850786135812348812562485247166800055538478230030883966264620737897552954810852409611506944223286501764473155898189129680385838713901116681195492855911216280201656545973622437212808098120836178669888904614600979002528569167100436115318618409550812703127251202424913396192540782986799853630974265751349101668299767531079477476899603958333908107121918551152295017622678082667226115155192773074316188629656623584220179061506795083194922204526050255444419338985147153295515436111898886767987762403019758952359157919113294090094853167522370172954773164869583208903481144341745763165055531596333371304454805809702557173558855729848721460330333087368038650949121536642880231999237270703841130127179051914674193831429424304936883148317901118753284715319538983378395908571610313857193812776260856039796021825856357009820766828485557932812978281550618431250381464282846810701996985617677957117200672856807297249797625854875298455366925019048954953517590054100748818356727701197827245727304099189887284106522165747645147729493377337529662512142295467083851355152149062167807546038235165849241801932634789467559194817065033968062713704804591614286993214073991924558853895044935698429006669496398757587156828963369668153486078012699532568786587692659267786685482504175020037197465928454713197167448116349676922931471815109379245906046823270777179753548556199308384624747623103490308958758168625868380961564027725843857355515603435717650095058595428628944559551198732499888117549005215840017003136667719824857108022024476020494898898593902059266846122217305854225723532052195328154335501151399794938566039970754612400610108591113459626100243554016964157757996420947884377689249458960591966621860584171208063264984872230257749309020183123415963036046416894828948458301364435325401047110332337060917475886654327689480210446944090549068936082083767212190700085920045812512167207550525683033701987883082676265173040093017757225046986514469929950749363898211492441571668639680486977498641324181530797814350267483056055296102148567722253231506770872304242344809104731224090154405752350727140675956931487838323089932753496078899621709084678485707471691779839645476792916556883304083569477079337206965683675926068774045711898765247532700932452151878764462604619289048467519340793575288819039755791550441418005414302941734760274186571195874754714477543949553438317281143540008451403858507158180191285287844817383222153046484653962694577671410759818794153746775733748025714119720996604364609118060403103963756177540426798222727501753616083267119582593913164483523014034659762368372979223719015463304158947914975719778742920915491358606895732087465356483742791920083035365745111693059901388107657266223484828352955718964359321681165955543540761348028238142992613246899667718416271556642162114553768030962155990630536432188903568032726300192786408787176058010652811399174692162018931982009844724906682354154557539179707889424484180042441201753675568072196348821603987718720965568644344356054486101691301794871259214860202663374083031260749028547802745909311084936847548759262057675396946320046958373306475702695467112754687563305570752415950468497797512786864111741714291296711497128853630668304971911719023306775521758901535309499668163505057827580091319352823216457370646490860747872069709055625748650627626609363277077410710418237390056527136523256563127864449214658862929712936209913379687495185718233877577382035832806813508756358581212347887127897992186300494907111877185485802938672635809559176540189260466659962115505273868471180315248364811432793263167209875123229775950900769847229738698351139222734168097848905526090985605037138376627927678961852310209491257491630028170429516863046734402409574292454327316504644461589049371739965235885738063529409511024994718831492403839472604298316977361841996624454151689549789486287169625917850223430534806684715302040896890930134906362954279860539526887849222301528495365133258384109723851358777531196301873101593637631225041707274535393628422199019834995391699917832694972479378608529663689808854623652957165335419412883562871646662814521615028566540303376477050471535368551339112578652580080843882010839120160344227961955813904030181635199310651738567880532978100575315809181210867586424116811321142967190267665100501379704236424316641192562175106444790139372738699971811635274428105512824343392127514399094976969674223764932706907645488730776341668802717440660265737919202650203109698449128953222959391566548615511627083590971147191178890765355809394674878575160327708887342440281200666379611821450747213448346092835201178336358595546465577510282913889072014057003076371334988155349961103182497779489706534966858482065740375903648126685084100608707589536100236197734247222003934543998376213996126734184211255126898759575843037301112293930132120652631121011530290875552587526496126670352278928227714473302413457142829940410916060294135572029194549146592533930270925214213967118691816749031594780711369646882436502712059116648934741516540508919554688397106874038032408544778974815570247858359262928293416956009019428613348008864580567557425078457585795140994143935892206564788486641534946524990816071918669680391732088971538042805209456388305545515631681173672645204657268594810829198895629891017673081830962951905712336260777291807465352073459388937534506167256896232999675025243857316458521409401537453157667178131607300523556118820055005593484123020914308631363213542145656471003840602134655539796275931066418172841610594552085374403009440175123145582743857981968616375965460108385456634221669492719589215967100736154299171040550953744519144055397150052062346467665482716960142670134970856991447435891213141127436008866398723094425586629052917034656590673590122564524099384192850615197999808850716088281558666466743970652461701357532350461786237927397398752943997234630360051906889964385597997935758162359656119635374053623383598382963832780554215746160722309801875772846838996550592531195494884469919060947266373267696071502840729923651858291730574474780290655503061821076211384317268759481338979979813347339544610164917584178001447315355211296490117439228152199439171829484044182119402641735130878693210743010742756122105767851976969383125418554048195860210514045265384428162423456837162128958054899458029930227166088654403180439785083131643338226263262677166202057583426268700852775777135098025576197323594098311007069428126949005819141805587853480805455082078679200440711523470561478012383738720822287446289858201451033866505865335405344107242655717092920840339288687446444550102703473920088120835142971443553659042007197234608916329062516943882677548525127238677048390272779968568588779842369367454856557549624658671470216732848996214928657413399933658040533271318494346934564018796840549848284642848961100606897941957919132922470898945180340368242944005175356680285458826854457433472430330764174802695731365441760137068099785508178844196464296988341010875252832762456984773879580953689160451138636705041552187590021436696491395656610854267853814910730972446841189637485286804127136364493312840519466216167821411446450373189635018764310849336703304410206264471295459341505870466349046881279547258030735567503176641894983901590250933369197012481494942719316036695702922743040917312550905065163004005164601805791043459391661283668382857436119755237207715532395841847920826588160394514098316194265423335966350272382328220125014966033595916484668555440195501888052723770098985161223671054058196626354510831412795716909547311753104616362053572857987212792532400149607756918052367408022413277533825345860884186653815831701780494925927980793321237441599601378122625295984980028996111839403602372388343505936081870880334690698589308841198375253961997973575545511815803173021438559699332091094290827971515589220344935570750441465160224326817945327566904564689331206458010849381190486599489692351220571292922797717685214170079074617431982909380021114580526664744341627647583014591136993491264972723008624464777481993474105145824329849567040207070732202830680306824762002093908384062406908734838547141436269844365845281543894658568124334560701444252869887582378449138465488154004885287589553645324036184360122281118998110967575023705715377660305092795833223314145117359694028038306690163816827236269759788404987155264289577486812614701821164767582574212918063982495988157660434990478350015884632278263804907684064540783061090369460396855113078313781687667791977241519956334177179819348922736274704725920707486169217231067349191383369750482603551408450962612645592050814725715328270923184770952016056343526948079649119711019430445876522571458509994460730104748303164859577151938337669022663415211722987594174801473314099967231685455786987718457133730840796652592368236094053330792600621691879098197203433663175028503756759003096595648722558812022390932703994645997204294558711000695249457407118251815463705511942726891368014513769091949407632093310522759358871919589790100506400851606161347153459638806557534453892809251790182680066636777298955244392510655132866489748684337718071838526400648417437235017581819938597809034779833444729555753842864742999404170892173228241736716167176434214460583042698160549024959732893269519130283361205722091234876524774640916720654300181081669112454804134480668812248197427207305376718930307562245788820293526058902368462457896804864423956282685641952924063522551850086835325964188902018458712878079579744080058120943851059689346026201990415956115681419264909844675588125338290343588210539726526963872265550612655276516613372428662650195887903093865900805853067891789893887942386245198757162921032757582778981024581054922431728672916638648013721385220289516050349887878057847066394147542423538131002062642119685465384761554713177970701172281939579973774080665087959329406581745647931194983287381389182758901692442814331086361921415186699602526688344473022605663879037948965563253191523166020199404239556635850495513699471689329767925806425177365418285688260146931705006818423790627498667525954687642624998089380631705030198368979999232535007395645935645038924561452137440449481066127317122035054112575403949894890198177235492226355821596114080718932087587795924967214210981061509678975421896670177911981038306867669416213506273024489062736716193795237637081385316429253508648846337542307626966710676499663001945679883774264354029544832782841370081500692634830499860881478006827730660903829103622566529069559323640771365300180725248400346841246888034377652659164918431051825577753872457705260080121870923845811882317226548463125796653859452484749798992322818213125668862965318607442437440148572106683334825192413486946647963239287476969675124780412548016265656864354500042621590590299539295539058877583072573448071476500007913654257245392495214123864701913055804359041838851883884992319111268726234648941280215798709771128665583228742605965446758457614341900913958432765074436508259625351503588084457907253148130595140347872254859624029345862856212291521028410447006113568073755228235669778930928983232847857664402605452222831872648547718748778059019143046407383935956327921267473368912106799086221269666907050462260818283299998204889696960342001195138389898777862915189742985455734864788270020977086040495275515826186775756884754755973714096339008701381379914291512059196155312757267999182063904331136362251050789979522084347133256465195870245411787751007462166905609974496135533893776782085794871677702264359089240155823718100319867404873937460919859251302477387165223528362593449448288607460203101345956943244838413979165741000859121825067383938588093970356620873994383981166469954071736943601929726476971004690754684860448569847447919727569758123259197901987636663984591009843829098678421944445594510952197978369514597404396176060395396144623322314263117290879032135726019478964072315373006827194836686744390578686344133777176622216030652435221366020426866364267770242116350633437290627998538293735285691849337858007459322120555897194551651289193509821180692527528377967609886687062779808978162153894890714304163604048931294588951319494888645624324547675791021739624808548475453684538067677801940524476360188089494354547800347310202969924715388719316108907049105491298106070904779468004099538789825711706597889130078213190322129132494828759366646905358590012862777015833562116377468401561355459360313980289914280638335458972683353429326926728770204583010458613717329651286732189753669853113452247970146112421863137022218093342832245484371217726897389636350226207175514702813356542503637679910979383176507819436101927318750811462436053888419910621547279793639133814350158874752698464328209418331182696098423716837496945201635701321930710219842402230164782376986621090437774812350501754151281239891906348471779181360338008902087350659446734034766611839474609335809716274741170054766847568504230057272376001524640015094342604490555619704952814438006532086323022641686094016521029739918860641249116056814835140331099994906274272178930765659592029247912324499593090173245813006415446590768955141228409586599312286282929443393855147512967314695549151890198609025963457968219554108756902591835724047402106054965684524881744776842268704055243378344106903028309158510074715782016046182525376827570339770552651342366135547185899145774268822369032917673751633377246746236424710027772340236362014654900117666198651389382727066180584433261807679640841537704805488237094434900690550459732525440055625451958603360165582592927723577865084865175592646969709381682167441368602321554437961172675749437853914263980336081729482050296200366728671701267504805060631944897308837090662472451081006085950399659650441729103501087699286764131118763148675131048179215364155696186044188397071757808295976901614128140103729905586196770228813233523638704647945849812773293076620785111534740661956889236623171447578226288964242385504756448014430920324184768027711885690696222748190972598590510019180395824138864275907842292536064495281294450350435744415802463327407955306178708089566317659566798522262760307702285764357637081196787046087001086908304327741009966614080256397262230152047863080541699507789758038527082871548027478989695839990077078689420377022086356024804571428405413971542237324565993845715406633135455016735240917828094637937660875601429070920129836405421068940207467011726536211721718460366956691394210159090092819551615946784028138851220173668392345959574187904981276527178283474848960698408720212291245361747558550939486197337473888765644834716258364299743149622752798363749313636227185289246867063152161055537656969718069037161968754379951945824162722336310930251313729545788099715653238116700774475714324518615739337318562644476467377389802272785530924115089366413162496543193033501182563379186792141981379115827344931319415250393854992261575099442544015347431137339968511141635722727994563467773848295605384084787658065089953441139782289154767545553962083911557094689258237655887957671219292115035927874987838535376230107421270211553630673428679733473504721013465852662223339491926715306237591138923419854120868904983390969397922268129847996734206234234831892513559522410239364424817409756024992605319663927026351468563710753712123874218628986511138488633525078009415877003710949978954876956584126841801495028879448220154000644190842174082263570145836915325165083501008750812528797508844051585284784746567731631417062532998503091156750877042516387341810855578405207468350967704067151651502184166174898235433537716314944162306595662782023877611750945560701750633400118059158592193353921322670233971542816414317527264343110578556693672133993651187474280186089162381574317391657246751002570381640308849092692858461628320550804576135909047847460911212316152264084145408876296301398806238457779926306288435045985068704273530681358315160980387428643302287077089631689765781623839432368198907922346952019387137540466522375921259781890168612190527830357466980806463703966681350335426132931398111704063173396194610050779799715656561765466558209907024388399711693330773570568532312814790206380676081747910950359085949400046039037011625990006628399520862824166154512527783913659083484052981936554066964600455660085414123092018930646656048020121592719895951352413115010145316212958669735941338219730222908194962761538711282484644236310342733860369354631425712418956350698957735596316050222619897475491340966099161677242465180388074754528204732422374600386018185022852676322152308912972617238234421394864704137449011437831313156011358619441841136736312173228616020576169161314164353160336189939526608567769769849596173347728178548815881341069709567629155583910964419514156861175100075166002249439467993496415390677226299429040484465124448338817069769991284953668310025546168731868475938423589561724106509021111902466451240672794722916667513316868684137006440132133653056724599270989100150914773639582233075765688410060616081408089443708871304546924751674000872556789482333900036498856465084241074194967550023821087524128433193484905762559873517046990399711410499215215013694362012525500962720231485477232503443716518177332110983370902816698870038986584707692214444088090940569820088675466368967745480515744912452762459238913053638033674574216841504652475990570105382174085060823774256644240105446886514816491532276995761042464774703005556338371416789606652077706600755189263896219227170903519388222295343235378812194738132406418746333917246997431824607088131507083979064139503454394688755042060619126962218262875357125664257241171702644812047547519347493635396215483592373434866592199029125347171316720153018657854929053538467369346185317427558207090276228071346468515181364245569396185648921352458457719813168673664015499595195293674514063829893114557211453595469323225227437896129550694276352748351306902284377683011582774596767342385315328389153808796576569702815137317179427184552235554267415716782511665021535821764783987977635996864797299470079577996187790933760364352325457565891130340306638306764520490340679304700513405361868564419588573675441819492756781930296776564689883626359243312576206283205292788141000317802311233097752724397064454707097540127298626381347399746056059147519118528277279007653170143219986310010860349893583445544320396833145759151850282405701558142382208908237292981681574806400300464974981604304533589282616028004232278826491845933107285490342650112039562112387004697545756314827437801915556753802342216391171810955043018131528343984897185107983876271205394153031183861893406703514757656293317542083334731642754955036187652437063173317715148420388859361672665853735082983110657294054764574756091338035857310567500447264865008662235620647850398238814801136344419669870437053135410991682418381046889353063537622334076366573534853462586463263168017775423151875109611239779031526385800246437371747549470910626954731399442120057977644315577075085634770816643390773479761736083568199082817849876292284221445455839709230060589253619508148708440565119733704247079152563578986228850565589546891646929932988763107746842854718438215632609087343521201713646391277882742744441082799872372517144246160562165069547438901186484848236315951478955262173756760656216967360557774917681546125506045673464287750129326276367021913955782068870230144539437251738051125555811336410214959264484222165466810778694670950629150558724395874796851626440894546880212362221801511806193447578982659329684690850912320748427246458390014789895696957248055200869798415952730599998116698444848987182546488610751417669562038431003649852914867289590986707221270479945046379938529218411537652760732173520407104488425031317201894347335856279201528899745899141827212973267034977555953458492155460834296625167183347470113750266206853942490406342944995060238657109232315367321340393030069651008967328730547122031364805997477787357687958395361892014226849131326770010706120010256811382835816252482816940717143777321597845873766465905564764471064659976896237136489724438166838325369508616075587369372796269834835455634846649903923427598193977627096221965823769571769257312778757204142570798098858531183715973389656085296028836922088685241160622163661692822916077453879876547072483502080389539649572586298242553743101618588574910315849601686337381344998734423294051659597055252331679454262896084500245837046420750516470941762761834289041358578679220486603305163133350016292197681493007268905580676401335157351789686954275828399049886023184057705905732447436640798002512069177973304160286493334997425011533332114604204836776709489334874271580847184047369116295892646206776071312227014120990995410528528651308800060475078921506745763166735378502255324405978082580156889696966641376343161466881683012572810335811148995896389471444370245267754223280326882727256768874931951980372424329233867494815274128191512574820137310264632231677348870608704860316253493236767734110883643600488376399416925631481300635572561111929405694205477927001595170631198468518421417799311558814648047522182112634380081936816939028480624250462720941101443347853953972454021171137132920075899967634005653239851836353498484352630594121476521741636329907290127763984414312111218896895934338987479132273548434493055927073887323911449715982836114486591617742470382958636898531456766477373762606327110825255295158230382801953517716178198659836011905308353449617184264751613984133597169074519891393937422747142782656640152448661034079615655348838757117454203723492713896622329397361763876105269058743092458527588624485846858529885752087896104824410943749158130454573335098078035903171132959387204553770300284122259329193540223922863261153229412273278398091023677657336571350379132669150268447436523485335705713457491164954898924503179004835105193530591772096764275090036886602796132498690032350925606042390963207314241483804144627597610179924852517944560475853724368898012105178802912603648065775405973873670823747114421707251996795439003154306974353226649264434016130758613471947715523123229628612008446684721704521930584918173421361759428319296993489889189145111388195384165702934380715480564783287907944268665089144480220855799122483439106889988509178745992895590661929160610017091631290199016712341082384842700939388396438853850359745208303990244412549924627207130482696506261147350436273139976403100163261134595430393580573442474755576317373843046854327717491364233204960160488797663944430019724015469388927250152418148569237907473137093706073166902638853761696074656755733797659192039692189128596350561734040886805010768665260803528458263653516987573097008671941647490195187708054253286383533033446019852671912317397559984412655148689000669227744788742232820342569632224621488140712169508723018523670500390452576705517406404116590351594373941870144714184455301010141632350770340863451004688117973999758412022248179431234014613969202931388689062491494206941474154193751912766005954449188993174653069165426627511739603648882156220598657473834276781869459794667367007596344079195695485110854591746516258759059625263117132862518491018793446047688008557874903865076455467538981524307766348532355428300742246642817229634809062830586847151558531649960194283163430014204654339031709433945394081441551742984335285805282057626777332748816038185530242314365260418548690216589975849252482336706314020583660007234887078556520607636868024063450120448280675686534772956450230376128382271537872610820347715659716510693491998317600954773326791518741278037270260110230451703587291506952281476704710892136878712496979631876281206024187752892248849400001243729520899886319785005409315416726454445747927334388462541362654161552061528599474823337124461369086867078703738682808029957640051545038974674238217956422763480544306086611314278403363107099378006046585829455461612963418071612775893344113312198533517682453713973111838206700322766366973066356032873090297629355265931005014754740997003845175973691895476066012862162793870607063638699680574009354662648640166499032686404847964756593752111230463974740060282940495949476323678882416053390699137852563030148438294837270422983330998983550118996738175480255217941396653330958165091689702149601695447733500858411259595051449344493226613498920615795930098272601487870978115417384802454245022395176223010213466332305290554280958340565409695967145168157018389543348774270744812882194406759588932106134491229122286072824766761400483595277833366736899498427034584338192750311715762649439293834665360966309185253805594021589415189208890736137575387071776221908620153268680887937894540700470740030123034869563167522972521453489680245028136487079845127910091555050740139433891725341062970245152174619837708170379261907842064983832844719227765832703922610071301331091523706076695243465527011460249247333507522096220951218804789706949147203580938801580593511945047271926272007298981757256910331027986585660690038390840456922762515720274895295706338799421595480271945682298398410577266891928395575948839517955269541321361336467706995610230892959722095077609203084937159196927350637170635621382850878876877793307321534816036608084579103952087721428958028538335536894484584367995705161376628423827748064551994791924287378060738534941911268523334934360930673820253384368467748721317111574231310392786959126464859361292088191397757134797076633969856217385989651367409775249167314139769456675027672821247729240163618263049472100066775542841966489000072851786304035876630996709953112659526876073568651272904106250665970518442780441994984660126986844909754274472793534367594946475652121803079759314145761149052915496576328636647679901262914311784169801249088272290980376629843815714124177311998561999006144451407195340086388967314132085812127166882276289105747010082069600562018383996759404592805868820644677665026595647450870825347269108597287162586995046597794798944507067804752550172038987082180579512368850675405079270905645325355697161665180687028961752645457302577279048408053234422210787606520670971728218896420267865137734881745835976303331168446035647203873819651858750828272883530811573759196479882424248390940052054712084400967446815380293019983529863093059872409321217721209302016904442868940981175023548278520242009788456013623797538036835655086189448059729821400406712802519844085729624430083923098052161859917484255681379234422456222380108323385096312282578707248866987502025958873200062494312463771692457683095568629570564322069376196280108231718637390736530651052955707866756425005797093210599792147563028310923325057266337974545627022632858476215528468396227331047372394415825368372361199366095206213881638747316575954164909930246264137414056142246403885535442973475989203198349801755120941326688910290037103327754686478678501292232381296442211000366085329308816142154644004122008210348361434136390337715162850369859330973708259165430011954377332457236221624079091929037575429077273798878742215761980536002791454559755568747146019944778377601918447458733023074684088128508803256484573062775297994018218341274156260532729468571753373900967183587272233034997075794596504895373295711306615097234881506761475136610202372357476315078285140715002143867272496947595098292398240920639009548841698409908705515568997310841204711866385370637463877132293094066546374315253117837169594441174852977561051468564820175724574071036192336400870743238736797339789234780936941429358284639036351892179827176757786857153548222236545706244629042422282747474598903766189499508859443005883389606578185335593367449339662987521359783807898392952318493138017666922211769792975340185951255059979064823506151627396079108264493020187312815501807553578479706924897599417575358297626021702376786575798323879017486478591209104749198665912561450011379800698996757839270244624808001080022239085713996682012938128324995399608615298915177807197808375628814628127439230682184023441509146784838965928365907804935784843093479321368427684211331063964766358456809187525130562930220683652087568312488503340584576946825937243063494898132890375719257800149261925574835478748476004724792128575563328858202239903825838908923398384173409530916119244501665753000031360550538670932585603343563243995313803411457573022168281107509948255340890820855032104805031982381675218423982964212250842135225254829087359202416995377813330131814352318506507289378032562018024469825457584442506658547788305134259110243246340699997325463634753194862918719545508021580691422860598038235015848571434384658050736452078543420206015611269242415705082027654303591531123373705244226686104036122832927723342596514282176743454751920082837763111571306667218796077119799116519767351911329470260543315393613670710497815463959981528199080243139350631456686068913997323792478538510149654580141888180021262744751622861174301610945323734582190742838337934886179266034923183873878366058072589931732302979839900349782264974400000335360066044263740832295444023979956107281475712749283508249796194247569863499061873004070555338394287324668327946338793422997881372380287831053671961579766080631992993739277825968446562654800754683354464709639226039714563194383384958831318190954404424223303237354280605857643457639549239774250179541498479508487364414477921542690473556183433138439238369787695930575467444446975678804388240303686582785253438593499095245751045122242686341186777426637603493530423551919369876532628965642829605898372709073445659574649758821621806399852689395199481853268054079664387539621603717525949319012460752294141310716288893227270266878882578249603841150394855546875740298472923613331421019896099552958091444562194265546733988472132968058115620091236618993102200164913258749531889400928741496665783985830088543167044652342521177617618401458453596951436432618472016473695487633958216450880376473387273073861795156275434100162066279389382414796665391295825570444290223506522699553722247734907840450402970625493525289948306127092494064196399332869024753197751428289402954371354562622835689833229475838140778616319219444522556185013080731613148503808394334222091010360347657660256585875321021318546827494213770760413257266784805970398959166725339320509238706037287326917301077256633567522097003655648838385154867524186167022106505219695048418576716277770881319680684581463126886797991206040868555507974130972136721300957514926329608560393539598571460695508458002077028116611887537903520103780864310399420436501112469749871812887079133814390647236496900978757137168538870284224377539302768624694662766553033211886534711821885707831963613607416935105467602428290656906515585691898728818248307469085954947296642489892542236570893668875478416199831747512393290566388557665170836251423232874675439300836772534874779712360762466340619700333831853109588632891659149170240594480741909494133339648611490063708641619980024414147864370240203813796491547616063726859720673042391642312395394405508481964147708774335531843107971911172047342332094610124429991666106998708975658384017142364050129025927933136328332792159126285654654900824591626128977334809889796398291361866931654555104276225789674394744982580510924250087418292517011217840627614653851046182190534717393771842283888157900296779827020344393669536106653008518833248725742703806424623658723084644324926133889429383843426687006883089127430500119762458447133876517256025375281737089118142368218999762691930093107007880124595706571841132672504707532031738049515975520019128515605894832207815062513677939001027353909016011950696325649009143240128117799444694740485271584336881023637361291470895068658477435986034215014860620628817553825503193447108146544626879670717237851291601914039309840448596718656276151636524399381886034513759248204006772445979194224680259246369303052597598151982912552642808699594967902971901609691770992009846600976739950777761352323546298500593823362198405639937985083271877980433399403163674638735372069781713166739373587390887551229360681251924562166596886732707071694478517813882827119899907354010034289665531959008518570416545775518038547165530452013896120250667088560308797069273781983575352807278912215196992729768247523193545025409547338789389066370424549188611833081707663948287042009950412805654241961820940101752801159010765934873259647587952113803966181295753563800726322348401721553394254783989179650458922875360237867257045796679903602150494242893738910213470233906150178181188195810185828230036318626483842039992264741706186602682983107953288069108186770215929206851246853587198144151982367951973262635099689791450253626363518109520681529843228099583873608416589724692356686110677420292912616179481071507004020984891473898725430721604092878139048132445339481466331182551090788019401852355011503213876097942032675304666693570085548052325768964654716661478597915473563493304547566041474635980154988776825631346059538428607257311158142754162386005437604901826961439744422959878022492233235831730395365395931944895478447682207335443100613532990283285969919110828023059303052960105766307972719096566386403473365409112792436714546740696162002219289678347304435870262217328062920362498848140671291835318674110539105452923851545611449192505139882739401771792940872711843990618502049766061235414939288024082400678630181892111838917587019664396168676727218945281598325419959695411813541826643953814374861582561614448394288645915729134134932309353781195886612908975928518510892022661216084351026338504613081300476351259166902736258788040403133647078662106175547287567025256104795550141892202785035979901032313543193811449591220146198636015911629564578208467291987226985832005356073371448994431787581914884713032383763591114129384609180181019064354306142375764889536276747801990551505140632547064093479728676723461873677168441683812236559450460833100571574192663978309558094862496094118983143398861255849227839912546083601889391348973145504201805126307083966760663649082002993878156101509256269041950836471855279302736182110766495757790562992428273854841058173758223044536111419940388838754407954395156798158370841250826735161187390675480318609873774240877323851109053612396968599173324331768863381309149924272605256065271617521851217882873587845704481865090910152620971266277391408201670655233109670846226041076410873972868890368248689235963069423724404837062825518613268218270200641770160239158987307386943806586347544002183089880946728338308651166639349406450836956354110843874387962307564810151914666444428249914169930908281700096624166281363408415176350722581907310458245717380068212950647189712623533332648219641404480090816508988014955530442143336187466165766375207731396203852852752857465616056488720686230713487175750062670070396603043500344657403086455727798196927143569014785187460543823728617309437130645036179790778464386972909875889915133102870388506769945539678165905795086292325278878692572204392968323182426959069883398712809498020041251473151997496366498586891295577892545076707523437238186940757820274248227868193107802131671705220733791194864986348138934058830584322648018213233432849910240218635112862715018605510548636970591942926347575930164420452073545301121209861255818432305090022604926942897533814897238362789284806956252439320295389912098357862992774342824733937878560015876825881934389162388513320844425664720751075172821233314332976216924090296496577335687050889940158578158136136089003686668145721133616919530695162865878883326067281454713111735742038863956881974037246237989744543112215786248768721709506754930900621975527423499418990174349699994240926092804574648616384732089840275842409635584571825493419477605740783535486831243441991733601140569900343575213902611435385418921136379268491410179804363770871421480032746659782200462338031898484967111087146709129833212413853690742454325822416570107038002671254237746210104914911290460152465487684109408019234506271193338477884696952744620874363317390429984787781614700820404218364593516849153676508644540155278075320406434736185700000431107252295518462633709572993541557452387307209174094004781993671320030895203043159388452196106817026243071996067531849861411541455349791322280979184588629482183879552646035326548562178810512918377703895878397548177582077044777237705031458043295912353559708824723146503973558984454351025503868960799362587013448863078223807859956343096275595047069716941781013765673666325066195638536922762792575869672139276958884996885544277803524388279011561135292468538683653456173812247431991980498626215222677349512918171621340185104994588393177693898967023272103928042512578685850071740559356555839580286650752558111661367705473266813602463017004453199559701669193192046787202696022042921873862578809322220986963466808383461318344925949934879472674452182916245965146073725381309176282909628980424743269485399498001751133259949263908218030471207682833904397240844376883764597325442624275761880919931701072219424340871345461873351193448456411611010906317734025475606066657500533006288494295991514645570196253019003581330504348918435942925081465936016644766494420871668985455859211134334647246376615291533757849675503826137259966595250797659623230020128653892828126070435974127618942200902619605294817476983859142355579164663937922947350416488415313559032217116279178016527953164010593422134380401870100256749246824164390035438658966315424303794804733126993592709718014411187139452036367264684310361690744078543405413842173139746513399373782577744086220085609520386375793075861206870370057740846362323387600917322181301450012831523826066640898814869108125764250942817130066606832891885738354412878220593274293288553378834717871923434001006706927979791468155033784237347855298816212254999425979644435908366827599406790620872278667100364821300928541562594754190999198065585949733767515145216519080489507808002901487744293266984313544121510182243461588654985246094130389808025295465824697569188552297818164290420087177112629900215349272778516065061593587734793916154011713726653715806600722838641463050130201023887893255672545931185661232560172072155651356692401837041883981505798204159340086808268641196668434433711256742431798018249714975694065825736017810189876298260199738982068602178769260977576323727369809740334933490716503563883244954581894672524591592655462440622556664242724043189937923079421683493509487602777357142222601419277634019623988021337526444019782448543962030039455366828075048621125340343218301395036666000796650565448031937653230230570460762878095096749979786413495913033915468222796437282922186466459366707442177704543487031452716135995951835274749425118888532041398073284263537382181366992096924966514138350248583736392316416718034962825028650837512308077485684127337470630146174240261161276602540519600867694597952613560854685110073647356331873345295451591438916610331157621073208010033264657234299745956313300630718235215047537585090076656076341459090571485040264166834043084466701244546967609694450896554415323193055048314501794559807868387723836622215205296494849704932563874707591849171854409573618511060557048336114758288626248342171423290446052634701750629450752938204753732556291159439203620214103549963098930677602048878057196991261760055018959635549609440724590530920325112168774366910488372797621631401820438936371058963036727332419948547828582008810681365647195737417756602697319400936666518266571958180404665419349313692784157122059388619583506944707006268755270092714953412687046608303758274259873723310560777542501393926730274712565517768793865680109224201088829320585049420644760361410451541835571403439463685483860690608198752500625200379650597815227011075894552066032325600190559633760790048800456553121419086853410298880882870459757708791108833741443836981348838227095293519936948184685723583373991443196420920794147934314893533057211011518303969903406306754715732291765069248330389532351706847736833762538966542880321944725380939860419519523003924600710356833992897197324716211428747358137421408801004577535606209835146733372372444762261011479308084981323285707047041484656806351564865091573404820620902146313998816401891675470779627211768917621792324536918054362013021911714103079119285370921326310196658226058077185453134432563750779154938264525068868792855700803551849557265721869265716427538568368604994627158350813548340294847678062575168543299042742359277552026676993567266830950040135967854811801377850619810849862746145929484112148483936606304011019269018435879054325687122498988276191259317196076550284108658448947356108074530879092289047060961424394605540611326524222807758188828521140759010550573780250416231023576559169237565698448340213513798620474089271883722468384628873718385567880430564371294921913678620628027399692431649910411958792382363832633598599654639897170652818247073691743197850021716714050544683663016014331695667824428933240352810262405063167288066439439650338550325888674536381323020159786970593836353519788809314206315212990552530403281780089466854841701316742291211107297403562327938523115595609425507376972779893517893585988709831150944065125688289278743004680575627877638457684906510733076724806849723525704046356441520071586743283899395269746615161041832938518007517117644691914475888679885068066588234946042096744571384493097990551843420889250589481394415994712838285670026642008789260122049053531331306105191184765138195769191567491862946733335122085997066422374376258936603284174274921976688290770512154232007247614809230345723844123968684789599764149635784478129145752766175191696425084546989171582497058849741589250049543368026141529705355109534331332533984285473023857891105842297684508690310317478940149951975602377196737072008049221051257678607348700647052637209497805239169891647554225499991704078839435139629567729643341751530994916709816061541806112363864468362530896631929278651804445961869613555915439472827984549940290367576827463336885309734731710609048748234249854294055407122118699288100477448592087026014764223131297804659736882747211018221084318441604635017016612934318444995986921169574694459906007847227825995515836707027888095799062303027130209421730828642233121526636134364361048100825121966896112483096421948704815310104199809188507374166015998300764336919833049345617571008483886215338397232384864790971530567256562463215469311992299512033182541015304825500595603211318438629989399731674677336221882796206776952950109010594920970979279882549588915263148614516209687105448330157663746792685296452982784412584824027809349732481886430200610191984536676651783759328483258590569226733424863748968690155726827080080627948516752374910549043517166317948964562833547402632399067785873474080255969233290847576549041584764696338028293070204050670011183962281911773468156495057758256264814273932759673039808171091990329093917349924725178683685921628068765078948940482230622741310764177411964862827904459672778193804981810927671618877172648520784135870494966685298056760293732270598308455115468379228652289033208810625826668324973514194734317417383031606436118283330626262763540235697052755593667206858594877306033856671069201439523942524993352186546946443578034372908974619248003490509189630928637896586039509258810299573261075588669013046835580218573279910655202753829530711596483872076530489692916864595356137579437243245555416275701261997610057067854180744434636079948119980039466535194938513734609692676080444402006383314431406414632820564555622519794084022218239181482568053257320851444689535894460629709492699560366810207624425427014725365828527176245087680576797146388976322148543962057994914952132068000595469014675751652231843003037486043587099789024562325464619646263001492154411294772269849045925852724229421434002357178633784431023179502030654178193998501672221240288348527772065632115677589058036504241787374246519520666125106286895562258325863111371513982607865666330303615743852099495535627575301238106533411576936518668559779646453344526074094128508892439108122660044686900355748138942438438894727166345025643632835520455307430520361414526583133774132253886388058267080473356875211902655858711239519480971871310837677183022028213650009466418368054473221152419978328796491238321872720929599477273483305838610732369004826239814783487250452622942411416062626632300715875000474803808927244257350988363566002195361832462849848181038103920729044624058428967705606084672954351477576715515348110279380600542722415112083377774610084004190056355402050626614802830703146979242746814149107938413814643047372811902330175532230163787578041987763865582107369203061566645233908687352792711612430635997280239027559688923921756148893188981586300727256613919836119881539731138658453896918673486756320241417574673238530922247061315543441690144390957369138883088213275309599010233103434973729541201800578837346532105796908646624134076799714291903040328639684769421678449593145005790857108588788590457635908614216948460022019141733601432015256123546280214594017710997210008989323258314831539180753727503655701167465766897382584424982552903743560802765340364591019999584975273015528833074364739987029893728414141672234868249162253923765199850852794379539781831689755488286612176009098694834576406336137334365220255527341098835742659206009647892213712980654208009189164697778832982173316508615570086835076222164778770745325488147314318101838556968060199712396029978276003303066191639236170071130823851720659431520112117970703620331864208795462468095943132704462488225687325747162038347131088532379839268834279034690751713780449136243495976003510266476749306234582220379907818983544049118271915497985544497971061777726321725440480493395239637351722460418193374904979489062918584645512317629043864307626815789851778993510619954016974888975426308691796627355158978772122647299219917771516141360506631463135464220225791696075912193155355380903844400989383916917861931082675944649333102641419712459602931333311128692172337839865950200861428706071728593766158303131024071441841981110317339793273329440945857783689756920152413290825966079148769645119631123568676916159626186849749103014398507125499806321667390889516491288248046045872106433437938466326767890905202640582739140545379999634010693586409769525592639926801210200551152305922455836058879622271709569010566063581934991714571427359985235971117538119651196608964109135430368917522883513484476882719555126980895415778402653276102216064290607397381822678045160183080504939375698219481570049761487355212069351084063249048894859124499208874226870752163554673469440932681311718816881906803729361095959071078263172207349630461392461498959184799912427823516294863691117214948299419989698106336176418866824709186261766537229344365479864482613152886454779076514257359655710186488529945939695241575660610080761140997679846596695858419009335087155376732929017419161208054626594715088829878738337940747116796494895467878478039078811478984842446572491670221588176625311523630882669305034555521216013184687511406200424288095752203902752076928424631831920214821039330240952647433121715078903973282095159371804394302636375299996141459689248412681912730831241681638755333975427979214892992945030249137369731274677112968277594163354548903359893958183151307602965715139367086916362057187760977744378396301285832052926484546553463739877771487524583878827995546555384426545314499423142314374582646425680517854339727905766427327884511413805790834679096932107332368061807054429255718579198784586292704294629689567535964583352454715864627126550389034060771677763518635365771942419987832697359910472685392849243866273088580237235138326125323153351114784272752655960158864152625069316329805180355583733015491323049342826711503697382088787512806802562604184071523976066487749043269448532814472191301384899816769268980513468331929200924901151371114218710741425013680354377182716447414714315812303080470863920473025574402637415552695188980804625266812578510861592488679972209625973084481038571916481167767982147750609611996303913947783731430097560394590569116587647737655601970534635789823298338523904436978846425770934354265559592684484227762824344735836921031804896636274880240271779848119983518219346533812982329737298383310597142874635925600172943646400899077168504006462709517392579818008306317908446510953345099998415104649056148101491020351210169195305361812575357821549022751055068951638686788806348733531802873016170765046454162641462047612660973849144577792784876631488870662477342277600579529174020561260603142774995928541175231098569897506914629861280528262218259225056218887092261719883220312916686149710039191914661344301551521580567166138209619824948183952825238465274174177189582732499948973192258626638825228914198787681733984503196220317556352075076824359290357680219508575248060374064662742247635612728507116256656406388036405659361966908197520666679629323216915352241465186457030628493297874624996967540716179409969398117489065013643134545860434986607977938130206076768549715260706321654940558163275924657469329599664199600694228592245062553430259941190455607670215394960087830647006727605952340282367976634057032422057458278685109431576430585391001731598665043762359892598018468547431313846212505783836148841711038808585534117332032402981816784096590962953996305253429833078962903114045014154224032401453781698579251425286395422704275061155007754451770417814417496178233517160500004876600444346620200279349267944328998541909491656991174870875406133381915898954408178685061097966246478432147295389194766394018534015515136509869783740119691845321059160830207442588787616185866313564823823526403811185932021274157533938493619181555817578584833568440409848131752149895895693280166788299324901646588106807272851142893506977867383447041192196413436673865031982969447214180131060211165544788129447676816668445730793811359836275965254514722278115326142806071353328518939247838937474925078485452266183496591971496729309850538171742112663126260221759676936600782237870288499962743552898787556853898086929346083678872475695257431217725340839229006162336411792832852197076710551763159725012493244009117974397203131441725593587369462218376761010568329407516115882385907915529616201961978348891187156558503463761129165060847488107547871735186820777334538901084764577917773266756378680150936741291635471551860477110405728509609979283871816717204345537725083364751625665520002211472943150398347933711464331202274894196014386327843210971656430217073938881414646069496887773103980937472870595498830038167594004376612703269000717493126201025385096469031465759684194579654041380252706231937702301539432486079116838338756939744369988124078019373567653493268047095661544347925551941942687343424575031915874548481406694873024850053143404188989290702452891703777708832566301849531579688463100383707889383687190433020619517869784951711340287969137056829808315520307427228195637536077494186801123016933722522012433778292725417572027241294339810247189544580404930813523729739047919537312753923785827431009490260555565124921946194845353786691825286959310380357923560443212723568554108653867127234636819964546673961495024047010743317565347655256027088866915201009218841786461874168377811563921508510417595989964200175508679282318629077451209885594240728552961430422879552891550507660463464587077609730880285384029194092443009942862698151072225568783477142380473952163684301990129534858168493475768266560636066316885719935667781986783796101746413075267612265812828100349967813027042913231541358100620491083173726164349025167382980369131413082006054707442933742871546530785213360001982355704128911991774106128238182667279266204832088482386004518435522270675858731464304514124124937385237696275979481998601066456907091637439095286919410776901977283932528985294832102679775696485460012915579295476097829302898746454101187904320078123307702361583925404203762603629462285236898550245371582110071019070216359672672206102133240937212949757561931628663809458451461182170974650986020501899245080500095058304784698615759244429632789415903701815252096706851109766142366164127786962359798977722695192351090747724066965700295079036479543925810259344761293598690381517504176753350608369047167199738077417540531062327376756237333665443520924364163521768082551416046813105677832031214743453024978776111160657912769545733254502999570305815811220076476330566804828065603383046500788310639243270620010971329809598807013132122289715280051235210554532687740885008742685046471586426078592244929375728437103303744654362220285029953611324201231387985105726263570179209031131997147838406306537798640091856590542511326852662957438805789278550451317327724975361130473332275911741583189485829721019205770132016835571181203485584732754285972024592061380159278596054124620993992052831617625703709029557832509092463374744045392649079843818467845790773295991598447604948998647688030789604424023497625711961549847038455113876279977299230540417801625848957490242989497320178600394621804876486720456882661559785393071226729438991497828780555902760218048746712540484766432993521943035500689318086044774286769642190075648172621755100059190676450961931189310209424936901624836620066862080898033261254741780737508973269184777785407347312579471593645362613687689560869410181694493817694220944603276281801012874227303468410548000733336935532523877919826871469554702841831549089336844609131483377302038794342042061569820321744355308344611120421676096789888703118545607150400907095027795391847414142021379537991143227450147401546294899804649130439512944156696287403481028684404729815340498285487271806162928395595057597347673473646949459151635333946758553850080706951027723439820623827224037751661407488244655227524003487168277161202602618759241434594926955881457020035946279219612911968018744217255975266733414665542926119956872808213906936197600845787920607947791572746610261844262066710645722074840224252994185261482647627316603999360420471760116062868083244052335995227357806361231404135614150609137573919680579013110349838047109896057841157922018851956252996013183580323676303295481074075224714304605349380246295094040038670804133109774421490760551074977351995786953314437105689322079617762964877414818422524232945374959087037838766243002430510197143830245827946005500557709302761021524477128580068341514278260597004340222063450527143485082318042907112318411127842151055964868251267979037673090392575262979331066472109980071547192946336177510217376353036616056999017513010164705333947898728641781914493849129546523049994974472372623635757221001081046674810574683211953417268558669139069370880506036959027005210618670156821317558439100949292516523433412333266205885701531215371330468506286520124193441333337782749108641230621611665100489397553323497029735675431113443839457393534826518862628162237317859181290344312290798386190452218826565039606335908716822835286207858919699439415336826678135381804113085432937114872344092972174740632475674333393409872536721064016429879301321292993199859581893601859319103408585606759462434961081997177633829284966670375192272700688122793474564585683276975560952711657614445006949358261263457899386044350626584308789100920674921155732863867147581121831658428805617953553903333790198562965385001704464063553546932602243996545153741273903515872771356136326871388251574857873003308986576144606394320787615782918054631860595342525931495638144346603548048509279437972984343607794408227722941214172707361291988183907315631793773350720324031270364921812905763178410759069350176371716458509896440983534097681859672304927713598496940694363976782266804980769906690052727052934427961941889873108670889231716480245663477613614205865340817251788728533852302438580021270781743758922238941476254765312094471391469682470557219846438414643109493183905610484030983949497911228216371474119367162959937463343149550841698277083626109776322960434095859328896543653481263879366950457783235441693918844318099315025717281676026168768182929106491522292041359112216334102511501819119445812342124448028704620082227169324480463818606213052098396506264442517793047099915486593145420768055902235633687352540378206491719242192302035282115317635930620142457604782922764124901059584739607555264092266907931288093348172273249877261490510976667316028049820227633681420488448178140850553099227979726880770251696799122425619681042296005751775951195246584951399303469957340473903411973935522431937044877272138210203797172731861905739895893677119811955421166182029411968100216392484057952021234484486824712304526022023283937961040799948211100500150870889188031763002683154471886112585748927680415405408525382205987041277821370505457171242881777873728824631998576224547363338073993071496944084389841185874848014783623339921384781606925944671064387321756098630907593218442475636637632509592266389912846769689491666386349296558104110557731054333029999655270009454523964722324436437371427948931085122419615908978737000384109910640337080525229757239159527471691962476509012512084985342513685195777266817973642247168110828112509179912762464258976254066117288770349455959339060377827666750481476075419557313767609576144019237443628019592014776920235026514675612574491766604060575045928273960405387301365796444724576792003465988943053164332737294523583700807756243981864897537922599198866084627684593472410244199879321760191704163947576585872385824089448480911433253633521084701666030684359708479948072701214607196817237535660941180460662335114569179177880273545206366955601437530860831386511791285232828165845744368923236997154077404813459888946114258252438893143440919668492306472046862082936062392631282676422795289180415256518948674866291872221350114391109943658583161528167316361219688458781945184099687904602220864414206861777000822463163188849756043239504767531488173799181217654671368744799663996737676614976070474262820188305455803483240002583011058793489691583205110105831864859813959098778019295639476423168288365598265776013134554424868415550514669054998206170533406170176341495492266660652664515173429501725509716343850276159340902955546312576860205108672963073488869411805148850857014132039573746877457158820955648425861108565212936545912500177111909279499863652109406595819255523599540755236766402256038188761128540345600487642789206348818677896690350074042027474957600928507219725880940748506067006968058308942321702617534814111920277996254513256241862540196108596952448208759790321839636228997476466961175441705807772968612284382306165765475653776849114459895089220704469778262939747097695322444440452741838672447547083414448506861741157979927446106607374646292038740911814397159370925136332602298200044969334562440874955529524461768144490640229188277081645372091340267056413794186208077042466962788739934472657919161613509893905478896408796639137624377426528625233889955102759334428795893568227798635845489889964064365165221904136913459898706018083392401020481279481140978326679348171121909975660407965296216539362721878361570198575549535840649276809218339882450654143467744588649360540907343103004363080742620265200766099410837662143542189462964794909763708718765169717618543227069694753186088144933812820531689298948154215309755062139995773844131898444157199869730742585091710925766226857013353928871499400405164552056212101903435501173590396433451791543571286382733877060910220600580916727416715532218878479429825585192143475259822750597960273701591624598331008828992689099708520954499318298233581371666026867807810157636332401361545118234477363741298281415543408231213623516178092968544247533373679785229364043139958174962447989721155363815715500437264205663286033208183167410278298238776907777664191720003796144859394574375346989390539047692782265190353775903358578791034623245518867384671188710627616042097154882730721627272913677732758041866427412756839706890827697674938174070322704206410097744241692580685667570003545858194588391778760511255816534830340400434679757263527150642680095455099773490995301082295255470480274812041767899278040014009773535583666600707951151452446580377677756546416615794184364949966430352680430713609277878130200635376839372328802768191919531404181495782984926539866530493227509967182328647646501709925729458946757887876750603640721431596249831857615787838767871661972405404773291270483995795122722854095661173911853186352096023414603992325002659400906701190340984745994344770270169093849654193739236445432387491797240547829060277876350255466044307996501335319497036184069346016274591545156018988589550058439784710642572120080246549678440495179620417697711460478364690273141797952376766547000552199793863141026891341755848232874802527308807240407027568321238315601258893813255396955520254610654278710913003048022567604913859973349817479816316879440032041664536744083285672415651263546682059344302532652594065463242746848431269897241893537755926611436947494339540726786496121305828073922091502798045196505098980199703311691953578880754041119977251266982442604495405617517486557042764932944585281145979950171295601972343837494433712054224607876248255181197823714351723943594401924072867442149588268200966124932331122911009165515364665030556978974304584351194145345601676522551044975135867088112883119122933684825564996564501060272480160685669849723016109610871034938009101324363881053590562812124744380313371437978843306144269981659086431401201750649237506569989944918487484926750746500143095148478798520507069832256661539103214141998362661260548580885304065483168079701817839751638487174252150810267233173241919133699076289649193440345555155698300579277084615760984084769167184349792831914419942771381796327703890095215225175325826600309731581355055540633095426920537559037088858865180219518654381335629487812048402565468974001668375186731015986068314917170708181229646210991679356757478269381027439309897545685197779137569337328477973262970290405858176674385845358403075936333412570355782086451330639590626989977930302897878562686394869043218893352025766517307596927498200051661482543170851424432835939783778255404389408324128600228786712804901181495302876316551563728201032219510390818889193834061059577619957904608043641536751982947303191928178402050777640142600941664434363636953902589239073493118666790577296604893484913732395729972789706602130251497986114310626083550156191249507343836672723848141838678603214412096100764975763488971017195173025786180555617293430015607505643093162309379189619804804810604020125082651724698688423230888409877797240869714827161297365975215773796906096123652253557056374971030412826557540724061746572055157040402795796670674066858179240969370801582247610110568017696525254237896196291232261140752595240881275163590685740844400854978170057683486854662194467303370745407064024105236062696479939876639396248332812189838490263551386441616061119409247755706591007193882378229935731915687773369020654791410421828414373642437514696969541660865002954050537314555116309718090855075177982803813460091027103071045680983031219003336022370579581408504416916020241781609935055032640531270256727818706717442869323523755895419633672928475068233582575255446617461457392305079681222746113749957492040554421700788508776693856102742602550432599213179637847204626770514821072591854046038941723563981630976341368021856393452519760388285909615820774843511796177749694795861214811626540354670974189004346065281436295745519578900108978276324216120362649966232145612401074449306900997012638206999048227590925086133248007260689280067034902628450122948677438532387440119106433402039000365700174594104333925562606827039635179339139871405382988659732105079423805013665873846387950527464851587363735728911403831443383827137641321369335045358240188224186644957471483920970837604272023834114710893136134841406475405083777767495032198637317005318514108879258649658184602041915935127672794369579195445416127272357527512109880913133050006694161239184065577952885532202805897218269822504276261318721763467864462716081770838607279458918901865905251058044760712116287478829228157207885843921097452257204206868225577674245941584360895132796967814748353942932563443206199828010011074558921331827136061900305302762911195460756820822456325526425225832837066589091716419955353716886503126891874352369691189036222762437148207086148752928554364070397936839010341274765670726522984777096743773881042704769143861687885223882979613808074393168706537837018688089030776465515835758289120589144308920065504040231868621501157828496428983300955920162120207382717367986706302242571554360778817960439257870495084372969368870081205916553421521855005593298163741362205469025651651852584982274292866064850691683583329929961676655161084809875064180112842294223124007943110247936498038486878171787690017447771682488526601388604616970339994489801068482665646208261806052423765018446830974865656693229991377495102921394808413570779044679516592285073367409802372347187620621712904752616012005215217722044799732395023284141553409959422325437908751770925486757012755720365384561390822057610941430467729144472931362431010128426325715053534784657284394929027048841731498297799531825197988680211233906351568659620775628329991007754088954636173934186928132381277609533947832993691606592646564146797348980268537648605052771361260954978977440164825577088356304906467553377547784753343153987694902124536053248116115909971081785259743356734485477392343035251417666290032033653326253132503955888374369268459040267787284245758887381363082559929858162492833189265180796254155226209980363529873447051025892480277351645770616810892398811469048074785443702869246789030307709658977689216263649325351983942568581546208654153461483588075409450809160433305967574088319912885199207448047650804617041908733556852202208882126650480904866492452245722995105993748916931623345651549886371404350926473794975382165297026686555324233323916822242448332150943756638184872882425652106188528394592533875553709743320847033403341899308507892319011786341821523806852440014943786563754539345437852340393091437188628446635164731779223139124741513954893547042305321740001070055327702819594108000929271436998185310151041795984948849440128769536231246310492841471035924324254552330853209539615355144274089110256658576281132351576743101008982883842906747571693979597601551912216679723191216773666451964681868903640971832203325528802693692303293891482434406577229729670633516234977032631808689671559319253389001054068047818443005604703717813909570856804429445092247540672133814221378633274915583058062126251642799729914113855319335945700562558656037307130299455904689719900665571301509123134548973161722084127890998724406385352850582062500820597990592403112673740842850130402218029047455892713188775809244132921650863487785573738354595017509978969693165323996094452763355898071871392920207657205135227599476467595068811285683520354986062466542394393834635677675621895608051746905196952447017744422784015629332342865931184265116340280434027669594414476884431633847504898198013866822298580571848842210986510146477197862788816414782163513605022636268016201793565360286857903645668729930334690189192435903891011272524768362560152189664394506575674645410020597184322911787308736094995164034929643232378807172776154496126947166894881715820772321400056113321794111059627198504810229541225705355365552712908108937126904156918865706271642899059949397995922207868536201701640044670022273821604474328997079264485355179268377272458206424137731935831990715377723237606899716749242020158591735995302679269993940832713877087671945773098400904727472793424917582547476449823019065703273159305717350657831453778621496884043231595745849774333135403294566055927484946715864070690624892738581970835701440272725527318542662483993574736778048818188598883510098507199443810701100273957070014990296576015369621629234942814988720108159708276503135492967661658344039834598858794360550257698896040383160085643295220466495904875016674226766651640021163091559176081116776840456406315356774192011355320021140662590151860230935056364222322041144222673143539431962528485381200506106960685876454382085524045666770264195533659127132098313442932077972176749413689739021679865667266164221085332223266403208941639684539746873897496424345591143570159076376725565769761355237335187997306499820957439384460515709852055861534412949750955122497911081295844281849979636535295187980862174016077117626936204448556804100966785240351623958052589392207677066807365021047393884244601129960485341783733852586497397474312139192585611500613594433576243746496328058941280391232959647840227275031528462020084050912434205942000036410931564577369501068299012284393185968550854739842568830444614774282315194130752986334571958723468089312284356740860150591285933203646363032423612642061042012051425813614997040221820103255698353245849448231597051300601775310544826651232003580542855687548594517434245940272275824561254800932701927570731537162290245353091033747401034311998243293664535362116225626530700616518493884202360436103579950577738046722577761956971396994678553500426909286419266442104513792414204897928546008368796427464874613002338378113886442413457654804271912409886940237432316061736055375189994380298967007224473195155045148427132153556359121699763134226462303599041399577796073737269301314703820958644966598221968259736082925103568546413706532347480059957356298887885855664670758045979610725901408044224121679788158534464612508778109944761253932447962149241520102957800550975718890576060668701561148201589073363528039009507060657241816216830824569067918507750836930325156545556890338877735151578324996216075630893039796156363543797924485531494260584115797434179164063967425688018969759244516992089912885853047106307313843535336544960630748634395295675860473894576712409316625675352372991979574771475522809516376033314293584214272223526516055775142095351775829685598413833571840814383424008330139688154160548377296414330244875023518050150185464336659816236861381242285404597846731222152962598824832487598413732455049964048662924536889258875931799505598283564183268461615032813273732937208569675762897763086966908051167813436141366915163490337228957186687972956316018067502389811243378925670142783155426624861937305293749045841802581298866593844752480853790491399600532761204870301957421699407759146444958340848893845341393443773874106168766778918541728358115496812440542876710572590713781497302223727249315283936289409401975590041710534707756976514381293079997965507533598256492025144660067317449338894653982004699806130483623583221948565307002761083752422794622494863336670398473518691269093308385247525269535250853120220006516515221848526959233159165475487095586941437486393543010877782762109839566736132894983597941503190752020497018145053819258082965401884061414010827218937270632299189383464244467838382301928232498569904314425950792011529831051109287243136936006325937345314603602132711188769152924228856252354625536457676961892294536388867269679963858894267503497531957582522878713208249379593513109380199028205800158391221165162386699698471764551635138698944453916874148185095326792610106379198082085067555863863295912109436734503553616403493774158941786803684826979373365864601237874654834795044719152182725363728149750910001031376926690859273873894389172857797459227973189903024670632329360144501464549060712888520723402287194407498208206606529188693311679896547538072258082405856775459777357495637635525933746206908620492161696634818263627938714986801646659624220776875238915191151792000065262621780081114878654686244351707679941794909637460777696875850147417350187975385566159761993687512159184336632267599209302834606993997815171227323326495903407932764620255157495814035169330547543319245755988961066401781382568593830327023398649888312264147268365029439121088707789042139281350660566001768844126834748731654324748425693382294930431287171149432126257739902983564352166028024282047350322029063275009193399599877034602877261228798774942758565817986175320902426972443356868498236327364825236794185153969824961384203889972792880066341513581666324339692169599942245359335734004028255946889251512112871859068045749778804091192374450450567429643323046144124141979762092068199321296548311889957121106999685558986955610833346611713146869759894644215188891920257865059813202678867627246048403349441692236330018136542673606261837673440689862401463965431410973031337938169726563207272837479384437700759426430399457618740014650004969707745631140125403617095866020171679103364412254454118433354188795579830913298021715408592109807024838599524284423352396189762974529052952298905310503639047263142584590214748187988777404532370131105526865682296217842909306582333355663151142124040376074127243685232963154584525220175755664027109574067034344035405870546525637537027618803458634805174735759427492997429214530814150238219880372894368198550587772062126516877776437689990913276830415368777337603028134135718306593299434857960705748044252794956282098691782161865206105928582871166463153215876509848064529626244452044857896074436850946918493415047785482785716031984846583939085432009903786415343729329617957009808018721748855438958405380654459149133029263308315986988231993997799723935348027712781262948904827906127466600158122764422766557819011363402916030493443398206840327259450460486609751518579347863787161288011909809383645070051607101685182608646177535633874400335394321052752798327499560765588339033857094009351820530328080002658363842735530478004863238974596902480703717680763714882397956396157004352486949786633430793517126256788448275623435963304528042432202039142336584182519266810365045418719829913482069321039053198023133432753232317100495227211127010550270943157476910194537299753015527205644804026463859811247582808825399560846150098237804883945111169227836830196042905860161471412154660268661124147411313959584501060518902738734361222839787786634857905069736540053025300597393472111613085188995926815225102529843643323165700770582466223218318240312774849869990698077076087134121104659519645041172749684031729659627844469661230692931205792899110462122587331016024411823394473674655678824033667876336406527585041910769384905377487841315824195910810729064767149833595830802137317416245624106594592194550893128632279078074832101334872315056933883395496660167633484517774879739570809186799833035032746932798194437923212514702269636752306673270596154899051690559675563443242541870533818937710190977715712531750235902126175068892589259273515561171679905624219674184010143984742711937613017541331617671317004123193604450040738695136294785426944049193866899837354131616731401029450509688854920248996393926607193684396132278370495916263005665633054652797508136333251084701716666755404710070038189876408208937002699647965461040103210296406467353430472170464025090983155826510136647225025888660855187425736381480555404499590447941888617968396451206404935173172114773404652621829498420859723792740865869993778708617844757876393911261176456397167011722864478247513340037835871734143739997543090224801801873702016311509885762802090157301227694342612731200252705012564039601334788533513373769493628004702298585222685589646613911445184820218727889488515802907069923658650269325473540337177412955418038931031994761897718131066199947175842905887554816344182105712346669641115336743033057772622598221818001664122478963327349631056617348718002619381522689419391133981818393649547706583933184863724838787177850224374497327675290603612211299009419230612233086382975361252451542601417183699568351781655107557189165248249592234408044938236477938177723723586654817385897098441829841052100317617477553805660534908815135209329717782745081348765547982726702193379869396328652202123599518289324451013685283830885642917562725109548180242305472057623980413945748285560266451870662167636986976430058041802938892078581457916137425385010977297877431667395166606648336322063930791792872780590360071532477369674052733564814700174022083388823947938382575832752815174681903157482035686885922830784071040891792937874446737070695198715745141241897664098285773475749253576880664161188507636193416345993238380034948320676552870516993724895077702633253098681894969064360087599405104906246438971815932816041232152172982892699337383891690169161038918818419794011179549064387161695226413116479067934375239472218555417866059071511858095648355627970020315382329323593579871833279389341946553507251617894446048409878363852539579682590466982295630303061783925095181743539058578875146560312554555599444647543416327408789762185825890249777265344059022056764543673107668510760539822524981288624099563164637890550414525840052882959581533629730196112568604838711628103218496336113562784588691926504420112847202083941386100924495414092854428159747445749475437942361620405603668503283929985474326600631496076352359311736119679268031763719745667068340037839793327415764902834507677607542183671732407046698345461303692813521180165151500167692223952203883457731941331018201463913861281402097082150513696766924245439724303528633423242732866988756972544896815582069210897758277921178657816484624202227633620967660955433066631159869008641874646543259846621369330736892010841679127081440470702386264788252125843977758796895030692297000699710008724824487313591714831204656970544815913017578331097919136455580981247922253234670136383899136064531303345821985537958025690799937819479629468407108809736049878855956971474228546153486532269306142932416776291718564534389127286415283688520242472446933742203061916875886005820716099637913427579505803541649470494488721381710773652497237651751131478050048554419921798937020091264854557314852639292777098365220576309483452620226459018137834157594771845081489366719113160810958676015979896341151897209180649935908119100677757581743800651932561447071868287296235668519308326236786899767114122692214431874364086900700902790685418148059962072856179562817818280839427653904679001110451285550883365553026452949167280770772504308512077266002970438648549388517005458500903182367519251742957588854336457206563366873123460853235027024703440161852861292493073123568430401222094529754344827530084325159660597206373196035764999608963137048370414197320906105308247681488849715921852926104519997766801479112252887445020020386270110720452156695655370804704323181928070523493018614922797034648491718265488732695576896734645438836424200570642438850589181542968307888727163976863279439732303957066149580032077428574672007089753913984784497232142254298397758134425780900043397718043024153706062363374472008200956581201768475669565926511812436453300057018093499416604575286385493837637997348692679537173779019878225154376025256556707126312530401833612334247688015651485391966473969990973750029738646410441296694781578826983029274322707600370791621823460419273533139477722503944192501347860478793309939083890426165279194720602559931477818766023794862392800208691962874177431459746874408868903398208406141417395213742428962174536646419246880659940269754117800027751448628054966467880861567107684752442756984049530528423023678646600488993284971920955261688502054984071701103536377319735306142579983937697179824392029922186948044103031116957024534692399578550476432777236345977796385401206047043177584255478283976230277547651981264241988664203861112158768237376217375366141349640354512969555876605000942440048742781336883426449514318722792060232952132589977480915664809579351342973264865096131566284354786605712977175276589296376205253768337504871489028818357280375687759690744606632504468395282120078550587114046498739452819075156534168821247838573887270400261998869308976953951086619204769031462792140301184513054406026881798798678303218769279331651854070922737022578270879712501401928470375065747091623251160697659046350000625743229494017104360012922798454129851050435161734870565821570134474881997845691741698974401233870192641788756661541943315753268464837626045616165370510348539720272037788060618260990304304158466583992911019672457834022026388417414284458294007978369884292400395033296684285811101449066356065871691861895533379139951626076597936400004612314799757251705430925434080818487212083608533375495039818607690794552128828853532069293374147646811368044906181071969683003453615297020254963440919489572992642786350238250823441515502629750114492381798375683233342883261895891505210619090690349935040447834660631720024378289534491169873180301352383888145265146123136538786814379745591633164126250440392621470128757127270155076373483526102468656142831406092261358881678135695352796722409520250992235553677421057769599388892845534210334636964137493092287786630662385026006121257436830435968208066394516084733850122341780383310159485874362436318969802089625942358341987847369262380707290247323633640847548451374176685135877532041972110240845917784737199600268695144453221655548199962484718245639683589820836347236883478349111919880133099462772084568421254411668548986246801064113400423932090186454922447845996143250458127369336415843059852196271196059827281557579403341164568072743061921170513041924053432534251297138333204651074065807570386782792072333929906092484139271728534210941808821736284023591670426797374343705836781057896905482763144602542912765885241627633710409399989381615342276574181796928412647455985059829633299396589772658257884306979199292927636820804726751971909979487385999214180040083101311098158703202863854886696354415201094973015611845860169680572511414977054895702078649210816828527404499242775831385951577615973534330914534620883891337675884011169574588320272381613663345575636433460068469360971056981550409545416346961974933799485137442727267939207634715620339287217517840993960639305498701688482557706539648312138900161669049119834714965506028202167123627810563787055580363091615493364454151362153100514087114400669090415059043988080130655142530333302509476427205882680940869938817931808961626586980254472387750006402721168878567132962223271952154617683599073972802925100559024509320938858876914330160679756798552915160614849001450454129966619297696293867904063222939044050661120856360593348698213358618614677074578713054930043573730508577044445275889659142394026623089659493540495253374941341103737560554048023931782412587314849352197496141876816338097047889949703882291208288155050098952380125257257949762150042643887848628412193354808875671635725905962909178538376753138315938397852242260374017294324616466216918575161864504684394931748248857948672934882062544632974938845054048108115937076155333817457015180196201553316187242089810307101498790095981341433590919838968268733449676085289854529945526729782097249194026175813509883893983835304909822185059767007175057709140273359971115369314623010173634867450097876531947223529597399767354465321372232329447332789762025375778784417731211697476559603156234542332265286631834842370926710401809761089202029572996858249717660088399218639522732620716071024061398927556686016531910483582761932898199773015385093477456032220130146313789214553000824527935201655671107251399791490274716717238235836947742702087130397603450055522065559616519710454219725274381963800648229760444213914653897545970776664233418169589105276133106907218686699727858563453495477546605134316524191228781210886385210321347753650714614144464786426938304196583734975429597286163874919271553750726271518301320675850333313087204781471099343454836969709143024878212619700907370329349467984842756775930440243113959127779648198279341605187046756458350724732001061809530018845454305418637753692585808925385453411315917418583460081862671452496523755148926800443074907947700359714122014498027450555980462084850621514451695946556187381474824811334517442759292191358635524914232614399688320672376390388575287112282642320242524569424794099794875197610937278442046911340327037826994039316933514565203704842879883191790213472307517249827388674278250444410939600998055623692438513945179776104203610175343462951272097816348982589525262236419605261665254372239684448014819793278601851677617390903162855173296387578010692522545673844653116441694479671363489418679128559790315625096382597215866279444950997872537162751741515720831121732098202058203373745118062565297797481637138360669927529583991034004860496418850228981373947536966151353229258945236313904494549727579069679031139466054157203857176375789341755074228666925066973756105337109640251806601934742910909022711478365004483938489109637979035566695186282144597820329840546062400506496414229928764648693186990462907108746934523190362159554059071573392900334756421349390101651637278902908211617412923617251848551091896187321806397011759284808834830283094368082825191548147920107663121414111291391620352470696010082662956546468828595424753472501446140944337330429013134089710861412460975756404053060604987886123791450531830544349644487783766253731162938934159665502860644072887092855397354672628033813397295080915494569238274905141184964485964536587305454537949838841535430335379576942323218124261165006196759787517235680331956824212043585432012881846145927277286285839870568067382322930578899457832869315681353859041195436725211848333209112545122521365299478204682613217560366641180867736982978503219237056024860595495664066242020632464973275376573450697629896073984405813243833304521195060221678421306017775229225502017457829564476108895652660571159775671483765660240814099264837086212869264252465752879447173206011442890843890799797514643025367900288995907273542149879115315647263954093564670894300273922318938762981650368673635775897707792326173972553079886118312044120365354492778879262981205521631329397961349582450829002843169301237968986896370831184420667602010085000553319844175515579791211062103274486743103018269460573253437424001995565950712901860164992056294087813723069351899203625761607954360127861836859218442154962800043366238696678680076205278604715197708730882788507679282720970141985143481673727100376511606602649755713074107544123796484594867726339389945205679527561706461176025714682316102101784412180975980068638893802916237999975134173985170555321676998262739272498951706869674297454868056706803135149697379438333845896668417373263742303056678751365121550838437476915202958121629894661230531171774690590988709545747031630144939919566560987839159244011177667093625943700098673088506829942499549118079635672807838670844257886665723731077772712076040103055745665526759570527451458152923902443201441513549534925801821099009720610525855749385596645925510792354091576201794850991549693390598008538343839203331447111971348220465386621523007195700371041618324782773152813305580145536794651944664938085175911735858738191955745661800996855458651417435454725498691482118172945148475826133923633973991455709885872713099526515100217520402382725626537978339486682316223470347549820307062760536918281876442659872008980636702182425398813579239539959636086711203839905787372639668732160938845867370012357107067202148281149505214731816996256573145416367471855088296627652239378000141454909230973620583040878327550061777595569464070860325355277196901922735309955862326256244723052350856780801987484053846604553523865679085341586231880891223407892614242211595122610577828041723851152850885641657948100517607554849369089344705940626590952638885217262099081248764614755317351950249603239641915238880049873926369114674177072286497039777294311824759169936073965413149821298306995023058738225330007999111450359830067900461443155197201980283935821104321744892501431480013156465636908616319905729555468313767773041226265213391534352467630205327235598981441499382531175128857362204385033537242592342648793874417769975640791130205386860341797086054181068078800560555840886466359634755832965150088695038079608203620973192519929053963899265412492337628032659048192234926378054918239263256030568922922964070321618264313252512810768177582319972535539462793317403579276768594947349085471704689213459184351533661739475368872724622126945434120461176970676822198232114052394711168998710010294685742057393729807427667918373044292990457392585096390339542878520633996405285619480450707637632674379120604113208467724617138635104578617435511032655750193689422701292208091592429255205688857112775052253673715099033944385505108995998666944202702559524946073903298300323111827524854506626824250815245011788575121559473984065637670598860549232604716655792649433921954495634793343656918864307900421874839449189929018417497515970186287277152267131185229641214764862582500071285650721683586900932470013210118725284859125806481833348302505376962820781352289395566177609160378044843497194340509126937832084572843167386590915259980857227664906029232518597220962830260361809592475752264141032505007057883190428359341408875874184096754427614163264006217132082412031810489112303739553580252974988372741844108974012722930876726280471722917719074034492975065010675248205966278566381773478092779986628998946190362554494386283256984378678410218767354382395402796434865926779395190916069653058010996830411183780728140027541096556797374577861642002588424168823015461935325648003973723110481667401512107982477073690542445374117622324148381917898687741954113410562699378846774489791446145351412301522200031186473233015910045734694601312630615449712703090740512858505856287938256949121695422907653948420082670489272573839063204080001814244885704142946869676041392972503595547962914363444477167769367779226089757962783403588476496608343949290080965250744870755818341924850845468540005438753091964352204816476477088651098438506310999508432586370501903569852660388974355527626278061204016655666367832143157793568411551933843437674626924606488048393919943823893390483753571333862303583347410986642843795076691444849055646292359566423391153875608555302589254729583981636703275722953871530283573228463831054009090450971648533803809102288838620616136392780931229878084989404919773972110479913776840061932603059540657668870712549281735968897350245292744892310861441311520788563705636494019563305410675998121520990942345924359168444952957864250821722357756874834608459286146681343369884561888189077631234702551540883947727007144041336319127851021185047189082103401511897425909254744006845263119523159975153304552846767981091474869226235665669990492220522212426771043160527049319625952122470180486102738354746609527901871854645266161838045794833094836963014257100469684501102710439364643030518060628634701494893155720289728975209869246427538388275913372913221211915173161179194801800904822247755062844512773869347125383007782697293397409487742455959392264871149877189812231380211342222404494006449443406741273478421065082837964581855377331844417498632957024192595122592670822849087354927450062212966898491333883444572324269571728209368635100983520671249708407346383530293490448350864246818528576587281834645494033657049544713468730794800442998337659639774176430033034841599500632126636838293755999896355541341749281397714006234560033989047530678150895516513359020308737031026280515848135139539493708389448867303571128468538035879347586766689529196561288037252691712787931281294876433589566535465178221032662555198983873870645272498290517447525006721644346385703895210513560329316308347611260428828243382682794614708974299651989044053222080550220748137005077715852713543888324672287639586359473185606040752947894439285649726157596134705508231843016838629408634051529277234347053257164983511409680744770707969766243087513868068589183549030861803432354652980104005060166690916651539483688969413335710354563234490769195656789811367656720481545371631213133350190044505228714632230060783221918673861127518851221691675661503850834287847060743037499703334763216317625810394095732778452065448104349147468389709822924969233266369578545050697139107615259329558312522352172864041521491829496295933574975131967972369694938751512976883151992900531658353171771536058611843898773818668635992694814996906948762910256899382728074491682293426137709895813715465853778193634672285933278176307140861806238184764769049269401250105252104613240756709981403613691386477709293949383457192334696696794444229875480236830488212296727825105267085205408715998273033385060152953260129941245381547997463401794942374600510474338290031207204980001110367243560712073841491984912072973579718401684404656339731425230241958665028359124752948177193145232785950901427010228614976517633302354100036871119951710060048899609527855663125464339136179968071716007108214413587620296225951028747315038388114387123966474096081238096699264648102870971127194968556289425771728856531786702848178512268501834472856482193563206279381810042597637295137227658010732847557623974198605600178497344039287152651854687874846215999270415905828864007077730258619437060255722338698615131380118179245944988736819210289846001981288333600445086762112007932480596166896111671806227889635735197923330338576098581422495717994809842270798450998957464229607936933101852997779520998418086706207337073023582819563358023527981118680017154192210932042632567332819823250171982115614916541540709562892441302528114435791709476566120026239122254765822574372226790250116852246520416496797128393996957252423080249701297830065613749740085646250502424212800882297779182672117700320265340053779229020988347671113634002500185598947075233248783039384070818423472562920820944553279305095511273774931176948966555975293125212278169157698011445055509518304080179403796620141280649111441986660476075083228402301332180400526986368143010932080442465692293905005957128550512514109220961618277928343555243977096351873405369864473549904782136348950103244424874744458528178760832950430390424066809464807821901651213707569651399874072803743658408109708232107678108258192778596356112821437017262566591709494001205098952310231676420661340959976922391885037260409187980738466522261453402019354243321671195706294020231259135502608896048876060207458769448560085848461214660107398534851410779908142739880406734680218404439993761654097392599369130028324306845449600210090149378162097829663555650968732105091081061128642418206059375287770130366710798803886702741264298023151817198107773750787713806319470433901205631988657355184612130861171820354022821182246297683976155881337585075544199490347680691641292077242102480002038289523878328198056673083003903007160315766615174211450675758055135745785924632901555850154202120287884772849809289020718254716159481860477239533967075760752998687358545457552954812032579613623220458905009447615709120891723797619173007468768094179671624342261417658260190968526758088610967801056142684698844758411893252038446957352009993460674152190226771296088491540291850785177009078640622920582504716335270492463052878983551416480071374942385640696984128038626805055893088768782274624428806184971719271312030226708635328556860167591518534189263260030612209179125816875859797374343443287052153544100646951388251675426245853443147939446760475317330141533149790493505560447817289813102609700675216898988549303831485899971745514133739000725690334040192830762943622262919151089672339285088922570864350022126391252811606028027994416718534723198020605509030673876982578297519205039619905396071517776696927934808357953618676521436026663170463825476831729077689029240849279759813318078616218184579363809089581158002687218126665708322101251139487127616670343810894234832379424927725000148952627920301734705234863196242503471746831624377138534722774128719213680914517026016847985569218054817621086097129811092167160557811160363590805577059031406445717451773377013549774960963587708489242149893579595456909558591765655898094801167348788077299375038524531612277741026662157306608535542661029898282481995922796563590237142508544854884325790439108628690657610120063883374326957301956226218805471959488669286371903517634870592788635704640547984527180421568764666956510728778268871820306243021983894029496928289957631130388370147008863663371720238439681397315995322197003689103970606542553081881932908361724871962500397750771781038695260977165796984377277283115793708944039934662339538323471755748991828102882017064965216437678523111800434854137659519289240414572906854538842621440189944700991143442201467609528852804952166460821060282367625258935497520657951007968189192013812027808474121295481638356474862075100567554461083433379517051974918524485207999434214803173855303903903023867450153979201863337776114701996845773600191689293179240873194104263981486369418570271988704608334512488901244100232074084795972404697277188590696718431345532402996672168779206550952116750492595454807660317092488933217274247255788059245316021172975026466175820489595035241782691713993890077275841933189240703021424284235928039099770340259893905364560445917507379149305160096549878639205359121743541310512871966610314371806972620534958132430532205268619983975076430203470941049451867262810183111183713358007918957624337225332475429164379153708440908221269011575832621966199958936589659972883983895417329753936748582556895832209964299983406464619279951898795293898864532845253267481873448940636234262342557015587476365567618976225986091488798513310322926721923934808867529831205200450353559615332565488005495715442200135117088059378537796545314879454243269195461947684350397863715989993874066130453926500490491679192112144032514062598725278730638249053071439462312594226262622383335228389083615228072003132063404189899823440872675920930731323747534840130861179997554814618373240203308930359736631541620437318884851297009363271039588759759394362836264570992219275020284437247943548396505141109538048936647972694654032424712602720491393825145522618141674094214781356975830896299724675938464023685081032316918765022378954200379377453430474503594440977212957677622189448189608976091758428207919845362034001253978778843208380303664949827617513952797223777081711542124688804344066544966517928740764011039954250855193153145353593973353270967243601684185526037948712169872805775157335358443834527474203435417034560154463959265597048840884917506159177952162960161377121416922829473445303808723649874354516781566475889481824396423523246061536118265217907412635594203861835013973278120995563036397781325412841154756828903972841812348909888894598749535373886907080124116974200182387571559545019878288741103521130215705247765132318426531788296643190796194319137463014900298173797576537403062387541662108296233200370311162281924246977998246498148451668100597096851434904085975779259015283952572176275767594256519644118322490028296647209984076988964083256645049625132815918752213542417498021077120186050532218167495185814376245770203264516614966941089752053613922621380873867802146812269919548154254169838294922206331690211747981876114407497679699898888556057710748469260849628811532057248938881661942816209837902913456076155302507449244602883344546577123950586169676597147129489911666141703109662796871704780254156669201385967795772622410288529603116903411786236146349570917324554820607610850876198945095056988203610852693079104870265073574579192823596027415135291255367656005354601112714683394682015051931882019082870997998017256456396406299569788488669980047071855923033944031181028424958507122905246833724070140932311759688324466030600419721678716593006978464387033591778666640755353690760827891912454871253656069627702771832536781448629919806782752229346820650938698292404827355136299476733453696729181815864657613487659638215090894573979988491760667757943126125815978268415342128455057272300123163382149271618970890880585084132858331581087421142245102043021199646097641660864314464074991642495342516494076246103210791959952168920393162636406414353005994137363159496090678402765115750611184446926471285731778158441063530382021267878189716734281040804274349510525621435353906854535471915350408658535353665616779549417656236971430004171612461194868583641466316222068500947701661654286155601957846507852413039053454801919743127472761634548806122543893479925870737202863914247807400641633444555859129205408024856862421936590706449643973386494726393214464585086167139005896055795879004670704666464123657653946251834181883529339155364705550773623611559233521203694008739135258617517543415270673004660974534910217741729572804791575172457582561424358518314858089810408308537584396400587975612003355688758133810429455937217613603187145469674710309865598695589757378673138705527935416458028180360385716330767779172862000536329828163788580527234353654111947114166725900751188470283319139297525722824489734074942803279880630402125041130576142419874602782638412994448294505391280442108511153189084171538136284945190822670762647028531339594375566927462846659252094603882638183577946174474300213693572491128131071139583908696345773524549940364357322017551242196975124297284438937836436762737528553370036828799175960976101952315977047854346600842393218603616825336818517139717074492138905314760067630303156090246227230532269777218595418266549826287947332126534914911299754746598655739097208201310692688096916425846415191650513962864889539905700448433757276004815542270434821300607756864366965096891089372593493693183108480410054282792612362290441038882691859146481643124545104812554702231177633140842709750221680588610040662061396291194283139583696661916908760541788453389914328173695020145416663298002079059514888456576201247599395353449188273218161758009230787006577148612247386961921230718294653737777452778267814722053328648554448625053116744763024392119401724860726923936561740484231602988360151933807936267300184461688915765426998236032021212659912323984032412104085462200963220451281523910889711547753792800885160081850760016841039963632702683666483264174065704463008125624423983041435094203336588907457236299553247188853394562510828795737778001591901730112919244698754587915032965815049423752240655748264258889313231166229485849112491659771711096697182431283540321556996944018823368491842331509954925405655987530534281910566264931579552300318880393776717647278980993032745505798890453643514871274682484792430482648330848778811335098548218550068521974643545284636119708229544816171282258709698161783452331897258318954879459208921938240332991427198844737427263987819851192393983414768540151165005035523833015446387076872577219832922986469266845028484796726336225547640001525765501655021049372262092661818825849596170222812058396153381506823408381002959561258234519978456611742006605562117082066511941066900373633745833183566770488676236531702981979729156174621367804502015702535541616367973527572841263976825963368150113700154630379569124880113697227080913681148408867164444289543614513856528800436359917307531562632795483713990318342354194346803515272065502576489637127323884989057901792620869310697462167104549939614390673191626761885105576073336310821572116082080105135625174227479516735821875486348091699802140836703875346104421363262891112395689426725010613193976385557774523894893419260889831847230813276468486947267551101303086460948593749229268406240920282422639073252505782082088227224738934181454134408364758926402763352142088642316081845982910529186056443603972775914056608217966830254293401005372183576629029804883156475956331114335735338910970822008089117268410241885512635335605914691243850975354114212869466958975251492467197269783472609242969689716928886832405543820944746568083147064120440914647229332248451422105406246855437018379783650093577220825167127484709228678913966318178342878421896628284303918349836799353720017221892787917403476681285795696330173554618717610348244898532179719569665301743358315010484891126406092716985311745613860800047402430379396104913739064227317502556427526889416582141482998673665001265377196367210823740686244606089141214768395717851033097969868809835366693162034834753805368602800311349498574835128521307580179597677229809088796165433714170668587400593539224250283053332820161194426717176862913697038308752450673511199495979384899231702177358334193570105487012628205950416773225508955406655611216259607222187565778076214152786277482970092847983114424624017110744616446136443681572949518599117881330512146604384087255768463271970107492120952662374535213334979852471480352447602192096933568829684791476119873189207890402846259780245385196864065404291909154391234565772385806767816910952071895321280406609202075756553013858619836891085498213388777234924539229552790408341516054281435887204279246605912874773775302901375653219505715498667185665752961297316164773082507557153913330505810684103975492200938436313270162593812756459715130118436283486445567398796434570753219978478592119623141635419804150675532908233016025831159383883793865881334327513315094763769792104504500916621221501627153265798260162343776061067805636483615920617314388703355775394301006654846844713338438308189669459294264762948726445013606970125322555220900764949469053894603648470497966778520210429010649686394603997108735567593924253990593922747971354975073551709804878746578330007231119287991824225161263477877377625265469023242498440285656340636406929798397674230903417309034102188448223042895611960066259775968130498159258544066525491786565193372630594739314145002717676285830792733703075313993854399222475386029859421597751076179141454776520740046834344809885470445609496401482807533431035159870146988638343010941120115497253821834449701153615659585896416186927289354362611811636775203938235606762318327569377654315967356164160121476371387588301236631994666674292204417927123095868576598687089514882280704194674228570747312531903290968786602480389429907409917268169298715409798057953588831275014852334849560533320302539482835476218886569016605391907047937238026278023165406146955389391394710501521278748778923182075956604780502576252517118479784079595348190636510121675849071252306688058369008090921432437255624095711324543405305970651691951493842641428942365181497017209752033521722080621537897484858556289847092331258774466957158836995351533998933210574212324360088641261272401140615297216616348543800181774258917434714253352127684340457382803833436575177167524288143862331150642423879069188867443809795742670671217852210162796137564680492426174992664613932559440765930055662513031940250388884004978243489054748578902704190130191107567524445197116691366154492443723674530815384200861236909279411678141683206876207131005907366704026549819404830310052781318525437614526390412132744927895470440650168091373651336961524242221724633924962472255150176504565324453943215343851988059680330088631868721728848480022775639710186820859379937991126024895155977652753377444695546526726399434844034641137808048510400922895877441565480250009050896803572907871076927870294766139285610564618505365142595374580958615538147460782810817016934856270186944491074505445314497702625631878712757320148230044658754961478532716700502444104888382835784850666049572589131106214641280838042161681370788685424936074605700197498762692912437539236765131558690328615730205203559896381204934829408958286029515318120487876736308101307567733674682982127185521079712712259567605715409082175013270182541400716937782691801694458956368855801290086400489796835305020395274936925219453693606676601601062266709618606153247515378133032650516238050314200901521538807349098888130269119231618623308798395892224309866530113498594719059754568715828282188133648433307717181015122061102812191048505561768836262626553544684632825958713204900112295203722008654772819654937285208307959675868273173701104844628950598406298129864844999486984554249011811747950551433337236490647309839459931523870747724192186519222626322038939304933080458465765920230753423508013001196989301993465108385499714812982640136456915543654443108932925133936401183824907072749497980864624008429873680919830608870706757933402285493508745866982250994927273926308470340411716010580641537333808736850225342997399918014179320752660446736010820833784261372491573264394426206925007283808832832376151031894492573803111338477504238979798000417890983620928431884163982417744895119017476681509134437037688537981360139840932838309062342165651417829952075054858527941573064397135974558141433553526106514413438839189705380203001345818727227376086667079419438282113452974909197963987694506121642285264326875399933168404321207316570225460905339437727488554401948698617694206845441926397428554481715456860654092473202585169183712432205811844030716898909974113395655273903963277932527923561236823634903670317616317018280180557621081749784956267790052152458122984356863785392236106429950406380065386367555896903883356464510589117973042872033267228528854678412467918608154140099419323161519723223453732514732910599382581842151221456995265212721543431767974339712003826875639314719250605593639905321010839304502855295111135900739660329389552860801499607445283843544112359296836809542417227990107105093585920956568275600705521106769172690640561879617781224575636905049125697357884677255986288145632660898292398410285378921147333678042070562413978301794713566630437484260035787696170441463711591135772521277011287497690978359099674838272640228301271415265506515603534912034134476588934850270530431070588306863382518496958113061142295450799665529040402383178807726699593344982067078115266206721811869428413106970879331742594734854956092103855351181852785738385501225205647740965175949195013320288729555359129572806378745380373568297040036181390482193375137788171662309414438848131528514262667129825649849359031977241408608738534379146695258212658731402149741564789873655498956585332962713445854566373498144652892857416032797460187483153135384150777615555630145332846774510001227020808583842281245492783738213139072876749987641826585223730256227964627808962778803877568148695350256354624581230290940761132760986813808988554594049527766702546758044045622944508174123017897341752963953287393480982003916496472450081124525287970789002714803472906113851257249379580057671351415561607906907797644668776616882184703048078544021179365936198614391763836318035093742644492812387428256128751731678582355867859908092643185606848552478417631427334965683233624572324149953362973299614856086001616684279103892362561347853262265969999428585751331447041007767828079632396390173633677846841450876190331926984882149488832167002265236625551525978644056710676967351926766956982774234231580967292818996416183956322011627168705328510716614339837716730393741339288785952835762496961355223430848497989177469978680821742112251478251448433384222889120064473280192065333918074801000174933099315755886320915565880923116256615815636961755837002306984971008648585539878745148809023279257034640545772735208333870523986009369278328174807401228599236969494403239733663114381680036820805731695849996484034514230960505274786749534995294346542408216802304932442817599491593523160248225913928065442082152950923352690057474761449158209318435884243636231987968649243457156076684540089353870528709608252255502307269168643385645704380914503324049440269267697393132803943882236491564271303630365945317580487887684113829060975122340308247038399797208365460980520205417176496223760523106620544350394265503373583522231525566084513398303727516332849337959860014318241672151178054357899553204240710289506993932560386004607107717634711556077364275198113871135955578583875099728069558894884743657854626454460200901194950938674660648797344403775366582835997419097367387550213119958723632009921392437977827739898569917553618900595481176594644585736960202968834438039467965575274113234799190013175587126136600138641657084861339448085206458613111243638037058952442271020941822796714547755900331037054703561527624749952878958993991269255939772439792075022131858335808795227922112964702744682216360033034020952886352549200460656641141149711257527239865275276120379818343880681030369194087852486651387433595627793049777837785736203935903891391459200504484619642665554307603111820569612007032429233710257429960814520663230651247685233512133851297791546296679531970897144276764034485559972577069102247413882436416650992363573938816160758533394718014205582860601354614618341804953916277636038669730796734359016713021843102176757857770194367497394816805614368467814006797211775983594806473550298507403644741717613136614047637716501967575572079797474036952478738940768850573881983445189143225317956197753767193695354764972668325621719279171640354098669549008230652153895774949282041798935487599883983820601560962526901528244665253499995831023726447735333534658219825792438359013670415229249424687781497693492926663667029126872850795294219480682208981778599225893829015380088908122050695031547761713900773128001691916777693485981244767754233548844239201180102371796748966379631209394209766054596845463872550174939343526477933383161179821308531249677850952214710735769783937139401679803228398691710520608049171590529131931780069303077994917075452825728941454647710144630326472784882564997424640454565877288743724635891732956091715091009765049392201091545025657447279055552486286320027967811153607469230643901885213988036707094721302514366544083983428067557355666990123768732903931221428167767123710725105479480220091542098205113338558173143432368482686291429870791980020984766280054821044187387813069504960324562511116521950013885725655164970277335819057182956101361725927670394727589852320429765606713844921238128452564492089727741322256265601701146945471988398480557753234062143970044359286332253884175154443002980994382950595325185062561924711174290091059696304576294104220408899615785907282796338420926350512012704800266365566814401522958178069096770241219552681660564367304103142717179366946610736213944486642611248315053695486542039314685088130852704455518692046734100377282179596117942516378695772310022321388455279229364340862906721860593491802844002315160239263535597321150878813482870797277801887781456606458196553919402768550326008742940413436565537344772505445214601169480653649372985561430906764227547416216222983196462736247013754692773529829643012115718550663862673829020715911087904650546340662962098396774589196412628706780479063243595369985733853309943289797536960397971175833548652860453776144497192997370601643244591130525021333780166145628660892893236114148827073434679340492162584137850913616030028822969039839286359514460299176817868456447966588587253547160415637475911305413012763775239673951956410113479891254314959949277982843460300340363094367472611329639173635402510053424481326029270412770305759455714169383103867367975803078230461903959501308653727545302345569282231865832999208059406041158932232585414537767111963709432521440006954163070178292663913140394875849147550945941993460682255620784409900442639067811541041282219500374663418766497894294940964767498532315170616073463280280752646586945334597832603964740811830063187427301432575207265239929861163373315390179064056748136384460441599315183813709396998840176762069741628417243615905241288757059730511778265378725833766375577152745248916769139009252755663008217599880121930052146575805587661088056827502091964453694685056687803432949982072565125644479893478231422039199989902307380990985834139430989645756768988821778166705212586501016024449154867840970878516998227455446020726390122505274264950633590276081969230156484983692718959644347922242449225113072019662061172951153560120929315113698593914671984472371482750847808389192914691387269617578723522680843298293913801494716770237882253338414984985379034823205900999614643011957332349817550320897186592843883972193068509002362883017940370908391458267711466911945961012128614504534406827692842224925300554223089314601124813295344865934749025545924569020608905690881957138739722811122521565761396953533368865998601581346313192793619864086450890094953791708384405498573087462975026562019880679755778278532434543962023902458455886873195187217051094096177488169206916346905325692325623934344029340907642112667514499688797030836461569001875668355265457306939926662442862596469489503329325307978818271097656056765834979598143808006771947949630278760124697257377907330824432341225860548349480354780034557035915455379151024465615941409803981459709378222747643857703289447785142756105153674627827613691777580427000356900714998481743405914603488281038482144088210001152778805450780323290166458215864533684438248131737370280552055397311167481766715556165299516525426054275155318949572233809926702584862360672357503691312797669275486103860569607242464977958223787269639667623546415124721537388779860543657320206773246714400076880491672421923470721895903868828493559252090644364621720111409680727355269558737047104344994930556845723704850757818970391128675866206117208506071006373293825876465098349597560301341191488832228896358633126372443503003382616447151503900150435901370641176473261341282624522105886854544603856895089774492050848714142740963128018832794514479612635832642848970990194948743509668604292613969487221890925444323575120506154963897914465701496096637409446816889554673182454903079165482837545809165392041588644835022091976857893998482288861479711097017456284962342770203418403859048602040896987093517732127699790770059018309452634671035202257345975920891969798024699013978943249037886246274032168550914429763880175862149408994304620741953388549296273027983120820596179055600325803507699810938900128782807334841854561372876793063741033171646291866449058652773163805613878361197155528215582755987941074383835588764609004381604906659970104606279045322539896437553746603469015999807910675759752940309590117302673755447673758670154459548374948880412423624078768351075138679726964306109617690707013869392963475298006496992924634050147537376530879351429554811786194040141511202351806580381272435677805663644008571276213444473954544187370185094660888590714257791636568663022445558196120839517093259984935077961505150800654901304298646578891529426942053517362494316205354479905819032407379340522995307456341461619979944270202803950400302821840319457731222241447386474390520409792340951166400093666138157123923347953642187549019155593879001905234558404182245496150528935376284854528493724566817876861418206669663280120646986852435267831907845192079981626778763807653436570042952877942706320466407686074926838652717498815622044420329077477476155681107851859288217016118534000596140003560731909193350791844605738190427152924595139206557300228792287545890028082758590843244968625134922914890540959603987336066131904544478781023221558942387578481956408153954843208752893182015219937048364129709461930706391623023334772802514184207758047845124421352208879364401561909886309536798475698113949389720389551373802202285480833065108508409843193726778167680954671051467005486696378414054491544519084720314499404515993039266517017541221592643309452601681438700343668650306175702916656024604265935098687946561911487287581001551822776825208888452672761544058958854976242923506933400331382749328847551985405564884047209207382064102160375966558117161557712971854988831211053146091121291235303247960975241368821594438250774475988399689182741099856947303789832674088203802138112159583987208999442250487399099420918705685426812522585225490406552228382258440931953198561001157059632897384717907316257197979250510146240714722076394178618177096118522374135909043839795118673983791752627169482365005222280190091601510665559614057482138881214090648481712488947960731134265172445354201738024477721191870591828574099288610893131436560766980921050999238175956386539180276544739133550262897504383421597728454461776854500726289039919963318498071373948115541561208341228815215411311854432886414275164974309696039527600507421458523411385690032349831570283546155950543372824126491768430923689263048967292342351463333428336935457686197907168375492803595509631699562521333042255215091812737710455927470871172677208666764142185048505237750702326469382470922406906471681272286350674971265089843344037281273609546782783202237965586949795477109157109839184922304078774073073373107435654067173819038609568648580056673785733759707756174129009541797770737275733697415916413600390837968546592583749157506746709174754210011573169750217559872594141665492327871612453581944145470596158141585631160665252189306141024974338012539424165482210103164202799660762752593726451431741657870978249563355422642255079777053524396671518289332249361689438566543769766281167088432012741136892899671866021769224444842525549844044499929698121798500182945957189762082185692484913661682677997685133486081363612108300631559546402119982936928941929302960991277197658671584255027443502320736058103132198684810105802248259140967340971214280517449422349231851725178095772990980551505958777073514498919049047332000901250151361435088939751029655309761571600919700361422225068969976365682984478367365465247653510463760124061503918412123998376707380019418464432104377774851895707202615000701841301020470649682173307947512817293555206178172359719967322683272763165143271816926996919149774749670776181056214619159102957977952980573661158985255224615213911704006463954929710511120457527402079154893762331209891678809564369579130394777037785231530279016522897093641266073782289374304944748778008244620999191577683433743621509872914627712122636056950613628586791568953473121010846819283482261154010365675906769511975172691890160168040496485992289982039443922230020028496788533883798421961626456689431202893972501795342884947752591701005292520774206026722445203307975535087505219545470099675704247424407610575808156805991655939242181178221094962315368979898166503276205164516407512024610984560290815288203103956819359315253423992533993823631375588692889006517274809395132003630574721372500329086427723553097754821446124939962374536803671543390805937382274272448673660387153394989779604636460284167332214893139827837730369473213906159285007024144725985582148603224394627539429820605812505327746844446112218285168492307792032698977498812034302812020203791042436738178312723368541523378747917839823353260199946299993184251470322354290668200676567900204965727206275371324085067802173529732924529022722032571512553676540326918023595393692289775771304216980900353584843949693556943121039717996616429692764151456659120961907105437969694901538675345093362627460029122302947075972879860992191325010843637753035982519469854386421493491782846504453858429373717397692039728772622756202841043959049193980785301819394239759595391397135044489105505376520689874887556122985444094573344350835764448253074245718794347297667164203763731560992234306666557688970113038526817273006249303583958401308257378558854598694867250012043527397430348705969440206662084006325740554467996395881218669711665485918325994961467746518528125450043684503640191091303525189858734023463281348781717929259295420956443644823217935990301322258840777171363734452752008505072578983717976643878714971824315529999467800547635628322552676745471041659729345381170173989166534771094579645784813571613613690142393909786300200087239532777837568390239567976847310246509581121772503594353632080295025291864885329459628126313914972220294898344578555985832672046134332557603820020187437014348352207990947541566783149166786392190964389486688699620508611519294827464123308752727423465248222797238880432675450406044180352468413802194775315016150769528407117090486977909173045259632936372596145216457194657777463186318636521384303871553479247787948749167300263074565389545408769464175275977978424634337122091519148458491130341581571960352720550530782026548625254562084200940461699589133962115038567621575768967188881293898786190827449540229875671051961799919206274597518311166167560458801223810594643949157728921991891334669880219487150187268420042248502458242547805661552928548629207703355580725650555800129845166599726646318797218953949214420391155348476805200954317922839115037830841508117391585525027599373910255492551972561338842122477373519786810481739582653417890145517586488764916366774725593617476914790092423702704568498765584268642881135665608534322761102104934900765527971164986335597552916929426433424576628354600963175443999964017824054788037683511795369829233417738617036708710596677216925589756971553122904638033692156880292084548859202147007365460447143967517103530149824511298250358267793586680337472750272384336053016728965531350254660817714472613380226468976614977351437687537376274439915960956812960384082627395530635725484685960122428198806077482167722050662181401391193415087859629495556915777990995256212974733359366478263147200710139884336111732147334583990016166188828289666548396672274850712513815444711727202456698965049199540353137087527493723012455478899796746942542991340075705111026186592205198894271922886617115508731437629119729843074084660660809011806315090033827643360744882418571840220654198363757648568154845113313225653630850131453061702504574209115996367700623384765826656563906308565259247723833688466719865363340163960356590439866203128697431823298030768096910433213179740595655572903189123781765090394703412945775472441988558611307562877498215378986652445665424393737456583164055709566012696419082562804799736304040458686399505894875909230231740682564628279659389857497756356483948756230071095331733973123055176088180838572164232330617150298587725026809076241574199010731454103495533417035580508249672727084203372408343699004274044200314056607764605396553524656796077592294313621536631990373372997332221823468039935155665964637183161478592780793051846105663133217485116008953749585535704941198401750781458595950544950764891692865943384361358753450011797269894136288445150462255141839643754009123779083938057109960437353904443159369078598928638008173235319968331508465298358111212775604389222991929359473103411456621134401481047260787984470679882135610761770246054768772978244469834160393908722493567599734754979423996941820952147338737474301817471785397118730957171935585753856544143023122424921709350823521333083880050393369676088479480798630482619309398198647658882019299426416353755353538632003030983825442509155100770106119624919918670715575068028222893126025400833692582708013610665629245795082957086474355377962897127463039196560430898835513467520277660034460276273357914099321877945522232765262272769736941328473853464359452532716379866561852041748924882920227994416117023830930468095752311915063103426949994096390248391054582530304565622247786703665684225906116890377018546423964278432182206243824038501496633166072374194254674796935249550829553574926282223538604265524617804851586748569884609709592105804195915420818707208892275967181769126495962847383019674963818600883792722251637010110577487504030767438364020839673199077632941510528082811830328019806143707534882513305476036417108105176913410589463519828078512088186923496381029716611926638641278892918530614365751930573784843516199198324309840209316043794906750669170015604630458492101419048015354305561477630667611771242279304146690995093125810968401624171103619080827789845264144239092274944256599959810737535537348620449486443582578306937047776231021312480292554447393805763677301416663589278825611725085970685874299222776156178072278240866134351348572094257722413475027141978143366900629361816682172231260532856682581034363230282425195514705281350917824064671296036044765668677276661411287864795329772237776768252513197344259186229675820468623616415704995034660322170480696585264771446860519524540455396343250058136070231759763565836263787815362197926350173311510305832668117483052610633383962626091335859337346876420015714450745656993346149485937783641631315526086065995883636672545221853247338919343220658527901711646284016591907171688014467754326173208654785388961900504876752671618512844873088573039619011340915812578419228866572035249689525117271692435937215860006070169403361347996750518513901636638049183553436981253082879435454710981947528594870999849221777192994272226583462541761429249029195254195945171041875441651549418544206573283399849165311673210932880680731733481179177140283062074582338747462111007986813311280741303072340269050113244429235309675406828486616020188943918995440137897644493393356605633408773707299236041708629577682671326466927444083732226928187900302295917973997554310715266509718371826215152647073869371094548855934396798934014972498217511957186306500619340141035506452901147011638626473800401014935932311343622610402538360121560354700709686988374010905823097030383276178067882826048043457872590113487001025923084247230378158403632662553109299587153428294259895707591723504490881591169526435074759697604869012851341953951017378217135380992466190362102876686688929757768030642663754360731775790557657829415660675311616444784791978812367436230222287732970700419691028818923212229537821103303436988408823500379454662416034237870367164406038341524726875485668527294221133930777114630850595557483483667150489448161177683870212832705111434372110334824646574845090823784169829388547444924782963674283379980914441154150736603611711695684765009660138193142765783106035908261796121475462590006243465655192659155016600691248886317501634750642466223197146997746436653416756104054373751451312239166255444410227436119657870769991747292513528975621277332697500838752628933540308083402972287858158165713851101948143027952241704399633993485170986851545204705642659093947008456841369568846085100663996163131736715242002090603504290686726311625782720378231432067913534109656756430967180677214212261645237336351547435543716535989890049593755721137310995550483119779639613094067704076386479123168013099544554877479796499419561626609577044231323204934718727010161806412600685365331324302938095864806911937471712363590561671890221130445455476169284255795586554917726288449169702498484137071601886153501792095486307390147346664656077192257461064730485579001053093947164979334080830338074387107436220428642383358431274621857666129390666434816377565980338901577363350834544006290875405088272378956296642288059210906223305046181914006628456965628604282162499106928061573100949926905072175227510837940252852412360678989615519613714042629436503867392774172022816970964220400250457799298355544471553748268468418727477312242152085090421504341157232338377450291328790401871854581283853965957552426477157759983466622411998366568631344303556445691854587892772405565250983480919922588819072548608093710859250173107033256718590134502328749805618871670316974215639336518057152685185369213678799314685515208993847099676426526841618033491362401390559218783118896410094611945912632470828248332192240657726598371197664318456237682615237165479119147549323519644956781365237758133649470493841574097239218728482305064564004582005068922962267365309605730689503948125091120264807868632322667868535492597043263326951382775038178787384198323678233021515877949592447756647846247067958406857653474557149649934551077098474179108514023141932937436605122685014297482018891711134712700725518444282835837064495760424679766659500909477983067817974773685754898134477682047210869558656804501976597554256369571909314563002721185723583749860815824204512848928368700317725395584844570177361528208440394833823808166825636872500216720111340909458578668774722215913206164546182186821360794073712746062058676516633283013123623022347115219176782253750043971886026205993756150795403092729382053285517709924357188935992403300497318164175931007921962442963981611061820561330292632943987685106113640391710602584079509295334831612525593918604061246705263134927669751292239697741376892135980723668139763816809077781372453128554467860304172560135486791345053344882367949468160201182741793380255144380378158716065707260614360101905164173396484184506827620075200634414835153784568062855429831554180363095333493427003287080256410111555314845902499188127481670569241351590677204321392320702865258334131836847213852680684646527574809287425466773388817632347689646518637996006340978168481454639009950042815930713358347233148925168131384982473378457327927564382110117276921509171883348102767674710993318334566549687210936450260642285742216542822566226222719567757647724263056010993102495200220849186488254725621081206628335220146490977888721371229246299672711718187137430312654972272855465246935400850214381020111672337463848159898657796497405988132892451106060252785761434330826983788229616237769154291575807346181371171306222042865491887044363648252494621382780585121660199627315935746182602162496545470156983062200926610540526841142505524229803212915195846387082406476935691231571673088415172626184746923142848547717762949718957796026576626729516204467786146071545361997655417659364815249690947111099317539234897321566777923148686721907153682882097111709021329360525600762609386671525876904918133217342342393051011326805508985308036703970965319747395743885841572878429821433613069390964144559300164155652523926424657975397436995075895389676100448397854071523574260074063344693649935618651779542358595003490251129350898998604181964562820297532169262298603120999430811008339434997131946190484034819377756689813719118742616394966415074831845616137935822046645419063089814002544513995142870149901876388881222670069030225912289108572571632060929592756100019867364948203324800562301708465124527560576652315351972221542872650621708566580352310534718814271547638147052722965658848946024558758981540876441188745598980121575267529398549619661559181131354834569750925914190528098911645834566188610377768966033611083768105560118455409874396791362159355264874290440824095510765047507468700904055933857468525281151150339641753773164353463807141663404427289409267361571001620101346425519953626803167209844801124706976127968734492152902701672190092338547084282650836616397964160187992933455389073201665619878408491707794769369829855859333011150042529882090442464298869964513326752524974035181414684503559311192575051793380923270632815063810027618085477769080353993882477141335329692068598847131705472076586159716731153712157093862112734213531826943713010581693250521566244848242535694676573524947837477580315829720875697089272470854925595734125785463406000880430527835422534338627630567920985249350003170969449506195339596328998305439012129393560071159517025599655391917720752748526370960856162166928946286694394623303148338802888051507553532604835069878392798109348775860775057882714323914693249248084836457742217731850823426724312595724503964974214246899384390949143709410500121017690561449845480189994214687115260691353642433411667558361277325874697575051680439868803749941343721917287601873350966734795061937859543683405766323992240608193218858788294091850741722184831192728679308340453085269655283305957988826081195329132037915367036338970620018926375045450894119749351849786788228669456692048880110865361997945934140323368303853436828085838894220068770197319023584163637490944215899943371869310434577346012158265310654109762148309758412652614740756398142757943326804446139016039581199174531907536679319163713581341472816174135947744811408180054596224100327669876109310655113864261410772154805620470155441171733147191019664720749998391882748398168552628152519383099011197587917410887181946574281710063490697031393239465276775881140883645334358040552078631069394731719814965929677870122653494201387611690326229908018125259540194524971557605533404573688941565719447711789490590674878369457676965317200937741774459804625023280492853178006199501325351664094359494544987751295444202010790922463504241178210628880389526921163381246577858711753911682228138550183244338239981659701214431760029146857120678953053887572832457996571729386110063240584879778761208861558315145059697274503977538530725939083019754466723640572594787978599672236351169251575236286028432437947534945753027940783459141105937153038783803197724399309563752046456261379233193369514678420517478674946951056886810418278564078579879731120907531091875956519531312711054050123297027432395481279198682843814547815645117326011009612580130585294345483793578370826801549612590529984741502159455660673920761697519752311831873330288749359780035841221069717854734065637743148255326032228877381682829100247891012072711526716765088994329321788835413918429133899606473834726022284022190709969608499801855127827210782071112003866937828635774452389516363854436361297428831140680437442288019047523446631992071347547402020679509447351691226046237365197472313703718571137053446187707583546399372104804048921297885466206079581241140425123877677976520884675590276211592530890709019057953496117136514169262877629273893543752333330654037927930286467028851346813665008072240436200322855554019932385246112292187632727785114484406322117673703086514873978428051777236347451329357690140148829830959706475926291687158392806390230308766382333213347076054047519061571439751752623654874563261400793848379473695481178475387220451329635645044574885638691209668897492370916785114046759698356762062547694945524982773811561497859495032210474395238215116279167038122654625123521195431373042114789069250289067598515173456309092746560995279106837007243769423264848532009163616750331935997089563327473208330121545624111382958151606257036874091433983448154973438082115568927373752538548959837057087109979507672258494750166936733611805395986815603710090528931680485840779529762163047400554879623454034049699178795088189324704042083304574873532408826541136149149162300326846057803676168893888004572283771405544011965481661444469184058103274500920841086479957245245627421524811588918828838921791022068592763269190455472724487492535109264167052219265715505794439396076232705452178602547035116738758894951215930478175813062818142542978619129881856560863263391423788104386708861454315181520692562440206400546377682115665934287788591489064264897302301621812298887365023344554860299156010822961876698830147104974282807358459745915306853415206388605050755514758300849800586429255957722172967850210442869264719871059003326453662389234651809570176984487021847237503204305598855845934617308177221916676860632675534151652746136753838459329740285798696611678189564821593879497979726684963126935723537384570464962037271882658290255445536234062427690534424725685534112778311550679731635789462331337481007748898601441331025189878009991549241737472233802113155558439466641477328033077214981880837304055686815220394160270445055247925666988353265160126550443715562813874903285019481327178724899756385473202092248266867117246798545340321830138989078478582910555194509402659805426319576299798373001517245624536390526458753878442247645176962291587415796094943940833579353301248097655232332643753790792637400150623243325940948595878568024372407077548497166486993015806286268471346043306834778055005071835898002153138544855147167235812493306492351909289783809309819939504133702439743712991376405822219409111823828670780081239612213333869210475057431469487113447843735771442147094608807117693957003004152172600191248385466014364069391659229940699529793442331111072997314661934472545663334445942372272929169089388730819658927650637354663772374026819839428916496965840105538282458998923969080435171534513918618624217681680820072839127785701298911954143580693814310427898430126512878789269624323211134896793726922569157243324688541763166289544657227715711305814808284827336585398117653669691012019289122699073389354339132428748916659508248846713514661859534757280105784303459765597516518061665947687860070952258190789950736486371736884621164733885739020535030166191856390402002459424703209482301489619850292288981577308440458986471487837385631485587635627700080475332634499045012404729264071989235283971495844797463044994527859444184158413358753786291864437520018723181232016360366809488399890527324735466939668747771430228905548095585244017321357954995414513750609286320252030604833145195416383220989951360756190205022345082112791753854749728582874955284278412816839005115203898642385870679964534578008061966400776070709267277737521189859046335387715069603572926543278541622538822293126699595032309015292505640811531319584046145880072997210720890440325611818265464769202610418660629812030610321108731191714735213435723954597089704960681129866109258112028113107190406641762187122887704636331332385300261629173896076441629403100799211335143596718870549506690755277976304626888078665157993139938847551762212750429985551682666577020764622155933441439015244011018686036842096740134726733445003350489064448698678599694554382945623764356003177444151803275096718551279915641977588934412576335282253641272761366265191679222217990912196032751432141244549522223385467169616414279229995992896812984306975274056336782881776598274868951769272416172717527489137052375276460397352647706801994051339431772479310528078174167018454487879654038375009717946483952339082456276100325685011370653014657542833946809324831157422534974528243226875251395015437230488600768699485160561260916962485749068776476654024860073976954100533933232740784935685733438418962246102123642638676781366188077735056493449514838286113404254453940894748360174344310535730537653737711652852570708265039707025942287355570748433459973862879733484461789249665520894537348099039690746679870253367079393210153342805496647001457366453078968709298684045968781479802460144882104660339948652765028162579655502603733206262538551086102436660020978507353153613723522137446110411078114977151014568414736645634821265684089563015101965777755027213579083259079325692800851226812396569537611152720110988843846968286219392764363699287089177074616562953183394617691573781558601404686315977763992955812858225814851961408214440189439249808767843392285584700423315369407478673698348182425700749539948200887269664403528101208717496297850459251506864873275528609822827872083574029032334503600595811448366700959766147174570815402994898738381811192509345106440729127216980419131007919138110142392438414022480701515105519524742099257432501982189881241230149981546948740027693913895112835949922900055861817843033472663906608475487589979368894934168505513648814639921569407178004969280308024912674958014410749740921338552660408892122468467220823505384999242625482449644200845295099607169650011870757707535767779565059510789531290562049540394214962864751515350253803255977742572626050277817897869400708670660414401954806442013710991569869669823115162673707214441961471625101381259684377379396250964162908407887439555618868321229008273305555752597603432233971533348813138994031150741077318615699807364444174969096901939743432780092324476706061648306826701775261310394511383235179337863076370623935344916704189823547776714077765981630924399138477309656607080234666524885269622438503925213994852482926208123417742913590677422607464280705158948218163807644021963698884390382352857029816944734963177393806112349157255104531165163466202670752321294190918835370525343881971449234251504910656429669727768729666308652049219501967343373496575302763309067092191869894636476173972015996816700094323302443401512774933603814419580229410565298843307058124216489170982112807650396328365717993341826036025478559703249845717872719202349286952624611415665108382245507349134006521347015721267942878968200987270287286598295641585670594446976728297613495108476930546489963763994473414514121562761342249733071573263400718461632324632182639251821602882764936728906868527400759276720316883846007860239927427804097580120141036184224101783806073346842457109857559460464599144015149753457027652278405952911363247887259659572787938661086444437391523145020927564132695817545803903485600755817680633920810471411495452711424702024807739558488936805508783268312929979813066208255955487831389827766705994147751861321932186546135927162477920665361068680524832384055052590433742111423368666794772258294590777152803567774938565232661597857284280399265667450810194668232883095487914411561785907496548546068202232417638689624960256279386479280122400342861355835458383916286205842961235603591200695300255860275065432303225681507931048341645135719059792541129571666777780554512632352506011524173871605620439054439668607544739260211648300679245460141875753361811270774013440387788040254926568255294371429419388589709786274817638723576692181407944163350045835161430131474338603079486925738210493418979747370873424566965112913412157889908508991809927862069779368998997410663095398057043850918133706721705543626178693029718081069112007461542470816885602659252984656972164842079842285871529196014933645419991564396072950060973256342704779059894438986299115252473293780242927899546439250264969448454120040353612636625256975432141210361202328433911542084011211984383078449295019774975488438004614245650480141179551411955199768415033470872604703622247224386860203551331636271319382634105977224367727310473843059077731500526297305896914822466494718796167656845325355816488831834730004578293110400032054110170178046886494723588124401722624149636806710966688186793547593779853393970421224633995240888162475542702178136152118615866877042597989218283724434276645762711797403793603749383007865449877734866374509561777011901000237299529698637164861164462166094246894112902885558238093622333335552694399189576117407799953848977843991240793593659585179860153023711859715395153509306615733027889094438571838624955038153175837103334539777994764842449688486242297081567831452163825755545179090919634454397217072604178847525461988441532480016915367220526422366166023623386851380680361878142492925178567627711548995402329990678919350769151165361774664120781033200860678084182539805519582096355711562004159119022208319233504727630818496604004951345931017633112736532138363904013782122588013418320938995483239242381824620047997227450953293427526879713618483195476317624008988866950586663202700933865883877618749165542135840591188722914388712925675070186842700807796838839016428675174108645969035254437925985873219836852674028132159718356508687236737434770288853840613924898553597079519013294147626888653032819134634841672708514729001059652730580790934767875041245131546000646654519911291542243947318808556573398582965928716764900309687552472739195022826143011392734915891942344804946964683595029739521434981552143608690045916871301018237256139136593373913372770627831722292885794142180949220928365963751658103516693088459819964842679922123561672993242561762009187699495491722124634608157871360014654671582614401194180986735202685810436282558008779437323897787951540674959282428453079468365290439203801861153752218007586294986787483779211754491766490587766953870899511762862631992308590530167303216482517926414640949842328361164025976885514350372071539770743071082014939190773402548129778908184815360537091833345896923891997082314641706103862209071564308990634304009998486189210229499905410039492509882935609916575403106335798443648954089765880304526393124715773560293410684465783410338137908335003513902214710039030737076218779456795071053455234612332856769244212670808097612354427427201434624482615011656511469853888022560009166635233344273929048602767611842531481929259657317305719324845123004325386775568229969441041230952310620190758459718362102050964476715801075361111190376094055279862167945261447143146411409855745988182437533739402696132729614222599323443138242745455451267770623953291001100467318383394967029916270571984931835343805201158042304100620828940467275581499589775677423924574052717096340602488771731955736928960838997960459512268328921187484930577851038770307643904393049276521727197953764965402387767099765520606345937809246748520925510289711760296707123713462312655239195480026162706951749191222439433346073730487391877132798642543949593470630605270519818368563035857061590182829413424845670060197697663217652899783190147415794976173309162997419264006899954686163489475398854163723708931772223560518398149997401823359236517435298840669404726691698227750215332957687304839050155343995178267991039681795269701078537629728665416764268006333601430518846198220721593939472868362418467138554201453291842096157895643074132249101833628779067692592873404847218569244315836857311378434562823822944031070648724576007341682332657556671537683732332642568443085034649553095211766179430160066871046504602328023280264638684194307661173877612195436993427016772688525860079315884023729657494368120700872480597571821252032966055781062007332812855315552992647379677843471650201135131968407874975267912746796611331988429508323785334620688516389076239320048018208159365977544375824409997877617869316224624102216488623206624197646859002101834076922896847340082318067722007009194283151719994716147078597789452880921805710759360027408837385788093402357363525810105199162146190348635081374010981525420984036828082553497247280528243484429468183220875464029969961255006189313326384548601357958378032486547319305650924607544367987712320935609303474982873673907927883934260267381472596703262706590451089118633763233164220356199252730624486841930497045117323757013880266508448196954661030937831698699231380703847360490131141560193145444756765706094424897164944047655825572948991085886892397441110573140023537881450130238911214461030354152351613030688004745101627012840389184116303600093421553309694707516993334440711021764189045627170316132281710055897321921253808076623846505960207088108574618999244442208053348217728329615320187507978112012670347896889272906299096834009047296239532734973655764587649887718334632491816769785318094042848447490930297765050198672093852463070860858154755948141708583863935221548469026470739413357132724150298574705750465490902803216700611945520749838870694395202980399311717690625695039591858940060576812061694683636161094172900842549858529053836876012985745228500482112840308791665756413795575993327255067738630444749541177400153073699971678205469551785205053003990650441095693157020856637519929450573379900692585730587284855949221351794691533326112155594204789979678273432566316618359582831674019849653377246819281584268485764497261952448340778042508045859652765569144918078365871395443986452735425694984623581158051643518527896350960968764764494071301420177558330702253594395299501199766149141749510943278017902803459103067157707731212243038498230184608265076838142996513228264378162340994839140814762997787734982059698002919490360977519787502924272212431721047977366234146707168802474722604736695935471042622486304439503921582287131442192326303117848289661627370296528257505581911010146142901761247385099009086851304225019649266265285079250268564044842744408713483103304456677016899119710610024389357125130172056703882302377501316545266799744398363425952089049000081733672712814233152247856734951755696355762506101307608079965317818760161903970076175399273638834977094798320544146200152171479377387060171389815948722253404310531505182100329332714713458938717229545213091397910161878918795772693717357073757367440283290407965215663857495069009424370182752979171797306560928121929441087300429722661416072999806113458282997146920600295655994939872311283079686410951585812565418967912898509527646917140976850199286628693114990020103704487452724846655784700891227983949039830560506980937513457639047297158715458979326852179782022079628907690654564906861234894516629933194305470887086492559191809618690065397790755373349785841489437702615447037908917335815883166238776867507075088558949780957045159238113389903378785359240236255440214450145763862205822644972348990183652567545740264793981190533964977300630896364505722859355028339195810701896684013336029614258114818757619737627638208724537356110516043060349604167174802883844040811071112483989729235799735191754383644876251070274877315903444228054201006554169056359815040716752803609053946354917062757255134046804885193084531049260600520846436337341120127422168908536400027436767651606692200512164992974745970214576603034937035020371132947733548471179790665964219375676266380930165011167563627743461160486385015519261954647503010402071205570997902463779047503060321297932185719130120956972223637642168552524653501971964822492580321933629002019000296159337394645333127542840283412493271878858212967450771244594879092248072209033103397204557670504704856377189436188952494163825530210685013508391337222479492647674702501323102897593974967510516933927934501978524041977414940969329280555524240891680183234038489828378321094207374532657823608053150546408900693173164602743523809800072063809728959686931114706296238205211524783132176606554481999612693284738453451324809281241042364799081218347886838273104134537264343849697079502517618244953652892592619471436351879283325689598970189059913893341337901431907229428796153758982076948604724393568113420974118843813934879870614791347821538465861931036565932730909375089924932085992270137112183871037382617581908730701458496803261877989699303400157159288026843534506521133560200819569343251072215331758205519629434465589740953292167257033477053613744073735020577751407278470842071484793126841914412913662199508632077454878753876890391231855388888789140978392338246732121820871368839996536226372196245973604560993227261675755347873247538261181181604137143502005329293840479310618951198566554575608203173758249051132576332613615359260806147521064108700162140213046342813738324893664674016589973085924478042574945607918048083940145067972354654111707425741376234016817109817203919367378095088057305579679533163837903200581481964304795791257103423240859145257246422822029278772167403136221938843361586278152859155417617448835981111789810116637266830659234222475173975097309854499256292453664068549878269063165108803819302279813773339490581764061716356693201498031457942069896216796772784134223030417101728724335721274832017874852521187945967403281181288947439242795180451302848363572975216694769587716700651359309564507927620958425759820036507430477834954181598955510478883576142065670140127047552252916951509684687559332306828311286051598990227519069162099270787614956057697665728926357338527493306556840622952220036021465091631125216399266672555038390678527494890683991137865955982307596560395607901151437258155976313046112391534370889644237820559543970375744243216471571235598344809539399908557374330287008002451792829686307128191766241018387363128859861260434373585390208002216765200769996588181563365580959067355254549425034090796766050898213471257094970614822571314192067952193398819666528260917809661375882193501901458013660368786830976436954946843773568091198797094913293481198712878458438856175387769476572280929794720300354929810937751507887907564438361539296802327692365267303105125575915302514935541960456665935311330688217497394839992928268481612084725503075213497097900072739403959527579735224999336182227475244122170854727538834719282020742816120709650350461750912409864262934452393646222955270025499832478584919777386373647640928678705863285769140067208013318547629758906267879196258479428846948120023627769619115025846598110123039556827048702694463660210860661053536762847790376478640847363033064141848268076953256468358250616021677419948167555679884135857597100709843663611527902602390745114099646357602353230542285310365867825633832692658826966747127918737485487575586690063642094006408656911305441835624791489744263996505654504344097477557111720524511567903008915094298422282927047327789194267075846975823875266639806093727234181681571553822006657809668788489054060211749093507994232404207951430902197302388654712252280109230387782681254981364868036281654578308768028492543526551648712392287743800202820900530253777887012542606395091048167901384776622585753732533740504323039417837054713490454223287709921626359530491227819421692436722441883419540008636483832902719062521802399487173142771129648471096857769834380977569173743811224495698173044676083183087193466777085453472199823178185132269621991334809499693794755998328917513215533338099569235955368217858000991573043486441989085874853559452532619194564794565041479037006386468300117820718736128501803141272541344039204985741577867165320665848567915399058814663587489797422094623239741620472711724245949307547984636988181066509623762224804406195913661553298504271673179938566954311318230659294460591960493450197465462478194776978465867508324923179470650384408660784672680566339193514585368143924707809796690405074507335883170605852600757523122941387120774653219625046955369254681725657997678245683078884350782147916156405308889675628720559091578662299067688051661917231722866116658379106657371053854904055291269687927973511771748514599777076442666234960303046666707690581287632089130062206202953352070040205916597771985870970502496144043601819510620560903166340898941466240550251697140286916132750004423046059703079792652577280097497257242838972763638731597466897289881818270080021510625196383778822333828218996807421706870515446641777142137795139069240076710466370745553983585855172679374722395736907321413252085775388123218495858621162377728644415791916226107077089071863617932816000762107145196373557479439339202948594887619325003679671962562280197817677353205816327722901509781785734222897770680986940398160966863410505779087010413264595838241560786787242364781032353207947555602490285762568894272208297982454446426895771810212781783572516285693498130005781063560577244100998150566466278664946908065890401483777218518686369203732854697216650113174903977383903659392418742833388204869598364433326226172157440518284315857482181810322274194937875933827555911001937134236256494858655129108526266739079328123866783601798522774606305455645113045107699998273783352052477895314938378827642942002935118065892550866316915761166478478433078493480407263131276749131400607880774812997426919563986221398298063065368836048389535333332921502500361511600134113858524259351061120752405990028832653056920735651366763698813748101745327657487244739839055977918670291931452449628693137043546170242080702626024859695834989221836282358568358570563262702143478692050838456070809638541967286123254833609776849469901089966820849144671667910506130302500109703242504689764281200662385135465607645504012660311528358752308933016685736450371862955967032032124756862064560622421870745794895602803775944133326828139295709532618132788102919456750352107662109178316349750132774870928924250411213120475654699410755684289556057410676954785996985080972382223999476544640181482847445053348390984248185898105756383801188873011601103848029559527935852252040196216948807230895607960409665429977753172586153071115482469101366418199070275310183236551095465051406358166420073339326839780093865796139472540256708550173642545003428467308175169611100336953761870043283997800114758513679207901982026263049778320692648809976925355365320181374935114962071328841236052207447439775090223829156642055712005689634950372137020838668614542421963682344738225835821700764804954832628105778502201236509153437129260168309674817386771279537265854327484622991073638279857511593277410230196291139004114402133822137747271407905462279586923450256660741433493847194259360587668513416213662485350419140452527186289083829481477168524155327251951031624132009641536136467771316216736392690820560897207035197651193097925790379450468311639154432972707883348127204017637665817847346301745811412919189905152298521905399799586750979024290180115054407428233718488512010804761345836957123231176329345655504925998629364206477027909296777204070169369834646583368747229089870432098345799357153577925080596831957375315106625654430446119406909273254784443442299816082329660866491851638052698179216370867150560889219768581809645578115811823496749480021356473426937341318270965829868413809771626719164260899377093281472800038883968251903168063591918954951126342194208893429527563219935712465335068553923352576784666167472274345529495222566915695718845606190195096111808301317981562559537870499681402381150745621063932843132179142328610255974807851352685671717327158751252294059545812687174343309681770382637450653363054713141594717739817024939336156170050633302337726252776369576151575292318137803748056237564752002794851288215429647865367963104423229404174192894153565413798840253542031417338607195728223551193286486754418514712325209060489258704005155204865796477522476671026238009084752796853727910141888705583367889357706812669011298031405138965343683194845623295144103019921483438958453189217690956891999094967832107962534830139725744408155142887652259531860749774695256852509431500117684520441508029107793818688481962969207038979796269482680720745770961975181680997109501542214174233255003670839505649469835431497629710467069617762051073363184616079778074614107563184985733891298525911819256245612926483025178078742096631434106657824169475331309099572793845224532561139458948086483721442937185034920607962926458936232782157683753144503689531865887216398350913943525327077129098069967483317720691752549795579461841074990777355864826218439927122694268839319777515496649834519269632616711223830408034452554952789990083761265618162101686707306823129933617641504038779231950619485018568975172024022505898009206986718376118285457693693194554672023221136325815034256376227586177675390778258147592968789287033839487086126483360339285177675989884254603871795678810194489158970194628221278299416897347766543524233611806617227170229626668474932353944501547664098607033717631781145510355283298953793070030994341184513096192954171545846991018595956499377814906705116031235042387399248300116462974109589351319992971384264839958947718938959150482620268057225661761352098569669326249999842843058276719966256150343601930645523979097441161410694605015948388513602971284923333037569674150430644473956807720544783884351456877197992818100070078915603063530089823379944737411222772289304102851575642582789780790464769962075763942528335638760752601289076244149218099813380778556984213564420566326737068102011262488229422400020221488472674079643089440923501235297426673057185032521780260596070655247433290899043408691034636458808394137716734470352259265492030564565818193402828153647955130182655497257737695060170703742617531585649066502136045024008660723369273089033333883963679541958621089087154712481322952235550384654360058107182486766340093930969083513103109609166160195157485943196834447618393109938373710899587587946359663537385802318946028153377658541534557276799576551197174258044837711887492652350515584246672086859687287945712653242145178395105202054314770977009791383021263182985060323791120112554417261636937185543063404293527359736160993484345214179512182965943683140759528277929772932823623945022190921635325761637922833509105372145850412518235178113032907067649812413572335786788256232758058896840337604572324159320890771625999180372267393284662318371093964086620267580578129676987352384553865339391967159371053882734286025650974317250334056831811909202128728640274230972043106713971191794030330810383174705790460650619155786662225647365557430886383728141330340122159446302852394354684210021057858831490270927921448157308024465929473661782734899592774261879680083428604552053414038279640460535664655735639461025877982203459218112016213864650822938580198048402874191829824539763599456372298009190894006889186605025952423308096684501451368093654443790841841262162565244112045259046131494836866856825184166683398000278073987083953505657074045280180043400300286736161260733029653370465266769658949853659967519086908449781841194218535025734291268830496268845196998326765603015723859013187633543977478500785038977026325663372984823543490300520130271196135415152393543775215485863851841405818455948111036541401701491680001195328196710013631066326443476076233306051603018845734766752401592873806857199555989606616839105131644509842132438681946429205259826981022581335815950559142478224390352390639349735521728270610395401000777995679080213248243887619872436746605070220768702033903194335122728659724062789493264146008447706214118644782732927671157422098797171857764106008041364612330937903932889937218569166269195801042092788522928423905641080415214902774710739522402098698448099723394274275078976542950214026491505759544789432131262528328674955614510369734225605667642307457164624508598864186260593712556701006693145842490700831423647400358150399628784233892902893380241795166902580735081247729957396194759206392565356961421729200273522556340072918067678734378355509556020260479168930882267885832260871111691135510064454328599570362948677537675476758045911139213098120867900032195109385566768032797837644085840502156023301968688442418503201773448508055245794873494021078389039952474318548643924346470390618036859128322977645412828667326149037113112450663242051218226281012351974222691079333650864051246623143397394923502418931518943475569023909959213186902533168696438073838726899671837097375812540115142758097147154488287371923034830122067713490280794850234296269500443069998587875861470795013737369122144506198485351632082469459099352077522681509594711435004915525075000468643459525262683473162958835550345370720008595830354922726646521784480355971677176660532013079539186181468494575977384026713479858878339508238116762914290899939406854151012681785291921243715437686432279983909327043004524946661819139469464236849592153904864943621191991791000271839474518415656276182923760171492324000342831026077036132568874193460903905847994977398697173192947343875720740779283653315789691526707352070801740990010580756505518802479848605181575649381859608525175360892369546475738511589142829787103512994100558274851367207722170048479659896748843685733194248269613999081430599513151440150957256517123457743967782362844789432294461562288156292025865640602021420190482440996082101792582148206070524889353035017401863798107172186741954157364636074637520273807675806256087601809738111174316535674778430922730237795512972214926620457528128146176936716633385297965515853899621824720564822542548571187212394454855482512116235161877161303522576679718182186020004308085592043910633617867125482609547734416681807625837238188284310155682058715861580454382112865719438125946053711484996637670877248126709046383026252955568943414506325216480793273276322562600652829759129842565679104943242002811104125248789423235683794596435077180470610351182325541083056736219139137628732188440064049805723841610653417043965565267489515146961634677499914003828041397087289990748144349081586028126576554384477490346154583328176345079990713896558630814267111141019929074414091248758096391255586704611129765437159493336660671061890949728414086198585366884921382119751184029765609636692844267256905610033027303562291631889239708549675853056480704085387505523035748305413137179472557085987533317757978242441223852433629567405397026447215943355924807990964729202797083072887041604271522332744205611556429894326011992618169254431462962559438201452265537116792820792610975089881012627281109983727796354235102682198933510766986891250437536891991771910628080989385597772466378099860330317044683669241120314457861420314304824541949646461157715005487134668983128586600974634815079891624263287929166424880958371993878560986148735124019132729634298063889027389606391142468390085400451845588380990159296264284721471021586081912869718758274126557481402533346078495917918142983194630898456917208675608816949586334275922287075309150586768407499601449726069668114733691664527454800672863328973901940841601915572158788444592219323649298750099797317670538253074739308248605298130889979642416473996317718385018118720229388479907060518023010405097258866368533212122221432871470835306790816904113050580934832995093086563635669429133711006266739020687198322211468600815693149629969778606724824561220407404253998158778449750910702074865433198827617023121799886848262371855132833837296949467445230854897783379890630845665428631774502695583828034183463465608834511399471609390506881869796540224268471354335088915596654635417891051099218236906019490345472494161717879507554454019878843776909662355725936201844546708887262576880683500394843529521499968368430074304247902378046456671339128626473184311606848491163214209647081243836102977854198859886812844262487402654685407082484911929557179817902019235218870423388906667040515596444297800441180773539711397740076017012112980678211050772033450752343846056240462562351636467511585179779605481098484851157660286631250898958516134928989138232486844087989786027735561918328770724213834390921535810010875221962611757916324075491114737163117693954257609109618137441707479373797586036602289199914485903471975438086500897820318405868331367747603933911554767474302965583152942119595263437072332239793852501504882172456428857350174495727953008045441718637797536501922315329697649952673794995997034740556501429543243728296120966234835270368843469504405608705274748764168795724045206854770236392544160297275163566057582469636150986522838050574041806241344516290084288719239765816031487579256400985284142155734216881340201109056518353974252514377191067230848939588661328364257047191223017754601691448082585700982407180305885981415589905356632902938264612138693045886618864274286492464325699065896333752664363334694479596656126271456168920050704727670274060391220559436911036362163264572335729299980011443269074572459105311801645983688538390184472590528256563944637493984456626579957553897273990383336812734327163823325201426312665464807263726468469120720632095344423821443775875196899910177634784712155066529034354993627454615730439798377776252172520231095703393843631337249576570655664960380620236609076385293911299136325616819991020883216991726338364848609386562386869004260670024808285305090750224098510569106464044042682195432978162337517139149875089743440747781575732751140303763526391583819952755054510229482704601580337484993472830758231659779986762188887069319961661665428450919012727188325771441336230737713653819490882773952765808467219635011280427903389788224303470541647836252953728018456349961601836663712543404397371817992290042141119990020189164912762187924167202305252424026094768077203670777673195405326409394399773875999007669622328047822271454105306921496305643423713659992075600749869148821366403949487596833808292758905910668355183988682221346079481164135988962195491611334823244363098498303556550301810999530330506217625574095304934873545511587589591017642027549329376706327271436458744562005312988940651262734306608739506136553870219535682491142669555695197404395103063761721814953560460646147509930851954347544238781780459870728664225298725105867612328626614923817999601834088354790555619342138139843226487576779980246198127046644768405753027320786141223019412846576045799165985174243762432515235204966172285245996763664528025844609271362375914889465224758158165348217749600329939751864280802462760959970417612001971783452059509703283603381512016011590566825469208310862149208184447049094828235185295266469077772337227387666556953666922699829098026759796902246815001792276923435870165443914396819982426458914698386826582357140050694684819504653833354044689437342251719772642789577913474684553173143775476363645622983445885226060550603521631858336796971608190279776681031710457541370858301807007507339288704186156235592999052690733633144412553370991906856550852855535301322078739904147585703555551744540386137060682610214058915538159696671782864136555572015482870764580511691914148071933469203694267201820718390882749632837283660256043938773170477537084487351127016786556431814179076089491757797154584745722190007899801013066816355272581232510699120000670954908058533984044762572775857265053276396312517356927339631917132287750673622633110308732342449677846840808193998333567523768867653786328236025728654097686495142828376224401707580008347051872775741897354028776063589260404641173632013717154035228426134780654859885887962874732261892900851640751527898984747425443166581261806174289417743663861598477247959294453054788837765436302709719730143578470162034424002564318498723712258175748474576261715719586455070620523687424307522609697696482009135166117581407556879548427792103833029832262940864071912798270370997425757679063519369934768623356632361241281592717102786373228652634405557820801399155222564448589424522466411311838364706654488963328485092714502345442152187794657497138287860419154686405168034020380959515789378330633095799383929494750059775992045905306503870295049757444738017808475608399936388817089706083161005823917244251233786718377904634404418609132382086778862655674778886490913726122725851723226637027260040233573228342730902175700408954333854753558708133664207962728009001625520836146096903747600317520052802331392307786245030600239295800950928548730850101843241622066296943189084653029228708613691678435898329865298100277755826919249400712041110750981997590850741065579133644320378045190584431103531367907964809613944128800103866403088513057281875804866815969218890249231106379385566982672664108781886193998375834777135155157755783213379386591032003639797726561005870930559077186303796233723241634761414182875152166301800292491890040205583540715812728407883561666337233162917931822214615666214386437067377209125437126071217132608649356652187095115871334635615474156669215409990021082731990883473710855221556374027789839046475713375341876142704682540572764240097994593648322775705875885357313669331000356400351828976523103282756919454543456810540656218173062266593246474843000922492930384681366081918199803658023087332904911292806469796275780700452080189969001220863181773747316461367223283890596405073869232628399441495541740053322852995854916495732592670246802028782189844677340210962481194500707293384393694258228025891337720237629761275132073655728816987105101326907148738328539683003927007973441125339548952525910795242875218550013113236133600950562031728190892167550376621310497768236713801049976308032383791490181679017643234880369796682565946131401783594826904844487414846612226708973069582515789626759036952612403600595656288206212588395258213875237056629653036255275666101164949116317399448071506954069119347993047851647802391486450627950459163540222464762881453697183458356012127259178400954259189377976588448801739986988759370855258541154954582751947365070728608806248978560246263692123598736590614982054210159656480391411581625457608813772902318378055917598281093012155520150592222753138097501506826807232296208857496236950564746286959706805058020630981481775239212387403688942448453686274884267323122886674218561674801118153736436350826555503916321958306687613915025057124489973614774408210873391871068700079319222866003264626561077662926731104753879209296169608579174007563570866580680379304308016314012114754137038961323585913174253993092777044381832795337252860822458012064532316164457725107744404607451444614935162303391439873320675110362093013977144870101070851367561667872684825270094493364126356586048609150144810178713709597009463623665297748587367971119006734440405220833286008226356341159098027532541467779342786047083516181453923546324996481124218808352406225251597400684109246568613827583976713293277197507091752522940465308340371375011529990943887461030163089808683074637051901646275623894470970195759682657328702683208832568509245468721302039406468468771338606404102586344761353990693391384914035701038131497334614770253005824696114854517334021902786426927642362680084354084665225032771577159122958115558840120955409686296647534040183611230381510387092752901958745738318470673222467878123375092041513957701407957925687001152330904819040002365813020875708204520227070254875342595169309109696570062861053957077735603823331866258945513632272640410553676627641880581542777546212750932711410193681428901578772467815873609420371710539020149137936956581197168933263917512862315631314704082951172500323846043006181163238965103808736748650117094960487105186346038465694839354727015251734592254492809790297349753647533042635294209153180121661604005688047420868794450078824234679675307036164244163098013890872282263435105255149153198303377640740245309430175024722186475326343687063752675469118311626091322311187347283482609872625034647776091527494111769806467064265585381394682425076254507008199840997218033168120467607622086516986250378360432422635552342610392274305899096542130504342614971259219329122666827657265745596846031210413791470583131617734348062109623568384998789799646790214187750720165866786218950474760806734615774563019058789607033716983048468606316435118872314573646766139926589648948749941553992085803546619806404301862903012796721756129998979389805548444571878345236871249792552228315104376849848344847418765609673069535975582463121047079210943567883723306565321495349515968345454169039704294369557242278751528682898304218979575391688336125958399864907125759063320553320182112842681321533897494162825719061601978731447663881946022048389954766475998183960901653544677854767790383825454442407477291352466393438484446021361523964758045691371197025127055189330103390904455752434810364242681866939800406206817233578185519103474327501121013789371763182533985626364771181334383532274434326366831246972054047975238328161952972764312796343124624393476792381365172392191575469377387024223485582403861379332246982225370941072797050609207390737835992767884552979169828549987602390754434859302641297608863889300003688830099097372546107450375795295198571541506033924232163052428197355567121246166287569274217925623823743436643256139728390675114210503923129794625618811989309874383278436825119951323519809058395299985518814263545335912196555339010966617443679223812971531800914661085062559868961147026089544802546475205862139627808314819519090285029770169919273225561255543768757114463691344674036951110139537759764750368431422638959239792384333154355441083132445162136795161346452417723349122102737631829497761133337330853468953069590255724571073411626140420657107468420436120515634227722344871034343488952562533350630522984953726142712359313823668960541792405857633307884210102520624340015571181288260367507011297792802542142189500966957239867412357461468133970497666075425741466644029371084797536637657680574257636357328577983882910205815495748018442740548359855933701389874831335592626514251571100248729990152832495934296930044754014589862045639846877404711841524816977468089725361295488531287924209095245745142121673779312341714778894090812199580633624668565578011633959081650603181395208948292578005098430884630939452598338912563479373471594967687981583961535970319183551893424225396177903374285764185418832393777623786244835189622249551254615837554268606035927172395511196453654160822664957787582993217295874256532818715462498090989127125479199686342314641857039362028575177045044187617347205886660375495380280959508429072779847076337772247730162629425697971868728205132565561804037427906860008382893991181270367279348587633722537650103021479587748538704983974114830960890004251025280254135727871349728547275237209993367137087067436931614345117061161651384760257266601814501922054240053026277986692034445380699764749081651282982667347145599643244105420170906407963154327393145820751472859946629089478651875598477400812896933919421335918986437895510210655976212827276714658482545177774822102577389618673837203211614095769471802100691703023038125544310999421019901309878439068713585767779202093974778045330091781049819357311437244881205133935381219179133082443658266126491033214217726445898434235530624253679331245954906491641578165681893874995728780750722785558040223131672045170802822959301248835732746370456254122291570999600883551658170632161318874977889925271006778277710600310022428677387684639833861240231468976426713251050752953080356858542500155177022263481930390467535718369252804875568497352620371633941389618222140707706215564095803236968006050161435800476310112412181065276342786859797279695451833220023083835735570812879032832617713830952356822426279934866666071439676649799549137551325076940701808863108992850794828664154951995208912589134528965200719461558371909957538660002244837291653625163857654500501567074141585699002923772275389211751055372463765745492576463546132690166906952072067389359703701481525092551016576852467275853697785737745163170338490046817869480304707910170688955983506772234126730162379367128394203061427844269333884975485445059465010966350607728968562368962053569105102925635941574518613610928866686778444282147416391482698239891776883400128612723058715731046210349059300635665619463400564062067626790251701703066140756753385430603091354504009280876201410229068374450364732869107301635339716771839657524075532489866134903075419976023063925366582719595247899276690695836373834094935047199052118958329399610399127822348069747078838493530724026940084537868984174788523948944573196574803655217934575090280732024318734417729840078798032772048306638223304923233031083383931612014497089741827461807567878303742545295703128852372917145660762142493027555573624140398639521327909048383473224264035905105302230769325790403452512851843401048376058011571845855309086310414384371599143386613327290635387437308149225526179310588528266512130037693884123058579483945458286976381445012027464606695931435133675587041157728529047796739152856388150568709793995347317112458519885003653342318226134877031209882547340661113767282423211796668941791078726897359170659841500021010429034503259276334924670495915621707597140129418850851245563748646160742988656916102559585804574469411430867343620289011129001219798011443507306856823121293410949673282096538153339490031095034942238163504560463803151590720578248248636716712257566068941353122060702937602090636002829558079973884283086063976498925495572996453471887802469450362334112346243873092551041555121624741705917557440788744146393614816782724450031054929057721429111810862550238860684222510597145260984786275502239774305555102617691071821626450478291443236939836533964747257355583808134889410247968925881315436962430015992732687703941477615796926215313183876281823537724222296188258994109773734396664363480014152192667085810119630369138871838334132566886206171065514656997362454239955074692538740349302946341648242840067212592238379667112979516233499660312503505281007244026248940568238038193145729933008337699885705312160348406866550905502873856475907899290592202191781774822136974827859988315322855006764889179210533074740664143020015166120821556264445533052389480764804709884737786084472818604882335739924047715264290615171479299193853891102296625951654630168660646038060188053578908457529413564153480574011369878493394314701538788083479556577251671610678624000080470771593372109290187306566603552585375484457377735574163128738693022811877766708541469098650147631117521624664533823175922299415090736555412114804984247961741279443532669289880361694556341534570853829184713078151887004929378264246490034943244031468228047490957288983838055308840894893673493808811532299649234158245114657321176985866954436269419916240332924774938986007237379941803506241184792097530744535538935266417180012261903823823914113312154006085269546126375527122980624593630048532882843266401269683067805682308966932184848995085309066766183838622659302452329191156533044651790175947549389057114097215921802210686262907836165306699139628591620068147583501860922263281536982366746279136555541195220626037800675991244609699342254141135870507734600190042992977524894083699002574448206340183232069523704774334057492857363739037170810369925253995520528893738604926273754028603392088645266218743281088636884004116619390421145211702720248830557137459359248394038498210319694571881592293347313868415535990850540600035392342269606636227032245980057502730498056312556329500055647505369965102528231100206363927488077582357462371471261296435272115142311165789530558299941244755347413735721581893857997897245305056430635836511696930690964054592357752542338980017642270918061876359281727817555069469057042857009015286354218273998682473706502975775859793713503963372164449211711578395858072810356346804003236310524877938035590242784127900277078612499463026118587191272613044767152315474982433389130913196421078688798664724604804366813646372894324469609485206356513561212744206513930172807170987594629213563891142914174707214674200448049887673602911887619239975005777465134996603062417717493913354628992374838058168677920996571182602920712482214337623656432187127618575868209781109685264726470032693499817149207271016794012693788764149489279824411904532514967277474356053488951490749531750598357744449698313600349500415208900284599900226513023640267234603939992791792133066021198372784732691100789423956189474612308453962761989136366043105242514922800127595124197297190872206248475287971768322210278134661066295776975952138140811768043545916532177096438396103338055816460960439109249655321383096589365342833689258671770297982682486664098220953897225105659514433389345016241056728112604386158079641209423748451239458247500264751063273803274758359405733451399228645170536993419966271508259149789287218127673886950047474370519534434425375652540088594029122644375598342681100919986470879137362620024675917937085480196772778495326492608410754478524056115023369970843632905394901811494993813664253845855393155558013273083468897756593745472819074220723324758791783826137823154421559020097990794034384009716040360147301403395213603635134334916561420567950194615867048807660271943472880962870175814640595784549535827728546700346012098076938446042887747885199223629345738737437616600608304400435625096349889854055419909178317667594203859395665691443923308704243830222130650334574581081337314970255189827611633510760761765624107099238493183850957828613775995248883542779514946629949582603567925251711483678727052810805801133756917248538882563462812303626128535801986568976106566529513545238795396270605223268682547519614581557117017374670099355586587610139547973727740458752089948114759218802428698254080051865830752551182260721822519121963301895263548968512254667502541303213420253705370621316989133844820599901551598964794366376384043641644130566782233473373856050046489534747158416077106678788791913270585638139030790005479528518011695535136907642491330341784648115175249890573608303441562303301123528982803907410484223986351800903315194734432919536978110580806466950890023738539115499131354844825385805019766324885058974262914650677661418373297302516686440667605394429628031808915299357495179899412751406057103227347858775830277964831088832256977761481754555773043976681458138693314523072867238661106232018976922693530778564660767165460769921317348060611385396777159708641775261427588790960315718160069593608186935310478390841064320830864955670961869653636824512966845164477868410114736267901740564171681938038205550479395999784299423975487913827818935632553828941837280949067476357793190575907525176599082671143445280060220199711452589235798236809754624116278483997344807080010882668711325215097331949968325175176329545368239084822843058375072048884797928541907013930327600526811612866205145820590896847788262097280547192532823530189735696534923160652391538966649345029289112763432662466036293282614837383750513862589558907935148815603853178784565025207797340615720986572164004070978281257264091387006215493896767537008773428587687997627235217811759608022311546330668881246275152852324064949205264743245853868357569523113303366264730625931765144909452532857437673351971156475195320954204938404114772418885061073407078841198411938805839369323475793618967852673905515203203593030005498702187951839764765038145702618355108997372971631739084333151757192415537817557287519878239010817805143017762173706649558470151422530715424616367922105391159799513212618644690392620276172025683959367521332878205739740705506472085316554439420098195190042614610109596463658092281771269511719482838550397372646017412178715384310719807877816709441090154909953962010747375704996857249499877822699768397323058551768833784657949700530642268695980462779271315127492392124970572057991108599919713780042526133934434624922802804607179680160179767420062754060442608620953262136235413271214395060647024558527408390461203079956704188092583606273244268940792784773176136239395497751087967711049468971152670122578022554787286210943821673547408292961721794946923334723127442970612105276389643072936931817078310261334480460100343726491106965942513546825626553923837886706601738092636010336830101824376841029686261441401442558697416718139076128234249094249929136471716326094689653977369458962984815725879568084198400288883473039580800012327020799346625149154408177570315822688918592781380684607260625670873889579652904580803279275401399739801619288252297156695274269516364103146827822194332946680338780028053057517463489222508238695790388576432877205082660840817917268744391927529874589894546222551611974527733669320131289294585751216189041238720485372087162897653855568130144774416105570370896286917477237830855512970927878676530806223253454089003569565933519675528154923661315556705106114552882511181062908734544365329411071863123118519002572840374930986055745204764086925345638429768185220354597266340327497306487268145178923875224250791538190939863161059045050392863174208379857451542580368394008670156540966915425461469625083153484658375943451898548244390562847555666332877900494480783296878097957944386998637196682533561723215739347701703633027455844545684345131079662145273413134623565240398925681177014142791592819235533187161421780200337660541330083913995785632564005449002409727135240356195207266561856822179666190630801830887541956221818006255611080188199455725759042630939936599332895532881099902395923601527185789005826871557013326126336322390819623508816101336986555996777908901791334798737069078611905784488628621374976126799230003606106554459889474047305518109975482804085673893018870844780240464412725936704255318359110932162409258577964404717713747183488458112883227303766295629005942723899104824585919130455504389554779712090221691859619741180178630957409330291484855892941363477988664240864623518805809478045599972802642812929261204973335149884471090165945153958854245653593456383466556887478990326722374881478042207355385040745879343717933696507422721432523815348049260948119098515955201078443616901957017029291537848400627940577883402830039503407822613039414931128186143361050434451275506458474071139229977883541113042165468911510181685886759313403959616940443717447394238082797313709309669721521486259084727024333477724322529360912206893472335757116986584526691840499301795558841571904740785960724776014562456260820580293159348527179880454033289019484183531707469352232434877400785676967131859975971844197742635369800297493472233697955968638340761428743022625837300436656388134373372600508255069061368046520225635961408849156925827514485002055045788604255035888626232501458383313036549494060527842078914792404988771309051102845911557488735882531870228003599824615114670042792287073806012478514158756671878534482535182741198304896872680305249965630808124686199657481021178337271579862163009736117838867154903799659253110988561697250110988500773228891285061759967830854186424608016731579946761541381997612652099286723815813989499761054653085849251226548020638034755098614499124963967748328668138513771672826583169786442846526746315223323517947880972211956457255160417071038793086712533389322871455106373673406943879551627272533691635903964097411243271840906134409995009735114942998921216405517151984474546431581688934986572883685492384685047598983040567402635368401884737932625465423501051001968701239197960806626518891323039900655241219370827406161799023702449899472691047159801416289483944307978480207168528371073560951896522388938744788874508820918895292584527192668395727923971230482638247620660177659791335733036149645466849099972735466867565034793005840061439283417061806056993475182309848777234275701780001752608698669883787774475986836150239811116183380083912694849898512391791333633206377618607217350829395250936844696142522507253708883628863693936046519056713430568007245210165724970759887842204443391554786215878316263854457163354784455239050585087313026394865906203657077435187949507456474019765639361730625470497137421905535327114357725406582460037748948199861409986880014777784401580884374810586827069926897347916586332654994352754976666155291097746368817043686740518942625980347658643901485811727328146975780286868271220491425104469822255939616772789726969154128762344161264037235126681850745686661598780357951664167952588566023008380873543921707651890208219353163427123612264570079622099516230358897897750758132603777688603679655401487476986581061426141267064248929816559533605197321665676464102128091406146101164689881889387123595001836917940771835160599051869766176327911415893694626365549720526765281020231303558042055630488902551788450090293082403620706358111225417887671748200008025901180094538316287141653446645345686354924366180096644761626288966863972274812247002689381246583813235165228135386144220542999970890007417249453149991341265472401933705557498740913118197736389901125827114683483364225569788167076446984876525312236306325052098310977484065862062815270629422885871602563877062359305089602804638311853348129444150443879171029787366395463768367969183859973175420345832108229085642790773906859335684445363994232091162064464099133185259039131767745957870434443528257506144506805643365593774796386652062438462003816428372615820667982297276736090466627523757477734762096176653547656873081915407785980010870646151100906144124383914282094812503781271229473383794137367829526358660297040962253717115099935765850699009179864413475550431053570340392056214672536487031330596124962854649461225261264539913317248887635442152384300964934387841023178100290786824822696083464172357928144740660709113265501665665692414921273655440881809979688481701012495500456640085752536729725311513832994735008216817562508294981715987783855386842601728525982912408478206731711043790312778086153700549488805953210254531060270754199880544228007077735788091197772322032684057847791547006506775102660055349108357563132125665392824866952010514860143025292369836219521814411313223722950504852507938491254526269184720417873816215129811642624033969805797597753128086763692693592251339242364657904380156800953730415485072509175485120744021997265309873311194390490557631955620357792059235458895805034681501917307145958653227590489656975973840288860490822614468312734470954703600055178775691498005419053627435692568125275082584352791726220542066178034935068171262419815249658174424100653870883750690903252647640397230182817680405601811634901525445835414347887365099962515310193271995586537059647196620617043037515452036401154976689327209332624900828428667651373396142965981453814442700950977071613514746109388887315907967591676563282889831979446520914840613337189300536782987921852593293760127689987001900464545395143838505195727618899250567375671136647324829084602380824792956320107995147585775684621849816164111964652131325595397259883837971550121698358912487836006899534439962628767242348188642638220861694939711341070448365819108934250759028438393517896626428919634852914455796787896315882525390735045108467035273584929534819602182575993844488682113016690966305214274352329045960567572872829482998264246374490787916546898850682040188852954157763185210590293077629926983920064355775546821326740847148305177178978718401829109121380333577240074662490548565329746311797817048557535461322060529031938152394560994145545745645596459153531654135224072827134316030962843722050823064184617162809580452621679122333285675055027266572486518314669524341600259155408672597053482034566643519117142791242169035373018731393715172427830551119795285750110762241763494195488796187310306189730658331522729782182185628556577801310921205904835941634448620644879626376181396219339399309686012332030445492514998019912998261827661348106706974096840061044737231022189363215829529352259750436019836030516150487971576937090930872679563948263959866234482912250306382666757021288657352852670076896271254163693750246743742032589537453618175175309778966448423078769111169511637442945534699559455287736262892233437905755203619204442556672363671703787024021564025317055593625423150433877584485569444794751831019648756608346156156691408717789893776686035114788243357051884090775061192688056889616898538287719103022568458962294640514286264515986368077466981869008104225730948492451802827359433993100053951678576819293942356112756535883451355071483059318795009947168840843653258829188238003652822394141867601489751563051294499146963214228856700003666254909220585328116952367771593895503068315315927313761283922014115833793252410086180931566316033528926358526412585319878625929087072581954623954101685132073111615403610442389811090415814957930340875345392385103836535202333826618899848874565933727162751017208991173694259660448226243733545075497226817476974188258062667669833552012208512134073624653572191088356554890344883608590906439027387568288807042971213194219330520895419795074356601022750564921346848721421982183543058119990003770172522122808265642902522006208035818744088345965370653281664843740785303983462195436251198795861050853179446466233739506814144434716487722088248916020196724333494911999739520872561222363332071213417487237596151387076368362955469713130136076352071220312460598608030946216732469095474817559657319758615489977543729966393445558911689969817145613376223288818449809227228921751442359309593881814021850227140860457654130953165877651967408539432849213698738129253152895534457413889419633185299763066430592227727231834079710554179668650661858878541352957003859826554538776786924666905573060562272649788865608490033683170612380704669763750288649211014188981311378583908228675353763299665849216429627404325579501195682737810658783901068759831741089797550916802252844792259021760330292598005315120078050224603656835292288798192204819451360310747782099505601665589579301247280513021042508440742568787931903628773651653405976333603530246888972148575764617506865600478048011269645171971649501190777341846169830278214126664799175043119042059538762310837016990701075114714030307140502233816982032303120492930582211663303671902016853295746543152415951843443656720257185365498499465702266635930054775176595502102422554839677255863429543076002830661111714708465234725699829448539418042673109607304880875166095570979038585514567314873937113830848895869398176925357923884914237742942813528396318494993126694856103322458591638803736216334217839069514499003644657480977229098401103388842960217549315843454722301837941354125204983950225407136331259548668340621037530215869000017565821710219386894663663297720019856390054068010045307009056499972025197400996295859715608199698555481813245083067837488815154486026913299058419984310783550259316853911200634243936317420463501023400555777686843488902041915132171403881637420161000185715065228128332444796101097420077164680242000514474571120243476490577694535556662068290980110248648997075275245159531670933613444606269807808967641768508598644822485262915619639507503423030612924892509230904783068467072890600173995510149932824847872374031995415240160696123163973337630743983229096955982093182538897149190257574714144150295626496399068765632545766336427899085204711312404026962727478703605857141469766815076896046736215137173139908831476061447957564497924440831595595419964410543968928584626306079715449401020996954121075904256921262276901976644023083888551744861911708350138490094737792011080094764458006457344279378232918681071773496783055994553516883941099618486646306243787648773495525011813609390252178660346385809492361374672473360664079551859430806184005260502594821625249188226321561863232568435296975228090779507724107972261041108982405288962082919477218983487744628645413253762538071657280579620832168620411205893244280444891219129653671454230496195033201284407074528129768277367825724278319051539252521673681592921475341068540039278312315361529519589696620383147506164493800520464822430915701290946105612237877488646449031782052777941476635091486805435589946390179159521838634547797203581291756732483976456834153014322328048799925786224701402713864205710589758811749637334600718163139824877297588734992560235487756467815298599527856517053561454132568109193360046559775832250597932766943402271833245191856138305769694546982956243536231877228542657580246287207053995763093615383660125587922315033949897815438382004845279437318181159114015817124054777745744624612502438993855873185729792801483516006454579547177448886237509915916150500371409614640224125434605865631919985651932487979804480743091500799151019487993186312794080538333437441177609960001462080864811662614273658208507963499043765251207420642314305702983903134211475188479369657466402735452277341612142727761007205299913841553782514868124339838733953959138960939260597470575934028011281249540851826871379901960353457189574023299145875288377014301024481823846024354306288626707019926720898038205204959439448551473179946982031639380008232981155727369532607390185808296640230605333383856766123238801701407192933207559869982476982284989176561164179508713443228596946845272744783789424405356963396397979707977550730580558964531157324031765913223827459200577482521203363643856167969144305649962288180518844581214540496145925173544169010325639234181422824940420468936500282861020807146441313463917177766949158280812734494558993757806561768617939372991948088005293360761025014759374065561709191501163505236931045988782674292136042773539823687273189548211379982069084465102810162266266005910368990009491034565048764763177010190930109718220294034358826770762914050333073680275927895810927825717683319584748123150261529134188678741271327054492575309734616992055569903391307058740582457287901591650085663148241743900314947630433329678759874134964954092207995016819782068587255636979099481181351459344422858035217215163805540208665518263040736055863047598342967745863644360713126916796591168591149520598906330395299896650495639167103350790721821156248072431388813900154422758964388702781294342863567931240076616182608926883861112842498644438540331917058019438864058178151716112930156049005518253412602398814507312712803029354439051624719613532916136699566502797956745236241290644254727823808441297967971055033121639251580893821211632501454578194159136130571583878115511715670114216919505475665639618911893070371648001476867093390978117155015255637735967249884021600256766633614271691925620414765761722518029366283169049372112787851319596938926319745140488393454715734055279897107983079507991147397718236993382911641773682094777613517329569911746410055601424186739360452804172511374100705683597387124846645494664737803155536337221975528347972607923436847216130723700261236780691555771691554778436316700705158014709906076427926875131801068592756285707424779810189712823978565174901928188255962461465557719214286297559986584771854113630818860953820627088015955679055334841599893797475901237862902329715350362566460259440469059941615786609033589145572050970267006574144939092962684366599486440011278201971817190480945016317257719688584842417329187345199952040256457234912479317703734435925680911807904691463999234673849190669490277549874131302047650504535779082421124402056213061614679280556503343240565490030047041783450589363774215084392690187426044375571865204256708992035072817712463585560956682701195500645173324960561737221187863134669613106454724743884910346601360088383569841170498510431002069602004036696080548913380473433762834625817677181308530051031040018217400767853397347750849093893475891222998584075286000528437116531930180325266780089649006171755641168404450884750847511659476334765860321736867692137069805466187144539000377198437661010004583376370099162627639158645297851226556548928085120186383894130466633842931204079797817873870033047583887642595863923422751356883533226477488653582016433199653521898595129308374741113918316513340117637448658364098979401356080774121162576457034922506828161268799999508583179923367268152783860636002241281317677568290344971546216133162076307832234230628442183808440846920383681645703972948537749496612352351633456501333670706216597334488197686838215775891917293105519187629832398531563407119923761578081424843711954219721232848402680622116077206445529247954293226746116442312909553123982384819142807163037188836590449504486029979835052097376067454752984659285802982007411262720380169758047953164922477192188410218092275493733406864632066671828511829505873138332431126083393270134294780388583834935371232965878683937371675634447566586988908211078762599744443024226820383371280632593937395987979943630377827461035648208637959801619541357065254322106043556948911036361968129912512556342328329183739146382224719731909488036156872660566585277454723370214236275100013412659648915030348984913186629532558203279559338395006646090980647083236474065918654388243780874844731760302695524426715391683145295074463895967757154591824388308776027998600284713738127631974324771367711828624896505436995006590089591916331816023117852883256564126758298150439229525510410240991395123910365223330808683764271939470595815804777082609333650510690774093411899338450492310103172618326114484398021690053286702384503426444025527666416324648577860461332687265944616304178841414030705121139996095265083041343552031592532196796026637122651815323977705756991685867797342429814824218982691795528924925114482144084675139216202527264902842935568087740088681478697793352249572666370546401262617011015818159791372502334934444195612940940537105508097084662259548184102796471315248343824607034730620887917538178177502447964258712833959084073272792611578626727929119542521321436470092694496705856989316790298664833520860639837023620254521963516977652277625852500643910023484148860303448655210545040416291863347516775149576704905777247853916098044297385377657842537420329128041433485410078774169522836699868383793279867611654122666699788902439217735656799674544961551287964231013280477075988068012791396772373803695033601850463592856181074672031870407365970159997660029935572077320975291920274145998747997233740949478307863198640732431935707548310907249659250742347121750991645991041024840965456474360341328495870254950444494383952232333630525281723294558218602945021059784036732475675962919134001061856773397909022782726031382838354560825883293043357968666262071407482770859124161656628816652250214344465825961634925483505461531122762279911796852443382257461026838343156251402066518198916527525225134960602175357601351427834494576345288305857869809261872618800861156079034512903021964157105427046827305208830605392042112568670138486907613384245931272696925884744805734489196263737917994481391724120450882035946733500783748756641694722048118224334851538382689715490993115709118734307615056350717336461585728927852041171745405779178804900636057905598466229215416230645925726870473600229357230706798194941500753683250554808276989444847509184351338984692847908917474603029894208201552698149345392810145935202328074679256581639563609418045953229757869307194770759537023176244864305784785690079126566882382231276731942819318837555519112444466421580160705352013333986357294010425093321735172620646777823231745568720000465134039942169649304286240673192083067895372252438283341519565919919980850435038051440522683398479013362647205438370800728090379504233398459626545978894957602812107994484239211326872085727166331454109166683021533429445176712500920694178615970816350431174425712236238325721351025106143145087334632661239111358614085474834347392051406200215088871948548796518593983562845699278804833802877166075121578771379236574703318565643830895617166397648362368321430846441421539525750531170087009142743251012488784888873504229993804328607936390946656623237788980798655166004562416156304814032458620466608300793751499428798173598248022969622708126654552013709710814209271633319191185747637012184213141230033919102080211073989818975638326022511307769031622672586596148965767015696850786207487459344166248900865110691682836684999113183835004997884086184871304846092244223687401025359730421079896788832184698433793578788123382598331253569669051589630782621466164379584911604741259137363096876559235215749154376815654553689092031970005365517069629335473196670211223911494138480952047450645930308082586209687185932221864627940248938270580269001795454513589006963859503252648487460668151129829468128081319178462606092840315417381492814970880889401237421855531642262412184050425738896479452804393306543685455948036554987438409203173606220134462710906496413185220580687353744241798429770480578696717937797847332717361624547572192316459652572998695914713198527578135136428825953501450812967766023573372124696884183390228917601343218037233662980346264223008836016974827261803913345447991602892296167154102812411269263386382111255715420505641239988051615185955267747856671531596147668026759737519533494727755697185408536223829705857041429422259249305227332105105864269461513894896658851223484204450056481720306706341254328803909609730753533219943431870822045427306033062524335709590942409623334448980071914859591575979606587759035498906617408024698766194074896423133844719707137463239622997422481977827257760452090677053178426472029589349644404930924070736497534953506767914819349842576702048406754864703149096231390096383445544706941682579684090770599822901765636279194235197944701164836285127535119194477747424718944550796139068271162328148307040683003278116265663798435363237906010177997403701817244671005941078155291462850543907889381603801940020933757670331327735847184137497487108364557768175391408056535136664534045491798970373400576368709143187473295235870161476511345679528467525168163153805265510789082920458770814781135509506816621719587162233240845910384831386006278457391971679174690861237021849926224313588685352050051212996419870573360583529287782389548790328207661566594757164039192862526762500262644483556607595318987776469661260477487492592706084576749772169231484516263336540057894378263420596045585426335572644743831836945169540187741558926553941675650673839698770110748554266671072718742111292765206001648617585062254091185019798100135458866175175837367191182741686489465755625427664891653413632525683739777019365023476782207923761122142717425149175572503625288956603591322986761008380353737778247766806631367284694147909786003157803391335284201657841183337493894077634585279635359120048034640491844713413110704835348710488580850156435499437351930179265226572500599291713043793774473233138984673737449600049821377970729067999096664468139567554749047948841559910270832920291600364106248680214574430992523429650537905223928219353409682645571214855958822583351983880827699250517727755165519335218389383261388987076572505802897919104661529412640389729078826514797624237510086687446220867104235942731422581730970038976991017318963038641100455292306242258186811220635946671932749252549634524070293093451927044281703173151202408130080006007727610282165024220978490597657635436186328397936122030903398855321628038990508449739420281380208331842596602124802060499124098430755518615841493226846040818877150068151564445414702534901222565299003962045509450000330192832756809867402114084760043190909349855718730033545778397363773233897138700678628107976477801820663067104463840668745297709809855001791669327469272770795179765338235346198997680560036193746216493043032182063624064740938896269001495117306036581199147344727387615693291660844146607384980521318277887366401743571455943606680325784709362028516394657533408403990776594741989168211045883685474175064630360154931529695384337223165214702064329454873511034986840571068207789761717888644859512449369659200804695196307920314230081936740736404723444741662615472977373533362214167947536969510824353443622255043362311104224979020286843278796717282952503563180230371939340484701948651072454345793281558368600884514431166586319496350892212176478848138990196766247923027389532212467042949078308342562608838096758575616358055459216615029658041649701911909757846812913529449348660861252879380154752327265465923418466877218085302469560348697272563533434790073582057522546450063241371734193523034212930516576339190836804006860828602714716569507340720270394016526658259953962610553499649771226477495758707812657605573178846713292053662860356894632301492723777684680087482505733525353685653268108865655770928776612885419129245198108916869115112979527622460931114049572460573839871458174029930300098842440557127661590031132274779305534812611988698895852903310902549781196449734830946497121009581611431686572500696457746716337251967171092326275542436643312833685618739669232761116253389741020960298210783602413700779903206987654376234796964660720514501710360408286073457924126027345371446475136444412514388602419667849107188590739491143711189670181116884213114947108637488471728232332875856784895026178562751333656323717057916425369579350740674354178111103418937962225731134232995495464825863455365421181732832167515341970464373105442590144691404933716497519829281154701762331378354327406099393584575169649433114712714439959195969749747246841981649590171045214736198309838738747743568208336068810385334688916379039127307502509636254737891149006396994487496340818600351858971384705033035858784039433222788316740923871796874696003788900126859183836692845987329318972914231369763596207889736309088103495848011893378658907801060858945598061899432820006655062958489438062683785617986519767571793458579293651742633956496268224604671948460995302206664147209502221710263070949528147011489441780198286733133110149293946635342393516825074916314635181107272646632610405471109729654728467560469043370030652076896756420331844394773619693289698456729515405062620357470780165701580231457051748928140487440500064780896997174771029441552270322144259729500023259761541253762503328502343217793193169129023117548721250529955753434549382566361363120727774049308594318804364832552368538052884360964359791677599582812715564693481967047256968227092443448458389836754142117671135150018543084813624423419921456908855707379839239207303237865972068101824818750843920361005863493890576801826978098604513184294330971881707344069968549021482083484014928653505603413950063256654630848947277196119497441117407430722948166260035988432374571201167851641576959381963608868205510034563706445874640695019832578977945230718257416615929515853825724521412897315188789920322345970231967606445878269939921926062245088991030544511764031244365360459511318289031193507003930758336734336798571269156012028930663941781649728961828231075313681187445443382561982821069919911958234549675592048197982656164763321740181236946761502537581172632364884210301016099530682280165188032674255610966514280984224522697444991993504708597372250439557888757141848035352954274921800958964285424655314618522266456772043910116191119215987045898388137393784973722229230825378032434767938643733959825491507541271991271888187679153221772148562528587662753415254467238986977743579790810574332338581735122118176139297757429843120892154981091239038857636887022882894871845155458654215245437223008859095797471971226909316111014105232779225305488810296263061619072821700551916802619752916057834530481787162017718669980140394990312199823602668432041181600899948016279939621591761716082030293148401719887834492502463053312455865076870189706881520408628335771512660065165062772712902309442678053898224852480866783570912621218767045707014823780543652490614381813735485236229394050940065876513369653012410953369125525729427594553765601986152570902768481317382161610691396534318598756448222580555797881404922367497774830815939782970997479923895895333519878857398115005772803417086957512839866640429287511660564667577037684489324582989369775454821293336024165244145868200773633566791554469205414115382547545163762959216111387629195038359223849050701284834168923214137806864451504526558536810598381098697817069994708258143944164144199104411714204606904776022330619180253235089193012599088898613659194165443949333843012514239844750916886911999028125482779472384638604205399213355604477278574017336252444339984821077377141370058358365849263197128301699151841707459581064749019777576756060762322635092635231556564155665197133602942935521893579508921746917908332870681320123047078135722665414338751731753580345946575959343800029011561122009776170763341618490935492760286700343276487485398103556627915122080058586041729308849783483375517396518792933757429959888667529371403432409985351185586121274774113041258134607723713757170565449583449764634530151922303090386215550313203612384235950826934198943812903936336396462521160227346515522643147639610915604506117718713944636027970889555864163965009321010022535701465903517314600170508309475459670313633178347004271789123474316140930147522147300391873566560105267542054699719260005024891794643455179224578920687005921060800521333803967745697865148426043242262004363827158426771876802769500994349198523322360545106044075855960288902966201754725368184732458103576000670615170705813021358095919090618618737657343755646007377993908010978298566530715534480075053670162795241462306842073861087227114650199028201367096382866506063289192496912596052748080783557808078275401685809545380857769218590832240005697272867881999137663585456549511491053812206422891915117720643856180363358551731538888281759531566468009171939111423293528426564436973704939793697860183065044591730775087053076728300497784934957891721642524184683895249064929107470336867811223508848153519320941510691270990976559787158131979742973412041217322459990058048957470082712436937502868923269541710692974593872460849575610149748132931371893996164933891716368991893186838264720895959070968096870208908981257410215942293421608629676672888329605846008209026841847447031147530922582901537973837115029543348053112743822230701916416442422295785524378966255129653939348682822426940772020183281958457946930579163543142989021009385826536304099730232191524667589280090915992511836286049928468062617488224413831934087977759906103293833085961369048991998611155810763279028784648058770433326496250006807656687750276057191805418971863187496528644476962846568906541066312405897499628058360425086294516537843729520327944582786392569895161087370351949247333239811615751966133281789216629930562200459244988094650985821190042814076846025359507100773645624029054078017129674342061080920501991418369983575760130802488833282049206853360630279556034069639936561050578048660054943209653915428509686170847509040770726275629735547815560296375092678109325932944349814001737915479468165930766956160577615437829318955712820878493543764992744636345243954688015866494778990686479085796846392591919998678645391494868951790731247100073016821149892343293073912839173749621843243730424334082341138456153517488922438228234354633399866655796485939185418321397748079252406875294101573788774798593538858562913387554301102522059844379187015833151287584473559342529395664244246415778391764327744939684868164948114324777856727093945361314944206040302177578987514816802736645080399690045673843073551763851223209344889793157404068083412410373561644996476645049878787402239230871707224119311951580914759565707431664875835926368115089902559022384650635856353273595069570202549612789602288857641507463005899368692902480397031612503558744982523076212161421260940068885102080107185208245978874241750389955780276339721647012205929467233547976025078632758957334999227088184598224355396694420675481776683068562417057207830835113314465631853049921907493043123117826300237842622105673945513448961506380588115083876374102907828314763412807321269379725132264451193510949990114987062470382795089859494314938085581170053651826844044986316868579124474595745899691659558508269310723035122276550345633771068583813988600448050779575901567600179799387274553985714792571898780899441193395706573236249879301350952911985842948460625961193675258259806738360911032021344002137544910101534224151534104051017302312754892801154034240907249235878611455338409526776518770467006076251979841485233520283849733541025316822625831838633626028908516225035984798445904507366967107891687504395590529840815468863460709328611656146460407274130669821831858005426589025011668594281603215145349866278818343791221487955341411929350722207659415564201480325826460109108610603665778995325683633295455460016808291740779055189955067735527327721741439439803150888609628706944665511830652265525737939400922772706968893277810436108607045861321051782674316429079040120296185846298178159792825969847336910204125124524431676411353229772675171957660134727302432626488090447053617635110944421761820916025564077997746357008779837287688514499926785619986359657207688718797351067003435384034145824928635198265338323741387176456132666843492346914335711152426768596785648035891501087048965921365208875143465190536434551879199911503888656140907381248235761061871940101940398837426685171025860123017250644723171822389367652663867279100344251200166971914000255917887317911875264690695337315992948126256121954474468858220233603735648400160654383462132018870961986480291214101775909443637013278044617220724478379383666645699481397846309671994870427132366214892302384385934869438101741259621328274574662385209779651708355642190102471310198056207985831920159277123759942808170354007673659275239028094465750812281464876308659740171725394914882099331197813463001982443832554674783665314573506677380170322037965829729901790751051922690667105391422060585600162689523493426679645719892152975312472054888343341647777770939269051311328099700601090333157643972071154144138392357244095618735785591649588328469639611216765154044933940304085962885903568377840474900417857204223768042850791352333993422616525714269516909827898567261107833517448826931357329718791780641390727078991014133574374596039073771051805093004188706455258674245240744097709920983580371937391073886199284717261324442692894032908066004799695592124402126755461721289782408923472803633639119021877654574016830266612148342022096977753088617668346614541092678299858307706743906063655400523754055428200564564568644968460788111636192374418523724155760807644150085806667475404593212887589154006762670406579124799157764074086951878338698532177156966377459127120105564859532772112257267766826932087054300904583938455358369871370569483087165522049711239892827085379272298814882349486534283256717050078651635453258992230393506693212341910418685792065937076841533619892140045288511339579314875081372365957366829323972646737025704151691046898651851200277522444379243133865396903919571442894679603721337146152748876772015803833416108802738174032376655574226526421930751811725985976293401173214979005026566383936043279553231214246353560005923328124146810443103929021585605983361007269805715285309144168350057611481966932887548507263291302961039061700875088456065141113356090411921800283601335285463560161183864628938314674827300869708577132874109465201694708614896640201882372614282029915030397962367441735593701469909297639991088121245930673694139562567054472032068164701472086014431120468222297161800125560022231453275631186349692951480036294652805303464860784354865405458944148367618978935831959668403418702759165502322265635787528999228532822369170854821359405564124177498698935612732397290416931328096336315354673561936114911625597278260588078975141526923789787878303375925491973104657380705605522087049691310844472791848501191486286072270670729055185160582856009586754340546495775475639866729076365350980775144843810538479141997599515330384780883767536966421390927624670180065667566737434530452333022486505731964046153954106199136780266866079532386913405350839098544572991314583995674726371741242172436624868643464878583751758292458472696508993489972265209852462254764236473235198101333298870728656134006085643419455162011472963585953041247283927122926669049995714054947861335253456277772311745896721117804651979348266713555814231406869075249941899282642462337541741273150548422208970444037911439978182587420926503767337323526831681910320832756199116420423214443840882061813799435981142561723095246726367089742271917006608026085996665606249207745050148569345794979606131342156876942596103337162947942085739663257407384187651507815144866993481218756854148687715407473981743249260031022482288132803604494900085651771692711517859650884505247816796079061282191466777555746132825144775264838108040484155582564790313658082704111887043272038554655677810334815917269752838293596599477203982341017518431694859178345027001010645247107249456859609800891366083386926163279164803657969813330731035363222180685629548249402376911189251445550521096915809488416008869236702658860358178763519186732010130183399070782705974612495960238472738478536747689151124231872360097970626077596675104445917284061989029299237729801425972879331141465477381053371386668119564073632631630423622688922561208585161646093351529598519644297278606607944073370599142447851129302161223196031432172368885119353580049916657754471775900578645731489543416092116937780524316780471107879414700324879560951929263234884049687704535991851902936583258838302513876387339326053946924846981740367637863633758440184443110966530249677174631055968112776171714539245957431905682042392117543783063854425585608292474392669976444349821366304475493449329495112640081350902261562283842163477883228622961826444597872068140049317742120995258660668011919078892092526504000151034588989120765064798110788024787791048298501364877046556900913825917295527580718035778355688774435071931240082382773663624610351030870048020032484903431989218263695801068983867129727755343271022474776834907111149364988414741982100486388286975046086020456538950484431146941927218972679645549483733298308501471585683381573588163644795962594328819204268691040111626654797894228981724191547294870111199993441711416673282941112433956148992667789579511945027211557239369871911474202657252877160247024526039934170622838240804580957770309517890605364909212758565550631769834928826594423196208094153325518806879652669794782690260548477711300031240007565998697544886097155855874089366199073538909992477667067719744647541542511068994596140954686813141590883761924029438405995667485058949955816373466447876628609982056540428650277259765050303270466488498364288308604133973121934166718022723015949734472056942684703905005352925434064030468064297328389246551303027646233044182065581829639824820024089198607913725075166551629555939605931908230440598079646947964446220129250691397935211512761611934559415751437180576225429733874172062143795500444979077275897763652802603643089559342131437661128102614699462737518840207828862002336963389300720776951577999636259905081634253806418507548125960418462000747118830383759224363861449962699383008741082441155576907486869008645959820392412890434854352208869569019186452105950627358718553586815987378510765214011100667476965578338049420461100138444572030987581207708351563063982909517740151113293112433319991042031146052261809584030913403398523543381832430838569481570053363582920302833608379292974037316480738931550325544543825702768132359305013776886891584789143444629955613046951650850542126828579800638642473408893353062579653729361886602620245151645929815247270635735376001100149070746708139977542805162117820899657465642134777201126622670860795986329697707714996084099291557316565796472446556276752972557391296034303356602075438786744103767198312184920946507985530948364645507137075383657835224615912257844869919977247445680487119689400442569017536080903585810199913319351073882224287679742744102643042472243646695950814598468516022652535475317310983103505827500309832575004450110750010226615575062782897573862752045096892320806503724751770954533438337320894848046218071930727399098987229379890171651175276252741204383081598581892601444571281999292855436583019102434568252588211324161281628630400146584007289199083528091065763285293293775924150499520851856603824681823779515666563602268050993934490592518580267778647484703951597292679496564752795184152981561942427563531771826577145631399293850765588496497737949653071935659329277702389122568579348484721446825612801365471391117740850750165429009262359123915276962008316372852216535045846014095505602448912972259953501927285113848216954497138171360589150249168462282654739159348783826789373394248149613459885005166217203325915201956245311683915313859523937232979804001259093554073405411600658520914639471824599797726886460487458651948776517453893062126640389402702428714566795115063078081025676317244965202264285442915999105710255547085023737089968665299530025659975910333903784378009893518563289114939919194131984179142189073675978963274692626199373478733692991553969587346538394889222690710675523459379781245936260757426034467702653768869466091382645123318309972177266834225432999338513197269273807694521609271163394095435257551124569410998895757603460096660319976893790180712509646360334555217458821654085239022698043802782932633099171941167938405419009413125368388285303085530303582537993244211404913336683036039332368606162842377316188268470691911465505862857845002520896643951604190914561055268508856549260217810871705351044965887794726367400298258383815172043183386469152527219927555273321761832827911995543917434130255890362134910666087015595506217917143716613248598875174501532536536577231746949392425613172460791725139860132502572323136937434680070253791638404444263566773580938833944945379252903424079540655256069463357208051162506213092631569908664337363125255978813121057596855771786732672372815076265099759266090900986414043054264828538333560186674508296955789926325242484730081702258691618322204336188785393564479834473601217380347927144277474056226786523608165537284674664088095806144323717172405074771085889251214179571299291931518729756012937185553982536977628870095294548712566721612364857738499862357962405083480498264774866603480629699868835168586133779922855942433248341956704038281490605283510004850494265090494385665040246307387857805544427691884622865187780100245815344614625335983158914647799280415562695086487893631165764195853197918834498630124118089610631023036319685315090338882179284128309032749007976827222935126970148541013138980531595905192869601702839742185964235607686941990631672241112631704131205641772478515472404072109641143865129177173025910510825164819632397127861927478832460814120182963967683936538905115246498032299000719126056781227974312025193239712100344682011464633682522781283100339391524484397376972098139940565916630299661264296060224874989265172171920118743654610241009270798123566216016005948096728081544588341885021739229455249957226945525719801867459682548479863973742458964538923400128791536165156074844829870563749355235751075224310626392060900716240230123982229242256621257554033980076434104790580136409285001799923254430314732346447588974786543385982219090517247618855121226842915139651791744333925072674993999364035836760911227113659861055201323194754733936863011533780015951853191690707469965773739660996814328846710202181017205302345675785284459909771841009757325430387995938671684407146360792311344519900370935477503925959119901521261049361412951911758989172672578211367079203886452229918430995331446266739187065549920787199865862202608267085429810094441705830524352176215805234644102123366317513786109083801872931142430346936733281810632295929345145155120944436292719264523120346812630215187367702664470114412845908045470198769475012503992906281361505547240766894116085647753106151492698266600237257633546231887881924364730133737909246846636199568786284673156903045144619317572740370749573032557296398655510421744790161981533580674078579041366178743391700711504218988904178867533157070225580106840667000471778723898944740382963395397506677952718100440685701122216187038778063586152876274769279222127072215488369052048001927593273125014459283812520969243775495221039102967257347145558378453715162257469767635001139814988261718918473783087412531281601724600154912944485275140257933720172668176752280923166803442649630273745964428031620182104329444371029166434826482150997785448258901044301854525808803147262346822414371408768311112066334137973503949247277156662628871773806858150834178396247988950112868842459603313104625683967581493051499027779739590794858656062687410603246576688524755117970984594121799907608210210809157993210095775955764236859251218443990403639011603012956134846933676770186884178203651795418362522434244552056210693488198290838877970814571679996273892709870791474564525677285376943871513272612038644750637585034212444746966214025015430845064858891441312017660273676749548651843397151979320251219416555747789453299469782954607967186242603696546486900850557760797832554873062579032797303101865137508245025660235511599475377423991062989666793491460702531973429820793251883117985729955465293796965069937655491976891499763286587809778268128862102057061908027473017410413485856868350846962497361797191591021445066242553588323603105028403096427195767841387649278634412528624106644245457179539139435853954562442388864257710601552700290977237346329791062813525737688731830243956310489143783443671700153235243260622295851261096749598795132795927022606606414805564461675013242255398325549269418197582829403043295915073926861931611292347098328839561363538098706534619673363939425328517413013462020606230333159831686941129899842396519719099545296061751594408871742104752121056343557820686603944022545048389465246912644447102492283094341023336958039112626946589050562400287431741622599892366940847421321271357750617055203907331687211936050592640243016383484255240310607811202977224993003471404646915202076590400588585133725302549623003350575337308509174957607755837376876277560588520026061869305100350006261532167807753914118964531187948446219851992786723528934062932421795987189893015490143742999125055959534024713658951038825021304609406313307846720790770720831672437108431419653037154695445438781045009596410779693509861664285271009653260380564484309489247638986610552538569565936496880000919491989697341380827702234412688768909037855361392586307908167631492359114628576978147461939740242789956716405390522216703785085736136721420893428938811449796118513492859603009969026661311117447035310812733583160684393729935254365965003795040830001136901721021427591223310375977063100380235148246582527175954856805991195475955387267760878502176425791380084171195337781757441490114240112848013957125596036634526912431736582787264624716206558590211487375493264916522174888780551449073651384104252974761227776219138153192615669499736879920226227978777815047209108122824561923232878055215375343547257170313069288770555016615599677458499097144734470049766539503374985213570650269971162352585631117077962693111644922214996832080537918904879691440890014617211173460032048252240613366213321310707412182810704596492573325175644235599627484890167902360748476739433408902824402918241277947953978873569374083861271778835302751279775327553891899784502638671775966252927137974236774543849886849044841979947189867714478876492585714259487769208556900196158380685765560569614795118272766905647727394289379787906593978635021594531984119010064650149816805732855311844458606047222560609301677202638645966598249834447827566701197174933974180726225680841535454820850688389091014247910834979875161708167988580196532288565873171081792388265855082620524860568871286022729860138441810210382021476451520735763841442138945686323586916593629477729093711074513550600742498294529601365072924138782831906230765891478447465280129185273645833992378869779481842001898807306530284789177414042287921717069535171082925003749248636025379525191469241681548981212595688152875525958555860975436115739656081581189423189350703680877109710253724338626712471437978284412228569273361755575607335000083323350673483330176545218522083724135318894051429975388823029522540790772771894482682953022617779465923275770288663439548812466123634289567097739053264229461551750246799034168295584533617278368754396538176435761862151447107699092987788041020455822538726078623255571479672923153497810153373670016649294225474456146071333073059798917058410625487130333311370414580105434639720996214487631549621925961950773325506012993370136673892972436149121606820395828333128607871820937606615314275601727691073477776365405755129497631749658795301870216405332658602742509518005343310989204995113395890761224082200331729790252959331044582930682532235387335385207347574053863490926972592882297108162407241608917797086809909619110624204854588474096781341878697143453741719088575004208506239460444867445785664994079013777713002642880641286038324035740841501506952649980320655633240356887411728024174220423336209799207306631013393181162824114328651631517377157992718571008392163166031406663502858805214610007719662075069433204213083956543219258377653207385652828236459169614861946039478080921204432814772588429819633988595128956723212748232052560419954192312445419429208109764927365622255522094688056379749747172873994846830602562409192200547904455502003571409197984214317835257985412788535855124309392369004730890912509997972690397149118727100326569438878069802484536495715454533067691591678580986703199743200616761938028966798179833570385906548789744823740296421171228313816637609831193955726423822271785130377809963065533285856247734110586702644637228947924596923595998064138651697664085656739917253553423409122295529560003641722558570289897565225577209118124410428581742047142843713729053031742170879619925171506064678818125075807830222816846987827456081713679734409236324871019344781212268579082185952815098371161063157450354563874911193679820731321411984414778176521732414604032539981685048752011975564387198720798318674633780721701677823428650198980945001671368449807453708367842233977767140365832452416578592273704996956136398236699413505211580875695060456578168449711009523358270838783144674477985069023070928450400537038417504437756322410578151529443725048804059075453050436184336329403618786864855350426077808207854867872209666688870905643515347913855457463761621662525095450541774462813840054880918784707279092940834877993264335823601371324320468402005980285625248664237677744508780004705814195563303470563928761208132175023761870585096169716323947629743180159002257216115077763584836646890937865181727125721068281781922289405628260090000838344304523945660761349641435574370754095198138113243837051571084073646680649891982130442144583159391699495848772449573835432261669575981583948635441781807180072319182449969723679837628434583430760444585937598246487235060362972853080187801976212761973439002894569578189394419203171430029846689109477241480526707132704436481222685748103376106223252771131377380909430218469837624916800862294282914352337528157634171492264013694726109533285198986733048942361345652378249120104658268716632765958295672164575824885328923904613017389346079581796280543465015304526806871974134691276764438356097060445284649584720105342085959273965213072874509983801187898702777594185008323848012766953255176161413060856929535172906211526558114281042247117839185689922334520143225680973215927241717641343277142539943989725670478467952766655655901974349709476965835536382393105279278703936026065163112575746391432903931976855665243143833578749195994164290573298905544851433219868414305739426053675469450181403253141287664369342181937040389681007784282311834651502488390940046059573482067662122583449882118731039391693871841663276909007630955487474196234033847851309344003933676410840862673642179069652476328478518422964700309295104379028235886649785904823422051685617869452525387902556524400486038511064625269574607758079636040432091237563067570903581697224633140694441984449685609948105942046975108471498182914055220783992186548103975131737670534801626990803116177272457562577670368447862482592394996526687182687447508242948070744825481899903970723709392565221192542340829256083268412538383064379689650489568452443984512539859352814329624312154829310728819424942855613007784644658282233708613557108280048157521216596853597280026698685817342509647184946399009526276924178245926114307275660626432995608901966295847601179132911477552018527483955028324543013538436454156929420474447549647144484756706070157154156576633509887202113377942441792544442005888511027273517612226010636530107702686566737577902240974385971684531155233921165744434924638696108021876730852769359068819781467782921755747577303633669796858015731599277736283066429738932973608724604905535304710606280766120927360001905834976623533519126314198177735907847601502417671230133911549955404919684584901540942874911228871348948981099098230984815852090658723768738162930022765184943680151382251689789615414773156138043680065255831100178074724675929128938210540003788953538818468141764917653539604989672214212701848273986361976811314090053213387770094144437791825793038240591768177778992731558412013955969863073460298338344111585916661740734652691195736143983719269699450825258100152536538691602253922853477030097606747182759229225123303595846814348536425206316302318244529303607665425981515410813604002602121050937400112990192759530395191896998145856970596351284959795645290335220656690516396037202925815918121284728292660945515445583243542888744154457371476153877603365629103155011097638850138884746249497561581056354033956999802832022226930494886014477857240978168204949175936773719527370066600584028999148253825144423917994347759659928772196059981827636354719896585459680298458374360551119012114881119722317088372470677264163487574578521441340901613824010910302820169026213378618093602671845606387996114467651622956252196037246726435976530884815452446205614908342597398830158178115573498020752828681489529971498199650800250630374834155551933738444095078491823437161312312856692923032196740463283890604203516393365582324059681162464997832589552636005076180858385294350257817214710821488789615532877351866264727267188419114801251578621173768563632673787955663906112387957820715352334473710934490109544615365107687524827462491655454671299145249543161892732108033272552702221840283770394341620320329407403998408726877368265283521747597293051775857668630953521089834901598247635759242346486556172440932917961861352134040788222339146313999621827501151626115932595463247961072077958406142191840337773916190813495842820270129363607411898712201374415491905338809559288455801220755324908445179092293126692762051848713026588672854367449586374019264955934422241393231010115502736700112373736806594975082908457607058355261520039167521526866298585169294405571757849546891273226246688708171477874489834056319982057923532983719631415464823771560152368787218610024880474210769238335811718373742362114574533766740278414065145645867338913783129432784795010120954323629080682399796504876387442863658329627538507539798650660488586826752813867247574417963721353082380017693697907519863395403870356415656360631925321977972780979426670372748147379361289682162217861986498037927892590169029950558690381618467661630305369030789108606490834554421383348985465796343018646517588789182620520846528366184157553969481864306673699862868826532790757176920581248909491244754217659121879834416421822861828343892024856524327943165033973956485666921683327064932667561305259521185188137527528611183043343466821401844533897226069940795232679738876896117282455284069565030847954097224701211760636217671247884925742446413124423146150368961432924546409540886526074015866360282927898603086265778309292147606113216895545446680255780854176955263287314443934399581386715710324092154116276884290504755849569170132383462331203240645136742419783747328280346292561079143634026365395113406264589260740439867331993836031259366005132929831428007087451098681118159689464222684417409596785155135176511990659812366243878444701117600392983251342583924714768600601530257920894841252228498701694161162058634133264099715014638502669421837093424709067955468036939915910375704364898527613339547085996121510396061481017531018642508829142114712216933078073902819906187022274866547078750896648801171933070664773799317990336465393936317546616672162711624185864113143007487069106651726440141174100374631506149762829792615630877038665667593380274881231133935538619687428195371200673278240030994227217332865755019985076915108655701997123136071734651758000940056638982028175191686832657009950176321566787281147848116822633221094083430156038324457324802134277679843147470428539448995951360437986747516428394530982711431462189928001371254295374525287998441991601392025092409253592335519830190476168008318113488881416874880999742063627375884708012703100025330228671907892483285763488600279569293043343041769630838016850728780743891316535137517777473685844976891612776036354827387811699527330771922202973556618254846337146534791995120186476171356764198102134125408752448577600744967452403291448481504578897242080834540659850918509068367711715905954406029492965293997300729353588070082313619836466521580398865791921700323273152546329516649270092398737834739590987101613287937904185710633501785957224716881766188924405650968364205941051272316137872678823573388729830767784159546816532578223802601915420139800563104918243281012436071289324023149793228807627146844161467020055490540276065016631426207952163464334194872902710063858879560086467114942282073252380872827590254069159649074976562125276628974381209499606811431284014293894224459661691521115790914293513427371068057406179963432944032978435615509096823236327741954833006923925360147820137814057311199114762780838757981818364433011249880226559853785847203290166237435706746059164685986969020863389985947482400532823333866238321500436610305169683405400679158137426952076335792623907722474585653977976661576189008358831662525482604093449066436418099515094806420755300672100562471816993165725658199714401322917248717278190250791884329267439984356552824214533671700797628779563174330243488580259014332203364241275418969503877810876161272260196873054285126758546425809311783384290247114864653222659890732614641985684178696847542909839383494405820593932694398515678312541017173870954930368740854101041054011184980933169875034377290679585542555690730786004904611759419916613477939692588422882479694558057880138032796979216910724606313544751164200397930904899634750136865823524910555649875503652009704401448060929226406754419127574416783366705901294002470352673275252549960359442198293106601622695017752521414904050657258685862024219378823873086823171790469835026615148971191106231670455692763429930540113009632303650619738817999532689544965900243606822810711848716234331933495987302235320121621567648706215557831622327402915970378404887024608947404696187326364471222252725457479581712307547904252190165930311774658540003664962961560416614726638090417487180727082013741543708339784594970343609472709730164926189819923943321982207022470334192292101048381086694370925324243118419732930393435924058305195295269597818246464502815184792263856580792504437962839886194384822954703924047790956972742490030957834425648284311572384570935060845729965511403418404553505407001985614004465195602487835463501517336687199742476709861642393440499824302899876418387900429195466639115652263899785940481547430404147478639623504116092257686378622711940625988884682347765820475661866222347301358324881787968946616525662162542335823044750334104483996859668973835868092393106704935596218501127957072136435013840613654509815933533372456279516443933367764902426199443410838880632956820785435202771260078623650071792305154855259671654215437777768855881923292117893582911861115363346232919607015769324448627404063237199402759813794266360080600417707417733656020339682977484687841112603611166811986959239130424350452050005882584654792107244581461125857726780401582452722657816409946245393075378491529926688596757326498880674581421465332262473550587502090890543394508929351712324655979276968648932169746354885284016311832952543737776977807122279130509323832224483977977220372476035170483325537646721039663180325620430325855832002049344579762279759078151514290027487480642885765003481551747273395981293505680100032305735627786858652755556859184935206142785251103712590739138608757904940404003967358083528287932085470373161932417491251820513788186349688340342516072030387039031800012838707374867196215513661512831381536859474889191102314594233954714229412571198351575266125541592888657094172519157460959933232865452563535499893976565370744465975137375599904416262276762058886620468894539172439036751326616374708156918888514569186232589958489095037921675716077174712107117770198155957702345459590022129518114571444745803304166802480756091147181441401745273954021268866397951908716050564051802998084704374097270207971611241476513625230669055674556244990266147626331169154012857502043563747016404444106457220096640188351396151898968248425440707398522110314902656318494651384535777863131787163694408639958851775219874789519782564838370955620033941785826550189502251612499854064776330388819540559096411529146140952815322998559572828141996237621922208043316306683996895456028711509669726464267568043986979917539932958760448835370578751618424859554281430072927817237139426186015660318453624543158314967162930619147647098824287357512734554611276153001157292003947699625161929984776566752788715606222656886769216761538162537215055513505140043536830104233408202841940682860678197322653919929727007063532223059843291628510447167866612502899276583358792578783406827038471821487323593609600327103109548857624401761436608722464581798163184629918046866059288325190873928364399034003741675997694367067493002880370343676721545846616126852920817802551870082027005960716068068801473986855814332751088806726951684635600794085642361220578164012343977069014969853892888797311037823440304163490444001841648304923699186541475479151735061639728358817242284815403478745880618783098549708819437912710789470238048662505112491107320973284970747001123504870177994789787693964238786277440847071858602417889166716221608172833147363260240260511624796093498446250729637157233286436384873478254219187510539864677056255738190281761463879111733520543924923362494927699669172536097075942923088965369645054069684748546129540471936694245218159186680622839723183365089024535938062749906340279681339584624499618560483940349384396506652324028425158193529665701630414964961577562948740076012114495063848358081467092498911506616962694777184898016738851080948060856776033746825388546324959105288253138857532185495554475635561455322118086173263500979828908145043615515940593372251059248047934693729171467505734480935915087110010065338867908756835941387443877830209580421330119240388378948170504913074307877654152347416158520187985505315453209316487683705740622607143518268082631857822827884785918690458118552453472578038916563002541398456140214212011878977191520061071270764535053000405786517245757515309598527832648718284848723081875423618134396615210617157537633880758249362143148707912189783092626896726550983944611773039055229216674085952126036186907295369156784530551253340375847453612971392745936973748246339926133510188919604509638932868283658297484304568511100860470475154596984541330599826911296015929462529200678801561840475917910909574750554822679699989777684691960083563550918404996408757567300695900885846003446689624564382036338026913820436019345970373384830634520953110392508521670549366734403859971499143917748657719201449224401426987686958387558223432189986712947198362411292222255193837918297904343395070460277998554926943430184847012723668839604406306506977998470030720618583164968686783417991210267123182262844374212236600786334408912128212210489317825569797327318063944280339930314843058477088074964361675883302329546581638372823108245485037202523721053669718313992205580374848373577644773914419085261669911390850723054665752440049409678325669512640087118923381748810533041484584400032941728446391124277781096099435765324131211599297040580852772767834300990864821127790494313227845049213174885783289161890451549463017939185406260823332252438647110772383091054234553869657600681203990566755086504710037220282095376533089675574227414207808988678656804381895761756292436412001130239638021190866906523864840854403894961961225276376422221789715577522520590906987789781550147580603217091673896286554292115006326533803822907821764841517380447260404943886583844157930156659552042950540217566677293640400119840149897047424950027713187677870809002816224186045593724234877395515722323910247321377620531660902748310257572959313914507956121815892834558347334515020753487504381605586406149206725730812589842542900595971489236882413840187943065436596627334423964627782028378432196872570420961628960051542637793576652532834698478667818248405591262988579200538645289615403878974643940299967717163242281591783841338891153324615087610185789532807465515672030751536225625587198096498849881088239408650546993339329428774173667300482844419497096729450803599077119706922621376030755034186702760815087536540639870595774952254052647765440941725562019896841567984305595129039339684443791535725330619127107653646020282539951012799465822759280314518943019886051836080518795959611202982993732302112017414318623973801395861805284243114241842449834190720621667550957507292519390496181525959928887753882057619297180418875587705238908463183133442715276177346131415745709639713526810627583111381420197619959609052649238101705073751536088683048460238188586129829244925662519587256720529829627942982105222203221466077132001863832007616030655565440383848952592464247253475870911766421404453827658070466682430420517552199550451602093207282527858262570288530120066190044808709576169189444100723081678278212715464323162090234603938306733858461698501337978715601895060568936430078732641183905325628302932169145782322810767494363497182719012867585201058043460650253045684439320325324405450841604831417500071977115499749224869274196703647565755487687999784855938430868370100314600429003910968176989178370833411018654155971436812636251977046806965763640641262648735760665494457100069631376818509384067374476237735868159110018681546385263981527107943193062791340039869322005420193575954490542725309400963858554811961302020340468705450544127478390275132888740997693873320970854147628431902286042356323931615377988904383152319695358662197815236897675187367679364801683470265340443549272135560650557338200737789541564417417714543608364088933904959113816862658663752146178098613408619100855700539966096762776988024579455572478054552539319610150172434324569246702749326197406883380994906271971601715366287100187728176383227872799512753373800906596393924414403813218637193753334039133205155160861295937495138824040048024062523014509334994878963987653737274873672026382180311231529845471532942942867958529639658332017343198773465500541439528772196850469449945748250666434965105049419505764644370562165803307867861952287425037777147971587217329984561489519217516026541281165194235741261035798915888830673296956439936488527497402422662331686817788952184872261674732851840052119490442516015193479126396645342661492774975472606125961643523531754510360845937349265193381804913196224157050688765348479054138092442443648780538190763112598719977567498652408900785327834025317475206002856671524288211000333547261206290299691694589458166448048918721408483104622511464668892191867172941535514602804714180997934082233543310791138622218414737645791365607219196915669441862775897542594921174522534392116452777163305814176754300299807919720272298749624416876958914196545090414271240641594747121327027549922290590703172460611977951880686230366841752338378685332010039976564376242373058994486150911922616496856218091985373109943342873199113059937996609224106681557086981475527347126760956689988148858536660767874768462990663501047607911560975524463266365544314879107014917579177371989213407323684869457628679075340160011086867070238865549667957817832275999710034683137024160060192948670413609724095144484314150087819610282453001969992267550399634520299750922270347331250564233637793870094768813793207321079229638154622704405847273946807248186088086800331445821824464970967895158889615313190774782749693242766067962343244078026618396825305323967520525444941376163987437683171769624999913964765402808510416898521045210264925905401005569043671675944318298265169670065313202784626992757445544500799830889971757288747906083436304832855285626920743381723085205169015932412711257427082772611913484580065192848469840650178787893383483858662295387904741102391057813978382463879476306305123913272605419253004196528766925772798226959045214593740230729081123350575369025410277320693525141483362563495398942825723501013131635623135458262060323338059729398332157219584341229722367201823664513222377446497818467377581880692141140863066037789508071061670739453026243186913540044797593439023092255209681234185511114969821022223885582681317596420136003291822532955477424353651966347204956490934026428842308854587751811366206054985747850924404984716067855221489010708555308700143096262521293750453518591275796356514700304548446232629188875461199780823815291684950985512000735897113266329081599196407882272773988639463470314937899189214764931775408925386634669441314165957069493664531992571062045624432078393888621929851377904999207436346244738979994247197745395033382472070103615549724982212378604888000786313247115356275500607957827953831550014357556302072744535880376886682091955127757682470238412346461884003005413503234695726176826063138540157652410870904754341316411531274817317447600441223112911369572822849656284013035527608006545361870823363921817859886237749221485861954998014532433345950675001417523162891366672916923248683244811033073135965141849741475647157230659097753391479151949329944238797735511628413277744507561700022761834524164387671619496151823298891704057557864794384407395873493405511236424395937729354161886373966696035711802459377432883920634151880908672987074301678774380117594364833019940667742216664241754879615737193664889097744805474982781089676071566048737762391263154893392392302488683012350181570319374418539508819626352887306347548779186527566564574398256431133023353697287816531106081754796178400405394662018049171924308130923066805735749944096225830482293194457130947749678593370180488420306771233595388501269725864309194389679646780975056685908708003322756434897659926751901762967743014717531138286239636005440455966284332308911287192831795138581247326319340912779470112339077563144133206669162766835719523726722164145766521353546202970335579030100189759177981395155703041750648093527432409249181620066027778867256994480376045732531090085589058748623422950941147900319575242905025607399296414762510505372948723357124367797040720790189754958506836856718187179103534908455542523313607051557155585630680988158547536004803280162181433025159644511801195173808913375044190715547190275337765911064739495813857735554542490574361539779365877372118577695201434652947064563573889813426442125224179993914447673980279137222083998537187709256531995712284434376908850987860122318566879703775947349164288048277509650577978755827626270754795936996326014005082254902081788725145270745110086838143061532920445920063828035646586849801624690105080510219681505104073659481608372175967271313741713014678034743030146278344261195532745551553697950560585199897424026824350747080397511952616614594953128923426601246243577728926331096631622582632293665615535356327519195503908048423321118717176701185660545800779325601831773329873849508996622230457539020691784731615520464636388342495660247131848357261746141184880582283774315643691384112344679231421220795322510448802084900099139116992652046543099933489929372203130507821257914083701077251319280195847928549447984611830505603283428770979597864838969212435630521053530799203203761442737511152133522148466529929488040951907542708500208333041056725598155240829754720471005672591832998006595855512485360557816556243131836760183920701078935004990149904929791870726954059070701665014748644459190663036201099634097429528683602379401929472545882826194610454941720271673467425219615039914812529358800057134562167201591357308557768144715703922509305293904671786829415730441259319765267707608075516028428264003125956138692550568585598516823965835414118121201021215566671135742823701403351790574045297742276588796212357793850827261031003008378078941336089188494376732855195715292164603320521411295854372770482202013905832821145260716625615305562337257292714055327463200913515070981640758304393448620331443805753251047584701584717164790534967615233895125651951831745627892152584151902974369472320792740331949199910387600087580196208252654707708285727970239607515748531311689541107040498525567483980198203017787336993982387074576582571525586690014375954734971412995053636720840279278995311308837567337742470576448197370140384583876701400684487947676113801345776970724350151279330413008630226834646079599887435305147652435747539491744225271897567154997760896755152306912983497577164721538310349006522389601999644217821061003600441901126608462329457413500176773314118588593051849568747494090879532392548686596454836868789417095583350002453232366136945197371312214882111285841098479716038382154004290105678765343405323472975172096734132373227893242124423193057129156609651527628129288487939887679243533514096557796428036121163797569851851390916920032143205313457069907589468374734615401037004862038538024054962608135382276679812391716897141878289893592832287486907204751577975457754632961239100021455388574066483366524584645842849022484081605876745837556149119755082113649008648877573297364996021307208728447364017592932768447934251753282160034007521708835145553306507714336212862406963633719033181850131204518431821115571592903868447239676831330713678884895348474259208731759659989535554351583249120834472714827211749933844603707660013299297278243794722521099652336855393777439270914908474677257619536756151138822612988994568485265064829357905113985468763481853502471401640802500970796073810661766105139658455219461405659367837296337102543728848161789887156498429096273222395172355487823025927828838498766410999421041637606251018587008787529366090836499515443489939413385088030202536260763774164453522363191124295361114140442859739453128979057994174895371950534223030773345417360745194254098391650475987737494222961146850573855585456994685117425144617914912337854472951693932055841388448396234848784595236643767605425835431203923930138986364533516773663326318851840540758602479789311181154643942903717375213083496887385060370262962393999137868350465204417478156092710307971395572917387747312679585470977834501801384459779839973972827105268697261001063434258287003490182546479790021504572928583115067354246101492005274678722727389948380449234421972258292529724594181563810935255274043660956472517763226732331788052909875742984154462620854242137228577476239115670583346123456055818795562751179971051277311631005365152451956080607414312720514234544725046845046029255028657589450976439090194665713656704068599551932293297689839943411671430861846043174899029386598294517359288156245906135585593372685047560421801939629654897433941956356940124033848155907249043731183265817817996398562907609023854439353003071513141934745075812004686962183542736161123178085743045310269177317899997434195903260943573530164281269208025678571720545013583054039736848425559214653783281676531742007494783539022888881513450237152749318795050027716479843005238389803229509476378765967440571214839030915822854405702183965273801652175798250306730921373014253897132708266275140620687380959090286058469952179341695781298572863023801158747265993828775289167076521796065418484541351494676427576335794596750276268261121936890756060738342904765393620749952846550420882547754509414005787229000089845562676387940994671412016043056627326395488380475342470181285683101269362574403375828453410523303827119533772433118744640939825777004089984952594808878756498088235626100811150337674963639502512431305204162047835329161015056345895921775321033229105241823032118653885986360271766768047018673952564002578211809669375427575718891686257005612159688993648469243281627785258754258113926089810881496259359203526893446191382329670887309684980591755982729955406546698372000874141671089863078717150691048662426586497022154407774618741650903497379679838634194368894878717996611395222719108932077926561210709416504039537633073421151998435613957461827503723252295726993405684986473231833824174192270636731758757570584833088161617169654339824608237969809493670807451651020003816783981212271379663882796208062610981471501851302920816747361513091575667637900668007578439333842213858731086962860958563505713548357612072784002112877109103680967873329856224517242681195619560684676939675546269459459767832157344240065694194098403414791398788466290759724124125160614163914234462297085529008682191913305727546261272559381720931490245382015188833599230171668615526268733274821871874714936126417497971221179668589334040021153020610658609589789752619745920217203086842815677326572932599092575695789707139636545800125561163818964227650852331756359336073899972519329541237626601981948359891455474755023436912010866279549653831258556300338305316427643683346272132694892542007113788330391100222027918950997995468999189275137141121967959304037947705832492643952689498067496442534233947247155630043974122707379794383406805119209383395405287965026925351454370795831391048404573511907096379925018131580339780883655407703246663968829932261514710296944573670977724844345488181239467733809553137434380200131755942571941537471641105276021069265924516542345523954278942374844879306897103344531424568194473448142297626383704751570018770733036741834957536253085368638780760147397359124520607027607841023432882989476389254429554768105882771716377033113090083602388162354368529106718987916534903873679208289101026260561041847294482806595904663443940148110490144391094367490654855315188593274398585611003094615390235836726488710552969217138446060050972345268397488143170516623505080943976201421658874536317557034756745559303395430055909354619908310311456998176340765724173227658879294215269186011108498813479405842231264489906890107670905447884493760054394816557973050237403558604155092642172164018668908776834910074746793078065181175724355450107169479207175352295206920564182874154944685621606584391764331363144773233743861084444604310949648479821688347533580424624306879308861044802416595799490115672475473625614318803557327662857047539527511871602102436497562220158512269137977749461855240387609569431118330649892958820252502743321513871404322760861009723366114263195176329542420051981086985296249330964647654692698357810803086523465084288331190135226214409946596445604358476364224122235836963410541801200621427538555623656122760819508787487459319732189290217815704892764930818175667624054099594363324290489493837948067125396899599796697733183492606429235717211431492539562288713287320174001940124929374600615544144566806830857327655777675275912922767004395580230163765284855713448564730213787289840943024676709469903568457183681060720418314021987815245067586232782067481727013408303882442505536113885086206241382934982753202257176245092926701393941297572553757161411916732857915347260973248044752813395338963832697498895687402913009693847162611822355574023848661937515877514804789732605882102731175750844920685298566651095943267350703793107841618310238048578168338825870953591789705667500067269677082854677113852919604816525446380841485127325742277264438308514449841491546427115446187383864153967664871915764181805528881316499959715762436530661204956540669345950584340761781234037649582783187420390119096607985665724719603878837188376415378640155900405892293698607109711404678791829057380013963385770350818649639309504977342151033307292437966161026128185931933129523652905419355024377763793183893943364339369319556327815756178649529160320767398413277073942998824726506380132234801459169147293939213927246895175915049872721792588735361855071288856388321496452193318464554187414475114273327283779462649594825874819939234205708461931329670687006041845544241141578773319493496176438838215790048834056069764576344510127906768371192515287518828007083891891282024615702481537054253885477908484341165205302042850042441502043458275668973565293819126260314581776028092737216097506105119597769470072193988555040658515856234692608075427166027699873009347789120941705580408217867400784459921546096493763773096855469789954385874874357417557557278542193683536944134387107879822630338374321344925086519407367192175485734978568423677437331699175748694016509369352838594134064808267864873311063289214427470357741138929707999928110877212723659974873594411754511570166450914349700957958329021080835708706338391635145204722077476036256779529916598166046368276226502585132891584525703313046026323407166833617124305850480375472899298398173781658174825242221108624884806559833605120217055398082258478704692056925961771647412819934090477673573353844888652040946383186108644807303685904118743367609627599689698291106406674614129252202308451797056062455000104808989031975203505662462082126496443665184386996365925827109337975348605391717982049390665487752750925796533083242749555425240004867034646164905022548422828241959649355401817435863413982211215156946161032724588924123824411293655288382729760353796821627714157741701016948213170886411215093631017528209697509519127552749959979903192986403461260934028701454157189012093388413823886285642183108816971282199964880632310413665209202284803759281437541529968335430016410568733277609398847683992725650097815778179888246279284037790783477258281465356196087247885105907239083519777614122959377098464662210445604493907439615972670231500946872846141571208018096125386327205937417934011414633120596592967599569532979616265326701130533975861144993847622309665252941400535197543684316048003602412605491040712346257295119711316283105062528421083794488531252033809172970477487536814473650699859616160996458238487088528049835486622485122433296036046397858941488974477605045885759377433386865917736840759849400957243565121851251663044695512448347627079851898155495880074476866955596225911034168642160882528243998553151549668898928708630561559922340174427570983823475756326003920725203887394732221222471597664427194967146331790875007673329853773657716957020269913986832848979617740465030355540499185004746134431037674826447281338428754696552455767066884080947149988606559614479035299519375944897055101102358552762349685617575273822863258158793451788641208315002815174676235045183582019604310694509688831783925385745224668958168530785072535693949989091730422118194702292515505726942073604724344975012870141544094683504929994932300843124494071918616792447054920136068268279402790238093022966804822519461675186833752803872599301845545778916748288931200992087702506280388036244380352523480506408282446985712816284934729758292541095128825325645730932447348839467146603588679585414948872696027203137734483574603815052189172862164565084901660446803354400837157499655038706678828184414490664995703413877252851479522539583580421133231790699964267682698317251458867822765951109617098015497475635830807021327810472849864310752448598263850484589203289100600118006264031107431586402772500427845054971647409217444356947396326974476016293987497130062825570148839534624323880059508641223950819809209373817171222012578744257118718088686400732402256842015442466463899212943146835580597205626797118051203843298969313528668797608446963396462535106177388419246907045219124067945914113447559047790599695666129234962506569921542356746527969238955001102032896237384560961744577226868819486040795446534150054963997761172822506637392800078104937595669181077420784376985222912611208324450189328954641190702790161985476916277734660894697739879048719058373037612081624587178316042762030473107356644141041076733573247178239266052553714700563792591192945534289954214551322359907514319350919907220949080763298843963685994526727347783542556993054636842707902081071162399612376944107458234715724719693742269886534480553900109337459678611346907386212575205003843324253489430797531826121856027027312322959175934165270531583491341350231770441070453209200365795502982677096359717024007470407585804391124314983573778831891045405107008866808772688352866701720485909093709719073492764921207924572108572673571627883718190296974453992555967746735657541932289610397763910682577062539809378749960459727602452166434430872623562951080569269166325502180604938824952497483760491212785832970547831643655282707986674470355375262043863220653271737416230738999989562133691907295386832174209349951839106839401248935550492091219352047596564561802000450286232443860550618376626462371455811065870980311935871019827109368680792275170463611726242889595758241759804812517751541773498887877089402994990054261348655127379172771728211445465754623407006224974988177885418963267028642582313923491388340213217067405806275258780626315822583334495359705161546904856996253186982547674247710045087942944618511477459083261342056913900926898498506894801082371573206075690409764260610308145745689923464473095619713927176936471577280694541398674250042978732694566283912678562263496986045984830639897770369437309903454159475598580975147759037726650978909860680740159744149163083619972656827582334837803390415121510325198293579806860947289318283974996367786367984279055285803379495289263888245117876764866425792637002346698529926847545842058190338490404208199358857593277927851785626295350689893694234842399256074728656488351692891436177877524972592011593433277910887108432540121019492080519664077266881153436650929806051833321917459474595730712159283676021153588828578848840575285618345683694262981042584604470461224004190754600672253559175678712280911312536550934909151450897147830823945694315815686335222976015734770651813937853156013407858782567464208922600153346625318587484379142439708207198412426488940603251614437448128032650836401717246998880000357141136081780989092082957936738383506138935107740683741124122570778663027459571021153102000883927301318211596250793650477507901685178212506515836864214293375231727220585261700666595758399049272367435482869103866436240104247613129691513605309076841680077501257408634173885428967940797122102773134438083630041011209051845202952885357817773179776989571290010132429107362315033169325347178773481593392058657283740599803216416245765642485921464272852675392832245327764788819500480135991550567843121131278462076015159626829604279060136523197265307549145762581365736657951300777540578045715205340972314015282754870450907693084496721161388991212389019195587174763159895573762385532652250065747841489253771984590660523128953802059266255280097908718817873846662752318247343738665667233290026243003735916486552194114690364970436244485540233025047465604076275908159985167267186624678453566599220828718526232504078749758976656104365655097641550651758493344340245794875754939266073901837264480890048377926441951829073899284143898479836188603785584115014931220737367681345247849129096229048855897755678362415680581690632724928946618910785607503847484839980223346203984163676122239152445766172023265858923381382697710219524283796280208205947957112219186543644191929880501243681312747218570961531164625497645301128390117950461191233026605003370872361109031813395666248267883803445952098714743664594278347544433054968439797226077416518357584670057055462686337862314009358366459667166340346133159098434489712929370174872020957699075250998519529011131988619884863784748715896114725314931611540695142188131408862799274092227476738297169120485905435876895222215170968835387315362752795280213958221405212259356047303471403663824235903754930014493463357199528899036893935564057060232831079015603109764751062199291732961954153302062516921113952861808040982827699898114633421068196140508255151961196706329511916087762175306108128067663175691016069562237724897819823415312092475550127791882710836299184020769722901969108489588509818251684685922604949911303967246067614293613033568345813970743589329974987339342157833633107046774765047088694085001613050649783405363781941231568048976405116865915220323089062386267553529904151754020295784070711354732020663113836319224026140385224567524579113324759566339785074068258316697928277754948536811806998480932386427718134167867494190437943114226242820779934096639869788214041821300595638453556216364638798911604965489950805005108853977275855541565862653234788566915061057805444716833434434412997853522096916504241416494567167333416549061977752601728472941567431544472828138350733349026531638229068259877664218525638118799508410593487088204577894664893059725093744899820649816929460701301827317875166070219324010518784939210521012857236654558285835077018705139430869289045578815101174675125342573487489136534473480685432465072411636072216435811225072731163927107232108027825617632555904517116098801036052223724047319775186216357436904564875777670989690594068171009132353136582661561289495314576980641889807596331366545304315250137001940163803921736790099409081249153785981106552480529808504644494210705320707306414451219410619206735834367284512481601705595564157794383056213483864429199678828617851210900415288961351511097551793011839684745907639630366655407253234170816478282951574764345846673947599280614038342241996095819187514961872260971862574221568708811589262474323276009302073780284271715842638938485548294724917235097499884939019966203638786310095047769818344645008832033689249658097441583902769126039042971579058751772588037185743410364441619883753831143486087871713342955555171110582847709325923207013008033296036082757148312440419222242080976696986958265091696888989405450556821738096638775763152112725446349437664483663641787432982310815929331143099030637258653044134939699871849076089699547090033337172570966994282139996388440007411844263147559558604738809223761017535443564948113492859451395505199895852008494281463060483703448000552667571572009437222869569191005230846195605467563978335646605010175940769708981389455448374435665466740725012811052095498696487806593252690328121933855775081927761591463314303077589924416669581085661516177560020038459092434915756293687567882892839182612166424774917651856443159440496550954492000420700765418986279443047244985623070462616781921477184832466919969471013531434703316853112885408915380004004976589080227499511844129667753108789851550907705932927311024004709210724270809205785620193131328710664693772268583810384254801346244034566828922662882039547504375678594040369814440467609703921185289025152564446040276728787979238405471194060318996953314890647890225339472939557689439300360137765250430106502979872079057058937093592192132937360705407348969359647137944534175882988466384652537556679406105889355530635108460718998875514824984547197394985538281833733475773792205994981687145941554808253319744435539224921132611870066384743771509558417214864655624931740700982745795287790460644682337506897917221878843752905894337115267523480582255414742000620445491672692489821496527128091037470816550088543587953648847502539115022120253231787286226652936777485679175433339563725250750172613270414538504306110126620366423984527804068382862320926152063445461331821212812903614054337724712922371033576780732935053349677945300523126878336243811845252957703667278668619076246490617527723920226391453006598111026904084066924892237043649039444250314018328706025842538867273672120502794745981839120700902524951653037288578957597963611697688910855241557621633671266261828574756700309512545615537882917382528772695016338101752563731582993696672675037583007323301210843399344612225315222158347803370262597947449472383581349708565054124975536288622906250560712842771668897242617297751374351900594206238401893142240511021954424364911796311073574618780036406165712942711980342633057273271087055845474062656103714270887829260903972528958805145652269998957637228167954673269992610183689696783367363122120351547749315230967416043411734778745233090959780769489537973465947607969865428785921737322101191641135649739043176804950920568720515162849613565714799785678479743959783232784658022347265622492558830553537164450331581675010049754706123817319331037484036135193045498999152981758453368829943530662074343524224793017676334638160144451969909290877233210601511175724874794191612669788296588806724456196287215714012234645701933730445385805956920149570550408572762223121670845099695576034658814985620663016141869996204410395249558500577259478617380208506974642395690830534472931876532499206336469623258807180928982296518245577225001997728699330218794024962618026024027184077899107182805787319954157133029254059191624274185534619135434661258530806200690410805596349348652773434607086949387990949086080414417109500341329823597315037024104016437442030258269526636810944278787455534947723875303015170216958906173415664038165763029469981450681595051328000188121940454714323935992675416726858530884392449781728214414036155781580123674140504961868296778868575957010816484583375572727259252809050455240956531794838344606904873056606837346131060464637076385121146105782799335107510554262075315748165637033916151351488777201606217999166298745858484401168029563530701593610820238381081067508946402992132188315267039263319618501743890706664844509541752734144728420936786093248650289296974953156386402221995520463443551318117988694141221002666140271477336266503648596486145643807759229606743935540627883016588036338394566254651023807657881840221392901518307285997853427362788386575992627413485367827463664202606457079312260134222528880534376310907002502287144195085574178257651134908086888529249345823363600252248081639240681193984655353488535911563975677870958205031423931576237866192004275918810055158790061447160221502338828892958258603144462650915025021808730257945293120729315764272459955093598679444415069309600156765071366586439565165212749373328705647974243730223372663189637922100386684728355883435962495723963430617996658756960722761737456883354480626021436506230308682717030990404273474333226992080125757235999145683971950960711295829084546153726990865870057747630402483251469376482254558606382752436597676285612300286668033721133133101866848185121099418690648585236760121516015490286223736416728429313666875665223538783614241977890338624216233445951950548033236751509572343565716804639343101242532830918217866109526419766222324839230697212168610358063171379935880962484154034264120069972800018202296657573487300582623017418300059498852003071978843536191092391188197243634349184558846907065904691597485307763718236759196591429165754255321591283342374641670358449132662040035733676654009909839500597470140445604252175743025878500588838490297478381776250358731440151568240005023197581777831986574856059151531103661351785983695524298365165005753923543630690595592053882425518005285932263313034978156254329997439224949527026811208597066162906726719098395543951399303664080741800432174351570564662190566516181473924493595803366764148627810154400802558242219971167580514806239927698790787165961318790002739518965844926149763013238507816962179822317503211617201020737441711833964031977973612939956908573164329347990396213543010201815477730345525461606793102600458606782281093665887668488103263879091824650213284259260850586025121601694953064885970105450987376645345045607824610547512153891081964503561585874267240025758330892806523636028978578186342492280587222130254823103101762587153981073398736668827774291001970613123608675093914459072733929217467331046529242980165448439088344024012416262497972866627997719017307421886084041348817822248875561664139429120146685051359293305806988165326341362913012475172333572821411421984640275755230538156414782916785321431815494954946859499574649628712800314184919960083422788545424428122762646002901912321528202694388212788060104881829743478978542345268885572658005759717054025788939794247750015200352345378015479176862927533193879834822316141818160958744675790177805856858769749151661814370282618905303269251102114278639836537997856859611774471205069448764961747039499201092070239543641358765210483369559032299588621937930183863317471932274730862388681782943761943463656762196035210536681624766881773856754281072815821710510131952479985918482883205610339700079787045661677685269313384384107478771372966687059385029881323612341300855692001128151345670999794717976654181135256125775165039160007518631692159451222325828620021304589092169301722868397618068206679546179207265113916164338123678983491026462391571550731942973526652830505391666290953114229818123350527546410256565589565037231261510910220239620087021665780982956057928591451117219524525486476010499876425818098697356630695378516367481438307978149243243013090621538178852343861599053993519671672235293771977014774762953431581163799344978220374908194495023338113471026844666646292373492602839213193700368584202770341078430105099763704239830879130009370558942474590483999495799475329330552836384098185238655217065485480682731594926119873842734821910361333454828179396163913623887856145147790819925471381772102885635728891685727433665489021969663269175574841669809208344377561442689248537002455433412231875738047405691501315640968686329289977648292617175804532214336374452100818212220505753244519418389959451084411553609989942320375278922735123439233801472520020403012752066523653931059151616950102940596706229370242853848830121898230171000571260499883191021201304827203724895963403469336185682638790218465014916883514255064270002369268656384726160552759422204100867780449278289634816801207380242910975258941808708124638419863893885541342758805759167820810792299435083817938005565534367925226936461000583219241599613110493659379759987563517750462312109664107161641722853899165141938351702149836514956591089637892737967422498620103579248541841252199746351942246118608115639913707409544765887308437459233629473006484030672096614948400358854330396118865039957730409146676817723101059203455341130308942567638159074946144378284567046587767979038513814744803286729050962823182206140824937848034908035066194574992747292924257894909938920982214106426629190919266976996268060611168109399016070133007835588445578140612036974478388280663398334175865436109357629162831763408445537551357749590396597081070920028209427176707798974161045233683791556389374106072037583408313805963610275088350424168183859207391814001788542554064370990542238145967863293076315810783797791758827038827107326551945111865985692181642826628822399832281766120740778980675893238282662218732560296195054023816246567144903832054702392703032514367733526487553632129127372792684469811152932579557488133101904741496704883351260584821640105524850696073470169232522619352280178665095438346140589150677798900887799290910505855866235129005765074038283173791087648655792586722937300248647359864338628563888318718769786249459209039229183141617812900952860173367082725921203714700362743456830767232056564247661789422835387022848000564415665566472707356935548832249939716231951362314949320466101158787882287560371193537153066990941279883840641389000435101933305725775846811770588514675267192978602192103952654194842183007365110776177286369581863436894604808767627249889517799818799346463645983656287547926207171749535808046177021434002890983005905550124275320538923681450653917668137154816131977456030586003228868882912216185104498388223838452259957382341382106888719654996232679984680770717633929767263452696535167151148969585757099176772543706961366868156931852998334260300115702538627761842908318148635340301377751585412924873289552016226006289164803155390498924844542369703555517007587603796654475961716995806439729645315958495601331637966124402837340401855264238340781316068900175996746325254518283410211969963690603635663630162974667051294804484419172134113037547558827900152474058927184258740497266237948823787636332771418758310275551889039014708199965302891447900827302121697888734208182343195948833003472993346651296755406393451659689275520863089512958593254066409741777514685048136003340578482604479926721442288031078463118426243842038863997319972318687951920381216444667356529183245373450216343933689585035257331400061621651366238000355625156587055008923635850561107491754128036560969203710282354505832384254994474638694455359444500997274608412619517534216619412531452433084582227030455249996775568933699733311107100338151952890102852707229625657126280321445868089940737689317573426655857428365495075137069630041797920441893093637888678794723119153798575022115819725767312790041716035596323943432036723073574819841329836993273224899784422608097524614272569046832164086926853617297780837311651649794798313439700737751710585974301062192210808755471235942323145995711398455647804572543353412120202755545527742240069482320962851860025062263736136522395374299599794718219206866806354194278891160882527517269598611662038345338664060473258620511268076224239384415232073589743562280766549973989586059865194666940899972055767665310327599079764158256559803299479806700973121003235430984144793681018891475130890772015258170082503575046031217462527678425952893127102380813207201123418149118983614972158122959416152554933520260498853209993573078420513740073015007757667822742235250480288111103799975270676614137447413501344023035992938287197004165339617985806903740604916906301718000703985021790767739796999159828545399993765840841605101305996593326592986932076135276350769041650962348844941790255857296068258322967709572229568005914139496052117936396494092627711881653260669055485898397061504413404633082779524104504045670664569062708031171961794894841683020795312980915099181475606644515498944806266818544419470029880637573908821430045881441954322220589521395669913131243078101096227562900045374081183438917128082396923909524516819608191240590960297024060028838616710033569566403224459939714696216982100434463257446743165151636686393404538751620983633480839138025185787066798896890366076447425142458524722669435712618829755314800171900203611428772494981206261608261080290552288116795953615383839318772394511746147702482572763035897960655241267697952449765377161610239816296855894249171024201822882900328991245173710686321543577314615244528615902225376255391896612332979719584219691698358993920704980667256484923386923175341413160066955235550492234459204769547563064328626942668303803688912225321253152802822337855191267908535131749826359354832721537729298813828678136715770080941684749914588065640047029717394323111967054529908225164265186912301939113256591611547010108309500955471081781261827723263619683677123972785862574412871730009557571842261112495072511748818177432492557659241209059653953613257161639574499128087347369531324278214800828961828676188677760012065193756177791489014479971207598850791710285870550728654667689856582110531004019885096089348097234413593533314660040025428481793096897270862352346677326501037100902853918869865634442844770677303254385767855475339380846279934778110851643814247362787515599591997442459540989901606288127424757587678506531463080590988377808284575109054860760360741154100710925208216330760094110733841259176931613009771176482471459794011155051698518090660373824784985453294774666674999436560750976209706378411040594640816453125932472147749331162821053543078787236477088113885865618281570357839538132801245863287702924794347744441711590006046533927192376264456786746353231091105196621340722069849761359056385219997649725168722310201332494799217093020732529343757098974284508347636639707472370475800833487023147313860763081227674646488498380872683198266844709418567097100633242285593944121084480348910034754120735989240617710552541080644631689062222977668469173749415798535739153545720656468135635857381429280009478195614035290795618684881865561450181990116538320192015214589772406395168656692173756902250959174857720239491763071237331268592034361663050770262001553004707718639781978526804682146671425600589621825886518220008348177018581834555071922634030256345981246191920447140092433139658033224366395438225122908540413466298529058177280069943360861207108636696882234187369698832702004119116328640826794404814497471523094597880078352330356047219140976979634763659745689436247782068271856257608732433135549893627753031111130118374200412402563095897075024578469883627022251526146805298504008485810513229348452191157157670676460744295670951493812235808601540941538392307396253273075338859078935635449691104023398549847635054799941237476377933954084256525352687095593226262655030583778906533740375020030145263406833232953350299959616513100459118565905160311512151814213944437128497249357557439304131372785051768264936062185666548143615919866728111291045632649425773257081208995562537993841272393954749260172694452652552036846293835669166627506630562813705774037719684802252062627223155268427720646232305286745199575340890328033321546976884644086308737019594259916003630697283672478734559479660899503818032825071608871647136007742454209451104807448633015443590426816052691575569169852931824257839172401348195162686326754548058517266109707260357691295966565732030974374137184616345942766695935656747278045998330793957119382665505297671987995898571850553449792178479405745981052986421382337549508976927113163615132647419507817651985995382688733300629731762771780242816904650364678805456998728975132575346457398246443527441770195451198186562549096688852161532061016835316994365305889023982966860006258987329472223363647435658707362324693738441525400521851593027585848937144281827744985636356097176945537765355716224778137292878185472155338045775531539444135375347423431602692705135901284343933231784781561142440351400446926998028859485151328104260569288919826790340070588624640714882561104728287745480062716994386442147981902426680685617561213109447662373885904978685645654399720664755744340756044396193646800569426436448087940759271151388600055961199056352680606362838821941915362211769836834232798921040412073924930147353010186752066236722428099433213535238221200649146702943317826072730680995285604201526553435400122893210854006344426843242862034339469108231335249290328172937554712272228800071118745214971175832827850284273117193054058755155555887528896728833559320291896305482415918075131892425081084756134796935542564007599969255465563177745234119753437682811897964589359936558435119884883032065835439851125084913253845063697444969195178867136899997074994151382033955469824052246515479039428263122547087394123510045512870917878028273959139165464804436980915254192072860823307106104779484604713177727478693949361277905559224772570832520055260045331838766227557594975736167273825837958391575219008061728433836494658550707699903091048117698819575941686824480910487917498501618573670984324328127719369175342503116405612037752312779232653221772998553708817629643660921544151341950384629232365601467861872634053894046227647903309093284042155800511582221737906257019246396758121219337325304429148900613569632362156718475118035508060332109624665070139495124155508054179256453203678409550426751439731523524182270415626390150723365874521188002640375117015001349954140329480380001347396376882754281630455272864668134134875564348536905943576118414897958779920183461439046198459750468560396267019863928039402920407897063704448427976944393748088453207139995586790382068599285353789821015838972237458687775602806951531189568493344726677463896213529080624591357659817598342895613577729862774665953766766250394584825216208886425085322580917481774336152705805206056027452375616823350243879059957718488369620712464175228952073149802436274992489670855824646260818540064959777961278158212945571731461141293661359429487138927119031642823946593636549068950906157916687802026180834189942715106172426997594200152134288309562359215052787469863656776320973894462660420995171931768744680576196206412125840760322763459567519945087094710064003558754226701825758614480762001635615577639771227016728594012608487639186179042139610639707849554204251011478399016108000162300020512843527577957926943584643433578208035374990020678107415640961281047142098728053332797098689063469032329602877063543409220685532732294336420207219711662577870487616853059382262872974198951022085510603629665389088974598363186787716413730953426507253800985595867238583263470132379286153979278408541514670383946324094422197268683692372777738253751824659943442381492671232915134265913087147359982136754337479810517001382988222510350529993094746147618405299040591140854626031679155734023533353794721142154538921142607522261097649514604840457181858946442440404065034073128774552568292402189575098570272797910047494726639611555790987939184911607543718606740570085299362894158908308432833956482839834218845674175151934314323043246514099934549524799482840661534250174123269108319482387745540783850988096280449595691739225671246352646016417905588634011925777408586460640528373567512329556975267455651307615565928966465209429145861780143229961991013358839609239331444979879726672598106172016479781077981615123133169119249817561345816262961504113400486775765429920754789655082325572078042194308687414998336407813052337488352220078374607363745485394708911324079872875068802745105845243590289705940220319856415541380929796197947418848288802039433390114910852095136805602500028686337849917648020932900712491551599318272057237069395684272848917470659269762346194644711643570026724356534412767064190277422730694838741421296906479307229640990904481467520650672233788305107016872645695008717437355982760356665920590102350574450046268776578598394308094109307292108838577999387267413144457516152590853268841027963340011061729800206297610044514117761790131400024281568472468127655454970091598946426984343229715423208572712258303724559119519537197823629493324755874303657040809179947719443058756996603510352801991974116989960104650058178848877220338048715764738261191499550837520291803725310936443165323099395371008639141016441952517332507558697425064192890205388840411152929516531995118843177584425267955726888640862053628153763974000492742644155317037788699149308267424624876665945099951257198450878375655724558092848180600627185422361125791931804628128311221882688447786506344371255214592644555427550155686266882277269580489702368207584948839376470492043914948772808706277275046845207234037631726268060151620979787758093836103821393171931512843239791329260701949708305862601320563179364466542485500733671644270085866460966798876457161660578547931017797890586198288234664880733689328840790583356851967949313596512624419729140522300562417827872546775979885820411647404195699968298247510813059415761518547975266393155219806180533993850211480813947072186059601581037860130003521579592272199327727634126308812707166289510879384566762918930625501258774305286959969516388930715923985282087152248293291142837430331027363343072266609295910934231731714228161225880129363051002499276238736989519009160981196908135907901938560928927401970653479481145864031259917566258040336193735915642052701947736806507887636584706434184425163995193638208792789864868188877287168736171133109589691694391643958820281795491031506942820749292580949305519972821399780548679257735275677347358058719321334649617471266287211752858041567153868817281040858687354499252297841024030402252667721240010782172432215271722098282592407125999282694544095891680297413538851260140661345969498408632031209296527603058212472523286994606496509080117197858538442720013150883202537855896421370430455796509741463876650074847328564092764141935429154988369620895972783336804837334938143580456994033304301138743686291086449887275554936667003344323576945883230630477223380083153753432159458034354252895038930367422273103165163216512200872251746395040991648959361894151859377058780182230404587431026341219030566740762190593908944935942639470028801575069906227513209684859198849264785257786226911090069791820837519496886390996833769258718132787361373387232793290154507318560632818268713814260876266027077385349107079243786484560464305341004287043539553567511406907110748311948981853135089437868739689686589093272693758283341892522823595855099377737107529617219904759484152079014356549825302968853732386298858043025272936805136881444944263178687472420004427904565192672107623309027113197903594618388305986638468996930534850990139373657126750848795885718118246107247288758609364419374215725339586047801067717509380416151434683420694299308217569893411966449419250381124561304652511164327932714703875562251905704580598896519392702240612324830758452204251073511908521680210027883932969511497913846062575759426977472711266175324294392369594050505931637852942378857372777777356626604239284746931043385828455376753479436505273872130400279632373273400060795968803928079414173763616738637795428910353550126165630213335512525910547016003334174266486828596625042517986694206886749481282780436705620521668021307906018148777508336660224126468555026651578145053979083090804270817276587192827939386546704400099760201441711586116878130365943489715724726953075630600821345480715073420544244181465980479227855283034947206955974174891351987668566115811395253320801917815573926584172818143131780973427799253474849028263454401966620355301926055651433771288256651641729652224636309788583049019149880038766331069439914978173537404804121631396614295473670881146042910408464532206055120111675574703559310962409525870738972370531661018197829734659547660375514333567819100157845007610765960618203001311025632181987261031309457958950179688320365820340605323037117236310510919415151251974862501884734582642315047757149700809311439206735983767829269713060300047897769524738728613803746076561828348139437268076017403426862218614799795211784492381015342341353982337564702116795506680489354688795862723765175223820304935052140124720961492481612292002317740764740661805487648096840701416219845589152464313056449622634128868203249030369715886781041674874210770621914903265952180319681470906473965218157534307860732354461576434230011241694838090398895096782182465165953343705419046532473315748941472782096379426286131515132664469937158662592575564201531814502612850024445654506690080199936436575808102513568989224969410214744644809804916418540594388413764301889250558199513239395157360175036136012548493492625851436163413404149192706088734757495455063794667354970957387546441676043949692130377211945957214313901116741625369117844363900156496203584312303563072021749380660154072318366253471032368857102609065038568031903267881697558481902879735596553560957084029801823325691450546122964385033566584945390527534679600509623681623599147155175941007445842907563304991077409001750242375801084320016784047631363251042566733051464083134583662356132860791522110030809454937559730230676552547614108349720372031086704551881789594685591772379492494071752559012000978686298974196461333435663941079225832969015944122458891835353755852792050579214646876858832746277570026118233956479367705726642476159629925166194102343108420122755755088990060783522142971065592679986331749681802612961944637392606716859488749500896240582637861791363072772283382893259229914807177210561241126657907082416701485363323559122032692854929152567669365747294238497964994826472916626766711499765864724211599072754916941681829931641482903135506406962880232432888860447850413629893709986724362221076380831796310812369103425885135513418772716416703535473259884042110086571689560113920368198737894005680604807858778791738721817564993434263437375859153202642341582398827150300699542604347690499994397897367259455506366349841813219170918323157536351146470397100465444057557090843991325459867433786962149030644207402785411923213408761036278274607597712642693494978187133168135267525311664833919478170796299363278860828768793786730700234342557006335120127277904186124010625739572081899948296316095790907994113564002931378957149818871480422886928266798705331633163617874603330615675809568383035564619231464705548832475319422762843249944416020035635151443810994919328806652191861374052713098340977284719181141611335907566741297655375726128576381118583935142744032006258762039067828897322395463188841406648385410054828994578729177726795673234303949863601605107046740953455676085075042321997597720884252480586495991463313188430325822466340895103363521722463387682875559752417968519775984171840718681316179411357533299399200743189735271795308703988791927640631239234084032907475193961602798477361839647671035165146642407366229903014877624988787805530551720339285278347835104562744366087455951601615583046822919518839517563611824831005762065392945142884980143538515457554376378066827981348777583013976992419565913530360121616687408193012600179749631644655379613542258794517458982216758355087471802589338925828259341449584656492282793747356264472898334117489244184389080098782466895046064973816081898699262797817614498835772376345327935363866174247851153856482717189453583933315553887123762976047539030942209016256462771524827570699555905220507787518547966845354795506854791738401514767600321930836436582119790605071965537369349139275623176144737374188914680174199346310109200250816290257016300245767470476065414785639429207415868862816464053853626291578561654986346715176164097877803808978366454976549896518714232649821261411218377143925057640594459983424650309577889991662442734960734910560343224268756267141139438383662418293005838652535022281811302267417937586529626138335701210962892233433566313697582326507597392470499469154514425005274421500649201261446577528889794390169595996930754004491199489004240345684318182968545478307160012770369468138267613010561386576031745072004620293460003100697079216301423023353836772546098346234710445519321214809210075916833085705608029677958744059849465631083994955957712864366075444081982937539222223657177922932106864030861139350852066578064770842408047704873643561424140810192096557565335315132729076996265266268524990438763863061356006873173268653785967861821637328358461566274710698047879173037497926407689573142556356448935984608225552216989925791976838714424722758835556220548500453819667983959472397458404116582201045381204839945895736623775464397585356754947526200591268027567489003114897755898583667450711160570846882244897404093204644607329704649994832693335842276593903808813862331029734213484982976183425242546304016710110868687845574483298053050278892232100744110193188844941563744594679953989327654776185835845414824432895682313604809430389329831063198459952468271674355911284477090358627534774254668501330320733711025771353935894891457181332978505152445718344257817242425279079366402976755486608277737410540408477553422950871024597351696599393436222543342609283085351933621743339413552009883700340792166532792571220881976846577149947331869843540956913261768338499724200022048805966063769756413930433700607383209831079572095380813565030019325719369232057740832265336807744575669228839347486643830001203798117555300263255236577455802354162179081906153428938247361267141753420314276206041164721735736509023704712292777168386884846981861672064977307796468573615352382347609344007057415190235354808388908559617826574366707492566933854248576386307427297866089381601873078807027580388643771761859683447730094275525446281524066446435481040758810611840617222847868198578262240862269543646234623075100554766485712938592484658329704943985654027188860775540349039472204334372725971916144572293933530692501307106596166560007498886587334952907700981374882790568396042303442251425509944321202332449809258433577509678510944718851131856185262501013019362825367465398730926803148793482999366033980862012210971990584676154341342892725226949031207955928713599294146382454470546657851835514760031107487916124365215262634637365512658805515959896590855070018121304790788188505459095494629127320320496578187883861823807756739091526643885109472530460972436916005360081937755357246342223438962982411588559777430360395053069869634205922521853847685558878574310892499739348328374208471489138448588049264393847223024376786395901046997905121864197712363028399425286727450135758538400940125159451623847661225268512158237393408888899270240162741842004747225821250082172996170658309502589767422725591030529242846542717634077461725754849047651822138697330619488741732862466762770484992822764430037562300984981362681962210837177286471311947122540358222756914992059981339945106984251689576991524849683230048248222429284370947784743645013553771297880088117250998360956100230315682731278707850809837923677251282192643910254196514126387910667478630269373065009332158144603936964193351422589828379592296352088486575636871218493430211533576178156224898046891613641504158993907156013411924578221400368023143804620120853100834996982852223899991874510496486930338286615336784856640479717461651518421622507635680556500763534339287147957581558072744031339216004730068551724515597449345118294833513343313098007503641011493350229571946457568702066924238616361039303504226907854264465833990100418704904917755448360367910833920594083022150577821159929094659353749119057541336908714521170393260262669661988611845322824204222296583182439906612666767517264488936762896699491434413208697956919332960021862103059535687487865531469516237427227395143343685626024154766772859425471834283509516563847115278856112232354902548772777309501681454318263651200717024069599407736365948342939097704982825357723093679607294512947281364614470326821251152543117205650311619835428987640925736644780352877776151008496317600675040879957959818011964432863537662452248368771927508785641570991026126613621661305972482538707393133106641002636725046635617399763155581427525093470842700404800535236946056996180893070210371714794758521352212718608115522403447558919198330613745058074792981428279178194729425865467360687128183462043922103645804268017141949222332875823094255916098521593414565383000316252844024040995938544032581868083762711798701249887870856271466109334669552779970216341227219873200424307161709750923287643012476032156694280765100541314881547011724831387290713225545146090872914198875464736386004141363951076563207568935559954335575659788933838522193262395211380984513603847794707150046535036159236487963943107050292321660638373427154960250433974008500147055692675548650162259694010418008898525024287432329535233311221731695075619182820464715181908735216374931151278979718483348854520943705845688663823581660822418233437053830825196335743793758551738010883805099307758521049291493509855057499584984876054920791208615621147565606485014876881691094254880136210818389973990826265115944406106838964745649924270140426789482043069819835203395444843631451396752148153730568110126003661727130700822369183568816617066386133238527652106644491149636123246424937940400094499663686327123016537855873420235166351616219124178493700365934903741203224873667659723300792102757332172352789665029531301926446283397167577298316707379370566906479807969274180281186380201349379269495129525022071662022337163902490501502787825438205624765430650114710653818139744355220012282199410189721956084133484980599431289322916599149294195566084137692356743052922623074047941845203935334089675337939292465958712149108916442030300249203039545594450390756107434027717016321937492151286510894371541637287721550687006685034210590682931594864198909012067093374049307092696721065943025500509894024027926704310121846560508378107772287608498003499568161173450086110167488835818609385259496646561110970846532228970292043784233580556565239719792241842738715505710948011574472813396019093582362952009597411254003861005547421744627538289462646281870691876894682115969156429084244153909873843156768733168951142146980377516986432521438449990377881323600303477854191190735529130789449089624710812887898981115175220726931895267272679972174307992421605586317694144709798719457756916878109963151326564140745822663204059784737200100705858352358850206698946691237353465783419216109150511513834779638512163171001000018724514620467092935299490123866223521263097597698023429428504192752452460569631676280079162264049138355420274884724085590492690523332722413621819192406555136975237342313174649056894408933412621991348046242204853682401032864802916918381928313995679085828901164792092096237553000960473874439048531765894083737539994259007315457589778603023846621458754494927469717543035085587844469640555980250281427889577427665319221046059655143497114553412515562533171620400214483819103990452768583702022361231930982637863108551954775277934826722203174840742438114952320580340017377992281388885248417577926583313802559588324830665880775965152999890778625430313869354064751980905815121619476744205675174439808662079856438563757821863637134954301640154455137954409787421232736301386189598735983875131538465277155873917388479366497130342318395426276304641621342182946771443870853281445995272867580527801091618703279184454003483116322161145446576769440686247614638866843865646323096273766558215175090545242931807415911491664275501160759697747634991908088185856443507322199635311349114425236446931741890619319336123896884548205737841646838919539116344302322341284429192030895698001177801493046025216069194322715098743474770776449335159284426339843112919914894344003224348430560062051607026362039711310522947989714207010240744824591204637342964591910581206196235937492149777722667885656142592284122379028443828361731350483605665354490513614187875017504847301660485554138154682708806914747359135001296266202576997443376086741775317421576779257018978692822584298604705052219937848778605092758942264229030067834029301903037213126646815466906521945303300604946730937764443654436316323892585307987123789740337540245225737179260399795305860693131667204072037472428136473507973181264293237215007617391290672494627233360272408568755679818530072550120121400379343131636293345064088034834955506790505344136504676936513527755701403074724141856405405955940215214874124339159001529325808943797933174286857168561187062816919308363846653101925005604633791130624649318667899898569088521003055873584134785786980315385393740047300647731713581478878411639059401962638882525313963420082216056056601913694673717870481987856908748798083179628563685535832623536008203064590832383320436713166142915994656357282355100148186758028958965725311862233905588282970343959772118068670692671385504604706274707091448086328466984398591511689356222856675266847373378987510652986693834821264029851230192291203356648914893897894925728600324440963884298235946610360295861607356806395949043690422879532227487146820882519026889600473219514245852459775914792557675179588984847434371290733485128832288087866500920605926449575814849561359475330131092871773919584934019279136142112768859601430630691425695323017967684441995347087588974123691381843003093417192117928082319649423368627355611715631963742983565923961933993132864055574149585096882635988951078215473704291860371449339828788826139321112584086818987591241827298817652525343394207001916735950910951703259037070592371703781275830074116868548488531774783406336111579025185721323966858679818984547937323738644746589121145023648437637773962467693775439397278004356068810282327487967061687695621337854330881324327775537264963525353444493485635304159998666150912666690047659306061005022050509397742907536368099786563716063676146246788422487286699020697541015786156911694941135434590050035071164283854510146565190596836260011746246079917378606661487129443074512272698278003397327928713624691191444922356595522196637791892426587680330463992758101270077191123423471609278055210674694274564289283582356964268471073279967971705872461230418700847845736369255846827258702660693102698631180739647665471189204546538259473227202449872944074078381713673307378029559958609285975053338635971271502891089330670786864018573710055046550672109653461625001990272181797132046835369508591126102847197024934329630698041074263544886486348253278757163372203187390031648536942552594911312262604492004560609793191663843778535431135730121477393114117243856110377254042499080473498935389759099597472772199179306604442091895979435334246654707550146772934628321244391037955400885601066458464406685030163152448977094893341904733324154586163795199372201488023851362078473099126488000761998964353063536439625919009363261161070707281549987484393834017361987070316651067522385544446775427025509462850812964095351562936050861143753318562088995752256352065121582531528525346268196231585776923125820574870270664429577314080627284858468006103319532042265662345845650441826659907340636272064827275389271930959043926013284188440572414461436887437387195025685986686730730587629125719203729877635611686936487040833664552670956277628747129153623044864832247676374270100847010751365002479441685807994762984291379820582527177795940786201516961116339766396135643034567430989400116477806876601524997745986684737603578468055507192349610611512576677482791540619206618341670050385472874332864546631428260947018508777043326038606362969957685365768050511347749780699965797360445105243172141710553548512021503068117223292345522979375528454246207807732503522784615701141748460605947081708212045339075534615363106014471726771222407008366269942320816054262326727613255033989318227168049038593246901134908405593731626835386754438025844630903673737232589468027098428358358767035126334027637396080322907481352321624955462561745277774081003255749240205890181932412247887774162411864764020131469077966666128054030733952833977430985664899528651490146093678366202091479939683020435310577671925493846895148658886783135214976805158781531550756823111314908821349786297344339670158312908064756795269624397975818093748131725521140317608024217821358009099353501661584404623296556457159549591214916735107890980536481112576768209587936526739829336739636341727281126564918845793430172385641314272648216824166530367238690799811344633704150324248204786538906307972552908648644971129404781229288882362682790108399696459257685663188316495498947073582535864592673900343644825675278122327834226857301680409500686609705039670331164553611913428832620309423628660498573193309222881603851980452601715251414426906984684253803766248478348288020983538307555907502570784284397831974355233886656909496799714966167051626636296844665228971183017378811031170927200578155791436129630155900647093246818777210997133822549806964888227977661175572139465897678855114873648445265072112360211749331037382721790810763487882392341825386610829497592954655994200218964214440431849995566385450301701742585965077620580749169990096446473160781901441950720821710957313963482539112748207864735149903090024465238883997670332326726053969534555943306159190423596061351193154017590565815725592847398985519403516810105062557802810905492900194268477669976392220912591201962729040202517977088070111079433917742980336124378146130063538493687230165718915111907387400646667186282591395572498532692066402437540815838429160655295888970514819502998441896356175097953043304669750098221696915448728843515847518175637837932919569325706598482683669773318326805452668045646024011843418959810258084961988047365866058165021158418883659062494120196649848524105128871114460265966601788620730114967895611427840010554735554946553187942562256119889011981042029436011908175746858877355137998152070830829441349602665849872705241926773408728536881373697543270249744088789957761593565928716295179074665299125788697342622969050027959193813348621647026844799515253627308884613887839399836494941954088260422392136692635676536230969042035733977681196733600525220627580329408790607856665633009051941612639002017560389867844639953097219679886760244223805250089819660319800974495193832576406313867250958121073449843734746792456096824454570311108001622720800083538787568546037119317562635128224688168399722020253170645336695461109104236927909258312789298119559095238313778887495375975106802916783965599294572197632631870484874818274579887333333931135359547357300581179350790484265330997356440542810884843106124733930046425546605506899657135602037126281608258330657548996368632151961625079420629068767546627169816294178346070173924641540279619025313699217413906350299677104465237355376310326891184660605848555916835701806841091869783017631704640781028031919484355688102882929848213337196750603206617002869519153757813338771472814275215998275567519433657816379305477120493550301557970984866769226450561274542429980047682351378226832019271733048111343807888564022941386276782376712336177485797260421865863765183909179175425592859897279068776025186857154704619887145753256188795631066424319790545124181292975812749175544657381804370792769304178341045586382964733159668928058677848424095716508672816429672329974585450617571990961300414574518482441492098550904306239038280428929095389644701668122464957468812074276069122270165703671234102131036693062050751549509010488134820341142345382795403097213711517516703079932752485031954425001521159996151419304997524904221444282694261902833758498836878843922746860683190059491217970714227712852466140154956103829575653689563917096139615272930458525185174188880020891500010673997246545169800048428523306732202028179633407029574273003193918499704277696334660323489115866613077962069427897625546204665078889743652427317257778408001256251409347095215286232256438560332357352262606424094504219406484363188446844110905488352940324588282808838572589611080062418163697640036552555935786526594325108672423557881608077779496508711815684204142875757635619802732234349798924745267477599457344089434114550345543489113312277571225780943994944006626659351068101374131088617692325168590297676835061394171396779535024629822309047226406249424526032299344689227865080274445172507757711320543759601273216577116828830270529103124775695504608276176728010312202827264102060254641915311645009184526058166403123759383602871903261193728852805746647262501412777164859089809970425679135186713447682970833223267076264182476409428981908424743096900689977411204234619954287800710018525325564331004437102737611350223747678751365901704203578781320910610787589793003437441013511285469263302016065175499779795120877958795361746042197112931816093626547064301355423415040873783933513730339151990337765493062523292888373060206111673734652185635857182926909138550807857637388414098111513611350471205810074993408324513556819535299266203696898001092650968347867866768041960270815671125462442430801688669233427056857310284963483374242997934198442696576118942763422399762230817413333054566006198001999200105397997977354187297748097458832329773311792420311592282167590421680933404415389461242641925300130728566642022425903237211483044792406737578466552820376745849396033563821039149298875505375057406181855091590474027091745160538374723261271165485992402327621357235718986809644406726557794279020285581605864111898089638351752442366233519818377843462693396308850854349022856433558965039283740574066295838416269941781308436646032341011058472975827828087482526116914678315326697499524245703984747596760295341710962430357125865525268820993008903455526756117305052076915169091290799142762962345679397159871432387949266714492754377803154442626893945884464479507196209104045780084911917507123435161824167885839255895327493761946539173011285850834593091279325967496548536285659270049926073540409693859859049764724555565758720219087082421001823487093163052849602972408577778607560491284155356169715779226049904938287974263114630595285377741260782499988956481766850745821071984346982483654347850393437248490865734101527374156650998977546774030145981216834047572724514654116419585836119659072570523362184634238583108574940578886612326842055911050167089066495918160312219936297042333212944095278671406614652123324408367094645248553422957154891883656866467312520149292579255997096843937987009103423188489459837020477072140906458399158545605098646490086035903300114721283000826590888508164352756340079055267376606986477332393220824418810166578841596043763406498456133380456662628092462723509050038353111309561449892583317226582287183756639121811470198978562417510485001429508146961918249968322268247717584477335507602123734731753498650844332005276745505776586787740167874022178672258149703626472571028657271719491483165099659661879541405466085055942110503795527559165060281858188238258518131062738931584171835943798805597428907495251929024569893398859005407642040638052083037795355642489963661648304040535071727675217218401248314641008974786891141483187462780925772998316707997931772882259182175422154230662493947439836799096018018566690494918383884338739710164997988378135596699671921446805987414214693780956679846456474661023895043626615205163320651765974022673393665179076703862084429729759786494122995392677586992337249764886201474078873601740419240318080810584378315691204566093558644261259439397252680815702655661564117227416912925306685972790703605754780454257475050480216788549282385852499440107681872377112749867809835989555301715035124250401752713835920863786229790735485205890456492692609772688338614682083655658813177813010744363841343383448538390015119662704329975481006460536945043778010958862879657229780664782971125299759484874265331433543684199563554490200369596418519554509615225760636285535664040955856486036822784653967177162878885704542645033655203832489558446130630480961791966754480039615258930034924855981961410717795399402619008868806684772228115908485239204586844745006228307840730867972119110304077029690920229126755102251143871519132495717573666631150480840507504145546285729911554163565021234708513629614582337157387985159386007889626068789584796395678833268751737823061970655714417925930546111136275581229649687855021190806934276780318428651746554213176225791630580082012328571161442110594629415507265338888127588920327626589484334722178517813246727855630333080193498079415710501821940996284540258456458070966042123060303804124526199076218670376585146084246437401678938537594107896524015407699261637737252627616945044180088441191648327820073456696825277764085659067765899295185357216563469053284808176592079237707987482431828303593707170667049091434276647596819253848385940465895158688741700255748215890646760913023197615807541271867674712229152145941555245160795114730401671998270293063299573942511405994484973337441520512295139649349630966236173802376595915025312528586831137946693090818712255611701984512749862759569338522069532618522071131373981373419427836883225524872898041051954571068745189703343716278939311454371999342588819997712278931809831776548935141159582834545843077566132164396075896630179249428771587199584258539841184464697269402239349553503651839702552485698204976408290016640118765241999963450557053080420953072401545146111470787178571339005220658678775086238684447746033803782340873412106739085707095402043238841330010802589640285168240254143363612515481597367890318936825985433617212641749788686276377070736291181715806834391827328736005728630783658961919658411882922474927194971317249791587451922557317191184135049783219055306617749598955594697728467303268332907404366523265862992625918531920193361301243292608305839585497584066545632671548077830784542662243982167826635499281452062848780620765115225202780051145150567163332059946149375043756598093234328125699847465238357988443907978007475130156456876125151111636552712536056108500697901225439033072136820539742201890033986940083032213156922796889704979748145997217967388431077812518291611268768441406184158467856058162660459822485814247171908726665505894999738156193894046319759159087457055560896425921990119234339106167849879459391060173828393386440692588961294323875582425561446213331126293587168764043413457847863407905533341750498035562598368460736883764459766582718242831438325491567164623834972717198769723498828550779020524508613437862572894649285633639687104759139225771643521055743448896255464219283650341867745234556046071954972376942311524222105733466533024263995469822361502410604382339415644596743551075794783688163019569599597817973665937951838781671615920752298579766409051456601113414165944306657468870854548311173075883182399405362386493298913900827226966277191900698513176546747460549706485748855258896418499861543859881349702935374579563981086768188354607115670355695822290639675676449528317757640046197694035557150580126515978574033595665799862978772587072348590624283230279275782060343046390762862261208958439908419562200045087736040737095533487329798679756437198710408238534966171464547899533511478954844456125729330721441222565235345695080298939688917050856076284877099772405703832108008633701517477062637274565306181347767894644962846237919771207352132656689482221216159418973714094411156426627922206348138387265385054262167150141461535055614808512472447713975177058353844433714674562256703545102174875471111148815468565079155201707549099854659238212383718974687026381318990089633782892061451981714045832918069813985039727708381397452902035516737245275219145086565454681023576124017019687564220489867199362685442431473008226786265329653026750516112632955654490780894963187461609211301025668558616676933419546016762656180150397908307336073546640932371489845401437469574798591544512831277172104858091319031315015673897805848040513693996930495736144572452702404019377157521789727905291057066163435738306958938672931520924076237975996998940645914524564612009412856661880427097931160489097215165553988945116939025547631344911993354087019966392581784162417232156957552890267444014854044854015897600318186542197092608235720081198637317270094962615056564129148344781010429907834632872126475317350555848113662246795728539113821765646510274503373970582506448883764177713638302895093885007127682493609532481716962871002256681981048305525406561865569253645371173873167854864176472058748728712665136210693183840201525094455196342958901088086603639360739337473634395058751212773024843965367580851401229196772325630579752793283332697050275987476171952262539995451581783982165277066291761672522000807981293832904381539273618719435880259052152567862778821521717062505534468988835052441017580538321773494840878465761830303481080860709036749054311161567597592897278141159332048285755385619322888085104136895776399784101109603469755392357398011595899456098285610074601868389650354933362196919295072902625662245070103245677913344619614045865714386461635010523008896741495516428357847420114074020780450281582449405277119935108275919601088071786328537396975681639319207068339734624523992123010789852529018676403118307736299303282834852450069116074099267980720300219460013173199421468690906821610789192963236075227524483627700150399320381844726544982722220064261917219536646327908424180679505541673958870361042982803602260269618992375600714333615560563177230178967409829039514590129164808438816770539147512556092002673226785925482319362321040198882895323939773942595606985101296651495425937656519432787283815387569280366836731314576767045653882932104992335561330797543515345175420402517663862436875574378477857723956557475213206519887047238678261208642900072193505608353794983649675162427223243689353816705004846065104595582301059502518210445408090706269446920446232547380563922551724775639415041293376424447831345623317918275719939078572201936049012475045720747921546265353322082074810863238430674945498915942497816496120690018893138641992168061309865800276846905933609414590996308927630722686085204597041980044495077794067373877553331565557354456287026380709933262396597169545200712699072489473617891222153943942882516885118015413283811533587416693170871398717432819211030031264349347028731991821363845225147995386025186900882627011184084160512778692362537670233859222396873468439270537637057732782252290531956426790370021521448803450904651337547432126016334542790904648956935776274362370508248595308545443170423549489600808782942189267896682632969699238604310161640011788430006420155391622082220941834266050970547449583441646229753706320243467116252216813258328771057428530496689573908243898576474007395045546140682863381229600695599799727194535327072747532419581768366558794048647538550109542313684621324130306140289129927805498020914872044698349104357926473282141007464908750391084288652391539059792305750850845225853654183516721701993177181033243842019872024718786298382048866664381786129247465672568606152794492067436410370355121022476782705929454011664980923070146595476038640292106469903145718732801508028389834088308479568877819345115896383538030011185802858761524625148410596838288158076494813204348843379706750839875101097599656583878578086618653690425195799312927703225379181012385201774708863475616110991417762364282501592679467021604896302938152401120867915759856875596287897975869689654237598428728537417037988409595054655109552721345077779209894189642555676074828375448758428401760239232030986038205583049227058768015718638264986266315864385808633462423919862326833955281518713933680465230958916445079785711572938720395252336564935711087335630332197891257243982896071632658573487709923009585179011890974887206744354346675938616044536110478780869336926997963892682149665882593182152545910014246998625501738693900063799900404040459550638302796756809046914440305749795488152814197331081066491337119571483265788831624199521025365459348795025055516179568830030338906944962841717562853238469051046653207507178956379267651749195260372711405073117573445890613425893628576212699721287818582647076065810922474485040790343509549351866796326578407533735466146368022101603988325080473932449062535755577008654407673886992399151620279536897479745093742298182518443156133774774310969965804791155267557813176174771530299932284423992739858087846843250621472829336797387780490264126449687392424917100390892861283105703213340193640537275007624296034480943206322174759158339083980850855902143204658713606850279823772545589209371887530538978109333397508291860238997611562836120510567798838904465010271724128685709801648938124378589491910122725475298467522385161333876540087494216975300315382041400933199748728285175544977974053256590406806511061086154020356291689595730848931173515728136931844060509930720978943070133101072968781936055653677645873307358730728973936485747226837109082063272066155753824698065306897528148425483081794829285142512051593679877242744546542626467806485583891066215139077221523647069477814777141453423475556460928603590565121436742287205091063778187882121701742761607133760430789317194939720221600350075061741328478080115111983637380793086324522368582762762927061426857589776184013285506430882593472559904877251508063586105008735185551146920379721801588890515739339917912895644872321737963278799804296589114218553555988166126155961033337007676705382916240414875191823435026389894571301493905667913979814074915616892704021263024343421968690957081443166569882510308119624287034515209638146495899640717160673780981783105337432825224900880549082276830231175913458718913964644127130256615336593826728052455407864928165829953250365015339873730175652752871638351157915292957295650749438269458433026188999480905615148422479976687801089797145094667894162193651317019288174918678512364350164501357324074870389630722007470045480746895604015188053285564329996635649576857351228072491392604722117456637666271769645079099776489545816720692121700318859275131929666571061234738544187077099470277172859548622064240531741390652178182050963826465518528767996641940410635127149465843325198216061618674935296761506253553310802595321609644111834572992989544631450965855410663279173493375377620290189880415487221812061889095418001751199262257744234692097443501190265186665385573113133886203937153855574906679362067143219861091083727814957626068967356762280147745792278252949010762929534902342160721436905628812317474920938525180750322158997580597714119764664642652493990181068079956495172831525517205690536648860409103288352707340060503730342513848100033540976880553296816307736935277520906072594054379609367307520511801538453137570520096362343430464984870006034368310727689814660579353692883895956700160378340869071543953047312511461188453121995700528138231923013950740254457699063007597708234023247846694247962351191530490273686062073131592466789365183753205851149291192101208981326080709029373638866910858475903883052612387994528569083913762397109045497749528476572799228458024255136438963583909987772426080203602247208383907384185658737530723752123706095883090165687198730738080124327714585168847052786524236608370223206081456168273440646432277120640753573833254284449447795585894299953776416461930120530296462944233498592542465096374651557872567497574411959082093256968978924580687244953023651766916984286860068716665905488447339788119823662751796500234452237120986844165715493782702363517440190193712529689638817976118761483093239794820727927521512213665022610796003569618748392914784255192524749864482117824525551997977645847880467936650290349709762799478073901914336377390630624508774887720589993630738422893725742577146788311538030590332952426379594189965379638308952452114547004887075123338740208434546815239602396441193069853808129916254842653981666205491065166454475145306055499441430359476338066750942464359405589830245801286764981412903674473247526941120451660911865385791841876515575748156876026124354742728026256375330088124611521208254031964003240461410125082394794135109077530790510619908857807519718654022084012808086677886000450770102721038660199567991472502277783238166120930511247992663557851993722127974837589680353766654820619141974561306188593727989670670386398444910178771262633334680102128555725736497247118061820076420484953189949392059073673350426896290054278176417200487529158803155223108752978051925567563386546207449792513326969925569961096045914365655865712598041568009079010554409592429482637827800566924782694851640894535222424592778536649483614863765743132551318208293109531837842834684944385162399642640521698982919897155284725935193634797092893214425579306009629670244956862004058964422865497411241065300224099948405024181621650692528239273109854988494922844641423472371890890424156875969029715771120397715187976791173918118069118046208183830218201697868433429248903118665517208186192125092883583539390565111688980995108972345024625484345805662623831884961952643478961947555905235064561151647405275480096309522115067556426850858816672521955339289466309790252267321504457365930082983336912209653317694052363280557254127862586297904524335214055907131654429996484860786949495447200195191353236379751863496447515054077394646999335065296949282304145452534672815550054560132274476955990786677709217028672397162694866947378063720596358152958216843676375696971151211596850999768606002651977012200483035044174069901853306493847819181094663050441459088280879425316699751620097115937451924722154361081437779354578249255757978596812158744138892137652207108374916383487854547402058336889102400440504556677027506809584354287189178818850942976615749484175231950066781873105625216861257479257309478915292832358290293833839735528932035233931835478883637004039808245016963973989085017885533127539467387783930431133458693773822807070166956243736041015777009220909510296722279359330675439440046286842394509069301807930376216971141116072937611045535861809308948585136399004034694341646903095659702254923029440017737656789360919965454646062063916773912470143042296156393069497203102929115044820759522183748327656667765971141639706628029408854300976769846760815517239123367694515958788055239476803854113758053491824607722816295250795071287503400885582473374801935854244501174951062045675099146315486828904925934654029924319321770633992849004653900091241037969855491501371179733804303016943519958387586527957005716361217582140585623262704628603519630555465347344391114246876637520649173848667103302251066606104713842648640921902217935418103101264054088145767752902925359626306683202432022338034128994487296426459137943069908258817188367830886206823015912734410209621504740148982276735239943908825682888392366257811143979294817030291854938108910815076941151557766402962102435318462343349594570044837478228408193798972650020191408479210665640478433890577340382472459715610778010195750921503768026977590407857736321970049564686796760276676249867746781341001914440273577357755999967018553533044581495959861136113132210313986665706750547181465070105294370358322654387027161583967520822322499214634657818355001303655930506247170398346786628479396777175916387498612417054966003255025766557556267633142057121782316781402965451529964554713280496759115181986053077963526733058570761239453808963894402829307350190709119455236072846234220349681219659461198833746895655282369415748292955711314059953187208893845361993160569432025524118028374484220625466502913001720457542871979472255598994980538011641551147265384939183520315852788243898403582186422836991752312570871568880503430906454380647762017988807071598377268734569552859083759230047887920184717442823592730775502848316341957626912668618206049362082020911485289387220140336277565403022354048024233540409897468501560333848619012216137217688958260282610182571811660467617313651591723635571358422113038170349463016614544866720370932542036787464052106849237898520545836857274581877871571865239664522084507116954301664463328635991211145729804349264737096826855538160711869718947538963890615555397634060323388113327418242731972245905547371083326809091431397114247613765943016776112184741105397712572508253969946963875049857273215473571085355301630601358467687470781513462212341460907165586210291201651532235285513411273989102268004719256766518603713076225685451927857990497555503857802459382877201947562493151294276223733923323534967196113549892426489331256174099524495971683888534747449677673504853859700239776211259455767004430559832123111155644043858335955533450844731714194243620704754662442342429172798660872365671362295488338735606130484351989679810726106250577820444330283417614682439583166788942110933436067848601872044120673924358901523743218108774599211975479894902092920708349807663063986385646227891771760311846789451875658457761232851139453358063382717154501161670974090857209751433084537935931659412007520063031536975200614922504000098207441020746027650531422858085208620980617255470118805406982527644224055781688784794370990295393775856885507880866325755631391561853827586026567244440979568900744643581112368522101467749583958125652196066712183000787964403438714342789345306846027733996051109007707826457675197939023986859804791751874589617916528755596156021025146831063687515528020076657807551042327183238356138378142939238095700260350311010551348725529911040367803096772805468004062989843931968453187588918371675655587092900358589638362267676334322162712344595451520823807105226715315775650734824144178969795919816559940539340581372561076440509387591866320126261864862756255377511731004319086221437856950258542358137839531788231155389668838842269701751824290187919752890515440577877902955508575810327050055255722209708989623901992022135320164790763374369951165930981544899863411312013740652423729571971258898231792938740389644610578877029839716172280971758996569090471487931160520354758793138897323817034794563538614551724877253727547708899448498934531177398639958148645452369932316115402818897863049617846448831552315066808402895517593694918067324356408672067685778994134137987167719115229061437937872730687732733036410803645913692680939615691203820499362422296115883482113401752648720071122104069257302731050969480620426998825319370729371188837755425479961337135935172027730323573217885361804025489005770895814487420135969626789255248882348808837036795591243719846906265971550061643264351347552825003004235510987742414149964221607046385430587296635375245488000143637227201787401942854282405374745991348588192943328096348511661608995063955322397833254923139801942556950525574326484789772793461444540998247134434286357761966305822289899203044646798255712809395935772085638732300241250586210573050059974390969085629544465992546910171215808174288589374815752398380305824821361494712393645828902520030155862174300150000540673379024726016272739643943836167949856494221747664554134375345439579435849004023026319012614478391207346206743180061679315238853639402156079084250486055774150401877545064368541447886347202958713800516742461212845520956242611930910364623438162157113009507398771174679685416294624580042838796467519911235286343719928996555612650360682709762023092503808203478076832410340691434461178417983363490535652480384801130385803308022987895793107970387904088479083846815187662975657125311328697985366940817392478686458140958716731795799731616867855683714095340577714521309206662861314659437219844466434826188932679821326604453644464363495237872615497257556396878849226445827632042605199048273225675906334547923971056615053029412963880376579859473667865053954236469340816339351138292474772775959294603441900187814918865016462551460922973005303328704211719985947451787726773501899519068141945423209875273874693968331254392273860923628548110987318442545820943906397703621168922526286801986807046353244882461667435267875680996613034569487948754289334648240571269697188910136544092355546325002130732977318724915075875966123315095074633734141308651037371810173012086177601713088480908739315249592083812260796433114319022632227040792864158648606555940553054407330163598990315499608203266653849953660635282873236837605965110843353384857681182288714940674558085045040754244103077221770143767785981689450487112237972333758736488357621793379850232666053993129712976251226710575723295649929229969258720593083409283195639138844455052062650931563517058200964109829809168906537676963229594470105043159356993489407118266910519236111882543946270017482671891717689608635186214687562369127948155380619794557395585290711194810286251001600118696099427519824934147601801288377665669561699092573376321751841686386224068756802968482477116193947559880702830058425488965951820880950643434703792367029697195942150855016756515251141634258384228389157519874526435613015668209366706587504161994708756034386290660943187815957613515606952525136199648883119404813104953050534370120616046383571292508878576894057265463657645893454631138120786362538169192627806650499886117468734299564289320386175018534875323939874331671591120927281392242442647741642124426951644945953386964312887146669066895367791305800502814172227142770848784267212950616879722883616539374803924966917699938683182990399938911705274507310767923427438852694450254170902680043569824616090586257290136686724094882754065298832968058093499789365362535667228310487239420600429155586862795214584849219844912488974174969668988635786090635704219252300722420358391253570256970026809472179015725034246984766177467093693258758400467745920746750324333143947978576753060709724162123600726696700682910290519506558160374717975666017612213966922673107706273327945554249093363942979723907537583246022404759680625998113860102034544327045892397035096851137049136588957974942548285686349216373402724617949324753785636833400307094703720483671307536903443196433261228245689930068437004568006660240375634596121748066222009772510345079845990865212955549106911676847173432456109239967396483306934164770358265131698098451544364813732933245700941332660130396798736384819702792223790589991107827388821708536257196319624151550756081344569353036880097487412765544734860526187183593727431168886521778104435304263432587151050856034435294145387334473618944444944942992678046442134232225141285817028832742508496272312468076600029448843742216152159075613327817790326277897394260765867555702343376629305021880522463259898849165597047936092663530358390963988778274919243291131352634677917953259153292573397977949070012711838451650734593212910575417369084548197865706147181829819045447182622870122826660304800754781889951770958245706102271456384511458236138963175935530223755480954555909133158066979893491500504707370340388007500167600484758189985250037372453637088834079968439472191629801964035064100759956395283693648160770629016472124625862819579456128233756902600080459943062249411787181021665475953472146071935406341406449640024290749120588764055708247294837096205665163254072737660393115184763004637152085922259953053697271182894794327987637439020713274402147991761930337303504108101824047522564001691784650720709667392532584415937451076031194549243863447290294081827954076585208700547547500569931549821223767924056856590480736131587872926186841695697413115844022059653665937314555271986482330623976981335276223924607503798029953093982122620277729784063857906750117959717036931775164554499204152503708001893188547074024747245379903413367895998259207868258555171544728320714541831739582755151866347054357975713833573142866677016637337973604338505070662939008909136160412322166613036158961453557487446474473431175908993550488052446062115514220384673761805329325530760795698350910981233569494020803766332037481015921605315660657271722682314877804346048261830642292311689187028814586421830225573797993626820846874852027188742088137903142153496479017471479758582776945672274863349620504485085232359472593228825188489827543599500250365690123215542482882545006615658519779540234531083829534669422615825811235065380257702350408038063734574992541870186174658381631859714174285079393188086838231850508351791886058836339435473982946496968027348503246874390160639283686247902332549069867434532340741169382105689155617691230540809134348048316648280426150734102438167711000403069652032874087949636625150032934928027802628846048557258650630152050957968286841009793965353877157897314257664397566635724849165335714580638842958872295112505859545891263095755514634997331450170145564845735518391882592122805527894171816107262060920977023024591839326259067972583572208024919489608179354592665182708682901918081863543762358162564777275699505551907407083417213364150827416327022252514581809846579572378018846238922287635318280877146398460158238045814539503978112431281805313730639278486177387639451166133763720503986514484740895011150012436834108678259267566191089314061434006585325521015658928426603415926527762792287196343662435915200350004729703132996010716470264385420658396668579408879919859498352499598816064399617836679263372636531217674818796486044780993766608676411129512891477229010670559350978985299778771514352637910803497222227625910061974423679958059459604393268979405058354176880450548325426826179938046508963430679784741798966517125154156092009173335304705845364329783949194529683379578896519006866346324202590576424226299171536582219423284569657374221579700762865473441811916237001505453607174458374743198952289293896360959444866461117923442572401676159933776107244999389996902933557027700100459999241200143302378242857012675610800816628481636963812082063032965352219549934244487588795972628083016521440055551746835837171580963370452475605135149733025984282499195120603692411186004977151799883683185236775999587188081415286378211724941555203813225608350400363436629185197654749830753896833436916113597505970544064143510577972127591898403893375385156392605074757974610126574626797072290929206856068523276816353784130090912804909931497913752526644248264488308187252283466326128872931784265896388167518107499987620713933983934099057535250788439333536927611900857530777198911495457427042370875119409384130110532888246867336861251045086265464045761165536050203922260818710907320393947934019735307754205896173439651459394139262649475505361293148581112173859997643067239486356079173675543356793428881605042804346394373019427402455001567734403258911289344351002531844172045880587560470184950299430684328895193675771186756861940957651242988124420624461206015147527609345231836702657502079158793376290870577805823318404124874648788539343532390162495516334742079284821049537729704149790851777621884000399204625819635382078518136530743871075394741802652695509353984769021749240404396342573195179030121192210324265359932810396846970499866834168956372368335176223288563215649004598541725349584625121256829249419440456373648779622450020296475716820326944545173599797377466474468426851014607035399482750902564305564730467660785134509544974145658771889640955553689395806742945751080349281924186581350389566566143206478964472352082602734299672604863575295136717440517596532342032047861128358245271204990332730470262282256702468735757950182752858305397510509079107063417910615322632636794913767077381531222253209103404233105126002930978607464297216511044939315975984704765357716170435659528848598914487796402008357856055146422865009236380775831038526590145442146032106017167279386127746903609076340283292723670324689658338021091149195152885268483805465886431997985449133358301955165087200094209405852628065310199170611788420228373550299051986924608121973392168432904625767940945448477386316715338988481927651231456894067299833056592038495077428981511330629199368702348054970288944694941319182145080325982540421838069692617474163154578767110738970457050401712626163599567658505817948009840055777087204266573469871039010819342122590733328459498795038570004430410063293774566679398901352699805571783472674808729506683656147463178666746439969163415562050044082005131880235056278826887566390602704974026217136546053096091661072071558972517898821258485856177325399354757047161766080242529038634055145974311377606550137941345088758541522280079850530480204493313739627875966968787617902925017204001648745810483281320258563846447441710024224039305969819232609025645848791247857729127359989344305169126381003742711667005542889629091225206349618846057936743944615554642014628339418243404950185976740203108721865522226365047046343904326259411538024061054585230003254825238360471716729187076291648499377625872718031346246405444773259463121545821748506864780999742504713356690671236868451716552032653733131543119110863067197565088975206470511292410910787967024492076855043754051196241664293513097628065574330774255200457062062283707473830641589880209673620992897611622592506194659245914300085819324499443334763726015044507587237648865239669280452359386263392813596301260286658570104851873584488511343363152092624086153415584960093009214555738272012046740913077408134962765506150845248549213378397890340966295281354186399215556380653735405647312906931480279008040237511951941882944904124140145854766732930070755051927761985460380667886417670113768880050531519712458950992476917586401814148268428901389889731599786104793038557496494000070315849110261444529900628870055134021424990391487557038051239534336575116732192806666950522630616406619700575904039955170429923398694292309292093210789569732878378042208645095900928790397970546961378238055482936209690467852339231603026791339298008595660135369057355594508732777966627094201580903623117967182408585340657327919801570815302201054010129446691975161635605051918477844767448229504073065591033042161962445951225455559253282836135640053677775180582581014672585193768757487925210784918920098873875184624504432432714713602139853550325980232625901171847573818908533851919217896186990837449731318352217074404105573448220050920104445946573760017339258528841973078813191416070904613535696866101260318465452170223193755682829848560593111942871535821114399547413703034370971428057666441592998999570029900461506910596789025024402789079439231443974591552590650903953452041270887227385974580733093645394922132051289194960361039299899470405495701010859705987039194309347820166467709995872260679256510530410260339862388807385616059060403341338293930695574331402496364863988002247386272040426178756362310132110012353838125256252860342386492137625864643399154015211186320832134785503341817252766963292112907797581577124996393072299610312193256883501086908799650056218475856658936209439651079904493459531730779729193707324769595781575756846138444985238667929714803442438423559381690240954151566797931380940405782728443726502087914639643424490798491774602972946858888495015465994401617050753737480158615021199445034876145417221369977533506824914995601336370009713737974908260051787864738321789018548426001727207221130936001764263076552741675945914944512122555617405428621494200429348912154057585486160849967760551011652389565603962433173784716891714676726477121536668131833797553531867548092171605005152932013316225466335200485420891717940632558116165178870760526518413687375845593959866500112313059627934756338682826208300269614110355651288620743303248324266869888189343099040389719956494137149641421597522044802288897636178647746896416830524061094712392623365658140552625643510038437002360535809347242676628033606968865466651694305097251965397653626219081803262758630642443178983094071172042786955883102733828713792912870947012406325355760333548748809184724460373227808751690236249393380638909424572667142976303248856806009130478132989759423229658868544499665408272196706768069875499622684586291493704020649220102848537138270621418482079901546933763093227914636571976842916227710211682517377839471993162601922913697838247453388489476884658512175198453442433091509548589757096507363053142344838339890656057956230052270636250828638907450957201233791727932288272373090753235720999848689756856397301333934213494928852892772929827895313673888838406813411185319561045326506569305671156942948967977722216313481771507871085859098741814161664341142782715182077831513454567375086511246246530202143212039573740363429490749752521040834821746722396655613325872947896359400804972923286935016976561345229840616961474190072859263393844230614241822004972602301554378063739378976398285479242834531552466362583684250410099081814425418150397689170183489900173303389760367101056697200735783019141953320745952359696904940529903025901927987421790060210150125961620639835559003845123863412654518880196802838610639156246664085329718045776642463921250271319534033842577364585635731755415415403253782201109078752477245364512833601141161931255910740950805341388182800661033015934652279543737199628788450340081389949676844109207036089231690712571701927628863652763449848266830913853760010924746264612931931796747908722898031894697787411619891234829454158163624067980124532165595892576397189257065925343175285864224214545914691281829193531124602639336700005773163402013726529790605234408759242220243116053452228409705850791784938059124533188385136268543000801625962963564994023412879013169956597357833282939246941742617514670414117364469052449238028492485228735151318041607779754563793231248489082106074308984105812022011719431534124603402495268512878171577392764533893687424960084494585529423981738975367556276120002812918024334625487307479836019637087898470762591311312668686388505206697523069497590070834380125138740099946431423739265521535208180485971122682535986521248015850193517543913521488800442721564959964550036965221815426449643858143211173710518039968219598028368420695009477225507618297079934055902615442781168941959940164761319858880746226581059548204544988284155891889279268694678348250213197331207699442051535342672618823581962129908190340488773092226053912984421585855561752202707176486714915158315699590691860707300611543448934140977851169474533104332470012969277859237755524230773838004590390088776914710532341568204898509979112524211762035945300362853275547123884812366962774545296172175400996065899151730856222066340150385591338425482048311504791618261881774684310935256089058565176085639879910175771355622550336204493678720778468438517217147713795594198975987927217333043256714975409858955468806814421811922652270058248122932678959662391435839234467678861603210390513352947965888082976707992883509432136427155636224477963666861569318614524616555706119510696890766250918518465014227709731009529204041709790398058466656436544715697137590660425553527788418385880803751153047763262314617455596324563921114550702018482506520902765488051010581070336979583831586821681393620970692125934029252331999626059006349402865485220734712490067563471086262598971453426910677957813364915587528896542717927507885217115607735657521871856493374330732417770972945912902130099344977236881742094484130095433440357577443785760025362777721205466206959340507864028426006147856425906316458893869696409320442873328995985882486214105217863618757893803108473508099365268088097000625275953298433626683577653496477829389385286256394201123825705794446640560512404623313421650962047326814132775883064969781643691204005943556023047431423539458600773485099155946845897447344789933435246665019323112204527904492106621998630952100788790150390219798488171814405275947606695467878013798913012484761874805919531248037064029013849878291668675007460903097830907684992303141727972166202096417163118736712809660890170916449021810391431289306541373994413481468597038526593890021403367632976489217729748002052967384137183346120510462161122011145116545601355200496895495446282924531104163272807600108363283515845822700710945961567996252386546618827028524615731422930558097322071758223586369001710796351306885649006511898678127246155131989534708742370049701297558607766349881157281494888243261985308228623907013904697569345274255191890045926089303740521907725361478550159840718564407402490823337427413650584588482961892421618647425537147574300774813246311622767055529007224080476363908656842725145805760999578431358660490681696342647662384263108564447043084397343051745631409788669789433560519730190067571820899814514824830578707241987447158579916590375818858573032440592986178715962128743485976102678109530518045122592286982700320565567819308843538458384532940226634758803520886807201759911233679707048519382481930745326160790863124229468067417674381106966973712460408824911999510775897255062273113261170150322221680805005300397413031597369990603514912816504709241851041941643812068794383719962018525123708027850974734932117172396072931052435363430305405693323303197376973873118204529893941211525015720999366649605779922853271314676525518306216957277189639793854540104597854403594525597541101643871898196201394969468759091480054280257543692111613131497159320717488761390022298494095642526979935829535928963215070096267415489956751670766532020852398030627000493041961473087534437203242479723763515536846193439280647923696588153452589642176243713738413947952131916623183576415381612395750840571232284147367101065532595211035532926456371024995387630540525495434621951016116531165693218105511665261067568480224758365416374358699189485767003918966986156997045762412550670747013591884440893647171102037533248380816615592513351506497207176795363831134393807238246400698019007594117916893205616599527135831666076650914211522914927524456398336642640072565620377951060752155643425421566916387959310368619773791890575145020110200496426029865355387933576463406005507193444017419676658337215609170206260540491325359413349133464332587528093453635965519846750265148743415525149311595058062724567604490125900423322125156456943804153276774247398943443378757728310163964576478664707070014288097140558081851992591353998481841291426907818219289176749206861714087437532000249208877005926967245464606149598876508633789034047882815176825176402607865641485728151548818260007224064766756304370111775700067719718483837142729754339253750514765686216682365054910246895773376266809016796016405812108805312241505836568371112993937374454925443749364910894177640206433854728168217318203661763747351635878720167011339758284378782650417347934853976304571699448283004280503439595550037707190262801607215555719762322374152708349179952035055353622604659739781538142563821945908609302758597768396259259586710447712486404474123474924878102204548433882353155002923207428765221694488338744309632915082459259998238334524621699215146237238838279198600174328717405073152241086739670651305486583952983594359007548237040871114241110830732766336083487322527137373705814330480127402630546220673273001309307653532918810078666645283327052324018858142975333810723715073564700152016514190909718527244886510601300740526303232545714188072659384289523190273951692095619458590135625720531282089162449747445091430396221455531600517764225272742810401763592369670201268501289113947895055701662854677876266807422654042871996346958669532889726643079830241287071277614128707261636075458236023723056418882366354713649823205314639935083909814339634308435039283993319903858441842062024324735320694244369462097268908698363393728777502955806441328133143978478957747210856336603390010282239682274622726798365128571723216921834030902896903293963178360435386304166358681575458818774002194288872042145018723006074363967286802252686693221945996448388952687503109561966861338839648832600702783274289588136978881237047724650044067703873387901731772287293573460501826795885347330439199788952287287665579746193067719290068262152600034328585633644977664715641276084931624061160291432537836911430694241911896981723653293084536499518616238374264357952040024258800447658883980594851843581182687299325935457354627966668947994488347709444887086657919674534137330322889101282589032591250296523100587159375750312591726098906800348076445741282533433706328065375163370640784924267984898509232575275432039219380934929698825026961643262098927952366217357956148201190740735537511557018279866964081651421584365171768669229400975521867838904617813518216469494431060437623852311745070733171353395088044747155087762436601525443575090701189634250680955128661882179428732450044711903192511049004751479855392280891580194512646929363490674355395945738337738396417500751420691914715292447757533894779200060208788132690514601673400671760612909845091141726524359396359791614603105107354376705002876719056575936477473341278789008048679235299380267883995326760965900326362989127603017982592465769165940358174475460555879759889375014989921531057182446583702049023428162090845350668901911168531081727849236143504907293406439249806470509559047956881908370455225636191030475362511262265529226194863467719145484149216107881149038554730799858871348263217240380429505430865169234278406778450216479424559186040566642749573176173524688592725380525954683589918520716698255098051154930994490323478005761677250157199223720993528681388918463471816674718530406494699361039084299037236637852779239831685384331403149095230506341487809271699462514905631336691425358541424837313233431184008134892523156335875057871610152264321769236160364379505393032465916585286413664551857592698607119242764102588138487445749420014492693050062996270692839074751444635335211209857589253714188796913992342988397352585900047417087036192411326452526225152934974759042486142010730170627141331239908258918193297319434228531133252804140417363913423543104359493889234775263892828485421073049491584915468834851443509762856800758408369823387454793566351225701890560744877263802477316367339140532065561988202116842475866428975221186810831675915616535684183819827162072593716908098833324001340794975853237300968644808363880432725839376750723936494329597794073287069957917823963220558190339241020092805034822436695289729171986321430096173957111182766258100396550927088774375933906574727921231834143082101509989277227282944673507820933112457867981184687956245234792562567859660972366100337240382094696154562374903649708608838658281756962593214775062509547663189891915244969162223509939854343744115390650866965942818768705896132988364751708826208730772919503006206494268297862511497988683848208797179303943911368332462309733530475349671774766121474834537012118970738053404593529906219127191504408136563756420184973845689213287202384794346420948852849731148779108774984719599110567986258033004649241225347545368396873364985722052486127945481655985827801906986529747617999305885738094866379341744874173350139487211478297855588024974646394349390968539496579635204270600998300230904023403751284519582178952230188614877586464699830039761386304081256926782634232594882526381194016225130909577965171833821490600138108828013024538633122337024906515363675769078012034718734643441256165678497827412214065510869636039369609405625863181948775302816418735240261677717233378278732908283243442569089382131294589632288456289862564632881202935691773096864588522084872653028741397539564807532687595748658427695751032344487470062915755014032469640484357228025164398436961897440327548036255339514484648764647687789696118066631369016560715602601476176823103751996872497385190207123238351268252843395645248865397809271652858178545734585477442402911392194907302571944203786653215458560094872426104638629985867956150809694492118567562750304481811760223017813829219051256642331565051610346617410902703209219553938530049279419979461775553133174949320258470342198919539224977321031852169247270978354831676297385839951150028194592812492464124060635067224920649680196811744341022796386287909007559969290614145075348092660925447360437997338471178893199440856640563124089416231338928055054178991523666987371982988854869803800397989082593306939613924250406990303475940771763626221847024809275501220060078153336859619370016477710305808333312324849840589579303606836581467532018952610397380271659082628594058041772140497330011700128232525633558344858871087573846976137400418412732442319215774090787445267862920092870661128488672624366743613708784389068377108763401279274326363318608407738244761195633916032973494130688887449656565381752147082476130060216363158510344180483135163207009806413181996699479086490591393595873588811513805476811279863371794676364461543366674403292952370383580764573377796001087356805671239006777858073101983323806631829486713592221449854209304887709306018101444679303693356584620540887493426595554622440584133690103142542159597599575703321475121304723273476990286656901657311186498348330376966517135416088279821511452576210241980560079955435493118472756597186601356567081696741176948200596423782420212183045853469582973682416458346094338179282967776400314350955087773684378369426281244021765702564079068830290698134603028926679213776907185967717192304500781035055167834017459429298383011269061192805287154079075977769130042428626623750688824259472022909171887225165311913959033852806602726781050153270758271030285664823840212683828393196047995327422698176674819072765881514585647655719143470714294336129962015556719769888323245052687476751987243290902648064482215829874021385248406095987111198202733683008127354781744685901902229961997094598016102805112642436121556564256567676134423678765496390535696801531688747008501451314586035038747284375143254391808229446447692447149614757697084179516696711519678500544138760735015193466235763071957437907494389596370812871707003584075685008763452364694494337341186307775605445818956073753512593453125745655975970823485612518622780850164312885394687482688510279970276021465549619998533467076250687601324687170993476476891194795962341248200444318841065275571147374306027470182407310524691198291675521460389961850504792769064888400525266175560316776265222295523186886749534156313940591941174552023235214956931333519658973847566729004097779752042087180209070874659505972476305127384086145893129343326281323678288569112383171580579309239608533829460702215869259722884392061934162354445138762517958687735487096841414706360532180802388977624155259584378622946164033134547523635121834846921575781667924989164951859993875684165674708230563597752587965650631379206400318409167453627052188929147324771634798683539032434810220155489692563217737400846094586141232238266270760645785208098974176819757991218381300067766022148568457221409990916910974217961549252663955679230334295172854849597526129103239374760313294492918068748602483826134890675666373415328340268060399911798990506113110995037931727555699200343869850719713323389971081169199598246047141939574934283146611616361699450029832641217760133315591866616412123077175551687508593045281785001098944076459000460659893781535496977811027997570004697892191999996179240443976010139759066486713143217488801799437378745724032598591921965482735846576448461668492317172766348222531054457159191688016184050686411049249079431745791849336843411116606838730011835843434274784218714422749085229559373798207292535260419067055997765644401604305203807885151369484675228887736092554391060378172259067863783288981941616006819693276206402035812289809415477383772449328145182189576589917085523225305538189909534467913733917094680064907074230149163609432911172098254159785478882111043388725344138228678569759664479437998467589374038861532468545449767412782550119568693294408756437601154237223332207007585874254671757500366167744186522368563287640921609360840210885546014700594595421409808506228477205350763680403794216612668871027752953245419141338136283348752885853911286207589006304427909305904312071656599603212944116680372954526673036186315632132204931927590461297538125648344063212993861981899150243141785328571296803425928709124947154779693709483120930133653587319967915014087170532725159211990409556637355384348689442644721116726529956564014720864626470714149706140597440424436866683342586715899648301731893676148279156668180045552433500333703429899918739400909339756368636969272643353116511814575759808609625623287943284323172404201051259052735859967541024068230201251239704306548389169769684352967159856155250783731748989436579140685077348274138815933215118570342280642035990907555053903831285113803989708501474168161832321018578463702842367462740745217643744815990235028973741258612635494996831405590004446705435011803747205415615288757390468881341311653300616523106288917068220682991172693070882050014570994831990937896232704777971326411488431808934947127523924079328558404882881529230529414505346448172758797540543666485288651077775379731011563774736091106980268393603642397314680703495599306272738563475063370145996673522636954969299760993425922495022090255459463330109969041612336943832600446173400914028262547553204506644538287974001490118359349434162596459070604896236722310288214349316436681090603176312128723299542243248569370328135543720415699667776607756235269234549747877919822372336083211870063352838368394749341815855872794037883135026159170113785422439510079143564377651380640580008429499033080945378750194267602068116260445575417521327429010304670066649394399508212145884888410814764482079906304196254135847286478360292724676923171774158834916280604656874833520754589530994834934597174251965086518304146765968935516873067559845096838776269172649480017322153079920676403260753642334999136080315658719568069609341428624407450953363088617516652705982804987224212840503291431796729766815355043620553467478321696626133750663975134261302991741569714185481200403000755692824419146325419869524568436867685541355020515068236129581611035149286036377290779316206737056340603350236618541513111605746548573106094643279915619177936386574986346329057958070602298236427785965586818558743533322832316222116954357537885845656221622852077673673405033044306371675681944013036608638911668890702080855121033007965369694570031957383225782811045172575146587851724581798133815359044526244837237818911948776149895443744468741190986242058688768872843250686511826601807449847867948992364495299998301740318128528925626466301239709912279229119040695129359789467889851599831543575044214508749996948017295050408280309923644010482458921524912558792816573778026874866200797948350204758211364386068938521663658803198270992451912004126139473018493885857276372877109744164106903829926772057682143859395906055757447764479446596852168564589088347196841074344302195121299373898688304611306642346039126948655581811322886754535763834839151590802328650690784446503151727954703919391188116561777474584815178976657915938006909405038721878963249888944579397251558764438755150064544734136647169848791985035734649802047861111443126918333083929652690767945610320457210275325153469557682590762913331750278000177463102833721607725786828503918484605586543459076949445382156791766024977247618004271276011500099133202410307188448740646737190737513035815776503913738508123662643877466466624533410601627471518328694502824783131570185082320339398827594339051252859980273954634609922335621687883544544424468547004856410727799390433907488790238263167889890076008492858213877222625447015387630464333127163564407372294139583943578414701647599197499366730407951838174286580398503911961272260836339031321177350349284543095914850826419510679602551149972253979437426316481275247289756796878990528147773996651259546214288502007134569191451550375858664784290763789947623202512045103664016265548959139738438153502807501444528084511493609016266610866198206264152599063411090483370159166118723476410969513674500934015671285619575150708946562343877198605996751111043938234879223847218219317222992526386644086077435336772615089730532480383157409058436954249881158492968504060578638669074620280299311925965977232753890141694687579736424018373092277036109911567527861566288227767268149908973785241307033310700750601309966263228564386475669087754453127228654539995856653403546306692449488546761976182076396194190888953450055213965323696461189336393518342565879046672162468340395373493747430159903698666215093897026795653041141717413031020398432259019489337045731823383189464753050523284064793611981152522761481920406501730283366565513197499898373591426701175651671121204830406442075717348864578693176254138825350201388463697239071878833183869100854868638935248693937728358310131405372848285751693735251751389827177086057224401731561099230334195560422640736199997196447905097150237505041604803676978370818619551771363052318399888527097372995785032675772316648603796496727933745959675183333459271933476688525603365251614719804492862307742947971630049353031107548264460804462786840884280571008023910356122130764798233583052206878997113088939651654923953627918327148164390553918621347427950256245057595826653184353901452624670274207458354897277917739935569291845545756555721023126803984270165954803435227838985814431245909142780696623345171904451630120959189514412409458112855805164746062911143460917648275398909543897807312859055863221620552374193280442627869315529333199188198964939909570226594141751196435760212208388103884382839192721554630390471912749834407907904563435004712456054837784518789738043371471404724680128354658407529784915684892590985606662841145453805697985945263000480890307338309887556922044069520043129506115073562985112250677200699473304971424372849637354436080040503894378191412654384502060399967176223417721657027570856358462285905459383526730581925507834278762814874226281076987250209661358922653488049426826404491089101121122887480370318796799075651143423090875445549491784375568561842394827112882395039891209471855551260731163309027824435135877966544161167229563562350762394781516702535403213973624266306442550934176366908242414893996774045100198924320164850978730893155805846444004743341315303264702736890507631188688180636447749513887147093144033376264131959204384288385775221359217843776220618206917124186908355825091113817501778585718603705509167879258426270781058632982342742402063301856562778230969338650069976191144612044943207133298253801205557162202960810786238709777580537223697857558728311630071481841571373003547526045603908286659278066747006972337963438868942571754536251130949504325750692916264377158394739839099275365955651718045904391538352633553002340533449451343239967960919173900853261680357497929189807162884113638455171336894544572341735649103016069863062722637876706781551127339801198766754438195377540161136984799018204352325298518599343623982232218913526132470262186746385795210064213740567547173264621499228535194668605921750714603001239498381929321518634277270268854423930728376190741499570431245989620138990586280399995879400047826516424622654025007925053750331313739743901153229931252281354414874668042899896249328704667383373820457071947566159029491402680754706028225457972216392839803498900194896803048488862455647337321583911333020556369774652604070530525779949401570802733702828082666072827346489606763527228373319755421706805297503247693337330176339250640842495147906488095226743675191442244821211328986573034778646636688644734229917330818524977463778225822415329551266183722813960216520428457317028944782708287628909912120691197473595641702210537504908415543456096105126515213974319065280539863617587090135075409699599255531985473838186865888567947603906762265235101410670419275245649362443471767966475897394168451769145350579422563774639081641191715853504779083439944145579025268917700340997038370736316927557557747227034675732062356741576196062178478284951371924656821768883820135894866675092908472369900947516725622988344226543923634564398349816842841061065009200799157673686376004964937176059952406664935887233751638181849449371344558615940100686565073250280140961040480175762613840442751579314713721075509887795497479243680254696427430940890482730533639794846268165094891559525533885395678432847781869991670761061724836344199146832249762777872365726156588032199384175330351266382641397600446320191782807357514728545944716363276752163083115428124504393070810395670148286629993912591347251498221287944593979130484515279804255700082882884119236785587485820643860479949469688617646998497974529452473028714176787843092489959967147874778068170170420783942767816173763868984256202968744117161484892367672344029923014525631474288385095630871627475907885741428713516686888793109406053627924653811921037056795213762988108154099907769010011857957206254306270365746426743734315981858772730182265247692670600830343531695806081140595885565445470367148816009151992287120753888831725425005757424498462528928269561651228448702422137355373541942450410936701492235219439851978213759667897826588268242280249447078433600118582853469105557925755420761684158780369257549955456740961213859544714424630914561790041165286288281189646663517784672095517892582444245944464747287882201621818692210244769430388158933871859745915329296544223727617586329687663211206957564868156043147389084233115369542615199751135927688398937361724105430943723021349076650851227948167984106364018272217247247250235782201114932330490518107939149622500389756057090979863907505744325041943539704535994965783430573885706013587550301099356389006383911378651455020151572959773307509143967524679854097145079380545751232196282604025898150170039994552072630013058267520194740860930801327906044901246818650830606367372224756500437903822868500140719771198043478578590765891631451323672492283448285792964182845229887722686701403801348143666789138270904225988803820535891559934475961578964204481403670041214947557117891113933285711344561885966806970440004596550220129933579857559571780641067236940072172601010728368249811405283909902300403481155889029492043421585428545277199565121177483947501179284822361369202548808241902985419628305997023513066479231181686831350414900437089942481818086940590566563391121980178231887998187495557136397883825911599258645842868681374561985904830878849412568017649411180003919390377602636906789407500710570129518046863874722591778127455811728146718953830120735023678834057180080714790966124438302649463567206251257402503732077449948822338831317465410147245939588239533601341589336994113758208528949593481291021363023142035586243485926180629926710583581301358025045453716949545558874136174625203612449147618921891381813002051316651793665930955279207975794184674502615651388154775284788974130503746173977168674451108568105992442972421197739413449475670551659924474393647904719196766296808257902772594718946323942642000795002571755496877587086211602200000816843327348900163574437090008725739145191244842196628569937423054022018836789576800001811165128030907146761914175158592203254512218657128426150646667144420417188731958277654756090633597311964803895875197001465983346873588005694273753866049316196653539743338543694342003952489050995719774364462774783799473686992863925888430634680003288057498028954097663156269892103167845791288771919147270828424032828286901857565995117700620760104559028423821927294599151369713466733951202628687984519429269905275463618644592300407573517314874926322025742994572909620338733957982499047309073818380835605571870839294104942073412256397018969258512990029293032310650006064490967994063135811520565736252779363660884801678203325492022437931869301038689008546959490170882751633622993691299538607456339060341258255124738393300920865514014182786908607323788318346876844759716424664105703147526106100680704052699969853847333076356986893699069192448250812390288515534690712557431957374459284170432344624882593445251157699921054073891791886769765171260815105523488827626405104983944920292029255455530865613338014361944487383415927446690102132794174919891744267647676553712083186371411212367184969193752038822986121947674479492119535981620605984745778146418055376351558462194702365716458312704513795506398281431645105208543481093153746123560721276499244778094587292701875682371600778698752046396424937460723898592280446905182647081220728075815227409001562679336451510681233994340102864736070809804540637206783820268553616236015372741917040504760138279794963080979429354626153101334462383419800579464744232926136332341216543126296636809411535714777556539316911372562753770801481591384327484617707454450102327214874770104635228190042463998309891681573496453487070338768438948394371363576230824367467880121545711559539312979447796761614902016068261758060662631453546103049927981696750286940656622714924885181529916378573198130584792700897326560440635597966959807201802636272746256016184869263450191929834537478235234247363818491763614329793971463601086310229202265712030965999633433816485587844945831705039077455124207327452736498001286973664720322646567841755759253984151160680302638290990214379983680659043675724358391491222384255859241775862682479561087575765386977803403107951208524313077127976469971621589787378833479699735691653100650174299840600077347597001896017265334151943065358899483189013993235191569372256011686412157159763645218687574498661397865515108454701606617218069661048555492911991650448237049733622217978025334721178274959247859045389395302037048256726249234492909184008193073126877489796408080398257039546852410614654854930411980360720055416403317560332266914195011762687277485802250276978575438153388174083596812694411846835499784077042708032055612465283399328251535234494694214898883054995946738587660386163953883777248043375903983477720343643346448983296622325409205856237762067697011623894998913258546454603139777844397100290488696758591976997434962233106177301201464074262392074197684705681624420771608312721510938055261098607316781564377518915692983601724974919484129870556982913021749974261278395169683210338330429567688590238215295827510524090665134259048189106862640079462300474696851143134797575480096652265324258952765246432942113846766341694882936838187341161169468269947477243680391228805582126928593596490233749729368668273235561664371378183846316391236096572524791994269121627751400118454917351832189629817649351099353634934104615188468040717365214235275869706591382433464160736898603053611500571837581842888930052741144324214284853701377921801060303806453725288102780680382104229705531776180932709939601831247116079122691046649891394518043614017692143622091284812601738963201624681111039327406610491110665628260386160714253813486004768461716564230923148869645941473026266657205947762197138354384751914337589528706353885850280429090052901520776224452802445000497320459518249246176995753689882294536795629039170470744768222146457144846021222540656657016167147247668021182216168540569008177717166946908995228882151133910775080218624078355531600682265876893757118050626528659554559385907337440707389713479114888585407773133485460221685087314864477117253376696898066193138094239018119188075568662356534280212008539395871371849561929573754824622199851806391739085256305626552969388622055438632630210844342336125937265197094655092986388991960106196460364611092443836398800294979243137832569236004997934846762148220512581681231247291678471807708334706229632013409804544833167732832963219492693764091028669312296423962666053666169452107398408162573478490346670112625582317090295085008374844130972085315428618672774223581822785880700093663896057272121386798658147402812321018327310228102213815011941233847956339798803338220129099871221433705018670612052049279282617720301116967924743442378977121828029106030287454460294444654694496785943674494493844790215216298585235036458612014217677544531209626273250402226479089352727525674604612824417283546232838539191630090725649240307270713058740176261611629041876162032045859293993056772987709622454436081302630514795807651165823374611285075678234196740674496614123387112849721887701343553229170142793051480595175416653435333758485810062699042104016660992272334266553082464277272844021252604959902296089585966960669248019945075399232662463145591382737974424110882754042656121756259145113919317119524732209756027432461225060189953393339271674711498197641218121410434670565221138422663333026556379522039574944725877235504007577793923655317254842171311232436772559374487868316215304114948551426180228569234464233246007761060272366885705539908436625532947232825256991201935002172414255701889440162372444398674081649318193805319485827647436053449740541840602078506208038681279203758066581089911986625336372884160345505573024406110095643741440275611874164668565334351332468746465412439891256364384120064427096251484057764704755218218471511906579395953072315513019729239887805475827752273297932598568845310486178869642724223951577534733535204560328072464996202052125294151549230545082429936577620760467718268175267482292936542749386289546185655535790043373649917036044815383187860267819551304777480920000983697995392870455956490774661291864600720013990471630860060983973357755417749750896191488468783728028360395772447232531711873901191165814899188755288072257665036037966037996740514068707967760958251592945172638134735664954340692800400071577923192232305461535819332146564991541443238766626530140525900750758617981456560187518751017363878707534436255926840075750380008399913457630199465574134480366898008320960366297860270149940768988142923278553491729015733806433433733440259427754698874406487256188372968447466127802334425039942335659625074229941354542316945698376675717776456507408708528011926009543673700056544877838089889807737325956695875963722161760748005835665753946295291251679919521308527989584189470054301854621780259544772777000681609613068686763793731309600455523356409798044806907113937176536449757649223250678842547518587746480595528436015289496420496296347394188779269117384593546140234522932954081589136499064034732336373781381602472911450390678914697809382618028204075245334356902180940360388624676508827150849314970837934247617421840337064614278097148736229003610043773175988956633195986205534250397989226323524110366694578248734218287131577716969756840043409773769840234967436396386647042867307630144373144819532211490177103332295273112348358896835243966232435608345647737412157296833230437434287396779103611661946213583788274301574602774791245283219345473660391440616738355000131835804003016621264841411743485866573943039787859169661804588679818317275567847257104015964128483024401527727535588595723179404839865311841366098119216754347898290999347906856556802888243614422030855259413488134018453446376970561836692208137745203953637059671600789043161140397031026386180342022409693947058586236866088047860256998454779398827251582055184118903854634665632460808531037365999463333891510630043983890785868387494973744668261793376696956919227087380296330149784459246671825855800339619363094927063523072240689376656496113172400922567303773447319455571920749569396359988881577439441602077494656635563795979201500925657382949806843451672881179737666757533046770658897580637887075191136902476831894988598950361436623873670087952389246077104756925768706654660365662318707327437571015676512498667712609763087913041677708187042866486021135445247752608846725318020109683502522346896106720910848351790580279402960861907997431437183265753396202289823614640561106740537804380253078370023495750139306952402676492587808298156829835172391080548973958578560315625241173576477704344675364771372043775375302865199546438958662359225908202295483736924193833316264720468455051954638200221717973339007778206130839720318181538982411094999130448287998300724856923981659051291100459441569219094773127831647497547326929873860239956577862562912917822363092681186287992193137278473278637302428311038332764832771843912327890871245188361538395173164694690059862072349330225145432537844438511038239678625497418049080952706878808548467287247268663301079778328414492099179713796130378530610206758836360738455085552031440659614481252430328610492438870077342004939298686987744327716341820673357777782716941917355676458698946722006157667464378733720128836749337284685301100524717532954588773424823499652397266340385023073363871157504957993839276464148395382503473001445904403108418339216662823932947948792011008066344329245975844816763808635895175812502949432754353213388073629266291312617172446872514180509731150039947403375038652001511855838245130426411084932732872692422695638645421142974643353116203672510443308904737890629839558895088452817499024185005230088352156172615015028317847152497837949289777778877091722102581493017828960591504888416595861624904307325117918416711910413413708631209203359060272548551784726172495372905158164069778090400126434231350004863376273260373296001191521654905200188840537759490854030362560121084336994306141179386879055952755870823412357642186119188544378184199163697004686252313051668535284104738926344289074531015845011893953199702947743702696994627304492401690163972401006142401107072818035361434692293402292469059114384152555036491624886113929297671639412754420383691036735105684435361393624773559691678797543852385614058644952520714322545076826001734959048504827812389869428995801274309816569756996471265805559812116162783908321388704514161707104615197318636767636568594328505669517177041959952348322397283495739629169256509603844351588022827807796149607519107986508723027258411699095550328341607956040876621046388926838154295136310124258156772010236851479370339190635150318184840150944857762253031869593283429024108018883645276607397780435870148850845412781366039392114794126573616372373971961140619534768302713722906031475936306590413672447143203992031811470948796016585815950345257852263369275787594764768440845098402343063808366284381522034567573898258594673580045229800758403946244443835641476503609277100909913161034289799854072673628435286008999854735053502001679791790047760229706616337021380613619696342914524449109841649621374466913248071986272281704551710524075288782959539562962388758656035969734597518885917081897425012763452900905074779279205215581692007402463804326514535081296339213909870163422428645034741094486896000278154414808870352666537055091389553534888696894915643056988389949910221157877915838484082063486970072321143788268229654220191338547579565139475239966740367976155601087676378540276784503718694530699952861123338729516519210814629779429846743103821934910013318165150831393032020314374568181346413017356139492920034564400877678676220559129213398464376036312400813519546233708539693982755788972413223985937618936600854314018026873766874148154755367532110669082720087633155984546741405046406052153095148258814674066979326671262606312360421117328863073522596519301107518876990247277637395935163965698561169673152742437518462951882790331802277642996607584953350222674326889690439073402118942544152770599253513642282972310371945937970583271438350062577212476777580046092082779914576686397470252119020308341125524188065675297874714379724595135587335284168511506442635424594205108460827084607747282089229382475686397456909740770547779049551757214004427748991160435215610369222573991579542645113273771621004446807614235332281529120026077685826677751408564896388883389035653721281296651515831763607076129510287418146623626230248773255778142076558678584411196873341478271358678188118488970978387953704055826899259582072802253692038042848431813623646902144963710079188598021563499430042677459322273484468532718131716498107188527151870329702055642915341607419739053605417577902630232597166583186400271950981006504227857645703152317823565186383122199266376978385972454142769932721454808451730484566251336859633754831925348735483173641359120241940497783315850782420231185655421085074577558642076035878591170488041170386754792084431680278093220022807621724119219578299106039444922697433973525529865476375577832290386903733258017438401296960948741360639610688278587957055791705653493743074736943468117717077186905006844594438189342643731277182714923396651936326940907251225230140043269280000880254064575890091392176273864703130562469792622433769456791298860490499081737126748042585110577880131826281389508297687357853536287019262555699121945116043532255020549769144584007860604198969372862599334885661888256198528020184003439268436568658079275752009280444933294799674496317027252231520425324096969672359602052416524338592235999102054823812029537763363927372246901859423552263843743329438380037143213900557293702761749804233092916770436609054620570571821462087702097540321418848107276603534287630800484874332265320231404726722414018107449759375917785447706102330262395931347590581998812873630590742790486413106012938741779378144557945141789041073939926936586533087127817959843381456404217019001404580793200969247404686471911540123467918810916020187841845333225910893387499353582836521335688730298008388872018383624336441693134263417048948403760464555002952498565713755290120569497670740012667008187873514936143414557021210016290996040791121468372511045675580083349983816086996379444624364953730114777535377587128442518252326683674873440852656828441565417656191481011666711929974496187099936077844703410936649633388661506236535822552588874221469457994304115858131645078629508185607836199181622206324920280314303972015120130309072008777958262579505641036092562874009661535532136953244103335006084790555774735812248237589029047924548024161587166724787521149932300009520711181596474225106599134854576018039267374556845270362844377228346406805665216425419579542884559500029893571757077824179813917214413500302565997300689767473937403494369330123948080128353992054924231876034707976734869201878773941822857748050616260343211032715832547363049971511625587093782366908425466658905840586930385992611189087883682794907645300155408952425124181260587132100695369219485900876746493277964983976258078055732273593808817797319965618118730379274948996673106203925533719343015239743313210858615321528818424140248295457730066733724033581431652491584733017658691401772042319978922988597486576123889826862362603776543704265486328473418193070415394375630247580265198643283398503286256584027330794867145746041263041589447194990713412814085032717408767929936917356101553855927933136811849399881726675405010048575880624402155659603095144278425117831814146045480374118281256411937641369756368109354521618760879502752856915904553792163306895376176714161012468208743589430444312405611759038240115415666799589981502157413448377748398554773310702087698406501540001622105416188372240987761029772531838922822262114736566118449873683322925402030910677329855053155070109298731867019918294822791172504540721019345974786164613951472042749306175219996059664824231077151791159823650948506276118340676638413104060570907173410775042970989821979306784140281366494659748611736903397575614081290982067162823404847246039173594741663146948749700725873441285314319347046920243053033978520029125377513279034192149097975349791186378068206665949224498355929155747071499048350343958293486919078593851304333803621975536907316453251664866576484028897010760398835007746622955437906586265822186881389654251010242657982203490498235406024635820439482154038307484337784926525590756273342188283275090554026654584965962781223043856248079752622704600092186984193195272228523645600967667626395795482087743257088414333350214129509892866340527309703429659268574247062934757723585460306952443537761412581984716364031439878248046609767855488430185256751045213477903161858584286914044800970832199715551342950035696188464949304576063731892234688684830296566494113658402020105822523513816629047568476850252985464071541411935779554360411111952353203227360956198931496333593757864268494197813890866244589649463396943800439921403100416991294675303443916673246345298837408466040003474341819512447609078104173532365803654079271968055379453376505686826516615321751543379961528922052000525962153715784899939504437805247982965221009497017857632218139084669845388230219000554986102710504503660465763745512400876107327454019329078812918691137260544230812201758153410873417850275844115649255276545172400080074574153157820956671890150638498282515157964912936293351199069293624572084076160554271973038644338888301806735785024066895113343755940395973010320067598674441427527596434721792413782731844603266316982992525756222289778070863730483771136941259380778847060820946129131728944605363177312738317417274864831727760567045146013623127755998497510669894557284519036186466359033647477293962891828166395057749579540152584285411421208101960640189908399538706342296029733060452480529406493481551746299095866351824472261930504931829014334301518624607469564267330962326038750711339846445240597835787926884645392775518595159164647477010155693899921159527070311382826277400385406590085784024313698609299557160717996543309630909777784219333840582446132141158401781949371763960283824374296912223835840542378488960252468597359327040985418177153965705364178823136839320205809809160640305981040246932666420108195821161344153635224462062096788841793459485472422058384645952847537085191974439830176207979872422568004397559553456939366412432558742633564320176077440519385377600439963057317851130938944889501935230014263099680405855986717194770654000969175433363778655836022853442996065274333872797823945721958790707924622399264612421684361484629846277194734434170832551914674495422302566653733271051836417189745789550978681170821790956209354201285204808563624447267475355008852836434188963026955651609730671008156848713736791113801434855776312226035602577884178302020071924380210737648837358633536929009113354644620079902963709608983196399047337726799840692354722740233737828397921172882171082098307171255447804369054076903215098878380192501050384440909779163879941743996908210917871614985836319867535438600785498128466783081964181445387055155017682278913680027473798603539433954206551810131449618932630115219832893062103629561821712647375455065504493527249132603126277336703230734216977846600592658585721409398749505690354958353233083791592924419588466545151997934292169418289011107906710391062448034919068436514189494533805494994403330582468462577430087785437781017862662349571468560496774900335897960789523647963582116027529410409801888655339310632591723969127702986965755503530045579214184171857824829100719582309050075613432479040871104999699621676901845363208331361497004903101597197230475207509854764385697057869033040352699314201899180803852264868149408152126706936233809756210085858039831749941525290911772034520702531704325926977047387223192556391112379197579354873751758831319384310919851212965369311079513201766445698655257122049276710781155886984448239311005338308690321860702267935049243628756513526797640448949152003700067709224944868167393184793458407523865843174106773031012866312704209737049304084655037776284345028790764859423535156313652767834553617000219949578181287645804470074452994726381965388292666606602688280475464446120523531301769922237158928665922237367340365769366206336947973815385684837095898738857260631858482866390723246288861138007741202148799833962021228630721220164704452228163127498660059744298800828932993006403703814746380152846906985039576371350537143277122357819176248637231940749376685925698737998936894285930623915212916345209708656885543399014489044001886839332923966362200972721947975429773517542127712590175661483744551527722211697928102815190279663860233580466209095789140485886816935257776886344912637062374557400978829869221011110862104085635234855100921505083144250359065184606987791784933149254634967023152902827442334830497697244838517076495067679841182898574197997106365168580482644659522517752313551360603885166996884706446928654859850732525126982517410567332296757681042438245330214397000715577571795406774745599301522018072394955707265545192501229404974408317687471618348814618150674370361971499851244554878103632844656596741079597891193641862659388831624518975188305132373188623065711486903326366664157895455032158998488306025700593397006765194735757587574236966064384153929629916402645844522139366123903502240259303475212787738487315989459031153382084000429566613849921367112210977516231112105518541445007105316764139064065306222661809570915441041078310721036013501088008891370813015478058518920036512024656806309435672336612296534019499402838632469654602520236054880979867476799577693501549959622056704684520934571004313405516983985199009792290139032863836457791486081478290435628085900144747488452619001788658447282409851432708018296488900260457317210628096723220139639712883569068972563592100756014875945709525185414452358357030042176691874450676092033205240170474482678133145973386175972112361555144975361550384807422125227735314897997557441233372448678112287461731523485042621606195262006625865306943758283859315086106530839403310239701727696981375000947903597022499575088691132341157545423062991789943086150757837047121124558999022118077709288299873641541224943091279201339023104754437338191993240153710327015538006411598957174291940477438192439915025921789426159815161687423080490686720138759221096019399781776288018588496125290097387340606453312222038211463949524745301705320283356178922430123260293028154163594735706018159227735923856448700577869589086950633437035640523320922501290376180719857196287043821252895427854188394212414164508033201366533813141382805417785595488713885131481856460299708591013726010456703155476988954275762666605023679084559764793193537578936202768390792258929196746536473393904384153777027795647797461587749886884090537729852324182893988279882865524338117319251872725202889875201321157892381255865347778709820594165352502880663685587864986112951673156563904896546598538214645688983144903301444874261495472817302339383305157628803273822974368825443162597167508049062151187814146456219165936533954392805280372107457969324730762402155713350255315493484237583614615996322659294151914536244232487138925689425018929571927771665133430486284025633119097361321008439289008248066569859522876551884388475446146896061384740928416076458427476855095926166117253424224295636941952749794845653703858811931574747333430081842490250199618590120021840700050234859559930815650113031865712242040824459588314016137035163709449347930307497868680988120771479310195890899789531588621503687762225773822564066421728564600806040599394833863900173207426215825318143864398534538627456490677892051365303587001216781983885895731020529052021819522518496498462442035087158917552079641339879428792117064937231503003675296642396180397326020679722213962489869797385539765438286849165903188098876755861461491726770443064564789069600176290819632761547613132845815220360969598262905210441391471950246027421574894221538141897122692076982887794369020380428509677583891447449613550268676094434145908212826569457895384287193110659770957531414733853882799866281211403159167087901929591326482232928082554719147685447831578851644111089165266385236957615147412561295242684509113328111589944370195348040655439892003826278083988165635391884145999181933511386190236923003893905086460698721383372397675122146153651912990621462023896422143611441605199262645265607691106971631049693708799167938166277188386539196160413066895844068884195925769219810553480859796350574702430740741555927240483060859641155365073612817497737616924231069846993185698510052336000001111197918436904403802758510952414294512266071751500446307789818937782367420068739696060533469004480779199124485344556733157749260361104282201784204870381210281728950866807636159547580530001184649691990762502727348257938347355564101073154364029175187799057966801177108352901131262530617187455397457439546438042085585747169460653836321780626984461684992603258256349933062173138175488747773266928301922495952269025913221952110214462397788486500691551098718937533285163374561566472325830863969028981570940869305822317754249235410719726853098047405745710879839053185336259866940348114504437645966591893388294526711531777370080107081617937752501167343133036053287847815756698421644978064911082426244124963177559855338645021323437161864044207661620126019100093254653481584530038357578384430141555102707849066486959010449582662365301915229080436146598601453405639937531126641490480445630030739199679033074908028527708174753847208461301394429495634270539976050198613852275486540999181037868827330879645927262383015323299504001195904833201993196983140385259212567092490330948247873825033802264750581818858800260189518254999493233878949293618066002563998143599324453523184908584154032729357429990578251221718538008131569601111747373959560714369446497737507513199466850404097706475293061692215611124118355435351996854998342818943739268727761368128558186531509414589642856418948181190789282595558595951954698173987358555302498155550179897184606856506390001628229711802276320977991636700418893500886381836059610630091132481110098694231825290572197114222791183895220553971247116596602180800565651620370564528607151705747303580079452315791575700605330123289177300538990943478920248229161822359406682153989759996861647856601103878630392462355427725816536795718673893447968959305158179947410348387715802780689444323125721056920710107214915520788894527043788835344953669046306388110010859002736374647714614888747426107820459083042722183834742211162263745355546367334207753824967451311860179418466128094196361132806194406159482089129395374967862446722989718134247966612534654996622543168851411814591570281790762092204273678261396183699196128124160186228952129407192882064792547385935828422983350358087191608394264851192915925904753766458211028222793978407326148468302351007749449629001854602864334754480257200993641631150533127365255443297495252052988652738116249087928481447150960698887696791177722696204922027150433900609086653191799274011370301473497352691289566755926893806288547485262604337412956217075756644822774295948663777710710908732627449166955374057954061674604697263169004045969011467889335734489139224375088648404621196982082689655643294162298788707342795936806164255052971319608016820378340893066307438179584669386707446816568189938419779281561728360139101900956246381652719070192406408407865507610769723351776077655761845847199210781909665107585263692800623579285020590217510804674716746658050208829825251095794436849797588804277058021969165497716757152941923934294710398018176405632653282388058058493031485312213709382200943625256103433903731914629760673445844780033266429239075249843606415788101846726017890826681464953553765147058717984361865937454813598487442262068539554151026939873258646110124028696327205904042410471574564915176900386905261195166306357373798082382499963220653263496597595484635397586669251486997272000231885069584599074315658954632274063483584382562540312079730193375034322064103964118065505806071523956297124911473630270432516996463510036809660303191295119090336762252056795765657758276376011949606762604653689372264682149632628026753160884834868745374239373319113423445769700998047973312039132339993568548705082054428969408541591975330047729546745763194229900176928481635929191315559957724937729017992328457268661897413866052953568126458346467359348822911407117524242076678203767008091828247083918096566415741285313001958445348399188650826421162733378623390579636434817672764314221505454633559389278207044592552406004564977629008676444650553926384871324970910857647052206701541409516783494446047218783498668437644556045071143997198593085273933365167634913376402801795210363386222194440757205354463170108304813055569604065542655618149448115822769630129268889843345202055804113499152635061086321191526304879746597872968099994654274622637754160997477647195779962582340455140599143368339174009187279919589303870238475129474196563284094036973222099841215646361175310384931143632961244182441773139181763642355818262931590603540381384653938961816399377037808095158875324153693003416800975415063574997714246901134124495616859322420400988283091985552162131939840808744106339410424635376272053410928631550849206097598388508430730894284555673136817207503639502408500015541918999097869724696359122806994494560274742008389008913226388196830503786253456147837483830819014222483221469886838771121332705515261680928375793772445197448879684407879331229372028975924638111328249867374878285156502376686098522203150750649151884201663595547989164304811266118778899695160496186418832444571648939993086564347058134129663143662085597238961276155404302224747894599652410686190215078171800551973228157910924974496616545339163352834846966465352565670871918859495227568072871678769497139149916574220974372031055371314867110724548183171460661984966403710900919626047536449996495622544037232848186470718165449922764202577598568778031371216977676687921066022690596465447616854835681121380443711344247692523120157441097078474007629861202135947303714525531392437759156778256239604687972834299367170197486744459284390025152555549895096996362326712980231785036388582702604338490077817364213633526484385527098989109997228152438825959363420098347174884041376442572880185730269035664644945596549203412372961704582617191024206774840627086394869143947085227328472798223381087495798688137923281318781517302965830134972253429240038415357415362644472184661754113542239011047579076868733414126636019690737147378874034424842270747843310981157087874409184397776005668881430184421236754932312478119932236156130571041199435630656693777309116124474486808128520806433287035686537885385952731907715572992351059257140466524643499293552264709948303270624047267763727729810597316668494114436616865129457414246422444174512382119000650621306688680675521465127847368212951616745055430209456154565385425653327174684489922333349478567795867600902712098758814444637720327772719712532928979756556633294991856465924944640346148026886911110689270520636507745548561935261963956366517701684764373655557364720909140614003125513314929935270095895109564334829017860462715697135317140849283635242627370819588248926754274062651582837512962982996210493031788096332443787672737458202210283728333431329863946009472550474529373387138351361746624438922130842507868021597819412678125964651686222452956731045420314690753323281469916108401249295343298182545307266877409432005750458145961668398461191935318695491889218453494130990829037840718713789861521815200085871280170350175775057758261958628898170017182198723535837944787586342242063127507845247762518748844183232018412661675817209887957063568071051246615109486857490582726890427931301633066117230238822036457419590671880069901892041617715126704981821482592178286542487147785292926117935434445819336507630054113618729122286342072207223100310928140070482493838015050705564578821494610665105323063707297444824916581145758784961304505351101892714493083851084924495838583758367383609939425587262905484513806670587442657929240241137829783423459645207220993164434069528020271183087452544202812807655803763875954739235838397673285409493289741344963406499982491901124880265352734025971852485797696368739927192973162848240094581446155668121651570482927535216829740609530069897288586411357813940313748293421411005213122791327605180785984555219740161501353699057886722518407799861270903889308768840484011207727668602119003042308893493972724944105562011011010863686824377404243893238486189588583064993370451541783267561445970985413033136729927660285834335529446679304249132159972124313181000486658850226161970548100635242993808101616679086528010212701603557714649731857422147428932467011466749812774548747780804875209357470371136614427852517431305225751483562559584459979604385406456048229705751496142657714104048647389555909479090326664386361279290153366868878507513144556024835889325986677452350354826157015934362859634759435570580151127879038043691414950033247367461587538297069499649764011166404660191279832522896431316942398070425941070329111024645470164480855731015613284648876887323996982730443648676313226217333376440358197706234584924224829696623087014175357515335511046092699535186095199412009675435089015904183896122039843103789563533990134935110273994671536374939206008919604343491385239422506948018160246282033399931964296317092244291960519100297338638913924745498960064925740894615584452986390506564988220540679022876468480407219033307466049499653862566905037788574899097327420433396154450167428851506487584430527813100509326968238109497673570224604989303089115754827081218769859153056340509397955878108770722340043172536671650703584642341766132336436699016103413385088790769780974060662659698745854855533155366069689173581958891022571878800163771721111950327999481909174724636394187485108520418121476115026456948802796480460249308840979772162984424690851483292864505085573938855834486204666651115460297513950923200652432894202933734188092713841855476694984973286136822784064141579050563130756894149165997133196044670416010284999024903941424344383788236911312350696811463839509081491232357956419237666537551748947242518927783855315599830099829982757759429112478177042812770801255706286521578759538752596541880753632775126891451595379573082633371060604532032737385460687352228372159923287811782171375481736422685824870250297997604725712978842384999104051957361092910931515212937308300149428013450743472624311923310679466126421705550520793566531107978633854308375856493164792562267495492699074377547903285255011836639892676227548633185838029273768288897277770566332237124889961515026981023296220698811685725257215393840096352886361624637038592545710908761662451693532055767350907097103760905731519733376941018699214801367690491088332087379249775061873782633196985592867868515622733777661541324490326140429426353210274884919639423785838920558798529270143524822233410116733436343759586372571749936686287570587209800123766422733909473281453373176380723616139427850863088239806029865208372808760163043626075973721918700193480991553436942861629907172576219897198397289281774368433048238506108714292838149373109825029317025253104258543209536100692380837340211185757899036716549844307926765546065607015711172909176875163620158269813154056992556677831797233004276826079169982127504590597260059658754887153436776713430496140846062362519589471609801755326526147393531508558122361821680860559167149922112422039353480645864000187484735489074777263879030348780072569994807471653606737900413562855424887449306956096538053925158824636050048849298379208753549001689953369664795865349744552364851172014806130177548765471742139254949665679111452234657452339425876234225890456908672680750042072693800074186101898829195483802986925324099821378249692628715400647313069440000432698895484101378802589533584476965830894758208904598160016344798430400494880217941623549843240942978118984190179556067180259275769848024862731864771723632901244944813898090530502406736700992790327802279559971451415670274816228975861872613054193052740947538923779123690112629944238297026906549161906266239542205571669963672455571701403713610699893183673810934402021311668095689267885412205284153650139792949795230746698053059545993259528529327768265712292382628549836200542216158051350527590850631407386432608912117345592851092253733302514024853673050542081436872642560683097315219021943670402563934815064532233342295239999731084014769379558711808718786706499025597434499586219323064105686311962645346203921784161256933896144664285662533292816053711833516936957131134131489309356576777441523377057860268671191734710186872923733288914171709130026768941561022908551106295069369411303797692727774936579092984262328338599571799310131853497353741762051537927685517373342482787461672890900873608153081776260976586396853016497888625724803717239093793626506205390349368520644993754666252992483043987792050843250681905152627543730679379151959763575184110523486229381361487525716149831061238359758795496337075141708694406403765456497717001095977380819522002260498207379732595418934177022331983043464952877233101113541850251900226677900762606825983157468168561691547622031719762685868063863095804161879080964886065708690827295409760752979523138415951631986803654850990472958901506471702870219656376353051149761867791976334864379605647113444118942038631606819135955128471103527550672787272484080988070081720698894183995969236343000849466511642126748779986522396496602984599095822080493717262143533431460968697547054009392435979739074109360531525316417104824444951555024166807415603333346336651910766601786013777867565625082317205577174073317447846344687064408258520047625297079170410798158649311167143307810828655011435367443824028800719469084143831425741326792120275833741539066980866693443592706045491586938127780858720570462091778045245340306452987286208289895382611784212824374052095263702166900376393625161483893805070182846265729398840777529111070823711328343515941839046179497757323710495863832012603920516599098549995612487729151049919618679062711516235707514129927655137976826557468964041356841344984848517597715302251451913965567798458228210169113432145834483384568559181221568741545643733632346870230931311527678140180084679732443815028702994580010920584543159661581428895730379382359253558193267821298630132738905500124163398547311129063457371292581985512055207631924541574008683791230081091637704766507324844932946284768687091004601503194546677255278425102191858025962313377733625342833746440812772569465730728064335099531606387931390092371939446171403947504621099980639345446932079229780727952518846627052986734145344024491492068376901107653821667928379066281901811821763916264880685835223554204165040436722024751801246419337427023007536964527671497881303332380795911836348627757553216358808626169074406415665844299650606824861329762573423933709089231146073622103878041908844839410155058746197445708701099162998955890772707783823108486664190119721778955773737044861750911571902131504298225587800831432350660718276374800905634662326553155987815332941503904990138935266814411862405682310378213174090832079009066389322316667981655485410489302891222241041051310768336002008351395155772851151789323520817965525434367565148126667313681019792248661665893905405556215594948418762355404511223871123572178926236024634220608489547520971513217347427462778665374853407838021624153620370278577882974338796801849680469963709001580312508537048220213721131727999261016792338691287326323558232241668898094291360165182129226085134047641105834865047843028682600953733678579219871467087841597833838229017854994168585830336770783541951715148574763521881946276817005235237248258308775178709635323354404766639999112830484376454344651042570422254950184010626268106839950437878306442669398123159578855883442068979064036886460582161198926288694984435900796128517338199274420413977849787115562709937333398075809383278655788182912974641617838306879598925639599443607471110237002251535523805261057536725381900611941829524730388681020640249138969734829196490887606393377928104677799225500765177716957818300318853947042463825953163467242928420194135206380678191143908068248925700336147113043412741566628227639362223543177517199508013255999883914122192701394151699670699238683648583940239066993954390940583661429076292655869580369267661851771788839066382743452334579982732547159813287598327814369629020058066033829085216908123260547930559259028545856685556651278574963098971717422247667805583289917024338026751386717652374189460911929562144613120825036151888199270004674017077786822737924484027923932663103426152233156698303192688186309400105016632466734984261214604315483070042817099133531285550656730880542224485378091931354282973626469802875474815201961446646208312644123300713671816276791958598870344456548007243424124168607653796466449058057793972926126475288217029528407619254224636882720832325535724488138061527799979989389591896511230191867761747066841413021046641280660553223194927316569840664100634004242011956126947703128906019970743662082967034300711460779878882691595300944048480493742346887303569319752329361779949285111767764089501319697265228461219400616506902058626811164298339727000104083001926754697712988352100145327350036116563239353209708577768382187497181452467557744992233925015026743474045866104037378908675020706944788667570398856122963627401877750483717264665745882509638524489962789692030768493641894686106995623843524054069492614720511293779289132733686318606217307091073383643634921242205663493178666439230736488352370951564943474616359671716527276143504428118831581070475781848180107882078299516511716890974514171133051488051415443057017782575403959929953535119919053521542223750058297107699484640992335767567298145902716551310905457394483775122454276760586095556154471047194688547937381914420888250531270565499188649914485479717318356399742456715321451778681812763902859638672380053826146533302423455673891119238494538606226378304866895747219843213534957453594516194096905093534032515706205549963695017693047203659655983030656292538665128066054315109958655948433755510652188400574462683881671770856849193945350943027340662813989653680668412757736918902354443302120966853595358976662486190832840246422439385514617054315296332550892849534525430238832058676282245617407220830687132483022490221920667354833773003291572631070046454190101970927502375868542011055067560094803855060954239947735137813539472563499885090414823993952917631874642714793088810961665260634518415565457519768947912525327802966787030745984696198168895219369050930686554722846920170807955370594169944255973974358811392434321397749765206549301413432686462353152869063884505345629972939132076634100734139591756749665793306790320776973642254132508899221361574947036691619228905703049011545620543345322256964761993844877810603336333517058591431788737960926681522087120152201695962356791270606666553253828863211895469368420948893938192156808611120307798565435557988756324752174155109299730579905051852914597547637134734976366963439103363694721150646927107512456473388765355677336991131439115907802990545991335458231454601295655319462274414200157537511267859284761631852399346036052741767699743974974317188309461269885268748355492422401080460017349398236415015325170334861850603794038732419277649115844213150267767304690663559371829913253251307172060259257186602807460236605568643834020822980034031536020956230641921178086624235652762629161704041659611708380652331110444990262036695461388882716797493598549426485860064398274146331053474070053383497980992864081360460602238740128418831351228839590419175035648351769866928420556566421361389105756893414533718159922509514758340630710918070998991513470435294273358321547313107898538137414948438155837216710753244353755750070237802654335427876253398417980262762808591513783654286865552130498877846304605067380059635418612285952737994500902683075872038046692421965106683889977701434418186971508594699219772910435566869662479589411614273256534819079777379029966566299729747409172991549667792360059244369578057040841488697995632441149026418820084704129367897479386242895361742720659231583674899903614389050207509628607880793971802481826502646472984508508306646263183995440604860392940696871458803030744839772960483754966065405473040123840404203188793503310591492368709547480477436041323331016576298575557173149834903998296474535390259088851796991339374433145748884826281984558333971917883447705155994344817789940966076345616572937713522247988885392033875731521788898863028785067788920423679015016806234348354558868221587335783902037528178447695745373652747743179911163957090099407870508196433972421463005768363049313160122458526561019975703060312211367051321762225969720875950881184647418037202947904854464391355904547503126545605018737707550509152070701449422073969910956374345163962094034573671260253777609854792666488120011775141683217038429997266689188138401628106987195189982007619428107457908426898627150871191131402622616699871925378509862861160221698921843004891208969030358801049876229982756947183840416229165055113369098134408242371560928270080180032054786283506272204725825489373768345691091580170615497412349688349524982846157898827394700046240108862664931301592940172862912881320728825431153536681509216525149170198303386180248444294882633066519183624967826073959581636600144878043251567439044182227376592076916810613041815059322262669431893969744261727577190648151812704512538871028212387147433039311270809763267424419981938919009187350379333256602802005346965861554371841712371534903042072515394978159044594653181325749580846779347606324291172418945815233176689208924093131313751817475484770094906778634209393889986440817699004815558394919973643264334002730656494865432380726140332604291856375799074008558148416886876390608628596423072880902346104967938225793065846524998685904176265762360968811986698798414280973046927228339059747623177019440948638342453310578386878166549063135496232697920456165746020262936724644686728456539550323681978352186676859044636674490701738880495735654099083595821764491839174700736926519159716129413881077790811070113817063101831315816379363603960728865253012453970199434269621413921789759439688894777556711615058941670538482409744643325408796279906023678070535596547589278101637174046607969583130781848522344673612798356310083577897044459640712068540054038342015225147299003291853507937558832593998986048192927742009366360911176907933447733652061666971041572479298090136055112921225807354511713085951761900844438870969081149151217660022520430621959937872549731604731707661202538044387521214748681099420549250377663741985962553783939596569422705941146176600428579948576940952109337491394552577820380815174067876097407052364642250116967843979139647217087022356434510520375004457808089631115018077792913204875516638590777433262510200170262561625975081458175098415927317949475439386064982790411029227894052301188742130282259296638643983566581415854586522862273988107366339826100024084524775354707616608625677678704404781581338244816541636815456127330017967719785924796757196572544694005932449425461725915622826708208785172760303896277076669518709436907230221037579285242199846161285808533683407400343017958661818233442511722840050448148709721512526251508345540927717915426871048334219251482043013216892223621169412304808795501065849718250981419249518187100909142463360683922972505133697794900381805529203412336816984927027746711141718533923477797633834069281442840172709229063840422510490743737230030190297815967896153204817254957668746370752235163497841381601499849939164353780668136489170384605989562070693952942384216652233616898910994226096903381127206147544808449828110722173931777973420662658941011393481681274727196469734719722544000165180660088855860352170461388421984433640674984490802005453727478733513360297801411540883846288948050784757795821665743523915585102755688470896922156794808936199300786122136567369177906390424170803640305766203883184370322168151297386699706997141423711624806138080797435402919529011824527045081096640914899557556875568874349264092198374952629739198566874118515440341751953214978988479328795355384293437662535036248575932753470368046539092205430727872068011455408545168548155913524425419283613813397742643351018273472337241045175003995851605700489588506666002246757495470802623593223457713277901472456239520064754959515263572082101749492408520327315152459708187970069570339560251779367762873880654258094224699402983286389555849581221018111314237525311927314130288809949220033150552758435747083051803708838112783161538918908014658379555000548501523204362226270130823494713978285942044021844725583033462721503401644039720564072965858681056492940339760724203992160402269969061713625567051864478397177329299687272264722060244325370585225991001351009258100034421151600132903302734895226988454046404730322702652356587678351590710370843519546450288515887287753343465646687532605641709588361069502737007641535847918379059409357962990811934772370497524465096746309533051955680973514461132579770229138225004122399127134795759603671406088929491601881852800226301061695634021509693729088108846117789082211610089934196184643838585629254291872024653360992315638182406192631747924477252131901221108678389546406422785518684593749176755971668764437687483243701423420545137968047182466211857266199527615731481950920326707423078273912139922151083915426476540810581478576567702464264582035363065809033688567835882174873773021488358313949179394170234206912377294421829163387188564648475149509193250022562629339500352130943182582906226019896965387749462721399745138102643569525836320564126573972793252284615712216466593444849566754528990002280912734055369596879152259605324001147972883338067749101146834278605897606178871709372767644314274144483160513280182059441731214449304635985764906620634329495095493123050242249187253676302528771575972364831831036878777043243340690727262359527278168475617059038083069722816131730293366918244196074946351148828878792117932149313508848800913691509008910384190002544030416601783554637404433393672814812959231409845783860447079482834360968906632138680367550849702022677518030466931654537916968870865293829519184503238875235386373730503775595744118020718588915348050589484789825681949213894009353615028003658041729103189290554648773444199430531795316645075488591546134650673522334367811594298024456593461282755197342413088314576879983015197538253495001195406960931834374326412666546520874467033019773350778087691865983941995218443213708704803368154394167511064166205702057568146366467133576624262348291321789409426425866849723432911122395620884343854845408817786710870374629238923287611995583376162293979734285161231512330673064373312233520038158001618875631382314254933563470387257419497728856105115900564581171547891065067120972720177866979614185977777371807181517948062760162574499288973462657296279250088408591532528055937346564983928968664635569997191691957533715750106829262034420623235251266116338115331476917663779589180889926873879963932900365570827252465107811935420660136920305606863623618549685163342568066397557803679054030283253584379334523123036606887717365613698950164460349874074827730757062965931903149050654860127714090992799932147312866717065496294051404379868724704651528767786893306148531355013973074425563359908137598609819511201497955196838593687200138092196083362487348972755603021249407917780837707712810201855711327417736882573543288449202059622635562179985257102538390271472050618327031571348648137905627410375789697952766778605591473051189271993825531872299401572803154446336810915208785887012350546595226316499345108084452150979607923502527850143126826829471550523206564738798670233575528661361111357683003897482468908151921093548625861961848892933670927010856430930031013142945333659896184363699033390773245170676153655174732666151650715212499259060337044026155933773765214470680584136034703197689662866899970075416272907312216877517286268867941823368248088596740769023424558793565165118455014106154624017916491436022168390890622570955178600718829973689084273491941857340617753105653594695908239825717148164509655777057834839698321526318792313164477060619181280669914379906514771362498244821421971452879835266057051096168736713704914829321057338961258329243467223115252498603344947875104008484874618036353117343874595516412738058795657692249456705459804120105087132031604083236814381607808813934454900013920190694591702264983916597592537173882408557771562335494755139752737668654626433069591790868363250575974604775614434913220237024478341795866786584511682648444509157842003987361073132039229629468027886864849476397931405007890613725912524171515190801804853895784661521832717575147406501479471282020316067624211169561397408230211532680324670580156871250385386918248449207804798573462832964030741197876790499220319084139610389724779591046729447263934994130547346426893448736445403523776278439624630674070226802006453683714957155947001232962374425772493123591005549998587982668761299886085489489064271652069545542596267409705951562931328336580256934456159541358829097548630825045412178064149751027188225449488287317549833001676890512104449611084708162080242542976129591347073157801082920640130017372277366629664234951974922607870582862367161649666711088575643435702781503458060238863486287529591910213667038653981799714191447626083489705992919754763351529989914675046766434670802914908935328084990929837870063254589316474821866337355778818360285401475882257286529343567287458829582217288452540421324180460605397644439844258052619520326645767840764580640540363995741289861147937787838611032962979488262774398018202699267099844564382492625555097697568855903199821584748963147264552924964051437527591786911190448979057339378415076794132227989077686673467222703796596971085734930389533868678046164242599577535107434441645075253169626717098758975424889437844919043581881444944747704997010250546859580351526501783065302066199151868211529809483069716934751306111299055825794369090921095243312170713472493775343083053973602426623045304848467917038431286231493504590119453446299800427285071886402662869689561668405582027322403598978081357546032500183013203576928400350330464808486334269626796194919255368982686693192468530910465017902562191656928962925404668196860859641581326620266480856532252949075263882366726650136410634717367143002060174587285585444373403982882432543817788877302108716499816415951232910155561343588097718716450946328278926852937786466489277975246065464301327707362166444399341226994376758234279494633518407700643876445338193561721310003002318436141455333854528780167591774116402865583410940098819621272577874862008342001635525520296363909319107566002482187325951139845172956846965744350557742671683227247033299472787380678221438437654846444002772755764083436538320314045522458110359733594340658454811908786343273670302289246295310033090221233911837157151750062761185320905134665458691175145055138673828520889315719550845352601322856207527808842912195865295649238587606985120143239215844208850200950679113033368733353500462077412881829432117344056119378036375953756329541240103572595096059782943113513080709171667615188266125020944057598471550170527660439757451738837625558407338901987073811351889781561663610956530252631510472777780138894505677777257222957768959757817506493130696930416162091977716883047538785343876048125304078212316022941523801379623863334538412172055776113431222233808233551371176609328938524084885427065919784337120414866709312208608400234877755968460651172962853594710953509318022749173290144820049597517395075814702876357813035472343469551541201038971323655443275525750863354692786000991869617730694021921146531103301165303343685981900755680236197671144840034716979551412377357304334603915351180048389857961195306909404135129192942412070539168040638202952397368029046942933458799449785662692888398617628294879884748982425015528770985957403551767192069209399002273498893006271197917019943169651155337998545611562773683698183178327774579834315555204613526426191786775553591407400590113076352243699552062128315763159138561663910797556700441136907825040860385592114686079381718645150870707774663693075471630761572129487055632427316275877578897611133435191267805001042523688599683064405140560317510098498588187899620819644013744930028871836269890000606188098098490419522939322858128581550788347933739742632932623749397332231383707893112316312924670713379097653491130773254725852836073538933025446188102707896051550532559706163053278605489239989158374056584639790072908731676845269083650478282751100761427687088262640175410725100596153892904804118018134788900753954313773059496368838872842542031946881344618884247570016110151737216137304229026961896330378568971641628499885361726719081778261982534003558595535326638392763779446917848008717629002194604752488307075355588662722589740100666178198179174307080008823460086223884366795085055720836637196207540500029023806658007704993990988769376641371747133662396796387750412838310105636378310385128851909850251862404406743580952644801267148040489461991248736584060351045348298166350393312652384113307144237072173503432431881074955833489455466774262986752513423807920809211689377582426220312749519222414738891645389298310926092892738302563882140520376440802245452187302045081751262026302676493070878547870224792260152829566938271859119444715721393670814623420242507381891598645013257038084611763980013451842737061907106992121681621478857619146659945747942784621589147756096872710374738468656500479042151770834258473553511437045779617037839070639708122553948443711241688193757074445168072567321312291601563138170888140283607638214263226309208207829854107862663365616516575418725823346500724686839411000619464967757252742028953279236259822033824546374706855872413868195605585396631154670341342937619358402304696933308377367432339359783819685044137302590840049104604583496414903267791581127746715365871435813723526076838637561700572641736425782050523009315273455615806754150755482466806511912797985917635636032258126412556884188547873615654572546638037136296273975115847368706991351862103233009739020210651071788485396747866484239183705436792662640048070348704052277194096949244236709892528485084425636817676469260881322532550649343695971167255144988307361022281213404725756204045462141555687294171410626641038226546415517902047591400573059700173473101052138781936435751942072473243266122515781766668069123476410387071697676371716880805914626804586604322274257140798291693558604140880715180055115859482175999942195628261841133306983219846629656388689472038934411517941501655150231516800523544835368105601845036065451166485670571234736568519474176807012846520565012579560320353683516898358159036324539752985264829635492734490183980099550655101620105456922379781267842878240000799638480576361809888041250715096387429729962719710715027123487068037449491403835188714502695610324908008791673108697047778487513937629677176719531856108182090581196658733045868234398955447042930879051050891969248009883518231816341880943983855068965894217892305879648409702787892228496368674529360408884857570551974819138951737961370245907153991869896190328478583483737402994285297914285483547805972359769883765245134159265211455756799493277601394314013118127352531254194765603114654229803568031374075232723255235230164181665627267535377011788246861372532982977649164675313339486229675969081959317729918372218990499878398689053472440490142361430762230981095841631300545002573174805389521964568640312900583287993173298445081312917013643959461916498636586689191586175495471720927983230433726642496289334122060909287607812738021541167502991587402440659670660769693921583965713362050421743981752011968215099693165371513993451543829736122471638017907620268735931485568396250245603517999804624475621465153653890195503413495386513504508965096174501663580128833936178047880327243085727321023693624387015441087100000632862310306328994248681422065984209157740040274382554799001921366637783087410581669234373901071109988356612190415628097054069005469912307977740556348680189100352210295531032408207046156887437631048904851505531639996607639921969266017864547763824000169944642821763541578144413841360375529210357378505483117228181284179945131739489355890980352728446449166559922686895415428046868770129939673124249053695796674603133788028906970365039838834184208689356858514929352092648572265645177057920125779105918879702582270121477156078706826065672870898759777774086391866785796684268895304998054742357448228090740480407909348219786832856229947373317168306338393806169454104453576228121644427575456668587498339623541416313193081057253936192344399123281012555515663529200446895112485540562278728635842604424601160999561086106196813666112772045432457333437476766974664665101452805715016197917313302572575887867565924882003471697933288756424650493360611365360562321530174983180864245958288812993332429532776660078719599287307026113623831290654440202913481991923320292198923291660531694149532502407502028979632642287925430846746337361678836771136226577948461050717124710302225296597246700642231778388676805814768226283137035653188400510379303623628591190493855359044081940484631838214855110542612397485622970479762876242386754719140591702977227523434537753439889859633300638647974041640496386961641516976995225341446131577965581046928850457879754304681286770424142838661440654487105552234034294790026426009346875551331303596882404512765929642339797199442840353319493047175041232320352113805271984865098661205083459099749377045387847427515339283403257898656265454957555516316684125968925048609627734977457487186739169887235420257747422238514266446607200457134544888405239283797110957137906221461292247846531276884718482737425160322499435469517776499365088651999818628322793289784759703407437210219851305031877543918547032927852174252406542277404275694108080385268851582105124433908132270418122099526002115118804842839058735705607506045021275611570298200947642691051780000139060353784901908580074213294099902187739926129172533252452546220687614608766654103027365513079626722592103120049968924328455311137628835513867648940199572465472880565657206781458859998821179590703101838664603417139904929732414436288691170936320049100685108953993215508171693026706203642311628006665984365858042869396104757978417418079911599192327789227417134009955887885006420144765558472029972285055443012739714682329528193337579531477577920932600364418824589430618885394351852222904220488209404765044715910841574056736407760531082826182132318820778902802063415076836757777600087650121717164015282968677697354541972363465333877649547223253057490894429131783880045789380984867784148864466069236048867958344637957221435528614596899922577109833889824250885147392072094026339893851817340254349217626998099661610719722625803915787919070451968500099923357684728474164155705003114877258117880020572922115333111665840304831357741153336403361229796130066955337032805346851404799951438456458672115248604575571211980452944621902509825842931590066299313512966745811628533192357461547597791947548975778397265361762822263020382560696474685142673305764093205136486611555809717760648519058039337833423624567037182891686922083796799804891303641918837949903157667601171756203446660834071321245596744053299450646116808302255245376786304356288709939657021602638261510125282786734355333419407550494672358046724602665881377950408524943766768367870381150806424176660140051122769123069736636263871516391552975206872648374363779866631383399219523291161232093792179104348043272145443558015520728549872507785175966205901891510894985704583713985511013208946712397432668074909365666157519978337665878230766472111481222414322684343218439824765517344417668580182233200560862225820063509644488379871256305216008506625257920151406413214661027883954444899019949208058101752515704404705974429450900840595590522016770711622255511937299893712574004281899743857649069147241515301471586604747364316778268404194825528335267085550916400292809661797933830479096809990931279221427112331657020027484016908102647099610443637689167512807716593113679385461687326983096320101250048225076017785576013417114650774506966619759764152483495565822180936269280804590515195363347652124062295456312932536513089122133226652856419525400410952870537923466431029380710193172468476034698593861799306549382073179381076413149356121596729778617502440674061450040447876371661417113972111174869407961044920806766847891420314650535943071961845245266224460876075290847671319150452203066373721441230653116068764178229276321023406793471640884226131509919398534833960456184266414133925608709055363016887623137662869289732817088013739153297510627714905659983890512623570520075676212816682798227618623673009594452184757810936225139786532313366934800485194785162361140050405040951922787255243434229460113605843358564554177657008288061437469979810221496946906894983146411128042568436231195138831150365580002683958459768749118084377257536040573440568056862672474277037698168276977667398256551796197811789703570229680132310761791941038176469851247282848617888708031357189710490717196878374904681253039568168532958115504858826155738538081816252599771534742534281670280721821625711449392067214475823267208587342753417403331818275957531632157784164381666744216380622694043059926324581808698824977516464592125503184990386439606779303529318245031846923257881262894563118240212094881832314797184292530548801900725979944377313248634016077066120511751949676301776541337035585589150058025672542893434850471007735178278921287732945250206796575262349592873079274359913086720062895263809725924072085088332492742730582631313974322440861445433317214060880817736574469735016458485458608882351853046466772285878911172769404392761346008824257462142078874801261352195069119867504477966703363636121116636585392698375333143719201951601227589437769873752543967147344166377430715407530100733232080117320038781331699683260480665011629275981211931745883872060956721712786660025673193948561399216045005378992574977951516428269286337569755997233055164089144913179506385663462238107554565408552248533578555910452046892095593490896300032095030895772565013512888116830601453271336606793247489111957808780109371184268226413762407621596044717806194708819352659629230563947177481573690115082082160758711142051906469585262737469532955165819167342493634658226012803744284177406386868798025811906279832106379103584423857376534952658660009423011705415359660801104111442688529018490971197325068099039273220467724270746612908089301916344642244814062157880337703084680563670368964576847619037383802503104983179870804616643974008153369075920677254677174236813711743597221087512972697930488562835163381880844727275772565648807232656061576227493034635164877209369534234173917477395344796343310814166474556133532337090523168123981195461844980032971858406743635383960651841076609616063622753458690569567215528537544609058692888116973832089816984515734942904630240854916868457498890055399950220958879552371384070466085505236621051766370329568453378385397488527314309632400945370193073027018799588905782480021998565299769816250098755687671402666854436667971096285764060581061017919729327501717466743589971754093841212387160297980837019856706054836057584194510591824497250194842804348418442521778269520299558144359466192406883910384305516896239479191219806500441967958624525795243139344881649449923111652723220530298840088042177229042074510745748582634467745795562818134991392442423968728152521556013010899936858582004595204869052544602459295362245290053970511256594173018619115068923949477936362799752372356286840607265423485278309631197889272333202616559410736953693295081066391947218158807090965317929849338046844860297377508285915059276686673837757151983007325815900151991931419602400701023640280362860729676546860808893193335152852168820650167424956209663589125878290957454887844301332354288728018876452061659265284259149164969785124499140467172140091934237556039676945815568558479754834595918429629924530694090157221876169698738223820536225063350865651594204951238092695837326177431646004464987190612619897551619374916720124271778273917190608444199403535525381890912003491638418987877071304555167038694650613918158886105790203058027297186062490688632148160924998371638056764809174288702869990778009400079431652616582296139977093908315506645170838325233245205601449652919559640842911122585889190591355116877457460169616199855160195023464976505676295654769046716026045109786469034821098625197309718150172451495468455658236343192448480235496527637864627706926695559662948898232183610171196557506983702230019749046374318176706538075841918325035199693187895801908853078100994344913472125803988305742738209895445355120719984457990453366411693455958050954208529228042088247870616694562421733512645755722463579024457732292006413574213518521806786344516704595701991272695083320966266859797143177045642093764854283585821493804442052716060071101865417722674950250539791073138982940244903666250637152516090815773417112168863961908434710809604417621310293537438379355269549217354224709491461866433986722618796129123186345846046694841387339262991090809415575626266927562571537447215084885755418350030322911824559054581587875726063744185182725692636151642982937296652686493176651029318309782120719791362055484377076372666523131031176790719474771055307170554998172462908674325027456292903313099180763617804942263795182076721838624280223195215396922341073405267177753245650584396426601867200638679683894351854109113729114390104796778265870738783826883909411866315985554742054774514216853752302812984086633515747524654382033409971718100103310460997205852104859431245910949497507673043680947694303167095465122621860992623257976722342400981909461309662619294303145454976643989186456932912936847044346674381547567423636420378836062202449366727531115398291606989644124602412289300214860902988822732150936138556501507797315115338540377517776023126184688330896745205428034648391762809009648058450575849791715224142499908680821190502630671828277249679035136027786991469920248813371400467364097716240665821317630965941733059819477884702149953967714619676846323037476657952190388615636583779791929116318333654745149205830945984654628801014995289403716468477556497701121663491107805036111273981020024087117674336502048643356948396348430359702687956840931466795950175984772167448840404145124294766180503034978161132572743599076405593383247766647480961178116513679135293218195892546233668211985302191593167165645056782074858252150228057667745554837563431883755543827667620604252074332398096207007631855626684364121297257332985712231110304899872085809739675396338133534067106808859848044604338905940379199163281946495247285467694088312864167149274248996151658136395378465696988060291220912256920765119986028998342460041832589747538927007818649776261665174291569387161009605756980038849413084022064472983027563621075488086887924332842407635875565378442677207303932196786417805767718030909049433181377187975667582726933707097876224902203763163487294399154021125157125447280785134584521184869526694977323338446339003050475396414559797019007949509360693267344794728430711313232508169522456257368869782653212266173493020130444263478386839214503821607308234581608313261959174020461851840325920977990090939688834317985325446470905013239177281736424934494258584656307749995723303099363400744353126383055159949308911161745671936736072770515248344619493301690393958357352979873880411375997811829493333446228169706748812127458538780981942168887639559769346686062438718025336217342252582533975815591130519629530165441647363040644566365633309223602387068197870831839969334157797789549331845721846345242332584059571448919065718233983780103477825298794951572393087992270953989650140490514877129536048938463167143112682782937528847462398541240650247360892370560802402398313012060400395730927059810072802698936698589656111112886221099414146199901301204926760105394733086091796841832642287308134245706934184685162287998880933352435505066827473491117686214419107049465774083629236905259109278603758066055036504600234201960743843489938284666384941109128235142343797097757263427072006334307083850010484191076471484669219444465920418224912553579543504024625066336811256843216940495203621120548570297543714554928417580763720861913026317163191873245209392161791804552906992418541769899554638802160615566083241699885008636093886738449490631139501016701913693717460082005564778629175812700026703916290664726085125825010682324331898809291049308887770139249537258537781604247104930373598847766383857172034465550220471116067139008445878903239649726287668849292704280538231793262466797486326450668819023455888860606478528432314229589188362372154021134425026621800505182604759873575003826349962205433030182972557607013807322269962485286147748439226002992597994918835932106521078341307695538676604910148776531809956066651378553565190600274690342263811906485187662342478395239968049841356967353773194880544574800431047034110423155670263578864095446873245908000931491083469621100185927465507069808832107569178684080192092227194742589049598749429431170372979224940055023718205892485641280864794449197860222977514672273826870946752270352267289825372605426245291771729604414452662712398138149166475414352864531039671875097241538016962669843612068441817476165904179081200233105912435923747992570980651709095233348456441637643632962950232016999729652594725765812450150575410269336393892065086014080635459583122059419632684880946815734645360320806465712189816224318978850862707814359602984321787496335101917167219688269989726581458564556460426938143784240567363413289651399394817422859196509790908073210934997786853996244004832850232555569423508055092912110907388172888610529119062069103415917475463442771369791896778236921772517833052960208607713130715168186186566851649338695749498149937069161589340133861510080807929329742956300720045919725426757127668637471069943189722257988200703651756346036571012165874912087665441284663483414604089778213086842259923607978573659720910984967283045182016019259562035116143865574409623067177165324601690660843805956495603469257813948835001037022286487329918946094706694217804886114001450490594562296131709765478376055113801397534338973242849584413093590633589120407758136893143126448880502750693233211810724436983271910081965089504543398924146398568326677790299770948607318519530626167357208924810614204129556705248028057713103996264701624242550555448180506354703833118893326654310079847031151337594834778104633738105857946586200964321081244512735413861183064560782352387551924629706448593146949302940883131138053252709802443085171655315294203581528560753767539193631943273058792511743336489781179226123269950411916776545527473069004817224435905053102753834733805121729463436786680703074281470942583540917260840145571337092380870097866946241823347767228124967582569574366046640653548241332241805938440639253447713823971148427661008200498371330186550404643307262523961141544607449290086514282741532963898168409834490339328460039376583381242033493652285159774296569377045370354860746622208467565934140269486545574559982352311751904371412700278892218967813226180572754208408429897848233972362937185544841387152382447749208655895658745610022871768356305220303736230933219674079530214070605125582604448737161807599704257905641233334880503203659255450184455417830022047323751897261446003117719126935260961089664744140921522476202924481950813537063761745118262715831161875189401131367418591735574962301029582834676248809516817066668651484168596177463018879806978267589969102525680733233115810998519529076909535115999144056514842247676240363274508667298868958062969612270668703716312477720498230067132862025080229083316133571323353330934732793501388989751180203624743089066367611734780223794963936084561739942759795801776123257768184756038850204180640251553704544413445920217643273922237446783011222416306398102134422342775392844099762071337365970039105581555355854581880548008554432196123702112907692476332984317022566352019296761616547030800788089051507217022266273624933145097060050020036476992423162249822794319484933688768199879659470529890723915811467992649795072929840994095027070478921574565490738736210860582200206223201975418196315850182993811198307160893627726307958780397061222169138325143509875849932228198265290897095917039830983969080183758847164695009894734474840338436963914456290523269736914460451031798757616288128597749041245930312447597696779620759936530561969812865653862272903575514584097513275963832811397213814338858231574307849336981228149525529527484739440307734867192726707817049587792129098501277251136839984891897526904841762194343788351478361824566330476429356390463869264193207882556781916320229138520303123106972771085764805037400967868551710583157490788978653223541937300632012389553602222328440233495549411520953172876289364257060367231537249306835470962320929841632863288907618530567816414195295674787414894700607086615770580050723252016327015178841379713490976886916724277713858470513080953032934331041025575038322128451199168747283839216429122781732205639095904822884477833857676271209434187255411834055825751946105458885550998575469347794467467901242088762857282247978916273873348807910443976667223052838031776063893286414551437768255618486239353297999484363585390673917582836203176196993223293247601513835676353574466370715333577818877376466044087662223541882280987213850899139412703029791967579577297984424365714285838238595018533859887734608534483773128318148746598660617440582457996366151102581867559826991499148055394632677974405544728971643051993454953530515971584306593996964346356145099473867018545482311422167310264240455453039244599707268077701417673210726932008529935953015396514399354025664023329421236611872132623739978926029878320786530013547975368879595506608463624107838120566340650851388794945354452696522549517357372184719043523620598959582950518223636690836881232585311047043643778890176669065045988565302435237884852353929312348632480541539717638524242351463628079008250815878703949029789928751190029349463841301642441038413902537193961005526165328981466706996246955213801279613047114435889833219678380460397806851143086271835911198699042721641408533578313380289304444391468691019779448574470093665830288667382488644931465422405910173605956612172193158232581207174370015441360746703045795478982403544159261749385812192163338174431475934155887413300825814163422205299055671779922632626677302400887298950968519963590291456379953165193464675679481592533020165005197311563465489032608888631746804419074930523929395511626865077658316242727796583384521772230704211124017190583500334097269892853036672720885654351198290577651635070737066892027338063456575088408584617537363472280726634893744360389017862252533005827677854983070864978716232081155570538603744511593455447506740819135826251107678256196257965229359780300712039933020071015695083603068273211192660822667269062714134332102869826902960008775557728374997351233624810656056952440856520337415338171428057378276800129202632427890428216065173815392784011779866124232999724559477094118548249648387610350043302298799942972538571881603285494200195532521597953273321468680082224879875714378754094129608872614902181471433021382104820763203157411779098427335816389806469125110010932580128447482697263439195808069318946506146776144547945992258843395442678357536690472874581946084929616604449134874988810689075088820848199728249925671274022368226047997054085284275759010185493108900345051646087345143464724266035043715448506954257391380930277135508197279933042482727624662507053903333010123112972325258630615193188726938166029331427595638053827720464820121851271515550472427740493471108477520610932459814669161191830964511551837089779670935325558050969837318207326425132873220277859578357913279203315854548313360821184702337642416168736410433124166367872193857272730879737886189215634626670073907248970362092755993218653351999198207323530819813217443618246217268120413467872337020227403349641744675293423896693924283637400984866183669523906241201125308554382828833410453261593196268910563962427429784609000943322303941894371243250352373358259109426520212353445611934078136915496666114441160778706961388215735337327946692422884520351964341529224390815933679405574107008935918685334369333046702825352126520223417130566650046960267023732551384785489830831322049292825309337224712030249329365350238406094090846729866241115714162921553013238821130815850026396988815527232033710803882117222398449361255864257102102201370382617762568300054150770944527719194375481535597302140256055075527740100827825912624807815250987198299925213583644534677551471165184084784896315742700552664309137036683143925970603023279712304119599138428782990325355934029809648383364566413015599223297197788289924322017916751307268606935582021581698875386905552660984144943297068533379747125330342529712551298044365186771224312755497192974950958866024759737823739054204537406559345925753589457747505821343496525204787649748736007102068508062352019654645932838965553042735864632597697063088709600391160717379243429021502654723933226888931876834313741413786620904967172665374387003337863440934406071897654297399871975186149120451344487284121314874596056358700783997676614625415134837257572493742173524492034241936778366145305350631556962867816471065737812458049287019258578620375690657868844906363201710495734057208542008927610292668030648467309403183037184177574835260891198697635083966780794428342034876474480720846578530437719213977874066301474977842485025644404404536059712546468857733423326086878464791096115881515868733811275170544986231566491370901341453604093366044092998457971605206830104677044279927985054747942536725628189656083434902565436364341722806249268392445211615077239248115855064206663886351580720893479376711970124618232187840414768391113811684820234839975963402771164618476140470996312808301139610402004733160080518644426667690840639482769220930686981487015436502517301657271043962442609355921781880466795721774574171248209091588725949341086468289595444645146791368518931477355574676341954210758486789950079781923582868060444770294160769164212149003596313272864677336784167643876444070167443814006240462002444961294701251137338990661845075846206385751562387104762353941193011829278923816972117633600551765907597094688490812864573118874542165080669103844598362134796364514075981050595813985286334759188156616626454900088082488731455246359005857297024663896094463609066518521976494294425041646716616842605078046652241972755706865500607037222238023026997573792261329483760403303338950916035319734524617269518013557761029922559941046849064938493896805247061692906041816143450586017080923174227244701243216949786865280914996725996101711020831088663765928848539269191161189308818675822010395733031150304326210198871024695413860144577650541215396004291692540596916409035680145951487497277396563831888255209111065383264487477483890602456977596185663331645436177823243116996535711044187049583846513876431933729348263604027164808041610630052007072951117002199126719963448522510393764921953240822277925337137980506922926404389592088178655114158843383820725775584727941373007870035595138677524631542264977199119123962096408091787743425869353476928624709078713209000719039730600582592530926885737307391028032959307832058376057612435221443030912354427604838767186183809748300842186695886329741767121695467127075977527779488993356585921695150213233750134241104747798983381075937129477039086002640373765129380899448978922643072275491918059715581908979729199916113867992750136790181806509060448395112645776559212050122611474858717386986440214294983302704391749736718337020300781188842140454919438935865076934677525981063720954618285238240678675360909987532630753961025391951006150572384717600623388831348327106437949863333600963134623420839808277266259167637052601947990556712791862519767151209055729355968089872083929915909220878429296682410793321657976741648531740019589935949001571156578370285864903205075498550539411480349781481340034696120625585045895431356292379888940182894423055128289302525135684745990184762731007531129450930628320900353567194186241600863242864556178292400208885942210760789860390987549168477538009814399683635614260961504443477853732142885995276246014007660628194375555064806067061283137701120183297037391763472786710238177404285401246844883197707957866865655378333584594513249643420082245030508742381022912575155992127896437987743057039923585050598852901247365876445985837736328851045039670283796783937599575135239396925840106021807507644343604653479215223664051546493232576885497510436030327342515793609171663008801584991526114937154864920078250686731551160169242175349497906607222074942571459092976750691071688726071438458436528242648828029857963491195147765410225148385615117469735149487878553611181212539584748679991589737817045328713747280923257081379788051682119482551789249969958561118586841495711732682030954511319239366865851211482396321470919379794323732814134479690232564222526399091979507291245614066962910481096062328839072743106097410093840070365714963535333973364975850944325427568108502128561819545863280878083236970569065276350012700924218468053628743414711225657243144798891641678491174045907024618978131711850482281116424209337031597152006298250326143842341666332296115151036283723068540833073461830132526622595289077371574403924766917499286543991785127008452078739557813248613088780540104506404925469840347725730137441416911631647823083829347506878133193863243219111891329515509728513916817414264415027149363185505376312006172998561102290454440438061361284836822759538447152400253948029817712338527398239084320818609965703389413474003935907978942329661535696101590988847448643392389124693047410918246723325102479835638630503997518046658083552684199554055750195378709507275962352392433095862592687573192253399829804294329353123742264640274664104488373421597694576696974793679187937528463601759308998216718313054095239070295581825506489473824234706318439602001558676601019958831772819600775833798367795070025412070073400519310355151286325230511836872479655484955285146297952763835121917366665465218746461097727257631864484054798190676479903380877954076845202157794263981652672887076193970451734112111045621259478212357880262235296767652809069261933121463025276573209332268128090954067212105109485333824128649490349855167723699321377614203709157472564233252812374581712520601820785954636264114797977967647236646392537341903377376064438036117671663580510852459311079776876442377214963211777083171691812525595460300055153872702696268767107991356685914685599368464945973835330806715104785233184413435788409414112245472113986893924841662094926204752135884529535396070784195623411535423887317964533622953350272456961905488871516962452652506495442683622256117428169591816680510676640979883035249138789083430547061912777559675738055952851257017696533627350124716271810833420617222995222196497622271896283820630518630045833738934902032243225376438513688203442979343171657819999027102878387197794220880987652957875783424407783729114500950173909404177592037895412003901469228490749157327268849351967511176880664071273266997429784082521353516416392704844797374826524812099842357649061872363769820306774286057845566673094612995071523309883440649914413415033106824043898610019847682147215120985771416279906010884020208673591699134019569081395293664060108985748346540961745683522067021853710662110269237849960292701655092342463502124824954351516534674941691652434659390800805028167994470457215916810729396563517155816957479647818952758500354140872455222022343181869014794717140397720934826500706654958434521363560729689590432721485626590940396383597455271062971009544212324668474245194397923606292625906581803723643372428677361587505917183553668419915644377576435719620453675189532145316750834883002456550354204856222499132123772263152143309987602721010350551496087757621322620962849685604900134688090235096371410902369958651265199401734077812071044118564314207071036532952799767315718630288476987495754752629469306718944526353948655275191768560222834898092674050625871245907858826338202625106224753044737386389356290535921560935713192861960328890465739083246509319580697541098006803048418284480006171831204484157018682978439406019955863266453560430732239421806801366956371676940840137956779814816258011620691610856120332920357601756096238451358951798237391325126054316731218084981172270289168667247012626798794309590261774166033449676546626724172991150876417965417898517987993687317832976765938071821762096935527451359502922360047650193006570001725614694105903229191225731977685392722114973292614958924730643807955793002354392261029808576555872703772031369758456195868139704859321797621244996517415891483446847145726027487357671341119903050652099571754062139065609551261448894853416085754705084652144897009533095769497070609642451566342109010993684347770865975271310055044995904614174225025620008297726902585658969306305325897033931237753187187681274797389503870739402491338123825988962171995439106637360959187723747888499855235894723029379333231537588533534178382602390497134451168888092536723024713344116220565084782024723668319957629145770448429400420225385483629393418199422441978620276221134911705037225582046332509508528429948896382223225663329834851289267828226441211282251190157204633644640158394666471174086742481645646063377785873096165542079901172084840664635795352676134796224671106199569159699476519757084259589153810156694816704683775227419098925420072517929597642552483015357449348562462198787927889516322409602506938778526305371623998156555260457144266473474454118530137824855044844413440189059608786379414179871785718272346363860255733810431884699669136150404253385000161580444578074679753337945802808665080470690105968981631106955166611496563228500351534373048855311878394537573472011141012182775629402742269959507437150204560378182364669161150350182181748340910947536779495895614974746418568604872558961628481413476395089977325207300139764456307495175394795435924134530486939228234339890180341474030927864355359112432020167378512472936483659173264668944120507000369345676403287350620294877803706853651021305856928161833192603367075197596041455233875484167991217495624226308191817749199918184020320886697258439576104084676464411843168040138029517219650382948271298347930386997306083272771301908581962965144943539117159789128089004335690111157855684319552423796819287741811368602916275715601702126100458843567071861831680937738734897338653850163239469200007894714054995764595987130646137580238441252076987530200097741823395850616135372270968196774683725137517612067799998553217972300874231472051017972016703886741680701020253965870428797548300796990049308713319977889291532854929457684907613098282921998333038083212037488517236859014941184428077101269067995093793485253530923130564305682835537257517370620417975726857689061755920647346095348070494488834686722138511676058973362813257057243526394508370079010749790813883723010851102235955525500165445409901234004198293861856456447777102020249867380383750424025042598926300851815580875307442527112629394927432082340503508561240073878721423528332807406346131762268984911396376336921370480609982910034297715993748913692525298755726844404152668219199077647242345556618091437743717269581313659245139160122590484946217685651450979363352843088640091101357353071821435181831194621722507313534699208691918353496692450064396262039515874834608072358038283907748970459707073977246422305010047586571878569815486835129470178892838070081845912633194103124209898351689883287628593217431306621964697319167978982655427115064843134064464279189895131805900299170761171605278699962012395837069346388076379938239829202081187637464514534871982530247624394144591404196825356616608832168415199631462608482148880087789287956572315621840479348295745110288299428258526840548403528502758161142799837140370163457557396336797785506171663374620147921866578476679817382564513602081668388772409610773894144634600156194388308393149129323129539459109684285926772821028021964900642407378119338803355622991801196948424440598691007519480356919640896801919446086918137207485755860948542299000510386153336361540025321309503886997319405917622467212088881085447617653995676329508514846694263332783340190095912764306249784984044022728878270983646461839626185447306742472501827819549296717753138120113246161910852863803601094491975041179038016370729403320332262379746051759261560018039556502657780167875371943716792463799486016061704885692650071500708380527251228074288166980678731620180273831480309993803320457665359792671442746546471230332817133761094164032690189358475637001019935822251733557400636520275313587189551988092720406956790202219762066327039807466272519960800736478504450891488197081143556560296402694297411943704508445419588973094265106121412823427434619434720500892498598746633338058338726381614964379594634872858440628896360999696422691784078805351572640074911559892077071467038099352472778213925164660483269251071832216783151824796992891521834030218355600472351456173507653925978838446798184309869307548328850454922411411389026058250476240826811610102519179969229439101405137584169515302137864265275288614935658894390961545171736911765503611425579282009360207654303764040169908272777920743268641485680711341309203305759500659006324880727328339704016237655343314827528189657222891508956113740330737244392875325849880477123925291087328061360488582592001879793812754483987108658513197086583829070141768106078229438811616984016945573134311898825520129785323229150627016496460112073425862253942541356800730015134913637355510199488222619910839367094366833928965790633043080895092087881237085851246657324011990445154887648393837791837897573296259658602014128872765272747007858795087339712432801960911664605033991209373211941817271780980316699201097824508275113709207416567585599312032178507558273188142132399706627615123752244547522203495431773276713013272525499775569991025832937530601471469704809750059481867478901526259711897865457473941083440476994348358483905437929202488107584882821551709800299883560622917489407646244054768922289079992298987921232033285680557180233935084295792446434947025332613357469863181606197371512554534166288030107319399312991994480248651970505658415763527229991147622725950071723285943076849311977195412249368808940727987132659010784803005856853634103290313127998890355755174736359440433732025677399101575379992711067207771931870124901999239667317243553905146530830210301785814120688195728781860887607533444982149982009998645970957557611963957996100566456634500488539543395153692485546580653906147923521839073954962965650827037921276854764596975700515500002948702960658764212333813741883614236253555141762946183762444608043525899962198394588925398881488257736669656144610583572878757546435959812939043588019818259505927992632881368538984812088179812218611721950686490063862913904556758998830380047601636959216272549037426423099859897927147806359910147410663175067161185016234052026354278858061395053239135792389215860873941396436803920534632628528287329235549521725461946210028343132804098218556906248719003066305369295901315545179609334586176827774947904872144888856359209837499572229839007969808288587344063978138978448481769902802213995201227871254057619905809571707913801850683393130684682280841317764271238902590071015413364024729104880463259401084892206045781862739136103125642429035209643452702457938329676338048156507187357334365171832413683027421602784210079322740488828298265883891037984453469829307230988265333367249220680276720738893201794182780591060117117738753650783424455665539493527935723920727543190289581891493419037500886126244407366847510568945200065864923324341485911261599289988786051289875935939180489003676566345995467249439263394026947793842558254420987074759539918300190994935202113525762887329749315892079036390855078217649292664096269301206273471979964510867277196119847769775290526496588648102981699532736548708172857699007856647200980798684443870217934244017763229414010792718116675915210627157392452076970813151508049530569872916089419969884462633470378357714714280529666764389413463054635737374629731142226290529911627300587300451782397047902268291986937226767057353559898571126772564408796148596804693627088633452880743981388272069528889316256860291591808165720367539071551060267529350404201908464211038702435497929676224089433036446518996922441098545117610917921265369944237234741905727595831696859375067818143779094507527513994523278968005367827620328212345116053350139525939495391511837323352773365687400633010964393026167356595279652578373201241319384360674240260742898901595594921161734075044058962387733652595749552338879029675212542435740835171947138276426930065414322684096999647865257316071097161727629319517684358599543145931220145614217678818978560374323017243944719750979018156512791672812741785184683484537747671008220014337828536173366630127839404967653088441424190581985381086548932268364670848322225018060115702214733501763073039558354970347645953324586338383192992481693638493794480613131201052788877136442525240560592251558092705534095058423808108570012142803720957508083242621747594554971657992584460705054114458753256570237076565725301977716201016361701177732997947883245778944653686424109741585989925389709187768203150753738071170418425725849462820005714987940966283253574861602573972068028598438645908217456646610177096373433521773120535117887692366185358425630852788812469907542352935957550907244261637307917940003568356108139950138364446776529828423029215159451114469924925968918004241507114708182861976369424798979833550260303698434303291636305382249811598233381645123406848788698925865217845913721980522546719486027473715626926907835280320880620857740089566406881423093894269142943405436627133403282840432866753439321635194437156362280731774792097423303894633024273567628809435941582076769242213987099006372521166380752331050702493782115440071559800576460635999137805363466254090854866819345791192776661479453279334188183911534185311933012978680115995405936353701686910817021435981104590915582911889153485267671007618041596988436123985013248231068531880763835842806345569039753984821398651972728706416482708903352516993032199633876341639063033373821938022542524129907732950196003392836344780699544553659702878103249084033493845504792981573702458090858912148843811802115808612959044594864426026116228000316725341136193749488795393417622332154761733960282666176952390448481913113797551637941813356277935765859409499665092524297886865152151790548739476756672493093121957469462211437474208144686421178959118064432371912244867367022620794805668420946193328619226597699141111099760069315455282151926083625693126076018219556007864625232275192693784816986068581097247453293533448235944766923603570478828437517116587980692295471355633999337643765211166652968430302849339953447089579480059014198044210939218100406772586637623705474190170241137814283440001989825866526462741890312051742703021156921370684042646951599648096374439833827856850684802256436696627959241257026509872239643090047379802620478037586335849692321922556704869218261147245757682782803728269162877118056565641976585670230223967123965399766901337125806653146950075773103320726569659895779514234232450888577806022006202490568130865580197480812131318578536097343199184327464232291114877384612009901847869483066191657115529964548024328484828069321544820131566094122916901763796585696016455462101694530279919845348955629760892599924716340286522278412379908523417948147016912822473257097363525220790657544536145344789523059059100173089100340469869039278318545692398472946867599083303116809336985775670676254984617608691335300999675037478371995854338505211479940752909236145718123810903140311504370412211766762287451413556195451104128623689195415767657138674887908840534924360541026419934957157177055721886104676327283039834090420435387604841598618013006873504826393382749459144406176313841143014294351632707065147349058605652724055507984602958481888523262261854678412261150503335341036623155120868797393063213558391458677322545008938292245038592799558057170284429313192102748009223924421505734628563383750723284314628318139130428571579955035012167438723652092201314199688697691967625851784323806816935859137028888690770795048938201684205895447291555616530534443292598326894039172029279700202828855171442309972838555086671071751452247707832278386424622263865130952803039326758067089687956554809195039986194529627371525365412265090323012405179987011762372230420175163004157101557053644705256922573895913973487384184089488990181762944728518270075739950189710861374397403736340768434024213521908185090302811822505671249427657174451121891208283411092732231690562936355274290810327361173488927877427209828122788919816046761344542218019572812832887059639990704382624144269367917357150968955724941844559529234812151254159633112169392414917104492588996620213334016278402916674832012285957657280366130644755663061313537069245094422590768310019072518916424282853350469294245929464737425721716466600959554833355958308846993313350550095710732154035956705642507951219446284646132584015939933571914041685974126322147985857227964233447111307369847854508649115808809149959440742935301585980793847985514898301594426697731628797033010726598256854447679032582578588619863226371710331469656864910924627241777181904869290057218714492411082972627308501377723558954706538694514336233038618581940486951802902235898691365352184952833160424703877812254780153861952803719234868841882324349304011622692971105914323728049978316894068062201413042782210281206542515059806611537763650027380306234442638684454113907794435196699453919671277440681108396416336395389927102300360342275985869233027907476132606179701490975966365471610740025562249815048744763145146647808464399135674445776956781202775745390822623267461221931797011639428651221258650747342722449000806756612378454432216799367179982834094677560805467487499935927049753787851529784905671712966228402026263390619094757559928080570250909987953286360979296645285307322178555554350886148855064553073706104348275451612686506211727915002412060021200738803571153885652618734646319272710012338066764751888460701941299498493833899764832034331793354373073346740683520219779813574877300694895268438700686192394280581114459405058031267392793495501875170542861199810363959491537454389165790841429272029657774289024240279625090662310049396791940866609351782718769960282493898720626928966772419979641393488960639451288117290282950114778785286791225726073457055818457020180868676535602805337715879907637917254874672143089850011966844170872762682879521883120431712489564063191316667642161528948466497632604516391951477860396200727542169952502932157070525670365236283205069975747270250818500241183347543771378991666882167003653426106413152275228656852044390471743867859117010567175675248278680046693624866060654552246764200747386376129696653988614416881645077038368015402365605698848943058339533188931595851947109420168952943027855731917670706334770386521837357949885184966365172424289826695033126069970710885828369148301238335990803208305002541178135778280362343490544293476295287326391595344897546255909636868801193289892498025074865313273861873433430703522579446988949724526498838866205609170198770058078049830650151797716319575313731749605764747851740424571496369842770906345678557738885389879455730531040691490505768878388843697095402879901030393682913574394049983698185389485476172646803755877508450497266861057063055286226897474542701637356607724188783434661574440082597518569340584916453947217496568097661222174852849776858277680099063002360283302534761406320943606088107264457980503791430076026522995906627930323336539174848576624617265717117334609614501660595180778382366334433500430247334778046749593099129785963923042026153208551559238800989619206670522818719326192474932035203510107368334526711432635715899881334729847986041271503911257687717033608212538958187125496073805773403647800428596419150784295775726351581458357717263522491364457477893361605071082530158338517555601143160117812886155613771925376449738179429859260642572716881934010625093617544846143757759708915023040543249220255584943276954133396635142230704953804509631857997393603610700226581322877950371374382957603113132555196549750527603963766698303544781012328628723661050930972016594994473824347478966876439547267194823346235412546489974041616634823966563161943571684080354588587422488911607388846324166282291203158950671331951678686446624885350251989329114676332966300348114495946267076506132914868524421168701758079080124939861040043464099129066018957045124260053312035170708690741281963423360831632697389576554962771723011057075701539539309991399385063704136660213126909498673770715070382872352148412234886208918650779143871084453917522047640635214989761766845609173162403690970501770899126666521496750536479076402763914568340298838073455607445139011983275138470867725490821930289063089631054274918345304719929890122954916115082494309657776171382810597275546570385421665657814313202469338205301609963197073659499820999391295718983114481310846410939111772462696459632941499605665700770121491578607735123325395439534770831167511840734694492073049505370047127595051120121545863802541116251743746096565177539059372560900725067133143742666208228824067302841471420153426278082703198559675049584570429467338671648958616208222503187072441776181024987065410656889851125442481273378633463842650747849820178679469976750546988468930587317192397596226055536573676508544555856498088547629427080382398577047667561626245994892379310984632516399672391432299256770834187570324134310978352759928081545821440317274934858817849672337604483594935112280591646668173225693513341805306509480784207522700078820660390320058147799196535488990816221612947472368897081174003187878142248333386547984580319158622450542911804837870493327721673985564785425673481694521815323115680903068840770281027872467708819757504276400682927530702279663778368430054238276856973537684973212528784789864359289300570488125201062092495861747544917580554091801030598918010930894921177013003345034244791626779597056269089758112358677182913063185792195200152150278104425507103958588693701932257527159495785384283418313532677798119285667957450182275684593113071844271561521704848834745272411601442834695849497244240296656943541531629521883344766587650511035504271086702065386302915161571372125109187699495900935509415975173370007215387842388287785277826795752041478823114129008842215129277208779235948278616506373605851594500399598326913642852398600006301832436228372682398718719561631217462701859535664555065146094567785644726580694072568006822562689367871358478428231357840167243952316398658505686807105668287318371913871135917860350957798343814832618955929267854920156128843576412376785214733607504706080624626891995962919326304677150632333371460076967777891965587679485188638752755495519977775809841474610087836449656616478479382326116431830673831047473327873238835458460542872700617891500932258436983879339710106184011262101013696598969244120201363952370075141282154087801667992453073820939673050566056926492504023117423028127347425106535453765191577900161548137628014200115053825952712186206949491388542414112526498849758003842345017381968438228770989543467063229341973598809628780021093116140037130103920788191240631937732750113034053227718727250711721670315031555918258207154318917391071594899041983230953503171108072638824267160636756556131688661218231502879702151078824239275252710462387935481243877299225219954881174603035154286788307992763966409660064684893210997609009316136645208212782712775504296349034816879931773288401957165341745956192158255225609925305768892843320017853647010572290731551896647708004378538023629944060944745339643751773799972953305799186376439229316880679812106818288960659435363180203656353616376963946573161368163431133476760893010328347399608702903695373142553169039608060678501341632478291893600323966311519907383499132003000313770299511561633348774836680564272029546337667661290430930103746380757573278819753972791633292376904577156759013367248178715652558701411441584531683060878679179109029921404013114627593935293314468744536092491739520218063557950948635504722674368131598680265631249060456537926126010815889675295746149142121738311110215552580769210568025394477670944112211525109896095318665381349080328865128126722138133454911272977087942331977117469037086762923552217894047465242308210838724027242035114294010501137620852507848249665426795105198826325145344297952771791129685396120059788189617684278249344718156822804027818619891047445477855676594234754997432043606963715610397002661348392568006267323969132410718897352454158216541256908702567999966368069656179704795270778027127297911300343421512103689129585022702889497593750080450001498498183371585267180727358470860635284872188071098311621903348218359324780707275293221893515076282993653640877524282243717329972454951052109456522011170987779934938510590790133779931250112159817209060579802637698874468040006300275504906031329762212889509068352684662619345156779189828250554068393180030032475924397003666712238524134170371543721097050767334957714590530989312996842255873124479766744730010261710710967754093564431782978733570975578158335632493185162974943101613446480345746938563436973196140179035517946004735638591917871325760519357498174886049202112681596479004230226673017349774274508165869002051426657737374727234747854676806609513955708621936390608702241546813970715170673672403904394921845286258337017877637405188356610945975891725373633149819339449093609044354759796596023489835500015537026841861570776570102724090944989130290678097864180746420283806002242555842429326627290783346780036628208949366887855725723333806994726561306279005607636041797208978609726118114918707726343982988672306027891595890617739820381604398888918413032943632815653807961030174613011106563635393775997162720884718130628595440570296683028572759868765483590663327699421405062481891793457404418518512039985079244685218256487746560737944213942221129680916559511567262982872118256778549836261129889544098447625276688041721726484866577006747371432565585258280780768647086199053413258471976236421525660522450729071867366217633063532272092111962872141699868324815496027372898853843938745424879858148770355577922286563011984360078818373569435309595363736722503122861472428575338644924084225861159232193026333901632997708435898666602046226119229265493434115050614745028752438754714154847568899187994341858769850816016525453957979346238742076584706668065064005565008898922753589107764989224671961281740634880365345280190051054450110926690489686164639129521690031847808247962434202619667457804168196061634811799155399802787636560531732180390634097972338417664324827793279890792601637105397288604880519412917918384889989313715271107326858567475112089842330678767939058572975080147645221257087805299695926896510298082618433276454465500865536495114952867993037489697509260673530041731717548580449226512289099295102262452467128721782706097524685574920282503909948524054498035616600040245628290033944844601127716547581969411735038181031712776163550147716832501508542250674490941249974844316034134083560147575308420406207011676835556809628651551042911718454029705710151981864567458056700062434274385243698398373316249567297060727533577078050527529103207073790590871505827524081714078699771367629536442420805212081778454897636733009593004380188249567964240265609677148042038617093534526708994396052418820594225448002132801381790144714877737695727865477618682741715549556811356193863804339923754382409029928915024592586083120563702713338690272087681121478136587221864580090879316733978432249928140119195783996201893637028181698301542660357403525177415911083151591209479762866554098919751491485732525002887382151997642172498487670231799868693859899606363716393927372594940700502746346525326557491820838968290057035964283209594170015017733736388636306097270577801092161841096368362236283586369714503528870634523844404739901275887486397867962228065789734413827238323327138222441879515798855035334473918127363335393090176893182699700062648452764157124928761007915359602251439074590292309826952659081102291196025248403482001204785241729379842077726955297400428654821645067381519028200483726281049368807955904855368967357728212582033633416791087274402832915890775173738135260236219130674129783832974254192142255029212937048226454307111677204927801557933606453771778895459131231222751619509955644624007835021557017202071277414411490210879338676661108947962090912142162182641540331042632352350265090143156145441763894494549744922033547509046366571998492270221446478042419748504940563012281214784491645990848462705386245138143368121741986229648029056895113775607430156418088041911457378919581949569995326944262677222688652657924905039997641992417433747434207328111186059927314459768682813747469263773850046998140488041658781506099451673166079588694816621582137357269236798927517926841446353922360748600157871347753084632944127061037686016715732749650308251679657155171072785865935710778060016132411697654257554499797352415098298149123658348096043009701133798638630276555728567773539442794061992075675382941888800726678287538293517707804199935059705165342743360496857200960396403941651484168732331337110156925648952342642608595551326167480806389022695935316401555492956364605902096188993797710676925900171343244587478274861495085847580489204277840912563900962201296404731725264033985231666860273193805685026086736675043608166704894396078556895952254629478771783914393299848122468759984502032621836776280238782163476661323243165967713872968732373951531649761652056269651893284785604632513648379461798398342991882572981423189786464725595124168600672179171381539552427882132331151351550948394749299023716103779734193232747635857378458282938730504788343048123964129104454025863307821796249785686062770154900734697608418700730029762545448003017131609842325592412570738006568853863793793539510164971357817379703293027400693450167472519918970401652244363161694524750133938621881655730069899718879257414990089385853963539194997504070762276505925211113372631862350560198630380404409303505590953042487458897871139496918962639155148465839897596418430372290205451646719866762354473402375898019734964854449852391079010563092787318026273102379626160612389814601900305041027159082657803030617632391025852729574875699896416273331398617933512070821445549002812232497477576244089585003829380245129729618331836513039962771484790895248461494203673613337371438715784761719522443855084183199767792137681391571166277529378705903101753163845809257500280788355514790429416003243986380677439182856486785706922846683953986764546703204123993547950241937109069626908719621669891094490466852157797582938774838649169646599108715616434845981927766274576707363756534369413263790020773711556506349537447308393583502598045650803033503149790606486895996981265768723444096849846403703150882856369822752985809675292649918106496574113674081131532293623296852494792923470293804321290310389806017283127161166017384729080012648764311366512413511230706296671544588998632778965857938991765278856866460231170330129327197590916436291910033946213349086290503114827576083329471315546166814050670567151786532925425150802612280605242796198029886888338750369024320072439457135887306041638937526912029278980539890292500889267865558990020153067280030491384182198312981831731296629303495144771589230943948173851692219417774940506792767390840506408496510270040991590247377832012037821249098547045377195520931751694134829837604238216666202699207493117762777935026886150291063294572910031829444971704079570022717286100802670860598658037553794055424270832594814991500673416979783079719620339246072048251662780423747578304647834553974865036184243988583039918497678216442139106642479436409190866198608310995481699886192024863081055704131992112973783474459525626786533825062543885376762072409866414267123806981793738667471358126676238174507582731056132916539925885772536383561077131405470178626124309059484784381394668363046691555021673246277736966539878628467249820040382082088202121574453570988435157222903345903239795830750790008687466461148857167073676260558782140847967449826669412749947561796338677538158302509294761141580823836768353620821925597564728230383308607678514857333909377570733838025654751720502224641233052098305267521658246565325474862004260808522173259873429005599013529378524328220932056508934970408454514642190643530047114788812122713709272790737503496382730341430505175212744627322265010866802749282693179096059912338250443917379315795984568105022343623010274122877702628013884980625099912668587758492278546317792124765599845995018396653921383978458103637534952366804954822531119083318090084194876541080533606827150179438314676235498961629776338572483622980313279622218379089232920336390925547821611021977659202814995745585796256849059149503013590268888352110556085430318435912218773990310548673177375380297249353750832857848696122774312675799027443713545518613524123223937950505082540969361130486887607307725500709072139314071027919127148882881139380389227507765536690742846550110132438722006587347527909293693042288697830605873226264356714805641636868392298226192405264270109923449932334994254916136708050073734278465957686572880391296932269704819757058747027110932947720240150686303529896930617325427714645009747695523157902182705422388926376611162674786025987725257680375267097532371896594822725548137749625015015603897630667387527284673828470920650497937897136971228027434385652277304037964695564794744379168111020738083339993164280224390964127196054680092921600534382101247735470228564361348878336599814944563110767771534469004870244233880772107884716546672648198646010824347916438301598856562808057564846964106715328744908581095915556943783593809809765327254223429475088454886471484250372058449275483059218815203966393081559592584317755303716275549381191975327437537603392080832642917302280712698608647918604784400380010999490357249673189481187681793297332892175881898128424413909405846740496422857984671775856772933861125460905267429708011868315072647264883580105267514315075112780722687132915538159121482854772779296258611802030371786039209660248593041249381794734506296763003439865789643016991551391033982872431386959490771355209429710531927421531308750630612033860094867251601015742931271796289821939444115346697070902692981356437375088926432470858902537191006276444700295083436102361531872375984790990255181420517668527716701553855707041933772652022794592038633269640203047885082249884550465864219577501008399443182875399980261196556583350593720421410776364165320998319324836182976187981207350030325979271516222536183373759459735714224924262016910944898313444551580722276194354626490378238415174766567031171544560716960306259408646466908256750505965412829986717608564731672164222650723346371224930489043841277248507194874241709417159535515295779451379100396581174154813079036199075584837702408794987427780495523048010573133370740747320638508355256516132790974461559861209628899524215552607984057708119684536271834745296694834151564937094468879838592414917194394099292522951666368636076595804135036488027239444330896814959474044906849780066177902259194767273459673722423868927387106604272986297948850767038849319860863674896475161608378993702018762152463495085551193912569228886806625425541093935645778417015091253075307058368618250861420483467381395160310137337117206617193040392830877603587127032439480741363477497352655754910857102850753423698032683620187216600828016605657787452164992218257578212305068924375292164981730453849373680336128504873968186780118870255824432664638598797926090571771926821333202666729443321268260713748068540676070217215028371493564741697575427670845899354765863270868591565725656097389322626987595340472903746438035626108809833977956549795506535475097901271648134225497993477012484205966987559337234079668740484533453541024937542993985739530263885474859171365143637280879023773853371617144575297626497911880349959764396123484686131072005102752834584643641671187204736181407846553684880342127317146556713009967672050507645591399652540124514644152332489281823314274896151308157487090255582962989460071796615184204690529844158589305345585524782559798529209868326015071926264272976201555591769619092268436528830005033095567332251759537021860987948873777756601028124496869629575590318480334973215907574716264508193221625605978666905542000887177195218991760344567911299467132988093085287231521137830849828801773665314004569937305761225381105906011268712655921873226008154703979010407022791842349416112548953263318758876757945889618936904972511631961604618254938881102756916248503602223708951866735998894850423094531797002382866288787929897019487842209122858576726082164137354760523888654888481389699088619056152314053552961331182972504375605387041295293768557152300023508926478637486028127746361203311662540203508630645796631059839547531537570700023445860077428444306763977354772864801790862952701875962207000040269238458070137768588659528215353014319216650515608600396104024742146757834405867872399505983921513472677893802664434965673193562267947952664649088974677375461353884193034918933444342591994275790523115703322898700069078951558713000885666063931545491478220715528807214893039771031279881750149759445404868564136165004384215726832296522582054737169667161815473794793245775222066130948433146275863826665305919514517231017642479659281931242484236729891249197019248973542284477987382297182243056327020606113651758709412084015484483478378073749973909822099232099658544667912521082008442973670188606643944744928065563768013273235869908693738734968995681990479943021438313672430971517267004983500601824111019269699981460724081542997683267750797051851049255569757416144121629843252154933097419478987892913206631480684791664734954470394589522223803618927401630998105492843026658919134202521629805335460822424024463557175750085909956037984992399058947319247330495819803851792017831019958115519761341332470434360434885550478567168400462156407972851448103619601812506309271966523922380365537455013950922499615537925590608072921600072284280824100136849491490212654292593212265758984555483411986952812577488404477835654333723089550163781707254517265692083021105906352899856269033796199309768214848535336231693296722955765510203331103269574535361041499157268911716131234066676990571173370919169490645791841143468872060745039612338167511691441027542567322072292194970288605336419019112683881174672510372534692709244265625940073205634353400794430847388273882281487584554705538433832697021590675635647969572792643300434171133245167396269672821024436592879749723809401676686305835430261727227208807927956749200374244019845630056663607600840252642783559222936799087464160608947449600324762674787892410427243788059066984294718550059761312597567432036092377509950310924989217446973437021392048194737634324571031807388458370522954582684400787142188112092669156351521847370670890394314681929502016789153487671586130631900793708885915807916606500195404302895679177902098353979231502967086434816665017749230526925859653497094632530165873767241527709744267513265587198446585844990751255797421739872957856425201735900950463430144776678471703469158113445009139938332490770582589639452670842788157021253277395020576331435379319065276983904235921679240846591608826789280991713496180580786740682989638654817686822750615308442972324356576703407993370853469567077855611030792088387109693603248779078855006067498132035786424827522530542801920600637917187856884721859669369286011461670135303689637665266848519792062540294294531317016733592426640061832450387337639984855288620794998936536567330464492078783565519145493187379451711193789371725514118350268648365105308004743846950509531440480883368926763809629707590974248074116417722696764195810556291086056306094735512406938885478548038445084354917190910676353240788998069940367679515867086953205128003867095227512910884354374224107068018715367063223514638171614826932253436652966210550478784613429191004324048131633641333445853087291896243265787054308007801621609895392417436015404376482114317999463437203683938837675622546805206173319206715068473411324650505463002710023092841831578479237388014717832543240455432721736599116885734705727024503590364662028325952374481742211906216115392088452703320054279100521878195030333197408722641224284733473985669779790168046524131861456775425938632081754513743098043457224130995550971351613908755809161050352367818863177812922402946801378374742507996861728721812709272719773422353160283939033897898705531200900838993155360220319179685386305830460781051192845967912292441233839801260273803532506954151896035912085920019776714984082787519535442516391514198615691229342185578287434522153744448665324049834789038937185266135622698818438803947520124978187314618399132058687163728189934137382197052191723463353175783888455308725366457985413957522130866130229577577389313357738606813882896141815551012198955261330785276742311145133739223906774179728378042245884706588957945787246652951940124356840948159309341999839795173775846674807528141274396687974459662783524271810216433161910776827042985324395069645898212048273829751254160273136500362342354987542433086945763813245483243561287552212182697022391720019028518210750139880820469076126977423775281127148251304664960208858689956873722370307769721760445535766113780828997368498507021067021584633825032702629633811697187111344528618069027245589575462367231042419009373253389151912789787368823437093506505124100940035632165247097938722416612174431562295460323945063666684060686297190580526582155628180491250554761643530539245321341582701559804998911972047314305501945298166541054087299386851376738273892434584471142667846132513240535974738285715312650747368598032985575137959219980743592816810644811357007984418325445783558862228173988122389321712393513959302925224169817825954904273647494658201136348649390258812174141987420309930771319618097893886916209251971190376025960795411281444674560330100426371472582786848956699127081065566863056905562536580731836284617391037222371565740815744227400305915226482443681382902409586510079437767700590768514886624893935051079466099722468157098059615006758709789187340355784572226112986385819802943464445916078366952240319210896490819019441939463915236218327960886592822491500111323971564760255449639145792197135792232562474727731485756183070931266611786220948983320929301834766238602769283367652947009072538198197906594968287692552687187188766416069621710447029844998069590142440406032998925711979789357155017938127691204478800840926683644654397198342196450046665227464528594936300471806734530183267141748684683829068936690184529348404071818332566083721314329822869174460254836399577061234374420510038704808587460364632921788624243521006606532118260332487641828864023493716352477116942049604626641365449730273015567807103460664076812520434123319413863594786971944723563649335636816782108239719997505408955994461308972091404169851883622918327847435484082762200627958721305860402870368477992273938722005744095828429039666234838174601628010861909464171165708639474008225391153034150029274345490456590429659640632455080396007132421315493279989224899278469254616101409920007193076246430159818334391003835508384557199416651151501522548602533957189169414786757721816333921874888818741811679343978343786076285704947012112662300507987172518723044885583683886988306997456656055128959463053590345721013514540819991396854159728223947806726077910438243787483803091344057446138603796914362995924719074293168309003757946919421726775779855178910431907099974299782287611283587994588017988038833762473329993388642845596516815292646205766595694840863353257818686505794468537255144366231293874480909563331718083432103599358034246232947913391592676321270526093274414068911756006313763374544016233826012505876525904175687765527651457934454580430090522831910351735562149886205333586752776688506508143086307420287692398771584312941923295652800130018481641238142467637474001558115097907720447112258330592260109007410920062962778244604774328111792360097389196592511072876759110608161348163245725015990121583698029031274520596347310529976885275553772914533464264397992753326841573242830715717932858420763540466394104046125810926430620823688389323798131011488142588121009389389525103234649682450395303646426891589788426750028366215703961468022632758744441588723110629496958734320355985235837416969658802956360572860691432638488456324944765210860448075675992021058859667655958853531159555947003322901548921594095441995811170647241650848744467388267427537862603588297402123638715783416750538524748016970104747803996659714710000032513973596718666251311410179071998381277608603674594487792457306047160740408055572529348167292713081446127720666679505587926922812262046468972489756304064211528737013485460850230064615997227201261602544570593215340239929617530886856132928749770319938371760795200398357466249756009001505076488555168013480371972906354555153938694083255868392296628337688002194564161501872794172915217510177483389818064590883416047569561813837878548299076314457157609138877589325008329940509598220332732090285807687037656882357823016051376129585631864309383960871793439714527703651914326899039475403208340278038464691217787309989432038554219221345883016263337541242635678200654346903755980762223945617175119629232369384255837134496608809624597211350088048640834557180487765860435313586507498671207179121262738555883582924071939184109746847048247837226563099396975949707774046252706111888879135044588333750538928071060626568113735196635718592572745182914408078598333686325517351620516439427205427097637462491255600820105748033551025980562942332858438188948960859268773273456876740903234478665606297944171800467815662664345557694903928563100101555927601628623500132945048955221341111365386563197789894831666518308277778536986330527456434140929927839398544062718753465589592233713628777439707329309875114426563709153079735488747335719944709104499671588186040383390365397638178360623907728354050449002083963359246969399413960070265010758348082722032356368851594116137597139812058910413825122116867591382721169838793254549600041170034448313602567563664571319175627437938417595238182238344796605430282207192564745339369224118363300195447318882517400880016162718361906361308936888134835611342266830605281123774066933653715055296658387960719172139417566927285731857699409744757035316467665309508790480005629582697874652231422157353593952365225659938505024250951718661161816471993023836677098834089705057430703182111229398573278918675851249899983918028201215028351535259200409035718156192575373545930404934956780154596482530991022358741697322282563386836669043855137738443843682476891813343697118401860085153621519875397108489323452212121457039906880448833978580579340512484683654144499950560052906216088461006485647318587319358546917930759570755651665982875438847701817916922169742223134298056375866011498989045765448211676471172583893722765557564759887770404111312445686104516008273328964394889942510786941672803376857810764073995696433806868408411895687439933183810604849582566618684787819397834825411876427891168198671390455351093656037417517344067435463832341198015811604415672568385395818948471463119486597064164173726426949593695181043602460765833505066017691680721296768275781038645391459956968975270695017538687116863832311164141151795253772269547289062096487534914136364847028924121535385923538814275518361645407141192179323582032118114320672135798360642382275856903601899075151499153349275209197623369171467691930720937637862932568001540080528546819083931503364314229429806872484512629773044123491187318413245556730034618199002147253458308212669730112369663000330834943522926787706319348622321794350254353551235544349412899350964858102033674229248224860277597173954223003317299446618985448094013969036019955820788875576784110274793065037499580008538641357490045751817653273288434986462613181926660045602575317341706841835446567979310312297859414255940097744292372254153901615372919655788052356235667305072399865152259005159953281049016395901204857190070941965323074393020143664320658963626787670678182308802019744185760519600878343170169073201479747887039485716529271402759620233384468695391912665617136958083863022229400592998275532315317087761765894069467610402077125025588995288308019913413965378047911070611171324913134972995473370009037466139767106325253464488730641530261635903896608679539736535446353137969873152109161706155672446535122525215801361770738915733116440607938646005278556550949863739136754108918663657920485328252929576874454139111824852063588857335117211347464330388408894771394886862479412306612687434746014198855291979918156530110908761793424221870690355845414763087173369911699590043009631162509201366168721586358434115930607792456544191120061545630698279811910477419674688294167540521555238077343043473872290973713844866391027547985929787587176031409031083055025847817852572183968618037984193457766085764113633978511656356430269420218207520916095951145953823804750673208382300713242002968818555538427225645250534269043168266783417318985604770442418413499463755787521802869003759633597399564472207464845715611808772285720844865222752527665435502537974571123917707857217774908504433973203126540836240483478789326308472743808913091262675734282389430659932626300030442914324450921935158249727418914898714004098759040187607953206769950023699862209228913930961254013879953181496965860188885523877945324830639619834157780020542759390711927757109526129219417721928347973584291444090368601401911017653879869727822752338021910208181218041914406353887133621223552491406579355603306845064194783784494057286572355476588837746517437216151989943044760639765946512697124047608169670747504391560539388798407188931880208452538830010907764353143810795195078130231041349118602396474684194546886392973418736735867531146165656207507436634764227927230218795550195222304820976142524686880890925760496676431113316772315901795835195937170011340780465473772142295211194351709554954835245453557940130620362670104161996870899253196914301577040455084754443060618250325846182846979463890813261884442888281976972390856287693875281888984844267756581069152481473461722445242720762150704055148595527150119134601645655641235800285466986858272661259058487377064290557380190225303259553330816438699111682776871797455362914531580094824183647418811106225118157666370337899029652337261420215043424578559798237151698873110508399529371739439395457889909987790529561297412210755855452605436806115202460630292416892161568333652689928583777428761315529740456580334401170242908877055145667366944730611338961472969465307379042146950568229482977580058728152299350490181913055553325166570805982009693976531529638671323138166704644905195863478127988012086634422879423880226867022875308128871966616391704658655507294424259017437253821493558997001259629243129652832080115391003426842773636388192080352314408930528140009683284153170266661008174450519662184544658210107477194182349545607251365989181750057046786803181053001198612897295048149676940162883051128007491989139654635401613489770075477496513627000950586183315412347342006233420630766779792155698069606811301200989559627428358202443013880944560921081806874629979900185083740654608026217381526993082102800514517970706372419062902953988486124493825139577492732767779789389762252290988354698713990166349968889615596396229862331423107200395920691194908445327902727195643835268643059464739680210540376552514772532046449228834206322167873155567652607185225028836175955668560216415563508324323275172761345942026720816340356424133568070865592885538001108170574077731437413467427986332681662436701383983468545926233032204743830546635136991475979175213670416901277346159804350248380203328826329897084830006507488815601120072670033909632192753558767891440468254972356990047289842268575009811227372068525118838723915571221825807267315762747635643297288916386016242931067037381032603599357937166906036995967504400853816005943171159814919751667734005523174181326417992121301516551550842777404428762450760921845573710550386448336130308211679559535042635918830370446318394722227201352337135697158016851611353552481243988751832872060910745622048631577984330738175862728405452022219902601107525636316729090537816855793172361609869582400661088392786535241902214268194949279096168456645909992148645649650360650462751706066071547118667912875008455496527960151038978127548941248532968239774856069364295443009187696852315937639457057269422875726941322057523942240965354614934282246856861649811596005835524161718642042852871689368539326193311621492609517387623465374470290582023550607519891701953287471221178416587733299775041415424946816632176709712418888158749016784714601903860341742112260280252219873018780831468376873292559034258310893518462057410053891774427977925790985517040244894975598165263970721290055924393922472796004228518448331163803276407254361843433031389505752896142023671937809164893057090917370769812516951421132257505564100926451087153044398158440186181874512096709919692217684214616211600405872753302866472535359856179154219056414742643201977304590922587448025997977982869146030857824319302246820211197389411357186686721096794791553479139343245105662412587400613205578779386647453871123975414658871129799618210187028667075403702254462794868748424470281517251477187723490971250798898349669482026950098698817048524901525886178126438653745268254141889499309840643289621841134048872135131088297341449058797789311493513988514816317723759974502302658969301387381317934018656911254734366528405747610643290509920310356793610293839033539239702040562022423892594084009016893636303439449345230940008965812674119102609488912863239940052699736500796479308226839383893412046419576253610924437582191377875012505365557850786083291147511244350564980465941870045139716892892538655455096062101422188311934567011079917516031390882007037243639237716863412614864855407040802067937118981288838160695269418715502442302593848387109033280438613683325804953881679889449768848498728621378989546451876596814255332499199425785747392179118083245295701321264481621425218053020701116453836086885038185527084266222442508467636440008012686217195268478999069062354550170004037368115808216452406505184152753610543251326203480512368216155164849314726947246016995603427951304026715052361905795843604024303774356730688890477361394489965267453727583634106378681374682827840720929801135855498925608695126468343524040241248545813169266577254299991348240306955928218550736204137899270562152599451789355288763367496096757742330407489380471533690484309537956899798843134564996712323837745298699971565315870767955892613497805146223621490660031228302687153434731261788863969617246498285996248860500286467182367395802858573079980938769734539071514379737570215922422526777411800905050846122683921771990084915367582325396490666889612132002292195612206621883698944672513215892772907893658298064556474640709887385647420838865219399239006054911747360532186138555975953917936333409455723600966204709236146733120597083542680539667901915644260097742208410349693815293067677978021775535715547225300971358708257423743629634182519434232178383861855810691250928031380570370053964615569741829909375699476397504873740259506930762705193474138165268891628316599612046679242196206327989822062109590353629289776457195782396729573576438239529676507970848425069183093053257710184254003940530136432501216369047299406264935972820392929565727157757536066544845354693385570884029824186349422433028768873230856254806807271331451712512438226639769065264433549779787527209012781691121120684002018402756809216715052501966372333895744858572995926276475477227901555265071655524407065619412179721588327783284814070250975494460754499461212604085281333792914835588035306183026726824792704033786547714369245112164085191821445197966040464639546409302386496607593251565219025393650186915321888858047788101296708757010065164157645997685051931600192176088934997345644928492458198929186157526650535269623615829944495945702322189594415364470521500486426496675798854192205549888305670815342473814368548544515431022673909491121565848749720427952668273981612833016072720800392027689711718251868042174318538568764123950481315058616118675614853181471524305413724153190864078834897419671353175025477203735160256349966202829037525901154653278157973439841598602304550036461855183181068605283245309103293422731409645213970527398518064200483936883756599104734019485745335713642784749945057185860727393540830998448206501585034949083011871823407611389237880071639628236939281873456317903667641354605145131683154022386752144207596866381397577373512485271376220393589090610229583008864424642614823620056317477151579985218585207331862440123485541321131958759963711640868902549957049219819228401731099684573396510202410001602701154056477663651178295537252801871871590781490236803496076085928213843615037875446321235179407926495062030832831423009979798249626257883993201483326418183981291526290984544752933501948948717531392987335043197493016782476904669678550678990284823550353229009110689783729165295795967631110756686240571835721174975546043940258393397136254689631681539277784449796087973638198540000395584817921029286833370845216280561273769052886185351714913388215142422230475069836797533143384195938530322181404180398820468042885712019831657495183270033364206176838623116596369666502569209034670037892683420857887706324990979267806576476134699611836250187220095715820357028320609282935032572390804971262442484654627459695935085245697924762251983404580836637082105557144068978803767575824157321643529863995821431188102864022125487987094187253566140417837575882273273401193225531374851782924556559607575335562832453493124815054686445630825443448344221129663532032341393451406137649165719717397428752400725165915217482500824051818034200914033081739413879859646849294759606926664781281586493195815953247720047087850114877189467530782058381783339989682890579985548558731173711511136449749840049790921511082601143849371736410353625812007359675256968221760341732823981796121450042196210056513451337131606667013941295023335609250093801366334168990844249200640201369627649021418313132539340142513175494436860353997336037602612634445306691525407533716397029343918053638953637700769755881978879047990748535418766314947983246005636455007301126945369313774461735301808932467321535948169935840143239248664162055424325047702458062750107410990255239081149752420064435291405447045149388157853021513080446156292855241902180836390781293876491792591615850068144899946825552149641882093214866406740249193005934523435195208507120364793667552839853536481091473676642648275844726145554426016751903097775845042638835996081905800308754382992446465653135137067601940855375202160226994650682438530857285027444910813629457956584733197697722634466652398123206231211770254689087468537044008324065869187092627716823213578759097926225519891531901106277095057210765726321079289405199662464759453261003512213803530383614820871953851529954589903400355794042566602658523635831179587081907426906624620755682904916354062619989056353285866608026228334487768401586124495107460570011354928901524748260907119412736253141401654049484190186298977615490075525562320786277163398785180656811552332625105447933823957814202725035720242149885779258733004061894924661729206286396629608263757452873412521917505912652401455549320241663440230815994286005499653304048421858750624056618249589086366380996373895478097233181693666331760785524033746185602291389672381117221008183649287325428303109869139814439596471653686118790802299845503209388162905878190001161683992584280946507304340762499464739176272096085973785454043452438856585780449221823642491343401576433682267714614597054642559014866280888847991364030380626632572377521523674473931969359034154874288811535042681822074847493011477832875618373042537413711154378480490668611499562989707899427593449441820949497035797798567562554584162062347471239687418159165306138849841796643542666289597900077887357039882643598425604654221541852365915746075378778756349048108297824680134255539079993005238114325443837944053755291399387530233647563017003043288249370109074486985991051255831465192881313022406509920680650852430833850991072803732414110065395391235431832089404638830155422416904869560389826115125054022458665517680968147518423241452846581701724990021145937698004863589866387048347526740040507833688859196156127566357972371011669510942303621287679909674167053477100510890528319994742383193091703415138898977487742390884331192347081452844263653010176201332358130127465095837009626449772281261942225374539508549901559874918025550438243155975272658469112340091317494754982706216619670038322111737813761453436399691977651053050532054358033148703476482836439490151755582421006804418185793470595854659482360320908660736726307460942728110995394263535583299451894725758255252844722783200933443745801490635875369105430743727590930464748426272259301973188211690277148419117075641652534607678198181472514047717527624181888331892916387413044090352363342631913703114564927066987104123279118533860877750334279672960514241981703085898469376120729498176894465333017272537290600502916360133197332962437024741746212443709103021867483941383165954507242588434932200489330363478566873591264095419300888410545707872143133331874740343056295812794004575495318708699560809882160228113686496441027136857415133060276873120437955441750689936244881938207332059689134536352350898818743825635638927025968120091122110760115894312913319553826614941492292965342043456955196989807617516832748552926639424186557553522153064729311194670438163608801107670674743032836563069830638431613874291603119258596310190267506638401889471562599540277956175942918343672410945812019160192808921873053107197843556953970526307633480591411799125771497191187238849089772486106229548197832201330314380006463531232963381060320976634376031100770828791923137875749303329524190269810660217552689417322555329332639769794414626773257859695327428355187292250212492153465580456458762407568072318858107265155139507265716934982154657558263141301115839860909014681246109780370983533167506870122301255337626571737602507576488130453276288917690673361864452668278460212306338468640147641611698557631266535479286480039376503305096117789413735763693081995914284201875360119278120172359063567979261912675762233133551586372725711107848034815828965153422217373506061978285606258847813559662990448415124300197109195114869526404013271609191234806231928961341987213456972381009599070349211608223125057207879532367768250167519088149379171822127203987344685330405202998325568980878998969539513240011351115708694103197559305395670007922578403294346808258570244739888052057238596256810712594578577305493496049990564311674019500648471314531786525136128260245744906737470380905884597475102283062880497320700677537131207816365220665500624194824176534038222629611381635406904281354131679121296603873744051200650889287854683152010057210578686560916890142921525230508507465793658431099686130225258205217689398802595604478258003365352072809303401794391075709719965380259569227047901494875736137068651079868135112207164752471328912987843860469563152128993531175980356487830528367570107422792245659778334369577357151328519321173592863567712554651825617122191675825267187562642483483676287470860532760906791862344304729503233791365079305666134739487430279706638470242734366005697138798885297806873677567978149326104769492657437354790254986306059860300258286757599030373290553719175312842119373929202165211752806423900067249981641717734161525395706899960679109531671208760210349739391711713922543610867853569980369557005766269250730761037382419817008555427467286014887224930607244493049048333328394119668475575008792014450540265752221029651099364168605987184040931657099268591174535707595361775579207642137819876835587793968450884829657342847346077625087723405993996430501453964664441488228515609910425562748817546523250020518454490404270145006538532832255982101394158512336771157176599957885959805756329204166441931017696594010710573610648328418306427896133287317886043301319537994892317538558408748719059440867281385362751679761190683354012512851389663322745256785862114102605153888942984666665415689293072705213216727580532190972965049550443730521114091463294035101124001209000803130033196716873605360690947610623183832550684819821499124758631704709133557273332562846221437777150905767759004227450860749517267848715849557844728439870586090636956970385522204687282452117378380336148241105169881856584398192320810565622752490730576691186080669652862052517004190851652018268710558080828424765657109226434655410609393012289521115733190175829975364784414743665167151464271781192182178725254263168162259748731416803841514718845883837942141561471692685430141634574248699598013200552061731470908969485062472063471493786954753860148447437397389111497401722237417377099870291418379259232553127719814916498078609674237337928674494711843141670734342919379834805305422335965474551761567787637660238017655228084339640407163276931016769042728085545637685055292531038682677514257852524868439241634277975444864381301741551268144575818684735149525310185066627854664855278738719859148339542332540124033490089155189062759060189215368201067633035656372557695367509562868424459547579492333787605173374048785800446478118682415799682212794191586925693339053581469397151500589513501989685918234395521029925419437195876852974290939928364651524780574625650090554772130178183771937447265400390191495917210042743836694234337228284300332447230327030858527798954413566286183773479749027670730010478956341321333532477649770706052503662110347424937065565103350470131353009525195733319077830496335671316313839675823634158234984756662865308677437236706831626368115644350333819508384314397491893324858588708426461956422182643971800508324349566697273731620089931250486005765499708292942468274399467630235117424123123839275496758966018510684898535463517123539517895555694801648068175868251407497669721202457176427843351161716930801711346754173353079200166277070823889477916991390144112737402142006106552672110125747337643294194190681633265719905567911841031031823763954646970850001717704296100441957704921933674925596068950531470897304643032657947433851905335541447646242504944351366430610381870184461272075134371270094357766959165195933338750903127343461874033032622572077395637198455513631946830404207252306894224412901089068404588906640164128031613306737223993243837277033443438858447692362117541163744431080219912076861335841255014366579323732951062787594368018239478718017649689033658825226798203029845124210438516411530106766300754708708793485894044606144056376569708045522692810007886160517249005241008684273809225289163311180336695993084832218906523967901626125799125270058027328534793477101415205210056238741571302766331593451376729105540229463269422207647006485704224284876695690724949835860068501772507289446456451595569633540386032386588385258356674703774877979513794043399669826769964600734522589597498529289279114099125858681089439853379907001631960274114285727546734208469615317145635940745948418627993301731239173980616425377162154074326250880737617497556162864440446975671483084374232644026791443589517384735115054292533940059557709465586076597275596132685893587388110276625884783110922971497864426553117119045336509505026721276570206773651943222294287630668269474979274943500759680154571781323273084540741485325717309255957878526257693764674360351139419260396801108198727868729893650669110848718057140938190800330876313206934053990162021021076635728660751907718235067813120551971058721401869154637522196896764303747675622167554630945057217725120431769239054612591180756070071206163311310054111488684963773224851742783055008652780590996577592904777011791988588086331541765279327227803433173071159558137164331515179961533858606522754327868016011389548845866664087667183292124908783123596626432456669480726442035611520529609221596930944285337417795659151392002787257145859527361496975208182946522879998992127820920695211250242207427989685113969178283432371641413878143325775237356714853169294257536616670498273925405054177782573933897310091019344179968061323200624206266277769808391276418478087687147401519310493148398237504703472429940828004800199251442972679858227489086471122200182049565905539514764159711674091191621767962224042758741271637074752586906547359100689064356373822027406330360754234188179611280504724978334063515340193468930338550744309117538015403892576257616485390740612484180524391499780471596733392639321222962838726166334915020024974137510008061940079813891138166025895628126180124079554619404629297665671870891879606128189699487057040793414848459835653138026897293069958813839077656217567014834237046473084922674082983012232512002144946400855865334800959537291808009620053957436940535006736014688718584873176941331838008965300992206786092369034439189837672729818586291716465280933709868959400161368509539579136985181204575492238596393730398699553391053162985999332168874653921829279198262674184150574084568004844607178822344053054563794521546662130132599352561010742207884479298446833282947423628279483938297523991621046829351197393042182955914588848992604742459520354326672288631791540690653534164007531076137772290083739388339122699015014001535712823367003774181108058251942516796079040703950925161880044206782395208328515376606117541954731466166029030338484026886522814959922532266678020848365094706142892826593236531513947670442062995965139894053439915363896547154340493053325321552379220221482215787050547786991524199000470965662804452112342840858615277317896930607672943546557975132629408482956857215072024535404792633464012192061588581238987006910360932308518284884974415538598575416110123188748123635756734290712363649602523325497317010287994740715199382020375070220448880627469557168956604758470630373422681786226772458518991811332841784142817221002269419647631025515687192135412258770520993506965172753493963342914839972545696907100515944188322346218760525693382826813473089197062966346339946218271214857901417320256158711941745876918538022304169936911233358030295244903588180002964690466956592983734841838819656626248892976521811299624880807318430207953924600023574088871035425037396005337070930061293674749828265276275321835240907102904815310172547778423555873275948911207485372070630432431579701193647019825376753390047186500864643013576376230749556540576255635365482507175326677430975013224347866798476549871424970659684067494945506709224734658089746627865884602496760653760695153557914139530031833078140406139395336890393437343305083605367893671920250358255919352104678464501748392051449364874586945591502713166203740700540566913669793144592153873940553235293096940093095828813895137767431241915915804539639682530619430093898769698226308893881609955110634008208769980453699665581189304294045077770728121596712685357454269379263971444619118461847684680460348713404603289484636946905218520186809588440201577011502199266257921195875147149299942973244489667057805079351077695784916485693921517960433221741088328499604203676117609744422807545868293002429642104212823987024723889378223056860761528021398407831842762703639692145123877544302478820879052035407673133571890403475583503065645161288899577674998730688011077775130702413285570376785383237166679833472937153751083961873635702095242405417620735727995180265524805990230913900129709604445714321784836975081911202337341767799548229133286208277342337015710266663864032453381465789553470281131999912360857872629997173565524325847369256134045574071204695968638936371756308374509588122353525398447454287271007663513186680759044106695316702721581845401193883272266515852862647387960151283715855530703613359468289336988604441830187776855176577807195871365939766568178821146886192059072532304074769380491356091876728059161352421447611658981645534319227402046592656526575422414066611476532859257936597153879837438710099161358191332080865294884324430614293736311098361323799690335995892420799788793236723997582199156002769090081179121537670628103534929352726651216179276610669635315663267740396423295859084316392398664525679235687189958629585218426427902279600094266479944528252489388923524040989076596052717585420203677728498349336605702508276419786206664237467817075303906641249837103205175995437794876889453306663950269306597859984597764877087056975011347084115566518309256983069781095648778439849266059371260984219131824294447725705245569801122926288770414842301126469273045365711449370603999260673903256884915737592968198869020234747598357851872786240039139692556985584991759362161702373569304278346520645600068571088902487373933191846447855650453909191405158054917437701330819502268750433125399188109623554701402746762152979870459775758937891752253416383053210070799668446253907372762571842226200628191117200842707686849600112038363917912937064127319137318335922896557544874773026350729793056179050329093941279716402354251864872414601251881806160358385977158644982832131685691627620529619603852908510830561079055656456676816377511582285593634249101274387250883593802173881181585460931415384810099922900970796651732755372384772723284227099265884847677314328205944660913091061733012864542172748340576169910313608182505869414376778430175442091031189199145668715848046215208437585867508666176850767077437889841734984664951958652036921664769001134892130448695100927712044768932137466976151760199581552296002355752934246938109487914059135944484761740967223471759623797287566435308857698453081285009773464808937529430333276205891891495942139340371693061188828641693882342973846223370013096645385425646342024503558907258673715092831423604274037089855456519420355253806672708912095225238963429906458042374646597588314909975015439859111468369070531737733556258941888728443298034540772590412524369632574620639324186021973556060157542274489647653829920178773641155486043639505326513162300191759632288390925602491612131951342775482017153314446902810282258982520868843570815188040625726241259779504838894700221484239345498530202650996167278257372181876798735702085347329316179883441170698324308618073682372179495676876158824994105012498783402846410822317151257480593710168701426127719241664055305941600541587616894770913997931757375087377967566723516645993912005424930586710669141622360513958418225690236505454551935089273593202317382057217107185624584087536720600778586967461194106633417751973793868908287225577580650367834083091677668684458689787962580308388116829014500983811485558869663484349823639457888836206716905340565485660436585485458324161871310709457577537672961208962306342050497432755065442602067319756132974828869876788737991794002130125762938964253211016266082639109860260615195757507517387954800445609816919604475016063137891599357710169086869129870194228122456881796836977718158451490570018967892139578334047032991589890127787156700147230999859953224751088018547894332459451092390362746989769847731776333995448915053420054743494614500276389449536743176101447668557567517911119673038196325134134378132609177575931947724673370914625061536550717703713422038402154980061130854667347745303147221826387583914305606126158504027022533778703861407294324601272680367508416686369347818810358948358772251211074319257286171143385669910042223853047846691425275437816114948117973787336212708660265943171059230377085646046623093914328818320716583237570013853584184634211129012714893148848776125916673509753784913616809314403409914566749345058409312524290259166770435342405356449516765031351945400916958309331851273919601411625665532682006465216229990027776931798989897545038250305054542035562286746795648731342318268250679031418986459977681292024626598385765427268058649289330475066163114621513670125105458611372810721023116313129638707498093239250443288440445703946882040358462848967114826657705468429912117954185827524090535329255302150915905149847083105910140469117634123149858971653573913954130899052120938217753755379322248116696376650800240598655797605201533023482980422267152126555086471082694872743868064532164262321295607291930178484136807639019866791215357992367704278086895500324286068297638806942404460044249323122892063965458058453365986796075100754854149443444669656600669775833782686089607575644564455751999447050464350103535757105064905285954212515906161558369693351659849378513736781653688918654969138510036918169671061540630418365362576943877976258393468044602548366123378409774770646807060528714852746694746830695228391783488619054302362324126155466839330272685311359939847435807939873804283743104559888584202316409821937762115402797020527648082997786304482942564336382295345499573155135353006850235310550266754273370496541002350173444365110524247455978630937708602531157908108000842145321915609182375998395370747207496494985636026063051358544928693440804946038654632030171668260379790149317762789779700523119027627820960405044462324934298192694071589953511763276167536035206575589411015366828610289733411727603494576546602555417451505938531580135482033505422822424165775301266255594039052914856713607533639990606973091188168796932199538484232914028586331910998446920659511700879377588037371593142921870828808792237866008714864542122820478080066462893327705391971119596675893793091756142080845483369166798685432077991351639447833466550631169381283643211763464339892726261148420225537350930476124795165312333445217068008317782826523543281074540394846796848738192913993839765727338583623467728545442919684475434365659779329195418068485256434875795786016530656301187940208108251574457748365740002417020074827363931530736027542475855448959051733468903484012326260016265183241458878525466899506323206021775631540233080906475723929204263789074388754030882432791940008215472877501550464470456452730287178655289218437842492919618651000713575144387280801260316555470680150570402404957016414517449465696391336398390532831256863345626215692725331429210247271718449100669307538656358541549081217116010869119307830305604419436093932561011630782476158046632473565410729486626136951488179128422720906773722948729263200423139712867203633255796515880545843072864574154686228459636432677012354886281959502073218556303367780866295137202683307760643024549465776157147090917943824000689909391295470953542970409534242975543944866023108547930710643043031911056793712764965139592965919334646853535693032797066302100994518640015113995469622907376093270863682923738330008474158201352807821052290350606410778967357807755821181297845996640729212111973276042274895047613683238640774602650905605355792054624630844274069184380938832358592297845577773635961062993813442714992207128255267198897480182410083047843429891813580954324465957979666750221050331954506375329586342223294884470565134688695119603857119475051304240559894297080045879215893961150374625140315315189957580152204871187004761292941095649044203179284689386731161378649321722287223719638349970200121200136024786178064846253140069761635639784521208114817877404879095646135305843836932760968411084990204063872092117612698095455901179261744981993290527270696900800738879752137000664868729470657642181091725772464650998269206944903937762186300846305038153177318666478242287255133385506133641182229561558448025996412023165848367831944643602832796715161408779680033156852667038409989601798761726006463442768359724891898059212826519243135773395797422578825038313201260213244969977385758779918451604020105951526808974617743732643025225109536440063240487044432417067408015064259707713874544113459338782769072104150039873900005861777976797232305721498918508317597005207708588401926195349404583434177014319565172352532459489125100871643613335212337256353170261493693493672395424467579974974493688894451542704948868872799536549765496518830279897028052069308961476468306637137805281713748228311864451172901748538051686019793476065966266812789008688379970134778561917394886069408709969857221783609575492838437734690856600964862439672231776246986658491773833618799536615121234517122955627821845900737362456924212549900179559729025470947649035502342831319562680447141629071604269352897619414323234478904187821302168457381837567246179754884413420460869786115662309034620997515683021797656273060052386326343848748373216929549341730852462925901659608736116413098374570562689547582831230461351919497071285797059232980746009105949580168782572196632442070106272716842116370151567206091755715389495795440242164195450140253691863951952002358408955601366838418423808574732013160918229966432846459473469352373137218364539046921811796187841562572941067571816205754030226568770496877411882541385614199540050194593236117191780590343809997948196829818421997008460401698838357998931192078764185080398244330404103096767533156488835234364901408936238606133545281203627276507120572009048894976043901925989772612005432343648103009221621609317536601342626774381339018562313313099385912847455653918938872675634592200606152046951022526263052958206594715523922775390791212990206130614344014723595849867973851020495201375007502718197897549574166870553525147032493655959862470145703462151035318485142025431654982936715594206291918698022534899857180827585612173407820345051939123941072955715793366176829624307546358094426717052290472849394900466053241866556729718237464768056451013723701068284933358341278191921523998481075546772696387943296449683705817011464780390087056077856949338811179629738492364403461416233084077267405552414149579575070604575143699161913869877730657243091227143661666259402562717547466746159210130392426542683709342681726096712077789012745156697730208892165840924529031481316183134599707430209328300704410210945310228298583896500996442847555836723625593512241236263171105735869973865015243846812926805486737631668625879014157176430257986078382761905847598182416668860418125300189241770161523009960454779887613470701834570771246707237591194777353401596705153288675700138122906857876483989055383326546065227380163136243344403681298810417945846826199290427717443473181341851105453143704162155229942884401453467391535810811948680064280788754367537555969903676722246235939816099010216802721988133865618425555720776273409245221286206680548540263149575290091414081595489784543388277973129979705682208933642737733176320945935131523861184857838705156178818631114386102477114060616904205105861212065895338948030571303497820717618597360348035909021638712466919838039452087145371706730332866393644456216000925714065021973299241207282792869634791014294878049390990647709451950084972038771194575545908540718964554787268033955754073376853383016352453598217933691109254186830665757871841622715378933496467128529806266998634318404463600165865819277527044155612108435726209171402741183093302328723207612700911929426039554810551082881144918853322027656657135659600300427868174621142730915685869322077030437654425424153320002205341072350079217649366035379004954656558310367470157256503854736467399695187696706446909802438435106606069243273027885574657622002783624449826506920652639284304560128621697227160280209134398418224343986387544044405201378299569264234347042611421781576174282863151518312326283627316678942243044176111122920688229996088079850440012313901186113130772074283053032298427243559882732671450388322057459023219976643374292435811008621229964547235426165846430540495393297129523761704675551623464150854406827051123802178855885294408104394851413469878183343627935374198147988994796407877853943065180584498686297644685124245186351644066308614901921840053775023148357637392476576664781581733346080588783066780054170022958266295385560324527960331011224756795996331998074129446142552495168175324915094088563361861388688541764419873648457510270668099047278423140772219816569738091127556746371594811268946822321636439665492777553401779866742141507976653221704185137293387243527712233694527725506636538642858133031424256570279342861042995327312026077867248426826549710153160027903877510150585714880949548208161154615582781428863726579517763289012269811453336838928846000761381081541409643896537678944039335947432485045715014908714237230039868375471241332303283619063179550576640909059556667453174212756725960046388441167623897529675801125523265130059799394132416926673333796991589434355946331543688501159254043802813789510705384911321006821339994116374917721466698221697481162544995420350560950201002568115491543367820731224183581853418300732454402301481035781931218775959765827136854234754862812089043801809912202761820979111667292362164009003780710242458882473212691739253754268487139654951587795458619039830100559735509498113747169249282700119742894025859439792142771978575108820454273284318054146681789114347593529516681481973212598654404599443054344395598943573203679433782095840166462469025502713572619873119342779138363939052847446463787425127197059290637445008845361574899854521371168595947608070071619762153508286264384440315020764370722324311040355091632515167884507834933855830802110495382090897905975312254685591699250660443862820814507427931244204040304015402848057108186039005795499061386201312029699910694343506856952955058042371855104484869735206714812252077690261771043755371529104755778200093778530758547546571515856596186776115558005543738847031332848190669911191854792932465135259533196428698856998453614970441367888969585097195497915066642099837372183599009158738962852872739362796605968694064387563482665332096042617585489955940017952070435943425663259170749790720390375723174463746109277827142536626962910807706274149000171103843434642507679125707280823127591796994821864044811233112237453350846848326890657259686687642822083896528601580907554888669207663978759365724948095012779806870611879520968517216868698792958683320721145208360566955411104406764152508782585884424526208973865230882534772095208388687551909181383901254337236776605596405277430171881775307395798101254191486439774209186307568521958471510522720519722208619212803250841306272878428321556458018360126361884758329268643813239101586192343456089836692546910335049679720700963216785982037611246219476020600796339240498404493217665747836204742689937141758988954575565790464315331538177692754458465269634064178847798357295650855764774742276398678062175917730169984191454762941037298278370562080387047146014137984779636636145700403112348727545362029538402272518199067230005541054551167714366926303869226223316752376256524661862499577050958897897617779630992829595930299451029478622908852681328801298181389306533317625936753422551078862435905949375079155650382135733289806983879482295737347658017209698463399078873331790880221549090046512090818676371924459907332672019868799379427379891312637958499902425046505919125206720616945238224662506313651487580628802833483756920193603385245209694444044111380738624437164346127637246518876556674499861581947758327509246908336982443303711388490682968645038901359796721764127642820652316455453911558798617273617316096058793628912496614796166882910424076487437461265852958832531156515442223034078899569187759868930989111896924094484719366494668971524801876302031896797017505022716539281375962494942881893093821491867041969434033550057445825680969140085804734557421849281638933017213097852324649941391479539881776864354558742671186051024103204081597474285105799856330743492395179006903427377927413962337830748096016342299879682629166779066811914462185125342667523382248240453765819283732174956918045611842779974477364825613840396845302883148211839341380822720431471410641368177366026301019499644019062876484013607654519086632843125798846720109620456576800260677007862340272321541221152263505702052657896335428818498972079555453589228101495079131967239948868978642844690391026290148514904338851579327262113358541565967585289969927498067050767902988965059902606676818271799596978732124749109371928654152220848135833613584918447489390914377822542275608565432460812568788960395169781276860995364369751959182296957036753592642406485483492759025999167608760225171333386767491454864905805568464161358824998847989298393383069351533841450836871819484916427164021268022549508725808326225701804476430763885474474174311553289157156125074225875551785445833231044757248502955581558718527735637346704459977775191264617427439123296316966600797680187215342065044125174043035823736808289772275261573361245995669859801091009446927739978621632885859430857923954139217629602285125681502742490326052225934069003236415255118068466151125691190181608682548133670286187380123758482883155459226204605849345417354030925877084199773416543418604673310056187129372672196744351781119206381507247618101514457817195732322633473923220835916090474687585433187762623263207832934650183673908488598536733935331850345499952386402123041744241563443506996875925822664301793789128526197177938821637146533841421374849273842317377374857358289577966620833323489116205168641881532231821851315413661679022277191502569871173549594186367512065869315083256137191321982478741166684951635829234965974902165134334542239228751802429771082364001516114048353176555545339504603539037520352041243206588711245495590574009418597750804680918573520255231517861964746262475148890603697609356334639234568975610566049261279461287487308581304468188959076612949356961861321986528639209098256922578549486669018114433588708521547139554931331969930258560274872268294397333472253170134693234852287840979501535750327197216275277580511072401421715662477124356823342649410448084535356776005712902377183298610631734781317853842973222918289811202294605310449439159884527385082655779056772818858840628354492304275214505822584097859375831639301345699988039826167956136672368390767654155614947844706933095947316056634698900746443586907762567718247261493383294537528755805313218670163177452933592391547818047123587180203154354309419977423213082645091550143092836095908968320149318155935113167794201732865796622716382609830723956300439978678607039255232613214570167830500264148189519512969908043707734569836372490390118715309394020255811328100393711570988546676558983275938471928967769559690688600598122952626791053763131777586277083332647499384149617472454286573982762745273967299469263581747963408871831193157854201197561614663274447451677287018959026638275220863088957832029690439205547007016178141934223743937014019620660289011324610095724600421212301584704857441033612351063169792049347898430470113735795592643392991223377541457276322401014805534519617755345673745877647312056383765546523546403599963595148317815359309271657360616512712545213721169428082202657850195910569482528296076346542193827554453030590064386536539807477715433148831060845109199883938467440480788073488402910351456436887681349785739840371467522928450447588234800553776392997740837759890659032162079949493517135331796033988799374642259587000354801545331642598946710647790635153633492929543745398395021006536791698825339981299823093572085336548508614944113458372865741156030593662330656017704972856740731215586284186512657501407779186843352179637424251044885446637136494768146413920721670914332237712957308794780521525447326618330396812413906489307624534291684705860682096191596210062394283015613789804938567311528161124996634019756293524866162298402844820510973909038709618282515499485895659456679629002472747762840959678863078553192850208445892719383419453162070341991917696261678406435551727909637925837736025918105725560941834429803428791147311305065558235171753379150364880176537277086440501284679149542157809604178203173882141391808429857289654429742203564256000842859775049916893652893359428451806972298144562026407170433474696091512533559750696924436540772243085144032505316415251426443543882892061339693171877134193519242618279262250246778153764373794421645649027768031294751905821808219018968549700051196883876256849594913529034048327178817416729453982278087454013638848516198296924696790658941274959497161153310013668848241501419910201265203068709830803663004796593607587039693628072808774409833183646317377575478838995486897127963558635699875976940479529985872327603430441747711796342394564446146966662927542741762916611953568783854942384109609444327627405778754871359310940563964080314347009222137385266028955817104587967085652694593533118067035971905286281267812782824459869901489356948363702740239586637122827636085571891708402594080173103128323942688239973527687072951979347816444423197283969377441794093829901013228530773786935200487909688518617884006027160834529877357707852081083556393553671795446154999182038035525451331629722400347734161753222278909339105408777718433090399973141771353468181280221557445433206042166245816721323190614230318658657604604737920271732873663606735236627245969467899473888379282045900047420158139851965649394096607675932823827658541155292986454001003041926233150639034723945102508435649605864823530903268908152609010936902469480476321609475779785263224095971879398356113567697183900548536784486211159713855765564644144790580704214239866436650353033112525073035196820732400056205810589378945574765325805290068145793096008785786327418804319782529556918731419897569393969905551675970689918875392695134194410163452831620610987145944661018863049640177492177652224480056469092471810293189939273767409478835408905143791175591772003337513562424172664373868297260438784375170101946688957264573527734511481764370159937174523565230107523729214442553721930079646438371420193725170490176214033289773123506894669536147786898311924569466389479625667348917174423672218687810541795006997572819595411212235161551567437482513745899962417523164615683986150270566993826072364721452877367531159692923551928626874286801631258991874633592129918717834448089893282638239055054655518556101840002059167154377018194427810189614484429925494076761884795831352462538092938912856275924108000003785215422133735061603302090516362813585727460094859720688747386508226818307537135074727224045169293755603704727071335527280406882918230785010739738729132072907961569209184864520591790319362973172133391768374434332499652161998366913898699430220914436571987273470576432466562627183609669690541816107730588388458318584936891407507135549623454957410078960685513480404513063093029738995269426182685548923206004705299115544367105418090211079052080849932539693072416209791567673425555060431893080762122123505667607826266955595419307311424491847412139144331358585103650449290643190331553639255541024792801746016436535075121717360856302068990198253227837776261070975464792794247901539691522455905302366873991617005143775195741836287107997497789042307459909922858113833806919041504865419302624502293308956155030195125007938517472386387070021808558911670005285321623269040778972049568508618300993264795807696786819164424901723460986994118101686189470071839659512432892986018270112497190056204432523792907946056547976667561270867145448725713470713349767620159605474306983145304753102536453382286751737472184492857377999549661128650128028484639083152850150030987960080843163960277990201932178897259138129229120868465273571625026699770073679073663487673261829560189305539741530971692382648507879724079839492517103629141664621364757311911624408028554013885824260911553912049717026526012094778994892480650921638081340209373365914324907502154020086498754797348816634702867561745980898224342114555983454042628300658281089924774778246155173683265138475842707585881144544298522816492731416622540421245248942100298694661015034553424295061816807793353493447575810009273321566025276308338076491371211892739328291984666746948496726321752796837659988505492933423059132883784673771182817649425618406113255271865257081379072983491756937781735148985644810480197061761260639621058051788785606304442897104531794740901114267524014996050215524658347170385206667688805042007010573607835761799678689049459995233265855000884150161171055074747213905281704930633168907454299326478659996995912824062105861363610959651003528185339886683079116728213139576756295616390179906291023897292489849818755173433313192040123703532404619954105229016280036666818146584836646034014493322397477059192321232467705778388153782061914724683491238079076133690354410174045687065929299670962526167752931870989831707143539253919245104103087809109465513046199705280772708189392641544913981757780005592269023488162760169616669211171821979222284923370845173766965222229699316114922921427266247993168671936467906454640111567620390860074757713276592817364246920315892400959724091623496477791474997237885068286962766354346494938474724950879096064921153320051565200736641953537920312792376231849142943420597532359697335409932300881495938403733213838253948252001058366007724053954760424865840746641461674937741131974413176767291215118032536735354820594840119014835619192355023736458978151304206234596408321954984943540834327794734274586507072843599556597059997018513523705697261420472378910668796324707914039799932385535842562920959291023131826062069362604510466218412867439806644009786205928791782759546963028009783752499483697566374409108727644194794546532784306129491285182042226273720156415221315524176939459802246506239599075113298367480428565566449193763681425550935414513684602948694666859916241907394975681172204708979606967524866578017928923365412281850542058952295441992547073891610390412193149104026657721245565411271050383729298175100462204292782749772595739665543037234913054874577784566189027555431790971997272401675874384441610573060986442167829539566684861566983262739958298514870894062938572696631990924231025781211922461018426114467274968231886766597356432710182806007934247917146362084009780145914229791898005376901425254620942411380986278428001842508837732714810949138735624282098066669914374803197582451709253147924381568868434076479787779347168540050775924700403802555832948180002735640554326222467676826590317137645087370579567373397236799507184709193775958376744374492104505220885477853580111989135040994321923617466415874010840436082298481903547010701669861857863381346485656314081737617716170272366150773045845121005424660365362676931587232166422088509209911813157090501815031144457757832868968828664830137247249620067321753015950582390193780693256252429615767899570864808967537081987827261895577987878095751436858406322205312673288332723428451290301118815140327430488222408155491344998678388306558603454637601712221158350607761165210272418434423365389717153838428977432888204866943303536750372541829791569733883800335802578398599169197594864017363766529266693050306665391109043974086846237998473155548093559119259599644341186612717916555721993679400308432233462055714648451916903651174899129701335190577304298436182107492651487374584527422318020463436128523442741978360234134878612370575979050369059096570248478673295722597940276141944192280023039794751623028366598242250265971789986503254471279602323271777149594013892223036404938582477325691407759241738216190249242600882345354681043758778759914693824863856226442099123382339608573379315298171235021302080642436491987746925763424862761606274682837799243888401439534035965856501630758352391790057791550237955796449034674328914085963747471811056237889014660963001479786644923952211680295125482256836163813296144037467688333941617124142288586537436687553703751502514525575551905842825040548496021137331862743232596486475021136219769930857055083590532068226347393518712847295382000314955173482955449897573085030910646300722300590365307395281950386420493003665623860934590461637838194387278091104932421354385506815920634470427647838686672844173041861914385350315210603405289014593931225552052056603383591051969098122427489442962646078751724180269371555877112764185475785786864189169947945073691642803080839462926840303453018089824090031369070372757557069646860812122455831432921085112591856196723982275205489510473324648839426610209653678252526157766603880357275644644190617471317280006922920863041335219695021744550965966353970070355040858455806339064308427639586671628757834289082622196091564036727336374321520679787341334478636048275055102456855303264501167335564743716448229212085396883930656348764013709890840842641638085937712469182516367469576206026746799401208479657103493497478535978540551023964287969343541361187361705493030253663004644377641926799565427060055929809986644015084382588323857810816322033487641400156731732558442055896505261462045885541356845722369003492806461677029558283232456590854708424867109299237680299675251204539709706938690162676775655902456039159725309659547398009148794948807632038676181835491850271614518833198409591137710404178752434349987683894030546996662571352485934609973486125259446178912083378833260804690474365450251208695976432796524625315014880626645626992674555792279472063146448682914014822351560056380043678705686156695501375864659241322427875521956303012471960657219771088236433576284847660813948588685900884587435331220989473853703066717105892854167876967309869462384802068743854649953536333460543495553400664669815820198270723063679883591457589678517721136827262677752469129598215111388291094981528822787508233180896741443244203578446998340048097289540985488478636348041012221157334827386614303857878111640955758222423463262895724836152589172110008666101265054302291060064807140543576996406383693031968607848823915760220734949303882627226210057528685718388111773967096939722996162977111499969809743311519418995561162188363704289700324967041279219810415169419954348676591697014190101996050384080878048614423970984870996748244386008911689837346797603535662102901613788287203884256051705059963680265791366439207997917844716819139102521847290880166657278545553705348908635850122993257450584729479738653822050469336486717298105133135904989476268593964856940177921930482775900495624349927085160901643735536773788634048249424059051829724395104807661027054102141369331986056156615711544109529570305972114064894032621851910555128520226529437496928838675742584909607841477765186548254861557756749854123900446405077694560319558809558136833540951901622723498643470158101752188949786674114646802752919996180617092839030937397824603752207658039885092212345608502025593957306820500062872186382783511424910957929668732442640985515335286215488131253950999387550940022925343044604426650942667800044717392521047376003000836602939696957360756196414359788782097278408129885758635331658152081805601303714944285282844098539366680679820236200496174856119027973859715750645235588888392472904303748002285759943543463388630447779343534631574585490256023332463148885858470563868436795022711029696633553548577296589637488882534315440642753823883734214177877346348004353929507702334356465909190024402195426056913996299996328856528491477478242239779277531478211066711179711453213385481378055248433354797538482756920862681601872688850586025181720356819376902446015626143976120269068385027575109920213257643884833972425407916882149474610881027092193553993843711608310618497129492263309942429895401770031385049209316587262842939075118149222833998674123398909308708171647757326651394553532876014200940843981779079834273412259765827826500499732523837590567909922605326898810546603858218255648606672599262449316788683142335607830402111088898993667306660461470220423059624699719756019354450954865418042391287146363610461558466429215308758322697946460901267207943675921934967820519855226010165593084620332580259342398304514067628518968880298881322493287336668326793917211055307185312830325865493986929489091649627926020644894685691469225828205166316763371847073983604904487287430229316655921145683702617494795724642593809682342650576992486393529935484126640013039484831520170027795693710149028112505281026934069235321867112825174542625023189559130502106707566631783410461809611620011777831603314434480073015709428372449609033404772962873372966002176029777909146843807648349846078278925986970279017803461750696332218289798406436005898318333837910820756356842322002778267686739724027248625300936605021833278038007834733526671225046204483357479093766491906811612175239694546173735447498753725937492864386978331373847288174219051456536199828200910365654376965509389897407699115001526130457626982815394430075844508135929634616039786450009911349284591908126667676225193628055110947033060779802763704384025665127103034411651549060759077429374693996684551849910209450115793508035554413088000432340135343083495279288077528530411530691500279304881619918440382679009938991074550648003631180460511903689598421591274755656088372746304837595715829029232124840486707926618363296751321566626291941914328965175244413913983209184822624391909760365865608936645153470084766921877709601155047587520568211749415482074099566028247379276373695037596877282636400260619732238909247399827206861203391820315523931245869901853421069206856376096305702502310125106094269003712500345644747479351276652690302901429510911763153283972903962539105880386551982785438859616770526125342236403659966471874585521750751133417634887056030268805994126608296523615249100426114490609878869116477016110891185060595493600428138079403680242815397288752380320156427972601810154232977332061651990787269483000204868612527310048856865598919333205410516879753390284697520155299216196022781460119635961540105795527440707174821554965699208054357407176084671373044193795520188858005851164494427264656025840635836424237162902743778117323415444323043483695737487036207508067917285413111149860913687483998162426971174870782985102607374822024965486449933823241059306975697852977967875312109284275570259745347120742599677079642268220825874638997497172370494464562915066976794330834905766048629832116179455937047705261306482052309066067242046041875318451618537392861374645744377085739470437943734430421505329170799027888592682665024450445218755014846751110430023319049731966391306940809749027727754462913380745058883816880374116013593582689461125171927470963008344989755395414210059935827374217927109225499930808051342629994009550078949711836966764492579406000490302459963417425956880414996307804026048742282113057979218686001681266453322490880616829206140994606939488160064035092643773001479304115694571934979854589230726650346082363416836607238600972102759944574263592096577530672519621080083298124956848519604988835402264629181414996992216138000785057022983649548080286869160705345429587265385142495257448676908570656472526240900208204493326895910504808591369221440168077022025669864909762441687115353460979376334957086937409929028474042742456449982561106712866131989022658487972686922983623145112277193781847129143919103279565188974490973408705658830355751805836445138638322906486559874080165756497050634855876983973555003674551934223897311380316305137214780987009648366392209189071947514246419637346011597876397915096377687247531636246026651468201899915538490411762205896311241124932082535727364963412794002838692469377601142984066624468079548276035447893734260226586066890714686822922364207772731398249799548051607662983579889246481559897971906272727762009150702069100479786685272620445873007382379118990506182830200437945089557721319906365306011586202433915216639578139259883892121650984785364249226161886210727835592431855459343635569450097333314619260213177262534105623230452006060239655453967685317849003787019643547954323404698755982499624048853288529897227873165703642435377831959499449927879889585564282333541168638222821229848423251888478566731137833086638173198724458715206576676616644670138733222754707324185535971709051199686167792698261371838000610752290826334222508022388190590911144278306867504670089159043755566515949486772691170804144706419754441117532054621137660510505009882123728866742313016163237058665922856260511547092861200130170263783227585299867808695682900060343245416655819891695833390011747672337692839993643846482989072070203708990155003799086517719620495486829751798578581529315272559481797700436686227976533303649162846933370084307569021875000502548061856894989318538161090869679867611097573461153759067882150232563215008998132012954808520923855188436376625523357869984418281552213178630838651493513909592921834018026701421080669428177759180739966448916908298165762177135545749335790010249600122706082446149036615904017255095634734981249993759234421312815653104171593381665247890709269621662178112407572108332522133030065945579395753445544129992600390761246969164754841714495044086778051181906461685705714866065715536340942449549580626218951991684777329641512475162299984388067740350419178626854912907484584803200289593251407274033578465311817353279249946728966348261857652690270764577417297778976839324070457262042459698247123922826363586491715521898712590152873035009391627237621091690776237578625658441641247210615908956010255762282404991894770043151235550966700853139433494820815775752163330967845659017338912585617341283807626339920391071769871399878206780017667166849327302348169221721717476607211652718669388635243468884598183772023701494959189784450037753744065028859454197244568053521754794322184281010820393143934546659364644585555262362544025067084658594805504061114530006848272818836354296210879096702569267713307513948526722180757220118078259930681686732374521254254157948440077183591998656450556178451899251567537562535617481690392282480584907271631397391637592470566885981054100717673574367496666291143142687075170145963647944601136811851865874775229404408955823685192574992525257721959944877980951832257702129288266316826866910679702396212569406453076697062604822093044353694233757523918262290070910380078931719951759363081785130066923994758689427463827394003942114134857382601860724301151169555191039477302578725854131925574448489680267785946394566941123781735698279315901187109295139103555266915970920393685341510008163331102013136230012042981281037410360026929180705823107872997910302864803871011832515978302366741179163705226330266479772892737713709664519498966196094351405964744663264537412771417291216719641569539087190708199597191107715458430451842594988327635393736347077857099857973238438196970741685353138854770726404117903761020142699253663687325810785551281817427787441415323826301390626205008292407071536023524316900954918100340203764348997360458511609551257841930449171457836373224829486204038175312304648839565548182197107746608703979970928739337552933820518367507967112833552221067461385047168647447757163814511676271307583838588518489414898037922690757532571780381663245847689664821387501279057619097913266206263353985290138198222998749342426743514643697686372157479227191214242293415658788924239289902542443266862422733827277296082115562964164410981993352382449614471599571046936308777418599645642195755937488429988913705504239533037770149186429369612514910853922829966273608991532386129783151430911637108464666378405631591087257337091098527459312317351850872943834833334257338166699134299753255511641220018236348073412904893259153378871082681804437583660744040643157354382688827983948430544506117173557546099143986674862271682414151632146876699248675619197769759387799974950323914882612746766386213711235770585749756171384628492064677594850805335747761333390416149014259852746630722689541212315567339802323063436207449604513883447071941871820687158868643063743499479027272165674675021048360540447592686352988204974838331728884155681609979933068614284876700828908324659666796651182476897059340419477169571087736759382205233590262072523702392733956927454290336929555804546788565135237170697430614035472340284633856394782638621369718401637506330250966787593281430878487875507064673131935521368325301365767900122410522432787106067998411347030324718584977040983896512389108657829544629921898594281921364129309188010344067427390304263749508934226459850189413202853946782610413813969851374954959541528458601891170469820321760060812928372417201938882782725972554984741438303191922809762176336545635476280483240249753783584766881655447232438460090530853084461144206584302786301992172001554901742827198614460753350444667473937207265685298248762995418792190997687099464902787995810303355103979320305465848196920223062439025241303592896115807951826609019501302339838174779103935625199358126617938604938443940731760037078896912621422663927292694596803734785542679919549703705444180529800209476937634998100843105482208618597019187677661894135147356827226473153155763319753787366763463198337577396295169230523441558103756523169950236834597809138348320530751047307072518375568839069657941457162377327227110059688136630199399671788520422160187708331523112883513703270718929597426313069774985841615536545096377684670198286547526441270167937527943024447596225791781300956678090334380894113378454644985498523224807920919614937621961611023241470802783018031460889268428256304365150907283008325637789383223933646771162373894966609157911149631826782532657430610342446908028010630314239842712936845412971757089211277999311377663524317695669348272327309625840384734714922639931168713271678199692088628616357936875021907438404201254381273975070628236321075885630543460676891033359193897464590732586426285498018779608566125619166224499390733857281822533817250252464784585802441570380602886934423336090215548699769366848580355939307884149908754856100115783690281944570751389557319230988300258317466396385116168386042407452505644057036154998546571821494129703858152437334893632937746584545465537234522760303594426218977659099862144443408575867493580171447930084667936215127512134386038130744371862034687686799565246533373143251607644198716317679573755183356970577640186893295686128004621601128987525294377028856089594197286016360922583377622822892908085884558127730068811973326438107377835757058466844183726910845192858978759521321413188583099712390319456619288234173487628415521139944407983218182265657034081033708549752153091609347172910229561843178454048151843134947489506729016459772998689400884478961379520885565537555380712503655140374947547525498093185188072173765080179165460232621991468039155560629899381226882669179823819553732233731296044771144643728631868671887784059647825357614416218999815586749403717019662995437366690330969982582287930331909734683150418808198746829911549236986883355119938713522865567213092322615437432310095888064522360527021252450150141465845845164878212931064965817239235045990321776183080838426063949812670822025887162554015259078312929184294735446366609794211029781790707667987504947593281106285994113482764639820772950792747604136054944627504637501043368981361679695639714227695820368256424227937567820703738543237387017403095898106550072425979506159183619325586310254785840918620320479724490381600096462385314222915018448625272400536643333850496141490115983091605665043644626961280446654129826276621059183753636237468512697922555728762987345799054957618595876543922643687241985942335476220524493185282113680311404156801101603608468452179285110955636968125000379539375183626512372206228452251797479696188035876359355087465948381227054169564317551937373515665229346018203967314578391259242520319198285348625957604583395287975390080322719099034600202840329630083690154182921518183432537080148264235198124474548336016221308301670247437694500727146926592551498188459150232749437434157637174633818649622654308811096093293647920633647819875833352592852657601248464106790155335595108228691294771613086275884019251361819994948273648222516738082095432595867724809770727861064491099495708880594196474796738531205458241149405575230618410869424534724959554818180883771188583060350609044282103585721377792335449789919643558462831301009188570959880295175724314052602507872557374477595020626466275438621250027611277774222546090509877879779212850684265229054835656709779071934803774770800035876996207914653114425815180784110702189912002643281035387861312897727157241879171135080926684128970928111793504136250987748729609556788156105346746213736922161458166629973399199729092982152706410058897001551245856129626417531257069260411205610823917945980902774519879927045319484870346005286544929114620382295039608105768132567326622230859481109954272528196026524400296290239894130758882168205065670449158997450168115623323337216910956888727368461952839148869441349937838218298552060833301977285914689875077515645551333070090370463365719187277106146270771053691945898038139718489061400096317790820377597225408951129103083733176303206213297978161377189537251380744182866317722826048398013008253655597086838524012930688069319606193849390184450750002328428736433974315807578477152255571916200145615570969901359918397429879521165780056623385152950257458519565755002679742104877722841571003562208433225092662165200190940551605643347721999875207790730257914697589877970396133377009542072320837497040384364471456320108532078724480468721372335364661862521829425648651741560747966399007552431345570765729691984127362269589058850479476048220012896887552955709814321131980062376689662351228158277137687861348225803239451596690506904305648614424757210141377417654841098362056294459555588967167904524138650759145110456855042642007664803890877712737730699537080752758978441971779335944828480123492853290509407729762990420740178250843422578025346015467498432427376141221364903810229152429303330646327506650100603548632316066903247762742394269339898265977159245657977028778947063385212710504827557302095525381070545432602360539502686157908291355245213831725116615831461116502172222903503848323876181842803159299688875777046849204099672512532412357340936254862469095250991261688825984727627269612149079353519756604199816429998962252004091820942280304813042645423813462552685253141856956079423010849112335588530181717244827439926102982991716914131447717633554822205456411362921502550894239923902909441548706772904575755376243433856850630894714169440128343257643343581924933165562713952512932200886199474014890841856239121321084792277588236732450354708307430145714995994432543483674636901938776526331641706145667310843295397847501879592490713614121196705385993862867908584260640269189770519517073592762893186117874761977066104961584333419394941498357334277213243561044535840085334544381987255900182583146115936370701671570290035084386551268940730826044280146402195399816381905506878150120606194165610459732400129085541561525298899653600359942973648740185896291968920644600555453759528488306323769920419794676432388450858580117954602267809064119818908263992725192126042884456603816437955726046161467527978421649690002035326440427820797683571386114409350951702506503709563795755856508059774541879624624495945457447192528178854252654228182091167654708175478148945604813452762599947325292792373801988999646233851851782253204585015341324806103498248087151758255507099782189603165192264518881927708856641025059777904856024303485154914270210391998091829306594410947548734532439909087108656542909668386888475877076939439860972389623553907700298168533531818550743606859650169865162972877988997531845970270446276141105373359391822063898107801072495900674027812720010429503582890042399514920146958224502494822579573454298933558392138770639383130025826329857094429456525352685697233478820103776544823477998548034741809397765896903973581479804225288370552757977070555154676583315518585035904562837112682863758301811590116623947872151117771796565685908483757055909630236978148926688841612870672873079232765064932469572356950851114530350182901663413359105543892234075841030745773265233886796903619998485245153760653252066631379655026677204466627697843133989766463881707701650685445531966135142287091307321346988294779213085492369188875022186560681353782130538895928698662776010915519601283640741650385643451519572535055462783797199094813684563957522369827427251084830314663537542169605375143565997202398027726903887744280372260323074408004073010809637042383988938946282547356404926005155580185284328979240730204165199227397330897155378851848930747855254027332291306227792884685496115435878424395374240290233444507850482452070838734410088543836500589914918518555823020701974853882223106399654338320902346490721939414743153876736576106992521073360361761307857970482768409631988093745269263387976077757085011451909628005508842162065459383871253203875065386047243973673191954410182230931382502207329289112023953632679911797484499120995802741886708678882725684621296833697330127171536378731711766753434834036741378252304723898278907791094531467959837249862945199568094877811792476495792712867778029581809688232944609610567779064868946770590949707407374327131996204472173784054913769635239892615537712340973614554199026640162556371575979347477548111528434376710784496588437498045883375642563225061909619671176166820785077929685925449228859328649139180818461881062837718877424239234163733926331690167219680553972606698822303411034824435332309147307210224653026258398714765681312734186454996858785671910652384945866555944576656708938656347241191031941965791079227108322257330824411296924162538722520549602895629094929075941878708328463666393827074307671302957199288814380780761803698028189256829160096112043972169327395085268613699215058831476420165061294355922770596002297413480915971843531548667448426639715162036671797398107694682916989758727488949858915207885607727603615705446235255860156424094159261407605495617474287405730750347423797651813352502344850575882172264173529390672967341486771090916148390335086448325236137223920027935367221165577220775716746195461132576186755760603352112047974896433403471623617150716752181637524497434835411260963715350215774029001317175746438072483865624401606163745832063535663180578052457569888358377036795994279290218671425916511160265956160178249440558674929142139011080028914505949433430755413993014516662157394809415886645963464404585672527295071372219922690861057074077878091108017961530412634385392931407787935661090851528479067820584681665796306280945508064425537113813517619066912774693069411793664017194036844556046742273916382186927528667375493083624451352104337751841251846857918703508072945164174218652209053904499849212390101236257067439054939750547407056380548134105534998251456931848400410711188235173842382750877018503317917952560492581764004718393746155734518238674341546292789566757631942292773381772954878720053227308430584915510123637317671537335580664624698632142977657308853154156550093677111488018089156942289841989300793737550726646597345923771022106226471713430320818017025785546412606669827714132641700959541234881118456184515016208891634642500982416260634498503823706088663133643592080057657475527871767448115207845675275370030938580323774862139943475408153599393608977703958591910413959747159437846371277668421871724911965155064783795075218455470266249312718934430893978865055418817428289948036388543309153922469223224882856997642003843734431741037331217406308250999750906890384521070723718871062007329726366437729208759588511337692279592738104664708139283660855487116484037082517839916664774628635782901707121504158874220692225596714447498117368080403553116007431694629736013702043835620668461578651714149193545310679619975171638328727971090466644192684404015079522337371771203229499803552293324907271291104705320863174465395147326924502071604063040678921725002457003719847600735913845253461466601139889070158521867716593053607628792143689038670934378246164198722266570981251438895020582604770269206532497910744073695850463506064248898204382392601395963245024793472222742686516837163355447990053829143150159162063682265763744384728183558965401778396382394582527739799303480481999109491693196967129508945811046520302283147281983006573603460454766287632536042968276042893159134741072731813735610783203136333529092011076427357156476685649267062543656336260347318370391773236468509750333247200874621664116745688119487419789631727763783771929324076417329536960923006830778241234624347515091320532393809555826003383151680332590919338637857016143148196864808019154947208781773395514956146883652960207376811019161847238502729096425765842961428305444516809298959186911183910195637435755931885933936006342391641635693919889022881595031839597709161314774652739528557940501986148874135870107658414570120074928431773292617951654659620620650961830183122962691609708412120115007279185625197527376456928841909500876754110299859898641965389163716876869081415009482635109598475488825722348582519191194377521236132464937614065741555701324853796137679481663620134287904396721117088363856700169895987409622975801851607157378647784500776192982376948347563579312522790497824004874040598566614214035942223212529642398752016201106536918749066301389935676440646928074899951124061399935754201134065007686081148576875933277677620959337506859003107810937587894883157604191501200071394199245213586445399142272196035331845497073837593778932457772860748828267460937897459714109026946527650877036713304732936733198581204667703628331641121398762252426292072418868844582695036905372760642993207756290914352746558551463737505371844696793561632798229208217916676596081659911673726619783870278432804537482211808213082031281931350380729787046706797892092769832483326341984851282332824511299951927934135870449144756005981537666629094328053628939626160531779824547119373910843346592145096246788512866351140524524098944863536604994701848575389052919747810921586579856172792762195588492688240224409368835794881730654686666153051551583610816653191525069049957433787368757084431679153399485172231455363563871334340343117848938925612967799033522002309640268782829906840626444530294183453864984099334089948917420810151985534038969576707165159629301211663581690929809439855239790880652100550870177921887790410843070062682106071867671264665538055489361673530413964890704266726589725538349445631586521442313932127505509224813337405882189629451693163539442997773982766615619615213309611259437462335863858567656289573754769359768973381032124152580406026552416710600319950491232307710707026064690348700978794845718400046218889452066601836610833456311191132926223467412384059925558024345890646993693084619098571113174883938933985446950872203929659667524950477248915010633035061419009025748189534182054973351063787781361582810364485336576183152987241446460738550465043298087747841814166847315896440022548826919197172388303752683440657394250710767681001694612749889661660506618206246280115411417218635612214741312019602104554526882504973543985705208979653516921993478532721405720004632595409401869292091919503055250412719421723768067805316210572710463824458224155497205321593569243956153054875128301645218244969224102664838212265996939629344842862921682082197818046012406053572265431033899347391591540233372649842038954233179868696135308416394672358904654012380278837011903181957374762901297989852605020909479164026417576643771649733948047705148035819229131694170686110816381123312117226889322595878924683623620384521852715909276270375078085806310832948135267517862393692902757010584515237742672029608092440538932139688158852874423764909498367064271112984363125953706149577198906621755959901244234382484505346696950061952268194892853593851230046579957998231071859312406374442458123032267254582283285347300565180352457744878480628005498512587944846095032124820239807942373417888583407404987445092762929898829260850256086347664863677231167938672457757944596473676751031550580732072354345143675988454153327831527657078812202609038975733946958425346783062925170976804291506745405274934725063891044135027927391254479241419655703414741610932271755893888602491326370776774911880498391399364000912620498734559069353840694463924663033954670648670242534280202322369915679094740229516976826991979600708640554063626852582142817388582491422578031631449772504176135552588787712566133894338282240950857969171119793798681705203789320381525427755180738401889790206363915165093174801764069753216487053561686476339567476323809787626577631977640949631919125219136653475052029519462434595431018623788506806314581536842949109561930595160953113066336659224303631813564826581668607518299034188753612847515466721574714594201785096999599219463537573138603615940949145113381996211417473278964373224098482293411129631640183518315465138501133832167123666515400918358089077292404722677756638374696828974528458875686019566914154404903245403046637839502674573201826192818689547136367638468016816609646391589634318082580042661428725886077242174979419645330999746938494224782808599239386433790292926538228320360779511734638267437614154566195017043775313785338242443748891745744562922355162599393943178252261481655197258193718705921579906096496116915210458938723557178008622584582212714968810942182558770645172878363881884750213975273281578872069646358462969977903238418597125553931407242564551506756338036006149733043880979183698949982550772161126175816356840170522186477393181486939348256666420509910001995375456755593570192310582763853127672834927422527604871358947502462388336978950275692277981538962024765253196980927923701770604283023210866073988639078951676138934500461484394605593615115076521660158273565776741134645146877035684900765828640214031496904184282982002466865499994590634500389094168533558690450528090373235097036831996215159673556905703259675664666932472036950349929876299969722873913885204029801142443363688596961479245561111138180598050697544316432819719907842684161944946875797054730541978628583858284642108440287583012983024906910343833414633500882887795136598072812180607813550627758013179799249803228966543970396560557347330302452581112022231706704654958529782447221141370445742792624185551043172240583467761840332515115004465386165186734095122176732118338335778668644172741585598445342771806801572832944016897007092284168561244146136217187128360105088517287222462923586266600850640591697692188075114784132325630042765340325741568900167110607813868500196710385134778073092806960237225061497387734347220828435804279282360144201097094892922221179105082593281110909957407862172784465790454585922772545216300931828979467992426442150977380484759720516386262242032766698557726315281220464481038654946097083234585446996699480637885355442165906298611576083615864190059352086686964800128842925548936601641293097117387440306178172922299135464508288309700132100198520413887107091748893928040844323067486917955684653411839030629469896768941733844533290597903791846014058610405346849817464065797781314805056547376798892289527007040285213158378729988562208955990596779884639146869828717489184893596738158350889908029736326149013039753606635640472775784682929985630020068492121240516734762865821418259009224313722599630827944583687531650013010190803502830890717813732640258207870721682753987795855735938212122726292368313977379585827772220532277434761897083388772867996863369822064555586872258518456288507144166120538874840052229915109359951345579019475303895800859061104804574754847295599852741868001912566122477873123626957195081237891582180735954552647879847879775445018188744358136321389494746658827097767906168001732225017067975630040683068894482208419138506524304214012729027235521352920364984637330565029295752067288984387450444782065560556594713291226175300320239470533976504345361850844485199770151961336263087597308688099971397180271513902284180265015268169224691104854790834270731092802902523617092900988287783150470941393442423276457135080849659791507355324498394294248019569131667387187591848264455145413885910888750010691001438761290287276171807812023397004386013925695606941671070125721235929759546622498651257315296530807591571068212431100630584319102702352572734166995899454636556884755039834394066168192289935501012390497866689812147073572095422089192106045317294413028590598196164979380570613231659091170036887590581695229998099140624829891206517575596436765248306036834660515263197286660882414411373555063400303364855190334933369911738807817472249997236247704469046061203986092938945472396638348941760764758542027679932457588344675562540851959674248095791833795576538953649140088007232754845735681200636546990822281114785518756761460621969486189535126237503827554194815421645739607314445374702441179620880893516670892596246341337515431611722964757948519733309184366777386879498414774813264225818291741067476938471434924327178632030684376086319013061020796982618097770792413783477921324319763242248067043555391485891016195935589752326589352355823392481865073759209811243738466460853627445263213442828225587072594192411802745606616643216894784784729752669784780926699748515556476592143959825015322048717832419989379658753621529549036396091617686437484482703056872063648265987980692283059956840010357509307340876155634842165571041584171299371527532990109501134386872231279906446462993014136937614603540011899002419227329540758188691638791614705012539015424169267201860154061123428850645207447457453489692995141831442425278086530943294058087409537050121144164556470019886345738960714952952628470928573043608261420748487008681415388526300893917328091220973515699611447152251982544465997294144618348586644743210648611674871763878712869157376563441105104379311508605613620976138837845390095390905853538944854631504821834249447135665782002754312373968558169912268602647612568913166429328545263461161556744265717279325105053632985173481161053623898204548391321281489975987660807720000569178215667292993253557502624114810858693549630523458627851903254277053267498511206558281469204635090855999344239976460810091229624327587758767318351782151433545353794577250408260324298971242290766782118562974086638734840213811818885818046456670808721875829591851726322174648768309003281681976993916761750563839261091167061372175501764720377420935523390008882200483201568209608376339321519962397978697342328606835207246197185209092348257819716851729855966890032797419736973030900964320783957917288098446204083573314177877721965247870642679002150004347945901884646285679402673831711116450837418891342996463535215593594040531328959379868774740184739137723532606996362974011161916054906320218120677304088823392265311883747647624816043991320934094246881308509769131476558326848793721657207971549991979431198318839663542343671163830183218031153365024451896731894532308404725952206506406995974527494620584890720661862599689198860896657457971925808645693537900438978574906624373173860544045094492319693714514472181442547922487590904249157495827238407755341023511973358609333101205622433451812828859119287461788637629525353328336922604451455481946155677432049551841778284556803645306250166275146522935023788290811169718930934279449804404979849013433960586437579387524050366977175303191815963349957810376022857300124522204464256609823423042714029897136513485023352408501161592972052096551691967823674970784943324205074247475862348254731371490205734592882629389968486153633155516919509354582342926593468112314291713192688258377028743136307458005116069973959814031803883666476031562144160498499803167337469513898185525868996696107663289824690116970400295669482253236268749735676907107304865214189992323573120447203117490509070991123538768624696328612874659805296614319925653844761369856869717732835482004048368835291920790296386151013427693338504168432009248935944906876110905983710764129838064321383680907987114074281277663620239965341616134554824697320343879404797830807129918934409227971055526401060038280362562941767304469373228466708179943085203126373019895436181224412306603315978040067356507392295746046509486338594171059158347468432936561695337318029856176550996244347257980404714456881273994697709995818274923512052650052563437747886171639974959984718974428446639796091280574575044557384186739428945669327621620527930555693650033267141338955884775154765179471232719222309604304961444436459629618690363437241073596363709052174696565414432268439109340518591897586316741336450307129359795123894579534832574946304895839917746465094407922117707137281574265345543444443093017985662044269011266934390180758199827055461906461371442913191931810961497240493743604616731913384706998482475060544833588743038178603817908464673011326256378953639867177839573826349175576840792769579324727148736238972325440545454990153182999131353057157358855248736719302124296955256390148374564418860730458361609171071145787250547540005648621706417099536183536926103762235591844626585371914702129792063430240729562635069088609888298339134434008410348651944926988334798940846651151576871217662467950867264402024750786281764040824794439920725907429504472383000794125148160415150322343031317050414865812105668874202718102995640062499221265131778214601754589800012088419030472764838154502782545384691992025455920707038346817390745880969805628896883665177410995814150577569541989665371622738620656701329107391728427519404467656935072714632219249861798267108906449238299150765070774266178469820038932522280135000642941060767358650012278836718086270423928486965377528218767283760486946727185185455441951342484723200891919727746579602611838904766451183694541963107538495496193266764896387775051062053866748923477669460395786277147791156709946335229020856623452824772661777394800328378743496460198136538517820649788078104975631987659291234572542204135875296157329340519732153034856515307479914886695321436016349563607749983448583577414245825059501978778112801798384860090503798689789665264239368937135362662536882323074043072870989496459040455067203192149126632062359613639639321352422102987134005155512156214107982998546201249442401007057498424167433758835084378143088257609609907014661141134792949833858162454800625106758950078757650024601997261748398468549340845655389508927890888233814983103288757423286958294521273691320412030130146713781328673091694452484192742723602060050283406672787982192935789168925179267796147731513404927083209529014431467889075808332913829731010990837557179608150956134068526628791957545749164785046938660391793186016505956101074307951774013183220794362162217910530183354397762272742667675907934795171360881775799158432981189298552367815473984053186815005506674091099190464562516435452668727553295494689301512333606283483723179724672674806624954413454384714571320795406299488943617655725690229586633127259822903946353618401010588957362255570480150392771203666024039475226279006675034187559058945749546110118222921711579406751984287560222503841221629439523011384824672968956480163929943634315505408156772856590797204117918021867915167673884789104609755838429531691485590018319567067666546810691162319108764938084709937225233044213586918617974271772467802899898621212461515107305891571900822817537341310200834225285694348901049541464406550607810112953738175799525226748103277366286475352322628226876267769461419745460568461765216277624416525047111216092149223920410685190917865057137390530588983908467255548995943008093484396874502102980737532459136979781341285717046046205473808346392227792268083559166280041514714328502914825233811355640178085709650817012825083063468306520367113708982698306220610542154001570196387660214679245731176622653441497267170838316956806836730283313200100665489796618763510503409540319996603992469832734850930064160081450407787632602659769469506830986022306012424061629241187579814805072295961867987592227330832667081404178025554123235989802347090397417804979367826890260467218879786591864846900227969072680043247415382721446351003985821570420245763778075248840684858868113864725235918986795540357864420700657679078204420601360176287964494416317150833145383765558202496995403907495021369881057614899346413342176923822350468723270376660498936040728429393191331168003579595820638062047138582698480075481386672504696602564017491469746780202335645695209474694866754890422504180421167246239923350795573116774144255884736298828745774136934354207015504782702097729094550765729275169796585232281771585093621299036690908992386637428404019326858798202029054955746733724767198703353569681789588686502344789017748235588454786626565709817685498885633218583159059763601973582435219427331679778056862181137014861727381857899549204990436603367276344115892590948904382770361837578657612080651293135715934316292977728453937348004594536463157804263569201369298632792114725018395038306710845207268506354491073266454421826203621647818711991180232568700284944612326719799846804668417205485785832859375736502956614050659604010381052025405462344116574801552804838137715457295510904293820922314117688823853798378296723012320307673029385627220917469094931470923648322613033703463290672422490161040451529907457811367788843370808067888672147250315252082476306600885701274498695872405635529187623608094030925176072776289914501885670483397956583308509648731456223516689476076454137435204000387877401524370589915483010073137731023381867474002459384693189884497006624893414453240686921965548946148046734581485318166037095072972383060983190725865676608021047777044371729228970304797684007419714180188872476652972036156289435032408811417581398459460106629227247568515417972326322472623586255878236148640126404242525268121842817014776169086094859858608042534756761371170528782930616358215264986472559989942431242664254782153335140732823951174253624468448095127957870250130965444196377849539786276415544209504103739111393097682385627157642194029877772530418860248492720232659844464735104431484976629589834693003516898297648194559829583699815677565035161368818018089665448087481627690212187136754012310967205421330634962333945821942185896952020542744320900758661557037310361364550680930621470831532367043533142689187862871271358039146520534787897864217501659839903960091777538787614162514605393208586186917921509721961890785523544968378231746155279994987811783378544266644325599246914684689414570465547416485099741408087710626220402212170645596078271214007708777908106595619472607314966933936396973968764548277022458508720872240795934113645413716453497088379600973983941072568136943886728492038922570937086844588836506856275811895276883634328055595912608918784150896860552453360193524636166666319184208900575825912931242320202698295701299265131455773741376034380529736435306916427848255665403616261927473191028608700029703598560716070042921868461210119555194097595646325588428648975199463920773043419953444256481410556350786603747469447770738131056196688944018215909093874245369575539047872484394459205771876597854867862881097411229604037522756660657705126021159905434147917497971478741555382820921762773104469594619088290837121017771710475354045411330640484643997134440686676850012671760884912182101551430867164651954269161705525288699709450855316433747749086753324823400893852544378738115084633148671166335756556951628513954362854920027373405601329043478917689167839714363675577986642238283821963678542122240278857276322334609891249082971223049000520912802666624684618274833854806827954331597629840661481164715973886370415434742513693227492424246750702991610468542810138298721372898324942883739752923972432773766554900811953135680368382840636143046499992456352767411297077110929629212194300638638094999595891623540126836485638795552316989307664820921928934310358075433090018216640164432780220656646706386378477318981774815487188655410197909788209079042317446105122547810619979787911256308988659066860576628034520424266751087568006584447807608556861043497264764846588695964143571992049052025245248602441300788337143849730785787838283817578615935480501600039232276632176210067879731735122277839772815273325853593652680069485433406788005954448504872533305179789596376349701310571968029895493005900086428009544129281757116851294529721341110229224526026991277935867592229066364353581024084915214194150807956898809946858271927231763340739959217596086930325262767728352744853240171916410769131248472875286487826904743333476443703786195909325065869224640410674359419737095002740130224172473687825357179226804214196685972215102437001544910888346930222785754000688333335881043411761856606826441520189269226452079328829293824219675136443084341664893540309523868979204166804906238665254310117926316592823613517760202018555796357754251732349426754909116365296210102515574545487750021254185464614424080559743840235662097615658454343272913752808946134194641346143620167069387169562396602828556744431502131519006160687951385507392301749473620367328761663971072787831099566548683227892838993216748909296732334926733141822656882905818310782251399888387274084970735750456722788115566702662908847198100382615565389469842609470311608738679549068570925373138268660914429079502732751940771091208034731744754483575081619010340906802234201653462700126856494980843710312775292103164288693470687939502442252582779987538064870077582398471895499923054835616898941424587218270393227137970843149773647853688999151193701827025656780279531660587399836661620103399873067826507465587385881946237306321292398410591243034823119297001576437876476353715971257545623905999775219900879750090184397618721265835374596130765806424666185496988464003768019038407980902083738627517707320801819511461233011238624377061720713723985677256005788156784810834064481602541882908345396227875609608275707387851795906735849791109124681020011730585658332551305949180801552628504227758546531128960410224873415668673565403745539757391097379762067413953429143256459689478673961814898020702569587001511777049897664126328412514809951616674634815780143305633207986089294487894861012524963851883506953966473574426707009647850781905437296358477873578221101280991883330873115591969185586694548419068764969245993043554196999840737557708801207365373241049627269984641164676242931104609581970840150688391266643153458061168074306849193783586067079090924922263883526993017801766709514767931058791270003112039223641785423617631923942996377420006496208956955086141505548418092857931539191664241719136277315401237436111907823595133384439412504609034331734983733506835988342985233866033673648127867231429256415904816538200381888019568016047892383607655060780948590064619726960191886297445220617413463800868796636911763035675304282398664334763304006054389784576238007154601653413610855364766572676736873966108731525968526626669035409360682935675554276438042449183196249674155192242918468309779040744305304098929612004017276026544382500914007947685842664378701485958400776122919600925044174157796352635524601442928421726204870315661816564529476266097168403905225368096167031085241394656897656197423163682786641952628678647019024225955855548816653688637527321792212318436920339715054707100329488235064031333122977688393484196803169746765189420444903145297123328805922764080425526954111053236820225753745646171134156086513064832760988921481899781351483061006004074572365065074081326496112619632211516773158598642179944756646064148879571685119166278641094960370129521289863485197393842832321313790290283983850260574631403681062498765879363354288614603330186833894050520140597950863648603079273848460608546442795122565515845062260019331521260801911853905127759386531825036936432458423040056746564900218935023418325514639914106312918470648415688809692534277382239558986563580078904233930039180108584161392847807129002030785765058003592672261912272083186829175109526658885149393413394994278321151010231850678617651877545014158227701044092475855413790155319046399356947242492661216444316544755537105727240391289874431523033926265016925795019107222292412837479516951897813924089725564068565548932451340137197391097167412948814575843672002238226342693775169200192567909529544254187295714376045820531800298934622016388386508030125240284404410288627719432170197143346131298177716522970527907695427725738491291693039603592236065408804555029663216723208385756630330629712305644945773562301350291443327255955387680413671521470003001999908645983788083660404764713796352598811545759482050216868090029117848484298014818969256630685167368244409982628045249111144526844478481190512407292550773189318538097453959959982179456473528450597799319084478658169306116116591831935370572834648234154466111661429033059682463810062949294627026390604077791354503655303028496404944759854608688286759472650587473875825370465518104519015359300815905784221579525582912857402615168676366016094007318684814781258711583742539216222999127063291636922359447809901136827496348694175707928590881445109102122027372052378674420819328308847717597259739830088588279839956534856741128629348895775110434981272823876666686609263982789212385663899978951290426939111377496817945939345873539312116021545236547603337672741692997712483769638735977902201215993858521367253989493458547003164694631550494023496091854320217929401272309950097401147766701741878765907581985802824752513892334007358966225515031176114276217375173631220704206659070501204261748450048000408221764343773874634853796544202685976765978349574598781167839575371610369025530489301304311915339042766366082537959078142580057204332298638534392757575124162960415224389691277948008651527278071484279150567533165574041558959196173751307332883102511121182996893972640087579644165954331084315694574842846049354249087402821562270369276446664535159056587807463970641618799005388241497576714862471285632623427546150652623568576801834916164055128441975424273138424427200695300923135948487588809293097610420159718571917269652271854545328193515066200742530809833490195466402720133409917047488573034074453675845006795128757003978995148566797816714600339772117358744110596341458264326882001823680724592599956603625350016499214453583923085263481164734595654270163179240267000425327232658826410719273325472692802057417733053315772619398160833422679925024257662255905370820815666382937161782943294264146929061862008150177606142112167861123760881558383506264923490941052585379213291449280094921978111887063214431534728956400029955970139128740698759325160716687073388359978088312750490030692084265581058274360763753978784456779335869807374807717774641305806641180820048839633841460190451087733695538109227716516315834975179416330656913174267711746615732136342492012886593578670274704857975841218143810874403310975862505893510619818907705584955944360098428648204968128737195787704952725618551950526790476782166207217852584613237034781133945014310022783734377997795626371023345685904688517304473269397194569611114612477197944221748338441596185456209970502437629411517487499407228020727035441857397909875085827727858590536017282300864972174417481640434363354095610427361082897346954326834494948292277442336919027846603160273990468000257807617105506693473741215393412381906822363370341971236811138675368832521408022802549114877094776074698478117171774650750760755913600890194951313946593679469816410346119945799040497113139148430905305425401878748571937541863782058826562036704632679441904682595916818923742841689731443052187055019821116516983043249563976962379556783549360522981532684697259946145092915140223306747831011345388447905375217628692006454362357834965559305970550659652957618699540141743116642893512723231169726647449931393825075224207436929325080402769748692977782165905459687495259943214450846072166166499424696756994453050597464363826269604235691473192393389140736030188647352609464621724378176535631298358546045892677337523109320184249946108170847896088927037897759909929419948914761676635255728392523722279598150891122620781321677556675592497211008539621529906741222788110563616857812191541917300199368005128849111104732510766219742638552766707107161264588567027617049416679724520452462091988482260923670542517446173062915830240279832502400047214393476841005486932927728555365576585380346336934251455682745676057169990345049949797031492042667484870170846808370064783832227901885711634909021222292446669499218037228051948601938857462793586459293508630982063348936618244743587612984065237617564593678129397809287938937332991236792741553306243757423816786272063485042061617103820508015783072946225842773028083860960773318684849593270004907804520855828691686925379667369101302979751959408239899722853307302284344949281969749003238568311210518600490104565875173931487277274766865474684748968850043600434977968206529754397740082760011241655545083832870083273935921086813808704244367259636134099226382406058595983160329559743479378486557861659583718778514456617091288323166009837329676149545540159847854954180234294154582253769935292446315595612406120572331199136502735514301086819545803029860846752647768819721824794740896119606274306057382234643582875345522018085133360522867604180425995322803969013696528709576900706588393513879273575579497219180479537317206651150633391498304218442578378640764238931161269409944888863883069536171155967312734189347998137774968522770891897275311692584437504394300447709518705063581298127556382352929013860999899833033732475595569213961795273613480777825636477744388781602605505185542189651252590089464715223812217632899238302399103666572131783044606350844042828599592522021583876373392583758829857111827680091282417782262813010486545414750547638286061214674276206188690793464715406671792764043394946827481915812824115879675788571483740775731221753562207057862453287026751553707378296489843353665267290778401759296358869486905745381563949983867077558185384254840230963619370983504011149578218290823118166105080978912456222478041303517255764256521814130503052812301557623781448005639083121291717694512165979198577542719277369679868417596096275174225569315489389871321371874626439605925185954292705952949358335402799386394186405036771569153661446903760237356626057908652071798775431867033521879026681128478434292909637014611239592234624180052076690277732713254146272449511524242008766316172576213317498130988372099907809511507379665638762566764788127644455439530271517212817340122110475084943255674491918227323295451632529112165591734331772111419338198710045083279892431795290648561383086826405257167604965621472037356180652309478204961081996610292445001501914358768124629764322424751664335819900352832120149413505082994479696276369481039483454066042502453015107349385371431653956803018905164083211230184121619821791621077226391824221677086378821178050384737398370664507004171787369246276627360135418173595350910212473220885802421874700425343681880022745319367918224753166212876830192120259087239329102562754865482162136147491320744978225869005326442453786208046614501930013673732346559084027855159983479124288717499116166270011561415605905720683457013794139268811853887378983576604169004486629117994628799822534815482890828838392356592369884363081602110074884008558642720184481479195833568673823469955195452770766534985818173002369290238904249275348790501367261036029136668952153739812003494215334215765912927438007572275970428980343881661842644022418347295582602988014490298748217832819243633426897036043107345863055798970866708884145107956728340854731973997759184766443931248083840104096982483794250638207596327899828181351533887858221312932447213275689892859799964312035138506908653157173127042365737513857932502505234727037057363132210707877673115677381743822045807521743199544743723039041342469324650536748243152046593129680551323477592396592562486926109743540314472408529878083283712832394897950479413640491038389302702909707449763899451237995586838220521976550782689906781667137634364138096963365556975934635643161309757729729572295486779098837399803801056877260288818533090992489788029382663966537569101057716512515515629971889746781503379189800693512379635697801711359754403447212501772856649923247789329451414804879040785718010865822960826411596099572576229575247686021536842140425758909841840534167952228892272395561955927363328640075548847030620798385542965394028981747351606281510017554952651852201927027292200681562897523976618187337671961404251848456409519461298991317062748248499537910127074317715155743784390635816327020958820756150843844917200204717112874945708130426163433292158526835906297362936623219329618855450276702814868053985811350959509595193517819006410573757283070665067942340875290042683528939508559675355990420860953066187432871362175447329738693840830480100722188746699290616758562299800654718069535866398392539199864013044760633620769755753703486850581664030402706961864979722886983983719053561161150795218090787353936694830292887437894432943880512086443870800355244860723090116666543921573953001997189639748074790980095166298590058494558747309059646224592871124889797144189066751498806915043248091069080061516140754171170748441868823499493752972810734278784196036325059174326561824974681312306139848750220371602984634597959245438858090001785602744509481286103093444604901360015481194468161732038840113051496729622529751257285173395404277567967272708708730007501768064913256871845488321128834993429876520109216388392399894584936032795110447919346083589657595867372104698914415894255040144398741987546745510154390250292067502386756008360175542240790289990841132065718989193412339605323722105325962016642464995712740758815678540326146628332511404110842987786935707112081137688198500763480324343068310750756291929033081495929426826167208561263553290809332458198687630127633097277048987517840845018175286094276319351035392317456517990034811725846598166761527429477878815516684240388037961407452294511175616180037221155200493611488553046721862791520362704589198674390510515607375519897941225742303415433512839378451979305768863411925419954493573073742204144067296883753153760080035826220571571365523803700889161047518970539552142361447589356685427154703289848651388292225259194008836172961693847490215749269931535517730410242471644803341523722155855576107994885535417403017617292259211974439746905173939085935067169528641493893121418364212935624700457297668431491916571159510424474988342572210615351180629226941290723997783729467656413306187927117684420493499175513939759308906423853286523371728600769360092601723964914642447850678142640104842422522001240244386412989616635998598715123924855031089352512924588898636488214373633309627944505159475795955093817862231102470300227532701736358274171386505849515606036734055815167247849665235320110712504176922666390245351655835541631834243670069275451633893341992635861647324081054957585293861437047457136038442406601408162412217373528135307598159990638568662763391693708920923555661473691955781252434906115810881412421839615300800654349652389477598514957684814978404073006833561948625201018367470659252133382140210826316142017032428150057254739164509868744440835900565042998199903796498091947142568482226799743489622461200773455089668166522498479880947327690202447976163230017187068464936634177129966674414536033974484744568990426773113657327015718726825312577572613724023908207493065672475191657101210578574419766114973644418754233851454150206457166961377951037635510914376760434177019930832213344294507939492844340638200077860035735044261627813920277779657558502880404217363336518776868284460583398091145651833982822995936721115574723805083518647944741135231805329424144435967988578024947217139819896396966357923782827993692805497218960139783113072334432718674840853548332557222865624136747278450191080962178770142283640446252636516926013888037127900324911290881762839124144487372978964139635338734415669038288450829624311493394413405482331576441414322844428090571893724924429427109802047207916859159394244091121414389440134928821993234237337855890033093584368001687497007097701974944588463602318584956947594030796075784159291061478969946038300898539955482341090171762225935235773499039347792306748243322560376141711440544352275732299009240932148181904217163322215970718410664967632637115392931765915556052122876369281892234751237624280600447598950341576056387315619494108752400116910910859997831998307358477878514100584453364128459789729736676487050985319945585775599706818586857450193024405929549821971157842438729044095780063993325854058121253075526149500106995359089151739104972044154888301623228042777760955916691709634921726392646454925329837589994706668127862774178220995451706347584809441767217409446375536944829084809870420116523559562721452427645880233556425088048916076676088267147568218650069194951560123192905296134567557146462816552613818683424986285300854241623675058201333704747422489398205244471318717223381287108029268095060223206512726460030666309109216007337500774212794768983689523255370791593357751560449920242835668911191894886322343587169945816859350346060736028355424220480424646754508959790623321018031292626439633184500782853096439614855761611688471510323092769978120810171557911684476147169660840102871182075987406938828257144025164669219791566634980410968797096682978543282297778078071880719963236660432460393090790710980469070115575964876850036500142271840273319076941022137011255682800299680818564679080567509068575515021078431396265761044517766463160171115902650876101213151562095938404595098786182307942628204417355755214990399418190229543580905461998947631054687005152896534538730858328864902095945815075324233327353840942102573712731028696104789783402984717745466724268679713810003913750571675059467768684763743759536925336247560976930817068619291827132841121598337748525092636803706160939250781846678432198508365389644677722753164584143966394543600010889517805893336547399628978120708285407615308784211639780224179680849112432911867042071921139878526637863816551852088646774642238841984426644186667741517037702400779465981698257567854491694960208918374188180491083397260793462331487570669425699768398296102737383492857785279349974849003281390483872270941569300856244819923394854367893847979463913965374738240138826824321471780997987817447119836416032277287468219998610218826197666052305005388573266131564438348348579945869992607030020158092448586773397675590669724553244833313869843872147470704292568841344316957656614163729148201573741497719875094928820253156874161943586927473225056721615699896563299199142102782820260560661589813453096469227475540259885806694710324960901423578583294248344609495516350994931947626955459399081629193528885614391189036126192506517681152818706375019364797275367917668301095960414733135498570132549163900377582345662689543446242887297738156851023166503264802458834267595954017791256696538604847030872957681948208715350694283527561888062057162934773502280757524537317030527761888609174248728966740648789622202414713545058999623703854215053933477643385825800649352537254728175354499270549242237065398206976146790719319885648733420132972748437977971761669464598104222396196637451783676701099557384985390908719923313194566382667045162674011812183107761247984152996724000592558408315010565029713568981251249786973208770381996186070820489617707770425738666510298869558209844965411101717905103848110477569097464456861068803188352800093385140715964796873673071293932954746858320335340005824939142287657707745671243888982454852212306213950419667438020616898139896348646365573059708434168698516491845562639313024446792220752303330451191082096182938309870645357555804556330650461998549968676198239995120068178219170073096010674264050499847002911654294524714916900997409699107315259360447801147649675445125515054907322892609086906199732190179588728003713839447710123380316957626316702659585708078968797021039988624618127241094218346452190051510115337582461083948975766475081111880317589132892295317380363248288102592827891885290361095873163370992057560858627414053180725482421778272207030566394733526483657466545152972213743831314258944607052660764115012167913969178335116531630698070208858777347691705678680081830411643345788110521331014007716098313701902644399589837606549255920848218595248184959578266299125950755145551255811710584283767725547768108587142141597780465997671106693160422647250176766433137599037549375110446984842243716613778518668317274112860376119974987057825610849144963357064160867211348431030824306777727887691624929314434807322023314033828094075131622783849743775061180246766413457624783965530631350787048687795512293143563924148852815316398875447280653598074379045988704832684761583012763755253596935043483853704145007117978866909510213690158897813286289619492587793981848493801084970241502950534026140078162789690643684350486437523478955509624403270865590274380023969212503494752881757574766907827448022713352242226763431796639512277338045578890195595414373943230040861922760733706447030528216306483466589306379886654719150440621263439391747880897439271762514679959798057135693057753849980253746006384236017800175059119686131769732032383198323389054626987296727450476904291117320642446829969320786703335992285915205659865976206073577609593471939320435670120230817521637996740229858860846572909089272897764526586526731873386791523195522007829517201339093633498075969238676622842686299489777662452287393112065198005403921477019662025200073119964172999213618637555308365533737814814861084425003969286759683816796455410381258175088617032785295201556525878672156478014173999738952200739915535872262881640161512244490085603802904061268644441917791461109562230371651943780097661987057179704662970917491031911704333564485052456522146680283355633750978797598920705388792184067721200674383924081718550479251383347906107121444566361504848942096318251234722901026178016730012457022639073724950360261757100005565612621737998939797143325348032290852520127921788287337793909712430973157938082166466111402443757706946535907506042495148822940867996309171902133754153616454550025064898522638898673106046982693944305586111691309085194043923059591880812502296187675063337452566552740142047429786146852444460805379981424470746615828792222332859930535127834098320664850358295921423181789144948797876025186290475608229446206513061390261090751937082280976524982266522143689247531597227543033139377479628454410354404858607605518253996416969653718431026742277077936275143126359835363600186174140674280105405939579841334449326193031923773347358549033634947958919352161734991320624741413979045152290315719290337501573339492875460196651285341685866075199694879109858508514008505901093841415959873034316488178519305182341815819418518448977017833404351617350359859498106133324818849579365416471023046576969477503014919578916814748076859687491794166745371702014783999235144646027433326259170282588528781116500496774284678281747893332551256569016243394637064084105435484528935143306081103880322012607702797862219794568394754148379574012760535327457366706132441599753508105085091558793205457812047324530172638584550972098428714908561807214946518497019217512425525301945811205227367184556032589037219806275761491347781135843226530193143584114123378958410535049461131908661820225258605764771403394411125963006814477148482788974637928679368251640180300042794454826296961419456728668855281468415588430116057978246763235888058983167176289852883941847965819037184861841866288841923937219478585274762169396168450693433464029921211810020152681176659994423029868463266914805353712765542815536331007302591557287624464057609519060913492036198921443025702892244961571629007270664209141168386323813473565322443580231089304099989183595484164188740288694506534302061742146897824549276487937027246110066216542324936078251572938105342266895882068314722462843966689309016379644879899085170749662954567082000525671826859761861175159871277794995039581395773363633894415199548741976267634755350293070545893346937900851518007093556435131180468222538930530957064115527026055641454824108305138189493013800667075647104559776364245846827507998914662317300664762640854285262002016783213612932480060065623100452466328610735715980897580467452209791863903621931182294187713702623084972427912527203446289120171965569213316870762730157364197562390345314729140192973814137431139581562392932915558396589739788687417083430416229185465132599910519229888704896840022655024969663974467351950833125172279126648793368397383439173910527634608074061131890333368761045916093837099310585850920291531946423001223345154621916438595534482286315543139090183957061679903434554826934011603173024061364989381118342171588273637258402474570519521905544457952338626342123380531040439363146400798156210269918236443888706562197922387135902846778248170147790429313600689853587681925559153140195741008108862362037712415637233761859433260551269583423429691399907125132557341549345013025322429940875845970822940278999416559052253468443994622502443687237429872044325748710318560953800555639444409885143044632516149163732053303081426627075492259631162934466141882194775014575826140303996723872084351062251273831418876122838755120061917298556063604777851154529071766399756400932007903020290069862531503610479682239520271112815978719862836027218799838228364533934469762775484093215161961513142195748944405365907856933179985852206607251918116387230527888795042528915216015016993503867313358567204760090602278849049579151094089720242021749102296644813267942942075884742418652107302537225578507934470943481950185278423700475408693487516186969213110040153332464191408137450086581592047556289975170304506823019262048817019540562376790880966536660546853937833624815864963081334961729989520898129076185148698684178466372313451213050273840841962128571132163803476788096837273945863603855987952534959658966518252322044388134498431307986857312884657166755138770973985297250795375869413791820558937495175524198858724814684617864000297920189566251237263285830335390561572820710184131592525462189684523039908455579573548215159857076198221551163415386276821345700402922368338811522591030989839219864244162500841625918946547881033104487723534395984118337955953050412325499048195464963965584267334706982449784547735497321922300151789815412989917052998306347380672364519861760613603963465367621908809635405857883293865118695895665730415662736553552477550060331491470399523585220063333697464285976395231127407173436614184747764353302479724920900681949969181558069689972699387306900464349935627892747029033119255821595161008046253082990636619591111984366713299414702298489532966620564871821467539333850582042875818551071499277315584781158345131827022830759260927017059101604664103152438613611444682325680751769047243253133332678132467152181155932788125050176773944280963172170156040399873445537472111674559957120988481038679211151136817788005243876936632803556043077174677175843337054497701437353216883251277279932545657610289285448141962108948115271737021210619904949467503030341392783229444494976316788096863170531455575777981523584566600832227592657241549893246525950927860109190090410166600671257453997565469959610081009385030191936146277914429409690216823049800769177813879368502446320818726054957385280229892832082294479281086158217555484293645137935462282865003531654348315816150414774465222926455612547608655736491317631718725488093541570712829135517058989784971022677545048846674777639661950406431648955306905519612533499436220822709290266221047213372764517252345513691107527594178622793397051479850533381141916958926330075170102702918405604881398876337585501322954171208429722013203258589384944636192923451436656298582855857646211400564252299338033613688449064726640667236027173852654189026013315684109264404331482448990218527963105635607969624068889566845920978109056940678489708300840384351130323329035197998950842549405993695917127137929300383980889265693367072851952383709556164773423827184579196793658058688556345313266826792752490807684611926086330618724583120171782864821196899165276362392186997644660526201911733114381393593243299473186984699091383300507016350912566023728649044040108886261194319763276693069715687624766397895512148300426431510811486439525903211082647282361265921440380330826050094750754113776681633926823908564339255399119039065969722866750199324963398873429137560855231093121940219979173085859234415200570789036795521147353928168008218850976710516262007143814925608650366044342412800458925904644898202437275911226440764615681948116210796599367253472324287183511738656344973566889564740024182460838820546925002570076724354827033432916311045271956518412660464212712375079233985149610428213653322269581001591101019036185763707260061209815692081082576136385869738699157809443426893371846397574075150657073021218305473827067940391859042356919274833523203844493706817296282189994096776435591109090030517414353565774335892495989120692447944787498324801695250993075300509289753187298733439880536904348311497346029822214826954264881728923038212799515442485199139948529695555610038152668509757417982141902755334062831762531092340788536208476334507305428476866710911417013723378947782226284454871800476635597445641721185938920608720854298189610348023141997663731699505665044384889782185977969911997988731940038140494111218455399084333278972123278058485413072054899083953704695176093452204915683029909654317469048320738165095782661636870671890860908852164708956723924900904158417014933313752588020634731009564185666515875655944994858264579444145227506179611277174537186999396695352468617574643619561142962316666765032947546582253093744611877335202329709084805706442176720102837351051209345716198404223749683161456012946679785986737882325718906726712309352778363414534969868290019639776326680535867187948162856379080035199795940259719347581671552510323798467502835781476736531065265534072322189735026212083302972410598727629787500424048688926212275728150243223405008815262604889218042044477884846576344390902983416852804684768866850028583484087433981285309572821022101548449319707154623903286157024799341733368621652631823592162362409149671662645940799932005763388359867178767081025355629478701531835402123984040140002555600250273130713462910328548260288429020233382743960660837355341079244543081878990295818750108184413636959612393448434100185618743639008418333241734127025332148945980749802371031342189193588898283457935449412147983429567429488205192283646545607660585222308063544376976410967653633536312974689932000543828577444459915183830904222391550133552037417432026989691029548799182537723419991461865792566580304650709655164766912827246591548782812022110621567053087381759264929280213617447902670868222717977506940742932397283768583572133272071327956896038679119960487437810491987680767479332763807863383866279045645275048372946684689569745250714595605939574243029048337005650868586802088147915812591169011781024573063158723673071867515930121001388053624709399555143092819912257681841383847401503594900101491408636923604890166033456822358694738775372656976303707347498503262735424071542311553159651452836349922181865328603732839997435695523433693648123097399912960899949695395219218939697573179489052095307752407527582638417614648842360837031482646801257626849698126746514069638313932731881450600561960616945206313399524214837160497642613378885763294028325543119957595076545421028983604277822810528944720984834896729508275743721455494232467515235614528239144989546267362483625845422761724908053242101724527016548346918196712533996658299590903906290483519817374040934375163871315418741805863369881206501355835865813627557847444203356202635801944924801173449684251356405701375211817644841017067981970841061834817774785654910602096405209485995716849919523611230355957685871662893727691120166885266993043448657515822891787061843341060690708369690522527865433834767746967511760940623283145541780006151637643743823864499277010283371667501774862860626090137291070421436870011998778814376696784122501650755454566412926670866496988066892805897006105717311754754973450101314617749927694114853416164684387514682556310616105044725430660367137781289741024294777832314666953043305194714011813861926390713432723446650896131688125787098889789745696342461385698223134154409083488644485040047108035019758707745627372549148743117291793410111091687024653618232715149285271338918857689393618322664304230089225776868168543058073355556331389923480594481992100863040382369364244266416493301664066300576024471316042385491177311940639879421743142747253145804726670776301701670476078075085849537851908626877567658824637181280555251301868775796149849014933015429517306380207999185728747352319483814620203363832570730608188229154801560887312336379127589050816394532490296900771473961499277317797692944314682015205993635020704933065532782414818514415487763591980105797189072758396338446242546591674154525682406266753554819037983159274565604850366199003691981564041483238419868516769045400324521802811841361097113310635110505002935951623555858111246629604743485118425905957135834221595033004370616473209376964875407965811560611780935559381192064009410500398619346301997268913114291780636127949813756858205366787999985617996409056991448476782034260665962174240793438507823981061357479262322102614948574899150328817715791529680055247329424063972468284075855437696405070871408088432427998426707959141309046900872392246192718984904220022403188754478278829567001879248303283397480336188516727903117691766830293922315152484903974174744649683472401293765338852528388824161920709343874467202201623981457934954473182838407646606076910581445120569336594493356141365964255773626837597813135946914134643732895642962751217598276602129621692294416363620121542360479200098705944899738859466682869565403690453307029978831689674018940198234074991174506144655649786010930705710002212327500360631126455223496261527525783222345747601440787120816329879846466901522530345565333228880275040850240793449185346513121746660879573224786462098484687685744572117074873617257262709899809839107267733688255230410800287687826836350518121287875337331100714307694603053393621368537944889619877686380837979911190942788842874182603019356317025686638305822717091886532989606373670937537645592408154832024106859255575088143595641273872573269508431710014927664865146162193492180751639594252711834741549720715524062292422233758577482716879212200571409638639454515292007746879712047371804503364715988836612467916842001361844600925160874244711008554796171926259373767704602829433476043543202066736695533879172625292101028951176328791684352744407238626207298838582177163766479247154097217287017051503651636053150367652243857580791859318962950703475702939889983023253977811696705609641486256150479054620878993954235484318590239410658936082461516458193121621796681509370989050344208676963437064653599010292368627959069083255110895991683593154212830064181364398192852421545901444051116317827945561911134907948929740611306516074236050632404863511893884165077023413103818991836159095182330394015419966982310868734954569681153177792343760356092443869140119031176966200347721540870368517828913753154007310853726805823939397447413177447277780310686696552275209004630096185828165763803308106151227278541833514310202145393216173671478884027321622390291789074863247170646882321071720349586555505534971875921954470856181410115192372383396494719160318702588414873757000121441338787832936361634607751808520789476088412816041576682741665027206688500264649480816726407081842811807854659331686344477950202767648143089310564311340049689425326681162457606616917687012440233714375150041723201672581280550535509444848973320469956284624765026166930222660661161272270651504305784795970799949467675562237583341589790390456108831589692671817135267004182309391801610430914498296753214193780748438676095785430875843865915245069466813496882050587178427430632729845667448214283369387214898626900799250432157603710916374366882030412120235467769412532121287911980665783286589788393110410088780483589996499806527101533188053084897116165936626596893555713313351037255660758366252716431175400293620149803547704636809399763548678946457577051335085604255168274360668757617601151848826780102513611638381954698934739181095843020670110051566484203276691547482631815456170824240152399500324564804586095564832340545771523717670881082601055280013020731624879003632116851233610330226340213576570145717913214014959628141159146881225321255046529507243982925503145921534403350522568456346281050772924112838010636117696499977090024564155528198031881101304110719726562230317520255920140516541008209005675913129040182192120666378567501440957892890873830133188703420992604193098419014446769002819377705128487816602700096258757530880146051184876947447778806922097844427378633454620034214350807892787079348394136605495732983531302951035761159035588183555827379203599430388370502188137259898270000100560275037663087304232756310267723220878937857544783900340099625306533031849946799918028358241164299171231617755977082879986471060073608126219896606213666348351043515396106812078832678939684881286613926447094002949543828038558561747252110931937112112972027627885820527926214749607166343069027265476673528236549888228167241167783606713041628646118735362537561980665478132934441346634275816390773149918154602215333518753395767453517575364159466818667656856903289198667848776685922267486272856910995004763420308455970388765127149235417671665404566191384079585388180863866338168684933438612696615865661013378420770396263802243241820955489023346468416886280927951241221486574526659717685789672726218485618914053046707793292405590621805631431215344080707561551262019673468808639623030807081425250723118845671316401358227893613797660903156050101304112493350139984358904153271515455758824485310101004457427290081792654272274681861966520001884135017282812804787938782980159110613780099255080068536927104481688053756717361109898036112290789484767706489293716842755424771853548080030624015850252216035743806084197301343127763637203420002938578687856171248207416634197942456735074289741115836350420083814634508463886956260181007069285866184427447960589356803803434433245400001162098009506979528178663988510436411053847136507679351031314040786212168669362141743356710673866629219309488236998823907902672654082114310491232637086042978754940050205889178483094915211466855013194995349726841821059768846925065657687926252209187171782813959585418713809783248825698008952335003695099414654740111177009400199656504039854694126648608945518685291502737853483777753125172921770243189205963445505596864795814970959191320671753215593723847954595238355052698244297319700275746072974434634109703733783306038836386374202464404052773339819140682852299821955857373285217449178363019486910606993395113804070577114281866602207205790839045599884761192887919243777584061687750875432844651166622105160612266279696106518379910566129531948094483907556672550103873361597953992938098307018100753905926329057776391205621753047865038675734858961065521714835408797843882106589094477843905464553363590167380375249667281238077762743705962863174528176665896060963584625921176039178168963577004216041897787231664454387383305574512262901820712816951776143442188162154922665728056216825020705128081712962608159280125645585591448062202512317974642003195173348715255262691233367240023546452297013538615510547896833189716029005587243729845185601039811147795031960814984171263337743459310927299561574823182903997255151192205669751872603037451113848542430266865438812204039297542255396722539649042423278561959194032356499494087328813449169240809757042476277209837026803222301340579385718613295638985618325098271324900774624556704732321723408363050434761808923331135679632254331624502361075646737007589723496089433794813421433724088943584629191601602382742598308619236663263061482522225521853451171301170384466111009540938216483447286357629909446035339811529534131779901655693955937489072972706328371765466483623948893640516220015158117118945008031190556831631355665474515238916224930578409660385833239330792356236653248097056613072151553700745853242185885775483638823651460897938650823925461880679561329722739527224311650049057359636641612241332767881890771485441033843679407700769506802662161280857690142220789146954602813944160155344574696771961050561599862736649722108082457820301935111609819265310837825260786443188716782124780587784655277072890107100234998705071246419039225678303806100567027600569929474227210188017925553528013142431152775541624369591929412959434752428053552704551342798312059064470425312197266936135496299119430683669302291423173378641387946584820131132501296191966353843586649295985851108220460431029081330224130025067555250104234256017188604776116230151664568030796900353724104327262165934550761088256707318053329007762460835166259561987362111536702348807485611786031912238295977042266186161671672359310071280123353575783992256722981466775689117722866424335408094648230738411708786439226736064064142637427860019453571406765322804655961347564070461573841013683953907442842731630522373604042439569612654414732264219685276031244902437194226672366341392486060385530607931682665073758669561450386374605396770147895406955301916701726210823764805020335672984827087819875842506817537665333832565418314836208674981666118340230775795817494255606088831115843299365171409329080722407514135685368649980920201610312970837763174908664244209129401108080914558335854503536581909258344911683955761776346732521471745632135472030006039582268763825601044289369593773042624977970339926365116763481442992921933688399298819941858390512680892380987964414227595651027533450626380570588932369630874407396936801145136630775355611762236856308368509576213720910051179973689153394403628560309599988515295857232067458071632300713282089814038089390481171654812639119478840826620093189454567628348821390948358596028522111607620144443650468983153024300168659278888942097336350748076348979960130145085235201075421653114931920819019307626008756995862469255139901448925170460103687143608216271332272740226745156786650267884277609431140076691974242373714481061235616046867154575365162555695040001124367319450475857194870746447389779628738074758138671607817258451271765734120786483013122918487218002261792596635304693402922316362849020476783480654797315865383309963508530617638535554232019700977689735724048809677664061950985379050176543767164259912216023248639233593276001525638042871231943487834660033181127796024110668980770238883778726822074387721321694932660436870152298761105227933412026104022829580858739777604886053738372950967108399679118482967920996107466026300119312862252418598354497721910675640816832385379341848806832817008479926970220338810407733928250019123793378640813816585571886567294834985979389012749138032647219469642161548727878532058125811376075620051935950240266328452360688269218692284344033025758869036418559750913900618994342136055133617823989099558170877105964691257958216412938025336479605756264058480262540869562651928461205350506543774722153753654545275641366233385648930827742798363006123619582790206692886038437696559311787074079440302141174693323445164427566329873223687465152129417970948150630245753542683579671693207854737389900848697456269762663664184580275632409870331179384827367349062863854632220159322816392878002078011390227211955393429152709039316167998334216687432783986821100250456397548378037660431171959072530646220185342635636638636399971700019535943996962410318686327777027066996922753533802695904522963730249451477365837352417859613133169425834400896552254515895374729039114097232933433758040780471309619506856536151111009522211215839947521257105619072677004703533108744517039846196030005041326050385978801295509482116436380398379832075236602728030820576520538036545635784805635766061310729653942061081973599207365129233379140072451839001138943180681765022425648039535688051528794171459632482152692555781409274524882989102406342306255758139535272249931187564248623413301870734484254169837698238636224891209770393236218829385370762315134759512910029482769786506092772480522698468572339289820677933256521119210683990703247943817704405059947492160272186078124478126553608006614155777530485796194458356463586601623207697968400498043117017226956948441472006448617009718134016776772952812977903688591904406988484990290458797476966275587183334250087235934809599919562536556762721500079536882390768250231291085070893502204694933083865129756042556454938550221641546550069160011742894656620508418048945533455449265180913811346603422460988188868344427214102849918716589349365599533395508590486487364557455423001197219260808443765131859528773608432206751847369694848714362920176673610417306217628624688128014749363227818218562816654302176889625304005152894667086859993006865458196563489221545235883962670336455613484707461799929806375139500016521866125674831307452676636108335408421847569185083277023995517028806432800467411761246642423843369603917603656819493268903566884215411531208506638415225437130066980984179923947063442365663821693154403244634929881968456336099482716654756323675612169878294990018222945363752434896684870490006966734001219326562525287728462226668498787590453498565082419395258138388872193431818965152313977264265042345585414975139665831621785105594048238924931261555167691067872967580663643723612007244439316678564945029797269255272581117418597804623942761521680529017590990773215517351347566914930572048322999686605590480001982670489313066105986508253173589250154259458691304144731036474119304224097020961367866435630844838092077029496519134300448707708137593058653941742436985194305311498133070150383935217477578536348293983784059982647622037144463812751517828758627499671852708908455303859689542255159027861316068249581740518431987432218173238719957047327482289374220484563475080901976512140058717634716395710837078611553116827106656440543632365852931356758769009173838788787037137286214349613732087000463019937931936308549489989753249907499082983043681511615988192076204571341580542758990230106349569424858620465318018689193001386461768115327487634058341396532917640493450540730874644354263362048223214120258479782169779921843163271271476341876452869008932524932070607852604308316227852316491871551084272723020341028160208102799606104648257456359608273353311764514089212486658350565562394183846517093561432142920068047806979581713885983187061054226958542631578450126997928105127125202161853710420453620623027646367143633136032220233870797852924706176770709066164171968900817804928438328760168207073459136735665393015641075964282705383573244864462200616929678465704114475905525138791889483330232093787036743194530370131760830573547279803630520845068921325799984595013131404089911591124042861171388250474922634671311715587423287592041643483277001062896957283244753376831672176563506347018209275342160022293962959703395798586550086944483827126881586273750453485530164942529222948171719549628749794972457040811478272105189604081655921033429600962555613033251834846321631980109340332951508572540397156620060472657145352117123648443120528791576450308469001368425322176579333814722115674484295450969547274215952597703020411920161304486903257226652863057167114032324841701262943074133451625212120672461387649863970731094655082985523434262844581558821734853673084282265826829868326878036922780489163699973104464359280085361681889629200184665935334022316625047309440989030144022069827184304724544724774552970923296000329142774436766342680286375885786311261964874562988510000266035715035471642537760522378414214487627979232978740308931298849359460039885374607441029414165141013852124985722200920027472564755030047063970137911822734232646461032201818583701041701596830240243023214174168215455421260524854547993374396821084007218709038495909546381967473110876530513848270381021968744245325485996042823483961242248564046386166189279460947875435263622773885681566737479003552166409686313900600348207546955966442987804067754890680795587240995320264337333897401759280093795362596878693983603088685098130289331383446613455851289673444486247092870042226708476992925635780856058493641651584309495305055234223462270485300645828504450099333840217541347463883562299307891637325016549228044328910863376554489731926412612576408189362313005869132127183124463219401457069956807879266742017295222256548555975651337772397679544647775056085989295423869697906769984440005363284576600874806702512234159644303000351102811528238590531096822957404842078669842842787896968034982546723880210261846791850091317826678955712295906157933532578687416614666628218009494588216637526026021988584882576984286226994740525529642582751923235192886143179179221445114594247705257525112732872818851513222705195968175459337070860522061409177699387164204222653900565968773362369876861469005050941187335067587548584510116916921283767605688270257332011006632985583578028889556077865874616490340392922970514517046372571941769095295790142460732589679530948689065059165705695595333552719667880953453122172711190544777495908074916977113739267605097732570515505318558663540112395298571328533255901270300062453478779389229258059800489819937325154032664430935503716025672906779631800427344958347268458335739176743089470357130493972343863795161062037480581757809770170820464653777218394425623276207110409291202882906818919910343990824800812644000144003848606496333457659417879060052864447708686644706984633424996419731058193395261807381329741678181494060148177350781710930916954872145071733740276427114930958868378871913156480116876187471520241292981824716431846326228577154221333633048015556169694962297798698555060191623810682614393145189970135595655234874844056909030817901945854054123597763372769194301525458911507980519509409400712914086188474250759646775391667227458964082785692882662872134945002158983999885677517644667473711709173318267605824013983979522120627613106894666769888301504184894129793638991639214800863388017337641814823419159941315997271935986836419617824001607504324404923078474903100432108002415018439918988238127423080891502497669888636041604453367090408231297572291846799545037208166792413459295196319001009072356285091861673515937685836296608789150593540235231301898093132824766685384098227721936203499725608810208790778491817437413586700528723334229506082505245303445025014362339400516178629591581046370559533994033061672148775918418834005532202545332014540456317009201661561910787253586723320082245445752228886276420484524115261372861040072741258417157304903462950020192449708451668576417963955264890440503606108518858846049603393172923676284181567165451006695266689345129430934597686476233150781589731377100124022514434079770849642881111624900569105095330117438567812510471226698126083295890967145194294690728369885385068277300773742587358297225457742833297551985371928942428999251278120012260537349564036971160476456295549639408159344844679009925145330842578753995383932634169372676596991557762072231738119362601740223645585126006055886135798334435456379647606779506419216028633686025142866102659854964560027345712455602442603563041624890140177408812839998780516646656277575151361303141659988645613678555579900928057725641143918354387194865784755299659024846409068238669798889109011545412672467543994214511578302752322161193303586984405235007205633534907051674744018924701245868468109210802797285225998127679061493166109696290109040593988501283469912239884678818856827284263508559268016356061856013067576832908941540143038543523188766292168300076538903685276726854551497750459937996284152009066760086742598624385213325112421907812919047398912913517204253881859972939677723501131486551281711533819172026130677143035426902588350701151293017362996690781992236893341623903356020922869266035760753107019637431251774836754834156156607859938412333825598238968753452328434668558861044654383671774218022389603795208065065828132535530722393143266405130829768962844833340319074650866826320436626353118880183285566753199107884950285938638493068667560358007313752575076321758432717372231264957869430544902655050062835917003893642457347775846478992611589401484234486802315909682215178745999219781795283618646879900381752114745181435246244989903936454412668447580458699535154175807708050890389742152237483095484849120598655855337159051296316499701157099279254916990319923142942923022814594766457427647016239232556549611485873456476114637850476994641381766414650480374709229920477657975708277278060551455972358291223782782135640477808606509451004023235229786917331324542261864901925057113377121170534177545181781280514781721555899518720354894912030223148237068070852073999927046072842756362482928541985360012811188810617116123823280956441692096169824792148761878837918174378546918476817011160175636876713534955164062333830465566248783642087213755212525593535056617495256562080410884248328063845374360077038384653218276969346468324729521231445195625463335873625754546647909070843403582055758141814483441513951527226470687303599822103782198800804541834699838415452072374048197164241781223197901771613739577463713531390475532802351156656971406352415100879063435525867070037331944540690303071658239551111679488107286903756608480053896072577438276701457333487812505512818030102306173409955623661727776106575807533313421934782015394859568948252845519646883189392994452779454538206301866104350331741719598565935635431278162656269791253999014945239778946915545288112451590415596665338334551664044023996734657858950041903775852726028035081154596041871326982673661336797822216763569106353560536679237279916051595561214741685350961658597024057109634193953505211449237964942719901361347634116150222434658978984724975027098181129606496028266985923675773469637525532248395290279606326680947762017867829588689257007040687371075371067043941524712101985677156439930159756975952817616009031378742083019965525215080137513546478882542036610210145343385749226570005278499323341263364449002045487638760306338658510694535020922794237181325826170025864306589972439668536185292523873775600362739748465475859717654982449718527900931563244256951330571593459695877448699581802885317433050550493422361542787294490738807106075147211745989772048133208404450729560486276435389398222205434188391571981599606978166343222517096920008771506176815037180547983621946455949045247230408449302354431473962866478053231985537921748986817105494421675388758529098373832823108752122379520268028594174381862705093022615943714569326168298730203401383678163334813003701632876881227801215122079830802564413265369004257597353645019425022547980776224537082094082434564174109336329110456283537098110285721917905338389551526228151593371035904086553661238404025169931260512459240268227245118914311169915764291471218951977507097648623088632655413524712057167796937965293099716910986299926357337062775310645203860300466179493953319014684788497228789833578951579276346633815734863688584217793269785951831468794924528901549367093335448655723141006216298775550610093223257124267237403035243259738968150066763058916923322767383903857189079912914788372528207476275964573372902388613348552251860043159305188732290383587170226454515809031864342924407191012453870737598403327876669693545188875456947845899261925922812434387597639943928701864911921944981724888989556112938971183895443293137012276082504138981613407166208044597185264697999384197949861282513018652577318588690542093309515743453932635621623670952679999459592748232762529403148406002217886642277301569758972268830845825319934359140056729948472362769853536839895630392892041010444272474524246009906479058035358425014582934684847029599619728210122485523411784944682679859662192330760817525773230733653190953847466988090712756976876637980882448240366845521897614396505909875518161603292706319170724038400001002767320847638111129065281388164962658087391691842053910353316537749423435973662013665827754120078506352403068453503163147521151719340706691308608559093181949372588344671104301476366181011774736198363581384809641965322256179137119227292739687198590123939750617119271337184451014287778801953880779038341106888679326541312451249041250698182940472753605043904777505993914876710733179002671508684329008648448534706800992903051303740181385180043718011675228869426473306345481623358183061396940155753119682292382469621983656630344334375881737101311943762798154382912509051965349298125202033803159437499754992990142891222207369059352390239870682015243266236239265677244600818561067932401612603205340657194125998270951783409395029561163028572717151144341180796762642928433485928808608731603685742298406649108913576451091523440574300106604538773237936753718294086504365523457737845320199691645070028367620269078736530975426469280603764290119665692866666954121759648779569476819570644044331401414636442070215257318158354870251062279230529047606274195211144426786106578125436545313976972853248720512872006725424605560131040369984527893401883911328246139238634385934942629721698723644506676113144812530757929871573446798070906203215556062419302609537225814703130959560525687097491279937800581734950550908941291270770934167801337969792338387606198070299593546408239544607653508577744085280802868695210832702740617123874404820990512973873341901632486891675057583731017697525241842760218551328242782462213790537326636696414563944655498438415949553766212649563931478145366591908847918570116196426124644936556681840304962734156967947488219852702924968082328611092368400325535433396626038688935727942098491591356152265405200890664359904500620073055054666052906136445478563563756753385669708281221788148281280372292729758916381430517421195666477774228485953067986317928928454575620231626933435098370733133261593465787477270462099903954998981853937476491946753334128328497725298613537019392472386095047232049960652124081475673337577436536758003161281154489586024023664957666352870034541439150723567343903978137806457622999466558861821817818543556028256779334586155362600732559499627773361978095918927811996448603594835301063724012987485916731143563804646341824552413398481592441695198227041086111032248367342709959232420838973009530155203373107400678049613440757249642579727530449221722834503525116790353131430223439468913687919295563781363935441440871840684342136381050428802910340573574849522555791770299188903684553150180506773219543314805519102572079061575931037630598933737941600653913379041261894081696295085194121707938547238558490189228284713624053129052388113524025432973764940379316755729009026098165189639150987528422498300055574898149289416590439850196111737845653655633198909321298484237612510024538955596418559867340324568833489051157151223933851606211409670619078038788881541833056497966794831923750945134431915653946251574773845053540653717487809504678066361863619693382687294106057422207031312532719436465312273141400673862741707369369930578851410459481447605526892543708571757373953507347450266480461588617371861502112379946180056200183139076409680330633155329743597037800719773462017124131019841483168197459083899387453157041490082511630628628471881110196926998912018553134600212159099386076734196406037762180041154796659303047290388832078967685615389811802058937994178804143754987507307109140701330872119554284053454332043470933022329478175868289385503529830150973141460285929186791886436749114514125115443947057009935003805058471696423205297021554761582523295595563203146417330868549046829911755878048708796740232435439860795266280388999729764807660729315109731579886445704811369910585822058994325135420668196438853417614812338213473141701361063891259727301213058856993654536000031166154089627203998072346678795210009498611007908278335079199552521748357391779960570479997206156292709200972964306077119720400361866937993794555780695091496341896070100134910729409860844270715040337290755127579721763478128317321977218986332835797475673217908168610341074109955088308113507019695398507522751624089940468036522042100591919883860885893782340184277382861461014326596327341626877729183054407280577731742066425000074723421985694879707639999758042141458535853520018022628370168699170976632717283426781067167628409982207379474868226199380326957554842478657528592315261153893758498907625977935226803524950307734875319324652015476013785421784191259089346499257626743761736138559835829592754599208196167895146338164285645272880351190653017839708336871244403750245537640298921939142403920644618881419155038856700702798984233413022753017657656878286067329207041433364728427506589680371294057010741581545310514990294107270162649582884778349414182067476267732448209761606898255566288323976831385013171666947478701150449874000102950921589783208704605945602021113325303089424058294352426222524084960743123148792073806669827439751809591143604168871133599025470095629915468288211472416339294622155850889559695454237589236826021581723872415696734988499759388560084020601473836146282190486190090094467707346403064036933393189888429271443035622658028182017134836624419473376064671941109871394169650126182993384712156721799943732912418886139903351245715792909885094619348122732035300024724063310579293718687944138359944470653689555605974720069401735388351994453877301145067277814109969452968675630409056765804332328828733836090299476541557419705435448634067696370404276437871586153449152894050360453252510272134223355800523830942928971531161037713612400712438584973705266887939745186887940012687949967780567395870491549692089041531128057795200297505825416217473640532824626327898809036283159491052503765668117787348427270933717637850553230873769374031535186659841237582356626362551390354675886753861942882405876234985175280303244479377879695629800852501746764705466315104091469918221573706807143207642174686818044351113551878440592278820419598016996007179584805400395829235321414023463073629864654500245403221898379955565421243080324064374556084787324357288527201281225656548844199566311977701665432564510005894698171680604100949122207800085984634724934347323941524239756651204450043046940436173406486099453912550304982722963999331579193428626423735401037296151961377167665379213474412098552499548655476951574404373628988447321229740484911619714474297663118765082900016552731432558363255639872117769740711306170133262166077363780106547919672353037115146066743302348722384807112179632684827433237351149494920994783766041074844970052857970393820216505291369943647503608938497254734380044049308949833979002019869986588400178919804663230043451063585368370744999229752679431827929213330574320390510667794571625128782843566906371685317401860482900831233623555196264038481983076651963448451694512202296481350374068987538920792926576973792661792024132163160829449047419583335687421567924100817468681224611060742550563370272047672662964929575136080083004014358850811274844036045315273871147571196882367104602181886210231754907388640278716349177064697227052108361352068098419943755626422583373312162349478852969847145466489740930544222760242974639497627137415691278989305308140779044053347227245197035739385224454926751842758248971449640010411449492498496254007173896949447224769620872755985760004966432840009066476961743092473950495889202787000097888130931432713118387060778984719124380936437466153013193012121894677642954611089043017934899014050597438527886752204679931926654409989648412620250164041642539439047051338644371287140866331633737158292666328927888065619051698812423843178048750416060747614842180375970679384757038774998798905819762235461222782210659630352235346506868384603841174539524869943310930849823896206792941770616192286838990679693551268643757723769757521836940684115811575245268715682782881146344720851156901425712836389489106824638579053087413017530833314760678167974694663570551824193580317086143611981316634759158126050184966128699706217584999493091747742977445541445182893886630135108988332448659868866915712191769315370009793628921878335309531045509572903401990353599254810789886155750672543893600458518199419943289805459903969485279129170660746841174698241987271146181496857912657070040335137672580116375359093275464694419205234613084000131554365544271333292082245681277921178416278012177647059950792491729774546272116797718833310745061209619592069160307673886210563779735819518823667741016270394765603612417138731277470018742992300256447438387500050160766898963056278652870797332126606092780221894761127786201762476965636307713019275130100860018507244769667294963104749958667718772927587818926449330427957039558058620982625042554765069544651449939478610139267834742322401945925585828154296586454852676884926216699870500509769806077052423326434809732817641657788110052994081122460281799607225958974914788229928166210097387005485371945080724394631628558988919293519844768008125689310454369640898441541525890493999292604020998153763249533800395257488467423006230457242205027226081716524309080034326315414997415062233971826958591990597817129046703456891909037400309765142834982444634447821877829356270819862195713897783419395092739059012796678889818556904244708159772298537998684847099364170001621206087880835382264613730735775071172482178048808585419341054241052058693291441795960862272976754069010011089765346108266312793103567458520067836783512182492550683129357876825039245761646942204522365318299994805411441793599597070901179674191538967994377950808192566037857315922432284415427929777335918946212430132571472766771026531559644881368094241502695117708127339871936338553373290405082026832506233839132235576934357054267446260266746337827666020590180244838042200534290187883602239800139357254037024908243973757081133557366044566699561728443710182759876264742768116856680682118176704507443139224595588277186078899037980091987167523889763821805331402416284014644392677926846828455054190045786911806718132468823753139527596351158521085292637023697900978627954162946562483575083479702836509160237048620466622310565680910096980688149255812823031905664812674400941298584854715969835129696995818889960697271620990448609265913585815117373194129753911040901990496440779240832201634892862443702554884114828239775605560815489530157951148936594865607618806489833018677431272599579191161570833021569313640650162794717716649934885083433519791582258825823018209750286448966797105086468322812476473197939561272384611560291774027586214726747054278513404779712543918424488618269372859953659701126953698895041456121402403326761742879130797168069575271090712113520808294981409598403642689263826825811328280836441195737386607455343556161046479460940852873885442226933738423088928009946648978687662541791473550640169061866172909986962691146150419031908903017112932800547968528729328783167395911931700419965976200633507686258875092327832613930342545667111739147120870931532231542295977007159742263304404827151808465938378159915040769777522343880605558652711178740188558141800518979657040496997398757929601749782443848061804205826839415574109064798612762649192939536661871801762343698716578428388459510350443465463182610218034139137760741551253519685182183795548444401681757813195537886183039255955044520467813877755059571986101233971948555721894242297025399246890911433234483453694273788002781639434979998159438259514872451779878393625100273433517977026703459382370570720644005121073786360664367932011604918319713030456619827074622625492545986992396944191696080373770845868039604523392031747287829408178425850322800299663177922180666856542691586521309759443122773424362790808749860983350910904165695783232213692335526725307777546253386919188716847315912178988770254709676434070678827292220653334512384174843855945606689036187631776603238474132865090219103541116120268106756681905651660539757193109832491662932222073919123985430126297833702598443003819492507185691655384313765512533965922097199218480193528773621859693367898089457644433984621062576840880389357848336560198951495143800611763685855869574231340308310627906294338368154309723925468883458978805018070259750421859198617271224445110331956832562395817198645338829231757149623029830813782266019378810738649749142890315606673686533240981642933972541396107615180237056203782730280865925402565601493103082936207367400730440668496293985321371418575694893965006897086210030167873144585810550869615189778153606873413925475194259627380407444050251120002845872003794150463550382210630985860338644937903114717471133885912485010866576744144736292945854571300507715889092862838177851239372272383774338717659398343563540643377443078342397727161941752489903262167421197623762935955625252301376007331976311493945874735395661809737645737958902281103975180413247718833117759858537849588418332668865145626659877729983673398980750133756411322635409332870821926969131600814669298757285288007188069875080655684679449746697489113383312622207242609358540083543631966747502134785056140661638879232128153914417522332687504826624200343617154899575080532884266400815994976980652369612115378842140387633776345829092561222124076862968737702846335501935633034588212495181123068561195219247308159484131583629408918649167913445845844750624252292499612170965538613335392210982979148936133108210531281290667356285321689424657640174105025220708823793304661803826747904305686810085534165164327416774651427762113054129209368522072449365045201959656051853875896388457885103855569767670689907316749395456975297164245547142699956852053505949077778675989779965569829581286639297660619315847629892274378989669698477445272198063790061378754628439072017929472175622314614598881255595318296311411555489841886889922105299189856432908971069536511907486154849438632126533196023267717061395221169091617706581302339631577614307734854165821027474861990100035057921117208822443777971064782231210061994800965297742127253435977460558200138818610596206640909090162638367791004462742051795388399437298439751106127777677310427139167015881755040042575844618010794678093473047892699919786346700237740671629300219406054051128257827881838867894303055670932877127109973099513461290174413535833076032667196656276647608847273337274499530611019813637902849329263662556197949083650380827803263865420516571165247401439978511145490924403378081451801959532835280983957936983695927112872470781429273047355348756367193159546604845827903659316316824364999971894420342753209521059924188764685543357070460287065920240518195435134174132625448730209293694932177835051001963464588404937946897370297585963786007218183311052173624980997806100697368280842781470300296719242091681985641637237178166093310269998708070093958794047251327897498435916221720497440931579496748065656656714816306696468655350119014864852268907674620020712416917643759263891055759596555016786123699310325781436907661867324944443847057513603017886812077751155403984001221906926199276831964852952991692926848801852004590808053407529467899005508276329831982532099246020599063659522623393793468684008747641127270067250692862351274748953032218257947794188816688925745303690373296949972212841146328162395397107781473806438623408406776211009890686538628639909250241235880720133517355029731637080681573639137989183008016169108406291482986807941821223522206232214153625816786297988903551058476083191536233134230429754506247274197407302905002594978926302157813337412165881197615603576644139123026546588405076263463925422636740381551909937773491386470183469247986695443752581598504338999305696995746874357875018186489312822729449142800065734150565793385056498905466168600191855005763701105477678006850901697835310380402847762793304093296387930080825838555893386751749719830019028033429613949199997618564565534145239824727973533466073769346772797592390427497841619964985757331474950689425438144484060977106278493831063452289226477681647649683390718730649276342296571813681756941752926077651631041705547522834416959404869313061673196724253407288571111864057422263141965890428371240605699075979563154524399044665752480178032355215022431321386365363632758973929440386029986929678296793266520415873023732584857537143091580363514134963132916919420083007896770986940290229484199619637434783453330566892723336414581348715374298495813443970515836250859107254186329969536232918280541734911094344998294161403323112605104102920481517623675251158040565510255707453982399466481795370242802677366255661575906947689455513452350042706987293233399886763873257784084934984252442071293289298893882961081858227027711391940647373270875946622316099246571910981622869922025755102366401136873530924089291156237801187051298903464749824271649794405938705065091415660664922275401773222468890652353894069568849980036751144088514403522901411031019314635315343103665172142677681905412631643610526314922438672797816428029439722528545371196381144952348011919334987017017021202490892750481082850112179598866567026549296855227521520759716693250125183577721520684142281168808591478393989965416062483215965307881060188815922680638116928382396350037694194681267328316502809176647261033877821142239497982100335931709821607574764047486232818896606354651468216810979382473358300132846665321404925146787531288048046512715892979100569072017421893725961286493323395144360341880939161208055553283183519895173167896751290697624564912192204992399973760417621557480876844703520554240601494060115150206365211039326417004604195750534164060828147567000241134933817555200948119400545957515532023883858500307872036936923887240852363196400184766902696825920887144376921867242334443243706970957063831141241918909665523755832386139302888284015036867940361875397567106162265409248002147818746277172960360124018914514013705404835919713741381330551781701467347624064283531136034026260141399271020373695178045392489851020262912940539138128204049864812050428196402308568994203343448639762023965504952116282691814853073414999843670703120425835634253792388043906295060583909795297397305949557953712542992419668676053772177279935882403649620581275106171972822283267494793503379246973752961928138098114951205943016419072325410487731718578521468974563945436095703061710390964975312821191402639020635211629617549124089922728053487455511025309110178432062038029149347177254670573184646650618797172263119298944834220081305943136237137227897707305113813317798012538748985212143599472411945929566988651220371577815485569588273233495240145114349028238600550578841401254684284795567060284499811101018392229812228987191539582588395437086475635441860528672782484520723004970904118244489654432230279397885806873382612293267608044880635590342567806283927618936709449094636921940493286888199457174704303897388491779218808506211475430493099379711480946583488670858730722635756984420143891127989632306855631230297459361089785483196894561294471888151452149844003050655591420604405322058548221291068301216283742694251440585959253976327699019730013797975696840195857256295404548876648675708836032508756161885466947922896660949151359978930212217683425214005908900892619331941289647944957962318772950347734667758878493652415781444448667312949380115612562154221388335123962377178137636283608716435645206627324876605932472588565211995074501686114296270347076133830827124080173379316064081695316040409285480980513548491178494849540917064613905921519917861665185182524440212470191764811539407114951229690764792612489987067091651149406811324916187651461258303089771296628684853610288828312371262852377435600555097860801668681564319663753916478945565099223370884764021376709873798169250199378576403780988430129447632584498706419696877591124681677285609264887443277605596233969045977543028865554253608731983518168010294618650715583212743031032955699529752638754574445622477122776507920730644509487549849264971727917936942861144757326558944467529355321058230475194472293832029253373168960711028839880255343214378730304324023814883005240985443740031758673179694022156516693681279672297700777905311407017090759021361967010157486445220555158262979807115919405598047798960566781993714621943044221721174763493987469857197079271413047981319500070172910984425870107317568200489345339780732297384290672548844008443772418866130017580397456339998914498104920390759227778754559699393687592333797077466032377059830957935945395860119844804850670799002340439024891581567437361243715818000173270643993338303179489431985482153314096766945922162348758417393054454872344634580785540929845913918231551439689021462690526535097023315092249259545758013243632100430933986883720251096287684055998799409787826533690778595175814422919102003957411537966938310135267970782403312112175878322453106099628590599666544147014503150099861816679975244580756683227350152655902745203052486195182714092873970142388919273067385305119124007218369073613344100788702687665261116783292148744776126713940827092550732937032999794611932202274429286543928115928867620861150480284335547053017965770903975813977536207305728932689074184906791494395043274872355793690441407403971698541713235774856808074757281815542573470924424567631256594731972460143939054340345670279563215771434136228705877604052709255165017712242372408403563478885537274594158887541382337218709013227346077482265039949184120651587152639248498912086499755298823419317150902475126863943179021084047801127592572296867466370779010438839382454484577997717870014217958109021403318979640058092974797701197942201379554364183433816011153697595516061333732755131959335607243679885893961948916535492320829215395964623799379037602433977499888627327086574183310345388484309398117066990084631234429748607306125471447357133073283491847739760916042176116075717923512687022565260959364728303371924026808941893667722663456841814784500233802436277821386022156886823441232947134664595046622493612032972595919844141807323080768069272502947142424034772154084715675924511063760795946322991700939463359276560533527006631121400173804820261353536599659256318976022416119508749400560648650990594363504554615938485118858396999868464440482691958804077149969327267759870763070518306040816781276883807819443218765295524577123606880448601524031696439329978622809781829180471856547059020584776746805075598259469607327376860764268546178318033192926924627641188787188137949230042507248585217223746609684757958863933584368451151451674793472767287076457971468261455636528352520105046195717108021301727990519152954411884614649894463003827588180792772678876386154975658939533773689615667384027195155233213347836233111647933159685811935543418000953919735338576145757795500865771604713559675092952796868426185374089509865200306059738946321588299641962248426656469370275176994201182780787835512477057681104768584056802446766613185491565504102359279479055247490576724515648233059125741989272308592069299600327648383991665077344757574865775992832834195942791510605802267589773479718366579575123085275425994951607915228444968313529688764204042389890775385621437221532631833743307845641815622104432140698653408367844547261286072555194774557537361366517807663741006739674970498552974093455535986097397325118341628695992552539484559064633150807911849349305288103406193089286550266069524748039505705216092365865757046342684849516779140132120006604129980821188861041024765590710004844273288639388159907003650775904379731500460203017772580164591296053142023033771651276064037312337094343759388292003256527345821829485615914444628690003416424583078453282949835278976229338081294930686669015542849888636150308924231467543700982265452715554039845821840717467937080118455985580932318483264940066724696355831161052627039688747395510196917256354949766247425254310121870965205264404809439852708983952574978191642454691842263804016055570932414362751163839455453313854946282883050303752329340677079870034890857359482045511653550919271102153933693433955215381168918268083661478134085365507508481141404751910711254682438492348193255298025307538207339487840334420586867773724268245706544410294727618323566865005939317064381258424440407583167536755016709396348021880071996401966025494333224618006785907384408597490400660317240033312763182010342849138771633704679060882284110365650575824663434329737549746132664712680055420523214193343949496885032244309686565117630212941005671758357400029569846721074667244021945758864072149677287960662099947222329353761264943565105142350621736852682144871483737055150923086655293021050011305150319091771633598135376548429441132903667216609056046070289137462615541777229180852373598989549018064858654654628823197883150266339164760280994480195096767240460846095019172876520644533377459325052546246631419360364381150240380648415536716015157033319271953467909619089135817821705270229778218752122359475543301771988193872818503512314374915424197283299863546301371863004064570420120590024300904554187184499030775390866340418216822837384296049369743707833462319248197027749143079845082370165365843363346536903689006179838062340490434894229046977412792148264743047759152792520921321869706708769185661126234668457606862636631712402819498340177002367951873357560699679950927092874945163910474589526803879445054708847703193773930197377951164767139876068281312054943517129421839455517777913505458995340272428750974367377746492968718607371040467783189898261423431640285228873222899909119793357964949112683795570154730803207612683959826435629064002596758146559877595651291466870862793391440098666964991186508130949579892303773543048659013449052963803371741441783779028276167618830677909128450893825318969254378780804230709973006454517778959477815133097751147294436004359171618914319867089774848998458892690139373307705208789258788712297876578585822947939585333896063804878513468786123734802876728403512532385179284100749921701947096616267846584649280608773511510378982155769942183377538516480840218212957853656362424914910643312534195325790945631991298789984156366099861842327309385461788541442759954361022944575360837363649548945872242780786361736770717728601608138053194867204289713530287545372964212537049691324070733035173518098790940928561682085753517929993711221255411964012826695199351848703073848694910974992108897030675617177032122662367905458049534161072130053382474035131455949537689692057215065965671765031768035779308542332467329601345533740226806382221569719991599622168080164263865380475411199236677855685031548329549268885495481352528290047662952830981170383450065845523548686224275672170218286834303879799594853931867575656326078435594146365248844962703441834114690216805868914277799900262772580339775293281053563313249180236402959176341150510393855211002975762132607141716344134720914069504248480206543099584383669844190225408595236918101565310864115940165520619407009810250258012747762790796772937595448480016615024508458823532676417362503884229839791145398297511226722317965909610997821208099095103145700889572044027100548269419057359597731445946268734391683516910766854405282850251010243203334994895655190408852002606166441903568998362643537508872134579995393571819017577376683958146621589527873103393373265074844505866590457412941791040044301208066093155080356999711771177333270694194273146732785872113630211730981012477344399499901830399946578876480106134128694718297741044135129799259130212620938724246326504407604871722253253249615447913899515683637778195923866025120399373442849558417181548657853245282263579071981243021811199373526488530651167967741212107369117113328813433910751026064020266742789167412895994429292240146611500462868687202100637291851568243885233496942302365814628799585462931879308360154165386251752122701119419798284596210874938331270549306338920537837216518765167752194245666118108812244059043005182632714901199726084768689771144391152951099052973727427144312915270713906474019143737149882729645240609962790870880737009295202265321661278817975398802924435716887102423786212750591567712189438758194150991392515656878573563105706067187832798352609867698894261801658910423559491926411162773980182630541819129443428146926877354789133481265696124667970053944161143480092753661576648147832734939405883029699023889157767829336825832271658170859239939692828452171966057393105670012648774847903242759237256910795329174159872245226353604370410265439127535276157609329009852477740924552476000177384510616820499490537010628979325289560553345187898970725862250391727983477280528065350111275457594604048343842114655019332465890397913882074974395029930406117799143367582609750799198798334091918412076394807031577375045698874639787449484508329936023611968035302831099903016748966741658239317001671029959365436101727073632326312428223624265767459551775055647795394746253032968182940090096730652968836722335709662134503804766656857707568457953740611827667654494907656958742536140667945456005323857706210897039826624387291633043708318666013124976895281706671142555018188042542745939491185908358371828905716620199708654496950951555773925895901493576848611426770328220765978036779553893137998549828273629792463337973956659242853361772810081149724187889577640344883599496183938842570587468503794396125701053341818327342987842841650628550372091296758659578155497277099934503333453668049252064533008669976730070820758349513012763605368309514598481185777373345584248798388041874271488267920489393984036209538120514628794371433134362260294765399508322959949538353088225708572929493204042285123463416584777543334145933853871768756259850724641895654641009599543247460156684822710021496591581552599863833507328009872965901196907545581838328374999434706508617404334747736288929723307630086463619799500130036388376397014684185037046337770540508068071174568647974804066263075094395784152939780962660015414924742719518191762969092944435387890976239774734261443673135424465979190561830143984357977165222414551840954515293464483412738326213918127267767059941772296158206325975647951659003369707554929362145713712044096583256020103403542661601242459173292641549522832445060035815066512672724217085736204078803918333261450461458030356619711373882015315335799154959188396829231753407917544688938067822489186571011049234456295291415916697490420956326328400686602183218710611072457577869103965409413665110419890775105179013108475616158565261986831486107424965698725961365582536716122904378210872261947216015339365819171490168708054578454692725033788451464982527333660245276228991374315052940703579856917774441002637635413441127127397510306688750915149335658558633713717742189100849461235621387382451532088973922503473959083313951554374820152630923393994993220634213059737888340965048156062313273275518838980035031658826635119476730895058607130557770404433803153812957078625348433934631911139778549092777709469504693410599311279641011941958287630083842706843618201927898105787010510240256902979896815853508280652372733033843566375669676923080992088633428262552672764477617379070286772738179634614406386319687908513726324016657493936238502437417766308347278269412432232671842487714166535218968924555450404295066900195817852385103484363990907960924944511167476503772992166062683806700022399835694295493290902983675085688091532471751549592267111796426875859812836963495405487088235539248988233648332603287157392804979177053610937702410406344006087676477705134246993512225128293506221308050052978758962981963527380398219122187579618943371724095768334558888137042516861823347325716258235677388117992412820910521581273479132807332349146163345779646315574100975140137365980999634055450990719422236742715000844259134115486223854030292362088260611881332176577986030121965623747931674298228525241749996652746502957673097396467390743912453343089298534660588513463707486912886499439607618135813183362518138345758637127449227090321950175171145893445450771424396240615418344184070598566529316859065698838077687297722440479402972261982286903823962279074866222168463037037814801210041568770168834213459152788742049429256565091589143552385064381780716259413306506342176993603659374366261291281233766528856574096695581142570429881868480150900537635420733477427814974080853955018455195220843883678928302252204332639625684395316292083478815336240071224382512242468406006493251521494413740211878217867863192481191107077618132085283382950244125608437478193060613748185862686045883521684411181091128782947838781826294975527784765727968655277574422580207673597433112920223489744594402071783931028695650099079913521958140482913965581716852404260629723614454553031585461107933106586117145966306094991316167879940850464219871824149203121734038916019621397778317800976865491577569848203519976527538459376389518136858922030393011234181352605062837615931554336466831237431373717778010375406183043402879834622454802243176510594859539546999817260104015106527115199945601285791580528631366452437233848327346913645459653975681159862973879326272370046890315483535335463157726847430122194251294515425260040795587960213371845485472801804490952188672889386654363512690826342522605459843339079959798768110109028461303622658833769179544670624681986953318365163059367023118457720106320206914779714885796148946092612508309516713461064410983455854868269211000299465678037934324610686677616024136514693304841908828764429695930083571274915479723703974632533480049559426150879032926212985009555631054399410440829405281691301123982552231553005020109648284946058292614915071320109760058368534039098153202773362169609750685178507929634077732160398830358169965055473540596395927429196650669211242465231622323671535758566288712888561089094594891953620784754692922234256127854554415196073971961093841081932138960600509689888705932442976732127917751978959519979352630913859630186087305597661584370858805546393758131761416616232084051277204083651975078443962721725101265910493513965357893064688535718469115014308170494909745508801348815627724480478087321519438964786483864892917182462852776884482391745227447830813005686830452430787950123891122858651634742272423592800331958747903264323714520052553896401006880806766629211560465172230721785495656380035374930904720997813484215678960672100298732749018734717749978867118012082737924234294526457243193218475561703930895519521037159003224465623046424578372290813377987817294446909303981851064631268639898646561684151090442267498925426670287119492162373333593273268135060820884187136330232513413803289390993925107186427221743756353342475606346246838674876003256667287535380267007385224507972978463286876727584464925019722371842770921196675920478421955938669353516054997035388309943577164020929270017290434861506998800597656767632966324596596573427743221578360639077659609846079726854391655173135593927376456538605939821369478063579105361188243865555622981149030726623504049710937433432886953787894184048541612670882781221065119092866200228491169447542075996099889242148028735355070917150797096007099940567113142530784526789186982342752267861717386624984823914258852331214615693097209255919697382645379825077177781703125614415800058933718299777028270196753738901934314384791231191895472499730723530800084889666950318507489065591482658317781213337549539863393522163247343085381893295842642682407938813170526758007116593762180012771855669933781725020436313053483570430404557852831255698724664467487671470599976517837152766179978721478077513633441407589923720405162300026051817026756783187195062855006077802012774177458527684686098778617170981678305136421930481000042530075986960993349018923562348946900695879760275656420847888747196475288390289499378213914018456651791776367074620153181353472537033544247794500438297817694133205397451307175213590152460113710458188706471811941607493072814331856128827527864493344228862753740730713095202108314887087316632063578302254562471394663529180343686891114791231496882956394703759083799915555893306720224097377272127965716117109997834323550484047661493868005259017298806323966676645955760142993815692463938580928224395260046996973166756518966884589646819007150929110176685688205197072525560101381005274643060077292069574279359901781919159791295625666771058868053477649318013641464993423506973500273091981422494393666010898197600641056359769707604791115617823377522636827324544774139097998867768907681918546918123779680520451506727484002478176876296424385908177251847215781151960212222105839532042697082795607051820323283391902992524776042726582569082996513652630848323576762841437141727307835591907177727268983578471920030817879105661793862277666965486620375182761245752560044350601494967714272775364379040258825910086917437522398201527080961708312907728114087036147801592949196885561948411149885331904120305703334780653221308384364694548459240744064606618825492852393420388486917159655368145776405056790328413287504263124512416884190542105890648996865399663795981155516408672939694780452445676106698378722473495542955137882934279252572094880988627827719493866346677502757001585288039983131536566498462292406427289833042503734848862827851456457681189327502499520537228837076732348737970642019668049834459571815480523136228214049358921559924671264525375716582868529331936540456902963786363694544192838742854521874508822113033055422759139476834640226485729281884134470470053274605772898494049588376613869295837886213818612314749077082593873459404217981396336439176942551717787256684299365381930073282953214053685524046661455030379883670326125651819241930439444761950938840907146469688610501762551924407782942550171584622836783084434655211972451840525825402205913049699736001735053975509697003852934635283880055909770172726937292970808007211110155044375414628495355702762582666432723955866077215428552594472772437500545090741230732232389176369743110687544269820211870394201734539945350853067753191851270392324425551535707433504102213377419636425657714427101372343317146043991612813398820713374013393564579087206181281702195054638551383656577299947146119572352476495662753655116759541724061594882710346368000732723829428589345704432982470401080516731795833369643622776735750202543167221233058757283395900960860208293723345177812353980680447914553159886221498567677100798788732407834950510696356603017509712524794527909879098121916242762554101043741662935426687961272051052266588912261673352708637206261290813300011215670186085785713507208351836696805199037518400012399021753428201020960954323659011318989155153002403896584906870484837262755585128396709914432278514169243089102953091948002064491544855549975699968214598780869326021660431920208310287064241653476448371259895126228992261401714221034061579670612682441037438072680335394719846769947694529983737165538548048177636950754229367393872969226116541842730492240472321777383428596779840752073762477484315341880571614790979472886336462244893814399165278614606030260595994217604861440297874543731560147026178477786065347886713831109318699296926529279060313483108937781490746620295988437221808251087302528236251440404208725330244069451998802363492881612803175974992501850686128081614603687437761223870456000501815472088632534232871467041531400945803153898209049481188225650723877644383309164847840885949871256560176671292888994885878173883996824780650069663825986261141049062668987855262093015383622333289864757948762065179906009039673600518823469840064097539779670327402490909113643093702509295825206376814203596884640800497845155716500336186995809291611652305560383388847599395304071412006139792830245832634760373673777290132733754422157639080195789947957532588030707259524621475111560714471221925009040294924292004969800677206959557344074359837115897371758672927272913773398471448516004182880688608549729821311600983646675716719328469802305018482421782413284014994561453823187628223905505574379386955607404500440894541955098597996900690093316360130155149428048239864063996244397393790635252079225913421155920713780007712517116008067556206325714571393982666366406629100676603021520749460039080629323390313636759881149837034510273008378229536616847877929814968990437909469523784330669230223313547003294806131704962018606121664149034629474384710738828322227418507920369262059616122825209649654451798706998154833144882448006797328131582413147795509254031741849321046451436898376485668031503474581953788188599184406687303335742841178924483112788121393011183118910799924296031983009531335779310775035037772522514565225956575109220377548839562361558138610173261759223540409769165492142607884883980053729993326465474950568654089335202601181834008880645534385796558187701388148801837110642129904134667867906374797901158466778158460506724307239624312831325525313881040059802637313636128920872387585675311537401011291986547927775028156480946399662219764764266252790437993258739530906024743394056257570482688313739232226484336844570686176387385131811084676856366058262815333153756093980049737421796339553143454455539595176174996891757764161930228426729117363444190471138320526805709870286891480524169965429857171952769990665207011714074192252319023129368426218242754035389424270036957034567034646599109100090434683777583335436870354293083099233403953913419299810240033602763864245859374283446027811573655268380522356222241891987945829617884734174546431554278213312760506918549232311265507526130903559418447454040741575197369209674955003536034173121278756722367085747645927290617115611161303442085965248699328417560833082171522586224221567664891081145468049865703240462171784756487350587803745149172263514036277488214074193078212633670223217265752233207594979131903057998090842155204896738201162963702171833702469695928534278199267440114884001586887445255652241282725761455778112872699931432924560604903892972054153562924663686115842263688969839143174654176239677011242086234888969776757193070445803950643845120067292270565658513929489583644654869286223820821023955825268715144106193900953883775741012483174854075308337732378454201696720378938037759248565808478800962661469346833665520294466748260655994487562521628912014563082475789103375201260290536220988490423261375334706671602392273030322819600170095604086375817059715551727693197344404635367012055878081724305963139883741935170375507734241507433965602853112937620591715146583019593981098876343906359466829528541781295352001887060680113457156819546187343631133706135265408807990889818832539899614277991673983695361541592288378122159255196769907266281933399092366114356792283943091417713363620988996503444587788693897712924528798819481456109937489476295679975461757403254449075863332433073946906710453239659922842104476068509089318666617534602033259326967539590127891791256813371598014570443923300345627003032910069476929193336771128276338678124841200110608963873596199578674345112566416567310756832258952295992569518982711384076575872703701130290169060421244289763486067109571767406106933072138790603350170576948397335187718155421317650463262614581991139865266854970802982394385983230312128906615330833197711691635246181272904237463020275214064756320859078785982629108423829719291695936841292585081180082987905669679791084454421347393961311326305825615456717657921603005930072622719764154003749371082306233651493072664948314446380772398529586466793765001522796929922599890213928171285608742139388513737541060550140911107545552354903409387369230965181668356146575917136093274895227886684129594959861069174263361754723008672128368257746064762553322951882070468728795588192801240117824850068804191944009042643234580711940306993358812604257028403201457418978532669550192685263924832878538938968325658530693087985361913492507951219803845731991797389428992749515969196974094946071060911756734174900834572182415184295207485378506204432884563652862939431728504133740566551627481545736322233063004941785707050119975084504814610165722135637835817880775177259051729363692484552187663929346209541934064416289493077391095243045719311713984213696836304423454667397530851292669397799687621406076097339567768828330483801889716410246430239077934052810048343826962484068066432534274033262744690310661708876078537645856006909174155039362216127641518456199815516035785793391670064897403143198230642226457082728573778097668516499156482279190608918739745825827515693582511242447362772357026764815222887810461345421125040463986401916983223176931056803824562766916567344179212428639121478365165607257273003517023707976923970013246547699918574335717569354661697585353198027700130116395003671067506914089768630563370747956681654239992990188900963535567297650999950191997796611526625191101503071212614393891094985503026722576092298148320384422971672532240481708609043472240285326627264860583480833430032649599627150584128930390990016407422804744827518840663488085849654348718186651120079272607091474541962237165943390892003183892924736143396767706490404411163964892187647442813983562941217491764873469871898283450392484122818656033079511539987850413587701376806470197323348139879008263822432274160487078587511989367207962713991697237865734313699155829884010505892032864691967463380082303776368215450764044858078979748512835945606682730351854701003208821497167016016402781217990509011373294939500815548119017922945351594701510155283892636464367609492779848256879233006970061157640427314675140189080837775384559093213461367280279913849086387673253576725106007896057805062328939357023523607013554395150779090325673589907793417990711698173074512488976179767392825722018847398093320055450433835701400791017514972575257778458223503925808725833356623555822830222452401157562375446495968461296425524096757298099516761714098273675188273998176828853744662089328791354348567715571708829308554422410555877280251525609486227527908392632701923455189454120587663297710009276411604334228198014602007258771442357327461968025995229046740586447589365071390141353122630909647903893065981139330721094077565629927398969944348505111452996807003703355466892206446091861717892694800924699854465200724031071262933583617754480445474237348842577542830133857721371015898203325400261138304349830092680903894082760746694983082217854790467405270892787737966468310180448447855454536397537776329047022871532543111121614452747641071437388646906559705541026934372069993621166411932052782910452269548958192723229874296922191907433553865819784516704171363468382881362682699049060519334432923665736269602042976840548325119148689352580581453545566277227032724196256543819248892212051992959120067245699603213771090216918985423180733694217009096389123311321744302119115803167444601533653230434627420565270438019417820230408859299871986328475900601838358794141531934580039162320569978088728562576642893932423720579188779254120489067338212512171910902254832466762247656681410878738551925690348941581201099981574509616795022572898625610216941399177846700516735928084296319655003095227944836969160638752686639135572950386647218958914704463913117535649758185756618364734682177638683013161890719000371054520790550625950421112411979693722464597753378856622562823811905666382368130337686848417801343961418398634285492848034262325229229513765972533538962011087273588374647518802045873571322449972858757394718790658002066191814792675617228476568316528645392732281171669839074187863737170303431934687960510091769196298077818527120483965984008209774377718835197007863202544652942847034967179169681075178621925168137564425555538320294077659287600802513391528440390649403872021467879305273150955917556431183432390554247865262671931844608544052752355945683334692193105724467336518114027850673115611132552140029542717864392078882588878875242085106903865077903624048128564448217042464214859869393443690921728057155392977423732412291492152431614308319179027023240504782136173215852914799036576941849790269977539715978444089045856481594743548078296001565788791285938927247664990278027681313240812942227365307802169731330933402948536609935668786452249565257635856266813564829896156549979525971086094062913443774138332418567978324398296221062515323460140329415523507631079039308272424956082268890390739684286307987194998566108252800872483454959658518772763237141526443827641615342859773731651433160544660413302970888921442528618312081418277070389391748556926868503135677836239212111261136835336144579743832867114930527206471141184505808143586453124600839739371104993383103234090058680813317760185546157957769767276990922886601572950827498242247694533861458451182521480643045238926387366039168186321985391014716082444036138713896453301787230583944336905804135949190038138359464512490128481341412386052030940065193480440934131890763011594018865634411120031198702381324256140016596046662816968300116559887127634620055940971051874757552451847949591748867730168345411275760388279071991251314840209103450772189434928733491329029690261405855451585418981835896857794607145818281528024941865481989483332867719008199774120112677485905690138411202114736017810146052913564771198249775223260530324990569104590948549723950450926512589769247121127272149329679783786858525190996253583640903932682042502738635719592153234037221656872571750518304649750961310214384916735862611802506063234130030508636199112367463305731747618961796904049746309444360890938393001727233187983856767981345689892663507507974302293373144744502785701229322544949004701925529286654964255394153169961362148412155159639638235924344542333954386636653682185436643317895553151812121868403178551020259802040511864881803006958476746654768053510846497520464566192849015133871986222017021475900857260893820651038296079585927184401206928036692728527368857727613417012570682523290861499575380505192653158879466503132518094922501048828612880524681408791051799195808112727287474284748885109013993390439773466257282831534388210089117701921672219224241942012941731437826646248937815039226885896658266287544548982043772181224456972838216220373305347613783006866030147614075811267910593079778698577635132522079201799475991657110998043016962047921381251730636216786307326566377868004626110279787120668091421485473709627948277941286918056463277323656481245199844160600275664001049577085085795420004601074076952144076337140702772228387656869798431705966998071275601167090303869448030520767302652185381773227760777158217339036122393273605106871386382209508351317882204585264999190527462285653893054203727510239761993882288062714005507372536874205948866404858157932152866942688178845762038324498856097741489313700118027239981529389662770630176944160623265200899899539176950162514812750488462381393238181920927825124237930784240360231226979927580311279301062861834657612142198035144563482030789796458543089526467934750075372076221166515628464503758077125036425109724573528637395897558817164475377857042045570143661300670007714779426524918944588989606974593426208165072297720212631000103218344388662119016629936404302417977185311909911964347977198203383954859434268493984591934711976000917404450826485398980574316009842192234409141051049852036297614219808528227003224671208316890609210290349951147741018210038428386348533604520212679545403227753699885704127270944271640403481135564963846210547652332126000253803235199994487099448479777692695500597470249140442279640393572387044017312323705432188405000098236582217526411990236752708384933913531357011049806256587750341287932445777380302668821278541080890479112652786581945625312498188459850759202873101233499737453557253140292517328537432028588162394253205306036526013992396772834053843887876252297297584208310288664742655669136795027798756383686229741198592635306467043739078288193175289081211659422575804653411561410565328386425860130454523736725960418270348626491332075301116409664502744279154529973422277888274527838135372549678726663781223174356576934680443559392354755273070445452267542907976975970241742911117940225243242809676067467573159787062801898682530587385027335713200146513456704799883543525255077807816381759640767379580199996400320707100128997602419080941982585046853117561915681933444803342577530420937176424901266326756043155777678168133409078396084597175033998249081280713127058759357305703662003253388103798322870503120466081806627853506225742677810033036736057163510898868807816989672913740463108241823948402892899163161896545499266271991985589552042193171064213348344897951790563627419623904619676115807387204434175959453370709404689864215940494536253904354549267361814546037114740924189357598421411213273843558770161712839481169324843835183016992537941058912943449412401090970830115921903915704453048576335846171888219859515685187666713088416181435310625652562802827930251151026276932849289748373259784277010370995932441678225888141890777784414590545009107468744138731804799924545339517646224729988315043505927974330831371694435308155511959838109853995018991198998634979928899329781124449785819271188623114215667666940102986648465951321322686750768298857016690711020886446666889698395789808762313058670592547678934517143890049768117819512665781044557262581482805320147048700887985837899371251891264846295575473047043604985959641893465159180033433575214339340486724044387893428393233020086329638872657978007447648851183439335206137244702217230789221725664290897936933329422014953123252681542875163288782221398207750834092918427198771289774405184223085358030529221363642495893262429302489644875924608602031790466579987584233743957256653070805814512710556402192650968407288395575777082116969016175970474532281699883916863947633486871544202671018018914099766327763367572178033726448149073017528806375891430613611563460644747208388447884329406990128484016948095889639285485071717633329110160046314333296797313633299574761916149936069865756703710963795746922993287787663816174426835333003717251301140113207203286206275374242464625484639683513068230268679808985810143080191534973122646490761629003205450397403324152759725897396219316835355745209764417591363022076083991001876080824559420407668009512748564499975496800250276323481439790713012864057370223171986112028704860962543707811066877904943258242540863651108509560493523076796070330320915677074446414380038836644323113388380842008908521021652662826786566246041715219019076708972629549524178461868509647989360984830279482772656482226057049304327452654422738227119625794550007728039491938494772046317567464933819844657366878668167179775707726273047569988287308156446731451858444961584506170555899376711129355033193991310465058757401740512354108324814847125601641512234399721460819336239814068800364864477004493112097589864750253501834796159969083600293876003526109287690390931211020978079291955579602242023860032691754042686905499235525338050679736951747708305430207813424054616339360881705841463382679203592313562378903914258992119395965544807713182217032988162341387344831934417989071318535057644090545540654930692399466804624289465768631226470422725404544879475842373287342612355973603827940260424832907232753527355873330331516886046566529610228253692772889180335746097150795031663785261325600494418350772272636268827457214785336943755888203391483446857702302529780899131828168627997877638443292470897470558097565290452774900051588192872737565792346524863775846926131914686550725646338045617087816368017151113181345495342148591903005311896826695026460904424917305730315770327292936228824859454359596641736691071097401712340594636993208876690580271156629009692826107256485442478160609331380055539504539927795504840950712111222608841513156656150281041998867860900300608842831610085627844611275919482604398032506821858254589875613048086961251999475269428673725900796676767079811093386845420988263015835470374478443878388169981122410241239930718579358450945415646690766319157209172581075081797003919108088454985244821477668407877843999788451019191673649941766309115830678767003500353558886504628351351182317877392746138982885977518959245106197573701275004349042595003557747203859062975327754445009887180803420833618607146612970525685796354333369188253933410685665669229385947996797446676465291668899677381358649419550998106413710751026410488960641011526126374275666908934607528796459453337571700311224437462473684656186538556522742454971596494014489170723340174075924571124118387054068776127196048348110624276239818371035995888612775066046329938914395480957557272792031953934324781100871319692104633351013393953522805426159604976412276144445904419469376398694891379923553215153939487160862420291382539683671668924915257494999566501650045186599432506408951648873518208688958691124722081723206056214008099760842846590020921598724100377257929593967563536303094491127671286189355913249484336234979828457480404336359967294742533011014690224827800653763162557641913053758040103230170444494440459132115032807601243201599476314837943392127508957574229157742527148568481634767962416205130543804717831468034556883802595159630384651183224813620781347192525984270442357473980381838486976444081302217642369959174600521509540260451611327814139368279132681275270092825834179542533626318617305719386902415966163547597117307775934387269293257925063115738793706557220484024254118588891984859787546771691693597489179212910117150019814183113430188395126874296226514356455284124748059738601121277654702758635622651213484689044818074125762550863858016284606558079337984495593020630585321483237197960741591883200454144409120574122289894715743773964053210219602547721136759519954767894081825615160815873659851770840862784580517217925540153977502121994709709407412229505759138865057870952009896356725126882570915336564244863878131303743428357384818834984191499383479145571430858380997743171017742238469476893540552854837193778896908360117421632901158971034913824377303865603953867576352176672846989410017355798317590542981428959202475223420521588855332232465382857810654187087099830373716637052750080010548184178571749711407613211617925816165356671127853238361872013042449938011921403018341481526807955546523878963018567338857080082151563407397310632218285962095834585585683551504297810755933240739467146993821084159896095494683008964821609881099414724468766981176999864772410447949816315577338522097921183424489735950432065201873420400752088174790019789356054579650682534589397997281089494422269877035713564133569164381801191033067456715759353065773875367936110532156211827051706206948456429961779546887916913426316201253713780059342379553623980417133481820932896301030709729072416133031725968763622690897154175306191143290912966933591189636525341001408917249176118186129405304988484414744184024814347394209731101953503320229077911561570241591159691651601978919783376639835881674825481722643689571357699340207200776393713140328741536307976368220686298368417815103026189602580651746178444690187126136234230352840628194219598021091137041193714685576427901523869823651408471502938166360175215542519791427337558901127655697972965857509523466569698665976073086280739674598864448870549019307713922171824467444723863196114199860161618045949540614509103615765652528777296179509587200853068839348075568001455403887200683013947355300788047805317186832050580412958409160153203080814174649053603665650806079521546564664176490665769152899037637381198778665768674356547086488579723065011166368469621983178601837627714564041118857852064716985338143963109843118124997694042879325180887515231701731229915140971333672467861053111426850616912124093408002697928259958715280980633415678430139798161259629767728525839438402433199731692943947829641060042253339823048504112145520151471042409852965328586129850003739806468236276283366402680879757335243290948802709268854492339199896114034286735156411791273782079080897035522995747334403756019764232709800356851909939080760958836058310667663576038334984556271857928080601611397105507316680059562906893929325627397712393108171993153588941411814859106875532612277657135963511256404566896211050487403455680702146613890773768909212217813286703063276468591305352784898063924967627504265418299468304350896825635619653860498275376944906483933971647292523120116114000913776079767575821899052912193376027932397044221417811458741164536483701810181380704641958562850497435351057980862790217006679152144708184990382687206159454881206835880748504708363936308020221350502557923687617783230981885119559487154570389623244982244047847881942871619195857980372138676417511386942429428607827662542800147448355935050550085121968706461259493427754235469701302296880297952513551204040024240395241940432725460150278570620931102106858071143218719498718489812970158913752901003750945964049482300454510582689470622043533775750116377595569595973985992258703486154352343499799023257442071520717503168164150989275399076316363040985500797001131397608732413665513614578614715441772370496062442358852627031121431171193773777453950898132310335448159330507819985378257732431815839579510087687627250848203193969361759308401562460687108694401758494900294686552567340772337522197440343590382400018470867680439399513273940501981341182362062435383858394639412369226015063561916773626914251294647263596713311904504825706605612118800150726939311760243751725974089712365271387643442847803264989510873805597862024204829901725101617057550369573735382334950287281014105194069867364287813482652659245974815005163485159233282514110419125207664637324220454409388541334037180386082970555991123197703649431416882298953518077627225458951233797490445494744740212159770117604327890229570855801597606672673768920359515943103166977138312914541724638278649417784266422950699088802788120877687408580693390276164103757202921170259532598626445998891103925383000274678197554437794123626726368801829457486464066555509330992184394292875839305612931753127177904859682616610695178628573906954644683240354132475295993011520572457913851121589983575129964668477485354719773232893193675912195720800297781028723789585248779484324764451784499991749155174785338960342031078808174502759230305669556681872855315142039641337316678997187594375594288299853974026742160548118829986220387460750365231073977065017943433809654967287877369069991779378611693823618214056892746549394806058533782816418300374630701351709369547132738312577057839915614742159464493106026699788709189360572777965455735989136083543608322136455558093582572548310520846580819794561597707135673058625162200218716239479223011487456992640964568516638795249560812714699978317146289929447616362028384855015346130214204332012949021053945001736374849030397199488099406988979132008846776157997843761378746737525625533337267669237973006440817575271748530434720293961039721981649088354972460448432857667197537763999205603234547869958754283286099286821165928519700569383498239352711836801779273787556949662006649679881632538748699122586397315526395872359623567886837489663020584681132276520897372319057207529964390953802829108466858209138049850914367544534997069517233562668647376531971352233176416305159514482662324445512143015756493399674796777270045101683687947009870131992567461187039821181186613378969530165398425055353998086921462948553769475049746236315789025816735003154667330566834219981316258111980209942786398065462167927774489677016800169800595480371767425114914555957058990178571283937499250201360375962990146420580225310972496527370711106282791540452386658611013653570595726531189868295531288338144885430337581370964069330913971212953862930342581627835225125267002031112887940399909988509205664636696432970962018925114003008936021181293889922928835963239811844687666068000749755147238675892344294761367566120984863601034132989208793582981645553955606062692317690598478992180759789736403746456901121012616609311493726980020065239498986812819357906070930862493238192810738772926597051220613964170398196735330347322304912600453947740163604677619946077246257132942998138549993696848686017424442894637746439487042388183770709294457843816321749620335233381936317242360804463060933716789316444606901004222620424558245371270055209348206196960598450033749326069183420841816083789656552257249693178083089107633177436636285689077754709687159087813449536423661077545861179579526024370627773366772389488053794208357173753865698831302202933181973045669881147319027617919497623049943647191341009550388609806786680780420851154141036901718789161339057047620957245020273449596775093730041827439789619666512512117589387863577578106444973729146143011085155552787149979549372845502174634644901168468632421635247181333736356874602483788854953109131859668718704019882403403064302745064725516848468460082884753602608279224248720531992792193791580903929519416346425883047856331590863950263396067285264186945954063421786769451116386012045770541855179381868646223295380290488255265660810322291272514329448758755512117441755862464045939706162343279320935300313738481244534937846371386115477133815235231115455629823702929808052989542278737631511212505431365738943294231327761593465221072627841436183229546597042737979892262039874916166271764378528927686616723707977646577752045986888924050097170750879616268565348798344293349891225177956421095577291698461498786418632778303854743746288033372136810654361269921840938269617211701154772104039810930040395639814192980733163267308612541305850597324259067454768204225002578326296920659814651099985291063713954221397219041674693048178575326185515591686672477387795369058169020155262521726325052820712423725779817910247215382716744489509886332651502304657361501265942997624500250153711075381534898661143664146994203175838515415331464440032293501962160205285402915273663285144133115078919264062057825214998073986827729201552564881702700923256690997940295174483643629065523015681393468137010779397666348366924840203691268240464145483873009921920800988886203603047457467115792518247041593550595601766243167796090059186460606568166043590092361862390688208961631083184527825434582686384195711828800381014168993531494746589331240380243131879736608626778822163595035404821295008672814562343687806971193016832113211224799722154456144435999921318112049092023494771435577352573168192511807734934240758917256806162312855332290786078137100011347537798135187345994349797600046801698237236094729725732667797927896144501390369129835686093095858920711709330989833011794817012417808669727009148524938064162773883034382979911986274923543792236160088598124166994878418272376685577406693279033389276191649240595151814151687052143125691077153850138404740097207609444696102293189958735540790671818804090950306875553620288115543690658399835970685909780193675869292126821775039912872783358454225086337656632911835740079091021862343437602668870119975420876777835170265765728154816901873234326841743274859743767743424766615845841716535014287483001164405495079481264593303206207486098718901006066910704203069629912471285007381239620214349658555805246580579504663714450198461020755207196887565464108159497010145113422830056938062342325347369480503566663890322618237454754999375682887688502418488222664359253901943219962640373759778892704812420948781715395106172639946099834297880484580412194963140171439394969778508818083608542305191536197432257230375837933752089008745076250871122636522413020833034187547639536910007149048666066599667400025747855229819762637011987296806091240017742051903174901398888074892098230487237674998946803862277889820275242546756144954190372773329758510965588148683169017996539085639487769502181563560095860284113234536336963058740285011860228957227618596019816559601862085724363016232256963485236949673303075062547186609869561576182981469447234444576898344517659359884631577703369314472113342976501552457320236714318235884050424912641424200795202880490050681558002402139616226966743505769920122585102012310098089838967161270339293937358096349714044980321806958418614945661063930023246439953475768952033632062866184155433620408592141559657161141936596604494873925817341693045300911524270672549662146398494216771120184678039293343044654176193921165960781005242721344368002650976031983504145940882750709895710872591849259119166533597577203491979621611004611407512131913160958736629448984478650922899482889609220409413642174260047207502745884335594610861376325638303050715561314590493243829386209533055858199415006035758792277561659882785947530860726727814630359728845465463700795039636934518420024193396269646847311655022004649963155864209119782686353220876923136124159554695244201604220791557282661134287707335488215261634005520738558903889645642629751710168034237605054279608842220195737665250902139583447596285572396410931773453518558030562386784672045634177317731734493480206922643496507710842373231254596464736923006175705096719095428657738084204071070480866412196381372176427409173906054175218008975454385572238456980868606155188116852410783460945087223872901231912615768924126612795051416198964985922614822536928217079611392120736489371665138874817917594684118242832722141504652552838017342376011836487646220241775712885276070651038837892223252670388386804857402230552626416283277689989113605784339545087636864465179827018874029048684702650640112964644455446428789237757238988832192005996465972279981852805462599839696073953849945816863602206168638986759933475213103898853313500516057662334246096341098542056160869414403507780542129066979744090826172588890098466078640711770693826517513203259026969008182802944569321887322555606362378013268075521395310969746738910254384145998066847013542032334614959060323597091777169775595819144918501877279604115310919580663821362162325488516171493641616073130109835089288005358362849949249264398797594070030980447155691446875311915172024989423301614755653885693259930756815943939476076455505977386966187208718665932960441330298490727673801477324862742853691335959233025243223521217929415077012049777577884497495430832970338968108065266935511984644991171809464841505803481217070941947201498218060607476394674621002543894225546298381550751787481173880270913428759131590831656020444323754829978468927944407600719951476090555310900144363119676591708639733805179375457784941093128543867191351909793516546831599120985780683999268853539274306821533526842396852790292882822330726593797170708453704749045673730236525620030274053648313873413554769662655585143705292724835799383997752417555404072733626132468220305212541062427740093844130410115523157281635467164843220977112283508454639267896854488292856875071694495046387560958032723792059457584458702313288880755677402211351269746924224677188151209627602911771490867907427764157765698316134165077559408370612304690904426835915962737153592265512143017403503599390276332395907402336656130888187393206816870921949372784688348145983577786609803786726128783301901785564582448968060913031719836016536582274228615959264287464134457018519148707115891601966806313492084493357946497095833431126413687237755591037297065826612208278358938231341189233614185616887936004602615573705024294158263487083247388895596658386218372430570532792623877302732025080339405947271976524515456167807379723749418503490273080920635805352787756143843411313592066823687141457150274471889579506016668779451066227232716754129036231580491728445998541475232036262924993100820618908643509936754318543288300625721418354554655354752103355568503199847239636215668821948469952480606828237846523599291848899807640757464466755234738709221239123610790326277818106506560847424991264131113101659858693967983087082832502219422160149464799218271997680670532187967640484144487296425193848969891625033501987443155078736773415828719793584275668042569203433666560427207620773223464718733117855802218460058950160071830116563049042651797253735639074172788268257164839440960961953300531064593171116334916331931564186246666249491081826911063970627249697341076277908045605157847483448372342444359034879756177129814694618650702242175792398075163644924220023643975327943618335811752030217700750216244734518234847679990100745450832471100789724920570319206408328886624053629583596371601954805476121342204970326748108146373043924153661177005864270544068687127707975499369284507697932911756525650800861105280264293393806442819366126544145224327145444917559843828159669890070251270358447772571642091663025399045689927187067491148139742001723888136379886087966570813736103878052941749514472808043390861138833876097287542546486363951072482974140266104247497435954888330491448481418996254697374696316493611292482317586585783534312419096112288169467798602227408670668487083714290215863071175851467564784508998423846135952768351872770209980935564818933737017865716038210689022281007513495217376598036281244987133535283918111344035111061547704359498536248237566367166940973959287361935367787308778537792821129138023581000815675466513674228619686469203789640307729192220946754264186785584122167658922794481388281825839529034844999931625478412094569701696731523174163482555901012049991631972669517484646833110715961124340136440507820748287140686118564681387121531649800393885270300924904539437387512181899370312748746845496274740354128085925977273019616827395295653745216709879775804120032594579006025590380646979191972976116933135268313227574187458347731282239892399542149044280365187529668604954109385196135314153914348845021392014479897979965227373632509005847050321199191475015090682976854207998266353929607982914007456362462233390190191701307652994654553768115893310903379199180872041951333842764198202952476994330761612088046260911248539006367677007036183098662972689779540821148079116466789829275153766935424928460297441508363361506287084093189651926373226440958209855868886596120390498578613535202834818534454319691950579573634629295143200122401826979212751157641128199353425629639967445999370848399164950751750986825993874647666342026207612733747275888474202364227866522058199035207409347856648995307404206349556908349148539653447228374310577196983785301979388026714156351505099739394367187345859247255681488944884681414956688983511738296556338752679845887443708362213751577434297199936228024432613731974789097122185743594380042338592159732627681259621918589310086699106537486543063460511650228435715788799709694832525326187227210100900837371030849158398201734761307901627698802242286108438138052214631415903365911657240774657594225191750652954124711996433556045289771458155303513495281700223310517369284116363782876920006596998557762885214546630406812257889911683385527951847882754764347930994085849898511502279301107283832423273735432632261125261342087458035928116930077847684159267630097057172635304050957275555592342398864221953896878866883033365421874113741759800276610695219947211198315688884382612270443383615983341973078947161063052411724647972897308036324949588521490672225984673537924755700718429418862167102398891923729395215666298766339496272261677372297069073858979422246231703518352421107220741848617114880822026156448646928596849607748535175503827455458952719096591219623231100147882779873955236944665385527669866849231413310851339276956859762771081180560271443911440923210679845032261225078235175749202950047281294621158793721980857978355557298040154545334598376783021695037604105985920415570026884838835699471376687864816901689152119841300636641093602178768452742910137082561019117315426643679223376683326508870921665188744286723619577103043916109176811341570926122965522500318012839010860872852563241952179800870919968812207424757352336265223625850613057411682543447563572807412449997096310651188755132465604232487302938069997721179761313330958730800938653909086988959898215949713906612213683871374686081344071431863201849058149010501713094569515496286974555881564594233581607696999526608343134866241605573740740819369973839602730898545469489192086494349526470431991509712586570942066373818626824249380655635844727437820594300029141626113047832226060666061491751793389653120605972362010560050051249529705783637371932396153159150988484181358343101541385971308765294545409944346218474101726351072664770388464352133856038656539607438689028860883339394488185525201281191984264005694119286673566051179869359262705027156040303173633985589826028506029290827030508874456802350458319285846917951001665213618912923978987131659376495623635929967935045523608106926501218936011911529658125148672261655495395226492125016811754113278454869363663259781283238142873406471363642304027811314005143563546602588323407761340276513926891121209619101619731797277078874418743395276465313911249304765992672626159545204095241546324081487183497795239860012329588986634468145605767887272104298901971635686694140659190060570040291092116861999697928305043188565328420178529722416883957869914369039778291415248517648711003878932533298791218463898192390647430401104037078732026279843284957047862564463976862347661709786206732641147996382484445256486619317257130379496698487510497229245164847002522476831116091206991299465834980507728264509033960333804540591321773776058141870497170364737629772025973508052360603176386993315659643787998432846901464743550361698161948693426160564442461477499072610275753803750711048834063211821036190857704639825316606281860724324004216506917041983064721948532497796707336788698774028395967561892420043230751154534584865320494508823701923836574883770821528698021861996993627026579972943924825683838803309704209294022864568764745159217040588329992996891789238586744784636664950911787412830605736701704412659479309413786004582488667460468528366789095228962175670131573118793831196951437589881968942186686812168272577190178006471588734448559847624401648666721001968798479629417788301501499341860132897608963292781273056856870937043533642486744895696440306566285756592512795779053788385648894189700256160125777254872073046788387869831920552421561519695344628039536108011713279338464744868015756250753051667311416401837286426492074193473501978109745346512922322328222474799576862715151865608653504921846532690591748987885363570194888780612580197216565695548867731065963530453115855638020600728833498286845100491747520649907763373269347122179259659415499178835501639665167367564859304374741179934107758831401188219457868531657411874858237356794229962363623252160339716067134155870698573513402051232045327688410356791301814360343588935657993294199507201016555480748171547510084428885782853698684599516899740926632964845736788593383413061972097920985605753090810772090024823058991943844771924604004803179887099935406280049928798956437698353582218128069278568785885677131864459343540453677566013827305618452907822062177025964811833496033170030376540684431167204035048805454829626016334131795501714415766162892700361914348164195109463463231112377199438741022808910120650888742516217190008611115281114154121949577176447046081662437975974988219238470521750327462128015203315003887380829738934907736877308321309511652351035612283069156500555250299851341319639880192559482490250626225836143578223926135083459414364321678718542773352378709799333370772996869756658979276561358046616379482424210288885535773701688325950116105903559371615935739746612384944672123683304192334868363730296268188581631110993099145436824330388600048612470366793659525773799251140408364889804155448557369657935456099045751803934923131076209311741509974144472934911865089565269137616743945096910910789780386498583226482333753949668254646755552247187356616975456297811307518406744525973073933020655329253565105573144597375224386053844742672675111080585206828545265984289935894683539008162205771738378178631851968505131687199207773769237496984603063041972524185136172808259777982382151390400941513526428924688225580184121060076842330698271403557768035265161865131616851510058522459691167534307205825904293263002439316698914662080452552451848659672449665810770258419377044137837726375421829805551473650779116574418651292384821796732567044154660455667422014864677850199024077404930308203477713677343205543620790627673083393179904411303854565789733300204138797598799115081198968321639304238981923709246233527116641775135714243432343877288482462521578997520975182059255932535744034085201007316236897329008828817717846914849084292871905920718972626085593826446625865581493754735393192938129334168435629298813780009672033128647347248358548040476726811037903685683083154426329427131996792255800334536438411604946305990011117401305086858193525337388209547822300584020656196389716632889284359001199325783734648510182401329880850658414458388087622689316873381648373001916375027700235950820800327223219937544972380319076667178523947759424048622190899493063196580748834942991535062796217849587449533017288046891356024779652398099203090838785641165228868200147343746318344999693317702054270449209786815291592088224672863301928817235824442627334403719065279822645884964287646798862437492449970965619461974020079369210277669288139276585732356154337753479630540658698815306120584604159473709973045150236078732588672397189493818918896974445742723997816505539593769903029015546763402367898453304286636172206838546794695465782176045759629840073690847425671655962712901505334822430391667007398814953542254761310215688292863266510790264713631152582328275030085441571850177674352651067062128767381493927885583616566269948790671969575414061979551595406596082634036216531691548588041969892067904016754788406177508978141516770693350204047990422529649335019833927418667102359924141993208552949491614787078198550677824296151831977470684745845063923310269943916872284443878278447716559332168618782012933376450890010958699362239936717291775418030369877599088506302331825836325180604455820963858577203862947429117197536996977182315761034155535013281055668745453171875021926758831778989209990223362559809797011538492136512902770769631757539226201034778632158084602401971749265398918641995282596910683380752174675062902308720060180703309077457952949927110595128091500856845474027313984378875664925100237314249213160152605008410777730967148773469848045062715257749485100589140534276184611720800928273390585741150983086821186004696906449469140528307559194256731294789694940593580819746472504457624516420683262282079732944389152439828953076153204257888390418984889221545850050157889420948936682160139892410265233289244118218353035168741610299531029180869503915496145782643153061159958756794622437061558384141834501987278162539364712273637644863414330469768119035594328201942507141799500196435897978927296139191459039476849888573290562944737450660739746039892069902635628659567554078306495723470408071994190801503070675321583550860686586906789463635280870812599472818581591472750403755024191297311995320250080160324668205828702775722760690617643484921773258071083845869005443544249833987774581447435505703898140032780470437249818871804346597955455858452171362318947459263593064822295066238904734471068700063807906971315374072609335075733193561027473682162196807676299438104559059470562825982136268299241074813286491267824032662140548333132240437005723781570757891526280010376450218705352096845101112636617902749118009825907542091863633566124703151170200836316011267799028898644401383040144074622884684001532392588045022233981254413247967106997580544751843181932577712877472955749208575587433434616549698621364942236975255647330215519743774367602450962216364672233636036640536346354818779137753192014470587253027799475471660598056563944507100305997670539103501876175737948220822410537643201880971739797083755878448602386771476859543233922222932048294207290918435607623311963516666998955414466333886346652011208239841088163515379629038171219352155249386082940535974941871888075564468247484940398468046730665789632725984003494787751004102152796867542287773812086720845922199451336975969728439121437931664779336839275365307577187446381335675670945191616395969956091488677856651840952635274815253569763813489660556013588716506816593244217256162483305874700584686348793511732565137381548864051521202886937600092517256368774699099432973526098756004537497345184024573077609525894614996879894153707155296447995059494631291105951485746593026864766890930950956517640188858428053078309026450107499108443207408813585579704158223360383111265130991609349079613957639464252998589616692357806470413804302098680688647108577349064111175190392012929058466239808159409791957641683294722990506215634128905406911493760028849000937508040696849847692576460259172418470513451370807983626624048426714817106940592424058447012227855380974745495112250085512268138195149975657621748368980052523615752962471579828620129532019299808597731079489601188096273910728472498136670539227753698674722571186032858528265583776468008844372872848469468565187809932420949177602567009917931329443205377689478182141769302733436596111590302714110591974734454235517579095636450156468083922626355115511875236600745428660044609921435900281939607179147139482865398764144864990166233133893067069035757916576295280508821295407991605092967707494266178318008506671764470249559426354626800989334331195031406783674449700995958312131252456309087373118576562320111153071415194729024105017822666930292954123038027176128920659609331451856736229457016261151220073308386920826501439897886630966378512187434147672376303444170119245746938608932598701601579863368613982756900774062644865345114019748399113319113670978123929094322111019754548819678205262696677266201441308119231918194695203674574879653133544374521302207375995378475103209172174166309221225242195718479694902463154244174295271961966248742836458072280804569941783526151144578109085582130612017909792187294838809190581349477238471274515129162530444221855997209013500396294375002366476730313564627048070929957922393871199813833509587347013587777715402016231772889502680332919078542997616670359032490631435005343012519605504516323909572686960635183469239886894854938300009795087551872889850040968120751339885972607849451450950191373865915987302572909347578087319944235228570941154852237917475867171573625823095364151323863048759876248800578647610487325218763766970262829412098852641612685009694233179559685528235640966387351136280741960861788227762471367056647998900924457142978340337244866810162327182893031906377091740728271235685435607220446729190624039326188466395678088693787785762759698514721901295495942468741445312060950836898372720685411793716890235349597559603985947618436844518005772261666108747308161234210712943426960409498775638153997748183830211283226799576674543178899679665675199537318148249880300747110605860144839868843688389107827287247069379085381761827405081161020941142252611856267622005606433463756473434335208350601435050414934280983076756769569479996861528778230639073514329362220478540791471268149080802138023635789931442173264894269981717768870238890361496480030692048442787977855384746718612241564796189954981286957117132695060540814578860502804591512967975080351654394394463292415225324599434767300501090211984066545510083697790830132553986874284281961970681534754808224113980764764120298226849517079150482652449853497508700440857980233215892488497956183415507553884482912734382730335182403716128090361554412559557292049354335782048959466302217226424424320004625100894081133528415812520524041821521932112089691795860898891919639595335041823714997290842909988936666924087289450646106858802704753637888856178405642170605206284447654495304029017954037944663462365568138237495831186337568090701476838023075411337140648464365489017025220958844116789079814839949032029606820634750153884175717779675439326970805771990799053823114860664091159191110192721906923956364981518297080842460862226779782728696740049249502408631609895060532920105426774632407643895076275305365721429862837651041276423909363838157631849236428897794176191357072819629805805714735479131978755422055326925161696726809832080571129484332648960257225890749645411057703658368164124321740626640636082977776022052992628958281716904375250383153993837071156654972931311978835752017452452070489084547925571423891438357878209707598094734778454032956221553280625578513217893746736861375938331419259208166831247820956460976587074948467177181808570074877666762605043578682418493378589516698701732795691845923166344891066152315245620131830791982152442138175940812587885518005007544124234507725718927895942476759422630436241012639989717647822099565739017414669492547474780072670136472244427750386723610328883560078058562516972800002473657886527690620847706825951620597707322688147064345309534366113859686426536861374536404639428345979225063021860088978627140887041388333343536024665844666697945830826800932760861304962144548163225265641378430011425775253985033821094148641159590554309575005327229381677992303683161733040819680866309861147272557862235199858981540365682858018289909239382398653899861626591944702390536585766015092077882815914456948818306617983768079957409139054822178831486156684179548602642258601956994328509614906865804488854038199538971594712625610421350256062548000017407564515293567560766778385876517618749207694424354706107263127157175733646811316383114151556956715979493682178184984778954253872782985320834011995916947796995230661924830756365581701964323028840556959913490054770785133488130618820350803445179270737692104864964385024893395700902521281444248256708373639104713885504037961265971215488483218864127851387863585870152183386866018978757708594955713612612088853981521223662828681103365981005134198756296961149931032368115209984279941533538728740641074799915867600516307952342865530576091391438899685584764079402454794305292014121033873044958223498285045804525051571998600112630475826902078839774682553813499231984115407730365209453088987605716049505786737409545202105898645622536889555830084358090985972695649518374710837534351537472425426272271352414105564841051738082795721891984433488066738486035708315602394191844990381225030756182937166415453244534102522436415432146472686928692119052145244121135966785147706151506437384670589020886209241578029266206437375713580277846745528792345265889883413033296571018259940565870077352956275574155385381804557699046423256945503931384265655555442731968536293082839153029157564545055187308611869194691767444120767877852519303729585037042834870087536470541039338001870537067965008610963773101865340963638229444509903449947334841186869099290586520099534653800180675890776640166521443692191071081980955333729934785230196438375074862056423887342004950123109066171495040106455376934210620882573472350418938179358112826513989480372422316455588888144913009827900684036294349260435449646183209670304316380549337874092357977022341304027440017061024026798439241465254805562239488157821571150368392705093957896729609610710702024714830106209044891578912686728959471385923514964432332775425870483283883296804090573812509261800034875233198681988518576986680524863913170196371934740765461846854335829078865338536966159848696912062992757691424148267726173557141492960675351780956817337582717872991605472539809060891169014487483125048104455945136521420884260732942150763400010920297127803181916184828198017279897305093755521251891441834998695481988180678632161166398280640570653578557312383605668497802667176934522658151664828100753020448842833718043169207229581577052649899638262904069163305463686897365874838346901515538412331036121716201716571735310049143262139470267572286693392877241697620187143198962485167726746232748775635407351675696317558789358101936237167572134741778337282404948926944560121548095338691113462829150187206583697801724981439258622708077496999464648219188200179182545746208839464818171960374224771769576633381090338553825225161263654596837301716177136455145533023868387468999781674248995074864173470228380448520024550278459506642069105189478338505685439761509521970119697742724660855350181523671585265128984721190699692855397965233602438263532548596465728266366744073033493917866686055616842749102354007393419525002864062236408860850484059354204870806198450362927206449385910205196762294830634856002114000814535184168938368984572957315427797268822861780305095202671058742487429582457474933905038220601567915277127092490569686460746774217427842461686891388908529011950579685530044512590954847174262018940938184819344522787746657160059168990571682260769090753121665660128492545313299385158388588538213845448789766046174404592883492829355867196345823837526702662037019213141835799106165138291159008245080834240401272720030737680786509647517431171092701359463363933192619446669202609535434631472013010859061881416005518425397395803780739874465622362958061630329516795528785434713956723965999125253875557170244828919420538000306057982398779882840637458922937466075946127409422045179208175402477702653518222833412003328326813388814297941907704640663041423994964447716697537798763144844666440917272504326640111336116037764926171493496432192753784483428352654583009319291579436003550827936101209542562858352709627756442422492964751912885247847150325186095655558090370464006170068218588383653203292795984636976287958336253724001161072950460413881931694800256331145311949743900163343400457372970880778033216766604520643140903360177654569000856988206996494086905837573908019300114363318714375284970109070440966901168025403184155654344740899962208094150617775121527889052748569498799211536445127907884790536433336875060939547740570396981597135390301112925944619219432784534116311168054040513328222889492139540350006270792315572243828865630171432330327748302954479809567140128633494994906319621683953919659422913762644145333952408659146915577827765205768612207453150208115404996466501963065940821452566669026442708897614593505023877682883005976051248315120315261344466701442492766351642011429426196680698498911280683936862547202529764105269865016043380203212605700441140055951111215948550194865406233493584711453849181250918861895959443087109450605556927084404563588884394014555252479059258791769897474871801827978232551467019289923557149912114044983155168899907478108944827919869475868709609083058605294159924503761045645724397258607505512599169883644864338260285035356565644923001536696135147657107168755267429222772944026231485484720590568399245196629316523310723995813273854756906659467558651560858497610791365639820068796491410866914538962959930370525981894814205291941579554122300417597078063208324234672908875900644020762008734061832154083976684341249289145981194456395073302416381672249341016530717479265109922834376862834750523988155665690221587296247969824473537872507923418772807482456050191183868411242030383328752238587941048045874721712779014655632371620635633148107212613533492197899390059699407055515208234980566843320686587544500572953568567644826926922247074742886674394925462700733620962249956191735767592075920253736997942284630464671147094791948086300577094485178247946929396770817361646917469999532862426714458064591622556378076664765454719839611955777548035362379514905720709401766822399644596073202667501753767164770710844469637494408777548537747843627274857032094185006273761855028843384605586021916643155378870447616978255110120536610592597533277936128062727007285711153450744290017653678059421776733455454502525572156576639088369129791025194635072616170232489309834660531372328854502198089608008225904857163025962272226506925423776689883292331090617929225069453235969285578086823014497839424314386360994505594770650059096539203554212007936795423540529799038273686503427611537818742623062878675736421254176201974444961619438817524112509365100299041360471310566484937057989804798948523497590678534319468991491175010629435250327862957241378263551120186769467521822847986031616213806567872110096454480573854470942978549696615773150950089708840377618812865294546019198338606013719564312963431383351685324514744877235885528763342621303388000476972548419558953543397575811483155898056314143248344873468954277924980479482882958086712380925594099457049719129623685202455048836844393658414412946034002965354638845592131719917265567503678630997925771510049729790949324590326697824886043409600093507371489671369895196481781286176483361813202489725017530273219882985287440641004164154540514683674714555454412403604265554018629245391288043908750912141242533181370253939689819756384438344266533393594301850045546134225023935006385341659220394645028251865296823554178458254848549440903505656028181371916883835523847212675698357029249504768826433667819792928730330547138809547046763868870748861888485722779166812782386861735077176666164411262623976013397981554264247659510551378503574355767714933497027814246865363168780792687512725383152800937514069771783715106293942989051875436185133005635630057225690637244980306330087578379478587639066629047923894250017850639250344258166103172087330582289526128288968024140275245102110375520134686057485469475441018450470470273327512903015805756951065082243413516465755485514697168965406930857857393315812551662481110731828219195676034173556445459836915210237521500763238915331305841878824033360026582227053981660766399961520236993362746708188745686641016761318295791633253033672228921699871173293145392315851884342513841118558627551897503075220603685422061766430332731553952869982344060941920597157861797102222061770302544749149246613778288122274510181356392555276691496059337792549876360121525069716893343941919642332897836533910662744671620139671850216319035690596148966226644595125088502123445424115051185126890350527642541934334555818056832946620407313122661700817061619562763450409724810366554326070818269058891621249047466830015551509766253620883422523394175157058017114425690953046434919417343757278149978127973682068177413094313283790734588920475095860907751053556238332133231588011444524908949987201977666122962109845763046153653772156744138146958338198347824810082648316055066371437699217815791859714483656832305550354281377752259511220439022123803908751842916913674651248658498377148895786672103389497711093038268210885058194469889223018168960286199285132038096463963277931826312972537959879685885743804531205381236350435963202805706013476022326701617586418814053393565062982295125357853133592040263777000213199522954350745574375712796200113206334623737934700752959286112748719152112742869352136896283028280032567664784497710893912210940986515516328808890272044835381801723038331846678426436425969523649591712631591708588691469027507993685883213634012172672886306706937222568552572592512393435691352674942546641173072468391621435178014345283319749182891558284441275025095632056142930354342307213686206521216506816223457524584116009046269711017689827533521783202364648788505237954098361641062052602497420914134732325952280719028708184323940458430418805184442378603602358061916827272793431667853178578433147357192805847814132927136816510876782017997187157313219139852574237596460098511283324456246349046126958589647144449134480132639274140137299521026140656634359546413501286814196653368261296909214292191944008115269988909581650431569857774420997682526972906507077371419046383720018090473842192437901334069359682844160158076610489430581963786806533352592625634213982090542519323527044120380857753270634419414266804324342736741303136288082270211972382545907150513430155990209701239394093172553217293648749359498449936043290371385222546335109063672887247880056045213517509447219407867777763667591066662088455307336291249448307402208623016551078762018002233900572369040923042628913537444912120903042117133001714409760587893252767791899206962536341362580793462159416632921486042034315200787154433075858951691219251141067724837143300933962891241556950178620033290174557210676450139393587759705756044926076396476305749659452223130530362115433231080791052808232098023821373376132415409545964067189171462624939139977820973276558103690918551451841002466002248195459254610952651698129896943820650037851802893803532142667392052820165481053858094762883000171890128116935826235885346191325920967542311856648634691334920701507255853902485283770493488889868663867779650254748462694614839925053588280483257563240918869853136652726667810420855905003237943166279103173853629516805677628777117859156717198608834701059193925102439417699916813259412202850292265915205014977287195141615114251713273482578013610496040887140684918123211037524346521415441504215710805613743842934130865317786479341460132819407575511587711244465888442017106552276805850785147132412795942752863429308488067430558130020934623023766840960604147401543796832717002171351616801082420452504871129923830636234276817172540145720822663135230571461212607070507060594268554855905951633751018118704175547619352732030389421129500901074655211268600249524340461633664681596914098572765023113184423799803396487133608426809790641537302652973107957647860940390958509493958512616660190908875223323924329729569341082519271743318613717146042526460417891885405530789374011413003775435578710192619837003006347477172385182897355205978543818504143793915021208474527156763110965073517726848629224085670349160408895364483008238965289540809271419847807398467209897781217270963094178613285997037767729031577544071922023149263492706993133791312012286334217516611543109942416475351878896164281142313754714142401865097377024657560290058612159135504516392451284713613331639383833501556594506112965026345696927846127683743932674942170370614398717040665670106587359524754330870698238462809856547725091487950291495486202020064185691715486438892812223563464843106224075478004478880031498526239307975563201798145282103148226285327242591595158839725287854995729376475397489814577703917598021622069751118399558598616429931464798808704637845487713640724345949520334237074096301359084976965391559486831341760628686875132012952473788120094186493094276445166858829001357330624265391702843165040567793309693764763161221551864745119104963810795494114626865352746622262709484554842309011725942684827554802026478229452205781692748747039069696682998271544985961894423102194908082860515881607267844661077022549879307333195154024665114660939408478196172706328939448626358471951499123736220609232992001990772378302710811540022712776521303289195681458870016057511805333386495586900266198536489796905567772423720082738481023931300575162329828842337372812185328329796524837646645280672479113327322152453610615164088283508782828638993291430660257109800026836514815390288037794488005021768552619140758493623512178929217910893862735973156285635229956161388472664399176801230271051701151606720146945173445576217789794826041498064811844407317069445624612719531136906606794380866712708759503198295641222004974497414555372292938397649203949348362223367209830703780816299763273416924112717211915710646853832864443137296316588787922880006952544397658638489619423757323629446001858288696628079341989225772484625406485353856161374467142498795803325853292841730311557089487134885427524658841528478412446718366825658329217897436007527975134569284126371498323335476658344050891711824286214349719514447463639394851626587606820389063717286214870756180490989018941279150693951964319731445045375862026598587177060174957588679740505642981134280898741105360106543891642217353245454603669856178867097338872895477012934913982530225416446060275692026242810329817695081775898860545867709290410348326435224938998169472746542662978252739099098788749191620110292679700386552324343826643976151802357251922324627474808740898619828996174810201539381997972300752806165390692050043713907342467307505564631147137720818397026804031327223332890621254512378682202160316350246325622420880675883267856719106502122088273262212562056805740401867599381008592699869451479321038190353560931421074360749003483393558345556608070716523722893086762977627410564721953690604794263642145880272819405934588551088093206019373556491670661461827513397644135778418037779702773119459489283204946846565291089291771929933095598331251235648762505953514426394323118893001795883698757616253753030638147721899937927142758980424192247782901018219627654433679733326413146318939462639410542203693631973867760086952053492258686857648159416343481573821175206625975956868595175513448779899361372981588203816949435593247136382585024496870083908210801554639571839179235908515974982072353953863847481169495792400168385286183111248655724572031462311101981844910163514839824795736528794993354865105002975507395396623998063652167678563597004442049540521683454912097880527091013506488174116734997897241572938673965735698986806700725391959724864167356479232341036156334576720082295487837717863102804119177420973935961453994788951298005909742158941028163759151491226784700983333291613715717396342928861941898274668172599076338512942185665611500221261301177254268883297921755838274273216929301886440962628959614021954396817891253072866803106775686011409965810070710924034285894688996682682425835045887704857396556904926172144736697885243629434822270855036518602253166826747896899578475787182486260702850411965466886294714815924820892726765096028219973616902780375871655385101658389187716324363640060040246942245753335046208642099630801709710811289831441709721270354085281819139973486801577607998308446758333400280312346526834916111578493293288505273258072203421938058688562101718501406753511147205204092956871765142791597842779561945955230315037540521092510764645755763487893818895723330634516597728259940472026161674139032481183867737945210212394897830069317885232823195639748164647621809974923480764554007493094210849139011226750245338520927636613502929213501150044327038215956283588019719520888548389372853743400195051389903185591213897763938792063727554799081042005048913397609422542441281433018363407889799815877689302698267659566505058797430138733178021201434248361004502882931646298980038181443174370041212499934042148900498544394790537769635214707533672003751546921247909913117323114195868112511523956131676211660238476489154378688119376247355951521195396948668315958622086170621824086419672707436602917864567685624057475164605217998272553615421085453456118882424501878587166760707148887952645336892758148897965668147062231963688107240736745305124858441429489984244295434395024087855077195132847825693456592975200460320925373565558332045664917180528375199525952664988285509342803896992143414232775873090662399959529876554524451793655334073807146790401512610245982284268489074798209019107233052926820486899439563295666640225281845538524784353487584591721669895205048570902181580280498471515174641778566613505326918010501400915617804140507740634100597463755201484158021535917182802397508876496890929776700470293798858395476341322740320608139543072312048157151108357956492377072805983557773098702862452332223907563266147704894393669318194498479574723989273109305246432246742644676631468558521933689346820641874600135099341433772006816410321432821776651362018763742781178411726984837752284719920889440956977605646883601848043629454372302514577957565615092584132398709884961557582319539194942939283386003586883541317783567860638965156976189526131992299848884232575723320529657529813754497331555892718070762807501941686754989030154044930247649412887984815954888528944922072142948919468294914861346413779089002992947844631015115589284443304878982461919992819307493816333883770670426255870280370688043778051933249721754350178309385409803895460209805802857992948593822588372279315036172341556667953186080245058879092174124977399644443533097325939341162811095020942722389138372799304962375388050141070541350996464030727799048719559601120271024842661322801439468045180499953530352947850815179669258398194030226590071240961658749211222835088068104875380247139270074740759075327712735919232754488480746743712694830255195684957172412925558088096668205518080974514305484493112691908134868918089635228028706125016226771141227448514253607591880494357400345616756654058710402742801624012464943447522466269715351014083580066429460491650468911982118081614059010488134428453453143278476863294836628042969713469173876978964261425263093532586235579076228395126533452138194854139980073716892136770206226024879547957933403283440343951167781361659200691984214222494750548484371207136135838314302410776254973709968414873367568598652955896371224537520788036370763557038113635444490997555606639607474744945658835134799399598793247200394824446112023904435992303133900367964639403653174411239466673964158050988968476354315625155661448594566030532688437185276547965775301761415003476759078878764088462658828356297912561459136195776393708330279084616063075388069338457660982789295457374047983850012541794552019261042674183010299932996573142969125357537171224508334254514297289165613253734441202096233501711388280223118626500044233658233104961449557188733110904624845732197829417087734340476614057500203422122957848323158961959322122587264016710447373589079131674624105443692360693917377861125462692275357489192163463363196027199738981272974386726635299764523926133328450866398997512298443592603358811791593492097528737227982806520073375599727970153068148866822897711176194950952898745042287844463025307282177839509137697883646678489147326409784125811634552234273781152083911868491349874183140537215027318328686408591896592299624398292991004393365716351794308716621001632605824826919888641814898983745882849732507117852093826028004443760561065061701160982797674928654472296505216022439738515055472145458547550829950449060161659905034335542809301976840118329941574954177495086271793825368067141395639119056724369804737165038184852184358825123943679471163921788576755395802579773756684634971444648523491359693973463897367152252283253434568153042750853873241887375557966249836853176857270636777461624278862627391756881283929169183482391571729201651476729154187291749118984206497017850998741050862978581111497494607213844348813570200845945081504756285474552156342565902675027492468307098292186592999651738810477940675123270960732479798262219219428592890197183814312318031386089078866711396230009040652862182325454946868461518537254907640646599625688600546404557624220034881198703773007046453004177852629797835061420790265143832833563749029882864571071710396443691282789660529748793164768680059015250708175283784012273897639355163943276632942461349038792072372927974254590794474672262214356515771807216481343081049879721202911959118860311680920627027902819756936764900969322210903353542842901206547910224689998440243645360139021608225270485968841326970093586274916062886206295358279481619752906901593955350336248736099424880731551442260301201048532904942177680298755823552726781173452975474930744348330415999048536744000086963433933720310186629944440044054064761505270222387238299532428197799116591528415465081230873227825013453629959606657789386578245100982284280263426765397689552247785775815577761237253059497368027271422432819467927036644658256944519344410017165475820715940631971005832618289133977085745209129504949672570963843928420102631764074392814755342080060558828861470452658380127402927918713246120288295740929800661321801127093085626025148439082868205834945775439394115182090456012375038088762197941356084851256170235667851844560931730553444786565310165638868519664328611463456195647380766328348450489926655043374630023113332378467839171740152772290434762454350598136998984627012613961172813911283453009923941873474968095498209594648579441080104695711662839062270061162904644017490220882971745827884216220236654513923697378535233079949847230033766424453005897756971596839241166297155813510426716443004727729580527351990615234962476611968194816734372609639415373587875138842383537386061690793097126028642983566543327609951075504465183982970335649639982599847801183026868898326214385048917270275716625264651700384246773027311024833514179009161516037069491844977541721134462933472181445189864979495070646533231586202652114471631591862150068730624764458621639128847175105301248077358003228151227958028889340551260824011310231226280647447074407439616639814998471185467264839794622959390277872196199433371348408959395371966333384042547237204210018966610411969256589307969596140472719977262580199506788968681054826624295961196348601217301066611328125833925484018221543313249017678118702614466456895550340164087038240190855455920556421496722226335804540579262232399870016456048467155781372436268787473440994414784762978526279070150250318119962391490126860644239285130710056933494665361842396755086209003663915195957667548432130132743786593806632448344227139719573099178789500494988681742854333275269972837709858116981864106176755768643666743201821436837911935211593520647396399725838295811649154654989325596506252960314276096497698736466158161396918368641084605570464314232035912717688135679404922689594868284171330868295626855585016243986452141362494784990835895926946360333812296718350853112925623363148861310837361754751957486965810050934878838016781782322201131138260080584811170309122471189043356304423744787435237487745895884352182080031663914900360200713158944912829543612039965178356645848693048281406250728177389242325329783537796081104074757798252866711646039208646255100036958907180720935920631862400159223166602178711229597195265525877109776784562368113032914660415721568877870959871531458586245540675351410849865711103517789653118889720576071470887366018005749416821418033958501664344727735287149003794832892835002911788989873707008434318253695560113575406310821791276351599768438176362659580096631406414485541337007888248327544651960297635432016842708965780022599983373538757313123028935819756293378963118155665354981275729773961088836898856163878823086084583509598043595046048492700791037828739413920656980807032399327841448133217118508090877872175153180860684012822866881628703065367046520546660186026860948973974560131896632461259757143668256073682173152155425970641158385505238347502353126701846370590774900534186769394690720013075898172303653849905313256491512972241137988880494416425895966666542478489985333555068831223119842108286566807460519319399312812653903413261987283514065994043199398968993290776415116964774359320265375177309910608721664047296767624538290594573231084806285518882281896009029544225695644589058102267484223545852060956400226836317402910766548820561496795171756411413485298388489447899554169786973412537285853345756861535152339361659984152683093096952478925755898047446046988563075157173040345063802846253681003752711822320538806421562103848351678037439245608932777971597789408373245939797602791089397601179310880512616359239180656061389111563228559711010888617268019398263679382721620856409326606923059128751563563739804327918470574284879883221890571585233889935151881974590715935011674768047848696225543658826222166596897431187331886768421438544972342965307709256471400138468942704998482875294085537956880213821537164172030851051712976986434551687510514514440289214855038887821079035034764947224734624679129614153812094401130604871973252847563003629202063194647140170845289506489027219194740638587239679576435752044341475451153739773482409610890591844994984689503532115826763300354985985641817105887954623028394671556183245129819852579864431074501576722146678468682167206578877942255685879227601335467828104436588278173902789477678311784072357576881283886022441328512442814184122053134345569313082442995832462688735585288798508133092143830455651663075018495550057078525064471293516036425510491050641476996961184400324809366572143217336818982920628435940285658942301281747096312935842238825648880685255656344867412713584163389709942233548403612039600087771574763614845259855747148176345868321587933019392583861870863903899905412358130158445488482139317648297902538795633881719810145279445259942519019977943291735357958042433042894118651062965881620709736968223421992735935289749908623721350221273066787286019411648435240238182382117857673312729477263354083371696217700016812536126689396349825132075131585666847689945300003143060838037382815954024170511671799586755581339911128953434265587718554161105645763295419533262416398447473919984572503945105808699191766952626896626485540540800283084214755018532946690960868383622928871801241734832692812685228001553084629942640269240115825936427051190616784504200781416399174435909140037206513347213511435482059561901997319624941560733033154136864931226664716617959084523892988171287157138744879677726563350297934369042302335754906342575838991378388830207110202711407639431033375050115087151549790185266905371067547869542779435869795054770113648067950214417243144005049790956760868602439828241496317635198171358945246841422041709832264480054254374724910744364275505178930584857064694312606601355338822467500402338364999360305473403141617710275692180231578973532585684480699849101147003136303298405443547610348421556484458405970791970254064731838370429260868215200314190043095312383532765974072349219894857032711561024612842108624655807844822163789739777409328311306602367961575148091421369646009986188464958919463282276763379890897241505452070768109538891598593621640109379956789198763184169032352326759887815561279886891085920198598869906453990204958355550107254011399209681069491257978867479837687037717062446620209184866999958608293251715318796612900200349083787414081345899877597909526260889199192334001942980183120581316281203089930723396010033695555346391908374284285726491723863666306131764611319062475481371653240491520355153297626521826952877847769263421734786655432235319240698654424183426432931349019426680808474575627378440976345581999267435724208139088985084425867387484414334343958529721773960284357460685449974708666953261235648588835678098020522892449182373487087657327269631423516602225498622333531960441020289378596821028822520089427760566453866507693983627211375758961350839721519578900952683320913302601442142059830176072951711511284558772479201204980653026307958498585548024164535747923344648278909996096864797943951959767873389090770833435504026117978216361082648645964279801995654973971986138854007132195816546022853144238430030283372851813231038227746237372270186484951909433010996846788848586865906482517287200344240147383070292910716024548537483556777238745795082421452317390970650075957872492773464532333896827239500793253649490925738668274955240323091315395221672170728187188659000231313541008737288416164172344093805851475103028665835523800173217028340435756550465360889735604557993241233843628218160810074831066182083205710250324625766739563558580083576430415534777804337550149051803330919979672118922691421365617642028850094362654726139707478596112129124479598924367948203601853269280143335190433960270672439697488792822354624308083350515393617783183889274729873307601667032928041963848127721696139379460284824077965668450381723909387356064596128318983360484702693209009795413937594948017814568233811528407067355868574500007626211305196746294163351939569052106906787042624042554232516616427050063940709719727248133550891834308289201380652198621861400009018628084095916561151100392544909283315475286065926600555060954607153171609108116969799762836170349598304198735271027092895887409236332237724502655258627665896413995661928192291584083376619530211498692422636189009586663016051437808483017425789923154423746627240795877105210898493784452521484078827771298847398935535681295196693218953750867907343242928676108989399888943736056898286467049109674212720592603570100119377478021033857396986790986801941007722866232350221162009274049303134849179042783048069596528850048675548276422740505589786172923722589224920224428057254961266831692087495050232575201533856852053184846148329272878247857992117272938599202331597705153412022487707177191733394828839990410956654172986625494964946280443188463848948798368300913312799552632320413300104668176279069771725357030564891637764238826037754226414002349432550586406104738455282113902187640032875249135547869797539609139705726989250341069867103677558918281170471099030759219267239785035720907257857763827876349350787471311810338690310619473634455869606955986865780808215964652099226829675806656527378663238591830388033633946055493727939740893743586084937516138836507767358284399264775610476718337057041810826245619597532366646622841258512690944228796633079956566205814221850109959317389114759114873266850784571122696956443138608732875681677307542347765084426792552660262882032835098016634540625890503285899253120218147360966726886286777137514060774338290297474275896598764690539910033311381803103886801202803869545303642309184814831823343596597004164259405666248362230050541158109039224448535108119404998675084931467844609936304871813412844765397621848816462240641886357743187006546982325165598126684936114167748755563917357953937569787678087927720661226318416442618310557273761078524131304977134762951199508529886046935157137623116772974914857663234266519322186870813939820489906291969200801364135492482666029576142842765953631975019943153340766466708413069926601783249121019789449309150989477548975707351175827841557998724125868502931799104432247954101975736122150677783801724882863806189609935129496066697323964636170690324715793208356514541555368454940796476324921380587863703537111451539820550084886821613020751256088704444625629026023361108989650975919126906231640476968641252331011780280860366113390451530668793755675975593798020084585063527390082066357387643267109546407796276604999830939288376094755849065820079321395317213739697156467969441721521784282118973157185310338869386241538251694212048610933197773250715087677293960617466709259988968215875253231643910297564692973295891774638132670489873188568423781288745433479889658226434529898808703731697936836023889862439355235124873968204562127220018644461050224615590753056834827316942619647451388204554630456566663580487756792887596875591924510551196165325623251429197626198206871668668615496788918366743912105212322950794627124018911743282932554203306805881685639359504236048832105791321032658526818346209325320743075980388781714816775736720212746519287131686484872055501330806348780838993975075279705786518044537201020539712246182510435918871143938756088662909952998940383138376427439354806026366665604130663203607830079319526718450624268290764418903901762608151476272313641683292558884375868587900778207803656995796930742964465677566517151287785863606440194760485567838181475645315502567539080732534415069535643356385892232410722843702549368896537060200707273277104909355295557345221493558761196281958746102727066358390698146226609051603912314618200459821894641607083341575456764465326951554818071954240908954758004024630056832827664144771619312672029823852550872652248927238268987874615776494506992925957961476120570672349924866656028943806365128801805146791559516664847192284833774113371830602586721462781363961975238755491120247294566753086972663494737672176539311383863726446300167554211362576514609682525159863755156996441043579666601011846508057657534965624171511721365471934208307547088625316910795410110327002767577865925397991712176185405919242812619791487999201915144883378102958803478557758651632678522856789711994310282763715826202413250093737733071660237504260001594370857042488524231397904540495001098501742994969852026910662240230362316080545186107689585701135055239417283508952858089533475329232926628679214358547551011133436693686398377926160698456972412533561223457083998258664399581260748162939746976527226367852668180313552569994941157665822720791493157588385213471632741889549510603405290555650228657470144591595952264557588448874065316631229685994893231686171057888542811735365232318330808112691266257138929249241199365913309808783740645347959752822136613298811206034554686823258161724038478143362364352746251198593927669309253213224514696034542785797110476137674347755016585971267863873700634006586116016356561390414534584410192424250299817048595222972558234230957654566484672156790337015287610499926397006137434698375480854235400290403609907499912113972920491201672323112790746653703535609864936229578524326050036613669135300126723326253553126801280529629064887412341069828435656932534609803920883861782070805114861209463378093688923887677561170337822126257770192147907280913392660017301342955498607362244299946813331438991919595195427948606880503406181994734377409412457584877309469691182527440588524224087813183029252532284050521682677749436235260204124906479238508196496820845097374493796565863208771004891660510056009298576014010041057910310676709224346612762195538347569563961341901882840230618376751249157645426552517787673898867842370019840747637607883923022646397288177382303451112481648605199817379555776498987131933684713794839221251380943213374637225321930062658764902433941128131116854692022073288014365570525518417492227067986413367613164254957776394614034821971167171391628175310242153703983153040513074885907822344089559727239734283473570390315291690379827000777148010609235765216875330745882772869490550043762409618774749685144564509806678762626631317681341765886843557605921637689418711425276129715508962762816781073742031834217410760381220122988928374872203031138351429529377815695103076878987245051724824134553875649939457189435342986776966263489215535615673157525223614984096467994163017513657114377118390280745431341807408055911247984399537727749554617759677320677313747858378599078567446705933775020405247986633014162462314987551848085066946586286981648044813191145824351976785101150324416152681635493841210010104142257090257406389025744841643791978609882077688935773572675618714231298968323982878448538407806402476783042480448281813270126533061818582351518854709853660683739695370992358339502767029336499139176322919937739869276140791732739093213806227872779339517199704172869401933227601575274247955772287617050907431108119771739996033721754883110857170762832494806088962848530147918970717705321892036240862372715409066351513017357432417918662352567976823857414421447439920511481247883419152603636022615881015997050463899209303204155085599098274494531016489247317129970761327934273047098209029866820575219748664766419968959367642207788630703568735322061074533989134873794846057484133598594221396144766020543317414693402115496453136995411328583079847124374672329712550765226794555472111407412390294699975623197790787543877510575857804928797169368073366506209581643971901669483665653819297172470319223268187693523573606516222158806786547483883083435699317952434476147834254732852104137078797236192508640417491830615853870475038881305459118415817154334544366265331730911537346151607295080121402285558504982120185260619022573932031869872912860778228317910126362417077706670749093855792242231030877701682543555699185769810127627476169269720373839779198283904874909059735043442829786628357196140196512901386305125908455821185020781022395854922046152720660554450554932436544285602558478644967169753998572601679938599819826822102764213869358747747990460181412656319106665779562482721123516427240491523366965843390406088333942390224094867914074607426161290394742584836203589422500810918511155488692112904697372221902305902917915621463924636783769678116346327400103141231899497655253921312326154139535986319463448322108705023133868439771104399805712678872999755390243169732157821487196088193876227510299872526494026242252538117721831911683578062349184262690710793645746522603675172187912479485824784728974583909951470494827573799284826288364859694907569961567325927965377695042368593686726230871254197304987598678759857150723295017612357327246512340801870045422270457592594376950389385241570322585257578764316888744822752693392213822149110455943637744969264411472724503966969436952945115318010357076194339922058254913193041047980055525286994191691427926816124989084157968268413019877105515456378165510841030463812885738482362316676901001566522540778444173638677935985215798815507848752418526436147312575270210454057187012324520860770105285716494977158086046932446782950218612971245649116456396916288438211646065686774886063865257365354244884012995586136804813766521589513035121778590072780022073167000513764906037140196122109251024626552276583060875482298436375953029871133819446544142439297820272343119416360953089168005667254019034057748039211823044586658929873483702299945719645264156962382613749769930173865063468318068377976733331195624276719677515235574505106417887191910552350038415266724633560978861736884405272603599922723288266834133058267217949983608032391935833566783453414745814486948791901336517174430742942529483928728324826793577272817076954372101947410459257796819551236207535396865635203348236161951549565712763980044836208156493628895734774903552424360002882407323978145335315520561620868335085359051637231360463708596801218581117549148750677313674977701537829873625079593440724828311540182932049889382405964352051722895469072305610994307735687939921705598258971544422191784438769815732690235350259450086597352731874873500172591841104481996026299513385082590385393356555144808717097198199952729003888942148854762675065253994154625974655461495060393462387403190436365222966386206166497899918706975189920050690040925200447363471257885513710400777168185089889412909460718756960663650199179507377125033297900068318198333773241852710515602988265583121035521855736504066715574890350191270880108423041117771929107264298485274115606459865318828161932044246123460976161204093144354142913695458481964136304605556476100202421098326648891484632738593193344283809021210479627648637513094898589583627946906938049340571873418170872458713903102100180250161266868979919187688041110108330012468360113583769741048994023891165273183163385369320402873250401467471785758830665697963085563806462793796739466612384869419657858550205597310920984920460958700822378800093373407828297928264008662717562299985391076971201710815521816191658860497095454857142459573832233723406030733042456710222011653824577747605820600924819272859729568969570188185173195382559434131426652579793410141254624329200583053532269453322060769503436311042953869988565758143518640401063147000071036617871881361131125341333240118378789120117683776332347805921755199037995037174568574144146051370712414559938692090074536041953010259745934003226131243664391835154375488354535046725884103866297753557085113934348437983657399167947040632593218271305079195725273889465388135211866334426377047076092623881868964333890915042228968907644020187370192570650253413480212910945732352603883113024583409976921796702078447846603394659409321498716560014762705569961949961082805511659969478349554760210524116592523740912838656847748978698543163717264889112519683363485009180501421664497280341359245032128200624884033989700662286388155854094736148593910845964492409500981351609930645347567793832662723952457985269224499600124649772115008786034359491536224506138672059591583831860950384167417304093522627461911424997381788473822773707500324219666077805679811041857035561599590389008908128626428929870200766786039075529687567482456413372946711569332439062135001387672219423396863153549554491105572276653857511343655946615296899869435283368428484216333360637311274098752683801792010971968121979674096574346099905757669706072843612999340896898351031092435402574733740995343125312912149552261488464197697497587077819963530577811898306951180813621541010374518381503407161004684789609636183233459039822900023180852726138943662098600914847428998283689009664774546399845261473070450947049532332166594219732136142714399367019504457211613266364695792217463332615097658792575567511818846131930745920169297137663911789598425914630450308163153537867359718266769343730178580435948866762605188853580478920899203004380244926393779880340599873945815001972847450658312182623549298727414304454440056924608374722817778047932314580924833217873022998291194530129652754289995133669760150706415334444597311376484390008750425832587999533330010320774622422996699427766316018012441833797409236187322981900914762585117539620104911090000854607851150279912018705295254036209613150801944079808635788337482535164912593149858425772875507037177202997484374814431937446205777941458975548546143978887600009841586366842014829128365245302244326683694629353974591750394622408667335662417651022265439298855211871930754390375819740391059866010333043077839453872053012857874561341203095246733443590431361800573313320926305688422164206270496190741984806288972123607653134781082457123102848073409454301883515818754325541330523695547482798296372586724629346131639241364036438498709447281958783664059872937132805424139282539894928860548481433254402941632484238180646696930830516586853558783543122065900814542070421511655652880430103417995341102523421483936987263948366350770971676099669806246172997640769150265680623997819661510125937715221823517516999683655087411506803043266092618677138043629674608789742125835734265312920978162333703047497763227928852756416865556576267524947639531484412646256330663805815104520156656210084420539436802493132818736466449121234043802021156238169279127256286651071535084469257168956370905839818242932204198620525693798813261911274787669195751163030870422751339508541709055840869862084500006392529109103900445557508976854277753915363208218061462506403960409958988469625028560561717893342188161375093982736846803108602405312096048101038104842943565411277108677141460548670488066831533557990351168913181626384844172863479577634345999739974171274696826436742523664665534744908021532346080328318344258204308241294507112132776278023163002551753605300173215875257167891213589366317764363185026821573156872841245379936614106486845599950023550821079606443712620869170093453313020997014720108599655325735635502428477268374115007497063813808185939061502621029163909689781352680547203923553651214790035879223228530976820321915562046635817892723593738096980308718349914356771581036014670697120344506525180863822968483625044889380093692322298249588066632500811628437951801170812072965683811309105961865016793771196302657898731911249378473655113109550981734198428791473009838522053428299627307749594758412543702045072231387681709251486579492636341286006960972115186017609933636475477389330513105395514605447706378670183777986926881320161629275484055583535990434292070184135202871984378603568260190112008827217533741662578991498860025041897069467919800179497686786343965045257376413213968998746804416382182782405248897288747466091555353055027248567546918057017424813742354743971541148736625525807302280899118111282065517003242291405024886089675369848366479867218801955930060122592307896643990134088104037167491067412247509587979462837056967162162142481392207764672787020334173181713279000733517702732899531377378485666718095785792197341726285556648777491754527553492963611718245090667220514793978180323071779755215218994899294929256172864303701735267514779548733919604004782690504329158221069136866796162094466371866677783439267922140105237435865471833354121451397916171495937583748314438047938722684526431511108930257374914633476316552217503145934925653600602689414717943370723994620165119371492854485553426592373302576457797547822778875874885811458250047763191517524361939885341661210022063508055717320769448869047357241746147789475002866962997096425193781938333338381191500230305117875265183145968722736439765938447037410136152985873529776599257575248572601394489489944871763441861428243062559326675262236746098978983666798925705832497372263614355058468820843227050469631554191216955201971382251976573556410211977068906882404885761096980600850068079276217022763527080932252077376332970685307175691258071093128660260506345925247102859456354397448165464304750656432805295884051301672061424724669669829655084756861246890837458163561649391842023292450011245265843844219695898959570765006862127888244043089088829687835536828778570798985560066807909332548863601791151137825734173487938390295383194899650858537001107008859828306698726399583757260174420647016564327623993110537339995056179830647599085390508273143734424589928728473958332645728487211915082796846502000784013606510626881311447526067527525017587814122601829027560262065349765665045981932854909191673885744353074352527642577196884254983109452178360905952426351512200750834064036834305481543928644091293707605510340435635685120143138234502326358483967447225640582858330652796255343886294771788618310917692737078403311485270986417475270304722121859627123903465603864607954316806884807607837948864658575717694857896829987567909059450719394831100664721384021898695362516487431163935447508725391000934089109499354188109857231526023877453953633824495918238297247634342962794076331326806376399830974212618822020251813887453799125138761921664001527733850590036892305944990423861845091380717675212448614534507642694490504062297170977734722701903772234134233209972061895332716597866130049441601674457142600913103291643582131429218439105044995332989832049451463723541353761306023096393695376986648267443555677254574444343957707384692499004838573930600528145315727196837293363732475975340232041023890787272322372476555203489404011537880824392011226288036511190701835781835546548686580583706901479666146857589153432070780695597677652638186580206131815310405861174451641074008361304321204874207739375322376549345095120081567716543438983773670813488087876175928939834094050008502576019776889802189835625854697494077136974915439387970456775426349074627968322885979425410208407693699387703457700789526903340691193708213604353979180207774834520856685461187126847673510932139284162416381338123875375483343373276543808315613287723952450321428341686975239170854751352820754431031050169255645943546639400616051561719793992569121211535771088573861697595142521397632816249120179847993184362313612986775063192644060815551385876464190345642756650346260405237466785109615556540085677191046947545113910806366292225185764450630932205445791792467535939566971688772348048705026866489381971959445819056454083976511108693782444788681466059752057105168599505488892276967396942749159461719655064030940975221808338738650681347289609492092790575848276448362272626013726214862478336548781817774291211268607693551559460428774619439912065338540319397339090302833518173826736157024305345236234276493620433386420595151376002786579600900121066465593108480980263452297360474840370703314242315436297684567081540174189440649182008150099605120730352569736930786143713959062578403586217989499277736689830502411402548091651833554177732473293552766101939784148159342611524896298910093057719012686275611918925426515539254137277063746448608189443371060318039485110932756046579603232825172474557333037033561977582760182042029318909247952681679743255244736522474310857498186219122159853458062712206098008242439089797429000814877455636451230571730366219909585304511989715880539458124698099705243954796814469487220718700282366089869735148110013377489245867718285012533467550066744554434375994087364594311712951985790388330699833474270384839829993681340009593240286297416759781363003696164122645526323902180509124288487783872171146425285566444997870747401705052189062438303961551680124652672925916149692483247989094752176535744732406155877732438669686142848297710938789808370061094679749981817012448775936103138760139080423282215381605105947883206220952810657704386844972436258909059426046971925291242758681615637962732215794970829900921395370498533022620420322428004550030263872269155919242422646904137520335484306840914346542310364098668464219904532193564188364434215588108590516481876221403904613139006417268533247662163689071327925289529292518636959360360201884079850962775240950508047516615406410468991678713835469125280365880719148712702321436001368607480798035953996910074284454155382044370589927811160506943502975695160949931606431770889810871213692220005472863907896927899393644965777939268721981561000584514582295773897621482550936842457033441458636931981487310422547336685555203712498645111185731735632139950900821283030748053843862598749896055889742485205977994128825321846579957359230989122261198345465736029739754192624758673783183130471226213738656840527239046736401477840234199418920622337353627818553692674507415686632245654710133419100780980750974555611912217114280754548539471186076621339172356460650565549011799097384020154788896907251675517193198730724117666814491946420630120303962314554558297545609233360993665023839288415495789721486457771344032818478972917655264501420108744189762435906071910044938575202234685568986958427839981713384041134486852516927519355215658119307968115547417456106561563904873088169720869496679949595480661004248743947716453618545735560386302144773137365385136947963298411134869462901997542533684545644141193061522754157994448939790794141258156741023860376855926037287064662917213978680128017357922641956012770912086751868665482955533071939366000298649911424439518696607347695532656065630623212568256829373930382969692352113791582415814825315602775063446190546095682568570863756038180937924576348974729682828726717735668499111582582917172181677553068497903433741903700724634311096895232792785863590338592663261222738031731782081149149697733793682776796425380955334346066082099837142052167054720983352773863083347958599188644670276247732019612062113772810243527808830171190512613238422210356527574897795206429938957598851845991974567671132179642086521641771783526878620297574479673284051644799423525631059710836940581362789644933658205590667646229150636521188538559131195752346860646789763755864070967145129878802555762239653173693466192204128422845275960130890716394847881205327862853100037029809000546676751600285295478937645682007010579564294038384334452074361364191964866755302331689093794205044040027998430293987335965632344512939292177598170538440239590812153468355101990384134767367995993947236614576460139605824414759809964178831412806466484354943102830052956515105199986885810117720600033297915576292961091657115932817732124525280389891091018602746922951913536801606286541480058164745069498558267178932528339597588733971269273397909403948262034437417905674061902374056232756889888078091869323183933991644492062997961932640741989439275136892354565305764607470734289907651334791184551219037035018793942461897164534049313718444811248320944885313525207982254297605049103372927209121356501936402094168212282102823685630879669096992020168206671106617919195001840477822810439894380678131373850688372730183301197415293576663970278961701925894383978193176834799731390250490994654784120428769883590749988680043372046436333610523380021630058439687800274041429520163188330236390522256804906271241400999801920329946832277728458579481073391812085612090273216946666399246749686627236147192316181855707135136465512181610571979084570705438480749685066377913493468058791984210233138647097544338383348383462426228981675811263424680361654508490564204751905389935621837361349610267878860189559044574437110983903443468645093955243696519485762064229118978536546509753054937500557119207663218888649204079008889251148593429611510691825128946703812730540365401155258909543548016340418253605551068448533942009253736203017004699364567131591195870847326543146835105017043988340763194624026679907541685936065241656434164087914709467935176775460368347852408371217062934859620398036677003643411232130329022842947148769442629817299913579614476090552598939580689768236999381979910415993169167003414638162941682782086776667824974598906654573765152633348997654583287973715414076942999008266388061538401361525174825834313859413585371078083193463646518179856644646586409544597781093672997287489111048665142222433884359841718848126260078158868569916568329610448060842354487814594565427955424263654367162825363416133973129801881197992858788481741972151671833743429948897858381217867266792168946305150056423961747395625267519358629124829088648115014743180275620531977848867194349954803578759727406022205807024480992582092367683757863915415277275622322068184969913463211262765499352214903683604833005637388250692083852485793356586566699758965981973046060956481180467525959806789200680431193452820741994498942140437932425062790636155489298171405961532958730059639090669244108257735710092036272607313034130997353526485011924818627950833880436616093848743115766520042068491488680029708211536059870956083195839716984783954849080680290241530187695679121918523076246581188175488836711542101223270509494166544671319743830271788555493728949935640327298540412131459720372422244988422926921011433461999137303057354937083774543743906058531068351071566140250088678387740246316867119827899154841400080551832893186249013570285109319635161312074705146152361164981053770084023169324275247402656764408027652850382004460115994934300030792163697458504094577207409662432873380023339741408164701534812355789779444735464458283999216698314389759109843050408240702386668323141031375189893603388224081363015924716902661090050833610900193802774623936010385029426006627896861738359370484072476447446540338957781601523691120988081450519613564308206457483341613442398643457363184254246225934223084343806988021230086850899473393074499682994899931751695491124463084408111438670396483718842206508532849608394458341849604909379417314349678691095424964594576027893928011221107696683983888698215604030555490485411255740625985493678884225267131259551958325327252753710865426956158453148981724327586225267933192171556001103410238356156731345605605071832251526998086262776879206224974914765369020446448345697093671116831273215075394220430140378121007263535069526427204315247714192772008151423372038391984428377212027301034063241314743086876461674159147755959105923088549644706692246429703164586879749457884861794663564277736327010993615785606193842083406320137169192005764523613729450912663314633742470054895490111068126104958493304917245439391252058984144822704650680127068669096813195765123958223371815665618259568483280813142726815460919042464741286807682324060999665613981004680682553399021034835882640600871443678393387265680679587052101009409897340669523036532195372352823331870392773976563843192188030591852670699909916744973410950799062171264334239064291374966716210171978645108716874729486159888598174579042875402624150533409157556417559955164206109604329294437344731286655022649250744382314415950258791515004936210421788089175357054574358209563319565849718233600689915079818736799022840550633949743607692827910857936474120092894727950975357358696153401844462490084642833092992232925432000246887433398778792912369041902278927445566283900383416486403678312200055291743455548301173430048988639138109580385766756573004062598927036750333953005700263448677543394700697010484472689114242863640747720110677242791328884926546009513895219008215553421636410634355157189476746457815740310771100365546016567670106701675260459677686605082885708680010196924286897443734700332450761408369201636294624730794089331653121818901954946687483569907073517959491410450679208955849946482331137427188561488651312822958116069644119333166312692870315902619732517444672099089921165899963292226690660228203015777935880020009561096887761914038269140978458809821538663862503988501058970049373160987488897960267357655607651715526346376371708655189177029498566659322109414004317428120854780525289885266152346752959942390641399541582676825304289013589766105565925246952497062811147836871683252927826086773667712529641677363258040708121798083440969768812438728383001932598899031073843892287176125193801628569246249926051397967852753036901447954692722403168560732466472688996686617103170957750649344297114385115046546878007886546854760808152913604980225297562873830271874035226627404979894548606530710758972578649117854800560891124192674535367225067802694255110623467420559724664098296611778178386655953219856534916074018934342831425860721877680386350014037786818548135918363091602315563749223039079780535718195846661502908743399326525396565036996535174087568736576830238283480705744173553565576908932807347538769124271786042134588948458130261183050952291467461719325085167789471441193709306435452211206540907445830113539542989983495472549482207407766544527831720248638178192175324306851084204532403491208962668222661205978201684165005124727291322618076397695648273975655467923169081673530661932764768309411909266395934230963475738474460258483338030531833417692650214996611286150055313500404516810559347987759107644943734288005827872301553170469497115886605042732060842992183973092583207799018663350465104942569060179914792806713580200719886177629855397336067052733084790892811040480714130705695015251462164103251153342953903937903490401314999711273791015305327246295607427798058088393587939046193114732368920871206011818346696033320694111628191612096214513504131483584027890623442619153719196149100568018716984552163729530649238941045909462673806342723288543254667263452511617438659971950936155409062979440705805410882567646119880274787404630035275048193998960377548574008502694061869104278607755312324035322334881856864817729302950974000912168834021437121336041107883593980034595894112503288914211513802919160882809455129093531666560633519247113697046927149051249805787358413745386775955514822737447353850740353553039899942806268505017998690521849864900545855754624001922702673645712658837668857562983669267966623449636937070528420752445962851347676986948262201866097680400146669228486394925774679440898068534340159035249110437956497835519638559470707360977409664121299844322296581528786151020108615137216483135121862708866462463135762264684980894848610940086074449427915116602255394160356556084405607900855311822211182907625403071966222505227045256689405869142941212800382272278463460672453767120719756679768093662531021624661962210983160103713874453012976222668777357999654858437079380872290607652328797315054942037970886418066619502936677741831146766946277271637356294403668989158075745460668184891029532852326059771591038889862295609331689276496165446062425599503288222261714381686640832829484197087643586070167951832599422010368933882081529579269247323630409888995112528079877876712319537986225057195457414702275538089434314804766753481532482718032857612372580577361977477358357399324048898573928253040225928507210999825461461442695641027951563916269008678076335731519441068018191891039377659628406990371939155540435001548531399392544840479234184814461022996214083306001539517716472884534067976750266363016533114745447216343370636160816250208585615248754318528210831950277602459035724291404540858539079057860097427045958414965278743939963885015945274830236537128667826335298156711285451724411837970207343364006117440872470629328084025490225651461253628231905513866072303623458254289409977710449822608888041513400569963978166011049812364286698878560966196012426845873416602579602693090245667564342102107045236309574868362021881037970675996614557137806198749402878826097777173415650152772269137498675379966365587070898126029133179891509197091635190251001915381016961072471169808721081171143858830547193843595066024430058905862190525876153967793393263760491643555142278347063248990675911835372691329776458274785006174876204938928929680011293222500237911804773649287767456645385479453385945225974975194149926457100554900842444551502587570404253164933579760651834551323220196751685993326639752890665832169387663995301304369474259398768364013345223368859319724561453385307982428352061236449325222974799381777043422498734987989992364824183496024757256772765435039068871169298337258052769035577741724893278607222270257866584588999182671958078764570800788517062351596705426032607696794340556507814465602188125715873423365962512824763106004971908375414665268906849552900384993358895259134277134036258450699942860547255060324451940735253795987802505222862201750963513230585078726179435085888011182215228632365392527267521288049690270033697039055936585969743324833221171432764718990193486846296607379563063480670778446833167269846062542212594186929424248099470648166275320263435014234956102478483686394707629695177723193410136344027301015550333749353442683237677127466767949987299360077748100814752929360197480827798472589595772492557622285128144997365223978452627937053453267988727225432564259490564528453629606941260587117992952955258132000649776541711867297321512617012072615404827470117579054457332858995548099948732786350505440405704383129663191789952989921961535139456422145101713117852380503579025648796057269680972274950533959014345337645008325209787925943407255289054158196399651972919606346957699472158693100093512807395510149707569728288566560833225356498253063939610780459059266932660213364694213819403339687943942882810140335475622536825028092984154584822923603301265235994029280916959654651674015869602630935856581625868632677271703341352937158472365596033100256582866780187967870782499179906519866107827540589865034167979535005949604901856597212125995227886587238336863765027195487894367530043165061480675940164302508136229896987387076704693711444221502587135500814696345872329340251956197585277583573645628296869387584843138652817038282764838049003784893686499110347217569531547099844375556485208855564438727556700942857067082616012387750463035648725668698653064109004002143202147472372703320415768674619245388702996254194787798681995536350007116606924215183393380691376034076497865668911964782881180278546397947894645400858755209316232968286951457892216664209961840884126574967835484434441120967250674635287644109686874418475003714666263366512167630354354705612076270509425453938019779142025353755366636202792371449858598427704342622427248673124742234261430187701938813703621914931843448943847632461411793919411506644545638014608064091264503771664945650283337595562690557776822605918308156377845634052181460947028793308811939547911081860223261413993437753631863278280511475893691969992925661837097633148195578588873383052558240773163456833588165541243555852878729002261333187705097019755656625222781380939445535057483119023558468139132075889071681662377301033966339633826016623360639401695517301510042590522677640287761366661589884621662087188880786703677149625020762843182596936612696087214369591758671901027216151615759118331738906057164605794554306107842587284539547193154673833137537915192306917070734966927379414376282772491322514371512395705027902289607632494972937341986697569458490075014942291619701252847425412585097477427907562683978923065328454751795409712458212368066526772062310250908898938022895135322651776513420980748352442403026090017212793537819839963204320332115705834443703341166279207256382732667309386598351967496009794623910936038513300886896474351418439284441978808141282686375883846424626750312548906160824922097296954211518649601508668136849891118815388096212533675352804740111885043081061326806328738172857754659169229397538272857860640163470028236795749312220399059225640762814955047202793677595211553872679783147530467096638435637998682274931770837919304628101694743945582072569976724822479460084301909310634580627410940917064697243707044698624767151514474552539458804515321931926937682050510200660854414166967255777327776110089379642095465511851580894018632772020825128930643911636404292369495394310260680614352906634297764752767867649300470614682928997853173701707381785858162902548257321636338379460679185353099994462634798703361900023536089468845568496201288978525614854418886657209992055844960314782961945988591370293302507365302910669535491635866609385051776635815439276677527741587529738287242472005444338383235440621626651586717130809025588983398371440737528878803149951257094702119167466660997433350196725198162467840613339723494804372003735656688893133438894453629733555123092893548106490357280451355409775830614345285020376941430700843523376650200833573668570941076311715522112945142414199689068736026596483479357590805615429687252448254878110600297629552374501668516900789162992420612613987710727201528469453423644102032219153734272037040853633457408135912432443753926440249475605499748682886367508538648115618447946424677364233115843880396589145980348060259221230223129023902872151547806713060586702059425631008049115583135815157629185477613555777052406214672915624280142454239675753167880625402339761465543521610750883954649926294141431377215869749621961466910271063335985771590631984131039238806979378215633834134046826391762640760574120055539082693062380576907508758450356216621639372761693880841728917152019324219726263862347523457930736763179978396738683556649724344055292371844898589828350154927282178236510128049156971937268947799408533366576753262631979830190675465754356904196806098793850268397790167860999220920641071365960085573759578442512269756990021502348077249251350587486631020907538077183125198034097002898527896142436435783817794697939927489595884501778525204891376214252230090666937040248887079026019983049331903712691866799319839074794970115045481364604341824794476203133888784447863277273438191445333622860426552108083592886172662134687173528528153078474405715394442698124113331178229018534668332268201957174739667269328799862872761551106667386041466899151803699836266353175998358428877887565130028992911195560648832878720830178471786126543976722837968999904129814751626870921189832776078708224640409756982095620177762563845021065601265387305985788645250511343221743276443770320733099397651629597703121765091457313551652968023421088735409945650146200332862476300602536198918807087535092877922696556516491354771791139098061940081002210181662391046388389239538238497118866328687802533976106747660199651300246799222135575537514564956757447592794693517390607873701588534191242403793454907735919695061739083435455967751298296285035528767973115645725264540253626727654390203510900774032214885241485598457760880923527826755915058248280644109007773365603632306715661470106902914556201247331130761678036480057162830153207540683840094032231708023434477980614747309799421731672545639432097795185710856578630615998384345881548500565758197131322244964311927530970592416964683375091821734097223632979206586866348515784678227885412330803646757428662696699653030618342386918629784743239613368669395491812733993965898432728171589156539270410069372453154438481730048870261330577573628805990796449757592230445801932273649996786753590571350872380239110943353701360709613608610881715157890968596982411127256851701495571107366376545604842757480535333606881425097487478899313178857177613993858668758373553194280616593645738668865032916697692345694700805550710978386902534743631229405171243666338223650454500474856658099541949061876315900374039200913427967174901725879553680013928670882631474880896858227454291538985317158570422777216834027457976705481003088791777159263147995981525117800551321258327869116862516131677514382585812549117648071135264100246297167264580455401288665216647409542724577160809704801720972989362615859456246986941992408323563330318555715804185178695023573290638753092491292782335640367447988674570958037994985348140112768469532322533598920187173890442757935227068934282621872325312491337869922620296519464028313106789731684098880581402770749286295943202198351707179107778120401855160001345291709387984980500949195728430665457558794854088254014294590289510075001857316118587564114807325841044912407017081893688802654444871323996826801571425989265056741169328280119210558760512992668691480560278317968853493501015377619329177897960715226479076947103923592880118894731553750486844975910369331991468425029239616573068014866361192167666074265128077333449698254622405468399302580007939191460331453650700884951218937639155981818186842464811224063286629353997977314491027928095060773925625020632559917759689031781195096796406444479718456190997477189504010845362204512163056657148061204479718809974112026873291229026585264357298427471398987841230811173663903786578032804567574607682740218365662426337239863923236263347854003521699295552789527702371379639079877999555463028223956815265410366619167480602813738527118669917601937507874500060556055499619261064194492691699906583048275559302164046579108962552092134847186296464424075931397864738264752047544293331490257723835017273771696132891529321083569865613972899798536781305725556579699278139680497783865866307536891220432853560560403299375651987270283455674708764336362161245828451111883909576505169424636256738904216745564285034376156942924465423893943218182168570428138156259318714440271496991731156966441616235156606606939609576258623555786459026236737252741512565409075249789071040843539182493391570255907244521145040822280679186584576402637527117918690042311213892472441030026303769330753104378916690702755886025686204541646896785953392362859929691374346435418791938349757957295758256935902575172571964320163043754562473883737959167415045432125297060292021246978890336961622344996222327216793281124878293084392772916553594221293671552890476489569957847723505181999929796456794548954787855148260756050788344690182811895688493084963717862011049058379450241439951872418371570528925650287848931759807118247660566963084610248015858103664895564850765794996713958963024327774421603789784556658005538678248536358599993650805993580092863004559548292053126213255560145538594409835753532302545497195061202892910018603883578959113646879983708533680849759171348648608252154938600499759528443191211539304984470346299866249523878491556311114186108921809492399046965449143966203871165084104561954357882800052546122849001062572896290737392511195601944820633207912660371037072223164369729389899473917639653920223246145169885775276900190509312725705790276024942970503519766549117354911172435507175867357191925848091346629564721449313566378914488405275439690937489957975024749177528578336560206119879346983060055963819880974136305788062280417674964444069791034660542589305321119885267012089815910785580973346253643732072818965869833331516792195666165838337086960252543736691262954992737877082945575453659742033071245799396100867300415309840141709152713082883887189084683114744572672718904807900448508194671605214072658452791551634875443366192286604061094362051163624635861613941480335698226676831716241878175037147743595944524830074616811761268741530374162538866963678789651781188471865745946992682559945364892033502278225709429943182148930848400499323645811744746624338439130678245622006075016768315783855184525003087782191037715690214863182562085306731481147309701739362755758191875098848898481405834747226650534227017230936868696162015641822267998151484503706932482198728454197841467033518158597904955979459493445444315336167527412279410080878051779092258291852808852161959539713036126116697176787082103653392836730428277199908176258094250918495699467439458002219284388938199279182238875775679774582515334618890736061394187206720929235255983973583576386869166368291966917099536763804307981852728228135619598611287796584580156824256413173690037392556864027644896657321236479919384661607857093506462417539545402188892173100553961249055023373016751084306096311021042707585925709217887522679227832438988016401727712153402617172058886115197146333918513658558705263012104895577645965622377270712930282042821208007228792676437029915609309171417957263252040321324446918011557387269743833412672515007319726887051731780848982817768904712887279179288003043558298727410694855141821333367140724691544909840725244347720763367854097498232754425944869770567168518527003341031020868644103372177700901469146021242000516226693307315721612436526612254999175911058754595741248716219457085750167049606630841742206406768518881554036726247814087423694034639451009876667806066812420999728885591234978948756024738617463237056990027332913197544781861706076466174203123359410176240551482323937731632284710453134190371944554388030102845263729686381779226211715925431394566417345964686970828188831966254813610988474477855009274120526323225326193560735470929675081491224898309572571398341236871437443566377503139323107981339284518553790205461903612626651022833846432214378623580224188291137730506141937399185765696056904053000434552424819667509969459353586382981410038126161176902067669725983831285408935590610460583012575528115399076884684494311345804532296770291972002543280146002787334225671690371275736141564026529249694841428197878551271584126454397747306389921325755014782684879241202156559908483877503960353355595066934703876053316910935377420698341394936898751724733950750938678664670812493199499215208236849834774974518911911134070458105144252374258660291785834659686687460842789634759406969078936940022373689579763108955268244276610007738121091782357219651805710039850255209757030868157835201028735745872577766972674610543066015172514375178537025637658121313203430588552816901171218827412675098395667267835533205244608133634814994329128915341951882591103046014810555966511269650678862047764316295905712520488043174938223138235047609680673743678427115824302121944935585253059793706446427675751379453828014020892227240261581269057566649707863877091897351071997635972345457525220835930373592249565679336359188675028424760356910100821179310608016668005923314766839201546333460526078726643225110731339883260649480213784244848496777260581910174364095392398526102894934053160702610270882252348340874733195095542217839115610548143082503490831403601541817972033187416431715717677667923917442610647681156528596815402456627012211366561975112537495836717818064905196393228348437400563781145228707892480608818171830633628711903489507233025718744852336601566845190421014379094227568381525407076695734018410565273779741040468135806465588095694439687273819498547400776052208441496979798944525837286359523861716304595766277853819086721634135303167964008970429700112902800294455774770072132530467360486762410141006610669148407649590230694723547987208941477845087061242485664348959291231077160657974207468376344111833403724411773229443423724182365478378742931060439589694343284285749947214564461913836562716078138822106544335398677658656870309874214162478985999512674381165802207480854083449814701240475205488654773488188650320874656139249617642979423518535413338854504408542392600199833096673420496989518861498130620093645555027933257216244336339388624695823256922490414172763697442239031153157364714846458009314633712566105298758133997719466991458727864123136315345482225122069915139870195626310178947529067967597910233637142531870070590332934603805347734686582071871154661301261289960999825243200029853977172847934327903517426124392798076935553540920166982627250741712193130434871910229943127687393186591724729543588887310246309558669102714813619295242710672539066107951054204828149560978176658726307557192516791190613262217623309876063697629343133020022791970880206462528260749922121789482178258706071027844666258636230893499959321840092693171606657564308482714183511067373926095358946580414227569836803190652308197524120303735069339125746279440671021302704494390522733604992878831776338662103228077288482552479006982485539733043333993914976185480561170544855027700888419868755392034097555765096594199740946127710001135383054561869959410645089382364793255142878003960405470394378699573503432773223605151375367331721414066342711037346367955225125967989797678645973724295386143989584068845343311448289910201174007448252661317940186103435476505623467853769251884597051306101824992309393790927547472454532302841771875998449435000970145335995171964111483239149011517467004399349557077073776678223384636355277215764656057373078814371444462216819469798963475527128378996122622532958442718645786838607173743876984122137676217702722564176331333572821805587830373971515091424700954048355445348176277806564890806599736464307067233089009143573457387267309787418753962801655144271826169698590733385831750174468257250388821992308285961770692122492492102665651945621093671465381768611861764143398219930177780072144802935563185581689900924281896181513422448104696234099612930106268266263264447129390945141798816052022218907613386772137568591141867311825141476048061288591118607608984172924462765818356291620421465317609282101177694815606115794316975096629407632418949304726035684015823394128933618117554678088643234777466792645390995072606916843718418569285856735549886932246700907229935690732096448642292218730153635706542417372810992300118509539348359698042884616545932704559903057959399298639726002364380487084639864547346110787263632956132475402306302229772405337338560413283376487617095287367761970376690538363102523572925789376452455552802400480575413137933283506590756972515074498056155688370298725440916620605442276131496802475549536095335025778219675362584442144133525353889154845482705362364446318373204802802532067377173938669335827704829356943659877139583061478728299431751886267378994434619683957857607844546512832641304388900470242920045135447648250689128793024925743791058833475086358593470263161375322730369580417516160501405410121013816832714847973281389351116738925570220606722343269532035192189642064774699781745533955519245908048751021891993030399119360673843085755880789760911680941775571278173717833074624581122836843688489160297675315637132643459528050239570537822077233722150385433813976669239245949535066871603004851580363503183177909547447501972641940667199870504153747210966858460330684563693950800196189077486263791753719205630624161257131820676873469215746429812518946555602268268737091376853823974321133196391296560244186535696345837067843791637856361733405481565978397472045141128089193381588746704586792653582422668818163391575309595203803225553033714772649194818565799898942373035785542591606133860789061688583910838703911849850470817811785597166077944769781397869438635820912125729680166511427205300013795226533518637494046445813640156003291508594221561719244699701178439929286829926602713838940495368328738928335076161617757258410404257116484116132617377986876045878195609004488133163396106402338593854212098305102810531361185129497017074364192421284565508143408273816148952463267273804564236073747418941639420779477781676338871928025647780794159807685668829459522857909277248430918329008597431226684538238117607406688414048241186914086727596873032497185379572239461939015991075431278885293497822509604906930752433329038643996736920380771832502662519372978614506122809393076666663482066822608350053984834307642898115748687813506458337946159189040976713401282147867230213435423319440224696697429453351357997970915848555108093462055913959303791620808586098391958679019295775274961797563182451821350483483485773793973164893755145425052376204291874152852213809196993423811735279188530306120767994390980681111804107762294452308408027816425365400729057177984340776008938373422224802588864150089916360922814979860921745393031693472194796222492298502424848671610543826810897066885863394116306431667060202324977206455969302433594531853442873753539302725212761082890716118067486141882047610032925683219178511239293993694069542586736322018374769744780810338695798099388168354526405732444441712478567015849297734094815430108827267780215357755922064352435597575424241497711075149124072744481341951275670087276904226781673014542593423554607245024476178384376568123138501294274343250523906086082774781570824599204200153932332506628924523870153425835582428063745837962425139277596137216168094523508465658100254316570591902328973258436316549991065024863576965773486661552475937269189608065311182628437606629574935423358696600116893792702206315420852417920838009929417380531560123778190471133099196970268473543911808102709626397358257377427821491908846758456278703144705576831747117101511316255751875209915105705419362818685076736673350262818705811822682235594007643962050944081172175010479429436918620418175336002075336829830272133527904218367999074711997237154651930690813818525898149990812366064487575374952227393846326661776175337365523818719052003748074969598307490861422403319349176601385799099485730654028481137620880399529501853867664606670931717897033643539373879635145095719112082969199217738677734914532064347813928649670569693629378307205191215867169319129585488482282612444815325436556446168966884248696768003921316430128912121511113355011154494319327152565605993175404335473583638903956755475481178575111182588533133148967040093941007002419776778883745093615389635980676509312376525147825370595545331007331593527006781913917087784439885733336344677713952499916390242566406760500898611682338299253480096990209716520463779342149122794493747545186065115738580970971187601125722933952041922344827732988890690304494653795749191194714882364505515163211486649033545043593806646236994798552203848704445911629021800744786185226715918904950140114715937897976220100903852970764113254318005396143215697171487050781952553129746524596239059920526783791362905598350132381215706848362683371819325558464758411156513078631581804965761727163949729121846444315434038975011096836460301356897206777782908191610856082224368713927942234041601181744343720302283830902921646049108362627879977248880966831851790284923675580787322466462573028506671262516503803500325396846057333062500546247107444745262128878932164158041573593207589880058974287825766930206176143524647605913264609984675709820103515762775372295949088196155672785221690242076261061255219982712387756517060580940780264462335828082922304551869386489633306290287310124544715383122318444903669302856892370041169923466447392207486647896181760549848540940712388707755221299447858227514178531988537780925444344695670532468169724786847848251390137072449551260954702543516788397826738763069299330938764160998858906046399194722425267353884284029104633190475571669481679458282248040919228652594635904838868768065293441883626675808079156948683391067377419646762913876709787481102267036183655086924369943675636413655556503976292899882265978235964278021611573595274132620826497278550249821130767106413049459012644874868156672391116205285555055517773839461693386369636309762303491921895430973635014751714318195416171619807490452481801545326403796067293817890159952010714659269081588164267317515791923078632523930426155402505028673867890136125003721359193926649919753138119756266859686439577395020128545782571499745430923916679240244343319096842281677385916284726924611544965070804989176963035598232117371948823650222569537358110115700855305358667287033698292619486002080601901650136382624064446590271295681930588280523544529984834255127489953171385934663687397112938427674033288450236177767299699285792186440273925882422876410207180892014823691603923683163258270368330636694298991593281459727926987908890584888112964055287866830286005715653607928598524457460897440102057169950603272128961986203482674300614603564109931311376985202569084209509957117804829931982778761391110861292707236530474928199106636148465893255114472452813817872081572376952337021501567239086771515001141910421957025386041069973483260636499765397783506147524396825365585114051281482485713827417959461426005314207225455127182904485970321365033680979901452551654288797302863584663017736644439750643457513358632605892773842885049362549118930739179094567583131988809670171270232852130833455559860310335118241932262535632714487116509427109683660947593354540044345161693029510519004931235771630571487952039915430943666317446343687800676665189688613980974937289202562265829000492938992109295342552937200152443098291667715357138221463992844632544562163424587551480570439479902455820429610076344879912260781470655329512821971146096189809860837905223102953230132669907328231642903525106040050607731833481223579925085775507458849858698220325069834228343957623840449711760285186384353986005712653318993954602765300476132658394406539392824843012391107811349465690977596151022702186234275842358688443275265347544470367964441336687060883884442326619394121168799567552720939643544202597198671457657912283211030651790496652160678442894824843367546132626582402954147151445363569234547942841389135245235906649457580317098025853801242252578690460110304326118326565558103385291564375283765634595526922647727444056060410475311893324064400379993464198603480348543604850413783962211835360038192230807885808201938260111651867965206144461521018372047187487567572187256321012436843636329830149231664736275619390805725849638926916750221246756465919226677320586826682533343430541003884190354976599806740723662787534301409671698557962844319021016361927699073688860757062846240997113863853765126395181200422194322674526637743034375608383769995481501803778797574883348626404017968683632735092237187745374084330608626947500480372120491239755334691622288563252710034905462619331090919241883695076633897154132629181965978210727573452345789352197413489086573210419659803085584078108450179340343645449389653648589666686128188394523488738235895080103174241495655067023237403064779179831361704130134696411492855672488487760759140069024842500623766506651210402047178311228046423707941653590555967883724188394519153413561255427321226264455315774671472747599883391041954398928611904606422754136553501417680722276059466143848681215480435299297093970963714445879707713149216935290047371390911551375588094806331564417432741687921137629710135504201083719662017607751330871184762302323690235290245878686629640124076742893040267839902394522130754032874005414086481535535832410728127551629069637415052319789056440696303864087507402575169417913346849954654459178569635623708899370523378817643322239345285666365580104451422856034364754517794786287642257967889943863275330657804632142940341968679925664733356016580688677891808756212827030823402643646760131228813023092748177588132832347829585875301087092356298463122588768662317402584871099785893005058668964561076218011459321268277266238386684132600226930281640574828960103396916427366603847354642259379555207172314303492702505301186935609358689342488646400618646346103544155456280384050747752116644981567289384232931938943569572014909648188087724753029400563497421332933001019548934236234130613591009025080160296533130590485565809947792707562642660613293177228551186395871362060402566406783888534579898646170962406572289450629091288094244833122139341734551646177271163433087117924478157943852449282958287012496581372175075611786912895526200883618119238542944284785325537469239496177005035923532432930925693213867231451860322856695317662157369486728329296429688644580452111593358423300613541575216312970432597210355668286415741119140058490390602110637114325670052756840839084633003474031080296579565307440753502996885961583336929137080718973420713284583473921767218992164469182372063993384509759742037611145511129078524762265154446995980869369342578059920408120410244681006788008971544193146123287241741925830121401492477758826102634892011585616033789060286446804742770454449565789638813059024126272530384285202698435792379847730676079059014023189551069726917402134462447856808371981898083015314605921626606526874725283190766782585942899188174377387525191608497140606150062841022175774932697974234089411578516532674338320202358084689717556425365225763933824081348248112628956303354727981748696037594231978752120386569370943625127737015732930353414693328556352324067691384240186575851377370801762355349103466988269774190089681689321153853327895468479219777674073651281607764378244249716756118698987833052532859899685531755971319532556854622846095234720509908091416725060811886981120361082926102429424223499662908480587907184822209094249189323990327144179411008387946603503082617841963033679106619779278126665119734113108987281009210014116555605831670855588384942615172480191047031853081567527584299603565436098306368730115576517620039533870763678979809032681355191996577990232741538874421240677201261652926893274209405136545739958173003467136373371752678600479492929972890288220021742459399547209280727228607862940426253201670484586667883147247406746951075776328796841825474844276836817770657148743948451316470509515023803599053534527620938642640889326943992106456563749140111408078794376910104500146808671271574635464705719893193532536317821547834635442601163889233465110974849698182455548024269176148760134551674296055706204008359475525412611200456251658644022780715248158694373576898251152416539032497351345199809785636949389439321353537163882258099816694662670880251974292907372215344431436385369681964404691159493488972885836744068666457774259821024546420088997143117665289749037345489600962867774373240027662144374902109535048021046998592805670338438014274446587958191213553305444155558597577817234710964393733042740938723944884176520825174849323004029871293672595742364371826191713814610568914457757272409822417763441660967402924485311280314571808687597145977213667897544492299993933865990513665104152123633455130952778087644218935889479103325914890677449834815751167115467251659835107442618460477852600718338078967919728691385223326458714081741542281236506191640982599854341866600994227654813166934349858013609529732494064559166129486013086092580009213014376115360930836994363250207231537087416671061697836049386190518738841174133980933406764534212058695734860167493028251647342212948659653504797154926761358430432604728792258016791108554013438612378433780164151677208833595591593367413557960204604589173174438413043669879352430303235142230294855516597342745740916217081782784167641124609937944577958020231181022912666482923379483792574425146999097998375892746304284949811705467983750558393183008501045671002106319353721007014995102059838559005317963730735373920870088505499558534453781483509696636374352040972376620682622346099574136430932848600297926379884574348941420485943330113549330098309994029603119453882742139373682929660230674235033122082626171198074292406509272996291203883044907588527203544132598114289504926353452722208316657834839866177402869122526419422315135327225886396311130648088112234120675436456194497752135148814343330669500008592832971442864271724346986757416380238759555793084172840545179111115990738387463565508917278539454536162374079983183089952716976785552937369249057121085858195457377713069278355466788363181881086357386172926947149461312001521604873454967032034737042701990002550458897327807657050576232908628775240514767609011884214086889860855608879160984676259290389003761330250538265226231389537466520634319082339439378589143446036270597275603822205499317157098751285349257677479369278554894631312999757195724061204603347285518275327121841922633433878676070457745657506127894819996610844495321896968074545982313616163413579339754999437193754306076154033000597659786212710804279258782955144417367950268058300467015658410873252739480999039221839432317460172286288572606390773216921636725666830254832637548702909391858028191107377180298702602210965750267872186943656211231758939694424035207107384054731101436725131698504512347091349522009396191496770991321683854459202812466053189263998961118136987954617432645417641610300002386532852857354535589438831119423229318394420881665813558080404379032028435134692719243991325169656307174227047587570503798881715256176539631721860324156238931389818636064135588915355165270663080538803866387604934924733694815376470777601477942019735189276599824580901770190450370796620867197237170011254538052763278905497082879144132752294669386714985468539900979867455868982560902524806147483105928320138722557677067539615044020519617977247226865827983751994462376456101171741360968097560939441981523201717843965384191051047998887403483693380018862933165900311652126525434084496907140225440646070038283412796296425376895421190353566342735550244515912024728999314166518915311307601047206887545471221299787954134116617366263367106209075582742545672219496624792716430722326322350900726800836161789340980352315181882681411473209072594398920282827289204467830620194545036043692910006694241354057634726037781725189932594383750159688508699132645490977642694122920838316726734621540456568243314887607812460649443806306238713557856545353280807784061697954630458180916983668173079949437799321335255461303046226276688994267437924937861773329996657341645734989230940375329212361942056364968001117439737068002715480189189878333763325470839283110671239587743054649809976640832480945670866235231290073102016930282474235449138195653785160733394070556003411415161757299810943847830349662185698964674504141594956663681295890392420096846534074205651155426805085147236063201355087928261828274794112993870476031314776406663320739705203659167100374882950164531334361498184222766869210554052666548325075449364361676828979438885542371917548009034074729718386778640573579199547387803620966038850143369517310059408272510287283020726830289658468770624722535017194046246899762044892600418701847474535964234121688504528164608678800729725802806515315910464385920880019010328925108809386532066999909663457808443093281863700990931290383792467923299715023741059164813724211375146074249332459584818762380173838337068848781465287233970572770876352127706884504974552582148622717035717415317592858790643512573572416648695537947030262568324472956138089995124986413193155185196364442724399032344219074481870221410266028218193202210481879061805595279587099610915052531955619894949253778573215398194066114417938057414741976248677387672469065449941231782784844435896962539057299865425964386461820052219933456231778262706043303652235618817304291661699350655845068464549799219060557974454882110630017241250915809465530749979247343004497019807907376765678310185978834832158882114335311060410986703255216003027511376888973663322744438966431669075713775772029280494922322166292443704856643809969909809856001935343388583128905647852155014692371836236680745956299873220317493765780983252244927294262745411637317292461939557522838246695893824364639309802915674246162374314088004210269902982339953204856505269666378534052596716760890978521151933123197884606857842461401399735236019491467978640434116265642539522029438072674200174933412770692642908614084229848132783438091387852586077347762493306462081517158396120838935614960696717885237034541803903479354818562745999379047988945810962633576671137965824332637250022415004624978732050082875906870997223981449537288866637249129431350946074001013415270890115932368058371617559777385860314365456873278907950203935594917603134942046282577339590485055883346849957235837896786326576058954170274435903970210185212176059423726865717287862753162816823959840813216842227890454429402032589803164024930549844288428698288553728252266329328124317354194824155625979677402569832751015583456486884832545683362669501619795333983438666741189424198530354705055574110013077053824521611386401819960297404015142004826962569071614173555050210265468049162828816605503778421242653831769166124184451357986021548275780963847821125139025701164248510959330663452922292887031881672448694535209359301061174957036105766196595926673916594003763096846037135993590211918739419848161658118689902377066069147680391625576358753616050360514029673038962799154595846751529499723697726678584628783467403912852559003508056324397721572892497906364563647145110694469440457774728081601439900475680590949669411901258967452991778784974372337729230538861477141807934246794235736797757735427076513112890901049751135939816980488763322401095809117266008316377634111877721697819277390745126893250659996900922132080472964718199241001189922957746726791270239119713350345494905549596736679111202120350950096885520432312262801300835704765066669909612183758328374271609105562716061553517142527895186896891147354910575883612580788094122609247341873739902999916328640960565544301197510892919611035241529666663359860228469656367697426367946583574086053919388450603842607404507423924430039984470049033895415823424542574904278677603363425192989685991664655084880218304400145747396640507371854656083142012712787701844507464959028333023718298486374051429936653473080363623169976901158373636794130628852954161133092636690689285721181684534442477003785594809363487435888999180081706915108432725398432812539605149857063934002881115725602293614659505256223737157536224710820531136082998808823144900983633707679104379444986966383164936340128182213978178511600437045258971463425770168533011315840128396404380028070577603084458114662718938832631174662738048105350768738729070932534578550507870339534146927981315238520631084193505133553044395588547059802194471406537531628785273870401708978033995134658966621033172360657378962998608537639890414363608838039932845236333066375442802599547791210636816886914260808494915930420153386284315007744552844918010249197014412036884683579934857881621293998634321214499081962772981127705822453838220198885112571061693191483503982897041100924264533060068577033355628323271564426223545018861218278125300799243019680906375361516725893296465564934183140325530791274427116526411874045631464123943497000789255549345822641199778440511246125233282990688003450036341325029682899040472440368721915140093335266004784761456059511787318367504418011662567064060785978302315885908261693375733709253459596520512995092891079203928794368656866405161129998446109804284130981497259899316880737531477984182365879481345544470859842051646167033740670714259457252794940446436871237695032313395483691118803534840562921633977220200443007834873791977196020800336598729833010479912639843344042718530598939213546720286113389913270410972497494516517230027210710084057505681397017105627322180806196426090665286444198210361164228212663394238776821370999442655355952107929614147259154368557387781911306269617450812597576292019958351939271001878888864518687265244486759370268036755171561943417956368604416835587594240394316444210947018149126215227275640762818937750424775879833122622086929089167995491505952389612229512639113362484078554646843196832414919121758969241709112501576508442019478989767069713710116856604681806445411627013352359541574805805866101198413296010078806756412735133260054658384380622418590601582322885381585320174934162650364658257190114360099748604258270881965775280663890825079375864359645162689072363062495807663310705931196180188582220325466465486517569642641373972037448671629366683054886067719244297645739699362265064672605165163739876040286676555945921209281325070905522722755837456343266939266240661216267719747015939401258116289631896439534401529319794867543484755762768351332750123824589290959267724168502546655663828949734883456053615314389053758768447737411726373863107364699163340342639515946416645485004441411366254437750375609412161814501815860585918905729499921012521905245471681678820713834508051984997533301455140809715258866988601876511077360819956661461359496996257894980098302736056646213287382305207893219400879102581001169446469254467107981903929523122467488004487398701749454193987720638602422754338669609687752402272530055103409674024084746363919805798309623957131499703703276823689497952061143470053032753893024364247508490869538150788079865290426060147630664703682842068281473366293296096097758680416893300028323797088663872997410047098477516005902321483994887905779940217605645237099412592327178364479177532475761324118082654653930587377881028790228798036601785667709320296256891614779501581242172563661750202408849989258810953755111535857741849147365252569282694001153746847557439193283869145542390944389806896135877623663171489026945570744724348810128634517703505585347616983739268510191932404335879677240017829787613846142703288248268922530558936868724949841276672306276853466613042045340156421880597058928214378592639456799876280653267101335774367465187352776597589674564138605946139027170073267194055169715387582643067097871968395331267876080584393598910172579434272573990204100841036286622871488702330836398300451710778719983222995683488520479472467257628223031296555593536523169061962936210696485504011617815855474071084441763043826094247969815658869188527380785255100797526544014342444496257978039673235973029387054501951090294639085703799053828344210839891302525059955259640839091396380908812070730220604500662437479106124216690833728759648976909677561590709749950466239855148859508191127206475528068811059422993302764511700681362500859096722832239152860128128062724101995307242843915695206802035986095136219470567677183718173278720843053456278996668999520297555558285673435347375576954312698341936740225705716403064426519256753930447372883557716470604216194546873216792600273363712021674433789307508912574384079157640295948345064344997272559430909844204449205472304508090666230274852461376575563391247664464585820219893800351922179574752602017418703060447433944089068524370120372126286915449901818787989948981637959782744195937184897753847537298386742921081600091487835662736186890801045982531419006431342717776836952332367135571194290921462293182986941196495103447199203622573582811323494164992795378763378272339433343633566518338159995759340589595019251535321296566509658578593124298481992408753826846943236292926754305266022543044520571656625038729651724150588592326027687582778531909416121335158400381255114258742214304094723758277055805336143390208945679105098487752389571332279745209798114747878528564335344157917842026873255089890533029201135743657729311592470480833172517852298124474912329019182624996614259735969289471960927855104797344996222892852244349326471682422561761437200226373779224002933244998633767181138415894060811922776578390442425430339908110911796593618633462678213410489234337840741543333822867854127560371189287930440808989427069553430600641183600242020106403680955023929301043147062334352393825716617410356588130623967691875064399722225049619768127025745959673293127222062498125440617857590451005801466201097867130519547837167360244278554768526218578796178817077042700540741673047067541256833498547976552596719240678283161952246004035127306552652799166107947090991302313334805049133529882955297713988356109932598054883348045535620405784340581332805114915018645937588467449538426936306047948889970526880192642871076754462606756581203667141434325480909135841541018308319706343155427507051876707245018524332798280997874679707269986029677439822308063481423435178205711493631486965341978663724525785607525240563767126296959799739720161726629624333884714808960714188886457751097461373115274668764962001868024643269764742713838266119079573487183912700791050415233116799779275759508101815423194932416192184434866962286558225924775862918323087573127419344227977094380281161255933471114582422833769651459655673577991930412438133534276600888591885718879059692521853105631823411137376981952813174111742695688834509556495104865180945273992252076675007289098025767812435325447035800138240690320737176534516394219037262367656138847598964065760987473313216605035401788871954661316469313515861509539804373192832472112916029881648428391610550315701873065626143155297486667363229696270674975986072462662214801168433996636000761886856226174924869730257405320415737438178629091547971173407577162964047588331789605446145820530955779173065191668110484398489348726480277841048284368779224329554756551700463194801797355048908576897761138615202787336736479687745046271446262223166925349107454791026426495411259444699156137363606372897803686678076160363369839130713234126116274188721861779058330456016580524191003704258458145023825227138664480414695614177589906914219885283669710859234858744773799131093821561871210841799852160134582294718845319814091760282423144731094941497916675000488109276990125981850396729067215672599538177033859180385580101980778183774122483283427169556795987968686427320453037105743149760491168713153150237997497868634431162501164671316126954467997882289521618174436555297380992457166204411509849229148029258179324081508804465892788781279785330052684266736348441641548143054564808464051788281410959140182186294987784730122129207668156163263725392706677217991425996817960865221490973010524670984212577939023663978108708945792283868714037487205471419022775607069959636098504012684474053994753495955317452147788438663323829088535099228693620700058679430229955940545220474537914399442597717578935928222396451258664339070960414103362582635965470939497304844715544441991856720370566198623590308418380661518424353609252287757336996346975857939139295697137669958351386134631900317671869564526001272646869753863893138384317785445420678316991424176036202899995342173809094542549144594132709549683103295306247237760999982274424226123728534742578724753010918393330384145137974107527527794093918624082007241065077592745136699931785153697141695085330509436859675208822919997740300134397217781363371042331442738614240568343076842233797952759529964865395096872000576406397926002343758956421705853413318093757377801589316331281525096381293207490028689623027983024486918042137900708817216368718897877099785713422123071839356296382397602954153128212345445173851029935740310333063328182817442632847358291957661130045369339455903370387420564602176942756717875313917782866367444413017231062048039819486663135543050398179881244411039222233998001072115047187553042843765673693142627132877692679921523787937345441734828717132514078279355675599494936583876260061920366713957977637784949346942754869490656989627767975681557359778497599702124418637056414344229451239757834926080708693672733557786221935003573072267465969169040355811071658600134454863146006067722762832085862894568604746040751035361315476612017190122730780587867768377254922615735776478010232070665303715391429365390914476972660203672446147283638754281129097990957873309200498273842348265368373005814945997333470307073992666464062804713353189938219392693923280925024068925004783849269943589152335854217319545224084610945815837141405350726110082131187684240133251026449041926517045155870900650509096836577785249936447545710182309336790519321065268012659085941051767890861628324877448519499322697549707870058244870061309606775862960232248561898199834686376171235841360960980748069986386851785627993989168498231890828321307776511956151134074157145515246440612337335676506805528890262141985881676996640871717569468801381930576197630518360973347495657479682411620046691292456001602521969029633483188222445981172598066449581590135392050304821347225368576992828464676439894490519844697713759693316387121460576455596725707372990887904555501175187306932274004797075452431726207460356454704160996936991846034161526827322332837212934766685752537778819638871992063171734202882921808836943229734617279932415585260005343340463238898074741746284426284187280051056624915639762416042559608954387532487397840915758260971279970634271504500745833029383732578386063441374014010618056155292721329185753104980784063219026793889344005582797626551052680950173028058563554449587901713603557427699424940631275848940460183241292043522351886874247950361781622462540754475309045379025915942655818421143828175057462860477296937038043173139024763214609656990559375376105015550713002517571510258011424483233961306918378388770002483653126665272208838380720402475580598668698995698995349852137308179706236095258698195490610458108593670231728421582230768030541582958059383648184020919348581769475947803560284130583708622113270542946643536543006478817546732449512947888433953222798658820494944447628595966975212964398243246050416103987800790719731693594563115367882044008298986973322299481167506899066908090630839984292015695310489283967330062488904188993853676158626837678471300705103406347460095598284426420834029047009406082199273168343774243713774252535645575603804011389216956541555852796725949560752440646280703347435787758942684995412415826832430100566751860107219093706734551209301816177881747384339307486069934049471688755387964835552749145567070551758263039935367749838095444612578191516766706227121944721451058914024613243311530714845114026370951769936961758543435528158840806758039158892039653890370230466956117182931021498899822290297001688634393075994224568379242148442435982549216043352127423367143763960225718778449200104108338487424529305878595214080646086274352905733823937942261441733406414995994644177409648775897797800429963189134998319242140512215062317076428326080467703872207475840991140801518139957285432283732945541411622045837062501447331199072902780219298135265533729030191308074694448488165161945236767428311370815372609200099685389263134462779694537342070819792871957405702693837674726140761014489266036968301652854858804226296135506155073731009811199979707853583079719743468705700599217843689692498789102296991557307394830259476320386066043752484597957769615687960919877120059209061995872499221512844252142348962507262192574318156865121184045736277654028351526554305525732262703921191704896965031314550323273223136067412707981497849267866639745224614911802139571015934158419859161082267502124369504610094433121190266493977998095611020079491611336355276518456735757030565449652165864625367693958338637682048666464013992053043427235616796287485172614169875633482926088824305038630148980763577090541523539386877570009105960469725049548604327533434099774560948737166848688979540221124677073937940935033094313219521044350643791058043072754419579666632275436425552684574380013418866505603045564480248195619247735241879931083786117242666787533904672510716159521585732135286070819903805378364983076085183058917378950642697207552401419218475369652196288502719606970241097111979061701868954246903867643314904206960392886366604848999748182080827933568938132337177968846988759994777875164901083572840310680138074714575649010818698900272565496769622894507701856836230263917535009671069868793711148532016142185944170886905075828684646029072243295831052455511108791937494156279963085588462198217063499612609505422337497806490887620514580559832605178381392729381559473867642293921557821053538924176885838126821774495701210696498729146012653300854974425490165194910728386422809276189822860395179614699132240795303581211333183808990080843943967499005043007776057112675480548021014958712793789127366213376969729444757339465288360587743143008912075157582602659356028249932729330068151236249731218007473754214772746623996022251633727948863835087742206418657461399411966057467698102524210259955829541023949482358253219928000077372192854352833706790999258862449522086069672970429471744027069387419182735217110114374687919668008611215095184163162209616731612438021575057503090132236209130962239804775828100674623432076858715083481868286332276319548417366152592920875445361383290908515840370728136988949156275198724775102567452601951577260897890401540792737624461650077534156801033157598633068951300338676112618203596311951911217664503438841301923283158596388420745456242266332027541355245576447055196984279664519177945697112214900061039390571188778072316643660767225955064441120144411013162770920167965149484677693903336120413496334181131776553238743191975721182563250693813528583454430412580946468720057753931453860385936270468829303913356057023953658716824875392726108019533541122911327123532226618806886569855951706641174008552905522328697424471595049339422326056725445097858449530992725462953602095410397251343495403893650065524402368516530689807546751135808587250969873798911761923604719132235914567149058952610142060131709197823078715099015296184702233011813102774877592087091972039648635465440948420188493121374271326969320074320075323907550856228132461930806839662729940027207064793623988950144038776040686902109410508966105689898011843245773147713119095028809976079873373466726800843163420745826061727631302734544514629399262157857599266968087047326140517571945614302493306852901767665766968582654952193897889981782078063502076747716438572327162101309087134478242337646773315810640886666226310007594710063607876239109306777226527987092248443327245195219034373377056351544925587963972936900121275305487973059145952979519474593826011489767316752389480774811534380049185189589891335371818304143289604802441464004335561780209137000255369538310338674645411626295237113309751950541961141942379985820247430634262836668278636399941906961064717865637578510006629620891593088623188626525811413223217458460509127027620841249017554076325167405250930511334202127451105501738582579308850546845052821962690130722062550276556171484892455623942608594694137522743450687444331561513570143344764384389806803297035921084341897934105620479350346434831190023312633716563898447589469899787393509823698431007819029406068273173561854756728158761933865032849598576943593997906673691559933838888598586235840743745259828909975907004148334486972085270675204428808700298499315922123571655507971893122948048550612194046382047877991893798348219076138384697619636803400006663278005781295926659328520275554540359854303881091713496499763531321732615299340113872928327601788159217650068494727307547922658396475919959341841415663276706795314912954817571352479772132366940798086563024923715468341972886446167479488458335586661226359045864787783934451029777055138843965733726107764044604079407044599560586778179889213002718734508665801487333848666896083780263387940812729793724053740331099907727665503504571692034625439350885613551021326982835455845655487266646455743722255300425236847721369214305589190607692137280772025813186021291984280036093134761715181927806999063444227219154316444442498322680799537426113083047994453781237012599711548257667140883387914564225269452421124424480417740926496934998661626909306105474457219619652191122791504804229401573062746918942884510275549112999438095546324759898670162305756848572077093685245565112822057484463000147651654819808290170944888376358838217104129166756620776438271584979497663250244645119217878760643958078668924314109419983767810507046232692560886026510350948336592734158030735210543227143510271836077402331506997969876489330996531119796139193686891882810911958002578751323113703962468316949230575406533622829446213624139169348465916306736162712647143398137115567123315623446409451234422849928325568023423021573633170937303045759630113658070977843157176112470272629145043655794157850930773718813317647092005481062335578622817589052565519098361586339255186861744266124418087782485622308190820434221128977554450395306157377272313539312489164367505798709914283237442399198830400791476583342321801590390318977034117547063154420260026027452117234537441729655923417614698305436839422004719966522749469046593108303579509360251989885641459704571444207838098254766641511251883589691827576956276030996507317689705514884593537028554640061131920067432702608653632266891269698647798611156029193008157533217766103524696489550968736378184860705897125315623287126578537339333638340139577387977696401036199093946757651666714308187153618081607283662608311249229377277852354492353114322942458294021821561579099735081628169683637686819772599816097859594805503822230761473521004045368095181442832923386326531776203902824858362987772743971059140519998602928433494503719340029923080731254168414997709206580723012311776696017871991888662662462542077188799670567662452729829039157284848605267327899410235615980684462973884841780282899568724599337921341824043954117774639147373227047813275278431770646890818778227921625090859362063418964726043579932998314712775436314438635958277703677996008290774683553504084141112589059290568437062660485604607462793972565641977577251627473446832564776811818244837159894674722786658915979630955458157511604520661356018518446769091378685580623199481539489186417140893318932716178530681750587237551415321223280091430772682048815802704723301399532243069237213215665202082155854518145310918020978242299382614117013587768985298109127918094067129486720102144255214272817043415001226084473175789619125479066481251222112068373393673864733287218492353081582207878248538479283702536191641955080692461889505335379226564828390255317438374520777044187339185343762273005086354223027343577364223559497218690787568887268990583232164592876617555297916941200513467853318537383214656971172101507826016819066201748063240438710132721415297180589001298745177874243170996685037517262493381991811007608441972099879298053720577430318511404064693594454314279836805167710777691081120895542217321647638561012895360582674732459368988396063720873270687960297593863117154983253930100595758840176085889734866151830235294469542722968258327416854824592117444876832769181977386179932459076740725041960225364329273169941646964939273436189996997580115774142754579492244392646019675609137181090840715287948033108364217329507234609181904341776600885617431695188360045013381037117650240422013644023749288913651310394398440288749750465793062643770209539412885971624629373860930557119727748783457098138711723483833786748421977989881876244541201178814226676610863838161696434567406370575815900435525701246463459986600939613638002073102642776209042209641038059739829283673295323187575345205965385405841264990585265488074918501695400108018366512583955818251126753189973885829122126575784864338356146951679070449413411815246307603770189983403518634378222216910024648339413431796126660460673587633044279673046890734158978454692684018132936617744121320570177272030356636351928653468053157272366256617959621865411608401775406440953916431018362372584997077984029015115507185131110934593767340669473071359948360767430857830514851431869011668675781763866758944786572143363012386479611934138568535592145663526229887165825563453411808596463399143522498699756234196899257903505044681658455327001769929755277616211660021884591582086226212344352347390489916202634031918168236208892451388043772258086843988441978377955079471065210772922634553313227489454339355102583944518496892337396463517154755466359600163632636012873390243051911076083388314391561086130948857751883884975928440172771753756158453828987523662748189194013427851529858440724317970857863773890337903066361903316155619361478569768325023358924636077976288960858693513974979743238093724975186863088755547061245339582454609505690664292977237892883637474698707667594485055315220422864532053698828337659972943414942138057945872152903693142329103299905306967366299725848140099521566738365880487149128136528393966833323752520873730750019493991333247474008927398658555142494541054693103293651471869363561760211714411601887180081598094627217033231658390205133378496019690863427102843718019043470651618382384522904074006573034560716586618420412724464227732971143958441795264366469515873396965546314632641013454070381740704114512566910247182929698256587898138645250410467311708021820309508370316721098220039199613178804373345578161170302992729334001733596405398490674986246954996092751551232901193254501425252075603489474539769499529599352252563443632497048244960138763191884953258654311202735796574724703228649916227985096827704275565567804358068037156209038586074209296717495468161410105149165878475597982012037327634309597028064154985166328395541409817328189443340433780370604400834187595962422530257766954146642716484806749796625309894355295120111069114501852926698060560870577167696346865466492256322394708110264437764912017378701420753225918713355624097968499235170340087016354939723993307836325625376121472280940805627760281988127490306412531000030843612576910229334558708352846027793217547453894986133950694351197545298427034198472143129850889682563707862758798423598935916401866747677745334227146071870760197363930814638679747194305084354245666439048370950755989415315824333450089464411432710455274750030391629478542147736873275857274555650320404384858653830036627105614322254500660563333970296891234462492260602972691981695419614047632114497556048095306593417102274656150629490298441929294945462432438093532423728467494365134786467461310404012426659931946290356962241135151341221599174330659726221146837001695136563357400142512789672089780669033358758838498440547522620721783537265102164249324653533248398885557400815719279551406703915151512729488722422919725593754603806200060875956352240010981794640380323409311109657863310170430936262305286542283681230121133023679817386865750450280272084775185776084076937330182908296553116617272847217401088788104650974277840481156426680906435373100202965033779175541370933633882153822629518859041713537471679049311079096533358637237235820829067331707886056926197176618294604950100797516361460276109297998333776327537080315668453552022348873632435733296934226073138031318429753640743893453100117737530004088187765229159089831442400265290633493418234294216953151688725420394439987410992075288982008525654010448886806860484360616564764476076389521817060100781086669574439850565341288904542736350438570076689689085760958083664767326621522591980576272506067081705256297020096352899643307032026023868676586532916868107034173947786236994586854267644770252385780531402528332911253381027436665750378509509530495345042822859355580305366821066995963881122032612585820104184074171946614198016297029703086412926058041060158722576987588491738280278969886324699010277278752297420641514049144238639065198602819601297739861837513175361264390740877365787317450520168351300945966269190445768710907650498280968692868037188045901166000057691561011794524424767451070081356781082762327652742964588161185672394829321269612675466224760686279843881778939628853377495220677339006981579564376750481483043075764765570467108759331065362567618988962676587184491088658396117711115896302641810079150365049725358675562557982776961469492688168145494249709201403884208031694393381178656924379245776862136541465251460028537976299229155331881033278171385628182157413550988786322626163968762451249561394654048224971415684329171243115079713123581963627045016297345247952710105832813808642376152710593397817425843379873830823775252723713222992338052564060675343860832982815731311166921286180662340038887475489641892598333737920691558155453508754258042025807563095571083404784764770328412927797741688735595596519267210349575890637443020542671973139194363145753637345301921413165163626562254866802299163361922184786358010034286625980679194004861012927628787072442660281453430482816732772201310482428781593528657275457170927371858643469632413040578639662525236069868305996385682241953312350650989656081706903505527571476981395795343442339903098243789024607387698428497038738822463294560900624873083423223006183490462370687076343608259090709973969838169920662545000706138409798072299890013914437037337057305458327784483835274368050587930791364601915254541753326956014620061840784683085327041749658364729155668919336197282370169507483198266425362175275224854807389876964314211298421224145983091227154440107662058561487306559705704236194614128054793633066906055940513192979439721529083721400770462701044783490566250516290388902153003279910504449779038022672340516807863500443213778710276975991074965746467082108240988072779430799361066893628620592512033156724749389243059045689755813433959124631831030337638572770079782261533767286610800193658970695642307336924768352176337044995245831730965447016379938002071460546802644211307956999489421526228525294498275799172347519195808410893681999828889895108988097019635965110669962017563145308525316768331921355768549112931428015743501677039420545367335074386472545101619507275958820924416438810542816484074273447414396233372523384571072477931099586828580430397280899467683014020717064653009143667322194955503959708866157336825357569926148838610373744294163769315127611460825033211472026747364933840174777599065462527159476509908544907986381578354496928977419535757128383678018534651445507564375811353298510022976153459151429509141205044279413506028288181819026820766066080778726338224493434360491003174097749208116446530088615328192899055908106171390320348074280863034781983540243619818800148304740521533994038010850711830968551969398815354647364682368947317420947647791253987286032631708375591507476110421374035756128227633101572414924116142814817357842579654676351653487679714104362128612220452810550576425332879093497076693572044663579689892514260254192713634641381964972663683826460488636601023737213107762766841754766543086083164255001463567397141399970100466156595034542946175488233588668617471974804658272324009789093216564538045740171612621375802722341883597534440685243502719807994699238646966928070681633292185749319098436523498354814835202979341312947174720076644212292689673703095507773518791707258773165300170362924793400497430599262194085735202372450192272240724361539231852033934597855408735279364196568596301272639065581381797804243824697233382967815728493572601617047749135207367527281557316790562914710516089989941339725454465616198572058668096213884201848338639436605152540002149470106147058451122896312392674514999767021746077927436066454543356072924634075341702112244346430530491078209320363700836581574665697513678987510289246014696695656650221839039053215380500234322456949771850405922928647379158319630091733382555017424451078644194808466355050381450885483349700403142049957277279275457029533167825036232188252846164827205028191866269151321326961766090128564606469825656924217602871728682144246551702753069327801831612714158923670529946230499119802341884549381383177787056204274125574739135978849647087996685517918332842284103783070466569730840930738767253800947942466273362282490688193413556337692952883695080848792941002165068266159638114708486510487586942449828988236995782475661939127076141274884635593135591809679272867000109400015105605737697575318893336114556686088462327610542754814930919242618844685391089796764091204747338804389656711971316302746999653417233417675872527437917650298862581234522327182508301395905501071782803042802081897382671207719731876335035004570762320179006129869311060070225715776391789441197573415307625657635221901572707152489943444596454834416440546412031490550812827289213381506116837836579869544753482546947923236993464719204467576243368375628433646613910970739120159971734197812591286841763625741441050150447448999106337132231820677470175280500057502006157053762774142796234647521144671732543071718097335741635898208519258691827255141747096431957613061486040850625045665722573428436629812689072103953917003081258358916991045774303146056334798339707019249928821054067715903724161101219108692637623632887116741996069756154156444701742314816889110233248548003681764206668282331721991815557823576562031021383826525721921264290879817981527198218290339982496113158824868875158339343342936333677372599101381156332331454419793003627091925137732836461124713552093485450966077545890093342947859275435650406600865724956856122105524215119102118441860120634337235294881001992797251425671110359132491791481487938578127474840479220548220361207374661466704056503516376544636579302500186225316297446533269372167220955467237169489596861076313940298592176467908414502558538746507077014565512530548213840728319115141330858750123595438060036721704028804089332743299375144217442214679998168596210754283202617216039662950452979608770337832758457178909056477931595210523155049954232543158220358397467706110907674714902307331163152289269137322427280236699147057303294472599586775329720189500532601889018035038938117310473585735136618335592666911054745661945584039074232672717822416533336354323487207428805995324946390784473689442533309582305949603184639055452523715559698005800271643571770797053901465482326892347302013149176690143923998834524816474070467116149293074043131280803063306708364066972792990388828004605886070357227776958409055611069637061719938638796457685805057999243868314546250804353762626584308363947992634071469441267333369993219362450572919545984760279047453207711696644052127844132690913988979082472863174024075182664855732689249662380477549422009561092957141865471153566548668557959515228874294386730444892663357478808634512109165812189701748399081662932490366691876725918291631296799058220140066204415061309899326056421658247167591512046842945604178821087928808808132767517946374162394856185379573483260531354205871476339973023356803582827274868279509125394382814332633624671461790260507478386286234056680983591293940031282412868298895687274001382744214379852701861693751474627595909389798377898003310546792180763960503989154582536135013861395459726054397540860339146760303479261744086032970488981311101387352842543422988668472614433056832025731081227796974770170777899922273045589036026553130772908379721709481717906861916779573695798070204173312179764426509722406702120378103169560410140415167060505658046087974171156155446307331812542290354240107474621067209008218113034788457993182835800349209839020533587271476502511083752691580057617654738343065777331956914713722117973882285972800634952882613652843519446550061254316681140502931791760430795175245902348702792675727578738063052359430704834854836249300246766449498011685211428828899554666967345279037310943163793881771923906820755873108233130475571878916269549017585555336342745215214524353248143742969575914662892767968871854603395518193946166685383600145331380646747559737604827621818582329542693656583066700016010761776690112961185135181684745002976231607762945910264992347206050345645992083822077912476267814457388106329564058158122338362694766515520264809938737448589844828863194220200976727762801976571661564498733115731217836775118124810992327282226700792840399271474974923387846651291185933505843705044755572620179537381241801328199236281432945433282421683161225940709906870865363521656365561982199208149692418793454186006791687002054744599772388294532189091230311770641862968156211223303792786630750863665380468665184447806898409361127361160205110986845809206086463194178988970957235318585540884681649259104548806972863841283825303632899994642264106230401221230223360640891879259330264024880636543396523944194957632769516589320493278432402969717001067763284492964499383826876567222656360069567600080123813732366642028784084071437606076184941960726251148357679757103039618518800829183898855131800556639821790044704126772087811363918001319966671474249579277294139810757004750893883905550678507776361721736848255018586196808178567169248180454696764622982596645142766578215940700376673035361915833828020964646423255654736371665500748524524524348548512648485060359761068783259090221640215311212039721967906773788453895020873103817290180443984225586128455494517115494857057173537424198546980987630489496126672968508287088260254271632396197124179189404846664531349739485764778105886643262814616365317798166403371534904203654677739689035577991098126934766675328775877543013194646800358553695007313298118022927807192477678038356873164360849273225996259603769847722131687140100969322804763830693850074344959803319687680357997639526397311760194588893768640166781102135229818620244355461577179202836525396141447714382285219794085756211277079613668065606293657901907917649069070725382658792266053410256364967390174131930888680297403635602091874962078476041458102014265419764518408803689258137186121073137854608310906430011130143836818665853960932392468508965168420300326417784921306040821643049980879930863039780473664637945726040772892429523820725645874370408385751223541402485840085555360282711433273175615898384505522012197424917115970706431481456163593766621108087679034874241318280517999458855979034309870053991857706249171306618007639885561494195823750036449279259781680881802444473087672700611680898874145628530379003645392022440970730771667486356026074225490937517761471492328113493504507644239595615732494165776903547265367409591599583288448131005826348975609048813039287593662442543917402764553626591416428751996289191211004846650435118874716013505461452063155614185177486280723801979465308184236386064846977092280010828819895321420674499173337438539742321306923091044360617772813491902671264441184822292476878146707807110678315071653569729638884064278763130412750518523192942325061251927476596312791847113353010489849128267861204325008873995426569160689231983601219794977361749381999498056432918287511877155901856201627556472325995246038489964578331090436193373509247665879369666148907707379960232182566586493248061976044132237389831244734242484025968409469235810090870542125287603172524493768964609307511131124714974156526930591344765889190636602035253827296083115060163526647112833100697775995497426395776308711200471076134623018937648246280158111104232918632456005176429820442351226869104654329601603364853059162581593095504897772403562059172480298205889978715330068484252854004973138655215376155528798795551056863025692915580265288043857485320323119588363506883618281723632742958100485552150813936118557050559423125395214034297762047826615026052662113447119940309896550704070743871301174942438420271075092463075387776220800404337578027485617959922598586393625199844334346903642968164685843182092769013275810935135147431468540587439109136254034811001839710503992374400082494503855463794713403479954913957893365093576636667927211682285047344143478760904162539329385186663737556688855287566271268145489812849970063803337400118977932996547693993064346584557108382242307076537393949396370025093909119776138086918137922068516374901863628788510265438145448347489083927166243012660820189687464818681761537503090040390772521339548985997721189843645359937813474233320598007666168555356981409885007992091160146645211802758990451280694477895297135834733926582261627769690605457022319791782779649876170893628853790477059064320846410276882750755189073718909859217818026695124018315850984505399584650192255690767135528433325253045525217218242535553103354815894079831614778169657020045769488658891587121439778458198583150883908967622630965738538057535326012721391492315709477607188798523893866639608173386038606485776956269507774896967611765499493272035171331686660541535245953462747998767070003165847054347231975812291699147650162783934022163393315183413224983538244124470927214162372366703181271023940960820646594878352229631538146005640813618668579008856789318182408086491667333180669054349455522128419370464992422591867498623797258236666898482436574105593929213487014769724857595568880142419506575552348127112694267080249146189155108989193425623443180106902200008307940203911931982165593326137430559342829885552861115271735998728749109340631450793890259634833478421789817590405840743734628692137946605852464607758291326750869066987587835204092488263233268842627394167979984856304717964501921958555282146148688168742085451901194827512191121925272285130506502874215918864111874471700604635743507120926253110008536915225950819588527254110604695172934912098141864607057431366596691477662545625963339522037888426095057993349252217164422594709452835477507897898628561830050592245455255646012862192856196870177332672253076698418555309984574581743066003340218647502961232051116126937218466466443720113052013659649684225581825425491022987414614543931367538696128336873162204070962663578558492604005733982388928158489246230959152526558762561954403575321912910766119985781891864181608012910079281025683460423903530514497544718070582110588353618894462227761264390025957331074048233556504695074759438203671067184744861521024539950327647354607540273307569540347339774933633983085272611860269084973959949555834544103051145988792169434346831332139615000983037314588610821274685973494975724877377464696825611112762746463011972996803006647590971639144537124622168891977879004739059401207886939112100105801773666088977076517895088426009956309654472922569656234644524953506627374792072233660959974786280344976110446069804662788666874859308150306494462349805251188711172828233729763297737275805203516783287145411722955726843820297871426310331906862917618229974486298699184506415552510109317204444299552098871071882299682778763500094670217958433519996794120691696450937468467887377059446184989601976429884385328763747393747620247283404104892583636426530851035511116915991825215305944566439195522833735300300749792462564196489329841795565199179951912190650263425676024421100686696284640132099658802057220104496010125879933559023094511679828387272036912311704304136419933674816472964563172742568703045570055638642676630662483639872238264491798356093672580270938683785697592253376674609946479903712744694427113699940615791337001275139595562654777567876703009455932504619144070349963969985376659234723384159051542767574765909701328320747354858107565680566955128240693476347376807088618771427815651211001453180552281781143879766709988767186556445775552353832924737239793986498296136429460783711098114203085964682228485741301079791529568616125674827178050387387889143039893383715694823600144192694094417734824506152014703046121706656342038197502302288632448656295172970141792372237416581676507627324936225462018579096164096908936098297532903029526895515325837708944586613404446705439408400678002406483043131866600569588822493430423058649815243513243699051851378259690485120796736538740559061196620047725547856942811867475100176059400622780062887452866220314318110325895438930319123506522792475268362243589580297956612808487443063781182322995053194327883918504396319919994225571254849535418109521692725052384655936225447021219465677975660208540431630491197953906541845496128393932839032828863813067239015351843474794145331759905230475232437084001254700792224032118709101376149052872790004841512440051320167963074237980079973237375700562509254973742479558134380810397412959354258073067797965428571300261089400566968500811510314073548357105061845252282171841406326347206960236682112760336609895220692223343737722376912748032464149801165494225202340765869678980068400763389969798801816888676049625536390221626941783685988856104046420982171391097587306804333928091960671442963576098401508431042392585840905313851762514211760891457030371280897270450425237276181317833504451553005363721470592947273230259073401185903433809112990097721282381135324304649328443011292043842160699270171384915088214425145651491900078895545740983506509473614184117297233083760720449261510586033097661033855780167091286278069570796716993717734069673251188219894415680744681310515214707683060280836367434388949995013485318000079147822420721493611153834252148217331433595233403516516946458459378690990781225310053549648961328050989710184792234306978038211227108670843385772082287698142899789655238507793849295800519909020306428389576580155851660751342202615040450335166887449073296402681466182086496340104527721479405374827939404454844972634855650203776512752392616231561471416890639512169282795419007129529665592255851820500289165889429805507039570784832424600371793459458619910771050349011528520945351097667969099783007386411183375546744988150811708783200164069815291219782506255936810111589776848768452106229453613195189579917175615276831721299477705230060752752717105482506990556473406370421837547040396841821634073232291801395755407623645789653940899009643722155516081229339275798069458035446616504804397331942132319672336206092064279205075604008759149856400521268947092875411889937644965291909522128637048504420504070718314477459006571673093255853300059196867042574451173622122333700475282630931336659204964084228438456184448663481902081152104148725887185542324433586400071298025467545508369349198344688769594031782497861325112964185000652980176109535200539227122188956353888754214893465393385801766354979768964195701460092436003695153635187568838612174970083489743609241169744327462765656600010868925660747830090614195087703971342368261405525424588974935336927119068988447443197617230713643690593455184723242572553315654933828101118321495563659936234150058631483554132893289332984647852654064283907071649922749186575013565298133973347196729169275499030356695255808154636322257784539986866973360492783258458468677439589210474210035676148790936140435408096275071132972240490014872112308158239010095733136284168673558232425219205361038510474612519671795555202122506384404830101725078591613389598018999845000325262106810118175997066348618830131071134773829874693482210801912191645660155285390432611413609659132357294719377415850906198322409912788829873285715821515615249525635225147156839876183583608448272299984292431616910556729338256568408180133287579161748550490604065790378011613803075787063773186602467704546480460474319598568911347151822218041627320720010821287877370767894126343665480785721342538660964788481739827817840397820220366901106701470200797970291005849270224416439557654564196913035845966503800624967898675561998589951495302876155131715607598095385247463456337949930757434515040069039217401604582378605540806074730939614606639394336732388029259609313818397313270930005440536737189837651973129665511252100468448319668270409702845779359990212921105949083208164215466068980040969958664245352714905886626515503298758885206875082903230093276560069491850366019232495949837391378097870810063945443788010801026568780848268182125305698953251868630116829153130766504182448389490149026204971609281555696727155227081080337525169423736333278005973516421079284363730134664718289344876927617954411356180294766439026803753686191703946254697866565796265122142690089424184135917230749059510152030444321262416205567575456637280114408202496101540561725079260026907096556273396187712679583707672385256466577135148196047515639892865227629118067855865123381586266782439113587355133537444882236707718643339830262480271008600453271419344571882610372377819705905732239806652635008601471765000841110310458919102757363382403635962229190684905206069687649013949310819577280360004957666934953708000466162201116802445330681430355560426544346904124438782556107843591440402958579234026016159311051826461357234078513010872407361469318846642176707152476862449473037539602725204028918094202966187860603783535614383238673213615602177618547496685095648670718346091377842044617216819984395393205241840072614586440424747967419432662441974433001008351382062980666038002448184758956034497517437622505594183177081890239491758788426076469445715514182956970692965428605294692528501800727323203116493727150543575802323157323364147660947315779259009130438293349701499516606347969446496233105223627831149155203504535429972809061133781057123208268596852297071697864932540543102387854993526824248949199970351649401874031972683220556900488859681536664691259361407739970309897321319091583032355569037227852610093104733589070512578982714418507849657866865478216091758346037373400122083682396150130981492758336056146723494812362949408339623896689416564577690474813278763569311166584520025980868952410280201666308204664712936644414931679088563180216848523891216029621724570413179882669512393606834829259353766251433668366424735353942513791630794013911261294691602358875189560001493124923483879308460196166022074257848477234633748359696628244316053832613432083306229714109371255316649890982660837386807107558706988509277496174105222479931169032948418344786564166438671025469004027145874260738635729202309252213558417781244877588578810143124285987061545589261984947755262615854300202799178573577528108983163282396322049868224955366845872330793442411752029714496235350935265254966647282468455565409753368415453629885383342946783649984224101507907664838377187559343839393209638709620766611046103107053194942239860452031817075230447209753432303888210292505745370892947079354021481799140243191168202096734890952034765810649979988391954380895580623919708249063656131612525478441505609758950253488905535853896461189591553079928262873228830885030043154083121010395140553487979891490510256657821073920617283266863256607341538074260425612067567114660663483808872794947506665633265455988830625613231097453811661716851628031978235593573347119324176237541344871756714430970361649134871018734497029352109163013652259378211294404450311008121423511072191912228120210683210311397318497126550414704066891096207334732459079979511927535837307549531874828050830024716364789957886289744824084404751703546189626750456396121156391398241891799350321952442049217809195657459444696247950742787733076926402362661168666965792834554296402249758271566282621998099982061268429773867848018725614085502209981390400940250079871472918628886376995161672584393133364302759777429124573712513112387957927492274601633889860073548396304628320131279236056201748259564377482313563806503705044925657884812847649198257967922228789200190120039663093745567674972410114403778613324578000131765227890146525425668144547314683398939990490803845577591074806620221415207803323577506595156892121427839829401366198436982116146086155722286144667480250848630361311411330964174893512997878484813798737010202605691940997248039086321785515777320080870931999795038126670907993802453657705930947409486348477525371741126525774105991798094004904306541931600690062743199214003692250103695088698484363667395018026982927254817112637918607200637708672821458978671970715290528655254919489625191260646256872507823538066928327397774856142504510189695869154425175870170288173269958249306831237831495475687431561531465312608108759186096640427828905580285812925284956051902616899037241720222805318450102926753942547460839580084646733854849584012582705705345965318200322376961003734242028331751885236874902643143420249281768328316148445643490848592420238502610877291573977419279723089449201552920938600949305886863252488214744579789163923972164432256853751673648052101495539071935461956156118128508623271638447111208914532874020520794776666230340894058672802084787760399814989692193736325618249104934359397560475397642792617618712317567242347846439866766247788854194610230784789061872348401810042362908699081342295003488062012452892953537467986433660709028642711361691755264999473821462169025725529361379462499481292248828475225453393363774223699316009792478661719542831465463436949961021641309794449046741443593309168521292537306894529907259501182792868183628773777954082556655201370368472459938720460899056467440378857007989767949061867172118815851886636174320855023716788327236390949031269372826628591180708805517681808854788532371025241394936184626806424191568266948638595927105939809142424112019150525983278370554868206989739630490871605330527414108224284314823932573094919799525522413152169011442307942290284180281049408749026319500314880539228998381019221836675349737911957755235945415920047812024303381492321192584930793652712851658985829443805807098282882986394693076446856781042153358996150566397436237262923919131148805639148087509363374151511636861452958093413219134908814492197872490207542610528609160581834085322229812973724222721954389799001127788953663720373128188745027266099242336342635608869462276784877955837683959311469390266192968056181046462050808627243833829366499030041917144080011257044513688961110819978996849221087425876304459974452789497747302139878040819732600716764011252748386183623862731144258087687732322799078296458116897550116847894369184233281160343898416357614260722018245959375004382382545203900217065655406423495264863385143216081637857739111103778969835284119364415293119067365072827467029524089566868432662564377430163874100767514745894190542475230493165110785160403415934440636885071671246941588148774272511344737514937978557400306582200309188668219269172225700641432897762411323921320760941989090836256306721213032813511718786907433612874019278082486745651444786640983585215015103670298929516834379860264076808684239007520429413403379223539537433108021986160561472010337376848804394543041600950224726042314263201700187777789686624813508842234222223475135172054200368681145185447995760859995434924726939851365554447617408459014735576331502222153349409347672594434444039786583725361090496737407194395372109112005801855637924009159838035259440348619079166982069776674531513769540222194553697797477728951794286502200299622394975669431026474862073051808794331426112169463838539210063637220764093705267590831602124030163059584320583197660441272993448121990987102204751084924478668262012391973151170048367416035059543891966339690242049277619757498948114510731764782449692731297365051490952592880845417620557070597926142160505163055446973534379053936280761333202277492145852768254008231906600443936902937239754219313816346477895295866852153194451701614999044440883368158152098752433146564857412592400224379095181900342534663834388686612850371567323339007035348243830865837704863712040760097170018617427285080388428322791057302214151085616297647276856996825508823904487353348293249385487454169418789707075147655589100109501704508728757482491494485867524863066505514982958115864700011613815124843858565727850426008317912943902217938130174682617954801208250802404795699049317529728505439370286283461710074967217871202236569664320742037379834324835046297542574939360180191525886968715478271945709132104654235560958414630119906524020282599646985942465158585809705908577611199719196356587031177864054529930354092320995368668050318057698005441195875582761215783498645843788634476508867605846627102057206554407565162346224230306115323929631976752637720218044709379356080137579928718229412633924436246408811736920012558128496904286849188874773144720628521825154741822249274149640981970604962741755483436420866938548515336240125906566927017457592123388649848892303205719323672286156472606684297421549425223608068318094544776934046915098743899456219696677939211311952395207000389717265599919992190612601747995788835026229183787938738099700232255453789891680575838377842977142004921908278137656985558875632266230941476876221880687192022831114521420966802389500110545511332885366021660262556206134860857093260609172202539736606175360107056461121726759906363447231305434540055634192611106114425603948007823125578272820350582726516409522962872339159596006849720674162451390999522171335191743349873683250744090061044384161676717640233578012142337199877336297940810068695005011046113233005998190379506944115255331128708835918215579050852496365448724792234014370799039219072776311050146072336069521976776466596207036633494808199805501707967684545758800541690053200721795497432342211194741653067726720743446623974561902436918533597817372141815445828760032124230749984570143716560378434731364043007181323846215160977828029663824107859509939739103115444160307422265986110453250325630217762567801324491220136981001615845714711163034362804988867183771365927763444255499155834285319202652748259084049263950281040403873719391940312013841809562594311802251895662281938138086860706368469046442930798464960633159214658893396054601170546727095901403295364034985622071180262265571795638595945929090707303083885916162181154175103286429189801804680446777791031040486670016792433765967019138400787717505251473866203381367395026174046902481704890966341100144506697202597007803783397875911432210475758250119053745672490005088977144975559389266544065059621133282735844060916601576350033145159725009347260992825500742226685097320583223937912131616103435749491594452671211045285649206927430080673442001985396924019500023704492293054930633342684962356728988988262779720347660722424320609104940168485722612425289067360679162419750299410710442875501056940981916015416601066211824307750759027345154547204744703769529581737945716535731516253355313941259767370640635790880863405568851776654023653734284175380838349124798775087038158722871952520289575604887765857339876747048329000450592324016108902440600203844153204154668600189817584679295235853304584529265837602995899408331672012039062737226874935686091861397290639819301612462374899852136190157764621771603616898426228539091382901185325671224814268043449985704963397864804253905813512562502704337970164126754210286895582736026868568037434887081065171051403712498771579671427652879215040216462537474079597684827244068301115122422324623995342097668455660281800293066075416727986085823232363580007522038146416142914387900181382866250252335274088731774626894779053179869654111668128605800164952730776523711129789668611103166958800986565998333100497947893013220062697974465261406979278530908226659666148324291735245577534548014813771716763082333060282944111712958545513772441401028230604969554519059312255949677150331512738321902725986774311372725007739146556348051026731758205672317562419167004439728166128550247191720877726260638561632536382500838073284129718937974360470595005069471497044899089088273331236676863370033507576732480206766835892907942576157892430077166350639798511488022276557249344390811652281211337809236876802057323619514351112774185383093949164304856763970378362009671550811299351301315663991158154154023428685929223414114840654204291850648873139764535201642384194662104893968151150892785967728935301372680553137342491890635242973480430895323037823229816688288614467111678422017669082755841501245924300094725309924365380811898435842212053649548053617737446234773618705303762307763384698376284888918512007843746595922269907498699793807048829161220907561334459931257705121485563807358479547689041700063915958528237848877873645148670499390114083524611688856215489449342129913480342789821553053182096236245144746191283608929391541082147786284276939771756348778142176213341762809374390723700680943762811497016759478681182396531404664886984515206767586002807871474128292999277949852919608854914305218396597519662289166793698985943224069766265449098374821241793859667347905777746482232049078733313142390098535406594141171370102543584286626614080300309641795353197363082947624834033201873361580217884741673900400225120717511999626444935325784214116756363611241730585709652052226229505589365533815848863005830537592478545767461334477057145164464002710368322390388066418557326018328510968732469177339938746551386183166486260911175135436590196359236470336529195899901458367901629515054154454922100816936154019303634689262780814448748096405243202201021623786401217936743186154030859014975343727461817970634486063422418038043949701649887516311340748617406394965324924132595399763281229100153924717475057726149234813395985208098844180744199560734422243817538926477413373487247364649189992244011355187681480508338292537856432394094667919667096483630382212688482768774308596298322840430753121095682400550636732891971118681518499518459579867527981701147462896481799840680784061549533391233719886581321261574985536660386309287655902012658159249996280903833199083021155761938847749981426976241050777363071348003057294679515718717687357016625434677008294925612176016573876245379884710405151119096411231543973956720405638356940998128185030865229692072892230052565440797557071659638024036116155336634816742986174506404126848020337267208769371502090588238454530312089068801478815942125906731823227327062276892924930292403829979523548265728302276637806016550759539851924470309912352570503782114627940010011789290653426314396690273257409084584290925455242615508560614388543155625168346303375625925126318211700541301076804150457101490675774017867998823510911419872880777815188123722397425879519209320813178846421108919100365601332646989439523594385438592213830204080571707645308745244421001193412745790547816214160337932973226111810574918607482169532777765726346843364262921821815718772932116035618546764542603716906380996834101831013930842802504850209351196137926914618123224016624047660058823384721194089717597664580265154738035263647695354048351925865845488188314275167612473498005978089089053952614336454967531795932647408854410945271461848052080781049925147576926045990205578757353151523775030541716129614337716830971928973809938751672984011393200000417922206228669285788165430834446540926922605162247239358852996658302523448613097575503599370539334096364305436419068362506413513753899989576851697668319456830756975361203002984040301115894707593711555668784149183677837587843138744748067464463676410672788475262260203736483969735904426634444710756156609089790604993930399178522770713858191178611191239786882737849539510750302202896570771324426257854893948685329108169180255857873134300617585472678171930942058652083032967686190836036944527254088123636038624482951139757824273536861795075721636493812884460170606378923247732552992910995461232506842856738096133904427116518005423212837881260194190765396528194095057584146860053272928877764730119174201763936925811791745429222756192597304510836004380395876099378297731967791219041086762534044845291982837281866854381761050262052226445393868809594409264246944994582902661779965622274342610396589846564272012336712285885787760588584130871968384606970243624863263829581624451814471006411514803346380565550676265547453834865742246814953342049287562586305731513731554293015180867006741995866173998360364804317067599436887870076700202737553486206587522086882448503859579306181776096930733803142449409241459816211030097678623165123889863304513180916154447335925083618818826253975645956149266933739698772141333057573827711060761728052475665404044019164129420944689273659404332054918451971574949753082652362781649699513814282121773296181971867970995206598132046862898733173142877611569036192028112989108422133868097341537127089283922856429799687377215081673375023077664995956500616029990475394776617668657637850417322948551251791736789226157298401533431487280720546565998620200545828198770473094345443655271231871790723360325305307980889486288738188151995050559356559218916733204133812096039406833022709397757507847819745406636115696744561208354594550019920167249467792637603432778711866029250243050486758542812551152301411087292169387973768683116805481293229556054628014477044072591088936203075438606253268880913315759372986239248537965237548793813624250595915286467310038710680185264466716941015213678965006233368271090785948381662426966867997605763054836979958173345021060589453433234136003377060655176430801264251777863557318035707568549365563845247411285436599432621498134700800128452431777094379542972280221490800894489057168278162184257273826584533454421966806306731476459498685523250531945448650358842889015785519155600246540495294482579091554743923545571055726430632405348811879034647063758585209415049757399604111884919863748817183759060186703889634716925730047650949533909155675217650874466475507313168253092302078614052993608402309191908017685104276837059425378185805279960325687153780767800484471809235617327091977597521566703339236340466916620069948953821126203510371738370409200767880308875091784561123613570866045718446317861220285279483805682006061142996317074670255437078697122520842561057216322372778648667671786115614447501923413124958558931398052197169556704502574427272719568377915727801214970971033599620087597606463806664589858728857452653714860216010339662316255529233819973354562988086449300617838989351812768067004200758087108452115301721487715963211668221236527574318487799310856524924013042103131290784626586327794920623101209152282785365505568074892032490827545599979957256361907994507168233035719607527954973607022077695044791423703452021037313177708561815199909425753872854342894070079738595310431620625441098764123774501518439110351118438093449301720692584001394235919496219717439133305277599833485579029645998490434626373418568111426093059445189258765995633839477932594497431780035185118613513407065535123439923285551511325367735088055130708129763440489538993155516385455603227099344916129610548307310859669975820476110225830082273447768183089906285638789782812944205629755719988186395728090691791975632042087144778797510163072744893642823897090632413281955940620159495836691584810722323787084926020106685774246862892842435263290575879768403267051497423152796625204245866542257593545911860199398065342058852821580571034271223239468770702801456354925091115719867961907884409324592020368878803479168680248228704955493599595468107743332688417507568320637429339263904500806660788669442188485367064489807138474353101835920748397311576217059056090422916588678337300093723511331787301102532131661080254176639856605157610338849861970538041875426472866374710576415544323868636924386842240192313580831737681576935256791008973391046899168067972075805353525234074387396659721752843796998413983458258006703952377594901722653500502437903395161753417266191933051888970637261299009162823994143284331322490389321705955540959319502158884443324009868014424266469606851729214301859652558068756772394913550360053367702401353669752927223582305649435957205351875540407277285364912399019111272326566604420797814468727677317270388489594957617338759540585512710683625936558744850840808506052007742252263136963319698932238590597985906151437946748583152856687310917423593620629368317629145168393684882501751976730928041866672846860519954333250709208104218457919340390405518144234882584890492532020275231063463816727199498633578489723470547176389219893408209724120159064893432848464108391050272655826721383229439183617789955708115582326846746905129726584577923303123460845346823766299568963591606319793840669058544359225971600912131289408518534847001494977416445654698308788974909445316007013134369777986544697853633719353928302560659564095983984067076237538225407558175478046520109381063514601239903382433583318990763843121926312661751055057203965638984962784784105849719070445887559344584081478551988734253034511011664763817506149426358339319698983927780180306245630176657593153920202745327158698519301262819159594455315386120272503045609377740424620862290253838359124923108143277223365421042992206977634565394931094336270732819963514756005801423286041190645174400715617111605109218656552701382406540889135258528996994767823282657261955920502448789199947743790889537623316305708134066566361361336767429903996189048425958718556868433756839545941627904921422215738473593508847810117435734387757600317030172813492334029649412874540250822227355070027496962882073335403275895679766297859737911994924104886428312068964027240363852294705210531671672799418963498532806101354464058221725283147766645615120381022241411574100937070524870806733823788239075005083642655537730639472549961542008753176212889304371456635385260056472679468632422310273642993625680078774608296578071976485161703350339343832803627331865001962781305032573101162180765657903558839081392362460219328288463138744941081212952157984494439481495523897914422265185470976990619602060997378332325453125311629480528088667829813076800220140738599284743282177028376163925586728238535699736296643301004982285595461230450231113186056941666740972827198489423387762032094772106571554608943259648919097373228929502445309539742138685363112329297878011782075391173089608837138442413043353768398434903754822369380894321629259716517525753300150154742458448088335888209366433950270802002153882534446551255029960101258954761005455942754549225920110558764323910623806889772432926028565011472646645378470271673822470661960409507450448039732173815005094120129187871487584293231942835149843571380884042648995030049351285917816472357973841507880722124633854995247167391831542230217528498744156034288034699975229465338365708211690259048317163119592444134134210387384137616722567265520303748584251715313515938039765473622235111361247498288618508785571119912855776452428861459981138743501748419029752516979188955277684541759762604222288783173663256679732084692383313629568970443155828482755169880250405421829505642558833577712394167829634084570930955392477612157177277508692043238531451372252906899758294474813989352901189893259392173338367103785652538031000009451161701385683143405056507744168616824462998906376218779065405670292209848861891426935917950570350623406883316285845839661601461441928337432656724431466756312240862236395238345316329664413798918335385841831786621874846672878187520599871017450480189957306755049745464830944199435399984375249591358569392523318117274911236337733737633994678646303345834111721707170917588358669889284655676036588828995127694499630072081863016452135425963359801364976614954150373076718189785778843592025361460479962400552277272579369257027448799343892025505719291909695106078666929795927305597723889092658325264106176238714836234280827547697658681192013163204247938639298886281602428510679782290286513262363255180697601808618800348221343104077002913421118342937603337675345414956599829477065647670804785712584236535903356924610422998703923995922577917418740027011605433686887642457755236935905037256774265950589688010979655300923466897394619082016271228589519568165542860522909194578353729375351863666289373283851546924820688639624690059585161903809721459173676902303957318250244188810586197986890065644920763985517009447486992124879720136815673055709487175880229209779743954222477077822284585995825888541457975029111976235222425903128613332725950917998004533361156309883694452144459954773060003916168594390497486968924310222846760156256874832782085882604574657412575046006621635333346489408947603358696561445829067812414652929424123425235067894088632680855071251624137987378040838268189965747994804625624656718814007553406579200285857827767295796666829427956832579216694123659932399311161472081901499390172475647707852828491884359090738159040297444696405491333270691169860839847015430436014593850030997553254578094753993372814061310415590214836812218613516047486107405374275555183290079186007258113989555783167411898957940743675584708397762421076585943312171453476798543596562933315820151937585474628606362059830539945616441370513607189396752972036672532809984451099710873593266132253425703902740526244734063714248793011666321505351560924024944000548484639499911967915776068014995121696713243146749231273746008124298106434861822183697536554219870509840597309406881375097033350040462829051979004454966488035716475347967765687891466578176162409275274202711298412091195582700689643725110493659729570767756935300986283396648690945407591994521114337666470119145990794271973480131837010929541879514605118940724879320927335225989605681178787844939703015118576281269030415883202956188455361855637442907726688715389781697263294875783095900226320314506652157677101732795395548591062174682790341790754330133887430706246843646550081581963777717652657277243299490036434369131898098202401505606579768499473362353479963175823760381163110023392889566710206511274016628789184127455426702192749718365477377163144531101859194114188263604098111782626475088012631030705461764534979911249065863443922278657676548712243454969946253240192905481709559912607273772796544776738745206695652906681191410419533229128770125261091053297062124065805460443863120623118355314429847873422153418961012453012391282525719345773538850482425451843547438725523074493704169840918626869926838112069340617812012412562676243700604993405839680744132238673223807939984348535025494415731695224062422597784187196133815174977850274891816780466556011283009527146180134319758090029237845703403761493931345308830290453405656942611941124029582884544687487948575069460963678415863782210183111574026217322686788316051890148082046628166566575393755369651571925608207784734492553206038216363526966334809131040410962707973507596705069623354676712111688651358711879758315976565229674401601445541948560850295611954500298949004169193766957515918591980317726387612356216368741994400464129626789710195778475546516968427294048890377878388777044404716254472860986625920628029838467945683041942038792100779690902569026804386058528457638239920407367050434693121623665724699970272794447131808779490382328931918419746486379649211346005095631345052052462266040828070344249255464470828337297617148078430603564552703217602495042977587774525070011276981909447692582480152002903223927545145538320130635332112134714909925588275142283051279975483682814604900843671292177844549163817857507149341988304379534952168707783980474471882550133238860846558430230127618601886991396066881234782001922338800813066981120069298277668430316159442784831596791023042723854682094279557261364840702120613590255222208673086947599341075133106065073370328719506486744524944715280167444742968815617645025900730940676277179210911890942280301968458607203445437747334955936973406334214161159188784138437530035986310038772381032053101074949114474399167285053780002247584859319246896403248712715857032258518321078917164500492959982958203641075132079136144661045636586836631902402563457808173900688741405860347015518843160104408126383832269874492276415718554767800908781625196251247852408387768779055438178722003562315608940442352843246047032367153541212818151959312372574229419068164346444104763097783584469619674773325413149563925287892755377929330512323609108164138457779800031231298617587520562057814982802905147473458463504599714480039986876616470997528013767734326044308177451292976200035898631035290556489796870776003135079179155108154206132570876539609941816847733785596493678825015181432222367523631630691186766410689625533395815309911047592008556746717234962103836752774552368716448293210728312725949940263368717518571522258236047157961965955771899557421080603608391089290673323316677118677842111211475046868290607807078028735107492319548721630434894904577268610222660791571624137587665379229573288116783685501933301687843304393090392904771354745739865178414147831826054963127756120499087068756340276074607738083486034328197608352552644125436700885392662373944053427975715294536896228760776909911000465965035276762858796776736737205519693567814454391109477218220321067635506954855981483575604180988322905182827267958787589081241914515321179399022315097674670735806356351283573266152892565309177387575678022138810172988605041081505548778646267746905645118363139962910098682257954980667050368029251762161536714188645641091850936489349298071946769750425675384222673860999793526492215797716580883488132682639741376443659384385959232894133818344641067050689216322744570140928495827354419330641105440154268528522935168090316898476050158324102086623531901069854078026728442404269242319808427852713312805023756672530800694002281480394907013948753206657781027117313506056964034300060629401716535156550207646964092561397884817668290834791129793086556028583023831469173024521260409161725589522157552632872964221676841429745153582265557930231356838277089734945568669456278053738253194763891151292112872141326543113330192890631065155430514544562955953832802308262364409183317541077446447151301117453098561061353068152537542495844210913417346331927189620554793074689651706823144722136956760563582848598754205667608426100544224458277163662741339370577981434208586756705640998913577245068173585893973388653198050153973610497556635783027276396752008443162380101349149192573034458143117667092409412508111104383434951328550167836192309880137990118604987605462320886661257391293219738740114647544972071765847311576031518333495962207317932976185753509693976177155284771201482346240245527409615139156714201762833445833693598568059978075093707182000621357140742980099675140946763825600143374995598360963250904803805061353587625652800527891955724688221912464269989988782323270909615967422647120129623376026135226537152595453113326473238214181355999796323436465345174377016686381104611772085707723865296663715826183604809370698865183706843391612176178699917882367619079859204554964043323383397366785272088502164188828332940549537097144911591896669634493323322828479482628414840214028837232229544038188969460227548787835595603741888614949843511100560851895703180790130605629666067585095556296844582941512498684039304862894792281052713723681299607077553767590126655612888606908128830549702102218826618400437485062309546366543660316325138401379353804122621203871141154162405343602293206629312603478889587803470837239881937061899843386667973274012748861133351239207137610050663378945432154557232355633161188873294559760490295319729802428246107530207101497065006161162315367124860979303891658085566554900612203597616315931850494447696714017327531812541945911286524782478303468125131473312170393706689910094491431531030380882439469010082393830967686604215819578915739103393339558589238329142932390330252791279745908169347737535842552123137707128957545973650656151533853778551215623938741652450922240949627754922313718063220842912505658353927491530386390541942913930878807515105450970549348038507732569479047365342256408030834890246465447901058481190787341489937403303745258144237698203346839619651722867277673852476133801356196796808269950400703544625308022712454843871737510044005893406315550180694962530193560409231232566446977061218571940089870287615023086974008164680821370070731120203258784986036486187805342324123221911199712105207240028232879897789768455007297809030432324893693725134111030876243616831836769214728606398548617059612418921637313751374220469256142789736104040686469736538597993231636295072085377609112087308673410944061655408026729994212816013249517423860517260140396668536531665426657418814686877170395178356967826325789220037546395883939182193271544556968049963600427446275674040037355942591699805444265636898359499637737691833070824972421129936322714791516738924318310600478450229768230973414088642511173817347763743387351450027187529198043021789839137036899802266237229225918893940436241168191948016505093171730298697230871865106725241785191180355799804469898465065619649038417758026708798362917963356049409051464068571014947038250712345119045804603111854640779809809159013190124890220601888327212574255306600236311207844347410774228031202446519816759967745411022149187098495452813506249561089815277098086219791499204502607054872177225877581266283360025977662605252468118250571455306215886645665450299204642765393316351706024630298154230122391628590973311493502640944363130782028041417764376142107202942504012432774291751884085255634816891378294803432975329095536877634431884764491320540862139400480925443940118759427834781964044498594096866496439128900275817988339666161227175557755805720084190529033930369843689258614736256936550326586801622715690173311927148894190283726141553463628260846368707535374227098322338345153213387449124330792529619859740680091756769254742571321294526705242408087578700601476119567159082437360427772320959181360360756491803005207669492130588010980152266326828440195738186828573266377628907052607993484183836848817151474445470885187320746521414617748576957132386278157831949197106891103111338299963769581338139771351798245791435055351987429432739668097543047759425208059474176531494180497798898363468137833392566099899304213198571908510098550399614953758766427065083643686246575496757366239671597209869463845052660551793166461741585165294374298951531998121613265585669193901236410374576014383033682049390104965414857239639856313482678152129420331109234197556413530611800769073043539329302802410024649004260666314478524462619477251936515965139646283676877115141447194716873488269810133657270571087837334480333684484033514835909233664262962372159637299885851664770510607682143335552008123484507119766312602730055151016329747933682658448563714175941058449455315220483141917113316066453742178509442689050287478263357278081800175193073743233777123825231314467562825103174744206136320194742991150684449050503031540509918021326959348681340677058118609670869173849797295857530069604806499016226990259143334552072317739204942871669222183010577792653343561606550763198081748185138629754980304878777464034774582829996977670640034018341985991948947853624871445191840084241770971127779097613142235168376954100100852723820414864142308015204534404628737435707752691828690788597414715211947528429609125326538740685061507004307765272195303119046273364692389984134005030822727334677347031466774365666941225115291051700944301779937656942237159825435003781457211346460307725494973477528030953221910207159030000256392042766663266020426027085764898492775580611230009335655116017552147967958937554579427733924176659903716739135329722119649532784637271194081039167036159058019319266761397569656784266058532859369363864222141356432279581194278183603079020258947300864696722293827579157988412429479403450381964617813397109765838222670252115222313368640524047335907116505105932679179946749294601293637199897430901022261917804119914436323301527962519674089055967520516851614459432112745972174017243946773306533136185094586331516758710059845645414133834813078142686715185660998064470017110603984753546502996808722712743671605947374915699629534066588430282402372031188387344901807625610861259011039071353127241314425766016413826925359602963964071566314526676124356654258458916496486454701630620070205277096263881641081575047503067304401208206273300117734760337227931955300425409239355358665807112842609709154286565304814576406930475730522881084569441201560411664753915291280129591732210049592300718744921455468193236801128945275233431397982307419051095592598134017576626586038678326460834482065353726801426778686930644956777113372327497142295514771710318321166654105007096649948697666870000222135672226874913736261366699652980983579539356595458569400025019899657744760586325829756133402859156617439158842148050552445835221378213613098211077652499060551253138819453082916418093525149327911442829423387727738965593322741779493864644053754710369096981702811240401197974999345457111464147278174715375741018964677300838465805614509141478865170995164202488692155868036517221949381779802754583614926730220503854331193261182935423969460680091389834703164391674108012334521112502795533450827707384296971901271071311473280610958175433858640630629602197429609960167918891562429864192035021572692696796921110553814714941619863347386912131907305788286188924424986274757254940458877158042252810719825808765815437708576401449283916841112087633364303618553635350140539608805928644704679125294348416974953428138913029755378852665933355184181764413063899914446171991453687717752912465876434138814884253697590273270017262882838449988720961662292939653067005893931371409051986348959140349038374342521379957727671211635165364625793816228362316395324095626325758781871439289035382823817308746774903074739999749730699954321664375258641150382326292099149327823410748363216101435107760899259188989007994104015169067724898893706159034895811290212450250223645672127523861590004991089452305871944129544536290406440404101730382358453629198770638655381489520526093200505038621830595454345297580051489246681083664949899400652475834088658211408666860563223391355293877577764058007408635274087353339191302872544712173922589893631237422898661118318556732587030682857621436252353215355125869888308301237464992728989238174250903997521307041548341811858544557959598452507612371918159343443694367666524402700707446453639432050254441032347496825620899827725453727763272999236266736538473556045310517435801707946884819970912595334341589797405131713588009771334941141045450556034346807092473444554947663943635821196818208382439888764658790189985383469182180389941331957225956219643024812451776027458524890229455540536442929173738562122434674316640731977396385076358602385869971115088388661752460212652928548836883598952411233240925200583228344366501339898433443814169062093015201423032421972785242236175862483890350027560192782349468283719390245727640865135427437745140603852892507436224343537019349012127508332489211742322552996643433191036142088032944963626710446927645623889798996064996669780633426493298036408333503545102675807922860762227258929978773889079051894775246161481468621328323940971795612057734267527805489097042566295080047340072980119584516868163017548051971542913136588696911518180146167362488955489249737325641883550823755229193790877184025167847517559867792760989251071779693117704997958336290182928799835328348527157893757325585188690343656388429222286220958734789962800300001844775921693365981188443119944625191157747986043761583042427203936654599711769802333088849938186711376592248408587548831528726649315900111503296983232912910214448261918422391806684885193175990113700847666693891118070515097794959361834566215720155045090559179731186790706890755922622236793211376199988324996167432325154808192576895466170954261779443847630450571314459589336091104568598799307219562066072940847545992313779666320352106045016777160112938795703460349368532251116852187398917118851503064731043721423506633617140948646922013194759449682704494945189341433111816846642839856056909429108587646469339274459288727227520692348926310486854905032789731979342761156548982868394130135732913685027350516821064918478448923649352087647857437687205786460022193130498951701556752107915925508880226246691329728453351922431644023727408046013767661902050911688062736999037675294734941408104474925227684198691962223516871780880172769447197475179805258815680500900583887793886413608325555357327721506230055078808989270872854194379735288932936109119234147599146460841611723862837002517506168466180774651686864857862587188303391925389064488546265143120912876434968901517277199999395528762962743616172906481358059180373124783834659432990695773167899095426328485835905528132839861460656531964851349895723156426371385519351782520257510414274780137522450630532840462012360640103757025518119223277997756713529816604105452154918482583791395998415586159156285541175509484962351895271671435458899544454288476784819665335392298171807403733893851116049710623125538072296345801199160502897527694769465486228669462573406512594275060856655131554611185310798991818042327689899641278319942059123486137837365404939842895546294964556905477073775287604372708070015864473458696314303533780404263246328423546504823170505462930400148193081724210518943881002344985574188891651666973968721685516233925392728196366453214408231059185496042998291075257834259545855463821268084352017884296966241603481221197519411595795897345203799515934117160230822824252217182683497024859946965084045486097561037498460638574777410715299757860940820418242697265935276778880916589019272576020522202477208991805602169505017548481438483770917793563832189206733427301817705851847317345678803887609806333783280587294181955504243055176001377158814465342210574452374710150798122618947059064952554386099610599020228299263701957128401384564131693442160387500932405884372007674226025790561825288283726775017300494468916230848563293764512389429658487000937888509151146247893185455250565412045113015143623088246528532585720365323680392746201899039344920068968814654468219492434399338373579217308603822623908137505463651657992103987145365456506899338624225319952086707076764744341318581878693099790092701426199262817545807460787413746348186099615931897309233402333980220528549291837273449175262316110342280822660376148162634297424701938159764015933076915718482709081930734954630491737361624889167284213644678970799107910648920013976672376662589694405111287618002200425939135305291715157283587380322806645310959301995977110602681988730762895600862942116331093709799152878302065395044255274594852345735247779526697360014009033658834964410234080821405204469494065338053511403151506671769117334991826479934747908882945621552533117587021926009757909486871593683146618353886824910631943788517065379395001613602841911942006345402713201673016806789033610735369145965768401154966799183268950073074321414886952121137603075037151463788168982145566727711804196354403522501593475574305238864110702968730196951478124983906034487222793943538074444581960622728936176942475789029984211161480264258088427788111070443062329483315930694030153270766443894932267290104811820392629395904680883450226837905596430300926764557573001292294787736769624739251323461677827748625758190952763069449585087177431591022155955972939626764494800256881965466081069632378215500659105376887847042341336619361148540174946983282525012307636198311144665191294415881754121749621097298712353074667502422934824423304253313558293956761854505007840491681076654853394291053017690632882832981272192251890855620041688676104277442540669905636504932989171644148129586156186502753584024145169799671664243227512058437825277626329623118484690289903945013075540886220876702400360868525700117443744595757519045530313207596859675102705881308547324236595165069646496279521312600188231807387205852486442988635325106038675215432174270253548959998263184762043453737476203082340503579333419188891763648313346217580761417877661854235314269554836242117651284617676591042382479302171059830665572906831184569504481167441532939582309563844265472757620811720666993336883893656071343025579034127569936459359708859705087757442509926975647127988352471660679825463927203823915269541852726642377208170134213713925614902023782791528811504442670248577470536785790403661678707491464851378426855887827864958350651527462612190052959088948655660466385174320512055968426297362913374737656976651798404636145251719614710685439168225593476691902955655864373790568019541679481472936613563268932338570278540994396784706925252539791726569229729191759530018528226469150761938091278266874440437053855985971134026831449063505768295213586036234626485740653961617538553941203261806012275970858470075075520953361765327594951653439082667180744747868589104217911856390636112708315704112478046679680173467424588144199471194289008702745256565105297198237871472234340986597959307502454977565817910600625568628477804673341111505439613187927608873012396134051834624039174225846942590098866600274139637465033005664326056804304176146458166191332847367092717440737188737024547318599790879383970193962411110125559474998908298610962106033986093403386509787351301188869508107083217057502776536703278847864144140404680206471068131461071441108633588207370210904349900710905059100774833995686158000476719560120214451011864654786265570756764050802133723462970567254881359447023780351007599089168964684868323459045071451948717556178060685361861869467382611293222561778485280535605450952362481253313692433942551582501661575225402247916417413748682870187989248314246212244872497404580478005324368335856794658711215163121314643618074340607544563816413588190875617719294794166502426816706544259123796383376911749381052666172890809105756320674053070426623017086278211840878610933202757969543283619278930035545356894178248630127707132512630756855986043763213993643961621647798675699898050148090380824738968487410974409413704123597156242868656747481139807002124031287478373110132734483336086610431393317348275008137773128989067777023795286291705303750929970286115437052913513669737003105646625710613849113869407112978778621090250988826652594659578933445116996736663135398152115669665315572458866220058204579216778344847802595669158292927993616551296441589392914447023662832369671488389002308093885433320799429916735966014883557394872953730499128039396084534500836959597520908434212197539641851238917584453484741606850107654016176260745250294280729697003432925538541041721072878865359473345920552572344436992490969238995407738923531497410026328240037715096170914710903736265109289094529444736948610552070319098878652702546092256764717600152643626556354377553050630458796592366770007836509330973316523046318200932486889587547324608024787290615979063198153198237856074723072893917531285322441948759463998510424355171702300324637336522176557371425687602858184811925821130581911851001037549559153844765789871567903718805521871622646175919197343190383071707244153999567481863238455488747654158519878282730742557820728817601790810008073779238382819205306905967957925538528744164044087417783769379125060940418608491895817928498453863954811361076188786305659798857167686629978681668476068734002849124645975626500229647413449802825893176390897945605556487407871534480905405254996720192376298306324317849669444160672508256524318555606012268569358127673868423246781365836659658309186236061083123714637589053436535834271482817892533248798420853919158923648539477741397904394282407256824713439036880584421520527149861123296445026370225502676070802102038286325981741033970559008636700747132031665839909028549536574510752139783832782519988706411692214977727795555952076759182353543233892410070773871271578978415039700248802059917539596219649686209604301268307144157794266237704030032370512349235398093150802686361248726860383356115261698294711451239746931838049708689499598896833854548813567107509020161220766166382017726251590634685123944021337516679797888082046770103170277591312621563304438791047983919580621403581432924473022209160328525152459028530932240125782109585715567268533121921613411339544839467243744599678227753426739148772200137344956314137968653554899102816132000746779262012361428684829641272764303224582255618250872649620923299707562270135295269776724640378164090468607988747491132931759930949195754903508858137181901278282870445938644198437218565469287709225965671608643164151988675494084779427570382069748238422598243355031991146140643625618790330873815445522851690544394949297452630515293233820179261453372724387985199709922598915329726081437684287712989153301292943002022942215921513548641904100827011208639486369666246089027457915736187478096607758908825501682314232970244140113112053540203978942712449952910960864793529985642534067098792589990469429256152098105195429835549309334709535890659829432884465426099647650769504089420026513572673970594256205701828092822651802654918930618440030732500867932415266519512958277553456778178461404647152698533795392293523321414818314206378898034093749433863723622019832834916102421033450999359646783982963418478437376455940505694807915976637276709057558103340254682697236075329151340992809675161222430296444646927715724606067409922475440641124400989669219844125800105394969545766286509779855740705891371844462234290464989413558220733623321169177476280639543946414429520855380731799721866636755738127330504930661694867732204241280305746097540432526250205206287023877693274723238282273806906975702674256834573612030090015023068727923057778307940205800025781952483150055914827763000817732035735535855264398538066211687846879627733271880087900512855754120515262757459084187260540207315223475787807927174408142441171012722895540499321498089942690999989007282328640860454440223597175171217830624122076037131055035742253439347930917197024050889381812095365400459495416649586441744496040798545789987918961117934174955940989919778698863929244165477331196230499989556251651473831846150407180890486988399195507149499498651540580511616616685552584524479431203340896567861572769569240008608847976284536661538209352924461417747091698037952298939608348519253582090768883036956284110741887795228213493688593383706062366754473283415825894139214251484193920678345907380643012227002989558945040218255851452418945085043543185498968422557794969177027300282244634042130658611391143399229900072674394340481397990671666230232152746471421359463462435883684571332191240627499861587110036931168430437275359754802974097868071527341548351914955259443622524539480035585017945044422766673024072597660858671545169132861389855372473166085464198624587063015606320811633131668787562098454426360979017909467552095900382447036095834684252098998031779067879403034839823705171570690043495298426602750656598662343815206221036350963982864183002020191784493326739860483596500640705792707192607634087659574106364439787728061428651722703284781958938211416738269798416457268321318316853140424932464988486853742035549732739060488589648066633208507191647431029827019813011635074086553238142720370159086482980662913171283657720147489755799437882160929433787332848071044415081023585305931294680480293959715615141335288681041904506031056927693277445543591233122250769735994496810657715431818375893325324606894348531962863064700561122528440455424554298489394366607841621023462457001572039127190892457686174932249112100771656042779776916522368639621171948485042775114265693601500181836682418996590581650392828356165125066906033714615519808700784764364063075316270017431416343766814707520964725243512008302141277157117626159669257724563378754929567752976919538634708313899131209737746503158832076583830298930989178473223676505907574943997967721383170169351612289269022810718827925585972315965986001979129489406938344966499259696889707033800527301723782629125323907608421399038969779173527664534960161196387270844692727034800721124779887183949242981631199538435167216116256302220901971118955166945597505943913216263816824472207997803501293372687965133495099029592974461289720952871048274639567709757807306624585854806072603290523516929182104123397935743568409674675287689569609045122983305456327952671564120336958603299282813524061042447189854435441740657558819035624402715414174133571945002761712654487194307594570640890062595844528324616998175763142404131518511613237525895052434685189854196646014596975251712607684785921654771041510406805350896690515643035686441899214802298854900871393281661022604273173194018260298589984640757041173131944587459068298995014910531777485859536092162546678543681010370243413177505128524335109519458705056679960917615641433883577710766514123518987452339200044089359193774101721479704101045149359780251517797278105578942896634242842094587007824157055302739185464461777742209243979308355462069226587925698959381433001865180154990365609708819485353516743051086616663154938469642949033463207952696067371909356460158864271088708440602283152215469653170566296731281939713830220829832752327519210971428958379560365588359458782359958515574960592507185020468800076123049738031185862376331996366643971105703816238187859605859238756010304313678162048167722273294854113796683100433652363984018921058745568908237343321092966555488966251268547395239034608052564228847544705554857164914480595297492710924656672887567684984848736839349613478501976629948290425828254100928869914920354943905540908839107494737391790490758958378674048225025967194297115929406578423062461321507646851682768503343185292491969321116481068262226616343960222703696874582311943920367221940736060394087923075967504046689192952263816417958965758517512494223174446151970368741372069563671484383937591112215355871561332423743934231273601061352805271941856454556074442378769193375587103232026364040203157914362724042448723844494709874772780980825086386073129995576715058685857282654196733691804685193374434110188357840432460113161792755713295091352861329440248074408075047886144510756853003275063244945088587820478614743424730836768985091285784049248119574854287721277936040199501304963226477911118777670165134399018713890333240073926300371049302511135644118579760823446688357268864723327163790531537580569065635452521301799828792920820948768524691017940689865678646272721732757571102941477728049453982992033819708571508704560998318757378011401759857222399885476829692023902935693486407031420623127961586810940506141293593776215187491360533353650078013527647743205204682817876072559543629883493360732452628731851064260463417509753901961663596960806438057854635772895541817418063769536588301800897616281338859517844791962797682589601960733848799145505047872180566315156033250317517722351233054619241441550625457033337979647594428092839728861539110631473024308712643290747568154028745312768833300834228777275436895933778961508211065227779207832373955012905135778248154976045976528643648965056968199866548665223171595901068436226342898225391282028470816962834355299105193921530160291479038369966134659686412481037786892798380094516331291281681219847612545729962468529241580791504252783421254602342160318246485327047060068047581563090826187953237077031041821131412595707634716789142364528953828603843176677807714685532420846300136699265228621734504417789336975963394047209078899500342429365952983838109154906799634819125116185877938881039511761150090171757335833442839031338003640985574136234420385925571623607349722656996580782772041953767587899925510689668302822943079303112178912033404172730072408423797240334899087221570961247893301210113720143322608394674889380090977570123792759349076076923211119101103729009631062631627347947303856183977607598075342362917005826088299540386074049919882349463123717784963155453631631316946128330270042254983319248879796268610341791870788248053386892692449766798369647531406553660058960564366070082274242988316013003518766724341840367273550419870220549593219883557714390253241346536812127096908799852866802028142542277626096780188327762805748990603261131803617461736872422732541914381024381113419255061966582108626831266160858240087576065775351393874795349279950896204405175165743160925736882141835160429068498532625193652977250971342615014327234572734884325373318301180497695017798444957412290129033746208324547873366929525430334538110127259378997934881131262511134164485969341529467753818679417264222829667352667461785691434206258628094946689754927337568230245017123538011731011880477310357786838438057329071545386005299266532777543532141338201216899255790826265521664427697474758817464471367675686781035261145307147607170147824857842867849395630969278436939041025762099363503652649753741334724005036211821729572023787734911773275039666587577594209057819892689088669438313123733300014012750925435389681998935224851069826001267583789728361499123539179410122548428931085721175803067640503319602654544329872110489586861773647370868995576193132434195391318173470725777800770640984826178634248088060790510004485955122134960680991015259370468577371192675046157887535169563547949497009254423138561400379624454436958926439968900360314143801021669954044456885649614220849646041369239098017628377124482319622697240558276418891147850185009680352065795047043501507248436447629875918588098974257617189540546490126159907747090933485205610720178532447128385479109129785726461066324540153838221023449355557580319075220581886252060304741878915670308293124281851273774271195722611840738629371759084950809351722110578430898837976090032869033681959439917965597608653101647054833686326225896171709403919611293883970050257414137729762189388674930215392926758743299692561965863289886889611362329720524620153549173280308328595045198905437278925924781345930817924966061134853051732030132558345557994357552299058367238288814620892972695426940396275416893125491070921568133362426922181991778721977323553416948304441154025639484172073760298266337825817036136271116286253887782194250342823187123867111684301109304389528961929114314889644096881536862139601189415491628740948029953582902776580447586570254336748593272668817511773069747886972337316801355368696837204370648023692283831215500764215631679229479647150973760289776756542015607538601797605840787436790637249154625824637430581874672946523149446458370987715091059568946922581625023169359439226219306233647297747737415811535632273246187073692592643821237325639679908573135279155060092372005195504022186702260613864201556269328991102527773673489882223413399681981013704945749231637776689090116178197619907096009063015979406381892406696125084383341109312028275483959463228851483763508844434902900008958910920697270432004174226711163553990770896894975020538770390740366547794066580931032650737389209993767460090484004395935775038310459049332020508914875340954953001940683449717458672819311451660412137388470870543464257949202810382194438795189725607491299922377897481182789865200035612634711536352508672967919992848707346519960026278688831639916312617369628416102358388270855593451185181508779298877567762048629917997536088498889589840517135038732375316335611333233778438375986134653524427638070066399423790591351008269590413245449370228776530958480956467244065242034332406453962650075506777465934275768526564167584135510198663323825023601866169948910655920425561927162203533539664704190738560272042837496092412727601405382737198934432132373532230787715474488895044893029042733349037198175256083041270927323963230931099768079530543044370191085774878855462062873351027318034519714726436412850064856775243907948790449140003071017233956383729719836061320130524901724168445193150228459123463095287391863714698006303197206385514356298426237964697578552932255224361089225578703505216840743423536014846161998136335400014692968567478212185422653059074626430192986199343269039119074879039713783541482301399614939937525744391843958413632964842118724446471747848475658673326737776617386190380071557325097881151211078262430668788834377628050110315314608926569094561262696961248976387724054513101820567616122675480061918453009065913817054852224663921958791262337724446684956864180485562004318469817141849206882895862539119701895302384830127104200613234443382392256636167663948955277223997360607614474981175335022835687704527173034502453890427640816463746896677843489841773092465759548789627252709313827112747131824374074217621236900900085791567408875373433429871417493719816534316540946128387234348887149787947844233152367501833317986111721890158961216950473099115496389595960105236911512795577153609548874233705445106108645892338941030599902481071649887370370592112944458308231817847012837032750683745189785430758189053688300762110633865454533696993939999592594976591432697091726215091128247547451560374108501465069270512237374369749513516042122104315652708697124640614189570020369313151464405175835841512907255775200546485373994525006147807750150233798304883486091432197189712289905198813911191363359146304744279300507699689822251221644731956890063110557257508575113091397469166522326890322550385789151383304943340662178688734936680331488218026413596986206523571126328355029771360508575722718313434861735728639812373620345106246588352810781455581295190195086447087806112195361567256390163582512881218253732605986296049669758070273091647835201817929973951937709225652768370446595078170513816429351361873065712515031556257347784800829590758370375447802985136896681187152270781995592233433040310737071445684633727326090320860554865840151292450047578820389277993573911676596060790900154834630058409220296544619463237384111479191383374729483102211438841294844358654814907726270358114920396251682147248433838521200098536949438638998997723558855334403335506626194012124855629073081422806559390161322070004441740942083700038239518888887259658887077541158399561291895280133723771585302898973360020830540539951266152497778963064741266864157228029756573992473117282277345392091944130964922443187736169494460577712323743264489407562215299727629157154752318487182590867673925795904649224781180809007594622711804793032651032015333734529150245726526792737967344270899199744851481586318973876425598807626249542746636313284819509441760161656830892370818744469905295324194258494250847994049929143242282150405133722040112920106867394929818000694180851103073880565428137640941424073809404168861096156572770809425433700439195117702906463358339093350347404275733286781671977456754820355281189808396338521351485435216426406432006181539731181898246915926207347813133494769256831139838300476509696627545062748352100327860115322440193192888197035951507137397699549086796894306134732769762040257166205889159487143136187823531589569910167115866491379742517228520025301924237596211434594457214055840780182343778650226213689310107930009333657310293087991963381176519009509937516082155570130214852859427938511950188998125632466235945398359697589979515167325166640895101279211555189586993535700029439791939541819172628110694598802456700072633370018173539183468064570999727975915496948487307165792601563569600421672862366214475855497880670989171938961869001934220337235445019853937867642122705653156338089271745736866458245314107890898925252109105288038958731960686199826340634826957369543237654461227572156413756987402266107807573927909963017608892552885930852209560652708664366909438373099294524253266146744618977643656401707677649748374619400589344195638575671296330377153893197456868489469055296852183747461593405675957198555014738461029511217502866497892120483983383372729867441188079258540313046139841171699396345083218670338161694205330070308292636986135715662941981027186155611185664062596898472277656152080099090748720646466961806143538522471634685204792183108156401545443966264861273841806782672961134306920665056101657394211330636174367568057848049655075515128137346252900588491631242988449310292842439233902310411396438507132438379106768690122461160561203751515774997303380191996588619394539083896897792818251957944157185902715293851187689143675545576497341069033912192525585465548944976562994106970585081255737813581270963023071065096772369115581092564161665550829424247768507794211269521092338632808374929207956851903582608899183663022822400906791873318178383869689950854893701875065775232647651159734018996006709188062910648330642604156427450031741387565709835012472581781705829605777669752316246556722868792986088146160893533052896757727426703638532412588374995461869760091990879287871438632241680988552629188143717648707096419330872983848372766319240003288499764871612402404254587668518731132122395049988653739027525277164736576588419645821772639532069134365184225560214508449878821375059581369720814395278966329544756370876948813422232743259067102588790420961603676888722460584323740923123941106224801838589712333774784026769133567084501301241965097688398840893997574473286177717124219439147284332224690130191360216434768159915161473412481061028231988245437668871100164409259203864800460871550744021537706605725899188429576739853941159714242015367591506498357906629444227949311826947341300931479578098606316522007726576252357602143079410420934741958311941761469156997344652897993903788629990083346384837138953488520634580303942095582973261341931574481731604966002103895570970518447596494863367019132328365305194956852075893841250544130527385271473221069642198953309051814216929564649067631070840211075669801707247164931803872652562603770702119386122739837881487922609337831669251917523278511879947292882293056572098573739848661154782338967583637588895337177391528573563651372839733354609846303086763253378192906541112408202567888838137265554536533225420482504828737997828355890144490744231120388821434261224102520387557996685583507675698613689130485788939521016068996467502077351826780533179471706829208293272452473846698550790448123909933155895937246488542502488994279288442859230365144702313697526195737488497213009995768941746556811170231602555505154963815161397635899650305360322038755078794394865871466248534469138010485142820257624659263484942508522987399464732319727416713292291511661156489126545970034703119030373336793581050850844448592737637613145072668449371052832706613818293191747326611761481999863238384436194348346715962001796832770322283489867912886135001016516886679981317144798198618061688899014812443271156376165610552033422678344624092310156732903180546022301539838831357046458900074417360722739026833611903982205303861075815356464064704508189609351057720893183927049501808674992039658948889779220186123337829790717083547272986819978423581547198194238628169989435941021195495986781006943107428615750284906373049271096178583020453499021400841801608119799392616868968185170275367808325444335825786391827352020606602402666494211198839755736530490544848679288144720027742525910295658019375232427067414694677972299616343685076626646476490698222161280339419791864912938265443433385420628521143274756970073191263230794339370017138848979495162639717248899823542794318814566422450049426215167049399985569426038927970934432828833312543658455144818995200463273678728211139899101380345237512446507819963587566325604818961904160012757058231060847421017067459496496757835910637766712193785804551637188384940874437654437650718965515934152343504067438413330385452938219686821261486140577407538590323807676832238142560312164609465238820616573956719210139755436446330192446095908953332367937328990587208478072422708962677725671870888838972787760873008047262287896451462232822740288929418774479824838496846928681988988447618308148953529245518340089730212640754851527871318734631467655593221451895653639278045351167713950945626890817884185597608372144986864840387393980019418927176998028090038849500764602787740784790367906422606131382740813591732750637580877221505428210293973281299025325949344989568581203257709641454826831600583480732723806817430421854450968743344164859601578927004254748640255895648694303607428136788343528936425467485673639062048873477242471898767526093254070582941010580676564158921466520002495775547627077436049809787668510910173387392092479210229380383725519090231030951818082545419533600399871024257440846482809303260097416452331195176328952439918329759405990276777010931221098764400174605515753410212709718325946763786087997375102751836115706791883681105149902680160167371428240146227399092909601914554291206323249459220085222160693024468663942930485089063321067776361244956883524509997124191130518590022847208880088304463580680712134882352797764476251287049686585683148180624931808542107384725009325198248116442493392241929079769816946284986532653115849369309516578131174813492045478541408140529310933176024508880766260770401535596182709339943271677455784999901519678611027787543198881139121865981238388937213512667763601784711687249531202366664601395628981315012541303065959424956277964713852196489923452919938114042007985216177461687595343931547470992827976063075316439647427354765511741900567416443035183890809148602204711113897081908434365226354533232750052390004630291254949350377997590103915472686438946023062579789834544736391127621904260054519099433855473570741906349123108639052186647635636437166531292221741271653867807783664341026662847757146418760335210120077155245948181218767745230397108177870816504591227519519470743895703878199394213364542103340589845691262398739536970079143396696707518004550346315865862756436790554768532853125231665916822959474280951905475321720896474782569513951595454648807691450648994347121590721196389789310692778414579970290661239538252809237189398396203161139164416406541443950021410397433635088550250433906378102919429348863515869302884953994203896929184021872628755437037357478242471605865388924573422002860101147348018779976652680822261944728882438616648602900027918611743090155781129096624172983867224828459471186524635294973317536042481954444061032063192900323742383948535194660478783517580038291042710880488939232304448359900002046951976795381591992551233215210580983056345514398088324884234173866141621172421589556983484972151629131676248198773401662091344733869509373496603937833892405402239933002781071618069806927560726406379257006173232814098192628187050841108109531704186416657475228385385270194920318827478978557808042271922531445658148426160205922612318194203786277869590325128963051346328829058754680992484309837717404003693441997808274924211771388505634727094971815222842039915297253762141531249274948164713906504084346196644572179111994934017891689158544086091216142139674376150465060252693217320799012011476899829488508344177405199600676954880794787311214153104444446553484308449482009697467418564544766980064420425009698749565770966659934763830863354870580470604918062890753302904378817583846727283068313321844591368700340278229606594247891802282334212197243955989544223040002542647801135626825057628566085017403729730553757607672872592199068700936584142644247591802321362446918789140165786065401297278545202421488975751948032991460612583912884507778707248000210492534457568071503691059802017162118827757412629829678300167182984364199073318568792115305114862038304011150053652899725618569973344810665436102802260580892172625804086122108290581617858641908181375608808194592651645335209631459260454394727530314567485360942405419153868379901792545455650299076950049676187691458900601844972265563340496588411642295315520958145498390878277677767639828038716636896107463764950655533800880604138016636435940913929607612967834133372291948520216143346140610853279079323254639384001786613476801289255072310141820539940788246286192569230453278211525520767885767143629564270093387134092973702296534104261970126051132319664498421479338128128630186931562761797680756867069165232120623399198735238777637994592949232681672004194236751499968857255978326642169282437858673963692317242856014333668209360609040257558831253262817678281740462994358630343481264639240101303642758780509700795216123518515162356949588621221071859896684305943969603611725954714121891099417951248773497704108600430614163310355506164445764143214168247803398280389802981713168931263621878061777048260453427337705113279918350687978570517631719784112917583936552365539726918734944388525515242159461224253931372295027071634044214420465447832338476689092323556467562638030156440228817357563206212982146985637788461673183877291736822682133258334226594008130937442174890331827596140277584553098020399891508632745020876093858768224139458567398926701459851080624552727549670807703151146033643863772910885692328234095587499259157046183310629569689209140271817674918486771190297928724094513100664401068518387280521283299362829194115208042337084637476800427312523340867119876181394954223008325493964789752106495861959873508283442280194665900816435201643130502207274101886756287945554930689647139808275006250651524041693045845395515607213680769552313883185588171473535062872090453566608700371168642724800317437667308486620390505269055835237083173781925567225064697923236946007562034453124650986709175765982477791659099675897987339139104562445394503023714481732195542828083140150054895522618867642256385487296839372808191687814262220818504476519791252827509527588550080128735351791272385337547617711942229081674597949407578505553494196654583872308569263088207339538050927472843062076619031781536459109021658244113165991894462460737486836399954528425344599129594161467859961209997819786557626493312582057362547133027192067479817709963619916390162935670570035783336799687911293545424766255510778314472179308935186981900123320862391628151557598352094307328018688358900714416934770916566556496092889650555730034484891377339033544070634468353000351313995810863020908470189079361985880071805973920054734737304351267388814453484778030346024900908295659256403662534673584247091304774533228358009845894523178839080652621702054843961615306768395747818606334132645956972003030390600457255323457955416560402679220371118983954729216019334285737419740139554664696848899445244095940979118103348104998555908499416777735324032697699838024706240321755322789756541516265201796030449125189930796983032500687246215608248327014559512420071007387142307493262500001000465589206194867900255814090019797340504386711867560812018035672667099070525684499062553345919650452340415613504801304519730482504203855594425721590115930366622217444193186069047425453312742243560427419989413790308622464735536182162643393537531726303105871476424935138174711345722142879250048977678932943102980316978596685274710659556393919387931790555052505220855571279651913347907372044889124483831329721514258630238344271139987395088441125933397194600137201370866265697658911967222597612147450305647271260514215810455865505371351419973575030159461582768437477127820198761602324432111037474402784281337544539095685470700777501186366767954563410636546541622603742739191108901198331752687272574862712051155762306457934361272532432341444313898341159485220193008119005913682881035138533283819029768317095637503335760848182333650782598554273983984693420958842004921641413684106202197386684599969028189383690324924466602200551511624840550723130338297563639249769339396860824835166221266519744155451332360148566621487379711241261158100783789425207401309342467862180040816094586309609125414215241765745717172886794959901245823316431979991604817436994097674122405207140664115996599635039467838729545197964557770617295779229335635301823254468518741981347537113972610208972132052011666875391991720262156944396896590802426142717148667296314682122770341319612490465704432104519787069448332475542695300423432437625491107025937711653022400523659330205179206712367262005503552519749641298878996984665522361957911088863935096484840498458940020066029023294737711654737146331136754520034410567163737966004442196202193519871186646235778573771940431202586843450858175155722223970258257755782436277688778754064714286580862600279070563231203054619516701685432329052310928487326859591314183133618580539208731567124147282589428716481510864830201981781202017889011649486856781179226336232323493057264309900563247477838947460752082693324428743599398126887338924845431250886306948390238179264200743419504071218531724611645627347454518799649085147313331758518956991693577183817628014734999776844045187685259088362776565929242971636688286494749971570014121875607208864244538768196834442175403364388352697553850595390842039372108006470844317534989097233077507028346239076893945608275830666336604732066762700685269492061756650016684020388432960919106937782033920342858619333166516522950145872963172043131636616227913138477649360454793132628765505646405768827371512191141854281239140049466243534247818380687309228880531946866928155048923431716859269275886365935103061375426813622157310923283053487725977604928714067601793663489701932218169204080927609054050501846925341758451136257670163181819504414751346633716522922777374842682351309003847523018922682464498674299350521992026475187496569941991884064070907003293088447631859172874035912193162832956112908955369247995269071928734880992592720982783743108364275511741770608501423731943028693091174463834525337850447078949003790209757238520890497911598558162846534846700240333576118150485987533377460622691989588884901230297452755946257952584664013998137103719389042480634625601310221586770175784634746757698085095061166440347779331302221746502633024015271374244783663815578843051617930205818967807698530967883010202254500124765259583206178283394123637807807615234174108760467802313188441972334104578516912361093534423698526135618179830765383455990228627858319144993753239000898175253875263134337776570027112562600108303653713943772118831265766462231158100529291862486783169847576347955139210067138778589435200972302182549038193737069045961701445579723671949212336730410309030629886429436513152800495831466001715780371663722767664419137111751925082270211178104972283955524549950866999043887776001259204677236238764935114012212531116241781015485586314497871070496904473099021114538184354545325132534985306309939630028536404602423808388785110624082054579484152711016051269328542174947523528164974828907769343833985063991387959170454289904656090983952034832693798386728769981372143894858309722348501344685861890327206909915856623263841620192520450674158200002782425643018190568802321970256555700644313760121785079683366998481728279670740093218301976098039434641514112466377261599992629098620120111901043572999197867099341042580591005530730275060759247020407467924608730993871236996139119200655344605818765844837230584056893529153004839175589145931948284754473782381000754940249576086972560484299943799977469258577691234480903553053034479365296711784364619668805129204468015819840204095934952364789368060153202736095240825111009029157205524331714054945102968509332402336386611309408684061887924935207305171104671111083665736383483375617183712232130027962564131800283463817010088837806200090420161106256210074203554435646623356676149216578105932379607935686151374048183103093138938442917307662688874472060302339794097675882684549723433638232215186442403711047640812871613478435411077989508357954034480420467341576477046940690160758255306661176803742585538922290934351619678075158519031646059110471164731941142312047404787059396895426134929043483122839295522281519225236268936383236438413131572770952656325764724237874013001826478801554063273402216080554037288239037532841595975898042041828296245689581579481239218452896626697584982844176106500895503543226547632928544163452487460480438267955997471724031167862087122131237474760630272121965021417090041932275253899473725018716627781421281411169314552500854756616472300577771265235724484959535042474154559026031401563722229818570831867563983326002237242459833502032359345297696173637856353177619679095653216429173231556076806027448666217819037271773553651532170149362688218974288886998576769073757391403198942298001859385623319246035355312696029638620215425901990819505214072573019680763328750803435689438237756505533791636745756367329505133047441769432846945111006339484875272906010560091286705428171079474881102686152897184183009229375412176416478836852921563490411464830474646967356638584634572640581299457256823968999041974855130576553796062628737561274102320810339274722499972458732527327184181377612954766184513804831177845054789776700422620213339472408567654948552404068767031929853830152487093367166315652855862771729131538150970587261804454637868216826110429614763508233687358205065295263599947095322870855268465050970226499865530362556696908238414349581107274033921422098610665719740649937020682249056538860641203657889152673738726684539117029260098835063367476284847369455471215447275788482861749528101539539264764549006648905338456585780600878519150196142892085451553559651783730306501771747306417078359045140709512516718603266626477515665343173997162620799591860035953452348044763316301557848442126942201548560444638953290052972595978352657488158287838318458878628941416305564071724166922901631447494048712279954330935379691544448194378572128324542488455237555196951586922253956998021931949417333457929737600558809989860839698969474757673268231723964053379223632617185926959464914166276560207201416394029430820368837332104243885645493706839112785188832312380571886310565074185757722921372931260456685452961475321544589379845061116871808665395204217888027714202927849056971789351329608948291768893405654643335360851234225177832306755377836881989354812693048434047077334078681769197692063385802090505837674294094351446516870918341640968471841705832888043675295697229661644496968022189111337477923643064094427177546620461530042949809466557987826213793876334468219152213519366122678002316168874968577882253971194993438793817881445608464345085373478249384185842546770703505827850901386040386865511679812133132175351570076067711972571820502584607114279861207861076872817012957237827413154931360214714765899876979608518626285293494521896642199784076917296098224425313402750247334201960469070288062024097686256045014071539150926596909300508195019648403229981628687129793949304162959186157003334497364790448865351900014845100632924573855838110247853009125149406602417455027320780121572710285582406079913040803595823245546573383777288035289288759164596967277616251935812242516454378488850637272085197543589596614080294587516180309379107617852955066486070077880473939415447499476613640693619073032453913314617591605924076155868038780501102461403648093928075505297442240840378065657162724525276896168844923300585667820554435479399516898930025864444129476284059454163320286801542897778479946515444159675121880300361119220077148462284744616383539353401753839135416051755044679977034522735413312179465700105890367404386348841138794704794884653459718387867926087560614840754597081542771722026751695231685777398811169890590189913034301819653533462844142794467409936032658275804336286745875030654840568077202209513370775005772085288841009619268986304413835609690629193111519353147013128104383739298250477320119679738358271269929036626727122945271320952902748259886465029573156553375757857994275459858640368531172289832486081722097493931862266682576097448081359169182439988735279652550301134142749353825423907731556595121784385344432966582256257688986982243873316988934252380034397729906104455839846197857341095022447658431262585946342047043239559996365934670466749271172011182529208460960157738561861057594034973330751930860611105510646043020479963360966297953225356225399688014883706375784427338981206013685413599089255326291042114513517974275310867059608004926788254745142091882864404281097203617795435078612846021318158717876395897081292478465001577968164223544352968491698461928142779453330428364659950462980890995849188374573033136762153660105631952050144928904593550366761862337220915095053368922079094097197325888089122963257139276732609867726835073580928879653399261550750776688889492856207769469240651765736803462307564066858338248338702796453049057464022566792242280416046128576312710522146686081052191077487369371591144686021157527835252705391998321004621182095396830004795521993284623573809687221102153809355394965898515610818134144627650684742349139698114893645437910519039382795737402088956173509145549780764520556340125152929605812871505474408827307384452671129959646390951270914582153993505055118774741200205493684152100821289888375153607511619886413812494226488855892146054606153555019363953131279313257984680842881496890956146259082623561847061195896624063855003722642665564911210623241870271376848034090372319883561704151586763007143249247485040602819598095148035399817543422674475505091514043440011778362782490253695712836934391753415762754728840573384704585191112480640222578618302047934557570550351585785571918685951383052420572792369601956690461975876157948449184580085661003649238048405561955316066744816434427544117111476881752318382867234138528658897343191641870489932856297653576120061621901223838990692017333460884432618467934583891363031430264945715394431107099573502454775064007082448359306332953528437100987974598212288822501111608939010818829223608865208337461733502285766755363826105983936543440730308405935855202121089570556861563853507143686063213362901534260054978674273663653938869251024892029147370656710735153205650312355131524782050148633150814583773515188418473658255310232993942549083993654032077252505727780687101964919625964271260277004762654268620145334344536562654800631572912113116393321537437975260694743886522730437263864955208524369565864998812061554148335624992285915888660386053964595836852158948902324015251487953738201477113109125224904830091974039020259840824458982684914323951307629097797965185823382181216585915480610721485699153290881415938050018549274843189436402994014187300697145505568146005822520804334212845960651793855783790211806129914303485529617385138132029298739550075569062872269752416313699817520692810119697879738887087857941852878382067039668887064008334593450980625667338533159121018926199658961779677146558387607409242874052892972688323811541929512366404169291092560651679306163068229409621304165957975711732009483736997400664421778062396776030673273034068643790343952701495257907660453756085832166243204341148568219513739448004977593781213396514391404689761650715237307680597402664504159609113879620398846928596284039709731882248227753787915918031568405220106732456304782547837974189010057123559111185287434094171933477058696463110313566759358775587275720879559141012616424109271444924184916745210947248545789527499354446647982869772850758631724006880771486432328071396593440650611373096703875141842077204771780696294890368507793155114336399570592127616924116357187459231147408920899035770084957275366442085515554833110012864072443423199135724706249432110002927419883579071404139254769040380406628103818005911072653241057689234501272968249720617514970378969149887302820457910149041368208126257943819333428651060738119856207169413239188056447562907406988857264127796808657793635492419670878999926949132315432858938415789466288861598160797266241011289487867911846371036328500110226918120451371449569969177677224684535811476977211826608761211318796171450480354823448517828796152539479887442780734973169189152875870272972569478757382708366763558490825762455315718955552571700884078184231787161310818605356354516664145352718672544864577780062450449092794931875887572222465440080383252161135334650678682829673306601863235230658353310949487408186272706665349030243089054837040553026144910931409091829569765164729160507796800756393602690799598175216738539065331312685365958230735676449986158006201380233972628144348272266004394539387038998667601805767906636789935410286215028718583343219037954589828553208053352825905916710877960409707806029709694437163363353873398910670455906824677324445660038107899271307960877666746462236694090638929866900223592414051038113814261860776343197866782658888290258876186337807133668154596898650927865744313577419823260936982834247362740194755135155489184837785580092963913505553034867924505754217999068206939793333773354556568383934590235611685005381449308128823197734922882696448448909158962410968805181649988325727712753322460770769503213593466258030061933840327525854876824469351728459231471708375369418805513379582943476902379938502257383169755289168150932140077899189373376634856834759722970493398929488838536734485362604947064965174804670736559281851417995184822950924070939008232880184603873371402991186499502897577066582687149391150214188117482650323304085517612436140487388755919653940431361891821542275027185009867104745166291640888027995466427409764219549336518240995893254352365863375027091286725186804290370943733402757294612610855678981700363584747550886417327828047848658058657490917276673257510689263854343616904708824874246033292217241245067664306140611556415880354827841866499615069143209492577115126994356343341845459587219627032328308468020064833002344040126406011675801741338061852763327441278692594293390165644102125213179009052334550672724814108314359057305162336532983090871878320513881179506238794538645661283957029766089404133618107562248696910494225969977616953735249875965079883714912527125285842775935986995103268408042816778517658531685122227506354478070619214668625155290712759285428951910504015601533781777603293686704236942626397303241617080461328796410662829258257804937033497193528964861601487970836523262745252381372083908346143759312862861205555374938784778292862737881013708195904117535174796662747685877690012692037664483922757924170497985266150958410450891285106683324942303989177222046101073606842074999201593401125743351845415008719872329905690704621493650455632865984361596117901724959165206524495153934430796766422631102400787781549499439749042003422351521280819405098670372264570691166240575517253764907501875714634816366676928565462780096962920471034267482547611416222171322522962278519890635891534762159528114522678157218319529962838597576046925244020445966654395871630574657020512593934824640384520489040922903485777370266604836624300141135256539509095104724619420885101265654040520675964667300776615019522800856864740062265237536892027747025857920233734167466458428859666770050346503237736617618150105915960851784639340381311880882418963657292230394164195871934675082348698746360145947744097097451318574225615637534187727821250517317581683399379451548267719667292383844403810166647381581154265352829887596115036136160307821042204015274943332377226289018954937104731754866289697382719672717027115008548942398612890007548470512737771436118517846143726714167056754901418035785597541610015657955124037617863590469897516688514589812693814250840361721356872750609785148114475313836659683639941836292555383876015611572880707180652828687807971008570125742941589792037610390107104872549685552141125370029805887684921656980067444779326636610566554769341867674322646161301133512896430502003174037496083288963241656897884650040151692577977899325052373641986166375172709277495467703167475693439364750003407644376172100219961145563852368228243673904856567645579324562396918601347884498246817767409329438525595205034935972835889108357342981971364233901766550412329906143269775754400900249777460038959609946362002946943852319453807575887413360231749167009312399086152431009319194613039817511987861017611281257829371905572451136749341261076262841037963370667540371476080463443128840431666357625436779926337027758551333430826945072609445899197963930604148397182617652747291486257476461702682261571346249873750247716208412557120872555406798288932219637301514050627702118967227128526174884491478604461704487290335614458912966683847166898628837572249101763356867825631785209217990977012084642390362041005385980903263244879559606815484313522523839115310967325216107203938831242893496371141615363421865663454460920165102884750935733915240268325764019663453102614373806261755384399300278275705920764285912716491590911761926351300301244447740275970059940755346439721508197906769171691506699814679421177353871692408375532204478168471243219862688823743433387351157273761301736176101563520980314345714020921576450172261890418375041723670967670626257801059347852674553285833734501922289252455440097263810018391462288616344433069515616151093143684343082897265393123652861858865969554431624793070116490119996104635382912853539110743413529841380629046300308624632710946878997834163957379537181213518600391020181585111576414901113348376603054951497187288788435406106281465087510889277726030797400177011249655922910219886758905749888297527395739910441960545829074513049727638373873954660736471343891712131838303477578101685396047949716732475164488968388713117613581793538930172500274800581703867432684979015174505900177262525870636245539761919671614568352699327450940193238244388948718384717920404451846610149640427651361681992140648034772186722858255733767802862953972261849751964667062532692544462555147163212238086574411144118933313042617955829597451986401244748575946399047926269449654784151723148396997750261090195229792364195891198185332410565487835790346890405255845924540137373251978777861915257959625406507204420112734779561781241941454722659715317237341214423113379067850760736887115491534124577676893595396198428399730323600917409581335810466372816002807844730955407404864477482644057765732662097932663560737140918815451752488507480940416580540421566404384569807333360488562448663370752112282950225799580601362465101847112264454731164387211907701879285972708619779252633034017538542614025185852167126673707398161510556748035854553953380787114262295806397662256923208600393015977672832754774212799325879063366489494898700107180827937141152081619438737192304860938523979635655191820948300590640774618285515056798067673822869012271780956865256345250548581044102338010350891567129716725645458230550515456693225712742211201281972623535787991243419442602340983524141888853649393222955806856617709332592553966136904902195085606305442017188799246754518694264680721078412004756088877880989567039064057058419303981007246416536342160730091584979186533431532869745724415173623444884961154567080919772997796821846033781438105213686051528009015218856139138013204510824016692648703803215007751017748959919891620057038283625651934449810314118122459331437386173719097804473937732358262727607348632808814129873894194523836999187606291332427429554192154459853801031374987912128230438026736835987901254886860544214257427753057054550703324327842423871684260647366262506464758115300013159024881803492752943101442068076656352060614029165305902930164487952668599876760600272904803754147200279306709616278365322448040382084123389150971637404214373201435056973062735409077996476415934693267690535944253408089040060368547467925940401804837671351942819256145040313620421893290231192563135825600883821168301053236242865512242905403607243148959208219076028991907199946149910504342550466160479023958106328265394813639676137695121399196672197044641685434606057528067516515028230794834776358998426211493853941770329836616040727185695278459561729358148984154836958595155426324498796327233014563917765925539493422170249169185008936849333173260731355015045972193328654565690195371340185242740542267590733334084334181245459169351265395244753614984464282160444056024952187825875490380571468176559839002738881592275000011912285526117292229200827716170793406282271169967874643044946485387203386716940392716312326848244119685694199928172945389092115488687116026942592072416308994093792111152939824442941336836892068196238101342786780839443596774343821313375780841361815516747257302570161361520064228580591988322522322430069422992260170987243997578900178603573311020121840553250978817744293030163585307100914961325920489507021740642809652188100501771121317811420879049687065476466551138335185996660096531246074585716727537142735996650408600819899074512670605530080497425900007449799278381291560619682339361173846115465944393946593068430114537947043509141053286062937630385914070277578575140121244023023144924841686461344468048827921631614230749453184914241790768222113256277264693456836445362433378194420102671760277810832424906476876121806044505883669921438726978735728580881291309301732297581423506336435098338520829429604953782389639914611206892071341771835113274981216193954243243810222001228150474963148866676242382197396586566313672908410414938349857753278742018879295702235488857091873775595906408245163100283898704755357553753240792499498341292533999754444163959758367126372162395247219573986967986714112837521172417378979847845363342029160543406669902268104731184158854501346453709088653856570099024442742967095419000897745080664350975393195338547542191744061842388439093122551064352466097962668256939641241056257942952084732082248064441083279402196892452549691791439635105250413234717313089943212769548056552610085729739790302734816314785853993137815225957485954278687193630081215037417517017922601971474128595714561280577316409429012649967382773376597975116181533233765912940018440426247150375603193394859394571471723443202000787854963495510617375738041317221814311038416238391903877227634676209547470616789572319257264602598010467308403661038437790364265860709258896498515646701505560485690709803341400483125611947004276401186773393310224069268023776989284492259307411766813076418818122784508433472391561160458067353408734545635787857614828108476270529035157812092985287163292566379193011023130711001903285660764956161363562423588263038237806134030558143501935507611560892863506374956356250477357220834823498027488681503181634375476127239517627689454909861590353743454604851502950821340148909142269465191244937251255340811568381334674028091199414612262755588304600001203110279906640749597908020344474642858687964335460230646300337885088062875787676885192257256379245043829353180754551703885724598345392900010788968180508269092776078838636965206905079168698175914161568333739243837991539355504394092402202317005411342277875649865937271522122062302319224748144522537093725306124189066962840257083402640039589631036982331593461283970040539134467604500369627485861084031458424250394484904071968754110759980460250331664371842638955867292417174251618399729740501684040811949222031963469526128123684488232317844261032477877257561153982103878221904507603828500839204952418430664660647472129753729934577128913938002308992153824117059217508841374828261056687944749443131404566423097606935749151660085033397959065041126958670114235972845171424696994305162961937235988305018355915746780629188625024803432005896403806090358037286003217676302288193090121648831950028419968448331414378568354890197214960886323293376580143409400276720850223816818397797720138429380123390966199098936301834890742313982093764881553354893810699771881117862816290996513264265170650791118863886934314161420526788519589240096731460246094790121513981861848360245486769883396288945251681667573826044755241241659513218595181401405730834480255841235869511509106047807172506111070897225039071804642141019292499525579853150653487892722897851724894658148171005087513338948901861822285474489798845168637471787604135069047337072607426376679034204239575211251251532114383332575536368652746549348175517490706045401157327178310631242718010862286808979627232967002893749596870558855112061824074184844568463510394934212451751610910287761600528957340559401605526553932339088477823834946830279588998606419000093763386296363019494457324234923169940732907532911181133960772474683053549973134692183444020263895213488752731880860539923435777925576230826483977064440029755340650507411775568252419556119605667461596459637541414512763184190741614877943131969539110547419718165677332142602509780279599701931753924737058307298090968120540507531587762292919937728691969047109482886719808076999016208402085382080964070714351731482372706132472200432983278858613029974834969273738402177718834449700134389742546219933490126720026859805537735421525764091176744747955321170881483306189661750137874561130234688154887595644133542624394735203471275079422333976653274389875202743021353401652889495033129754675914258898598254069194814547433926425157875979399319761634750260407115957217731218072320859367648354815542514882597647797721142781770410232042171961685198316143868827718913050762369774078265283706677174260188378003972849860502070888118161557115535392615262319588523220329912630353857803593231814204115955694640762205131988771503795097200946225231748867533619577056753478246087910352017031740259765367455010593479671498826910509142998325843455197743737942256013355223878252899388465080883322567722855226722056498988866175085307971345496253474283609569423198211377172385585351362551210714499617525528467876731060772063513464675272222151928333601097222935056962256875488118080718591640888056968505483129412482388676144358005646649286809296003475990799058535203835834720836386126712817581685806256868187708095871407853471786670936049717887247494800020645166679753664132014037932687602747020291432519905985592560829612996915540908398633611095328904236823860761915800170205164160761533625335821048632096962874070636668577694241836222029144954596480559295409357212173681906497020821667479445680329099389750435633061792506683167221401945889503490509133402186358831626403386075410710077592335599528674577542672265972158163764423001267467518247397402799550581147866790315557827531950015917988787466126891251957603458255540187218225532548218441715902991490109136863151564143836298791377426389461173251437750659124803024834144209317908549284338266549701660319160226357417874627432298592153861227557263514775405103086214404314865325657712130582350330285806897059466208167500730954734725922946281073933454662333508243650651783406773517816965638833505948067568576986845972564856212156760248562013869829809845829163620681378702315806995174252674547461728732564194663277284932756528354926994054096855895166208949866688494262828754738488500481242140927691117471068340877278402708811504051516896999069924892527484045670239940759455295141618114467108533809171353507863861685824560559166848641286032618362157249217567039925943209907060648360004091317366389597288246143144336962014336252016742015309967416273348452208672074422772165659629832920907876923030613415926249792839932877005642306099132970696187320338088159466850149212526719831557379985438551120866739469283588581803061858000046512727027045943125373736628471973495364170598146586332986513174488909697495176583352132171750657147498826880485910416343957387674800311929153004325787529610483895001952634045662672888967772754052553471770817830530024991199344760869754309212302976058910666755513288425966319096389467503763943452758092118838211570204245263792818688732415519317848436159754993992625746834900675568174090140936058130877982115658115691282802074604002991978990590121651101878674643980563953160857101677966315383720210378484451142148319409873336861254705434584384792866988677653157590618111463562042045525790615442402064361125498984492459219787374010273186421236228444913936655258343366661596169904659887264567399305330344016727874482316041926774110457670650852005659162078835342044563983669891197954309431081534077805336944407541334281509195886399959392271922209526578196279363549246533775909095022694855893806768533318703856730879252885293542201616655919698861508848675354097710337891852771505493532282313211814973244878749213893640024869979909392500862755193046726526817209128905053931976554200409469071642551710071844433607572010345437699087366017301912271780298358501777221680317260074382433306908751060909808590456875113980667221766678345607278837716775078549884147371077742072168752583687580168845753684187974935784483318399877830816518461564564923190962761355525203891014474874321265971956861135457991648256970404159199582254491112779019888936469530017403384882246757703946081281403502403174725919126963901737839377897224674599721732016485596772935273942276981355510403038809216516645423576140751519845636824199033091158679887240992332289620187428728966052577222964875816186612507947295344923504087291922458665681080780548539305754126985543086909103387012648471835586095477416660164439787806561608035714908471772547629892858636636471227652116556459950472638702946982518691140654336795475597126448967990641383762175612159526376618207796311501128478972992375224161015869014919532380620607659863975426387491687886411031801624248854775536887514378830389897438396850646093524890810934153489992131173582741152739076123100260156653137550277202480448316192760860883459784009876192664076596785205480060455668757790134685415872054025400328358557381151751882215235618594282911133746375126269614910844079538649426621470973553199991398934668390671992267240373601240792393638761917967279375573668558768910256072248314923874279349146821222365412530487332229007642948371144400304041267121570490157920237452286587634470122676189320105458690951405828745880696579775147715017788135818999164411192413607377839755468707350399070727871253578211344022443945513343846848706559116514374933855825715616005311976434507092200077694572841509314786360148468163530079260770857422119285407329078414637081028455016525385897306791037642573795270147967177399451432634125660360732911102502232834130354344745717754355084481138415362126894628602611143268121012617872383668038560095120877696963163593831072280705289724109063127604379600488189978942260559103056115112728931858633919413039146912504385359531809941615554866731759659861925035121391610222760819009582144256439295610092867840962724719040219431864016630493972864254671142457856392576071412694776215325514956192796417035062193837167765248056604613967729183572776264369922085578536055285209867951897288638035650506104049829561654612272734734962285490786695673376045023968415419560625535265694260536268850170236754238281613892712044124138422494751861814050471950339704768641244601312375334947497285590832531095027736831108365790198861140692906258330214851751228684198694361116285990592735381935461207138130424869162075110815515721929499981397371930253007465114770387444953073334899244390329777358571599394524079526563038671531395074788334872626133096934680870344805482075403680798581226878077527610815463716529581982524491591721481565419340839763181741653119304308789087750969659957052369942240884408368383450939011505797341010840945708837201785308601770424047881644906321980764940105884074618677225846371001918026220639054615391846859116953335255711123348145469193364269425283383010012594942461297398513788798837634817716827862500050480599529146425442542146814644245586772424223434239859684713791621317448637734741388821722258777670543926772966180564227592277376374683738543109392517481288096778643244615861105842576892823171874637078360612613152238545792119126782646357340344840533432127311371879792537254678479677885628708255743059755565136909025800032627103808528130878812003951951778352656512721054507966774061607872918262999515217552501614241570869839192836060312135883061660419872092009869645244983445401871663948365549137648755082930627145033113066146622816459755119125859025374700003194460228135516340551599574950053725726898456130760897107901372101195391172802859250017101402354801760927398728655479332584877906260514187135473490005687081358621081698792095936473908867441068912528573420198084694414626822529884657134983558330742063707526553407360820127550226763572747886711388274944460849430745549165081138352146530822423350635317975856791247619789679406651931142703642486167531346211689660036265727048351786687701627832349814263526525351249138306237290501639879752538540726906892431775727063647124183849216583542461996123771956445112757153263903604668112437556969600027416238098035762597784927524357500718584169097061717629533001948805603990278561242691455133639358900241571010513594247070093825447800634534846980413941309356902739567706058871887543060209184557895427299558176246519699607630580423398937066686213562205049866390445274652872226747396318835512495426344127050328524588149947146283085383541134093893956205483502755444703086622845127746012143500627141029885162720867811718363488483347617782625524155183187094785027362458411646122521941523456221990109089724891442973073275231151988246998755624541789275525779249736990987631250593486414998637544424972170722249347627401507822251279453898958533628677746108446384266235212113848883305849843958422033413680343313507683983163601338070051795312927292639106990227174911324444307612831876889830237143184984584896788120566832233378147434373760684492574003983701707447452042459227633927480031485511849671796477665439957413035460850511446928353822374920600222968115319132513472338176454527284183164126923695561152535052363008214902306139861157126461264562227554069067170867860077081513670315396367954323473370187519446761995223919636507556242812097240667464591562543137290904971225127844185991281122173786273464410531625000685229827208939017922480253354255633030012414596784052318627950757953915475594213045941703191697791226072318839639433593396101076432326712770385578173889815153391392846627310740610000680181689640968170272963023164042817140217923396430718519154224380144664642341991070976590829087353914860623051400311391948766584387732335228679585590721052602770439175824612858435566910052815895843921691426734244398181196538285487240468578570314840247392159444110715672109393261888816490694832982233934750737322595116731006225131424403129989123188860405499835644298098627116250891295020939130416096167373605850564062102046108295969029218030584273871729962406676815050494448803324516707180279567315827071538205290975260734965016951467478495712652820789164791896671715849961225873652914650227094249510580304484164132232468514565366458478456464342328523365268439976510786702648590673204134288892298887881086309130735533747274731126858532194243855815479232534367777931891006820427057908139555482183238346949473276620147877301918800029997752999487873039830770127888514752167983346070973193356937914456516061904771498727337656967387069709799667025696494340690952569635383805012475398661921779082220163293867457017043376802892134368295864229092212148516397018909417633379548450386007555051872137026824024097789420566022410948429403272042003066198961907188358087793425542733519669527581889815870765029996008469963524590286386269160806240843368918969789427198236642722734538056708098654656167037868056076654060631097724346474342177964892803655195284166842206261570829998816796889580023385790471340972824499105496788496441314577561967262558636101155810534996346774352795328461286591813294990636612035942033408174486252103052358093193147930466105391096643111569052333525483248637022338138768399094844072319055884100409563575873172503471970801681511198094107363024034901780965124082518396063876097053210732003823964882437271846929423051771574812508645381383809230836769171983944633500832660378571818163659654858028999238931175063949657527554405934109456959373667045449109339361369190949460490507466027050125507363051768976626182941257195080550640723082229357353656502521943314075969209207529481373733838909434331754869949941312362383008132161643801846283331600649181943652620759180305850774722759748240669021948577869230760394442094404072105729239739935872122658806477453909696176466127647584863830402706140667546789250685218776330189926413103082597829628527526873017367552750514864796750747256540901787625421195573783281176541479100452487056171941446810198495582880572025537911576459787777202307873618392015199817072334488058500961997229287170978924715592504498832994279238609310988866136261563214122816338439069675280565432149376032688650473978394977828016720878575072961518947193662264037181641885934932799635178036435849147322765553117433407639091398032299082082913702311247284900056436300202653244688679747813937677547711561775156724886826183702641670755730603452157948092361982183925598056369674655947039724624131931844155671054345533137457221052521599781705250018886164648707117699471399880704246740867235589673703841423456940350668623971447719113902771048171475098668305740512316386426884100916173261272126655131525550247824653821881798424096382213082560483167386341794922058354288635110853509045867679119153620339929072877594717829352797588229958304064702058671312889496769429036169228094615020806246230649564973099737637802015267455706868229980467326389893592327609204289870212673858946095905023418522370973881393556123120014637059273637950307338635802528480966973366055710115565446717049488597158547686796256355004481205252801532646837623113635925607473092293064721606905527877535425028332332226678612401690092006597617971960620869324981972181533917007079944295505669020517167255026096160807710004569824666193952679830507780408983066835777569533461240948797171691036111904407035520123666774790015397788519040112578176108282794523912036199724977686354922614000051662643311252568666139743777626183313998556885817293274196487155274681519666175568393444670217723601636152647032686536214546922063728115484792538636192981546272878698105707143510296687234833972236977837964784478709864800109634875514937164975445687698955781173367795509142730262852544819615313730042647234775620693408682723243534061259154762034761674557337346725908580859878056903234489142564682699272062866459547729688898852192360020341106560427769856907088601100273165291638621930453595833523977652865376314743135747731180864751914250054470880697810883101679082627613787999468285438683619093471180636526353986352170469622704077898414763457872409455378629109889176559105982228214421935547432088756702084552167021635677692529083475717470688140872660242178986323929369455351966192348324100583772356883040880413268348687204399240800482552169835378145245078958537181037848641181663501373625707439363615957252815645870110512695802218168102103810115619432552625554229858886908040791697131944745001618635457024274800670267330678127062863892975869297108660321603782422296938620094166005344041774766130495188778466673887625005570552552449362121244653853927966054771108054386188759061841149192866066814203329323853714797131481697645408364750716135520617910803524033592812390322859752321845978639603809807768807857336244187271288955794428731765266930757863517015579619703161956906975612104760636461167408784283103310684863685239486737563952012373246342593840803590412346474384520079351398451557028410593811758457989279348740321702554115885687244124801043892967220896685890003771898539872554586154068088898085951724003837780292754816099955982304611809612092552502311538762865953842003649921911970956780528059259061497105642795338688561403901373672999276636208289450205015625157759842489612568767420066940435638807777367672201793552178797073880763699429048949331989971868703846844684205977358206158268687768354227032626078451439407648903995754184230997714702707354037040612009872276402574891082731721934190344430482990792254031765471060091043319555762721591874545366809142586022242349930252422577647299070010633122255081483812653786406974879298639541288315648214517563940721020876661703801840601027104062792675374067155230666837596463066730060544290188809227859205919412794455184148869261207263312023742329721503773832857138570082586326425247804531556271591145292490107461024565992338679310895740616596890952251310507600014587994551091991907160605881652598072182240612956789475032906236858667753000394734578727534018734406214550997837065858781180385748168801131975438883651684272960095712902649037677865714484382903720245687678049374770839594514616821688188747718345511513178892906306917308430864113399432739609916451139750609872964196954567692971680959574399694879503015065177913048350482932437596083780746468910019333096888334349936033417760386923968789651566957228628368286637733175682098173903945940491453301450916032596240445030663829283791047391441508605627589777156034362024136532036443004953100601641710664407094961002743207478346157654212926409346712085013354641695555175872626163977784394776830899677481649019255044101071220382833269221887187571450042741256401529753066918902675390998001465341971924251712946326128539167906063420144129917643782919802832472251440347254562860763137285924615968258250356985550667216761619188148140373042550628382999255130544893647940173858135982918277871735304903490810927191181434594606525676744844723633735647135201019505034687331720531436729293429314456981255489822133743278167916493273912436272335565640097064792865509989493050376843262858844254833858098060669331795015406240461426319362531953375900965273321956810277837646591308273094980663936977144139144868300773805621698125324255189112847008082034829495150282938746941674180507620873574604821247294626432134659682448129913837311816140763327197902805923607698396845583825493031563512365602947583912981649329986512392442102182420033311674555389869936339506413677045257665708416749655248227696344442795503385390886052487920949437859880271238381801425630540647117742106722625783238633688877875052172180984032817445561250602646420954472594887782403969390542056018432785067184430089242392363932650552332753267316664450361298621899195289385429294398416561954680600292495958056631379456728002779532897048057925729564662902192493580788685260605253918966756210887644714426657220815374943195216196273880613327149629444175105491099438627787927712903839269398473008620063906802727534316085351171243510162100371151252706409525056634191894816085217591595691374905022326858472267692398186252287693581884188365786875508404977010275638248701691424198834998399686602836063503494202264232778136767010348571038431390565119255542404198373962314652390607237218727052242046550808147078690600569016414017946534662223475880048936728372452757544796513969878965760955317692451778288742981846969932505889717248282794683878001997590828059865839237532617851419833529102250434424060393042392723921492182141838923358323391730863241403926838960393238222116569950387569605245895380887215404269644858432807388107704112900737957064834581880743396051719447813917072295125178376663798451614992009524143050311623815603545342155420059186770746004074178257039452593319135389416299926182871895657291118525549685102420811508807466541684875404897497405006794313219025643632381562472203206513241856233567228996863287583221385216219599897722403667946881588093951449603448327155321224584575745338880784672533588932520544745044441695860873335049500358536885061151966689956567427505572258761218472105357231830130321725906358185616365439298442807966396927279909365706500824374535754362978784588835659796899433013362826591666344338300134025511871933807719536439966280664511021590584530598937842066495917911735469357736754285675727813779376373612035297023101120687613848833172353871058566983621172026748358659701740039770716741523588645977479711007813967161002032294604273716743212951669928596387601285460279895076539272588445999604640779457423924887478363710284187504404236883083712450453093105923799186127493453164919505916931807911660853923768360653623658671220395107796195204296433834321178361398566564570694864998547135739473060707317472838059374459935186399399314166910840153445224155035613084353483588513605573499658296375750586981134496085366857527784085458744340399715129673003489918606612242181300139579983204277888826311107870943674963588635240248303915137549928793858799395007635093709875487137354448123052379702254052705512682101062697182236211531429612241958595335814975188379396289626366358535662918766255423545008050149543743534175909827968082728479427217166745318017260236595959024122560099107140464359977509195582948404694068284621683020904916242118614490132207785437915303830164220232207821527183234527424267508822629334324227533132673722228166137435181672040730488490492166921574396158747297416204323847605768388753952253618517682560359201434349188779369748503353421118136875796336009616230623764786868641197917795508942214224074494549462194227762567119355689313095480110629264084127306155007762312993480342214787854974126369515898923199313691301804221409335308900314812556605113709268486719649256620775717645022594254323081306906114669685584801884514494716121057572967627535424160149975967849277549657698756511236541548675151377524994993169345230857683799085650063883519160052643848856152652975527358157933938517705109750731743818202337272844113753301755505782375740823402979360455042654808599074875187279494613527116693244685152238380364339832152504475381119070297300168956364859963080885906306307340671101126599186023678652961300397436445599437668032943677473759701015712021343603561747562963698109781757043193371925681926015266113127167855131637822494896519095578530232155823209693740877203089018061019788212135300573199754076061532138754855499582568294499058558392995046716060912672799376834348438302411477701967634676191147724722790708493782729983795520519084849429313687700587482209785524866977889634723909147138587036321821843369584853968445741149860896180638053665870677404005950525280891101028705674415145121845549837708459489577185319481103115809152569912710202301992523247418597333118981415351157462470206778291080610478125883795966102646084338503039341802028561112494596516766441080553335943381067906753183874961183574711877940548422581543217660712949544179340870296231138694379570708978872179735229201332605089051690482106833303207390538883197265411726134953052199573608434160663655017800795901640146636004031319736877672305669258818279144120915181403447926487281474616676061493337528672561056306553256980376761471146705776269596512648999958680215646574571067328793317331028318576435665540845308727435759271514718795466273872650287724542265579840349191522777945172200155976961606622041223500925367556684877642624495697256826670239113606079593980238773764284266375117789080223769094277176751942452135790310881338012706077579775558007765934685758140160827677562975901744510159762614644133572241736113509375882143441296154196687889587084286402981907365269915670705104550541462481901254164415866584960129843057152289625689767584618754692368552520189864833407479457513372635590727251456002211437070557312872919450706048308638756502252345021534471208182201909453475471850950785810826005738585919349375434132373392381812598810516010164559998474525562866396463105576315553899766919633968300629136066352272510499516515950122792732762846007259105925635742608492842951493864304144773815200686727175182304670777272878525775375562043132900950853609727784473798352633045324836342609591304778665867168487429201462561850056710868699321689384756496235452057423291999868123047812330667537350063062729074969304436338415670939827376821596092232609016670053324915242764651948607310033622513814684204972950410383169460398407828145938757090897847260271822857269241120239283347319689358727639557849285071461389707556561803161575068843832566207518064404357063417134515015046490858811323289850295499813673970617650086471589860906086234559098444118764310319150607441862245221286435895599621591474350865136868701896798137865535394735039147121100746647521441161334636821857608835163750661011658896603395443549284943403642741323633681282236767174921338002718484552993827252434526509529470602027027206220673314969381686946651518905490725693865787338621360001919100345299974448494854745804790286455330320332146752291898671395299411979785892090275882759033518122703221054905637166248516587064696182834343713450176759448109303181661237313872716713443171949049642960921124583141693214928009253056725931806745081990735577836127905849552612431874926440535487319810185187956041238443825841124015712854844739162283651309005340595186873840339149358346423900946499755284832254524739761833913053636232701468732471590668848122933367730838438680917819317318654658381610641841453246662965823983609592510116195906739461444980917679910901904916454953547189833981059495350609893411848968230119333497947320903705070044198221204494894748876966335165362505500007599262796539828856557884563141921422829097697507322793115397634244627275300650390891257163153626806799044370130242859652540684663971041367921803505113993851201657213119230360493460482524751661332566705313528499024180919934346718173948752063115559194615659166163656357234029602097715847493082231972983253803823324732790757531334716039171944553424078537995336352543328491453857622774442111042453729903576958021813093276213944964557754117759291929489180255325316506901091765341767236032848801901497881146181920690227573438782499654508445827488740411250803666752898597385611892341266289530973936483073321964928584079102763875990946394400759910458309899187892669349071290024226215774069961715437732086925020258725819177344183156296354913674945002294607008462631820616878552087076977109743995918761851681204549586843644147706111284160179813240376543233039094405391188514657569883885766461651225079642418661610578444890072969058074080741355289797935291286009182671869383262756055954163184562757648335125640772059679731360254744764800464478988537978736838810672945955763884591776740836395798769566203828363146374060902323547367399047023557380253386931823447788494207666726096975323277745977376699695649830626177491495723969086109556893058454807229054120065038719524086121049837026637363780587798707079910017668106911607552606863941553285358262924093633910122959247579320971477841680806567341331977763012726955521094582042154012956467299350521671937821872799842645674578206008299450990620782760699396101912753859648413062689792572199117091157639516431504739352078436171098269523641808011516941765262721975720576160981704446388270716100907540784719856516317378914632228611207228292380440307553211797752686666120967276908893700830475380262053278141635606809716086232667832303207597969166766095378107441678712772434600191802305867663265927273898926267696964865582412852156320391633467905957390865031317782442950909538343730771072706615187175699610634934919236980605636245501627265731322970007642791957855932925184757434506041904196936100630837628817883037058489743936745811677616587425020693943047887799980545088006087144279422361183166317986808643335372013928673128139885244787611827515791290112929018079033601535184123563916958883693268537100017693167773401538172803089979576099674497923707992050413213034732974510985391605601403177627881314957661801786512177087317505931389687704929385401980421070202151196624115976242214140770225508070196909519778277394668495165528241633699289218744123093824576728382163718733041538130484299012398938443975435069754956906167325280487353382614864835740383311091939627597523292954171033402640244218010932131416708179208781850994381634263592997095876433818989853802081161709471800552612921590242079190111273516792795699114875906225031528801840740425050744552345458999447450268627702595344574351910083027615876382129806006794762574912016006693376485235990245037565539762549268941159135844536938892828921217020597301599603137373886624323132946461291361651690051969181221544841665724352838167723504531022705605180204237589574927057300669657735125166528296460084519793893140297554679251142248364420193097526736576238051039737128633421268675741081598236060278932476428049855678825671691157798335363634691864282829103711522389211984487555049240083510955111445095958232384147432135855854768400967858429893064851060106115506518863594147309805117387800547643873162657998863710369295388047271017453323664893745069654407154019616326391054857336363659821974867607421418403820644295618755101210877995317117436273201219738331409683472170027565231206775416544050330199373960093719280626862358566512345381868335652140722160845551722727927559992830828376932385705528697995922306001272875365816636628518460668841078708372734885839228800975463947497234652480174073201405707901943197520528440750261571906387197425196865030524930521204462596730159776689952138882319249850632010016299099989122950711819589708045588067863070345003699425859312222193881350193104769180838219200844420120613963050694666735380774414908375250585618799051904537696893146980512919871749278867258747340831831880885947397144285923881023603077626818426494240870483579215048669174438837832737000137705654181551263200711602560457369228974576162203000871789950181811947904669222340761089510132323646509691470249896201077075042264434773032266675258565546498483590295687893891351396689366516950692939452365671059094735095140286665999473018074128425856954446455795943659365611604261506888866745125747123339828531079758310796950463186189028884381380022319422555890971729541353833750398503550535298873767291316672590243643298282333809546949052459416811034430025630940893200562659671646450390710884427576408229556152243821397887701513088208568032846381194990544826891961494217537351809561840978219666164963700598722728935489490459351980766269249844497564179278224007034293399604822719883344538135967528405624222740373858848553573339324950778194222708192441362186898010971639697600224447749148774366765887396318850860129608196364537493529478143273234884414420432259195488914123255799887971730519691036886477949013761292737197682734746005322698709712845125958308928231806978443556577425422166314543605521907487776264933272011751588059672895714976033534970149038640607210275440786990766990427957986150314080869107949379357720461621718674379527416741616930374188058568301674363560319679666622745645154657175255750279629395130785075136008568357173480946318366120017075376593809890887630594496097050966502420759541642589969056365787449407604501828851292272545595298184978917361202664432944367316758816261073744150677391681824980578158127531316945578168654247398296104609141175403251178702213431181143668778149911437137888272653658016877922319377554742168139810079789955647497752031693035581339502721086717140182803335024111214916022012522206691891768922595232863516310867524919134094035196689530531042250080122135062544517285195681384556783664402566917286181150680816127865342193430107748972060155294302464719739928095041873702170726689622533769083441313351239222504858194195484859479949645195674224869201497351378906620036775672911598913382424506083523743031631568190452268773352067048749636389207158176141840592017583577215889907077737432554062057028881014496888190038511150427326586598492997470851848509844717984045233991925594782996919162510407472192251647828577340639929443112188743118042941219126595131741343668273372735678783830339416959961421300053236199676223031900286997019129938548914695849114839482078884995004171084645164830727057325427948741926587457531032371451965595322545026863540182212959877967012468609604402044958307914063077634347356030642806388368848943004744892678021062856035349867847834004219032006985333832396937727288474028881145038987305444270003058129948803955925880401593682609784584763456115463408899532800637151145143159854822106481596319519587203408931540992230361990703443613511931357852800469704485272369163147305085645932361052203066092561580534712793341482940390112198618999056800747187311035211183119459683073640645300209653143173200145512372370483823505832182615611626023347631815421554183935543372270516697311511662196330034606362352233784416655506432648766785614848773150223855315221303424970087005861589503798673582769388202281973003994230280116508552691239852545597380901882688490164729415328427297404131014894530045046627880279698694113536653654561701779729201346936186196412271821296830346724900756917897772045545756549635948704743398936178406264303676335897393553869007455392853407845066750218484255529646253167941148286828010507639175528916289260117107861330812034919885840466425758549415997871083559031446730358167607958902161339473526670073697118200217687119005591315164594807326214265364746968394332821017729981700680790154220602049619604728899077171969115002616164273015701569482507658934657673110753666594584882783435372001861137116348728666567818648193971283427032965771424881351922621327746081304637833662560027761348767941494229945949301573715864008637959446185923745037936236050854245021632586778568786368299039999843511961165433734443683472001180929885079163472844000715015801660267538001548968699896806366558372270104542884274234158841543389897252764607706351733600701113929919768257742369184344526067622612757680859053346343282973519277569752318590677463535599316434403053016273308664177664558463924408714995705908585126492993933866247403436475943526506622118890821903268005447868963735765816815710945058952595514141916801576776476217084605182416415264554014690428692204760410360112365601296138190746246975383547406010223876668835337169195834518682251390626841777516059957696924195283067432364911734988869327127566580728146178055020862853856148400575190305932004176118219378225318056914866037614594350002976494874607141041540043572135622828835047488285067957450661029044050618459233297588134389057496168858968679417248074589858821294384933366224338022066559174639884072044354927812035812728942296329595560289867374385580861932325042418791399006221864516795301449319419553383424883568101547313633265056165964448615159116347344317149415684073514552973728832945522367304352145713685907512556056255192763737110884699798526104415915186413690319728351624877080271746503277949639753994393836145494049329858029819638638200129030200998899666211139328118904832637310680235103129956940355004081900625523784041824071713508523138492294631820050078397320225561710269722787409710820164174552584757771686292570523531736532290773073980620057971214043728699833915414185234636635335184608328357538321755465639150659661871100521003680701380489077163619247792006811146115297642991187483444251168341940826800064883208271376159139674395119867605673635859958286529025501139786552226427516136590664522566438634960244601659804723490367051288049508048954498585319012521278182112062381955294862754986922047919740012585344333611283133071462340550540567283243109395777790885896353478406014599722326166241872750103870184427245491572913448678869805850671351636185714252831484810957403123864769736291139755334895843987015829468286476199998503131949542949544731449738636088105574139973805418092959376951725350366470311138876558902243122373715264906597735715356431708805687737684642629385534533090618675339026216021631580980893727185161614151830804420000447805495885412658594380243455731616323914455379179557387231787975472527739916137275173289390362967281452575342477443314928928608999416982986312455561009877576890367437664463676176224411410177847378910859845335731772152435988241022646550881528534014688415785054306213824383926455371435147705845802751586657086548747413012427289180261206671492335411995636908353390144528498656292986878956518674413531092260040679546107093555652500475742329826548606931545044037199408331319870546743176886805139510413296315049213577594539880151441719362356646471288284945559864493161307687107696798032605895899542234579931399447816220072005141977467728037820448382055661014528864569452351507912705497902180840486485675592518917390505337553990278412834135260042602620367749131154318028432367086311349129532678069155098847785457257782377694091212966398958633193906811051701129823387397135136110883121735249833076687073236396916748262126175518465021062327313757152584364149266623304881189712307320190554473092027743975558205249979352087461595470513170176692012222567868338105661969138328596581817784629072550148283340122886738829574863856750730485109795755745830641515318764622138374021441683182544301422473345300152618869521421234197780876257102968300983819051146492969988720099132478222060038153803236983227125665314611131304219266202048259241528430828417078118843088002776749735809587178058594083649918340469881967851780154995019418196608580223312727070252179673425203985663210012657417392462061305619112803186018802853171017986151713704997029104731708102346931539367205918267679951195254601219215395617599974329064389320721402898803035980449911889751240483791308149196846853989523636790030715718818396893531811436128524651445165760755626213707245890408569382016542901535688894858974140336371893152046868403733784205438593952829557735388075416974604678142041964049874505777531268087073075267147288411879488424188145811682293694302405192773575750341233039242602860406852623301082327870582847599266430759738266992735341845154976184400371210074933488773843607086500141771041042001371158768107742678571881761398857204185452734811260871065584059898668041788644105438029149811639335818265899102444724001823800980188787219189660139541138222875532044902928700581304606754464819611151840708735916439484863120411431546636923408129599882996765931079871334951394004613992910219639340637436774925479841472106175214983434765193798917245311196506011562648337266232758059220881964972719782102673320613680559852491261865337926785144373195250627528780704641353473589091036401936812586148242714177924380566490761162445924294493613554025395917289962551596120221159936037196228930255955172199313335333250190787336405166382087814705528566174212174497999914240105989947586882449119188973217764461648608427583126024898811718874721474671714265861973608722074722720945606285643883998137744537927827374703338381394549377826976789459076552787231220101919089857837133648983502055370081422955366190513963813229668035938296757711794904827498874993629054174217750644778812776359442767593072938677911015962532076444806870828469444611327842471102873833191373522126332766077482230693287714386118067693322309983300864151080534780395442623207671886792441658565595584498549110651627169019285817819384085988529898710115617376314738030071165197742419169717529861903349273178492075465137050707016151902371538040406676868523721130394586241802284333499029982264047830500152132483837167180842727450003374123446243052950857703648045274178419775999546946177070091635700026870264572903718809043456619324325402781793877592829346464943140749959449541499858895014368163859992727698053319616490224149950388218991514852179666617870557634056558955462963014575562110832812913520180971912665515484242959430850954581598016742331945066729516600457525586000802721805646753289028541336250781272089722765233871990586270242608340472462051939397632804454343244242558864146136759984656812589766513744579498469175483875888407045220968523779615502159351323160867850727347191886928713645738055419314627021869008853585062285904917903354325207612685557029622375409849409419756826215399197592722519716136082376752030160032090499434106854733205362725711577647662281520242604567900397551436343176642329135169714929732727246274004201144344159393792567267815904466211263097439532508838698268857313383475594483805863667840940767201495936834876686700864159338684199091068730142138137597948369705449955731736190526538758816781184250665918871974296954633093655363614245577349611565991109125843433845690496819200729641712742060453025968511654688755242271433197446383289153204536791734966782444534826831659519032240565641088156216361077643854310762765162747285106031059376348553124014291097521263456714384039913987806611675360929090613039176791131672187236216811616339707570296632377457584588374122990987202025638063769259196730353234960165858697111084696358835804883042272307644474114756313233603110016405307204228759454835144438422678158280957225112224533629686407690469694263607342006757495876221088378441195836841375934356937843870489037652576630722619527100049896322053330747889609105491095934215133004657105269478865834560751568069739795108605202934985003148119162404703149214570984636702409918270410557561772595346368807783288771120727874444426546257471483468286310551532090404831517521985520818446064303838813926154089825952398701993040166346115830080776987972159550286374274718368022129562069825625723747643079466917167171147601295536766785674966925241800644830645593245722304007439921966606075712596177662469558967879928792818824260496667265729539354505184739335691924922140663555322026721579420706395694438319068321555830942660397005642793693823963796865656266715900059761830766909690779967275195893722436959060649663313525563514938752052713128177904633498000150787265336996409739303094732503346031608843223409779467477723745523243271288339724222816597140958797228699313413043616188279808734976396777724993624289001924555254667096577630859566219142234760384304439082656188394409131672161269072600176789674540826815121976576623292626646125371106419723131805705393776667869101231306637968527745647042375092963990220257795144996055845450491545412172413148255766437554041612149012114105575871401408926405568686864275593185023319898925691008545028059055685702766812598432361973756354476816427227936686954799500561117110335669360060027241887858201469616578135015620380181725214209782578131376621796262761732278802587162688252995636386942089157381436142728417424828397729940587493270138093821058751286181633643231448855293458069979972538829157757435578058539795970240708475548059732184835174549847657075729414220580810067353944053752170050569006459600437900746319751251907295848625635883085208173419953387485131812355573132652949919636781066368046146937260817617729576601242451015977653361043214008723830096384596333914628767398256417986092926138420532340086487244013622384419653302575491983809707539733546721948113541081397544105415099867399726822440503871610604687702307781899046415299572027336279724036028526406957561707865308613236710922936509777123567258768237941915990645736991596887181585243728914597599939074695168250089340197217390363052448027691957430438362862611656133778558496191097420484220419938854048519915301929268129105113156711542449796316780652716413746560868746821291157492201357060212102834707353034962126207748637059674039543351095256874160320252856622932422272729960433235157623995566973113391651692127557774614050966289443355110683323494548565253335608562523952307122389098090390254013844511333832096544515831697391529974936190623428386001023629802438477995913690720562520892497106063325312483702342588677730845099981538969054807824744325100684558841838855453742726981686218722023757110805015610284103690690109791238474506063018403200458846602997878343212482161342625577989753189029166564314139371652255856854809523916358111564767801514241129130015810028692645634779231529802792621115404185924996364295106730470505401556139847358172761226168175245472819523633131943187522133558094151562244010150133122576528823278693404071507858388231265248888718503002681520445197968825021611724761788350840716774448572662761925575731626943017150499414805884602237078291578551780891214713624553545903981799883232247563390592304681489838593078197991596746065827257137301961552362898802239440801593466166059913512363307508727733481650154619078707371927949814858530909660344465286973571556943125447386499258349696212987850507663582105102659918093420744507525416791694151863320859835356347832099714487227906510697125640416748533339016218677133161187395411321226312339107067164723485545299137441113445237723143346205770749766316285816122979016547208515636350388867078027606392416442262164083152715280993897299958235113744513555315490295831525777512769787198747997068286954074184053624423777764314972615478726438060298947718899739089685097394832993490055351758383435974942216987296320298945448319329631498885134517420234297136624652472783415342911727174707973678259121142291654405319427176410293720992508156068104147329012407738304479397276052209697618952013149900653606660656626300868959479815916185378616337633496858341180952142501724679130826979824313378154920904201130314464730047514146472364491019249796231012854909475246361891276598005978986406389184040904156726262221090772275537057618950560664365318402886944890807294880782871928597003712181730716271711895466857776246263703016795432254514425060511512793027691126864572244959675194364273225323879288560058481439460433814057661319727948125803506457082846681431905533830603146713341533206977788618236050941279220902205293077094180649471909202203085525499508785544085251461561151541433962886791294786188686120700736214944694716741731639014671201680680913395662402554230746297747799958451475816111420552004274206731371458420760134271029048893377424817853956544820292079997585918343769263532446066788461978102933807624739321819758871639208236776371112382078154890322552709596632403822279645917651840115422205345266699674572740342305209866003412053479977559226205134253871024935551551983916838685243236705787594987979481464708428689298434692348893908670915378753778822194365253012473463139096978459472132664124426956805101218411723585582183818802035050996283989779146193122488833034768379371988050926677183764712901917763175156367842046159007347709625846004275188100375899067628416878614847392917405395637093739831125321318150914587834042051681290688928487366518193171832315751331152107163377502734848027084057109480813922306956653278394045039823706126078493268730871309470169965579363835548040201268636893948133949636826194055731117403665361892910483896527679560415265245040218670925354315395305448490479272923586586029110109595519876620908788473880094492531713672258602787104538482573272852272368509440547374942266270120065179428473433920737331796819434511492787105226176615880521251934900388458040742512895861883616326067663801259892349769917450615175757764035680979159508541881530270639208114472104968840607606899120271607596453790364417681790491801726662777346428259251513379100824322294510457696015689664654582395783707247143428139686912312496262167461375507581917577990978485001772324680997137500223908084156214209749748698771164025540723219898815655875107681717422231995370242327868332421480127536452397780001965910212614108190227312120966882421966945761092723245788001555233554654257721914532980549592026807730638150451945359907362724324063788966898739729548899419952520431539505837303695879535087199346587451727966565251207924005828251141027084825370909797467441376503912562583748050184037948858530356133161607613027965436955701879142630353436500901773317095868917328469279696066440999934531921410996016293220340432781440395630716856545153261673716925158899516068743744963172185104759193985995203082827084715995696778637076593921044243061958286037961836928028161986449800419113450460572097251458417777371691392615346832626518544982960299873477780673315379612855201642784055145338335047387479145381781431275724734082078876969654420622175989608479587520144968018789977571816237767825009844838275001492407033710352728439794331907219392096379974052679326546511327174585456343533287807512079653665657255555788527723768556410221122032312266313215491078013083514505913688143751948998774077461391220634183022700096692035301297549846617338839016548848339150893287652340279211780699561323136083184697302370286612022113733985165808048371816348486011739436974876968723074304116778265633536310059162122430004854947689618829269382646430634250826154995015106058729798006247570765755892091422238721823404296245771859418391368653990617427045315452339546173465433106475535539219109957624979981784899030777059318140775430175632742589369479551824414868432475250268548544885318839267676792195815170853600183380757602082929625005423075815239259600594996311756944430937512635842646858002924833780084781650598308425139500427393671768176730925467227422483599396485823925661884022819632210717394603700728284391451169185001658855345001899745887202362405360029058626339680241216521970702533656622170990930836506302504169115548385157070881232748052583688460087930273484581903973275300240901764241878785389691973543445360297192342556838653054426904185170753738382555831514448752292941716639896949776586773930296623577019599958833896859718929579893188840748743780461277774997433762928225216624449381525463857769152674230905898799832263187348818692938548069236040035237897220319793110037138057861806884239576370274046035375773032441110524581159297620469886303245423842607258027230607105882288001548595292811093505226145796054237749843863433705764861235079188397608025275487441538970925796244374227945618034576808408385426997554647319553131652381475810819782496981491832434124427357214338488930270333251413245363267713486820472700086212153646690715744036102293917292057341225495250158881798328012218617426300824062953412586383788472876705991821894395027135293657866387209165965636464440776161961201108378487005078358772254764093822979542507004635824583584592443613654225030199983792333616343507946527972061160682517342603886925523368005690812694796338502837989636181334394388810870102950871644937030747860018410561781351530162461143347142664681685248699602140390499592747939884545025194627409823781811644310538995451803670665307775691019897330828866984215732974832082059579981749755158780760077350639964857088723935872530564640743970908181817457266470633686105745355201011027908937851339175257437394627422996665864498508512607394095471881537009317884457122396273398925015012848393015730416456856183172594869054880289962155497670651332981821808930652440912567946654959946258180475157459978582163722249215743413972871492204043459010054838489783489789954763909731854779511044805250847584242110714461358437118059313365132408547745166281192886008201648677282836305185799127118703735028261326193451069552145248413075805719234546143089028932855072046238607196655913254156704246035191708428365741904449706020259886274063073850503852619619937934231750242087943001874420049468861272106191303194768424661282722405340705204797777306460874832056066473531350676449963416255292777026479044318651734720580338504745723788247613709812829407505397148543689494381337989433241862769100127341393921518778161933541264462849474156267285912425440163812198551807249134377651405978405461408384796121834954118172956108913456703350549281958416561751363072805110521735360092949257321198439744439432816097356608015988634186607569398331482434906050445059355536824307746609690658980406035468782475827946789544242947884142120734081144875301156070224027137693551255962091284498557482877016941474052581101702786185185163517712100838061159859436134342159044711260718730918623837134931962369598383490037924003836860438029104869480706020480952703619616939741661262005910062946140229657035404112978131382594987392663361650638494404294638565109339102321781560784557505979714851194511582374548523630426385187766963775926607755784306179099275245258529753348433291451383887675526135723574901945079331889282719987603027729313487133173296250449908670590378535067749812641877664199371149164482843634526048030080897768462655120469855419407033624210502965865841531786068373065370229724616250802362044224920587790756616424516051288615235780620750921335770811066163031073529650475450521760908377376829394185463173831917967388221633425336137017387446191546538127054169283904742967900060195258826198278838906878558645850065038135264437126838765982469939897999863628148411082679109036170709479129472895915293038190992522241876161926744117133806158854007821989618418593827972536180263166836399086732981592039779709840585570387430081989218051445055821346498780380450877344952775870273625532122607812969587441092673046330187668519122639149485048302376205487533428060788083751229373282665964104970993721946858071017885794794985345324523878617150185171350082978889609489892730488731475798325475002295862080043646084685277202349422171877206352805344464568120167839935120668654350678483413871665651269286565340416321794565430038539642731293826932184107581316815506284036383796416077283363466038836455983952312821955911083936448380432281591554529441612685101294991326808309332817916362388670507109803436754798407754957550083842220760541442441491312649328666603177244368703046718503152532647062712012100433329032924648918997714863305365117926207460135073309114813304054030159376686177812082777289083063625529551210802977837613976737021818245077309871898662053369172311371212197073748719154697311356813513748142539488043575170312849004450090592996107968038916764190428023863967074874511020504010937361116554645179710059275777734615933529850563167194071773897957337859760245756933487804096918588580827238214302526920297714551520312765796549512954983924547059299666923819132138468559220269826299972743360061572570482576179526151194826887318542305622206713042066746769448086168645474804422517472034153982040425960921365744552493576640387819177434742916474576230875747396021126521092595815395314599646943655576220113449124993812141386540867888154037924809538921010092353552410953932317934373557977753710172135889580513484662797741235089183836084539183314076837619378265893118032447445513234853896369379340142900055751115344840778924222195526678709172343870491227150168351926249148789988111646573149531937228987532630710068485323702825896472317018463034435890176296492236996744983235982563148905126586790413284711004413562638847488443098763597608272570223008595050617876128059743518428954175575739995116017742643812080929074440655691334437071050964050384468336946386571165623113475636223142927951829762286192562458838491295149281022425997794816541755572624965347634920651252171167446699942354681209183625961342361942429673356023570642636372634680961346484667404942825381055984830703448167445252956269304403814366979993194294762218521052002795337155990763531859651727176516691775580635535518116592136511647784514565008289478873617077793884737598447715422729437267306802045964251679630236990191846777229305925685182984375750253411161021990195114559537820783303433806039529760379252299888289469749643469514493516444403485692384090092250310040629728259756862531869741124970120610025458679361015752222740336491379865636828013672701071756660128650054551055162715618663751852298754442190058484011447979638677264337523495133579592667046886566066509012754702299653554262321390529731609022080290924084364944337247954724502490339909498790119505738054008465903764487765081187494105461818874722219034113139619091449021813417781762187815437111459051522207322813543776354651879448786571823040683925394975497786807514933397995979627977756960613896916419227949779674203588167292899786964084735335166739203609608945933453815730882349784975674465760734976188775624246554507585361552112879268412433222969909208731081191884597878497394945115532092301032479967418326702415407859665326840777333146317055257196146493222601362188947225341520950319624128461216176052448586686375192526345489348616286468919843409558951572533150934004571369476907423789990433230890884468511292279969702494165877644912258293164871578923940902948817310404642965756047521721986329442120561876232093930174010071601599909653156824711673142268999407415647219031493291747877075469231394592264791178856898089333646312793711445177571807435246470464072307035206610274804578468122878748613768944368252143931864921675912679905530855737525074509547385921760207980461910839850486198459354648892397168943934796833148808307738722036283623845776122310834499919100396927791873449804542133649781702729724166559276241855488129629006389233945841341508121426272602740737824083265963844156722773614421166520775538704482456239148422815321234020487654849460545640363528965663774598034994850154887577056301993327952079501153357252038776801356367815989756707330542198679611976968053741107248810203060773949554217515206855630445806862155658068807417425214751066836805826474840000345640902812401092931709459862104028960789057208488275380641035327971797784572945263957562171383485794316024607697231412236953583635641217973527587732064108962286332884610044676976922193632088286907098456070442188730193589785090009328156056597630647874533347495772645318462815389210678924844982572626136539839088161795939036097369066604612920068923178335149242552540183105566213447766287716743117795174219249568383411504446270714354778199497336733876214446569875730219463538162313020281352776804637301512596372954708694966317416967142157775223922551121020362652137102239867145720009460871696368610014005184928425968489174989672962210472840593435791543727886020007827023623680565805661673948380675918038511935553923325090529376594290547664838550798064684592441505913699572260276473345465680606391191285281188073671902947287480255621529197528516015888190137916293731166267964505798261207835932290922689073902768524212544659986121613044477380643090399643757963648427496424303040152476301154697498860419536034620055645622405842705130329020884226804882784634465606423138264225396870639407630236467792469777225562139636770459208760383412960702732782338248213690710952796956364904470218922514165165497153650623365751641450118680287901184714029095114277739685785837202497491252286566279080255459192193470084263227299807451670254376974187090071688991971960884950306847761323588659169293702930985750506658624190755227565792179569794621525809482395319721040815012413874282350843301429829560874251458686145869722108637769562218927620797136272106586926148536823450414507809271173005054521301656219133922265124356225590014190462981875133454879594986457669757414703863921334943593471273127193218243092959494444293778313506573084230481884257895834829422441509337965895185123301691300920921335034379072097592965503585201611990583678694794855765013046647689327755054905666205647804040823233428056784894382127988185728736744800742611246757299977658639291223542478126308237126231333012269784952410234590056321414974158181567578800169430414010185532100707284221374586360402690942872495499885741775685641909692407454808343060749877708711662295178976549736463628950937158723416038957247223261819578537461012428387532779945346454581500120367521048209048573376090731943323277168231434775384256456638787864206942704014211549502584668757116499680778389254021364794044262772207922803020574942609188490544245895916923311310046003709932100830169501750433168852043221664609650973590116254930962692353839776915983556094252585334994003956837854324568710500173965472457167998308952438562322636540560042120841324832585486653150900569084458125245720879727227661355108345480254830550506929733193318058425071785084138635121878288578470074891547305880606345695567818186373161784549315189385949473236024818803263982404096509794970906779004045207752601486962801181943338571710642564715522199825239684989480486003651316118349778207117277039062109193647083280374520410362617192807013668749075761234487639668579139871174188847175082610852373412692558394498937613221465876719248858979212080907747544472386262206589988392007446156857117091032578310637860602337694489233589506403171457740393714263482163772767027272191565234987486299672843946554978905705055842252573303829328098941831663989003484942581464172517467256686885148841629595749426622892118672126590078083128581490050396214903101795548427108831624866247525627324510160456728961807800269472876408476462278421527710300643410569786383695919437755783705140115605437445922907208301164829115619007525248619894737954312756039718482484992453902868245147911873456060343355337742041430204118236717702726425049380167614874723997281821693167933204091289006688177154975911536674294251808347574939072607110332104494824557237704242843753022077809380028435147304229311617235424271226953193607845774076650008447698526625474361810961895426251797033329341574930824533333641012210240862882914044813567574690609638005327702528085549438717218168189327120129695071179060815252737471958890695842001278138169847554470880862685963721422434986716136654174411056222431913588197359893652898594220665868437430355343145928094521027761185876510795180389869129808751052937813429892459788762808665404596267043811324072983430537868321548244209046746168921472105741286566223691685655479635067000521507123442141892638014781995163655440659057941803122407184401121561321480261453151671564928721544629152009700003020967994018167710502925161828301074122362428731450635793383530550132359132282951718838199846312754734438375314646662696277926217408258140885836142487697165979179050906506996939344931188678002236615307260640167257066844932752703013803863417538873772326408700930051953917851741731520083675947660830549966013352490804804603671666003970321203362792539937571783572713915724959814137134592264783169246513818757521551872865842620271456283173929041969767770998990014598715532072176147941582397512221383130242049490130821115332156471193158385774576963061671403035616147839617487803328609213731787454248148680376163915908168093984969051824450627031818644306665167953421619372147750551183093371443818791146448232011741359059936877619662583831940274879839290159100824986761170857005787532371399661183876305967486108006178447564227811065520234127881606444706433735596759284960349663046012476572842707035506377584236227665998512402653396049237449091363524077851087103961374286081821927941665535877739675651807080422132208000113407702036202350968432158014394684772471788127758879246877983370054822528043070949794721611171043413450701913167670043819342306507971553691339073601101108683848364601169796702111308419268612602979997263777820405820893916338399410411928892613517148052355203150931777263323337737782462578793988277916399584990281249872737415464913910422130798082281437891952411115589000585326590260120461159006023897168655588816820440343717847471759765783255525504965153911081300225344006247266943432778528809116207234659059010873759727363891789725051114099087057858932158492775428859093888321807087344056409400908424334440957573309820621303409339991280639931405799505782255280620790576213680269651787732917751949386643533903336850820218933591786232283174343599906795457477420921527617857037537056795051863986338808318279562095854882843462357981843167946651372709072828375528943511230533445832395636364510473160029154764386090170656782782347149306311860853871805415117521586849843362499743568223506048061978115272956820484229549876511594443691685227515368509920516573621970109662633084213813359621946803249388165825111502586990677303014904869145902867479675393654012514344674530317625143095491985432219406680554178268232075777608197569710276460804762369289154240551654963607219922535430840284336626302303684403637162469839195818152429787101684912098852618322511904269963077751942681481596101832584063544575427003655090453419942820471784524172959746798096703252453164077942152331430547863494186807889504401488383134890886732717810480450210098231639124089133661362323259935901281170822760312883672797359361428443040971485485982845758382031031701601824799866219930274027267440111179474494243938306696252737075420008749834809177220567118757191115483135614425187219602896233608889472054485299578408701752950550648306494882838284351901044961902782060260902981030346729247787743602266750889367679039851421502268047663875934734799815683454913872008589331206908354823138859082286742112773666457302621984164315445344558230973753210475835673544259518553818790296880377626433972983411647364093559863891155473792309195484982265520914057927452174865592312638920561245144477867013813192507900678363452444707249643689255704313568237488169394294129032554835624295057470273727681493892613989325406076499542418489435798390081132096406028314355249966396009580031003697539898730275373428522628624654469183645055559910054423498031915767140165296889322691002796285266700352024993273901949010939951577398993866753765098503249762037155139964906076573005087112112495682464851140498825941612510071636749007681247332219090496250677224536457987826100440238277816906172035633782145250021831249537733910739974247815074233975630645705688521029852766168163103429107041982201040338567802740156994941577565003535325261421067485916532772454803491987334330493888694645279413819319031868773795886825389047473098042156360763492797207119835080510973286296058525601606440888607337444061500263419074103815957467252374659794678172487221379934890682037752043571186329040876088722351627130357491283685776607275220672551326944476735833722585290639426861448476149738722560495786157825600306815744127161712250662244992710752345943387791205541804866230031496853804950783458533470002183682362968847147817712259586791920650924790609932596426588938410825257679972133565856749509143407245483614886668873299947996488986347058110670439999872336084317225814316733830615372347412674855321060663916983721075012485319919614726223741973337165264158276172652955650388304419936428073893251385597598854922444937235795226853602900764750306286417943794066851444399506306392965783489906316252512185261307416850875605184430953981747993007924070782956666922132098125605390138903692860409375598506611464140142647567257251128517350958786378982862927147123912287411330445434010997795183643314030181188009102855891684073387850704608984376526195330581434284570024888149003793053916313785433161192473289211553680975437647509864634635768561593953049174986235269238515168994008022506707108387077300970959504525156117282581365013553026785750810013147954440795440890973843810208332216072640283685231700526591088447292003657156714333364316983967684522429042107139525974274203424578606065792088597001204291601655015894881795304725292311558917625056628528156278322266444039694655219655611538527894263394290168204770800772144477215207714458110833216916124621163283700249712232510650622398221338423985249046813648346174419114572537088540354806996352070090804478272773966481022599774609443518783731372234333762063347781094832889154047548766664298205959935453561606565394972146546002112051429449908681262284307807929997487658217813817084948878969182469312857962735960638763157972341250731470122980713046882499633014472281578343072966162763321406373870437410132317934891452743254670150419228966092565934893908286071080148296518454009731971853151013948463366068652375513594808483994908424596687835433212293276220867507175694416028993066563466162069195786985380637971381926922081274033366489440535467533322531631983578020610147727634478064090927686404929838408417885613799149736391411636929431392817532047636224085366303361637177063296046170882867797687881378716111435184606729251931769302120357673395132056577694230684599927549345323742639013145030211300208838115534300704482724236284754290098609203690516843721840909046659394064985362882670229789397918069355778088636155008381512912968095189696990813328163889520847275087939888853472919459379534234322999341261588937874634415779396018463013890188904078240657716169682348748397816865193163032793408789931670464595084656561904807777800673330821370810675334814243804962980660907436321573625135017585905598792709296450351115886433864205364489883815456213884618242798165844443512170009290447089153910349922251315723063817526683945232221966360201469899395839761924834628862553691474059727120194321961733230488475110131359431301056406855924584737408852300489350804077443429120244121359211312564825137685019007987888951299640697148447991065393035006967228485337418102888055222526936460571251996759753743868175514970339888682853922938503924434233325276387989577919934539257599332170930335456649837219240897272015661923066328588459224542511011895387435915976679673686311491516717354359550675222423267316882158180277320939402451805904919908118952688141860910679595152300350256663800890646413761544102448231961377003841754085731430658938368789415449857795853109636200042667962753961826703849486545907127771531194530155272828083766602260731364033266631362566322989170618390238957910318603132785655479051986508244544506541554551855311802288853143236387170799767460096897711898952001680332870298498489953447924786546090161054871590540153508077739385304155256210366225013154446220516309884314730382593903415661717547872134044038353213396000013459531707993032965513169361100823186221056246248628527978837890137390039782409836171404493824693881672035586646004239176647035628236344214167352411489480395013706913688118810457437075337068111132063496536436048025911737696324964117104847140492221800432026578353300959922057377898227583869420823185569580134067044038665545003400736480166647035954153449370384440236716135212262997253319607007110491024933743962199042805804093096681698528376895572911476875770166691464464077111264275602563750613765750761529920955862416193584147649425764253579195648303652288896437816801857010393044110634168263220255783570914560953105480066985165516531394857696919624337148236289664693196553251493386813783542243696950689827843009133195523935626010999547120793085224001364559788446971133083719268113819616292591162074284583789083392831936863173096720252150397557961734494009579566941534198979494043475907505738458142511757533255754349403739970864209007689392037612815908698051348852827712038179636020625477957929682456491790602347482364468315404049856190286517245659629109695414778219905438769138607558491907212652877157038195668882978832706072423285834508001044513002345793645881395846853484364214520918584677598390245418925581841687185014335215305333068185264895363817274548728642618178717151976109713293301032600993223464486988580568481120364484173608034905688002022483186696800641276747759191393061300684725473603561679510601755889581154213559502474923792355257393899181609449966470005469048919117600826071739256094154448018103495659527203518432476958690247659731521939595933841872982097921133574758529091023239173392634932191573298046760733095724230349680924995511452485832064049206383008421543728930041196496539619226586306262552852465161456772520707540008836628745230461266590972984818733659284534206773483600783960372696572795041158721174894868228875960353978157219800106837928435122873326442885077552679411094563099874852493744860613717688813319417601992713375318170250538208061998937526596243367545382606807078236734223254774210424843545466837888243626568172311143671307644508218319021681136043763816919629382347705020427997876670827856050944366565379123247684267848888695554903577959348551520304855037350429194782864254502591961502057355855384325729854128383078054353135739653774370422690854336843112142084042721205753088104856228721703229751322372911545746772819147568351313200421102966814551031509750694379526348490715478661921397035852331406140568329730062873721134406395278525836922884821175028217953525152381326995707158057713877468678580295406666077900251963196176325802223153308062738828686368800844635023217967676731675676390079220969970075269833748137892516863072125275241359149615115506916827711604654400816191862783726824962296355636289719882565886186114547856873098286633425497886526162386799139620352515798177792028600832316110173162443508185343599333834111014942476106064750898384117114315263254256881706791170186104169464981388287078131449079318002184228036149815865999983144270742083716332313141599169300605009532675878789911514288313287669945111451929281266969547556551069017607759534038042145552002809047328208526888267691918936971376402859539130688628440661453059746861800025891691867307149896139309750386716173532002526026984347753800129814058517595081528625450536411607783260417890086020193502374925046317229284802267540757222827655355574486448178751794244577947720757192452632675197758238878706480255055117434534295316087886247457957318253232128037712980257611402568862953471682631446359201979337137092278033375054885956667446243813774959763094208164198993408798243291461440455158526154918105670539856464529666059246423238556806450318424226225467382409976276892240357123476790504785587870111247338001954599169561058053838968928967211821609876898191573314799786687985759268258116745958457169011422151313770041243876306759518467747040868017484070315487927494535509139719041228101880876747275543994332634052505164059258614416049658713205755670314137404308316053825165529954730508481228404509864082137805812609731840782685739005638294028060040168763099272953923519020855156587532033075181674897567844818046246668851456606293880885008514597005656669671350816513023407233405895775873740301918481061550236794515078832594542831403921831089339497567088259122294073801127168324879100294535783818095426506446285129957065776939327398290839667186830965078736830616125714325883109344008648095642720525288817277711606543618064844392004312334120158629821731046414794787256581442657277564695465661753132062386901243053514456245035031768437174501506994178215179851312674153561590034629707228927128475260167187314560778230718718255881097217505211515152440445542459642605740242418291076933630440736546923297776462978726969746852045793496310560169732551488509645803173212860395705695520270918803636363286944585945492312619752328995615182527515191581680207940263064155394311596205685443149364801491601726489464005707351509154844507889485883382599141769844289237950746975857299310266713234446831354857588151875051193736892092597660549479588884674409890790331968999169229585940783532406267321868015021982565148135712953114483215272553696692655726003970599136929153852559335410714658874928803838804711209326673707782465173806015715095441759948485530251741832067417322788608358232997402402010384096811803737048907987121240171220392968515803829802246287484575644900464870964348367958324409057678556882577834662423765290276620567599251734210086164037716065509397078545739048521837963819482839439089213046429482096752692789611343009985822797720784277443626216151273575676083978631661167054035317477504089334795911011910147412427384609242391964523694117744752113847027677191861152789098067437954653794180183109140626166194056528839280797778024339336239116482268331227931099100257749247341150785076827049559705633657200938468933456438948049958663581478320756876955296989257565853886790028846237917237594280463328833256307196785711526066095913538898097457380556987775076089577842947954835661108486064525649871751785021249154229848797105812508981927548058689601604041831088271704671942892021125399570667335448484432844135987512051108529614842432987144469993988217519524794022836805734997394788999191773188859004683215129607141928889447771777350897015754297871706368325466547263327600718873132936324795426724394870102330167215880323415241862505396937305367998504197695837343892231010860007665965014805371467275748718205533992406505770490661522793171791745566067358432238180715219684653927479294094433543283078935198693001740027877620226928892426552853240070110097658489595814241550933051861534322567744607455584934616784702744860946201359648382989793668407029348094260999988595549783125896179566984938736176887381846656069571778920548588200811103830180064403153305130250850295569690942558086892184661898743773941678807881762105264001590070389050713107781856392989850313537713630219251429487219201986417714860051491884368220922800496023598276769255195180582311368291728400544119395207948118363288378453917806170866768734183935003982407751211160811829981870203169864572307404172768367278782137948482827583599536585428536279232105372126566201135276527158067752163494499575530581388519426516847646103663033493638322238063142274294545198598150465564927813185007244341807116797340579442108318177899283756616249671566524515405341737348517483751270234602089050722557193628529777601047262069113377516085088717548685916316019672929502823071474422839292621964768386343947377458240158994863054581896358133320169497937193340715045368342814063689375038767574335727676490598625268843095938084694341506245180919208014256217563383699308390003047735443908063550177880240058350428790468679540981350074401845803748898659682637136197655464744504005490123084652045251347375104575251459602861019079406668774835158524265019876832723199619803536126566554915376155612814555083595822921250125369325251149737754544526993108658698238998039112675877282925513768058733085594235363658754950489591516305335813729591825586932945674879928261601062088574616683400860288420708142028885624017213447411120125214509827761576492997361858913251542891277585145335018149018312053647344268412518870955841749993857748211652126184798658740641934363717508847103224401956394408605653325209124083288402346770067545376870914641560636588081529944245363898911713875869943093800946743168919887090943281999871164392453190358048787399517779328671138811772549982616353856942553141518493311531871649810533656613910554096251962988908206645847474949994106907325974094741198220824473944610410799763954637349429687475780214143010123403730136789812769286112012499511220603859129213807223899635705995127713438686209402822776683979207933954311127553652791379715973630549998592688181143539696598561918645021470081584381034817506845013701098053175096672695277096566975157040549032315554613951235658899606218878389678114869361958069929779833357929695957750780751366357486779843006778284515070833668186361876376628715669408149732487712275634036493647024482512097280964514141915440998568808092723281578378291667849635977307247098143746634727962065606694749572177357575104732681405440524799823958366581253309621619999123636311952913328286904342589755422264853968640663158326792409300952350248767815119475896329986554451886359967495443614659675077846915309358214653477976437129300970721867383253463732301437697199744862339862793005217750544090784531381844506418671350286203290640956898279107774487141466372427110845738525353393635784701568163977453569839514405908559427389407187423142942533612677010227569425815572911283614164050366317009359288389277897107661910126846665722643051529431995342101748879572769035407015552021296150757171253545135013250458614699528104284538002429384341976998688306935871783127311164377021891485675053484627959395833646248035806500622536718335316440826112537557934289965778847426867225848089010905601044137898238447936902775774849530004078296976391011392875388053354857922226432672398205741893305331218065767901613793248458592789629944717768945686073240271580533215539878773774109754081218186714719882630627371225752980126220688520489251323055033024306952548603431106608294981962146984614306769566545591717824252620210000656814802322681108666340222729325450041901487196784184194478589896954447417342488880702187812678370122023089608018469713797712770064524928266693443814063212010730092030574158145200756797969447452285764052251078652275182999010092601013537064458550088996216807103203366807280161512338317553795572104001655147811110911270136495021719839365445675166178818729508938018526301011359133777974423162700539340117546802493506645960744629785496424725918420476883815572886407085122343126179728585348696499126030086641220282459799389915916536200796198616984431628496446894948478825864786110858465225175924546298175397409291014137030225688438220410074864355785734836892508862778972636072178577896535064222048613052555986946064123056550291927768036339784597675845515600813522945215935313352945597565162920429364023411703904721243462204806301727032110849765988052617204347570891760308327876803856670971726651654156476342859908457830451339119018137846370079155412747965380319230489774146084213027151396957380222725007706907301291060334546719464825853788002222319257589368773366086685320905285210813247627757193710866193166897092068542090817179027516045191832947569752714702781498159879027601572404531506188438661524998959500375134893345230842907471915076057595513275866558790685963176407392067437880688503826724713982283317043296516444941646703915515009436694531229194782005948947689487962176994380980014088311091723450120367066403906586030440603307950451116610153990201223589041035137679194852081187541839052488591248524694744717071556501420772161604292893071195675489531072040380802972216650811666627128302659437224649155731288481719467538429289423811500024127119941947824731719477600484213532919410121111951035052480992424611308874157463714717645824417864977649167842320461173155768143353919592010368396074365725534287743100191482473769094573619941872586297291933158222183415862659481924607324602822307423732592201553528889037997833967180852556095579939164689937969093145586397897216675124417511025240367676563951378738944459694417394295959661170803379177218000088403391066495885105546179193957259311686143520546013046383577231212172775199068661417544292667397693797920444671039756107533232782563554692825140319817941728112461749123888393521946072470306751468505331850189545437110679817290306430415429165448777848307071179189644073402261348026382853060109762927423631336108199707015273509580586936029242135791381486105191565511394346985408648095871746923575348653579430581965674873892737205622381801695857085417248233551438375838807159433967658748623497105720977179214414779573298910630463975881751695441618846732629610947751949936419410783364434836227034640687152998902852845255107100720952097640665930221275744922034296571749707793060174384253932449372744218511808615416472625162520280450343710058252836115761330666344270074671034290303866548892958328897487061113925744014695823564051167146375562605474761083875047933896747855350693704143017587051322563860627459819131015100479285728185459152569117773275235202858604273100570848785977297252069804198991492131223206679038129247165773251157121300089645949303714938780226376721067850489911835053299795134784802891542638685673864464996063982633446152804771446893451525020286228400217319566700014527250815527249356903728446916675591737240408410716392321822333497987776204575155365060369100141669343559491665702724653208768470003873629471836060875196846063091887717877099017836892851008757073610195882937410535827273217146490881280409690892968157195453571833717406782283001940584510604206538679846232157461650258172966992309266875902778096655726792843734125712211355049983609427345805902848033832122194100904387415372585577358752154263118546841597747884557333537013122052673912664317039816598833454902937854004392330960226263612623272733591162197420112470947615804049541298370128216323175715775648388222977804859747701664390877108349463180477019593334442361531004956867682871489896490480724890796004707873876425155441412074275295195816564513795115363322135109724455228286045954491173879817484507854088056581601739988800404269939027538805513741703477107897032937759733652969821254907304818755330927047375680932041483342177349456858457138026446585309599592653912620129483534084974023915731136376051782090342020395057520935852119279319543947193099948043236710288425309937716019452120915328698637392938180350265303404662019939017225838296421258927054267979158365383381610391114371104555278802524174973699560547309566244454528754856100602654957071349527507454987291885873012959053259266943929339855242754552339338031204480165185473982809443281342120431126667977796780215746068478792479842323339906793844258470595865444553559586583176022350867705943947180702912264116622388706759645775823607177510806707805147203052292861453136605220302726773904296754034781488919683785286542550747829920549512662274229939350634541072110097615767190993403889577063282792701698847081305458596791623010110683170016175763012906166932095389382005326540572897558332932635239773181551926453669855039112012846912207058302998564631728847849879844429412153197032431437467323126521713502351097474785631213519836350739519396713216328061212594425259535197278167935180766102702154797813321124568295637430338908075507626869896710836796969609893422592914973000331355287791226905966065076423460598004124366303908832686708470975027176183531445774274664546254962756604363905911246983600404364430801326455057423467531986448411539533578471157257724771763739040872796112779068417648937802984437043222913075822283895659747295092173323893740812030143661489456251451510632033499821958122795428381669169677031758008499345962715958307977815925209494010531943584619106155912683400057992144045730988145819681999038343444273186690872786831174912821355424652917963311587765500416524462294692941342269562966085196318099301354906212229672167226093172759062986761611724323261703185616997280023167719419468570386294543529546755396892085612043222725550019150732180624995904688801965631570063943583181743927906456631418423761966599630634235118157013371973120104663234113851910780749323929084801867972575195549325606636187485133920478646387453902771959902919814306718539732456423930766045660143546860578793323734507859874852306019739873806185505452507835115587969769272072849615049097518746039732545383629351981937014982429137663256396470924055164349760552964098177344410471482326439855986787399258056937821947123756625803496431665813934129049655066941517288651820165358988485616900045877061321319156959572876628314958164613881102793447156436221414793243532118285509136911974521385912733826754845972737492765394924659557308564233928291076875006398330137776306900393738439842366656801615303656095306271932776280078358003825644467066877370142722305547286043333551830183620591609140532835473187984360053080592364532836722882207110431437184315387794837105811088689845576071112707880768754887822328941124786525817025189002473258135860198840389460026434510840804082999609841291144546773966469062373904198113624821678066064979386904957062671247394487700326569371405116791345598194442565717938210708651290084145910756856703354329150284759984422457316272958462563362656713179022958581175614295555576032941693671264325593068256172144613708545038103772612010350039733783418848764382350710104912291669744672123511713947816925951000772843544838527934763592896031526695162532797107392830968264053792241434405886742786358989684541990449584915681622040872972399751563851138789171978810436921219410371210143251516459135946941232379323417694538766029967427713017250076098208415416323112362114285573609849640008041067187286078540647645671736263898203276031849763290876208427275694454453198889925056354627276279499352075830016425567063581830263537242851363659671929844284815842996505940650560037059061411831665292941217522629557302450991494813902561070840032002319863926110787011438329606650818907967380531419141833728046359263638241087667261518988209872838491217649007043199334555810950579865883508781431877489130976073621972205086654073569941509149144850789527940734531612770566633256343357561237182038865026540703027730287444450378907319319600146464002724116846514861887200829384025692695979110907515559103125057713464654437075444175730797223475725064284069953160961050040410085399011262215937245907298831542897114476741135228823118491597261691263069868157836233416689138564091056505951008594272611056289021778344887546616286835344005497747707921958826957958273972045976544336007798538414805341899399768479602423205012313847526658121862348150652150396744003891374380068089431362496955641501291577001747192552764830333256146762604987743730925277536514351418700273026204584035510395271944687962208520817560454676274005902189035243721520136113129127032027798222691508687358048446503350263944967954246742516648174635321428119449298489179962002177681799038021467600853612719985141901046095745766722777415625257966825782689966074097922662361309051103586708827611182586203742839820873598855908463168706374322057862688833756923475974014115792604587585046049748255242183620731494815516378076420732566031586864062715645616626695705547556193972828085895143258103432235737456317774651217052237802851980205511894927754343872148419973900567216357889479512470374290377736194334988033013179413862219387642438641617172535229939958216628496582170530909348539119051037267667200976987121286464585389474566124897972294720110618229380791632564473806204093947379690690908011482187293806095893132193286556745666855806990197983118888160763898515423914923755377112639011807741350368052815592116279637142776263604271610414856127788358568846119295358517278622897626140626074752560242275857941378932535802893522418143313709360668492047767234271093223058957845573324918781849404364346769781710509454317322796738483161949709941767418632213100238368312873451976763466207619573382158293936812421698402003085446406233684157052900928032294277392907758548513396215112961097352241829717454197685225721846270087698239010558953112163069895262654974730070995891672324078105353446666676473042100815086569218758743995991435527624871020253015388689238329052434037895758633907928928584198517395717232634765348682939649051947031861977841980810908961957634935691161672289878301664343295703204238234940132016430447464974071464836470411050763346468283338349147152541240242572424217174258403287468542027304578440087176407449055913707134934580254630528320702016428396970989218479293563577585354381174222495747396883417574383637233858839072621168973968571639557973195936156335597968717011227971160275370795904558334829539985910872494703002007490296814425801092642287970929704721314069203258631904865615915635968165067074007104141294024385397500247920744599688622465959973903702471605830513158558797754339729676813260885960919779845959077639900490667451124016576465685334397249141495800241593624387733649302486780028761004827523387414478064046449010464312486327813992125897910265625292244335679041445625203680693061837904466439370320719796138429360310322494617992358622768866763576864670235450288371033183144250864179554855520510115117928274332665330978757993562402685934959659864196551738902053463191852593916541547925608335699121607024854038422738504965055357575107201234290655527401230839712470874840417744362709893416542980768813644658736142349669225291894887920011796259700256268447627959738690205453279937333613762067191825450315602457676452159847235784645277657012701398013546040733020687547758236147370651571942171837100594268610941353504213442870562733135899826497960659652515951657743538136203915753518820596312208940049557102774629338772621759596626234762790368894774475990753966988571082775266678105948001207879468756438412182844270633371988299601416987974749985004139015726347089846837931874446606449288064497968237802520102017933882591504391261484969103498266287639945452160895396489407856644090317420411489441566919609406161084952488359738518791138915316309913437176602514718320555943115943040303501624569121089860313559107226849253298355662081123768870713221209917647147340664736412396616841210136490230721434975264115174051327642484013055848094953078834663612447761070477841602287608759568832970208367405767481820372786705697717600744112176042652462048722365264405340170638999484398239764415682847681545417856668016542250585351054667182380999266668107633501258874780950596121664396087159332128462670998923622681861045488179993803132857802991106201602000758330644708403935906440472974236006374373777600135081447031742815475844651589738596041837794454454544099913597193104942074816647692571551455941696775237022510975031076229200120677272307090058754734029735829055937021949777143941575248886628267801064972731002638452200696326832368377519606935610211299565764379118517069563156055757629188817921328334400818841228126825346373470790681955680612773765844755615109034526733583693120441649386874654380277108484148937143087077462820043514743328038694286871151923391276553471785421374849936669287997132716371286228328321799812706887833306066623681828269751989374563478752501687132897781960438095706454047832447827697343012284506351213050587670720813387819720888017800367828893466220946957930695384397238631885122883531515545160828250601376657494345468750273225839994838677668529645649352560318001960994223910985891183893928139612805271211813477094867905033232819375554185828205995408383660647153407504342823287227647281063506480859129653068902226513002384255768308976800897913524484502371531122266020643599898642262337129565026513973568542831827095534811396486390021939354874617356551797387455607983922017070035213127942426216783360485324346493179675955745838386156363488240832347294189832124367338621798788203046896499182910227737738222382763018384777793099151315716558471602676088819019937707597471469107356642445205828818896295076231865913281303359718997049796525701066066561525651375151790791584231310128059920979930970815123237453071026722091119474344327527415270785616464743988512910504126800303253187755802543979852638587016618658840173008390296443703243474544456225716899115217705555085245392661395447744504832420886591684484681087717824550194990710898287182483628569853114326792175647612831581229909078577453806209517473539687895619015735837722245808988982009606913367755850909195947132889835675856184603761270342623252122156716328638876900522540466130389960312801297897269601736008156143511061633467909471084829822731851538661317475131064206451482192948422661129994335435890679625299133802773680579691332665906973536937267156741873953160563176430174547894259301430752749986620047327300780903068132354193202816116525982763584486540261588299967712367610978209979770052876367766895995553684349488286565083939856086878421368518729840977225356413065272406330569445393562064474574857157309008283494233502281991918168283898568137154472760298507799516509228820084464817547307314665668943140843887445204411444449268546081387134563456754555871678324421205303010687245224629604205715603176320883129365905661218905637487040431100162867148430282023372511519942436141137981211187567143578108922917438363440518991799034957029247652834338503023967888353216717094161595688169569826234088393326592757712578575044469815451481040914050340343986775599430438877558454323432140329912568975156970327382671855777959670702978250061689572571678329409669210058121998200055735137455736947897816356758302036539743485078643404923348146340743515671480326760660939394045910124273153069265158855902460826777881383468539153322084525779803099265303902767640991039550532485879412465933967353351783862689584902903294535676313931803373323950438260623369423610287562878769361023186587430858243951745862969156663842764245400183254752349119960624264959702370371300257737459512298368804856231415070643091348775978501971155521783002768923898246882388450536014154183928307221983316044858217927599014156502717070092801166972120231390620883586434371968393483692909684421242162665866476449734657812265697822012719742036686805622161728552171004285992750155563369525555060097253942162896872819010403050533187011223931249610939588312384706107494154396912269958721220940931971994439957817853714747598975082749014793064935808810161119714913987868125376815287783647124490379534190146952372248516555128414849080748873567454635332966766081576675349963656419380272448572758186732476992914833038382881087291915858399022021492516238462827337717463598554543815299001181223630764942249772618193765988378571901738699834678648727024491630370737507354711391570978268103928997124827473784997986866716933419300446251810986363183443188927668550352279736363103685956190959203511853696709388233285381063119996245472752014324421039229465872925994683154713713927461769943746358611783787737431788346645527570926611487251584398137481228236087824383790402345765571700511373075400408291136070760904267433433431451220218119762548778109012080676123889467250105369047779734491014418323406478562821855012097789399262073920305340241187012837541180857765998681111590870945949244963139785392588855663876179820055510824251918237569991316392143591913589417261177056041648805123221293072885240138730149405581258761936780606784862670176756066130822340330510395385671762332208928245177423052015764541829094847045492130910315363672088891962334194333535650578566464930285700449658525648171674504988112377477199465940737799354115800083016537670738614490976121617953897786230771082804776145065253736580927362020177210295110734106398300320841323516529610255363937114166809625470646044099346846216029765200538204933479433997638147972472441345336586442488964375274308174558977162883913582577479380257520963430555469149115693090258896706208910508902803430767506373148971139132906919437009819447655092184414179243441994811455683858227709826880660553106247073684532661502301676303458542515477832426218640287877374903884654906718562129263718614678501065743691884596484684308162010134317769296129343560471997699669646749505416687348236082478624121776998964057746439041841032891289695039477614862662206252312784315728621832467857566892964650699791416612297529254271478380353334236795429785837229720191663440283057028359251262490079809392728026474137590110452435400818976349316957718998877259144890059103013769654865711763024688852729982830765025870058488551891646398140158756144942695079955669349303900601857144474082313580494603071517363434741050939490079963795117033917146955404262240111297980173866819990979611946158814750967793373699120762032415931603731339824165119175316478412212142080552886646167995558670973493155497173325803908547437094553039980996788345460378414099279946130078313938583081536355728628607926558373595712548934223224989216497831975268902373950140781642822960641417458729603806635034850629374636638998683501539258657343529366892724561734803332479062651282953163234371095521558896077762522521934077757288817200047140896483902504191984885543118521878541909154104435708981071574528962977126507010400440483094792604460575013487332680839112161655780597271059041824584932357635119231859185047749211146027910616682926694723228617946312459520328083349822575440735087901733422341513950082955433096294036402810782717870585638521534538072529282581490729024101682447994079230973205947280786310090021521601648703976097422955982940380970715262580780453003292955864328816761283255518578703536681795795931897413281367561048392005049238082690977509128353706586077295792786405820438667450048417555238813765266918579038990016182247121573712340523457806780194050452268723533843010404327531614609546983441534307685677065658481997661497364131862495331408281442238475759275905422158457255420636708350473456893416203998756316915407337323626239561754374921934731235371174334694005385560901596107080643796154918780174337314015219537049877158935338338324248042192780990763155391141579135767195776871488481449191422323767075671437487779324237901450463108247612803167528039544793452012753054492234616703969089719228970601545834763163732803455402771270151248734324064029321909518415210331535097800679868022653997212877400790201910765859585765595147566678015288006268944441780916926577954121301476753075151435890609726246126908416387478437460289003035993728216043722322325932827025983052518187207195794118859940678269086438473456035020335416879474653953399160330861026929302503836335130330145246832385288107532564240371537982300878484713262311053767440389349349698812845217551423853378517828546681186719075753172721043929950437380467900373216829738478962266678176486604171325568608841649249195140596068737030071637799130499741050647966166138294372722282484510515079571847586630958026806757913389878378001817714341129338003894939315147805676049519199650290724651794209908593012750342335992059573945810738498032126680142011462830218180348019367260967960121767924297329904414960971200229800242782079698979172197650093851719467645617453178678186281281407803961330846071061485618994668282230566196684195692969636367303973459629363484492306415770159937672474727951885336087354365273161161817723014383784023509519153951593660208189865738646420954877457307528322271601943969865125472680334215029100662681565880468613524645418578338858374857427855295471781631199820114093302730703353601382020928918950982429771253400484684172358297877197719278315165627901294651599202455152690283484335297967859663148229495924056383917947887175580764959548253418199395507679484097656823630361317885006609901099878282581141980756227673948356423241143584591603910423578034163638782263949822828838073980995969267701681373052524326692441777226837972493280377012265377622832232019177276968329449189897680099436696267897222317203327781948702379136013352558607057663999179362047310231269506848036562036749335574246902841784484550814961002119800456589152383967214281369901361875327624857500207267089750309434692842941350325526577314736824781243789271144603007468904662889312564558539428287832926268685501928068746584607060052687786366006116880613438628434948665917273666042171261869774271267752965793644247045133029541052817282604447160710223454903881038743384637824136855018421264384980016489636717603544264334223537096633285425147847935308720922389249261943909423479818355744991618801587909729251275433150093886747647397769017524261082105486010048168448853014307893529611529599578964265385470983436347989797885439724360276126993152553060474911312687673405369162387337225677970529039798931706011493651522363924294393318381480017266485763331498493655816213035911515625932753152227866875712752004931089891512110485967325438459250978827181306750975032887484176518469104198403016292625994944707870184612753301426993030184016647349257607641559362710661440913660019479750396549051024544897131130451567753541960503741181405417973223972491059648133802528390848844735865867990911144151674718939167023446681547444570317849126178331253232769897524236609832597019542344560000551132552658536647755218638751888941490598485004785596946568885808006751894535277583197754790405261955667653195373235492930476503989379698838745067708441222722980314274270680984774263391345752867246921272124511584176166647455676990499156160320436801610574152172853114359645205290006837492911665991442201654042638305282948434721448705219712134578110592000177443916800289121565075473652524504449542412529288612095323025607689279975198938748529285260626374502578177054582663612654061293512135610671870038712241196909837607414330584508197263984067459023001053522550496490522993588600039805940557829050142343623722660996671453148063338739891986004887528308383143906835413453920427382832460427508914328532698141901184866447195754528468663326147312633146518903269878250851710830212158909089296383266586397679558452917825788604074664516763388672818436324752287904531651196026031874839730109474542861251878926369835766130208331067746414368632843568688180765431447451042298331500384433927947239723555082801372305630634717304682373817376426628980910181994698825787777300295671805707056892235556264150123207821543892963038473164896506151605034289645603718636563816982933406571583730565431442428444257365622992884358570453170695590113865404766773281033575948329620522681690954717225368251895322085613213070729002499750578173779372267379710592906367183497641432418583774977891223068643868435292687299674874403650046014105030530135273847936967416352669239630629909129394268112826067792507419084476376673898296134539121176841789987834301924739313034766977432611612025839324635355765427135251096272128940672490243267702244374359070006939502436318342033874686884402242116057151491633077428715906306756344567102705447422009009715184094317999894542652968336803413386048545644452006459522883147651974663548069242375194314936114447241918758414024003456041971908969791936541192032497210252623602930787207332334805523221686013058087232556631725466077012603834897941906334500790738015614267126234188822863567392373791801150264314165313957008037788115561641358717194376626152018302313106646524795680703394431205788671501093138974292956163998342655317945691771026819422801248572083339070952213883062151595021982786185380710065565329326372213801163489039749846895473766496411985769465278869206496964643009929253224521167445953656501234848336994185758251779727891465203245269552411175209309248949590682095140783451738878458145707233538257801860202724379162750741270301444729136205116767955593027852158332891269821031705688446413551099743249988229380091098226225543884634953220137796557613152865540782244442099974743308559526978365808323211543583986342811391832377454067687914132521283021203755573391607450019489332709586278702440953920549349101881161307373189512071761926306389913963797983600327820608359584354045493692691207138747404828915728572355543859326865709672370359861016040423583123247333482850412749625485058213929042719615096871846191339851288746359827760471678685548818769789647904490753055917442493873519742237034077356557790928454321255801694487763052626008220030102457911354031590854190921028702210915894477499447176416114637719229656046472150984551789079323910678488886124610184886491543988525186196917016022962874729027607736675409085183568952964536457256782176327509418371178695779894279872208742154605490786687907529859880688080726678932876604490525936444403249492539992556245974770200303831786581094288367676174127379924402274341741139004552673733076477656481720948963811114986260134252229317195294070267597058705517165357151418578048527743289441309494157976206586214951496177939142882131015505211334300217422532868080282998088767391189965513583836442461522419035208674204068741374240389955714988359990951481389228907145569207228307570093673963481986682423849635274928072599361706567180013391132437885299256647120012158303276460168059468698181397608076943454435721636549232435584086553958918510401306453447982262335442045523229157080891031001612346048221447318867297708743324273086682733565946843044618615845239201585262553548600170872279115715712246449656288330658325982929543796687246099725588230402320467368697088369233571003051784849886096003543412392001181880106105521398909060113232554561416513639661491704537677398352679150878094446771196928982006966126666060281044339997060771529711898564618026261453255067472249938808706311592132049390941837569627581906919401101391308909763161163007161436067558971191437901597211730397292801445065643511630751358466389780705642571747353733152021276368559638348135675460590159437211525009080497668259728964635154082352662033829620200588414306707773805037038480102797435500132971117727035251480114120458082167769955764572572474421808348487255223862604589175595093123520813909628208470717193191057199091689674651372478238820883570108769549943740894944680616049099545977943912408167724492016260598172484380017088284705288153435968800350483435467141293562501425939991081542300490501860458908332696630791219708537025881347450549297819870105032906122940536051709667236819729203194002823074129643900850548730316161340831074839452833031356369011644678524976387315119579680274123258174814525800461042519911152945573428585909855373070336401251089906892887574519493983154740527853540785146783111082355912632609663322586335345198000239884784309385579092930751830668436040031754254649359179003417837473289517218640527256623139157822454141182815787118443440680437754693961241090033355803097207623651816325462355127082223385209721175487342025150675009141710582873278272471396587369370346678164487719348318388905046591548656588992839017562015322053155810020290316385739204067897336792251286954110139627605375381366366293043392186470356086960982277230885428401260667746743937046332715630581063528443534268448092570516175464448425798399609868009831434935514433181146494464545840717270051997156623170556598899604229485139220217449722277377539431219192078837871732838422396600279354369323710988853519719931004946933820969842697106598286895634250191225893166838252330134384115906361004610267118954442915340603211568598629827622562245001520734894418062688423312047904406109178870585170766534354657540750806861662602257994475583058164876531226916975517152241965371122666950822482549053698298779038118920883900204683449456829241112803798689849556742042353830693935630670381791018519931470220346751596912409575771884109753121624631578849110880709526685500799803079095129394399997324736996137065854250729186268766491614401970738670530684185156219938569927456066024124219772823098189669051331336120062762417652200870423723329631641371623635790338349805773307288474966789071669352383818678871052797301764576473168718095388430645158523288990104571921713825707024986152001510351955533052086849282950686057300627150878961062663190040266226188885852029677671241517221212496275460556543676772124511529634837651477733465012161993774765644819060691301081844005978845092294478368071579700572110489897901810718045214027925177368952643685218827771718294296887157963803882531111603078790996476951601851806882566654127047312032008389531263760054335577025559903689127346951926280488689520066620034843304083463647848874310924853826033698537801812368225190432413850696977294930910539942445620673096108531714990512003899885408815556455622126984714665390028486894323690694922809115513970940859899467743519397011068917490777579702992994808200339030617675627358811948134255393550650469510754356268534596409971709905278899557419008022060015437477154122838867955414396485432186410990925921974086134349241908912699774145064819713664203395553191876205092153032664084027103112102113106748440600912736531586645048196714180690644343618022179068759023186260947507463993083375703590094527449260801590300631080293630106242423940586901006249665402930585920010775398174814801685130703575204305745579339131661157268411613278355070557779895451087573173820156064690568849976305174864895047395866232065277988672481578426792251766284631957552871741699293093324033615088107045499146118613044205486314481980603672467239607622850826725783278620942120999941615259150409018060357908025927376853566195276219910934335476293863475865518550160537060667928259538331971048835856704622290886934863256870657460752307321576193404780831597464722918439912021219377994285900725596447749735663753916227154402861924713746844014207344148514863224674538775123272209328704504075239461768698054585957578910373573444620393634705723365521644323472916140021330597844884868713137017577156723513418758626448964018443321192427159387636856907381964968338243698770315121503909539274841258241929095690545071182867528057488028184168691034626493053099068289914126887441764975018464310868442722174326630144529079736166126827110385157836325130390879602496490446205080700539990641009051711559520591618233612199430966210784316157427883379785650333909820094574750502684398054721415886274116703557268279089310640175654209660654679246885342144968815633532833403253872193605105340150482006921613772386322178398055686156916678415743493332601829668946687412876903016704321052130539362878072459169513350778786729982905789106586006376723519360004311744581535082631267705899948637122444350714206863650298335853202901009667548147856094141945485076150293674432854714987002558198350743936325107202312669236372405088962524316779052385474425844922927797161435702357278861364473701456730099405895848234926082135254697953627405215715340469195840527049445150303614378999015471606380016943568115263485971762062494540114936546455560014367998818149145119144716405489008285918628757893745313831367200342303576601534432111699690325275492534776815302673351197185433921120676861406519584960888420750175628851359521095945802143120622284660231685424460823126497849707955484316433027774298979881084709498411170757503856270512585414127242609881899539197191321649700523619211286142757290608065202471800566402367349004088465123939905863973292982277352888464529689009150027119630059437267877862303988401800189496909260431841649816928472921387217994451724359802555210457879461633720600260736252987318148596221020966354477823014153811314069343774973817730001510990459882423057330656413821532502424331702630375816098689887400257132275165687605038984658162408440171346086195751969233774102995369494316120741091827047668160053779769762358583704409616819806538367954454220876134221331387807994436346980176209949953137987239514661877758240274842729941884925188407578151257293921217221634495957600653472066244643589624404966716203344973628059735874143569751069138319678196421719706766442168231728745136774742235119414425392116019100082187232205142062028337649530276144170963839682396867141764242311030585162625827843693755757037951020306135798632648303104386300573131483343023275944753170970397832682210419610012028603920341141010807129306158177977337343507668122917971109417484798970953823986660443454003244532558957852513534181994554317785606902565473583770990616263359447140968176383603298755349223016681456676264990089702114924723358019673503921063218836274275942790887628791360480398348454784207570295912856659361516797134947932181473882335521735665228550670822817010925097761738183761235756759200251115391110005279282138794828628333551793384728625783791786442992020509037356852831543823890763718482452643205233745448658845867141879345932947319644374733796266584923838449628356418536345864323409285950476275190096750937185902730880292486438816140198818787730345716564925297365226342794992203452997263466231455429413568993883609943778767106434203565385172337874806992170380945542395629507270806904743155851043883447443993207002123914122771968142301913739549605214435102046533607835987827696730236607842671540570760120498328212085880383037580748963151683422112600652664088812683499218419219183375941929730626283361007602809420376650915157823262411657924052231789099707427274962641010780760582439218728665613036768432995610829099025583171087857674322647457875943821837941003037712952966010355402827436048245858251615853562863034198983694353409489663645957597622621092864416027026708584114253006221470662880626457694849076526574324101004490379929240564263512361857761172653450286092759477747662246165807095053664123239960204897941772236356877432745474985786297175826183332820286329763646147860680329408101261744996617414512268668343585611821413998929756029940697684901165935566753427456114652067620036085805028702948781113129115479172523537532660475707274338582563621322727495930627324015824280007427663092380034737113215386214399639224957653476329764918786605847163568157406673891021092304318466565730351043317609130214572632514604252104183897661977775263237812690287914341727242380985163789803344983739204493100450185376979987699770595749301205137930965270838126856231097129071556370035556827830820333322353513467430224776801210143320910470654635358612878722381555542037678592010758625113037418920978125546606135424526825088147741103021372912679761662282465015000780894003290981907507247454772905696490451933792507265174087192051586578220488191234988881195241002306539680960119545181882674057708761728983766523307321030264048666520867845171418036767482109580695124409682993614569667209893114135635144290355928716969880666787516660121592521059113646677639875784685149790228745189593269119267344598785033382425898835314006071332372479159188395886108039044785879505125634422088144884675171439240524455626846818532913257093202142971072722576659021619905077063534370948981612952368170350538542172150130154597675100825039927188657745861157922209317296124371329547883757134501682501743566225854620864778562814305589897383441371337304687540642816310180068769313276103452652128370387002590721232938874026546235489103453885596592581857561129924017624471093603746872658427339346587082582652264228798422200616858308963735711298672921908926416821899935071205880927189619180146664799668918162589201533473962920356559065835453826121035553226873325982358879745770848746205168377789359675518333386943598690198680954576893480148515388294877511256042885503296094613456016514948618203347591008917767503665450494094444197237036954386534845782962494495886628770190944633102066333953949247836420946709133674335856000695492780486044904992687954969545397121820265147035772796882451588431396581282960834720265260088636308000709051445554365422234329465761267596314441054039103153189147853330635262357286634849858841740220648538426161493217803062860041642234483699185336080954355921953850834661770167619010670448430441116050389878673541421137071793476956205687220957305064064928934763814179797272762457033176237263276775609392159974825331010068765268769756368725831069500359771988378455063608459028119689186360501282182721623874600006566558606656311535637278594891146987731226613777316545993152529144426718460197921321135565629999575530343283587847125818320315736811967882735716258993037568877037770919183920208741278164236612023731531290094819563817815726664761234089128453017208841702721069541211391077332262279299787290791451020470505119012646904111431753728398551917057822495981669282042640408436464273343775125049593964705538548543608902324577811846435199790304636785945513477060271906440668541365778409338835386145062344915976372221523929349068422949921297477275263227296817207093894777565088661423071123644775923053039127948610677764302999973986728932748873873237734554764812457689323140325555076031262022228292813643924870329526283103359824714751444882867427699252923583646050666871278705441674846896744909226238240873331040799904148416284324829163344597313556616486891603055318020157799810523605453172980086453334946072085396392723213802760498291461825561055783807506856843625099865826711772756240145598271742539623855536703522847874076488911950053707449535145578812680947632505362118721144414777436372251447256801897493445867064664076592098061613059803911978728215868554722807394864496832980209773904107584316152516911589559796462359986648399097321202773673991960327536792102360512964583833889914409446364910147955440078493602029185334608379434119801673819293555763617784203470963247916750674974962139770042536441814794113967650609661067809343965896844813477512215032425079287569977042922893224938216987226009405300479549963071322239147943497667588303859135084300370129857141071786055410304153094188840962653061316984729162804978849620727942969723900278114657101370920813847536405156132012134927880614750053352658033045869099313089975976283732077101496879448286220761610072424339083345375272904997334749961222755270010106679260631638955940662230729108495497100859877306097445469390701192789903568901595220192430354734654489493195980905578995239101720678586261266100353690180296109735048654201878858297475708200430361413439924032612504594663557499617713566115864186267947122275203279398775342956589070532133988960668966610968369628359134466143244238003989311573485900113533410417086775110951633996473871169922249494088513714917225869256323733975933048736828660798861867885485968749466422485560894432847555790362974024910607474698749730545871518464310540573777981834969054615212549767903131750382769967416118893024362562356330820287416561201076933783123778872899201844517175787407279557541951158064012764626235184964318254444891739542769003983343329238896330343692505276608015479491209995626025386758489647779243640119876077641052793752670571522635119163607677016626692703805290664598528351769122797475316348404038635302856606094242594401626363333864970060987801845142966147468286720696026178230127936359826292955405511063948185044439843328536681963504582226477949463439188625089266692633297352427489529110757748016371044401721397419070486602734219388682825799954442765996071239974851028610649301691587616047732928552505302868299714265859011409376082905217971465287427754340008321221303388912788553440182090232512881591444224353340197228280022159483762931666131238204315450805147298145462761827444377988494542402992101741209938532763459774817070269272401337746429532738479357457232358864885941807873114063066693267779922470947483116348320846970336062943081340223038781680385251758936444246158956839253467517403806785681733779430680373938225287632787090081543030640115154105248868078503674945269819081531355884984189123416236283230362530597267546708383287831117784958718686554068371726881921402243968931466987930843256969609556414315691818562076566592199837421396212450877302809205123961968583074600299862858172048532628592268432158502790894691104605694242512809254757615081101838294781153056231773203786311769865246900101694746671818839769182679933096097869460261683452168224611790725592220096831335045166235579496771564196827263295124937115065279784826576206449972617215483640839974285586269085377427299814356125149252468820700436387553633132912027985921595354298841827415207986410445388807929511857492634878029072164556797160774340793822057939755291641962722102174750917610308999330571762073974477228946389673884356263775860973088732914477684247298481559663534660871581156224619337529222593655324276663913775435025640177700820278930919597271906608231128448331044723670325939917535405192875551090691051065297253904925415223416807229673735852881599986671680931877315255909756409713143949745338005659860494379404584967619625668302875472186431096307583539955078664510828849353233778303024497944261302336702854840369084339119333029440914764668993774072134368499981757755695517742809258706619632267512159945598459883122152633566376639261496590380311252221476878268949103580607398404306399206950603970354328343108937847679986285353881536736983677977198082271968683145383641694711524555847381256413153125749157022424974149670989994788397073365845237000423941627285448741760757691768983816069855503715465919282019763039044380508208829069661381001302181003199004839133931991820595036632373045752200497781423596472738481733049951130342909974775734085894770005134237075663179782572255937544566467134178974033238884624005496544297627697090655214038514935250216572657687536711109549686202585097073421353140045646505703933493788646795026762694176599391481744634729206042114644883347774212788575205089047930877789885594021588639091660047182769789200843394368635162557128445447321913697076691893416339481425168097681509120733556920996156800821723138565181430385861480717016703162999133972462015110612820238009312463018222577067883736701468258601259164284759911808139973526489792821787770822708359689004499795749999522908542789207943183511740313312367711631565651948510807399295537681444327346708984612793689932584744586811171591678892794201680266113013801964598233157272725307718313924134302250030280158558643783905774103698064724275636038833041484278832039693195242386829141280402980169743685913952514189387223290936582343006358784621665920907133195505634561741566869299610739199444079639588307090914840652890442953677347879630075349685255364881602669882841741192368958193204430988107774879985460600308822644177581325524827982945405087883766417624314821578461388795008829575722018755159611308465062915181893414322341796974557616389914328782525377969047961405360021620171497807138341530087472344034492136707457591740281753764849275346568097835265032457348258200416369990881487586823841663885092266125109160660793123932832700162098730307785972809274136842040257332772829829431533521666545953796921514306516878011404473859117647759869939525645250398216045431062402352066400766270767188910143150060534819810570568229304669853521569900581651361392747560350666357373281753651238164963470646510080273617350594942627401384235710524799626302204321147804666797825154750051566342730240487129082615178004957737022325576100280906917143915508278007460501394698709804421822929749255869558450231316432071535007914279617741378989336615168165987358793112240483515311799231597778544045992954114874271707607482696063068662026736908292794874146243882787186000246014045728191495711148368113778901831741730666629002152733505229067711946889977305647173919162024681119584307354251178319902514945868721719571581477826844551491860957477068243615219336409731465645700159780767815556635490085719627213477709750319641028199065032881850599152618871597694787761316734970066305525776914500929496090828406779041311485060590631210227813720665847301076503105400187989430731747325990249792215109995126529343980279075838763211745776576832586609844121126830952579067588152539275707769867653032692134132446851931357049554726706416716630684240561945044914327520271876919946176706212239592388404632944752587743812332821330761811598632732793264734902097723627212455865933035472642142776885930347584656502909564630583342021119220482652125974180931405272352692198145452256354750898733829827985746521622896594861182533514605172382183073900863164008506073359756694023756930151578557275576006390619204040796789642239420545404960512812950639743289338030779408957427456964071431970082781721914197527424306872969314877383595028880989335388728890643589345903424280703903401711239361136613133241331974397810084499334388829113338708621388975173075476904006165676504824102305230708656599520677666036119591482965932704456483294977150058024214872234648653928533847471281611315245821844513582365670892312125928900067417430995956065649038078919917485940495840975361524179650968797165461877548585533375018651521485116717628362910437974439441615858785257317716849746357710302784182676767152758539339082517279492313098786491408237400111129972743392505747456096431402044316564342780501271281654529125925083615799535819766116305444571560845859760570152095777519880626164920888267741913460354061816941668446183963520728427895357882355407094996498821827629038281670085348797692148193891878457395465701112872303895356078929099143070406403370724319983732960777985047397653592912073126730988752504383403980293635150201836661275206971004311287954358546644430732972192124385695923310070088311601197094829296984335248448363740513492698507245141838596691212870652252994609873096845882539367845529380785655281929958078262549937766629600447091247580154316621980427798375955534997096442639923564982725306182752203108690075066305592453850595049619816541652896513371381586779544559578237830622462105139325169805904435859602657052632035378135188530799478287614738702659850963047946977623750358448145403940680419527077849891811879377946280528523634980728695380724113622433986924378612492849622394905522353040546348340002583729505344604500933080069231438285501025515563571568941111554541991666262028963659051806696228426053015434248969649245477653804685245325300647535890825886422194058310157562296192276612023163961570121926821206982259932385196108401407931336447820100242427744810895020138270024236172440448270575202645643307978020083774191265944916671439166314858475301156300525807129414685456668556141448693430397178303963499110144126296120857020365048690685569555238902339201253182184762096611935106914308991296358876234242876878532373803162218370636809400945366535104989402375522947313451826644692682390041908739817794408927624869028667848131569497196647464443250821099150064510573501440859443568472540945905302212353179951173575966803306469019251157327693693578803608206965059722487888788433102374700481702585240972985320785332244110886298869440993584216073246623393292887235170355053607578204290825711167145003389976416792227203118329238470577932417021350413800583844560929557782876606158047091022501472719900188454554757913023793444676895696180475184189493289421460342168920525043876717814756270950610852568972882146825557542129972532124286439170571536483652902824303686731317846468823953064414962547646366300276640216654732290924560187958047888993051147374618469665766632920387199045013709358288893764060835350940362795786361235449309468997096698923999025761174563314119465185792372642096143788609799028882653122053453320628880720256289831502411281757831292468153529671247125045739554523109027192961131019875439356952082143140477113293058002639545059577266800088467361546654400038844745559297649554752523730641308607535925289555350924480273985291963154417169898195181457132559402055669350292925032114171179468879245585897645962901905640959305944620481890952230765873231558170767612356636903546872681491773294951917659047460900976541123129972306188636230602862968854914756685909201103298244439231838150904498748845642895105906460174585510606294420102637960875226176264585099972525793066002744931083383618070547929838571019204482517647347659223543738631495022704304071414768966931924145993702284304645043279742252307907800575749126916105216388722622021673425241214846570557187003247276570753998511771356971533980173693114872394336849464912883743386286791367871939370477727368667829673076575369663951907226709486334476896165882944262285120656383864626184478883051528437611540207696334358847826522545153635519250122251725946479037540292478288557302243822602750357877319433604545265232247153935890743113379438386938965238531136193338347005764124221279358068516302768257768101261516937762596502276589060230394106328548590682020443670296166039344890492120749146478838799347551031656221375705122238485881358247401276374241373602896015726802485105266414107279043709209436058962585673562840593037538406532993485816027532974026279058671299085788187886335762540187929262348987474133225430179097648278638721558463586046570731419667167373255872958431585591142645507035598184307344590998719642389957313530771886068278395948085129732379551489599715599459446101192148325569886816233370457993503587477096732404027571016119055642977538791658792060696731023076675978930607028361861153123821258839492792990751089075985319915254345805245881282809085115103493827998854986701733565650552213209309696385322443097937368286740729316534281476196450002940508869075155864379455485789829253087220648667690474260466319375474335357960609055116574476822592126447183316737909836619407072137675651266277870333697876895250253070140146057776006637028875977961106271023522253841202902829596954151720506029801671245467603614106468382671099379400172668749883278586000616400618695958195154648051556652691135817907294767493251797456526339813758954411084137476925953737930312293382817912103662550988340853885693889037539991511363623315258959855017488256344028312847078787148949453911143942919960228535771565662488658779790062863418219030714174034049072755386091935262024205698234304646780523541641625267844525334242371500605285439478459120376254382773992930806917350382093508330694509004357340041949187445247175124202894558744933687046861815428490945639925747109342616581707031492257942585589971209181658917516105796574215861991452238934480216630581755239346778464909132340071964716582585288697244233113835460382589830185798967307687125071199203898820517386542558565785486782064856896377199463896125465293113504739829850163078552817124926025791728182437757192470155821312564999714095763363503579637968124845387510472544651765829783500289235780197900080601331536606376492960039688930211948536465887971382962443619156654311831099367787627510048712250450345213133194345267825824894424156652161288405583620286197342234810718322209268062371804462950387752299149322442361167532182586013305077523827165210108274130100311946202931521560332693213924072939774302654216872990262790609827192914817742296919883146320468265011782941600310989957702047335817154874286725330782406761008593342829202871739801921443143351038473410160564900526674234380531645401072627726516076864946492764746174174665696894588855036618836005006110339911705880604752159142051483893991637122194686049389053155185002635357612702035315768844877949891313510977874547450531890542779375465418867106870812630438594920305409455711805984027101254959351544012520981546854809307197782425993508136945039920452653462937663657404532099269335473631019150134946633085344048398692381624975045823350110087974768685343996181470409749438295822708216070900703236785804306485483615381131533496052977318478974834445815588378795236213250744460317427170548092018828107280995342266062238160887184403905362066474160000467788483798031307415130221511355456342228771383289027096364949146275617775023465130885848927331203927737380565164676256132288944787389570793903783812497857115986478053029404733760258504140978767256350207295743900995984408300472614395266157806751801417168453412188067335707499963555112351905257691816978135297328531686572663179798413242324640729493155142482102481122242828433246934112900614801277278329688931628138749927699558495860046908391920340263448754470516244925752878038646442282996009243041390668341548865767937952522869566559923945383991657121484424442712154755770400240788472670929771340147820875816524404625392403616526869232260775714379093369171953310647556109695190768718026875175279609688263125003006238007179589654071538306421334198111541020903469507676318912423481849103721322137746527313842400813069650684993949369045056767107594013189292173106765248099507756662992093669321315082303872866238248971980248482552014393536499319134687713919680223208512769910906182605234269569093333736058453697188985822315386726133968921116531116102938046512820632070683088645362100963771567384093640386413040623065023365754231857614492746244799159075019233341259360371176520708641810447341940169618937389794048752631875162084652402068764059622298514954767377661215745305781600473005632545424794297211603879866493337499979028882192415225683241767161323379208660675694298214964157117809262417791962261559771918269603039891631336212206972095000377114387181855271695028496550072440207321179478620800687890458886456900489532560924773036735127966813297058702070612964887896077592877672096477689464773909202864590776874128669199518181907407677416499420464138439784252671632516726628783488983323661088665254304720353593657006657066516007433463202653302020150135478317178612559986775511737155125846635056523959712943742307242595728499455047369991119483134916992030222515024872860862741670649675421990994240277596785265800046049358290346378789465985698024867450328326323790627145161570429063597854810497495862216165014543708493322499378535498746422083563805188949358202215644149309365255090958312225588654637006554845663479487987332127683774590291053500440688967879691767321082976380198236193184404025304406604169319114750967092695646799368858549380512649129170206131416635017797192874679497339578979878753951702921346784593492694802590324298999076847044389214460271857133423388401201708085164661466181896887417857739184472621242123012254718456628379077916477473482762206177229390208514557728111095673223279283037656157753095455763759697267052883302227546395864150659421524193014526584192098658846279183023215687982805860814090894672127873202428158042608896514326594245618911457649070433774832712122065063885789294272188794177974433944767924478731512148508970277193967560864927284570802139921339391880885115261639011086331341200040024732009366736945514812157452057297401919076271026394353262276772314768584301997527949864605096803775392391359575305610522161819939276757092104560606058971635037201006921737349365041726581275713627657632997922037278129460699077903229435620988468468711599553770395768831028200263225534609501109521252782608664665999900668224208521631771018392176005775267623206548833300275656876424438133418630167937067476877197567617810219437971151548228661271437054217646098689271376529084572940775077454170597607095520738779027574596340444776905565431339254776847846656520822889338404994126795232072326008145306221759136126119441324779535765817433078878924224478237333853465691625608834764742540076217334522879564746398190317996376001762343053554389513470419218973393556699773531648326300270891639467420071891046189801662369141319290064964628600250656122240036855935525300386878988421542983883937256696787931030588317281917870473515885237974224031147401533237769600604239114509045380131263873257255192294684125426263545569756054223092913594664553926478827038147812435551269903655468002886184007629333233929001691706584692704891237153625317985234590603126592003528430024759726691194580388375107451345450891201613598622100001849135258658426466791282239526342042992140397199984817534457750740214813759227912962780625481862085400697853709684172577679978852413725504133399400956878542332599877379686670324912545009390784979758222749918640109416351528059499075628788403363502124401699955817563984242503863523130575745639606079447813023418380087085045825074587142200281895940624459354808707048821108663919678142866835167057810775997768989338879838864497071653452688332165848386723557384741181301553217488583780989540759428991167990101141165166762592099854488175678751375922578929027939773683426653905560508044306871057399072760342223257161589732790322942918722967593016713102645921589883632031512974023197870705903967259939658393814474660167121918416989749406112110006883593320905754931854028359325070939684694340219406973812845043593125425628450847262252369391081535792593745591368140146369215799718898171084561861655789113939272137958132916299564934911297761183494199032082150210959081992644427296117043002144224578480242715432838734375201580222075920375303708989643857194088321024526187439547071160913586525239918628532685091688262507116193293615276831683268860233692963379127227316416956237900302205731022626712635497869088737132095107847132336287952336419268907692600974385722259703080094605053789558867928279436896857424948200445808041246716777151574787341241692045686264045524809708009631876332244718527537949546101641316264026166313347384982647611596989414712633656639003339372227965276019946038264255643836476095419276024157853780267453680717284446980338958818913327098840081794629950296541904869127983248585602956894002645298116213838587934212876371458469804473622810540022227207840814200523172034756740244031187405113775620265815972896796160148335717216531406502493728046683297165689623587221886763603812575570684627232778817043529201854360951689650096538049325418526196369664324345207313631518910877359259191779075398066263350416415557269636516487733444601951965103653814368905736380936925423517790795131624811235437675824286579120877391446460269603978450471346123618390913065255130026647974506640566176557958340403001445204912336820655769876528622421709454963209270817473505862422673483014697849647634430151548010082443915455150516224384843228947776127224759310766429695570142794767839071766009265733190504485956968602300204801175305311849027971367573949321533748615352000686786600951382474098998913509593912576003030867346624155931491813683359521810631019382584849955390427983600873079397844460557366989834083090252619530205821241411648356205079612796928509021193783460495804066154042072763545788388864083450572202372048966298291993192465098953501837084236656326035850930969254984613526420274997695807433542315917725262151267725535511866315690998648793454897334452174942844329230924929483182035774283025592641902279465161120615993198420341778843087022152812306566477787304404471687100330771699093917203684565999505364429312236498890194263862011255878111407285317827384763901074769251130646925665161500342621619244509024230389419297743092196001476380236841178344350967609207478308265077651155647977904109699326267585437441581459979012500385036710243849791386964205542259220507669971936158613113785595580207954227508693800305922952807224581534229572499336044543674106930699351914436139310102564847520167181094997503886311948147043154106700170792631902585025758685948982757506039627947297551184264191336477262966469741797919381268938317273405634814659918687666961380619341331413948521617323537613942250468967168471597133652017029257250498370221020939312727277498161648067471170703827474504547567913217623572305352949788147100749979773666706923285566356730590865336798522709234621077702037490949245310776389854011170816951007093811931318964601984031752289183165657248094260127756303415236350928517323040817404986862474926810675490628642279449932254126113338379202267031547084117095157724406870895091694981919968536216353441545128262459833804470414588170542502798073399908420655137212545585206931076740189223301051341585361170183529359631187340055751000096326620074938879916039484147673432242712455766991533017264269137086189675642215592512862033459866346651762775572929684926803623046402824955363962966525144457802103935246120756148301276369348091965080942713928838107509628782433709884617656507814124778173805658434448784972817825310305045882230922074698246567161326296168940425247624480680875962446681782769002669009912842015270280844387559489898881892308471517928819463958931914620741153716904674356584523637500368488697337542258970874479347445497561944052332231818157054869098989857602589294181847205813499647323107426620202479912518520030508109864874159978397002098653958999006644425070195692464725739761961336783539992457754949211794999169118080925019994628984876560585122094472819424964840831528284964006352124441868919738755607335454871469518939185459700549927890069476753819181693673354608037360249913651194131380411580778406591582604946887364078237208801924707976724821027359206153868145300818244303045001463163550663730844970000608552133728225972035917485661098789698853346003283304638861693970709284234217356666504401550830285322666879450635835460577994455261034130876762694461274424835871022443243552179581148989676188808012656721049431507809395233966056780924765546371842665798427933822716147804132499116100598306427522286581444084436491032371151968684304227978874071778615481038954758164634754482403829914720582231011122098867097254613034623089761332090794905709793576931390744927560861583939750330269694759256259512006037711932328759395988569285224009615100633670181033392777080526250009118538716720862231867380436227716838407819888978111396615268468126452421535675919547360048536566984408979954892813692211893744154682980511498104490211919149385632103310443128873541603649025829960935391854821596343229716847389152161789113803914298954956320734984423481433574894321213635819067961579031801655261878027036085247881949793601126835813338417867881319981700750463936148477338896919514158124225196729291896757612377431999096779667861720523803269897951763694841499700614412551009797701975094478875202526699940161100666180340785605191448873986224019007823656238153702903185290337357889975291536189153302899465092928398694327209691893360234665383511510467064353811464606470333843505507210950124101122428195490683312859070860266371452235448832479094566127033236478694130554671296807552825385580957402728937042916179257956846603926031600434566120242076267474960041550526836542216968512182133876937090800684420512526592554013094858908974891001401315375093730664457867199736136542902454463510807790498353697413120555152770705573241248860946471443938960131552253833973861593532407626870967544207080053594361900622473286188339846239235285198390902373305319871906281018327723836722023205506787871756235921834930250008515417997038408508054121541700675019232981416875868468469761247485969275663062125323562385840530261570462494599694834687589390185938727477160998974917500826167089286822283120913847758854762749401199635615443567628594610433789452082122088593079259642039749110755516264387871740151477577060561982185816355868223234084287437758636342967603756772276423172833782450968912870045161513583500144116755165588024030093966305682302991602913040685871048200544003160277872747685651752558769766278418577275052946918239361108704794886099099059629806487565901714554027321395197035861127447791948443977039402965106162308157852882149802468871950445420159317426615043374943580850325675810953083108345471300560599641634031866636744903439188012395550363918074667729244930768389232107231143097739887722095581389492882790809865722187642075476750484239636000012175454337374315778988791314094517193060055686652880624792405462702335131672042188613021005401932494371413141625116290612624655779120504640723038963418281822904713457548512107772544128054487893131357836580632111837084832839346324155939487548857969040858582149370337029193073167764750015936954738243321439537129476404719970487079721852317860442070361085915574720986258721925241885423404572150575467131495920587301116613381352734041705660600424990001290370707663824895027631239036010488269308581365880557715420020681432836444950070271099723454217222592975186745973099775976034625397403927150687170055506215156098285448497833212437860245881135956724656998031803379081745300924946961639244848240680684544231232646415832042638912146985779955758976349384407998215421622451941638795258472892355087371272058631853327685345040724315175503609727548076451931185587033638091432330118754328331737917598598785572959981797638884739933411110611539278029432969840221344545363284052609064534739363575493898583909337118114140232575904307832549984207201379830139693594636920185528288372587345249494616113905017574287327434360161293216851701415677714304612938570428729443417036599116999192593760288513714847484940578356524927287902730836900323132378516157135345224851198800297223459369302731567270999919060636747647575353531139270432199284061009858199721167548111854204526049681852535213286581441551224447622276716136529289945411113091201611475336276574792038103647707564742229070536899464831057616378895810297631129419113127375212614519753136398160782028939232135379123460977246092354334348905467705249873695413696085285550276122980139407064537265694408677685047806079111766465813284526293053413841410897468352901596055865782530098910763204467019902687141218592235670516128264043531442054106866619888300859383401966439780730815233378780048482562212290122265858549605374093743989403852270905500830871270748309762975381103386417471741518662222702520271224651896106839738408490516136659339211923054938172212480432654953176499674542035010748295821559390688495910276120368062385639855001773803500247052875700651891037265946332571151388176152264823369523020147183188062629160454472454522840924221795937746540516412453971429588467486962190857404250303831731767301416085137204072285694435696632898183485272371604593102387674536781638783585312663368275763245168301658359422247697537666765390755888384665597427252310916069327628745942181268744571244460488953595391787506352015254405447674018628741340405827431775683201162125750221648437000075480662514192888147173168477787451348109731831867816150444726896692813438855286683633692917334182969611293325349444867841664538145244009404849621476528284064643218860438707691212582064939470346851867280270435409120886767692803565885005102275735441381002885974591028813163609781198666922531940032417831152036584258096085927427231685342378523454646454258635612738107021437065535046771165201611247026953117577873443150896413033894245442990227764637145679312067201928835649159474311629225219313729324914981646496187072297357490903973410913205518623614251675196767325336159388880217715770764951885013633780267636819178986222066297449414779682660853264021740347734423351007015782038291546240470609777298580039089572847744641186331600773229019585724442711569534910782185082748328832744757777099888166057941018528260933824134087909536065316435309581613108298687784661785416772319869070057181906781829579255703259933220577546267754124744925875635011176882319148563825563222554766995023289824708321107047344186750710541267147625954394825360686428957334501734823989667283384901428997756029856284181440065242316548058738571322581751889285962807210487791222037787359179638599859495565630887038587997160694252399507128409242934486283963814923365023908413974999655928443943766445561243033098321871851008938840889448167476910462331888844001562216379964545357206305469230657007467877025074921091298428250935447051382980848897864961803885648230722811464836995646275743928949585581656530627599365619178326152856669285369663214863248051098051404098395232471119246886839043546502242761225110950811247048399003788062025782489012237427800680580223600368554267796986019374008796809645766065210239408208110736566565138856970935159096549671772777091115843231066787099178373847390496759822375270746874530064311254673445236042317400924993138404140431259614684414035295869533126831292161197825893087822282881652011486828921375562978412053180831387074975807013831876761316222023254020959324168847717876183958125951723489914453277749166293705080553545669371633258724020850515276992947322379438753553742936127013610725105979929728708363686599449002613436459791270247964769019277379486894801791371236389654365508548904801359819675534964331547196862649144460497177775865924852150487659186963593704698969526334521493156723579487450912177007338668129680688179701278157676865276213746280027406682839579518540237740314029346812998054771161201135126237746549427534522787769698738947239900669715866792353463381387902241691976991007616408997268291407025242162868540107402564744654422717556785142013297332591689841186407205939597697400435623133480372248273612811048144868812406131370372775722128570863633237517861483577043913950644965542972622229519727489075473052125490439365843078321077878647219387683225251831028306874677692080498885755070862756677844871791562313534999031372608472658663393783414084726541935464197871868856068931925908533694524928064007209079935536313920480630204094889239944471691681862233688417659107341444076321054106999073493840794725001636224182257624864327191922639485320364381196425181883955860587874202137622329152919378804374683973412422575077316514495770892127494239863640573979580040359653811074562831417550620804307019531853894599741513236189132821860061185294654503932633455818801654437659501230232606419535644343698991720385596781387736154428658129222925709100900644380004018660803794637628990791312049984787023874926895029843703130479459795546749882485892987310486358539511069348393956737947666625427967756854026234308422977025983873410449375969182045659330556950513203875518891146962438824927118916617669672917914749411826916868859948265863879246754006588373269975502529208021314087744915859801220388062176653261885451877358103196636341182849359498975733015698498961496687263404889786459471140720664017110183418051792730527814675145157417910943993643913328101367868262441442921822431483014996061040673852789193166547008940385915512192377758561512268061099306993074233888089429910252144753307276571479647265501263631653431963719448437066099557547889427652027264183964421511829157298417830978654452989220779760948839145943928269778094261561208339348615168534356399268183986387563625336475523525301926995501311326740036988834609327066993058295255493019019999937355655563138656017723695845461107212892778113029488438175536590991694268568764890703244736696884753956460462858254868641039079122230351463776456304496913616439942920423489250909369293454740160504155818793150542803832890054521187122251806016519624462251549644795834861538027114866079462977727289162300033432767541806095800321798802961950795095893517102121045800564953465973434953973440032255444774930739522406380563109052885236540989711825996911537035465078229185717504106447770030706965116557666275875333488674169840268230040258638762213395420596743853923398268337349064606174656545284045476168749430666887618576232626886994407378413925376135028057306556214597971394517097111904982661937428818940198891957077794525715170679693013975864619433493003500358230351850971908393903310999453200401785783982879398994920951686919523856407575644768450055089820875947589226383778658110436726904109875759304163363717487322002637434950794197069968555727090337634412799162540063615529499047740210583109107562281203277599899896735398533615869605552766028697762129524218379670230253916273981306241113736539836645938872343494628482878726171758909905247440096913194475801549345620049474893851787516368379074778695066533847355325202253151798864500213949840378090659378276742878233005236752234701068416655489440619402670139107835036258877433553675165493129308776684106383177941291735923761085156589923822700838910390684307664349808199848687137381380148012003913095232265837351373049432947371984802959235519452597051140347098933189793101479297521301260057893450240959366622958708119993405731102773654132576951285180145770002258887301131887749716830472274453695675390981090316579983750969053289542659149948122420597952203457408935652367324662352668811462507473062031138038617555435054798027230527416449884209088736708667450229614263346289334191123273382020269862563386002128339399392762913056438871247670476008900871452684189644955621309028984718835305984957968401607665284764897393176188129407043672242004183682942770886238345683744941564837965523052126216927530992194046233127036861966310351574116128170773942086340004151849573998151019422340598505454466857410074206291340818778409366655350235765940794958548229757303438563653624328051282609661377402349105984654601752746262834885220362811752138673868288526445989057266259256412811775930688454795218670696305888985011859993523089960423004042609428654200786106669496012802024775073218722196834680530050575071140086877389106159230563859111787229608616380868853971229734305504716910496405323820088673421552412732979035328550467689139222118288714956754090942092428996654705871045783079646889720201700354344297053733783947799036894615705036953946442913572710939081150907186904232113282939762721182162617438740614597763996382770552173924250453074690374861539354600420296478221564963360263107380451412660709623008092554300231773747594811303663750420308864720038231029941427817067664114795994567035675473398669615822199404238329605714275220102271753677851329640561855424420059712030869415419404539834176140498341728134344833669755090766161486520044049518923942695339498593292880316811577730593466287913670615760226428553472262750807632863294526970899230231674885587685258571088156589355765397068117350150616883440773562783518522635877443622467083683487470822106450593744388551666643761972095742039229881442713306872861155346523625279037046806632739333112760062544489011464395108738778069826431289861284042403160520310276374666546718434421662744973215528184465785385967152321261671827852197839714527988958867785105609847654533542382027386513562006796264806809110275032523859528189692767719793974338578413461738019788053976837327684348979817380229268579138936908558736419963851662519571621853570995908586419605383994469863996132092635782045930643159134249868155088861527742020758997600747497561973007258173400663051143626796350066296606500357958481407177187983264771641508394013538289807218430815676020558570635800034420523855321267685608140360746478864862634124117020181595126441019199945815930577847430200382239904063194274652646000572122830529872377791112880282932300167304638337172285212742020833310447846663183549659483243968058859043323789410652448855216151420171929266334014075079921235073704260183670378854547089652926178198249325491139210247531849987183427562540911360555030429239905024069249722591847093614408421865762781373592236843126666522124109906074211593764021199253447774166912422093776824870714599382021435702463828396225917254267011972918224269640007340196336497656568319504483520394608569601372593070272056371843188233137132841143314480610243341846790511869027375296275304139904062779231095709281907324419259875994752453233098644250475584444542765954236796190401741376536734088696026899158212790643356759588431153311476797681083673792547846609419194279206702340407071430650564393339485323933687612620692025067320745412227094264582085522020408882002571712144360775485580623920556000815053325415961594461546738054502453034824451281922243851848444595751172712448599234697301123620884189499989238230759942176532552236498599602493866200631573259517529440561036345107979125720700889794181998184912795562526976190303098702701852085501101667182203295874288020773369359832664096707921520752893490939999814802587946408496596880326350863466387904686331017948641013915801049009157341005511811157168804058455248804163276533819754921507677798635647139527686536909763681742773203935263718968983581074964227924963569502842931943120926634044851681461914189262856900287896044256041182690167471113750816731135622670414815148194125540923264291046056178957835024272018301177095883310095273042232117811384830177822712364374380145952911267301441552404465709347463321943963371342242283746350518370727008486377990345977008466958944597207617728194425435223499850480968664928955221854023416883572916865571901296345142705770029145645920294688328412412867778946735480194588633706660247068506081754853842191520613682309632982055547241229808390142717909024184061831229813558682614095882423594184431928530282494540695125372083716070690140715701428810020245814656083602927294492043144298397344935151483075174499813095247966762640360317103981874227859945717666921745662325482992033450893063654622135795613820681179866192573119546096907829572697360090240887478984241598494697408911811642766739254603401474210936631495389668923662795150246677668433302554979687426918657061571607572282969914005345843197853521344972870764594793265162384244620624068659103303784845919789399744186634437487097187288138082808078662847801413998929390259768574974230197937486978178863482625483753222734404603486438215838786959425019379876966518200812393090342076524340458390440351677420666202732877811789486270509408033640066161640223837678347577395957186801634129296574172517763055234127304859441473905933321155904541858922999172664351380879817672239760282596396926574949423519148715681958456678438442687865608390399828696869030836885326359332544205573157351988716742108605465307677915507927842940581305085755635739867150605576921336955447546679961644998454488375449866888875148474153592732248666511071232885698159256143261054396281888720133181245486310220583255316987061769371532156074468718714595084767057468642882456654546019997352053398125522594813820734175975727248690739189861687910532349773845506777076727083617693727676950390730545681779393755338633647034147617954886611924593111905323777997781658052462173915778322853662538028589096095110117448532824737416419309307514645119583099641755189244843858686810709931493201222402530142036377674448789277100050029368767278679302590511431896910261021163627020728826409146184208789804911319561085431659289633010189479374331814807600722024920073546323553657128468515927413894092851558787560983171060109269540070241878634013907983105635043425757511925250183652996034252555055210699178192640084912269291518339018999933802270799154809570584481360555142640169213047759015352972429024787884336125091002272252396367128727644430026981200866963644818144150670087747758308299591003362237882036087613911771201559589502421687593287605850412567125304431878424880630512817498118482188785257342225195949829931090989478753465777964894561152402817510686790889915023745510624982656512231291069888298175433307047276309082067693615446802338485956844781405871617107786542825471133256853234330840593570720647001428094456532563943902097179208538297321957978213694464281982173376020883440172105152485847972586875539646218553552865352391701875594837850884864689807807135713784598905098156263616880872180018814936975940694297844620366139818603170632327674071366619687246331445261214986742578653243248595090334067909142784987488398021838407316761591098215274839486603860836019636700219718341202641347443167151652053412854951464986970094438049236599453232551128564695681711841592423741250525543717798389444145981800517388805908195622806664781407665821583931276856887170540658948563699030146419540005740180743840279911630026693234315128867750639187988835276790660047355369523141925759981380330064327383553122716910005801888175039574729216787844679860719061976606463832975425574110582667722259066979797787444017483430139391050275155042870064228483486679636565033313802960017198690586892198387988206791734965924588150660343865353088837126661372963730998525341143698158787526080671238163342298011212601815900792075454945447913715901356081262235563776861738266612097441233195035703926599720834175183867629531207907916333550366995823321742827060553801825193775401992775114014723451725158312278025123141776799875586855817731460051220701450086955206225731389493142044266987156180383822222078303105138203203588561472335306399351031013447761136521851946881247964538329431918004830328905625380869792326755775966499797452070323995824913639079786769261927408720744200983791548501158788816339537618041690450061358775736501447694840663666902660850996582500323634946580715583164064986442447530835432905682948180658771715157615389776562754120473038796974118158346725254795112747216525834953862015625070172889899569749365070183418802891914584130179569206961340711890522413524682191988669954358282173821500429501429899843649622508265235946914232437798392540479361599257867972294893800604477022746144800044403583591613048996717990984727246131940272661386515640851436860945916048115037754989455808013065026264753439055999379911433197762162884566930900274461207328670844731219205881889457715643990647060117852017057701100557813543352872529479835384926815248079532291716883299138118116257903829868831433310497992556192337641877010707333168578370335957193701799355506575303837186634691899364721027571274699750581431329611213971718987459851099831648816532810368452567373919418305003960894106225768957081032852271949501200533595905140786898725782030615338997981363381778518457587650435081492230147580667678201344797140155101939331822919062193330087003706088174931520765200348003883920899941140632477597644019435034791651823310047774823861850601080823639818711931453243192999960369807513379835914366131267877468811867378985245622794319034474456835977479337180325984814796562885660585230650575463827583099384206914514844221546878030815566287386819825594055399845021402211022825923978331384644323044287084462569971167290242062420790463663104827015770507734688402530237784524242045065641263555100813708653972745289598592297387828768080622744566888219167500300106411032420199253971266171596794452190532765919069354405153751772173712541873498119878751112271255212256144460232552517096781502740769257273854286409245088787808346023980898332473501920578921481501589081034003969862365209461386319828277247773101059751244401462765696858570147747009653325945987579702179683105236635481732954647561894689615369420884040169258016394965971999362397945620741319629141232643193391153604095449908628233767167931002127531427553561152851033258213701194655329118203686464434332792834219127138707676182720562766375018280832671840177563315180741906423837618669846937581346362654915672318280016178735380002120706331975082712956982877933248129043835513864685333226912173640027972039647608494302450033632551260039572393802659350688816140097574692534498626205915755142042884606798172693927405689505776591440003691844366819179797271760724470095778869208596110802058620211419716160631839551747842873185299759064179511409517001976965861073130718161400675432593661229971811467511172640494184817956670782552348254687572070592161355849122132032987505507669098519921531133769958779448290058544164514794411107830114177294547194739391069153139850456361085593313181374166968813547777111781679480533299992147618188500879927598500423558374146001109506684159372198192869706646872479032789438626306642119875734337721841210571046758790890154104811663374754212265475778224936779191728742477628554132859412356655968980762940708277913366167434781524790814448938081352539591601050347279152445926833628011489473276718657115943868833833536980899875675237345385592653723208704262737014002521707299716927497710723385513663859868403287813161672689113899505020526562430427147699914087275561103715133582602718642515265807707764389964318114172200170784532206483635699392298032437171195357072135957232378316428608158565241034203944926185998646414911868622246204426784146756716174103553466685019458018086768788228090381208839356169309740933133795690319980100220172268250712595947407598492105514950574975567580293210850706479842150080228275253344013228682495882484154507116090832434169654116268617746327066873950027481587544146855901032395629627381774982842897924538674794256212055466258167496496434709542765656992962149004921171215488363916277345429956979388372192759556128531433889793614280358817433247554754710329200204840236079954773781616234375260654632817093386959144347497282704818876084817796229999207257472858889503205710159282826103532152453776208734775914656425400147669414490119364856279633850781794179436738853127288999666106566241606297776345078528409351144556591967936979463257399438154937308489322989270735143625182942085771476031329009652740805529775097603287751358128830033180362175045541347202405668030735116294691747236541730882778114393218942146220466948155853233207917507956162478405464423492672785586256334780396315010283327063503813245010061272386110636692135512994946360152131548719693970362082913852114862691511999164451119040846700454404465272254459465913327054207787432995425861490473791279235671548044958822042388825775968754099401168973897512755338211516617744415663420752963743460068473195592846737650002328899276523796008070043135672793707645983678753043029503672815268075017057171082490463729108977976693749915310105214409699932798794183001334772551144887678687597705297714791636017123989500844009480377498816369590289487282519482078983015277212489794409136144535316564240816944089708859961128930330247656004490053021152200994371763162148349060773693403547349811897773877467430440662719949339071711397237252211203546014894340228755408325020661548955534261712816248432081141192544385995656134414624471141676716990910089161730423317267504662222461081570413050871782959878930924284499029956207762771417248959688425750559828770978650378713922286239872529530382608605480388284692938647881071327307962482562161519800455364756443144837683620445359184757319687476552560945171909068129348218615299221627102281364158756199734011075446342251900201912871698201294480382738545082998913501571142463817169954662200648509427869099413696975978658720274849592116045637709316920062009462763720426745793499757063183895734496420871428134927700067679721212159289708528132185038989939086028994164431293509636576894839662099078755539241157275100981301445816133195542787809979002430861759305071019555370236841397894827274045995314826938293497119962312289401902808299953667810512675481617054535147927439013692294539620731432332812507035436863214613308814979723566113769226543354765681419910632856502080849731424350782123039162784338460324304959332740313112611947780784162527092766846196256020253419934436613681161146937017725376982756592484488817529438454173228601317463441564970291485553216518523994389033921429955607474859636500608970362927619271925913155180807994620988722012863045820043755815332549897944118913932174898136176355793569157685467920906602293902347817503062572751639477925476589794843324233947169267573981672898207498203347655351163194267042746809668608684510764363767660017538469851442727682623057458027518334220671495293840581636158500659687931192149677607320370344225047186243678250361888592521954793764313195982361929925564535498956595603909444211161286721780991042702942847985816026051436331686753417421104303478161843715868228245941016842517949059638781051342869970938755719276093663095471839397591851521315943491699196071158620117738928675666012405290192080639145160584073321283119465775627488031876336095583128351337935485708311324745993625445603152784671911528893476988190936782612225704650817377783770685733668363388387751110179085681579304340927329135405898927533155043402692275044667849505986184388567874776161116507091550710821023232761281659640467903295040102515930848343499553351182296790915175175063205031486960428615147163319708057666589754617635985546153443448976734682185801257834474529009907817276331353048168825547692197433279867735634562831458746645818088947026938514514726563643095604677263815252871546284582521383504227166134680980174381717228284207874667713401924815363660057202169202371427701920494070707996924127477299678875882054452909888345014846812493245706085244130409168750766414963209172000951788725380716891746855042941475743762964017364823454778831561585155922009309714445235145134548418882949258566724454291689843079410560141527262694307286986780812477173009044919538793153141953441813565625333956710497755894166903434529277599833460198459071182229446236169460672007854943972757443742013985336265426732389095670828076886606651166404727636317357430544394923781853545068643256449685245427836642313528072475591804525550567932686992901125147799085520446832413468931635407667736405859740788839175354181172916637072426772286582444847030281821521170602454297271106417455667421969274281027613195291709546182758517220750045174682453886368423269387157194618441467901037092457197880323902015072422763558790591219827375309681211850294973572859701613343102797824643060461177588416796556435480280096118358378609263362262123288488115435471583374900552211823682437295028004795696000689443501070043740322527609425951022464245737626865178880427668554209273607434736219436700999054093018306809383531451498865147990180454465243154635702504877591881326840170496852754802437471955652778802151595969621159172215735882143496529786011588622352671166758981494345318689551234753895442577212147693400972843056277956700803359635926931972189790563175150823732430548045364676834185907724747995917854023441109375956509057109086423842777639026113670789392661514624728870770785903574845752586952396414464828481768861772545384666266317768707741837006498345423659216307924004172110229856127709214018145022790647768679143987008002496666405953975612524518442737605638429099566805771296145509652043507915554065208020730611659333928852706423992632518918322810674452056151059175374411688288693938633391409693395227030618292661347311198300081863221786942264195339266744363595851008167008584069205969313614171902491692470638808563026533833004564720521705989036230655100618419164595734521638589883658635728249968593374451083151678160470291541036828882162062234128882262336886408381157378798138721081498927676628342345403901420521747846163525168061057121996532832673216631300041230961989072067909054455062291031740960680055543598828344672979413385624006533383498804913575454707722425175158353444666058956973255777183243141038483548645989841179533523392130864148175213587375276192517065461271035976155119917783604748113822279801782241816268884361723990819363472834590851002755925957535029242868909931952129149148297622425773614311555623007751601632036711503582719733947161199843802832757787973748767867059628072893790557541881253150417952203731839151504113083076926136419444856568080848456931640627178603194848267518355897293544309171910067163601513152763932982702498643318370312135415794230229067579685763533560284478889169753556968695024277656723182390188180785837018657659033791438794570213556714123460160246762344270965721104589365562690284408081580297516102165458955200839988616680605901942571738717888965989673159359305092952232043748803467381857431766483999630485958386028407083013626416078550163548411365547179004023711374952497494367536869598121113888385350094940550054584570565436394766531344729203002474826540385889456880668412816986246422748832726723046446895213944556398877560770590060569388517734222882366486017036958702849306289275458875292392489943022856517640762454204519244886752179183814120691158662089547830903971626183009678895872445396560838573487015895502800402928939109759730838299258620109798923295270083827130366137398482550015381920804530458456866679118864694930549383026622678285792160920801089099505600888080925775568702032544193978311880578425482856979378605440133727712454815167516261460914214976067651427884911888962986675930795064661444441405981248914098132649974413040570388801129467545032149600220494418043082292227705936179953705509716409445033122392962184428718421719111730418289026075980949329885739958703998224086660726614682422194141619545141937220025436595045254066183347213591972659374773620512289924658548549311498806705261329128846969923271356302442297357394140669813130773262627873556298087236842982141333498324233128964857937565385562829965109216088504736149927456305605652717265603995213263699392838439766307331457869300980484292403360703009527283786475412037828833758074916608637012780037366155371686841933815570127326913436259039424692776046553989393311882653081472917001870705039480040788609710872388013975736975855536954895471239344767580814673264483716136812867411194125602917448706109699439870128759984711854949679361405367441200748228899544025918090140868212359275152851738727222425862882169356274118181093541171222349918699524723885140592459668265705749111939028652802570944477569556645542365258609279687641558437870818583648351881759607574503749338288889421308795484050523181436035953018232332999985429034910300945569895346421237638821992053459748409064800960712422545005208812570371195654028677168294135906549834301185295905234477917054641581030755735209402426054827285647268665541245616931411353642700298081791269943407976315634528034834028888800928716018979305130423530886199455400121438968124823004953559622205956183875385007554500398098762707480634282891895451630187983139024607451157448318902715454765721157536433273507999638083311042244816786551216973714846927487996383341159562877457563499500451598839383592531295001749422232372537031909937285848469985802573002954951471468769364701457701774826652356217458314823013831753714527731537083928568907788734542664595579265777740585073378668388135658281663099362053578890894381499769645409207733791891916873347854589743771975772417948711753282660703002829860164509020615804615161357045986187590474722986409660088416098654307024675460307616789016132748581493034355592631444805115643411749307499439073229025095973416168971101542302180807058311349609201755608540771558673333567062602906881671032055376038756535005843324462859601211072829753716425606270153313632281483982959855427618966038719898434869239691865170762311587502754987348932830081718398477228903003626076105946951801883802207208645162581949244872581088726513396508744174244591208095981308089028752588856435281320162341849008189202224682373581608736577633556166777851111317309523908297030667986085640169523244710584893175062502622408072065638024649823184189584846463172685234697503525829789026807065550916357444817202622670846208631640052519435421106873108551051153632837844103115070947459793061171666782851651787519003672416575262227793130003293911152560261970661568745814812248745089625718381249461908720970143913809068315593351774103225958249833239370866765192143810053533713619770193803099331912199799509822423285984116161990297063768474388609477031334816363829609169308593534168575233843798417055990861981272633263908441360860025702636805713246653633673023157663155208093254211331514116041825515927757894949444516682883542343176508521805087761585002005970293319908040155565381411446041845323777727429679030534653612434510440239209678507999801154549423954154415984248213499033979731355400130569003570344809842893322307594151520947821821430975338896147890886566066389753266708746848387005773657618449195486296002031069191592914132225576065636065239712272301219421177327579323479540657457579650113358998314443027941456258081087497387632267061418014787862511858308063789009627078542810359289793341493709506135086956516163313649235000338294641281384905441887923844119896803928526441029541474696766878785347369643668765718194047601766751531743953843650029238007780014164577894589643360511627294788657330308555570491752872859820430009354903200781854277726055919872825225536202685507601866909680186575393669323916918125033841684631516756505434040002488433669135730179541227709633073334906697218870244546271986528058133214978393669527068066037346430055280319554643963099020142211996933953009433270392140394591281694190402827099461289164496206036096846689705973123836456857252334377432532253325629701243998779418683550461319720724877966707792583405550283329936619086166330956278785115238624969983389209789421628340556202963644181820809275013661466835358080433105043850047299388310356419293667545983805736483966607748705249877913179363723918546302285670105439262078151861958945250388560118715439129270188935933564921749623656179350908785229063636325508745688946946696617247796435375906478616090449793238275224666032566651224083844473064570787279570180772920567024924213820858381323790800472929090658843192552430690439014521750267527274807820061006489885215309648017807922019974760057152397711235523107892060396737949824825838563469355377317210754681827556773696489666260536602057712184117755486262002545781263851543275591162123520561733956398516910925804839118047720422000796261832425088683602537686774502813513104044911763884660624408034306706938890893911057874944045016184981184214408933808452368642536250404480871886590110745656714790939128172336295753500839240307734842995280960980326883357951252748067027494519581388606815203070825466953977433606075129543905615664751530078429066925745707815186675765736962735079124001669861857563797480339030772438442365447189030897619744423075997882964343144370373927354025871958137027859498035013017704317170373763361468986592143130335662332937050053347384035078482071284211518578458936475035072474013779967256925266340302273631112775351647342623861820094063348271339435381340705760253470323941350944310300387506350250559031797523992485715547978452718568765820507972288809927549641017946157117418696112247281969284242062228738868845305247333214325885956734984009771733139968731021934040969291871947747029955440867420518764445511869364384396987868868659934319208915423538906058546593707873811971136608386294774530559534280556236812512698443171577926229632478003363595605678752145768612186186169543731478175387647691020278259915618964739677393175585530667064937281386868860966246725219114729859189816998566342439398589721821758516284908928409043502223574351369971480484502826647433966341657078261246385374730514039704457273902399142809578307112110408380510770622743069415379561435760109309829145789631055842592687854422295281778420998548966019119607745452485449530570435981228662649505356849469666454976049103048287020245318381969885136959813457451674933647764933364893217136152116539657356663919395203561127514546177175669156668038820324670116214275752738296297758758691477436410270368451609674981754851653579585909537297321446235519025654783295029022434071458839707473176259799695295163033368710515286894266349856711102276862719985038255097659053434446798024543348323307507097359874507998247976697546069376947349425220387968410025778541322765113544187356994941591561249954361189380746105394216947758286673333002912002446237663973479279660396292575746694533164544087752220533103884950731126500057708308046663226266695977214809161554713356612866583198267842009658016163922361565957206672216975530523225352020044067541675173988863604563246263867603790633912678958774974108432275440561916825890351944122278532564539333028317056642646060052951518919568257898758497239510979259286804608609322678666040276126826213801405681415952126022457798950917217442640359688626971333354683473590716052109776499895634491613792318894334004244933332083684954013621083677426201133966071306636915378052657735664788905212190211471342371521552133185761192080402091671445369831655935451804255170909954497373963938056964256736037965832507003119899971840585887924469945182758835523083176450506142970877903477217431363820306989659119358850968492851875741307253018936721608403738488007771570733208347816824649493912976660972817551625216362133670020148658278180634693291268875442903966766179735727636651345497959905519409352635525412235920910006662701549884212187208291045544440393413546226845783400678334660896429274472808315313604105810127880000062797763313144187363278760795628368778246745967738553773730951225170194708554207904465234558185253101183431801323708886009604258304684935884071466678429860204085563238438322133580255963063126628500820272217741085726699438754437718261137718417648758600742550175653530315890591534428565293211484922671806462439695449345666990625157004285149100714258491125542774387468086627635435990082930924687430922168506691750325518156889332318209406741681483621642940028257538276604106989452334693946066721537145127139278771015416083849364185856770064075309142390786602632359424894502090402626546569068039367816153140359835580629692004790016604200419627143012626355372515803334212378248022788989774026918936635113905253060426703034981771769941512192956144506443356612129342598788431140749813232722633590634290630392282849982274013674477344304642662412360300794447209580504805892146725948447269308367699422161241794513184527006676541019863997530009541435310209737975733622555696981566297404714009307045972680001468702998520486132248478008352371223409494873832513965351355907214757631205088001205139442857277060483259445747714877357583427219075070793098388072517065935927375285606831579926303371285620845568283467135997651433595550155073728991171867664575640811118797978387717506180208185213393168308097284867968332498396869100352089469373691978090883736931694755826057239616647529728810057274218189070278017885779778916402834347208652675985060326751096647212424903628623703373493002094705077261915364020396204387011408887452351385426395928014255667715697455934703214035849762124778318349200077739860946953350013476657534156781375424068834007771544946283461387900356544617191391639010787202549216905597115846378051108208292090989337130549978205038174625356597788379346549649555444521319884917055870755079211000301291450965299640302254736601258736734000274534972190345099185858652577004786609457034931757532373293199683997932785597349048888730398212842082925278613510050134617667125425242632253848291911318076706617389902385759377712024791527257440304622760237984175333406705446323689420134840229228950226956493916915260109996389875119828915940446846109050537126723843392283050360977646664918449519846200815192651863847607929745772132145901592251666086247650736015269606799759708094366505150780766379046186960263345148121188785449846714623397557584053964264336678697900052599983341837498846077623512892565615478649511580473360646512736221063405716525711235079269503269055797904152866688105266882934072009281412492622570261264263885336083704285530903487630469518221024946062907800529638287506084883814459071756324069997377553437879803112097715768921710075509124400528486087693005395938688140823249660733169678448722368696862150122051960136314332232901309963367882470561851971027889410524911682811746133717975549511580660702634197292198274458031346588419128963299725460768503493581658888136464536784800997505464195301559306436834215595420336006477308782253532439956699938721686878875276068832506944481851740745744660605364316843578715928791727887706199579376008480587450768273718907555251611047182425247072879247480089193643286964562873666073988092383652975302487835588266779328069662916052124092620098687161833498218111525702759546063539803504388781399412903622886551491423236414388943088519954632424338669146546324799470921855913357087154786184974544739718275332630507695612043095723458750768442246073258379663509736369153607436184623294391962198358495088976802062243416356241782350529622533235812532197230049936375029643051397761134580895320622906171738887079045995601708446762429988209342266714302607026523344809073736223510946551839815839702451000365250610382132109832657018573765816893786475011745572152340022461432809820167534102109914805342264098147415904624122292421432627533816020973742510882230975693592819159415180005913937956133074195149757178382703993893567632086092997478749337103516538780625621964788194928287029536109876033534091371177229094514345370006390405651197266869919689568340684497398184237966137400063709531544935089150886288579525660121692687427661948723601571527677246256729369514275165950549955316146631312704547604798268563793542030061668270050335287622363632754158941300997147088599753880931781667188528262023167553720999410732086028355150476755541528911007566660872994589161626261295763209559253960349876248198076778062067995804391564420343806928451805022407802039679214554147354516750915011168367513677172705695724848571022018945018714377312572341503680294150537574408689166100440883546107204430621417583306069338486285665292979640989020057833940709159648107104264580984658641736515168454465021030769145038575879258726797526246671046936845000241963058221253875071343735283306852533523606664820286900115559237170813852329991673976195041298533607663845563692280250457302216571963189876688643295059116603558159442891295159289591653363781078673427203234976117020617091386187832500004232437018624927719048446749591708242155998654570440784545210421586311732460382802696762141323505565404964240164811189477394891530652781905646810229878043384464132702622774342385778914641044273445952647009172281995979709932565237658606143296779934349028184920330439498376626599208573713179864570599488598417866739230979156060867870950055486078474432871522689393199238712370953987711385285469280392539538831743596783550516627512095919798446521801324655562326435411838534879758135822880939809004186535936963350457153731201639154858648864587968711313300572328691316029968843061136215143188418341340954501063950866751037008071875329495710398912610545980572300821557435495209888195053207706237855850712998148562008759148115925966197530789681700116850273418692490159036323568688648453593193626971103452453415369595907493671322151605219169898962117052863973824878033113790584834515172695729895784052920764002614531234696174613652225025770558884452972878071437023468588331890243911388649597349158431339991097115734840623184890791347052307512452326841546013127804385344811030403763235590997045382468159516666960121856159549054619186650710990890654751641955451237686860319658380156612865568261374614922515739604992472498722081695467695971519431190305722503813935901093678878558786667394630160781235150980430035508029530482869871823561544136199422136481314291977085819837754062496604036784753272738143695740079171727000781392508528542179596512568276233059003264148732897873370858744342727595814807793894755356391698669327295348050837238583637090419159912606423928129632026628361860213156221522835781521759810428573786307992605083964245454201538777939957611451603757308181254987587307003125298873500475286655068613156904734442320905560758274898562082440612108885554276578712101982772922468987679366730877948354506162037683277986347400366871289200420990794728129596145105038526053087991723777360816694346898340360538666161771909958139574840582887572250005609822181518381537215732491647767540007736105207487899178699886820792883827043594367650417559920397439985768267507078844922524689727610305628189032218181192991161506946281233485654267359119438244529297092817487122147210454581453141793140464759721108990834694132999653675769227437440051227417513107258808064400228693720371642987129885992412730855379351182767674973496562038841345219524025679879026194473209280468100810210252177096940672988876907847296297251923692053575758362966105006884342764792055128406692532476145872834576431365568347339469446093727493770592236127867769244300955225595727525318565654560864688732373140518284980621499547216506176704717698925897327446268490923660988576281139113207539007434540990561938174395183455414525015772538877759908055764060572348933731001137651580704093774874691463069870143975648054684659034167758914157259772233891520663268847990447442034665065410075028183987132784378493244295850379894484020867014740418576483544334539996971742194281411945201081048718657951399547459130591156296552720359831007803263593975863771551253629902445148131719899778853175941164750238371252498991475904404699291337868146762731553506963184102790019610378797868647284616704426351648934765277675472465806156593670265803425722002251425069563757383985357351462407417987716775314165206782882590173802533504137964358541718937457481109334952825270389613428523412287148823896071468326129297628915143657328091189698904801555810817348332608315761377059014817796526265413475969737983106008430310562862802407742392989864991787518973426344067713722655678003892082553232840531930321355595943638817311790710909716595543243286308583807722620057437773112276026362356175874349499134559686145129634756305314679418531650031489851937060221062877939293881155303899361098632618386711295235825030939580222038144582992199059646719910395393298508181207522182574558018387864672114313841580450568991732015578916654824676196623397473141799227866381020100458756121505609919808389895928751992599951365245888136321577960444373079470222663573582529421770347000944046500644534859603744879728577426994021552446486932617465607110831231665561769229806532468708430168350990761845456006333296936297064371273874024547617943750877240448775417024466317380372517206007510771827074221417489232554375122024233047872967170998027986667216786013113565634051833875696958703659641095848022128417549476697427056259988572633980431497220725569089919508650785643193010295626012895833208895183755809263923339179911817731403656875360959552181461831077229446536649874918423885954704270702618112629531977245154212298101555387793142177138353181037855560199382557025383915062199676211598683553868926054760830809675214588122361056862375131194810250899831514839777092950358339698684710023155516881130658888634619020391229910003640017034057664913493288252701956171532102725619006599254665613822039561262820095679911749474279784641303340623519158607795099049243584865614085254540409016332340850267041980489440387934458701808893267823882593015066331594160165066262928654216515585471921761667398418034274513120585863636751330688362863812284922317978550900802596852687547279108653509202295320865615400289773546222618381282415788128446565540274443544094934221035573760686613464612418516781510696539795481405549202745790858413292674891011254796600949722522421876293723536861924431154338764754938583102021376825207474006398507941517873387723554759743569569001529370656444899002056908497035441670138825361967951430728913036638621830135137147620186457976176970307011698560541272636674427245913788059631316543975453375598031413865108795069276655768223739272793959945711881330543745371744964960554027320291956753162779347170891847205291462509864845029268289200505263578918237574482315912050295268783788520204163580523876789173994226193564161248434412457220308155785178698245153095496432818560231869685933913205166643871001550842043752243993651708841712495368911645247537921119094334191541795095324059370435368852253452477448072960703565457377158358357225804771095931665682523357526729007193200066978709646195304864637525604446776648798255359861383427567601298869804240538671648651497642388767537413886670084042542820499200263440932941426785497700226286889091993478543713377875218198725927561196849932638718781342583168051396290514044635371226432627156876411536484277229452681725363543611652863703885748993759369112779992633690336448355385169032157499568884990496737988246071378266757364884227871433296252520475550895178049918625342215046623434293166894427824096693789694593636841726284258729355496334023617897728879294594694653390555720152138110421265929640596991798427601310221924992325839479574155818324681803707976281516448525458345628333134928602694301610557933249250026120503143559919848120739182006988349556495336215372780287250066404920501830669069460212332052124942456966143803612743429942932179068281012601368828100549153838849916112549849458146698389298709024253120812896540982822143456436268577684453667241807043247544953465232489485245209576576722192515635223869914507533683103019427561367687812501877559447977619118672356378641880293835136589948483141452984991838311924334729902322719509252074274724697137557279286945804109665844984281593502737702181521969705228619885159891496149086812955198744821754491638437262794186206305217608282094572126455106764895889624717963084263962044988661859963504409947314292546983869248632827886977335365536902715844246966429268155881334893566471128933160235779850828423963881472329741836858378024883803674760019149265800917580132737091576584179625930150665435323874724763762886945985099725193706481973379050466972457689249112218687433795250755447817980012326040528869644095500590067047214950464364847991776717184230888596155503293268630408516404957189908201504532836967037309933842282919771697775397254037150100522065830838650968158729871502648684058851779519562388486704488421319322128238713465192220477157682070023260119592691465146477918169337602135014922148282265832940430989238239894466565258819720386246431942090343710252439391316852570964870595588213803611029914019812558938653291020148095328055436874786740301784106207695985830364497214997140718285349065696931487123072996603435343590209426265041211996154791264762842133865706989823217899897329441710622881895010193022694520482179671028984855508398132853236407966910699951629730090498157178220914883998304162293374404006524243278065916657875058283172782069876187619440364497518820206490184909778352144125563529889761039676860881212761301597446076512918345080366383471535195601364880531195989382301092152905528574786752832844916066202848578920350841895107164651305614820125130245993221934418595805658521168686922631339713480905138130448545473353975414135465277565831958269874065550779998669166468658783727122677851744488633689141915358744307912776461854282361947774293080211359474704965654629560601052003356759205000966719177296304300030207434476094510664227964242937287891629089919319578407062922818118735177534399390288657283340192810140922703290502760584582901889195646154988860275909368215386472649334835554755890243430885498513991741598642586107979234429055019868512398199247440791697088935984024443372933762686341753926993197280519184477378776403179946357869587000673943404295240033572943260255651718725562972756795843118525008693584157622866692729643277008736552604726286237362740395705916785678852571880733842394215552859334568068436813182873180882563932209155108710036274066943028694346748879648334038728406170867777200507626912568422725023744304467471787096235738714727029033705268874787534711906008833437109554926616970805349978867374362680879229861722745076864825866014698615551009863550971133328882868521112436862731793988498326925752261356676695192416149246408023510907106056615525320979139408414159006174477262445142720993371957224258902139463019790266587455304889829129990586327708662580578572641205275550390583458704344813983117830978836696546928875266376671738171032454066868064500833978461667330867518019439529920478960784633962416048912869374315935788259989921281545320799368156958493772226364937866142303154008803854503315787443231231581819383309185260777428919023324285670647809452925468681791204319875956756694987351898846810867546288750440333941095720077851974909818092893975154250324108624024739332499846375778582916124545273497388229517108519114982558048250142187088577098071740313585464630918749020332301648202216589891549750516551843737731381930401074300496727640286511325501631294971714048613049260440581621547812064785293488278861153608831537108689416195793728863451358277053547401283868674751039146628818773367805393781970422420065285631635741496269542448517442942964551967693133751858974667398759502719002001305638013440487852915339846551764422539303323647079643141772470873779442397431520293207589380467569172372340473631323041163318205119715320107968823158453054905821679220795028146984993063520530902129470358493963724950545190147564941624131223921697438520738085892656232641349817217094656686864298443636132266256449070332904243318015764960992451881812504271967950219529742731461987598618664356243151580432433245463903454018363340232545342050726456086655562157599706937443994972255084962137216737280306338673802696697816872366383876677579074439053411603337985199233753497482589813279803505808981663488662585306389731429054772969370554880953813864211576808755979289027399052010441944505938358382652977376357374228669542261382740961004096349091202906261628144163239750378265696960094054302673155758650704087579168505577049032484517347659449743666661103482042216640014349352268486900836146499869268170205797087958086236981305357597299613392190316007117093653037396823333621320232141810555056496760014159576791696387326980555005614297176058894904619525008614705644139950812619136373612345657200613171449617399101973278910168287749033634403547107396884821253915603151969868960084708252994560470519776316095910140139084610737798984361534394273850544755473913098631148095493207026102432053101164728532023770955638093599102443508872681526578183893611403917054504250693976046633186761341694148869810506190447620170786007526826163390149198008925446759802564607779864383743156748039947422583499856730023808360561442680469581803584408165190793239910678268856313366777307030902415471047368726455402832758171403454101503225041478083912433138830503977784385599041716111105576382169881223265595035359430539376182771629726020555692671756234680028162242894919847506221380038282799941614670500833940947985738279025732454405519483174647213189214313657888741371607207999431126618127063959383997118968133820932340279305536854939070568100615244335687366340549437325296279833680908351262040677469643130048022659434423638803472308293958009184970103599298613053341041950510376247278899602542915993002176580485595950977590899127571529682207821751140291763112918386535873422548901339879804098609878971739938489039244448489206482588031374942128048693880472733067228634491386637925885083808353235216420165801786149846161999358294091455680673403368125894888924902693114157085482276046548024773722035452671288648579026440719551022788652059623861119116196817758706281959054732980575517249606980408351872850782598623960414045681928500347034116988109255484426261279862519832133177622579143987579343316800951606964954662224024368420949138386796121665997564136468568404860401823865126517732170329491846074693019168293258463624774987908275876540657898149007781485248183034081226559939443990403226146085495243800714634896916826594686198318757823828537086994982674486076399284981544029311306415432661606540584445853622114860863058787183092770899364160338460515540631971744181190250254544777307242881857941248370275061955120505551668398618913631800366372613669530627450468947240635825891737382395664998173488873135702445932749112226216043733130422630586050682254340451156478803704553554256359488364011008882500977125413247525135302688647409019883516372309451508332543416843342254517751842662906550159208184994377076757053214365188625032193536410267598892722242003870594190901201188477107919113149979911802243975429689014966865640589096091376868785689168536843653840183622679336445848356576170517886540033333247379101616068910872444415991101139576378362349157352045798810973765826590743043665619367393150061516520764700064368860450744402891772221696942746970103623542758513484433315617778198812663886784124393031598602538888462329500294338822630052119026001432787293347121456196631429678558378511448664211023179074888944261298041400151760587269807635861441745904803114428119295324307936565102695168991326556692629815393752237672303297615850936004429857323355417677031019852131365105477882678261058562567470189894610326599482055460504578328725315191736676899533297477197403826896388379600862603159511742264644629495272829848999852897869083284304452579510476004842321972242367756982110596349208491612605104157006235721675330045941437156101169725912734765045530522657716017045978309442361595388569393980978760867695089254891436498387685136591013038143769893354624256497767304507701028754897753967716947337809603181531215351720340531866958475566056793638661576634868833629434186984826842105053105157947025173019440786356273387766281010517486800263210809039266886033729002787532070271572425402399568928241475857272263876854785654346612849207969372323908780143827199610004940024821495382470137333437954105833660194534174226970111029126527841448776039864346430003795096124420697812222590553101190972888170822245349837455619028071078668834679326996768354283358867648558445890404354539811424339212149798259448390089713630984161997019061592896214608217635719210708851355403346852935029729552426897396219635375323793399266943316556777328387978097348018505427803150027125687733446424264690417649881006195401578898376095797922714268761220792059060357020429332849547252447928930888834381211578309842054958273386354330089265369270302132682235650726184912168241126471315107269448458295128751362886176173612620464148944327387598743462954449452537912220554395089634018898527592983422584311888197156657745739988891282638041058870597479834125827184897663402182925314964739237980614245339839852867995505292662052847927590966255083900649096407383599179928512211781192961108202505191452773082400335414616978900540652080795377222963146111640766066293908536684986871846713151600088493169773172288381933401725276594103307523691314314454132503833291315534937979184511206057856077431360177680520159389470381807157241307520241060898841207021422465193696057158750560156580527588942486396432415334188065866508654917444288464822421337259912147440961955729700945169630678505808332992792999026647067946934628631526703999019868114989274590091075214399887803654987704331332862336798195829468254129229327647147755815438098549086079114017669157884143095776498614895063872922996642409926797985580325935651211840504014788908803237391641684307341258318725566146851407606223495046943752821193136347114058660796965903429807186443519238150033714313654824217161750240432936265821695004219841433993514071158209558353445587358221978068048301824805507644443141516590501626054613309414161619971464461788364289070504901124866797798720689702848828954668431686120703165618932814354243728464669007265833556674488774464988393791716211758866466157921957331368723706204207910724265375043490244174990759232518607987645930995007533317030145021212385296476856170788914643547128486376145720348996503653449111763261412524464028954159372471265142033122148055148346622663421563016079166452128485448318703856246831136525934956461219033862265674888584064907554054010389586505097113704703975636214642851814098268443515567450314765999905185402985390934324979984020951248211091380841258938623790462692808506244526233655537420282575129634239632620410180560495546710834703818124489920650705522823122789370380635797724331724814358999975746246142245398799720295399593309406241388103078787513279946482325609546506143457393716882093838752204999581713721294665586979693692326266090091248921397148715707053263062527042372849584307449893867660150938037705125840473647522205399021476964017365537282244196006446332059263448327469579109559733709252885745800393380379446990076591691573116802397831038297418053926391553212705597510553421967110182976927012425114471034486994441265457670029986608805180882209392600348422167179680877850194937419574886109621581741851074581440599579711147495542413111101929713361369125785786891182792980274338325850045002065437782634563616299337531017057007453183196781482744025348387717018517457166994166723627792321915204499711817691591683966037872604482896050405299807918709369611845230123830637419980513316549375182712194124870514325410462916746331015518952490581490382243281213542682550265807284025611820133801018409291647556760328705821007427076344469633878218704049653279530364139088439627140647743258543891952804227480325972893188976263762257704311654977265917455974469740702371417370080375391311469276986277458784659166400789834496570667536391380349419017456490857650697867053134912504870660851890898471397059137926701921456118783556453189739389393110494703893072622509164339921251239987295684334797120106361953344699383783897190252100422407874020607731003425560118455632842530747707217640158275584616371357799734037390356660901554139150437776098979024709481738008086812605080628832852998835644727702373440085773411767368429435317763753462840373372327173973162301896066738177016590812618155412291357565622594895105834209299677278646912236206737899864680900242753786974610998696552110722940440591999455767186431589496530578005312152811344978900570360193216453817937275260942834498047279982818722648769577431352072711092429131165728484267648825925951773942572012632173573934575927542042877328036568041066256780842458488941736417198900002907097880307261945523469718529663646562496229101454219375760784260152214140609298401479533450938826244176054593874842604104927796536521201249613873864702217617894154197150549115316212128371399801498928790108086443288733710512767264070700009618223114853042388184542681607509869101275149969417257631693115383753364596291537761390470571645017673354669572585160980079962300179177444660936644750470941342251741139704088023230465732022972358291146934680681470819603343999790452420354980095826120357399481387556803313877841721640907295034217073469507239038308278362771550555366467695257721713057555156341074237231748860253968129622621300614191436773756741387546234042268397664775584567341155816975173300948666441892274955536647080356818736446306472019291271108475561033153444711909506570397909617932468521754613667544041426045123877447221716862128307225581571744893179890377036655925326700206914986513806383589793319437375588166756851788646448137664879206954521681705916862085334049693958401912029003715833531186637155969282003535507459414590583177683669514140591977328551232311647863956166498176363861329024897912525540745404161097256156900511017351180733926685009438430511781650249727315916500290351805374722512204662536082426615408216520712802891510858670179067557837978149135525869871091752005264286985264896722229336490349411285663105943544116149642471997110493760100735497360339667131438265488870535915887770391887086033469153557530063907178312284825525288834456763573475005039139356781222607277130914191663392156583763447227168343314275272989263515104231656486531193357257854361473970596437407738480950237062601685038362219529328243604704325956391269323198611883808603968755453169482786387475952751197128653892488715003547505342628740912323333917902072621076864471057507294383893469615784464750684358803894317592036610297934407422093220245801209039240295543000246235527617858845122684315140257991753759261077902626082065059410835505780987746703467758355139538078033357889501938364171457693853587075671671499630135928382979043556284684113614319758468235462362253323554367535919515687443401447091325403977650431919037237082722095723275274788304069480159681194858617183353653583887060324191265653887606094638856979294101661462171733825549595736652463367189162948388507649740107659406766454190900461355778556711100490444129419832925206697632473498527010981427801980363888079687479899839799491426245718589675521536983336641208107968332448835856418490815431514220192983874673777113832572446796041441549003297054238131413729079214493935171401636975495784133061719858186630844940386616271308189493919000915865228998353945902636144099609117028689548512523780015386325681225701029589660599770993297247628006476514170378559187054971676648770761149212729112706179029015052330561930533019757854608878614527563425559741910492917151647983148945808614032899748725848911040476659609701875914228470567883961067765059699099357257424456278309368801597023599433723222228715958511811039568868332436451303092423867758067506503934174537702255864732026949844425639146721888499368893199406869823812003165399262357463676098087046495852009708994383316963569258334313732094385123475446127294038220279134897326385410220297198942346726492610292840677156312928294414902019311516664607328731186737474043852024650647142571740452132207898237115047218284087387925251279303456019039012541008856110474135182788862249834093303937381585895643175477339286028119450764547315403144842557123593860528004358242939620140467188239007721332638489671757783888854551109784014028566479872733042569655368260169488630593241177273807241242980130390668454446651989932584716843067356391065214334317468605201545399068942943095362821969413548829566708201333734813126275387403898345009057344578661418285877138043215923135290513684086621217558231386291158015098810664454408528137474625601522735876116071052463135139442954223171708833167650077101075184125325369591222971660421496720140055271923676240350538727492692810742414852894548246650749371749382816892192682511516916621554994503239418640151743491305897146946958414733711177091791178797586929240613855283962515167758756665705443791834168837704200453142353358536851174488887126908304519181506907472673817414700404376144209060314631984952720681037503027072296753034359743762406868053903725929228401072152080113973852588753024940292822991640398975174593644336353989388309819553545721663636572367042524101160329841200650103216599617130496592262675858373783078019289150244852315931802314613697214621862634789576461416393275332101785905375584038575706261161739906688785632736999398394542393421216818517946208869407320450659347812529550087757549244073038994082881006827713713385426998986669750177345534389123268212398022838001439609637673447467194787781030224460874335081855859284958874317536302355412482934014402417519904256188838389176443512548980718522679659284415429972951621498098918554880041617803493128173948434126440172779805586849956340890354436145474879159460933380255617080734905426181010775564823784828674529283651653665067481582701236545969668028297593079119201744272918723728394746689285022991239183142700130628271213849926903448600218653004865672072049445899494611980706963252369675120035372605817811077693541097220709705667609027712640594775951161434720274170765779920660391613347298368825975092767531747667964721883536684321052857486378364352542355363110949197491137184022166020967060963845881750839538320594966992383080239925761792236980721371636852388918934979623072073424585821715526585072889297674412133745146081815891260001540594155852152404879348266167418866076304314575721095684811414976650979341526876016465794443449941940591775839812554984106489852269982882199572603375112276006232663876291003892734912108110166737343366828302210293425905447087350457644302361569890176015823095230638038156165149934927513971217212105989915946766465915812639358434649905376980031412019930136426229692573661360951825694163650909893119592422288764259071748303052013071690053084417835877825244474050335726381027837224015598948210837812972847318228738287981816953423669236453220484331454440002825401013357109431003573350086603524717655556081420636094480327214703424727473464155370931576920932780524946589721584714571094625527819800620448298618830513027716175460759107722112941958187683844961246059211478076369301515241955659883920036682627016650577777665851099064392208606443582378736988354764988233506522055811360105425359906931378566401448142589300203759197761130931235256047479643934066696436472278539601099257426961053905153444729005603937400059985612294671875870748844277479722826056656834773472854625936694180778280969345237991666500828646929685882238072696254686701640236562775233898196732073262379941137470525150971304014552191801657456580265469074473484360356979403057891322758469277559558108499256263203637348579379293569910671804245245386616113196008303363715019338609018562220237347921679604568680680432362763664591205999606263264215764476931875465679011307746921773669770671167509375767069149071086738817682498118663102182863434957858766443857266198485962653289528639022601079269435418041222521461729200105707590657624901375889880281656037116849929884051929371953295501511696409367195542315168119606070961657617666623044588700058934311482406418162874596959308104210333941710986634687351885198143030907658460175714275561966155029621774436535876164324546443744866344782092013032943656619485626815172540583030299733038056460986562554742620167175100831788579485888922052751594363868406381729612224214721087451831737065935200589975980025121746606559085310877962632102031928996626361980725414743850575554699579191262456536627777512138704960599094982898949953793588969609714555559109869135674501764008496176903310069295791841208230852022243177797535299619732116820292472500692307167497784559402990428856856976841880281077300766210503909314151534694174130117277036703544152968526255075233380960637304882790592345323917926087786621316549060331999992238723181457867295684391179835868402886374914787520550883504119999560114166158462259780268871663479042658019268046480852927567500820609747180342972427021737808359668729997131071518736317777009953181779554638496138582571405544197884211549045938636856156716293103686835873902278236979278454338995415065167790732128190342263972153350687094215166000972981150594183422923652650942326864848103747434657149648196335145122051963878727338580623989555981562287075798320019256611598696761516862217282270115198368177674579605936594948535376233572319539873779345725821962537706449154195391330130924385831914691567441264091969189149436399254115953837222918375578494299265692567367254025340514639868019022486692168706713042606878827079504367568953589481874145713392351398923439414352943817178995285136717250278690108967888797401136673801126003429584843876679767178898989137156717647355100856784905021778716102958907203689438734647100083240019086691357160832890556886792378056117546560731637589387504588814683062597437908083702484320428815541147616880689246946071465435551684123112216647870172299788771390355681222108002386276438276001016594607765094854925120576348290963445333235965837136854591874942282365579349493550177435016201304149981530440904177425512708674880653976308924733249561551091454185374302102242475917502259078152933520908790801247992350851170275147219994843706219872665629115603892577210227227571762714996083132751565827220379694514404964105590326934304865359455795595012012070455880771774538801113813827915070039942104716268017155176896947760191203156546044742554406939842951809987645485857780099930806336287336764104414355644040989167857304505087017423780986196766862333695565897949266860049200246195356363521346843196417468332374968231218977740439962436643335053369393086931154802426069364174836142882655696272852342520718020677094939780191845633174453516124168043535058291046149587411747128910986581255849653806912245576231228254871230158541503326014859180737716107844109923668989342197584642873162509762183172189192997567378390835630389583318986255573308112342231709712110878540316164400270535989448917185740919398722957725822711699018562395535355558918086221920963808487547235951104791682856089742146934867135639084961435286648035048768750800580439133920218352159771222049236505664406925249384393171817386690527710432385936798468214628315776378693366213562788999387720780705165883499269273480802366914161309136496892208786649737283061963995246440224252958956312492205635219493596420213025016204017703820478013368786539022202177295091045146770362723829666650335813763702623548845332739299164746561280866167197905465668350001560154482133364802580524496730804195458600973572196863686516237087875847279617225520820658573395359075283989469184631576104871728100037116040074538977947342292933207622823276403964845825613440259348315167528903427660966456097494079085017808022602828645541913169605868095843196360238449650553402566325739752507588834164694845910938867037054701231082050961337398379784488114412060128697853182656191972127263947631663233935567418228246352648884569328274237632127448428340971281696907805492328859460520374292494188314534832099357920326902262782796340829415661339784502841604484740024164237392581158302156104301314475582792917301939245919447827878461522513379350062685158405222512348845452660311120994150636356172791840096342925554901004006753704238474738975896720766030000482762333601508034874217559255064633268382762878549330014099088649125246797440752719883402083794461647045271424619601314142224789882624849876825583332263800874867089180302478380329587663748892698991274959933444300907214458579552253648107666143282538914322564788178674376465506848409055630068880578442483049427446835369070208468196085084915315975017022782454855011381094615453241763935310525643603143652340075184024995871561548876143111584419102574327226713180882048011853809360474262414003015744741150972407965389063329417080356739105671727068561493909498174628756181687251068283524993650503954864064012140707986442697076001693642950105197199033958465317372397642635533294749596141909057014359706904794453547441562987165814042830976554933279951896012426264375295279432831806691480840598583998316037836016221056133259110011515183619527904779925165515127702325563282405139717896474843714425508278670491184550407191902546747443113655261984047478011263196388009208013312318565092836321729196429649070331539716651173678021492417429655737719816950174102632143424064817056966216009871566357452295782543751478289532171063910517078780320625322053106652091606663789486465825724741912695726324697982044010870523883090964586485640722880388781790770177692327445342569516535822016281842634368914581432810726776123086772410623396552019059930226856997834548798161773608973133614022577998717438992171043526821197605537030304535628488214989519649982737591328010313829127466167952362292555420592009918386448184058522543501390104767436695696185233504060046713491602805550890815256925714948037975043573604514113571904921761824620139711644645862941000813358088558952123985620371891818401356486595673911288583974308111717785668328019144162279803270226175790243214184254410178192154452097023468986817008305443534084974114314003206434797692561880832771542790211768025675305659809014258279633920831440740489159521642205837258193466250072480729719887839267087948031309849061458459784086219721545217345888358202428279309286990623025885985548846317640271187573688493315918830255012782005612212165591699276319803878696302937306027666225518728957999335784209105925122927813841963296856567644383403064888113431117957050147344098570920415160264940901891946919417937200872510357765204384429642228432950444710716500131766589942618706539379058479315329830185512327385735886945848762469129675707816848307500632577478786622067359306396372113161210030800168764473788156373271637132454997478700431148641125860925667216814933089509237493416086248541148348062482944560302656600004286846674300527378139854815733607886536033013898984938583039322197494638648547571155806732906566744827556585136185319527842164433599918581954887144098821814924116035975398646917599510203053107257091051351165914647499298285956335026888653912732485214397822926704112232414536614578583073952744817206954653018239954838120374614828808950047569043856339802393164593875837383013518785331767652847747911938380056200019475083036784501508492267592713467177027456386714746652538628473378454689045723597323182312292152601084523463011402453858686931214658606426218820830039909077552242156759343446145333010685904595917667479484828633258254584304799014309647743649255823031033040639503048081927431186216957421237235956337362713800591915351177412135184439628343772140018257622308702962789203176155640745050773533208369304703604899511916601954190724498531662588722022775141090676543064582070728911166582117203533629545039607589461404092785561871143194097003825111780732980874365106137718184561599211135658993856940487833633632203411811358749481067177555658535415992545262848700901798365240719733354477438743702371567443461383902395329300589128246409851792377183136334681601161389232729786917956292020592400672048205316279234518875557854211694258439307098247327391823847803538856579898229590020370253769455776489108822147230555609849705539439748918488194420727778589927119199485107992907442178443488099242150278513798400197054389375576393045189781330802227527619787096185884706757517098731060658274227067399623166226950884070866022717282614660062690496140906765117554182973940222988629590208789160068988488641197820009587171151671482365798675035529045542657967235022593522123316705092355237408562688225399612238083293465417533712095992871957987972795706452968973697911921858267167432405485491688553052283144011072585660735312963785368962737583126052953057894752181901654871342074693180258629670963131186473512841098571222237766412144194405502158565886731281894126113237803901039402700781240661416438110431342221750752818657864347325189005791744073595652217381570454144426671730995671707081447658647829975702182581397144442596221974001009562511983039520820344443242671644985686074242056400667807019458673385633554967517299936483302304463224517114746519464228891902124390457650538087465758878135414997321956555967202761834954207950186776866362016843479480747226334088034556353444351288398914908950222310918683013409367183484701682911118209857930772354726824450105204590029884193408225164547299785327794726843253013582103044419889888816181013123638718750834955788924834599824548208959140679290664188444367510789484683939757513789821823681656279753743510567631798433770219257226580519566575405853692778427348718564948903380948984511535858603645409851095521469906356622278212289344220797706521148886380507355437960597697812395482831286962685397747851503700252786732556889974725862254533909423234755101827405942221735959497829243966878333252330539138834641990608146651086281154023335410257616565744313880667593815414388889567107262982323692359564161299242578265416360068665226695453520519744574818146952800250598651281331967497523040591196720591947261695379589187108735922516933818588211185601934671511859866071896003499792811409491824868930996554477801676889219880452321930601344131205758561062084753270369740183374447170049894714830842869411413761431910137358678114096132885889530807739784183051718456053220864303818170174719026608701701464674423596728521467250322592213083906954282092548170944962280503436615694662568601034400458652663686084605334832492494039400268658789773196786625378846611868559741529299761568085104972080517982941881939571363468920765427248504000578747158296573145902265642073471487480002785558670454260979167779553891536543824164904748438268571127421579408118575112044925139999511046954295810108797613554452041441180632828544976381382903358525125980947033702463401958004515438811164021566396202605558114920049786502842568636372241231002780446173739817602662639864631576987818701331231519721279476040777422617041748563645774208666669132450730937466603847949874409392744376268386772980274027257224687002493804950568585807029914223828394228705254265525392925478012419013183256027515172863596726436182091534504033483406223504615871738119454000291665578249745848845287189006771083843001941991376038105458890388096836505690469084235097336862842483868214157910941212850156495018430447827642651747262133775708882092648563986523521087307798467323486863621379522380130450239566577648198726126113590927819936368056488064475327914946437585998100498258522304175134966595755075301878216345996616818157023733284141449818037408104225605453937935997585420670756859647400510850444507920451857881528728635120232408544058655681252928125823703178263410716754617802428361932077814765637493151451057581742409682366058520813339227824172493688867068792611857906232131867880969737783682666029576050802253245645502946243434510489910412903864372777869007807121852170376537649418444089959354853828271418011263023716485278475708706251842166880430088233922186828414601917877865947256352357282025618148020763569411838493745178561402430637453786995246373067831505466412092545354147077901006520987288923495033360432682204902087973132520082176081665218549143389001193140484286394107214166489509621237001630290385139038974300489950871942920758667590882821412001225920033986496561471875770658351424629162854343480129199110571422873987014539887199918820762585632820899139722274088866706689660310187279716294695565674765968409791428550822138907536289599753039927631506489857362094094028354549411128891321504592440677572324050052257328046799493772661062528186156905357056414137799033984418801640799491581470922649177136469982379408375590966917923839607969328633225191776744894034542039865563217042037683817213296964363906082039057379233678008961175557195528703505525657635680565976198219798686344368356769051303371036653591716113787814285917278041170226872440836039039618983910829834476991152559791972968513498421055096191988196202231521036936888607930676141493204797477776672741241448583463876505951411186346046826020229242592198702991143655736932916819394442550965453166811340362287993623971924277265609410093291408573012127724890738722146452915894630133623558967335610352557946813328306744346998619338744808571265888893172773436916529747274309249323260305377625509919379460190645514358548656374467200635480078958300291810922653804512160002336629239202534008182433989010800576890992335698914154926160934857082327530740699919955927885294621374195493522942892973130071925612867501508903915185106391735600549235726653989967761144400181346735633642410352482627524715050820102186724664325466354415381876978877108581083478631566791284130123449767446747868481516915230954442946165929944696458501226438912355112953225882516655895385372071582508845291990667032674274336467076893842903907600970294206317104774122165298487729113515180193494594411864859442577309682727259150432808021279921588320226023107479155643607114921534040015063931880188137429764346538575888302888072087058191419945309181896490532032668952923859299609675579712125222060628551332350248643958206810904328245713642358613544005211998813751388789436106227426654985928264149724743573132392392111243097258753491340347820044383470337095015315623488884391387507527237799856544719721631515873803775692181032558418379041995647895202991726019203751711397326644941768346884486324815810640822232293033778744691228453707412142907949289064269118092461438997910561338688607813827749145401440353198945494570815012765366308566170189043089204863342931533330312648145914947998507707645309311718525195047610587596917427199951851258213755368967919132135675890120033250772892277776140244939153697965745830546169473768744792452133613822332878384809264879744393630775758124842035382397707953475276368448500474551514198816660387951586513763684931309229553070503469370005185496903203713418348573245977182591089006370289707251661814942312303438039004197400379258968848991087878779311847674998985975452222076458565258205501444965163662163010717883606590417561257570457844270925284027500668921371251527530134198986636636244946517434873450493379152479834481758440642655947617523701239692227375059711145462277936457766959445516650055008351167658035410519548442731749841849101749263811075207933799904853883946292234212621316478286246435273184943491390481500279756143522013370478647600952848421537821990882557174552954638743022420451592401624365592831708624895724003723459740422343668939681994639211827210847729316173768536681238801888201822426162485058427299861873024833652531577434924822796493071091467946682054860000619650177626586993230577309600854360260921905925393902979576141780627014228330013820663557157087875109209204290093816750514897697845147326671983925696804844471675462693061493777096589143234411450310834254310827905113853965852657265384048297717571643862512311462911779284400292986401546752108475369383461257791995377397768204870328142835789449161266063735104858774631943538145406297247884975681588891206224816510154035963451516650400107185493656539880447281749795831540799019163986174304103603821011888739348317409064188723373371011504065495698016006968388830442955524038443781983496628526979863014098560952589448960695010006357903212241076862461416056877956478923465298923193894292187302193353480497404201117524868697316951097686917605665346504352835424169493307038019684674119151760826229017334660446899225022957549358963533304085064420669812383090642163644905145863859650548135404869775691934893434640561576607404890995244534658803635346631091329888240112781184406963649739349525966673938695939882872642745784763151124639742511576820670662312991704465836079778670116479966632761865937042129828070206251600122415350659214802497746882786068907870742044762683684564359624092984174571350289394298400710152338310893125625868432471396830885256040983133299724271155340542902838862207603740207597506640310971958638728426024846887868350739044635071457399172879241974805461257588139294574751415751225219017008142122865348918299390047023445875964502503708351566077963217551948493574423109270056112462778153117641880585460257091866086117832824207441056816094392491618371718429908076123090211311482372078428733710396083167686353067698094199305598755004888016042681220405896423582436677745489087135919122600328657401471032304202804098369399439396494612432715626066230295410759809902188697222989755412404398458159650666006973376093297764015004531958498841157417818500898412861451461883244429951738294183433040959234285123264193079393868509644096579253101350851783759838163051305930941557551828792451418128634253275255687459679791721800174284795842940991793275543825433100203310317950772165249869165973372710257222111567790532396377562264303459061279548621365334728738402741826277058555770413662020955613688710482607193725754831344963248551268876169954039714525477073816795728775687775765520436076190448415634478560359370085913139643084025505721345388413999255708345695776992698734720622021484247777381463924883845472232873040552113054874775938902830839603570960450398182419342843228445002612648147408944670435357353745379163165029597768146600557794703876712139967751612801371096078728895622933453442270890991559276633010940304789144157344129223326335730548670320078644279003090122012645968214560419920944760466154215290288943630133932363007716097546247370282112057660225730700587643012379137443810485552750496797231547983672088863608298272996492047309273064317972399492736639342148936894539532690820240391269108392696325530636238348864727877195917100765690621390204362903771131040192123863524724117594484546009092712856316635719400075850744694740426896956262222593376325448559758636537780961477529236790960476742841100235557703210804367538827784566764205525517910891657689480404849212404014336756479458641598523921117387762182478156602101614251320954833136478985236948471938236636088639128071848685324093346117962814698447918019724341271813897178611843486694822028916333587278583892334666611440268631301200196210426794518549419642181187627714198090016172016073127820687103531848897707333543832028219486238494332037573306103579340040986741136324701077024364621884607387372799212953300629605452432877734295115327741824464869812250084598037718947547479533036450283445760394479857210833135200562956692296963301013319545935325670080993318257074711644027000141960067211394986024574065181846829918602728205238499436251469598382625002263971966678323286557858755441628226720089097681405702143459350292903952615670126082269022818465227447796951075267805964933647134357917821731024929758354475416012395731254959720990156714409616782948484182490988666998225788451985798194381210136303096180269674506627636838753057782639686372088564819358691698779639964449466220856057881800601351104688664621541752089061663673544695555746430194621246353464339902458236141147817675711130543439972372989391726360239467949394569340400435833362676050854826148914206745795466481594244338063830716462479728304741053646070026167293529826524302941902094402902177861249795102824452872806947097093114915753553946553822789659726321644423177930111585350163996702013922996529478937411734519567732287859030123939305947695955287580226693484440672130335170565719319868858256123466299298779079470380990136727931968102065177337190340654725990407057135484338493528099178279618416944807754134017752472481130874226929789379640389077701480569865841342806242671454833157050216693050222794649506840178755844905287495045555960149560369066167879338913201235417423196299979303437730033585393982870418999264580329770414953022865810380852800176859144376964854573887133039849484453298396829526724498426709761537057962327472891731706550992985082940076789757309552605651392466501380672097395438677001143445679297095031459874386132468190163578210406861852961751461691646124763486254467754758515670531396600817786150528905025578471982828870582833375035550745896799352176533582755641617129017294960061146312194853937787753358693685321657585601363959279544143797147015676856457075962324329965248567195096148590788534002051109541463693490842061379256752629815689818493147915840825925338500184117089032030774374190642215390615901362315807818506993245254730529095237631737703050846336088813403402497997723207184552088045034031383010560415626203114988770107014324402632120445073733330449261818804881387707736158147715787964954938734934069694989686248909000645850741416563267016317064084022141585202139198905291176551896676568252828376372766715332438308246662194607489819068706896213306382548125950021272680140821135383242301355293706791484982283075824659071834153689602372651642902301442693790338611238287572244863884149683318103013542075730038159476842317263675436746427884948731752989491777175301290482775390135407980529737893060395392935347571987061260453834758134725357775970363263933226015907450601614004138973075886965249182109129767516227445620002533423241005010600277651465450373210572781959071082087698886918159301310454990965508060951994910444927307754686037610954840012417482315834555766128328466696949945383791097360630793883059818117990528503243817449472887953568502161187962688827964843948970416437971236152373179210795015963863930246876231850540522411831322332135503992540226303818911734155128365457774909318306180925712788629324205763148273920385587878187908150530195796187439223215662354546860990544096200422962669232229500839210639387376494906084279711468674392491251882816670505230137559959134655979576723848502112376499016247886755909913509734115382447320913989957419669833380443129177072121271345646221485426399869725968430075852895815611542064637820719965317133840127857998540711548279759716008510230152225260020559171626336315594773676444087414563391349672097575560584000482901784140623707994586491206542517808868884095524775461622955557468662541940829030712334072259469853732903500821520359984595406430885531335431383744222677349543777446502617493496039079255321893463642866711653648071813140955128282457689523523634311706140848847441738291699880765994344233668706872250578687009612893327548106372860845496788671506544397984037806209897806160709849309985750074360642265820733619269723687900639683519000183651939844431803353677364803289685051604364904013434785796659235934106353520015726473035126299263598398610233588843192609040013674322886380400214852550492185879770685081920782803625078409571903215224519010918100790055070189431412592605047468646883261561528111555083264980985628121698344061046383836909650464752992686562080074502695312241607885662676900115242496742624514603816123837560624532587534875966191714214538786699073690034769793241094427214309873610769948878094088086611782569922411851804414367956335224852633568532553539758713598221716632458682394712736620117088566760980391265664390866112571018763118906134625209819162414875056476424672441490702824718529637511373133011035538069254968308911387264942243008144602592614392293457420955044128243250901889622876379680419655300527675262655652416978747603568413562921305525715886598569027014114956129703784572869029113620691387710920954086526117079882959867214123012688987472821403933809897402134895997795260654939664298285638505212127168078000977500166531460984080453123767669731906864613314032672344026067893328965260649965864485090496665614836327982988648045744591828237601122155411158136595181655918699069272773763986077216002314252549687936469908313369929176854669079091659226633980941335180044154500328884745650596966505787141657314120365657374878927027574519084620200428012680992495391298972731132491845605557269942708756966570695824171523644007041227900510768715168592111223057659586358178319371213480867108580919439095418859775336731576222674815732674852570852832147502289295538713957929597974014851194383722886828919874054720819009890065646464855873367268164639222309566398449244720041837251569152533330137504128920068184716169212563940128928054326476925720703425514314572383879913260796401222533306871127584804933770884434495539827958655470773376927447830515231530834939338229383993348586295450489973111576142639325076625542698899176790920970160097263725533238667352731278137797004543519111236111427767182247845010509954398171263636934127467941829236185888069200436529440339015996972610016804798486967714442582178663678276038923650951066951777773762787884029212183895011272880226876862720589263893573123527180482255953856245857524458654312098297823297342043845535565550721036674381822826777218161109520444649153349576860085344799615996849366458424039998018634465819633995087167901437955008840044812031401053182281217909019379713532996140672191813194595546915056439065262855006240515907696736173681663959461479020352859576339997551168941465754803493396437783009187031367878519559845554857174942982965801174130268360056810253028052322540082854251587356951274148248917981153372649361120862549389047547211669063190234683958498141490162552888240946254681854964219376814433045055906313799067293880203074874951120772354887727770319641842952109064324697996645690173502210288763108641569834078654947206705685419091283531900162301437252030025030517386242833866761199142313555763548124995319982409008557667501700019180351623815516153053601646476277013971522700264101237441138929788504878526018869576402991534111667539322544572065866704109290336173078505619217717623651087834121252314023207315823929789236359698888976508558298274197373106974787249867498134536791839470661688538536249028933839846067631024424740413305349413675935215770945702701414038449042106557654809839404304223378605170236648653447621562470212081360772391619726121342192921200695505562748450152262815822133738261414034747202729076915508306418742379538575950339758046622046431884544779034772392208152799983374415453780875649745807787848823140309741546704621101713522496386160399428536458032539785113105328300941205126542432067817420162162936122445066023647052560972943551882776034094032307904544764810812957155270514628016485682399874037455577668908285271312305117258055227449377455454911489363694615989201337437802478918825870876231543839170251167269623770099272082076943462784053984617596835238075824966493068307811842388274791328965250070296472939831084657228759503780191005219062325563357457330376648596814026293949928991896196298511311225786522989811517785447428227944733628640011100643600775309844113246608785292626589831523648004398055966999324270954603234127711649847682325435407083992140274346319348233257454176031908732163682806786541747109299090930920697135534071827476930086939043929938400002305056324069050281963663813201561151551919190342742039573306347613113120381914240949586948003928465098820916701415917085053538182088404837831149819761696640553512055491773767628834639740248292930731058218379261429605081052023931166417479916186790026225255089021269302858973943691562838503368792270183239200943174288782490765558947865343537587226974504332588896286898233818237738135219621202582739488384254947218598395874809698256364047920078877663279807225040100781900549380126969986587771679276930545491476442496472321905405936302918606461231905430844361122163862770345997292045337771287851670768253517742557636154233026111393566879088710291574454037418020753894839152321145857743996231742735996461992655736860298865469623943936090165904018173285037598228279494034026048466466009829763579422223965445210921623638770692510456077753622846519526365595212070191803782531287585543489387625230279532825897757423977860285963520662907393392364813103968521067775196053243694617473418073047239761780732687442976173424746476531583444200730958484832261135450221218475535364048513347971422684867736788311783436174329379191581253957994954605534110593554539895911103535027140146778358765565046923366390789838044778630760972092509651864069387174872627438909993592443425412430519368536971774375087332599832968884590850022089673610111156517712016212966798752255075124396957186471720836405954278555704558730864820982891334629285794912186206460641887571549440434300049972125772661001268190408273581350199692063469265020885787318449023057656954958467477682109022416247582182012498117691321029652815134276143960201051228333033474881020016102787036956037411964192612674884303347180034987168047096168663069533761194232167380058646790699824817253347892941696759805053400771144350689910988365201880264347075947625839301550697621514453131138476796494119366773316876234766152831247969564102872235147345539269173603551044436470034458517128607567785263443156921494131945207535224660857789917499453848644853195707442445244576582031865980800489391195238880979511536174576559337156962268464478632424040452387912453833403944580453824001050723862576375861713774803004598793707510816232942575592360552325229207380141961881736341398321655248154128098727688446118203421641406203116522263938579888622024442945136419105066040627734375839456854157308333185463614763748994865480405425236513242510768555396228972691748853600576709434638406777328694592577410956386243363942777822021363060063957252695742584289331797177763938473566065031773060504262859852690012574190785370282197940142210330404869777295003069253196253593582993014469419440518590845501965856026275274466666829903293672863439557154687943829361355690414654173044177430976808650873703813010901460606308404912774558970791248279226267377644186712355645395827276082390408950339951355885712844268580584857665250053894707897074719696409798953136341838705480133280136815063278431741894751744216367440429569270381555421127473786468765822088514014554416624246821780548977655505647384994681555700924192066837945223743345594319021288501812954584734451659697493124575753869039393086611968436331632613893475900861500933332543752473100363986711174057177894638275759517094079110068749579722597625811730560699430503745713286970699328649977315940327634486974033164616448459428673119555183076098583929821497369969474625116842329957919555791516064788599225815763022817791265181728300512197019171992458248995274886258328613231102736624686518577417108521497416848637631095448608471936776107535224247708682871377421527387036736451214221937081113479346074040666987511935393316464169919795556964039155081873252562237880592581883101257168351985929364969772542200266852291522842270039775226470897165524886656225739453667916908018322074200814287265356438667645065077329754404007390375749544722823067983778441750169623504079327376231178245016817996436611958958844274789037803690672829590889221863184142637322328668588445927270708493931507151459859870656885194027622865173734315039617789280206201696559824985447288762053680755173603432981650436732092977280274493749828336998445301537249222289524831648409647061438323716330619737062375656443041797228470644301511144784288061533961333665430396258475930359479725751011167343290580547483424790385164980912119788828238576161294857668457715036714550662531849836302698813095643983142733314365471423186266101781772127217780771169525083343014420581570222811104419719327082671347180384434166567547221409100084221390330250389637904696748897844926273020046255023479154041321387688480292266348697923335130518213721435907795474693160862827565948640941579815295402067263874678836760166219576969750908305989836897394333785555652760141573863903871661638237773696671915718307904971381718455183486493600035584122610741164326567230123175618870252879816970455639178988409092151041624278477176097015328732427117048233244810824239901402259919062417671063232220881178825957325489390811062306966721158769922433242688856455872963189173778734683982587773829239937120594850042643226058576565598489565033663084992383972746080781188411708988495732245275517264257478744367654855552605023285852994147878266774819898047756764169143701964900704016541640800735585237057911477498335984644455085851614035183387120187671589707261205664872814262059946672791118651564826704975074908016650885223699539785300938830495856577294133863856773560745459926470445840419438693302793821790464329246947277591868755180825123131132479098713726070200475180974595089347748582843795278950389776735188988671106703478451062160012450320376030255738101190122760159478626789909547383156763534504135353427785084198525675283308376416026997647527317391661611155194039476490776355923469418852722918796015415153843269960043471017997077505312606796020388832784426088365231064993485694389958302139768347839385323935262054242980503108798232352020236569971396477540739403818247909585757617230075152969081479348936259749833742814497794626087810145565856809393366160165019496366163620422689125695415639420231493632268604475152746429310029646154870139190793469930652626578904837207253401616195508453034335605291640997557730611265156173950766280310954054688839397878250326108837403775720110208640806565458829239291034181799754698210935385177014836668615424195611988114840809921832372815103939470707359010505687790790067319737905279508385773430166952279704491541086044716527115909309281592186207591816872326192055932015453431954949807185685487458131232440173491592297260865786969444445232886878792870402500664183167229198813940637723450839688292601762549510562430114763903820544491420537663061547242897296409979602540128102183086935767784100993880644442635425537234719076383409539213091899532873826910270981558405627862600757456499332489999339266835661883659012304435495157189952079047977145587333785261869500121304650331177378452661860422335661021536972433305557723194811912671758975649493887619874943331096666860496068139837371995613069340480644376607937494529406257696690556784400812141854136917704028767211678284004027281510816525198231332480210394477913396114597142815212780432708911157926878134680700426357532982526904249821788296764042617161478183782680626136190923862105595664263858754123721052680059726548129219711789348459833243451172609230399441417376194322390663589768575716021952777557754349238919447493961434681946132012149750804689718237168501837759369245734922618922687559702871245669185532417411063481398389804242331823920442014105740770028609950539862783431928786511201146245686299019133475621433366843882098550315944100794568517407879408384762157122895479446487990508028475267869203072618986908742988461847426447551804661861515067663621970568175936353486875743857565957759308959877304587378170437059550222188356445797614043652341651380598875690481285563274670785637369047981339865065448361879638306142238684700286166767403699893847758669762983642234008725594304163318603503554322220487567132497502884784443851482802383097022176662810750214091668191424702751287187948837593577608448604748009557382380946204203251057196831912317426251570117181813551872116257333381788233516758606022239573661934731752910855535623328019736305365384050373437151756667449232036059188474916494752273902409300729759313478070802238894208559344157037950853119364631356264862274177005864827910843793308141198769817663969205012172332475659499033826647395625923088184929332259425680849556349960014624392860454095024595081009333308061161480801119132088231300090174718454789278918602301366343368369080286486804255106276366869421450168793589092288015614093623998964389475594000332829707942067086496233642431977101935271710356240243903261887960546598193440930903977527148310244047623372164306331704632359139644945242005637954201230215693621157182117284032051993672501934602102679011875745410820327366524873574794733594082641163654894755536785046663708032675818216415859942525032020646731799822647874628252389230419727274433819031167934900608469761029869410059741696476236006327762312328438870604720765778342449640854215923598824897335174827460065424077200294836235535661492252856227612834681368768698068339487794735093822416485649188350841905334739508830167265143483087490368521376823115838076739626439066053961677660570854757825180128465766289687405945446544284098494595662133832917642404431136491055646107768822667381759088109235210152042125735048490766109235732506370762629077704095883726977236392399877796442040814907908227590597657764379165388243405446259765897848182028718749201846213765836601235157987255212161587206803285279813758819540314712327971157055186235690914225372321582623322778115714814420278466484339986195175007032120486948891644467451147855598588013730303724407295607158917507877330275113719080159738724255110482275838750036574821858504966011103822145437442676338662829665161789202335885699748428378551154100921134235569855265812357670746794608364687084685054457767475259244494747898662383120494963604166041622559468785212051039150292963309679569606578200877027741862460007369516472572612725990157846135525039029718527673248220033010858823128566437675415552211728832112703916263048710106854182492137662752536104903348133494156112103165244621454847436715404805917570309631236466687186067709574020089277287213254072210662432974616618181554522127984459307100790790056721365857232181530540780340587390818130795841957323639535538161081302893855380472735742701836166756681365083956895833471366125300325953018957451397568887027295597363330273897537711345420697277939055850188952948086077609930417739990762491045845868208864946718534195706307097161262172908072482668198011890873278729372161174041387133432055532045633172523865991619564941745254302645424667860289163255747104643650882707719241871169366866688926790896003038940229299817522910641201487779657578425462153484620385002700778273911412913749372362959012165544202278370035640514782123806277754734591146145823340342586616592238566830912054812780542615720155412140043569579467492214039016516439888396133809672102653971787421115694174512465464189218319594397210902014959115849874125805614094650737508921090784491569839562928061971702602883845298230355615113945040436690594924268576363450142822883512492651838776210664321353537585006478287610108669269333985026492046367470563181121888315231094924097970149191741474700008206038499225825715658114746838980953295502948109532156737810796038855838224369782383265489539402142658945718720105417220742555235086343827837703144550564258598665032275200769998285632219763213513895684163864931731545723406097779838478050908761773204147442175025705134463866754092522118709184830815183286794368984926378111862273797208975664057883066688309362539832024617633076256238214044004000234575000308528033624639046006898780195693953467851611420932633771302523245151670536160761851440812275355254098472039231026653168411941931865334910489912541777892330875927401864215237430625021731882702331877247040102383821376425505360708870044864978811618279460159581685308249685990781072606294468033528128906329750691628705317578053645607309081637151410154880090330681748218308573013312250220004138346641563746436876013134177893081438166556019185721839969965829076437678545272892316186320782880446433235077582481314361026148323736940076532912249556803151640086621189519978090686465636074572742273402495243807945352380852494031775820521427382781667160779401108337368939708883765977469076578034249938497747842422554267738762003839228434374358965468458670937520267990521401254604006572097212812212138122096171734049065219921228178284439072247695048140582093066624218299171888289519649760139140247629886320587207993032444401253570834253640326621687440966008718907356363899638478923653181451712912530758695553237272912746686397405658097976666350945774019015335325760415382451326757153222772659847997256039340317646602113306043307925139705529014741608597494000486534648318215181623744413174513794872283074364726812050966556714992337592369223712102539697542917886426649978564062189607567397945957706448779628481290015466968890669168328778201405260255918963035318443554905748267815170305816721352605978449165452071727231181894961360803529562177023258408236224570789751356056365108768255534354643266691366797818049832351027808344825390600747065058421280224139114225532579879997059863514887967561965160470238909426995228500857137563586324789402770196083963955498624743219182652609857769055732067471789211038604332046047269995920218491819691185485201547318908285785840223397743129709596449451263216941676695773399143533212147705604045868036392709064365973529042341247258878823204976404097852250951981914802556902967795948939193623514498542996139409315212718348442641981842528966431391805558627646539029487518211453317076788759439581345525368662030021891985312714126764207426214056237427599514252428210536494331836201634173378646086291069324433114945649452156587516332577569222176885224460361624540580323742840592752206578704567989441294362252242270385074669300356950137598890818173516363457341796547752277295824402953126275346997281716455658765460943871665562982913173405730038493573182452178606229123904005099397459765452119523478722703265945985409777563515401685237631552675669347605744955054705399292909007225808632300341530048166420165138044640697227351382202604960427212792748022886143396409121209216575215141317440756346584775918663161720293967010222351847511746503138823628115666701494634934947398261668900182077158470589693558717570483986892593630670776682280838969057173021236157687120985151056076913702226606941046444310244862104821847892347123343120751111937627596641384651721485985588024296940454135046749632290964935278484963361163215844973318999058794246331070813296535063018384373824185522552691509290448278344301855356325351910556946173653563787380578526982382501816137736544873221758110892189285599078628324224724578304357877025178101662761340054779359557526627376961699845099717593214889943522369865796021126703618018403233245346633093453640301583335322232043021169596641538001867719148399987442681029298934936565284237913899098165175014743646150627885616334200318986442362116109131497317176098430160211212226204222236249110028538181832641118669733437903061316548434184172143292144513087173610465598634324138783986390126875118278425209274776202835521761309982110616566000423285775764485486383402636990553549707133575041047727675437312878836142983224526147301734537055070986733789740246382306494457366804111542151471452429005472712379726653074933123937361885306306789281702256660976375700055719560223869193258917751597003491128087011890239578479616452371447507955089408504270326466692384326943368172169510789909514630896128634080802202583339750425512732547808765165673022674494579856297100358070952501540796229372078314405237219868841317343756681358299502996057278242829908762980955867727434072309707971791262310902129146212279079752051933748780331337395543676247576081360573246074134349231274893194159257105970872546014152152505258132212848759685216870055480895711367056874699193561121546923871665111236692074571758553559700677863819507317710837208054604588492751657885085415952849109808648135677184018832588048550970541734716399696077286906832207865467774133928381946309510043429943002096294117068751547156241810648650273180335480305696381862116287477220163300454895656679925753745812199020692252325739790871994086817354487931584277528508964703544671841503091894648143265437180723671917514163915038354924792933196646933209948933420078171676848990136363190775852131611244701377460843222898349431336467496630076138451663704901689522436844664313214164525975793451963857209201808390879186211268354631436167337074819343118117295579435328068882569750208521962938165150029118434357708293918268779201623750226115185600712948803021252903834264274894895488940915406301745572710908582095926306974930308295749920728697396971209481353828051504329360530749036008835730813879175529789566564380106259639377922948185919409476374305092978944492966525246761931379930340759697121060685003636725250562004722372972455879290279994500906709493670126287205030107627834732911543296828464642623190293292111207453121061785083398742059019946943582816800704714814288469891227412674126424747537108296023742042076190057781801904391127265934008828523937610173766631283838530911285997879519612614272559283776471382300491818752472860674586338071377032279039530483242744778473991101328191909420921817627043344819070559828493401543364437725721413100781471692110005298462099936833536725956452765346940002671793090897658640472400338058276545333931000635623167297426018095300774982048845420248430392045671554897061213568713550084374557266172806389565654604879868238597156359427932043760578871959669646359842383875382675302846998317630130837083894531947639346718829939998045451763910144684374613279097389174390196248946002910902194707159787174386356235690970239534994768492952348669708503438345949486394969983004595108707321089346073787427972375004847613349942108807510236930487809424996834860667322939427206758866945959769484246753348056310128346180562449288839696106186773033395869688310476739591616918272269501222147545368639445214823860679896799239198338141393254916393846998243260233634875382171293561280066945922839119562392247797767004936597947054518033301372930604006289141458080487408758662398311803429672985060238789162593210610624515946241771252081455731202572609404105349141852255968956493378752556007517537884455072402660094613023150478110089901880429313815620452702369290979695260796254062945360026346455193284092438088252846269506349047456872977986672110556772319200987782017925307877884338583992070048634439626875104551861539209167145789802881103207956138612635823565745185248850478249347750946823743254220679538899791535452274523636584135878537746669370420290927432645968609029414659527632451606230110214814856809485057639648674969742036114657703046249575613489797219049196935326266299119229131923271442099713981427724570003679336751454092001336103003233215542705228315564779789135586822749529667880157728159416295741064729041083293560573245740500548321379699185597419024010356446046190826852050427724549207093956598338143343322564592320571745102737262634628347887594427240668677483028279209315388569046366475256883308016745442340869846669240324488099612928958301555141964112796036352649130088440108440615075647244809904062792575473151249440816605865709915889224132752729750764115441794723632771442194875527095161449172694616316656329428255453960949858644952362787166691112752330986182158229958926003868935155441716556529470958824701477685004443322439026600828383202587087533490406827318821617957658252502833210925789185812121264258770906223596754567738004818614289171455000371370999740910875779239993711659901638186906207810750516963979089148634814811095558354212462019905736134452499048082971617256072562079322005641378202090250170169377064530050280827764539151223154948474066230663929634634724615972945804858745739609247303127361094497682050245996045458339368777547210632278492747723346112214356529870250443217473121384539637905644822526621288220188089026681096374588989603182913001244191509207941199736438839286179414077569747013377786157786641431095041317172474252848215168183334777408497700585352331854054260089461533722307899943629717206775525467648482171130432555243328798623023452131753576054363373817519700946507572967803044050086966394710118741988509348052908534736775058177030681583629127569473361235379002888366425800075681150657087615277930815044632437236464393924018840440862133499230015508453842494948737921930318895643023257634719922174396858238232087000564646817327436966519056767924325733797317473070900341722978896052255674577255265346723234333470498294029092589575434165582082864899401836159206544127122861230352387810072909661843172481132521785056042275321249071773601989923962319994289345756028278191381742606184516389487391911824852416397970215078577406808345348659564683102768693803853835087130543825468689631734100384872613206529277386621691207091648781808292145773327056128990292173299593928540030421179452368159532464279461663851763860102898017252185918334784511827406693582677851531761077132498254604008819809514636397148018886147177473367157375098855276124404427502212917345973680582564344998329682498925158653522426516922944411767710860710116547414872856569523206186251338953915384973002433531801308672635014557063426517022950539897254166420391159229799330062427193007633936035431770938102636250242650489318497543056673806097532259164097221414278233490556904017785998775612355391620626892948784718959174287984018216839911547115127090644385754813630617853600168946542053946028425751143814239358952977670216990929253787955762183461639650284187458833286941744316727839555196887215025565975496295921343575349285031606741187706256683207950297779336495578270988943945416473482234028989071202973734396281369821529775693159259455468577935288381359477979060428449534189110928840003172113833933472261672593651155755382686066015859717594585218593655825583177572561405304535121772359768293083342136379255785203581837043196418903364769561034631323226422548765458187387329326080015469156516522004172011094276604016057133438615034068765860636868216789011772213212507494270951028454464641301011169365634632650470563923321539929671350821490367104175980603294431948282356457504138752962714258699195968324730659074026219318530565949592565819333403403204974552772844715333739720426870651437786340675590928921611195098716999301707175222944952974662946329385002303637801277997333488362836032600520298618168595343317268860149642181119673010004798920180304605457917104674731602989344282055740514674544039143551026918714823354356496437994710328220359060650026935458975440354056668154453096928496632411479403929201601633224833119378612822801215082342069124090924581188249945617949872309408142785608706112649722290278067050973966260893147539568365305610596966080937908855211378267140685808619230109847476686312012369938288174922038841219827610792660839487552671509988689501123360298763111962342972854057092865423963357580982036358731186765583364541282126657522239932223764788653934313741813998836586705123272375993012586878013938842461010950030194993327067127211920033101264955734158829566795342442687769304598102576358216271115084237475876790773388063322495397249001199833926551483749827092840432328902386445999639596229904387862084566352062670301208303030463834161240971646586619274709157897684227132513171583472869032842143674009827806428953406428370516488203733785241403575125219851884498188604727679543003913817529663766537929947877362489266429814609244667519457046500325938966019103110952391543795336039042672671092457097057228753682885797166318356140847102712792720855035632272078863926769003523512406592376614226419071983382233315195542875436288671822852862810737387705719244819718578524144560765393763869368748258077103529977523695317749626533066657497588827548985239724507623618932746791144310026978580651784719510127302498897072570066543234578140821127081256593718190410539844066370171099722082268833516284138351697933238215523809698668834377273122205024253703771188136133673768329077123946137475015428830614457424696269882694684726246175617209395521655732087479400591768429750106007279717763032962934510053288396614531309356661417425005229980607280135265375418967824055396228545449708822917936823594499302495388235358856439133700174829132013758125346208708963811588154263621249478692356633313174679739161233512016983222194872489997655350661327425638934694675085979452696745949121847143990589524330575823507799333231485964113681188252586095696701222607324630461962559711876800110233314718822060160196782850223822474421532439836900295761699521193140500264107539424051638062540190230493704170032495427226930083270945227419714941014312282857446625820364289719069944787854484825209721060111081102106197202472521029158631324196569783086365527191399958380092332108751430741123781124500466573165898341855016578912587590774689406210227953164610152820521215862592164170355590668974949815433798389486865064414571400709253221692983890878871884125922278506726195380512142665324191402388474923694276333373524092684340298345739940161774920276179892824719587750114188265700163549257228173959647391621657102641647710497494873263273625112943969020621274515437625742306595681203802609248370529821413299380836281104294760330919842217966745666215370857790817848315338412577246746941015098987517100353428461760350915096847188178195607924089625255840546065309696577804893485846355102451503653831434726792069568907703012145183982518996692544972783680679314693896018155570518990997384602303792255197541947113815513947877144924517195482686328632923651901822904424152853085689611745399704806218805628905152392197630377925355130830477773421862253900074491582739051751975686729426787609862839843922782422475048620661033068571993954702874248762240646068777207577734883027202145289054302549590884065086522370453821582574656628697899656078885072156472595326609237287607037323478439364005328116632998234941526999966038647339488901645360738321259353352275688070712031435755422669193065737770803330253585875172421722544924498902714889152801890915411374799306894312012954508362988560840910613843086562130194061954390024202722765326941778767940351382154796520664941984989050376057907606883081943658647580322542855139284539132208590800527530248561106640425397980346068731546318886491123586171622763277501910353747611282008042241276554425533109390370641652483429700120489466321757727627234101723302302759329308157107260359895899629904494468712166143131998476754590928975836516631319702521366443965088978650404137923572748808872980971150155451746585337987856929950881283176921972599442179206453119614518313791428737223422095068014088377200755339095029828172184535086729689103991238642906817035374964211187632241990480345570114314485513218139790570595063317975174873880344048169846914848775572643071764688799505773691905985153469265676215484907206747996968397874014000549703931023678973091570238139052399732391574919471182461441483131548134090633920647471781558600207274818552037657723573521235983870573087382196388575915463699253018699481639658242631464542547853943666669042630707838307436929646831029377876161838211565417487213540153425872634392275537722862006763916462992287175572761268503673337065063918978376773943084212568272118211655281817789312381667157917216364046413133747728822960517298036271523161152838400121044861889584474835757524349809542451794903583609647653407260619848956314528046465435733828835560248502750663114472479662776213203126168689745440919148808394022266084633845733304017275353541182940396056967894203346920049317146455712276335635755143664121529562585641417627437093874034637781586411248855225168562083140618627746323197367887428863283260808593439519654200295453331724763326546007556476206768094140886727655554564409375289888856803006427078426554036264636307962537501700786020244079689805803873203256427483578575209763855906353110430390914890839396898458059795185722924883866671119992413811125303659764900111433452767181827166827608307920128571184346877001785716114865131242430066377026004087840010144590735445772246255671405922016155737577355473442553950379497486726944601733047503990835962055944052515728841328698498837742191531593649005437061814990790108717587226081015068928726425878068098798408298877662869692549224740606141537882034381649653422485000482742737373363030305510960503957059785788343143447533947916921402076417818150695245312154039359958185326348871526678137049170894515535383051881329645319160934406570541298649022186768132855694426554407474977224400983245433532738385889349551317554665596683796242888621433218138406877609530164196193114321714100607283181517236875222530363078813102080568246215456205836357305406202996892662207820783253057186781286191761042855164462845817588877368557927675596107951900083117110521693931319768321333751935158685003758074527592975468649266452539206001705262260611434947193149273679226696952691099591580068298804164448949353546498203050397419229792130851168051604487540369080524153353562114089868820318207372877038554577094450259634606875433358318093590447550260910103053190850001366389109249931597361858329705046648393385537144777977538754894110938289138491770338234739716182657143490239458307951008444546779223602100132726318656293814836016551604933982392591735617027306191315493420260049791218241136175509905479656483942467778414151730443597021158086463315331281712179233723483661050111682798954268613307901936274731198024877470282498108997064125557099021621591925267998891343795984295147722728991608457861909591893134059333082582479254000370671555475384128243225855803790012657780621092201244603031868379270974005932910395590447316616509990890819435128578227242353406880993717514553842563758581535735217197583347619432885143679231444382422320648564326881132854984468475406362654320883604341124374812360442435219267557527838491927388352919930517299771019206475257990089556212129464420517951935859516091633450154470793078297055240262320675053549418993586901137347868120717002019859152210256677511807482682074789375858600639003372741134414968691742893211582632517863316068185827380965387430289161271467303362403468226227302987822029988546403738176614936787213931596700776377095111993011160890387735119418200181215814591017910438858479074370571972799733705701622949542087281270747776146702057057405682123504350933864761900109566218821607149042318945608435096246817084506241118719620821879490846431489080114102000488717462141869049872509990021216132615780524293699447733831038732464421499842264227287743172184806496134602870023982571272201527047034433267647633067649272675055618276208644593511190748504654166420022023740672352893668895836396046015264820966550191000254643265786058483028360705675548435007168517847588045136543094181550400033999759401656302871655591752079070210837061223039588096403584104282344992364018594814056606765697022278343525898357898785926111483276763509160008506799395931182324730383439622102272316613784518757662423688866801948422005496751174136607124126446166321420379026244356244507770411488235156209567864063771081730443790527652373241807647687332247747779041059844355858274738496726616945733046874687885055155573803035659576567832306048388651447597327427823801028820897798718409861074038693698486374812391441232314782765005291203592321330079111871550051260323492848841347802811455061837369856909316148109675326392392108615915025208219190301947651599878316262162194789313236398689166980495573141097997429757179460945490744209706765434333995699201499995369748222623716860141027701751233703383065795435158606466384504185348941917042906730939985787546193172326911952524094475662407570018988872137858823914936314793655304007856234986035120264451540273780984786177568370476696044409384362303774386205855669464496800522536089650366684299861605093852550600544709528320596379445706356976250143368353364162826548852826908901937384372810459700489685532454288279803596069564923877698174022837398086436462964933830517909448804126136495437479285498616255787731920526822008837203539903624959560505269802509362966564177847635413879733438181832901902275436275733510998125545258313433665532933896100613570706945488474511442228002281978458565210930169321526783828258792344605115763458534351335482989625438412415362367768963639703471421195400730402351672441754537561375204742242568858771662717915098871899095868921382447603499974682257374989788364482934822703311618627879994993930916198856338297059374006946382073308144441585348936629188549550315458725870352296770299900771217393140458780803702808535737358643006501168170807424334318205108414688278152064980520916640868565448462252496802895275316523516008496569885242110718595806239931506964491574199497232305077279690092363543713932155296246683860568522847066369122729938420698955092745537351623959879015936638314232679831700249859535466650325784176979378390108317881647407638515909215600204364507015085457600660448564278114304429831381198019978798383511156426857141582807563918067001134420589390406138089952528404134197527008276408150571596514657083555281839219321778656424013268267342106278317843008164492405699486125673178389273125027039879761796086177002634617313965705524582109074989203985789553516654262957083031954461556651776710982136718020317019908031173244139725063873539017020746544367342078466308279670112498921330758430018683961215965857352489553996067445957588194732319592759688132855922557077209067474727477031058933686932026548390931057379030697824519470285029597764800323384664714182338708402274694940894240322819235944154361326503726004358042075424969750790300626722603943478663855179857887874833639738306473685286235783430934947209346761416612886460672951884274235213883071428518364547757823090381181936304551487677277227291849715362160594730929417577090839991102407114120918237067475701834864673075095126923108405018999317151659924657872958535033509699012817547146181703744883580624275591627504582497301844926944125950752149248488237799872089997426675841935795020300621437537773850253613803824129452729295594929173305550098364028834332556262073566209124127373935342029883982140408231419970093782079245071069578358655761755846670075080333664054772487800186580632404431911842202451330190016591123156069156029980054106244529809737073414388138671152423712168996525231586166289391078048729012534148339024101704136800507151980522336896220097487112927802702038988640841793717176668742530117912380385895968418927522983808817150388375190551470262134417560707550723542216140248064274461880753064021534916557624880755481585616692617171196571054994962930625841981194401237717366395185905039646114329717978157940424403791996166917554925704723329643745281059878344411401544414276130348853517693924934559590756346083575785645660070131745468090318976134406268393327260327789039330899033228742534313189219065096003344488721799978474818768028666464340107140206430004409608200862548335254734211795279064553204244166028175306655874932359946470828883188494002977360002566885700991446912631421307648897214148617731674896897973474325645848806627813294427117585463601322335335317681876009195077569339320687709562039144960458168463982522527645109403948993711576494407478054892334798919069891541517150714748017086012022484872389594063817167961738771254501630070086738987088675807397063606831112227029634833342242440299262364878774113536886268339758985043759973412753509812193875379000941001405904466327353758898417288880436769749171308537140745513519247271746858514723092746028793399648803220886062954748665605536990144504312201752779946338391985086452253725019515630691506671956465979873274266188399123846402130455230228659293407744398888477798879764895931880208591803795669063508235183128166129932508026977051853725901734186879193589900151692783422387828844454126840578472036850638180306057714673763699132802345050373515561346335408740525053231697351291938278740646563177603278195403696135595988788867253171292579008325783637575422360720341968136706691894668736588815952397254806213433454799569195924588167327613304500701188414551242628899328451686304993106224816894665962014147694851481900510344473112578648023165312878975961623925522517409411883983284205425982092898870661621917285350425138206077280037653238893574990306137430738539153210383335140127234190877183572553941862930133531986863754656737891781581666026136756496998296331894083692662318828096337678730793530419414937781641397763166228744936338906150456608757367507947483292076547873756330833150269027097175485847809832734524422699746990345405565499370909990944601773138574140309902425633970047122732005871852296432856480694750753144387165814320212491609835009040605897707783827934888076158273509505078561279109068045775619051732850060622527508538268738208808417026250829001713162346738136766937672025757214414955687636231100547467979768160785839610491810144948678131834415979934333273406255846768922036580224149632639554941152731796716578554099043380489302256048574687157852304544565208704609954335543414938695405180075170822202732877616122102902314952952342285173835576537778430308596337892093725825217715542794698468283428117479868161287112209462507069701434021979445913246461946931106519037850270718691483933651501479729200140100826175185898111938720199715608687089254950488052811627260876439096984518275334664556859359560157035390384705402025311978906968100041491951952177252177129815139005122925131848881912457855573996653457255517280314362553391307631438304107212925094518482313747042360521679316354160094561876919562389275179840519926904140706209336141886250679808250631049005703782557248183405062179912298467537916417455898458786657087389665929771556136158555529800397670218593744044387620479384542259302175520327104912496401479048613241597356360487835117618708393719188850928340114633875869473271455028452525807505374371948642012986030262234430576013003310385278934949367171150054028517969132070420654766505954007044159077005249715938489176108457106100427372561860857240570007405114972131837393143302972156827952154893694433834455682314766265483044930119983555888596664226826806686734247902150616581805777535126179855088504169377498440776969562159071257264130859315382839347351756073879012470418108790355768557817275632513369696916948267836112035610308182041113568566138015811495582282883819565902735763849839605952993773948931338732842091348347277757974062065789856453677617053600787418414350895326122100674254554076284911943861751186856056795762253060509888377545492432311102581123943014516040797698862618989808104900721793125164408972553081401369120092173795885910043439328180125014796119564244583093195046104973452306923795297665738247157696047173680237181927802060010539409014188233590587107651856094652916333728330298663594490410636148034200919776550125018671129541158341091696666647909395943647981163262432737255792196176192222877442064018896942231406111879609701230555988329236283354051669582378095035636004890885431202348639060159668962304315167764972475102613017843266449931774256520208009045843081540915478250527687091526059768526893395354368775683521966322502561008772206905387101287115129520539950874467114829312768066435355210650386401971957800429485588337612654027156753190995501812607992606128490733844754130519866584182967860418146066191762287417951614106803637552656043695616085692989938199157358526369259846118101650014062035744472969168452555148017087263991023082318339448488831680248383127360091821105343728288653796244535550437957420253653469365982916554786507278804257967844051258400216107222360510655176491461880477248575580705523662060997523257132502580990454857287047534854333068809607072432525797299464052729032808020985606582262446782543296581786001563072786114823398203726405603836906027241216293593779510133286469338061682468388392941806795119809950229685656135440048392527934076536860450492902507613924113452172301709478184522731102502396226838879037924237827221607509198301144788857617079319942018171831059091841375121216134867617916085653207021984294037186216743687107265874457168534449842086278385695625547950998148797578209552147108415803741339909461918317575552117764983526539239290837704481124725713682337076012908111471353116136174464572261803978559198573217033952081667082447565240973474935448972891844625250763452722193969552086844951372904129959597936287333717077326230476437739618475681562690965261303378196044854311040739398277436792024497279244597723784250920837928527165871395087486243437872397242167969550993814872135414722441756220402982345978662918170369362207126296409711872682910808420880054512935045079216043083623697187010410315497460824465233399067760461752186253366548413831119077987916362211478871965845895280493199338831082273725944192748965619378489328508516428298457924709758717044917442474266201319023495449516688093858108671081413989417034544102167192553223145953045869502458396777470811489245441495372338090879286157710105602814787789523364266972426493725896202715501138012535160124757377379410162239181036225151342540785940227107724337336424801027051384111496905567771891777477916542165467135682723389779603410529112688443740019979304435551764610434281454075353005463540775311771355561109235158085782006660229264591211217622398241642291242593421698463138249103997025067952128644044862907474688781275474314875116558840915247267612984251405488143395616184436940351733974426536601648923561705770879412647089479990372925445962790035685809940279092545299644541495341452698729171407890578000469809091459313175517429073218401117844948090185720981586090724773616673373860917271775710237979883352513840151081212954490325300869244443093897733266761437505151222056277466825043206309040327662530087809256523810831758081036353753942150217953765963815903467298430595370047799304098296920550814111666857169263236060332777284578680531934288091520977232457968973749051194659394474324988555718931381091881609169101133219138325694892826818061099748724072616963897383187377072566085251642109364029935573945850193782909991694743148152330785144597853765932746252692063906334927321573678691511210728481736652325997611884786509145547889099134289509514910814337555756698688667784019587908185076979653340703548504597715718264914317934139336989565914246522758196025160507199939066120782484626427029871475678417062417501001834978240587074385805437232917184266564324314222179194100214852350328067561271475292661119705211128177633464553365575124310659126670423647510027091246973634083303711239110842022300190501331061470565288114163197571453531804983793727784306834397588664039839084720512850723765162874630289452071561492278593065839035747155859227830534140498419065508244052179292923406705214374825635253603475826907204591943003629405238591862921244465753174017395501868309044194387843067527347876885236951362596931816193582092145894549104314515852140024298966170526019536277731999535319617403300275895684255792301715160694239290341383767206598939175476108391382792192851157414968043380974225988443938230556111597862800860712363915542754501499887594505560199301814809160064510199602148081280264511508473965239871445928346351237397203276637917903712812279836928075376962680918750168844777329669346980910590145335366339319228300985956134671268993221812612221403428709136429871398367473305056392526437893674849086471658069311081461364137735949842018696813795882590044784405808250347195279223508425625405710757123284256415565322016579116176485342407338971115794184201144133771026045436707747627132026181674257466901097137464269540093920306051052101013834484268998299368936176758878929246675353632313376014859612820428176987900717047636374879187681686189489612087524362075833115540983685258336597065477345339927500814250564845044795755989582663629314051788605558528398370373686745033254363826730433982898264086896094081496147248896444612745019038453170649644514657705558659153129348779107101223706864823927073752965225549537445593514090684469453633319504718425701757505432698716443492429325920004347098662942892273917398756514117103974970758038649714834825112110903133197601379699687879182924941442700724602952228699590762318566948753755481032302385118678901165605308528785151485641621484548550766933171448910941488178117178603183782820450426439315036984406206701134873575276684809221443548917623433961810761851241158696698239381847783122842108691467741846277872749026039925631933092214593492856373171873360219781019629408293193219792625815403661064772906668562231336823126120739998207566244531103599735397165859865045434741665296482642802965174236302816826726672820759798520745633950248441271831816183648979692421299886729686721343810443390678240596351835655246859369536878534386018870213659467063756670076395239222678440724426722838099177842760509708868359510084562929638193836731331138001585810109370415806274015771646365521676510266614487647661491758792211130495387087278688109590651160891091478194989201713157431840956545280365855915780499566791107660600839125342942264824097921690777898460263222960830407521761813921464550392239560179870685938734342226725492743791079233022476625476281592840537330097051193546959309083476669897159748692202380119109022221667964932350633577408125532036972011052761435259332835549720640358184230916828205034677085716084335249052091942899427309833396083394884018146069838911689475075995363846301924417073539979326235271723954267839885212427818086295068684977351215975809571915219425595540966739726486827998626658604707513013013873256360532739091941083441289218059039768038799853253732994496263560959393119060300519548537439224997976579796411267877024972839464081650251299289698774103224338482551398573399723241118949575550595720513818628256163066512781283306414880708697602152251704615535974416323743910016494803235771507318097597884322486141878554727685068582126384343681905708840127005720451398686633343736041057376927589296434540464053817305206590050670811345512877984593134284218515842423687151034622369963156878843198434962952711478501603293851077789042615385104124575366510088206424229109328963208442428897840280879617351203635458231057416684906612533586410191028287128077696169976778176341987106228032453553678312859855614729199604194511611550018978950115642651936290349642717842530319160209378419852091205402240405189373813955034312227228137184875278689966244418798271866769610859622364562011653252000410719611621261276427021803458557540201625988450864492191448281106273143198215822515833210658215094781104222938248540353612457858451071541251699870701802814172390669578189385669573256890257565069744156617430898800550278275512199632958551539943632592286550234530444747562927513542167602818623943725943308885169368203936665284768510378170588391883998959274706580091693402150112266611320362143028895596885851072172233438271750435970162639667354876422114875157770671796296412889777813039974867898686745912457980740565227979920067744268552948427650929111052543906198917187796769294737114249839746905079191554888078123379687431592598516306737074336392902818154613318111665513238347340664953652516058969507404831457259791411834270558024663682033928843056052429513447458646260943259995021796650404770131259234638070097475220921227774030897946928081124362833051821980731475926794415942187558971013548025706880797725832693418069999997770938498953772109503269099330849847985953368494114857813461515946732345425420078637531205279741173963215508186542465677661740813740410286768635956165849523666407604523195677301765149002690165270515850558646220317388328517860301885929303251056462216182574325672696238631732887203614489775180584951978451585582485185658899692594857651652139914684646735453647740673458255321199897558349793921171658076319717970963086406337431450748774496922842607212013511915718604020173779630718137313226392450172098693520996571112813899726875731498582404409419360003576175716158899219729702585387108972186739319596100371331195769744810631375297451561210241783478412028455861126080879895078837267779055140658978850991997014197704970111567164000993002157255706412316123960706003774110787610878596032435839128178426753964342356400207133379543970411711422609340003930104276697975566268135176192121805652345290595061095927451702189165253532316058758987766184007406318714117244350128388585755515851787093428118607983829230741403958553523620599388750230201307666029212044219328902909965794689678369368668961979118339524258020349886763932553600271363350026890087278453894735675570225766253788444434484138202567440251009009686799106228944159607642990282580646958316576190707731997938130694783417643917152119387775613996221350606767096792999068942895717263578544722476448953952544312234638668631103543316396452132780696703514737460377640969627221716637339662548592411956415493574091353843954713703948701217903216854815233837047256424071895699328861695214971688136093677491195513966982638533759391658537530661956251080924495717274456862333587372254177977184659602466617277313505718198136471385401211640498597429205130126927184752794689223568202585182152061037763190896406754232193272306302682192811570234585127846223569256192195151551196353088530230666933116174256335026965258801457314550681776781633299642271588041452077173631175340711109710869670458187089299808813090046391831441214930622136809916971370802737363559293035266343635420471145899528066423598141958665027262042008216114930371236101849245998517986865283373561162055769284409349202834621993047819945308409869952526511542168030326092385094621121797389211973790463409095142675202894768037677598073154464076384599143105161074791909555587396281980846281865093501049307469213169487222021942916877617097331846401328423795268132654641803638056850891292088014677019903107267766352646621182727308517115600804142373970399757385128015188611264087990208740621304199284335499509998134139231311630321181916180612399558014528655486073251747143482620333982126535490385394928515948910592834372723252627750286645505702447067188775384152026103918762179603322726063905986247992159380627397974354747954399393019621387485904660653963995179780680422243246549560843028180018392705062905496011286212655220769710931472478929877765115121486788275974337960249426836702836850504559905062396590608683823021788268940323130583905986052857868238709272901916734285944635834137457591261621014568171077624535714834192419146090064440428302349284867576683239086540128262013700876751163676955636858885349440939808652439021984521394600932215717245096005584907986168378510139910151697073321871487726518979788060003143731125694587373203518704599386120742544486315094757127736443687150687527528392380183038433493264015162761858308601295001801468162395971780207310279998211685849224713013518765859868409779209574192631812321524259982989918625793552193201136579216017591413467807651439290467385510392256821849651378854367422019812370134483337398233663152656245607283523929875812957154796017313495430376509587911569775266238515123656866375576431031260847448692854627292657586932750609392635489994411843914650568212731551614729049093156287826415774735993386174878291394254441061402622466052573580208761998311506951107109509538224500532024846488170287666657159667917234498603819631883050122716402952992203726535903087278075860687569152589675621153773416372321360375675661726360022971800178604915637092681265505305268578009548180123237963192168420609295910462961834543157607153110361487181666147630727155310630068766649155862745132063939243048565585730785955436564932240877157700534367810793234908531991907073964637065532931123733250318157575102835396740474006518716134532994388859879436499269584641388046334761123797344940180056717085522499823577492631347428894647671032304339153754995345664280128927483945437569374041093660135057636353698949826252620012488232945442959824947033660079422113977637309508910247580890848349141943154285607672096708767849505225217703237279850964462903379150775915172162212877393018822580476095943950706606252704139726629341783458718399108927704200239471834437095080670577896642314716436742631043819012004405318172826888364415257335819049074330577730618378671403873586194491970239495306335698938505576427908821562518242103513719673517220779873312946862228359808775156426143804590766501148748422129432345660339181443083666064200949748184193314056899002998993819633131989028771137019606277169021853807585750413223388141506749522793987497097291522269558286494341733594828695037778128602884735765137295601641483883056079987240420032525890453767521571874574782359936030935907071749230327596662738792307550873242763386380340670632961603729853320756415408482307577591174349030012117871360719603237197542490122749821418019085952215962322928093268124138303505652023983266100887920836846426664011784074001050442358538741362183451556637211413447109668138023188805375416064769959980453004617196183401599467195383001112321659875084254401438197483593602715291793374921688394280252088862497545957657413454833331014805292136959351398851579479327235370255404332872440205648166611158018834444899581512849585081605460463285369117430186327048494353789291465375981100284350896447334993434857134716062049029926730862174461954934553519723208904919560591014423342310602676012560274176511319455300095276437141750615526072645370491640162322422977305499397862151256871243628228861213398493929828893758274175555046117407695219158480545233941432737684598144034166911315908688478452783774580560012821220236036671178802563857535122905619933795994383218988532536924242558406356969086407696091558109060523605114707182825371614308677282042156070321969613844163038107928374366536683984172142002807788403016000456839258228940568841691414950270072517630176776900026763410411153154814286824062368522270005609331508821791573372662636437714526659716236590479783329785898842159289391590975559535579057574561832562885084895943964492896148987042694040162835458539853440815868857819476115366351710483315177814934209962733267927860298390800197735302801798770717052566274050026208633125467722519532564852475674156119167450396718024539751446980340398263521928415647216246754293280176162237785080846759667593903734145975857451657656025206833836379977647935220878463990463246094518491610192307182037760121245516357107326629640115196444897631459394139464719870859289834232390962779907712764451219785428833792900718535871576912760972723574869097674198219570199002664242329589231624305262805581874321351153558999381513835432382369222174639549701897792594239670016915800859693235490939501058253032005556557676977335325598396575486554985734024109114310401917703576623600098439127657675558848938327838487785775297067853399126558141710712205571684817713830354833183544202339325401389288234857116819681803625897736000928600489806078117335465697463920882573671006802670017214585998446929512796112165903818386098153708827495087335715931849808512444582291188020228836673463617253685292976725731511984718236257380688518888026021944355267387697347907814111667344796149546752010232555291924600419815704958417059471079690550761662361169062151287628928292616852558150883567886794571979050796346169024399094557316745394711012132831216195835284644772646034515137910032288739535925262536416424183265157863792964351069991580589153122162076750183819542316124107030031101668085977016072345046054953276238802712391560104171928137976558188822822715460391928008363696134289474244793525769641938211730877488591300702858176672564181414637340057873021519135372163049020744400654811921873720312060394853493064903243376107840071612625859721295610188329143000499123999651028988309858762832109686847196732005219429087923647036732439729102791454983962307717028902524507756218262254811743876115315359938795909640637663699803666574791797704045767360817350833524625516662683568008766026382109181084385349313149030738276426471930334520466958620647321749870930943900242762206013840334248084825430910522070951317974372432050259881948634840998868792886394273678042153525594586384470105090383750096138653822083173753032737723744509840783356075728210538256511305789377959617385015706559616295471944246737785992399205475428674145255752963975881438443329642377847306551141778351531848660194165280279032820538086653140232838198702444626288105509791675456028818948626378191303160194846262627740672739840708438004050897130123409849591592313503674019885812551022599161677493376851981572053543122898093495346740891918353586284871105764108393303383441656645522635048534915177410658796338847567768529682101411854622617560234025164672088532294161378496099968171311894368663430114849131480604570001882746024963863526542626718163162312417329757222859220419251424082093404403733078186362884575016132047294395621831146128547716513850952000946762482722533749938524550689067506428692195067750581897198954013969486845966364218690841085118576402866846645766768273005273934111746368137064288701637252516145172657193815476676522314057462913752982706105023917280077181207308327579180439718704276921786857090486769010763551759611131903377814703651403645977917055783028100509467876221075467701519873862901516464283418835398621610094596521008260138344719716278761425219415371398793335580607371409090745135889004437144969134574705549512900138685084612755590764631578464815627365771934493321674479019693945969598312460751246337323865602601582000817080481945358466688576240083328729878966963182175994418019662768927690256238063959515717841404373414663415315466137349048218124257362404036102452789821165427191452664520056948017999995441451610805021406256533567918859584783236556776283376140038325627561716383245361599200828386313189617286814242956300382106789158016922097203421263969399104289640447439114777518687000844675759557548877102550978525527641534413562279891984065122796654026404050963693971061548345273166551022072807986212570877767940823134758730880455461776010033496933254809444577087528369096698521992297401404839571768161598784419054848654728128706778241401874342267233266487757819625233310107815445920147691418785090092855113109043533686511910367438714297272794193574984404558464104972586301120786146159162695089794274356395504723311894731324377779785549367741515428563604140777500940842233977526710371856686422978966328212654208132289187577627215253480007961423010060859277909656287298909446037701874344453673488341593548400011211334065945567243836058049720212718089152262995906843189702855418198707647044155051469237786623880533236760761944739986048039505664720387415042824073724829733350745227830250405388258068899648345305983462634471610360226463773893194988711747315804114691068210293409059932204428054862839129385185208541326729123390305494434911975833568138483262137413049564232160439213323297328163861702830157436132742206628363926003948367399140134458972930234633697132241977571273026804236703303294995400738787588303343600795768888126644169945056434116199898459966042781963239716731388446202045360828037663502034282413168170116327008838241419216680551368241568394429257411078129208136671917270057214307822540533189295385324442725744939451584842487145838058841743348886507882757813845603272072578990548919776665568275723069369793325372547075588164828435529985993145826726318775815564500722091716966441962840642538306983681297705664255710714203977052137956469016401176737327377582838001242696867033353643654102828600409992423000497300293865685278502385747918744328473874700805136215277730367644803065530084522370650352422132380496778012032508247240208373304441037298799441971663544670006991726625796355998358213723176544662833965090778362799722726930608438839369348006349867365792656528039969958595178613280957514203016772849370988723077012558209537137047447265363655429935450682105538631200970907153190328473000177242446502682173852384623808099396822578405517043288215469729755196342377358960449355024852391925409710090598437449135350114299658966814574430543918868783375057239002195845785078346260701851260077799331913810420569676659546914056977642395080599216752655293112775487315282905365658637264910884964255307484839983616134787481695822930852630066723959884375683971156949591665335852904865422693781526177652065912743336796121545109283859853874385330192049912703565546282470896339994924240228297702459311395364808010115986566163031586669087438952960037740158465792717974368263996698934031001321110129076248906844852327241723752633994248241599370541020238650193861668733518278828381387233887150732516090612221460475434227300736148536919598695162243210238520819902296727376546355463717671570215857586103244421915538325061010369934457049072781092617150613167483262421032356004552298681899609197963441253065314503140934475469787008928320841336728520817637406614372630217097531112393042146213213683694676766583536273937634462387498799302346620990051264597013234376909045767118615059768416177904152199863200292088590505746225677313751608245095145009724715285897466588634104349593635209882299919554161791079495268324282448549352097114696557113595510062291763776604364740914264498910793404893087195167649989491353687401142080065167190653511621623798403512866954935494189917702457303999199869477941452473163221755988708806787440584600837403893436665977833935414413374944071793783079848413511114666333985330137275605883547988208395600118463383222376145557920411934169979581460442003065705501148279619581416250586690701784190312667819961055231496582674560742275390093023379777204157811990670870362836297144023629570121349511917303577434713946698355330188708085515230276324732559132930712271029837911139261185251427171719423085004144501340226471111985032831509146360931788572068025398981361995237890325488686853576228563678970517192925458211284560605744741766866411698682041100268653128152902308323775346772445351217658514750836407951011765400873377950693579679684604123943853152607461773398387929000802916754613432341480239407894517177838305866849588229571923895072957836890256813640558782873130222447177849679454520269011960299146471476160702047240624891585978880826728659699399696132164417596101033446862093405446297657121169345933151281902334544546810692894945171619209721353441778863028074306644656312151998533184066138312800125528574588384522140862027927346733216779193695611172042350348921239759861874333255688295393995969048985091248474190903405839176232499956449464922068578885755986279623676384019270204119561531767630526118966097599879483961610229476231270591162738201322049100006763608966642358933323812775994079514172996352275453931887409801482281913311818235428776654903976087971020366432993714797353522868387132411077233414985052744614393036476643325804810640064952030101128245313220495694106484306166420288948383645393739679625201509900940070173270492084306976110223682014266855720540991331887772559757571042687939743603871844254095978764708616307799496153623724686567954924683960961407123903968933476904424703811966416054683832768330075321568899058742666521224382212612472315380865810451579380903469605493485725803169323664543139033141237054517909048054158399874962693490625161825067331247129724903175031046845892820596729614269499460516792584675114659931265028706702311527829049702152667028785990941324255782754046806111260983413612753247466376189161437372253370766206736434313479800574751243906840658499505351560731486740336375968385257927121053196420251405757746105691169002964677182192525568470339882946359439483842702052011505311750373266825406361469796371822010149627480013697953156395185172213829767591088043559461369362222185057739061125614605451682264473155042989960971540389770142273365381533916081450294536348719173665655117889937482182543015843554743320457098668602666220258148908615758628496096496573505597687870443865792766481550098792003203411609280141824192094606781433140995152680767155613289419522726837849828826698300557808000017216245542275574573724602770777306313638474770333684368300151397002906456347135440317748301483498476029504226938069388547286227735512211908003797827056347968118666932948389775250131581872378131998889252622053632057566081877792006466069950922590521620051310648192619111311115528667085676159224122554887707180629813824251088112818820342490665935478304807065026799744216923956750056324227644003576754958282324643296061301608503983292680800964753573720948648367183934712612533454837943663001907372434695464021083763872565093019267831004397248081295662795928602034779187297497142869987728768584705563676389644604399054814031033701159182772735989604592132694353217774227442896681637804609382258961245404666169508842952039482946511839525506276889461610946973536421785959761650198912084836831557121790667973012191320356650805358568737947985241239209957804139497854037566224068445805187097912664054724753600085605344892163038466306327207026568900745946796716086295645629963503348338510348327433444939922878639498342682621866317082224687824497178143058990526201534914562062857750268036457184570040031603475102261063997076875106623100708846992287280010165164101829554621120946460024702930139247646794656163800071104783293586184039361800065631768059326549509235610677220505939306026538818499082468400469801111850324446264077974421133961984171083961914286890578340768437832621798877473444947953906179924423821501848732521760044859557991039173944560697634306618859897380835648624628322818986657760335272402482602416060108201493346870493247525443903652727254642117227330677949562145758227913158421050997270153703769012416977473442818664591601333271434681976973779352423725970506223531468502887723189680346729443119017149704157869151800923286578796375590022221093289591373264352778524192644206988579826578450574930364521995955741882619808678073660966501784275701685669983119614336695956417650939013276215923210140093630817817234689642710801931194538689940576258107466470994562177393706976197857298108915615337955920851935651499084023167521520133116630182896462483685929111121272381287815783114847890097853200946536596546627048479248516477699373362436438819283339119924931944577553679273911924130039792222310655647747435728336911968419595474212490583771509236436692051401144236632294401865020927192794826445878908918450092877173176648793587490122538825861079095383042546847572188089309022675867924338198005479807071343226643237388919633569494396953648426808351449114785279595071909481562873487946371377712532433658891731178215105515003935866984860257249269979362681480172942627482457351275882086273178188343624649025042071320127840293482271687405693471264081353269177591113509445025395417263622400482435832676515662176711332310636279288584578735317459018292103673612766090785363009788863208439821028738157766404759585225081812865234510403456939107691624999096300802809874854900193265095185715329113350244115972301717372678263437767999951380964620718971130755546867056844000924968911601991460993694963751548002027311129643668535300407943175287398456633154777899518533570189196590673505229260098681047830156092685344885836600834359253233635185257944305900355063979833266996194878434078681677007908755012460349115124946676977756780462023789516307765076399350200185324243532882342678220142177599267628904493175153380582171299388008101108217152465154486007298754557878105961102297533519408109007865863334716132364229789656178506581745337474231737467671853963335103668057957549481768538248249929341636422339537225816834687666971433762239333959204894830019033155532367170881644340597688610081248887609860018621249693346865639938775469073924362234557656224713979272912278776602038192385756936289844900597625366023484821097316899961847701661541399285742096893078651355888015219705187329864776295300914510679981994416270061956907654834230596955652362067408070212893387608859189740257099509450800263404082115310952339824494579069021302798764811294253456631339476635055943287232770436482802922907462370863027146648611503215040846148777658279424291558475975814400408359204924077143098897481235088491891041954350370249574896321785704585233230136791638475407129431001236649207501479051223892206585676618139073281677737964823268736878560406558314550577107635183279165305362641968385368545291636209045909445970811227134680922166944617522820034534007374616765901597315153240525457706620648937832042814727850725237386904607797365682162460642411274263783549020745015661036965992248319648427628748982649324015574355028384121047874335311256090767466804930838069662118173715018908726965483929529900290655289004877833998350390186704465159104084819987972722571645030488018932284104986151911821814097948596671426116755652000925322956840221130206856619713786814197911523241222088092329586194340814113085317291720492447327629533846184104442290129667475276194919312477780652566641674023876346875918563049413299987410258957405325650690789984075318903358910228891374644790683868947842789225450242808954523692124674175310374309179415691337702270699817986309063187843777440671128362546295442789347385815775932622587547038621701834891173996565065599169624288720493761803936832891306742751060112169851040788372775950378922792607403599472272122567586047667303508516944311070782097016554726635904365505228385022186185109278434468858842498041648994888122112522414867937235865756480664918199879525843554698611040794120562029328869074632056095020652882996590989429715663836370356071783694154613982876011410377207791492334642219356802529877345126674724899786357932060236090189039630549560151902902149426944226881888189520463466107765761933070727466322512625452080470068448192820557666091933256821946813661322633381421229733697102762025688438896991173239843700655293333233640144507433039784164087550672396755756501631777595306953525237111075685543799161237364704070643168104517864992738233444124248666428828970161781950500897308358899547160715261136942677051063882212951206854307182860334182480279437702825719842707811715418580073341180886422212244083421110371720305808859367854705843975132006283631449489269122698444098981333731116301499476113871294192231831344866025058272382793898877605897540422973121653180494939911711985024922545376733689138296305635683670729927913080021474675348570175296799167904221557725100622464956701929409513578040058479660462707278147171161307791545123310176240581685293034242790346241205015056640299068082642891608983651345262941830092470184832472950682267619360378246073968872048683468565423272680439405629697047497045870268595253182628433353245400320962267160881476542470642508822874467779700110429753478975395140480075388183339212690900216303391139236077245565374926099805829731034997337897113249990304783538418334336276935636913987641142855567686112706804702306794252026958890959322585996544899393385436993168669151408073638537551222056342875966548645535483874631512063304921926562668872591536310937209126186807061644168793471603693396279940156888247883953588189747677572369785639475092732865302774171100105880065490590667902916220526019636737212662860623198291355139771912505329903893033519549488191325174600101632797554844574354139219556885333337410134524256605097869200980850596843893369538297358969862435022776448898672248143250595953292991611018861110469061691381250527713193305618891607182784056372968490463198558000203828553344385308922573039145419390614730999472857709607117257630819717866117220979904557118521577436919518335618013075371710485243478106352866576993737113815859728053343829646092519073424421058948893616866996712873518126204623080990383702162561521578715188032353143402935691442584300178829187919193788417360912872924909871347974835415002772464221043330915214738863417267950588852807042398404540389798944823616069291444867575800274094966112677218845558924426992446554879805820683412601994740446177509698058081176365809771536615538149570805905197294797979178621299677424912557649093054712607656416159596760480759182429590833587206838070223377783205424230944604421626720842618359627521323026400210778343390119436990519605444017717871885853371519672031458012084328443293241309886173524165860590444247581453980542939157947566157746943788742711591092054216705943774453307054707012044607750076985873019166824483199023111619883866640920597998436963550010861443434441812278075515470645080410459806622834603228896434582414969259344840122574542909559818680408829658075345330529960300724561415766795947630243642671405169818589924106970578879046960775612074374087769823525998286115030586620262348697180208673483124861638097447098140794284924073748832756899990180641484565313456995881288664479976671609376983516400871016836925577462414945692667544708279141063120008941493445440310564270584955240225779583967563017967679175461775258459462419025062844705287863981917231121397309868775016952831885079373833524928618808611606496271948495268422021513393008909488635880739901820828450626045792871787526002865095708876676252933359303260122984768451929953879881207660410029292108921491014652565626290799248288651866124270246663240778531754842297608767558465254414197707927124872134198373998823889721867360277845578666646722230478527961674131121113816388697719723497243330443426410746635349723728840374326630989018947620123248248937408816194923766212811474099035289223646628982679058860965650092114247922032975995570771067367284609083822124432989571176538579303609851489373127673594373928320692028475320654085190533385192914198937183228788905473952182718779622230186646617221552244193752927366945880339287095228318203294538042292138911047355900306203913443505337457600873697274303523836427575198653004475835943266893597979155587461382553996452199746258458339845331865097466880355805160960760145672956695453412666078310333779632089453108025956646328653247084673154905602372007382862092925220529230469713456056612818120747107479992648414694783505950048227526143064446319400167124505538039883369706478148552824275193713892370936456334406064526935571983484822302106429554556107845253795465606425515743760776215028928578485232977401855643792507873067793914604337585351734133702695005444481755162205981587745071564371734098886677734125557423919901826695985071946648094379539812180329444694371488666318562172942428373982903596168057909559890990351626466475614940368284681115323599088892611764067941426805701933126968288545103622777437243725213636477100578608625249182696181320871470739163224658707357374594417189323285790454795418533368151975883628541313562818071028737035421535415355798118885578885327863165154127200724932035872240059724030067698120031371780178319128806405935239714054855698814417504529703394835660103718823711970436030991013716504883632690212795611550708534613267381940865866451777403773281540215340531723347320745934426134778352072088846705950694103639493772272009844625810326144486302786819025705987879521447442424046567913132463829653718474256678285147416868897658982913318911379982013571900343342723767043242084311405916662652051809822113128570215484638739011718682431973558660452380832221456730609438710703495288038823024036140061294683258227525372725969405806468030128953950738382405346395012177042377411421023107515351918051351613944859671756934051698553060895017941304382717168548834434703175922312658127241432513706156624955787723336983524089694767939844950173169025763177404665033563247935240373400765643069581589602871813155221230972238514493777645275669148015605083027445815786369126333675241751763348508152418664654023250119323483561862371464508231076779240829762860241892349614872719533720808232004130634661963773213980568706318664072013944826128511422735528375607459008207397196085566083262664485448297180707523516091831298047861743441817687980299152118569815817565342780923781517121598173113452395006429806633536833149519385674818541446120894026383384417650799102798933154372501594494523766628300127386303293472127849438724943430893675023569512838311598692148317783589185876187928791291621682612679347036206041934982024909811367680735901453046049606612021510949764857482089015642154753831750988110957874022549698466816255061901940467371136357190325747555108870476451821643757253500076580245687638405496536979706421615020962814021036524657739358480749917965615991444904341258750281854713974411362194124338039379338833474069389025752434269783302288495712037662628541446285468017776619518606705642729956993864407119466561718724441273724227533472196814804743694029506875617299167325492781036112525058658986505999880844410375333820525781024711317109729297906648424534229084661155787985451840809068790828600615228441667304290291290815018814791553335487033679400003614566739077465094637255748699867606414775915797807248596486891169156246197191302525473174787500568173332947284102685687790353459941347840183802493120091473348096488922677839393579437227760225469156018904467288350553527768007066915922605277685865938675666121763992983578585402327755848149133473009845171336660465087577336715112589969420940145602746969466848042388963618715611089595518409225222759019551681911878789451955434663752795291537762796741738493850158656681145121102565798447047540716230838063131472120555363394936586478011292694562430933222722326031698487839959714806606641519625987569019140824536079936856543508335565268994339371380534834390247644591687160917823484230123860003361556322383338066766561113511933751372198394707954771216602859962541693752857811777633421055285310875260966804426864585386405256485652471033107280937145471638172250408903964269030906763359304612130550534933977030694934003896050981577653571457896254813563100507141819664153165748528243291659904811068245916704476482215067179930856049591696385544685579495726729493912831342397114183444308109541330318679084922880573170380881289098457208708435648633943423112045172369494778680715908471457562105870421902340269745037444004056655072701334511555508642735967487424913883667594112939481954974711492784286641645582724418647114446383719246547486018634854244651698625026324420140631971462437315597602820134511055121462442110504293549903250611910495699817794340700205401806360839802562299897523389332595652992323956421247287210499761576905954957142626508050313975642397474411751010913636225976256919846343310385298133872142927228486964030827542508361711102737542037645267833924904078237038265494065079922239421443791021209243346342827211760260216115680545747562800228263088463052075121363282860394414905499057309478049678852305906715687818946790830550871251580460972150650723184402496685507520944815157026547191797536030945421961114523075932347987057217187410947790978763789112495847025179192834631456469105101367787423014844009718432460401864832825395634495527958206519249652948709431077891555909105515230996370575796111952704064823489637927129508068288581247510070253268018510818895050963775734422552705621527480593916901774844060475451456921585563556679681692409025260210706393520970120825235041706715029019505792252051597401518881736104152831411913336071289252093839525736037956350754000937519709745296324457775927012892850318333772039920703619112214232025433402426367458343371963658225082068463473096951933106407126178151490500989557640899645050432722214300013085466115761064710896616274884887262176161448756207888226972111563538553895087795749462074193904563531487672998760652199970898298001507066472730033025937222225007180124101474924568933741880826329205723741433044975813627750288818203584446026270304722877795587558217314775621198575064427590035699497126963013550189948199394120813522904937625311756943743757476099037835659434969478744470413450339112663453928215037847305473238978508714200842097716038863351360759692821161360006566516178774739133664228220656662676638306225020100758331724155038158248047974021348608416545910588433767525774629466439734448541514248454953839270830737579684039043641165868915105083916538222731960570407189241198504667703431798146048778695072277864834048623336817124845459507962582377361154913157946026942795534045748682431078802029523661339672535497311646486574195426062612479026159717712202781936977449478571117542084256874771822029489532184264923802532976383909942473585454186970502180856213838322814329989148878607168132619490515185780206969016020787575005126090818431668033278504686681960001839829640652652824305660010296138927055928966859317322270548127986536769080716849929916745260055494501221093689973905469466175883643559630799444626974162006799391388284318406961516027633302583280140460568073718227477088205735729506009886187750078399013508438951438476672154577098242731491627538426432349503439258288335883452534779529803217798862857493544273111066565454528067385968886358628664441232174696475559347959188305029442368909631304241348639248735712465004178506775798389518277412757395222178028109280574603081157848955197966087288758174205825817850272391638367562694233504928723870220627600428230586115387866714508636299651133949046920007793532351305652275284856220700735979002432880194478967211630859892930820731981969182165819628531260227852643153828510915394463090441898083279062991397270332503542895552102211975635912703913711537483093339866471061726839073933405494105662724055095017619971024467018730086185878923638847599995616639936820441459949383569674208051161922852762891325112633273748099594132607636560497209808293463802531610890917313349251942426992786149001778840324673868439945178193794198306628395663479191118876701266359258891512653617850601037892157235966546417696766298056018345021916848996382562130370940722785695539209547595736234840647621209845608924144113499578855625252999201082414655193357109683470496355634027654962636470996755029829274669507958004225253117652975854268612170782906092134273195753464817506810906623914891257076668739464504114504405813467257512831851849643435424981626493668877178328277290166820316433758259044179564667192928780797633995592952387988777616608001060532798001290783108589796818200046387568310250916028263281789045402329759607946896676367261622285550785384988455553453902863396072419735090435057390168699349730580127277137698710688780139584852530380331258748371354748929012073536452189005221148098200624832583965881273812773815808137952021285735801468691113702220544521359053955038658384254711361466276305662748533502954575119573457162681169664471061968018687895923478094959655084867073205355988640530200983102754139623465766951288160834551939526972169956011147775032414887048269496964152526208079195995014474360208474234125179423884532056088800617341793935315954531545757012235812093470659263392629266066299953475742256089564685674261871198879106590503342500762373299428747880739872668330456458054277817472405595115927775693409618326814226328353412825318397300397446001697677651360187826874459122499067759363056942123061811876575326004738692282511785626864297759028466220604323348663653217412139156512269564962848961287492345747292197106500895781348761043214543897976009052866268565654722350676627372051366599366133236754537851952342802107064814198678474277291741748276555473986168544018261233097049840573405152491298458294779255114911000517658949038963879952123414357864252274431635336113617623309472768519332690883826550534414027856367913112716201700346897669537500553886119579124792380774550541333097514659551298638657814029658400641990914602801523773294826844229319467863417811820014575029125031776628106313809782657799438498130549586504174473815878567931070495548328342501092549039983403303799182318263447334777961424299283850269833078012088262064205132699701727893833492388309389881231134249058652138913261742351597857407718633360538366107779864620473581215389356397060474341246506212908013562573307438038733919287085366203142313138191064843249177834751025358470074726448724140456544809490272758238341654783024967269665324624590678347170355083498080153129607957732646792982858247717748100406321654852159084677250489594111328353810545397664042635182364149552876875744167461041291211207844493865163663906797998224827249728855561134035693572752632474888398540187901691917828564588707454692905631451080470059053566148101992161692617016007903158330735518529757145481256919740297803147627205929649523432453264722609168914212531204339143356777595834445504988240463821573592916158593124194107967177811281372176129228652812726098802227341208572691703348419478845767938551888204161464017687807316513686643611322155990787892675706543467705399215970271917189911875290936006001498602653839646128854968483989316807957018158099460127222389517057144868677632483549256959944428540149909174871327715848925759002893654526553202352126891534602345251891719772989973066470585074536061434922719413123012825227188416581037192276902636726026641967345590719540251995991224525493376487738753001050477109219554580459056200539432980641241144951828873022996038879464354531370207654502462332027456307555888144630255007275948769503474603289098715908312824175090831111561487474900068538273455961932301587672026033021004290101769385912293646740296520559428556024418629990194318588169540687725155371265811099479939503296929380384896248331200425642048715809737573441508081973244705833924147999827548836453394244168839501914437356534635739591929389953079620596003742212671753287362341579701027879406061677093457709350873014042633117794430948463771674730187554822500175018146088189275870344788717393326069108442085179943070170222878953575452145345273147241324679893673438192286796406509871674807767444373915493571753483960703771732234141523879366756826531444500444284640455227856743077937466602603436173703763443286853469839728679969470270156570140665028250795795545661939042457472694185660555948091277258940475248569050568012811105252612978435718865783206556590698433087714864309087652078988704454262221471931091208967374415045695161197343006148868654808323334952701472586497186144446678103678227388984174598800210101209655517899331631121462486625146343615848335743904639230101159857755033651197890133950181006250193507434307956893367479278205786667504881118619235914974096293673331720010468230797413962419418130674098186037674726714922989779381315217263839659876046197514913825555272134441210031434818845751479550349352513467579518546683736983045816670319044183521006302250533843868753313293035118828135374630537825020792018935731092577653054575380149235287171326893666240195508584614009360131281651067281083505192010237703159813475797741049943940806009126509624564416740990861482723242941863398697962792430922770585141040489672102982043599559985660223168925332106743257363261695299179743391835119360465976367132926137304476799575868778578134335052298190610470398674433107884522573798944297024187849245064953269435226776563794546483666648958033733447537124503970607777105410918233844871760653163134157816567698662469540673469016735285600306960877943171242963958801619267022191771378022489024317566468145076689611157248138498371084447917591280657280348151850748006474410712646195187683374423053116407107141999833736582452436760515661811836758069710305081967141132129945024272122400176353979261912636990490654305177006826087705762650571146983198794937999784249507271384549508456412778236962883362876853953092937710100633774918918895504848176370739207995539073008332070234916970259645721339029687350104876847616458002984790708800856429492808431916007274375856390393444441028262896257142413588246846051928029153418813423114809411080100536986724049237855186613655704535710268016930639593755714865084401171332734666252514536226446716974167710968388547222605152811636391579288984936269939290167219358379022725767055666121118749419291014448324060898907025277391766754407970551586161089774214331758383156908830472356624120340762250196345378060956885085741107002788515485464510050158415304508295306223785959196554373230036717179201482483505878055592484800611725847144284213227138722667101596440025012249948519305580073740568407441459791491698817137705289793294211724637742524717430233524660483035844393400719512675717685462150155319939661404327865801278822791554711681281214836633281505883097830200221865750644440129417696806956604510317549913728854062834025043310666339433803677156974101949098402280716259053162361890202717699410726054566865209092561447509352458344307999868153419243513175387560700054948243389644465991533491634395938751453716637057379477257159881053173645679886409076607799141007647908459340553968500144423078909274956700276687034576199486787951895750624150840670791378856102907157529464349987062292490009938070254246272943551371045997455610613619595714367763512278091902472089637663449137601298962692349930411021233936674057460574050458402054902077922806052167341667727848106393758636627358881748395161594634993670981833309658035452192014128260651356053121448019429506308626415998909014918664841324848495074320479284601643007496821554430465059374712926393411614360423973641513065422184691393360506671295772478632498402105244295053300098133523347339873240258193183453218446343239822183336435445343388119746610170637525995174729983255983613059348468533186595927229617295155693211917796245237818954840929824779471379557902006202100271528636220664795272703026941187274190029016924837909187966835574269958674373675450996805982562025851946724122332459195804531103043660994867939358143603500483736824700957647464826322661481830518041908150502666831987215048693862852786041169764939138723253050550622976691661093481338646557246937257996761994258422491580510014940848148047983695796485298526000705128107708978195172042416593174771478431895974089999490393865553622967275069007233965837657437988529015324132567206512416625375865533633148192167907634386247982785371347286526777256760622121742763419525100977312580399390630959428933671067352338644983495831045238081003001965771775752006899344258687979924836228216673128280314125735169835285104998979746212957902810728879532513390898169704488212787986820405740560272380423035011218038419540035828563401762892616378732232285707212763270483380513808388153259984370233076651337942547078946298450844229009643586489186868995310274053136319642121184957437513583315799423639377775030092071738138857871677543438894179479149318915912950788775805859843502575789840607249778288386831966501007714251006280856134941634409437499346238912895406363099289355560929593864826367631269873256276170190237197448491964263597964787614840969546673260099900276545774385846691516617285729842720917978100981231081673469753722592795344736099398103860869087870646398061127794773313904037803147923865789592348184454509182463175975877219999268752280593711811313264467046888010831886957791509845863744025242122395189625674742655226591333754621916861994973643480002688082260185004982765748889437794322522597740932998822119467975980093695246429871271704432107595651327723920471102584967073216547824274219985029562079229672664088862694833214929005474968702199941632853479957639098256875888320222144069020676624652621624747055978446536455520457278491898466743412170632951504272584283578630495926943602948396499546051203786517796813146326063832356823552228885931258672243150198146880424658000101961219187752672713504594618196243469054504558885725884657862443347691237202570809191758350007179333322811761620057596456308805235596388693954125948069034477942397396826407504367867526797729798612469791499912898426470425852030402320749696171950712391445650873908942476513429597266020744874011912536297308100104457038583703465689543674843154139459000717657458741405884647255877372849256962966466582730611063049055556015488379110902692381802329890521952779571399764032261172260988815293444445090272404319787498967827880314466332621079483746051061850833949638982519428867620304011259567753464198617299840429259635016890636661117456737527364680216715785099834642477797060233089413876913625657224846433307235581849272686141015794592002047036653811060221908548056718355488300386011787399105152629388491643241285999612537764238564241097344212472604318493784243676036245082252271313969927375071071423473971258938601897505391008059919579627351571938387465212908863197521611449151046731836336816387209662338189231689844183665948002837899959803195214575656532078304147641307191028008417311388318295636162748238889166283377675716921674051131193997826826262479542899911074269430907573178687277005583420666218733703174209355207217078232718927157806469088147014634900319464974363951417908404449651616365313419254776628746052075488784531475321997911177399760782338340326491142592950882693549533483677334297874699418888833214777440543512758346718291673592083366095553690618854669933090959002524419339799145707083107884948159117157640442026326362190000277136333528377618891249218590180669894452373312734930228367544122071852377156969703240543455934443550375395604340189836989227770093039828389019076444153778057597971978107293054304274734327829946352036430796225131172002344016843729602707165354116238365813206402373903044531762748919028335882083411041406213764454570356263618189635717020841099624351112666374275246328973804198755877958550599141302327505751127887866839373022152396180332653850039149296487795577797979809700188466499262487937007718139164294834289963883633249762391740366872428717365176085412898598022560158815951398149351291364899740116788288805923098418952618082198960384561403441444071585966114666787139832873791420862476691680564612861976561991445011044891636739134620974993058022048256070035222574475193269695152250712483079130337644209086648458976822382440855391684958843493449133632356523605154680552379873129498480170459422711512465234739819070861077100208949677656208058904589386022133501927125495671409891568426748306823135181707312320744366386008159293475143873474207742215649896020862653150522729419934766302080704463550350497655685480350644546458180901037013549421479569003075918779005381083725795902858282892469139016400277100287147851340698698327573334091905519108151350523547298490787417436189267699012947381712647001569786772469645258731340720565697875151585690011397613045624683083826541835953460023627157190888332052441480024867124922286043725169197220420083733569337861424007385288532256390404089903738423691182888887109061923478293032434763303652463141664326463591504129502628085577968026113482100003441901927793326230300549341261009036457294178827702707399703036168804725002114497397429948528123203758616114974998020498304266494534994739938608572071711681094805243133683196865747570833023046884403732940550426269158293654893733219429148316500044168965718336577256390960408993381435791698520916545551000423273677593692069299090793931087567940037606253039851679043039465398007466727800643780172328969588967815134880349346857447432280298113767513474869514042870005025506428160778308088718355390331550440025499754768368791907741023680471585230582252329656304640405834048618964476996192237641017554568025648499327301687627559744800683628498964913843680953347378384478484655882287429958503588966823889472836214978226002079672395628688878176794955258179908110855985273521699752983454333949468346668098966779255819096424533430927283851293146911951193759812284542186001519295551003100796789589271878947733491313875393716595517571279078538010283396378821128865883705608103430633767382245275167605719237243288519010811850236204360639119341190618893216948754405699548253659554187626257623533127806467481062341417830393130520341400746483554599595008335191680785029022897561531183269408780794306239980786948297653012770629098113774208853907680895775975869047475094364989034446721446217037741472943915896816340166654970383304659527338060850992646530250223600775727721074369604010015955156808591666383568824309303322193957804086001706820651851403539167550629750058178174112571312533877970555042952996775988715997157722106689727848397442198667186280366152063051344361921625075136690959617053561506876529507750952874695135931207751584908047431237319276648879634139408534742924269346179111954597326695877177885340334035467022664131804618935759499729545927726676306773729469001510460409530566413242562106685439372729773900648126842288512886891005170743365437965881710099515348785333828992919926528865171632446771950070624721915243336985573561251741807119679003243873045573551443128065709595778588377812259932971889055890822227236200719913498663878270916966015757688128204894692917778315776113975135973196134300624726631124194486926355903696150407047217571472033107066467801238314998448766054268907457464093885289864784892041302109020640188304794928894785212275140513425606054026912519739731574943733553691434857491351519860526331855338057335910281110750876276070180321417036473000067982592870562913454492698347580157259501605307464455559113069581744282614322315921031792182285916640866241494897671517487573915183490057774338830502068565038983670807276974471458882978627661778292338000970742176205420905242019882108603275058968112037428977824463774123545898852391491163717443450786510965153015663500777689854076525968264287660389420380184410400148878574850092082784588369229160069454193577817086234193074442454254383202577363861462672069121107122014613569699426622868776293145363449502756487880761635087464709377705956362433840037630023389236465641246431991616680442040269596514547149359454506655049601430556152794024002370809798131978724940804028589942828940963838006060570910672283682494856311173579403219644169907983433238768421803224247017309263259009668925710512093622999706064516095216413252244397622114151583890787608935267554118326433822864994579438975161289947144661843221120470107826493795399055607013079772118804222775903598653432918611733874824174836202461727146687740249987952750494426850510771709091940954619941912332861252526063304346855324400795377945959376955299155503939786789067084063446512160303536983245758611312530857332756420935723999502530315851282504771253705612555580822327651422954073390486804747653570836514641401294614674237612676503806620605488121809095867675963068970797666080908349856037998527273976381199205662094822813307544114570372073006928551871960710217111125201489934442154016381277063679120868448317668291029235045910106332787481788738061475427970290665354554819102268956707503312471492923560516712232411202546609238215057530686412031617953449115211835767320917444078763493069995327891419607483885851033682498287437839748509638684337542367819379961660002178843247245959483866765238544053916006727247354799354336299242146879346085415051819896481983882875508631462826748052368071767067067192487763547687472293963517800814788246412360415104584411447862943034378603842841786534486137527249959838880362753552655695330914481574798478779219039594850243853677712192184597943674997386090223266053434007897578548261323433189555451489566774933027170930660264752422100516395689146800388743616254284416394429913235018945062180628148438796105069023612092123396088010816643336430588251205865483358957473354585853329459828933933568095886784460302664865271907883180571702003321067354548341073219299105528847654125898975497478012053886116926442312139062610501534845956994149674300835785656097281896043135744822969756769614965779456961190199027018185578600182163186401260259276591556573451281377197918086024961774021610839582289765379597545770802959076168766700698599041566872514000144022955913005590157821781129070789650980264985877930256586467790961541805883470123527446793579747386923536534460698783640303228788219180417186838570642885747970909816549198388950449783732163926704702292176417291646636247691431300024470872243320774326435460892229784764781883022481174860413452434432695737895527209132384001752258096058538712464733730352069731088602932481017515606713063664288293813384485735647252585571646554635237975467699371898434745988884977055716369714161039937631657420240885859295112051709385402773538273896915857283861516943458880304841434724285907674425330983030250394758732277916588333210636417365420370816635999617144847003065537086875538371725503555183955778543801470210880931255028812229945169639587087999099225994249553452875662274717709735265760899547613509910059165801223785170700509991939772239840274950176609465847657678171592467222258243794277950586572169696006693584643146210812572260751901376705756440263870665715206406311687556681119376826941784973171834180447360163003109974769125439811354723444036898050328347487451928399928502889134937899552589368091290683795399534680221366778271067013278360080125998481872554814557835532642006508941315639257268130766078916122595962843465571595738756615552599010398133250207782232553997185591938089595257952961142770843757756473837374627024812107254180352760351904302161292490014058581926970875628230412790761101166499761742631135175861926984948116327207785101713848011245776313599121481772822641828907296435936936681954329418278586205007224067379080877880898290284229019113504207932033044347475468249429931400810691293889446270921133222024425140310124912481127368323010688324310917280762082772180679104469858542192492738441987047642508204847969188791849669738687062433798087014240280571496826469878977630767441208154999712426242698475772049909098105009234978705287106488165077606481110456498385215851843374037564949942220583755363999527254899959985583512631664392894904458331085879288629773530137966120971315317971687232115366251321568295899519933154116630812186040836230132144670002773003704545091398269313172585271336783727672768882776949525716281705129369169994963283172535323381895260373854733656449039671951442406306151648388232205533204151728114369652754654092971292896116795067740590974917173391235693992295912385089015120809105693427290707446093582302329072138973781664216283549367351531705746611786497891592906480324916083140215214068855673459077198127933422453621750307520415950723519494019925889371104551633027377753319893497047030529301818575169453441195495211512409706484695637836837216396008199840340065523944933074230185912459563914621148634568807438693942754742250600605271839042743643913702458212471615158125960868521310615205197052356435041293626681876178960077475393549690674774026230117074831677657824526841212539651957423302294126107608704797442000497779871020207066725884199064365782403319808811397479014297023279939615301177933782924880529709303671885689342251043254235809418897747700814584051796145075407714883387005025345151059865480349779659400079516131185665959500401789924869605300829043270151854704879275211437441187904243727013277462026609157481499046135320130491802176380313045864524444741563981137261587120824401381687766337676602622698881569705588501889008666101126164567797594808829937806269426902560011144599430224740150721264694409160638666895268568304955101717794588000424500904991484903438475676956140829617754582295258479499696321339927808762399662614938104398941733197576974605402096820508524742396274717796735915539914794329959633986560036508708750293159316018792501722157325049335044442107723503665559708326350067959291751370437538220790159326135095610213997132028412394466401142408398292181277776124296499359550117843448939338060399498188980355564281800924756728971161386376738998541608688847931404691335525486312706176808081083545041339978039481172133968578173257915618227083350028774982534201472676664998887850557129038407609494206487732738540743945187793853350037452271293399388051846235564374773771334521595749190827247695241123599916226456739271896214843056889043976834316085614813575099840718810980578452187964678426617068164868766212141965638871568649036818334497287203064959075225504465835214601703701442226777097257595290901928799705599446235277437110246612769432684428019217395098589563747065039677137100566267144824986902390961987244205263990612907200804282142428089747691323320039708843723132981543914870966420832249325640266319829224783221460680695294620375653954348892754019955290734733269564471095999143301812244026182525140419832943855887356022344042249935112569013669445278644200742721405679561021029589550501979281790582671407552249183606798234416030354328134705611391234436103663151535744779044354644720579446314948720923474444403040301651705933924777717109482598195599990127898563243325253541039133638668388096803428974572365184778162410057552907719217600542976385070264348662700503571484217463701952802618982751806646883750527016781590317000009511715178825435631926162540467538611469131238791153876138176673725887050355018011095062139984756065554966795673525525041909150086732565091677001500386875660793658539398739540670759087230917455525651925831660962129742434836365599184778741524083259150784167654598470862723810323008859753243121992256477229114773942197543214563572453833808573089620411683400881875444620984817766666515811574395252388109647945091559353497018500308507319790068449723964195745333859473857606759440011830935953999816091460938659337211188862940081344383666701672784849125827728171665563248237243610871329602729280217361257162508479593583804264281141013174567300443038905038209689395486630042250689770340861546239077876434780259885247793196759676387115232244215441613916627390606609286639719770456207590872162766340518939498791896063792768517350454622259157407975375950551350218192570663709343160014120318608508443552352779523827370298125515669693946992058234943172861579850186586593377839918364472669432507830274219936817572736884173828727236200979891226416038228118637179038321979354197744006240764618733166463366335655740501392828104655433812730843713897734162454446392045415723950142838538975166021632528643647952240228654338492913033522840278028535613231010915834644097934011663270163680863006661269599560232146409190118545623428650105899981950154786097340775194526469984007264675579434630583329923940310055486110755556239898723929397425205909905216329458515322633625319720401068477978069227584483648838465820439162891042631425624652359096094907890633541767317101190177222427487747985708526879765475621514681784116090105873102066168412488117808802137460906882003978957178861571657099934357955780095061468157602613157514485066400592189658146079342327395821592344825730547947336436355581620003337723870096745381347524273951627248718547773923212947004583275346677377460215210301466910583854673648070165197484061659023390722546849167975366226533340842693117694298009509787060613296628799360843207994929697246151932615228247041674473546824081406395358117455065796010589588417942622697875386014129024634790391997668981981652882799237071030010980713866147840952841541032142953969408792531803266393458823539134800490531331633220773511208151352790733022543644260207824892639426344975173324437028919198087771448334584540979578237231784893990882175646656151251842771964748868439212880826170683847489383071216794207707459810401663811415465009351970618482168538466183590475724425413555025194021189059973872148305050322529718481689606483076122115453497043989908847968974341526204720732075009670550136579387678758273768290218245031511230666543279075950330996452641492942483194885027962738069274830022174139911624330603539255199387206920268353510730327837856200465468585459890016342210933590828630153769121613849423257507475863364961791959332100754102872808471996074271855273794066517417398421963377757182657180295435544034564783134509305287239759245450391017148410671625159845816792801569212466165955646331476932660528814612479149227087088985038637157703052488782859631619655292779226857353961139470878467151996663952891505862077850529491346238538846341148889570082526877648401437692680351184441745750597944464398750543461914535655476864038660245116631969349846812399413045766327708967054529000671309515935770685566978555701720746189054564585519446381246673305587286271193239468527132493152891509561867587740377207050475937793538007040918583881264028625408024146497663217169661446068230335906134557835076414141860989404917398517929572901912108133952068103267952290095951417896812427461438031985500645435793044665368091767777110638271045504756675489590298402567316107636874042772979112953923884148128960360907674101818227853855772351003167042321689104997110119353403094218968727000909218207096194139432465841319929635822782054430006211600515779774952312397784012987528586353685658967298428945857365610635480015224762062168276345978482106222545652313456682135581948577863044271725612909816623435473819892763000982344835184743162259234081584838581901751872206548342609517255201322042254088748009095603582378953268090822161762470269899023029555758994805083042901429442061190180295405764474308008461338472563309769367733273873426189482364646067987452015662879210492230869240037347425322178892348185552581190159684883317963757060286112766888462522672275917677155180753615383295858996990074384371583416155167578699613575330307174874479224290744933131764183751818800321797183027449388577142365457800491287031677762468005664695676658636849921302011994269632844185124258264508863391005994976123739251617836204349396354781609386996681607802356948721610402264772381708581110972690677489078818130342451467211161818317845760712197902403339068753095015650214742641713454339614591366437908811761093162693077066728721953389418758863018703401957833802165384352153847239749392111521561417396899866728905887644672743995190019838707880180411918811597775246173342791633155330776329221035791798765944295607585559785490575701207806222038166591101410825965409399869421015490507786088172554758443712982496404455887764264933346596984550510874677645700264432079345200037885052203023322147755130460413595289475468196859703803282748441483052209817479218285317371956209440423159157691048464955637835539635194629204235842036400423651922715984450765758149130821366198881233053608646538277217221280191143850972426391471410823273281668687736166930319151462397660813276298903460614139235834677069015784001979180108563456798537578731419831725383698237088555456775234901545340765780757890342253289409569136408314575503375188693874329590835035477085539900235028917768351436728747950035423834120727660586066084469012428703509752483222250539823883546304315082584218758995979739757854491541805613929673479996551279092375663745007900448758512827743575797988777493157585363850651432734252874793172813964495399060655175364313070821544029453223749709321621434987897855393390944163813571406995947199452792226113787875499528476824328121846574154276507910200736050383537821072751490612064617995936121308503782233374507002064794326817886199899912891316337417564543384252214951822857805627147204518018367306298633484350317020555655240883448783454033457229986048414351049897526383137480338753707883034305375428229004859203996628852352310395079172085205162764820998316825388465819067696008625966743479770128749087825608288857197816361753570592611057028990841708650425872651939321265286251687791222524892599794615641570914489149666592513390656453098277332938860295201471057100525539969288513594926776877931692163364642195880007644581383822057430207983771540650473062497877891725935406635080591643988945713582020599787592694286744466456014552507184876398846952358588467512130103668262766173598531102191456144295181680564582100391435043479544573598623084108151087239022140912162099201792486633661044665798487567428758924474960283573381091071037919502638822638746595955039219834523624039827172868137975038113197740904798753029647730924614562065727243701897884377386310106381084069482321116783130233048700974012960296253083237273763442139275918690345681197786771492164121349105225319355694954781222871188782846198159160420670200945725979303015436301554774050843730550686767351819158634706777628195213465095850799698942957082455826050593180630004235768742403928290463069768592583227113122075162669919854876559256038955203259030939449541483192302433948476517792124635284019956519793537088458130479837474549158363281095553695844066507434245043890315480105425241871140587381375400656886153521014410373109435072357746940897625492492687094004214901986760711001566171397620774650023554655207206158689650127848061862604624475432832358342127697285339592649596524749319575680242475020494121385054143972343677030228610001757684626284960031165355632105893392255227704486775705483183135671441851851331153576263516706361934388451878776487114468348403839019761407700915655508036327055353216912057112898743618574793269795751282748592271808486814739301762424124492518094920628666301223606364126584855670050750607671151904388126348398061692847478425411912457294139865814739597763812927838356421270650668029306585603038300817884419939137471873382528476429618090659196447970246283426011144023227422791414203814852547332677659652188846061986355379334808259283810312426765957356493715901342965993695841355145469379020630085685889670262525251277020522290848007827319985264781234770861792487282284271979643852241877461366518642917614796236949565266381159686769995632977398893355929176051354793149278814413996256293836856477261628454021879825094467975539323628471161368212051772042040584298097037522148135792155279536637350321668956298822040238179529842335884484928220534784064244149306982570637352760969207162850023950355706614902103496117655794798877659098834379447267355618748562051002957577819970627992720181256180510954367817404604985762110831402964047143559284958583379362281044026173932637401444231114004032318227638066805488596904971916158272723827207434321312846705053642160875187726648818039026851234331143685017587780369297296108092098762496777887127513841331692599242930205206861925813837755273610512195750264595609513279742225423155914565455232442956646671404135892708040252306662822730273648776733856539794497734348881423010730008071866806393429092254459825182932236819315554652246707014614533443663109746749678288442656811520108475117141165766721678017595595991990250142758523744450642141205036954105256152892200749211553337389951629494695558449562342753148125870743062418030800965101629416662832998136241444766779086610321861238857702453182389383341417189324565926747372022265012948189831588859689912393945077039732467619555444890577255464860007726280199812547017231960321746511315569599913214211240071751209946571476508323792035173718755733067572551312324293655825021389826082304106374501708476265335897642465081570495459532188310183261541475567726579946583845025561739130561828898081266995824786924814646431314599975503957903748280372569621405872777223717240299951405082433325729626722881585400780058380505791055951651948365151443212574493807583419818199768125321232953357155750699956372290683471285901878824643037838425695070472232679593914357998048045073367937171425360158683787451180150130072426621005503884364435390283044969508965858120982150104955314758175030459940771544316878169753435440090875150525158962228166368066594579641852209914033425160373139978324563748380413644822096327844150579319966100243968203319583439190547116524661034542812650880921470067914969846302564779615858545981156323698375921595140558636756023739647459728031232143662467709681096307122740709927886542511741423867196153976629435664660787741693990258326843844052898118450801708208790063627852292513019256949751680375329136608248026079602085699325814956536081003614832286157247831133495391033015357303103118936616066968687831054642895650462924807171430081893497513447453272162220202054432384319734332206837743868946068975377635162479876180435195541084694848160819757184603832583680044784204317396676813323841829260616719682484756967729356219518132391092276070138164092869677229269341474312665241665559541427887715012933818136482259110497182797059246249743102480964430277329996007008349299875143409957460173289725613421876640848332571829555537470592816120362373871425404374972166149050469732252489361200501869104476728002981091825986066656321096220596284997556602468761465460882938731588235711219241330744102408171303738625057198994610215109870376661497110943431599210802126774954895835548669418290982406600259154688742785794935637749380216251755626571068933841255202419449912046911759922144524651663281803714975247505484544643612077733787235130302193960259458415556165343497069466425495725761102554731902795212241836146695743132237627151265239866953997796300568963941681769763051553095051777713893896284439815263297390552016160664490596622552305468934349573490941025342888193290253212650694526958581547989894627971457605960398884502762896560967144797965074624843591847087029589897345214506061982969251664616966216166483053122403083564167217872496383084535914050570256693882577443411887868409234394676770075663291543385876926602345591127271217311381580475400068499915547926141806584156891737366744764795964322541282980991093681783258153208587771031776717962085239841123531186990145079251101604538944046617458215253274555342498500501585478145785901991260854112137740633959172302243990568481246924010301765055375557875123567599301784318671823426472466855525436271948979170618663473026180784219858452634995034872285828776107329286094174460263837128292270223493157371620683401475708208744031378501289853626155183572045808547098397947858989480096496692874511857734565021421670014544972023660004071437257448997296562931403811163188108058521989428535906117501493156338215810012067288859068964702474269776048492958761607061884034199617726169547690242137753508330178685969160277905422513737924797036761281500039180320143248113535916345859940589542446980300323376500945116324248419888239391955081694259245356323523087669885924366979360776776982915953223248807248003666296073722104990741844577916735261390229293028365647603744822484300349769802882467186969207208593586192738205965110704951339262624167366976903656988281086831515565911475514057486920193967804137626398593989473391314237129443329940686444003921437719179167725340005618350640082825170739216938424196789365738167764828580609794066985491022794149451621993969203183167800064468688158928266008064805062518222423344009347283357265470234689489926653858920613343523633532041723737004347979361279357381657380703404199321908314516509514230099156368295526369330015659853189393416836671874244431991053550887420744305540754339913281762003510949454650012590929094839047470622881864300283063720959449724963881353275422656604412139256360554182070029307209644494872291904433930360381884914996460082265596882414690091800507639283506187271533331299302136058878264888859005995529623180805135610952690277886500953671374909673797093019888858367273412926560004291321576145513368369202676464220684896712412046414274533257056955003583338588478286944451558752142664161415093176867027516060588234597957351420739176121766427515122106677054545065942098252110328330623930106148311925346854840875676594316740210677256455746021614557424229290095817494206716620856638540282053423392260813518114465393133433028388332608581132954193818677690967164181297272876184798342092541043616280869427541199927154018579529462676225170234537806725124579118083532832882749621679173477498992804029490585236140152284070529108620323130574462461738279623584151793242157711418907425339275371910300668386512969194680539492814354250245872694515033344080626130077051091200412090487313704807587580967884762187822498696667073530202135910065826508884321790447404201697448854274499906543118226304046172447986712452311021141451119586829200827266475711031075580363127846099390660166977498331459859662172246005877197440162515828925463667166241402821538947576138758855116413494265172930959374501280311005744266674045530473132822484348445578943442377465004495860826456169971375488100572175319730014120111337042231902599343524300049678612935456761089140958861395317082112252538663598195080642027663584266682820176618539290420581397883493225145105698691779966621129146453011667039263567834113644663326971924823252357227907836973582703073081661174430937442020883943360450917457051465314316749142873106393996264060020401083081410132850769428160451494284351967935694966769085710690108505130965724595312616068171264736275144566586334590083954311308732165845245273445459614379808069161929929760485768650797700644724971541349471340791996468860748401842638417652128511859240332513775240604740738458180447903921889840841224765441416987232840849562489130591001297882118988920974412268828010420790640261212952267572638779070109197609386083507298275766038262423607900126890456031063273458418360795365240465217396472985222641882221389859616215150618109051134967351437148302305425592683610336866957938289172428148552341563422648036968701851575755470202260258616655765520653618735427246161220806755000324983562667953098437718502526358998710385647389530452791227415274244081699675064304970939224310138567860558465485696293562423143116520486028105431941470810818157041726556998295817811208863480982484695067602165910912825291299798573844979032309929686511885812673329529063350174087532511257590198197077233773745356278195283970703639349518361056847196928622886781292426636403073465724101279165070251646135523342927425487260860724826610634466930667024173831610668392335435633980619501338017196869288801384587124330861195286530855593390663980296517511449416692141673661580351227169000136975614165507473230302557535303960932094062182896069204042281887383662073739111493123228716478323668224888275436004035253229222881916313276203395506138273412626449776124681551698662773142787440753692674641435308857568341810141782085974969391031245222374920309722018859970771900604958203415999099532972161831114431559196544887663602684403699978143484992746309907172722343229426319785370448376023734677775670498833772336882042618232043749634907958130510220485052971781925685729215880961086989394231004434927576928760677743412240588526300479481285252238708347084259633601621348935168262394356491835461973995416723971031316919616699750524881806529590801443294497233539849430546822443796047422668671462473754426278090987807022386669138654315104859848614303895112786640468521712598029708699715091720982958483081405124771679763877719087086626998657259538764801372025367790494284256371451124957460324889623618156142252452512003262725429964843507682183962619197303413556613285632689265197427167980536683649341078467493163190813918205884722056742736739868527752966487212644148382030980261350567204246554460312306054509902938647018078705015613124168749988375327753650347663853942112033059314168123864253098885043015872944154909115272877727100931710386300145712100671291459923447498647395301687721655759378911342131109430181300835580162549665157454415657191543283968676862821464234600723214667894601049718518013084376335846640599979381814773866069082992380352569613986050506358428874602953135548435735447125923749519724460237478419076210010646167720477901131495710147702162315826662560021843883409590727764291979002510709165349758368027959459744710100698746536939104076212258597455189259033829390658620152867903895245096634559775099902772474181452788488975250644217382655208281493878863084175856036913798164342078328104718339703510467676913999546328353003715214611823833296809319649637819066299337724228822525502513949238303766171208229944299407864824677588038036025524077805738452740008984373764260082026030593267023121297580584402567762516483139837357252337668668592296963070036986806339195874014696116228902413516321237061732368887822098761145390345756016559867374138269724977601397602236347261222879835372981487581518977169643963611141307018191061797182763525594098627503186185523320046924168792674178785533690371028242807305311998738414886527573696563839295317055141933122798632336402723152823733096122472062659303342400043712805728796423763651159136279791223792794343828806121861684315528749209037049068244379679980849328863659481477665143256860292675816217422864234904476537972317078101953955247455199399083998532190385470525478934971180478898171817224834369918406850517919346584998795289753481803633713324807047022178687193744243762324231278661688679954925094164853245746902484484726758132311600470793235407836769164105254948257056538398302078602949846211084415845887574493332694447820823270184367275609460277785158850926788912952461385950803097012119171204114085327858794511911361723728674746484184600974142080389705727740169187761853023203923174421083632984837124254095926751966012058713192824898205403129618351533821581767781289434282539800413846092925832748198803264949505019149755759867617759840551331891323345879148352840554348273122537782839403627669123968599851421074531032254062777589563779931287155179856267157136590959971417905134800178981254200636775616279551384057386877727853533697403722212578360874960820164057860346554446839246020876907626193643656547418666157967765832057255762659903851828259440523377068490978569529750358309971211650249153986615450576225154719183154858561869950215028431229542113552669516617545628445649888993997355870439044489274883639532213523459525199920009147913148557915055741984139245625785753633493918956004612449035149248513315226053716008777146597050226895519821822839165874719796220609117178809630815816006974553440438908688065549049617857877270004126751626735258256598168821217409986122126518942396876985581406345598326313389146500790545549656128169385084203205168120611712884177462394359178253719887197937094069795933087252297354190558546905660941922488696056545578919643934202303445524909612631221872567586771969197605747953683609609239477988797221558052483836922183543855305985810495646573634277462208899711566478363110033160568034013074943526485009404937582245036707007648314156097349743682647542800880549269547446618359510722567499522897253641198414993484462112987828131808335745147449709088358456388701392061533489534860600859825951017632125512068700690508109723540924426642931159435104754407012160994902222581637387839924843700178199377571017650875700365144103544390831660767861130935282919934143715892977645887230993356017301199907805859856580921403365611454501172022794375693595443505170955253084983194625396435522695812106329888337744498103608088351090247186744926892982220598246216090136432005659404843737342424805533076008396013673958758056111260655974490838921545739593263901619127434108984674854931933607964812430654300766704719416509883898465052859147487590894404213784298502402590695638538197332964822383240923021980850539147892567918852501397127788341739226163143605279083914978513097770210624158162862126525833475743258421646637694649471633248074721827199823345781156129767253130459175578987593350675297670018057992859784163982280457894998928437130675705004912814214355800481201141507024675252306099132192189454951782719475876837672268767292461744332196689721291621808314277343248634367173115611630357119085730771927904465666172018323376343835388261831047743680637603827004290587918977323770694271719623693819281896806583409734659633711253609033709618569933182268625879446063707992408662862383357686835494136361523398869436499339997790272346538433250517477204286481525081178792679064651290914924605859262587238051988014766758482526791054957416498041198753693544753351427942377229647105736218829775834055941940252510103820558645652656270977866773092660196123244953664686613592592611395119399625476887704584368496002236001608368654880589210593389911423625864668392543249165530277056567463187372398159876782931268414251744957019974093993283921785693017766149813178922681596076402339950254599899114785384158844400839192161228816064158101519191572976309610691939862964953184426052426508304403384309941107388853188585364014037305787757745551737978923866370009837358270459427747690730774985039347349133921823940891727205629583333383475916706009116948245493666851429785937011111815754756499942104410590144312356727194237481696553528553368054423698648631172763584241661680364799413628793063272789022203359492110327597907625952731079561700364998540977824008625706396473530804153184568284246693615093238653271718324420467982734581463670221791218134526796640124857367598602835601686232806215657052588963733013494923755204163092844679086273280129942552916286348723073694719836658006657184024780087947740496611120231934841879837346425221813524368839886636013036692823946348036168220466471179875787344945117704583678303738369376968249980604008120306711726654568406337897355312151844230081401031437973055780781240572186762975099883300370820923090134331287037434191562247082963155937621112174818274591655570622828143808617843074427889017045691043544149397575206116390656367691820768990065313434531213373764392673355950434154358408520089503290023917014985753937402327691679359061263039336403000713201253556198696692262101530260616503094894398759096142261439533432716382044919292544141090454850151392403670136392129488213484870101251537867185298075734296781753240264757086415374455947608513003943639027401452121268765821817863371635265142490634126603877314525750970162721381242925960345239981689796323696751582855740123709427180092584254372712590698755654708071592314182276630703786922950727143149423411203303528145843717856728305035530162347643665137836211683640057845353166474007785667505469181424319930972175134463641398408097789441486273501005972851847379787389438520127522756213549048579112182342245140846853535903250649337383486586638227267757380485036121872699956377708229827589155854693444767787514865789802278056342926347714698953444808188909027760518441785957359841603329228223601452299534209282060661443159426283698832550333681379830684242508541168101616390379322062055267773598339801260846830470466473359445573245623144645038963599369415534595967727228508009034982542148019971428987210971889587563159182019413684342845560516449754251842012165892021868500486846756657386277336945098389727475726347537483353766089996794833529895351734854282592573384155042072435908479537440559840813033386137319912651441408470505401383945409730629860099017225359477009599994367498580067351288422223597962388748600863052667374882928745447790869567852393806988790443095792678058351380047543193458280804182831655002820542031928436557273774667200103910380392141067978565919000451610046055910405899050726313595715534412984331934222862469761872164948834398376917781361232071474846437328781420578873741248378300236737393588063514998665055584347171846642168747176052342920353629550867199679685451948239670213730905553217126582493835171334917260175144152776619416664292961993031473965004750709774555297611201285540658529215266239429569903937638262668031988204028581811799758021207595262739724936212604541377515455778746284484807629439635219752947141167097774649619789527056108550794416752454212030032902289531462649826534668126245818848182390956629965067573480862622026554656373398673391747022224142829392396433907629669008185329173234694970220601416731421600121932197866445339915262587045994924026090796139932618055864711580467791732226367285016735682886394417028795080265759647240192059511178086867048032833029130109204371048378376081001952568119340739348991943695612959052146371911259475206243451663755082004342949342096029433214252747870858882679425090928095397877646219614431886896414131387561309767457293145961939142136399017815625922182568059739784781247690863826848834010575715565234560197728947086959297334738712500755288523956805899443102739654001210172517002195823368195946007392161086252031116494308640911283349375985934970030417594579841001187837668604355079269247302247941835455304252387686538724663947640658219984239679808606092047125919133602377936297450042925301307637493474993580582511438931626455782989416763517856840204926313449488564575686677179118058918341045132948025325415954331452820993632603316762044586582273871707276013802379584733967714326196878341887410944218643740722937972499263621732875183078512485661033098343102111409128833889557627175347207553201888504042148838997062651925766843541221429595735169457680351827331842216409423626796403582411110269281519187167789697765427541249631030689522080585324014657271633988821325483158237383511925951769597490278799070492440531548965453427965739117789671133750646984659413666686840939719255388379186796701556337872059376062980205001959583893004498953646158417431554936894207276204368732856791922803612917039797787057293974484218303772560919888642839496857748796970096124032885124206253841547998738895784841963048855058339988860380047459398419870023977908262430982895436211238321803703223833492838655321924107101915841946176949120446587850193841599407920509499241428612864395274071946344702844840862785797739889559149112737551577774086391507316955960308278733830335804047871211436245927914533609383389599249966727831318649850228850724906585480234275947482017068249542817763073781525763582432564914111642122724204356660889746790298750202794523153725678851873124291043934244777714049880396750003835483744567243865619372913283999117263973415347519274434808362194937142013271425327995530269983006528263514233226085517951526719092144580996209473829987558756791688509661009448432370662912870083812758534906442168261114760927016937389002515945132663867425064571357224000297813421153871279212841881611517244119486170997692050548587567173583221581024827606060075128150203537702102676154248780742570950698329668478037319373048322416631323385616689110962332457407655029978884126412232755693302772738338772486635012886589957989825869668923007728429550000113903451229795881612965673380611386672655171376912815245909280216336692702675040662323225033991310022156702270312020561613643801004670556444099003022050728711651761341946785911668838558779310041178685880537260675843267551360029986860282312332519741544090878605286166915993191163919079852068027949405175300282299314201596689238885224994931643056243981795718078051256807454994962681422248866612841272635136630481336560906995266424563460977925869920376625917292651448397922854065402267952955595540759927089276449460489714784279457099933105443906708844300029999083159851536767725464293984633109597070424657583355026635245366556533941573510570452959870656016938479880053828517419309291932661489537628763694768492927957876616379881797777740442187005215426323186023197401442366521770240423722241222700974302001213663717994010877965513724177735180168483477537544260482380222809305328794088250275427972425747561583420059213738148269650321059165752185416431379785430786668632137823973924035524095646297349636972871651465501089820203382265308143097398924148871122974847781301175904008514438960210014465153072527697963586258222445268145831043876599956405929964611698527983309310631590370566232524707716944496474994746701147302553168339069519143374962468031708982543446136951316064409207513776688440055510095236159567335700002311963721516489658744856641960056527834645638734278120006806059733692558840639233795553843622159608208506735412745204423642003788737982417173469328903848196090029061673066239119794386501819576040461967394022147393688043603213459114838937273993877185593773267729779888444230574570661277544676710610494697097157831341062737352789640521726754714043518321463838542186592228663972996956086486762963811137999205098432936783686444272023535786879338916665511174245542597910717705456803853792339740340053593488170393024915161653830464820931887530587068036006948397504668688896480322050772080667495638246708317743346152294015528378651706288345720867392270871321423341884015817103626721694520387966995785531755021394472641514764180218031388335802902452338031445150371840157659669613801956380243392982840311852899114279104214144079038657635366724942369523001748272910731449276633890277045742113202704165966714020803860917900459554603863764097623085682098119210594500745163201825811717017885997319736468718785065410022211890960256436193628685803501506831249025121004490553118055419523717158550327196220656817327506991418556453872754245795272209949689817062496838194007635429572040766031064785374669586172409513191313415982181827425750420301746165004973638888747797589520005129512887712422326159184081820940910916757901185783430201883044851883626044238925956166349782728603701868129138587775688764401343014103728788969793458303446990350232031502431243990758473093638780746298431936829490698562908768371626424517082823041109992290567200346059010477388095049724024962539149615509956683101471100454404285236814998393487780473519012637854780241723254959720372277731160696394914824805479351449260467200976677205797135570776274747056891408276875794828789307128010765534382421529332651056780867608115425451035343116525819515900704267489531456152292074678107379925342537886861273652124884875638924032893105992172314782867233259372195384210746432056407792567807638134842795046984606436871298394878265580148895346602139508797633303589775655522884927028017322623382088938230949014123313400406330777651541965390927364675015349784991419542070654741605947609441459623851242909096283326072304836905099901484318249734852586452889676920265779495038204121081019975000007190259317656184839718336933583775719833966684677050972929294775072611042144256549581735639813384185279213773207832416385331614397031257482508279794853485524894257735727919879124434949995354043748180676281772448237252005927917667099939467280068352556385908125906426936189378359575375263958259249274150308503570291887632564430018285284460566058611549144752811800773295318683981397916726502710353232803219629710611003198912661471772913646644069276073938536872908879823435513167387984190377804412634545931762241672096057535570849032412084498907309851524390860873961668450370073299367449293509167480946394230871179181346248111286039262474504360593915140480527221782979219802972578404824156501043127188087923995608105600129657704570105390973782868818683237632815250731814134197461912747069635301714073409754880246571411298977472837295692529640553416526145770648078907844239298112582231214889385419902108012718363924526636290437908921238616789547618742750573108149007397715982451809042837612095843535168702268837196779176231079181573524156833390254579192589771980394200254488299036026838041830255201702738682892376853831698810617307194276170182644265500677291480629904976631407824094963310658841228576584003006816100690053028417392559432557788752981819865163289055003553297039130654703260906506382113947136729524994995588339764800655165898428245341486684537345447220666308228052793165095131387641352417964012470546421366631616880441151720054536524972605294657408717000390213713503727679414238832354512120572570283280582461856635450791651959767600655477062180592511513068067409601295655477957293361995610363122115108882240124485855622799991248975052284214252281717352977870722410195237381536747395783942638986344615868029516893196873845174029704963902713068679594056782800721746045580500009979063532297585630557858690480528906250441603202723184283522310761736891563131315788744566434341807895080345915619344791461660994961919023730610890716409534955523717768443595625171242250560006696325012591322028272538010174579101252632441435311809334291069713726737065200234413055421786847254365370752366892829700417449786830483973692025634301302341576975288985104381480439705335767781470927911381037541136954360971784609843454468600423634985827018120202472643321877324825148815683459099087425301881605016316851994586262962458995688122670037944382411682872074139960423334977828216834596946632793804328749624282911219901015773153993463116578139099128026761458164607324967324226881523038320134962119859432382925400368491554509211275931059422481889363072904346837033323026719485707991565491872870338637967392162052818600001436113069044569385260056814909281017206722160115759335350738435876217150967583300961834035637351300399158428537568109675846040205907796984004328856023040306132282067125023679755822357507837058803212184850147861957360657131321064625707038849382023861066599961691556989864064988204849172018922416216710691816669678376366245084702016886744836028325415396142774749877605165010463647986463436558532314935233194267436154349999202568137424306958445881163415644558365232962051674725792058872876091554355304927594490174972293433480625280656501932727402696607526482956429949409135677047337833653202197659166092315885882724500139517251791902095342948746890148891393910543170056048991396476997669700578121176270767340058292957602387370482475440439150407637352584672641509692124052229998119379675914727916283351277834140061847857163202418334154305859316745722520951218199630338870387845774369303945249544381651194438692000542496419707054405638768943920956006058328366891273981650112194005882449203563253901062762006200886369643231078041753210288852193231873684942107571763663560808551191433102336305783207922398573320384796529401298069784572024011057336822394622077177264795111748555033071141280306561175767880890281830069226973518385651601886082131417672948900590591160779217599773133879166583275025778108969280152702990034261322409076786058133046050506478597491914409112990930913361017406278685710318893577920855010915113552138957020465947199171623398070016213697871721487653775739636773613554247143653329208707376430258938801563617679165838656771035697898038662620343468826152864221824025678621925051016258314886763726019637482827551635189664642887434788162394661313824225491053563219394030224860253392221501184421108263484692688724735697042469782608901034988765376722300771866169449426384679675236322158944715569801283490291862433644124495694635422294145917326509974841864858955991893098113787309447061266122054782863345307559454054016712228085804428193179382771017388345787110890775409141861157099419417509089429779439665943985614754169259708486501498263624767541386739425198778355640231022067710623702188521547980145403042950458119235406130677200469094140340759636937030824612274426049485421132336617306680377437219486057926568076668720068100684233286489030498730220339868239924415124330035919936009280751742619865541628059534526974019184156468807354562064396711556094240939910713001887382174679807083402359629943099869946586399662748772357390686547257906067022551910299440381189923234409533117336775396758082856241088870225774571120374423065342678807372559078720145561888531593528886022101572411698964285877262394211674874166899290980439051329804136265482831009413351506497977900262062188421054516106950419993291230154329829992612149678578325079263409567666257925696378029002783570692474245620756321796449022134975137297456675521396459066563885158360386270026700924285862842049305742072317225791232143569984899228911484530025735040314583855552617899205691631546668655137027419261652040081889029977955228026456944110889927777810510161226031366283499150825094623158100257183302511060804954246713414740037760410441457835451597073489787443428689618020694296438189730763162949582927227173349685457524962771195512040949838602735954319834386228693036648716560497063674643700769326727232295440986391539786150427054257223493187936075973233471348308395234957515047420297441746402228897708415791498585286742865311040269394223734093209516466921777584363508613599952563112099290800860004370760703251820210387230969815313388216178683979300244591131027976815841227340974750856969263897213909160038507956648856836645471606847310420651476015078504959635142966046278013591444835029741031578930955375877913608235555089546250257371034978932396771565961165415242771255416498850542865364046005829159201939776985118203415585851185382740422535655692820744268153803105357106967442659128079599196141661166103336777423482985690981960480659560494440778943000065361174390028699283607216677439595019359614983764454007978047507578242297349743859899339449164235402986957828304738893028759338088754164088880259599729730819633991645320944584089880667808468224913536278574496031984267127183973725458628873058818404010653996788893723785112101266224279090617942228599480136521097346901986118642757955590596226672200516040280714830437453653456211147001316661255790079444939022711930030614070405247680059305440586465326524885262537385272112162007282047669105549879063788247522508853259462020547376390066982966776974819673781958895636468839268287335518266451163512900230755135156473475179626547726321888753473687030106331227043982450824317629054854937661025453542246683530622199326020545762401028713476328398229418762514193673412151076187703099795516591809084193791077965872610309613178817695579359854549450263170261291085132229868697990773332247693089165626239182374062630642497827882163479646768652224691371454522624819186093652603388423405740941782087162449752481573142622586826315328323091652586566992841863973778964726205608905705977506715539766421905167653287464502305354759324953727010768792794203096562885585990083230775101851497336759852327853689124589542374338610635894534954752456655356051007426108728328071914182284547450292056872234833829322789737366536915211468400345373775343953519670674821078104457910012278967757136269455185313081851366690239753182838207109540300482278641913850977560285057410319664694612101495780635164539091198564249704965631465448469822802157134781308651720751627892103433497943111528866529762370006318363446182264415003059230093593424789132669246160263185863968368007890803227688292734334070613345844356782226510600486445622621244421215651700220178800511627437131861696416852584395413081732017446815463654962188046141255290933509926389558158234122545520877240396660877098958681413717665564838417706128579036432135952200198625503428707329921024654889881358230702567196495871443651138582093825451954213083635748224378398517599143015481573584694769607204741620290615590006029275735059094484885597656162621086552783460924606131351429502619906212001252015048650548935112810310689582540725011347316745565956295536587749441360181315020021892547579563819785134166525726299988298475842508862188803891879124115478287060394929291181868366005631120408499959064338594200562053989911310806107436439912718152230738386515455520269215941055366530711309984596642252407242125270485167118666172369726944971335964587055575337646929099156477455733085692197360955807560918848455077756332972952537905837044238813503618950793188091037466433712460078158467104014953970049631264014185564637545644874885740035796405042728855176564027618429195420344037749557153332990500399171217872105220519195131911680711396750662510135068115566898708879740698575263745499664277780243177535777461662165004506106622393123159808943757357934251165092155346476821217325253119170694603278797919911964848481741993734409975906573658313314923245909165300285314548300855661947303551755124798875277016739754493893491308728718872830447166458833593480215090459156288327463795595648877640858588301249059339399154673280333868174876971103051828138873834558226909951914284917367755894949085681687912272398734923758560361023572072965316390091509339684114411992935473780532912766938384585065277208416700367534725572398381660978567646549493388253280624118046528856706220267265080208615947571625655556682030548463989013274882516885834765913699671804824629620590349869324490756363457635259861706562431933917795626687453822188684454695992951348997245056116029043243169789081566159866018820245519821209401517335913678330785489141103158723300931161858666174700357285460372399268955073873004967560495936376054498549212177202860128395148481688273881330983308175671487966134205392097806317282611720919940854371035832736628489879057553293175459409003388790833067827496179576327957513694211092272125259057996410745319293188065761601711611965541888809569069308299009077497447375051564291914916984668602167509372292411526161934695699051094522181919639598223647518642693662534885961397101256491654116401921480043171772889113704754986648216637665204719184284782263685602954146570015556498845945247380023494073009519354476466159759284822474738771169384875795240710937127235402671960518480527145105275600131305719233747702444523060431551947241500023792011282221749725582945946860500418482571075371162506964401518626420732278362341833917993853381036841371741130363223553499824299245814495427836108398177929633924143110903027864387720021821368807193497240410504037386366131509902941449885927816049348845197291773276397392124053189694000798267703996121929821103370458835337298383048065936752374153116173015795665277396513563658836898089581472342440156576421409886393801467958334098919437659093654625351582703461025028222554109004086145170783318855039510397786297864636669921186277087186818413450965892750166299095078642582269742262502868620762610723908462107976495607393542739314304849404949629395625446638013383142170985963007348648229167754111805680433236607049263406437686616013851442196630762507883484692738807958667558678574034406930221929979818994616015125923093934244717375473064749303427341486945627001427251600870852221036783424319886493167578382226499585117426110745490335040985655982563131823505553991006338977916895763455982180388255275454554948648788506118067209767919625775753103790378486436712936250580439049135069536614087151054988862270957082785170558286972827802556930054519257717171888306965552540686759322365553451854303469150920787626022079037734742257039488501967587449459497393127265257650644396522296032837044773052543424935016411355686355749875142587090461623930772965329172278841683013814788671096188397081992353958571394470169207500170123892630985249668351808224990257351437331381061649676452272683737035650521341810056652840946451486005694939812437330509882391505956375777976007803623567268712291830784767585771883044800640115525403418901836276540443093608957552857271394193309088652189359511637133486049732337445570444112997195484560470449628285744287723309942193562866063112907278525762640917174926644700248125166586099266803964110168971696093317286040374114459158957156710857785467456269756519989000338322971020739120114001510453184589388877598578961481305489388746690125519242078090739357191453485062176108765415189860418830561856409530037091177649665351654258786896657356764460531625925291668627225649252539640005839917567296996723556901788637667401662082377175330845532337491536863016432919740448625386948455054811396251929538589221279032237122863465241806245153094451369939978692372826781462959952146831871672290291797763766862889340110262080214338775425930138708905299200692561668110547203314782356520889476129129081287124217790115261955236510689066873678998485934202928028448860076939100832431913123822142308277485709765546721028548372115794639068595649780597625756393901186889822103157164867317560828292740692326784001119620631787581291038663452445625421076023357983534432413800572318184849223290520462641547541787537673514070251104310498721025088486674211924722346228078792629170451007506266334491321022545068450607306345174011274998794889116472670364329901771056060850828525424349984964638708936672319249413626017186181593533994905664529492764293445819158839130687765836721890508741393532909923153546883444000405035964140714542509909967080389361164540784861633142739060304273514979053908776358323088476771752605269056008811599306430315302168960846064747949182483388106611072291192089774155766467721402700521711206875967399655400193563675500181033327103977775508372035194909275048619043480094491329910907746091616984479143698126395726735239375994922359016104617325075971477447194826228710783185769995409203094393619613931781738559441705946264836038699941410537297004080669958769134696432788560960911515406813802565670480843582061322773838456319275149666402361669009729246262670860540523884267255946046138021009935538108563910794848916442109843072984802168115592819431805307598384529365514437613458010827835664938933869538088339920382508602891373942116069082044553648126863579826383736446451764300040090088558538045961653500983063670969354871058111367668487294439828754047212874952550451671311501516023227033689543284365743290079398687902694109376306813598564339520123121910460060480024741280035590489211920342608190712261069424092556036072562616631688185505925240233122436657185454094073995795511206921880443216060271245405138548799689629587392072283520357843521547615203893476208435270915808533862592440920115829404809259395335554686054794592858976080849730758322957793641774741949081598953176794345112385214992578152755171014353055711296474258869878985025796216844085352348691618773825654204442308682458692180571004247579929426993053642377650808288770148849215951348747268240066969583049878619767036464975027133027900394609259268563055666266451971634546833112726735560321481615965952433454058387198467541406233902298120531101003552152840447546394128083536260485817330972597951586307634191914102817469201169937719915608421912511589844246883380449729836154326707384261244737643297984194795503876353192057209242540058811727677568348005322410787596526288491293640893800863164612156713691429769404952363627241919130216596459768482718895036013132223560249628673753202619989077811190902798412816716265488269542964880662839298432930305312466387395765327783514860046944023145044903904886276987826703128200937939395789959562874161465200555858257736413744731869642677406693688261146270935900102700355117156168262876028466907352603598496625286610735691386069505437909216088430135742920312146954170039740865108150873856319053379881982346313482577447255989576987842610279887265724276901346465726048812662055858215721887580857621589501281632482698626379157049787410225865718421926669904322934767968833979227913523656216129302187489877693803575680583666315313682228578713579435319561952592639549343738471336550519732366069847111049203533061149068196311733638163463238376640226937792832048731238537002058535048374627301436161198772217367527263177147632526447959185833868457482926782882078974371872754949795433647842657681842938748572802470811594768402902962355928709805813386030775207527972941376410126871712689509962935072631643115604272277092093645544502972023633465483001380342473896447864166445156597799537686323783657242849385972333057504602340475761178819122390845149819964933045274233849034831811694496196235408128649076929226854560620833918803917925093483119843910154798562092725807719128347663554989520161401208922909186676594714463853837210255489799829192230993439865004329077161196111538193338219820245046104756967228778123242050745858149387075225886091137556862107059772241027131957598562090675251559954227384424051872998147353491339381136468657761615412658781303434738454380322525961284690522032115900804555869348441299216379556148892245149492927668787672319896946281727842147943884215361797841033450360237745736223876562254915486893062255244354902910054016573019010461935373891754875794546009054262239095805329155097820043129797682492127219357824331174978685537811843241520042610333867642196984060019714001499591045823890929373790230093333574647654360423621507235316127023858580017873908635060934295503502867853749516396362248829851958915562072434994281011230589304163083230733296524442712715660435847001422120100656549999652985724889827521281595226783412016543503915217230721108352312544581548566672981487520875777968585620479980029363849540029635130276240494531459482411364261281186277494874103769758255547151382217849975005345669870445923833418221345891991360337121206524649490938767966147139402379266204327531628706195347323031608453248989889041962098708759140593652775137739250176994185959334395570256185775026418882567530231518875564617872325867496193834933030473887005285440028414166949729476004081874018204827475256075763166095858910722856378455287359170756309519609426317341082339252021741444953641504954336450276334931381437331068801726074012660366873929352627021854885207239522879748242183859054899123522305163779491864619133365762706322378515813750291391866836493885405821455380629341929033022906065726128654721160613292971029494339502831685079515194782177656887179564240772584299208178378001557438887102688511171220103750160502973860376366015607627543415829239259855974189148407032799334479542954711723751200195094062437519549975381190522484607639311089598890190311046198369968462531201539680956224917110285274713782164249485480917114869926503591665819163987935443605066977430333075847295428574491444470929529246362384587712210533407799062725711371528712256634902272148204335922578690176453569448966769228006132655733313412832926292502497551285862352953549024438353241176123364739901183150708871538736451429350844412790507677779240570937240152093781601750873460542659648675695530603118663331502662592388882051320828993001234983084935271841980059341281130384627356193948132293544338700445392155762033169356403916656999226842298725566638476138424103684893956047276539575315579011171980838575529603016853500115993653709029736903611281656480752431359014732243331973877284941415631051112197084750384004660966284027779841191612957311023665754191298414706893274434483682016149854248206182901467439293968718091293847006767241009533790211745396281722800071838628593105566832895211404406188158122493624775089140109106317474391390919983270260217026964063945329794869930469349881454638876658795927903738200581495425047364060772877693085576968510767031669698020835657267057664205511254482507875355777145844216083113971216181426818147747969459116106782019737643494492836237665164118472329793025193034666244700543212383861242947376262959956997286134045349180806388395364934379102709864138003464324900757964577909552148987327910293066819633605002851186565946019269144706318585198916967467411498954541708253452014037605041006770098558205435800176388574377722905154328925944143525628969963353133181350006234915575039051482602343296779839146272756077607878070396501432751511902806467480336268902773450820831320869963015082581427135820838369564622829972832399642175040360542377576510779797995802090791625788943719590706829772757438438977534722927355874485858210795198233449204584676036997928723197250396773797501984335039479272690996689960244904325335652974945624035143479250466008311727809036506747725005937622427134716776696281258265998815602707154989545504841095347654660354306533767620727061600776077343635424446486591558897359968731787379317465713443928068816645799194479719808252391059928689279298556568688628749441757699066807581938411010371364931925969805561857568553867522294845505022193478240973967497234053874891003220308360915931293097869805346063274033263193422746309420956705667642292983064565780649745287973333318229066022623350835011659273814980449287581936270466772290696841766782866824744186828240821258588992950419152663313692991268924629352487670802721989804564014634593289855929436671175667544207908721532607617413931516442532982764718870936466553161294638267144645740736982980642221122828884143517339395165740835233857008053096101777693067550370003010842445000556945939241015946754277750064884473698960845632969016945274445328760376296680014211673593160494586464494335611456049464724797068673860414050427587669768145999257454065629752195454969513386964806054663592338658825001685761137716844634493143980964658551654244149104008253100212279548573247857529132762441110044306991350312441792186448094764227982191000804496896374777464303723327437930876028854567231301631134048710923561351766954086982952001857744644209757744609994160529175140269009348104038904677568997955447838219486608715570653493404998840207261067652250022358337934368936951666108736455520402245452012125849905008061208705273938912279659627345858618762651342359826201584642456428581062692427273533212732214506767111526914672891912143534382169237836182581450546767134430164467253364517795549796315423364191390038023223346120531653245135323823942576720335544579164544682857122015577647860526660006960818297722527151750854711059126117957949078762547761713156193352251214165648090584982844844354610767426993095862400419600208238890003032523468684258914333052739601540192217971594126794602707951506871497168641817207338686120512352867374406336333070487510162204195203521366643751178162060506458325244048234126510670794460771353559070861753601221820211330434976176448307451307531222020146154084328289897273457292862629685778470149932114588139047940937455447325520247859392658325187659571181376061487530593823645255070750156205151918563766393317092075016013996613908474065029601823884971499543551932500544031472029584755609516522851312407409978009429115091802597324936793706454703472568727502050666087075293135032916142191753754750599257352935530131685193314391501393184089428896003744553598399147129658691757360875794930985381042405091305865216844460165497739142535751584474758327977396587279196664426881453018049376310608631811710359204191708292106132893862860274805335388431756335178026258803380550026948237503599419280580667539469454096393381660914231218312033685853088293934974532898439420876873947631443643962459099779042099900192859382911013897609645607371617999046385133781442193584653108741143909585144106326262335385417843624135265376355104185273328841142012161564647346431349448597215973411865080125173358172821803004914343778291429566713947833389917257162973915167734336307867047984468892463031259390440402236674270357004166210254573914623383964375471618552112730862309022729147333292344883721182855051964891740858759862237372238115740447135814988731936768945460933134450472985394965598623138677447250880153986815963113794613679255280417478490820927466789283374201604917182114989899372724066472543578559620628909952292364761693431971569038919113766585362271500604531529003083903975022392422020794976318004222998622373946366289809393669327488242833791723231129056516891765735760084009683399613592899726982886692987070423230118785546901932452742340701111516328890909516459842576326591816719385827619193051955310160402720629322243137739125545381691994244460504979244043711919656933798465218558742752572506367977333359639411469488894997308431015611203133005311506248066893179873897587169334801221961711646202215288873300094150976292326378856550963277948464134627050885688164408548640309083302778211780107355547707966667563385085655388446729259328425361630093574787863806322713375315325253454687463603632069799444565158052569712877862199392147409213181565103877010164513260019382461710988609091211490075862418107700089659841560860691750467292476395242406161310261550363523683865192591451318494210844715020243650637256593004247423944999338773345511092559622343858878786353277321122407755295314119845716162306799820224723851095670332225772766034557556032834378086505847906564962511687920308316357429641589657403151806167209253214120420446372368716580478207735880376374599080719592426004562822562757124568237589565877999221420172050991662395928944708005277794610934454979680882942244473090878769539089446007713603788253395236607830900689709552426577377875581183133459064936525708656580606924090039009059275961529410125960286510009544782328793502961563717646365505441854220145443211544901284504510872992899407420470485076660788628622860576580072904384057877109979437815671621439948806979830169807415419785103723851805323098219372022730302769348931626965071642729803105670484601212332200519308510689529425399614173048905806405522950821457105237922034728264644274705787134270755278881963214435741850712476633899760977967085226025095709060990142879397168204515934825276876345335338612668170791225098304398241138697970863277464128937248324162571621716749846830620859750597895506720616770259385866691387917618865295485740444566949797231605889883812061054023289994952896124871055273784666026614809732764736364996121424760669835243192220891200072443373790819690381657333834095964728080791616568367522948541606281245189555921208818685154237097194553165086762464326970115716229882818288320916149508790639965278461143090637960132518587406965494546003308704102496801914303844061450283836991084935935899554980536647747357965664644587624975413333991288777379393399948032615329974367255203649585773605719914725536334118690834985220257253402713865805674910645777257788957281033353355913964719694248287781361643681191690038389278057743383947265502881027542021353599931532429407618551925631894383729629227218814355445168081865003534664732749109139380790191748287114673803789923213519712017762037823353019217986742174849835143154391412455875542202535725323616774354567948060863046919186660844355623809899553536263214661792018219784652419998758985837152112689741242563343301787104425900937707418678255633683804937907755948559078802914341474849196631665164015092453310071345822517260458286145707624967944814722435672600989140736786131416292339193515482406413829961685112516187482803617592397681364520296102226989668420852947210868558449967923013849707461723117008143714233903544314383814210569301771824626379176680940161597671016187409258826695313223553656108912701593081467043704513282984410060375991082731316471250187076053601064580020101531101834451689231622514993831638780909554072555379049775326101728922607664279238685165676267239410798668417084771325068738381649086622814581641361237783565005685153538773711299260041198539351450964414141958802766103991016358274698839448243331470948759393816410481414659729298973149096678313316495505496733870799305124908271458400046896508426905406868537827175959521450863641220060007677884126624574966100250095739150874167439654105006242999928671082174520881989031402988413325335818889888449692209171279041979279314971906584588282019054342616417250141226028223503219755752154470502505441288739752101811264337486145950106253572204262935522725877749530982834761225792737997788460450410184400168209827652661170370500542461683114078537601943788203024776911387777578032577226097243362665711832353757755802314984075354863219590759004887272217219948395927356088892380296899432374430974500211730942510483129310756387762261787663099314153920819435612124185613044229151067047959664153084480343191926115852269600390977535454013409542756151286531589093647922990638879340193802670741660987509727231290756110238948675344107971912114367137624674184715237311807292091683384002182254950474193588277438339940781334511581689485401825967562350914063880254520484537522581353878623927219148629105543094207314149813914641946440793771164862112356316365268314446903107997862628575401655232094103836410777405561922859077885526858417949936330784035757628122681266086035119184305644620987849847840179240814437149780782166567932189892966970602108957453626398988262559732786719930716096454503279865099828046775446436242212216884424043176993227664078057936390017424830425865646484066511981667470996294791104115626693721554433676442669509108965876580139684033531208752883271487223983551995120843230731509831816896148438634012601356770838199473867670355068396795579650418490981233142840484896238896163377626910585394363790483564268290960846882865821650433806108501251969292149722790634386250256596109689455636974208786710241302945145318590833622538337002748534006775552087214633160302163376897011244792107178101718613094797816608780483178428897482467567074709972288129989296723539902447678791067624971849649155313821704958719089866016410212748621255411490132414582581972123887993398787640773191559101507589165659651447874850095242317580011048010673238183495965766047006686925224384768724158324630452767408318592274240114918646115745509037716103630769868369212752309983755282024943329442215007905850645618870497931704263300053644957653480256764973660652053658702427670804973290876253269248484298885290966707126938412909363458839428261763009149375925805061034031292450102357472154634248007073030490123085450827316134274873021893271676564106568361345798854170830865421485696787064951808736568968692995648894253517760236300204299969888080082867982353568054752122395194896111152037456298820448460242512371694838660671536644625201511875602247338285406577330192161065575523722086916607142174487484848994525072339952578894973152833314637487681154361372644355433915841693037682073911558512748527120947686421775073412679881000971886992835895594885292243173930193400524503410603624785316796259833648276831210230718380448275886168346182435703968605380767029156991645492625880953991073966189741219423852537260818168861220961267038226928803067246911067681291100137446394478714102827703618071967823706310691650523766153820489516760002116618163868130007767045249748666519717456198612737146276850611301847222544122933739125585525985109309239348396112500698178144105129525511558629723239259364177035133552510648182461178820539409831903937332061530184196574301134060058249035114552738541253948637429650719491303234976933555715730681930081827276735804071462710809350714740881571482885307593884600609166876431550925297026366920528159825700571653504418587389428311387946951614467818286209858713622132040760835409149902873805892013018870941548761239379383835848573653248148795344333559328284993418860994325201882394057209486154746636635047974036642791614123372783861130510176848351130917625012991510317399803635612075668979881441680852231697653617533035064438097899956354471678383384589389504593274765051607170803198291939531074101058015801870000130067552428778672820644737816994724349638835341135263752217322684123828160254766238937911113346573307042669656665471731356009025482920633673944932496052207401441474839878968250668205862777596866170353672651193875808678690876413313677792024699918285287839141163716499990473882295362418945953014947031988606931147340655420949515659135929274272828130722323753565052141305578604853175516324027111154964484090939478305530651824075601131714152577541871625313176872028238036018693919202147591705456907587368590723477699009851869743267939789015344402671272742075935926747094746474782052548230780596720238402355276744521590317338304291788232670185951843919550403773520760776956214044798258695233900932686391751085443737605736531172543836259496379744878314302336144476807217420566813291619463081095019987356122686675563080654566132039811026866950366646996522972991044971880811372333207638113589275693316975634976674670722092681459935279522744085730525154768199642864403585362350547092034939460882012596512466634952323058150491906660389237716777999970175507466165392958781642663879028614241120329678399698564300160690623108369815575197644328561596727130182288525331736840362554706350816469640208399698426924769401270047878036547657978256507612059059811597320958161416196076551541792139381807003415125454698756378272840092800947216212013691553048467572812687819917286432852961322970068243506469701115926863188521964319541524348267189253862222142711267047229980703528832005918341642033093177369996052161435539513739498809529182049034694534972963597920369589575542452416894552702888932685266211825031811355543652466016553334343436812112915570492677865582378883551542348842591099057736833699158290710878898174304834270019623604847843464710183880201853026872184300346973777691834644627904965852392786438302394595483374357693280406698564253136781257637569707680889536619947120090963566482628268269335851395968058269687421469267946948981799532237678555090007444318661579323478219845413205178104637985184623366765026696198688287052542564684088132280929174926410276411403179862040252957016611733389208996209213827468292974344017058429491011937929515032443722254673370999148321676228877685781850164115077541953385267719853571155734260066213617413213812041389722299589267723625615534312003676646663886638964654068383850774104416979319271737132240308941562046874927694297687828793752823997266091091819224072497677454901777755447560027410392405665421132099257539549296622720973226717753247697079428781044372083374397283557138238362448270278910778006486041272427704695223540497652253435995699516785568449865546257634344537607080692220988198484753896273642876992700279909602808399783778607083010861405595854580440546696710926899909885832046273575782514275566299464937114370492519120489627497300992526629409292352302733935430664529749039929815054624098766426786237632152809227251622757884432446276070678587131380094114242676759539116831972126650674232996069222654726467970618776492697074057928655272214793411393420331583880778100161568782470219865419159408369139401084078262660622625636122618735533755902268179680151727858651179627109876242782361592163422878383998083081955674617060924310729860904081160315600257380856741320243190150474391545819286078458001026444089275474790322509311913987705598933235024116564896477118327389639138781965352123896546300047307152345496266056640893877355852868925108429994654120375470457474460682300509388006843837285220143551464081567033295000266531753263404441835687979701090778489291520341222019306824654712467884109296399437068087779098989746913752390439055216162568274673566962336971965458590978266963703518051963360473970248177769201544384235282731071733256276131068919943302867059377141608068439872795616545245351450815369453070605481485867782388889936570967908048832711978330950671161935598118976887182186652611983334870529411321031678358499117190433890827103540552549043936170548286389246297883969307036669569191824050631212637920339566096914225727529489182903459014402293764220852783217424744076337367323258914522933244085237213431777588615401425062032604072971529163511109778282050685494594421996515260228271053647824326727905959304466696242474169290766104505957832520568396381277876432327142556618165776583126014295531081468810827392440568879323568710878851570550723711892082664449018006073147530189639536174340406358591063074996881698246116178078523093302140795236075202774380530956867437569164009640863149811958140067171072302559326315047252109133289374745258375819181788626134065705519170327585751788513765458485509821608559929140924676041482790740833682620708846496375285751762917643546579032480685284294080213552524773882760935353934501955257089945258796926190438252532981387873711559189317117616584562309676523886632664760245309957690242212134473912090134104027940501506831884355639038611486988691765593286238225659824880019797710197231834508452811591466728483486287616693539580340878747925259225540793779559324282942932354038449393028156331312106316146960608085711545741679397364847541381471977649518816563525758489700333082580145686811529132377286513654751251662637284354461018009415774392095651696755402496938617039889314692039490415151417227271605170777608365586968392070578543539895526766084317795640801514068175899425036367224561046596288382774405893363668086218660472604582168688338022263008650713167677479353057025722920388604001406731805873829586928082523913855338868637125284949013930550278357475192281000281430602227230879210149760762636443913579104278414212082713078642719531884453435264109136533290019132461669615066255282419066446950089074124962558761150789329639374558742786145851120909276305475736005406428036258909328510729541207808496189589848109293008988933066440084866794423626906485877475465888995388267587399693996370994607010339459572168653849621116515500733252032318670378362476267276951347901511665561041411002515432320720661453347847294376048659677371605649617807198110065945408827480009703820165964897969246366360915484474204180937484966867169574400603058305071616414679511651836054061002248216060497784145809194417813987689506836397172855576092046006213116094367892441097360610800829478186255903293413745205438516692770790415446785983232796654304361581173018181876329027243190858320200625314822127670593457466036844915515291974323877875102076403348533549799329453017947505623151659650632403242354972114956954089350157353087421163108458581256785922663577105480692329045139066073055716844673800031834663374707930560197063503202608818693316385344193785305305417655741031125395544346114929400304105057679786464578478401593690242723906581014174400809303765935220598087340524019694204642998040855133067206088893790497111793506430308992950837462930793807063698475970289905562640152017904723276926357532227884291696630217753563175441929512365461888810886570948701556999424862741968352449382120340391500148509517149149282637559083786704283082198385589700460707810861527801780817084366810995762064494916183879481746208296649669206688479200133560769411313841418372125613252947806210507953334202985877032229473677462329201409348273308844655591196063527932849232676163299656575046375765376274740532792544789890421777570526475817656594371317555613247818284220690299907955745947052774505332986215835998078903876418800502527655934934974121278884543798289592173815348947828200568341025906428014602946164918967339672358923522433907372188240617421534216840065280824010824681291612505343362804484792170598443238260150092270409015643696688867127609232020212621429089647944718097710993360397530495997868647614671859411807345621783414270284328705281121526238376013982222401145301376055817884733717865087207710651261705413235610831152372989962835643056428914646537371590527680766403339850645725943258096702855051335475290267544510440775305967204514649688980974522332353371037817156536720770469458001695931889673037865086492435486947876036190516794374987172631443136895406854914923544908231104604398709989290711548646808891395296080222824960719879313370076233334415312457259711051669421116756927721348601225138031654158595016522237761586052247137659331490087826955817116792315130724120224994462573805617618594727461542990112877423223829430253100960912947956063729107459512914197539085426079163675416900983031497646516672758275163451155772091043976458940729430870394174914526981551964384327291034942072140211044157373849226371468638493471417516355718436430695146440611701278320994005457930914313527751987137888322412420973766669595256073618338323328699066588716278649767954228645927617308012061710237796672978145201620350682881692797849298863879897204458213922124625784572715818073452395805641464707197728767328965626257387046928313796054267164944487072272764223858479821914258035892720714226182756438437588481699278490892301684624281617343290536981971343515863682222342614488624198604447768393876673317220191684056929296444756870227915296058277375193207031102844038333548353624544419542821726270360310521112245336538978952439511898508226734225579495301061340429659152067708461454790684796782464427544334523865730831985930029165986611217004708102908898645243115434979021681987047221480089158468981130238840354205207385908282682699296617351412394656624841935785238493877872978820215968027068380488990909556723087960807475211400928448560118247590970305503972932775204587889437698031216672276017837553531752287259322756135014609890255610752589772714140103284929044021837211640345574292363850822390669885863270493537625643665085155927951689822631543112309400727132654171723630179645914530259892946698726193631190722898418820870086310652001005833072142636160006063413894170269265684780690835865392957973329776042443108471004380896733506287345827413692212824784021475708909560347581005023592944414278807622999902050291492217396575683702828431490614430204691422941744000866684461466263328543836849645643378144318195375662191083274365395818303786624928422161558939432279888511811555733633192969864606361393323556910528121457117967868964478418777627253428874945688445480212132875561477853775457628215742565350389847818052917806071825024611379600844461798918455042818558568569030861261761881812361736124957193895376511488529423649168700252409303992255157263319812500908994059670905783197586204040904882028906426220563579180353049709052959893728417700057192638765537266835097732963486671424109507522294866783468437956724875687951668891044359980135857273110677458342156324340679715032495172489780355375624638044825152998368995954472672754081166394165782172959848348663516524139818389541769930122759775545584729463237059161599332575975374666583191714738607990737212187196028623641054135757914214810643042768179749957055845104101176223502369205932952017197154953237063388599128999964473706535661901708138023261268534987031593022178334607952758542056471191819033871640341869575445446442093027149260411783453176727352096826064721837678791799182463981311079321873720109866551631437649850533398730319629607644516933387912136782208342715850628757882260200624595305211525724194285436761837194743214704800999870179636275338274112483761601397862291051191309544315466823868941828224700478277917780763839604505154407689695506204252229655339863977524768082294061376299370561547556215593228442488920467030495853396146549921807175638189065811793931676318942433372427365613795767650909101150837245253385566523186806023815315682942427392790688875428791212791091464119130676561027189851874441301256129406587748688303367685481614023227658076535386724642089501500972533162332779027678290072027251545979642571667619959150811877875516052916687889715926266476912032594911886393986441216127296099940441245893395252997547239756243773125387995687175479232643859591485775398975064457147160533941024252118539864238949430384884168708890017234016187793890325683626469942025182498022184148293242880262499693792626926028821912908513517383930431600255214092896770165546138148653511798863896023521537975089861123457499864189432610893078473386327660256524675660940949563011437653897502453096747043937844994508597131331175470750746784158533838958771278439320219430655626841906555701663776128189321372867378350895501297357489961825761200476375486334067574464681804400619043924949673988950439920421993969776480971063426586323719816867157224325157547845757422821181090244758454234028383436420458925430800517061053772148815275090780897514065375427644978594824694880119625278795940236047474391946517174735918781179804714082414082571304614251307966566461170846574122624479857937044386976965995892023887929078619284321580325921679693426721361535867400705143380957487101322727393072439613344859174907705157728216449709994146963698697989462705238733209006154104891583273842258457041692427890335133680056626136417251111308923711073070615698862613896402857401724016892993883626908737039066099622347663413403081516655361547192656985311167036800628992707425178496496759434739586723336998081036773164623915009962796777531680609954463035916099488283178822652042414338335879381736815748424863509150077987043279467012309313046351490418823666003325341709839602937136901339950926212450570765797509521973767728497161182050820507364034804447575087588598485284165225453511925479978659014195681572846672768486404593274965733788296003781998476793867237707258948709071169478024175303562000234426051003688428265249125702275116101175899152691274745267807128468710099555161829421580447591979867923966680631602534256188339925867841283980792851906927551001531670126692866563179001709803886957108087754799791375378018192445919917426647643007825681540156806230515765930897131931393734048525452563027716006794325287424927253934428461157279045228546743740575364655230812450433309842821967340487579841196657951253746156072146696306955512661839465543978953323658768003018554487007550622034875803243447785033242902353941556886262649795424741644754643514992191412396588551773882766777812725561942044035323817683711451765267954705663277763229725163450254553603445642009057479040471682955659985681026179510397534812340979634036015185782668700480663966675878444446641114954854651765272470596854896757283467471710561111323023187448996037645261829068980255440886389377679007337351656814378439742311183425785364025290928946391846880100002227653583180901013057590483355785987487874519747942252731858367516195965368925329074105397769214505855448533295898073551308436830210528903062871775817137113548508848407478588185945490784244906620771295709885048096093924695935294224511481081299963321750599718240043333025315738306529839945917678550718860108681018358276833523386004261789516999982787325911472265203333026328989383390789643374203211282647822811407085364884746896129524496412454531818752632148153974583359796414686996534020621750366845981933390680545286018953840058771151809898251861987696763388994968709069257128523972191743886737262954598595285252156656743730561839552105309539882078725855764976501866067337685458070509679556565651834820869276377881106269425317678506167957052852231553302354185173318894160214029925585349872297600777747262504860424411812879769219227736051999593810986321177440508361374641898167883629473236864911969407288257898336480975779898602735901622202117162817559115271125598740795170599024963200904893311148271111225832030246434538573963567824733403170720793287799807597604580071971908914613101678715103970871900246011612956201440000315471559657084264810346403962203029900556512354033720100336608305481345652745660432882197524033060271933748316329145826379300655960131706414384816004273219412046045889829297260688206600050807431255711904478594336961473150877893540448490362081736036291057004051618989762877944556243241290907220389730141062829155882642323061183197689332770097019338427226408437680734055667623416769584259986325109803157164102854094042400360857742373547308297010913085718530993077334915508918405858683815452494954180249996645005121861337994861720598709753298218269835695498023377713898848532448217843439404491049702638678519045128140295743112516491241599084354776714632396729492953874996695346558683672084031583331816604739916858233783997870068599886596797249005403576185555287604328243033147539157436227467962269393324683242564618682553473925940216772562958024861567939021551382101231488453387760337349692434940909220453084987912840168525154312738620921859500851520629280823199605390219082430458588780920444474459374227902171715449945286497984054954238111565736341036120116338385291175848037472350784314638484687637694715610955498390159017385374567128481108086511316540069857397449853148493533671832241964698032942227345521775013798828273693521946869741394263938830793753338792399091173717909818306026923444291785989086481352271452518430822784989707152305871097393035520853367821103608252284807253468483659542429665262698365270178740287610990311264487592344654161468764640088356782925024551008162259472253970847371552168806382631288417877242225740755465474037407128554232564720719731541343591262951768942843912103349479645160412620901270596029548390630599764125055097397384143319680978571600224984563159801727207190154208550000696367521426354212789993643288792519172624732233293241871662990112664287397295130233996312739010783654621259173535740875555705072365144033492263777289710153463826137414075458503191768468753853967377525977799122040890315431972882508077571860259210544120595089905701648163846276729753390572208671927114548125343378802501887474445979089126270056909047628413408583720757177753286511330412087788842618689299785662461803793267462628470298741998348162025312862053096842529724888489528440019487816681837920061951006740932740083897830430635654284769487769678885816689187803260398771437198730593467823063364076789168888915373934998259869976588409950105026438609162234122296927098618531734457968838659596568423634387913936312235983356895312244656291458916443814437121044685318289712310519904759841450484782209708648444485185909889155061714569605201091174981384454729800469461333537154996302162709956232442694012389591388545175347124687015487528413835089031667259259887038218655553757032641159585701461203042757186710376842096373920402752915739429401745172181883079432688540764792710046553952689448368634617686816422332219069948831157876235953389437721580570074605573847188343919887211128169019452426869720012304482032385919814289514345285442271599914417122728236537711732111914069032813189474534024298788542271601069762529167845581143796418005964919211021308129742232833535809378722268800901156003527924159461107959004532921827626723264932615219426890810821186470579264413579366616162498464863612641010215742448735137103050094828120829568041001756730513126880496224581223218589210455335022809107756090800911051907462089225401719738714528458917816944820096777589842420577537948747832197744845335569564903335579120408612830843625989546950868223671767631661470911223656218390271711903019542693603099139650714930806821089693143595068806582840897520200384846429613574343909084229192190050183650853395033725480571580121054567471570797696916085031146911027495566159048793076030006393235747662996952882063754242398171031304075481841624189512981586340189376918987301116495902720612800426298164599456722449945241666843008688315377562651394887590450572315263328367879634737366307078457055652268817209532272529801396030540132255947816246419660361494055795157824998282147019462907735538305559950149678648007789701819893078225765605361604450423084017985305432037797412190651168438339696546361315729345227165018662377509337837172490741359962224709385265527433918780783588176031803460251263349055157340774517915457922318489282307082220501621933494105209711795011893630638341804937123030409774559622115917844003474327821675383965649591281580259651902792009392416726918253812975595199619512006138087600518581611590285253082152227921787009146832093320934005007728437420828522441413191581333095721241866631463248932575499061861743987070389958991176270633668007219433367344081683801495015845429743298615256068879388849306149454806727376830119716865173839138776360828773137779220256918074682643696077506997645726841776325554048446104585625990339634190772603441352574005828032593966355507275984945905394794225346264857975173404919569325736907690923641102485236085400211299421152708320176434619537259797297518552169074384480819448154870923067934321648096390975866017944014750043781858284571857162720437757508660879275614054517077482101097724358039003558403305387130176677764871320603628278203375126780182255876499472952289639468776526526895201988963135327890561783779990480619739176673921942775692124027821496296339363358670251308015667023313419290342149248333440575620498888453745494264184877089335231637280999245632767666354750918635188155069164929739175662498408591398890531745181819219960054330434910250670795208548912325618127099098312438559458581816282070836161193888508310194282402230059283622198473904163088886018741513066594970210767801020390162944085455712885454616107060145255275541416804082349720883066513339725088070389786890397455044424545713244869090533646039362212168697824203143672998537971007275182576693308259493924972130292187434954439995367626993641894004686665497735017644801670036233182879891539125300231560623727594265427499892186630410680617838758368496920587189900607819789331553883018152387953812566881410506089562175088908709338351143886900721482494337977965338870550548256120292399008629744246568981945090957815373948516709592829473354580143218763991064186513387496042984608605040982704968685125125185844413803813142574679976050709723478810200868263441774719182286398077069930350522669944878153701539457280007238224029593925749954413637898879692795978736728244091035152214788621273356676096135693709578971087169857263215396921130694566545070620425711943595087118164895608196967473438682007127771421570019901224967590286625665942803391780543649104002748224656442704690934082089226480746515678369453923872755894098328088330749033311042999901627250025060601025878628829157626114646101402671469556974567108156748144268464502063647568779861948793587465614400926678693269491420895660020672327707380079838032939394095573575803927353833560048701939372624012486457569659400095144803552665891481402448758296407667766774174792429469807071040546361872007576759386084949594840398184477296334067356180482515707880960482920651083150265410332851047627241086221977146495852551637134135867080112075192943911618786561138752320235122643772990939705116195894965045661891183344408887550307346982245192336804309906640044598457917596762144042254435121151964468289515099408630687236119220141184752918810250184228107909568352891898964327006391584256866221466487460417480801569769142350154430588707175071177583581961801586153872150748985185564674256123592829317795495229298081055602424702927596566214201729684198893079368357826444279106657885334785864380970480377031100601785777013070550705808373433962955143698123582158264026610644987588658498500646592155716918717540621484821979471151092434604545476384106146219611032982529438493253665234312112750150624919740955576924819796427299254361036741150845825575894428610864125131675860143598467877835536997109885668998772819465533367823899641472429172306253642693340874020378481556963532785657284272137433924767328942930868209660745837928750285958045819204202949382107679965589148811901307845730699439251080769854155159980386360920531205356436226248498300932413501230571395370253814670175335312553863043476573392077342230982946912063315017467153800592478821170471909372526683719479570047003872743070672581651148043851207175579364639849162023122362328337738307823869735740102113247007183889344258829142256327271764694360187010927293174334134405669691949685443593302188138705294807007417906932549177325849139477262293844134341686773461350487916770642673526076201240388526869001638438399403350828570545346663543458453129504338865395768883170320294276668428790112422984383582091092905495653761771711674236611891140078573061934145397560293080272867721805347798527793941419314563281612694337154455502280762090239208484546608020266003243451084207984531008661256750983777797680677341355668820525926966661576907542346416559835725543018015956505657364705080258977036473624703128030992056581134897741488123619639823948037149963881240190159219971018546702509776897478051388698827303058986655185233398407429172037209020240461509922066768356709098110017291643617561233988366101355783128735304146322163486127349270569896392356504397877227847786757303694288371887376255064919336363235741075775972984637304142554390225855221805095201614970665890128257993843926627253427011372239258903633893858066139886325813834437927312298909390244952858124490177904745382393281555343734078739350847306373769909916921653504561066899174400986795220632742128351498087154087067902265552541995207561586129628353808617131202018461748712860212244376299655973907808019963174893001204019057401715054214775523256758124282045563403209882798678790685715654475960926101272594515184834190471144496256654468644732161449843110939853288792980531491363467479138668728839808773691875416487027673416298508176629347959122131202737295718990041283214210772397004194484114694080515193407251436088221194132364763880776104681180374464042712386394760843720153688734118251898228341480868082885665291953995040684732393471442326792595092872238996133634289049831122045292612017714006357636883689442012674687200785144255426174910814838536716289453769173265346292768263134654984734875218454393360930459053628238999824872803109731323701629521233439220038506617535391599326564571467772953589075577625677745886955692177217525078581055611933290159380199127809564222575808850884065782224848782170154358516461562092847524606084959951962505855452731930611673021442205943339023262584687498060157300926851472844335222869054483726338128558938261159491266065561469741124956271916940492271411471404807446710078112075416420402856911930190678714150625846648600156197788270977059170621577213180243531317432353103711517626926701913001720685906487190078545802425529124162595599300806282463918014076250179792151434719160425327087753548004456471311562316187771507712916428509079819497673698853060423714707384201502802685986755748579220516172438501167657778757891942582273750014409050929719442050353189301957184365224006457928856991300799045539855178489738243247507285555470980593427681888363376935689811056203483316576106688133128260735808873096316393997229189218921852131038401743293705367727803527396974943152500940167261393285666286077543417488988334317535884071988619450842128646858861506436724549965141236839237649614072428863945584519253011005392900168565382491877510794469137987566361614150844797481751656900002838933662269320573180593719555900841062475445160094017524661884469015520303437981957628043779652477926127307352350884249267279493237705092375021966607538371046809027710751410411421575372360425959869006113898894449703114135684024002513755372663164936367189558655804897814801328783322325901393412389075282679594534385749361516965198149519627075794752885368808298996794007458825968134547790749516678777205861690080553312981000089013193131014264588578554352913254432262798339611586976564505470274905324974851822205432425605692564572355072942422541026434469600611789034382761691410916001629066921279783022663084595562803047859885675676415955760146495387140295563646441929876194228597296882255115891767229668180484139043494682825893450486623320516368134640520674185780149718197393953281551275045728042526765638473556281033434297401372653068549731201049050736910276118557763106862155406890322472509923354822437297155615417435302579474275266202709713289972742126846981062779826090200934914448708523460981848383174138929046863761775701216139790035040367332581773415611146684308307523009412583336016814737233341161081356854064124219588593868268159584103135107344076745587206211320067970371123684995829099695436081347350754671857045620900329298969137652652015861764404451013483645855370520287182576301355098405191435890667907583097853392531281253931561359748119092678181540138575711012948727386186262098730626570412841375783442389481045487884854656357400680821197651158150180191545583063803117494094690456726945835130868547083056801008084239354014814451497645175619733368587055544898267180023811901986478132367002070067998166359128188637551986720670267126711959463251892659652714874545029786151112337508489095913373588387604098836859418237247169283953885022100397770443122471210804204463463608809423360319992407730971586474269025957279605581733614489953526584723683272503713082554244887143079462495278213527839999741013145497479333095223306280838584815274755972125737236757783755825445302077168698693958545105959838332259325342430336370764520698671547463556770854903332763288247108957587091098779028713298810426988637688857462755408453541809748226746929753427119262177352477070317532009443050056925032646385138963980203862530873280629993361446192562908965000484507473502145820474371376759135370916167758738779534670750260207653167482571702413397094485423559621844837856945234750511731667309472316586120433132906455919137671302032286202150147270223880090376826622102087670834340792878517772646504809014354242175788804217715713798166633798817017439686193029588243594695090402575092604752839139234854219001175321991054687827883799724116190500579770465435634870515780584128906210747176035310264851120307551269328638428590199533074532462607701378368727911297321660646896076452699699948277750714295195479498043146239158728048177540976762209792947381576627197746793854179815000471767763115483410860978095951708735457563624717235478381937585883219723766650717256147394032232926347150530652318348404059658527968767482068884996795601053428322866946600605914650222633758904557983214312000038199511795837973923135708392702199555373966757284152200172535934504066553345544707670042211476563863067683132569600725185895102315017963829433460033371402294044767780274436550170103539902417522447353748028032846384978685350094637333619678677762672733696299314554471602640942012074300902509051750074844508818068042703545743588784210313960466925213379607331572957826747832693680497939830956817904891804210396423223630094524716224247002022570033219887542349183180891262761370852547143388255029161538232920131110538714939796509549518434751504386018685918932522448601054605808088092698832732433116076139956333907047585035840200746520608304524177706033437571492002936000532922731101796760501106009867946096797387952900475973165087008349744942436871136819603082853414206623518860759987368247090283284964708837983621174541557066114966315974413486298837604858653198971465716531097915999068387291673099565767551121476779100683807021744525587010522189905810945206776362172970694374828995344902175583355559923937652692392020884007890177163905585456208112130379054778778149464708376058156642001431976092038853735303177307627605162178328848052057876377696387448190739295954729122918897443312083792229293643182920862265261896253480471149026851360884792393268086369776082393329411196614515474231797748635649022638913967079585319936866641446845264990228038632581104246517748279614240387512526331977096516980509654645051490524936918585306446685598118785543275679089885331575166936505647315270375098696652847145573493404381067774441084420766569924227988719727362766041137095719155715333969791995049147639477409592041288941223147446227803046608965483254368035918197527162011662799641117929092156416785752305428546987959007147614943228032073622007975540816654386882919437729963353250397891984398163556199701158817600374986859644788129220074495827740619643108978138696386094748330451883364900797225423895898634998600457069942649205264768954796022490706749858168323010178704856300400606646106416214617253609802403946286134090716209885718838439993377908665459343100778669723315360374345756413907451114924159427944904983997469989244094893845968593733360578091322689219055302076831915904301854725351106903056407395000888108908884645405164352707644364138599103878023925040507028528211939882218321186900830877013971744509316087496685324514574594770366145591211001433444616973100280714600683435913602419556854010060713597577694534743092493048553505736208000935911579603444498525863830217482508711758809200681791953823783040056531398522432016056809903740452966930292464208921963578406425571243756933150997675198619090966968132286206473321893493861398015889638321555027385488885466160158549963170398285406068087066317533202463616872977827409970838746350702810050944259320297656611205430591730330744710007439672997234439719700248911423323687443533860739412060801957722232244213288950632483796581218589141525454670881498895165895462553680545250258540452171928403876031331467353372208922692166765213809868153641146444797554509487487759124619632202451635753899774324088150925935882435027834861668041727126098963291731522249485574686316955495853055928014077687262451762432618127013532420726641314068185781218726761006410637132549997593350659237121662228066144997250020764883948408744675294748576734133568351672391413259009233203149195135805373559772077902993990714079893984680895304294792782550401176136701489421181975044433007958905460115975233929615927851821586338919901908410926942775288041865997871800309634030852599014967271789834964646181743903532536619274483075709423842630807936745867777435250649985446278467691856771464254280975750143491387937185353818990265316762397772584954552512461023497494894168365808221748392135187406563995772234604459806597138712291080640460697338371387272609256472375855471879449355496637064178405150796664700938544626427797282489447347025213678008098163612474529057466582079428789252114699643477191280575537003694190815820591941909992644085897879122695040398118954190907576492930033187035611147482871091275772352597177266949776710601534206526291221403650262217169366788944007705517419826211982647845432495879851085808828336380239277208524315274316257622128923743630818784505517899882230766443816065038046665390579728943358217536438876183506549988388246854270443402496622704567626879471539283604986014390050228194603745115523557020321067059983429330270029791559965776771510060060969772894785260309386059913542550455164509906045583407584574186768999930152364943903726639283453313672801722405132446528129749334769490387055511566392519996037912036784222254407582715925260381907299789079868156412895155278865989309434333836726360170370660473866577156195541522187971834114180681861848063911327088142038314011607487765380741594846907802761312988552582759158810843129911206229098825385107926424903478380834144500868087151595397659430872873723721530115632892479113432878218135108985702414735837099275942843574658950087703729985639446178680707813244803956376407136285285240840089176004899590961417539906833204519690428837299423972915964523261952666708724566120903814833622496345995295230903578325212561851200213751887715231178930625512928120827877492632292877006988460629495445837248502129062055873459677612791733857346770010676594926633437393583784614899901428927853420346928700050884867188731925052938425348307131212580462845193295195651340718316486300240174130416495881180530772863727054314205215484537210029939543715283233383968602899087504042561868017485827509181632466655414910556835612655682930620070204872996129595411930382614503387455556483663533017100205905776339640909755205215288153988192966166744635767057672301941867489730621605269025449009769559083313903908099626350399368681133631310339939328080933108037238135889950986201781161639872883684185186515151832069954729433119378537424286842234331795224499027361398483052425799220383990040497862741406062085907426764135704476631818621916973868639703769534143180312118581003936106971752236557991880329553804384704394606181364503380267400095166327380855273358773822645632984203311002552096224626682911016831955769451625834036585625436708283153857420794678659041943373636191430543577529776689842549169548916606260586180753153518663700271272890153153290773988605496736185131840458593220180494040098379722702787906268909522394328244237573220704641685233959196541217817083791723330056174876727298284690883977315191456557807736857781478188108509207977068920372589414348904355295200598541844696625227916063005436867923964032164686060851490004673960894000144492889859700498463400785925737036099385661560159763344446291951892925041730559060874053790728945662220399645290054182456610723636295324324314160079728814749423003277554120487485277855170174274190226182084166805447680598496132578141900788387505810594900906142262833311688448941808134466301619193854782387619197160254562503756634588297827986522306552357484547482312009410655199373297491536841030214942106422748822357158892205555981061127960550627918281435953047219238725754109071968936554509421329972799189654514082293544018347860809232970581905621123550205054099798990799098789679341816232078057578103344091848115983259735474738777246583675463898417774837878144523845350344601537177827424903811032432337568232460593529608618429820659133653117243192272124728670834303869215646931134702753985678212188684300087812991931086761157513331374129087678431547288317045816111649898816822536744880714965951978053465060811660428699896474731922557054219194014183033519924263213166027289281451164936242155551248689755510568590766947218826527875783973346374646992606605411106171519613450771228061607987987871522013563324398162447116157202792392627776958010814995537646406098889569473675326643102437972692309702566202919037532898459843681943331618296453717234083174710504413950938813023508450815094282360778344606712319577345470800302323925469798527355943958940688337252768920761630329233331120370660809076898102413017862308230180895268211553054626567169896881974225424629161134117220725542258037603351715799376214333343885020451382964796088489093533642576344891667213022425383240191172249855119965440447846460362978697181480673202223294653206042437962291366101835139495300196568881062612340404569575291922898195545052002348684816241743165069682506217491817977348758533238048531249455884573130235891869641052611928754281421378934061857288158761096896649858954338309969976281976215346483204233473854552506261821644629357355078189950893781286018580010523071637902723570355448530550480026869385158811018487936802207069882590570851437848395787568342396873485453311855491383012139664261707545969554887264799816279052249348710045201185079317999481904086266223425968074023598779541377411652566133764134849187277571034397620696379750955438444103023592934860159536678778741415255297875841132851300821840679351373507894730959429732808556692436079400586723673872398365262815081075285768656563479637681375205707230916717252600321016793664818012776970060652077615988121332942341027302814857603310040902443968350140151896422652790618425255248931013403915137890861197656002327638734151761960671717984176966340401389450916234322219215064978347691143116916812534784865487110133358133631867875588580142168619031614659814842209234670122121678004642163767834182330397568155169973869413963254785296329087662454361181578306743459900531201108900644218666563573945369408768924930862103589859589881947302576892757653543576250237000851529111148237335891046026874621470518363615864865115370846611122904235939344551473457432560096719447692993390903459695762491801081641157180262998261835767395645881668002646305325177173166638024866216382016886965882705149958816868546939880312314314050947588811763637711055216739401443318176121251595402348323038922866030954290230501416119167911677129291490310693479458962631696531932584079656712481997726295529416541890313387207527326425534282559534860980789099630930684129204638283658854576769143189941739881579040828681679125211045261417028206785864525020985193713547380763919161657128725668558852424127609101632875446719529742128834425500007801947890236141410273965084021994850112249368530666688973800404613135350757819548427674197204551005890345118966950945344883525280465307962625568793382767595395859762955451311732583260941258854004199853883012752135601340953322240848989558426473103279875514198498592670575490502380984212515714575521540020071903044599375995842700632318302304022492139659471082852509772516217961403704389714037979798941425887305617041074230604261153703924676482487352384298275207782759795732695957045935788351406390971705980056535299139002730165370281531162881779246698910121096245124394591318129983526605640138451024276269684791988910745256312445766403543253382611512471327320981636203988586540536865010857047988201682954435222632539545384950349817601317065509634925316220217788819407374666597778442790472303785186678187676381296358604439192311137883616909223684733096881116348886363320064088424402452933600073772618706303082373698685981788021847596358575853581362802633932706445767435372163528703413351059617835992149942800370934369880386466753790565994542151453932988646792207736814241642033145429125378181295288755565958234935443855177100456514979160565805501968048258058029461244046783192204069898530838563192772013605756459493758289383754903475405784377016925703352425960305665158890661682449063138138331292285140537385430433062916997531098112054268260132061830341496738748565018944146102395078621587109769111380451689910542855852245026661727155236271656797037228965176734848518667433649599362996644329761299541741407561771058105194150456842771683839715771483635634911712356053445142621213111150770622728889263200065070579807359786298337035798613544456706613405728121774867640152722491043877606589996506359789540765481475223646697455448926265711421861849681004740118555001641596857009661628695691426433644432386269655089376561876160492615560973163398462959953146769553980767076174114395703201397317212788330680543772873419359686546569293267282699048823267320021556843964197847744350044222933892083972684616713655455652049949028444205952862219321404586138495561561809152388674639417865870263900211532995998172625674105220452762647249262765366334935709870009993472326186958815149947409895712546336525586025217985994664072073546333157523785651489886371708158846968123566233612310752840299035289156196734217721068211516230510099996686663353097950770031458781202297229924128049015841745846366302619989465382152334756737171604171282936021790236719312434453482391309610235603184928843923183841242072282782631936316372852129057928121067825331333258081201350355583483739989792889977335843255208940783937043313053344263743838955307182996913540116525093344602155897546760651345158488222985141372558057063872597234501247774561088767434225763848191235396461886326736958969030117195212149080852531421893711167610324581577689305265886522754181466379580994071738741078791019859051307310871158178614768478644475874422682286855228381497448395500525376704006107702316714451470917876776444665827445131872807740262511339152151001323032020384223167156066319618685416880727203955940911514774394413697591845872950636496981815707206860035820464710268094250766120095725836706216545769152180443384916577642022033243015383380864305617206496786234797588217491210625444055275726473437837657027921071036372920406979168472186039029904951875148137590543317072817051733318532799595087262922050982183616584319149041894261291990430090154250534360263425464946665213796899122280425568579438943160013855149399741641807858272682652751338969393522919034655649337816895652657612656724801680789231368651810749651692935095131541930582580137417559616486102604855242935627343673264293730470182338731288774798201551219867806571761215819303920072214227219105707009625329424989049757011776228335093991377179010021042003741697514215188862603002041584905891643711764236748859742532356052619593671443130369405327884207700993670023248379281656208402924630487915398646930386694920691862807716422133840551597767428462482064141672902321612722528436514406493378459850381689649974061291753580371463806836298106382896183169777693702572476034719012326692769903713426590781545229669705950045819981995457987473180619004427421714291671755814424640092725697259850845223075863658305578209204530873561311256196758718562745050849852833163138556717470731475262701339331245647015912021989574360763491566718207298134772182635445158411327742310671651138282225091842905834053236712049345009590067902810133266711746446283211280307247564033336742076995180107187411429025295175700188888113759897245645075631559308549414668062881644792287381512045951898925296900021491437563663668429624186684894832545830928914128347181416047343959947389335964239501929489132150421012153870712377393477464679529323323732038219247255560934633470746231201123985001723682755338869347445029870028102137727235763657102979960073692568550746040734228463342897034033706809762473965111987722144120523362406739587766653777680770687388694234804443993643701521686138299838876130267356966037957255604769341912911542222094382951706960444878466068357803487988007299774243574475356068761123298109948720695456519128463472347823648743046947661087968780924767361429843778323027496413816237653307140468654003883421979617504643124129846549919339691754211347568301498973087668934187046626653443706092530609258013717377621076015187683097220215491416297998705183100584257630228573140279521053611998786176139952222347629384701438850246630467264389639171519858952512501047065873597810898857906320263479486095140161962311254056253727726072088851560462557798063244328894568927642846657168464494472042652687380490199619655981245137952531608468166956854876436641595977470538660630195424651219299415103051997224071881895747629945951905585102714261706350701860835278499181939152110904564622889810568160870534923664124310077878167465808089723700317393291330852928632124161013212622461179159006878796173758671914249044272873515485294547114810968052188840347135404999678101579979634961092034009108857054121552768702755780153374592212757126357668330997711435796719374928461820689399766269769968546200990136616937213869364716301359612882561566883153876910600304253799407919334521151156815140480660149501984060994774074977395406343727991847818579965450429052362873372022250874606309838817238952570739869934746020244675231088096044928774666445695281314937394391794916002853194756011816813382414568123834940590864742386774385621840934216375280712374236323491081622140793051068130220487665939789096717085335757046618338501457784346613562229108130146909434473776979442156553710959469747355670871048458518914438016480497618789545492031445019080012175908015922901904907762275570772280859717394700351240433726098739815515620562368656382862330116864119322427923186620957900117893243667915338302835535399990003875274745859306178027955704575964381221864317037890344495545821279509663857940466992656049692885946920817181051189645749616877894447119950859934489042230006323202698912150586322329366442361716892093987251996981498337529356238076916343550320525053791937484151234523809456206731755055032212580927507598369661860495449493961678818560074512861045043237062976023839695889105654843606793405310681953941031709441204726297411918446449802772900043074744271264898613184187033886980784675621841581117859810242850413213254372685859522421538918642543216342889875519206955102123237430546141990396148637356780530112831191964176474898996063099435219045593396693970399309945667234921395426827811674707805957500446713445173088863587982976478968334695044785042396412498824508673969422201393359936176717844535875339723253784566114213370165974665387373531514894628719920346991966051175794964391370636549249800423747318636414129259705466889138814701339680708171281051252089199053015673769495435478812947445234011670185520953062496500374631973648183318342674096702683774903989246606245568202091709673255106140411584379371343635162477378066901516017909142713355869835163832887395345309970356171403061201486997948260922886346010423471598699928234850653828156575072139738208657554925563394837112578296144440684481907995775953625574663957027619267663412235324986212695449005728593810431715059736462367966568389067123754768288854912647696366532726368646164442063066124473900936022640497290743987987673121947414005771784858801852804405533382973447615368934784867253768264820216149550108253962522695239279282827078210841489999610640321904553075118417384472004042147644026869617061454599280648024569567847667906023482379106983023225357226753808389186403428225147104034708575140235343116947754405228581779182454745563109966554059331171627717405090299279315864487586709622112823089526035974114500659487206559920750864682046775225698914448461431160740728374778191999525857366952354111390824079792610248636824022283075018076698093481388510663482465123263141119565008993842838413132430790388384638846104298237011388656364266452821679230334812284602582834337118818541055516938784378994994243008585072197948179272518889088824710988093014117113006845253179485224400921956156602520216978610157796731084326795878080971811722508243991235381551077696615773385110376589399509078887426152500916418525564683251557692965707513944507985095860427491087226586132963026504377527078916004672586412052868490215577101521138302193930466315148054710110769095910022991844278388578328142794346140065284064983912971673816227882506410190148318094269859734745082440594830159656336476105688184973267561872161118773477540308672931470710518052070929780361059964981798680280371571153260789396470371613786597091043627341808109014030481403470795793411264098921277337665501137490486728041369330021981188207343104066706625420128554682028404520948339447484050890402636770360167990701301304528237172486099822717809366451564709072779200545605242324721604525007607902953139493877450197650530005553650842588246062818150263900250914438429571797835230179364581787794966056250569319747373403740575591122965351032391837910429341985416943440208702734936361969952988346080106848163075484363446776767773376404908329774743238321169267714469353935943786922113894860910341015294764457683054028174813993401737248272947042638365522561857665851797321560934495538420221497838809345229052645875163528268463839004365529314817811925141528398907026227580141401664245175883740092315332127577396598223450536499969925409664111775676570361968775731821362263409706505646585315575717853652776480198141662859690176208252520219367589861652445143443315015423536131631885861647872484311231932168359397872765305738837371879505022145882004754739490984750834664200100401799409353776712954167527498405341002697167216893417059491248126518651786897976608221142665073245346864497337532818579755474434270089349133008905515047116316671398857754366251526449893422082306201721696094940460172800485676920749174235099798041091143957810954143214921635065824944888798173336077515577059782000285554180936782516622208445193454525912729839171750539963156235130324288433073659668954753035796650935935581896796979576287636224538297527199789546062874778671203014457744446221234516332533136564464170740816837567902812211288816670844038126745624299113790957833572302421020469030499444211419784522857060694213933084407090024774482833749854258615261888761989050060123994018777870105656439881610827594089782007329842137347381527542159537664322823422508605371939224788508791467755534645645040175459141930788547128286776124448454786542890517336373941158238574368406647805296021860608870476226227161556251490109157887768636554858916714620321866435087198860476346109655036731904094528409489684756314125945340758611509193980272624355700771997694891941255728699773146480241597660146476247111580216482156622931841955758973701017430732434171582121534890042183640236314857577722590703280393166899679984000201702438856010045726711229554953543875348990504648665388533649995129257166589855064286252776305841159014380431763528780829080778322634153850186108479557614216965345594562839441164743045399931355063545130774011422951724579232954045796515785137163255406457334514396743823953479531280259891838476917910898720873777555382551538682882748348111325287748317696791619895794190454527120411451508213061352117005901325246150992367461558325730779245940505058482957140837642115732370819678885536805701379951573876721685590586847975077238908838630430334836290274142535548750296589852159828899483343830691770287830661183161306128514773886970386512173148410540718829894494258938717617620794456891083722681092866630117625846017343523606685948141774242188073193179046389534045667351079799526728290766051094274205894513094270128965501052460829674625539716183932360844061653147930982692938615163201438228477798613603129586215442870716678309549995234646394593537248909317465269122308524897838282932800506771831641337961589248989560587314078921823495894193819756489024815553466638351756635130012395938051534151861171115667507568707634717750736484581152967599818455694386165252973014879249880674423534156827276873441214718916438651620072798977701055990365517023068383701042641823706607009955383870720548526037718120091177949903704044553502211110692605968317907932568957586507627974449142260138415711368774374505923399114739523898925651854364018350743298188568349764338166468786454691079150943950910254659381246756050602819273885351082718257437123142555953041675032842360026297913321369601069111247423461373091690162371202837795678581209407929506756155494698116757383108859214713056657523229419077205230031449741275771793451118726378397683425628502098443962712587696135284891909158203602877785130814603391028270692176205585351973218302712165473389632179099402952591591645713453192497953775816142819203931795935018118059208004646981624325688245097051302862347219735189494730521857566655243730772060137778165413886239940405095126079762261550232433018719864530150340722196061714122149399740790236871805497075897379692640560838295069780508922332949084435471462711201910300519231484645171474995176878432254677621480164825118856972119688166638520948490721446997520107396656485599027364082831741928001012911178519444296892924848390535667116197675943758039585564744936773709756833964823814397769260027898018775261486961884261769852103785651746963031495887301132180577834369003898835046793977706011734264776356101968426939184688874386154218020996259911768720557016566105864782895247361106144219520580362865723114217968125074119952532877530403116886364259462159804458890043401842960781141844461383422102717678217606868025996472655223560452255317744980684282397796231268834845764191122469254067551834642466061839741184857812604231841124902189137581938532987559898333745419012952468159955082219828087390818694071851036423890597729856620756305069653595076525624985778211846052339222691736832691300173229658163959112228266156579556960047530624922013308315205196204895770008940925641587820573531520902738284624570788557742399738246759364332034444486608847661792334525662855270082934038197293994600836528848073716992144566368635284209115052918720375397472252914702629333520722975309309802656350833598589966668765146412615159318298208893291991156708683312763682046326160914025930539175486822400087129838553864200187542824852358240483021389605435458670376679142736846288014514735210617546244554321483841531326163202030827614265064244144073019142760731603004528989642527565062704271653741721267519738824342348511155522697458188524141380639795038450910402104011743850036027517243213448553038282239720591852748962952907093079013037417180495960398037857547691445414162773655500395901686506679771839826659534986630973642463562527497956591651204872639220001455830354504005896104437891046892291988548235138556108989555390313145216269765931881810775519694698850131194487758712895179783372328418915279304297045598856130404682224495069765218568536325842489760962129402428182923358093636591579695752420296558519337782989752288755662138225605245880421140212946962485413600958212681236514206608974608176425886028851161099111217111748365327315194483318676402818797550390855393936400307616096596638817089722980805067575873405189066846688469039458261339599210440116499742871480447338345176668497409814071032280776327301001128517372045919702532400177390207054441124141446664427264424900015378999585454190462480637963903066139074753991985279812036243053225763358839483791835664805251276357486959268112445177730437406350376119770702869748032516560248717606966357047693720565170765571251329898547181706453502181684852212522557691983208108611548063302619128143881711659187004891573808823606735242668714635561381287054230739923368906103959169163347360285754369015580363734637044976017008368981763103606708545950838498260751753700324761980038698422548916422068997262881572531538941965428484414142791720813874109667562700595389737977754888262072031193320317644784040918027409185497685853597585373421459734613838886202757819536255811681551452984029461310941871493644934005018200354795175005898905056349686337401204931818495380561229830906242226395708829131918520788538566248416208880931016924608810291849951428984320108070473972073414125340724051240739092925634310992012526617781056531432607529663432129379760596226104346946881290319731164814896445747208231764692063683901219068105957534642773221777980215703635904227332215015256319189565525692860474770844085129274682798335147581746547143608147657187877186276876816976848874402659009941295614274916370604442961846426469176894964829125288210007531603656434874585313003822289936255208582712156808821243131602917105555275626491436255233734345834378615455163573643596114055983462202720613585853050216214384830278466422545874793407174038629713070573499910173614490993462382288054618997071901480499384451387689934842291468143638329105737982576402116538227012784037591690690015058290296724054596972706199984396815497139128316294894508101986007159000023506645275143899981157596988983102030275038760747209502215371920800489085847051971511427372093694069198860411400692026594195918288982323242678406119473622051952906973574600830783862426732520999080973370032088499987401675681000441107248174178457089695816508605530295294121154349649831336000964324526479256079844902483014623366589621120449049941198402648188719821578421949644167027659635374676749494498926401765705424213446504640813108160093523212207295815086446529314249993813693831335231483300790088692949068172131774265109144367142604961098098759259550903021961744553942346279794193149509272521053723021992082627573265068211801592922077281858560526778834127669052571939739472519439303571737145793467896147299749754239175111138371622002244526361366287881908773564764864163463562215795688046789605923233301054365543910072010485285230794481561183375254646638719439186178586146128088599989848458598105385777237377439183812416531844677084919302961016772795740808220504021853618961929518673751790344016593315585539048930881616867146503120351808214389151859907411302772210855074679810983877298928276812974984138098239500147514423142645457161967511203786407166220522548602775499440647508941918290036836459405857536457215475954593580368444854184412981379354808446123158448357159752058296688358953390200075445848062145286535602201992464229564063512205701977098683009196010211128221445740673878703220257504741642263086496885697561770446828489094724440953373994897830664120283173279994254209820262968446965474059436703086368703976076359356619696664594830220094684385847851475953871614439227953727643963598813232169070801475457495404227378964107381447300623214596267415863848554240692504280978393628971173832719479060133046977530181800638744040028276673279483369744005172401549277914583125866921561415158302991643670280294716936848137583999446971094200221945555406201371178268483416841896032689708191961237582394609069633920940249240591902344220423810085700408266594874361054236584209383550034501140044366201524656494902113892022082943769871076838978376046394202855043396247517835720378667181917747680185143051081667806435267500086694472782688007223154966990714225184089751966513476218495797919367903281778896002704467547700002967684294855754814633013175990706250262295423865833195496994120349582848842946382365895006429044779043484367553385651034855531326907740631939843380570235124817736895456317626226568028518426950881066368369501794290777265597513563575028607895969563179390882138089972450478396199000917751581508023361109875931703604216143801635980156592650683802780998232599227910466394669090174532570763176678389280365348073867472084766249112710360214972050944557804618252434817155222189933797468622947124052763564177137219955186032666552891467914186252551779130197122982491743187500708005831560223624774861730057388378042510252844071218927327985228113421883608078186651779665100461939125656363524455078288768994889121091045332841902146067696420095897899207559239211163398210465652046564687510188780100682381175420791767486384712301479725614808819887659971465299131927922016007399589143081879109432852786160275554157713258507728872566808239110456992201339186860432558187466686659577765570104687144437217948707014865807411625604765769787111942792867207790185640903998596696778561405382384663461617108049466638393821978173986251672921884502014785410234841039666875787061176181897007410009744521804704305499961218566033264290797765167757178035075011187761328998635524920788162444741763383677709129709599646891354733812674073817939579330068498429225307984671016582133894869360746519851390760375691358908929826366220150390427116212943858214177837674749887770792027911389086386498939911763668498906333961658488832139334170070684498290931919375354521496405446777379366814057186825456718274478299059189163941432524074334172231551547040217979665563212098301766586670559458738421988351987067374705505460849239226030014223647365704769496298731151451668781008726941674801587565289165447311255376307507778324179590828582826318402153120679717585862900674909223534687679175537038628543596651452575826246255925873985573179116124598458042196330194311839726584086879069688733092494669039329098765026830504896171856674357438156884120536104657742584369288434866655668476635783499806210285893354095363234598834103450027531919926562923584871613008705190157819677840459003413022885005576777547485582710082100989298271867141715879879004847496380655304023834060202008730350881292193561829367506582551048490684815296678319786089364260194559338576703258284509084421523394627019603320645742596259695683364070581100891851684697509434979868990080074011691441747361673341372102934780685269848172401289011241418282227270200128736821075663113554524641119224367522469977330334323526393857306435139091030963896322252208622004047443254861910448608062894994864784947865908634995995885672876758671099361972984362674065223021985576017201382860197084478415308310633976336398873650897254139562495914453333658926683990703840655850410057280425666543209556714860403594862046246089897405847105565261255158668460389476925062774264562781214048895053599245325686051702265828046781237868906244972125183215860102527935776473123656902335401940227760044836939825305488134511288885866846423593352280580062303139992566742517391015379956148816821044731316619412091440999193069563422971833704541381079413908991119017003015588238185385577479608721445061154174479731547292911021244923588892088094859329694115594829688720751393449396197341069984802503282377960736103453708838913028179659263683064292279380848683006331970671783845446759580192737935102415802166889394788521635727874979389826633873395945264434720245957167879113342868345279573224192226037615540787885673167682593075316651082381405027678054677232757428946613982159176617050740665229165259057246328903839502166296173704817875311090539797625554579318035065600897108161833126798651144320194397111372027078291117153166336122806899870837250708624928990974551057243728915982374438645975056265656348775396364188148694858266392797709688484880403399607664167868260165152105350517215632087187991190347392998633290110863077432171017876496002822350625448196317556993179401863615701207813198271601204876678914173379482201431104667723447561875169051969816171240504086877874785386267545575936390058025207199492756717905520411399484566940762011124056146381203606290871017054314682586055516167701486082799949533330110560393287854257862569468159234551869647351774347746492988700810314817277383017603913157902142791019652531268379988645061842646905950944374674244392631605711551645550986481093127898521370901632650599578472811245667809541157717082455123429712878879068596320150847164102567280566742173272501722762557530416686954433681222452469062730621127369670068252151001687433558404053643692898458104077111919480498188515406281734689622642011889988654655898686281530327809469171786906053028637838835035511355014325669256927172326279528555407206050539468543844543479362978664975854875673082695873697261020104464615951235415629363503335297996619101472621395415267966896939435778472833072647323975853196312593655207067550197037011914042939530823811227773756286837359866900332109995727166509080167967649954530994795623664598573466957759426680153301880006870329274545141070056526278403477476165094193406284396755185794031347905340710199161709197199389378315830360854106399299954808177748853587224401334408430996761517494053968194375575223841792511348343402256677354477678624963274167856055813196311985791090467393304976048467066576087019941953910382656299851104977855283814260831590756130066324984042236269270731002688156250296747174159955848035353560676475704102909597861024386293137711198202398736244182459314421955333870151255213310870661477603043065060904563892936914216286387013118691720720949439943144424227025912715079675020318486198067526751600155146031104577181855319266518008156009002519074382375660181486159007116372875085278721194585452203442507294210063024837053759233649110627856524489129467003956850443180566913215462321580481759589119602808531370921764920473393317352600354669063011168282785481167529204541265198029555193954449720196488038151664308637207229086192559281027779713885474347831092309833726351875086337895793289635865303649880487131950866906947220271832758520046261056306723272227691527436401556698033382594253412589640651096152494341304642156133944541848457566112238782366458783493024980476937942712654529567350033798845751023659428886514881692715023398225121332089853670942232573168218916766933561483464451380217789699759502904056539041294591599973459443666300718360309665754957831021750774336027614207092184541073771970522358281317719074587856173651885224349033196385976704418343915277276055183995570195977000078720779621158349470495991508364224730837967311720867259335212109202825925303183011075498009236061455527595277851056923321430048895243731539179255344963898115712943554654328652239772696226778862548435936419897970488262091056578078648980463996485730058407958221014381790362241684627257001333614152872421797014463215714964795776212532534249340148498025138780745664924279983389142079002576823834700502789256867276171725100740540615883751878863446304119131246645157571188975788706306255206893484435856550869611171411922473391667235014491175734698299249834733411999295376502115862621701735963612509938134308495519985417141196998303949435885587437367697332878160707683731462575430806748931935146398268287040455089095921425356370862398411242102229308641079795635426012037964373871966544488497132746454559101654377100341365288873965931988166100410012505735791989177285696314867283783001951381806081140184434576403591766589058441747775210281966561907810459385921840103351013599289179461268114057034627302028602714136620259193938718333949766508048556155087812029812525161688747094618621654268319613068573909493265199803122588723030316552071272880364236196404048168669981768889291242899308509445667037559949104423335332612935059718918457225307033795616876953682574295287416514945472556314558313079310278269991918095939497082412352656145045531967035428923609925861899021856305126943380411896509195189536773617131233063528715896649534068206390123561678462119265206331228338010034070232855137089596953262208172179151720947704527774370996052928895218780903233183824893800881517236791157211221232863355719649938532114591280246991413419500819953673654341825114906017929434982007968858780259015047599019751519279883132838983663711353761852453165785679615187915714887879329756640947641134424888657519139400008794994401944205029936463823274310854894261393983469016975287396503992798743908108770445252912079172843153772465045873779028974367375678083355742441922942308469900699396883092208419441808082063419674503190565606145286703672654640914713586835797273857085799465428164634978571942896476741714288177659777866617175297986630478668449940402786497308085067086043790990063559075441180377798229860184306186025741906219389596152391975126187677718972594330345081249802334503173605552091563038661833115077490327286503647731453197215195818635800136883354760324758181540578759946530127372707772538811960109190336438081112501866124278597301415318022840738382829468702413490348393545600469047167470058942743843150929221251747176853042431565461473441379270191359614040961768703129768975482417457474181232792363292152475680915338205057032721165537248609000825615270626395775258696264235573545370328481313925501352001185166086537782263932200173337016233147517453370003526313861300699527586985994921873045060374238970334656959088343683661129018308516411953764040655711649959279485117148141996653418046430011822946651571632800205659791749982723960572653320609220081165629204600353818754431891364654400935432534202645824293413076624577882666682203667998719119945857515940905107351237908001022778764583600230325941225893637133818762855057682077596586294544491787546982865627781676223511880652224259151181425869866593992025059611824238348899044584715802450027361551098738166022487270215050297684695068132800017765442633689526181367705981759056167389982034033522414828659601619616962077241386992466382511201211849270003116647919028914836661818277423326301776964561266796465631691770006510013100904590483069133044635032282681275758207302853720387716105900189412289534158773187849229174240198367281320897982468914098070513528483030121588504496505939741893977590424191999375470709667682732209435073910142379160868256413491023573931069746913787095741399718489535702223784224135942589528319718739860804922474174482587749958822615769562487556816815531394785319168628016395116463984725508615702114617980780260582113994347927552077277693227393922784947605242980366632873245841863649115520305935592426101216869764609187480872765487679596946211184508221767521290632014870859309560578699122371160274028860446822909346391665594998263506655382121760066164673819147415846303135269206760316986763061490212304851798219276137595698831052834274136044344796228937605526832404285118549735426201476166090837057863358710060976376664151479550747009860977743483520005775417550923222445621522454382003210557751010521655080700821646511049244103011040987445145490982359588198774969557836488367863755416695570851156368936924172205587008233737910091883342625123271367633130461088032074535769240182274653308361973810694526179649676761467425340466710967151882807075141614637045493750270678120910838148278131729237784909497668691984681096479359999515839146230512699025304565605753207433564515674074825790399052682273630749205959054550678009656031374951559797055496750478728288267400613977865588381265114350032004360114253581027743992067135748428559516020827397342543987272974554561595516292261165065347588877416019838123595124388317313198597467621574634655916705845946341981197683535963145861025732583990779729023211022146543668632085890564054548362884593322820615913523844288953252203913356617537900850234069764927326171281946065789427641898512518047745984481680750859416633260509760182994218812047852364828542360225757029750069800656360199425041161764883933666927824399493840154247845019413957863058981876311735563197354302654237557919794366859823312843935986064476606439539409515757296926087513825612486309232754262276383072697405177238210278933615792633828881343522175849733263626100959515935062537322366077461594031445927155810794826743377542535133617032927836784356824911339372953406136252691340371809652174464700523526232528805437526053161413033881610070781355928956735263341528844968138370592924238022284355835153464670241569589316749372037670174603124158535080534078341915877637824570193411221608787728053716692407907491008487415482359037506441130530437486219396109889137079319624660848762049758173744761976817693567197075050312309916231563897461254464357438003382916074726929258018687063291709294666904055070052680048420739873931148750525692608511122773945287700988528136306200466619186550943208316828306503516286437523305328920328149755391620452949270783338720771202770529104833602662577038486338348759324557335150331614346702596295301927868316010846117642402169865418865110230929699412533244077081891938615287153327749535497652475870356759997186416993380974841687284272282527023753119224431516972460771293508649593957927014173477822404722168079436617495692388295484926975983127970305186550420832209070858861173500885250924747944720141146596069669292404300359019342909480066772529214400290675358963480391709539778511322057012816046882054665404719002465825846345948726143356880802055454417993958041955547964678197911239457675556645364923336138672628530651580183972812232990315298209769866173022515929522086373684518750945022620605402068352581900017148973696177402917544048450510277896329774725133739648581779136744682768369929439863647293972002664518036102989701410062149301002553873760103429157138545028994994461202160801692557667421167916994637988955557637179863254327035350636794021924957596575143895108881418586431419982363778506029833910996102646344912470691317753151209338375920530459610168177205552041508368018185780136186946334303779784104316472650319249909127948725978003023545498733516410444871912392944966188617260589737483608125609437317477886383442454769557209120921933521952761743303663264711739625674783385624094389224308528292415207048397492745484754633311421464430643462887711496324427218083684564520973993832950768870959423050896100533323514627027307182966504349135656540419203630973308200206499806025174190688507383057505523822640718818146788744553389847358083174430457042417578746457017194118832556232243453002598806701831955946565701948839208259648212643748046088254406627940395833438675920086232141043788778190065401028190343347497235951785923475896747262339937667679472682925846565630025152208294821815431017245111524708292477084364491633722660410622042269588517484944975322949307539759344686810574721199626585249886025932478404936231988576225280889060283754082152222102984701069044813176311605977697717496505639387977893930849885408783847609040385769525119584043107413366199045824867422326655234372834599987913372601506423482364732415955063119601685159439008858240816357202564964945779644407816658332440092365558642694910298741436381479065671633710600484365686911285014851681297411197583781455404336845591261414037075767965940001625075643066431053054936378527415162251948816536987248394975739053986049388992521604331143811713875952103937671275242555895311906493471464535225140686864751963090512705805887575933597823889723688693653127163348142374940488589881614018169493097926580123727197186962527544253039239074447765280374938414757018373099932545291282417998669468565612276456754607696368252926462559457311200631642319435823265053184895448575804489002008546916382834248342946041595521227513410717722888766251373016853097442420799523203210647564497023125522612721993464240639932321420661956599471098920667493047381036055513713775009101234350954570322506031231414300953180063881665218974536874554970119342216191238990587703838077889606083427199446029195489009464787332474654541396933884047473038565042926023528653888622975757906096766753301449615245613602772979456069680255157020401849140684661321059019551188720090981848807940663903344676731942787081780781835647634120177967356451632494123472081487321954041318569995457783780004889773275883891406607199897972968963997393692131245514533681240048339221734141315809743695042880257486786962649509206490447240489485321543715606008456647941958340974989509927068272250261342625857824013038993261694280677916002786387629163882741461516045814780201824604558051329085945610307299602062687604104927529207397949782043848574966193950979743613220931499513888983315007338550604624678160845268003731984374301263771326211906405921955084535737107398637471044310003635618580472691360339452739629857701487893363927792738737577601510237019863581658743068966496674498611111075172324847795581315243786889978960053063240428634344498288304270828072333797911172311269019226222240535209208129776441329109447879942971935247361296627346525019720122196426399191647331531081430458452748267514604483121796153456836860948304087444373797255408479706193796345646003638459391166945233550759748759147177616548239859701651962801677865535746269590886346340864867304553034843902199977902719720228544863726182644665825253791603096251966149352510726497669035303024972780881389875841906686547924041454125503232393741722370445294717643450889118622690050778927255989697545900432849283036428409398362849407001373783026234045076731779466625929090097907326493010835894231449096053158735927514674711012672714935795593384839578464099153273584353933527073032673890226092756268544038991938087632234864938737545305031579618276977971864597154259303006466941452230066521552613674656827033507294893211247271200379663465767679470492768696891959168069110380272859978301261525864765650863623485819589959130218815009240393061555541147466322017017038010432356774919933623057504342502400223978808563409032132537439251894280602367184847155106917209447917019637044879473006388897864613915413754088295590106165040614787520224983709317361735545175267812983676937153932094980426350631701459035033511251884772176194865569027615172600781189432035578544575129019679840490368936039989600699486245687254827638760722435005472911052643652680875493748083896745510578809345329802939791200309779192414857889249121663884187312716923144490502729420183648887902220789963396618856032841702997495679312149866905306228076514411295740683951272371044983963040556816448244924088430534910969315540590554058633650540320565111725614329412915852364043757545017258147473814690992599374633894228609262858478563202628846471715271088229903773450952579344836455660108494134575867688882075392341761149183337102300911079473500447205940925061133489533800850800778845403698921969837804011083290411888144613032714323819129972480270847928424760650473038992555410706391687783566598888586980669488735422376103913855128984053870180950497092654496840566550939731846707597018115218985273370580360578920997303062178358446872875986975562764885917372835945871760835972788803578610347522015981498385757454516619059960166835214113638219128588115025200769093035610743927513328331366256158165997398893641276314309968571576223689667322166149143514086567946013348054789905095531771729222631763134464743774601364072210987506206863752326698526012206863285097139813604013993972700440315628001294503695070570237882541480015069833367302197800966192285129600082615149732597626097860243453677282177165659693065765496882420265862526802704196153733514678128570235290898904852754633833887082724942210681638029205403574725476312049119068355312629443217371112839031660058012604156510134733220908128308524578558390671550230123151767882469521327157365764138526699407032961348870995877257963921059011833073456643693324162582895499784749456506168523871515243562878357916952026131452663859615919593560783789484010590555331630591327320887202529614781654544367978041882215831490320150970634571491408625882966471711181827848325541756651928051155944651622195177584030278570649472506683887092800973092146042512496323497412502860908416994942915937775318000624803967302411420091538856541112376769921322655007493841275849648228137043525053303133864113723418493775930520793021477542667722270523903048945587251742062306645813357131447703628482853598060784525352856743957554942630192050182921370047751848780317471932524455737729345461422528819736372752166207044042909411631405836728485358693730750898523715898081449839922297534163020041294733002666350502269551085537702774373942034162831032671952669447505403502267977211884056459504742815695439414986164594122464141322672120630271705389242575406501744285548697359051357673398691467796600020143751599386626845349414148480034429616766262310464886539579164142941579053464625946487989911619856793012573253994005691145682776483219490246014446374006516615444888015963684847733086416826645481712877783018959817943239494670669580190379693338004414426619110175115676310842704469900883233369338909111947121012523946599155583836684407186183510547611316715365221888874199136249292285321236052917831431143424764504006863481992672744948923294025796197776583944265536530025102927578531127748842223471300680138861546538128998216511088972449964454288374766288199975448045007233502016725461902403252669018286257193480043539560085082183356915754550657260110260096713899209643227760280476655784990476829700615951000326330012353439041575636426769086705309304201365019799824945357321713837610320672651900277885695988401665632200707037878604666155715520189542562652208467722792541017248006554039752581633940442855168657557047347748215534405627881957592641915974808653173230489203762767313369436813449718942824383841015483276265839393683985867258198031418700208608502492899922507423077911923555204591869464001620046994575851327240018429640484254422997980141421521117062575709419869518282279073206203592885942139251954105029134247722464908060852209868093124050964839521824054656673520748527148603910227060848724247768279429464453667917712918268502967140029315947122745382486856707542312846197577438573271743909773260739707627563715449975794167951486280630715918671382571946612159888411117490427225667193218152569034943390451070715640828589078386407509182192795619982294673798070214517789163749321239203596560229794696782504471445080388961090218659968569645895597812060750432947811085932373965453734282018582945440209090152266197156854254295029589821724965321157098295828988834324698063906408623891720075950472114575267845831530901991268006405831869567037488870562595464000919453568419711383946916488289593554477979442420176433749927417481643998650856912704550134796839000677832710159386038359765667130121944113043729637974200907255416656750126245358015892708084763367595762557927933608493258519114149973455397179057231020220937642002908278866911366511624543608888039998525652199691891675420181581793926101889732205251633126703147286109592538189056159186386480383783596136452154631094130468036256151723767304055030204874828019629183993457217658757315696060054095338680147037687331351152980967547850108060376240156955925937269841049042411545426310978222634129773215298441329129127613658409401341257550090504359013956359748855873823189580862044837177477865112912961734292192020767838072997729186237808044923920842698277651793132720412339520299703158283565469109758896111210265273595150067866053210582628532665543299566063151869125768631623752937935879531199257714807161359134728077338506650575262230778914019033938811013094051238036490348603352461309887558450477468628965332653511356526970275523570224993922058014861674605609870859017497337500619283454389061609635611780580774140536763001305508198146009947085108070810427996168357839673834494486368128360437335289555430578330601259837965492701446399352620044112388537326688023531219569174681825803029191843166556966560532615771354258218256258052129077485510226824066245332735015083707050481000525402624225706944091245061160206047880467311147203238276566752706174924671191969110631890080497941146764214163599393732579553517178392048277361283428160754306685557777164165310634800806823201960050312085289886651408727160097945659548789716173396705225681992077752416739805042641485462606636681835261056145647866116351926736907276350609245421736044938546656758555282172205736233591610720433985003514430220375853331449754893898479348269098999264711332446277767607462568143595178298685151309693625129868729778023176606746949209904755181236432337014226959984364041286660022379145995096694782506807714475486472164023903347042918567156360205469718530891708048204207874519005931165665499480951467272373465633820780164656501037058509967357308460937973744277283452199261587444498432327588464174060691879493655205576235476488469636389892089003815686309507055767238491225218070195055396305149876359188480098001540757214753967971028345002835112908130894767624951391528023094819584224660756372710519249474234203171465153166258385118132836346726102512748975671860715915362032415946494980651522175995767031660089076049211268651685239549361578127106017703878579277346056511002715200895029779219283575148295263498806570709992261427249722033184073452300486796280550150369031621760111214549345342893733112605715006634360588931404530455875048104969537715636822486206648433632484320936410862685377316006384108162947851153382188743471266457400037662779777982666203946644234277822472109243957294184910744711003162447473322106739930003123914762902168813030459503692870312771499706841569933144182268925557569574200746713791701638956182255987346999593586346315804226941722043559275927368522645306834304758626203680316790297667885756278515927590859579952413544009625648215723234516585376166955814039132841052641643869245992833792784711294750703148115217392983564502867388920906307262833101920954798352634553014061544377159171822331634284301517858972563143200933298637471310366314347209724887331283480616099018172606725309562983791670361780296141308649302679697106351399515953120564651689680256980458128560181341861927622555186813685279268934307231279219532920415248997284812695655975190472041147981742991577358566891481991583960740906431754891830227629594468687051377752094950845105065842529459609509489107830094408516332855166172281697194105279360953478656862896591736289920021530440427078524226325069925058056149559223150482972916718400903105287906196733414640465316274887271036012852427538265671781707651195016589219116893885001534313069206312463880371628307116440582670008049839752515118573188611286443733380484822418380703733944698641144424664524447984436664691429756903980266459377190422050811739224474509089383061957561155955117934214415804432691568621519642375544879038869258883760589813450342382442876462310062452783294665319596585711782783267019698453895104331249881844034588389094216874186156221126563874530907920140679176380569365374695791459795915871861337495800468717035834293378778171055420939430228982305997165583640913212513586468417751787753569968774217095388879022591171182924773374927585785256544092205111551412580704697357017032463558214555516755497100413799718364593927457889130442574440689585388607457236647545226590934667755226984645427863730689533857171010077362172018671432691819176522828774210097260697925165568383446270243922765166194496364321829762263889703295447346819775263520868892687491901822134303264468989558910904162458058839609224905859754015762721347316499685625812975596423215502752889654959044781658014505035685516783226676816794885841719075329763658367885911799058721978968285221489536110506493069434490737928730529788568017629415966561884163214661024402351871215923815661446566595300388873600643933442523517161008274387215019249599592776069923302747892134121103992546657930816091997841635293708332104304399662677888403176594645574004940895554391167601521265237344029294416063606362207996780026513885284266629736543493831123654205381172618859980854778830828203576144574602731747590035347742661629860347333332325240013161171142871253653879827170356249472755060467269243362954888657665579306919955548618369072161509467802662389825339783908353881676281466011904607670214674245413812328369567906252811731033511965786494003616050260209638441712987172917524250685011619785797161592934987529892866241269618263592977016830410187454222102894597584825458625918812944301142841263682711997289888281181421060709011343141570340308540236008822600156670347629032408560107686562796225476589073255878188535371491697106080315675987500693575835649773261771899639266409540832886872872984945811775974959426042364860761584091533804921842292430791809003584030425318610914553472905543932782262008412575524552403644904603543437936078596635726765144798835297790598802199100090758934269495738143415753141914322252863148767486778522594963037173742628708669138588957954650398265069541151556098660687833055305079277748575482332232513966912783071980580751622352136711127318731870124168249373433863117530855715384985577594185295443356695951777722084261969124810289611197411390194698637660927295208310326137420651987355985153216743257732380586714580193263580739415471226951578019635785192122222853927330565537386027101930359118806943093285686891367328977257637768086033243929512417613756018240616305629115731097234916608072588444164190015420610158112124375587401203055636076358454168845027658206016682203572868160670035155752711473433446579210189214546961674842806926657159280124690121735038432821004568562004872267852209990060762673422048598310496450149858686425714983768976166044643330677955920628841765596839171657688626745416522943033668596797032468133320133044907348254338286889091363157678278446059270524149147365040934888858225728068588567467225076140823210832060974693163933609972786362705344885986296677409723543606313748438341264332914877572282422758263529007911529033756801529456472216214898914300858809789213159999633321091810467971916649357232374993026525011655683708850249329440714146831277178820069817020295867987997978458136089549782628633154517046701269088076253921000782820358861073805387370819921427026191667929066253933711340725378382167031880866603139566661955723602320032089237746517366072692539921334277680203139546631676699130286653801320087357690852876402008971390483282627681581410222555875034218025535322042445346616098384636381766730252547203159103909317752904465778347482328794120091814044921885803002124896202021938426910305642188554009958234934372021027871126166255733170241361587154477003040367018432993052798450855105526998393859261904767381139622819291467138088886797380854178854630717307957432371479533525309893135788144697867404820961188524993455620940117049922395330408681519221292527574422667426600947899075595491971164907740312573069710163886307680331451597600037227417180764638342912121496604351464140531258110856297267122345573119945472809687162287192914282773215472137749193486394697461562551672668640330753923293195611045137565817144784827644878148569279796501687523602034354804916118444085055031465140492287952133941892981726241223632351299812694013587791332689570959357172449434607639208589471744207263815683918411360710238286600861517981540240427883963548932063237738372350751086309270771652960877412516547629695936650763979773936616124420848206886814805741349697616193105838735004162011412823366489464674166587892805533795175565470701316704159026522453248494594849738129738182838464344976945353688355283926455708372995496844882987961460389296423872792929172306441485882919178077412543382422152022235819174167433080738077273060808730130890462271525120174282586438822573173915987391954155075240172927682000189981549095393133298961693526666663999113179121609168407212557494683050895411193738425277919939216286908953212434054630510935993955972249019939331572713217224786531764920527218595592203096443237872138849500724202975042247320136121484367335371314667262907024824190115344574803824133673548952292201297068092968034052493412941393404083693256974897028355252502856160982702983111508394088442638802276670751344356950190333412854409253122556293347685302018711100051632070687027381501525514718086422328433019364215695331637800482223756434406506257162991323060131462789790727740459144046975789066671000097574242512506165281456389520007914832594346287085033843091883451325310333360880381534741515051735347946695449714942145040410002030915802917991721207837989530803346320237669251149524317579276387928866777323547344501468535106865989953269126143944523280734469582212502496395278601563529568777617249444513144903628459175377723265428572355237108854244788169343911972250164632289715082095195250492329733291225869130139452675021963686117299459007768419203411349606151804160318909300437789285079526173219787558184529595217955155726615440878780484835332659489264162147493442344244735512291476383617551505192981704266271173623303872867495373211942724594570007171093275661539263190722913176075240256069089745922586269633272953398396250238866079646117567298839919161623947694874258211298391858269191671641299698303618967014639371045530126925493347809847882404368199551349765178645226780719997169864270364398995944437127794215302948407930188761361374074850345521772888971874510648555426998907722485621369950307727190130692492055264356853307843389226651036569763801476154747301241570472570119640808773201396546102361874112126451354856882085548955540962725520683202209308740321643131332759711335722097409597448734177064499576278090830009030006029102206606199989822917804862839340488377263176529514026026476539789084819093663807462969904724273235142983169028978685385582705099208109244596204096880277928387595143174288956945892942026404534582198314916175117828859878879460573778804809265703058952853852209585877418218000520398079751639465931077883834847315709499172157215855662750381728830696171821290760474607268555463970496884152150334050631228852842825985532235571397029526222431065935266775064669777485476377184902250064430259812328466126215995238706098755067230340376043393359167918450223588954134778432177165038698820773261979259910186797066972314728312714323385910456713968862694312842165428351731091073892639969554781214177233306388651999326635647856303255424771908825848308002282077197872665470668324295001117264828380529551179057585554328101990115657037916547272396700148102532118806629822106442691369175203868951739308707606921855569431411439113249051884490894281418797891659014397917736530782246978265007349742146105064432666153139619389165803781165095778907086873860556131575678079904236522155423237291131585431566297012989904049397714626081810894003920005669096276792639611229663629378140954987797163450674065903194203469649727028036843503277946897927604431641250840120271558903133386317376911823932266738529945030217485754083102122211975716915248373967436188122191813057534442836494566851647282262695134811686111140350335177266071821688592601754009272054111761027027067428601825839842694476123823280670671379805952053659272272535274686858103067085270952828518221802228111807254476035805657187748039504379970393000202316469780366280577338021749229352507485315220971075448407470791912559652271528944413457591772262905880266763858341177112100801436907259395310643633156085481750682575974991999098726658646024897359356928310135654317314226599444051350116047959818476279271203150991821639198775717700533573865268872367355555258757608258686045636828960205413992020973524259849493571633678970603946228024861148598223352662328212911727522154241163043831821726137473695694951256226397612576220889488206705488244015427335718550924663452287163313862734536202139911892905805500993012523301031004238122466176480555386500891573395003234466165671709946514426509971283909470184299072712720168464658330696181277099689484705954657901212398695255670408722396062306988065621643073655074680434319947083886823910262693526783346317656965536778052043873030937848200767484945457196479753851752941902320191199752536691478582907443676613487356148073888067580408583234519229695338203106158284185171306572408642537401183435925433778200421362878867563385152792056046063144233759609805095233453725251743875415794524969602221677434753236984143841830483178461036207257623979878014766863044748917373411136987540874224515346982595275125007601536400006197919090723306317630643119121832737956238932999482795773878195391850669745331708074294640127386126018243325193215666457033066294145872179970967481435934435627938540267796276363434535370680970952984582632473063590099731797410952608617548664788514758956903747046743213386737674960280754008996450530915357708205443629256754705012406902524397712322801375828701294918112181091068048662224809419940938226116705984823359486853490123616964310786187799101499676260094176694639834986154312578510974739780243747653561409343457399033925745942981960841020684025120599089262861162403199910534561079033108985626846840320294825377805722345508843548489756529237343328331633722565726969778054625380796743763400500006433349235803137037960801195348398363298952052866281644966940793569910779927942804449713415291587629956770276476875632328562199710022017485576136732205834750590178436736436014632441147200924252242369172483511716179112157985941855124265862910897361803019327304865434244012944454130268256145075224984119878606346032026226554045051148557070241361540839770283450181561239555455424100868684026688422009934217274012741887392460374009082114744341011074345521342814927047160707866390539528491139250338184301461797691200499189840787076452980741163051755218563952465235570484205665297532967982279713621582478253559494669039266393549382600505361219041305664627672997662832291365701106737323640360749710531743220474363070761821665077329671051031032698722448019087423915534764304575442091194011043916123026522012745553342187653751205254594934694619116795841462132810135057646420459092213649096352817439808354334180117764963374294868577711437190008398582348424471842026141008906560871983945659845500430343583375223180640637705227608175898678522684168121151621828002467292986834159402052173962772628452719073926808981578846439487473619152125970578227593818623679568134802443868002801007430681176579346715983967983633975168359915541445331148113913868022176048124028285795518587144964454048954725405520247507084158710476988335513225802328903516534110134113796917900045950401224279742397561356940655142039435312084563627329099981668407255354426390861250390217112964068688451342991086901875618412660118042326060061483965361275541026256799823494044910551284569868707848815797693337562296240115765746955214186840823321647926822733387117305553214143471285035260993543480702796836051680123637738049475067890313079649845415180644320227411441061289390245760284263787095268378213732556702577581807233349005031100327794980596908715735489555305916025782970757647881979761029404950318709382130285322545871289105824490626478740755666507390023095264461344860169875524238505002384851145504910561078675986061333450631582955418449111972810250955180807781650854510520985821581660687969370437372712427145596078485129961199748667726285624437620160901246701197957889924609044833048941957898140158029042261444688611139295928713803389575687873531743583624265329200733392258966380838172840420612093711270957348015491635569046377985445764785767539918772392102701037474046604534735367636825642975459726765184161695017000699250846206375284086090372158291809648913027785742811196894578441250877201340189378317167895931112244446580685002418144632567206786841220501066686878491584638519194101794703425328258760510131956777331995412446854485363063194831668628339772718545367750811505303689818690296723651822920436026275358883334964242498570153070029661484740717697711356696524086641647194328675122290435961634128917736212170837534006110989082645314835856194024524412382437917474698673108496102295374216319512932290528377128001705856425098884290835488433248910013360917366513602199290697151258620118677815083183458324169324934319001788317665122681414231360138242056992670149838974777462480147834188687993881390594343187136888942973709165858662345385536213617739932787332646992306952447918933660049327192974131245527763614216333425691093980878032179739603946842754332440918548493956664063963398793432732676029119111814968293298186383124809564581512698948331552163396860886926431916918524544329165118315988219039812495901528620616140624189291349273254208305961446704885823613712925359995093795235034697692155330486038022526115054864994895097322933288221722761092071621023728287546254569977685930261380779183145970976021477305314854944170387064587069160482926049542255160565882101969406673720338727441465996250852993531796788754113027049440641525876192402130475146523709117260408008987421121839319769050134325270322105024564459548425491808051559243625760177083694651726909781085402617809370563060596212442704147995588287326476004638073971438991802342735217043117811369041588494788789642640485440984593852016172061298031162451249140743705046300173850582066764347215765590282582187701401225136446491147253669733957345303433189836916459141354391857538042371171564947076895571508434342895561734681567802944399073637683099823932657335598732306045896735223824102010681985061052514107783606654861938900444269484093669295861157738163547770249301217777102213765302057271911970747406278949595786576510434488576805276827993374095023697703730067184674128110144052086536232203937585264434111381614766449185693915345188912697616481149193447403554744570833202786774286583740271212413605000239927075689828370001449008130414575305379046833604249279237421292189785480476357317100094579617444813641579857689265811131623336689245199578068758116622672290254663464370074068214024568976648711646006763464314527145188725016764099219126369517218898274710377988049708220695466642688109088099034845261633389215963411840795536945599314577752852352744989033096106802459601103696921037547720437674048842273672389828218714464287447449588934479593674244454762106937633963596940934238003282400644169710231349048060893427607319895360617217591552698601301789521338389534017058965820832485217394575575699508940943939853872039458564081190465289321641182632232034676430851172570866068344983701941682544167586461750500400577457216585469118463348597392875009396861199381168250187631861268475608681076769991840488074020864736031781766912713918453866491283266129024772856279955305270566470689898647365238819748017886371497249452829986610418012759835288345196200869573288708972900195901668079174579526153526983983856357165011743463607302274734823414096540259685715397962681166117637226304384782436047381184559974869758956140165479600107517010052680697153820766200734444202960869124978554118842315077680656516995004332519279694059760401318172201648760960387836318566647840819347623391295311995661973224296299481165920203297987745307524671857095079922273914783134522248133635151630332747788538299062535128298576636163301157710687844307844895667004403940808897648278561501672438542485809777031291006425112824530119559676356033891247749748315020595146957043065854012730021832639757543015590567481347499846045262772840310987876308127577900268192852411822396714015180089209634264139358899358212119647855178635796896871214965004191565153845523715760228717100993767261252345531800317208114359771711906869310622146845476105777488428567266926490277192514299917442062494150819375549767098798448267191976217141973934430622684899975054642462428709271510774302768967293936901485240703104933567947346149352462811091291639875170208452672499575341285022170175022798086578153544099423492185108264630480658024398669059293907984184439723929607213056263116527927848333931871699902631672393566782893102226213268436219775284592558284646072173507498373452492661068013460897480861524028455497754196207885238573822759167300294149467850214241417961119850253195108582838475206663737511401116064130604265756781700962199580883354323502459369810481682137904126756041964318691876042548304880401209477954345483374063292511754919373648399428781087988740321459642057627388572168505053996544585451057202626894637925904243284569675174220178209785926662746085978415153851802896064651045304018860601379178826065169102442512583788525133576078595927388928893262795231550566445423679068303143304129501976425880658783163635923199170245274127939899234055046693181345626632014509124303590894600382937837235907779145860904193461675616686114505393153343441464528721190500255706034188463422797927716710887457342892578337779621058156511195419220532486988858116219550496414930340673479060984410208395261838931574999859338572844435145923865923694254752770631916176381767581960380653581951630780258000844978233981821094387121696152567763935190543033773767413369440492378989165188298906226650539902228926105863672162437818065268736842591690628844444692430420429570298818315759272845399444524151824952752214701261529251418995695846479721571196609503674590543181684792012130304239459159692225569429324362178246728441858244464625042462680452790662465841566496409240992538233437814524413644056344981541862024378148709800356755187739400168412064803096165216111272301267852530616666131376702414409089655082205279824287220284257028555780225037499796987035030276282705113596415423422146126008230749669985443833849530577085614036320056314057709388293363208194848616270068965141681807217048732558089121442822626248495375188821227803087866140106005356091631164024269295688214045187883086381701691981704176879582209644577710953920547405729072259242517531001452507994521636259550572467425310170432911607271642712191343667896372949765841063130641578532405728621373795654594901544710015384557902752027473464725331312542742975082731896019706780472840199174227910540061435359176100223765217975300765458812969217357224999702225556469557022662258932957122819114751668800499695686282018140651913166031585298578298340977605424762105130665137881584491437468739036254104117814025344148134454214239335451714181424091094170058329316578726935076521392084053190110368645661772798130242804056738133086801063805311265551795189488382387279330520765528672471737864130904646646285169662435918826627623514139964422770468600302677690919303210041891593972875168325596954002252931178487436701058648894288860609269364393142961869666561599277537344566987754806042840651471547034077360225193211084738957225778261777607549528634695388813918176298579437872464814915438164668160562673936130054780226604006298529317063861161144752231060723011150439169102114392413171238074584728046951674453261524493341180424975504779452142302913513314650797695254300697439939321405240884349368210392695109009619542697708871412946433759510109517573944180736549733556185358758591405819132491228877334913350159860310582863400738035550705561558093779237153908199113895553056969977869561008105752419724205558457564393148376637395683963750365446042939321574746200265130890382562241896391939919051683300907046998722224696597411954231914315395286768896750438948181271421102008558515453917824406203462087166858960248481472650979018425730825325845562861373105304728338307630385800043444879729477580181231818802289690067113547491216512204962215761415607388695220022140496239901798068226627987820328993032164613228554259078516875572082031042856173387620531630531998052347074881682049828132278942083573727123243066006499200370722898755730239553270870322769789955065696576273534759217198526058629563845916405191630830891774302215163692742004237941992244078685094927264506192721830275938630283456413725372156227843844972086203533207965998695858933328785362963139852751296967239749099162187398404916011101928149791411762203096722220102179046756383018385720955593585637680760209122393500391913634815592265972583795964179722515381750057126720100489667220374326300873974934159896273103663444265621574260077019205096282676413803706907752182706336576013911780005914011574082190229762125992125378685652597477917296709466917643671291196187949169245303180618712322847984730531810386955787250238581415397140010816100194059483625132340752662579919269811586362369248370640416726071379458338381116590361696258797020062328485026718584309121418281686545929344904681244713017462880719812601776821440364479996703646110773401047258238233172042037283322515529261088313094395618850614716271221840927815422542270176852658357308952316569497254153387145410179609559370370627685498391203044761000515597782740850702923286126245538812674186567608424336308249058749802926587784938180740777859877370100764780285068641072688702861472218638446521188717402709607318179784847556512834860843842221896116978495483484415816898503078326371201328046005784895881420324424908382742488616569065371603582373788752485324967324620631676336038757301045561943143200239813114768612102317880654821114573193136100397426578214906556916090917409063048062080419188668700869582304636328843835248430416988585616027686358060409827915965008339674472915985087261711556590149453288415723568100394727687454060281742477660961739188677401529898586033643057094696455937781206856318079003001613597400958337709718627938612504700855191961825637101787050752364452402317837154045981948866300293510685864910072944744164280979115382609071658105382621199905632293950688059246241827433680417545388004859684014125937007011146554556434788370824679544182087870731416394236808659327607939384081185716643582652553786079438140135511916184693705731271740103194192303378819667451344989323658750418736868142047799610122351780358158543945453655741410140184117084864077678959058017704814282079786718668838319664949228365058380240792318788074387886600615759756981589664218595489820580353853005659156029792059010043795578093253060245095595998014545016641289047150077159091468005562458517431177945744317259727490882797218218806604862978707039851379593037489532565077533733093657872117936462404124879585395849438050621849772926750709739384622188813072969672216264679695781323181484673936205885797575664035388870146202729610871023554970763551581885761763261937998984230069240580391921367476134280391707513827568251195723917007097943940706999995117530106638216154156759586248333030196602739099759651258275724551620673265841235209626058233736562147725991269098137688489243337515604653392388159145558550011439730528431703769977061359536517727288753679593527641940131425020254794631416979966067814743239007238716515933216976315520920476190890423096852535243760708488379792640062741091648405210506677189412689429322347254770695109978917936069559929169552078123698716216596302018547086475819492495589009223663179413738988435335705807774103712142567793711147405636881440809657727201561797436354912877835020993607586287790440614684929186934310081087064614408937126243592232355464240412619558442501129076008183268725975141444400832393885518315804871732647806559651615948515728145476463997885146211755187367632700424024369244235437348239491647871914805661183646361978724485861166351638382043452301538716991069341010845269438088790056273918302789089765353740519597349897125481178153803622099257873960291602876536233130132704604691326228426013148219791029153512234532902693934158073643841269068512345634314388153070988323125348920498761109574245069269698305975480222301942675071856045167283687798937844084655635946125527558442657318925822769482969017319927309761097888904282369938851982159938373676371158242766563497072084622394716670145979917443714369883055268658870975514111070581494318373582887965317030744471266126368121180262095589746095483666183564429719405176788596298400158750128805622826316077504417602119731162603395846677411162555417364107928052187865687985690554058583123261074131464023530187284000604292064059815695912622015343919623891909670619749809597079748582779108378197791813713888527431225996164854690811400101642033993755727693260180658218849096294973175509848800838387120892697073008928483899590707848825464766486369128607910863930020380115763262096394989402726956427083513111917444054171084079564373045385882828852330992455677905415385882699397048923409222506994578224842493462396095736547857281462439872749716494732877446969676472029697544575498454964088325105446273023708540369174663383678363170009199712825387868286618243620581918099069605152699039886629808408106419586421007666929985809874161752905055150299464127071968271655354248883157665508666959591099627280909282572588196231554234092498237804080893374242258600955179995983541487419926128206268353161131538836328671519635988854358365333481522491377749869362047666988665462060003764830124966247330183926331510386778884850129878837022521825406373715551151492145578816349582220325902109845541148678206907463679739931011559971808371657419342568944022732852479426010732321436278033418845536100254976483329826935427799613896694464644504080276798043173119082643989622845552514645067976453337935921296429785436540805506444646294596573741713387742817560094168340381500564319485410966770353436765108026099824719857492730138428617068532082423261453773404630194958693914351347784687710419162300950749721737397960143323373809515737727521274995699772418314845682362415229827989682953153995804728871660222465838157014198127239716702911584423699693098513220898470903964394400822216830117499199552762527079219642221957100147830558112927670318020330944279486884730155224475733888669328213670252394567940743760545014487697684300104964476602589892641929193581041310698630065328181643795509132908273623441419345907842751859522923232268449684763761359424744031880788464600563523727405032192169408586090368736879692003057411396406102188628499718084304955339391712256234159503175125544144031468499509105684449996564383366449456303403057150259568482498358948804770586474625020243211982362414291990691525971555142131032214209334501178791832362919384834496692668848649243885125140140647978246223951568934035078155633335747405677687150245140008205453322250880253337845350960255718459112466063450368203303916511012266376522174194494922618756210378908117913693932075960673740157456996853705020746471655727255939234222366324207823773523904401358777558738996178264050144609376803223735907447967259831920499134631210349707410697616710173390657029585680638542412270366451801514651407940180498549191112918858360217031512274764776586482593299464125542944018299325903679623804074679607513368145667352946540098729742678274027386274595519411106696861615061109462546452044576898271932723374819364823562685924192354445759403330266832896098424840155453827422769809772555765657634274356403227451975006641513468348475039520020397348837927575609290551973859715030056715340787795596316933405843389612796705974714120120467253169320609908678186674169888288577150417927686221220460465396950640607833493198430018502464329263908681421471504559612467613048319028322941152623152492846466034625040400013434427364634273537380566922095994268992818882267294745867412205253695696599146641915473881410154432855997121259928272395075588224808329338683068722809662530661494208848404449302895947749427237874045395991105977876245956032424621448891011186505429940671818189244237336437340725672896958241279640984211458139676386028494511106374545089455283368367520381108410286496522061317649875297257917344054689274319689705125109989790398874165430812469828357412811962745146347561815046782167454993328504395277805815241090145481650227925696628337999789697708142712846747181350153193050098799288442523705336515070330655977572810988391327861797198482412222321780029136629608598124444293475670880559737260267204027196666380949453094490207282262475228427473074530639666489459705714603849373971139915985754092805510999186022396257699895037351651135176103826967892026419568712755155669690250659926145488198046448068581998960853529112074485334495339746072028879667230351391016614042807509189465107698810783339667874991189201108932115137730858667938941994497589332735887381805593124727353021571356007975379550164505737003800241125843458258852743585697871064286376048282205122217358020186595462639883161858929670853472220996717030784272603102128951027188674447061465011538128163829006782353578709696570680387669356500046572602450446165442158467996345135251814269607750609753380127112605216720766724332997407811698831764957274633400026724775085568750457630316383216997289941296680636167528250003879619414576255113785413989214467960314699873061843991648442246170235932953732351862819464937626048566605262403841994280186958693968826756359980062913770686445968741501102886030342265936810496840931020649740546003244929292180821515296135481674270342023935802404282203437693075528750867465720331200443810556771012363932950371631104563286807995327013252595056874454082666535006996599968928366771841342817683816402805635037072574515484581455855457608320553173270911250395494202292861651322194205850240622155002117871619003187628994314785859358006277021569587087001178243321387055172579907025976404989123443494263950331283326748452205265061763856685912275514327397380375694558536227865417597103658899206895030682768855685708855560893294939455321112131961218665028485713022923066650310619933005955490301942991874852681340769803102849477823921299959107907089821026012582278756817453375979938795520668835823353722021428625614370769560257103080047983231603323702583868475733908354788554578195578680842991880438680987840013448555443117611685270808053159347410659038146185588696239802204824475460470065523418279155135522015355937794571743059487831319868918459660917941442518070230507999057570010875808816746791181857209048934327751256063624692291626201225172482284551864351330672885253777434334435197905010985125359365435073642626855708577764078770593390718220029091572460572435272467728832309649402996655567045640683848791603255199197792446237547417617513968473412934569430372827422345710882239676904107297612025554106757081138089178281156358254380969046141484457674617613474019150787824316572236020390114918472227750617458371684945868404752735483410897515903610434280734290006053082412409541904248042121877692031137532061922058651844407169713838544972477794524241197402972711965560347448231317056003900905630186212480037623357925802414797258039629399259683138837422093007233177772008442788555501020185235124966818605449970366642297031471042814059414446250962658190709142876821336108748099523845996915245233256386992925344948461023390923384310965219948965547246720955735172519985211757552612370730971845921769197125296762298725269934007208569683400952141610726443832138169903309690203160297497587027630359734805305206079454591876164607286727321611376393455411516292119234167338296640687343302369839268147493516926440465366402484681794180769195072252965081718916756906325835134344199382059671721351774206807490890379016213430286879582206742832123516072133262225190053740601818422930881512568329855915147816456552495416751667442583030243124391745856022553212708397610642045200991084360438159697539221966659837856625620458855845347497576878731471698228841582945506822614694004516325946852573863838711210367651101895412129254870268735792838715605562209820568091974617733058547569446038027130141202651287256172720063632616310828461261407653321515180895949715312843579036343104217410977081784955793754604700141643785035832213184160094137853418455012860953238108315695168529970229529592597922966964571892073828754649619101833899851865557847280877840865677542298088245995243103974154825626846330025161932516428673001018183925687009993491016952896454353271274272836249579384927373705599734463656492063477485495859576974043130643551761213138153598698254413728149914016380934834516527750192868958460094976428156886054171432031041117751731502894279863651044276547198228419746781480636711393733898138902645046564148340986657307947348677604208389297180630056440612747319643935683197926233295654152197299207644011952746152685691455239075699360562778573203790419865702997028795677811527860374432083958984306999355956935635388351713978263961769546817157593218747631489439857334463517647485064640617784221895888884052617974806889572310269252113112109823633096271935285713360040981935932509443407985926882821596640670486093636163353490249886167712884831913313351242635449611531006888471512826068949181010946707010052890928233878414402362665599942892182997516706679492832098974854014092144629083636340213333855409173156984114508293866444212096778060233342399441719364509418642750388815473660745369865620894011020150397946651699015099207566288587114699132932710082182468972247389522669616156154856469321197935836972532286519361084813292977957473368367996053821546079626474575392902906057846106313864359322187478705078785627379363500249091785371836298956467719503524027138718476243633715225295878410144438279533730025884131977797799786326115421241323533839084077724609957390998409994990444333491569652457060853617415259198203322003056148757362376917030856647360029966162864579583761224770872352126644342170664240619850954422944798918760456345695949315478869227461405762649196371352044904046925266314969667150044587084021154912632432048125336003538424721982752351306602362145668788452932606670875405133869097396312693347354344392258237091558238477231527635468529017356246164297958539713576283836771325326872305361931874864143793983107892821133054856291911715973012875725137916502831708844357828351156596882201092966557461575957789700462438443555815398253651932551417619125679370217187406917189047526880486609420163970434438988458026841550474654165361247891040612064215472870948664003646194704034327357580714313718683373599539150710845578729266729720593499363471925380488710295339084887841242493026518330638667405674460585525998817024527038716419388999956266996025763210104512894940490661150132400390127334611280088199172580642530401775623317328140783415563097391907589224507981290893448197328381322697177332992475020990657414895607797774757325615487263730898178126801562168698204707565037750166602975149426403594992308168231918276163508139662242352039277681202428591145980223104603020477462480483602410613911286598093195066684250858328556412716615916435864148051379692768160339853438073661594867650837318845186568339188379855733377213053764518597988642377541302432575512442191189096866839731921864882847588524277607505376093112378492933195061935968041883706274269838705569550201998223897928440717692007617010883664020829878250772323867574243799265126338497221214003133188906021886700607048223633505437193897176806307624079759463513202133332406971539267268637294738832179392499623101853798825556226256473938699672627436293977559238794206296314143843548021258339209587124246289583349866593696984341779694082689879420515477277604488729441620110760672238171729455798107075769148144798658469641482476322019653202342911184610387359077013099243686002696264803150922975416308401346183198683173077328981242238012049864467224213110967936037770129496223120942130987859552118525391248867781819867273086803924223905607338471161561890603822880055162371838012073970442557820629876940686667478078074270442116316898852491848294694937122151876710958503710492608634001289060260009754880340015395209001492004079303759815895068461871501455834987188354185367289960769350737451622644103557198624378520156600416791996269464676534842254188120118006221160017179558904137881586951424213900761448683147179422863901369148550400999300585914323788543643918656863048753943834180435532980222164292093784788028207663495991617138704148591361973062042257077544322790903326526650547850432138711852403277405193864740097799441723702215077375540870575388880962022470272946686595490203792199418870614379201076277454118688064122515507906039170571289803402350092200911782774892685068261294432417637862631558421187488863474777222776738249211145736333968873353404440094563774981510743648262785616021471534554615445030182956339107918133269455763560144473335464354331053489974595708867574494081886634570644982659884006079357150497909136336428879210361000448313725519467436276933467353388159841219253916258464583856592385088533774832551715216295328127905478474543747830597224705500222522232051131827586612785131075141940283542775089704440997308815238105691907551173795321867346180907832623744605650357596672873093624974886748554390157543971360095131033459926109460870993821979882550772299290164803101332360585621699216141206237599337438182724051464175535971103799833180147473213846636039395846651100147393540047405419010124646474156718177110516610198296433834093103540133082014852290595150262057627395821623077709709226754800905340755081528173178194717439385541713684472865422097366709944115487277899254646358738769131565395558540234591603507946234113919821303284912786364798332211631221162721421818715409131805730911506352794680554425591694328377176226954459012963365667022686084710322271964929996044408950402748326087174582686161463565344275691869749955213924619893547903626663040336857697866215427460324271952616452287985000442135718800869205104854502428055785883039204846017372993340602220979003287464034477696336583134923087313977511368160678057396979661604302343129963341994659663023687827670247139337205869663176572481158127774859636560433433222609852743318477998463521370158931652373308272704992479313834401216130620711751423582304610706100714943901776652462428532508998333702118902088645021687270966664093931614274888000794825713287493659483639751491501028051124287539231216133829589599416594626044994904282506806863440626694316479670229438045117050684144789337386658830637249109262843840845364389255377915245995222165245190193571022696235186463398963764284290749075783837505986003890257195124148375265371632987413858414434131403596452499177124990673873329695539662509294019471940679593459881516672010841105936344391148882651656475480807512466218651548236369889252969509670483780610969745247128207647708325764538879970920949231936571613283362846628555539622960093495918254223874735352006350870023363996229726813182282200853448493498511642006214278369915673456321988803627800150309648358936319342935245025902174125040322851479106933196483945573359715270116332751112918387957244253393746743744436889246574331257526385039085327284924567418232112558663723248778122738534371574803559315918532860972800194841992018985117374525525708344207121981546343988266888964876394466585517586113164548816402306413803432783968073818812005577533565022726637676214713332237527373038378472675253684116049837196176782032264614432418072017280889641977698799095620446036446683512146066061166864423674755885908135555629880601421731704901765186364797038358263959180015611620593344973939201189002519441565396699449052685383257164896197139861042235631898737663497902219160273330185770530652393050974996017271662503788614277219624448861952006885492224523377677517147870270818983557574510233188784685494248052138777690469988373923484673894186398691176226215031736114033132038268224925029574389642984187803353201083122490190185048849173634788031957040191064538182710672817720308486592418042314015953699468965980116259461987250294017894449235430091671640848211547087871717462456041540747999774566090272539610490629359578181997287513696009728086448503770735591318190096010257809291711949750977699110833148048943859973142476389008299575846615752940194913142682791067523060268329401785073082977521159916398910110743873430014086373497085574174771694537106784398930650822653890726296955142982591119175182097197933571039931707890912834760942154429179145662617777073492140639986701517970213173834682767206168317958418732976624661561788959467839374573443162461893360775924301313989698224830186311474689538429483599710310356948856847323876083460245279387554873126695054752093304021249609852152807334698851817629530268545394380800759708026115352485467285090949854527055233224016045297479439866980966207701990691856174402601234431291790996605190217434901143205574967767675616038295074289156643637396920420004015678471207335002508597035979372033511318106439083903021559714947965635597125521755306635894647044416093908723880936752021709815260437215273453324430899125352682685985032043950528347422948019392992207857049661225509974714347603474110963464306584814150709874262428404250553852579009727682428091476017231782506027174687941454186518838138385986157798088823856273188174565056853653912498653662701186684630776238779757985881294878783201671825270612903556970711688439989383057847339024629593028066915224809737437782634130531300594433458775727918646848336250413375094702873721306091109610761617534589351770436655400898578833642133933334264698937591597276829713769656212428877582289369863353327751555115297815941428402213258403057912758588097824274963261277481946466776289936128684533274944204388105718043684188612145238621465382736889057261300098776610000714729000299485077422921846581616078444593619015818597313178409380131958927923813743362151833757475244047963282443514603748442948361092546005146018071360430352624780760384174752198832640841753151572717264988615206901927495162837644392613438042501706958219774035903816063743393611303302179489664258151886505312517475353555863445254013739725417315032886611306840601847531260273169668720020151251231177870538790469052921221225115100811446217339582491878875842648175669120828229644837871932360582703311363598741864867968312786538011655868296405492109418026493578529224554209648302490175852490885327217203692121160169787702318689494849528084696166391264853174028089582412487458799814463151751851972047331575685154238973076942398614731490037666608018012984925971849409877623183376773693250211112948603191241567245330600117812677249397561094012215212814745979953519274548697430717337542929477430242477443564130249582511329819200152032459082898589528383745408004326311802293875927752532127473442949660277321708187013655893506271607016927310395729974277469579059453910159197787552315409193934003835500376939287831648975390384036843048057635736342079729362194080739034630088382486247335748883666276993730928108259778283744690476455810475548902677628147441496644041532414558881129123191345291002803727158963878152720266593617851733313756116545562360469259292330446419940825566017642182117475462691356398571374562522503597916337098631217183913688547861103389067431782026110940454025029143950846379304563541469864802837367648897932412054540582358802174325817908290550171881436179807117760129832682547786201827111963284862450032320215848109059703096860336729606578331840859507243954120410476720248432604033721604362063485469388968807239288930587752795564570239907037137883002247013953685615596261774368712639591938161378894371071571672555747456086187852144644720234350564708206282173568346525893736764499084271812483289762856266197973572088356568966942689877009932365478313072752502236161297264615573274637386154619134171777734111532104551503834664390239204068958990151868220780345975336430397092027094391566389387109889688017131173341946206461522177582710688639649206070618152300914764254773651400915945614799592026048409891810054502528555215136216567401421112180920866134317199724885696759001529517559539708343807280133688457536104113247707209156040081224886665306240265388296764347191922207150852368656162361663812069087710608763206351703266872883918536561861590146137990065634215647241073753160847833117287364893395630535999867969714585538501904145590647788836728124393957694497498247422901780705793615839211607667411648217116310387242736837109671094920395484826561382033988013753048759728845863347693932426062348542835884516399297740520045452167304861950347270390416202153242259880639358661471998459609302260923012018051355969966167379935455529958421972892856311331864260979005788656934493483671425726642763839042429061770537370705927768331171864722761087390234448369504812563106262123886310076401177728432195196808849050436041373516754684089808063437985471944955877671338000561066517733497810419014143002007505296175224842362474298441495698641644271871194561109189259703943054735011284192536600530860150483182251454753838001607745421426133368931186329763622838018370758841073657541855558096882007860707953502891489617910543498468340613243537710017720571780312473663223366289750244575610653826032512611026832570644579969337032615930056206813249325912750417054555153029878449191980936982236879503427666813583874281864285859977960146664528048556280242581473360699243383202954760310746291860808486328709324807356377149223338149590504148836140669306889031503645689021782456264664448835782011457375648971313398745780680734135337078635361510282795078447923575948329846615044351043019763791365841164890205014010732236364356897998057542866339827930151333917530672124282114719154660296937039057867053997783756550355428209102621854494119487171316073066320943714645958103628103573104700252390500380692045860159672450621308211698022541881542819002147782953052688073634866550416381911896039272489156896277504826447998292316216529688387732807149036852912619355314423976408252096440295126524505789663257808919398728556456654941456919694205847836200816420693825359017634335547838489762890936438852041002216016355472478147099814183198368831108638575059168670479132321695161146690071953247177059798738733452278382528384123283215721784748340679081829086094597559084330796160167915885877102775217164774240179595846604052631367476024082982724152307979676832161653883303583658386957335502591213686958498042929703255423619222916496784928899456338307782904090184429156228752609578222735541211036753229940194614012313306808494690376699563889130431694973098376004189583347421030078955812244938387593950527686127780288905307566306139451563017813246904843788928978017600103298232373228923630185451048839937178244302374470243367521175485710493900161947096653275989289237828052358501461357525792227838175398448190844486888059355338086282300296140800481180040825798927057485427942053604244176053250337493154306998467073592442329692890438592771436702706107643415334456891301804722649725084672500714108656801406845013906031471446402920258415190364069164944268471325266424275808152216077421153580126680919227657256555820734895809195361092500221566002244734312149940597019361831567249818063055831722847278763628572878625597658365513840939046005275130021223206217196137856416681791272812161169949029975411200924233312568147301078250130463806292942132671522071346749741094837995332493129963554707929873644524958704098319421073584994754767117400597273082017987009575025310743703837932305513201163110521851028751836177775722179882053814094783324672646415072506441681798527204705122652362188566918114217716486191958076405232837864594585399025654210443475279399906512285600187027802386796616337740208350165896787581225603341419911361543088560179668725556289964706044581721382888596100198225765550267471908309357068660787710041615948592807758150887771515109456225927918981883953410285082330769961409094064116947930743744960132014331941951831339231047923458584744707554269306822526968559477005328693149235932746300321841853758118359357099360239371586100944483593070774000022238840174844230359199553444461929861795065738504737851876915512376498923058814767609356905295437861779069876630832167796585027315153669723286186584475483322384564083985011379236617999791012669307470045419470059509232529348608954448322784506902613421950182215286540686398543918034798233983519290973592498788789002382645214811564729865624406432252730946212205715086490565299028504736520358575782379358137311288161962385215540549130298572980025125973046198079223406990737258500119623127136893085185117138048143147871682478242207617133814698611068552999660068272992639429510000171137925661614560592873695862369330721215921102312114864006215424551623807995970547241252571651265490650667328529537912882975096740097753403169118004273605097471052987650627900382135301319356447458876920360556334370531285694849503687482494905380070379983110427289149770775950116128660801276511443254552020001009589020831197888228630677726196163133519764080396858178275457218441156137200450599936473326193449691059102133375862514936607183573855655599465611824703716789445524163992868270789908086149113868998821595671267800216760641804076138927314684339485008189385120509011788981256344205004898928625843550682551505536177710138544099844486445869912511474387591405243080679672219585282754263021974091535237625555293821328737143104471662542093320687312863861693558247645783683401032552648340654010594810646719226760673278919722845157079511388095150113061562701316470268428935990987421731290496768006972503660870184410634675229613189170251683197758714470166526270449394959785598553674023894758287663977128979118450204809904657962171443786733757635404815126916959745683293501747910966579925027546407227351786778455815379690756117950120866900096514929962226044303172698705635436120418070200740848782568765084791809145061157855708527933901045490893275875778437553736648018776554285851215080099607328132373688044908148471772095114306786569592573805664940202144199538659853910197566925891231197558752828602114086646577606292107025888866835713124444561166581096788866275161304150774365117580231421585279704829615169952128990010355056577287642894485873051326610221688669948384795821622407276614274744835199920546417567078346679507921425057379417685019008109266294581131669319123119410939627127974206035283329294545588050534908521136288222303365754411065627159913747205250371494502193140732884135746219949313448425537446951123468222162890742660236818825307705057076370547626495111016230556337920459216992593757957638361543807675162309257913041585503732323594508877496325332062688898703077559783741928155938556837610342863249390512613980679300183828605245417930241293257013097615360087523765069577859772104083296465944278082649376603061199882133063621797717492077458080752382228683631161503870269349840026038083819902055300871745398330253299706167687354267063302966310075041180744330140239091773091425119376858630569268575960666441350218497341629650546254749044086075262710980683220275150490920314912113936604196080199032791188104730675612064285038173810995440202612254594385635411602047291921130472722073137001547077548176317541805020785549699882426128611504325340784594956576811858217077718334331427277639380179663405740630550902971038022265395186184987538006284414258692431611701250688678539829331988369043357989714237554692048994667378373497810431552905152773473819210957595985667702805316421249431808056035985695079023140403584122250958769360245155002718096572113509277272028751075538371153586385751127522374695246856181167828386092282165035522163696544619947570571122657072131262562729490670967413022282182352060774283964379110044626920110341686913112691625873262910737328251047963855166704175196918437888659378023735208306708577252087785243714448141278748229998533647984380859568965051205179434908523067666648509478892982535644921740907546055589964548972252137592800735392696920911396575846902106714090067876073973130370095213714518946289190782486984123709672401584056630051606815147809861671431558126190162395422058810610654442792996145431026400773341215281444865384330165991293849109110696754423532597789628916282004140762039983188588106757495244463280902627953818125343820092341870383270130890892984844479500196055798483997959716693615913354642085848910630765667005778671815648152786536046368707478629950941428242028560720966620454842835842368522874822161121205533382976773402410097616759350001139654178620707053225201288999004177382699078760246822227682452485838083710853944990569715424149827851049561622732813019129288940150152150329213229534357087384349608464174825231612283031211272295205004679205902364165889001380058093537474391132314176164787182024925298608728386041048211519829088745177923338262516728296677829533745533269852367892437937196265453450487476600461365935054720194721581567318278634953610266513084362983992696058248114431181181238976248258408554470725539673936669641251005202096391254567959402577062013854929184892327200981803816192202972885411259331179127881146709531055916283399822111147040920993083641645126287126938834205202796097972173586903839562680510952923046020626294725232539907811539789726792918406510254592997427621958270999579454877610280323053978922193737164238717663284705922408560068682561829209978125717482374075145587748364145610663283807365385358046258007974202196423232449214486029969536473602939187354667702277300209265643494181058162353649567846750540326089630879827368241314079405403748850606040916180403887818788860369265535800711924768610238074707451886951135847309899098311598426355488050421968700900286653330074510733664186778497539015476913203778491217435123925578103631863777895895066112690189464302798255421246798911176286967807418451932067635116785073037709814000472341903784606360032365015482326561647297113603658636492841576938192312747522410719411564714392931523420496291857840435966207921485536320563023596928221104978772864844702272050683077575051518996007586277281038119451087808501944357662598707319142211367228952841413036234304524886983702208917827817918662542317463543840520830357839163531994199012935046523827479960153077533520483010234261423271507052708367285136247079879613193560331395434742685103936873468830830308983395093668762091384214497054833888571853584568215847180986161422492472576761484915557911860557182214209435497472426003325813640254860892579592071584791161115073295247090790946923641158279092293269448542094050167585378571173362747829565807666342905770546338792054341709575332074598600941502224406656140105573687769554214362708790900458201582267266893142500593183973616546861859812599775401507770707360569153265217060828159807004737506949597929955464388617770677544393758093989361048155647717611475012308589153808416306198449808435800192086812490653423416079817312450361982918153402060238542578759575975883310497008313368265467008398590833620631805667550995462123872723245994095196711014060747087626622151792594667002677798211235725145288711397455563364124108256906631735953360497130646392398118627484229590250269455842309613818747211512434989857995977306679524918999917801785120368832585040408235518493996306497897890289761305022791613774157895250637021325720665316360741318487423342838928236492568465919108805332248674433975641124514594322928914880349379521225645534787681619822599132594296678306497501081493039422821818050206753054280760066628523315934759845691354595940445455395252944997875630736057506703845007626517337076030386290130907528784449178008030368181317785078438673452166024017732220230495980065182666987137905393756403930675723051791413746908886517778963384161736478800740203809313029471198154113790724092791466513967581688487784131286791444525333939919223585517133549341009575419745085804733481685099693243057951848818079334364205723059632340973446221644970612977073246690741636919686053738265190950536817157962123625387357085409324218451242771489510547356327706888117244276315603244641935315591309816860110928832516373844410122252602085790251588236058219869433952028292715459870009168787002868975692628013136071175974042391112851877359995480481827892463907931642423195716252646390240970864788385970343081169650425105967478539409931014872328921055053301971147768640192158994981507615250333295433398536459541155104265799218601167822115082178445762726086496827012702822109157282784250792184698450773285326303282235946815165098618161979734366397827713777844805421724365401323249178919495884476431612209127607627737324236874383761953633111323753131160932910874584896782882447030826760328296445291130735601952270361527360399209238583439750891205267096219665362279601500875223519827032747956647685050700837085400393311621507118457647306454925083684197212965826554986195106806065562110050248707792647509797571532940451920070137342760946010496074039557169773112687101193254018723935432165576946324192711556143929374549116314867196656377110811056233501243553866337091542839051763849826124962868142013458326962974403605355601818281255728501371355359883933153816043327679782585969787202645074484722441121591721555948009973220322132793843815401502739153101315052589765159534780193164663300140931051873653200709992856578569937452524614765049826791496444681471139331286993180401373317813163553213282508161236590029633359288401324697121158599818358511244172087748388563376254155846883900809085473203807462083235001732585344444092884937035353198566332367499247662950358076109900861380276905688653947312547509274780951687867496845013193991365408305639115973994592849712430150970680657618235553118087045026920494099626601684136530837519465983348237605519944386834713980977462537846257083187910471433674864017821509182347638635781923140801649024831247830187497457042500486807421146742971490551279741107902845095066231314716500760826457155556213844514495830839900456196333802362985709654033405198339028887894136188821401114113989064245341167466505463255098025794958365079112078723353612253476478022243859182348704924786309329568334222813720641905598827606874596404199161066988578789566667914944716391400316029123811337305630646230757009545427285780821774516069213374127000679323181217064375444784346843628055569005051026602434547046698534099817784568455445564917384166374439532831713313998579182663416411840162141962894146405788080680795422564809929084824462374201107536938325892124784660459319375216353577486326399376235694512403000840506674582515577191413549042651865582929439334698138639047474831696657460843205435603629216998053309926224022342492530668336097081558189373940161724801813143046102130532248579984750012137183896182814859985869307258285834964690012265236552585001642732069935838032567195088537634105688869932976413442177613489839324836066377170639803788764509051797711540017629975594970369841626083452433612097710735068619801288314438359784827633696837951959157481275425335724722316521097720296180691716976594746655450344989932638154004976125461426515664899687135463961345165504141042507337224053216627388115705216060647218847680891806714489923413005031471465349486675544536626761878717981121394129098897408035865964689773454653028920743797522367089651989222209534705591106443511161785122261370410557281851613758891979237507958372358989500666398738158370066713032545658033271903231259557774668184921390118050248347298568253180572822548673588775202126980566225086404570922139970987217789637616385850633621668945323713482920484161656393115082441016824538005504729102085761752253597689847548637199536324110844905031880678878950919353967241500680207876515255348128533642647924405478567659648005522131601524419685729188691235461973307829586844152831247527320274156946260835748896850668458775218587172013789756477597163089105923851627096705561501167864628029026720884084234598387192869069352258376641918388183429320093178573863757427361403485835087263723389639575621441806649918237037045130731140394593619850611351447655081099413031501899663505644796581436681050152671721696704346953741290663592873532371786929632687864739008363366742184951818803461683846334308622287976252862322111262127313529420257067692885664447102068992624512781451580299805950214276437278862956317577855416861915257668686469768354594448372490812869605725766108634821865177934851409684636436623352493618581497575554474242981559955653024020486977007287171244063086410768430736908183497864521014743396064641370474109543890051087530167257930960845332787928020508791929874321690076926880956208029228653046880918450419168450017361960160732928695062393035155119494062783065894363572207571587330619962821705825838141735899777842316974613033643545692479919650292191045148931658921685794905324208479895247401704697776053465601881062082281240603791273793792963811407938794217828950557028557163140539802880617972379355825859296826776025721913786213341254270450385875014369747233182720732266659292851122007568468815849440558218104221867532122649765888258301679984404176627767391285140630012505430077674963769595841807839423463874364433272764060580992069879187652726926653920812493473528395353470905732234224040521630333692493646450180173896617324123254507738264542601716871629082100789157150510398751091521486653115500755028710552773227083901420419917682524734926155466713699197600086695019228594022182775326269187881213020169559954194095254299453322237206531349073755752315949556596087884816986453924114268334444636173894436158807322963823690843783281338441747187351301222942815497491527277970233628958732264138225462139641349245961978753828895431588540280859112504807158753037402790491719002787580760565437467003831034107595096350504726990760736864710219332175320163720807769768451361853201328228689395203554108578476339730007956548928505514361726954522403416647467154302940115505412587076302409560955724568800317178146963174218550028129648320801144929032790723252543588654143418051003171369850271920184329248916317451774723266356577566801723908503121235368149206151790644164971076197368560748308272471828670156132666172878005755935557392512475773277124718951427131682263772866045176444648268305314766666236708757791117994874934482118457860719565207428048509066575113976840330638748998346850954777885564995299639223872213389795665224527551968063574820120938622174411887454604921920979952869896152368757103499497331700034586398425253932776145595645542624667955360095935635814530688074294856529279979861182655891606021280823061455310145065496636647246338901508266398703030313235228189707923130512562536439438012923093858027349644760094271086531193428161020191900304544715701181461592679023554989411589560108706655842515162184361282510341564414314860194106771380999489506409924233871708453885783174573811715371572958677264461694940651757964640209259255103923056051644327864950964823402575890761122975038912876125396702802228779102152480271975181944352650972075755266157051653516822240403543768875113677663766376565877815751329968689371240135009065207859641975820422067651865318132080497202214075297185307630882213345761881418835767314247720569444726157800881797078930992741239590995375376809001379887891091660603716502516927102659984202845726654725536038970834740706424868979571391164693666663606221127042197431886050483383515815676864886402369261030748123661864004638729051216042335680479962667230116208833897849774046485676194097070168047426665367668041858241847252621677467453993019825439092984456840999749997074383649661522262507758392529924498117936051525962960692571623241769232303029391103932098311277265727722585354353168070110477967072645916877050045329085887684587862332460585110179701328689067167460970910756990463515168978181386535989617445813121837009894027970953912276092571317527581705871409649737370358315729658531611074931496396633896401236019719178972223358062998242732193644629347158885156342602307497686185126590957719619316701274709902683299194113204601584987280011752659340840300171649308960214151329140111716205478249858022904387673480972735944195641911966415537088992342909358064593125923419386740225804362678282108295766662337774626124762476830993229875232686454230741549058512327585268891715469821817978479170905496246699775375710413916325228375122021253088203430556365650308466673710031979247367652721711846599960680051433655463248645695202531765373402114513868319923056329169820890016320856944539112209768502721579214393156300545536177742085241444485487079029930750379402455985644287684588913737018944754201261537334746438342376973294558203371778173864749772195031214500941191924311746956057962899641975064003557475301080273936194807927213104047854145342110868447559219319330167728862184941377245876981136596859411066810492995478966067205620924947262031811748165679557030768728220715643167785134079257084916512744227036069646025686077898157656133679533723549652222325657760643656691889736966352485267826527444110742074711074655279342603337277631388145239093319055245731063366207416731974284701786811615039733090167146380595935560492615430076647618619717920799800941751611695271185584191534662874330072454216375785143825526012929361588007422543129996609896399287938999466137267756564094234063712819623573474814449422275590972291326045098059056281412512735362506881980289077858047387616525800820473302604928271813299857077126887920598791668991318849364291381879436993883080856159109896929578277817674901037951450579502377240725579958646883304259059101892378504523598175396731384936824846526622271285183269040191800204057542638449726770504990140741481260142440733706280990166255682344953138438196558796715500695293746036068146871325049921357999639174966827653235411410728643513037958406762768045053754063206023786347195303996322980949728830286718088546484592670776691301129797617251805675321495824429103535759456028040962749268290068828449411993395205804025776734867878904083977942766722183117674201870842202556557971660479134077911354979658027000853398692923249883438036960764793399402914948671844741326492076010976474980724751306495816894240276363922463400917593995311167087167419372767130098476764082334803519679434645117203301557232682175679340443589682321585711968049987844726459265319859706002182119437290126284587315708352582083693730224506517916007607005851195433886004184315281472549669575556080844609386064518295665287819600283301219269668204661845082837369245634786794921524895208411283178567853113217290359686440570616955490181219120683710364431816481879364135966609366426936031063355623222466064063586364336277748019511758987800521528733921343677429813203765342700183741187264020061566183451063570617135899625017254287283728627564380773302191566020128483462589083175444183904641685272770250811845893859332885741152913387637887455958895380800361318822331000010430376537955917695758436510570920769615936512068930285017177560234575435955181724780429755871100761531337054156764829310820786569722769366802683315567151286964407770516769281421272835290254690521588563868603318759262970012663712032750253605859975276922579781620596534495305557881508401264011664423758194253565499935300739295382546701870596476705023833371521166717781783903920867955867194335005791531799488091411369351821836818524240271860855844322942915028246726169852827128935968274553032023215434202073245349693734272495082160472454962479327921584309788100791123407315496744247176600119905166313470608614261491971312685279277118961773945987629633381741481930047064174585223899639947716574498275012864556594615408939363715661388140854303728289352763042003774917090500102087046971690307471053752087169771697337724145589085477039036580112887531447882556423677214948604190074656212125159388703814818245454559328271217420970208825072137236771209861139884949450426370558489486243730404694254415282411860158812763661816316793493055622268932069275110095737133957463183013308699162934519895009091621609993409037005582547792851263032861251188467394256216078780070551706953416876015222250147769027045028810910725003421603710520198407806845036112081371549158422050347948693980502245986809623603716183247227131752816557844529735199019289846890463975788891318723365259061149720240358168497841571985790376577807689345524801968450001865997190106370077948348630688811504361281387818931254957863646061420211764349692706909430840070967667380118629900642460641470857550449922196356524118077630293919216667556779023064464204485664028726472642389643056651315130481372456340621732686575579755926447491439357326444341526137464440394801360699246479056975350290716389940442057192888151900878558890965890213960373049026697067167572234461874356115109220399208603742903837332389657992978393064060285606418628027998991294858316233702746385886730775348411422732397050455304172749817638664858801433012392315584345088911237666374650083733980040242227847235709420429282294606621441915528497974289482605925146853749012523329184756168914358315096432568248906284800576829063898555555518181109424520850239197436657814499379552196048263139355108002210430025456808331358412173597523170401921875528794185106105836539311794577605238147781470206752708267909328102909919290685754408452401769806232799969232828391215827503797634932796459576612271601617436097281762691707012604321661017616612238650775159423153896885881706259592949732662670310975644776197635427049833463592225671649342336486986832664885918196173954308745770214179119440403312465496002785376897597828889236519664674792202203777370306513903122132064054750073955680747427149537762912024706104839532460665525712574672875640001075206888474510883412070349771043073499680406577199703051783720202713743994478746902473108018439665057589346022978713988924100591595811333788576607704272261340181987790499952868262911618185005000077500221705110095970438602602320063127749442568565282141521469325651207012915951614251443119398789966003568248718838662616345608836926278577411174769571059469243181618768852601244946262883161555754453950681795596694698574111831207868666835653139990391167556029224560144792980915058539327737597513077508801038344277077877743425425450224176505831528741681742406992819504993652311652786710344175405553621948503614749893356902755582221354872309259761428880032914318945946144052586775884084954733935225134166383253317798105746799964728375439773656494746323286483728801778741443711210798149744132141555426738874469362076947348266376286764365720253840698718273261273598110103983897537057574853046068047425796271613849032154100328202436636681632988194770945817729229822058525151347306174349699993172428123615481974748983176227359055401731891075340527124993576744256204901601398569452864649105939548690245193984916755105115634172424245099158469177998607495956872978483892959031415283526645816889895319370812933254410165217851898989866444366677309237044955932262043252225570921193524866197170190457551869498066927651032017910020093911146563958444271308138798929803880848755176733303102392553049780209928653616936824770802271698287699277196021104061834404373768773034303024628958874222686925799980213575983815469891526536782448787927622640535184209834731492772562903192025287266256749876288882160870242079329228982106260665634519888561663535917429546586879274320976494705934102047983457456043138606359776597249722873114257112546323668677506695942004241355263811534235821828309756371543677239841120701537621915908154424267625219965027009304037821636124831655830671198456649494743328037764466433759681561116203979905540471185447337552051847257985705037780150816468081150125254344463079779551072822685485726858717093721079371921720971875098183745569064692688788180314191537196867312487944451046791644537653075644631989179239903836833396577356805968902711485965218434834920236286123106913103404015523061816524911528668511312019145965944338440657111379472412315989353189937082163772128244896089778864804219564178074926985151043768790320648305904181057366140480845860167841801965340160956420155829636421703494325549713034556360267251532462923439796062272602631498335425407351067297857469117046876003773873316898506265495782073701818529674565950578900538472009937039107065634501266869005959297896168491409145684994412191243118282285828911820070604284696950705610811092357791421473472965944513030599319215600868670859070103389981580604578828017107354434455163303691310141065000993744305825391565840099354939381669162446540066567829739264520574182183435305888931693780402945852692410178549560973354901805397315988877590564477382806917217309481945768525747995017725274728265068338995491726041116753192489488243587621698332398553362545991324818385187121417559706354993789352499195807099731072075976617976835374323167561808849405754161978371082345134894253506529417344386779260647412666934656791127848947218963428098602542453805437455893961056127552649293373397638658450250539010760109938393428853000023646639248658203448731474633334060112957210171489914090252752568580378772039245222784680842233066049520802129604560781315486681429487293076630613086509016173423130443541663524804338610992040477495636551050318084277347861704910283610543280898102602186593935537960884726918480112782690254080331042302429070848967123690818148194120255761402425978903866443733912799954989970370938023766951537012694242970708716415513334138997123595544224617163828282037391730736305521383283825079604205572496417482485947674363985769816689498371550327994415150769329094755289731826606775060106190639842272313426764018575773082496445420102213089062481427659710725501942800796504651420929850347774745485844242887540690859149714882268090578785276673918549544965391653595596461591682430292818251929265865644904301394826102571232529700801561189697380871788842964530335140050369230985089362275268891315456067511243833101963334534877185037661360972182289087042300125752556093167617081539938802018517851944475529377163223682603101550570952354441224121345820273798128513528035146749862957390282086831459727078842564108911311400724651508422479676910042503199264944175743513041765959036781518840671811849304233102397328717060109724274919659139014899838953641672682698670136960598693853197513479637889136312232476082102113387003119338880471165469497165409662231739932399254766662524246116556853644092625897459469850688603418851826266829739847382639443849307512295965796846505584607541182465049562398378190899792170858140617286298471700263899038498577837722686238987566033560541170939442501177255308229951877401814189176352941467914755678651735061220613581304853556832390112078461672163768688047229714922078918277822048919175543010482694707317473917306085327364124487110177230203755496162976357131757489548645879721446104396048324134372726459919185759888906863464725827383525236953694191240754085991726643890871207171857096564580699629873341132292803251181344695389277356224528869426931113392953767493514412773843169896362173949145403985679376306469237592207943205861235613077633875024321835031782807754388158015294332080326568613848077560125266485747035043113359882024527357094151209544739045581551731387280989394901572593409052270021659408721346607166476925533891953323667082462862495806460497486239765388235860790493063999505334813695311657938039749303735313639912709860101104974687674655515246753905060400808784960814831050747911918421479233894816094387922411589155669479646525393303626432815617268426949256668676750188721599112286694170592818392952506725887049416777666278828041388845822664611932387996332408857835114615201033494618701835775635011767261918506912057750750451088457462203504338753655945733366177922565392965525965353204808262262647349434718379636658803298894077903097767739143279133220143495374946019850872555835765358499811544643161783477123829595641612973274070333982685196265944695784416485213549010612322389841926985584817085346109135098414117510321347354754223190920845257255763686073774178712620164196544995501078403016121117221937575995081847058664544915801782602471161443080665852948270677598403692860770259378037109956104592043452597668137176155275781608604895698344818354794993291547123678034736257061307581852746325143422481319155482211128966218811026390515454252513056856402649836053011133609231476194560552300742363908549756677935695458517045109548428153730517910058191200730006378561898719019398960568243792424278297513308201792014325279618582842273972827760436542720608926904090709086474415226584570549673837368623366805831221828529328037833244992695675622067861536047527856951864093089604673485560049497373186546832661220208922902362798994876441847771113788775216908085517761965851394551167066250347056154195175615486660263140312817379182085212256886360225280397505960886131107797151585072794337828439232713972277534193520105277951406984960376156689403248544080767609447725316925168382502135298738474096844923938131953608717071468298722463253744877234048848021800574390060099265317510335631521940101188264542215486674046337156039253683129078047010113082984563592580694317205804206041315948591520916517239676681059717652892948632048097229351144464808799150425252127482962053359170646214266169143300231455861415219663449259790703516603210925304163996734405065563834607851264964163145059873775848732962144641910789508230623300744732419060388086275640347540222277772968205309466246466601180230983202819782601484522155322164516560673300891288501958664337998162739383493980560401556295047881500432639757620236706403919330620820257698992881247077108173352306207349444240656462948680952137294526111345719716658393386488905175506130896366335546000450872530564517305829279216153900272459065748941176109794560444804955510909980021516398911664438771960162954823212423927890352359397100286202112272052568957754083917393197908908510357888992082262068769589282312679793929290042766952161942140357286454119380885639483363821262598384608822439626072385400396047813482541052639605530888130432106632344582590421306202588435146118675624997863897268963966398916593346675189978827973608199594303097688000190058851271277748782172840328662432901436636415545585109416000052471947272766081099105904445755195756522005250411215432186487356159660145013952181728346230215601412578659256098251348720247394971310679355808352027346455611197665723672465697991326839849303230931858021391536342321568448104450131553515557412030227240134912004168735827754444297832418963361661397326801165109710994339647828642082500429674865549949544560104979281815861604877244740050326297872259918001776080388464160859468884942496152226782615846675320619879075151955621830003190089963298356436624656041396683046928263488524158387524091137512623681906122583370726092594527162144334710841365905289056519312344988894725391433099522253436722004049085306891566263667263833223624535543000917339513677718694031755991665605993682877028098678055718479319937375362160154166607520392414791927525808026785448271338933823846817144829215816919949477676301659775465570062833347391049273587608671686108682512862923334015110496055154256550834508400127998662642900064945342801534833500862908653311906903874061523528395357955435281723376030323030369172213635863570409359124578402044526575386649874858090792443799619011776140569748086233385943637540427785759400955966934452267107252304288751830345338902237885568647282773885704026900950489067584314668588013102646205853966191452196841774359807261617101595599816294370653284478357782750781712307728474227327369311653080130425258026483452688931188905959611220181722458420906632767398492201711626680620722742773138337433956502364180127509921510370039332747503770962594085711042205942722900309113497440029209051062628012736107754682207259785345391571748410301514741892900385994809577127320097938623390761562496043449407891657160336133804035486730798346348324853790421132436266185847028095101336230530893735068785746490463980242718549636320668723853568050763433668548068197647059306363722567124730106778243388305172532142860009589984109419816807884518929983070826949875862727177654043420213538827874894000284676167577419711836261752031087100868457635385796016103772031045079742252920038545309857175325834951057490829532086256546973932794046165319731691901736285268103141774043647633775448194341748494063400747086906966080360556652304874138368562025141408011523233180405960658347785305073430971813058027725567345249489470674521907079415161493123103520114332959804933659484984755073446013339389721009943683995472071929184303703887405407629888082607103519938587434887381945218379797326909477030968333671683523163960073861742088752924631304815782413601193153296647805259431781427096795359574694372412982915782052159386662755112249857070957437836034287500315524781204003682357105299744161508389273004631937170382915498444644565747339037940012199875272363987722553035048864035883117586014138522014367116287167291812049787399620352009100156439192625635547474517152084007428485409222013910295259963937397682972918794886840507772561770974313373634366905082135549856105845724936275130347713438647505560849906732306809964137825424395670199615655420655950984878086728924314971283758232048942041356791485954913866405766664645467508023002699782708993104463604531108421360874074628797567694937126277616795990197641681894443877629643070223882225301985110661023943204848179337904793712592330586900716858608737601122922571579798106448349222704309814004296770414541653976491818067932396788704500345516222884134984340181275405460438984411004394933263569394435158971361022779744440738933417202103188289353729310191420795689375919303423893709302151151905177043714263931789521855868760151335368320325099909497790575059724759622806495896488396414012947287770494937864306108922453959972963997853580959054896481742883033258797665991360456687751485986895236703358227270180468724405210846966912304688783380765212315756786514913414310774819710775253162997701006117868166708045391590716158195405341357460488522165237483029176973588636892178760699223689615105990301780572723096214410494313177923591266412836843501822827777226311761818903147525292402576215812975804241617646502941737661595631003349976294146827962693275697594948210049810797727654597825521513261362966759868614703259791858936440242706839291671010557124799343647887104293169338929215822985244307288769369379879945170318077969563611189319931417995697289078853010626759786061147316080165055364131179790553895500293546493760407712259516979838851813619175940551384713277436965747130934906017697020240527370665660515215112111230121295165983902023875301939471640107686314521714832794949181804896775742101140793677181217653494688672655146041151856987184659659952955624007292538759414032596837861167325650145586648570188710515782672733334012737630484663309282736173414306163491337523304007291769863856335769259317093251484573913540703202440168620414222333589665725854459935707839388444709846647366506799700943286903279975893462946098356755806793610353941735064838419508292190117495876413415153372287306120794611654694447452415686774394179710376218968436457478912314616958707683384561310927351083149025458819644549744303847502853642439637950517019640850781048152557368268243214086631968964309280150070966057993367601899101517321472952259554285443639682933008909354659457261555915765439957355630129374911854803110504425898084733011386963157911579256399157172905485527819077031302992756213725252188101914432869869548522543869483997908466615141697866590036614251119057805818073259031483439269680631993561334396157681823062947130654108910873594565423386026416463875618653460260254361724907887027293845596627959369954272103873604649995852515949622196279386586549346641946122398024762988367624158466021853090540002812958927055763308838557233065320819810968035677299698294879106895280028763715028300386348745422671075881918816084769966843806156794504677758591615843151270683568942628652128337292245764857506679043135374931831454460387174218715148717361778362583054565781872990873222663911547159710310028524209362527403449760080710977127608592047268837624868528641503217271674803408916489446852547223263258438589178053071635867157912807647709756614313729761081077514277124167788412167195665576341843367574826250082142346775426973054101560870225220277719530147142477578149942308244847564260443962589461649929363969640303149491716945887541467256707914903020515743453610563532722946394633588579037985515236422863501658118642950836306211823347700021562757539644883455532092553397889270616801102385880936362926045562598342970099671454401088536131678633263556884252664073785329849883512373073570041848892736604067071128591037907805333237064691337692362945300581566802713380780516017800720333810628992045061399025664315220353066084873491746758920405855584665995544045795228778831900636186904122649193993242132687292470314555664749267140945849898025071097105962797119151808463709434683372162122622842214420978455863727927004668769710873462719686960576837056750033454159430777284174370867066803380676564314571163840356926807518344515793607862974360074963034892935486197055335640771078853727062836541347360075086298550831736747471567065653308202043998997080176820892330544920611139182061616132409215355558256674846811597765804639274245938660088951626131432431390166745410801701212873384606446437804648866622952638346420402430254235603253040585518584516493474931348638918541110896824148017978328513049570356047938316338835281742695377841280751711598757050250214866864894693923373145666424504597553944307897295977561605790966167177297186289967565548665959490265808967911716066457417593900149281210175145990830654988260485926330968868856921883546456214121315825900657011482020663857706658030884980946986632683876653928093667849375926350574184917746054807640059541089960793701934249172433459131812964979720432266727335332971888169445871819504988710555933816647105051056497359953689140410368029456574193981152998088886606810329603376988949687643578678700794912608452411316389332261723395249079168326191745231532769046539811969813406031696714281821776289461697878487077848630201741871365769850813247229498309478769341263132745576023186682987144021557826712968839889743854981707766396581242778549343105192307728131554059811523009393552229275713509694245794953909964127923140393057269034046096555987265996784662637838745942280038982705698058935477271029354239569574598265152898363233526844545384114274309156149188918893117265406115594210081455067641836584977383555680678318005995999793491301123448772392018007084088052376896475504281904081137897053078642419854974457002837637734763887239466918331018164618840458734908763776602368795638341819410384973775082574621669951758199570759203380533947119192342993645301233451855361728640164109399066779878836694268092848134970317261982548774379407472413161543269503151445962567483753905833675572099429321098961544049578327566287228222240704942894932754507739988568776195268156249788039101049090683060482943377629994578932259132578815226220224162629472159483116754341649692263292076118845669305250847543492382834689253933497280650795176836807622825403807860614852076167696044631456703813309029227040966520084109733089036972278941171331309170291469609409466205438470560465309150150355395214265540202161894412688588617852891215806109819036363045605292794577393213535264522873304821717658552385956727118600254278196389448963165676836854940631573539420697899860922274375151538116610591191594455004236963909982569993596285570867980845230919167555607084796447039602557566144419947511861175758204757069775657195869659415779813936447323182129960824178507363164573663432801887794373634972210895950654715090971030493844335654109595890920325444981471679091072713191011506683371698941971736004141423639167413361777940774417275044285634477176716592164995982729714726785232750717688357508115581414107132204478299133266186602092305207246358606644262836149217813735527327294617657343881414313241544749329108628281497187472350936140102560835414597800777837927557162783370791575676044364364927858386511643587211021921727396474734936161640270282138705220333017813867193712461876216342094004531166584459366345651380429211362619728682183012836117413681540120187364198510199050322209745647891516573376944138630850438334159866082379803830725196448093570369113412409450635087153302137389555370256298131241935128063565291239753727875794168074053263206752491258070150754858322231038446138442571413665842000704262277436667987130960735262060174950991669481101390205485433751635410287350455093875640740257650086175364882513504930828458117138511795094128943924654863093465473543954440438251107795060899897921859122225627704187127061984516044476633808159937565791205636288205820093891561659674083087087568335856349602220106449963653898786151485425423283362399535182798546766655241469268920777619462930035975040573427495352599027368367156668396442020046410933908836548439905104072695917104992976647051859065178592655805113606655680936404363258050305086473486963901335848379198021930474804917199481189405365033385728625706661548014791315478474939598866870602988435449831379349144241844867672575702585635379323888069659327322790085465003713234937996255487743810381833280040746213496787251864919297897463742525394677099199134048819066858657159831611004224317595835878238310689890263149380701301060989598414768656024515032205276140624705814324856108382950696690701661299357349578084711308530836193407772298398208983676336656728092289618336289745608215153999776326636078414410512156872790692276766242161302456840268193921128046612128178556352650014087598803335325381182434658619861270334944634923974763246571868201853298782080619101551371182763312785602176352001590528608589108774815550989377158167255061850148117274456279493878626510930026661006550831085704443155226830354062751457584672475108107755487846057065714414692858130927513624522200328625402112629462649808172218104234440013417685096774099828745451988023487874070773750427928092433755052384515470332026629713494875950608473287735158115727993897369102767013118404312251067104851996653823971579947258891085602644184921528576561234423897489736534483104032447913138868806164472989204113095678816048788996571280353455233497774945905506384140970799580777726704920306836682451377337453102840227099347477916709235822294554195680727817248817158908808311390588917730718905154194675837855760248955854620355487120802490098621231462524715735194391615646497028075596422549794636206923943976152084957437679169856668787910462079605495767482863569585384189725105095688501761050709822145925872423934618187069274120539965757109525025570274371298898831618897889815437030918960008554022830525514152429263467177635315864665950456481691695709888298970615171237258945339522008530459305218921928166426163585913400113761594031871666766643697489957351246489744499657110452326629270659569776633680308087593014506655042371558330486456749850842859022996167011399007855911411830785532860905502619296976720149345386710477354765597179912704935150691073646379240962120792002024924409969577355185141496446275994636457293162292330136653446301618884560118743717761752412877770003241161796359815825778794378433431616126674450675923886798152035972357560653726570661187245267623445531299251117535188892899391125675538418054056337743939980549458178649803226719888824541948061437269543627595187608375519699332090607235923922324354415635700455783766158631205533367898998972792285167753410669731886583578340279019866278981273784974679387386050107280630415639467360530047851331760208114001861618879502799575617962967628840585641199591155990500769879214154607271534962805110399082657351387727930285685636098108555816860883212807733058417080102703896328895984667792051928685578420771404457682682926661975046019730846882410741320600286601639135365281746328779108622873667925744844339213110127643309119451474575390889411706699596396278044741532119467482260268554858076736208845380629710955936040548301034888145684937198423834482537001430226049496540654223952569475922065600916465555282568078033506114134500313632465962616923757293069844494316561142705206932963455862925593944254323149329959056614348456918130045649419389794667055773075841702697015554789178613971870594025592146306350773407534364254044722755439994798531007267866964503571481078063864760812128798953029920527115540719502169707704739657480157968783021132861720011718254899288136673589481152291443983577337044390260970755640119402216425708459808871612906889384290574972285003060440160717732504729899949354426787326606085781157037253932889538348584264978878605539708979941212697769873989041206134796560690537554543274817446824996543197151446623841126792522247428117620355017464672855179691093699465963200808769891031078947367202907016769558073918867804014956611789365683801422883806915261568613433501915782020754704941506991549511236226090294623021790368488728009404258473992549567389047744231692510525614458679157841156613502437230402800945794977730841553581707745964933039807774974606533358094483263308881773620960073951857669211533618479324067199222186185684471600300499296452038469351384998787514137194859459936935831956915944338702308929969070666222270892712850040920640889357450164500077698031281450620955108495852880775997979688072511987546184394827631133647280302532523667128931569174917297882608846946206137111365235412183317640637058271298862440495612545054928773444902615078360367440797334528626497810297113553120144597191196769336474991263350131045528107195455798991752105176224624408708619606262657533398005613024742734466026665354346255742821318658803804112432470345770179869158637222078992592092210173818740423371463161130054935568706733939294853790995998035417903332629723862713401076367223925303954282794382669239447791189562553745648338151464898504258799413983139055526410210666165211771518638021982443123354209306964183990965954090869878555631575625432874265985355985586304864948185632462264424830905736592870733301646399649195614999113121620175106676812885857393980292292372825550742514861913207039651196575432824877299937920378040886384294861620256656133708052182418296451293003485932898554105614061618510255964896645705269272972098492091988501170524206060669826677314058115407613728261186823090113966848371427532610998512210664571713760717689227746599946149759613413792939828735360901545893839061768671125139086255988816933068492733926651609454285140543800280808930946825739943654422841730772708239575773050017151981546388482111823921364793316139427248565852847695007874385712291048423503205531248051781711254725020814519015657939321106359912714462835167057008887017979073779743641181019290928953287719890362185253543777483562074457863737289068090771261564544437409861034846986729534685636271390898616064427444073898013193560023694524055148955738502380606882130590763813321079232873238254846919554368222952004950846158976531906157863022711865898928153244690597588871929574034138654254492539182253084019416136682095170695472634385433123638187771722136021444251495979344793878844566232040913894339606716880952452738647503715023383099180394334130531645902043679170792216296128376445944232720851255839424095449048007965782203971643935067255254728466916054678050463651633222353045070996048528659242783495679415950902490813873753639738362399448049218190094740605816317813703685844288080756508927072904558599578040129137514548969386775405319071688212260004332319141077778487983361874052308900077915277130440804447773673567353341134672125770478974806531161260018048435166454186355055040871676394052504999893539577356804691104972066945860014396593670771789221068245474155140469657008176162485875983763073314668415322765297721773637757302328612772788470564585950152916245333242299453381813655262626318567541445702167593657769741148641336207065482236437533483845393321864003713472368442218233575905309848066511560567356310580208827007574370772404250490800977316367880306498900211089474154722159083943546244509729745720277639428648208126830315153989768951415213002065589854770838857460035242250886584817407028746525095265347022916910923127465664253600669815180313545898193831190460398266156869509485162361133326139770902396709703392588261449281321543252877003600947565121325341351442648555344971220351418769574102140736542406393052681030656325945964495468435906885308559983338359796827696334886126534753619957108698687598658934008022607186272179807863352154778978100589244425695352697503416764649692740444976156586200887692372075560844806870166370484271454610163588813422520384709202857503459804802817577008592578939735712969662370544931929985945825022217863036897025021450757188295344872168951464348911234670765985397807653801977241225845440453126617482158223465228418764727910873121954803261824177221721599049708404023909148078234214596348918724808061620080995184238111003174429788648133258540381588913511813534736534419704985763218229957902483301725677166555359246780078130003953203212007191156400173499995267341764284391491784744678594079643255474418018226442652056921813139565545784883275940015631357825494037625793633991106889301998656982369534739116359821069294552316271421991837630470543650837511907657356338832807864664973699638702506033998450423075390039542610694769494939043402678912639677344749482168548274146352154103146860676486523065385085226247358946612864634152858938982938630707366698198242336179658749003467592067137934546592524602735963920448014888984246100215976335809563451159675421860771066246754269228737243721214003525690953924325678939998816514058730628008768805302250222624237631548962106767168661474362685841508203587033223454761544852818747697681048100348823464573032004361224282263513206447697661653948719104163625099958339956606135640093623598643265004092418559630277212702257474504851757443765560981928151499739365145832121540144353462180689890531167544498757229574031744659557971638885626959601794463200170219766685089871140246047368834468504721979807362605456281781183739335884156232065237234702532718135316342670655152903129622741356774900806313946617806600711841306022082534595939527037583397310972042844969082407195539348349250070812342903128670826456639569158596337941617148612286453683398347655499313523928068562298022908604809003404770848370296342310850975280125364338113231194574078022739357622669565647219039975338769577065349831461797465717326530418259802055063356363171122445375579488148354104381154397001462225724838335461645130100733029526287045079189999032216667717354042495585694281953433098828633888790292351803973824528700303945828844082202558084612388694980609442388545965264410034603179196133091680180003695691488343349554929381045309723867703184487938390894347551131236197253515492409270297139303135889583817303265728136383254155938665462907573966040564769769797925405377446040145749615217879331437403437697231604826068842691533213431050769387652477944849227299933149016160569956711666312477117312692787346997654022495600351725233806005886462328772109712622917602873919360885414819305542602190644610740169113926171845457309130496068246044831407263098344764086456527983883011668200517578329393481352027801233586287302354290858794356865550430508338817502751494932757111000532361266579665694286117602984159132048363936975013382810012342550129563925203042179116376078281196560573011917474651858765747457926433494075487618027147282361164432070841205609595603972738696994873414873975530972431094600107285018863884364208299705722269987649765676831167314005352763781011004726562450276702757475298968022509430063856965356635086937500176613095709040446779202967559698177125041363966170743375388819712450461359868441895361459135350475445215493102407108063312248714083424042373085788780718181982340164275714697036726574286941056858347313914735695079531908791765567751512583001893417044753613874671924819305590804543158619382546042061917079553492237786515774773645126267802270956960798762337641627713565899933436915387682871410287298941800181813110363514019551377174929989181839558198548486229336192185105037375428695915378840382708833262949184973000423745652383910282475909213965878565769378193784303557925162198532804917284609348066994176656428223201307676339364018261593379814229331414047135631476049973541155347168417415604848992231745051395628257539165568769218656212165228935497196995054990773722569169126383505065678006151136752553934999421762988657627699085080787849655076180793499165615669774625493526419712244852462518145636932484584030119419961811102005213093582867497665120002196292228515258288282379140543896735208178142277440079106622759799952437364558593243496563954733799862730785038657403407450499444431986602232140804662433607013155498653716314628602100007804841635845953986060915063062511582010900087163463179445827477024643711212424703364905598838942845565495632085543921525821883361953333452066157235131501541511938031907638986036225756661124992899126088477451900233539474801921548007230098329837792004499013244175740086499786856294246999307750894497812712166060211566788965558546803786964643419403610656998736320107276575423628124575392862177560582041862176407371521930496197968177697797465953905410399758876298427343785736994383642377667265175179651758316123263803789808981226752923991843426919101337421396539601191383960362083093073799123734842873133466931282969802846777539703831887611202956456538767281902728658435503322747630656029137993672260525422440932927314505462890073151810651817479320041174094308618631307076927941098383388647478850966322844669755746789441093815374431364232455426407758068275760309948405897927436841737797789836588680938568571919202189013089085875122101682103741619485842703019717357505970186687825957122618624200540421091351605807346084318638476111842381745575620198723042928535534541457772349373673864627489782053239450737811662211034063401265877290328090417617398924504445823132443822737601553542355748197853049673023754328930047167944978178859916023810081134379107758631014854855834037377380957067103628434434307587141083340345315021077990549516493171389861547857276816272273739020807552248131016351280804757497808455914205554299094050587129692013207641263744680366554377164552420764371611514223836652028260637306694955140200046516618864668486387412055086002022833870689095557442039277670271969694286775511206426490149837347939519629486483779874181953913755842955726202572329812024193739559160853769101931395863046340657875889702511752956371555198227062352768176444029103642334110810548898154583173182267369781984856513702921606817161640795332551040303996533230788762187848809285791856538709485116276593096273481184068278773190280380334278672633558924743101906123070918918727866953345892964266660144986523193975619111839567920282870569124023864591408660328650654712783636326339236113463907676156230457693788399531834316316318041408690240341419904631381092422068996987553973309827922350545622193154242810549225299734024764623119065389321200478592527525409165378597872378768079962388845107687566250927690197998337902504716785422022257732709595902008419856845385965995399489400963184496555899970805941106519389671452520796163350600333136709304453164275154900512885599056080752079579661130792079603994781761102121186401607125193631017862669448708344700019288461170877743077819767100581203861471008922667072014664687998194806007872494466870856059135158085400878885940358537313353910648890527814262619855796099402015682381770813684768636681760746027774154361057677346131170325857043642258091890162121322776463657173510143254248588821138755184161018079403832484529996178308931431565082049735345463526240879697557147901883958775256515848524948420965363870087267838872450492636406899691320961701286687513415207838089664426341982771500868259174655560060410357753320462249836509102656205441154930182201127963649164355498343309028863662079357484874585480631520982718839186797184628714201986061754402279775775659646743704788817956340440875833659670985851437898350070164896528854881299874844404192901382781215932905419514528472941956386432478484924026707870455487067163692007690104292795636635244229256764934133704160012077870312099138295295229742193603185882091297635176902106934613941337981806402713807262893185659616111796958279384693973683193106196711454707276211003261929341604270682277692199720209813684997289166876265041105501366947961269638005983129051372445239653151941756253604772603664943709432767940580976886720163093092853783130066181955719742625254912935838996050811916969321760305981752718122536515509981142658729472018053720384123835065237222652903914480136892565480613127420755078074996985442785353255739616404589022823495431915655446542159064469815600139378966391953479381476896478431058672622312935698899845654246114262970449880108653204626905121805611783378103021558840505591591891070705487404710515810937984831098998946847795175910887623789179286094758639559174038273321376909950503475415837784573272896668597780082257302059527967418259064826168760965049718975111342047764316721853755720385328951321113472146211471380656463154627159879813007068499197544493632512563645736682523491215149826298372990093273208962247232035001307184593253013991539029381411994103822588648452601725615226670689506177098669424891273608074718871364006793679312987449224399414553255139966993689604747058809701291321578818300028869176831676106476514298102998921646061892030272176774085173054273250463561579046326345962316200170499592619747374131458028494459633982461152585676592510928215880581015004817680709346023508433824298681052879774225532708167352913088252414101762484063012631350331521259822213287016851137783107587560601269443003935559376573453038936919766227878450724808978970607201358566064942030929739127992059973121564385877270431233646301873772717036051958988840831831119118535261307414568731959484246364302999163983467978011619891015938220742740157733005392855070227234816111273993454357745801396109794105603892765497967525866642510390527907718410526943895689997521228258765437370802423748634791240219374318077936940257830624930756755782582543924562976493551386057995756280458743023430204123544892868576088839455035954032703716317882822332124946092637686819381396294485807508237237187994761251694737376155002247195031114065225514781389890939056560067837000718468356199222237353552396258010386348933026204542437139880024456197734590992287242013798102877356352009185597746776227816462181359743636251210979914645014336960816388653712160853420001711529517378431872747831009444576162837324185900436396868405506014416910324982671766746663235209264057435791994058191821579311854655501260471176582839571964436401275363650247329209404141766160235996394719279882950066918435510530433029798830148696623630070256418122467087522136762510370981003705366730810986087336683164495486365440286554965621468846203419458254399276045918130881204653360331916478040726776451614968057359972355707813812998299067831757250607698230678934882905047250597803071592267568141756952490625254083773503066051830548336440846560714862666097271994107076082183612533457856250361618471716397869893291344808886084441186620031116319364346144149320792428212090421582205111705995858663778392571400901901805508398207019537431985762267835441088465838832496660872599778096625768994149165880176531292571083826864367255202125493542740192346388941755674021787555976481335474782494152702597017740281104681596483882189185474132742921008720421842033946954955727777335608838547211583068086766847881885980931212572317851301441680064544226808743594411144377317926344989723034561170305079430706687078298520889976558013060550101538592099832976005895956338177106729778196104333340170309885890038486310509337763348685957783162802955495269177536657818025162037866631544585828451681030260912377270251763090011429321100869805582372235664265329519341623997209866169660450626751957377648574720756169115884183446594354588772782393844318022007102849755268859628094937354105242177615987598073275864098156211003837997584097487408027431993110030766192077986564944362247952450180111733234765472489246596470755243028523169735454529794874939979655385107026613765345839943534578669717919778847079687927266270273453024115206644938323912347268469748186264698666297256233465351232857789425785584902023584590640352231203728008508569462684462235006781163189093272154541271327092780106076416660485168096697226425774100024629795059453696179236290301709831839001862906102133072875382681463612329825218367480874415439468799430097167159088354610750171811580407361299542003250751600986756049942066652192429022551249948297791778282687066746136083523514480313848624528056456986329309951147614293619811213694301574532086458124139866505492639920860875797938303336316928912329336054026235195068623908722454030361362806331849172415540927516624350923771175007711887176915719174799688678706543384083780913510323056462939946650539624450517108332869952906280148189601472957873564375973997349348859133745382503250405765845845938576810470664004507320158428403641058064548617487180613487405123753405983752607390155068315248426244001867913919145234107036237107978093381617332945617892335274921549864625327782963296727455402249211924409331568653270686198877999179460996277522507573411591553557049189385602327459993137377935395849842178001478978798408440334788912076485266568698448159197881382887182616597269716396847375332861786555345577740922843253062557787831915668043598608277627116315340579827499627191844122285738376791908883878282238006077611556408508206518721210050267889184816059043205044999657880125170746024588444982846269091193610669550298360374918250716971384398172252522928850569974425608727996885966649156742865525463351378508744599352531775406959932680253041877135958245016479036387586099274157205402496812668504390185486175593167773382984767228086545604782261721223850185201042445106288050071929133832236037466380243676516316557306200858022215965185326786154026480743419077261080604671331274111724625590582134220574103779509612427725967715993107090951075946605695644360390508405861833761689935441425391684700321030115563759046482006914162088522612571469692660106393973722785412549241868767640131636555373267386334719362182734087619464491531172637413985143544872043327957295176682411022066710374350282268848827487383164514139259521207831332222863480029020299877898778772832821418593782184846656537890187580651354464778259261158647794929009491599190437092742085474583790465971789405578634449594480823838876579488975116935963919946442221843431866059072998044554095904294180191784195217897043002707809854004666354421347387201768448454714825562855477990895521501480556682174295430381862897843475515639591864152141394766409401572679595445596771557344099577127697839258210329107207568457533218618346385349316920020426796542508477869410498191827671400539137156730691468094278653322356319624648033868354434755106277959519777946398760142497326713141514443237463501165569326466168148634530738869257538297166257319599755725366835674700459064657654090564616191265178143362234817705905160115511467065110267854482527923410267304981539189307609193908452294240159272490608001060172198260810684302235778320611189212943209936850218791625529564662452930106622746371419264670338000290238409418326368044931788456263918900005422586671690798485506634934617882397505407034838576092211284209091812610958532939041526669438922345641226761618653355415378769124423966176206408100830282457066391830212575789696991922502447973230540555897750658785439795930200922948577339895721292512527849713344766079633568175399303174844063551798496002124655931936167789142127078233653597883833003536026501043738800741599009548192749613112742473846694498928332071569711150914994428392490262315714251198270678030588324143179807614924510510270742498394670296049808825185571370767042455799431939396914893475259526024287952015813521473363062104109100350990994294153900084896029609791007104208466687790001244119493504599287803552080997351832170396383707457092219021268882509252492355909780686217080947510910383993997387295882898328219943432243072633048732472828895546189085654449583204147551780663700619650858547772426440003556446755131394677641553434397219501317053129334489669982429505239453100792414276451703495800531042839152092742623421469553160725551038792332015531133627063694210582861300511986964806615721036078948055384372975782682627514034832083128685649551630216373540875235643726993354491798244539458841558419735245793424990976825738950872853351045938351528222068658785365770086778249274821487076873979134886415540159994244746339818283749295502670298948759871744316838650234588823976231399867044767760341245542272822600320595792869259729686221814626347171129793919062350172002152859722348278776481643065567701043164631932031070911135703224975886274176213607967536537261947201743160680298496617064524666111180111763956125738668785691732374083082736566519053238914445790758048932812047267522976897292493309490191818742796834079646860675537915347627261650214257407291888351790960378433867278309870084992351405401995224489701590454523361656497511496995594239889607577448790563014743749237006531603800601758268819493002034630551734999768035352989175664309887366073769052556974771916878038303839447680085503523368174330462752777246469933564048740536467132071542369210331270682203507768517644142491837783753838117488422806295214695604555408405639016032148919387107990324964566972705270079743704448286001222150993722960935070328727606709412897153755841210105273273604246702727757411986432051844052593554090135439152396594997020522664605506205727742340014522355353737162775590181918874272942614196500795724563630272420390948095141413389829783514470267239250585370673115886742342603844711342863373292428030349307620033235979813177619450604545006320213500398490778355803282204740610936121683295821995822541791692576463940713034232790842700170883742506796692724357731759634946208143902831933971388537859559172918234572547492595348221307676112597968507933729178986957342926567277232272159443408680610390536694989376386526590835408902043538288514058704426808256218782577354135423604420560036735501682301213371930314747661896472226438408808583217687286384911056719760460031005977201741392555988489099028435664957732552992731100219670585692511651265501843625516770662980087183145264392918712087104949247524862755881619600193437082635501889393998614910251990416262262085507835481016754472542417427763407850902817810581791958652661085691156619912940316319550690880368280682110166945514544886594665446824810937368497573490416971570417335628618830341726493819587926502820968717630363194419146297520720889332909692847119482613542397357189375775538862895303554832567645571899170998754033224167021335466069354087025135907724831115934928893631022307081574442699540234772777376084525658538827741693279402562434922730266621061403044814205259627705901165322807636088622557362866829843903367114269319863187804481949621768912512570184159220115850677998510840709860102245772887175492533259782664715310918957086095885650339695416049161372974153454801818876700594120755164664775023298563922846648393040128133109142207114149042335162493854045956830928835422141202210288733003385706419396400560136046727761114800109673638448188029068595480324400400750082345789074558804985435775991521568998410569745033987065301982045106400339385101515292490037241058918864730071841103533757431140029845355494392153985899898058344247553316364745816678704247425404920041020591627796266623793441255347171152040817927005427599015696427281308336795818537797930103442407365591499607842321617582752868724048171993387277744385826215085077182420397765598445800835301492625089929152632281611376292043037622340559279186357860861208144786335337169265448288036852186049123197395511277496048065681291252078565535827451599268561672509999315885061317846462387604494505262095688579118902686330934795601380691577918982048988234639782486552848222256117992672838528978982716839747525535812219648832351736329798850060421054661451685149438629694210381870975844792468837774395569716537415556342076005454004757438922915537082660039075414419097452064088421831560864048609177449485398526648517969147595347453395159890458224785623213443750429529658926815571586304113181538006862088107553462572954987905834648547336615479950784797999490906804634410053132621974215989416401013307723134551613901376824239001908062012605331152593825558599451403452575969389049256408425644828140690710474605267754839099013592347915356861761253984336487646491311713934700781611201318785383518077032317334636226931771227835664264653040294514275902472493976644315664381626050392916348376558215760152890655269097254840427184103836555169694946187305572664457298281154164953358485181776163166442881566733362236878486432755879195603359899930629743366387817979872562873283782745096672057836414831339162725659158376631136364775260026672789080367730499046018708616110313424887072054050997624859795899188538735221982836843600551782080706792346305305209786769570506302407918002453563184949075081263625239246367572583695020003582173572388927718536500358289549970432833039209933933828996345381561380865720749997166033088991071713728698064738030755020705660604391348748552742638475624880144121047442462293635050396366455801317154636648836145622086016133177798645098268408089934907611020360519017108217908474640852225706384115998806131344125132286778305421632714868398892090984915135579466654517081415032261449748292209282485605698199006811332165647271519919383427579970530952510258026707268921645259377240915882936561292913340345708349240279405083646804719397019560956933753390490372942758448526454122392664924660813595228905702459706803895899443368848982864754973211526475818897186407710136009645462401516543990069839914609933916527353836776975733501390718842502108712189848825211534010095297858386321553334837644456135298356912492607410371230862658788814900798300879789143430131378504267965295985923278250224596541015485983502127425692773887785954702792920225350609942155266762870985099437713960744959410791188926083021293352866961192277317397057091837940095519847251867348082212121386264897711844127874268842584345458385299750034926289974375403024387635105376682547977720017463795179009824377312710000429015822290353108740845526102902451781637124404762493666658380075592031573158381533139010368445434362070941333311078462566280804822080158144600701386681129434766250006331134468287491843744864707870959977450930455520456457823944100354972795867443387801678279672189418601763735763145007579401098726186388135396472880732710554936043161042912993423706450764472058779719790423474475658169245155254206073934662472969021089398165015741438882508056138608128594441089588053523535618112005283359040737937364394866935364064479132666765121621377149475662443593541506126769967305236933962761320501981410020911285052565523663624847558763376770209735760931511479903406798729420187242779267924124388392426211469977754872021026470754287100142804590672351940034263237396825058533578313054085029580736055512802420563538593601465732473561368499059314276708572275109620296000910248219940549127661927478888607435158792467131341385949570970551715192851960994659302800089781342441508240305754821243226745977464871792767512154058005131331812014780411607994038161860693215082893041631950483138950807997000401373802645046035853583761634903367903321505588320419939208510831318534499227736867478183896595995343569052518398621587902590685361591687102118341002666307068246814459377769720744891477281517175711018507422163274134617953047313880449000604466078321001678487376309118959884731199673290805836852901372167170977155650920890475980344185707752549852738078890622626143368272475419727459017712264958279883278914444470055098743063675781969641753877073583328264192838402733207510002508978689727435229572252976208778064402343516997380014842653359388828520203134543473437979888330504405414669240554997403678166089385177502597659009188602298720151333417296113539907948013661036281432704223584316671666018253205979964901874142261049069976005997309362846139824909706973159043543092132027953828209912538204479702199268373539490314822843596802733693988547277066681962393185178716595321226482190465933497414371957450543209761469737208588941187399115803174679034577920437022257139378258531239012959218796821386435437547258835390605243002436012394416939432583194795989374913674808990980248433116229287102762323912184836976799505580480134188915261823490617719521228825582587802471992839870762546519881484505213847522318254283636278406189905919637329612790109999831658344010714387597720285731369772945045597737359896842924189743086411158882387171950313424742118513138436966911136966924016326921147071012014786332991094494284462130018316702654330895598804881036291872147435023687129145790472199148795265132814263771191391268755688055563504566302595144883426447552361752975345556610074590178683410117572292495427983298965117925919790394612541910869258107916463180702326132261520201593643347723080919987386516910660334270741462489998280414733127801475904175038939905657222456492161291824581133873088411908331068148265579507372997056287142549425072322274615505907248715312849685720374960438522080355204719744906967853737954657584830214807900769737618851964666715130212217311369718682836228275503238831417280927187928909102835733563996890633502826745154973768327132762473709891854277116011472982227981716145830965345461750673397095302692367376368569261150915558091207101553224930637049397997815287424689170310592334655200352217336542930289782459020699520337098101305174211624325247598228775772210845631145602547355440110554257941263194833528961078504590089992021626995094285516760922705037989531475081131050018975138505650002171635646197860862756550618148913855372130659204257980025330693158833857108724828268149060913434467145598873172420630871212081660730460342730211391094746634684665607330196797766432327213797586966601449735534458472818203362969183541818510619009382701634553764792001274188256192200428570482470951444724645660728694204120559164002214069153304978589604185780226726124102558471959709382883296480244925984282698907489436284144643694596155747983244689386746427504437456300707767943345833292880461645585239950290412990976497278526327915192869837772770753904284594635543120286967270684474512083612343553676917131403021446659378509343770188037166881453384832595587621906863027479648442833318223112313142150854114293861284338941104233019244870850355785426604631566003245971553337698376713083401829817083676568629437706904033025319228450058968164708878378205292972210444648888653779233353983614898904527119235599799116739524592055955191884271564532611425632805356620430979177754619487794754387287881258836319747573979964569208942398882148172965411437475221667986290573688086336362292653496161438616539233316020372774150184013511687410790447352765784412978130770913543921067037102872044175014777180103189365157688394494008861724106459330830250744629763796029805617566436138569145520094891691683176909651024300826619042518495551921309044648662316283118202209382173859742213399468205592230826971643774224292170521303340292825727841902517657567506535988559677625169104948571794859096831148923186659770132256511516369267096642950150442314507085791650468399264378739690683373811912397056054633022577887602225884065947075230524109018303373857774109245949024447915934035451366458622282221226011754082925492289458873583869071799204368477040641456879608993543486381328610704281297140704325173831567886990960542682282601004289270612510531462059085758051508038287292676087663167546650030649639528726648468422439758982023893011299235940392844040006689333616813685007870174817671333142863085880681632237774232296865514823634871406132567935460074061897765831729009870763720726300675389852437167703679630661812031728282316951165269213191535970862824904903591041450271797620003072258063512952818114506555638340458154086336278826031244202857037448635599411976748580630726679862640891956865245416224824430462275314425201584768848792907246756056663153860051569293689115865610204507009068069038641856288031061958888091679534580041042150864661035042973602230467949080395034734000337445527973969107553969004607978174289108373604735380330637082831503173924077748450776138580765466602846210888166153809263681699336035725686517975086040029360600708115514795440325865840180561491678644703917657966408155880336717037997637407741491713161835710749204533271182628762436133829645062677002855246146587349408964226194248804711033415164666365571596043563310972832688530725865009816090275334620046099544132207639892274170858444698963010085594684124813143485249799917935209594802111623611129300140879557425839497423861659972687525672056229431249120068356098217498999025476333081771220288056245491125270755180207990899752690397229102554706526598815598256629881277839826693583726770766629340501450183784374812939807236684705574373685984349995663657391172917305667581625850498752601168731968434312377660208111343830304727468811129755302346608487364451479495212386932998719648470826904636716814057015046319363353343125398080306321825739747829851077327224064249540196465334833645574362566813294300398399371619898099500045443807973953041150939750890652119978459602242637584745592303106158662463133173545824531902454054807345730823599850059310599954507880733922416039768927741087271566599554665939952829941159743412946858248104645579815438330266718486520712308465042329452250480500025807465626136450177170140926322358384145971178888962961851762577886900230216905187095671284863788622020429660274210710843213214009135889156276581269037491594261616773501852682046656689697576724487542995953731355984206071178275730652370180917542209953669736525364117671642822241356027515501885396327889313428975142007975198253808469825850940032314887726623647274566187834720920918334878940053376365624270081700750510540792589739401022461878489581872459706868036673247840833456353726650993075878770483136354859163468017462887184395851773706029295295966607906975321075754806212308203434285019540936531599613014758830594460139035342057736162794640745457711965823368834486568150714063628115311520478243450549942483453107050225059043571750685513952127707168115282873059735351111577143233933363380822464639488080497232109110650610092754006734092673247541099813317915425033299854375087521205852821388653235308945690599892168276796250816355383788823215512281613140408454035816227770908836823756825964421492081284213773982174556582838307776020373385844901413810359521952403981866291439603679694505895458238285788267711593455336060599188973756486769946212638141640953269159301767284829102776253218150755862824964484974754062162240073947399912139196323719725937925939037550865292171280816770555952635644319132780573892283823927406938765848499121820385884746231567531846633870547276516415201253427622668085031084716945778584127982652824878633344542986393447048187771689862462219931998604471700053757064140234577738553249797541070291656314867659359131773216954446436131138592664921722302130396247280824991495898043209508309495485618029011450483357977258755623318850622029983171213519899221691629016410280004817587476414324936271081619466163920301655801812035034595321014700852282595295978004101602076029528900485529340113263880944096608759136344672955887447712556112409570177175124396029052647686014138845381866006295735592942213832295975792012165281864904298635582592711280079058918226657795315319014374539519105786045345732939234976138438307335220335157027634584552620643587626267418224028690414159426693709008366172945502239119453711459987199650126064013802868528884565556718429772308598077452856572630829353676578426757722823064013707929823627389410562156919095486939200640167673858875823814884784165738187624734581563043725918451961085812589411294956624113479094711138621377007044108258020578931235032332239440122063819519136673740419941621091600183756659330733592506239794627924885494108667632568592428125644045345617413048188956415890846166167449213944962509138431386916993321727012013909396330169873292811688693781020430808640146173215701567162141060124417404912061637227153383530730687261249753501601330249395605525585465489811807756606088308529118190252794756502082102063984036871536593940581369419549149219952702870292106947809197181058866765818960165238210984407340348165755000408012079082195582877994636612673693641813569060085071072474087881927883724794905344070454768499242510718995080237772950039865246278373578802640266246324581900174885703617508608092253162854448031240962751333114811946160402276399609430258750575806490232460240059015923819540940945730599310607178024624991566368161874006472707999563095011935843960781178697626877175342984982465134707350764542864046478314719088033088754542864772075012002049431575461715225915474119479259143975271172162367750898451025020492798051613616509618074633231308178841298254780479319215390086285643869269910261671294076238454686524747812292389828600905443084441431291342212066815894085404295299335311738914082162886201456551964563795973202196137760525384425832609985082228633401400911100406970261254138685649491802824785976652002484193376662715694560552893297550250566571209575621539964977516620243692181513461259601534929233412903967059253661539625020378836544778985527209388934677745285116029022085759951132271808175422371462270956496981337324912984231776544927401922715069048951005829004750547281982150580283440662885275024336852333400065613146628433701902615886959600780309796966887490104585583402433753290187953989441872281253506704276758946686175628789220203080450147641831141255801858735138872875399922962105272821685757185245812400712489031529108920162498729954391607915857089422529292412107410493226649842890508057464637636666263980251126868369711485794978718308963335710316108890136937944776765831410339194044086047156369292957197191915609261391305624735224838615151919643586854220969586951133309898600996443588376020572252373558851119869234932320554431219190320202587161107424299275885089958311719405967195413599155083027842457334311956406115582188206167611430758473861890904993966195227772422947122997041403047277998582942550864936476087495287971497541959860628346650445918760342718214141003347923603618428766652048971162388236514465458921476090878124728734413182007986715398010294381719313207432354464976152294881038570273326035075357470607770325713282943569360368217674209507037215311095816173783030438002165709479316727458970130052556837241479664194634493043015436939438390807223680570273412077083767658317281321849222290101755045091232448242765362384800143064236241591744065795267586635572901176474425821849956503418005132040622604606074818274597833349559925802878122918912879056067592919676990216673775596368786314111749765357019332917049374936131144395177703639666371568824305255180918464970855375094772608186704466001251007310968459646275292328968244814161604071680832489809110048601574869555913455795646471532299669874728939485408121974141772421495857356109898484612228678817289097652227938506389875702490524778440993969551990202057973776496259400807899630160584526189418500636848403165316619438400282391593778574812735024660964300138564935073163847102439209250764516353764703984562704842544680067645948427672024514643807724432032889188037427962044195542298801078749876803147433451460631296118715706002553172362832403062761302138987814861745188539467003890762074037926412889651375484733207649575544112014911491466086136874439799500969024374718882831702645855903811341120450351208359164483392907535201174220623293400274195086409531384616272732916712444324191089560056497996137019513336853989874432136777564815582909955889242918331253891305359530757389258649621087835297560294587308982496958752978109406291874628904546962855694173483810434522258695444509907768328424240035059450856859253215370650685876903328342768388791396970005875730641142685623854376102277098391616084001283782238413835323563342856575718886158121477342632499666168695001907279435474248059402241695341984047225124378533224075381879907585503468078253070008144019727682141007176263196251076585974020622565272106138472824203935280432071477934609597551002302055230141562615008161425691508412125213851389880793329954310349112135926830906232790317243026013243014320142913615421218019370659541364067211957941822978415438050799457563699774183301433133307040757972457822421971862272287014923478391551159524926753539077423515685821456641053540153252918873011432227064707249678275026017486216067541569104842188156074348133305829938717147287759220667287804872149636559977600629261923721339766635218889205718283068299937770755970408051634713694706857245930051809161484839024861039113427570101284265992620998608067579291320963460044801980509768734144609674608318568061012417099915231319104040558393240730038387043401459062123692309500528693305298973320242241925741423662125236004765569980817010723416866640949618379053032586766980928373790008118549491541138049748072212818516027646301693720331272876629545051379744197435082452897918813319133317954264515315268287391694300034284349635144676068952201387454171312256710435170066577948319603354619277320103535377874558178152293865246612642661160114801300082077677584822018079830882561510239517367342473415871363371455881620558001165926780097987196645424922170751705931859517954820544619820922298069741215956531429746762119877005390500110773179834129230724248277854715842318786016232273354047317723268993062947004633086860851649637491070494438777748572989926365475981270157659600103278243353766293659678504506013484053168212756670478313472295436727936260121960148230412297596904277778703753860065395144624580492745906555981135638591069360554658739667313386479854653385649697736123157365968297546495337215788362184107367254327946944151021931337195948955377038230512059603205067636869052120322232899735987802829919355066472716083338632568514249387190543765278082380979854130548275584092733384412088190125774029108578459664188513729518744211571103324433143382945298087552928433712953973635031459305177384130861374124825020022829478616100636697739823672922840436992042254187749868830928774634330978799800843044096945781847382468029680884524025987977994008204284339636484980310908425240128793486544230525958459943398446533191510166458795053290540940179536783537424111931303261231273165946171843115966524296107917219414600268545827250359519453434424061619011839359963819774124202034186304368145767149971200846338300628284495049385124228367652185631614067724342234212319897664149511664055937059035723176306191868554128630745071288486954252937114118284015282728596938844551062793720292549416048391823821019067514740982524315703459645128306661157595081125199315882840536776996181947434109429307645839550679169114778644418252327598045757455839522936344081429659184571984285535662085181977513449233558119762601281731890219385897858105878460506868283950956490502633889004405930075346455296796377610806825518531070539356715248276474335922092733026495013598505402668766358843587400902498757365357377602411956212869296012682361677589541229649617585962251679455113013972459656011508557848710153169733648198511680948777091308306966120622559372090046569834969145327302553697628469382071936897591312120787551869919789931786038689364312649913233531486975691193176475502047486535445422327305344622022757880318555221384492807446847562081457712086270069719014995224331679705853078271154347819207392133497501599351218133898307385091073134941387856472070460418217750001896866034917425410062556324446089944950386124672812093286604105622602702242596706415009542989452370151036094370680771954512045744358842561616926361432479571267326473370222098215090122024535051149585941462280507687892283983406310233096837843649497690768899802849485826979217288726097547561370373515321976476405483480639375861129622135614609502744093610151376806265500524904130650150524610762302558106538171639970070037296733806410606759090661285660361682189098266571258493268462468880738380375329857343918849531456980367872466063633522267597231277802437626992081590921427292200618161910975682935234294165188007317246053407173824575191488686912325506298645450937237844571635896949864655172539983952094409970357962195487889475755330271880745696605781133790716477080352533190200369366557020633148674949560522115723113665260446258595698922924541246264432561890152069577577307454914859553858809032142620897153498191756971610938729193839453969917763872102536107255493931928267383394771104919479856173270147789571112332190347180555767930328190231392482141957497394019495858929542206634052889980386793742675659355593253081254280432406607392703022160160341812630020261054987773351567354744238010126344651480199661142051703351693848840900510732331009757931456538048153054580346725505601707141867514815189074871262374597408096599788452745687667292351684614160771482475917581727095682620972586321959333985711680278099049237295658645042039301735494167837681505087650751627113291431953146226188247654640029760877020719070475482493914954084518379828389156244640170190197917394822716488944824644680046718888664228813322816755779549208884296660704938125665663657768993741149967596604349914419491934900935559331121003180300888308941009365249535335465211655993209955979001096467086721194135454651134831926694863447075397805419406887638192014182067809872266056474844830843249061999429791055272402264132888584630996356310171967323205416723738717039829739347233978917398918114155273756907423479625986023261026180356536262593953212389325188620430392201348352232917539170045749072856833018557023357357731215975104861808880070487621507121000306434800495242742262270337570053178769023756323147298418445655200311820452759237021233151415174060614492448603847611484793867402977480205511653851112312735784785705524052247057617453439809305668961685564410550878182638267376903049398041238982808722995191652629898886341784906672838289667535985816435379537197254584558001851465377793426439560091905636063118508881770383814168457919187052167440524058422019804186395391979588923353070669686268941778968994536765841906036088040793969955500468213498213042962907377622161781388444589854655380046006477918576293641418935817239955947650322076263939222258484200416404744642303641274918083008834710183967030560955007927646739493125405238970372202542944016284020066265728991141756920455916025254490183334599888954973505708049815499369033589981062260143545511746087168770119827370308523451423201420028994594751892923289307746344858303141987769258673322466652285835930741444063356801648868303816112003847376999374796169006586422137009700301655165376495841718708049628082562265236609246338956746565694923615645561091695422118742717354999456556132140369795289843974384927214654737192131593795472674816153659180450439615741925371037496258161889532833664473885299412490827337874350782747226028531121281647281549002414940042818580073827757033430562983681901154377488055721241310933135072834290956148300083304697798279750455907095325948432745228847711071793632389303551309513241253905739217200204990232759124395124217219355539437683240484499439710134742639713908567016696931105970911593352593380355451321952844316818923352831417019881341365884709366538870451255468549829670911812109000373672108978500317014405691638156808734312821717098432564341569120783269426931048484263432080236029378626009333690891527510130615408629215238665477706622145654380574412335741766229560510265757251730466615350295502902754201484850657289243480519160205394000861045005579911813093651437525239696989122003379485542862666043366457596262832780415410575415999933865594427711781715816320615579545058903220057908132904825950578119796049892184431243217104008467679138966417786985687419814044536692447279025819708820167331716269099039144756315269872095217401885235435994765644091126941107698979341346894409265891323270387910417691693754186888982972762774170512361258723503622420969250400063032989635739131890909253351737867111518364244773353752477675537089963329844012131190829976390942401951382133919717279593121943941169058941791256941255791022471379167950030562832875899086926915287347769606085414906208774085893142281976588787921298682767523704273294287380721946597656279534485554237963395998836606403055007171071123221963650288319430001705980373884868554403181726424932291558730143023912875989044098176543131688109723705123913676074867126370796219624324761241571356288468129281579872862983247642857841443517678450249272757581903334629713118873123037671527300092535364076288329951091262085388124458984722479671655294755753990323098284228481904156483775383454470453816120317156022049099587086106094191091881313979457007736962224034036964369651156780515028292242412351573838784250625305360363080816203546922649827963638082963699834281361202592813532311786626994428957750668270798257046845516245960503207698561404928880427129545815482762740348103758938868902858626420097223859071232951175131467217818694884410444108060404770326537971244403799439858388338250083801582511631034953481257916883956075210695952724216068856338116543108867284361730363578513217014479551654092705182475556159120571594129859021114771045376535704061151795135194607638895956889020872655490781190827564859634925677549324655820287052272369202448943160784664515910659863054444350532051723654586856473137558243698532861957792748886255333744620010714418034819858292259952408959464126101858197288599860917351588571671989094077100099912093734151027290637077589880484023238542078268133860398704786495482370114279013898889182416368350030854455550711629143328847777685363435440815261914822168219785046793852086615725465833499647524174986687511053414860743982969394541563885713895680630175382511077052717250196132138310669434476424407552480092113464507883965061362652802280847027203161378380623336473775520372353815186884286990718615128096990819652614837606003774485043967535826075992429936577810176385343520202656650988864664141393025116479954381193777339615094452487857666502829497408979359377657627702189739519272869361198189086683497476834232499372475171467733176756098114228484083643847944261391750393957439557854986659420610883789354394597161629951189254914387705723449135849028165383465108891010591983345226580639445552614961034675326752629741268116289311768346999560957530717335797190229018332680924443778189646366803495007321840993104935649431505716071048313254766838563015533680822496610041576430580437847670593343869900649727453230212551937229245034481757922371761607901216659214210246680576906307291231391023700395324792557835509820716658550152528210481961945089289664733044036395767968689211759224999766151849179976253473641077643122477950758914171317707552519139298818215040718824038699643581606097367963881133054918093095884284633508651124457412918479909931335623441819172047160674863620026758579265523249323880962489414416528150062033945766256880377288231578603576213572323719089603327444463699142959035785795199383554125820213723016518194744632621320636006901873274374604809766613784847046220569668366928930315505944043732812479461912996338233958442964893537464517310581978325856226825644380443035580077107953933779934337895476892113659651540422852829745174681102412220672937572111921989956681378081115931062050966566706205599514145125538499514235397509281216677690272486614196831784402934553956726536115404536371305501306683278422404746178567332190181970793164616528517824102362050982603075488676512329644089612037840318322379754040692188277939286798692790819506887771955174200062435342984410098294305178523223007792051188127655411241879792633302494761004632337240187941657042320184337582549094883543018740252744077399539835406085422452840899766904160409598420588936734850359820814739910980245847015456186122982415489535982949450004440184771230153465897450725016364644526393978282674508162732211984685321671714874013909300992160634620780590455951849448936738291168455069071616872733061774683715139982774247654914458201720611706540016819589314253551642532581618344827816516102716245028277654730741609665183257732773856213767113688089178791856228532036040648848801378191945412267072279068710957354295744794056264182789751105723905053923456196132810710393115263692559829661482195601611125495004659271283442139090007452949466150058800451779076859772524690834993596109447931878593386957192271540224587742196562153960624176659372113442247545770307734110498653208782899128233994128249237958122148394506691070916107167665936789639913658691243911618298980126673825173808153706513043779940402446696805570995954912684665926316646335881976680562863486564690833831448013292188761240045966807255163257879831404980822311080837244248482740221969454587199823034556938410054489070820805928241221030157706884726901992266691347752632060161787099698145468426857665381835101507899656718827698951680170332862581252055151770385746935337060350867137686369075044038696913402677970312385005470217569177044728081230671841244946668819944192917069324506149666578058108918776383506909360124912095306800497453194996018056445209627135679053167536223103249818216754136488974173411628141773316848347136870129858221537005640466481826683481107598849548090226150164632158422293265846590566605070356059195526346646666529002186949067553847363037206322272055361335237933735511182672094940979929669807590478724685193309678579979330446218849674643058464849374764003492485466634751851572258530768289008483743393068380378997151960812588094357365661112557416300418340052340784438065535150389472609267058067838368329646711374841398134500282533835599717594204207052909008453209410130350506511222676363709572307094916118567016669665041656312137541659920760263480802583592585120607248117495014411170666306662135966775877645927341126263350064673697634461283892052121480358865699578050258223361479497718466175565533586654502817388855284892412179960813265439952995947509503899967892233471345309595740890918677281744856692058078783402772845624581475011858985248363829307394307022608359323875823452010658003477946025614407006899628206837626766942477842312870835530766325104725663749618976436581576808591693736820865444269391476988232930022557974024277123873771629446799000232766198705571272863399806591868402498151141885954295122331450097991097879956770737475980316856759541260652713107979592186523590555024105802348498203341748402069106428664087152315830193370998327061766634473747931759844306716343801438733711917496713947116951915771400510502663371723569972328051894508201171812848474914852554309883336057115522679049635271671551221723922102427828730960049802043996331927211293092615473096918740802621737690702765302810585948250661054525340629010582343077857357546132733791423317092593097420218797445754664257577351182755033597858720186323193660672201129441320633171175022986344347860392408138336631632136314667029477431489200653937614656705729537710949108037112856508436348287518575817757160961618480163976625051708683556825590880358963961532053203596183180217474061565351649047014912027349330549481131385026413159400219067571620131376237329685849828347478811905398472958552802566740366107475395528432773591024047334528850548841284586036433047975478237286687183675047473082774145468961295596324322671780501792124719073413536906522121508316506478203575284797630496557885763314127048241845294621997648092443494306803521466145523248074111123142746192540560164083831800408751419007301611188867934653190654142398012368924188681477380508591200393562713657179101694283368193904367668030059952124400999209348134747524372278897256808576519957126954907119729803175520433462483975266145717070597822960290418382658600883135995113956293729986146278200075909471739959681721671595504855395042842666467013985634569778580002058707764535316410280374614007336702401905363070456675875273472641424937165031078098143694418673363754113640836032536568728962949769104895507661232603822695594423764392694215630702045683820378767075535992923417605604660012491516753658717504182764973566640944272499264351861442925749659603746347442136105134859146466909899221340186560424242916230569012182596404344709596958881908320127327955270877151338734249683192688281792150272141937124898873947666646855957940854376146230084786367273221825564154784153996887954347498676055553518590188596185626516857915772882602845999547903463976279602574790267807814049151864784360407202478025270973826027135999150356345323247272299689364541987441465947137130076835266029679917102950714759667460295158566745405890919717746089472033786651292374926181789698182605732351834057109907664311052454774129294637559191264415742725266209261098522824435465491443814928991397331774176810324508737850728915137257897133081110833176971030775645028593261295996523259320029904263602794259561722217149978534174618355756306284045923589820286244037164010673385155574006149001634020523383256012433531177043989558855866996740097417195197512078912980405525212906542104101563736400737935243117274085153165742995904410731037284170341136460709465626706574574133352594205137129497302419536942322836250838311208500042884320768973152559869988131034160907866048947624409275763415429382658470655540074640573907090373385101086503636525923740155991277781480515857553006773849861083316406305996784090108399400796817369427496498269657934635409721942951817870076317545428417062500630286989851377438771012587052665405748131534501081443351743729394241983416514374750139916892537574064599952697524724458868271744799968262361789527310346956400220898706949614858341339144076069502475386706973101172346581813033484992156368415998710138998581274408718800845828273625744654935550554433548299148983171410947605294209872399164951301330768189881196859831418059195345455586811252585020021473081431505266640352633746540659654038321057971771732631581202693491221202692446251375997065359981646087433429789836128885225522985694414438061220456854718360380811598880993508229496856297739813540113275399841345310757428454612149097067834290445190556757677467199027992397646783800805344284301973569682876122904905599843381641225795997884140281857666574846486128566711641594748779150735572961813764528060758326657878109540782440121271758470960282425121325598510005591434292450328953853324365894638474896372082090948593770813203387647422177457075100929484121660263217122756753720777908253630080959348110649816210835769824746744495667786436633445995222428850509199452117370605156853318683798382477079009016080634421295538168255776225649801734753041735823959544596084931810872473050625082301722325736176725111706521872361961288610406182531782581007820012232652010517841098782758797925598144202347303536261903498448643903672427920839809984782915944847758515435766578455621000913677336816680942117680274805201857542293117788156647094172345328398494003916054951216431993632591429805646559331085906244382569411461774679224262875645448516108212568459726268033483937664431145548711870919735360862798657679053497584383138735938459086184383790851398965881020664606939407369998704975231972848340762150001846694731864779932015925301789428656395703679980253350004686316911442666446155693094321696000958475547451914815942052003024380891375278775705790103153269281469681423038020687886525988157225990038590409646810564082136180842518191323617153536286133928535435629184860603146517731549025080577143273947453529742602252602773175374019312640595340057489191351190300997888955191005620576339187687769453374245668694230368628927628337214518777842770189401716345383018694874946926721625142993266267353652449753409383156035421535365809948673250627621423300528604978251468576915016264857990860132505677564896474732021155486018354610889493349020499116011316823856440683643706670966847582005635094050155947509327111479202863124430828433571456063966871476938346257043992730017472609647471606523067451321609264556331496492857214382844306332457680013895120796295821535484056181625281439974583879105417559964310747085595859733186939907170730202547286527174419159792108691621071081640413790237852557598579293502020392097566192682628414375113425940057142146484589325118395003126477684294610612756352579905079921807950204024962171957668697831275051207422849970780733900809641146302757321826722326140243131478366240885004859085517514184090866752008874645883898300594511128227112591885489991035574269507956190249928302304929130548400305641375243603947825111912600670798198578687412332010012950891686437352094103407667434593072540411782615842454587155073681904802468874403771399758481343460827429099818198661432370231548164551085561612052304913542608816938943101093661039703401269870284572145490337249787296663886888438485150294261889943503878391449721044505630074937617577266798312796723775292618345907904719462416329881431836553919745974945573213306631334136053424506421868495161294746321732278290822805790539993659609125616383944948297676254769995271492764492236154322462338481608376953665677348266654209299029216628555804548593015271273561283892295070423620981475245616955651844973427754716036605891529360383527077788458893726270830059979354932783435596107565160763246786684542785205221945088602577909853542407857502855150131337958485737447083095269626747427765061746025980496035255224378580282293081375783598839615542462046529365003476583586055458453085137251609671649323713788137026456275521023827885890853463254414759860247650906218352680252774393202288791529613538981854958197933979083464798716192503033727556164694713849542917770413969305583900062297330208937460809656869124237682367420873604853762493787202694160222160403670375267290048244118433596311728129728657641011499158644065986400777685368277584309656521869495680807499329896023110335967426278817640081064188095511599426089487925508181014386263608464522363041297931229591514707355149632692620526209840643750339252093578333068073058800193254923029205457198506416365438197445174246790836743827688943980327071806352359686189055176032685798415062546022415999282505287134436584392128976650852581962020638301498556805783928620282239646234419703773090121858679829324727759236242484594713927277771044136464065173945171298713318776156931213049860196137475360539904305476949406548268552959972752751082437942291003333497098543559322552814909648193557946901569390865726414196059955267961229695893976176082408208604126995778275647207714292700012606867029335535214734560382301738953691763096333253293508593616343241429518301493257994590816444034639449413132895298819618290027075447313685808759992183287569696566782565011234175221494079111108610966350410630573853094048754951618232744049991398241399556719162764232034406877659786787818955868052104065407955968886726759573627152190080574393180611352480942960127474714433855362453401412381405920676438936255601801060364299610321248838106719243421585004657711842275151250022934650796240100775737906936816811186588361265466043723805874471469575072958207680097082360432462699120303266073120581393718033837827383710548790265892112168493368756898136929183900013747461488616232419415151663505808420093086020085407261647125479208399210624414163274872524212126134989240078660179789590428326173790793916085887188423182209959091298386448082284195210934974006901995741986229875633076501455928732845972459431753359389350379148030161099891919841365302583278715226089227362517339892617715443089001255944950776851960831671296842136039722169755033113571800181509729614079276535469906880652486802938804766900330377198868159936355821221841355833162499969610960687779053214584716422446833793406789390119331855569091071494736358814729997311970215305770545214976781179138395381304645668978758670001168108095263697136025455732117109430725306309450441643456651922868662070909846261167026531366286567940071382493646960363522376060376095580046948742477537107059716397218126387419919723729268082008316428922274885073638136652464513480483490947344581266134541334214690273905836368588637519779689341629045709142663139533240681259411897712150248434694494400401150203056679512566867798040955873642399712466118040920595322240689897652437651257879021805768205729599801541538065918250027986353364176489308199807416072004617717890222698423278080103069736355209269178034273020638767835491264569474213510249159035080750460011127758897772624404233111330612946669364743267133456581886626209886667340852330229398531403093960689045000567744295419050664099356870798636744862951337600497262516425405877749268889697063988761870167333355770178913607614229283689446135032629405423588930711393288214962590447196525684062330760574401804793207026903721156436628038944534317870890276621903064390884552753007601138381713090003181840530980180702027062067418423067049091975054194693721083381430078600868907508775984267819367348025572903547488510553521874537393922188225962118649254025601683997984587031827328478363787976209066409655897453613635151353585044989204554845584158980008801128119595447747434646160450213019822375551565564699203366897347213361159147541519737697089471931315618645732422065618590405274672677164212584249082868349967778754421959153309745223178668888576594650752663065385130302848654499312391064554360475421184629750055820894541476430294539010537082693815042440228889068615810295838225182681301139950143710608779128916496641650974967191774344986513928521678869691602632586083724547849599787764083999564091599665533971227171240280555917569004655308674819737725907469354423811174288738606252508085783353066954744999942386296562993064087074980668932308323386404792906411375620307007058163929558517993048292539724370907069375074124657299785380062598192866306120269606230755889988656610184284208315416151581823949007302422948762214932892213365841664687422033308288236755332452565715830832372967981405157810795124199154013957509050627611596202065130318024041985681733053658236023553268307562607413650856606096613963322204483091740158528480807680817075502907565694122728245251608196217117960356448096138854991804718475747698792311062488533855936815020422602082775796965363927575038119700356247279448884348253098297271745333343410455652304936183299889809043157255572882991470030437164898932930545996838417108848619602088582387699333841615014950744182890283499326783018185883996992984157467893721682473155226344622014453770985660269788753402276032618835275572049710547185741190808328069753954033526214195947577858584845724532506442912160657194830795729661325224024422318858207855092372764072783915253411942719901936572980978168499733972756205869948977049272048623005714689795108369870859095620097895948816012815172721230040283521270685104020338733905864531200196735311870003372770495784883171657346980674556505981647156109257288397118595629600644189840560313700570934400245373872915668055229981307296479453563057118494258574970344284428099644276661264266987702418946936798803679918236505671453114523143005309050498035820563894771959822380703580707354042776226275582708990382747665432025015551632794894712338521675139298425279667244301412685264461641297059236098007375070145587082803961853890934264021140379090081550744529351528888306574309723662194307497048792685851690500190003915843244732631263668815454367255618534137888782880463976729815967383293727785722226364083279261798171746408386529114310157152692501077056129783728024049568704902104342518320151161549636635500187821446325002481564524977654053528001323381113881580509061945335354886686435363278023239040601806983824801211923955827519195142284426538706255046215130662798444142213668852113157954839442698818671071938080750044638884872318555835020476966980030310931333115195628352249104046772611078823149244199447098914694809883146289538861041415329533227360458330146536072869287997026194564485709792840561108465002665786402804594084511416493581846273288284879162826562053424438430385678438027312732777373317276453398366043039591090883039043220529623030211635302467492396822212905613937087276648857343328289072300261632024506927738786226572330111612186605217311645652470021073779827151841242098839362039994595020958545079892154580951432515476330040867114846436920529236314021815302637357251035666355327858418520540263767250388455703609223932161643669365861809827564439265039463480399074444144130522116230540885304701284698553608560801669631190148902311660907305117695755211575034771429760206864711115789755404413721489097381363817531772727936631471858444416174841888399343446310476234066529859291931515864730183217436895337881526749501132983193297420905488808947089276866269491917367508633960464095380265746135008858949099766127800519561626495382998468822948478933328558063305214036092870079706088183156488719552726346873361945836177273159944083954963342473122411592075656372886982552707572244850275688899572348961962110413536366764835776487578987368472167777649572641320593052338559525433734106926575184037591318917869151614083205785145921247977948876145026577107465145795468328382257497167750622314907205886896058492150442064125934814336731165817325678235088721961365687013587274659552471309530892521837483099650678488884798434366400553429791156405200911556110524808771695687900849487737390234204240546166725313449690543662484767617805662329424518083787411261607070332216250889527786188899120802471729997638513272272836482168092320693089317603389269694782397263009397697895029536659576928785834660616770347257783846896507354775505868276034240021872038112544166009724804129438126466971300730748261048074669439793658858490591296095269739232018884589782538961229517474666662829819312304975403688411308836089588537497230221512763539963694887482721265469035240406000067128640208749906487635264725912486285594050398538186014374817786317327449591836284457770955530997045819412583880262277244947710053008201733445259219826443653502993207870340655286856751145616258008072229518738765824942448889700135669371439856593850887896302067967698582922971300786436350007031865949319416528773450253988451573042071265209681463609659364251104146729448020599710185830531481976902625484501312650145468030049456227207759397965116603633075012672850115138381610310789216959225360329062297884911207167909456707346083720476127033289291472970662629361075631443724277496371518346234794264358499785785799849076794094814435003660661310522149015030409374569978393071831896285841164334119282454774858068184404097727599870083956279476112271748004985500761443214506229637869275051046761225126370760997199325644377609878882524809514940469033517149946622727016967246453344874443733456734340340653768953062586321224069932951955201603862915647046685439190427838555332469488078904003435424559455871212000750206265310499173346601832368882264292151554686086634025055886993987839783087907042055927456093411707650227963585599923151289656951936669183080558971741712557712488536974055967815377431657257770765396218126735969086676417337445267905322436066269018535136426577618541888736384716725887911478355988705959525526152920259107262974326207650245223861459931208058128189414166808834748411533051631053713635331112866754278438700953401199650483595593354452576263427930348126183222193152983500759240812707808802591870797580986652309970671378107673659146599828032419110150209049059152698897247678142551753053320553426571612067496984642955347042451180297152672273441985338609271765620937736640272021046799447597180427521027238767823461718946456558866067356406489598490662522792342968415571320588562237032735080156910444353208296825829174178507127383497968862116070085420855564255260137732288381471991198058585320584612430292061111995589211092215933116975822112201634525276398097286144127689053053007148116385523954928724664174805755917169930108834115521394123999863350168914092708535705209385495062147572920155807886651649506478187053541798574745254806418279410509947470753930366096439463852635735325197955346413251982395125150434634393282826795025737684705032895020734303241449484880920058655263236171411656753051677050763917477800192125085555559653616850069954133910706865046011747764710971276553348725280176058871677900970562956527213033157126089500087569163881072861940365816541574525023997921863887437533952209400848098914532553893628220713407331601492143320882498129920880701158577994306922657309246881764589546379194786929267630715246138608021667446204768169225873968730634664060464856798730256204099672477829073061295353507038735459697059846023427942347138046732935830455899370636265224913302252762582298395935235551428675136876340521618250878164208218863156634828138219285385452899155932288372188512832824027545081723054737913538663761603874707352840194946024102805121136796810134466129819237050327695774001244052011576191845856916714033651948760951548147504990085804652747699569860130240401399550295159649968551462266807904872157798692170251462856036635571125636690389181159717414802004382878123783598356024756068446531196263121147698424314256448236461356273960145460840100074325397033315704492261946729449150109575731037643491136300531456484152397409961862048371049002751577588812157806567552634776491240214057536640452066312914860872726958615542698761293667376559711303094033654008762530152441302642641723095938862956518763533587007665255280355846554200729166603330206193703109669236145345662905905394022901505536107560805547136651917794515573307913649814616598497635994902406509920199025150012157220010086227801645109838215655843779101818873354134925945627779745125007018567527991120561312465176569387218111810062583831854335998382873040254562304495134631821408463276956084878407843080126598462560125283290993968146622090033145994341953318444086215897219568535525504095594566384297127968500598475922326665691578195133595657197636278200441320029231074374951198816139129698675912131862648474497545045373662127846563923100709950133782207333862912972047403836424050915960890858207789312198716237587302296347622817763064398392838977516682002565130470317237851654123938579281290445906733075368216235243925162686955465272320191472656147465240325891936321368778725803235725124075154823097105175344970515973998449566553427846973179531305677554225695763189346875843080133187891514373565584251733339977310752784359455109177645920047912404641236743948313621763278109292801308328498339863832175828041436093133049562649293399873372747242118500891180385378393218150366765096429168066484418450100096837602103427897507120569968681592370018285348403633016302545642426355337106939292293996200902355360888096492400182918063017825457747128457332012759894770123331786381904594976670256542036282876452847962229312974021390899364548968676155779312190894074972679644794900919344675193646648434750363434273290560826205424928391635377646767744923602968472468227496426639783248150569048861299206441897681113958892374536558613486576954597101523372299949558636467697828735372075851490433093536122211949572882625992347679650763716962665051363469080976420969803738257969724710046750511194823221689804902651023609428290077006877893153394696051013973751979588949535575302766927065239818596355792390716694160504866182623695759364748528071082299444195131078646801591206221517996983670665510227281535505665956516703584372471148760304117941629255374068230477446791947825843483430324248270845888672258429961384359131498370729945100205158260225517434600744868893547573713568570296852732538441140290164298444020710670643483033466490326903246663602774955864337035908411620754282474563783552184137237507311844356057251344708502372791053761733985224259432930425854845574149937220098140415870622325151986165467352136084087589091641876837053621240972498254358064078991757438354745315944632444888510820818169802374511206055487201566395734369835812564301658176713845038775370568059281019518728194490135608231058502750574211988865668445467720742245723627077926655157112080147427389581319378223978776225352460801157970750737532427909865854821921030242283345077188817008985253032316524254341602070467734381580468392208859102037428310228938677784271531103239590542435403738287228268899866041582485794781782227634658386524895128062681320221401786585152907110061391125372721021629076344991890482488207745128331189627427471470762093727882368033832689628614935214672403187838910648097099611999982854429071842492343269464884472149642597512483803478820905658981030820952578947037381256588486898609218244250771118216224936794883546200117384535821241943425411795913954171931517692571674847657682959335800130046531170751848231779609399055564497298028645913913684570459215889922895312174655993147769435114947066297517526458852696637453167532940945939565741911939522981804720721314091683888235615071035337940512258803272208832570079745058105034885950189767695042595198873833361363096634211685973883772397815635440662548960936635117665737677644170185182413949296722736701794014233772856015846167738194920815533230400222197466880465775723650623489885981947740107495614486063256737762396073668863182163976482691019211873166966776241860767188483591979366770760092801273640736167853117165233857531482270171234103615231967703869783339193814004456845459835961852936990197359043330123278189294721602226596501682688159291131576030527568232540227754886753960124486260657682223423511113022900712465346035957438609244677445804983428991526075102920843066887577671157371892236711635182124247416926324643947637445467066656011231574602733066450711302104815982652433289334426293589654957410916472844773486669076544753348467986768346667638850221898781920573406121494163653257576931127564412607411405963164580628248279144310047569833034984796084880564116862705198828191151966742083015872710187622505797539794330955450880396277880685774711144375273288153817727338292872299914149657688312391782426808790402988759641804247459869121424081557632780122929161092942583447960832005648109595109922454511612084251141471437772172954871223747584713890507186180362260466113933107795464512698557811377437907860009613361270432858579135815364393318076083044008459980674381443193084595604369066424911389529680449034767496365323077897710497875327652415418509889724265671709268456852927257848453174045165678854077233609874343200590068561212959800381823306671090786294785636913614924359522386959279539967371292307348795040224172787810026879488227910859217757770853845108405164256217558603960004328772271099416274732400528184944920634834483953152883798145187643621061903070442181605918351719673255982554298995970566145380998631904875919507045651059212245584475485225625199851085785894811133254249774993281158782240236514405282709556615056255322221764756229805843367519926254246964090943808395211255405593102483631959772770633861041366525095463142444844675859633232430230955492262363458242164949539689005812322750442701188359934806967020149512858643767799799139266079061698564205138280528308985286612611678708096355228712155563745884401955199736221407090473544641471052225478515620820726983083949032910311444837679663356244340974675681848315961241888173515118498100813191818935425723141721846282835549142862054754932986809663626336887086162273350561923369909846532071892232773967441269384578504073483740066620949476677143241783749971492036612727331951802702585514043130031810157768836230480663657743788424648856640871670757182890502259988962507434068774690882752896863975529182004276242658183191515424182410144357227584517920844030752934957051139994032965217884987483684249059246299369696382911143714110535442397862689419094136425410453629250835748246848118149174945971525915620379200130454409196311711848065533082190235594884161985958412021346597072287305314499370166735217656753283823497900667735895980608734151301267184026861203203277677726408506526571619676084693488407504395567305441894823246125560217415448508015488772180944007598904897817892559657193355529336591877624604155984240283350899452791361036494891068980638376035449549289882276891275975080974483063523178788374712084936505338021534606786135948327787866006906455687207578873722193082007538757258484364818302911534764129842641557755555214084282178940039186283585223911838048649321604699272534995778471727773531781421269666882409198507670789917395825373841984210346272474386047312482215150276458657078875189043555801349249804467781104422680891932821605946924293463674059704661667368626419852931510729003224133344096471897355244681019852610001658714556541455535665208706311195485409705226008622120358483130642356551688228334804478387090950475074563510260813249002244351109265175977730785901104509245941002987217201540894250883376507732477546504473745740021420540199230482091564491346289742227726439001000533880769077389535111925479641653915091480338611254885783854464764123572821226972184898698832388353572353168334277190935913011903064397228181971199995691102435724675551077605847831460804951091889912351358240391855847035795200242677157725728857601549005363757367751477815256588337084874556003049668613691905118960505699602259438368649548687853323230306262328102130905619855093742647153033949343207158000628231055429342478652652266399624301466817977470200776308105087105485666254093708638865494119824887003558310131085090369340432524778460579287540336805211990095997014324738268679112498930002553325723863608620019008071678799562477762846013553177356155186686291914640692422741639633679099129222159067449071870946116772068357557861621921596717507657041125301897727483580707573051537589979422136018095601231314588466765183833691469097767553256467159771209433466371766377796629120694510570888005535897355411800865645495755973536762854628994742721504246874602169537327746778933475588829210826922662329929500400925940604443994937537602100944903078764383729580632534727884165169851951963846124570659371576507994222420737200303509933748084340182787667786513463976536333699851082740630766425262393563915560297252027474117966485126941473619284950953105525153476888092198840327074619919282410537929302022760967930549380488398603364748735482902045157095568664165146136295961658901037851878902579072151411330038925583584338156775961845295656868291871255898420515415867429416709057770869841101068515383535913878650226468595915583876168746193851472629564853424484285165030424904758246245072815496867108424166353522108938421707724259275207524824695088665726181216542321809587671611262743328525058504023650052748415300194276313732818619483783302193387122433847810984287140352161998521557858077665634568544044653690462818204419627326198577271492289537060864354813379254729579054999251409622458426002205105278203384640992655876939666462589616147310680539482402746451403827941061587969058904283887402308907828807852769409747819263711566679546569137827490519930548334404522644117676063680337890954213106039273480385306421157956353161891952184625816933802197423285930736165679479381712033829396693908848575149099706098985624900651880997607770369519101654605190821447256038352409473746050809797395792173143463500041704931471649747923995409473459275206557269782299392889065814392458474750170435338425463493564331417013532763956409075330432239498830394367226688066355969802541896932772478498087454444880856105874087320188659448059677323460174044835940324942663828514785068794091037685139311316947328550171215049050089955002919119554007276200505484273807783078429522886579148819606070655215782806008136552112218110331813504934284443201315719970478294904687465622725334997846048541011837282857614478418711792857525735776011172036641229189464431194287257031271750602694447459727031171776308914289657325909172584589232202908105538276439002759841535170885539784003708006534109456686772238370371178098545379481808861236216523550418028135894110274787476805951638792009725439186720354725714653778903779097555529653444540084412899372814772654632180893963262439371183619081098575967536745066490463814155541793082034509477643471689201875666588030221232814357811488143673247798407975750595185156576626035443387811151280495861047310298794100599573893964748875347124454284126460526156022967147556049114165669258664607655769991265139067753968726899316867262552539342437536382057068027811610093037346978000142824012820974742916597696476408712762038327110004904810187559732039797225989347288794939959222879022584316415240298231934839588899144452418889547768743455731084062242815952642375688384288005843755284369590475443222560458106099347071114697539152209099906665314640465476099761761940591854375069174112578921278152331284003653854742884006536699151318183849029635412816430348501010534188199246683635183376698216235043841147704494622245847502521244441192173528310811196296727716529146121570933817715813759472525072608705266074200036652285231732312944898335251663443040740601243506492426152561357103886730106401908110478887553511682846882592052479098651373708982807253256421002905622556108076460018679289613697777160296839511756147345230728145489451016926581923090972224204576289558154691413873926094228082317272539462837955660007556300373346077992273737282160408025623973528230316628764272310265412137901294513763692720463211025443906904085268325172501851400870152967486538825138443202587149075817822243496130380278860356478196485913192614232325586493198935312457438735034814280347202498713253506609244993776850932189257541740574435924810955008012904290869105778166450083711824313923231212850631967016409720013264551237863936068857882201091076806133471665672289166114180673112504652540135616468357962162026662727735110194178351550180793187658474570053678214450581454820883032586346334118888588539859779107443750087036412876997993905961097062299392962084918472141068992806190413446084419533754533566379062194236120627692583665304016057632079779371239296807206413061489735196514424062002241218651651970275741975742881713185822978843133749996715305757070316247007437720586056573703324825554701531712459775577703709118659229041721255518117056862792747938623563191343192754510163628951597246055058571418581665008618653199969275658116262730135290474683611174115214117674695356026165742278178510586599436353953408316082129935346342941479364413393186356290463278368955076719104629780159373463211482756825668169232537755040123819460591604328109213522517881881617306087186353090810654812898446642539491863471842262231793518781562721824691265448854316130726974510501248609294593561284949797147082916252270975705192220974603736514517438906108307082190166087538714380379795158551457400828623536927175805839608003441164170868249014408591479254596231501944319423483367818979199981171131406292845866129721793430866701318967050129475145421568298429300407350583048234214136804894362847637923806686010053779528450000652900582294200372094036438672323563943982365848808420166891876442772557647122003798616774998065456133234875448882906737852170237457205020307212185144372155560530962020817333930758490725181124751555971960261382430422580949927281397358297655161150114475287480874356633552547671824424981008530877642947554622922892941579322466180555779063563844428200655472002109303134824052062057663160572751829147415337596751332059840583793383027036992875599833581436075257654828694182287251460583870350559079568436497745511631845004720182795811654552831694301461708704487555437271159256843465403909827741262505415929824331035145430180446903380722713087381236468837179701175411087872469630916314414382652035603029377994847408905252414929442762688047019394596410476289785432017826025129712409565930036753362621256814736133597624437877910001032820724405219067505316756438819168925773141961869769536707256601500108187530526130780430005608242978704748676931973981541691697756851242031802445406335258827260326242786922580846778996173942975001403684757459164496791658808769864731407676697834167532658833035130374175907400270883302956788029456505072157338294118654282214138018299010374367688089246151170251594043915079840978821440002764766729203090933619856774040856929820347187963845319136004303719527756766325583196911445454025234161669925490469531883147009662053078623112473457813606536667467475690861739412150897725733630358873145712502262841887711965730152035814631971596686649778406491542700301273373643257955454298118344369089609251970338300009454889256423719759151663896772726372323803271422714415705402705654233927978113897033600189432032936113171459113627377369230586820123403822884297602926905289354895694781388098716205391951670567170655256477956353890737620343291446700577847717030264117138062186502185379905880382770980546045005844263877495455365774198895180975154384247659665048943614968354444968840199830846768910183794078117977584088564683994000746254963461588519015199603585772162793286323493234487450892988081362346915946397212569861406849166958492360188038989247328132100976719673457590881386934249461365532125394424802196722000580229906666415203786025266106278245747817394144440182155567932874600627546188704318911043161684409395779021155375148632452155854864083883549936296968698629841583297939676565584186730414443193211406098048169046916908864500671489126093630860456828189250596257822605330069245914356313439814789198047106975008162835395599394914404358533998141780484735470444380386724049714802352257992391073457454513653431408240631417163335892143628358560632358190820613482603521889025743344266330744640662975412898501782808855168578129189436753013965720513374401611550942245751268966395128418199474084556173113873657840222253270923611370773645226345578371977832250168008746657322471813211317616943859199232140622115162746969345284692257923742614396098070360669234016018602037411332594920762867664327265732769731288594026370048477445962134653356182765675474496790939194990969672146005286746516586463511611599068592871175511180806341654051337278422286864534719155786978061838621247402741658618456236132203715166846967298169711386662666285785373307044792662422144546648183457361836096886849598474214819978050508616483565636654982082908075174952076570245133629856439121519511817628838989015484091201616523388051781058870371613407869308177176585345707099979751040186387342479941076917537529230067480554725884525286614303085750948648021183213310402347708500341902575632025710243099333081301781557641104598806438845042815630879563498593229313234531094763617642160515374101871927003774505503382476174758078982064484491760761388916299001308835111352897626542581897909706827700131608794965421874735603291006167486625193389456077802037098990888687992572632291346164162256482272078895935348329571920545699433609707997089132153757199815121659708252966813832403132889423536125403031842038896781297633547189867329235604322304940252310047462184978438922223128104576580110722388826832584657730757902510565236694117234921021476424358616891250460741838285866999241733414983384393904995321569133026363773515251986116815106122947501883322511016976804183198597456379809149228273875069942490685192151645383289150938088146774716797965501257861911332523740992557850079579179707040257528521083920109170743975138131039063078741755364346668858281092963939270254800336298796821921633566212079057749890523151006829044755476770013701335661309894948717952103183450329589167206036906907612421374544617900406208158904345949530597880289279137498393008155556661428964755131634657202835731417388380426020986880711632318990816032568364297872203437214156326684192329616652820169944691476623026157608387787335583107909790647045259889366765168819586563099725758612526246740418568585437134525790657205977410939069733690731823119557830169250044039000716833456552511975298041814380463694536740053768008552826400901774916863378678599366745910556780322570578196449802480553163687086542112436478961408959950754942271133510854349430182901662455875310391605612367677376505182817712780264015888235600971390326093752114745027178692422360905505619924634804343533039406088531827153106286244822110183891287697689754094338175562771036416860200439366407424380914109814623301125588115201636402290779112357928780174007867117612005586618169038014555877679607568144725801166356757810923016696844555043228698852022184366438078611418226858387321288524470634339216451239207624137700780492592779578574448970924516588106441634137278358378082542345532121539724260522835524749689484927894690942296042994482378046122463563157369698599195470544076665906836507034647959134737706893693992089314833413390435667724903080683344459126133236490318447882760268676953787183369698759388640477382332557140339713648244875961504483278983876919803293983876232062815894507684673045846963706111535754696306097386666153286602812844699408753317233179787127994200561394188752742482174997986720052434583596709252932852274450979125071028369219781522498278759546118913315517772180315265212675217062445957973919466952838635368658679219864067017336933133824547187784757417874624877466413862009995617033004208426940581554539713768944675203105725948569142178486940848931810809508584801288211254968332249787227871458222713532650241085176160866579080890284628954199817869361846261023722483725377222173051485310476426828779886256474199314902352758225047494977205650390155227739930657833561584771057854978416792258582641636155490970155190387370998372308716295747855076745046518456952503763969053672037772469135761985897456746984494192520555805878431874539900768320291064243548431361560832499379794310725694180361216579860335023788631827711344445301219165893637865416687409050951383783048936053942926838672562371345432971453242731527041753421988567537263104607222832468712055439364290267139191582586707964269270646699245482791390229944212776479587368285592101228190801919157319804204774723125673393226227842311751879411076065480193282449716954625168598241153247759969644716064034423643874520852146720448179508912842057547602870887542289683615709741338099135017856169277533344788009826881370494832324723389979867902658149749320559284032977728402469795520682306148197796046752622765992802054993238972182561031170917005028756834496220645434455321722928451188055132345341675551254212498492783328038386125399613595230576791201365749281116552805768886738533785441775423014446226864126906478516691306784999587777680005185325880770573122138930235335044285893603686003930620429182634583496608910961252883066263853617247823726467186602397784738574731447980892400435906829719877709792660166523235133445514728372726789737939548616104511623378955570967335419193875500230701245264463622275452595740364141966692815643012860496203694844396234264655985149785231071792885326861997143788093003726575622483932959284525723010578921945908360519874503352337695117411433042290726613362967559355651828207708175384854712375682812903705082477540408496497710263618653662594694776735641712403997931607498417131096553561042988369861890511489037269429602145086931319677331659694054927783874676692609615329328401217776481133761844976803487736880711221131425695009714534726183540888896333598166467829426300646596027673740893008545420239969601961971162538750474007138460866754246779323338012627363869708784742592714325138806745997076762281686923375467012118562605225986526742052403123541424278158120060914377870637332536881771665720558096841427784765943416297215710157572084554674186841679385961003170773182235966201090432920670889745839430660908024916239585982741334260119620874804290531530479728144796112079473449507550631256098383173248857125855639100469736642890606031543894495572958108000996063603402036456853346809473856983478792433724524985135379610679806728768364046102688449087144573595548179558284384997977653615035669769491709655132133468656184875737067636778417340043761203174228466845814967551627113717028502561693513672355253910376928298888371288819146315593844185019795797117268897553801319621394424512976941715098339334443905809752187413911704362948932930406992027799404573012389621764896662314317782988275093364833664380045122801634925423028283534496733135881897003203897659534842502557721076013386026020590262338487051135537841729144145519000481489287630490058424770293334484384066059735491901067623455616668160067049542357026677743875675729703002151838206363341029710132773132815511251850197323033448316022062781183327708836694702632874622281496596752504569813396004173530213071853100255994235533841404766231472043420049914950580253157837370412288917212353774725248311146966107588051560216848320064993140453165777667195102620594966205381947819217006213543007743011550783798365199334467555254268004282600324192935086694313413718970789975710367682988653332821912248238008576268685132386143585997327195584630566998375121215033381984722295894074690204059824705422373407361391997350395348949979764423106678609305163082231190401012708274028403792068721687924817393865240236390873052018662132038496690877694602412004279114877879239604994176111830029703938948902111415325824628288646205754249416776301578362795741735351470281752839882584477774768604077085261055247075384474590057942548127764968695528189086305377064409796233231780945217721552937727661211571868396118557566896921344149010882017915489351240908854825519948141183457788731506986267012328290320062001255112158096709963710942293866241484125631589222251661615309552651055406992250920346641729368325879931269429894338843368571823299097979437293720941109842506230538046166318738256020901724418067571428717081445114088063577507716900655860718913614299369423434181554512316195880388246086858182869303342271004368418926372466776377780452118929804333658072472269259065599028972395229430354572662414895207264793821505151936137014917648107073541764115359433468874378927707201006103475573391038503693732975276901086414845257011827035888183867160059534173864079873137547324494961979560676762295321799184842039635384664001158862683565336485101841497940909518792992402686449111559875343724275965573455883092057980958484497226412728640343423627286633562664438144617115309221133425133871532153341635408701205448319466468833915631117755566397636434359355852579009041620720295160444594863820481674482563861593256127496451468254853756378810398534016413905924253633516334273340366148969669714263272848241291209662858473922851198609867212377495516692929636126960481502280280025808041138983025522414083560164136259396030306881085891729111323618237225053050834526196309473948592018823366086884700604690240492147982420166242915657997003675322837093598673085252241442843391490723115784983897580728316159437728862026610969717416912623074921144292864100108963990983281428312325634951322264845969782144763876258705884213564608675748786180131646763267537759152935719559924777849945277233190055758897429282953349937738546003523322038250051948875165223168564428093577181683803855050457081601037358315330575700415215962244239637073212940085628254975242894363010377976174862336078576150180090521546283736080874402182045136575734253752869078934938117541509271328194433374844681656440008386022135795476724173285528907831720812123861032029814428913777248796731240148306401722565761756830677549043098499057933345290900137729964253772490327646392937259120413648084382041117193318484736951355213443131590527389746994566971827472281835307700840758053506271118157010895690847970976972170405510821044038861342200152531692791710856058583430009710926379366838772760536961186230395660692576816006474430695824265973497488403275142399521462418391260315138191643009407499920012786684196640668706334503233517448114005185747598793852597389213583823793691325479061855775220394233063445341525890244296910858352096970384698267894791468448445599337393648485859177824310547905709027807575213326698118834117999174067778758948562629137603482881341818199290323062614976313405619296459806695764549738565282369143311738201237638268412488230341339856736303263509208920692515750363541865050474257557435653950328637033492807400566748194342230516132918329371276598030092803675481568186347056185714818047718479350826742783124366941078887952016399807759045716299053016806510341816403180385092225447219540947925376559407300773944195297839896880108906683057809733389565297509414566524666640935855091851879829636711917110843504306813519122325126649536050217004964600659157490612786784606910021646090896021706791704806961326440286084750383402482237514903810896663213316085468297287418804531169696495675503489210390368153107898366117394151306033420452115219804926817459732055464335692512550526756069156673801217395190377334688394774120437057976967428102541597994243869405261371694627411129738703399791766983431162176865259309434870114133029499288999053615636598888200716657169126453328650602533986926117231487708528312121205875042535160344124780506487669774298883726294047358871936615329535066422147769391570579739110698763704685023965451769733727867820261434737908582955793104404276414126155771634373423630997360872382864831894657193120979049104384902241981557635074841168513180998012157620508593938322747043375038181816605094412450794245571075969056216538756493982508954857223635016214093094069632033943177501456545928081846651989491265141370621976752397021730852469970466427226860130978053366849687533951126460600871292640633586631849482138004383276796074065536122650051490696907129040336944908878681258235092178653372207344911635115211143126080206169776208317352929702155653590604333031734896850837563718382831869149038752374629834057483674759006437175701255199328374404851140987958110784906620106320426323122402580895172000086220471610274384114490531025841245927098013714997760645646014023356156535565891243102117706720113130348306796041647334874369638966642013119831558745611684400191940151384983512159866356259844273574208938708022827355525388554909934384386090533314344229990592994293229420310842726331887787422327438528692439791596287978924553116182403006374631437321001643043875577644654940824606224155101881671034042821187837423977215149911895259198149602952169993396225729056283224393350713520883195379029891919499327395942315606710093076126563428720154369208110826247086129201608112115802960784443055094465881197486094633309908157204745319230035006186914341333975476337008393701519992639425496241843464150669878909773005687666321771599504018400667699303882935058491665002959300105750618965450064568075378482044342284064010142495207152806557624429904001663879485224087506062551406181028492837024338583265964622731718872380829474105381316470295703785576096832025202969697737540680139253580114011103075493209017996832579373512739159951321644275438011443971058400054716726752062581797607192457940644142242973449861853876989462828562322181259691050281808585163159355348754547159989582979447243046310574683915729323919553001666078123377603725913480476134914242366086785926156164407854440841425219818468395345047419004845122851482077122426370297681002390085778163963734025827260013591695506060239727234385087624042970727601930077370316536644496210000478255979616846256817451290457717499600745727264533440416739093395839023758555972628864031818306077285308746911818861308542798999991730594291620139662415885469658785783105663983185265016962609764557629646483771354593451239220822744763408559171934113955357992910581675762889381453121027024239707993882255609262710129847517508014105966337151206587430338831546026073888515825636711422186202219281366903976454213028326764373434956046736163512582970881913304453979878748513998407694906023096928257056614654647286900829693740196668695401299099782453523109018839213251325404676876177153805903808462052076041923158412519066449206307579372352491817062165683543921229657640614733272660842532296979854957800505759642438446483423876246782220595425540849304546838202340644129466560736935559322138638655640137513925067804658761875211735238423148449488830017767518252571110650681010521539076362009038758622919848098411718104211470542122271237429833537352939449474971633772350111204159034932577572979413661721900943316185172797683367992828163120003131157799331205408768632384003427234505706424771538331147551237815798424774430155051803421266012933209876432143743034363370700948789304819333599349875645053783217137643025957848661131556162544750294453587309032507590168387691573558187467941464364300351422936869581885761659267961088870143466455596275893454080248705006431487016951330443460043884676744508803592912905923326554956430187893090725483052941092031644205547934831030251933473408109352545732640658758043534705355296188399530336693258924818326309587168271267237923486772177758964238920388613196158331801316443496047688270092209481791368365914797225952984312091847991546536668738788755900005030453853571104309657082423527279541726663987602984259502689904854863417507072393380594602774804245109762604750407944468788693109325308483203091545422390641669915046350751950758033987513031202047409491498868863666810294082368773147130290351496526605696747209934886562297348170800400215366113451474330210802261825214274116325115818482530736687480126196129101247181276631403776505988342871126688877083205554898762408003625575610239199388863628562331207137863737173173734288667616600773097187350772018565611232068780457912830418631333033761851615312582461112105899104930128900637823212208395040716089627384730990143412064004716266684842151162515476076385628056721163162167499998717340736976944974241429385358958750408106896527465871856379796834132714089277681990420721699976267793807156965227497931821402352380449869416268715181036004657957048359712682929508949865244419001555496138672968832686305515539584279204536759941251626612426138959095558372023281646701659879227786844234426795613266752973361506975542215986081202457272954079168983821532649378254380306384213445809442500956441234987828521745851149729807924957563488972372837635089036686542986689579541162973471279783902638268212770048118585201932393634256524384271093302269355708299108186721499870572681437245400063704638528296714798350667019707705325246389942121643161925431592136214419629674462482330961724685846599552654705636926201330709591423597964909526383519995169554840404515042745394529082162943968139037328544893553237959715446560520901890464280848387928419642330622787319698516942930363407732135359719750317401284281573689927300652056373776203572084459166490649065575707355485868708240848289640425032868080673210890069725609687789103271310092858120896388732108373539150077706599794847479351514593555220921447745992321991220207019248271034025435856790085611396818058034424484658146803531063341128445011478099282724456905095710693820898569486647361090542343753089653971050257365477499050291547596511775462892910054012727865329899128794499150851386580356701140676987327342714940874467294204079001591613852428351758018459132270759679175084277199943219360181617961261273842542954008703795233158730586391999334108328242663307044673901152181732105565497695959669757729184068565112717023928363038998504171218265882117801324367641148900786115922961829753457380953157386856788372768276067305820722738464598011420180958179527754845072999854949451487750879094079678678813504499259081324416503545307528540919302662912608172963757545324768739538470177678543780692434425265780651134288206742948176955342636643045673747000926521898209310609406289873196269332897877106074945068895940006358459141716678288424560644925637895536997214861422534979010672508018408482525351687308185780300562290116600934483451409276484747274872022524447363814704477904713088766639304881469510365406314953387141371802939100192289997679407851926816223786023895548008917611257479894368763780439819586915666855810892143083315485213368275186543188637851596404500126856034915807641460485414522380406695232370416826973504099830504742449032314091816014484959896972336214908414558557564807365391255392346320152902615714488749398968535188562352976428317784521395148039305406019123214795711393524356972894614731222595618014848890033791747105969987887183934184805659784912186271731181530450500509163591936479675233014797488204623965107182488701395913807146021972118553240253586406258428873727372701993584677426262118755335705814191465446232371973716195721066315302916418984271333632029200595004602076330811594707310970766895665219639442230958165617507558034883745627337155182331320314264856989295570505090598821607290792760336936507455136613767870355019228868299952204952438421088035198985603570526836286783666072542907506603742444334883831625747058727188044147131034805377369255333356695388345014265699077711478540269531918852167507202637349863302008357769967262917155137073885660682796534714461349495838916262133721363544665041267312162759748764954454377474117748621433883671612018789046190908852989012083940162744150702945778165142884576219411894993753143447013216144587279589672514038781283211327129302552398515762228448238957087868640718941638378860004976064012012899042492112749272879035075381448735628410476043395882266984368388442284548735489441296361670526487188665295232191074589134153039143211436200681243372461967321522200948086053798925605825292249640238448780398014172934732921252567771534780412705111215040642617075468799812640780107926053380511647531499751411611696906200945562531398302113674183687108850865653072108226443751498656601618383975822575136652206946184724926028802485695316173028396180573071660828553317174625351840713400265680353219435723088873600998810538352649403148453340722597740891675187527735692185209937349095376927875199026504248632129163463434319715692448241784575963058227037179105609705437370334600245112064583431536682840802423105201799291841498484213932046918740786502926529874256204446733649448253478639744723494057009357216612246920043060155855048196355385214292526463121654176877906505129041694910031506346409196918400920157190249466231184155901174443528733784215698548885339799684180079053127598034746058467300470020163831608635728947957287443969005120032698389665702010285678119573706744129551555822873094292321702015250782384304498280394662073595343672906451183080389712422539537977448178620534549748628749408520799666456704145258956488503215522782443397738122038906151325883390434875198550532528969045949505034158119056799844906809728863699148472608445171796811903774890703839958464223677929902612442489224417127414886998958227190003800044812565683392848604912476557496793635957363715240902693549068326986542483530398241869304168743955508987430805028168643097980342694065179678054633509008495375241713495482327640198362756215795537616028764582584534380625439878370337026717093905534363281226891895239160049529972480890796793145791056699283296708213679559541857907845609974968198829721706105596891368523714133865863907518601282976912121823682777224878263110683991833060761677344764248111057032408886150252120336837099630724893107621904495749483070232294793031902886321252956700799646468592785746129611691542105413762194251013541701386568928506815194281298607061684013240665496196514046680522864715751792870039453993052801520297892223927745241505860487117199674867436753259200018692607174232252913013236193295778004564490172859292853543869847279578326181902063404781884205075072890742046366931424013308846636915302057141014006783064562998206314926667496130563385606835346435971156759364453167735476684264733930599804604447635010137326689034349204457865678501854237496735319729802232313320150509620309667501513187421911782671864181543745114855858991288565558010802834670578971566598382952546206825586804019920237260556002999200531269103117935992396888652389132242022627860419275684555117688862753777897265760058450674562441294304924695875347886053179923669969339855640945733318862005912568516654439874397735210045022957345638318076339866650339676493358534688421917388284933135900747694711091728633503629274559946380803155297035950463111412224692357088665648286317096066277949658529748424872314909191869886541849788257670640455286745057041231954055223661123986640274597384693525592429170414014738920730724987541411769136092334848418810530356084531238669258750731341302077288911648886277714468534696126149129642356851630241738949508371683918458396261369366865477145124014656106622360143707868703259258175437368375590909798992581716423681222219059875554353949641592556403380634711494916259432561269226365065291700452601824203500079071688248275980493515330144554230804454251925195407330562180988098971560227410257143083305348274223806986589173129460040505186710007783102769756002306772372979222092558774072136858667687515342013250823788542799852639609140304852589935720095339594063965119998755536949929570263717142491871884177100504017726351694307172041325441687164755286335282438078182520443231373471549485497378898616498524511884231976443631261417332722384623989832313840057987383457408863624232316043271957585773923383754832289914580342695436438359961380003729709941071952813940815869229342244823127754066673428765807167835729446200726329834651646846772164759048781773865066183811795358096282793470805358269259006447237876240404623673684861101319030335340813766232071570951427597101092089436348530608375310527480913042899882593602984853389130373658346500745097530183668548993003719465216119037870452240221085499817891740957284448014090035946262123921848262998125122404078842281866870812574099510627682647560664489438579247470334126113895675049686630263527450746122950553620170440618570086595490476037186109755748659027676798588432608385719551901387397294452173028685134778333632308623327755516165264641991226778045174092704659732792760158926685992578875954844763917773724190676303369099365484418706081392918629056972175144850376979213538421121913628769437604684766396151769188518766792442482349606195336370932008804301117941413145629484081779800074167896005772305382931535869197827568341448423571849420015693848828681222667186484124332867111529569958865170170164971670564113138685649850101330134786071084177985559612207265738207884481454520153572681153484427409216505126220081646553115306402075012787390515337155877064493528489989565952246636759164883048164283581043988369180599624083135008950119043108551873863304990819340027908013590822997478067891481125113753538918567754768492361875527351601840856368276826554377582606290267482254545560641950412128786315702180983634140447830276193960931075271442170179940208392299345008830230597448807535184221657730734782079770606439209676078536746815409340495166376848700202891690461059959323562911643133345163990055504439495953979696951808495960949135878005708128333914392662198184771534165051961249149866789539662091282657688012733612601986852315149885502000297466871163325437422659849800738677535232961753186350669107801351881136586402068876760510397747519906242495204096704603230595364611992139403186221750533785968874384763687624516686555317528396560156129476408195523923971564567626169898132947937228761628567035920900965796556077958736725117452695281061971653478870547127257611340095293122250153514512691626796046778547276594834004577912511978121354976463445716412305826483387680849365771694326225968700412009390058170393103721512320832529512793397034524104021591326707833331008456840298069375635135695353709112155500246960315605578908031291725590464458931011425908222262280352890899981753420990059835188584487183539139501639535608150712959027125086955407756071794806775192597902475520158406952442904034681613805910572858501686265024589787913938994781578129768284306691231721352276729771142898308004051575027527393741481478117353840702068156808837181760988317766307450674177551966545320704848557885402560375026933492479791990984886434001330725909855062384204232217505377343201685653545089243149530335076469454989250740965203342299852143792006030166405262559763473844655060190405947702965977519236904853994843847176451976214483834278612825343580042877370052906703842245168584557397539734447083008899627125728653704484805209015723971957569434360573153241978527621022504937686630471667810232076571169096285489503694308783035658327004554917729494737671922434198206282238517080024190831254141737251208595411707417713251491073091692262885712359278155111466889308708099964994635588808323607733077506809688840580922339949393709084919790619638506119385410701507782804641207273352975778264194376985519511504094002161341088815413791345416214557512604461375726790189277088998823396062285218804192176001835059208918102183708564252668158058964510799617552986579376829216007325757647740822607774829384912127020960220122827195140489048726783661913662759846308159805700213363196155042101341310092901159471926708780583617368283579173824282479170862684390935881267099670679728521497879374747037075410770807106047273109629756195523701601692335903381702856402259221780058400797531637242230788832260081394178640766408394633386400648706345029720357023253473474840131002803286438798067566073497190271635405555887191738657941917601984965391722338035708232997896064256393757583093285315278344714397384001191678542827821855501551726090446337960100346570727190269503953878535986206458506503878553460554202463494192924595037729409923974596558813800978141608754981816074670935613237107077409550584345450901139573162051297352455152850036497665622208838439233627978161148471746501090671203689392769464811221249979708783126740182638423956878654202349713340146426936332490013559115456976468706416515939099426701055448879603623465569629747771609080154217721143271445036446566505817256295920010398419297039087856905287069900111366897348653610097294530688687631916427686353190609551897372030499509481899950150536700956444533726838995607035514262482559498624799625455671765429862463475108350477922029259075744622481448629821906166714287939542750124781116179574590061083893620068698958614217844095459738824037629501822939806153560207143281039889942531658402123399571582357885865593002811870328998248873423940819458211599944405595084717337368716161532577576971161690354321371655132015680270893105088301854316843272139623973964370458861055771752179295227557328521646827074193071043897529543785909983174647841423917152967811995269908318678835709821582394801442546334785978677151837029108998931936022919439628736166942354040791347863666645732081430160192573091611884074689608426764342595634200349053348541332828327168604590554039208199733532035070558267609903358576808947932187916250333308010498158141986175935646043210528099755871292773275896153770377961946042803058812866405409039661825185214541801069330979105902715521325581452235637867337743085519245363966547490765287862191625508196388799978113945902889861608808470568549744470657471755789196148190152627097006701827679799723884232602447929569332625954674611717708191353650107773966217124634440975282460533187139049207411197949642226751305372564303554706635751003167217623255260804927309348685813294735080815151608601049595129634886353634685843614518443259523568473145081200829486764473365965832014143731121150967572576905190635775187364439246439761920479537335370726158289992917773031394821591674994802938352735797903284826250632677402693293990562976103179280697121652775902457374686809888638381534400664000761048108691260389245219007844000010743568379062510695150122069538599495127903784383675452124808243781037180204764547278897713620725653288608815660962300733568341200345201233767558635301863011016835060348552698695394937381458166563769638737538360527054856809266508947072801184011085948767267646230068042583314884084004620218075563377902607997409289808681288816949764197154927676920521127580917435245976489329502484481154503615628160339474761031532201139758613577599951781193340299107085900744510585361330749910936523463352706239699047170927672382470519679940713243499575345277426867965260721249688624648790725659606291508211603956691792892586430338468261382256138728669950619326916827436672886466521059988341066401466965152645143190218430884080931407600060901998317786816840686013185748307469462506822994865834574317148615082228399518131027062797032223760649574520364345931533635908100512569532123851047711749951379290386063631439906910958714462921687811225881810263821253381090975877788517728389179070444451823485042867421602096117274668157099857135156862031158370557969756865880548798201438463181609726359755353940544524707221016731944350240690863045978558537019925138060441607039019545198694629365588282832357020852428309971781648524505777787226324532142475158678399099890355447489209502117068983344228887265072419134348443183921690807887736086553969203948467961917767389582634401773335331599469690367023861947315947952269770571591565050550716128665983788479920431640379473228347072253800804306808789172957865740768595107733542250049517860058586721152637646271345729807595355702502044645002948579118756470481820541340090015983496299199695855636530360519444555078438169907330636113790348051152752958799784162270007533149853302493673606194953329663675093701073342515837670693195821297536714162356707220581819062040609957161669556446750141651973545075320455284468558161022696526348035669136934779822367233813166055686760997221984403194745376624783970513779101738116296892997603022971117287936011427427891742850817531193926874157980630433282462879612446591998820548877409774781162743491113460392923331140970970344472543691695146482007857382111597243911717612537371761151898380435570359975612696488115556823219121258187385377310246108412380203191089506370806167996341067941363670401478831685035374344091264452417125996114593741631222685346582735442585149133253338773145379860404070500807369037518692404252470451712386548817071168286118384122728219704962791742787147768256347147514337931133154359211022052644527398077700445090827556935892037365633385694568117102305700980689459807065040066365315157768638890027581007903091406062385125217489203710664248927998021248852094564592379032800881529620240824167995435822811731223075153554927538158631933632203333549909713015001014368421114086161583749391529613901396659885701366055004683916352090726312628311312994637598300313497396472308097547195217745762298473914348245104810767108261372949194814718682766083345425423161731337861392120451985227106565733735099711533755119466631685571073633763529318154710885316788540396902606816633005532853835745060346682526896105378193437317852681305600898563426022105501032193659071770742673642671919188732643627815040643734131514692178199075489773211462172374677281969401019044916637607314090243862380363842335969786850161908029386858000336672031103925635505760635386394254720588319042788673983858453868379980766178953628359407152491068978114026244169624418052680182371330074074670899595265906522279943688423861280723258049019581246618347424792716075598334166397688352775003675732132503165117741170191421556028828247357887573944123627633401756010636898617708256707331612216125555902308094967533958303095428635565423644990093807953633801393832786002767164079182011488810811827403631253575624588290378188550754698746319634211894043466550815200261775686987451791281143689820491739283264408479511092418322337095788319873553235991789783263705760626457877015777830022362858495826325469828482774393081351391774908111386512140205929973095674588743804839543182811768025021863784542673822388896264826049541644004925539179297985170251018446749595654967314956349356488672924040489729808438383285579656447829355883176061776626763506361222129172773203438122841226764016545925774249034460486598681474183919426544012100367271981111898263222931608319879229940230186860791258336336244467925425078202987018366597807979108650417615230574932337966534685737041500991588721957747958188628977207529183791944372695015276624893764309178710265789891843558971839045543875523571252681446789523257147527116777822147952173466924631008664542533237408232248454001726799342912427054159925949211939052544053022956101807650530715430183934562247296285231089652349967378601262648161205984525470388591865222664501937737103588141592448507746389430629994204636580116654734451228258553067968366021827664343760705145859234724952740093340177999395240540187422252186061501768104636444808419693575777628871333939660140100898985762910647496589818908416913983006715673126538595354303600916525038641300528841476911108040515916008475392439248826673706305880934675733979830222145839148539426938478782191519691882577431487847193335907733558438014228867416543127770363403443808537161041351888142989243792359718253011904200106482139402742563092651721416885437032835644219663664270255285715757111002117876098221840657454230291257334076680633133478148716099503799936313118676465909282953765305914754044872116989374866435110604139361221548463373039131639558714843982041225500522633974909577254278278757557768803064868118777844838792024047704500096138318841797672812926267859599725783086759378808350213596536889032295672612995795481098558863880550301986941428064787734952326414454421412985020667950774191053337537798441018076192692705364644342948312870056750911657242090153505830341994922766055183453420822104475087606691724066263052564945172699421542108953345594261444704096524255889572836647614388140247470773282141817333203078107640084742283260572913544626556248255298523728698196307337030446602877006772760308529788112133288927513207767705446054210870642149303351899457347310308237867861411316181469992113467563790095387010114049889626460988363442675980327396500596293184215122757305371900599518557963549976191191685805591118122214517505927970413488316303940106766653804085190877432311373843077635794213298670619975877152395837376568225642233314761274033560296811356252234208219364901619825991166902111182784716469345140247941925068993677004659088550074885764241759301375147102775211610381155073061927256478914947290046522581795985337166830910865010081496173150583890851558920705348773274853932903831423358935706377820265354972132523989329031916963609518983178957378984591213345469257051548666725775281026558187224755885652535672959311199554126248386185326554386889936680548933778527191341308876473880438304479473965388433183411157125264854944011794840717194612123710053107644950008391234950502492507581941607294376245538759392658811342105821096244168166012060750799688696881964541284996628812030517808365621629481917415870707797051979033842831880633953999248727038411270738923537234413489234870149717787086691338469456665237057833880694882021959763365211826215486649793395539564884233107328207619549244456564534727240173005183425037108938784965190498733197609225920048386281610197192544129355101372942245256242865866697879540050021280574920820425264645735549759735580116995179075299166806863424776473922727920745700625872390990549901349238538321274124598870061597135098067950983297163832762185125698227925622899434110664666152034959249156243349506976167402117095747473734435338792012338852948452735277581510951472557338879029456356797009708530729162835748025366329328550997885418176261366621489501887580068749944479705838050272916496928193045099716622084833676313805171387620035425337114441293667382469217053984893408531768654537072691065895901123350409118840881531662296426329411455551094595584300322570645433381223579641663291833533770470509710158649803430806012442105526542056714637783139521025908576577971032621140786882251917596959570171401456150041181480591073089263219704373780589350133338843403907050274923785086276363215982524191967143846478187593245556937699182762637592460113223806691585640714673943755425983702610035968582126959053183227060325935069105960533583223930353262792485327675758128906176818822589891237164097480159171674024034169822599622640178040823239005383963473961418565827548203854868195443841549148747162159242021408121891459100953009478681959752929138949682983661369517076741413633003900879914568898167544847280372159381470273038030836465346016844340272507570051496556796571962822248826883006575122760138830219142035619763724357539734342671917159777131978365112974410585430197364942225852325635193953126575729816254752297976564552607035496721346272034769095065866161891232966582316273216017636733930949521881770782281181497439206652001180601535605273768628508876361995249964349680674149634852432260905846366197630266530975162806844164015427763641577742888919616045588887201430974333335129392639923055119739838928068841023740022647410828512402571118956417755933479801269912037542456530174445790043664419449837276288188583647260781598263396554239511683648531747577233596857617468394174959624672577315015652317109007513363459525654490577417558596808684060786770046717349891156647256110159863038629781075231244405335189209225356060125444128014183739341744627494707023066430494405487171403320632058289976498196336716625594904971423018056526615485322953539485934839695400233626856739268917948802143433844681565903443043985890946145227325639527723659223458154758636337837038731654745919682970954589872567899348227700277704462822841426999003549192935792790436336884511569102641739925180766072020693145266915809712388191754784700903642561182534172712509739874710800718548598533347619403155021499460144746192542680009382547348070127360317395712005957144368901449992333917128814984642735955314895527348571045736096570196345303088465114981207418651138249317247366831062833574200840937716228128345485805287413724422990681391288117467615127066800724364982015954620351619990809058376965675013170531002385518347619473197510145979507190392422597850949920755721149723098214679822249850368298506640685243648238623913635201596462847958932627199481355003342133131707330961183593953126626701627068777872994880328588819542881980940955368526394617219000058833448599561944946420498593025091598281984067847741807985489698306983656542425666532986936912856313473865395704713134502679339657926824552234649556808913120512503174469748339229846506909766754009584984035531559626886353395819517605069180418144808156842340363695565837989169898632489083125807979104401111458884455289880330778093927752339426089920160040263367842804830088861123642302699287307510857916369941353715766983853500496771189979514178634990033696378792773104818999501427268114546088711263826416531390368310003236001244029460101334670864304139148560719389437261668415886726617509619132927785510623952387735279626739785161705311358574378135542337076520389603611492148416982990963262699815625834370933790631572279116424670611142518614821258749956501220602470634711379285708238384964340336797722331379052552355110439537646760006001072866822700890996258974850230942041359856651528972415935303534060912929767564528121726177904031033307705726289940622312390333948730531932671978269724288766127820141213319229229077723126176158268624008802262073561673465437600774695499669054682980167467882189581233588450571021060622429991747615597319909344540296901228762826458056053300008371653503754635131984902376505121479552643691498209916998364217253331469801440491380733619094583448731605706166620879384780697481749201556727918668690523148658828534440727431320657351020098535721117545802186631663481447515119607108445521848251671189429360070037521162035893750066532870942780064721678434720321621653512279367936787882992359186042303963333937098926574276833373308664657637381403835105361484142095143537636837198147379696101459127205758339308957302058169711412061644186697011643767836360892127045430082265653142151266562468728686061690160842183585665872076608268176791187650358370704294210570926646926226209213360511270322600216713936035385695838557894404766035220113576480218453509090213654919609824807036994716287163057564526417369118305780246097393190712129237578318258663341652081272200591788737281750047801297978649209754322210767735106116699037416494972297884627837449347202507417066286054561358935883243723048560750245288360969408696179960938592503711971345370487105634323541945759668917828752837837868276186139187369799774373570296585744802407892385974463760941392170859185850055997162615573258884578381354510910389078851572039913628663048739214627528517627022714843595647326242320268681928554942388704225678951161455093578314026834446706557250104316756620391620822508277391797506790657423427335015834515292783269273742311430958473494233116157764253046487194001824972882278108236130826539950035532664741090682231592589686478250761708003546609271079314836368851699939923590633314851108860065129476959576553447539899332619131807004113795378968828731938294814152922761847732208032842907110650702789254647627893258239209354025850385563297476207939456778769566989803716173134924940147441202713027151511883565164589435915241337530415922440073483341460158198542295794749893214834452615320503640697887435862188507944901168717627843242191584527541296095701877638380190417427899674695540504290663813698654023664381426022904150404965431464413621949383855207880396782570899909610275885897230905206878162566063997568075675807215112034366165885772296710686235096815540298696043973258205849366187910483710523996911414409714149822128257234842199954823514333573939070355375817518567402861739033708160494740875743344469331794751373916482951814111195723332031161200331198793222898403772720042754549543562566690932604534607009129106241593766150119049308747046387871557395981718943487205731123911350343825429173792270937312580672546051295277931050100175811100174086423572851830870410692935491095351528426803962151506989488827994518930452637950899595242944253613314307731254431478435095243748034660656908423221426028566034117525906669908633198766645438845037141849858623868978580567155182263011594226110140942488844235729344441840939088056140888440442936917769200457102796850878635983589588460319022733494984344495586437320915672821685428075781835021503591469241145787792218843797902826250476507489347774240289431946180196575719405938147056856406253078237833838305956578762572586767195909637797684680101043714795897262078861746056289513372735064685729447809769379042934227538941482089653485455575093912301651647387204677225883404480581131605052547004261208879063123696209954547930772351933029001486580895479405040745414065001532946035913780213428229261638986010718266457376592045362677553074271845065350037332539066963914536005757313826565615340557422205843415466405607242671660178782846963205421939945766150766414444418507326019911014148048395014010250065002165853833228507313375435429961989395079260940820692770702760364381060670206283641366871742724536725951001202284494630699777242194563498261802749272851040897442941232815671733549812899303910917059502556563673078782104966016812972239290608243571785943080030886034463768911091453985828808179927317369075577847867829635993583410730162387665286141850728566088601101151157033979431815661728373748707223762725322780857651612562220430931623265423757005267194543125899983739068964031817307938286446202781447219373450675651547424645557075649445107938148843083037975916798440446297449064513723602108865670883806417380044697667345593423151745758416731276976532765962947052072192789161751121540501019579144093514920065687768439366068691876346910426597258940763839513173264256727834923840696258778046547494485648382241208261928221210865910177642257891234420724500808377295556258145347020232107902739211071567144852165963915376103672824183855222517200037542316655280931042523659851313374856593922106033021200776359461341524362443409382095424558896388770367856498043925911629589883393733164401995795817699265503023566940864419514571859780630193330548815663001809476888622569534644775589881036206211445337509891181268014092399226467411897104701627176546964410980930566662141407412576002158021509818549220357730139676774917485521190383793302094173539383583465018896558777691728411781104899483640868837459389669504966019368525489347270745331094343024585275183367636942938145766590624505055240516674622670725691033381623452093368946286818659546119381391972530707558172753938595389663142690672436934365772096537207902812034658171863432143233332881647684409349310794597743799679585917740382211139996739582014851306794296533977361893481678069692076480602697660487751029524110747118949301740546734787599619591330995562163889359756131789988735775680443142410273092647212865649905549600347934817850857115344066928259468879910703764360951715681570661765053455544159433387242046806340794041557046267280869588286499931313933422553812161922295400791248275217458924411018140282802917528473781027662925297553751952356913834361465747292768299550363248881220818433494455174203542095756881937006205984274335959102168763838536684290875195839952029329142086604377609051942120776506594554621103085509012676838746936239313349372283025242922450370806834800901174453805518553657210345565649631687280933327121929792013800267506248078609705335359876446288892656468297200775880367086616662380318564370322637371062205073974552722626962973572960248332824837863473052600621517517961663050901085951565798330432162611937989909348324632983267307094405584043671323473911636987493562501524551734781804755671718929619491893503323502104389486356417840347304812729937210316670187822824926116878722040764605303552719168702812859535882282635786976840676412141934222465426537018528447654831911130248655898054668944145423863048936500828838254756988276899407565486606806410303423726210891617301576738708550651880326645342155414001641161151516694173660511654677184887775772485206636868709117621625229057346359968654292735688866812297052000082199443892724873055799309900966642450826586925288165603082881347074125150736863803475808532306576123468219341951138269682052315274564763121624851993172293278687113918560116430840833131276365822432036431795338834493255976329302461379312049501078702141538952053615527304785713714565989751046308643333993489753963909639649474331961643371006440060898821848931053176713165062625584129454318709453375298785821495647952076336199187236832335803781381236850788160263729005643276235804546782471580734881198482603963017444144410544398052828079445163947231063464339609165378665988329361761934396277310770601351824942456457060591143552751762601808608262673834410898379238004383565996916694298723860233893606124782699283067720686750264568190501733550372978184962919116243736746294581154211754593930488742039537573829605131217277197802131397853116859862832318418297151300525621628149652941964315189037031871073673481774567079492928118623131994172185061143015183274665403763338485508264532811469944916800672569850342851835819323529424927957971084351849229157035892363098346884347074224885751834078480884875468653235824818717949695854314861824635651771155286882858368488979931122868595962701169112450748408747914951289736912931571544864352704122618579466830645318163324263533642401350097601505847585462480224696762588899965831313251239931420505802915683562218084782415342404577999750041952649062916176781949393316460454730323307015007721771994488644300108309684496703569792136189591469883531534237025670314163686017234176529081550247111255364642598022086650424637978648033025112879061517856800045548068964710613889431091785268905234692849897974204964164437508283771607013330021735208236065185871141783071122319656830870418892554425050316476574035638318102479259772055819886253593570676409062093351494940210086994075876116617557290168664042673920319381169717417669877153094401766532657715586609505706417360626707630515189494682660844974413799202369237135112356894153184935637983047319741107621247373792437667112366611984100617358906363697464142734900239116426141134921377372916664279897527107199950533482073980368285719132604730028348182960767569787369453162906862358552089183005555330985391865413336030461257611809518239578616319277625296768997246570129107533151926071752192817441850891085857902519336170111211510211342288375141250917470228147232010680439719692396372200124689342633272118774914564028872643869900623375410292523229066873099202759541469701013881556903898238056167433702948156759817410994772941191485198308546197071625162345895521046996661437100232403180270355905843029910134059946964979699174108107100200190085830632406371007766844461546935240649136631812866156952307585892391401124410236950866404003259948859896063371557460651393679762090166483740087665689075994418165572100974538263117794887617497050086087969992741507438206277772607157449089643742702638299586988843872908179747647293955131256607360575104080686320238018249623482055304602870320054895043805844078355234820872811076666686659675039099388602519181625777030752015788101022442451879861281679237200705495277048639898666973829633573526865729844929803919483824464850034096952636836309144261777074093426126745068601166375313637760858511355847525188848601376283107800216902764937906024079450055390561884282659043153965908472272779993727219489286420964478122854572874910796708880330875709545046852166345329704728506692686750794952791552794131143006770926206841740279712641373794859738399489452616223227413991638086898431430081381868704158969722862586529061463020684560661285261763049472114415720193959946064504498591742296701651641629719442353193164658794908360130109274507309234892982109528771194259835224830884088732479877741382849734955616148467931508040723287551924216193318944985905899124589755604687355561917754302615794511996697103577499475932178562104406924590505852246896994568628441124295560575715564278302518369772808760671815116922571948047994739108400687213393924797019776586543279433358761685355079767961935240601789552504274528159245369904905582217515795183760937913213017129594476915422994171500281135562290093173806496494026766650665145896085748668603081610918129670071236837567732290620175633230626337285027060939188320626223874897284509360984226746893837366413600761652341507063569087344497666461032927357103296157636884454640413167143131368127229779799758638161779767666328627394749289014439255294538367400928017723020991276894806863607470665208363570680713289539990615854756218321948376043302221151890119830215247865492068777868320216392564380808691277908517552957609649057773428186847167585682973257054121965792442593627292847985179072083268528089863921160440774339261671735050704484327009608011432457779268107794000993232735368236855521045111922559387818946629038089992744566083177494942039567817729723613676359422789292130011410790380011505077789870236928053624476780796100213015948723312322359581449353532130374624875208156840848999723882015138215272661428616618146863829561361678960110485337956048431915403661883580518613381069036038073434809436290424130619795484960842566257188688028419325661818175868651602902415321675444729388040611081934130962834531091742141289166670757651831623658234150639527162329096430052534951402348275238633794963275662328834009057732098689786822066407796803290479961362711154348080765478309212012155213149272563291237705235108603194600004979722689367284351033837435570212017108911081324188057202312434297543264524513746897009577151187962505422410517948643096740651330140574474237995621716135517484902909680009607420025412786566908639625760605170297666971189300670783363429373754114177473824172622365504559746852509308540128948951328667126430841599601188109510033634514004316523593876157843338565022761411185114925283789950806829643985824251909147829419942544473557240629756804125499208624361481567431774575176726892853936548487842563239902741160271762067405530360662805419511665752480468762383937038710330254979092576977960243927261096401420948235011252182714954229794868962875855660429622939825260177200573498077847632953691618720141872237514804252095437130090284529535106384177125055610218509361298895099536828530147707734317446381893604096570350522054563010767157353909178520163161496129150002646137514785398505865858006919495215813044213582262010105714958500128585384146511962711967448704814232413507890070961435034101507034965716451480578573545708374411088268684382937235603726903401305377102850110078854413124472526408446633702806903324005940397916180350560850593003256415720052506262599363271660273234293277506160167385997843129632268732966138192853617922424164645518394832374176839434821403314059244592346657320573113512127808328584610041056062665847194799337468511932372076080961338427975919534566177667341831540214509238839581997948411484753087852818868954611018983177996941303086259702047141565678820969529088350070947504551047568311367638725863055375979834098696669720672223313768658134245226429862318325608434980850698104357192951345177586644591747543249416127115556760666447148987518358375935634921837370989809179280424341191903184100124830352701502976174940495227097173356236023721384543850674996830169487782254532109690607978782881626125109735482386148266982503029693701599955338808556487246390449282536196609840714163498526792793941832856770033723767881596266168745264746926813259644762295148188425293773579361713590931849028293195514501533274314101360626349422410941958465517151208339941076320593511295298972630492641541830512941594425222803744397761917103241018623255468293207715125910192265357994667029670736389742423126366125507084706451359808422218267329032066524632511297260666590831102406853066269865784677051489518269563027597366204573854234700304745363308692205935329117597236928373136760813843507430596185185271778314717550976002364703961551492012880101678039963765841376859957082476275501340173313461280271915002529527864623698426059077977361018474804421467903481884446592576734607791681391263550972448565689105687442086743174624840464268669261162411223535608570858748445445058999264563795721672311416464532185319597247770267744029341442676880157475607858638348939756334633336948937911936793599089498919153617719708961966766247853878184391429446848979999877468071671668082087153382217521413291939392005009830099879126664578302774193343579552982589872496234735396971070338856798666741959197088081907858387536804182959927700645781532084178204692563456504759873309232569124553772569062284862045023142410213346991575755568758071102442066407411469733764521339191092136811557657748548713600701609909691399960579253528474134334913559868176279313707573781720282098206766453869518737240276553724288753435571153112566399044287572283579868929060243893624540792699467564863544976420317509271991121678311014996815942104904353376907395006472925445161039366233717423928712183344324365336030914594130941198220150689973017599315743128003968232447620128937868958575487724895673488995187306433685399748532538869088131675911462048909951823466229679564247572312750952101622500259034174966529277702644269172372373217935560537368336700555789086576208961594641181849958941750158572729144675799196336997634563722435567988172759462122210881890604837745761993039620443730437964947136805703713455490186978636896605207067132162653197547910753541196930604626658919577240425858360092806141216477111247360516458520519427605152383614063072615511202532362355795658844100473401185165745941929262205031020182375538409758860978327258714286472405234835400025094272753238985457502380268100986814693115807226240141678439065635109730518607251587197192724139560476261381401516062040470836196315721731200572504341943186050882509846004113791300735733749140201956983622691825882668460766944577571226340290353953786234054108857903832988556213456062609278298376124066171268248136871688732719023106250497017558693883952850173047962528878574628647158429284095372846842880894933526863568696327406938502436370569255322950707221995171791261906085122470975706439696137379011043318026236792941346137025101523277934849818124933434765624710956873884571647369968546337457412392135339080284108654313754307215656752471231591571292559586190507740904638147356558130168168618364639587401669372744936797970604716548357657914550592959411870533376412559300276590687776428670635543537894356135817713309028298698455196393256111703176875965439214832731771542544293225948436131870710829741650368261052907600557487657637753958475257487003561587634289144942816509219897801623863236590748469257633856446585425989282430663219535650510335499117573126183241925244919910096593019657409506551581823987472207858331354180801385537085504794032303769047546524705050276608604566013271941794032310534763184709915376769285510498113396192524958917584031902257779817472645886387652082432734362044792293092682470200498231507979566320123180643485313885784686954273268645258356212333507856256000283535794184695563322073430276534377054584640817052999845710894023382965225373253095988024117285742861609257373646258448736474504680448005676862216834677458817098743015248555244056358442006750120113169320723460841156130893016608551661964593717598829737833517668703029931932311989652742173570247316358088747513221192110417191504097148395274173020699709561334214489614762451048542717298615738151331844736822485388129628781549963294698014634384392193754480047380472728531769280746736252060107838925739459425515210750384128257235383221485851589858671105976294374246162593489735563114073418919967995156400613267591545591455394568865793975563467738661367071183055335644223999299526587898788281651475661747523820775847404459181603911156258226416902105726574973761647570431346123452626942401909737840364393620120274496507237003323932374797730930797104898652862519694036145413247469418401084899311756660319287075617241485738468824440954123607944652443799318816458317336409441473195271029719863521227102186065873832837511432453038467144823339762639862607258977745653392333631402330939233666265971585114609615282073791501593739887776768323880006003507235892372343257403004253817898312740649409808439027350554086882449414069934574633374855005047508935132681479955804074575438224552620831381891941551408542305162263663137656418367936106601037706351109441946741553431893824151605413111581413020345321288593656032196020235790613650507438039961276247936319227879545761784821040087325575573164078836636496700374169916873195457106118868640428914205592068493514510614127730225774728254939479424712099845672091659709820367826861689805494448099244699251798954063982908794524723681126715311733972427776120346089027818384681166742176257822706879334659107133228608619109471921062528566695530979264218112029774301495512095279369876171206058379213198937184219282786312789313179271382901378135443039461917521810796290272257752301623214315924412582728948195675128561160474452050206258870281157927807069284192474092278472766097752268757140467847735870838137563990817211994560674295970950491558679533124885060409449911684834036113091490677076538646881126663749970184038428222435586698316014005151275904391636881745721759374082713983831601149012400406543584813148522672574323190583660820403610592932077797234017048766497169815630857508484225716263774456128153792520407293554613420091530505696177039251800873007787386329577309631068307288643581858654601067217915145452325213689259649407630043014326647264407746197128432245176139944561161530321672083116231010402116341850805922810229248310572371112740065619668581255309122646157532684889853477039902340162631492154219008361087384188592181627392346755791027830057289600334131254304923285146930779040098487379735676517691900251829270582302762220952154601309203387234036483479522126815075515155175042822917545799862894942806341287862783904782012183052163369719213152375643718578299801218996435192060392446328248729799099766862399262660937500429521560528480479866721262859836178296490477811512960974641493142679632870751138711889003999504805913169543490702096199222396053713870752053478546258865680866698045058616652048512450061885566843305329175986424296663193097711522433079260738699742694673705654170447584055626466921763529281430310466657649022263295465181316890933565291464119906519489235260028328277546458308724269511864308567170439752091721362955820299491427342995664731851660399136604586124601805290740623825077746194363535456660975000496422608312328030209493805640472605449831768151631285249105636782941574237361979635632895225620159366192956478518024054956788938726343637273144810057068184627202642363636794357041838203124597531903177120062972981501163527561709932201627939125982130237547004897256443400197144716531844751348651271674732191722135874649150081557394764249922675542109728482578048513586778557143047438107785745875006376409457243514133231599093589127011455353321356543039300360566750149961364380818748488657516850652078202277337299541713541237275077382663288506965563526931517986091307130026970227813484076024147567286327120240403325161529959370938603559463022139653796788690703280937854054343380385400524172564699252837639835298621202778477834748024455128283708123973580733816271932836978379633996162061773095005200321765938663736131878513802153688907567959889215310277759310377722009327193487280525758630135449320023163254648102535550315597746700030591455164864210131308044649199490812489544020475964127481227988803482417251165292229470742066177846114703195469319954567268247643294357670995387742725882292587603987593288372860679843440817766417324300144557847323376058088822161270115119339477285496449993715564023747186223858541543454649351394070562212835911770609753006983558070270992897227384366312715377528426751036536687249907258189460176181865045141439590010552187343024207330192818502423105192873086158028046129950831790358795923534161863894633860898491584599762317082004897410445116351492685305878271430089885155077201805794765493284121244937470696340220137698990167124239212020639847592654985879166663335613892025750233288795802943322163093440392170654005180414326826798056179558227451743859349860707953534947757863243090621519900881412931449947239922545859038053661626664533156740269090019626421952031456516351543217808440831437836069337540822657923063042661961908026067084623446304498988057898471248473756007544240284742703935552120342992546730088396997032069587291289624055778673425294704776518335290717367945419797666068222099300673854854558750246027329805986516067928206287941114458996760761249731612180233140613916111319071809506127848044458843907142168360095789733290105627848691626064525819432230061578777289387740048829619639521371130873614654440088324949364606726591333848260222817566964674485098681053516107428099726555138239727036240434752364949486913507198700759868184570942191658953030910253979847329211580116431460744990439617388377411871900628061149256714722623682874095666499043436892037139232588958841359930095484605522014238091641352618799994660832704353713348824422121214362845057495030645577066746317621322398623577953810564719911548630080042917810335406902003219423029094510166876779606311103739902466084526289561723207508339909055308970404721889813189253389109087177701332799097455533785147990498337580656292302775813557402417305755970281774238926935015261972639388727619808134253316488747961488278597205344528663569438097686535827072121034660880709310549242528810057701649580417833419526089819902624008835916277612869965973336172595136450747177036483466496996115951457983880606186613034914305442851886988850307720337499209824605998358528442143623583705945748418960399175319467979584848784693876665959543806693062570735918900361232467305518214260378800677891223404798984420919827891628657466110937046054406209681840405225244206708420431253219735081336871934156958513359500770161621796713193346425080069624756206112332676106608696790863231588013782873599002033423621318702344512576611155623026761355413607094404219293809850826279608813254515755051501685905946727580012978838363376075072645295737859901566172585752423741590988371640753717341946641438522595618366678852769326170718604525317772343366157954599873176196984542255264474861742007553568525490990894952193671534192853555593456724320728925627629468071954590213788630566885972988272928652136465039106045675585023884863548286143136634221610630871854294003385114596088575196517189264486017065856489299342478701580608438412908712375235689848329389942171155671309612340338539836016434260859879503335347172380675467330070976353285383503723875797755247822519755541382142436350496033918783513704109020346789074701800479072500598247129229162361561650253632215188888563433358961147559452516148050857615484829703906574973407766337650721493793007962318918715692314671811155176845148473567442220885694323545415143133764051446864284504634605339559415301153385249230330670452765860907655069514939368678751115512538092035505875665234418608369140810584662339533616251143923705861335495626555388400900389861253614064829948561491633764632974955082356318286711561593257861515795815226799615598168289976036531763393781500709444212945129408825328942814720042065797053502635396492009748400497782241318614833584902874961489606238069720395935927221125472309083925172291643232218389454744767021008019672036422164199871049315891842338314154806471383183488613214835885076962244748611417773545262670737525488604464209756589732552504829537739643410099880786472787757865690503761053848517559520383636709631196877912281534800489510761029638513318907619238418419948704798180159392853435560665288273643157823546138164407383477555119776794633360256043461744135345943754540774560364583757419800318754981403019820081132437456846532431171450800805020357935646355097690490750377742155671315629062763178470119195772076752944970725985995653508024668194718185811557563860148465332866374056307910180512935738458271025371772314348605354205009699096282903037449892131252200027716972871928002947755263215963803736873258689066786560224019090675313371660042381331138310639488077946462474553208801802141832091670853790923611867093044657000477471931033832204788594895883413544226876482208509651154174814825686992875258753916183092381298511380905075354418879981503823050768892252078081145409883599484883355906272057349475851050145429580749475822642076547727548832552345180906132554540123737948886861003025922043882434451245780914939729651981030824371991304191605677807553665525225759813357925412394002635752197503472365587876605834235760617859662162049743707123637798931628269266068864500225809659132708731518701832621903452816828147922964632195804609177929992104927208935007514773144657231862475730193534984787238597378834776665426391574630182355613925123666965532820095306758763957708135458740226461108973021529418428881390300748551435488320926735578767444908686932914652072161086762107486575494747996233935446188205030313689191227811869460646481872743611183332053116580069165772732172293284692985697040867095057773513735798950483881049978449272268113828574424363605817967473124378794521224139747763656272715135553273428139361901408606297707621511751968042624473665712104378237663104433938370580978066265820364149992825300331009558072662019053069828722750379546214446008620416781746119606776069770163174634936806152598452019878697767441174047497412352947600279942872574364588029072382116922097497379020907664397374688409052342508903091018615340134841828618933026349037759565473083889521608938607919447096578485693081651956344043683963594868572564202491185981444150051043688825761821622575713875206823903468477551558082838324433519599827792344179059581789021343569498027513583281800870544649862152052560596697876154315803842213765773152690121110880954215366750395584283160247976648909744231031918840484459904102860337661931098113739333205714236083082252963473583050657565413547036312814677838197906872432582808234062866217363063373964585438887760578674902171148633200187227361172728531330318855725792138402484217011760803115074628844737232868952989697441050193939587632459026733995826172946436080418598864123257685324958767467434811149408834737981329828272077581673111811366701540292145737472053031408168967139417795095505218157017881765760396789590767277163756794899103869182080713837138747505703665787505006783362890703650853233157993347303537706696814739314386230128512018044839381639194015470141012494510428474717294101811867067277396425852494981424655308649879266228354420796198117750771576697965719682611458143080423257905201771253236785202190864481623713356240972802594273139600801399071552417015237990190604642670109114149007263652008143488251392163140018926575536482226502156286405974871317195318244809409288360908885296377981342712377426669086400153623791458371947125719170092700735023685480036081799524791841516074933381685871089468716913186048313513796079599099219594312658808708117318695431078349715618331675414685606643938724719331959480836883886352668712039015886727186715449667026753965853528246288945940393197860618267319500890224956801151117950855060918601178291950806212755392788736573251374680998922677222484165532864181789517085888535873067038833383162262951019049423790299942646797146409404111761845559813285562932373212796282970072819648830073174933852297752217303329042523296826084437183975936962981088139322430747579091629374728484330321358545274958889265949636962157583787978283706509093300398581599718026222290118306600138834614843453420595224261966095609091384299088403523323489199267219369604970137732307308211200203060926682496943276372515812250202761749567783086306675907767098419776669667506771908640166186289095330278683306762361161922284088665198845822501164773293621504560129512249881354181411063663450337579930838845835138818341823030517289259089707514206332828574837766820216694047394938965623670921755808318413170996952905695801681057919510544984548018874352445779671075828646001941722686443421152930212099970722336425440987751610520010724047242149826393985936210888789030160821215937795177968340667924699121787693194805727139702088834752017898003206721944107367936420254365260757807281797333528251630589449825761956825051542336870760956880582211920972854573574526249323754244881644361860123537846416191880714980334306142391967594977362044146759074908618653033852399988919869635173570356088666458158012021567996616425018975064683784051525671682408941745363145458247057325668951918032383586954333160064919193140342367438065874563084960506964152862266310135116134879266271731560330539372816957768207645586145510743026036666072111518590070118691201530316843047372693942339187695548048607810159479502821514220331954200425490600294791448061556239744131675347690878409363645760905904640742176273955547055408155282157686740339351971167220023118507504661556364036590327280123373873636690666109323436633834070870728256159291862288214535069173034181588698872143452036394386252736051278309133309859021125528734273347849686517437867433600848171383557390886455254562272826714309051756469545351553629586738320706064685020336096737153063148066939438948528041745965566295719829929096756410734425871008343496686533146029108144305127058916990684655631316879529262995402209405772336991168008071170050085063327924344222129811548203191369649402365900297110262945541020722217997778786205956393436592687288272396170666280697449518897855677797964098324918455918662803518421834107112881811409982570363408323149113903559155708879542538290403583738645545382791389736192109452500654953365802237129925614461319387563817019312022899857434926873053038084038083362867929998664603265097600565974326040551391794512354565547439491909183619372322047684081645108812956044498456912324449596380841463585654650556553821434018233075921353228706373810360475162842565427158059200735994968922944575301719119090860192902630591111390845403320886025797226293140312105447319135259399436357521696033951273334277469916556617854143199947205321554648310113777589486373766442329847911771271091793973435403171689726491645274126294904990257207597397372315463116814394320905663425195649740263501536783177054159727674624837270038901956092936610102583599731113314762039096787934729513586097994372859762051560983435791654739548083189029910283169535717498019151392987075187296848484444624089749315685889073311050212047879355078258967921121903168442967890947755078670184501156347132009847638502152964899129323641206141177698685067647376173525777710380748155238025889609672574038857083293066431454620986929435304540330431871081276197981302479491694185433143321755993362823617572404447443384687575386517675657981975660471043040436423164195496665590650743868906064631546834270952493743758424421472889220966400445170824956541424189166948685239795237235601371351729399933981547978751317776126129641116823972074575206518397846165770688705276458755720963806761890235827067143405575810255903750361076264017396870708740374292398839191189490001123212113907494101796588491692540510881026596930740754528107714121228833167723853754885652135567922703978807493654114868800638184679255352342729504413947518060690600653265968630708935259024145252191295566643934413631957246957685868238341979194257122115932372124533350855159080923759041432310184153486339672266802432519722668776909740210256711844128664194633737355541244802381686075697697948679911050475849436767582717734059537227841104988668222191870624427756172774603683442280734227493721144421261195506749061443236773005942113105351080608297685383503890499011664592061618336379318657519661638197867875972821485146644369529439133342636737288408692371068879413159344382342708408924319488515701118884082675016732692679390708982818358560125052317423663569207140719953470976633439572389698189103730561574475516857661751345618678946877166559181584836473606072986790795645244118847332187404807969569314232588763547379074881420736784085956069556617235687160753653490835909841968554416740245589108047734229446012573030820452663297890037736527187854191817156849408053942438947122663620358236136605267977644988474050815603447860142721193305130544368471544595791814361433554044076764784502545061840622836511141219026417798232534607116291503968222459251294251155471501183545279656150942795121106072155086420356369528620864385310196736604342813371226761556376388251510066440263628941642468383475289225575056829219670175424566237102964720243017208743103564744786451223312061584036096180986732330510881406368264032144425231303119042219150416315898208900938117222575369385427655218531316169920082784623054700996440516489767668526957789112751831326294960537917511182725379681954782830710992289295226962021797706040567065092510521842014470587910826839915577221437388263552176061430629413976233175241038499728343589416783677865142081513470288109483187144136630293991589410561999236168955098782450265309811747937363913953733966847092810538903933151851029993983413399960397218901543070357878049142133366783194343706740050706581946290023780174529471535838015706962305813466824593482886187782698699332047247614421438079477917495898682919016495142418925936411554352827199762715546259778110245182160646326855033338871657423467318360430466912548604282900157598044562478291335017167215999582833938626644173750420896511205369758554428285100759225105515373118554223445190890622636854605518328737571961738222408666724010535474063951762251409388875370208380117049564054452320397845487003749487159786751423024379118455202289378546070739281587089615625261831952879010799751665571264134174314283112087220829556278273981908308652786965247077634089632889059540429496678682977847559581765125126917393727594284642753136779094630379124340794943016339668104023229921909158855206518411723734504114270408283982167612284338925231235872806209327142056645166519358066364934001004188688154634505618465773964791955302264770083429427020764839621715898778139633071454220555932932957924157390279661840689951758022144660726476509129842666921968658459009490185132521539397167145849534295249048718353072041798980600666715208455842656526192856666698497434993271314780709889527621142248073791878248434110655003136156758622571873854150744234080302432848223407928557599640841358491094415205991393267321636453230631992667276686390714875481557747479902342076615467919845635716955526655630980119794526166162126022149062800946856729635394018736215825430607908272960975113507277091008760478113736402202029397837409126026436421492942492526471204430635073798819378646542507624617290128156130301655515682187852425333220294590919805911841724081174781435810934542511562381803933366784677469548815106285659322107974260816811477906480741156718737655865147620481317811649116469600782368303986265789932791570571447630504009908790007366166205269011011984463216340662122594785819896574547496441074022235535143479465609680074343940655307388949215941030955036476149841215132476806471998647330887426692347356536662879777744412359175585969317342621134584938656927396605271618035974774650400082792932437645255835001347231158221838733239335711965022298441302000658222509749748753057669004249280867438862595034389228215522388796727543858762376984794088644961481151580008302636104145450748560216229559911927786577869953976828950246321109347617725735642180289221001058998326505950510033576601360869743686985276878759866071306028584679728940524966994347001551070081214100698135370643910470651859855587639200958403812243037663687403470801921369322445919922055339475580472070020316089003989999221636004156350111446383494906584829311260236594380455473199234937821131554572899350780650553563386271746456259557975110320127317832182537489178968638154435279811644394262454857995704098325849581120640275264430882043773458351557416705209167177215791112373053950285625742574971973280551124985010191961017945842228517960426297164091248835585246441125949724918416668987779776762359408558840858538895307746757713398797606214377206932203933248863047254365910627579779863278333904546794474444257436586896483235296958354462249911213008048737133688068888739162431921246690464092871155448400253495795171163643999083110827540056834924019762535373999093437664293367016232582110753454386530732636129291408977247356145096488104152876752693483394464206030523231597320856449584388798589452924670026854073505999868262061128867806489816742500620996441577640575892625085909324222441399258754497262666777063521858983128498107500657092640018398879328241784197965348613340932520665803206555256464163504573243254682908608498944518920326033942110775183622051750705571339574463178267764945949885593066736570694916192319785386016609302088562785682427273565323528096258438227385158947594106363071514345810417386031139108630587184502454963719965718784079636346662407894716099884744500888479254794985109851966536650643271415170788835682393064628587768923193321611889735359886125752851305920266462243252758300742385513846123875055389202348710438484739654415075966801174148401406571171117560045439718233457530629563836334040198398296184923277062043985946763716538415471945754596968419376412032147096165536715885803264599591584681459377554530876149036836620406672346533612443224939217310470460068189267215301926447090759894542381860840396405527626745363197426716577527871658986775182162101448040705426702280673848018611564936909996324307696457040230277068865515325974764961643245017228929720209414071031198816761491542718739311029435720618732459999168274043759229098862144457282009458886649782623710655583498135786408189655240574272221336464474244867484445043380480676213069984616620969499731338697589060666102356401939412781564977231713665183101234506813697069768204924607579252143638236007782187263891634497747893313976506835096084995844100939365788687902661755672894535939051795020867997483674118433783992670764945331668342607591211899031903061837977791753725004719831915860069594607104054117826637985788645149012323247017446690295763974940133419778990327796881853014550606914795825465010234642185088644836879435365096461031724666736958474010780790355545443886527089647133606289524751646556506659906608439999964696505420377939669552379009794387052636555445781351030781303662081881262058614194177395599367098135953915124858864291053956291264921132089132033113013861724256594920997271108194188658071459863830381582269216855017694794524011747278224714765301147480192651658775473039532832809734135889169128053626687729580553974851443124379324194942582825506041226753780810684547484736842242681946818985470068429259301146061327946168118449732800844913365457719158320918043784732154222743408452180750239642063331411668319094880429603385438973466519041321562730394596346958248788347019251735323305049953382915931829401716634580151169467173454085800071081600086502986515629535304916048292032500740841286187700040349758781063287096245927092618469987680596104557499355527370882323298856361275594643839177422155272148434208492684052625301808906368710108891179068563762721055050166411212316935397395578841123167711608835418570136396310880781021440249332896019433909092963884657746275623108630880392654971908211111449966758280537179227172575874107119541948260980179053477937280517746241278878215643318064702872631434024709858157074163667903256064941016256701261808100144502315503134252383117874261121782385430823903134458242598557187635170881576619218716441138766046884032665263255206685407699651961881907210187888157806019121953679380708954413639287293749371180072037563007236608624903331207273886751969315106061648773362740869254639951803121142283195332215893105415088555237631953595118664504650456005179848679709060833363440713812032275334939757984236302088449107126567254853544337138727442977131222077438415599458061025202007907053075847473935463998736840365293511300206585456446786358588450765295755484203075018110417393266703040812071194038395191456405877032799934918844592064408484836775513668217557321687164939891351960415949551629839084511430900952279677177914108029316723051499419807034544208864326851167431245753036971516587197707962691507083817242181490949695790892053328272543707227099669302720153548071514016607384730665292753193715932338244483687655095116948025560676662403238056242454382131751023665303427013289815775306002666302809547856502564533682145581685131967954612124650282729012002972783682277220211290279510853435039953781085868752799333643387514244631664082171910758890229995159644934047136633934455080164164917688960221512336245246637981931377269822190129772359981718373609226918812970484837460016580940578040541250520698732618559642114429953251775411431111008921051452391331699104812518018116029208613162558141013393170282720349553060271959050615738834674266733123814223060401916944471324478883445902081845733159703602147317905216677051594100245743550270138424662004685612421804328302228895602310750145399991511260815423917888140723971249654926800249607618713364875846714213852090150587770000211118094353029133709686666654837200956597970737835191488019961737525354434963492645063265099040410628020561231036885691989329004063446982128885030587769844639072016370411592977795844319691925328729949337142136295730069088980212145005828381237333930524439099743108671776253634482413060583758253660727804820829847905679474532504411898945261927279932292867970801047121241062764953804119485196613832424732584903347313159306492505151409157371133800330387385733637363699499572693605334027097094379965349720078618938317500178341267369823474200635179291273072855663015604533289639651350148027832962243924611554290154001054931117851102145735258216996444427162130783582474141899132057271963350093427309118216217038880618678121558099356633074132835899100998548545637456646703820065224845438575879552302772805568599606397700770620703522660725970237488413973728707736539562528659179893324273083407133644218303226712257416716205357677613353591181584816012715756197263145715063962683011149123657997865502895138598575081152422330319548578555230007549409306842784045499801931363935507485134150098083848968490733983683336866441792402250207680322845029181558065664072876522453152564373488419837617339196664593899099010152122501094238642003827452376080170729756841039185133347541658899889140987472928116894713500929725641408246121161379365902494025680602841989869758514702931779312331463514579552202124127490368833925472405857239387543714504543519856745617903866182645453703916592519249360675694781297769886970387650268186015844175901533579755758617404236013716238207856864222768153710750242138966982439035365983116965658696233819683748655738584879829070144920136747748844074471168724495753019532299470781400723129058342683909797768188655361073697001059044048166462217287724885970637624314104869010832229799469355512915033298959494085568420713809701250821104671049339174435218230227965831205943769600820936540332475692752850483967203680796735447967947986816264931424001363451670889229319689726910913867457001436975826032491203124838402592487969986369845741733643723690868216991186522365859959790206754036549404567258122356011252749529425880293989785381701099365124631383124015111741017840399133324327372724090668841586711186278103037298902773424845031828020407637418078437016412125830268207623164830818700583147557077945479255887816750142856578630791051218157142247626443434053104724258633767739405398802700785838321238192871434965435721961395437446621882888722272309686419279324838118278034542828822408956088261608706274360285872576753174096752405214412056293855250067923138705977258358604916142222487312589608482346845998114899608395706720703005730647542756272345992305232657867246498014263988515870322417156890292946364576388227019249303121078476644982511106989762713655225058988636980967712623739837276419377899058315335736609664346675541746268569669605614921850778764712982721752341747369414444970725720261749974141607105352999543460251364632428066553883734584633300610784702287745840492007955719835547004508595761954763855426824103555958659346675324944262541944536011939871304267857150864318740542562781160667305415125748585860352121116036870005108892627140234329408438909553686507130760091640102269902487189425074688208079995967684936337208439278456925484353176102211617060943772952966086213175825524347215227947301844624002928567434987434526470040014717843473944092062581069816526769784144674565900834212236159525671805723191874160186747974765034953911353269882439222573617353944968584380158166434884542105109041723962232770893214790444050992706125165657786768127842500759656313387622598263666148170454983500500846878367603329049596306197383149839216804510216824538216092555513680313632342563144034140979122524892686250768978658044976170177653939217016822148537692816689227878113372171397624325108331258827530490864775909490171592952331329935793503011379516465187305852054239451655720811856463237898489337729837374878444057152836893118297843562139581285007242322815688911194664892798511142783711272158172962494773106631550690188609233747870768752925746332359942797863958234563192365935953432702779476283291859587454398987682333056733357867820451552318550706539529468120909467974840793774095207714626317343006717205850404709412976083207097996216434540231543026308409543106533635221961521136041513992344807945933783247405663462689612423376294550754987220355682156022681000640476857414494869503716474271827623094099120369176770874762969061444534647114874977299537587246750413790920145385062336320740570369582838822805420211240224845647378568337757177996687867024748050428105058087620890942025997317655255919502826886766600126316388175701077257302269159670937413964319872726241153309753849851183038699733772311136995704858185005968783718272544624157736638153151720961813435134841259286763636421712929020060410546717733872957427249472879806253841899567241413308468441424794673925944255978038366463164135881517317122048861973599950547138095092648447341278331069349045879238989857168374453796556033981249645552728539298705455564521677603172761778323791196177773165927357976570740883350393226176923826660700746229178516163898930365102245692426171898207514681517366702704201828785063382043118998735221659326039394049745902201478112080296170549170935502967216352040505293559028331797587680109382268347644836757143957244538189229445369043777151407887536975735206740411084656792685162515705967483253622490820469836633051311125943135432872003587126166716012861955515558130969237187412427390022589374776405493812731643488828840727326189913737854890200564064355050402232002281571342614274347349154771159097143343431066712087926633322808433008781884550015319277398587880167429735620630232297903884127139091683474390491923594511959529681750560205970107051069504824602832515915090495999568784777451961749132720876852128200071616146264266264167242271820992729826862958383546792530940007175057033343385601819793208851548092654434040053827767019999256750136205354607757995909950168630621835503728761468222127397187895382110623258978062667672441995341240745774111705389169722372256864886338842889267517220933175627324203516197004750258632886959954150791617802885314082134092462516548590381022181398208335078941879049983306630313241646241841246936806283166294099856593923839161135067335926874813267689548263939952649083690618734117592661628695537013518054249417746218399820569393225039911851501583965054852246432746554182547241781016749918661482207655988070867052880617631090883654149736000215299609687359540406078489922763328763282873324546298165015251809323417991897818641312774812775892490938162208516920246560210777196469326675881390916800094203633430528726051165059624550346834671386605142737137532711762427824114149046847576130863710088975212040675820719886145777042384689886845263916977126431983444203843957491256471934394020635995407881288401084898904432661521449391071748346244489236264489904392226813705177203307004533480884922361699482710982302809999645178599760662922418818834414930484951708532645631539869505081859586324822511276666442472928248358531768313207349013469778314095072941130329548116522270437377740564496203635859371548445700321271007729947608933533037868608910583364779412298343276139433429586425178512666344311467193826490327765156702708618334978035786691316274941380137798508392874938106501600329169800875891600386137294058477260346502872266336692582036617812080757436469702681975704456164419305783631948836084789545969993412265072299923021597078989503587550624504383454797496884865330693223709107242778296349532515407156625974302115757407129039355259211443817880947472201073188598285404864027388555603438427879885870885237960093746786429909772600157480011437807001349352883390680354633301647916110006649118665460834414091797760949108792203904117977918495885738567561982892075781027014641555792536594483068533284726463836803704065021931713355708339022349821066686633682600495821801139751072885937574188133112591800826727546906079967937707198960859668681655555907213210534533787402413889286851193869830435122764103902018698267588622840525707767222985826964109003920555860276069661491241395627138460738297143961514457736372308625750418824187144611339460993160447426231091691101263451499535109592322470344240628456413544239659493842668199546914788824973814172999344015663991696976411119014173608378877572651407418023339576698502597722445541964015312210789649091971108673004697631167927096828292511749699371401989136675008803869097685733517054869418192131364987433192142118938600300677526499098837491965282299170451682347569909637321396743605507219814881281641902376486983923331069400460936646774828794090981827442779290341047828976953050182230451828287093233531512368804312481529963131084836326665109299969400597931575957476242958394478405488592100919371764771529579308885028860272362021451567134395411201639669882550429625325779675930211548899035688767816984115797865398467557598500523472763713841545803683646665341277215946408988894962521624535931093840236275924119235958852724083840867521057310441857485960222165146764555746625088240397638118929085402358301553024247979239467708087151061023781560924607544226323739605480663950298454620728319374272906047517791833788485126474553861593258411898176703872960679884874371531866865501349808795028898641545887549854751189955117105849607211596883911005024681521791300469004764156099166997559777168924841855391274803485257980535269816233653955122897956501229917160162617839296184018790416028130056911925318060126619869708958240551822344670995254508085675954856390868116212348141245638058225868872541359889680889185957685075227066054823976486029638030086498605632327127717109284548327333506621629778220660562692230282626795328446184900132404089185164911429003608726330089509131552460894588173816073800335694947323535590331147371410607128811587639620757384152662150427037972366499440392450884040291795833388582596141367806661404742625825705588000261943439252551706165749150346154740392677226852529247572575969647956534509423101426025412781132382731438103625687412127181148276412821492716469859128025975762938944978067529181598850524285489925064241804389769071372617297028169333885471854771175942017416283052149736904451545704579488166121284702864893641477796623370416819941351170376661888748887582438608448606041936108577161841450011183782637650173993183697394764498681312645464313815856456448285261582625865242796599531491325294667040595642604031726001752080023511813208550796007755329942500346431476982824619699382773266402801931451301444203597076290880368949251169064901918831423340049695441197226637946525399564115399598015335464346366228520855467089187615885918768644315677783317614656273943508605453255357887766034248481481079353049458683678896956347001434305367104440691816696637075925183364808126071890118179692784449209718089349466149707560211050457700361793113490126233929061853151032759771268109473747822262808984912569204538039380891966904850672315126492542794815272917521185753557320448285452798401666517152450153788956886282242392952027627945732572708661214138897977879376937400450025301426041091294638972855217650565164044354602510442625306832165029965182691778851518745846859977116242020400796227290551073444087406166776371254408991218850688000200474372943568312368866763384604239596892983812968547878105353807258255549856968311617412107686349635552317770008404123692355132134662333556482316604914021573503907358026260466352798151926677728948674619149697921549441093760348900892467008908870419598407049123662995617432743640352739912253125159535065378413540445696244297491530211869112570749856317584437371082586753533891491310802383781550811885088447025295004938059527541589290785656560932822140654798082912248464754264518410351109581030649175204630147540653236175894504694121127295852322075334332161169282453593149284010735189795731937113543979076856848320455917642635428733701825104626299521685038000588492261933663849666474329833192616817410042300872483989714238979185945547764965657472590966258763373465055924343609039064590515718848709116730518753411389988383708845481692297320767397972663285412265136303462923595639249811908513280854446193600517268063760949813513521133680026802575379285241026280065162319668906488800616966801436898691731562913956790357388232080556904067696322562923944070800024287026806185347298150482483011499663316861376620740779128028188430074470051433286036763316083575449666150161862997933101998983179754810226693228483418909707631430116965637253951680787458224632061210150571697839375343310926293515312114489585862173391607592406306316538194278145480271605939616616552247684396854385884424883766854471481585014049615918336655426503671518733889685887323614651153098655455624745405503932901005432546889701381656758519739960096138248245237876699400896288795879472235401974651315724378186089855462319154286009558067481832865205265979569308404509601946770701042694484940321314795191106289240411125562336096763964292786317308951149229256923598515317777153220095918554921649952232531292967353666616165360925885724622610536925584925824622090570861999116788376179659389600630245241612374383012068430447084036171129494521563148173633262219646192175479979690711170086123675892697289208709502885842008127761802480144913425925104222841534161922508776988580386608622396598657096524725087927906952182351377242931447832878501229544560590097010167663806452641426543049118883348680577369481552464775695558159825991531512673772659344654258607562680489152325682384870912790094886348431951520872031135621448197860068671694809009043810844388476923946492362629220685213812342196520244039783594901500056890361662213517491329963194906636747622580650060659327797632927332282613897005890278778279479134814495188034174159714145692247967485459556917808348098721329267483959241337021819110845703236872872354821101664620358664401257402134296058126347961955913437233231739785855886256373833026239747471270820385534178987156074339338187882188546488590931552498025357028922682618362579184471446275911521199272754402477260595743033466298882157632261180502744964145965761734960490298310367633182142635989993821895752190852068515647879439935346127343615980719027625720454502741478658916974040382937016924633772908951229294345518375886942237897661916935991475484264834122142982221046697468328595736245198310726866829998761464885927317108812342024326046028124897303319144019782662432209495745584374709383024492551602323036336791272499559314081584932597376704119457324239127635320640800057300898764993606880292762760636539368811110871854262550627219806830944844412778137805731440127663311587978681255049795036785824029375267053550441479718247066877251207043803649669487620291844096271159820353420243728676506997484348099669765428941717358633248300965968599507640237042238620734727526413061210087697335521284791110872649872096769281450677333988622469259259251300929009643804374300899995550489062164281798491646759048015251330713393122228392386259886722726072889712232909808931559585065635505574538697378901337834832100537550412038237937220585969671718417900633090968556688743736533644822904825647788937967526100977990354701160864253752620340010449391476201694470255103660839317129027380379152653461653978001585576041196109624739413142852881753997610381761842395458995157313535808348304045583384278697446127393171946497541954392992825472131372314675602923036772462228303717295590603510235009808630063206631401234880074316114638494654805510360542777071480408938135979252840439539559121115158634499046216910919230075671513673549775418361172862299814230475526064308683093488582728371912490039884046397463842870685861058840709905090437517148634371606055427543148057219509838650115635708621693515570508441690238270094138646071815489058313687692775256576696194750149415108518287624471831977548002616999365422017476518240059077160601828298506848397500493153073006734539484896845790273232132515953894562942157917412514983480675982487888629236841033072993148824271527848744851149415899557805402791879632788452833386910104976000236916181303530740213737216563949349076159412432465346838931636548867810198690111844289624092617747862128965143943874086070031861619585122048685779545549888657377055344130626977741402829290435239624195331651029183771425480810143400976101190836405357963170962455590389595710130819148577432403234192548786183020559534326774703271040208323349876509158118521291247975533532081398599292580104026961480198321602336551023620253491417494911930365125639562353560562891721006432955832274090008912930670021910869398346926511621979577114379368153214550601719039712569221444370746481748908620980389045910473756245229074373386928739828120351777582936642079905636591828825302229429837786476494668989960179466396728802075366418322295109037381075688936115634779368959791100910818706445956822331164069779087652864276381400281298287023750991034663583574989237779292355444753337678967564620452061611889915694687688775031569627566552769372732103863447047695970014963319694687527142382810482364927402773616468671170538342205699648659916180886699457004170412318926888813970815491206939943101390725559786683880255451992511815172553697686153827048927106332735741697066011871761045054599169501825635418329772467742405067002699428209086198660716431289693467290233381695725326721822444844459449286806445777481786665487969813925548582383278373079382081061942770091792946901534224538686199287260141220850085064253859314447984047795417106726456545547179941110279821202954647060332370136976749596929549703641815947186894196160762294600738677085787428056007119360870662890457898814965904600933909723356376764857008699036261871394221970899453231937053588461880028742337553149639851601883032935799573610832997823973196713984242581975711991089041186857272742410850078225571317500655418951053784393584953661590628829550563587737431043058904289166792023075362839746355285562276883162040122912554012139024127955095586897789559490617061194269040903244095256514693567652816137535206372931762723981407818101911815120995912642297125485885771552923565087904717744218779938028317110379425659640389745052783033553977875215386036052072461115092231073781297519439769865641101258290402185628632586653261581893520733222641698442086430295984414179227382712499602199095486101998115876440232260685447141272321086059366744945015238192562092122229703831123594308906157795090326673626423880767285799261867335424154662288873136643748386352699869991008952785686979720050834865382343920361897124103639160586236228122129431586211567842495954584723814801773748548450469121373136061031700789963028096572141564513070969413046502001550980017156855314335436574703965501424115825760486703433927720457463295063696424653974753592317837313629470879621929220113178675632575100061311774702226387472724445072283406046646514902244386610730499111369459122336139427111619683263707803007520868880490779921584108351634670340061998280569126514509628016638286419703370898214799958860829197290677057988757183981429175112273583334204659857412955898010264448057359340937484468238910568963324270624414167854558404856867788489747427964116433528660193744694729720628427905982689354918965090199717965944853699991625331124284221451698101242774647179165769706551796351497761312949133453893609758508965825097388432868981636153194835063747879963547287272136619449123397053130398029408365146828397169013170753713246406074900299315863933851020171538555904568874644129580441557408466274982532041133034333525672553814766779196543441865633426244564467087946931915722608206564285942392682683697040325153989246368001819680360076460412123397107681215477207502581167642993086937943217131568337817065508520572041067031485572726470642292379321095305032594152591104358844039942868982137134945348710903676267963799261005786096953399211525432498699901772564024536788597106117605207986138394471961979063957699255613888869689655771761794055522890976996418294016861936148526215381390163050637427359942524019064412200628717413520518072068113667454264055629870043157742644306634116269588014813618639762718641702829397213249117188963833490904094767858940792553442291843022648030517607180567956262631031150488491369080542068006495084723769662401341729830287719231874127312860956388792165495266424660779268082949999744879620867592398635096966583359248471915869208317675433268194970467905571370322359451951389676405836302298824129074305603222902675444168499680142280948853614367017869496380953407674405879106043269226631232043004276363397000999170774021632608920800410875893810313384463937050487599257912567295848033316665754859818848950813626026766984949598050248392841172956657441129945232004361157730634706515474553273040714426462156629230203293297174765481308599238968776959668763611530841837061184967668645165251307183058837901809070033905269868113672481962340701571403878541618869824738987839131869312740854139956669213802819103258965845268595610980021152826005223863927207679243558481179186591944098185209523705817828545543136415114047479223086277421942761136179859599839298941612478840327492156496883825643016753087890721313826783663482633617019214436466602392725839699468327120411068205303049824934891635585067302286800724815478803335086267407642905315964229442465205432055410298824054433398369971096530282029583459638854098380396427266040454178309031567294722683730306596864000347859550247399534356080542687992345528832854324591243140631424768040712196291747192626825083302934511746512492870505181623014742141009885052585561209037986344023686966462954058610861714063086990467341044588384537965657500784019627488692062157825004089444501418925745087679703157666683328581232096286101863009304119021100453086073220767484053982800399805632769494779674556453641197163691211977036815400863549376294664743683362307550754208958697274060499586381527594631897360630734469440978806018500872297888349444449749259128394626593272058118689488644233159691118379482672587704181036799592065564188657337811116480042823635722717910187631248001033185945422054344775094953248692869024236484284938611734887796368267542374825021262921631791537249752181331467731534084338804851841184083785685165818900230218142880989294524077020457161829560915179467014231156439400016799559505861702959646311977345957431065483822365759946978203903378994897235276445871312178985780364648646692565806031313504290509641127856135491370978819404794465082298339937611077629201777018806076143158864639812705571469167932855130799932344597876652428323670392332844372340671510686160047681496107129960268357126769985390492404376195394755930893061956209725618208287590163515560451726092873010766343426260049480694755769669568072202239983868477321810896909001853866980968331876556448294104148633205100901120471685316107521961893886596648921844234782880238119109192333338763005743045757675422460811629156628974137105688658057411649730462808387408004824258799670086524889190012227803148991974272823584772590459036121996080346850949237622030065418003384373180280796026239143263685629378609041436859811672888278738909018429196782842624568895640264394265864913807572499895959700307080331190448181302425593810577244882075125460176538996270938519130468118738584467317924044290801457215279633566229761241077221547439383597758583762795395457523753878908649496405518331697293765930688504947106465885634605744350555335935245884263851055570220169442447148027246471819116195673982196961242885896259428082998947919200363257589083891578921527313837697663314344320126957861352051568784923659252172049373461047890392604277042454943669272935975691547450428153691771645930113807679308672750372926179509053349710728204060945903819888176155467754419817501620462242459316150542176690097030133898098126395368680736524003356080715856069139388149104800411127446955422526660251455582680327680168376680817613758502927685106652799281221290309088308984049407845853648703304479484133589837815736351856321358163621829808853127983502564577413039630134143006193354044629324596888223178808563047808846001643317138333535350319704779106929978188995479625866964857593716704485236346317460608668034073243753478794310515320328577148836527149681631255273304722470795407670456979928638589588170667280487594959468386138479067569740624978365977285029625345778018501208837816099371398715441471829123404064860791199808270168803385671095574725390865002889589781233514082919689088433155718242409966926401001633303848681140671655239140993785612514423740926456475105044564976591764873574867893553145127994347983759628826014455770449484706373575378411463428621562406510808735180417140615626440680318395495043936699717192844073435867559713908154542142397559274400173888901445358953927904254084694039047380559274642279570786830872525050592906087274634138299854765959991585432086878889090190481228989103079508700714293983686757203759085579619745851571852779044647927377343702006145383081473178364290642567154568605101705928755006767591488411690651554521162226750158340328831152655089517177914213416238905848443362181073239155307572925948442782216269617439682368704810391510378315830020637220059839087767328139877517041521933937237341386311860640562842212098593505311384346336098411675184353840776644588648702934203725364509539815651273377722331023660020348827831347104517108843759927599698528459219917540927442302759603949492963744719776994039037783028698968691416346210047559459038199213872122245687490615717503524719518014548610215898238411827879443007682486194784224488868122168657270520785662320135548389120459882817799641885620509432396279808016693934215396134457048193805797117006733336064130321257238934538989432010147682905992121778914764619105086743658784591066922469675956016536489618300348305943366454838885268817620407034153962094977653055743214433024162634482412868297311029009939958509156335230297636566246889083579321852890083393139005685349984890819198657406493352211456532814937676961876980368659095437727157783837894541733518676747746670359751123889524746988459804038058454919442887052686267350743505676649445559017500401999104578377142575722767354065873450844072910359095343480723713350390695858457365654153865331974799589978536716563493790760175414335691863160988937529819264155570773526450154625767356106933548415712213039586412049775821870903835042923150931307093418029087077224951716182384587424353740682793858195004491692304305767536420508534369641056104391914076522336893464639940707958068442166523042062973194942233088948194556172237303539479713027942020390910917176536124503650913235364466608032714902433832205360905699665689373362277987240114053147085144267638257763130009619107536461808712515999684620280291574559758753671383639044039096378957043341311587153678007499857559678879342342511091754719552298236657371503742910277286623370264224427855527137326964243665701898412683446251447245966294882228346859461664651770398669394708867990643845941757804521102690643184296054442452758780487009942066765396545751486400529694949205911390340121898349780720107368813063608113573696824196899266302282798366561115998199028142187388702938097211113429701652620435548599975472336201800962035091383848229759334373774415876878033027506980396636449469155964055026456035879308116356501195123866987630321530086654232834391732195597139049752264014267794879208376240204066528005787759220615930218722941913424175937163936626935839220662888667171148219487404665636669110361274547820269991588444787977650815670623150001698053948062895255524306000805928934967304218644081667891074872160186876025115753439202885457383530853549292591654870653699433141805518686711367369524425306618201655309109440315238398546213609010645811936017492498862480349672068139419371429311231507078445195633261311336499832003945696400202703787029003995441249433353038855259503962922551003937663664024082554874350180764064127901906251012209700491956355289853594777587955173990893478669125527437906207265754014942554516779523548089913686489355155924941531100230802819184789856967088196515465018061410757005885040923168456694326628600653897624413244317664221004375019392094029926711549465182138973327047815509183125568780931553637665747816932318659722320550616202553397376192660079181847671055388860998424175760492835693025760532563080257267188966254810813790642587871641773661185582772290156521911909946928406418197223041699701723602700138989308712613760207050318644731003471726490695410911222999825851484194653574935040006268043295625584684752841022241425235181101283102427010905426275099538611993044412845899551592846320110184473902041076908666023806180486471738479993479699666474333553621073178643013697457398101884408375108986248531724145118484560739186316230486307384254152840881771302364169767923746362504588784330632259130388333715179344222130249007894231808905923579829087167548132593246744168926203118227740299736010737774234573690707876173873372718958796322635624684410693936259790670582905059428612240988585071452155867269338087621357918033739076642668193909086797877591971160479134963676410600901068086482640307626225035202807635671137063888202207235828430178008080605786292546872372734645984254249876731108651920453112974553080018716747366750758123838151037761801099089922928846971111043551415705158123389466293983457563726229349219813954686054095432251565784594446458725122570586806421336568350271358625844881012579934425238411139552515521277225793756816552345893498594956060315492406342661750837944697241236959518573883370233914270189593059960019476299877809715464794222344313252252578063895576461441859954778801302265043920598799004755095237353712181831813610920857986007995987848551400496104873550845424355026038371147454539593530779660535077698838226842263020535531834409925869695363147298622270860925492162537842564964472032738227577972685211027606335340117057233088149299178105374923316402518295489902856202963870840709561984389393022421630156025921423294904804592793125948963447990186859947423438190660085254354086182093737399692097068704394703238915011512122828086084533360742960372041896320165999255922241473015703827808481150291031348081049516697330957225664337159975843787396260068714667835527549206125196051188309148966717878226280667415378733231014368797588086910524593274542664484056954306178420679131474123071953699001140971914324376286442811753197148945329103940235009878334524634453299104049164104728519341254764119602539892239431213146485801307697231149371667869543116722918692429207468736146624028161322455183551195250121459079977507752349206263778229257969647547133299532528784732023436695797348851034938116252285562551470236383589612388452364079747953239282891223469904805000427378207877036475675912180667780779356819128953500866705485148403013962236518780115521667307067251235836658286240137037611938699967799763921530231049306669280144971914546046383327325627995551138852453177573380799829274095043714368213359405333657943528052180874108202179598466904641480787109421321822638888645666315163348842617519579934120322428112147917552222518626359277187277984762563600099949423212479278714273020909662829059785114401966036679065456687674642689375227441354873621202717368958896164745445528098749808937385480916637916827746968173587004187866136178577162318457250720373114479887070833350677488564736455790899763001753849260353732372250564350015840333129306249445016837382222309569410437538022516391407936200965851147465469656621122920301471671267930011706069030690108435689001411201020180718819702911315253208270247441753098384632932915597643834193480205471281548288279019670477687632889918541114188172092268688452317726646585917408486022163555137053969628992453186354152753640266381864012299163680402358026804758617222449159877341412808804670891693287590444057394301117094524281433537194487655765676302246699637352345528594087244962702282992563679355848495841841046002409551291828537029563359757291171300275048203110872123516632379000163029825959860681724803587451963142966911129892968737242048814984856592720546249206169545239751145846359457773880540225010189603318805387065232556080342259474708323558130190426490022857073832940474714218173276999994954645548095808857653221712408113348091266832373316075394455141467930293716383102641941531421091045475087596959730927605322448477215304139510045040641764626231827521285245118713291858917232818600948292512987356107200088186182012316190356810048803613072974356361446478677618515569140715545930503524420201078087327410528957118392099537856672601791920592030154651324783155804549037306013370165574011430014161122851995861465658345551433869107697894573476526752741234800539654050956194616146596498577675549633285327801611223686856975750144631359582438446438733999607622215148530519505812809439343020522383059624539003949063570246590735503434741760255936651442743267069255448951606337903541846666456539759236900762287367191109600814544728380351227720446789179389318197017367185196084328865322335776474377080352598654169969325034314276732351379779741553177069697706677750663373647749808034230619344177556817872800846577991265493379635180266112217039349910324999299285027490088676452983352752166927888400576043117627696074632595274898278420487406738954708024608037789411448698803803328383854281151562084386637652894980305647210219095638087150158177501184655053486814600848821606582609987281131299274180295214672671856542820048477882872488565042569483006843768703858758187847687814505840290360447222676776986370396602020330656774652144931379239031138996597812303023135720684025131705013995295528977158103066467152749354915727091841741861070931724441256547556773466415321191112736597839672321092884434318631079542918841844553456030117532171243131744075679440136355547136743621234088438376962854751255273322710772000597289947236803294965610889868317452217275984021711540004864179259607591687584892343555550821163843914789299475102681796151307898374422246598512700643504345615004354965921282559860053555429864055500974618816148412125337108083194089544307234142632739576198774401956636512385385933943429968045169601370898033952115932376350173917146884854744831457616566565895257502845752814713292312662883182819072208323213166482236258199731774985867070348609100176496239348847410733224027467953698822831060828347835847766223096982335686864264843578142094845630443817308317805242341147637674793661636346772000161046774615627855948367376093377047382296896358444141331608820720908087111422508051793272917461154182907731747105519344022317342580258042657309912277737031755517218211378365534040145086111076099461206463723526676692092210522151331695897507625319389670019037565219917639658437448361948287282435474621361319433242455323352767909037678429038921115257273217889237091950371787093941977786602345867267097048302235335185423120939286444222762727831958822226248841088732889533403951082006149682117559080982258272820922773376003593449549921667278666351312782866716865667781543493782318212701706890256078162175118554961236478037887764283890641168110914774778698732859057282623344383808912372810336992078478181060561371391581136330580455948875018557018824219376456411263033786806093282084953329315467647466548923992311074221298700475267115110128082283664210615254700184055054664551885008138623833615562660013283970995158933593180825128413343074372234948188187985699143321850140364410139441378755518063252676552600508129281649608407485519095969756726894649678372788238066264932063465465138010207985453559789275749487074625390650255111798839208844057296355659085038491439045304340748534119166331794032094513113349728408658306340818378015003654617808432487498622747829189760877270575722583640090098897152215133733976670970512434983166506875740836021988278191820491759706939965725775125265663028741281812265093747106080949364346614892775705730581934146821972662386629772493140365616130312717734730123149729186752668100583194192532138176041118030115875803066537985960030049094302007495504278218428427098870986606461863226115150743847641097047324751458250461410254082150696299290900864330462254787852388097573124401378214057800556955143666121915964680651490880005576150043454491010570944975335874203277147841529888375388041796975861325176383433777207112602496310248737941147763185471969421344560871646204743814923584204079962237948404335299004760560644726382343506736191677686876635903609463099588968819280055353739755088962270985476742481191354436373220846986993128262196035813076250307869194126921228672187543662100834379306326175943763007221595494119041064158213916594425706862541637875584065607474379958459351387834302265849474035101504205536827430057612031961841514598156476084268163835740565175472049979307675830111899253989870822456163661780040455320498263129096294414395368320550532653046920236213878733779713856374014980569101780038192272684909612911159660421789767533674985871373007873162089313839830375819792174306188159833277199895096824039316839115472801616218494723183826808669345524872242518830187799087189782460436270727211357646446689920704028458966431596438879841078114938962435814657687217750934447279985359363008076166780844444658453723336626574914043692518750405153213210880443353484708351346257925521753764711626059474394367758343584027412802311870594351307797525242672844341664804141276454726286185594854729384446782777160927380762655508419048331913630832245195704364759105074051322988328067209744641007329024626729223125275104703717370489898345524112620271741481421077856996714909977396340602204358085763812941884865479564984157704297115413896117114647981706098729092033321594962664829303252911615231190006256353669047700169624560307141611874848348532239828671418957718755197560478057018434308299437653804766059231272898714799411881709490924360103468780586166456247130215563014667154550767258358386323440950160937460495260045985861456596605108870131557194316807483352714841276080142898414354584739706391847956585075809612031010966648130550357524657456830319811131151705744921774578139467565915417330879903736339940650408597154935158376438920346434903261719690889443099741673122292083516208418288033771174317008256438248809045674104584380802750146112354637223986282930096138840829923944351003674328516165541650629132935076576183614554828823498152008059586997711695389402000417989135255552245347105835779156666237887975065794672081652826960151375336425051541201007894709051564001118823549388103508220538998579058831652674731127141555550625541855401924549633071857923335225648322742799643597117547488970393807739674177761826585897481839531430743102816144849314765666355569789259424222366529033476672122649795923547475953598063909619905445182820961058004049945761682894447421917159374881614583259132098486444148355453137312505464690261818392231714973954639016303182245476893082480716213562863014316984964302348368407736321721575820545106031905017140857092544403145412872168419360623236131792828009047069257987726141576652326549002284669815395411449930571919372002889363006841937999905659234113573852270800043576164462451972076337175822280761829907533691915579937924551467848518184759598666171310043253553367408945297008045005544255240428101515848112940628249036346290786586183095176701882670525355575679565116906867208373371672286171532686724754702558884012897715910004159892161022113607822319457372123047747942818250856520858358214404696283726850787662813478299867594382162034722800610803591986698287698868559927511674369546005855667851365261369102035792410854812333991595873058934283500879177141986402693790978618226647085289587977262168801627868376028473204046310478399640345351297423407721371750017039808977356907184448450707828110997710559696117002594290539816324943694271132898991042906379229218173499257447267420553036160539818001122808875170278825074725164205223060654034917269229381450964660765783474434543890065545991135847378023616755144053553954641655900878350597115123199071961814157826105966783963620316345145920842457891565671247796852587471437849932007324601341975345947122328448320982193379861618469533710669467246535871828434604705483596069902910107667926689703564493621757845532385918470290553617885403432412773778596541548800645255742933820163593268106022303144380435489367913012815822975704450889151643892881495041721801210601109571216124470609814448410166864106589810140754216655652254840789515418722408988271062340138307498210400132121941968545634946734700844714733946768393097038048679625725584037700263984783326454154860956602184342108866880170286083250111426205846829294955495192728171568340640765076408189245527741006746491926511870996905566554811770843461839410992439941989271216492184149858085645533750470376914187580837896408568022406325632331572946585261751698980620926603904810174670639306683977793932601641575376894275731075044326266447490659918051363150080980174163019773838885315085637400418906231195264043094141619783948094777452523208522144653871958642160999661146849012971263762080017477473354323086966411243642463683182144391242838522411163826872476281640306349554930641180917117110633905066503654616122124457747062324828693339864229723459176460942369310082782988411984854511843270088442556569048173755187704506062843005118475134236714304205048285048933758797530078372916582171733218294863349932455691475124503718781279969735095683732947810135388547269737751077208292725012352841918879958049952754393067122053621937361984561661369655862762394948101822366862135455563160451134012439974083739289887267680551573347196037176449689836633236462497435247788353633452810798766697005048225405379235436557957429615827066876260856115772180149627194773427954596146898119010330657757747164092603543754325410439452173502604899992831687414853907504298396228331559102825737260648215606261592412951181420334822646608753712476250360499040764060526828358596971278317484077153247643684189571491907060844849401617770955840153274809468083412384344584997830910492997820560514733802570253112042404610562006427264262606582723801669332174623555404131273061502431164130318677028078301805119193870675221673917999960027039312177555639591858550624777417250022660651354575531136200971960691880401730002455383991884264654451250931222066185469256425662358828097959807502960336422647781231261510058336879509069958957176567565406832875258952768587359010590100559809053453080506494097337115436952032452243908748400494805504361745651605558682610250513241713875735922918371607985641011931803984175774096099894703974217189783403874316345124276056514802796812182952270279817016751788710348950016371345163922768402464837327766852804143820931422938587538034325670376696625695144036198303636735531014204795498261750740273179986249570703259577692175048594583142382417661114025758072557770185959960100203887161356461066525540102832071754359820512607764370375961214401309313864466654210524739457950740928734511844038061788007007731159100287357343918389367754328727285654791066479624458657989706286891555421514446003110915126914966361990016213175640783121790620226138442298079614039630464095466044884108977730756503745786557742380051911906503938927357068087251111958367878605213917038680794435418546264999591654373532983748092239691208709845333848448529889337311711045380415603748888132164659463489101235897195332718518311408439373719849468573406751936618754221065483128123360745916560004775950534182140769197758724772884680517919217271452304239918291023532837329090379200818177041956958332481809561014619245324315070074285409910433670123400950199036198618131029888350595348434031790678519026330406100797922189494732352796007240413977856300151058725617550061207971585849259217926732099039080469124932209172480625199700329784469208103941244328619490668578627802267916472098374976142886532484789476251955250402597224942387766429886122599427520301928299529136727908577662390065302459685936458234691988286311615570957615141760516040671033863898065435757950115025998238756811787283661830425998434893181754471440632435569721727714012438735003680155887961695564822389790768612259235278548485444036704901897866256280853616451197104004276664086800991675969895531080343032465399654438650642927215069631322839487900285386129672107647305805342719160897910696981806974488240505830743929434560517155891933045546423091205252698235613171739452745747718776444461464035746118376529089609349051882589669626605991640689324140497936550273351823563128247529317836685738450920092891624667398239841655389278505977163413294843606785524706468418119561903432863828937487292837473286886921772320777615718787608552195322147115690976504095882467821387931880236596501487781868841015247790508676684436048274891953203182118421220506672264083656909500781346616534702897731901264599746552518632467267740922401000256922135327895190143389275443802700525457766630382344217688656505906505939297568739418842038497055012460907132738256168604248988594021675438945844034634564831321852081034938692906722068916566954080858129587451064570517012952577415110177979165906464859630048932929974411746872357342757321591725361237887771321217416219518514672286055823123341111931826527386272731655350978725937774938889052459377280865436514448984526826926471058471484351862325766610349738594184324062473526810617053033866725969623132274212248345213520091746548893714436853247236074556875603628855854783486883315230425646079447403354352507371441040924050933852505757923968000030597368975590455469410402209455569319511656829152598208860174548321814286806436462305707269895337720579378405152946773792488503436213324402751648652817081226356761682699638956264570108153360919690430497304505917881460512454344915181546411056077891979634672691229110197565681801592444383514615169556246309006634843362394645465405994798953497998597283664037398678678610258408050531360641420449758463672611877796202690083860095452722286466907718839901791879634501116018945038346285039409695936924730793031332750582685161370505630081428548957604317218972515669042656506289381757313542742677053522520633612902304874955800389088765459387979114085731283874971388498834183289985227356093302101407904629550809132598166631935431257648038786503246847273959637184110809317823898108555541312806922490741345632479912107834942022603775556589981771218826688530186455758649416376192939785418243843868378097329469327229268210746881748218005737102963776017476420291591758606302620928363257129350225368924656303942401678914369595356538279130563791124954625423495070505012266665188842174331030553396841257757423544056945103712508396368814209294656559036357828785950307969663652813873964355534561991252220871442765027834793172428634800912652052550630236934687349205737850125028254798300012476149360157142476547021063568929219133235638296084595944459747062077912329038057613493116068467916163882283541010386889171253728452736868308366899702426433461201178346069562349242880008845838978533452103909392876560949950444615450904586881742253318402048915669752203003206407002337702566170565837587922501435749368577064430519606686274605874095621062694427358365053830214232087258372964636922472275447491464169831022354079144733413036457110751491103684727041783644425855427338535679808577421385339064159441310022857966527607332186101242073446399017830606229027422289687589188715098679170031003700375506943365385315054574020614824112530700007455846011138873781035710607781130389140005883217408152680979717528219899285373963300388497510756128919834271089141052807432700003911813986502050975111457671193154146776114801677544270349976523564979625053866228158485191639673308734215679018771084077907775005445441042525368383353916482687460329866480893905802214346282304308959230964543188847469011029486005533819751277947721848890735975317847582764568670787953331872555002900300884146210061304193275892692325716740387407951696428473899606378696207850516171346460069688040106339819269770929483440823980779736637239295595038701837366686640019571928573320958615823720086120998581102157199013922138256789776500235117458329845871341075274140606535821390000674687601017219574942723841369571573969312935260757203224470086898932202370674449994749910797652719154237229558555650347284636738174579242929633954339179383021275541962918272915297139259961167643894686440891395683842956410687074753327412120684445965857294069069644631206038683003591241466209504504363104052658243347409434746810219663227742021177122135458167388390142681560358352233106638710154509315474058561055250184861073910458508017876919226929710505426354058964408206666422428111594792084648271347326407918118235362396633461591913038742447511353842697507193248012908342596161622650297986045639348108826908923859194746083578700849507061996427114338998994819358474529623486319312331927114337646030200482227359245067792349807074132865071173031588387814497711870227627732135132452994020552627273204269911001860369948035873512213615466929792466663246970488064392044393331602733677401935702139674691488606572591763344892496916570139904830859962059501379817710738345932720849459393128719543575701892461722215070780685313330572252592821906852494953232632995987535596824645719591348037088323882746561459280224658285313277972510618605938754416744301146693432957281406696759636421798369171233793046444517160826298700442296033979937272087328356846888442212141295517548292685863737683278569081307889369782842448887712921978153225645622176339350756602486681509069355040777689867634801961454106729919168940070013527107446632369696788315528266522400254759198372496959275123817440094816220523344737438536911667802378860148698775065602033106182496984013023182941773864844113107094971639762352182040565400252306130638526657239032414008182851187256581399795099072673589915827509315555282191702982772890906627565700983078896257288241273933467684266664164958201668040770625588755701952645421687038381666224671657222815276860516963140072396383906683619463596144295068682139649047179397327937801924751686548979638984282392304111976093140722475519072682182075071237288545607639187795557924400765152395167097275750951407891872921770152407846986955632099120722162639760182521549674559029055182306465835363652674654438825444066517055914340106566375649548694796406284568291532393239160211089020893887015372077591157239137575572341365650265442922316837576936521669451356444543917991527362681742961029136910424927189274016528189865962511289118836350998172014861856243962430797498286774477340719440837911156868544082244538029197152852518759710387424729481263180956207768253583438800114850291310626633093811051650710711310138015147435476713829683929799825946528746143887689824300079430728617466410641905760814118897001240952694492613149475078494157384739979140250800403526011842294791636419531298924478325323690902578402489583074692198409812106356479766792705301086672701290833445342425394983756771318573189018116576898905842823846276670297914458538569277001435452102492173116626083726261684624784623447218481511358913771946568214283329627773899042076166391322357576776259111750573086438415832262724218120673396821266222791957654626848250189737307014116424984307300416686823964450811266585001528070640613391402590103241063197814248783630579217868338301838222161915459304657504009087548382322106420948129500723524870396086450112436547800026745731680330377191739981128216442310541250452533159280158970203310888124966873172466568554909505702791212175808873714678708999629747479263487387004288645027420665563123633705017537699158742867665524776675176748364683886897340289316070298283171746208171009680803181275164589236436740376463713306693580275230301571350564273835613904861727478034757734936068500088498339019858266969043116332554081025465926922650007921406289435988765209339449058706553031938597776821071532573156719196632077528018284898732976536653688300135196225430620887951257272233823343816233417626317720450026855288609080129496565444891304245302759803225856018685717308150199397593827147343206097765794529470653536741372614270967840308203220371387591862232752619415173283828596675107279453889591016623353651728354757246531154439485621978553312629221774847051911346993238151434318885822665218535078494215368955041352555458237123925403043574248378052153126795202813866922699173614650177843038315527002707356104606163143302980607513697158733591933049382852821619551189106018405031666396627577145300787803310995778598481712635621518638110147460859790819007567542999063155799286263727034953045674437044145477383366408825129981671747654590831112275765602326985329235606539693531822213244623882339604939681320595425695169608332840325706115819380951755626396799640209129922212093662354324626294132341093463869544013562582737346629096291212878119807644665838733250372372583166405520770829181787004829949365176239062651515622623268969216274265741815531684030795293721197145628227379140132210484028539738207311858728044819915121671675959893821169032573623073988697948054712831310860107563372948641533693334699988409450328800224115710044138321633936516484532786908607832686603260735840036007261047038292115540617373157092844824731343412451860608587246612689006620039350509291534291862128786906959733533905896542854883416696921998140033540311507618221485542911173921876564691580136675250090918783090069900361607773870271411123584365892929146731092913947301199940182511989542534360994754503080701750611920719046794959901062861616659759901166000738373943448289371575892203548921239438217542786041961468817309895152391036684515581454912370784269361326927986953365833491304742940003159081171415627252274470746321689712076637429413693419381759840504575342869327991258446508377305492440877677742726454038590018708746001828751928601670992097267064325416093303036311742914998902802395771090173001738562511321346105497526705775759764541452515183885212311162952805237272668204830175571063961747564981091719553164544223947470922163263386323797067461644732115024425211622771229651653023631278130696690221052394912041256568084019708332178572859158426933377594535096214455104695236279978807892648397583048830946263695140381515523819581563342827015924208300661239300775388539128449700371582884866870985784118106191378697301610959280282195488581034314227728829697827914505684017669501531051498509234916165744542356169782012606250334565559727763630998606510055918705883037305903777564863819579690662032340219068328499294253583031443430473201404461624526028408218554518824857259161828668533224812727668408295707612121316545376924619614558392523236627284067616159394913902109268009307757202549138973687198125072578705134958372946277205198328942001763018240776899521148131264839426319795513274280735562403396293986975917158838709229276967890249274771868602287883570853870826952153399100224665178542746158419273028380099938910819568049945050215170274774403549818465383644557597655752288463904550968919982090735254451763892726704239061250527749217261899419310692020248724965235445416288237591430798517611295948830326045774963392216150215233360538300785019525527160269487866751744589725585584028058020628400569383410717141333536969632903383501856906430005099886093275875338684048694312852528873314699150800481392471507195770719817114789300295101774594171948102502513001818852276848063334957792682936274540919585220143730401585960645700869721335052766904321953140836062976120648702919550163780338804460166964316263646156337494865033359292033266370226507561865277561104605220510183620120788310496127400753533747530059403911036729370904069536921524125498617454147238394687338526580127626438319281204667985596870773947122823989521677058925797788572715014895109763716316660712789172443777622657271345971720220114417974176466970193849553678440280353155798187787757025315489773369811348888957746508060383015383527130989479241021313357216976726297351585168364069350912027381961695483355019742207598012655706547336492531632726454104317026670201513347122343274504230678624765322457425180974163541080124320883651584264148834943622173034275583236643917006761213879552343076009104114283721915974392758507060259826109472380067230247755598884088844511002740083090592537625909188240073567932881702585707241035112079274751009192746591552678946121614643537939653797034201315840197660257107377349024173742102180587264429365448231830342358643262836359942267500524199284689170083756132135560830264413503797685537250526118603091816816868780741153372109480027007470497760152579407934127473122017920210714408447725471876412624228955331147647124667446335198793352055832462368674613498798270071717656269785407917243762636299398544573557558972436111305403547631348110049380541092250913512052402079409600185164239338989751789897786459392856430462777000847872446393488738023755140503289520520033743400719296141425023387735525436472259111962862126604718469349056447781309810954404491926914809470464435045378286117781735133180288858368351033698839552844769233140861104925747067753787033878303070918411390257251759289127709104688206291204642772707667112708987487000925427719034355888399072066062423482781251779887774579227707759276205911910765723003624107529374093734922991577600559077887207335151062665237987571028311066575196105352633944348337911822938948197012312396790082073303426870632221103426667076317167258522825137017518791852438177376471784677801515122672721122428814802169250997985089187862304104213375338941602368822856617443928962254930163476547088394095605899048535323571244732058400083007119372894575737004730231085423893521282170185340538717788981950668778174185976809666527258219352990400164657395367919819695083545188123441523135031446552900997634211828468713074487198509610185984359723068069846253241051842445271810817628808638468366369344699997235572049327644752427590555208857621170030831657110016004052745485002895020166825440261675281677665338674915524662023604094923339382048586965494939735801722900256731655449419633471189256909080854673160907683018597142710093662102132431251969037355913938584736804424295651663176693491342808183297916981186605080774801817984136659135201916431758134889033137663398149928041156946204963717028802018045866607797350635178576603617919902923954083851507630836230724205885298876369706669399315096417151443789970850078062691025703918101199996184761676983771415545526118193660779453585469284753763458493822320192721383639555876931453945126704638467536923059559992547057404410047287450109991208772939622395032821542749208578995890073525082775038562940598381693370521528607250613048877959895188895505552954879971582256554154362518421618644742772780974291156265945637987051259999224074460169079507570472493231603038084714488052225199149381542208433242935935647175504810062286813064506470567624490736977379216104516692022987427804638878994682739752692287218454495884578488217721016082276991437967213647092302195010317889398186910602496734840728152391664987299793369886308322716975591935259891629204432855124117153717764819732424098696587420402364367217782909051831129248978539044959832299212564031395626928183176292018618618757748160411639542151734119888182012768681596147745385902973317211810527329570368034850031227584643346844698456738858989443985580538913425128815314888631494203780206768534786839758368757492811430888500165862784714620338441602578476414493558614244836254584713532904864120391581274720359235414802279730264715807218957397547505359495950204148050371510521088287291486859539715216761339253255891731265149143023364356674125330430681662683283060047123522507116863228909618224425831251251844846118205848130967062302664404003014536135050013603881133968789130561188277127754437453673891472330768194252037988993285846932874158968729212451654415363955346800338105265667877914413583572052963650557838129846950972616772797747633746094732165433994221015999128376448487754619645988413809092955172580613465559858067986199775403702278648690889403347341130537486252883242777800136207528516034849290469860488125264551753709228590595237856028467550314590921348696061912083648481751647697619672400127333492572072268241309047050981593644338592816618568124046197164148417379480522582161601038032525530960459279368816730456385289287925599075833110972573546241857931338909165223648371186521888492596366281560242012602462236916310708186281469682040850417757570333218646512593256192995849641359528760117355691529544997634953880613069286159989837185384554460743943353589831759751838197871018817695996459413201291907575943313457262310326097297561819775469842279914956546685562913350279166226035277566023384104950919314658518123264029447852581126815493825346390199164543041206017612892181872301904509995693396582715528717465647523872496894988562307054559963874849220817247933146342796758570032370894568592361206438538323349359181973175766683291986554519834411089855152762858344108015032402739250654698137982262510374285357840977779304429525876599952465267707005610526244565462410242561478694165243422851127436637403137577204421272145166666611868332054445436211893410914510066667970779154657320320128757795448517508892860133387868442069035883989147656247930281868670687982438410250076093598809070839436881957666648327480547286189849270393535888628125970678358400049731529505816278612094739610174475461968286772288625753988607834159821047731794067444344860161137983881014560824456330812549242854787870618215089756627537868485064071494511083381967326484028671264076830306497346204765219098152972167331224869487470402870277533892043692959021411078676364042936088905182638515150264033941773166227787970462002593071692322596373811105364071669178227492556856197895618702641817137467059881345780266922607181513952154812122648893603999259463518484567846997928094654342216310528688441712213332604019865613968720656403453539723127728853289430738147002453541632893911368109323073669266936943370786994354505683208752870049511602963915383092819372481192992300997686543076852409303740390232930532484157281555684206130189220398632731527503328169479708269880172646267487199239284847568522747691479943922771408155099612656576930268327665215196339416213868119388886550700569500331633956021697521551359012337638232110301795405921311109926299306666454450941380764294959696101034904136438935749034194067869231989798258981308595175706537581086056628238468616913862551907649207264205737867673205585830282547726676979741505887728135161542442294838743268825023226179993092879906011031821970730867543720284002686920367724517977725641107692950149637292665203680151046205087472474183553987881125614189449304531061539971056489634336980192951125764983756889573787305342081217757338816056093947715471509927566855937293439072841619769530075964858227205629859550192216129395489387534126359129525000909038690191105541489441645172131663831694320343214735930405124452756553532745255677515214823101873905682608663900187789540847275023645021077551261748564722488969063102786504754394872114154459747380365962225781047922850827060973650503971729324395696230075016778888604868466674804276706397693028514798767846116611395475666074085722878424048353482575493093433257869553045129244957568787872593800381052788064377075184440565319153136381427032327869483667193176222267302868673761351932611601484027736431023465255126627449110003218018401590830650437435467103661423415369025659763666734681903453365784732168862283340347076994701817867212670079758194828743570357443165618417664562347415217270829903924396002692459813056741435375310686370861692695490311004408804779166342178355582293771926758880935613183171060818039808043088555010713786183681778456898671004084999843829777037846081277750789225314939978043509186632777197731175110421383928944568730642612955118330195400131047943343984940612822165895424183420624290238605520393449415188828562984448500203341529477746006185495819137414337389333629574967951449400224770786119132103820799667226297650060703990062476164172378035671162683344865018693084243474456411621506692216113520164095302740300497061065159372448448942660112827248018538970568292369108049059393871221244024656399282017261437269613144100126632887864758099138467768935198912884643928779431261963042656795249253440039228352502975177224020004546882341136270421711872543135122632995689758722753432698396352515125066974633242526413223381615501518260997596859954423411466681109087142632011778239904322870884516629506804162824039396376927183498869986128206147832143761358172339679222820889337454346301537701969920810998383906122564430637599247818087898549891443744198761709351634477613363833514175240794132000755566546110432937310441920312198072840008119424852864454745287394424617279223138500434525300424988011146280254132710022263862072494521114909892488265579517596050421348577427871144365127087891628169695641786435319492596443158185394142153044610405963354349597973953647764934863250689037981388778244573571096463719197910756657319957116131378454430504685083814664598967153850650090918118646649913392183487797581951980546800130726412430547101269602546528226393073921002006328811603692538977288068567041261543828659650093618602737554840248488647291023804370258023109573807663965145970185886103461918104008208279264081381145566739996226548205479716763445629477376516594008915672089972076205722532857038940966236043677891711169937106787022753614418598510176146524363560772393262821651921050620622985709785635696274107299798214382330594834228522901653090105441531209786643754814164911429056343393438032597274856799979350837165204047423062863084688796534566663254907936677238660641079270590810723448724373615744753244545736320701322593235465031816383814705808112077746504762340242611427034682423567647431127066050366731257542362829837739292414205590908479339681598517600973473312794199036487876137856307254105243513725721724161373694722803583379098569066406772247991618908300754176213274995950361848469246350064462185669728180394013396685934220677241695525077503442716307369000042507898847634675316936840342022080468044319711388074004815116321689432310101168660101374648059807061110881675817020096352422245231836871286869317873547149621699804266125159802009844094761560580800703727267343557817407404537411673155737355374658298318880822086419632914465402832559840024345443360325986342332771617578521019083778958996909025404658216840862164118475716610368622472393217744837288283559542656569052902398404781317801313956591380693739605304071839635102569221223987031424697325077186827638298184252956618088728054233111252798553237957620341831628900862506433187692635354507350996378036477307196297861604891496800866267638470485772954588567721694582829162154510315876102549911289058827212332510716479573193085586379157974837674485483988927371178105332775585844444443610468610930568039180524193898982545271075553253717349364030167745692209366081244533152525326759273380764849415492062997965292530060418790693660634955236203153547131036508592469156090577446245772493241403418227043581118137953807919791473916785861466512255021447049526824975321346386290914043050073990351892766520019259710575663138805069678881297068393050524678594233431088226430736881153563946387805186362567483051414973088991280366735204034116577468132955768866360629175013679114146856988996398732905126584202070926806072392437108056643030242817667967315392946434352610865601685033330929953580517257535267975145030718679699945234238038676144198955254084781986451484948414450376679192179966407924232762973739805931334955490062124727690786659665063937793201268716182909048433575976844031833202080815193241396312848421573152712266580568888750633633784262236550616180614110604758221830081223340478196931938057687791036708418210162359492333650071256033776337784817200484709184210895724314301140865428116943580101140309892951121526219487240299017086425979693080158604446766868114236006056367666417158226227270493937365905878579682707908652553850642613825637831413864751289253368441908454208801325328373728329731007082874736538299537833433487204187520888387122805631476164573240904932885742261108991139893944611160327437616371999470520467820051268199166356627588210177458636966802468747451581610765180714378487999816099385707156807740418322572171555764358251925940016611330724226681014610658514775127732686766394628968760543196663597878818686446538434816237138327642437831921436723002985456837179200305073205305233093402191203837935818233706174890262424458564364317427944447359142392355863238098765188397634648116684652240672280997429971395103685182961014933347120843612148468179234541461917260211442348971663572499732766445337969519563905731487107647645622950017018406764325606623646097962579098358026369506996677961338632543589589981535407370627334908481753843680221887491695932014407137838834446393420235306510839892297668261183850787254280890315790172126610775455496141557135322461914997329752890498729259864913352289662547499740131271706491986010515597545740353514016030054717885661339431405583390462385082281621788520441063381429267029504279961726862947590403985722037071561547508840978201199295061506700017359383483979715346774038943358443753369178737378264566804677306330535414333569708278063653269557259897342302843202151268216237303345408584423168549837901902744014559523981920936631136982327104891113104269917856370590704308302735445986856238531133945099115707404885954610076134668864593323712642827355016339052295204613097212450104540036787186500335850236387752712941732087074680271763784861537826048149040889364152735425367794551811724929152275583574228398438334160293684468503522169010479900960350509372790628689538728625809472027635355951690608220530826309987507761650357125096779326040748274930844994517837811645225872268039018739565831104260103896853372360063924294312834520584499532913228392706579525777436305294630970933701351872205892662754248185931629480124586163828075077941586868089492388770944321422210747307165116991762454922139193629297354371947514972532571279345916699111744649448652659436813277609651179150516333740642000981520521548319217319229184821828753500760398354681737796801637987618547951416871307441900094917167571281923851435281123182294796520798019722525536235149423888205171325577239938701389679186981182843275315028454625269910719287548299836532700786134286150815348382312262981107732454942076658617895738986329610288322749568489646515446150452092931088567655809616546161331072586339124192842853702077539003642587580503094500709602497955152136850557300312338146529907065598716808812649291247705617515364198365217755869107701018582975066143833122774375746096269391989683704564382371670134951851475630124818839282243752356366278847618033033229755819781090359331142037656000012275715313149727581922118091939399209108907526673004440641046776501451924496291434127763109745413907094242466578190475799943545188591714000384269110584543146148042829972339600395504203281204362636206067293235143374598832853858853766189335407782477633469340039439424020272029765534544734531269131821854525400546668429395904007751315628017644657519586274334334553822801861372374284023042470557822115060906413778565100083438422684997731362736761016716996183004738264199924172030630867214201234632691725480687226603970122245138849955355126500499492328996935943917114267225924626679898052946381505161213175419323892761427531115339651233401963984241884530296331998542046722439628831671928600390506236160845387735935197358699293134750129950393449496090987885907061437216418579227782012575472577820468251333539843139405708202660230794325414468583330278495539322524190619235842878519494824561480742814936021961524997492162554634121188334719498819011958737644909200093987346557520122167827514015884378280282488730457526372264514226536192016492848849258964380761252818067863327850742913069980453416123596191504839032534392711530537684993471402280902694945803620098612472705239420492528823567853698552889543504868044114041600228608179525705073110880329342137368991394072438265035118902479021061470917057744941050128321384954653634961489055122472906939697851402447305237812139863821109516789994416658547727993635003267257162168271744104975368505297000552941392996166967502322478097739526204472816991727270974661108390923624870289189029871877019685259350499480549745345330881557814154403934113552771223588579909262892958645310691291018331791540877105883281983152084845407261292711476417352778914531787527609733709030596571833560381661699296930546687877757005246931339155983585811305224612816765163193809311345862056500404273568090597601953036863227371579545669254826390717270326102241652489187937213747551656072810951051948816640470810169314368155664014260324986577802588055720312078534490546843762808547337166785426667755988515716479672882389831263137080605162046693576844830944598290744557803745836221390929453056229530353995325706036426004662817245904745793454578586176131800356222707565521120941173958583140473270550498109467968663651631762928109689882075999262833617944690094720089316237941807544903488966099721415531301355303542753102252240775408809102785467057250419492402449676092635458283435995555729364271742661390808452115727365338952676207036353169394740929071471628783925358723236677650545798711883278044992736941574453380624382652161242551614598999540466388386336260896878506493295830511024194877447890172409807092270658955148177520585217193910577416073591597131165125075579848570819903603757332531962428747699019402022374831256772304708876912755020245912057638705028081751269512727231744353389515610692398908749059297699336129494865671829943581004164375830800831676819669835829030931338201866754251942458330280888846833195312112315630932194512855672863733600114270872339449308678198830603124474587848810156738769045361220834543803722552232652976418216570919731632460596156536775826959482733333237200882252001957843138879063208964285322636725292647289529082426248506695566553371758491313915281560881248732955900610749438619206019737430140013048856662732040809706455035800008508414787571761017703676742303787504642255147059839329397019266443481418529187069524760805895763050920404111144078527900578675009641609397278773747267758334497089015211339094571289396834071170720667912184785973230451718618227795004453860667602435721943257288568547652580756027382722030390636476734866187499284736833942877835646063909553361998650667256837669086150153980480602707808729378350228134968915106240485371905763241437584154048304125071484490682036689259452780538403466937319396586273034165148269681247008140927435910939492281563534028315096556786832542203539714790055662648466736245702756388911033756106780523750848517850857286331619371042831441254433158046119545267404421008575658172640093165258054487917757787830148177537604604151163933487726058763507403478036993044208046027161023600068099388140953635021591703904933817399316255819378455197888553049337080027266692162935286117269398883680160363994365130870166550776203591891830017646351363134299854351067523728984970204964369856287125529482596550249981788574628259171185071695715570343224970793392988212280577052497791132948950499467433565114069163103149995894706989805410114853111430143349495548076906440912071922902082712486850285246868998881690244199696729932939021950230662121984144194712984219840352717153901901971990937980040627434459936606579124481650170014247916593799810439685359474600786388362942878617491279471802258803556881476543772243413946443105584897042506179685103211333284906967815380321911739347610524345200315851051243580093589516633282042683326441186280743996901761356205379296731179228620979766457215437567704657855749915163044274320464885769759519011072317162219407712739217336419358174395163852495954005997204764014354426707525985412866907608550921443799591872897964784197167838534090183496091371390681168641526353154707946650367140304968923913938532178166512391287174595160613357844682240372887457060626446362192267993139622347574696624803903918507550115619400539771858202175634003714263533319872169532159724260921516945649764156234749491324921762524374681671550090434157445532264701024164622301002513220249043455098163031530066493862568017815925410083154163734856487359095703850328142098989771725240082233548498942031432054207961449306380157907708470563517255586598691082222140027629462406075193069775768387379126863235465635823960758008488023573875639649696111305536817107917420405015062624308925707835508596817679849528513833057099522380833258282734765562591704087026640068198779883299522515149419674387757632330311613066273871446727142531857861728196252075003304528608860663751756649259807464869979590977192194639272808165047510030189809803891557666797507392822283820373064862491916766354420305001829790246981349191640667127144955430193827805479766190559042785008153065227495231804776986075334993390076469854067853830733737935028244377940406110320499490684671212320302811318030636841734807195716738118061283461385133455614837242185241106486842148468524460285855649853915233212311800580019209774210625169536614343333470937413150722242431383878880606458237751427163800897937729176003558869967892885325088320410835026056897977206965989475796896587834909478671490218392710949230366667754324106942282788152998786051753445240100002802875599336636699741264100056897864831229732012109927532726693030464886285174751360030184595367137369975071342645293783833165685077401012956186143438443314176413849228017875752312311172701979406008733835828662348306092375475804904421900845194164561644797226879139499917058579829397968530407325104581194359672522712941995087309760299478376110361739681067550083920216933152309402900668253504772226049609283818862727577066760339057823937633382271327485572293363207288322788764309074154604340574430346611735649375590234451956935942743275615790079776357480538225805428143548722364201824101866845652382494099747667816333781745185616041273022112381727300879055942528137064362408446688715589524120226809076115784798159725176524444898066995506256185784364344557001065421089090994782758704453380272150217255262726516533792046214858663110258511846394359319370304256537072329885104191200863511914095578116942315989348710798370334621563907497774271539505983028078361777357081291381242837007348822369644982983477256690230981293911233074817700117223552477174463040926977019465776953160039937387165396380535015580515809404195308712821267010442661340739783286341507667019105831403228971733455690730746108822796408068683228169967578056805104048597535278328813677114345670330157116624170937959137387763177622979927399538188475035250383192287868162847845009520005141489082880655858905285522413043480533679505362789037102989972004834436762262633952623743549176993655640845311521432122896961063437163223783396124794070647575155026734393946511076760871244516131505528086514805630910452828046172937702987467364639953255858992853165891920406463983230019415574559363319186959254444985004597193675260858980018134623695271993350497290977536796294237098303806316341557743887337861101891673265230849329689934598721881939730387785400358454792023438911131702590335209774305173466743246398799354814385680482005065779946934158800980168681872501870068251423084654158601077526511572207994873633166057796297752627375565467957951614374577546011311445742443286913450197535479195123580483221552296196304448265333162585477289554504871943990606618434668462762555357246138069598632666015132222226402886210954847670639737003865046145153396111852415197282697858226024356295695141884111596115855083671303953264969375086489397618521225827955434005166823141171885089665079528937297252631181334502396412801001432661670148817917897580650675369052846207091255652875051753130013360809748248698000665962006767972787426254323446768661977923244927552811746668920273459156054037581659974241923952287016446411519497602907661520245415793327948471045439887610957522093840163338621184692521456181885779934632743225553380595619981016366733602360939458266144739835697462218578298392223469233190355988741369756548561190660307524700230353387133938152858592616724223440592695944597543568269713772558574672752380710759873512447033252526786819091035410115654690914892972678871666315717680301790896152971196547356954073929339814673219907078083645308934512568336542511757546084220324821149093349331968398575351054134576802803862501328242874022188867240733985121290966339182513017716128636176698188905516176689512839792808615638903749830908079338841332174522969686274878198251552084739126444187769251526136947841300373819376365295897248805994372700607477720165450578385133273794862893637245215264491854212737524777279755081706130351771034820227378363037716054109446706428043108162052947534786160459334845582974414128627480447606358729253399000127818774065767357913303312556090338528897353231732102323711076279930304469639152602243731570847789721518382977046286604552343445063163408092896614317605842949997361312403944094220419627468883971864520360797026074473035375490621229109626061292459662462824683261240153101303715995170821930035979922120324038107387402624059271567332564109448698656414280881147316803674671226025758970005083716460673992519985753294285093767802215791354849299475397645430930008375221422872409943851463025502093450554471221375087668666461414036457004285209373175992305083200637634207365819026333057971040705344855913706414634074032316687297338097535434839535132025836620431344711340385475547194641591537691083759218113585510640912847418223123092032525049214686742147132204528893660235129615382895691079172188716401494091158684854922662782516516014745807750222598911638231414802083134387935182962577057546628271645522495635956316611619038347591218565905088346635481829801268625771818470367455211120793916591586460989707677574813226721804702488755119617271105187421791358128429320264661519369019612312479413065049236085186347668538801445792056702944934115511516747499230368720346014702572327730208860091528261806709417618468909693150800419563169939069811503021411510562044604738005364530286654457117134664734247447661943646519101208282835932558786666632109904999937499427105645366772538619020852370654213352317283540920275477689963030524112191693295546867797376505509657553192801761124708996497841463858412957084177481566397118684732029722574650382104972959348005085814170714669926235270396194383286010475582477918955091156996402675634314418372241493364153764811964775331166452546826458798468925780201966779787529145847811700568476363212170376927143625858884407651092270054023896115233053936645492795062353762416107558943034595452235944778454323096613851923874985514826478378448987367586483443924173840519490670826224905816252082437841623629556992190606423465618419274017597133616125486438820305202235658360503340978597716239347348391054227959570995025593541971242500530012882667727559804955218001547099142913342851866403464215933078366934353345635808233485362253923854786897931452753405233111927321618393689275705288121840650356059256557945511549616445642077656879578921902474000689901495125332898218824622478180872340064850004585052675910752268506243449711469165440184154248040552780734467395797665458561534199093421498483328668953812610597779331996858390047465552646114760950714229708078632145544237007605668753599305479282253177387342507652293682761505647294714065242045624353850476519077481771536783407391970970303063772788363567990078402180690087274257545320891510957176851975076225815576496347711926317859423950492234634198478968810535208188821989043664312531371128053087378028045772596753376225558113962901554921282203620345886062822871376628755234445275880196877979567613495689397304223177030149527426895938811716960127914130478393215330809880711722071033456270581861924262457604267463665777272322545943007038424163437967714250611846047708368457958971489389308591921048858172663730104801812614634816522899500650391771951493947260602800263441344816182535719700619480716017625880281040131561570368526597008742117245413437564033931151792267759396259993678865764077237580495102996645755500934359328773462974454263280086501955322821762917193581881333545806127719632377607617025372432610366892610438010624172986002123746506081213986505913543714387412147922548791528179866867025818367704185550602458147154092949640897825843403789075135544339051505753855625083897721618734629163441238012362594317654654288278408190330527243846952724487945621464361764314140557958259760115142423678905964376733287029097956808084745514116620957323582566840454132822530156542421829533441692157853175781738465711357388941669300043093626033130431464576662573933894449001270786190733078313019841732198326697900232099473536272078864241459527797227626795831249794130740525333526314656694033563441773510101468890233204249107147704706087927107135034111334024709009940549209894896712657140889475713902691240658129380291986161190698292213724275389273599504226319408903571398609078675926984275389742350473374846941530850050291812775644063041342719842810992179841303778205001457722209308088650784356370355035372442402234277227010994227359684482696051584509290533108756446783691176987321672523235689323471565559341875948404740603951300495553398806883709515629900152984391556737104741102210087591428917936767948388272107752624774695381742316403119685726837276965386442226579100249699069610856329736183040551226141446820442918638891753457743496789157093945188553608658696249751315759195461856452360716614549942504099782131774313385291374028080161042203221802111655278030468971645726576475985773710387294954703167180828608377266922846395699824408725758752274829109169994336515999757821534468649863042692118745421100975419601005095378451904861098766225350447886602280759569162973211983755625788661720511722210618385339917741192718763089740960581185164993099153257723377557398040055960994616097335981347453557970980265140786474340197299427070068943204319935706821505372769871085587813108600793560397019176838007582237432046611550336208348246388933655350279063081733110687520751873320430529180661753654357476785902198066395791336666553594114390628006618707573039713852827220943110028947312721975707175064636374588332717255703995562325764332431298297801866036391389167507043252377804383544056090998946757055734700769641780833217767865987237946974988013199535254457741855603572901954216840118076574307185748720682592560744779844492895642927912343106311186912373016935333376887059066649002983265628866191711108749088685683159397620882035594090947980251212901601859774092898920320449858947549225776781856525373946222740031970594462266711973125390164905529681423478888201558731933229251598366429430577098238264799387270977042109507786329618528338895925819675407235993800532928892643497117759671557271122238725768214913938854903879312168936969990674843354528869419860389299485276140391167492598360442693013162902701294698633259698548857247507560275189738668108143352435351662103952617549807393678975387548153014459751591272916787912830174426688674288922430338367961333668224936320380396150257389703804349512712649125382269093865640374351815100372900345508249795408979825701600661282799519191288828957867664325125456488071405783082331165836067077939175986622701887545468360108096381664948710462666603774330055290577404764064889614238956283777508414523887125426220938805136354956907719276488962228898893970617423576012740552345093349426187117229415571368990941330660744960637544562023294345289379574709610371889375278986924225247843525793841749018151860397762308523308668482588230697837652792019675656663739218566093543426805661201436576067653146216064150709910445381293367021233953013021957171496920402649112916812991422043700140252743915575484362137174427265788387090226092075169858738407499197719379147671174940540086615882918340395854457214542379673356204230451047622598251167994817537099963689680790437368553476764646928075081788231860046512909913960909824912661912270875040438802434934855072138985239984872366549959308640552758502405383175128510132023801720183772552028941808070258084741434064481744600370527032281287603589297586250348873220773163334803155681048251907070259590012343624367813539849820803175148270145753369358377866617635732587992718555874714864019209416888277801245963223290961951949402179428057812017485802486721829925500429412370372370105204543814800978922288227070051523468546812340333736852694016576687911455990940324030159933441287978006788567134553673183834727901820985702956553146365548811535147583340922981957532629020771024896570094025637883518792243613026657973709438237299415479614809184972718946424786913667129596792229022740023426767558111654748669253378160931295579521305966311158853497243129267267302742982655330876482312626059644911840643565104940663781192533396155034042638481328278579378785999542293708164482256774143177618764946073387290569738222078900476786345852842394874778587138081781740312369832643856572671682268287363553902785005002374171453961498851130561156114262837221087338654777184118753283416688968987296720355790751607612306072773154808760749988009318268292821671541794748082335775387569321977793806264067525380432166553785310245778393843226892170370835353994411893137212355516963838649143321876225963969314125477719982043218842481216153935591021448663793370902634025352779126234615032584598200920652140416894759745024629318154658325132457833951316939414339949781479137951170849912187671374058831057431309869135689299416782647224129331502966032300014043117756114644966194172014348544185771965533921892303130049282474884819517605546202744762295561037557394307432955145033202055506842849379213834849369233145635863717584804294633063679052197160961414884064460254101059897422999337827128108729633644588911548722931599855661299803758815554437316075373546640113546068903576601714810410507876132210263885135651275005430016246237603456887293034102754076027439265988527648568113322393488185656267839832514542612311946588342627690468238009085349282194178015284163969160646254413946370286590845595898836239684274316687540963862296174435368043741283225512956457771183252130159440491818184101727496425905186235208088439928991407928346402879885478459390250050596032729221055652209541146256573344193421467909469237039135494919730164935837484533285099649424560742097507906804193032865132368170805492012874263432872174966954320828093854920479919523850763455072099922900008431057297370187876555939080683671603143961781447708575734378310347153454795860156725979652391830980318737520557806464843907506906154351377266151177317226658413403818905790014485211669662731335942543866893230846487244691121547007386488913599873618984850882237286410808817590740184614719894996298926274078054142813017829356214210409158576670321358675261221515248186289289060588660562064216794196783847528871556475124515082270863969546891415314140002303736681733849007561064264767481219611231771102531894817397656352411158355180975621170496645528302772025688793863185056327526702073969557695855863335903849143476654219334313273548905256397988220241252735778071308614310374453268451948896296020525564669996486581439898393922213740154830775524134920477381104848323138359746397553615452169957335241705004181369851079988073764578869312851736393491373377802232836313638156889157719212524886602442266889882734753110977607013459359223931948949626121360598123546804622475318932255849746500860593045357544318555539878298436925766315304747912076693067604905103524149078330344077938167808497894317846415300141688340265611388005247404645859594195754649807221655247451781833552565960343732397906320705145547875476272767509619991253428201620439233531225496898858062693019962132991895010185627766218318469203326793151831716771283261318581434975416557021630451417001469346698601519538113015705132011225282469870642439820671695239195307476442128540951909995753218778096178587295119643228286289731294428175883354666362461652167520518543198068198532780055607126611145897008829659689665940185747240093289584661836548901991348077063664903607868187419868318347313085558549159561006043482498189941225004568876838965956762049221807844615925170388044441034353426947871490858495456065711851711028392815778666257009522403937601287637258386695701059251541201231884126479175071693535639549408810540096510053655361542185560283504066712043328977847680315655033582965722357281254845620683395800529154430060826046924916577485643815751436085615501686869856428737970192018905661724851254090446213419993964885111685744860472268059653198564920063291605852436604222863345128056173797348828991955599271733096572066097835195176606954579023335093826445026279484934558076030731655027601796571910511940240356831230734886821252440344836753041107811972721767784292427133503683790224352376398387111636186682295835058829046301560094520851355658347708086674163530857626737513581736193393755204771989776817630516012919691676781007948453495609453697778126555454885147585276589385409473062069135490179224915001254097970284609025943867672089847620026750086606375572842948286253497883344704829691110383173120464450104462463443047923454553305687301890765067289116203337355008263396212513570636276879813121897495201231185987586912007416618131035338385126044915304338392484901893797606285252549395943691856495765165053033658249404583737395890784082996169201945664268922233508230920034175768425266986648762572006850929717562073916365978693598033261431472659192726493918066777190340810471099652489516403080998899751645522810187090327785451804106909766552442109694148770184119621711189632323316286505199960931146425174304540725036781111705516645680079308438408727714356954526139792346873593293102458590649999309500947699904989529403770824155110778368115062729243699858897160587763483123553323118320095317787123033483574526784032675614802570936771471909540468228308635101476916450269294131966996550010835832398254035272550635191397559578607343094753875784156378322150354664526311605574131817006098993721537363125233417646568153535385206326586745182381059218459101894361825897463448502740506864489180836273448496434519842313350837417891482698808159353840855844051351651843280486494076022575911901156595834475000742531891281325651878154878341164852693469169142519136393340656125488329407909331245231455828452587782589978350151638825816584422954870179795152716563200915302242109610843611683419844300757969498650723779122341232920802708369017092155523882245890074809360694592628725879542397418399124596982937201469459660273552930850170772550386213437613941684077054068211500688188701358854270641101570874458855634266468298679754612114875966200409590396740129621079468654829300293338044244729268878519545784833191295438845287074154386311544799362464349424561187580423905523878599283294991106199008582512399384751448556498453320835192491054852407126607764314907664683801604740448679351087226420114573305733567987458156794280681924061256166590341959612643038619462223836811531709505378624665516560520595590993667811453265787326516705735281426511155740728238727734657182526920136261610885441377516694530384665915698150044195449387211574042780426805676322663921983594776586961184601338724708928292271294547234539372495362612070010575056693262169780477278720401166985525816379779331064523245441451879411723237070727225088804870838274192823239737006402725627349932794520231166334442746558749713639100270234940956205608458772469881014630954841144011135854449674915875769018881042204938719729107035494983011662044294662221387894215660845190879177717992644250264366572649469153423780444686286850077700472001038821926805482528763822890240463223300407519777057366200353906696691190235866428217095429626283093490536533065734499852646765655463037653537726868792087975155841078149964602136227664496597828408288289627808558913952193507831068571626653513466622717595444082157790341936323552302736581650647490932215064073672446931699559190675678507540923699854057463589224076134605511684656296405189549316850058206741081473721895558661572689002391057618952761428814667860945436701713235777253274709190782993098353111949076691799590194003975852543246547915816053058236326726003310283488652318705222198419379901475315078347157958292607391136746918648695165824429631529173123149925745048323385147044301889379268661517820325438785205156929545258910161617618510718774567523035010506664360288797316944327924252607511854973650595379037334029801983031535591776433347583302374506689699279209856177242890335121628026050497898607721350435633114321403637099325888553900146482960653908273343121633252269873225099837448477775210179185364355369309958806489414129578178098286675893317095791172404361905553354411879439753560196456847812286808651374787480521937253547545389764012865281220481078218681447835600054532223676254487016339313562953462175082467647467670134054199147569318036140246020969568843583799824136046708493075315664724638164734256903019331479656563892135873798347899561087554119579917996219198981853591526147948088522961830964471870629754533948879667832626333746949803877673817694451337154279182045905564135495631027702214171217945468098554172612936895793581290950596536165562375699193537089217180002816659539905847998768027776651117274471676339134376723382641874517529120444663017032717477182509484313335994788020144362757643265768815756134754887492583662217169311036731931669618083609537028967633509273222972664292620002292304562439355452026881527934834502926901418198582298168287029233938980316868287780144358111824806389506110355756186331255972156324808920015697321078366722170499055614547262734806168110266191732966724182360921801618336840066879330517049507063301126958461324926950180182294881347404707742191508169602585373134015343669536233810596413031870839624183667011133971770346279030031379458956259098448593053036365188866341579081763351174491245902530015080235470565125778131445326915083002779189002454734511709239667879652499052014472288653036326432188216187372823707993356571235025862704653719655371362186396708624020084104114759932765881954509555757983517798867192097667115141514656888298784480343222859425434424005891369327630871741376077893723557013127490649385580029002941459311622624783396246182512644049893168489697324554066318538126173184445386847279325172734496340987057929308323928364183657219479754741435234309810851779345512981381678003814166429249773672989501257252851526577089262908148025630771592826085797975687525699443526040288141981255268232971756094312620329907570013433874953631232516485654143977096136401910241754870948772006503642211623712389327632804158204659032610511120596786839213818767292270213408880514030996534820958888222679445959018180521466195665605013032336825151923546544040013700379871245140091076404979373982328781583242134675857830522594072098002478100461673048511847541286188109494342371357469593138474619243478956331872844772018162879884484137568909775748183817189044210801907059880276809748512088539863594160377375797684931053781064448532350239616311281990781299893661778111525321605387599642701905822768148400606821141574326110814506315646134290437490105205187319446897208206770463829630455231321247633338624428956651330416988976676723789134389160829716039292734940496003245564991693444842167039708938259283455021895253665343173744787911956239331841612274143599462613608774497438061921530134186697896574352367765773217192588179781950140972680002379281645334157432421602179053513447304604610434006403271341244700468899138348033652588275507207744220954046479290003516636014795891269151588383067435317594742985297639445293182980048739848121767288721112349712934255363948228180892748769308576743703079254062195803405337688530049546866812222747909340860675054546302792520396687008576419563113687528288854547646637795980081971434659057864070494689215664262502038301271755424422846421785439540116798855701347396854365778818889978479812882468914823139403920546749401555840127865300522852973966037692612045053420107830111386018424026323437875538815083290163143730300511236023579633381159095647486473405565812572285704731427954181817372447327991111891562543764980456183269365554648212359494364299601491571000733763181120371584694072394256669094404107909748057660485862625547161393603294258317574115729754626964607469555702455802777125867048809689618424523122184332438353341350383430239696662225616429421001735567719475222711507635834344797499296201570292719812752811055718097483494645809358376343793206337219162861760609323127869894650666374533277102361679220253069509529286345938335241793464723306583620926465741411386132824210568484793925641429339874299801428938660759273813856426357217962878690713339240833093459567903949377688255444983640901479244591071180861872587173551284571950328809789912216288785599713627699380261007343648576716897547410737708152753559855151475345700633261736583324821621524722707301794182112817233824890266303922316140473447814069383784138443339604235878404417457747196805450475676920680780276481323844354004394187735974243673458597667325483243409078172592688661680417704844935767817333179753934872638476403434796432808266046723371740177394517089742197300178284727867634263682024425003869248948587785519673041281126518686488819225970756201295103523514166523379436774065305860175065537821003575923784587761943106390868277827767292768449105584865024301522565190104446612250550333796177091664113573322394776877826001030412168055143956820894076452143441304819019504002370468517887281580217646289104537861895507926332348260530218990630095929090353476405405927828480172108560117285442914068279863290213295405683529179579714159680387097005634598970463412915714028899688540009601964477077397087714004432253299852246519261666891656983407254490522165869357217353287886396804156442800238105380407834214962040620308327709424793490657741796555583587588969282538054055572349152547629481582563621597021339973629276298629680959822453247591826332690688140583614932545834787752945874283997051473456606477927197019002347487513450986675621184972707557691535431391644833362983466859014616409818572950003844272493908421709726089086528068029060402833168500099158748119811055381185965642227684324309744337614329475388608244495526579705601780187221984625775330274931982155284966142057811395405832217331278832310032999529091145401890595969962223907699214287912444470083808478119219821472340485772118959722334182034561660082276353458604237066287596217239390175789561300722958329484769542986165202700789941723524534664305577862906142901382517043148909917016626826989215561496162147177646316168440393184479172642358704132199363999913028357339365589365484972892155572221962201936212820515596023006665404127192104005995637354742994379524302093027077164546015108692271791943637416148707287198537575152587091006345282779929832888986064423674598566642996763184793078381335989966756708728211540704518722499318708904791135597585306447843326143017651139801615265140791574881816287102213845299925728622228237567773786790871796329578025229943840149412894875746100450704905845787214799856627293521011328760440462677791616722786269144889928133285167750527588663719589909245676756268248913044957683505655115597342412882713273023211941077300109082159348865735675774249384158041054496815188123861893283992402327266973491660107888281946488424088736645659177800010035767834632459244458556342597517688098770869416861012884564989835829953077719309134822543083598873773484748775495616094959279441148800788884546142346950645940309584211748292562442090296953845634808580614481794836591200033552594689792736378545316820005249542941884239480644840945832592894209889442446697599778463529917899241687558162219062325984541209993661933526609662653411585382248202663842575192848864370114994185791967208693148045535655936580995025479820130434292935910592112063633815061914318533512328610638610250305999660749382388679408097155244162950716463820287603314479670428376907805479811681694034865606831002626554790028845692246165528525377450752309487067158891931243440851026197695491335411416437625834365124941482042200892507010302557544905735143372799401585715030264907188170982863250368016857294591005166326400097702673389168432301807908972067782921503296618442194817107080781607725727901937740106659549742629441859551706114099136002516470222983388548482831078396512737416892887295612533946339000183829089036328679645049008097233872390067075398099135431967167362095881149657962863060988665914460366674257705902735929307282726197424408595129243557060331911994245856668411354038506677949181113630274439174779831895315594573942417903451609016464723704284123912245171352410922047964459021517176106330475058829634310959630315054143633238699444331693776168789287662872978109675182315796740811087435338020006539734830063584392950075552134344635412760272504039100221803611466752608572736006766410576276396973252916388570554739147414557531944218320872428605441996385694910877934839525853784354794208174138841983349653829897324206385158015550323554967401924306041583399837310927703047006105849662076251971328585656833719683018533523303500256794241520714063638897360071158161548284704123181669024093971892075913612371391637627420395012914434876880427908029240565711268651219957411816362408804360308708743419671750426044585131207508683609640430077292299240937885196009844529936956221235327613460088503582189714945151672812952540525505045075892105483551720498020215548318124186687371649728167291644491789824408774952274461532918566583840268680713429825797237276586225147356762204808310083225165518711683474610551844008720351957587074874951020692850439657746394051091716674410671405531656691616264482673419497723915180482767139701556105293507729899707097499047995866629073079972750588706303646555691579979725772899198636712158729797069075587269622583535483593969301450289098012429383175217569777565361083824315776334345633338514479271734053950413304530587850975158575911120029730717676109100095783126476265033054438230327574488304718302596102582086977365791809606692743496893554632545826632015020929443030435531445386189352910554197707223133034159155413705520590477525822809714890822554283618992694609123478049895200679784911072172884904102610754708414495225066748043142116693411584467082869130540666099039853177658220251765821091617105381983297799991083598656237280889270042672298162731785850526778383627005310308101846202190811165633605291095832627068186529101438434304462186460618598357386271392549821456204542758131728919161541863572938207166190550793110107771968777446554555623793823291386723172034552950479570661527612734359451515695913194427923175601799333482347021853449868959708534989078762854142118231297964142077208085473731511261529632075887313378203350747886910304119177007155739895924102274443214755635405989913850300786754949830516297449595422290875663859590756390540270155428949913800959783527114720478435987289409593636935393836629952141574704825043356444226686973649520308750217075955999580049183509240217802061237407630850577995460738366557656309785500754056862632894880626960393364524336558056292286618431081729843164384666570750623979426769016600085011676662870822164826755647707746381236430489170048169959055193657874957860902908796118594185713614278021180886657789017262182517104027802817071510343391614610287683249128267813187337699393276958924501918323066562527648067492448152418867336156859218428366769548485329682907082737962308537640593348167016668525769281054057479307084865992202774844219055460713424200189281906404349722776979468242383251825446577457530613811650735219641035364852496973175374368010507170939645533198950552641316261043019701388411964782448944596085501735574804546450391611398485192830462934477550043043565125915914347337027349689420663509397522785134524905207635989963161216784376787467081095962753726657193363132118002452084425078315779574507397521338923618828628844021289905986149358864181201065552858962575329433337929765812247461305364376922193271610935002691813430017435714296591999634364525602895345937367619311822982317760190193142219521022827745069116107653708067524272184937901347864987606021698728075437044222420811843963737898724823588835720874465059274962067260219002696189219478501413705168214472046808177385998732451910811589190536981961783241870336317218005951866759139661090181824703881341129568697030719479972055930738704341484520052285052873647993589597240856628591114860092813364952535311438055576517475680290477302827290198305014335042654590704363393706783336435054183221017070682317474768625960454828362798687856791968368053022534788781333493274084338081662987383634311945647190007203361842018772984781287596554175406474644217002299090626856652715239246911346230055729638889359849972950925797321687235953137357849579864791821144901326190289101885618833397455976350447056527973588866501422085062450653113586796523187770814161582170410905240016568304167726120865196083043411783501243168264015903346674309402865808758456822294440997946108745897850909735763554938296368135814054047581129342538170998789221020082497326118708578360748747108641998604190832128845005230210382845313946367102355522847939682962830732299253517396167552793045242073196048662270925200423379256874926623352817461655102083641876038755358409681989560625082110347930960847029927969991306584355103285731102035800590533862191977425080777071506712032633239663411534155346857538297566868745918322845340872339656968706769589205829704646058416564006011112331857860665296331648178069677755271581628457776439143936769819991338386297221763041623185296464102390158801050406693964352590078875649267860534461236538707374704159924183588993130055882684286582534089344516520438167589517892765863778734556419345626450139449565385934340452866783955963955778636350176535091982086798673195819723487547887302159210514608264193138525482797289611301328579914116978887196382071875116951142111925923373843856593609187889120529777720242582291237568765017557593818822760435204457616931476852618811565433047683008172084459996469877151391155706127175775631307242771626015767099596335693553704436200093861276507375332692428800964885949709342091669481171647510546154693149059832024867584794579305462191594396124525248654749097668816774575634997485222523230711790662138318898166922098387066022994116867571037648126320268470618549392682101238064564169557245226311424745025602512737561508391220296841287538887548467449999512566961379465767316273514332764721737076246063364588540895895716412183222139794274065010518196446042511611371944302049699739146840278321069835660028387330258609841574902805893978463258780179788629306728181356381447437301967299845598326547402836281027260839222784090994127325629895312850833314210185855275836293439150696231239155622387391987530004413493872062986935996402674779812270728085395537095375933476278968004654362539987504744575466854209811456551690950830919107794690001707620385431271814449550572462997417177869072839304216794541760491151647348430033840296307036108562348374972985959347570294661338707264363134615317892629040193084651851418936904703912228465068596434177951272385843033333838457692788427366999902953821153063166975254792533117360636817256181580722046152779868457455884846564676990235765064341861124183732749351008527781275097061597905363721688371041718767113933781456191111365139822628781679772168476311426691008239489651575173093554787514570092312444351908672312428542667257660945591746998871813366205568373564859240162553053399310504364836553875715122873503033767410409119726888876818188226023753958902665838562546575368000285468823036798125660054893212305041272526553619518793497110456182328009610226378618656278266675893271791758262048865694701814742434264777255687704966240606439397008254784234345442941763857268497018742539183786914126957839340979167369525996208466259923981524297536630110464486361934581649774721516623648768816551511300857563245873183384802432108837689912963001568332622035456675244916009016432880445956524575149697374024120356683135268316023854184383262498561586392279845228491677745812513854430960474848341444688962725090822418711396311215637033304370691777217463231726642422711311597923803413314877494319127695530491597426637039643001380478715551739142495113372083517256047531924023744461839244158714471064653224070809133046940782162968088850719442237338887099686082711458596535420827606268054018437217227283552006882051421631690660769513484325541689284710704826597321457294267757150828373479289702056881169453463695985408387840946319562179268289668143686909624692821788080558574991893645972317344588886393409959007489561712897544859818221778235760187919410877258945318643212471905619013992476977856846305954577012880170223607087835278924187518559425737075018803805234569939250277732990992990424433007776124524676561803366361790510601026184910071475686126961318369934007294641889794751206386425467953750107141298511221545062403491627070002769696048802828499081322026645217825479178462326799766561154514783816589682789564020200216838014437826031019587465774221696779114076162004298641165883123873731334687274643735491761220333064454904377681389972001057477036514154084257621330339702924155733824151945746647850964652450601239712587602813803618732736068994174062076523776386737225762726875274962008219031423106947239404615049603649462791798494345590953278580522684731092522237820921559128165515974547410499540268195838779376622976636707242064667995001730382186554733448996849558428798492668445929131695378006628861137465135590445762409392034809773109128026863100812101303818504716304861248962941567426235474932457786525462871073645370024653334033189411625437643802997305369721510623025903601756910919840957724447041879792389818610944971011799883193743423289842901305783586579477711655668077948782938631071063086216362067628742199232136741955721567281636843443652798336592146607976434204857645583602912176566735700614709604352996871909776776637055362179839189894905012619203934685632478961555657511178844524569045278033804275826431486611979738577130506199235351058724292855952165230077721581308829522455633216981623684594426786239311977421055050234359111116251665323572588221822540698331149412589447109694814561559443039550418216745029810010490438127338088567137725620309689876672897132733614683082254979223598054629287722905485261994846380049055487192445493703078006661965993383446801276587863220736903240979574343242313557232945809418954625218689098077855840018817604546322119793859854583987180627695768207426863576467089451368536121303934277032747584023470547511751613450397655940094117890114724170625738640925468463998221241416582491217531358657456577425096200264287518075609390792708577316018395865475558225483242298506408597925794253562648455798695930052366553196201778894517462517115570013861711413235981187905015244695284305827489042416250970182110560960349571865506356665266598572201835112669119713977166294988881487831592875556164362549172732998340360667498034405474228124581510861774932701205293005861072535344007102172755500960724367349771330725217951789171385001585201068678906048102415243305255894644967404162260192720829388002992584167091378795512147567249433336481442094944368452473491962232385299717044493933778924300027710744867941912682550661912353654422480791258454405220594084551994837517482138409154918242228872595023996264246282226021336344909335954700265271414758123671472246594630418270657659914941454103969057457009203290053415309162498573401095959399539292878308119136293453890776281119743751443929732037868432652426829274157431860782780669056668951645750147249719011592142194326701270390915893076455971823432802267947105251397524975422621599399463755182014979361072379596356918583085137901625411102601368453867449994752806323846741517217726545792319602606063260601570982194745414971450973716019367704691855221003876216539191411478205004419849173339742575519984094242376819338792631416379663706187060593560757141884558303459019191821121614981557621648724621189253326302085614197734134744965877949097889138043001194695924272498193621782866794007911551034147466455775284172552071089653660182192602770238796992044052428488004477213333357220324067705998634859449672136961744953646964279050926144138421110951048735833439288817769551713493009213671643915511875755987882453514875172869489571623338144525311798295260567576975964263666108878409712523812544298565423053666308841384575317976145465843669711952875611945155673074049444148362998277927838808628525440698655258545522999751335161502686356424811880161823886702999094649960187092246128926677806523260075749629983945223450960643888045679753456363559218943372511592273325743048141441880599311283680872275474143535660737338574395802281983158543841545755750474089175071487068938787698184075431810455386920256373413188460463077790764175171892581812955350148697358716288746479746280182781737196597538015506525340083607162495861306100961885581704594894923523328306266463231363457759626515249573000866203744416085078464448788681226123826502418961447600500303471225356896846747013359932421368618519689949719458897745986268263152796166571667871185428542461980220767307869656675137141460506729004264548061197138709004398967554140313550776144355483479093099785560227587302443235765794436786083989477024551074346229698012344198418833610936700036488150247536655652815895328049420611578312489145712644406078465546624377724707953622246169231851746578853940122700510703018459639943109983172801622859089066223728331923345485880103069699894548856520565388419334438859136716987236806929784870478351428270118080487322577705023451523914709524352246765826406667943071788761699443989704952046763847095187339535190087881219650698429853262768194856524215096901336269417951208250574405483281409778747924424567274539996334680532607399836291586778655453538318401876597086841083258056970794562118482857800259471644364249074253242957138614169590581395539295256026485117312736198812643618828389335225397237840024860546656755314513162691130662895148280323426197086493200083882699421158967794653276537035831424958892511568607393453344466516409840417270420675838683339089049165849238896232409090590219542520389127646358192883520935747984145047683460217357491171056125086813721894704866781807634314091348307729337583336674892689115970527497982798978288723817193600276915971504177233914562904592542217454478974429814369800361862735238074729217242720037581660175119486826909321080862038290244305475335760173178739562720766582497712034204781121933755763696634381844700966076694942203627889263784476983390542957608289226587933376394956974323971005223083246203627834206683978981151589364404179652584973718913134046516058957383989494721413564235996254144092523510109501523720067694707982466549643536171527461862881715601766500816735966769545217238640514279198471053507256207863828324305105581341978835760504566930060474421371921183113511182032219971254070415740558253178570690814093694116707040253892388945044743150774211615068818709212883751028016476192212145349930072201748303425620339275858923966028160155076459552615801583251796675837436675646831797149743808985029169629769949825756060500455010029681170459591321219974986398726142082296977368740530767565769942401681075837226563994343308583697351742146318194767922501516201077768774736655824266282974738127912234431102871807567806637698432191626657237540761919120787616769225639118130751452844609061593676798136920588769899802758866238617242310862620300240099723189645392143458735980623857342511142984425516443252113134218806721070779176441639751105174303724461087249078968829989458104001124793128926128100455649661313051261809067589558270167184011173291909515278884047098376662597475034597656455289838181014599168149367685488317078870774701181796918391461228633118913046663133397313318411263199212006669537325182473069522148009287278496080757439486199831216194011055240354373574094311897682224720028093666799321610193401554801198131441960320037635122470914278831595469850221758051310633524412186509264773084141353129249934154750423109107334182576792875835552665294105940345030137767987096350586940180639122181651591624695317309541616395823500535988369580393673976076417532258259799887384943906029800645098228456294124299600312989404313337071637035179326327681552913180685105125365085583701589327427860683811970786766002277932872548002147049256078860559564062265566175866146016649272835614415648434613090291829177061115801289880096346904222563118376970555975418229306292785355879753566369554964295897795115769696349507455586197868634190332267254347241469096979376754021116769522487477102988664818536051894175892075560820621078204739539615953172706054276206357862146900057376243118614559900219236811831048106582967642011833212614961599951288322758374648756690004124949231076794267030731948738990651988008869186631002727762329219870705431165042600711676044259287409347850273339132659006678711883501978000705900739601925167850480133093061788660633725481377556077808492809761386033357465739022678950608249024990755820842706495274644413677426265687928131434680830318189299061531059631769278318989800846174107296224968472060009186833028056848074563560379248376029378644216776440232591038060184673868292490710766033183132749805113892367099355428106545923795835765011960607762718960524799042235962954263573947758736111396413323183230850249459349342414079467034417629572781907347454128006175447423784873270241611482685906465007349509700479248592515239266816528949718218675143123982478347754156057785848668998002027174003790611858546118599574053392085627153471241308227586109500149640172123182884458619412732845870353703386527870023159676104668944955150083241614892027833303468437636700908442414689823267671285829498089983847788087386131015482428297682908882312105552339836157387004229813516086059658545420756091397616390459626149702819144629081232391479927376476856610563842333708112034289258534335596485532467297779944865742112129699156494063635422569885348473788154010825174200210347949717677663980811211791719443471473056774504383319139917763939723386247405439329282125796407366024630432151377115272156706395760625622625107656975100861831493929868962871938434261165855695309923184689444970080952900051099079889615838664608103329203470987325762747731567318994717496137017759395383913228102400533098149249731527530750100991972041235702838176297632560670785155990756456581208321251856464789586441317103840905850399689164998331664622612260309284114637723971385753829802736276447787114459858115617313321425221756462148740956189146550261357491892462499296050672613283559707160844310393058185145634517465656816052758346000034841357735623709254198925106810466669111603327480191632123308710378773491441400142810921177319807537831229843260396295442937292816426585448012660083394350786699591473664991562846301653952788784375265420477557913092665345399712340824936474498340535248544553606986979653093209802798641992459396825630677053374362171691127982703665337559726054910987635313641507741174329382430134955917932817427522585954689044394558807786882241217021666108288867305205249328978734373066697294736399358788091403208771121139191568198227598098894055111159678415330056291566053337354966774352361900876201091901005673241391162432059595582924203149010868862866775033649455710664955839781696803671326231746992969060379859373369617309448965008306713466383249865186808053194718602387775342324554946763923032107759389148169076440928718012488456626370618217279130154032714487656312061323363396488814369934495027343476498056224400134618039153267160034863563096167050901758811062276197496778125913574879143087702857133147607119607733596425967810591869196802039294816105137628958023437757133493556983630146919305417088834458355522720795041292712652670144513448345119884432590148751736359512503682106096700833971153233629468272333935511114972834214533671667513656924536052384652412410949124356016015760735688515102214134063389138195298618062275944529758025613622876143505871739138204729845335215469391113874256820360173750854587003283475347752204171718654110956652553817973888428941687425520774676003208454235771007083612610706404036299495359662320762604010600834136561740872042896574403170723121387770384015279629725006106034812929708341267847907695227557812871537466856659548721135793139651958232349385847630518713653948745363158926115977417791624453087837118314740258682267799998520744654668143722302035515293489713539295225192828501605268276924913263011029713095475037407962624346454977703384939588179605501780634253343305498185801215435232416471987784087534358852700254953781746188484430323497796740508410136546461134937268209698805039661158842669127333198688105177128108176876231222231846657185655603045337679072141569736796813070767425003417872511829066633229393269196207733989550396762544946203070395102036243099692121653544887612821583797866190168839631865211340993424488865346873345732171799393717028661602517134873295581736887377803006027769127398378452267024555509355291278631665392895483822400652785217567368869862164828571091893680653262636283007451476591179380039257851871160951578183759295520399920239734154180288547082125507538579869668051449545827871550837488659980394171028303997500884500573093392241387873769466611021282009758426925088932067319765014268614084394998908022540083909764307352546683182693611796705773195750079496114253816715657844789013510180342026428964475163719675435204864149557287054041418690532072197447597595063922704482553925754905808395663726858941552870135828132797042585738727265205019240981278520969095029508435463209230876795644063813795466815537885505627852343584980082929390012031879334868816918893252941571602565306704862512187354878213216070540611900587763608265323915988112559156160817584927741260949247916268080633025738846381571406318561486521504722264122899294705017671627803674372301260861569822580749061417874256969901068739240582105179583336144494726734788778538176863013560527051460015343445012968529475698365184814052580921633278009296872170502554998942454243703263126094489259684595232332912919431500501387731604302425748477536375588933374465745133674745217811010133020599343096633817968109492002252918337082834579865772803114479615742737569396910244195780440107571080542699876675466079752258540498865004888970212946491537515390591373465005233446617245741847013632403626485083079388447813718623222806752214249619364287599727265770107630151228627321782327273122215171360729591636683458839864629033766475149732637413939265211781968354954463927666541525721471203269529955844045761285764387511524375785333685793596068658824140683596170473553966807093956711712093638988916743168807451729062360102160385038540133670686794985811808576595317764516246813916329140695955276431809697025217496373114438564714690559636315635075077415312349450353534103326189019031662679855893476491980623326133033708938780436608581071075306710630036579211203466684636514512140234363923081744305438237525413552187921700572534952402178537408300237314025326669412587890502812491866516310216598906334676215577292593785440780682260454407840315180216340256219447073924885764407768389724229735323635228180799182509899753589980140953806917750591707447791689666875161521011666056337224432123024808419622228093932390297616709580817691181514618910483552974820293099437906242432866950065706247276376075619147814063101225011793707584396891370854485225405604289531003380925246461431571379945914359986592972621673857985101865053074797653473230896094805387095937590537149197762677036137070576394904774973950313414414693509415659243154394927163453869361212013753406488070566426565982028198853107334519726102582097054282482813626249018447548487415299876679077867972454807307997124586782274565217879287416968256149277413974241681790506587090019943917119698212977270344185317517706730773520387142145073709549867857254208942474959419631110842899590080929524664716529736717309286601076333791277207291876237120575304671218011993861168152211681090791551108368003838205425620035587584313231648178329541319902888033094836742854348864009272629505407202289006404140258143948353050546994678670228514414913172916047925464251949460904189495916275163633840000250776379593767134514755063067185892835105445709975531831286727132665920654911799016980121415020720550716123949509303101413111203224455337705362046881933392546739579012978142470281345997618416350375529854976854161248442527061536308178962035866193066338155229211551071754304229232046400650830490813944638334178294498717417830364900889529800866749602772909927958322821620623773738283436841054430518930355078842998111877967159412364009484438320917763042192173420010157204547218203214264633106453154827217896887128257809007450146594766798836495745926390285766520103093318139291484956339212301957412551196038333792560290362530457657795701755857250153347336526772965408676153776378283920755576777769179742432808368634956329625493064247805390212348195141614041177104102005659426195489418566381748490486419221345931090618058074601142256096300210370044096224210884528889950946696269236903293363262602681394403021665743257197275368230212365679455936777685271384234628682787039418997641857095331306605440523874931664207724031129702862542532532152450566429677650278117995008924018084098783993454316058987082448219294898912011370345574507451353863196654652724894633785470548793748835854983479687416451448486209562623805387744316281675409866243031075872947875398494954525808778928773168688922726630334156075733355731164861612947110938170310006962365082230202022124422157929021837880802933957197805373249701309263777861690647872403964426856485716741726589943159435455602349232406296625620299709812469230169207970130093594112569970856720383686917417390218662419992622398284460314877798152209455903119495922938679296478611237721391281126068696650672856733958592833363118018081693182910522946767578958798638579739369303474357876545052533042797361257871078418267441804901677845688230338938924151102485286583656241535152781895376719175387802962203685042339977590893658423724612927330680306365480246266516766765683494987323046221154352335149190508629189273171813335820863563342795607950650369758213399997673119684130811607772724598284964873983610601159583849941335460063164282525013846079759707122440244351101325551789816286196732786867905635800275173931148304709736562365957409276490887264078544163918614942978886631969354516855874452333647211734687786633207001445480101331875378049317886696796217320774875946659898249272511902240647736794373366399377441181612476034794499868677742957249147424845633470565044694331442056678188977045992715703343960857621475365823546786500377770507602177754825924026637867667340153267046717534850613510279758330823285585380927819020947663412737791726199022349901017972576121987728241250870063677214842624136266090835778931095854910945365362518268041135868185957760030281083757746101461089259291178003294446081302969155366170724578950624166694727941596600410290726561643242406766710610270112581952816935286685252744619101812507255879410220477452718358605328738132003447555546588150230416715968390852675949691826053733350867881716057382367776843954079414949949323011386565782464965751066858338968288246898207210621851040990390321861639994375604268871425930439354377215440347265120491006119032278130331358812472964964036623448384894304398205834780120256361746937226347823072849285589195759933026174622138138702234618242216567832391961203300474297076508531881916352125051397914910862920806556177554482860141248204006504575497106361241831037884531246643862891808988080283260449379803584094454148129068288126044891103861457252999728505048900331230570823073510098802632898964581645664316362066325619940468290534887059775979648960381170914899030389195210059374003180849948693908416498017413231581789655073081404924168095232637677931890952154736974166184641979864423233596591795191926754495184613973943465489510326127670772621656265201856778146232791679752409027663528789643860789413437982845107550190497298121471610496841953516374987298306951705831809511718898922424373825248785887452051793632574365719824507223213081462856732855286625470513458029556389091063466081304376775603514823091462739970785166480447125443862201466475232288851813855009375813806658797788280351595317332980391526893128199821975730321297792562872966898826539424170939268671028440920919900419505800575516608065128306068512003167662643289179688058886107169586063053443414695912992641974631339302277493375240781413267427151363212576217645979137692303320437959584391529105404278558350207516785996565990444253329024498092493946552596132797735592006362929938251128353183917558555602650432760584114140879128757702811864931786607349026817623955018635784101368792135790511147480182217338131998650397345569516070382923764234383741473854248449939386478139438794873773339662934894397021945548122054723817098058781841858550948015806660407354354900744620455295264853260676142620229328889935571296695189468018737223296646943862758088594835786469917659944626270883482602624437466400173987600744138793449462231966421455592097782491281504726937083326226517433750693783920665078260230597003158680000159175003908187356665395056399534152614553312501812558975848116624181176905179635943265708173585330542225402068074211661731048750552279076219837277946672885424844017265283315217668330205677177389163997569453718134151230331740000054683637427016782063322853916168890508689999167444519009932456764192968219233596302055799696185433246997122815730212664999055997842754829657594982088643401760497428934487646758277044015381186221953463327536262759209113154470520145756614577294965529991429987732788241609303735121998541116094327985022389897648557894137953781215472192978251905906605371035241842776403453360135334472154559859841187287654384527279395001782124465673786316680828979332132594843998061688713128311714129194034714753541384753814632292324306053157119911573852361120518914303647197058891166912540437667201359870143658604597476132817161100115680661552118079716348608758834239464874173780856371146942200916452715043835798961037513380061067254585672837435164956078326043124619217888859903084638185004639773385126747757810202870937514227795853054119306193247570499145641513371305466299827282356155241214800241255720862739750631273039481647634795094098410619836357989458000613349339932024646064373324458551094063086000328558744995489385345840522634434146407989786887630431417060500485304389932440823742168886064997405578222198705584837598731924225911562386074892625098889242099912445404880740978601406186482776958457021740986722513333190028617362084843965348477668269449705979356329589226953395331259944091322585661521657578744374191749341506033414937843518408851412584678030260454425945266600685382982074209654979681503280484249988211590692643500584069270124334862852291984196902981651889067131817344467165135662935327086507059361915076433565586192138692801076588509474136474379266691624143305277470595409163422492427260336056289965281263559895124514728083967125488235979975941749330704242257532575287015102046404837913599876088981373328315251532931172729210503039462000816923978941561229619632704967464290680774884755106955118059442432317147931947061765039188549857361667913801874045848323253975592893870476417756763926021060914587071277413274723411612610245486386820220144866741057068779806318731015246571951246075929344130965718558447070961445425155570501120143372934697688348741662481089986596900423026984305707894701325204064665529653629038927093719756763508644759355379048877759992927944556686524723307631631015486962138789940108512371281835001274023110193286190684994431794206253400719063133100533585935335753168312548776341742588710281914845684943172616493207523668203510292715546441395451056836362316622608940670465304151035261353749263756628821093741585192076260658629060532496897908577494368839708389655816807664453985420141154998601639357061471868288574221432577158238041003020759498124728708329688421430635210551872490278798540436688473697359057055332735008397737583338456152211593221657724558971021106369859593073868820256309570253202487080310409484638518506866890025036678035626072938983093123417977958348063175529018397236329315720223601884866020118637755257328745035476356652405268723405555670326286144769946422851669884032270606982514913726340138178229852397000491144342608919025322389354351777848372414075125728352928876849506303516618893919370886181690534035725566548448096641224764252849622707987208590209799575063009209543011199388138302180223690934362234862345577201929419102338912902681354661361410069385555751547675764987894519630874931516206560939743116079227287291861405458215011398030898141717325309553053700165116500710627529960796908494667133252599256328555230560262870744648364566668898204778921657536290893815489452814104100752482748666538571752097484538282756591058227818918875026888493276527240953796156141296189062529253416724971120542235116133169715767444679996822907323813153467242828526166560141880478489359901527006421825626113270235059311646867469207746140616586633031448131908220146931103883785543638536664518926141705025517244864306169084549274774495189378465240022165710474995795603454558127806244999986536148584430798116645299422330584639667107303689922619299300633943919797837051878642471659031521401597348479481964371953716214720915408153703339824227644381198848969111783192645661053462621002692790652648447357529327807765604776575341005765645475838623525117238401477278657451308471499124745802432971397886925982119289852099686350380731858030203958423998086920567447011055284401843738578567898079302933694028221966138588331454454544984853432285837925204523623339059011430826636734919172582233110649886001885432415059430373376960062859773300914410716193144941364780220159277942932216853563376350846986049940255334330396657621206728315452710802317397900457404392286386553804020207416306704924202342747497195352152181090676129661270053880240552897478173191973418238565590104733031087144325622792876295229244850023094259167022261458584310523629787567372564396877412688262812342520982683857213830281232019678130908214867669934449092896785353188115220242464213265543936431400601515119959785421045893376756097867191637806290386216271271342689346727664487841148478369437339189731479921721534086258456294429580953672114716084011476997406498877420678512984840125994317978682228476247317329109928214659127636000900334028952778435402424937404667299078696095542890969193013335913640570186666786531608835414535658099232013020465448806953009687001209195031267117057454268701270190417959048492715168584628986138340678898804485901398426730213808605257454820332529905879215039484865815859221651352668983691910491989684299725149171935045210186899524010224308302401828187627853241762291712477589821965817237980186887528695768085073464459602966346901314132867887508160082694647490645917975025048592436518708025276866123588868558640224040383690788580361858509469392274902965709530187164718799393880325863098465645952855988176583602412119665034009012693454036761579621483817355923104118187595347323687637023756795989037667252292356417561943832175047092900692489308735403352882176390219770680519699414670693774422733612010882143015423389669005983870562461093380121015573840150512728743738321833211242873725742533353041854499538450772928470922835740872711361644003957961493569325852548323968720028170443739384693170210429672353679138034078923467108018428412998405141244297424555090498779074322804924565616657831311130015061399950854804312395730067472218455176815277069548502680612004937623024530967035373553929662963262617068309781452190921350961400902525648817122897684639313374283533186570716902883810854207693634263571630847289828821616927878300252582569044473648751999649347706865256027270576087081716970296241496991841438627518019311242678778077383958514847813044580103978337783535303887698814920666819240931027376370360924490970992971391931891841360331251883884692252872962012017143818036324405277597750287683797410113142341226576442812890938213961467799214810017559483713101923094895551378571692574808452597200935985154495603946863787263993267078099963073352572236449894657215916800511444802437501036440933026545282304531078478054299656097088267470116462240301034063867992476552480807022149909800854357448421181270252611140444615170944445842255337062904761656067447856782802180642858771246630756318563829063904014835566890225149769088238573162978266575631105894531875829498242043053822180703738984193659577540527636468060375428091664620321836134861989693610244376116949945957605807777958111142181246897127491029696332619576510234130833820905427429711017040113188641225764202502032039035503596012874002810479315250158217657580892515903832065109971841015931580753124798447064673763615584949363910982810741944218560067790642161259978944707065962476759539338011548592956971142013784213514070626218362439938157237356839703743441600992740078368296671402980687975327325881523433453321311643646695303047209599016875386248691857170523779664475230502422895077089421677037737828113185629455074045873957771939275004024268419660702617564284558058245889340270195023975686146198574128878393842484933347686328245330179401365582203776505900628552834233470171247573762142559388817027247085033541515413731593421765020470380434815155089133211519215733261282827265899024409706655538955141504497390367505662825510146613838219992357226619973304500931528855552734986665759118742452687010979285748240739399829765350889497037416170678668964564481879465284362391424221098488795167112275307377275004792848217650924274379351015450283579103304319243788726997300531159800839875488730959056041835603450611702871528466466998542608293433752762080107033022638026041771795226391717646079699496009965478677416755976012107139664541418542009897654272425505743478606936360560215908558167981849213596313856280693034874830744298278504881997557103678849191635540210271683599009309212279581062496766465766668889072385858052736079222626637253665456541654326773038905508325312700703227419921548439916846959086446391388681398954155720162444581794515221412707603573800646244923715966210680190058851755504437699430764169477659785694293862548880803543079968351864169775947874440527332708860621521442777305364980357030612291874595906762028699706036138675918589459582301199289318510955344872867979697795510929538626586227566922269769395797695820779401623950162773862438559039582298044067852983682829035868043782068290146439925608994211629200130099924139614640525607156397533549649769143868070164553131416781391065278974330076843915761373447658377839566857085157243828534578747103442775414187518560272759129871507929527205315977621671571952890058184207929119446792352464386813124129713514873028291223440659635203412846495319303779859193327829231274019206572371286214699671826361069611587608401920024673283018231379031117347071629744550910907379270867059925997119323331300238891768536901986016984980426990274884409870683388012829090998225571338676165208879463845313099149363256383082803249731796616564711185323632696267485135715685927185111042086775625352500770894444520997039041430788887326113542349110439244082754305442638948244896287616664124618566750805684316919151775721205310886248234888075534068779330218257944633172631701176738948124449606669768599526122198853896349200041617188773928743230848151788441460068131550820875776552347980483344296267867815141191011295821503460942451620360460162390734853142028120769630857595451854740629098317702595974431602679175632700172785706894235502592184715888829017219759362131114738990797424649116656655544672796646622420128217036913825507900367472450297283852714600325205523440407434078415746501622405243078872304264286969555023999022091989894280923986067219998671551245962343358339204059107721624720834159884232164104340573950444918307390537999600595779628581854669295290949825061783108996182984927177566097297275331799497206704659075656871141021727615112923904836904095049848240993630947602362917367920145228934823989332052190860997093381288091656957480737943255679681950232632019750664355778604763995819139731617034652282881091892685553328682971288804143749831196241552210264089256065644241396223556749735370531392355966910519877286596802937225435218105770506637630994641228691775906445099015169568374128133579581021702682722806843694598404636238794618688635659261437566745685965972256315040825538666013472731292297124101162072708007780599180095517522867578653642011597100474870190171177497172641555337202468108360658671954132188273888592575960041152837510530545018299060990412680066417937321810677635897677033910563796296563530493310546552751460784719432506526078991581319340278930280271105142342903777123394502309559375752942113894631585614792301102963943253921728017689561056234357323594947573523926905413273071469238251521635328550980251693990578884478337306627238176153863197183463959870772215815943390355138172062969572271803594238598680416147280344233000635240536108188506310416377938842446427598547573654696601184464998071637387792010894314928664930301969096374866424122154634543778907437994529159520728217335250071214490541855511594554142273531735830856763707170330726693994684321449040430199120495765184413865629202586089311781372366578826962635141311840279861869047374071101923935319770973905794620457287776306249612229990033703061313172170542524634557593465347347623001397659552945265912118552776998859666007516969106520153417752896121877205453991183869451505364509324373753799612065679766321442442271195286552092652847831597167429172091371284376250748144280298158469964551689094499711142659196454894810523419374216545541803121756499425383775332149801209576243812836048649410679568140426526271570013333118589791240856040528756698594060087914248491807326019765194726846880446522542807875664329125271347930239925233233601751542061958839295533812807786133923164051747368532561810742868903126937258284594789621654870773841716960780391283234592952487395676995658721052019704023907769490571196168167397536435169542557746405644354432481495476562663684968395945727236035110056331979727924430606338405227597081426498719507051523969749651539973050429003181418180865989568031534983402898435984309636501397433606504447009818767214895098439314901938425355968765033115152500659136539397448007251134671899752708380181853056553119115126694950631494599637158390228245202345622191326755055902927315790129670770386739688107482182545328355800787127957258955628929223978971321433010735319170517662040348017427692774195804591183642277542296716762112229772537860068004877936406759654141298297332250917742978809200255194677766174639669345888023334934269187797544370698469539516047136365629757534964445997602402606602162546914236477362363472919807341486793189826579105274544993418397268641911718215863636840183842042535871612841636699497166227444403518175193745662935050933992585329958982016131396796324844530030007458417078644775149276115944469398885615099659634650224354334701223067053593509048061642937331475114209883273209504773175325297997699209535896007569094075057329515979791436471703652490135498989285020979944934499114240456827163708344178472001642973454050283360698475003768700579108389917107763464773674052765383631070012996264314761725980207071450922058462469338982897727471279060020972772144907861919965767887652782187310433158574053687789382415631169979780996606822829047325336226677040577023539377905987002320439994377401978685052654309580130985827541435070024604009515161788494309863282084544248979973909654249754713952545681595604416259647129718281169689737831969015108653714674738346572074008290800847626187468979195170471767478578995863892358234486669061064771665227624440131218153904744050383189754698950499931064320911519467433902234347705782147720858842124432684445401475820622480224561565482995966342188023110681438638790920590839794888477656352594019517740865343163593252804727281816699339586864701485593843910258808428033555059948762038169110079727410598471712971757666614743245374219290978940605644413104563168590335956853403514201994743978344078256230064437221006613027329744538814533910722062524556563455136166126431615488688801215388638889778949921482858347701435177389544670714531700842357332957787468605507799250604037521070592416290913033594400976587823571925524912459978701531222898341260022761624538668246440589248155381901850555390544089374985257488833402007085312923783307620533673336655197253639611539722771772738292770900804397733740106814712287421701740033808492026719130556823916245685989154512022689681017600961277194545377157797241838871143748830581875783886958936020850489291844177221642498661024884260938829295227077604965234227925852385059431090942931170582344803431964778625467828028961061734065646815748193054965502979390107916642016082575502491300701190642146542921834756380802125791486097815248764116090216584754387004463752639041400828538169321362554400298394989772176938109273236610506507507673447850607040894929023003111039839619758080430594688900254481883046010144652431570079635865761755986328928514046301493491465079954441870963504655027896733248061525526317621482775625979745008991399491254796617579472024483938652043978690405374499224263356618178442176270723530316477511523077139619973596970209191846767594447729144205155111405786541949889513280920975901514211274288928490832158767412397692292310723233441869513093791447751649225877592115968943772403239095201047904794086589336074347551532082547653709394638162564732856294878931832583910926765536525461320547776883610908980914555933405383084785499841096697334773872628851059791156748359153316804102433847184615004456677878756706878533351925949740269562375447996950807678943599905981712603737805241619768015135703711274217125634450406031007514187973937427293847493554063184018607857971755279042104830323267491132750939224684931690898097567703648827371275968935423953110728582499355998850818862095382290879344294582002828351349229215956887229753625720281956588313293001530198179873568881579946972849871991614407639804614722979221703939737372815506998644723885816561881215978278616495150320751887156120940632602270240668316380179257661370190254004709256990716828845787473671158686133254774178411314578099044474952498876600782198611718602581671377189809004649178014739882403346976550099469118515221987240309887778361640125701991200180319461087008138636400811875811881403407114855208894122738705013807259121654850311299619882030520331456520053949547726342220577148043460982970042064264989184697838650500951107524398462372911697200799256541248042970665055669094545453527215152480277778318201003489640579049536548364088357281665287303150899731658597670428018224634370600066554518265258884979625395567556407040325558136430571520258330280281747949656223176588401434500591964540198038016235018093962130537203101326694788117993576195240485536887659791894892102202372521334001185867644413970352072297298454042396695141698562902712584077702316400504354351433529767772202495585999127796655726011206009582713191926904471709473453437645867361856264330081820100353207453500823274147185002139068092956683171171325989630457304715895266791534798096353720013666006291390381672539834654052588820667809762246698356089018206656845235812314638850112029048677451337648617366261951572325490430014599472399534570658290041468063458213547540376045856551084813666884127480944447529330180604595773269289595726636208014488177292095400431039021574982369426184452444331596095446642376647227610360204769885079109258508331843898664278406593680915148170101513090394275505036693560197941902507759591539656763579438761233936366013406914504420358049306990121328401409096299419204015290657166634584261005365378861125621765933708376719076489171350832153608877464990000963410358126325954994002112423274319156422628500975694281370183385236721395133955540226728922122789628870539832609493258485447995250256275710023236176530278365228366023296861061474458406766943544148718804876421243173239572609447065716144246377023708035277131396262601389210368459084550277409731364487331948808661456742657105531789614226375676487572818093454973262516128347115660240227141453383407653812562809543631885847057818821102886790233334324765918673773442269371291715766177756807061466253880847894809495733137955398496365183808116217507739418218568769327341000782142786457634656811132006198535441406611509124564430390525411706515972728069290010221507999464666792600059967942525056426897000247578472964387347309482151134649753540836429437482075300312438319731934891204723789721150553130895601511775025686006959628378431944353972478572995333992850010298740754978380652454631442295343753717780152329443504068113829794575431673684813255456623697235737073031086347263976624531911045626302065420233720541130033743250672397816965475147388299213802564773381129558815035088632130074111536159470026389977467624076429774358600046397561079532210081706493003460609265630442536417506695489360461617858065784305595793505294503153104064138142291422400576147370457643125976325337933111576304233203521026629941250086341876928488467066499529555041986300332441088260124287738208617328926579123337260765550416089935810191716834873278820898143551922753802557521506406535831458391253539483741627664789730565717467199455943669249061233028580104880378776049183512252350219538637068410731833071568926238692197153485145296267751186693581905815133876529868108686968004414581221885329173374979288585597368655474838549381208539328741875213800713944943227050647162723624725301364306873378011855724594555312154078601812496541383412819160142759977035029773530682811722645166891595616692610012597691367460021717399787301180495696783942047126531262447348822393326950688694781668287592336218286018996095909316212118219605279987272493097373622865151013263329782186701522808499154668489780524083148995753630946011599287983262961612437575103852928045604362070557785384547984936431622754508254733274480136457708908918397959513003735686659201672104310121319242399041024275675915473621366947179501247524024591956202707314238982778497058759425761907779008486847812124420614300494588609723452825460631542512539747032106601981581160913676485669194159036972350544819988769373623257051922339805362059695436665371794405832684077685554654064916458798623503233687726483597297304680491451514374270704164789837278062266720451964095718821921456517830960554568659250825604500269662832113700602860534329728801737092237374966685253704769775188420809585494995658006978011927666813728554234173823242302959106534713373720332466050414529412017290259555137047852657759913964056358648677593934441865791632906586666968111884829540092196694097020758617761148731079115876412309547675455043110123941822394491381512744252135605681505376409526360686884349276844579674236737778065907295600606177518291561826536991047406749973877984455206749375820726510030391090713036130279760550315953683453743104999902522082895946789598127163883655678648376136558204259866835688569049439925150288425775656927647477349572022613041020917741112599055471638777127657551708573121902891634771707227997884128482971660210763056481067170484896589448748531257473148225319548129609313928135815440011433482118894056358700534969352411236172634368139446226991667222946592052883872324364302255679985769760312729498365824675718401290573408739987153420229300764281837848886074077008742994458607745052092754880929055253256464440728089290632906020504141763396902580245514745865070889158250130826670350037367997903063021133521996417294848029471271510463299877044808370861783721984499889684557076568321806228203301092481873406073357007391438670678540235856711458421197526008315000942925346370681253266825164361531172852867315907165309559657526342941986092514315130675668064602410496736746368643501269310892322142866995564795720014556878656543909896659675071564904235084203557031807414203712858577031085095761772929778264173804127177070632661028525979425514556152968113179099244975816522621342536257506584785516462546204527568153402172455224312720843907944824237475205582146458625085121939732253104760537579487878291461151256811710674694625198260190375678472513280578983089302967188432985738243203300703626668459150128657130783542689711275487998045435855987526375285305163196134466523616411844955327602974758382790346888974155658575891080690414160662463931834876144168166889506132114323711867391985531945833729017805109355188540967053964108782614115208212290017786311243933441961187780682000913445750221370270755980386378136988648308169607313512155025181914977732676334330620984375035438556329809163071880307573574182555593560127624092066635528004607163486398199200418518464200883683331120139543425247694201385035152366991469412816801943027193957564414400851697435653995618258471996481728307967877064177224343512131700511626404322577146469948070529244585863950416191469231176290641723157280266744789134140535643113990833073451984499424865745920846916749248356764234374468431245029005756499052036757092188202951314915739719542347423118964877678889546758233448858694076731239676758740818066092871841521349858517857507730136583935997794464905425625166759361840510356012353985110060422464073293911504843701947733038819993751384043563806503477439293958511402746865356013898028790276378999052966620756390419458610850115932069087431133219771356612196190660204860859904316013890841911144168423755956721447002894245849314276929257425418968051204322126764010591929326739331547383569305583152249058879442586250545458859449850085220470884043267966509503105929879680452920100372198844285605090036303243143979317379748524273762871298883377989358758495838902399927327388214979878713958201398845379115384608521412246685079547160926528120921005970281757426313899369893934563781476862363873360306109945204805721824173143366922547560004800609891127794644588072231531161413173497835736025559829444054783100808260407307351206249671681714022525934447376570561381580728176001069355355810988673286392226168241298576830308808576191404567351237024485264611831530530537093620153302203906475746068396112616530359228949629851065133171691035000600918707239356618323063216228844009858539207980772330991682099265822344356474135814686362464603736126957739732992497890504222680027334162347394321545564130196586937497630274621764364046546051455217355798204096005403661101489258091237960584764707348886516975559652376499598629502819028765431761118270417772955699726518926480525468137100097427675924802395082390673604164622822368948608042668982592590155537106219706127268960970690320452365450365778518912019929701132830802852351501289019446869745728993979620707585060564983280629240221923102382279308271945137128391905747983009875913142420965295713659309726813377645739598719090874533338477820953778030311724582021386320740604868000074517024393697692901568000596293893817379652897897169557719515950740405418604428090754547716039648447063803306918535431852708070311877893806918053824720511268359742878151249647603379375726142016701793208422814050495687002145065638763792358202720235654230751660640279179399073539154851580429645503566700904763194855803395693502390771035033610975601284085601419027926924508751826099796107213170223044760862698074534441853123076068242712084876011989720201392314963637386153834136756783487078398718421965050526669637528883851221301616236643407075133615114598913757350179829848399975833817587782841297420416340780400195810222050305636222622612680260660599142757957941097269148625842670730458544863264524363775915958473602540795315180999212542307388421570387128664378811855180116473130862840102007119528273754646572908862392979362014424059832145615853507601611685202790926924220758092256294352968085035992141425947802769195741796353873546355899758987111279727924675149035550676446224799976627306027168898248567289537269652031547572497691513929341909322053831766457819700281105070420914338479414733042384376286919106585386704260204494281165679323541419161710945242577701924679916282798075361386758204635889795522168815648139228397968793166891184379703619045954822956881925635770033214213868800378173790866244156185638170285238015686175047944342927019578929189345317007967641818662274843260625543154844943577601514061928952536538960185887194785761766573083834372492350972257302143423375618115747237928511360911645102948143419584608150788060142682847690578791848258627760615071192648214490703598737978745036404781693542289066169388297769533809804355143463478784716724176080692319948417839804217041413712986721213797921665548416598464507774232726562779275026340126817763872131271869094102958836460878772407585853081598542502077557103540252466013452737012661564006206595980657830974919267775978716823899878093117859011504089202614265413164584844288630128741814860729915277473726823004705477295759415024789506154493360054921156005828954966560393790276499840134249427699039387394525897813002130994118756754945254547319759052013675850889276558123223725041993176260389940296732411758650369761813827824329016005896436576781378686393557080207772575330913607234482300277279160806935877004787894010791307937977413496639544508048846771329989228925225506308915909088347404187222015144043529314760112444784196580815524614586519108457258150282745542570705802110721159428182804193530835391269482833540400304040226553918353583719785534755094713246133413372743532389962318477257871131694566862934479301080331008489569185299331411624109482614073030526631028325726625142619593305568878162437599686937858282462637006743640889636817335812987639186827860900433167357236238427572620955704783981537764054094368167383099641659592047578174977237695707129192875935919935794368498487361419431017551252286369057170843193342973429535673912968478568510945430153996338810080977501021806918723466401584447678672113436812053248341761228981484738058954311005030895515569597588173114904186736370527347638341052182481024985660004611137842406595002651867045443109025716980509375543052883724922744864492540780470415264015261194628511086114043882354474808163471195967823500847352775383700334825915013002084731780814372904186188484354652605776741025992400635006111300950650334653557663541707207919865523567094721982000906923872034449190102595692811362717654384556726057764664305213924319121294210561739299430986799163127770624943723495128228904899059855118916768151371704259154046440989668369349335222304541053426497610453133021415036424770349532868984272200108842458647428429741474015613348530626562526350027054850704778916508178527813474450199915105187003958277910561731104664300522432286711962285086070969847624550940879384842192757234533344744303869782649486748083515896209375103073610493020567574807981583277847463700141983108915929440974609116504528870503669406149372938581154860463937338687544517491573578099993667439990810890023313719572642922654767163372826336932807703665122275243508439609950588647009452524603556322554235497293363133570946558359215318715766463302236334610645041917824749424133129784358657346689014837320578253550815965200265545034489542906071057827479951053355610215901845061823859744873506051789519988952317236078553780264168842464462192221225592845400187969795410172416669180500744644161599480793948800310589522701639979726639404112874648579956894021785415590019596896713219361273031420093848648994280332190809043188569110389819476673832293105780954561977529135800195450948244483624695460705594513757555543860473162952317509089630503277402549573555845900875505314062129733022022529129886396289067711790439658436915317983855223113616330119527314971763874480621922876506077113577615124280759100399146755461283939060066033506910296368075655772549684459049405072426783810016118755324083383837000514944712754016114829889321759650851205568030475087907481052728929404923079729540941164275862598330118841007820020368287125064292955876504626757735605469511130545186257979945115587428014612852469172049520082011117635310269300260789710000816766260328449749694515820911618295834476729300847868222895883664437555834764628327753313009677932298979235542567090759280830981651259773687928541435232059276589152628300313415728704715608947777110064070044223469491117653165162585520166408557614026393950073485616851604924995028574921641996311139336232274420123819958625096139261503024957392394441420604618735717522915413748702629927788327683241592455055016153266754256077894795013250620396458730085419339324781246379560382263792566723991469812815744522112946637248077793562451880940636576242346483622236088176306075114051467466784038117700746383718909385184940974614405601654994752010495821906594914789509804412058054624787166739610916535474202366492354250801447190003799005987275907412525035766808377613827493639539693417396132263490101974738588343039363979202471466586478757629521864981150654511348219630728953210857514710723546049440255310690907726865739545608830879241944865642113233886022717762854771454613593138443591554654652346419559711703083869226516438639279065803461341348983435261453187601207196443258349316966673999960037824046574415188852174563737749174441013703828423495481729164321136442360405932419935057026511843525030094908785034448123007596832792682530203122760026993700991759486836053904497553154900615189311234192515380570642413119101941426780446049174029047132084719722842105245574432612405162557989104958582252405181661417312796609206958719110317914719377095997749320271353412326203320865331050482194530119902473357479299466762243296535493196472250676998902037969237898636127368429635768282246148264576429302374410106047005478000993105479014825112982491202317412293791450227188616152572330664142305685922728688213380992931670738547313974696176554098219113396578016432550073147582349675018187182261873157724385908565160719000292946451941148411559074459603365291161729556682298199822595755419258788590690835090986826848123388228881028901713647748218979898914191765537508758876833253220075528505813564350105847400782626625018029181405834391369351544661630853172383539328720129745034190793152470797970967305271586833686547772748836593288758699394132273393682534382954485752599041796680030506613730772098756841470618861457992686994114989413600753230220521402436212068458831656087211501883862060258208414216189958466746142977128769542703484419549579291460927074891865761467499469405354331248718624835058566060331436750510823718287489581694767940666895416446935228692686438085028757683907772047827239572226658520219535262377758164971538589962158865640160847986855360745183651613705656013832406131682409646340054242456812660250029654045503144322888127672747982635802190865745626065552027059746845472488127365264198663654873321180017239505328101601603456031711214886179752767629977268351040924491709411569751857327088083468492264087873377898702460106632701513975065692619950216534008202457683937970024334639449154616405729030684141937766905827784073714242364176985369694144359266896425711625530009855201933327694646553080483594928850298396586453346490175692652800785956918205061900989041998044001171958086685733470842016304723727310008591152995232435439438427735855904963138961210784004873833156786940050281226052845722057570294852137350577469946658741191712544665903386759705599944167777952430672437347164502014986727797113370285211856836716988269762871581114399169560828301569243395156589965468287271013541758569630451896119985328973318317763938491611179994457081247590743830937181199025446678297973559386892738739487832597974935686129658125460380825897444089567524862543764431395986039615266023658869803400156700688104701673120850132949845035263075412773520091792270205361052062649855590220314938106761286085367369465726010959787734806369095625041443294727163890336930922990484795511262975170039268564525367820466223899115096873395721611605197911687809751368101186023439408824485838363666534160136464242402345710629855439167978096549197139060068049697492307916047458071132514543830472881969045830978304540118388201758592897503411175309192175079589429170448808583501837034814840477151417247589185237200696856963895640924925115916773298134119883349635127465678566127626319545293072419373634702095352565309044406061426583147887124183280991350601095787070830598472230241383815173909678007133663896590887312810470116845780759245680761016126091210953177197309015534741640842867432366047547684195830028922345493178994462767774275653780536554846223568288203592156730406148521597319797633304765121490332109712287668638888153423943813663967259870652950249479000590379645473973029462632882234563264316981810769574721318669810083475366624278167056248292197739299274428779684362363231059548569801265886396676963934720330062458493357991956746635503312518779514900266010072752948689647642838400593765374602109383282905791561494401545824997539999559385494341695476477842580959604839534421723984750036568805499670151278944166447059618297932683162611728667372683740758390597713100029426836293487244747628946653087164829526245475194930880259733197163677724923544613068451418449554864691428857363135101193393745668606280741573776851683690419956612699720179780341713207470364314922658574641962326661049619512404144737949538236971218173618381602193026123267564062911943823634136194627644327338416820816961921405472202586983502590703256089326792560800055533010124858386785306037159301865729062495129154646150723995238338220076526930663225650746543353687258802101191598495819268096557204231924819318421468753628054039448419396031809937114738494735778096662690048496607949724502589330596846944788532292694016235406215434122307312507375532279345075763478641832970841963208279883368165973158570138223237340598738253716950192418229606955805958775933966784235370116203012082910012100811730735710198759626400799824292735165341728706395852377875179141008812488001113669378568674685076830254488291383127574433684808749797834237138654749158903508717524804186488582235125961172862811254490060874786582861649533766414006041853193106713710978203514519731198906981513312966859483370507791012445024264141645195209695393275235756274458980860351592687388816322212500485550404724482791561383406412923607549570241130063211264842026544224875194773892293833882457656871439614308458067722480841305061262237769911763049374150202248591379901347725806465444683259472624928397265462403167547730548867744289868563678818803650527298494175931904497417958715941691212680513394569800165527670017277840970220952985135646129887784244229862561070906970060939025626254415319668304143789947949293777622002355976386709419462393967619836014486230752275266433463090087777033860234408101812151991698679991702902949957305974013346028041818237521810405803325163495012873986017394368266190853718516163802319801120964865724192501716904801745237244368520154591354476105743362480169412153798765822334309443588469459392440561121983053856762985322812287393651787890375636162120183559275194786340551995152987521011719901963506205910520257551924418893791667081278482314939838683857048899787165165385573100237610786032688071181448596682440433917142264379394041661443720415399687814434179587957657451143217736070458014642034678357144502421138496062906632873220768933825817837285657318397105405014937625345750525943441652047193928128992135348865078007938166082581339520973456251993390599239015306820088457079974320695316776435282179141843098003816709923404888504785544947679822654681752250426946557138023717299666712982162474535665188998887594303009516961052689964492734766631469895195377224158426128106645141629685072832186027448262094267472971888641791835452772518547741195891556607145632726399922240523509747540550895861773795869050148057865881188398206012778569174535635136061787586742456120386400704455683117445103158766713403122733868268527200677593969070379598489232418280302971194908676608845596245449305438378094582310523694974269225438598088000498373178628740189758414311097072430199277484900879756399026363499704949198789650072066055672171107579808570084687823594477959113460015336738999790744127434001468361979988851314165076197574023631288864611251006906311883023281415350155663869947977204821583409938308398926946345446064419602977827919914368184560889982020263631124057768226088793345126707104456380038681624552611462238611515224688960040175854585153431787613288483846929243293232565625943757882687486609227420685710734506695268792510756360857737766306803637360426641219822228791508705162341996205032776818076961195983149152619699210979109852608284961139463188166936349633022156735314500622691704889762277701545240562215041278364390602428810626613977664002765796487257901871094917302623588520870799836303961942600781365942379565302820374717208552372860392728182499259625982651094198547851388774672412772890597919848903547325848084061901674671788320483948949086784314600838253564866061104341326789728941389005293442310341263844168947837831575535863823130507124948638748638217032607308003279333758643308179186821457539592373032995822914700262148827103187895139410142007724316209197227958338992724851128111677125537379758816096467962483705879930507891378370616055107942267974035952336363660918402718842545470696079250021954519612759330503443111250739571636555670643724225796865832346504286600637122657505784019034388434365436060158818204785404764721177968518242664053850331381870934218669842218872921839356327179254330441271633051707344989523072574709910847821071978335553336384255090811721820614693377425087710829961439674577444974869817101498072066547059654739857472579531627305603092509508645663105909121979911409381340153393309528620717305416223528907043462664567475255640642154057501811912279034105333132205129988483935950640335117298290699883609316138882966413825250588640270271036680446119098838039390143301027002864102879121592691554994904080010009495648660035654371849968681512075332668840606706976364236976383857527103484979496940475341874305642161747633373702446065999974454951057006864360256784031485870564010109468136518293148912651233969731826260643078890770314079893512885624671169603075071928557865260094544856771779285186058183988673277271199138984040526338309088838756642714296133320144738609993950224933741354704776208209498633245506679390101795222078062375673890721783153214147527304781953903123137043373214689781975249465555037315906989611285780735154957353791156825282177612839769297731745084359939196852686939452101529216445473029419388455671801745743470662580765493969889704976604893931059479875490866751514616639762980388732695696560236707354144670840034779060460819047625831839578383642269391541272208669697094638962277885186609971598238227071944555657651482666727867680585429142237111456262834422357626081653555948551740726095787520095677183808264503548999015985648300488751762113218881596698587143053507391728528968703966943617164742550518846897581190575423652411200302417258239989484401348868684105152283222518503976630511914161917297691636256404901588864684783412833490506125064632151443141743573464575076929859568528787711204050268871999725782950569055495011999604421040105692338998630269311920845131517810249293565424855211397559087934948539072236170273622495478037174452821727754796245243466915011085986122723597316946521657785986553229814537760891713981786896875403379255487753766379688991731102707658194805373080900994983669333203861132991098433932389843046720500228054117986859432231951891549048849033514993041885088125523499007894580592213691941361450904071058803635530163985981443289011856812840400752493669007451818895101240505410811759780788268170795361245813253600286399518057958932266492740045848172782727834908278144624955952429666413680423872910828278330795821179657123175808324720106621977763584956048328452234249938860517571079113409102114182861155885200503865288966622771514373370246287625089308117611178935631021794397020898900273884449042344507494001368439054570186678798289144966228337719044550941300600270364043124872084878369860204635265542735169399846288782757714873252622152250045323020389222904938996117092698006151104759655369476745906205201795623133851893043664754149341385789217484068551155334638419553038660979687248562815809035497298963986543304079787684263621515125168929665466356867198241988004322602905596755642616798665490507079014385652190908197148227120153717914670473831432123741174915106038290981990062884851033239066123141567448936234906968184182155314517618832859247296356422895233580606803537276260435256003479231874617045807272822583617270576275665308175789916828297762259897378065428253282075986212517027945498950282491951215666032597519925278868366809215231127930887921518920345200760384563466842566597190988283002622941878827206623150873272065579939310873007896927392854551771491766341433505488913762527635044565904396059376861363720349827645115049356222572716212202612502771582537653258350057367466043938165184744407608673221222895882018435961773530968615841602590024626939631559691851884254262595189137470052881745507556559473593438262364806121112092649212537739394107623554692832042108189628624841985995189178959806379837346282512521615228159948911500096583569361470123119433148929491283953154345316716289191334972904822702907156891197017718280629075033880162163807928533826864260239429208264081980537279550610018216750575761076976562620470927078170897441376744027202020464013410988285093804995784687692006137271092829084881477618343997595289627457807225885491206050874070779593516435540672732947557088386523041540950797836875166248355805127631085746078282377409311447817012390284223023485284679138386079562059906186975353219126557175064095974889565656356805824985115273398720726811240785284867317754708322186006684434918363796190375405535231981211240810668970487116878350193819402261173799669440152021248839569894492840039098687583126825379791051911043494270680389189608160714157737657153033722510194446876035569278185956872176174746145519775314414769966437512420872894458693943061286603059837100957031005017295449129005706317850198137867803932702592197441416363830514940889530871019160967107062196398689197101720196930241566357762739204256096479112908469702513089632717081804047301997993414042798742311736981824744581485816787526291037857199110105413237578497840777677043141608639520479262984613196002188259632852896182663028385371066377614705997747463640344370678399209709915729272203724662839986825661134244899415760940816410930936110231977839192537679903336929533391765066612684833213404144534237109324800332304725515961849102182976177294848572332042301426066158028883852963711868121157258238087168702249972736567721401931845662089638107315734485493756487746893535166908417230620566206500976398167639935504326207905688020342169287973220459890873381047328188181971465034940493341903989912738301350808882990377710117778718059699262095318498495603909892938104540079200542385467088857376499583685452142083988206509428134179245724522816588076698009111409534934477435881705984754538241459940457596719181610474476871110038183086192713720210752899059252964113881235089128744807110347966110023669521821655716045532905709000927136149710748799479173654595502197028456721265045336542411608595789135379239891795491394720623706233644030691537921346222188972532466177663759411659496797242236480595044409261929856366079745546065041440204487781268448666771560869301649789295248733456001369715539237278568896204720285456593643489608570037061428928038692940895141270301036601800630043009628802725161567785924029161007022231173315729868314095421536404121984460649932316013315597815849262761807835809430037085152000299600822595349381897940010168767177207882040186539809757552814976885050462033186198198592859130558188841030313776183986415548253262832437854040440044517975924530591293274166955030131976975643124150796423760709318925586887860942103780045068825044536988376990610253974917144181745844457561598833284466256634706759140077877160913717717193288319364961906237217760463197322677095363990017590794619741465168618788777606529788250980202439929907402623916550820833912381014269118428354532015109013200152521486296952511713379902570491384207060127290789115862928138762172253218508968964026185034440011800862993357197430443429286970783787526356146416103180803929997880076307176150190086707480213497642413954073403509933580676303657348842311355203904809660825796817213970157413135413859647627753554049779507829198769247494403904316169524211974170502079259620613939209466979507683627481984778415182949027586626560207705873617342871130539484184025445117384656573019489460173449873395923366622432600561399445490000799012919731036613425617325865756747537182637376496156696092401495892999916073284805340094985038606836026468830262058713710209376166132470573924911530731779740903128459091137896963335143399224528433877740116547875635834687161931642731713320619093102279336078761152272193144568643832317924052864926977829979397749528154309438447787286559947736328460857483744051232937982734937458174054820004424657372956933249630580372993986167762446098828604629404184690600756564512560862881199972781479610750008242356902560338081310105632241471791542908544554595344543207226129754831090178824543324479327111117724105640328679349746805604947730205177202567975605581288720681340734218798529313520228249891357497100176650063506892611572115821533983028533183562085761353979361170797347695515087268351888472161068395875750784212780172204823743331904498382324921354424071557938445068035118523428972635169476567641221319457614303325631597128636847785485597210244699555737024465378119750607975243958892477244074489228752595750044485796519984838193917578564811458393557445573949397888313507214480074557059120170336812544172492251565401450993986446701239638239838092700126287907508326808327617001608869600918116478657366133707966739692631250610317401197766240612237668702978392790389725059364752564004128180742701984238884868431575138945831525157709142918462201144351737734521586838606920329633264988731865764148736301653777505107240410111889683996558943997263806031656050875495078440326233636792307780185520170169233907824951929270472966507418748760426024856512594619742483354944877990644886395385052884595853415659862712674313734668874016965409030842225559173426918151123991685170102714120555568354712758784525602435697592611020426776673324471317568682608832995990277668268879108875365952146725517659924191844479769721478608185079716668363584989640868690801920901065088125661555779204023064581702277900837266580892870557712131544405222584263327715040359395523712996691356347523409014231939140701283090989432861845793320189426734898629177578188746009960377213944740227046530227375613536817093404967569239880102986701944293483537413801645731835653054407010092699711388602258624751183124642450507846311770147386578199328567837928571344488386698086041534163199335849900807970641301374381196970282306818136477756847985036991457512425634832172405219252500237129452670991743619472375591058766021883457352778025698665035993430199722828455526162182653864441248372008815237360635407184679998803333667226677525617043343550199689148109143262069811530840142324371416564467454788189369091694678364646574786612106100650165333529696592803951498149351457539783637191962036154662920616031944944642929773111172559843580568094161742655072111945022159748679209567984857229589943285338570008025172481636263809882632255514585486418086496613892964768764350150355731980789068890505626714727580603809496699958229892203153011934368486326373035194677511119569514431135826908481176479301106879295682816412479592635048150791811455249938103354376141666368018140363562169755624681710398183215428372425794690458146673701888455936955899266382994380304454281764364453412164310476458969608199054312123334896867591178920068239687478218465012211962977752673956616604492959423366987932680358726951580658397588812217413244122724445942658631498626206900517393142289841531665232981812027731770961681925630386159772015545054718771846758898835895607049431326908171501155550061229515189712330380993017261801970527997801878095651410171960306555481030929444340122105976474070670499399006740898052982743642380218428323092566732938863625816359256823797269875214732457301012313647232874052996666273998315281926504608925548589302117979040473344917607391668458094530029429018801167976701176429885982699024958301218955874689811734415746122647297876253338386371578238365600183915269915248098609350782672655008122054002332020007767892187173097597570013133815856003143167064761140876056650814041997114555743274295535115274903921613936775149454088585311777637450567811614420944076255611194411469801633911104314187104865116180873376012485930544314766516492774596021039064425601582294682845720363607740078408990578733153635697323606435337658566315810811877562921637532796742653112210723253715950012690087685481675043838652821282809921373593108310502547108766149043038619488485422184803982272167862631527611550285238625177454956702259219440408573042273068663783622951693242091473111394069702309828019822474157704655386047438007223734299094343802467059373920175860043641576844459914893380420427305071335301349125405036287324162621249277603352225075452843604073460068469344877505504539356056744122895327062041872482986212779822207643533375614339381253011973036403853927882644247540826372808508533839918796664827694536926605497461462530341432972427452073607745545761857536014257965739283118598647422550067851729128103272609717444806151339548678569360372523611560098089091173522839345567852945089961386303330663005140989209493109545657610758478008057970267979114982464539141972302518242566654818929421196327911900424691768655046859583643661161568365100607427207025837352667742984953261795271690163822743806354756093987282065109756986764076317595868442272337906608375983353231553680287944426907933763732960393344230488133897583505743447859058758398803764540737212004040905972784015359296584155358165708820466725724502544786328354457127587445315832984165957789967543219027195577464813465304624127262248913917196038198530923153071717275072506725093091718246180883811339005306923947248218971957751227371356849172489006576033098295921919252843248290169804499609263745209059969950549397373608943143376495848529084336160797955444180111489038801579022300484734919367863187410765188449665972415309086730057970487762018425725130587564124406179871242698053078331923590654306948896586349850464205264837936864290658645738774125686967578564971766676966244082977858446348971502316057039779285202144385187493494879908410405085393602535326320822442793862168215750504123076122835565085086672258080372604464622242425260232691309414829563817510522102663505136806602332632384247079963890810843955217228481471520154745372122638733489127165940841179625610033652252560302650672749548036519223494533964610004646193575323382850789114537802305379601929770357531834727388626092039994893715294034304836708404791201978134161726868269323305720116298442030117625870373208871864403457991892039263787287945850334951625459789278050640706496956411422529293634781418412670627036762802997407725894231432534295415708914286551557891221628980740615653140459132214529500786971611114532422222956220606817542952747036116526641263879161902449870397678654234710306946661258245504849801989153679152701782006198816475400966125138981392915550637281123750941117853322804969191235563832331166807952129739427908033875987551695010299591239468266844260040419493402223346119717270811238714858954378040609061221673140458894529343692915151902974313245130750097675831259530447427505608549677692690802345960274980285687107638360280965226038001775722404039138713721722096913494771902037524112699777087866922097709311535005092395788609691469622845130358096762044586374489571115555630660810215737279750524115170182994440949214407862551474400847895372792854624755355181654804094467743518341689123313088662566683734388701695258687277578757321194075987972466277115021979147096073999311430004559833716315457404466749085127771331266814232293066420856953520409484953387552501587989032736726440695988879268646251149421935205715539520806202901560468475264240786750115376954710581710640155965358549220584483192053989999189762830257962254604650247277573507983758089979559020012110058902950989547410426156200486108859846511744678126146147652806060261938655328002846196557887060166926488185449078583746715649502469699388096851424513961709487584655176726726466798369491746676554005751495160886238249958478298919967794549227892689653694175633643484693400816751048768761591715245028337275442405955588210101911256473716945256928263083330062766995629595975140263059283626890091431621832523610860196024233605235782634066235417741586383716245042321113331830550275738257508932630270633620680955718310265995825380072454060290581237475379722882676954192858765025993104341545302946038442612636827707893495319868966314915362712699667296411672302481325490588069137832897093211558271090642788096911509813586799670029803513491178014734269579617570675238280074271770939911935216043683432254839077457996128575859002843330425042483649328413551726503657953275253455426481013584741709589942829982021597281335072571792793375918116746823463637039224762627568315857548146245821534164811144379567326052727663729706544963351069642307234254806361700952372088917211517072745782715337468768194395420682933309044080745321974922751857348305032485573344907479065044335700573882681023815917849128596864043808134711355562388895941020257983819590906839137721766926891076134830761489789422757708196486841011437369955130908467732746259788316218260134940568064825100169402395171082297912848970248527074199324909475755875724284119252298321140435072834019108908429793712936270566658777465853472335835984655937421396668470334528696474272551067070311139312396665560347816904091143110293691069604529253786174642045354332954306624644599839146961201845812204105266639755957849918671632593528176067431064815939647522682222013874750407777799724529017922983083371806452288030196246155583580903296139738139464045826037686403308443062070470540568907738509748420021171381794064869531608843736240432690355589181864813916255263000473326399095383202710771277538121797305612565846886491912003843228445153832915612001579994109918302273955072238498603630229656443372684318991734170918282064791646250756595461876088557100129982648196660433931129121268168276666370209137431469523155115685899169782075221915561375102656670791841892089394215208159654694454833919596924239052750985210187651429198087541091863570882751198620370759422383191455635651317887374568450068588561011506565667266223897125098507173722572865152036282558719789337004901766621861557497324368222133910365357521670341404624259149871620823386959974177407438586074121196192988424094387859174813849555658770589237960594687214207673048043677826642397885810080190047851084062171281883293838207783821532124645740722450124153499009862926846082107933415509961915585492104036692213490977976534170502262705808426967182688843333660490575396928177169091169620954614959779178504191603990165642765972067991393632330553408706742640008880974692604279989424581397286009801446420295904251842602702874586688766110633772415739988032847918286868706894625010468427515384822611099365441292988443017273128709457527479378643496016962139845854217414851348098121266588765859150561161471802805065294775548609205089963344572225640658761161482569197330074144139964254278633856971471067696914482186680798527967844030536599218253170973822911305048477053262531592700122418833162302519735949153026725498077486896589074310182191420812244091654711806890430701093265593768621323075520860416158752396941346488290898972493983143568584910239561942408466649797650412452722247297459679780941309393184954878395596864455207408058457301448857011158684297044136424303775242342151450559374713788372368123678247849538778234764434440180020054093407050483059223294656162968562978258796532237741003175441750474984436708383413318967684565611109884437511162210784853020304182057182490900963362587953218564618335985321991348111404393877148293274463417148427619352553823332126865613316743691748274689781234615130178742986478497253115505137570178266186709996938507486493973473536576907517380737742813372893041215680549339656282488156006560644133741275280375558789410111458897334186105082332603437604447736225653068654980686598308809306105942178003491146706323623721393340883450386304709514996400637978574409232852221982399425779516372972472124929413213653967608813612727963623687045919985858989623069187516767266958929329458348094272526574896929936235502423109051142096814023347253206565581467374401401096499243943459470286187224387522373362292000042317896260367055968088346775783210242432281302672386310784829836581249765519455984259617254780047108840062118984049889910591225129232664229210060070716409107339400812353146327857871863205551702469852415062064136820484746787984299347028939097019609731517501304220552709933071509322487567230869278696043893481732033485246667277024779227201696939596672735987555204070571636865070801948793113973086523522883303485240261387122523038199878776961013950422729841069534972079451642190644252372720738839738466762500307072921437656317447883802948435511716215404449613954376943002172673952450699111640213002091239741792526231062477620009435396673268663611944082820731118588489611305095585074203744775586058130015080749723470238863569041128211040684892686751250434221956016752473062583121188952730757556852420750632244460675435876285840681625973398154550609370027528585023865518304490966745822817735761783102287038625987623607190744497655333970075836890641001524562493993929132849720887850526030844475247520060272265893282338491649464259483755032061656348428452022003240329942349538889930222270722703050316712999968920023676812838212095037914023780723781243279384998316524767185864530418108096692571981635372738069565529751060886847085486632842639432258866593881160411228895402790838279477060192907150134387777678362717381744481856611882737347399725974268227432210798177895698887524710109853276363729286253744934875281352349425624286834964663073968332517137500505477886312095986634724581944602291179571898515711035167383213094027750927077461264964231926965056931487214027843599921995706943667533945342513720382765857642843526183768627137152479527994732455560356431651859528705616128108714113792920827199760288964738217151472788794606930221158740007026100937041358568886703009851741327409309382360847128293314075975209024314566850921167899497519059049651844824296176912570513636749975645671958484051095176603886872030825639916086718446772193030183169103375314573160708868698125047045618875875575923630000988563686414810118837540928565180136934163043817379985640470752078067067065396273974838552850613419505121270491688497870683683496153238331108211720407552296154218674236197591733074424138884441688157531049611065906310896410813322552096337116248779663687296796631437004272280207371964484599305034548072585723908739059836192171622296901299898213444957382945025950216120875822961151643933265471881082392589982312939443786712992730846292737092016034036582973146025409365901374725029315505057616891305794851315336216869227501084087011486240962021977482588521395730948370115618400837075738904077649288930822265298447910160161475219706745158549889952506102990495058219439985039651383974245876385793009457228661589947351424698437000606708519471764726901607209806077783761484205436947029989551284721768842350183187311009750094237229425765031538871968521681868274597147583324961965166180565269722903452533539710547052821732004475599828069729606174909391680981312428242045457512493128391918160278712685346925266663652014997050254918970037742332296085392824523807515172343579332033384825498503278069298396764494752346108177345421266252994894540184523764441049731418641634672752058833826804914968953528691464101006631066517590014056360017702814271151538642368165779971139998015254048759265908437775043302849368217778793840339321665177520593586519426550306361073806528413022245509925437397690327569404573752564556870833456897373343134425405097763562059931786548776272557010485273090884352711522349908239210339104766746472101650340934131399915282336042835694411520112276862173701135536140762691089742978534036103292728517794858605808939960701910620884501815516290920634676015220940487318190824047683930330460333871981679640670960855714424365795314958607765443819174299025176293078062823225659979999900659931426845854635039620794800301641377514504172916909320162153574610609541452302452280799810365580343775588113387666173806399659430158634618794406822394056028701936846787793730318574289148184115321277263087550920065498543859522236566284477452362402655787447887375518679862349166915855720980331141398846189676527451668191510441683112826732770001520864709102998673378027333671348641566024963227394137643261824776063254486287179183413800404566918812204922350980837891686626234902641853729726451526847193303142795113390044611572914049523967514974403569913612408518306760644895566851820952132895912143694158326487038709150180195143360232583790535443906966310225080293873701292816285447412845639349065275978937136582727871017472710062917319072836504987650775663649706054740138795484765204760731272105995249614658525276857436239080681412716193959944912597430497461106358722997207579372133324437029596246655396585632694740539591040316793696124038603204210146924345420858258691736826545932376357515954229344972138658067150485573484744749713936547636203889712151986841929370940439668088247833678518381189240080300284219318539574818976325526033141179810782361230908979943089281735538487345112093514660014509939252806879260300844780266002120202698787813548159237521982454107005377241326230887913112690168762304189212617995479584091888619402362652154716070115335172570884474948618510010449316084950311969612568002570274525974856796915933562768494358304819689796486411358334819395353066057193167139902078718766751267777950130322663918941465859437304808448708618911498595810451528553518185890722245097245678981734520877152647773230583005770265010810894431455075333043079145047314039529603109245797423433694007879885359693224799770854899632741628667467706979989698011926253161454999773244271821250068251773937138199451928364865127850342114767320398582290922208975096812102550248165169799502526543830550633072872884648050370291644045336682818874539327752599160619495933761836081249494860877693771399845353301682695469150967984192963823497958262015841059237808726919054130482499677738347303532814447869968311159053237446902606990354739969948964250607236887294904271321703003878483643494564963749797049428297088139690758043308212863229687019946498477003418087056898700896988693433213052946142295770849811021014858677099471632877575924700241931067794536633725539090945701124344513860527077614675716669087539174599743143129618918709779254556905653689599022906155778871982098511216385033266202543882758128971134037945611462252537702639339386041147793744830584276102437835124997127603502800757445049009348956058578505935135230736985043652690616110604303569476412292617286589651649603026045014790632561940911580557305046292443134217237782847586740982558072837164802869724152559090776008231355799185632400750735964756163740875373213277926080071283558534995158907582295132228245943857721414381691010266743916374852203497845183190465796963279013065052607013580181733454127713267259903783415179928402264743975303472256998105078291505573349790297137931902594424779836770631597333888624450505445703560282445874201556299995838612501580668408245689976175045913353361021992918083618911887053410621156471348011669870714952753048150545766322854832101274948299676647921315532086437251212638193133952633178663658341909181278185624363351347153402012680947680872634228940734666102342510498576064118058575407852462682984421095066283933670079822300544853336910106789382201768954349158053363826837075105506891075692612342314082713734052278291888563641798635291218703209902053541132263155652770592371864135291880849350374961040535294459355459647100655247508663872464432484756525645449472722319127943631281662210539226202497972946328628366133333509097425527344585080053520281965213266997278905576788169196394462312900641906534035525452168426258037175834485910671237312021262541144404172319675515488427095462473389564787345444594563595939756426259886978143269029223105023285400235649318095810558549014739593083368011831331496245880017551756783141568681974314751887133758174325503282381427991412792728508865851532580103081473008284290908447068618088321320146611200126386096233970787411738480794115453581255044366435772120448360738309881899131361544112073362072771628753802646612898203952902662762467376628584979405478621531471186709374021346808159588014204977906288868538957163891630578976415416173515441764978631943468991374513399123935654118497006871612810512388531132997283494858281730165990724980370828329115986546507471801285070436694652614514512333547437171069423716604281057317286242765178917872447080590396559198990684364585124723319292375869084874529219138990901767471467220852590538313318997300121939542255505811387861595168508322705056380626475347627036634261452053176409188210227743807197504633989487204967152722054743681550798145000771451864006503727804292355692239319538156561684936690581866241287734467395649599088107689872994859014838763918895996177212060357678802982843310738806874644510412900272195703662045282530057468623179550878297348604885383380482007257078681297061365856565642124140556615460139499980605400830132865202488311220935174646940244614790917736459565825034432325857198536571887909951264644898954504149566165625759451124497306274215281888681077615423510834995657621211763830025694395561817676252805187431489288665498416398646929576601492740689359570412399787639278012113691725333772604516194210668883259860181447526460908665258460015186188068549414621300877434502371662720421733248967286858181714719343630288087507109597024275617874094399559459420015189724969504744063312123177142104830550031677729723236663515548629001205067354247568707419906700703008891287368762585902470057059142066399949141113923325700612031378263744105746714623441299364087136169940488708929515165592097889533844006092317953902044674864317271737465124486796706277514947957327981555091517422753384568214017281516577970594170285626785927036925436155054042267869175576211061529760463318585072859742593352924966864297544361749604934636360651802289962686850124348644982053903531236507685602002595767158188400662453326714217640356092925305184312576883533080572760965534827512470381074731779925882296289565119362599960457376002797561428108371079626560172118293370396992827692728307788251528896353680927505839590737622724495780703672671659140674796349646285207960011501095379131683357583529175578620497742411696959276767371088639437200670140677266957867527618230137292198555663205440044265620138416859163534030235750120701734588137771788770010645264548952576056924084596465664323911397635680428101726739514550162916825568216316443871777959606366354757019481170564475991027037916440631882131519607796282888022876767745002973006498243525924679557382810221468169948707585685609877655855620437853952540905901587863460789266663612333672961387746616734139521096274776246331198388910293915109382692808166274445338244349492731783710738770233670333992459560242995184110917107614482913704967874021417327264963309781270453065442446259421087869736823694362838043825724212585341357845011177952939987516724471222134296100960025791730381377670210273384102194583923086111000687698238477207112300744925915127027844957295145935920688171802437612337611712899436883290536368402374304512405392263755688062588836730564982248548948251890542868446367196046460040997224831391349625640054903988651519609291639804661967027685039178530711036357647699642900957915322853320970805815089273909971244140647762695908502134225042946267686365171054287540696194637634160504805782223642649348033726776683617204540354175236094428914999452182112799751058413220978111793190405799347867663989267503070782476738800074846952828150392167474994826519119681078728404557775325586107095237600471330696964574227175639017375092721315850196721571437040348872213386091481859012673451472868242043714295464845747062081604855122773130629976462683385746037205341022369145122388301924264589593859028180307033670537169224558194206465891979261655528275009071197046799698044764192017531297082856590123472501362425260158658842057557923930316373940549657915375990066443402081569281731844045670065806587433922462756316375155480123240224282082247401556094729117899665938107159184145663069104376868791967516396227727375471617247256904372519889293755020332987215765654969998257765670737233859983688633265532977644209843896033280802038094745535119712363552362802121740361231462003786498841130309481082364346227228163222949219146548980945618377626615108918476392926353433926387771904232490436862011565575289823565682377579640345018899225998763773336734522094332241035112519580760167172380599919881883302726142397525943253228709484577790742323108770409935556748084890094160357909062682833572447690528318825277977138496837843200212909048399193713571294317052269392914875764640487325867428032930509224288153964129313444312253147831440590348658942306813965005979896027253683387192970066473866743915997623914110075188636618066934272066816028349653444173473290548160521170306855014047934475983679791482877249121390695831557910237049313146022817094359957735508670875735924724421703962875791192684111675041250572992227097861824269531277633257770089491104209224715471675809996698123600395492470952125346507559942425793772558008701416009294841303918550491250172448186331269561936907237184472292407890830268008985266604622500172820265829676542148539873591985814197487817875568602953183451967304490487317799904796493595891760971841735025820330597942099627286645952358267880573130305607279659326157393536371210361925336105173205588305673235459759838163851576768371962996426848018924974704468429720623626636065406774015291359038804522235492202604201935797032151638209502454776121317141255423201639405067734476861597478769553806376644155385614251355036354250246836519697453989317719868561871648178049502201178262023011189136298554164147406336893319626059499078583360321459567207159023675881361710710602084110906889165201557121563536950693052104905960888060933892709274311164056144401831073314079405699777261213906966119355540631913371226690908111168437518350192934582674495994389423848157302664306400411795769279412378556406651745790155601313122637774059092217235499704390351692301375637563360405373434628831972149104758888031816930235908545964021718368483616048516292000559528463808262862820688938168192275879688569269252168793518137097882227638566601633572060566976989596180557113864207988013455227247833375232109635685619417279711901198162549049281823256571308539174438786701684938842708364154083895007245917657695225241290558613486059812552987602780152729635960091818833709073532867198780489421096890352294381949570704341704861486116973797838028088603242640037654347947522188692813424522964956080698057525917621301333893953480313088428598424568817483318418420314599782370088118293457494026850869121161609678081931898994662131875111694529417468019499450513761412677453013814745440267134206381024239640313165728564080867685108923497777199133847662498048908704797148769374487924894036025843988350474133245827654531158340328418709985714542990924355655712907311670496062866785327768776827406443320776838178345642463578374894574693358774333707154260947917111192881385385640242846829147119648602776416896538776957860803973243009091460916969632045140176838709518179833572855001265963206378172938000442350533528544827975771045267894818309722075837698456652766636542967912149391483993371527817581503620128807469056205791763509629042207400857562832645161069519924900305005026163194854127019438317382371144017724479662293163364251442573990307596866539563023903165380370689524692010358517991583817290290701235476079648921450873177001769454993495673519898068295117746222394090660201592959853633561784112811493005489349980361632876724507201869978927223674492479170252376867900957180790422071500441531489078518603010366019993193654842346439210926076195756185699106923810598452736330355162005768548888145371909837988155248215998070780540466752060404893408545653759280794636671319418011530598935646882294861487526285815604592383066172693826646339326776543209037290211637189630102077339575821189721170616808496209707114429699193350968052582085512869946103420427384982759750527470355176814622987946695793586099283322666562304814315466537676587145943356411804276112987004845458356915748812715290392934089218996304744665356195319785300379665228041464016820407115201378982472157564477246671289394463651561828204378271095323179592518042250663075505237572667315531454815206441603656656800418332560300582842591210834785668997364090466492721140610771806446545738847653151710950156372432879461308366191386039699874326216114333308322152075778880271150143644670323770904175879639895956214468996888444350649947306012950529811726348286944422492531745159731277500216585023833242408088792859694525790655777899632470619681025382073169742106006507470334601656245708898130603064055951136116817519772984995838080696060513669316609334438953617120782324287404756009887232897203749554965866561350984649784580411849514698667422049071677560580152245344678471300910666183839675008651659302336647430044325624223583957784532888967266511759074792562164141564963691366711525745673732575037769995927552910979405770802960608810096461238657851712723703547240943101153468933862222097051338286094694367984600684690297780427630822858814902671005177556341529077905642877712837256158969802513108723078818467728271221073229010242894179558134844967857950879465561250466340368378952637168340716041489898539495282893365664181537027395058136787956932748293909245616221642373295460697747359252157037276833424833784881665165202384182461976038290815589394591340330771939370279004856919566880613798946432457683453300476326757990066742441284067237315128133737016397490169257730193450800630411847286095443035752141069468768802500631562118528234713588581203412590116068148977228033348661527915635283312284790248808745057005778821869123345916625527296672850095167743042383880009246682309381143140879678030950092341909529190301686376970443014006711800568044153773446591347656594425003161446909665651135210899462677762790192877333952333975051721298807610923071918159927074841589318531793544976773024572260952950444234406947366174434673263745548630678677154459828366447237704351774877813540706409815333931860196497986516463176401131144865085780617039905184042573392437531268101645138704208759616475383289208135647102733247564904189453598383792774481364710134311361119453711356169045237028713833789570746237435807306709383829369514063334164172519147110607208118893485144114342091386242810337586830599178032122670435593899720347539499095261886466558122927639831994514602355219755065173654689013998822540888954487278394800136442173594467488053088646842150760614318769446764633994664737459634484152682485768622805526339992297921747678659292922201393764774476274496900817617290466097027308887607123671761201951415331560443322239523022516485082928747270180709842579591778532972926245756783319705443438456654024047104723027396577084771325870519596619513363770557621699443824765852840376924483809269386703201270134963505555298523646752267126191191389355778939070422033872223856805694601090939684852673412852413475991550853439037710551460997838983713347362267483896512220007912665386789370517807011175832977196928631809881334195287785044473812230415760266398762334961494975339439392437158068707960077350126694918765757345948138324999066816972435604477595746188870211546856238551868231580041482000035500957287408129079809328187646098421075906280602975873129308713008554393004311111071971132523686135997542759088910801480796483311744012195591789906160614460816588689266388879548593991157362968228569259262375595025566795645253465999904904499816013644518829056489781949805929974283053569400839752123083980293615200736112007095314160382714115774215085366324482460691527550220606523576455072029749458938224859419043688031528505396834708489842890050444884714366463278784189755454838134165360968879538184847166559285864579963487657214504027584231210507308501682080067396630409601171557668505103133202645678143092921947602599953120328766460218325944722056491979569369974375467249295281292218033557732907404168062428023321184790015620461473281214464256607625721662053854394692942173133411589141882306841511711666582836214507787874906324356525928881428255010503539519889022161591456102289777260070014507207922541712689240229705820380710328195069728911916038291714184064184470962896444058445256805896329205685415928414149836867894677330759662562434608167698621472538292794668746790047516785354560283760031029478300971558555623473871908800937828356590219653739553157760230853081474888234648386696042119930397254103949627691514872383074515249648840070539069227319895153702037142000559200103046692562749694070544507581114560042990634130443634334502795382871285276797475324871476531897239120097646303576461666697852242207522863832246491320414308049908481973272598550156521276301383617852163536467482105055051029309247414362896171258994037214957990009468703888201306093125392283948027870649583970256201550894052121646356381142786178822611261218519302344381663261971196023294670290573852415064640544719349315044012848840190958684583077078212692226827643965393136556139927904257998862518177259729886135004315626722483521845237678992530890046469164456724386567672758038021743496513567690421409525271993498686346712083802459351720384268258615481203609711147212822096904118218581137823417328775993216128298869767658084055423422330595606578435392156168773057986615138504281984665919526303095526064934591777235868705606831691635776992909553822858363860938339270929825657671050520170715303566111355059994242924823858405202665939524337666821760611802940875730487750785088810491885748938278821411392969433696882619305829942422353938795650463106705324807662647248493408987663567079262814335033925550396582249669421712147445434571313381662240881129878326403175717899398614819268577413454203317487165725634028759768808952616244724238773641585402646253723327513219854537524199599459946225936610455929342283089129223027551010171761393892850311567361814366412208469485400612238836572922095567186002231613845612284427121859152406295082556567240717732430692865956266316292870375118943784251705612947260417375089005705154652822833654054935189444888905905928803863004769651899301102470499067632597578928759335772419721868335787916428164896101580862085023291501532779411602080266857405591007612926533414574655994579035433037880168209254039997100013069058274596789919962032736547638990219339130091371408944325903193004188197345702277204337505343276593777049994686460896439047978737201964654002535979533272655319724680777990966047551074948797871536262000417437418434831599979472086598804097208816815750222716167540792817100043255419066966182421904330507938041301585368705964810577459163298159313539943504354660147715064325441454736274626389241979051857446114880721448589089843078467976886948105287499205459116666861193881424988355640026312424266133170612942553688184807516167106792249589651021506548822434354023319870462049268368028129684992840522027728791307471301346216048281758128017314844515885590822554101173482595532323200477656543793313835679283895578070834508825846268295664864710189013647775582712194897149337714466465107864787514897301642316046834308871335716199530270949764549619699025502214932309210446147621818311726014166840402053597694525305047301358174976523991414035380034377689607866451016481699183693829629413932824225533312822725655713645505853730217110789033273818074266783303205052412710092228715585006608404623295159505143848251805428952748353563718255003733103210566976742690640868631848926028272052975382578238494722001974928409103219528062039022256866259252458293453373651012955276724665671427902540947519356998120022927325232419095281004323118629914860752370172691994346955769476199764426879819500107618249068486710340424384183340980089098929610700596580122050765926893487314642009007935626490079531953959964110579097894404527575080627184093453198325904306608382540806379847742425940257492839425452391588277888369354596390881590971834900965495046959891545744889523450385662376116884854600373884475621750496415603822320132724781422661873961295860976280774878616549043922479113081918360808866408438697254638632169895891230007345822919874161579323777800362436288383149343961950174033551317262888117678474929475628380294571616077615532984947897239740050756315938767509471275659252664200793313000608281109888399561779878052682085037277403580898017811118306047135712418854265914800381428544348390765255339933904153079460209834226510711349261786387995571060703942633566867322281059243279938991795313836044425730179867696247537690889454412029281439999173298719225043285674074379701772001691644664987094570726890344102214812557987337924449069691323495335481256636835074034240106627309775687654856661214555068657369018300845142856972318719041232362139296446934910663376300761187523557456584870188935276782260430726658740564252465184125648649055751319066850273114998045747075195439199508810247571659309964856453219528667693288638794311965802266728309412273389779550542246060069135756635954303527234327504665882594122924606928964176231399101649291791829481778560788001577817220844605772994560854115136544038152299163755026508492855242412291494326894274505972535017713517901189022914618874188412059186202047192557236777971176277487607185522907791875335149087606133975045431549501561980287889858651394239076764260109684467454739469012618663828814652503119513839628609285175965701828727746040502646060934410894168591340928468430050135014117269397200890244825732146204571618730688671094277639662974273664799457478834833844201413356938548261740415080984155065815018175338823872571714857939719018534157164028835746015413378575040688587530785186751004356250074267614819006781188128071318151446087643209854529953906158778982143687250547045583813240911814427523215484978749875062308953188726410300199331040858928446195642006880861630037900319920202795158790220926245355225707316797855504910967899467808258095409422411714448460175149557591528192720721620892823548808638458049588452977581863977930603924843891277485283316524803907103702525029979219036517322530168611474709335537758251298400740119760122445861847655504009539398432661109725162772680296629610373369325023725706367324629452324837837667180602423939195375989857710228906204183078778336203082606262007461433669087028713286886736052391923679544333543523599007998672448671020476556466427953154615831661702032763778580643202893245548514039636447762532703822531175083283494542249072524717678193509518433204719725872323687104336697699549978721942703819635465667520895061825136481132998049454799484121407070600104659159772049477123769848401637391140996394685289929472826231246498426020783806181626626594377829874530161792041967505662040228764015519994809168538756948844538397859856220184123901804486722422124188644083187541478282045718815328963656301645701356979660920098397304612335754083965121135691623206109357833079896632652345610500439316484709631035543854560817010571932565397257909193673586607473488484649448675434177903885636232455184547330397402554990841844345383408122178481277312345488034272197873234574924023822667400599668056037884720289914543965275089561308050632560538546352842962853317208533138293745931493875527175514600948964142756233694764889729247332177256979240537813424613059546276133830347468602121425319049912014191369767220959062831517149293563734233638403078558821817724674542016747146399286399139638006612925182466198139447654117748934303918717230145750684486941502227550078178216930588760159403419246886034232263234852196878992294134212701992949908808836970791652523207101470353692993144266772520682420388011118599501217796613144224014866961380444674215810547444423012287295776104708875096490115941445135373414972787260033633020541444821762129561876498243524692989075861318307496367594243160621071682161144503933981136778975309352123157708648359973669799979793546632594234267601411242169499188797187190621827174452428747892037266609816200274233738469252816392867782247762333320212458662658750609394725437455396501054881802982864123993218164225191759479438855111925545675140152056172684388710326629751578062940393713296248793231256349346897509026614103793493663675966538740567396643212696838053735444352462304872695425693532781177961214242652756234953509072435830821999645483049463474926926817082083533664023653660837356392116449995303527142386576312435951350509109276848389805333727632166426877383280845987474115547215702612799330328271833720942915370360243631099505004621748870683347070768953920684373000266039884874095448345451800658487451475247946847679180224346023348194429070461352876373234255763000711918175139542947445177006886972490015951100928780268261597682236463817724058200304254890133180101044684012871468781570526024131848558034571937606039310607049225663662806527150243537610959061396154565403667997483369536936544638884823453725709591328898526389258082320112950276662585043041183290266132234836937771190147261530867370136313047313294825512531769331602905813769595873117843390164860817014058601719193826677200969581353951400410112774261135178016393394702112420766501812887375357535598941621827394647732432978591701223486601983562802122281923555363409476871000793234156339976781397014288019000399233226055692688038359591697179508925495896159906213411181750672176998707685962996936238252946518785825500341884356127136653619054495930863344343960881564664820360741096637335922880897136738968725193806051501335421933228033943570115030748411596160484683483749844543880443634744165039964187827903509002705313264972295095310172548388148857574040808282843920461433283918914026385913016983248728390826886838856447390778060100543692750794460684647353632267976366738183092726888800409251878589337784614882121077453740920365912687536033350473112368178861008429700776414895204346129000974210528814473411303587037061138403503583142876396308774594314144973501722949575890966499283714183834818770457324926091172168971063952724636876276856120439475882906457360329276304037786396887839822097435309322410137274351451437482659969625828953315667218145991683284544364770447855423706213406501623234544340333389778841624507249468150598533123398173329534743230126920473812730618577105626194491077173890882758003558197435267442669496879238375314755495425963902319931443824058330776075584396308852201746644369829780000447282851196068815921591091116913877454123442345901577891512238186655759460048383379809613135964727930297523279012185787910338808773411976096047825341037764843264466676305631658121820923984458537935474024321113309681909092910578522781026277016318157236187522011683807679145312185298410355011251004117532789982999783245356941873050887477045890708079118150920823751995328668156112269705391801820237436013234515942964370364747022867725134421792983900615139451944054207520254392897336862408445936741637312365169308676263309990658002099442671491381810800515623496529933234974263129331983468461994889309590191097636875291751084354937834429742952306350221288082048761380854146708615995758074319125025393435085209346422507984945916361377144373292586300935112850722415464532511803107834095778946298225392827047025641320362553515654233356120152765759725209108489698951006926548185020379712034968971753666337699957371310394047151051593269760230023119764551222379063819207300387495685431495651881992581077189443015478967624877004217131619522169689637660681481668995890025298961361208935329036939850931701282840454573187461345054835937307421285825599660090876955011598688839912908528852103656121315271335776189149490023098944730761882778275193320030501514093601970279684790418953224346481664061071424466937502592038473850903386293701479004962941008772980416812260132934060762455222778029669508594682680932394246167771286132545342591711386240952930035124336914401281792496753258029459255876116507609603602346896731654571611030242553490621129984664617170125790299620139334055536822635172863621908879080742362961681733120369411569640727495566166989082363464397488024881523714177000171795906136760920098729012558188846155730232765966255759574187387872084345771034416158103684027343949354292021906593903157923993336406960150783871845087031723271424380463542172515630603412979863201243901814736915243473970857911635572829207832150358641038933984602131415109618761848458094193327681370359397018803726435803206467336019996179711951694380197507089495566430331749938283182427195085436483153345685277568389627437189784412648974152930953825407445466077759789133834293611457926412782694568740752318837445551222976850700517817381191040488430156062800890278333838831796608989200133348321612018659078857580468050246858677899342329799263554066986057554035251862756649908804544005647102687399363632690771554562966640061383855573537919568580244988277042415870968099017139233543134968253390416352653188393352703619320283559023776172976536322295633038381107626883715675525109652691794134925510298195910825767892394717664503201120637743786921062510982284860404324821870677660584770813528216027530470972411152363679189995764708479838874037784713390105777945286834479750750270712331383474847719691725371658505292703094621214713017925298720170044411788748758265486786074088251176470114519141599601724879663489362071733486994194103200368528555250695134482380408369319737467982891022824043754231428552900917682329105711472199662857996301814062411385638616689002311143726673959700812402705771431889961410236043425806744170980922150158828838516101238117206825360764925745590816418068362578556668779159214415245268632213589292229364552939496622973753884163147871344619003086826837149611158248681388770614962873152918852346392710549441478724504522552621485186141433018384249224964433040713133402346844175144188918455894642432402832986343097692168863645146216812962553125376019270481610532301837733531586332449551686982019378361782498974373798187499527669955950230806323673694648398891410299818447089417892832672093359324890290202994229991737653625226320362346787111231730254988244383893532771878865067702542333121831261759383823261538555309780007556035043017723695382123433419876356929614466975627891051326299906558620138675759789990553500007416614522930878641060795644299022564279810124561330460454050455837185166132243973623176912954872756808720865226044755527003973306153432844476073601163568294278549130198869328077945626481408907638389472700793843287153228781503226408227939583749093341909127903611179911549572587711807033030521161750494994642831277884799478598361086387676128779791805424568974264452792165162674861411788087740157417161568168226986079904133791290316731102036422716909025135062058799604592353754870956698090224294704156853790026831449153050958464511953031816052878076827224970575116288535828934245940500838690030021510966504489015754026516465543362696754007978080537817920949061242557469166635306425964712192003985198258635437083862827468656920336253315937657751936766491041787051205787857052961474145895811444948628326104516444188663090674832661960712682563120874072498303294829390144150692726456293158722039940014388475770069765948965345731074527903731168490064664862734552365101832267102349791417448601231727067139758677181856498890063507857836818174982885396365594487454792455707109636643865715740563378414335196473120989161567953237768686358361991855817551753802740121831872771554274771427301523189806439457878336258674060597617297114992522380838360326415275607381756201742983079569454936273722382943117974245239944471919861086549480095606389781021331595467874906947297465494940223753735711870648627558425184236033927082757226554912422070168344400220366537332952799073597906288085419158860562076971832303777404930831261327399805490010735121500390071514859691843735029618351840388100095667468040681201033278126695336600367339312690488891001747889412831204287419984487302127557487661661911855483575349572065507770857773655886246786802207234979438600229334155632620456808485660994318474792296098826621644295151098886543701782748626654447083646461357989070806868357865636403956417783046355083293841272301911981521662034055266548668994395526148435876937669556015483150453032682972508479243790305005477689834237162898479073743173165649135003347433067360887838461375260617294783798097603442865110502161959049536497461589333885719956969113741424025405515262777451859085491430091759204150556251905118006823537071623231749304609819320411935235098953875565628724928002170553684437815993373390969035121901957704388291916342082726085849159946563239546321603203552650014676295592534781382547637760889790294047301532025106187474466866896418065309630822431314264674986927598512778642495525015435309697780729167975138979191001040007105925166829057603097783953340193997310009029646610302150789083034986274943172395377994850328377421521124737136384042899771358007168621759787651125394738344473419615264125765985827913769048165076395263947914493554370395723775733364588313812537237395310147239119457181790729620591370869080963782464690211957876521759688491449340570214318963690975545595713556116919879698730013086556775077863524713961694792189049270640488902314723705643818134983517874255729840131510945554104541164183313377835712683174668399286854926853758472392360308101542465484879893053461997196632968818623878609311624360323476754863571287833405074752394125324298099825322195638783629471786908311797812909959989530911735499200512160927966137662837022244648656537994673498898302123350773245699988509458225542930930599342363888776756450022279712974653699696671299841260886299562467533360834112817761721022496556934789085417579178815278978432013620536966338130045116323553484761279518699430776514077241814855983833667571359291306911333910421039956718537769992985877496159263449750330918883455713618450752075680394568531775320761081004525881122624235976842994348460495018321956650371146301534909518017697505075532533335204032803503097452523871614923618667478140886286702066004480790544683725334619880702621134834526463614922080303317531595224768391292571109000963913751187156388668263315464506218793359794311350931683089160996586174100486827776332038114204050418752688806991897330178347064182193914547508485308622306803140394908094911424294630929419078922924488652661046006847451527773443527240531782913322410917503299300733564784632320883891800913370170273892147955323310803840191297551372702091935338937924323411079021778271791540056319901430140829459218653021282054671373209653488971949532058137810222765090214825748866056252459183641213348675770380195307338941451747689016936397661524023261508010145684528347576667019954144188943574982683874952926558426586757745813472921231088867054432699070703076526413016175305783796222828350516880660081771046862215871285547338011629024273707161831171262149484013582030233952805914050000518742863176691316550122241963489087546613474539813267692287070801848076284411130972408055955899434527287683413697861502652595810617271482887482631595591831679010138169766022779838046735629160872282487447318756168592520559541031010636482587119787273877205887273311420045384693539976619723407058786887127501192564580715404394910420508560187474228132738721628597698712006190876014118414457229536043338031568737858847933957966205176859351627349486781915326849461689612431519455614039279046600099494486935105501807277539153036222703362689730481940540167727475724436077967587543797187607382308465680258689626188953369288583658436106977620055514042090609759160078859362322836012315053354659323522993637752118488897790785798062306702814088283295583191701559800880505392465907183136008839132880433538585440625087043484855657172002108856353377486650420503267384678762406270534518151303276127111324109959119879973147205697675542469083049131136368974935589080907291984843004001662170350985719516752493224753528449248948388673512135316564104612549655826981801994701175769648499074446313138477038816287187218717915164285194865346595739219054554600752755760679237649081907218487472799191765486420177996538130327881136281216523334593635604823218446515266869287419569668980021898328606445055593467016895434627710508338853394512581612148272602219790063943894890919670734307000594307736396513192193237783564982676894248960981915413163034619250463217524537919403133643093638677067416567882995092129708355491689898410931716609135353428462896141000458137928562261756191439158948100525294437665600411851359571950309509270203318787216131480444641119533092793156935563700435141949839651704362561015361834520281054552278971096919508970321867560224586269467217134649823679933503143782698172319216828956629171885654475258920428153863016066661714356772501121371425506326258883727632420553369807998193277203216268249254678516508383069023686178078821386350252457305691886198532185711331930456913009347160400696901642409079100691779135802171215094309609793269474874524396096737154284912069340179656130358725952491985297149131455456896867270582493983559406103142560729007128150665085358740593794530716115314423263200885659769640788504249070678499511266124468672128512261234410406886592115177684212994897998380417584716943103280212019128815796867467473527983294583461433708170471445340588780434026453955997234170771050992536815128800012553912236041714061156553295261726548145748939352370731213768676260883477687269212311740873102927128508161265384727087591063823439116528007345003498317597860795304348600872478647011238146190603148536309222820393402449410533481915472916881887740522547445456695892307562053853652934899697406963705477233117584720245281485910847053521744028425423851796818045756542399517962092493041093266271335894006210375989587300974809183345652702310955303045501392326865131188970771180211477825238907659348680042667072867008826404838430276405487443606722020961832954497452049736881110001743803532587945856001389871668293113224438654811684539838336639137504571877410386044250218640290750097761921429392495355021746304172061971324551031803065536458979175716344475104121221883673755628749267972372931930173828851850006692316330581082840100354257216026579183396354435181750497461039842411335112369621222874434501004544984237776052777357274943699835981181762271843003339133138403742017454596832647251789560842559087743160886989304884343723007026736142938688978996029259539552379364998519907476964075042866733513693679601266716671425722847756009889201997807197532359727664762745354917042879947487172351364309162944094805520204950988484039877417784992317489515698088895692644835821777185749234732870689987571517813011587789860051296062672935850309937466592018943891388684832025747351103037965214311872679293177858502378334309303063530096031547910667150954846860668187723171838326357171711436672740329278342142661667210073840375890377832526481755133793929499021548111854603826637821007896917295996733875850800524398134972677236693792605454589785232406079331601925386854728144517562687845863749181343769093813135134393726381919176697478870989935511724842382259321402541263252606312002985103533583450766139765834825829136823240683576675748729642460288238910887425547509684292283592629329218832855793256945787056370648400101206646262751667516688807666112516480363373904165198446343888033889328757078066068850144653692215632438648961619084262159299012210425419784827892672931551222970890939992881840516068791825328791989466847456773022586648002732281243605313962334636461763404848941386996815580621765471178663367157932777443369233319355534285359180936646665034794152643204784949313471647961565427337113786828440087238173004709885392248489867870302738854258874287383264260383457511600173620964102619848788609699477134958773963967171423630979491889730069594140313262054791261602932320874690008841961085609476170236736252916477114865531299029202512722758244285157731206819325954665480114034866400587061906169476222552423382513471161430722237375598760650614576949843221331119719544006568733192360727275483182831654734511259022472151629188423444745686495485974565585490010197894900744156844718507518858566732059448500002256840064626533151786444338836521712531898169052596863385785169270558163276622057639774676178763057629623746671552300045399190008109148574990035992752068500036760550363969306742016639813077004750136134472445414758518898791413086912905320583952391740565169747418836736015674776564674009467570948430924710012452021358076782992452670537329761096360730480758551253246281590909446181976386751571776848605519250661771737937291495230206896556869188526750104636835593726785697728673007993189719166607406832576272694770041646263669333063252035683617050306591220502355824209774063878569191839062936006195118267181611230065189878136173367014140737102560526371270372821302116658834150787164685544513411099491545348026112910504004750177418766794713496297306334742447598958717174234980898397321052256117421401861260370413433918099964124125656666507673905607354026024100821037114841924393407107041182253715894494508153088703361917259556049966941972235810924644414407933368932479411208456581529183569756052654486292711049307416009075798641121645912782339480953348142598459662407377629793597956061317911183241250145653328935770023347714959740093466034069561293641997476196009513651813952008793220542147461470501993405511605893901995673839776100462787661030620962538946479000945356423380704364061619259601429682711763550534485235659013308759736699703777548115181029745153995200010964834462815137008532714998996175513774664826101797338168943434809094672806740447271089185952313372695675785429282510176370278487087278017935780673405474571649781580532257019136588576541550843595546315515778793718836594344131738824434011454127972501995145110816073135143038838236905294844751839854225452559722664244897892110017703501312549646103838691912615667905329555106740679823793727716009975937692415156118027928917878073125541449579623400191973137776009741932637829510231211888592670263661241510370022851042648524688139953674864294827451939970125588146934682041965337870477908103554710594380436480024605627853975638807197216792415106152777714454796438155327149927618567171173901984074852776108303250340616826620643124887828262019842356964214895605607919459888768230938052088217630476347777844366841302871172090271508962166461570308864673012552555695191472518379614748693966477760105380138738642180855852207781243618237231168212021880493555715606466557618312650667712853023400842784840087540445973480428284546498090292233757015625603454231757360924657463216022574125267355439126527128822307027571898600530841337473973951641985271828495202135223026397886533583046648971608711416458694891021664811990131866137679944667364876878195017462187356264138168207497468851800375974597721501324713322639022678280639167020601420037376214025704746113201781047234046177198289811250240814588022304892273155758258586038459651129296136138198982441455866399063751778149311808490430220474369492033614326612512536724971753568168387931403304363735834978413750671142314512428735458688575345928549940650194620367533313325602740826023716767595670903310013015017168985685318244076425939242945608451043348835557609458754892020305253545207850483619087527848235974169468271707156883251629611217354776836689348543560284725444374061371232602566539537050591929527531423477796069462267180033671058107241936443556541530186199781538592041232325859873253123582138504687259793188694984570936951752299251330059444603666538797111487982156761494062604610360706638737956081734238575163240857901972105129678731375969150759963774941547217727280262725206814725004260856887691112770725210720520921103723087388290983691309689228860592725631961017836714108912199783874078860038680953263603367318040856866843398425008751637644540199240561105197831983013998612639974506340103454050210177474722921046911199866849867980665893532454643603414647216843726258563961009648378853460382687343207985146770628246774579839731789601523282354828538473882712300174846556727211084688250748313854028547613607545012889763226910041283179193033044964382527486301733028300396429033330759349578214482653618038706194398288911078929812485154199534302908435563024477137217572152458030311859875428478446547904643139302968017623267140929503530322535264516862848264170094038532480751062030874240881112334254216916486409336206114622766949360049848102655515472691195245790974788680700209941172513329257777966559614101562214190738127124417942334597191156891629838201891659489379287222845973105881665911867544038724435444920763097093714349868096843252206010050699897690697480898936686107742458705852337391286364596751038247489151887511111085213281422094840816125135000241657434518490908128441598271961857999141451243791469496785231252399206368951731086970658925086474783960369151904075015812567473251820556804382503594989697989800057030265048786742262126807000095866653753727445610506403372945048733410442276178112797242504723726767576625172243257020681129726548464967947770204022386495299881752857247892906518127256343139111070740002155319137929295012248525070894909261662355671086775672157874168008897147615476549966190555076820420933425043141571047066780685776403222666493479554001133404203157530869427320895680848942906872605886870166585909079302885183471210479265080611305438933165123158178389298455106739854455294877495637759365015327150716788393439697526151346616931485764521083493834948316615362519397369807552818277087617746851120361590578627780044742975852399368486829391072960521183167315303298827574305669056262265674457013086323729341135846122930560020560891606200468306500484492472705870778361387515829340930072283801202786334509399209092691149189199000047670884244233159103211812944543021547699012674052064130026714321759952852519885818645883717040630812337908185721988675422009452008824284737871969740741214403945632464424505589921122903692085463707365586049170868934107216440197676495833721617339019454513065408880203587628781379167461847515864411495668508801584902038792434282683792109448887926241299786002545669675045661585814439917119276233201996908308850965208892748835516219522952817601200851770376635432659421518239156251091303997108289794218440120413678482485209996646912459135483919213503234317489871909730212554141880781539061602376373134529994615618852415776390904137945637083574768023626152436585066646702146458134457986648310545122733611980409369384958878533583179952612929444835342248311277857962770034519001472297171941668332407839536196880275655220104464508500253840403625375245397939165033402715570340659171911953794031286556906860911379601752037343219578331636763848311249216052651821407361407106826521828294841460137039721329318012349520985911780914451065909902589668947977421416859771917291374282828024098833278438405546797839271209380474448325700702210722732484197550443069137878713032292777335379402139951450476412761128005208950330107409603395779081376165854055033331311599120096659541841011374281511701172340161299316968240655794975978533769298021441695336016154805196361339310061266452961085454650540525836086709113684828316827019853437079689778513918845547812905261047219567685804818573541328577501669417133690555984452979021224955924903292420104793302716770338024273485886364045416385775105037611028951121478740880385374161551728560787517241508482081235149385299813804152870947934874122755374188065092097053310964228735282255661750357722446774648180569473474970362891368333358319451529910095311591718142770168771245741188162847638897929365791669640949764696019309485004731835623715039070221517758778120952224820098270829078089551905179661613185779929642297651270106319372922517946801735322314410495404122209662118815603801292677884426822630273724044067060965530357598533177167801577755839013769844410987617998277561441329677246469633316891043237752072778879263106542034891920337882097331593538394820621665028670049377473677138834843400269670720228156117761021496063617855268208422651208883388974930190305646423414017443190604822056047481881452034205933309374642473048812629378426588823497656323341841251575525149672384447580385853973861483395051551471583654558908781691373692228927677363773451022855934774870703994974719781557437590770919679850895012213086492926231186422447423022931826297341941736028723879213663567012435286136996890348360194580120118785692136621213802985321023981717376517690633081409606859898233679609921920476123289122208423923586712125173177225618723562550590682681324966276964544517280987095426174753142644140653064938909077270457606835199283287359633731260996078932200951691022309536301409721911120818820086370257892475068105343430911703386253470136813716513843854430308814958716526422273757159756265901772834493957252516796900987634409307278696240725953734225093872441520024520482699395914162088511119331453944636867649847543560831890966591477386813452288699149725318522875720919703533139870877749936207525747503461246207122259288332138390609309051205783441804662205636332925991743356641693507489575034813135559266034494456041509882602402747613759953657134280087185538461937504216328231890538984183875137037712771692532327813564588394841233797730416189486256267895447104369924544749291755420626831035295891011437573110923906912965115333208822479085593227986142695027752392482295467810342235352356454685287502701198534203039089494597615856867632085415611495365364572596741904444458718102478676810051352039166247038812505233178670553655142319258888258748055544792458519000050422756356859241073229886611260866785061312943604604077220955200805494679273301904202089271622877208751000286849425899557373775475165904789872571251850759900266006305343505910446489815742885130272369304981971530469995067128987092280202578184671982790188307612550980349645582097212766956588468528325252131504938680843766219282894751644254693498143792302352624709550706901414840305637964390523137954873778514466554615862804878892496405427201184051888134378488684086736900548847961023840910887137861991787069848491938029144755330118966316888516735576569345769189646659839459147083653750791736487687889098160228829304466982003400107655162120600633608833596598822893002832254755274746142912949819624873081994256841569833084916814972945115985127136993807903672842345769382322110325398674062855984748903164814919304034063898980961391260273025030257375340326059643230289663378631047833560436403201923634484997100496531797646159860826910663281454649816035926165167715916730029348587380900722684853578765259225227105241953010289392128885107257673859281720735146908580640293709660242580849738868899199369077453265397274481015823849039363268284695553145435104972517665050723542041918461499680208597681098836068749169453827473826142814892739784959400163162962220586155318219905394250222963375919751927197872343677009486012504141270562602976826400019527397813069673398840130578699065892094521017884101330227967173441793867007865846335888034844633857658209268462685328470176095280714959211653969371567913558717760341137111846237998565884423504446710799573965158519211472828287403099605228230040209585078263710759001653084208525085004989021866372490745862789151568254298424494562365381755480283870975394596626286015445305226204200743977094187161409086643614147241128304621817664030051324825854077684365687697581785093412425284797636237340074193093094801611985582045253290286990702579662220283709840889180805460808673245883343602649421703413611560952595510269437778150250537165075305628494739235183607821159428352649193886566660609827966126197611021731696744339631223149767240514926539763363707217410989897178627779779829424406137429898106975742622398756130541731933563395509050303407099562279859885516312697297119235726567273775637635412874657419770605071368777211695745069753514639219040257348273325965963593993069470231773563645711233262167538758619212835866925742995754153615275250279596847367941976651250658504620104555638463187682398245283495186604403334626743443536278372378785306221678302784835298703298964926038209511820860718628208034051715265880870094051848450046919006184418371536133879852630462204734676323047923218906327935570650354027555214244285540802915404756584439371309968734070689852346928147881077136067506960749364862445714489710517325571527957449237925928500335830527610158536132656847582147357968564613365762890154053728142238053761626336720459710083834696472660686400694323435764475154621392215244389368929583637349080614470974259805254929171803439008467377492212440691293831803291307999610825345395483241938104782222690496235613571059716040956831718186885307957184384958657602986645386966373685723483239868916952070491528064513439478256355097398326131494011140316538825513358575240733819165677984348364521731333921647741016664537424850149953943063409502949529028365750121848824333834161981644842446697376889968203787845490348295152219762836984297463589428858682213976691638655583680845698836239202340880149984695352027871496361650416679538771294672220802187421788232945727189347575219330277214266953057415355662874323869920408091615685883773695728332449997544957509194536722246396919180448820053637790875016264915398268271912317781344352773252703550727691432464796203246010059479120689845889893795938398087500405264471617273796309852347896767890056890207046729903312412164700936312915720992812105584007950938944596855842129115747090634837919383580746977215956652724657058159279064428947518848004470263564872618402650800292340018174420744825328753707932162399582108973851139043043999663715876281116254242234971402558052647271792680555004505992294995415052151770649893065797187277822870218661000870159033168657472490938787736501368003501270085135313561219368928995693343376768372118646857453145866238656835158949070368497929518509392690850784022953564312845408482839316080531064651023187106912109667625400409890463782135113937972658152093672132497122391194239727082679710479790726030951264109235209705537754332559233492240239852144096841208154555090597551761992805180840815943689436589180654171334414975888887273177669586791622333878458282484370515770493671622178699156360230958489025782714259287998249964109216683784410533675996099884235245537109080918480368346911804273994744759620105187498412064701495703419819413947855466764110190389833562754459596925743258852545079851559230493435410674058789317142978600979837523565380801439116298117003106925236537394354392966000235138458134740719069859522024492695536504320566383022603956910138587956153427061038973356185641026020723463003408698879827571904997897505649728930614217890274452331071632546782022591111390248712232415410323406160209283790284522397528721162293967126645474807256725783763658054332769370563785880799201792117334838084977623488781645146204433001763107132033259181725911224026620399348839060011895292553020631227014743199711816807771177918986979805052712629929916249741853952098238317296118874928879540877591875578515724253531363864707000748440493069073969035469891071535045302031631773925020423189268228965221384822232336537789247763808551830249396670977237917378201713910313439196446682529351855521474456209515372033293074703518767118965282873981760377972350711976658312996768954367281974270535061489639234341866599307055132076383220395815808202351268218194271376591321211381293267369812403852383280888918539512551466814912525551719794926854929490905095711094818342638033109663479753721632079964949579615635434685607860844141437878954868399126748666152485511085458765963743866263359267894022568491693804424952696312948257437278268291492607205287313454029450973406752351665908347666059019470939047588707222869224958641277470828982928699263653231270109067218874225147039357574154696652277759952334868887575178844905718381263985340015807666941319835109186264032169983371059536267441162966033986219834602840166587335508292591400263416084083767824388949444656405821214314273024213786577546853606888697619033795308422673212555287863544576148967033318211860553901349343306587205418205729355428533871052835910387413081892957681823170321305462536166922269113335424884099531909075827476185507973398437785843281440926065690078648360865739455479295804453760350729607697905372512206835776625208997607205431066058653497627497084537805249863511231784867355106123191765659063973627859983896831863435941260583397875288084895385366847065802673043532480384467079573174784473448549845496167981818326045505215508019610320940164612197071306416278006946061758793526883777148982210681012727692581369268709124049109162471897164764264205705186729324782295838349314834427971139026428246105191153726335148481073143269496933118324996749901001927722357132037829362992920972744128401213683103926365355527736031218337612970109299650310176003187340358467857148948178156613408973530299528325711917398752763801356965918681394056331250311660819316305134620957941678145778847178261576101106184129546592105592861896558014597726309665823833125937906191843334827707323720188956473327084723914980472047357659486438307413596036629764593728918896659221349740355345194793793191308043447346147316030401907355793031855677868632881297720162681401893129002083771523451802882211890229443259108213888192389782252902045400634490167251559087607668443559765541473990583065337547917678126371555884134158230847950205665067133739298218234444432380571134455943253699694970010243845656443597913543034399447750785502747036896091429967573346247971315171583611452805080923611595842595357889775522303295422166072328236436542278262399036318459213208252349025880467244607928634215886409174721299660162416468681861812893912834544568547836920806811244216855802312399983461756314723195372544660950845343427859039911037190831283332381219135255828697463392848230378203878304517934266366756198977168505832766612603595372618107127267960739201386942964822692209348144369906474614690994201140070003710735131045645567842362550248171103301690155207434277399397874232630710045784445726760938203853873892690025902619196856032147981960123873577850175688611178603350271446431546410228802548467823172666759621694120141881831489668830603004727243513964101004726052210769624386929933241157393650479021799073516935583080149876419821270569277911301247533467792397643474411851289850238510920142805722443815885952514640987179182887807931595252640096514368709669883712109272155423162364497521830136137610289709795232930412432763172333914772690879759310324047800115269458965702386196047202051400429158756702406968156611753301839222227594027142463581382088688680368623513558683488800881476691033537804033934879465479398878294719810749153653674967347782751381555505341064570129194221222251196655919133487789064067523032191773090915953145944075768594424481014354952574481583714035572741127037756173393403620826533755439038197839127944338333604036213545198325832273410556948775010314613152418795178328902276052327737412349159592186918502473728761017001807296730723237711472679362780729975885617784477713580225299335246302627394281031281074603351249557820979053102145778939916488271474394759576858704284154958577990400061577415223081101462561932614115573688554244517373724546884995433738118979945327086881776063931013157512067175696768360613148750889063119752532860654725614686222428451134868531368242965905458268751720869596636505375935873255045848597049249662293804405991450524571827120371424370409537049290782012560038306149794289877135432541160133700890207758170818238984101329540477354726396756643372522035141435985867263570216092072470810549852205834023131704730986732502333245140845326260207760054314951137963040751814303688396284301823209990739168191568810555370585780882294729161742489902391736735416316660440663406177226027633625621922868328714025525172658896369666160310695965427651955154849032362463956184394095719155580160584196007623422053020473826672974469705932125183585485094006141399981170364858673170101777146358312035615506738959242653997873994168898139000660948553330707174226221570269957092801769584366845308633632963335780408314308095052868408804483320544867334167582832456841809732509082627163244775773267820911424129116902856566535027513688900056209226486243911436217901806953888316201247701939472864678831423282628236938930925899917315938119855261839590179223529053376372286240863039169839072920080746116001297862718064760595327828424890450114236827521636573764235732168562376818200216764993714221676397679102386143683553328553833437637699031852042905339225271662020191848164035718183655441067666441616729459442719108219508875609989599293953577355880310974798627587951222153930086270647370360078855413521910944475692036117698911723229341152390380562879620348096282060590332861617935598689808823334741960065513582942630513934801067512666375860827065372806193903379737095769004559756343325862280555487215540747357262203504376587971207898274820407917629349085601013550752268461848843762543254127475636747629435698390551438337585789636642150296215443208802850140305508839705400923455791784488496074562047955870621657021793884908987171844587233533784263802505351954525024177258965801630759360678446086614921637610767728521930994191973735195948957077496258918453523222988921996013845693730471732727201669961104769043862369883380827485025463753964513609543966871547342407057829109883059167358350373130771478979765475120723409387821697330179430554213887481899477981877213967159369769127074322486265733707716401483071530702158752799222129931729956055973454561688170442972101680570820102745369911641118679263311875003402398299032369868969591883046188365547255151290900706386646219574594930903775922722919958786435195446030800513756303894023331618672422528994434459765597095424181431679000709772420921879136789676411702480502319589286237426994122885965179619794849822140146606147027843283758709143556426200146748382091952856867132334850892874151088190824108932892860539842369925337966182538695333960118218823174848001712049696198888134873376062610430582841666744627961432563693048528762499881717851896996998001041039907138505875496923062980656997167071488946978057655552618619739720978650382308286755734174958453875010476522187891138900373192453667361621043010803952404808285770289078645838980102951772878024445257533487276255031330305950285753234533425213321837571205415801278407317541703135914609781395091702369462439606165677891547467665051370090023471247461075008237689959773944244874875424987901389162556244349398517476202939180311027126471996774795792198779200573655668167558020372658852152074736190097590341864521006706226168947135184008513557297384118184184811885046296528864381266892946231632338715877748712199843413722470316892706232132888061875577784515241945882448587372333208109579465238918903353594505080964908635548420080614589030566056577107751279913858930950261935716134319990745654364891865491760917447559879393063569774212936333850725276289500811753874266800699197808625471385505690659395776123217963712801460430545305291827613239903274814221150392273936834859346891952718676270618515000455118276393698095843366741265515890372434022348057348234231515353093653467205591843466065257096745259945890789856385201937324095296442142072198323100165606182315621606379111111446890555957313064268512979595472490649841525168424764866767947013037888306145320871049109810876055501451534299990155818543753772277512126478966331377507140186864226905833674681238167463367929547324936026718854209589346272979865702276185492179205640177502428955549782689310426560206010818804800268715523501848003489893040261242365170358712822569622186378666806544526163582531559349567373201957555623652209594943380411480225034092764453487111867301486644723911168322398709929493547183920419119751379159085765120537319676947215168470013493535156266885606932768665682356587189875944592289972835183528780680683389812244012296220553557186289405012916231265453870165255317738239172390836249790971150018879844837551772634590639703700930639116184359290350394500430310732111675801278664132389084585472449827470867535043381612482552448455121553320366420438052182121061903152018691465911650339710089621636152935905677604043270815294166181620731607310273901814128536145000186472852871065202939063486645558768921386088953861193327532570703466906341822491485208976611754318739918367019705739537854306844448696014312632389854185851102449724007559835308055588158414389799675348046669302523036370324193452242635481185946058706555623368293009380411127481366742631745372660375691084804824044940191894774020878937380891453670169208550794914795988183124561704886898317534707947325381112920559163931666785962797784149517799005171051501055820363813899081290643633083166139925452528234072662904830403854173014212122119974681014274463713816936691682559933773889491895823050349522278740968982582803212407871295126154243573628116586822691819633524703324289886160993699311457050817863171397521846620801638682886365708421798128703001386880859577551730877734483400554309607888566134144714941144347517390135894362890712582330022526860082088044224967546415103901350391905686464345002499372566701924811364226874359221981483813349239103423609828317011676448873089341597409210029820745889220379750538735337921382016577739737756938059939776098101354196045614238933810701761799374862899261344918771250832086160075379202237269040399366231100195000450932159202263431931943119652531037730683189015976217709404186524285672357092652080029346740940205178078037678377809062671421726413527218942904224453615353299798413984180322500659696442198151863704332356655461264057872173301828380572483406802349163437638799107723624529572642284635413340215882780579884394695537571069828471709861034342224842644175893629704748717629468967311030920153321670668481358266897344985603183799852710324378119985666868436349260678279803722907652992345491478013894684248538419801039387749708919050809334940363550086576136347954435253765336656055349365212286885827869643962419108853390582610287250083244770996553555701421577595589079956634554248266146968761726524046066566069472250903643598761459114842594117342913211621833636349781817675510761431610838811168737298546353755522793110739481885782227623817493639770807444992410153519694003922106030591670397090759977570349266442817145129399240976443191708828441441016032024878546693178293537909283140777864463294969494777086776621571067035935594729168191802567164131994589514724945835593513157227272020994420138850028061519062484771196762445928943653809786683467526978349040739952474292203717730860053662612731481642681011065962770138398508029281384111248911328032215660878411393819416606229736359119547481823293934885153086762272101356958769913850292387167534930466624265576714323081492300658322196554428547284323989281278781378165716348632831348758240798872069833288867740926056370518999483479965323623337739626177137588739339139160012309718311623786145854457143034850997489060206974681110711419109817649561276487641622668486775555445058459445250944226551880001690874754095516767062513171146878571660588060831690678500360504163395946334351607885453391009139504466792451765198847378114570134544301406456007968702350610369934676669302326998898109611819132545368117997362528270977566233936806101497153509132492390395279573972766338189337890251036352590715448625920843091011632462043177992704062920777134574253891003986222971496349831385576297463104245113156085082835648942696201597187917226457848235653925045922646124760418584246419832233401932410746233510681214065278243334727670534876907225291095832205044637483075297194690414150621970552438046029426427742513568359220903198853894466783484678476954444796224115533123809301194092586138223289240581364106654039619453169291546211125992208874538440222608516666180792379385318636376953462649191876429614300496890266624291468171083890702709865461740590539863682701895418293185524530579490001347432007427020069682011402621473787985736649464886930955713646993947930716816506472810822427585025249966358916988131118711147045164786723521858264028636451019509450885577447529205725325135725538207825644746401222559589648264573985566449684727255237008510541746805237180594235860572096317895625276647068725260891623985467256111375562171555981453088008103492375186051307549339202705574374498099282506173599663598344266847729241811938499009723214087159928042012093464334108070332013394111282624751416286566115401625819106612858996842728063066545499163313529336783974944775676791009920598990937027184232368350059801322639911056016265253095573904395756762942495484508095567400287768013408499880770137449062075003830997245657270731193270854139975211963426419974407503353485813065664608124993611094858896684539550512710757207881323749380036037918273956554942985431415271474281052352371326808436297015535909726077888916604283659777104945344761207010135033638756513733233053090445716207670790060426076044863511683608560028745471984449212489558281621115002375818250762738075921562260379615634155081659886657099186874067826068998341303205838052214897668418576091897262699747973888029347439152688018681086528044524705851665331048416527249368568686582219557792030836238924055128347536017263104054592664392930535994396849100990634386542658244330144600551234471422635256786504606331583309382792513772818533453949306055405479308193500361208014651890215288784601612383172989872333093256276225001401382820769521838045297432610906589880810609044630236402546277652268556759000810381213179335707504981120434776888238970593447379561471482199666642882746881218128017050664052170022221554345293606303048633968933443889007743254124638741064057276541413408753265543172609176481872860687865853375179291760443238661607051394900801351051450934103815952081559967800829660881874067089722806572406111880701789469156061940020360043081447140309029672131826874753111639320185890156608298993978020666697352572200910113377111331839779352599767767038698232738941196817734250961108373255685031254907138322057939328049438082290398033246289253089665978799429207498625636137466030447556093195481462032613055684462716769827497213444731787500829462705982392816376437048579684687292448328476283909794630664154256986085445665375832367477174865121089289047736637403755020072173335451801275585407803756268725576314916702822942947012454360819520347600748988724729862978580020655214049553662077823211076660448914653485362068885120802735533531296123605417467031259979089162540535414530732768238373220431364888482396706693410501170225213772250597062580021590066159746441915719691218962933232664689619152728306958328589744886437785799048312810431162517835537985305670998855311610660211900746248190082976279042424980583760763556142866052893220900241260079489234245796180257120175544604071491624944420771862847757360467432479579199287631315939413230826446553244352342841225759808769335211537544649054144758643404355452653559221180288664548845931926992334794493533961164390538588397808319758779933055650129358926696708640806967435955209562308675248981103552696801622718432348369983109520642822234825737660776004963799730500846002591708438221841225536557505191372019331521848225244944472591363615058581011799753548849187761158276893493788224679175147373751041392143853264254360853283860632984224723318072980937063614926190791945386187602864917152261818604793436285620610247203133085972440167515744869437975893710140468789772829120489181635209437421976602317648646908115770367519555856757276126862892559197078447936041192185790937099285644529121300551363451547732303351827803089831611088040743780112235798747959077065628557735132454592180369657969776399136732769603137520695866716416308321900512338634872094450781663187795839646524390853352319941105063680945210656920600532226004049940267595535278071805688605255598080825898937351375460597098120997674084875369999543782822837319183771805849660223311454560578186221606912751422065492902944868651091785152598885175480449394023827219545874546581043355743539244363219360643104317462622645018269918891754876983524501243511465429583824420058940367999212179788431684230165263712090474601613644156339070513262287102372963073636076837439877868286454484242627250641332941360489487206302993376498677336146304298568573439378217054750193297663238723746361546642248165407471940048018329005303761863029444234350444250908159547771925147304692216716423566856319327469851634243127298321603362707754668295653902226650862751348351271923074731024891224189828845650971407731176851343795371236499482642117599027497684137302621596936364069023461753843543988937289144205913411298981271013579618018579408529760779505007230790484881372957097532850765431231055916937725544144587571441212201361033940788322844118932739378444618048638426279407736057089624809103083248247087580948228830335822833981324292565104629893769388087786134272358335279418177329035810199635312063128927962288322622827496825627899489202213209335396982572411139181849799970937646032208855357055640571735356239484040927947286339704733997292207006726464488818973089232930039112320552880137365724689891842532610896445991611646826960906373882341215013237527728000883235327409129627489329798910911903994275396421684732070097312494235391494363138832978786538240661427223244356590691487339146534753585886959105715050090391244305512779467563611422365336005898141785276584714102081916179516137840816986510267256935361232258495010112506687853748662872934140962899623789914135519838464343329945019769907520857953243034683843266884505153491139211250166616388353199206988283878192446068609615052316515942257754392111683484991912131210782821754315008484979060415146765368135128215566772531891952529444641459483140457802188184185643601591884211992117266797990856675947202179284625889059128807247639893351596717158356514342371363337091378439777485391454598430222237633526447132651857017631995080833477722116941351389217736125689274923013040526772427541289556466144684561358547919205258511918668385809128761646688933616622008406132935116695632740443026934622583550206124152096170185948294300559261962011177951131694448352970297430516853624304939747967104019947760102434873583919061161722737017983681799412978781994582071512413814667284287614519935951304032132684583178069330456010121819349885784244314758034173448808492520234031240272416787858635096989884775894170266115964803275766326161518816449087507219200148189550102727395045462720104984896274465467446103511185514291307117361325694676213208097528958970862450256858658203515484773303409169039028155114188531458953405851017630640185691418959588563576285689437716266859490461481065047329045149587333594588361795053420911155187296515311729119361326408036071675160047236839684172974884463969801221393100618506855291173347018201326468144074612447342776664129051943438067904168192000112696890413345743884084874874124282004036991052386634720821929189564727969996319476557091882023358508196022610483317057614871489410844896867756201268918804445049734145731829065275017401029192612114850982041963173406749653453301066219503775301194890468237047261548929221617150698460816752853398481066197511639427366487358347657473998019574458226409982642597334134785266194321719013031610750146962828697645570084338484070320644558493631236142490625240569492795434608643834469312414355559113871832868623005921105844250552181962567989780902666801526086160793625162314953256388010695702170120133674205258680440797542049607945379721145722678401722778402662059330184927761399936573850706000877180361259637354284380084472900266802855359555183872939306400364768198968954163404946511149747854796066554584369445867807915318066263828608675844422983958472851053135321700612799909578000117968654196782165149020023778922677462663517982378505789958757448908624296708112816280299632404272051007690503891764781312028352786669009874464561123286448735348608232954768230015482951572848008972655130416491035236495326862760101013994634607891562833159124793475407152597073003044083318006186795406117487429946610991182704772676356648587762482943640716745333251748170326867864316769977711964108933783184574186233677592487121868829680040036422896178733596911633352198340556418756020262203191407084770064957141762707225058358626227887903617221357834532500380604662162523248766332647276802709841264674997732460528372423759294539212823723134500704838558026432247959549643985248043111289853671988926192572598605289745712407980207832790741335599702894707083532696256824895663793802805368858663565975331876867268117566464802370869117218650695190801997039407003318465523229805844019601472362221411979229397792242748180431613110103197285535702926598847823686580126493709085462493355536113527293821249729019902298609275010997812491919896363102790614008173849381848971287145549455370267872463293548241063060533587085547327227935214317232084919960233907682576475598485734927534621285611019884008062776127387427702205852489021438791609701668197822400305303820507799967153511570664070474060583546177219618597961797895386893468212639772470386299320795051836580839338991311587413907779252908772368503712269514419387645731195558682092836546602689091719676338693421539619725483600894762290238560320417699254265412596768483698963555397452732018700255282465226183391549092174915658546883211609788705483645846562218138243257295876828411708220179226319162316092453291005411513065415061902962664243279447678778577388871473696570275440405982638804652940489790026252419424233878757876043430766694419327284488293173522887236939627679491467556024583358554710532655957609330969238658650214172672056461849804395128406412918848675311739502368286298270476634361430939437158104627118381452182594955615749510426818614138329902364495673385230647805403491299298622651140369788367945207956742296218487140388640707492182238301914291213355166122307994446268969772447535592806048769655133979375846336192714012569417654127464247757212677562590139932976793641222304244961975002769531319516565098285297000857297575667318718683231427131175117823611330130616905419271850219948974388726845685585635908159880043867045306673732192311803032170925035104339381745424337418478181752740051683634648883868144480224767023537579377251224556156364913405763454827766596889392764422618134943063184313653009239365404864830949490683331638179227841894677426429625212089180736203972148934299303911751871257296597109690335828964224616890752469646928047751067654886482818047418718007904185765094499768288692491130037637879823397536819048322437786149366160922561025799744562113929306726398837021858642646887806778528332925748812116403751735176922770706570919492395819302861161494228541487945603289842774637877905355531917199998407859049024727943525327421506251167523325557659202805757097443319717673389851019321352374471223143873926379976598383090816179870876652775525254291560755833587946266740562601403070302101422028662838063268834976613276769485630319547031841101064568877325309910899144941354563739559021389454140466030107277402059696226063076121118677269314523171580366617863386627094929949724140886203439510221935670857050881642018644145421486534856443691179477402377942607594110287285241933177966193992158394833032147370733778268916531446499495865088674086982316812985538793145244243988419375175898525847876239245337759314274664136078223002647606589570500640075012084367393202359338582499150631994106929835886185297967409384145391292027233868517766979100978584696829509431311097953789120342948555605754731370104121051049875290980104978389831107917392960219088620621733377068180037112768923058487992981564724726782921996319755583207138729176098505440728324606160421527299413951031968213628096413589008873330093477170158932293475130195800341280217799812218506516596477714330389987074083497003578365596894108126632178747695066620224884973559638340061630324870816186747854544683446155243066329932979700300513283447127461619296441916884153066929611233923609454949122116931726461465881967801480517342828549249243364905619007963025433542000475566918958391406237135706708560678509206528461436692193279593671747752024726486931410326846895224321455921134565811067128058447302381345968368425501035175987088363041813144337072214970039469514491939516870877459841159765136139026109254255361330966367515076710284683202580144085870604801017445332777610923516968881225470816836323131247231916719200550174063721277951318984362187170692934562432825399690801694833382506887170642112795290807408214571795058676725187610079574097680487022709345679467942197413164652026242473131745419641031703499273830383087554503166000658974285313607994106535448281760807576724536704797595825594325044310479502383953249055258226055406424756079259331487655087685544850157278188625993113217070460046555068503061665166256007438582802373968553328175040235467150593707380332181942918875980468794786746097896391784209097696754489675279501907587886593595199915645675861122349469559324820835392402937070330512070448279083284815092543771224872603528424617089542649539931819788534825353102852342119710116929784884477890944124812382142067774765708173391949531285350880824450570539497678870904765807520081154853000786592473963156608971539583260251298762724573024506226970902043471957907639756195921626941526771261234035055616267148453064789648801634530668802943915356605726780771586517081190594020278466389268884832561969509133568124495675838756005535907479794971900484621276742292409069218301589856163455324863456797592176982810310536826229500012855770376388895577843006558479092077920525272873644658696084216304483434392320108094227280147087168469927722845789342226249342979673383478972026662320857851101546821964315168356872370568434168362194031193520657772384182909749163216672691597688383723550870033591139472300350588351749185759235700801206815281647259139475592205767241171731263958868409271015022732395714273584341578602874757087763038469062674194003444370618180657779766005551314133031199584114182380184987306064922137340585998747065077908445408434100216178449136154852923805784245604267167721556812290983988469333682235964958962334610190407560936359922022574498656566037606896047653231525751343675971102396207208577280228806073325276599498874318240826763811507803101883734157202246859625892822573494738524455423758646845753294846782825063964973500908095490347193491747956945062680529099229362747393067998619662612600775501734923565249075904245006971909666869755637674516774552938086643730200194668248567332078552164089309049665873966620247699302340402604383248479866920801527405817209714736413295014440125446497339194008297233776563418118993201732552892878605640146939395708445106770078923829572350030431902692175321423328740693679129015111380621720808141336438343640671290230065104073473063376031670631147902770798374082977566486280110432945956900586608330245711116368184381757283327647417395381586858423450200478134788050770326562703066311305826931020393250582681668455779583771769123962412758843659114076910934103786489378054312787608572558847328230837979346791384387046822297800777716482581247852318091171434189706191291811363657697009019667985780405330974765354387965912309877641750741444093955426322761004752918140337189040824635537730214803603291578088823022264237946837854098332242970058354417864023341433265002778752564977365045718150645020949368028598380801206975171772568493690394102815873507137024511049040495315089157562911826157091278426607117194240164366249342704178353301426180373698988781879667921310521043825613983955632876941114106233942724169960701835995758801629721781734235972014590025182546336198889090584327991246442322412691305383237370483831539128733862447867849589625834667899984200972828278319938490089339530524451788678587438886358416517707590450166731362848803639886891774747521940086056404574342961557485329902491424306726327820701044353929910064950182296540913786101924487130099505128529027151060439689800332097160103364349651048655504190196008149538579847446430788736236332369958032648466839028440431076904416801420253820200130432727970213192538962516933477761008733271882227293132275809975924062565194825703965018420323573082120217309140474522182770493314485523300347426823258562075978581649102118757607746430446952358651994791669098653640305356098291979393039368417302854758805240563856587100364567283513177772282341724603119518860869062648020399495320915991251591008361373485457647362496845046033579209883436870124940876290974680615289505758437850229661383835517629155332346969965075117140683865879568810741861691945727117446233858237945907498192057173259773643340667574645070256651722673156627883966305018769391066249049801119597293268330646525083909913118282888507059608229828202522370334094440611678071681263019615954760705514944601586128853821185682136190970448595516332330126667261062091389163147021883595597873376055050515119614705216988293051629031477804427650934153709203824686940142649425204654056916244444388113902828287710817520894692758404370269788476319129429790241060341700224586237174414563595211383526835913782949744988259456323615072570396680173404794847221618686133388845056834174418043468291823410941008663241514629323962357723604291864336104025132900505741932074360928808101906026717697054345489867890855093588522191642589942443287532558936967668395036328446137730286568588712691789443759479619054212934004501893727537889044707068949540060863366804878090015302641043329096137248314607930552589612429431413093229331784120324418390985128982510148733692376344759787254575886461120380926762508584593211274818228975282742340556942349842905231655673688428067583648598461427353766345373979483445400651704671758863811801230671650720272109477168028618645326489127838917121920153908103764674099622618136363824833980544491116057543862548922092646295556462279421261989109141220131863397401829078527218875153572296183679740953376331136124890745705765899670881434856630951072339093983989708645248868946690252057516267477483928906956924542814216284296605208062699060715313000838742614572929814692109941824640285366824659829371946167709799531128924843186525725683790734390542308775567572586206176690354080207788815866668871372883866676461999007055931086776976898424711571160935984928582559684231173906828256672112653755518641095429386128399400898094738183289576756274248510494526813712036079785446880599727422976440156547099208913365828535223514995834647399144117803264520059716338562842235988175189945659835932808648552061556591665723248268154517438925238859646185447893225076367044390760916322149867000884347102870726099879803682459143245328369997742200286185947653484832415750984007787077277249843958620653479167901623095617271781223194719072966347364994204955273939018278920715789187434066139090710648432211683797995458918541388154477742841093718283133496080170636883583529196178008062665423544845924974698034897264764594739635026531072477846612463108530880356550612958549138912326800630684727319065487493562152874812835743604650318011569974894113070605178080479580676425417121010268678257854142349615536586974149770659535042937880805379869899348353536434637843762976764292182835915733043717777102107368682556630764479279731243842124910494301040025434349182378281616783031018142644177534247016436566796514194602705822046814520269745749663339946801046105861235862421744657819375653125530454236687657739056090579343434356141194434534420540670037937349116681517170077753916718453749860272896363952013482514878935888098971310302320990955173917465107574852398408393088625155137486293003317134246592330756695676728504810244972671948660770241021941154197017029974948391659759804658965133159369074630143238271517971197230202683998606639278330884460160382351185589183420570795862438906614473242358808910986277055004513020217968717908767187914466673856278792842006302074021322553008015844823932560629516750794234621672882261394228900165776124237120256593432078423648891548581621656595135860664809180663072697861645864116666237036313246585524929221523094551831869953064623550398182998125967720067385343644562397711782246596478860573719277463510581403906282274482219188129175683365581326478539619105681836117545344482835520784906333251393599294284375517143989461294389897599852098941296349858856525363024270477378198954931553099136469407513393065582573524506502729563320658442571909406488509696557123322872204557184302593831620492136022943944805019390731283413022850702590306385390834219909245219549507427562589340500187689682279370458774701049893860396716466482697468284727422686798080824969702029939229960141859378459475912014342934973598871791451175649561145046582801639170463166516514186722942777902560264985414707385442806400814241489861270037641337153420171511935083046197294299808925351468264029648956914347613608193092209360814296831668356892936318674997473227687037773745639492752166516408927818669696199037228777966957268055325760878585059533440226570587302499109200601897534969274905830141599081370158836963254998646116746826545404008356223571075886509067011527184162427805932335341363095842247357666031772378921122121299080867671663465403890022824879569443069014359383855955663195869651140683356142372729694360257534256557516932267396560297789816666610336896936841010974426066060307526395580071879485942408464795572756793215167098824054340513815841379049084623913919750003104738186481508204200466496053379178252206295429627645797508794270722081830611146260403133064530385931386055098935189247822739288535048735434124804116576078297422411769382532393736050390273481201707287503056078211827782976295149284623415387045501874785825665597112354914570107091468650161030700500359210610330551677494554356221665741818511053513237069547285085971592123383336231195817051935613337085866957217052408306436827764540391634771281514870888310109737986611097905150804165520575690129670412199933199399876836102526145410669139391472281180379431794461961801262788471073509229647155867868650374924521880317367313661518014622528456853700003867308844845150671100798735352571466586899531063457250579257114226864176360482062164676178375466099003935778340054657549723888206652163207260598075037094241118790473119719077300515506153087543037123254897214160841157089388985244112725104891378250525198216764553880540669076754619843306196350299160018483325312280982547564859718553517264126951660669549417822795416657680526220717802070383565614667452764713989724618108439077214548799782423022498734292860335305775132746738389129552371912645746898679236382255902427842568933273813675821121458597717027647014662371807898027691077520988115255997757903286708770743640579872709953618228404306347419301326140121935648532924985458334745123659691908670079074398948712958061187753662356287052511172148888310894945722060323944698890960125192676190224832641949174002775557104434330437574384357660687448299461592264077596141022407690946963418988525836981980783772523324654674821375239183911908842841179603441803324404129773863866659532144821000340704351775945200767126435382490780735996794615489994793388057234760490797961681895473521211543723319540306836044233122715205350418959512553377386519695435067155875386778205024946608469540405575780260668096564937743639463984390083212428270194992530912456139037599918811987085247098841489347581671130645927951655944020988772795624983318512015476828231550174325176121058856440949998108017449195193747602185564758794350199053773992051746587764710904621504640498362001114875039352823608529567092843899140044280284848903752395627272481267100702141020843288145736860298734105642998073612542457921192375144663615184461401791406230003968151667000298583983007958417020236232860300356153384548111762894360571863966873452263216386870787361183391311936264144851344770848492618648708794406970489553046860858654230241855706092019024334012417519242553760479143244474660958619522963159038615443666579838389673639310622493244511439048576096406967418420349136197013807724783276463973035919050042000827742862243887589514915673917426287609026372282976439515397393215930500885821993923643045592228186042332451768478440590211941407185943287071105616455402391396526806095752728609310672885864993418140581289709875023529177105971598253775521070888161880559794471481837914573423012690324532816295632777053557530372501232108542184930001315324019966053793796869100307112382812725465122177032171915326428111815291594117985630690444489095623729127409731769215028523537205501006584471267565052437649262971944730960665880354914799258698058377084170581796585981064468394080968595401933587167663192811822081403584544827149444378307799864750987847605102231448070479309689643599422686291744357748684646672713808818739133100945958739444364264009434106535350963355779162059082105546708586918840299348468742247655493272530835244701564871827195379800276948889304716383797874449999296375985367346417604083550171707592673009751722854460137916108922815848501832383400020448183923925598404268987350931007048679435461458836130806869912716850596440030644541719826520024634280681428558676382761018037655057547152899438704097480333934775506888888182016684132160274861595069081260817489718511462932878568565245765643457727794433920528536161603279789949516603205643296774179218056883666133298397126653534305785421198265168268034008366099456048672689163250783728982496647483011710937256400139618816000117246182159827774576918315707122902449234165784156600681041932459836422052322572102366239763683423953240573826870873103264988435206393915408290328551889989470348406780182345605460369136761169268534844852784356862350110375668491023133152267968801706178522978770560494741020905726965897713615319877074240215014564392064398999495324881467344201624385796684780952453800167775328020858283834924651076013744482765835892475137748356478464435433803136713512797126612228473069359017727883173082828533555813146039683945349730618957470142203531623077526873790620063767068881232625523688070525932205128927386099717028029381866970365807449525333838328800103141358762729233808755443835904296384253491045545596001170114282064140118308896527971171210684077096918739572469724836349688698238761298103085517763713578109953735993517252851412075373820608739634006924233928119467454652282330229350598179305888742348097938169330340317326853704026278611149201381267005674128636582623303155442527138551505605772327209386530004048612797825044910601332066884521615828214809032116716829178783971452786919764144549406037354954549847607444604909823480318080809294440309296161947711294791069159388080927754615256162690920921628919150988078776443632271134685237784192008090778617332126143814100460488251145439325240683824573755588214404048088375091515566111978835215125535063986118188923152292636737364853885576713651622726480431128670482169616032997058981613134298333505039891837137961150748639577340677624436600817487807876962004738584437926027893750531202432874088916969426412403371560846222615757292438431547345683931509905793005414011783646123444959073247168179421272796187747462570836045090989117725961454280110206566156268405650742325879833816023428019118308035769982733485588595866937959692360625421344805733410169451521659859290122204036721517275130670020668554472819820317975781792974996490220333566317801874240932820547055772764392956108581278569452437422152549603129932985825933955156614161821732201794434853798082738815031647425371001564442353448565901783882201027244698361837957469731928820954731321620413454766544774536163134427312913760327906278204852334892145866536514154528931815708210002643872539618458276944731052955270731717596261119744030915268200042343875636549922881773455180280629180082622858364662055298972181917773816326420533845858274804941207141968506575503147305185132775028555383846933474063760864501994449583818065224922178348968229686163301703432848007699459114143114157866573198047768981083509708189445099451955393210827083232303217752287040773071456190573138295193733036141580239198639485130423760717652239090710296822654541420007005677146097052883015211918673282925002330354884693855754892481294851270695098746355985900624218444896179403370643253049046815549690119561338533825291271113493939597467968719533334339736216329778806684919296617160345128877551379904108363549590746277012180981304101111033088003056753613461098775055029463241158505081601623041052672490101996736148507611194677537120596338809942139572480197769970037696884284833393195812326256031376755304074534423579602337423592568264988518359658888878031586025947078939279153435224849465912359924228018634122967094016194827466450069465762202526034417320547003783863129800512717183068559205814594787810265646054936489185178169653778424654432441795482934371605017863183889087832650196346234049824034382460992194346364057044633697750781272673453365696027937497487662406415628332162222729697495141675403765241126179105799770809645032659417953518205828431645483388168106404436427743454441254105483864244732134165427826872596152157039259695369064829051543259184837122201336625155011837184000588878283759199373979985336117686515894652141442166315359937542450034738778010742882914983935111585640244258027340965691521026470187121690102196563154625295258094638851478511119482781972617908060990950469306988772715598983526301738698998071938766282810049632358632031826034366012224167968906448981255725541570271706357196381252980254954802656509769827880314671513793222812337396140573354123413223993181200466741425491561504978384377128954318919201596042127031231771451772317313679009860432519134336108203842899347171940246581117834282562282649866141567073868058051576339053764553244144226157409417824843975952059396133530075169799274563413515866201134076881372372007396549712883894202323073848376023118126320254336513263759419634228482028500094515358632435212855464870485136895945717889404089366333905005655217246473653762503402760303287868332997723322621710074382071462363785931917376601753609790263938326976283101064985751606484234769035228941485017968259211807680877666966329250961454731586790724028458929806941438462272476007662903200979290366886667158252661035671496976805077012248873228525192842244935752184908087779932977250030076427367614513555197731128801322450179061445202633180455168768523988255314610530838943403934138596145940979192912463522217669168063051087239487288844446724576984136329061297345742646530309884607759146068150745990324481488719277093011320344478472810819080769964643290958811486597423820729933138997360255174711722865489022313936453616883311231413815781516335921862914128191735191258358138662113230649445440323758790759180741832273592200493745555244540130232275512153098066610677050487787720329432097065506319120596414865124140329735767948258197529911282129063624810118186210823350354158065817148102534537227387786301686402765904768362789418074652150675187166307783046050595750533238225359966799133770130206483082222736981267809542462452145415932395070340982647589927115646473284401100460372962064556176025196777700374951492205514746468611899917774240881230768324483147031200383966990672237150869366027949501959301747499714045688768532143492070069432717803560203809380338137004927783658145601038338560311952586478383598653104080917156883120043926398591956340002457483416512401952378446086223565918038689199340295857954796607424444691628989040497697795699989390926219390761979431454587918328385538551829661604643340727426288993732156015505394524957336476084071727547590707649770711040478837804965056683621645261597885123545260791589720235286251684698694305760804010865898815579660928860185775303858179847916039527206951958494496781875985249481962621139798858567931691430359423897752817874155627222057098650289157733136344752254163926947518048464986113416859927296201722375347292468597930862485407678854115844263720817629977993717981858493162439853583200820961023762160359910991644163373195650439022221935667320139336372472829426572344429649389837138929974609518997199668174525940737717445153371968544550519744878200152163035698227778440741256998423572943553850368282199406961316702101868661291347254671186564787654572745833171595513983747651291349934991735296950775394452619875351765946265132348413110941260118990828245854306554640828927715665627603288246173002242827805532513099201218078616494625446385426339147163289719710553764923197935104979316078464706575648284698123884744873516761542081486822521587003765959927155866972229439370482877078716336613416569697073463447089201362833857806570919440792494783978771131274310259734215369394561187782907770075634901531770435452915924021792642393157047858013485159020229162710811796709763369928093828711480694632585984836697619951640755742844883568833984458698610703579442192950174338598072332120844234592522204388546403471511977800867665085124220923296667181824111887617436976061071450422733857672034957410239440114680910877558456002774277817433951429327202750091776220092966155047461915670241460191119260845593925999388233019914593611951383128199390535578079769631029458680019510830620788326212651437348592925790886815997716311337890397386806979023133143919612135990295313747062280880788532391203882288445778708942147312776261084745097970869853552361617756291830882174772547402053114756565362669578395276600354180343046335297858683894256000057073550861142331658691606599658194772621507015292657714995193970238893678717732109782788512059856131044884261726874845127827163405059767378422871310437129091034920505184428901094487978492216227489644616350271790887962087809946106203919703129933351786291180423336176482048159523770564006942784261133114121520986964391078537642762264412717703359837317087475916866180812334333263922312996369295654208826126648598531634651894352253097159905059180429160733478074293297810247172925435831586525642131199426820635161677894199577275924992491131669184166697894038730907123980551708991090522308275808869182930602354735919690882244561631400694138905868852858877538882103429901300271976259724264207824303518772448541114577406536401086913595321237865061813884381085903471545164306364861282782630280487812797212140078473653899925174562928005526226951091748388968295254922312596331795297831195234535385259944592150854064650147492532849885253505895784069262956210732877643948154573553587127433894829635300361115519559859399767337818351916653820257051325121164720641448785357688087740236232423871035836632268997322088176066177184585704839945807981868434529544864433524767146053429856064437694504383818838568928057780462989852407193774039140763164082566729443730954606411064170892218830633104916763421294693213990093837261552743415415930332712060500037558013819895351868901696960192875759191908592801540074570726773103727815544047154831538634374605126262010790546068867338392456782669846020401307816148359239860852394303398408689477190822225541919729234884561533256328209025162029877405045901418938101129401085574531703120309549768109992260255603862429437207016117762476706931193577265042387077982758621887355449521070995415973397801108522787031828996972108449536027670406269151946975963593928875900185455371858432415718468735036591029992509768569861211634458671226282232173477592274596523894809604693597817014560598335119426733076096326449330938501134856480850149133580401581331061969293658527359986505443202435615672772001402713840574362755161062039237506357977523313598486980656749447095395958458278117446616144318152919043950633919758532002111861983704497400280695548371496416595773375651979630753534894066628346407755796309464702312638114509211788781849431699907126300082454320665313880082548368727813715825000011700365249823435353815505126269347599957169593056116433610145496712873311181144862327953620769356699617879556784564415724250316408412501970134982925128964173121185703876803034542949267263277337316587166746515326847543020546002905091848170565458080629841675697691485392430319409234349395689377371260173413323838089992273761352808482402344187193720894342508413774860608840590659436130468660330404208656197707881667183099165397448841588579016035514793065289924644908823594114720148598582711491820833764446347827382642522126866299040356526390350043214422224243452651885010808307900964064712122189253817747823666624095488692880068022191887655453762044481816109552763177078948873758367420366306040241521914756092510207944578623925977597586044228532284803008995624075421268584705899572685021991116955900487645059349357401495880103170957482080601375510603658194490883488288133830957152492218502191941394839321197440523877133551271076194097853177982262944758650999875425717157240744207928061772648996207137502780769283557284335589932139367391507508814083269636676367271543665086995626958485268824915101195500595307947328911802400664812003680847902432393568361398211987541084559659176433979679319873371080921407053129436218248274312636533532144166755343349296766065255128509395544686769631488620400543674922508127024259672751331608998868928010088991326026109464497467803702118732129325018711090727891797309809402985857465997898679341892976108652975215547129681848846645710156327870719228128838312733630631695980051652033531845241232549949346281991278543363052096870474508806978284683501219648095667056894798373529033910327009660040224750923362864445842203678150947173000226126269269997920290255771012269746694431345638180166694664609214989544800028415335713180902346627850659369165683621378325119857890616316923264953322380331672505536594668595707139001971234047314562286568747820518659751022364445513359910339188887387495527573719952965097673807803735469048612773524381987328788961640118585633852481930133232119988544778407599431010447391183852373534181451271748732711284707541749344480256050780159410577615695160919199944967524863151977006618598411073511600524545865070370890710869719260260554074708196686980110789646932746603160507158846749228773682868087263692816449245931855216618034130432765816808562779784689498470093110840253110502436759086351017699538321843461880171283916209945036670651666971357491007090164058402374845979292283320499354876747828248663315358223078211630020791354019732150717931334195994226412332494056337419700813616078505995657078020635044554331806354330994407266559773739764540005506366146186652408263218116374234769740574013568163452363010567873977681039696225302860799061823536158485121104008627251279581130664166757609189745222045846139114501491107913895504200781332034511486741698931846717182483588345783684998245008079092227068510406221256540388398630459362953622126903258845045124444730036120594339660507067790403438596851386774928842280021395697919050614600345344750731089833150584787649113797309096524749465989470572561095107203864912556981613173847082810322876652657230411159664574126319431188392114464089637184168525316048858944035905891845581855188341499535985269740326810932205019097089647655485396518859541617730667194777554585367618721883089675236706681879516154426731978503740047532934608141281876267043366911940324219010167302899873940792438959283600143531674881367906126976290247909308234844604668370168164300513527824266300620876112644910364438859129443791857953998535644152327488249943570873423779819203755933769481952053286933808432019898823689803522916616727038354206926489269962209832224645351607836436141908571749258664363003320617332525035075194138841442162532268229827765861114313174527033447619462099704638782461885243593381958466665383083933233300333869030809005929666713974743859502996627025960699214264357615678897791723498142559179612885330888937155774487215425871931245477541372193172905432043333064329082399011909080659118608418734183999479130596778333828560901201408366435148874444658720970164563243598691796594892119681880573260742259978482214608211107878523242992467686473833991900117670674228350605194711618102014398822562302759334877747446573581877071302682437466024338190790327503598699028552649883067393368632715548978553801569814145601781717116619636017913028147506279560831079094929457329243372490092515407538683276344768284940867786133930917550130211415121400155855818094046944899412583405703651210152649893142618895995944014912001344487912196763282054080831356459932597887232619173605462102085560181284102910406144878517172612739454463991054656600392611355293570312585703998753236054869816119998887526620776734723769370299311389141768876263760715144320205646623459323497095514600300697683273853211696521933673978988126841161839587654106530980879682547627825551096110006072466549640713759524860227106289680718023707672711393338104452938432701740139565063981825729344432539138464682211442533581036278591887939603594951078024933815015366791690569250843548071985241306615811603424600878395814989508814462687520961064091049103529017142496861065897568637174248122431341934601094856617466634353728882357948971613210823215595801847662229543337672374564102368111961145731373867014736207881664489865747581353721491694097298362174011348831929207065567780306007748400778926114281787783965942063239137013384098935711245406147659032744697475652422045728583566082893685920209859255897788460431364900000448122865637908638779633961444424248469318633212203211201720589776191936078608893344975513155423025819394463758948165000422599002340260762276311125510376043167794674753326652074118453139400474372827206453717686123670137248683399724556189752774317059364483861536605826650278194414189083579249535594851192281833536501617793909169429568268122899926975983668358735385707435986181514176121655741536431932870928094151916987758796652415601762469679427395489006510218491652680466622611686408517566811194459030502899185492217994138188274806689401197355712796330457036733978774991349391798062172196143628605930072130107927046828179426685105666232429056816200258183367874112087137448701841616884081221865856830456341849015885088188236430228054446130513939182595294355061006008100539073134116839186324682130251030739507504851397078713783036616167422982580047715275589001626849345585224988469530410824275533824397977701235827526006108996815168352066328099813072865084537520613513327777825828410052696721905023239934966077039133349176290488576434658000487308215795925230560880525570232222620801059370940037851886291071744599382498632921940647196079521366698749394858639098285624646704053072934415780957180635453432287244869016050204542205403157238662776556805935196358025291910569772859334839187090902745642214279401065348440808454356270271662318023181216029635018418055854999665035262658347757029557846216346387783741479995727029709377719280575124292406927697885503910633168184676060102294319000329969628469425925119905154589679375250935739202840167194152827940631813389234595666060293367344387946415844087675900087814760326783815807683682101536286164126136432011354059132656212061560538922074480999373576619702185784016713436414517667140926945307329191611231468018392652815752353537582008455997977467271072577950491617649303567771846194377795112331340204324244397094174598021339561498652649995516354859772519016220422805994065088739754273871820219011200603028494238625397112299512391037456414954560323013841887713317191343824861609483580413343075415028236032071550049747296626622653048047206851214324880733948831017652992407752237458055908746341474657016384176837682329418858718000482036763927009558899732842859484861234195329104464011185952442363918568999127617731809929607695417053578515063466735374296510115708119026889344488531564757220325026747180964247389050392210159338447529600497254303986150475691424196566056936896052717142644061458849341663919960891115474763721776844816065356724239880864975607007461236999445934979851532477159650635655813621013587661622850522299569680667455311557626972441527695987515907013843370556257050667942825712623415827959786077330255013449054106019437802856272341545348781708783323962693753683685342300006791121836722652562793257566512395219605618166550112542858210467599547265915369424260783245828953241221386767270304297612631179651232415540958709056544170172726467475070125188528503064985321817865505891724278424880918342971618704160802947066167549977959884812489206862429017371449975541496437540590859843482779683701503176722497169543410862025675239227401352989763245098490207028624189673905553922370379840001643079512194504505067130585076025389607878612736251435298149639450005081682747489052936966386338088833075442579595911626873343882097800821717022297753486410771400729293516154467072500963490534217895030622036715654225934747759032632718166886568689428443913564609253033289932362821302158711150949333797838903682106254771642869828521420510603017470325687341043134957514275407792639691732699323238289046944929365801660483459305064974905152568060181057822303636957007353870365240365891079033068743016064588819957240147247331337296807515418145550022215599683963813685086171067155648971551819886552137490734662148192067807073790582027178119034867110531084850722535127848697785242157277992773481473313848477859151667618637666516346389963920701755202532010172426221644966890307287796494915239936887442073645044839582808613643791487064351878644826145014209569510834324330541796401591931939883857515893986474107526139830942016295640823935442337517258729537140768771791241256148282918490952238893673853109573217394070380447725959516950924767997235601350767563503901036301808138386030883253003210260734845310763618603104548024286456492431761468659564342743712203699923274164541996940648242377938781902504292766732526511978542947042769181037497703064227302017857825321159196298665501608720104367059459991442982061871451049708473796843942774100832032615570487297675868730247182072945807112257023140053828933889771231710492605145544381980043749474254349548163593947738184539972843020655023436724618171281226916414305817188085517219783595720452659738878027487440397031271619300698236520305629194412848576938918935939658165094279640151189445100079502963871699329357724984965060537277452329040381442204766778883084156391907793256733300959765368567273561934934634547769806740981031293065641651301795230455408286648098810073171871540094525886304101940596477669127488470313159745757186316684718867201723706558290076612085112247224651932313700498451827888322946962780159806570768633453719835456997481781503659797647850211565180501520761835539943419198654400792238880309383579336172543350944469021443091353423197433301055423051286599802935568132095845122808516090892543106088617593869453386252819912039265792831469447786016923032650863107354784245625242280903472691461745814603337976705377330375804269882303392067620706396884779319583465625470469294135859158980642993766914909442316052289908269874294135126657397642994003090177463384412918660029381635319537088306205085338129658443914584941388484127905661665130203663771580552795512954231954654813969043627472466991655847336604492025942387726959240613665184226265464341137496976411909101462899878959276539815200564706922535388054063430465587646912137055512846030351907047349090384230695475617018781221364013199278032469179899090006754713539111541776551597937008223240096666526278837663851901381704888278041229157851546894560897891716392964775180710935609708430348339801696026496447198206631642803773922070014282329955713552896846566385357584691450904102401577373008978629873115098516709291862238225397610233249013349619255431546561159288881356199163389441867802281743343906409101456774050920282062282871554357440880198046888608676838819167880035018107659201568363720821355513986114130905273267494300879083203336593248949248552320697812987270500744864283806243468512179992639959977286692765303316268563009952473483756022030957948456175445684483398766841644681704935864704800073976192716110898774958244300613149928527878703015829735648792443174805988109632848759893851069038286955503878785250163320855330075465068009819571731049638463105000691166163058217546510925711854163141467646039350016465290851701971866967583536073031370085776882142568822308333949592716638252017257749407638242378788066318796306431996129625461218527723020807754655595739147746112452183640168771191035026473157360658798800996771410810868941019948762199006296127898168173754595374787581857514702729508757429431418882325847301290074964261629705160906338297699813734713341146125343549424353369173613883589320318882858301088568518778553732922493807264404701448798446857323681226313988643530341900184088809720518747624992604736083685996364536680344249670081087405913650762573588986216428528084365034103636595190822088970553180448486438128123573568181317613881250455728908891317471911404919640180248171123862941298928807506144097167893428548637354602796663573207808511383306349360786312249350613603507035766472821997995333566357125786684725820880968558016919847647637122265928696096949753658197335739767872672077098222039717570918013288917167319818784332068056151344092138022672885106208911209741514049671875729979698837532783329822537782899449411523800883140995048754125987793905034091543424767601183543372123388636891349481929414211758423846651755857771177550751647341134105045018921896392902258139616246548080431491002367817068245196960457451647870652489931322775650465072141591088205608135090664867700389569301122358719143454714373591362345234502006425918963228265080401354158044329830515445371892068952223574258880473040571533541382242285397071356387055957715699720341393823892846267601252290125255754446222878425038228602399920747649761251868789463432660145142637166020421412679621840566959529176631077453548882999536893513768882238662106324925237927504837921931188641710865192795141942798268610909263148823871188360747793330846157230741932503559195928388612592212990255052160250484855725807329860080413533050210528782992075196095177267073895686428930047405415242985875627574158747001323969583502267878773620013859518363891001896327657515198862044971693981203922199478106293832496553798407597256669999935738259868661934327206109292502521567639685372726260201541740162172845346627473029860529238713112355977206949196171126300187254838555778504037675149791256593767810566101102391918636720095353280297338241555205879402300388378893577649978789367501067268215256856178870967544010396024850250872468650103183443024558453791226124563283319843664874461297430125892556208717917654123552126115166456134885063190302011910596505978453462683036569925574618830592854550905369931928828557934330476765628937787735125702272328344275949149408154413095550634432367470683167223263812644690676246212141811867316800588384701731923007242636458412802566693507413208994330436589700735643634615508001637305302488450217974092115501604471130495863353258942005944213331095220118519999020417287503807840096578982470191985249196762377708423577195047113560935004372117436852949363611998247334282976859087896321503245267552575763219355574151386965648516499019467931758711116211472518096805759723440442151776851843597306338379922229106667184049228904476577564176507657666108588757984689021325805320911891229351258059230801209168078067019384782455217564718375313871401243491154146761852158063167726308889468987545946702178964628318209544322725681595245263178358432306361664211490917277481043787237280446999619003995362049011967082315836662253449707338249338398196829847935079941902575936368284194197959984406557827775603527422679892009854626170060459265571396781042141864836326239022619147692349499212892562946235280025930118319327808576075423822404519597076672181103264581900084470753072896806842603458616127722037643860804876971011375929353956271130728170238972369835979036483336400033107970281865367521821023987194497703949930699409605351889721735083705315910518496153802501868307753340201244908081472667396677514245529177174977504701661869088246216294856243076816645393953925139277061872992400544374686397304672543423341571222168126837179163272713791199487287374405429751421619646164370947983631345240371402911511439504051362093815024265319084126400885843966883409088576013936321779641241928957825859281091960371971744908945959107779068633625861262809552893170183705416312771748811687462708299654810811479124764366768776628570899677872014193282690183650070037864120437827954895409550423835070636099765471312304268624737423151232987399547989759209220278444789038381105590452254179895915870786507195622093005721807669853930878899504424992773433104219687543502691125143442185985385722537478476137829827182309143426279730746799921973835575165171137621565882339481876060860716476770110728102443630489965410415007543146707235638308630218372169333098364990893289679810921133225652042851637327671448445616029065867190960569834964510919843479459356439801855619445956002260863309588241824442702594945967242216585428755168484467843340559159325457548825279206315695414807950869288121963186741195550795782730992678655237458997972697501195020799297120961120891960965289572965847750352202748525558872294786434437999021288708048571613675194889761884162928065343143380502868063464397787066676386099545367588240943130786691258022037357351450020039206062161078125102067544847099398271629526132867574943975472832025884568071119481540088027280775634584535081360853627956030103604889993560953675515062182915351528776246254314243150519768423525543384994658101907034558214652666881512233066035660761237132461065191527422250177913537036778009749726660844971103413917387588696363846996013394213130207757362939649265146739360751133173034632004349077214358873188549104631205854219707374154030127514759652199031598589427052495984978732392477359050720839852024094695183260540038559092401834505417119811390408405209708828633444959589387545224994955650712131634269253739527209567885266037390599206461108975740003716766659245368612206823340134202856880710868783060270608584675919126086329403289837092122339024141091540155786557770468651695579662741898952222825374851987597896964019598842379350453499385871506807728400786595660600289926704914077710955485141723853697592129812179182787628635239584785813109161809956830881053171285850697976427569297290043334702139829604069888058273747574631903312460575669521863890467931507241704984168955996091823040629689505660590454793565174475350287620128667109092145534294154881701121637475083988160406779201417803463619878845764985761946773282222249348530500533007797032596508665640433995298188210214535225936144879074227878627968282738101568719495669747572498788121251504341015659259175614279831342829956533902294605870224986200234938339641113373392584143409197599000478316458342377552609467769092926347354158007686602228954885786307934020327485345507877745100711894113726872209450804356147720898241105079440534166573437959708203975540648144048335378547230572230776543785520661658423977120474695440080854464665057682468829298452953509548220734226855163945760687903681116530018533338000711021536550710003923749931225308201243156546301910192627003943866879326756832522682815438672945714449530637988776453731860194513877390519347476679246822176700944800853300091948002418252053352123095569910447691153204790394086267461653055112083345447036563041201460126863296602276098529508871751213713993333852285783489706251667156016643954131964522002290122531386152339993224515778331640191324192501013117673654161796706962021975588977515615991178069409916306962274400455692118484268975579090505497867680461567025369262326177967286683675628871689167009492470222594699474100439321596661714700917943717621068256955199479479300963617483750275823438158712210501343131898363781642555149488494203275584336521988822069402487954684035052382805280318094947895477624560919925006271829461468439835334035346269866334266376372560743144375531106912879032419537399147892859706931004993168469656551820832631865538311029044208006200513275919155603836091182131163999886303470235421609561959335491697132317587289316121263826715804106578855933286653213204930708620748946289316932484685958529155218399565342819913486213303053428016238130624329395032228741367855534212008682136140404993541880617469569502537026914458337461315871906176892946363594926883874478429850968807038973329716394378340190927390688816347139144958751292337664626487073785379201147863001717289294341095137824818914336090658403983581388095182946969753681105494370833522144257260520943994007613894471300880994889620829778064605815001163736554687167604597217506910352707150503388830239971736887019499685106323139074189991681442703460899847251764589257782854202489537736507615269707507599920605980549489565485601481983036338938555138828653061737402931717768932238553538231966289663575788178646300948112397602758581077687782499381533087374020531995396928602436729729493127197216777747176967884851451498579887380875936869213969702511862089088718832325571112559518123903409160290463419659147564095493933924801797537749565113560648326376209274942969463103130213304903621169165367021257062132649366697352554993948325356388543637864485254182353274889986883916041758152362886189813372127590347295773867510196569314487781396729951696768529003796090272818907315339165223391204234891864300262020057602816827993716271471238490448667730901538812997631129409197707764187077367976708002596794146098525217397879950301528695216008508993510898445467275922495129368552406273243860391327156111344825804047915526088223783797385255533743139248025403374425777023792032025155195305053992553250078509464176474524724744703211978976464828032188109644250904882547210145800803697790142964164012793601012986713875398938909070385741032929246238704255160503752232158448310420598971542666494394647669834410216164830721909798631916717755995001118528920096789211145841592595648958732054645400510997574897298506792841179983168573917247627145023993918743849532712919742872397006217584774747533680730288070665888191752791217453577941623358890682718485750364660172245964604456813558032981704870828546324164170839828221957476280366890787296751704666551162735668813404643572893959901776306797008820112780131487991840602380971419761998113362331292950945736821616960939940026080416310469625874721497604675412819663701318640796281549084245813732030862987856519453120455532997506225700586169358752933624533314964103079578077735701369008107227257810207858376449773767045450263137227686815084646491968688865336135280294124086620399895246242179530420660555193396928409793569423510503183331805898378507393055488341758244175825515633865903426467300499834837096887381229295376712491165041358425279050604590923401957659374281718103811954534101159297288785791791798344628365250487491119106405578036715089763391379180198888938559089368614433995485997196667234875846537540237862882288464240198167161686730755403827212325463607715952387621685134300109994024431297570589339017700702907522586880257128429705806838914356999551634203349878664601275336015051066559927730449447237212566587231698498014037612441111193065525474602127063671668647474384418055834028588258036170692318282369759854802707677602248915349659488902742004251699078146145665353465392805920996589071191833707490368818501445767943779592073369678064721480286273311545277534631823484673985976222008008751266262986908976656929674204784072016427621615370046472111159360627380852384228123914524313116107571188567671011747918855561846098482180233844893496484558868415317748712651591374588194170704130467852449241882232532189175639152841339995360729896333649744728613644058608267001668812102391116401178460981326849321023456264450229711193531853203936075501560966316209276532628806571443866558076929850317141738251845943726675543138749321448199781399268158123076550781877696593485304458695650665663956014198559881889985174654746532401696483895379064214702883712818012570539246419146853313893731702339182752413065322387777367591181061972609000861426926645207574451501566178768671175362276145277147269396683344980482780381942757215815387550956161896940082172453627129496236596082950005647957088285823720436882541503041090588756258218054036291583786464629996026453147569046971859702035614757951504008367568153580387589331284642373273563319109087398541762055327335539820602914504814847215460904266020898496205168962114797348015896226110516923850696239503742573089816910455344724224117560271618369830389784500013141837540712761409354851124623861137816184255795865267738230544557168735359947700997351091718001501961660134605254077530437742872995010157633128624107900711170615282233814363413171325072025119504086730852987258815537560930537690930774941987698635817472953273836224478401784369177567978334651174048005398025148650526632394465899595992775665889002643926200843235496526110695962368735767046773922106496673096168413462045025218616120936322757196340479154197771257143027080354679610833610107917879989306868267447334693402691891449242448523512278387982618571901269405041840848543576369989520678048150209748944227819697974027157640830992776343430953399184062515823587467102155531518185206547166528220928584984717769452859452605038380534350203035439234993934339721954515015325787510791152146859941405859519104796012925112073808537740859641279759063486839799074028918481350641717115230449449760895728088198457273043880899534449867595930030016796721061046157789703988322386242494292804807967684008152719752335756208448778766358407075186527664971755381782450586494397857554760500812572732437563036801568513884832715964709268937900186126378394365963417557730806313424583454682034591967393139084792445566508223524095009879436050080441482762692738683557287178208773127142535985048169660187288299033025225383897895917604278336607230108441566462439457298632012292591589323686512955503461848834232541177413257057676661121279461106911976064441658432085582109835706927640017212378639227022119713441706608131199795490262473608784505737863435326240642375399713225738929102659172959287970873761188273935693670346024950968536372805733191397666152306790783534385862482879404927587089445572823960820403445242184096861627790952303018573462303482149120482970697693854671491368936943023454467555125857599460074954326869004980550784656254868116869900030780040371749216857233317218488371786706691251990290633217006207172013438752722380532423032240256152648684463828416890634776184407554008583234566316280267330299846104067510956193948092183388585419687940583138684182684416296743337219209103362945345031131816300825450000163021516967881384742863473612100074190211107949951221604095123694069663539842416638161790229465294971268891676762369020876267462839277811500975026722674856310459757809643373390454695471939381054496994686380750732267493348626712657709814116869886596994540001375378703669408688461770332805366323648392569340364438523200643728644147778550393176153921852051781543742725855309202232333141807012769229783561470042184226032291411163466212518456382827245156578699229265572888722475862947327180367582011323882687368409187288092208878785663362711021511475712534237844797107517929175136728603076127957759876062856987346037661825927979590622056422448559465675348311080597275719198638176652772465860108096315325673358840133937320606740146635490787172116323376807944719031282520937992150866884223028651348036718168869242474695372666164501299667182630753746292037574223218749136837850887046485501163288296606898605689564691198551589232481642685889971079890686881944844849129678213091123033175770132002132579447879303906898522609182310875930216343361671939007024079951487415548893882032015635796331234903228216809522793154006552544692540357843729187311482259476445165406316079236938805368185797271826666658941909976514366253128208889078349917904279108186048708983504550691741410466708684161213683672576192207881817421044512607613837157289287823741358873574066104893266336917238977463269056374555696076114678297410780204952508464991181436795945926433072169995598205292937238145257532631279067437806441821409882821023895867102014278053649497279371760944911548535015209691897174540091018059679396519688268088595967451267967651943554830534619729408767491581859295054825534153783119298255755999295335252675938271064039306987002257265127094609487878173506337005331851371615935047417056724361364593085407853516940954234558329030522876480694940434003771455237089053064422562875050392497587272883887340724859308387103047151312703311906869858263426314688829787479009709160010776496694841727252483347479988101339011905258805862028516365498563688638375972531336005108006443417564882920216243230517784679312443020393555377869108690731476487833937771911757608400632700446016505770373096744929240170310286513785399320176584083308091431021860526923638340410539632249079551217635721273316448224601542722927592807907389836789566614687748355122815778933687447364077644145596484023231752565479852560172824616425925086931365162561104766239192664277219637917403116198292804524466984899213223046444313153395025084495945968261056899422878319578621677657091608313198623037598987145999226008818081214554103999222959428275372979478639158676651610458121393399810813368802944259680500851086157596945727382545718589157802646405137200855053727360353973510879909448978689559925985978042464644514239765910815308192160485351632954808624609035391368237273147315073960702301762000444028029655820745757000974537217682199590237014479863278586645141992726328933132217588524801820591173560670841140292632368897910101650938094718580766985146658476516783800616859343722907972276413115344238758615142291344642351351197056510132770330154950953395651192433639175376237121003774344983187793254551838939112816093387466982718233623692368622618300217039260926046657073758220428870866931792965522967120167625522918810582470657150890037612075892957261450014209094039389240881063967699274074398305525794263272835922710407863704352175820738073840688593180771583770894473524012440138618430320401435972648541945825609662774904871884447620961770926709094197530084981815949514059448856268563681742114545220098422830499387635052963518924973120284358159736680272695299136867545111052187328983982271899732107471633628858093194235920862510582949267949635124613815078147335613694723543249690602145314691416061399252966395762859151207184987877394340289255803971748056913451655051975090385524470727599849896930374893874825633200119062503593361185877762598782590102162534555961080937827276235675546096984638259339771411218033053752034489684391910238142627623130261932212714688193746387850908139821545607631656093079489975151749686228493301284944626979887004034910456082654036605075034520365333380483988408498448665374424024369999824426365684280271463466827131830915826199160680389200032153776533086938309438799746772268386708431908828630004638265265040751063739279539005530358090865928307499815978239681409459049987606521041963979344940978853538855593176216957834107861944831702900414861511406419626626125793109016819936504168139640556510180925499597190685802675443810736683475536803067922371520297803326158386495367029439209023564269961196695506734451161280644204099307479538918488636207643623994692838528061615618473423782780395716741537761747693226720487355527555277441684066496957924550210848565822926840128021388531320556509337106734110913869453534028839955784969078559752044768536697345840795890118903300922104800532913570989730890606325361200379690504507181839528382520638801845143758231538066852163112956370467859198949065505395249889169385384684543598379513337692756241656729302695673200952951306129975929725648351834345715267695260206560151922075676192873011786241915234495266751693464663775950811038134762334006461474938627324236446220028700090197876233279136104976074027484300523044076294032303375142473308819679859132465907888491893263370825880950960821348866721836219316281825606826510600171799458270932167624333567098026798070833769842838010251865477409255838336645892939969792292473510671355118520925216635968699311665909422219624423528495180557087936571047849809968487771901743119336749288621081506258762942459957172493386034873432040412513724966980187597050062293911532543965459111802000533089146503139535130455975173216059965224820073513144935332754808947354614372423430149818335731770043357247163297440645091075521019029396122129915722301955550591621788890671694274747685743056021635795749905915962805230077235466186548340089534530360656760725758818532764824038914144664581011338797471017599398563813942971160228752831958913853413226078536057704837826009141473178385220369349537109161882257658169106874987577839970913207108900205569314443507594555647423405178975279029803345643917733568481107032432285997530367278655597094558976665211820862312174285885321292836739949364382045439477302423742317000639688756673675668651556598371552710265513178159388639016849401696945344750966142651059774240234489823915654136198961258980164552698391485298121309551271681674634722453364961203186165892995514715945315611527542194747607092205246989060834076534716728053392776881986804604174400985088017852973189704932233466029577664368060236581505085555328971184328917708708418366243640303027387338234903495694387686227214807140913845711968679148402979809555701848494460947443296238314999406062944219815505103534932186240788425591694011665903749406574639966288969186357174439689934678398799522870101273681029435641798084792018559438527487829541115326990494739980426618658189681112112893829450269920074573099539917427718607500494744237802448208670273025844885087097906933841312189843516603035798670878881017764037977995042509149672945433214135143471001233649078760439072173074916365512214487622232322136904763766257561503879359983599231664515332099064576656714794518478601695791044971667346368518331035068930524931789200331678825949350477351862527303021360947170797143334929813475068027702983182775870590389152131324456271529783867894234367330817113360687762897655961007146359240920105538507099971824638843254530923741485163013663297278340130933759629656253714319007544028729918838675182586464874269304264171480481916783620280431739159544170048477917780263961225030080209537935890917288754696553556508081689594602914128443624400408495952372564948348793720579389803508011862177948806266140253036783209087891055895375121953241627033783353660349455776740976623833192176725196862160933523473921532254588123391871663412930728363032536511046496885572487072120933488927170286445334116360317878469263898720044477056677115184077217598062534595134864276523623314040633707178993892990058212312742923614028822659127125615697463251875532681186884800405401202742582666157961039964216404880278517034862098519079262930802937287940872564587332483108964322730289620026310576014120849310708803962812243531738686096843294407090295959941050711544246188092593870956950911879292404406215603225385732804105300644674921262441398622268632218232934666450700899518832679442807073295763130358594071356649184182999805669159740730653392852307043827655139169311349470499699222850212310492194215091382992605966066456679588403455824440726407928364021194049270860676260461384961245464306610465898352547563828107462928621466337742632683883340503623790767622951246574520864825160433666096210332201540884791270368486570209344129839658139545192530954949893929599279220447143993312174870667962109278068283028626770844153945381242358890394737007369735416421422214022272143537635489635527426371358299817687312549119025327995563210740792664242568982177238667718902057181202496191250616833756507757365417677530854546719575141141984742933215761158871183744678255486605228323407884962131003666561973758153764312670268167079541423268775229832666758361988157846815319773552597146671726982584041070066232167393634108486434668556029203161439845408950384405271743102071881480834331067822516457388486448715554250417998373734008283425588523448031173931908803060560379566868377535427678165578109991944418435103498789637477204489984608531057531377398521902209043122810628996716528408042812293660560148330581926364073849450967635950499382059193444364443311018364545326023846624872319146421793588624133789735183859953130949596623215174296259881417501040630974642142906467866588592811530503715773938302639583412388345371534795229033991234926362929118871479777297773363949011669453536438505642763478511445358991599876332543138043283137432883841008137316803424267157385230742255183471928297744924534186595992256439674593039365349034077408474398616894173032103286791346674757034673307180527009122279075856755421995784443144140698006603189343134627039069868537618952317919641965831995182535486633452298276159410514613451247109709049560392424075925710074473533021149799152468151725095120279887178786272974594321957969808774686069869206315064901293379305368934341423598253091787259268945392355836291740344563336914152547148511773759106623653727492185396323019655914812154962542273555239376892022016628002758845263279569373624317686691620305779957800837945017055413904540843563981860646086180473233684270182587268136649913371460400925345846927081213422405039226797708472469707063227000307003041322473628468474768743072598318600036718211359983491557129656835685155302575870411812071897550486737424105914401270306525047878596555368431700651924881691198310882865597054142724567234342878437959014260127871711651486241520994677941932257457986581057158493961384527253817536001737005513672167370611786531112269933097770115543292929732793312089357132973691591585951575438018895734105039430666744583376450543148349734014387741160184071542565522053329332195697985136473035864543294355288745614410110642703104473605906995225048827528736240902735058231931562451097515199868643003746682927251711163991557554115671996916708298555422108266797789846267812000251511419358077736383689210819346467475529094244217866303473468424129838137758970616109541853779843319436730364116114174888658488814248188947528694467307127645903176326646371145883055095237236970904505452339903847952902297786742115295784312497976295257482587150397821483294238787091461287238120158070470283928236987528022935921282757210568867961793547935356916907713729139301053969729504912869542920374452507542238451928541288621810978586707664921352473233916324743561807664352158279290977440929754725592891161853901645492542050178060638930678290709836306485952250505192501786950804469990265500231350554851745361384926769158232731994596658841751581436560341490580748325821285148393947863221020028247282284719856393700244324027766039079990787222771068738783912214295549483876375729155239359690501672838265358203764680292987398987168740466456915083867323495963824856276315538624159195942414362647510521814138609138611399552535377882292900569929708563543084578346786680500205003949236796445716407301014534580244361593094174518116114422836265950997758117898799575606320927604962118230869164152606153474901582835403002321283566287649195057364689931110835669642565527211039214618400019957097455947452895465530632044529853680375742509270867415112117015172627874816705097285274471025160034120506591061903777619300324730744905069756777621299150829425471899861893081996932785507546031547506022682860211551259857031445814048488465423838080552706710008548094477764975414223030846941025976245957552775482227334703145222260901086061401617425315371983130354820078311220505898795977595666099462951971398082358809751706763125634386133435925187731282208407570044226354038414729827687502271958973571020706113013916946968242205069389150292935220510037287416796327345897639242493643812148795502032333902575225944196160750441706242548624361062985866305546042034407164329499291489478904632721343070572536777811252734571390590132004790245076567999906449568971039666497290922643425062666582880847543934197940718010881376858698528984948029347853400902077874054749457835470342485617759159748931336702164849535075773443067393964819119445245710773901884724599254448215972363956286320319166166703929783638417791355784581058287691069797701508095805603871743940893888098771325474596162836651467773051995389564088167993014436250729528812756347146352806885541276233448568914247621870043665812967810932242962717176247144459952428425751257313459960570500039226909001756356484236334363999796655028777505607522102981774415619277196537498135914229530964018727403659080535248824990222894350460178420239073581227536658202002951314863112067360189134895628746701040786195258927674052332085232968448770090393594828002091621118125404054969020381434633065904457758364214412428424143517934856418009860146133607892232066183527416548896738291758071463980153554984034343794016643150509189104069081813493254887123600388365851190269760979405204172820633900550637507176394089121393765885433525634815086008934088776130724429298441846477917741083276482494913876714008734829801267031444920340953883242587255345317912624600119320693379276300242804495031831786396677851501717684658947888150718939455711384071976557571867041313359398125584402144750464514457531499174497731736615950662906670615064981749733641014721386892630720844422244694900461321784421546010736280341003173884980293974721285576906347123846762287369929761602296808863213239037527801568024654626705239686017503583599883550968939762489097974097891807177939566471498059666476725315421726907483840080997802880215006896342203153981727216071626272099243914406903711710579225320013811563630000182783398597003446847324094251543829492069051112934447803625896929993044168176897578691856263527400495987150080238537983009635107509784872007132935170944324817942242793746727225621189634353125102858249136151870277868725173001710498331440195098048560893933532166702710973036833372960282722701271888094249686680487615241208756125922824427615704760019504532042225084866069493564313883762461137788970569711507483444579258436417621100090211377206825376601666868194866805109020978573183081172465903755419978147575333151629923255446340194428487253797173283293364887960167412715589018154150726214910519807604809731386074798526633408730936095828832052407731618917988709538972326559088929381828172788668558024463981435436637004127939603290377329489772243617155241298483499505603619217487377320367844629230125994453117560768822353140039756465985922873779221744670220660209727814970502816411363322641175010021685357469204207271142716537140284056771770466262733771662590963086908117014251852289773338691179191465766483612600185646499291974095875509923849466619532421070884203935401066882738043229775372258366749531999306426711595765652678061957478608769114650964065189882412057422671313908223912872494002796550214444713095224481923160254002380419111489207103834793681814584459507749953280904107574154346995716219757839662570443386052012492377421473769987696924386279967495782145172586867954342806377010344478308426173829480998058127738396338650183132390172545171862760859018059385274332731751074211394297734513375617856703995731989191063610539424597457664269072714047480762899155175899228497894732960191809543048995431667002740283726410338021051943184630753601092436951820666929258389672210314759157381635748640026330975948741163065337384568902616905539636132006638730202295536152518123614377529097578843594564618406105826678314016403241695745024186588462807980469588069421027267764172986169267909077231513782334326770215033487256498336128488269754886664619420237899886476363557165586000808358416053647806347734885831767597027477773005926203330610640181947850576781103621407879961454022005970184227212808875694730801778632347327234556180688244261937082386647208790078864169171383165136072874101826622182519562462506342776549456352864408762555131030485511574393295279858248303862802439666400570769269625647376043431429376313140691087233040176167612345723780159829900064432243683159901178143786743998680056378120877500240223830169864379870207690395666172972007340895953095576764150595410061274320333026643431567676561802695853679301865414202881807291180182887359151049362811187335665012376278747651052142894825043400949398957964625135277831879770191804421527771177439965921044708242192593677495545059225824115649676096968866655440836144215328780569526883216315247663657582464849648130481133541508909946995447411279479625868973509041131733873509398792199736718947544736550826874067171859926835721667746536807868267929250104929417138881317689113089369096639319353602285027571181489877022821634224530795747533207055948071990897390384164101838668962536754484149354369627351073616436922889239192227323052856597022521499400086090382019297518468578110643040086213732555997637775644589587073016099203451029933383322548728083745050897721460753511135013758934226115953521343316629405229776116701659575655561156317817826641837122066031363382837133607512461917161380865935766050274287055420986439703024424013329416726780828718806917818049917945533508611168885253707787992200819469754601644375067757955232118621170963324736975894593794586119528961328079771016190029315697788543999095550154752128401040858247992278100802626854901065662068823208789639103699852175942455480880341863488968878992705434522481913608312271773218563273577251775973100319664659959127728565621656699573815221324799634098209091175654224681148259818209356745663044031498125405227101651309807396528556443986394869840929410470495243994817424503059323919809095166151359914388188806299637241145881716891970871525936159417703871658086283835662410556066199549709544716261073688378999788387504945740208742733309493437253547801419074924989322720968165791953586076339881646804723493051211243915496232988740923393780523377803059007207127523897867891762396244312525903214975813288079063842273353856250261899114790156457942995755166209537040656898914482277578638274928173031861506137085042192479565960853021578491159531044103294042673007460342525293736185874480735189169858818704454417686717249954254980356754516956488787196007238246807535230944379741333550367806861581589655392941533083825082114032209511111207138336426530796215581965053320546454296356971495928871566006816489417248380142610069551553743912982610372845514092268984557850118254213077641299014090770801615494295468767580761038954927909171339840484417132201599958482520233111824272726117705903229443282265336868696926733997875709872752271120849211622815289790411702738620809729337355150221514488286196425654481612881931317989960253094442549508379175423498798200579159465016901783281752701764219569629205580027522476778973050616363261311926157848282217618117881531115394110538550668809620756720723633720033771078842053187873292205620292431369733745822631249678569045132762467033723850262945700859411455410108826421462651963446773310081317334968566372895724729991869802969121959215376135216424741117457822816716052862341224183574021120916060809555680536142256171220630791942626677995812637456263479704218669486504395102339573021150975191095254827881821814328277724048910550877851900069109598053239000797557936911511723828581182415359922412978593941764181339271122349213065007476338118132213317403195158026650195962759243295297924266783900151747684172022872089437139339839951472666134739472278411670181561883406477395287091122416323403826454651049082324954036472424617892703000152372312434923756555825048933178884834891904548469656520368137917224142180033803462169400695092046695552499216189595616748466344443467494835337559548314961200077427250637805085741643795515906980481631540699788628053892148395064588344648926754180922616372622487028065365461001766147029225567308338506063707728196392577685452751385490881850026449088630574144780404486138525775002406759056341176190401187990213143771077506658781030076718525084708177735230133347673737704276707920390976533729874066058342546927548858304402528973020258289891847554224206879543617806585570006520065666045097024415704640136225442537767759467132957937556962521867812151210886247818649675929996884661775264917034294392743001940798145150759646475380114007125655226829951212909950220156124577036271226164193833184211060779030005480676681592617756864020144413120530544384439486365456521101992761392656867386319231169217001546209454148014086179284403369982659424806570171973653321763792766178851691155726484349741075015677730020210938167361290589686330667548037498602386375965851677779156419522259840200309783370157758291746231397617940216776207004787506489604832279757077396096151225965753576326805200816317825159158335089164924042008869617335068955923296415972135040230755163928194595334063374939439046575672393357774194714808313917254564609067740204285539103254405331988422922577411479052005558550433656077382522049178353970786157639397501184070065519765220116671914790433029223574696864536870295224499133402810595954442018199287015861947683300667700983241191730021276027573967088892059185090784094973174960016838081421971011575695161974779713102102797854590575266102600129541553426583852771073787588294637171516859123873705308304912752344621973911146189500226196862446966075841927694586717368574626525060815708382154491273370919430775188641076650233254768058465261223250974108502859774067257187915826452926429605844936162530683363749737549197429957845385953964284448527949752744151689273178450863108539982332072514718610001724488322900131695591634967511075318404117312015168551310162875604872983156162562497435206297729410861437246373189518109540220632612587546571813483285525911293555633593435733230425693830656031084241892693157850109537816116681676805331605451693660057722701038379502478115144674835767790860606713426395744290943105101633843192244132856308469937455864042235202298033050248744157637126756343195978446491333084163113595914546368242075991174487457874331220967636670148691023845832195628049027065390932301936276244382208744643916322449528963266897570910217140157093812239548868756561849593319353414156611275665650695921071079467815185935305803418335216524465904520243145986444061434314692487255114254284097719865624051360245437002180994741486358774623405446573449159156396167284203349801256172513774486758410538523768513384497110545270559962444302581189691954849568403888379963430424349776442004490925514261066520787879906627755529039951832742562605566420741628579991999854471917988357964892205070598340780895476056222047239319547935944602203299140211525251080146078439643929068214997244536121554929189049447447514647734588606778793574563738751579801800259082575923401102316050262325699161392415627175671256155889828437509206513391257467718683915705003072875629866451773110704079385806343520555458151774941243264712557931928903826063198568185336225884816680258542488191856115866030504984950942191532650186454468240065380116086601388945059051983668228649987908634348468219741184476900885297661248902130941207928369578192718054742938026728238406830798878877743391943644534919346781961637653556914176179536034609442953863968091406207611755337174130017368917071564778136449850376698909199123118879676446725469248826378300778300779794365235521351086262206156544184712782851576109298622082410904515036712607424101401679779149889081557511236584446280721745742153390528078643168184508296236859824285161948266681640101329097569030414921854771616182821565978407338078267969683531421322963258708371877822243967991868988874087713426520419456595628623335281734463394963043043613469489395985900523311007043183600705880915885346740984566512407112204295783303338435420439664109266133147751432217406266435953936845173085671337869779396283869565115962875774368350674447068660931939643212169489768019909193561939794796646682023128441993185558914221025062357670703445976294984978737475300650641233346814636650315470059131267659104224827400677112814441579389532800705493109807680150243196983644013654205358587196993125863141146562457593372625753051401838400880914273286138572413673480252900368352670269695930085486312334030094399135801996506813949211958851339497650430773570313694944142460908666852123297091307226468448912975148241878627278945975640851198274031488932405757435470855369713472335929072691855947366200933340610904558284749442127022321177847017692800992722676708148285348801719078108189068540216308881957831480209310667613147004649509930549197516430569867075596278355401113357282429965150395222785683031747945824942217680485873180869496140718207996784523565592714203808807077353160668718253680873705931028144267273704523132767459456433833595178816636109422555490262271801872970065904248404256512725778768323669412069915690437919829812527556427426846333965711939923935976457738969085490726819249229188543640050345083497889798615388348294724884026076587750896406064503726468401420184463557177135220329907823465403678585263297948683256943727521061724797495715935029770814289212726777572104392744853639382166300682013712364982459831303827913544209618849572516497666453283699493613465634586726139093317190216296688719183429478985330695779304097345864685956048028828041086917616887468607084574264756003712540865743403576946354184803009520219980250121605540611562076843575416728645771378827155890730248125862253161173321263895062316324196966993512253276507836809124020808669608146453122496372864872969840768534892754376437698158336342898885786199440831617325004737488866526601355308999638028498397970543257239318107750840737735288983641218837422158282747765205407291282568870469921885343088618684872972743948852510197367357547961057076509657622929511675818597305267631588782442509414185008426895536265379284012326556608760966352418982103147440014176940239896767870853113030513337735321881140120802103063679920433693479872567664245662568578469947846260679420596891158914777174445795166862817991985210836810862930047810648633316461246739096749993737640618255522203826201545906181838483087299005616084472070913291509847668407226955030445816269474493865620144933911418633324269259170449126622463229503720239439336004744233110077231251904596094843166166680151170341584999387096016471071964317132820414325209077538063182215874846433170592357468495766119910569570992395311015647184307142763612672402562802643658292655316187456003846950247948444083266616749594252542102354323686843392949710185928390100262704097871137648063027654827320164612572981524185008053045511736573953896259244404499666260820993966448711539004978180473024225174401277119111348143141413321407023716577226162344971435002085598365978641527693607528103455273442854648639263904424297356292100316980262925379076841884932418106134433224349198865614604080704234607063354783544929304304381539454467960407237740780832347123866792161071095985302337003834102684033619946448965904273125061590621284957304661319402628136463175437788226025263630277547832153230312049142807569712329845454300021164922363830226997142632530442266845164879213683516614870208003907682813406207016860842225226798020976521788068771925083245185272372814512013008800809617662090053006637843988440297578787127726801546154216107163126021230926838634652809285981380604798302287287941660018042234566467766301639585843368376352276920674019821107555190421445258868154766144295973123782916458632449953398621758020470091163101320354933738648258727811570984792526482625824393047759757896156518067464465035861605997292724529258993018143825414144111480236728448240535845480221998482086353739882481479122322993418589961879795649768215261237863666756780751078457837121549727556921403500281161744603879728757522335276517246532316404416808831130038939849892392015291769329673894538332000245658530167819317491857400144052400029448785364431415957072472601569044116839900258628291638310389403475222436709712592651669502313082159862031442152511846735290192984434521771488410136909883626043950846323521270352239349697203387844066266043274123230429895488329498852525558270905909085002099325089184368603229033974556847712208869202392628736603091988674503597424800324132141055774073599606450685143372821702937969897942582211322904684517540550179840130165186983884834382853875305575934774419873992741405431384057748987286010246703164566823770518206978184296011850650792291709861635659157624496150461580631162110207413484228009203918506340101418845828061304652852097822538053510018203828298063295561573441083241155775665736504554808975861273171497257787120818473303368053146607531080031057719182381353735787647605223976088139678935421000558956512342209407064898455321035595793203035952593711142788631041542876060151529815792780174638666714183915166955599190460215430549847875889356870432803084123443546209176503522870471522071604108333963222185604031376180174310959226796003154615526769550427219245533581208629362972321891436947684301821923592289698599285008327397697871095220983418451215348482293337003278212360316463549593556035973523358811126044918146686096413008962812713795790975809495547300000347568792892693352248196372901801717146091312744725805316696228700443043050927847343352890903328396884695438862696246424947945319496485316946638103194528048864731028775498645215815377947533455116274602514553975203453669144541852367060534697909114378680610401136996110486255437819091328529838810607454495869516565040617827504747441432090263235111191940689363789979863989571422666475313402124655173501377915345150007424894095819260211597348752968953139415745305731829113743103671133551883683120165674448371369164052200815894470887365816611531166198780964667018164018761957328369769623190347586262792354356336138227179763758623260640161504219465525030580088087098512246206712671224172478224039942275432190188125569896593524771189389231449170943732808602964304106623772324771068327761041658707136164671599314313162453717397775804775753232496475235046831478723735211148090661099552947224666268945916318036845145455461721939188916105806107803860784992384766789106856629141436557518619370766334802735935915156813594188382315887443985146562485841931776727074095697590385351198609022650828047148919606064814755727513707200457596092804450939187276582666610230261488703965429199778412828745866511325894232842846855813307773963033763263122096934952070214526463725897964998666858869437015483456488156696854121441352171318023767828800381717016863725065585339832622707228247792797189312227145446682892227891917213535785655291635241623116904183923510051237844911735229589326529642921717807617500195969193522233310321322297073179479412490947648146651272793182364311147402935710218123324772459673259666501722571822140751338974838387982921138960226520703422640824963961998451629084919132362111339111066762296947598540884451415502814101038156919496119514786082586873401999030435396035840999228212220978389080591158899901061095132205158619325334868381359369930494846424369900937717693852891262781404389699954216414699807400596277017496169540927844677741643590339348985314103464819343174204023586160048629557486605607147748390050733347733053526500534471248198901556237533473086779362659001303653457243963763790433679595340061060725378393978805400262052627245545577807486289836985736949982598157542667704907449769680797714818621943756559351040897876194703446123141267977781008877830015837582627594647201728016824588279051445103731904834371361770366515507460733888170911225781083133660795046544903808800295710840399143145290823387006770228525325826824758494214812889012601183928721880918664687941576343195898905347536206263647333786010510467209774598124899377883936521798389205222048302243746943603000274883388475110100884102309362281422512127067419247927630400223225154111241149665672437465514580416119696087545292465330948148269679201940461115263459981729113523101716704396863982288177832433577850581626273819949244478756105224776174719188734248256338918806642529033028663938246398961135640574571967294034079729687061918772182146151603930851665439400454636741739592344991008483995708437940379871809253491236290186652078077391012523270851735862709904466781729873608770384346064360634300719368043649313190491537605868029698655287989855489358369923494142183184942692107742418541554043482425230686996623197697873462524486472576475207911152705232315779958778882824813105790520491518877414704679535446628186394683279133755231209406789978095110576458196607571652328624709131197565698215672864693945603929738337206085361535480487965057634442519762325634936602907251185431212927159239704480885722811909153524081743310289839201844756326295263811873275101459850897844045602556730706732740512791792558148141299980178324428519024594026312887807711158327844642204244386388555377480890387295215972158449500197898411359219777761018379666867819738056515848946834977104542020671823138730111132791676076047385809943432714113433543320969029617972127892962473361036394667260766230523976237751660789375072499931367548952209790024184107322222935865168147035984838049715299193171941949152800354401763405304532797119007890602582687467298911621144766765527944467377739963191441663071608558612820885630330252244228555979533977805775335430334293449497182251324361303291174654407054805841106971521889232483363540683524135362731343125607005943964593778009771951005805105819136751686137568412791488170603528571564651334564693503392853681492967595097755425819208705331912629788008652479154658939685808595940151504149823460211186591219607442639303152338534273719690159381532833397176158871458629903243952612561699911947731120130058926300743975808291394515410508728835257783699648290062556375399562060148186185270366213549083380198377223988189545195519154657270523815545767972951002679078634197999123126184442927759908003090949318342037851417743428377002433187316298241443829698022840113521107516973907976244060861765748546180251640630664429319227517060771692392347320756856530039632415406319634384789407639243993051005534092567302569880188683187161721849759051284170707936171990541788586058733579392479212208362445256610726294061506841968729481430261880268811013937338523540796133680859594651185703002023033960347353489051290614628483673523304854012619306927602580971310659287017363961818659512432996012998489190935298273342474369083610660270014197287291577853253565988846676122429161903245113121008760272548383644097838731400857986905530800446504209791997970919158990625129845716520549057725306246498043045132674337347250838386741449007522356659712741018443116618200931663412370392074019076654543716308104558815240552913343457065807603549223966791952111781216239271319566836355906622476943457286042776742142352275084982469951753983336094773925753767325493463295879479471307817972656695219072991879067355022640386352619578525057023737369577976089285584795263108430188422914387360613987580644223446204067831173328548926540329191364753578787830171347504494604157801141754307145699481659579517368475228134518107529094915701828801387438617121344825488455045973239131256287701458853222139291634530517148939456295876682692965442590639065028910035492917307959805244521729208216699033844442242582345353935740168870049153080584115103338932919917056861938178597336313962845785699441597780386108177307615109928548294949213284574536694532257906032964989767985960522953478752808204976809767457480669131905298045840326114600794081701641590518796386921941530954997761695240147639578884148136634424826579553089821050604413177544331603605685074991416748746594369444866822465179494930004318839255428655019722739034423480596201771569790290770349165935202841001242958593696314910808514868511295530219600600177841750210445339266551303377789661301435536998366546043138640098036584377520698804554187479787267949104228352953667660567858875363515299476926487846429494811531356556027481167674508425416836522216276232287047703438988190871626450983251924424846791834276483526428539932760671946889996405431378233780258526435256016463877865478594044725982416270032197318565172833338915067211502426844568592898779518905950514338381305187083221333864274049429420999801380534599047903168273445088132225645439909055273151001899561883518443616352034709073379574650949362332168183522968709414210072561675990195395753089657306022251253992926714739301775369504676628107001998300982785516256481029875730685085773298513677744067849339564931034080979474999307546440908101327305025834180156418683478867953540101089763009649245298000751285076466537969424261441274552131869188030294773907501396111803201430261986441266480791101249784458024381959736004053659889605654491512075779598467083835139815585642242868564173750210569582935530312025302449996253671134510505556916273682588000008131656567093816415246486496087570867429865702907786235585324612949302308287165054571008406544106157584890349361805371983332751710366603864462599184918614769676491639637861455341207495796776515231818031272537187281850975930456957779965425804236236677446982354204683567015065399634339507334238726676521610963735046838783554573882902535818347587144488797139935423497719685341582826080418548484840869506136177204610455701349605974353882011215569068170406411465912537887714404436277514300973124105180733250841000694535812504867580213019741139166938165248824723615213802230654325914396068417989208644025659854356637896951900783316759883087858939906989918506312052832645415860210287188678526834566548592019038430257608720516167812030052235704807076092092754060987005672520885221538082550803327962398202481246945955401399571925556184118478196004945416946383460316000622881530747387842513172945359129466388291669800602397194083083372484164946167271469267053221195254638654660434082886603847675098261617412039932488619572082568112816391130053552115958920997909806538706839955567768683737932874965879031894904870466038883681672566296488679689787421954339256276287147640963464615411381725411170320971759286730792717295868361953951188208637096600174180964610619518985766128275740427233864061995228406020766207961373380737313847479624278462471879656341469670878657305213844761020245957476434785711232114942829032156994892987216649713880330604334279384107522326343743965959289605016566144874831615918179908073647025687882420372211826918480430873501061259734771601650161122534159058261716179133774048620550930544686440899753775952728566359742909511526395787284183576216634953878960286853477246611098020469724703733278904541438354835425434803889737705267139308244917671265652662106003780501818912235239257389396597199003123831018492782172403497541202717440204504969675186022344032074758978488462604447801217002671055356780451416621958078628828778115100872134733714296010736477213328174465888238489330296156093590202245308476216776006383436336999031818517527429121438363997373953773552573133506683692545290900505646604131622949984534656379119010780426509177391835265576288445487272769313453128590853474726603133005407775293318349017150485838307457144375910283606011694789931857959150804950698300992997803762551616307001562059709235061932091257332752092920010639369732549974628328619782966738131454912145089295344908364563607089880356738724785966353513218481059430165210064596394346721228075946856772119791385904804950057940437468872202547569380561234706927675139644619115930005872806385664069889108103476077738606020608582218619472020215688219539898274306584387541237436722109370653851301046822129903503587836884133879266047027067904476258078863985425097030267781628696927435834815633608266388052541845794931720510884659433092838595254874867849819874596959849808021990161549333227743076673180620964246448905308006373273226608751778927282535032464986274604764184290227778921846959884700987917160882518909997567481989297698848373500795740792629559838447035570244885820585898672746692763042124097210020729950623167351283916741565224796137229662381325912289095448289714622965492523472036966598357873860694643973736703520300340682706447665962570799039785392227658563892400384379255189612888616909783585317814512235960312835186497933389455629979837762740769473951091257697436508309357377386540251664509795604296149286538909767835616215785981283277261935909369638011512604564566342284755358786155418458109862434134679278566549336754663503331727086893201365308789047919400553363671481956625875874658778028101379254417095420367973427769384049050807135287178446510602899579578870943653809140441340509007164972579383478435608553814054956733731643903490398505801602674013091881483267096981457417346132904881465469003898540444440863780665119190007919138328359741460003715527408135159977038276052672698800186052233370116855830910723643857201318062743027898508039723536157026368801533575422406860534641344571260419205300611767525325539028174635135669004965350842062135381593137469005171198324038724083570236021462284476324356707901282990298317987493808425301306126611054546372702049960414682991776958756970175939340968449224166999192756256709991878283896814595178597192009873789072336855374588310569096283542802801306998278629996931199717972688650075260112430842097257336091861963898344563487487375415029076918197157130484026806811826877461805840064515394071764174560647006826158092915911666290576235803484114069585100865257259857808523499421011296084009109799399921755812657984603252145476854032609034369997770802009488907768783507055960398858120546745006567720831111233640273026582902369240970575748340329642104632968277288383156927267054671029427051502924549249602259932366818507472872292773720843290525634719174766345544985693167741980189838042725706580164305033292649185442251167375852693228643965388337788105924935769298344068234180670493989449327740859534499911375021109375516922545710965408889251435030367389942394891154168550459276696755153592284903530836758001426137615288536617517985060487078326612095203748162125588467123042368797565658378512557160522880472039636201426964000540800564925179961240059283996474282867445909063936088992350237675252965145791448515176674790087239916714532640202323135267194757973035356352750690198822250558693700773759415022556933477087258183540542414598196762797088211816875283246333381270557526003411148898683466404931607427762466323952299570250261409397193344307707548401711466736892815430856319588343454636227183617655691086924607004542022350018576308997621616502708960374008055275222109892276525513482489834083690658092256553462732384264319011380407460008954900676429506958618850851277530176313870961506143530206022921507764284578930097396023468424137015812865465009101067041059101327235201641076228324631712188454322868559706740239748172740147090254612832049070083630751439257140575977210440178206931193153176953341224169086916187771996607023482960632428738343174802694170382030974493986900520752300605877513659614454690113047511689178464675747529930433795059223921932113714307212693206091395368081801533347088428425051559628307399329388265669433671173155277082761546812257472073570025568033588512260253263913155998897343349290514681634617174393202930380832396825056478957874761155101571307936940504197218024278692582337699750002370762242696442426324200676686329209123138766489486851682772253869743269036376717020570837352541094711538767343105651606689161211156190701793960225969455371019089188851457094692560638210949995057040911126092356696054705584823138967017602119803108298075598660277426198056523024488769268972433118819041888213657649634757273828827754850765202325345432218847645271211531891832667237504696094092115983076398225429326276413682751500930885281277797816409791459175868508901130889606427000611636603409067067934609967011283683657991436087728500382443581649664376390666524248213014329019257159018416237597698953641291260679351010514650795833359900935754007290967440144130499977055298598187562803089881596759375660411925327031176243408965396033669991148431428593429787660118778873033950959064265843559022600645057234230321987802331624460373368529378166141862659458567960062710272826592009531338397508037535988922456455946329340848975267532634179443922848933806833307550152959306583768602637608791581272933366557767787833391507984987127025030759104446639910029710985857602500785088730085483159300140573983891965283793348507178144587420814300794159222558238149570026748733129350104178532310798961054460483505665560231448259524088661359669011420394644992255951287172003055952609261929387116053776593225874649230189955668785239626417245472791062420003940604078698502511088704510619397565779055661337642255157651350208573560421023886081871763165144517140515592065940890255755755767188802626265715630644523409446362636579484530744470569066635182896570250668675677303249394445346675514370582428415300370208805514857523390468594609694265153028700543055312215338321083903845759196489346384070865908729713638736160779465457088600623364561963425711156597532822855438622488069667254935356464226632634849890589807746368590662884077296479477134250479805395382678383424608158495169132509255727006519716320200149045703875127625762305351807145828161357552453645777402674848193975451206192963983365446636616211926426442781480841767103661311447794558032995910182506489431126572689357950321723061553975248800280518889801582131663321897782338316178328307617248320233907535478099768579784115577783496195094738376050236439459308468853233133770427338495784968157675841257310641439253770165081296673341280910461026709963358732763407084181127847737902852132050536966715692615108429708104197033984761633897768093386974346868883095381740953577456404623278274799854824004436284338770134039020073481866753034681697895454720040608861170910541082311925189982578186144179814404640011621469365033692562778294926762984401879996606703940653832936640221139793241547087283376858001742101554464154210054417361690782405026714583272613263400663218708868618200926437678924484417550317528640257964272659486161971613888789316354362132483296020923631250235470685670895211094627657362220647893383675807430951190288492165741861955160964914620807084001268944751053054701110619278702864042169206919675047204891510555134435746414078589697075139144672841267647558108119673180389763882872889771751057502845109330465613595334747777565400007186953909844293001066891890130687110780172687192156667116989874126130993843403874799616008042261856457296854063107956667203704318100414291865025758213039328457323827326632174993263493403552926892584117250362355576411383019781558426530194865519639738471208027024943376272473799499960725382787455872473009707040846594310665181037346350989466102390191698487069091545535135972551937629482787018269328896550990326713020914375895602149276199350907996907431575710054207508115643638780935350280582168571396952664513714521461278395203543494837836786151342381740888223744031759566859884305662071355865377459630487472907259707693187515411688124872943283757047656915104249782148498275752419556469424792431998150195264287687690384253610983871226907342730920608168816061500461498007892918293970530472503075091749077535621425934776722343944701136339518070428617682043477097262110534975618301562059588957021058119323582366877147638317703624076518439739265985895829149996961091935913497455809942713211038586529024025998903155489453669065636952427237165552368544390726199024842445849641278510459680942336746515065244354723757746388608071839123831694193730358051313933531302407429485471179288735188901070695480563142344914980118696169742046747764980359089679409253447243546831654650992358497136075109772698387771276465303373177164660438792829918049365039475127767142286286994400123712018302007025179911077494120489090781315643847175581878750863296727676138177562472226354795109640787584760771623137288142309885708659282888771483149086789665323548484124661652299796910186632617419220037143762758844887815675365293728327023617639138347734558341065526035673366723530811881604177956846095083621244988997676771053753157281288232528491981402655445867345510332459015853875752511140733772726417364537817098986212046660487322631715880392579401222123605469258066861802742632396590190078963089302341044511550452257737711556288742280767708608024181064519737810315222481521745515745928654573769068133952891452053195508913253258494635467894417649034338602976726034671351359919378862535952579270805430807777109544428958651452359182952953047074705133877905518917546245480859026899082150936869378874451545789467221765091326429822194666954628566607246897170213793915744371496941804715484548117339470654740607305183660189162601863326247437305787234232228326979582734845295752106342816492145364498957109963626401168747855630244307572028482541325921089308791748301978477968082611475529227595399604024900007306733843240688176229244545929000063814006882321962057513232432881432323143443726608868115701455371366563724515742027298572269491673124776195151360613354473610381378870154978324041094687478333719200192601610588738187067556495806987350961435709868787260330387409697677190011827640036388674782152926167577807520167521427970889872695768871372178330402126801229767683076610804347164950963426418659707240440578555768436933532802080552862649014786721523962303112845902734821481767304477697506190978734632074859916298479081010637324630474641559326465259222407171049250563128338589953591809268895492323012664844976925185090541070184005740597277896405179320049338446877061753486203786082230780921886753041723611463636148076826092622522515505083883216887768386568032213897553724302107337412778173321426019415023805673736395334613891645356240647803216045066192343168123598392097147543025777169415662629372000025612704520449744939071586517158913859465831211001293614598544762561354945659619298593940327277302751252973502061392821439044532857612237194782970363802849920120248992987904783176677745585834636466840689107066674260776531647979476781385548023034908903796624279963622019225518951785292380383662786188897482794510792773856885387763666513225401973379769084813143719714088540518516177072287984253769957910961755614422503324871326060115443722939311355382162147870939050465122585264484101332093866852747423445637340045672635937199133450118228255663981414319027133814872782110312169375262505090919061114540801915891762647319347264981543080355061464933492124861384824494884750240328731199137079582116911040516401942155733120171242606539467472287205681748346148237587863546111708064631514311336633908699341422096234559864175582563715852733436835602718388928735411285181118040357220359782094309782418825467583111429653596579787978443677653220049320166437415777595238301426492310913216054828038611455101239823343664619197417297034579900775352197093055933096673849683918028434802762058852471925156338235209802331813371812984169661416442985445249063155347572158195345255665252253369662440200296517690748102623875225226955112170795158178276073696609975052446091917364875599958204438443982987920600335868942000730851417759811947221483574581482554724304722511091326659459118524011468489790601488759661955002165902397199416002357406682486960983567608240767150866377974788872779050447166242437993950964190518192502101090186925038884647635082992965036869124978218809727801782755740680783236705932861083305464194500107300788353132571592364306326815872520594554248769900350401250734634295619614715483508181581464187488207392239412041876887524668747045554467543046185970530221571032414114380156303035573382593200970464380600313151818554320360315527229940153582110154599091137708604479018550009109345641632608825594166367123818747395820131750106832270996293464381692718969185637542394381601445420371448928312393783426658741291354139512654916737074463147425793031611313026584904191881171314995622494029398197521951558568841871894455105499377217516491398654799543984476455054056309659250650528291204394144275811428783502947657992156342774270980052223276871556816987704192814103620886844580531694687824843779027880733769503495596103594494286953493535306596011091561947835661647903108345524829403928858559253247803570268388788214669098991504044828926984521059971336549306757208072416400628725156921577250185693282256154563837613672813693853072381509467810090268118507552893231645965985812073983204334353817104694246267602580802049158125642803755885732319103249763203649775594155063570826395841821148747025298292541836035558441672653501820672343304264756399656812121870986491459268276794475161008597296839962106804083873070824778435742815864802061361440476212153142387048811599613783345281151724685001464261038647916629968455035392884125428651747833854118908362017353264293513732209891075517785979774941399376685641711371698244831531669747370022161820329773266676695831894225153301343609327471115923299320422358426474484331872563726577586626513798794978427302897599299821045340094333467697004354745846119670919331408068502067500858080730452202388311524116960623696191074155657255660050823766414303604683334862356796460385687298241955002423253327051592019465584770620351076541811732356886104355440836289119578951845160900039706059613031496772043664198609194910388068188230360034155578936379472546177126464027432025408784323366599863739712361048315735494150993985183196144262905842001065153206681902982734682164173288028347214205680372772771943370461653812026302834972567154040547557882052551312473332731139239555419536898386786865426223030606868540239406940376310721920250675890217419888137578034621267363916736863778210301071169252103770591551812710678491812577065535765906013484529641007932449017125673484908639091027397909992100425417007910842819059024853737587222427811484750841843798476278102916793012708060765053536748796859542083360173370744191180699695772646435494298856180659610993496045676022523906294905871448819609985041703612270167895231140031750346532738928385218669444115060849130013231428435630827300994880322362161531215683507541076900435627248895155309320553756310587333069187224037824511234275097521868931123257814172203389373716839180064955118810405885438789754184542874464114447831022673899546468145186413297470645397772623593889531111639454421710407008263947524416565428297238584348154176394766590416958489463342372261110507036877319904327983019036080245157005649732221410243829609682708941990839388493292429302192025002604373288120606751451135607933952801437828219021250257977061552072779932533920114874160370041362880642957255386525724812212065631538772920668556480562597398861079350282895368234717736632043763502999136890716411697993164846542231307867447841495551128408541160694235548635104655664194933281911677401044812981511328868207945348793681756715140100284233682297689545065849876734274704299497010147285989544521082590511382701069069360784047750429264454840230515236033688884812386753643198660115582004823702285188806641991935832272305191559789274568227300054048405086960948922767184556279929964016727906427390324991150038405952772866503960577350219012320049486937964262194333555520146851117689249821956785094440499110132212211601800884029558948187428305241164845868931784365162559934690878865301657419354579991351685059765475369702013374943421775233119700376480439486096380544528299360064617225396179098295292255393108228021715069104982535508979848559559443497241385662654543940728413792199136820586687726226832492623536400745568060217830363873545511895904328072599681644787604425143742711805962427122699165062951518134674389465502498879623495928757234532653462361765654711433680861085025907126653522134759189041124484565969487511448554459298668579243028807573947749549387832018604016497146581552052034053255404184685791462516857989562871501997687313890232506344675289445187818629411354779777214183527233123153042633437536337976796221177416441066179034717704072755489853375652943310980390302763890508330099597737722242108915175984178771736594086533622035802302830773181554746161822554452237352080415627882957589526908855966960318312730398470801053696206223642060563740738682522060536412615062210814688490624960014723457270027308286199894271049958134180259717859182414706176298732525941150139384056138888387599495668946058576076366055525336089984436759385787191640517340131815404809275464375673366420540439685874352192428913401087652248778030800381013563295024817147944716840121958575698624637886665359968383850662246752655315945953759501696087080776652680008833816938068715417525642426036545134457212999704927589446210085095307274224396539329595489144399137432694598573430328427565322776224609011068807921486520670124113298800807631071495175788169240726419102722011891549218541323092533396666958099624387783867006602345982936504432574556088599633643846208090153603688958665476072467884934730464283335172574287425275877722509268125624575576806421650775185833666323777849611916635911365230962729790865282320126473927506985716000582152351620511582085557719250319860062225386585319989529275166963636874454082019905883538410758984655826816725134773189445567278467860819281417273369548766940111939261727216193105591492781121130134154494223977149775263629094181276409627695587177062055320790223797043044385108210786996085188671990552320111629418748576967878105059976873853290747975252516483106813904934002327949410304042604251396609634568068825443689635219883763362991583818548440178113530174170009283942007715177064511878819967020246173806420302339144418037930452018258190529149618529811050131842303253020281448110646939034538126780961927193804341861268333196600722263292872690972436941810181496142469317378794125801137482371300082975304244489655362678178725873601702773163882028144649689734947769559352668119434752029810757103918526524668298852925686127934110164334216366627908721482318877603577576034509835354897433032767726878567880745732863119749273125687010717309116225689278350799553561142763822240904824970310775535600143266295387289647679034729202055574198596424734397836843670641153803303331075174310499292699721736814570467670263329666071516336950027785863238305081082037653415660781998038916669603939882213788157103684083112683833431426473195438191095165683535287853864880203277682604019925341621059140196613236810620526384372521997478306819286643683894331085436673507071372978969814846899184090820523276927074095455512670122349904473722865231145639446047103613283440841639622913494909761916218811685060198287862585923034099668395296004059924841635241815753699501097588276098484909804910122310221162440320077370839891135470920691926518145680309677552281447515167286983439120593600390443810582627733648210639043344280665316243457363004138939551508162821492455202069939759700159335052056509684946267916805358981400321691261954710149423311223064169773124522835929779047793042421020059993416074359543390692863828026860616986201716216179517950974420118653385344075249265438127180790667083430018392617742747531373665660586928614397869447694731174991686548559045473225169804333735324734373189705930018019031888847560192359208012265476186637393487240911926163819292719502229087684443673480732850860257266256640370135429414140078791339616462139088079326832031485292884586762422899053212647320417819941208462270263801592383950710109110683787387909993663044952978183319515915303824088619554183161712161960696219069205254820916460301241654854030978033493402729590910247014010321920042647105188863839308937473261942259763153781428764774078931133163688555177633420918801374533419721126626836410389597685723655871918261377606126187242970822502503327855442115480484121297418925317831177140621435101531538469814135044939412581181003168624568264383615576780205338601441286083873909267043567514608090237473681056516354246417621619754737164358301414077321315162298129598673935973071371653656721432543379636497305317491975153152020358608941940091334391947240352642447388505205279056802815562077645438889994683085269421497421802286346393769475055033435596363356728906820084245854923427323061251620584009940438616391594079274873146576534394318790331448943051093872508832511188601777964559748633347220189642930140507283021725459074629653848410643016471045796140189925375583513096615767351740725242619853017602188665407171013996190138573942541281628174759962678533261579345041402784341727012151520028584082247303084027857706990996199601452927991569066386846678097793185005579685718592341281510363685145572911339821022980238546434544032165022251560666540001099066412543022248332541451625437686052205856241412348593306156006371794693627151152261890464611876928828132526817988650417459470566294433363525637091796134270084307533002522219273347697541151533463862203091562174260100323180517920009383258634842781167188772524344580257708306493833174171848121339343291111047823666726352350987791889182422762620656373847531540753315278546711283399615650495178634684010597540393081517445418336651655977696985487969934854894341073609636307404510567993618029853921325755413705486722231719758352929127863030343778040027233529801675129062697136718377202753645891490428262219722284975403765210605375486797700941496633493118056598165186777382081819872110679413164986008543661160448527277898909918010317969578242466759648240521938077609133976992171284012136880810215292457730967189369553189633782282134631552017332435166977158515610951313184477046760652142915941425790017703164638969405707741112631950430068244884419218743473275624954819228099354719564849241196973308846531468346023603895515009562829948534175679769152901683106264854162886553725044600498697538983455150253467316642303193320162928828824635156314391788239039855199148889370825145370510944146733250885098096773655229739779565309973105184323030477143575950415802737004569355778576901051960509636332796762603980257929547102139274841264610421367725885016244105151739378912282729298858965651907846012307944477839598586027941304403917595642026609930959463765451779004076188221886449125648138474600422569521804325766204441216943159286336923204354455759843084189129999866428680298918197223944037039193429458341354074288444435157670936309051864664624179344852052700316957795808228333354984254745321448701408295201996986470710400160880055302103594743719830855300801302113694941762081756791705789599506023318053165864476958359165826746185201597912063606795290695456249380434796054664624002733754475899828703193784187553513824082887530563639216793954783482936743871514403926828106352696496062670915465850243048372534105774141249858594261029503797099979622990548567473547328796617998532227457981494304558098503111478980637330481167582898908866894093772821293265541317593491596499099250516339769919511968342454346655807201350261328006076778080248055702985152355517018006312513935355799564763751646498117176396819507473671090678379208284897989857506276159078339267514580598397745393472556996194970308625180781385077065419237950125981160930416169938799177432054519947034561583184816766326643783679763225143180932487072168363557604164851027588105346798525664659294422400456130806865074493420568526704293895621207413084996349528386998443661247422247406674415945715351454245363615813866997890254097319320167106354437708274345172959534295771012050980265305136252342679527970202815784417424150804976209491304628922049045260402472206701402643362964694006671181061383085021941696448633831331842620586801826760213370819589463443497231028523746514445245625492799177584439726877556010991902568746479437539347490685181167418699691476063844883624013929854479311977626914238947997506046503991490828958914342319233884035601531979323500981557712864697553750768431772252805730702081513596381911182540652823647400285458722818216454384432892089700736507102276440013207800713094590628811269253137142280988331961324609983028162732804444542151783294470582127389506620464215054600476607198307984576194625400921772049946811626491041085108176793398990648686860782872484881303681123658069223655561399563967207537545248130803189303360118743206532373789622779620030711697548385326104009349475232140119696778008218937756882771211702280179907357325247996680521300150395064485708652936124632107447866054652631838076281895896786993064693338900922213570778333553198426171773937548669866642130834845989465587379290674973256452494973632279855299477244776722642304881454022919323329593245607534934607866415673865450691442693600863317484819272471483371833822656392983668052734227265730069863703299802500326142288883249736236471046071415395550752112478981707454918160368245767066584291257447613691394404517589600010361950213146243478723460681250661089796395604348855834102160436261618006843774081353728555057100435779835987264346706554821320658276460335683946081387862321333732600938020973520529958731801185277294300073156356460255746979189677701133545498541021300901192546094243823321127372358056930660371362641035659663050454914595322698742972918269238001239761558847253883499515119156352657310467619506461407065833803192814412550569240926946866787022082413783863401284707625530992677064850560098256703184363257519397776238468847157459475406520872960965435229746200328892561495891441109112482000529511360009954933236288269445855859785572905550808778952768671344678070317819828715378999698663071238573540120655014945156725772794434219330644747547137816599970359179838310934413730498061768767866003930249038401814810744740161667921493518328381609703760801127987396876185137274966001994834855164645929334666053157938703554252614814614439513830118954102901320954989878209011167790709426101058428106750429262298545405906092481781266968371903047350578231304641053654213129349015245784699835514655767409317433419469346437177017760220486068460505294823676102383742664482795577073732150944104924561414196337408367775585956092957900670231718030403851464125511574691618856343779200148844175892143723341707353042098710168677943561937468693418014341697460012606973431180235321313073312102382243856440426206609446105054850262819369316237670614605350949267031198904121882717367475555247009637218386148475920508959739276243602588339842301568178332467157580322959676509786365991232547559544738242862465241561369115925118604604197329585487101655482737815651769131989723628288386156789269139436853168092868135858292165686104233779650172100158808979082153303952271200976166157009238711979114361804769802358595397958032691502886442343877046235655231692749523001623019922355758398992870442418413100065312148864829254187673799470882008993241819313060212185034252695704683084502783894705398506232922080745659511659356142733041564602930773015663871184423105442486773695904810221499958957977389607007659088161736384327844904040092592736739471122813526683374605648589660046616114758247672348562434538653873635088490341590010447182330074190791997222612415192558724281975125261905839109341694558930446445287058540832034271066493358631670013929893788159410058136635251631877049840835221908778974645736305101744169569977278745561775819413914862943340371280663696622688506858645614385788163951400681417369873816477236105523255927101716056949288312641733111879198954972311085576993243059027284391072850855660402236249493202991955556752576143486671581076613910800231017410690055938454089485418583720540648619644922652928792691896077995826790392152863083518886599612537741628460082136185413468956938824862797754057433169886032582505517080611525066805185481820932489026164274285122876032123444094491978882713786660276958640023997993969217752579794281949279157939625149051495752879735910236746648999540545438808907075935104627782348156723473732678781364091678324745789343621441444035927850268159692454429242584621041244194913705967940896168488154964380974833754753088578507111826360523014356791842724452208311459493879360074634978402977964829958004037350154313848667423050326968105715577548423600378851184087491797218799711714580078696352182039150075258907852746208228625318349670206180065284443216174643210545495091420610944841709685180163204458530055532602241246483369087096034387809362984015679356422573172215423635668955438933520069027707707232788232952565961196930896432753063682210874087787120372650879022089871136474329053244475861186263725786263880245179628447024836084255567058667397854618652918177357984279468369908968251091598684945786867782589321836719211120979006118946903150541336896306330962221438903220665365159668391165424859555250973674969634227578404654558893689145041469774632613552427300944147496746355723915073084298850490159316771004801665898459621565308720482097455728109090117419950735016362490626772045558111135373524465859081365147864812866056223204245801754684653204662044804483319566599975539645104648222714277867233929704320438609406112465002624427358998773033331531804744075869814514598344862678517580443599495211786639445677174945101378656503170353428446386322005961914743302877466382768646370597836815593462584404430997717381910408976600068171963474985848234813246349530490003788861571464167898625986070492714302935206251509529747951348444587067075426431528832204149366001424584340744411781747143042458439202232703111443624308810253249798928169022165684757920284972910031442745885848186812929938727486482213981443739850494621978416659980454137164777344552499275303716733235540216511581153517342192884563089634823186412171907742240674810880789086925010585282966248041212844206534994077939950140513492365162467643444707647875719649597233414027193625654145783631947962211933391771475041144906646620815872302782518341079312679931986453082145987109361692492481480614655738043335642925747950380712165228162817346939376198514853453160193281019482172386328672443876219646924426899395117109016993482923370285860745069626780344998943865858112650474945887507172455704993654125273580884653394992563398594139590363953960651457492446531795527759388724615183452041161632157737242949309105817524699010670860717906999751061557699564051653556971370971453100370082283828855278554265096892448606294099907485008201029396116171633546118869132804471485045540185256084160744978453072447928675978431640984794560155850542101792317027645557612648627122837698148775893131815102044241799630034467800013817346027522659886104054728884746622701284953034979348264218283599452299976399291336328338071229295144278069556287768254721218321066625841505773687846359156134349292796643578484448496597934418543424288658154944162918586291993954484335490914082376783946997010035796423641787705569746669770201616775185656113970542590024881292201506838311706122924134542872128388316998742898361345657513195935483206985472587758040246587609476943245449313480167157835612141720098822963030794757045873695229125247987392085485896897135189817510947472668086281309251718727106690553964879042364244324499223039627847877537496127659280060445976347406222070030275066187877665792129109030370246770745748907236882035704478760908346798178354139207023520805756085200294126274666412489228592505273474303623215029534579167846455762679366449481979871537727140378423413264564251832184643627132461982449666960993111772604242850236046475362742530751671171242828504091405174449874853757708023950762236077125375349172131863032482653073397668942300621623788613135588963407654737755146601114436029953508027436465191344771631302904675905555497580189122523498149034421368893726293452466977862989644279513478540840778510526915224739170216243165075658788918133566563645966599937864203591368732188606369465325740653956552913703389492361702438036556200707600435019524816718085921578282772018531273438737961492944879628639272107305769048121196495969587307207533957807649566880226347314486524299853049855025482478257536206966881033113509678727306982364783759280645554277670333881276537377644400607075266662328856427847479763643554778421774067732748212849033997224378501639438620880537265315696484722376077631162798170756487809184769115202533725999576889498189049253805477847086357626696814818656322613437419231801741087185431785941020599599699372834062594144019827579774844799502448012855971824298278084511230657135240550431469082446078993072435069024332793599751366579380401805634626860802092245541793545030291795755458804501734017581716560178102645206354316878614897244292771348988122388160773079317345778594959980801382662711987620882202916961627574970066513127181308062204551972500458162459555098356596876352728709641736506340555756606718016111299327699624348246583627729262015563672802335125460064158537879490189357006556166430582726888872752784101849031652945786590682161626111019975177762664635508159019478876359327706183393792827203267539536502356936950963885642526577884622443096554174722224890389650992846159309176808454004407372781040546669578553267295157127428087360999590576924010355577310176043304630114163829930239173583592985482421087008414575233122171584342912904383757979788770738380722719780014686280459434498096748353808860508258150594461157925599589262446070988536116248360317192580115381316168312918460838837387969125555552737503849303210665755244937073663599227301709155131113687912723476633002251104393126639392083020758097493735688781189945299552804494349209934320039850264098572743683906315187564606060467852805908073785056862597383447552383083710096345233726910695706810996553001067910040645599381223399031155532778921443953352470930288668941173121224564610745273998558942542571033689129262530196229957881916496504201882784177663256009938153791912185508910914572902765096955775863601263667574866474932193621652699091567006682641675560737830653157052985154720406831189727179449752698286351094065251710009855728839406071794991116342274116039742038795603389138359166420653635854677998115283505861229536616279398299493142728770829951487638539785575178449666041605252160678850277104391977441408893016174767587674825557358023859971401060030315891697100897516369721311511454167762360748884268522604375695343389266597273050477520131274278668692720489012884758112208442734142212659440683145103945390854401232486713118696772569122340472067060413199490744186252974991812267724676806554249592792658700032333990989262766969753376236904487488008909624341733098969063043024500423393042520982464487407040827600140611332930068437847101267858004858505533457728262127716780049794827306538757211280532514121122118459687732650316975549888055159202070195808386635990038355559970483186790983916952665557011743835180604632731522213471555427107518160298039506076020814439517062740724371905785669234195608256793352356780789672894747715808797547383267536789396770245595516953205151810447340160928501308855180734188047291382595165879341372456735575957480323721383640754445000868149144946027437272230824347811177233541810016557962791379423449212379198648450672554340560620202523946839044800329219728187071003651632852213558478979761465709949386124854523004101315687433250018921251663230330942732194417225339019191994628892388919996494128464686710664619031455619413825519051495252761994223836526586701040008117276481167795669734694223886131650018378992737132258999367636280862295907281560877673765746811510612757891333331006993909011687377510106153526052965103211410958459157904181083113951421404274522448350876576916500126051847663356841448291744490737581729799932367795335040358995867452422383728466110445363428603936761112616199201520992053789224237131003319801665794084580826167314229941465631007136194600567133913287477035688894844440241619589200855893325924054444840216942021217135393197831227952575706037019662445195170099569172428399526948733597770612763570057181449008515160561129155106081688726966783121785747140776146790796919469998423411478150042697418711164083176889741732310571035069027512836892318622042995507313040813755026526690086265412196158179937915571603115552201336143295840569498371388297812492962789378838345336660631086994092607639892582892787346471154526772780580254376611233404487013125502173674709515359391796532242345867483050714682726590098159900346875439437707016157877687807586082499802311527450141953015283824534854109091495373251607981110269717332996545136241940725474837030140323549756976533513244714931217590316908747571098276631664979400692030408311613409906073939527183170377669541408731074518168166245288356419655122343362773244569601932162319700347495070545385558869930764055101999987690299203290679281934216755057218533951568163115853037724123012712848450070240615631940772678488555418105288856835723330109694925014335316093208894633697605423459619431521598103618525043849947119624150471934054589056208338340355841795270953386015697086632816947550395777303348591629042185816434549735213871853472625022090821348355967177504793808722241898146872022279309387997068015023534900388247928976724252033839290933104989468270678792377221432011402931148970953345104681889197186265181712947320014449909960499187046829831974487798453467774516934988813795147355395906819591239623097712205206500859745415501726369708086306038026121567117065200143474468173120601580841000794749091191510489040060694577375118367498245574004070842521217623924773956763693024482167874228269067779451306438331041841967017723080805654123883043154357082934042212948203314536428984171669529968346833287762616472759257110334890540017368820175261666578038429877186960781448764255047055089232936612341124837297924835402242839428025515838750311118154728793893913506945787520126197134270343167506135545776230991242755964750363651051338211992301236538546354025520279858994637172419393972199440713150397130908959714597567898727361767196693041594507762908015365246604853486076066030952372655179515752753376688701225886683496041835515597972032948920953478523330062070244041960442221097948258274939974941981908019693431170104545941466617040952263701702295300847366836940783898147168332826390229165519877475808133536515764245421648257765141333000419670974324383524513945652724262906050276381374126410747346379205431261167548943616303213433472742320232750533881222236586905463149652372704610398531987118893464089197288320286730754644371135886167855973080358202952638488352108779649071373824884325322863540042899756216967195869410518300523158669255590347412596401410030474387025348242340734679612012595259687423912918167496310631261711249147362134263735576333421395205851219998711777994423085384253501393957868831635517101425471781004132148790735381282582155398851787702818738862103548804901414140847734979689259949988031646701216251630416743582668795216031204145391654035106484777010587024409228369984085015707473476259541570266871141470360665922401919079402224699588055834542845987260027454651515196226593380189245031269745400223071203238869846666541041173311852261681120227789847512242469299975486823610951560229143943530190609703103318068643318429660106126136460442155678135503941118703570478065406782524249796413629882667232668735259648680816102786216549478947196242702116746814901357099745639634929125959433280813696789020613582351529864852240318992512766012125042371474065406882114627419380385386810677682477851029180187687959455246591962996707386790667337385313778396236216472425637413862092435480251794777460264315234503035227933094294868194062526521493940743739152269501405173712654818130456067525449126605132944040425307684562486974696635813507656181926019231049266963645027450778850543470152168001180127376015758590939706484685801802860143016346859697105283541964126360365583446958684322008495404455942577767048772095084335412071023175559706567968673061428681580799225521870745251427585766834854215128585627242523201251386887635564766714286832509664333342122189116985852251798222099518766670012189768544245186904767910979652522934196899226936616221815260832652660977437891531508294073842343783528583218351710561243098998624766031409623038959322629738287127262120137458408569194384839421744459360247067996728515920768081203159734390769110056694643514169417529123868321505165698379937498793574689497294874379987649114763372333869790506844473556514347835893797233710165416246202853463439877766041691332541695998322047059652113642625048645281073395031650436481609524598087499375754045950533627381584549269237436806233176005806234673299278958791651441896681644725222674076826502129216968122981810345056091856199411977126483257474655364265696127650140498494428557835114835095268091121565809348053684382800889317276946597952417963066241020225131066953262757604307203510820707441400042883379213982480754994924870423983280773882524076208603905270500555641395463396688498694054498738700938435243408755987838474707378933594187510062289470196505912860573572283344678031472976185502705901686248742658906575760625100028357524193585178420632683635819539333856097638950146074973742711579269071001347452397906403647226002627699537911590510701627661648978611156405321983482645636365818118416101388897269492026959206765013539341939120556775392811856376412566111541823058524383593822932822179746584875958066034672195640398281551326882077606171935656519193938259822817997642051735159119092670413381653205166103929107690591174254607823238951744169418416083847446149998585274010683980500416683388603225785394923305679144345188168714153932729811361761073119771675044568966395317088860862759691415614442847968426953993797431691105333015817654504640056676734033515536849293642889765655235900096676243466663090117146644436869785710408211284567260183893994966235352642850313216103993820585539853853547932710368023009243922360220468321542275448700508342339240696391143599990375705353865916183307243433442716295942794213766264062912301407147081754692353769278767065015442113958440346469898949577365144045024061282191568998136576139172898091095815592795976897083985762229874056155045285065970874210331786660819421907906682061745257643044608503979856101516107958153741609812558267052700821902141761107962653553401258634205815856028889871238394660606186520760062777088564095927396438210661894537235554301547564029315597228613993792399878806406297160814252558221634650429598794904777790011610756774157356069966698998939482973370824807261620527239657998186263731802119570278982566518106931045400546941959634024740196055507501110098992737139724580330312536095287735958046142436919194818237235994114257379519559257427479846926881867924933860571663351510760183122628399896972606029180724898534034028797697120004847406087063173288683831293524897046960214647504281983104607874224640024316281789273351178109925445509261487990245350755300869259183784841192844576898663471781063479697008464771082675580297740707017533046142850861444264218313280236429175037543228569092220838349500695249791146273390622828863840830764524370994210210963727092208027542872848092541344062113944398264826022925916446762497901032123750804015574784609567291097179576165664459209543431993122067745755373917447260138028738576604803670831973975998951233639702101045927732227315425834597120392862104990273643894636162055205661090221170571051212493996257456462546875298339243342729321895186305565888506598903453963630735044446505703228144955237747433089057270877296121175114629721590586426523092382133401330309081441705757284250392029216426933443368941297916246157137596387847461473397260028444801605724661488056138922464493436705206344171995070383028989858741079654435684328384292195594062535975001221959441837256863959672002245387587456456661162867543194344203835530995652871990356545080853029817369180100168850315850847648755920187337965130267135003619221207103449283951432790284509769563770908988160995177612357169280985570035299430454141408736204777915282241617422048704953692075874037089016268587831419273976300535131581266777132738955531925271862184134900060470762171113746089033614644469781312601638122318172098994475158594236028741267899682320648896134001430506156246163123789329495177935953653933581452205741439534641149459047416999487947364173115057614234709542981317471483811554139056570919261042353129560952744702117670409215768613292637413724234971519015025445488276625393530330097139828172989046894759048694053596685095720738274040391274973759288257977628381325870895348575210903554454071596189663968790116619799158932710330602361133015068847670725634799560539030411569742554179902854674233155698152927729519461510180245778321734746981821012870599615497395003479472831369486171998230488537082873530762965519152551221415587868685288657800084316178573596830838847817839619451444815073389453257914486971193593875851482042926420739497417039225493587635741977400815664092985145774409095221804826321974051671256047754194567032872852055461151777253478921518973557994009871092363007511394892724533909646252006539408191040908325339393979065759442214557342219896776118702601392078379516200195158921651542665577164317583504334494343147717997936815180602597993442539477197256069818148189292846974529546552327870609354485602985151464373399433600010910797377671260075648064156664187570620304837157218637764047077274499268467833563551257444285237676211496025954680849643469875126041005325180292637610495507361908589776932974304672471168587357220884175321289078770098115784156806802674655481010688344926101257549640355714151179810057087651106225931356598124693748158856890236089736577474127196293993712972003900435677882459284823339662200388497332738096398106450146798740972780931989923838162201426469609154530984975872185284859490048694665401483998128084109370674321593524172511285730235281849187851039268548179758890692213855964911938436081079569232234195356948751057244944008521310700844497388559060041511063423106053623785705604608443547802098363765086470078577115236650046162112326233395384947901549133329508403579671216145183294624310960315421087665327971402357220321327935859088775292784747050331982557947295401374045300901537182644067785776219766725276730253132751445143201698718982271784659525776443381262802786500161120000193609144170350175379161225014929177866378929605017965125370371422366899619262706140593909260471591340561948208692034949907790047402164471746967933005491835042956136698819287276604591758701844579246105213184521139271492104467480657665617191581874504887392270868874585199681337800364419199173296973598911910431985769890519300646356303937251803654926007860050977310506115185957123800844003861422584188665613788194678173656011563243586679354187123862339310517199990542923123425310692281627231920999171710775143072683175849149809813853221943314333781495788305722947487577674108772787560814921945907394511659447143988500249764134963808722812919108794448821238601360537616543320699100850795910777500158212019330068214082496313700216634421732973053208367403821602735468024380812137754232582178865895305022791391110323935244512239909349341331978966553064176681325128062734741812924736388983084550525197373179718743048908734543518800708085039250368321134925335502395495802871435001924984796438386089080078231531491822172921616690815148380447399992839870129300962712999008202467821555692900902618261933720091085762426100256593093974234846147981294373402015087063922827020350244205598948844488436769028358380555598214357396761744423526108267427202926582514477497058160574752472031157963007457219176425653749331804901169904172786894807083474955171566003632021385841819683087837516352466580714790500357541828584424337210970377388824380731290030031840538843757018805480924170029570091404073705939108363327270371766037658859909115868726762983570114186364733918728642524328023776070277682056588361323827999485109982675838228806688979526178199646571153237240513833450367518010069647674182412012938647732321152581391837962243660738588383685030981819083122443024474108415305059313310613337816027768797822283823703138636201430609608933787437302163952459151120121006511427270860547882783145329067457540437322343440136868941000845384754506683710248555937365134451043240098217429225441349392278128054372028188793579274552604891449246944151743418251921072583071283244389568214494596629712944540476272126104764044650064415848779991029641052098983686968043494358790480898548198184788912331216452216300148297678015297176886005111792447637002743313161607564074322786269377019029164971825963053177388676433251941222421420354232721769993862870304065744508678299440842098714758854325417334269808416828460952160565225344937091480579343854386052229925974842962781987490856019208565425849023971969786462249777137283308765333662511846941714670560942943172394579523642753748788836789311005968923642675290260034891116669403487350653443751801957407801887827589320920042665137023468717349631041720531454999876737870677175830304069847456730900435459403310899959105494408508674291260299796334103184058370784346369944207340081569113632922501724935547335615970143971919605433633655901504215883190587958504991145797309790851592289597509833901396673836040271178139620137767687540214115103100553115422037462007785309206762777046253496270207760777711886336119925861173129327161940043984143642909048069381605762428175457280736627605347848218478127222751925456036117282255685817369158898757544491371257133035906885183073284777885299308394946443653867719149778695913166507924782356883559533727470933606875856934003913248836369594843924368052951130562303143491309682289165807528075055204974093806634943100104169621739225112810248747230411526535858636780973146207476048417899788133789159212589482985721153311188184663799176915376399097749715462605145335796513077315616827728853551586395826208031166697473888972466035938321085401206212778946303666099956129636378628887476224751369953943961139227807500009019875094424142872444192442062483988763720541883647637584855744782190621873582669196997678228154059314913822468440259274758499300189802090669202374789221324787780063666220676929718388034354974403049879611918781588567245939989137214437981172947121238883829216162173205107690423943715443883575864492927965576684334358860140190088664107207401916321272240410208780436324681317465791837113129712457750727064252394422401184975297065033560301183850579368224550209238841696868241859574041096891726874789572835156591346870493997853815375290287733423201546483646395798042300592874731684897523558711061689003384507107281594570182936909002640637942459734904899925306265394299749923775011902917908548121124642810590083893578850798765994312773768885202999722618262531931289862990863211675895944330107629543355353055473642580483754415926350688919986942220021820306206343528820664555387735683976612388007763850178005867396692330445807885182782627852147273286816317395851130720095610534951212419565224201899466710958856583989579194503054787140774264288913405331124784306523815714662131073904054634308732369484472306724135807575353547346742030885467416619038360305152706276711997840005498911858517398061762091804786586307991115318160935606978103029028259456598116429300034099420398448607428864956496995493212073212928250252480879614609886325443725866020131819927823392859553414203637995195889954644248185045810331265323575666718044079427460836068812184699734639128025865559044387757695833784258686303843244249265061933233716437738517332156333330308148250273284237300112064114687556501027502429904940446050094895557827000067608388468367237490549001987209402641148599915119883118615243926795355753479071861542122441311773078290730507511675086270398515433012904970430170407049219217304006151465364742625457845492911044440662360349893422831090340003642925094003086450281884219336873965300437303392264975004626734983609441136463757779640883692720748722146472795694688477852865446945126242544133313979887946035847238539779810703369661919806815558892800518083946663915504613512109913523857021019917000249266844781845030169595827084682535877569981002069631636396462792795900118078115517873888614127906097886616082874832319906044928088890517810525360507247927532156306723930876868919319394734010535422598198845177006821124153714023679700269713612620952298711110633972945566104470677064281328058792093652401854069639021681633049406469834729570439072379495128101120956177104172505837217640781468556726601426025268069018324636652955364064398604544004615612897204240834779961795494542692158639147576407816591868665561623838231472960751944916543107467527064438098549556258809408684290484662454149175128241520583216192857638644809250924769944510455926677667044109779318561780257188661435228277278876472790020982857007617419085291217942591311346407882028312162178580552264905145492375186872960363750884924917473907306448555801096352716849662774079378072691187359420293761418415712742955904027563922817306445126728770207627581974093989632169588588078447084071905546676795085983656878765477409020781321423422913723171262948423828025738463539919630348707625641498280124730114670462315003853594733286593047467140321678598221433902084057634412537786619464804196037089278542440910307078995984746523325044183057869346560221381341336848276273007521586801321065086421563713330602430564087167366663108129590925967961771967572335021119576110059847728130896817812684930682515215685444442202367355016017600241349975194480797686437025824706837498081507316063596780587653099139867810687790682647621494223706865801996617130492963998215333912894572138546593276114450094012801813805350726304445865973272092460395275947939019167724872483209146587227882791444184373619396576572601171925882546809095514629592003328476051478481401365408094090926563254841400713415812732062499340121717162166555625866960355333294480972723735985740179438430441149583741545248360158953417965256769410374228022092331092012595090796342571745036982047555582368369803224478636998489973874420756550136198978942581235123337863411419877755391619739666248623520064578268131215060302915261447996811285791181661387028409899302314569406517718488676698603921764766659800668517135780205098346809564789878430655113437552806538786212987263772963409520622931348255844520625299312879471902600487587173540533218849499395139232079790001038709761065882805751232804169563770899926322452725769849204020373498260434830010305695774748883376062587322950369357290757219473133058839912748244760925521456945358313723607925833084270106666396749724592536987984349279925720612822839447703376818528808978749117458240096730383532083393239247124672654154996048593018018119535793308817998089640389942816180548653709617424719326006738257283034001054487063213458374492340276018615500303116477793071516998078133349003868498778121320318964987936282998306304482474726079894115377222484880529626139695947462137671163493441245199622825639991302705207967698657263895292515184562598601542446397406275174067339670542074682684594297363812960292668209853922975670888813934525734570318097886621455317149474454590790438900695819437116129237443830566852118257283219657086455317806993210231327115882145218584058811717689476749313242519507901906527521562183730644120013067900521067687622640430874203300280668637967256992244476889972181672643935152108840063411160498838712642073693372207615951580934020063182630634045812463480690080942774305798327479659948313028195811032899121262254129748162177939204999590268202606358411111914336042191336715493453654185072095277942828389863822582477595317078731460271346099385118761911309959465202742833529369309178226492588530112110969514371941540683263793390549344051207441744809622312200105646897331935421735409981244757244558858259088870751013429240673317808416121367000104076723817546663214303100834433383501983750358813016730394751290426515606758964377968987832957199468653029163140218259341371927589702035130450336411133648357056723556406553209873638812859279710338799837748437059554300632505883528431923193630104584367437069271934366126451344931246735507579547202577694980572408320229254459252540226896463588089608635868835591138748181585334988348682251585645477251470725311482825405826146813499250698716586828183892021930479532158782448017284106793076904544616547428069316866413715196211276925039315376300930027189128024054581254403228145261899812074981880720189721549830061119736857220027539121277831096285472252366324060977043772758631734552169582414970270656849852179337385627863538618083954865478891629993838712214082146397523932537414493619363780453993528561382653412351541271876706150745463553177955410000171229480590306860668884641657765841166801496886559488622626721783760100871978155236237837411315663230188675722839102412713944214932784049364899869994594330284957500459456915003785103968691818067723042223492117731297905092184334713794602117195894139031346240672921032788046813316678393142790979519563813912367778932585580208725569027216169398714560764063178705229081256301502343089319524974665771086609812482475361783542763896160428378686805827247808826037449382332491920766156974101237576556606148053475746510276889736493542038704483289351610337539418198686124431807756148108523179909586915426895393676600386922033644437879521987800500329602525634068669920763477580608039055954126072145749615928562342196664969636016631358526784220115107032928307787061839546740311835916224035511311243214112016681118874707145473810767430496363301148851299195087815855198985075160683620856999915440926098577144576942839914996732431096128531622092169044616466388145194128313030799639137682462412419684030014543021577103779626730554922890027360812391760036970797398851071075236135937929022532298794712199529517263228909595524261964064931840743891737640503724582302111880434365339967535137970167900482557073369996933802548512632154575113491201848050328998852937417114411458291796028717201232817343321576794335565252679942262789384909902727833015056876714047205258942970882193667768733718105040042888262647305845222941670077585358870607335561049842237832374893956941146307787987771046449293528623750754387998279763320796242508790429060103967852312269849086630156188598618070762754798384880654690805169756017016765643813784525571540825296892825187995102013254374813303073900600519562813367890047630502140056894947936250292603243507978758461372659406554907734564144514320676792838871787823857042713929675471779196000696250220319878181714615292626996666234495907343294360489101894556219804312446786364486434197958871513457115804172411744922111931613468277812436095296155951113635346595889941238876530984195479535726351343201035037379834773722079726293267636783446449588590551048333092082019531020984266721256343977638334305978672809184015884311246789404274200285506404318091011302528922859043286106654664053611094500038793355243378968762390155886178831431307772403641033947829863406779205292146285785612448220314498475136813744735952950467312732953291287293865757666460038450798898254413122817376453385069406218612408129775676794472918055150281395543780570855883937844876521995848776953228241790742079353854898743390972111892330639138919434513523840191451208369306056866392074115603539677533276190815614616590690271578313250208554005489659850505750681912076461745695632903136828018513023154914817076161717425847550480271965222448707015849778505507728835146819987783817167715941838382200974953207505185970736440655276472247570992985412651109011104096242601344384052580555744316074132271967136993120099655071770323159841499701206758782057990211782483022335687630252238721297249004691475041627439479190000549640601911223134308634441734382569635110411882686426504098174385972832917910581540584842799988549591480074785671448033798217955417137900991486854984185733487133123107190645604051187420854518484924173292451446055836741944692920654207281188930502644328719392767755151197421645005174170100988183835625599274189693322766460022475443983348741394939631243615634111633919995562403948068706152510744666822277551180828956624625659756461695348075264867630603557893649162359734838978687039224515978906399263069828798543684256182929843339812796700782495608918949720800191041233011568095843954838970384565670559854244283003382934452922169565183298679219096910965277832981081799165716919765704028350148469155768794521945121707358273189148677979077979880936425500789833493493032783600362159244170206321571831005678642713680143114610556904445346122981569203743239199206375950907890234940714490964799953352602685287108111569238817018718965910060590986482248777905215286101531941255305163835230753392314060881614587910768775650150649120985681592836309336112238488528385900042492673525793817892518331410701521215199034067208875465856817768389000483208655893234005141884260336055073482754767391493707378237332083060650419891294562361609552547530475572872293061576826502499076421769337637949449584686887279796456464238400227010317421175790868498851545082117802055385015342568301143246898318798393032199428522998989034253253403331722825568938944464443548540591830583919372392611426626902674831968995587868533275451972244165673724931144518636531806893469741171535487204779009086411481651268696422081097320255073068852320726435177860448176763367778972820941778571666337138173340837021879935024931653251830997385676144359026951043870436877928929440107243471518693362547521389477658515304045264608912923735768209882936440494217804940861644822163996110930946752925653196063461394438947096614519890903112216829223686725647295896798809111866933926978221770928665563059831753866179352711030955843257587109014201206667543475868910947426360757104270477382257853740721769186073392834759803526156088225625739126581132454992339812284142269918026050038907656400695922174258900196958164590272280467276935689014714327897692224873763929040025027489156959223965065809779842167387261429111377995018857647600679290309408514295450123884781474419000043963924023997205072843180145890141754073274952183136312046581183564272901091263147158548556863456587221838358103853861021057391533678622297839131190654177108828883896455432300137350005000723545453665259528845472386001241566820229534310984576014625080213304694102489472071151081335539489781656657279009815170344595976662868483260917879338276195135266093505200560285818059265021954085579481162269561979667043980778724053768621147489406872827559303581873124593733256590578065716422151853804248033760691515926893632414723032961715429675331266908324305416217886586741752402166831734091436154678409141617718625439686606348631278427788225177789598305813674613122047788236370751071680443026070023903679228893596975034067298926390128022960549523537729610544263553679419504001555068449257374682974511727196745321840302209380439095202981231640844749360456795073492989515570619151317680659284562645204636854555515213270937669365346579881682516140460490995939704092609364387316315258035603711452619754677108374335844437216560084915807253779653222520359898105041767798163119856372326728909049839685611264201720317064467703879991833661997127120527671318577159899858857994513959325926385729236366127059328956642674027131642986019314533301387008559343069075547023911726341416708710932002426211376716179007336595591236759136416052204081644685618427874402072377446100228039003051569351393347292694421732686616681992494934815303690833292869619105729928869888993094980838460166367352580774757058083376513022209757728483328923053278997195234171258703200808649630757193303028519194678731282202173146296836758577298730716114369231277281709281190750310754755911397918681275510133002998874651091757256384851252795751647844813273782472997045070565230019145014823088363540580358159031016662348347225023690736148975190288863978729682317807972684489270645624905424243630437930030555202028547931394496666717591022987485718232116625734573955284101799305032936007684010276824507192897918530970221312316869764754994055831349276137500204355055362006809002839821033817085996064979649332708977166058094707473649755370733474953360759413957144027918950052099805372270802344743308648091785468113535486963610383846619339295456452547491415639538095118873801413879818948607670894155968792926926498587550041485459341745983440322762342917274075609506663855788207167588722243702178088307535827133779169057859226953573265138353318628112368998458141219780459202052431649329586510892910383194369696469119944073954740960249087451399064325107806382993684862491034687642281024187783980655351950451058303416401759933173417416290042961506492280703609237973598804268505874321138274529068200516601141931245020617133137993009682079848028800419187015314107742236788324896441800023404288711574460702950126544280324423710413077127525028762152206583066689219306067238222575433510381889611937288326326738078469044456184970796461232205592730555972696241085418836040822278543322257757741500399990897391106196450232456632198000205457909003860479112112702522664642304244017095417794003376092916991846340453145755271946607593982780121697552399929760499123131589023871569674322120967655370849213127314747989583107292254249309498391877128898354161069274743475330579021179630556410249716298191720899076935200408514529560411490187627096384119662758105991097899359479004574310019880385629515646594037371394406768062060306367703529596838954097177792631432580032782698233407728530453548877182049401574092684398961567814484620269833069617761095533677216126820812487750646359347619090938046020971858789118104519543348460224668250433023121354513410186481500506571598883036640363061482357773881318255146433478167208128447636946834560909960468927467665458497207900292850031418616820748526027916405117082967881321050304673340593497377485463228590427111725012761424365317453918291049095737715353394777257576376754268968498887321217757367050594755448375180157208772280875658886075057286523440435529748868518194886413020380608113249080766340950328008705490411954750387412626116872644195368283523774302536190321109184710310496080865473011193317774817555968123845062387278092335713053851275155318225034992643133803690327440210231927762925220829713412920328627502180303332817235711295194958776190390402799820731715623015763077899096496725184012061002686158623022103124746073268322206935396399788064068724885496045158558879073483696611315870192521344390244189297503219073568514153727672889615960386619989618418362788295688711433380332955998740092500128972478812240728922415332293138925845972826816046908143735952383811523031569326615411310670882752317121002781227816451846142904315918399908163866365620582436666539896431608835059384345985666380753474138743496926032689412326010766887349096712529739646697792060555163151673501283080085002366149382879672157888056867040575010170510961430716817023559054063351970056024620851395789983093468509706824327666759649835125095399044112109340433055976045653080904401049817677642895853493209021296444390580914861546701458643591486653880442515074351641404117122632175897989065640908693512198208816402107580745000084108575152231379059788143648662594854836514577787571270115302127317799504305213928592255865054422121983577796965775258558211681044761760983716006739221778773069911630178890230726077875462508863470911504992475025444822175491403082501681554016978596435720264664126465838062510685141877838648085316541151166603440995668616410260529892246273194131932892957188707365618488270049148072463748583177974647378747812266792015818770650921996015179887931714320007748425629792183611110196688253622947395843991420016535059510541822192938311212001621592600102098923413959971477701089947216747278571330928126125373739717720773848181379802042049359583143196900881846546799567685241449499328462315625810384930450083701464244805133674731084222200128692388695146622631931729584083066250448100620356139623721597052198702473284712716936352132374269202426301670761387993469961636968009803460520488456781751680688350491166982198219488753205138174150677368416199168955835675764197022576963798053374870029158181437098538044512029271612362849439785048249277499414058521055347438892234369447844331080087423155406744123616903225803917795596928040020173770380683734281838945031952478603484675618318658698983466660320015705477325714300042010560839782080083606063957797903432971155718274705541367662604566095650430133442681024063634951185417487621635750218215863775696937939509075456851960849749325132523252893972805304382065449617234923132991445180669336848929210035388458936805170137804549306083843586940539105730673080512630747284425818154878379469711532350310613069444172082482381445403874545263380067602447866374563128581521090445301081624147663260038862808635601499030161594499051111039851517133151399832702439523004430421814170035411750345769910263536263837419697685193527150044783064080533385877485897100849280746872118393796742547568472976361385272290751212074743742661498862482523148799401911535561248309193921164801138892118100727427468107992389876180421346966872346038450604537738153314133146596914296480929389557618749344290598899212400423337026477282257235637376673113264552760899675290643200384389745730153703401649984598125321901546070665279001683037273054090534545047137096460004961966375226848800190834361835951551514574107477225748179020176482031159517858418169513264257007490971256982058392121607070135562755655228151820064527463433223198072694711956336996967756566150429647668423497926194811184958286058169291088877613574863203594395380874344664443302569021966562188300441939996286449216079191650858131301101224597127851617633063357337296303671013706062374257965702606104379022541164272704224853968837250397542877485180299664054655602937288315459329232653718750345482894389139105189781094190767941667253350757817824721167282317358946479377710326119423610890250084539372646937616816388703311452587849581313783083329984614801414494707063305384904871949479724770221563474545675019452713059490371121205009745267267567180852684519699384374191217973702435244183932968367845201153182253031146288226949377790739631979308697971551044892881410811388046476386972970192201156853148934731941627533960121627404755041841162669698180303577691510236938151703980783571001505893748237595062030560939707602621356957478890465320232123152042219699330169972074065217163953613304777576999890031153541577165613231153849011933985458349517865457868698385072899662472452481026899696556510239502727357514330088991118594366466170326662393804848955997023811863482324172995143760713269064588237556645587940779195994368045616736085872043003887640921673131008261942391544446302860893399343785237493844525226258145111080460449879562956248580603750858074806663245296870977110033134599935827741572645558079506013065563596761686830872608655360811920531670227387104149234081966957524173963757450531488648751755132067828413587434824332705435332778372718695491654838459438326713757505834829941829843834109539112513109561949514216524986434914655813782887624128778454785975967311535147049470578629619412718113365006744645990758566281949797921648585794302233459658375461504757540744449324169632437659866887550193873443649027057602795630506195890328376204036912795465955282089214211744090589950251658264670905667594329794409491335914831714896937010639730572485119826301998429759212832111507024802065437443934905473131661421945511703863651518638986270321359797928334906753012133928464686401748553047569869780696368054749135927697260695857083895360252659179110355901786448571982257979751886968417448889510871630583242438002330699984185652699065486214501623669192707756572166306910844895204970569490784514987023348969333497612227998608216948200989745749244398029495104324460995861213536857716974080548168753908998806021570014043187919004176984771470338686027194015157542502236130242908048328639048239833236296298436750307595028367022255236086351378333136299152821794386034513442580511650324412527745156580007941836949213235025864015629925276365473168208528461206731869968312193702468010361054529066232949790122070454616495403851816943667574782270423805660334456521198616448416530954264505020077958934545631748704846236510024973528145134272177512405375363193832005473053069848283966115949719056259267750751545222220838269902050582021068218518948335203886788696940769265132378360028912185254865962643426350065200634204427990556049119636401637035143702247599960111562882447391484996566831243447068989282591963090839575829401174301910414671701999713205297185834531301541395919947083816979469616740543900830985624834205494140975909413692678054952883514799372750690226690931922443799919192794542579602138243173531712705696944091257877129606420289310849016554100023694207130915703575848246889841519463493476629253125879406625626361972821962609230234009093981700482593284169455882008721771479435335382124413449674782745242515716737091591741552970906203319729315429538645590562983868764031067469502011738238682352261099517469458974047073969000510295588501622280734912801622938818908918560974555803898820275844682182118779677016515547621451846973187117173006847565313803804211125143905241073738564338146779656088164855459960039743739357105885085537842896544177490329028461190425332321627445005828665122829335247047336447041730008994933335609934292022046198607311679154819224045836947455407931167391096803113870311048503990385528322025694214389702672658373412825921661911357016732371558365096293250382202197731074101110174973705440592330874335065328727592101011273103063062757634209193435183887069376798780539562773240255154928258118134028634643206020718794094845903267600796804491723747146589342338891500595741743463522114923186778947582492443672940968671643377114286449146486005587826769218522620855801804315479273375587855019737029744516929860647335468470436461497932046610968987736122359480396133343181391649096015376321638183947585308092097962163008831182251548027499324855753685522882892207213837328228289344957943251380898180355443576592344259949776863347117071335340138306247377838562575748791619583797163290239013098637883642029558554381853059250821865816688176440604021827164598390475427288760592907195814166011084186251165147877965269218316951818045232384433979004853541419396868145675745951934801851928616723698201170976140354608278189901091960882507534498322797148672230138462999055220417167196840932494533600097040637058963533986522232136979261907750263270402114808475009529814314770826687636204545431573395697935480603256513781805451392348124751484759243508280771403063102323864659211618381664498537827494509405705647449840140640717792173531570626517785118752840481215076009669151534561362473405633083092812947559001501674920615372176625454716494754535354143867134271220404144344644067505442544419575486019288180008428598009423065228342622872208314013770252730791611095102244429617448876756032977647574864320429107543361721786261890518742775806203926218619797239380445863120937018972664116576413915741893489063960480854896525538428631369385566179635241404205600326194002224471089176100623330212137634039992962141216403109365076120535111882697703265554245283237762102008399938094924344986347317713544076418736434233678985775123384061464554079612681330174667359563174529092311559609600955909596994815841936253885217185466417213638332174781411358017761993298392891592619597416058337872679940643600065906883627461916202602660635498812689363950618646548730917670174960012841113813910547268976492619046587526052208069672761798316846782043985170076585299322247612530555946069939770229048037678936008567407408226801676599429206660867643289864910275391518624071334951888263894242254996373746148247852667665369094553570730126268062918249347973155366590843948668970228036491761941757400840890362031130605315897680283795952203644282712856228129118310745160374455679243875091047640447069706028496807557009185199019078082547224796396022499549418701064066551001474353549101912482469410140664510609750778555268418821149844303543893625498721341788033301767516505868606312831415071505832125876429998251664381960141505291898196660014830481163922422383238654233420560114722220940790823640551251218678803327041361736205177952879922932960435604064458605826819597189707241530339562125002145039683150039824678292259804943273716311952460601543056205906694419975656034942810421030232474675500404923959834699282267104773931458041088491398554942232906554644657926624064325880398755441798107151903954044434673035907904063221120821349525394597753880578824304437126295546078868897290638529041523630824667501598025149459030594428741149194953072782065072441171449394136438411276445674152654014766632880009973451643587751856648960382270344893504135632834037531075229026683894336333234246976714720198151024588403685026477344796147099098463818480126035900976103573521505249841826259754574566919686439017801818996177181256766712535311226384396871233892164547545316295799675420259414644522499235806525079411588918490114471733974589418380839501716597806270640292909850787833001305977104004929859269244864353159843551383178135877967306725874013812892092347148995057815069455718197798276994461852715711985536424181567647343252277943076806798779069546603700404213850654154971058291757068083543457515598835970311106111793508043255600089983612198290804782725384487515055290246846771866476097581647559730960588014990826766984643464251973743719772564819234422278929796438256921313961110178732133761909080301508297186646955409367971365128422287453288070592648751570862162813007197394772275407261657170135392437325177591493016265627617120679748005625969349321121601391982114318747431968674537245735191358040918546145511792512508273326554862742471373650922697591556449289368336643047311359392799889520434443309887247918431985641512753469048370332694740736618864217727462447500100744803119120677865902225517496349980149097687857293032878790214516669111572487560754833657758475574109150130599543422150613569776734657009957725428377868431688946939806917707329968523458376233719953977121073893638700262474036195899097091667082715057371800847251723546223536655695916821386620208108617802638588617790470930647787108345496512420666883308017010217228518923162617730532762865425110336242073000894457406271009972820812320149824931040046145330820867653519940468511347359048462207928809994287568309005577871004521583758949694749017470158360151741461436384838030574076717722977047826904998302797848141246982313766922510833225048587700409716119904390501207300425804657513228367885148918326686376262787325819663819508773118426649531827199041641409278394565847356318756154158185454323203569454382947684440249769020848856457197720343450239898830569350444048913243946031097107425799863708798685365490464995188087465540705144565504253005426197736326554873893319896844424930631745429575323434800386957019836560484055049855296647232095026899406915290944780230066731277505698303007615234152923600662191758697928132806063607155152095063780489710043455712696195445404035747374176648687335820889009812843421837445431184542426572389180195660459308657706526074912498149771318956073609176903590515737576087645469752964554873830752530296557226326431399741235750067151024206829568842332527893430920217112156182954953617453347663459332832844910631484698973450832135712659611624078944070142527165962827526411452295177334636814997963589795203488531411889383619620860050122139604066438573376833447998948273894353370638971122089433124746723034352550081414181498550858661216770553618972257551002427874205994793240772794228929907614379184657632148934533104632206627983539160348668709265181950178442719871764879624269934290894792978174708169927858308572228628114548460089566561889533863806587430586394870393993063756138345241284927298622892983265544645788100029298427453249907981201846366380058417046392765441507266586639497393532827645846257883015552737370987152425978236784657604044866395994662059341071790326958041525913745452175808840704099378753663121787341616351237355501136025274103482324382183002717460405529050143464064826827107515871645162253047711488007566934132893343839219420944652150807678725886160276371126169739358567728857687891648621235230423620183426587341780460447388397771845272953782691999056767456139806464446496321282888187267457691983528349420005852454253064904167017398179184013692456011426503911123150730830764633417918345715126014061994014309397417953840135680593275562111183279203100565571716943595933647704147427047268826821257294198082573240749425030109990448452132529933099318169109481241400387924467504165938078577540656052590414651775476088634185771649026134839508122525543977253603220981996872734255480090109418170281041572272498271625612785296268473582785004521607710542377999154408795601410869264030957811303627392268009696625576665336987190619339336335565747314067974776038980923356379243448841606199825310084070509367167975701070622651399849244293868362045205394860770819472708590850047655880597267258276865366293732020564391759782028391344765594941102828424312371798399174534386994971680752213961714843407985016628201346321761618980858445655245053181844827902831212881574786765971195120020714410056720182736567695051672564863775533996324509341340415126235320240885837743690095814072863619817600671734945499432189624725406573739513641849959985335025960741509267453866402244387553912611394459657543688092833181339639568908618343547441896810436463759249062735979124303596978301874029186351567716505398641478116769610005299773365284884897876948469553098354059274770596036524184242757381434351728109674356312337829775977283289266153086202137820993407160453809074219531680214294712833226410483901464710763046702865442562046761435111413374116686694678253983885035632871016980641995669187893252559036991004594430560041463018515857572331173225364689555235012376646968289420616903482257537796969914056266908472319517383160133504241344900212977442381160393913739832276549177469454862618693918908664600020301634574024138474888233542615954091016439164848063046590091692889323825541712216930289432322352167151050006452905619718097074157753279299760288100348942095138501609473819151649744728299714778328011760059808358493584627211510238442050288371434971746485315212588555560719740976915491240782943990707106909410401533528893202705598837071954299413962157018611072303731290013196123471796475145276902163536400255425261786283168969683127527747970213494820491231840219810096064983347609743882265515905096087817464359408861494719151527541694146721698834630665462444879784993069485132564389349184501660743623275803331829883806293409648301286498109642935231303052174850773245391558577764358862463221870877104497487356776595636409013566856298700531818429055494932741897712456524603972801521876217158121925512442035306082036043700326952277950351956874335215894608350806232832813735928592413374939837849058432270713772601162798641591911539236353727095329158462711029163747683982258587669447003770497381445156764203736257516087871347938513370524313575592356909127777979732136161296164369816937209332882405960619356843945354561799196538485397628290697529240186909767141355326394277942417413894941264898469656736250948039896729692807952336983921117458556953165595039923587439976107171781713023356478164323126016909419762749464854327360108873861689756939195187356685919685158970736104262190313266159088587321824829580407261629605245854288114037743938086896383945972324391045163652537091929871994344892629423343287664951434288288277322075803407691274125936130527702313834594695566463322591699104052233655623664958306466409296940810620432534566672339288546671942948758669339504672828521710426184602100014173273674950493693398220666672962199093464154705829920611430373305256080163120838212887570946856979296863722405686322472109273299875725415248833238619052518520591934223691000861814908280312302713546168610568457311089833629759981218222212038457887499833048020611469009360200213409621565291631584475815743213215749494376176045705777604326254051691868470172475465441068770967006198503883749293724364893097407751342112756027736696544754569013320689383166776612184029950431011994526085481329745538092243259387808426745001021244010282402970073135049309732719114763177141960867244389130861870836608622353445524790445934907746512715553663652784414123617088362147691209520534700389341870328153626836500722266261690093991439256705726055392084384956471678101460599224331099507680745946710990466571798255949284556676468537118106347447887318170884333098998714353885074511060059807633857047898958037064110141606822367367571243910559316970343747119701443746651747821499729694017881844956454440653949237094489729748206408093505730312209676224634120576727568032668121342279907706236610255057037524938462279959299528862955843203910943262102590194677577316149847597624865295706817931944276335849171574512036485770998982908841127121389329724686605876840518383447674722147325770397816292692050260402476191496005917690513374571389115493139738456248252074606436438386966123516114403138771156112708710556401870854377801675999425579826391652835096860206953688567982104690087434688651191956522115938927860952104273221246488128282176362743992508860854689302173814476216790599346099755197918889224106497206810340990733304008127119639805565048508280656122073570882260297837520290790890217552596764781279786941616062252759437483965764645037341187209954489552258664992450644441909819700157371012319917246265697933533894471471345815014302350228282486252796160667332744831551849715681919576978694227652288475398939978430928442499863210398414536144635101748502943558870531730369750145532556655146019296309670939168930445741321235973673656672886963640323026619263155597087572654528346702156473212736739914565612507008121458211529296882303905288647852401925423095124176115702945391927645008511389834446930858549413958882190638645327209363611265243155350200378186386672437074816018172100992887891292619137876007657266664247067650126593350048861941570883009967457602992064348012441194650678567135707388222613165193711577585616203290322050986846424661961462396744645342250697463722784564124936291792608009589779782579068690402276684953694557385626544045112353104354925615357000566570759444179216780835217974546433146038467254442698988533785830241506637248171806387446754061342941119749880965373672651416759823498705556072096554701919185713481869931477038185151641829270987930227566962246568967479666275149604012495188514448084683982528115261860713046997492443655893658320321309986198341193326125577132467155028668000298419156293922879321531265685976077347577974754327509415308645954468606590490299061627443475807587547669388879444267573567957108171913153155211114324896455168845604732901059918307080432802346740688534167958952665688218427344896626117691400426809247436156465104808105873904215913025768178467349986994051544384166291486252074632487077492028260465806307230062184295199667830729408932635419468784622285201817153666346470797641876014163268824894778043238779039216774483896125006656710966022603619553920766679360130351509429095468344252448966826543819968860765795624257943274678957497663785626418025555489038106042063713702484236249651006225700353909755184021894347489649023028542113635638645312444869459643507823363192437705951234755429714137366080260602732604290001030194596622334148039491630987948145428153407063661111138777026810969572408286021921735815153169326273689024979279707663642742695677148110956797491408347185716663398152601088415153678340515857359411278523746797588281710314122719047144106685769761260133506532085667627695689009504087507310742154604987833579870905195818084167107711186467769535882850015982467502816960438026908130603918106581406906409766691370447528179693279178154209451322646034043470150063089032962420641243543003910413201464967886000217713685792330772377277054159133345460041339393398674040696333976181285341565723335886159801552117734112711639939785259393858517122567757077066285372234233828195476325256533837371276711116232078849043223945211793992611539657440602406858716462930475969940744785004128539146873823112870772262782704198342133804842576012649882216327719648594060846885155210944396660026255568679041941982452961214988616037296124215774875979502076880408808049128328194040606796943390872416921391279549211371997540679514792758465333532877502848565772540416319043180714975894268242276824994826945247542976153659610335421603478248250498119661702470690728447232547267849185555698903722217228060909921058511019944656716767421601797315293288834883475007347255088363273906454175263277930507952847024055396890819682241825184691623629904463527002867846606095838829135340051454583456136422359054104664366710230495561119873993655580689552435380819617955627497975265473146223203669931311756564468234331361004621400234418952285600556723263127293957922395010653380160467747514611251737115366712289263397159014551534583888290419241731142517385003510779606743182935534261074365626618767876299537555459156994891937533956346892492642963575376586668572652385922742289635580645640271413576515432876295464141226585920745246329597499453352935861646792967001090604975873837466555378863874963317197701365269060228044075517065597862740211863563970754817832863992151211883816214527821969912034970179826354636374108994318093064601421801063222716689953050032985492119302003088877667333402734836356378648581757838263352486782461278678618628741972337775246414096138854335898655304158882862375209567717072335677760713384565582914260545341256351463481950184114204102862937454773517738884598543113405720191913733185646470606329749881467327428298940209274650218892664046907041802277795282983202074442094378816288281804573749505625162872072169131527197239593437502254803411028811702645894705499886701597592164136419542352666782341725161540863240299195854682756438837456072318157510125578099555475930778712320844909782765165196535694278940290088441298942108392407686805337290891485079445956228060010786212638763415912089775518780596529870480125662978181802838973436402434120765017181383236137574609353175125983380103323869672908065628291427584020048839168364804765222532317671241874874007322538518600777005566795135159881993405848724880432860434345247284229692443265271489041198963007509291648702722942213166668833355382154487290338540175602389043616860347095495457024752069408325124733500069713119884597845516364607311874132727840052580792293398891908504419315071633172220118505491173692137321980389785105038187482997738191125069974870663601161336223581724919230266284504564665871541949537913541818526707156719411125074676949908760500107673779177420863042148294824953961283897076526690526116720266265033632697849072547676674125536800519993628189216330253228526333120730110719212593945361484978959214790546873749725350966340549228824485839233123629472877967091055639966826437780574996540261379567451974900883859730802756457485481386645192131454101802909216704352343345432720256297436544967599437484470431657878979139124861757980055680582345512229563891760268454362621726253670695927663489316906980351180743743984241921159293076474132549358129310841868423679925077568702464370355677137900501434541224227746682207280969861650677950088275597933203917314705741558092205727020762336199075782245321589879459720149478182742738110861354752374346505690921826965147552571325564004408388279967086338597021866361932611318982383249063716797197711014623555417346601113041317023426838802114228281167589909959325541896357444416650372180062401723442974595715163515115995431850857635672166182137449880144413136542417775111251088934158562204059773311580458023656506040121211807249872377730519653220477804162173551628054536918847094746320133915515144975067480663307642686870217020170599700005240578414046236165810030786899129095308924960601782786602957078210127921878873342813382043341303838258723946457892882903627364755983972836989219304044344313145736729753281667791699770616896225341016735403286192997734604536419518617411223772789464499271644268406808815629839975469154668495638544183763783683004250195138025632262890653913068787401795174603559545745262511731163063555614214478894400661901906717821957568661386698275190013749296997200221526361477765248556908679742970640407822148452431831738680921216049219093647816879632436538416808417012776285944286972917401857383960295991230799772727025772110867125011999627860279004913083228653784844322756529268602759308604978672066279160947298344390766578795303484956872393074500711319151878610907063420977844586481228448888325007785758933941361589695600396339976172381954905164656849092326554001586327054849894345734302058030372536251136322048570169635630135476258762660653399567626273637840263681681408599226864968134076581754436031667416818760765884036392133334410895761801520846923649560000390198838176340086621105392845525883513438400698247577396652063720203461530641971615186033845259319183809702973690705053821821432216831648211837554419779810836710974354916595354711001744606053411976148151104789974496087963629401423816214627154603615242552936766556002771825039112932670417800523744906907737900952080564136547591474775576026399578844295810753403443473916279452300051046625708959789982756275397642310988921311451286017252788561971579108937753334890089956335119620199608335233634118654287753176406670847043825798721225340450739497774985885758319729299049063826629681242871520584976859765271251120005099982372259961789050239122397940695069535354689778155419615241545935948817010104726660178292757517403424382506715032632504081483111268097265620204826856521561574038325723129904858763358759233879502647195323972791626623934995440782202726111727038607288301308253995372643952509505573720624345351812567406857269187019511056711502759434948479664388741714438037760355793604451331288566889322657883610682412149809577159415102362077993584923381750865231898571791559272216249212497767915723282915447362930124342664373563940887174413696900490456898633306398129615204998755630422964956051940094657070311616113987018378953903606774404763624160433371709422653828492564432720024243915755136792855457654012694780804852132476714870584494448496739018953142947472805998418018782733451482181246935558424791102118318468433874926825305222144524860967590163543391154264330789879529866098362399702496289822744065269898950797997872251494246816272913356370023165665118892535368665450009208525413352782382120849653780077708156898019750351342861814023397723202217571076347444873862705075724340824327988882353308235691977839516066539007870835224396765462189962291746623209933000032907930939553234429350002494277395232965886005095712021328949090405398604922462337779585315979252897973949925664963755325115635602764737206470583753585587342588227239809992646922569426301888942498253925727710602411453187303039485805997249411104381811476966183701824512104297254666790516129500549053250724345143498884912050151056089041111981292707334861368704411545965903986187692683145938023666750521884660108912219853370298880534307633714687310233210344570351875037894536128693792510026229021004002680797234763204155929353705005184502078199932383062956198490262227401598152890405744695194424841683735885080528596096126501142592939713453230476214744298027861698855925093196650073803078910302299720219277397457818251032307072100711303878190993082080319444169891466893444808446181283903236644408904738246102796132782931717148851967260651194439195773440655859191119734052108146031820875308002653574834333249843822406336304260544681713878633236266040723259954840466867136550562984282830358103794738231406034173971341156044014611254858495301661289480886951398677808856440712317694793943838527360001396585770847466992226518314623340266573311515790775672057237892902410885455691722557359309808177502841201500557312240676217326239405526258068802855890865834063723832430420973181999298097991050494662318983418333703756679492632531582062229841951969374354334511878765613727886519755684628203227561337761680573146384618478065095629175852317103483093999576586762920939888042069900936750229367267021545345378242549057544393793398363448136466542301730348035164278020495800078921767390776520691619315789722285227683157073776623199858235529058386674084093251684955698473782578960608330411791668963919934590458169231126313644769182557785634584283632261264166946617518022733840579911242735758203257596594065420574720211377189033481969387659492719567745295271066480154392924613327895116330473311416386086787894572350674532216571826366941208421349979010340067028713554904280082710649189279704033758587421004675381630158773461221409814091030518849109154691490598633185451799448421812079482335453509583155678759270919628421808736217345448309055628037417004395580537767559153974241215067399944991599321713887378697934680863908289463617863277572757192883984555301782008475126074436793766253845617475318273418301309868959604520706271164751917268963984772575519415831869929565374679005498622421803128348197823790770387735432290100156321884123041449644602460077089491752508914732433792136365500945306805895127956749079613536341711116282202661354109907887917775125046785557323656655881125362281914390950037612285650623819857313101689378413221061671753313915877111360769082945247765538258027999377641693946872903792035421943948609602893846675427429715772866583278056297380790117959658032866917041617087821442895169301666587264641567124702947822074937607952798210344822783789015445071939127768802679743528406702807678804995626975395967422926903435662676504014524723112643854328195774211194212676231592032275740096898208276802543518490988355825767604203921682637765694608383674407220438714673731454750848703403180165669059481872241715865747344817955530871471487306322201054063809633515814478732779004268548184519015237481452358241763304456419502622859374036252540272575806257108037998525991777544095260770287493247957674261508229867893941103685872250355794820143779786375980028992183354472465648578254379078636381809798174259809168006881041875022508144985086665849262687076528947081653783946774132224000168016149064775754244759942073622095585619550614907017942900145302921838310776737754583135447386050750910712178496689651837363439242555176900700100430306610518276925700727151063715193783097211249164187624545174138250173116938983032594554279937531209074423440756234349938109013507969151174325454514008009200026305917532121213957056682065184321795227909857488430463194634624107760849451455977223265102149112511717949003108041515228421624881928433658074648951379603479499319644437257818457960861462399575238703885330197338045359888785936942352580635694155721533018480394642065812746227457548843638963453821386550397218168965959859537712487041900298516540173506195264758334897446008829486714617791518631421273408184208674283173240514176957070412995702104020160475767207800228527317558191822325417126894523041947215155651205716550116896540427539952706828357299524489617442220811444281996943307844642292528133127829133540533007465772988785421104565133695007368039173855947007619469927467827012725687669796496456439438301972839361138470868465990588298663399175707736344389884051604420337501775867763968843231149437860124800247933106595118470815437985056917828878544888031837038761362005919338093353153331268978412126227479414722099369476752920328111140891825410906967435159423892692344818432976623692784059103679619987311343346093935437022430824901709853766881323209859058059714891008971585721648900627700482019906398342382032659477429612070445984074793714145249418221205594989202166592310371437721955257990545581095030024899932936698250721799553502896512501765205501747548790309770222815832074306485373543825359340807379451115202052934616408096059892896892667096704141472594081956751276732405166122442418466701901213026692862091965680532777599319696404656169443003061789742343359276939058548461950222393310599088581941125985780416186914293313392444273471279501066429889688233957703767013243650406986568721075531417962420101223972591118507814559337703173908358378490029289223978961491076130558240033860444931694954680922878409929755085157967311260603074569954548532222050005441434640007702638628351617672791121919476484400389106463306046458138058099112768860704489858111712758226317991619754881841239292114824982339097871570233927225001737375766746872904004433505235649752825094617067825357792477250895629459469407237944080818750810243460617118036655663988745660533623800371620901076419723817084824131854545320753385141763777887333983416093086978319372287071172492930030818639277523822133542840093171713552563694872462737382775039271199976787234135387213812669431950662264640436000342258220992893164259234833311662760735098809127629645455781883044379210983336099354970350530634000733896227640047931622526348164737582885431077693664333948437203975697567179915697385959838798088405339656917584806454533891242008637140194207995434906023248811762392401395286904250519397657409491992464594658330132998418865477206332218301524762585684112069729750226275160571376915569411722515197980503981652488737665285696865995872373139604639935327591482804225119384065389534378749682926761218656963969796540636290412621574217450654502955352320060115260887670589918164191729458893839163897429582329665822155858204519183634540336305446756238954249206198636267398710458031726687757723542119101152349034141004971825993321285953998868939177784052280443600971107090077520823666820332194534148683274566729823742821991674722211391352240543839366915743959884140532533251498648291562626499697795289657586346124528837031975989208902691953954445695839909875389573294538867016245339637327102603440255353950399652489065693879195856629809556100803806015773250150017503001999285753814771109071203288625786943496009530655049535111214780707283592634159247433823485677439411880579153374092303714673199169225518083397177507238778033455103867195206250537517004908788926489321483629123963882224257070850192130628084927487341495035423235568488695818020470469627868185174796690998234864737563688237210183904693445400160797782797963613613843915188715254262913482090189151561394458432842803194744156646292009932930606390192384066422814597752344014340156389444648752866993871126320118209058676947628509270724652349959312954052951835782695690396804876253304118549029637372738789386124687854662122454606576752416627172315169651933205570673045011301223885739880054315499193002391433075012041212709919702045720075121848411083803243459607328032186804085341935469497139576175286080276807074735381715243250535551653267824512100883235892942852821027245456192931481376470326478455818414609471383494853449572028907570202108687500489814822499899884454974537993412635895811553707812496831825834525510557609105573645838243559813671748700341259021490554823803507617907383292094732335331903985473667405428637833153220304420705796918423532168443040318968199392484390570138818257520248262422705626161054346480050265353014358790510483887955913623676076222707344453752396561914976672203794696303955158085804271755955690107965266993622121125877485942237701578289680356034334486303510088181216801419221515759123704419200842159866777325509613613392777067782735006483512080461342876681468672697730438512992156160349278163864251175780064405619680853903287050807044541732584140631784634877242213029309793240225649662013345502429139315100917156980877454977659375657583658303014508074009426779459149897597689908408010592216633357719462104217921541787950924716675673965626933268128600350733062290285961047592605465873872712215523579758550038938621489310547302647785760556105242249275391453070768304327270200173243113226181735945140108968801565131341029169162120306972237044026434820611914598200994332698938715373268283073306483693916947098910233896398980787172008771608710619682804953810348176343138850988852365081955205349817218608008984628699777404667415379349084352434828874957254637008779360820095301122814604076166377582639283598704601049059110495196994402119740136499543031675828684970739183879200232162910190980812079041646355019590975740788323781187434014798603255478783846422877164495503414401886012384112508473117053805275469072708462038655372869028559059928030003451437323482527448278286342984042225037282047958797551754240672622473282591032684039319325866537471249063533528783781989752328405748059124784960555767342554270432454412710123790587840917364252003051086674526239814771230205800989746944661031073704389874590943830407964176818889782365411548581974952297565041131729871628647049740125846373653402602496611625520693781428808355207966469333949053621976521929321410869471235601342265662278705169752899886244619325247222872826784976040778021258893677250676830132338283248841515031547972597093212194901015800481203092523014064263686626354916254302488556158136160726037393742732694690689931243724683494452028351679271091597268896209399741602794934397917067045521696242602002039636311832671684059279125899330292107167571618484431621668368593198053051343459722922347851034026460643926559234856958573382214315900105149320494418089756991061953316406911856976036605481963038068358564896281304514135047420638108865427200390924196015186642443265137234590558312795323922316816876612282456561742529379150360270057546648118216426521682398879240030086557251929358453056825850077642167110978170937714154221478466365110142032801921497308322309422186817742583139555576527708055616157345254261789145831845909125316468302631636801363277088965474987691578438773440682576442319307809230951200533803549891954941880405756898711622533029904583125585052291079285738032359112630952160172914176345828407242946371398552812549863252940439328752285271626269702951207408002550923930860444362700851905433062334351715165547451240463759614452510306985864346986544112829029816935114940381518118449875448477174631470807654392629731114653735413900003460926914039247470274482900181956157991414011907039570877680392244276342958091363149901248113178265017363520191404886864160657105587905145633139147041036654249790578661309147768530383314405867526883878629521557673231059117241550478487287573499472360685855032899761983078134621473299694308593428165143398304625772665507389117985002464599122138972015128195770561744636978227024299559128515095456110698560705696564264610518268114737004116065452898629183279621595738161519830594213053501636160250295290324231293408307332812330952940677488317298244117231468095756985089905069568850793028277147365527233817514038418036749195493672896422872357616277588365496338728729548899825923260397347705810637410069188907076947757463532171982946184319423936383431184093106281847451293330661782627153201974701151045023685058074901662641687141903251022562360075607963954778405687529731248009341588385337425445124711261240378914154977988268239974107525234441882702375970927089141806827059100888171128039044085837909804486799484071403165052086106194495267494628669244677999113860078429178231113666019625288446438353382891798821233682349001841588145352218974857724348614651687328497883363024126441194079019890063444802089661535292444144087511062623842327403556937656519295996860365548435293149077499763551313583945117063856152893211631555862146508851448303613499127428601012120215508046856808973185669819683466384925606429140721003035889796853336392257206961836292024893187767498302092804118003640479846890497173489139850242841119783564275303778028521701436072305104146620465551504384295740463772181110261941387717083000829066251329791100722864886454055542210903855443361532341498557367178361286955569289745545906092071227543127196712007715145715143351749055545126563272362132816180659169944655027596287586374252118823021007501809233670387663672950362745158656406086068538503130073066836039959839566931897899844287960598292923646290120429354958684308108567142560149012382461356446475869796595765526443853596413859995206466957452799160499265917069300173842015717160677935025326793868215612931749080602273608276610590124334987532773133114501100155013151024217303492897626171474873368331444685840977689045518795502126691768329091699466927317932823806122446571832998482912526516064477221777939543928612016896774020482767351023414697521746599229725204274796831817422229166888688463517873432281866420601297441632600791215580398755180862085969220850249642712753190255465909459560625060888007460499122055011166373253523385571570268380030394304044259531873751398126644136448138199666557431867981048124182604781232976450421223191994913518676637078196130573154333002904693172958276078942690707356232580005208717725965509925411893391956965602778170333324263495864744666429904973690158994644729574439258964587961435191554119465020465480401447823908701684680446234578040368853192272870442048792261293405479261840859233512831908815508429803764160508771206308914880619816920676811839577672908599186166723194146031044224867666790600928110653683631642426518134845182467517823147539251881026860003153061679666624134908326212124923758357548394349435139609401071364736438910228789728225208266825911699536716545394207143488076722938082338349388756766666725555751364486940469532678325777295649173854815418678814199950278003088479990412039300123860125181169284387756663095601413611706135362137796013843529996788552540205020647093094609576773864011582656757977984964489990517875429938127981786604423265783159289464258768223008113047754119847955265684969512016517828913177473993250057681242937164098188621156763536077236392203537234328483236631066496104946064769766250213616681434108184104145707375005846508027101638577492790868913578600057651075187457383905436059569732710633228653186260273634141505118260445659883103449688880590112478520248030531131401080202007127685853678505665068477589002022693491826890623155300749680506468091634711970660450670264129029693749598231475843833067107080290433345370617127148864018542950241824632962431939120584049190767737792804598711767273911210149931572112265531310503885868497317198453003411450678684404107481263195134884229539662515327170637290041099616907536020231858638480522241408687322330277433469405818576320678605091111173216662306336849308454158948123561174237807159090747837662878478329678052447385246802156232009202305542483735697698331072239123052147402825067648769362444763013531501293962093812260155276923279949629699958044020759741932564279841219128769824745115453795353240903019733185861638419230810144573406448081337183792163287860410187381489632471251506044982180410204152450552754803904511819690334720018440954352374671053200397068692923195594851674617879959117342225089090610620047881185557291951513798548210473403738958142264190081228715953295227662400007921654057487250421506123807647546732331917940883782802514775672346414423014261420163530305858294814535686065708181974109302943855853853822587560796299732332512986570472439394021929322373860105307592315364194018415124971789961168909050288155689042595399260022562614729751015330206031932148551063783953070542694024209194359670172379406517566379026845311490491726169200270689554843824400239735759771794150521527856284151257394275218060456589902724049560307457027113734969374084361268698782918808789251019989784929445263256896248606889123938319438225267982517509312162466838877255934936922535603762496734341656679413853795279046754282357221669678452163690624155149675936621334407637266427394993949544279619957717973561276553179628932663989426861649687854516369131000840658984929432039658283292078701181775831614096636504816058316115509814251288743833335370763130799401842538591448276450806964812391765750564685116772821515425705010123121090557295216878026507757215459581553233011899065433200876070086536678480174848718569296955424880573442784371656783016808452021494918320625463032757508721241418759786051896281854417221687705879424179732166065060131959795699638136120116627234827716750811359144414460800875362229482363744523199371700071278407982132036213203895403710023846141350498144375905854405407649029166837853142003734525364376018439212960995367268282345184216058417336040127725928362072222501653077982479484952042608300566953025132646072709638718824128128240654461724202090828483247097006157959978743834734346168206032141587869086592786613493653773000004974104015061156234221495803122052063595622420742046121305308667788762274558105825321055606723822583593963730031030506263347434195543425315960568467465387032499728933891543031290774739640885859745376860910234899039845415641775003567035532506314244576958823050968421288483010523653588638996292575359669426850395737353016896530848691216248531989797569938254334905573005004067193007469675850253711860796695430053451670674089799464145985835007579905724334162015203564047742692245967212467577120026957200943073981178252945972001212018443281327558459591844199541049408698052018461089473898391141523155471925882207377717570458892036791283108414849598183709671885952676137994811462577657615479500721967810513123411602720563059189611388198055125401841857924651136758474176782943031799843171385692371626212042706439356418938168259587115851640557041197292408583375096629838369990869136541106301040271404410435457049188264851846534646682801683207949499491943440086221338163956148930292419389027861887277986580306936945010254621657803274299009498600258249169021712553269660827300599560084720306059722866100073171463035305280242640408686076108676266292153402649501666737718848336513679637899165749893714034288326106920272855622463815585058566336410585223159237951675993946415107771727786430584598678536859952158051650920962926468713485656695620161170273505489468640586028429113931680764863390716843587304889551449068702088846687550854141040393198949036371754819548269291074158409084570347378084104448569443490848608053742111665542239049792776409642165098175043431384658654576068240064850865512647817625202774859462660430772915577370575778044271830431859615176802607358942051755457728322161771947560919610719468029746776460962517660715174437169877724848700562261828111668398690980869904382675213419198804469887490339862006835991234663759701777428854239062522218126530972796294878431294863640853451315378341682958394623815272307118101027475190528480267521563926567876249778955912255216923341865496138470071757825087649806719042496425645163303426485013284688580466638241413692026384904334109923905323922361547231736272083529634083633629390404741118537230594388163132910210703991313564757401912128206019412811548681650509686700848022057955929125632622069187332388222222568382117581698980827141661358919815289593912213727440970919680462178232936102282328922633461663403343265294756001622719664458662415980154356488307138785509831685883307907122034874655496327862295919780539171440875826830002147117126116649890002860755837559593007138799535618250701295667454061475304325413362858004758115694176436916839666761151107399909630557408017297174319054808920674639542585839043767204676365848597115655533084684199574571945592114573350809703223223334128609055151727987762092169669121893492571227444361551541978170336599773020462080255542857738661993374452963816138082051520576428422356644379082540042524356824380761017658796827878487103445805628448637106771700433039502856950519442614803324621466507471612630572855814464543381611741758221472715156541656033703049543222289389408182383308017057168201023306864156483106771410584858689799244631989668752749474119624310079796200661820777315552385876169138897846106295089216638347330223803108973627478711639319373712446055286718360686891006234156065550279687098032058115388724251755011185685433304770831539849221605705570230467928429222635979425366768086166742253268750098140807810951491930734018365104298879418383699139624985368361372772363874854489761403263242026433385463555373567447920203231116849871033093763618442296021440572326924009661296675706935340886283596655538912804311067979971380414029075781058143927454676493339474942133376933915295817503403465393569690132027679850559691322439637289785294657488096380465053659408555532705376868213706389862322978761644397894430675685799313818216925852101603070125374209049793761871841239806486221707400662108025598008453607214047533186069639313349938607427378249292381376717726805219338637042192020108646041371214439216992566369715504424938100871936820245716506262336834845092234225964535761221476432384713093238858389651017047918200133316060490160938945283023122010473986036957505669129801678609927022163126589969949360468376657097475420534579351740216405226604207318656110700490208463644164430876519031277088236507839207890478819893826997801047729743113829584184815943528311121123661881701986260495923953914120220433009001111780258239470029751633339687149903248866315203728608708077188082855704577726845620247068841596865969476398398039003845037808016400245489286570886506511967843547300547943095394630640843499627140795811373929433482451758625585646916882016263731362996632609502194767411893904212102063780152028095828421543694963897803124459687743658458124620271897976868863318929176319673585068881671817885237275530411311351091407794493851518326554945354705313473342513067229263620974366459474822056928840151521063737210775482067430926579621432930607443249478456250714302104742747249648855860655493298661541147284454053840678569859347800324356340915569558854893894107679734441488520611581413030659682460049434858884257546647312475296113350819504497990357119047194710426600974319815374991649292336285804246487417766992836557151221093171455356163862414428184474387659271988182505855237273191508863764294893862522086854670170074640249033438349012917398522728934833692824082715114016059419524861300081670902709635804101862275278708276787802689317593103865502245893529144721278620882822318056040684864861785170101755076576801837421630080445711255443225227103370139712135768946610910037589014787042776548186673046751856732219522469240233936192008012850683069035710966142136771657411724669237337236413877533686137206286387799648895953735252522855251641723028417549638992240720351199817264068167230697505001161274195176796378783772310954872854054063497686471249751294635356902462557241200234303716759341253052149035364694416859892388829974344727884973323815860748717040739392060081796997836609573153150688517165506838442761282295646299052025991201768269717648723277308889743277386440886517250564597058494442493616307782877069957224672668715678939223147489535134507566861546524850790835947394263591653894814996207615119060470673068689680058743960925697075153811754435876850093541924643093662449663292826248806763367799888817293338319913368256866457367327566232495345420743497312600909874961396626895919728249814238304890462196727765296335132415568069145688918113389276107674163752583425185483069774887467275304762938730290504177492061928796612743273996370408632732829681952684791181009913777026429299675919071698374586724733924481748252695650123254216733603424340317808068200521264893606595604032757655320317845097120854756578948430131423130949067646930903963693565839526969142552153048895573430151946518401122486874295018141680720432763152337157338007276368685622952803334854403467692710034766157103194979069462006204192458207690737784479606779475490759070126127537397261098553489611331345598509769641910076968761869970969614592785494703429243835846097674510660984893207780313983694439159499089937854663007854138651639485307107505155342201488500595223044571921609610085680738210189064433948392417639326295827073938423930746829529712947534207885508617650505837061529847803809100682575428396861108424126012184198379785004741853192462158733473347149213343473465351507555779986896670958868761632611696491954737124848527180310942934121134920193569792780750873194488861372150889419289656407605293089070372521289817851370450808411206120714394533794199248463288559026166261585164794712415196802543495258864776846759780238557499813415790119975444466442068998224297671691559744978798567057048994008533893884116728865247026315838293163298578744208324666959056133046539761213095146261031832156753330944518161681443458560013319051224483639911092047729694793258350967065293839193783834917410853059053422448636306114952516378690475418962939254018666374167624146895347311776462109163641704108035970741884493017385534685568229309617627113547941519474622901461148096531097239468045381547020745473220158039483412964844322520721279260504733618731307134337045360373135887703049989634583694417498710877076360270071128174990389506960721929390071501259393677572162704005887777474313637316565951776118233911297687521229188765611530161528072305856189636666521152962144233128555797046658922311781749914540962969198392069182051409189095254534075129667960427507412752144160586041715327372856706333472377547866193061785566325429967234128103985591661741908348217168958794612918179969308509642677841158785078382189104329262543030133132497254948306343805330541093418815511964494114247574410331340790751209385538581458385015914425069028050692354036024148302568084357545052475340688844376368329998674791721078615965186441725366772776120672285615459472214152218472558626807409624536883180867855682351500875241235044954830261728585300508521200818130910333969551165985631914065534385018148042903770179128217367038001285499652508348036479777008781405298726094186276049347503874681230214302258255634113794906811956809862401624600063963683126698387069923766403629949188226870193887677217574441709504384793281535138646594331390293735434102724017316225064921899327393404173069603578891908622332262451883136426299997431828492143560740654085358092530096353237664389791687878627491219689892807295194147541282252515183480780968486329037415485220332922961682772694146175634256267817673149600738222594646718954571902205583373320303106065892224331239921087735779554123516669453982443030024095100984935723323382307564076111344978088455251183676238050631618816754649548831031946362427245383287155957130124672540052698702684357516985115321375224741189678518504418621256719142088085503949551169646272566049473223010867451021572085472478243022796648449540295585841298712156711051415107834177256169178840847010603271196928866071294185169711119541439109615172796652994042237529512193165240461467749962931110836499852018827879012003734701305805682687437248408314565855914501143595652464064314575075577745997106737163623511893507432724348921731111315532172468696428515666233167264164114274569706399247408724802943540405039145016259621320786779929471853926013335831192585051132807833425986432745972075804185691893804212951696231002924035187238536764564585909061045302067108184107055353806065064533640554467604106543729278431306268946345646504995654537862571279074595607617923951792543384041880164192136872643459807394068176277531263706322295300579998243526515156867680167088801169094556770828782537167022525976628100719667927713846978955387683656840400302398331719345673365764801822572784901571402495401315560101658195154942132831128903007435076502486632812275308595430838753111088469536171895236939425033311997820159230738549844161598249243922699637142449617601282271755960164468781892275182737363494549872219148187090896183273584501316202789709328446369785366777591403322923687688296306922796629172521513593693813305545063169525404645944912611766759768021439648105360980561189144665311390851626501708385321998199219441938129797461201074620861777815646487806119942762699661544150705039682314426758205720740614406539609408348564877123974728305933859975417105143944085780655026271067041652639607885739988627723542179322879775997232031584921454924070743332492157532217358459180980756209236796951519299780924426133007100193038526081840692391069004015734564718821255011188328068839531863942545335532638522697605060207876230069690052325332682609747021988873782972217559926509067506059545360266472224461054473738212602428597596502177527079865988933828573491943966368642187497924180420335691694547028447298491477658011457473448552014150465892582042239321447420663476967356058204940494284333885973570418293095137725161520141488986286691790521601603656848020202575082907074245366611148207165885438401709147505044787955526377605552901386054947689226486716232168693488728198594464961126254008131950929483636217596132387477546170957100507183840823457068671075359995139475950147753640069880927460764412648767830539798733308443830764650282507196168413048277471770145828357833777842497563333973611750399744469174301156994791090059823650385412154013634054016139243734411698152628539088321654121964394567193960914309076860273777129562563706683110256045390439355369348113901790940249309023476602011332251263472329970119607516866936713489254571555351137674254281156716004608760035158127271135527068580314094815924466367760689990442284774620686272275921605881962313597247972677649616720146674417280451951027776813073654854397243119692898504575861064643718688763287721942280534826507335568795507813803591638177988354576275457749211984849035632481906709571547144385920522586549167880300993898952475495914654983403771240915673632357597189259705979377216009698359765405017832821445397936968218848232250636620201443440872667482424513638920178599385413717877586218027638985552156323536572353005153729812751954337667998308291586249575010214883033341168151808887296862863799034170462627457647090818290524933278274107508347330838712946820518983291758520112323985397377432226575457744670530720142452702986833013101447099655321117418611819240438236471174988586786571606128306138928442154884445941549616311189966908617185743778312799910387475615094551383713762180608501543256708355410687400118858390862720689705696608033165505191987266548839725436153663878597318590676902452725093051681737801775920215498724235640950498449415366344084633063134741834087476709419759255783007328853923122208604841250840350867431545594259805657660442744519851178816490487200117722457212918974111091000036224733957610561978766096817687262674824429006194707312023596553631899935027924797320277267508345344030825519794319846690247270991975892604305458668042810571918544818815807868803393572707938914127540384885163871027457942053225415211819763786504037675325917910923329027177112688839435117917898229082636859446503241693244950089067255351833762979455724841154000802832697671199138553159547678449010151588955268136325325957018414971019316846798986656747587651249912472071622086733349722709313916967252248944168056806061544134409984953556008840155525865494139303464832440031793218641411045361905639837370133828911563344802116111617313934546107203946373768122397862953159445065624984928478910198510454386877310011525631273212488657970195032175136319622055181707235286615477855408795673457154074678489234082411383295219383264023749814199275273034552366812186257721229031213089156377412763705850141918245625939951062983018423003816596680794956742176730520477652012927455165304291878703167581036923968407398966990332563723869342281818757263586296049770341313226346027018583800645623038135180819972494489932178045381042887098474718545658222060554599230880132010599643919351263711788590224235713738321069772686152196792541105893299102998171803897144148124351232565400695038295812149289178028340621786539241830266611029880012966108148930142510982638103148193922736279223287267436426568514212405355526222007323670589307277689386030428074716281421596409924867948133294448470383135801387924795831031821505603989382558673248058673875453514587594163725775784205593995381807306587992988931422377078919792382035580891320755412352172100995639740691730421239916410108284474106951412954078064610065302367927262293634214844559425494257554360129891855587914161731754161915657307173000388991282328735831341269323366514387477828354611044452607103521246514450386867652676817363008004358750273461398884745093098665540498816306490289191820498193670521519574052321376278601650403940307929429441147733874699185475725527834529740438244313843423688117213071762984444082230318578170726815230412553021185189557448572347111063660149169018304367039894665682999458431305482909813522493313091552286085354062899917141025614136605869878582344896053293031773105125182626800152543924749445377286521520782440199323106791077573773209952488052918679369237847301209984568573671128999081567302294355959116899496669746326053776928729351310410210194306783457722969158717762461705207604070898821773387316134443717445088383480182239927479359805564829819762679964443877165031761905657442958195957325784125902760294450390624656707266962194867507620108496792031188440245783053213695239492262833184467743117491805230599916002662802266479528985063229414166966890436184084984216297322060350618034795973835938856867528506074432008401165408911603764191832623138681193337638227651799825900030761897153929611981199338009559896152071873809979041833773611857578432763615954300177280916021358588099668071637375539401304731754887296641062486031060234548060747509223375356170819988583990728585292812642887721100078769847141900505802634187433059538043204166015455137999875441411041734244816754103491917836044599316072921501923083385086400287719051395508222936464073968816573026437051681812814897595584147902300637481231734447940150165036655114684803821598784348602828089497937434871974934765720405546766688432323770691585570424826504941460964190099531118552978815099672605217994438104061848501716002541367867930471365757967080567612158532522661186972230779800654764110961820186415860638295004458577996617485490935967354640416031067092202561891027814693769289461253297264422506389453140527614542958119948969636842561120018200728159618261148857031130593809716764708893203933201850901268886965803736938057244650125316340236590001225651652814967363897967377513925710565331527441437962080489825624588695411199731231660264207794170215528624823698140983392399415024522854792826624514500510697464264097799952739973634200375745322097720863562554886339320865937978878450712055439310080558001541621968559381859590376269395371945899487043562396869772812750851865058963903924793205383906232511313803826820970569119533490985874351883396966584460858673862586029207496316646527124195226908466086708539911514478943002304104213720239655687405766715290696877242688656888965808201124674762397776543156996054119709081818346671940390375769636329836899549846806615866700365028135708050229399353180003399576497656946365210949794212529564831695472628147595978387220337511540228974799681168471511040802743047730644588881023007567162712330784634845220425978521809073858205737088102369138326401208831487339160401555296161839142956635324142310041835973768931742687731504272191665809495771402313812844376161056303604415260788228244662213476227835422105930744835188112945967525569125379526146391833928735378810623013152218471335227832005372732715703878216351934780586506470881638928154321435517136255368278924049297776524295972599445666792610423827035362624419131691382578984578880625678002784271782295877447577354796013509184403160039986550263046187242829200543129754144855448593636799975739000938182117954888456375673791366488807900808807586252581134805243984344432216791391982521038503680347603278469182667771115099860371843783437507821739272521746161708672548915620096908094621793739022466201871520046398737792534831437119286090487853071089369587750279233239431718007557224993389888549274741314902584667520949980564612838142173776142846447988695522572582877866974980700406019598033028852558228344087644919736326793526556358852201439952019646577085274371462072638320880574309943457657832889674353240710486239145127344116635008901042991493144362118684674718411689091646537696280841292811848089174202146317154227672144611886956799034985073290439365755909810950578984606054343934841737252580875255931685436428170242114094900599559700615836155310537096309402915914788993546864842968954866913137674751243632691720607454713681377920296083098994301342044677656954457432604325000929030146598119923483753136314226002169067536153315632074302818418222455117923904323877059168107926181821234754520145162086584703984373402156632746004797344083856893266710893096286368161003178426033366931589213426038370210860476068311096304489865558894055968692114497497444686777879418572805939112321412113521113850440533617343319147640702813416850313931777987979155101323155848686660753471264464572088315261185345653279416663762149687419546547657357912093248905778229570035828227213091136866870078508540185210213665602623399883731341162351650479798161336983210435442153580479239496852001010175031140893135111666966786627555015628622686277976484843668749310194632103657139614575976976104483667295852213207176131493491473956774645593612423694651870115671446842043568536049846162319266058686077632596034819213821701017661151779701970562230564256696331953388154261287516491384897791322224943428871709887572679778326664017319402057031641206718639127849946685439903441406594277648875864431997629861530637885624763379842906488514648120590096144902811363287848703525148911803263471104179322119352603372397746431000493808791302096058999463898462394466349977016809781948526342505180702389885193861215619590600850213012157205592062492441395981157642066541694663621219440464322613845183063065800272896283292173904862055831238643035510671160551658448246695383222610518476660318498084733529806383139713450284338108710456338521996943754717189871056751812176191128727501152709280182630421621449382104554400376941144866330893981024588863238418591967233788656896650972624899072158575890121308658344002020715269746853801559933547924018935752477208644885915649153627271443020427066734697884181174476094137686443095011286468993097620745073843946465631613279599814914743553404313554030822030142463596111652754905888831745356892168626377858496870447918689313147013604734233920245789362978508476698308611530171609392251327892219136828146731606464196866611349849934298702928989657687008706675149806591402148447819012103592282509369789498306973149853252840125660213317683084839206838795523211080481485802263851505941752528028620796226900274751707659465574807926004909360396583337620380419049714194777554261429244285779861271006271712613446049842384742038846097358347668515920864377108551636791157217148462017437070235456862560345315239303160726726666033234705867340874904188104323201140106229489812229457431233968274621645257505481861662243848554378078349621440060061784523528759777967149175431982411606003794178805888886524345152736666242737230311131440947224876651333463875699888637061402596200361865115418224163892700499970350452117168803010228929941433570297658559128952083918816995354892467050846863313036908025019868798845049664679363240742844209773832446826900038269738997732795209505163955467392710488886183189031296205623554225242671631908709511004582215956170817587059204103028409281041552053710311059785809067664530884262067302461154273911517681384270320229872515566607940732174619837869739384213480745624303590207954276004439315731007417571049881823023027782094151008080418591140881746555941250435477123839235824714139542762428416869967531257019521494751458933098622526740162287415613075394700924557149855975269005208450986463379465441828216802028704259085104939902448585592181943395353335890009091179184939428467478508093822525184600912250341324511064717090322805852340654764791954910076919153166717688627081231652313934916561140658935553531206840973914172923844234701030194665591386790119836725139866513181626963497127151952145285036658276820608649936173186137465223742933542245657580287842040762152328599416659583030973499267564350371168208241147784990202967098248584509193069634625024560103794879318372916171333397865517027395735087115652255543865981363304453260723681485492088587935419543589235331879913724717219469997245665649652045816255435426215796494667775362434126404795989952924493648009390011522872761742488004715440275637849794367982710752294655662841540807959008508708794629958964366899656460582609947094330742067430718993835374173988906382657729042124086498878646020104828703677492908585351411124410202322464497529067266629438801589470377826170383390103065149854801804871995376356813145356047706457631876428102291297112838342685335636492652680609673952293351373081940826420508207346103399503844995440717606721090341524823883050545639950549032806033961570420533315889115470950614194963681675690174225085163290318663544321722766944124603873308342189365290329945822486831245604931359110782672089247840066035273149916949678452061057792104932913317258293118975106345347890122001677950559133932067012977720586697504717518006108546014505240370362269478148460846542070291302755875725028138645196548610521675846426262682083734616302816685907475844196979184471430862094488170689594317906454510474963780230721429418175155918081812386126442584678568414542116312671848072681843330274517240169282903876967615968174995448079915492560184848923779735281332697076943070101344639451142558740153418500357759856825734386058810516878317343599341990318641781198758686394298559060484242154516849781104429952401006660500873180343537699576017046349738626102191785504697843822581422875044251178798879086830891369287791114080351945150828486995214201321161662435924015123414728890874817097136432115617918084770943801597634246434718049948167171735040110176217315444740001449243941288733488226401611182302633974811208181058920837995699608032363173954842218762069437664218378422246163771878031482216975833695034417749997203603276792178017437281433748351784189032482730003569767958096046372416814228556043879394050058006450431672289017239502335061493011441507531967631714597608343245765574898451360432641834047775390821316311249022094594255495454932387944865583347226362286108922174181842698640606926740959694843977621506170868234711807704957450125030180292982172650895827995208233540163235515356801909697031122397813831021990806815345152631175315729761313716360333710849663875122885556803100766587483935395423144027955729073468533565695202458321908272752863512136781751367470730612675772486504567565192984651438663140103127538746842202829259002656906297031018709218393404195085542725739783052297982889633667729426457543555981544568503323984628054166709736548468870947818920340039742082864566315405592417097884086127700440247916207154947257002991312019056118409023409296789833207681291609945104331139516756291500995196454125516429410514108910113618980795826292010217270211920463161974460759987103739496828703289840020904967304501854440563773720706844231027170481458144681456167565698483323053732387117462604005615510122599429191391419821804166609608956779116309602241944815304290081625505102998988300707202600636651451651050213788079362258789180545091294446202393260098939558806994103624138924462180901443823245896516359730984897967848443059770209647060181327482065278866197111054064878115703355310808993859994506354880244641191630970374845385407218352836157193755791661435256211260359570151873682312633957511392768674531321896956522059345194781960144983243544440819675447627831678040816604335436350396615503783478762208104324311521510282867482265019055720848406524810047893026281930152374004598799400812807834903908870476476130094442900560973341899147434950215259346193424244845946170087609113424221028489223590437204129698395830382682091572736299622271995189539518826224721246482519906437938211521281281321164855578561152288320648594480796246556331555020667281977926589553843874083225368890288398137037808952235169293003165172036602502147947365128345026191016051379570780316051126534842407992014215699886143230173804642364083027755991442207158677166806665986053895897872365336129853102392845925909042296291085023564028766686178121447282903675804476752689717912584076106541780438024026139174611865405836389114613129453223125956932125049793906170566903372302474214700927768111728599345747816957980893520919349520323942977663730167426011935444990512922011145143595782110772956126864360204590654435727035621072941304668244944797816960590116988593511967457346628643521511857579706953490666290119534522044634457105564460563607047572838012212174168889371965708959608684050947266121078517042033055950802657380781320993220162616361323936445104097342289728614708883761239114718369824218243487420476373449154809884127635445502918239811164687996001383023037141632113628664585095514371898727992264070975505835995037024810732889269685498959647382988404090628215821947654437683625474533306697037653798311048304556559566687292955992893476453430830150587671241938211824299377017112854173623859837747938394645875472945506841620695876954269315610733532890321166618831325214339552754921992093072360584914041251514525816537636741537462458761597515762231953048675219013234231977569980807641381814966944749068347174721392116526146816268957167667775418684038768424127820062424018773056590075373766329233612053979431461251055116622047130864206756914537666433719226304633806445517100863475308555899130394286542506799628968250168797520593644476693227507450340500864628011305283927652052561381781039474660030269210769844117080513848056464261483277788916667715469248968408481084884822073546482630474225652426228310539974441046024546487250448381170089718395664519192549332245088892689380412396843080840745321279928019710227691092538949959832568478040444293311206192872576632564761719563816431690801121075674450916465593964682872369583805396964029303198251710332648753163673886385969365036225943102631853421704908992694178347950143805277851113118358129099946538926485630538211486097860095131262077729111184029598607112974537908052834148379651252690194983421882300943158479118065798487060778695641167785753493503711751617103996111923812804043745250160700748000605064741033171976589718524039736473516674153711397807706846876956638053656305000462640204685821122609283769087470570855908418570709313476120662916522226324246409563374680786799074156847922428998396435251164869593049359553550564039066838155372079956663006834139412632559647797922090337657922611577782520215962439526097449733939408949570085506129985781722604663166192295573896965402069829238730093972059586050483513741271019696729259348040518162678461812933525269086947874103382599315322301857411017247851662313804064741922156538326783296670470170321027985538856901086487449394411181968733676652987258100313671389580919434173923765132956796464830506637131781444889805938158868826104181175356521146915316570276084633898673318005537109607475795589495509837674669675780201457329934063479693785516681598712503602510414968482512338079133191647613430886349084418429227507596546905437225439227101022479842841299092336831985063847107557375363396802141728754616190847403033892774838029683680674365751839040701405950789503465651777409820630083247379077202539351469742647602352907468579726892073944974733143644405355550296081470578547284748041993295233750467974152834845298110238949333946367108697676656318889948611264187190547847361679634905379764394236449043470436586263848437937447258476816952935344337887217144127556789660754772229054401561326217573822698876491577608446655524641486015346065903705568342495855106677694080625932587269429133613311692058670046646937194852706053668377459916639980796787391445186354921979238950498639264583181908017710087245935445810842323267682054015941803032916022675182673202874013146654404824710263718024166383940735074790107140815361726629428214048709876828254502442236965441515144409869299246251232630663044365758524121354177692613358920912930735141690109845762752712694881955674627364556202917671473438390485209969585737331133592100431642287377933079844224998805424394908342593423343045274645961953340274974138276833933505080179861627117447554061927473086218316939259849350802296051150512357810661855098607219278132773172385410734273681264776506962362221364595362505127193848676190190280746368404141866554456122334463942519155717323645308774952873361748934272042832262579346171665270268594310545723864599192348382303748453958284641366414459082798004040886933808894946237268354169639411153174058558186446176653725835482452231313009816877456312286337418155926429601487409468592805835198193299910888158213748710657134934124792761950584583752218149385168904116152136624335516740219120348036478888484913235386293647518591243482382704945335915753260422998776141883234578433501532395224529741454185310704788603636131567889869096431870259777429068532267890709467265007111947658183443115912072364601759595130935419386973552021896434490048572072246336645636740700463090535570507332624391093095499124440974497759925946672349807684375440954984380385619826010495695063172122926892093756720693957543034546742202380426189384829469203039248361168034866279817211466553900451792107946401717360296791225743431482466225950754838638676832730764569285460122771891985295991069520798208677267472215384105162903698186178955102848613193826420048569116697961177042081994441652727561700790390754929557703700161202503723677741207924021708486886036257699206566103688893971805718931838350702747440797959728448914903756224670927589250704595288740272097204915170380585575786213974954480301654267806866191126187173848469205126130985979497478977138213752701640197582529234265114159313592273203237821572064538265944534227054524563263037581898833869796682154677412178780555633535941938915643360555426319255092516870201461849303993830250138459532821801244685406267567013173473374067979325011209193855541122526506054835304798454175392816739580772332914833037468229951641490907353514164380552830462690640010365313702918047996023491452039297816376249703389105180553652134775070986253523022445276507152513163980348522377824033251391943437623997213245723962628584994389552981200264647826453296796043428148043110433322734084468094000024520207541928074090904469416652533574114345562114429960698622219627327111698625208545826269980968004782078218848861674067825054881046894752856369067800708277765130287216742966109448378628203264815171691591228587423294155990290918369135811547323130501782763315856507966069381634075399367230315326062691708895179775535346590279606372829878908720288443248281287924669553711361574164016656163238651765267205658875038809020014512460713770568429494014234594040157477357372375504172738160593386554454344244222930124599217554024176265251381290574775119279956632953362606049475588698884463591452969871113720973622211000320128220575713435289380978918023994324036280650613062215096887680852628033053748203476565156593492921837985662250498954290599495952500101612783503120127012682863858799403509512382842512053538406142199231908635429818272377023522687834682521603080209940943370870955058847877789746131454082688056578372977813921631340479456664031104888510591717436741366585378111715789317981917933544363613947710076934124793095741725025235134802229744585834827918214432405418775461142426224494036060977636914246156440543623576787114277768974079954298654966531504502233848246009434438318518098514939378474518624476456366138022544891624443544011251671928856471040581816051898366990855447934998935103124399555692961285179231896593701299150798966454430362961767673933214385603641214498264561601381655889434440102521946443485616168316322905234417486287931944953998462631049005856734648126253357296537556206087979712670511841020058276563211540383512935089760931779897778056203724475509297329099305783873818737596699193781740449077338532951272659602445327415966958171878266681415729320021994045245318747918613844062971353416518098388664275470187578989825315226814975627962781627516081337391566066618510631129460124794693039245406681882559807060109427268920754996465702490949119270091202801367771306725596039482017424843724997979709352353314704428578199636411299481621956221640870585906590905443967885695604655931024639132155607645470177850419140684972868000313082802009124246125581651910541509699753575537186286288216276166801356262480954124428810977814821459776646690072300783295872642965506774889488561658676728244547484487848065153469528944724724257670403704276597568721091057086517530541261707802062701304901077955065336193156668302191846832004478729825055625244091106478844090693634451073886483692721488267871558796558746463221348875284545045725662543292323202582848953460426963574557999438021495582192458819556989873198930670903706720213268190699880113448475409901224812964080155206974275882709242993676573801168757311710959223493201212510675227399051531939941156777290801574317470019976087058850233385690197633902142335525828955420886872405877764108351402473202161479401747526043987545075964577412543003791313991464276756060961896099375069979778756201907923488301761529196100607305653286949877448598223847900897662763106676069985149387478893956821605298014068100494682440417483504665010547786871943582656670264763278969568422359943961243261647148157683964531295227568455010582309545138596314794147710412100908830585440756263261994317329024628830810637624079472511625853737277019425547728575414129688356301083459529436580972704923248071181199106217706274515905157728898081807223504861730491630548507581740845360887840699818326765169893745181037827497609699144621233764058856235447502476699813243626563888816847162910261582316063548422561568688838421057101194790663795376584784388361757133425561216948100028619125127291959459229052161163391741989771582154986022061073943617191280767098308724994956267343195303625762258868612767379176148571235298368929408046003305528722243371813266979501635717511536213529373543392161020800510515453823991175461830511894351186187645345002814336081971027223685159627664426985182671648878027179491962560023572225734101603998915327607656004957015739851273385699177586784759483632640861304450373074809375065200474597680817329523602165779905883323311847692416049975908478433434947639352271059998477953360424917475204353390062122359321241009262312819709961956219702475106529345773901577836660752464353418262832429036706373399617486043314446019080502913264571508452288373495027442596200965309820748763238928470876323026344400592657546644052154695785877125108711170490281530863342399166965763810731540788134660021612478553719154735579792765538687313341172612279736774949352726339765683390046335247096293724043640329666276518774435148691678567933610966560691016344640210646106197430320407569505512278975255184253292301021757245644144201879141936130917530504775832032674465225503682679178020500450214317772239248236139291782018608129809900590928633955688810148522201317959743077737125107012654948035699673189662581934521593628629428233466517213256806589744925516168562958540630123253108738742497438282880626596391938814784740909021537084042469519879033831455752994464554966754809135442223311926296406272826453804749199458735288422601589517196330300198565363502758777264520063346116012622930935442694587046738724359471342224884733944867671585235582195139026569819681964778332511102159870257418289104597413915722494517518023217230890714578212259588249160902742176194528599946759785372390234401972417375661817506458414874278214052089897456768929375914953401853779683427452508243226067164439675686250938208697158854604755527758773015879809142625405149765595658009000270018487559398781803026680567904071504666744444384547354198483728949340312118939075871823044663249302556613336194973088714895200144686228939145655332127238711537539197348804060362985987562667435409070933088341512429223946741918991013178130336034290522166847607328339606105404789886630936714853507605269692120325053732338179778629334550662267263761049115777756994134869394770238276449913033249271469404051306414444887753779703106439307369857957414309158702151693208370208192497042601033570324857920530238980862022444064120633262483105072384135911530356508659714429632833133706884824198685706968414680204196606481578039650264145108179044503721827047073035317140947564131627860963881421440109348034210191677906902575302225567085194947551306735688769098631040734485612237165447319837531462204846455615512634008774342866881069926994599873932263872633383892997004613537920131585499173156981337430853100110508014463490427392535935412514771855395385161919284005168652588799938722065871427349923392639015764237012461285318062638268829091226033665492500206772752081704151804976984516930268854212908513053330589566532544988519441180137497699933577141162411684325278948074660321037225673106822293797337818563800849861472101432810566992989780427549868329023793304796894716654813962591675559675027749594347453806775764005806646822856602334716795205517790264194250801193600195915063419554507720912311339192893046878153039908482706717998005469009747890413700222500965159991666788385086626463987660230017123416569891395327736815306945599144675231031062056840753712803308620437716645985924967753628188910499021118040669759441496185677249756666036551638596951229740381951406126139528422602667287881175285392342881954216459523947091549213346420989828844079254032936584488827919788028985328401072511273360220856525321392372679260804263725845034558575663036433200579906184713784720106245053423148084258959739109042250187936093599371675131597211700439219644531351041752559357529847667861026802575412304570210208285423642490102996512882135472707423883023248402673701007745517848985748735093971973775221865785803034677499453476775113144912968582340181569837223988324686198376962875254977548684064477218003016608248748553240069904073675643107810661742635763505200682094520109424952978161929422303370259964804318522579571454219073888946238863958841596247164068470306543297498783327487590595112567024748808456031059686850460802858534538122796271643510328901416634859216413549366076489308707495387551221391787578494775315512049651990076558072174692158303848449262778495514795250911540725454592295473042575889458460956189839962430759357858025482114090551839867456260757041226780885548132273726069239070501422503108460922637860565240788485396804513724021726675323922627295720198503038973185273404828238886637273667924972390734808296681127574410709109389181723510374097896275900633945629455791478929518355717959126243491659825778764678683818035438604958310638043899764899082715213410240580765685052201631827478704662543568178367247958487219907148211545137219006159829537952049664683164033974658979222516229867949547560458130039952478556487524892358345014947325400197632032368201230985330508936975481692244000059097474097709318977123275505582564418588577054953488394454973165385652412148198017512282033038811952204565457520640429169668637502262044295059556132313759203504026559887260904012532526114147447277896665661607122937202793277294691411402515891157047891865811856302878058129464875373122076374390424571807796956686475531195288316976386614891165903685922636447318130992153500980658838170031049807304607453713720847258574164178749013757423327500641099230078912097885494475877864055286839782021978433974408132802015567318548492658823218368466710317805849185115112499029220473585610822558208448212572679647443868120958437273133487225514341943945423197090663070533154536120819345241802701183101592703335585000636053099607446689654216059075866636104478068652980013937944107908216287075056180548181191014192823916505453251520978981603196044853919097543358772259063126658174358434506469260729022582568946668881333363343544524075568071306370421493314924245435207837557253873554987388458966095400215285696857433028820356551944066068961064846754125030063125392699096963863371364779025674401076425058055563951391027212606416611035641835963834095474218664566568349940962090941101907191239335159565099321822910913029278057135331316280486182092556459666425964173026434316979217870415754471201919345833313354186485037874719785808834676639325269295522746530734060175879837199650993718815540287127939789897797006614852133235012287922704038160932105773592167648540526608662349941062294380131225178015373092014564417099615201083478325311884814137314675612729663965298583477699499309547407369686595802878843156895878205584371676025033324012437648772179176187330563503746769529244791892958670058065115619247889304132202593538746560380619687381507118527582259821646957269496723243550986022943377403831112307830243804801990963811743448622065935110560403507029566838941956237125485557950924476488064996595798621817691864465101964272842684409121819587364885234964900171116402851093739465259595265471174963664810846523461637033325393766613839265047536458884090935263384960289944168405158748198713050584173836337783369357563731859393120719679810875211855522452595210151362729820076258553519539022406721325695791160068648492968862583277509426129431954442111830101113259135230549462891099123909741945274030818945463346344057002139425013187419704071717799765051280984724347014434306465998766094113724148552175055528718161081377535452574865492643332589317262754085250445926757659842529540753229096846403059968342086160197046025881183855058351623502228634399319272211053821400267987856276766382078392818852202158346209498796102861822415703137187193172204582068297589339449675487462163471211481001688173231854770674153754164989602678174394643249347693696682292409737481033830807216979079631268649085412688601121440792361857462735295031135622180459383485689119985531674997305657423434907166430230030454079789000781532232416656421935012672814526587855787401153813599830833752379822011872437274936181104384301771585260006741771675119784075317491824906631705489333916110693742817406870001313968060834818248689815954332598712656152855043523751553970341106756718742941216027564600697337449107078202568281620012738541284892461317808153866501898239288619708212101625488766166343516404221994006923428616560712356951682795538871369553675667293574459403811769073010831325121068319016126232887866206147216009746420465851515720640575614282170840353514662700049464822499749470062533854305871891910306421137243440706948786151017792179531903013440782911137516327892709460089114087523243850068402842058767454942789593014074605499609028458321104463859963550258177557888374787589717202141312299851732775881002449863515150330162424635590199057005368579327261739028041380370628311711041057266492758990324098255293669947730498797923183501240859616944836628193056658453620548229321263528316338504834822637258058609541295696309746561786764672850642700580955169951685970667565770471156865909291877437762044607679856094156906032563790434448980162287371800991330696904644729461272388916328737230209185146575637769960894841017771493330774123165503438252805364385406346369522900582602154904114637525460173161494452553177421621669674037601979683626249913790447459245220669333778879880740810424628858933558241073927449424770209292543908758150409612674106953983383324308710937382065398250944388235159074167836850349213324959622777222413353947149252438328259681055979427489481560775253691228481517159396236855398270486601259895325477742632642381906546816955961491964665937626892295576863397814607165903961885264382456979291888706547182610710168660520097213506726898624197500468191903366648958011925352268855043580054632327806240018515771910665173214388181418578725591803364687862766371855692752214739580765558489385266815986197908116880944617182221006646146141548110901504506636025738001578644199002879537285310057341975323219690030214436878140081348335759641299044316463231541716542497216035269521962142358870518018504216677969200787838878535782773049773130637787930263836525759929308581513603591622858937436155304562569233567484438075874691931425760105282595392698540325790071945496360695866276534238863780383694010541949897384574891541209647194600774965511751058449348387585766119634861292217502433318821441919614247669683892648693010980842925472625653655679284376015597390566544994123888849769565486087102387414482500124660121975422958215842867637267700207458649585218740384591316462176600631781514320737294200744923931954485639748776618177048594788622198362582275716911035561894498843183255281096009648727482297444999060440446935411717136029272331478645296080461233468720351000002140914972396690478052826114429279010340997094988092191142820676260803055290878280136606724129617689848096597329941778563382137643380984294210306402020568654794135358581967652443825336875095300597137329160060581114865792601527177935202797848133678921562916405670689299916579753979197447350096935016216351467891021674184947687198277753927797583866605422277806777521165480297752504716724676939996053994114938551432184816374554869652227016301850371627539202095154180503860027195653764864809537493599953053854782945926905761075921382898757837491695959044449183425200169509008976031608839686488668325616653016604165072481391554420344726078540122426601456685311339120714261289253476871767330615455822020073156842060804732727135523642082045769204549157259180192592572888493836350461582215363834569913195094374954365696813530904021967862832112667892788226245864990672008180752301003166125829069778765028281931989725775438554668028806508046127965805432116670626165200788538313107080024496774145338843413126081365981322666570078777517355249072885514725498776077170609833362830596702997664329369679306957116662967363839504034113277653728545099904329242260372808840749620812066639693777035547223566260038834721999197208047375804299317575153817111260667183987839293955108175621470806508749772009690166948025881580827081391974498206351761448631636532465421477051275891060717950263438564300116911371901362753758512354870828868520779192959761502426391068509263441330907304326830120911370725074192464520821200969674566538839876001387777456978186780440018885920404325533774015736870390102179458131899103179637019421919625646242476010371609676586810556060239740078153251527963340211484558367048269206946896740781649509908251269446933637208014284731843023513561937753228244810459161837013793440420547938672234948874687152778273703351036503943965104705744163994187091142671795814948326435730620826308310228930794945234155151099123989440281692708894442700074894188387377536037336458487125951114111809575973666162093781406629756941652050065835748403836519235011017914618154886978338221525024787334584350721916263371264392710373841179067328497824487587348062643444667458820455291132426825032788717378633991471444534014523439371471200678157424683581831650722590817730281674238904539661616962737308679000904957728331346863078193030146406946261930335313707977520830031236216821478874648438356320125771935839642066524407072515661777358969839504588778820306030854785693138106997647994116781574496284077026451317678363641571050090677509692828887531395530234688060556841856081221491145834031444614555371227515550415009227793385965571798546963444618424180378220441917013061119550996165383900425788848377728473224695795714648998958225931809567190333403070994606804094561566808312842241720074067192906020441700570332475205598962137760088447530644711186053691091795091372458532407957202128171779568748417219897130106008380172883526007729934386648378903636973799120409029112549515107504282015778660155171493838199033086124164397848152823122964744938840596064955911099686535952164436956340224373807823047148694849106413996560477440640797174640491117908516505500962310598633932168549644137484078260531397092950457096885435289042176282501043491081634995865171447483660776655200187263389126613876668080167632723736811079187514205936461345803810659818556665134270644739474090099520915951289916730674851106260869621333417029393071921825586154123601512862797758103464555680279343781785152608187633216717885430528666553427556909872146868284814739691744461401309211554732596699253739686175274419176649499540862351100181800408452730273399652669997754331318626549172352439806216471179700147583640846039380341011123695361886710705939478065980764068799779632060747254947208703107760907693400364690869457352922356006337260152411472316988209269534632098997804188111596021818030119694830151066872291935126752128006972827730319553711189936968091277136614546601113580841234504798186506441025963781827617920879786065717194536371480866252170770291845007085313206722589501034535002008168830276872400047395475903734357905200155096620735669036004976001978661537701724936798269722937504871020866373140866386110433029188805005064162480486400783400825385160982301001051295886234000900841858384469517086452418746018740031468982519746838294234591487659161833686340207261608123581579755988754686923432278644567236889411827071756297314198189056529035140427606748828027986105334825305923980131643983957021394061133276606911531967009167196710147446955694382443659084797777732154472021246594708724692760325065912185585256221587740791530609767942900133591594882662936651817156126388572082695524969510945285169597690600862734357605214816299313107864670754965193932985315994995671135943442262595948805529757342271192693979177310039272197522889060779246249584499560131294496966923155251886838764428609572419005245215216173112430120235914665507006568035776062600257320932561213131976303084568442505704296094275070633685228839829937561240695741382769244038044502813475688904168189444215765026675561680421656456039303009657575217792347390185913166400182345297622834717985998852298139926683965674308659928961812446730968199806743979866534448908061837813695157982553761482452701665396860763026793172147262461323807539416201983562856592038483984884575554749417812426662150586283050777935974482271775446969197932539515817879025291190590515835074687231938779810212237947943390057825337825447229332337263158508314627183781612931217729448306128777135037209540550657712083883785903281015151055577105264089855696171424106535311371511116122433489011418766936582743102609385056621350960584879302996336000473291333660402210212580258917896889502404956699359191014790621906349098659717908453136586824354070205911597925680498042509856491916815767401179627202510770805494994867332061204456895357101876666444842444623983403199254987558261513701232505139721598477596882162953508260121752105847565319972035629047694391075879093557839762290611414776522116673468222271526043875498113371483144518069690471725009526157600063497622113448263049651141496879947399879808861315924288127623938399319691088854418134973001504426503569330288905371747061458621045544723507389235085801675960311627151410126836510490995544905980904423152768800570526768154601106728673550499432983364656008989816094364591984531388163614338248978596872893016220249900223516966830008596175997808676670132301582191032004580087325326927594476257697629294224791137700170994140152476985600941339294964434254366315912405546824742379002231555462230264560465214559699521911982313956872651592984106546054869318462082838554322050731616861368071077379071280634581883184442413784053641855867536569401784128357075267071093999541482411575279825429634856238226041380402299433634053699884852765425290317035103663792161981537903321916152503149782608983828261229584656739041096698985418426603707638518852018727057116113649849395438073778558906339345109147786371430328551636440247986377731804143135345338820828905537906102846706616478451946265480132325587863714350197972695126574090458757278703959571823219981673984434700458132389767257869581553548456853818605329469650060681343187492489605692469749837056019625457378553974721385143720722945959163875866526309414637848270420259100323828077990546784142215549231016428129870980425372926501419259823204739733001409101622783618598144328085075326610230716279550547779700361570803354926411979226304161120973784836985563369421107562605471835101299919001666507591117476026506190134693523261576171299366007714340295939105436483929600373743182098207103298244787964602742097861805464569360144688729989249057842364107237032781746538358052090487144101441520624081125378198412898398175535372407118878150512110840064236797659277216497645084756707026311011784476559254909499917825776144363605440205359546195901730032753594027705558919345718207933474841337461870943738903113408248059326796054990040167332710762343144896084705829154371098169136505315899774529401311664450653477057761763972115271660733123988070543971148330928591247433224927431152902191548935460851387653761170713066004428248884924847423575978904869901923719254629776137909365350823518687628116072719753351787151593334511902881356474119849750827899817806634024232487819135592960026116733817573843553755906365842831373079302443289580049667901746807066973181281552354653167582988174880337853440524791442398777267853969997264427375353780530394535619048429130027993681145013635645926048567647638480163113421664018171895030447422092687165917682268245692582016819912523645993249323271905084764854898253841592458388154840646793699705144423323735398889217000737210255821036671130454877374132433560528577592737760040598166073404579616258247481223133434008209257853982527856152432884320926701731475684047593093169695429989674232151403758849338700069975307138639400167101806546732357015553965471025707330060120279462823648254768636860374125758224371334266497208414530270069367095059591079601245420693762959661103776536824962104691730830009631538290987639367751350888151050037844394843172552528506028305139146684439143139455518658592630112277322644368780463870516677611561136549639337435634509868423262144897821222485734020457882209938546609945578736964194607666130113031671121986037449240873293845953493912939548884397993908689696038740771644917700785001329338175498993024364352762132487927774361419274684570958132972948263389469634090931484884469108076625066183913156578553657319036883720720784356345499398599594975320429267182438662469108022449811706667590016305743411438198849042248446567110927394543557563714859873914427123777335217029778068607548900844315642273879822548851405870828666672157423770236858685107103967871204433731724425737728799080353008382067791029873315742083896085031048769647261125110353640413333217171997515632041512263342492879636080329967870179959459558299226691189948717463217346987103832317213200869716697529855520335140988239448991926774631051040909984638807614209384836824098487009485019513467845849119849972202250076992410106737315407232806602846871133022116936659365171762333520091391496520247859090874388919949959049952261423900930410217484548210686642275922272560706519761666783293260620829603286812144585366605969989598003866722753275953546178760065331381134199505757022547600021373744840619787543257884691278814177615545473435224133985133847936487123187533594601594424584371189768162207134716837535422168680920709054845841229037312608237669408272062450129988908608998088089459653775536937697852401264669281021082098297263852880463355774553235259096136273495316232697369504370142047287394610659337362314658359230956743960642964306276353914821480569086834916928232421972101358110041463813142620843403533226842845009202759820177069132149306179911859303043031919584724748281360798875678294947031741735200417811475521565228331257913446991192508959224010160306819086898299898932725646523027654253267250480649131752459895628094666785434601462404303661276541199127742277501900406931896461541495964764712090424022130833949255314394702548662214040815874552769254803305844294865721632118034080835867135537008537347087891489506572607078885388820755811959952328662436492766106933092783850180765614543231627823373653636348813915523317580049830714899584990553942204917162324984141578035209430819292567947621814703828856959873287295188661474954534474922009614883907417452733324675924295290744634898690296301413392875935476796836448431794245616379254665732422802934176204362185715846986579515834885522475429176352396469993401556069197910502222901468926835080825791781187252521360255553142545000434467145218159231616737308757984875409755668915883183459072520788967625527362287302653073978658735703113639263762361062384013014822050523921483318899031903328974568007226029922365971637252918482567592388660177515996021027799637310229052290243243402902409201311586598249135305649182657032260037764094992369690981305572432564466979211694998080224359221829655376480169406990365558054513312301681578756110926991820048692256947932117269891575585589467957467659601268096481879006250724410944092166214252881691004147299345415934686992149461426085425592390924858359365769833624251900584980162100580867836934195199669078817058622885655592516104886060914175254984663301416582890178349946099156095277318229516512129795368168282651600307047876045371080108674874704631639019236946956588696993798715074917804252290935478338047910212609491832910852402835570584900254467252934462106235614923007830909382183352547119646285519683394619379617005050446798305531327732198646185082089225906912145021562265732023702938633167384481998255764891883004928081069772530545540063727908680209816911768610145126906196492604426685935692173495006366877710276681764819542775617981867358292729360861113226482822684092517580261021686798211936924384111181046251407906006291247167233345359009933054919336996112336735295996521158961662143766677432883408071899645577854146594009477606247023544949487191163625272443529850700501929930241233665300727421732422499243322074177822852414740038907439368222378273624954127599389679596812159923587030984784038473862790296251590086999037112021784226363461721079555595198435801863715208070889021026913795802073002791253082943558359131276058316722140591506743652625458520828495925245371485491200064672944935795383603216381139634389209606878688081963130955008168346113956776750399836826817209403945204676972019722056044391693248052722601547220685642288203531823740752235878783736003669411888297418899750200889944805639347236484715903911717304761056010287758787092602293031532510467078362262828720746902906260514023597084135289846004399325370151949950347392619533563814542611797731144174835738628283068197428252263793686069943714607774163401233808280467904470420975946924368141322601870843753287558518840335742519916781105069725509240903951984425860290883874740973644527506941720736813666635079228113580480271521926606168318300524686707236295744124965544531126308768559730433381168390581256844868333781053125048880962400571643585989001173177328128158789344761240700775494583958475071136443937245620648481526969102978475692225853274038600467742795859224400502017808510126821790999704600419302606970194949047844189376278251010533294841173046254206325383561769999247832453091541165896221033494449015030096118861152001498638900930786472925980079380045878751648667986521543997893167349195452839768487434907524416739427232072246304772352908276323375371474957613875950584121865577156756825238668174219783070169175129891360237093912097052652067893234028351307734970735204966421686702723894331791537502984263573701989857020034903934306469228924296469325539844080346188830137148081525835360926061453515979626471149824386995037926567685231676168142723810118059123218434821501128396020747953894958151420817036211486429593215893660211898924984106818216177879158692857554823953296205601334111206934663395670597247048826102544420731602456123094552967991286891338856964014535049219721516337061468240425782734075184490652324057980753676299331669273330017674785310947953955174822775545404797172913150280049214103411847928013749181994805197818964851974185400182002951637265099529900806382140346980082186297899981122842784360530269310228648406430756258576859195345319706800746238577368507832578263706922705479167407954402966867611261280612625683945248896862575520512796697818193016520793590938454931845973552355933090913766151482398629814982804649814624925119284474333840598806088720827282312681972512536858138798697101645962451566588048275445257940850294024929576904499594303282399542173352189338221608635756108728873568748391334397495578065267796570885918518891317463046765043091843229166801823007163811350915864353018656668709139747257092780328213161675861927720471053689755791835436966072610856789542752100747384027064996140429134736926763503872246086595582978364783505410695200900295243690720276778288765032524122818038568941304511140931221708112045333428666074590806491134724521695826893159094344052372333951527987001809756782192573656032114974098834456120683438057033657597353025908388097884820868864191997160893282746646127954813682067964180322149006785734769567413265854212503185417442010455988998735456931587416310680940119637912022221725885762481181409953259572544829073214355881025422040190629128986309852803385891542159836452193890946576262632073796692010254015657130485809265978539432041130405779244965589805590485143295980155506007673956806512257338514606530479752540916305185217955188724652065030508786803932084489927116508805124961468980747004295358528886163384341543231538257101125328187553378057041944634020477075172874568147008000183641577514615428763135876748482632700664371226377110441951019551287440336012115612623637742336513571410103561683186208778329009460029835544007279634986082456625503622800988081632074255221424316647456039676699473378548801673260645553212044560958513659075122482930829064912025221679927785531607620847795715042516985259724344353390814953292607476475982860649615290106361637976023391633954476620628459870590719276428444554417757646577950118326894215503650922866767661678345936718498184913408216024710125665145687990962601588813392274851690458482801597094093225786196625440041728700488609968580740606750215912477065210210423696624503657345987712474724307186927585131686929511909375333781759113024279268054425992512131643278507026954393329772879851616480218776606204818865032945856973778666872191175833817228100230008285927773363280082503408615721695219177323134954542867091378237789139421811025082710746589705161652261530265446719113668711796389329260459588612470604306522369059921172547871505110716656093947739818783813821847455210442333598606662552721275137305274413472492191042164199165204128440076124784604087141433126836601803623105730339006772049198051893820219780352586256567693327603573848534644119152712718820292118192898050579926211136896988967907155491882215769826146320417806726229484152959551828555220715643484969040613105305421890223512282071507942807135742887272302149605812230194938607620852369023574859931542165819875459321521441259650274937644216225002731342799908740079704206287569655609764157584455922771226638810513320342646049554635063598791185909679688787072087127323359640734955280491863371633207875784829421022459506467409191733255529341676367084130326363868257506744266636621738734406108878134723283921208998767634531085006833395625297852884268531305719285618111327423605668811369075667446003861175326561691901985659470092624543062363010618919263570914600690081386581737833942230170341500262758927182242059339852110581047207827333156115757225878771038377797599255893345369355239250172602250215084083748054971585769440199984420908908680462786260886910861221177757484025069856059513636575802375143220695150907007055955038984266431389218670735929221985069828551796892441673506641776121009311892529002083421327873989655121754614978981473630629233178231939012954017294486043706696522630017972388374597622277583272108896164227502369797290656413261362463470341338469711585997934001151491695699712301246506017737384855539806393667934587823223667619303306318461557611660769993800763791487886039200588017983675627780302795027256165241672814090740620872874196488812144180897552466202204814073517997831379729698885727824497788614578862278317898471813355429759045597492819826666120345962848087015592006087789923419385642273399660701276308669875308491389995628050545972259984594774341414890580270971581555625183308308134120561462403058890291769617583597696733695768106107581737713866964501722848137128102491308949176145492681438221870683452866218079608413752237340933745368620888958116778187237209572149580693441343897848883804672775749271209114604173040522985481644815952171710867158477829036918463815362204118112841189892085118585260970331230545691315052063577962555262343104679154976800371212313167575558463051795935417724798857382018914198149137014104542590346808274291416812013296314356640485893140158346739975730410223754608790951100369203610261331638710920029830968963144681378767201365875573225621360387978731807415971448405882661163653080810313628631297938929591470193608534052002952744994129075247946378984541833936878508080061460718616162507112306923245693028138826346512762658008651194359735668645007357341965783098562484209500659688799190606410956336878832593990038558935587241511745936200427487482633866080859965525424016453443251659037862575630181808938759311870896547146186102765057582988974975196548988070679452726923192733660621446714886988677397169639071996607394786023885263102698310375966424553033911375165968849862868604575483236649971169417046102819978912640278683332404859628320476113824510669541904694760874643258922968764751052259644903658587741135998380335139601748654364008614349222213733811387120517329673134164346234521054247999597398740212880003474479694506955235378691601121814312724951992725495905288407631677714057914600561532943540491631640717669396336998895460664353837384866664742794631962409357374606557277136678748949154755334005127768341501015685974743417421076082631132285724070976201946168139145793449937038659033189143341278216390451101924806691892695312496668186107208799855231063403910668085794039659328882510702240002305341569885876786433130867875003701614740556456299955541801518403293066173472534342627160852473300506950358678270880779442642949494606351495887794747637314940244583926451357481975794462175523668145235859616637327762721686554626902253402837971312193288620927278728098146303923579517249698392243459816763328087651562868548176352376323187713577501725133820126285958047552641382815035898978393101860912336787154167246548463256585726745731568142134462065259696052347660039796618609134422008247465969549662276045356877298515916963431354417866366851594237093449786333906751275443279379679680590127203190038015216604198934120481894863306845877922943054129689877934936377637647315570535994667342768172388194126165348372276385532113704242280871997249575660921967420626540201122840628533494874072194853051365674670915009247773772110184734139320342407706877374490557817605189115607063399472207725784534757093613398986814747527917507486607659101949732751558438367642734319339680959737958841234883550654782146232959384712787641227695799561071887299900869779796846346235037730089768837429867640960775772782991210909813653578010802076523290469462502214605780102623249465594326709755732472436534950381849217241443240436931270481771633907536234030278530089413158951272526416128296172132137333526923980057743707417204938808449971115322872594175339480951696515972521712645378907318617594017952227581680210988067547153178210419422832150124902572235109517072915222281635763525099632902548416663619962390939894718356340452772343651344496246429757112223690006980574230962700376971488089882190535335010910163313136139872916030751174606878953197119995261433267079276787809939651440687602460690015831912466077386609728800668619733609157600567689206477610532807243689227922674913225444819197831485209403548835679464430646116118210032277671022372877235746257617054212827771637494472768775812260311228637493881342306340489579456797268701255151875247337894810955772523221396748949338514551287252037149768904057803523885347097340070601113097332958043431870775918371901250668674103585550227260455573901657908938143187127969145662525988085826730862896730827987387825829206269291094168432825792632539545965316141828191074694672465449394610836306553873476146424337577808619089664389173477917121577905371178014687019309598047745171974179058053682339577149836797865791241461440214872877919972616766895345222522490543602133873852951477157368182592652113986439078472123929190493379643400207982358410421692718729086100306120820692970237271967891071799405572860169565950668117221241123800305839353988394432702014691561364478515946734692640325190764464723058767704854311849732035680573873803947560656177376677768407708990426513570480135012494181868004716686529084877491995652880145969299658965105741353547886193751663627959288241961892159743850420812378482652857849318434080632311179542936598546768049186664613437583839477712800305081939286818689877167784170081054908604232949227380262863040147311740045445382084312603427885442748613067867820498596728516439399406017841723647191316627975901593071529196675823187487601646001918930711029185350073525712284334882243458722648623709761577383536155253123913323247877850026359525077998741873824524131276193252640130960012763190445475082331996309802640769262707664377665742486673685590687286185698610728987743789492020548755155430038599671617982245779412889338494360726934254611318144200398588217641931590752363139739713551550845620544431948349746382445350702054573606053071067387768043823342808875621667411241236512137835167110338629033853227052696142791009781609778258659365003634614610837813416211961188246500930912574961454339695712311349589234232600568376969838675416211693896333996809268476395879096717380342197327436446915994364958139412448863302615974433158625611638542241833329990893528919554839828067210156896454097369313928557666996504799743333945400867892959919252304831795139034251899897248351899773319275169232874523720343779037703556479441988808421376250944855863587513791935221673787126302600283220103014688780185876176061909499478253338744998356691939536021596578621225385316855063798344257145786249512381322464250523846203165350170107446734013993838391168596592350489853605886289536063299407702680376997561138078573579374130607143368446889367846850644510627907377577088243535219397980279706465488126910131502992185963031959323871219282162514786988462512317839443207595173765708082699419081886577886308015883024552852947745202574866742745786152205201292885188251135438712979909534104769453055751907810415442186202472780525104145176693891585649294789180869631466687732187248651128720775151934056793286749419859429961627040158316319603271395562494749794500832642040367149194815335817985886819354657358464537485449320661869722380692986253831874997042362753871115920921747739893256975652467820711949651630099492057947389102032782626599021631931775035355362278429027262763064658066175055496090199301131748352118584576051414358960307190619467092660379580354225750214656318889919141603021320352278010888233690169369018958927201296277809413980847097418352867636874735096610957230521477242285629957832176767626340552868973246626912456634070500757487145835157746387109394616073887294064805736915294105447370984168229041124490992656930391387210999278849090487770065976354339114130486572776612731969763155433486384433371948877291543556307044573295550925347356433941876012464286445969752998832949979136301795265064172258841173687194578286235915488133862830527600417730159423024723851419208435883204347741073390930650119469461822704546285234372682884114412152280715849232209144982772352789496248362539929136856050356271188569187821907994004010892001369358043757926871734542379180709598163256174329902740604404414700029645452140478433992757662340034985537966307619159275799026844134324419611736659976661947887497269577152265236053853255569618369523028154999880193015075225688100125094178443321609150592235779423039195544178601335527827907585600902358805076984406385886671309653382788418896034573757702258733519203250435791939920171421577800563445530915767963032338460835923926233189312244849749631465921061183348558082012199227117550996784655879908199095878862213136613055583308342410717228245110569603760274346821089941834488415773040716926609611857452363636325181014469717494049796667230891455786299134787490342581984661742629166083270190652995638689805430143584966957565260116334325301285973206325247435127778424089494658470094574579627345089706789226287082757034396866830766879462676688029426355957773638965507137298163290797059439284814749420287518618944667786501777683688187421513738528040651155431422134451317830156665204366871550009434386825832083328215297308725738698516929232048091590536847683472086804101386986134568553354364352068661318898715711926414091621967543110877684362846272415014935084635103731751934874148705074612859624139199067651721892906309959881883573360478803990707342719118051730634827546591236007259530723824798491140286069067943871403732721259681579005447075765403420238452739944314559532275202102262688346002687639682019168928295944964292680395638018895831191885193137707639325979142119343600293619205461124912624277109758659332854223360938921404738072398497928428719247848885342438785103535900145267845692281917489273192208808801312901880931358582882786368578182170392782650989902853341338641453803440131573744409986047971809199524809441758434190066410780615244843720242449890313537850317922641672331380771500142197231578207964320302220707582358240359413175681404457037868236293732959848692888916109873625995788276551091664086809124923107083556400463032224162788395825544611438690907381912354379775940350190422146081540897025682604858598318673551367804025444834350601018488789019488527704775108682850079465901952445942748193849174197013101281599607581078790365135019139925159603287080501962207998686592386696017277122851343662553804093006989975896006547730426723046767651974746347533571337598019365862915289989508548784884625781417870085452543435745458192034036069438917805524530159388058634596108434233358992515969836867185451022437150953680157863740261417835640021268911217479740777510835145143133865698039269350155318222094571618765568307220178531676954461981365103446291535960317290854554976705744020861433554731300665199828030114483566507199933717411874351807082463147487305133314901231223808740034044527674063244903045955403405440372072236978008215316443383100694365883209959016676494915264173849556675996542915831518769917625594739562376637956842696869995493040530967012200945293342276495846184529517491418360556365696171136411477593743731916755208223650905651532877853594239432791367944562205377246128225197852612467034913461876704322046103794986285655106254816693005699669203391107774882996247106150535862466067379213751151410664783068731996207346640048735513360547971487722342871150890600557656523725614087062598544227017787304175347776900935069609531078012999355558253356958285420041216722847047000992005497546420512236941852322609446947886749655009512793246978479941289327685265596438810892455780829415422396485966809550277102754654581962075515533661579415696003572483051323500249013555631975338428328584379704171424569161489941385644825716823945397853469884891209526610803830527620171080124545485821860424352393656299867059465581725404328699984116718590069775954278318742665054696728773288736430518389793789538593261764265099132016036044747867832282524106895701446529280442145677995256044006096007621947602641394437923102343105200020769280534695481984733181554984458952668847407050173697170881225798848068120625436523733672528022930279491378508968850546097576861911980162050440554892128293649468820701805441242057777657361543323643276735318098698370347615173823038632794734503893968627432440357453610863689769005499952185629931769784277167444217229556464770945670074922420236164374053036886177869926142824344880676007333470959739222440775629125222938565137305910138201590283257210314771901719216593357769758961139476594751214697616538863229631352411603863408487105239467026219261506677530661973799341677112333329354149433978107987884082076395884004736344077202018796544500376685299753375291371713307032730897713317805808483892472901472405540931219901629389815367418320748773167333310202763305243727304599026749277356883670424032565153281046436137066237240316364136594076484087407903477874133110613218878768303276182045086712167990108219705974401980281083528819475340472209337212798997114968551317125962420572130249291332239941312051446664616595866874030970845396655634876202186937503696201359692284172976761247242157513139354050247711165668558534744212174078925088192059852457214822635320368267582751478501262815701794921418920080574082680048364591272947617761334245961767291077089808995031536925128992465475075277950616438718448468496539351080883250646233836677414102818472667806044984381575916214764863882111627759120437357729459720711954864368215988402698641040137554628176369436242230028082974260803552987825726113345861853496356804261019609538787433555276410393851027447385663388923892223071189715916834660079551884737167128523856397086633709811875555978487676118230723393335959638636994216143918831628458084197009940406102029466516640288335123885392078249572117028772125719102393448831333000659928406843499008470196927146659268462596854380668664808960312448563480703012283321819568375002565757853000863088148979827443653909945246171573480477935734393489386662242105405389640519375490725555986619704069087573407618663463260580866138094712671664981958456937214483961468848588567550417855510042123218723368274420589867717772672917709303623216319518046321037647285001045241363030251741640346045939403097673218454268678704710942041043288134363604675038651795651902437248878994351190349863458088477373520977350350375150176675821803264982811589809480774164579938152061783421779520759301634786121926740556478704506199348729496002447229644618647533686635365577914487455901477586932885979671371059201892243176437366212326795440024211647042416056029683754707726902957817741581911656398839576867595662759646993634167058484872017584206121286009138124893875399901164871337563204856165641546768389786697999431565357106197679427419648109408677632805095280808229642138718753300123028793833953051041978474919854047670953549349995324558253313936822486587354065441898981698776254422273122911765770917557335380987514153349212999072088723804286406400709887123054114089909775689026506934644339582004394914397587227062431830259842430093567898069419809775961998024630075236100518227477575703039729176449686835009244180715209770424083378028609015643148728088280659149028821193944879957779994983755429318182739557690506949112096228222092287983013525920486482107798440183675240075133418856497306034665893267626583424939575436637222146337386013547318987524580478448382560772613308952157028364908561388956813985376550650868781568412008865708899745055027163517424354278633059475641340337977450772858276079131263092754583898508223680854049178774166765373378630056555595508249715161658950775848949201320011700601201111444714722176466962360800966195822714335625836226802937360394506996308584608482398394822002302034502050719769945117799584785685318352230048373772706704977493087224753440652571780724943838637238723366508606390148168218297758973647102639004007941908213429158173197523471876897952068662153032329431035775004938753702517201913992755095646554346618048439397934973609742569038340096731202908570617619264078882415932101724865180062048721900793421805182287783689834337355191597106022693323455501039391734652582827445137980558343876537726237064057528371818256266934828780790775764873171313509979446918003659568764591288486308217689737091847087066912519029965409724671463308557332986324045159784112341467580212297510674357234877818569132632899780991335915554663596440014143895607356603660135315063718221562681449656159533913966134296074855781989695640506144020467009596323789381666372515140103294511188584456529669457155800580146052753172181129273680150118351825521826064599510858729505048405381235267708321095952978408910361233579343038366407517257889399641359573460004273379769277369222634126685328946981539762638818804739632297848529826982706374149363249638383352659596030265697049680483418649138558228393014298014536236560621553563731663448640285894508294730897332722033345433836314942277450472313042388560735210950848140921722560090389168582195334217377915081248647799705845812595779561404317518442053818221740472860552931215067159138941918522127804417952285011812034694854781591550264994109776234388321219795530688511596433049983543406226965502800976699285805078732331929768435427231937308481680350247144909316622210664785337120812466346050378818201360108432345654219725377451995135245510281024461972865268323156153096890415586678674872026336136116830835466508862770291319474372980283358438612698533183100557085017727078752476820784090350423548073299652479501307369363964713167161517231457621752472746128536272056094871464662220174184694631165802419990516321192280115686951134693933252763479552256782406135141225233411899520738818413172916569316879713331476760244082427753259616369136872472671620286451172498889701585914869796022705552588755880979545057541531843118626511325552944466614620682132103705462849907750232130296969514592272222158306953359892055183042150430630455533661638432955534857716898362698298694753845255186981580583007963807286595932993912990797422248595276582863558187801852752923099589756247302056706252255471376154918751660674279513790550465166386098268964385390893160614515031703992073398360078324623355723478925599155240718241088718075158128103942615589042846562288935867146650865733272369582313139244486566948114989327780596927635673648332299252426923081563374365759510883636825359116184363996904975808272406746438161044402750396937847764535496032754947150573667614036618696007141217032764752401551955372819781486653971058714162434579721238629741718400262476125824146673761718071733352151492589937629240937761635786211491636781480864116883865403686801185056813442286814928108605530097708483358135736116341075141872772557960179966952631438054865605565269346747689742097793328653439561905913137521280141993636891554587303162994688251117218859636429138816613099460853682763326156956521431028941239344974551004828506735593962798338081587773218926053742324695629088071660633308885436816012331549087091018745552616255364832854869178929060124099657182661790171872842683779817258234628814546794156263104064858962697797969765937029150570619533419767870781795467291830415089684475443293345022557107315749134102070872914958786293544320326071230838597615386047070056400720851845270027013346749637295152040858839240293988043824487415073927738281614670066035942421294405508805037589756271178623908916180896068439555404019339328326248111016660383750038549898640517716457973319802621364362510840145387663008076540931904128406084018539197210617532162180079172337739436868078617065061975805593914703289102833466545216297759473070220640209827317229357832405835145130703564321044383882181864675312577649238677458531180907381315242425049812415545840078261842062534138954763964427028204556365878905851656474265607468312472521701568390409517718064758173813898438217693146263621567838096359349114074073144609036202455164084817214172768600040634516671538994241890109402141206088123149007962197945114601172670022231826717195263044572400381345664400456632506693850588351600880514154523716233958207230926144329245289796808925802065715484594929155114898419218656186545197704313571612323447572663010355871094424228716116939481250987077447774985699061012843040243586741582858759237219982509305730655937478465136212563232095634745536987027419255958609506359572045504489143686184483502957425500571423708387197301970462157444199305678463231014144196252690570624455323282747763920278099062756918885701265718730746830930788038157616199289540296943412643012194474531573004453403479012351880098879735604108277469362774086543572187570980355149168817488048318576372058026261197085484439086191341655212161569269035464271898940076204109880964314122537059517257499501307626807514797219285912909570498292348934701348637955542701092888904025474279015464451583461119007537831005996494833129542095911810125520010580093034149775942812945068503444945208393005460244353513170159377574746655750146006825457494658497931698561405034903413606634889380985594997230274682220669504149947267643011438545928478999132816398005759843359930249930942791706235265347259979981038407742293037281476788120954530526598137603747237787504867874175220943716777818096790231013928906516488051897881395664587703343397232076647433050818020318147836815736445414602010997356484417500442571460350461322009223301560637749367463311187737995018362451289822725175865537451845163230066476880218286978883069467404706112028353520163364509692095971463827841462166347643257708575247276864169122052106664304720098386121045683239394911852461997766607638998252338763550865129330048388684328839810832248132844320741703459971183270413833598168551301310764704305250893883788613542291774980418650981649553490135161259299896478770449656955237510768218836993243206816115181317034170774516085429534875716487388942683888773624496792678237420456015563381405171514755168514061022951601259918747773194230471808777209070389225651814969529624466479106371366995319586666484432121895168557679419075574678493825255325319913770329452497842789524323314038038884444884016958710819664022352703444217463995351481291937922909172004168244645100500316300256303678814527890017694674697029967137474962663545796915941610042494990949601102191056044620829027152604065132685072821118040880072377213396619509245093804086826971348375132583092363774617072738674428077893830786525466867919942934295204089969040102415773416866905761899407748602151370096005546786990061842545381902172857396903032102171672361763409776017607650041829700383732387994728885894732041813361827667890629864668607985294984760410757724112301651918738602946829307790112532770102510800264848173696775985464291010801700281317307159307448662000109584181576675368988397816991137204570104094555488018909449637828047569151104039881403080318239226984757786859279684594365961979047382840173741266374380152935996733704996133192058381934095594861930857215537859714465764116862136498105641705753469163936569839173067118975560644433541925845228943173210231709570837673944749273517185778725990214315806883788958557026428737093659082251206989540017393846407139914578160746405098262289636497888620178992704669892094297231546776421519242881909218124155714655488093367850323842911837740557945329531639066114739758993513473290399379758458939284544249360802092475828421870777010104571721832778464904314820196264618849136271593888968287226410628397577482512219199619551983172996234317430662266784379796543432541538892821766794975568961412842526241341096207200178871958031808456252031155848440762037386751304519251795264452693467381199535698082695665671848808359752922341507200693603249532506088290961194041715188570343467153901949177140437968513896938604461272819879281422602191878204202692563221869931459954199981308710266081761511797416314722740838352697879820120941848441616671434890994643134383106959779919183762976802830037453656669071270205080341010347240979957024273234084272669257889160950142423978001257831482955399737553227719870727039840781526163358331919106406268000428405535596757534945263182033931346038872627512034564617980592465897356319143167575619845117178108630817802753059903542900667472904077073830096197942394006712535869557147204728495199339883765753486362064494671092836038354103922881444172300526246189552357151453037719746194788576035972865734212140710401668700932984891621826755416929942501287994263231287610808318073363205914225468151184734940550715967378766349184570399957011415252670051082351550383329734189813768328573769993255047471777260980778725816787602960688440822151766841888153850872096790889932002572609817169631219220803345359567683024469149969301057604761305394381891867443769508565366933289369511913171910788668027692519505077304006239943294858819677574204990149034148728530614427936978006427476248119463119977860759900040919478120258961255133679234407794041176521141210065932305429075224299776561775213188709661884259966853447432977738156685802179103363279280865763410870031351476844821353381963179434379698653581437758821331939436027406292741162111930994076563700576912918722390423456437263757263216560368310673330119443252894822227317246938029311661562726855277583654356086507058616413765598944636992989164005927234924772601985085358992512717487697161316207824872007942511002887806118500819153310300112119428815548553746446246355110672342274456622418215167470252981353372750950051687358518723960697898242040944132323734160891303410770327547534400981027136568204002749358625223775193966583095829571187204889920347188339059951716950578974029481217950616092934166710805730979884791049141165075523884144084968600199851309134042093132156155214667229989044482253571346561299023391802637047473361984975718547410216617385554686724745327064851556418537925541144960299308838833764839161866888903563668391254809412739340455612203427498319497218000195195550320490502358992018517758881520168814954891128137133228095168659914110879576119696677460119068541219897537991319658415354183011511571982415700904999838238482372458246217326028521533493864207645093859851912569147669038435168484805068850442737461266749310159367836904991466371041555822695696675177457492174160503470824334502403491603568206465445628055776071989208374209105341854789776006248430794647004917919196114025101209802718164449969520122093323637124262235243282500856820230677015547486681820535801006521732465729050720562151434232255979863651435376104674807793479451738381979967458551536472954701832899424220346848207853462565295803225033214190261660042439143038166222865301630912578295562579843499309882665624326347648790398383344086071195794844463372575082477835500634142475910318127939599381387081803371838378910762990971023597160465724827302555184217115615323982540450561680074527348773865236132920181672282089343860603729932177881688441557983309977987561072010077747190752432112046390832408077192561756410621584871043966088875934069372166193832428094332315236084935858744954810362233128045120947026929992980920122227811743150858522512567196289113679219564104395444875862997579198527763811705111399057311423101374656454359095785684344188885918739409339245619657409298463376815279068430525197903306649348277392420684967109791841001972679722384854898456489024914002078292134723424724938958118114894125747246786189653994246863040899434749598411167113207819144746342722088876229615332799528705109529462628267841289690391465384404638154090830200954331410390733734950876768576250405422389316261805482615748320340520537220638313898163008170498036492756617994701017482368976312541964832920208002750903907565088392451336599971410787221622408339552405542703598695987952407505370518313475256658350285498437784609538664909208532551177921938227685969061268540699470170806937497913584670712083363719054008123968661602091308221948258504442709949099754998791692968570552617292863907462341551175416242558585397741907874035843778199890492950245066321750958395893725318323651885162048315687200944155212241343702651027198110063914466811413497998865565347576303927337516270465746577865775003115920975618497938445872580243514451961241699653830182860970376889908490922331032538596263121764327769519758675825104697524436896021951273077324431554042424558823686143447850851347549368024044772311445134952082179658945555974089668034484454329837273665516085068710726571351738937172415032836993288811156215070772302370103119282275926740438977824290940769603649249275845118418736068052570866115718169099207035437384251890897810053633995355555139964368093304262382116842856345191314987951294704333862047821324259591342149800990998208104639494801769152628635620522788003766891858873156736380739221671042771413206653722918962692064599770525939727739108695347370766960975230772833775177043642512396891251479494217541643505573766415283083222739513516357168030171834463525911373047306739151230756425571735715504172317401672545618902006952906253251017604379728723019246627143042188849549456292670298425051074969480736683406797297083350692604808097757912685541959249102255291380299726516609736370136053681648545770490216594118759746184324753144902512288370778937369150371045548443334142010819067111140024581983801463324280269515739465285500242180906564203577628663879701775090168153296625860452029707877907218585541572395374447898951222886166781195685562171865985534153926380996612321844725683427517213073340661288611157221621628976913818688881705976613625713833980109416778582201039606210428701481234156673652726457631419970446767259171989889791681576633471966545677524614699779779206881762915304374041157985602824565833868751987662598147489553013699040991726933250190002985764084447415189360465415961953217380393221669629188590096827971266901193358685461307145048809654259597576214913257452162828457346912615616442409002152818168858741501999935282922219823165198302778466190953353712795634697200312086462395200236326526681046670893651428707644158989821123180548251088118500676224310042687200251705119975210612028401846484968546405390599059736468916490877094463848640674123097889707223000917578389597002738244558649664145150278026957484286444080728620379436272524753774763955500227036000760623052256306590254156622514207121856578792840842324107034483020846017115341955665305715461400175168334421308973196990761980688166510052035967323748740856541530106947713530284913690841862706308678014421367332772051914956442913303975190771044745576784013391620436549213047117842369179583356289684352651170688844296981541837486607869089651967448794651744723953958526740495904288714366473612823091336838181903801031404238947181768360099811249248454912599622841143754837221608484751192830905055463534909430059746246981630695056457310138773678781030737418466097519394651209809996590152920080684232733463565138393579671983643140338947383938656036327146561123084325535099058671283032543513106179280445012928879476748006699292197733137378778242479997380562487692520540683910625144946299588326421829953335822940247737183120880646307089217142965025993060285324141380113919340620319372307133405145365832313967668931733194680907689363003660888382526528627849792939503291307305937115825447746906942918443249193152854248221969098363374503373939381254668669900587840033487824486579097665050388125167734001007765791035016864870294209923425828852416001277496664557787294454073013771149756285854111767657167535294648052737878556375541975925665224866490830075141751951923846444577240829780795350098632758484962065165483791057113986443587072954001933476756894580549509440623442616605949882828593947152517478484873353614471446937692245598850700838690239931658267628190783981958324200944023905216466300704259072184864902795297581140352869534238062115290660562051543570995694780508534633271821157753458038688159130915260859609736375411907245437128432366226962538119657445172146210836916119627312120479108139705508193462536863906130535219460619876363281674732115352586067314165269541989254283334513815148446796797714097708801891124765639769700116164039492520966216561728571783425660460499431393438607024077530330919563552171200304269630147276184894840263831715063806321189670987261952408900016711338932927297368127997983627517152097845167430181981446608760206220052645829216704627289853886511125952184208503158846399770386567490990303003480379741457986471321034872900475388892171409165608727154124785829320800901295131340288973477590026916471737102181892052489522106943237569672830000429474459709931994080499522598617212064956634698276741585816441663327466466498438634710366123853805576415160283988451509788619947764381528186720572225428600575032288394114017808275175133280586202690731264709294615963177079529332462551772344914876481020419492043559977126168401651153505106065872485335788837869693185033393125261395870035080546241268609096774943303291869332305391849350393648521078316034634410448867358091228045668605019276441734279393100833116285021089147917362673339807338143576744436586177556101345722708969377206388754110380066333782474536151895677444780954350461273976694778854666411562275564287246771387127530865861346442794751562131362138582247738346163814098029524583171094784358892681581134750706621321442954022773507565393059595413525332515069331638012638826685374525544361094303368098528128976711484353952132119003277790809632274092733652137653676674104162411831365279466489948516728251962351483096701672729109904507965528959116567667131899229656157566543738155927047087481397698015643587786871769139415993187532694663763645434916960803729438363244095622092606266466994461487237971706345920068571901132205427986874356329439140043926695717658651261674467093804917698435005556797967398844607871227256287943027649446253966953278330372307191504920481842985946125677626466792940198351845765532355254667306118206418349845832377919766103331223857778324675009232025388321389107897233808330600152704591681991966355223582866167979357734866164810462001186041814070403860489155930252638026787316356665109907100735519829813412215374432960268006266615028472063915456468506719856849556609748153654494273458704669298473393060009846342677680332233530004051760367902512296563075375884836835047360139801106993157873920362805388961112787080809135621227634295708004232807804091557296453853352384729557875089639171562900385455505566166533407401630922578079647211779910253353737658627704792988107944057650799217935097014731833220833008451045403632125821825304930254529623477296607103791374355085792199532196895321890444203186517137128250655594121414569576779572534875572913181494194206416767475568193009402392185109070024461963228545281214148414936312596441138726705729852082851053202099843775920750800534164340849574209959002122313619805173270373232256872266614578789859847712491624114777444358343668997272564824279038486580857371316578452158191523039018213938283270070285243665757606543101999972522929792258728047991986689827272433927618780443843505145693469287736086247183757301653384712262391214032987221990642064926908817539328325850395419533507457163398954540002411654252526386120625569874964130580187130792286951481928662927883066758345361690539797102342906140591394785136747147301339725464843681182131603746476951514381499527741095916352602837282619048327472599284931269675837011146331037123879101462006212689784093876749393362067877339803162344517465152124194004441318767099255280532753776878193596799776591261773442133568020850429678820041230527349797999928093901010930040204099784484925589499488840509939441330898609807478542305203824862253472133013928791009162218275199021569698100171305134812894441234712993695836251477988532047580486391395589672567850724046692414871967291343907968345785326834532458728945839956015397032539028680680450966537130474197315949522351606774107972247566365202944233296320982136761090362671857970053037028089799762847328530993833285952665026215081605511219436151790161550545930344830691251491930081898040089664372357068786459486694902444003094554389316271102661027205100315235693980878795722819148260222166703183614116027486763525748409329099042272344072922699356053050303097338353598460048508512032298346521450509505253406817468989818974175777199703300513079050112385107839284821391737599403494139743793379556584507928472547447357802713459521281995997632276695728944565355819158913640798526280721992802492671703501866942385337340090322419989621901288161055919002444813214626492082401133501816025449144459954492066198312607687542046130988693621596581389011234313922215571650544243982626414757272521054114308810280224029304747119651541304776541276455189452488376766282996484548767306384162284306045895018396960841261591194034952564929898335459787940133361905723979056273246729210313621988900931392602027350330710318809348483159161265413091047830996123268775787801984157809149535202579304296917094303984242253086540849956002508624053536354531150277577859506678111312783080588828512533382613128028184748716663101089121315151091037438879335647365098634299710032862248325382375593594578491883364468378199184910463106701905737279147783117502264770833447152343852256009934758372939633205260737840940868555828370419510581226078518564195873301061080961105407678236727327066420051069931548145227081482331831377692073150128003951671248657194540082625277421616648164571864758967245330840993751353323364613805585361135368004656011576746602423402278777123172194363731767378625384723280743772362778372798401599663850948053651472284284065623150399551725984228083614682378346408695670678414559505758982503802646189601039146355755479960175106691327707608448538846808936894238272373029930532636372579338785671274120296410011943020433919783019607059095708059386682229493036604951359625837686528199648068988276427363726514233777458870783415173842540671265144115338693241732221422722815821631937681798283282357616783571091859503614847530305878950692146675309253483272198279587555827258902077927425998023873597124177542647788767053877926083919239664070588012378693103472508894859485681856082994456824766165247116864854032041986752667284507894820317859650063560487517326383776074254070061258170334944740033346934326569455116721360854056655228339645812767445137240809756997932151599470362220658188178151663360426973468712981004246942885678346987640731731639163877481136603037812389664770071715339708932871692435953327998875066542279212049008215030064907378649656011442755708361444395277204740968988332548799432722443553391038154992940080745457078199962923252098472232698934531683026718964944910373461841060331460303321847457781393054387290050896457516810919707698009276261523939174473155169620289545802497870928685282308176369169342053829202588099667358410973122284676989995915999138285347526915718693566509431967531720023953867888138442777978507326154241462095412003065096202067194483432642936997291220563701631653354660033791045891999939545133232515004293064076891919185909130108650129355860964826296837172087361068979954646017684008488482721642783019974912946979443624821581130035949640000695281287416959522178266169498835304241986807346364862914221358120921006187153970197679337492572629768090950677540443620795324435028179050112223462478387354943247007960950479666928528373885607059420173727091810290420279353863258791025080400136467586683187824296506861183270443571514397978340475399603294065173079296524772051860063159084806870433603165230337067106753158642431765669288992625761342435066196158682577390860415794535736793996544465851004843258677171407350708310755583780757900404038263520990708550650790828389467384762458059810528344047237024341392385461471350784108246182145608105521225777468515487323434824639322415225449556530510592188959348711559487024347796924892151219726265929189673135522411130181991508870834978711935613716625446618204674453793484542524753562815642124866159050325666575111553070005922405836437529303189206050026850521791246073564102771612350037686242036632757338713695943672924898567925143375206188586210433465288320828859402113752192104254501097522046023545463699739808234412763645171621784706424730306973689760651608298658558388458013850481325620197979594440758443143853939091515937396357441416232359976647241380049245543824036639747652035468675469031451067237050748273106147402254144973244048669912108190817073695206799142088400699631214168031780677637820954752723127957634322419347488211244625479773711456484764582726717199408267410575427711478835600376475038721880547820030178270154854441520258891361606500654786536751563721339482193949194594181765582420520876943973927205090915087299636711180153304851904220782087484974552946166663233529674900432847747591828405177220244146746824439405771753725329366122167115277375272547572622112607166629619014936768913916442013293498752527935192697739577893999412754397304727160472614100483264193960676200605080764060356769333931249342845841569705587283432246889305928769634006510355087921420511710849621270548459572602433254552320478312436377556397675232408660706040863643478486217187502081356685672173908560469870165229634444724111002233167713375207210974145567455661201760688848520091992386628372376472697324976341441942768859567648384752301344434307430216046972414690933123154851270046014480371239273242799147796451013959625335744000293220424171118546831357146725843414294147527271414627951604330304158065976674723727039237587495448306051045412505551903519400640301590939732345246065994868861806408067345455858938954915528617270979426539254237041876155063787996367400931059477113743902324718183109866904939753641487996499053678342649911306566805464337871065088765962878611802204838182730633148486040846061685663478768804607992382912230690794944622582769673172746122455180705923332911963878113907536766785522848167968317892560627270434163746845643940116434013462067542125818482711527060350081967021156546696273227305840506813878691672510495629182075791569162508399389262545321238528912315727598413046519162493833514096821854436425128138741235001142274313986371101234675262744553059636309562476739404692825270853366512500322947094641030888872941478141408719144123061297278830854404413141655031761836189077594924524654454331050849399446883676701477366668887876672959581688908395493809599770933283894111680337968656054451535208396580611544391266489189427188894078438205920932756081176291109955262811323196094209175811407535844764495228208962929289982854477141874278295005769003506136849631950966123441070798535660789701413907020072590085561337803341333819552728625683468024287909045314335781071994876094017617467164799830755017966413775338601705638122167829993198099279650087841778013417645628908220696462319265000239765621703849079070097837291726601326313168405344360657466154431216060384731824987942726978468224123663278486158764602079002050347915981823813782482790040952025311445032312323046478584642600102277282444552951560390282028491034989797378685069557829900316050389311507262049313357049033323773854440817508166015028655969483538974080965747920690147263894047829559075026337850025191463991705424236737758769146817197299282849132571368530502521873084975831442294773723198432461243030621365013811458308782360953609197592551824339461845118673932873103857080715398344180247213605931725516025783277806304978158216219747823866101392841249834531400215233675472964574057154768227490280552432246443260440866492555849682583154970147291017336079156447675929465901801977683833585101381672732790645462731468116978136073730108071394209335489732448729000433446290354935959346719976845447254722496578966979203962651499169469313871965399930369000280541535079945437175041151482607588477097104703267334316158627358422002135817041239894596317629282099489840154874151293876488687138710958428835959898003040944349489740451125160788816744988883256553556621166870562164878541179936148759000980601504242882311879296479702021294263957157800935298891429814751690239781426417603659561593676383335886338845917349011203151208650667110150576318079690149254356169568498966952957939778415057249965539630606556335239071264021017449673961773569353397032089957960403429688151200502850426661737888443799995056765141436210684011498187658177945281023966459720734127791081950754053794325815872982688357494175902613440177930716575565118486391700991767435823811981326599926232580223256058696621663347644184325731786682546139640727864552925863307172578312038554713805426797803883984980219554986072550892128964817429379541166918927704403312856733640692195967492917973410874592429154982219076248273945674631295199915129365142563768401816366031121147594951843077744030166433273152949136964143923681000189372832537491992128638055854078376582336327579852519335151076712185739461215005456783146018223667206377158777773388656634604103755319058759331162001647033017600324283064393883309797681313743575628211221666450475982161808856003951097345356391446260570738522881599059594614979015543350219019557667947964734325623103276688959471162505055029309236659168008920909911100837266625904793213699824754514673441030215592951999209128388348654967384351327071798473935613031483152390683339802307401761965817328488663203079946354587047157921807410782314442168199928768824065698709212431951451542054124589562881847483261399941449770987633915486402479753866538929776363511861457574114413066478562492199274116981136952611804792490999882240250205303505098395604235027391792630158017113905316018042737795734869041162532636765990101836700634736925959041703658869940637778108562030191080634925893411638367861508584672078337202120837444987220585418180932379168714868919949388449878274191033043752670761170112697688235580408644384980352962846697848833709850615923089569276790107479463285287858026765103052370289910996443287878085582375334950691558098256325677685123668973692002159557424215954513230078503905382734771941417744949921777002409946244277724431889150880395917340274966180873942743870608568975340184745391812570397833490672653802256841545884933605158435900643588917825963220483785188334439724258356311356996809633755899286736857525882165088725214915350635067065219661864236660830107388381444114985452690095198037218263722197333431287950690060090091534168866419261275441804068661897626748022613514318862815967571651569995285565165868817254282469088953391863872773297302631900795480683873801482892469297711653744715674889799551295687955090122452815365596769402435909967447734346163636085479767869701488704813935089684155126328828798978377665887026692353733710087157957840723778220097062696005166774161763637440826539696891004202954550443474280710723797153087710738329148900902796229093953011126680381170172858782650675588647664663631850158779489612720468305095066657455571144942257517436748096992746706830850237436591207747835133931882515635117576271823312167121780892850670230922206805704147113502428115182769422581693892133334064681737383553765571711053220674485750324402333040864005695503901179419578096555414766260317761715273268305539740688459568169019247390361897509995947866915762443618785696158228369334712576036137035198320008547494904907172562639961750150238915835859007441083982682742934785254541999144713850779168290330081352723705004514934194345567554762392375947172675295264557561053636162127954065729457169911359952237119786091482914300833597352013952384176754171164194497643939300913714119396923885167936320814775890103066650252685981138810080080156056802831082295136414870356299517160090598113006518637007241886646763199649479533062247105150248982260171455907758251070622473180608935040580605036804293974945684326832678110826821004920066910013986587011495503593023372943254379753210599429355859625752357383389172994485057371786814448524911627067970748479489208491346373162949005707073423862341818036020625373065495507600238992546386223730284530108499763635793979995780563727856627203588582760968668359835359727935135533178075731478571202959186416342603064040519906677415268081741657567073647777853305341159980457244249319751556333753571304005376543973166039479400892952140791085292885357858551867097842669662247585459970557414973924865244477481440822567877475845352758016553728332453567657998678391849809065229362116929222657289144038385378147585594297619282669539084996028497956585392584703899993133518339646081201663123071244213247090630668674462159378471038795398080184296731264766705306937306756724626577802811145480077096203758252831985997149930789266021469104225348412170552906441438554235369645852560083441080617463651506093857474158509787212713940043827035451295723111645146347171785295624138235841870653662915511741645156647610441320827442294406272524532675991699748687037102209479792017168527507297342624804113720814143498929839928980269943500985916834442663452503527917761456001948420613355764711006189867987429450948709576079155731809229333100923465974186597274456903932863823151119665662729412086498782611773980877213135318212913171970388054768020857290978686332389890078791472129113547403814439538452489522700830657632710554997704486531286251116148434958531267133314057358259764330456578369973044229840774877784759532011868500025905931218788269589840893203934948716633727806280070106582183026353836448885685118964427288873874790703100526399167354727731788205593361372107587589494321894552145505959548595784835204075826978681239140465636788172318753565621802586080528236822910907601769521139979414949697159455985253341615248700274079787705477571065184639018198735664745060304994341926820436404143010546524333183822342883859307824632164478804142308699226532234008738421537094951734469636997679271098533670064761221551233700814309839816409491246965914647094248485861995622568559520865848918004105553145947847943078400767983207360535094984911373054582996651851951144947429537192640019125949328431101465121937637893650679926684488634504691617300312304809821708982857386692585487748438633155534855373751618305159405146860981407321233484924399584957566837913921007356340255997750596615035442370157000000946377622351233563642190917903045334677538646119459883684509381987711489036749136203113383025277621249850947039661551069734077539496540384134102536911178018976449753156081726159364766780394462845279581200907643030302179040006198496766268160318402267716146161605126815714694397924333073267387917048671984694709471667684603730445091868164727899077601481629259269560512951096168090023360638905395377172119248558771562023469784941996142735200050437999756323323297498534022795415587310610809924561733393439273090479541158125164729526927581850223979973009857062165058645456196874164579213574561375583783279563355034502336130169736770871582807974080386456582989201628466176180848914385739528216615032366815932122869968771878098951605542700751694624446799383212913090941068169541567476162206112990893312552481405972372460359169793842123532894698033711106472127594365473335992401396104825615758870625128551656143632274119027278695062440675857917263911595309298402740774714899797147237126031338372049499352643568907865304059965039381770127239990985587916220554441771245801632143625762505800110564396296452475022012002307004342028295064607051440465005243419008872789393731715949022827169500584617307503783152943894158589794807598907465404368225589467727257489117275735326615600881880620827662638586391296659213916401290669582430527284301164931560197392671798057385846158275949020244004239683641203323337627836695044757530822318527679987569298218984687581531343058740271879417741174748235332355177962060985061088752634141189493492690910223334601347265751347218549864356838594464356360729070541004147139410202265041716702844418870754663547024941842693780468052244414205847682890473857523766568869700349495100105339278834344730182153208882272434070135913428263070313619468942917039032612723350712895381653993809035997746215059812553190217274854228909818063860531058956918695978290121929232140286430668307621218209140229257345909781728164534162870632777735657106568804431714620447871815334150599605819663351239274945000314804168640559604947348991075023327417583166060483253530547530236649344450601316921921903204038027451773113523968634645256254949699350129621272183390354311592001541551083079387882270391629172015254486062654926070724122894719766178749253503228537440386094748943650871104134856152123463667511301380494336470486971675654562211624715490169625105462304162579115201726293115643738599768848301759957107329797808176798534980753939219280778389721844991708166231870078375583822464998516189115154442974196623843030349139543191949128411384220762477071227995329236172292186806715975790237863787123032239040115074605749557809152210480827908624282939943062862645491511634668452444156859571851546413761738034239444561725296322373577711502761142189470083229848648594507443569021954673158508644186910192354764083497612118345382220823847451061398002879633139256473973795713711308198488263498486802094726759525577628649890448935903055016038921867381313162372172104350110484081551481102508991223935538703124120355473181890032114928094178653597114419035465704024949891094942132371187869211110634468159133798303867332588481242687409777959170690444412080107136422438931226676636641851355439397949381290656243345489611100098760825456463377164462902468767605833375414035079542108579375974488896606510233787775802534957601467117519348117534696364385065220601074393216909940200685244881812905027482609299148195682524325547523990868144443637166911949026330259353602382628884709365517517656480401582255830337266931410087361579469256253854362794134497833710038889151639233828344704512351669830833135577901922948301897215246598261246340388573558950588559228071020434414802034344038966360262558964315132994495070894962206179372403349227919126700945872694716883359881743959558805616673508122805635540374771935944989445290852189385724268928837074183543307457543889207021460922442876184031041803418030440330675541697385801291026189589996349880066538001466975495324343312021565841440975369910559237839642544094596641326504060032393192006752436353251256569663423345112358393950663824775723477886043460484067483725090962407373204046284734229774732893525206008353601193527503138860216048311697952105345002653895834925585830958343819139202840566652709179817248932587860675885511854366750543625348730494667736409141378781030560454417232739304673762316567701656877009905572953231653912530114213866248916176249297543746378459676534148273166386245057848304377212929066926941786303462528262282375046026555092265277764077759059441985193369618392907081521675554228853291798822576545006718206239257285162020812923933885543915427356112919620572380159935268442817496775387851667163530285929265299442413390891215714381581536993141869514074867800448695043051305465702132134796258941135656789950494677206295335994637101695377430323096005606316482658240949641966986383438544309269791484346512164253422059137094495345452606254159090206743967547534407878240082277625345531259203594622916365166590126610237705643894840917252110548522624078501894018360930878202774056019580217967105522714284660545536016388620288378664379089134112725648602221004698947414386161794678436753859217986631159471508433111758058777841521562404741320992184884315091257985840552930104527151163351971213842532364623485153783036327122938601971859276282699254335483499837795430716581181497512550747517247704848662119008875454645810706761561330080371635749956417368672721810080021475012758178932139507687191396697267655317475080848617725412360767950590725071980226953641669879052318714325964314013118499337442483668520395041654811189305915817492069185738413114225695223095130723614803272081343056503783516282252022988338648322157006705227640557606606419398130341338835783189638665059529925495838750021716878769902885253881344619912203173530561163522784630785375978506696188615042475009650546980945933269244960645311039173745086429655152244009540153599429405082876405101023784593033346307879452286598087561347712705676094822602588351152218653444365116372621962267205963472865950004394690619923740639137178507449405585851857581185746143101546997374174461717982874572069385878374973808116568582136744253857362252721047679640421989104518907391817928235296504036205173921979213900308290259771222335687702262489020974482948627098351945284117614001694104902267464213110340069358182604353782448576126147835329001828099553787745106450794500243514727963562023643455206158856574425773014629609094907047623254117247052090400344430154390688021781991194206820009788722950858857853540857641268457846113089259197872740513578905632620292863439604585477605979612566324661106062762281646050679641529711292989649481441964394078129162339886573502649999248794804905185223252562818024641580378739777862997049000291102690927121691868487136656948990323829742166415266189142464604030336213506012976671385419123151106607667419786661368053109744548154498037858652607740718786766518158124695063496985280558573333049529151822581078749391501341315509093729276132755980474581404819060905481903571267201852594432241837656045884063122035515994602309749602211513868164059383530686077597717678716727746956808929225819442427404118023007365770169395225356353955718176383592940544768799453983576500429409603603091653843470139051456578336521707018752746653865267103721403328481448280018136909204254947533672439613256977705676296185774812864984115086768328338543741898656052430172669075460929865787055189186125014301076121798292757662784623905206137157471329721439105928306442808782340700654538905180120903977784710350023811297212445549135919273227101807596835274400154088736256553671389705305629100534086728103817460664407050867309162440984851885793895024315778161519799775645410139378989282523423521935902213769828706851123602370097180511365942536670228950971061694240433802066555730706277002379757354513974000771900114614486343533326485693512327998835434631809421103484246781739387961378935826920886677901838985195963948527522999974271600508886247649734133211404747667229117065844271586779674529623267076512652988475368674497963908605063171966824159486488919023571284016134269279363538950821967157671670209732120016602796493480237356680611571160506350476229864019417681938325100414612940580934472609811798449012717931263246304655018810241099436826992827085630203841790357031305051576806093622228100290099509169111521301996824264595083318352417084388467495794700195824238482598913667833268697297991950707448528679654392729047264403624850706943561273684310211767681216940573337758009613380289051429617661499505275620033620053323371857018578925501110592619555419479075150625860609537691878784893432038054518659516499906216272360179505734870019682806066698907952498854896733975388729319976196650195356701047263970164236041169128084097238681042869780806422621613646967516147844857751177872000608689501396562122384120072384075647804158599228056346107429581534714053902952592610796971239156022582431303165518531213205410392720339491721452471066605582603954377632444172372991372273737999242266364760524160799343393413826151634074792930109903470304080765336350453050596447500558140356180280109132480531984096071202469694115176749470053476804912659323916893296906024757073381580599589921991037326831115413605486936738945737802914057731633331731591016674633257607642516166841992284116066734675364244487146770662928414399735988348677896516969269439760182844603906135809204915516144926605034425029656495861602129777341355716751198220222461820564618442089632146131805471200157559510680392239459948157390650822919668621590589446903233190025698280125694170828413117109495895603709896809641083784999723559014844508300231320857678008922428263898511862208934799279946005209283756781963457120021921608171676547320761075558792158071112715437692285835222633431427584117580077659705519217845892008031172475617755687417139360590405132393810173435153827548376240558424518581937305976529286451093269857030507346375708984908849001512819419296466311280155032493305830250512498268736504267387214522690631266079186428937687819044787049512694785698795743586578417847831066918532335739765840858557382230263743579774788572779109488031940647298256952100818652658222989940202164668980868357187739121152211333761800142526862115446941601044119065816757809329063433859360872006620921386865567564773957143047974780515701116508663487361818957253313882010162316917969775911701707661341024767189779514134205458920861793340132487279488639627707967832147337176521590176240342157096068495482572248298447124156108162633848372778246261618309940542504407343363945661334884062903467710063560727565880414479097112128825421752227646356284914155525291444067552534584044037824527737496555350603047437366453075456518997484475966562457669189161444553235278063897578824360819640142708692455987052306443114012745234931370109883003995831468097506404850157874904681024643035090585506503067989288122360194345538629832149259914958728434619632814604421300186564452393849555231611918854017276415165045411267298804675505220790626110186013387242880448914689789824753699262630314133892989290288077454920321791763071919449070606899220122727001718208834496853719644547792519893218461745263677388788408682052599497290648069975409499568142607046144783936641570448465263093810480210218896539275850389351480778322851587965142572537134951308210474389143450185376293286900327700700320480244825397617058869218332001401506330666051287521663734303507259002951600712001997208251559163280439453205125275607151027882365301703577261940123839390786763354952478706268695704085430719322900540655507445768755376862607372522180988742209054905614500308776939506190164501128658955221546070917982657205500880821839062742675740636329260859069292426344269217938624130575609590858799368237889710733122616047426415251541934448992333930397482530532230774190991197216107797833883460326161461545926786305177088733991775367276344711113979622521273498809375418702616277510558343730379958882507005885398961971109998894848798227472118203199320626390967485290022262956073762128145016764736122042087238769513953227640777949687188637484647133651268758428793375940830832537737709427546514616864574652245094206664330564931522728476015986615772120525856720531408692889908682406933378556913974575449017353136993608256421343624746627434663202379899743368151683363147576590484296247626519948313036237291038112823916004520252038961258627024569440345930711984238892877306847777409028906918364054573191954921520875882907146319344754743185271675218912131514869660011571531050717040731532269320869038405361847617487942439218035999023501831917071457942931916568389515232160826180857017474692877079955604943152495069419506483981389555937189336395881147341256443060896116836470290502165228951231858913992678067072740752454397001104267249962250148030047394633621759484560456613659313106793855610665344362595639630597431290579256543509105484534752837524305002509378579689042576822378858157782033706824383754393976088539136914984926997774227338311479397982437639042153312941796305226174655305896646134483053119114132456918520573455982928714922552158677041946362658860453625913245504598786846187151423982093594373424926784928648776084693138511994443051682378818897097012692474604975318759297571618886757686676895181010953478193024386255011818909088194221422669557595490750878018642448907117890502363772714997413206591152356071728804154637132215558109218962689189465317696683804307102443829322670414775785618790467451802894996426901183556747564001832204205562672684320484459967335026685063666075099342109224923538492094246109707595648371240785245300015386137298428920198009220131305435257989498327928160492763538186197697270067934035568572072985726682050787048589195846083763704121431414235853642795174804656625331425822385867526860288217673260203645006195974375840016186040259299578340208833476648942850994900142850601959349062323082569618052868061459794243646672561786218493783861645025690282414205089587922643108233912402322072569027626871796719471160111825916687512302455618379781140552818147149656025925653435871133338334103574869671941904321763447209009613437846733268558317462541016104738092456314739976426006109047876589624305416151925607540540512268787347673477252027356505993893070633155883824852631489748901493906409363258697009676665993167904372306615441046857284774905542855085093057587784460860713925245756348761584641958659592427844569786253486334214355026067478904405679336349463386419970645511423259771976360992007142891593180553105905540061973832328541218663554771594465413906185279473242993040093889431377517473313901085786160730265155867520753174018520212791130470472340659714318803820216520784730867107250150241282630636742055154887166919256205373048155240671133656908363716936218464298365004144377408335123048711115635168687305921608756721943310147486040018638366244245479257227908065810202618911973677895418396770646945428291651149492190656074922002778260940885836451690382017765456464221048373954405315601297347773759368092495252851027929398474027974338524878360100010992535588477035620858343912244346489305116065819485669397905312986117993165350492536129766848479251812778049881185477309815731151453963722570481646429653460257420936953451936893982752090085338629939258547262959723339251200107244207027600663029484988074470059386360307119794829267452991695549677181328101473117303056033195973939430159643557007739614049835949642298901179912250385327768542510111595742518261479161929199824335447794192105457971790257368695995374629585464534284600568007498164271168161048077219495045755966256632924807055397190373884712072240986299464914175321052926821385391403570267455470261694772322473099665423677755575274334301631833083559678058877590986885456638313581434532143384272429597520481931428360608278261617105407261497256070497708267800055355046334135958679267424103556231021368838606164938465936842800036192399930314768195802949735365102616801038359006453683619376651123235912690081879300973720246223601398734570520493174831875402180446654031890507700382816239283786210398522134758829911798241240579700413595541443665548812908157274266012431767244417314296740576248416660867282116584984742509121954714443372338763960960652448908046181055120146688237850463069823794702392922967335090584541430549424679420909769952474916821100106648998071756021248415528941954100671947865849780011586229311522352897787337343905425308104652771615483267039001828765772994982408455510447583008212824321224445631101628998292714031121654370614766860197855608800435951395838933852865015851366281809289878243369886185366095054537650111372481556922592198312439711302240963208530286361855330458699210636986810601440557593681031434661141182776946473106324564525383151897874657905721794126677258810267167507786483696950874449831442293472313557306627760983151426610201902633734278896352779061131139633155333307614060101145995977698960824634031474077811842144907846235205157918005440901283475418042053647761345266801284965614662437431557269736698724547794119283385869144106384323757238438530649225850505319724446934471002883024524344731984810501522575017881603586701133087673350011844432401785203416489113496339011988396743932949801206596767015453804552593723616538493619190403085131956307489476368473172013017453571594155997827370632900834634610578179161209204134544755915551830681805155277965216555009589569098405466902939670496179834899033665466824449929285885390552815006733359887590237417969802058060443668833881400028370545123569167246716250168058224943973544399396509571415001866387739611878680974688593738049123612377865521279819473448559611525524613922151069549066634417535784818161604210564419384604298666553015535495601682847876475511168013410305509893460596267154374104060616479925315997449330294376279703688844622333221031495534207649972757822129999030248011464206161042912920579615987245028438657861523080538948079133195595391242885816302224834619410039956722089716878133152454577312176549081855818449932337986320175850380235838675412055278404966798162526880317569299546641784440497894262740493894572253135750585982915139647740436192790876472323827842065865304417902862849050326942534343800685805830323884391198370698177752276290455388040711663271451334382287580517423541093071567803023789707855651242187788790140920254534909843779569357085665912278638235260334626811277374580438246354202464745647476656045127889134822093259139746098840492447806941897352638882259009714663981151287581808919122499989488874821831845950148704079813808969799247482990521174832498959500157004760798270095508206340680034034137677591449350952173860695656951422870135158310958399972110566985511043356704492776380953549962119976976523843657652886425793543987761053537482225403397782916799660178843652816336069700745476182562574950866500773493199842742335237686822885484729075032136891731414482460860655720085380314614921100531031986758422459804153234070552356192671020439387931054269562190280102928535659260376032689896419896999731701555326704310593646444237138818416378713232862570750716762944350284291862790957105671879120049063269231149299253591942846125813980785331089266184484330650724116988309105413343638073091729345824907802494465140461341386134564343602425615693897713994378929129803410214430532163100843115644898049923319646520761032911181521237591943358268840317465298551423194508803036301653345444378597317184008806287940032255799043290104401684715799717677846717643547647420264095547930063842157116644271649484169212498394548968886456028785102910811707950348889034876232021120530040470844000594398844598915474076024681454111767365402179877236054568857027073349482059662150094834568544086997353347877329482215738772990072094943134732524776002332989501992250999514146691323303975327952564724212085322308149172105195360879499517930857479953623165104554499999287422912655311584058377941884295756252927027939433785996034758207772617448457622876311590051769915506394088674177570248974952974192366235552652308699612837092826297419307913950926033226417925884906266045886541939941959183244165282474749341949750684653180615062119333479837932578952114588969127634503498369673506378267262046814945738119435056107300390746077594479399862255654103695025517036163410172680766770021225942753824863805780701363218800122931754478538381154401247907544791968075239294448889785399941499756607432361872407411757741670442690975609270375778576158323849884778166477966145288587341172538501321919383343105916824771836899741119836205013954836766014617843431126376080752628009471444704142798720950268951154898830357777957386083947323878263288148761724068072737141128808687499825911114830041118800039132240456722960041039417861043095006597569527771820884773629064092999077948049490489050934720498780687614794946848353199155632001978754754602592613456810722253438283063946261676083932129954513026849982087117425368386589380626770842505774871109779994717508524701099984347699872351674273053228118797673788853336792138602834937922605564894745305756999825244419465751616132562747584373859831363414443579353061941077732994492881315950335650982141130374793149058083836997431501851657847963530826073369974335802969281507957938640120569086196021158054423939061331487300308296154711147379141007436629559026558195262048903217483822731420013483789153752659296712984694758737333985998303387561546514545662525203750332831243920312717252154561722970605073643702678001010374478796715072741944865877095960769752243046267076173465821756581926827735958844618236717944927414894536889800342522123609108389053252925020878696606931637734306139907422374235171973690995499996570698254480493042767432773653235910664481700745224232084522957844632171757522739789251348641091859525187459644295988138293454366812574983894194252993513481782357219048380445967362979856726963317401913635538770014339251359789425397685672700917402776988241968813904256151630124309474442680088914382496535847413287559679874897285294406470676996360335260653376560823568657998026271895917816905033775105257583291159472178112302865569453106478184718925298075311850913933113043842685039007755119336038157663057241074394335443318953681314919307294998642682162306443595491220314504215263299726488473623654849034580314056278582855589301639588748895230754639840511613777170884122716975741184503955040374871444871040240692932453778649077661316194379907466509949422665829426927919128043965810613667912367001619292885802340887809609074884729123573066870190009829168276080327893930759952537083080927531824981554301135477252436119647289677764189800920691878525347299478224808889225519749499812043226733898894845884566231117264457529123369082353761950130596417485092952537283755908484936916391787766167719374113637563283699637897326926495721557748370120705335474184133791483547349514602503088600481294858964403766096476920358217519367995213962962163153878309568447662633168704035384664272628346133531698156311299021288396513961900128384289515839351574874765507661145124693302118260303308663421008774086449124819055842528847651737738990978202208569293564496967399467676353042198679506210720996353337872434669387794503892340891144811778082978345356456721978742639411958879924350054572259180283261202376799990815603745461925036831303773998488209781866962180843284389129015369562543472313456602492233866667672021728175005523524402250123982596252811412395989200976567223017459475458976014730621550003617728545345186359731768854784178518827774263925556941066786181431353680325056006633061089908166796902631064531141288986595268904877700320903807401460154991546256958341403785089349786876756210849124549144831645243416834161936269329858636547769799184243895903440732540073030694826255635118301656939443853121103976999464667376803144638647734732553139615948441406703074256763746653965881648263848644198014891549767354659544174289572667868782770011170770851169299576370559645274373357887706638234807732351711377168478937445258052940435701959282914030993165527752304881011626256774779309581173214213670853914188660949509423338362131164688561350943801872388703795435060632147019279724633689689260196901769179934856926740563724075883225549562768082737275614529574929765740846188290783332124908273051451301674864317176595360117934049942092305904689560431284145720867128924496044322980331445659277014721910834942297779824062932717274386158029020773231337279647685837139378389845845883926295557287386185231937774801092090790566787106089619158680525559805148214200213235266390180725263710203588435339325897508109075746050409713212333501102819156705073322326370239905123742522819984324568521603617541906013932719225494295227938929772176666853326384457040961477492033988662683327485651217019898173988079565037772257454277742030878253754132810543868034589160940988405936272138619246807086951832712118551095113115485570953433431655290811063287548568128932581942145852831526809599068316437470217133682543767624134542591075781564381192686807906873075358861519012773821134586212379559850699233480050603687821526926117664565897065788894501179178782376028005396269853612147779918949289915870386493202714723242722205589052908534328732745787173936610100953722215460448050480036396636844844446751607520741323006662316433085083708670199295102094813379216377353428613655438806927528833806463079562530580558754867428498015509645634902092224682971847437040912644666532103615545013102079168001638056601227798258791670450374633550282071006766019514825764785553191164105002816737872947053637105896963289414563490764279987839139996144024863994010659538611928358312241356664429528691586265445065861480804973461847427015512520788361906903391823270799731048309953471114911328557916760809489358858513491941351878014945277570801897833427883651790107162896635850250592213638129617066504987636222594067591482562023230827113803462697967855217986291816427809007206144692494662189078627486625372033644705868212193449877089608985932424442961091053520087700282614993252046370860642780916914389569462813840950027911306431284573285810423006902732797699963489672679784468808360725875820235234078883761183268934299563769181924271559113901885966922559596312551061694649909398727175043630629196383429447799494227753236868670201011028656097909874600884065745938318865727645096826231554768755365704988998893436841285718127623526925168692747418611404868599278726100996526772307988935990523867255138508323124674025685813235906652194515506596619847859404613047921372186900813956809883168021641939670537300714872878680789060806127844830784992225317374445046630565377720825564902721937472467285591955249567171514750778520180741908149713745147670977350935708655588767705119658204475798766717367324787463870636994826344570811755690396132671879336952782012364240173400001547303058099101058519563519357089301843473908156451837089767687981298401862554729714079616149924601133600827802841218283382670898159730722411391329244429079174154106901259175253890043047984264269481349249427243188095498224005232994312298755211559221587243570201503080508793945464431059776968504745782793118687209919797725428043348416120478691267343777876950283812320927121810099648472813574849162302401472920733933738675237276069777929439090778206110646963285328210015316184645655607435630807837282060059355459379394811052343453248045960130291235310053069291247955743409263505772440800871222838134760189804540590052208944442850739223910449914504907907812885661994958044928158338919030344415862776099907666842392811314758116823837492345361601552840962574311719887892597294191809972251403842197458368507690460404599826314706465257037629893638141794797288014775306431938641890940480479091338527319915459717257786345626602499884828005398678103345675317373761822982572491156419736324291764586779955917604297832191920865028944390887432242413261462267863395826760760328430803599085126724366028463877474913704746631049321764345426859142130234759978840742024546064001536319295720485624966018458033402282330754931179543219272672649284613289853169871044681272478155181904397341145412538755189694553549659822892089178567789553311227163994503837573068730128580377169031175245313253931210361302479154371348276608213770099409380140200882392585215506530126487343042958775895609802685454878665606777333704018017467226525384959402703906920722145166920545180909164545798948449514789738931324699636397154247473377234654850392867866874861195079340436453241766434114767311772325726743064279723232343643086854023177601223375817407545981054657677953818158645673735994397540234129440790169199865408414092607364112335609825255671883143716505831652048839716227481511996324813710901241991833103848311548171389981370407661855598681967530030994462941408520676417366981131127926427043960227420227209245315482185756750200965349062014708894726680732970868772878701918009319271453417673360872152227546157364944152532273691278222443557360286957550721510932521267576796773100319964740215265590329131943338725765925234068584001219429870640402620268123390122629522856036224092361710781200378342300041911418087188004192539507773301112820425506972436048282885705691355210880637570394178861709349429266232178845760912517197260898176074904937354813956350373451474046841051210815580767244717944083693790406813277861586838471925886098778468800608245303585323930465536832743813625878258908053360200236320342602416102006913779784873161490676250240213454510361389472214213595832245994100739732285615604728559699268427370552725911248117746126030049894290111245707415045251971776606401152852069893634543272545061057021460402452967337066243498360673773798964377406305184882125827580690141497854667633199146420131947711061269952965912583390380204988950731686642728082042971677397080055858437978647929025372785002126731230829959726886784411410557680449997549936502719627951154823562187960458009619367503812916478860446667442747623416904948063517001939874708229058848400143214015467432005276153016968541446568854063643748663114202174751643307998715757284926410440707799361742364948105110182101349529062176050668812138165964351476818060439009521605113107016097323422360759906689326384083988393631379855607836668034473114366702807063578259077188732876738059214503537558350661666905106567778990089627984224777903491018433991814770093231495005807224442757766160458999785013426435444114577585392945841489217509453663012485438774261850793145277477712619892907636650338755488809509796669750662155086279795215415248364102899212382460506006313905278048202270267461164256606255758205417486665177480676474118124357747255382870581048868819260605354882216782315077800107228115319435527843711474555082741199150596171332911345116657791869382510109896878704147604939306331429297724274403099476029484422847440885421864477079742029652125522434742540631285836046438527248396052834276665739728741720186236607451625779287684321366476210463998424074669141319385282077394417674334800625912266907935232463517621597578075021188546956731488486165338840861851732575445375643836733109139685008328377140041634530584945830134266503655728397747004735389888369277196921562022219543120834193081672590459979323763505259785153841178499252417222992272357556554382359500002478396993280628449001866676288067915763001597077801110055403088576765576560527550780284039619067851819337242690164146610254365282203958167202291383675230862242584953623792394204970125222817790379152716003105704517594447758656926283500874773489821495214731269748494169802944706184126760584788513208359006437823516429034603555794645462218623458341106737403323686430578017737741387192699518039831204725073101362446808134042253729411128088198758487065841810124744342895506054896353796374670446934747635718366107159145266022090273774271361800984693055153195654653343002473029375537499013271060667825071259810062239116716974309898171610153054109820136950227554363935891998631418835198470986086542603349880491867689401825731111019826287767104570160528968778014948096026300257252510476958684635212959126127360709885945923236587315844149742857366234432029326205391942744975959929005106229942697961448877054843759373364726560511751252047284706205080733349466925868917035388890350121408844964683586359936010577955918425043956820810136689368805762369122340197668947252027262191118926013549215950459998491642414984315604486912323459501867080519720802427259604523884769390541169397665768248038460571900549834758316014879064975012189626206334615257010284554628245926716871439208863380302142205868951528087245802459803999721391448847602317927493822977473267918092179480986142265787183152721064340328887285892006904254788759627371780234599179684796229911107313576467507004462029708115800765603270452580280108997409464764307456177363131864990081136134173189352041551957928604452184008315566374498064698198630937775122227573560325746319316725796669208637008751504788597335492923259291139327854373263301691722568692488910665629790748355537009986094346738101780746516661529239165409699765462040382472250084909941267661473810841117031270177025604320525384349024226419619688194802429862311498037595800071137046582375706254645048503325748064117226700767535642168353751141327707372224574375232041587391661027078482453793914703019889621034750825727167390557258630712658587141673589289903984073189739391393957632390880138722978569698110849487865496711523895540164279233620113013259025767718993511384088621535196656714828446040861157200032246695736284278981567431295428044748395694300638331713606723251484417313732840954785858584615564986481309776051419824754269597477974419150279436119259211617832998987936266975311525609345602999488524931653735666371120696072414237882654335203728907271076665392584248813193221319717774645669153291803422963832289839933343604957702386479496681884694366896116326552046498592755163276403703381028617438199803324436563209494522762329100645897610180861086465809730893896972197288986880025856583779399845116273491168322683469015104345489183478472570772282992476234337810655163548475714098647466335409744569201645202008044247994546927223732481580678988003343716640528431710790229437825111162173206204253824526459618389865554955432564846498448750796092781069939765518717883812738933972407613104301166843582062718099885801847534546282760672299564184618024989331236431083527976343353365356144442953836508422856716407122710609943605772081890289805250863092099526362481795064272214749797774653316297393099000202106245991672774503790229219316469007711863685238750343626486186493594134445560047235686327287919125646420449854710975166456966695789832217001785755402928699915176399562987785304979801259168619542219615122266736182179961219929273609465955861553563757812099269916758006960810515906048260064749420079144093352629866035433642906859442933728566219313391715958363932315451139322199240215096569746843705827558758662148427327519401270485611326068156908760579026235671066473617016809955237131563669904723134319987980489064567879019184928513634977465904093645708708377714904234734443375675632066618093557163748616202119762682851529929129357628565390659534433206610472659447477713009980587510617096289591481475893786433748483991508815507891815023321131775941540583912326422013038816714894844234250693725924762376501861443451692770986542315919806499084105906378466128945383425063254104838387833046709807070339939688331441303180665872756153972474268900305820872301450246872924582377444111227429884712630145200425579092614324435568995281265438963965767392389393813345236618014613887713157532264495288036203884299334452691909172262029296334318656227669719142906069628457181357758008967213687067556405003678009734869501965905879525064842926144867359277456358616272442867452021018030592443579272309394215695775377203285878222810294060237297118848304378559992509776707614112344300537616072394445131409867584673002194408856057628362101478921625545677231772365398497185759926156215351331346965185012648364040984876659898249347578893283397984732898124377244695549313019947667996120923391880339252379688522063906239715279019295460797312994013146069721269633645788408596866386363488085727694332205751621908643223127909700544234398423098984488526065764730213258015429152812710210589568148088848684923143059846214388042010988513307456779073552068047925337507510295674377742587750548721353451302648794686123270644402947817956942961721241898439497286389186198980532856173284940496056381602624829827187842315109086173341783132195334446586390442053754272955685486567903420954966426661925432984912714451705358603932502328971678095800289743376149967337389385648483292530329825303679302015455154026756250731299834622902180944735842941477977608166994267564907626363742264357830218214081844506903759864551685734585618686528061514156703196394167328653626922933512014869089623707822955780460604025600524677542749183035872072088933108449365460737595184471658969573587825758719672169931410676878692099236077502528651272642834113613071248616150081677998985711663755015940958789239678556238739943829369195705018312284783403953125428982487886254839736306637232274107828753788080799044875947975322719230539071034824188205702823935329416394766591405421933610207904353152152943025859955707600206805300015000863623714616296644783323371054187046421326894593648787800439227726823177790593505474166439571118339729622590324084167560292928644198197366040522170524628747782383644641195655777385395618721672920424634511112826056805200467112634021688354907787518968797203601337624826778064020959200884071750820472126148373169910058510294950560247009158285079001453368016822980621333040267271184744827770711618651904937872348307347068593397610392203318021524638224287722399527280856815000628680061700685730776629246764325680018480570330927404130447116889955913414266929518240789792946143873069016256507976399093377448358973335091145239531939215266891703919444466000503660789229372180654342988875008854125982757681241580639737028693784768438435686944967519519048923130413269474266120917271094148218990372857336858531383499008528744631547757369731726268293419989322543415973060472211082835401412135233490501614861044141801948367567760203386305104175472541402966764697427343972067424392886351905274811777294234301266542763920007071261752139102827664358047493112870633854825492738750752714554991467454992595524867501045889388086502302042982302689582130155835628796920470506239886518031080557843902698180126661864967817920435960722628879733059382582566329279783830358077135795936180055569039898958813620730377341479663502304557292162311648366081768390626272979216856505569686668799919032982458064061985119503807886741629019416007700116453500500917303793730157380103139670415561207633274030171488070834573581001717914864177172053661773907283819028481519090874541731623641458369524010329471596143346789598278653391032937474534553261002047996003673234736591981545750686580795307291655535722266224397682687783064297821464304378819934143782775140672318268969779691338344940397876616367319701676149367587807044642356137421051909030651916638919790268261750207768074552195509699540403773753779661526294741519115846786808966916145380377332931435495699502555288053719275330345361674709288076570435729940861694302119974618147663529056216885025490767098829544314566077033458355645485884535416021981352042180427453674999654936068896460817945634120610742973289799211486427775085858529061686002388444125884954433242007883407116237049216138476130540585483838850299877806913835583558125877869136231213681384131872333850221005962238608616981056415966636221758221378889885975748087946591391220100956185949173163890719221600690015114743748779832439769898444081997604571814319348570088490545547622954689193148397957725282785600154266277992692738868037714305290214922407243807194785630824877267046041887901107002553119580524164136128474473715817923702209657990387926958752472337249882369858112534416374271451005660170185388214734845999664945636030250124168201945274246605693309368730405275443372186757266561910200132205509371000571145563481136745635209337562716660164173340091524556497203776007337851055060893510920332943113165290020306112301487406276026318754106223777453740715741344511748782032309079405119945122110681771715343454560399245234906463409070243248287009972989116162391176184564040863669264605211716353177654776939936614635511333883683882067254908699996373503144318370564132710193417198633529971954813431126649024877922503734910940053420896580941700023398842389337908762089351154255602962128276764821787417951917090233652232181493823166342562559328531724456996734869280880214995247714124483429447459850092516009276697651613411917000278122462702681717246958185167221247789035103674600519966569240224858074008908365280840016007525765913384623403514345440937188566055836921971794145362058691348900732975435709406613956255804234068378585158314201113192801499274807636407169555456212231931890469212877722339966301640109206438044491920162031766507720059983409700822693179765308424136516423662943284118600405299769327728527652368331820962223004236260288454268122116102594207288042695547972156181042282055319932432562072979192185987721241097590301978120986680185411089144818963145758186544351584105333622402983475469314684147181948979580535793131793867316319705156355428412145352421193119502387508358156276415478403734982621419908739167842241761002717194184911029525004734304309668975602741203387477130878297748647954637417318032855070788034615895438125637257457496833144116696091273737951350285547426328394175599957184976799480093254774690490466503133613553681198556547011047154525297269261507654759058118679104753426503586088344781269008208494442858941966508445035386766937199853535862638275097094863122934468740998902761341687150533807246697199468922568574964253784511547295294504884343516298206365581029040213705488154317490512967912426798599999640726334198395446117314150088787749853782183037428681799488532440768372977478665081948350437130891234738933956350355769665460405293560860814926388144313737959497003696512179936463792136889913448229069252179292545546613107062108539987423519133607967061658875916375808677699123143683896247518519944156505879167421719231995242721196790754393768592459467127204154035549346364531195680228261498359028442515872988958464880922635883000946487142226165934280013461704563559310166805280470308231155639836525014906361574402884302674970542675700231377029344417357416090292683729926927502296645203518340072114434178644603850940055630102078332210294295567095768736430038484155926097667631192609213933162218221400311938428163451516573545864668534684515429957671169347951188839997819380402513973122512433111801942316060283342532248739879781287332614698526852545990202820099322162874569199199269004727798617740759802667522191445575706909399151346361726438575038723360626297866425038675209206508469055379650100355047405778072744861178332775715403586222277710796186713969354135902179729837451777642857061185921621267418469401286343800785743025895855741043334061928450964625362221355402400912316925499323746213393633354268845258510111626389611716964471209413473200007436305512899662694923967206491460602499635936473735286523591128695634439040676576894685784343920583026132302381029880312822169865647119978885566726173652920644750672723789820341416377835225268098205383618599101711599050022790839663976687897778048738116581906809376943970645360188732847954548684840924475022288994056549260146387014953163532894831442629740063387656054886429246329866577794819797572210212963131942867668217866142320264013153173157336359878798825842501443207774291525186925592062392711548703096631391730938441172796603768706457604628333985680250994813632727289988129442617532139461843764482331260243939833174754673649610723464530367955804438487648223431715636402455967774082807436828520458341797969476847732760237600964054264644060943718265537502694743630462552104984556248421045161134332652446621175466705686457290207124255702770850416547821375003801980933674210493101246014865795054290698436670955339979818742624807943777524088876523124679959302155015978905257361657516423037996187523287961183979987038570683212884578396400405783890666558179051611385094132524889129529417437727574791620683291103475381314850030139341577772420026915362544394541868461878087933900159882325823036836604801695239005782153110806729032705285991940782684870102684130316725981281256680184795991270318374330408999344032182444097459363873899110180223368930200848948906820319015402915144906640603106528160997069289367824053968727847085710539353168886206362873618626862843856102193095096413011383643758708739000025648208854594248227736383730037333159289259604650460948341618055230817483712513992710091504575852153858335981219319904221391663501153179338448643899752025400454769679099121045301080012385426133927982372519771927598707262335446262196241702960970956026500942962494787907436468439978222726552991079212970565512581766982740857963201089957749268414697312651979038360268700067261011873277303706264391696943371785871146263916952655346940956400448416289013153399312171619745540132652794946001961573929313043741928854017517754311041103920200945748475480333784852261743584614579511624918848858696238782568422083354679756345242852031073116996122829274240607401785839992886874397822857793116149393674478007068936056771834467944952092161074676518393027764898796934537202446585268207125165282199688419936936354975447219975683900308823350035244458874530191280139604882517067074101734577365640976692752881779161239191589003696235328523039481053824408695169852559338127755767180781930543456217757977254226609595038556901676792956593747552942856750750022688287960364074162364742987090731517093030776823334365815554488853390408160053757219723824522481403528834282683811323392374251816978090580265137705078079370992034982764245058056564145310733531590757347591574906531064593325731730439250397955837757193277630969788946791395259831233136901263474175083465970672657470821685928262322655237164888689369236802767837837703270800357993156283595965285761123634028486588753538852731715318691279951641412961147960646283847963774646487354784825616629917590989657102315335994156638350616524761825273375641053878916245014711031363052696890678282491607476829862539046471961121009628084633464025434506359987119065196112182955203995944667497139048811460656733385670511865759976609723817913423660779193343850318749196145792422735514517861331078447924667628218662168628271778261971229869891475590719379484527040190123055306399967857238426595531774242168841221428194497045585613460669339120665505350060227819525692261557677331440420093329937520980860349927565875768514901719875949057391833995549851652930253196264164049264502850867550594452716000158444298658614244658676313100757710991054183331316753428197931453139071702276224018952805261968131381767638193311510395872321651611515200723159244984725062668231643196291012712786347535560890265291285846696315479542825212769310130125231634103169912819061351735695874705680958642048646319695230549926101898671484837786229886581332792529388013305151117136046939897094526759272471079495767523841078819375186653634849889480088876658929660325485794269958007838066708083490972476199367851515279238938279937742529025994613732049391004252280108017001777756629644984954999936437337026390269173331950758285205109180451387762466969521436152887973931442048237040693470718271713555515957870084124664544467747402660651650903226511635974834742510053319692159749569583963717301296183364340059101390824795884785090064120392095731025882782093212435248434589152445782885948062474724949810591990487316040397092558622101060729272340042706972605212426020412345694249787491992416512634416123684296393275032919044489785475881421147351396629673073865623710765782668824186930342798696129010535266287251147495189839965792818424009039657031120309041217913556123805976092798016286988081196711711311694202149257764990447750832652964538985993339972317523959807605688129925267577541370073942084850670039950087470509242716278929316121451525452697264987396391342786419306344715506261127961320294643886322348422350551695817069734232979189486567819005100371171452008567983683293420860071939282244807818198630517549627666460534519826921790210246265686416262812263301509539683479519806327146019509407855315328372306509570983064478286789137359144265505584265272422440907557809250459019457059753834095169943972374476690609739772573581492607765175640239312737404170625603299295524926721948936839790864587971127779076798082996709230210638966849462370035173008916212503096993351191805421801908923812312668702959925576412371135497948496367294394871815339664343328243954322859831892258772494835891215993823462212072059622055594185410916102493830900923955618513597270062890104101127737304404138556773547349125061873547545681066901303060038067444124171231729702747652554666249432832593668040565250035145467927539272536124150605090274157234613203947139896036558657290359697362756997577075287078697608549025712704465733425211306357168006831127364501215677559760846660216446830121678083560203176188632681675302358567888943494066709340695454960928829097895250239944181322049786423949588665297038706397546257476104080439297063042505470301090375310281273516162098218853439847025905528908700061594772938635741170335386610782591785004872835054831874641186709340456105515311567204422851777227434305129009278123192642679620683221867007996505680116438527523190798572838412271424245038108905500645686791832930655944275554964643842907020858800191890773080570480728619113792834410225875311188760688036194191188668742269047616471418449256470983150501765125865818015721715474881062855432671967984970790646132890838997061689252915448133125641377510811433507147445084614520097930607284167184289512212756580278635034342822120342724908893077195466017589598646785894083004365388583389442858225603291873765964519931333265116828656609369829515533737086359499174472243203495085716113004527725182416088037169004079003377803842319299378219522895534230045773870876145630656985398251634541997687905849994030818878219422056830962812488146508261697393176548678550000850764127699044452652044417287652176638651263705177778911147538935974351600009553837355613684950142687369197082964677224851501897565752008086846479043213847223524640158308292149947805605139285102038842531980808939090621506375042454489165491286714478957407631594223330224143920772603161225200547096335509995454496874357251984697511513344237470006313029184379451622701294239851862149542202548751043331420833804948929025295529980682648576099248965827024117402987378070280347149319275888205655531078051278111501349026366931033722238978268300521649128172528727702024144276550730989840940427253715149698225458308335650503954781612545157662795973427855778668906529505234454830767265045092556003823399107569605765703163888934907499076142616355169581089572802727821091818802027184100952387408647329945473950199532830013113315340236535628615714090379865391660253157812367684840985163994588132580102683472187277209156511568855702810670048717122769978481869737144275524035223571689374394983401272949888298879520339262379237432371043361404603900983281754055827191108621816470639549015669079880961334886478446598449600696028644016780719619252026664067830453404268876446108952410152606245347135099524707594409314818317652381024076590994860977235598876655594812202962210825765911639843543888887156006558528860745583529856380175941979500773624681615679787992046911491780186809712146266015497405117132527841073688780267942187881537032497734081729039112595625862276692317541881927673015927954269629353558319233699494046608059883543165045363969075671068348340816390887735310886378813345365571252156946886264818098659957393127356247413083616898149418500421127556604928336900676960712451711112096122466247384797927309296407658283266258031145508918844146439160306569982494557676378403291966736603792843592089313713817767250811329200076836429472243724331606768182959072091314979119045607878947220829237692070117476035639031492649909427552716114682842705822087329774961372485235780361426840357717982116867084845343009967230960232732729861378097566534516476727802280482214688826728911654147355038098372086629693587088531396690242777755681607976467565797232475011122389625285949593471431477779565725594016268104018139136866749217108979244078521641538236816973172396759332144846764053464062276545938412537040361888640885726521156559385658227891317666967022095342708383241071976710983537360723065056368530634075639043517891409891050806732376045613737346905102248109747386631364977337013370585263527871098812115566331852825862372067086813037826853215039853009891096106532967176873876545527542907481851622992845364867286069280119132546011382940980011549416329144748437116742881444599520268067894399391227222396874156589252053892771307248654888951084757272126498906757406641321626162373551749124580685380518547378411829062471489934651434369585150398973263177257388340287294271066239274571439453383347508055149781316555894839898233454191156320201784994391001725568543221205041632334785914725041349104956007446756894920534014154594723085643758131074860638801722354506072838463027763037676024420737008484014023558215759343197758667171559431758669918988445622655728973175863100391547264756014681525610206261587106692970410038115747222429385386035700846225202359790187323734447615593828384251081924612058078309458643678865197958699747802471407233006085500494501996775611514889061984527688101423783223670866399745485558235349069018744216175334578416964849392247001043897667380834141037952272339577402351795083634026609284814226354816241223377554754183003371379054691810054493804298649820455352799110929121663962977869808600012245199860767453256327218294535162999344279442352453148896190699598672920071247563435569599412898656026294647453253499912874858929004949797109055650925398743576126719280676243983508121537830214071589456401552854846374276064484202965930323378402517574184482820800863080543835157270292411393548686015705859595730830822864897894456097999591440434903160413873802525171976614146266248493061815369519439612154470777098214098596178892198472867035228487847565750085888503561785337507678160737273496983402789029172391275359179524976009960906450728914556242381927715833726339330000920391088410073452590491207961236210806833521947020243206743314724348500344576092134924808221996303063277184053309545131570972296210818353222955435441592816423580934560102771309669006675107139658227471511374426659931312547395037207555172700210097223164008580303350507234658010807771243083354095613662772817880628997017764591061889302294286757906899587180781738842847566089003608907544062118313964721024625738030510578023676625687293633833327069514621059699863582828373510093284577240503200736219525181648154364871158659630457428918732603172025506904887108369043829718091078192834957979695439704415089999992392144809072562290397570416191883425095537697091794207642030083050386447743828551861459420478869454492307689120983682729252218016015250842294702675862470268217259807948105878306871152571181058343915993630020936037426791597964004480842403992101653404387028315189906795419281546134291923131555515393960333264424345203250238625880748620906228562381312504828194985366956484421444590803956203163983391570419334201952809229122835918145967609139529366663530363703488165757138252499917378480522767626392420358916705279693823382010112647744926970590136870127747049079926218244982868124065483575296656847821871569597777920077889811520051611762119526312597224393365151032856088035993956854420591611803035441543258306461502096947719679277761701182514688305651541666318306898039528832749736995774317762404343046766322486573618555579144111635309279288446985226377769981229416433056646558354865394296988925361920678069036880442299221794732876015632331515316054601632595729578666330694235179985123697246182997017357877297326742005217639004864982510080959892919240246284057396299615943487044611150598765896467892124106322138772582384440477776329158249938080936531369995563274915062057626482444730715084485792716946498818315840373389176825197949048467286557779337479151012414005775150825727802870946147845324518626248510056854918266485378691797349556220384212377969033638011690594300798260891380651044355767378508242857140789607690491909711282605870435938041103014997491753944643385689654721342680427522921981452009027227838723311178540534335202851341295090147094896507633202810798333044975705224098977599721224808632648313119237332183095041700206023119249322014662569881991415974591503326161821517852135703434168913659257723344606391346449888317186188137301949820485594085835448330635389313571255260253300582565711098277546584008398196596611124653475279444266745786832064936397197600270712407957518717570937156437674132421923019238520120533338560089079364065560289132558020425022717615260878969985060380968908364490067112558636453755669152359641278233180227512058722486167144797536299175588513704569500193233910134874306904722664312978094322483078694465503340671778162058559120865954779327764914480817449511746004330844373929178075653536013980892008680767786434190077534816685056741380215758935390493919379959076863607719524405166054252265846211562431137690523929303975031194532460933001587839375578810906474428360876247269689384182784499950033437457746641850168173587465598832223574042759628925249236744973739151125653435378320380827381534657503301363799590290213514710007607988849295081646237400073396643050335133505779736240592227897104365279066157674790590557203015896614105740170718757921002545360854646026374162048294419443087645527547287306431224976012150485095008368754553805803995747451123540533139725104016590119365918451507782943431082408289619646722425592995505741814978351813734085688565575745115333828832815289717188886715530472919519932944812965868465969942927981692518169921342608339688448925497127228118996938124856395699555449679983755120437557236041656046205099290365711181779966406095567239740220415472852498254026226197773025340898990579010011699071579955055928413309220149715661433018068703530668863749492861630034640796382206722507371838812111072666814649467049301008074013566169501016009064507397485843082950471053719855977187993745583010028851069226296134071945947954581053837658747216677180667728318768438175320288105378119808041659594756507461680599913114576846368555035559103290797451336470089056958479273184454112996894128534240964375688052888697221363025139066362814763401441154641058060893447235560562148559975785121850466391820066296199850985608838589228799615216464971176901591371345599725990323093287773050074708771639904440581867586617977219111209160050541581760598528545601046271430406536184267048984784955199382399599467789643724167130957147788775562585034300802281215800034040898871165219991792744499327098276746888694587278788246868577981902526129114522008939707360647590444871291920205740386794052771987873121405108125972524929622468103201021587040087473590322943365659801315759082807623714025100580278701010236025645378648399967853071713797393017291226080562849876254221364619043323098256422353150571887331155345011895433972963947334464465739754005334431104736789765395677743008098913344039819036409910234407201929843263054685149594029468534104672100525936974966835743946218342365802205103111675859142915260796318048445376643029758009869571453615172044808996143699685929519809656630053668593323647268417078271486620477961655115970744443774978810782467700863469017337208807161532176808170080096447764241084169231149250519269793643760938041707173462648299455403336858687635036970908255419795195844235124134170642647291306310455718497090813312153951099167241101518496701932419425336895870073684277405338453097218016380857101594388052477910070504043307091543657592198243496113441483940987541632711745925422681047288458471217916050507642842327950835669349563727297818221190228530346623514653222921366716409657074829027247605827187534918029542025739712009401621263784354006967382158744134785505017889515470892601790991878050302089638259456625667117200117343141980680192750128635843235721032641704250686428068554846815416163729430344687760242230770683617224292512693393443991125209699164549891633195241505816723045666853121684750258981513761558572209888912688079271191107655430816456916580010804770642252980933646960596115597681474573519574869802795069671462308269930356384680115897137896680249339807767215280829337579776693483825980487052024084169928145007329030053640160488997482474878082619661056095073483357404023994089127429137754717818246871675915759426672762823989488355188446481543499421818231611310414652086481344828232643653029850204569947432949955428816774572003736520743939544447251775062077635434134136119534867046529073388440408211075790456558607640664164791151089599225786066277179298743533743390132280333425617889607459734519434361379043015662014863058938036359937932637606426655004428638045210273231301678799333018223885726561721094504313560245885942405817901287958720256640873556757267802202959556533664627132105854234313393416996901584038325157575054976268252114973954413852436418878426972891576934018771764009613971117811393593361060831184556009098529400113052744845069352591860534114870358085982695680223673930579295156225295071513532366876386097168300948041443452494711486749301443593851952143851052278363886971271886666879652537883279715379064658963285520713958535955815227300424338856990972324467424679784059520483151202326505828618053051527426138834126508264767478722271738179670349455972834747821111463022808962109226296587771506191113552404846716237915440770812933070048147422573194718241164618582446533542689911551327761760981965394808968805285193418837430357512133940345924888767086199216676373740525730150268705367338957347477119284712603794969020574310559000207258615905811831645961150687307956260018445499915672622279372344042022852514296592160838000804848006480212104933770675923503716392702007905661100250388485965917747615898692070067316097651138645357068067010868662716006687809655469963963275550347090664015078082930412983451595304603026608842014106510109594719275540123604319277274977335664464185564932914243125772587667080674968320106736265362579636165238742130451093436763437774874531096146376423666675401505607631652570141513554388944499438648477202428364807016344959984932249809633382203051263548750524336714767180778664303804039274178228618396452499088279314878223522077968719125258174005955470798841643070430093936589805404251222162167164808454475362413241401451300149059713682527967349143982415996702512397523954886169180496763140594543463472291193627033377946663696630650929633833304127714956924009309320380313711950405769843769519920615136602720985094993113323929112591730548837831502540678273024975250154429753329015920406932678771902480585860333105832479324621191401694606003633416270527290199675932655298533333160729422541439440569202757716609917802429881003617117430687009075911543915532795391687737967399392448888088980011995516451704512845704224084206829359297160927361358771501988730538956253572765701328780214556150114632845497094489017373201255733672774918517135529017040149822068281489285945088630345546322100993275920575806566518375649458700772984657243727215250899045811595986253936139913232612805670487276926804601982481477661365962050905050111139010850241726569439398121326239987451321893143017194603982000344689657302465752548673929059425454361995549721109680186270935835122184190246319368960603985465856672666037296511866561690001102800987947361998182694311649911964569645872682620796779275671692766833942983089332417391438907427744710490576286312278376064455228723383267832826264801748177311911878490788258613329157506683739983606118183717733841073647276995773803932441481649183132237672666684157210984697234847015555594836831457072282525781879874218640667675515031281806458243258804575671431905302080195065312657962614009933853679859390271660628914967657052004247059283735513329410476556102977402043228700114338342709770813904742020263650756815003732989907007550363211347050586363574267368859822544978591534764897509049430961967778931753405029842676982538926681432972708519425394806193197342274718090895495426828235589253451448538758268956169147163980346368450465479650691699826512077096252090057317232078198992298194668951838453499490877862407291466718001596763747729644574007278304274436990341260077496837435386350346824840595923656619594365248651296249467879083294521858593200259283074558966968979845460285553065719692231493499980377709414617511839251161260408398696607406529844377834612327587744109006583289519541888876233165013199918771619676848789701021791998674388893882837170396892558432559134666860996209575893063585703845660503908331752471623067375003116407474358148858419072884003714816323777005010256493601382347238548824304772343432084082353419702623785933908056458910777758866154047694270492237902612108911012782572214636788117520376395181691965914712625898655607108844940391753576341162897418760446093141442185610013073273807633164021540350358334004330924805314303109384202824940264363496884152311511672977827760432672760054753677749108616200186399528145308236481983681026472024533104839413179732342589150348445974874134067902106645749178426282400502565386347865519926575122304608938815078037250710932989509222594314906800086036427665857736305439167641029467800135505184507807653463210353177639006651370257172191019947479452158039424694458251490043100980061795699623171456400062276347838149875325359894387424785239571113188706297183182860959625454804841709189368589557051295090058896782693018243036320689828694438521595151677376009659515685484061642194791715305648856308973435303794043788691619486289787524440933924698901085817958529348103464167578268091779884187882653114540462545284809997358422777926802968104853439260537856542520576683198040275137853039084381416899690459480658937659744079420775123784566176819367112105832660830183928797458260724510508785469934658920567538137959199105623967909986519926549732279825161907482865395858771126290655271904631781899754793387625751706814556718594976405173308085825547060462921356512100732035500647985792565687413226160137248947360084145752501985450945425027751702536710889692160721049615600072049160845611214263932897869983211110416986052852931032864300105831627954319973993201968779669135439493267224609253258167732683987245557937502759961443674902133630050320302462143246148044267657218776400346630447295163887463830730663994778284151771488495918572310723114050326611444698322659332591859597061156767410936340641987073235499537343649310554949103958276244205066120817756164099779739549946311976696305737558638597536183788922326078264386527883951782716614722197761755289396872488107742309377484494364833677346184225861177864842739071623800183741262371826048217504307045820211523675007028483312301447652054642879782074809087531531437794237346802377642506960820560315268058206578083604839920943903873652640880558770531248574038479332074983927850042115914891512576314885950314980522205473915647785283896081449499370714430193767465331138368066926348150020087188888346367267165822765588845524789880080884908691298257326560831475071448902391701163850035753489788217416025003040272905024037167558111369702541652536139665730675559029467375894676881348821185531139495611725670379853981106376389752684430641233294293676619310348438541561663947549468483554188583671533262969885297603144048821915585966186718730678216430457361968094270037654742017347693486962877534326517715392378428652936775222068980808785603593778251433907084830146950022814640910291194944147887435192250238835723364629397193389074933632724946084262725811426592790738402564479572955962392262139892729089959141197455075082231579967776098311869122829333604699056303385586554916999838146222546889074848520023833645435937099297023884065464693329717219167262859245748187033742997602854371652453161956113357068584128508912089870842737815207761667136145266302033666968871634571831888789077360167481071129368730792153894831526030383245314219164730364772957035888834024802926964241837922323318808919707585856326641927849867855503002305912347885607764518346051660536882404468818091052638183075583533368931907720903853912363971454271396879433068220156270854401188246080364103771191877738402885195092625486147063094314423110426868953918457426383153354678316896226893312921714866793596441079245820863442941494878262858784992810033050262992398495479414699559047839583000218235549078517882166180653150489951626939523569582072503362511550994083846909948581291027151047803359010008206957095575314086284520769054318725259610494907271970897498716324445508911140923755262679513819811862062779940028024839191829354939973725273523582778205198224717834619409338491844392575629117561776788587101568235453426766132943399466899628509642407025231036254627585818142939769609734674681611969568731533017173623788716218398044213865954095340243188253060342833522410131187626167879467549987847403312623254289965604572191137296568101845625622627867937596048729605154296065088232188806174483179294961660826644334604751315760332280885086508040369312173919086998032979368818509692411608892178807922549469109297356765170717002870765215459229340762820222914944883522590408520301174215092686675157263687307578626605270473524265958099344349330881527703495185533509130642919003929566832349988157430567829384791332108899237844794856951577144826653724410900802316107950518413304364330675574396720420161520509442457649319806574164620298543840673947932796393895293246474987470558948904857094205904361902188547389420196320329062336429981881295671577995027130503659076175111318488413147457082759831269978585893789174472648704580366411262981427338005980737295879670071438772405190312541312265662470026204208717125191908394400327920016435786288697689596536270830704615581856092132093646281349855750094203361064969527636025129521581778068335084897212969388555351447945681002553090262887536879206507760817146158931273946644657163955632364213732337824706609512595023779019476589886861888146204921964215470117685272361865647967739682036426144137062270140920736068416043818074069178098505705177506746393784882058572838812597843433252774952487682747900850887233309693752064024672882462951905174572330653149061764580956428780121986044193056675283724336851365726647366782736797867129638515568850860210184980396568458915265883658298093755483458087946122175909866570107563623552229025193926902362985114157370716349334822028408657979952688235574651536642185287618600360369580754303827412558779422559797916210085183758748319959608134196339466418595764501921778160271217302793962049519340402925752610693230456330607046011971850175850162325994481598667127888892843241170126282292776684550135951973389944282245979261501336787741545478969003637044584548764540554116770663878303930737497543598415138431212240508534197192552293582357024056830064766610414810484213233576080664291052147728568214681273142656473223345531704859376358246528130135248543159636586731831695595424966050568948603459955679614817898448139762658801599747232144325487431050657586285497209755404088309804678054351397461071615866809018392437410669621584686176062942490039300500197394710276938944142174860897115214903928984041193129319439424533924318560481482348663463262654573038932094019252318668129718573376475948967475233690831285679562828457531487681353024753143713155308516058961291559274131713894759776424494531724009748019511213964511463504557686454679215047738347953505633794996002757067333785741779878530548224382641417361470210797750625916650555455780281243783328972217536261577254242115326789377527728014614786671514926123250997182248672496175931878396643097587629584230406042103049234526032768392915723130094339220319416156691636879391853132503420063472725585614413193834778360673049075074293532911084071348307843865382025295682126616550287268203962846452769913583105688657196003928871776989234588798529518638880182836024880916210680646160719411461537038044345910379733581626023654979572110310746379165242351804213859291811019812408436105394949450914134268949928594187145189833325071215588444803547697883663098530284327454971826668392569372411389123557901752125955613285339623111303117833408093122800644292090282505874427600696791010956269107590852102147676855240694491359749559430163821458005512838353481085035203225263391934717612722262644385644155487232011843651662661330416345569740024801606282929665540761472068337193737393811667135131368420290781368926682202517529726945420269300828285926876545716380845727870133262008704211377074312857943103105826393765865690263727452821246099822123948530347452097677067733674316194409059530926579416417488801995594468482224099956097384701600450650830870989356756748373153776284226768425516362053598007919737001443583740889683801333049448666581958373664165221660041275545677959303595282142442048047967835582020510620371743646228072516226965002083043588354022943628854042543854639452847524752013938795534260970373964174970179401971674480964024552836243614275253593704540350523031940294806168855686328626304284724845691905498033639480967191515797085313244105396567187323235051720852234960146751867747719674589660191513376305588154318594487127491538875403583726757313759327822622398107472378726505931392774063767638551765487797389851818410889369814510391369468329895604922232612839516552363141047753538938317484163381917204768011798557344112030733295806382748226811091093691856883430712202193953106242792210660601205406688525056751834368831191815487032842532636489409513973585888123206833674418610080561613047797380322932482105706728388495841607007575903007028577729443792409697103513900942106783671499712664672186814394086675047960876680113605014237244319106221103926388760165572975578891411026086676843301614637556563987209608399559108744146944270366246726275935620456391022053657512354199502612784567489222151359180160633004824229550460743004940432261913336186991099299769466258901755705202707985054035996370210031867226191277527786727101716038002451856109637939948355544587856079514040925087992034403856082216491683129292107635780557783383120092460942793332843298502453112779069651476660224140186958271589975994949667193001557929891386336161726990603908356331392396634098357472882079423930232042364860823089436043117393768897974243042167769015715751203026720743655948942499740570592420313619933999079174731011711760353093189993045572261799507037539030014199557475430680702646279857897951375688459711823363627378112162626546397790661347730154711020526882388968666446011467047401918353785897579538701668325623334552803167148386439786684903336462217123227451471438637084338361860186456318781338071581095714796716950064749629416141306888514057259877034914016026327219075148517842754745626909683618562612067263674782392744498605054339096037751778546986934117311338400673906778395206172307526653422051200891639566528024216748700422279099472815274575889950471103794677655825398591006841478975881773467633160926742534023631393802323024044713525156896900836526543629629052987919087848340077959471325800503299929049387407458787130157035011745343235900909999635166719452215947151956124071732598653676185435085234436102366232621226552862951917476472774206703929525530293666404350955816939998956680171740313060625159824107154350940499454339755062506906312832697142242212678544474070890863417722040742755498587107885026832857621813288762336952870516942998414892365506231313173895136290625094228935532797142053296906064818830016720353645017080638857712197941037453054873032551637467767055635413721857282537131587017304246779423898551494856326869077684093899513886960153899484548529846358195659599927842976973344816411448241922201540128278242179979100823880768971010907286979614252976612706638653082930911980719782451802348571040681874608021982079129491135640521586484865314375044304961821550712241828139974790423766985699915525260306396803679114608926524972537517544803847281649885105111311711938287076694815741900673943910115566086060041093600127868038668713577390556095419994678454380928303776433977762574317466813389888895758163696755337877451116086693550815826533647415234589095417755480976089681804229459486538887454914734260957887245969545358123070569250034425242739492033888573095494654934245895256798608729711950304651074418713691865877125385384309136586607188911247658253268400003889817897795519213054234609291211373386202357417755958431700871183020044766402371755776967159404205392540656489394453143886145988084725769604583776066538284475897088974040991756765148942592941614379331739610778057784593097332952661527365981186193411939437351266932451718869680748735681978429194181885875867444300461517786358154616766002722628491171349637256129732856989290600496148443693732566646251207028986402169031702899028595509075343685805129260170421896178203785110727123778588126679749647867354544693378384633226056291389896802719101099133941201841109459452200774515447673993805197207853124883191387360047986203721542818965985184639079022703795144103622881993753338678563982494166092555044462028458749341532547047184918331759357890952807050457081604968381120662855508194646824593880394842056365556973324990865872148199242777647442141869538832736774769911836141054754091007404377838596014808774923899596819292134066390336721427311581745328761677772441615839490402368679017980484944889746743211364467362539818984609098995417256214287266176166097856881471290597951301949046372706565429034061922597455803186381215977211208709724315274565422332605163894491270830441163987216569445106936030825704909050659082713937263037526675883730881541830526347519793567997008561650561869203145673972353065673615815337508918817237171316969303853561336997316366967796251982434171996635049637716423773249845177002060994682559659052905684166839052136343329313577757170391099279115908483302833187645497228590998678458555129456128083776391496255069481872150922528013664964894781003396671978920130931760150312753075228503115870142043251569023286877199687714720795570803130825107973920059936262384093210329375022088949622649976761342481410461508181717720495353169075215576911646629214351545160787060040218345904498461231379135813661506910665230970496477481038965982994902343565302899467751925347124361588303383248247095370576860102157697002096138613821857871721838859414092878759653393667112842675348836471453039020927640022010552186589674868039473789051999432904410941080815445328095052112961999764966802720808280942783890226448618143453146171417849993794877128831511113272118034574416504442134967116392104953053823749137575449644425107127331513626455516052823429964853355002401986968644680383572030707138610818688555006671757075769613342195496511726851410008053853279777027707338156062063709087635242894261769997187139991788955169371593221382383896012549149505125766365381618389827899944706923089648034725828855246694099650370017107230107671041896219379249919354710579842835363805587614314399521220034873600691515394007532375374134818461891271728744995221418507271867209253922273431164734877161522030925209350112681855174532384917504388926235113462697800552936023585041034105097399282261571063620445715428661322427185864239509759419793167894692296197149371652106997500565214455258215647404328143534025386342979995213208557324175645161706536921660106272949197110218160758666721168764450354303859106413053340545253275744838744928464331460837365472259781523537110190670262890428081418752214975836557990876639752273508507920259948365814097631007932191846117021051435776299496068116072587896651014176601619036410300656458131687897804336272574333847542675118010959025592680000172233333160404886001631107895839547294611079211173952279010178914103928747528888490942066897035223823319220466822755186979532943547264307021793423498004786878306485658447331256459759871318292862341748413092731243651714945011547362336053456603271966845413888515266736803546521283675604651818023729331200679963703521553690947596298772123047946316559308338580400243431695613642569070753563705000695075650141141026412044615576686879568056847302488827128745154549286881017484400958065211865251048584064556438971791718093285924517178459748963808449422412845180801145854819641998091021099466671217597864575646896737887911745500338808030449718066758710360253113973438868013755261919878896573419053227851476142213969327399072917182145773244851219709679520058374742582835292394536720244312539138404193111891474263225644862013300871130265498065898101614457828341083067593099199060269936499819899459015330620512898636544349894308286212098784322956982420131170208550448822940962727592409340323147729151925473859506382051650594393322876112352429723583612829226888509070107378270402680770579616273803693882322326638904940299430921576908547595921893491272866815975838242752800846525598944474637006750406946572087681071326227525234715765741150907238769999385879762286460285389699595500852975258888454054424854372915012358141371065524774397247900867269602061133391608528270806484361206807686631218827741073917382965001495714267435900889069677718020673436029312041680164791862969039588867001181791518040761255538982430492528986910605812064754615049624057961100470165795541181968777503762532003896943559936363650361811663305199008974682144774048070311543969417293278848025976157792370899932357850563955636777178287332147928580138571489839151248311698093176502228959216146271829899980754429643181378178813146836352632003775183421904681883391501717587713912936180869277683176769538269291362917129254843500036994973043685260494653889178423265415743340964697732935413351440260408696461884353794710064191538332400257704171211763987558023367321167346517128449520502762036879122911334279009657958896566492708862523179231370867770012335296244959754688839159413891716323053193762314607831538193891791918610803239689854841797749717018143875201619906696442723838094754131005044277054735563593517999450870287724756917924309617799114943539735176122529230014601460016822574666431440776019321052706430184124082479246317186486533365161156388052756163034365617247132597752304953177089073305818107326962793508774889323529886347462323352853853877727407637806726304166864883832663858658918695946582052070660719220417919262332445195969144660528708942658858627630069734641749080929108293157802535703894143115225608195549539013266380318795523451532742622115635506785000064030143603781781721354672599137219388814681320730328225235894776195670824865171384823168803551360179211443789551891851517533260186157461403474712105321412575496735159475979666174344301135994349365839151924309188972835744098001962289913684475275384115358097148763736109934497503937976998691992078384051482699644518530327857572851268785826792694960732365573027169920533986607685483483317890738416832891929460820721211672715098319606191273760020360898242727431311410481535317000448915055491975387814875526375322267312242723158404467606264260191840400220092629720816979073201441931528351034866057250891784324551289474953092010901214359145759125714412321236395129775310141180088496352236860983110036686687229865437260654944753384468527728037531721648761436976424586312734635924450602955429391050061564955404906279292306135617754353001855481031041353274675521536232011896283163061530333318518932755214705972997231308613618402535950386149291936449907592651728827335931746890280800928251217791787074239079054470179353082923895331686030681505443158325022826579130645762059685451491786117089792830345719317991360774777455887102142782676657397053629800766875783730397027251495079508359953130900721426481004152655990341618978455633174978340487465110172014217215220106985159806485231859983676546653570677801268827829338893644629419938731947871521304772087465014427380828871506191556647071584071896845133847475843951014419699360129408157429173674175227215042699278136388354449326325655376128845455104476699142612873220870587123171798477271645358929562395880755290125038460232177239785417826780551355598383545665311594390492296323247400294344440159311942321954639772331452799174463370541617228358699754665586670973332419781384528304241865798002776347004797911961354965614540370654328475369908370962533459288601168979348887186898868111746975102958466024829592757907665406650438186099927540580603928903184626374430537204619205698418609071741195454017771678673228944003783201372412826446864389893242241100861143945479922116488947304525631062027843032622685455977548665266845740370024917200610017651485056034441427581934218814043192641819836809456676075848258948433416496574295614492946460403022680902500763888488367052127651950211224493943094378926353283164214671846638626305939524833440625195438887592081698649661682529420179576212569274561598429511721803612786775968118537716059284190943771535923459929653964792665430071080939770655377558952898186964367718619785620682310133779199132875803724006975377532988668526281830664682047006713228583263533259857261765497526579924191376183282442941344319149927512247437884744021604790154431679088457465530607864864016139684974369931159690748299579924707700678407953355517985372005583645179671234369466855096981855155191295088463442019184820440026041993036999185423302249872703622091709050188707014307784629355917042041681802307928832827191375747638556782661488402383193711907211642248852247309645203650527391055375860374852659777416647800759639365028544800626445500047777363626179738357413652239654919362481603018733561909869735070973693298571414292219662687074033506087429819612667060639411575987427979059263862941941776721777242054062462915686482768170572756453356166629331261881464764695072250540110113548254593491518368777605116057896612001224754943139297544287241019865400769582929922313269900447456361910350485098203467763787572710715303150749888364113146468981907147864284683721123074548065103648187613159417968401102048841071192620694304147796085472291995790629064811760443303422791990207584313836007415586177277574351420556462697894277619531999420690510536848329291107141728247602429661265796531106637194662656332302058452406335391611747904688952333930821577243588904600060753803494132163501106407567248378251631292122574921173990236435427229334484563556484188806314081197780661247268319413115514855368095476022977484673480627454156465127737132594295714151627917265130419499009060195736530110548141103680876260730894747794819143715322770564282263626423072913192189044355506226908206919733148535597356866968977876155999340930974836814951374866997195279421251444095555565740253900013746040173046183378113285927010841965585225320714114321876205062850664049726270317154998819883322647179898471464794073438638706381418458134710922866415765590681704945458598317581190843231171031798848531011609250920316812956215580281207539357977508995279656656363784111911511426548893437079236818581833974475559513651503696602633143772877527038541734058045038393828460881936523180765150225891274116624052603189757893877161506079470283174871387929517265704629410596988056820995894979180523327037840939423137214444904092629227507474384858265747592182645502185601835883740744233002624711909876899898032995924099393407770219422250332428849608960795860334795666244654460980771803522137838909148693890151342454693446441990580546455515842864141511783131272747583411755689757674268866649729930210630266608467603312785380466246485337712383831186698682963999693004928667623774648371702976268567704397973606462300422010173271480480913049902558195627476281502945288233693859259032532609506335807824184229276073154783599532579478452187053906420249429050396940828415193167648026774958931090272631088704238087901358962691300284816273714894707798471383010974281119641236554377910612837919697893535867530097260193748019076777730263316935380732603162503470061735088699024892067135979726314666551476207805957017613784221352507991482451887030644930061371773713012687515904697610433906487832737065430684016003671552777635486096215285279859833358548152307259796070566645295629384222208709669626636996877662507699599133147710127775925440909475947073973175733619802119554634058298792139960178663180396407955692159376256201392977025744368431255422174323216242541308566927787727571092617048581504577632568386867994472422359767010145197631153449194576486824160633821855545677100545216347455346022435492125383556707226602610384566826560425094137679758406366755326650209911321851613370226715382432309040264532980107888308469903553206094314084044985905630369554144443170305606176058936247883930721234844861557417733316577892394479859203533434231538997992938018264512761324048804837202362949196611101764548805082237836378142343960564788338296056288124697059646578680242324304452534491919285493576533103299410645609267024550768770007478301964892142802606204386419545159149150097805875274366238395029169832028728893460751393871307576798152515248862516899866583371128608762623156765038078360177989111339463638061402509964724117123107916881738002700493889649270997554078479047371174425968886654213200311486476878163423120583495448090484952893329356490526251617576935178383763658284187596602005077631001929000545932078698282657272025004203047829541530112355378532475898444817631437206162832437609536921906012168629260726192657359630623053409392635616578803493544555028084072364884594377449262387563291859457293463951504872604789617963497382036674344014161393144623680805772252853724659579209761550349385367562353511726099813458016699928518374192662491661871711455251948127780097281753852440419770819085403112540022729058408149677987852247880978948793805383923804006851813312727576265024216072986151592017278093318846492327407104936469259881217127229769806008807743471818151360978017218355882645863112437534982811180409030024520966835560066254246696492528412774614032931308040196144805175981424791561239512963847710386637279768011922814932692086687672615465926636248183446337830955646449242112008657160769367718309375050582016802988520266050058785668640413666547079127805998451552987544469985255029657460845288217054165255342125485754721556025285503615592160009453804408372401459900569489629653268714513585279773196006041302126173419063278443643108764615636329153333816097403109741987056814424799572319454784269330520079112898061202662494843401924390938400442678510508330963810663533195078243257376580214579804023746158191732363020861104139388276321994342861249579470553148596349010452767957428238569862456657136435210270991514392742280091356958482114074112247640547489398269505432531413671975390096717579545307532406908214964621985048938800499512879242700443126185078320412379443206178625610996127166057156086650212584482359870269008684317920434234822205351122521714475975205117092656042313621292597965297243435816594373045073915168410477805911424601170798362595342951712485477060813468435514547618939104663870063642745394985267535964745764202514413775421660769097648215654272702935785427984279114946361582191589838985235730625822372055713470253751539044558330170410913672230571490117567449140988451059161441653123172841355311648364968517457513531737763843118350305716609984929589214184135511833122942615163478349988663743120327029706098913139051571252337698484440199579440337066696877650639704858701553459739815846351992106752609687473113337073985401386392760544513078784659007542930746448472680851589454271229176420812374809479752368199926570595724470027745997073611834547404339211139593995511745058436374124481180703247665620941977979475024744252705837939681359666734249878802051367320630935436463645469366384675505536026942968014659448464543325968855843161018593042085711317172280176719432470794714641046222835818756487229670010338379430462639191320575166167938505288745377158985604679667217492097444999223918601768248670221635992562038850375455787847130354734829299489589085722864409819688407960883842319501341746880622509826891520909362989705424295654164375795561229907510287287307935399170734891964462392412284134578693571581841712140291830724716334525524577614168218066696353645798719788805339496848384438812981368086522823399826454955989381574912632932442633240141468676785646768625462959756775301413728542701665023010796565345608725926518858859383232076386294277277108881313676362686353546315282762306924654829091418546264108468557497863968737613935345331495565123198164436954560626604453665987471197494952692746886269335783194929160153884504002371595492063118057970288171241169026135655424344369189353028889757624454676726179872586163189723414835563641659603393883467891125288671636664016529201588733465572092246981240160555918605328140627055448338846676932575858629534210199384912590452230908466936788970674507723052816179686386403379475122596569660845434118692287101877673324234255365044749634800842429362690691332423770221497023566843708800003585605919755912127271531801326628800115904057964783003073302406640996583860568600237067982754213544731692709777572659171816905531281928090207050004778991385570855920938564343734402332396348441429162603703661400941291763144615659824698570645916207138430558333861177768112889995841167559743527119695988070783657372394883770236050918149785287168887665609909288487450193951922988739044378378384743591776535052002563172336866593409491933257337046769235827659447447860177528858456566851062708045583855546703949467266697148957767719281630122997607534457016786787691921872192205696959906349449798504843951033885520901966175460885646049996256782008159028817264895255068182759631313300705635392381496191716112140242547320107346270427838427194124323161776859193777708005040470142601555168386645830945801269084778324460256104392966346970865844900651174772594089326740899108184996186899633916050411362633327032860799560106828369519782357299131974060393040616537730112393712240585909807533713009535450165402147635122455293552250826476598738798210651538448859504254780921212054192325087054575058091289991424546050810169078190219448159682701618777566926582675763190088185333743399774350170931416253818188064285462004452390100124738470480817162364607715560294383085602954436734772568217074921358983745078937163536614866672160698527331073139876190326300731949364808680828363841084764908027530390207049810877979934256741816801557577327594866164691871166022560520623758093326045145446693163766196643438693310262168496143144461935647420422424479567860971869275720227848226227952320191397896855626077236613564420498050966714179886297566552942738986089966259819993822347965479757557165333400784462483576151687151041602800635724890553517123902474806150520798180721444972496550224413573426240394253497715985172512788043782684729974179306414548820587986098900874505992955420581189274618474521802158378119478629430149661658106422278410816472441074181390597255279177395911869840248900967129647589529586545098571739079478871751884565557443796455929162100156389837965607461643015058861939698119131399608598531853627410066574816989981217072131121390389858305393139139464412300332358455795745700552390014119399960676709372959164829461915569286555178694200339028684433416546601782964562352700257006184677149657248652485575140260628777622044376493709831227218765812428171024151369069921647364985132269493923122319543771890341300528717091011694422252862166200136689883503773419216438778055324938819401813387138024905112970012494076875684872593196964416741978740063792755176321027560005507909172405922560963079806065262385272049873726960457379449623580019593447915164671584681116553119103633581724111355771088402218563536376353180691975603992471911325569059596444430272235102957220363679506922063730146663196137616194258117482219059905142686460478388583613931026284948030482102923413803461150192350899279187131999061235624572269863086067415170576835459895501942788138870882874405911223915098219163905892542249191361114846009566174722311841752747727192338237966361052782744217347121741256777164062089383808473811964663740398563988987697504839791307266292000760452077179887320629443176175695752832815701932025238038006078462378120033595062527589557927207756679364856608083233975098695771966039097193496201306016123503294975798811318233934213843467825960872040078617661701589392216196666470590779439850610862925054090412454295862589231791009223033409787708611902533426356287922024273133694618804540746345738007792163928927801552081727108442835713503478957263560168278214522585938754113341417497376481115409573712379094301666651539034950886115435290672841468678960367766753410106787611018219034342495777600604078484993570813171691439547441973961058114538549912410206878330522434620543268452543324069154508224087878716568757470904585783566749443331906769404689585609908680311965046857114078752498240618051104416351258946803882458645929859347241225293534392872060585145117397994445885482770469249328390924654065121369141176565969089722636793313060750571328722104081052172502070814543571249197773651971384755704147992454564850868291437225257454496484347413750377697997452723494267627764921951484140137444881361883240583516729113923296413215361312245062872224129949126453839179044284693578502789124111468626045080443359511254527811285308711999315295760773104956033248699671146365072277468949992699519676030664555819157980022173301964925387413441664467581911585924193896780400525973636401963552625387309619398691858575769331799389531280341720257118323392243348669098755951503581572781347073006424600807807682892097944454549044827062709783354834993466299632845648247487022940232857812374820869512108389763265685046025334940611100074894361815932782142307166736176154598098484235383079406979959856469777837789383523123773501713712943583102673237325776022414147523321732386763428263781460174535069580011707663877063214534548267799395007794544249893531351673071415307576014330588770806049353104064742836226772504086972367637183060348411591627092889926965185030903300991272778724407634692146180373845821179633216057772236017913996723322880239804601896350377529532180096527826741945619623629096298707157473675724652581508226806026758210856571312517732221253359964666872781691147703088026555599843113445018010305708804917406675078304263523994404808861902411983937018102516445487086123659844929635505570191738768531393963176268259892041117894613684463556364983779340856868088906321416332416264369162105009171872306995954956892331010466868606120607946887394798275903536233881937606852431963386788969559785236247988068617447708214327779107526592161167189523986040932932033849554927722687324904581441600539610159166879420615497435941038297310233042725297683351612252508500200164042369862740204300843417832743530885437413672826800310396342155424563138431474730152132455324783674824773453483120205415944165713325000088128371139447092593746856795971174113640481199841232117147913104020699506675835508574055704752623712232229349802699028035047452175351989379372340345538061708034988120814977698502525265771427042002609627522776033207639176741941489206479836513387671052897678668038059536323553480672449880460060987089354512343482364205057406193764354008419312600930912065740718947832558217323606531086612240820585333771243291347315402172553074312114398125749844688665839344555045249534957259674613717207010276987208228234431665240652188697818527109320997469003582890800615431498434684078846641753278242687495778114392827374728432070149118658648242930568650308390185368826917303038612204631137023962871982032358336743387228376436700843893349926950551910608232990971739733721420199083981515341951240269787007023734516814630180302924905350252029109850324479577521040934527348590189705245497353160401909674082193463385595841544861742168131466531772023109484734526069280474033473283189814031095326408571397331307736347942128783842321053630690675752228241863397814200682882004870182981948248295753640125719707449605539996367045056254255940910584064341158713367151414369809985273434251679823735431277821019417133400863735539887502456586174718080774684461075392398793039474625222159778459497863848103842103985128304534473013272603757162592252068124706270946462627954996383976535054465712002734427873752077475677401441420684004923351025565431216362025710360751812826470321690619110600405181075628240861561704448902248826335200892428300842997310850951212725041006094283596056344166971199972484534113060114416880223322256611740784950630505504664200299199779138849510382556129922695111071557740647640163140486968244887375961338774479692038405869236691236903037270493696477150993597493113846626529952783767197788740159633959571085050430967477753657023079224805772125646734892414301543715384799955359916517946073290534201056649477298759129154749684304507067246608965877337539864515851184306952368185129433302052453214084766184420109224592615473963991887563494284756683921385366820393963680146926262883588034474142912186674565573776599978586487396966503868436479675408001400489706370756640822610381167058364965391610826735542143009743736803656337616118593628164271235672082082505253264476435032371430984556536347324945554363117296647711602105422471753667629186217763588604342383129256611933104556724637359034830639728286425274889884872988813843648553156098678979231353378902944340404813967664693683498605794398802671640558461939812475104269976224331743350251298455278811534430058447085104141892683830732164653015771411073671738993829335857659867371812371408933242061214912433766898141012541795971251499844842123456549988107344299537408992921906173359310037221811710582622038323438030397173705273759132139307605144932858970295841492608149665560523809654706470345220071083263227962348085021570961391656142802048687566446324116625010729690384862564142821833986361163927490184551422014516653905511333393503699074712394871047575755478175052594435852150331755867132796584673256028940885229257734411841741342639486165632976616954057677763660285957966226347620078241854118160631500388013848764139353053502763917276859392247678126898548346539170781888600436380342826771670623287888958470273890245281670211652840427072754486496557575298764023688860566850481888472864307662024068794841813077281791985733139817895809599554041736306179904132906855151372826282511950731082216810069332809684414368696294006287823251533002484740615956137587255801339009962528769499515519375481860441589738729508219933433113280807612312276344438285205775223110900083796083540917561980816035605902907344576062492315511510872808951492878204955451481488872065211397365619854201870533402579380196639740401265646482294161000848897463572896201504433620932003111075228674374230750523692854072650103182284998421078067292294942398494612304764947420274400034574630505389426529190604373393446784189395453133460422979736397080791908457413204525797315444517313812022189765764559321981722771270475887729190138237752891554051059496966256406996515541307750441711101915454629315923404613970721520418767141609043008769754846179028063544919659193141187577812221933524574942769174819474427908384796963654645864095704785049215037969466771112139394505831093803831777782702214296726342345903835198900843735969641422585904275922492811045755063991660971830895454361179080823154116148470016716465125518589730274972139752939915180898994105750361132420697819016190379293330621056084328589113774367124000291227948794935877887313598964594860416321086290859329019949101681742591255585166287498261479539301640024386080412588156792085258061973916489146534103407869300571853944256196467240004546426712382302259797330636449533903182416841736802831552466532347476889668902774261616731214375791981359183137010157605928653434454919339883436215667272395565411639095936837421617242296116103760149094318694028751207431999418402164102822136442957104237127577442205497462251371040529427137006361054701495828684649026124031897886468828394469384046153043837117522643201746616954835383953542337971936266364243393561782592778637637176927132155425444469337258821783974683766223116777427028784889471134004903504245302658442018890247019083117158593500894520386996785434992469653028027771870576700331567859969076114617961188502418738677951988881926830406348220082367125735887277324000904074531106982705309990836581849901683203174446326542084094977175271264253612602471328110112180272283940045564111569262122570691961807134037641797779235733103117465481893136048672353107009595724978194445651424454505059206541346079894325725176653991303842843286299446961270574461875788478203807185150167832468064105291879006574895889003567231422899844474636310936569065433157069030211415304683497233916181791575795148036708035357562156113743044606371367412068349691511425595197755629940586017304560242896363823893476889870113376761143108467685966656773149308723272076631203448145566309435297621737942347253236353322094771585868181203860848980451401393129100091933120181244921466736317938490040218379184322709363300401559207649710431719215346004873087555446986387603714401802709083996376696346586404126114674197946575501425372304100046155104361690104603598547067266243552446258909477952134389409845430182747386019180460618797124408959019768181941442750246820015807733960042084661531017643221004742049086988746435704186431240342921938355400283025846104031216872083955104819413193261838784897931086878589521166712736960360596968126010090827005764728079867784136040477926501033692222786596575308582532761773923941865811270261936284476237568709411309861147840551631502401978515547044192000152671463709117181446463848553249530460291657238631354558091635563147150719829639842869357913155759388376718769039033835993836543928159201430442248052045561553048739560085718691924267210074574696849260415369444435501209063024742159909806876818443409656955687803029853007062825829445257421443018466994289821081455740414999617478953518213054268114876566063179018001950926711524134498550411266776876198669493497240233133800290933952184555883050216885922531782650919534248419744925982122765263093012612471896362664968105240693013342961025405771400252195093584717476498324914069905343530883400742465898986746332136348392031605350138334391157614328780263995647694194281081559516858621122384538707558875038339988288323986402123449991306216255881419340036920551368829389585230631298261622370994008362703450748169920252081490172552062171171366154637323528151099351226902800756374189740558152953428035321471219620701003024307396140468066723650186188986945403296262399376350311812776084098303687036688478445435746107925833198750107622484886091751409619587711684696483786561079815767614429003462407135107613735171513449629733681334913743548706200958623547711742037736117745309094207249543096279699922086431007805223679399521213504048400824495088812325848387160592181361175952573233020063175906881952324397234952192821237345883345241596039781318079558757859780674117581427773675879671232500170661810549061481800907310991756433129098093886912599231385263346968345340193093997578041091303489574398294023504956392943841443150685756199142366726800140010411291625098269922315654719972958016668136863987279933375345822696026289507729110719243443501015264108704722733334800049349081959234404355315445882030009402541348179294148769924325417348835370434886721837674221818830959280841762425846552607507256628607272940235384702423643341639226887447491948292268537913511452641507834081242888154169736690005453770512761040357363013996211882895142331151866446549446399176050410733707008207014140033174070615244250187529211248337244526308236683417972401201436639904282291127280175921152676036296404946042667134080220787742048926084328071065694578499673659664321645767950104454640593049549909218334799938616948147064011009063503706848294616036602013324100473306951201754550678159704246824287412100519975337361570510917095679728537867811334241823206794026184544792463781806593812052002475801223163761872677564470034767111720775075919216386812735534137469140368211505392801938166516740502786618037596094196166597548936883211622058377177885808021659289343756692756425308009891994337120263976235488255950097858018866307792847436987997217744613679542859632980655229455553809300877467814469513366851418925702694852396937241548277979111776558941309712498598592340321231082778122157641971630344946251416006025963489223784897252787785524595467889472051010948931071734735032642568684313456365768583462816941025333487942966205361835468927005332376848593273202669646268525401586226406515956123576865535150189516020075246083541678260115144292910600466551501409408339899916484338894624077402788300754073375563126555443308092009418945304384692337015364947918755498297372598546388139073697259042069829121561925155443238306333356011978183056264396951984023144733005261967247820282975521203348629564773651723366814392833651896441635681329095958619821838026443868054204479143382203471298553492245025181118687931544094610235779764080898846457254964004952657543861073321651236712931218863875344586157955239234810638862976761749173240065896786001780853748979910170251080006273005833912899260722505587982953191328052157335984875830720562000947039909655989247921876291316484438810172089828908336227022103366983736252002682296114044818716984694922094052493065025958746317355290965619623241147214987662951852179848166614904485533754287533915940021472076574180529485673488455332591677971795032148692627155437675431198223439550643508243194287535501610215293691231340663759872396062380184931300321839255736610866430324822332010704557783812122932648655730478275834632698398739749833164239224981540503519783148978723458327581485568385292073567184312049605587012222639332121561901263243419859217027390842657413950091258936278419840864414808714191898098562793110933172199547210628520670968955908247568991671683845563637555114726102964920796734064769016375802143887847856113330792866774419534993773362648913012971642113517034160945256017136389809129606528763624906812321036401352283980961612503715199592537340262324335009857396022644051317156109235415030471160747831810621128115902755998652544663111480007233673576443535496019601359339116962916859679306832960050099166633826623806555286810057879164478905009103933207787675240935040384003699466579013852157088096741035410251090118152719725939337911418782813571787666874299133577624298823677067895289878206208167079669216242723519812269260214097306443332834898194663670085558872977174601752660785948165783312954684106103868326357074813850859497232780329926624301926699820382148663626836431933553695414813357365909552969843875737960150463792053762460227096749401367349228147162858597452533678867488396173824750149032129177413617206067014060542339573317958067923589843433205047546397369365154371079436915293800411168443382344450948110391804469338363753067975391876651421833725345440811681582703401005608637307575374939834345558938211359976580978006755174194881547276138741436141349606117796504138211557828986125088594917196086786059616439212693292782398856485227556550365250585783657162650895365272223290880098271507543606587824646399441928168863463196362862406322023779028145900593906578402308523133621290233891172173773033893920926797356897375861073868817781992925826547896783008176345010529118159552995436091982374081187729872390402217550813436731216464197268267774179325030121859830348318362817939710596448678008638925674610190517709061454976626703449248489399876812888815170307457883238067036379991351497454178760826829102223480552398260155523308973806347360280385180992437157689897444030126147776884476333336736568761653701946854428894217134552906665948643601835951072826680898258468409124551064846843938432019951860826983691544033648301953683092718306173846471044722192804367209225785758067093483189742796215234597906445724427715116928483263465536363443440945386200800819253561493465440755202563964950118883252280240512603373375449323279906159051947446646534719521429233387182765886799551443806964295764269359382534945301526124304046341997727345234264057917836712162222206921563450963766441140729760007096177522759060221146202956788110436476498560950804366704091539595881232791064227149333630919323723560829262367044909171514211148959725259321050293102647462316666700316274757407445255649630435461411349113868866067541711341526979860617597626685107207677981529034841664203212442179720725895900221796221716481107432512259892752132611176416068085474424280420314286887077451176878910617271902350497218949821570473470800207549094825475630705714178348169193153465340481162802324924351109189032202770959444222257114325311323143269169293061009065993324590658696938204119972662055140506613332154507026826824750137364370125252304478386929097833927596372569973187764905225867947487822446980108716032641843071627381918224746958103604185494518446394250750112907535105217895612171822470938599436552479638462624382774331490183177593801915170683275786796881741841392086109525453577318729848868838666668124176180260564209485346122034770199964802065056808850542735487185708446392491513421818883956432636695312551286521799083535277838985908816472707142416046711369454529065421630446632756245211875432310940635928582860239353971894813002428296729013933835685555756812637402578800989240018542615134277528220623999486456053543364280853282352051271510357625047652779826865763661007968984789111453094409455764980409565115818917249262955156618200894641988916910686334690389736435063566954145897158615165495465938655524785780449633724043250036725622019869465950352067832758439732201993262383081357741982388538292311750768935020583373013598490142803190839177762233593777949713798893209124991056360665780177922263950585981653514337333018414075979094877156194165460073178031567103435177634923542399898063839197694058480466264696645142887130001413284818842511951288100475170772383568666084008577794155991011164461655979198706606850777596601212587754760911956462776211285240617154131393468445004886148442890775068514332397803932500982266013747867693369957880727662835725501309283615266723038667650558739714367615125790036220513614368306899166593929598091513425316519092704024834464127642154434228930278271289763494603459030873380590370567634734004214354403603310674270854048966653562777919275299330208868628945171232680154688577898722489872286761211147275075372933215802998766277632075890813266378778215993148217824085400570641001462327688082763593380396613729002180720142767603570045119509837064513616333893701715267545963600909554882891950439971396747406181627673923023177674666977436821571839886772688138557536107678320372282170522994096320530588711542768728154793402799482189969729864762544326800077899306658924350702666434440715747818188323366098433638222258810065960699684591330515527764766922866538087689927641186857498186312047926117398130590894577543464490494952269030252398318775552531437378207506492990174208863429674729600268121188383995320388871307702670487830047383625391536897146154217373329153888788569517145922099669554244857867678413487862507775258267114249337106512752072869455166331512678688132661492783851323527287490832602193465532606107765887659956974469332989090406384457173904186370661966536818548192147202792306652110497190420584268263790262271146642116763578688176947114420139171399123588998054808948988464232070392934444016792424672226707491916523614346100912051588036158475713165455061080490494127868077665554823388134548067709331685688708792915037069435540933033623921870256065668770799397458883402200580309338116667135220464660692872230221555700094142675389770318028542433247808009890183641155814401256973700453024448476430130249997930432408544424288601576059143791949018854471598206423826081235175733690303397979312252105775788681682589267078707558198181415174422981414998901311937226358284478533397999087727475185266821168293058757930298740207820607012900653217970104256980544821087205572559660111953421238306381060751865821228424211662448371330495771665420889799594999587321730823836684808271063878879725704840130966862159168850957520542613147087213853405099931695206792444268172836645369426476736236771335780434903691961959719053610812533428781180849034714856378640955389976192013748161794903263907239744241771941352661865550190961054386791768293818178911709667600774681164643230661208164771544481898146939730593878354743246619298299673820216632790958322781516565321011067091935049527884620025462640612789506676180438857966964323787637862668510085569955831531284851896978682359233519992592336720139523950126621333634205913404949243729501777106203525725464603428494344399992584901423407716905267397881792727337257794760514336609455490961353900715427228714778138044932453921789359309750496911146437895028369254037669107195267061322251592215387506605940354568776617125400861337243857163833539807584699361919418086492411230032602333162130741356173357453269039425405607557003207535575711664413306668628266645783237404884031742872060888682710665104199292931861767626793312088007546190785016907539282223923676341756240386273704464706649356582338591136304641159137937514727998627394810093922708029030007426014718956681670784006631109743520659487219913608544079182958142934638045045433619785303741487382539526344096931937925200857281902028208648428553464421294021534819537106693784678460504491399772386448178094424631744111431445141944140818028394671263450880853778941453493432465405907517637562439194076173856157620243585645702789643736873607749168301634710958742062436191628004052083744702424477477173069695393122840883484965961297451239073382936085270045944830132937786121972479357257466271509011147176408388860552812994796752840252105857262121310523397183258418727901725501085283647678218732077733941305419157717527731162011953719348697609918623622990443745539621398598517959088089808553852577140770748682744643151659183261854844743739677929540148069014483073825333808806049011321699792318825051942195215315550505129411610527556889511195761621900213104813681409878021349877228382079268029154879890931324528102103312468988601921409093608709444168056861436133051672112290648852884598456596866589290841894156189300611602485399531496490982086253177435315009389865318055401938885333675810005788320407976283515583068846377452681956371004962923571949627751597820584439672159552674481131830378301377820024084997254272391819073337507119791726444943746774516505141794244406773715188419162468710045515974408594105977947114113950183892757066710379366093484043290642528322774255809079194362054380817033927075357976775419744292261289542880827657806420414067683046888626432981154394185511467703746446061812743699405941381586122739564166581049059878007222959127141290413746999458562623483739573627859663765067211061966589095387706673520867531623216847766437813452962741716704808779645461445557311445349370537446130145831855360814506697751121204474788575827678046296393329067258052152885689832845057200843438598951700898319315059754621250145233463493881772703015441721820814307516554371063067561044732805171589458160117274526900912312694644624912809041540754991306497450113884904509445407025338903034202442399832408326991797256423759536498022901765268409787613890196927953518609426914589269922589027755411673767620344770537915865616142721337589357013207156059326518931792224041613189136967383770478845068836197243966027081630959709515144130556115827760428544699345809038958255932577411089560592064270503127280167895074659300452340365201797155225404102834439994101636840041158475549324710327447005469346495371739026625748331911140247184059614896558535676050717966413735222133119255298393223400525377129804877857052352118083626821555806275881187752277641849121050748548654658296508676862894109313365036624399465710950171629727976258166791465726566780975604678798014326566668354542874387494490055893400601941124828790844163953340454126736986801883531663878604520892613244041575878107753342445062280290183800936356243386284444312715521020063859313391761906253591335075681831379562227357336462845089741395595997078136894594901972778742007274259467924238132467121367566198771398853791159504269732035538370017425195707483856009026529445981922086152095380324687647136274963343026696074031326923239456369158859474607687615998342695882604188208936789402254908694235354796394461635175052961848955769621400989041073564833314908714378794762439841935613403528426329915351026394215402866543047553215358993115894984223485659713720034977552956750898724577754689765796937763748346292720009230660300130808217543759634276029614845826816383493676136207776921051556156546424939405378839802203856640443826808728240096014067727484787204209131488040563507447122679031704689680248217344923876629058201492419026605661670331119315695167321977669263566911439679766167279041868005047053307637306986692564570680834936862981695197401718403056113417394259384867955359286729186415655039761413031702715323727860110001029200865787380485837577296683755093006287017290029072098262144326583899989260827933084555988013438314183000930805034459763343252701117594040995647057054746052175258255629299188620578760666564672322976536942091671938936242445980122557905323852252738498099746140108424139722946003795559637861842688053010612208207833893835425589396357541127413976806341113834490702220989130264152173275048324616228525596711042095319116307903498707695871733135328108956912366673008160941844672505601677475635646903988903451806633315191626260980073561706376808440075047341724823318723796173637420198316628868986833954920230554841406825362460567682419046174494338145131711407466281544012205003061139864811288221983639134757048211130548290317155994658273372708057463643663651324506470968227364627826731411942699108110894264550991035655807647748880993353211528698483293555181521635720207877081417993511965249261944637042819707281069677472112038818594496103778861282810462939602491727250685687797126337794929243075437055426083811397339143522964842708711365605794466306548227635826581770862517858194959888416744570454567179553928152163084102623685974090591403995055927794499615162309828938004582356703379096444024752223915859458892250913248547378704681404848427554836600567556373324238864903817400786370838028483688978280870069867168287572037654703683591127144732787670932217261938233315332816490482906315826357080681028949206246286749790559948147032700774574413507823577524819611934682493880466923821005592272466098648416894489950431415887466199443392205952741957415553823237271631171206965404462473629006122830963787292258041605049038584457376225329081712122141147006136615269938621944320931188128996199596351914718671815757338816740171495781182385867762751635564549983410236640598708520482537799839821676357456264620750791451505624482049498277606622177355357113978735560819159702375072797740588459233214481666295257447136352407538839832035677910813510537745612191373212041745079873169590878640710790387113700598858304265774692224783900642737495779336966429827599047671823115028050599888440501916263152023591989029488075801655880493013441241079882294698483062580759510546242312141955451190834677194009838193053940740939328521725861251412899285355330980644224530624978700205696773416532571757888740820090098996277840576614972734657030782779587683638655523295524896632713943781476969966985789078182639982601461594754019733150474125996418989215740948182619623119891362456304487854530243940681140049341665717702942839135165371480503608446888991855946628957299967003951935385942540774344625142970524152174431519863701452299700718260640688799784041659746732061616065672726434313304364051105391223759947571449738770143216811417977739245073911267536808664737393723745563818445591420715688691430152684640124649176183368639920048995615398491598380793894584512563778045893228427320513326839075446116867525421417424965139969561690023913175500860608842842452826520995858027721667346133781346909414878203807659165045211826604503649493688443481567955628622821907315722881354411069369869044550440329143715909965464202224812602701183719201509587999571278113631068064883158593678569956800470411783859009777055660246207340199324985191811732422889307324664284139370507106313169790621419676411693860480097463595385080059922160969118466198371108667141103120594763915307675059438290582483560000034072374884165986499078778327078165414874318412192537349100065314188440631112520425256007027297122572669712326216166524888199812120384189335476683510494079240212199617942945616746503326159082274089430460999481660711403493415936916891245188466973615039706223364988313733234900895953900181008423898770633633278307394697225098468814597535508528656945639969596946058188357782071076865217973013977572101855488576267083235570370533111657187682552476337127300824712559934469623394324796709445130553660209004864026617359560339047567202323930796135967649289586609239116698989609518663985103990294435289326605039619630972500307527605132751872104082720827145659938723829830737470127928428073358617032502374515346497452530564420767799747766342990572782477632794993809881657766855269149118593113338996939459794668682940606628045992199856115366060919799480414341342635868818099383430881520053250921448631063162750596463365077786175368902096832894265632464547177347713256014110360093730377538704350306688878944284229207650695096652039527711382659350783520526134139949761315564204402645619622836428675067266234772814499507337356738394016431476318948873530042343787820418083038924651445927773419251309058314796029411745831530062498476810221541856092102406393659310508278535410621075162079157276635334024728479878532308358121613277746151924489265572573060787653179682292544626226551847166649005980218270055022998478008024928021631887674888921538264182128966032249210650946050581002067849354345327531521769466108596451867907578342437929051328029408963805146562394841689771204495666325014687990923325756222696131400357004773414910086105736433737447407229857484141895078548282251850196994718868349602163836773040179944550344094558669990440305648028525217604921083637302011198342589280564201131184100642494341395252572106463630198995426438658684957182635076647458812085557028262170788593279795249449679565989381464895594497376834617308083327794025067375040831013650268639007064354780375451621342534228740699570674580418384047449534061129994800175177458588126182730198433387731404511418195435536098899363933409778295198517584635903183631984075255131017574657192010783026816775339142273585170254152321202599114881565802288656118275529440854797910678670964458152206241908149193125914120055782536523896130593842453836489722473618092178478576590531916862997307452448636569075157086440532521468546415114607677659211938997314247646352222538855710720799901241997631937096744033407318600650159628011715219152532557904911925045777626735119451445274962934188563176755467333763199476338664111598656175713594927866082545464701119025916738603440832502081475321689196188197431555509401373239221599264106934058972918619272921096097193036004712420970003517349055291830791458571672711236558778718767117136768809394960824462192792810423520746361463881991265163224573556013059855857509251558480009418676871729065427199988776383603567168636625818971998343817990563870201312731905387599348994416458002643247004411158084559317935954956414154965672933222189725614339573885790766860633041321584110602824361091804024715285536116920972680076025485302861599530029159707227176820349473075620247009350392750285929470588464431706431783924844520142289130648148622356900983350957454784237011201522279469911854980226285827402128380868261204015677451750335069274271394985254143092308462083739065954482977166795528193335899855646860947197226274669175284143336305696986514970093417137983736731041682446574531069180893598260792428402233265866848384599225156770139517679796190832227495009368916496772751237037546982125374085386811290200636373689230312083791399343953500210086473802184191510539732003548805517159919361162298256883106836545324747138938588197818141721573465669307780594892416509576272112196274785665730642923662145481819021630492784681890404348951217232951921624479538220882749062366807105094604243414444031041109901633743817512038923227956416363255069526175858481037762648744476789762161715238375300625470717562674908266975311670858094634076931912884524508869525293302534772264691111052541204302037598002423050394328255217533260609401363504734613244144303380455321811049358452382855580527250808375251909911238246985858757073681131012592583425903195786805792688778499081615401960604428765310533513650946513005115274069213354601630231975488337241564958871471829045205536454426727539876607280292511540595247786390013345195211522708853393997936094108304144970543189863091399269082813941134636735314496254773080906105612848406907414455279191992428967828797392726503792870128038360724476804108981183575773778452023545607482148629265981430818597320057679648364660651906327985660076068915313973512725969387867508264174531913277826508581794273253692024528227861748934540547413570558618417458014390179037327241211317099012724424983912402125003664345752338761693281064160358519787969735874567112808127657879851326479611550080521276479610902770389143055981033736099829113100557734801813547220138691846684235934898436780554969207601040310455914840264738187127529423377648300161086475133630140945097726499151221782542762542407343763010042147923773647530259697587148270096224441228118064323443318697102795628903505940317575740480320406200434274369064792237033300034203400769847047662904797771837900068196949918348086880698970631851770883369495401839190521926142296831257043653848605087622831247110995628601921638216028888128260212682155224675005370183291861145289977878835287942993996854244396755299666900391025418117031647315551242747602053508081733148866265102607133572451442695875022292829890752537663153231761512953538537540930115068399502092676130199538399421814723609827144494596111349749363140721619492198574473975576147738752107681340146486736327702728202376546086765189136383562592742559961166951801141920943256741818321003436301429412443638817490930320900368323624398551430357607317951961856587676866142378118949740037017101566001530892649147332491861340481596304950358105352151653994639684015183087094043305891988777702674103205246026336427155883067219651131591166963362569222570477649949740047342925913457118575470598430276874552348898770391299037912130404694665747605989614447307030846619308347882270569221884647056698897023918019768922733356153915759076773873446006063262743299970249381443829002824413884851127032542717781749322885823138049790554406756023020169426984918715082062832763853731719544268947518319275832561983892906262855385856659453406998804828251240191953343953595559653376933050517469507509164643423957609006726476029989664745959398416726673831457997044162804139632495852837649573328750362568118121858576083317180434866094276165892695811644075529736859993042870356101118117288707318820361876344795599963800499128115627515912410043392049006864396534757332513176166979294570695891510042295656048727864825101567479522205664912224600061967076416492731351066643858914068392613066013173889694325834405803928765992770230778639312154030750998616991761327022844028345898358397085115912402477337275558911329469470416221943776326390101881363234302572486121239654962264985190006779856081606572274680217423966653536141766629824364674758888435085950816297515421605340311398450692216694403913015466826330687396841448868421804237730521104173210669479716758258380676424965211753851798479270907440268532853154962444727061003489329403306442348858911255370679018815024105302323905749964719521415991230601667842708791244126233814799801826509789862567118281314802550863730815884331785927857563499668165426776339800929734099428218660827033008616169251316298558000197869837585666186977832798352271280932389334701744568756936790454601540888111483232288563754847978659307542195020827092388965621351490791855671689490159858207179811787603824325070165237996599945920231411391544306712165188619798358918729479389274614767011506416958822944231578710759304427279975300172201707020589505595761198044703509901072809853850101120951064685250021570702671559663285686075576448504402354611207623752291477168598108610354676264696590062908680676998158094260157611384319221847827144891288847888702732291026790334261461774081346470326833181987150809510437926993600765395026881817323004833384912989637123940868659023771204567170318506452528389574026409337923718257811500524534991640224817593499572516417218833521955604949263711677478757316676703638480565627925900832422073105119138489925057228437292952615741378472377717407536231057075213173340959825898730026426471997938892306199328083646878068121863823030270491251396044862986891478804051121295051417171221103696368996813557609785794537274662585822663427865668923279823535986787515686801113975255826917243859361204885354050820982216575668375477071757686387734900947680704145556527688198384592363653964809604009819992467903700598269949806003471311950317918991148947065743536503057424189744624948690536119931300800365249972642618516593542279450033162905652648387054749662172893565273957498408648650090894010231698259438455911523837824138830940231624830089250567951252228852529797391757195574617592446341742283746332955899347468100246034782117389587033827977737811102311774626859416264139014061181632394121728590960676618287464126583030562861617338998218921172950425838385193202277356097912329649417010453515388847329726725197900490243187420153502299323279507889784330100896723273479073050930737774053517078948206178206923376988745937619917492119927530944700647703316663587781218682929035820737460224341989483594680654709744217862762918870658798013070244267935185326892248952341019751845444544752300063060283835954108897073234451673842888057315296898853594222024778573915330675540896095847458074821463456056875556263357068243570011022465700643560117283223647665930306035366050757622536995783343993306937934864572782399731293630413702683480908786173722293415544252845530265186511281126531703682367667328629919675508944561842676094061404634652766975398551334946966973125742892378498803623526479425240235142908375650399124490840258745569018491941988936764220129497708661383771182194773050243606803102516836571303732482151956322667991916392103986103637550017242613865797259397244980369323955506199588787976773312300878387505794239681470023788022257549929799323712141560167792743553490372211876374169261771477975182212412583631665939142181153198659995279547785549067649759246717898099113806612716117499636452436738589932101468049427176373055374535376143714966973365651416163534001356649465246645436732971081492139457910696790074019419794366135622417543920860707884392275830496300092929519101341958015310741701873093202826701982067508198263103546172084980244900483116936577949547606340962451049919432124617887075387087090068666592857866935215807447693977895892018922315018792692505562909584896869927176034148279647853989802224789804125497036384000923816944657406327831967192696237974984066614700967803042275420422186316505353276764719632442728232397229536872404387634767133075009336075149473839818601124254180205642556747667735847958732225533894170403596305956860367440583009899327413195926289538943615221377873462573686623971726739209900267245687655301687688798360506794972308423405816331065856868663810802454542841833246448988159874920914033416125432077647696910678485399645686810475965956293322394288635156342046889171892439237512822609276548324907623615025650024891818830255900990599019775655422077806908971614789571198232005756994232581304313151485652707280047405122541923776815479601362188189566353180689243572283195220593620379716437190292893206349640611409386542762901268294905665683633363571710552267036556075713897979573017240504314987024584112293427692469368342609743400940922803166916150794652551149956890974080849947606152544946531782230360883234391158291823728918903056882080064394890653815567694877019394331093730476608763557954532846750105282041520709946353401322245759108100513557527359006942964570430199695031799586573696537036341264766904575045349755044652049810622275854169960618922671715435211134492737331297533457680512105382889926764533254932459661263564857490458823440958066355198317816712192681043778281670303552186107484549574708127761257070924241441445898293840020969866661797925424676823574690626514668495298997204680487041316217346959909898397606672572606300552035018926863033594290729855030603943058471935816928066428677325759124164280348944979209747946366212808181617710687695419290848114122565185044087074384380868007181523756802122997175617331019196769389255964850198682428276114069520783907785351954009364605069278851005869529155936143000628776105887046029676344337358872858547821055649890325796423598842873673695663515758435796282864473713223792452994798149938410640651423473403976845236262810188048831206483990392167272158575316320921804509121362691650632900262301484472993693224693474184144165041762042503108665435028291938981831480515449990150011155048867475745495554534912315186761840017460987762541179623013780468440391608055712703914835481228925355443301739169437482826803353738015895209544859550714086642014625302005966568858502694946508209813902740481406733911412274008699532698371057959600265868862940432851479110108467225439166697305371669451948662242878341099106775916093667345974081716125388264601811389979189120670877444420383543404511658151137373352520269723082741462283647951028820306815140376519495194000302465697079514130853754871257001782229550199445941102664427392408592260212829685766091983181330789028521743983554708788281289240485092771469315423225798009233557387206329757989460181513521369843169416083072382866306242931806312957299284267665816539981219410545473786983344722903410153056512578834321399124378395340884858764957810357232242405860941782291117767503271942729020490991943540903809052663408976135064404085950844524123085985140925172721377660211865643850565060906823802740262956072867788056887981556385200518203301095768051316529977530692174420757561298482506789177565546110500141626799407170441472695596979744853336768109447255222029586180340545423941152214272748265670778796753270319181658354720215234735404171375001430020064966929029689685102739728516371108914006864543925560101992425184250445945037873068592380913209051396348584188608961935295389764461468350502939599485039626981938675822956873454950994894828790805529558123933375734714317234365924285299462917526859541028329650540597126012616426790630448563202651437384035981511516430274803609911821471709816873187071344019335142595865358845254283060708750929513027295260983865365270302152168220780523587270491243806326644026522574324434805439297646763284371203033762757741833257746754716165605629443056483001126090378349293330135275856768927862033505245628729251870160209152445692282198530089199676071594080350498194698563998137343076684234656210899630820511971605884964266373914206788561618235754661324272211485155640645455994058056618679574895536756019997816887857771316305355405258964418626686481303818911143287544143229050928022950688585922460403501733559255895013795898091012131799354222055481654111840223295197959505485977550350563317970472900388777322496394304842471735241671259548034944708201060221945950036032095622957290392604028134287416544718387997583017539337180844651535583812049838808154237938980312490938075607523116877727598981997807135356673053204013708535173009710366486632444298492140761628644489485680341520275637585291124720172145765771342576688139894591603293228406934678723413214208267081006676784068157977457460641217254821184306680531110180632696126507506560651056078082080694125774461312680009975628555863048273239373370354895785285069390458528673429298599916613433189695545455743282464845729026835444773438143952051952184223563415771301684875715037561919358675236401104784075595451724544964054813490216765377227824646145055387994599515296360417857207683678880799178628754694196068600196606451772394643056253978924378450177959192096145208203765112091859851627548958760322166892047729715297005319770124883949810592297214110210032815203940010104302398723473612531325318168039550614087472281166301988523498814263632993870813181484143685540339136591712495761284077144914047820261422961251738638532895830548021683612773857105356974344196341523061029591459793103892038372327060748296080057456559149107913523380963819394173404218215157892758783137834144315332409742621551779245598958018029093465283484908087118836826821369661346133447168076634256578008183212387553792823802589823532458491738294050393730584896208082506413406695491561116393375797264174094903087056523856007870271310631897345719069906739563013265406982904425058562784001217477249176804613251763956227357487768216842049282879014733925614425880705099619343725544149183771637325499592305971821353450419174874755060821353915235535103454903965273429880811513591488878822069661984849567121204602668756815244233967057069376057381277067532557023116821461298115272336366423276075455196630712650148794829339098053212292790195896996672225248100775740518109260074286121209570332654958299289847087463083533274534750160405459075979298749102842851577542431382756461648719214155265253773524426604260699300758885271672256807691241644854207611008245427451899576204488304613708673576326035636567907262353770034768837548778328579995405861021553280761634852091812874395723456238733675669349023222137251035684122593841595221868222808410891852880057537901351797425719889486448539811304308459213193619500352828862777167775562604281860729102045303137054729365812646624941437875734286999799278227901578357666827441507933806901507608654220292562968339260404136565549574787768514796205573983581728317610032075009193106224243677873358083689540094611774769885731817203627182445215457421112883050016773275131530641299937140950165177591281630884556365444358386590119403099660777457765522305113256121714904236211860690389697453684465185826218421520833272047681664127796611670515823799449938160389463514757280346048514247879588057703916135225897515760595958136157333394016807573599415121240641663063942062639572621523529126926343629315708450519526967180767409548719486113644902478862050834646192543342889402709895108169460179576839052376198824517756756411607187766909268024304043548681856095101535100193479305839456472106293326725186657451966032605644488571105729290622524932989556998562203885122495783914121945787099188765248192088337657291560427006883720233766813008199043110454354521781390040713022705044241278659226284597308861967490208040607635171274913776842373027757049339888728148148550464108491956216499089077607669664795786137387958738059013505434034103885478134856263233199106042584286088701181740571545690167538539390722090606441050072069990411066539562329266317794097285747034318282109078309804017554493854182334701841766913379128685913967502128374462536057463084297839770171476241013654107409128463889951894031462506495299003807470205062764033273071828309659315367690898744015505760837012026048180152754681448837103394785721215114456983259337742941337730564002043497567571585628384222314080053023141728562369548304370319829900811576400733370366412411803159090357339064971448187776366970907196511689970437211408090365430328042239981045672647598790290151905796301242303593365125747235890506049025831805956895777793017883349917042868809285944436050421316161732227597474998506231947817143172392483390300717176441613677386218139628137971327348605011290988276130348363298188346412418382002490836745949552914196253762703655961284553718241658428515146636394497482228521208514838411046829408136878002521314211499165713409249294677354310461921194063733541639685293602106589197387509815197189842358808810546039452202955140808681402454681069717492702943281001770862907078740057560871857597478965001677252842581773813643103587845721702789469417027370372821255759073955859781603026560070287167442565220269305774001049807396316614985613510560225149459101940867582732526940394555568767583229085726718389631521601051284044220238282026604338111310356132698702872078978399160899263734379229582266501647919212222108002844295332777216778467358755898337179416608259983544931265509267335986732717800407361177187241066544636463547526808472694089645711406836976290126487368691406613683210036130558499541466723555888690129725238891267480717631556437158797973998485458543087366344890331930643368635224595478477721415124766812872011132839175179467936143910742494889405775760727083861883158109937268960071877096758761564805189661918960667733584470479783824534069401896012271041572389744424921581697563958661392246656633784170402091328354273745121909734641168958136449919293259682288361222085123682609789858690943236407423563110174349033691320640198012151981190950745037836739013160994291080890921170879232560257684664194896379267142227603127342634541690029857196209588142219327117338366898931086908223653227514589547669576713763245649093857423084103932136628147965454757025150940266096309362047111258177440220666405774547479626231998288156341473924981615889772695291308584047347895193489099140732359739634622431469037645266319326895657019100771550484635658556277597304765226390451113321009154899687502170394015396626889684907865291038515594250526082643687372002740969374105330234267171557454028119201530013759607592132878414715391816887382202940125235099177101747951548170650279716076666322069874702017701311531086718878483753740362964074976831090484386859679964757765437748500246341031939054068341408660033489085948914008972544511055606287664459499731480291321345438398133782616897390622433236386307075417880803702190237618494216446488541375538500991667405959781486371857622811840033904435948680688236413269504682335986112392492135062723589453138960222550401890468485357328376896790918794410845803216717818058978990440110178859415380806366673556389597481830952570279874506716858918488618276833251948389378965971854346962618620437836156124091226170690337205904462803343922221416480264978842324205938571294303084146505331532934837347097780233865813656306031913755196747620885261429008175662666638097982877465206535279241674698229035799621305700339052174791774349985551972092440158814127938663709035712443728440932151884048978747183568351499896037306141003821538039764287384937403567415502803210929561810209812452315106495365989679476866506895645990882930791847720419261840638162900573491946207154230236486160814388196110172628843197155696858992815360765376093765364785963088897972686351627794923675397079586301248763233604978388238318416459018811999703602518776819030254729490319676461207555566396914411424721133392992616418841589560417069978799652047144925446103542267554931145333449082045865273572755550088078142196617711616691482595578011016844798982788627686397447677490742487682731671858748196314732590525543442889730853339437362725948561616644867843851971464177586157685382051511733777119674337966802789819985959678680984265396667943002437506417520197918862347767530498529885078468458010614134048675679098405171415718610532514559837162156852167030151217835502928280000000069300984888014273913739391345925364257249467333893232728531881820299015561672009440679588913687381451578377510209112369966503720259107278275603941633946946663901090664535213947118996767844399313371678285981616130997990842836202148625259108699313414979218915709101352713520123717938679001324670484383742182757314553127077042932192819691715242547673345043528414479947273198131374110882340766765075959422409936568990488568287178362106912453870354155841608017693185178890010176388057912526882113618349462710621794625364501316408239960386083155057958229875854546288771076250920005054496414737468008260548097182846812758113548293502763202278905835726459053853152525232790361572206089003292620084327121419005334748584526449945796485215970419412326451508858793932158502944033875499728170589222044963629503687269907344586759309226241428330217910611459743707847091892083818159864823940178923140765157515641882084521288790980231906204938278505500263791005042003885215488949097299340882118585147448220743428579668302359574689920421493858150665138635660417988845982349158815388520179244458242298535209802590436441955312395819342441770357828570894147063091897094346466680198259630739232558712360044277190100267075707429940926495828404470973336086318757307556034947599550965740127929437814861844146165309800056097859382131302463517720125581197402093779373377841202003441811295098270327913916254190532900538041118125072176026619104533948323133200236591535845158916019217692088749156846356690410325203746564629461731671703311969818247022735773895694251120046429235499206997867034238834360898763770637401962089986977505503343048371746932244663442640090888823222889187011475607417958979769975699888074084919167361430242726408362081348173741371012260192390782404978566706551099237471025813351681267666376604113536180976900249845320712305876183539112742519549989319622127272374131878535300061716458444726296214129018507483148962056381410987793691454627925153089279888471033112665385061379075110408822792380777815423883236609065044673064353435211390116891685589611537889363512869408278931649197601404154642876976250238925574138365906702505014450992210208760595303919475010333296081356941886765504295778763675490006175837511336464676623752437914033401298416246358192523154308076087568570161940590747478503034979123918525537120869399043838780679754027391810478549442323803678893317332460243591093896310409983543587128187913393003642893216926341860277858906366272099023819742358198135964248055498367504444027521757983559722479680974273366747971926222673222093938924974063369563525574200210289551685258337221894561420946175171498172203944813585429247407576466040735542757209805931869026437244678007205222162942563543671859883524098346267577128480145294434855856090220466424769977982046059500882257839810594421290649661378357416415113346706825695907372708657310709591717349089534606098384662416087974168491081081367833015928326809603817756435447700217716116946652525583396194713995103191921079295988178910650471244855419098035378518285126583684777947989746574112445498986081925887816787508143064575862500866801214801066331455758269797335935945801361545272124846986554180180633583509617915525307016567025560054747049890248959777844365850199183615381197992096870074843689738903395349485943817420743972161453101520614131460448875845103354914560797738886545868117598273277715624254866857847583044759176648386795475294665586835956000185269657028518922630761829423446132008924259443427638697395672629628699206180914676980593606581095056089082277698326839204664162340459714164175516674360541808450152549420355669366565063373386615518582550730131724658167620433971437889575392922155567372992666844055432165266765856626352368045749192559936090142870395569078729560365975399234515009690179564090554852534036725071828078744660753311404865514887885516622858009201194564207961656646045432998590429522235957202035236744614985369419072504441825693952100833057955402023344178754218074153460684512114174957574085307814216594937089900237095361676077142853006908579402297826398738690169012799615733857284612942462544942693843905012732722845788201500387735414194832021057604259545748348613454804957546448095306263418771225596018443046122111576621414723919503328178553285748740124392586316338083725844567300096795630077995856232057407036815712529487958968388490363163018561841284377543942853921447585330350237330208253221088060730089988909117209852022594853575021367883943117445765767783798885852622951853603702840840556394016747046517503277964555950614458834625831244282117347110799985616777655101828938097555169533823788371921708174086508911234203391469823757967548240443539498917567202636424793953313363351417359193190538725580213776926475745387670019891685573742065611140394671650538994662421290334371924009192594254808687102265419118058590137561549950797195683699903857017703217321977991463259818956380016017875632811038603902814765469086871945442855453560180771725453700743430024219213304689904875919469876530688148854992787842037962765733508702542214013151139710899058718364984053835542267403408934943962251541099045191582600421025899399241016138153009207587220106079722304663542738922274325744186969221020658415232587463877751131152378913150228908142593040856826049259791059953454695854273673056027663442994417785025677057697794905343090159879705993783456966598611666586101014496042300134037672812025895236909778930658246355894691763522673883181702671398750129324856091807706029142239673128892153079317020733447667661495991719194974252945541713199369628511696692179019537640973261259819759810045222919829601825370339872826572089783567756347767431769895189300242921662325281621845840026580449997404662075489484901509856448967105806585664301801373176338821990465153308351662885492862945337004569667686550026884162942150982350246130699061646795027059626654020693114826603680416727964520480939995717264996539310400989958561832751606187007818356937450938430271373696037181759086493144686733499713154899839098869235111375112236203259289644081967951793488423688546468571875405416807957210259685589715191525419073394827038098346790546580536449267675635848098279945583848558549245203237407319698271724264879047495981355258317333119730837108951934785859440142455837129605755627109181404290417887449520485881433657170000586938736978248711080114281326825208798121862232247707308092718203562371811113121693082746896841738170358985344423009620988739040878425080502016334647467864289538788656819547840717738197245177297731223910004298791249043334427709554279025159110591543884102495513040493085016157907491546776390511962066297916625840704051357709833785885765130096971946398524769946183559650211815962505846385277037232742938846162506683903714932019966581699173383609304171464204835955655750120339261316418038063830519935007521126478849778567697824594534114575180603315935748519329634486348907061828394597769135431965087887447604126083895407661951602945254712716246804358905349910784747822925753029176535289714232065710942031651229258896742673971180643708663374700336908425253269905212833551896309199668219249546538937154084521512410703780914477989008722482058274735555762354007294016577116344473073035563844129622165428023947440998723023418861838388455694675487588748265838985595546229688018273785051608006489701485035312080092850805720191631387310219900128664832332636632156999256162223775243697726437555844262338608318387418097327955518240759279587250528070061558718866182188245413767528505224802329562392904210365659670521762125108837863855424802441783236858698736872186792358566718867629886153511691086517402444264865575781041604727568835030249155557084107233118544131903864334418150273989686407979784607471896845756082105295888489284779538189266643136196173329366761850290292820316015764974517780123415084492153602502371384567264072978837911663838571509647418859337835878024001508217250835720913902266643365677815498247374988078403832015607429302005447875655789636133056698959115112479097948324293153361492689428382609754608699883134537619616024014791148630540095983053610013950440597987282997861663049151597162537825768118301620852127001461383238877715559754469342440760454544964678491013293942580110507144537561343718459557234214957597810164061232492658858637794494188202394407648721952100774779014083133864083161516227790034436727909513785462407060784783219764189213974427413614325533124199053089878894364963748406472572534029665447007427790511126356605543766036936943155647287269432432669491046475367440197521719770493660620743988106635411651081395125349722705515175751577060881391058592554795852057226309279973502368092328105858922930354100847630903358103688954893140708835876994920431225749080183684657236391412004806680876673614407654516285883131691797426156865409107932086966428882686298996564465896641808438072766493123220840800211804711250299438302375093103773393352288312793792536668033793807702999639763357428999581643736549882678274770718148075927843426175981155952735162597204266399354115835611604363795230287499051206877175901247564917049780678984006528774999700982205242690162451399309608047577056085841045275101529092259821678482402432125371772893303696249923241214206644477970705322778327560110344363049441819077970581607964786760917354529716072724362527136510433063531203469741879613424494618660002568879481919213936453922459623899481609892605420366947029867364895972013809150737636476794855304261580639983185956201415293013892816297069607923227087934830574208595888141974094427612998312440578643035127328954911217021864976488790552382645972684908806607912866228487555588107322038709837505024515597578607648460801826650264406224877571571886475493486983589683409450196735230993842910273246887803384874360469018825119974640988590064745930443899905579018320949351073218401524778082527917986470769696032371135617101725515204835681997531357294062594955049036180266738443018861511597823241136892750036521081234960347022895611052883191565291053013463364473530677695627081385044862354330897221454416617261047677799950797303289727591864949071483408863398712237720634915259132077416765511099654506898523046150605810999626938448827717323923290704261141525086316496324890638886048312949337953146238715846617933118827480933876489875899729907095182692722249664492291404769675863379085701145193135697763438822166496018395982026593045038340095499367120159649967490337229823858402298755398728573667511379006105010056104450482904120904976099201483810531144973957725997406808016953091870239356286237561784156382636173228009617589271960598611764426487113966192726710025691248743750943864886098375058081540122404889197503584140464953267842286408993465270089158403051534507817041948494493433284480033602002014451675129601654311358662226664102666251065198729527287452599877054570328227705615772575373888589203102598141950555774133384439655975481418789992446943711693045488867459675354306914378929724930022676961392545925732048081390523160675674901019018483829649677484359548483748034713014115545930117654331580340950153699583478651265759561843293662595015712569089158266158502805124338161183047124912673782397081734750496556347178261718475154468706484285690962837335311163034748411565496893065362966011581783640095871454282924581913000621139557900376006194806666844593941429250228637939615770445917710637086670768899822772853215529184405403532235829026986772159360825725116809540894364264518860139594901448626239508552045522888939012510679868174522174836379827024410556323140409010379747447235211181410724703707613700333800697866149174462588642729400052058870799455091664014884319934000471458691158929095085105380481930817403579570455584974229885225751945711230430280723628540213988419976551357722054640515154480209159069747042475579646831378379950039694980460798988055588755504808243033354800070981986891764020369371866960207729593527824928565999897157680026960982433080405535484191510098626029362018757264376427511931126408943795930294613720340008406180582702118300654028895917637537407208559137733571237166519492687088427355010892280656929632495167950453401576926030258919340265984318477880662887324385979437536382192524209230290635939320269258879170907487415588834108869028578908747760873666472158949819099020119744008834167955860249528795988528778591862343782188663352988411050770570818032952459045939319494099949434637719227454251028955170506622221602969767284666110567046730953498208666292838365009138742813160195008663943058937921221222685005157257987324540598517137469366740409704006045856331012455728264752369800942466268605866075380916399678893157310829393773739587006170696467105701128702060166358001275056086336934858744383603541393299367845718644920398012836805141706479885435590951540954430212366303727716535071464380839753743581563500644156616006255401568261652176641049455790227415490835941427371947882540071741152703046336652973029993781674834688958483214374123753882994451978627164127232454206473925288562937059957880486626815421590368869695240970910789693913354709964102442461819223750324969149888532285436142994715808958927970856627922729075120564554883522884809160739419546879353598273909014681100990681198357124935976046905681576053527766673924619057259397385293053694696494516918541552364611133493113106793327637935214371298217987847456366596914597410532113028789357251673529122183401480079492291116129048426543860225313731557576805693209362015491607544862681025264276530755645292545433116677082448590178717554008554885275623379395100488056928509342896055415917355459707982593702900505016667874510383842052435926303411832384242513147405877201344904447926457755891904870336447022288969291990556269309496223853180140359726107935093242263439472416966814273749139768079217846248606960596899119581866715753600741082480658865336822259959130821695774929606736684231901513595241090496111253542215003365763296603715475175360122363008050723695971001882645865109977006749393680572288732922316825761808845944037639851262917236455258676566949657563005715920246968190733474631306892338032142439677616073025447148921695694609878860689227513382354592242846070954532733188606187890232659966909560142375821365967300517278691968436495561732864892775432238737327526867531391434294020464732437276821009637610456853990965984741286816659420016119045294955745545657057660502033112474984215026087901282702484513881637546795032618258094535839432848854870103621940680520390718423768580894816706011639466732151618232633711254577899468730926606146312028804341283812016107989069381760311734487486360373620426161791011502955724092594474359372258127550588769408379753564229288534977426279253648841300954674858419731222671693330275803114919906183582100886914749838753520251446735963250285728995689994396654874629589659968656772917080112475319199847234134060706514578490717106176005815990447150761013834173728149712133225127814806834853307172873113519480523342160613716263895320454121627915536476715701057665012008372270340668033769532060275505888441775758446035232756539853791679775624864839520350009153631450982706436173911863025463375097768969201593787010178136902096899573820271209027505036326814372587773243242194977373136232659872756918967543741578684281850383484990532660657725362959793168853072640997701066736926801974317908057784348837163124869321020938029917484585173275147877293222546064114858057793373152292773057505841415569109710321309782437648568213762723533582105667323246502885229650880958487084627715218017852910530434134525432857261718150364525916474400966371595281713780469636369172238711031141821415826281573168434641725010818010450923300815912718443653434680662966003668850104340373151262701982484451862126809172109325149373813488010229429212704108216724398312153403098044578933234444615340731627690418368493260138975213928005206936414327865937494292901624384379141484776408827935248955360281589739754502498000577324170139250375833099865725079408941306680646827840500112552452055755696880137598336919819475578659509944338400148074236792350335114579486927867018335231721522219800527087507652279343565315979556657484224335484532227654984912410354402235004567678424154394637226475575636115895750879416643109801719463268567316387083156381073244099438056245031870190687651650574805244005137386770054053197195586667460805586379616364522785418890824611016834642300018324894558465860352352862162942559166771914808805047554300438290007260194764633450044284592590730885827427155103790609842238685817301356633824903077374975474155596718777851540059913383408628657165815566975878488944944425262620498112605442413137186271851026040403586978197079921086476429860602114949359662624314979035388953975279522320693396152852606958119673230081637366795650574407311699351376369293524184314528332251788196798472517018747598560771771375158530901425298251896445217294051964627074202985723182144361781184846185331661513311898068704420796602170137941861349207341827573940513971118209974790513677859812487396285593402464072821126554005140318076331455267022675092446943502427607345943049301275250236843225470817876366211025974024909701310699500931100962367324504137155891282969002932574247506738548086132457676104609566556613684458919676157156006097909726275244685421414981269080738147961478285531499515051642176186725509582886206688544358140838942066466266798464324788106913888610457794564003210105799484537591347529341723098384562335508784270620963793731720992796446791630462864435104986519346437825365533609576150194674885078922888781353436658517659314016401018391133265922885372830412275047323706029687049987797377518020005293851051620749675187380057245004830454602553714948288864748801222039672780896103552742894857637633571937671320554413400365746168088675958134319946643183917235969324396143059027926273992935610571526265047352962411413494538397143522791804665674458346087033040570593506844736909578232307598706116727746661172079712400640781541783994574064478093149683228572838482988184598604249811684012456314706623426676319677401867485009056223870073328284291108541971617717720007996207237783557252359062548237283992815943322505891502096890646712655571418104929384664633914109264814206907161355098440608372446989896042967146166420360182664330459035637249374058615196532915711237866109558304056223772308524832531638975999625770279570736902000625907374649001240046765990673458662439823184055058702747395877335133613160514958788989152680603651624658892608918598838226075533690518618043102404572300382077400558699278195467956087948698075960808641959542561856851150567966738001683887812209566589869040424588195697814156247509704046955601124135371516090000856280338094151566281691655376985229504608113819159644540801889712671039960021623358050394208851946646100678420469271790746991605687833281137334499679304749537278518036862040521352574538105520534063981356972545035211982741402076869895511989427107543638360722418293588312769675935690354614519377721671340765877564283231258600574844848755930771611273916167721315254178605394950089166842573030440873377432032570586225715000340745427849738936560136977635857199064493717029038490650983639916919812787755877867541150023131527779085041608072315382997256482484233148932185490320155104271486404846385066441938694568502195212197193515648294938018254315025717891566923633835871568524520218713677145801082216984982450432381745357646334141394709627766375200080017139124690931892376149900118591471857873102131034040545342702565003204895958598266633354090234396850442226978709257587575171350856724821144010644866194571762373051679606516069997555468425375628829977446934553863924967394963034744070210318975103167229651752195972192268572575936290212506602159481615598320232650814165476587553995173965555708098545099502353815808415783580608869880378284740094374103047426931209939204998878312382649929905815746864063232656168820373386576561256951267289551665384451394482150780260801908801623671218167356360220970168578508659983936941393171280797619203893763438645970028191660945535765073536092587818209918956092436489228093619649330955980894431466143268294895457339620610947412704524380828816716097827262946384931425458918267134187055830599271277422355162670116234418656693822242766494948440732399673546202472628673712349103282086770160270999199468574156731720145569611739700150453652070574851679526781185092736044040525706133712250718914960059174291849963398752479753827681832145436592951326670436760623664848232272081522551381649838640070016786338097121257646879217833285790789685764098853334058456584650708540911290279041651337527755038525178959828061933748227479420037813595672189206904171418510801238625465425837471665032846290830761763875712582865165987409359059085926835508328589948810161454063879862210994857915707979116813105255010838678904149658072407230776833894732145875157636154452339146230896746108762624816033577314591679546003820800261128668309697195490716339837717433395437340158251879546863409536642104815001811145376295468403443718676849056951728859221684544398254113708669308630680260697166366008941164011324912027495580396127375281370177801321878145621643202419011033159982882131503270180424056350953530440836343090776289490747934691603519856452263697406566526876380924324323188519195050438454424606163869455084868738721921821722185876345032105141951537598423640165109685954721085265644725115298602450642838392057670357314854613413882575624100280275859905126364307027824118635004363133199506989065234013591877208274201396412040550196439479884871160244591445008208302423925272392858062301610036976438251429031505687443316267574590114505865877321383810620515019778907472046011669933722178123486439174022823012268543040502199984962716188499540184554684903316864236903203368443519317431606014418771762341811392778174454994025829469619291759073077380845206673649945713005283851777412175797499458177267116678768131823491281788573083406669383843855209390301717488904066643890593716279148181511041008646263707772067576815557763669475767565724396423357234964943882021295730893268868658309701193210504928229814462731673469579506145215939635145778771548324760601721039444226254825939572152743437672054566805937226573913480073403228732172544412143159533432260700485162175438818907541797607727004173364853922393135522335290158275230734392622118460804065466941513824406317379135305748877819598210556780794423647019701354726574811734261790638877281394059459689961544742236128159382024010786991273538934056499089338566443536247890416295074258587756928806605076226966115105763985221567927702256293506231436378920615423582875081157023363473024781853791192688499583731383803516525067616114501113628830253309705220646503571229123499184297416592688810345977975180264080739852649596994407654101504883711556717868726888459644200711599151518670528964969063879742537475564984996778632627673934561764379647446704918658947199255970581750594772761084735266281389274042699822130435223148700346150054207499816037445455630938078491183166870775179934466806522555940653938481613519547874816530381869478375079968920014518377308793436003732450675258573271784095738130867954308350538816718078403134125039354974176803413660907245905627149988365284079069220582236386915004633608255663983514102999669493665393905369885329631822110743094766403168644841289045554276750879297769709581876871639883957217438335324751415999496712237390195956283632715505600411462910668508860877660510142310890115990703444220279224561553179662982391806636253292270825707131641826398303045905849779081296156074033528534982078682515837615124124319645261319122471477356616100037426304636595553171001181388243767552390934986132588410849153866613242911812474012222175787919321529338909744327502443575539295502839011760189723027957695708962466726447998285279236620933507966825362454681022054669191560662324348265450395933521673191263008723497795579121461111466900328081047911682633626524477240420284317953553304853494633836147986851806056247061008904066858651996197656739289887168915395979467542557838430817315296524051005854870578285086012086978682897794700479501442949096614031260913223151520467203509291689118944708368684012113697879748004502133350433236567627064599531183844316915040285826452029094748238220381681522913827225599874014332788126065825167822521344785809359659862224265140441550884910477198734884976749056823166934881999891232035569457484645008264137701113306961243802993073887579716172872859592843863882242004975973682196908828727211767131914032199995347336755134091669636402502610098927055621045219181993651383804192682577687562851792238619251593320585282846637717718661567158379319945352436246721834043711532624931845842515715061377694907323603858124014350996219778772589905144654042258004697838552464669998501564411017883620574410319631787315300572767216496912347047388414853949306059616713430097955331691683782944805691936744135788897347101715607121225230042225943889569374328005814656416572748958333033932503678912954235411264823223848976462712132499116353230139404679923472258528091326827669750253177307360616380794206074548338326087473126420385086051350993828287796360569615412112696231825989371213949238889582408166127026112136132116281781232965722837486345038233893111434121354153094904138956500381632156254124563955241089486145009910526071995327897056963187099273281748240069978557419120354202502618164613089535180565942539835843277853178697805430541514672480493071307824380091707133631033477034618923041238194264390218211996725753568528274554642585035024285470484737366769320164695124286119750719503478799411214947804793350394485013086894226884850638637880815531433637968719308636484731723939297990769739563114090216893727085840178863041211166972398792218961679598214161129091139874636541897060399289443605180427320569241548216141445660877257903470063484542510373450331379146385172110245609796416158043077269908875268266080810016224088277654046747624586931867576797253028525135167876819474905627003144010662201237992972593896670923797915205252743019024857090307466333363944574721736943588236819089979039844806785914890127008295874946175806549547640058838669871975985923554340920120790992510282759964188726901808751181120187022500358103980150029996161649093759551312551700472171475715202828872069992950474766545247061931337900279213648960974298944200732570609034012222589269449079422885373972210955059756312715615483226966367028434062531345427365459218426336389019620511358019683695255467814860290090213328352950759065101505528947707587278329917109010800380608252654593737862846432986486918722728314610967090149727199528664376557804908782740975142821736643754968754883576259128577531404119163143288112125837594502574656647788717675484081919129165155425736376163640329927504727752420331670222613195772091279703161746430582802302361536861910525739319317890404714085240252973445902880922507537571357306107347130663379599004847133107681561630337054411135103082063248633831655103446822443873236903363536818352481067506871039887828782307219304183013131704900521490620358837061941888978727732138634719261131266762641666266922401012562704133303201381008668822349094919873895657789312787713590273624558461478378485245114960844867803753333745825560136257635686025896661756591580780016876746280690165300953981363940609068584063398535550107828118145913701427673217855523527016509440085163052478504617169644122225835031409234058473827108864508724656450152769432967450952500250368081685617146654836791345115262584327104926656773968881486995596304036742001956059209755891861682020598324370897210425070242228135789333366847011068981693433224143001433492472520513189303070604117546572281030123108860056692349513857773749272658702082177906825007530691718669158000818307955104958906864183409739557074255717413862662870564854763521356389369613513106743786801752156546488054004055161573087258376018961514978395500779837780370199483320753030189673501663490768543768788061281867491876441670469491782592111578509842102315401555372990308144528006999789570551803313296046161143251521035632764770717201537399544428467072957143200696358313495232468133916208712750089302268437635965692475558006367742158003613003262373383590460154732583418848828288031388509582376880079775157234190269596020384448968530887648302544398194300370754416673730515032319365639028103166869223901262058941175945968536981813226658577142624841137589129297482776642087790967199753497556221264489190653175593245166693160105960601321292363596998468895005124321547021700377832526476752190077190121342872704846849685494646722376724088214526806929908235693722745587123774534471509135028187853764714054317188885888614676954643350384891476848709845259512689694230093650726110646636169431477916695239427970875346925329071762498044820552013313008914856623843774723818582885435343548367494737137480879670542598834285787347794425125325181249508243436629475349489344815879848453327963382329007042828755283814493096434794951743815177288339225656007210951757727208927557538395396163865864947660529187519377953185754507325722237171691928524317430192095471576110053582456472046659373504255879315072468746778093768592623262575211154047524928887235778959253933825231155971113515859828489507171728737797736151604185231198664644308878352797991531661502805129493078272832625339636290973816306995919305186956775811734599008968237553870428540097557158185867381009318915615640009140293451258704666537721873936296132120432154031095626287125834207023963632932311655337893925156611906039612994076576026868225769489727224497828663509405531616945222378055958963936091710229185295788785385671556666857522033641408363558463888099746304657854310158313929563387281081118793901306930582280585903389089490812458436888582525511032721914914792841718189204303763399868254498495890783140901486822012095163581309578031102854819865911965561234904577268611524257921382968030229805183095279844580646407069834297618415381897358872432624304639649438287580987518829133775424502912154144053708841055360366833291154212900325291603035689908518446792118861108900605014872519301231707483639123015191940802604383318330718121849500025443922384331280744981330721273046908586294790132025592499142220180113970474303769151668326493318796029076598795859469303352243154874587968320810661978072342922892870653217903158012275204772260071465912557605344154069521542274544248229426578010736125402949320760913108454596739230222550474807643861321406981349159467309099667084782589434934593546760842120072889392518469578073374090839634425488401168078313065310028141860818130358146944110379001788188224247331567241709020749237017058590645929197757668170596165901656358023891266246281202742898702811271983918023204681667881220923247304093050261340619498064770421768987438505601374572711842745128378916837563952148064663051935430730020116162873285802895153978024309948669894383973780957986751768004481224372656740858726519053170121590154709458183600167738886047202119446508816816461903947761954624592882454549763556883522357623792220251917550344394311160407831947309606654933753607035336038797759349437803555950180775070776800530870253029283075865960939513467648520845492138865968879819016052536019600787866529370441072949408258518138540475724200875287097202385948412690255555823538299364571537488008101074157755033137023840762214698004771268111704966884625485908279893452363011404800864700873887362949871179795609924537509326032330770253294306822115425032354609855374208116650246735161828003753900473513274056522179480056199095285199079110310661806693681442971625990782893562403601189662703838906948477490759668530250528604734523339524320973893567814889222403866862636248197603384641142919432363031845002491664973849073409619064021257946504923773384131071503940500162154486398729528689217516499025271348573018540542133430250848900426342677175036753811417645353848132638416435364554342721032091005181013875669751447767465884619425018395456274135333608485482844423359082684361771404763910795539507098812125334928940390733913782260313044004705590309686069735296369567048633949755474315402948995963883158143704592523579885864952690198313490499500463080296864982125998517725390018867438875187730431443363320559313557271324346999942271531901999795833091465460252400923531003261121967653989354139985229970499087827968346425680248754892892348270514530201751983126400985482130172449039981076183774462030949332845094029805173579100478317572363606971611847186039485326464300201761152597090120148170895083401633335881517009692578591805028650680483445421194605350503132438360277462344474879625316053326993173138747454840954967532422291160038285219702211490855787651755886312211556264268657649220052478333316994085750366388418002579408579374709026329363243022781798748324499066990925530033896083826365145395976498891145998583275129802903227534430129366242096672315972146296097322967077110186012572776476701548986720554967515826554564227909788124288150222642548284570642479995979386355543410661462605723803917427321670985599797755067791661342667730988937081169021711199690785271989727388263909904512815317503318814424855692461474083564878119164530341673287590333083788752082144941866297830897636720867890479415920563034726337668567197812831034061280534547266687686382421551954007074128721741250330741402730349644229994050843001810489437568490775126295850095895778116110455889469849187418826076214310307034026350480927003375977143694935929913477835343328143553940850108441643080489499912035152479078978559892384458561215501677540390532166396446905685932431062208142225776379568324820698721292601770607282027213857923087213681483921069409824028592511956778130923056167958345623702802436284314573118707070359385965743124738988075880848261877364876803286056136969376613898129909203874599307610924214450602061960796300182824920118986830946704815197256016828601260293864376093781886420564953423279170718748164086991489933271763906779941242639322426246327745151761695713041948257159791539722275402110110247194812877412048296415588787658480215990967541562634624668591560539088000157308769449390460375869146562489220570677796314271615561876037683598830702692209026181511814343534230522380522496397454951654687008460952484652057581158331344616144662413427157494920485092123020238982827628084824821128998890000044638442010046792544205980148270345433902043468660070511449343956870222774997523410307481163035476702232707141582937498416398518798732949650798549030595629317581732754951976674781045211413314580514945143732567040527667282573425829303007160398637554154750336055598458274607924878668805469234337042491709824358071558470539316387103787307851981527933867991493970688833825634234256342302302525416709606355821644693194762572189958005492587131451606475944592837327249613869974943297096781420476151959430966535929532202564739936445777115800546597094619520024823884008180068324156611504431103028325149265147693607094969453795031874262368738449910065666715832132455646279427179690390658219377817095147418533816124167112831539301121140868563051389380154476619239879640706580647723696703506913217846287298032001045343841388098939184873741642704059650825808912899343989617441583490914905570010666239359753198254096554664297364634975180139746716896089972543437170770103177582253924566535442369108561331885583670353335637814241397453382939779672852775049097757826346404084192426335635573213250505743738791905623725373498712095655497027305313633537294385789446405915305506262673363646125849831308597777716808738890087806483987507237646498768363019201362616569245838823919709880328168659734525039531588195201839882742539881159702407564023264806539874489998578729004317740130641302792056866280143282432420710262674775084678788365759166106698820457814833577678571707604644937647880586968271217682388782883027181168331447803560125911164014286482793814911410300761047304843147402181430833431890491626053580964458303214007098708767266311046313544367262833956255833980679564124571021926414253387839413782584238311896804368062004922795588386401883565806350875177606325378962195673520522136655750027675586469443164321494506134767784397419826574832351489112793827130717898404652445682354402634218666217675451955073376180610488366721861077517501847396626938448695647476619161724924294972894386988810209622019387450177157167514227130944605620437701283075356197041271702856673046018439430605798503718442682486745569551646367692654178886057537350872074171093434848206334650130112903077503900568654646900609370169290115059740758444752259721533039426197264246722465625340800271727417989633688063744839496604671228666910697759292306891136515949683115904527521716590888960737176087571304838205349732944928600305707687117642469702268966845342490275278925979659585818975020908165993748772655308429788615318177707109582320224419949650531486962603432554204802007092008768890985127787169621801915246927326159961841374514152148353861466287270655960868082308209737484525094202690558071544691901768039100038948885448331735610837814677989157807437557389896844222594377911743583501976711819078786664723844408816637773167857591211554571882464442297401954299911447298351823807368054495185120121203561509464775506124843793638949111192685882879593742075884540908643590860299867968756413344649890231313656427125972873416055337752536060317679409199266053862785418422984198441291031457399042413104384216278125259575273060604160618285899834538905975859465356181778417670179718078662573391417125042128206360671134333103904546909518199583778448199562301696626534812018253572534839757341898538478554405284280459510272170109634458371454612587038282744034774880710454948924451099506085010558446834186549563793727420134507821970084264237503287803785144056096963938178708074232681202804726549957401878154323963796854986429042657404515827218425993103014997850056022750268221346531687548958890016111462800041075368228472234309487572049223654698925870708668751441596441049264400900987662928425791510243275514862381238403884070033573577678476890539170806304373325905613236705953377658000207764041334971963137901506325902914197425478785690099862000364479040176885407926728709369728398911300491988712444753234008468619350783246383816994568426490047797530275623332832204101910855036210468727272303584868987873504866840278086297183237328407699422603089480407954737368579034427782883856825300172906420178376656199758952716267705168461627117776959116791516235586752377671110710281095009150928701404249789268279929837529096529500742007582778571071851241584457494428184192900941614932673848726298064517223205453018533417948560186079158013532421841562902821853186945225790877326478461113995214053984891869707787997529214358111554534623567253011625271019364138058348054116707177789691237485273148226975025309263226075930833016735231008688506091509531608226658686707937770797360399069394213145189881640151494107975065234704722915839268727086383257813909769603499232967442771165248351492269176210911654265351104846857119298276116728040770105978716188449555612025943626012918757429796542740846068159507894270406367040011684740078407956430257093937803733214311714407326871980930241672972243504235963606926416555440890930686269040639111871082802852832521381589955634901623157492216714909721263034246687514988274307612689653069146501522701061557165356523233892096903900963543639556695682149513128430837598034412124914678262309105371713424313430023446272875892850409793991049175800100800565700328349207526220876566156060896168724929122846905926582136953511961938671066826944709958295326870796334231915148904381485123525555724080312929606091099895865860333286394117098069245718762004054932404137320721146661694066737630583906813343443788138045686293975554677766882628671286553306059620660281658453574423380328145220889308921108070737171509663448841984280321140287170701940048565866821473399251612602865766701464396640593607337376232701380537178575700885339805750982698238724040281129153057913514297080447551445395228461021898841010861114104247470363832108582825441602939905815440216396272011931492225454491185284135122757278062829950909764271434492876659015642255003832653288701608215936526297827675568770192327474198438847433531512018754481747719137348687563195055836573518718910479521670664960494485528886644086476649971515774877263212894637290767034687724941312949920349551641536796527345986915488186374177097557334770247946044625095255228359943210907023883489014756566842223799483671940807011668743716786293892896076075789182058856926326341506513577565749110529300875480000618165300758224153165535480746614500593067383627880435343690126231502138880859278974907495537147320048991746198291461701026344807789952367251530388081873408343539789416357958710372800885358589763291450791494734517315107024942137249152745902399342854715137905181152075007000724176153679322465401146654067782579021446106479544410020974046068195226132192449882277591838769776824798041121736862530922600007760453625500636882751754015736549332430656362083812406911120803175205809275243886668155405475158489944496000040582982634418980892633626466979179385713177888154530345013870621425662399276284347869996305480502265112251645251839676516588397786253111860802450852321799795671276860415373568161433083701317055674628308675673247536280202429966493882713128562128952515352735471338911129583462881429813538787849104818303353137221779166384742088196579937524206294841432560505698239484568701460610757621576052765105835249197410325639124502704207755930579484132934213731520928793780085757314901634037884905259690874406418341927007049385896238950495530999604550926313985132363023425411984610802297333657337308528121184623122552549802378510287451346859409749784518753005523643013802466190362779863504490676812108647102535642445741614315426346923454226579804613711530941229830707238807258749657082000157220280615981864769782030934673110684418194858025254492501903217658330076275840267709704323767446373418413260118150384939811324997832456821303918281573962696963311720920239834586437609463721664667041433464841394428601372916400306311109276391561255658768354942330875690333041130990076181411405285268839252780981032271496212910167003048339100659471445256521031929204960558573542728873872289628485022735580696786933873313553271246636861606959548517452703133455958061324310558253408477021167706416495491246321871499003877376967424453750581988431493342742361343008548857904009758103947972223783944191770017534236507885450261312293001387003923789567203769311826241687734676486125598413455337991903978025486692956744005764420028828469238773232827976774713163575285448700504006932927818106150884098435549220323988763150695739637051639355684651772946522485491489024581943966885158800640113371976881878310597349733844393424810945951735411636128417492497909692162086493346829720680430774874104399982254873612691666170392514520552109800958782590431329165773572853035754095165865172735843974768428084568557060800289899615156943771042700993219908891122427253104995491494563835795814090572381113656013294566269368984550130598536591125401004114149360538789119172587669616609163293114734339554868696111174539971303656379978652348936160714274098751397039452137795089327129106979899067640841346216970548872391516746243054399836436852745028067203302398009743463776918991395808539599573967906663421098716603084422607383628404592409247156637956178541057094401199199696294939369224634335119333279148014867917152213490336812923121392703038776039305188728249268620607179494044257901293276230861824762704776515109890148490619877220490415213345512311637111867446475656729325022725142440238371243854798765149378969587625333030003357260516485878819784146188135094133981099607427035254449822967449307483611176082487371049552997423200911571132982289516676841589121044509316375702094485314412526112233465289534463625746932456170454812582873914488065468833137302794734103054878272295816564531367885823578282785925293403177910074878970560118559620597455910570593005617946497036164180727823795721734643512756171373630061349459016671664245607397551261327736657281859932190049079132873301532730843361487400178065035256213574421605282206244888393807987635343393556311467856234202757565114173891269014541247922058803724053111141447021275123593171100514606786783397783060440315351496578661029182590936393810937966291248637375770398927190225074876538394402407020099703780131849748151364816794406572086961442542408352884451487476031515393475249566574224301265997914920120386427443967221361139450480231164999886374517542229824349813642450842962444690661502283773766267342132723904208930392201139577560162217557141628596567656322356156821298256603260780139802798252335088002190566527581136922118667220704317428316839462554128238059044586677843812252915535518447205882911862839518878469503003644115235181738337690406033028990437437515570269974145879809950830184255229798397146136854850154777242559498089804020182243665125794295551028763380986241160242043418606915623533057578283168846044103688774749785736010799762189589315988753076794824616529183223853178498709614024649355433433539049677079085049771714051561333720831687040998997846368815425962896080436257213064548363000013233857768784336488660971344780524712391090836174671388412675012528137423649444807948337025693949295147257845225794265424837827272941246075073013781416230365926413467160389273682997655793840668588231763461094581163754304332318169888018459128447507089227452369746140050235208228259469511583668667692787279457614477140201038699592686374648647612084869628841717481663144694736188218280250722722537547881189386976456155842144762118468111533586545271862679537198909299452829384815994197442351899720996563088267176609416332300839658024927043267192936064603171225878012830750138785263713031264665624415166006299610891772768797897914553035637637291281860285168069926875330856201896163188612448406992706995709778293171517503755323977858656349907291591790536773022151450781532301984919064466788903673210452173402373992118757806425236277802274604831309544609843007424064123887579028248395476054376660868332155043199925048844141973088631246870204537336547412564332639125339141517409369962850459946227082662410785997378276975884026470939051923482769599498437786772497360398355387289393333064826531161324127079580587508026887081411526198262673438111384538644327362498063404014569317069817761593564070767562517249991850353022173373374055053482708716260760723889812952166926872417438660555715280355815227567339086834960955995811863753368192582339820566274584150072215379276718839887010472680175400646787422702885722654671691517101312624209904865336959594600779068368328676565246349106102793510382685392561629781799187138081597788985623955116150060574143922472832299560677713965539942336941728950952211099554541261568763245678439028147131142524425521028424753012178799974311122948908766562939342524565811709137522650273322206467370901568719879035597618601234790093448365792218408922187194594938678748758561014856736706149149307260687676406033468488192116703370569683155163332538144357806520476536783401562185306225420538573373594365129743875766473957741226087106766063800124880353806315248764978581650667353231597843477731589228084779200130190881365699092809295145392891078575875772114447140285521749051373315473168255043532641423574869681464723617780040688113152260978689098611921859161513653052763134746304551917780862801644921326805181500691628740972566101521205700332844308578747207988684067726877698724748706855305509785926541211041743457462577927216441553139577241906370055046485701084617183147052939767672082891450987903514989873060183745066904374171928137572051309036740363122643020625762721613997061981292834262872292633834354407834369358697800825855060519271864264697353734257720712104398563470699390323985248940352079484196279666624353015429788312996216606579572765679214202458172828619308152253508930989307181256205244877041954072741291623171527453273702807104696865043811147138185480870373894582312578862529874833137610587404883913690649394216128442875105403305084877560207249147960049434615861512444928881170709339520824571661245696646648451834150098612941166519449791483293542179409918450763661743897871514136889205589651277088757396785578578134778382386771075622788587339931331204169869487014693981944621706812516980077429690537235332524484380607521642941616152209017433457001580434673503874055790763473991227112154407053516285167714403125687419835527765997952035369872638994072528494083054849304207776195729417108233943908587187147578237391774793610572072179389312235734175834676306473479401456618089587638292833800317988837219670756570712497462398415114783860788327445679947335391514566942750227054898222832572111843568131875848854854620978332655314107907509183951580352229419656042901847000092026460647347647454070751910290558312017531056672256081123953472717868477810135665550002867028232061474307875073815558318252324446820873357698670836829560440095926228219520698879341876609429091472231534579640595977831838464021540925082566208450622485211236237579495429465211566976248814795886244875223339709033229692836600636395521045112359403025818761544174481875223913174288578358042484478055823178562139208800644610175535015022278275128665341197281276739836442640288871005217710048419833295239760510357152755587303987058193278097249561615895740197295889944219819391884092979892549732030674821919895002026258369153194704060346137808916690996524922528869325618575180498893822581812676337383426567916989648556710585647988306999735984353359779905100906238335257867962894006956259592195702208517514171601668814205026883727361070246004770609162997391557723377543671782918890220852308744032346123866830712779106724259414858576533650092442085976968360774232518387478230344704692348031930256775663344070286348307729130169705592743214472753056039941741165496408228693689460897147062842987643977322543532670004628302142284074564207891718534010502342023150342735708098938274412721262869328291881164709524302388019626761641095158183572894246390084025124987254187675003156582894224804154273606350560340355513702653862763455235149606067738847496196283787938995066104518163196129059096669067280105432754107826482022344708444701634801626818267560615902369089874913119129520554782035983717869528890987867106820459217637623982535849353777738657801878568507944610775968566353437485980870679295948920507387521201084844851432933622426524962051013044905268305244995177850495833738137670766751866124192330722901632168228979380461656118753679204604916884586542999270763493891439871644004384265653166974131306901477973042326258451211951293134964019792432226105804030704047661758644090530403693015118977560528471934367296102311559529239758995836072720743199399472204638089791185233672060437942333880834017415544888096909347089789594899160717229944615266462793370757609666017909994335433938349384085102453011723860018362118992802062346600984461887378585456450601703378637350564308914842315752972647740478285491009353333977008791746149227989284950721167260594950685424362133852352882621298848130289304937504487916080134906662266250113287724227251883922068910400062543657122744891410914554394515396945080644836809838085865134256442102364518589042363122337996162154824176539423273222231803613367111007835470271618994948396294976018317743374854408067565903625990788955847759838061731463896195537405477205086668498839777994993787458752677142224310691469511110132186817673931994825553852690069922575933958297272848804407027084021430340661480335592876552498481110573394624647562110339512903232596599072239583785357553849617846343883760933256843743614394692377744208807983182839350626471079530691882656866503854199608197240291180671787990848289255560958415910869645027292536117699567932471109418957569353944140098097916381197798433274998668161116159044223314718819148028372185175121173026484168613215343306196544687746034017681674767989692832097912125848527647395829965265895341354350899791149820414365391844010907753562592228110218677693195967366776091153696525243602692094804370779097115560839865721716592106680142521651998930031687992916677618645981038385990583589130446549605823808004381669468433323857056094662929859707634360969968167587832276764477286206768689513003380201391411035377423427892876378430734049545499917243992642869304582435237487163925066152142941575269100841972284968254315167802382707859154218704253300849211228095920637885180323617632135215329107028618253010936028699222481326798403931608621726801691503332109604854012084873404133668906830619316824785815773816778407128548346455356847501704427085862729409838438041279492375488447720748000053348328725967920234833543119116250283764454860032497284355716585114620129501421500382743918138399921675574996270710304116137277096915648489981441019208443000006771129273807148859717114817049505716891198356146821050825708351622846855362485216595763897927055982896908241697557342062499187119962095166957040661826426200786111518102708918251067597186021615459395346003074322944163474037736447743039689663389431069275375867200348442012433003742911978801868719189059481816462629123644837110738976789505704009885682529659605014967363036611362385712944430393407840258963675282418657025814441985095207905706266706583992738233312832606258840103644489590164054825054225352146585065549395760290220016370804050032953401483026641197179764987076765481306432845506225547989958198017784801014514136033122285884491914906826247874478549906567603846421510582785759830202010603531719766667523477147935467453973025769783643883194493898820867536669299016982998279521018769291914693120416860251642644965926600631628043414218963568153740400403643849970758695740863756197067633295981058991794553073215584760275747476669815423825967878114537929574961590374056439273596446979587249260903193681852994465143562320802558424003264914379751786552043277726286934096798002331437172442524811913319986293043132709100529057177020598708646541758004599741315991612508474212264650757920281538549903480774611054648110201064847023448122019452590760658821401150192093071181343660286755345329597817406221452012445508683172190945006031915715883423056968780926116145179810278526866274017781571183246904073809198390654045465645644759044380242079282478097672694599357419355166050350047646995697919590632137690264232275493756367254418865832572700141658204604310381225539632558523490254177146036300339460075534494033665200743589802799723467661052503715771717864751648582209283489381256276122053821386937988922023735111336888170437915670838555409598933544415201396845374383634254139288512979814666129862997646961863751165016068723160511592927172297299435584013400636779336411937440865037030764531482033398844851683030349298374845971137084590978176049787636703992639783241089569072378146157117293452695747733644411000640201420582156328417568220404530412801967195655689067094423715511326701981674502701100042131242374974839888093523763831140084766446394718188869312835196558829627762923620904596029584127078598430733303643644609668837094178950231302352760187680073880198979021194903064729273451416697285775917305166974866146999533695160404444691137417293903292233838364984286972920046420699811369009100620391556530487461143194375998283644141397563265450370635711420430633103993513528288370295960852174084092678725992588031228894427941543052977528741674496548286023920100022553460523973701945859990416090371884859577026408596401039350895763683918420454711206610888185877037402659849620384252827684448540856573187910207462830840248445165683725963377424151641872992218181480850492309046154127412040339029178910649515841504887915892587186415361132033865127557457340652853778948889007809344642930327733238132749901563133131690124870550088194766453273340573659581908796294809295955609472581673632259885619312181107199074922002182350052641030441688863737699747424619382213457251036639605355881407218467040226747059676315875821202806457805039137521899698052702332220186104017454997733905070301049428360566449147135981441896539457451294927474778762010272426119964730477230854510006243064100574491712646129396738031692690429926934673140345994455292646896496691283583461766400736603338152484178209901302220902741704963643454533908009917879584560713996023808413047600029575546107983821104613934286236744584031663632760258988913278094444251591771958696856611465638196413454090137810309912532044696724862031585543919779038954133231814790638312827243307337363558473028943409357390796003954029309662155795570192479118183407257752354941494385260662734402342649239530071972289935534686750281331286012183936845838122259727712121879431595260765517322596716272762877632634273126057550132832057906236562027762596649662456019428020086345730741827946131333070880547519214645037080623007336880463420545405022167165493582850940683160776415810971619446418440888807513200041827716184482898364821261603171344891361529119815716653214411508255306497734107047169117626968858592681298431420835104684843212782033575831894318661621891132788484508135596344072909321496433077496019384575296006695399660399381603207054208812168730139714654306170329222666330473536042126227275058734193410446493336359551845443326315204443088470087257532773427438429259212613687764516699620813330580687975177162228615732132493682751500512411212537294580211343468783633725259816950576601085378563940084284622039334671340185927983194992240721891931526776718808618156791178364214010534056902607544095496169458262047104148126350303667772667157977946353283200598110940491961366972751072856708367544973307790095678968631349786219960998400920591747167235214631823544726847639089870148510139298007740337052508635366635893551339099539601859170203335412707138428082857003738901715589393007471059380058898007183114929171234876274515326160549275158851041097550895053293677562252771032773359951621884100025826898545571552354451082611631304269478691605343308226376903789156207891034390187189911656361506704978432351191561765914162672599641981239802877177094372110801430471789043990870395231230480619414817026655188620227682233692119507939026836279682159053236590119784981319502126107113680214946940350649705606452547476454711626700968018030360729689400768010135723676607797863980225737621970554259767287763455167552311371841905531896915144234153092587898084764396450769636107707160597226642766027084162028913561254230178976081542600031496140854273743919579678052004660790057706740898711010074636453877794292612054659012479481902509746889103441970378896990602816096437830447215431876760405046269862113794421736445447701163455931447986432975504999617176742684470378386145939912112167546764945383183874903539276037564476784643302717638914185860066542255868109785319930952009946898112398599178934062975388708911473394667796111312289752670584079662245384091859243721723094748211268658862851937847442814329626095720885457201176262267844599381156848006052452663963314508313145855030762201872445077607497408488047646460288542047731283258426946618682889268090497403441618259570660517831425299333210902214184628502154078908965669726192099951396926515993585170036366170951302467076282819943800348884734847184213282174326310608219528586690417522457820363052742027627150288471580714648567926871283452664512544763206430563260790360338087235414803045513675995783978380360632034484724680699699473061785411236563609926675662149818416276852151269108037377984959593140162359327618130760390150350474196590376172466723280437090297099274130226619210562470493450441332253484397622854720026177231533452009472303565447906911206420154149638828736790838083653209623483257717261538925975308694147950330647691229012681945271744839898353024645761779611431191827046933290737654035415589293199690022376780239901882226018165711860094312528189107025561838377843619203407208725187157035611571865665146766388183583746103987138058101617443190741859568121056706459173358358437321025005346798283724264171911600426113779956051203856704655797031697300744750741052023541402246211249130771922239781191196212565314762704250305471207167273440710478164723036056639147655512585578683696930247517484194794824929533901161773552362710076725889774004454328041418032939469971748705268580131604923435674362560994053723588641911135213592324061168276908086424088689195159913679457005583509850265944133357413614267139782880340919121356008282027726297959967802272781869436925240892482941965589633776656072670806098287470405563804072311582405294619939997773913418735785606214328552568752396393227354959088210464569887890158068723781153270417757991940762488923203040629386892428777546402668744920979860086388461888670405579817707401003723163306807459010758709173379838290389733146080809426853449258822592256327459771120609821979488173759345348881768211658767434128621752356005610870524968444778427725787724074343772897868302180796279843601982948002063042079596993853983695738612787354382182038408569298298272721003284662558657967027438303195175172898126172383190554500706179742577558551416494633606857489691727353175869648871874125857809249076602528794821361357608368639384827257058425659389933297366405404344340940859819406080105999199099013734034367841959067937518555795201496584471367795049552763144277075533660559778216071447469009958543504743493932397734365008090664622522098855357109647919480315982454767639392984523836947203861957666385759292788851238041841029919175067407530576455526074441872815678773990981025324717122428731420756721752707794811721532962031829925601452208737565231819789476890061991631686745736817988779394477643893264821298225451056412357823752811485994782432248162670862528387659145774562626055293089394265304724982422289836368522908126187916009612003054058779823069581831707154079826517180718716021329279814899689436989919280033062703657719370045692582511226751670955658530055029497734841295706449491098143609287358698467003231845977216359239375594650840897101553351250592289059567003134206310389020554165305316319006517954849962145017190364516225991978983576654490272836491342331594702708406462949244193968144678525831467023421406079481360794814007201167359161163721902904002794606270238439154471500475249333719129621575566142595699658815085140712914911238220104582518699246948364045056140270977076616298645915832914479931860823240962870809740975182429105650942215847829235665041776550184617056556920054105632577085972035387578322390192603409202334565856883137574035327939862632551756500099210126800299026845210161178348611764921737969107360973111801575315784229632719314837110792556405743182888596806654301370013131886662780645237839152453576832274805352309653218201245208616731251255198099395297716727004739708190448029978135223498293763769523609038705676149883612378313681636434773311920124163952697209641657335385891127648009255101822698795461626146679606517474253959441238950792179720980545631560342668972709022786077592919871327508111182927236440252325057289560609173235737530104556761586433508395829668796440051965417803154802783892405676605664142226801343962828722620674732494927419055957685727065697026185114764939341026286154410198251022368043601730086294530255844754683706008904560235473865174351729841682236647534584212644752970553552598623188226507480517234061999184939905315375416957334633213936823549377550612091448064103531976323062594164152476231451947042870084109207571226513584332863660342665830429847812032719047252333329909945835713137820449271249864647781670359921259135667866702892215688576587816196819544124881714951655866902172984672386316608372685238265658091761380650225627328778882200833353297217709432757827454570967282239402986925656573542051429019238774469415313822389386638491199577446671603991728423016522456081332613106532023771827502321684182672708860438898297319591646670581538586485638290519441717840268680044756084883117461580172657966860441002265978472274271760915731198449574339732007872072794852156387700535840674814173512016749735272556724068296221729026487553756576266292508827741410127202764728320898792885388349117411793785496332110438199550182898350253994944095999280992589178318375650691336017848019952582688439118223787398757401026791828964090938315661262795176171216392395371746342859228694937482603004350006630152725201088601995850476208189811188622851198604986523174746222492283881192828297605783950724853892224144638413271449010277282325490513911036746368268745906527309185986503550324211162804946996762616539091897434070091777197718502875952105323759042062648165689435144550855975698181271035424563173849390463954802880675383280999424480148758346510592700048262054023785960729393846094744870118953133396254475143644084038569462012749851935627343516592422413364349442134906204924527424432020485665881480189571063002334754777760453766179025934852627338971031311798603533837829477251849252711694371309944598577453041647176085464387934662551283268333977890047566150901258812634378913117596542750026186868908305311571167188799459462408607993830249909019411824713698696652161382445082077155739719370048302342003230943547264704727670533483230058004837600925332641574943397840821491658472164650285104524666404820716900184282135430193657337447101040727079031175308435246761565816196200040910927420639890198419712932947434940777394486398754033567563659022053176489536201963871222202613331589764899286621204387134641699644429316788714294188167200539232127433643397151093188463204836962480338895129733011086816434967839847525527377458647634559690701319344227926131617417214186928683944860406236002781864825776945841845098792544686652174918625142087742008613593011350006678059209741140960567347522005357848022917981291917737145963456804463141924628759747955609391914226064024619681099536574965483245337811256109055211688083560979352956485369850459509007877619929412726016014077510107462724809001114036299143631485120480212721030695849602398694507828797392384198308264264251254363551255443676127875595354668318118048340497301165424228195398275859767616899927938425382383397331646142859369073943788781884580819612573999494024712356259296501400327870069287429053213128075181613086581235231745424914563787532560258400440841774850557798746181384031656558796462441428775856192922593784857647214552498191427930802174766053642018005264599075509399111744403984475154617043909469735354348607576187428654698144998121342305375252131268729530603555433366005127426486388924592630829038767321562314048973272441577022817367772429731156652601258162688991102812430833017877518009880323787803675240195552566612138259355863230106606395481594885747666366847976675843205459760195863655447179729639769078833202565270557306013486937076342730926310544495007343622368006110735244583556959363750426101519236092706707515199365422069741418616902789994650402839031827181111639358299201317348691388974955388633368241248272393202236941928596791317154625889634216456689496284791405810631939166746642162722407953486200766822083013705530710666593201087580866783968099169734956061443931061436169221392729284768746908591425793898857967492274811377641732047386264498711293594860025993824934587617500497720439943471563599729681288262782975133047880708024226333906917250176662239561830039761609108003347934403227208141751379159053325135568486955773515531213802310630598717019306312225967547560395585890786053746817658372488678100768648493000068551020070654997056358057006313880171378331172827529650814268741420644389002772315509930097704638161410737421755268752943156395551659396562372454353771604309441155141634713944644475009830460574775484104549921831173554867727280309526508214496121656893207516599092860751343437893012782823535547279252904664016094771041448960653199676266538990619478521762812716077765880236520158797594061027192028962169612403019116835077987005288045096784031755396769081888735800025922816670872916865009497115415406130225909586125815266065486444548552864707705065128749333118131975221325451017100558217412507631691858292332745943191584322942121823199549147324715170836538614065221309910354656525608382382136631029498816222219889269938552534533451713112087376527459615749639949227953093322718062006747011999789797465694818151189822051222866098175256392765558517651429944377311043643676218589362262916271788159212096584296398004502563681120902567560905053725554146277039202177863220384136766841429317827747914500113693620858406330481897057027092462597526706857644809412323301387991157942459080495355393006070269021243677862129492236998870853100601207420689109746797649988919255212716437101305898647630690110008986560108999254797851425776623581605519590822120366071420435272019102032813404388656239190154575182739464641676771397422453823355656611138111666106461806857750193789165468186654501689751408726309234538540171227610194403385622922549534532753098840653524844765994143036486856139891221529297088870323358443257615875483381069821178463704595184932123516918155683931686305829516840496054813796095288797407873188313583628338134422449760468063128377545368186953576595038676729187646401566656144807806530268405143370870397604640378050109227882000548377082571541368459037111582264151685863418483141983007877223126498050337012598788627280901747693851950635290242555552073102246024255811157512373589250899353414875887622304405912028109064220896229543174953296703556650378281644653756519558827612035875027067960799024792759520233486130582106293474108314469546497213026088817602535041330281349873239169119008422375627252772884223321866146981190568770577015921398277462498124492130832394143903361498360545868410022513224914080140350662167572895240403368810099918880109428501752086843025782350414006484447531280776781987425124870021095033692000268008698285050476648294883078314814102683572403345120712289233986066747771234789057730944942295818880326035132323681599516227879579926987609851181848471402645595557548593518912796657991541528104292664768273895719965138955738807001084537796110205015504820521616668720996679504436484933107715402453704644642657985548195746820472358360646152103643242693401285386504310018365767739882133294842427065745704046668175908531836933104704098249075212321886660256662241558582202740087892577682967855826728968631406887275733732973494507990523868976016976197375989225894241065112784677219006884442391887101390175103149721834686972705892440099915099800571836875246346206423496061154110715601976651354788760544943670706722867870519143922939670015467097372079742254391281415772161334723389250689421895826336778643286198909532690693028767798195848185100095388226987086899643774281077153566753543708068067761459558512052718844960294427171676799498639424882651817348149937857883302909183114572131856031532820772382701909539896760112887357956913968221748484106152536738897283050018152237070973096946633627571418237099817260548433621921528366284124001708456912455509322835131776043121320779296020844964239123373710840736040771711612949061963328365421490986206688537004243418481530418489167336774018166286597066649038393459316921225242651096315154821996657966622239708414207477587732717845202378316909779479753553652029755261354988525382748154678226231387258096159046921029031110205837852163613115072981962217373909625465044204000976203726568321890985579875148913002145379725837192337614542426058152726629066465439022507929661233902450141009979639659371913234711070490034994407953711175906893479336349504666816397467048901117033112881746087332146924078290065264585404841385522344331867709034473011730072375712954607165187872426880925121187328944898788752298259028430681130818219501686674665799258847531424702220706549810443582048558186330347358207735800592475322717592061479647639723596690925916919601303513854157662934932871929405900784288059604947942886451654694113055564652097355407283549457061389472454797250778899134278196418257797980704530654387643043436647858828887165884818298226810633805676162017369565705761300699315870917244090630285210846913116478010057279598345327106819687251171258682532300847533398350908951622843625245867022756231197311747898792221411516949283793417234156676283034518517746140503774449379004578498911888878807242067898381955533068626323757494156098623936452073549456095907239962770681859095853661786077404910672064663504954283376800510431257597079490367836020923597459923298002108569896322728200861366925670111291483955282417336934867151063269476751449517534115512419259989710754788228137224782291457945827766944601527392115681995544510281805652153096076010326382641183614918817113835413905467264197625593513558938623604046716413195411979240303792769300424720072375113178607565994925829343114878256637413539831403063636564319865885169559464822882000455492276401563778993641139876383621852236554929876689888147308740119752180712302087367165951574385564721054841676425836232481872190780658963774187005647745023752674870657465444042443204350900005451444218991325530225703223021609398365640383043046092332260633967369389843547428604738369001310323666920131449478108663220550170459039916171679763018236138776807693063680223431782113950191169218438937404399566453022798594207740281512200614383875586253980988091198797800933063045099843293830308855698000972819964964570623014670246617872918700531013775643496055140119353395487356895697289731099185015557084425762993379965727165779018541210668527738156608952001307430756175665838395053365239821233960798545659663822409077800459380193531696153301669036591037505014091355391726823172542119950730816209267476605721011532002311727310910924374766240163209588903225008980035359951670131138871013001562320103202073928095745001756972397452082541354467073471943485000130479741025389669315450648622374652459262170974570007678195296828966871140492525138674939637423256467623062576442497530665960603886792535793244826639620268859989085378622431302599775107014920700649932104918684605497475108175005338765684033475401166586157757084319492696690879459691379962722678282818782074595417970839159228293507557250126935540666818523901260639342548623177988788821052209624829881394237456259293266649412838619148107737606335216936626734349195016893126440699489888021345228160668912635573453644314344848899016947007926525793105828217967992144503926109910437272507816810777906338152443784201885785429171615615560217857584609912525802603996337261015550054989777065336348001208897631393641050037391989434218027214256846734831529948760154106635170263456921668430887965822338649307230119786395087712891353490787178912293604216001907572804451292281808974429086676208632542894339642578870847436097500683528201914840796325323789917185364008661973331344037618617966125487077006464417902370750629095391645020330776220153992011175926611811948259266441046047691077846780436186412784866386439633829691344793901397699455524326219238425786356996489584726897969951980022251982568812341497236770158345654804389065718299225940377802131395644870661692163287718285442087942799087213993634357827894443452990306039394908946554838536857282023074134455615806324454900191226990018143971137817391506998748326900481165401561957423942539856979648585118359607331029042185796012759806605925902476055505169604314914843473446997583989061060517476727410040490511538949245103432925299846694337923029301533623442798657497946443874871387828737809128328138171184745532749959406710032039211191255022103528143673822917456158731481346700866851732396746517335941792729318304577138673786574197789697186421651238433238596514785347948897520313648382441231313143123543835057870036115325139934514810385615018129852187626068691610551633469867997118052013444179897175496711884287517195325494562363887284507481282495016708958642150312999822370009167873282998112109044294097475910781815513483085577031619660298468832983639999826129409032487560694729896398286345926351226664681759889934538374423257682229720695819308489601611093404640354811793738227479373437972587282225907159857497402960614455146059175079181217364245215692875577311482977536350834716034213635949983580634046673676355614085721387881307544598772864095023010614949487969535294144448695186522315331732339513995478405778225777025140955792791614526809032189146772493679904736985355088121592400082906659614455227859408393478004660511851501861625873774954875786515923884782895734602338243801931171270261769444292707667276733532600195359290156741305278949805738823461697209514804872097783539308070249052574425422944505020144838972803724872738171804036049790013971794525981089808904578480587086585679501295400036564870018045194795259773607014991123371235082547263033621956701013742786447480270822929795327789871149705744040443923567314681236601056061913815613497715400715460514532029180401656443673146662128103367303914437154179179971021913666441592168524307640122276805029841171000332092835258407147313951125558484782191426483734171959691292962932249273739899568638187139880785550696788583383820496704406197929709972371488096252317403486727107934370142809767595649434147005035570621185329396221819522475650846747152178159738861466260133442284641908617058916237664542207080068259513421015358375332026394241174873069313220971893218334983310777803116089167545227056025169614616662401583513760357636959515578848220954769676468584109392107499830317114258835407091075686606027743551437865364743112640472338074163147527837714624352866815339030152836879779849732106402529591995202033305012376198002096476880675507227145836406368928091105717935701169105025928562953819730606029750288208189724040511260310670944108879048424830554462985990521123928751928229936708084700408562297905245777321498217189625542929395678831366176579694395275594504910831377554333425522849780823501612043200403034020461767609629952457386445111998341547424974661501746213531570457504603956232549463391980344991934182082455350425162047395017462947322348223805158450105467293579252542475233359321201303319156792279823623196202976041208543667193743253339935690984703879868855357522924835858529886112795916806767253356496873441683754737215781293330315151443886751158559839240556367635840400011057502293309302725499313355279409174434147296112003065449539830598439712234907635988885731386754923850042339506980214950221453227133090313569769568090918156084604828171397574470302933063572426106340339162268775803394562390481716468394261188780234255364950290888564445851780763085732321710561068463969712483771826569615409021915823902218528393369406698420267694971989622902307194503312220440589589237230842617594217820097209844996495830903594390506445119474590889740453081056562987874752755203565187353488982267403491600627992919907344029736412436855842051405857358671036623517421988666631442226508604756925128292712592985341076425214987116060298607734599110445125503353995165607148273997520866368595365521717580288064909644066155431034490400995029745289391127129997726303511913698072187673671610257908365578665958092666096302518064977913801156145517227953812171652564834075758711770365162375025792144011250844299485533368794078607048198161899847698623391520738586378499715630785246995907545723608741628816134622702061313789790702266381629964934605857756279508243606243412829516922114473793851179615450022594225168334429471395666202740839302051976512304406850584938871575734258526837440604356580419947806950463554839026354263908004288792322047490967633512129896516344676828602927176438534358410693598673601915078350165288697815544950980944048098786650282810028126064376916881293906330316745974937222792096046224925242655394892116722476911277940018861141005313783759431776877558322118158298207784838990795850991922278895497875837516943724226157021314260685474875260190149836613478718143292311234262049563197512921038279450764688468811431282592706196139391157877167673887343615386357137539512183486366408462829546076053914760860236987305757834561663240883160955857713239668153794511626934930212446832800211277185126032551164338744507099701967141073907113317398716965101084534846729562764699071837617202276348121970944119048665329528494130971969961537645025350219893417789240999518344630456410524682983303628326232484844438424630776155172421762602480089931627580920858836849004589307744838735330475997422825325216545632828565507092822116894393948717629508055253979748652310650169605568855920046698519627239798274746709059219022453235028692034579056524690223091157316529221064791255503405943989634850838005059712495701702346847842182015709619870710292823064358013264842410409613886511473990203368009613129045565909679617975006596558124796341134608566063830872133196854446729696560925393308210307447219012880327442992347201290801129065523350438653883700056784552472744330950823852736107017825243787506986422614399387893289401153854997171723239373398902203546377811645808074765795197069930208185544581163595083239780940027229434903658510472847482108327828320505513804904902837048696099631980564856647824446203901133405336603784338749063194386960103800729555339479222524867324668431708186887246855427231616093591126879569479482262667013094126226888502307514021016006054829214051759026300751093653541461962400734179848540474885348467919116129769417063486306349152332476026038713628281220484112169221084730293049521868605067760280018541774148281698412148558206239090180837110006869110782672498396231412277885622108952607855399530216824318855203036736643579209655459082757297279481639068719074984739339120094597674836193771241104644187246748678741640869392260227357555961385778916618065287882884940510177489908394500432816411168661902123586723214530712669351660816197704838223305206989001947073647160802136765954207769909600220271746718728374952827620923777916091386517737498827375919906838289587292531920455348516648814109216312746013380336436008344742786763096962626947790251579482608648404539374896640201258635699315986122753107010948728810784353819826433327517094094338798640916541656400999103387995828479878310305866909689240866325665807596084922899654327410199801311659037294413836868598177864291576162293513063650442859033907857987296934778881294822052888833245975100803570518307585291702609007183680444953887833008854606676917648954025348782286814743338721866450138983145596662075047572498629987384515801154334668795431216018790482165915642090473711810023533655395956873616997150851646084726047337635093794114494787367345639249420165572268537651749918275538162993065683902056918747329374973118570885846646638962638762029224356111108929123400530279321515116123385969234301573090775190642581403599616929804017508324492760899551207546240568063417806908151238117426223983717090293039406366822366831795792888428891535294737139062433338616460820912547754304318222844543903163403837663010948330925051426680339328371572560343106333939150097363878230452299961783663263843478180046601342363844344679509687494477379888627783053106215679024833086528321499791814168154626077339738640772933936189109810015004992847783095419588717516635173251393706964003469022591575085142101910664609191539156343360285393313720534828103650659392944894836026119828216818345274476552262855024375039382170477374157200223573198474536527913995614196145393483366166741289398651023062872666482532958351737865433175333090775591220632456513872555834824117459373741480688964553908024158934718771308807817333991878452970212695214260280692971267669353884021374381840378513710786458734990283004470914976607599897047244572350791397902793550203970984304748973354194211554110885937257469677799185138101700687476080673049136305061787744290290084217531844156092881816234611764323661648475055273043025652369053323055505398674296115414205379834347089923258946050814243003459009878012880812651701366901524824687505235114099622945103736141751470574578494370349174786548929846047354307704714384793341322821210826950506501249960739008173666509351541038256688523499722740484375543843027255614006475375066215801105383069589204089525186439311328008721970530450189251625432585977895830458747209311365538597084595087125903624010166357321506569764785325614160488850271607436228928949490574845458276226381080993874261062275796841036932953495880344894398082213607953875495201910775107881289457644213240821840641436059135607721195578414849882271697231277764021072995807224197034393037175535930566629501053900767753633676500961390058657439588501683467244748643199151381094128082865289357699869830018779154074601258327259373709512403199851058007112679917447566733715271161114423366130895171761636992847825373336324287332971467757573239120571329641417557503310997958019369293001582080999202034069980954698409674426749515677213511549576642474620515246816384242934062936274686590332032413359333844585730432348224902159831716088537097075910137481636656414956755227391765812338204480823936598743419462711080964145150779051342406278897383428441738973988394186221664805295990722248294621019997206321217095382044230871203635601279970586811338473366310806009935354433865750338711524685290793923315993684314341944073048657697430130556415054206298934992862867639998791959554422529091639882095910841618531398903687401645083632896167649319493292143019833425212814668186713011802878764422161530413119818624549919345235564151728185236282576318233014088052003555282975011341845717137150367345457474470918276741613073533138827408611797581252535343337457450392701923312644269142423172511479602042697073067255788363487974009490323865985954527972473376897644543372366285788054398060576879643682003259330889400952669417182211447505135501015157518828804947232531177422481988135120470488538108649018734575285235754788958582488488720810106020180485369016828850232653210290349589822602747887927114285086719667389764602256820331090851525677299114434494160894794659314687726710245534869730812524313572674289369448311324232546825915835106362889300042059406798917977380121471537013744645489868517248788484157162197396214527849206956821660705978116448953056101061191979434786529574102027832488314617028764667364714499408347763132946435171963781529317057085804255226527865156307914028729666239166648266847164338144258562025052458429156796754625747601044018113001472766011380521731845115851080209681056567075862051483868536859666914206446697056282527640410666012316323076569824265861127504283785596654834190541177367237489184300998366646369537966894762565096527250050773749865563065879067971971934852646832557673893897532872622046013390043314817025738407889537328137241330320719939730168513609887680782774032857107807704023120792471640483945140498237501063964956565848306989805044702356108552765054621627502032944342235509493942310798488132534098714411185139271050902758543917123824295531144313447492306869768111525496655043915872357181598485947198407772654562645414397105273464004751163833831853082208833366950703177052423287939042381524195094320649482330536671597750067151840111529032399654313252901929350639875571934601622912509777848932817794188793688063091118194107159181525550450748807155451442907090795324718304050300558273335216595739551833714601011669283767640469048341256420749233040565753900974720510170890304947887807643257450828864124843514373477408516834957390020468107620288354727330997111644720630239728421346881268560479437270787634798212395509486302239674960792377270598870525611930704341960580739564628349979978464873150489288773651080570211264173805623354105075739854772713839577978236563118302258263855823336811371108055187704427113774172829058301389534491439094084616685826041500015986203778811982315392718664242597992853433479812771177898675069755842488127201645432594800131786531119378408943969038136884390215918078742670910948728893339260890490194507664084050595143152886373858295793814577603216255346809276885385358482913880049867055032801790434627477844218778649294844599316874012515935222558255711779275128839667749688293329011801878138372362870511457285743682773592655371983967626706579759802147082442881192218929743877369837941508653033657510004785899211158012588776139672851939905265641218374878374234748593722618109566685537722313585149200416980595934226298028036850658989583668318908797755940652538030119138743995815238112657989111831749073909241776548021145469441686041314897603162462128849961445739607767050383403541829832877361547593220922555599451025001822166583126209778736372807525985508588635233288955083766489102229471203957120879876500397514608672262248800080643215327835267770301059970134748299930912016660096563055437323690668364149588206004877935893235387037438128969757916663822322021576685485165829937184916994305763806868424320742775576447692806927824770397559771384184965471491482694415458309769057671165632270118971824850363913844628066922797394261489945438590829321770743853919593879223616441824194904591867838442266224519794928245497775405284837958590005372393827072432343865741582946422626012574363987016389814705551246898874550901540598206572803245775751911398537040569286608328047930411262592027705634707183694895186994435747994466224584226357545572654992600396711126004527123536703913515023682296779429896394523652863979262000330286463812405557620367257123112230040694581436883472505823857639903809355784327193576737765374958706724641284014785535465599340718066202592103440911496226021105292290767421912292857778345662450439350739605759485056107725468707481960780969423580258348613853493263720242436302225954938514671956091459955770633768218499009895107261965836150169040894889244392372506266784994001882114750211596581613888412015859101403537576876278868820952109881943499136926256160341867017548274900759800503243155465646392202732367044696347408463414249871971384313556032425641483595658934712189986370907149895415814057910008541738511095955912093069792874520137444797180097878141335546409336504806023926119095654198346925193522050735763747995201327006571390876605523993300288664728649627367131512092860251696422242544327926361494254627101738638378983221813249770370810420813050006555585418288454781705828676009343526750723852196282511012729026942175503080224952755620730670745244316498977663277003275998347665276921595073518408652375985561320479149203059487495915742915089938117568045206924315568675414273367705273492496290319588399753433784183344155805038406447587000166462270854127570256887446854717405522671764352388450453767811692512390659153240077911068444260960456789576834396804676763591028744898193010929144485895104117442118983425679913241512946886489099033080408238978071927363199978927964213343254329920995110748453331889717680412490582944228187556546883170753972694527602162604297087346238005531334309285394322820110308400203648578914023025336548311501687528011392872449608380403845079062737014658485033500243333362317310785288644133572614742489961185804671682035228796637566617690567553751346314002860796348162106360975172008730048660849984820590844981959781835575151958671255143563663197985323716059736023925583968395795533691116862955240443740893145715716211045176941318166142182343308583140464781732680076554727389309352678688687846327844664267950912065404537551509377145124582680183803993494687370829723373691980188192663174713471620299994345290687291556728080891441573537077381543308279610076034685150529029849390848938514380691557127900990390058387548897195185787582488607342243505384693031452849258076282250590791604390789347250497703005959098004937569764736793049741347914791177690009420002777198628466836778350897063416483904278018534381070062373533364194469513157269937864797229684870306882050586793485602577691135154368124221480759612209034781942161984522346746208414429160811016145914789162201140358310927047290498082109729705940683202248060226831702976691317010526994232507659084925455398725294780628414660329092435504698384842061672415525251650182592288571125973779714891508187049982882668856074772269992927649491378166654009975215393644173097901136183306054343076980663578188690584748530994612038956227469991180227137696185529212278957982207812836501187811703143428912613330707745459044698237195688963689211883277798512256121226555575085482042040283269048679617098218382289867210986421783145842683270892701201653096652693730464451106437619414512463088294930440094131050781807720222162358400319537718064326568649019445548735333596013201011526959524402205743900205209048500729107420272176293579532519975486049928126191222809129088683340619048926486791604899792946963428085859150971873951456439429341817715485963522188932367485012692568009900859859766533202870571923250973774925689441064557715873488115852853566686937680244230421443426537356746834752482068047995001918446744421067002592704244813107950760352216124194597229050628843629230566376059811187924892833978543716615298879006021600528354903810971671785394933001560185388785828630931649209606855450051119069741167418757257718751236674666064829036465915467797811723702274046046821980834915129027209487613427721190865662862675334447162434294255372181715048250500875048169117589640613448806751268234583909402377658862852572260030336526909316964586126716018876993774004491821858401966149391532505811667069023217564279692187536826686658805439803787558141267034487646356578595917466874118684512614854444855732056434887522102864678172052110958110837916491710212742154950734757620118587186470466957368278721419827771389324587222208565039318038110356043437556883085526118868439688170125823124774817495337152530401191151898684888834267695142767432588988673583323338270106159420030034239640828348081471987652383655365851448050263097660516783208959947689046391456646598184560209752803611483991150535375173661853000694093136605446912501733921103312405954463287580020138498921883172387185004188309138040800023117672997005886190224531507333324218841093175688634209712504178330265808039673421232100649452705459390416468203103754995782243902660275428856361058770541593171679333152379291597341419780080546094497849375333081683191236482585222737585996818000574212951175936196594408259321301318486584829111470151330201068979347229679063863418558283887801836074994326200637856005500900927174231497707203396132069131924024275976724740823963260244547446558780086236065226343272327109326291257919332266726633970387738699561138152990702828487600483170568446325458471420330613040368936067860211162438065894320751872853905994267519538861182777389879084374186088385228221419538394463252573936228249735309826552210556548009779321536091246661279424601175674976522774542002550246053605003479347009816181766716399981580177798902680256341067631053251074525805194895205519255697267171703148776839345424130233749159309045331327326435963372667200936800286401118123008695881982571324811700714277707010196716994418573200592347731428480050184212116596152469098125714957165978463469349814260082952896249638428987634867439222866648556853479668432102807839331759048310048585765508897584873791946067344955468737094222150766158040258742629468447343240366162053389068406340386547216404019654921059910691768871827747109940297834212917826837682942160952185208092410677311141982802204991028716765227402804689732463814359075374923524293747831664448156147450967333991914025540517046249532235890447699967832570560537401944378184610558715670307158479025873086097728542812755040896401829946874370166950606688059866553350450233474613883461482889786422905838713232366944820786253833437253403903725397119377370455953984369226995631001430160175010964335171315548218614763214913363947962561240187784798219091620426790558129960518907567303231965906515885688886806790482241622380389062442685756622779823916632528991629427759366214727352184368960497974824855156117241041912095904401522621151051631571671322778402933801027982613454314686336423601841617863223753304189536141970749024958675418939782879827963781083962977784267901921517775518277504850437740776840156273461342383371830789310326773914372251858805095626266779533808775100702806196099337094774077364752051866683187608336504827858384909508973646135892544329850056490156967582655420430668212311902860004765516620431364354711325704618830620562005266226040821550920207759441380368940587005761056431310653643241150647421871419871399832961159017698678181214819183441373407803001238485161084592655145235221289236990757104649240734550811193252455600562331549899779338003208568410465676011122225672162425862523503564373145410432098089636311105103396323905018432953494629605598183001916284295385833635563991366701660149216365926619007397396261983481071704024887439955386921575691331763741856873474882860224862604699412012653323538239707933908315612283888506646748574041971439982830535234504915000890682013959719217525804406374133309046430123057787857006171983125424027388324324495597863438807412204563782407071447813891835188376400479869562232211041059166426907380270840340412847315562108440131318469344796672599205445125981873747027908045620216476019873879791998410525225505221149684418625824032433749189492471502678000615500035905892929445208444919349503407813709718243141613218815161938076023079109708971869161922058432579336383822904620607758017201606036060270204260948383487767752148887339068185613313782236648549058181271200346314945200448164008788705736892759700456588192474840969874503295444009865694338400540581914253999209979280531347435544569458713171379269759242744291249315110703686766950832635273826541376972419529652995432515893827490908198593010167839864950523948440330080110652914811478532784287766587595643442241759027993500174568397987254594201124011836578572738829576461168979852606539007551664903242392583896169215756291603994341719358908429447443065340317463290428351492195828866721309552445610183476215926507306022393663666348561776840590323845816964869609324470794227472114102857116057923315773498842816170940217137094397294115139217493791957233420506938631096444292078076016220294782098965131401129651996093694468897759722342759862285108351497392535914525350976750136967723000229577181109079339705888488544734303715022468616453507235492401199402685098566302138328795979919595828755062585952626029440445468252154444182761237489068429671259683237976576126588560888681951106513313944081302069295757070603867964166301049125646889153327661992164073816439165749646714244102342898960505941091543593518489627711180450227226963223974062599855834420812035909362346188336061250184311449345064405814971405194441891799871536394151663264722634810246485670566908682086973597035079967393285988706600663245195391370054854939263127744241608767848948460620453897163442391356898382003437393230586484859044108586195518375554193817665239438361662854105629916029203370916048189477750322279145389083008438114653962112135666818068075829375664768960500003645119825502859055850343975272834275855106539867462194406560719079147930839843355159524892624504968316849517955271456490944368760336267072912098303931921958937960485063052166990543336959935388752290587786068758461416790713030741267017824620534117456944268615837867098529683923004569484505391625851894686241866089521814767517542805363720556025070912643875955051572891629934110323593524162965615073121519248069449909602479228589521437119316912461074234926750315991682262050878081608380533022873766828227579829129673142502051632289830740614413381404987677933447049680987878177784333950530353776616634867908376379391563217386880833722758920495554837725691674087479177386998964153559542662702248186190673109547676713858770712472175570443755294696072605429806682211477085876381579627229216543645222293407960955726047390075122475065998265221123626282221253326371252779427467423192626477948442002816277571291241888445242070446713696096428028949407532476727680593987557692216214386305555289853260101851333109913789499132510837336537343090352432101238341213796421515471778463027723921907611006766817146113988414439589511157273012128979886637800107962540084916889881401513477693917993607855002617577302556406430854966549239622630304806557504400297987854676994680426653485228445542278967196283177402654641504092650042984882889367292347484844908060550276948284005266492708531502247932234073104678670653089444004089843962955714039598315006988930758546904904112435962258413612366228324530145163167185400485687694674952345417732009363254454870690761725405693038144560342230830734464661691676750724121943811547457522205379014104363055360210801368029326663864899710382657391545464488136328537418512981031233967672034981831283365433970840366901830167298934810152088846231160101777197439139608207092713009923101582145717242512803062756265674323791116238500476981850702107351786414552821916445992047340914850967079111651590286007391099286287652011918222973023013137138467047766221259565272478787438749261878837267292734412719308560569158326772198128645914312804880087197064020617015361959160499088673795439966883211753819886686455792275486179145381681809875363696276067892693414896530878511393918970755060634018466451345795727046370709544331466614983284995941667478541022980155887870300164044614136009722613065707406982464483497529994257575582021045111139302083323658911400272508850609873678129401819649301158890817973003236218190127227938026341545941503611685450062854756507728487441593887131878025309375922552575331492509846580739899631304836268341612239388216610969489891777974351005666686980495606555454935995175301960194667536653781107628251653172328291481709583214320648353722623324105723794067531517300218934522498590094775174480395837646667199284362262249974779212216359927512214997980679877482654132663330784808054842489162136521578762902871752373516295304447193579646511320529394938384370973030847181758234712482943361810689276275462829105412803002679875240176534444198073817242024084139760556067419889772116761590237325411964749746700634589012444063926035627016766051065511186667430132395035918943330217048621056001512190845790733658212624325046123775773304136060230983336704161223014718897973310148377831533068271880619052462660350542920572162452600236946751220384583088663908652402161784290042997583800873444752556151874776393786020651869358409928420807430277801152634246113672284377710254921233500755141248030628729508334499861076749246509670507471590459631934678166372007580817439539874594717420193817992152261932921863701835724973257053951736860347388781000240007373697375473488145319076716322654613910003297758687327186048614650026946319600630298046910892803004041013767560225854973979958059966141340583189114683211776998853997730304605912225062443797849456488813880531664517301275322174434616969159671216353943610096087954494051680406417288751771688370411963589062207528489429058990792429472733665139581076803484419758759175033301000971463169280226952903400618681535962257720660906331662660448647315419791433803094479666362635693082815476585482860039943237076388021139252852008304248343732351423288945362493102638173857762741252962282654345152190060199280285443312018517596136888106196057508417275911834757944759153527852922987427678082946214362723480501136413515272900166820035089734777469838416557972951384188402766109510472605800800139811693945878733050246740590402908736477642060492341466706091789036880062775068987704813382301120968400870297441898484046073272031904886641567539464224178012007990799350219200645635923060341669943620700609623046001336487324072788641298181699518141469418389625996931969176052507306748992800442587879546853316285842318386042460087611762107520489977929368690700714601232817128657763739362869973229895938791669808243862169979088867647011309105803648717745391617404533038573834655388575157071027693783072144804930594444843447870650940970377262201027784957033466344019646650259535422031455478276363618896386305891183421347486660119586534130491718643049992837836663455598965524537401963579232718768210796305385614066368871213410881192154882479550533227641695467526500682436817537722112697548088690611008463812793100999755496008786423437295654365960116485469182432022757620663700849801469649777967688782619481696563447335321598556008012555743716404379353866653598506878077943281424055597684130375427927521447505951120057834999997089073810138346326581792836135105186876485489432381716357317016637906913890124306311457966764355057530449854688929392316928732531431003351102991004741751404896463048053327097391902071728237336166187310520015707512596988558528270792563735358188105709933252822151938799536330477340073474011701010005575691850984674995009921552553124445150798424881019861038184006145651206835523865791873056633592082362780706297656306951197598847629176972958643526007102327914015517623449653257094827800687570252630390984680002790455860852212932438433014074882501011261640349024352321010125105124690412056136509780073252395998893648396942860844252200286724823301966615838697106242778242237718449882221767574156141812504137164844488058405699926456949444556471802313382347409587867696990782006225962792707679810991632027338376813294222790141720378694117921598631386060853804314239408319086875444123068940736227912353106107150059708630308181297746477207998107864075685233548984221730387636288757234339938217239469954486174338848477157421049934841737602741785101731110108482212653230665254780044609923460672997881422427429126020254166961509317610218369118574350510633283756357478555025519689721241368421226741430160434535738232076985702136069450631363943107747800504567329855422290753346598568808076263873299054079583875235901021030438250478813197997337504343520493684452223638682227534433988704935800281985745929182248580318833226950382860871424171470290083616180486414012147014786885550063008630989198998383466416721537116421705887979035058393880991455221360846382867811682767480254329338786284188575912638166960773157236716985643395679566559536444136129433888409594282629107753967524372286070729053413868524882463652597600918331122705386799425444331376191734325119117611172011007367717253528361699959527270492087694424079115038295003492957587752810309612879312363738215954157211996589000442507061833414995880525807969465807601363418644833033381072829810682110575845739045464296827685490379402076244473333761725789083710005215494927102011785683552729730967486372211688369524414138380746969012220804192211685729455963511912016137309687951826239223245540958892973747038701222259242206621104132204532164266676148867499372747096195916247525566033219569020320241069579303336411632106445594116080991250000733627321152159451910777704385039846102673659720592359098459060927360804176854203928348562314699162154745950751644023412703708862105807352703437398897316967387203970371899643468288490518115654350340940311397886466780992611129112212794891799717585215282162330983718516868840711201665015469796111386394941782011246675561419524825096349782022175072615862350912634521693285686806123680576331866906830426005610778385465801247236140486123921779309575924351513660258522942790173125878792718846533677444844211347341835235882089118478948640696569950690232215326271641713603934204825614772069524659452783086470880195462844994781422771696773062456600216129444293519884001553506068708228503087268698954312347822524490750866999062430949896129043481702566693485584255075441820982777503079032144532004645762384587681597118793001348373052239746052528545336627072162218211517290577794253723437453178333505628487205490339965111157004720112357790780639687539517503933872395859842639248856379445749970227955368994237661334590168732189633260157463143020742574741340366978028716422677078698621578174863326728725932699962420680750667638509184111092140263164723089827872694377921574355279064123801415850607857822913188250143260863690499557991130663607282193863731160501785849095976042312417525689091941789521056930276587665725456805957434075241470326715469779743601936474814460561214140564210717041825968010769868127675833202778820728398677303576749162121333433457657675465223332966409010319226697105241917152042850263524421917759716069428634285154746610956926078278442446604208429972710523502998961748451883019815011271631693500807550765694612429820505812027804472769015279237258128207591510959810648493458535935389583450354872863126026046853317739964045632759697910497556708472403623087979988737664479169344696131775100569276006825534431656330049232857984223058259026678419831236171336436677787159077854703308750974068823102559685331615139654351294401434745129565584953892406529494180055425412534768321996044313911471470394980665157413768698512306580997518729139001553833771360771258879701399822769284013731450509985232958412755116953273651476183969648657601963947735404923943773428567726457968510538796796812837371094583754123734176664594637571199649705065365574878944959162577768928642460485562613352206803134664117702956943923469945771119929130342995576290869441241393684778955640368577244658163593965612546717995404586849014675504298782541426707239931076280653194952257912021606998110537103822674597900340039185658010575942313794437679930289114285525001462471267922970847295055539392985345357644653535429206010852463762249954279439876977430043388513355668356200075415232432709602707623735524170809634434423496564678504597552414754842095945915630228580726183045743778535489759841152848985616027325035676398136120875250555839187402010238201772737557897031634806809567912209212077881061394018550732374094560106454300627961903412135894817077973563819785176352260989636192754384577936436762953280438753901239235018228796310523491366860566863365748615558759232059303272896618786617817966351649358971880157065546620435375301859637906409350764331540582421596498862412660410104251711508439643244943483659801284346828206770900731877475180408744493809682425826647151177731748156400507290928805926476801127153274305571822488029908115401266212289093163003195634685327533352796931618288340457252420049358984318815672937019478885597142865224724091004408130681971458994772782620171782364671542374594548257076649832882265545431534202408715973518183601327721156878819923184033504999349451310910342791412954588357738421613941226847144321566670182117624690070778041892658496718734418134166609838137304110914316083480589027975894394890022651879907663306560840845352968948179755159332391100150478739753601649497482477819932472250647536979888824420974431873888395115404713935751085099774304402568383919548083759572020612063507893978072279252056195727537203844278446600175175495168791936258622417678009279137238230136246839271041614772296088616334996772165913892593254887215500504239373559813547369542356069767454260451679608719712190718914529113099253535778275931058367952433202072978767972978611858282225068979777515798080896912615525788908384561637187249659496809134838609488016002522266966576751123659040815833033785162643464998855486291867911314880695828744126344732108316578735786744151757151690589933189444271240698313685458183715243683409195567576998479518983397491359571344778198320785413485451421228232530631457689471258068652107203601029761912168997725930425621718977581929141261579495454073509775801299423966087532456951325533123276927102945062769058325843757609734736436002098884032568306514758162537171872003439618660790041953604487422396034615968933827519175816610960876250987368210458044604365533548353125615297075342249100954582172534776816822660609429777759635603003984643856599828536183824620908532494949279769423358319139630970257622855030208879847550900848268243255901931533112097424155457058137265097181942182640182822700321009995399262019504205013163056822995974162846837586987397192484017290095407013533161933349237176680977081016752012698960087340693620349981695752149961868672602850698196329215106616521462054260949168017492834612932494620198270466168289123809350485711364692149532521356034692092838487940025767402577671634684692785793020627991459603562154037561980824848407897619639691611656952722134768474776529292490865631566364834617011265459665761790884699069942644930732489412995864874062019210456796590444365788716651997591364772367505609361185813510518722094518644597600716247536328173076064523382607362115197843691134192468073692749136238541439862694450364175297554698747064761771392279175491185191672727646144571666253064243610867316940085997628511554047252598129397578398687984410195149801616703128686343242723780571769731593059935801456577550636012907418650938369304958911824423156174137111785984460913013762338139354799746733220105390283045345987418323291163519143467575851599757862200889573882493245251683674423236648286708009088073565558709966927016252576295708723166345810760725109254780991703225747459911792061924731262048959599144318155107336345700339355361954751773132335228415166863059067134831766467843095377620619193633428550080146500378293752427921391314360258731619859454785377896642927257204860993455191580184959694305475400673945714968506745909449961492372930434340938324190685428546246570181919274283556027609436084294534437021996811434780157725980395236803754010764515548431638356577160565894859484432765932489535727378632680544386178656454009935075015241159982502445146772547938368845002143074686202490593832552315640213664019134410372584625656428774648737586507490393748228607232010092344567056791327322730301496274933559054084002234356960637415175430986132503869226445780418207257714395073954573632055444525856329608704474025754467963096280143660278314781257084088068391216336257148279076663199373190958103601000569836090391926424430492547606399052630028652028233512556721707809651985985324929393693653545996154477045228982495234072240756305104919534916353804510510616992604485865181688296214640821849588945447736586592741225246077748815074767053220387883243895577171361484441502245162921569115205732581401976688464095778770880867660020726528234168561144560477604668440593579091713692386416277788659069763318277571110141177107834649092512475307161233113967102652929378353923026298416069756662449395160153993458658707196608747701540798637745929248646031816919710412686269461131407175343669749861686516599963391792624690147216049182716018195143665322924465601792189086216799879354734138216010084832783936592550268467195541937897298946226770438037270046249665590394755152883447595413949273028575590195981657099097858607800551791764639395358930366923223603611339971056123808755413527918689135314864855812283882448022861008854864177323071922499331005881021534626543289646472395205291063482027968250560944960810054413305219994592499922919935563733821469028581036311907556561782902094276946912565273749119103461368435152440661488063711304869341687875993546400922898244283952560346243479045889007986079994690658718481690308052507749702079942227862253810715780313337801075459683891932831639534301708619153930013530012118478666729355385649958253175836901532402894895109130938542724404812282044045612963710720151350562651906320562591910043076749096005029543573766322334422063577731703653298210462746498362802066661329472727726232413378041029397644829892527036957405512162361060278643901011120472952521790333643741266363001924485095362653709190662542332339035459234969018278728531930585096639974033796962214323725128220256887352599616281764006540608606644572186546068155954316947779395850087039319007094390363681294223279798937352507343739664060156309130079563566183220184132061141435705215747449436188401409482383169344517896120583752985697201989615350034550539788444217986789451287333981962165428051068202204811004905895965030231309704299435909396224321146857226050710373268013810309028328733780771153335704053082855754824969289450114674505800961234105181142142590580125063037192488798768457211304197065318768079665965735273860590902057607716617859215429293361967542689534071404288493581375387892235337529637481617891871565602922660829974103245189652733737422777797904166471055252366582525845366917485237738925372891406330968842251351804913055086684295615483555028111006915112810110291178761666096063257798549737469135885151343667909383243408401700201474299662849899845430371858213436426910324376712414736638623715994599202174978594489540946173943270774399647083692492594558732044759386331053404168583284997009785382218014039759138529830726663370653051243244533853189791353620025061012218301333526454068697776661447990353937278571754763031409078473403766529942039881918761291675226061969095511941520782235613012401947349125024107710197103306277896617634445756683284519060558062820640590017622123350192282518929953582426439559938808859733525479177899536389057473939026203462447932636546292849812047598076798491514471836351443384158146830355057978925933870464815628834419434651935282738714115123765148721016367165923592552562613288725027880778130690664763567022820412166288711703119038628195052060437309617519583566119946395486054187547307148398323087605985725757241946673007807752258684390788560419252029390690991186444904353814830173850960327247066205131289567286852022271944876211038359005052337185060102048674862104693850558465398147898641486342677430716569823916626278413263902680456708759813536880805578399555902044092079617790658227653902808288685973488867372672444271349233091557850411856832128315502707307360557594065339383197468471037360250681923083400908612657269023158128823179345040195452281895213774841328239495732031647752020658314295345903021777035495175798812741683554954417350206980543658615338387853360594228753286010596268946952542386670520382254338850171239216492975643763845980728753737258576448883606654315444083828174311171726621842575639460139525346201769772717797842713949929396621704556497818482516131124843230962321376449576405394398157651099593329759720590046373856684360047598364310849433819791240164493245950683830522578541180685953147552236064467666825880499089060428729638074233624252104428737878367926114641516170979304010438371091791588233104293691139679751054665409873270418927415232091953978043013431583498118447218211001909646826112270977076199388002982502943418876471668921241975017006021212273398866765771290406306776447002312679094994939986976105060110531175166422837891946418692113723930256530890022973674636701348252542271466055912454550126864271311318247942148510548907503282892317592767192081106444059246581089087508021522099333237951607227728083522884455451529504007778442153288543298360998503229095394391746810677136559581170222937680086997821019828804198527927534810271217214750473080290591934440018482038839941890044838216162556695064418722767020243530449656297648511717539654881897969014706887314613903039469873321127274512909526171998454070245304656083621333219384390781489898978943051085743989420470772705421157702466045057418520493095557173982911057846439129192261823360691136542917289383732730176184789067089621574940949903065009189658438192642174779450180454053439527519513502378502392373846816349863930875026275972643540906105182617327492128385523264701479244715611300999462829068396634421134482898511288319795274667534471010078741053606444492259551725045347962853664308324335618483287846962099653508215456118067504910501993677741330293886102143499028524576161503506874568528039191457741162822544554297675494147554997006501715109359490671717122260449191822061783408505622692599087460411903680208720748386083040032715028003277128110734574949398419501049480798609134174926435902338652472890449243801687501034265238331284589554540757605425206641898067218504557022506789738422009000603418069573634263903436971969486927392704635970412576007858934836686839183114835303023238388768825121417269883190825006269359917624188306282239135951538438452348433440993618071658920415161905252322428559448971749799353067353837164667672797006015429578020130652429041889781734218021943581616971861428785550079141696698521234465336391924996070036104795108675780155853049303473016763557513383236416928374291334071650524719872097310696192818621726745576360598234981180777158042845196248806324129951408417289780340991478603978242626112851133554749089488600818027565583686847057476112802956776733714475367304285555220705001565460429875058639579746025683429092827730051351513671626032058427645849358693895095412522824215501211703870754477333207962931245455058424777431642330679486544665606386450064026331796532194893182501962452976361365089483074285974747782715605488643394220795551148725828731394855396394525832869131310098534141852214261410259560554312321954833181316695404231387577385095449337830351617225531562923762042971484943667479014939245532450577811346138988036826349849504209603392339861775016819879553663692800229761858305977764073611316606196871514906924179401409304395183882897577021436093335838214049253967650566019271694761624873320493000065663278248239242839330051658058859230212383408543487703191050905668283885527960801128167808355393243651793534637991820100000430165280465766547698884652331847388704274916619348198945384284190883434266876741079962420735855903304822449175797393000537580035770434865324842152765409901182481362288357593832776276995605218581905237178494608164847703235881443905940226687990436308080805996977836829918754129990915445608095158701680823689844875189424548107355627210991453175694137742328562124714779425872593622554459296776525784908954539469850858072023484068173233356810216888532321638326550597518191879054197223212242491181403558933662104872616829882283730175359218659096811388285682345135091783112643100114169008288237247195649439509542948106690612912027094574071938474801643734332523105545584042945195921950609074719026490770215208122893646981843904095206019276324274787503723284252621270808318701316251538987459338912168860407495440119281479786671918500727823213259500407718931097768104841515638921276603043000955974511254032846802024561341874889726061120773723439817257503302514678049147173665715706448403470135591882530270845453253641621134057049734996671934375268905061667224999238764231782304888598616379293654057618981539834126425678444749006863691076487271381847170654342232953859484692162198972335737566439401089969432062214196920296509631712940713983261886956149425019203391515304260356097491198613939516732308716221303942249816696072530276919147961071089151348131161657243594405301841137376616931128764281766885230370093948272804645960694227071776149907281130669190177645951065438311666861074900686082099623234395637625561864549094730965106164538747331574416357680921472292282669790377185387594062627541627793633175584958792471824063956403088575498366296561824176225643976420297455260073272853392649093506802717569652336708127050937675718341152475647357260182133958163119929995768650258462723454466921150815544959577208084538728364954529621462921927766340432070707910396113228226482156816292328035176979048483636770155516561335026502963152744554367661974657539657339838998877998015533651881113509988128176468769939338348101254974169995882081856486240915855104646881555758571072859306929610091033399833234982219338942466009429453761676603613774028704416522609947603747917373998924991799660591227939240767840693503470292594100988613364459061247946829714127929232905181586893457765448139892714553214266928377269242607936837667290842551042696323592977787218819982165502313480935300369158475646922598349727025107395988043531114749230889452802981119964315787320608237224973888673148806203972055820880272342762311557364623864133211790119865894757266843717138596543960271495027348535203103723154269082231126565828981598942601656296236445597662263916857601055426999732100595390853953960795234855088998315874724352640793013033108453045873402276305094484336088927228502014719275890862297521119434179892394717653737243691323677639577009826234637186108569394098929760265772665930508170085240157054127614673899978164946542882332735634574428038509484106052151325896716576546117759681109069065222096724683105443506657069638752847632321992218735367972341987180921371547775450931267930751518473057909803656778272043580607431112756864177186946881899192979864403556452473500992987641605591175676834042082915211238991903952916172402252259879157099146680350709819670674137361638190272476779266436043352578438512761490801144635442267026352052927891068285198008785792137766489354140504360991855013710257960147720626066672962150680345502453011527831047000177693980306048047722097971654008112002530986160426692156646350297767856385540484953737347301901584332416333492315689573930338271908055013855754660947186400220844479979680682488861212047515400215389513294741709303266988985051963204914312378656423621528587483719544913175725373652581610471389778169679925768137117835295535156604175538688976356072846079900565142939171844301303909783264674248606652856098991691903434717237174207258922255042784568542679761691726784702369660389972011671125640250683888973578156067463754193318017181673718625553709203139798495006061406823616358199101867744787664362788510298236705288873526578692593021118151167692774777182000324941593190218191269736032661998273499092998575931907860980191431574695881857769933118424747881217099446178362022552132801170850017630271885151703430517456050123811279222126520120819843962098927904549443073105281470754377004933110145219740454696981356906289871486179751217671888593431913748653903437850656824490547901303105882913031572302270371750642339894451659118688800286894521677142203705170698713735810416598398498088847131960004344137489039997248222083531849785064448637194212014191141285390434178800957277500339188471165335945485009436577510229985910178802818140742629502761941342680641513212963204303512943665740635658407447698115844561178350202256978412537422249591305866197023646391869720102139888464097800167758169157601531163007095188224463508745759306020422535581697614718444804165262806530499239766934776269707801396162301361298502312352611832599289993745094297394931672784995074111882568369176040780309179888605403812952592371789960129258257757910724599113443681532811630049328466790039929882350300386269284405506335454640323528236107520688304289922369947848178053254051452011561909496032635663001926443220516573217489739482083577654330623733990627990449990171003458204807859841196187965294743075139102611008850556483277736730983940496140692066644002169235447538487034919204122622276444444420366243362168826843193318356890257445266598587175508596627175939433701687687387836476127328392270313231877894299119135252535809358915442401496356240912369340355685901395367751297632374857970720194693200276766584411571262438216548259223490146578113046028960887058089278531155491366001535785751022641975148631353390058057480243235960455018425271101224627768592272990586652914934703090532690381214838467452516484242836262568355883980640998558485950682768877981995346293960072648510183602144372877018330034865758014521267658641015684334287638217705812296767396341774904082887058271500805297572859225644777558407200840509605972988859223638055476073893357712504073253150616147919899659979521936683408703259375004297439993173862024269288635394480748112746386808278388643982570071575769411449236703829782925372372102039313853986315952272721455971939049225651086098067330092927755911465687337336936888051754007838185842886256608201918457397080267639595107435412098602934268312018115438362577464646637316647644859865772309725334597398120084211352938381798911071501343377288153491352368817869920677662455421003891452344271788576491307893816252695321315242151658958551409977190781006044845649090482719463614653108210059880780540761898360184094621308950677582504341720490788068552633053096676452360575800895084566869819171976114729114337099025890394639499371611249457866848764321005463509106941763388601534292067058162958768302566360501633890840170694985217812646134719694323866402713717149140744065832661701416075669304768581571678977945535211277345228658822514828986056732693422461179059187958653166216381280387240287849344929851427302985127281388458630798856236796797302095149375824639473263108850897489237207789138791287536693795358387933678311847214698100320215149462097692382351883568636512069770603621318360906342234960864073803415174974473792639355886819678020599610189263201875718223948380304387178164893045484769021897516675077211329943397114449089587097972718614874727401940152745408794762578260019409221473854943922100151465040787508895272001928183151160395339535954061868101171063402694083161480641388393357129648305836985930547713486043228338010006300969036662624499589502179168740048665714540944623231029818324702964703559727798811693358889843003137947125994207140390756883426217622937841016110222971460362245327331585435276063352143555631471910746814209030876446953456787401771092390532448875997580544353819017244104749278762794495711200884050544489961985225568032433980114428442761519685932731361256885102728186171118879088628923132844296774258517052375654575666376141580981743634213526542364376009453315648246281523388901087079530978838385487007296450153975755668445375247711046597257211392132376838094926035096613774090657857780604028088210344116832498668422452601231818973980594957794868873695233166345810053494892156449574425747262859559593783994024854204019734705331977604038112132758440659774717872406238136640770411557231737676847605429302713962003052638869748646955764910208767267595122841154046393138105027870284240486415592620094204800956199338034345337205440100994223347869951212636580941884587659891321652645809221988385020333632129573441691647217062475192245051823457250792326010117753997003905921378426478689220858844126622552215351285048051749885722246476640731972309659778501236579966532314306643895606409487356066980018436719414064748054046502336278632582585275887401763019320763391433749547017806047236492521834717097193409244006701595287990611932358978720911838448430093477628061371539197081919518992322258611768165991272785086499563091677333999367133298030743140421904650180291752990738580594329615484946142869794579188930167029297202562323877827152333121721171733163362933710931884960821514583575217362387684758096106318454843382184252843231051469099271658790391767274713703221657572815504697547621390659649269031814678923321424583381764874617463833030840021651008582845324507827834099008616653375712244101816042275223130076593312436669983830274577841329345625135851260315326233452199413698197914578373781019688650559650964091355085651052618055013597578008707772538135821219747922607996136615501281504883098395350644219105788904264520095509085120511177388733127031449440326139807314317711601193606779802604632378515549167573421730306130645933847884923911213755397323942789564508450715291136222318149847313713223020963501108179408210297760915776617251490308087964473565354888720661796705507781511729079751728380256618422877361686718376904248223599470335673136424194511333884309185446014557327810296201087879859101528509406165617054328914666479498226775109585616491196920346659531004110150624821534465824740439048928501786208695905325392757174364072505712032788372269664308995761170358340341656537592814578513355837165459954758968946030888807478968425279113261646042707177613069856995137531006816447235297858621390064206703962663757622978615652652321191300247988519382704358783330399267305250373092528522459200626510860481125028696850904670077302133647266331484338948959054125010306264507183028037869896948578595134719146928234596800043041144322331349424793750314499602270489476030782052780766831176321124162917126028817244112632153621753716751323420615604368330332532203169679441556251804877401166511694465042128962966358315352216153643158007870253501325322497631455946788157619773445177314979635054049157081958501056845544661725524433978239171063502232834791572863043290063958460249952266664942352324183954767584548172702415058276277278958968851791550929762291783166873938634978231600103699861296559219637940718298133811950383145656001425712278760389030640140443485938582348816541987564431886847106295830299125118378121086285356326051987722707593512970315596834906317823896070861331260718809482956935666736604805346623497578571758146086082364104470659319108766233902842027724655514497479747334533808693630229931820629464942627315907336775323368395146593153877314988355523345782034364753522790544583422582538803150846210562736657327458500191423306690450314454882300612791906608404620885991977915128239479484321791580915925578169166016700604918900284061989754588478591840127400934053943853195955174827638183119627731204175670783723286241861274709779983264974664216630917776567353763640525110318724801788291320174830198767279916404079966459652899264163322636785253990384624462497707408627941345741085077306465431895498332700811781850098438395966405543874825728004016635905132739089785844961656760747413072673325752532433967921577710767856974899333463078372075382039032068919430578265360676082785123278384646519250112998105353437192368665117968863701405900970570155027889260266586254960893800545462130283631555407104485679089441454493798755610550212800031097996585724636360555315256038709167846855068946505782008560013097506399793254556947422641319337488037900045445077262706442894791636222845785251091034782587214373082544650832730416806084372059498755902790737690666558345519877344668827361043648030688575533104395986371127592042083547254364148216825216709101629999284232376863576389253596068299011179618805782966280175640736654604708490470678666595270196432086098516832812509861168945267105294056964145700782196391135221812106572685080752041319029051317467941945625870219069667809694475326919086433290854385238667424053081345790692237563564120665753641355847751156520795261309619714306776568507690181382249709032979677986032717463365477972093224695759041611063713999448974786217868901167868325272555083569910168938929505154069823889529091504951683869704888094226031428122039134130591837296437620634220632463047934138210175149389031783462526096231800324443910700421180293938573223131628646106089580277572324363492246517223862020261274254002459278694867630924175902753745502471848612424304331112759896068791388850527281426504597290767405908002080311819718501555233933588063023646077544771124744054443165334343373242414309398981536970658518283316381415567864510825967303339530433618421785122145579911057640930695927360626297046606034503443544054687311602177237326805118070261788474403181239870833691475942955019505830153298364199189812277861500514551898979862293298246250027740490653016809503223618914808352998837334392098790374544311107758733099013402541573582214772206875631715356230322531790865861826215458511661198169666913258430472223480102554853300137155523049384180206677627339104369089326555950625257410147138393368980297466796041984159634930250644373386177624423559322569672889329414693201834884201134611694127505585382795228245451832933757341899199229515059915718393029512485913139977708758217858223651476044165197127834050776219448668094102326324824925268225908899028731933039617816026884978383760275845111644200030645146132809168768486453788932067736373231487918461801931837339257642929973481526991270364260341357879577621597452771970565124843916727473774555814611960955694277086825484749806177057450210318018955669091343646105687771651663261972526389440274157129051299422337518227187499365716142735261206910992437569098691542779339271502837405851842241416474745425345142732511104778042683887613436957705192958370585204492500439214615851818890545760898621490154332216970098102413934286064487855844337152559686477054836861513681471160921885647113614164161758507301600176986642226045280021827379629124479081312116250134821750424845087011776642407174378562420861422472620528016260066176182354710981896305939561359327210019109293374211631459030859516777350431217274350045822658545910356012804358598443724335285973693184499982349170460707575488435127695828700362103716579631406490666861302858668085761071782065533296494905662338396009093055141943918480238776619767162002831092706375483344795994336177637766063198975344733003295989866352959441578548716937968295638909566123497860344974417771311441376338863151978712943275881114539323309213618329719543648181674402486198975689888879966467087505736939114457502538829167248131220872170988995856415084421446521914385794769354901399808175949754949602404156508952119778779124952036181913106592826348922283671737083377874904837505783904793380714559661043492986893642217149496611131385151278046756608539241756733667592589879414253319030698825569478485271315779405463392669651205289477553604565577801532079038366289149130093389080080424664010422358304719091343021643022341334268650472524756065301291116630628209328346280498501784818464600963351652267953417532815006679014119625517493289298314422414945213898499405623246321178429651775981346648613102030873529992839528979019586532041981890837859277210659447124563798469674039178674036597132633863030624464766271295704663476690658219720743650215770925405540708448565123875785701291570479543514430740793875856095352867096493767636522259694053574038490574628897831057766965194132309900551967313566925319485867481701028436747552540131498872612908204441105866534611793054912096617521294459826770807837350593654695798101823791615979686338144348373532765403941143264298763394012334287619788440886752481306468983233209406457677561354150946530472036430568557154263215152795278545107446043752898896723954466371742142936156555476803427948453006639588837289365055237130330220749982338138086733052207675460914990202965742509364980925020662547755707465016653633770703975974534227792899641543504737351672437955661817871979867123224823552784821896414263697555141403906669357458253830013403158695266149979757871813612409710328979876068708891197082276816229597991652664509475401513550639100510846503847824383314301260073301174721994820333282439781359384403101358869772374390757565538727450506622161305270888928338062016827843977071815875275444579885828189060102018533934688937153857712124082359614779451652484500848122635348182201724450203667560484417523356764150188025551181196989135944249620650062473182743208719095068592417225508212787323481182708936504188028899266329750526576749780517036964929320533589090428682317396977983769260117450446263192754827230735735436388451512218176577333336202390182277305232557761685140538403477007989062262212905738605243660103853633511397958334646352552699022964263004532699019221610384929061144709374038735910740851189417491312495226644212365516085597874326376615243973186393073697214652175398493298281236378123314397747150207478995655599087577700035299086739458732528468037855947751370633141552883236702136774813859222723555729086747566193262947491510811921183979351436094474889354911915742590418784788753084439428850441764248974378888917577992940808221732969339623771147585593056132184865443657003704849507504221407328711219016485631265879878265029876146063939854762317348173888904343826645369150197806546040333821389006711701585852950088253988163550934616714613846579272523422835687396645197473637906929872628842201481482854381586797042184083897344143611527008519846900868266278278703323271005178237977000029873124658763146334597736955678465675381081189071373669620869436748524129727618852071822502011775702186475132198734859141508524876040638790226390599231422662930206135036875572854799613856722245595220180549568880378141985726498516448649003072776904592706140817389098153472879873572007544592852674623438272538084162805539641909716054493241603859408683405863509994938777829527429116670026527437377726947291435290705712834471346497924499039999075614842228419556037262210891448167927111987614373528057738839258491481957629014441547983671277713336045933237882559045017728605964042950571296008765848259776845375249412869804774232139672650178972576265429558899354694376246398887595565828265347796179065116389189270805792623898584244663595163018360388641327572176159019698114016910443847724901629251706295589538714681917661875558534694579948474340774153182473057480232350798945417596211919907077526224420531707741507347655940955632620319930958492344889474953085674778112823742313942335202318292492482213319096126593697143246943552206481591560413132760054241494705796645600905955727262696762714856453458562227242920640075789992426074582769010078806326559778439345689683331435409553691288346534962825860679457131463066812686090114094737479821019673515365144791440896301638676346983003872327309056950850834243878950981374858404095775520761870874925169382442512924204562396741037931024642702297434004084630838898194397185919543989074716097162419520079417880969708874144360996944232717822802424193808215878306660853379768862222511651411303790948917104762275141885401892702099474062354801820160548118522006636990934832242411878845152583339415182110902295844956415246315976603000524862052885645931347891682387942173521469718590673051688663647477290104684347601061619955589204334614888875605005973951761082765226313903222041516866343649383368161547498881708786201409986639651569627995453090144227622766891625487990077946529591738587789754327833915660872685232446283227487315623361491020495875343016227756588848318085057512918889911748809337033669039516090625364853211572272745122308808578785273026442479916348666898341162637858958752061099728152771251021540714207387440884119593792302785170975857500542462987242969543274606409632280487731336855614296238487793473049323403337176684850856184906542292586811885309585515212731584522218371107321107603114280348272493678370711724931359535649981797397133321947730975684799671996995096268956657875532375713713963438639192917194692162897988163166962890824745476990859165554660557529285063001380222774722577266236036124902195302492546747244007053743702885635116858166258505526363454153081659490259820506459506946311620565864486703961074884105022195277655487424551672795493557888696447923944996151789435799727131445684004396818048030353590045915066406336814188210885901909325505901295491725965776339870636749593404451510968556110491212242378019713319958219081433273392566282649189037099828867840720725174875264666153689298761156008673086002145771860432855631865110741908076041216151865942787492783589871786687485439212271204186268192556851714251362719568854360766716634927049234893756956166865458912585776604233442128805621552580104459190370415498537111665483995443626129474735103786735209833208935018571840582761187539488086956978050635305265357662859203538083049712527274501471738461697532959221488565945828146884131312131724356236878932200246627187795219439613408298202386449124259269574268911577391263343316841418816023233647069843893634395661049703885416167862912422792834163215584635900823464212822470639327591923181050806080783606758964762004051757480539805141678445307238524975929928238448365794804296224034179719201243534639014270393945164497917979397938640373633170096157985375931073911856991689180240616834732114212825611285649750074802324617862101631435657277630124542124234444744873239185874391941135737427782505475748210405993283071675901006570109685989746445469365460364036580963657231587263267212131080282744504655135262946641886426845438224120626480170012781374600402215117776285787938822136538573119280139254347102616182480121148248936806542572766658424269498165499104503124308251148030460313903607514840219966122786586744941366399563352052710600152009773533407003160131911773139769158269735892835955734909121485135087050524435769692022763466425649952379920618187994054811904433077940435874991494914972538184030554437391676014024113767247424027978197383132944041385125727924212452313797306932337935254989579729242871408435815835974335766689478252918225644961830047774258504907539602670580381193346694066853847765444248296497546637112338246119842791300000212867505500877592600423448397151406538768786911095573360299531233585500901736399406243301967853371635689483094431996406223512828091390244087338270761263797440079713970182924744668286908757743027347858906696062298709616268326464561594219982547425486529325221813051784134374458230270157817503662288992924777378157503644643233474222905881185835292199642853507351191130346296641055014259812996914771393521543904394603466506979220798801015432420420588107768112634807144189718792061908069812734231381457912882561613242827137514652279070155329760505323430761945656101687060138879044105521069617948684435198438891832345137941920508511714902779327807099518123049385944437175633789950353304522916297426285194823244983418374123750384553456613061335301951622343234546634124137158571694039189361578821298998681773841940048282708632290873284369205639520077778368443191838549715404423164403541818483995061457742642442097948351303965338495164721076239086035246872248867486210117507716110820246259451657637036626892911690862863830795619076725174964080973287138055576985403360533805734049989148530957810017266729028032284107761921434922704990074150867740007045132587839905789072188287499117591341421942017022531030993934365461420602869306199934590024524758507053378053250487667070637516368681012811584664107859874373143739549236941293817641307744360955881304488181915538133809697135516822950015686039412132753984992247918495813632270770185490968987249877118281018786973620933116879571497754610187008076065173790623140623700512008336171108601737519015502353030663348626040043196499914780706049872792194019388647191598533168214684718650411176175746706090249596273940712763576976480152332170326446213307567779524031521440630204816029601706493555153679380565939223331578779218299044815772555475166185835801431053323822521632103153648999955191129636807847721425426492347526251392260576624437877253311650660833443376828742175202068850388236861546210284425233460812374362920322558511085916821233817376347984623667057907704426281695882616688804240313490881244507653637712122721836969503680827968088234067777459149812104381041104038234841808153047799344074149154812513756442738453812247524263499151411835670402126976004461074038064989178940838207306865231265454471012093579566551306415955481151682316701565361758973917092473693923168103638838362949760188634923583263217261542166949675263670628153264474425934007639093698508814628152195340514167139694499172129523840471498383827599768009460428404300428538850053332299678310867241850760707797095013078529685942475320423176006413798766193901791392276940368295210526452622285397263400439929068116738150273738545619016432738900195302898908337408974792575306027779734411243011921722542283221229997360550994461166327195277132651871130518402847112367289555147429363509363667202551724012520321763708698022025935541497148612523184040154989309073496326832365481765440295265340987482058592724821643658002636934698440737837036545734837903417700850485107288702125225788208676671027189414427099059932504911513644103270007955675869082531084724247936012720430783737149504980853111493390957144765834804745753281507515428709697984974167689469109284363241396256846917545025794240117377006104732043910075664130697684768049973766821721185861332538800596442745159443317325297829129525382345062227724147518437239080124734609673121242599481151887384159878655511174774297556994449285578667161731570002194442337803624594360623092519851186538526726387035913033275699117341101516918795431944021758092290631700865069839625171267256251566054670141567619888844713052631422648218276583174308015954894228334170652092240967237840612087201686554084330655640579272066740908276905547825783050154892300219192923504105525647392679547424016531904089246347774197372493956484331710936551775236227011686183299359235110510521300834542526880534520871329458158163680311691111428680021183954731418811236688605729594163001095387477399109757762881661619391740797937863744129505781982850914821416003507594726479804105901228333301539472057111651422132842683570496500295928417833566783035590055647666556965320759735449205809742176300970521041978341574707707761670347784577013877882840268286643418420968284141536111399836301395265299231576033889199438055208198768794199662434803019455329030319388116123862052317112058302895493419638205379679310412240856200693971067601003146586885662117946311416909965243400363083552607383775430951054589221320418334339652939016946835262653288024580545056434283831793814245281885081734839552763924891895757713546510166210000933770279540619798737990734014931544396541627614984647386562115383723288095698246520501743380351825681082909503163204960144384344056791257683860337935403261326080332395177984598780149718824862981776914953656108123788460398665718875732835820667735109687423524680107380742037622048280231158238531938616864474701213119113778463111888082983757680346721469108704397463944226777389103638121910938749389646174913892245954467602080373443900011040570054748159747874643582143192982387028182581648030893965794776840046949140577711026510706776171726369763894856821345001272982572459711588569141857733505969307115032702810771732381837092915445830354378283376602027183052336168997005002296932515939953051057556108342614963566620413906569416414168116077118798153813908132030941021218395006603770293608374128722771567920825780221843028583844739170253318650838442447932763913423782580754003890316133048849142218753178380178587095995174401930782161572497676655857227598359850393962964769689071731565736812595220405832225230387207125218619950271568179057557986402977402686841864182292642502946204043567749641099472181041007415267753612661182943347223102832007609016234522411811328891867040571246733009302583793498790296381721492810669918252096604665631849697943124694685265674021502386749238866846268753036020451295811066649323037374687415760459724259054785457615223135383922759872194020607464511920596995401577845300353657611219609146098840952467318888969247131555087478282583870565029760813246629478199633482096788041540229228272596295344797975301130833691836448192141728788315850358432772149680284739798340065900772872597372935796068258368135739997472786724904498152994588581867806697185356752811619982827240834556811689965333858245309751960859444281373808710969210141477698605718331246223614797112304237196132323416515046827801051357554514102144112011306842917810127754401534402684591357853320609596531787845787010194628926735498224022248637880314625521237290231151488084334499130736550854857196223816728633590175578233601591686951252618969997569348353894678505549949555702799666114060824731152078523095092576913543167289067086424952119179495344464895168066290620902172722744890389865346324607289037725278968895879161454860003664238088993214134789588028337873522582007255890790611158021334149469741568250909729177766477128949255248035407669928921002587042237044576755501558902073485155523963162410280024552094324792173836545524910589215624646580898281702370772454543541107044362448664459353709583067277134198466147243604010578910031054747443322296882061004225823348991712183729179430064117543255523097339000666535862019278154297008939957212331755590465896797193968775999617280774288141013800537800664978597064964643987692661607582721201853827840910885856074601352305875620015800872087496644379945757291509693667852732435370486583567080304518618051766907037447162031805288880354597669648407678242930004631920009727614505939332512928319063210438903344083896775407184512276291544316943542104105440019606197105680885159328108386369578504370375581749631492340488913373422125298564918255669017636696299391077434333967635177834617436532272455564188468020870841341623350598321752148110947839531258366632887559215889930466488048206314094026039819248937505962569633221135084625378457915632014611674718291009794576027164897204582746368238335069971570600162982470876656226662997581535215483719030126722923858243070313409034357474278713533533812330041987643231025776492502519217194827783529127275130619449827095733438567300860850602851460322214141843912257858412756076380174190835257441260852929380715911917730789168633348542287559128250156085174910514851193512200589072366591350158713172713882689221064868070682037049298920175845764908447105218578027881444290150991887383441122653990836718679120198082727632361187584321889260879719241589147709496950037146145434512421611165424841764975503012738416427259222842484088533347595938167149225916860863122267332538996441476926700970097991763106240057642043562020454938251267738659414558485339825428587797263883567869205570455680723886745273759488057503488297192048008999096576553760126290154181741488117649974149966050590827599541044196371997476156989616350292924977774067025832674400194349211736045408765542643005855434654040453872452878169063673116415592519355120095830877229197963809838005215625041969979070945760896748429484894191839164739565351586041808458748415267273998020811337110429807481762812618970857023102998958101344238823938226787322776232253889805227472134149396061675312551003265343210552754593645902607833117251485336923339091901983222266931474991978122949384573534077557676538582760891967698801781102662082186463250106036544070246949963306437890721402337920945714596730956163333077543243755155855573910499360982562808560529172165304968444493359068843022573228122741473248774707004197158542468305304110703060722305506754139075331468151633123202740918216489197800621354594430416000827926480535332297419271843247592621867894864485986390948630851768751393865103129037342490549453914260506501984472000575533533639363021050925820522030041022310095046590429097160243608501224045697446045080620878586796208395145588295285596042284940727598602400646143358598614707094667032596878988053710497978855372767851600274982087763585031835016339918730597073335576165000469322259253024216442597769123644475082136951558229521685900909429381939006848840982216926360002780114135870189579194542706031631905554775215932059507922799266746156897509840733472942553806869986309226065336881878696245306265753275775145695346930842683288476108364290578921524587782365022847452542434776416712403389400089293855318293578645154631922322034889115482149984210871556592583775019167836801877949641596826235054670757575411619125562995461535386505728701635278365256987496084377960697403602828583290680638698072952311288778512374846178698390083487676815734800486355961832625717655232907850405134933255318342218543287653605930650909750367201184157210509733146038660930001292492960104706146713338344653288545439146649660003038908275662871333284068021772207201672227695417308474932074331692194184312590377127438336761513442412855481548476485056307682068131340461959264871959793963484854919102263184534962172308675812498163330061404548464539628752692412338279448421747121552761706499195545533018314889607238054199794605771331256239861144649331171431697715077092832445268441614816969909295094362464266366555801470552142849121188455342450346451834719227693379095724629427206652919600129547032833207679916251485954273039546132098454566029184097498616572837227534120975255799811562844316356396965232997938801402710132646113661507883063125825996642307690304241228709091369625301529823199566805142389994352753691823419956987453723222505575380396342973836939240393157149550003328227252968039541020571476079859205068613421230762098452901130575101275127867389850633775035841339521414818151836527910826678677191984044557198896539744336324580177252989940005568191295438296754454127320001911338314046247873848899170306475902735372645432735601366825972274654509522227212627465963282569095500709504600804029456556742507283881089066330400388389546472640042909551898616873890794659040047761842164570474270821812693535894806819994254969505434507591991749868548026331207428050633851042138799802138643048180735972826026841738197780499772308242922810990227913360076776422251328845725774817903680600656810849069706772288839006079196190274511726668969831241135829652286100295448447182865275590245171931358386964363737307976744249424010692078577807583622380016883501508848543853233227432989299450273763414139141709004473881220246904432151563434577422456261028635324909306530802353934033254994897090013364304745737883793878493583046533072103934963650785546130453616254566638454796845572546979432658361304654509676332341845074515954974182830931822365223413286515048717954695384647405145236049288042892161848188933430842878951350088254137663415984343330351872169906508667313197320179810942512030353698629653938686243377519203895037530740376292832403867673205455849212453888736935168413703729984157316884101998333120570404123955558454567370479891325050384146842513949170708955815045453436217240408471051570839189665147187751511525675983786208931750571867330227394176989112450237328894635634331016671131746615886867436201656090220365086606276599002548605244814173255888912313233167079408603612559211633963706941548373983385237925202996415658319234596730845159341683306012051698601228213494920323508752510933966287571253387882109355337107728802772271043352516859794310660601837730584934533889954795391891270542434189790232749649754519355722443872434555359420531583039481446606654479124617235742278529221936630030574639417095343345549597519899041317104585252257216544430775665062683938809220332902221945486913396551659884023089893500376393869633635437861643706881981784891017754811509625613757603447639768986998870938312828791120169749307058292567982240185311683033323603963638800297335251639183496485184693494726511174500868123613521500049162833317219056255345709240170329375683542290598625897756743307888101395367865950313540179706036533465579412736240438087497564529529732417398211065004530744179481500044493680404821560779733482279604588955934831639772613851305689975685964336054459258988378186913473826304500399516653549563846331575755051022896398515836301672990267349308371962302778442434547788380448979237180140429198603492242196415619062028679595360001542304026007073656956114243594071926426310332812881153724831648959960930099350717304854354170509639322467822312863088418586025607650096038471739523779871462153847156508975377861426794908466174224110613406028905071227706859879671729777714158994237035887036871682899504746540482551075117757248676980625547101877380818420111261921339769179841344170936252507184801567514454731706741457002482537637309980639852274728098395809441774010900303233382818859489826956434361240994643574371471893213984030298225894532374399354096415855761826979562764248135038831366849706552653145788264816117243663733300138023096317158909147458902144122169989961074374685176862928086900982146286583440382698189666726070623855762590831322117280022375060019505978177695699462778282045249069130601750877320600177888061834268253451982987400947772177222729763587517705328652208309590420900845155546746959244122315443543425184316671917808769817503142396698477052498408133760111582811244627645291457751363924613524960027353492282215205820862882415086258517853814016363133736099324772736300288341917022994557599136838583102531203865774941928095686535659670288946053086697692284167314315742546971743258242508449806731614708449977984602088568338889145912283711913973688596084456363890851705691102367284508272530219295924114886192239097290371158892593879168358049324052274460191492043834554028502789171508650870560792881215473896300959064331199000282651629270345184727867257048744500600534590123172191471431410933772688509687685359613009953657925189009899528198532202086416819834106725992827038984554182823511447535274140795902972441200436934645630067802399173964676273466008287930360686393913230259135180853923254554525884228067336827477460455303620774586865396397844990693215828236563922988335530422676469529096837411080366689065986872271818466503713781659120293041106965203517351237848899284476421986898146416390791912277886927824618134602403236474522626403760964137723857118525268168375970265777852779148759479219250937827324777178815993524571189262374115464123579995739273054771728176206604228003691854430991413163151002774157609558934541994386407738805219407695597506203717011799386242427624333235646423782652592159367623619744825027377411527548350252856969765299962932722264697222010706819302285494776144014641577792182277166825708003421371633790447903713444663814965599769493991956331430873282828717063126711355328628782099610182705727187588174991543712512723486412382435339262964036925817530066262141555621672134788168584445222760457317109904196111562142241276825234052661191998626988161895945477763286073310184157730691620586957318246019762818101288865388675595592480202858942282153940474722749049814032676401630256903222580174776071799504102424045546167024801098386735953406160005731567161170644068925306701529679940014223614452548967903106577322894335320194302649771974993575411385827406941828097531910426298024411215602673315257861799852706262526105966250673908403768771398922296305882229141310573522410940335409397944180413359196612743339978950089434315016494240369947405787907367579336399673477860200842185838440258861866919863650351872905434619541377177830822192699895652209260411637430285508767038778559943799505995330301223714255261439033113286954643681508989133522038762324144307974156854559615456318966593887544142615168493730594096997156883991593661844006973827575666721229027969149665778094504720582001247333179441560994258928549925548271698971659201959889242531360382966952309290177575733089265128598443504142377206789390850868685572215449505783899768066198730106259664514331087117025445317467409172446014224858160486405224501187688529602224274123485572467747908702713903585527772575427243996013443974048051146800371416931702102184914530624380125512091778469928858023123980677245709115756378510177578379480338307387518235793357415556916313813259623102491102917642710245917551917962804529109622487844885312735200159562172323110909650207702956835666113076572898113545225052991540011898763302565343673226816415343644561021368815766654467067088665124460327049651630569078602467170663926269171193233219240318953342253949508196573334867696698130322378920231086069609414493522274215554616521869639509499475076617483261628603282994797342263252979722238815323999010469301932653701769751599410132794146468372487492109127375668387061878884104084239370683349422276637445535173287678513646995115603491079071064909694848980208864650438356032894087264752830442532031669776111330725894312327351710869838416282460093122777113826461028721989242917823909598296442638647720129956790285218506351013908580797696913415710778793788804035157792878993727873753996892716170739224832561968903680174632797268503455040207324036696656225059631263833854967408423506812548091138620696393103687173994711859984375214838476594935762095824611417261094951812368855365871783621883368006243310960702067363518436449077635124744837364173689745901489526768503783926227695595176019747388502174319712262780412769065784690436763764597418891972979344850019740044607652963619909700881362208119350261635041086523991116429447414018555532225643394415678469325076629557052508418085715592478476357479147022486203846748244556807126695042228938712159792962626463892382625403027793980165314055259918401630397916389220072082141204806422369397222127195416252552848082574775357078209470428153227520701722959860230073056765830071952040793353149252445069007150330465132915916346475782896435333088627378609424986549335413918068911112194090603382577666136350342414536159454766174595695729550333812793161887584202900560926250233614554970174773810487450719471529185535125488568132743534270526728268546629877028548551179553357374140264049023114294190285165742927674233475540117826400968270134800977693197100990132383304593133438946537498659362108719682373940391094932087888373883482566142733573584412721942008519743449634638584574525252731113978682777447149154505902058284609987177327608220949729046448235599305265584482436574687454608917543054002920807612911501338259198767396183093526098074641042548349653988907981514632565685333276405981425576038900112598132890629959507427758898921414692669713168153229738298427781302460513614599280909584853767180610106566080595190743455408863006691319958484287442083666397359992281739838746490726419080697000428669284361036405207263754771225103898588659363501159977997951521837837264251307346936030297732611144461666516403152013593165196100521656349812846525813260813769073791019233285971133829645273418908258985297903776971079759857555852760740207473757238706021699341216976248327658397444691644251256579005618494428980263745252160354557895568595824966210793313870002186541836576249749913287237276164314702538835959342942046940712185191631258029782960386320900001905363569426440042721842329705572739629206961386191498014158864298810990209568892953716783799302667863278949430670643256723714820687473769026640889306622818678922798142461415871526491927112622483882517060006075055911668334672061685160477130689959940580582660273115504214576902552576065215675370161866737992386463416052354216872223185707387316912232701560660126269627266104160721121547719054183301003621198067269828836761973926469897766931242620153537817547362180956486653352627010393231399431460793698212494023541843237121583691057789926694113285478494578799034158725846624170112580145197052647498806661447431269766837717390566187771076187343769920035356545836165931227468646249386323896387341961366742395342526372604744417376202902653527588107980771581948018310841706154085180279098462118880035245267878612894332485417067504655419796659413601354364552952719609521352535869869108671385191692098957617361298936760091323518937796503073077080667621826983228792268562160752098914543788960318603856111223873377618071488625713106222614583615230901242082555647029064080135648144757519720060726597285674146779787538675576264864015742687541569579837467901840031377977237567903196230023618372737253357478866167865355977754495375104284161216953919863145959393769325564653357525323737544314074941599908881465389048807485425497655372940790474886696930093883481738222887561500969634053643847657545778437780685462035688139297463063236434207966312822279739145460167944226441800852865645909682079998633144797200052743626770903032415714785684333749719604307638842598244975153528379405809808650349369455357336017593387336913765900842078788270038429768929615401945827970362061235851766444117333328879782684636941773701693293341160919823833057134402814632472443971346729215778323040013273297306173331897163619306223631987742257289837301123270517286946140842333919668523531529317465663516612770548546388270718280638515084534383625679767400328028168465039541943157346101827831868337511229261388662122639474139314727438263394056995717409644287086629971488137589098255564905401068507250899221112567334483736224938688360888491056737672059612024590037777740578666693803957607282182489661699817057342672625791870453357228875307580788262515734484518049506397536982342335227005710572362680597036036125948689774542490621313613530057218840301471555407750233497872238292831428995778214862457081423375322607016968191595023759772058614106263846738747334811996014854433075741919022512809704488697099627230196264722089036024078880649801580282093091812219840947612273653929905390190559850087391560142389073535464044541372919849531898437534615559689347681271279863931715284920313109838420379727739087336720480373183073574146846848143268532374510268371543318702618889724239083718429980878064423342785395749045481383396777850538145251764558071146220897434000846424519647765556515483336041670785588240181546780190575156014669493600398168833115490585176485343062723449229532638722508278511122120694501760840748119188295840324024215948193299432595753234016426676735209018739967247640136178689103959128058061729649820005260077466504695204262056827685078743048727911928408453884958116831801064822662435642775228008828034868501617955367562046303098454808203241625485834587723084030782575271528111438503034256164661688641594162123947328153814155394052269556046426941977111019288760429367699921016585079508004027674170588148646806631067078085598790112802254272213124403413249006160999827148801436374033717383511413126143111581793429393582248869399909208425780562094389431611629164946851368488765354958900252486102203577024009914044317248476522568157207112347718467518609565487247768799984836709051484165211137536840791849806246025977878657421291649127201618538088827898340016791394260052000795854811218768339466876457142088266770725268598799537119621952017458771235422420318267057757313486913507225151931940162128209006538989782623928543693376162051047279176951181730101233283436994003348682875472293381453234316496161781257582544080010672962111600908769920336531167523657103641881924688605792393186026860317896930525104264943430505487724319602010784153028403373880521788455111667047308361500793019265466802189749160501868155471261050134987873664079985724048909986679000398269466238661965459455505333419058099480525896814099557587776870814711155893128177390955164308553254365737947596748951824513333267798822514305549027176371708474660473638690083081179450625936300093798351245914608317419101145962562668577205723154804905638088710551937450363734488516953390636125133737038983822653054739286920573285645228871718863757664639135069331327436336135379376169990228794862240020069022103560173144095742652979865940871838795278949428690521471088468910806826006964466805899663978889259388966358115974224753362154109349144636911910034000436039647486020880831122046795730120217260841030763102824181423484529790988195015781742693203120178061866047077698708177363674877403278734698382782577143716592077753541261500601164143476736372393434545837777894687544248289859877151499496895950214075842300108273636294405071907005321086059591673407344402762599344076195529586778532072608500978622391600540688454789812657414507332215531959919973794398647010039185433723545136238731152463378509876222453378314895119784738479789867823315543725428081391881902209204507639402500457814088207076895823181356750244946987374794108248972313849516609526143508786919640485910217368514127854768287036970971982988286109239042986410101139286960907419868847850539574565764405298167170069640231038749199647815944691090254756137854408491662673348055151671162989683006331522233032102280920813056957508067248621320122861167246031687335094838766675898352551115160937067101239184694765048220673010089521993493635211549267415747752694911271636412978433522426286894989562012767264945454305234574259917499857160753789717948276224744771721232375575456580173702888970643661236775636938533881314110597535630612979585819253293725098731793989507137977656368007814979980552633660097434086271053094090268227459064381296302212870643939239310099216851058506983945033990252856320853921169803666917568132581331022296033758740167555205588172420727405274043844246030018798699229727440584398136365051855758361750980361868962410710654068173803419129929595130778350108558214419603936822117362171518670125948801857979896990022101587483775951248342424343215500487847126308113900120497735735250361751554425007330479585523935361036735807127567291700667603707310690225166325485354069959701733845667497604045553075010819172603989674637166625494113811152229341837355538232119621616074347372336288497238252854288305149241285111111937397207568368995215037008689874701407832505761009809860322254468031230910427291093794136527696271689869506478007204346070882866916407309519566142042395964981895600715109197274350979019823072045517783733482950795489104480646091922858064059913969910780369325511352189982147827414082691372665879941299504892436352020209680582405177456806090258793245533967815234962490692855770490819857255931036206170414376462109990060205945187593998053576732180290061622878787474054548225200111798711824802848351234122091800640723355215962509729560473119952094233243777253124733085451234018177128822351370957218101805362814202696316355323510325951717339065444291913905754907926090977914277560326755420224715683393046315900545120431950542886391799566746736748978843172449419267834606298611996024541670977525510267140963397441053479700552476854532736512345320172995112580792953086039107609203949070808763290568606547484777398563607190651035553213988305968428987355563239976084132757154008360679945221093411595000582836679835484926059699955123623169397445880243423030502239057918931798776423470425624099446763693136151898321468263750290074188207216957037302589843662546163489042110028367162464387331046259534567822473683662876352869442263698921902260309660940037722329379559688956059196911134377032830203221068129164827216258398122357425325693137307764083480858097408102656362148604316742909345164603712332682071300941378761111390976741716836727552902934637891244077763847658229023276161888125187905946524416393374979507041092446625092680335802139227434118179169705062128093403007640141796334342338661258574767248393394195733318830404264746271107035793896985804086295521272519737193509276928857452904801813869154182455022269415181691996605851923523707716242721361147654545787945605193649450963050957127328503915906752658828124519865320414219021105855342483715500174903346973955298607191333764036011171781882660298745598750010103305666326227658879256176583037774406487616230913746910779986021955114541635818818638899894997036704524631380036822895991947141511436629694899457339877083300446472880525751074481359156275875937339285189851336107404863604851663597485951827735828093860207481233722523125276336595168161536882100325546216787105199046859078801561203987399970774056791262814230133448831302001731033840054590957858868232824163466256484281067499888983835783252296782233003462987453594367967525355761379947023583210604229763880941307197786100671005639881267987853735564194141388165980325576332337101793602502793994454542022693158668996850433969414269938536295557687090555863269986976051657727452592088353236036809950934390034605850629899465230661084702387303187144189890498770118560513725018568147011817423532774558598912547211388984014780933251098505888855683445462443231215876150099771319986411372639033016755064373544161239109111308836658021348336418960797579042468878071164339069282021452867935591665092717580262877088374624944459337825526033335587726323597106695187515777236417913237179618966475855480790278661715232704933204258351687896415386058150831627081872093987873543165902337431816179334390713794123970042417743090561448506826388912049709016202879206061766075121319567316090065652108779981760745964384060580229169650746758821814140670013945630965997549908578412659606382585348861673788647446215516119648437934991241273817385088666045633284859996787208870196611428211103343551966121033585226569929281250282619001508282799680963225727257604819234868033238786344699313728892217097021006328263540447269402973468894490886378077014736452052351646131132327767765458024971773247380067918254441602877923407847898060542145265358517930957821285612452679120487461843028574660938266703725351029474353483793895254909694786591838573612243690310249646725029980031199848462248845233163226382304065876238764176500073472716277169160938063226972998223580499520530372598489176443990784380928581903409908132407103053810970432754964068089861371736421537064806825870411529961966010524882708077946464258595800965370270743957169597542904915869521349902771142133975534725636161069972370872703676295592597810698378803215217984734877844036879024674063546604289911798922841368959424804076408595955492179746490677089693163008148217920364070116711470100368808758501660063202240476682114301861343630053259182815868214335614175581245768912588729691971236943803523393136043416267944997012593824579444349532235011247014313789837703766397191563317523850270440938493205438676008220420630037169128250400437145478905375537510453403314032928223808218919712617643794450509542725390229056624531159545088597570265751667859871601330147205948391359372125453749534613061737489825294782844951316029689509132422457922467473127354755083502674839241153660245843037453121016988346538290267909768192118247975819027357879576645018594337649501984579186143025998100561388413038928899877488926466159896154882477275237296968464447734370863402543462955078382777775660812453872748719280725648572740547354494885483698213232097520800351767253203312066366243788745904061815474167500918039141229672084109015703746446680922704236576766416202858013441410512202626658628909071560435614533849758964615071584990655430823980062319732322774857909592252300638994726338706230561702688078540183153655067533027398975702370888330620242239601343862221012701034809317119056517046662981701642851182759891266937026009863014167400528541809545986059358773452466804142519006544577160172533990957181622921491849062354882712863943372576951413405132695391184505945168514117236843414259545992073136030278698513171203280584895848268431405959454182272232006957302638065914356717621240763876354063504905182460697673604110076209570923982993669701863722934455473512501043758293788258590981768458543876568004770618508704076876548078509109846705545902936554735040068284832471456078538029178861368976075784878636986183666195924550080479780089606942687758843477912039138333053828174891016559722180943127711917371283645096635382159374488534135376539214058748385201684479197592643546133130567729117205863352528640257235928045712804865069247881465263432860412310422462966424647543248070625891398024624447946317996605722259965699800120218172960517833735262484958979667902645457783928991226981485296962488603606464857256770083072721999605895290668851964097076888183341265049581844381821814634070304867625612538435752777443334375967867281014011522109559436310191458837977447030560148486437917705508672983707978419666828083996314675061037425184003324457372057806196415018660613070407391041832734647895907008675115139584211649472724869385761789518816619547379723225937946933674711383067617696036153793479969455169150038391819958189115077271705144886912616587337106518256164232225964089937682118659391168085051886081452947387585080664039057480359392956723040970838613666364525323315484335793807775249154345600451400084469609756194263432493739065557407579373833262007892425130260785838581147798594724912819552905193929900289202338388092385887954820061023282910095411055835742013433309078366476880052800841559212913663963678606211521193973098500349224467929831738670778737689541419390815988048996876001767316239941921757763202728990126332732292679621955596154454134417366578539734594079903278191195219126967533992234951197313279036571926481631577203600998691623186469806481864318493158186519219410039112926687151322251236570404047778576707265036353442904586390593194522747099486385778664072089510281748001170996323825329693103436538595621114500448121894561167573714925282804605770330374518691936376759335781043250442622876814561183259990808279409746339635004168820368950068168701036686079436125051353157046994672183740076652295355714591214742981003656816125782475519941452637203212437634058655064306758831459944730718947991380582989045051690819464404708278621821778258922778532388828293299447957456865319118255226523650973083443746288020226896567438466221002448535032535221454170684795497241996804929663208546669479549569738501605449003117770769347642131493648018415442416632728571674169505310359562436129993014621029049021564792312624037722643977842282489148738365680194604249578406571911077035545303804939962824531538046583666166874239728373810164634254583995135994934875780607758545516007287986187937645606919251848466897783965093147459760003584541705057164960464999741651732576419517811645539650784558025912693084534557174675621339281517189020876166542414997063507786803282088499295110998894743562429099877293071135221343648307937204433122907412888739312412928763620715897343575137828609332775186949022148173310856967101866362261159390690771601260835606256825146760319840319377285696228831296593725179685903859188824714857945178403860099467490520672383008623349433788763298904805745301323979556019789389032133512637814203480699516973160884921291539635119257935225818759527007899774991017972617244942850713773041965803114237146439630723772646525803496366559435998587176865257404472736874119673913118300847238992216417514895370929147469624084787408813696642649845814438213231990937638425931048375954273898157038273088812830624223816677723357702744239816467617831137191856124986172191678707273669178571208553906788399706980829235554182055007491426262406015169107721024584556173581750839190996202007517109803792876740340232188661145890525405385969499188890722168180713368188449914870985296414279656827461453282023274775174190094758059484227971055545593627302689136480239447801038858355610246707173401517949884267232674993097462624004502598915111430682964994173294006834403641533709801407697831882798825795262076031420643732476059843406668493237248843415472265869035476315671797539046810877994602167340277840357245066953152955366839368097405511599130748153539085943061723611733985722025224733720191188924370114002227734854626890222216695569168735795883109670097139135753113826981978843273696616509296136384692878356179692118745518432494318488383780003818603508526033930545061033775182068785129953864361191741716643415504076464715275657527803429473973342785119772917499342655266734300162160280676592015414409367208679870198530651932590537922009401866196506402540718304358853425962946169241294425875944021640330988298209531182542119722497110426197773699331441239810107158810014275626900182533304858258858285617924526212049188423154880399603437286320051072391327212869913865967244846547312406622023944431125304383863332704530821796794987362022491273442349494584145920657213772416359511476546354523235472012003769853417822187876176623641198483778386984688046687178345846581979079052694283920008965502274752825920879896961120701579509115557035898481569594312539593341535451412593972747576248644103874113008637622813519331012268305590905733000176513550725515819831674589851276385679441603495244939936244902891043906634525150194719792810948911150167372932709379795142063241010042487623476748045394260807622415371241492223698940905591677067649383685181736584042886673002324632245919144794834925409056995236034961134572679432785869587487354181382397618368403726355201942783003401559467662038917509102816622579640088436029977323523140500765752913267380712950359929986238570585618294261909640163089966514334429209267004024966674161610152084290208528515343547129184576041810134074943189497641469663994696036249168040321028688720003853353543941923006659235873672199323673135932534188516381757847441194983178065426241396446573969480752935878170985233335616043174689949706933118032284403231564325865798291767956866342319641220632583928944460423698888624773035879526468324655660412733589950771653005498584525641229652511439694863128705751090487237990508140862502904842475893076046597456285401516365123165491167870851959471002253458957088711757295402754888147113287599010366911238322588574412599051035745629780800075790761966063183802838027837806242766504521050109946856098034821590151489641396294807655435686859460442445328461579412011932708276303754302536868767176134544891915202257696973353902567664647953910432675503459195854085530882969042882359331606630841386065022734015514682634669701288441761976211376194532702609020897924984750762314997756277009541159283393121444804320863482972305938758591507468061986486981343147156827056897705693073493791116199520213148069809303123974459420709118171598708066410217999077580479080310866100355236227553304692766096435619783580912458341845175561721896903137082185028203308796705260269052094502036049326308253079305265638674397443606933215704793161077665155928477994570959497185934544321888869781785556843223153165264958297442568422468981120584243587268818770468094704397674944992575973238155710883774988704291397658669575505784554171587926631680688138112007285921476718348183831738564251053179611549002570099509570933047537420047009642883067999613948386545868507588422775020228620321438963621569172085903376917440355783409786978247292528333689377731266830935248918439411713006701622679283007469841730689296900182873151375669270158848647725120619506616836224887794648531525492215180942303478033611285071753124970819514179308869600187011004836975122016554111903702847699039646868033939990077673500893748136308781501025280674020239557692365395812724036744501343607357766201752107731241102604759697908843155140939118308175548701719540094256208353272152687204337486392046475194563092174232945981968522849897306213675476158938080387336433741063879224019798304911436260821873642460071007191616292406397785584404779364043908993170737586793772273360104353699789428959080191095810681828642074085644724744659859680827555740915825957658153726104307253897635250711513741843598691994275531412232003429387233631307218311265980150139958706139009459742344982272342334696382715218777114289990854044142004084014436210847737659911371968852033623144684118584425123546642616653492960690839349909237851819652063713342796721646738355470996143345783600557570701739383032243801401909120063517260913974238774375612374743538210767997473386131658396446961639097527604313858017103359285017790401221912470922457299352899990357436468126227899668445398429225543068130445865542277523838908861598488082871997391730360407467841585965842751562451669169251555151037414596192200858265628273866114171760586022396199486786759380150009699185048345307330141175372552719683864700118610031064738109495135897708727935140876107391651981264249772210590294870749582616126635664054437246120586100496967467369832972789394813486414159754436320586579353961108948464734479517086879288204593995810080405241421114375285289947126304933126727494498492757337755729709928908300158297854896641068060910149503970450840844971308072537492866380963494146360023167601091519060523947464608149141036140442733333772268367342340698712177940597099476818048365108032512690850486623549709812706559098072741694375139710877238823295058520640570993925581492063531591952941708428347829938734067799656196337416217333186523466079780711719277672186093952270429432988070153018931602997531140093235312209222814076536674394298780887223696847295536710258798018738493201148037179694446297734212791112114027010489558697664619884779799190789624136093332931909074575905240189127185144964968098622963901654165454426456870625747849783494270280366247505584980289337696148551093435432451933710792170964719786827068974762884844292120007116515129250763001020501423544940064114999765058406606337580606401018519342794782532386082023774283742129796505083054157675395720321544750334314892101410288631461121639019328342226446189783188639958881111086714476912729067628298319669041680139036235986991690406227338925912149744346236397600327044003513622452268847241387499035722826977183197115989809304002271327522314783684007423645631951865701033444327050259085262972110546359423217534035989241440274127624243696532997307414361393979506021014330348045005490373508862095121492304830988477323974039561540442844563370648397350492894495998255585080807790780431727232749774833396076418509317427216214542079648234042829577335889510041212144216485262721613029651036670460640826264499414144900257778576389425101360041995596897404703518258766876526397259375448846439863933517052504246293786181882223320037799951830830477423951563842386660338551267874742503306834021400452152754939497955558977479436111385884283557324440525864872520572633913662806559356973769953137399570777258733627187272351263195141133486324354272609901684429972906470364138996251843253522163335075568691655498556884769408223831918900818943888651584443747359353177376351811931416665480432268872668007131863606311868654182059239440493017287111875322006754789453024965583529553623018566158185985509389428202392074711244169252415410692122239680954408817538411426031677374106400286433223608782175004198572050361617439768374588400208746129473551597163822298416458963003058329481328754090660795168819741528459002622793334327795879314956468782024476657139191235292242369576077484680552257509523283566845855776938487732176888390003975464185474746444486836373145051466931116843045993321437340839694019935069594607098388950273304385810855902613015378402040392542879136765462606915165621388658736157830856285784126578571861559273520161757983469096025375439838321032491466771892963436894457636670422412374710689940387822454483101539480403353455242254008518229363415079470026185637098896489290189009328352044721706343330966211984937282796858344991120553197579712699771609111281755138450906350535136639881011164976084195175253962455425393648194387223175247239747316856565369614546892623144135884706438482280624344585850303260814153028588779342974314849739027951499329664506245336478902189151234260000604475269299415373551266528514557959099937897386223386840589200534295880322199356455085062057349602593202365158999157897470422238975380582079104930126350698603166910098527259360036342655061214703208483245408138706378757923041697833566942234712434855303597634172347268674000745177714562639839234782522904069537811486274582986612998396891167700283533877472686995160055107435464563271667378037053084770850381646514366920555302245471695996368926931061928489130875077152080593942298901442622894799968372471203896510139647203610747869102758073953378080080327195163293866472691640917284526275372813191325827138793054021291199635386109093096531943430470354165370899697937979005263045135412124973840335149601279442922817029749773464882783752279879953579039925872980113648030246169337826073809453028217708723227234864048495365897900167685276590945908799263864824687844496190398613986221667023066394381952329726606518832015694290976893750450834573437608232163846862909642920768300654513166201591127868049232184788031829739529296050476578722232153158896272003959446331848775668091902037361408474913359908659347563935351238976901520003185178036993737406927150368236337983642620358282208679930386028968356381419668141823511805065307682569177217775419512774030436531057809943209930726568532360649750342090045611129717914244951812409067718537260880724980270617919083992720248409669721195641249610720651975087548474596890702020789171002354017983902266937965718600745545039486021003322451967446205830982643739424630469437352130562166614468679223908904585223571221146666837447115244276628305940922911773023901385881270699500808588097411333584597520493386277220740913205907710206722318781192950449130487236293566960637579124035584889422952112879756573674349922648329108166094470049236383293077704256009706207503360367381681501891251189938131892174797950436613223934270395980004964931908680542991154763180599410900714581522302036151045323578333732974401529835568351658254358346919232145170786204587828132756014132484329628472228475747321797858991234973315359254131174075505812418619607042689152580180841918188462023702489875666139214605844826665276673182189907451225580977094456799629588921935836528433453322182482191788613107166240419060939588493381233710259635541603280195556202041449849483206201619798519602746213768348202506525386115341816738257196752011621170121514989838022294989777637595442440278071149524598443209020630185785562595244901653268651632644980075618269796277747773921084697735705281958010820034261986111340984984657352176314393925981769722192355388405538239077816836750051476388833349200640292149087742497844292352475315385259872178937134566758839612508525163219192459927422502085571622485845656457896055107383511571129453017732190716253327411520949557242236094162913904348025590044787448939506949105006136883767504884779041908620593981853988697049693737989675246635936091348366616473683375381729985401421648390211422718269835503028579234429311801941670716417479243080714190911652912108047796110595598825596961180616441937449926075797410960730139727120228153577865970455619163086351351503437253091434582277155729538950567277036998736178383885740737604195005993703312061286029791370524618052332272409650873603231299823464860244603702445136972028216301400277743760359607443573522062091819745536062779750488992992351171945527068084766827221297253047425727101461904785366743253935313943969832490708920794644362108296811139504777844743836194202077771481288400567873622119400901381636008119139710760796347214415832098396956030289358290582107173186711375334668192109965570713849370061523640861494024357142822623564758026805751863947509679095525790453568771914734604790530705915893609128251726152043236737771102790110565698537030142554265765291279749076222059127635871099161658672645893683160175433953638105401271826910333287829319726289863573436257247898489359697474681947055053772375759996985960983370027152956182544510905796798791981755394264296114253938818418338851374721544312386258505032114980474904559958918505147049058168462948624787712030705858978468527605091231393669154532977994891628707773967931511426577801882841537471914289807401600885114864564270819393564403093142177247526165110686759043126609240613194838277309454489229582905587119289175970148016934900240588639986722435204896000573777819950813511121147224726327936385481792532695655440228296344163100438498804896866959469344914469844373591109322069960702180590857919644357187153558887229991041885200941538675470182041418265260928405380099480852202428764110756834421569789137942768638315094703986407519101972264609932543108208964761933497174933809994870949482279250819308473520698994063899658941923283925288226580845471932652292459068273295327370536549938307261745004157354803926723771130688145090491194618276112888799345135067595658447164122720221682346168281113944108545024701586027388607760700531079369977042895516180856331652456012692559653806609503629754281833019280585102618085557213800143517823097182278401232624891055508361876374165391759736299127352059837905511598977705335579256048399392095708714326864988254387305417969427223898915902136993695159763804837412341593439955745743306995524083186952507037802180940152815382335926633172203883142421943574838513028547339208524169575439891436731547930609037255709674467599248884215537091277602767386854087705784100161231878317721540647076212203488774878858988039255720747295844427967426299292501787598465988627458127447486669303444896058515339419677978267342902017996923475637444333988756224476285454729241780087757283316479889034570981565807873530383650480003153077833872879598528033522118767656507326607018624175654645852131886268080330580701170667802430583430869299499795005335423376525342468836763452372304053673145620099634568620777476914550156186929102273737576827790953462140545920314927735046425749127214956222330686806889385006396988851268410541188819490186929348515651592578332457370089194126829092629640696134514120366106450283778970575751427397529065372016180059452410630367862139927500394137778970848858407731773087729018701980951708797683957630452146037303595934465807421719900964169205482169709996800146780476689100867630794987127822318161624267841195834842775313168710876774154886627230064996504288331820948673436408535121124358950000995917003840474272302054900519251817003819028832107641831748499005716019811393736014395839431359037982648654594746605450439246341681126780698926017579865597867145534017073729854614738902004019522184112594102988483391633855365172208994629713102829253988715511065053725973203811187080085875172093499609313355765555773051473287843459730303410524282446958049535654632197486906933117653255352132234806821999461569302793452315118170666206175346217445762824114310654665997272764855881306106414251402802183541071469780261239705199317977117980254702558246540244869384179175223788900521785620225893072706347722331934876533423085725261987820576815392549083515816928131046715825023076059469020426248030718847900090711703561416703371113667453307142542004344118422100873923710156457159289839755302919666261300436942424613206120754423193694821212865767533415051820987360187642650585343252632636325781861805122129621997281347967686154289319660423178496725392220731993945665262996363479008324574183322609058417163220346796530484050726392492830320291848368293312099468782941190411289392523686397163363307255541995834634804635080971124232362582185238678100873573659922843917054036556447211017473788403733238621949947569876632260695849567784958795047913748642967002240235977486084195012327379118507563310487237148024053501515240160329663472084791721978562732800344860116699390589718412584371967470990741872219511286153117241416160532452745754647683823122545556164447629412182537583315713364324108812523786442240612042355780455750310189237620225628866212707703648181914815772247254824871498736499626130094508427670659947463406952289299013053550589984507792119844038759258349148634797779923356585278005927168976292724669456570822754531847684074537574184888211511597066190948502672080406802994083789716563738588768856028823836868452241679183017351091375707003077181985884355165281953185526550980813481070774579639878593260599972906315183801427391425186750680473459893493351355355599653525217791844033973921397890006724474690280854559020427302473132096897448429873429649959925583854373152750071768616533544587219464670719559040713229432686525359301469094358757236381186331908002755550632752691213051093595313335777619526000307199482270752247623434722506552472870185970782209470158811226567250177547022840125421426607626880246491191489773183609068074163823679122531523199455610257202855008666732994679734126797986190072607194637959895985031982442389511664061706638245185393276616352698041982164166896706405550189709172606704305597153678556440343267597006568039218720187271629288676882234827709090929226559315411453747618343627659155239702081509276398184357826905161137305437491062206662010814699304756708149456726609720639169820579365186170693747077596802670704168007208885221014639454756455941085492195566364838643208640333235903144767538115550885393083244291025064577365522607676603388889515205785456656220862384116972864626364275139262969749077840199226031393702774763022679800729815087346832611782203342380816034070977552616344826710469435732808400525474697037515808073624725383462589083890004432361549797664257788324865129458622200540484983395483828407414663792271853267481431960220676502033269126933081332085521893163121176485522809064239011155042461893224263027773752726554481199611926116494425578968034277442693796900761643286512229015560697756779272153121249887092668350967294046268154904722123745735027843847990715568217585146853098792883625847166088734541346492183673100535438599187583618046006231735514193594268218663513495018464690623731324226008406821583650664225682689874533189681956575851169519140128613473950098058443740519482556149090540871702293541586699085808067895255330672507076083618040735652692168170581789507000933205570101667489394797604579732107918574250953834192629566155737484593887719423798264311205776656819697867966661775648954240504666968793542818076785012134417050851326679012841506385340322569493118109865072761457834835358333445366933797501178714478590673883739917748853943522109742152084941544641225840736761641099901652250120750125068389406305183658006031291529909244262582613091298867700068586996886970904045860383552353443734373134335687775373399981012638704244925251269279736391980976253548763823485634685582573206031478533336541507240787951025977862958157581109126134646360879785110572195783219323151697414225220632520244055692769173279121114815848279220101064371092401905671008154786564820291762263070262610441712175584577874815081604750055947073851987534017536407798211516457325789818816038963640005882630434273397225650079244965782579886782796778312716225938851804918227714388698367086525467390838849348180392014445321147410931998110307735103847194007802874357725415660988955581625085630181791553140742156518354933628289413686183378773781610624296645604509599957170374627676855436982133185704666038515700417415481460453538580015508028436004727864222844224515708880595322265637206534809555620745073266609276282757936165584028439107508153041588096985180658100304558159267734409678495119706901016118423552593184931330720984685297991910131714956272127531904602948569980650874994029888448382975188862818981825808787405875639323944164091590069206396250181039022784621379531845266213332098837793221744793607270421011425719941872595410986701694416110866951261446883760399753607891891457275836586316567979489228362678753190592055782673619992730194475427851229290654786267809844721788370908524496219940794504920674587963226132370886473119328321725655161843809795548024982784892602018814715072460514084213429746517397170666645360588951834944273439015267420012441546230346726900813520277509412750621146617783619254387048472535296713790363146842792983246419786985257157589910878114244419963674291251138042399305550447566928689533523770238730303793279573682629020113355139486668354883728277547810180372925715464081260244385745098292623810269064068119445806168835741310305333057554011100054754244201009652695775391838991049774647023471383201298320966107091816253548624049500808573520409826090244414026853352030603974741028087835027635610909121856111441671675146071247223211737932567630082960727130230168352998910322546515421327188260277718274723057925190399984630736849817096753622987022404823920086677075276210322248650656356597839208457841040504779902097937982579456457621382696130292950357858053712389244345915899385079489849740394078698457386012368246648276641287341404180005915398544854421746498546854107775022995043242446899887030824866107320196058382270859070493619442022046205729171635486831367383128632789054520683273568470922673920429518369355246149139641677944950958351359495358810396013473536668882429525894240728904524812895532399509221602095179867833415290730789893011416094457367890636999966991573981674278518314501474555163501527302653412665391008834599166228042411911765993494614214746513404683642644919445768503385475115367756729353071147841633231409020445300011896507783268336363513844224335527486395217063484327004963207611993844304401802229100983749223543010332403502589980263561869440153848031320771061658539516544615015033096719218325803584650120363187429666616429032460437653194755578512962124827036125395575251563949474709787325807922586576083029596100475005141886975948970520949544783776295379763086309184414215762413598344851808323303334205549528184262738135112364456893637067852236062845199748184397880343726380865330181427322921969782576989037290441388886465487912828905019147658132236522227714263632088000832999604562273101032543262576195905388403473491489440437747280405196328065543544261153383976388369768652506721692701715055221064801058116284678962281470748875324924428900747959459355758205816176331097878420134103257655323544013762454094299406745395204630527901481518623751052228856536672969077301561230412887527464362114024723565124809458566237028069150535682196635414637882839251111387896196828844911871765941934194876598760503519660255495665589297977134724945021872735718413442868209506352927563274696939230779096406190618769931530821556362847697716420427393510710464930368027321643929041467091815840390473077883932956518916941201487624799640756427979621290088031383594554669180990813478813770165707013988053718929305189229338469569552361241483762339502146017008518107350910484851943662697323615533797317353913137735110937028826134236385401989685041960954304323349269905791853313392640611387373604488778609374369910309011540241418160811286495042803560948445684893605547756533749049567159173669353428164461013762935059543810977455057791125285277908301745837181062563307308744271995891370576211183310865657778103342968254898078118685019853317212047114883998569673782165608754029444003138353044313311070265862290243612830293691625752278181511674631099071670614090120584010053688256892782266783347670651590176458336744492058450063756986224989265879732682673405844053818273788003373490773672070760147766168886208120574662473208558497233421479367512339711843306629842261660039405523095207813683903564577840149288678662728766543448795490737707551057233937371099656347789688089918433266354452284843765687212491996108983831332203109310498062622966904720006825765366719531176017650641702882052678056701322262841537480215433434235501411314666179785652504045336421175201649159218669334169742211071976523750015023972225547935489787867886555312368283831581544861969333726160983138585035128340778348532118509121699841865540329788965241011190296801917535461332217051113675406282143862900495493103152639763993483580097889806437214018562712596605948590997539567295659132819778687156052350764841502457948956343830116370214291996720571210144965129483762040547854922872511594855202151499805376192276975674472205719173328710575014231003978434745714170744433731505610139057818890421091459988471901202566150621757409724464028721172316596106022654826373277951194557965394243980553883485889793514458365284914493210214776330414775188188182818100982781546348540727419666645556233158209803135050023902341611015761377987186870109312981843079888982352244492805797321899732983463912994168272833264674520211201448827579550212845280822996529631664071850484721955896168339000156938193465309783826008735604230030157899349479728681037713078061082422744001656401881325923076224333035289650852152335378063868491921904612505461654091511025645422248769948113291906081832652520912779672144484385095891534847411572835679979629579446279191223086553467466936676541078949336042356262208791380753392313862574740102013719557805584612213766515293122087712026746567225684062817719340373396076769353910071951211078847841843047619020526417513608523327927366992648066786586369151849515302122130148667693947120905070271580790042564286621173289867932498161427807312123259490791958606797013644549860228904093820052187370376138605734557384450042625009670047694274890351969401660408455593516132534042098007180041190940923457311779203595714536067137397755335258219740679800684557284489629527786310440772352552461236803189658318393461246968455550228861598974702757558285682755165005952767881676108150997147112340528962251675047118150909988712495694366294770911268479835435639813586186323390618844795392547542917014764712858783085909828688395174935533081928930626310374120490400131591943210656763543848332238365240646025885506802138930407747560901830939738929115603239303531503229975963706389851074837007703379953385564930112786240068094456544832370303203255614010450813942132516069652488805186457808077548663964969363454285259535812751332221297444662088754002647453887758737005530589351130603486515783188968387471265597367551047968897386103399962132263244429172037411710650964749039517206462163223579701844375546566856508301740442798027165881956674595317686501895451536237422871989799690060224496657616218807840077345718858237888078193471903868979209613972907725942388014622192665945149219257824377618505597748019786835621157444332952067495488328377511877475037473355566733741239731730430558622422302940295052440304361946068732481263384556751202556011956525542604052707619883694942269415367144935241146701382043519328970403613525699102521958331906015109826403148106527988721024813704554432634221262678244452790800237278616396967951035233720838027505997169506965728544006735655503385164257676328540200459416417672201401539589267238440784653586729306509283683410161495010198284665996748617884022779874509482435009080130711688997782538233165567340812155918282238312963854848465201361983501576646741699924755445068346631786341814900459289645999597816402345843389870823298734263540868794031609202885084195537916194762590235638718048338159113498025759148533648635259452324108579022978734022662678649443587453617067960704975140823559228634844956205752634702059878594118402962827409924828557356684498707015577589770807162611935016911112072824321478335191496211353577441439536263901686754005949012325903195478024656824926404191812026738588898668594704526129936509710284864229399858058520282768220871399187062607959516199202450593037105153322876491063461535876775987944094251789993150230248512127838428401582495396901881961866750601002630767448449901684697898864359510573970009281590556386855732369707503650241546870115749735085199316680629818668718200327737705775978568418101512648929356581607235625799403233723939400417090643615568508490870921376900318393369537062469087397312874841025175452818621477183020495798367810006185480525432499901440500915416768205228540282756448173011842724972069416100897487561984096555280845449248012655881531866285024157809227394729810812020564484428399228714279361735892347299229305179899264341936460376019590225385740572685444785255517996803535524119185826190463656361922667896278139631458172456476646310234087743401405605964495383094020058435519667846191266304039445861447795448891203023790624064097206944635033987512652633196078781527988776852328703574184340621481988021184950825597461913662697315990527118141181822441177555490285559301685221897354860138384955021770656133654259000838960483875206707358379906491660000127882013396753952656243772660291597691110328787424846130551349461918660715424924304479458222046973994751154851957232599558844499138904861910798591558590813770404365526976623037371408946351070436212973139913851462155738177966355491423814180130745497604494012240549977670144550841397205088291448770959580748398568340673899158556764505362104799628301663565883160164905788884223918960208520798279707718603366952708139238975210704492817177464015000348848755503192236057503394064908810976007507726035274599267890537229839941531560707255604618309908934458033554617110432188516385862896200768898427471340333670046769695185708588834306365899366389905200744154475946337816479810731080832571822910308136508212253759896738756984136757029118901704188593629268323504315372257908350318047257288977820382592599082391475251806911239550445550945058977264185193121268970447146686034414468445669445185318446989127254397113089699302867369997740566575095631574948981373849370214235546486492357336766265345308368547107015606245950806146031171535924753143728246940167932914082997903969035477624984136337830736567456115632242270847778452619525435828487452486513733105546958928770592708775326883667627043299334146256618308297153246716004383771597873914827343062044927848450331900063817807500951270929734075492841986787670132730928606806732988539538731745450655809624441050454719798487319199392807558066097796274224375702948652481186902813485476121255761289348002928516886760884630050444771114292789515113050540122692860948560332852243913647688800906958783243214178644891837459530645291543556684190850165604956649143780794669791266936432505482024854980424472882489302085695497934729829254013884749047243698212364276818448431431821636175835103606523949060185844581650057993499122656261212557480712646791738635647498713256080798707069476740359476394299526808895101333900781268354775192561309563876287614144207762954279929377919931001808513876924835907359911946179872883539240613187937627743047728231976457148232394109935344348519916257220462625964757086370575763847202619917336874040866458181381901189878921350567037542366288474498582624437405539179741336969860105239811426338301734894206970191743855498946042511650508616512631146359631470916938531766625162867334690803539719540334551742848011472718356183678038950950767160874735668345576497868095506190154830460256828918905825528613853752817992417209110382760079954023780448451059721989298952596717352429608606281095022721235782325932114841415081956747180346508883391792910339363401944089610531044266711470091377638660576256476398837412385426652755900968921835554104991479672021436598428907825226944655436057374415442026332794939037589726948039303042085311128604632123967440016294464369135396953706640486976905889320652307143309924405674742918297627369958190823510017768929995029144148339561863574682566836173497634121775092092879463144160462427871963681204077247371732973141096863459292412669706499736627693032429064227945097669260217067362081386956095005254732956576543954213135044257816757157832763200356639965226848397247949420425108800068454978844768725263876340896972856950088463294228231863421332519356345945950660767038276909084119306494821027759422515808177263173756950172250885045137758392303640767417772438756297765476110319080955844644773826409569871460870471221889162396127861333599520958143320259823218832073307307984282123020222160616785327870794484647608655724932691748373543269472865103279856346656436853426126276746893670575543560283974957379170974360467400195482896594475687657863511826292945162297368439988316341003247628330605174439039614822163844871281412013738321538305488384018062926643460453732895387970970847244965642922098136023542847212466499547130112242101818978806427217137931798615241412496079127118021704422527445382679089566114839887684899776260709849477420581116567533865932224291195641873677094153311481570177669558425288042889171257229236515603710189523293172183116127006982631889812102101290831500196378878483515374812846858938494000435802566540910755605310982792127420979809801311535132569153239440557675874932889705763213254112638606595008228092922874398138936093006249056819459183405952129331092984423636258806024513983852395033162637388537270522080848186976772413017241020859835160153545257450071716956827097164364920601317499867696129621466323433847184122473020581322081688365509380190299360860853328225402301086581191228666908691158251460952400269445066421814642206452474808557378419860632215584836790768259890203477131735483863521295972152698364801374429249017282508010792106359998341267861667893182265655144782366152015738399364589659816727389849322658073687283869142786351043207825878769725749030881208762572204634912628629815704144664850374662794535914193603717024271780604296513142550789690553834203776816695515731831352371911352483220521490527053720283066356047625236285717729366425107911138110435256715202201621390891323820093745949865485720597862246266860335345158521406479208691314817620694509981582676494854649991526537782381833292012313458966542662996210623707012033909512194920328135414309891643193213341822533669877358028767576383439948522097994301172830202710691397978497569867684389717676112194650152054681892212404375585600968279554880745255869377609041622576673494959002759888470535264300899020834484312720379135128355493025261712540631670531015286232337671399242856844786637139150912503791833173698939775353121748771129814176519043445618143762440182157641016893694040357204608705774559409714207322095835689471130325813615141865910150810387992672749903335689562214862934002444932887822138671501378932939612601921059089080407633965504094436692778794046571101466836959257234289682599482352377655856287453117035943945278121339965255535208523015014372915003472694296785170407474909348562884932396024817909283901835081313954707432646562554460058054223752797460151300423735167226632973715375629403317718440290252421564671467449197509958322957711481412142879687227674382754163445032286270672797926894670634154782281725473745221489498897692041046924614983276061452449808204713941796410337871618985115159466620578141167869210306497862099072806940498635027106455673860592186155105136153662044788298526283851846455715643733244568888391857053297998749920571503595855968457274517839197341199876260942896692604164502357408370826013966838008625672465652032163268632321947854288531498947300348191708731414629803399614907433489842731900594966143178217657207043925464458464260186708804552789094707329385819907861242739796537768977158402149765623638528767632026674677277789470152513630221016558199474761494319158845420938884011918832207852992277377501059457874622767125133079430402745926897967967559316448390394259306105427663030715527297262067241481684198037278638617287733531786223298093962461679815754030399264167691467460665723538754898598142035254636442589306795154018133063746125878465724994538786450449688509833118225926180607525095387585561815339557279477406725527124006336840947986612945375310651254374897697391528155099409503854919420558053076520720267848336085093261017807718183481563566224135740186577479055580263155055376175723169344470954258061771111706911428551546341984490817340806065851486462707562353613344223330181825439355527651512959987695675462323760916157905186128590338426445369560793187361315186105178897261318381874870643366657331366351237677998144018614944428468704642150966900176006888934205172219513044270980864901609744519089285979776261371403392462809952569167437600512385602617048463114951606387862715764942870857291904121109310254663722736081182286672298396417950776036282738789909820819614962377154710788876397362340796761265130892272450431778452908917147946503272270983134948320984297621438735311715969282809614815273308506301032158517952985394688582940095178372022659534071112698568036999173674369737660888136949648846358765370910682332732039098291054041033448752713473367589688404872341381669755268868131910365911884911616593857508651204515384707361132992826730762731010842586551127634395294676021149431650190714939851624645304226257591249504366127876139592010596893906757463408843817869802419376805030250944536559070759117556913936234834498753462989327840607286574830845729727073477210943416073176450183762736842261928891638097543177689372314456315442896632499184231520058946199510041167731291151254612115295781404073835474200158378335538228712241112527196446558033486099622201338718600647745698568188527752497787418861722370174943903856658680847622027028346097093872902808964308455657290267916702113395515750205163939714418590539062876358531382248666139259986058786665556010952446510180940726661631787030355079950375449363544208185231069837242986932070975670823506129789969208705167247030059132585131731826842782376553869994449465834216530234878874661033822868824720324365668674905586267542717529497243158180695455942964714624898059663229148930231182261653103555459428933469281952819684134754273961975022862958233241888814050947126441464790471752834988203889411325023948259483431299789940120657591161999234473817297834436307650459924476093140406168326847408445426476175917963337113908066734776966008387646426552447301681942462042160845012859955559428043744723409083711610030970523325667242733773384325770214850854437830324193405814571427831776697609631884562521883833183324743683148793266856569733468963553536332014494358570556139969432283323257350178220775445794493967993201389703502019235082048254341185002945822906599152663196294631230627784268931927183418173524143809526614502475971527408260828651349333028629371050310050049732283449233118053703913477316155636040344257127334759676520239716056740137187292118051273123677329026355808197116680749858629085851938581313618854643986721813977891235512865759724512820461966950019720130737007914339552601875345140290461647723054346046835609916283187187043293981669668076906901425157432949750711730105024921421502306404130149313495724007295644011610767987606021624665541988317069758020417039830167079564876772728809007602583169136084776454160899231282738123189364472784744693803965847674238114807339619153917272894443740039616499814444181852369885311919446432960789694338382986293055055607724353637064590381694331125836618019437344791828373911606521595587537126101678018660764334272459664562341875022349215795377032236016941261260030988608087813711831485176813494605783246324582057634631564753499334031086931375892954431565225705264300088709328880181795027429936703775169039000313659479162960288913065120364198655033029728099591145326491551978489142259217302563275628342080668130596153022966676488244414590736527097114277457481126874483527915664874392313601436031145466587500149790603879897270558661045017333320978023105019659212788577940430807700828559385813673046805386501381359533254782408222602953554806499150670132975950429375920950423801335166247783552984625970663490062205145287574702749634214565365745822527430009205846617698761598532556675426883221497722436614132077322735707103934733270527314697637367608675944274004553358171872449292908172392974523672440511986032444224439266928924947849741296922901239775812944127585137499212680188548888001855775445569169157762142688277454482178918379233442745406506294300048101116738804252825820679191124764875297624366038576219085714068582454841849332755468911961025009760235513746435795760578256585484837597895623306863774464479524524538815456695880629558628674604890843475462712722145344954715970271818371304044281736755562733642488372888445697940526812667669380468834918968685389861051757208687719484703151041446127573528075763374012594970196960454580850680725854574345847463849986556151465237764026770109057244698545114656085388666759299257095037860718876494383429495782146170766489059169958647814919066830549737630195828646565416988029942007447866378485861391606001308003028854790391500997978269993858786237808594269659557018651952817386884119009561763254827485390863332845930846813812042096055645622455314011517845880304079498887689956271581993236281940379234977040947358436210407479286226469817105116573998257551538941786207279951430015827595219325246991945109240074277996859996437861725239125884365062173292646449123731353970735301213621512527124064965812768034149123097357793156277373659844133212337837822885601023353952032898913530384072258138890908907196235579100301947356800079206810717610968407705755115617905171094798658246088135679471509576364490317880372442817987987279623424754171976645535776634187875145783122109553996966111710804940308708933791187543150810719833250674561850811945375493807465783440497139597605741473702571589871830050882814925356322118069821316327471718812181683570469518344702463145973327926998953002613346096383984340383023870465859844151994036324923760484126753720997679379959852945017708661245803272219581050306399963076576851975859786176231853072903040252875803520423920907342418694687415552523331593209608872961767556187588387080190712043464917890025366234705258495720236233906317463110723144944626584990892395435093526726459471588850635320516623330393059217325411989421255591944060719029831513003552023649874048986817689801295102794105545653343293944266675156392282419982758781387566857207544465256610307564153251773800563805349253885928171135420808530090729829600444898642813752375110983513038616708835758036725281112935570121973383566184317814854818516104289707808979770055781765693093096853936200869990294444155811817583366106567197185649684520306842765197820887470458361163880250047154626480951790348986412560736688875137222937781585765248022809076063179667914422492270867936072629489853875714890390882579948452543849904974760214080733226797657369951912988217019503799682159782557643551699491374581398524707461571628275993429839077127273151527160562008767018566007509734755329413196913671751833832749068383731154985057919032494147099622642579650470571233113772425223034045801134104418164153546668894048280848818493620358528047434246963429349386747025441243059167874546585309520834727738506728241027129859167623049865332023194947836277524678641254359541086451523478249298848832044655335739600915300496208631517282881754079491009193059522702281817293045124277987144328657877994470058588708923717318717616687353357079952396384340451382707848028572849419219754486257667063041431522318811288773698898923903893807196730152564545596292243713129965856707213138866185867555385206119085402323607571761670112381530144319362275232176436905520275001584454862338648728777761245581180299283034592608738225487311441778061517868421039405136476192596129126376364576944449007801143324959394116282083881236378894325365951288297841635807167952023102308456557584426252859690698035429101043597482492986041863451715325443039479963670213625354827883059093292119200376007513564982337644021524735530193269794700390597601995150440752142992809045818447867892330708744695468744839540512564523104653945681621864398186560809219192500491489303151448675522052136113730189211764252334860156157163314642307569378804111490376453406180635154411799533448608339438194213524641396931980170454272505629108704455029519962368138650233160810691312449065253868026663953390371753515878349215729443208668281122788240128594241258225834597420899247112400835630903769721102695232185582579900501374444931969365324236140779657853423129728064522187781735022450915508152237488523859013300827190604244961572704129963147872166445716706121970479649361586963496399638642101217600212569594604581041384335374349761099591983835336230260748474284756807958864190260993120099852044963702616652894354218036360148851765234457957198144260918856934141872432040107156307996168680783326223758489458661664290599702893194710350887500551617320310993172031541140651506718390563322870601608209141752127229771444287088282793354447836908428578707174909514885972258170528859746356813928813833014199835610847336954611411519746881156226140937664227917167420309898174938560456277443372439974198749607539025192889126131551488881324978042154467121336228266078878894850699889657665398168430563608595231803205540600647012437396009320721106677988873610979702361858635536417025712143654295072543373190396947517041988407880687943328201217066327255965092424445554396519088927889701180120251498322977939464877577520847464080591846547532138642123553843923047199110051540440769758409584397387827133111759211184345936934286258836507523504954597663015006057229801174737624462698857817212042248591194371718536886383970486670093863872336891217430080085688887713340927220556506089579600722274762447194705296210582044720868510989187806863908010653372784838991354359344122565611059521178451612565902959233190896869772430359723836171384949471547883406402582312263843794859923572393451639077656197196872459891104052768397580620210245520059965621448941033666363583913312003393429353657028291573336570554257904218847087983057252332894547773954901390020372992079239934475629945610636420721537849205002950253819363131308777452429268211478351743114533616925789558138928611142720108514533918935642617926774642667202300508832792807108336071199822792821953569949954974739576707678250007253959160276002335805009556027423265986947432969135767804775481884686786532757484809032854837831225348015346142962817971660123542601298104645718001946513823291120795286536577142370679165683423573949829408084287652397842490094291351280973074284183301518629706572965213217771589457148934509556847150089672363250609816572779215192384580191449553731073168569855455568582964603153577393433587520085141429571510783955669145647567201112085287282460755008780915170221872657437549448891503959112882587964920801920867743371686377043648543602630968154943401629431155753480105985209693998236669133092850465346691329077038013650098360359107589537666666819986020278869777434924267514316754306582388516517922784021354061291720315907960265303518991356177918379773053532516341845478266923812436588612863020943177856480351448506368344249791830758295223852696089618367261496052170486941110831485279647138831811973427184862924964793115576438962529118241962334601924604148456767818714709378948204359308758711623009721549906595388017756695341046420950828629740128142762222856468016824704442192677796596359788042799280957151898070141931418208388942774276081033036064799853238258619048086506605994718132531998625984093107285802826013755975068169531603623623694090712658654293860251670421853547088238549726652330809995578740175081251931309520629329003419051790371587347999182577070887680044840043289260171164995782066784716397253341055632579395964179987569208376151452368043494955877283963192603466122616878122143946011944595449753733800781836460922686732341770680762004542646453592776148361387126074548947780928507533789645062286032104505832851026178585519487644301091188553995492745935378712963687447812795529492463116694660078373330200133196269710198396898359806297343718627649307993223022424765762022513708228234889666166423631829671788869239705677417034997524507982090762671134171940944301562887784221726921248083790575558393215961566292584273493414982730835189249707400850157123279965209389336367331993709472761664227245656914269192110345661963479502185321049377455445852320583660433907903296290644740103562659413994235635679136502288868108496813922194538625070833056329292993809217821976383270399103905398205266713109201446840540505532427096710744805945844828401000358761147713455564903399630471794519746177240366017667433582052254412607561686533098027852082094684349911086662865090187372729404874105049829586375622717125609711934286933701881316225814147929289808881651252262695171463156961824680721318325935161880613492447674738372917524973254049118824759903961794968456318709145068293084062847597486103652377580739603854577850380699675482573207621018203530551364117413297296531648351689650850163041812838356331237451481693408665302980512684309606571406538507847541087362298909076166327424387170331786642994216546456383978911681237864212738219728815736276862438436865022813952818522182861276998812919758830124069498048663830690174439148763846132118621319785139868067563484816481721413926524013014717681703645816951411090651580148874032654524655588476752932115419108561784667785971500467744232764107021426140835758308897731041335226822881894527695810918683336932812853524951927449974665445473219340758466639894163739289117846163235866097536418942767765810074517942042684207275768382645504099708554017692219438339707321441204374526460216931643289043051285044642037848201766686667132321625980965626632011375866799127337486892861403192526439028405707858169171982997554852279958776447689352978115626024892244626189187271939093088064161588387548814756971504676179291134578621746070280478762878027001752213691316953244633011017219600908849388959954935607167201754896383141492432511360208996371934386975024423031683337240160723962396212438243702962402881920465198873529843638685995166896241662752794419788962555221914511361526444378525048936162066439435261909484542918690906103338244054121993897601386163345377879249933342976757398403463901216054238197660367685146399306963015915398993524106506018649803418192830911400021969522469055685448327162708331133088649699070797399188227592108815779875415952217990398070891905266092779526264495860953273301231466341779779439030049320514682067806648685552966987817091257542066210082254712911084367102146689116226651039532868100271682042383522633121579182403669450079750229663037237746805534141778792226767842784858248425823530759165725981106443497158492532381057918797657760287741117021036632084172292359116746303331705375195275595850805004456998192024678201910375425395210264582138098641286443029648818095540093826166862853014959769653189025961544745852932623883882839199428527282818380449180477776356475192254837989145052510163884380326178407956312414411852818304255539566886978848244476235781582634444860653884772898844964136869569861890084619203072703761704819920640240312499940481319339010887755897075654992896251938170152060583013654726787691515467139590324143550772486420902977692693049030514732360275239259508497807109823799244702252696940240490749418433741522546497157705121446657760851579211354689894590951372045344360687066790015790516903839339148207077251771622999981802326262963416522205388745880665036176424419779602614852117253037592190905163880326996971424060084605895164573240176677421780816034016546693087796511543736531531167765002357006128800675411738104089794936229718354273322565723875458410089250242201495703577168984612836885960784298249470111707378763968190565908790951750053455959106256553802059068580049767795967420679886805400297793888242867952753812991818903927737971785467776393627928428229871047534304374686367387892480997039452253288810754179254550336873995868763285031556559673672497007533433508014504933260580971297505314071107855716979503883972051808419634433579705803702987951727286938015349299373288530555587804220264574115988045686458660858850345912636246733998610359239386141404003425131319235428139741714183017987519744688469742507554740191402130764869025820853832174759585866904772420772078535549345047619471516145214403287118386222546209892234819932658786117123435018765398153001512620129827823657158888815712456697118793092304870365448053918447778125802392207036112256028287234078719755074548239055492924106128503453756148431724669824059707915120219954254465609453038412396012056010865796511851844416455423873194851120619436191027088111853299446557989087599761629398210354908835113799112897489534317106505616494150348865331418214206380083489658097395840493074921280709252072150774888780726608032891125328180340102156217072683700546779742247224945075780240937839129344681728280662950972541098158841517149361713477878773210395508297117125971200561305680604771446017254276035774319346602399875664594727857600120485995360516995006088986595616437238768872246517069049822633040697409279572618130624579705865347250868512644358064358203772831261723498442248358133430678059495710560925625938854251160072111613831357316857418903496185160656533739622238705983567728839031229003682968664692094638370257039598178236995283623594414798835499040716995132948356428110589774850342771649291583056028548533396716902832444382762436301956379516951942201629750684197281549239463435259849464960304363041744090398248841238308012319013782066212353015189819132779251096738712559564499336937692453350075172459011228368696803549750832160184927923009314992762268553696025721002579923266693367894127623658367225865397013009055008844031996283240239592372658925023864265044847778022919257658318848921369374244385900339293278923290846497698637469378453913782032661687736162569857159855927715543309817647220061359814920740433912150836257293270009074852304093103726726116305576643258096536466970223821164318281537761937069891865355423415584613571470024171111401067874719401447123302138480628962231520634228967258099356971170930331354885538873013523168168921404616896964441930587075222093743325600123545963646346791257277613252812962625854345074018142304567759508608103021586315788883366947336278102912306686636705162092868376547347476486262041484958949772359339655568926163179268579798281538800712407169725208790768520831232418365155357720136124156505273775474059059699068825607810258497858367744647143641108288485378069202486724966628124960133516808671139897449120523427128395151594896467704079573405649099778445216820847516788322169830081416595668129944241090441920702046184873331835305338158887092286739198263612019991639607704393828536028192203416390408682472227551011085423728463078241994366524226455495113476492374068087669484169768902600759400191372142489003875593122792186761309591765061445473952123603392295765956604191150059213076615315512087608579600332470730882651037303811635604169152382618753116407420387162388898192360754342164060602694037025352531012496533586074765514309416745927936209768049522123483772934450731334862596661731510985225540811032319060609735289580897378963513341335483547325223704423219755758737613023990765063917948017128177603737881034376693391791356652098597716541347528643339851907750065273581825204933838043488499727814445191404377931189603792071941760138223078472251783081261097586521171226269790099812150732293528389468354873902365084711354813012351907793355407949405599502739946312921793464364570496210231355334319088043450042968386677428647525520356878052704077886925577879084152852339974922612755329370097628577225546795200680187601538934608844832363573101196183310391948216531462811698725084540288383923532408387377849191592600959610780901731311582439068345828058919543008735138401817562382881817942002629080640939616591819239178005213730404602383011962515495722249767051356432988394956772190231727851407317440173955185088361186243733320793686538524133609108521219498251465803972565504605275328130805873114065736340064149558760739317541261449290558030335775540634468598398157293922042967556073947297785189991362475557099055576253298120795723911672147014143219896729029622707880034265243218046539023208506044132683137774242277083461518662159700836054999019299070867711072699818830531108895647981454671665235345607669136923589343448303333966895009161925993693431904789428885252462421601355519057426464112117193816583243582894613821709983747582920458533708483847991905165477146692275549386933588553220245429457611961812112308200990311309187734933295210704861607890749188196137113490553378274577847190077257489684005349155686111999498914686663425635480711546794131425597914532652727649747435697060540550715009171014471310675452082816482164217515253323697708097314367379267526936198077476976851744242984824831939796937161731653791494732050503975013971865534752892981280214669159709949733023211189382634473206917534526842841207691133676494758545193348645966793723233276807083534719781399490478257280779522191577857985366352592725046950731413904542087296765795098222174584028922985345165531034511390136527682103164283435464306977338215376439002664740860564448184752223091753759334971482837704909887025343572398620172805194673345191850306469301992950611753562397632038293181338570218409470560807902748613134178421074434962110058110125778604742239286939176880918650861574968659976864228868703472048484947815957724485813783777964017011230431008220165308195032320769166806845955452781987363031791436988766536405254765395214530532744998787216175703433536101738088127240900635343118911465091986485930315748391446071899228984178639080287592596139735380065649661994167435511500261220193280148539632042988755587717433952787829052128422574146182950739150520950175342315860316249740145300328077340468640206191874974492566560161692599282470616791105672776357621468329293974306198677935604761397288419509308656705964728789724548725115787453240133638516373650871824715290977554315902490957028901184070406561186444907195281640641989143254430219589109118381656218487918479273646058953676283755692230813813631346318052765730903508771308468241216052403617227413064013300282910537829504248901870240351421751945404612211811786728588775424301756461355584808515710043133943523444626971149555752085447086414755754340885826344336789934322702545994313633112987770244073734455340285092413881562397271342966420225190013937931583488734353800151321976236978106130237116373005276018555489432750045719124626768330596772483332918317224407772275306934569271440426756724708700030996056507328529908549349651650155629909438964815088372010203314887002452687742262273615744785816084948384926713181024241103919653579402795453790893485464107414204506733611448411257350249768092165398889002793307562224886788925173094908970648512590384091745787367618621828141684540347436466655852427266498903280152477424400620241154069088913576000793338165783145943529186173203101559188258386543208274622021215809881288097205160123374832312068552406338193562624425128798143664953299503432119707738584063183493008026142374770884755741501007460641744141317245140545361571135354640350801832259676264220649150799600678994589599094990667592810789760824728872784397391039903871028044642364769700165814460650870034238024482682187074604613354275937031494901931859926331548042756318599352040050326954085211690535256071363246744473720827717295734234459988362647745802684166378361736532028927799024216548604477849475007592715214175487148773356377226320033449195857348685551231746912721491055418431002426281291266581646587714669560989514647997106540207579265585348158964512170868178057878440967643470797358003096779100578460368073499605875706604117981375325614550245173466191329108216857051551680887902081766673222128952371460382272111521975829814633051413020948107098671514051981229376701682779891217652368592562896978688096849258014230474256519506738868320992022741701187491568373434485307362030022441705944848742853747755355820645317163424698297471079283862158590390001270822314151289627144782488476489464058704862460118820642312275039179897245256692431949099562401345684248941951802496001952330828003874251309121236834641674867760083462578020410685110219528816430458404010095953533388377774906320560897605858559720114657523692566446512450079683911721629448167340388628902060122961212163296568425182360310302332558257904618394359104903232659181775815486933936041777688947188132568044169580805661640415207262166592980044647902803700267876515029739432544255237834320614236235916857138834233073014118635927634839239851066984818531326946731606077163010652958644231852650533159055422291737964199675344536766158940294359710387969412030828959886104564720682715994781969361616164350962997761169473255963259728807796554837902577771196128308555911913537768230075965441735096943927504977203906010718703381765529603946892926545063844477136219599123613148225077933110439836359375004218549760505552430669431035610888167854307799259788732069588919523155547167803808682705148884824975560723094242978282655755695654080948675009553161784373124797870402952610961690301656355830168529256444991009613930340926494658928361766491515477512265221898311772225973127343868333414127108807162041659448610056315057285795127366607826277486423133219729132158066228844429606370130681420946060467278277791078011816991971446505434670005223180283853504501863768887484298875912395525891669909403626662061712400191887459174867028524008934608911801211793839749533220206583065946737694285751585740306108911773679609433387038545999507801588578496468479634851538372055849409828965812459013894343962638203422456045307564311528846336908331710910802986634123205977098731991976215885874740205396208085841746039465882148153541309236956260871237837226712744713674704422406643159898047183213389849314980450003276829931533922845377815244346407037202110806803640442471620661418558631160439403697559440489445651991117632732139508411398187969161964134982134381000889160551604582661399557665013830308068351969236414947469232216903259691733033920861910737661699013429392140984497980310396588501369343368561664712167463934942554651515370611213893195953826872609676117984088876353992999789427633616584294258173857226642073000607938526013080544610241230184644178158820624734054819008766118739548721936257026879213223962587331208994107903001984687835159392452193788550824085405311160899656099252633152775915876745388968564572146595040601792859734971964497956121182812074932223049177957510448533317057337258906966895742224557181986363250796663294451933170354778235197285682531584303709928108954265691646552597862061840826626548395264555606058942068649400641862260240026133840427627634222679388721131809009444570567703881801438984624639085264731590408095264635478407796384311861154923023407496674931880574948256198667899029301925817851249753991387237246457542587309952332030286203719750201503562015222648437594798303356653148546853515822824166701546532491193541082385210796517498755161475506428341484460087391293307192465787223907306780619213606930696489101236398819881482104950556079837303824447369415582936415195596165496398687748108322161712267937645058363558838057775039787195648105162289069888359239001130168235794303738419060758642047034093343900854450024690228569100248729821739530551741570205839538582743571992723360459081541349189411356037969094433681306749378729254614513459257706080993312135086591575180146457907707040610569425251762110363239141679333090761615816076454379374774199312588276409923798984020778253765755189704952259683227620208444915085808951330100911329465866670825887809730456982236217210400381600630233295661703176334202767115949630652129872435911155355604857303236619041567658556916072364288830790000762667634721866887695667494969590475068213694342381428437358747129777898468844174137200362397027081172538247754484530875896430887942994520355527506806384875456255559038713804574534579915060662698173795507933998015196100375877590605828209932019603746776783197750589686581302542256940981716565321104263921626022875431858101971131340487762204830458686234311986832920074568279311485907771698860368628497949453643787346069165346632892878088484582928326159084692818661814553399400520505827899354717799109655215503749172636016075256226369852100343268628537879679073186027877690601289128377956378055979903864803187112521198379877676860938576021437270795887851911884229513694882107387335061801723665888701570760336741279623827837171129843010477610266362374979545666038037237060121142329179533988347761560951774199157582799267436607163652484795596478804839315860047362900416795759488467178681767827495114639561045177417697830223712731921191537442844638279955615649303914113533932640314234517007997473523285728365455674802066096226670204912387033390532626380930597791068580063335389894590369849688156694061614747241252577647961235745056173248345542118883951558316378862349982768905273877584922365811550198653971964640070009792561301657664152791683216260473703650010492546040953928272099372390979665258100296136133045475815607781223087083348273488550576199118289040652606869433502590613412566934795288251067155444260089620339850841730911195753335173222994152860113788010194547048083798500055372853515771360183286699261730661141446134533998436034719953680407197297044211750024084107199046279428966178552729954790799862419928438187707246068762151051365441872054191223575825855382037912939075172822557303462449619009419816437880365745065709260113694215359971446124147683846934361955359639599253323964167261380440053922291047826365552407910090654788172719578011871103216782835603054156739076557777204295061422770914454481214227228551484418808852711456712082880497598937845610202050872404787561275899336100239823497136595888299811059248921143384552664707172497396586875422383814125675780563910787568293695028316176605466970446240227852410398872587307812720481079847961482730190946550624577645243717181023675995991439040078952589952165368579162283385080099445065404999151282943483824386163757456771045682081799745670344449665977180189389599136226196937006962308289101818172366224320915745545430952763173949094020772213193450776814141585797760062101268609981111628216402620407159201360832648829572738176929450993990983157701636888044357950636620939999414820558521781505915720565466053461026523702395043663646518533502478330662909135119164573925294563439600988692701803620168542343643065118335882859840948098963213972258545899054369905831988581513057327503249094094822780222746600844003989045429940491603182029503692210452675440602298412035819692827894110207773249570119908375904876084098378498150984946954003433025750440974214995601868351787419476290346651425251004569148948892069636010432484867050008530544106077719911116730672789483329945733983869551340908391561517122559783214962097703939974568022604816378478138812245412112627771417699704107253362353938202138943832107715029964394496837212840135804482521621325949583755223057742169262011646412617629615444029983699590108854484604468208085189732067545467241429111971699040878501754045794395143684055066478337678308346079114399373569265993695011290649876157688699131335692221302862237894394557129407875152137036019846900661473468727659046818814716699310574283281025321250596278645052439548054541409029317630045252479588294511151407977038021817660332934706564930121408839098608558373043932908318280549083198089663154213225124330927010183319192357860759470156206370506235820110547663435993021690034886256164980934172895795809365317417093712632640794099932437399803030134034105316749407343474631549571119262188799843223597140326689610291681720360312841851725401957141928183349695465780394230998807677098076880485504919796848468620304330856404768165147596288131602440969933075995759813546988720470598859774895885425955332602176987182712001956868528441338231924250008131239918396375702688688270929695004002564720794284476097094177418423840501030971786959564325379731414126219913295657202644493769988301596619050927918594245015834192416857366696386993862664390193866458361471123844482805791223222623989440835298768600447520649985370357348194380247362617044535463959096617000617026988195808315401963112427588389577019474966543053198584537913610638817548810276503512901869379102200201391224602354093451761684003405001357970514609242738609514347372124655604490399643701645355099495209407615248580969280232140917597973485235844826649054697343425913228783497135093152273184452213660479098616203371542261812989388331758195828688520367966947714219296573681066831097764794394039718598745528699439089619732787032082622251374631915539281501202678195036716878391544988428236862273332843440383404056806207298648339332913236816533619891911069870431328098606238684949757484229408923341018110123409618820997320963746707110916121939697582624718065800412634177930860172294243135426773674680336761734722812911763440506777522058050019841303642704706374953064435787903508130268781037154621427990141398323407931563284936471755485979758573267902339909093586402638746948206967832656992993758070857201695855714673495518681113025795627610897782199337032290424908362558494948384559165654617729442134386333395691681790810373077519057943965884128410741987514064058972645099172598564823507118180273264392382853299608094945556505937147100122120878383799720797247840893900005936136158423284974061737169911638676502803542655860973631853629780434429388160530921546536789994314870941728236454711869996707237955332600035802618515663539991635634777439805992917712519005230399217049082973426132600031853633091600850795378416317873278289238345676094925974729755248556668821051202690285579544455183324979289070562548824777375664192360488932100276670419682926121119368179722602663232131408904937381016662972297938176359911625104329914959294290523425621796976842407387102903334096360372987567238489218865474970811074286821023624439275447763403820980125112503258953287791515125217582099113695960993035421361966263994932617873815175050509579243062669886820183357685938799561782216088207454401612609701292998787008886549948920675446311909863447719532663507797135681632742228172240976049004056070563259404632983820848925199159419083481500036689340763672738175323575131522835618052562785401526997523309481853738352356624468620588940942576101045750419691258378304573723158913353037081872822728877915551857178526523626564010106226515093304833477596871296279342720286288575789065541445265363626730946266219195373854981056347478758663761382391604408025527198587995670175687190723148953289836062531613552777476578574221902371204176741308824367630919720716984727249412268184381472612008183292532185016531625990799537930811591149607023033298949533488829115854604317017711380009169152531549471863934674618865639482452314856862157935137116786642531093633820102503527201340952012808884879905025249123821646660319388697132854782427170562849435455150632175316307676899502552971111812177617883042239635187695992726558216835602766762084984785662079310013984701857674870953865930943127074293431688980983767366024918967499514015232780336272075773269424620131633610662589248612512868212469464351132936268116729626625717880999894816084870564007927381118432712358407504413642460981358183924299023849586536306009389674070130500206688049413512671931739714535575547196995957413157605634705830939145677610851273053388686592271331278425341765221983672075408892442214120495483630509104907471010652259123477914771556799827202986950386991497626577544941941213290702638387017561618597919373693057476208619404770848155095861854858448988463518094625247783198995456251525236855166993878724832489795458804214500525964812261523235838582795836641695675159871869840823916413190354112103607503105339035881029309677914895881402324061153532669898450331599622598878791969506287559414720612926602727237844365222272264796791003558220917932147110140895857686648296026098033664477808482620211105910225951214547730417840877620768111656185975907271582420669165968177407225814199751427498167059714177488699557763990598707583370240831634258110425552147562312425182257892431467743277400205421473537188785057940343887354958360379490269086784291837747897206417997555500952126883751403014747938417170128202188673618092822691144621335576960790219798394422921953757264918396872776120261331512068979279949584871435592518026749319656984389884562021725686077780649174005524567575363390348324722557967213133253208581081623974917441054075461597575366315921747943502698260573349850409930223275945759409248954626405497338535734517753712053351371475854198100558819730242518863031886982710906715618730971165697850970695142776079982933170731775674678158812317974548538632518454368689166652552377056741479996713286507671608336316328856423726138212380623821697067433323811993759272812457647465066762064143376398579641590259755694022508923365302427338297187926639070291527304838042638021283400582673904540708113052921977618789843178083353234717462288801257411815065795516553682995112732200198182504634601044334544296259495713917859197215266909233148524933281400505485866889324737801248908418678983955913202333448460132682617277021101378360138457472068738531598301576240917620579739352967900125286478522520717918513903911165721071035971537102454617268818320667362297877318961283582292192136991906598983345012527977456388839470898124323664206636204701540026179293506222931760404043362075858303760438654513586641378129124585720904025575400063082106336898438913111937261025283930807190479333536150202723284056564171992389864885785400222814500457712301995078232013513525819446941396578161906970000819213251275498816400915362732094687565193817518363587934047245506581540786762265065448729248337368250872744079814264282358424442672982797560005397238118980641984342294789408252665600221022893048727010100426715719640225185960247863723010942206739016461585338694110070579833497498323411743576741443146990996168761205921684460727141605196046476010836926958585986667266215016704996421900685389301050728736057581287335667931531414340119646364577260611788225065624202940677756926128890369363682649531736197050226877182026598620069175778583725233912128886786558141719593445137948596914726906338518525840884533986384740586937699476810803343886519272638766211135212594492135510832259005698922371795712691559563798770791774557375491664557756401597430145783139145040848128047612185955647331535135865014573734973310011443608590147350264002048716441144456353618307172888811397067391880162410730448167324747439740573693701019606543175502567760554240705901198037545064371388077374468977135641953577547378365584590595244420296261466722312223475182036882479179364487856485502032715002174700101186980477074255652983525312672136432708337312733337566361967871088650239719228272008258506754792220750976991998686890661566603996469428668858187462507816479201049103474798272700600969594636912005673965904837146643189311891758198005576381593085320113883086283572500941924298275768622598002657263276350330819632918655326937902900002883577629275487596348691308911856579106916830567004932775814430184994728815792947938383514662322085955258743412547369003406257184880584063175031466688507715969469749242412706565864335471462657818081629122364942942710926328977779753597885192996167105708569808061146257565405365912324878289730528044522547911582938627126262009154141410155508506145410564546674171296618015105873248006006981668866870286990469139567095053741803315960973867758779298607194537364022418473000257329331812905254672464945399514457797245763900012830590127194647339245355096374843365547179917431865962685591255086756502806714786895175856873164455056018518201599142465302773617658224769491586046186006863552852581281637324485715199536792823919577594201350652093338077347739514684345830300333259419921770850503205169916439916413631067270732527282924746581896245860489366194470623814815805476091617250754821326848460659463679517329128463197952261418287282017108563797657233557737305452783195784767727354773506573755246704323615326899883702803154123777858751185306733897138389820751686647649068351403140663677066147115177507327416894539780926203333455833250824358871710505712656668375846518238484741057650033909227742793720370257144438545284435712705787945714200331675129094997528041595614916128408606872106670799486545225099517868642387786299993193234060303354284701492310376338275546487864833699907739277279721706522183204954423967060147032437890957877541018425892941316676504151640277400381997672278981244620978072297764134202857316207075675656014257383149036725780636321445532778346395095754548084228709274206593161310432849941042702806212528864155894144530692136446816976160286847776035806321466255970094649101737951415077611172741043712655630862375114972792004786639971748780329893073482077902215938955228920008293691101382265853071589825070164362344193466772365748589537434794134017934407124829783847158408510538443922051253546452642350539779390280517373599812486400664946284466094958506809098917455728212436434921348621056679177041242183949334286335072529661242496075721635336236118704577603237110313606333382672304694640736012768123148670175780030871556927216843668724073966748119465222940010134317222322180295838772316199998236265893838606226160322566277917028362649088501922189446842737344990143072707998497228402058783763046221296709559185198012747524280687140557602495188410232670849177806157389694827077828602711176452114864271881973561398524333855618168043641262034155749721348921162402531997189760005500954015452033606726491560710410140530976672752802388426156754158876646892245873981087842682824694426470983351705392870930774595929677806860359436859272508459138506157956830765813369040506210430879426114827883135550700498520256315433985472755210287125313206909228545747699265585878732011605197590620849164276327307033892203043031750534375288080160715671368927478878311563724051291750844719998808388509649511225160960314199034480033712686062866385636645775592981676026059288384288299547986235588238385623914743475501779204572326670297135457487841936575582958795506781739614562142273095583083440535595674004294384711212699800472131403950098599576219155445688659577924818309062709481960016984820357621980595442687581445585015152239749205598176836477714146750986265668840536495702545695731501456506154571973882546347977760831199446296117778126718236958317351892953428341550385486830578184136169427911949787478640709615643516859143771019190143894075962918537930566315364571461755569794381444220679859335965224823239009629396184298609666203592516863382838655875374088464182331426770813619276670816057375407045607769009682200660563553878766989317718325813162928272473989557140052120921165653846745017118668577289817703105940481203709768097089619311127863393540508063794224550062223601422242497919377935387890461450290588244394415592303950749654213077696964731086779923899757326071201758089917294908861746405637388975218306972109799376521376969821996898950906408225134532139650895446182286048764418551672213785373153601489597631849501636935816228204235691101429587092648217956221417851848345478698821203735609260369641168209182268049111761640262915988481698996760014395274346497724081192625824897751068226854260407659788228094296348286769860908634219643355042661447621653069650158937327984816886882834904602613097727912983857145239810403858767412339219790994810529040493768855494874994966600404134737378671002414318068726905728583890486953459488252247821088260027604302013961744024308420138928276854911141825874075424113588768242508528944669187424132670820722247043035079939263980587927662438038872653640081163949848502508635416433952352357533510891833160010529868390202561813675317662274400564060715977241806839964546233728341507585397665243129137646540531468571451495620068930428778249776088816900848317072842656781105623139897158244217326440582987569034503113969386274245138361763359918628293128453034058059623627494149304049535278492080080454044038437704529831896098225813446133683633145174564888629215028694900491924059805240944227121325346024205212390237282165679019029986126205484031619182710291140785110177208183538013041156754605637310772744499247215037463233347333470460758927980586494694058462868954307818849191133685873017023517561448709038911532404446518310635343472453100011019837847782664974143305162023838908626150006525902386079892165566223658503553467543857998856637172345298511344797237550971803993399205443166254344834131172612069361185607178830935012757908375280632379742195682064461371930390067364784209594809248157351940888585169323779764646376255176083593341452803373504557273349566838303533263113456280678603178088858478469889117539725917515094518821820908962382376068838100298915713762706378122802164704039422967666659313692708449256817849981848811860331341113874904218458147759614036325167072520712898085805552325449649147919015495051059791881778703772691479867044128546095313085031058908006562574829586737871005991077636914944810102549374715547364650158926181560179346319420733315490976899657220742039545400414469614013443737242412786472188852547595161936820528617140953048737818003822949468685367339585363270347098182249955609578194817999361347852067084072616857879295874743191571845337215754230128980497025775752646629011746430362900033252712270733711715367849745535535734214527255885929042747798858132618251790199882641742780482298706084662582908974191734922523517865184496725432380309496996607160492332141532422317503818177208543036701793410431588717551130836790892570184019414657436466816998184992716988856225578108205212996278600638965019639760149902395514267018892770813562639322832849442580447858319905285358967828830668620919414172056604473674103053190723127671711957525424313650319873992935348660203219357375925164817980810406257597633708158912494570460494484863974269545519009326858281833893196055567271276330244259971175568687448223698606969160887211673492502331701510195751481695960683339448248783699324424754574087166553568202312495773818969873059418140328379212821699775121088376514299717491297927366315177911879733454691264306425931890640411510820924905869446037728265535501739361201998001575299505655131818063608146760871309219836433453294196507312832396965076592776631885077758140295360246695976206708925187438922141862625964602730335284511347438368492827361210688681112780934054648663697469553869256124466283063033562835606199071067347635749635726268071429950840947524325580985277679686385003222831851801063431530160278770843689480170610908569164546204306415819451229761818218078352758190471215573012914792721400796143960772751797250035535214094298382018250918872640926499435379993113935310223873839783610739420699962288841202705691292489676296505630478003225095154721071527710558413424322786149752320515636707524298191674082098465769101008085893051060724931739629652170086610834139060945971910847437178193186444134742439551882571113046014373799820922629926750825664677450781316817495119547610410547000428774541255731553730251601657057282784977712746292961619216102244840079495111295518229509483576539435957360315199421749851801204860272622002979408088934437796737368009311935121308000804609835382063303976871080308031601767792944209522700604669614489209484324173780357832832913012388719622971274396869936730584418735499708045427870035208148976862520322061116502531439715042442462527251760000907162233631609036948119709025751582659271553706785147246792707310946125730200537687951213099801514126882775774509825732456655472868831298766864293639138788562405486949645879602382292389379715877158346789529922981193317177751453765573010279723197509066743078057958473161538883474487803921597261915720179136160802211896898944550446487328636935939758370898447077203360197096494560681637636162901467732698031364238216460724745026688663049459078750326418433277588192823826531024297746426813545769438213730860245980546356010557248541884424081324993080181762810242085138902238103012094863973005303304866708868764694040662861939014411978310090434251634204956245518456183664720985965381008927329560286376004572418040777986007492388301614306957437176139570588011765658230485150360006450395872323257622974589641824770192909290498881508932705177807678333307716022797180321698195087717274056945796460020685861310018822260075448785389449504417377968935533155892386484196908138241826775397149788557495807015636056627173013163569792812101883538877899555680739624303777720092592697045541673529290142934602873264962248151394810274833113428755257026990870170566397763337359689719390448261440102253241925043763344880580025218390802023447743480680861741862213303885937529287680403681824435153503602260930822533081099257789058733227093975319241011742777710631843731451261510685663546256276748649336055639744611223700774152816606085074846039661626767090717421782789741800015013549408566942312371810699505955521105030145727037140087390165858749412392787080250661790025848772333466167905956314049911690642092581105221566760068731446189154435933290476653551952757543713199249524925367006566900287160506460361995450813567185074057591424519565412254860201191369856645635470037818475113270296911108408013921336172097736563977563934622656392164534902554333756040410714706390065304064463097677519231628036710109823177015645282648264728923551181223579356729108632007591906243236100961190971296474554694552665210549784776806733916148196877610815245581511536559006808269858654147034995171511560532575562321805902562729854599427321701570239287052419478127168062468130406591793713638456766315613762932091971703348565158229109166066111473902822603616193537125623339464824914566369283545375018213199320497480980999554035449663180632820755152929463496577298364972390723469307658409618340381051038899425155775199567630633519108525071681586456995213812022267415349421817174758783930855657021279333444144672304910632483961328208770040403078389631588490052987696166863166047983035798844863601124653124639557856352109087271873821679418381467206350522649762205935106084880366689806733077109128670770470519652156152085391732392685646008634493957357287388540847685475714420129364292182621508847451121833109626492903883759182444163976371737905534637610358079986234383929026207032140492332702963496804130836317258748229054817675680483460237307332463584817604794384406500488355519821184210899803795888602920284663000343548494242083218956415801216958055990514146671941233313076089413047423249246670497758100128971660844147225154813067757118898666962543838336235845299611469030502361810481082497737666329906683466982555796977608040532637162365758297685967777777423118282049325260214892925151381351249213120660743775113981235800306626501124625846242656027321098636643393817019471983441981586725406891344911048845953717360380757420553775633238596567050008327913339691260903380706392588319117941149130772323582667583893292183508621067032158800141924750132683997057647824025199922630792277520955141952115095779074207167765289338765738897586700611645272771795782831335381434272125278604046774647292992394516441637509070037818973229082783244730735285169638161117520045076627381217983762239204066818621426808397418582699085952726157375982969044994820314798669159353123101138442286332314319042950981721044655527893651796715397470514833709542939491289987347106200123218639907179041985930847680999230712736685960387913520610849424656651060660614915662547741454162447455030532662323041791240042533146803410487349493563637781762351840814521008297161734323779555966761943923066270092211134668443524612988190482063067621882174968765160284751783949301778328283303888087687402221594900182376846734538921457250296118934084863085173623334910053532804945747257780009225389837619100758854001257283522091855278686835526742179060052991701563081993393829364023562270586290398946501976542575916712118962243943191166766521694702312996905004121691787929446263809212819517500168430190127172050293610997807501929123158684256750449890613113227682606518745201638021655861496326678308244631181187681235327807216602589642951211185179764566420714934770892630517287270261602204687821424307754981562504228820080504621610218320963062789831869613421293774729493297141473860549849725197085542507946578061191943938519855686436742741976006576571555953275632561313361139097673345398850343687395614168229017722607562550466134266581862749479059269100648717187966852518569608539096081988047831292310289262997349132450056647169345997508888608467552505625265951164703916097488915124365965355203744407963155778213559976468203423416369572434073789370838654556090278865340881515089157684699436850024049202297738429166835479267952547472180848678866851448787753739847410676865787345336818440779277862694281356154545488722767449808932727324122841174113220642606141487490564216774055841788098275763877095573575848405320873230025062617287965805406955782538056804193295482984447959859515703350348473706015801608723937920896413237918381245016580683379102553226657233666519194008461910281851483941070400633060367249366849873599134517964539749212784741194613228221989119898317034109886492139043976095765590589560058778302006285650423964471018204979225313640791399317572807182265023393045757766948609574789520591253385830543391179760238887799695714292659076560122678462297267816992545738146583876251684048769130185425822660263886107004838287985424714423639423736591504652619097100843025910835194418044515588647502889460610182506552517464273668313784702499619636811652822433075949549958732675329426436059505797201850583385338015914966423092002047057406606586277105091721382580190486576545965401774855147733120224505398376743402082833764934611991952159704412143833968849739742631267244362661129516085846163485640709044844289689163322772767320849932616451250868771052755592720422523338409934372530575351783971915938987101166983758923669146606671866678668763944097555269115688655975788889530649209242422901956117048441465261852118995326662948304831484959764586598846196190790340560005260418908202143950711558924287959088645322645637539821336707631144048483850220049415381064518983749304240977346792157108125619467287926844125158304303508993101604649494280980674629021077523296131140495229236386318075498690560841248180763939343172400705457947672969136173857765990018756030931275499806694543318431156525794385395099141411225626041068984893447618970396127014180359103834120303490462822168249668566502503521591158446248510463692707317376332351707791951339966346917322605036918678353736204886302502853763310229818375337995178276484428624120590737220698082960836790288482193328842540954341947729024774582898909459922918070138819043488195528763964876157857815685944853629253661355891308432870455100092469292821152997721347788527555784304831031898186064696421476651486420663963099546522286710944917783046449329446392370873586871623862042905836773360716887328855984086338988478368498248232812152360374964907251404890742088915703993834257194725643191869946760869948940452202256044924328785043985930622840943957220502419761945923833271395917744228082773979223786642632804668286330330044961565660388257338639563393595230170487288661877185440732891616915123304306170531096929058548893645658679287094004529773989802627800776152933168459383511385070218009654711407783117279186820865752260087527446243534981769576353690238724715257075177147592583564911714041293401977367623868741979457170041922325148205204333456937959022015753462914901850227628220409624166715269414449468746226144318739732796361138595161436291926020937590903195950908648963306888908323196381028536050318971770027372439803462015463636310437099525918684331576706855930371244573353443006724343632254751917062920374976571081307033668971204987141045593732058988944409639715158677125636895457978540972249085075620477721923424901687316580443886252000319397821455975619769146726653566347399113666363004800062929784460015421162265484962664939517243648943559248143422349644976793266477495088300573271434349317513482574981004611675593988865253235837548518521034676666983809050913928060670687043511125051889503693327281764436366031906066450799568306693513979989146369725328158824945786948934129738662224383649277543712148987485204991538236082129732667900073708355551549023304663733403187817852252948878624876289149290143928959635360282016541297773176667140571203589680291390895362268584539440209377194957145884198499550463739946952092840508355113771237252664790813247534474563999820217154127107531516267264895584912834604776290611141715262396712983195853454526949717085656286428273200109610680646173622836336516414923957041948017627350760763933784984967495738685411983825615268959095239316214955360308568394690463374054500957510599567732209092415982549188484207578797695852277119788496775638788034465601330255419210494895519721540504259823318922205158654643065911799741158321988994986996422065990702453988894915128511937731994564728778846007964258344436607954359731885866291144253229915963262099491822289595950869568877119257884381125564950470834902125263045312151499709462194854805940667031208754071643868136639441889085935945154108334227961050617573940602087103830290964384919555667246834524706085586551064628830208438201287174653227120356969323688192658709329474765626062520672494784572130575448445120140240194321982962774720300745987747130386824565705167463480479148598029536505383191729281524414464915595781122837907935836448604317860603171766833559192744508874281808130287215874857672896916264129760681625114280867188091256514234717600792796069750549396941658076080167416887893017983454149284291861519603333353356430913784807345324566792545713107005501143307202246673554545616751686166904508870742122708239229925600951530886850109125647187373741832334922797709477313964738311518007646680153126061867542403871423356208283348345236783679877738650522297731968461340752738960552009930643467027375786264827356480561157316805130925089885348386203773750714073384618563697431059823930765382328954830929035871698755066143418541576476309870564560794243145907789568828517585464490243267772228417560506156364029782492855218971010788254367635187094093130865927746938398168986708708509892316657120632074090503324038189151145675475986489394462804147431757074481893134810775807767728861185670360563768299533124339815166106345860083637774754390378417963477349735737379915859786625252130727735964308945426560849855956982126520681012110867821335323875728215526633948829677219639172456853998640696268478493917237770947980462830406939924302529090301943853912076146970193632746842071546460988760153701661192948777884311512097616834380512735997000044174302221933151313765730384932623905031511103948591788765209534138107172898653739864721578069666957283301204544873252226360170113464852078884521427611030837730929480616954437658608716949102557000968183263178900557186955887748823990625617407478325581009653514077845050123985552511022345561148357196839085016291927543766584583705548312372849043819237308913919848090336640446887859307963650366384258870445562801979979331230878081300668467186928402255229197692971838012854063767304816172977619213384876959184851824603655087252374770714914869553586243634773116320296268995144785964389029560847592388027025312602222756785584041187938985497325232559628308687453511743844353906508291125379284750243104931795898197110973591818982262522474614761208489067227479105063861292067559297324914563942646502619324880012561945080302621113690059787381524649908563684443064149694804038130947460526109393094992464639941712668967251552184269207663497761798241160214218488100109624222224802414601914828110770858202160730629699077439358785812374939092140430846481755722161924756831741364851037107964785746801173620017795955743809424788161154908704823715852347293075602330889561265105766342039586840218933931784921781759844739555412627617238036746257297010562041161200840293695155234012277899346666977486068672847801190329267979885872722008566057314770038354670334095354683678809077051634540279200212436278859509064062014524256764292623775421196124159465803939623029971562814294322836539462300679031161023652470670319731458648085786971225283524923042458925801181334770516637761638536047724331444607924078851504811246895674433437397005581686205253412755315393730590785888517624314097402700579886855877313733412350945433832257328246801191331004193222880774516932976046897951402506509595707106957781151583954778853321420171958650660038711872042566092767919440878585706814766681468769744356443409509386300610513524622352017876085388268899941057671157889492850107787073124987673394415926390491350045292856020330597323675278566899292256224923636873442705520596928667025290565299463587393978628559822782338093159185925719586160777563065477305899847415039623573597275203878801237562164407281037329167954598342123128142420540935957873913810457472561568216831758225140632600940461266843428388119797855984968643973930593678409581368613895442454687527419227796853721284639579792456942194359251810093976909028105520913619458947110180254450229515020436174914843467767810040356734247109272853095107240325046826709853768428276971945516655911167380985095362113559188303335073215799880834364217116201887116118601754571227397463126135341959599102460508096718629356698423031620099949579552256119766698372577353180478300109227454701822716402584181609905338093805504293548099261567041205720724123154932629184085927756713181948997288629899013774490072807956777916166242413347904069024640675265118130259458004740547215692959143289696407454573062543847459227800296170427177350935910994644790150490581490757369297588081738902825494299940138431068740876086386205251393724277829405884868395443217999942725293472103838798135955076946920124781671271590375528186955575465183613817251231645325144817507569391372642447853827361945765791466880904555535820356413851653718547805156511592391519020373979339713006792059086901041607338125190021483246505232196003709608285998458867718677706444608555942456623692053249587310068205702242512594121210179189405611961820426439896555644875599279460749511288365536345505772310585279548118863556781743137303764857566705333985963542227674784393481816240665679775754616455476301854661177948684552744969167759009042102570347818858646162664738911803096185351371757491958543680125062472903367677523192755971068159878528913055690638342011656428483076858445164038804590730809240638562270153481575307822513611111329352234962947163765215611167476723651317714579846635771113437571327181391333896811820097242356728508257239644700972153855518418758112058534637797976250280879512927349793041245443665848600365966722916363203918894718422294613210013400183462501742265681179661877993099494930425989669606088399490839430411207861502878374370422890857567110168415491449632064358441575877406558878066027848698235413318783008992423977485363041781860422773135097320128191461962413670707210601012626600047824539061557897606432492395906093032391293421271771466906787105693544605045072533486325682113980859719521574906512375870764535342330645384985768554651036214267572049213475952370747783500262266106567467260977698001375184748572636931938762835093115288367400821526609922644211283870974395695848370407972269429355712775603758298753343284304926561346979866112233249865881366723235894597203937455010095662601596728829669117131197770991918818827931815948107201836662226205987580358364013313180724055443888225450152188201163231870284572920098817784802033074073962466560931638756384443675519806578818558262640189259499721168056453532230317474973152463828297403334308719068789382672371314357279361010978621738771920289233468741723605237208065864806760353959085740892800800417893816322415790364978951207118821743362776096816061904649590151879828771859734189849883034487930777283480287632051747517024328667334251233359440117327575063084307335826981963302647960154776782120889318730580456698793600788083213910150347413488355242322515342607682297759688170022551914151965217911649916171695572566137770316993281054583617293384701145365472635752988406187712893184487030984746514423499072910725213301831047953275400787523954829669904966610156644404135202909473976098643096569547116370654418992953676214714066315871895978684986920348522628475565188791831654954617164405014840383176048518126483872139461575307777779146639108484279347946786498303684508408998596189410813460704130404519722404857336263212070848074057988034101458092170611346597647639845237789470459902754329987344430839760592384230465304205404049537920379926977544622762216006733018600614833233720168607002169855804889806584525001455314373614347844837999164168912596303413737627899742263857362196098243893918550278565725069646583651296318744732506453784712325669917087737080714634767858662338833031883410545028069437522029615167677799612682766553539552591594991244206560267924104425820570103747762381645997884569106766145513230800184278436294665943188599526305421629700134240827334159249186629742516999289107865463457182535133965264516989925803422887682616152988514071261015164133939330799588349213061536443866181295716521270358892981909888529217139373946960402963380155793915088231417089795989523170582676970104646334790922783571740007316922064947327991022358561810788201500571697461832411953495618144363465967783180751486626966003023901452150887223453609399861940423853443689854830118587355708937035627242884104695048846361961134338665799030199526067132272615661645213556103495222483425841410528580374440137043196755380126630056241963312921800702161178728154394288101121214313490945457532090590435438660449331698929106074625816896256028358907199584658287304125171333311771837417418898063146944245815097322066756956198748909106343615382354513067182952710614140087440998480674283417093063200953058163901495984530754003335249292924517751179798719448973495898414776648411452410381199427863472908616887027773553891906684175413024730092142930910479509303643950539763535249064653588098181458269343117018951170718254934967791014361311911943589711135345423718174650124519822680969078151169040759087851465076357892801300392679399013307874397134677825959239283693342901271502467762997719002792690784184352771871954684550128672762500696882098532780212423950026526705809528969877288330446233552978001764903351391344317767866569776957168290212196898633678602825493537341167227826209383121487919650941254688238065352032873103560262061383310231028333671994378848223587001852893222786940316761818783276661915343376759909472521031076998858945993549432802313682924080272465254988006924078574766920441766742143517227011178486944435881444610920890999236361288857569661125272820738963194754029319308678990593545171767223730083874585145743637459554170656030693148224562210123364664522513733030727574051843901717841524612046344500401313967035390003689446627622777351159878499225790999816402610087395820994000933305549103913168048397276318427147303030272567221592835556644999035652010738650173594396921795679951508473216631518415049423383601760449665238617888840659619471846493946977744017315702128107796781987625173128644965509446546522543179038582298072148413133068976800009549796101822189721812671656872616257773739138408570030333429039474910378393572126617408049633405579779892797427567153936773809259463783999925198075269884277636855851165407603414019900269023910391714934250985234181159771347205074052144883769914587893398113156238797371579785362940219805017297772401460012135205326001515029243270883950359818571527205158311884300668882822438082964503036032450403763609908382625112643405330807881869448272531060425006846964566081425367067489638309152149494018856028922096358797334925656492162443646764872919922937193808290267950612781569454162240933458195363553853503478599932460079947511669102604729350575678211207437686156452861689575260583891227793720077071610877559704330463150548877106556670657641444000830691363012038397274043037057276687976920666823737032145092932335443615695730392296005931325891124050279241297815666980049783635607574432286733422747431858253551529683908769345479018052716128533309718122964643979834047231463129122642371585534681962098345219650096465629720173529334768333617373206724911217358467241533274458541911264302346383425809503588325602949640602519003764951534794243363260173365100323455943362842699930363661349363987171812875810496140137144956935370379165897339734788615765636772755997329990884216788666584770925455120891894122724144264236675132830276948048229818312067907698433848463215467690202588003789527357203105875168956117859381430118240223666402563286769390011996309344183348774225578614787210879331679063656258859432379815126110357586882198841865563757880545028146459697251383589849393333030194206834466055045190964010163583515224875905580241363937438666906622460703112384192166579444142082570626663920417189371963283855107940412723434469226319915953348488571232429333121446929706921580253458528762044175383341708210714904130307734518496766746876667103866789108124086195549941747232348610473481596416288795945221684265331775521168860971562669234705435380896431746015119937676348162052413427947285678092867617496365068019904041405355084718127830824009561939883234383161890746669844102959229880826709834164880537168285663549867541291796428029984334850885718271077935329923408581297112365332124634442058982784914693868510116387572447607344420474725708296642466664173023009341646383984011589980721804747145307629538463273922651316058356445076397304062389514686773198244557600710963558111194312080120945529713438283341915982174963982493352529307082431130000658565381172891621118731981507003753986438412479151738532809872982199295697513249290079154275282965244195688914497328067645649186251964669473724879681252679292635192207747224319857199433149691558128832731313346359895210486235032010534940879983009270766801633614014446054946156324360979424579155487721694293982369261750099948316209901497797777357583161476842574443687670158618756262500577051452802888379927010356052219388268834952121053413999792019667069842114275106558813012667282934248032905527075293748593370209493224239489259396838729387071740453480630961797763758927890517160443418083816652303950170738022128595194048862959780563155208151561660127531613464914190531064276506994519448445535349578711568820177299950241727429400812712558291251869108540456426531246417812287438310447368298664035655139598644386731639987164039985059673784757559951872685916169843749260914907243725958772287920753950238220915802103779648754867586988679589639077315447410925819516147549276864499904284404671144581799241741409216008783880252408530063208621166576249800411851128024527770512655410321827895701828875661630735689390681861127665850612756099339363688837478484086958670173832258640950621711302065179082060563591849398649626063215379335485317014292015885711608324634409331142414045394527239254649070657461140932900197456495495250348083321284925847091397548767918217094972251688506385878620168139382823393880290454534906392365822026612391468971704798365650457898507081883833366674130931942971667183998625243230077357310360780387063507820835294187335218660477697704198284851958033322896810767586388381656630199365508633480077010727786571619243940953248808285502411237546447518300327927784385127229709851978783969603111378526770563396855389856824392862243615005717146460375125983411018351350635088259159042844538608186652315258026555333750839251935688059222683608916684564463038161379307832583325871886233112162098988556142007413606973401314303906450127749499010856691124060485395045911611344575043053960154858559359252304000844394491768895085363388921348756628800904191254147996516294309962327475255329217854079254852663074238631628084769774160683603754754332001524694022024685647648170719197151277096920528038528847980855629568514432118831031303909638605368334839035373329491967607966237634586954833850332194035462739345410997387739281784440893218836423407328389178683528063581252346809255790091220483409906776279391761084189134827766262813004696261305640513859566978835748895036425105285946737926848147336449472852287092297349016189300922701466648739185185103121833447947630651040943535507414591145849215978066649518716473606920188809069762284463701244798330173971369737490765471974500547591260472889766383300888377746274273396005530534207080822142797180147622827195468242469940817747577716906002845536431536580233547131932174945914894968225798634970109077948074008211385774564758496939973715698846428702435005044657007331754163720042526212340916037089843754193860355425469713558304399756975982831544809421553857424588066164728186840976072326592399153711177204908611085771393547657695547011372425639829048426335245691328096743789883506294141088421008297434238318380450884209186684426470804592784693877885744258688181272055787422051726792342940224143353768796217543581021413835148165933242995035207266403372459928699087479675691632627093805773608868443005661875975119853439537743741661091639467861808982186112927336504408328585350520449294825200518161156461490233630003563192252585522571468367712019228839480057885030632950264614856531341639935632456023675729618853795429510133958250823524854587325689659148716332427351768776374716470429872013810493886849035226202255570483944567762073738500365320608923654426952836693016559449001217446094085706970936171300745933093513108952961418065592571992153863427322781256667818290169787957554883660934316482037255511230432370150405263377999166379922359262459934931346357062524201519007783333293536181549780518292827264592014186051828698839962743915945228427784914493345045803482768232310056955741785511994632565577591695877808748029612316374772317045754488494234480096984603294400942548175191486239787488412308797425126226181831154577892456894471958051894398894138473716976555013848794738800498601471483377377512609999951192119929707531132285542739942674136304806046490261314285516665935052520595666649777613285457629251991302878039846505080592175121725282780537274727058362694630653628410236132557136616917996012865797865252975303561207784863911787324401323779533179971182311143537278017504184192639552618689822141569104910564631211648361704899885363518646588507099011242368872258707227920223213032912822234271588180693387796880937698187028185491027708121272763472356963263235497528426058745879028641914382497936265435699854095401146552027061079065365512933004110512710913089443554063437117219008855985607728582279490267081194057424919406037159008079476104388646902697481974407522230452780613518772141833266551853595263757247192416342911838233111278978680425108570313097995762174112492328580315912619165863531990649856986456127610622411246235447024479054704528002468212181145732791063548811414223705134165088938217977405676102631897851168332240683834669059620308037896411705802312040023032966773944645018625545553098233487976552877661049842299354876921145430000453048354217994435168328247045961447030141875733818521775783536089005700543084625094581698010795414753359896340034575407909802276593220347408455010056555902274606821623413745526807305663107087949213191649991960333090597977568001539667021107028739301371794349993906377119897904526945843258990925628594315626070967228940514868503314196420796003883829769010341665336069602141811829211714887501389116216378953322894741113332329251070197646742969402708425378109714526914541307201085522222625913493438905750645637075444733705793054984460016154829599948800841018769255213900704604404404563436687361202577689650155042771872147264727749862571508060772822576492553340393008468139278096021406279489594255223213601807847272846212841718759348400195664236094552103297571186541993302189460306956174094009233472932559027415620121622036315556112934583409791506106660075893472873923714702924710152950820250726978156082750951312722703029321521139071955237216162665451892854578599282027970991339394237051967262259957017373685027455887541257440943974661163258268669716212023110026294793539559348629990961672746512407340112758736109734028300802375369055444761130792945040115832325548882871358331511517079486070341753756972014909218180647163098685271621467482207484175283411343371190818278668796162863845264285546729605953980157586779850313390102607828954990834358659489468039950515803761965224198052174901107118546202131319573304463512028255249149141709320505015849831664694187238259010839427818454015007690964437360912604424771498084728694738900607076082156276269641873893997630140463153593783719123220767098933117917687255989869257500461639078531256623499725370004892893563059455405939586189600693926502532959389835141570134992164875163691891018744942149968560010761616818316587411556757109988150590609196499383437012985710132775007997267675419787764011494074493812611462119036028912599173287243924689330505689856085351293148131880257701831607371254185977554583642507693303558225430308816418036409516938308196453514241183650560868049070578823409718274759275554972522915085319903698131157665590197057586302620906576338128958911628553781190528772805669864594586040256168361953595262015097263773495265358936241337763824933879579704277966397913830816222853344818981363551987374018499444560480367467606476960711280497497204517848455779277085905560480350827873094244671457646116941844987908400581906688604499505172547508426977887313502337381447588404771392955637280953357660988106681931657219183623133922933635077692423561476742738042684782943348890364789868161844263887659201947800960147077080470101299182897013062203454972126220146883357394639305297373940983903197153041807719786230822195026589483532770859627558048536290294813191097335568555794954156748541885020494708119419522207471764714343099862266953520732491159619517971005293574938727349413894105596806136811293666902679222559609822370631276306554724811652755525334539596082982509274156473452356907490620749921606486113446383173171056128143825469421246966080589935216010403522569735261349620190396450456610329563624388458583627426435531850583291088087307947494520305561235779731500770862354217388417711323616310365880592924728840333664987082999717300374087197812457014684292384322137336417820016723334275439208700318843582647524843613883806690151120043160088894236351320100260245223252360382156995453964158595008395400685537070607045491784075163299614058213907062785462253025047162827057741275282018198363089991853494603207597967328746842150750708241054270347160630933276728298769332104943879044402575808836565377236072560909584672515949335299384344977530395659137940353389260648833942161215477223365593437507740907080079197566537424513778065915040149590678694238020344369306490259952651842685572432226465571189880213260788386010986888837893036911435186171821399850912578951405356686783728650959376840047131116927698432883468830798477506491942838611957276477312949423615366649583398349107835063063359529637506950876365837650674391369210730541739236370056594272021570591675604290180827373176742762098069378986862702481532523871340733826012686451382751564621439935851742057753343460886068853886467339828688625904249738132679468484387455167193213590871965026574228507417262930660614544757560812605272416982496043532889298255322106672577626465813500863333268869656241508565797920411304618098798163606394873273633522608473279273132719463134840191918885458453958085220833618414706738706987017692127188261060513917355776517841852964758564895831554214454241454768425821726058477628598541650583990363455891270502535372717830033466351520785124908423545345861946081199743297055261417843770426617263493291725801624586482545199236868332257918407800539255563193681547849299361079440997204136895617712190368781607228374839166816511938526057569566128769557832710409548128411129918853128754980377130083689160597375822092458644246201271286027395862154785587236943915973142081665975363707937001973984593619346080664825863038993046889608616173937053959041593734070518611620147074996188973191899143370977656215147334697749649493442646872947544856962388202225225633103847878499415786274064357946161106328336169317834154837581097428039035517915735185278667841819534803176805753557583223353545288046356967634933165787406202693919909295505941992810380049674454300527244015152844145908138355638656500629291016414895209682353613228377506163699442770833578848279548009608536806721679936231106283141986362221543328365455472702129437462507634271154535941473016594476712454521648483099822938294501311099563963878759111647789041514127473946273633037869732943392564622194474965946455976450063271330850697607655912801919314594308087579842457822265667377186148871282355376679680854113707020711598525162008073719856167970377697823260470410968333967639193244119697401513580555723134740211744296387600889526949138629074929611091326904858679002372976305068079645137263926251323658914388536852992974116228649738280455757933362964882072286967529374816353533228924043522099742420231485831795096787435791030800768886840599436141626348536060970828421950741907943660143307775199643007480175496578267314061279766282523462282451756139730519299182882997461384170760077797150378809107918428847881638175880770172575877810624434907285883188672890433354264479328012468900853776537793606582043750833940605579055126602419078428022362996518986093373236368058996118829920023634147101868263807810007990818592606598203908423203502775886328430832976511592269886448329766233738374809698373142241197358032062044784448715021229870219063911155099147533270764579189825118434381232162074068134000783759073517841736874217194604607667595948013658993675955063455408479892072401821163365089209794465892467086514132077535232617968893116075972724963543321689336740145898859281810319490081468613886424251888052813878321648623501671731240471766722171295937019382440191268898749350706564430340806422713306255271346188121105190810953318245651924380328392144850932982131018136776839526365295310502000896071793059652851230731571397000918518434687102824635388674166919404491127481479739692139372601192051258012990076952738475603326804226242056766221476319117561129820561805433228972945281103657583123908652328962380646414775932477109242507881064052358831238834529745992220111558444092366986270535040116420254642063680903924899748170293074036561675768568961386743882169995002326581482881438829670669130188542693880773480234274807531331344113706093968630701849439200847179059641822378841765365406106355357316331789243421820737815449482227406530416060588066393641747176905935650099187315279293340444890642445514924130933592895885865745443389028514504432648995082491491950383128281445971677614870055178841450129538507227541346006668207643066155005859581692866925055117918701568342046600796292758227782394322973686744196206497370404337693147731825712860087386102596139977672062637460610612990004868443631696710160176329525050973071490439419223088471394015427417143045608097926965364205449196112750440485496975972269602115025307545584827953053412959678395307947891501097934121971221792971567133311989352360691761531306426681865505602729814351244490513363692823087644525261571907494305537582302204133657638488855281615822610704657568462876542173080993683670560093471256761094967667946180931681750474236319158970776439790878030597313676856356424107759501405390533382153096540171720474733117241258448397987398595598583356314267624898099294180892686268329589426126894112899309669994703027246383959677562122008018398943423005124195776768264446086468418289183292010955431355696315337608038078169037037180123176092473660689649102303438559009947347275871247933480127717603009915243956255633514498242040115396103029780745943979835548071138778775329158757142295093383988218337219836364053740407425391557470010487241593259189699709932817993397323224613129916986595053833954582087143111149943761491836032347093108171491433031611287541957041485852361800420787103166137253170053526630303434884605398623773476939978269749494135659140034583136999679503405036930322746735635131641563370663245206153566262829628325437479289867012216688731162503829539411147787891116685873881659411096623932891190704027397794921881645631130853631709403231225606563156076139206207337734488854620508734552007251547278909124120314690319831818130664799729157247526541374365573793534775432689189076855790806838071918477257695032097282160513895897269244556082543092134186899750531973399475797108855997784596482347957746883153733096666652946523452203366777208023739287795645275559388188311995684114778251704040990048266748045533003671990413738585281117545763589437079067179290950725227762811885050653291298641597621383567809323642878966261640417679232358601492683709865722563931196833118675176966207134893117275415872043740358325332861672955155371266393155121705412735071595230487324237630231790718148641468151428698084243893004372735057922936364461303583577843974257579108390401715298661150459151644879689338064181976718879863585148863818204007356371656764356972086139468559708979837978106494000890677789138835961944715512027458269285290748526716251574296495307974495047739753437242517610245786169704915203941095768593303301992749547004339579622996014835692641875586643352531414719582728708258328258768645692086541638767177159391499339760192718340373875299344803325826770976845842065621185669585754185148096036726123325746317790454710884916025668271243747911495116888277863566911138616871017135853211234381672136114304811400767733070693855305619751107129031708988194774373553172778940382846734065325890494958519401857529451987169727101530984520994217280834346729260068917951617699593927031864779171997384027500597876265602096581321985374878960418985449254455770473006978299617436850043297615749359955551899014607373244497238885206985587836743213597282055425210939846941318082834693764080155604135931432951729843745974991918198226347973535683510380126077451611435621321164298667767158542712790439731968209581618783362052439926256213050746038520358742357569258231758014095238114599538939248578186040630129015378052831014043848706982354802108291158363938495591139759085952299990368321541018261859479204804793015441101304488206511385818538231763784643881653422260304023165004820885451895502920688106342218291936551139526644809720243360733771094706629635209852560796531210199635574674734350386279215923695254570218265226325945098720210691202766968441359772648324989205452647681276211448902448332251878262119932675595563348348083460278531971470096613647513042202494978010316908870273689006768455712746748018314558203862788147328245795568962364213209611187979825879104319483219079365773314152902492489661559357467474935423303146926032795870129508127900305650879714546294479905702145250400504878636608913510482049382878842661985005303330802286186852097152590932407912328579755791699995602505796726284451650025306525907088480296220670296780323243515932236653833282673478389373109831822421422848912590916593895176264309246628877208184184844884588516027164187072405682862635378552804332074599551962786827889996730577044248304882943471905650175853241290039041659442532809273372979578787571837305635498951661923731185781572502155602598820630939242104358633497941050530192930416411756473141088945021825714886262280006332622371926055307914440778918926867536406219600662630150735937916738624190889852941640436708150510535251935914110388736567432846963183871631999896989911056404618621121587951493137160004491874549835524245178284159403189310752392012686685889352640738993643601970067736627072470164635344542390482475721355423623776810662672488947700295902559892029753635877539780398737821955909451267342819754148654939895518195721368950441629150850779770485930274115037940816684988347163939281632109200449775716918906927889770657084538509560067807979052691854630525564873924771980502959783179284355513515066931346688048734436991824640070797097744616151714044893856892373509505155136458787788120505732924973130911037114851180670017649566212205603629802320414537960037210903920858028288487406465278663477639339760546794217258532416202180718099195818553526498939348064746035321034274078483384668519583521008299513717360974949166538568732860592068696016770007023117764202103228852789445473321646675846594791169874690484814508951426929610237633638595698868939798869690366256891936771727888645828366839358785547493421681905414331490268364595741381200533394923395211356740237361817626370241291852783557296547649898454083974463066666154834228173252254072273336477227724454674081203592500834081215932629522276894775037384479854084802186318221930587016940445693493278551182135945472419557301442830915721049883885436141084662615169606332088495454246707187021678926834240767365593167103143690143926831600470500592697687476046622340942360599586671750653534292347664774482186034240252905164444186459056582271366595084883891022286228719478025924928711084335947847109948865825585405958987441517061039451879662058648078250652024697875582447628681754836378150617976441443985411992735235173740007453893869156324816162394093544912185589645541336842424971167601715683434023352166130156112628478677197666596084206638309098345369199270862074846838119439849232719233703558489062063240405973672104580893599806240843984559796547288613091794698824850665735487442396266696708737888590740516203927404271530353824638201599507513258756860854910008398426704765936748592794615831158718144389104819361407586567924993198106624231779381514874984402042101714905501443868584590339362434142731882206314783444798601603248290549598702529360153587683297429265930867964756131491381318936239244262781364421700438921889411811955426607326432639315238959629607336696672649586776690238524462841863907196903107687652705210663530130290159033346779561519699228514679389019852651246831227011240014785377369757535342214622428032330388560063151565775474871767381364781696184701553867788480633243037575912777130910676479513977531985324386304783916721607697116674159850824941016357605696404738650148416545810408910102733633920577627481668587297647515452594716742501734020634682717919737379971328683532784563742120887606317263956956712604107440107921493805980214235470560420500688945887731496411262477526800727526283799406043069840017145353560034775176731726108334071095437598272917753590191427826786387444627058944934921166347636324854872947160241040810855564812380962833097521540651144604052456738056569445796060874853756703472686227512833640551298731472479171365199039815674643842531700388378618198733781280034240217064324687427732602836679206444387937026805761078211080871446765659311795398991222391125283563695526569138015499856413907879282920811634836692394722520826412720893435697723614769069775320046291230993916117505200996759339938016202131233183882912768320430417690121933729909018813140500942613651722424988573552908311276318776308048531287851971828319854522434112741090053465833766680240637410816621852109671013303351171567731462789136741296896668050411026700679127166006279070601777174033698021168739274776822315967414790166396583452354509320913358908195725293153994765967353308331467843497272295995834857217226368039592326021611284528041482803151137638586544701775998703734706807866604431210601193674471438106777916370893854208699388999929409984035959097572242424113212078842361850176574065880545430599140619018912617299906093835209000958093864852263610460595368342008898861391252958118038763177598476547524768701586022310673335115604874531325499160727663287181364631762187653349961244214961911949986859995196033406847336841768394935015316625935434999062102500095443225060572979363035764045891053313298748203996253261399790955496696370962771916019384402373241605684935761499904106676225023185651277902355000112645125459656828379209795294155746219475233666620918928481133021651327557232954177847721550647285156020880950711312554210880955656035633221383747205383264476960431624969984750621573267627959719912840172054379466610356262123783449128509993410471712429382158067980516649782015787766529907200024936672832576202080982328021027260628576900848718957252205541195240920885341597628328656001821859207464554061524735314854474399895057131136990861762419308091575422086467971341870352882891990923514231800720516007762356152504537238051910838766211846436599150152736395518341449503443736260400294189009220049951866030166571444588833284689510172270237638118459123121192042508905865664495740770692098342414653475844085088349678970736248568368061654410506530745445313929693773797870493036787849624563340958866508546559942136546172908077573099615645680556533953923501844296555916467628663360855100688176026938288225977940963284640516704379676250710200673052637095589926291253143054996765481684703507925810017347518536191799645418351818446790902813914650159364929362290664598586287995514066133858639381330368397367608891935220905825611254588252055538519343009816666408104809857978422655390143631374261771078796786756931746124448092226543710598548387409959075798935390193834988100363162429874087025879323848323594232826430911291596509615270889448082942605078959773859986574735187135965540525643781292243919252156663727191525327591995961548312508870337797300319442618938680752251766359973048588774139379662973395014156671956560376373546945185966874362735847251134099019757624466487268596026167990544634423372776704105988528275728910713718616610014269144989499892587586735039200394316476862673410741635173916987345717651645247965995510641995687057674884120299850170606064695682155819497238467389459722695415891247890883413304367037107360388601003858940212746304339851103654578371843061736695068196387161991128827208393528465672513464169322838381543796603003190560372266427198925927296301317959193973324890064497290890656744107561230278654787048888282271483311516923177734457137476904185979995693062905480780662954095738686482465974552434345738486971811226313945069730381053344244085126918296945025456760065131464502872982463260473756153076615460879136350783291270808441917613656530845811088003750216246265031263285534063727229085154381694730053155231460423398895596090305345345601133754005794874046969089183619780375472185084307971885952975591559532711276990497729252943749567434897758239678172569060136870525027536407200212133126134144676480779362288470162099510860802475926821814555427037160953683190469163538328295086371553888836516064832770432869774123075351706444828987435928652716788101946041242718822838346183476055018564335839794325692777919234276642278340249695565800175272889831017098930316121570658133335348111687737522582630660472993664801311721938792479520657633811758191715150197550109066545255989193579545385349600624582761130308459800515353350978497516101976404083235377650052402357900109851913991595913897282273026013393603411461874759637987992259583054169287408013397816507936485994786346342815165927207972809382314328298122300954150307602000009993572790882209766661339895487765105639368255585513505433329694587508595610668731398945951107128581870303273109358943037670560248286503690417579528665361892512418236856291312370903609707205481127147884256402665040637775080927589922090453446153223968514432430754247034003880295334169051414688269090232798748260384699296035747020331884592726373339435910910483325762514663600160802067605879046629795279300062222134038704422972347924660663140212406426930374773599488407634464866176059928963984763456765171682482159807517885311083865031148211695853606668972916091331214847724371863483840161055702257430835762341067851296044919976352569777083748168710862699285115845476502738737979466204710873124270024689368215248751506880941573051009721923807751568188183685624324031460146623912220468356930704147937935768569739501380648494334310707422851281178643883844238925248149398098995043263773432689286518830601436329695240563920514387372158989039783834228806824871366399591186144510336654790574772189914958041314600845153737817263936040635202504275343335217876386898017216023562232022697496970375625852211049089662487589889595640322833971875498552334597424550849979001462726338087614678081081044086597217873436714242350312393414721507445967550999630205567768503795336486232046715907573041140096036432632727954808580181655376069013293489281068375001856939463389958395717786342472583522818101766727583552717476374331933010391243899021504782216473666766222255903109560641590074910355155357442949688703644466623640173549546316278528069303423483784456544140302269157949752747580609397649572475352144135592494167638111060457790752663464577590867908385660541600096829536071894985788408026554010261962734967694224626264804809342935993399639639976621054122661614528911484643149836198342001049007975123723530936625571046744587296058139667841252824006000267997468510977827910738075419064849096839878222732462907967897391930853822219117553531572480846822675224176957322021243305349550331851510137001433656489532903658734329079439074587553136724514719396630551523226516563921856415201143383466577656803658028587615218511941482631885886686007715999469015476364201396445452514067311388008495192748837907320791072785675251815514881682826483373508266023457745245557796595054836528228537872297737574189980013007424894055404051587282464715342934327425702050274628252177639836866086376814433304476469831455876789413825668227716021881215613102555662013393155976389574300568653506459191008857049493061409580683586317462336492702050891284184359748830536790187074030155353679387757437681492215999172315784699329528837388416157915921778083781049087743453389191406794128925523174356753629946345541496030535561249976695859331914587428797849795851530008763024968870462418470702857462510090670425290943996475211452793259603618107811360103621478648776124964645845370747398068903681092627794519399885637869738376523700466027650229133527850423990461540308179244863336446170468608869059107652805550465675626688202078218653948445362645065062281420532955125836813757115572282749724772952447008206362376600472260270071760012953827998636013337283952326744562834996838021641726376004517041422763129504013879834473523718720099939223272376894579253155444177900217768307626069713876335556020459854079005930984653100526800786028393973884043487164780607916081437310955788796902752274220726032921312195600193141777796038226341196614222988579707719437088898103415611587263111695491572298737221704833479430785176141571699336167202455219989256701182662992587152513270459267035006812947888419100745269449944911521901102897858197010778144289966235461781680106152758339545185030368625815515796966212725087537655764952209750774553135201173029182908858840460134636329732855208601708331892104080684171732184344051425920305595239897837041013227541343574598356908058072639977091956176974208583077496687219312887082350252837563938410513541447433664878975087100538088414679831765893335922594872756103859238242041417516879676898784543846845728913056134469635317748070954063131142710757323708752720997703044524190678272280398601725514663343654386116938705684134607826761982533947296151608278028428168619583199613005641610419486776289543907794185723951262162517302124889600893838120669609814654061661332579084429447249926769603463782205526300254706678783765041163235589220429300189298381797053935039407718235557645001231680567733298073745280547889899292895827904911823100415869330806508371349432075372038702184691829843475357393098750039357969206184324981414591443760012993973060728412870490711602361602810259355101931377733057832559253354188205095415928887198081455022256021051414736792499857036645834902398931750475282238556583350807610359145601737429218002861418060197649063863725183204236142568255202848511074918572718058091003241684480293166382866100168748549076482263880847771697141553600129725510063525834025260333871881187113617456372496633049888919825160868664599548747297263901415040326824984198497639904415201390877400683659284885851681292829548778701351058470052532159521477593423381188769354314525821200044495159924214624827256142274715832514630722723257174545455523360529705210519380979314995082431434772592839248152851115012029533575143354532226069136396852685813942712647526520608198528661697189074420240680512162521653801635537893070438221769847072472431300595605726837032489972017558656039894138779878019068109622869719026256535934193142778103162175586322762886067007593043355861911518474163312452568225306990470277237990999482594986129186796192601542241389990946360475437199160510477582279434475461604439009289683872110508040425855379184908004535393315877987114240099531146985295718501053145802697438290473169599438942324663325346191145414286269056764111756258649037446595988975111017424723318733086855395779177305030388120877564217319067628205626858262651930563874428508374337203152221770547891548137542427021520597666896836698359250208467673142038145803570858267039769235290907865154367620718178992964200074899234797599217802810122974625282846517834171544416855873546600978474743907712476503234730427704452212217650917955662300337414896582682724633054792254458253193019531794895648624513679142304649370616688270083354838222538504177053148743638680925758594684586671487518280579918587240969028920125985996820953427087290835593929123395791833939618234034505923410971100524278996737913873382263606128858694208452931686341247458547430408348569006203311733554700325145185888314601913422452374796248419187302176881869150825398758271096352885687809818541664081433099248437423021629860144335709241579016561149832489857300399402382688978912003598047450825534505371421100473531150256926594400362700438115460331374368466912945245732405589828674832873671731476672437787815311479141854862737412088358361488992252957678903150487335698338673870192019798375905330754427401458406748646251972295182537779747821265879656705658003832559024479229539297928141480956422081974453313992209070232910442965096918815351943369720382922813360471505548806146416463965712602517485483016861286000516918875633212597575800303391073652120426023013017400316330587896154142945576665406770109366579841787119015736006907093832541607113119660352691503225381768569740235195509309349240319934925037007400941405964569576014656413371642438737478049936581390244988549775700893808758327496460509100315487697190661131590124245154184954660054258698075636225670999632144276378981044871985918957660617728128842440208018892606341458793836505769970584648785108437765973353649449404641859239344024742433223554051838713860743246076040842152069320901196698486453756705302465441130851017714955541327491422907427059188439112883796119683254375131431622852524868389847277470333682134115168001248509295090351727997594824229958273690677947211894939612569190174942564478819964809638840072144839124319583695702321513088132775497480003838433264979156524012303700208014343944402557557768798907590435305987437350317478370107782842730024368086592674899164998261705794283912842806483710370575502802535984387842876278591220685834433082128952928120695875094971356407440323973974015621581204010945138353883328098235473406005117820362537939600657778473401408018389640309679953671412127742214829081008957013290940021664946623593049103928097345558411007382829937426267934181363267800864778612663393005650048244513022852802833858932867544878289771800292713950622606877574339802256799116435285487087700604374664155110419392660097571279303007393546396086983387914660802637036469868894371646315611359176172993934774893918525575004085085139016483040848983639429638089973908491340185667785174326659299031543930536485521774821996621002688973545776801256764307124779607102217879472022086383812941697689885109348384717022687838409492355352697005575591013207952238750985206282661860623085493181766284216438416742053484569852026971855320064933606551286732983194005393068812584066318797514322281772692022483748225960749942509228182713864087226292446499775287951135168175318094756589948634561109600232622663860245608978230267563652171176605041931186184959033234464555114564214322000721298688551758135889969925862896658124629717470202737686784404796465743432328488475235968282548994844869840839890038773859367411739494626130569145072150980692237217605852742028230967030008846973270977576188466982086604298388267237572456494255525273066185827492622442738694682648174233519071415176656590266476931871086532903576015595801824080560654930358832281788543655542393035736657280209503196243022810794729064079955291554470877074053948851591284710056075339847123617807665651006777589370842145080416797345692529248975422033297068160174521984793308977694004343723107695171795814167121294707047790788924846370799309140179056303575628040617644813232954170687598129837309498347154317669653211423675352223499916598319092244958084654742634329131398018142683185043916908302253045005524814275814619397674492262081029262862633793599617732533459361310947826305198235225644651061416799804017376639777681987120270182482933104220751642114010364904388863563209188718553828366334858158482077418196346076848846844343948004443316966051823600747608032960431945171419558004232370631506844840343342844770103011932247388329661473849851360468884404321762271411553855754658298325369825300830370944166748848388421634490335955150971775900916828483322083216755473796886232401378932723391308125800955489622842866305540065099310917837666458633476591630837871517648462826297830068982609602243416445866986139509563044431314916790532532851524189126986056090069254046374794068674188187902149595218282694668535298242614934660123080080779755382323229614435731723809762993699436333685190290871377597238734177948394258550771821267213527744880734936262074414878882572378469670351252934609627040498620560658317996998172721883627272684467562461185793581600595273605379416997719093277134967528316583141709582137107114895629294370752147219483404726717811702581718626506854993512551191530437239864252040539904884606248597768977509933153048391434502765821311718187390424760948562809364578817042689833041672903725359820681591245184837520752104009317396941355031529474582465559894828151369749382256128425435046991797758089334963276812601304595128076198872657064694411595404269279119047184802950062252154410503205009897799578340503962721895301802488581664086521202981255673992858153193957153044492623133373501028235560458281557393066774550111013935432194004263215266716531591719404533575746331234585882602094342898441742004661232692800304378377741133525591847418767653727997853860824858984511616575660694777903203642208710631303008606026124509606107016154239336270713097492133050850144585116211082366821288969417651146926536988810368306910211568697322975668861136067280955955233874207358687427022488193180753023401213996702540357464869231268202292095374329376235177813782354274467531875165224475037126795911276337470748743658718768341910700214035004320930870322665730912520642706400398859033437898732559901885013935984482307740931089754985944759886679310039042977426641439437989486397168930974299214906869783333521050073558913935001968904281155138532760904375715832996071741607113023988045399592805803476193449524084818144255715060503796253625913772659570348769368621610877610020990629717479807543541574089381221270341134570943065593502963284517028186996500554374362519346725892716241228325003764334866295827943588780635808019635129518704331258883972566715281913360196717136904694655082877159357069899742400248727740616159448949273513401924466090619017989020725847843473770409869298000523650799407279377723592511861718621117870249358454387557802004520446169605156166912286995905731888996107023683817809887343885204541797541290687936420017467803740168056943357450965022187878863450400019863235077080954334127314479427706082295337157106034402201499377258389528677501290162757413957758566690264864566816593337348317581613231845399573433657160825354521486333176673317615650046958632603264761400162555418780073724772641042837706922759556093785845577043034850957453813439537551810129329564697576704305740970909899676371792802814313068077737804341018604482518710320564470959307426604673545685019592453994716173934448179430875422239670523494055981843861125471353360071989621503099689018606177388199620865157075180291990656343016797633659541093710499232473345040166650873819252685615674678575802878957213408133887016855785685577183036606018195122916096201074713205439457709874255479947568713874454786497925652784846230818278971478940309982843423972311398173143965335078605271901531051714580544408155545038149541311573549138951053289332437734592192033068123762203494422967869440745072789665239932596860297218753051442387231292089653520865167989272171372972187146950084667336955232505352894640127275547958771584160904596481917711737197633376747533051427525013554309508763547912026168206718702307009944593691739031781402260722074417070041450114582032699852875063809869319650790838206513864712906081843618963085425285216207830223604622068032219276102536267616499192651533656214427910506989680155168965208976224860416705951164143062474033388160207462545893243673840369116405871745107903997791855652296145721683868270580536982071344684777487209457559642790317034896573105467858048844174345430092693601820450274587213563498692107336515748308150318521555314188413681506971258783823059106931526437385387765463455656732909703342931896995296409082252527336300556788873912209857911829591699162497074673593796528114264446002655784931319923780520951601964593657042290738356754770960499701568708794289426938963713003218328123195757978003116984896663376632965642857871969879958768249899043786339703412583687952495852105291564040969519904916361697135396506326309187740412352910970752212200503517573303219930915491422263703025553867600096795339355071571886414818727980156911221625494752204355438594884371512621600185068637722511610236354094997209185981650026848429639204359399722358083745614070364093846016078312821892370278823256477965651260608642697018956645474680138821479386401063503746720052278542704674242605492322963796165472391317379202044219951272573571055210377253368426174037698644998814060757434296453280100767045144095087405384978760860056532056870404867604299842694025219199502542942491316425420575322296332317120812198019076695495009917703759814743131209141550478324215410026824661302861594717155099263217013817139611254173715832007468904352557148793450375179173571964790259722532582861335363543666165079563567986240533964886206790977544078947051353963060060738672261080048617434313097214141117482901497909690132413153752559120049617679802639396623711302763968333951203965480928438148763677209619055910104216794173736283246208920531748004961742678132666188195366704145062707606358463874732614577076543410309452450821146486454251926976335048502713585092338937309309998980854081609022980094140638775558527846693393876797245758784464009056790206290794657348886010309221008327111765921916563905677334917417888411151239394600354595669984483629504270757519531283286670763609975262602315256369948098810021956193061333250937837293956354671232143076948887801979233588216584219589538188490666159397836509573336956365379872741930434072183287233569688795066361374800988155327305237620000345970390885206834428091229953901219754791734488983063180414048282368689432268566819861348931199320495332689376513076903950596197575538001452480993926073185530911764111119937348281750640749517139146420305472426135453976191175472981366883378055521182853945824781002744274122846084424773192021545259632005453917756689923957933607533602958207261572943614071308717602943478076733049858663912569063564740111767460239595678065062571577562217512745729301075043452662368629509666861134381271258896296556597541907720694659358023678675018578270157688248053781171828969538513215579849314691112653743044764306526723652579517154454655579064634531691457291365131587177658997766371108995146660234307888362178899092099533485177051411405654324578658283670464851874983848193373528476468675664765177598425818437299619905473205001571677018950094505186642429585806362159027803674406456742903125461573031795134874584182610615559915837746263646075965565310491007245453280919201866246554172686841962377078975120299009537071247064606038760775442004538422148608471837020703620094760529390106085704433691972387097076869297261213557542542062572792104761217517627966594084297499066245128836623163868880005566660387773683267385936215386926104316307563297202873137030468301477417376070838466086242778301097884131963226548060912040985592512456209741198714132185659735993653031611184679181206447077526175565424654725587465973946945033312264975366499861817360963009855012484384882118121206723432867398950127838263258370032338534832822699980651079256901604684209995974121645609352563505478728838457277954424240994085382592759125095291899014061414344224355383234110516931189818441622068136281044278721642590820828961783326018962703585259934709599479290968043154957309115272095603850953116366001995833584229384127629294420090590677203309105851472563456317138391810379015582388767461985893384038282431144684720045372409659326872822305754680903269939260564877212565243968888903850141433942633417774690503007262318154687799077621722912057683923865605861490110383131265078827047710040474099363538264826366234953640302973651059797681100280999952322135296362559646709256994842474962374142750152864303920154444659041704452363963404604549990766978841908389716508753608553084557316639475640610679969825742570913406573069411081009647764228840793591885338129901838497677735021098299878790523130074387054998464331694229331173663815759338494669963645576345242056489523494866593572814410884656485688694857604677682812140705924897158562719901885344772182745572844779393701853378503775820622195632862366154872020993020518468667833443747965445131583456075992437857206192088477729059841081057509810490629012865819025629466403770922543355918045188261672559325179497478636440637350972632268240270836324049749229173704472468234926239640569643994996456717292596191482547422417120889620163993510263706152960557794729006529222396904096690661822631654069963956395401972936727793542383679272143838572175925252439677647368131427895238844108332122420694443219486075753815655846759937056155928582901209382326394867542159681691250715707216160680711780522648806436495200458512021215149542071781664585638837185843246628723615685420206451263085140480790695531924855571968564621420964011979597276241794151410259767185672909445987573691119227757675196334091710951728576198679851603203875048891396894691686101569916729518238289463678570143193395806193731777630852163022066509798563147473341643157107309105515654049725458693130447853812492862652990540525518054974604693293668684090793092086982389794899874829309785649173422214817931005275739533142122485410609489863629504412563782519017947304613185293016499591913235683080244609792449983852550681710420636733380380981559104761664175738013962590024314269018919055608953438006857345705237864347902500046471201457250477207459793370845228458732699222891637383802225163131819828649926249810736609844377098745557795792178785968417829647614554496411125636554133426996567504972118123923345699949871249897309903090473380101559385719558130211750210062273729849425225725246072009207223819143952373824917839903243710656755653892728371701237587986325655121103563151735201693192505274056920287618533575147884327745401856486586870705907519772717453346439933575907318384712194315354432612901087344216423549505218212032830625288721705656323897880508217037846990342442106289802227742831648380721897608498475831161397998400446909999766845528622567500971836414041138197510281659021910080733308576003946814391620539361330476430358512902023407584871808967681086013437343812304576043831385296875185140981421270244444347113391357075364594342646111192108071732364967647472007595694282440740998776998016705586963786548022504517648711659521931878103117361847990187417504283828615873314977677268545730138671676098238293431450451523526378024966871708848426137770082134518226014621182385129647280072403817462975435395219262690190933192126329637336558995252977931266374051017147522235001500864577326881597297487483795697959124599023903583236888033073389905192839848546996320779713254227884332188851555494427214669940671553241822494752716172464070472990056526985488360319736552465542049381895314099295359209311580591510542034237997702588840103063622952907866880301783977157264087176122641840941234344992264561431321815215196338108641074926520432530351319555338948046770154261337006186836698665582159686246391738848100675172531228938669875383080153989927093575478668058718513143970739917235413532042018566853741125132896682183939609434645071213763230554357967370042698384984784521826259584472446496704513307871133028216292684360858459902253109907904748645014748163950632140648098984636082170568421122229601931832655385657219421603218473054434241236038413173532856324453504906837890108339351513192731890709662585888915666873330580325549356307065075704697008635713543467069325539823342505781074873795425882142795348337686185832739308628651685552178503843428200556677633760980736780952899367499352660099473431488831438321348835031799183046837641364785050068822597933417575435448016764945322971187827439288616088390997863577225708722658181832064484855348085668189463982340546155892819057951943205161037498938009373262776508368732957147267781429434693755003341325763702498878106691626245265313162596649569729814562285256261752924757423934187956424216027288985279971138781091551823224451066863552085543745421784888376781086415196163002502259137695981260993444483275221387494179878603684558188471292384558219447657543901202956351348327851281502338002782566642838618836500639202035744947125807418286675356432399356688552481463009987718130141335095350650389209825637813277054141484672585009101749183344948322133348061377254615677974591623243585350023381149813046923719260999806263622049931497591351378894475926340634771567630051509028125001651768474918731887210889097608509245206390314612845673581955337543898838729646396684552793136893905429060976446213469432216475344531354594239323117256313094638470333027951616534768567601324088811384409523377432943174347779232343685846573635215284215636421434899896569946270979730211865869415032904751943186799428943245251314986004878965221540806871508832829077339850448125558629930872407760391330867032592090635075897039323676748735735901931064489525006669115587471259808507330263664833548246117882647828658494224048286676847270496913898251214130338678696306387188834812386900131856463671217079913763939961369794184930045634598384870761103501020439857165987274216165577261393711869166199611761074726488918034530225456255348586055112524536720841741313330055040164875267631513270820136532061491785333604180955958510745236299833995146511229425156623274448630893360316918535919804996138249923676901277864522626265639898203239434823008191021871190678600280784717103302307669137777494784475387285435257722173962335868189383978293602134099230556008690705863566484410791251725133090624600883350536403380818009049414121004888242748770319569500074032864959000072448825033465195109757358362330721750042534618323012471564680831173613047392581734707637407804202785858718308011860424397007355489400761049970667934056626138596986961889134652803957313755782355609671243940342885521009329535328353815508309328288295566780761841072094487261514488076410696898517785955471448372077923219645545098585869553267975622363709819964236657781169070221618515325264272102905211307950047555089694718930711936179561991800170878011618016922365022546354240610366439843378207702255481792183380721023590318413133455092632570679191170354553969252072175013262417973704649793571014465011234879371210422804045861478074563139343700642955302053819204899101844719341878669757674953933181114202693520727167642367638645580025663873192359039397911339521751448881038076304156888611829389592787332409906845363973262316468146524910097189482123320313589959886990365291036511597177367868078613590993799250902657932202820727298435259348247351006993629183083142173356863366973678958538293459994308052337000068588414845124040259937831304998421659108768126087422078939228270633736088084144825582650219021732018485865557444669212054108771834803837318822460692606227042222967800016750422712439424848143847380788253490611768613348361508280566159718033598769242504097554506116415734573695434047619298120690888997869360443054310074777511208092699845291833907548532409105785390219771893438127051766945805825269706278008303040942585785210962512874473831274426045924848061326886181791904323164205173884678767889826886791987010624199435972755423122220937450529676695301941488315004802576036390876910191220845022272502839460975876124982466424438566916312368194333620542366292593753801155126805209699252050183172665913751072655441803823521574518684054567346327233439968053163701333538389009661059081145346061831946403680033144303230775048470031282167918096689494083003481441503660840370140150066010518130150435403667714947026862187038277520549496879363099053014590263805712578358359760343256041255528002627753425645604253757979674877362933912467617033795785244121187288336567239153454425106538419117514100231846134108729468749121924044595242049404153543156822131998381089715588778150549266310095044087667370463907841188460407119396272853283696730109360376385872382968874239075944661499787233752084738676820791058842314148510541872929270114640445892540830308765264489303048056819120528269377915480017665295596805198183125973393548951236938227219765789293993839510063951411667235045413380348358314729192432692017382154390597022649460626474762830766588259910268619217469082790502469118167884159611290419741174607902942971677157818519976796865487664156739812746912757133862535095505442339583766866057365105329469251002654808472094909081508549593133756728088334466874207924155614174185922867174323534044618687460483782176750980921725027018554904335433216829959403375473485906932020615047091756583807253206458130534146896534713037228185069151090070666937794537524986966777130865658171109959022895672572214036241802625164271230078252506474539942501360188436071772841586020603845737716536177229866315400543424788668395580282330216219591673025392430462851005532066227262899235507555580265819299521184937052346308791141612800605016555212862469973178144274805872067570474075104584390961716322524815915274433878508791956325592361725249682936894975277823385970055908099340387108456254659756463868158928768123254416699869107084710653454787348382943818639011121744501733784949921187649263377508510864356307620756732140984614559421741597887678666657072126184089395654341331096338541786454317507241845417447552835487533026465979150318401148007029588221836069244949512878141155580428646006208414875420609832494456142898594183328322155541329459614121473661993513180087712457826193273221976270782807078223720148637680540965064219808999095894808420106444356356438086362758180332310555948572629655511722366768965767880047654876148513132102389127567757958380385967529396931371557220385641175498810342223974611323023314499235241039581923052316413135080781120807224737749709513199650794964912489167442407192362882568098206897802227498611276775724737490279018662711047024707885421298885497361764608495226534053057586837223456483719303063886406687666991342465840089846925786589686396595080701702956063288126812662823100780478703759210564041971370407223915482522207445030077615772938167531406391849656672482751384376269736687293505773344328058105635051067720817964966056208784741480507444619775331846795548989950225321992936220843054779996898704505100898513737083457632928876575308668202427402645340823963964323217230376518696371993122577497222267049069765072357179978539354949048981527491289349984525504754348019403881247050179961747268866514362009427846494469488773874272543727286182454972580201351749266822145140366208303034777246514713349128653682992541156511383014970556655585122284708728026350834465951673699476611785848763244255913562910294811342740438507631446514610654798627541951418718403498712099735311984689910593227622712788197752745823046647877107134200837660565885047181307683132454639709032448013362137166331774568523796564653006031241097960877509534032629342900486079878261874847609232311881450631343548591681549012894404735890191795933602817936578911702155830920871988418879617287406512282935780232263819108856992518585364738665600566844064174508233832505239579962519565322999359540995951278437434043605239770745328006510215325843439379088084386953394459089307356522931542255566323382143300443749626480452165405105499013600769857607269661459287729676861563016576128248422101349573894894646330194744540810092581254187206290010168915990308879865148596325408264666825554583178554633411019391168143731903137363937683314038387184459827225395389142830961043854860501077199801919036756751876165036460947718834855653033297567043715423104922741495935069476708286722051094426855746833767088320115524915672086112512479935607846571175013383379829676630301186881625643174870533120791989088586278550470608901552433287069153513866093351835371995319113056866342163623832220898831665137612834310673629861896808604132505711081646927255939741445882496194132975026810659688894402732031192368167408744747635652108923128406250028553387656401805254889244996058074075419581897169648493115634714397334153144475313485021022504311490614775017025891158808860538565310347756092704773406932442264472995960976967326950276980303085593244916039408073721943197836794821573412502097651284297755876644631069503259160040602418939631530152349730949282993814794953234044951761672124363408727514343934587153856013875026761462017324013031195818005951618365040707938349989189679001624397537070215309197250270253561803451155172476415391560003510905390986945418950844032768697464595496231270352618535305772626120650991627481823635003493275556373421905486789501177469162732093315803837635542385811488182467448054828301349701377784495102276234073705684061929647100118850507858456963161882595480550309436528434404019304759777706660740224250905298237229852670290881536597229326472815756822453623643966154246522424427433737085544889395769830705099500190088331675649190062587078731570749575390829768020396768242121744555419254231933166737883842214268631818009527533374897323700595321646704608498672292232593904997924465464765601566236124617263747222491792178668628527999540327254381509423438750307586388348300475366561372541013778076796055148884620073178138530633749179509987517838224282976759875092028552891416520335368089908959326852671663755788152741429707242068916319761888986719250144556729884456615899249727752213201007502698640598574497007393849111962292681459246327336594417360209292814064272393158219698125173353650962516189540514330406697036153728610756498621520458362064201199295187858743776890000522265084229032009875268465537419968403959780388364246102306320520778687445489771113164204823384237253424517918966875835690534229067404724956140356050959470393713313350976310231195382341708176980995504934934712633244865189567731761477911270140247521239783921789883281297457103457655829934837071922676566246461456959696946210067970745983305801088345279490736244428916797003481887375503360987321421945113088505297764887298705774592041632453449742518327512851835473883379631563036735582325170032096164273490977179033935147367568124444907219954630280537635214874937699605948260948420044089802086574384212848017579373663560556522315755284555959486477971545265523704791345040189209989024830955959249659248776442821389367930551269898851742853218874175556500997182518352408790032429981027786009889207126911011499457481874967035863706612908807640250854887074950567143400741862793240797104059991310093431759284496898788310830758192514143866854271218959822944853363149892658009026299039684224948749618243906289352566174956235630153863592326959420626116457306981181292858823117831716759270693239698340527510969033584346915271916201763653154122258625498168709695737356816045120269607152141909356347586819494537035669981841401592093043501104657069893761789373837047921710878147131793161680295622764307158113253285004103357734153016941579914921530768297819671226108090102689242805751694351452593757186095192770693982027477161960455511585458180134867995468416831712766851056633454997514401192191407030892782484808205948078664041567967761970684622263378446424829245181322178910706026176713130860985591125602402342235779319419605918145004642436743478677847094780384362103466717247685235893582959570881654333435409559852806292433564825796144985564497126134061324774982039866647249012061346200299179300181491545173808801884119374074357254920277706211134632221700787776366548833563709493645076425874026469448062756835341476096323991118522679527060116648417272486171352691462200131673804394084280482366058534895662565712478456742351271396530249510055593985902362039576472399163327717785318829776595391430896069483953138994681975876591096668900597080843037150637324882719007719285220672161729623772564593964891355410231921368365002721170084768621285284642374822885799939148346051204563263255495895647975790827805275959053884389110474799696721010006147249025586567589007650927704982018326387358884708969128371244025883434512367924357970322424934707329242332228265314864784606018474820687130725497907990341382994221436032890912918916762464978094882376552028012167165698579255672579218108006467148328253605499550465664710933978402626777854108328319751676884392931581739201796351449702439008231317138711427366524559338246633028141961276712813816068042870365508560961430757511730898627634348757933112193117029904876209195520789520226289050526272745191533440043055666612919162073364024733821257679750899416172964406581420481517039644446475779388302222515744405978742028906466548063964054432351750167583362759042844374159834662793919212428502745784299267323167741571420693653002837900207758100692416591944517536705250847323686242387291860237287944601519568781850596727222888742758437847634363714169730287080090908514337457524863883208021502216374816116284081704379507075133989550133213556136695718094831779916990753152014659181136512992224414453183674341777519803793507484731884093502109925716792435904851988115373222571261108367477452696011520199879118792980219966718092720817899850867075762735093343748294977504409656245103478745043456591604424290834302662063175966444410268018897921619897303505835090708491071507291630994670866139929863028295487762108789865573233369132604533793266975483225883846771751077919510615844740850243453674351433497110766753140623730596625643344697481874970017248198896695939046423393303855400553498772009123354455588401558798015675688838241389934918600350327904533047684457870958401139375803744316284161142688228338357748205349063139672891236350030942624203850238396980180025884048363079163394003489091956150334332180223809094582487300899563471601140352987799411351644795738799825141816840284050787610272378874949059895657999324416886890847628760128635590324550582924736631854994550453554866396774222249362460354743229982935721603199291081192870689093543299085103032367972262491035980237354734251538329680781512561333572628959552789348227376987415044181562991232129394781526847959572624219460177545932318708292370167212644091209664402788967463432589079998557324116854600235051255599199374227769474304692196668774936747397865803689430190219681838167352066578704261237413401456096659943394405345872998215956334084189025248235623507154462120665716263996600572362157228566611521120880186672011756281957670778061725135644715149099076232047200716109434179786591928995981069893575047229278056059115022958345860366110037461559993722184570400324731226002827198737958406499631735446596527664043692256466754976868390199583078342334355622272375080528319070515822441482084080689678643550231452157244084982708475337852015626709671666136516575051427238011022239987975163126010834723026110036910894774993341765780972636366143390853785584216349734095608548334343268737359975966434567314758419014481836444617111675662105563479939409506536402490662734410993639934265993769501599757475854805325991301200177861395032010330247428575405206332589931933087921839336710941297503538195513744224888055231768660665868827436096345671188888540297550734969669683364512204038635980806613417941713390349151779802691938125064023136510820414240817761615845704360920463555949315596028059136856742701734177769412149764508835400081122172103114503660399864949526077910168195226111673632402615831017444579346599927758029411311997727969984776937280222807562008152351412965062019180306981126912376348723094941468017400249575225645729767579300748668850585845318172805122538230940838568322005996967888330739278945181262939709675729947031294658716871758675229047520974151132573318576193079226557489431437398520464537272130670231662276426306468275043792074683128962291299014637745515085550203517774365984508583122570818752701952479958960364668386307318573703943011696078658064831707774291464497196213463612591172335708987715023101699960475309313577065344792656844184556309063397338048899150018515243282813765414629577175613055606529001608748406427558899858384431939313234986277422176853819053800077051677541188417545397064336765417394807457389574281088326613063517786880495521824315732963250156478881544351149253479587841979412758281210602919561429318098298817094634093317259959014427393530561494335162728254704389555250325073777860350553246798711586014997419042673830870689923732944191947675038546924054561947972386144501152791618495835844086302358297233280968472718126890109611999369488152095998384708120886845770656956335200034791511789980152179424546221992232386782645797268659414416852555486639025185292220790574907879603859091567170728558947314372026591644616902917016685246775573381784134997252499373894465496185823913561140663557631842237726822102364523565504306077238272058233400816794411077389836002838210433245041623116240354627413691047284903581384612907409826052568126424001354157787972249243320113057120447047585865993089328683260720085697261117676839735814056242246770132318924537301912819875454618363563241283110186903489608404546090099420149082642902090899871089502983071111283355426388173059855077176378607560056066145233219005722632882646894511377193161769651403389240505824923637342885009491668568983723879497675003824507869609868167552661439706081580500584642451947296225724166282232833243346716797173194210755241989318434547385821622699560976281428132535552210887564160569912084861434221942385559652784852723258006149106916491184523260066381582141731695665307308502194600275722384712700641798203746275386680543908108337995466037199493462276141060428131846710249229274791931423326803218465420199471406928371321602368054650307549386941555938300642434018638483181779802508366298862089142557319726356002648512231531323350018967669059320816698197986385108269323508084799313142235256289654369404925040997150157637410630475609508713917690480064968413047870956165886410887549074701203109585548626610295702226623131711521049814078583546895870368014612529128543665445681854783143087284857247012361762540064051484999008280567462419922479990577137231585770234204355988459404420952846784466691565679309972930819290692483811959481593087637440644111069386094116754124565375058841934334066404972685846596661092111769698148622880585299179871651045115595221320876195289972831295759854216739654565593080838983422098768641193735731649895804515916270631024109823839694014471378142605421938580806681463979009025639061480699810837374620050467130248683968759593278101567600543734132394279789940483229376530957651579252103774953840843299315823797040969821364370039962295025606794708125865302605926437622377713162046028999091111698968712381381924646471872709012759176365320930967210797799642363277840316619639497752585148627459848799611387109993914581299821741043072069394074076097107134322819045716033127458709368349821751234749592374894904454248089300002712618913735110585144250522308467113651614180598318434626830583139864018248767725218876991390862872823069223782632899240566540486351402909713664854391706184330381858631350441791121706084139969471410671401837598748068857081243251551459827043170511384091034735448139713434747738417852197066036776172726564835715160387400169685988176157987478915281426583515976461068661140650531540383040640477950402675211821531596192376163040456127079612527832115063633234840406834076562457981775584969575526832100519882384157975017498988999068927891857730289673162677463637466922428864048081279724063255819091079163464179019819523206854918074537264334351211939756764286949995015034196772393185150044187107531351318604699751230028374094851594683799346070923408137793225671043176216532813164840938685419218859803029821414583575987573876936187782535328534372417907192063722069143798752295428426409129086166912816351013306927573908801448995639363773260145531632307400463021666131004803092236915559564814884459901213283821203402005524963222402592413448239843262208178951625380757005448571592786571471467349008442256057019953964276889842302289911817516256116103833283722608130589185432380341597238522660665128626512162617486967097768524779645755736349464483784415998564254444048155716236955548512681869983868383101540131239583830551986772664899040839849658569496481971741011131450151181926551222959820212414097125059807713448494287916589382748859432169672062396998301146737061392838304851831290216309640890426641833179816460705674878464658757301690662717200424931700856595419068225978999304086730009969695113613357768996819295914724184969475608730327025945443702495906938509692891863062001855633336324022063445157100305183614113369046630972419578958505815872615459815887341532444725959682528873193921064217724252789243951730174961509884682084094192262339018638387561627959560704570553413257656713741867156851678979207663506200389383876904877690220614984916328108298392298763347629650796037752743874715180294015785636734393546489647053305453558972409356435987988753193092032501867141968479766566781305000134623826177041554039119678749852185438872726558822379033053137301164729082769751981011723066193395718460795227122641177256347828267392230420150973601139535687588318065484501031844900394873909533054498452813686758516476228965057188412031084204526543059993666256950104066595069807350959347694335088924613203985982528659362312372558577131954253024054004535251910952388659069351234550475642561338591329787170523211866718516151151853121264064291961261741106789090359306217610394842087153365835621428056328386134324857425182168752604290092648493484702585377579608592975994862030806586140351583589229192757104133652106834628831517137386775552711242577407518775862441082603390068550463605675016690888874509207304417579090414255095930737851322873419520516902158094003806807675917274879042939988520262284720890866446105745809858729161336696977249024435312200530615551707689743051594994410967047332048057960387650847036456643525238955915264212105723609897050667215061130496384883870813580951272958851107276216408696999609217029483331618631531404706314213941366909803391449118745985256069668530714975888952265270983316400071565482049786664962163558622409069483295315102880044125899533172784845810065870629573986327524146315206032976804559662377685708343335337129654129341349629799911372978256987543891077523997655835884743361117075973575101218593686513402634154403883710054824896739278669183497421112167333057576543431313045217949662850976341959034381388316655881516914823725595525119918471136281352980185666253887372970397936783547150430739486352001082353696677110926971276108936251592242669523252459490338695833046518914663860744118900403405292958829558545663194059130189746700479305514713576542463576908503768543342670074651054749090139207489598963621968664511636641488881331476537667424594567269936186624194396843843092763817393970377449535887887859647504985459141273242987205655741199367961426559419495945953011987639383475532176199488248669375587631749953438963781774159802686500810857673294070337055144664839318459525474853106146647003756245095357796569718993540701391101418725353753211088444203009554311957519605205713553338697320704593897505552610144788348131975687439462673396452028052433121214047477630419200113104769769515221751416260031738124100120959596002237550195776155204712236284868541359909272186321070026097847967116070240438122711263008544875002974850297055206749630616930505055620539306477424333135217376607660629347088520218743211632880301434962723702276944502357378787383065439975324712227238227370355170713542660193536533952877506640301670290221022580599394055860210621022856943384311088035580139704223076574286579616935925254296701135498018905464600576902992273699480565724267962083189908526424769160883842219990577983514875588957303235672277736261052225061120289930013766822184959467066245992207091114225062471415415575702683253228913868581612389134019046101114627961383664037469675035031594779134981922469401053647960677792212414110263672172765432205122135095967689129127246584423515815170265255535829046287608510290369177050374303259983969336107516859109090324532830950344227341244751113857965946293048857399471315918955275628461876020014238878953446337971767916367458817885043650202003668720954346789358234109862952393234989397393569797734191543909975948654358592363049880022218414420102271433705224925865772715707703281521621687214595632705685593957327362634725685324616925732612301110734484780674681591791704375775067818824123243954285854480926672962060816716343999773053839073901756622259419818134514790216845978823965605844760284435270740011571459800190425314005210661364017896259198657240986526456190548207516792498492080162670149317108098956627182629107806127581362412707033334504471539891982378155575516424267063632100463748388691106235765464820311547774603107751956577561866734568292098784285076303783503605527138679430558529409107427235241531608390912493740582488485004133667822434212544755338165754921109715861288177779135600613363753188987559170008811539666848972493019099953562764413369938177825315273687434417897071306217749739606119452880400641716590951265806439883803373124916715931333671196902891840226930375081376473306414548191923881661191182222177919375589535770540310983378258118838759670696386171606162009938959821486757848931357282536059469031872174555653239782936159386867888160192079774377404416349292052462977897432851089773675343036553214789268593552630713293253527683327875306943148189592453622200342376040179290981403691648032106826854378307748808216032829024159486398269049233448243566438960538897046452469159974593742185027764249164363072870047231088146114743836741254132992948699612702549125298737546975642301013859692055841530157546875627739675546922914520600091726011015702205524380093638167084301354105115801425849047412664648136088587301054541523259484302536584795967261054708154136302597908389559537566969987557363193009397085331551532852422450845221846203123243428789941124178543589008926122827396347456857302012255364045554444086388536950040822359026671763477288107968240992195556623302939583496573715094500442477249815052246296325085258590050793957463535215087260089998777339091784565272479381007324433253799580783947126180669454963364452757992748078445041178282187535489530009928692622507021603895631163044299679870481585460762063026728983439349610537494811668305956716707755427160841327167647637855935330342604330340485432805529615835682452850822097245597116171369749955385159407070774464316926006745715935679121211807542044660029585984919537234401609836273745767383895982407057394649456814145919795132161456922839400372860633062184942896745227565361960630105249212549973406434081871737150250472439660715832603843763019902892567510704735054316261411033138129928298368996952725149269305410145903021655477562415607124292808099810729874574689031123346496162970433633354941162622624581477953239601670290390511883383040817991709395906786667395179167584501474172261157966418208614367616558505633406645048873976042806295156413814411752821143304950488718278102272570259598233245756625494050120413846079663620257477896544833417610436051804902098196475670901205315574580399158964353103853207378857265887163893665908152524182370137022346303122793200565294353783101237446397987731508063725446024502521402761762073248175740495567363605423170396568005943852265256024777487068711215954709580590752675802877150933060826887727911352725610557426985556362291207649115263185037857666686798966047743995785978515014001275112284942470574911333423681383081574702675072160159859031077043777372873280381840290759681240749798784561853591515973047650322982497519595905765817976546251277014720315627543037831688293445620458363133873241496617948509611202383664088643206743859442075712057691309474481956341216798764356580646717154513847950598160761776074710626129540940442428975166997118865665736523545007100951770156805006256993181984877624204829896007674951012553237827607517694055906215956875175323900164081362787710528789254485694847841048785086953780306686639287672503368014576830029374433319995995480493778681961046220315000578282331023821430032552593576567566468868449944962480759896005687954772822895955418891360756199305521244785931584166268373580413547922809214217099636268630950048588254560770747998227384261463701472613435069442504707635515090296162909475847863355348088632750588420708985398619979357459006636101995097064453337124289886846669130639806902550315443634911428899805436420746542052098253404974070242002973881866942404129760571285285797545602503501360953270544798941427633157210794940579184383646416195337071863747047504530852189869929600966282792044971230525321540605717256536984043214582105038285397264822983731547124948074853234937930087429235513853176317366410230747645436762053493247086503897514694131285445892981374307612149281825389854574434746734712348585745956436706554242319231388646554505286929970744850433653605874272104332155748102594813788581857467036764397703984106776183705797113562888899534337560425968279968367272022597922580784473551823504174398924125323686828735037497634341692210272467591539501829336871623291362740286223945289744512996032686615719519340376273217921303340729476275177910037933696044864912183152899220171073693930832808683438675202852011758295266758829815337431706116166155372248322782626916970126612626912470498288510156269647655208346654433670379384792699991700774326622499609844570438836151455122634455004362377685677222931909739682565176818374762701011640528290736990758293278736875967080054451642604884305349246142666974462323247946526480544832009827972748955043986156874107041003322149059901030415384109665710975659329200171153327354373714112027695878665670069518117251917667182616595944899683790886979870613887135502368463816034107328657816677080603265423733881895500945380312292104569998827776767938077473655750403606597038721245078931601194768145096653343832835701171025044512017414788513801383205307722567535613356176657245465356465737074548674494412229647615673067560056740497941829269243487789055126774644382752544187100705120259678899764490340720905073406876359326219244086083456953744288073328345932111381015100972080329953402811615952478071568167248884365363349764498243591186945271816311326362133757493083198956983743462511919680667489489975991014762972709216174526669210242316174847807425143710227623552532002054660640169656226107330871859137897413306657249243447709614438332161854343375057997168299699850520951663563145878321929229117275932235857698971101833059758151738654085377014620882996699529574318058963103634673353108240348173284751304488454512345268980929025578172192715577630903149795014185370977617963166232635578559596105944171094054331863406072691753722216032545621129719646260974598582664585038538986275775426634952948078800108606363746208261135426932723048696071314683558094430878462264724450799427119330007092673580883905634530111055027596010701470329866288985927826824082287296703557441033321010393255161075218296369728846200402588293527956428438399497058460262036081305377674753894042777272208524755311128353570775614278596150875258530020299261550341273467485656103124851576757785002762072818086068166829142145942645048395627780739123423305443355134214504704217994935739557061869783094653373820223152920610811320621394330745531549494645787813377408814764232215131085826616721118591769160917759429044737864631057723926359041053340081693367140355687786664669976358888748247616278089125750336355993674117745126239824154893993369912173769629514424966305347018342140317603468083353838021509091907640940005533000874578555332367598206197543517450271296589868649769664806136252727937363083922995029931874034046989759377165679732363231567638238814058154467620162744489652515695253178547287112038737594342867708793913758075883330449653682883465900137959127167427578296616795119006179611993865247150552420888137454309032761762613724936304118789206417266196272831997223475826790775763138790590694537351293177485164572268579271537746076017583772736739330124818377778363564079040008158943962459675683566539327607489361405590323901656195938277139037564873018045406526246994300982863135907401458197874820022768934000588185229709618273899285695387104422462153475484071469738210365966851089209075190148435628211676903285484055407168720269767931374900154028430615076940451370154515702829357513891300296991854091128307450651799476712772077957858177330807313989296369342755668009775330133842636870860303856321509693828300933034217510934508691215493614181666321103217976501386528464924867220157135477427720780282711544477034895040992804369721746151945923132474026750809578178405474908137855573689877514748795660116171600896699224401709318191511745248516626363531353522220540301307337177188075712303843077756944211445012027778127913321420432085400432471481448570396774004300366508634621651485562488957945851847936644189128346026202068401022645310915482452049648428226448407359454863520682071612255110445829260038700885084877990924610018294035941235576200637856147404515152168559918070766982312511829086927070087541172542532365893440301135248287442598816664612233091315675003656187523412500850893141395613089278002458824452877491886120801054890238125658897447493017081155229723147308218406882767753747375182708668353452239676577834066721453011726813829472250107954792320552010343799333150115574597970446413650854941665855356035412273243460058796074645667749456990861119814600800752163523355334111099143564862113876869080106862655464192552081636885198236915979413871646554921940454657559174543735316179231420669618938472112319077054599122389770750013366355955037442658136372158190516159354826982931988200361707101443042464630180887621727246261785362988002309193522568950993736601220370093502311225655801224996483354551053756953848578484273804413072280919769110633048044252457462318232553700039385235657860209102581081497016299170802082959807661440134052335253350823109377967207434324602173121973997755672157219961669171475609482517717884848274808850028221703157134301997281399153353412645502604328171024444098254143200378247573045030571566793202677453438967938615150354089920990020861412404956661956781231314269522668914073620906951968320825139000747866185646372158852324745971532208148951781637876276401333441533481092148085145265357065013174342149440413603166666846645014287428048755453546301609808235528200989334454246611866440479543665920791223946815404370422153332187205226927427591489618892106280141055208641213993283083836028603163013183445531116837537954115141981521250897719368450432466960088715334442215949495636638602407307113675962567613971906426540576970285211598749438224553064186009343902866467587318020633821990493832126095554583482745105173887294194428900920721860405348461837975815798940938629678454452476095884969919566737309309514873547311454155891220811453990135150453411109845323992518200234404691723290244422968591234015825073552691501996029348260710932744479654438954130420797209173380773984017959505000111358504838066779463099924993492949404995142018824175379944751130379611236031065151246256431102725922702167395672143541365257130750682711987255536107063385518607457684214691434556163217044122642461842377964405237560475305769655315571162490910555344359820708403093191171828793446835396138898238353229913470236196539030641099094704318011884606200267193249045517754103482665492544935098644707966900173565316501211732670869150707915312719645633379945166805996835755554332147708952629526043869165673917567711564176603334344151472228000209885218645493869821262934681232795933678961243021717323355330120268617685731232724531378359644547557436580024959353309843180800420453469801756494974377188421897686966836874080553007794622718683202599227940023760349863575325856820130960464909274380662823498837572683575720290368093687845691652211827891869628816355510038267395787640388113033422502047302545978537132567970449504421099055319459575321079579615255619846810753726290209457351833509051265331301357853397108020847101286261476592814502073799291584317872835363883589098045862247124201502475196130272443131230842848000180682550197403451226920207700290752138397414959532640800507593402629188011050638658806847247616585962273560652948538834029888523677206423383885503989630102490684313127766980117126758993032183294855296272244614372622651677322177942832060197895354209131368597782693938535117105505422696270373315871489196072564350384569277534655379201999057743039377318632461180221644085619915308080805631422272309607072439067449334522387863659154175026534099877946946217378504905429017032634688702822030654350161968578664173264348247750088221577503684994043459614662598663637234002426617451231264738440829405725554833954310174636841349712872460876130771034498827464440991646598327974345638401509981201624306940116597145070765505842574868146159729386199924362642954525667059133666113154434048742081482241126715673947914969004278547298273423740653991015083030661629691137637816523536384130465335638690983820426866419692888497645178826845049070453487878914922467545810949276555396430695016216648988954390304628838022580591067949012109058589172690355384782697465952343344009686863044949091437656119127005614633893677410861405532826850195026952198396744827936789772542797005230209144027962080024628737249002871025998553622003954849552953555516120251094129491425081322619857378998419188715681543128569419031640136989070112271292072298742167643129519476933649423442743216742218963882615535832114263621492485293224806276477741139535207635800713399840658782590773989967847077041594393442966024981986252813520713554485163620680390762249616185302870217441566024081281555137119639422069575925423033767558134128007654463599174320610770284988869125766644853028123819618269842570519444018348200643193324809108451128725529801864989671470948967744674080057178643314475561313394671048468494116918086145712207109126328517115194297166780277124972674377745890132392233189739907860212096581594482065506172706563518724127818307858658263215332829398559563865099123262556066898789687085714278034274996685972605831718666506808036892545197919935086938556903524279891527290409045792987381776837691792229177069795876645824477569614601617579708502734401266925661481404298693913744351527943026842658550607716496607013217818094674477890178013884203984794080702128953493047878405462920899279875414221435529537523775264040716348839412435048452252615050439443604642007723482036243677620434669157225027137147479346769380749568904166117961581635227192222637676245551497458706238713099260559008666297540355524815287286796810592163561370107531423617641479343225065103432257454774603060253579771837669235554344750762178046419780099024325111803484113625419491417910230732071018019843650568074484680533315481171637589284165697385101157868127733849487547240427133592947112304715537152655363820647609134235103284741383232560779591817319919558390967082697599146265977570491250384351706730555964592307441998071259534706595136280740145192815466755979740895748857680220874208693652762018806426478502411906465870945903363254496537376864545589146639788614154218947904705743777054567087181512459328538421776998114221328582669222012773533966419000797081331903675782779526989292288324623042986146875609723243671057283745638874879042556237089249210637254898053102275572930674434214788320456238844388063005944481698009832660642824353735446766893573450588213726475443468589279733224956099250691638651565515741401724036300504682092766837225747235787678643778086329121236796212345401821480662387221680546262347092373059784599728142465599969877683977866982725990106716135342344726959166036663613236371524823392270486270356783506520878551778138109279586324041787340519066218602839943238565329883267233064537394583641460121439913081478180179370790270428078988854822254003933694725879843557186800795476969641113199156341302363608710002536899234800414422015001209775780454158706717137580184475826038155399460850945820088761000089563191301002393064108161372422501745868787537419349182402738719999189292151436797943767703871901369856624529150143831720824352116395886147004565039001312403099813314209081685020398571923170324926795640817058179025588643898893680636766335786734631813761354515595031621998338472024174082241891983404797708203018612787021293178388187909216054703815114739349405903892640661243603923279596666309597778440457506684294563768894971548076553594205774190678467366018722879985767114991436353950786746727025127899361335796173214158523012538550467146274354799692257862760613072420907908845414299492475424022676539292946696207895880413497808556545675689199807104740724940399873789427137505245239499835584085107074218090549559351852003358109081975870070988792732997726066590351244132758643859892251314309465473042004182572158034744751653609038837808241453596132061532676941853429793516732110982096060473951225409377777988644774504111635577153873556369992418616634474050128767939143887520456184584990974763707620124258401551209222542880421529105944402226134124211415529775478665246554156222337125484822361619403459663970946591456086605348227665941934526210379159085876299078505542341703743428933955042932354750613455309194154783981211651165016510007374139298472331886449534488150426561655140223800398929746264006130618553727339296378304043503197677266106772966835799560344575841552592087141523913169959699735773478800458283313100967767846236605335405200008067888545237663076484657424038018118328759593323263637891940632779987282262732745872312833332095774818381821147305016845461652992127230223130742595775882218287899474415547577243050956439488050406201824705134649867291456188292906310161847023991053920628496017747047228471073509434922573571193111846072762057041258175531349613362032269749476037671213650873594258063889436457863258978326525947774262404630656325156461028977770080919798489927682569615635605537026317292639948615375611284020728289825983617036959705337598685668237692042077782471908700747443244949098456927277778808095855472878856744999100960379599174451486405309766653083279415977555425708543415912010840514585034859443903146904571231226994768256667151357590791813607037277634937186059654536755543243274484937588439431797416602646591153394303544775895932249529550776842016174502789308478224025811809486102250914008531247335604422657176484359961617243247888644058288876211103796296066865382408903891066509439066403978350167733580640710667234840602944833859177755176636444622360250898528385011252502894702190186292932786694172008877743510154066452535106881104678652775002659069744428078934201549155099058244486232689875283982875552534552216865996348958652359849210829679047670747656409264074164098722109960146507847402243051480088759094795794645128849259501350590239405460595072619933710859438137188148241452404189305696466466649898368877902232105648297833557994523207683564166892272049987480960021937374289948598689270706032588304406151338099868639799912653765992987582933585674734193193920610099986754237799401348216918001416257501967641197004289805305157979037636298888797754598733466060143551920112712227316592365797368207246946379873274832538306247573870064691262226434900084846357896772507240722343350904737738196639383231742247628136030012885703071018227085651020385697448149728936302534660251277193240773439344017624993069013852038786903259378177573148196221897042774833862709586391673566369083275106248393339168055950788688921995840713918489665008125513116540920108079945865459509989076073791669037449353546961922886504434197414296526431006505261958107460454625108601537569841171781331757331390651568525216050092423621934387060256480273352967134346231687467372549121937666351948704307780615989950527659617759173118972308353776308756395385145488836006054261751314419986390179887751746684117208640365626383210961683428393035899676748092331455519502670684866920347213810796965316444834312071490271421445942380723934878321880699368308398167745235549633283732814474418218602406060759670796112131065059107470117808579217431974356193548858045251608429008709616020588476709509149961892326539563559316969466193162881766723295460342992673995927451483355968484398139647084896837009298435383406541551461839849546265202949220637332380221462963482065828459251282389431694621326234001967124827593397137234270082479212273607359427620924028563964478176301511694374264621746106310953883141038145928917048271549559502779491901124993513630771231037768774428993398666671542695127598839364128194183126786676381755907699667053239232383369043697178264390725242212268551504785476691272555108571565540382866695469945796738769942511011318376520890279669415260235124769383299377338360864689509607878328318296658440581639118328433896539761420484206235813132552175624077798233779407172275783867263644276565610083849274688691597937960748848800117791216696888698552305680979837566357063053731582907886924229413315052185604488725528535566043395744934843778889394649942188743613136523282580554848099919589005979856965785865989215906067307188153992238265138244269497889948156960607881641693941119442131148162504878460822173496376103517460395080343909333303220068715553749428937382035700397418491325570766056865710777561055850314015137503108093016534810024403675520528822765889930229314840379701337463739284234807798917428727726081494491659562741904476901719943580943178821464762848755644050860330836776829364078966377879069710927932172166992968130533220843099573625653281528692700725701600019106236597337293491168736992929570887132916381325658516638985508147239466430475588098802892547059417983250139896038459924491656456866691940693801225259979748581208843172611330421591933058153941864993403072959035974364691412857037632994247926820111824730776660060715009892468930035496520470665014760983051075185458481230349134053377086459934430004482409023312493329685368469809528195636272731914229969454312228183111718573587067500152630531781650439206417600000580255949857064267062318931703155826053356825215945148849373073189294676480645306598210257505780270265734345033513097271365318181582754363400996662406618516948966117256115432925477997604519916649007482151844947107318963683360085254779597896522357750053610096747143204447267488699806624452950269738001871581932164504361566904815063587855152953500892497351613318936364066974991250896980920412130013945191971071182593689534804014361053274273355037277032458181644750402439601749730480639025538418787502278144455726318580035105525480311936241083454423254216380009526041232980436834342984940905199804377529947608682066840200313164854802649303988496749084807478343536194274686102596237321031595145757905115318991163584237465390728336834477270757878726021929787768455479245680932309961121433845844484981325013718858379259829275138163270853849565449076668564389367839554412525615655964791033505645834368092340426090254083748618602033565867312344398810673568026106450443001036446657629540105037568547366504022330368519102488652162857870094041662028657323404115250162009254998974098768216242647218277450907593752922353405955903430199846749829101964555111641267280822932572782758654776734713330544219570038337520170344448988597400248190140884219648532334706930603718129397090733625331568091904296003856590785499242847045593966338605242999461391100648409543246767558481145955772782692013453827237470664254651020393528395619599239216050131221895776565225634654954442340660024794043010607080023067969628606188220770763778252802269177983569136100619221022139744967853723050041115152858654433277983518149855940701493522657347399038904202829215199548646724281351056283643142185047375815485580892020241331784611598691389208711446611518262905915307177923257241653669970582176132825296162168810165189669212646105267176198101293835365032673056009186628999242518777014320337582519649711456799999032332578445362602044695966262430218674693326895223524409737222996954250288957271285395399472539036628456287525711940224185654994258784427767847789902530758055026076780876787872547927590123255592174055807460539416948782760038093691693539850446436005848200623351218149971425496517490870236384542076185652056230608703247041612457554062222389890535393872479769624329872074100157823460464997618123260530465131176266711234822579471339755021477379102543395609467276795297252633534671687433697290880341707763912434535838356982535281311828316410782956902743047363360930670565609271989782082228994276151544147882410568451454160507140369152357217575470229696649267310542204242614876302570170108728163310443556144981870702502278633615137007238417805554008304734044872989708629074632933528039819987924070736421115688257244631846239716133268175268047466945220348042633138298422185867490560827745707832105716423375220112613954639967594212373367715016607065667418347750968859079162970118678848439049194294282239953180645778740677126431307730842159676861757146334374575949268207507093839203568239949640343681135586137215276848741967246947357571590369794355265407990647870292545599198955225220544577467542066030808734037753439756996270131541218637858382839215943237013013244104849159595178261276660595742984951951801360003173419359177763893447717597200286987720184330853277831343026085014962601786163191905492943517371055691217711900715769466873970384446160150148254022505893394886344474807775664401705319475713363814169748657519036095988122080469493671826123545507066022804960158335801820065794016932376266098134442749414900914893153279817676801640953736464353428695498081375559937589299219303507050150789595413948675880294052526821872853705490877811546267789188427211187931916968125769543231700197322862992508196325630072886915487342205256442316789932858283888504085826203013812521275105867705262543805711807980345533831548276758887685836218851933253636893478409312476667319429201526656710688225259789269221174730308581378323250718855944498735867961215513174723771403553671478762397552903447378185950134041725124497267068974273827322301945902348415940947647583302469378361716741067792777061549539730700345190246968077238201377264812754588447501102959711566770051279740876925523465284394880018737107981495199823751031317242018494642806439993523145036515822098362267050732287346749009397133217240042704547298841658932900069732871356292588366180186981383570801375343197486956525786903416415328072679660220823818752375547694062133709539535565283661399466015789810302094282091250384880440818795584629325191020451210627063551379790407852976494152267250969973668818823743925894654715380673489721815210298295892301096258485803695894817607198429062293979811523805521285353822742286856145638955445879492352037933613356230621968806054323366605016721226652086539186626948463763782151672369807182820029791011815125800749909367183416264522559221816655850769535262157197255882596023156299056226417077269615829513041878375532000780487582622983610780781108850744021874579629172028123472064363929401217735513163779867818610968034321109642791115981111326838246513616687895001772216203053726311468435316444706566977982094609046323420364873833070329509902354372002233177635007390349888049589863245103919625982429312352777754458522744793367307844646464568371546767037851774196896769706031016231622391230696378599717204473735278445679301753836938568081114251236975671800983366865384142125771767942557146236511474999692901992664527706658038665326519553813282520701131092771697479808521580054990131891543034194967568387017971278149960793170855475465084912771447226367626644190799241160292287860104157440283081555783114546688622055225198943759754546989238572451823203483720270293279053048974373620704625757380586391146739060061004487664711147983429238284009317802389534549035831901678053457132085429148327856710663069427894622864222206504593640833563911953892456734955948225951474857848122947289302138337104665641344192185428862803036610002280432257134802214118291237363347427064213300265084771588098492278972458368174302028651948218202908106411593145498698039652308424550430339872811208356829511562901360649341539293516795282055672581674943851095571792430116896411596091251877400104180822383640899685427246328697018069195483225493403669729541858989466808966271289031940754144175005379290672501256215901518899341796314266361458173977838088918474532718249201297070420674351513251697539036986183478080503138767925585525603185931289436397639135282617293976292148895822436486105094701925371768281682438778880015313867278047647729279129617288366806603144511370763381952251296421059004993126911780849693595152500379620214270816393414878168784728085930135046379241529115505357867107734770193048978298976681420464513289494513689753316422735455334547444555455923635118671026302168787248402655357634776458364978964061277728245777590364877897091016604304475882538368576835327066601424402572298132653527324092321503567521733853242668792119982485743498047421178140320916587075912148263824575104790711075443068387448564985201605866515227120189411675698087716027546822171108056108134051245932634412656615157410064000811089723764535734832558830711084050122679722429393173552402246521214758274053582240778395202913438462945622159581116145456662214607107764053995128540351738012077751084472706555619750614615069239056589133903205678169153894464108866127183304442974713140823790085172685551493946538180308586542635653528953095246168561187993884228116034885304668804226213716388700880021539824205232298739347622585027496296661919524889693446337719068736576346549456406603298169412323765458341231012515524572971563068923593755081188868831168700831618979472493871209724817731056524206387170568113755662988984038718285751142080344352860799119712013124743537373309034920625161531318114268808742570395464435274545510507652335549442508756497622548542492332899299210101531316700931782009781360114894739795478610553747717546849080916107158051492686517131877562386710951654667125050412784550082079841620364897844720234762457923317947802580689481801307157254013144597601808027992018048764435865780726980006640648236253745561465855634872030888534244235660091795245377751063568375814856086768715422873789850571159842922187137372730750992817429666889805015259701130936959050530307483936986200295763190129954060103242268562654496009782198158487518616515685880437688704742517300241712324748894162275633314438993959075036276934255454100384814526983623865335009688926370924173160228289392629654102884827279709997641157508326492138857152833282021088429786124155803869766702838065514631921623738867166869829599523104775585604175258552919652427517962486141486823935512228018635510901922382525612215543600125490352482576892757276911980568366272936269276908123153005907593030063949589376507204467939543745242280786842303710285750450185178009273853764862426920305312822787966697356660564130201275351949865038100290952817502908962171365786798059080855313021195376007509409659784286248650098964177111655139585617451547285279215317509719510863334759702336462103921821317042494910563534284993985834505360993593967899025392523066997051523976638491079380606841362504996528778425512354908097513913453173180923708665078641902371098140639157434624337383768716743287861356938449611039109136567717167220901896630187409491446941410658453011279164938833585506851659753521221635168681273163632909526878045709856021402630849369761602893712791561397698076052051378388857782292793547043219763666390686309014904216277317547315207558612602383500265815359645019569931700631810815802647976153663344757209413139739760330713243528747020427798701648452568065968733658580012618289527239486293758613616157420893745456562365472849392652004372104875026995706783773494928384809226712063437949457618031045348350511849303822283696498878705583277405879505944908277031765064097805991071804989210934693885413263229363810804286195768123488371564435358453342419056321520946897020765111258740075691756711733826801109556617379773775584319235146070297641817977542124730569372649454663236291348489331671547186076868478411600914783893992015926857238406290580957854559947931294588217792354699178406323441904972452456971160383906656273043154428390457067574562945901655307636734035511025209554547780868305039525973208000272974971470324011637589724811084443346380952329610073544727127636733068255300236902476990542672149219165843382209272166327630251570168521012850820115652742337357542253588268323821578657175317090731978490173110791543054132912878774097584588506373352828514401202124028081047597897796256817707112990401654703365469379763339536465079730734514158663764673295484828932323030361177137179411666714110907746288314192182025321985838116566834233466978952764720474711036229111268791171510553949293413469171214928627568960326975450617636246868668367076375986426519983556934767980306170553099013300463409178228483817440142462780138198448260213596879447351869312592519550007305904448250314145770861278172201831223256303574010576050085426780355939557788708188464295503713812977300170575380964069438457096134331292272821744924240001642486206873843811539803628859003382388027139467355680491777831377528297225616996656638078631408932144368259451278370009284032449194771628421596538578332690423387450055927679900218314517523866688626776293092486373920665714050292174443823765179090948652541927732046323178404151712759966498922889053741250765500267965089577095563358689449076974107189663414418002944667041438758150391804683338746506805327234375095894531096227055834815893889904305542665947016344273917934032209444516306759962442956983499933086476817690399634927383157838494745270646124591334100874159187982166475333069902341020954514899505046382858530732394974121138025984194110840966404387037973888251800059954558946484745113109436396787389517362099335773852844939408313989320678875580406618689174532580018568081744382804952011198082047296566123961608560278884265075334704052564465385470835815010775797527441722232024348399489960190217638871402246380266999379362825871157639735227081463373382532056184243859183871229276030477377207099426877573927903882787279702716011187698929091380539289931851089833033070452639459773514304953816439768923352698844184364612408904213264384567123843698310344020611137038608935094914197327888061045865390660947121787825246790979096107811647239003157436456231820864634661646244805449930673796235591457955853356087312455969541090725522247713894848702074524030268126108888073894107418849935887288731734462036809325950455195541999928537610921587648401659043345407418578215332528159025243522442162767311818143411366263741595466621788462458789100437739364718965602053176645632624585845010028666030230810351307614469344514575302825428033118965881731820630964244366492563988678421191989779040611144056976385619754304236330827461465799179664013370309344743271662526474294675224886878131734975070460364433280344629225992904135224614154052353648886143423218449728380583510191367299538885835784356051457148759522559068558337358491991716480107288610170262342361535089721727418941967110616439309561023111301435490710831130750878979385400318157654841383752179385730515496182133188391159882881009558729770200342790357208538076676789630538324507901712213092914161504794868697719394843021149944470613555690897754301685991566992742234657267256278177922087135106836808916558819623953368188915696717686761304006177560024616484288668208819953605428324513504836468260857956405696552978508967003794387304333957426208042563152703736060719935792811240952273369679293594622672499418247767975394022221141964985342242038821720593401951461687691948554005503592483285017111402452356132200585986452544538985400706565488913964122745585807641187806622261442622893374835239215121501447632591956907100780965044642015145070134000972064168589621137975892539705238889424283564303831133648484778405334874147784428345953978881986966216186878311691181181098839852480273891428228307315264056022342276209513132128377526207049578107359526312667874271319731682532498208566307677822423783861634283047023730485366671118146189841291003019551542581231240420200679422494475094263287244028129584735520091767590432218938565142860496059129177249452322266206529348172414961727860013057146089728047389578447868300491277358021301450978776388840483354820546200800799522532733998522021746367759032130314877037073281044375513814980186735085451641000181216954108895218081214361866342905575189546782657328090236009195349675982248775074318297425381741042566258964766536240178799484921018037624595258279762725077159196242345976390967023030125517215704939336536808859672163404600925679220704696659445924557778927412936323669242223964900006549137726697658652840372294911805374492798906193755271877822541556133134749898929991357239574277004635460008210082032653348934986953382163712552930077174875295757430967208941805712008508178191095733519380364426701958575304332637698925924059136211829718066317465250916347175702505946043630004345222540952578349262215230362011965229001158189782281389044378161292712940768089216243682247282031168163623276536925000147986072559196676692371425132027150439792678934012652821532378243511114507209913675760223478271932378663471265699836390760350048243198449928281539399776897205688472418238716315314089779406550600703324812885654044018619675670048501109195288684866809438195252034183188162993653396429003561561809234512784458725708535507758724684213243916393508013701500790793640747894196547798415389377981021289550907579986055206809515670622266308714389347716687385795434901909082369532178456861381492256968210888102171960647273199940325567717976249377320151400693556992888635314444237473092150326624252063168222782872201535182774449175043432329900872541831406057561518827913229908255214069587082232775460481378590895432403757263611777804843498625663033189374600154002136859539340895787345959971446509650254419071858392193846487525047891073379740204160095024146306062130858503795090064999891319117590007336245012764565873244856888373430398388251983971944056495311509374142407466990409300233959372762206643621443402092957359011485496966847219421487354901693937357705167488496393577361680577944521605803943501446581696098986519201132317322415270569308619225312666922650675970661144990574512436958950408792085572308464175160044512928556346749763514330982647752507477701170546561334521263868967892643138379145344866363559594318993512427330948858629054041922178917741009442647529931558187295893347184277507463414834892252240029759976743503094411684608184222765191898069845579879299988306821604555507020523432341651839161197157727483956715971644980325323478417741019678610424482824637328751325767973434537871426397706603914278108784344916501744085553433576414316081261497795007470153433403542361234700306357165637309515815981547441379404654520424685881047156695396866761230840910624632020055273605557027086681702653020331747792510307010817679892696830954076605398452439589879070669300518386799956687585973864493102989379974503945510855904982598936238381219499451840584725442581761293035674831873164906635898995036795931078932591013125747175704394542608120665440868813897733649948665464028750637462942473523529680947286785139273681813868292633689892838967729393871729726123646632561391572106245684009519131059929674421359170171802806974631309296225033785599454525792961924692643192250402519706369576329604776793142388497007118136502980351875178911667396901717441349842149552407042343753302893384219457070298100562191414887342154678844865611467220818144790096085463730201233494655653324243549721291791300214511928664876298225205431160322464309665550110978964578697632040380412721561803178743503573734174329531029836691122857406426365634273649649534979509704205640045026557731899064368322266005229394996143926555482810872135853922293071890235905448359828682780455583064277145132515982215126611360163553954218678029533014514902664560836471917548620538467136782409812792751198681988455954686238358733408912870036723948958858052737702858811636356474552229720333382209847086779679902006252945732634852815493634288913715415331068765765042143462497619124792700293465743469879745434522696391844359486241549211619235448014002101997786935297265593040029613175752363380915937782995532838904601152173296158052133669764617736165139711776134882477836710175582555364688272309633635943616124432717438647320409575218321842968946307790275214811610795829174554638414853095031274535683714919716724417565037111081659760251325814061808295835870916257222371659838755990444938555204219903351079472727389710952450864667504318405660616838308566342465532297101680920405768344859417126958955986926822703177164063429634120713887424089122345255690715101637101284732588171504241400336797722024734745483901833382790652160426335499231573959111830865707167538948496367159817752468064234441556363778620984543778261007126977769223564424580431746967931534017369042405237048498897143676550226634064704955754101167192162182782205937049660915351426741509454239441931401762947936908422588532994607571186361896995385852685079035501267924833400515180609791763193464327580263623196772728678903276462784199948223679468644291451537768644734399319806974451200825705958230072038479429974522290218678239112212325791158336165688840751764204695470518976429544645322014149424115769064922372161934676994220901626134543138659306889325219111297493285993673221696446958844173864356649149657129938972773670431449217392123286040961507523647018679823187235762522011430185374317615224432503254240009567613152751738660773575711150207101737373289963158948024406146211759639868322253536055047357778995051388046948322262765467914990633207817812442347499328027938334277307919731859303345574896944470597376911345175037208107922857661357037556280755097771544972940809271963991982499876694125361170935400873959041449629661070918632653336808550556005379981819703601179641514861527876558668861291612478449752447457184339125469879210355938934446116394381998260067189443803622373543312885679849871901504654888549887763529151435152074331479492312658668537364252484517319429653984005327686796577083202776088453339261000375216400802876885823728428694500051119598711667088597638042311035820601473939986960861325757133904320955024967457491284280902398772811890893223837903453460007159462808232617412714834238526127388778498996581526821905290237855344760432580077030465682165663203591719102511948361979033846904036993030084893532092144220610355892381980797481058963652196430542527970437393375940414966162252530526223207330158762463166737783753349911295762282124108899989200176751952124740298680065079841279952332329188614160365639684726100588145911450419227288948817866580386434818579470365706296143605099276607795701831427112666029829763814472847238826312983996751159210527473476866046507153423727880180854820412251379976626920704111876703904666151652772975723313683952478767246533878646945741358673298199369041848302711578806737804382214444842592175021553180855940634828594444362822663912312311110035380320320685343320738225589617965110405704655218985451774344282652853712064265175376040789004484493169066612019156763869068230322556034834499151800315040584325429308059314816891644909823510218501953210627239390833446996908972419337153158233779705012711322334076782938246740553477993465019501658860108959714220096291980870593137722917416876007592050591628454320837219585288913452494319907374735525008275691113311533346954593294960556239951669431844713669875644455211519451029327512996410779107998987691130071126936255556567946438025108954605649560835540359266518496405188194999099301733848620336307404265366345405979777691420090183579933794675791959201785105750356111204972751996688778859120282504530602605461344968973381050924463150648867886330913574917911753614942136880684426070289481101562965055842032151267341804685491247527075816973346125016285638314360248855801446238423220150503920522286157431167421761529942539455889207724382395553725092033910977774259886423579130038743209099636038642696709051021601181785890539612238091395138319741459787688525841018200804257192602431700538109321815278160279520545503406212826163216072528109244230750355311722863391802683561914270789699814007000386582453883007164650164302382031723483071112697501984645192984518119876188246580549741768692361156954314572825172785681545133065223249239583860752988316448496639360748400998433782021872650284806693056881093966908530274046758597915345898903854215419294323235504755241427175329932468106743580328307227153395753612766208481313214209056032297236476139948292362467270643919662030420715639540784496873875767641804124564318187525796169884825868891988014935990535502038180748047784561732972370887492602634188736226423167222186256005029288783057241415107720297210661347730775938130955491235763452865547741019296149606575313653139746933795921048334751527440770647694922938389058491488036684099105443573889033622229637215399623111697817554136233050289570517179074028255247825550684330075690204124310085016616010403928783284566820355961926939774840245882356628912602050806375671871027425033090429286340494280179335698579934444020912818003200797562352577504928147191436546752288474841599854846886942484092636978328454262836875232041247745525574948261059471802120349873790108945027976871615571139646825375309034180772804015061680092088611197864763773755339603959923242921289786611107273235548771894557666810435836043121481522744964417095871949495954394261517375634013917424114346447863759729402625449332168179785271959698560876626652661491795158107908858454820159798103905985149310200531897022583208118093745315694344993396184050851476657020835951889019004409821404595241284120028484041474871267964283514690282575778762850122664729573772539276526724582698843438850856385777766815353705234094752987431475991722699713860529066795616826211072641579363511543342217431835687153109865795380083586790170522419198068626172792023206049465648323492628456704555472932142373406622185275443123789725079986711500743538104213379998263327104299697632693379859460747888359732091967391122264749853308439692261251956149246326119854808521765309698954986672718205591821896722576726146025850566638896209328292124810900838499134010567951731677991921327674420850756267976303752233955588850589379492278213323195378498928998678748273166362479531396493930021846526117579567135781400055602250497842777148354028553715511331500223233637492122499478109005061064779837407659419520751513338213998615178206184847174355126815940102009553464623068385792544713728062230514561128243355310804303580833529377185800705953399683858570369804044328738175593027808582730919458197309091524395402829116438877152804932912603703898632874572867521981605084911553118988110508724859873525990098617264182488876237656245370356934946011365025787783859630812505919541313327252295990050156267466493815769897088728117081147946330788036692568694448379412859880536538261377137051093506626380139960912758511150786917799911919814540087375769659912212960828351120889843953979731853241513474283718352434339162738746855781363946145598713002012338407717903222789299666905049550994091376757404656666463035597825172580241277396973125103611528173797044662167370951008740758219914446380947025123547349794049174491361075582542647238316872338635225191122651317398138576654111309578292897541852880128014943206637538508051481644313322803231827008808171034309885151072365495223628635456868503563885306306443570390006536513295794841292216406658024255030895266020975538128874848589194508777014979744589475189127108561242988145705203266872922168348695678569113278744408849251803027568902744389891144654960363105559115403898587481390741363332624268144194994372545525624996843144688031304121639972648276284143559758084088601761852100182518228984783433530531273748468055998945426160401879918290572339892198881637987607374848660605947534137490284987023046498619227822493313812046751763041508512356167947346653392983026484328262228245738704753025928235473559471590421303874269227347628387561399368572637921536689933299349201955522268738362347595612642684604269681399535595227545283982672833388663375327216508749580807173428633319678271265679980889717156675515252377443197681758241712683358485507288422399894305751230907062341508688895447706771023035218060820539721521730979461625674099450517184290273517734951216386646789002680269614583168221857680908476227550324472715801581946162804799061585854881632446151631746840302938316245303278180197728450286001470425907752964681713645850808173319538579935087401334958327985707694362559269643704576220481915573677271508700929759622197725925533912425899788981055349865006681198847435090538098197751925921944037644162980602075456563890608358122819621530433683955618684829498740593734615437956085123826537327374135401284013591004037080665680222159988885664368903676216608033787746761256942010249264032166341459274094925855069765546243562523546699904021751415217963418216437969755454515379147406994992550377014842880282672527521407817779165697381300258347365126612803144490580953112823236954929353415037125109934371251744496397555030853767972395437683542912023248364153884857214519269926509304122679448571734382401781204818118660276033606337226276853267170559589559622658178467260421606705422081621447757626896916995482694568869585040590328337895641382945547906738553736906286169386899186234832915456628825050249162736184151283566139711672566069672397066010427487814577404643137562290164140822551436637755565373040446409880941201866621298327176166071703455843914903592909364261595989736441339926850085774734044697693017896321475952098157373160578817541149567192180012229375380790814571186385183956304489416735316403109832614704305146213681841884368253020804861159580914460664355831984664866886588742460735287692900323086529660540709900545368882635883537872958110950001354608546521238858489314350069413660302941544620964674808723594930863562651027623873858452647030245851879870479647899443880568600668031805955071571103319967201763332289236280655832505890937728901023237881625812964571836889700468830201978510855356522707989537364276487776939949191634061050976472604042563010117750448006342354207443526793198139843807162285864091633275670546839567840058835812490153402673435430346590872541810865266298130300927953003586319988424436097514558698599690332965809422088025967793717523300943419365529047224291248135517359593993217433577712034426849340526161063977533964797050053810108308080030303292194355840509379557692932528802538664267823542528048454596626251102504236166503636084687193594730459848554823374218707257623212156539266292039743371960791643665493738095550391856603027882255720125854804427075721816196773066025631478749408099463897392011996530859799420861773701744815031122719899790041230586185819950942316771944253244993486408793894310604014190654334095927119105658138078010468407501456701666227371982458549544305162537082227428711229778970154790571545488692936969026192749468240357656381553600136574813451615367693699574910792894442239147646687274099497576765177673350633750487540613566411257691990351771702902280536433295610984534666317017984054450073511206092853597592896758273920906695641410426831203986912246439965594351872847400121196399973868183346949497454403832654549363956276706953670472990247407971295511629105491367426292178808969185189715191679892867816507381046886470685917486804724240889520825004793412693981252868882419321338826005949908686608232092169111129979970359419113756837764793198855915417184958930056446712632623581850580764114254915064185738457438866694522024635092307151020421237139096178700694147734158771260101673083976731835511614870526578131990002389496365699528590387051283037296525311966999956080974826775236559532977636820128277647559184564810175981171321653281026743246414849545549946922894610579980514495336141390302796679811741223333992526598765997962699653508775522168123289694140502429958006341928753699750839407014398235770915371690303251701325624381920625814992784375019543456248338476650085221373046854922088347393543872736048224222828314274781403249717740696499826497084552446874974642730346294427745134960915989268313095965272127639520525694940433293179984022426426838919761522154900148493781929294869794856882829380463852922184988750774017955971137715425010947388856249061409178879124382562128930345349937791433375362242567747224190689351468335801951272942823219989938739123100635880266109008612605551041348699069754433377485778060487500728645069397410375524873959713080809557089796276825396741673130677242684207352556792164105503532866711217160581847199759639679173250122385912171316813221800037463365941085708471925785278580852101276871622753946181616930183083926937049866495712096374574045272537830632695954330481770363376178384930601391674399194869197666530639012646650040328246873624341483983840926666510110863375417639620074198350368268337392096838238400380588657387604202027116382858758689622705801281770486648825086087445712705165456030703387478002716529014964855305580852578270133793485937607445903198737828867479116777108070121270586000410706171492565349192734542978231365184169448949068364917864421059655161331095432811622077474121779751790003094516506419352954722481180239416842753501148929784568708401499870242029568532651425497569911051851365868957970775132704801327133784152381619047890752694528475290768176087319547687037690102924745680159366796616315572632426246537338489474516298875125548537958063584116331084708945171739518829096535033931297435492006406566977510956345124658690689654101186927085777277976515558890781933735131359401333158889210072953378414027308255060172693514616958742743006563413481702119632769266212232580054016424280591983471605824814573722788185346149223338437641778519999030797329955338261909484108939441953881530956459125654900989156365795439041423131082431666450933277533735137928103131135953050492005263737819413725006107067090322845900783483559225166505535408969345672754221711868698139007899021777779572590019336593918066667897089899836083818061909972625727655031924675279924979384302082559559282211167284656953706335055959703378234825918664571964472191475708708698395479417196252887474124489701362715392173965803525049030871761515042283740131603018648124854113873998644449262199605895102927697281438100901890332207453435867025422139273096431923783666948336764974834326910242781408660462324320394715389984623834194474057619497783624001525044563089215021122526712038717960225705120874381976745585082026418366783002190311193195593649969161054874322830814093029607604302630341333102297292657822845111313902203200793689228063580489060650182759413930091436751502428565024924638065785204554711540364607460778792046887713177385088396859371693249944216770105449946078957182414453882351115902876037677547201943590194767431120936483721030531264158242146946277783077558377065002160661291589655501813456463587964412787484590268496368096051760791186870211084181417579703054043992785686663057672629923862813145041132213971400295741466477605967159117247434622468868777335385048686228318386635516143534666708241414602211882631648220125359681737609411747699054482151920491844045126255753114540596702120640181302696962252603066860813629750233213402296730887937723746651243306735523728187773269777766053888601825201813293304981629246120576567341403349296813145437809224147339922615945000185813728268959702632571818066016233117506125009414753312581037019113240575096811131715292002827746794512972528233004549276070676871348925904254111715584959459370820388586135976010597507106152052843892567655317589807229682874670086999221409163919507700541937055196909589776946687748526921473217560359551649969828150492944220003676108231649736891308069798157255597632006926204294994995970281442866414419663281368722841502670669635347893770532730227865363409636817816325885264897244864151083157154630483393411436134175448761107569715802834905014434346989492105172117764747594671788581299019583781388083410345117470359289048699052643310869144146071790684316703821173245371836923631329757502797768584829087395849813695562062131495435211524932435486842896393938371165807897235211518998750488095210394629387473966956847694157535871154235366197334266931145693136050862982077383720256447097212050504143479139014619445602709182447189648351916827622412588667718346741834428603632443943257466068268427522226610092727826197492117676075535571207321413783210681685060532303088096958805327046475362369627244053338393929586473313673641608311646499243331518291899928209311812593938098280787001804581566064340669828117023119586279037728545425861661608308631559758583790713416680620708653865705892194541650842201521191803084333843224092006223651692028888415211173562838128744060726906653475087273641621011635261186264462549130620610600954602515633143404770689643120049679904652183066619726898556457402777881578654832284841035076398436896335692509769309404918954425165218471094353782537704822494371821734208468113522448567101492173646538085922175946806559974610259007462881370066158531651514489226036239862063672238133278538294432509972592874951808052498356573574416337680805057599457735229938106548434462579507448596435167538388355001367090545459012172216515675764306223158892429358958137569920475815977772709629402649001533449059773644555263105881440741841002624868885767624421718933643827255676300489535374804483587720921267450535023506820135414267018185272108711047729603214630169228081711595580351994105008325855153357786627007213932655719052003871881295820820725717221039954217264728183511200547092149190230241076751269116650774312075945713190070763417876713445009672120772177717078646572338851709160517269001781529572204901930831603784125977104487944322062070791179832494124227488980276450165000804299935945910357528777386065104443026927548827943057146686692904109762493842701192342103652770693321601767423448330478199842970988612960045174171612428937850506857263161632751179983158195235479510105874613564260112729715783198214568669086967403792980610930882010360354099864007619427353059196890463425499842102902924490767428564546710364540336311821529621582927871086218089666369786744100280443524035103186750789017322817735739402920296101753041484161209481300801561436421424548711079813061281023787049587098886498190440475749262924423147590371884369157233934589080542213224933354811702392600107193131301903362349471577671418664096421798840474313426657897092777140205130204000163469067574070102732840289182055046672763706667812563703862516789290181872143158128482051947975376127475014870389966185028810692024677384873809936354423316616444985485713457955568829333146865802133338724745700767458575561054926222495331032710140934230821244010403480953874430038638797780013878121326463356546346429470710235424348808665056022618532019604583668472039166067055654777820717304004442500980573781539011799639864181824129299480582152426774045304706397485460618956749787101511822115424567744433601575216680608246159409263874678980652482196191587316890170502658419878417596165272345828833489760554836679933022301992837842198180055779411435444878354288466336899786446020005761775359502173075606918808562390565958423053713365277942077028676828990494103336609234342859946979667925907320293188500051485354731576247084006480266093982879029733423395940957202402619246995432732612028495473412624932558021979259261710953227089098629466477870429597349801585466224951513837250296724974154460370325886086636992524085515056426185060762496083722751553241233593794432034338599623877011663599496682460151395887112459403280778118639119918465465496087751940335018378955162100636993195734412889746041779238400147395777340948682141657834360876851612917918096387553165767531608411538784463160958988038925667782725454150327765940246331420244250471861301987768302027695191380600254447391515441841254990598070290325748569400870848334896393606456537832165489129835437323230771810399042165400652684305036694260233571663720576469190602064875203710940506137821474876545818002195451488617500874049360311689217200275371150462521593417573098661626196560141720388012524188844738727366238253446266621371768838392497368180705961145245735246106050955861982775190944919195489349576506944639420894776763946180608934748503869480533758229551060480072545788112992482010945280920729016902999941351873786947458054771132790853387500470144279996663583485299417827281956072502712103621325648132807278082636518287531913302252958506941092274886714808489782549464439292650837427128123270648387455583585262450664825932824891503105489955555019615935797706064466879696069035311987246246284398522911195420115537241369370755584601483789480259011026167249512104386564315031575998149589054544255834363636902798649232165215190220678707341424627124196809884904491419633970146596266318758688906265715795595779306006278025060745636484848861624490097186522156350639186013384932185460078151528833236138827993026446130695149798714562734898042139703573493454669643102759166376746841142962288105678030150619771531305470224713576447728852905850216557725125090317233445280011948554913943134136602625403035966567470176276337571795129086716824432164061909667225228733187483473286292003015670576188855105524136917712456499611168592973351968838758097808049954827925712142367080099355473254777755591188020729370381105964855014551264168407597476839531837298352885946806660659506607932302095754272599769386547944401500638026445569699606878563216432768319625336084564251547180954980528289825936100571762264789316830998628617054917220184049618597333838803132395830220758064029416513050224514815987452945225905082153780109960126226018654579133959892292102607074760110647098597439077060018281700996661413598044144046499281034210086140865506577720827724532469007338784370564173327455837220392044273226835947509540526280461811435630045100158894877527192236853029448209224242747233500314700330419342222833279183145395042158480859111038337668825299839069480618731445998356017844296991327888758797224925965712625047389223388651318116079554575185581617191144786051131639192463679202553212358372927867831340148681678058375787584276199507173907856822266814640079702645730124950646503812017501035333609352554923068214199545873574148951367895530832234470649403358977341787372531364957984843182689113302643975722668120633870706436494866100250267309627958082615255667633233775706449893382699360663812909642605286244202616615866792642647831047983072202256397989379128374325998682751291815202179861977176371724309173435635204241044151971195718987046365360867337300941694477107107078181854003920294849062240023883415091142728097111234923048350485667599374365114023706060338244368690379543365777127336420423330579525974696228537392830563389762508384090550213441693977306391310915902768223352092515361106745241311500191502480633846415690216862702201146330343145609564294128276437686405231989054181193276518655290534771072915971854322091752395438769003578277996392152039507498214734875184883432882995658000838465764045394159224158245735691860535637171073875525591196928218214818493807255010012723700253011485539101636013241944413258283060453139550990636895410388982353248166589355296637281682799135897745333903000373987722707808368808505184820990015249190749354052354117205118365078472662751633744277181464680463569079896272987543215554884346871611243064933024978964466458178660078550390164703740806988793250133848245850073313735314202080574596357785851017725448459841151372041143537280107067882313041384875395372249074939412424824883357223374685692949864872153576783016611239810712341358903541387380740448353492585365934029124009629525608099137645787071443743777472887879975473383436077297775889876083165567762551199778118895416836846756409845227306089156829767219200884324500303158146240577906104463648653875326910010625223053847409246773163390535659776702510729690827418903357744418165036987762441286958799486902424188148970026955444479601970245247822081387375236740959366510845256353575363508620237235009670135754300431163650543829880319858005844733120395649788012967708560301960397850526667473082874675138399720996027948933029566733714036837166724146490044336520780018501431433933671393679284623009140521540192147382767551453198166930978413209663229410720893405425122977795598955041614815708987415911988452012680513130566599004340508045480666174546088108211202750684918654363241475693365059461488945670488442794889365345889907612846180805924894582789688876193957660306712387497928032809923494502965617602722092699099477838582417896697503196753007730272922176491630418858348425152714374992418480038065957462878807851809665873468907660110324125325785428752805258930532929730568490652336452687542276328337756042357171160882792310643987702883866897022949804132655515992728628752265653164762622431636785284856163841051081472609329304636502573095545375660360287757448929969665859961649061520317371398284663746214734518693754561419329414049402875404611988222872135082537372839039268824418090197884583340335498761812638210965776952871147106285833014351506982594097373058678461107801114988005269428213454443722133752968866444368425474501576017653273466547870590397785520155285585260795309211570572661118289533630182338994774842277401129803129746381427076099446452953354001526990331788099300213008079355716701778058960709051176167786955003921309307957399456897998409265079296388895276864230036376092717892773115230479223258929139412546487756427505366564858579977469047026530948506314436341016739579056203112246598025467213078412710668438055508587442205045439112926404126516687915036953212023353736943672030594522002596910261724774158561039003995683673499904480157222899070530331820420744627174808502625429749347253003895953749401029334057720353411911202278578419121028932480952876237083406944555191062614721241345430540558552649326338465615089009429502472880072215086811698330431020560124114399910252541561806991067268317670116936837217385975726258492208369498912692821031891211245222024464743604149559446750863886441660179442694396732472939642037173606119285338897566828456764670307124786601954437879997483321083671607250910919054829258712623252546697696864801749014540110645646310455511696043123827482497676441000076932985729581158587000704526529959266126914838389837233045807732201398549967808182558890371465114223156211482264517362290867946844189192997069229905539768091261469873530043777886433815860079677877843803693580074477483028814552195886047757351184929767526258099525534032282271413686076457073655662746903533603933621122583063972206449522864500383168111964881238785909669003519343802026597675037405118115361601511926510858407113200395416323095403888807669259727153156360466461821628790282070128582428104200076372974800898029547191275776007026029629017999364955877200287978322427684623615725949277352679650042407475664724696639705146530019498862862511008770280385651415892758126764157055360900718605720232136101375839162340059325426159312727981392004669912246632144093854427195857861642990386004221636053383984608564465301931003182502219113013948655415836275478242854905986174725499276311510858767741527435301880164450630976456761314247516823790630162461378943632769665095138052773405541328728741629309967613471047226910502486266330855384657551925845298335551244751149080175032620066232668088520139715559044002653412302993132475226865164026410097165421042161028713220308059146934102038124537752371503387668257151870607351486885794563665514698946333808375123521655168614282222824670242613706658043550449661122427614936082117302622371195961614815822817238520449956593771870544090259049892273350629140481190105807525840014085254370761950249296620448024306003892472478693005369604899214421431917501510341654208335376114386092827160373691835878107448532788252914552975972385505064297377892123615531765370961278477055187712586580079997600291317171440862365891043697608504222449217567890167434583904118626254795542674210126428826385446127191432995514537035684482110872406053003452596157495924311074578410232406761611999092868392944606871882409099550269624472950150298372995781066633159082255892021521283754471138948198197348943204864400317262066059152340241412300367294080884254037740057273644637803363695578457736677750975588582878751232119319499163843156583821338651784861636544854298875787182488448952345760387131852183668919782385219189930006655684331865131697048146150688006108674451723058766917425280275244171245135553824458806497549149263283032908870989811045828904600714549950425268789837782894976919851621341326662366447733470485262906621591736864986549169812986985880610084351684709798057555031813020473370545075781946887132922577303468856699692176828591522899261090281124223286824180562204953645891848650901414486590166851982155388286346868516607749029051228259966973399619498711411348162959887364282336170636897863548742338554953034574020051235533958114842389645089002832460061685549382516314851802164397908015843896314902151466278418753031949896982996558099296192148368478561375928756521412285712663258522400137653744671048871392458334749928906672591866281254144381194307702589487060212683534286239145451710852064374966778164970331631188167541697547088155213465577567055880102757584166817037387827846037804957249051293551841359877021310490222040012697226794643355123138298484447680991017676564566424201723655472682967919373016988218062875305549879157208430314609699376625981707425804133491293187009164142908616877864255602482806483602742861237470950657139131459759395696619467418452646518277158670632635885877500076396290220063842890582683364239744330961625148622905251508686573554172374683015374756962305763827523447019596959608893165814509620537992118860250940408928530546947208422450233465885279693834081351217990917317878764756780601162232851962202069950393865184052052281511423567331956296605015459533841419927898530798449937095898313055246797876204067993742840307843398391779999420109172641163960196226787305499689795784112094235983401204462282929136055460552153548544897410144180570678918540525437426916775954084412406079356924885395317504881554767155521983974196275656977345455323290323150183059887137855489456976911374969277529297269531136294371752997406587192053074496552300500692493010678508248220247538735189105990194182731089831647854051458899859820394998630421913767816808149077438644795863979480242712597912062339535139798986469498190857257963512241675774936123895523371862142142470878107651221042274512999021616996015425858680830725993062374191115487602478078775531554480372570272263694267231113393042554343194350630870421841063954788784065222505378152005979450118403370339314411056781419454059490583440943847684119099691412083330936021961454325327112669076744359006397363061894705436053416077838392086735936334922534601745000310164745053959835506000950361366645140588321725989253594002873449783505884309369962804638871045368779157500035724567866561535362414428706479834482449582714673606723949224455154080673010111342222945193334764536088429430738679730866384172993393853076976766817118193472791498861279482194936510287395412182896278688025974937713765868630663440200155004930233093282974517219476058468595690996839852343981944046787502733157564066273031208303726805301908471108803927772584154663067369728388028677945107752997237822485049488461524525824445792191805511092533724381333241622584347453417176183649613290753821329322098950821605580696403144117955810665820071515089674782810612047206688235216650231563862613924086802767559426363881012315357088084256787937969392956753826608311146176221560423421928698536009533377604768768643703095724214860301817239328064888133279064261559367376029101692478569119386286744944667654191186997158435347844324029415568813803215705211347891263193948542747192477615342198534674873819471834734801144976755184372141535933922957538614597371007739788204590334454870388501086771724687166790821834055402331384064773034741099794669807502805919921713859364687663469975086645502053399828909700026632522231658507075926800213047464709377393761387461156744598084548120925713978161670161888331519016723344807311289232008437817220412689991864725465949988527836608740295568509186251711297223802889468265546864438470104579814019875407094216625270303709450466016540177080136227124947493389662703054925086561336090105839963384626439268792821239427295629745801713892135429866001688871466476287568475603327497627223880067400668614086756711567388859574760827266584114748222858378873883232178610502559046776257917489918273515478012720999953614198493177229602115572848585232959361253517819132975118029897826665234988109868235294691361707034708325074138544114430200377839062172085262942741824535829102529327988439227688538533290807407772434437480257814526868843895567932135191597836746934594489299552095326615907313809204977566587653968609616292171948012621911794503596827737995782947906156904888146992745184124543435345199350028913652458528333402294256804987453635985879767546346652267147719180155053922679041925941469271596390835749760454947882867328727688938103631859478434694124846471999020898145914364147827832919844030895938079830843512304818022292735829282550350838826171409444438274241351042065498664389618374592370782964687830998452707922969782545110251477918671758636056391211076559905165385796676296037757822472059127489175686608258317713857209411718156651924419395032314921354073479506664978057620646951428497270862543718523311139192122287008393030536753590819332963650417229500699452084694667818907624515560083066167233624097733018910544897575589280459668330503510196966717516735630804471951986842608578127941221134728646851046418142717026681300361629490374713271260949960667264289448777634762297106467723081635862397745879120216590826591493585651497689455116828857066752205020674971048204242332469035024220174334886141667181924405558310778649580671813207056221650876777902787899371859665108429846271077768484720485781366959588569348454339591202629871514888434329410017984375908584468594031759254727967044038474515221135330667728605155818856217555657547371661401760511380448730612647692738439330412934190344516540213216279076749163300578348206697188310335843897075541355404013280332951447678481026876583329084259148267819767887573735035221096586508465522068047120354656083742833595221404450222403502443920782602602729276142393781496740784053631799630568133712223947007085980915467600646172458980609752031369678855474436740089899381883451563349362074147550812380291259786774332484181725172601317368520420121464908221051148074769278343347535629574044998858443640772487949236274241917015196353829232141536037845128571915271656326671654171382650243170525246540407275946672388732451956830632982113159891045537909964690595598153728066895254194058568837376335474446060936078685623195854930943175580483164809485505658590795060338382297436163678792100952692959101165556919985314493736349982769516084907864362127253270892298932569976548037053005678908025301044101755539391987658429326418059174673231500925251265892751205177055960700503638188365548869486685087245049527488974932085489427605578055511510065088972603703141557516698812613443405558681131766897146203068538840490351281420393641969177547223575785321663030563022535994466701641580683828465019971918691715857712701454722332183134708092531038136365193201052191757988517634545993875896674091631574436995947730835785599932846968455151564497573046173087435227750788407211423933523358297294360755503318731742553914344518934304471397388816221495898162860517225424693858445417845330282498452109163017567561113630722713232537744464245014689628392870508310221245180407946809714981102870621557921985520812449787605019677790440619579732835107704250956116270002049801107292915260057403753256181439270575683622965986787743802244532004686287850007809620570459263964252323173955343456438965954989020080503877365413942937789294013673554866490834656338071414211295062540676998036318816370308838583341491230626855801476940268593075052639328335801445567502370019639162177733055529450913720720128615735629569818634223690639926834497119913951878307971923272826824731094682944625965151146204750937381139427201507075621887049937321631972185785966515246377506289567966102073426663657267281646126778123896418101544053812389854247468951964773093130541442002913483049871013600164331099388773454459551498647527713251645062902148154143950671728696441126635072226284681951267953665869065844252998668112798201117751775876219951022412092254328703685951187809928792969463191202883247232497902204144694619427644574397901909310308482201981257156203057129296827681409264677170198262195386086002311465704135125132500426626755492788750893605534594479731934207744092779080456410763678565811118096106098036472437463911210061695155162812457942853096815227134779939943263678473578074187114645671495533823702337671434192567493079992590098491526064697196545069526579874222742025163689350128868756033304442428555968678669410403390908013975541931807501299846860151992382574803343217607303676464746215811208334194954424038945823624021650430546227706774818252609711576495191496785444608010641306358498197100604947268416104706357512524544704984011989943896383437167600882107118816500146578238853900853363875130643182710600181125958616282101623066390541296517081512186512383912203813101044071319581119570021199731166503236516523985141320919088054596360166751334777920830897409492839316546864842979829341508701836224943692765753804304751905392952348515757490938611311063404000152217994349634008526894439899071752605184142519642721998446841373348632926003465985712631661207484766652508868462372148266486409648836269291011054167422388304845351292674257784212933470700617236729183750881627866894455473712416607512072238612360488704551455470283835824676728537131207681325441340609272352465200517830727132193043613086485755678586282009570504881254116714049173182470875170243180553899174096834078475765395943443253890786916858208217622981071091149076505825476454832916668643070109459196036268211703428922974041554986002613937664834756869550946592041152405041978846764406666508735887490316802466546601750216259023401908145667845036199032116320784849510248453143258333972147984495947459329428469378932368961224467488407551086680087660061910133100464580716013407699818122074649924376860706312228295115314221835353028337699537045164879339111116649781110282553996215024776129393271499123996320624696338752016424113388618989994989785440630842327241174452453091001585811961652368643543468331586059020829619931922834830092483570053501048703405655567361021513427423445245920892128086525082092755880303584698424611312224059708751655474061613938347935508054039490480231297730265481523705434998545514900119325587758437670646629203258370997246198331152772166882462601360655663168699533125711577016626686276559627946742062946012179772928391288409657282294162636518584305552041374160595279824571008316977403363857576408430422675120633918811237689414182114984541322367408028058714246882791574939763989537668381174200859955722964856052200128252530317057854766850187249669250130233837380219630094720249356786710553835988362185680735137300427978618213815590902047968908188809615956818735062849230285156104337940106112394225124614953303198725007754601941410450365572556991704597870314294024800078053991954446062374877520956458641123399156376043530043649158601017008317974528954738449060196757633408012542110780444268886601818305871496475290548574969919896664513733910831441997185608017050554271091940312728256466936794136839324729204569073896038310579021644150285403823309976571643890195273828906315706328682164647467378765608272903017920096520603920462247845511130560351889020370562299486497644671497466483644467397285705311972741343059972071428233656908652705645469950974584739031204095592400149289846946183420912941194772743082442494738196337179556402229719029294806662265076982496843841778150157783932290252734235423223379278365168681192701552102826462810368509813420452221487625834602013493745212307446213798993362215617519524832526374152210653044025816025883286392107747403415860758338785789613178835121891725865836278884930207262886340983336422590209231603202742666450900336836337197229608807839705035631455200937636130264483112327477811591920575003196690859089436962794728705099491598947431883900166841067559064273974762504448197860314251104564464057837945738363502140577309151796745267802335982713636293371681158942281014801762045489691070665537080298808937447481819537445247495528242450915165149736183176523441756571661765524622051422687330064790495602600360852868847262304986545513336639403568469251803307786329659484034319661777875259049637712299389186509392020090527392231479040189355701763295936254938099054748961378907639270738858891571588841499445685785576846353341001558942771638658074677935609241560242079070575444966766476322922161893934917400859229658054476927612995678024618362579869754605672592513410425584537215314923268696553187818204172346481545265493678070306653072645038014642660990878207400361988803621680689940076389354089567063165285699449564158861531247637507035903991300577090748682693883414616119648247150657815665334489297960405148511876225406359325854949681642484738975773718728687654170801109840843764219989208327445400856921229148241145186861720044601417639909756864687645472616142191529401976088288574849516822903047305878701094464804245422374474125512423598776602980420607677902195865637563330673713735615063516577312352801132812725986425505158530608268128630487928567816982054058218632409844131892336330095049974744943025662471620297821188668449825281581011607435344897280805809636809373431313489009833348925222608245841421974308886801113229677045894256137771610710668199402676315460583331599618944017760820539515876620092886883173736596047978662395466027921754919648020268300391886325998372167393429285612660109386274560878742176757816709144483324471528024244509116129212769652993614672336165020194681968408938914652457155917154525514329583067573408154404252595348601842484726867649589008117723636720059848585608392360353458462109538318034427230719803591404810840082551251840619755362151732250540131234170881826170977577647233571225130910380013124835586188468491625758989833134024843333059138185871361661824361534278782852952833892828117878943864277292742564771308620679390562642075624192370372211983546364055423389358263962320316029854979100888688553686322431467630188103109282646356874779783738665766247503183202247627304504359068506114484818128115502937072082076752528847230987913823932918362422844783871429064599016539002513444604032487539858512855537180426698619318322352651693303581843439524736995298290158311789493371807550275654888771723691424612990287920194069210219007946651533286159963439137151690240510353305291428497799351818525081583230141637434558139152194078024688542612613675640348015602568948660663897740620967128470810389861941716708425924762290609901105632270221385019594203748590161292736098792636808183082108208727182771213122011959535749275929936871551909680663989964560855733354402769344806217754657384916466493013991560231602978607830779203526202815885880619735782833915848828762269789032046058280823388149033911225923212923997084802856361980010586308328376082262133638856504494134838108147617803064923394700804053693965679252067209828690165992840089211663380938461044216250145092277567458257776761159963008967418934866936293320491141756078057099185653470597328047781549291185264068037108158137476688644994266202546691960811194621162415543631871521901532894535497033710672159549975546622541635053528821721170605580736218537276310811769567418768762132806312470086003902959665819537586883171214482971561733408352193993269162626210073475128138026244928946304129571993236195847879914991877807586681648165101922514551180493814033333323437512050099826041878802987617959178410420105565197061673835333081498399817360469380910055241411627430115152552799153984881846114318292795630414943205287240909334844117414021857877410682043070247641176066790927907176410049809949650718625610343616759307850898344611233337467422962128952315284462676343999218604488417389525414515909618321073776963428167526955783137906665566080663602122357755403405841214735983634505263961704751525471659092595417115971744822401984505397273573611594724058668495083210264219215338565063061046323869911595052270173881940737907964266187807631908035212975581175343861685707898209164350075417328342679546847416134363995346295591764299168368865233997470069404162262362319023220003145868181095568073648395305188276237826849925445700748916784566008156867446979643087762135179001195149178260244751782267494129634781154207737505970334059462329320874603385035300982500514053196983040862702096902811115883690392587645451685629697129255227234671769281564229241321140210013380132375183637532408326823530970062323910520855783393627605802733568458189816212269927017915988897837149308308642101117234833433341918010315217700984802965879225981678270851551470073209370116715652252930922915118727205756553533799235265229720013148402427825457898092052425036242265214724417286974732032573405761365279700916936844312528417700818091293641791437378306108268654997531452518372361741979482554520619656892383217242423737657850233417531124333968470337362097705378493864703519211157063181675212472615113865706961689653618879885780407295226370229006753804428122876323490658464993134465156746824205051610425126271115098703579037217147480772428247795781826311107217062105241727340148620899611012047347002413787565642991417113985313779709041811592013760533694537245245560830209656880702699571485943021181056949240810136537777806595007539113477728740781907228019788508626892301592933683257429419217307979366043422791428058035830003231565671822171610050127543595492685993549625426353710273009348495439393332410311300827938586644414794776659314052825659503287278007838165319783324918415345196555254572568693794094854873512509680457410964104087451576443808198013985243555305088199086917485310523028487828136222099125855682698824236906935131385014677280484090949610634875310841610408047381762713560099756095083067485963446022410863693954086471516748687769768931865767461027123821866314425299414957507073765962043190060859571366909470454185820874133471526173880470554938055390308358746673863155463727136568609389666470880512579021015492553601337702629637497951084750885562655258941170414955374735477740274635663137752437544469803369749260435663124104252391724759112327765599832493567740941718397125924540086834242153169159932424538972751422171114352059723961738783513808218381698010212804498181852983271122657541353883318917141312262683052996691910010175019244527558861086326305592532591792903344019422208765164102975822435602569054522379774788901075912264774234755416558910569027160985326567270809370491379122483406365673279605951567835649706794030512355022087292021177618101509667109428774286317654234470997123260298277719771127447615854059461429833800265914478785984555367916543660157268541686733252415460772310238796058914835797881737958357641741230159120405367490347420307388975224882775775624207018033520279188548438616694994706907423773196138169616584386627804202339818023020254030661365809115838197920397492416355394674232644889521954737602917629237078191871441839501979030639219117660409601951686007199517747840789055101663542352010099080580636957906451399693490699520729067646592264571477659812716854330197703330429945072299863386982281321532718248951662293773134945408536740945027605369776521503289337928604314398610012785861253071706518401990352894683803139133767777585116182654839145590303200232533209799760193674041080608467125864953599113879354731210922465555605541277967584718418515804802435100191687252088162059363105607904281325227023151819599598072316207251096747208203915541411032243774257357430385372620505252020780133892043767590695273884453492992666989425822710466839745713266650259317434977431359550121463597764659925972030728934817505563565040493191913049654373858380101924202594427253407902501814564602682809828778112863373976981028949511893482345151268095945319468719377273826791190530005438158237420980900642845895956542060518918884303173374598668506879927198971644753486353684900533422836579616242717246662969753009052327774553174818731214786303658073173461804398335999649726106297023763322093733744269570155717288803168073229216658130393010583297189563615959884801212473114791047050041291011703325720782767920447150696281799512089574425691222994253458917743619186992708735567897189286138058500986471910676213672153197503587876688500796017106159118655498047280569624333822986862119315083252383891199652311278292490897239798771903277297953780032238989620151594574894889042779229473485874063657551901105867719466913138307821395154999038399370527843507231836090671320853748213643419679014531974449982470865734893261568766416898957507276150571526496448613859911839638755164454138988226081185664355592000752645884826883946142906320005016525611978149725198316009383336463555300892342143735287290832717599585711898060664478676215554757772994847373652846924318452522044919893251409855495014226478923296345476398988467158101940563653319207961994839689223870971541251494656417583683624053015637209514496280806990153235325764161694391391396000907465839842902145856958374651816197469282292939211630521372080191352243112006253472787557870653145606765398422105910133489753953280676410097070991203231208496367751225887966281632482413202617678575509672298066049118712474368287331066205955080973847788077804769689053421224732318381472064103618647427876255345054059839599746118307574909056430416063879366497110942411494988951367203417953084514757512681260659482581528644904056381262070529252374468524142545879355251831852044255287846587160791580138955849930144635760074905756748541861510053420783080427110687346888574683611284401316670530440527152101227304005718592932720281480780980281048626876892952898750386886443873507004094063933764264318713058173344985277255101338431292930331327627118261842571127292821689689857041308386381874777408440169153335325298596093691654090142414636384763166510872868774802931538105382948319695347568542565105224777985185763327230821060265118662743664586227888520059708839618280116046975727710667313224316298215325886656930329634074005147111436519022846079029891811254396747255785715557996834000864262162391031149628094569570856899858259705207093960503553064607502551921492565191371243682651165101389622846027317064614253148202369819120040539395559721309835978473481102727023535411706000351805818550246380272918227985006288026311292038821444111729092196145333444664926009131014671130950009016379386090717061690303096243194861520604884125677538497286777147291572581039436610145624036087030909216425457774748760988421974382857229725840335865299938724444098538348395211042333146511609807569390595471106802985253434224737100401584395743674347341521030573330243710098761616546204954392414809277877501680859504167488722567487908767525322343747049678941980559289901658765265060828742664763771322319792783260766364838143269562926306960125067221474728844775007989024684686413421079565280238784888255068178328647951699996453627456994363510028049591330839250176259044420572916418517149006513967591535133316144686964692855915027975733280210386070134879599712146481780280746865877476464840230049458146308609384845836061968266036788664892590968085208610384791373654485297497943091586030335682367829158250471183815076342205033371513153831564393017992072355280636716917993361422211547284879171476303547063281381140855667505680483620526957147118938232632563166845320039078659834205033332841827135978848495003630829231633147640180737379071656140539205603664122347397399053784249815831721693926085635424734152207734613052116921605145330663288796172925372026139800238114559713197347331338693014085738469188460315819096823472388468683011608514086178354274922542422033250643136614250667535173068604526754622750420499684745471322976949299566633480223332745183080227642121174093878111782637507990510212086294667521171429194524980831005181725318961754177109449252086815141630025146794141121968832135070703879661997711613016626711446735769530249768312018001840583654916976888386300276084903628681659120740844631336866232518783031731263401436413067074647825761734664899421377457887814319102918176799285883878911568376666555815280260129723080547102593203238819027945177352764566120568136971201358479613627188542225570841747771646377087095701333792138196154431400214446450151516224505440865733852084595512257065122489164759116068702110945375847051318675584888471136314874106174697880011320115694883763266316089383790499218149821466283199871018899503234368708848563587624748937233317140011414176138063605860468848204667774183552168316305297679255211040265862335318192721890522450185647447550578962073519083476263851469797859296512967777572538626378313019583909115626549286101272377550860187035661139652612460856020305385029162770303089830521659446150064104662942299854142921155896266296063767774891859521272252832421124510919416171221326252961439786759796583196330134600295461176960100009324698037581112961282669255873056449357185445519123551295149139600691290296828673096123928402019234696129348650909494001645515061340269629256540963844932986400707564063421672351096913702864432131041659097043526467281432924622199960147649451423534983259105178864896117884381139195547215636357875720373472710130795033226214742504718866966947531587048733138364398406797371791999028387389604439556442803899603701690134233053375025655589676604158076781548005310480830430502373491984568529390602622011345866320894071996136863190417739096098915070091234967250427593023334159926701225581796316773986615389361767465897382211118010240392364556381911324294493139215050789106779792058228309842552131257490214860333656406965546129491432104544360195632030348782816538887855298515306442065051394576240019008012097148123214119685525936442029411729461435679966846204166915292891432729697398931682058364197488606469598017911121988961562505065263088953821631576821025132658552953156521883731494283498010376734938263655893300063944825882472221807098992166282450662517471016607834100295704107908159767381106668341718358465856964039449939915235048756358415867512556516943228141509884148104220286715474965129545844016438577051509042775966258251113677910521278223453744203765101607805606510950633318057398207128677784688560435397986777280177878384578994119218367014673345107992925626539692540669623237998266052190001807200475436685916984670496445769851192131268116546795118607528769018239525359618861529167715649685620726513907481278840225047487900318114900903839515619073490686168214174340267058238385423140719340852227601711013357901669042686359650227451034208096129924885968899245171326627742281790258614272531870771240495768836758137069391283860161077356402464163869732685937727806773348930123756488323589724606656349291296120584406388016905150575067385958651909707850843330838083838340673661094879397789644231888863673910737841622365530755884106635918589708116522134191168477382494400261636567860868374891536938315063473162608273938448444260619794744957642301678526634626180440766435216417678858953278637106747653188397391741664845467601867017316916495545437266705968117498184027746193522705989280789933305475318986569134214562765682842652440222628537417119938045204112904663849163007515236769976302824266331455196947841857554626124072225204080070708691271179620539066552722214045358887769565598884369368274255673719133224080494072920010620547983029448036731985718853646353134311680187317501412767811191929992536640396754051818943422546814385554006312604067722750474792083026815041809855495063290652406596908431477328077940924333065138729768159043144399335627322526656973112642208401453578018541707896463916589129313921690159460574210419175690175664706616438040880264040104309261067168601124305270803608866872612954043865418184047881940685402814618663129390242155145558371030522505299618922479667943264883038691173784968422746968898160812805468309436243601168280533922426489142473528315793791128805176031340441226392750256428313175855443269704187166197364966293200512459888633629346899303529481244922160280883000377462924866904148357695435593304700239583927441778830958468857094197801611715350189830870168240675977527344225464737191567401347906285841173221867709268933667188239048131767060220716620036994853758210254425134399290182105075381569146955717201192365589509346609016608194715841662650958659071381760295185441504740427970378665214351336779886111901395031684345910985265180175938575474509896095589458636779551372663746304390277554687372617922249643614643633882935526732027113912927531742188177118183003780036861566706446489463495624470998822202555992433617887518241950728432548652828823653989820550288879668023395482870287945322186171486397605671006406790649123620289743028767141413905959784520731398238427290336007959525733241904656029870919331631013197490691893893844698867317179951345290079923676106883945121782489070436615562304487132084047549801400807921450954239216164537513777257855881936156314622018034309595415701613675444930027931679856079528816557702071979040941680319364046274977103099084364876337229693017143795495143040179951679352834590332772754690973085095838023753870420600955161154573679272046586877024396319867453584915968373091220553679402992885010356718514598461923095929024817939930573481757724208152108942345774906346012732715204944460379930462262179484809765919213327882675274366045132689801570944868161486911224269186103800600284198504357516447481244685708047071159434827143844028728326836224322313004813927658310455261494036407668666499364248855893231676575008093807582463772018803422868533016620133638695037711487753682878896420513980222031719764063822169543279733063560625432048295813950622424564717770052092376006654862442898629353680863181628126878792956849478941364664785790496292835783840731318089938828228961513456507765700872999248605572949386013315380727677840361811435189199450154212504763330719341986655329728110441383004426419856669270181705853901701785688907588324294785774980006604347202420529907568452207534761642248984269645060684489985032565611778307945561333316923494636619894535241407843362449292255726627204924590217935804546295872011708287426498101368341993859297454375291804129242824564222518457115289682604686421321961636075398517597094867566489147033301212481940828937477107758669080697633251546176394531920100758164275152163972729105823514113983376227525619628656262379037192942545836215215965841449619950059474229718379045116444809960394639296680056825995578739913060668721276433397939617709087671131272640066984180540160488044016593061816501398540522838371142873442217810817888416329925458757266345080490963954565884424134167808175240186163740130288304794906936945445415159916833812528440491488501152935457867098628341689880222057403898055615913329837491689927205445631382129752127481112597793057882543545146255762560371411942243594693113902603637747612413119820839890466536857343833478239409349729095801827494189491553059444580142826705087046096061149117285316773752746693614934356315105047697803386891109954841889547216807291204200019718193596659129692301499084453582274864685533019740084025018836137792643207143824595119172915824076278930684017453616768338878938942950149942538743116184772291393329972882904184942326858111074657856011577273940623510768805809454195900714875027388102700050940422147440544655539897762674121230894872742026234679277876047462533515598967018081016146430614477804436908943200434077104440372815229795699592820786010750617906972806789021901701844792494129856568648270121275572963745246668192495933381776961358353937254058937499230670218254336933026895639820637825763016275657174720372853864770140188149785986993545534895638290006953859401591622826521774413682237707915198801524355658708643291120859875931800936322396973211169724057369568705322645661310106282178532663292445115717052110804878903556685175502485734668995320569398089381053491232190458710560229623278126784584186955855933174940810023006052182401615911194144031633074610590006875466114954426684185207498772945550257518860277761337977576882699699612547466700548015813075816788256356651017035743407275996658970573725414494115379385277306036486213953782710648458369556889572842052795057822310955532825146594148226844139666431812526679684746033879210835563278470695748853283055977654026224572024594290281976815131318647752861073522944040433931210767389985679153719430472617811860577714140277120048838305306646497856615784952361998611048120912633863916350186094552522510448204981451423235295812415922606593613100117610294114037973891539027340337131634983005767471757373800562267485265735635128383542884532158918881130575259972567634999720040846286411890969647903542593802494029989490625242115342595687302585909938738886030879516693133340775274571891741642049621491634217259471893960728920057495077379656938153943096912953811216624256808066573786946966397246498128518008426369179452282030407845693317644116198965860945298558452922490156503107590313628173737248590454385819663998385026424194016885173746327304411622917391955450240368284931205489336558820264371655131380716104697396408176120393344660973062543449631916862513403312435055530654191767803612703359198942927600472555214547856834942236092244759495068715261145479529255008254119973269278507063660478898753646753074472128997117517569163437552023032869166337184241295055165278920092292931651297882922238950488073920860196207334518793999587786705169148946955010365387358522315532142228187238649562900573300775358879842766719334779092385143871303907542503608980270866594949476915466180844211633101086374996765590540982865507077002962038323746261925107052439259679924075574755584628879114697478281416008009604915372075016648856269866314681914478425161005056428574449185816361068442870170362489867739871845958389129177344386825755621207479093693152326150493812165778803768127085363033199771337582757439617293126228876376051917393687409488878255142552449165295798978884696754962791375280464950310894830251994243507193640385754076034268245798711601604585265969365876895289210246949245341380666092442526523021895438248043888952225957114941924626858772303467586464175978545214153116334792578966257853633351877580781343191522854809873813104500670968793177621688278940306156411830423683202182260365834335614338291001226099434231003045096762666208462275886049902556689806443835231240509548160220544384918724095967261563346013932964331343509988724417614182265400036280320230134659249860028280174734189377747014786765116061483138185566451909269290394806990544773881773300828069702366803845911499049493023608022261780511440741948230399237038932548522534066516038271940136771885916026830465645938578121186725320590098081966923915013366744482887387228434660937132807610510490978342487098599862211190592607699304474888903070332576891279283402499161000350805395822664615565809339273192045977873390137140483843529442880040640704788956061364189891148813593898559783206184695304752637573340019927741924877290402631494458228621965252489665439315052610639801397607741725719462586351428904885331322580444653245053069935744068182912295315983148182831654452179482155675068138153112996242125614871627198938249340733558356902612636643494459942747692045681704288502470875255600769027544431831844331502275280972433708930166002991056056283075391755774576922738075252798484014670859885158908221216512554987762916913810463908972349458683377305002388721227927045916979393396238525769735450464776921598930535845316857277222825107670881166718907694585265649666424984795910750585647854102898328852256196753644433406876073685671509835446462921668068011373872896051765468452576010526929711787962324328298311368959430189268657320256560920556754659516952944948357892672232733648745950892188532989787453276499708383680167134393292960011667454253878289314902392819887989592219030443454760595073326813485260788545542148057885920943393584751887937254915186975596423201700021160992251043336720234657324854763959171323637832818193043428583860498774117239700600096944380893766405707555654246881458762064888843476457950937577801967495201692743002018514265108347260062092929755854482592857883064063583275720183110067754012470027861810701654501616475425260645904880355558818516150292610593008883036700005554136471979067032314829467310025686616501395500966813768043990880008967642750817188899568711263582256837503475236774297253309513871548451651328112381717333005669211865255012246559834817963207757522913080978044142762196594814086646439889891397835219345553955308203410431931141743936982910467851808191869776200847484657623992431927047709825244980498484967809630048242919438553257515170955446109052146608272150821679404633937320765993823585115150739123841335112125220649377198365174657375580150058470043540228610192915697520944883531050089132532752441567782485379927148999850314923190864477758337480412990540988602492022779350658742123779532863045087661790116469207413122987485248655413199616068301574790105411187689478114238590940884004832392102435413633991380768596958933083232995444930628015977614119021499489382356268424006447392865124943575790943168877833319091135475941568428560039661165605855174252421487452464041901480785366109968065814941258482402478034973054330788892114419917712495095440352241523210356842728078123653597294200555243666569396067974869997071321558880211925669989034881425676026596160807263958081769325206747782129175207412957148932312700369859663272938708204511724767088059134425980925874533980175286106083929040249221598010702469237999174512132693235355423489123406841322452834868684142577299026058112492727746501236174836546567035717420660567405793640464511462389080552906467358084381281294302433704880728449959064545175627141414959011086611889752365258524043164931179319468578149761480585005152597252977783242816139844757069941798464270102177972449587958284154567476611556137976229455122946634458562334326509650016871904426590015847902753290302935895090712496822292745177141898499970955006140632506443381155496521206466323447474691532889120343850690881338346261866382722721449067443271543792758853262787590525910586190914842644670611964736231783459724107412540993136368853867280576342162761936753562620226139594543594059640708985942041800234976504881191285098941915437826520951424389903559936030590859834509390132226250248467978609951673612942514532402627808660721299133007088575258513497072624455059978788859715788319811156650203420447001872811453707511234699628743175832305351322892087557612370568622375169679925617310690465703575494100635782843252472875834184951255790260256062099287553012059173828150292024955549829006278030251864193766691694808493972234872451703988012885407468810391534413484556108685743862878875446421742854986927493586451748406558706344397625802296141911972375039378512381881931011185617083563660987475631981609728566444528953445960205270783214247244742703163325539641300472943214094641052761370582862939988055296512579480608431693407159351257878102003618143385853835098405927246452288760994497677948874725074411788459538849226789169548057332904668226920693183438572997638628013681903774222823607336570181861952103577098418178753367044619626835576531157750420628685330293426870636861677285407074108991545296542747381452530728469844834418729775501963701124203217141138756617909639606452049088739796605926422328574575540303124538379817921937236856573735035364538081673964663695492137978543892894648738043691751191724509950537742345560063025519106581410483040063165448612151529188012563113467717052608980466692389518933940079562916919275727092121482323257703216872931201238164465649944718076142343216402006050869455703416681587081845557184137337786768940732267165563494477832862552549472584418795109897162949697675491364100296758703935749344253945777846158098034583533522260023760178221213797644329612002215936560797401225687596317910625386301196358415837720911471583623624210117382492831737199133615466598354685717073398827430329616452949068682232578458412789246176286068484916523170687860331619133852497662319499255073822696188501671321909309825708648655016992065170398985244548149125629631870247843356127273112488498563631567210962205738097930969119528381708932654168571753371895059803471305527230970202392126719010454238662119101449807902755148756889474717081362950960553517059121191748923863145481731044979256055889195094820447191954978626936962159041864647235576371083173084726913183976356218104835857074819184861022684999590509374106777628138571719500427410811467526387007105246075204372529659634656697437335943317556068581406328196353542102199333996188067224926987371387443450628682628660290677229479636779464880400678052541564647082895736494189615802864791963917424901230147684878548581771466842757740098528820004547357646954486129681006571589566805394309902655195540207359192810469515662766868843298099960649659904531371595717165592324722196574033337992725218173434134437119421879728957158995803803715572139405199301792953496591834312594795680594056724550077509925465049344608915591318084700934343713740002265636609180621808768186036350333589563009079494192787913888341558208507399871030541459349279164402654840845592330649775466256506767317175616123415686251918745349349091044067173889883330826509955886365910837084181918704526569177225062816314768040872280956918588053679986921586813275717799725610676597417511832295201381446834987490562326207273365827159944307312069477200192381479498621945866428616695778509017032796984314998398188735391159936994274535410046446502836374254860591718382679714773722441721215942791071881245719939396454288875597670388585592917733079084476053500260833783859654996105266926295487415980164115674554937506467762490606589017258715449740228840723315965565504867248913551599493106922042463518751997856067923509359371360863932001631680532951053979362489407290576697671056704050305109095113077277528237603934945994864433750711199808927488601594696364554432225425438913226867274989421616296981905387148721513455578325576110895418722842396915905145234281931954677699902704372173777563426751719164411455955404852957333623522740215511992509921622117743373477092436546199876757494793352476241040004859206292116759332052264366453680710616591955885953108174771222782591148042064681388764217551392957543590274560112463597848807931418864243413465802023051992858213802809947018060994855357676103850016256507229171530929797606438050410656473599781595812419582694044825102359022150904909461123838021469989506818549020707812096462806472321978553897494309684066043748594950944379079598348561301902732848264139204236980309762328697416150638661906018441353405241093699284654793474778413790615886861335780140065911724687941129267623219690463889159048930334771216641470259104714254920406883773278826234247831215716559938287561755481597833971225729292285282912072904942368370135411185168712609379257413484506596741650327080679688166458230456508790302416693036249277757434111849411179207301982571695492344083374504505043702374250216225168279048744543819175243313296861061051450919467086076907888985970771553835472652981276841153454943153947375179824117560571747870076608819109608987111381024523211282473565647412714994684684409040571802731034985488901076456339755635556328116894158096030720011165732107756943122250476053948712705823904174662391554431532134143584565648873964599189693952057825440620461880757951021413038619523301374472469902237245491658626813337467622009779394748035132933168071062355467802637769729383798767216682877165710334816574389609505833109474090707018328040053785667506701887617813748635489250091857904502959171863787836272507894959207828654432315846126424698149792522403720248025633324096398063132896148561473827560147749284502620317018735049369185325320413054921579349133846307918935256307959923146846147064561776020800339393541330556163581061766789332648883831328578697919681833563403704628782194050427250365046560817142758222961006648910204035192787965777738638137557637127239799592180099599146549895140369623482385775309843420927543943557845949317262193498872480312761223735220255573983089607561933557580856795414159972842075958025618664567304306980199926899749537248525418872379807493775494293146772785569643883975665704962463127676439429705256760030528110651247429258846040372867467717731854501776266845156835113545987861320208952502862523680291082299500287233306932809066094560812018966712072186228449218965788791872170028162793758632710854127800843435788173794981282411559076436490750742659245002665213511748644611205536139315157069184381708534711801623061806715413302585475298368161880627478591142524834440857680794531529071070831617160407888447746711774234373831252057486263471998611172551946576355053172376550718219665673386687390929069499030519385971898469524874467066260979345528398864102925177438699440041001065091469241173360391445565856814987995560422385907994101097757933959726252656172738530985891604541495048310646711553755367943290102710605089397721461710525719287274298305418920533555356693968797661788135028645848813960887288255039457488715250501897092335478391815034668991154668978013516726648521752858052340032242103737258947141071964359625873726521108257373697605904108205859386427002973459203090941613868359745408851076196213993659540763713415546586959069493474421481236730757804277574512512872001726396457755780645259016337354240606236928868635778567987989311395603838240189309089965055741996421936486626760266607070799284001352659789420174344086730779572605649762917110276925380662267267113332000542804182391369860213001312535020370674158711695660366469468557617349225652010569005268028328561273443027830413776033534075276086378559556717571449662339535138878731669491685330705928625769699954801622474982310078660465658088661366314646225615332875350301798020550468451056827269128757480059550284717649255402777479444297373228208460177674877759308028740555104360955109421988216757442470515498039737447363722083030481737716684640886567781048121131607582630266318541592305352089667017429573076448952457440185374419099991775673116162148588032224185577886213000344546109813084064429409742697981016738707636256233004790933126847855536344791704649122221393608774826605201563356215143389347102806153570041539129871402299049864431860015997825229069477574603961661397735488855672813057717711665238437483029098009220408074854528183251736328955504467448692610609042438641813592037266488177309625495774350128226562324398356102122483119057210412569901321526954334704617411484186277236299753208472894898956201450318935897557689721334825101584465368265333421060987931146239578870232934549965880845076162475239087508024891140106726987049817700531514301990868030127291070250669603707575661441883095501375868822781205993551463967057491818546425046112827327205344350455084001230442411677845281646564164121960921496550068559597378301221234213500730541453066992272764258066514334991101810420795969156876130073294177869006747192601043098674470310899184466580348153244665121859336730642344164959892147121939071516562820671867634342142148124043788890281956902643148555629690507449231360498087364515019214569672142583826891433938141414487601444458665803424466638878836423695892558807158750398626597832489481541505245308509490905618980763218933415621986350765550745892729136137055304698638636985428884134907594178948924931743818180464477207795639865849459280293230026475688667431244862134849252043083227518530550724074031416050630492645079236125749413936621354205991260606898509360461016384123361185403615444094212185927786621495354459583670812174831018121541361483805496910829471795082645121599253870531204178170658623375649985562196394689922963271854844317816074108481314624385384521852466121531725206328419282042220098506056464845048659032526479565209466760622721535180712528198874739197974031928955710348524689954711905823182044205668002965972571331310448408461608613586917638678320682202960391495421579642933547640695393752853154486311490479336147755499961485625056478157671055841033847509874630727597874267912361943705188931842871310718781473750659858731868016905284847126486748048146090265332493680652985682282688473366291494722720261587300140693844120423288550412412299512651770370103016818874762846258935221493585831142530934635451367643282321280979793876505268363937652411776563533598848397254763919823322914985375960726314965482721484214502048390542027309981017531386594434503553454892556451226311876552761882913944254964090369239117091377567732681190542980399088979478236038869308117820214986238141892496004888686764672943599704313989823153846988886998588887000883921734607164571857024426829081736174287153964050315080561316652487502498703357859848188228775578662924454995870761218197571864634577500464433309065507114089883159924655791082792321457874103631166925594734914009432553541213296798754013304560418560965003399512632274873900978186213999429656977929418616777774695195628708817557534024325813668366920123423363735285957476871599606750395575885213735532108459040887891447061480732017987510613211531546456384417474470698775160290187553731429820335458504648963287358254526414047922255545031919759532654646404693713641027917629216236795170314730785058262482926994708197489458812792979941624036687695063316678707830263680641431106030258090173713182545416777922245540427895266245639167954130657742794945338187157604421419682260121269358949490846190385713295436010286021571326265143141791305338193977437292272023737189988564201202309350119869715686475637144920372151584552374332324238573886686081616730970915270954796466506576300209169550751559886423506655926759925196329729900044208548193018029023237965217542886800146189996362034866165547975768159143854111284403365463533628353403892856144366217244168287451512715876588879863697759944876924675474782323975898763831746654392232880547180822515286103952353007300554118256202607608388290551527482933851504644488552140595734876214639162709748927543894354183599291564748604019444842419670591785183043240975482023583621206203404791246339024067665485270753057312202482123992005514663245333293250926194419181803736233696265609073441569302914496353728451988504818497477266637219180190760331324024035437263609774636545058378598314686391755522902612223022210899421051248098297959002407061216555577716355483421105555353013916751414245218713931190614168525532460140861414727509035930463254529361353383923094461544243476830636920993503103826899961273178005573972834248251487358662553106488287614279991388783298438876936047412543975358282357425859026106333783302135651388701575736838512946425473738733905220702544555721860450193486168037060297217883006675733912827151666891326843602794934764285281158339392578308399772995830066113155101581428528536247964498695829656224276241624957915690828047654782332201289933541195082155678364537210155573630679353734957429440273665054456107656352996097058794241800273852849335253941798802454564922139449084809741745477908763998295984049032056164020850976444941464786508219381006184902734240801781123581026721045581777985422061315791914999191724436997903970253886479844399825155698895756312255456971003486199566886290706250131153329087816468954600373127468172638536672612797340443217476557159986161091358624042097302816827256958248279528050200879797950451613548065824572050479317707886360412403566169486432287258580316352959696849212332586691572423937192017052770201536466852239064058920664469484587516038418202388483091553997955006832764909385098631398181908840219835679188797599460742102496104844409004645739056329836247148928159036351557154972242639037149979760125839267612452223283243973900544531897121539858050770611245911651766538084151032036714533813437749323832929005979373880410806644175167083985174135012915499647924126108190910901365001426663288919262993586236729926066747092717116683240669401063735926982475233224647360280594543977781053816377308750576121860691534263826211937585843170702631418354292055077731038132693109691565778430985971376055050616332547011439977225242415776665390233808541447979514342643401121095257305604841136250744263956425779389056510201301503368288203883824034178657342101808227501710281018052305867343600935989713039899329816621420496996586896976027104167494811088686341970159290947770542023693577568965886341908614769256671307518047772481011717652931279498557862694234018418549230853461734901998432937151957646060835705788967761141320089766721924613291941959071066115026729902442455393063144053050086193129144618236177784204768599749304168955320671016464850198454670631593531844396904373831274693611821258650319909624957581858105038444987206647999597601915061138776651408270983852420618987494494335733210878896578459449868460909095809098530645135258656697990762179215870461880763526207875824687609640758946795912308403197236282491062193274386218236402270938376208291695966771557255697062094014424634898496078403920827774848444446550204337276198822231340581399995784394541923081834050750141177498797797844639243862999888938820677519669123000272255256366127736094690396135259038402466972720546622524023739547030434926469402416438350357806726558445644537625897537853760494493715006023458515509751534484222867366624855553280627360122227259685396952821058559594963016389811848302019053546136247369459278251622649354461662518834219469752060223023206350309334276471140396343500050577211731339087725306429357864981918551321606390235918899750792972371703969376332395700792304114082494897621148791823982442064779666814959408243470544971788952688952391588310333131032630453462268374819213813245652487381568401458449776336759297911817168489029169993229011953202641751352114316354872360040655800065095107931631881820914510684051262168252019653186128509655988775408526526643368761736911499516825947922578842883728546215389688344168177232077791791843405656776660004788046663301162641171473857905085822219915587579764435184692601889576085828998613531699238078307835420572414748090184823356991020447062013671336602469548453818920028744824669666384984806383858697560795083995050755617389708330351213227347534602869166839419923732786668100271318051149669754953872173469869086267552316268450526166109832004419580197810988364753827161730224883946384804474744419371216258415575735473320094374049175938146563417900596317081408272122529124783144959605254450929993866996801827571010879499297178129630498565736883445304484259082036083066356451730838561995035389738558495323067821951446802576819038096367632820686625075011276183023046620997618914283304906483925669634460468047234822001472490163243364515872233125110515816315064786271491731314364182935850240873975647090326854882627094956447259571270719432437806762220306643677667564964331829208958133439977361245975909439567906025439616941412862231896568016667000055976783988544304983875125823962062288281344547632329801413082493579723920139143946537920340345195481974070724529436849873893318587091572565371115374388481922714214001204335103365175916185726436903331833837347462160135231527244955614459180614236807652538884920861466297431887777789289067226515963842624824436952663114793200101073803635342382526811687324244936087081095398435942466619522989127782876303052429948570751588593877821823846519218571250141700210502066042899312877816338732774978748084841963000574917879179568747020794226449183297652397605144686337188219492554972924557034513754894583840141304987170238218174471341598475093330793573695417423971991098479149658897481130877809427113476977899777528890482329015914671413747675138406640266732764635284644759305285487993018347995415336560579640830281987453877904314734397727181600304597500543472197444888366381147828138130140083341020436618551899731222598670775634267244986375451707218689861335207379443214705902847416318539037076205212590422151846951704046630729697718151901184053173705931476165739255819550119494871403905284377512617798256278292580849358805842122742582537217549289531668702927248123968871716889061768139681799818486297675129181450581224184169165397183223844498345008609549428505063386214101411522770212752628355149334323961029940648418267999387684272507367031643194009250358550118542401768225349817153022823085319169757779574962828149422885927292877117039914366190061973701571471785406186265114416360245355617888295313706608668533180594799966030310474204161407353429682268483530341267538599969674007277373757838566675746205083422288322600116967431610814415787646052927379071576918673166150640827959701681587394709987920647374364837794778695784029154795262885935542373326421484988073590507944829693937524588471715414753748100112634875587191085709382274041436543425710825237489244673597393924146264687379401660310194767835014753806528771640522657537967657654836830990349460346135458063995926046475406297022725111174410059126436423923399726146185422452396799944071672483984802126584629795949989704343305131872222127626245277931408045253341316674622467179334754921302767532644564166640542391887255310569385807410386612546748619390610018688336046415363460918121895868973656327513754963850944904107911474100198772400283266629612680276609593694863336688392805235420401461271280976721794425152800901749948985241677452357640735434586910361278167267513381151711899912801628039393589575995065618983149751094142706338349824681486500033056422244735176545668840744474194015604886208111494694813624588264651636015075446803731008324213707327321187857837314202728128701220222664269212374194895701830001189358618185695677266413703606973923966933081988922251329972519012625927956631047961612383930036300934554510765664677854379068122764481454744194510995447766745614114778532633741914040821045111917433717030788231303319324471759808559348478297285534409406675433647167970314962337463066921706755951258393226569738003383176561374464708564141645282052760809372518929838597089628832580748085126120321343050050621821318800070376039909398949250662295503072650633112544890054803962288349886775469672036784850144184849131694521462178678855112994850859630666612591413098736651734258220631740227695814261894167392180401305809533749583497108678131192779221562685299491783184681932778739043930438600134983752205966738427382821699163884972997410619217230957636400945650073847937762361774245195938375271717893986769103360787907710160127342064564576586137049999750517767662307925586653962088811917320885662338309815295191938668346517381373902222069013253922539933805526761515589345514704354188260008230898876337083772227064961103455643074885208520455335957805763723896669212779228745077635288213103068251838156445868103816606581719558066315989711024403333097326376048278444252462466683300920877608132934370329221085792604365807649983220493730028921698508267629892353116268551979361809618481850823344567258673713237664833942372822755727067905825267420470437629233061596468014130479795985263054900014116178046137485673739192890275657151161496947122496985713728072412376216204700385644255222130210379605682389100993615916870766199686154570913783040333057274007325079990469672379017220471348707845765125591997557331132421616234394710855212681651137153946533294342777007096735224460456546484612163928358931297823557186792179400516014588373673755966329658866237417677890355163109777490001187944346371117339308298651076024352836168490373689451439091984382130730711979593976725428384074621687590116446167903830500482020381270404280177400851443855218030206805572465296101851624595896854595992384888812926303871224620439474783384718906223649720351244171346675725814702481623548914614391213895928703813766152009465299511411904243042772380592362779871576445569274856240221357975680843317395356613225066279629619523159491884121405855665151186713763822455093534503416806526381641706485950407711340403862535686128747233514048091603042906197737502596085449234981550574343735159350735318205889445467328026286636551336617141405348891779749610322364617517041931518434239926023846770449968614299237084292460700594849766361824716502376293483102134848404163804968650266055227236620459395808962363928126282414785363249633945389080050386073682580457942315593801760391446041776088645404356198613183320067889318309506379492064248122756945798064183949953309406387078401691780207372364630676249837809439830859110558788411499904194362727858344503953841460717134713906652106819315694916191507603852245235088629867649495593741668407687401034754705333044324216346860898124233744900995446174930881558724633168142902523310612677615512657958810780403468096488154585062951602569724151484349539412534004375071797946077635971225067197849576658344485582107733278515309681300692015283513962359245328456964170908012567454410644897905230939955621019658870492540799397393160151444464354462384800062221636907983176348565024623574452075775853881911964895875144220343842377172015618363262004415000094017506145338176698524687374372666366253925470027489925303258009813265804763836810621764109119228584569690343569394802666489278158374557338545549618676030030398363946642993913669821036821407918215740273923792620569408507941705844337234105542975966195120564722527303611195257999842094597300199618680831272865947067631654464079393862987883260209809337159857750590855125344313775890027104724396985448112129249891738857048963952699820179751431093212918081508665455147504350375436892958416180072008190203794098251085528415496473956195077500604860133846421559618399120918091471357686336790483130375951051278971639264139223042489410440408721935283357753029553585825057088501557223200383362566813574422930786994456434778581597097829855993984011623155176895320084238896726888665538925991233217342955698702656615485025968572567216915553230326478663103121431108700155511910513282766499433518192154483955990803088834587022508787310944356602158274556643888147257810243639585414136507919220859041743993433190006369375819315624305962528162643362058359547479678737840157373168207031185518360333442165949100213858070459773390041644970610464359887215606381467907203820969018916515349052557952670659364865976383253256042450478454908411676193575746856108964825850621502355606363934453362761249845074146322087200612851594662847661814236459414241249263224639296059071665796305041592209028830949596615877562134266744345600227465087031960969333584046855419150282292984846396713476931521144390048726611015733133877786346603342099952829811445044862841126520136468496404307597195695969964074286335296871835740712066435042839866719743141520645820367314686301684588370228777029108693182786208589706831263378792223655652087776199300972501921539247809875584337559859562724932398465626005456733828877057130787274432409180295709214873538741856278355396645396821166628420793549611912513921419931571826614792624620171095153533210187349459284792435032195544098293551400111503197447839512278913210177028014510586588459750826306039117184117112005989709624239256539503906727812415530233105258775939770968891131792379030247925484317883026604391482268155031252917326148239930176027855683268291921122013790660767988836476797548915681237732699916967187077926177410206058387347205427812876776075181752917594086775066410098768960751154374056994346945514772591038973527859338920794703007961901307894065154844071325969671403946904879297107089537066617366615466969714501054684136281306521125992369887875601551330766009259743781828525825342896031548719114260718145934618036285406458229289254489009826342107219157307511082410908284248135418409763892176909823111420702475057344833400702289932193181133706710507101482611109943202239963833446432038281725797147586346571803021452283609393481506963472590911061951510188914738165107724938284000391004133956110246327595333068389820402403391804348744035085512391606329459099298687311659671856465590791838948838309905740400946407503686272101203873477794397224969939587165956427762645237363591673579514104364417655500768961724714980550998312109960967027573319364806363563847846062299303103191786725308509904385746072529842804924359122774493878503642194578946326848602002586391160524713407224367727366650632849642396762657567241780233062113285613455408015938688492275936688703818764232095872483243396810728488248602393866159737910610179011556175604463402020682996045149360146222773970884885211685398400454121918017238094779485712961524713163024278752626645554782245351526830556533019341091444721003203294272848903811956726632090130684043925472915401042149187115483601213411392880000616889386698168077222388947012407002268954145006680437551707331895866444705438882941078564136899422839266437133143541296662320500044356521397860167936306870468995864717942328319755491349387060651766196945128392515046232692168124235715388376703683658957314637858396886129970443990179969786553628466639586895370351355996320519997470138311145080931876162771788034053234891916289184090143929251999670582527780321729870000079352779125060802018356558500242842071025259623147354722246657256813466200307579224019204825809973495361039403444824979243338469420091165709063495402658748485651394023373015763223275865387067645088583602766436547321298394374759451152587004307984301691502806321641361585471649917932488766120468106861100337070695659922292845856151045584926858539074679661961395849407192882789994364156577743218141159384471816120149098678358535613284322690195291039381594625455705246728202323066470751828118906255220506291226786841001847015770948739283951231206979653142904768968516105028444424584691655406484753410211968243337420562267590838288862490377367385331013808975291978085110659803371458867313608898311515721949203480629383805070250249667587100293992112355374269783413443181649284717178729375282195675959913306173049567811746716644623040747958447486549094552101027825601661464279309470877578358105132688110891465782888294619966657345077654676461988299517928996751541473494412479074112715947122253628217292267420859317332285892101388946196377386789857748562745026256348335807517191105451480054347571218333314370814994180251823237161018971633525623253741363823719783835163335407532019843472054900718084579946594355850621338623986419829885013316475769443744679894781233060851460566031583486664437271325510689219363538041176744582596947809109398243705653228681778009112247572405584102596565703609298615537556547479115681041683817799792351354041189175183537168968516699333793435126147020642563433682138794393173986612591964542637945834874605097291838818868768429895280577487307964066593160351840523756352590908904618596252588710057670610698539638018532323814070697977484905234559224933372781762327499995922060361023657001215994140592340442288833352319246133754766129047219842027722615368999613230486064774294461172389321503800976593371541216593884677923516016956764491688930479229146156133112862270576086113862558512361285828744806299666278836867136766773786256924790453343892969244559487280975184756620328645236355004804884167672284774380911765224432749524108595871155531579657343031211186323394528813157126790518103853268230076736630686240831405544552759661929766825465185422939211054775240106834062816549391143418374408405163743017414403465752127024688040563134775856497804620536006112517146640001328745979756077449826943315926326110782522503870950235518298617816488661557661366309757848427700038461243686674822499101235614401722556818835077930351745248798503035758189418530258877485778273715798956903221203957533646579221318804789608864872350706448543120790850372261306873958667069979183088081939904650877533068194267875278579458313596255655116650260488318941305654619756733936574135505386603496458048636974225535515538554599313230900552559331139747837147885079576982921591800706853831473170543658487524540223970501875392369331628534175141295946212986970460354402700150499165335489091990746083917525712247952145894700478194359205752871930720869271524577992956681795304928430399375434512367710880108644942181355671127130173313157329913709834623575353157039817695749255098437294102477112362078998009859915340904245105195040433411635686443299357976094047688150388748438777102316231273478674065587615854289532338681408832100791314788276940654918197956864153461397276781879411774481972279417883278877865438570878318952791011105696069841979813231176920404721479186667645888915753508498532591812891545333322002690390710055965526219259161793536003431313702666555159915734781026253778969259055679692212878499797988692897112392017473034460362822631145568601883917549863205883506794904508951369951005124179151271393240291525389652676520842065584677586106161755889868493411528442325596103856955671862904664044536121962525194498384643994329605331679138801979589240054323319620301127790014171251450121008805919102203283849554426704612116259319530023831744511443104656916199904932520982147789434851512457708119045956303160376411444947497585025346413414044880903639165217967859400691647866668921147090332149279530362824887719555565894774559626219192723535840064315655045084146495514815101082397160998014631564471242525370471854028100442304766462669305880239150368550697035363090196480546724099974302242609159349075575906949866993598193489167418188821775804026512441257171029652684341792525904848564843731388827428521684115802457053306230872572084947036954234917086589468895655083656658929246500268614085181669572786388092158156416412809957857039151333520208049014411260904937486918971202233422318984870277593875585611487333661945221941575165856859178171017963038446961890859303369172707425447128463117770370433299862777295751062345351942986110809945263858220218290585391448147157734134358587784576123166259926713371433086581976204853124639885717999860574880707712786650103038202977344998489093861053304467515281979314759470923478704823323001530155366800405505504985603264770299603672699157268029579297722738796524370812367745739088207120285876405778333106527825143131819626081404035408435203981909973174140922245562891740268826825630352221799467359698932760530438942971975730523662757599391768286671896358852921119471653410884546185104491468802965798122351613748779105598416977114767918974463502886619217387424623812080808723321170507326115259330830729166836421055364512562955552668290957572780766796625782727046720552895415759397626514814020010986948184119227552235186447465690029452407837706803150012159980224343072642489912838229909846724984724090939577827333703645835386586306667881842817015352840075834834165219392060093330856534550174680505274402742576074172200495558531352211105430979658045841309332009688362073047793157508407658303719334084658146063073601638471672471539803825655439445314159311407103326412224154250833186159049085914745237046521741390745207928849663149391727552733897939323562704138515653188872479460094761275241711981878715879468780705658548634366780259397349056635765306642755362681325598563449095808510554170059816557002928853156577324837813262774460501771006230764940018598288075792942627823021316642222834902267025123559904729802261700732972401570346133991007845842202194505799533480840562322186180158394353256498928687968232098479831376838827017966927704499216580366269998353011121911365601431999083828454892999714753977576766403752768230320044377741522429860433821423929528725873092897949249134046538468955619364561885876194864661726541833765553974158019795696415611478713551984001406260054569152998877436360462252830224108349655964419702342304071120145195994927240686000548173891020761323392046065214553596215369517122413286782316270512792660638844617223398220312254572592956039705768383348159710830176477078429657836888129733446985008571118925034713567489565763700086794641711699342065314067110266106818183818326270004293102806606534601491249336451421264038665406318948779063285824685474646749937426144601282136530943639348910834534488143565289220083574868867962693703473292553323154350993547580741460421486120423383478656814733093517388773114729102043093254384487910073188421656809224496044303449769892739844859464125519958696600392257587496630398108337475576992371412682216614103468216997641198146284625605148041139331774172891673729726387709066134118270607906553486849380297302160247837622330684036100256309283945521532386238550897331829101992298553323231479399797341839991164452554070117442753352380470708132869739301980234970159728394284852925908163663261464759685051971197840713765742810314772385031203119638583786331491184736287349518252085765434426535713272255655295956364082831643133224262806401543442518030571281282084817827121163417831880583365219078719356566961192362838496280678690387773741955229565957358635607259668812039386781521731549825074821206232452814714069297884876734256298184366386892136072641700181382567978747637475888342742229042096584054951100707440435009498737996951165302012679914749807649451758324940078558679304298258886279155086117521177629116230098573510673253114233861727737554415828728117954636990229994387308601619009584430246540605875876785047372138671840939989237668423624202856073772380557413075501663741190127344998974041628885094921723832147171677082679729119240471209063640999524958085858020366918203967749458284312231480865619871636849220557389095878715173839611045929651048550257003497399209861876294160747595701540694619782843455432787976535169585864200771030582540857990181463275267885412861608626004053035651959333768495208058034331816534467098865928944707272270875188895512031295238660191131084543939008888903816454457686580252614205331847743525568729122819661239452450230230634547818271730886692782261367857268900683255455152714911167100085000667314420192030259785751223622624374390800123407224574982188702200127603359222567610652143091694104536705667965537404943900168223956194934463069265309025715635450502196457319720466928426045348255368413618132768173381859429414443415508040736530922321049185428500346369346722345680663951448597413801453452693711879242154952485931271558543709621235387193089833037874381416518320339874817971863029288535558727310020264172525946783984759327560112866105328678942878551083357456706888366358555739725950068285618501913636281763326966047335732068892685584320366372603311894672566986214699384871500443525600330481925092529192223714626051620854381267736934014289555451548151192462313758431116002995081434447068692698773440025509076151210461281795601329201900236249974910104012600784686299294540659441536641528811801054958393368851847577137800078237754694316493627147308004975423205529114185738344823636730878859894418581948637663370088273033180740995536569217084289485449214900452155154459812358043126468987807413340571639148360234988091374815073963808666958433551684669277503976118381680038362897736075787765741189452647246223403555721151800741821927514587982476967833522901863511814654913513212420755554709472291963898333149301422707862170429292562235608803411554094610116890617848489030845503034248021511167648299223700112315939575932569114122769529749505729067143191044064717992564300726588632681666117370985377330734936631075134012359228196804155619408438560568961308149508451466855698338588283958272922154075804326550686512192410055199205624033086209453092507779192888571558982093179213719607784591261949364835154945301810187645793782224276307300336974424210613257819027622328923133833864277858773999600031969880815535065908850300231404577927643490591578361645602494104946587214177328449760580048886035421100431871676251270539023810249056218502568633034016231345031932082420265706828905562270433721936250200453124394056256961828786707106336323520272386660583794986785692504686099890375958969561331458012313292933244919863405063189472143821684126178420349673233840727412439344210975006997290829059821050218326867217915676628447191583697050828890557243095402426896332813293778997871724720497136269280876897959938874509991935507933220476081885302158925016679396751136916210644512723568707647365398890837424678077786064326227229927621792658703570984978900716888421616696628918649799361426706151622336730850345185528401772531894813156483287111476918698192492744552386197902594106581616967302173805062983708697419799561320404696678584787218303426340815773651966557405295712088082875298707246063071957761217600839362576727607971641871597390646583563291967310308704167568917081993339602044986415793210254080313790952345706596308915680907541880615797399870456633855062243475385194840561272940525608659743301168878980471782954635633356024980326654068703960865122206951778110270631233112051360614842588482899237711426253833939963732084214424123553288013911173904826390107223755779653923018784283318565932405824839153231987803018281092755542138573080827739692367188880312980087059352768761225204589555074620881424510904941061014769881055420759404387480389731618585325489955218597030895017784630553057935349570623804246354175083994988677957645543245969801737081599890301492217610181623237797782160642890389884447498098349254280222352475440635470457801768570322667216986513492849510864848428955330372136762815513778753703832996765585240054693184891329833335135206711859090265736910754691241166380177393069257565298929928741636333678920263483433923824404931930046840217747540712590535091222508122247211435491281371065192870590864801414729804285180560915792446709991894724536632582110007218349977012819442793634630290290500107529672712984403152122974266545428597384131450943442775688276400953182733754537357326513987123560140932855239065008681986497911560696469993481420437471148165545393026743579181181917501011430463858378671707450013640540777492577760931133625755055038621888870198450202993765387098380688273551394066065160187206139914493340835479808490577136647957762455299451944562022373722133170924593550854424332229694560362174129518173182694362895773441423535355928578090367403209067592026016858559294961364310905220865778094347063634272862376571148688523057445591331950833204844387123791180840477706084310192549391715859299231265820300237861654969354544142113647679034603058167647354536219498941686201153860911485147449016093650776334751324342976553470267224475919600990659853998071283788906742239821787147595151285282121875267160794682750354482712892991010527381722148729698791799559252146275655497356940565634914650623818859903589003051446455042027454006959932432827334668568316981720259840557581448169952854402311289803050716058020188013008757851838393930246017158098839464367407827441361009693621230298300195870736024266544441371759067865612805075109304165201760192850761551115630872023260482338186985433059852955236706184390718811000227159871364383468781108088344648943705380617600549517363190376546025361268139989607609874979554263808214087733908295758026764274684774600943378220687327422991000328526673290180416145853800599335791689677513732596403701546300175361036351834550893088985873908128956356662712900964247749514504922877228322723623041196393218060946164232210362407590488261212769633179933431206241825934683875754012620803046220067163671333960853738856092669670620270466840919411886978761148656932057562532575928817547569221549516673376554868294680264486638897341459308888322645378485083467397963360446525731193090012240433514772533074064469858744995888305187120301457075313991981158052519244687176341588303725667316190401775363845858905380452336421674080794147472271283539446723241366308425143050834064568605759520456169781913078675502076607014045523124607456234011431526924046171403159253327958841668001201623283261219993661281429646542824349268565357376887914199141333725707667509645353941697436779329046992827954060976344085650039099449482822854890020058054778707105466811380484724919267483280378219526367221428272069332643530030762320706138627384744572216074370757741000733853450461184017937829471431522843535169918059156307029029948461024530886916647240261766558531645235037096335076370465320725829379565322944847705033173192795024170549693496292026389069071798344454127397983459573800144275808441675788851066449062876336999880213748829121289840071224781732581268547732552131837799215168092717701706774748022347293757231887193910623078399629156002925549251082976298896502786849781324191462164739675912011396405873583822324466379141425196083041368395877159356986671751729900316355336142900896958107607615124720552602571991115315424381692251307387787195578790461141395462035834010295560637125563220562928540981233813723206768992663313660467528661993634456288790408634430797895357910317704432538563672439034359535054774462860279773643763151281886743972489058070735034638912981396888931527977026188957019819502619806646231048372525052513973878510735929279001843968858417190983891719252201444279736475741737770952182193817288275186440861566887894352019139015687984440016070426979250922499119224643825170409806415181881562603883477090556197129168193396176053716636762927533442177755668778777118096761645901389942575356029499414182245569425545555813883913946832639576554934106113736435225586807123764150647727841477561122282062519269457755411281978929429996711605719766529945843140177516468469561885621953029841655316521736246945221248839542100357547533277993091168473346213256399146280219934408389024648782576145077206835307995883238502598855963499556869064891615447263808329195975267913075599835035100259931749413054368175998516353249641457489436047067575324009490899972651260912086535816351158380168569141981432956780737357716930936207345186605260594793486551453394090557187391855317294718352015636708590025388059879412706096136467714868913554302226745210646251828592348418519369199499701997476469038332599365783688185601627751528758385585381536265861839484222900359408547724263088588685943057141570005773805144323001171233524938001082502871697278236668284422770510689241409979499056721332115607389434777986978717774435925944054095457521729420887724622128054003401659098701484872978190068427089976507068433765541468471891413898132675894065768235710217628577408927655619903599926303941600738126260107217247216552342530054001748668378522025572072313159313706531417682586885599934399268793884105549960197206413931049733367068199804649993316040285308945130546333763659782704792354084049265338055164123023546381664470454994729816763656289956473132769935293640376463397599440347562524665951495924955162467284997521649165563372569104556479487462280122424139647840480701666497588956440723743299174378557420592865914643269505196843534654100698607302334191449716202393079877305347280603488802579689143743024305831625497628188981131429363256029413793683195967798304313878265648130840075885108474432047175731744964287214683059721331895448673896506191527906675211099895383386909493079359103443192260042690499335103210453420305067279094192326657048263444404072575017497760056730549347977444382819716955295079847864643249975652468925599286384727790805496427068699831051301011251701020161023067100280676720431414123189102818530221955297094124407997748853714886577365830084705484364573986060927852006940727768571775971548080196360463493670469867663863995860618835315135435980803803390795382334480402439471687648079250484414305962187985109138569470289063286030651062322374705516278444238666980801147514911359960981168682412245122890052800596858325363112578774055274203854804510058271385426088266555612428799734117623271453469328837830712639546749725760281957674586776892029289014648183559534706831670188376124953476668339545892263507325999072757982523350036971196011065996491569556254387126625140646377114872957760730423557685854221508089693108498063887309216185318357767414457616909987592865930511429974499481447438943875857532720646032148954854723991881931548192033852214984326827269972390164553049227111017552305305321477373739867163509812748352632407909348399083037680774207774646459774235393970659232399650537211018676293150315108029907071835361351753391076958953163706138989924627793491228497617137323377568379937723135175759073102666069032226373097590919655925942723847888280771105223759183466396494073678975575035605306444071006625320086000914172667094750710781246362808252424889404709494568184131184565913103452188735315270368818633954684254936676702489214478573477330095177859944449980935083682419799991119684427019562475415382741569228146837442552130964147498215571963798083363570266419648198962387617191384178407941394113852508757450212610211706792407678171881973100065892424283726270608328539960533290076802380282496352344687976250351706417455645164831030774783104988871088228709795755383542228095550408718864185632748993708721080647212102028204965822202543906330536675667602969754771121125077872677351474081361859924800960867802843968682489352204624133913692623873964018219992499781679923858347133510385776967512291542180199126063688389918056690580904976777999280460172315664904847597378753142449082127822514059370698288741144283855870597502076538917389009308143112273613572986155702232094458030732202962890455325259879314799387426146841223014706232429335893461081986562630631764591294083007159196286856703617567279090606931759385575519504048773353909372926895543469356906661368150458358617036390133285831706154849563420431985494256721411064388830957102730510569347348549408198252720332445546468218141539641252624564154724997856915889311970174063065131733320712649868351348036501411783494749320167978082506709902077445993655856804088723618134369198559535878374238090315768114738735736396579837139112797289327747883445297258936397779651042538086855763961027810080781407610424666961011977715164880071614408731709779097905414927918831773357127326877662562597816168766565898845589845307107640218386670862180785027305778305573694140129758404257561630534578277288265362065404538777805339677594950453363049274644187252783064407907850296385219967841159401778555920120297617725075804979348314345068333456195760162586666821079081267396056763735723618227689762822831977114024118858107886710997620548387989196819133930899792814258305139632587916048335793716752527203973050062048747353463395294053554496739264025520560296452068534607848912244128434234951297626359111727472579835162516427427795045443696432659226446907889463947947494733760253287081223571106252197273394027578284029632007978062776994709730713970033981416584248863437369623191007008105222223849311114215634222590711021645086332402002631962779456653531857088840709149921511157354622245219270075107090938729461594891003183286742591392096397552729943610734904114533518171107450608081790741591776784988945579446061889673129457754819605470267016955698870449473354777911766298780054532680859131071886929383161193152374213368758330857597969972459904211148188848107665858324262741106934423472659706970211931418490826212252608610488263499779926515714151416527953355308462759667308817455556825295070127602046218522602538662974146653710906372825528612373038586863491927349482560109168636806491061829331115630089249641099458519584410020144963765673297289525085258779538135810371836279184732231647108819459992755998688766782550662075021959315195664209641448227937008307888056702269542412927915716951075292509893834839795704336319408634390352702857308795345157083995381928922128750687474956162714551531036201730503347779184114936282723942639249423970288528104044091078035679848448386808958900062025441510785639401503933060933439872124598457680199407871606511761777553995434419863359043265795212127826595721317313161328700490474724465470293293991996924189747053482252776211477230530476449361613527244580980541423309212485357221931793783008406193101994948596336931368580053374237904131998845704627590529342467775974722007148173833689841581666284757279641128858576940475652831051617347209018056749856094929570135347916479150322139820338974168945475381691278094891511167029305259291648281237760666773056082632707314979069765484847973865784008779927514191276827235003758713620925754507541694936429719006364682380367751239491021225763799079166088339683096758520531110851207075364057156075095942541572048202860044039088784635227933055603630949871776648615095552089979279221342159697575352532545302480049539226663242772103189510921599610313686325512154608148455967136086403180301958397465694691232252524099318883127159458048842028039192548358661668844149098883717382428909677620950862683423419568193527193099189063178135751831921391667647259084569181395871550089174601294444967252718389370481352093688386987024266982336916732446667310999971182729357115554401909857006519043987100563156890029751852928273386922338274732505153266065640014286792528774677354668133622307102821665401577453357185377945609539872169484507832480710331390481769237817393247559511950838179303273273758680172254809425618370355500557562230052899000108039942208527544263978733757709481739215336674411180506330099247449830691527272852617768055130978734376521034001713675809773487285709243049404639809662100452065156415352204552577786601090812900348803683133993560951218967371903072953968241167255352782353025104725060962710033076407625396955150866211523719430750374737654856205739204970157134884428935174109001781044782006390622400031439625041028686154787737928031622450450599385309688693620013749404692325556381941390186939794672152829145256643028994126466035177000125813284593896578487129196847051364634164427971763407301725317015489616242787108292635018778091016707798225796250902307322147637385254959222142298150664343681516995757027423375746172363332370596358304432501365375990737985340487247251491424008974604027257934590862753427826657735233587577373061216709089176002148628586424708396985103043547235675878821345334656278396653844960030889705001300173739467635966252339689245464105364486554596526988086553540696072491719617862890047746275584697282549834754206181133084220631909008162761262143183965497177581238063218802147003455511953716423488887583887661796393072507901458016325328009491054254458295276726631240128251434724367988874727716253991869049722378468746447531494700846742062697283702481507706843684648613576853258051314471103274652612261145589744558035142942470387493552386393616393130023834479574478706229065581231928036123259716348024773624376055088111241199631620537321501354041702667253226646057957051070126360854961824413253734893562437213343474395986525064782934012597689303869768735574018345614994189246900944593186498632662323224673091522130061828218108700346692027451699367634626218974463866829767592968906477801300583613298523309377065303913441997908546266328100356535854322102861476021437628430258812658194747489887300215526232682331019044739009771520349517556154440645356365532930645818558739672440732824925640032640583228409785097979017375282293612673409419580253691094242588983410517985326531432648063623273003723877693504869251920827530081404194197530159177966013487135652253841452864732923356670196994700610420444788728045476855327805608267050842425460535805691927066870048240976450966746452497743912319191808307787396968249854368781830305132830333845293028645960871218385546790809161419407947637771619507209816651273634022795918808692704188311994557448121150118576710279759093692140659054992545617186795329161413206239586384706963443861747420038447087240227320144083571909443989986346375103221175674599720725767134198808655700440599779686597190116719249299446949668898402896659464998908298749279135161408731978888779314913424851161714114165804961691964695187264745434033073402859805650550785978707096315124520536672286956397229239703179513744657649402844674861675663016540495348001504044298477625495242413440466577805797068874541437257985435933267184812545981747385369201886584563364329276406315733464728008831064737494862574118060849667453129954560679758941095539762120450194440788059969797243305616577903647430016676853687396539273894487502758891308978694848853567640247878284500586503977502460380623679441814507724636960960227366593490382912796485565624679971410585126663607984487609444542713681571704546777478254758495726524910204670548886754595222305172104160880726708268514636488132371431390605982208959784720839437326904282838264597178405507597314172824646365921952872538791616150181074173233878169390949968215251195361732915434154910144340698046459871291027614297306099031153431639073767019679417031776114852525285469175986155729842452595083038815779526182890737480429468663367584701300025979400858547750573231711939817737573634801950291940236349322038994572577668835815945406925438466826730371382172625027429691507411579383767934598523756112969543902060024356965448352129314675859576531021560672933951380942804140801642925891064051840999097179013488083223490570204956599494958958561703107571579743568907411272684811741998846455321661195653131935218577227528897330252866614543399578060018272666271947361152068255413533528452800198606494449896772461857563673804615335636192006747001647496406776464138348974404430717737145489267289452032618689491687904391799673695339279981548262364848150120787877232260111642157661520580070727528983985045952995818429525854740975808071891882733126534024741813316842012141793346539058082128799964490241299465866757595225236526793631682380061813547162281873743752180576633055984595765414329804182358514258610438631974250852984353071961555993309768993587604743016296171802025515279864003803863843665660845240270777592924105649451886487336522745539633066771343104721097072790577247869942297497876757547384422769292902442568606587981811291368698404215987263674737591194995451763866739651214407671761893714380533553710428079151898606112119585127216010459284992631350574825119347452064291627210536224471583710483283061269588087348822728128936459811879127253613638451546839776125642740945170598116140096049747556729782737283447084266071989470898347336598177892794888259046753157959311524219603948443338473867197347183286243979004944954540799591032654582710785195409772236146846109338034089650481763102932425288423333013098992349650613159614059866471641255547807095602945946670278860772638743963767720244319772283740875929694359002622855689798039228489889377948352627360774018732686050838669048327483161637934033580028493526689806552546551632111957025912518132354206900455541456155176228413924016769755599888701993381720597051782339952957451616219959261132884284918283445746948569451887866914129290939956233506018913670121782775375875335418629954272258757895333554448925895236113524982732479735273896571192833174234950565130198997512469116032669433109857827016124431316876701525737635175021658308006392950883362324547919386624679422218872587409398442886497332106488886426607054312193791467479388252471365137187537815538734434246533899045229556392892041062834464824192039188973341246891376701030005739866111700964572774955834014766245226429225112493279694470751221630924129367935946094422914468563526245870282474344234365373228294769370517628713575197995652925227372406837046813380739218921640361792756705022549854754612166791070682001462691520706757777755270951150973056831644420391605185479388169109899483322742860232492727248840913082217706216101233857153821243921416685675642057311040418588918497167943159151258568340489722560555595765979285688367812513054480056471473079495712150913382106128737754038489808386866455983248643421921781704416202484687707430462332099315999305748620566116517480028185031547104635032880022735073735115706263886407066448179196626075260736138698271665312284360705389872296272516948276758309577728693496278126700989939765821087574205709128654880911032718602376030832193976116810059699640510856607267409796544085068317987332393305019665098015105261658905305560454920785641905066311566319416074761622839185636690676285621640235305439836834119862398021997081438400389383774082563347018846656243962581515879207791470761645499641302735973744066631028609071271540995628357294772726844782939500119233901999172806082686794821945447382369062912619449698182637695914916115550507691271578782481153141161802026451321356239211073889523283908952318884365734636963991497927275268556184748880307112064476320866538015143463389032181144940881211025016953828229217096605372347397998968753718940672482413938483103591285387640879457603283921677906942993712135380441516185805490974329821392789230941482249855969583632590283032025863574936655531368556042139453753633018646243181369237575337823456477587814036739405833440065115240997686215304236980016980799885802053154243923416220765031781224515372598246470095983747781574498637968161607613571872425757384302507449249781767664507012349387135445962778651094621781948982620125530088243023950966365789900455554118900205451536064046663729982246598923480225384219936815267580526080473869243373661756889578192030424772219525515522960945793317480654941146160180544255346786306023390595997679257373268222036184948930386368740545664082294428393994866850046647231709881612911211898468944989402269391794096040730902189179672427687008279090264812168578882107456128000428812988115385459692331102994745984657418437118261208406565128838693197791051467753399984852742589132863294960623789204151009846134422560202078127151126221433212830560406068339672979005014053427438692921179471663174740867132086814483846968004421263603527964250496128438425072412809043922456908625094367621333109520266193890711891014034544428067536763437693343321837739104963832876278431237347054717149892304773563224123522758594317224254398170110908697340311469045046578423295916780603709397645738644940027383204192997183851652612639911106494430860669802382355634980432770349879768988839801844774097442693585161874004463249606387862987008166524197090234858296437119566987424287183415382733538413013051233059658007596228943501028002364050904729168878330050136588836719659377002871687909623606603463153817191089323108131576877715103593195101306943583339857462668840050587421301596901893921000258185419821429884850925214847789226354231778019752269273016635091954993621978798881030741282953873581027872886829337294029613457401707760575032878760413941824949590644725419680345889920069394582065723760993886578013568518161930343880568567261820507306182465724160097411392275045356837935048058691402356634311326617330853405140320150425382082693299989750656946086783389111855947776663892607312578302475102569586359979412501638566411185382908488150106225088893573541434671223511803514036778508872875274299996557078497007959092720160216821410042198143067527743369184060522106556802767842400371213839322562261643492972573545556830089295127243841820851232835331952036682729865012291530477227524413558766379389929829448376083408209401453918499278079010102995863767243166312026315789522296848036803963899013908670878975329122942724576690644144765429986920008090467957351779255601253520622305685010094658968749670024304267232643546530615061778830612966018129796862655613180404067306806643810306373385829936318486972255113352762507968672543449267668255071888285969090120970881356756042387939062473749173966617684372185957699373770302511773032020751634124821414952525054881929135744585102864311639782833548034533638302120531682110840903469507397127102015337837900998730502039805323516200313715590864018497942646391422017688907757906276821184186946134838314786294630700231732359027425821849612004110769333985274797780186507868643923475656888110663112265498424599926045599911399101084475504427158430267591487800556259563016913710931608863965580529328596097611368326599997640249534903221025980841015066504287765244809517878776995253279933448803067581889941141491237580822854237072383008794294501461653594402812876088740378310958338324770597575268080347642257550289142323203520875475480168059460471489226889871066019190797204565663994560613149530559972362217339924827957377378315150683003076060812165327459551653195705607624470838449020014094488282244130258990985114693310902034244393953093433132434465078545990415336399259851426478576286375880564034110972212572966082598597590071014061496186265811973874793995484708310744388874047447183021284381037949109123581815494096433396135959307838445856108844661274820057263141709819330922145457318836746210953469185429264441846541829714817011417215601781402689811224903678754929848655373974023242674139554648710901835198333441655869055683797989847820149156848987023437408848543180315199506834637103956964439501837814042110131704718822462499981758999661193916012956366192239065025281213102165970855317394292789880836933219454480595434638168976543169017885486782715940303700845852521974104681260684881714405589777909376842968984632930669641621700305384259946573836176952952862541171673849687601254727755336406250436506335941625956997178550236434616663046205657419274328948317753918689653188115222900996499606359691312244478457726507659603058322444012545892914943388948432216795537052584984641806927534119881724811646688681053188599623727654773051624355233722173517550943878457378307732963488812384531732294681815425833983922842986892996284786235186673129130484970703962283147664168197661333145780330242768665445111463407196650908863922837735244638813076788571531716595507314235328312757056965567766682771473828260237415146776369171908496756769837722933753280942389218071576737798327096797895273839635559890833101409908018923737793028192180115526267052404771757906484035684245708696568254397285013679246874907933202438607759504626993971881728635460962140079432979624261301511673028652999960995109600250821540595296306448645487505236552096462192622449906201277763591174392535473678051627556005238982157779178990775246664179315563087896390134371815485617878006583224701194332414928146325285452484894784377365216564863552784704351718110708801484908443100954008183614647777644000487758709639884428288662050774509752181449941839463364177546833586581401424902713893074596603318244769482784015763004162874607771588833746534795120522308254166352523420779520531746700354356586193453362512676964827741006374916223144024571546405369832546032144461554738029203177189718669927225468148307065768031875534484338394367633934751862066731638790052716931151882973408216794802721438127068626159940554132657292935336930365482657369315809787856023259250562256508494866214493357402760622826736467648095232053482125605282134546984493882000774314042667177539297315499656211470280984754294743200001735115354004178738486636075878886575784538552779682464827674498927075409557931798120420959043933883292631703146477421699530004675722526253966298234366840953197096336229037531549032407626222637664754477171032819967171357214795658043753644125213811800347400208910488565938173468694894265536312381378776875494700832680314446040912632724561616536192037439212130640086688095212732379021594068671673508015761989490732987735759030791138662264611597036080888943560471847082040533963517422124165542088134530139977702361466464641809863879184678276858484531638106444871287839084261300113762439791405499939615793436366053211256264227155461820438104297424804775322875265839275143157994212409482928896508980610448695404254055311896584725079956920686368405344978911464782964262843822140836453048232495181635058684901103366801617871106106858501607488158935446804608288136769298232658873021159300309124696603935370329516852168233741623481729087903157365967609219771532028344823605096365497595455616026749043444750312334498344972821260245666751214806175003207053091838300291357524767822215096236335910690382779222937160642134872825602036223544938326286654188597732713953068102444307898940049929098760354969667881146793889985269911841906853211500452106261274181540286520418487447059547551159765678680378450682528723921673590280470833022512398527132335088415094619817646267223760128732884448261362665741605384031225550877905333338453698408815831230466857307397404002733890232418176581389457627989361615123036936845940797687884244925394160481790710609600887232706154317832789486000570828158210919695952860759914416620582666364814957900721759342936750355324653880153817823531052237772915789505623105499515090313251049722090368370019665014394289782914274357263891761661119823534275552465379067741482416817629014707428157927372130788941945768816753502621998227652531323125638042708847004070221361309202253385942115839785349080830843354501605906504124271502652366450777136114330813747120515179771274771864125016235222496581548929756007730247490606274703339835675798482255568037799173918439723745271544385829454731889394943564312901160276905790827548991173609513881539082029679392317221299639083141779032210308161275311511633577694948736164142004970142103119990644880712908781297049723117593855701617613455556822384959955634545781425224979777024132589961355924077845352371503103422203458274494588491822057665394585500584095558435560897172512067560603221400970087449176703279628477383764344822356867993813828288838236261432697348000717690191168626012605887335148772185957836497314707516901351723998405959308725612536249744937853735262775573195991050256643674160715847557037128540986583430338403009117806951459430358924408674745437171863324117620653621759549543930898459531688444288336177077289304568852132394863130813230460521418564372536671115970809499229721846354807255532676233042252338995220183238603362389889218376848716797051805602277465610404288564354138499663390294048712607950302800030727904161900679852040129239428710465253290261188993653504416642516276222422097691498625031044467732238595398774112884863615579962517960570816445720400788529729327943936634805930810560550464132457337088758845050248701394738443409135326387580334476426164920909770171964620874279994049911472355620989075218708492436611508266592838439619035167026688368788197599113941001292130948288274982256963136443435514140024018149567415273815301918835100072783628532204389514618977998045250335251997950752301641890035663155598187073262524637319584776092767113804721143906607199032066062268408555954376014253180847784854816984384933234777868282761812945106252719650965589720276296072073480998283895931978873041090579254385440121503447025668280668269792801970293374814954357314006885120485865061934624530217224548878222634795100664639005001278077428272756746747032880077243802116509786010116063324512029089829598874287267544068023991356009037997775443878121077287721383964316833038690674467840933408349028747454766862044034009788730046516896070556335094213529762126837991871477362431346961727196667297155604503699774800373752618259949526705869197367988095499084596319315149671878946883985550754710778546622452506439140554268251558651967911474750538401573599031722368804848169201741103716305246732949432717980384750883370011085289676804249678849200866250362795356568944879262283253508270306199517182726793012047764438710047062367391114668731007843907229432477168488069635212069953072153188402813588353615904558574886390819976782196273585166931908159193954529863819439519521264544622068059827678955173810741992064265079630207169151835995064476465703139246123461197409880204245959523073486652572571446707753933226419860207129217098837603636267815864235401892465188288928666053633072035389088879397465922757798936373140511349776791932051000946736661473273023667942064309012195231431511132616117531575327645967615584358802297363910497657184433599167244320686177369990713148820003201323447765935638799727156436673028175952731926300391368386923255846286010789530923582932044669346875138435818306663489079005345812692631699757157641646961735731303741370756872518874821067062538556381220028676794137183665488038001060127159590248820590445986246047558576898961875364517193754006103179339351550458043709720190099924964983510460554583997208493224091589204227290699017388948332067327595495705892526638271088025050497131198950631474962063279664723239917831117181977545624369839118024504082096464351383157588097444520684942091657125030932177173455656170834770015998989620219374785473508271894513735194165504622896531500212253425554214692365847196436558947380318528011647087767880323940960598722524037101782970268212354717086999483743054377109370301852971442197298886093223318927538003763119380450610336449734052560883950571876853509349165357428246247885201161921618357303346908880775310949676129060553581462350109245621709406539334400489338227381398542857590295721089074385915835459435912309398340654148151282352573228903072766044539230447184303594651110597948382586723783409080609610969063320760962135984861279446548790257142415927910743011169868906208538991821748102979302820453882644275125077163167294459238840942573497532044674371026334216215105855628814551928905555634074434854455466663190581127533821354049590101618573350287394477007305727207739069846361858269225541691199790501489893507519006536089566488486705266765583342879491941181322395902812231169661124544651507187907556071507613298843777070456988811789304780140571475608130435513279707922833068778418534167974982350262528059544688069754357603119081829330787939353691748877030319988106017583286943896701309839849522982739421463193703223569503528138565546862829752093168299385003402983879212396196277814052110175067289774665129593097032214611971282960385766638714955880498234714814056805859002123111249076037791573210654955568981764232242790733509387593781806227600202408383643830417802472875809898810376560723745132962804835079956486511189621472764790231970432503734178648264958394948397200059831367794416121138989595360385949783327519257809824572897201025176804924132838248207122270979113782709096835565830523945115490755555030290735511277346909225580191480935380699883662489531254966348839137044854749201761648731587443957338334690753407422719285456935806946336121730565453994648714648394105536802312084152925604250143074812464696362530409031435399035243406052793351499732428086103258991302290900849367751707751629313279750495627959525691291433140900669189492836394911252341418245782231576212330128632258230950105584783357736741618685160183794501155025904588252236396796889593161828903669218879043119648871648399319032258762400066139882379000559652502941966551444166307715662714616760435651835117747357385799564764317596182052450393668510188483343749934436798728768987499452692709868138144970318239517438612908822785535524919126688516838086316720661091798150938723894209394522714926665080717159958386177509533216378729171095816190567026854802264488211273573071012792601899736767187014015036725977538283783177491400077163416791450993222406811490235722386060687037045707454717511818980913771343135415367512240389109776987189180326261943825656322897405187335325333086634754526049696450805911219753820052148120402150352173418704687033433436001763090361530836131254960866688786278335044082610532499843117894065748834752591262901438815543766303876815258600364984830274561722922575630678700845897387649125676230545473516597064173515777911406935348527438802326029121219054112336085696047434078348636490942260746386907633801103763005212122408320029456101772782170399036394289254280134099856442360430847339278462990030386907346290219980699958457712128355285220594270236757074615551585993201330691096156038484601748364457011785460150202780669142754483457479524820811009008207834847312177388031402769912827586326720441402105885321522177332953290862988909276307858382061438910639441454845778404040242419381392251311231094917146036198882724367655879339948906816636819891199809893310738411213588715327172500116539423253281657855318248589527817740266264356971371673190814876706921967874306354512569330045652319844882243224001822695425647119267418334819796706028282111485695533246685738727870379791013543205681850020051762440355850407501140690323835782916599410531896803427831915620421522614663365386510456882600377856855683191752818321466938513351103691516168603559287958311527162028698119190238581782759108748880243816183169120734276908315472368913511726236950144911173677007857239212725529328829617940971036252445103491071282379205707845578512904987180893597939142821029823140471101123198168503140379137219950098544668508200032820080209146602774994779131634115056584885569832024374912312672968567207954016611230549173570010603496562436328829925198130248009136477624269609872725756929211740208844868815556553124700622835469595905222034025404912206040807095618747954576574306184004730137927811267265794706709726612496441556291198470470710641732643425469950949658331987370930772568361681534946114833234826216369738325939015456799051113661412682738589048456787838736757880252221408044555133107622181364794203754235173711114619734840792122320507145608160513843327755861161550363045177460249343963827895258977352653170785664847579586668940690210202367469646296452158931948246846626641244097537605032415375059032991616229140334956469622908457123285403129639634345781360906878367257889236113707258246910043052654255849062722831442203539882410503232351895482315466769268211831450149111785015177773234284799645439786773266987631835371255711384857631725250712897371572562553166047973714086616013100801731784793441218068394270475254864555548969489574495518011332647718410357309064958928812950973054319182605654251438916756915912483430200056330630237878009689216020869645919591266925238913252165703890266819050611664101646289074605516568872988465949948670590827872796565398942349288355853319266626258083816824696913847415699054813926619588101881794484757255801205111278687736790017999000889064301680509987586003065161344227786294821550348727198601978147590794888735349873613241879854726908811299747190975881499107529785590089894743515874475926873119672592611018820157215777420825507637862017040052813455651416468392912140671365043466909635563961918128144287649129974552628948310404403898887503437910064396495641763137771764285440289323519454742685988109752848663202611616027897709933030397817658014993720726478938315175607966751340942017746436718811854313731831174811780629088428775470068008636479244810011380215103724009161445873278656602008858006856327684954047457665973971127702122180216462057264743409843831171849419857992964474742044760212434669995960959297618354069919966468361389912158700266773676095414075830947117655799045924992964435778121764605071582045231552551936635723306397742985349338734406312988014976717183883965396369955629183631704609887002559119332549608728138839840082089920991327047424675365652492904275192828007192277981391914842560177533437007089081667447418776106801867889521944807199676170978904493250401292467710563526007418872847659002645486636352719948770444069460902881555944612785542087673522661633240323303832670449072170661646135216191333812671975674115648068213638315719103007719695925285165333955270686242105958808891637766298344254443812621627749867244473844587679117959913725156600947426354735512666558672888641033938360543629609393978573342805747712231636507690724431317611233239769324211248544960545904050964800811498040076812429325603961873180373282972096188332387787764450705886231436964808395233031582597418753839250787421697899020102054566832380270229746736031037122091126460911115272503625688622949281530755319522786334534054632626157326997449709841123040318535786944859395098781649736182019689019979652507420807116551532627843819614923312582680931602108201050352699521244355057278106821294224536202465515332065714621410113691966293955388047931441460177558505938969879291025526612528694604904503933179821178052925747791156183563675289906082058307148990574667130224595475076273608233470817306100210767036845958370966269446799964987307727149866211177652296071175469692777616847578065496716381654083849949073906662847314823173323361798290519890310740109919588044629635103358828776470941208387204837466211138556835093258117325357296985167519019064442261542306926748416437391300372929293650108868541295030535648035516431205100093500868161392965641690178651907701036783707452428337197965416010778990218205733079231157696041894049639725892228235180747181103251728551875431542009345818952671036432664400843059847148936454503316399654688327239266995942446774925611844089658621442120487629358439765463889884743790908455473078155243211672283366627402616749009187428604114659263804594950090820425163722384026994270814117186201163566677110294870259161901780275870493508825965718869622874501028925007215076204886127595290666821415715393662600945077605489884646079622254287891826889977317716149831840451384983460156763968842979376567213172326633056016833130989832511328715255613186421671363249493116514407938693247467659338272815551158552809978706235087964870530670166915161660582693926486156188868457222258309944881299960067995206102393405113113212355404325714285974898555132970003358006509503104062095346864589240866559844854317610660335668959756416546696560582580875863446625195923371201238539654340492475199270201534002611040835898100007262674197719402100238395409666602907282050343179363655647702290393269300597200666921552857012001367950140282542358569876419229169690008954331960079156363532040603497677970692572701463497392050083507925256168725058639574348828735828210442313646266756436482116075841535988763438405438964021643345684602499896917791267974936952815192537082696825870152517868393130788333611961206794860476094551585689290074362853366410725299185167615657827311273377845489056534100933498023997656970877110398122961697568101129139833377803290847070912300351978679575054625841189249296005403438651421422781604799091298218440585828354039881248833532847210675303270484297505948363348205215391796210394502201089055615606272672808364822380442134534772178911889598248638839991244540576408597222469807930382554646314585587433225105441073613440359778855643889139378604918281397296936087451287530360482093296734796543592202062461172713470670130740952891511484697872107785959343468219069910239150756146365480824082241224332042768715790138701182779098829807173946558170343544924203054644978629723811061571696952389054721189510472144306155575637399466303666816790167395566205688234927249016941657838862434482603649311464287663630278175249410380213845086487308493922360343039449336990654335881041081526905770714643252802792385698843731721698309209953298583790935547397615930642298916815719538974549518796454754413328892910458092877503902805829676161774391497129805318300393776666310674913269387839216262644524116034525271255295443305548538965467690392973199020772798072571806260642634064215109375332640997519441056347423805079334839030191026855098235084013506743572905692103365632208131578983169443492534017754139747125188979870980287018673595744793594654251856713022623343374061354201081928896612520783070933322460918262947465112024274583792048655295611105858937184153786590128590922495545197864915129069576161273523729696645389801959592277458794441287221658117293046328758979364714848116067270185841639100411518440244322246942080706930159753897118235294083732527760113442565557803951363522873990390619365836120969024931310388092035551276121703027902792120258614561815146687303990094316917272102673445488567378114538807099568984060339381637253405537043122361696551676750355902956471207019510521604828749364349561521329093309103174296762079521120723969656910965037873414526095022463293845504731548530929458143021097870122651484462611090302042602580110212977755528492879847694258152698869882004277208834446797910812111721969902548827509694228160415601470000959370146147727252371175230043869724100444569606595596574628753810880157229218297104854772866589487908710754502366304971188970289540266366840099318606323513631691362506482808439700264091152490471389590934759059711978629833347901549376324673712508839260001132781512250659204088504976890543157720935101612091310156958580630714929767231285659383360370042428321921930538495276925441854912777995101522936813940784677468500844216406869059813364585274121497621846045736773603386732045096794961723952493777878764473571621461224312055920690718580387253618839422828479337377006218985958739542674579614308956571070965653840022817924942393784176748558549328560479462486935864907004853332008985481595352768545923232230486859075223536473646648362621481076765513281743319733689538015340918307181543230587580933919434108774564885205890364691839269617112923297603207236214196300901429594769954137040637629894406174032959983057977220921803095610408423748651854998551999482503943994608151845160853029093692495651055212157204212014581871768382627928519783468922791489741218657391673231158566020533987901414062283407501106792513645985067374291240258044697788265273918681504022339385801175730592146701151047095689104245380117594523204656164511427214620912855951025220703577325557183707791837863035003978176703387137739833102347797221379118741391235223929794236579118499789594187054670335744244385255802318128101052920296060636350386467511881521416409301051930338655675205467191679017442341859566011550831275969850920755808940094680155963955667800963912279314196585347919243046233040750260503838727815773482361722141676082885447672069572110666941859666256874771085508778569900897476827985808050994581791180779935838858037926621200032437301601999650129673708960153616540412020576268412963836605861935790493207248543166392142888713086518162427864046621306311724267481479229882579763531171599651210770779552259514026805857337996959580644742864292107771593141338849657666955618283117318652029322633474476363769545374712563063629007951250443948745586066376930807062970494707288793585313502284350055334101130638297971619892220038958882508750891140389368613242061021086787638365694256735305908310777661335418082244447953664391674051789696878933391046820974976101270511632947790483847326908071316221549175409507005975816883132739786951987782174338420278442621570319999769748531236629465511815216251037620150196534463418028135458118079140095334392459194831955687904363499371671150550455195701101428339546022693378347911600574480672321615293341070531092949788822102299383078948952445659860466575863155237918934153335965262893301361183309536268484403116684626223824759460958049260109787090140710467788341244362575959442625958460226864225368859363065179173352442643183596170677532425500910218877754469196998553483413322630994329128722805983916235572622352597131450974705814080350306104242764485537209665760192692521418454536039299162346424985659786580191767436075856553659632966939387445435198174931301621973393789355381989240856979265978735902401378375446243118044635615811128270046495399528708126418300017059405861814521233336440616535922576158384558440170321464233071713044040675917731900781051501777245290391346881210065436234840460342977909962069892652521335781867301564801359372876986224284628483037323969734317120450693639388702525171449785685631758105863006877920340548206398963479196062253975740646688013828837927321385373560789169742355991659909966361564785157974254080840496286972183193979556851972063829971301668013719954784943755664221364933306473435239131975905706911622517254856241799841360878663159738593515916544343763453904034502466209617104065306342801976572170066949826943831808904348551638520171058308766438963862810532098544113107031301058923047281881933545988059922886913820284856767357590716243425082287559137118532154962691124943222377163848893645417117916325158879582772202062539179843600928338411218453075542132222331469244071111245215100360780154628058075101664777808262761074730455701308340465195884145464115000226724121669132306239431422769987923324998761090521823097080703953012194769505338464075212450720946736914947820596097013487055153937775930553454084071577920862977145928692488981921009319813853516990907021268449162915483616159811552446119753001260480847163542317940069293480438488621288720245239334485033383772450177792947788859681534056842449888994148049772101373337777152581786315902113940274248683075151439001422009782704206826638636293745929708890117637764518041312818917877603502649122947260530411931274007402393473340474578918141263605906233820927906287289681264760978899659223757383239273900247678674806665909441385370268667807447643691944580340604336290500123960916047969767876084886173867332731500368306531446980460506124904468677481299364740357663718976087038663521122487396429869380173913079051955055658593208444620454583581651075483316537623665678769850006961433250919181073425326643874261072029252844141633592370223155980943725907142249611168700222745323713513106606535163987300145308473495238373023066304950581207473491055195240409073269013720189101467356723358141231281373870601036441010626974556697220592970728682239853819756909944457217727188706621316524139873856639627500640393639024751514022028537843116603762483886012858047463085602330834859164529481274668928802751415991951943447860994803371572742141520728705254842519634068816997979010471316181630043060337741076441521311962509980362266728086275097944081626937816032349954659311075607819012181920084240773833147182995779011500618892595091132792887536283763652844004906476540150685238405715520463238774449030022791934312573603316868391092636526735691023493877010065785386294637509868169283940441627430073687263324162108460592780680056816642570530767994662786210500956423019260313436758181386593131930086262510088333207440532547998862471811668187770931130430425357817382422928416585854430935373253792839629635716730408119170632316034231522895141008889663019278197238180387663404674283011561445740762533915534947064459289225620697887200653896124708032647502672234030398266993277931671075375434149079052725011935509223183330686775884897704570392163520125710883052210964299271533239833459777712582763632815694945562105522767342770308392852126123831042091046143509243654717832334390452092667281750350759098313755114582867572568582641676418195563346566694130115580561234972706249862903937162400313701679504218474745509653749585727684766571077846025794567170526473198795760211212050641077722918350756842930741359929213872814706965650414497343190332980743125938444970059932001426795928959813247979137266955050231543948161647654711062702315139339615424608509011707458413509311254776858520522001943655476967809079000686406196745355642457498113905126130386530710914271811908384341429766157984753382003675228736036693834810846978742500688197444573837815451285864884793502292754328888457110863616315463585614998058516129917816634227422106079967576565755178388523446992298304341365897899086369850873621887153044864081012087571815261757381815596806339478924810989540321301270333746900226438956896344243838905890572687285241892061662645073531802540325744977505179842815339207538912496670469232591779127516198963485544832270490697256241331305431164137166162876423245094919494758007197611173366457748656803980852302619954899721199596432194640990258804270855984654507143318345322755915579749480331945980012495554479099510626908266049377440173690501753112408301972132645398818026763639622513393674319697326006109696634434789827918807773473372874686342809613874273875687055696409905184423936321207787396733223709462707657879882586806802743938742756055043352631553031006828438585436594623620819199700028799541592905464577147459203097100774146611992939076447155946166323613186355867358293570915272096970141197332498762426066267979444457598542311660132984968404334738294374657742080935944526549167976108296675831781693842963657636519956779943426067783109241109333404617630506179251655259278941996935303407059749850962011605276411767935026771084147229931286900142744320818392346080674433713301544036227938506189414316138107144101767116197497738132566075327561416493222297162044611177283763050207278688539151461266934723888081545054986472717430830713910839021730669284934052821909472712510977911953714023846627468205462349801456284782362742422407809882419196437040904641315480363950706353475463540208093965868209708838153550783418282401660916403319061463596082380033151316457936888695325646894735179225694392356821294481091288390390977108308232109129905092362982534331163033067065916555557692895618524711445975049545980106601493980041760808495148243546696034925386301307485518777187236566550846022917117419838460660720426365977423281068853279608126804646895532382143853204558585216777356906759047762309550236397416416048073150498079165518255139944283773431357388162257799566554685376208910241659052642126031316152517683924854482474605331098305584906019937483126695544162024480054145837716513714962506786422210451228826402901478673631803557934049768338842547061638890174195116186116459419778334340603532346918161086168460491863459791774970394500495512658378240244290139090945905544576427698810194772479145264133837753810868027999426885877932823447361630359374004121421343513385360448033605006183310780388498785364940481320628802207792287745905440096240379513344965298726446551652958833781065784678152944663652985581303705234034479349076178949443286787821777982368048974776713393433194148380446673619517740860276583231465158351354603754288194363152173374414997202249065089580482654167087277501547198288297055602964053018425641356295127741910308178521381119751478087862125514567477984587076325334312287338473800121781181899272785036237799768727555109090623503436382621849516728612436295410191637116760329529542813975426646233321415011049278741039005973161307442725162647887594512668707166299251873555164135244125769002853235066545017716735745308506930128052144506717007686742100300703534947515222425596618737345906100543012834978602924269819585543602977448084448225194391787218548551953564407369827263592485225968385252704992582290707535964456261504126275736648594223995044434743621919756865100894814081905747779329351233972895666027071786295851975283165604254408295669947452176937736587405932800822598640533486696862810842397563386118150896984332772173575369744311912261793167563573985762309432817769092836196852127062545544276248419415700736362019832865759452225154261635608109909250626273321779979474563655938139304364125917903463561661195503123951360754025738689194028596617577911385151590503814242998596157188204551986555229147086342132196070462464855215912737705801846222312937991306683038116401838582169942987538336694030214020914041175862386072828792281905909601929280399764142248287523594689000308217464839300076852864118502791167877909762185975402378336960918325946188148784824607078135088699158313235084029939611777257488908966082156426868253776547923901734329464222581715125231690681260744161742150415083548179257925597042442218628919677453979323302963114305903387828466912280568880928889456129061056050141972613194045628056575078043362633570114290616327713164989972463077633654087013593912279406518645125533447352236420459105016372191517507037004215691178844720848784568201832763613344182440226217186174664953871602553271601310205508450756440918272789398483740853754473519178738928701052797790868064097422909117284057506448826010658224136029156300811878738964809007052318269851922547035428172363303879744963864210143455123891670710484452612793938405517788444738435066051946315765426214390579259415035732182009200634558113904830493654248515287189169199501267004418945196528269585589039230551157897373915470557885216611207373240336292816018261442880071048939617402819946430900166095260437037619759994067008066134767953186458109904545088657418293059098804608074185057338933339505655602854552449363503286772598884774719810479205183722017692196995641101327870498845362353881720930332187128898682132812396381909448809752606640255221909168736862307106443022836176741455517688831640736710807654545659626104859414879238347679130587607901859872560639499807527507500621685841925560538220154587721452169048074674602691328969418539514611391640218650266440418187446659213636696495020828200703088520847487613222055278065087239184606621438665499950966369343620023176560811242022290646491851450517785263277870636938002044801304497640320888948330423946985240424077352943728094753975901135924879618784563198334225144746484465579746071019870781545009559438406258037775727196367751585615537904602389502112247728873292839418154542144322851495805509016873122543286592662825666706222932940442156822737840544737368878164898614098087758881504549468429056351428628217390891017801956084556745662281891457662343815984824492509234648571888635071472765450774984441802679879678542565760471448025728118425752565810435562074698334164853491388993101263315879556134885475256809528136414026533684091626935243694302617735685751930441282501940232984402242042180155615298632274622326506826572410997311238221324742597915437923356236016594458111327575431355899686864183167417547933641075139320845723124042799146687130812652517686146751262151718824602487742539288573664724549631184710858403820511066176827596501765089343935401112635083291780819723720608054139522976383094457608842500536538328224686987184922352992694680597303241566971932212164098081446892770571477892765027393131606380088767538374424710650783375218568463044403143334067541503218292638434727629315081713360950667877825763151783813243518394133071853166362415250150039475206919647379490803269374095234370169167246599662864615186020906128159829068186002862746828760272786009454736139449510739287569062518934488895718687044544341063688273393480821117254644413046671526283987528660832235215384985727208312341049840267504745421750160878353096058442849115154756304887105575359465756901015673385938659378222640894483293105384463602354988580914632335203405758562517192364229369207375027462174710500835780815851804670193402684120246336694035794901932406018547608864474389433395417300524078577152866792399412795570710771126685853316877323622018347627586870432891499341153455384294750129297216400087117624975052324789825828763163231994733311905236961358942090709410791434771089790549407542314542216805688463678758453606182662265200288853603658581518125616513399874765931628725586063068930647660142870006046075531834012463982029264230996142205666676802875108866844474371221556139681233805124955780140441471518207633247797347772035396890648760789442608103784023321205789340814219089990785918877916154011539044463751924959848762931861632235424146584111004301335416072817404805293593765235415909502089658229388109987189330120187629805013730925752860491710047046248118085658069584218223121452577743266130677608680714438147319390168526205182296777963842368094943857115284443755768192662572349585353327887987344498177064729229944592293877944979808534762252189762303157719377740718188986884784055490257895038162092496410622158830848785346236508804421105472694973821342642826018157947182314766989313924592693733780310989455208839995889271043743979496403576041489667722654945246436216121491181629613167773050423958995483011736030314111775705531634797140312309586413193809827741113881396632006437062170293675366851817389647748364645912348278750306544398117100701659467906316968997442933578687406629074616060334275707994307539859596413671359519414744638518751849152497210750640179602458599176494451428638533648891012603647905211561195686496007917124993569308074692018842671011660887563591068158263581260652135980972098825341557627522255492885779161417080532583186950655226891229972051976501033129010305984435878420952394139669199169230582624110963816750983433893535278548675062420223214271704356468758858466434954352736290946264980809368357527388950728564689287041352536940465330435798901555210554156440576998916196166923592502433154342518071229228714937604033014411562613015581069601286024634095201510406070324479467508475845047824876933542601830079479279319394402819439149627811309929495434247195101935085811491386013053509465691731323562829262406275325942425252889678489133408940719239781036577338863123480885412297807669236207539603242986547551653711076827642322182006847737839370848800163057029780222681244133318818427580468006956816936453851414639485501144672514734320887150819094420137056878684346562367021721184285645102575639251742057317369701458071220357609916236162857705382806541825193090655978111811737633562596490679587884576220920383929031819964397698379683198198224117059354761075966375511679046676601403849910388941234023258176118756483897844142103193984085808389346968814161243520346641360209533590246252829376895259481832014847469687117741131510268846322339167974416080581426378671711683077239469206555809197280246084915704411113074447203586296363454277191295703221649921870023768339705677812443480847335923680926764891034166308307434665882274242230729228589936889899767970076773444024146188274510536522250466960830356285524703551284798771969876835162967044988196104287383150261364463493528440452406548793503965534667561105394082736439555928137058636194573313364702065191019229466936007310625469332263094069568738974168762016600323833271960848567522328550766883455900442599149975753320294321576780801820596011513082934275205386983068409224200507370163831980773520036426858743151136876317191106025622254515232717143965738778347492394685463186205225754653257810886689504241057978468359537613592448836248417049788316430508129678480970836127927511144685073739551853705689854328440677607598417655025193925735497347414700063821580545079025645041895997731602581232013385849039179039490007852761829155396469717710601907238633725946108887765425541224129956875327848082078252574369803674728860391332748349561514959138967611125368586133423306391156920827577733212966570385739538474104637206292970908975350163450973089110976126689302610741623373414233261210212769985079024500372524124687928724208125923764284361320617393455388078537369302815914551740036166238439057053859162523514532481339295901122205807377017912595645074790576269934080286961042918359522690275635831907488688860070747805844995372319545545561582268502809494226261480602695919766037746409071971649408055109008214235790698638897720958674985235565587337214659581818271086796161661158437248140937032668087617003309760381962875269361356160076657265971381128859170662638182918862657114667660006287424161049603278911210067579563801170096830265936953654162845215555352116640328352289455754760729996883820360163250642449894074181766256911870576167650743083808246242799228677344180630577814110401147159751360027481646070167960531217651947831395650798599313360184683599658532814041354520758065515364089459208249036703034164321706227939322147230956822888566688648686396586854798491256259885422655115791627673810766662347892455209854196464088694420452786017737016476934357231996141044107252923732059862900998351409118843289558037230988689745841020312094977099727284814597364280455588881847469291271762553112937932165800131191153120941610466457921555836158805780098989984036495796193337479038445737969009340408817572404954043326227366355536272796560809083102958866032713971466589958996754973626976957485589265021711999379951115887849508921068263912456328391731865085712006884082877071609380965592124562258785735429148568260194679681178358573048752861814805109705738195018407326612816375732610039570565829454873710737572360706961325507257144283178927962493020992585889744909465910097161052368101975481181638743137842136363475110668403669943269854839577978342247366615424419522313141887310696090070637136789258049210674453124155003951333331927148747252579061991204283834441735103877735861139770431479548668392357882472260673276856306543969845737410772544786136601404961349022723746636705568585351782624476817144201628341477459932564474573085030351297519004134307363051751502927406175796663997066306684930326622011811839694929417959177481732235463094292355873975189288815060673046706052495416572387699092811203768051135274047240566593596462832719502938866807022246978822910759227973229738227372280211654593587144129967032183473480007539188125906731874247785821304166817817670562511074770000650127152464443430043757523158303517850837181144418861421577735615603540565959456666115693178986637834002000443606791214389480170498198706661398521118599745103104705129281862360310140787773090359230402100673989217120269849910176945572703710943318336996300274307947507035996135334813960939580605957900915282828160883569801631891653089453885452860421378529640090258996399920873527104807055835246703784362930360845191464271132963987937108774631135288632849974030562921949580053241547226385730911376039372430833487354806504644649143166971828820524979812096895015636960093774517877952826942500825576810209234537946514270047954418544659428233129804446305220503101641233193853519634767565957071394733274103695972667604327780392953387455217969911954426481030923345926200854721761160816803010893079297143089261808972870125436216097689849990761439310679801939300965874510162885676051373157616087906239060772700977757752731717040358648068566604733429130855236361599536120784639762440668889726007058057163388961195676267038391306348243536077615037318171135381638996095796085272782184781831733066472485076558376187613420800651744575843109101347775957797527483723286588118694156146252261946143945179203722024369381013779875669247120200189770381902551401253677415472309883750670383603272891041059803386296564208591070453591441868749106076166318379247798245530299355561623113977328182000482432128668622456315554560722177754847518334793319876166471518577605709645568229506091832028942699097910770837205056246411961252962972699036279731140875294747225194041799373480829661438774516141699104864449778237866116840561869555234705768166933768324047387304621206732775970537639637573908830888885329697770666810745081459187166127626994757561680745105581498273298547846962645729436726292015626931255098403111513591429885484661269483307884832454392673257143767934356459425929417907214032648596674549819788760833689735919892134444653966534604653197000551733460923944026619781484334927101270413561134839543928420266804750469792486061805347316887757439240797816605553652329800762627563960320693736323845334758802467725556126509426602973143290311041978016441701222543929514684237903552043872403423277357472050165710922746695987484527585803569426922002011729389095897329330404247033329985784562966839607681627680848271517380753901116368229500508426215201046372636520836053856118203800641035933198181890588806221560747664473432109104626437202286354945323281573528431915146087520458791920252100900449843752271228822203547554522911043452263349886288866344513954083348418031852290427229263603657280569133234178439277610876849289034301676199562628793978082281684334424353482797100310052858078445626208225218463539992258813616324670155309026067207741401450113410079508339567630542446587622218500984054877234339491591791854697841513088417115668363358049106486866917779568091490660758980928447265966600670480443381653478095893238477414842253132033587641587471440939555571052768815365932372788930841188001512180047824396919329142442234633234672583192182511689933607661827293841800949401831878653884170812465752412542860614927292032791064080382939213021217026010033777125160705890668650131526166862616186792625467286279377450529691079282702733325748967832789076070033802430842416639168959310001754898496018995218164621653940116009433001575086482008394696667388033214022287816356078838853403269735583995799607723187604910191087882486951348458290555044302254350990394653924090052654922366352302121918833195639936207217784314352406689545665773744993081499944048261562456997410623831317925186736386905432018978319708448003086698195522976868711843657790197471986672173963033085548590662401868773117539287996901860964609313730044452440510622011233060914045713137661374236293708667913358203341406329864480089986421416398686438731373133451321498413850959518319866586524157288913086100017193128290546292983447841956040123889029504683385674582626082087006023433410661179958591351442537626756034137293168087335858797081324968053686915702184196497606302337598556612430323609112231381621692507357683621697100231905905687187487315224568081571559668576032099249727538251354925937101215191453199227837599376777603927905411212151216701720627414890189856245194879352239015931300765488940618233038180586869764720709873991112720159258134819860122663268258238135514528846146089833802471288610168636142575703924247143591988008795541865382708024176666234082077880891557383926186256647842151322756301707852678144398566082212023474074681277536615476362675806432817916764470829584195620500467608022535115402202377680930434755907624935028836562239005029539403799649010138408172365171007822127919738807215115070324001971287815707247057965942193131345183362452979808712358600383848275584175358662860454474911924663537059282275994939454193888829843557163108895826547184048011222510092508136295711230746852305992469667163113349601950437887171550115126077102435174747684820394497307636756190537779854834615337859974371186121807658145503550347864490645082227512045990379069275044259785246511866033580183162342823358730252021240979267216956824392085851838794874280176359150812735591099426176749808396265502430149543780024476434511077269414888445338819364314478001591779110552553181967886253593689341667206770561359953141718817529275229563863561656967251557657736930431188655158718783368781593108218823239021145845181417789124163331556037074596416839039266520204044827451360461954699633006124763089664521606626401839241626861330054878860618268318237848629017432236643865590057139765537095512975484258196023062417842604664934006064483598555995176494112757522137606573009650157043006552624157752969012208589470262567570297909248997391800913130604512435838800525574842531216765814977448241222044058839104917706747197854148883820620953186896891458029878415762792263394375891821626379730892103527053644953532041773292006900576844713385855551961643170366326488693276691076528439829769062742478398057670898671043696029935417702800679052906409103949249417805739017851075799737732406540215266034330046086426878683912247643649884609040950469429173633203478195137454835990574576626261341093714753921214334752671664903308691198374982625444720729998237802349600470876334134942472952842007951588268717143477866684915310420105000376351435153174607560573996815058609548950210199195511070467431865635335038637218647548948318083080910675844790739277999369707122972144800030547988202645701385728712330412788500364482586175383102565374506508056447239236181556209649495603113157606430688077356015271634909767183064226177229798550121291824726699858125960863799879554043816858357135337331897249351001405968339459548364297950023493794507191581603588764735486368607362218925884098819438384564305064742570300161902721343913715381005275016263919714859975716819048972167639438647823610384984504168113388499862676098607269537653012402063954567146521263675069355583540599366741959902325089225530917671793696069651052490228720542303024466562500845855778732503005984696559809148841617308966957293379552547854159214576162203430869732657953630740326008396339288176965842787207482502829572341403077152588354495788114940162489196327905775728358918733736417113468523715684150089102720498655341674139158926735856227576759994323812677105428046658198262861410698067423512922928154235439391102020870279714181255944015262575674937970696302618483263361744792376296932558704499256358108828148252216316043487345780673670544341715919340501892567319759149945593016580436266634932901700882619804565699368162339202598082270135202547318923964123359433740966943451151131232344943861625263372903016541446208406130431306706515496014125950006969416780000586391760029594701616898818537286569502760007171063808786684699959259704269173436956378915766008781653469776755472503582588253115300156710439884964969892826042883545477253727096150100227978771465165177206383879790737832237332458792697437793819827035149057569063711813329492427472832832985666561609675386213830273533904505863408725626136743641161617517449875720098196206414075285868903763117468099329955299980680274329484821088554884703028599899374704051768928006982544458862482336119398372662975813660385539008128458759331673245900219363721301153902693614835014100178624562513901680843023440995618362731972078635771550970646512805966647597504239735147387837162214555818543442600688860846347204085371718153620427025246448199076228859282603701168813231792793956674347619055054318185419315339463901214811953373393406326462914860842868719011476182541236484007258830863075679361172805522404184311619493366725363687544188924672605693966439503250823595471654392920789799069513465334789902237671885196906161164259225007220397365241263195543934543221381734737145870872745113436514882173635229693964494288293914608289569807400938636201826624533260695653600867433271816963609706077238700957196059065797325723876036745945966182453737863707747107246783806813116226861984244861697792096295938218649129572647713405720583840776944755455995060001598480515774790767485335622349396574317079012287269508697157376858522867622056748961226434697647457022581223439216946428672756292418903026967361791596595787517149015653828330483872817077992378070176021411945677517860088112831457265643054852785480377941299963647890007470261153710882725685271320008402686454918662881508751217499413524993545533504396806376746971660891006563935966425221662488921023838936443356593482934522355149472589564191302654910544608684450698271613286094290655235505347226204344186896953207436395784629637230832047387783409138406561975762388178268558077523096272138491929785173288687000449230850934097526241909761083912415008113200694081869869170395826260274264273630065532007254644085227861615359598103833663391393256971672558560355364201236405905450499383385369111680052721855522179612267412718101107492790631730745704116192436863795626280083578356527147531370217806446896472331099029883162416572463103845591896496009802795592587431434617444878827901751077354105872442718213527264222236957194239891767636784640705218544880660466731756444399538078916519374442592392399140344173136292641470795028467698139191838147338751464071836522537577626766522479548823173472838868923634764106633933655436495861845802135086395166984308817129809462415718452513429511964492227478790692762233542471007635969256104342636258035714002684153408076124672055408627027167921890722423651823035390588563879347079342804157588527465899206041216836032492249696262227794552308572364696686401283084369388791230835342978347317829852081347372467351204686110174698867535418196213241943200443974250915451959826002260403520875473639632104493938008964024760762048489590762355198508629966163916383617725454801126888566358959748413545751363329529419145237494376897496977921894811420731590412458473163778520365713481603155813174436617684362840630270815455720339555850809639731791449017299483123913023914739982427365655276216318517297326919631601052826824900767078372431942828485651014863370248276705807081190664349317107069600708028901126764465010281413573469850952758470756656410345815282672243203311647325225350589022596697266917394069968889060645054713853900136646735279434221397052169449744271419905581624119740824389166994472565958972456080623580446016879877780802847398921022386892025267115518692701338440588826598874688806939022424374022287693366734665532197940289230547291602858663164454601289204640098310306651606939820287095427865700976715450608125628952015132196302468421794667390848587976338266674374578360183838620387151701253473579111486330828393344886808830840542810295036580388489372057728403317444988937786395130103655507292007587665866779481109263518210300175810901200845922624393336038368329154196251838711927160923365631714600624069982342923872944768940178910096003961329356940474434412871618853838989457949556667505963744169977356149038664262218578036128566248799719724364004752734763957579615416405029572184389551858090281273206427061566360232826986477792121126561056429435519892491399013415058348136813799083766659690973365341729355160086830151445862151336893981805800626986499568640826780347703284877968003851136736173758268150639309856345720592213365131680177082171542670275732835466314372982482997896880809012702493412782994967502021660619014116609940318234627471124276959141601596197434239442741389515228134812183177779939450132541223804139731149501801347670050450676045813584151146945102593443768628201858532926546269161269649346424640727563819264818349386867329037335641990757807584979139795357963629368389345611593656360171509451997854301295437086188895046833927634173697122540457361283826129465027717986210006679097192024366953487151921317474803116270523154192260925773385536150313993774742509413231981123928415526007888754852361410462695707469816459219888160369331496708766859593289765400402699117659623395638304864324191055504386627969694695434224470210920283882735402425820774347810843268145684906024942690246562592444901569051230042781163019059998321832702645307213716038354554004510859812771326492442872358218365956947545945047749920351574245253205265426485322197305966027004299227209738202643517641590404998763871241250227208795016239664445211385232120722112457052654922817713903055005029344417038364059983398611857316551388563510575854509893353665389739367818873101704513504219916943273324264127321863492325474176736612838157976303018450226249948430841815739221932499982796257490635238338519174039962313773168819578742661147499818814916437078557182708901329211569610375484045215928377159054160748766491583298966779667981180990492990919359824933220390923057858893076908740902293045362848231772582134916299334174949936878987581839670584731831010643599209449140559876422121647757327382434998907213637929873188028401289427597843768082172284725668036817427262257298745411600735640683742168377244676213845116349096060794795099224475957162754433680820344551771867090277897495955253262948435018077788049161760751719771352118176727062994487600247411080890514267262939290375405589705369874880970280886804386511415547521147013060477965852151739779935370018757745388065093085589812891529094332508085542294342500166866867635486921865750441441198330433952635636944080964320835906987343849668818258807655385914105413289161724922224512443117186593919496888054939671618590658289613586971021202049141555194585763232005623116918670655335371900619657721536101431361231650300059275455712817667596603981911430121715500053524302109054712014594605364371003058674153123334400676480256060235925435136085728610905304096692182331741110844397450731948097512738106663607565641164163078560240106960017203774975386678660165530425083896722627110806399029963779200782046278125280655868938221034798867601569349999684871330962587221370415664483070917941844808550559384749301204385378534900333735334824189037229360158885690118078971152018863149128654056654632870649263522527656490135214332127706405927676037518771506349073804153202898068286618476030420101174886657924338812651158637026411501710243435338529731391103946929421234938955491944793204552214280373912215535899270610957303302998817618336541175068880496559944220947977715128598351877463163326779599579120758564473988918897388672128179795593878991906042246309904380550600202293321697312536155321703153263894055345482519943310871381415784491359040674975345628047136072948322117728591124731468348940203709722880572565772345764118359659350194285510365158467909879008145746665822124069792260358974327470693501106133427624987371222048999703264700951625220351093144847498152476923458209810431616786171264595154639491841942743607172149451660598042699290837083754839587396176343575214384884993685471142198070077015986689444703284646942675218944272485334330887220998309735881670174404802405358071278087897967931572565604406097436313917667837414763656629511009380952082940644161014060104844986218030361910250109035025627129358778240800026549600542848721785297566239461366942056470608755170073574991499188411280784200232155553786102201980982399190850904264645205074970637878504811354730642136496697524594098498870183300211862132592406159931671562325775624620754589996415811459432659340605101530699748060826672912057460632694849734548823814053185532278562610249157399080758605360590217461518955073567503839693745535190310948981401311078086622859676920214624918754957088167806814905402416528328882247131116316513004403494471666496678553482624060830978189240395318361319002517616571543180010386167314126207980401307253309381284542160851424698950546675263163100919551174124919956368728779044769361663429129380183996831237349588227957061481594616413678337566384448744270276743915186326271687617085782749455857008274701686576330928551818134978388660364699377334746547965226652833476970997791955375681255649772142462590401210292551199771378004391790549258390510108854778371778048853277148994302441571553140968749573496940696428277950272483724230258262590767307659669547214121445388592899555723645999586170487347353127430240865775517838046353359115364247155240724389443610314998657165607296554124019482447230679396878523533437337349675987663215597136768409771576364574186884288033955471426020578330317848909381135529793017414091542312185128259805998641455436959571962661261887168369231748769193590508514888336886224359151027869814257455862848587862010303278675744613353991328476611266857763795650597122491230693980956084838279082041951734595757449296879322628823274716515190472444882559655881299660297952141060640589565829105091386199161935350170425070377837378116244998846083204250126107231097776463589066831586606619567991285810893496338248634378985637948591364657768192658760220821726345174656265807023434024950250061595501664456548595614966547641282218794983675087566256532708764591774504935767073914351651907818918452616738205152111583058090261598609949414291841816262935225108618527167789699974954032791462529114365816567671783295615017599789060986329237280398584888159710293028013367216783568699670615101197482481376972812791372900876781645288548572851842249175387362676076657375850132543984766702304948970839864277719432609125918746840877662113796663401171970564993182707407271285473929620292308582548975474116439689116256936760300920969291480975913226945016757470074896382133354275006112526403127496729922586881245016030661372691327222462176731107751146302888529592748303845757966326463224974763644147163389370958935455586748747811154431610495763582985483229000829094049680766820022010230188887161750472970503704013817649674637352435898684697048487736897513078184426268640305463295345612244388257460546416981451877193809262215628728058330017732346976801288208166630255333986064424655289163914841673078908760305346076264287258440571186987949350688639123827496515912607533693203174942786665853659552801144731463703925344463647284057827856367261935027402657630825313051600734071723157857337225895752039084422532081228064774437636107116540205635313847775406601894941458380033248835448796616249985600589864006954186152073311826264438284532514517796809541993679157102287506390512769301115002557441955725090906316214560854960262066044362502878252195141393021938500902535671257831735229768324319460568923175358768442994241467676128557636392132838341614088691591429214448284810146571801186397721670615121625276471350887419550335909561072295648555137263745613414302368238469965574018301754756216646772784755100319740795424257030835122721094261351850928351286260783967087644804825906522460586924758706729352447133570400181978696211951290944225456972593469554740891327625846250838249255961276998828735930296834346822732179788736979408452394576919573975828890042890767682722414409900371006945160073869259961163275328333825486216006003006616632748853711853883481733626274789979829440776847716826596592032168729852580322801493944101509523344513800540944084924417958592881137518665339105671532349459440040849214029749596890516955530533889917680720706555995915003941125179523226108654005655934218676321020034766497037997939337447737517158420788503009085904803855861812063279511684265686617307062225307532167832849290003663455900957550462174189170458335501964830383863090140512911230367150235010472041355245908042462526672869997556280982371209263867541029345897492023045369104397546251127480340020546310139234489509339958347923449163278206926749526516600541217711088279492917272998211449652849014293276704106543716442894238685589670623214082424640263073592568384794214666827768723403692561865910574429247283724833819000095230964864826871611079128242735853631787569755855551003641794399826951956988521006547408831339260392629912512253827678884466271236838442758791184545913278911799079902967030835879731651722275831581858991145382159230025900518990921099755281427848631780248807526690476137620045548499142750858686670695805529360872167705167135487322825544077995424064636934363785305053252399936711087751905282912483754854648957767771546418982045998241555743297264712557812952213312694323618157797502279825404734566834520226975888905650340541359812265846700649318212930805252491587804570083031740901180603265803459785492539895511616691839999284949954804924363890842573081950338369591491842356746312189358994316023666381502198141533134317670626928304080106488457825754055457792224994978884258540443963981800488400959141491883507341151828876313760395925518051839145265756958032220188811990635398650345801757145114367337942289212540739095043163758481980261393363357707246367967762520606727505565379193182514209184127036985676140886487687905294234388327590962581088526076868469165154558342214477541212992844011454836924676635200261074502928357169474216129031853527276037969700955893158396916183210570379291434367840164818474699245101209573514026653981288396179151734521755477325573657069213946489052802637793375288270290698348199747736828477452209367158009598845859711032129966675504713192257408837641790280381789404968486063821914468151374730103946868014027579503824801276846953676933413594837565297384377014401507161698580860073396328537006921818491716201914064215154963878892058870505620512709597743879457582233582568700027606955089416699283153417919627423444586558147626390387251225696884485769865171335080639833430697810991219802428573550343819199849168596909805171735435854812988113876107907070131691245220219407193886434660137356558822010363977311635460909311090530981584493013369336775047191816227949503072213122860141031946441929925409736930826059238294292064892693275410863365334330537755561841285995116801396038922589939978373156776579928712682672057802718195844181171674795685920778097455586547430472302153223681380771971121565314184477127342055394194160092786861314039317212724490152304865879755403637410290786199427709657187347317354800931229650855699975679138794626924040210693667207356773441268912547800286844547914943522834317731217324594521381108851539683778908991115723136307640084358478836795553494226021359494933753809082398775350743571103262123035108679503937866291991151484264800383410129953149574426368345313088225438727734444437977973999489836610655721002304040865056469650124124884469958831224845978694655462949706955721463649696112400080468220889347979035332490399669065665621224633840299745724475494084392629148216492357101173860472547372487157534002947442313253799068041782562369392804843053882735885761753615426940250670687487765258690549086565334580975481309801733544065540904286948719232588297759804885119249186632552260375643531375373644061272240052995009567299288129190642333904869660903686500130166389102688791923827115731068692389427958796755623426584076226539353371395060052380524680371096188642524697480271697881306898611085253736254089688420860403466085490721894528100753067904313536681982049546744987249889451665329793466359690833035479275380115686742797739917179603623708954300892891540335266246413087323317475315456587943462782592090082611357087661697144166691829115540881787325804865841505564283658776254763743326821940383095868452837337875835451073043565366228225363831535345624443518901669617313652583741234105050332023155798177801160206399522468334810655733290926946221042306072558508582056899322478996353898368070241252049437639378448202811688948101633088385308989387111944925223988340218424742448744986911745482562346533526899493775392671962535286046591720687279338839721428477378489417547529303218481039283958092094022667363989923192175354863751251309061028798922402400553048130240127380206868712868009090062344133104607041389221559804067086299637190001299865280657547695970054393886888373690546196158580554334973414449823376010377802291828791311521507243187759027523746259749995736559500465144320511614659955639106919079354462021528758156873796755129626098537212521412645341522411812189678378220587958006739022983525695525819436490587604968991638534925536875537904804657157123662856345022385035711914434144038842328608132863717885436947321121786823916204743745395754811233278425969280923580545955087688962334435069336721730667912959271113370348321488360341191591582858071004479991786166041586609360964750928713316088551813886189611341430892115749239562967630852535735034155845965889135895542300198966279583323748108189157064995538320309024580583729342690622442410535600720075519275558850308322567758839130320467042299625267351170934547273079783587488905173858457374279596432254691217295917283836514682430109613449297726733722646221057175993509864660402180166208647469620156091664997105363477920932093739358605992665017365095542065989207842719179507818070241168049100295032785286227040561253688754918835996296396150027490645907700565532233291604778920918223304182974289336810184400949590520710628190222059677622897875958978252894760642642274910882118041781869758591751596920683836692363612499121761302695688908472067194055596276909673078656572883007705301830565284633479373850093983250135561778066227951139275090583072058147203795719350643428720051335543073257953361310348513166341271534984949694645601474368234455594114448409502281552606302433486149203692237941238882827581441782959084936042247222240008491565509446483951035398020584355789591163059536472981605215265850919963935725450423286239285146752438109806155772927676603682255853328543464874166092437734681813914176462319380765315181077951109135402828331237403777766716016550377527184028985347091135400346052264555037874397861080108161741033507663888269617900896201807849796981372528398833397796204539165827905312511740511669913581886077049958286703585023597627130333603130020078020035740150692621989758418624372586547569096400608944021251788370565505800341832002487046704859406969598040706926096416118532909937217258263832073630213595554408638974482423408385586936351129010724241882983715004958782633646941751548547424825553377354416987270904779714290036242652621329129722997687294251519147300072718567990598885933158864079435584510687600900588353074386197164753653890925461942671343165699753709092017687067588738360176468487467014149665296855156457782991780650275019893012453199623182442710026369399394332708612818644891440663442554076407395829727739897663000932209520163254026259687037793492054835650284087692677758191034610866291490661393381995411179775033736737410087711548815799762071870980073446754760664529658163626068078302665149700560223543315014383497409654866004971603238163939486647213497774539350815569444451755958217053394872871017783050362859443703257022616861052128319178689552389219392833297811013293721406591255819439544284887406584232343480363259106560608624158273818556284321940430079065433984718789914449986969392718694980696530982714233374709001067992788453784411915581246274491582787928405002850720184909993774932483935031689918212020271713796177008830451936648783847908217932805013338432476037832937386127247519776079827567278272905970941528700610510576853765415892791598630266104049982501068657809308815126277207076041328816761099268645468227215951998487385427169469789651423256615135132421312479025480435446464222517058554754082305754263231784392559130739287824063748087848035243747547478143573837360913418222141503619133910615796185498753535814925461991444571466198184055207366474113602568017939879083457702976566925124078019845682980725837270732918913703109644959161673819356805115932285871373865639284578524431471141092447447738487575283421004044631364733574499998334144911199029166782493884875913374555216804595752858136826378551397984663649868028418514715692355927125646184613080876667011782651335937594863920057943113388339528534193073897828046032483558238845730521958196136640331938073702745900649640566712788090437558477383003257724446412950277450578089808486975795532169885767204855585675546166204963473935768347701837279829737612540713321667059021787635902120071330756993105628597883221605696788259953208770474353056159539298458523929644599660343358677731234195076874483156248726612422065642187016939540705679352060843476633479102308083347695880511552532326682815477274720195784806679042810570043459461342934063685064417710959015860954996465469468598247405251455074840962379769464821894071656500774049972364050438069959354950267328129336240133961758080707078317959647309885879799670707200009365151244006071654711376882526530310682647444787055881719292284318350756264388366440750926183625842974604968313260386253279467616369199276151279218810702538328893618844474367321940893598570204816303535310387786360528526498272974262767774624765930259688989279275310937640165355203121875351379929665543721111547769052829990386151259332777909925097151556349783918963226275321529143371716664534645113949726637204807782101256405011745152112886759018330683890931620551233853987667653693682848994656444044798366304439257017708752900150015477109312151462345147113411232940347282191165851995065567662237639600674325950052863829007578598103572155085160090276943190811278640648105965172955065483454034848071588008931349021618579207416885398238694909222613299775296802913626872375610515496479041335556933917164069125297578536660398885596142857581863107593153608556403198841334334364470794861632387150366794948099918579796785767173075954129929337651240447454546997183284274882433228912332376993196328262778960128850658403741879970507452286797151521489358954830191331429088508358457795243345595153047185251385803630646846097467042879810932632697062427144107412200927549420917755215667182207339923077860676196627656720363841699844926157326989193157467121862709557025978578265092152807066908227896192062189118056494987740112088697596945392380700108344112630494656636245347677204172399635807095799572570336485472716989321768340565132245590970998655629766558104354737856572041071323379210918823862156196402522800402162664117864826939337170423703671284270535107592861747485350867569844861371071231955888906469625250696786454429259172212286776838258322790630240172952583803305414435972263956531942423382160785222796222616989101596301339043245762526923466457045093270091322866720507665921200462841289228793748709153466275342188518608450016290955251323961087580000834003573773605083159102010802883682537061865668853650736613076552417135956448754559103961820517030281034244713464349815630238117733179095405642514473076311683875069330367699223220084199037186403685031429618936468449129330278043971162826369929051614125492718215911119741096452637653292681794236461776696711420212348072283363321519132432917099016990696589545473635641169152752717094931812681830845934532471593183706457383328760138475837698555423767843405578337215192528070610784289068094679157824014145818597338805258888773210518710317681111602072896797375674413385491322780951081371643784328712474448387442427061723726005882059978614463676993758269118380555747600218387151864267170506218364461519199910201621593352734405744503381515376126085025581928370160476916451343798755790427232391267505970181199610053213503679713215946390484626385172134193352782621270247527859392654033880383460854928974490275894187416284168828782893438209348532295479229849516207146567010601097291415851727155929040413285503250361894812275684462049121679619261807837215759088342908812868403215830441750354642929883986842149682910543748827629316401373267743067541761775341486134379992777825377186889037325727509780986233663357851401668069738167210082689276668632186022418599851207739766890636066805555183012249262882742350227359299484860690425997186166084548359690330462058917666142962352564020342977332065982998790032436681703113570712508576325443023616618360731120688869800888706674237576387890844283441329781403833018819171666235804513392293308776135846177852733883149038761524048555551094516065678397410279201702221855878207594302093958584263502716043092176439098531068909527307973648175393627683186825078663513182491554067166157130906728903193095058612963242279881546618522326308421696453157668187994730461737039995311783139533102866692361718289758044359444593132335296130553256112264089058466548271953780005380274942924419584814706601195783928720251875524403646629546314026889308721657713053021047614158558115988400625981182174514514990806741022110516698160747279817587170039456260869591788760854766490717613882006434040198466358380976512023566662165094309697986250721015976471511260495842941659422184685830171897672272364151947635020180478372180293340810429118208385895688993278582060260668125601107630534010621747551025009834922814273830951001608847796055488664017395827260580009299579235179393713259467030201042522193498976018550787954906094181483795569329869073093150024658130782894487857519209352325963778244457377286701763789293127015297306096479973157885388228731750301120583019193904897506066967096450585528288418445397974171431940652044107173905722936174444884303242967927450504587736720523406284684433234736699808544161559045336232749913796238432788577782626780064522871730030377971560609761537475947034345188237211399307983874993139145254296493952931276133994483150444244409715414461526562701660465542279868106795999458930670435155142978484151225941809244776896034577025355841109234194918926119410057509576117271695920654941608287305065468354410678252255381737319938023200717461209735834554177986170430636435335963751977094978210200332031665125594446509799957083111405418878647959379361049110410861063470533156888815093912805313413439600808547600833316223901156404850638760056982652371125119257338388195025810960007097199172741796959163762138985811376797625182581778031126472450510184941429463951564077908796978968849145854614117830930813012113080027512194577890565959736993814827701337513433475774587741482982671377714573694590759949241405106353725387106848465208862649919671362120699381787436060468410034289264852748883160021293489962191978587376800805981199793010390706088578829708785910964665314628556312969462611167660630053762450440634548635547998694924302043472897211503371407643874991002181862450530101877254199469315180124252744017160145950407093243691526228547576749761575647306235652850469899263611653172029368868074921102253925506648916900450745344682379085260962343705470732379216065407621018295433744010208445694867027398359702304677335322024056177038601123793104090467154969836034444819219378630297157907343855347249381692479700237587470086290201678577211324046542153760406016033619923092487799633842095628495206642423321646531499592970544590221741479297246282581541113677740972870346063770683671066162418270331031395918406075977873415220663544036219171766210749784126587727154937654222855315079975178588543739221127365446627287869042853570251401068599500624010692042162377920195769579438834076880083809560916256708178728905598146597479965426126294943243920940939716045911925802894186694444703413630443725486553898233363947767544927020386354469996386958612241805306231968706798194539300979954875912311246057710833174517167351103866625564893756499475999549910127041517169073770945324618292218054317508148712958609671654034972393998757600112848291022519948782394628139984748028640779947207426753955056130165876541763679794407646059165886354097526506513527251795220038437288822810862387794452991736558218515968719661081768968274973867541509040676419350806273518454283030771699178299294089230870089743450927592054972123233198927661722683630220695833967195145962545475119215532462431993223927199931813835617504604101978120034139439802500717112053815352549313534508498697479407952167562003322324327985344823571905606159981341043693310421214924744676076227574693116203685799422535104653098033113360211316963344644807769394684268929086341336060677158957120284518625902432497158891273985030206255424182526742880333900847743197131135499409717527563678462793472978342348550195033995706976577388564071260846671386726076861283871556617808212878914393181637022389167334827830156082368693045053479094144017470063300559308393664067252730915846780408431434192830792674529784666896914007943404149001867498108021450574722547070771443913857122876702637300912154649650285462787892295589472322032368147717859346420039723044908191513392818715813444252055488820305828135323493804642119733821660063207595061360048929728264118988387505330694863273592462604120381156716301818555135905664876415556733186925445842304038064930700011646004615244796030107133622427869508935195767098277359110529141522761220740542611108715856105995696152953516264005069342431747897677722939271341178295812103338256859284864386461161182188281644310262245340725913680359898341263335854149432665098688123513100109374470721385346335603511666532638453404518137621839555220450720766213177495288859990987587184791387426118417055901567100409962845566102791385383170079258738022058902323646785103640217077048858998688949772110770396111968733871293908814642976564594968122480519927682298826599559152994076026778065043983624030670699264996494227995165333970540156296918399672268434558334698057619252117489708845693302206517238248971381751588221303036824790514694947962764814739704513267690999667549730261067011374030891948097604028633809136072380654944914833941689631541427287250083933678394750194730526066394384554511063775982569301030635031047922528034029818807048383174169681153643292574064014648719653565991019776002836140378140362927435043144651743442361141767747420456583045589312957061801167862482275193627229171813868010389383364674563157115239754230730833552465202043610314948328144844561374606974650072946866548386391938517978296800843193610369475450760203211287314431317663565557733108387883968404854605014949532023634258687289890562129257045960574281871875959979173549339714453414173847214402140186265233125574146868308506958666448405003447426102348192256203394185458971155447409467422021811898650088715970350619977718384451603382182772763052072483119186579805651620807481050740702718713459325936379802871192782564811080830530498695383966775382328076222527302665043108215824429324086070078301229796804666276943604988226975181514860220380394745391321876974819338877299323701571985810630190875206616446065349054093873862685961259135817857657351905804826739933604532072697135416412302485332223221088358964921860759216678190673908410743778676867746594995769239435939001955972289962041197591459316786803199135298696163716453951312999003017617483029133703536929671204470698562531236997186588644250940083190221780128601084851560509662979579201445135027388113125768461673521821172236617861267046677573510822488663220981896619309407929822770993664815211447012999177205575783645370528632964222040462602042371126850087838440488527911933937259402267719782295615590547699328050214918888528109073588258475648907035601130824360877326797207051049489133497074813369885926482827767538693216899421506930247071302517839008903907457112912174102445567540421659577758066469942471202367234942457361041255721019387205032982582814522480882290965068265059153097570757600507902974956052768757148541238818893963658171405420666777982135682547367537157008109220062367883051653261784858268073631974843000510213713860744421144830109808758564395613367707647736977947550189926478689930643582538843413846110457817569447194675730017110043665412400598794241833504987269876775763689044881064989538713332215446810948768934420009315948438814929536128666135804359764736604482792647924669091672454600529378755319696583451497023804257922157085990545559725610352446959552030186921188926977105728226781900782488873114807889378717209535963503540972108758074432787985000425157798211680421607042642786268368966141730481250533418958802184196624969348821371702093532036672656959334286564832572349164770213564744595531191839185284858628438532275007636991512486853460121634457855968139616513364687602761431342450815599664672529344043780048211457611214608633978313024034854228984333940343391051736786118525068820341122970097507054955276614139861126009937566975268744813227401474356406980541303680897519159962502442011311599501486057455154676385363146662896319208235854715384225255377978786484263389168695120179075649745575437060274836481594969061030980978881254612630279421215324740945749677425603579616429533097329761114509088136802612988845819638484149446928209314886955429372397382824229122769586319268129700056218676857796689998323272312682877343527542222213164311526585386667191773573583556831127817410037702834541914307718206998886189679928405638396722037387225688007374398200817225385770793619713261948221590216605325620656395669647574664126162865643709884514959809632253821665560811222122665728169386787221558117589453007615564927382765368911338701475981921939744994446257191739964369629065856597680847050866831223014727464941697462763931882549942331053369034959945563952425192820327305236478810086330659222964335827398092686869762875165346608195492713364649650246472916559585582721821761115905800202215466167252419621108035354802588547050347124420366372690639499149908075228998878851681336770404829198129822724730761023129724852016968523629949975196665415880632881210396977920904542109878104352533594943814153977939658435845108318612594757534695979277789296085118340603796153102100301436139704494692840677009617391677667786395776990048960179460039848832502714860934085866608176161722008916228999843545719255921893289436834133668547745998481074702833711004900062894685685852431262034979491585817710487669437868738001178611969777998740698066217307719768369085318912039743520093780177564637644001392306552511655927228424821997704371332907858575417521864146618448015076014529875098724506258293928243730435335328868965937435168291188285479663617364202802241114240542623076511273647228773576548227729303390272065133263896527797560574113576255474314058806502048590551234922477533195059344019370691995295192345876373122527619200749543414462110870138778333116402916343189226008942834526383027001232187299479865030767387186434113263241877644431930530608834255424684210512075638392516635353476559635006485453430201389363000789461113194978090003790522164685634077512639900169003455893550060167642385994579694737180285656137680760813870242770106509873090249820792543266168390158483163068096138786448225946068657832986739174123988558262417861301156963255007769596102880997133971689889498916808856531703884372172532623843706001148396397313065073227196461158693566685590281408408986039236889667739032421012660138239218526094038118571175532906261684216682230648525205623244440801280855726968663099489539143063012819369523422273420566472671935658026012752468642481604025481043018114373201727975216654501536518288144189248479850312406480419816799936854314952617326308841347088279682761887221556945468638470385004182456924618568609370774792974628454813279346954460580939644424961684628350196327330485233932168042380458794925867399814793015326534352262229305452543356959746664632423671898475421935156493869028483637270478353966153429783338889695649764148204436290092644863800756042388021205134333321035730131939767095139557976729348059151013801652437644961608549068354142877076464733593269763764678075702427877226179542555321906321194423385660239665412843103305058011910223065856943882668635602999367017022013738189580335528814119388723553397979801536426526230894921073068776999179202338325103670939794606879146931859499309561030300461895753235453836995236615802513561908299687307369806894579125501390630337883176566996110541838837230236832630869908232706814052681563926250701115346217755386796247293427705890580098061489734827149635508416564604978923523466382781337446303194600742624125964160858974766593973069467091817705701135361555501215663616821529754084180843212668774015322523268012186387929249096337554356257588311627361516273278617293411557667791893950919804397760795683603628751381556955101386625251311198240994924656178109906584962659693031823591419621359581984119605350674628369479744529537115099253190899247158301624061896902572705662361613319876381999989651773301231918644820267458698238102894616517936109120491735123226656099036448996625774989207718219884393758896282597293444871069737003382308218809200683676434774563031972121389333491138123125963061846328467890973703456506349528790375273718078568234373588628829361212441757557170999950795069474092673668712025983572061265394076851734593443931580698272610179040040713777003406699694428479356515710367240429732992937433557128044504118490609014405797439161638187876642371466449387569368505776804363866893470627521407488927313260290585004620439247549708310924156539602820593908800097212659291898683337731326815371138025653761576143980823847210574757590790690782135004515769373818996165666821028820735689905030299251025578935953348644932528275500724849350280441258497957793527877620125576630229372539431265102367331162959581022901016334080645340009487165017803609458039904628894463855818613632969701459430352416177881419277559337125674241127349162463942681862928354078213797710250272603710461785711351381327779302415441676383619955841501712853412940913229640429533323998765263092996205949871734188191735261413091822384262631007237524060515910879426425337120779071565892871500418320974452901667202319332197968216436875408530093083410218638819927899162552623840060363284378254194251210254673832374812679931749117911290941953209928058131730165932658075280114003708791567816792080282498818335492399892711526679701250584593744598336014539840251379619966006218113301108861233013219957823327520588240723661975078693571104035534323269228469033348317156401051852553261180922154802674235366219584767469104066729465155785750763808520927428757900446762722755617165444093731202199218371219080893241083530860419684762996270430962763475321380583682966976782468111629303627251510792088350185725614253234575763857461545425772560009347950757265064566612596683474162877404363005656941460361858220308591636081772081800630649415998488483179755542180589284806810512551438428697129635999624543192560841759002022734648624446482521462409181582012065936522400370834953137675991086468031959161058676541796495055089170273331938069952693019639144517465771107814594590841463038954348123437096377707708452322092803993493205312658583711905960885576605995643323282436327265616611269123188292588920697503918062783210465095598762847846415919345652513254927841431952117540540777938019736904142066298647389720561790982708267027222125138907946149135773404428828348551698140048710307366480440555818702168428887174783433908423302323950469287439675238363592300691440865776372664123230817666477659847042926613477110542619938912773409510504592542850276128043886025082146610476285418874573259105732525411463767063232548079381189147417815938212275857848363849773385882020064831171683048141618433380416046621067501167518152641796225986586750766002674408405096097065547097145344428546142791742002825435009772835857397054012521972915456412610814327115995243480003010881023384071600805511432670179053293684764058309996267935400704542310290779829112416493523446351795269639489297715176774807659682236276914848895460867126771483276192846587493567241563067735560200977274424041464220570312959667689236499628509805452502888958439058469598063739931082942904792136063623697831008239464110330384330492165757574173790259604433250576558448512190417419204055725507404141219916209319674558992625283363492502494772595316150901208503840908904711438892260037523280642037258292886631281716342634061261999834125688441852151549574740545332548722724402349722276150250452005413213807000527215259269137901633698370129896578102168217253548975454429360314524811755843092486033491385125643536787361052235951945476008502692635049471512558937634900838132430967663261466876820202313858665689092321899062391591076122717075001093304334946775819542440193453523147690438837974178680148974329730227267953536361506415668749212478362322542254804498521089218367636190092950673205439501552585522610472692177497210077991117218276632825887052455457135634790221449787350397757373650690309486776636399841775831571043680114724188182755838979288149000215082841700400959789466364165399863116348795373683959421390851272790933891435222874598700206957493018135029971922109556138597120080525075700801741133712848206872919854189443096645665364792160950439754712003523741058158893900478453489981071063621520073113519611407744557649444095387691455236410955947308015464926181121102526434619656021467542394573082881918078703935467615972081605797437127381623642890978586795504792422384150390717982527787994496980278013385143254880229818628763308966994166777096829956084723027256891999506305265503098801764731473339645116566696065713148999803425839175640948681253824113411530410001035708895389597943545334471380119821856479669622957522829336167154898493577189047343168624736120534653287389009707119064819227786244301311521051368990525156886321315026068016902432609927973788735793288073711801995163151025864183047736158389375854685302308815997152700441557076063288250730349440521212069560660724887690485486350852496637154191366149674699031235110434145533934367376154449107125496324795980751742902632976045174381062283058243577195337582253159386716992094195807590221482107608065678187321796521764132187876824399684074310363383516406224562461928156137412698275241704026268653351500067966534901960258147705158905655871760747881558313086221925275097192975957372899239288941804602506020544467055774758098843023750828392292937915729296695622358222602048678467028304782390832263508536135267186315767979672013937226608591194955934630044564695632902244015312628725251717334728849580770970205671909615153529560433377556678432860859088662737140840240202369311412090238218862058674383728527028412211375481868086749706529994710498102660247631158687163106150109860274917183965888987731619209293134164335904602869730901516196562935954972378762542922953919291378030620274612394277935406396861856160219347640419777961157194604842955675625169539920551971167264429763487821082641051815297721208454237133527837186252192746793073567255056887153521869568891022139910362443812308530745646030618174273165861948236859874011033969374403007193504455491725040640764233978877791775604262898113728157406398027683236104762949128202778567999951650787794086848145869198519846747794101977662480784235156054277699122211472124093664157360779922704681894336754985472813305191411100787711661055851161510032222894752238997528171521713334724207764318471304687923471561649584003197102147040121595645444185587184994966878081284159749787331382482078519057550900623258987765288258870627596802017588984627709317280525695650905629098587618037926426260793021171345903556467473519822186832253600331126962683992746123447231409054782687728863709957234603447030244460661958793904774745162352122439409164904150121945468146001317590166877379947355821948826845762187940446888081650506711531485262977698961624353662133779988565958123589652357022776476786486209471400097121895951495445005358767417290189980941457717511528904233013373818789737974169544754550935023465466311935202063045330093779588514237295325075293064942514572253546965865643268667258095894062863979564214922503805482593605270101775679147647903095426293666824639746718295788660454105871071367996690611527819749518799960526601334920484015305385136142316173104864266967750682869198016812622639218693044286200309562978439717070859811370985618562979855264379009565895490117129457654190190762162425055215878877403899320131385582367603144927951577020010307707955778961101041227846777645929918855378461951372671049099600014465883158768938135121633873581787683772189234469934107955696652968474449705493448392001292758765368332741333706545896501645706801682297833477681821837639312625923504586999119935841935605958767963200928620142498268940223080360517643973569687407879398705790982910999612011051342100413513127599340839132711622705721471779745461999418478012092629115985322639923386468120869711279213625123936154021516295836091754898618318067171219911134986957919115784956256988550584527387295293995084358782348856481341733427593422054435992260608990111586318795491709486251701635893078207849799130391895587889574409303159074358120701691671400057872734885724415554900217181056335774246960641417276157275506155385411973150007894923983476314889710707685220840616667934558698631376583821685767053955196864335481235313258300352082874305975075016744005365697313623486973951597420081089262796371865792166465050852441270091330264155717011747511607173252828437230573694179367919740739237509407946180456318618452991457172914246607853865048564859332007399766805895208056550314360933950268582603242869462555296205706611205930136658640745985993581484862223376741194363649220848296032010742317813029337222623946386119143047228448637648056773689382438566256335442062828396073029042788718480613899163179149674436339492195236844014714271114793855475364327855020779961448464043548832266333844361949521638683952204931736318112676254271671961720177754312576051313163116048343732455491718831864020016632907381897276098230355932982104645988517219833417739249025852147393160530201351670275474072373778767762276677146000820390353535478736411446391167805313268310471719734718138726334241075996016272722354829040594950572930466749875594532782711681889779770519374464506922772885132555054737362386719212168412441211863928377081966814684027442719018459922148837419501964515906411349129077467695114859565912287264938802686629132971930922218697186729671425722236140247412130715619228069761437772619727395078662204831067040354308410824118196828292769010326274095503387630135429870226877597802631491643741833748194790889681935642132182691951650938200478106976467686390593470463731886541721988367344213624485328244218668778921012755937451945479219323596188009866103702827073971434127340878791759591107025093129791749301732793302805848537258591902258754799819178874348530018570469338703936569896237855759713106667644012617133119628688510737040840486963530447050527608297771992620227680703988077620731664902608201643102123244506332668731211899843290887424680913537957591974092786669648146368104745086500919104394683836926295297686319595608421046943897897151849620339633300706600588923104199090988827555904382060193504554790920025209147899346311919092407414303717753627026894207404065072610201352938643456043045793788048341184695470767295278318719799649410291411575613614851894011550769453796595633875620162300927278246674628255679112293684940010239818290964716204133097739613871621685800229392681784429472848664642410532487624584202949411475184584793345732088784377540470220459497714534276499662463488476740888288273810505836950752172145015193627370214399088715550778415361582334604019960673102934180118381692706665979954806682107785977137419712520850336348123412797285486562928376661530772283548642514278166247217098407041318637421733610633297407670241334778883544492168816737052409764589903273727269107105694192943346238413405196055672518474104014467895433440648826251617443790409787957028953200965319243977960534062791642339380267720420176823643192311151500764244059992964560944296786178055126558809295994266331622119598830099501740250650306688924575702116254039634939113918369994718626883331698335248808328655405316616346148222603433964071587260287313548111794173668434669723700068853625248806557307566591799890283815226771830446739480675225801250672017692078864661076838457087676988744404203353370743218646298987342690132022072407529726396281527506467432998983321780417323160866382178848764493077071035317768801201382849012879918569484833440972322649639199383088458937257191509677314598066569138984619306000857963082894695206805057226835846523888175246232021753080586247848217434784828970913063354600889184366906321297403861054524828292232458597245362656138866404830392006695791840793779178185667264047371189308547144180246205018369325989573466943084543085729673097015842452494575214109654335856253607512515487703832308852938212835208055056366100346773703941131390698447782997329417678965496850837249882811542344804018822210807086348197166370180214536320088597686851887609128957283745269140807984287497382284057623711040319661266867794480430261345482003285750969689812696903758330838901091069814909059013008117094115606465840813660267657157014688422477900596309263656929585362877273288096712777216455400133711762549455574652667778945524642160461549589790589414821870752009712846401759083635196078092953825026223103208181250890580521699227075630852959194850275702012473362640427873740791369796491500975421673129347598531816967043357783577536815814434210388791522173252801243436247872448730180144033545297331347625939833013920740532922987578773068356682912012353391106913133927176075480544097253001787590985163323932162194714793887952313274299880350552972902799607955565795347196708748167443035337721482014630975324902481610232111101462243640484713212378967449776038140500763336727397362819513152609592162356198266858617787595222762435893225985633988080173444652922766019319823743322767320770041922099361912725197276097613233823702376370075735310861588700498344397332769018593102369986083110850129102692182068461663888741108344313214873609280076479740699424946513250247836124539121101586369413112703747014372156705083773625317981502408161074532684665883228507932145715879820930113639219224726296092951016810490188177848159434926281376045555040524173841815849011536924948512384494556732680830968476542879623183266222930512666878733411533214992752790620490109936851817458673552029406774870102563281426366159645913130610843469921452337975628680746635473911221052335003214079143967808382215170155294900620760088649026824379200073006830118808401617163049637131827259984227785451663908967790867756094958075183744301385103899270899129364800388539885080309837723223655546011724883084499526873253734971828308844651590486040355941843923465302779975302456690075550355534858699184957434361598430788825833199240647830040704330306424293266923216341095943468089662108202188151961726138413787383588669578960814528856820388083787439805326816226672686984005886357531909314211702118782409318120784666812771727222883673747598334602910275509360230850923460303942948327515413872357193864310758442642730918774370075523624342072996138286232762940465438229795030950796277692098367950598294044928588882939492644438089907993260701754233582718150804781933311940630139378382145377023408645587205265277472365665592006325632327404143835343026793799175480056069182555642219357066823154294344227116516695774258682379926852275899610282050866591062836809766216922093580600341669178429256155120068915189573432783329863034966021837736306325958840970146749288993946061428378529745005689218948470667932657945933482698158583351422201863114485373910377462411651385523600464697179045294135417390220578197927442107656511234067320956295987537325578768151129620356950793174634242100935791344645821231089283069256000728498209468421451262701163279633938896293011779411654387163642991481528017643781010416415662833461604684975023698954258190721696874983677936876644213448600544675595706741074804101620347693432119963284689886443931433118509871707330045314766814899743619952678367757260181603957808809914609312614310016817060112698200015633680071732111244623917702601828694966421139273458750089914018073565151098746331485144783495709345019502627380803761397946677268187896463949997645958614774328651006890656340384937934680971258226314369963463434227218648288717671632632867453115689385716472850783545992314248945926382889960632790551466545588299425986208106625088541427545281163849637885906650148338070196243716376494422757783315025403702378161237993462843855578804298010797041820011679830313483050131217070358012307089977985806125077918894027636512133228677199552181887373422912919054083964420943579143883789838080879476986090188214716910329018584819892414314167884967344864483012005922563609495044720971207619110855420807556203348175979088614665891338091442227593256471028045882581822316867979395409171160519679830726644631914683827329015296825511696119528944701815061071537695790460553644017306835070884559022014726109631214008729707432859524612122960391561190133478085677714019471938331599509230165789246336032958693371405850146343198348179088143156432440392508226230035200593842726794116106919574431125753108938207692043466034306698168742425658933808511711671160694772931558664951117484620006290854536063062653664391553721655408483254533539567819991729595860908809954359921612291599149344424081101791297989356296098630398289589817388432145301624671521336502834817972836545082066798075719372918109576675490634992751322626799577141956726135394815657762118650382392107104378561170976425408923891065993558292763787598165452403709944721472913288227829406793577354244631651482650150873581041511382237065210244770980101442244189885348237738417177571963461039939850228569423013867869330247629840765975576097259068280409509961434773481535201008515967589034836705210396825308328085757827580466063125557270475841889526219427271503921690043485457195871705491191527172211793238596783652748311091757149210696894766932724195375657739155705372717706902575172936424628346942620266982018173572661034206874916686600586893560892982509603677225737088465456592041744213266329803866954252241534633968195530545953887040036567888351590456000187418908995409133833441359172057453278777393817655131251810514937788062055941226395261974257500745506990457179906950055598919698381293183503899897921196324613010550234585992935783125314072787814528000049305507288426183438089692167307677495713539793216003140526383414426954661898123393891781129970033272151979539764101565238380593394259618883533828195963393633620007760206180774334566905856284980042468537912776827656875301212252010512778272482999964171437775607385904318179438655655542447183369482152850002311514805161898964771575712953199113142028207635475948440666296556667051989128438885426530257998164936460442858693188972035032601534474856688533505793352678781992468659691841544977519643913320436613676237004797603531542317843951278631589360017143917262072902881158054522963800947768969034763580251378419988278267020919223946643001894091353494126552416752087857952615377935657035265164999860718902312573622432648867894799596909409558745887813089410440121587582365650661761218586749860591248219984179863563535901092592129896191200973811046620791711043435258453022343488174006865253852531953574032295856905300172382921636018658548465623096200094036635428921612866183709082095388632523592713386775250161273954607397017671381175223874898994766838474627343492094887975210385376112342594824094592391021160031767157272877971303604478006652630998832158601225524903655087125994261709242878978376144882166213919681510183376667198165269343441712982982363655270505277071129274296175321018322922171023298670657686438855671631790945283963475243197400748173141545295051194026559123886912042756678114972946574991855560875469502671854817699670741124313347396055876236932575870678821624728422985680989738248529930432825168869873106496274881782227683608090110644293859512784762966285102262437868614825618351891889610193848363082836451222944812362425719843740127126903676132286416109574213087268981905164050047090739174562680114730235858527455307452473228649740936509890848944002520390708577871984693606370339773613150025600302839813381369517352011249258978338155855254620853394124472344637262830453370451101822032436066877628838228733913024231093035799471381544820505848814304662959662552315588246593858518714278206148001472909553304472403076615161094121139303947292340422398684319425642088195329161269333756107605215774144727623586561978276506943837883556278464604638484637219026669297996999706089145717164273265958842507902731680259888441824173569022638834501267595820466260333888056089761533150248307750291542951644857226407704465843039606377082226697658319705731348455274317189575053486556520396258108575915711260245049298192508755231544090411359091079343248267678792278355748601569695332825905432351330443117865976779053340176720757377319574880026515761220309918010473561974834582598637719098765977493086933419823052750400425646033161288159688324553590609540882407911642004965629575483720398601786536090363403353148816073371317977007124356178300466177283739956243794833180484952589162954921474864886653294037333207428990401061783930986098877175686542057205481533113435754906053366287200029498231456012205549449003866186280970310647716499218949543159126627436392995351457212090678334644695464335041062645775035275881951960317828568369098626980097870677772111854384029523217844831746082445868343205451498295413560980089831924412883768120999886605577198914782853680447273489790914701992216894134095246764635898354726765927613842101700370986691927593946993219745342515553007487250509059160162008620927138258282259887572755655239628595815444417438767341044514800033335247399283849372052967246308275201884952320625182836108883874487769730924253786379927176948520952392847853255482045146313776603035674682319653588495147910612382825203374120618497539241446958895421181590246945140771062456384921051557939568631244063171780084021052980007535245233980359482808547168629372363685238725506046858167836533648812397738205730288850514815165639540461942841077620599791641866167047933241851723242132742080173752505980317303483052141897257579687645209549814680607313206016855196590091804624743137422528631683693746568117777045174719145696531095695734846038404763439484239899915120633756137856995244474858160970647779840746327750090059074225099499631823226974562237406089131039810349932266533088540467739849575750837765371989858776862099495075364071775559450871447002533516909108692386517903785381403879834126006505914884933424840025890117111855629112461655728890094543109646780960322833171852968427705711082500543043059940553206567883730924308370916141365212348690740295463886526473598430843904871057373767444107304361127242063789011311010269557891362044773487932177087482731367864815881707094585228087180120200071861949037409237237866502593700689143355223449577900946507223213003737222746520482473424777748144663984261659816081332139803690188173820848386424761458625194910785075935367718186553414006840113090631258532236608044350556714026998682500196128526460849539005521395200612902096024304308019959897141134391237098513905640586718547815930028158735130188516832494246500956730988892957701548992297564151801715496866379379790011906894090500497630926025543456993441253498819246504900188974727591141349878968902206602495452797397583048985230274513705715775655393706204887850685784197755863552569070904690014554847906677461103263152558518060481142226706461957164608855277357330837428010147520722555812631130461731308161404123451765772250020418894051700381086778168675950169034628275318221440710632956742968774368185438027515850634165226760643207588592151991208585777433599306254758404248474757515357460375095108162525043078029486894675404661226673722496740430983803519143012200058885087131657793257537263769624391523620854191034831571657613399239604250357054742011294050781393613507494167685285537175383587861130914443854948315770331212232856753181802126567774346151535389128858957433206524437399182073929088318311850259997951179476305914155032865049033630087374478261303819711592296688707867221909019632026467692327915615738053806340771654854520331841999452830683655578279513803397745882339234757869506028489007357975646654333542548396211070273921964472740823880520442716801049452358436001959244905665681033836033149388443169946134355494759284006529007102846619161242542724479734627598009514588496562648893742131334379586777485312840378675856780322793799522266279521830199493937953253121463400676702956885312314109034992647599909078409390531187803633624134214773171941218158274877729728820997360687473793353006443192562731516171754005833869546359183802227868290385137393571830214278573728478472721137516380488911939634320456941614147460504858464290635737467080557280847796820145338333804310948870839231750213997328038168458451372749490235128387017781305482137195719138052513170551653912821851198580646152512914672753034729904523836543297131427478550026808879320536423324908656240839373114602250820067704041131445403093487045982101352522580374182290836511921838417957507938128019776306433767357655034266625588345123932519701553192522867453187257987222719866013004584038977679036234106655582586160503646966661639611409523218791267012947830600228737364142327427954102661974746357936902683602093319632638818142677512888105374385811455067665950942876680272348083509638861312356880111617883724100874047206059028906885254332514723491762107446491235920462492924678358354953996278128205221198331015268318940908338631713142709095241347009510056503006436391518238269033958258824547415720392328695240968804718582391568697261344229485964669842432902837034013480076130529315149834851081382458349026391185632228799594811978170125706680856746117814693347007570619858440963582311591104123785000648579026319656624755596139201632153333031378614400193455448309468902135882697106175775179819148296675384111503576575618363611425472056163088431799734994297957584665106550476443213687989617616751996864777923561034966196303915633612618477491181470163701262434878922965910665153383421627370182176356795041184676533849255852571514845263402736891183112586894697627811553182947773980137429987868814376761018972163976367816494356992351222996168438021832156595127970853864556511646889947370068730900574481074706716596167782891318306980042369886444933390986054666920431452165781043053469053019059640271796261644607081653261528316496822261297027118964885250720900763131526038148984514364202442479262976058767294022687663041219854082244027671287166689260358753795022657065605550049900686776664037333558787191402251735004168619333725851584227693926497080343359708451450084753962065254676521758409246233270380006526280929832235755933657288167507390081130510293890208180385132737572839074387450117503564560386799900132949238128031089736974864401728741248207878046440888889940186221692863712569372387563884912619150524629598110751801356001871517963853403902259942057488148343504270033486010123223645643004020461704556751180382318732129861660499516321638644880454779875106717622165554691886312782823185156994783864460565073969138407761486921871501280652206658158261495698194421019076614151676027384066412749759361933493078258949604480183467409199427304756997828719674095742220385812663748649825350277964396802530837949224166501769638712347681053405399204533404600224671894361807355894205864640717222763895742620157045718169859472708430589938241043714594067483049251479327811351403132961154581420086978865370944010600833953584813665745939471539738984708836884695295448078846342427242255014649926988579348189309479040339747882514223396646653161369546965447927283500667228544679117691895270507413981405230615198949479427827218759845068883854712940113416986293537949865072901570712192958060621552935979250786246779371357989702433575823695995982559269754162741461799766848425989304656489727557993224843037214829866282379555176234706212332384738786773972720169121713324797697047013329862422186105951694195344368686434319022830053805111121674306928053198551956032306544384793685078314044392782384828218571526617164091261429224436934347500477084433350703574429896864537711404322805548606426800587321101238957592077221702511241033525865872417671457944816930313008972385567895367036294674118131931213970851680686568799569735449394212140406855608288820811247704772619852678481546713444443238404704338096103049061100976589929704835583240846568558233239584926311149103683851569331095549556726699886988120531351684937838196199508262339486475181092693540297774325407535941636130122395815121124750635120113949885332176120409092498182219362879817585589183135440489328620718875918091430026521750905058934578880808532994143041113464399295067964907787419574857004904521445775585965292922154517073034857688552685629536483402237821530028219037856167507875766784590533685158078198939857540338083660569975776667544916244142090265649445441927402148482988438678878450507819791836045559394139896030646033648708841318195059063742748945182301977645051561870072031351583292604665568455932209305950034173068043760789297569771997345443343070818106534448061833408763264412427378363294542778302990859558725697180203743590178429445451259205229924059906772681651906415770068921886789092906356905599428690898210787938630998282632674078817468766710642265225979864761429397339095547723053870871741384060564953575476997827545678249897064579827004353832595832818264042342391658995951132552927949302898657425264004806097457861882370576114357689685187520504701620731635507691231433944369650671748940284275774593553178260079969371411290689106765348970910979397449489285682664626770950077067441680198983719002847319225752436840853907920796910967537447676318306404984999994071027299865245281261933643428579793472270763056106474679078157687935569460248921337241907152956391028746285938066096951448905274247850423521995341362161923322950823980923343962254074731517327460241935861086281632088258807197768436925708319381190785742250472450032969044612019128391310544661136833822071726157684512262452983199516845634725545475152955286682519310679156153849835277663354879359420995170062147985736585307627082542943713528005599148506832600410407360204394984102924737921759018001204214987260887592290105347404270500148074595005935340242314158099615782658416319275424213056630050264312835779334401598738212293134615189118138640768703623148389642654106598566092447889346527552919009105738282245453847542648997307303731848687057899653767747435038828509175756343777469709744756022866440795884069031638057215728119996132862539072693690120327383207527156956078884550297305204853739067486483228418680306456250886684274143043410808979459066035595482121776983948782853199192307909090629032600956899216037547272556619058181332659881263882019324784796946785031296027068739512067158911560414133967864770124541380855992053387626043701810446418038295177245849949152710904832877003079891748580958881429812819002572562687641442043161509392281920152057764979571238239181134794459924835434861162017538729997218856922564482311450624161569172715308124427826361313971514811881030411177038832464344550243956294742888024146818505043599812265349930539737179325762044769469847919851460080288936913447186043920327086177406326805283202891751558904130002216430236705351724779210402555741766445156197584010793712618323236935849208139110439317879658497140978795435594113937852838662214586747362311283315891485550367744807631281325813246830398243172313733539322784662270021821995059757114459739227095175916522873075359136416369988259765066032263744440249229592573222554257317815339352361266575047293807012949151237827143396204306397640369294590274037679343672580234175282293205345634262732822378770746034571520326122027715021022569076133804256269563258522475221656478203887234381292947629731303408540160779961928384956520299314978452280789346890465632236567198287394815154783734327883915666212088176368243897869973297235947724367784189543811238087982732562186399493248124210131555185178674393781122468834587497958354080786170081984440234481186063300313634782078135504967286214816793362203943754067856087162592210935182231106547319102844297246160674745223993754396396308654923732507513539398956807537201150576071689801811030574070002864158890467037266201567469147838659710139998097711201598562813131076152965016662550972817352396340549114116094707387020645914140508711183660473342969814829173893383340565174418766125856412446026745032338408022581453760384066844889775163075474362612243079098610528770774709904290821683861965449063671724918717264627035481400341562779523158462336593908404230504936861316909417974825820315754896347434501746906725824002634243149543730577488316724924703080560750062514603928716706208442436613467680960019374080867134217342704573784597209258348996917137912920667837744380147622342723443016991551791493200227001524328046559397072192574790801272730187181171881866004359712262927959461053025928043837212091851170822324540589469349726101751938137739420649958244044446740882149864879321266251484323400224371570601933899991015841834949959311288883355111829135178875229017177464120037528638637776282326444181735352882344342606737317291607005080022519178977667816391681004387560478437950579406406639998061530627640610601022497451348495720107927922069240253815939336448465749370565839214302418649362313406796098679179312238080123099912645355339091729687113616151148810920406807015117566232427246845309671919918510462000916545925606969160213081831415984276694218371736949986321463709073839741407169300074410507131482511754869791213583611474101096136860463791801487221673407757364783536127584065757507853015767518280373772363418162183497069258021345305510301334031374528470151747987911998545108794806819684997184054812027789145362795806340002660425726847957910834731803236701251593343402033370806590609099521897531670251334290864349783664722482018256381816909983121506474326425013711777703884421638216962124569492327822013641114666405503971288340290337947897907765259591141497911017881572245186766677949794286016842824264107135189961528853478903317118442638916792212084255503692511421053943951702407899275552101809747753318853329307431589398159122615029552735973817685624627717353502142587353280742417104077925207722136881206093808074071691564507597263113264435973357148994616875725856053501393580986115385578410317914903337415171176170953583392181755260248169680825906869853744990589577408910214941376475103080474479364748051211086602929450159701717549405943664929845989022388021047666128301756359747705482480530643333131048886887440586010113986081085562622205516204616869504276198138553434613916552096342989484528527186907229684690281072174447951744505128034841173383723311970472027713663120481106239376685814352347271535260277832926495384860118738395483387975578923305836452475010185107583095082476315809201924782644690675151835828780716581965981038305390825745244778693683183919439501785790791184411506642243821399285498658527103834334257677957310196078627330865003500098887759487738186818461819423307317787068298586862500334380121409235707320680570010236473270016010487722218437504188678350768588602777004605709017976215745554772317181224277768898333515900544911526569150095154486030138870854325685065183152925977828393926529383950166884538189681667886636278503407004705125085512433496627197155375446710065182204220470614295997410314121092359640763499703419089394001614946410704599018648834430818907015380517051956819603963453309521295080637980397310483859851879206306455938459646859586791081662054220638795645207921279385534420340312793683782823277281203122036219617491340182020500334662603354226789935061169985244487593780494093209415921901343246401331833836464098316453736955238007171597797669638536664667564246304952519813744738058807171066126422825727244789204242844622263324457529367575507650187170112745742451195958112981139591295891404167676278964202263018516393821584609970146698738345416162590932311690992628654013321220901267601401591781386844951550524581315228667413740911309474388916453736913747453946989206233683629318710269536196652736827103596277341993651814709827493266170531422813343725511560075368603024910477827708220802921943667631345620581582789329660902425327951485930857291856340408072997579888808575743248142324889862110678233723129053461883271244230223351247595390104479721492689831033690597218328648484192209407363208295633160960710829403561659304944501133309926117571265549451423068839453686362929353999232593303500961653084332430034387134487252478014240142795425029329014028811208310969688918886057293891850256520385448578134855750408149080383636727632900885772074640600172766138453644642363411106574468046338683065410830267237737078849843794367679013894225658557752560449545454355715487445709070822272507765688009403758715439971958945524799586508010594743494281508092078782255562464793721927622286554348125859769966214095857733221055504385122379311885874402345129911646876336758394958575279981922609175443570964268170819986931946415060935374956901282490736780199398935575989225513857857032415623755556006896709913286838428487532813689370939473549534346868112072327483856641395078790147511863439208272311406009179274740396345074295673900949771244225260886922960114693933359986003132784783116643314379692816099464042290415308935794648962114458752401549977962608374253556293590033970733192982558484164272324579831567138719724264468686001392284708650547563702462359927110407947746389438258221528966308767757139852145624997556791016339993512514733600307218021488197859644518696713078856882561946911390583380986404679858193221200841321871962689446724524516160506764726080312419147019544767809958323508003348918861900487963600199624190415350587553901865744162489282565925015610407294732956397533174068903405443688206203290968591210350831862426027913901872781488242248265712249369753013301733454252986880925529704746524704131178244319908817022724280082997678739758333090443917758848964969534625342097953163361776533118270685276735854636935041353408177766350225885558487220534605801910685272109379177948672320693570647420969441165134402546423723673562407099083759651208386714557021894758279109996451519652279898795450627234088877888022422992880877078274039321408196954963494580094233247172271350381662387814814308709816816805200419775308792428984487405404047517634641978927295166174717766441122190191379882302025526410515808937485877837513710091623234367428405023259459787387695545684091107311908629134584334800747386554243897179459155537142683145841502577031564678442283237014403918023725281924416342521320240950863229198548791230540581842442336957325751704949611490677481694564594767707353565439661040484421267044808585344081525187006193835284909000670528182789261357712903445697754816761340139240633406388985013871350543348166420496215417631613418033765340388271888316140590503936108478652298837246662183129871740462851855515368203492901941795569863620783967245876226147696879818475956481382703162122334294147224661991275931933549391399595634068625396768344827117284607628586280028517712914673224797261442126735064839193882214081497176093101204574563498967632725093529290106760105073089299647220996073949398734630817726753051169524220503626921015709445115416916561744236446450640750926243567804746644318483365212770756853005650736059868266917026712692521444298548678065736230916907755245635498307411932777345792873460625109700700207720500120972207069487476146631364005682926266637313421653141990568694756571718571165018724085239492564111156196017177008144164302856997355840089869895623774727723211821093924660428057513921533063896747548786621182493415500705221435509499076923758178878525248990302502187635540678268303072792910772441845950011635483214410908670828348390071444452250109939004517040287440159898348125846043840485044222330941847098178595809285642643128550579137533746163594790185402777364225982844858577316171696784424059397661921224131708365431588424340270893664764297160892612102910687177785652678584831984092550640403965922330044403903889442855373909757492660726576545898474641555529575358293983481282890688661597328697506943136399084306692268039818569590906780581161772178144434781394772026470003537247923195921058062801739812489491412207442640032155001500706303079738285721357884071723889714331924042924499205554353996995011123843765332320017573628509684958341506126330330655884269272549565840317546747870957254989226671143245002616729444779964698019539422348547321177238198611790825598369090905806124042770668986531803884433815710983745194246775552627417063472377285157376219961163730571623944326667705650506664395917186770362472332042541359937750612537534177410771974473959149332040115441325784242586733094697962857723340782208894454415588400489103874291180695937061419128710032312091719838225776572621841148627605097661966881496451112257743645016650554562289603167610493911557913739604701526600091254672147110912979205588594997739707856077031434714359721559409074692465406347076041471668788605033117366291257680955088739228440824973405707338730999929235908511814413990007518925006245495613628103145652588305175136848653670266170864456066668031928522797096224412594782886718011880747689957696242837713971477285201140113575537861721781585533660973233397682722559134432736857364532033995449620973012175712460420425246925792565238571605395073162400229433269132560808844722329254266737771950051012470161289589436828012419513800625331656518392051517354873124824864776669217226572848645608133757956844884077973424189223333096927246643403650796184093678673640339062630268896053451243098528518920147597019507187865047139527798494725533631857834807317696993871062369732105803458140711732301298076731871606516676304445653021234560051586461829984599539623787070506757674071660212771945323608255757538153703184071326790922011286616534611981987551427108006585559518149988137743452324371720444950786863869328508571718101783993813070098226832264822605162284341273760265139833798435100501132296605448977198943610029094885828168351902749546803709786480157444398929964921275422952731420184111298850674482940495370611513169297951789624132799603960641611210985086831768471260530595673813338659179310308932270791314252562021228854669034950401239102604533014300511633488741825127190176749461497386318806102316748209333997553876005322080332732001790682605456812902264634155767706441332755995820145207182451178796678586336780776041685364238681734743238389218754988327702950998496740945419594503553635417656251264057992550002862063932837849832924466696957700394353713093208363119713228930544428732807965440379215856858048638060164620163281186555768020425774302990120626184257294290970485754503241092949057320164057217578142537617585735676957106609069968278510096904097014875037442557395534929034267384611101322294627690943718719031433079627178980996476742659659181920290894993939898373435250439016223430197257952093900500429490028466664685114452511741442002505518703239931445647268159978415258994338803569087731606895668894092045170584836455390785740519660895917873176796731226274393971114200720084366924884082489752606559211143564323484892197924957172938413479611505402101411356637202181979344300440583920700946676171993542460871035518094971497861925042193895192532328452135880789877480141467911760171943100168415118216947934034217409305572044165260718750712241463047833754068109412797461771168606399989947438513747107654261516404160796393708606604875774444354027091035225642752212256403309576310446886543153846789302871279276301648875911573471429530500636887519554397588282076912593701169495971841255200258697062737531093676821769785525073001551843382911527483026508831708256202909054035170990044539151967352504976515510133591671389637266849175864581364211460994072202716118331161211732204874872969301741563604117455224842114803774356561785019209685432381865907954686312054933899819876469111202075696925096480578957689974156823305464043554818994136628592045931769173935556280818689007810504161760780160275158853937905817024778359206884383755192265991536779692828650199319796893985221081713675892316935766430825266773698239047950506128440543503333999612663539193391091043848615537152268352326159159220763779243234212225803448436020771956902395905534037130382917116436208972330921798803839022757725323197789036779430907255201860031471103613780022358260341794941715273275781512987660634366235096712766950350839961671007277048516435781408587741228876501085679560572773737054759297762101466817391013921176456592299420520843174401663600807601012820652572335307003643294929688799019920869248032562045920630245950006976895038439737061481892078481778775985127399445275115168173772822265243831117701166331716101078214882522692613814207633994007476449020172262726459770230038943519653052730979347011509507378200891533242927158136746460460003460830026526835343814232245710738429686322160353462001907725768732626570750370756083600832700626540643303587451089535895967271770726392713151855463104930782715213829150685761014159188000078960798119963031570551763739155383146644195841188047763515014785426224995708903458791538435826956285968711096140941582344481026727347931339520446086691788375816743626526013460891055991766477889673912146974763593198876368328475852326406529089094180226063856230332443994376154230737461780512019425513946065095778779806513849311214106287423265718467380231320848126023920157177977232590398409959596260622531609200326190161946474572173914826670701519431761834670802476949259839850264897368552475656075395901465025175250139341470989263555576190091986327550692422332839503959866712350036844801376077447983718207795322016996477269650498896725810566696910286015146926502052416145846532024649375515030489571118235476930146214618791108589088902304938077710301963644792201263007546739965750664260761314915992303542028914166139606419129042012137460827831850883272419502603122124732937919976255487929935080045040720353248122312830542912020731760589046715249348098481289529228382149934994336093484402294805488107058072915647862719709850416907628454897697198471970516725326184884678966021002326318064674541676885061324013571649692307401386026148976732076798529588858221529511069716733349781321116991384240356690897534812387983116803676705552418751502405887946330361522931423176449886522234785503118188771086225053477330395201002997145795870526185409919377385071933894773029323837772855366341610783890028286205709571735748766884104789106017364497818505611981836502080546036085460282502974935543557970482874761059757926069627376634516532032791969388659154518233200077110156554454608960434819415676621908563136407861090064050292731687784918584177462171063091498998872383232018387594540075189121712758392030619334994296909655804796404991564397967322328090571090994362235957850683796416767101428769932601480862439563592457194836738704553954094624413172926872360237376033722682523276758872703476735753575355488619365105685747834246540060964048540537692608422055030708992937232633108507672149303554295575463827499930289434633199900381858571893432892724349490369769960639858430299821338724592419809318424043367559340886158891627977352783316381080175233124089419245938478066324018809821110682830396944194218365111719284838273816357152590146772475653813161902963634411402953425208906292062112454219657219275942794840126700674242929994394828101602659305863530821007006501616097829226440835222192922064107355826717819175982351672317508039075982397414309281273900795653011173175466405210608445445380920524509162939261118597170028759668926242663894312338435012899069185769425191079557130752185218348735227365304618003617663378099084267519257112975686557911178569167112155424559425819856232194398704642000762549118820865446761708283693696972920272073766740993966903194355262745059549592112764651639704140618188547973559692701724183787185825182702975292230251222658600623123656971232029425614607983690544974458056921155004327128001080452101721862362642283077546090322972737088661037076004953972388833020625048607236399816473911241374085869973965042649110137178461241782133709962392706980453465854176416243115096395461694798724745876635030064242292463775531413243466683952609519513420928906773895868103408814543550715598654676776608821454253213452071380446669801553871710619382740751050339658530560880797139509640669645055315304813713020543114117608085774199837859910235754768586367534410425577177360762953640282325629372766706651838970770563668684721667186898320552092858119695598560977226406435257314646370229695874623970431150746633679493885891718972264289787484417671838576081229294675051582786781487984806022791182910032820570242941083483838116111543676805180107886177165737913378189723564693847498583656932825530022674702232313561327860464428434527594829997520942424769199089395757098738814896726041749939282234789029872801473754363287737689214165634418453417097129501971425305621613618351651342954186416046642638766982896600666506260170856177626353583511839187491730471967787504638619841499659280046068239710903253793902342525876017613374134344872847409271730487939405748356315403832662911161236926211338471444769621085505226342045980706824198293634769204324516441604094149375819208278214276893239177954850656736941785690257383777928940969544260470378292548358058601843273234755674980736628787477521813184931172700000517134612763752714024817752358831417268099784606779857346419187873827677171671909920829996941023469019818267307962879898967920008337191485051757557903614640817227671752195481398615499781292785509106368043621953097809806201525495884338711398673526014071148160135255684216460046050301451296103887416119426712496727151443424877301719078794009801446563715911117620447937906668301813729674220651309401191395316755933730302160892668231272793568105587248774360947837809109274224995092274969434243060977036709997335433610698462283826226676183405390638479155720466686529555216538390262579976274166104818198461735056358799384731687979958191679607586035054599484898353808472863309609211435072311760953762025531886120058075574543795432244251314864124734307518825015928787179787968352737403490472883887249481085006139394037921911944076923849212188017536247553186729933025921101272760344591644313006909783086148087728281021172481925778332601255461127665638328037221360584374693505763203746895323252658878910110462687447447150683739478659757289629295518825700179827672722543970566518235796448696769220870358425910690239213731837124165648533962175845891108528413133522487601215155299821112605630468501459152136282739050629973574180686713337949183444431186403180403049049427454524398589194269891649200762589297109873240531121973379025917227895883093240999076878860448688659864347742334589945350209539010167649433296365599199800094704454920175460483940671915038873091152900674336426702729996141544768493791273892910751609295824625534376849482968436899799292716638537669989902748507416467795667587541625805697356327067323692093427940073374672421191563926278615482059060491213381453001871425299354033018326477650496704966920349149207353604006404967959058011449062026975013335329784775668714147793327762025616335975619841999665416855186766405045001414965526856041066346149178575955005254024480776940581235694429676585780957690789719566501208832643965140796576140468526009138998926150189152146269822578998550664298556049783574705447555329303345544397967564398344523828605875891878464511976745202021904332884427648019427696733980134257392719836727029247440614068185098967867632488611606383773903625998992904026927083182059663861307867873208598651212766975477749928582195018426782443947862551908530408903577316470282418976405988898654736799015190862087755136947787453007995034437016912196421597390289514228342727688615305183892829380002021162358171349289646985098831537360422103657330358923099913600452235365035085062076740928785752273797432708917152441139645912398824109901657904104550435319952665029952951063309591557248388772827416656270201295199094741920676652848960807399923331467217004688535020426226074906159079399091741223276646226338054129294578161763486433877922786971689259133284191798562027611444750504299736882133930055556048505060543775601453763728007677784349690457992796647902435161486432942613062124813644536197255338495835541594415831546423691523348379056273563365042354581606766655282771667485610177342918047961209056016920032343208431149371663497464861663842712612245532476562169647238570096193290567504050758448355098036719291246532764729632021917728652393908646530209154272239008720070503041986528783433458153520268725221579459678612878363113555942051362336036942740912520643721335100631478808273185220359467240375744193192253469605935043302980071840852718165576350143496026816041136436896477888455217263495392322350641929988059881636749772900466436981555808901562369515239800795611423689782490297037969922476592835755663148103988325588610630960922641055183854000818751847754644730181080562849810811504959024573663788342247031993956236030579774169944061216756119038141280410169622329047476328648948189340300244810463724869061024567904176388707584758546603196014895529657298757921536527591747280799602455534106401963753535228720717344335756356022206197974969165458142127723226530528509739106003603679940946600248689279494302032591780567354420008589655675789886491863929495901339415005700792517457640365434873296750002931870087902672069329180385596939391174314999409699911933252627735450212820857761007282133235780984461457667695744344204153793219594068540849824033062082411551618796722929343250613913818744320511927974938068806594674495419609398088457313272006346415017961864658264019259386868981579570024005445655017585272812097997527362835693180161352288716695210571581134324439064549749781416767022288858225332785104294158240885523027326291675835594911421609744550590377180665664438789683401770358367213364526017148890327151157587606803390674997435406596132509060746041662821829300948347719743675750170473544986260499628989506182345679039469161982616173650582751156217646688558420891315434707039160467846040964593384360917502555516108550895654603413890230623320394993717385721466454638939002078744450468589436738527466300173406856075613682939149212039224507592906236492462483149884650468059785940398318692641861335192423058287947563708302882621009739603942456775794815608902843745523901544527187766938496805671992506809204540727363810382776951813619531473131006288418653082208686901823393898711781805607568454396314186362795901517279940709217291318753445566815395299224016768197182352600782781238656252459347295874570646125966634179138037437804155022066494809822423424162793540697383022516705092791696923262296444972243683461099803540842130207935996973797641834638149817967791145332782798579015259885206779216131347078342487000313692132418200264909015532776123978985989383165589395292176680343931278423832148679780329771401095354897328656811879112052028673411218037130216198686407193433996128535967125874099787440805519920249185132042840649448671979388011747785677908280212623821898605716454616342480660644470195545621864149712278903176585053068528202311611849413484978296459202936336883976941199543689964872300610426602891946229754883623536511987124975489252504434086261401852663554276935292026168797124884467881307479391934940678315422822232175827943556802103499799098434721526278093634803218551644982375066691026043863688208053468197636700855383625471012025788129962633882265239814071879508496471529263871143877092869630205853077146085218233643176639056796854184841707441034259169780820206356097944389569424921430891684771488841127248267154784458590166122575125885337637693603474784613125979093308110753156142920754726663171025803948319800274977248869254708125433203285205974730213250914459879125478833486608900935327328265814034456978889973619962475215217194895413154107060578670076948364526821462736724014809672181935775280543034224738984114683845507390695020013172484981350462272895804253678472466862498419860031658890135158865985262239078697277260528903368926434785629486468619024559979054564976117132461911063560533206882683445988074282513092425351202252697141700285532394838089388641525708102389335372966875110283659686283015827756446733947872172702513373154112783981943627192977388289485881949236160397575901706933504023096999147198656978635248369678752507110215031136703215360407708937216330172703294646695680628050416703246583836587957388433320438157209699200477135388183550866987578326210260163159020772885871303297639120462123061109269914531813290940566247885493662554725121486806121968169148264466666477878622559536533717888487591964741314490152533423232750605777970130359290152062968198060810255120947934762555790047873279107812607129967769497354485912459327673326031360457981790797298335784618035235422946279556376554116840439375263116020739085610903158485071020400857388808211934353338098582752740443943944792533049220573425003223059058529140792609215475646881863454078414601210729405189256591035843831061113959323185073212067620439573326570170113382495036819066932636575282214543736080153048309607488872132628440774149974102959089359571052040287695298960720256585370851167849057643145836826138380679729251002832382580004546293136831685601164588252723660781025201611908404958050919902840241013034839809463858776481568060934681948480558883720263644558325211325666110542403206312452756405152513054982559079090205152118266297932255043777074854282252844680980396124152917485603492639914515638588653938333654623792951127380976593799259217060319327932891389352348781165508920755248923287359423056259395616382538914102480833668433646517628763618210875788731753517167275032435613828573644880222113560354772700878630376212742490763018606115157517741582217977220141580078572996965851290772607848047482762344697122090538661449057708697957836503807514471158207439544977415173364646590614001262214510622643169085937476804405878057631523186646763534616259624522093541719697152310709060810733061359168816857243484478523538701934096118533649067109628926820328711642206509035683445986325490776000718106909449317575644895051557091362132735589885950816313273547613860897783580382942802076881203564063248090127537201432225649255599329306630770224779853363318254503293758858028472587192126275126684620721124229075936180898671717364043535829554962134714244471471208282425521093186566117176781715257476817118981923132514380493681644012248552465661584866375536121699808392571742117428123085623616099237088179320476262379081503242639540818383816197303385164145952147892428263200337827175733916612582370516766116394730838300050509897493692892531918120228598788225315900103191847410051902671837119567517998610789736340205691660311213959403004928733414199398467718603617019757833236326836332923282611837281786119192257081845569727301511368276468141521724994323002735860625441734125214962380108673264214794139192162980598501011914894285380494042567422132408556740367307697132128016272058955107875936792486403956315091901785583743038477898185392527051236164194822682640974543430392201962129214769804616434785326923526068384565752915350390743977677238602444251989797371509178344039944005036849506232804645790004289030558963297361853642357236441637039989390079552532474075357153932983208543706401831408761178175203862765854485027812526954679494139028088097194920586008988761279971238365727581379321140000279786575660965783489267425056332977366553286569185891450611011234508316349264370506814161789725202282159777618902525571401467358769409696414450515661085935057027375999423253839254570292035527527321962971436654165986554550857168335069597099388618162425367771046416748244103342599555816097648422363885117643607830992952523438680454180569870633441157950607525705195345367346746966467461189175684790357573531875189723620596145312863169658706336470624182286701127790050702507217963698837467237495243202425085626295698065462812553008499259947558235745188830254107077987676023442798833431112022333342417540534744650129565960142891857632937939861346766504376642378294019072675287043885261674204890334426753964395029298212223987730941282597029626060745252942489019794499616569180898184870472908214229726037387556071345281182722100409168998394098125633567499002192115198559302783671532464183245743715553757254393563347285450301083092473764083203550672206010946712683974038425542181191460927606923638389872123999098215086490468935919006226473445687343972579147023337221521535696338784324513448466563925429939134949104691031308167081177350668439551701667313454089709824947384172988499537399396258087763223109349877798326787867915810640180289804050856518803078236642006581229266404312658810709777925378648292739317106959396874163754296160037075152330078614406989068473289149131116874760051009814101271195219439501135355732374380350795330907323017011749194037763755489218461006059054219315687394322199994992083452283200980833674807945478922093806283263266178992720538760823722756656452786893461580314983520994152850176305242743643081766405420212617058860699093998517457856823846042175744654889629842010502714957866868843520166948629882921587797470896592851748159727491932053506133317682251117774249897587305483847132753516845024914837035933907565930793117720496564185020795423865306618330289627673700232669731147235853444043785981156045450312766061686263667480896008755996200331868135973000779706326492314645770317676204904588819472684876127617425918251528638487774667044739052751248643188061174569849420994509998596163080404656100181460943547019906430697157744877142100407548905783454956213416126558660749683206636908922219014465995357864863064528737214436591897886404801617928529207728621650389575983536888997790372143906582755221014351940490828194785334780986430544023841463465928620716841375165157647764139608013497768829290854981598463480514992187668470792952511729808866433866175322734533673968868153046286648991156133174380781614759890095861898755111635988300623834353752867937879872315885364225400487914297112246341560258769719264750388228777240929587987215663919343424609196339295629843976255683381423417062623810432031849461327144974300441599139032311989730941768034596880522220350783621822254562333454942947974100723638500099269124644869270801502162173962666412138155631965841323617723485643381864822314015334056471155435730249623263672927790403443739745585952616050507166889571799731934534134981473910492938689811943368197379900754797079397942931039340079415387283272159582053790550155679851341626132714908907575582127247011795957899431024578508666372883256528768279848995883130713693945628490171938278565735708061938486845623380881135868345605516775818418595722141040120264946212539186088746607093895024996169526457990436790808603082239133987493385801446815098365892005087173794745142563222976522158507578722140408485809950450405828464708285066120313867830064713777083391071884127778521943215458009595462950165503096212489090744153017292842930945929519398223276432873743066774324265113925659789994416350363877560899234587088325039108921029677382668192424737809429923700132116159695172185094567472899862177660151882969322791466356751538813950838856314698205950345711197256835144608111947688525580306038526489709973306464168979159747774828476511573007690364300143469971766401483485593697650435956236718742769222254295833194233979536042102401854854958370856245967154690810798352185588432612228767615455712294373763947823628906060865485955259781023871707992545863760931680659476622842946091153334767864624851268504745913968101198462802725516810960342428155928353416482166111715339218456906724553704029436377079647067206343181573952256148968917990422120956121970605686837599261910851429897836596016993085232955323456703111326972929861970311926996379154645252702612562866628807348915192882824841290839074054922645597946096122008925152238608070441753576472610046459491068169834920024977179577433625794530595386671237453037574896788855818320017059683680918663692800304543170644142588911765833798095253434505886046065541015901522948723489402949803686005813452308630686508932727124176433117456702914826723524789194820625713490459969996710979167845005323802476140290820488500849157337886759427167630258851490688998506173488534979734024538522017052395845560419099353430952482806930836916346902803275646295561788215279422553542137052620543937658748634873488145107505629028325350946490181246906735528745352052813365836937216187258061613060204137213460933542279668615434223764897989544596793954648365175594485638987661805059070661375374554027472489384480620734558753618785440628826821749401174180900730889977227117972058616281163078040385401132806153811508723651707963696252850275040834036183909468954826767484192396661977164785948997418598309971717125914501840671444134483666277927646916319978529601342724954112418592450867030129299478764241659101990215026698750358222392320519161783754804317795501372920836931723549692116830275544602355024875971433135518952233002109244451795156888506985152527332849584390289463315072388873546514454311843606547777205989861134065871748873715052119429097352457079123445268576003856261826918027602060718281613758014251423998980778222702260244613353129029353019954972327461727049503543747038633460890809992315658005230498227842245833143598619945048235281614444290358069474555526777185398910366886061192302980617611355184489667638866157728009991672653477228870456772847428556876957856345648500303119184130568240460172629219513168036563252720943349715907085429230479510844341710679318727363305036602292364922843337020581546499107615026788197042874645184245790268801265486914136098988699435505568786683383897249661126803288602141996270873427283538848219239246206619107418412169092486449834676947162301959085773933098758228805411700295227956359638858275989212003417035348881266546707241922578243797488587635340006440403125892688442022292524945735551846860552813628271170066668874166480399655704777971534448869299129862255020012710826419563073058833950115056665012539970428182657707502336660120674561939057718341444902396510183626720540030225350121529972086353016798236883607279265183014997671522572046483828493822776210089245441369921389551247093340670673687928030508442728391147716177324951070415866840072715342429178230552332863531351831420299783607462832182467688637238291228169722497524974691199187436171398803261883545067045598892442574470980369885219061768144491855023051500338186011025050615962754160379599374738652816038267023186421078573391992708635720484731638311233847872865751341250097549135635150340228373448967438623260263969476640101358749594697663126217500665281203763754365945016148144027402632528763371731405361656345142690038530430938502099117663170879038683228186288882428818593761291579125807596885560412354920237386454561762126152422485833403162092068715425382386734544801714491655989122141837718486233436392671326106298001491950873425591099668325803008046406769967089879977461089547094098692159762806227483659823974648407110296924361792752423659486167690142092109203094098407556519955842584066660007354883234635789630192517436599029612824649448531455247687373397022472506719730718602693290319643576311783328433497457925697530515056446715518469372787195927002451094686898986653015472833419820684811620306936464941894912984900379142873914392136005548650207311678840032892134634762748907645524964869251786796896582538810851699877700354894705558078756825347393425244775456429022201076657825862613794775799584766814222696987810680885913477374642533016426809868033549112054994370936482696083460417955466999040542552285523363968544547328028399435631468332598775368179184324609388149423857759700782918994718671097254567368326249902727379127168824069507540370360896783235934225517314094695500648695370825625886268118336556246538060652697856774247990571981724993477543911762084033399573296542466905269004514313969052090026800558233550186098674351126505037670452497416089246324202038184052214617485177942634501706086964393846267816767074537324775111286268455849673956481059261806835970281852183900051353896474648509344990736888360162042783913164978735567689158831080329667606431990504828808573316345088199749184585027608489848275524981521699666535322056821924713270904434693288691970019199401799107773014340441504111889971263923043529271095886573688332878218894222581335344303648321989686984065889336088060767433989989428489240776194964431205921252891095637701693306830538255497581573456412578286296822371409285579852704470609835274949126403087302217894538020460469460144910328162307228292160421927440664380541605115625652924194372231956011612394264989351759729209111961238552332358773476972270839540331826080902792979708410463014615867400271557628101210081179447537246005125585556837643278782990805607281837677073589777773761193627105597390463663658944236300039336678974455394439370535086641192681027415297985643458994487698627860251836983988267565415868416822871785888997096338282735604020693226179311840454470758333520854262356891221623376832703540771463879193212108860136122668698800837915037762462667634739256203847977781043401376474140235148331482677042571552740742171475327521061364490080152706327740455506327101463098127664245728481081130974737770448085792973827131524007446601248429525361447850624578869706844198879307674957910809833651374893122610623126296912026981654007924537155525113717684393065746226808203784436087557476286655634796241982032290788675571418452560284475545993485436655322317798396553121271483630255531487416250319261316482618648676988490694531162368846837467464986452209431893441250453195616455714251155845980013656350857185529633132711833921168589228696847892879046570700777319062232488178460838175875209040357332782740823405571972103226002394488610105576771671885508890165954859616168618812584414276222819587689654885349689005462154060579135972464838032287082500003987485454690178015562956993775672361195674860121211266984249084614742687222878535001843246223048623049961212687668735967915297139642823786393364090123814352442445642412806913857637099651315223899824801986065415454201186615381402748547834604398750181477139570519287302523360646057941739357439030001616938454750493671306090931581072219917600305724267824384758877196062359304959426720963611606405207506077362121054359497331189733756650245530275535495345849009294927126015240469422946093037923513789585719213370438668053840005089560150962246254375100246977444559129288108384570508481596102694180262036814970664643673987843010681140514454463915678675631425843912468696093551277731207810062599613773330625245305417382540473752730411400594383016179547580627003323798145408316557722955357332867342594227249512486500159472774436979957581250748221325154957310433148116744096860049028392159301412361860087569283829613921758274894546943012733388910429150380617451653329341655086424415043757360248438052012968240636480464024783548314623995497680866113081599112882552647879167207959793512873597807709644705717812353159961882440216473836286837679303839309327390242804602618797025314132398631235370698794507168071668171239739341244516419595414403802575879112126929403401296916791918766347231388137687930587477194098171690493050804705583513708849684493018851079801235355671673403632651835745638798304676285231055418755361268965481529893210503618875302244115134063361376657915182565802224372741704180566047949359040835562194620990853006665879041121016124753475555298001433933853063251179852980421348408445525544592184084932752551680257542429269225423005853682164337415716691942547038606342837325010916294183355978288110724677357205057315095602879534372281608222771505216359330171726622119184595956323758525099663785832837383559255658970018282609592806685549324405654942373468882521007772885755345535126635075537412479910280980911507582146874346789107820497093482772300818526115939058285155142057321157495472642148936721085756137067328107579014032945748688777636140366409814686011176032652830484008859312658945410014793278008077297977734275772258738513971285933483918983926679128018021170303797711354552860113750867136152177422257296059474312567097553702728248695393191825884318398158165724676958570254567350725069586962796494055958281893500189877465125011657264573206699843769298701328440722916338041697231285349336640150455738150067596311351388244792571208111546163246979348203346372138988270861343260539373200277323014779796680120688372928937228788170643901416951661668025850441304467121539393650382164311816510720216341599171383419098666445348477539891798988977458825409470918159145953707154305275571600667523880112190115537896818552187438318932320531298873012914223452344168730019487027599578045085574277416414607245300982250340648543839810651673054221357426663787413293879097789103439102144840732154205348370366763608018991587275271202551780043343694518964221074496995628240096496300058992987340737414774770782606324968774044030748814437313682242289001853194995562869836859949141413898469861927256397431159245534886004133733492149563982307627013464233393028898180331388793289798879483077810639277966983012296068371900193944150215678365443072396395366731010907914718916748958330422985438096224184558135936693239156699500832990455241428259205517478459295254383289157132060031050405360819659153480059953675922617236282137087075320561860034950674414066254275000545283201902910774259901126498966071709499315556616678897482719741822912068125342400341431502057387109689409710287344277416035791787094104645712865527773230160607410046669615229873870751649034115148770952043355853223518159407370623067477851800526743969624009708116361751784315213811691575446408995630291874698380288536975140021396136780330363234129444542839617079699620113255501264340509896341465291775973628576145018887530475409983168494759657650463330214699256557995233906508491852096988709488920049943918263737191790901911124292566348477936916977165527351770573582789738230699222688388395541627707903108246646194305351073727588284339684892305532493299416290422603691527793364107617772536486514824048557809890360214593398192044502852732231203746730657992050739312491913692733108021003776734447633449411347551756104109943067076512948046498863557287686133565895705544840895969566787930019816924188486590168757173424154217021652220401624873316448204951109834278467533615640179961299930500590518041247706201009281316410304364007329674958130930963956271707730593304449328316823787736063498689980393310969618780243124029613911886905893956595256160912038757338671531088489958659488376930539320725942421229212943048403198543181065775753107047010345407440752766315065111487593758990986400148508979016124350123585110713339920928410884047570622639720010636394632607748744987290256704288540834818968493754158954124928189923528057706568478209108601965937832824813023692444046246889130411151338381291454703916373712990312626448272233846747621129921429605067098211625230674549634903027039657937606898379447323051044419839859965223755893619391135364452441618877130957025531308503662889647620542992482379962962815484824077712246936713572440037812745493527254127917958217150905627748012142049667398524636642899792785178310546877207003105810129416712400729017056131623497284273267220725620211022949146224388322624792713186813822253982503657487223494464574135794016823876532650096206012610566877230675622318314588220080256745815973189699772119363472368615205380831213860835321945999103654056129105607424974394031441581405895231149218836451357961948830671847376342247040714516818003708049621511872102729689116861661846439542567025026332661784828469021114296101253898214098753001087664665589899093881764276896270450954829284356920527957813688312363645166657293131002805362672714718432608600729654722740847391241998980996325574767006620817313100230776724975169996370219284832051764656906191395115181114772078784244923461317574462109225854576968735756979189893713635501870159345255265163095352367880832973388655478430218842989238810897539731665408042173216276569311917820419909430686927414912040226191558699169127959077471782722832559519221980823618784812610518328059819350232465138161502116024340544972749627142823163372969628731256536287644877593153081829436956636588740246020341692341456392213403679723928870166190258772228884647397957000545003922240708359313385662065104431854982773282950576755317290065184269690177342110235054810271927792687126202684391360478392876979018821716115607868475376467109449152250408686668578464027967828387357983155317011326620676512855761481411476374332227858209194218569578678051739066056320052944080017778073612524634966611637800247129269395654266824247689816521908102001650671703558388046767759765860031237083773331906351913977416844186227876421084346330359489237096035867287424214400239722942272960523644647229571934157423001855089771464115154077596552424748185984817959976496374427578857819018667597563665442203535928381112618973403754703673788169123888365396386231328341016723084999796603559497042910021713221340930408876584612412639541078233800610729010774163457767252452585931487967463831298381876357652231974782399652417408479489252655655351209431743427894926217798491790370382090095029184975008441189307067829287338650840631433273192786176633038873045284707666314086493474177897160188426266089926984129346763044987518654907795775412933690969659718089001060734797874762495706804795421602981660846426401199917170842986510314843987843754972083232501741897516850711065006752814319281954430765270021692744039109473482334574447065504882252993845009781175765129604447549869879360897427953764160259555374711210107404727930523678384361324986933281814918708344918348110522041895781280994406581539275390521333892709586939937671806084215595461300934334596011392355407295646270699908619412222023194654006891762413875008421912215564351620158970818083614222344703004510731499865437231050082765782149276769794808328805014203072982609352806892356107297912090727754840004701169906781506519383888995139412223551022716167062089241703001139519803957293386694037920656237083634088228313666632282963286873474683255994504438585463491881683716997677289217585851392392142990411287343090232979793404649637017318976632928840051221731569271397513626233983213130353797828622201268261343515217201521554359504036826122802844888015726416382220025454117122766626916018195705445801424178971326214708918504902839722870525537933906120427837036443806178532231054090369677411092097955352694894050288022797998826500242761272496138535098692002617156437698878019109252925425792268927981305095016509223146788827414643835480781746400048644454524233364060591987345184786474142165131881203314637443930800216677923298262558427166096180442881861240156431238429884724458179398087223677522591517429240840087853071602553914883387065475809579871527199864180253212955857554294396450427910767096822953644804982129298999905953179536742605299119954618866375693011793104731893827779214609050884211746109796524706355528707042380949645093087998191145548056619833477684185824380187573981183358078264518486744581570525315905032447567536942193585217679324568518502160603619900333452656819408898755613504791114157811159142177503426791678499309566239765664374199155175041213407363774348070804319981857083664619647262415039453106909513603563811874922979765520818539456358526731740497046876180686103812744054606872874262630959717892594923820477762402587470025234463852168378965397643375987302657288119682215108096765189891539225834899113053786574302677227980279397380612359389583494825430032276903086404236815481130875378633110077820825063562607029381527950713912357118989998465713503457250562532153732712610781644836241573973491705282975051659609095385364597126603320003772862726841079798498415435529363984721296843076656349846175122523222359436283555366229534091190056142923671993217777420156795042261681094160848945108397654254148577550534118093327903704400062515478033050098397725305340399424940281580129413959377888221680618725156172986242375518983969493423188734401055908850469802664755997722899643080100869184296144188801498654388415145253193466858035539127993527172613738900968551920675085711302634253396060167244841126709953232386208336987618901908066544585894550719543902213689419002372172534850645482408376849664491289024342850940359939751190231237662974790453478962454200321666969395987530934850456004336704024670282756088662246517150601435584124076043452652249662339688304200928517948127327060698213826797871954513313017193207255364648248936688631782980498432602013637516490687118445387063882964660448493633238737765845314593012325783975656307284147363009641869323455846829863725297127745603919743207564816046507155866370845132678818372641100924072747134329483661335682993615513178791238438119884223572104920998642794043629498234585046996874157480268416529952181861143605651892352237190779658961146195967655155309327017296677291502643968661059995942961047381665845987831277228143638322229919862740063306182754442027912480028091132357626261365877917013662407890519953901476553050814276393947645565515615925690492872497454918537340513162638078747732139092503297663341027181682396053190666638557668688073880524623852463872403614784475298156441449765060557097490085176542951564314229347038625052018620040853229480188887191882972248253741435208755410567389809252446363591685060410516889138772680933728919535164711895201650099922538363259215954376295947659277336633411800827885295300608332178814744988976522022214794399497495045558652910881840918195787535653601001017021439013047179312193665749105598374968701863711924556738200061841217371826413379441270415957126198006060312808206550302733987470882514420701771687980409729783374367635729098225893679854067369323166603675267397682345814726114552038761808358220087944225803026648756449758929290715892108946066986495757474748619212400553145431611900942986192801782582900919260087638624439142269952169403189770829769483652450716165310433144455635197063765863531850698920996229914156177808028909997938017417175996800684720374949372339798781185992910355537400749419692730204501979828203944139851648467042055127264769125768178986004195449699791713790395712028454645189020965177562104599258070842966527196481285348226311372901282014743150379643081519735193926503592438078653550554803343742036844200846441566725023123671594103614106127618475876581954378619700333879506619637229551404462906341047527170037456785076495638175153046466935403248769304796953365846864579189445491931210155571472792511475975077366127996997823219280358805164810075596186847562789089781217536084594151181517970573171746642387927988415536455471093875426021927115051353967444760397341659913415934553870053685238735706197988848623817297043469666836929016683802145096861037697040177177382111984615792379075854901491709187749624578187709889037718973204843182868354839991937511124052463036920004449918505521066771715047266741787218595498821032088059565331189037942249212783288933812540562961360544503528194741130036434433662541985358384314851028303164224418598180122497251953965154935953456935729427073084894473670050284766360007133086174758349220076456885486665840054088844975600400184908393020070642089692381938967013887490415516647532599626808239339780736440456990074816431070343713555555588272831188746958839128934714560326592518004402230861568829880488459531771194368274814902674220179387428667714261398351709212511455118549420218938771804646541957005257594563602623121635150295343263529313515357242587093618516753127452038951531333252593709454487984580344633440815064439503751450447301756534616653093788461389707483253741955020670455474675737190011990979917370346521384401099616665951358594472378956012377765789850547390924826351686096974378484311627155797901987547366425029734763238087269956258814213804819123313905286058209077229811167686479324135327493370620984543063968449346608200540341596350158436263777085904904975267871468340443263116332754745973557284219876556786061470409009632923214995822071367543011486693286795596413438723531909254471726190647080178883138595273249082182212118503178847006220038996296960438853512015136877109631407948053688640633847136195962190596470350640986606000386294699842049722942252454154683458547693466784583731491922534274262858968334984001593799611819522753509932771104247201283245519732653078745922487570620810045675426079311449353484052229756914285647210799782346854977923272582001106767469730392597386619844007091879564588025758221988002510966673710815728552046699109154711328214355229110399448582318947436108430870618941845240342696184218076069101900499270754465889288526564166496572224962236108697247330638647583731706236285515257821218695935275606554001072803460078790053432193043599731765087054499105633451450966372402281966754806000752427741202381624444134438774314003937098327108776386708247339721540152828020290612078302060714525894970831140905512487731743617850108481771754622975687096000101793759135630858625215564088577617297823039852603995164034093575352536963870477516038628885945884345293525665131893157535519520103987261549701715322408378083214598495951721482343216194376718522207916691381781664087012089592619751003980366441574517044354127417440639953003406233204331473697229405593024779366444477522487567380353281283302156368180128186607904628642863493051304248799881649003692225319500068078251431938808776161794622984895688656889873601397718056905704200697306636743069151779915048557503638201676266649923336795095843079512331152954292725345120007392074905477995039954713637546474986799462437296762289829774777995779531159993173817051560186542564614938169861473506081623419003074371218657217629286744151967721316336618965796970923823389960407912419636147148631083371764731928353719976410940071866392776654040744099889107448483942415042625406968026679156985209013428323495905318058083788783731781515647839933171999718142819465467630591512082149437855537327161629800059056507597569414031393249320028778091368010539201776789024758001667103371804241494348566247455288140002693268781304916086481184758027832619857022292391058301655459859083237463409509189139847034783768102053801533305280378262849273016467168865892458856236330014968469235550050088857497496913912129763933708884517681585627668685017200358276094390334920701817405390608150743952502717054008900096708208269504576748550406204234264710803696669281575671879717628760035164863924520367172469842386289002079203823868498103432995572662764534782817263090462333519088466327333829423857473995015491426775523953511175638812203037925752597902074965602832724015603830402742616096047182526735353975937475318704975720355518478512807386672691873250879015923786244326555608793059129334796702501810216166719931373250185135569152132923172083560831082077684292649974587773655570048077002867377719557172427541563799297183848537896811140195667381531384011060295867710144351284139176975461085532975729454334958831128925759564196099211169547647258529297085961275674798940969730931935904160296736501451927962883157013253874176305032643511474032289498255007513645693612819973792024674302012764833993692758122701959474069604092376310017005914684620408449799755336785757460234794512274436484762871637554827191296811159180527687319576336834763421741462256767775357196947604009780463301148499007123945994794925326624226953822592748219357782789887433296067376471908874474712061191352083658383291525065396255859283691676257030109339201644299104375578171237487767776214565316317289076865351343324051733222527907540635047970170975487362597513951097384719763352529420865280967902799777625056432878499893728284803482416447502095079905750574798484738497889376510871293339432019516117894917404484006628421358057646635840352390253334701396215796747030616687137103546518403477163845467393478612976446054993412695711156566782714975525854671411523438449481012414702039918962671663669830188411352586922140225912990493982910072899993589622430963693219619704416580796582249144054074907077662779636744354386412121607462896750141981212644233027239875327279577419324567048513058004957595975102293508465547714408366855103129564258498080512818246964199077247318107308203245480543699475150716832163889554388440648250105750290378318538244472679638567266580083247218092458435929330406792116881777188178390926591751992794222166212586628029900117365503794972531444731457041769326397054243667951354411642038572029562355394219846470971001304084355199419442879919408526513455476529380104675145564642101892762359039331178293505550262503819135103742669484575290987662713654855090826719969942803607419088918418378781210076194039033566650416134647960613274161618520202625336674175438944104379359034689245038770956056111108557611860860862756562286860210316058504659770838222793995194170432106772867996815883807431868377413573550431142683710053007443926279184321708321600194308016914746082767269164409619310362066070110809037349479929383695146220516720257604652126199612974268621021976550976783331172067294694210677010831966653464649773483299925485395407679250942312711068620626213687361446299056714306475553542368013106008401204430542785328425806765821116742597311645430052772687500616966875316319764705580726991906206089576264500429682427904826508733581277528119134450238913350958487698011503861525839787415989460569685006982479718225329937668666452345312882092678919883531030953608512412082035392266296746246500294239836097612682227308735771129242458101222153248717782270990772782719647159611512362728648977676180329847322250031937137198378785873679429893251487998796643737372751262311138831831787946623940405014065590718168198767566852294382628726074375680925881274760479392711742126886730610656878767547603059987750537935307432008198912130890175349668595653493076876575865244391949818331519950286180952611906663136014476440365919881952443802351260166471842400247474714421001060918845877355436817048726108704671476969669452597034195890395204456740386048008913018200105581196684324876439671929000149168777407934377265637113840272008998014422394580284822696111371454502324092423565638123472614927261767780676463365096826269146781585472740618957463311740835684396622365945271366517225681665782961521655482350021082499006384472912803344360787811917509964095123202445800200669101836765304394751291941865738753807747709914117261916308268956869770799882380594552576913345138696281123804057574615380240941532786839373296515820513071796244198720438051770894019722006375166994555932058993002693399517116779170529989071808889798622451470302904870243113871143307034364676437624546373661312501776349953033193715178096224359217263575653794390125526006815839882312686438886780555065494026615538143648298637745345809925124574049749670327678386335376121943463407455610672651296808310012767659085860734701790290344021325215323221062119291512459163671520038551340283096619468966526011280118562534305515818839983993567745570322322713061426973229808249225301144741133474188628749351620063633070312440784664047354077664091032539984816496157274774389255268499173633796716962748286968137894327242975652897204422624693288337014641209970513426161973419281441112020392770829285980578557842033699806348893908096317603938582535339864956268211889520074330800961941278628777341018037838340495049680948307282057722770932128911452471687576343250982209873344281657151066651303577814771617417693557247340141340765905294189260533552354451310806543435411110979269322360110097139580987328976126606883717129631961213989047270179479525852242863730616647203509498066204704207918755006081261422232998759280397646180827732669525311772008652986719899929638812414444315425268454461485836151201140504376530351685548385677472322648776680647623414415654814849295792115333299112471616211818353756341249709173464778466529383178682780810652030246899027752336342680556582377295214700492284305410372568397996835659292474024792818502924105502773540465177327219255482050688769169567393719800291448734303604757821999516345689319040245702819195231008745247272248015531446771250204893203152802708171715341126641883498195168179161216204483443920116636277397269664975601794220872718920178401358098190843727575308826159532816352108396505572114547367173736681630537721561589136503556010086154180702989339812793424451167806493532855989164731897313934209317939466896378665497513710290777416763548126846689370447101171346145871566925712013272712096157154483257368145112999036154790344139471554269207348486576432634693488317467649531526066957673753988303478612750222877755204528929168391534341305395244942744410161492322291351519558594515920475525683713310163048561280629367212351725776129491374499255079777547608867760968349357584234204558854296758955695896733597075781578845742258598030035920382214635069583200796066062743761625612105253171506443373272085869780791047336204577669593665034028774656785268201953981308669859130324263959592081724575732518715861324285554580365147801322379128530274976875272237439673933916219615674021551283612009453963895305830039346515558438655117442740353545214564302756021994403061725717518660346445694257361626052103047777607748288232607254224053694518817652494547064095160624345819866038164010678199780041172636629215214425679428608672466235936685128036250514611083297847441841528682433722138388594930409209836943150063536505135300114058056838441890143755068525154195380536897919459783377545244357465894963144421628808375571852042845470260700338153270458686761280892385876634091280580271763250095806473796702713912580461412868783316209499339640423482428597199276596184796203819647880139745334866134210994884729246986955369542348461773075040792724986531914191636091095189725206438790180683175989646566157513625451620257905071481904646910770431963792798198338021228301675113095152160671420260434067819923263990420854845698492945798975899748069703132290105973885575069208777272601687274867296062443528804939691367837621113682751599554360528644887299667876119941700798245350121341059646286678301283840357725050440101133536513210903776226491705065425854618903662227818249022801345865748054309230988524855878045573502968201308718834620193461194087870710691117571089689720392748654793745809600013048411682255772847028402122485341958089722695544808528819439910805460196436435028644971030064470538836866596127015160818873913117870262017907417511152151790262456287408187853153854775265135877607906477239548908395866223009389323427726924457325619477828067660539659733974286675852253688907500091676477178157940880184889983087210061922267985996141247875555881431587060214256147124282791232642533914882117718273861843073239450634664958937637564058350159879156269477065288580072277615130577291752338929194137900339052550988741537757989735840704998916887108561607086372215337439072391029825611353380843925992200066201550268102464502025751790878234341696243017310419850820380982628088520959276826175495479628444041000064290149880681627661468491144628807838319633590755408449040734024992637086233542906930267921259263832408101612782531830388747448435563492721971431901751557656874917136716659732761810614030906834940222957092475094201638403098005381944469078268001499735232587487113651759714100008513412557423774198773476865472839510111493251179449269752029459187639667442119510701407731116657744163342988768348125629286645288796055678106140080688967225124215451554523421616800452834753991726243393730800282829203036253125087359786586283937755563009747947314418910111823285876619473185458008441712409245486375627804586779556355265949931500486702912461607574721189364025624810282810998389575327944374386953743079713427544787403468309629283825524662989552801741480686367161402624775197839940908934327369604457490998235113868370852970587032510762755900357269295058393867639094228573816982861005572240812009323345195761926786774838971347026686409390606848997903547896699344851643267565474628011919681859895073912425644335095653968787357712483267222171133171006435854260357620165169561477585430692088123220441561564693645096238977241031924984896727550274712523244349959921870154310725821411173360434029140926674933563307712481215563178172538532151556967384248782913270025658538326032704515337484092200425280162127276181494704549823365457964629487828325869353435534566503448075242916775156802355621508762618711119841454445679986959915692878134471655057097541571276468605708971192376923882209194575011025790640809473131485954278851319529246678318660251671476991227904611029261933553599106042128541255344131306253688735777367712289445478852310766358914325385764291432360732550790795862846278109206804993896135105122527358932771776488340995025455628731183750201674824061369416516633818962655743975720779966531378806145803262734468788020541448496241565031774126896025273668381191741631758296150969373679939513018950174409520371262760660058802224294130601607922292980454233986852524789544686799859611761722548738725342873720734007374668549106232288827163970250777695484880612645515215354571929102767640765976508683347567612162950297751217378598408985597419601325732960847824545328773270408764151206578823154486136074816002528048755252186959649817900693164761886112167686125285907691432291968713363117112647434862760054822563338457402025005508710485446602622651210467621935669549316093706427309440764565740641122302019115918557120280804732354279281247546764024192632899860744705264987897656636375307571421805597047651772671610107774983817756176268661191101448694538186190353607463074481878530809091760455891326416842213427616589083709341431987009062650747500243369073512959278148222914019253310503825647506080395895225217248388697556476493324986656896867898842069948446364168139851385711147546419063889692770240762122635475894866093052352355962379665898610371275760751963208506616428627440972049106835365851175832242875277945572994413382463819541320546001613867722728973384247959674317002297779089558022507435576852637654462218895504282851624828398046234942590289389993406518329951647178344734478287953994294842049461117887585702806342411414528625163210991678578835340423264098320713541754267657305334961546378400612238488008350448009259250721823451337040061062556199242244416803572684168658392211826204737611586818034091590366562772865232532192411259014782162197216996840428497862806355636991877497836021195088086197978814433254614790983938411658473029802463357148965929191965694675475751257322735837447080610794755568689505052718830428415441955060813089450269186214998083459033591380542071725309135968455239848010931230894124413324124662626048062687157068434530900302358861222791030854071981750583737803624977932978294748865712099196226178908392955658786902189018250072007930140351608131625240053964412840301136863993129706290439688201576383592932451593236085016507498428057117321680905851680672944005765178289833033388759327500984739854809031042104676502413310937852544193328834868478076197571057310514885998977442082952481836696904423514695706742385940654861336632703961479490010567463310203801847207023882990534755076839140329299992289742260529285180853338907152633039575363418437202943672365893103069120831880703190803737844746651667214875712667574687395826011994045142834020863709282880212749653837757261912404681281117149464208964840530545809216404912152037832531193486113921053905774881079644671871423941603825330954178379925420317701808810634965079820703283207676816806189545735814997291704808112539691578646829845552247867948980190276571015700038414140990919872719775224252997649660733199600221538540790500574826505399886508157598662216462437699898002690845894071543867650009029816229355622908835851785932964140205516597644972646750615470080321750072313135258098946161750750404477838830673691699049177892129808767918898518666132331949988572689366207213452263261520982335018210728349853882631241985192908052544864490580286163611826894745238598897495390038695108520892737887852412470911605593669594112374127460718998133371156341778561276458915349461872502987917376541923836939228973116851526701902562151664159931131354375518861312515677230198593800762986740326334120544095276091459619088516864999407814635940521480930717750875661704173586394075809174714701084388136017965817900579389568454588888600697296187853542454992645076737884108659659291999256862433861187872864277959788157936679782926557276879149141870777810131464383991705086620363350454557090167603229414398449706240317455813879656096584104854210706333611406513905808905742241039011960329963855378228770599909453668562420232417531998842796468223800929114981729740604345673613628944717939612446543193597034950982047301393503679977105197714488172681157921810502720416287755556962490057611828186324162766707359616558422440957433610464457980618500518458597531135456074651871842143340123911227908165483209344669143354129901371395703111508125235363026556321470928556511778263367992086594263851084440405592935636346017711652480220866990980931189445208042742118004081470204747881118047690172995447283336256070245883103379517021960904705923545147820821558572062281723715645933259380506468599952991258472169040496953886174016742802725963152038450615728525512125863807952185787993729992611541775086162715061678798416902500389211609118289848615674161522649177173935014199711064331467513461696916462956338423657895949803334288515204967970641307092232212986660086790943666375814225592968019469635658348498214525325538960648269305977242372266983636074081968651711068217022376640563987397251751717904005654324325256451473406917982629623253184322203026539060576121604557407709458320500007920032527768336962419230136643101102940378882338753855482257660598984749006025557892208934730640533000572384069053461227956881439349919019975036121573491033342878050681212448270630187281785129161970207596897403922723318375731641285786711213851336135013262676641237458123151678499933342609894983998233674058859775457904977860563876541633621689204368968016789808893485355842180806171826182630044395908480651358669414721400704517773535066116190696851864883705542147280308023892045014723648596967524906011907296892734430422640953727708229528090560567636145624021989627844451890610276858861709843950752897944201567114593830947044959789376249146579280500642279578646664196895825984757258525944218878231557330376304570968691377393835139153093726991811838479482399037361554372934598683471689520694513635432946955170488640149483061995328298652598640582458616395874984245894574730985668157097677106805467228249261543776034563715281706529593389854924088815907186664644902571454292652495999551125434059672645477930883461937130071115132655561720002991216940659520391556646699814209261672133472628837591316293471866754853743269563035860174375093607213022207402183370337297201095263705494303523394622388862810488975594440602176886685824845726798533928383548682626992543854314967649102362930674937277581929436218992035624820061431191569511423726716957938178257712129264504055888279245363001938098941113318718364333199856883638070392348861635092417128052293552422906594062746034093855726518682045968040671439267218269045962667426764682513508786596516753917607789640355583977809511734980559899884818244000553199241313117582193398873972961590613836659797349749486260243689465919541270948824203035176698154617843605680955973039965414016658735193184129115024297989026387490091273947741936391096326604725130174654627047552272274292575255427212518812472275506179376242597830125943869747414417447377727703065625242406405242489226066508726246279773299800299273734037318054774574592470475143310036909902013162996557921467757250282294591708394537826511109713977039825369127422512514923700234205566592782843969017358962723397495663377482954127197723699769989425195784407646549975902876194909609064763126773481170078483751016012744513586100466231639255135836080734896795896959078063051366205026541324429864820347363942888938682520540033467171752719737084236868179532516139175201452018189061434200751410872515054792327052870796196667440869771775150005331351069373908076368192444829738738654978572082557726237502723241482430857511109645120964782906844653262566570104662413131957996367263467350137667692110115341387223835087965428179498568862156133960020763526321372317656847939349648674854050322409682463929289304093361699955979097436018308377869413154172293106692913703465286005711455048906782013823647270697967638967426294911555672716229015502363419371591831059203168347042875723214388977780518173030291282096420301971825725535679154235520790795486243285965380024281996964246999604080096907349873466453097018559085523688517743351152698025305353284369586837622670653657875306196766841030996938847922930042848521577504498121939474310000326540686535455966623691591266711087555145251455138521381791243735297632755238460435235060446352949041417881289384901427026736014287296326571556394382123191035394361855407638337848721567110422256968443820398889460383396842175657758152427647163173261487973459116045382289009056085317760169259691999524564041097841661998204867816970773057767295284067218308392560275741297422789626443721314660769622379989788505926515944113374370760861578689181699273946862056065197965888093213976346599844499673729251153898801471159649092945738071904601625321860899058902200300655470325256764989829525135853750030565300237428865953777462565147141856992979303674381018360991287330925191968785164746482082970075442869248948335170476659704941676633196534120079784795252072688394867723608712264301048529869767735131463758433268012221309544211606723945700285296951740594330199506124462367054244321415042497603816369863005986475666252769461874578582997047069809479962299307993795096839785368002076031277512993559222622201671408982551023318726681860347542375939959897362703327513090712063970655272972646361061545376881400058984783540480787461312021916580469633905846103490673061610094512447511496097577435743124049333797688267663043735243535434809891298642559177729383960495216419020512751312331227530457571009781497348441726112733955043919208747546413502670570379873960315007455612752828571102250536147213994236088692043359597208440130160340118702365254787402744022462157347452015709426043141890660317205570159633515055456845190432898212670025105271129990136632925379714442489665099555640468716084133526678842918034446001935814488903879612442925393186665262374784574986983564150787556235331628140866427808346155554746088863822041901568742215063400863185999946478374748961765699989256796112735811381765989484058928185172405634090186645874781975691645795741015423657936496225681852156970333498499458904915249646076576747429263098782262833680032259194284390663754406526527359516167126148478942296296058703816962776175924957937713199908087265961562001043944318791559912962745849062021521121439482683946534628655018869683706842971989069755299305739737087991927495170530297447059357871283398266441661915925522457927366700894697313923998346567404029321969253267366173567504165796364071064756456088518482780300865343952472181756375239632297326449597632996204967638006527412515153476428683549595371761014119764127138538913423044737083500155685577752424278536627721575910800685188036404511436547786387850170300452149638649283665031869670737062683993450525304127044807118777832824727663795912069252989373332434931108382819924711992405912784513402710358536944609141180246392409025719270292661935984558289387242784936918040137965466702958278949499256912946300637004102608028858826833025754228755775298087082872068237125571504352361602157342190196477659091275452338360782110745183539006345316452539830836207693267880648570772654434444949832593286608684624632789432884700175147397129697770821510172213380837804321707659077182155035903459372078811896836789565263494288891884003805074238425564876655384760615338576007797648996108661140579383393548724700540434716659974201749682410605832286139698535549277887679884245852535981757007596632963113243749690599943408836805580911902754050015359110248214326217614384293462298209862670895233844458973627581244264217740982259390562630637324508167792824862310381926451406147458174219644105490850502676656779880474147958152152624766783224012868079831411874880697106295121168583145890160079835315744121159475520943806473916694995140099272618166251514303935442254732714045740566247325256318843200453525883060254473438976404042696808356714121143382455278118846232201563713716326528366868463936352254154360447774210990245390583076816134870273304136461511919922457218987451479259363459778359831989052172153552787856089473096025804569368065591810460730761663418552137793179607341642996910414478719798704275989944577067342855525802314641995173255945919577666561967354512939765791284557929074793914038945339129249929352026195652904691276703171555130624612876854850387732606324939344941968808114752969506734111695152286160912756433983264540515801737647595649668607290116039728713368678895159040433779883297840731908393460668812788280873207889564397204296569204556579426872616260277744125548725039340559626184571608915144159976554346457534953881603073131862677542612526586559380980078909127539656474278085548859104670289500080387002911650902020437465463219396301067669970153076438184388612915859035428301333033951765787018202712814036792746010847591071177200431449345958769285547219920297829369029464993495283807784914485874546231936891807452730917580953140207798274973587206982507865678045430326784621323459609816821217739062375909463786650446270867849267276753611131945338833808871822333714952255141396519468199637022647521968284051035762016044736888417476639596500329628242672657362361287158135983884800711688916682497989320392713034633863784343473680546695548816372702231654144997646570377774908048688791969655057586702208210915551597559817669022083113811415929675767120771672722658408797562016662248699003622741280727073446717449073057884397891856767037379092297901317076015759489178809645256403722312309783475441195647741422681318987692061008096854445473435895974870126477041075991618182573547088439599311579690404957886128859587872772530883559389164896509723760892185454225893648800893989267389100022939492854065718776346916222251748586797005697333492448171244559958569131684221120389952401067395177735886338671149999676477095231368923713521084349840063642307669474533352176533412076024617408431821432214682526601165815753008421701789412273992592598830239139037057548091664859260035558271837774546417236748928717564303135713424270779397933675112861190530117249456437606398939175559062392561233831788884502793002219939089481671198533808764851130138313153003287586832279783529992018773888093129345966644349940772016906288911915178844393471560201802887792209262682289968240065906487916340314365080462954286774510493588771292324507617660441433340914944370702000522593018287638779816311162139488973697846338819233811404320899312131985555193908626697868418328623702906877833762624275228080141840640278569051254801742400734263496845598667698055105618440950701961315490272932951290577200534015876896161673962765184430210215482625787564438542113439774140811881255576054061885697612784096375649144351149669775181251228614589867707029895386023280434174496706189116558963078798091091039603045517191950825382617898358933494023469482704322213045437276506668505283787411096269477376680861183409540541089841146437747236917908455537712550118298795512124575476296554800288128580238998363247265447185835645277431324932105334970360898185402144920440179254959031551352732888983504259263056450814486382717729695832852208408440052818665018972133609080606604485653192726239039167507463110410268021079045538627330102725676253767540996000969462254516743969097617081617383781093286583165690214348880830886194809736479879618591409015783718920614640582836149224544018874059217809190499106003507309073046844424979371905091797352098306007889039455083036655234948044469038023801242811508471435371058229058180516694658903995479725677968541979131285009853801479602131258347341162999009829560065352906779206604970967655864391850583876977177648742249963544774727745795984167505414774811218124750161536947594566203829454382647045912234713988992476758464021469612601877182951871762188301556415454352700815817613394410811419780026177537331801231334430255317882688620394143501455484593760817165531278709449828746110069324740222887430652578995456848789221658152918872546287980377448253919749076411629783986239512939362614761121436326236497620987928890606955766400212998294434311050211782305913055735714907236494357242383572053821803958258495167309532133209454349910528715204157842936086416259010219155055614963607505125820905796539991442180244585411845571892546748154019687187348707336747282188856873201711341895045897977342221355338242064243229859585947148971860599639772112272658807493992799661422011247640459196987016351728286326523117114763441325524421856634124957867115065626082988286592873364122949093601628732837204731505754116332717244286296376517723061851051905425670870315807580701355804747749324878422879631595070950333094779590308680528403210604405925306471004299423922405260223450262518044520865369397095366968008066073507515622709504113802747137915775793914850647883138116875749563240575355591789084285254967576065809938664738884515443889505564258065388411881334541512218706122501286820701013219267368415876321802382302361797235576362031411791727670777403257770577837357204433164945328539184083032807464932893469357713083442314936680215475591807616846942776923925219721330008338558662866653953223847321903169803072274208971203482669696734206288746956828989125441031201942923871622668744613439697434561912820037779219644258460022521636266221883264453685129330987763440375063487065532417827422832870524652942908808749322977762144349694920048925345496132316204620467696995922487678629877243023189684199857268037060195628487650273763343251651774923836431449727744132717587391068392927325422581357872709191854251229506994981119072171523492429878324386552445988332089027250217080117351347332682616275364305133408764726693958968699698940466691198389742302400274188448036777034425669875718919800866858716008699986766794724719976020757745406711759346457933326825640498791783556390095613303927122669891659777160103170194418850992259902462692714217508009816465169800129353485828187846259045304251398157011516134808765653812247893543611116119606973026923612704817437345492769215962235070507263380507293945343006958876520252567684885384221815635346697830741261794650526196289624349306047783803570210588156648579005947304227831098292253390288128753024766436175319326311841076737997272248339184465129608173452992524441049680595969588897285026443976350006703812903349144251987621608787401470319167037654828195980708507066820675926392956490754523363143567554059653883211080250808228277217556209151337664033162969586865044500986786259969382521282897696933015349327136783603461276032507251875415773732453927269990975511160532018838757964631203132626979651191819280923222926456202320092242839397155496433097920234515300926760565959220263695410074329266236627588744850733342726968273682246520828769457270633617219071727937202077521709972061979944023599122101884650472785330036141662891674614679912750836714758265915883334996652781807827114963810764810629181414052402180486809313942813136453805926233268693674991290316107289435315064977913146887560500745427375653573811341959253908995241614070461861274682782323522475382043607343293019658468997667038053062431669010388046802517923002966549751375691901641775107756390565853955322666332310610504768455235831970505917326052679572719939258108276863306317683691289911430441887553805654445478338185470008612027969018807739959496241155480314097522374196598317386337767915177244720213434323232234634718777842351576610043172794317173832245725814307389718574456289993062253759774552850799134832229421048620183264216579158800789215078225670373511424109020597936411211730352770101359805326617078655885387949374785269855376466209481459325893636710694535694771419510430899607536718575947455736157433744161716218286296865626882975179271801816296297165044813057661860031972144301451235207529872753834067445962648585135467954786164194716803675817662124428868880047119402852507050556831251280711507726788726216957103498433593999759116613093741283325621110807318518220862714021970060309288302031648102893600879917394285410228158712638792300880596667046388565091917006397471046696084176407011464105350486145479058601645516133257095542587321266450755526457341874383131595797918248365968587614385184353061281884317157633129281269845540084872575813004805838971566492654227140496281031237020600612349925828290564119383419059719483454123830424966244001425366278072978241670473152583436555808999693610246434704775462849797054738375542044667739383114331426091843462309970026672522154202228511077865739710359021789360665870248116564067454267579372416926119086763492320384043984729820715080163335805542332425269618746471091504896598145436062771888893531972803823571778599328408192080769373873139050931122202142279436292850588843944389721330064618149322454526636947797460544725136902364015493977444682332735158401898488075926731274456277073524663211629130351033680812599075691590349854181494926304575463944108707570304757446970577406100491819333454890428307895536088239979127398630267218537881172035437683602024745919762485386935303611467933823659004882406105666726638982721713475394584052852074197415219215612367139473365566082873492730054121443450189487211060271985635922656867846539157604311222164738099804991184502847918657749859938883999789962531552900356573117490874118236170196457092755261860145723229305623467422845025810799296743219344469556474288011373368469185714300934601915549730967115296285146994259548654499314792721734591194837231080477740419304902322500525828917399501349060811319177801646982516604815769625501235403096499382639932021169467995890871176426246654603070351404651906465211680378191533566576318829427990168308376577783375120719718812238220437163228141249395018619674813005645214092385688704692562897453264502093635789643988694779947615171656477893180268414354563150223956078491033012656332232329163133047144681348440894184223915626199461559710924507827056708686993411683834388460311928366932258045193209187073915480577200642637679110428175184188044613448587531795939480426562588681822739968404571614911074906436318227841111276967981038122185814281049251685441066316031810251495441328628200682740682152820308345528700702267712032452555091397893289465633232753378386200549583654004689201024375994967138502246280109059651560455450222784159657060757731255879469183823071376597290837111224094662451169348375772450147783729683051733145655368146878508260083885625688200308849894460984735025543335071554757925384794921122830103636661047008416297606997198071626775902457209969995500704849391315577019512859843701385299606800288082377906678141107333194024877568026502726486499307802221046801486282420946343008971131818375290229512017554367307564473186691438505981515017760869142860483481442587308431956036636085937332359834774539606984938895879603299177117819631937956533103279854280559543145163842085230061907850950958390947124783252811251283650541454705170553205063595971899781884854828650510060011763716374249015925001454843312736212511510643724784412170619553836336749147027627519771288308496844083633391929367984197213649366240574623936040094154679668091056976033903730584673177046415621424933798671464834461488979242750669697289005190909401148180810095846755344582526871008961996762055445916036707417647200786563199938182322269766808611026917449112460727490002284422029275446880399650882812734721221131014173896657114327907311717656120083106089054417381143329810922358833867032089378361652152857940338871280875023008290995796117544852169841573313995327643698768203890928124356359701500027198439556512157315439185116322922271768048219999629915551173558753375777662598611196816107885449689408288447122337423943098785409627480747551946102619616780457519498604693855779147332363642488705321714507626489546709054095609862788651164956687906296862631125143487674317486368012000591442411846422493899969547452225743303440805360262320728244017517607472400427833073818842237898876805540608076713011689512411326560030388665784468720329926430551765352284722643290096430445928246924791690157150873322973490431252151797028567556267075051922125468206726724832220812331218487226282433394720452328107767102616213502481656161133793344101954702160150563194238403434909203728436953866617528299780864126706469051863987296411064289207849814322741866884297037048989626005660904957767180014683812109127156958702383789281608244789636223785772679305283992407956466436683994705475780407798072241005194210178084712270745870009315100608948951350794120001512706011405133693534693037141873561990659705336139658158766460652557546974725666466734317476046777589081725324295526961984554235372299572228194355084188961181609558878174029815259960767168989602732853496780050083641183447433093304200265664696496751223123031006548879757450896973288460113870597199271964390478992702727300993058184045502791799451928855376832486223154251939926808688149002676262409343817690626590786234113200129185709078809400567253259645273950567201793777897730696718037450287686452165579965029604094801854099893582719438496527193346002402137663741375927241399156596674958957690580891297111002023883720227475839814198948007651188842835501785216991487780607922559801528957069178664035238480564522222616955092702199647840152938101520187945146458522511958787491168333776544403906129344361805693169032802795259454715844801803926010415374745528143694417049885658581330334052171366673076738607103263533748865576695409502177612912527211870980414212035973481432629917366641739531405843737759731454585779511212163138450214283248558663354464822151244916632074064387348784589577423288386350711232840055973936072819376248754374396958971944314145269874835095392465317955865099827936814579782181917993690695211579774116541715627240711136747254773712898291120979389314376792011584963911275970024426006401403376199655299684422347860022403699804514266707574314754510547606880610294055240814543598629075945394118651283494548377486600645204366771724007149694604055234950970738453036172726832231019983799901924474740190528948479146354259326017604749712968605729205520898465117154914176666492325169454152782472858682989945938130071097118712860606172630564422282754236836742866379164125574481580380725252672796397878924467203907040828637025907851482145490873730889926555882674061225537562999637140464394556368854152844244867371739808739665566607248491566821370792592178999420778090006803269376589925130164131920415832735989321135128308887025764963012671032947226535753842607919115097914754762242178409443178780908116394837969045275848209034470763264709878153669607099658136087120561775614251992801584487851290866003858923576748426571627825191015482289325069733738001795668009954734562736615580237251832047339002120775998181430917901391417810110119416990974589351179737464466480125330612541023596687002228416215604549378442932636015904940385726853057842349705773664311639760711825821965745488174768716421742029049794053689162368626006015700387941446651590066041949182536540873430826034957234242355056842099300800364530711924995336637824215042948901933128537955170778647765201919700569200725904084432969758704672408645318466779301715217630185390118643574328460800657497343879057364449176871540783129106735601120551174690292339594790047595743401239481859758575502528955393088432352368342103417214093062319191872584684346283270572040658887771136977249690980224429447242266051235851088318610130531616598469265185046074352583465562815083324855656210961108392673688289649753174030798598706185499772607030827080206928342383979166193017116022416601302497647532756487948568883558544213047489733113122792704814996568968870506518602624617921587592324262248718390743218225238318691497768706739754639363611314354756442032682426932143424594129279240771629425100532215932674067768805224913769309149198653446255146900514749674330125097729835967497284105298063051296447259875141352266501112101436482264471258708514867264516461921236647476853493480108904648000696949929742961932071841129535152931056552958072300251247174264194035489659696209143591918471015985932746906497803398850901907579109441573315711435023404468501729333545086307158481813581027755732327913452387410307271455701316478747408286163765237248337663908846546391337070810786034162937821849831215967908157396866109775559762848780998766806054267018951868658956281477875604848467531807459630731396582269921476863505501889152984606322731263978301059931764355014884187227022242343776320924704059385692162879149673163923870492033919481025659254422871220573562144925502350207538266283658883813821886049427307866380771652156641306182178782763297486894031392190434693131633469114122574325033179517322356574848686759796378421719256287873624495016653612038975426659755942095645290146775182261901089532669040574375568795432946275823997147697772742984369377658773846771674987265913166328446280437297543738195329396027050490105299726159156964879827808387182266049709567003530343387789794675778103445424576625345437828877374893718485850111083560293763404017989111076915027140169498886058975787524635767217192773879059370464707672569076777901029557543951360876946847767130442413576990108671144102592986342831100457065041622030326749511662006579575800706089634618038372262668784087710429466472295689342449636173907987345723222825631701853163188970633062734816140102077086790174795827446127951478840008660309542889194780098615603986290140386641425085713251611358592122891215441036113069942662698365181884018243484107697365744615820278711767110190654229202688527568083064287708769896682150027980306560237399982775564057094814561527068851218777433116109412212726405760767478897508744000463047519231489304477027860668179420141324125721128040252238483476087136444562328353547157058128069905088375502940309286188400946530057752873939225167979348028816133922175388097736906415954433747021580897588068294263871317894168136702644128215181624822599972014774901231660977396688924901092532281018082501923731963991678629846341357222302191749380666657877542676194858144362903644981770039549470423632484178931875770471960244083068849189170175379538829982829904134304737892824058712402971427847678615421931773346955569107984763166386906371622226073591006969302708221448421484712318284020989819990532785652572263229413706622567791734444818218285631700573810421854756397054853074441499767590285030983570191487562123945570277699288189102150591625904233338123410486818332285693377840258948688054466162294478251533202909170048229750925195281187242238646413716619599295838856411148871894430195977570665528032470330210918180598398412731575993862265508680647957405284778222136053247478929131394990259426043266370820381056434162176202958910488773244332597527108203842044454086873420113628870078093267575039418713489437730478611129012996600447749324508001556294030262386031945910177779969886982017807771089316272335999757041068449393233285330317080962461230110503665858476058051057297108370917722247167449285215168530179790166579926671115348953099470149429498617031264459797533487708420183614001235143586081947121451608050374259699274969193923188109751689097987536224988005477548573968183865844802622397882741924097880225720091119042369353733957979683011344317855882716622811059124633497325405003881162180652192248455390587519619146514546062141457275398845947044130016011173757382057573524285848270735757790134456276682174606190587308857465736828080027371237545466331876741780031846883960510211517176515217335083774437650286842173377360165470408154944978743138989232341180740047655065520215609776647037217542945807711132759909765594424222095087855867604312734189611214302925238835238212586157573471591579358103560482779761779243260618283527474875074456042004043978251314466476326682100146739416855672147248803472666993721858576644563996439439211855102700287240038220229066884770339671350468931789754406885467179566008316710726763392514191972883310969341659730052853539742030533433164404604235464626742473741864171912470423162405077990137656835047390590811859006531714487131777228671779233994186898992305268316027061776799925361495520782165059943610540674239166670827388015854074364101150608784556485657813588368913496092960060197233321211688465252997762182718046421082356756485563355817437722823139861153127094284154651341569745287698955015476515634562724836469851588723063216096966738198457498740468896540558981480649917764893567278130469318763604541787253605095466687051743899263445163680797575265187115658279683799445812881796301190389922679890518303004136710882701214343677536470237273677352304017299753438257452404684514710775769070121023728760767198061640629163404587790350432295058960304539222753852728400517732426407715108847166305440316217145633851457862396827705930006294046728572910118855688453988676633640124891352186106672987547255819539582799196452483836008971353186443296186129726347016522868515165329420642154605217031384324039111561816789590037243994439574918491456590112090914917927106885550645567413907250468166989238601822314569517456203023045623191650102969570809710788377844364237937620919412496902989125215749566397866132459732838012474255685382442250609639049687760395616213148195930522264284932797135624864456290039459727626271455082221036625255298171712664957455330999176705493304889649415719707253636530052118693163220065845228842857980033880901280464450057873679799285492921487827739542045722866859395766861497131658062377681172886307990516688969559584180746138403381200521013554636659246425165548318203211680599041921178740172420511404738854086815919470537527439490293764502298839424521115067171135725050436729442334935439792710068607643443386631067364845114018841983881518986903691572802953714659918222430868776591857671848029436654331782914746822045456230799955530003440706985338748552313971720419509955855254148299093326960264604992101099142712670032213636317540216690824779197769129743487197016071140042007334202830578001706218871580220311242065065634820043585990661304544306933867181063472384715672993605504413729617696683289290481898420020670487335229608368166005099882081118896721080351372414422886699120033490186135244462241604008905470999830215774440272079112302437133312489745466127452144463509172383337981830503548460261320091439221787452105259236516832483009867109573305145808296925890483709505316392438660589260888460681294406324948216509542787851928124779944214151953350458451436769508477753049570905454673275435268523593873255324098547328013513626330321176257013489725346125944666814449011019288399332951322123628578984974076989525236283675797016649825634872654644489195395803660492980541686293000707955820943580357536471427187713930316618755901297093064398578630651516129720862685390764921480109277102436785951763742607532632765211774520694998424063710429930717729877991345872322440721270781835431752799287267829299287906248514935827478143281599143919004552096164214021413879546436673844528485872847657544761292340902379854877507149653453499897518834150022291178100038163928768483309993851101228267099752161047959160443252374402348181009486086256893956779888041159315266884661021392313011486877945292824142552461872793302327384371937689059986295306227858159572049481514044335940141088531544488477520695512392532102716259603459032734670966323257401341029823732391474097577794435972824099516016712119236862681244801320338154474641013247439951626127715163363845400895874564747302947942056061232036031228264683222928796283425399029015233251206710610321952134037518557207388529402834460688207348756055040925878838771144279229722767560402677425765121987161728339256566192315391521621200106313351641368103939644405603697477961385418668069527402003715567900462486174102714014327490319524399755342498663974908424981892305864230976330283235713319000944338726186759939077765196897019428625955546306689853846849841355488788819845683540210701262337401816313596435150267900665993259277533015512064377639681251007093267675957942867400125588121540985555857609133261754642581219082057363677509476808562299643214380288319498120207095503044712015777407713609978903246853468809293462985959830527067669419106619055727553383752593976275854650063755165694086799738985260928969041760925382506173005908769972615527693195261944332268481975038359349299089998627153943391250240736267133801710920161760812075370903132057116581261014540033725838215306095090705201241345052784522309253904282322843109875917869589419513787488751968472711195148253303017326084552001745979410559960058982911169608531952945084989121778545950578818363560715215196457741320795080283290441373080011907662347156699313338642213625109003584362158196598085334855684885944503474223967946736480760920074546784107680184013159236737450985210985813492375640825847770099773930162816312601961090210266070328734151139715808834352210604829390146282440269101725075759329675918769163190015873918594425816805931137957270195674980026484786685359207534912181238198531702535421064935516462906095709253421273427223985532125565788290565673991867059752811036389569205457800712920084088976511858581400083370126567521417776142475485345425328042010767557891170442896615267436713578457261178487291558069672725839780535509062780324879391880656317058908904139927730515120485090925844012401364065824312832080306531100924540784629342378719719144078177511076077102522562807305849095327021475325035550975920016748327663642065279517072285279538584895763482566092426662816131998918947309862880988451202832237047774409991013557607520497663699273980755622290212813156823638857128733273151088185378775921433118251231051444886242037863893157041640208204954624530986533451577780748270815497313414267215486736899328354925934863067921134291786075516603658892285870485457314565164035318535062427824566085863769364844853613978358175888441118314728077550856359445099964385015813337290890213468734540515235702364180187242264288116306213833981637086582356645818460018117679963212228962604992791707234391154766953837042144793938928183979271976396981615973254944920462993753279803850487577443064692609075090836980111196535283760980649779589534542143076616857712599767804364650407104917190153347693226492170057185932356486399285905647831674664070441349248872587379450949274951404712674889861367829310258914034795637669741144931347052396284414833673738276612126155614924372573145132011115066031411161211328549150304653189621985635954876568188207611435897212192277638648502855197950112264470003626502891119545723335730476211589100833158643009759722234406754377754185554745710085719156726484234309427629689653686567346411845174859845083940120901547237230364367590612181619685893078617156039529403479435581385687452792608920702955352884707150747173103041330373796236479652671800144460831483970242212312234330478986429785151572977841010506005869481169560655703243625778973701872485006929843489375672380439011550975486213054205571332299524742343848657727051887792499003234679459603687092002828152088796531941016845625764591603649893946013470012410519476198924164263522868096075473855486111240700733381480924882180950041672975131512429710433450732306428824107629984794406773763457819789539422466165946168924912794579074277349075872053331517847893729636772829743389975510166503247046262306177920512931141027610857160346641410427286966416982434161824665859693855575943212184281690191741604882215134569183202723785116657794779009702544582558194083193019543584510760762383091552789960345463427223695885057338592795408092741390240645900539280148137844621527914105299642387629003576520665420576025531046082910782345782080057934904511875027842311285361220958950970844044197377015994150623444000173550329240497123348703257362556560761533478381338025617354025934187062855630027988274814279243086303464685650995102501703219487597913415063658390085922182743100990889999403539023981226525659829231604229691700022127192625972528051809382995836504137766044024461265440671777801211155875549634564983038649268604066344685452552714987582915929197121889170190549028197513872723058613524220551455743007561736493653782750889836182187962414545299638278192994070357981412387689707755935475742690969332777913468294414843849786124835032850297935151402336998844162558956742578576252494027390193222944659670682895276769201673033068394901091436576207224595799959374679916104314569593487435727671998152700024306796514378179836857427176113416078000940490375934902725317138351768451272581519494866505298150557640623098506874541674505343540591517046972091656155978435737230923285354479520559127133952915825385674562752690563753153665461100490788910114504462966160153572417734096292115375837423972816772215362651673871037937519752822880517919612717018584127578481517522629552166918208135095209495389585028561758827468525955198756556300432169273164613255886290895363988003962511227531513017629759314155853756262285100634852557457413364552713418601568964253804617496540052315649893484183478031921019569502867485946474993845039720176792089425018694855224231230881957286970527702391773518906942479793728894936777012321309328752967681802589924613911150212817836560723711396423021585422109015424654086778171275344404046491768905938678807513678760293460008861762454657402996626848347184813674230133242863443490751184504720927526482640711497329314900474722321649340066190417497778953156160236352266198366624713982647060936327487262081432578179242426934015597417535858042293824267709810316739623556587530205890998702706505045006601546953503975949425626127831898062480104298606875293204633387285524481449532653658278785792757674132505541575345253783237053295086752995870413802500746887690995050405991134552586387898140461787035915624244125243893171164982167900613547610087901317027703277983471238511168528780801318590545818946494341277240904180081967944322762696206598664042973552128944190903631406666559003125635032426551597718815975718539422413546284923304685105007683027494454230205023670277935498504479994044010595721541853495451964558798038349935236672894603397960543289253584284420678955695263559717597375381622499328712858808230582079247062216991446521934385313422294359225424283677252984979239674634860224677684980315618425242088994685465548027256811449725475865022302740238560961977728632702939082782374745410196913684258133795227682636232837770553976651603401482303817225236647854550200704053944917584903125425918329796244480001756983706103574785900772415490443125995466271842451339821329944576477720730249774575090171649585200065229107928989548835088208266996754291760203105305617925270688136747943033563319023696193699984643610673152365005706595401188119090318236852193334583720992907449627079121757693077741062343904585750344567159151200092313121247652421549511114735672608235844180410174231161614819361236050428284277463640316112710472652794258431430100756697806611814199240998889506116296015593158853999748472273282950206256499761253396184715390734618731078081920776402720428490153834806457109268048175627753748531438231045590670536197693818230948429131463793243246239130203051051808237683976866446185723280435099377722181469561575532641670170505580394263495565545748846755733844082321867231601399436945706463301687363909857422488751284452682100204908127671979939960460850838163358534149832583819299997821452365054693886970810894204658761805816252845499446599467747324096307209643246069907118325889417119047014755054808308470655339137218476849031674292850041123007203467170566818281454508698635689301081559213509335423047500076491481762387936105169920452985136597343501139848367226360844674430772705804825053545028542206336030073766460698906614510368718111940352191113490617628059753912346831385167539969967775207577303767404785135990032542955555232313342058711088347848634100817961810634336268599508428769001845263197648002090929174117456122191001577272552549836732236678815325780378609122633116451930198292997461137363358059146144320911709930117832387782180371668314294021048910031298850530745761782468827067259625038065841281694459831784568757592541445490503258704032843771223971752830775778209320584201208815815163482548129379182932391984615450248421211188391445925481828257874568188699991072754238823474508928869363181682233621348934968743102494106211762695540519999707458164636877231553921743323542624761181813961791980433133608926358702622929243257414595099164901496393533587804226008761295165192853074385942199651238976806836409360107418512965031251651940180626684004248936541191597631215058105997970405139922575938505485907224564429221529318790183222782932775124192859852918872550606675174303368186524952891250625709806242927371435025396284275719423045352445595171742766767532843100124888064038556040495722695027005694001150415552548599877809807281543656911379985433585525994332707829395752286492383770337145900254118609315248895281553804970842079914222387012621262201343212244765954688255346908963250434763295468833293994894301012991819536106523487142910424374099781767934245871425301792335042651792756148170575131507622662562248191327021136190104496375580211543441108151352415580549207061982486991288348230066292697184585370826553807184216344427632564944107013731986146030885344322336447805724462959104304678018315685533004367093587146244757197743070713952022858881050292755891697005486605129744492113029960436137270972929750976970056416494221765673973247131948732090265468025651099612668822134995432651546521199068888224691128872303964399803997933490930866405308652835732593256385552610383400279405917878409330474689212896067945269349547997914993930708347105491982163897202087371756874328485089041069734203963169386205090992189810721888078083139227559425648571325599317281018589189483541891297290346611336376522194182659513061807832435219218550176707918324416473609009516218550796381321304410868128487709211536915134961200792789666325458263122019992423341578902718913069720302538426457917017079551030688280342140663710679736625739238373641907593642052626893662114329196063022797043139788722879846080153816955400221843517820558707612673513193093186427209342861195047871971606711562289446018569233983574230006900678856986816409203041283062433569704496369549447831827134182677738016410948458237367252163822616845423828788989683444705029024944552792961062005189879981868372733104227191180072436141106162111534221664396584472104787180189737497943459272399429731802856714501437276727855792879590639933501945524537049691898679099277397951722127188272220206879328272824614611143573597953095942640845679439143217389482750042262660351571651952862341481610731505417714083856852742959244631649782336252521709094628536344828366707125305197127578013147527747418239895114810309876196981238890197336900135873577446764366578219311517199184512244712618051950518992682975256192703950525084915128501716260076712777862994239301854258435417635872122095125921425704875615643311731850607482366165555727557364685716323690821526032036231167835054094890672350962495545521621889135028827403697269444516543732021103172634932663436296275156925270145276691242620119885244841924566413950945755872801109362963881424410095099287863065957516763239900888379968840623605411530513778759158769503814674216057132011889336977119529834901243158178837075309323030181800618096499207891718153659974815677242555511076897389744129143136839034377800306127957303680694342632414220591052279451530438039325701448386709466137465036063049428249305113785405626212112774720117554087247993451871147755245443952531847998705375166650853735855363075336721044211459546956019089161652689422435723921466471107047085659911111437529656686680688600638563566650082708503911032181372489480638593203107391186242049770711946554629643129477309288598385477474258033819428904296240167796004730155693265795473500603000735813254986212020141121259570915984017716106907349493479854044757932663411750967598845274269576772754133929701354835766185042479998853831457106544568381526154538653205455718660688339491853676847982693357112873375114051162265183622101035846627435900341703967748340396304451347165736299550920030731612244409238247434037092655020063228557914503931033085237398641770284170456042044261378521721511090066866296980610003312517427756564223809984124717883744874094659701905524387240505611202271039665308188251151603769818903996730502699236113807992964609022440330153617177792603364210173868830511608927772216740321687178000828640665305041094349782431525264195730602260457569784585466804730167614991244329383957448871686831653252141694385207151675918448575963136242994799592130459618797372302221337155832315838553892191024753882904669409969413532010354680741718479198561821543392682718624277578132082396689111567815945978013483983651141629705389795112295779361075071737007290424471776047693949499604510707466299763856580182141574188738514366145575172315898486984398398905489993451919756800744029602918014784577268357610148769119066210005391658137172545144689486301867548520612904906824052555206853065993317967716259042760735396053194911909942723861771669977610918845400989112629725273347278264925185328433930869279263982287638715180159221646848630056717414990206592587125594239359787742854486296487186680826126874319261843434607817091366201400884597937902254077266414392921732761675845228570749182253984092477110918228925887337291864598667184823609968639245172659057833646378630686138738866334481587981949014312085406230811206742875254202706512622198666096170845683217415615638999439997773231593710696217307201282959834173792945024174706972295672800814291339453997085631519606561097324233730864897195289026432334468402804782486284146677323445925060296306605847762433000147552038268845751580266446572167614636058227598320960505179122290038531969438501078758228065162372876127702442364039657950981236380291336473818837486854230055907150461893488597841665036232799957129087529144810619055800989537521479576386272058699244389753295958067992806923675627354925411086564785218689623424589490164079505396385238513088176328142909384454474477361640488966091244351844410837657220459195187441181033679286608304502201572153015543441758320761503278356158229293952821303325354248790508531045140396713851842263344775934500504681805368286154216732702812309379115116965404852375830711066283641707926846726587322870368478761591685879106739482424601496475823807897487706852829334879640961588556939682953129847174098817531675360638935989973871283687632753220815163753588990825406339194314258888154531119017302669841168938086319325869380371555856028601968672383690665171408043224895926538281321565475251519694637668760892706860730662120473052935902349075832320214000329953323350186309393806860857248490527558743085917935691867856581122496350628593002646654687688601612450362659016980358379328331085059186627430713679306578638775319623820798580226639733289808061511173950876354699150829084401056790598688632554467705892431487702974034613566386423227776160786669875408710594705651099810318826500953218681423454316895846013688767064190857872036790870429021606399977833629401621951492508418253734991193687050761621837634590496737756845353235979530208498610115737882703333909426617898889061148331321600428420655324539888795774779613743334390987608777207122553979594187816050492053387165513804023701828831872030118970905441038037174716850735506967670518529047165730660700550457601879204701248046331045330001038521251491017427187183773938866235066725101031716195906167121023693508103869016047398693805359539683643607141674654242426498448206672261193361547591775844110925909627816572381384390041600474640381268418123242018787943391853960011776886040653158095855246249028702282978006552177990160552309101152972719896031199689282075220259797506131169292954622438675847112790701379264817220960278867038644362416037333065564946103179041490520838890038217506075001518434817462202774967356803712549804944592542573546891875531270362322541457114937652847934306146072996507322231162167198936039980838668161899139935520995288180835596485408384457152643391951651454619603896805561357891767880990297364150971302269040981327666459233310742459841933409926955702673225776383853271085829950887606099579308716038603007515840142811469062587604514998084335310375212372633065220771595766268500728144065611493896000062608514271294495287498287169741334622427343818071239182210741231301148338796965628578020756653927215459334096426509447338527207448362508894897836086963620657222341355793414448330170628268335530118340688061452231160155152305780913565510365202837838132821875647820047535716928852590211066136413165787675579904244199424689313501205853353793555199828656116536626033494333430520409258088079725763374488122794568988567206307045337895020025545289095411876320348367261396819638302485129377381123464645793203054039154156821602064754133521008750533925397829537183355959255367782474204537588543308733022871474497609823199922951717247508156000216433664976835847951653461141664390301272300197720333141478610092226615546585072869487247500384495093945254095309106031585134799698528556920755032486158568008015968282210373676325106771851675683352761243369346111659243945057120361689666520440656814053996682333833004161827701229846887675902541396358573796055035450085531518513612925889144876257521972643458035552630124437838654321784790432917165659312519544812842277106979203716319055308331468626445858045533695204575218988380194079329370056158490778454109043805750649881731842749731249251381586221341535445595681330829233193537944195583193942038320374272070164862050121211390389162778069405626852784514177383596232349733918587849979343019360716385079259046631651054617384223274734416008394393354979948182325696609255997718361781393786704976070401563312044468951672847462786245816917384130457512417882202098002664772880522392216412852861421922453495726469810146179763417940038194922904829724850144434281503617123975755416257929028665350180164796411499846919222059580730945693234826529916761287854539859749790220641226229180550039911695340987733062109039476968828878873962499155437391681789245469671066257713417200162698766802020221511041715810626526919098785744606007301566144809336087725753047643090364678446759514381809324296613604429909194612277416881919652636967312746392867947612424895812605591058434328751425653310840348584352611566068962557984374742072034445566161918990131875204606780111441866530656770006109761271101705299192226026122007589453389291040207456314765610288954042842679611837344289714933203241365700555810831465682283247099022591556459790505651047110823183019453073876744681905934740804518873349593133994456845874238514483742928053614009492476025002526021680899996307625519093666854989659379767604481564768573382512298972592340902680676831573510844122287616383047271831219850953560122391981317149574303296671705356404624219389433225316120861989064827497824392228014137535606871455947481193359183946924723807697155144565298927276812232326685033455428040061367162131179491429473286295488941078736321668284609408497906320771219029179054030263142013574977981300385437855603707412588659427955783460741189021525274640412066659873566201478888842314898146294400935571460592313022154796441180108610153856323450674075754112441670953656263230496860036873212393032674555645753351256287953143143851869552043851911875233401049451592339804157731779782988956161734575529675771027177964828221640099172431524961841123272114491820422615854274074842105152087796777348625189924944523726952281254419613562742998516722365125554896181932520545963796222024315720741980206282242751357364173065709720507343821988959169309059249313248068945831197003233589971975638253858748887754648263294649515642672619210336556291207830233846705989715955941336999877264413146113079772789720444219839895700991471244919969247298006777843822596912870143302972639795900304132882141704284888191969574782572622965410528535617053376957609794255502171720433291383184566578636107227029594701893964884568924090528415215658731653818090731569303320143679305207828940243376491919563936196321596126604477169446346537574784002420668061060499497474987990282040956717402847090896651517719636740532650529066653940493008093381396092407957018966343508963593314862683563244968981946975472314140113497557703182041075120562145263777984744061593272099781414651039379786835768640354417551998721697509484431740669036585760331602491672142263701226387650569601309358890899621826159411961046321414446067110967380049989040731451355402333540328594836617354518192119797333292166894097657443116087852151768945347127380517701754718976516336798079103040536001634934087636219537595427750979878603688792770493409849224564464468675353982836727958475225476738727477073472720345549620261416610730716524910199196257466175588415387302514490444804573631101614449319243338514388883785101361225493575260542524585554292054568905013232894105643917192391186184886454968336387531991394604135825830341780278797819686403430659931086400614436744722966722475956083934038211776499274908071626514692476783450869635003625382305324446699106876467533053438419699034540451758043573721148352698696013892724667297143201613971178172562840955492049191123033092490880697630777937216992069662214213688493562276701294501981832216671082121941857797020252787408564752725472515007493227009803023875364164156530671426236515778526257126835863592007000195932954749968053744506717972275062932472487590561935258102741162192705150863497811585282781886018802241831000126324554606039809321457880593333477467523191893873500311163890045999344599882226741420544660326273617277451671103706112235476054469092237484255018516248514187066610769031645625203968313385597646884980778044731723430752217900894235006614220702418635768000486624243307125999874886710146538905109169395595174357338204448135472355563921257490630621177621334704570285685739555096921622967711354251499654523786010004184750453279264014610169781799373115802208408239801973090719362549144163851860175145252420782247307195074828963300115574659326316066652314947005415734142141580285860883978616891641206559767233703201408918515667112728647973000963929700144774505970374596727566618189790148834798214090715767247481064579204518880671508268203713282371028829271075064285617548618810593197201234153464075870346734548744414730228804765867915388160678495088598154583659039180914416308735610767280912094921694748235349836967199060482240148894865880039411894528241489637459732985346480938133236826098078685612253786982690903274407938521122055764511991806071991909634800677484741723177442453935809615119759435645777708924556284326094587495862498577207956866045156762711149686715502440604515992226311985733651744706815966782737198672198028432748186769088319662923072954350364517391509985978728905120854689673451635571739624039778864579973021418571760162347931813435190055020921849500527744282633581555048158216876497756853875458189792616275064898632377493667626755098170803937058096796736178711182387818784562058331936007121268091614091942442536558310861956332224857042941950569161444614944318185924295993553597455189824041731257825629469041185602321524585859849387968346427429550247924513589618836295648859552903500018240461704135626985873766369124163585494746601935365597376868240795666314530605731071891575467830160210042393291067004855543623043200709748630744015600669577288349166823942135075921541291843749928593158995508245760435348232321798824942932894967440482818828902116745851476655707422460682475320259107343372631263033356883633996283885011726361191194427305226595325523309059522588710028872508993467384403907239505724524450215672375126552457133142614057832520415130940096914130483095081923516435583987146371650565009647970777557898823206134989155118519216573399210957307674382301527940149580181105232195078601067259513939058347373216737248784971802861359259979246772588722650135307089699265601118139249381768207647686180638989022589061409697767054621620897178391311379769391295145007895600689357865981613217672931766566707828276393684269352824250868643332479952064458458282420971347460586483350818683835114411703469529057362499811549637565014557239465418113443890611760172028814957549924524258099528924517583413031485313221948233428501413128812880291027403751600402843421587780687843965681520105975517099058526923905412746603218122166967369717279203493559180676110813475858087431893979023764538932889808819238436258599305550819529983446348252067463644551376436716506716236234112247490348180438930853968825686062485922732158045388547213408721309979742641736013543468757348291299176093679458090986094388797770217399977069764572284159141650426001354867667878331260593821033359263787891824019053037079934098764762520452876761774304464737174437253899506639353939822360506996433678409649571127687258668291167668210401892449368688449640776192286300539685027282768108021602994625857465150147008420185351912007777823609137883794093593130164886097462874618821351461518307615028987674222336553333456182866941782900635726966271239308952615660384240487685477507491856797259346894034707375754867650874942212227122639022263579633073206059557049440399419762557175177665998142179908562504349039465782079226015080782918455719649006856033380605296879410190555713692875336760975526295963846011904143614090961976860031888380148326334772181072345403396298795260387437218748222468737749538773462967499295642040405221176256702870284797810883969604928340883196013599003670072907470826553237624028124152371921503673875757183007045008583163817196903743343763572827355882085741111986418480763643333546592025841039889153657701957432900148656790966154443217099740087815526748426484212757019992590081079554997715087873528780713193996871465819833572929861439016912777502137046845072027717834298586498175529824107083538918896086487226034793642833902736137992185093237974687619099209889043896513917625564895266126642348151898914864619240097498313440215392732563567363443774553703578503248152103109977843619676432867024837014313688613487020355579618467908550088217088575219385462813658372848794667862731363025743708421681030749557216149554666562476573185851194497556489342459418622490811581493486307548575759211154270278635671574043105084453079339817318136817926468310234666778021713190927380275005141706447391643410587819460926230647519467525648774750219320997013032748496381849654110264473708331018856882984166000035504905193235723580695496546254695445593727362234492855466682217100373419425710741990835247588755729768281785251356283926869666778379496122089602587058480286472515225332916524854692215432491494917537542723048360411901144792934440287807238363155084029912521853684923648063039451865117898557674033592033511582257261387390283272455465220404773685220594419614133643266537148042858748678120340391447437526632338099901468880858378297047922383823010196306922359657822481532098331389058642373828461268526718572562178177177524232757929539107305211828574932683719875922616240170331651859301128165112388665984155650584048610984406559161422805753942185932641185999048220458838318236438917910991014735394198771565360287815563338074321438930094478356541618197726514878414758585127317947003219203444242629672019320901914235854299360120979973504829647712078556477187600823655233443584584760298491864809687713711925547745136647623550374464161805913296146030283190420022327867984145907632452473816769305415552274517888762690755423832083442703623617827939845568076016220829227415285740733158840287848908507690308913835322121865232583706944880081848109706691020257837417870952120586926052989308984328280902319301150271521469158669585882318470366194556256936616932871727856785710177187427932058218946359445775412192832753602744409571738170787760463088668573028221058270337728898471550256134886626295503399801449347482575490953368307224030063683049138385208964930928553863547187254678249972419794154347160295422900023987897036463702915250887051933071770400914628907508190026813014996855858228230253874022130952700220094398302191092066647019742277814826221692691630716231947854807215495848184211386895246774593745719199977145124298333037318979091734694809744540060625285790729781148410843928570429873228180765061004864490078098137000948213762474274190540686221826197511155521640072986656068221430009760091244802497915116242960695916742077584115531891160323110418908292705613355161006686548247493106407348012307128635850554127876137053200889642894266350728703463501486969679862823243440371291488665775597757854833530415674086332039057221355079360375515497103844146744253655241258151715390032073519529247086553263545483309028005033944811266829354257476327283464494529085001443099890518510393931799974385010106496214602565676148773249477895947974002347396003936326297544959519522952859460292064601459850740343309922532912768397059340070732573228337255988558092037439695198444113726708919164292042404898835616946513769459687356498752943179779529520788542120458046226504294145301050393057841895573804878596494071235260319560516525828299328514198441406502187169835655788158621383104849139903345686727960647112475929089564863163976179543563078806667738385342105512297143028470291776550687425512505242117485226319985806465888085149911523454834433868173799998574780894401202964156771010896067464778081568369720903594006924410981995466947249203459382825618144395746033856493835731848717671697111900662921153316316000721493248754037261260867951474888599024181822284125084306549499187115035957659102992576414292156909225788334113070156946817419788057084999576847138003162984230148711297277643229751548581292162522533026822499326300908751664695349115817378308365353249237367344698392064317820052007792485796980773664061053515786264884290642161384688110267301550415347888660867237252965335037938724623364862476913421059326070714852826506913970981314640554815187053390012053639087006963001812534808258632912340229317223561232594560076558820957634121638476559505579038012957095090896773928031868812501531558031581607703615204494147232075569445022649855518778001271079507112009684919776534238957371015594149057473174721046011652042096016052529832260256277394403484912254532730344688193512517453439485413457990221528623291307671851507465298742885660614323728066464705363866917842301564496663565400091967308921348637744534345090083409500764608663219035444991403111050650531441271416333829976314473542104336782119093632899906019729211717418619515383215981777693717036710099453889811417294157465816369155706260555463316362057833950871583112738909572920577484403569296597635953211850974812658112902529662389022052311469810306141854106545504629086277113899239348046252521458761009172708111377302206163788240222346294451195972384217024472012807959641829247042092345590844799942902383677370440327295882163762475304921841546977403027852563543260098638105828915085738737975274582776931261149437397453897529328725081846353523246545274805714223908459714888739906202579567771106843334146243755045990029987222944080432123209412942423844300980789766230728968210840657029068425707211816540438436306309609259239940382630318125320695771366974654837293207148116841386529254445489935734952505773379284684226485586300665112522513130992959599136807235369477432102789530474748277472559127660506011223923453242988839139873377921483000096920428516908966592233263159666739284359749289769682800605081132427977726589136404750082796799696807231227862293240571269041707437163989163876444777273335311991501012949462051684581630624030585101184460358714496944434865754489926009947856560244485997064695763905746338451920078969165999866096813772096948854025258720012814753326677030400553692053587038508729419524332098424081368632539707490673350788295765609439365871863853375094000878339871186166034152128377072323661493342985763244090197869957610518501390733295797049045329748706418042266203860647616303184087152028763259744020163114526785377995701921363094005921079701630610287920688947666434059361699336092189545862929699347613760837298599668447193812726782336175594811022177491724921167010756259059007425978122367976191934066994817338731828269562588462931546385706195785089455644200093581149161748154860918619006624852628858084694066489662999840241992412022103167602652620062535777561027704966327144707300951931042356702477798462896766291974457936444025448871102117634518653559405961844330769927359284766228470652248614726810710945671294308160469870787424166444893403133011812603597894277443507281048491189324160646538084706492233136894002430626811253491432862344488532337017695537778341992648750266610152071729434406133141014500829584106369405628815432040437346256686391050086173956533244957677628584483706183413488758060816194911241076400561924605933997306533851654824091021519352947118354511770324436222118253622601794081613308434365223313894852020575898380866616172791308719918833372898874964246271193760900089847103754220058526677262560586724391456937404871427927523040258498424625416065956845493903396479476528390207483157954276676933254678688563183474047976534366419652167290426151964779896835834592084157966433323345004751889369210820350710413462193280904117611343575573043514656409094728554760455055493399441532164070172808431800706606980990784742064810304323474026867732758945496134083407006187208725391459337764208971928820535330258349183952814921816931647483884589052681189213398981941520271284075934998961399494707127578115104260554856757829690034147772485987380486163507928805261780369268020598275646426900393393725933757789627304150969367103648718317997970821713788532728138945841255574236723067455255159400193078623711435445339587331273723344499705962795722267085216376731780234925553004598635932203118551486421457619671853287023848959993703362830888601908958763446198626556050511957338374343056242042961372035113704424101379093840093585527630086299513782865072306101662773037654373385133633455863465789583546845116595674894531805444260193657089754410670483233335729615607736009342835271626122138946213063928070431418129457982848402609948870357209323234415869547055411774450470745564389823553028162041298187184901428942216438624665720896761875673949895811389134056603152571184970512841099875877110347058105820953023063733913302340758239618947923747697489698530501393061437025532225288668018746786169574894249885772802100132519164122002070927621407111806538375745898766670322412356367348942556316148175918855620741416627068142417080857969405434221023172155900101296976145911013302157472137768737191694702423641947983430534765447959342259657405250116293628475000424261988627136424286845328166064321533714681712331415257756848919981262642931533816463472284223379368451408438078168515311506433749283284682949047040296523405956692852666946480943943655929286385657137391507898705285247026197282410597735513425028934554864263957145758794100286377700872212401730513710200594531536529346350685249066750401427563837896440722770029612447974382362305514042030636912041494924491790828359326457672604459645051494661402081848701613935293261750838156883382811600913651744038510997532933479240756935494060749413929821134381747969433351406494974906575414851856851078507104408064525278389972869769958612280825578734308570185516542793407611819025335100624385020598027297927592176269150828466453698936596208730594558496513525485475029823952881927834256539108799404909288112665862274019597328076857539518716539772651449427212438843631712699408111844740314593008971553175249463781518294231201207707627118316038207129386315472356565241940709310252121887863300031328168158056782839028542723470812826088565970235543656938423513374643847762672920934570353593984891066977632068161169122952435310221588564519187530035103719925519044659016397772317119627411611969066712730730851705944996158410550778006909854943244676209399408712898625572058507576404326216860601789231017297542229019750432836611127887217445014775674076373631655196687723768800082231829641777599650587733031554792161355074157480881522322354158777700222184277937768121853657687021837922252728099993053206549471739328452050421798802589692287437410928286049425864179602986116225738761807773556066866692068687613531207980918651862968724675829609911274199344012857576968995236161924605081536636281290411082039711303573521265572068656772703457416352433908937701101972753943625478018128650452031805354812464366368567542881648477043106880751972729146429046734703811295128293639451174349260953979211536030281458227264454031986013863743169596859272158989612393330639935131037676381719254296372372220970934943343814247818296613202961122815793543404838209241887863996673601742330135457953555479212926453462006511333692209371954687512006521523434582868504474540274065174505190946437271330590339000573098944949882194250393186442663591709363214150885103332239642495792669122577761892715205670982142369541046394799726906226761073942513788249118918705661069753582149297147898382930160470112735224774107182576751912282757607883484361723145193832957595492587910151256273963828895776903535216405328572037261537419771493967652347049741566984845384875822709429855430772441405272380281473897026913342349459417064244953660767598866659335177049170112610458088085064496757528853425627749205080184883892135207813573765875893211909785229458887470577671480463311027224108428585984853464397325763953630767056509495648277071057499475395760400478217884737807207329303768867527434023429469873210397504507762977989761117147032217874898198604779748641054942206882863238885437175146482083821509046033906662141710421848908697421341177929910882109712773328952106550594675318024579386991412803753851645027109646993399141484043051138538572492559508448158446664182052706560440008981313494683916381214653071722044233874838111265977086664037254309136015839474649499866012892871778044848518378110320913883141603853848705251003924783218496684960367981110516365737244734653860187225523973162929767862117519500866531647106262417542386084278363400304600314134561682664794259659043766227776803516101153660835537168817675111495996488454315753945494453895778871699522304564744601200575657954676141072381427117593650592753356276093608350290812697544817803455412915476136379085767339363596153721111649299970101529820649278460715774337968880547889799025414679413948668921239811159100101236888214159553193125859152544720073748439075201368698747652121171239282839971354725643444315990114215203736606168280816681002391381913412102818053821000432289286187308909935694312443709972747016491218781071660961445355284532273605653342134123775578399544710963961387479555518930846500894797642628315090544760753667668305018572417387586406779969907156165902372559776601596400625546572690595088596320894388832258284332911381054027998531229345632961250663895413541243544706617781813848855223002835186214877313981269220833663186620943311229404377557683917158987949175281726224325160746426682941421441835262460448250451588287227686637621498362736201564117052373348332070538974568585255331059814231433985381793380099941505377626445862928971953606458889460593323853368381859151154311335568402280628867563507858525464257191496246575472453630096346292143847068327079319390696171628454192139507309453919298000053251527021109142064216369688387598944353017966677709572892204227557315032289350569685672149516127698162803353588657751904435620203670423696313490275410900249484273808921239457313178298072375418154345064081380916062209620214100267310440541657296778793315307401070663893062181264153260581358654272110565730076080826137547629008187577666400622931721787260281626762217587130626994246977822444170823265081996118430131934488450698289302087742168477772088707644763728660970700716091346074913347585121322543552584541767732940749434779482408557193899763601795233173421629080461061988688477405680067356177050845822491164658985168466491412252357328034723289539295473971146255222749397586782431317397178946881262291081775039427665373698953860892160024500879706373558844820985206576127567018128741849211304566782849331346095197866068363748232686708834947760700696043854887409410264816156532002519488572568084054914520082910125456855846122607757579975895202317398121216699094207658322307278509435856145325460477529996649767619519556146551142388787346291401764378617178337545498298299611260764456062590373706982263871583724759761470930126466889600852262272102298534816538545399967424092129608467665655817406915092917700032009145523478581050807721818912083943524208200839212800384288635983098756411512918035016600594144494601875451487273396517605309076518804031938394519252161275442496444066500975285282039314791027536703781618700486072125627921180527812086923124940412206825785777976374781468416938592630480309746714099867297039135460294766064527720024465296463698680065244156968992025614188242076862799029602486845484486429158376412264910327343403422951796050689027450293513131391499017851038108963313789827078647145787505239440772735108678799623827805546542751043035575900089971293136144548065103802443782823975754501811475874783871243286274136065314814089411922750569612173627448053360326322313447859561524060118474450405265932796611466118994214001261747712362213200487927030670997290537754306336793871932825891418276716709420563695819563240326458169037087651001636951437956068109385433772805071925694181275106130346788310527288958252671360549425330588895039102526088843263756371732036371963656616960508315167196037044043082251218265149621798391237287410346673829897088844020111923871081913464773349653085389412594783661511278809238310185735535527616356595525966205845957965428624183891462159756822149028337426933180252185714250319725384849396421791172281825652819814697383414168434821170081865342380779611176538498594340507461147871156452820738999858637540260734680425840346311974027868138984111545623290653730184743822880071464607273865960235960228473222488774831925387462404506994819205391307464510119750197238642457360651478590898508264666733111215384772933295084821681997271278380306486544607383638363890514373019214763831137598652605065621678916827747234438671591841248827100464830739585582265063064188446752648711524850635182984873768127009617159333452589152091215256426870972051034478899279544766600547614842421248346240980940501740874529953761536758653594407303020974481684033879457737413454134676944532823993172036408271529746153437257675049491676331132165910315247634898437492080651711917358395650629894900477973359586036077242877712449863740253210406602477055560768873070547626854291586426512531956312902839353971888535715960823721471385757732116796000710726144959433914142878649795516722989108258480611993685336091548901086796944062751831688647842745547111843967349119937962595975858395749200026603190552797819808987593013671944691472395023376150538090542669119549356727678997832498671199523424265699057213763511088321684819346371679715489220452032020658374458003899520682019546238414454984582323948732311196652873807753729154016284401798314141230563625324592462035791743650262068757152218122128423536221089907753629894707392850486682283111503907358251012019108503663140161381397226609084649702450997055303233809196477456719247398168328688985270626914652744667094162584811787961090253989673463788833506907019168226969012605211677945876567100115537156479208420564729722699672577474013280472919736491669126707950793694986068019409626789421474589486616885506025376157916626708709603987074095806514115607224584933060121266267332263026461088476511237239413297560053431065524526037549347165215775556115742501524366130883290789772400173404736443718420736943614283230555263062997346356108986055645240819968277690379212706350621520017592720412461107292792426564587352433556800858153488375601368407354112232034711176816622393812057777737853394438849654580623585674342896935484398244538273876592149301306012536469048247959830940219100779859629314096850309319339824347793222732181806333855833329939452672419434258331660412197962486075814641960854434523939247957521209584259701503055563354842585912247911228135131601895017486017983525065727080271131011265739271925908463725063325635245655418965816884473875128625199292639881940891395025538188276274496115596370772560657603470560557085942670594948951714004868775901507833631098138835419747418669756093721302152105029034922494065934795479798834946129047120188870004690765181387300173089700312228570597510759183665680425596071570718224043814083847680884291682888787665042759502962871067072769646295521632564147980818872236428261066164488641280178464020135563439954044501275707555345342080666990991544173033011790980099157727554774459856384644056568035152264532378689954248235374903389715000423958102236203767338805417278549003639235764650488600565950761043873907349656108526074822516547975789822718851487742885962536741574319136143379026983802395542666723054791410259422235679144980379574126620638330728430799494162835124673758963305217407327572563394911870408666683807033047829255259354508983607177240636236395234689671760750946135512953129126041014231944925668214912963915938586912328337934789015782760426344380163877138198135467057408789549740819290515844851138125565097469870639414438744052374947813466880964118160734089298803967202542004193208588026624732302230641450808887222526395524862244867655355081071312834598857081452992526530399374568569896063700771315325025390115927934574463229157520898438588676102360150689562270813921146128557177884884243194987833832000118527141749615143247012127636406698677318312984691805319568178746765832965409597052404327180598221558475583972141165728381887587279723507515419329130986189146162577123732013513974882740967604378623270556462037792979825960335796361585964425292433077993442339648274090980634295013533020913204401799576553257682450407671127751782543066182473673355036050918440088486140135402559521648317321149779436773317214637759843477148637878851377229570499744543763174055261536593067957678803313691406417332910092483726841648848347427052430496106741704881649733771619801398600538725551903004766970040796237648306456058100035889064140572728737961014608109645170076908682700699477736633560806663127599504531396193983238108542396764806799092239852430396495803486523159160439683581419189002201781429105609788005100708794184960360427628230712823924814959062079924640620642220309709200771221629256444410117916300031455907428913833411966197310821740639275839822925648149741833366871472413612441814392531365140395196254365827526368505794222293126476984911033824371114554607942429269262868272739673885340849207905799471878198490318425363770041963195856797609179600204856907846782710276794620847293753933328592151933769160542902424786801458165217951282388242874734949086090005762515161042217412361563921502544386824292449952445749362124299878009084492321353609184577742911483263391410269685678457868665858146385689682255130554086672644489038079593461816640520373834343604288504713434009406267454884846523925920207719544492321430928998564288876508292163651743245099822856080288388352128320287005607831937303017357490951839949578763144658453071735704489886430489227819206735532340441123658456803991403846552575952490900435782582409075960443845424557416865833887333317557099092688336682613638890300535080389542332718831132542768560623623716494333329417607160177375504387330066140084445336088090451932320143092604653490320469537731650632220753893097854605395517776741129275450831298080353878375914070279373997230128628369334110990310638555847009088344794338084309790053111724264636117174226645220024711642174548939283541067332833836838170555852851627104163069686378739550119705560499786918400035114898735046686585754802957516014229489147982171226439905824331663797814846093306502436682862823037665406536948759099623965741767720721107429145566947020815231015736626912514399644824107375118960099217184117451692478190282557626373560897826863893192016503692687838714167918864258936396486915628754115216018448183151887570374415027535978371282594333014052241051731029146937979912512872003309205801708282777666428552249854126484342351124567981703585095015412422376146015167320077835721696509044593205709398070406439836050882907918045615114892050111301334306056742433012401917298353724555803087385173524711233729084665350022052258749059814426409813689635241690962656564931838470651341261631146617363326435231894115206571118532729314022376977733494126203361299566371222540909276589477965223073949179588383126957583246910070142554409246096288083204331459291332417568780179074791121378302221448346020673720560855591320258765046829339409629452504731691379712641040015149438901917543151988392452954840858203475968278680425877132363382245280308561050136862577079447460911072946001317121272427229785406279296577222848843034467559366245799764812013505279601539417714405843368428969953126003212167438560176236499694442050763735309112436301235395851544803640618233414232163421930479658933588187906697811751310067042763190242675348130964693895600436392158123240504497577502364129463335255557004043847580558004934187603808883080804833962925512860919187373111953518175125185686030239132948547395240401005694239795930358902440765086469635867685101380340176439963498396562618630336568663275040463303107764070563853164480491483888699478580738617986004117178165021809303197837361924904547498223712348528842194186742719460507108350564081732908445294170002550132072335556807445140727842564519865997928250053935482300012722670141757894236292969018330845415316332115991137616729164404809883881177853162251511898482340690776937456460111328865956036678062955779230228340620502501584396506202578624724902970603032224044687403159506896736156912374279467977018110191192093710957108048682607987930260107052178203847875617191036606650637066711809370745274920291620100092288909856641020592878489630630907085806855417584591086290201617347910200237138329865277890510095507291156917454501496906800071677851028735917884860014692777235191171373197821705255701514658581475271064181587682783942244458117939785732448819129317687481175994510091551966078975969320529169650222317754407823593717895908723453147406671388242201132566974840467654408455741623997311015182532423915999057610645624677476467043406389149035569864904610746609575677614456864484193034829760161211922472786853101526353874757548957712573559534263567516031844714706565098167606101919866816389952291598457769629741624147694509022124877893201317817309281750311802971998692839828459879470409837002907629152239856892601844613846405701222652547078631173681317863583721536605657629994225298387349567071454667473499475817781629920991057742628046215122657170745657721850006278893250968176665521856026747442398832042582307223580836566639388528751809694481709608308206310831983542958816384395158795861742575112054745816740591597971604714913670896323636845690018721106694686944172482304366478510721233361959918689709224975389300420842084876729434266185736247416910287808980350994659660234972298493930172145221867776445683773920088180270230373311030617381288964727601090425689010317869493575554778382832371864424914068322198179315046436537538132996272044098968237747561939872223065892442020385850011548765623627118477272454621412360681801327023208400721655105195654374692075267737683787712113190839623598284511343477279214492829555688550673681221753893620811394815029848468696772028196726573232247455345358352899111138371439219034428430717147548005915155090924620642164405887634289863203120242031021826115117863150542911867201885437013460907926566043781613232095405958419309473208915649991244048097725227768543217713344205822567198606177413695741667820611979180545567898239338914562074468617187949060415375376101758146855089584700660053811115006310809323584146548294778215987274928620252775135790927702108978804288232362076198566547953710902181651343358486901904382650321270652603278178244190510986207716035581174501762225767738760732748438660036148565476333288531365332976569950706366374306796804387362466273971425206362686574827458546165136678900123186671068152633848594734929638950114709457938523729411849966407682686929096897193103979745870070430072005609094641519420798102687746668579490771348657879756308861144775394530534743801535231886654913463795656628869020281068403580300156194289305704030008037299598399334855647519408811612220760961610049879592802931692094638047816555927256489952013852718698014139364703117308962318984660895770398985012771938518796922114985223416994126965575620302846565228573244992887563886300546370030887203402789675761712826273408286801572718484368102106044898654272436417091977802172407980380577968283950165423523572673982761967560557683737872044024705093472271121470487119397237185395474539541442109602679566126055983198321364187311383457433699027569064132626365652218453969261824564597716565352308088678244052703467485373611080416961251508359216565850840944632596880704594946228685981761997268657497646820760596399340093498973704010589053440401239161596712512656797699762675570093335999568787388033162176019552727347027755890734393470013514476091113850396691608074174276831984102375796416382327064163703679266911614932480144248686340598635834059863683141432326865418603977112946525696014668373120020002598295855540684059988599402979206644175474670374115942027595432067841476550769212022804054230214579740346709265171477904618945368621907589799175299860499573165653775831121900174875791024673577136544476272274264627241505970803194052528173024282075192421490351191066772364728106095705358522489296194703161187410159979851537624964701080800493422067358657160624610323192478524008914379243518673765042359066107718122799692141812266507733045952133589372237153701368795811212505398458386997908719475995906097696591776198510737019434585546583088994439394220825685415132456530889002761897296580716696727284029758287724546924684221436619774611752203919468465019640470490787596952688886974656972529092354058552990302305314630048016751770004531327010775249399876322844958686050537930562899336108009656961421035820115165905296637314518486342811174006671422257812316792041906099246756529666513414709991430618763781356468472997618867333619566311908690867239681354487172439910290370860902985415985694502017950113554552913398300397008772749320941854016521645288538043482829924294037766457250869202764135215244978246878900215364375105436203052816695655598078997334595663035595945468049023933743696096064128733508827293915455242051745979681178211405886113417083468728114180561159521790895258090966728203584161978702005335901417700126139879530700534936881342722146775682389064934814672290139172780196177472798406840273158756110010244546123749235049958978087300946877352797201512235490046119745782204896299036063597590082531982140781687578863460290395281164249295473185840448865037470812990904302408182223540619025844875787031768649850353970245358087002869154569245467573497472338211699570978473518669035805982075709110284290997343299471826029268726926689024548293555253845270981931175652943043987454944029802932818290446838632384361020464925749120722842402087305950438988615490612631480915145647990141229923124996698108927842033683177566657792651004121641275711457187949099649597356069174758816125603558261546892570994369364732778180007669268704844658962986909329893152811549837254790606454236022044572910453785301286486863282313020541898729296485252086861677090461119331179353784997147377246607635217807752532743923222824474242264873904674294010517714859458954827288246443512763760049547428960956333062528870361188213378261782692807169920530545188127204614467240899027604954546129789779784806730146136250686310024800834680711326015366127559134301445899824696014112119733001375003401544821190475488478025823815717900347948808181021972491853706970289320266442230738096695776124949909073691353401844572080631591430303955958094844149192526732804935480646957880555408905814147286983119134512838754726777491527944601486379118048365379162658703277766646616562164016041864247413360801311963059148536096493142010673356173875478764789297076925212292745979745775232429360637234861731646620464012768362548138579460288440252260291097401578813035611699023183565735405386109207992333361634460924295588082228747388396969762185023487180433756162837244882441691274355511524977229110668352450412334959193628867159828695105844749755131330212285953835240276139392240110614294641575459002293791572673670673125934410251952738969864681774205052007410003911850724856470409108714670134560882305034154047140033702496495479129531542023253976329743504165418336965802599330150935908649033980467633931410200181503070711009236850421697107303497832259081838799606786453414126572694467672802119953195296418371059892754033447594835267868474759209774870544784588821662130812316544955786434540797251692154127573630499734185643975807982334125862322334845380694549227770076317895673594282955241159923055951118233004964367451587891924855965122642584787705259229692009633796651403125525294712524275032837341423824618954804839182219794369786015668237182521737705916675268040457072011669159209363797372376810919746407197042283924928002156324109858371703526588463665987953195748116346486033022653516158575157394019909395378364295143238847199068769482898218606501525206194324589926523734993618454417179003349178218765451391476727916622752676933608706483916140994280862261692588803927297553924072748572732174644130855310021286236044447348743902673883246618257505915298269159732125193817202757601969839589972039046420556973122210865546545933166701326439887893900693381520508129856910765525103962352578912499735133507376468422457145006175647150848941757220699443259061227260101148047098869394980024532533713696810903684500834263383581783766581212976767752352094528020978975620625744212239840171463796593005454040978671839718376935567699350056725596833950401014343847052583001660384203347458886914407532041108034126073052365273326224474891262760998014387310355851310562437648537408867030253300580347331498488997918673042507157415782786790501639325315119875169453451201510888813496425261568400389379803838027057455944990711541155157151197499762363072837101288915070529044600606497961891764352653380808396176569789316696891988738225937967619303301973511945297872727439377161974921431701270584886796986808163063587371250946684968992677728603290571080745617373501092267813802087896793444132776193958671518033896432208896750686304140336456874001582584038389871107526768661448490323745852470134071353620144023592355299808424901445778466703421371765096418250122859718506672208708162745476163142982398987486071221440440083926168609674626062903600546560780582004317035224357032182523673060702282265328570268582741352376028639846536624546153571412487043662907195920786761019329410012574492023009728857430597826410382924115891094310485559955096124793731527570542677209092848620973158710305187217510063348722908170301315276216832604095992365314793102502682875408742372645078608418382767710073804722875220969030737803791749130358186435175617856844165179826191829550601376069572865255836344465081939380913625225157836715483793893092512720142165707215015075520524198034687000220929907360143793251303403837109758363402715242761179377104853276672106755234762133330455995316249104920529829407687817595732572403833945714088267752297263274787124793779576368641702325084604502949960896127343734551764642865112899567943739169123164170609380607480138882051068697985421995743257053068946022775531081036126786302993996262522665214159175519901374903453423285030711510289442952217128046732670604241089993220840009559520677804133192296070832780854082181442361490988988462601073886079997855535000032157146971643230967536196614412642711898728850103690024809906781808747020613716789421944451453485759536676965428743525165209846054346305967351145092502615072671032912996841970788083522122426196138330219565898513475242136368341433301597645166833994092936203638973582514920286593282792778492451828252970987088844453732177599366158766282997140451041101467550995448884831170905642724365582353005878276346958090185312290840753759843439576187978565225214823906031445107708507728130242122458025336262780187071550443911622903393118544775270979479583482189653640268732832933055404425890605108692209176102844831129013988734639974104512366924366467851849723136029042702330974866223477422952986663652746287107509602632233359737078806095636688654644191778741852433035559648334295593458399700413748081508962816309968531289141488782504691415710047433494830823814635108614638379350827247376713332744875484470387091400689770392185881541701595073647555162555867959341113106886603953735371561574619399213180186879423453098219011396940956810608292657684214905126253631459425455951631842261374842979435158862113071677181032902533769944185590104916269938441682030554724395790369461558555058371105769684334201653696678799903306365277393221837763476444568712740566749976303147185457708076188148481383724723060580864488561522538315013501348553364134445275165407212705362748139919108621513825670670712748207203593473808153862007355758884386202115344141796261849691698940375958556786863300449897947271188998314325575431679926572172942800503250677320283809932789300433935655708358508295424392202975437144210075313582882824185205109299575722106237593616924677419739352742292167913497710014573414527145438486349353683211062704836737709527914504942609166808225811642089210477265351047609629504277396133512214132079465004205070003984671848969351237170201970941670588388997117592887519610781254170370411103505909403037712617406651786005816076557557608242419330044958977311132409516854766957372406760463329609342384432404310956724282526192791570535755902751688238160512392734392233248037089522059702179774566186144517602412950211956089385605510841904870915072921285305899389990409323274268838777210404404024244776469397418661991759001316594640959729635788132800464944220558084293905075459643084725014938429789928396978632777085248345632619374895444426530700978222894690423544100825270320680084074185802405739442996678288504560457537281481325866160945135688387169512901088262806295104619126332177761947760103534785633563525717913715703234811600457198521101767464646747050095710527068106521435826993361970027994840007995840136766772083324864158975253313180369453148177679281859950616239876668518604194291030958001897702326463864257011943059256823154158076115411328551817883759491144288217748202683541830772524234734901468156806478620718023880333808314357342176905810588599032235712642532560451513735045778242927948777281842967395210783047947992029940671854826780941077031649828395808017176413935424056719613199511024067927469009245997944489007432954508591091316927569634278268823494478487059497543803475658202322318136512926005629691283177675380753280336574333835147743952400146003238670046350437229269310814101953131054193626474991499723327041319441795509130808474286661227373167905615448121038366279923359203816964285542383988294197373025875759750806753834139897384959985013818006559975991575664380032509559268517325818867558729079475847249469904712594844952421378048020979994959684665501128495885366096866382263046990497311088261217800753527855277505955763365002865112625690905632006202239663765710567306099388778340100970347494274261864623551768213834155166613598250958076723916916215111955711732846924401604660759102100521751459320724330051920793920048303657043436528096695676705113046688226919268183565973661430989941462609429124358676803433273980672546040426467156522275798013141832474187715094159796734340969951781470643667634709994765246435391945713877985454700990041738399124106689533889825734992681755412220637936199174655690711612682913281625302361021412992736213591165110240836076863879108124485548042628135756661054325512994908216080405573118419163083252774524821426183517034337032148790573209181034526645072053953800609487276301217619884855265574859640409734980385414002661962950429516052144629126548528295253398544306172091789268303827212308632358597404392786144620652001553133783375927377133411640012703465186314343676499339586927582428124213679766323498584475606524043556052656892675152369805086020871717585479324387874977629288979925704185787198980459123231360917755016252156521305145470599496827051125975507305911832388731982991361721464400829736085763023041839670393509250977332508629657203979414683112595787927682711187546155983915263655424286558697062412980257991680468890506404911315121618176060260467206359201867328595310409166982022002831818801772082355158913187169517027068483952862403832275456168543051492384530079597162224552415831473449912876953128852053368951117948603139681755022875315838736247535693031885203254509462786320740902039074435675372869829204997310740657795997785145570862692260338379161522316525763423894209347914936676707067941107349830928402187227847507407623166568648478894145266495853084598479119854246960318657854523027376764754549169326065724179188325551805015879483493491217389640883972264976369922611676583189620906084043556557324692430986242765888349416618401928244830574288236728060224453298519440041982015827212709662871654253350682090062041030988083589571228713379020699657631065517145706627267524613961531340934907515466313631464184708181168142300971922908372231775927143398333611014314480243340301325511866019333815227106286317831009181217772380205454392801487425010720405779512475666247589968148192194023191086841250438403202768300249014338059404407209505757861946739977562800963170341604194290979686409122319069761786457234918631563159528283854509737741507850112639111178681259539158701427024080843428844184392185403680806179124473393086167946830913533386799263353783408625785012969485606908306935707106635485668559580460600486157604546753285431987452481581751390419009149152513763669647870027129579592494175662074335329628667992507471988524183309263856177165296071143462919278193930296722472902580742819112304773263697386234917430961877504961894151616857120736996845757766665588435688703546535443179075840667069332431621202351325929714139702504180791152067385457748272920955279763470285552484374402537722647947768803714591166763351413036223881361184691085090144414961422023850970649396676713833057455745855200048105601660050962476461142413728184584092220796307513356184140379168979009310339524943348236472284367727403178132970019054354255797799669190722097002482085592532419541575992579502489893022748456698109592494862479897291319504903111216573077642249631745403349709760255474698417881163703757539531504459598244572846842143366773282073184346170523078572130788289219261768063393552634542456090773916036453073727733504107872754975300594387899277650748300302313578497940830685604394920607025319802479551169616136791569124985112931430948731957674616453972759862884950073486148738643367358053563244923440248212441566241320905474401510960668514563730843561517761848834325999715111329339832504757555220356718149814086747420763721437469835614683339403380537223968295995805372992493943105491990157170383854482418618703211105963736134187490122114021832775797699300741239502165687320424250889193963334210474454357388788936720556955243572395102307077100623382080501706763435355302442634152024982928981401409240594483862905122137399210931577557697607009158221424166399698405147155484102427367606602120135541306832750587775343283622826175377171497918122970719231787081594405172996719800850828932846835949966445052320835875811785491175023508708592911999371721504961902429064372898597162512708922802784080919247638979124555061877512413870818535052367543600074032177577289929006076111120256254375520474603764193641739648042652501827157105286362201962897270894208891194225263690488513660598029370570854777099515117939491008517241579166772302271660151802966363732917687337051332123467413423892842440533739713580882107361301806466699803289881535589134210721536649031314681706728579250440418996888974403195724672008468172015844385493278227211463099363243658052766231655051847288022535374071445501750502390167988132907517526688941172835096549239786752349360368499726456737977148362665381529091320533460928649336403941163506657718629409998613415630187450244361584847011142159658493817125858031792919278821553031615302757521343407014469861717671841253107407775715926249526822671948179288012835955387949839136069037848667016460338507700324492266295479200755945973634342101097932784594404483115977467205703013009187329645290213053601963868464019875314527219904223465909916583798311443447894699868057016967907323381156713732959466700577118110343175399774052151027303963981568421692621992698918151212436944748134372122895271438694332775652142642294499562078133153833380138912025656961115356056959905216295207394059039401761773847457387771165784132325382394009402164265104087943316561417771163126549796816840288467047589380450342796322136912420982523414415108068026953783889862133934081036751435778728185902791143718615921090409563945107153250392943439544766172011403176859705030539282408126117912207257941135664211122770856218505394420647187881802251206476608296038813595181258232523856585882167857483897884866583511839587562535798926915243153716227511893368904191218560876512766736925198564734485401436984081459414354632457113759171145690428419217123795853528712459013417175556829243116039216467685334339401667621194618260893143111191041187445846091332425351040150686988766173101868185877735603381212963079623268064414032009492377553910672460546100310852887139298425720580483474959423430177858481759543611402497501427152916445395502138684027292103281854626663860237271266500965491275263616210466440948412307777368152973350014497557381093299711983423157925080892811869925204750662192720601054347354907821827460163637685055386869561282942186950042221303840094903460922948186352771264921967798803950807693975994778543519753427666599427951651882642719527257765454380064077981752073916893452810998729409673980888914170152859901398359008144815116500521204602405694619409939287241994291513972977659119183279662337801731016939132877705757588158578970392187538194274323469571185644322065662517489669429154343898304454285199865933674842650345306081952905294129015517870866534292418862668921426410849830778603558137008876676194907623199654770027315269094325635067313500832379401256485092264671449065507045493157955114126376790078274465462540476135281360639233886268668892889278454785752135045537674582509528940209600682178191410935151177587727891284931191492017623758928187182330595720536079809878556157540558807897881485789451202374246479682184747903183729146913089005052156587382794198735578579383522224046042612399072467717209280860182385253059998067623720064491952908712695820539522173580017959506622543610316490388971233381801200991463736230688889896741736689567488167779975096595801263170877809179995965635296596986611282365726370641408989609093920350094204198965701871049161202891505651350207039102801696814955620921921730032357535513233403518155670574819675003368101502055677243116192260070609370970917975414181312410264602792327135860354829152423793871155825494439754996046281614516800235772314028013834554179182216122596303128166221040373185354000645036638859460418757454946644596850835219874402241119199718626225190895202939689244601610586367104960378877949799206311109690665149571268652057766525129183583229044510559153853567608173945597506335775443811897521835459728762564027610464008153648411957389922279499566907139012011426394786325765479201329937494452752594037955158791153586617826394470615044937657095645834311855233558833461759097751651947350255669654897698217341850614548159138511732851594407704459586131860801077696185170019002134783737362758276035595762739214203238132732519620602606862963709055959091647950387511208756968165271817165890931825470066523252113409107093993856485689121832981040726195003227305034861946558940893094254173167582353315719925449440124229378799307339475377481580752962299089477579333478963772141795054392922974492039794670522652631604649151582202748713107407263894048190363547288344651431483664723592537255893779330948654867040596834684573921078168212290895129401944679874786735794053100367548018002973148810004796541365456907217319813992624583434053791174268546571524145383147472925049566564344696093002911417169673268694201420179308464096775406357185944605684680333841573481480574536210135510773828868941675666402787791996773890316263364479460650134948453108581178963591349683753407507473887622346772512275136482370531646289180911096271679270164938499387434329344830217418248703403179209695805552527804790226160235357483104179779967350146223027118019260258675321055140179798665584835385153268797604304194710205340128997844057931842273028625818598814012311044751974514488559981024217040132253504392989616158295001921013741173246600155402953711655344833392552315315670281870006223154196290326482206182267418864038354800081992925088660728857765328641441850065227924610749423820875099856686334901551630411827697841589582127294218745326757855100678019496179808920005234422654795869347643858806172603533939448433403907693180300634360321249011785711639291234335688948890864060615221120924929629478106151165003934202148429031399729573176350147764063541565544899002066547016799819572880997868630216306529302524860118646005276503321810744188988619306931195853315200123767823813755654082276177648998276484394297692882376457093205906779396343680497880736618372783389186681748414626245956892393798447438384735889601756412204805199917499515633302256292637409340975559880112487305541917472194109210404959143961887379940696448768917647138346942516089611537268686262126804026448658765234259826578661315444774475430135741461405266659255134310102969762313348234530598284408692811894212035857169614242159975141850372213134495159163575298844496001927958495107775175238272501581141976889019580974464564091825712299758016742525142736756531065637979733236913121007587988302895778668115133491220241860323665249818447332140248371863668130893889120318842795153989331263531495034958342728118921991896653723600001612353967769632862487583536534922923259606606987371468477792482560154121921922247280392870661404751075069916794610486050323287312317663769305057901340858504124038677840542786469777753971620107102689532543498304252255879429578590588092214894162032305848660412241278886565459319861019968885143694270027505518061282507133853625503053573913745556368646839140320183444481275233217593140320259526912635303636618701655219123495968778255192546809350122106004591054379585706735131777538487130981730703358391392414015459552273104958607039443038774050479092901365670324769868949128291790365120208477014134536455640498492168500252389583670402433263537887797470434220452165766712537540735298772354808710587379446849036623081884868312966980347901603742058553499149775476047768492306805552615546443462489498968060946494898010481997723744805003349488139445502420299532554380415351342835695648923743144582923440781545086362889383220499971011166681486514611451652984021554602251564322589591899450679849698984538193987346327408431408255098644332653286730154058727139244134113712215931413449547589443848015273000419786340895500064727146734555277368681064764548905993725422657151613777419368707797754572581202991170453458277124845337136403430532306944075208867884507997913528538193383181520103359347540758164002414860076305169712939892830935626869321036396407244584553154577391389330675855951702600813467803999872574532874082529752303970646141574650767048706143146056596086697787398573689728708980367983470406023565824711824534120258458359321555659803151565435936747513603636254483493318461233249881292808777877587868841770758357748771955401486991328389314565665149196559654179444299754120684323271904689511290628153370140918327859570091436559377504783029862980303289456832888475241747073738900401808941988552350558498852182868922754136959735524158249351146825325968423968348173341827261579515454843298360383620288025597386459681686498991418963459735119239520659844642618280512103553183232612048012419299489866645524091692185346136092162257093605443334845606210556532713864389917350402628247377408853505843763538532196647204784311252464111742278157482502251569267428993019125419982343982283392429004282639254303143057320617166086684401555569393732502767282407326143952870404396813003919095511864056603417669171077536646461358749271110055817656974699462075237391748791518394113453967711213605135163801045163975001254316731979115112992808325869824735551405369110009936582188461333990983117577788464217892663577805275941316874864818915805470918768653305813817256240770080192261359200945554169095590664853628931772165672439914685861618245910434455590832276158238187300196633938467211365727797501772661051961740050890669484711936527332854907142781297789751623572175619392152719917919228684341042640768143242545143216696930881298867686597306086091748539556996290336095593280518300574206147717057243274352032245717260333728761709441923710960250915005684037956771927763413232417437722357247296218098443265475088341849141559939819741608318452235004946618194595785035256030349530513717937094164985776183743180914260731588022053560621272448180643682840990075360280275133698208734758640431248784273899113050431101437455801177372952852822213997903692146311269783206353681060138016820423942827375225328224570306333182267661633080291620778465398412521268636530583406555760436597508218991527260163060204511756017463104543368487967921556821739916696627066851422255636099675717373629764365285812368367398237541526417948326916435951914967702448263260629422438068792944303794654080439002795060890330227466793389674090075150317355835561270926509243706168877851925681008613808548954118592964820717978250084947759372911189922556469152114508289952029325547875048642043479062810382812041960938838767892787980738433251500823034681387498110610369171004524256484400971529811368401598856995706830746681443318138435040842243843905648546330124950310311946179340127378767555484409504245107041984800128733499695821594728750422366806516558016939618333100119036737178507081909493894814946753022167403598015158640555938705752790214649715294401556080375440219937360828063529243417037238049480931769657968306571401695022650352389026933842653589515032544637989542007863660487880269300118504010618072906224932956896388377879990235421855997882600201738034809654467448753152417873787362870921157420363461490423489646158658913027913359432114091228132850274997583947376261571043275862662291857667439870065891380809033392893830445117470563417755379214484326359025922281140939122104930291565198816145146990044147736743841482097110378585863896141042269724522538915542123371310707750483639287905636385146989205639596595254067470522373629668791424341871893026460702556706352924633155804675572722770597011081829278220133309991858222770513875378987908440350218217146126493897570407119028323662021206552839790947197750312438286001515279595439384626156101547714933773943023420761970121633359314917196322359189239542167232729140896120984629673093170830592062247118987963264610153466716911974637553062943614318733517068642421948632598809755841971689350271413741732764530243800839190848171091764615622795313321545648591654519412477731281662547175844455788639647055469192821470660532483544968586011116879676414501029969828550339826168157088594621197365582393302406201778451012990015980183710031534173659859288531075289984315074582078530728685285317715385145278080327191109149816979087126431322177524613396015376734440924178491531401901888826472292097016573144501687251559664356184410463191440234273742669005232008715679538215162520987439688704755681708442005539191059767099318117086587821478407582226186950382961540472671246883312961603359755427138930643420177663720175568235802758184442501293459655351243311440124930628789648136089499396414596325762251239103191232691654331625118996746381499032335494232585446216265523559433790059490106349275536589335351931712447027774863915129326391503709378421420035545411956261737338337941627930008356882228489613948916061256626599219720182690462975768085226801559545762778956469917629267476717498933560526133402820734470900365307997850283862848156399801231090861117637579388916422490290889343373615241441144535520995142043193440665628699982135515862234820993741059852108718370696702012322400340730719343402456543382988922092472702245857972759229822592509914711412843443510376383055959408315806978209284570964006036927478195801387898022768000203644375773587599023482668605770008020270284649787915329199602183590440765780649209344224703775946279069060295094989261382778212730812661411349973928254396476124702851493428060951924132656742481137549074984254135991272256394868608963455902277695030293352024634376674452567612381604755999185406621834499310202661642630424251033595220475672040982413217769562725204307938999130548583833519798132010225809907458297782215534783714714246059462386885032176408951880156774548219600765156089191361592796873293093342497588137969084791144631077846022163040866651308796222350997350650205248769712824436351647218873760158657480138435116279147353544858960188999427260521817295982422477492256290754619281416977821805652258981683898479700532364522850577723908496684081709768049367215855416210472876124412413583087014119840591214297824995110290931320366917058904310615394080797057224173658323767879897506211920942510578974498755626992241116423538941623545960863934131072127407760799269833288533142128925620135151478039100650689238069737932364965724594206002254884558148308469069340338566435548942437237509294516124865553474855870951709043495122465576057597939677860076696356344066843954684666702756808313252647915732133376101556524790788416197139100420035412088305980220817528036080400270235929814823572217426042034434007122381560042397551085379483937192277245982977214626653189524141442884607372695439582551992425798045412025571271038538441090837840043655506779345749782968615443636150603917110874448480228732506700068514313765968472830063235454730296542931437794089136639440275159644877337873604472931056892042428778936754983197671192245122039830911241449169672311299422562872125652687283094541633785651955193337278216519221814886799149669828806581725355812267643082009345925107392106053328081875755393064330301593425196352183848238185505422647120214408952776455916640871527317970129440470705147167711489853156001249593832687995350432011426163869930262434571766878924072381733237406228917086415592310713396079302246595655083570611522667777911561696146912616579239477332115733074790387958533225675282642717381997334972866254132586926825252418299731739455278782903227633755350911843062747032035220648665600210833848189003997205531688845285998863474267783416227845642315200580286895972116762874173226571514341451046916963944917745722161036571398261452804357403446947696719219040212168574927664560349032819384231249023755731186891990002016711342013244111517104817238402432809617376921167223639281770506000482137914249332279160868132662037836483249307779953407545649285328675898566624855367392600290476209919385661895694788346396435320654117962115485899273937769832151231563874392912320054705015609360634180597942689202194951964019517888962098783561330517041263373169937047926621733599942353606065810131740394570140532232119288873190314491044806805588709858267652266138435775499895443176491894004190888299805396976171085870527746062669029466240145374968451902527758869637512980435653082508637017562924015172344006375248271060750608913481488440551522605459353479216314913493294009363086095347791166784300121159690803196725281540271785084424419518781108732590138146855348057543565787164556622967036206899589120861395299695265615132800323111450062889628208360135234912413433828710570346863917623439828864522304274971235320314589023441925723174457591415930411355562825763042210041716854528423860914591695173795884458129001224721604762357613265403724007621891906913855737158231747561048245211645963501004060664060012015051163460290769585044578427765520521272145534407759668847739887642075427916068165831667717323513741317109730222951846535053166528928451019205195686639968843232226944900799329104829111089836455835446710185912333302403899571634771996474394936745646265662441550731275964478938164495658376807444105348931222642868850808525312814167738426273684632469427947398879260070279986996922447605343251515891278160912237127347106410483367151179437746497713665375006595894518599497019319254367330842271744981298334646139161310739295750753650719803800446012081295980410138261497170603575215594653571774920425545431021148212231249487210509521967239423296953155422737193642880377496127656817194545270103989897969401396722468177878627064398120150641295569867001578416814500306848618130850646305357641967669988608555990192621135192151342810143092218873117663104065820287451002151660480511983187494846767051397125285935948715636688714596797391425421373302995237318302177322452309168111135227099879020465917976839680028795867543062228031271042578824818135525712104819239448591378794693934498634072187430721737126754749622580175198256362486604913178333362450344116665302582219748379045346356509502958158343515606199482553847685908377165061904029806982567403012868835901987719052298570238202510911508178004706014421506275704839179601595106835198621620204960632078707549844125689371634345205860284100070598967172051151391890705040321922304286986878645614161012292039305803378450694784207620991321414062173758503166622085198955932555429131548155834876951154880429980067492393341358929223342999650200114933321156742230338611859835510895899295862616883963157059328774136262770674333475497253610763794168217843471050650793657617868440991372986058073769208988696436511627331008808747930369592350211421023712952692251613437114232703363885042720910509144845698097018826029868620037739575023392973082467371465826763214973398270825609024055644961139947077713079655709544211906855324010151649758939684356590758080968512692241404027031379727521882321615101278271373203476574693336040877985582269700318601447413080654587193535418565082808747354688983980425543864656727464837781847363890118648663060057399238338269171895101738222607972173930285762804517255785853350291142147415351746054266975594915352713243591620123942982258160595232066404393918980605057681173069548389342050427967304078502386438263894225336999505919883777842048270951140573583034458153735543696326220140012429527611677555461064995968021872055731287727475514982651633619261579347370037818530365105968942627632224276569325674353986064607080084910886906839522258123870114028411737655870970726502996954629243625323805074984314128952290946399611331382897969478011254840453055632330508627368206224290942319757145843829918056606717583869966332186385377855375637647464036638463678555125322901804094846458446517033222150809781410614878543442390260497463050277483653938407378761805095258028315715264020912613646906463745304894883451566025607050731468906154610770021872918572875028738654711611131589411119604809488108812947507753977072458827688155113183600871783984866030921559945349733521550124953850037358346115213116186701783471167005289439353013431458594365421295215593994122452489361525342219079932793123117178032314410665993371673576220967556744032000460197448180681882277816982443279508504095825144288619496866481628080740953832842480679085031549391554434934393935541712705264102080464875401417165225000856174553316675776752323374760869397572634388650463297628698566183646765716080119092485418857307102648399938419252848387423356277718727358737659300086073333827618318895309023915301113385322463769141618291831793791059962431009660489572121860134645939222863113295829861041227131200951983941245628017052697825183427726917546826986206734196669466895076404395707484367367519043621088643150517478650176744680851154353849435237742271905507782407359286443170115018800058838686805807924408604670786733516052425576306837615848059533494521133964523658811327394339102505273387046443286824881003877856920818815686373986280349559023726383036619315598219085316851810504289688145556195570850809328318733728051576638248480193493188199469363893346544444052306498233991966508695455636035766679459728511140125630592783299221104386994690831497169179341147629709559432430191312822640366892547960040552067388426284632218515825732327876138211674130430020625437965914287331278649146530698143517470643115590055654224641669574622271720092750791932618570755083006116675852237805034623094863971712214904998430372395003150939134554177702815483489438345778013483178188679015458414462750453292422892698821484474794746458866759602098152638927770070553033594572061897638991704495786295082653653344065031584544749646479151657076354113060747273143886595240837315134008269786604438829551730375578678980121547512191079482130903524376919474285182869612382940415151885526868008295689221115059201607871301645764820211700428508518106825478039019907463425307066950694782765364739513310407219423823618767443434986142027082985370406589809010951102267279853689329893571848848895437358579337206160709324032583774738947018671868344544108345654417602167977441941595328467570252516954818518395044464609109006894424242596305445220084890328400658480906138271509778463637166589417507798631936019121929209768429700953731862117502933066714326887072852977373400569724427069714765019704585604043478238096091364062055320786429260508705271751793970854715726397601516717676350462530017038735592274668752075085729656016531778461035454215943804912721281469214338292417048998518403397914185127777524130090345326172274572070059017819379711317250818196184554885366674390139006222507743867363670931076954187913558143323226790454788903948467314002682859320055264134594748692516426635902740520267495105243875465222802121645272510659098672016811494758500012782241994801484580535923466586627282501314014981689578157244375598779230077348190341461037197338947659747113099341424184644510797198044712487365814499535133875849607893715891965475513902650371262581297286851727194341009764987806498730091106687413277662396258314237959551397712584853931484309559135733701639097452625593383477266915864943724715449968974163677246775994738075965062982826920902618398622358507632902821644290685839683124688322876526473479998612549878876074202763869361278340996575563938334071848789572818111303320483384219275283341777081910300822639923941124022862297198701184202520919610950797756051519935542967319046804848584363569753363675044165978580078415541313208665125712872600707678720819016738230000389794022704665623612058811701588039711991014665045769918680957904780343651704880483488436087599730337127143251395546453609350745920671827029837578243050107055529170095694415654490330655217033379717871166195545116915224752362221949403550175863415126464216451136763526065011977626652608722208065847281922443557132702304706837373916874449010154551807689263504237348771845111567306660849964872172389604772602889737776648308005931525788265897173689136927496120571811558699159073470871536741558115027055563786603723645569472798337993471506365463469966066950074582070182589433856770424699544165682614618109278863281079306304190332369897718446869116143481102901441697992802503366289469419775464558292124256759172488774720784690877704257564054830922520962157076570738864967319176400864911623402670580470760052371530829567091694531313501823796329938273047067658889100093841594106523215702642205538811005263063651087232810829631254415505925796692609327588347114340049052830099653724350168893038170676241484460501197197208747482330030092337055726274468670917957614641468822695787215217079294076119343604086623854093882103810467226073559158411247130148442515238559360686439586827412535273263093223158108158797758561084113829421673066333312275153861655130362194148673576348409215204922506729995090610701216455391637159697716308521650281523592864649451960763471147298792428362206984340365177380658658815404797860795343904200143827533641485316422162175347332363550763008659646525455555869342685935251734446207741832626306461031358208636049216545692806857470537433881392958606164002643440728203831905941448107716273932619140093659495191977865036975622841550297048402843227434199224304561448177141093407883983031636472258134064176756842787405132410047106631051684272413144714503707070018153862384964747412870495946793435675173461026420035518942647545311494761319272357027743112599820342184167644530327990977266946562177475225674795601304013932894808996941822289412660158530275971019770109537701324702332610350348964204415510533602068677606991899555464118012380301569655343407329167733922034771183506772100948918071862425743559220919559745231359523660323680863557495565726730808784070758233087376977198581701542329614437725522637000006137617660156172317443150747672205196136716860254938538771048976702103932302984757292900231762668472236301001571410546476531725521564825248423946631406760598824520561466866335127857920635997000425196062981658515791118258016337658536782116075383493016552046152719148139147091177637453228637733359854195490409971343210850702153753397635277088970570662775061784420638841334505027232639478409017624896953562174727082416943702194995961393229973610055216527634953284844919508025722857594764417681627627657070302751046162764186878710258546349458708303601410300787653605248509998179639564663917163425249166698725591022779868672444542316765500379963693680155816053424004873632264456290591759049668544326268288381084484689637581046795983761017615967208753303702089215656004207081534598854836658301985484598400224477940774722060278556008723581363216066511582380357408067436292226937087521817732807982011603239899296239688724717390752871184536071837129389737544763986158892396883508818759435937742573342142658561573132794063411310263232624441490276176252651764293724548943854395397271690069232336139252888242321233081011084804824991877895853706834982006915379832227641054859263455662244834999245389511600162288425710505297043403951067107370430883534347878373546676296451101077491610308256180928760135086950776136288492409730319782464275245960763206865225005098936052967617053767491042131496556377899754215312683938494562862876887950536872790955381818234702414932164981017101424699264084022427586624307755093069300983362364567916565071361388451726938515703086148245703765571426849343551483797234497008698637374910363423314498379108640171256701708065206954512866774131695633350689423553783335533843894875073420321508017061512901655813410250591571418436644490495531505031117290544423205256035979067181619415513218699526710982532405094600676726473966240502455783960989990868581727932599603922878861724104629611531805971347913337956142899232639657641970127449488915408826539987806461948141777054049503032379063158105234316882378946205036781966214960963365842429831760851976707757468387046997478631633373693627814289738851479439370988391743279168248065409963166999241513064286076354652198527050995629528046726551296607436969841821167108983451041442356792520517467465974830244344123514127388656441012575985150394269096033276715428278642399884805825256344319734590975362050531315688488329129520925156921444953750078700385185270811743006926361486262646173150308874824594959752775208470660875371920972373293000427037125673459641754247079373909360501162359738394779416385719840410478120161611769298398014928007339830337712216653554121041636292586826441953420050784718847882824902183252428868949011618302753667646103521810067635170807612094402075424139551851337856800986035594708243191239556583663386666690606532768990371446007828306812580631363587425640018147410198245468749894617197752286242982923027611921293915067368524426401329404409154331129275125402199974792147084258797420850776136967858132687685883564857505307927012927797935773651482721765468112964113385037055189916603191220482179680115797154063837479208073928234596922619345389395223438609661032302616539047781146552424745519286320626936666292666834185315733594360017265210861331846637410233239547586132721571547836933877864636114402066973828512426081462134060848590347338516906267051366832586984301079390189823482310754089247047349562720236567880127125594641880698044673044784916155049466368704905563044980182855058086964477569814226221342098225227526847769307906510812956392790765709031978834100385660285640361898688125968935773927303565875688298853094306404699238929904174038952514588594666901591004669322244768662656824661563344442105519322189096050481568669194465658795909699968363869869081853740160824406356901074804421675992136223101530605738447783169293501168045209377076837233727347037595815859345778879805474491743108975366892101348697608974805292554166250698436115076094302376045100596642641076370636276920974479627722153869804367858560698633691112987451984554809759471862001865774975645716811320217900992148327597387043685985720238904410815641514048530280896564930457905196626363618847828012430875565329981107479233084213819449952977215084959351165680530530157335885166490897491193791622853990788304814194459913832233019816034875156089313846543277802158607935700278945724615726308839650747850216955663777728914475968953725300329835413123781162199252378322838583701943915255659683194639499322376271432028052598807434367005323726307330354203806128460538815037128191178015090379210788721446929504717621758244169734293616622130819648247035392046900222649226675176984573365019778685398746031616777309155208784099588127356449430175922808960234649212395826582634693592368831565331530388869861553261521438035780243494291836968859925165034635095875626987025319499795112047800232147903175688075462021627599253366852536900318571661695215447585336679337726992750895026739908441350704850995914568668081746375402402871943878399103738182652757703337142932735084124692554759084100725634416759407048620850459873735548721297324627614822009669832637416581501472997186674203062449913117508259639048596668284535055656147446207488632810313428443733113808110840816352758053694580936828454108002353907734622456242304114191181735385014267295063998570570986776785436713086281304400445112885077615588134675174317836005497960490948182744690966598799283421134035984393114171712587671374929197626572339088038972915619416660589257302023505383817832114429757954753098049528329804693631546634866255095285451619918022308735421801820611060156264203960584248395811543779562482140775507235831251384942557335782585071800514335749569472684283231107299454619017590503164527399178094234209586531597687534925396752615540527733762647512381076617712794741480000270869975868116556014799288496973123498943284065109964145742681511375757598067616259904569521216105315645076145461477327541248301007102805474243561751652162073808499969217326271867191142667987730193469041898928323844825605108622547412435721219984692614415695361241612816166224817144998761260583781834192149223633911733619144151036806588616467219428607760528960786114705656570031830549241587176461801951152714926908354643418448398392049448780064078474771446319403327722252959401731486423798760258015728432173523981866577116732182712766819066985209018842792483366883661648307215122139264703360750000307770070477708873723086510261851070653038871655855539167040108202608815532897137882950641843748342397223188275718333035851589476866381897397158749426643876341708394359290661931421734702303921623484924981472539641016968387852470949269295248667728522862322087237045179433501922058315369438849957912602858613163334801694629677329150352135964555304698940804805507568345863132586404767576198520614714451843904915880526861305276987903315802737093625147641812379193574600684807931252659301635930009996999132979620583565234191502563111443957128960663683441611664154192214988324802114691287384315689191160056051838236060896841198788570569317649377571001785555908546853173394234675030161801468839321474790968554864204071905905546218152197428899787335083382418347558358157942029296321554033340460021734027430847320005694866879692869895126781091976362862488020999005574826040328525248198767420530078939806944617869909283180276638748631269465202274321330943290642828812072533030785881959209435060755500565469169657639375246684856775757745177859106725106845353594355039329211869282563519670107579654623091293748123242227158288221011036801524722519701170154292891116597093544792186532977517414078625161553335015055775985324111081389223621284745982411710551634965912284649533051379574835467123153732198402734977428893708499130505055634497712502948268438777704893942244367713639147408028705042856575635777132474291069949980207766967941737826835096370890960920368516936303962532547610136085929844039904533600486361728496503673226829700397443548079156542083797975959014664942561124533002987059806742140745207078009253672267164253099106089588978912531292136166625665482464484655026515200909653817389322006951325563555113325731281033330720964243757966107096748692136148252516374215129578747653994843109577255343934091079501380879380776591866902468153192780994044055155529203777286810793456979916391729492686856804906408476971833847424398482907081768833910175022076656842787663277605213125348391435347700149293257506659152487929460694196601238149933337505494123744231088403364339628097854357720306475687181255232429572542888271435220436966140493258323760897788341586293624866129966547890034689057269851854630110794519188047447267598669355103373616414305066873694659336901097436147453063542245349401216335259098046393791840747360006791288874658944246638641959789682373057690769189723919315332861399254126769311101028281455065693733686129621405961705213219043936757249381345925009816363537705363236892983749944658258442116239127443502059554630798887079125730436231198728343486717765070479518774680626609735821251235577812277106506664747734061676876795307480802725652995729363484444573566493903704790400071345945488207997216401542448308906867190782990448305962179737672030786554813145388858259499157325012040367259548683458008427478444394411357917398332681220307174363417771533069773433428388009597873110781347118180460041083767241158682244327971645349094074115352260323593999336260610093732126736261441736152875068944632243648976815224607615396006578064392249511283487050550653409605479918207763106803203718539018055126557804988590390957153491204677527805752525439335777526336188995497268044765628732741227176268408878075376048730959369465824962327256372160323003253414785577791420637407104073003646190936267412464173672409550465037697528502934342631623102337720858760481669140360489940181671513286442166179623908253726120550126572609424098369761867801814493458936470592072246797397377987073324611766441514944304001373184847904116047434965508680119977515600134340599638930298408557778968589671653545659432095973119181266590846756685874490060244630107126284910589318988419342164774609266304863808968511246093192414508328164316670088298138227819648774672257190893963027342505701133919751044744015184829596075225207073774185452406682303501685860019364956390507443673036621311616275561743341006588653269667322563513267560023139823598663428545663643905324230336472098125922817981237676590646939007007178053273778215851195740468101707540838456680186737287473241320764765115022106869225901667722174978840406309070774074015536851443415877981746218138262946373913641382933452548976895639457526824494344453822035759899114309445592451134153643483155686223891991922290475001195885640692448509707861294144771585235940384285325371965665768792785969421210911231626643676867606762949923898063569982679037947796201239940038323211648715486443328060178120101489269658296055601293536054860672757072332365870121670440011079507238655605280313157382190448903528346801571141188939997788664437429625240035692021886792779572236918720274038345045702904875539044736348082427339340032927910838540067322005429522789920436338192426732919246942147599841880992543602520106349792241605926101117645568185245494934313757616586325851203159732778231502917594234344210791251581638541708500341936719144433983992117694024997794568160665353212755618420044345631855463641817303843337766512367148673721983011167282892019084701328771531573839338514411056252722407299544924324295285554880579628518141167754797515977253680660305555259935785257335783813285827861123605443938787991511160079018603976026880345230056933146681110643058066144427629159579102673748065813383901279328111708118353161484740344198676528376909522335300166265052914635846568596445209144111182961667323646813185949607262289130769071287008885830395526879217865500664668967639739691322316616157995104175241089027279216400014112524549700244152068217792458132873616465286584398687260963123961866523299239853871181115466682132148766026691059933525094028546839255444523636846183160041470270112997187676424099106034560141290979709370305094359867780717535828933457634159640817785147411663741379854786719733786479145940713308249351483617677080848729012090457479720673302881618041137089801383892085617188315389796372505078565976719979262620171758038539853847043942527766767372255632649484781752141633099061011267861006462078283375670793014374182061581136264162161426419398498647213051100634306358737796563759364121507338035741811506134240366744294446404686399220912519830508694227423048496509991716840000360269253323405257831628041984228683887234113455088722172012831283455291764419790970681382289295909977070061278248334234258297278912120611148788464495534203307475196083674053888466955332683638294675323489253508315633466152441187093965143658990968490714738107954789422187611859956137270883290255238858511873362259452302603284913729608429139165410245456394117308652116556763043510455338607201615412048099222666589285886936579958090943967637447013908428698602648089348420159315198085439191826031035877996329370887140604825484681216859084208422152498070823949218202247554321172722302158122530516253859737438815710145301576130109984682715519310792040390702833185227593686834915571371093889103132334266991052494923948348427353512778898461531042474378978943559775598194644147180616970898898166472378870509237166097277084263192410071296705442126675357099458034987065982883409230542297794646532283119536678603512730131782323265009058876056070887010721837639950303613471712006093630040078002927227997139282206752064367507734810974936772324203882040502369065403424579809905951037297257585736769536221568089688670147119506582165787511921851487041184492148018985549066090098872290832653729751114292575666556629864893562436081006574993505715427223880964581997407210215357384831430025564113936701070275034063916937874866891091153157195983436714429645132193719059787032676200899568694233777570075486315850912373497708093801075226590513583598409476732313298638946043771189953464417571793015366979034612769876508758693514477812312019250545996101245865150852260475001138957808033727652813743295001882956434791435075719819676933967072145855367320958521386090353016628082486210713231777360697152492532234454720490482739342960196812526858264140863221686079822986315722079029615487043435054370047689648070394433845994122698542882661037639730081585401187340979671572102435065641098773986602613179132124100424318163795920347858326054464334828527579373578652687176363653708306469475525358975083434708480820019721315621200981538381726632930716325306464666794201533841143843697517276496518470623244627926612291107249599333729912342825578045269446075395023651840692619880341227237214180439338127679380160426351004908007901961670525688842568593869394572160362734328824577301230284979007432451503279329525046404547504789775116837514424148760921872132829373288161172351899374845142363807909729691308033997150256874058558336763968015850738164987090305031524228865497143338319200405437166618948421901068287594134711437713666911223545816967853097853686043778874379719897251656259598280370818614180345652566741906329496677038961196441119098091465552740866339685545021225751474667604122109704227148443859283271879973030282697970945301569505353318506382723121251513408963092124800601080043136820561256662837174971678379242152797322435508927888484890414836026404355713619621582758258625945119476477903185117420877868119733379379291859276605038023837659377514483222256901055290137291807016717221372234086915992425798053639761543394365613991186561627040935816856065617245903326155161398161633422663097983480739367905932465037677932065297636114007416440033084767575887635922040791895319429501299874896006878442493491493247923596715028365487450766170223816239334884765562548691569338328523571407269116376251515023390085895378008363428990941201011692765373342438337723098348636671800789862980944612496984936072815610025595188301302758597767665876857857540867171545634475907647477933083043457343781010347161208769643878717154509688750504020910653224617140762488297038394730655510148975885749276019492211813983019089729761785979897982927179857045160741467188156868024874908366622914436197581474322212265049308283031865578133569381403534769870890630522155221534089392672094416283000172943830166107097552526685946652919022305801334172312082170023172469492487811092517277849297479342233491320946144535093738028260837464871319192918273786608154049931067302189841068159701324429510001677815647154653638692801255334242869399475056544014391708817065984006632361399418508142752737546453979479865405359151625821129881962037654306062138125581184654949422060981988391738642670251882399006377056489715704169462320430225992471912376191040206834006173275059637199398231004768012182070234684853269825456329293391253838502837437162217535611540977424991815174976950016804642428242560010055873363885102579112823829869142236857451538961773373796021139269952924895270771553964642980885191852898544092378612608481274584436286401772330519474953545853483895435432225531330732204896654304709742387230507296634797909480431883748147352695012531338701032269154338049037829010972613423298986371334016368585345416233156330052626564099330270196063216272799068518443859591823380504848761780971369459900091228671351932325032739051566064378041609561699231932715829551961389828883287597160294789035556058320759138120069503323934743567585367577661880098940167818098211783750157239444745157277452574366643737099309768032624442527102128596082904972529928230374397978968706124019102066518687343479863794645347338935656215914378605353940283935838539326192728282920587325654338333573094475156543503647494793687862596262788134741548647840389762251405044237945928788789272999717601263051300856149201967922506260501350908698656966486511050380682290290623623243501353376550591278726062430785890804210795004878861963089177950272892868990152303709129052654004377044469416258820293353267420885427941625000578047917464123284693252646367649868197666127810891793587237310594485191540251038548493993270261136980787609947920358847637271660110192441181552703600029800733955750577371768264863591577434367671293576565896843957389497580995841093085674469474773013414404843519333362398724957978809111865420202842042768006109967293784320048171863358739547108378555303392446394801244467044757571888598394625069854964487715767835832668536269180080998364682195978714110602842734016930794700021943893481664140909576586563446251047972170109132014867881046523965960610973782640728596521546045506497558590511806095786587993191182538598578058588979245713210134056159514807866031579802073057804393166462514648473063547864357321914644113739883236863836001935300778334946547335481718194851104569106824957744831940982668223097878821181983670566601743872114664985156564493640096864917444986283960950281878174856448826136541200084519279269945758394984991675942067450425295436201532744109831818083726089352545434788358620904964436519899424926658506439275648679721994354198238632216322141747141095204792725863140370293656795294600682404475362447798304905578565139267935888424227909762087227386890502719979932360947590908549344008216743920490940151931270000298555838412120045899238003268814602932841417203742143374981302581986747954554739079195488615616274601418242071346764762825547530362533394204854127901116013534709061498428592413178461637452188641146971939257451229957915996875360017453338457855099004924426730728024966881584584509603084876134015777091710394937797228573219341741533398638474578587062513965545409157912110278505391921054980418917074802099030227748275222586394278887449723786795535513719372421197130497044820758338898971109140928930055729794343638369257977264817559129344037705043399997521651935561873445455802351074184428487812581494597842158887431546353975503049183466436539242483153595119264474466564910935435749477194069799206096197174072504955459774780541658682816314489046205861198389785671168530631162301597343870923181070122770630644532631462222955573762470476207933806757038267938441007380234273020636996541334359690241105589514739856101849469137091258431827043067178254057852219097585995033485300836407821643833370680701244104705181740039957306926895759503879222119556123567563443572604495163012924543104395885488503242367409695571463283848564928201414953196187624857277723670335457477777487185200201190255442890330941413045775272246126909450393807992285887878807047717143475896127199546691904286664949647570676385638213832314177297395275646531620128910933263704551646329788170447370711209473483021135187124436710023215193367472897360900117000564227944257204973898665146974546301698335279477753373889130502060240109353428232871064105718382043013029017845317872115759343917677791825075740460417018173515715452396317568680214077382003688638508403195964887876120156651873487263645337472871697443455630369251739465040576924174398224668526377889099734238600176525090530082109816174808337307970925508492445124916090456950666030077543585630050451594691365099221355599189985872563973128072719168711922766004494271002339917941359901240783914400767359536732281382880318360728658247575000318617277375682131576672915872710111053767305996934981867531504676816167660089667321248325584457919911364955733058851323812644864045160969401144053334695787434819045628970418308202981760205007883954343132934341814855809146881103894571997990488842862060441343941477925381194768446472701710304180243272084508220440084064321155938955630922744259231447036334954506683906698170643846302876664646665466670660709117888858124741572652542133839788206488705076184841793665784532496012907815961343888092539825595896623667153171968489673534088926909223709127960317459936830907087760991470251033618090344323439451098986633364324668521994476248603814000855126438911124936916990030326134608572958953468558924418129049908103218944514988519056751170267051910102420965449069135298124222563807778099388138283617340604381253393539560842987774780197363348471732148581518201795691157165569705861721532021979985520778687687575610438280312901621564772416281418728754906023014980010547515671702975549467735282371076597993257755925489437328339421656437591324800308935970433311726498806439212341702793867032218205030108993364658157173989536379959671114398931045804808690432650663750510521560242703202835649648543655949136436295360982267109614459934074629875933540113890152173869825872433588421224623087314003790503121406673533326361177539417331832674485841569319033048771839466896369697625052491122492581806925236421408612059441077512206148647802750069753871723866526938843105721304736581004409535760396992345079379120585338606253659544202580696763715626194500590467502339392232942379704474614288520585255477871623115810254794472233341346478984788622361828982063950899775417766630193559132936027713988220357183706165541436596411078883471483383106978074080756410237583171656299203954977061034077605356213968249202045657906367912799128850983009926781794303783826665144046673712235534935100094677547817093681992915278543581035970425658653618781417867536930238101649422053593833497152631721167680664811985393203068406944613840526468759670688366222445250736345810929576417931410059973197415156744894269809119680775310452007692271427034715035652171056266083545321991537823336434036951195954588052151709658861715959983841585234310226288223661178389976929540166306920391654182648263957862014903153742474148501423267011020325222325761029580658927011052644951891349501368732991872177416210579748877361860824098767428331017136471491678152075768607343840098676710531226368497760687172618164138129872038392794195509014499573039649865003378633975257697558357270452406641065351553456586101877416156769406425485277533114278748106974308705937546588363954456348852298604385102943900614519350625923989615878108748379411250561172623936980817845732259339522759161922023243569177343593821924699817489301017874894701928999427588020127667694222902452708599786839914810735607835807031315815514238362369221043355842840007419891062949304257561323420067560485600607876295976938577985126376129403975310326391441749380782095767592948600257164601792078161133395611348626877688318427934561311683657601295269881851975155877064376053540854323726283990303201951786639768170066600410066487269141655943156700482659788382006080217813619684950596773913820178749046391299647302297112582599298153145352673826407125804159886837939224421965648433891635728682783325915820956659443589408632013938623449883779047157444725524902280962230375491255318451933254202517271607737822277670492597148475371156863391524539418489887603096919470860759231939640046730238411633658850441630926894822097531800836435213335720470868998737107086237640224180152096640718020289292421719797684201964455940075847396007396336849257355423427538397750641304274696320109401231846672346828076869565449522938722857289311305586601485492113533074496698171745300653061897294501720701402572379419328209385124470397831193466853325464185181157922926755461234247270597952368410879265208866622940508227329068100655853000327634531068267932783490792605514035780331998583909873418306945845071395351719528924073463575845936381549644355761896451641167794936752957052807988456681490465667050651741728755564198338994003116377743030902522683624696274028625385209633217572321686142297400790737474008101208462280688849254891897415961763420235878218753515903378655917396656634925450453099535577696631043430244940930915739880662137188087236356244802844182008792248169105338127636800071513252696625845347404689983130089553438988380878657741527970591884657602102718748373330337638565546245313134812113518437429706923752413111618099123696787855007857063377835335706522005248576121179336773876051687142943323137239066893424010185594883072070396383450978714237057530850866744392989101259279331181586672818333022035827118440035342470042821097311954444822205100781446141322512756280993356864640974861714542607536286818418126262308708454442653057903801989976079613286314357821773517646163934248376635161421947595601090134802535057832290864099131532961632613031082889790672542868719556552730881749386582689261536104705579220393628074771052555371159555261922464939978776249319452213683691932160997986245045640527153412857105612179924362609482281386672567211359793325975751894165435681936609073240561910647812027690770643796228143053981872397850787940118862696620127738248416052612094539939856626488631742591032508361930337420703252654323445123637370469475422898971894506932983342725927141192702810724481954182906583142730562110062358176171774863702604268145837805038611493280325356733239855518473044968004219696569047191753716643364808157600170944099679972408807889060552734312058093515502838757669942210508739599159489146718733128704285811345628218486964684774065330073782361715836464087337128364923253493479583569211051132404755646069884005780179273339181614733395925609190856342756867127554083771976042069749954464666779543841548272169216401248970184359012308335976056993404036104649516962316936075348520122478722428188514681013785550453335478150739712903070667763152925664881659972432118591927058533064465477592956843692435576507789448323586449564337904847759644578093655410299259481598595284360993280924819276807210279362532725642788037035340712333417415106019833059224998415533815257646881839320492468778494917452429894664893024716929169992977166204071953956944538307910959214955089659095064708455654455065481272351846141301369607064943491941362518633396766119036541628963611716594540505309989337690175146792773465501545574664537275552330026086990530232864752158972012711778735304336754953899251481145545598400318860001260709780455506506218558176230716423537596648082884315276828964265124337796635595285418634404688287917652419056173419091454759766623867293558280993945328024444324794044286988830798553222331208022532670691840487853491302680038458453260851022757872362118606929190973708244469754547519868828804847766842518723672843313930523502110587216859204707019325357934479939818609184728390443027227474391054553112067510338891636802462614772733233636144089415203844277776531890788727713538927850045595113617836868690830980817737392164734927299415442250822364419009508999216235238479683395417891439598983238084849119673625604270832578011164627473005228836613331128011490710164852472141442771397338933732983787397299528949964661367523150093495681507161469948406102271534987736946603378173930495579195399652480568356719025030673313608566005392438212942766931271243754061541464830943340413408900289637991594710959027748667865364307786640998023555555226755524052969469222295515214801144895766055749431599121414499698800450430472416442838146908890505305217736256324594850766535823051919039608105103180246979910353064587194904034526058625953372821344180203015412142291346495930594401155041128934803682156828795507314798765285516621804701854883066345192356125343020501010044796457959286714318534732986848161403508700927613395725270352024067702427414330643952572575395916550066187747789516491287883295455530055584120255094857739971213125020263912366929553691650909385415575480691547719366609619169561596447197497400670170995771767768175708629905009048691129405834719307474774072406686754247268468367327747460754373830474150525020225020096684184795895658944432566857952794544527097572003228685778335876884476814689948032695553226444806756141616244316426089244842537781889831120889709391934560247893821633275566500125957632720288112629107016116548307541388884075761392698694746230371052851319815550636531390173266013139819837875326631200355783480909102087381879853349752296086711470123996085903850369240408938315183220150939904946063928910009452333730935767237771920373418571606285524070314529154082301414246643232758881875890665114981950385819277398266867641604079299086420936196990032451842945212622957412823420917361935528728168502383200761080178423568182985938263222445067499387084878369844370406139182564953503126500287957882705836268340470444683735135853474391777990115322667228192059958421478908100617382207011871667669373270105154506362895262592397360776610332677973715989386191234412906279186951481570447921254789279113207566781397694341636887248507924308993839737148624216902602167768960964850901502885303684470095056561156731550083899866540810675099745266135488816879970483935734760923060511606970762432343199820900770644138255441544377478647006695189850907753530218412053971476829713039382482248819428514228356307648107626231463736428575061706810802397283041650840904373534730440881832669252217083220745143444829976925228566136415066193264802860130238031411840606210073942361638803249328585104193350341210446860366146780838343998291979301999625024105249740651104658565104011003081406071534526271080486068253517305462547388813466229427948673650865519938562964508473802485021847252703801801627045548827312742890921431812290363211033823289148117948803064822058057634843498358311245600006114715254109150990613575713852677426228005707964111553639993275802690477423913715080972452447161548790902738055284089815848741425094856321787322558884211686257991310159281794679234707096777928196670959311588390563355237511749652298675874547505472601072491632599606562723492895179825987721439274632691928805054772661850253906300721162052347038126297559747441825895845726555922016863204961644640650823114414636347760713276303028152667106427301625968910705532654101692905690824405275128105703377751166872670450629348443843132337667088774037311696901420006217147277312391856142448172456400630586118418155596035024416914536577963708900307225494677019648273243076105023570628684807720280782573587218521960006038883054327708352453421983154293293491258865235739667253631826884314260596102743124639137529599693905707022574501467438169126558472901928701114224789605485169504726809957097661454745564546802548570809266100666740832017769130517915514468959063798849147590521142059106834110887325249552541957759648195081662093038304151230755552865372980041523237967388531771859300707844542594736677713142565685899261950397539749034840444481423929768036761261607256584567128250419651910522311832989010328564128674325145150388861823864773335335445006085520255089401150274532167764179448956013036868626095754153336275639030834479548778831218030225955782730440512335266397310269077132307453026159207031451748607285622090382372094049142472403966191151076417208926031266790686239722124271589088255027015405518318512252717278471521879177668110062574350863099374390474147346991813946121946272379895792404261068867311178941962926321569556877576213764302280943644807371926209676154141935426035603618193569526392547975576425113647269697479163967992531680042910578739009770681906745012279796872370227376611983343251205371672185246438312124481106508849293471284503530396321507591671005622960268766030182132812776549401502102077554951341363028644120834968259174976314265321811705585585801116473624330978877625167591386859524478375247732998920937917512863758707641354311831743741968577136120946705689386067411532697620112152737206158081479319711940157848864182648906350948800399364667021709011391520540136136475157292806956997164465778217980779172541765359255071186818549789200392440745118673689540862066438324906327209499457257418850265053137551593287982582559502216103094233155430064288354162779425101106548640474926992946045994314029110898335500613067577051426743992325620655128871272902595279003676137712589309308864966781838217893023559482002691350532895635197417226950998340977878539620289373044514165301765962738808225134848562160416654354966742833277728748818208094700816102631781742829796865956551419468289492032786946041238450716385685846045369331270446880084343103648028790660690269983991362263993086457073436692231736681897720569914933438812447272941836027338646960007573095270286647523078816431615766849540210462864821540061958870224155468106984781260042460361090996469461895038487836011980774302891022983473090260094931277282664714596755915398457011192865550642343408984342025278017058480477585538299759779680266641595018782621948978643057758124470842863847078190824189546559738120083125331330749396012022979753344632733401211938128017778365621039088933124856289679205457691036772290187657190880236211464808895833867565208698294137349886494414263936170676769284236039474768185413671544388314115736364272816477058284453699988443782256159970626695310536828462286592124147115666687177637839327089969661306229100855426006267036862193137429933785621099971886314768388708367969456316998581679759109723928602590537050177136670376091116241783240111679123362418670492436780880641733965431272908712305533229417598906482139773000056894203303006544748218040906791389973863103349253638809469460228271130708318693702399317137964771548877653601365507657865152953358679086124180033103343949526930482794589490423796918173418499173897885059446690129404362304363613481438374737794574411034225792268948367301576631507178664937842690222140359458473192184786010678684628938536907730910620678155645789075028371348771186915584739988400836380726401674830175195003866868228310468632659285894930781577680983342307234728032717677649305530780935782021544444274530620760651470494119227750854215784839897852026984977510476189361508037847613521878998592844175619719944552910974315951833964773583653223851592579563613843563898404354231198406935403272707523305687667661408047983209413208448796914824285779815052351797072792617300674447597126178986276927921928260961556195468031049130863445669457906162831010513789010056268560507234016535331272774386121142487618788888341450454383832436579757248686865682444398512326792059245422424870965350830108465138701332070142821060510978920240824541500044894543917369472016024302582577759721738127104359260240933252029794979166085678932564189923870389483776372870538880524883424269671936118026379141489108628098458367727582538600997958716404836774848976419465076608111740627193222557111130461554880872209188687612435548297382059358023476677102089609729551549108424616571634756295991377118645257746614528612948882332648496828507277806227174348963063158789995995307461641366392097689307581991440177699272890415477637672492051613984928543828107930788531549132345704667954503580176545456948288487588856945683889088360920635961238262396304490597048513183985228326997817946612518864854600627133981397525704095709673481881802927777438657558344675515550295882950089512650075723977019890973271914675905396362009057506342248076340557478205222654722085466197791407272672592083866885515564998844067536918033643173993556842975537229326884366196128521388484328572738890039933365593752200723504989795936186460764035473565101060426746891886669527741382948547663521437720962499055433153619003216449436474750075385542535120222973510676356105620715308573643330685297939653035109487257774038512372085691026213927537126579834422490955493635355125768807620610160932190174828805365020850079655761516185001778577786668541316788891757478210660433742233752848040447386535938446187309161328945565961779266499762067033899211213585713536395896969320272976441492519121188798058050575580536066095652004125677434899901723761873887576430791278742977721672475600285325226656042684894181600625207240914538026156452474861431810594643518727049316420907397987559891139216160650973374274508238020230846270386573215001078849139599079866796548566333167164103061575594372183614373031889744715181346283338519707772904956293540868543027904006462383213773359840377612909277654387701485934495071759562261413597600868069041899218377540478879387804995907192717086444277317695979061697761394222020423193582722436339531150513923820411109725860855466734933993138081917411842761224861953104452668743213447382790705165326719211823579383341100207334529953527658777460127867174890019834808267418940796788567930229778488242515257729785259185132024554346267246607308415196952456358889727772104965602798033518731975105502776238617781910099861947324517898104488970070738907571902276157017976338355304420717767032385820254686389835863613626760232145771225359784208025794277363054470641970300448798432675086317327409898089848572831361175806601753768516878518424849564113269894108379941403401815016661944187812771913855600276635078729058556746316216798153174768204958337157987991594772634044545141572896291666413366433569591117718081718588619583755624164358693430224503307294105659790486458045784823297544422922905099331737631006324286738570762129145310844054940044963789379454971650266140366177821956075100751322388904274776237135541982217668987629660640869194160566196597389104078839747117964783788818714041744100728438285118224305288032864620219128356324062146918050407544224399853910317147842726524292435783919975371195333334990918144241239789546055735918252957395755536791784095550929268041677178005857901022920784362947167756143575597166189131248313523093776337217971874621836234273120173742782445061791770717488193227661152849297836586867389852702121824018022057895313236125254593253015651445235661492398113043529671816569898803858019644735185829539661636219355534997358945690841126896489250237037141237671284383768029780923541776958260621587110842041010661424925122164677674954913494358980258457895339252900230263348768894737930423633197472966823992197571851196246506731156506129234148084403470853480602189286565525518338532913681994830957635247529309023536242790826532981239153096709373847743623695338479382999911976314078291480019722209332161095909307481730725458459722203487895860288706439709011634822772852054828834944093905926607811336662395194790180147039143033934843432284457458179597970966319499183617289481430018072670471634045421398395792335277875403486567017048920621128015608945031001672515874323007427095708214206145326167002336604292042779413755183903219906563375669171444351265601161925362991077465498007690510752341644795001810093677778005237304288270697831276482394304512768693598849990914123805577328902637825761416433088412963950518900286773010852262905864781084925294427908318553111043698192040453895242700158282092923945327104920795282178577619530275345763780409591058889073103552232187166013625098070916721198170655224810172008791960019196542307368377117730245001834857096209981892633863418511561124237175041088592749696161445921456881770022694098904321739647920656887484698504761851885938862885555688410181302805683875252172604632174132028447016053314663921399625365563811795224922557896210072116752804098648508258936606611128664941258682886748124596325722042608113025173479846452891982678278001341673286514088709259341455720028935398420224399135744148727247881521277609223311400544090049637595215991019621616005993584686064349393512167827877262035714560027989241465097668664396859313745688427755445604199309643137905644893063368571261571903167339321864879256583067231087907824097360878511975440027302916353850950819638400913035291790672777217633138535222094448879234013553858257786777827206126423685029117418606992006593672261723743391375371701827320158017059668247126022519477801991236143235698898718119610675278331298042855548601662492231226055973462809924576562236896098275216505293259342637458213650224301795978596577541667709061651572988486028482639506313570686093474721623656566858797709081937742214240085904161208884363836017652618970220309125860894097106569911466451018258899813084012179316460808759191296915805185744345040067537551984952614530919670863126561262182441810273794112856792555158021975581321891437789415670835038727377953227066854261801282212401521727675942674198837150667785478994296884963837797912801773101901410133603706568794240464594633427696962429874258769519560161457942314076629272540798666923928156286418113643400496039379290561830179541473478147911801665201534868598463526038053440637602218071689540642899483577020260274235636690907714194168172193761254948698591354418313318379798762725996361999542079992582457032790020546468153432464973042549371513169019336760144457641599668331413266080022155443696449556960201118317068288685006225107820122598306812378409132287926363634514777629433264971795474693331334050067145419129421659099890308588530559236064629806631838109578708356441924267997335313140923903440243784167251985054435292762870600310465263655803885660139749432138326424976267858094221119072332632659155723750475531178268744033563454851245668053405486481936715358960652692229176176819928673643414774233221535877302387419840597563866989446088865907221718573848261351082802237092148322954910019749821301391735114321219724754221801272188772188646736325914403444260143006881738972821780986764581347402663983458219455355623752588656823416123103639511996572086532577289143632402864107969272470870506941153350881526414479807406330069849441162604834601482730780265206680381199497677172482438858341231968956987606556231446141765202605967765636770520227078366763979054239846799940773573530599571821832486592392492693077261310951060737024703421030217183756285824340733579172917155810874042810246574736537725525442184487809732173002884255949306650245843682038674665757345984630153612292609615125753626118763073590044240393815190607617344258867708992630898681641246901515742221339917291574689629678099568763296041237374830181885516016087033426695428784831087892744451222438830084580164835439608524039539614013608024130978233583286318337029308896803624252388816041760142338842258315201650451036408533713927138259705506033471749577402290456871271437158478908702497827980647840434674951879388762859151606011235651803947278716042228599192965547506613676200818720544074936374789530078288078196871440246438445932973095630397393268301765962314184033233394014287537288761420653146733981627474745379344560495269738067126429935089540294164278435532573487720376930620167910834160951964104854164787032352854603102891501895255508696042864639591494367936338385124837296899993409123052237205660630832131053145525535660472929756507167268355426624806732839621292269692980205151726085645000098382230820029374817719311890626150822806820510743802035366935063198582467177425431734279529544806576583982927887584570543149933764013162550123882026654839434140568285720406588593312990962416547294014154799381261446296344236559390510823438186495409001191618271068185546305813223211902144657921511229774680071920245810616585293310073914426876927821353698005444214343223450214866646237189126958902153510117869921285643171629387129398662622196344982683312741378949182362222178419166251305817373421171092432724872820331323772469360946473180141413275320759779498090813404936889021369722645855367880398472176499111993067723013212583135704462125064147747216697613457468618356360984249938847094071575241675719410391740692222115379487621728624790336112228547262497285528432614597850157105256677453197743127130671986272083291599655396442775639659447544271758851725425976908869460125165022321512196493392223308508554638411877077847213856005060966374553274503060702400237968456765490133510436546587707936922159301778093070035885857859186304980715704883788337370310991512714298983633783308185076446669540860875263074512047421701595714784864921437313554669073646696196836854832966788949789562276422010034778583407291480852562870775627544993260503437172068978952817153805867062694482082248551400226029340855064038054530614649838808004739141565258324314460351069606436278816276739991502866738478279117308215003966989047764759147345681757354827264573730878181900896367649697850087017651252563219490727549272975345998382674992571187383785223300412891796886850410671483409227464355110187705894351391486379762987429107433181175018316615698536752408058600087137409785239212844304919340195211717750259273605179474847097899902849727758797812459827175050281861270712435912917200016368319095337635508617849568084875185376606213856924056193450664628060835148380744902258470139139801062331480677835245515856542522180338341591016162022089676976304232705170701224227597158957861458298867511786003917227109038597072937965789303282279844123239671524987855381541164229186613592296582855151673214470660445555124811702696454701413929265593991213998680708325556367675003880406320408183303109177986428374248762893167863192208902601902566582462336238188007995999794011302572712835010102400524813661717455490104427479962135119499761042351516760213119022687922068190478762526510478039203752980973472627120927310211205308376150177305031205849561422751847837602316815385496638859853383131353874071074069315827876992348445444886868421549885120299104701436027765360171073542686670069221779352967218742172467424549998579263623810180585492740019731741405607646670616746882055229016076164716815361725109852863236469500739292175420121359459564139466876631678767610975012702913310828569806009317029808069302389352666624373871633716757189387371744097598784515753528484159072913901436718738713415314733170822326086504313736179087922122335616837401893921235728764611371284588862478001681598802903528438892133468449930916954030936851910883696550050321523849522135220619946991726991161579851488967797280168620360326366720444817378093945516303453314349814784721244400272430661743633233022610863373375569589862833635727743677690246121449141180648918732038148311716324605520850592952097455707382306689099322472430958026049888049200829093805793497406741136927515611132310468863793767888565477465458613041222362890185678810420114273878553318333262598527912733045781451257706824429549296050256717387223573017419141892598190200261072770401106298095960528757734195741523862596787712600632200980144842888040077791350870722882165014421571750349253061980097505820114642639912566576703613854002588551030147853052680912401907032082888998073576230961267998021653878617101299171160032027915805537727063769011949614285685925685016486861926198582007768384776162385561365074419761150151164766317280477797500936647605790794483397435198950675526245045974462772483549159148039373572005698020000672115215851544598826484607004240270243684144534027138463224038194183105901073832023253157683087378830917900094599376219390613295598274206312856519108808534624721617072192232090372092966115508158315924316555327151970310392627840281345133876707555255309017629103969699600333355109292928531406173426984643118180454003971972960711187827779856033052194239509209402582262765029330970234804833119419482670366578640247320143412859072029941175767436327801112077121907523060291857274584339803895003678370054593160168843354048759664833639779044123168596952720255572530794818456786525198974751914882015028927972779027154187445355636824361198002340097618696438701899097421202373983882796828556714589747148808068761304758094873292248189396101160090878575162405193025986820534575410090244178074309014228976327649589024895090174701056672014480045967701736667695151100908264682480821219169692380635611134551803673550427883151869373200132108296029956737739377093779172921281824527639285499657034716868433571338699968589568361236369135373515071556840142159913906396830426121679588989350968754374847659317607159157608653957423408581200945405466085896437122835916801432166411771370209038251819417013496750625168146681180082930629510475706848703076825374457894457721253991063839782154172760778104689966328111396582753408061928867401438109781563463142802028500315693367033980356453944821143915550307610956672974981078495936294211307004635904974110322552318850581831902981537084872486917895445488895603270757074209496584616382829238489769486136804644995992040540993471318466523885069513667960646926140359961695379304475075689772764061434606995850321543617945275989220765248500602025654203402637462667042552839980488984927166096576502758559129710692906699355903343997290986261920282152585581495855568578697138199232866294387679724507474214300994225110746696208923674846754704555668101954042177324510481974743196398132713653559157202046563445783335892879590121204370299869457690135151428281690731059399909700887501767126093808007728443278026000464530557870094809365295871444531400893477629941616006790307523626082342144383610195291014090635229411439674942318920239260485682621659438703733669420690869960163309649248751957895166817548687990168614734004980599424676514232884299643397228700165959316679407778005301927414249607745884041300813576892543128860618972664675643764360990250523447143227035330055486152186261330934912919849074106856772639155655865303693377909723654390736424040733954028568004162209677030912911414443519420150525143340843870058252942635524877665738908054455423875443669842218758099623095006077380469303899845664317025008041702603767712126530988599256366040316133363853350778605152261358260031874944620494585176484388629722395332147334590624439590416624751490469909884681659910097864875830189258268226036454473972134959140005471360880376104674209379964904593173226597556928019552679240627591499303207874510684616030580092965110645081296664170475302036927157348673623654844861244190365384709858672633922714776898925039320865849625310707708137230098999322530268120722190972232770127062543142793551252039203357234940981935287365164395882025337567879895497057093626608829654114177227135437283465354573028771369301125470946252751659849779602046429900572857302168155843426319060255127825515293105929357076843796396835023981264658299022543211710653868237338946970808579178535774751242440128255702941706787702564631929159811977948624398794093406214056101082401941135070536849912507310997287759764013866016293243335935515109093963154645961438747657486763662835901639700549810983520473615564939132297317175694008815351148366286870582826433207768986295260359208390223843020301326267304876958979927282242382432741242187959970593701484699408886893266641155688693110735640589650035614550566237255351667235172268693234146648934953598474763495505919534932291447325776626036962552562871510565090525917213882160561223945605754986677756370040248165153054916831420570516745378198737642316666801270550869382529779489220318562429986620263280653359521404590932211181774912674856231971508636118535990853595734574702837804939818973348596838013970174251519294330965986060996563447497780589699255392462960200840761108314918463026074400974119184495137969121083682899274597649140546040147080914849295763992053702448692771455166671388712609006379482869944495927504886917970836543527247682428882485968641078910941990992016896392826131462564142466784942648046728783460399085004210976830543756055429235685458111847542504553827928763162866920321695149333485337758021798314154286015663599524411472340482795096524512660319443521570571535255139772271360242856366353169292264635452260400349589436286510554261659237143825532789179448364054806973161500406503916374513969003284470509244261619814038499572456567798127682198096957157309251190169569133889420604349021461452745778380326786930804266617751654961922454815397127556777274114953322201366141057068432201925138313776180865389278175819782642753760731577826601921110082260712203523623574109592472060719484910384994746979884755221307499717866971289910409836797312043889161219489016230912851864058344832594901746342163854325246312438603646269796084365314027979311289630740346899375323320814062392075183414411897439763243554498654289571137209103864649021993375468542699557784425030831292504680113638067627735643458769859982944190709110984685555079684495149159096242076180866769325078407784675187604650494894247788826904963580970211829145747553696184419970393380543307242519219385455017491195290063162143766258252986451772053333992252666235193152688244341719792398187106738826754763221535711786534547395480387603330946889847237515713302299769184940339374802155289743924434789304293095893919202084844996720963470027113112299916621432118333943329739326952585486138890049640804403720192173618330685419452279515845946684882788266768074314597024941409758693308196141593733179078538147720819677059546486768775823402903878297777650340618476669393537384110254502035553102788115206736760922859894582564136501704101804924498556804724938551109433263309496312327982353420522655665297829638482530753125771510636939769681322194168807021712740884203587712275328888536169705753727632532099736479434686370661512612781779152403834021036773209988542494375652570198514109468719063245626216988843395503406627656619524380050033177543374014803733588171390593646912570873387737580626553852739550591962041168030377511626688488724569868889466574695885023195615053351517049643808924761864274811255864650417876521602707456653466400582386571766424425952876848229518645461689731764498816157498573120903090764291611788431923221663344612368579281618840491449967680076772237733073603781680464473247689010895332811575702352021589800032352734371880525881129458104140319405733555495156055266077342561866129350877597340616285782974599825047068665902411129749391840800526275450069879984452576557124708015310985450001866806380065032942008958093901656426887951191747256840332292510427133978828091791753333515209200254966461039836406692111318476556630041371682188554822030306168858535821469424638248908790828213785897009629497975391597216591693747141844226250213316755680378165348159268706813871625050645870352079698472951715250810481941464066680560802691507834057953632754036438708568559866316374943565529332184537839786953609419398289516558675781269657972988350470615079056702239519570676047304216998214524940276671423811756655273172835861150912004874830605163064241741540535954888988992495315380455104840096896460567300309292209414600364710924061261706409916649097984103583167640653494781209275557943217722171713031361600667393342883370715078222294526464346721159789367365024743931538441490022251194543731702329826560680348110979692404649567311279004849673522825053702923433003635468371455674701359391439541160841150262957255346069689200403412182495764174881982488251211297092882470038162046832596910613178025879377950309668613031898306556892694117973338726663482560157060315931669046146672852192335154134410928684827846613146545913867636951858092163527988676165623870620185695540127949744062507458715148724290384962620400142088029028444191674893099057292415505695922759961826225920261820968416985060662408654577011459053589247230977463265979924024193543016269842836315038635431969783160221965578307232971331974330031491664257736368370497631241143277713103031548412506626684781549909537244975033941932924626860665191063294252118460247769363685139792805060336000699158334780567637978614229023138704760501397259904445981638672109840471093971442026760606884655455533734447189133641706489059665578566700596401304406266787455424605304764508345028220872890043938455912204482666385090445255815936366097844278396401508978198636775800275534408070749026607502056306518986975099509164349625635192104911378016883009208647300315119158662935954366917223038734558405325261159265144663225194762058378825481658218753738856207398284880186641800329438027910949340788415387726122481238860975642430887404658275148723059087731033404051721317964630837493969797461655317920267510596366768656066229760484105268087791408791955538346621821842910562114783630873997771169124672254374454463006771673205125289061559109441612965520517461733014371633620731641889869462410098089176274443494322616281903855441327302055593895277434151213045519148632265242852814931102137153871382687969361259889821745522350180891845387593742880742127631152867838825554006250136322536080979153008595202246765968886381869738050078454841077157689730220859843953724203977801113097196262814580170646453029814575776073871040939478711745940742639008468904358912458237107312928766409431793769872483595419347762513129490468541514419683487375599303857991490902031705266733664650409813683919161204223861135049339920996412296330080228263164737170594160282295159990324068173315956144864466242368625556665002657722209226072684679277945234063200756945991780704232646005677152126356863244857190266562383482044192534405686566877474859312747516339399977352004288864266250831242305974456545397218826531566032471431399246130248571392285761785224947302291456791050758675014705589040584826564711714803618419248138850528212215569204624291339208209650083922649365702248517413469241761371086985343949506499780531502110107225777372988419859010627450865275316515304200587540931855546355998548719527932692326843873305137765549721159034884437116588122626767287842770469341495326617064914898109260993484172119365964064518362563759936589302485053956682952487314736126177308022817300049120372406995805455699524283464793917059569060210280045811897656476140352101260851284691872097331398426258206868611056245020357491388714808169878093991522087615881325388286707026561587522527547757177284123061328663688535110490304967493213953469463358954463732401401154654211820936771017150000763677772588503365671510079189384280469537156615293596468598677595009851739208829320365275807107378370805413483076593876279345799232115132933644294109254474775047438977815520187809748421268484372786088029163374473392977407490932397506280622335417440145536635751112778484557848293805510882722314508660257145730799452000783348675215196763388511314829314813943478337007854874161117980737020601875490992714885082279180689904614245325610141432886026218579966866981734717527128639935039900763560741913949521360797569530468603037553826888075956501072183102753813664027156199990966408011654881360325458260955354408429866032808339010245873174677819282672480053169483261914271092769839258566136028013501612744597122247761300047504662487638352951945979075841122040919209319780348522659468442358058118833066300790820817193648200901222619403592182656218136372312666395105410291382218004326495089929302137794910829557453752402294891225152172910005431535510007895828649811225090977452232581987115454516073503500272628227594387628929618763890884900535749411127481971637243109969392535076239432468883020283689622131598357566426440486495227576332257886109657773449558963739684767456297846293332802531047450581703206755924683112346104376763669844597902974611242700730493297345104368520753203124116951352249369163670912396474011108316842298240827316475738161231157864354595358098273179000614578571580043518519456426807906231140709942109965759166875276322663258865980945051686672749009809457494518787006243962731484431888960020722895217236396649716762816902661651368311696802779217624588152743387793565810034384177793189513596070987575229971007709456805354879292907726791017680751984388346095533783854718419523068183237299735651078191117067812194779198063086023717342658632536698028551026767301949763997069234477291149154462844111507992895556237787953770172083939722145953141458480905395474273003249372650344184259493121820417287271591978911044491359959072947317046699142046221218391363891183801733617890956284332965541161336466136315333901362466605648086646484718106415181347213326075265130279944279297101887699795424904501974473662432624913055666732390840784223048248798093935097650572480617079208031042525451297397104051000730258770889955701875848850358087555959857683672368350529136761952259582025217854306116393300659900257769738519750760420678811613602736349476644661599772981157299787953346081733979291007962873329747161080887851472734721110072010588367602350371607788419854424398384523732329640000180296717713748070151147458843438686395778158415083655326575695112619443381713957976116054899852780813995880815329932783340533607824972203287716960483610706329491610133116571070534505585658901081921635274536229040457864093658052374759837006982023374126500410782480972073125627736417972065916265481699551011426385728578983540102603768228211504387743094721430596059902229761840887341050580965003620075958326244204967610813643503570733144961335264474206098278654495680277865103590403157050909939544377526453494983347707165714363464004608485392440987039720504415857336984825518390616773344887376657975559081338306301809388207374161456707576348348872351177878723244357625347328104995920363324021361352986298976938851799205575509229302544313815509638407095494770740626621239767410118073654934311700290788567929230490832266312635619092899937055395021624090286817682921590095939529661816284389707397624534528179911864451816738757445031449573018084002338697769798250155919779632934832934057930138357057199575719343844561281779621822544332486563626404043501605185591478388490363720310456146863945585336675306198863586608940425627280677987414306149747380819386241418673536533750282894125585100735535468389996870184657403011634057524838055711610989750169343828709294532692232410477223651440964617088126344654565993020009476477565512128682499598650019804022774715999011699640045586793496226699728437250024303025704715583025917734260860709728149710620028116257727549022262254638804061780661823622362214244428040505784185818446676572638826263666678512504472039701824430623171993748706511660928086358871016385910008521096372854337823235741747992855537067837346865989668585013834516256146085943919472241298398686389250289331715990627997955415083259190468192909174791666637176678052101569593149984720466491144581140116422938250766907813110535697828429029499626848044888878337856512784481450812249675428125728834857392129095925058632191063106769093793677034182833344668517531554629019632094900295061102971156247023220791114508814545622291426055849064606076752121407342635271091042342990824440140404132591623761206415050361875506537105220536169075120909948039756759810462469885694694943442179024825972104158053200488214495864208452216137849763932068369248009986298205355389419960601005923489094176392179986923130799091875087998319234587550503956429942092999330627447794193814778415506188672360657728496537348886924828098313535303355019588959434145566334022232624601198960891497989753201190078957610443875959973355868603710590926487200983998225623175540035357735976539236861122492612091533275046246575559699896274776182012581244847853243088525647986774897154279191555725624513423539500274928189548856091395157083164195140961782690144569812814506876254163290190857987226168671327614935424376317171895101231024307238126705860021563668064837322840140245567800084962472266228157893284498416954407221063063435732554113411816545702940264155770323517138850315025600382764744449093092265847112225375094503128342186031902069321463079444810836430742626325415188655460378927079524303910401625103321488619928620948471889570693263101759692333212903388417711054836912368762799421419806285880984305813466533873087381501727858478632150563125533647105830616981483760689371544387497625622904874681801141032628951390529692454659839776156070689849506031390237870373522569088974306630553916930499484571061164292780643715539932602113505008027700024556509052963077392463496416825649759408238572298121117425391898473333376932089945053223907231462275519469853337574965231347203835290542014486779506656145328839642368948253133210159177269578518604513269386833934828231928091949999896673526167266098216194867899475528980209872361259549687522718479418633875841161754483506765700424604002248957872621132944524667897491211058484842096938072732719177403697318451770792506235482957994328683368402274406365634111713129938587769167738594147927600377671676339339080413888317674520617694325838095617934037202673252112019583348009295944365434044512457853804549563985743609424420725171935806562371190056334676623274060708478116960330190884327238438667545283351543672897469899514099956378223329696002999436564438733870122262354044616758382065287526367846784381657754077382504944890110292182308741781045624524873332043654030152571578630366113513002285635802435860612725469646555680080581359775194797397526140913605182440048893658852122774111124342729851424257656091269613576346309621947629646366263637386443841206016654242828454566658216004812862090732321358394368031991251086726479213780898427352913635623661918330792287870622078724651084353909091598321945575482878795866217636460590200387619205790747339264483651237935732848969572035684143036690308989435424241731268507162453926359380031560618955316018506796444779583179364287923138158861822569343714225021045968442202000681215914441797116620092596204257793841429096401916532183731111731424606157413484008654900955752223300332605172318307089185634979051287140503714730616761838910445917994974183253006134275328501855342346854609920918605366006772697850887029659254775377948898915691529801916178096236689265908056142532472516979285920229134610312827808465425618650861666640556198337612836584957303750252062162783790022687403035118479471870007022842400114806256656969396538001709248765190554420361225327829887045900216670282536851341020096153929888915770103367680642516924335067656587938378791705176629365666162878923705771424364879725686862750298681410520581171963075167963829751573170193091701091177495506399368940620258689617142343909725603803581199330759582768005668031999432069127335381074810059906906766470200670394470478071885303880388505582485212336323756004138468190120426184809119333311306137188632229819451430392342615410284666569371705694585423363928482157499219422467640692446209046692607516142877658235560213849068687706462219939412830104393406990946526918909411428085093314131600688223736534174485563050216646426275752214426958976124655191795405837641744282367083308703518108082969236007515453796531123352845585408201433333804224188678339574601026200273725643116004122100617843447876086817551341190432640592185188873155383364867699776511870094049271032938157250814014484534633506895961971354378075329327652289316857890520000408270975322946485691990077095865183847976324121817424344586712307639969442597635639464073865351491021140455798054693927000969605070492127429939871164322654631715442575150049336734237343526440907500216746334923750776731934628252223960139840022543145363183011335940273247281578661562600302167972866797814811583907454393660343037927258216641023419333845801401598314287110202305569880076533433590263830575325206366502660559401731459914641423700847402269521285989869519758114563195782464778476529266432746587170874221295373400241084222960895050551662155031737421627870753899794313838765708229944420906144836052616738827311366449712985180927274340605283983073572188112720556322657666198772407180028432559887145839682193720576155254535408422716802601870745915928051996773928209281892462029235699601830676599136829072050787080524432634677741844094228784907883233009950377553695553897241130347417672818121646776012221986738488508688427679722589015771805605050923560331141458149029226891156741728584864394680465121176852617149469312635661724835555169337189945525074543589677681340975927004651801022534126881387686290361850900459520060130392035732243692897316960369941561898931520417593256980925925833215071868068382202196423720729929476594106426770877560538323799087861439367880031376631004402914665118385784484022392145352551198674220671557220917299752216624894863053515771879062509613723519242822736245700828940032673455636728453010637916145419667706016761559698277137094441938144765668843803263161548424512400171520550834265683627653095694470971852057720448459156253116680186143356328734498250895807862524019411312936628536515207095758360001370642275589803537169098829651038001375899279291070441469634091967576048206810295939622075026605705675086653433894227479953620908459417464745512651913405930090465521765135084905270821451384949759812771282268027715264030331793321170857520058510300374258850292171722716081029535130445269987322178520915144490683871668776561278141810394503982645961765971989413616356680913360915941555250010170173015268354103215572395429863385398668696404200191884657879054469269430588367187403675995633139110420746984992303642098129905430974105701983490962153016734533669427692154495318987186408390504824173956827144899217692682898746116774635044368817161064626350369496353036199106713513848323083496907909370284957466524671706760338773782323744151181215076224935648365563814496351154354481940760497598731262326846609519132165270860397487182066021044716701481312754634841834275988010926311862597615580308349457938169726322441616500060343678546390997486950305114866835703371030839424630334787806228107108387923785392009335896302107544766473321313198566342910684639700944225948031857029318768026977782415977468852274499829629687946134047774052552385214278289768061415384087490672976698422202280700054916785154134979287567839374948549610377073067660919039052497137770433856842253199462671950629176466454595932463759987050945334057532943475895745540522256739141879664796464213297730050130900301955709708568335413883940986097187051359087721610507212980997680629564713113105809176807804452791103599886600583598055958566241238380012550247937582668028685401609510959672314840087101354465832629294151492757505380458387318705370041685679131582116760315550056088041257576664405091898572305812049557289204406303868320358808440906441053758708867505404796346667498643383828060773388932672768640262914333569311568445213162586967784095257945418545676988993982370767675585816575187470563183669673830426839853407913944239016664436548586024710690196927807477111310001504261620354924203430154568869970420090948570314432213075911713714485590795365586349049271368232008757768685013402321557804502023472727282251736710098705257716629759285743965126881638096689695135671602759092465433263483302488251312764014418285936057875144050704083979978764379479650018702459880669786333060883620079184217145177586978336372617691105647004466096084423350382781301307140675025894227571028381144824514199358062940040084310649788626954072991608937726541480013814934736816548439394250936899093830462340407225008448466134251004050677284859747051360666029293004756859105487514546673356779943171109497455487876525957810501960719215951724672125520419894223441600028199566447575542180067802131669077713240150963332480306317929643078687615900145769106042988538230300121670865703397382659921546832264292401295818999954854848990469291005673766517877118109951185129893996683740507599398088764639605349320941977936162749077348446993404018325038894416423502712544016355668396329161672569349043594118171257559464291529081128866321303287210383601599313465887225047378003059392201433773892976789098230546863508613285566998232974482754934529276327782248445389252478391067192300761352153332697345814813666204717991383529686362548935812118617053826934848048136176451173673031232554821473588467459128162385785137395161975321255612011599366471877958835602791392158407608980980085952718183176913685834382761261739717921712154712437597500585040567731368639740149509773385314790344063594479420577196793734917929259643116206532634978355976980949136149539371966456909285509968397701730431839828788252997581330273643354135948189673599130057844335885490477591997012159103679459751333977197470102607806959373665623455633725563764719510420277285454268990197116673282266626461033238417374145109993449988405869915250714216219377904275679117948961679310618681539109108413545140853842629177386906058877920470846074229944533739596510421863711397723638798142324912542571260984847786601632928994333323186289518270210533786770259627610402849057674476453040618606580519714854185243433539450704111109443399395942246176675376616530748031633043039392440848904321411238833671135605710342932698764029942067335096615418248706983638355275506572112931519104608215697850963249507005857426137537117365238434423736302800538113428367076003775942183259332459271175704232800840540530999271449984719549055609092487376781186204544927970779407418067093827346163984024871071102904418309755980425924772520527610463328488016310163618218637758532618058731226181937865061861935144927609645294427427390998636445491503709006004949560680331113912927455092609317339804709945594255991730633478486802471376060424310348452361041867271769136498999372020699004898260804769930838773076203949608730499485890654919056495046515518388702828635216789396187895404087206492900036327614407728981727834580091309359635529942806373703142031729010475345145786817743991474561756606253500275252175943777318279820842571313093166912455099556814476416532193874163326774235674073282286508947590458543660407823359999102140374804907189224413757067509320351619414915180282288608289534885163239811601171687432766287624011061187566051379672155817794688553625771110360676520143276292571986348228082468154570125658919929190181245248418490081384871338321121723376126098014861228654275790399726807971627154176832444251193300555793148862951740034260839627078059485964419546302095644500663027247221314014434310370138618280008567715261670356136102505154609993315064475872182611505507617270916136838959285979398365630166497479020807060499593762130270128290172129618626992916728845241731471473838295445116489390590288017699119115204957017274702654971979447316140300479884162617020863536035125629915120806844416283765685347584637154288398122165675437988143653555166886585688466494471037259970820407719355820616918025723067063026705813510565196883257346683617245238936222451782923683884701659864543519987628302352388274823845795534412649447194222055212745073061793546011389510752258881401232196220853819246784505310856762962017984634829901655910817053332620681587219885128112513970205384973319693476132816426546470643722006728172706583112969376242731807042894446223023624396329751640717144991304617063703060770482669265461744899635167807836489484643316947256553229743518948404619460177956665484690099831075254360470275334008312027059676020685067723045369034408690711406435165917615233902526320646056327857531843449202738717086758737827461140207451284681385231521689959316449879963417838025060120463057054263001904692318417150637578476696964732972873523215849616464294341639581868890063204032941994551643229935827761071048695789895610160456830764428284002954814988529088269167180889736455043315257335762484189092912964915812970672587372963008492565433673071898729667199900877888152668096660903356393615180254424524215027969633228976752518108746922903647007181451234831953199629718705089271699414752735363913635776789449496708497322956536379392320473992631990757940775856764620007139889414000162603631120919307819047037050148458854146774414851725167146501939512985879376719116102806678786344299907816555634157884946299274207560036554040976762194216324989359479036320796131119541951193924105355813577182348975028214854014456816297052872551694451669745903669991027731431200943346205929924134956947464111243439619555452953909549846426377428384399980789653918559626222142388290430210755000655981180237718006338270768463788025795961770641058452559452737970384078299617586501051172142319318504220533167120135235714625542668347404464053487738217027032643642941792983741111328724766270462211054676376867396990335010968570445686545769610915122146071003317485678369489366396517332363041779964757474330827543635315470320553622834818526539196950523863403904190664910396572519329505285829690877958541206187533085609664661775708658970491238652668464309689888086750722599023670637032956446876627246990737548086293609031608164348732395317970692401244999979382320127615423051574121433247674439302253547209434628889345327787388999955385479986972974916330716216820773252042461361642835770930541256160590860411536613905788697010623946733970079585067574583680642304827889925142829930706332529050707700201620953195468708750168177006049661872069683458441558965946462444036236378882557173340435700703811325468990168024481342544040316440670457160787047857746781601460566088588774452205030763716998971553682059975375223529940270132712037262937458997302762481366266167158223873979441266718967217208312029880419672487216387383772337936875630852017603800765886465292485583515382142783221778534146438669841564859889793515703886318034429098846542186750354987816456082277765614423060699842637765595368727686091948602795718492618892747812814626721216348408952699625039364075494395930759381829437156203532625803293244785783201829881863454704055926193615205650812919940977621316785807494401174515348117081815549335729652851232507464670569879820406863869889208567703409513460433963941906303012374537803937809770818436679165938527304711140496573562618885874776213936185055805563715342700940436353542456350240042177032398144736998203660908415620478249237306093242606306390616167144718929438487342129132541069996317880811421945402004210300017054772728918854901763550204572118682363173937669903639875061247343809646523094823956209670592566423964196069499750916536057293439956197537854006091262810131049179862892673417500499074231959120082501710262594359428883240745041102265850093146539275015432944713679847342106082039316382448980542306373934694340990720413734738916137694060769842885131944841652335464474488279642916169811733985108721364652026141939239237331596499777418429125176658453631761237879219201276122321550145580463218752166483593358298274000642543431276674883103806155199483958511800378336688782712596706039870985613744145314094563518595932965299549221218683202952975143537689300801734683503129899778080368216659845407340967550826670408021728528227604413156342324829829893572078008341135661651144695788620135146694862102538196792352535952812252436763794896701992336643289199466467836380962269806109754402222806857593191580100331378526090976537070565716502009352877574446879868730376248037602746669313534561018681552991063420077142611139270670621632596288619514562926276754458654303652422792411482310644795726363743273787730691279378413241155616942546389028220162252790831311136712512143813203924005763495875365416456212846964230524211107827337875268941288134318181670936999186935745271640806796110870189574426545828010285201225523909127488281347670674461470303034927078263776805927308563612632708388103983309319836242874333536062440674950149425044346849776838843981647635561754538526376565928422593066607779470557672595325014573778513109168303977147813340650668544033489874777553393745572511236719486627375463147803768899924343960177096635513097872966036174232787343451498691775323915563394792592914770266443558913353242025963051612568898260766120894348132402989164589318510777581793895705226249146071736294102363833284795910428491458779974335675315944858378882592807268077873138287988009697024290258464930794736987292833032398056467082870252263065728621856895197304699347116868785109845412697443151007155596986774821971188498455553082701299531561623693137609461479036051874986189837289443220924221270720369504036802682912115390343751996413678900835556108733750843625458035340783321179095946113007131231902528133424135867284436224406593710812384621668169820803175323869432180643313760669791910441362106692857898945378471827648530006276070803649573954538662357561189375762311916575980072296004653553767513054513081649997178967855143416499624240447400730430424178453619271222483399164660802098020889635525086600555480895145514321462871525038068188160386129901065651375076081232769564422641167955066753655180196850180416306111409812040490275649933350725390486492683544054907317108514170935207545448575412380196353318291195021540001513513696666395950998934506003222889575745753463077385611758908644723582010073780910437197889378921672991972364209931854728407581012146859599119148255070529919033151286936467880375157681151353397219992266478184792486266586964275163665428441722551019133823639887434250153878226310594076459062805842581399901946784999527474718459198935962486508688467029858241115543321461348757757103506581893936870648757137356012018782760862490601863899155267316247587263592193039571106133394289290942443280280079030598483068442168722066334426532150829264671219536655854064420022070573300351804917901589267040616741601412018585619334929910922667625235432356985181697593505140383349769325031846513232468771175788347211403510286509142316476933905411397795107588852653146497094419706301316935318217373415271349065042985985320626187747088441699509313364561966363769157473700030632759755188742666312920478384834491838451940008829128811404831387475302919098227962443769190364953881270099519039278883303125209082536202308200687385684504946104828963074368978707860120730791162691587868083521172425431970701839489574855956567965545521746040093982744406866585554494143951060448677624660082392295342039467570912166981943794888523007424059519446729095482584589694557498266479579037088493406370240672067813493193130976975173964671257127843146461612462707524034942390770636832200802916001385565308665367891731070652868325188062183194570020243542089667187835123377731122823851328622565003336133769304164196276312885719762909985723624938676975693246027258139852804731582394439451911567563201267298597612436110971517829585202049711751578401267623857455776653725739494415261794776672118842910370613049769017168878080961302753766457299000726981622044546181656234516844905516539511089946519535639627812011263949534221259886737027309301426626535423608570932854045775888332738900383127097097264408344842733332523279683772859373041164344896213338105569531421298860272158645781859211363469105201654956510363834338405725432999221073102493150676935884205238218664653257971123553265262749100267628120174281567078747424753917996189568918031929318065788320075178651001434940037133483430215627260666307276395574888643912456093206900366289345319554928470282562971929707212412963221962330396011534846511977849221338347465595822108660174800554829592105764645107872545235427090698257337920919921258129516126317983663237762358270061953570577559922272528063536915244692382678814856732245819093344754368587677864012961789992759953857999178037784785168937528794209619903033378583074533848775942860220035352594374359598540709524490253717376517153870020210340707489996636855219203235015546246153549641379646889019677097979035076960250679837919329587545661484398188957710944878522280023978595516375384864530746060331239247562989472443401122303963537492048337938871111136592133959672245804265503806212482649987948275361312130645598489760460253030846138984264545926853072018370748182498547964118156606883203653723774563691102644414394935818227916092101465290860950929054807553632074461747961576900710387948112135220227271510965402981207834889584065112485216761567595933812961215398655206021034894574499138015473795370722697312416755486311313973211360808916854126171914116083269240593978853696187340254111135536889805198743461410087741375107095792923172326999615472512019437710989272082241520431532601029307845503846178927698078881951718246927933386999297589362594759817026336179964196200237490882108717893771778450586934967975418820640561794192369130132525284551050281722470948087273612180004655420374322793029488694232508501635897570325581868865021681414541824474800049213035266211695472618837666551895398049508816153547799915972918008030394140786774752398992868725299110109393922692123365551572317636730354066219134224779318594987738284046124538828935201052099405321632324907746844242208125370789975566932631388509312840074703167145860007230804910308089449332189877531654345810667886770230692852423319419900148919127295031956462476955639233505576181822604639578041559540570067186384121135039001153022643722901390063125020272112396881625090843788443209530936831063130213525162433826146495499275857126437182831532194388628972530274724390440406427047180188110578541435028493542694985204275461867312612019165888487007332157494974242508302815284135640238721878134246109991184636213169848186882406759766075225464746810272111345653250236975067053401397703206399026747743886204456176296853274666675948996004383855305055160101585959837273497641725848547718089860875697520294328543536084053746151753576972629977839574576357119794795238061832127115545666850447507991368219236813362892005117037468553540403508605974115422228247974847774702218506829609407521175926662778895575800373762680721221782306957668460983589399357740399903433857089678303712790510287351482468526454994226527019083826055349724965170948402274096553210618913340994467094369025960104774525394805023080721833316349984787135761292484218784859353456411710758799357084757052227510504076006993723949024785710107369994827059033894257079261609455034816765337311647665329627090993137196430794401021122804652929638806452168715235931946915088076566724340605254754489964627381745816618940464974573434830421288887859527261984895119531906476198982163693762314173813123257156530439203297622879708727456848608718544001969291897284554396945337888917276265660090258430729415002975547395695571530623760368046168511910007135457973254371297855396676951799240526633986339158076083146755331557537484377914323763701476371494483465513383548488367244870697994169932095510484201160448593073724133646535820310325142612276376850918296632392977709163755019804233291462761087295376156997269317855382093846528607295002883186708957932345143573187015085568772411230579878523208394650050120705703659475209686137356704642211522444026115801968019047679817410808276654942745661238261852547829340821062254898952245718283691444095422024310013968659851050259139705628968976869610561643347765049998579168029979918486552546984351739362771226712570392085706055122642925356926227234998613843100846846207022329160396837878000445802291330754676846891065612960560286665247165348520638515102731099713238443623685916807152154713124488535342499999670037410886537632364727593704986394381401983183648945400645163426614658826014406776517756502129067413054891491733419447919445644662951259947421714346437086379363528750418580889834071782597127793231807829179549919865194373783775353968352901725430044328144676781807002821937851283980515899026908681474874104526582292749659343735925200266966043268947966521376136069241069782379349946351199951399273058566877221067544757691269007564379555860293613152124578797598600519459926093024141783494612801882802273134622439163003563358753468243722716581557440458929065947365934216826265019764944477484474150032672662173916115563253251428880712871171182079921096630362928277835802716466594637480995442324348198808729609626770898840418210240392827616288692492402642392418212893094505175413952519342646644273977504688108577368810488278749229769941488066823214783353125236238881777307257135504498693476123039939773485225296045078198033536923017854684906115743693472377862589214801764191709192252078896235001197049589424770982266426814367372354138684867725717561983889138241010485726536627028291408329072919424514483242483043187748871526400763401836900169669636962125674658014297060679812099381485223398114398113304298270531403570616057168877835116687329633996119588042528234870761344105749041503505361704984393655353757180803823194729030591275755550976958417276265755238715200112254714918589362840262601145503970047307029846617175532148116477690264647405663979991731310738984747150826931277238983019541613246577528374804760217997477188307354458162697059986073960622955644028854839087671890548477203260873676151876446786284638411706055678914596382629082688111983071995869475181448761643255656566832414752106579817070844076286308294818837979594742353763870663601096370141227530519315803657821702268215160342001231224909401600433584535317583955999023218951271667411259416654824091192525381285515555829945621228779598831932790280713873878211526792273835753424261152453078641895180347640352136883416692324763005695892003932783644843696586145516105115992182452638449171290974841391359506309415618498209113480706340827873232912902499198644223197353543932780411920006175495711544115913332337547603332592785022644029281106202341810590388158062807934763391105579921417821348023476851535484519372404544723162777535745882394154878426197932293955979641833271329973752056212073750931758885844120037370748325203626193277445764085951340230510800765840553864553051138401563229012433400600323770018361403288368992765880749440315179981250360303965565460798889793031221262639086439004110383110359834327692884706713980582396625051241912141891672573842474813235906162328369801693728133879058185949972937390811048061175369432753082029710387030336393268277184438088640156685458379189157739809611827210898959988642120281460651802430640157976032971354841705498734502408706347407536347085524153159091479148937182104227671512875505498316220709529205351443873956320047485574551798608084916570611532034397219535339694987969230222724870424562650281826316467962569934815412122333324023572619405173547410201569212052994033335876864582361239187609944816844526983523652671434734830143124806592794368117499711387433600171773838796946974198342619221813468335805092312450613217752182655686564749053001287689560305958286855666982852628948712970241159834316487659623315115340132592257067777420503894915367233476491504838333809868479098888645113392931496711134336414825007402607024231652542691144425468594856832939567321045032736502162275719375313139108703938529684766946178019336310660607277201174311431210219303264708495704344449083043270400932699561158328532380018052832896020665016969982429216528891905931921673112501938351832222763436755969622692414707584898103189271165298329680637899441623365454977823635533824428182154099684114336820217556500858306219016734234073803652944479626125298334538865141056205181573742802680034156845193960951175324501984983532320629178128151067071091015798066644601115741961177741072717447293850521815825881448717618151746274511812317446808505702003980372879527004949323460140612498940316575717140713772902984166006758584708910918690853905507389261131840346460273507385183715935398162129525972527213536340308329900685883232207829759412356742966539387857755337963499396279403926974995693556575648500413145848297203150442105568544404691218279160446588823816788332396872028241129400079603739129790060585538469635041204583995562976025300682466066899309731090377293721337485472091690236207307354695122325771448464552370038142037443823176006934996404074479908852839227163982973228211945601053075939284336176367648690019310554153441124528422892919541033059032375069198999363949864354226138702563384450532861267638103624308262308024840668025344467807883175418162303849878540781261437968453531486763283178783086984354520107167438493685529099120902713718240159647227790648653749127588247112823657399738262996864053804892887891220116821229601387562547189096364345149988644343129334227124212093678469949604364598608879234896092058812164826750749491838377048839032926834868399170961727313469166120689307013159981694457583426355448235557718216956859124551633921358759821135785440315904068995702128660355614320984961488335508353042370049036564133553587961594157833546094256870860669813187007981050398056425812914382255332249756509635125848786206876357984718055225445443519763142512446078425627212052280874016878371392593046512447751946181908458810008250112764612363563289690848045671790423168098243930674846158563561743046336015470602096040398208576606832263679674510434417409227126506934245299316574594012622671195127914906033496419798623605188216841722217515084798832429089329566771239769059453262069522486067524307194640294826812704071177479422711091045308531925084518040241744311140080029518670251642473510219534500424857475201085411785685508039448907930717812079602719342130114990443742981094901694722367982015186072128372617500680459864845121007125958337214593482685058037489283407746196396989081781878494850873388971439666097185680801433466198412566861413278866037373229991030345668199257084298670846482536155363588607400849787560885732457198109643810548844786720400653534155611744612857525502265953142461835233857241044465545426359866860627753725206034350706405802977394447869806306149031595312620556161581547016054880083084284106985760273223908278102262962074745124005154897262543874409169541657182704018113538739510893743994389268665045623183428480889536737096523668703910328044364409449990577134821971602690014374245284352027848611087252109595796065255530523360942041211193870059839527651714482625386313664704651997226607582864024591875568390600355646188246250143433942365423245862853876946675643584450699418375214441038464070613616151703377967981060128201615366171806041219506635629950648963275584224051040421032828300762949627300830296016359708069137397217305483857442366490064361412873890611083240306021375014302667257119985409634310773223668617691283895373621328012071919397399244996365512134726171294968351384085572603825671923219959489607133492994956533287502593118401137382495730377580907344301974052400813318541826585210107668335977494632420061215711319197049516932203937345570200630520774074583242544504249122768933760944374139477513666583449029575220390163523940074291596942244911588758049268342750201595608692391938025971737812509879094873791684232434209973730968768635718352029931369453795952766958108466229880036368803423211213304663111654646217189388055183383053285962466948593393601392275547387938284455168873234274435509351581676522353519339871113268973324095971449822714864492837973853829967218047382719032071172124253399125843501978433016448603178133249988630913445160930545631814167147713988920837677659436182942510360470614435807794598972073717269029949085881737008291470341195673618829576747638289320912005498986734051415473742366294114026371289274851590718318379362745703963856765354509531733709059566194191637059489408242124158981681757985990222901549757678010618710727429866129081694432154386224409287638354218014498788859475313674916036891823971119612509961816669342321755171291451526059305982419613494340912254524512520545100914945205559427557964822266534135538352720311101072321522229346353592717784569686481717914403865275884594910001592184547808608468838736510199369875006224726883588656247442387808494365815301645539611220229247853179650782933275320967742468676849413006737949983901192620700965129839378440687877351332793127663420252291044174419619007463900276066077202258318654611476349267522417651792217693242640642139882171286905374005806017247767506675685684092370974656752374459765835597435638753833055497334235519194068795795903522095333573007656369855309876934759218268233712902073626357957210982096972275040479202151671409958764666812348670648571203062402113942472100927347509223617164787504225804077118157395365684619834901228649487928961408448627355869308676757812907680607463212085613728441693232307718426504190949930107709872853639126525919902826399105719668129496152160854462865265984016656240254521509716797612505920655862317750027128409130927569971601010671108726185948227281030705219225935635247764067393683568374651663301342044555390864310446110892169854648788225136820887135216610602566879517212913704287572689133336382754866283893052476971597065525318971242862364388964224842662508010817674217693797545696759256973865725014216133562609394371694465238630304381058311893293249716928726639085069652726680354784613486570686927550619881929794308823602301593613255687296435717998674697839844062983906814012214908783118569032649297533665499522984748256551745385848536914633625831464271104772003704134431416503567127740053104166790486082524343210679953236438933238076148209362938489231264632380344289765255095729301713508284370409504325207694360986073358479240669228023667002202636113540484351395639210184321802929397916713606904262334592103379194349394701527002044092939835926516688093656103819888254376727630220715352229460328375372649379613397753294813633623581941970768579247862917408652930817264352879718244723126119113599279692653707537759659272968254279910776454497989789707596084375915444845059806029799826233490440700396687825554442251160630390355958914162892526986755860002249703158500867879235281210073279118910582333786581683874197407510756966903500779633031351887193517975242217303050265436504360056568868526888304208574229150550029205328696470106478516654476673753467044685367600416569319883740357063698649608903621722459764794922131118664276806094260109472865143171167115186065660778630893571881093410548352173037811660129293652386879271331915568728159706284089636771567321836552494197216775571984771619477033018525404666009866331480003726641093921197232901240913362934101784597626995664064315995904750997591111458267232173149220699247040177473043863391401489221740059370313883912284176159963512329265487492272244779605731753653871702582100176934641539547307040470593875934964587165741643738351421791694764232484163080431073493569957482449641158644600090369013512343953290610602927820137793789752125525827404817924835625163154926050080377548056780604591557568536552592862199933277243364129441214641667382479044052004992297835544325843669129703506007589022833472614499243636887237159477485829778620708279940217572090059719382437070437675444810878020691229953238595693819944248677755753484506524618509742208861266842916119971073376511109313057569342203284996815153503223164815975009090688358650149717004584691927316783032967394755625016461994848689792095679049539167538097710117232314566005668796707858391040003042457653377667246478280082482584024852410722231555712705351101668438495245029079207693859401579836900031335640278822816136040841397454159745771130313800357767670281817048865949378749709650940263604590336493711047620256857957065790673942441324472434436873228487833112440385400932539210328329057531680695162536374474265956092600397425270719181661078423855927529767568211906464870121467764160544919953755928474307706571700693802788980818228289785857642231227171436967454402846866967949590474594707171315507448894297982173751053960312985248833400774260421817807803789481476819766892123737539613705263843871164480584637059628124105797005787865892456236848570645647990997566914840201525848649654175601350349358072344797678953082028678319871106293311792921690436521624166638460035667200059747557865757676448528995636531664686091431809503694669330898649661367860980124337302309514940818702715965589264938967585484659656306084233924948814883483182747934137094134720183925042861448506575007252647164835427922085690594277890040884143780577675793072494915370714425955252704948561814588778752270246746805315857170941471902560159523751811955826755333132655058925091418802608668177136877831651742758021448168298491114672383975601043812563197458632146566907666105404139363346902850686522355969740221669128785193440641652290945091659351519202591154296059002672089016109804478629788352958846542603362134847107005503525343459581226124296430095919555763910370887336895697253765651010289365874050019024428335773848069669972042372815740153198925300740699650457260823729749948651502219868510802012459912636117878989824682177186575905405708970602589562857438634515483916359826347878749973408647286055887031087579694438165991813602042187052497844121080085764784807948338980558550767425146915980844344890082367179680554108561024706284497718899943010226850823284859749265241939330419660152171099488876936169085985031356766184737045083141694603239784534961077873719181267803992641545889106512806380601729704304315690271739497994468917591724007712082441566756984446192516224628735079391784922467693667976865944754679109632843112276510987015352559913079957927280823173706221362574016205920110310588178309737732403467867959648809512871642567933286045206333582753841418430770192664886414809050843875185473814577579877451947946643584238786289474728866229260756774111214743508107997222536522572669324592472461882097097932702745811567983345112148621244392161395489469688382382567169572718076996341866547110529273790997864650847877540941676723079815115789813501608645944539235424976990524569496701206532654077758838096146896189485492545100310881988950502532128266948668266198394677962386542070333637331712237992188621975929455297489038309468464078922193953576617857148169137500301847204525940544047462487254446114722790209448233554792511714925263782826493973673909099649259922016532674485383044829768538281917909138143726603900102716976265154272768668226950057762480470433888244212361341828884653831377208507988158814280428434355636740277332602445366733273491551681273859644876161725346767132208171806758564616365058707345842821424566391116255576819172436764610855047506253592633902633406593108612286001206470100320196431055250005015781138487416066305788089194046761307889594522996162483657279807886106816169085598614644913476066723130309689822712285563546448582623920908581835977217802221628776701026934084827800494752374457262533999023259707139076886437520110010309562153845917236065080090593541420902189322760731907402792873166574302911435030564737723295812896895331836880142943453182422663647572637234521312143221555702102175908112759506287970111887428787074600190231699737198129623898326827083974585468088237836895019964339722636987658286094739749504917326094433945837819489836797771748756818842286604778720413309771322388019743580778151068876629350315950655815867959319957959418796352795609312140605569656745138165511335971409215402599268180652323844197630350900242936086566437086383273481072473378199077766402195151538141784404079826727567050383492413758410893392005717401416714394443231464754982064087070738476611209658885867497376327469826665365330698331309519670618621761656390752109466437192937749835152116395134572399057930920809699246000618827842835332658393397291650226506392511787702347988851245169108897925652825255775608217156900221284226940294955255186937646144028044038364159900312883940473459234599275772402637144374085603278893159517946484125169739501418742868254312694938896709745458199683862215616786393431112523930299458609946578655477322712593122769740887895703806177254030047490921322684903425062800736149634813620808336417484037666339307299402441242496706626733590358906052140194395292361980749238666138227331417063647849542034144002848052594180067833285772248899708019063359371629035998644999398033266844532336940220961843183538989587923640240222720170615342233838011134002279583074403059219484385933634145354410448251170940280557377817443836089199468898065574017077064938573300771169442186176675499289401883979220237667906708917061588058232478526388188196412360151523441602109684667223190189720505619128956945306439386280310252928033660636035346259633005382203408273922832455197871930303433421909053284006206473791863146855313819785644710300862175130705166299925725390839742136494934666916685173784475293636740469641522846579066977963762949097077043611988589504452230023356450942535909116920836680988985718930264586593607230846030148297402357721615206761710591639266323148363819975549821310594720359546348883956081178675486197392909094264167726825073798072394417844295312217853390858779062238388210465410357882510081866656396405426751173293239211866791558755166709251105300036420499703451108001281282186062352211684964921503800505862738527226721894248034845927594041246837044403444415557481007632308909511531155106323278112896592177285645973070446376675857737690604416716216391970906487147975849333173029536362984924634348565017603738330077585627670262803908806155976963190623698761790849655769027390154649407048634040750407104567492440988063581750825775532181367168962428522098377806599681883621106790417901526293968041804443832174539648544792073900723427767590652036513889061449060119934781694944504131238244579642104957000062736658373943468662574412019805557817260221381192969246832819169605954421696191358626662281812999979942816297313891489825753822170432782897513557671838659729191097262943579276890447827896483707790359466951226540375603180849874321499222499588207429509499463593718074353312407309432858870857403338924348793289633257229298273911466382309623532043412260815514803498668064586216012022606433030330367602059557438278144606752109924780692270416977184480090450171736266546079144336907607243300164662139947382148065302837099452605975129099627894729928700630749318282151379264810870673592046294326741685573669613137700944483896258428129512089657649371868622364889543161190889168130580859521299783421895144323912955309172999195874253169372202306978200452633755141786981485389704622542533997490793740605613543838190407271298809935524063917627068829959764561500935431509642104568519430368956294623785289414055196099479215847507702773641108312371086588952636115884063373281738154340973170503724295226506967027010179904605645369830075506485150855997642882660762281054173310574173092602774914478981642579899783631279118703358401988932332314858555345053293170436375540498483816047309085971219955900174866907188451238022585013356280204992840092594748984076210266281204911177340300375193549150348895332114244346426169468778218934311403858525680664160609380862912669449774424100423254513967149588358264731777209432457250491792541525385520258349768448725317839090094546317647158734861296746114000726313669637911140233165627917478811528759421938717580697486986294690777622585516955134284254950377014294426439661882823112248666298166812267146458803856373209532587392463977180014393050564556317801587737175888969858823501390542501853949520493186138128435284234384152101661457299259414914079250570766248862075854992685920998790033164331431072031087579963786424598354825885593033744915420835528036310856994585703892313202632518367851845260343571318788059608490110671380211738027857056888327905374234367261352354029115899270153358533340887219201931483298300441384077637243984371695525455267925260802782037759957441613685492117599336640747117330566303519063323850354977313720153565443713388598990462245611988923857346250569031564682068860359498436192929678831404192444253981657202607399289118660278316209662033330166073386729002933225078201684701443581927671151884321796536403893881892503790750440303705667050890293811670705565190295938187091116727179873961808555417647588203899478872103146637150069701369883805638899944883299402086057833424228890030009838269055761842081277653038197959726332709168311952731881106193210233321971750156941441139710683221493705230243016053223962543590818670680584137188056601854960555769995250634937165189977056634143691057508344505030492239941876072783552747204471737869636017250785042004373687621453379988354465018569311051778523498735462660165805833777917923102463691295729829017022034041856887907552288507010548869884476218682702870124712962111555666666329812200660541483628322093670488737851087756722020234476110107871439791935736266891683564608627052228700974781052865917885394829084534634296907925571041618752562780616184619537283720940645637276275576375084353906608932088778131899678793478078161693827091799781029633543415206527839404472153023725243304441913566442692479797563955129711341921580610775140625806062812955677504776546695166889968301498992101497552580164832064885558787389334717796359889514081465483766489131305025587562494105955149063996407378387838752994679981430279359639707033026821204512811920665203089485773053656261198001505822669857519204693953734889144064014347662852451206801602897040517499496538091025195410625675382084212156383984835267090908571897215157539891877109740545110474751274038523713064496955239696677344497973606955455774163164921741094310171573201122979067421107929797048991894038219077343928885802439790776894674181104873547391419447204980197983244150622523556149544643479629601966167039715182123930285831674731267396205140249009120804783127328240925209820441072052270055623496711157378991480683273643992862611308166427500070833806178649066222941052803028945754471801463407004925189373974008386155746740139747559640248349416286871942703262687278293266913227428906813979022868917858951679007167650431338479372323670723362882771070647909560350050501316834755961536990697895786755317333929349050577400763985617970448728275287494280855089376111835851923015451681681417123979683689276358878416302298761041593464592033810845904960004486234541369430153844000641598918549447353934061073984444759076772376889297657466348296765735378935618387559968514655264795765811223934121245051876043513162162439336159096894308175865526405296822596522660739931819285018675172318764117807941031873439309245614169269159703627270654749564192476127351982512632195130010322814939818614022073320992845103537194856657954844176857153669850219599156843253379956844650257795435637025222254569419857021692221149533668814349621340565984951720556282806398281604162698200024531141422378661161943939621885498916819395488530711598319529327290938298461984739567574571242243477309924633234883894728125418972118901220317586486057307703198876393068758815394423564576627756778193311188110683484177481564521423667039434890013880364681243728642442908707898167014490647610227088369456829791588092324077179863225164233365411536884046849796118353703480295356234424870181403272361887411400479116079486893969169305056289092206471202736991619527618634085526867180627787654932453790602505508207311169061059387581220438662650157418174739644312386657052541350806662289013484278711322669224689117470404060510034100237911130747609534538991247162769216397326938842788452552577671882577536027126755565282005729283187876616576814177052594781012501382685531983272659861620524076919698462354066016667886372712085498315726771532595938042916643639049528908713997870413651018259342953466609421264126989556209880189850149150448190844906958976364651052389616282082356864320495572192838502002823166037052521559883227056985258614448976576167534400761075098804367194562926391633836935069846597385715343184917810759732957594700251767995791590346288762046197740948608193527605669178810818512262899552685068838521873988308273965814527181646755892640612943715296169933583568004216626997508693396903766809916674836244977017220183107781429607798885195966569919840381342178599987953531112163043341658424356700817337120670460379743581565753803053023115758994874312809182313801856988223549301687448789717998248426154975710300946598505382805354288450102782502498091022050048585468840323478860102710278793202555806081738471301989802483290882799851181312327841231988494905210987761826551156824189249038380509679442687127372770771305895373593186069312733764233242535025725208822933563916262445561299021728724699962345180996504523300955803671626849640451231643859482399011639814850472156707785020879148446813078430794208787384918166721903435923916755702157310329490958942669510532736085302251023672161919073472595712666805844691498303495712435938964234510377588510687818827127130964836244894467177410244085704266843365192927874446718433794567328635725913409463490413298356168381131145663947322597814087706165001908064047504414098010365206448241140339092633717301912868043046513473266959715802207515160738896607973359969984529254174711850426526352426100444431963669665874334043350354801141231257900697027476044466280240458368201450308231701752094446467879823535634757978162966398179684332223792175133265778465003557088858771537487817138669702147362986631469959803320420144794294050170243006881223604959567435060726097147849377155566357085073115827380052798466949937625366357217519165117914736696472882503975880076038355560352619387809804550489569181313382073447961232387813170038648672495868662671452493067920279639350615564499510020668669857988883922950552366390976885485816940591590565291262581771108471103274352935100158706205961462652418581139409158561087397879250473505704610013196858210164236182720311336574209418501731514388180588778915517880442696058431293795290241350157509155728700503218184741252786720714046426532762804083457076913264428166477203148239052665116397165205807446624210299061737762288737196792704902741484239608406874297419670869818224784058350409780375599409108765206711029282684948410635752218408352599691547746502668452164681134734470852460590140737679311565206123095774799097309217351370385018590908688946522197954613043767087474764919057675423702207828548198335241276226735850846374007862371855628723089732389766571745395581426668806298177190464364873582150676093564723552546935968636262981121040029822499976607965708177565337959185340218691805314367989805055953364399891045401627553699987999322647378355036536268436507794465994062393999696029679052328489988483914993415894418826058176624332753572634163665955695607640795951377906924955526326265107130691798241938497099945812944279391178336188035726982389972947480022520630061573772387949123119941750137020116588450374314498066044572921400348945431569803619854151505938539513172628615208934817396006588871554513673515147574981741443817593105342049838671547557449583213171600305385766160083931688842611350312110430945937809320623344664082760850349412142509473844586333867098454176381607022622432840246418257022061712327689887535891515072001564514821144784437721728377812922187417844145056361358488404855307026913352170253424423724820979987721315644053493319793445474955947756938620034492835776224106597054341965585387667304813152730718273518986708230563340364802706756977717854672754144249715885436491080698775900936189017024887996318634192025760722081920762454473770283456883233405154156540387535850351841522562438462186675472591289800079686821160233898158662306316332799926451938606176428355554376510953764550809442547073734441943820825522675424687320024818796237722588826971961194165125717252933639955077042459240577877493268348364297789498518900504374214998017580563914501759565314430449268162411558435682615411234039560528118615367247812682581147656132947203514018443888579134340402401848626518623114906996489139801204121051509179839155726461142072701046340068783575527005425404381029873607805303899537463481855380280208450459367049084037009452108166718106785157213757266871553740542716975429443094610438019440132344754902371317006548997501575089580780473012454240248722657480336277401457934450865240553805754315650651970276227303868029707128291597159995221709258257926626174855853323177233465941875699137660551642658456291807746236493953722398946287620056479109448108650970895726529004311591259086082970150173531234750140302708987137324514857508813073496185250281301212431794122483560579252180449924505538911445046378885127500808058861917121980011952297446646578062074528894076718732453390227418430836424957183635313772595321302810096932047300872518699626290383695216930006468194127324501220377141663091063110077417013039116867470150521934410237402207482502762955230853342500750372583741668460248174748992561494459694814307105215395201527877549284306299481602135356527491476541442700229437973510238263661755365995119879481932748231478987027264731568528998432815470776190432474607758291991619612709941866558682197727457425973228906655710557661695518033843359662817719492974889588030147674700695019719089762017611224117307010654670920219898787351524802018765375793031612148340308935279255010740333204580261412231648004855210416611610792775313119155963052808884247554542414245820428633708721981879609571481712902625353396362849041871760968635646241165232724632841338892342428598659060208263151513011020806141335325210332091658689884505849024258537627748347011922744723379806078181495035377021416338254642314178960141953401074824224734840897331307965535044786857868824538685753012129023350061091632655292469570323163109101934674831234015138020975942785368045669765747377353948528033672507548366905552906400465940768330404816773883726886596387455559867266442098348511602408102561548921718992874116672703293818727574195414788076320801963121775080398030823569826372383080039077786654707309110363060644591591849759444031271479737242805268410415116636781624724470057004489167203164784963853328565030593167110046740548148003289817673867071480985259685832022737425249243965220425170390791230582887832802962148030780544781753680452939623107077939685637423183526025620705621327852232320959799888031999957475130261457048620521754486535337996429718775436267906198028409455165139962403860977763808154384001193534050663625525450701258533513853348572601425475308697506095618458825763565805029705681390466921789104647897954410044091124202578363667429221937025347814414293922550922787726153275855961892838582631117845809461389339456310324397514025388040377005767484310416365245552762756306999085594259260707839378115556982183360361251788810857083365281321419431522718261131583293641766133277480423023090910738698905289537766731567072689957614719086614103168547975227863551091559892867933884201667935559539266944697447006043008248769200304559512935605408440952887821426065979729840014968489481342549992188763117377725427310877267183479777280324679363077871941941885789667781215763609300397620215439741909372677371539188641877346344987572843952365854297722773768154511392502953199895394475276078970993072827473580779397931462800019567937174224690389530444854821226418385891040643186852366165040722219141612518035021780165493336600775840532273468227597738539045326807875501129348480563424262879457232007294412498458528716054746756067284272570550800583291367662897146004784408775919305940640643543331530710727953896568276127114284623032194407292429701949250110301696699117680639828255139672063123028484341330805957673898177199892861954361970980990267465764495200951910261892010494034139917777969217254067511302940037092252842208871969722077736589544097857757002185855442720297575887824176286939894385140283301022370288656688214519734988634598530354820934597306061885320179359305847313747677043041243875089978705783339139214078797516237448995611469672823740776193991955026627372416192364623447288396860793292390746576193718167120757088639561461772663083839047317934027231203379682130620174029129031174103483155472290686307820492603833624297737936688104764144567374454702677495562964584687246887811880374394883863307034035900934411402802598667341043032090636181517214484025309766887222130150322129829673899444444052765349384788618023270649561402828105143904526495954590879253822478830196573844881164991797291492912428573985897416650194849310308203897165862956792009165590515262611770679116006910291198352278051481896280553722017593748593096044609819556389761611776522673101346716341930673101140912617418691287340879957625664575719905309163863995839947684421279648940438685417714348755086419565110082527388347319640280035959370731834711795923313131105799619188167493912910140593467562324612145687350094444979964557618671466361825052322046214289146721403214117826487069453145981138400500446454764123809746550991178912089679583743186731706893120239671003358686723117910432297819845619131093656040188866467260023086758413765920713742947848331379762307445356652987961446338918070709803953308121798169174686457752187477608530927452411457348863638597097716096280357628377902063318207763193748925669911694328187066440946961156764018015831192370851197075187008137867886573307536104265123981590775681210803096091973547234378215990519412612369432631116061774703229002403318431545856324614209895835501019375872324174168657368746940850826396148473327493238920313082806954769699499211404816960755596046404114245161890679760148642062206491217641117138816265998217561009312075329525212422554198845293401974156736789923882145836947698811531088803057831534479528275166591822775113971351498100605784307964029310835904300602587586415056713665536891962643116125745426104452581675035992029797960300104469841659164602684485766391488739916061515586589253904148046263226463466362324073062252085284970643511989918852648202653298390235423382939709590633041032772843512247547177257123355342535179207844445896166765882350609221221129723469808135033073158542631343607371314106642762235301748528281263240198501166586047508194585715331985425189464664284131356900170307476404219220832020932525618950141022980030555877265579727283085780573134600984318905580970698048294756288852947891284727262686881151794318780725421137590618479965802795436457767819184519203881232634280741825664423896226789383761735173049315846860582708449426416406206302660766005378777320474544000560736297038757139739888447824503554822239378488229377704514248038657154509892111583017643795673797868613399992316291297751768079910383783299928414814149399066578600306711865790622382350924627564492460194563823348610236773014065942700371745972795621447314049395012217933536573833869683045337450957646711952365084312773848160175594980149966055074257199114647502998435315466358182907734768730923206789070913118573804888756785283477271886385992378902887356103370663712326631435325800603692520349146108157702730662023952418661816743027929450329783639300159595308908669963672455773363843564768485776383254145840859202233001517919443224590306863309369287921137344850781927663275685196926807351038883154998579990143317228432185638745709383466033887511915659558755257023135962900488294316915497434093538839652160304757712426600712114868812460366902765510838356364271980420283176970589329130349411074173476779508726930484832625018168448576834417080563612782967674927202093078425951298118818759623171928881658879011854274677331256986244499824319722146830608944839033165487646237767613989574146733719733104481385017584013910125897927161612862116492212271770171365107222560153791516606893521834595411060088617156593748365806564680903051063151277526120970741030253691826316627886249405101655900471748047306813637098777448236752944906437670734287337548307960359358638750207907739466303958324815723123840758118793519704338789562826794488134964016881540447075978978098179616964949225734174181283333585991453697867636470833449994043492618410301278320670481112821964815357401595304187367882006443025108087857733395477291044218881066005499267081237601809128424300823819969292782827201455115773865588686590951564481743370764349481214092078858111382462851980227167420000157217783188383255317670461978660921865683444829264478475300283815011480248876494041257134671326345495756845844127629823651784512210588968008184886549412924899750052419611637124184537635351267961149063872708024657852099905294892283640880395146837996172594319969081089072155809742734904373734312244196655622426220086118303360220438763891168320147003896125975516006944949059721804399353957646348366625156962512887878578170665659632019810311475741055310435545844745928009343414773839561052069781303221710182284677185520325198380665584394715590179545488987690358797122010597421434142446892603135206495335327570530167220271658975257210015767524620955210416032320229849626088652153417996170098136246221569643300182799560092114077794132891677979981891698424573401193882029665780093394601212286652641042047919986916778906393608086535897680054823505288707320195595651868886603070181318135853138662274332539373063525630074253086617837144677988614380657236349062423937621907392946198301556826629889532944157696768825548846499364068207647110441914526700272180387564286556441208803360579803598890123376231082005084900179631435382332984509297797727574557311970127025120429271234479200040489355053446933537555018550726628978190555480783645730395719994795386051195612165898783385235424761457001663079158625505387450338204833421773122354620071830102922718377673114710730647284421785650796060046951881124435747129310417907311583070214962326411078373367490445395198607955116722862690785607318156379596815291248723590134887163596670950299759855269748905529734576685772233559838094746295811614835547156049565290163096889203452628146206725143550358635919300212052932498047009058099203258115018661313263668736173998238391175474125123874125855283226989618222407400767609285706778151098228867194999815189294952667689413388890915093633260601073613240454527267282021636471106077328511762606507773940519119222499458251462935116795214440485062214654357966311393692084895226216070068240314944237414769504318319613422246089657581870321035952112081662096357704104670113472578474564699294407879522864308267990753333207117403095958559899875822432167110933587327839376680420174495063022451231614977832938353731238404912255837413252981447921511765043995589542070453127536575605618442455940891047655099442817357318973954900105262656901572319332242416064493455254567413753353438770915272378824151890328289223266476674388594984761133360787825240999950493562897561548651772804005464579316630950308714999580492102014122624316080819584855505423410098144277770947642228764556417629376417953069921484789676115938308832402774553036507974649341399141675392070078939284478469239917714061719592301815296283466728497659730674141621071423948154209533652944563581585680784513829363517519888747486763547597583088676520105365498182573281423003859984168086206228547904991335184204967554884472763738439337108040230209318910067983033534448816055345429699814698078626254131174127303878744057583720806023908922271214958725008132619015052089770889492376459476480106335341562126690953611328923698271282825120186730795793120891269509580554294239582175042867260790448483594246155826271361254720745410084438019592460972977778717184804657305799160804624256487842501507049068205197875950742956415105827297649201655739372556850097142107519354013259566467500113546510052732708101502482618879473742320478724461352839941204946520002339021475762080758019085295529774422694201099810245430356058134487922709362179621315691621715069863003900565089547612864263054983981528329855993580614570796289644968875940939544502340017570982471162063022490259340037703986972002423392857241716424925517600742237945840990649303806101180212163671856630789882714001536303604341866383274773321709815265821764875459722740362652130303160157412518057981387574428998351859536325377841746071036596585510631459853567410011883504063437282906538069616942338828696882901188142631682619688414515238417773792394735111768439784329836801605262270345421851358648438505988827805424953746260917126556998726330923174174501234085056148710507670904716599233729836951167061529280613206883149626267809827722072612609679387142084145727404650217053090783115656355837568043284152839648767731354458367948624490990582076228677229289936088854757412634636761282636541520929943609747656379769986022758698292852505813448236043064157588141455488194003549579645347137943173352255471474577891392676419079315964987831211747660922473512666604831749946156538494816453305480529631622084356840813576932221650807318708839921470808850836193805744353402943570372133025861530316666497653114763475219473684102094359310282013122943979316018076898552527219645579532584915648448975008559613442217885269229392076687845143109741056674968898276051715200291000123964912883979855434302319885681980176646058061340508498765493335522770741909017363151337123087574772258593723469293952709660834411497939941154643229876569495562704767888905828406824801651061551548298170833251565296768571684894077334261209936032348080819966280582870448335307116045642626467847987566140065228723931111104683716227443546007838221597901651090652768058580489867516618427039430618528796445256766148420100721981332756582165123192890516687032532927698266475337170960008823918574841254395025151681239379467082196103024993148810576965798481234379911387481136018647142223894208349823065832696784422131343761602618348811218023001787466456343011894272127237684364167516450919026560335203932660485505508728130228306414223254336623890809908838653563395895636820659709963401108665720468689719534754457090769929174569061550022683017044437770737763278054414315924679818066891749554550920142974197372963384410827490176771078085323759364914466183802928328653560146145830499423618379326858165420985028019753831366425614062871301244905632979935362060838175884000424613937046030548473932005771157923120515540702850765650670275580811217511342569635732905924983322618107264428891356755851001830359553888185909318221914092761794874815194835166356827455273074243413660665720926133639213277871979232309250390386050354077729675232785825108045121167042064133657345132403379261493977361464750590039195396850392998767865296274378854959774649403479274203144705245654143986406266908988300123085676827530093008639410068665175260915175944107644403837356306442949957776111368383418613845005362805883296810718829737741461181061852111042850783432424812327962776870920629981548983398271955333065583329090827642199052194468175296647678716496678654603083157666187415901822515981907404025620339485323513236318444625495482889166058730630686011522802409230641035270211913658741036006739578463414459241105559166855702202060226105691471375917362258413727983582158096506106628114313980344869202952849249300163295851268607222819374057231495106978983225395000350255567671241749707446020029403526807915214495663804726210277075363447753571409740296317236602040925195242237000964169867914486742591290737813158782922014624439453900813068045850172820624571188460179868337369816165415294534107579951215065681818920216358881822834461285541442649185127232827362156875364748212168584221619557423215333639384230526995418662135697407346573256138037062578625621710855312840318648886181957976818518841238810677878012478810515623637263774675439600427159133418124316681134079052681757727495925989518588453821087549560071328597398300096294409845347480409181044934772174631945559907172335702556775020567732441917793152030892182105881532507105803170692656781968812118681138386665140413118023640416005662442954781890660094911805617724879573686223834667009997294079693298632542346250374977615990220033626468121935161542502215931035974720163286103526582672356456170404633658678775805614772251402942591787641067267385443569138943757299786812240509990971560440302933751461501856957436253788432843610447596836649561065293093555703052215384549650954540289608242417067635101039154023366853322383739541764950815635479129632000507100141476273291456663391875702848651796342872438525357695913492479076972259091613891066430157547268668630654109028120274601063605703465357324215204494755082281398890364093489614241422233839818480656028698354404303851371737181641387090196123919117292095425671709732799767685486955941280107783842672856981179586834463983817320578328657496705182110714974829418735576864039632698527455884624030451928572650849689514697004641815652446564543833203111641816117595497652573603397975107250081796739354596082404615856923812994109709287599877075539093282578336798422811887329474959494740397717057070069572464617389202818922943048751955407003284594809376844902150610953431572343531022802319177814581450567423920743030185763299274667602031881677620365658451934630975461228265182195914553459293296511979797045075498385827058471374542355328866393727537833106753028913715163220378782335307381622597251672900876440175826475918052676884029591751591112713711389759721982692054989040387954919507533697308046798630150612675512929594411430885407188236334777633881369420166895041782287422081040998306411351297856373462971549213719318973378132893507527379576931389945698097873879267338963675068072586360795024354591905547152102766040806340148857247404319318012504512299690662028408341644028433449170483395881490067329969259471692746547271869573036243830210266313957658350340530464597839458604800941599543051453348951337740013191892468196907782928296368503222425764892336387764828999265147844042760584401728117812970843710473390126951970385636492469183073698398600326959376839110775275856614242886071112927216956507049902173431004952278946828174257026893464996055040847164783774600410523881921715410982694881029163002488418998962842545838514194461941478157535673477083220330352130683423510755512073609285292578665824130463499292031478610650010071539947597586434761714337756766194676652720067795980236749694711413578569494250658008445904410622416095002529415920396778520892109113331347785684495431640882592782779047692955831501854681170478703116766706942540606153963808559411412012245037957932751129871584136986513793452953574766140854985205018320478058081112388917752999090118777266791538050709667761868264407610788524912933145778121338940043653974951110310201481577089634975821434444397641179289742535548967538442156543716952044455374853349609441437726947911507581983576093009969897275992089000595531423342975352200821735969483403751403405459977738385502987185282890066350010920400577467660210322749720562814741367470120784634654155011577243048927292215855670063524413042425275309384053819616938031785006201734728308498475168696021958884970839908281910151691268795214090788068398235483711769180059596860254582783712925387015418359452967369882380218244601607348556660644036421058202630317551923036650058617698628337884017139939669214021602748042664553505300955219613468116522571693603839912178932084034922196529585558532122670735478934555788848056640730894321988568265595489003607111849463908418889111798448921527742358246918157791265391313955170199340110945560782827814177377171594079036092850140663745517354006661941566076435104139986902758729476563944725962058445347836404311947249366613155747857381760924531582233959260380517095289170443337675363292989713431737222945166670068490824926430469273194840105568009789857442744858910270421323639342631139597582170623971981289527576243412201912580065372385498852221705064917187040208396397857642861025429095980522491803160506722330641347567191325098594946874446659444851234176766224530729245468466706433313866392998799190600359201620082076402141019224190462576985707699623710511347066167726129333385419129071835472820831690733616238411887650607894975574260889073684799903411113671114022980774871440634653005603017713434370475263614749892777082987798763297207752029461789819871924473561253838803787385914264034508937805149951025647388735472862297959540253174256802681075625670435591950901547013701144166036150098737980192843122084267305671503798395977619556273238896459607857208100056077632880270650190305709706631674379073849899387416585356453992972692845596832165178158632316935322439241669426769265465995490198895971180498892722819971511088285557257512904509794952501698101977732322152352379686966421020367403143478294769565053848178266491045173464750466409083602021886781296884636272275082822557503803693270325626414469820585415971770222352850266867716309991406516411296872038639735428787604481128566832312396540451212653696955856191366250679961595636551640361784289390418793301330747430739263728959048468916927576786693391234748864073153108909367028088916315209135193236273357209563359494227669782935205907775949948326244908600195757391534510831832318317225579096442324982397410566597318920210323308685397798811734687346064686686654328034882406869858267486789580676700787558980879519086667974991809008065676817558937008917711778057719003187723872837602446027554695685264889963687583585617355649288816731181918175387332776792060465136606486206969639127379235801902389852993060153757448508606188100549344993562994072376323493682497674005507394273758244585578330941523082665184499686559890352764921792306119339559191719716818997769401449375361687810424654023627890942235093167821570510905257370145911965484516824999275865401088285975900636695056616702125735655911606616255544762876733421573471275203290573472822296997404834484364169585474174661986829807067103535495046938321205555375194972936203593713299185737094866313576831721832287604695961650316173853679982914166157704922855534029562559147243275544809330585588283180149762087568369133561930162031927554216603584601712077281910028829993594262708706833941259860483733031858170593474703804870335199052574098920697127823478579174384403443816582059044026128682919034328349583419250509563220748681191850792890707601277283069697738307330930813977498082049923022968667173479865112560200978108260148873318538160949269207174488036527736316146439185502783496681133227669634673569426901037953897081313053540745754912505683516344147347031541206243120390914214282449800418121836764058002882146761977302488538759771584177973672889835617578270559552108856236372672805379178395666172135919045822044064708930729338626167781400204250726465211553391197747070363993287227244575966482633855249845055328210921812202325060602923540725715409771786752847024563936685816418972677912291618691983801504817427173190000096449249088957771929648701064690887786022491939345897997925795811224860130046722519330778229980443971227155266913931304040305853699148172874693786682629386038499385589182254544510174329084129664536549550425376237194138093325060052167895185713241118228618729518459916315267237802989824338024488568348587558152003770696524922666407892027387750429059094094030520476259709186646697537402433360160038122187830180592840098995995820050363336402813735167665464251744370969078900803223537508738496251447608424090941201887369019035712812460910096568137382161149954980866119018859398112880126802859495958276186850198740235068601851662719105892973092061963841792615309207339364748538736524119226070562140780922419770150443215180732389200678602779657099790721821894586369703548982197095864925051151484898330796714943575770792569633581308696982785280620300139842246078498267879660374553716508954628736829758734872447355836706845471104384996461141629338830808626271226208429930524569638939999172405520842348682335454749944410393589870390228973049866465295283258106209665267965333827984105516765139280059050727459257005001910909440833734635460349953447872167775384562487454862527809508867103903627764566307419305974147862458333214095591502515463033434317145032290814972075072432029670907527003726700290180321622453935632219536427950423013555143426790774999366362008123369407945921734033862053621997661027160148685082081870510856803265242971848379210786143530973232157201882557541146669200078164226196345019499663104156394502337554277966569999488638310011675204509783540795022468332695900741691909882489827348858560168709591032258285345968441114073325485799675574622024518646957765138837944347233059161236124917017628680242691022712251580825698615686555943239884467978585327273204477242422541445589584343561600282503301639871251898496392689507958414336937060644546461525018263818450742708849604565987277652821476114462819084029253887239434185574360162110733801668572959327178366005457183442354549191320913597731072971801958396910351675264045492673017740721787371797746861191690215744943031100730467720038040041748829548269047468533159385852177014736530734417178517710715507474141083416692723223814616320985315591861422980316541378055605454167444622996123391550513833574147406201660814581853250953592424899900085072868837181491868029716081975407420865713968499395925104266767093927262686430008052904050394002746841872711481300871598793560464911025088224343440356209767984391331876884013746683795861830993589520646451465605059179276404093532506978496725540352051749978121140028790996833376506051171683541107534896030278086089797433352027663943833950812888900224656189226888896931120250104825748920538478278439504635995551504799580637426705432601323368021940754400203495780136915322656835967976188966102708803987127741926676821000379062306451692729505121101128613682893141235843769139894292971628895794748060466000832773237882479598080860626651660790296353353215724208166693525971212682327279119710955719513715950453589419263537073507521748164580674046274571698214189896356408351059791505277963438492888997554518857794529934093582685297881288100657044168180145144365938712006306927210557083512461493861418288823432481907298901144799192035009660019716040040779291618677750455410876625030180777394992884648930726012613070233483050408687660188096205076217300148230882488999285436696116228875185991746367977191377160972082192141673055594823099100787184328078422284192906988714841994747533467027755473318593948494335421759280137676978195413083786218344972940359141180197422892743129543828015798421416557439307611014135018655136456168278845935503405615025206554655748415806676719197805553447938160800150509063190228035786178095649883603976612133731769810267148484513236623768308022958555944913819081809712143530785289327098062701939785559132943484080482633721665927146744531065742495127115611537521770548831689254454060123724017719392659347384158750044154282489372861946636333286352854701715555907704925861779186129328578719451739013040080142462793540765371195111646507618682437531063003634674176340257517826677638154929914162487813144993850134980598430996048112181910320040994092467538934470907931974157204701391488067499858764995571293386173682076574775110292557170193910166879731086047705949557193670666588894650432107376107499899846446781948206220969523715823362890261461964639751514565101679214780215524009310528851867093594036092811226842848651141084542439964080584954402350744280211762267206265111165773952367953472992830809739112009596920482470714372483330053382302282835764589717009689020391045912598286603320895750572856487274170694674081349947793834105911915964590160330720844743820872801945702540269349529212055987949396025454501658908055975379693809340138347490269730672484921691592284944587378309014391225420319799480129803417135074880485374043033019778209536962105202436424697186804600429002735274512499514100274295158691261282383213633017178316936719305893819108727943509222801665243981354734255362242036669513137504049450458860357357766063071378524750523033193610076782502236366725228420151875387192110522112553462444968888547855025443797306080376371513669555327798723854187623199471834262853940226911022092897952461271007820020838054777745009850650844101196043349037678569418076743275116432262021479693097540535026955826790950519083333129953001778012358092123024166901077155724300994745746351569079772469695125307226584869232818256125807035112504186016368831045306303067540544470202459823717577731804886030801110642630264024395841241605369920877296814663710622247980719113648387692849702796518169368406300473886906468966721354398828073365493244882990390748281167976045886957722830538915232078453228844865475658565683305362279055961965468422432233139652713828355867861631904862997363982667505159408859062617151242471883731925616186792459033868459199997410043003714413291149827648480707036446540032915720512542589115888855206970392972036055570544916797171668733222543866241478180476124007363865586293414236020215927260514128508991511801245789029904152532820490873959832374481749780071676450658562231698008409781003358235574411763540618295676135587370675170399197834118304454830983496279339777679826220041716813329667270064712623210849543150366083169861485538225481929361865809648513751475411426466349493152702877215297006161379496580803735142105950319218489766599315594272720816331825402134364027978700625122968692968351866382454719142548838090839639635912592799455006150358146431019554200968237852285025535257833092633711564863926366568828064882200615972553837532683132123102516399901227251039734306566139566292604322156660826157947437341471449651418948679982828014652219715754529104472936054930841091394553863778943052974327516783105809005894700992561378792110826904683462792993712883388648671593430456596373294050834147343854639077056594050247351135653390336542372843763981306064038225406346490610163910359615377381507334717801865617104032287592823702169141810841493707285819793660062957614038634168069360451217403988241301637071552975726847046989419388947402929881573401775396041492966663939413908269258746117331817015168671623987359493243206099949641044221905065460358168453397758045901863131292773883642023895236309742625726877051573121237582261608040477365105499718391513698781660226777645008420173567245751084877282787976447147623074412965135139759968907040917803472660815301553437695805595685558221964008073853816219577935268157788668313532552745547459387282809771917310652728793372605218020040145694930934046044367285283554059252132547885123521634441475766232574313353473253632649865436318486298465995614032977664543886689745587362882555086792250180981778601218914697072701447839055676235050425159132368186409861671905812886396658724732711457818588231936936231754511389619203824252771515654298668279791291760731025948256261002638052862137429200924795834084475895723933804096783049147760225555758280142450853971357342747027485821358954757444830855543194301068970978351208734298396314638118149312560004338168309849400417884634881235266659323002707154868157128832112605091578038840082476810770162740658452047634253273870772909049921462191533300272702733153920546354076135984650013758361921801731606034975301772494678884794233595874863622702026179306471747325409388265767246905185606460544469023090569120038131638332921233225039392475775486195319533426162936711472685265976010134992144159389105247113447255557499476079512343875327094116738602991152469378162842393217545880261702155319417795048508042040588353235324601246917643429979295286003850123519483865843620962470242241604568857185115076607151957987663287223503014400689045281613841140886704527704998640638185838146908895568137054012451481077788510222136131319807372667912465638407782450691826952919334684751071425551386214591360452840757213868584759010245602073939527566226783607699937015990731046842887554857825807538479997656494067953099569255225652165912207172683132897457500731612811436198494868991120668338931425283684535714997694902337563567606678810965793517920844600382476394043439858085209607988279891167373407907444514703353814372865513825787370527207918058433357642959046378933884343665053169999907854612828511586125047504062615020226852439459947541805074988902944474409827712856203624358713123298606093905111014159593986747416587979453753533198466891557841654471159375978695924351794354246674971714082117938498282851581153020054627047214877902282194079105640586645529128158481643275447695393584197141689212963433815927685570829354311935912700912674618014952771438354679250627426677443156558715502167913254470488611475656206511640557190448377705924659175042690362614484764011298785942402978484616154817393796169957586536551324645387120821886967921704806655139947345880055091697848011571706808168409219728531542161462644481488537960974421353311311434471505222833180626617117614832271754765003423503041980957060847843934278427188953644817145253297719460491486566046167368219926506444260971371742531780680952892792323706293637697272655689742928633742962856155736403871612533871299119611426731149305537962298275220012279420163168801563770152483953280253804490650103307316111997739701252359255342461353807887261232695930063293833845706702735474670816850657296641022248558038671947621051702507217363682949406257763226230310999466193477679172760996957657232812169494048927137037604398224737729150498132921975909807193940168681874131159798639509356493211330864943755745261111767214044152706239920254825551624683509890685888410232362682179938906326060359729887493570860149944785298984325860452147093380905611152414436521771700461764375550464753001362329993144104638501857269657622407800525775699890339514819182370148029440985470047099445473206864521083708898058825519199967893204409582973548143821496480333551935121597990146444016507116583942921834373633202507428003658132331066475668324849808659645258651441512183167942845220543026210808401596544702885797612054171769558070122553704190187766351280351289186482750936204594896876394850908977359123042954519509243238891091713253647994810301226530537914634384592885466730147761052592533589650178168159715165117430347625632261546770896928862327966455541257326711554486208931484805979984053068653790643470154176772627435234241700790687544446827078784502301132342727442243760059808539049430082308332918965266833956764882837437365257697721228751203142737657438284072314430430643012498945406085667282709442441353033046135130376681086227981972082741392760499347143221854538057273840861242066833192649694040329411720939656786147205282134046081380538174781574428153699409363966473214150968566240665662727036920911640374720481571474222019184503766943037719083084530056221811258820638403193227499913226441342657288051553911788021646949087162498549452603746900103050165004672537940197542675148563713958661882079463816600040111131954902428621345044117410889995795878782457015758328340293766148601809103169611109043491684429879518020660590699146803241649306984044570045001013675832407431979509577965568775551024601384591406000871789801671021568176783017659635416714712244853116788409989805224476454435004252659821240294739965298147002135000422145651265925299357924845693867810563982133110382814785623918350111119819467848381366730997488402004452899103937496724876448116341969587794679380033618631957838083175611254032440489714987217937521997603373127275324075071522104605535123376323052782428177764825331320432844169422259678171096299903029572897805608966849749253776121050793664356942070349737775890079919736673430149620372541310909052846254822569752124783671271850217049437796889692917709428536633584381188781404102531182458053248652776129026236910991360634766712074239054935764720731904156749933926145973096445318188606437685643646903724530218172365296031523628006881361082335444439796204590406839440560162184705693069159376608929498067972720685552055264742117622674496542859675852840022864197995849674170887270294504345526566261390362884076063561228167471775443587677485620190190746278930427104765875525435389970512816219178180656399931757313700433588399667952504009388093035074841681753045801706645542231552623991403726260744909606737142460105447918091873813906753974890819718067297804536275550354506566596293402037979947437480407236400848536389477530502057780174902974538231591066344998433261458996565750552941913393383508937058160997302409722329770200195815995963657546133808028162760168079147591878768607672286996590862816069184562251939775508285833027222572481294074217638930318035908640622831153617054124489884076407014583619446657597847620724254221656854789937768716886131622873627570066312933457873868017804273101737723197194547805584729584469922434277521353184557956725516428983243186657706844313076040957792466852069415854410266457042159113787886331288169404897369522865317575287370977650904233806926818166897608825190501491933301962181935760356696938379730099770695559216754108005642295514840323918423558014066429167743286380623882753796325428537363411559261636110535555410574961751062039849706545071534993893274770494212557326597330958029104010727422149307181023917053953453553591383520385146714476416656575737896877130593373355041309942383944414233564911187726330763349839083921776644680875545508181215684799351179630364172491596538163979016507542699502015153731806477518653845515366392299860354615181232599322791038870538459961322661192359334467949064773986636196275951753862651023768699122889706367746407374006423798227141753548548638617711848331265995220074014717874095918555255857582420290108878578349536960065703521809934371770882667720008765225856181444120876172276549239016579940534102888407756505786677628022603170808563424801175511174060966776900374499633822814655539612752508553851096776063849288811674898113264849049160106371169437623345725433767567874457035078858270429965247095354782727590464384263110948934396380201162542326203905388364863628826518757498377443214832464752207622739092433078931594916254713063471364705589266842979887443994219394103702475320994242800868913936873305869402800340947321092301051292490138302317270327940206535469428258080851757395469236341986459274370998548602204682469743477469074150700295883693432301661959988078665090084591349235553344796788353140945130132583830799859977595727552821773162197674978742314347849965432708231734784201415396695762292720335434889833383918926393498648614952544216637292957070659932094530967213583492535581738981416351127111243880799229218942328642201080232253498045423765822207507821125231855494367972753629101692793318278413290547378621793910202452485818662285981780503693448836448642455131660772684817320896817121313967176312703221565022013735833658969718361700674052654432628104950045042036804370421075238546830892215565877194254416608230149890534557819992754008996117772833667273566134604145165284906983938839080003218999042516878532017718708927323916214726543297727288279451288290334404575130799331770952601150743233450676821278847931654824658982810956026584385485781961934308074569968687215981131390972927043597278973053485256468697942685575690997183870259505577038745581798916247027715239563304318859587055323940159631573718156856365754074409140573932358723330837514540687878322193106216076055833882144533656027071402525279855512554986730968012709056566138652086208357652111401457487909837577643251819093173249199633711000978570162233260957905287722644264366574966696252461777391501228431293897999957274859647665861953280633119883726849907615617209008097349460847646135757767461866295625706572988174174590350487975525090314691576508445707442874933521583331266125470228417496538208858592201523661474470189695103250342899029401911664372743591250855193079559688196969728780116015882263176495332338260262278922365806383052806654785243574600669406016539051989729663192506681167988923762640058990676581549779357890834509130331665593218561629259508569803174998303527356799210431422790028307609958299344897553110917039402331278739180298778844391037555506364733396465790084361261373577290341128434080326377980662926671809973908499466199638926998654364697732278518387742086860930665582573648759059814955107071595105844486044712789111406984639124560029688468133309850699347033925840466648532404558157174864179613716707030915931031866638424083919392500133451834359378284926707355710712965108203583544550410876139210164731298916421403049881018779520453715302413282587211662241421053643388806570403332567455506773791113072380719507256442226648333856479382520615690911152370944242890625464815006746199723011874839857749311063725646777805697428768235028790927728752934625535891630139294189632885757398969015034711380351659732389993371485464524053161492650460300276503253105989506465811391107385601143889104883008854092139754942774718583963553611646406326465443765422524040660504693193773123111947310125145151744853344451614343613411772847226269608187339787336300392265178277334526875266843440636558961418704898144827880392637964371218791740627014469550887141599314250618413917215870336557689709374150037885558456954420707927177792403126775745164290558651359995143129072544823058100264391635281691543322250342236858011254365882357735887977203615498014591518030433531769908105249040725249793947896957280921097450464490812286569812458312724527747090769765122244925024310199060088057513742344001674403349983740233445079717362091739527528864799807764553430069547370111713200871601101264713962451326779566941226009194879612708906317672242879198232615664794011638663694746816396884056093003893460269215127205342524260760192100267996091325840946980276642069049079586554963762070704312384308318833716597676429929043126528398410217999900321225012063266875160693092311958547396640029791220547085933158291294406381242588392203101729559899124156461035428896298239508296415677529562385244631797684406145389854591069623813961494928626859944168241411621686473103821252084733402590393013191626518786052710478332776042584221124004099486270930808671697489845968525626942366139102082448911802782114075567356145781363095447829682849757346118852749370351349845205041783869968124241305653829877905867349886490048519793284588545092617838258637537221129636967045488518175883268830529440314531375923571855257008381635225102771172291766219594420596805700967972150568483655051834426052040409816907001044007012330826713594793785995772920023566089022069087195399731298580317348065333365654762163615841557243009942028191056328694092011752548186572865469856948206911301373218787026267403427235153545991821846014123869286821003508753451462629558252044399652668121090288261537237780780537810091161436200948851394354128934405587278168243335018412698003735957632564886448358794671405410813648848643166583713047922659062644772007050733100510916975371828674504141195061220683341445011117968340385664796123263798691550698035683594224450151439348351196302751690406947881399629695708080659343370463869349219568483118815092784777738057572088614207272393723696596653491230436888003141018683179865215890771698266014070990734559437806872417816062141604764778450662556061091274282076701690266203890940956849434305143549875838597441831604506596291110905640502712589314693018940740004856808501238324818925622391500010507049069475536567957543315081536356109585844149297074693999002794796520733660582148744398107418354297332965358863994831822146274410141984549436141685194087813138554873501279671894110087619826040201958560059128526044512341366168300230744437625545475180395279215292115781847227005902241883519100672207730780711941913101323089432879577772918812407298307971570095151061940531270976633706746113034264314588625113920913129812791105277217187592784433679362327829619689666050207146124732186325313960819166755191594855782058123931629214756823449303161886772350287134726796723708755313203346498787088204513121578143624917403624504576524868326941677441003831382141325399265811551079533573561807243812252614678788331174216295536150247258465936311187811823567558842051778750796057682599684224859517891627883899875111368246628000274528225837452613825036131801121557275724248466700841361078540827633986488685149058432958803815905972797647414600465887480945622073794567946558425273700304562547072300581941208861775419706788344883515464581658520303946494996391480455549050320761978312978216042741940114738716357735355295365725408916611787735153763727515025523313172529962747927228427990037961199145093048842240045719845476757796411595609759951929262024442700064447040553048474947758126359153430291820939367421729587157454065884119761473927251854960344813661598938787435212035289272476010396045931517302368852199813655695274438555046255818592822452775086024564149407852655048900353250675825524929886667145868964249452496481531521603519787201647940705860731325699062928647620637799619038555225193379411854999732382435303048999616363730400920402824921165260685991737933325399577166574592241140280461979417140427506488765101218563978780525491416834631852316350646323437938380164257903790416356013147706031916421405643174635583448238721398493162905059267122437769727243147218057324764642875359801994139259193914302177452797159180225415484693439787762890700438867455472688425899914071463542425949463987306285776160451256666597860131353169052739976682963391060036448821136311226690462027000115610599004099618834856295052259808323369700679781861832580163056683746143671140621308612579566785597462627153195433304442794499424348893789465665795844504353435490085303771790310443929964599710441711457497806842519538015876390498653705558532215707582281697885077857232393772055546235387667873857380697664318966697672571251673311043188857483363276136220875200641692332987161746382184525415494748282903670008928797156988100309063516102954599618193596560257256811722420050605147460347444972894493918709093644020503953907079599623982413970046142107621142383160208255753022129993450452471047712149967295248950399357292516563424808703734273739391916558859001544276195540291474489872063194531984553020230640186351719880157080528099136585439995976047093288034455788014914964267479761605841279558952943361735068051157410463185886242841506227581608605479971095048474945758666769245521822599644628579951411222775087399614142391548100170448820063611919029148036896175597145600422033965836345734352847988700749653837630106262203232376724970145714227000636918950184477843965982730072826870363800267044407805796284768360933976199417156298483114727477015036681569744639744992957648827599659550836831869684528750900559068273428871417754678344716897108804999453553108936635530728015445129788079094185910305144048814257208829159924855649947607184642707834656672218073174197018250078873779815127244005501266524136316148402796648162838352468840861107046980562272460882550122399583069943466822389058446633791651112573904662690464466742179025214406312716226728222358742643693634289062599127468675787519330166996204777424219606236968749701551260391048033575137519013030087286929655219856387259879301905587586278509137231485672101794268983022608730877801474930526253005516097754141267195670500485054431312876507946255039229974592369349248557899269461552737203232819335536345448998648021282704592461556868736091554704160753788853677095916319109311807797750525412946613323495824616909613035978199353818504567176508446764975313667456256291130242560809625811231913672843704747714037083195505725313212144263242178252029658376343285644144637763858413126547681816369818099895441224540116052691187135067289810522559005305250116710521196710817232869170628221551911349783822804218176024047980123683297509631889155896705416604944243227932628382204498037952535220000342164156583412857582838280910379998418629063210246923727222858579996717195710510596968516691850720420586045914032374586045292784234423115973618578927555633742823325561472996464033466721485026132465154784715536996728129494280267612292744820041981499666764706421900619178638281669930823419007155891249108682827965940573252919148223567641211774563589774046865925534916968224672985561718831110774220933000690463268653795806529597284788190560406243542996415501913109195366571689735253616918851490959514550087875195652576624829204482791616846532678980181870997194288750914398756659381762756492853649641257785616640868275828530952864841709621410857565669157084642917514566794444030366969134388490924147272349568149028219358186716581808507361304315130170098101127447393219550114519613599625119484784741236970219653317724986423112862865730440194147712314050541796602174215342408722230774156176105951214373374114168662019054103335511397536094849482694484360210822240610602330311109189832772508862988951388283425126282332276762367918583011134355244433612496070935279613097078726343364562262496485993801005966262661049216965323357127660682194403894745822947329797677929612507423081164584360007893481937635512899266014772088364392351634939626046716477525172300801747230434053111594957551274665753082490906390750250452483528720697428435587954982363491115094514479351615372104342333713023248984707700136764626344949128651595190518464839536826820228799620905744001278369455444835271387529177835835216361479832573144460837651734412959156052233798621783240755553723293216550270676233201350837864815893864298134249050425362140666080103284583353011168858408843453035452013243182363291656360637083848064391732742115621811119553349747675384381202987448462026905811906994541882876869663085945144124459403918482832196550862864307514800312492422539323090795601210053122984695488485796011500465335197139691586733470537321097197975317344170216406314341588226856152484149392043356784860483918108135527900411261888975768605748867383733794079225907946305753223045018029318863293491732730069808699938534545527765615174450496169184049868698439247952279730374084209562249686098927748358230142042875308697027334211190483349680032512036283014840779800261405981113018605315232849882335941425346924961739545679116688097134766453228337256232776757099547337056596685983203455146084014287925485707374259503055844989734790482132946377889621646974769695501797838265407629901469578866680902980421267342572628851194791597829650600175961273979092833502183026161373757946105116517796100737497214022174950205866289964115872315621224285161365544522756381385381894827343182187160740668556489656432055428999772908025856016738725047293745510564923328632099415655568692934008987321612775597149331600353321691989752457881191998222647427434009979977883297675278408136026447973801584876616819834810110093923313971614527452702945719812028556423811018499860208810020981705267064058804756340147060922889993593060034851396553769884384824831292249986872034475796117179886097279569759869186432369608852152021002245439132505491861029387960564615731728509660098015312672042767210486849514707031108742076262260695147422562066077233630670616517039282054532768373759343476062945533280019612422571715978957276761781132314703861571210863261116202408743613710463209890015528397264312590543708798767222669479231756260221635220999425935631416443393306035138200407578267730028253720865326295121273261609155741923382588053419530069316424441954293679845407748928421705299679546967796772369106009763943197834378310711708751919198565135184534772440012790115916230120051503253312913557176327978700362398643423679229754523422079267607157830685801580750554084718884134618694532226986499925744173923050960350844712174048311409414750725527764159101367872341399800202679756159724625075305795094733694635674595798578663764851004126890251919918921069014445670763890240670157504800929249636103817982781112754902672818553865874886826478979619989593052337554473817098585526088376592307984893557669262172167888200408144213165429894013828902383907553637965266305339723960861048476151826733640333436225398412518527245873425884467585187630146623002147012067600265500211965069580955623546688968331713394092527962761183020018653050309689031813289623820898709350448149348659005417835968972167161734061090761238913515716802513212431488374303505162639904964438525052731148838486665680404646917451565562992284801931947014028583601826740566781707913765358071041267847746738235900633472215965934838790584362547239840083064589799322250370725673971595058625966771565877262570170176833973353633374383430199173658547066524761914177114368058858333006616250826286709526092429953190879096029727647402864570319138675406202641605660176575424805814529259965542717652419357797423244007991550360299095886513137224126212922027409301145656642440719617094571200568752813890511016640397793831282729108405488410398255273240771994173263711527478470552783073367846036560787178234634622127319923660723723012477985901137464418008195883865855671596326061674769250667994209354623887456619771916089002716264294613093747409283994467156785726330310122343513223823263295725546723260996279032976523510841759382874730602219104453522745568491000735967612804903717419671482507514862982722748219551298160352491595917723056768335273528963777721485922301095522336036571594152093637050255908644705021048750144480004149074623790493035993204857123908768872890716544739210714598617277673091907160657298295989684286555176633437426033270192321274527233103417866972225708916931476524605610501766568418760519964799426511643429461130704452374294128188442051668513561500330737364149337640553972252306130858173806267689730639337724522130469554554766903940045249748697114526664811449963263287835229615679614763957820763444955576420392477452281211976745358022827891932843424729751730915927219788996469633070475306000428679507374707564924044186293951357480910977429225055008353397241840958302867958489610399220316690648357842735050004409084915454499252802226634768925368110474469376945659352413591092086659920138977609800891264934259700931010078714129107602989936423036833967069151317570229135218564198553431496095136492893175534242452925497317134037405483008032233762030829832105620406868187705658698995932874779916401645832707852061318032118048138735208946049788670270269714559798050441432720189176439912268894130216728459817333601042672241707870102559183021280591961863053815219217859085072821994958632644840453883610983834862466474606739797271648711551020719575287446054239866871499909215589656669479937582782614184471522763759974644743845489318199272592521443437980475686830899312725225671069687026548930380685849224073931754098638170942027695322364030010670013398771302459954538954052749992053167570790905466819333245579415253383203051850883194162890799077323478187182764947211631199817731721869119163291974573207121798446099651296249824014664140930383574051677750536302935613824113686847788582290506801254568590294441799023482489876641356162384546115511648717713016829596714953846332520828106062662859208102700092095466013487051807051154118591581962682638101903025134272811889724177103049266764512806114311278499325664532740431820165382516274937395935499006091259122977807255259334448506062409508706629893440698174354455313869942430935771203986107584400852666411970886197773877321417497623591440317256598514155271283047506093866665746395948477871982882791736228424907433989793221181957144703684959900339058953666363986290017971184315809932842273738278975429940624301042257227009642685749224370165957193808279649667954178699424685936016361196406363832702959699264207259395128387966178249980913022738710362259335583663446008954177937529187471230835802211685204010988246799718306735655718351758291486497697247864788887083481993837467430997074919065224033809621344061623111916219495150371877757772163487543921888330128936913338746317257635778897248981728364306576672748903792030036560564320619064499415341509981973956182640991642444072606021858469839826019578429057068746566071277899710148125783744563262716711904968225387091374928650885759565615028497356541397120903898976289830741629400375819244929343296980816654789965674391391762962090354007657109912893551260949907099538304654866602922996393597614320059816490281559915320076903642887765345202336711234549361359449321934062851700790635684069923838582839754577346829140128269076684758136842095979263902743266798330079724667366446188810012773527939511776622056576508257374162144672902175070804374115957329573463622365727770042621385032372057683358752045763123080561642556390505582006289428989345458969764766928984520732631379084307591202362590660099952036817595008780843629732334851336504822939628290508171333100969076052880519378432539375340473473511345329759291245035970248395395383487417492097088180565375854757198274571572283764716505818244440993970690025031089853615446500462861734316831156309908270397895158766225266663478945799681470472097555973084169808824136611534651014813874333347776763430806806798106953745856121417386264639527209021902591305853486075237569442810635997854367967839887731709251122136393046162793048367292722566289123635025987867669154823481763457449163753429459606052769115195175739919532128270799182770542036345790354636687787720171045929198570735137242468953530934273788623001523353953340000047528711523454229358429700922103907439641162017179826526073758866793239990989925657857322050564090816454207990039339645467605359558013770837412536722982010086597518435070211335282793001854595911108417741725208861222250493552215393185779671454730123764313633337464913224623118184776609449242016521243464237792851036827771160609707750255134268549413574308576027482942918431617022572857096659798468598009056594188812915759725917160242031474807987971534440711539864796615990680591062905170433723365734188754365304098773172172653379702904318552362966603461139656643194443425878719511280680611863486276077653559752227886131601182650749377826190361994185095127189963885603300224241153429189208854804543200715654197593662046980050962365467938253868795481283471757596121991032187725510491196727021871811455961504765520245985979075240963758135247430947243894921561818202480494061408501599595512451208901368525363811107195427506871350059282653316071553177841519310035927371789318727645590476061614826159146690364586130088480886930475388263578055123549221087402827456961461472196545917833758761011204663892659681078762804468453315975270983392451975530723685260513583671771890955236983831821366681812286674357870736293873936885936561099024231214269237565724331874504591076905555363499692200621835119355111562799618986580993868489745795582707492219344787778512586974454161260903410903600441818203097649905809486170557015135247280543638867679940274971194814815373603587572106660390338923342408062097035215707551804139652070484103319535434406280520525360272231343468150664567163854738487133124476717303004105274880367664636674067267873101606392459108368761718041555611279018255270439181170766669605811474681353074366930144998095388864926401919960240186765724440943073988989551320294541683983563211407575753334699928033065160920314307604383008372511621191990667382093228167776835074827438825512640376668615088574239697683833603031980840896371269290698212962376889139397263881706090121744531084643434086344792702200229624232202389267454113378380382576935709267891297758753387934449518585769472593412729300034296683295512267070345934710865226662202130870959461228562440519769940419759353473979801384244405340329179432213215470216707837970597268826274209913802935535216123086389533922032645198104772704598334976193394779422093025956731891097219833108835194766764695076527253839058604548076368822036132534787019000724362453736859908372885200052509135402327521988512949161492453472046874271434281025003178390805136194776405092285255415072947001025096166475355722268391074833858062994804500437250249579494162683085133749561943295972258035105390907335216240093976090213342173412974056200235616143908928587195627532780125092172720558608356083111880868291751900875139750239895251601026554314443261823007054904804735459399421439007576335148108184303091936779775673143923442480126599284237449131963898706968107637760008462014069479253492259046392561791973510359843242828149235082882631539740740296843906683100945590899545496328028397378906733268955510617343029552250801180188710401706408127123259052994765897954426506297964962168113744660432465112459356676115247497389303403462495173537821826271887549464908729834534071096791177887911071261040809142010486673794041303755342968022799552795534175400676524315415027224655781947373506083271484526071506008436850543449905952043311267884589975508016142247287730739942084060251242744690029736766290903121334004791918011439688359654844376518623110589793584669597592195997909605272224669403235738789804854210198695563374718094794178797189945259712891829243621469515518820954085512166820218175058120015048096229494119008054585635594560912408121696436793693176197226508375284446516643285061819901679920912480951465723178219643463188242798760551185154654063644322503074296181488465466137084147778164736369734228029712570144437286873478571565080360900478694072680676571892978871989681451217546638641488107779673995922192882907383066593069212375655379722894614664132923845506058897836771227500572562262245010800265935987391892069002913488505650722144358233758631507141265513201070353092565259907297759042417441593777986823251553787496131684081520009048573532782468155271654273084894314476761332789280932982173310081414175321985320601866676958560496623410184753207717164702880576086538359489679424416240651185289407267377330092088051602049568535242474222889426627180971162751316869677131183466962955248464811042789284644286767403594533275904877594091476505225938739974283475850026237637498182991186324439302740265611501104309850500997621963176235944250097669389387789118481298928216174189870501526942659274976219537032470197682760540643879744980604439435147173574555105494142434358221132796745594051005431632539323741803150528105246689737333455460004810923943112511820325512006733399704953189708549080202367507029842318264393841051043279854807494500956230585395901227389907515514315425766368423282466311791564749915852672877412623952193126141329609952900453856612209031365888870714427171368505518325300509981404053743623385839783689757139830466854355517542391422941378768363037527463033282101683150394434523734566914312670136123763545920939652958152619234529947745866743861292078215027254303445596529029031912715732843337252868845130229129404410797371419631204808121188576743553711903099959354472177005858242425484599268603879310038238981508142850182679484183113322978632573369886623801011612621668688712083097140707975620125236984667798348018962418303714268772989331901011343022996853222178685398814241597069232662580376505298492143168763348369866174959579330207062326954866706254464820933081447544480196781543354266735038891443669596982165574944177236191188623884240076112111547376889126726442683584752906202306669971694483844943082425117506662126617752628494066543066581506043658176011426319355896666025836527901397331610156427424290884809676797046417329870657798481621946647427126337023617539392176343780352732803497948637150424946537615033030268647082994276939847711115737440889075675571952311816054530449704554150113853102348568971858653169411834548960450722124615700979971419671712555968465842763000896839620091423463646600011812012211695235630793774718208043587741503659345989862383424248791190185892559914398269840452939684327098176038540205847311360169197078659600101667636435810836375608005107808220480127565453747812451496828230819866157972918994058474853640987578064568283997276084038952525532493056624138943805081862254270283362337982041243916385868195131248481613461766756221183834020063293902126002138215214967477515921061606897410208079467953404304991717699001097774577593660224466802173459605190338417880919922687336307656882515328593027757088477283680194579607029315868368704132110200488096855779466841550645853103562818896558692594711956604912746668943088725557101793066060122223040908388249267264937219507457674684520496159287938708196129720981336019706745653628557945481374330007151839763698911634861328639696607928358584492921446925875494562368090538079034881339348989958681490098852453126961081687748480112244587664214689768577685003024229066303965157532979910072751888734884938681746104991308430098120911636865802213568318519930083404830642889980805086634568157319572972311731712588980067510653830603211148189807642406553986731998916028540667866470981999092630295499796109734298059346647519557123034568901488322905655915259065016469824301019630053063470134743447398876705281031192568170629933795725182283067032079267202896186525272995355987574590405603175004458564173497157627052465246801612144141108513924102351738453418687363238702208398700396585982755894223083965732659259974436921978722905173347239558795814955505111935601377226554321257826334587204812891772830520105380605887780071878062959990863517829248529418594367110764662857745188915754773036474274320246700164815060116221788453571634839833296939698599566521537192667179483636081503703915403129606029634999692114565492134573120259971076986608465780010805844074499891372660769723927068045578024691206738543847923014622160661668765211365370539185167381840283345267352250977709148594587200728900128202878321671271638411487125319769445119315708819283635967077277795902652074346578526593511800573850429153001697909288563332945380090204894900947967238810892360903730215274233781867257695395506564895691475867431768139640114106943067552118727588077270788591175881038093520227411287415598868080845873371860134509520603667138326425331814443604553968192700159221807841250903878123009888691172117463391154342180678977487694677545122094978143849654124469481526282083203876768935212014451287007320390334739175211247973654243647727913253126314672513603538379333879838558702358916051477309691144588227426859661287765779078592476238892326566602835042379027080279915000651861462399815517635494508186645991591802050463363614132785858177993998511650026377655300881503383513090592335579392660446124544911055401283250198012544350819045248912656481950478470825828377710689365337271531272613663885281624871459248523102507177573168490610329642619518536837599934327236876265891490219699761155697087417933896020670578528511752453186441271693309659962848217634100089901634692471535142630532165593594978354620430900761023471228601491964900632028792138967267923883822365966313355346086377879448894899860703114378046715424894481827446662465101566961412485583207024707816579091922938637996015565119055390956773158045318032130560114498823287177091383607674747666729229612451267445946391869231246354244702890189078032889124120592413040671485299252897726469717077613586861274233542120957617944229035448095866545876471448748558319998280396208562330481635258320603831074478461014661694149591670418855748883520220371571982984900907128621908815843008893471306488707971342626712130287038276190855906123689862246488314271579341512688220460784665896185583683880028750570780648219806236125663716314803097734480733498935911728534248769650071803764218708535425665978906681110731205411429447351459926527230356177217894697753985608167964880240027860724516003571551530481651954321507191919554419354591505744486879075265061900596095120754298645622142512146258322404245441463274082024487235868706267220026373964047903886235882709592631157456725086609101139106245673611022074628273388639033173852054571537072245641250163810601516175432963866494092959617206434990157690460501507678248604759988774703676383197719629477747467917995135020168787882552145249712038950846002969980279721889992350944226390802364592298876553447434898858511521348718606734131328599678008656982945735704572644558908736167982859660748676429614545996995205962585328520478339649059171819412476161737542998483025827864582449721184724598915856796226662797241667089399553688540596332106708774787449351283594056154058139421518960664223098220082244907842204180792275102943929795202335186828933581500641131258213069717006077180337811356489886746587702956820453147785073291430060291154032692301504762455401441386294664935385001769557100684276164377443448394062220994851219935024485453799217593786276952575966845001132422444758211832106288505799552192657773115599226492675496613086607306931386140556723133857154848175936929062105746476447275413437101963846332665273992031144735108009226569533778159417149605292888496141252401550723501052853437596941120191496215449487970002306103276563018092765924297451855399713829128209893371802420699528828785833618832115856171010734298958127990914214431342811913230138503826776950050739004715653062068493340780040916226290824371908329611476366591842199650094180805224501403188541442727972851371027379864635891236033825790094134408341655042767831980733297268809863276970036418933049323240081345990179781792190870909531315578837585391126148420323747028997416563021771901496935338473360708036155488565227089145687334711676721222692910343397276414428854484952944186609103888105158378720525405192512505477016693124631047223181438160402878066571696932570283056593245116040172632019948858959209396689771379572908812771908643274359670156337021089247081385271009624943236493748322213099405066115858266754630975289518199333195909198883344862850631002348873535466385841756225377339676951925378656372455089426176348994578120876282641889167317623279466685423573226717195140631178905559471222947795821423702657073753296800134404068902106354942895613688336805468205586048445982911340699950269688211296551903442773473010135825695581266041732628826439731989205096155664232089022064756615775565184883191255297391037771489076618438519826941875229904401996606114815856232424853145610277893352233113062184216953860394307472005420514846850778388524486085088978220405846685072399506970771049064551973252114206298776529516399224747435052568700247491193773050704084330773791841002811905572129161661219111459576286925424299827517611724167418594104069340363201237898283587411689744321496659628079663343005130254973183897393517952720158043964636747245966173000934649342196094840085792189358395008542148032718070511914225329228413109905447965824018199393103697347811290834500921971223335656934538034979918095383631285901701286955555662191789102695809352011588748614994715775643946958629768736741852084417367399444613014412569803767326165687640019945556659853276679660793431335007544918377785433076043460289613887924210721859028152564173262720219203130796460566206085641959255599438037344154185164387569317292691040871837048637046215782709495508317401444735512091301118783489956839329612739715181832066704156083609956442797722326156573863925040675033117498171597798395052569733890741763536560880044292413983139389319141009114315761885010528255403740987748477212405470110090616398406362584087160221143710676364307296321866251053003372374013330760967648982005121746097810207177938679703027065488813224752632510979233542132108428537247215358761049666246529621776084398855134490158146902350633671645693393482968073921790488959178985940109018452799808409983775063931899481791577370660678410665554504927163403681743867500496574193912440870427964576936600576716642769990812535356209247932513144694842171136585237332521113993854097887550662241866500943214568974034947388492132870037147282698671065823121797525099507618845773097579699531324398970254520659767313842603503855725220198340466414647315430443176591591678505089631189240878678656852144083447741059667079573597163574842675002062863228262625191232270575758242896040339425077200097616408235570398834274551831335881594858647474463361272148892372012813037952626000935242515084372444869679885767501614353779586449760744761904625159427652751509972379333698104421477607539090099999531773802924309678890696754084154725765490709744088446377843592450657750993502771387355067241314363140326076052198756791488868706469688142419832694324568460189658163224082981917282004421246674759636377307268117369186110930105414208662047949460587343767591116380939534673313442667369258085072203054386357204870842993640908874430345332955067848824956471725260839178432433823087647408215448294681801882053898096957988768769044482321803233205292626680576842698531575233356858862174933904824618660976329790952994543482249248929060491374913032067633432824678193674350368636265671155645860568775531503759586810817752060919807465755383820116703110737321682133835340813758224469895830843806725613644164824620186556148631265427126716471277348353520823129533467553255132180877530094343539347301264886188739634702151782554691300021960427125376053530257818709014865365795876928609214688078275959650178114956889899171687077621279111541302551961087346768108893425060609819841741262418026644268689125313865127015851156102220744597775984248351848877246036397543500593558278678346010330518896790914150543805266332968486230458334991252130701494621468430515811461167934713198535841810799334730268992330947018428980420151489366329243334911195168425629996027329313676025886604654626076836168127392258767712764242330926579802326783351945028020036031628829534867587453136868056793840656899359291579255195920058872154138232803742927001336794708426198649944246147526817160844971695144973240135541388931316915368363578393161527173321081343959277529360035622614932039806108330601088848274294927327118297439522122352453893177251229996772013613687254129601361235012257685547273976105362701689341994702549735069743762121732770672578735946080041506002381592075925910618576351945932556151753089180963139156355275556357237352789472606567744466053527365147051900084715962771407050972401627069801020051295277928604722907089478499895768377694758923355894318208802993413008491454892709112441385540081405053860040022509664112001855750809829221693343553425365052924141114531948061739898860811109647959600958359672630921750887423277376697007469927847759100936282959180814978874192432551316766537222021224039520602899829232276008816820843707893339306732518715506784204584008718815049977909562446496348324688627283447807953875910850664863885122884077907913262737575736923841511565258544295992562000385233301221349820049549963922767863010949296575539504384510041195894224998667626957249784731542467010805471745832812476358454310923361205139809996032713123873535984955993116053465233857717103588278463675870041216868394792773428009421324457279400005712816479526596928821767125276740351731209184997003980312937154238434886967009986623583047572744758947149642558179362139161637833069097997538301918762494019379979259994897180929328414097630629815026612833662920969333081492375235029146448206553464871926070269358704668485613421208214895678204130367946400352021928376617271191963784840552855701891478930480035474199508489686469700639029471785272401731791225102830948361118811364422941978528892400601828482276526353570387574740294271467386815206814148976119607213676245528254676155011489383854648633894229056163706295228882623921439583816627192238781995885097980661835704814748270276504921566505431704573478771679413371422529329363439626930141881223118331486971956557814582085563159863077382149632713471888583996301722399422393711097753423652591284387705461165234182283929712425084172837259845915188394968275986244876238864311091098787607639649726243667849135398459531848951237433038330602198814373607334180062096288800249146539762904685717583924600377514416852244370858758506559602527985457542008376028015732980162244697303940842294941377994593535395027954859806681588829931183538542823920814116584567139047360769937630872617675106604241638210382368195492154930843120194930170973711128104743521599529873489884811415376386440435679093043103899529524143785234173027328591102904354147917035002949812728553600470462429301919027075423063898368709834882560666199002005257856798214712103914340343514153950848115592540895830999724444190795855929488311672539702353997956630020913197465383433263871286038655384429847584274049379029857597623838308897683887679553314176549583022717358128305915746829114688099904273347876688378844729348510188293132481366225957187962567687581881140266207024479225358251639892949878514622540762859678537254941402935071225225062446301326724061597441637184655142861918303005231321863144566829939820884682515464678225263819131429176718530372285150088649958445982048864831568937818735219500833205689341689809902139388474022579062030910227903978822769084754316611709919295086042379743509592719581927544520122427118837741548845875074918552097044466891679724902455805870604995272717849851520624407895110932951772708920493646811471732326247429256011967350059816471495991634760475931453972410712035504104389420189323470677705410088730397090770273844461199839813870898141294138734188040051678902610133766503064302824633176751640887048246751774994909832526739371393146390463340885038599093582318595547234939834728471098136755665355205749287556073982536343547704128105246030247054589902072611289508220378104726772745006720236990532270538847874749487698049222771272583707199840058189663844811223944205861910353053481412852127010500921814691904252364329063040275507914891310798428177914368895670381917754910059094454853390260883257825170457253630853994021843559042828869497776707268408087429855624126427305987746511552287952574492492413350543677598642086613586258183177093620479852402621599020652515493794638398928651415198537430253812896059860853572312223276921585591245594017740825633939311999875685741506702746821090431345224502886669259662849633950358136401809494036965151321368246161662982144777838293871374743584023377749500063125622839441078607125559195968543929540752173702306831210125386557102245045818359146338180772364334318254075041334263651037211694211141866272575489000228551625461237250482156491825815058188944222969775302404276788496413653395837667475570614525758792311395663769733033669420605214635827015948685761166831135321232822295612715696689877393880758573521649167122754192354120648850813578128692792849813325882682402245193807856962585509718658532302221675385215349191904501958248334430963308073779049638229990123512122431952089935765900447508136355979420854504808952337040621239233837047332245210564801670694524478201767400592785397531922321007181702087865369975106026124877986016329246475845835423718899573841523075508823497409711811497424351469616273610330728638220404105121852640107368319757210407268106917307475151128895951637081665454897574315851286298684055490783088777363773279809718205719190000670609326191378075313511546651208739451483883697014155410069176240833874749777768301705921648790936360746884870844389670363669681238501464918933922895753816693254538803368924138255631777172776049191170573426599818572767446195662346190529717631245756014214028297147019517572425211754194815175998972961130505047291431435155374869412731963118182088286618655254307677732698679728983835198886823194244316489749447095069724411842624628001621802726263026291862155446549589578576284034719270250413236815576669548087548007941016043753004812382498605953573112169324862147048851752214956479784952177453552113520032382100526604643980412241868742757066890067237975159150310185973678316117013314069022885948282369945403697727745251667686801687523481121316379375128463720212568560128634655684376945258540442573955940113258026821885383309211613399446653497986790234695767657441490044676879011417860216423960126688783437046865952384789155252306582959192798823824046226034332782594670531500651050859206113457208066172531147711414664151239645209242564334517953291210660444552766394286943793544572239755386230202710066777330447351620934241053445125450662600971153671505402441152376944173977827002736066829908927319221578054946162940322160781830915007974235898577183532802062466038392130724133943004831548343847022302282033144578123281446232706197332510175313053193982477238432768677527839322067597685384437695026640429256712695952638122011774505738634121220371256096882618360149539604301332563426500507403340806936004599184806854589274581715720786990143290671029708908860694523074028660321481828975522004236877670130816746823628507609391730816044799039825553349110019992244633799411788685828952224903402771644477184387000426950242333645176967415691251670212043147727471416804085612665785349144298390516422210119682569049662201675266905680170851636883550594739901689563710653586755996471741154046009874221920742131453882062856972879086293416891996540564481211983948780318486029026523192851435658561332727220592436977619502547745101580973943187906138516081388146204858348855057218127079351927317953406437454484331875535207298179570697541931248841647740895236761118435625402743231823659269162751878171094664205652037698125373370011068916143290279888093458451341251578371892557051117308214538203998527843652202715564052253056582693358785731325494224515545909938212704212191529594072038728745455313096623252217902085050707242923835117370616379778456729287663452270659795130255541633203729067321549299044610457877441480152856466795168193146257577277307730682152492050976758494704568852793496735122372231094551684355502036921460376680769641979567556846939616503387370595947294775073743921186401514838125058599060865609365453384650030317219661616197850369239120295372983749353441975216030946718643463862962571174760349495433061110064617228488077621498304808238751234396149298608113085853273468648474705572699933478498505301732337641944363019449916655380958062567114372398397459732254551011698649345839990796330761839686745628977442457401533205713270028424155351824621251592118799189625755081243766926350422948272383763175954387645648834873680677652610203718317744352798704224827459242982283862739072425162747655281913060821722242096641459612897234913743444049268642136728802720704547314015839430562083627712846840143789616091662130338854072726832332663808561243989782807287129387415806825285329249417479007458784669255846191668207434061557474056360707160422917096066184840940076625066002626153852507825721598564366675856329658292973048859277310112327388124507763426440928249874995893543863579116134358061715459503085190708726851112430840119806924684032018305845528787636392974377435078875127009458868695276520659563925863636234902377449223324343061041390342700555087749026914876714226947990398340640013008901296259757517446750001791249849225151118963348131751614985851243372524189948077726774750408962295124973182248371469161077832355559044515170824161034307220418995447573022927365704683117566221413013823622650745158939569988298442324550160653738005470158950992567764701717156447275817213833323614061203114279353892406640045269816938612270710241296770595764804779819846007597727572824353469305685550016542853650793170924875024794225347003073318184908023284107632447237714332084131991440248746430457389052488080244576305623780750713638866675678958957523255017399110774592242679667005562008434523237768762239431503787203923886986325372110579950051166696897371136016304492125545780752879118759920370766228959565536784884219791297639414218199072596302360241813221173052154766833086447818701108335278756880486535337080007593669188079972364195720463540237948534808088200321253996844626071765582639039404408590653497729237479979395401532305557892470282371186153257594772814027454897937681471796194091000652411324135852865528685534861096926908286121074688153005064677585827323949103521024122774983148461432420878935422862054023294804250406372357285275444257138646516932986762429686976557750716721430382276114389435644731182594862198826037987623982369886051414601631794857746673474173656951490573019319156622567572681640928751127794373758517821051218529526015283348334012310592296282110377915633815688505850772885917376391081000231986036959459238050839922940401095651906841092010372657720624643393417046613154185825962389784324728300440600145836501954479289404287925173299663092971955113162102901018696688579807681178273564727880192714046076202384651628454004158646698475390004711061290353829707383321233369749393092443685312606789175164616977803072404157486287681476957320207436055347549449151777954941915378989085253939356729597686597147427581723529499079085731774353041794263703716826050124957853722282154043396370939762484470419871798480942868545771009288251917308722840986027833328943623902490013196089770661882710636005303642445330430054359857381802383288767540536399541005570716774904960129772173830724029361908889635211179599754987082713800127608247922917059702769457868650556023716022000618343093894345989919232980711623246348462346076267191300658465542601193865222136122574860923456947510098185718274967448736395844058933989137537536252037887287361949924046167271143796807906763939309190177187229224538158119321627844603004026911637861234902924959338160225167812717888567004460110609437728138580830243895224956726652921753091397082862096029040807955129873190871234587742437829605705867508983029514004707912236429167141647777554741811166286693953329589294864929428489506058168339205809345675558609167657848113756553815414564381863843967973511542519833122094227707311244681541861860885315485429236399256256648470119356961753097492133201105654995616430860807123954405758719320176155218168188135500269784088448073065431705230673517148390311083455166471546437090649522584761641657448202695330805938920758362566839773159522052374059696464806763480023878349811454646597946750484605888777509293754723495791507715919498710478130775282317150424758195765858524149071451466566309540407900846456453446138136515679612506362918543778241474896245002154805187236339754659448348294401458572609519171387432377910621883535944447521312916487388136842861666405121649851716459882902250013944889609210080126051414356363204237751135679119124889608921948826259394251008894906435557367838164170020015295279872035354031927729219162821277798003399246335742105074630173890107135164932203354802632656349926585932977237305091299757859201073758865036310247586999791152593482884025496403564310744731274976753388375978680301630516771396789223957742323664939227331848884925548401944951345662345055868153804790287976679240192038852846787635329144631565015175146701087395703171334414921449699115807385845557601615771148642940684199351347568587968984529767473284453548771899905398155792486330944712324452739118944900475792644772657072199586503745473804011288421358492485051901662931434232127429279365826275513183826785700262716719406871881120624817728560360256111510996787492669330675271955877925181687290776716284933772578165387569996035642506818466737520703697098725186128716925788345733820294209676690208513407352249619143416337567184179807423596637480131790538706654310883397157099750743631626177356700843277706503032948202776815412147479388206264246621209391501246380404877176281727165457545916109107290644228767752410723425916571176351813680364793981783095384815433639205796121864178110068546380765273894640209715197169143788710376891366208297081919601640136160872209144808310955824999683866434677132463283464924640866099547306863735705240500647639454927326633832631777222934819287877237318318686070540785351645702973900291442327432100724185649666808384047353669366195321910604543544867924285404105501073348684219067601679702975323584387765450816927467789396382642569049487990888336363798562628116967689635599046859561477379808790050250005023202608047049516220179069825046019971032998950849559944696635387267332998433121131302389303201608797158836311783262626344381696715286120800368025341385923687515047663192234207623597832277639837895143853505688626660940104044317001972159993740473887812316379168529307565827663086995583218055441117375679630090568985336759362394002923705608521865998673985023180661956850945427862197998621830476372378978886463901146211685600200388979420629941590050504353016097488462045107227137178232584011833881003345891554237817833494029866416543081143003213870544328740016277622398437955954910941813169259196845310283419473729365113009048007841402435248231861143947075989024411325210394640751399563659898166357602915913822152040289279872711569832776397946862385289379162124653408426966978839268238747956356502703986401146946415567189403933797758678782543551010951374473556618080376309166804933138846749677715536110733998595850612718004027050586324090162845435427440412827501159143413647241802455590883439260611906084077074821978905049111076348140159945390826995267873231064576794318103657909367518085335888101688625979625474855351306763572212457237025043417733023974288350065909800361791988159976143040439352003625924492468236669016467720610853530951124383945510710974617891322571192153673136707271778133841392782188222177766840442396784194213125790182650397293897639187205753737122720163148310315958953951158794107106117023292024412033443413224040916701906700740983165385851972136148985222590957349027377101868033962133207323347264828880193107212086510764463727178218653151537667322230992927677328738812852273068830462238799336234063413191172396652545576171148680630704592664632000521288798111548154201793713558295256105973987304005283687284973764888261660579958606417552298244173569011709617036957330056146873046238986800921444324125808237848358798955958827656185263765836382818930181502748603976028092311206175485482355310664174473661966564578686483792391479168424445977456088879178144252020028492065633364156380003854533915355786121577508114200258137696225357585103402504723497508639337721016221996699479507966445712630129228672924214391507204582087870674003247184163360902589111075586368140333426646580705973778135505784471798301186235660764377344549963129733983023171618756263790235626422420267549619367218644526073229562428899053957689902503217668166004822031332675927678341238964416679581823732045293256897977142937463512842031009546415537788277963746971338515305899540212509397335602490968014313276545221811686747232524223493562347824246277746653521206179658019741766881567030303358851318359761832238005285156246854411089587228170151605735299477645695790879421200116928934343129116778074944402614459059765321228478654843188674337673605004783202352054999816680635512084621695620873576725422265324888703942031925204568599998353464054750007950759545093687162159768257039495648040221273014240522089338999911428842219353116460325393395987937981844270869180294911078345933557041669154707456079620027757389668880662300964519101105311300321127653611625242176256378776200433625178334301002409432950731623430202101660979208435796634726207959883147453581816190858968606401438576996635995067767738116012947739950558432157363857344563255274200049310316603273809167391716784612989935054199458644413906482989246115690694682398675036307351709776421714745605328905826663204514793864040478870097301922481532188496681293311937459248220447981218824067738911433577548934511686807138494713606801449053910980775651310729179704231747172906434446776413359945068541371223860414590247350339689948860493696582272677547417476771510675245248795095607014153080892312532389996923922883503236836414384761127582234897507134985997350019825331629176897896613744224851315897064111685520372922945126027067305435690240523574063477479122891236616050586982183008806942437010276309001484086328340809005355880790741229078705275097010848873908464580477455702787226989452390455897567330274363994247522851308649666096791828171229201053302836627353323275110870924924717704290907736815397269640712487903961941793851683282227147674805866512742302600181661107225816855934082474931337278095232279692315925610897531155385213825877555273236538558045239634840828029443708701095187472938472711270637319311239555675451099225960161188357593636107068585874270254714828948924272120570731526364032014892465301834918241546719872518588423586911692990889438814547559886953596089906376419633269984427281281568287889680663233934051130972269391326231577516117323534315141081090784653951837658097757709701765577770006825136156058977491475752581567779207423680936819724107086724138071679985734823011806532210109482542062677323635018539300448044198101644110343918877578586015852750495433231634885913420470038158629916094935050535854091536334113896909066282920072263556875836292995974308634630748595064096604356591418986264260785510933503864667006889079178523978442208508418921485406809946401627859509969592648611118686266565215974048843446780789329082247774327737341163146837183032105740713278474124489612326026419220718559134676801144517351995203690445714243291299182124530210741113441086046302301365151802349646698583638010404661461148596801041984496193842147438715546631368134939886641936188078194738744495632080556698707823957336196341109713557909898749738966221747773056998729706102361224825491754378151683798273355925034189135119075538788103512186704077379177635547932245705588264053315431878918951825076467914814434073094184506259940950097318126497954759968245014831431006268055835713427542773656413769151272466010271364405392940938649167596650168983442798391985519410935485607115519939144016060669555869648143873196615523576824999832825980633285374633854748613352727679303526438099818920778031024082246499291240332576783140661573452657559840141011931680869980851820283193824981435270855759440741350621776631752798661239634101237158486056436757972907606568560246268311994438024199175130812133227241753720151401202740608002373684433695365358656730718205709194406027093445442761342769672271676676897322505014233895354355532038664497375873733750187460822301472719551654008618237781045102920974120887376722023044542797541522721656491576082578117797067982704175723264705617611775563908733671440070701712436957777665682334350304900740355787663849228174331750575147304852408143183581629388756150989372007670876699153321674512951483008130780127817583160073775320483362849430657702964649057747505091070512952778598765706611897584950387122030395640087814218428321208082954315448689793639356587947111061315705711477276235103206525287076946703495281310659625834791799362229582164087612695090998989410171900730029761170370429327789248012835889675392307223110861955140814911298323030346009658209934944747864640876606924487848182282497392840908738078891634769215632762150013716696075893615859463486458239286012988428988856586852711905873008152100534150937214151230987132746332269564585573033804063551845370470490246589901285717583296914331048311005098814650714514699335280488294591276718513029823281018474068483717848380132139483108604475356630729145574999551893208568508441295436017069140233524103262634996293714295745640253183093896192596304993188533194410537167626085785359771903035678641487100652035540848015804327397154979320510282838041274640245469703061568368074368579164545878577157316174565369304801295450329244659454582364829504932900116491822151671867377042304010442728261069959992998474635791848908048921392409116530727983890426713961087840159425486730916745436586473014161564438398472921766772962821358121963486478849017025932130161866105976306199942439684828617227090860378467582661796859205953805352210389639032478818520704185879931751073592626251827823517306683236804929954977607429325222507285523041050088930155878404335795441576877924646941660255598787791492875494512509177222835130472523537308474740122860085753681318975538099818106987034332867968934993920497479815679157189718926411913566954773379525992935306288924060543442572231873817568353019014168040390805556634690704463285895505437793545366040293037867827923767162684786418827474609511358034187243486196985074944791832592023594100671825807331697059548184645501885532002507007487893311123980611461927002667123307819685003877378577977816199038321192606916051041506571207506608281832401048712468671201346929798039980245819073340652921348185858722863348734002086835180826684777747879343407206721283143268270867969226751657842404560857134539214843733919319062978760644551115456255161859901755052546750965988154290061688433893680270071190603401965797218254627815035440078273516580276686861539551739910551476962687493012057717997468039195332170084146326016520273961167058980930711079844597581963705814986839534235840459177109369604541047168336255876453638291504404026992465934042869941941024219586496205923195542163851826640987901202994829299320260400616908261862414699842278666795070584182434135427001771452471727711439016421767993668415918879416221236985468338413021174357251692223078990819449524589659218471117973568141191453950045515937650891269471699158118170266518852945473823648901471823659664732651285418084539142378769933829388955708179163458274160169762420056107942774226960046974921300542306852821734800293781919492314593355904154780660632794961847027111016454550666727997032087701632737218710708274657234350214690487691217278882660952453150811048679440596222759328484095852437917173462546660898105386485073913314024963775994694329816702781420102512892267760882027116037978755306777626265329319383249035595838351615306925820194880160837285039897014961726778873726158223817996571188834402504734336851599161619088297630597820372910752344664917809772581499751244620851646645015870537681725083244355546802550290365675480356179794883486986001763680852843816801557468235321764321295268228157821900485020322803031637881141655781279887872942880897477698356867515722002636886857634633820084927899177027731941802855954236599684729526673904145682970076460846243924311484125049157501457861802254455056316323162183511316082771827514253894698844593158644770100611696248034706573604775904048117576264838413680848332455283692192119572537778539268045585535710823421814907576699971819145482353869274008186136594595276530403378171356447008050466546092497314033870918480431093400694016765836552489108968417801227598362772723852327871139558958250687729910003049000576586410787115355157662045095389260436746448980009672650706298625156507042433235938203503350237218318432688512399263823124419250074317613679327533883025096202849318736975452212933348838360542844335101790377600559258703903454939825976328854527482410504232933163757358177671579806150823644029802528090248646595274536977552974263301835716543643028284749497417285146313173716036839202694218766158491877264251399302179915632598646990530913527827350914041106706330729336076200132661909930479059939489232805430906035479351146479311736786812241988284523066107680797967505667949652476290270463071352667498541945188091020984716982812509064472890651539377115807443497189413292738664321202064260057773768382929151036652621886231856021062505430768734077102698564332499460885736523176056291990512939304314423706903027848390257032976040752457822988984205091022143312689206661771242001817289522359736023573387244258718644588942630450090670730225489206576034600188780205632583152313882345389404687194670340385276278224781268829978129696016831134814393970088140281546076587588355252134606934148530250011087683371648868269342943193787047307189954689972614904435105800189896145886472173417144906723155604826878585507723705318314519496985748834506364915274395569161124653831255404000448038536708640239741487045072691286705354414660805092250017732331166058643993365817982539293601981179528215114283369933414860601105965591698356144362069509125197670579981875496115461044011825542261558826896388038550551976748935296091616016873706543361467829975253624917955551992808920691123194913714127879230081924424000720129349677220946615956492268058531037492375042795536115187348415216755578904123019131507377772161455143605892985055479153044905110267417441187364841378028188679116519676044833902786005967323852738334809637477293843372046840795737842213568741236687868045965189294602731641341088295371671469887370919901428539862419462388686361029347386927162734784467173654087468997281398995490817606465345736232123475257038786563051037292241669175649089945236699261865514702916858171530540715922429515439950667922547833476472225393257808725822228273544927845478692314638555350675106713374943329480965597646117352759520339529063994412751930285568407702549635517598262910353004111073313964170743096681182184743991895511435236521885174411999461739576848548263269737992535098894199300247768926374933999033038405936005154742542679997733040360724230441862507455619943273671480048528178088098464628400667674771498786712641954664714521577676730040369475285210416071426214317889770809927376914443015833272357011568556144852049834514976047910144830977537003516366811179551502898743420034373652640291092691700083148030555825056702448291941047519780239225608103758728163247706876651003709077458996240411075969547751958667286020970769540204105748263362430448045560571892157155188454905194639482614690102504746316523897894538603962770901340793016726023287219978080860491912338775168345819658564330976684734657567732395742984987498417758392954864974061770332008217075369499857331541913905899399198270553824435526633254495124869826069927836852630793237791521770314159633386644166631605126320795358250974393275659539372140956525668862075857145951124741911427639271456773411951818188421551750440196107147661970223698730542170233518325650733216159130246614306442421286175278281424730983052297449508923827627525663987280925915165347276399726064617541268892639983367680754236419179792412375460856756578395844181661833950412084050932514154006558094528173389121413112550347178586623536823742525683014397439338124370924038744439566569764439030714417700414360211288060703498132523682709465596191831301056915827390118033356174419237339483739764603870082254784226030564030544294426732217670500460556186385671194532475692271728925858430797751837840381594320022066641230838082940630844435656976461115776429067571500927623055506398859049729038727979195536436866245169657609303685382756497999663811041492213409625853658961397971516122037024893217554401965902105779684214609708966832819766308664801289986031304436307351625108407545956089541172346819423173012967383344153714266204307228366179450639941814569114131544105113784929016826042706570665516732630190503586854794519716814499140318658516930565382032225024936730098400451079499180232686898017861314509708326985001279746757565300054859128789538843625086985519726177542709472279613909104919876039092109177927923465289580305983951824038734266221666827967257486656128795500580508146520225536380995082802950618805063430302115305196654024809006636429239822350387169819864444309799809272365585797551934692112390125983168108704822809545655675423269298205888237836580538699943536511127249765375219108612840786275419938897402101269314873378207459787153392054063221187122980582067721981088642766187310809856267442346657471679092612768128714690094034350715670733658145654372449083532152531849426779326840105524440057396229997065998483760646152219053793243832490171469790745953752946882822942860924851541143559610615422883613137291847905875156024827371067014683821598860985728971294321971092487948369944625273529213488413440828783691096756452434461621567665683599073095992054975738595639299465019444682989251445403592919660840861936099046795993664208849775513280071335606793791839788396684089618254944998965704202707699761783386135557734522664520368407635007779604955091510662144248803148647656415813284724497977558905764657241977792800671525246841186486144798584609737381519030820756074765100245618196582594382694979065494206081002094742196869967504709882987502006263745498411846726704471549772804548266540685713854406916345226347346267680713212216867986133952661145656787858273720529083017736188839093412284581641243915930647595012380158681988355510865899543774869989502862295141781021406528322963145439398167510728824715865007438312209043601444756320028921384403824560797256270964432502256520540675593722484877558911285250924828066858184486116053280578354270388219438939127543926671895875691173928487649225942538942173157567495003269498690908425476752562862403642353685531835473666783225165855973392370505502922492760000212029746250040691033548762032313423702294237341793818953880353038888362777513306308287548442318104457229528525300302399907724253258888698517242221560002019157943515721755493065642982710508878533443599953063112620175733421440217604834007682894788214142631915218166068286976251794477879232342424969002847528477914142522045139956862918396054737947862130924957779252258291983900874130793939225790299939062226589355965935022176432219228324415394525367785995747803109575405129486576388622980818609758461102332924131283127734300118836497432773839261416188392786352393184853900744110385403837231068936498892173004766364003706922638650798707847021026275838337968131750588654361249938766269680364701795691009493865506273635809063935888924398823814836869154324066615042073929592181618563010300414799706016579914899714827698621802624185069004558433631479916925131353528827280417613549267145191285363810537654535215383038664110457147173840692650929670666826439565475912051258496796917354922310696546532034157002142247809873528259324302481565157853777221193782942236499587943311787951388462634447268152913890942572856671714432565481737515346009870864842611866349702857564467557777034217446636424299693035779552395434862515438512715478382724001108891513997855511748744711913453635680381270575149598392178889473376944188146977935109931105578724036639606152998183038716698465838282051442618485059576920082315273402092556155361217285031332259531033245440956879703735097127073376395351819058518461910629891339871289320382375245757753707409739791045247839167456388045622426888185505511260157437992147701145904395230796929779668294506604892195722989894159883097068227569187046063238049708668426003616593205932641809540519147152898131510801298796578655979303653671199427877633615772756103218746360158999779353033304859001783446184271633803688178669711163579211728380646366651049041889566683569775415354172987790118787199685298936564317123058186256840538271845151083645728576216255391605197144980825309914552563298215655374096082358870399115274195652976293581315066343438272505106684011910866261837266388314892494218570435184763336671448825404512239716552236652060432267150600301268729507600815717402685379065694794945764399180217891927027326674699998158234398311953570136450904082514469801124217360220215685668387888105273554823142079934357472480904168919834351167004367278606082966130056898994152637481602136648319422485599385402545075020233108615972497206440778737891805397380171324369122175901432318275180411229654239065981423712414698517156296499536083512091998589542924506033707893979028467128293784994446259458482220063740414107208908725149044733864258869059657512615652414439679010240506426176366205713934929502548198573245889614290149150241229238846356304211436060787624836179335624892583294848136127023183140595255318928634071762617743559932047159398490386366520189153409737573126636043288797037072618208342281403131205014473491820833655503794582400614558338989773395961257322669446649304327038432347165337076063655619367631910602182503382264993010590165206872947462099788544005703099677064086869665022776723006752464494411738467816839022027227896425278226379910168057383770494785683042540450190540817431718365705865115824970299951960050817192432062783434094113465156521494026982189464233197246923178029366270470344343216292810263082140373894323043904616802714555771959077625968805003313351155927029190273671009694882038616011066333898016752034064351419865829421111868092063881100235053380348188090483262681146885307971449782311486607146095324704629334017479106704640782325076790946200489907262528420571243386729723261296492985168772812922761115379533623698367202296150138711115196425187322691699694730737277332450053834419065824499855929523626933191580964695717157150048262239493897606917137914592105417753394022084501014936286419057431978909464675192231548117488439592179926132027877972611193629547409549835719664990289942390425280735593311908115206160297985620562405806971766818858925703546278226889081853741599205291132838593530402466495237091365214299424402587624714665801070409481053999519899377239135150314786424593647787478631161047663625347325350441562468528915784842135043589714861258315728760874808994700696498608210058378244524955488878386676252895309681171404349388459088532598761815788027189068956311339677316248697209284782541023558022907614641108731151265387694426855927197088407778817439420020784212554716748745397252046511608051735778039061397073065779333147176854283382968771036941924256436144714303538643242999376004337749507251405185784684419266953229577444909312293187736597771112355182256928340829682140644089273413187163736144553643202941222048097896399500563176360757957332430834566081662682487381061986449044263407820512512414791723496872087934014271282804961226215554105047988732348609259624778398281030609124120902275502146223014826614437226684369738235364846874039071462932102757287151270929561678025787570746520021207425106443801893281993159267748923005313762086484758645237813979911846527985362290642791495335618454126381963807647402286571936597167032858124482816417521757363965016493397816913079345589268672860368631636442433610234261349643993108844016625693660643744384831396313870530134001230317965466927465032207759545866277267562532352602281870247570567190913786831959347332948865430961020433122164058273281763225102179764366951118956128891797050002808187525044067889132865396849709176398072812147719353855001795986508264824107715796395690950291788500258830567928504576024349017865526947290168312958305088216071808576706019274177511302086624021150009194087381068131397902422317405421268312374073502643937811005012938466019437072381093931272069986341862766412362263022394568698787022830668082920896201864913324468075386143729729673113286766615538069139903071166736950148642188056877409651100591792015853635546474840201132024503771309939682098520623875756872700511373305415775138944746137357491007286571725023512027490749299592725118739841572015018341275349495406561710418138657824422250221044893167382988768774008522934212324473874129728518059335711040079697597056399483833782132069350350600939325480478388461275092848378778320129595417966800282246004272333214326507889111140978253974415723632038741331305558201742754486987817359504618715844483973120238740056599118024103403107949383767120185980310931950391499816285942304738740020953626893787832043825835456293308228582544418616268130642724404316389960575450934710754107912616376781749869392672198278136504928713263071738153729981385918895432274833876668819483261877251301566675689603009206194554672270187728902591148121579076831922998916026495256062744931130082791465578728405726679965544037327811445587545680161798409932534438534563738883381592861512834669114819298960992916596500709811192674788722858466097968215422090989741056660231922702654769638935539190741296602766490315202675866207296457049468050289991433740364380457989222458154963408422308853038719063093879760371952299548516838530357850666232812141722817612147302686834214421533935963545202026198939740209613337385272675356877682877539778247052203620494024936894182968379797973913922594130933108748996784995009364098993083018942921774001344998291124841745670734850336354659559968451021195529564693346109871473892234406367624095042890507247856749792863416420930350726339474379153431452502303960004245887941893685548457349252999608293362121223031533039164016394659824523230702553999748268668380970545291981993147350715949823798076979314325361016677801024660154461898450917526061908991915587404341843261938128627917122855815591302526602964257527912595511087829449693731605940152190346825382639971252915727264346048598309666912105484729276759315876483048247011598765940096637717973848589106422600357245555445924830875122160589974541634286743527983746010021694843318857099660172796267127299132443810038094010412683959853376613309789987882866367864015646190002595571075057279877541850162206661651492884359212817650972206649759560887650089777191549663689937286933018109217606591669716958549381322174713520423067424532265742161266158089937640840626642917784636586591288937100688571121259432143296856976263024240465233984745850811411742028828334253753860426876191236979764009034560768156716830259976240175658648129459196353251606068773009840220636401093532469449964366145721206136454999946393315257881300377382752331762899307268442860632436279515872299283823420527377449269675619724961496057424483836106475266636324276656374964695175320511815299035228185401238666010039299909785130245699772988941913971827076424972314294266815161483115326696378755912459617580881357258892917933870077186787479618564300885089890376203455806721628654502819362190609889657226203135237936443850579723279578862623199681253078598161234031836421209040077562280764674171073579375615222025436708246536363857952126974536276527686393310656535434174431400232636468629087179055449510814592402276844531407137767883732811506136149205927414201227942795556657087170720068686028187568483141421246713094094666622750541160159904231272880983872163455371470397147231840365732265534028765612022766852754367042977503012330828862608832765399194798624520764745060344351350219248536026815120640202010306720175751605798093130412724994430423070050937991014513299004657235016286303384295259682181350554072943393839123805172531120731271695451507559234602665423622513478305958164967935894089866423073996920436664029396290533702522834205261484253103025604891884793557672436195362791904281529604013080602660122415693947274093477275354308400191188274539128923736056611854567028552980837773682998016656974068828320272111330231546416670212948781902102137456275934553283469419553492993732607098333227656028520807884929126305545534617216268328237319467144864975258872217621054771844692337209400098870840009638272747305822905723977273559458284054704147974587281775516142463888825608029485487396429471828457092914077222568932316355746978532128655471667536311665237624953279115232906751789623490402586047316985900689836554285840192366212694435999273051433429341363447269943501209104876593172594441535709172811991947853049828746053644672597203459794992998181085926826541035906850929374661544251382681437034902682160771085069481389850102914762608262808852739820386276074459951342741421880225738943034131018312261896033359489728316222561467321034884596732440886554639178063461687010283281223213602901252110179025481514695123420870704526773244768365687146432914127584080089617205826759837831676288829837199480858627535029423190645091016207731280432417401330204056637929483574474216688507087891822048484092199966238402604481841384672931371391727978637980973063065547338919435377587817508381525827884160302820579791312513271630099125640561575400956172575255056970499220367406730388995200285818052074428337826112809301526307107279387361139818554191351014139492163454090116804585473246020270419132955114838508140633071345281166004681300790266541341709936299106032595364086592967596326378033618271846690262430877988739473289816405725856859056107789679514904357658903806195206201309664944498670121943845232304182280862768991042926110716846147550218109099190313219226796702768552012977031695873187581452828753614929627388432834269534389713870809104723452701201476732824801876063942795082024807446142215813706020733591106615375132446106215877715353278173376667409889125509709018818313252119154056243789129371669310279470238384939610964850948486878016185318146071238207561538278586183276853556644755710830763833381139638837227461598071093342898423992072807015536548820094633122100438536669321057116641013047274069714226668256240313573759252801434854831195793807295820548186779303909718617099740640085516126607130392070626385672362435189682078709917115935146916106061614599822075372488285338211369041474567332629345777623437774389195404881894602563590499759773794362138551689673259512055503834857112829245963265346300079908588589190901282851472569335881039047822299880368076337221148646411374878674212274275775929355356748948201987730189645214701724174564323473868599818902310738459475231688153323373038210913045562630873744402125206232637926153345649800614315176455450166789023564670621926311309840958220598189790973529596683350592683090277302522713751285717514327709041480673713055018380332497034139335513731743688660806877364922712036342569371857638229093377865049501041205644763689972326956927344979806324564064489974138627127202786583295179888211269293031760138633048181120278231534619901096679285604969142641937411263360580512222570191757031481247363423236325453451656718901202164003267717422431193906633203916599204764158488819002033537652829016974630703167262300158959603118999062211957581096951540571280843021273049009843735734433874158208113753894635419732926054732079670578441225557330407818741076021225487133115679807821841109946507797987839448471002500257463092363460075510537864745341635349272678798242621058039740077416688738054237563099406996477039097369018572275033178467283820720487930881273983091427115179747401811703262046331084530425765538053969982059713247269484934270254877736525148165525429042853501510969876493022740158053889007157138558098892085687302529798091008889884441514263551655466692052478815431183791264418137793631692277162765942701981430463116680941410502304473128913500233945667087296281550677921510174187260933188008970184540111228579316954816530506113454880179711253223204435324436431598212229279686244311439631570074291138759529210378664492648899687626786985739913809303405392785183426791415972259254295976439600273797769352797360433605280840572809935525794051903212158429568874261692673035449844498677911989052923111434117284178563450070310076054060392949168045648402819240739235179250160104719291378665494910409788385899740917831422342088100383774879673357178829126559718163129188604139149151108714773365813340027191088487390606219099818425110566064755769360241054852062548573384157485762866189774009134969149908563439862550384335027269128737559977653846238487179853411667860736587938518055413553719371048299471203298427415467239631678193115154438939977805298873626969620072336927055812234591595938955737334992380737155101350535305707893394244597476273880228274526116932341323826104455219997104074309102999919583532558804626564141361652755971584844333742058740971072461334442500909168313414927652209554096775144213135333981597544875768546959282728636829326442857388390442060055318625402432722827218487592147494970264694751779184982275222944742654335783680914359744941134141118082962096632768084888153809761808661819379027049011385753051787946527056561619670079574736030908486982589045559175430375638238626742461875168251706637289764031403440975310859167147061648809628753798711113627055837898838303795884781860669739963093020121523100739078551813690579155855208118110612693841993122684379523677529703706367205280787791621584941231297639875576664531490695581017092690741744814227253603735164405284036156611476328918502988174944215799775811086633415224012557282097444574743604197778618508401748951036190193496923837237822599067274791520066725855648299607174357692017068369939816094721078903356569625856105525530711421259262048170067675371941413314886385352616296178965904321037496604319883573611050444616707908531055131555317933026687016956568421360384181938441065073498055245871507586763027071649779817334269317914460957642777530726673246587834521213071659536093912281234620741971775338593495561854459182524740443786053964284320997968903593772332281963105168180668872311556732123316453548589202448470875530724457169656885745757901776268606862527418603343484734906871542362284109897249219858552817885537491484560567384923488534650908696462509323441543967932728747245888426567373401847697390757498475731969876430345901448646552852202220522671923568414465595935134202206183366356562605186473162692862807511495036684467728890740077603467885007277650289894730708891668590977485946151699455207580749414691538953268637007285632609747946712936921301591863321576278629975505532805976895373793617910916995636554681170182467126936001970325046491227702250513242485793083750055797814904212548409263834058013429822439599529486729655938737874222320387236436740233937494352104191415129863514161113242097137194200344033492204884395091063389916941247893504609986373949538572102894449093595087168590776111829152192103579306266994583958742723097862300292306404521584315346013321606545198622678471318403853361423669818241248716731439848812112955701396869063744147963159898478697003505475619026941085942197099546567594298471725685013644824228046453925367170743773817306556854544933393025344526998532064575496102686004815977018134143150438694125610799163951102329023354058578958086277815118743395028351664085728859535200566614169411441067338193300636471077746683323980441143176794649278014825252782921830915678084902039225852357939323701763768481049630651032559141152939433684975075181897244762719024683989524947398706465900637187401819178039728282593472178624561605831890691349112453111698715303785928262566612896903752970630388000266328846841201934848434638455627359142696916683206401240533215117463406033028322447007343373354278834199274824244934378455242251554228325874494281164769786107711572883950696532605715311229696564835965216319096044496649323802208093175803159067760342871555173334948795116077726925705989949327520220325613084704522226250076444823551446614477094700023677863244882373712323302023917068056482142553644011477371270095820536223397128707539088090704210037013418180069728710283573999768157269666454573288702093610120980763636702234843054023635384373715076629551751818677148630002565833133227571727320250566270173696400318260861180928243745704860170082885881145462392699597406164482182311584732582911400126525434175081441439387821548503920011982986487682483266938168839053768497592353053348834719864711324973040973303008678033385399250436098784354795073663222392712891937011087469542566066663381123628830967003820946496600314693977234038570970623029870489627570598718678110237385434042635068688521683014973747977663428440735498948575646284604885638911067326971775247786389806457529873215879353110303747873368071556822557213568905863388348447780777124309574784406607781819163171833409051735401221279844996607989647138071834039137058643715375302241893146753395330312176300142126886282085041566457101160663590146291524795731441121233103935830079468957511040373233073517199111874081708768617180544099754645845313859441518493370185825432614148610486656804964340094591994963036239503815697994234812855215396703687340510078096516356344137169970316508355292577514746894144196095585551512813092716056351592353941921882865066904024397300338739211225419539071859045926473305569243668879709134544830960660047545801040585504937916102427557395099578544319724934860945494043101477311574879312687283123101543076125543940615468912005691900465273085489993788139867023430339292578077798814447059881052592200726196266155220870725807578855827908355629541643829999428533696310035994623836385452113376093839466355329013982604095215238189617843195809516016563385171718060374271276174967234126715064134931509095171553068292472618863082699842317227642767336076769474943973201605651053035115283190567110586122264943919561865867968837390097405891697446721032627302206281200800213958590850412031049615584716937125252115131793273890022391778019623202038014638734260048965212769095583574155021556184059324316318529318089138066819230439394578369656235128918640163266114629658603313405243952076502482740396547776448030569327479422035697118078377598781601083947655228514216646236588282026080221383369448454662340519298885170940959238918138636299428301451378623004165992195916953604969199239256304311204186323599925794693148249806453102331202582329777368025518383364353705966044932649724219539971192605840934465076823755265592260730924545944126229945306933423695677832476620515726402108024110629482702542345183124080067949904513572706652266761767658241587271500496341844676308309003720613584341155489145151693791667181633852454667115101453757614200064378317077341116761548933135924187871346670310836526122838466982591081933928486332442025165935121487885241993243680539130601394848807532990369257755134695273119840745780486245056095856542087460508721254321325091965721431112621524928097378780791206499550257044452165644698361181230352417702060603457429248640715856190059984322007023751508988719692096647974377592190690962712794738890816584829518746965116757111005314439822658804050042723225364865558915996075778414701916344722166815902383918775987155188483939554360717404105397105821518555897980657698321594990649852748775165271624230622904516381257087380059860798691902958137127063774608320579328229173672541802912791050062819401917459873540618142206238914498842160450430734274926271197741093841992508374490062665436198493863106968870646236445079656377976147181333144734445564810445427330820344114326200683996798319666604083041474453513194850831267243156138899903238212053677959388349790023839665399073889250250342131065343369262971599532421770403920403123837932627973351179166498805037114658348969412759017608152443070039562950694397637994324782346800032245272861403453926259596848775840676861449753232030961275896042649782704360866611269227650206426409089261539620770107053190037541677180459396610865357247522045749836536170232477463980415742305655497849430764725475361015788022262604580010406803576872646191671045346012884184854433035008762735037236288922154131590740043725180150440413124448185947357546833761861071146830304853912663545458740985963387146921808948254980620052392159406781191022872784050958862301450710446402459574298062476364182509769492437477802652377331852204954242968048155284210645073802330900277551584256314087494646975604067196872994392961750498389270945115925273984340638565412964352293862013565314955339951211096397910411981632947010767329318810566253926048669134249405806992702472023767970213219477557737359475539940606383529324321337905665452497845214374866932127496688308896854071788225737917586490202272750160925434547544257788718397079920204201801531065536988378510565037799388109808568229137651268168275616008432762722201061497427222502013728812676301157896758287037478393516558459026213165014674326449248785483272100034805813149975029441107901845142333478640620706693217529800575082862053368624532991472088771116844936798269798795021405836699179033008044474018825350513323423632513075038094658140198840241401707806010110562490785247468271529444906043973252271089799119270550604362699106255530799634987244792335280641880982332632186008709375702774072040944752432523655038752422659985999836652797993179170446995610764455664541631210473670271510992500860269600713661968407974342963590328989131269371192072359149003989092075349430584317797623329142200749457051185231271920231156422136041789173483258475283835395759934759968467148591068243702759056565231540264979639141254876588648670391226339189185931200488406864633157394499584539581292570083121630436162611191308832524882220557966127044541426495072707658318848155197856303052111084880728523301058393101709321537490899160471942920988953796861153138187341761492152792474030777733477497644583219939291555935244528871695662176902826241513039908092956286016798717732433498162771005157328203929177749786688366099351098039978595945156801231238769031279323123703131517232597817884227280019286793758116925715141923693249871135821608981086693327322006788981331272490631685196009958321681650685863298090483768048498288507674911119698275381177140709861897832533756732240071182580235854074300837081891298387570478496124033396844295040666633524168823224196492814960787275031717558362899433811487307139006676505141820626789396245116678846494205095423251112271161826299563874028484910510356521610885704008700132420624419923421285179652170491747850624901205546694959618439763114857674462547419006155954535770041459591600280736800076040531315260898734046894408648435032943827588181538909708973882941068410418086368234331870775850502192863946843587515001973807792708728106913878117480592992228096346566334951412890015343255405577007558056372332057228228951417563151153164079330922168894488378650720019346458089175797764219261386970431474183746864508462155258669515247991008090315214526694248422329243933554246021976804436116995308671597116618118132117877059804012662227917485918558911100318045077689817694663020476338937387720729260515396447094689359384326046634734810632813459039757973982432801290824012095580653992033921942123725604990207044790398229842142529190289952446122059207593437351277646244124220800883096497933306384381449564447576860160276933873405226776482145890264138446817789272201179397120382896191298079564986603604582984371977635243907100856035917041015982794462532157833783658515512401751869266312205067806262418464619798777331839200403848416247116957106545403687157831439888868950452862900986288694276652075000298619693082430548463633661116388926303765387807028156817012193335348606223860707363872540893772814785646977284547173872698370048747025669328862003493780690935408625561963429016558084366853672259844518311613587347396402865141354218402522443472849097994316027284285981132157409684480346825961430136612875186541677979296034491840210184776362324789439575151045707087332844948048993135528309887640947400192939573335299441413854866177946054680865667223063845093062152759411954902563265234507069305477511941959424315457490975958963351780005293500310520650222242265259801350548979216228687146124117532787993623938679864220905438087127871140480913532471598184173718062832266203426766375532738359250375818559388945918761191411408268997605815553972627499372835358797805429757195843099857282372453469199607805283066983963552638759137708190593828000940480433051288372670772996479578414916042339318067273850839341894121614515624798235130717130439402285946526103193237608184287636643783371136368431862777830168252766986306416496444331757533209818583128677149521225355908603705138451739523956390700902624243322507824063534989563133669158890299812084695385629137413206368417199401641864054002894636345538218991732088020257425482210283744086669882255393036426089061914377874158439846770066755688497268587589356365921440188473900535160221106897443581132093891047682830274596819624590824884697644843285867763437704031850100257504143781331044792559012038057835832804749208885138342100359276634859543115575576851351486746293563102994135698040527299723233113656971499499763534337281027558939868211859670805076484015615336606808389796850376094455948637558491615308706468679300750317389746736662330120994472475305373391695532685588092885997274987772599267404787227817501570467227432935925556742360691663022256622354549139722910872817459066691000883375635576559714190032396448416718301927510812654221248371524088485028250857341738838009512364406854038872152551780714926773517438184503667413984892113920760137499681902643234378720144831237235416203768382784858240374379114221107872787783611153940502604597321719024182166861300590152768598759737386049781439762490135815384668191127602777667838023254779992419930188649358108247391523135513367590137500023780756743868783625689692694583780217525713754221715598433953931850997644182657656144055542001489030636258915321310805187502494883054525434974207056250501915439833611088228255451361301599411950263751197649524235512052966604312309126589960350373918424977915331651600903174957383756074369674231114800500354086910623434058100008851714905844964418942773246857344628685290471360189106358452937450928353916723177342264560697313103696660790025774351681507831274217852685202512544698258187475558849379848600767681173842989060449338507923557797634179454524363383936945360127151605478745795421709640090626914629746127144796234068821751975333376206400483035279244303973225393332408071236018104824418085628565391629068134231412281378053941973968890799348230151610336661076357449566548790018535461208614428722256291308362449295545747957528187903575937963034336699449337811237510266354941697986715023094923787769146085917303199216653004118829701083450378127524848830523057180146750990276988029642647211980328453082509005037777239959709852328326894744596406271281270680285650460929163443256383467353694185501216848432748337332195052840345734375529542298969303824624969546212973416505948266136978976161952625879108640309743658453672171385960285030396140088902027484811813177705820086710178929593661273055842003596335993449619221659438855009181371084015965920269034743159544271033890599151943885129985601692740675973875346742152439730381191233304181907034601180464699277563179801245488066139460706914466327234307816361863727086684726460773730695887493737819203509158123841962539964864469803684713377594499662568496201515672841342129889947508318586322530485808416290099791819707653451786305843718211969592321676478755529741266799502466360947073994781903547015598065331276593716390022894520966848412469214524373488057488656337376836763005153882801004336141115568367884856598045665247231041922127171283087600420935853291364810163794923293551972060856835119313002507117851213512975421281233924986074783235224349500350226052901172996312949425698091917768126233733969973209566208333541790394126304756326532767761457489821761609572182190174386401275181261960300312355983734302064744748080274858105813628288265633967248854130944029233777829983687691206692244919057725148612621787914819797827198928582301015781751363483219792040002504205986923509162002928314645306971708669373440697384539972854395143831648433388234828139283872170373608354588389534089299874905482538222669887500742501043123682935799802062510896499065550606218733783654309373272286795486467429541564789734970498006347913435201593717510223257495266827175243075951197094599330798610905409461786370850584087816081867177598873751228763094751176888591064438440331834659369686015569180060775337048201432325715952816857228179105190063557379795500294895079508898136102521995996456658275788520379148636481192434462885443765589940712493152110912092806131881603327572660589184752994003870430405303144236037761443121418221533494745939424641197109590130480939034043044012375259581721914822150297197145726990028114974598528681409946426287855663590266139083943214968356562357670003048989057339621779401466149502103918494578512106850600448893039140963139280500750630298220174858973433030296542554010816058825365153714017757197829029323105167184639704258723066037878317063024950606388401243981842354901822750031377199540969777228657340789502338960637304854959710214004174651226120225619645408884880603635900581106233974417875112193499481709652002047387835956507373216185812919713941893652655990917100420417154755127404281999749287857479052923601755576082324053787029666430413088709096287522773389530913896864397455005755611871663392578941975219568316337826403519753405537330570814304400174963170056380802905868989303152177497358045152022933101695851474577024050887681772102424708556357367897086094391764494777517843067934534502278826807892946039076823074929159687964659429281176305206458460372208847627966508896299781426294411709958142084284186995037895429525106938090342815512122114574161203457882936742335816067152554813977600014043806924661953451178922774036338141695711081618982966915065294052670741676204969394199074953977562727618093685149971994969526691804854335386335110542762211460380665319956704739386878796302419735131112482345819274463159949588895757659907944110632493474354245029116944747594421475209648312970793732346247366661641026235547060504766610447233452925086905217065824834880892323202513202058694502261278959785188063126638268071302600888190344262965085893857615557925389570730509201630676423347528389757719389058447461507878133952008472827564052829918404054492595674615450310872927962933973652233814276893047961400634381670235691824602548157581950371008406787173586850277147175912469587235231032078099008130274238916991100181404825503290874692165712642683015181693471664910890125297221397529126688714020736998064710091107178336737079714562984248004852946130211360884654434185066317360295265508442843906415313998319216228587276097909102501339117384647713584339271552456097271403327870413170994539228255063869058813356919758753411134413380464248508108522733666278849155789657482950479934194388098726881802716486852505261622779071195612842321149858109583409194421943427315266920139097074237821200584069343197825128698023415475000796714261454251055339153752036150471676123810544629835887613164165689942498261059426449805147963728508169433166823293502708490274430369676443409632348648157982739405529697306185186882212149213924968174866507498843634793354653189344994317275584719603410186290422384349785277054736255191872501130685698340022637776595175955503499774973657210684132277911089553173456889610932235277057641152295338362050299048902132977138986305486940482352348349081953496317213250327181524410719960077000935674135965741376673056932476486394834700763697884361129760414868073411430116352209075249648648936645715009086191267781245328914465901404180740719226385343805574568962198607281754089593439916626013299847896381628499760114332851025581881245484471966726053231040476904967722263317280794684018459652279685719122900341025917945590736316288666080843948000911125296484986501116802627572100972735853567479376047888827286500134299801643393833050216286697203785602589995897323322904664583295648637900060237961111096953663310355938621824525802362651519946375609108401124141153873113096345476652180551138036424563369295229011418985328948420818338317573290106977142594752736006370054537758292016199964690503330913696922172191629233790047435358165134777525072580103911576944870419654970982160833516031857645248504231483961123757878500799441307400095785994565165351505757194522937071990611478276963692911521110773516642132447754028182968146123853808582577465674065041811338116203009768214515848203334435041167862913980907286735236343215931538595618662681491177500161776081782155372388680987387837544247990766539228459902219343241671072849242709592197709229206161264171193966274989040626811715666805506437671498540266418789017888759180582147176039157639032770383086478118717231525855685018513700981547961783631348510213562884936034914483356266378492575108599763879563225119547561879708751021960949806271610895756481138605965597646960488574034903095212956439459964508972746623253099762257313641908933053488112462375690673922928093059601678317683539430773379297576001162138671835228789342413500723665791231467204348772555634176988617630740346075841543750451852848643943869603329347127249306506218564644465177333883078367495681245511915571010257457294070650697662415925990343471258215695496207268432411285693595532797937125103801830948407069282550507943951847239001644176290500492993743251934680443814410868482430933336258999670680555705592644261230066635370678066872575288455123138746461474287139448135259107328942338954037119064366128008382758502986647549746094031712318808074348004048685218396013888050593096647490702208251108447422874619427615903880018984700005022392131642124302178840721053567103768552129544680501070510050682973730261214943972763843336876995495447168450598693968597991039143428123027719668822398981923391330626212697205931903221357138906114215868662342944800973277472160431344200358107988715508895872482021963158009154928147418932906414538662315269154724964586645827514242486989125752812215149522125926678731830835487965363646391665458552685302397075393307942149985691408974844734980406202206661351064363860743677665330500792610786808940985061652417042326118704473700207418423471033368648741626441630861360828571296896777911724808111694218820605348020480742380247664741400678532743011661452582700310519626111824920386477534963713168291133239837826528908054952595909393024143793947954654216726126409139853493098207385317534400165717527990940779340142375761818223867933170188592404732192423835092128312509085862516292640763781645783206268410906919040977907868920423281949992427328230114950091408608338103577007860544125056011925107346691073850165790324958499129101878246259003551335001459612139880923966668515062233309577614888566285797703392275839252954002761048435256985008912706752687621730275737769775983882075048064519160430032766938727951627536399993756059746293975459163447884816346104683804294948780716931004066479509509693408010177332780053808809497063090749053332872513286015043757885960068706213143096695066691891185989029983076725877558164334572777422213883120366114503811366052120730769474680208947433574547744398495523387296012806185303801388331312169534314833661680711693356233504560352866641757054056134603494023454479128790838659280013444376628021879989820648354973248373194802297019078179012290164693457125969054374540818759253315989092204471178180618739870474031000290973950033808612266708317658547379962379445991805200855401575355800604293555657946603761959401185881499964467965786337559880527853541176158003496519695377429310510886927852336201023461425384194241909572585147686566262158510206309868164770561909003096148097294936819375594621582429304040490704421819819647649504667216490368118517571404462943258596226244286398767869668130226608945374776919142884269022577863438271413208648022430546285746563214368033019022884837988409418482696806835843612527599696368603188544229869567635975511809162803878706991772594247298584724338342834373478355957771847836066463409434633300319673689341958653620226942249471163578240526010645649117124694660578431010767740525120462504542157163810409637644906355070932801000275741452056440539928725405546824188073103417988615405829192947835913952029891407936842115699375337534351171482789053094725544369538884025947456588174131304688751698969401350871483727438043014160258222990644284176868501798528180630808236936091921221178987728292574061616160274362406669699822339237139588670764610622885725479307488767477439755503606225013970465957826889913969868175973773111558123626002599008789098461954722788310051197501921268303327293962021718822742844520638712853815242125368108805731135568038565865430140560824828127662553105206038393587873355487226874715501047385264073701291548698756730586225841011237101763142205730271579792635812099050232513599295021582617295459547754087032618470283703074017908914116668154522053385276829858493034156178702597249848286051621695288293623352719192746538491519075786889173977342423972695501996776918884319592668330567132544289684060477363973246446675135592511153779617538106506825366200352268109948183461169809255751533549191481727629202530105212020897358464367885222014970210307091188599454800846938892388056667193740251113636307220929822936934028990005635525912399509967120861846419618055684941733782583508042274821466703325394376296349695638134485887230466691554779647072586961185360523400391090931571327859176670538991863667777070815175789245365774242527682714455856983885065414338500714768611024729542540115575529541091344841137154212782970122335585434180493159335084461542978231507384118362708225751203009559384492245623134244006429549682672811209245512392887025215993109449295767174484235248632554392901195740187983300699873814834856438225581808348283246528971285625608181159093261363754527661130700693878583163583791642150673079228815948334037611925972248383222928581238430323255829185648789586810123869823046528968168290257947376719182772745161783080279030146942776560362409985344292332348489960710360300401315178224365480460112371809797361955365692142177352111529374750120178338917717081467500454343392959117630885370908712413751588337553594792844231091627869881394230584989966707502910115114322247657603058291264784051858203267666886422900092441424639693923193511532947878899516125617072498623708130787524970297196041159214344398151111781365391531148440290001277195654803922650029081642954591564559908282268444897532026613569866334471373709339505123149238273961068056791125987457699361409220246042189719223078770899940615996739825564840365281681860711000798687500336910643594401850596780688927343087035745265690476946366791693243372396037284695420311903116631524096786889377850506068249912357173749373619139669096343447340252682319486226280565397605445815260155279826386751138820064723685636703206466439975622143265689462727193078051361785022907707292268186755076116713024474490143810373899000743998593374572611636435000940448844336419526200970550712145864589017820465129813748959495222282498135198589765311995242376968260636919009745587358791215720016437554367535387244031697540360427095058960796886942407719808059331877088693227109117371758069154457343463505328551358393448674969907517895687910510743001102710965474991119252722958585293977596698420388732881035435255062548668663572130089682622334660471276291597775535739888864212545623726366322826273656067023083871287742966706802428264961035135458889935658786564899003263716121427818586062189689026844448178724665746316404482109890907371785369409460467173790160471891726605033055384120842494595289797589495730029605327071104766262677620053229803368448068922202617892090053189912639767634772148835363661140180545975938513753369644290684320675055870263229548142579622745028574577464596695099291701927925689135451925761054636090003714998010481267859831781213437647277320968182371011500832803443245403987425673181521238227488168543054472793692001447298074046974654660912784817844270086611440073423709185411829700374623147274715573594485119348816396366923207828009751107029684152548956368350724356205385028960409736459595187689026430268505243099619743932840963641700483802920152236943783916365057630717959067925736471204642722802429211925919670289513494190227943536248782887239373077633855150531993862255551737330196522228636184660494418302743066799435228782082598184032207467986598040145771846334832390525183954175694846131201417017518136980165374316695739316182941640471303399666094548664514097073176985339124998337268342056117562766705713360692248433092681727652820711765764675481305228065591614108076120045733868447230194721220529283717026111449945839494906309688516444883537448200657612263581174215871615419688041729004095746175728062615982530767486964031999683123276428150810173078086597454804369076161878279308712955183256271809916202193796778252058487595781896246441424988307059342503721435170520625913013826636313887121804824851914408276609268532416391471807460212340150061300498671026701674865764347546692359483315219274721229649080679637749145594413719381822928082966905376605640587107124619326678795322586094360110862576001771766719537950683709059950426548448821241367925848642659836865836025038166492706694659826058292716655965833930407882644731728934489684881747252703840852257300541716374944180305785713810703848042482825483155915673929427801225355450501767311470901942957688994987312049184059107151814537735404466647068499692189293159006086570839495964454983768815961167305893040069220130507789830042384230381757525463838964956076926516931031322567002550670577470713588239833333764377934082776882411381657125543977696481880853689784242235031274431217939014391408231049780745471331463682931162366533418509961141992447625508284491945906228110636930376623448391842152321103769995119324578878343501260400665961322249200367741244534583251131026302298075343478462272770300129264202058665224736229389589712225079907615076124366327712640030948092125035345039368540361264483422019843795125276420110012308388667045921725246829356161225682554213090912444313278416268688285007267109228726760927833875515722090101068926054014347571217953454509249070813980221485600127971374334241275972807053169483156604705227425353067543272215812167951648565390783719387425729294009750008492030058514003219377820804508168118530936466204027037258130211911440382834998379882800293297337004824310180391278321878649719663963605323689277673411812489223156509278028520087485044277568656139467031696687552707343887604832036869040055363984573761832146504382251522368668318026158242100109590368634344885978324728061882532740970086836148084326635301576775324585771201571139753452335923188128103151896924404082117125649063113891007402844282795470995348440302144475649360098201021781513838173915221315148849512395421065579110187190281624466971859762544855653843741669053439159270341793366647687597024504665350097490747235244076687139721009153704019904938941369490835695890153882573090676666970782056048360570829888682321832428477851269641134700421240290672854350839510072902882667017008385587641284505354690842837080485472633022451727256114538756965696687359140098797130862048956860840741995108233483915756288120021021658797701992481202748617676609042196407489838980023487444832237659998812937646106490810018519118844334679644547560221430476838027503899221108830525485384285791336849800843502569742222820087743130083636052438201686254840443981198873438887732993962567428670249680459971568073483604350538558325213002081807290548830062587436575889610128538559609363305217189020153175271112603882135413736314993846403920357723227413006717194292332334816396802124881431084286772103012114945390166003706494287773180406432013146369718926316412734667731590894822446257906243039757000055019716170872354401508421873067840808886965887135727508834608403009466259247237887242871815207235839967060425225789683957606400031562813236859985861401540678491066089805123514551056478500164704362955765779694575082572835525952675292543967327112633366079052568302420507328987150417319399094916985419796794967931134996269328565669007050078620829576561137824878289240115793626945323632165981225081090185706591631447758900671387450974480208403836135827925854309573826077288596640184541341112435947782022111658584549215717338870438576070301424037158506256576536094663457598560658079642920461109489974298246359028963905431651930828232590380084374537112866286662246526794153046097562362893357970276056274987375805105958143954970056268412184164853821071859653195986366910836502993682174715814548879482812567613673669288766478073539256070434666862169745493459493891755984061575090977807556698188836126751397493532233762207166666672430996588466166057682999769299390052555713735596979175498086115975709692648044735630964259631444685995494565249127472838673002691524064243229856039581408282898712651820326888408816094332259749173873071215612091552535560763058333328417729232317081520386286945317318339830772131159418781358411375395895245670898519867895101715368505909786727583252718801733574760063094035264511135099212128969617629470733035820602112737444583730845865895339651101195323572237996631133274008092593087838910192444351223792158503519365430691810541736853349271471937291783068697066953834663784328883904684202402285003788496875668844314395795042032307155568787849734147375716161703457758854847297737669947444026458023585685746944212114137243205836650167306080141179047093134738462065463502137404838061739379678136756924454699113723548298200608226712551727574509869466863187980564705508420258774647046200425967091074355264280158310107531902700359459659899581444154986733771190802137054606123435536834622581960297721333865886313933490734328019028045488022203018010609747688588745730513509496692107606038773079784891461353746759786252177179444596826666334566959002048983920870586014726282320304580724864312210064482491775083400796243275015054330037310894980444560112918939998340999163982752362571594434378871292456214920576093108482090396927087042991380890521257627614441253404977616778417361658063598647285665804469119983037249534968706599150339220808903294819121810156237951167322648359584507475817158724233498989209716070541013898379070183267039083096536125534093662626122414850814488106590336212650044841491225846595497980094295858940596987492342264553484026766729375873094780826114712008839894099811448189972476982843557111261951777162245514245107407998710147717109195413836101637449733976282710624366071021266172574301314320251235291447130831204390718398152122758965469960125211611590958303944763860336800259409179277893049486417741148489861073003803185053220103869695254586737364617640823129219751981175702265589231328030417230794607965327624608277415148025485913276841470436593343876363787709363916877294512493121536698010622180328400784386587731369543320113181863038072006964150843441434437774874140031881153042752740729817107041266768366564628916903067207770024744535074730210163089469825704788803826965843708051719626559318873694863050813332161118231264883429671991269034107199029630221375904779802199620220916074384113893813185261951143913698308858147631278858308633596739148793084612418872039259259998975440851572481079254771562644617998115570743052834046515547583742744037297282153664294440265398736507094471643508981412407861349052573137450811642843951618751104228776931376463706577230837986322016947267581122344337730043421553281639616100267461952200883773754472711376187619107323763703616262285422693487402417896070319962603201124892147519317421993714786263552274181803011882972630042107124529874932880019720464591989744743484484137828536141072429302932065004013073017733086930994900571399772414990779646531954166506905324659289123023433257401680854848622072088488720198823268957899353799550466693927166289532699984064740682278350926321845952358989534230913123092498282137549063791466821841496906304012073340961759747055910001498305327376131413538371092554952526690742438469986257650294109460052237437683063223953734434331414938565546421207100183509871943494291202344077675713777701924388300603153238957162054465293687769890390430107220987754931804440024128985025822154556685612193366698242624778531474210892555136153725479250898914036854248879820080670910027179720909524245559623104765292190665673444691472328308349079294406020425263459062046048312888813861512542935545722474003502267214989519717273313260668975712575619127210530447064769959513563508412485352879338651290014852581859607973092109283125072445754187974443026202761938852954239865649340827166589295336737364356521753124283253197774293340542336809818007391499199306342574182789243695766540292973814604490422176200208312353390256635199685405559017169980727212327975334922879815054994700575776810252980431711950133826263505707387777875831444919860027303813985988254145088144250845956665465396486990792628032130189326548789859326231476378015689882375023073646101203327219294386949614396011289115272928719364302362865270355829717187198197378705558240503340904134834651297352975907722182167658632604336473214686698088302210601295241375093300752491567421950750765677704339592731118237235006633592990542732413775508352060562191299379815997441851612271523625165643146881799699503220790329734538637894982079303991175783271013942266899621498341149862782380796585892709592980200937984161220614004737494792197204352970038686994638830991274206529130009201224027390625259654557611244861927893286832700587089810281158064782654808593064180168496204915252184292433058763903829382193971439538973948912156819904505470798759463850137656544908123670977673052235817111962301630667382523242150552436665857576053049862660982407191858933262624733407203329382964723666773038544052185181317012406386831111152578350411925536789649746724022936234886398250455879225809704457248347605945581278679244506812959465740855191032654865273626409922535281612814618291079163292483445369849447718529593059732581829668152595815745050729302818579427938496792344062883982889830499433336364311602995251778273734593694125696705587239146281239035980337119124750923536289274427489498112232500411148044827639968998703369675196133215949589473971279793124460654494280455948475360585487041786547886993429851838812491977749028505373372388479805737975819888057907451875958444674732680770932111479613019604066434628092688853465786453448134317863665700151396359015857605724563779108953945245727791713387780285307275528969359091889359708018419812384547961562856312769670533010590752514211113328026841429957303739684481392829724718917136073865431505657160518779341910697913755552989628343042578270649950704310850737906220733207649985714046385265686844282967450505760445484048665872784404868581478786288958474965254968244844144600055829808276595394318096069457177299755922167651096549870543765080263024742294949665893552296297605980700491719271555924699149332105462146382399658208979298237009784062573504573277173262447926301408530225662174253877248735155208683271221864808979926767541096908532784087648857623151839116130382429014843691741310176711717420520785739971073192174307017722085837873177492032636882027154605370304601076250975463092774327196643323051475548654084531316114245682712135959004823252122813810877039572956979888174382952978173320121734028834912738566769483904770041950066668360311312311528179140262476269740032257438217959940580028260117243614823179066954289306130515032071816603922544937078497646917717018709008873994695829733177769090572764537828288467703874146223460463516373626451900708619655792780000048878067359049749800583907311320129017053133179905432814805717488578596268071911749481191547679486320078676140010342677957150167839808264693948924534275148053135682933303010650127639344472168119886677543193304883029555563612746641922999216984371541671767472394414000242471627821924428912245739609877190848306385566690528195560421827641397840858490680382443119370193684057584022374061366272498220018071809172699661123683993158354952266372719169500098178170567873817015934184007956612146251210531066355668224833869425865232527995282070320085264396723742422548891468782449192558888140270949944086758203311482550289731685924316291152259583191251159667473601632943078839756340910573182096820736187312529429704094765164786756070796244611120715990041029554100591006080561503869739768765664943419481737118141491934891626673070398984751251605373313688905978977326894894687874471167100839825298008879054948720319416727179440439854633391403003109281706737349780252078712113192796448852691835516730852599426273494347012091529543448928060646901237230108236054810905033196535540003733922435463683435872969679349234151416457791309840532810895194641991417973495214270849635451256102582940067682699128379498736589080076856527009719230806431524657475289976469010521014468213667963240982557050148905075262396058572220220049958243157965742550233707255481764046208311701879446306944268687561199207023105781530335319541717176797675147330040882492139909511768988969986111516643588741516310192228269802003094988384399365985759674595267928418233651586435493890513503575825369554386807741757977841997626312605425938014365848620665503425130683201920110166077332810390803988681493210705295127014943490701773602293864792192812210553474984769200747203747227945719636171425247655813119724954328734023889672310581242760969873316219032442303077047549281583030722720700413969850559781313394591165456380567908475148050522532091608462006794714889396689663992512969534319292748459649848262353363684954617862342680148957338975020363284133106470670802887483171846011855687454426509406562768823196574978054647930316877069401249113584380019308157648365866617808256297889118927526673213466290452952975424128886731417630034991233137476797928554815218200598074406709904831450372673642510025032288279521859311161413225815385198972447742331189624278955173757868743502009485281465296388800661570257371379269859287881440350713180239431407062196983172645892698312181218896504929827766694334919921532020778784623135603192785841114440227438716219067531972980156044214297955556498441862919702096199369334282488167850112640161498480379619139777952418621544979113935089508429596369696144348086009711778231202253309642218674778818787166407760965629078184708459202251538089131548132687665924076641360344862585361886323311075071333140507483011977120262872140183461424121814523368335865118040233725166237756930516086077514661579543098123458534380036270658771912017238737066651658797118392411103441183074994496876546881292401440310874441101143530254770559031923417658002739980404014153901818915137932913251790917145867310851767338384910463898838669039739495080025020643930684702394492028532185070226270691025143818762368312857092301723438947496217118868795688912800437837724793559142278684609641683607534603831220960295352834150949214050950938798058371812562623670004483061640678407505033535765926594125472497470988832224564882216425314244373434628033068323997977370269334099802508071952440557582096047742362459695051470737994447183109692551301471154992145667639406591648093162530782963384213472671797190824812247703892861828887381042177470675084477782747183284614019348837041888941828154530082806671740190325405101967766645698360910956579617541282260910259215968261928784151540801402309162184353549146750555921246833719844243153399303418755487927424350826900509363096796235618374028589056996420351865533704740951704743795027913814325534080106549443218798350291320647412213579616650196922026480667836659279275790043760332835526285577276877748260739228784133943567479962599186601371435647790555561959728205089312714548931905954966356598118076079534728046067828912800021149405498033644874465152895458897620136398346208482139301711442787923365250272268135449953093841863679328874401338531654856484291732203265490342018764155342800523964035225075358207202613193078401827661849874579640433735323045685976562060530222773554512228753842804119460748920216196927099556242594786072331719803954594034318097918484160809402734884185862556925656047667217809167437497870422211378702603061798095318643393184803829119990140412719709246913666333062299179425496770143012006977977162900443234524447854491796186749730931075726438577535981946898462040910954513111531377746043477743056288650695407228500684397284694646750151077591983510187725191962666804093826175659216570538459232514492369137455879885307958158272688688341091272534668687482326839058555167233662769729571888479655381393788686296000931995359853898354070733535643767398130971499502240278800052498038213318600620283850542587146469969740402574379481043251795455552674051610567111882487465092523782419024006868161200050987185033424580291276943150127683633652710905363525779920629976007729956848868337736856653385401992183515787688563460068435058416428239162659553857246073154743183748221175470233539891448197477143301097754606701646350507666620398113586327198170437169954800737056137587593450323486821735987710303972103780727658124641721498758596825100370047088702937284203690278245404841117409074430749820358854297037528366846207139579343799862503729294370014958260701496100367968565237332402257068711535899289766049401616276136737293636082434459467595998115708613431199384094297781492418341337943925683698127002466463894972185083257723442970888862051259906113108226745842632228404596742236429280126707630606218049719895385849606635134063257328694135686682336218734105253408675403858657526665428646773431803063715582556741366581204572844531420358861397640615701302091209769794465823657405453280888408343908004030012916053168644268640271766005998698043224355812328593213922899372645730369309040362632940270483434893682867439006476087832979546350259742696305642868902387843031958536265181710073523072604745562001759184167476285380604459394620888257448639102743697892910172185669618842496880337409941732297113923096179818007686910005501518834858238445238595123643349788723145056095783917566356071598305798784564256926584318776398243348368013679162192299223414322198497995153397519006490461315489252753948008432788649397818304884140261645833420943495929097805267159157952195996339668165321997469369086334419008063387914683671341564919240048571521343220604980983287126359415407452534231768517175228167840617977703519088507339440221774125141485639062261462892023737803283131029699096536416403223828025016818204197357811939755969568783394312194548731148799672926279086698127933197130697630300189902822979722623016795479397950128735281447626448461635316000393277289758960027049174268735338385689488623336122861580058290021874210988151021938324304138585715801741181170344516844866902756120513709274695748966150661671930106277678401088639965099816153075592139450776624123697769320391841219247223424515393689282792668486935923289748167417359419084706397378081497070939620447150121662620848343658815761589446283976386079347950803161028401935117637688215260154218961889780625889576334196555372208659459969632710601413495458433340319660945438864678193928840541574258534906354517164923508385387791594693436197020029009124341545701558940795982408293793199541622262952161236842491811636331299416185699937669950973156040734541290890362242121602856918169300842802437661123710808150211951799395231197457762296861984426051557127706228799876368740331646705594626049465038080655899731863282477153704094631087754985149671919619312139742205468479189159827368634948934949281674722617056668072700260191601988096863401964235967041052999153529513134876581943320868973660639150000154499956590784919482566794057266848660640101888012464019727564578649621732443842446658152243260628774931543115582507509821385144659767051029303821795533243708011140386021861868936986181604305840052873003969435421969539824885421024945161211853890719507662995003747772528051457210572958429591923248182967840221269486965576869085410521005317987667544508276910835312393188328249079779368138411617987965283079029535798087851743676655959024749809431663380354446960317577285861245619474680296759082286177547638478793515294340367705947090436035610172167006057614658290908318171020819462442348562989744808790804751985995798427877843788298081688232140896039873499588029310724587596260367028312271458306203424523398326148506494646759463029000107810483257346669052889710770563441986481586817178064260696355648334421011857057173992299540645324085916915188457631689913636204289469128657241562270488726847682663655679925297529306366480899744581252245770530467910493274289877584446246356140839522335717973630117242189957848946601878289709872792328788345999184323903452443119068389758308184649230232104194387169068213036004718451927042665324980969848511573322715965051800104597904362323960877235528475566609807315877990158225604853889050738713438952689724642512849185563516657939944863641037425768431043367185006361054256435205447696337324429840579793109303870899218452946950275951062143752033711943186555281494302295139137634449117521412145874249935775289032102465659779419517375359301004376316906130539499817648388903309276037241305668968997171600349232432787977709169409508241677913865261639842830621762833117541340043519660821900870098451946234711258334534631410965753509897122399136962134748537936309162902624157806501312701070181877145895827688983950585692563585799688942321892502546080514528253213128246685659202367895201830461743752470945154362868672851044499339263868361850576892477607308058478017189986355448192563134876845533396387825018735836713082298409162862165298992897887881867926774524857350593655038373583642185221591175830429837810794099063158767844417319768026530930690685768421886445528358077779234780892327202266127609732786930247031967094301843175172552291614450361661133230492394060220247560861439866275189051802125013209867930775942584440620679944006407680635881805905920667059482662321567386604743663893953824280113451148582706699144298148819196056096826233444606185414419399164838386369704667798444162465076601818886446635336537040626369832758272533170976135629565490438868610492105263926834764247785297777894085508036290131010648932647781642836207953009133833158176621565525213176871408304856841969428433326891751201140291549650673363678995337202807024850920140742991962932603580068025502735141864398263774291414718441952656688317042342066928081492073104845441461544872192367350867678218282680727783320624579685517285999954684115217373378880315852346101652105699110528848318152872000088312895262917929830265475617587590749577874321876612626826544126301290180270411020543634297360603132238532196064365946723159761398622029079365408681871895444953081406276825526949577108230719815919016700581992714323256813107991378372213490083311603235750275974855564205698943478380746697916201815072453267705687858804934902250106919852288815284245589639971419528277593691519412446311846013883999802549297017024126938425194215273597070876487069550041621872505696478552252374804810131264151497045783020679592332115149284170170536825133406646695160211915228658077967882785594873281725285656115428802998588134539616858313059847861132146935743805149806689991386119898793448697421371144669322279404616485588083307257991460948510079442969399344617927516289116450265969667320897873671331390827506413220018764638084517598469090058238726966532798936040866560741569351108720322200825350095570137863819941818353480138511701086192085946341565040348577674644424897067034407787299739308721350915482293701550673715259604736580829177585499484013383114278646784634978438996438409505961001203335026222920307253425710641029230633286022801054253971119035679039445252782146104082884532545637462441040558291473808508823495204329320464454775684348275055298285449768036142436239222152331163630126181445243741883952129251744038695177807252647329069883466835780234260515068212432707126045085934578802384822890655324253898007891906781032327220359962957288828522749749448131009783489909983048962349778358513836778801199039539669047692775804513918375588258294491646833111851838717555739558043801520224231504682825626887803721699336640425751232025766142151307153260883718688756217661084248961384757310434218848843812814133644533062973247250983725472454183921806921244662836507068904999564970505580911399315122763481337733214238499251482840224540606453962755271198100573678795248376381830628522360947303081510278901483338506392500621449507729862375369498000331201683921406569558967939451425380375044209522379931017264118826247740451052191025868464407388440471418209060869660693032345780160765823468765186332607744304445858493874290789510190536596334814544320115136469117294735853674727882419884492574391408057593321097592429352312589671542767751251834116873383877221954218583783515353106152874286590020649540283568709808459378006957775175814064567742577065669088983020731376124807689823496452493341182706682631301709817320741470677799346525891367286130246778138850474687539132819698038989387759880408521091617581642058392840952973833747930471411599034829995204681004518337365185612306104165773440604749739660984814333808841838837778363449071983782369220386861870031335009686179726584720984656953029101785723471821736261788703386212686958827251934793356352300008896150926402108380807339054678507939022668482538804293888767045993571933919626179144472572320798598450879049302120946807406325181113592622426837605102486735323901016765170491028655003289570335416333831460322854693722076176196305648825829275121529183854845866708046313954579461369630294663055347546200473465639067857519732204511747104914944884944004054937410987003466537335256914324742685150200560680086513610133295833799116125123319986587734438472775139408042537300760134574153874533157295562137236002050179925920593561528408137647494255906906812836730572704187233864467746491879589354776237443926740859554685698288502041968738137590030088033495665173087693326086371868783900595211975922573732984703554573109116720097667065008277959150477643607793033826940892691983386393516997983388621807800643695203819015389917318918794038662005399366032067861850382506132106812058565149724331551321249292068920340832858496701065829979117021241223320570621930822512317756629874060600521824851642731787409793891395303109192498291208577319302164012219660535167114074016810490730437667596478158454458540337700588502376948978662073082760843155034465959681568504632189534993818179825608793502514940643400487250029890008229984175655399947857724327281737245558300073132015477580648615715268883170929129703693171072057442758731871978262097315031316791851093561611139933718440334744543125625425788906728273834249206174354234857549490583510674786747159608680058184054895801240066647209563336548187983615035356223991453461449963324971465200798439295064595006646426784134890467767993018933226626821390121585052109289072034269793650479263693558123142187103229931654872915130615466700080124308281767637078716186246200230189120757304717972251467935203706550938558604722660791804824405958388986201066228208070653686693756804235742279689531820147585782275162244674935011019303733674752961944792036389283494744090997714819145105128526636202439333642829213807443302764051370390334583172283405934723289023212836671697951280814240180559388291471939260093034485181002158819522206792195919520339086354145263242198394154531554769873635187673705292865620560991256158389999303643937006441964204756032519067954306828885484220786855192731519704000233886470889900329394993492562497516120725059001059887993783955040258493825467700350205908435814119605549218325660556362111932344165520388750769254482299888466921698824224250275393376090701786120759562615596248860510958264189469028433557501304054149964383699017448472088633686057805767418299287838848484555819889628333791361057154777194322099294492982084717800302754835248548618367780436876324709377286591130543433893982105746218926160416504188066140212734292265999005143081363256583567013490920739997191951894440516102742080531130939959972276705984078964733949960889255759670879505569486711423203911496689123441897317660699203896387688143629988264924469059867254348109779004258937092367849358737195297071111709844766225403799131026303307791034656564393902236078046537086471777880914920742481559681295933873975066765617026061210442803981645830978309019856246531863976322540216568389384304896645347696009613102562148935139528250476724991481113594856353122085524100729088357411047693490417501485527566682404164755645261883800494149461499621326671589964269658191086806688029533733091817307833061064807637497555627741377024331278046386587335818562806516298822693962056457812786709222645353969362286903099219828809015224906248497236613144230558061852959911689176374268744826807356678902945212682992644944947561384591126129973601567858954894354049530309418206094098520869544563147398657170787941923425894959489046158358138454375411555358548133934685472565588981592320794072060329976089696245672170481517086816964660401384275509777205559421354424648561698053805112045770420988002350616004366210722668078657900823740434871173393926242270486232454758027633845824008898848241302560997443975372960941414023098584891805498994267806294556007820511877150476335068219028933766870752861106923138610704066034269853223306928240747563474574771044024394517158193315321394358030788091022445286381385960009115932932546204567768234073564883275496000893314703948569280061643705596769938311416552167886817562732957409154128173396196653550704265642887275744338020623087226215590946035797172910633827647088399289221955541261492899021876770497493140848120025491777254917756639901922117686613916071989789267653945143046437114033910617100629241537262604966709195632952577202024077893875765522008099517638207394213732352133319045515018459685403505325498797860967737195857187902150224948472905505522991944425726629365147330330372686116245066498570272401314612778230410840855015367705447583259590338046363589535849777485563794576018305607292473724059429108248424590539388237369295221275734750531305571446382939967353639777568689806865458712955571690794912123210677399884958178537928586751777939517173546097072198566225231220696596077910847971291216640055947501214582495032788761830590116573954695585767870567294388513718884892111059878904472643411764449605818170426230278246821604229349321008394685646459349604342097736157088718619042086074673715455614535937280701375843678081526887852911345118628576280536663828131523433601924241154958497431073472857184396875209166203768144749616407041856773372397670557264163542618086519649180501923466840977183875614748455303700868909392704135235051044519026166275191083118407015974325566197858030921059942303552430387550775260845561572636386494851366957173531921979697582276647433659209988051162091033271871832942018711061449162946730394705078880433143486305252879246038574662929243357791684293303463738141543017744781328986102147125220776334160719963555483396898886017720072601634171448792347848342530155152365846060457929878250478527125102839244610132995496661296681314846106033843620550580783192403748712659149049404130448685729575584446918740867036230349627289972107623121212555016690903082486394481588049816755825444745102860591283979510339442970165615829527437226637178562007276208514164750030535319274721780165618792136065502978502272706094025634349399841504545806804383311040209352229700698183604530336499722852554805680283738739421034428240775942108075394751864595595795571835850841346867572506545328194779096546376782843422971801244649656608306372507848915840808855033230246535505683910950405705520841092160382537905776419657744874258634114727997373125731521520418301445586848719776250955029697282372820819389113722105460734875779407523643717928592033763332477054428786424764204367367127635914407835337899288247894276112011046538165465642274140220096011568863061711399151755235798018093401978277578353962814841593828056289133634640869459748171961461807667957207352459046009040125107575370643502255396356751465066200706588280282367468974307469677600633270066789535835141474110159879846007817034025697871434865446076109974009858927988864570077779574419855592203867031465570408095635238218783598103164082699011621324656149539986063500120753355229092353885672318868604014116890792088221640084792654483474833696629072979573772961178387964489948478410091717444399339772039795725400884476381505174547821956798595313626863680372599119503763805075788312284897931229308150996980967019663474550301141728942005567043943098516780901607526940771964943754882967517980384602417182204393091600791854139832118234584885347646015293418921505547750668097591760660363881974177810645511610573253117659044242779225073050060504573753659868614267764174652546903828890110350226755637677931619668115930279602519426553962335724004459341035123662704144154746750749137224167785222917358287213109601574766017689361612764093525579547023065502171461394215769554831413952272640920639859313900754250668424146129539476031886458510985375709123848875650582356668170768322363589519986251201541845347896229228697091837779695885173263662196455268708173961593518402251894816787491248028696785606391697740123023137872155680374055513711218801900819945732179459735557052364634590484255277657835972215223977371863595362420091848412415430138720430369014134524851634128109752152759769584797927503117794821555103814786380266160288140918780138229407187446910091827840895066719112908754753325944449585619362513983740026726546424740638813353900888003880905729160884372549931677845676122967314479297107193847015668995740491489650623753411645183706333647999241888018607187671974925974721804594060564846927090124110923994998150013385521100894330121230040578256326723946934072765881982315083758113960440477962161847972410144317043865699240158234910037738917509405229449500797354946734729490663235578601730961427660810060595284560588010424969124268649977769647659943394110561724753522162540321062853237342771133012441522130611336060699887168897862799543463573095989912582739295577081787968875237056158382612070990028595077510617787476136474915151038076924473985239972545294801601344565992318745710578258077457844816610432043356661809264696852317083370727298713465232969434873664275752188681774362619654709305943206038374235190631699084011152521501684072022182461661047558311083834732803938145327665100647968761364891000498151925198959257500089325512374021146623245483853440290207457901432154160908025086614831411947796200511519345228373943686635224300224495964667452618026259664689375909417790609237123201267131712591469210958818173343549265825235592579781081166935469061793057519831254847747458320789266119338507543537143965525235622842175828554206828537156718609681745563576016523981674109816613167488299326072021437794263235727333875751843830905312743494478509139801412818769645965373995351730002997093327690627172221905747413333739464979347139682506764614615816421212177085867144911537719957907680636760326602893778488578066146141064309735138638366425222906084372592177699454455417447024748065420753500996130414071987528848819106234669532313832529526291657331891768546973832103539097279185437830927636770765564727866138393837193003195672894115751357846560535541919171888283517406786486378190691983221830515194931145440316292578065148848932008556669843736463882074956023815628759679466369598206932976510783370236383936470509152269964614584678721425605635180795762044224681790740323239172666417834291024841953668031524732504565854080789097935512463725641879396641018740001106775721889067037949364309996611613905331656539520149662321989079129694251214540489344008376841008019675217646379434421408048236319951415012659567474572351150325171520093767671070967426290973675263904005677045009466668334467181325346544502730520009494208224607804410815529655965672773670634724468608755445587823184918355683389843472113237815451406454873115231036591698393165212908190437017163453675502693742292279601288620848187647062857640603063500406207543442440925318311840511340978355708368096812951248884156625163092846781417028995676757596062118810998563615396149510209822563095507213208913246854210547486017114986840944606529563077586633629527129881537798592311678257448199506220979039347394655456391637336589783694411926976362040952437378320976851685191442812498105812500192808767466961833720365579007404124244346198428226295873107031545883878981681870627658453987843856939212394166120971518619387341133873349447887396718347647384552551664245596211389761324496353028369475821495126267059502344684827930612789903183411948437025209086386112770689883589983377731485522096915140920630443001688313975887300557106686099723964022229075873685406675729561983053322617506345130552615587475578857771755756797862618677344535641472797762254609284584033750092211700638668179511527935486728990088225263030276740521312522382543586491871098471924502513550631506262552291312558566286316364548867226667614369657277277419265747655949387978010810023418407871523694674555751887268146875046036796141172108851874163516165061144579828991244215090852709428900912893896545832978501568302407335692142499671119273001039646731016061331070975669073849905999788323151218605156827621512302944220656239262626699282768053931315121772262625798200905585135172248861733097952347820778992199396150066909408418803607225652851028385071102940405104637289526085139546883201265230685779984345561578194149788205010784701484341344987432404784869260450348066502119451634096457070422479847095406925964984540916791856613894717819291493147903276197630632112463871357015405986870931820335872214915991625681641079607242371288707925543995775011632175860962078073325029927733802845556809046429181282566758265811605091905840424786099340210454481906556906256613264054767433798365041631676060873436883895852704619172605486961723549960569649361862799787804799004306637362089156104123864198336668858502794821348778257941912520771190313349992518340554935996066628647579960792884126052287773240717657858910674124846420522227333399552828025841233509454771052001668341046048042456048138031826954000251575738435073622656884699707488374451536504066976155738915118423839041343266658423873607546383723387170698416695362411020000096629686170562004259420522531070932554604489352494929327402479009964498054951251983352297990733230671823691588505975882462464328578130822141549371307769805971211584660107094485375034670378080220842445039005923094239549158887909409226940262336597389186112818359854156769753915810013271971700907260502538157461845265710488651270410841674401270797571102336507197580180592807573894502518889707143107847040014422505493680738305107780326506417927964783468635028002674954984428738402822488473593092154307598223985965790961104367563230285425504040945248219329465847821371424123759027816433902640185105520031382537130325290447326228502364629036712440597910055283102474302643131529384292075698249911782108754793499425576436655235458213817894044914077047570916743091977014896697567003970888252350997758174429450515788417204426159864199544037576275597730963092802489983357187183486273433392287458373105430842678690541772397637095167543095962439773851493467547702247947180086595358868466239263479184700829500781146866920153545770512256602876397444125615830805024769223824230796960488348507724540527452593935060380394807133939968921153246453900414027872383742564068973330449588800710974206269816106338285959701168073929220191711013189081548340477980329310151435922530613971319963035122081399553011051879584072197793058599589564165476767477040942388819763373793830519716847439902228829738960010645456120435861378461480204236512342998445141099014294296577814397978226014870966284871735577272420748300810085196404272458573202588684359949364765488063286560395004572519318086388496027688121534710193449889817090393603568592970906280460172970004677021870788077527664402303450149646399168528453505636272848816130664653075101163246986431152114674985376178358434347196112763394583855474207535949767733684106784595220379719994823047737827933753516458422068906887112263216790959822899498276928179697774301897882341020530406293882966792958767799634341235155934456632429091124540244670464983714071397439084651468723705094422427870877575754315701257496410890227762287371967460822424730292957883507552902409710637107003412694613058924838498615934191844395281885934164826106166078562157475745040950742171996716276180640688875449844276429900091986766264535269764770571624380226053857305633021843995109309512169884027839571730176679198508895813936052883869364274562034908135616028280645400721829614180237635211718802719904435880171365442205688287104367806456865431462300510869028864084753026031081288655732759698963369750347898660805261280049499389470406955559886257892195963202229410348960514503685749580800282174877767734718250137215675424116864393588084752652787224202990291351292978336018299992371889853723955655351704148078498756253712695587885722856490346023089483502245315694972259779384769296554606194071403103221402330535253806692524082626530101639991656171920436323514336077185372207948339657681491830211499983222331447796308791412084037596810101825466086560487766888147483967940011668619337169857109159425737780127919906438767934156328122640056172757982448688595462837237253945448780111979267210497017809512966700241467700020045052626273946103124159584290011619494587055239123269532818833442302078605987599288429097611138359486511902249171603101864612012964384055080973334937678144353966604583758606246463389487354732103457220962170403700580255047823843747955267265033312871367980615078393562806155463364034531551517711547853060541421923975347523605009970258586720643271480810837907103239675294349601428778069087688467408355533796316887282202912032167594991663046785422208354055276071520077005093794746980118962827619147141575803247938488105647182391414692500885519942283320484526749892088282054646194371193702263052246992297752288419920817350957204407927342937618975212781707208545746488164955239600589259565774454966650243152154312525568372165265808293639957911504648730863953988436358138796529830009628509394097032642463127923293655396799240450357107314254076283434143163890265859977042079737355754242972888917534591429883901733427695386957054349884065007540857138582427153165216786444926237356596453249637364554064343232067579938761302942158319106560746417777797760715242425348138516622250665470322722453849924121529650026132177149822821132221276774348288883817871621623008597878507234446208202149576828297431561468117558399876711466585750772685629490276198887332265793195657645401045209279499752018350571658403303072489859861418632264338347767664119766899015658737730193743469540164189582045870112632811209327396263950988981832167246269667679536893943130092032059768538987048353881244593317217392787190753672102456663209120956876553264914485504675498372907051369345613497716696546833298954115728978191709669856402816597695366998187569042921615353349440802176490866491588620190851649778713490315812161661376874759576554250444334542863763296633407923751354958091512269254676233735264280208165875431801716173085040496681709909029099126106065986779007221915706057966505446190502935379021509533516353287592864160199781855789383083456662913781738476715003200829827109001621377346963879331332800587111435402723671026697671870275335276516568852163515722588802001079102154903673441491511881329844099854539781064493331575932873823565356120567243588835360436309290676315012278364652970867404535901388484505703011186085998542667225824103005315556394891842608719052779763950325016057336587623004612550006842386928141550490010336270297205704964758058790013816850967129278594014894836366226777108008809128362132540407934710354468776048037655673722600955408068778219213086868969156616012805217681825495868167225381052563235346206936221719589453232717506501697306335326415634892048583523675715648855300857285644039447817242318163412122993897062259287267770128421483738571578711430345309206793889202990241287624543206613851248623554555705965499506652597730860275511139537351787028014360592591283042144518945299259983248277538949305300077923423621820003215174358931379269009620596577228382918344543587268930267331175379807473184791253602155443897217977434927122566258460593914892938986169193389643851948789417580545181221212225614525854955908645225203032314804749218372109815188619042519969463295447001893582182104815442502091719469901726925932830986469743652136492845011843729219886963408187208269646541511424614515987709523702845125205860101520243780289750455087205411997428543713039409559322760946028156423564586962280877798325851801689886729509938229304474029350530423451276777212607912803526697213501930481650417827531453965370182338291524547731580492316668686865893869173338257203356045690110146737056857337697357547432336543029274229898158832536970826096300482630023092506148959145194772680497839550937736147530704043478852090222250142964926138752359414348727732921682571235047249336807845035893793191593573196635683008621208237625752192237481897621638616874251967521080226228942419566468076971403837971727790884672175776496699127147036192356459282640491826914777096039353617888259273070342382975337451059366673374536055458768887129328613151812684741944422805497563429456135328952603615542027502418702662279061000207000681174074243158686603392763945156372430377971041122314079205533409743064384267174141569686422261777556930988211151127429169878096781100290377283345132135200111525296756868192433133352673705810705424574441769019740413219176618252798048094304853937701186854184865683495903151245419687327074879535009339279817175267343501555940486624934614643485860128346134652408284596633125842206355952429053136843966032954921096464120066124246647751413604798871467810235788936561327100714555390168004647658850102664590090481870554003677741776305879250036334977527701500763282421928918788191430480212274724078739396373122665872252834655632599715264489965429929176325346448485683296279406622415437567544505733238008039976626282119207025136059078935659940576354172361717402829430432912076472300249537276451663210659439033905683558495021611358207353092601838014202061846834307507201642247498572356650017496346306186670880949002930849641496444000513251461244082943623533121271974491321525222098605544736956190002821110386785026173726690888305403782851843512747464749447569811357598458598891845835186138729088118486026173453951900363163073221534055202114314677556185135518514561694546354985970001364717150962938945385463261343433202204799064501590102802570659228775250915459003848364730942474187918837953211700857171057346148858459897105954647404784937544574979529062913409316360622533774483342076324953769398367250663917730604006532179568205499210079744696841042846629414501276937642040978877710637326825426402827690018637731182305756334867219347064897978280174027965401516317129199136317573924811657478978197946717258885903435613477868233955750353192551821245966319472322997902190588865465014840059644811802535130207531894687905317918472310391785251083034802163763851135475349523018648925899600412830319363358937413604547911060965749301496681738230004114270899288459167518429836898518715480260107954205132061182629542231419353136872614728277894145923778701689385269732086705482674040066912956263170630013131119873314614507676738411193289194620963235080620302464805046019319674256986314681719098006028165480787608963854274733233024048151573934632767829584510795481035576899320418211718650893587456623743883741063338881043324445125184061522638624110387043662488051813676694296798410694685577542959690618283620211975663632464273475923512310191020953793828845159303301719589518673590893597484166335417570089487294999587231000975520296340992342437314379751885549039782448031595246979666614797653305288121698525540335530421623007851780248127851567501500304982511735324882148992343435564633049865108757390180801299364314185466604564932038527238656669056771777645953266077592466179079601960584262222161661656433728090971061232101850158753226969644893172561615420768443774967284774162643184912427538710212060682730165692595736850406224551968905105785053899957149431044851981656860778229593270975987813205890752134039381961090196218994891299665815246740746738695926752992559297486609704641192321165263164774024374533109327461859987763231343274131264271832682473360437341451079410563417816528327417395976362063529043720888755281275124329122113570297589227380089164559957389234107046607920402237728692655727573287475047874216193883303330806739479167517178908280960452058774246098020138701488607794374377403051745871014240960855575843973640481739606705199748371803410170802801270250017053187321083877436172240761203572330855114546026067973495069071089261651179692838065746128885041450385569137714513165858773976798610449065152268293334431212387329302813549537529996252194543417626682402367199728984264036850779446397150000054581169012446340304874548930645986487052515937095283595015692116248581358992426727837372545836645165393213848764877717783331967547145169624365173578612855524052167987339399371070386437902126420949536510230710503554112505877201225604745002614291927149183645881147330790441124352274022011232249809327674236596660736094103685390714151750808559165961667995568694484113043973889187883504027720184681723738345664372009616468143554822116906642768447485633311446835887693452974109585598619938076134272589755457713797064375180547570278177341952022700086963817296969650994671336420625541926751015712634907664105481305284801155806024950820323581178494720920054827949591362701975982208402382258062280589017297653008146092595376446828708671698754156848424143097553711358935037257518139808237100732615737676362292069579948319339500012007220502162069946076830246569435633978359139968360936867371248299022379232760341431568249338974841794465264608210944317238589426619770302125409726084151814102755295507303138951820894705225823520060421071719238482024425857555259223740704090458542833451576737284561949087826489481960558978007172965980334724157087140198460786174943353552012344487825856952121965272570315390620964187804803774352861227222449956780384666791359265190000809913767684175951641057038241154145915183115069621924786404070758013291889598114084409726177487014052364247031974722661147000323879375494051798474244418298395878539140599293010449891470247057492800583713787152011854570625993374576029819481367571216204602637780088706097478102209311098123885737268929127459613353164204162584937909687015997092037764096246138310749560397911896989438282175736574507618634196279695707854015392515658440706482828913108662472512430381760718305563919036110356090865607601508412866394143037253209902773538020109249696364154710584127299421107466585851110652674394112935266282130392654670155666189189242337486494006730106693003720396399521073688249679219442687065318357262260814894402844413067400294011889971928334716201304257756752713875997313322969581563156490524799073120886655467987358295227073784302620414824050185523584304313336317654867108302852926205662147083687516003590835642388706261267121275516216312479056708202261950489804107794986880235767097880738343752320242866914746226281413414352110417841853598664275124326797233964306560293407247856066899521077958858142504309701656092082935080917840567721668648716799863488837028042433723679443317849214079162811376274081738102251005751724339516812511885078008507644881014163887952982091009697874188356627362926946082910483543972899340555888148794262962292538984636073921018928005128113309765612033256155796489476462253354204859321582843592342453106655881309437838204521954906261440363930209186008614395057966293828109791997797825280230670847395383377132164339154010397332281838896374070483507387727187495849947758326691578694601909565535181099542512520949483195877696607204209584426754852460787798698955320432984679986668511791556116290352637681781496063274704844961459712580405483813588572531201063276298015644696757623825280448219016499786518505878327251190689282247475211023492853621156190048932257349692506215573965078110403302098921187231443262038821809254023548182495657189986434694627281418333064101970507095804953030139836882397702952686680547331537192991287733635763654701983409026283384507601771052649517909002743904798666192895543409728413643119401790307226507725318553178946003029719322604270186722008103435111191712832941296189575326723950913309619399259915237488511842278290748472818676116080659984230218426811417214832611861957622129235761243303354588708071796353249500944508669841372848525179451387595252723406706279199863217168944627679996164247915626753352777023858719748849485434843453901505512390811451955170024425085201389816962507083596538748710104692097905565394170484548979525298641806754890995377609074880428699348567594559870080858715257636531280622213661023677124913005674581577191151801089867351223058162886169176665982557611615596185971731655848991408478547304400272894651210012821615690024054224002027367049996755920183499278438262767479309834534012827093549051840207761435692604938839831257074787747722127213596777516303813807121654439644563166443493206492646762702409705064144812980036267268066928275381093640495923644702132021142026190985220761003553577440652108312748517566931687504425775459070193740708274309422944138561094486353931842923993338132883904177040217481024655266529684401475585787843917162926220189668919884233328933958323339445168151837393671854352444158247130336067751111277510960853756391947225113126276505986764347743051566406367868592315619467511515120268680599223800577867908308601978098187474356239262958043923088219165664916209686898051235609344063686589170865157967551498659287073464356353862970905026291123901747434723882378488693177597748395740858289442106532873952973748648768302301868703981943064240439837357676215916578666912466755109279482365332377159757250165276055934818705733225327515735975023362101189811400645315243397182519896667630169622783454187531791743418927058220394295306950657628534268845732385248322582880491616255382902528824894336739345409375294214466966424537682889844454116500686277055890991322551657279071616532394659697911237464125399362624254837761216605377298411444563495265469602534001549280808813546556323780558059411420292828712319452599199425534612197403428346204231442402471960970641003577624100574436720852435617353226353635990816848736601867211974300469536391384640868519196862809574367722893408573456236299070695423378927202813663921391741070142923406092544796841502083168123077727343664177249873422547572922557448752833203785927050054550161973367410067780933882623134981658596596182207463843292220197217970551622971481802525348709257148331194929450809831111580891053784698293645064840550472162785303847057747797458077679948827762078164313904507781430114144908142995141815151145940255657512433559241739990911336900298330222985171398420898752874722137840510054203782779805749297827862708071510765533926766662258943666180311859045384670266924701372418122869879748076835022675671255823481489238992956814840948017141469832799515402708522263724585744555696182571479236948523298188464088585665097456892734844502893548234243826595932157294588357955191984005555587785750300445250586674621016551102080280487213127021693230949980422650057485817195008877938566069323235951502398724575981109861584799226205882647423951018279101274771563192568783040861689452723138980905716130901790580803179597849627680898744282972207861015109482185134148162999243657762659335206451376510419311123566675874182756506811665959362262393296509744556571400919413580741441652764500156802572111533067329204081225994712786294204093083906245917051908015000210351161125184610205328053008853955805315042515708312641784174804682648851326567354513985918608656290083006865345491414110655852404936325890539513765954720211031459214274338369250096576891183463640026074983271495714345566039995086912408472765706606383260035831488842253356905375095564131042390804304398038170576378244150205697881593009629641014049537463141809096778829976115344804647327643424058337220345494934487823158820896800303266215462798214308835067579402334937949289337774528406673837496229817187196416007129388356307633977457191907966788024952817922131236196002949877694709617067400897692249274610675098916429420995037906523219846715793773800478294491699140735487999917377657300654166677511186492438801699991651113188975793754493353430154938220073389167797298339344780376799288017197321657260496903339612172652991583156331076677049244502304344833222668165898661388640516872705983676353861889971718448238723540781926023458163224841555116804268008885994788421929075132791047605343386214349480608326378288944409757480161201541531842871565187044924100648486987779093638043777092102399553096269989386637978452745581054034861065678223664735648967594580853485646645639379187126151467719737407278545315117400678117098488599286881981963642449852221239803233318341241612023211531355906966974740367378390256441669170950810767920025983988552721729477614523656388785247420037833021796549749915001345577264773848324086390020227508114794394779710117324825485549344136912788275806769322764269312926478361451672044895381471831879142555766335098638762746622340742797235157618474130148419561226038706652713603572764639758022328096286570579944094818497085628490358830220472606978885082324056660957159809972362553740397953876821920854684935519430425823899179670867268047760845947572675312005338289721859737330232175243103464984256056704993273450527489937967650010185387813269831908316541147866585931179531085720284681053249780629108737860697643110139505658923640296722413428988976173185221998666087113986241845521173796647042442964952115150205558410586782136661422961785539072552740041468464295640606425153661349281967349865474869219387620122643342527542112363197420389760095102918593244269050919657094461900333542026597980273057928085379198866520553516770850680013651159257042726375304094775137238668865832774186571217582083337262700623610500903519291788756859697654305041188504674050278902879764248016827666790879620740014794637716426411334269565359569348111125340313411886842206562782672905158887742009208056698673978701284877827295588091859391794523683214607977400702449249188526041548706526838143189262458759016718071654329106323539537781437714845007028471963136737252845322066318368623975280121332751423267877857810295186309997750809600979230838137204981506030256595353406438693869424948870494946111393904502681304038147511930899563728220890314480668129412604301800866053275207280049062864036640660871217497148865298703737760226538087835276837649032219817656776753790700004363424948339472267717663677856290657273789312508823504802524863271379612573038477161733053557859150367641795810104583584800725572933764017251376167999323721270209341238546143950206790454976439619528457743074213891706483207634438315540714056259001241571485770115182745581665047032228529696314576292609108386113374954932559701081001141840945091822424454194104515268533726639091691548922123114033031759433315299219710603426863222939497104545982304717833923123545441572857295213671670990184710357607409329599492035649951685030059019045578382283817102882198365063653072875253248089501655376242713057810616513198485737048075614651622353556292962936468229141415098465261662185494905082173252886839007920815025998655263606807700623688662354334757606873533713168166988984976117437706051868083336656552927712451231265515761623174058270727651468544643630845897191274949156941939767857390593900809278492650741782480953757234436701144030943936486457793233383293441818330574489502914291717597718616896128226241841594910831267203890661912055898089899301464038615175510094678717093979240380818521333288065316993537081726417996415501690497433834716118737543056144376098859373278123228212911683689799591139381895933538543341698765461447640063817286343838172333667580338959137895957214101644452098883330674411477619997262846677910113726659166044109524816902684403031159562233480331872726268646667940678522031800287262132438331729878037667125763134391243170097307557726109946864655618268985870903167954854022046239846005797022853195634504688436882435330237326432793686386451075904983350268087321119670001584771905997515416029739804410648763591643074504575175606989286178463609399176284717661529605521185372550861384404921748405618022713695239731381600479279178780265960827052355508460407213667227167220953737267314833897298739267303187683747638417602944512110064077761307623991192979323449857935410134235932005185561119554904506607828243054720808680321975292194998604353458899891045364916393357790661375719514406130464577279072609298546332045346196770826108982775412544598198122958460016721155260132112976165456718510093871624648321776107048471867014984937331507371295486455627075518675191134752398553043553073304856912369925476659753156497752654558799503802219981973770979732031660111570620274378575525534216198631949682272866829615376429371918529649665342997275645282393826991308399679485347177730472027253508015525567842517276764221326812577074615984110218102698832925219604929176901125943914244677551756165184050998352831357510611934569624530755594209458696397885702579438594518395691999868002160260232617174062039570553751302996737033437691315740704375744038585643543310235834596937054274204837887012348393810378770800539906159889626708356481225162686307508545521235839799746437046440813846882852666809514733178718550932486028322919441566559995906527064581197669026254702437305303450090556578590731607664216469921889610782999520239317807051146182834747364215476353966621822306398508332206139208460479199658775323905990027514502621685600254472533074406272222530054717634487284497234333266726674154955143190930848609537447769829351186290760232090153628151751000405489936539002593319641941981178922482436859529079815979998047937419476969515081666380558160432946390450963578722825604914425081071624320677339380240538235833557012824750610469110185846294465938055266534119989727442516819533926537303984907881042966352271578633623958223536851007854246275634497446215208113533238489384432669086604971031821512454814667390320730761479927811288501331434182939461453149099088966263654638266467716049560308942216242530814284543531454590672976928431415360304222871305289933521197384601847780245824557386018708135112308373957689971357315904439883022530153714332852365990421119286834516785779042617199165794140001780026757139412436082049036734569356875828171373721684774050670722301964840403229308266568216310299305265957612303397827179398049148479376342877644011885827925664579133866937093640940270039108476777390095664724985654050322902213636548770533778442273296142899981743465088781781296757362785130675582349903249032443970511988238079326948135183556963922616228670495710132688804619030113793114053748749335753653318764352771293864444920298456553840200925255569238638036754421462500257940441322361377059075544612032585629719184742126428149280734920089159445612292632922788126453692110374675161321191865646212488748568211288859891184026132680113030691860336894971364747847627519972543110137838878772458482224417153587419736626320269729106024310305000716511196819092229447860967148117269657691898154214220132230956047720405210483824949074754908075400213091442346187905751200341226852374377220283472425048705727619114622316017609352311735963373112820425481999897165705826528679805434711255033973715838632843579540849074805782835466216725291439191323003263830614745322546033161549365182069061180183888646622405024305921002103990091499205054415304182258630130841852559599321600449970438648882019526016386619674785242409369206831882105731943157652872396284897493567080365711078131157024671087928768884048028588583900342813725502768728452602877141167598433248921626276908035922703606444354935659704065465816557386562544416511791199256253633110639199783177517882164991729235105550580189912289454708423561110982992191678523893589144474412018313388083165872195581310544544648868291099176011059172110669673615020326049386105400401916182607455927894676776123809392272547197979173933124269319314554632302954288012144588340432800945126029966949285188520677345147035257573851071455646301562099850399515410035326662666011478243363002162671909126374657700398715448193885552675148997322977903009376448163350799905776247594665268301856496085064019990355158013306609752019901181344400262610574698028633540542685653412945258022654181078548621130591637734994066021876729659622244006011806331605533443823731970877256749229018720147232784780662492589470919327047195420529505780568710782749834821093697671268694718678852823412626873868150975566582374343288100225470791498669057376208427838690899284002973850875452052418119711089401194796460345773584352780110253625528587273175570135400768421734457630706754354173715540618610692595719859872543800904285843351539794070539527031060868704689599104036717455274493212465804777035070656006905721567531677906240687408123831298139454823760784581083651464980701703271183677743423805529902301469609558917489973674892825630933365125677270302605818415127192768798978236701028342695881180866456701561079137674409943562243128172855245761017643279853652524226499222002618314027839860953522395072247690342113088855764821973862238144592039703519281446702100124166877006509331354907848966686160591710066483786134600753854687086627127186354725666075322633666162306261125531432075486109236093202134864323008744276243102714358034095839334339772168257065745084346975630988094788895664289644995864368745962841829947397853896702536980785054663810944282735189105171347467497664396559135532794813793354443018256287503849253858762617335315118674683922689214022460088677929792418375528786732467209176002557315817197381188078328472689077703451980006061689275334319528282168296542600593912442501491006943869956056407379222251688519756266131215816846945748725925212016166620235735130188384178488749793847215411582231465272664070532458219314375398196392241429081625105276083954657918315077266050334239259910364390267551679099442312112235423505088369245164638982246206301511796954570784394889099066708464751635798719585498973893816490762216389254384836404902427641090907471305856836465017333628470790896984793713782666645313009145779699458342327176701863270673340268226027904938995783784532668878764632533445015441068066491812563346053714355238722198494411963882833535068422246450589837937219253597062233059705327465741071076386155034003168432744342993990669318818504227282074462786380606435574023482048015984051086856722992563257473202400084348184988901978546390752607875343706589489354256275210695791262996776282044299269457057756133906346800000777481386873404699501696580135745725058256929839474155025445123785996025639504351694521381220774343903639119496125878709714375026944699400348689646622735230879016366607758871235749181909272671076349722662769734083380827668353915035065068012698620835889073159706823629306808318718937776494071984539310342624736503172957702440381043956505784570537636926527084218442141753175004453355950261035175394409038648436184711307639941537815342070161452397164217560097679164421585992118509027150882473521777220761932951777465218951940811083916844468312070413340655409937590024802466232754945937469696565842621981121328601599551530184070719276481876077298538375959883798744290641818143580014173238410249489199303461113892213681861279424845285094475537952418708046963433427399171986737658111090615405409810323314036572537617953938874691075833219762879340959404421048516773904133798765286542580001493685260884074938198041079948118066290674770483889262055109585993031289647785982292774815952563500461132253572797220606269341596236183017172046689571795097110528114775354544948433315649630492994919423541180529618721663728222575365442951090972849262554972908349181014411826712211795707846930909419542834227730900683301151814944068453739465117468593854458422205992601482935824274857140727872198572430181436739825286086090592669322744894937434980602984421793449493920874267442860053206736555956414767067537760474920713878512007715203569870788817113517355126905168919788476822159928657098861823018357669989663316991040295365969324069334623380162433330199304502884899462820637932626162079183351518843339548945144130108160133620615073322046406731931291317710464355561832116692798948024810269705036304154570603288362213988814409478438858455940740462352930318016586037700622833575388077122562406697886812664225240936892901441944898113654067897175649445506549086493888623643285452002985499471519230572291317323129977100619534990909014757095638599389290131788648971476119228469271639374880932602125343433471822645114225125676040845955508281493219276773614691749772452642666528499902599282873612899598713721086940149649756422652781439960190565438379730379394949853800184128124173054354249567255026895952173943939216754490854548454809156044456783682286943360688061809159893736707554455724293582328000859142798876058677553418649549819198376755378799291084465748116283935033098861393966280642823987237844202784665821156644445009289857258810497224435622679717185633225510534886076802869412743180283946075125214854596808348070697183673368122180633613398960324755335306319521490969018278629873483460745280601582492439560310322721146027770737119901602623405879966207161000953989739046249129113200167375837780411189941178103529610910138030010384847274530755640919188878049320913912654258068752165290439120171384375397009808798778896346587795969394868721156756408106453573446194734377774032387027760938220429437665641787363639619893063675620247883147636972840457494098132284925205868172841479430089886001402832172752449422501986910330710729326580300215953138407039007833393918238421870362694656397768515291992229967106314376182763114589267650810199087180076241648338212960868295770705337245279907499681045383296495908819389135616020811055864244339651661479243147922344234562708310825754167846068439425556599960510997377401361631459092376460050177088224149313042565299215735306302655445363497397245669056525195213014698096642991522950615304106653179470474196781252927942820775836348367602661971603422459836392733155245391094474542393857086804583062322918748976287559083021148501232908689434588725488918072818880240035027375594958755575335541606667236681047337302025165251060505740826225641763983773595541827265671189999934404919508957412203276316820013412602315865354866778490206684759522015506710365030275122320827401475321632576354322547999689994429407280010386873777116166835417560820676724999538630991209143051533212706765330343320754650808992322621130642541915706685921985026284717903276193410426884014374218940055308576384257083118006752507236353985634495261154265874464881084466817755715489732556105216920941903725830842391247636282136537493547840143717105316565645606823354884569422952004440183008834748728003643477537033040003707649347600785615575892070376248774303933478675175245740052626235612286883608121427895737976883598105328678841182685327167215008758496596947771103936295626041053203544382012027102294873741377677597826526812891338910994879114178500538156944002215392203528361311995048155798638474203787570569161122003367568213155531493311552887204278032843145080561373104830087522521715015954076953240207131704959329827944750924509305999224029912402520612420446353040232040370068950090994830948854685928411704948921341462543774040589256014294299924747579955132153516475720106724372355612184876499544608510055651201376373871497860776987809275202675798531054154984536324278683038283422585171735275523928099750081204883528750774754847012305287735479038967864198530120972509346901062242807082264118495123895187782877148320055706170064362554079109337589274385040696030173826395796041755865268495240188582530990303977113357508590494466394573507886600706603839857660021013376186266009395784119811536645082396886005941196516302891847513473800295213778749293153557078248380423231089451248958525155719286767073650284472802260237198619103060800490625162984636613483956568372538266567988078643195107383997694851462074648031398024557374888689355814809265771244249439437720421841737764714577013247091347807007168898709201500882666579779846877708519234004719354093222860343312720920434003288466328857862575842409017483077310703213282518348079429763749960228588329496199967137106238273916576329153699291879181412482556653743469786838973084728230448751901429601454799611357421327059797959583473243773516361629753235920945640757393924105053774507283472069195277536919082949972570919337309226629584429220599346998848855407328239977252056358974149601755973735924871455881588491039684839905314069197975616948317234143856722090197459305834003401762058445409581816944117553508860396364644153720114700610793051170160321741322380418685631468358133081757612332030175296930583304549306465499438290198340810525601653585099500001491620066766442308215825254144984451784460939447265250040192008952356172936837612825102582011462507101372972054220076588951383919947578588632310424618644300882126782349956393464932443011723579026177631813962898523489061639475859551760577197457474831965761399020941631192556611490766792000737582060031330968141481837061929141363116190449926203867345396241965785669824916656734277478403625883410760560771927143607341171021648186990249940559115066137096170275721861095979014454498684001837993311176188599393347893187141302901706889665650984077461483204946344639260268236421999374393172308023745625001936411675722579973873614704042401372119966638417885764344625000370918537801791826464139494353248191081925481482372813211069160040163131697444527408988720470706600628900113493017645194188959556014810770639990246590701442702856567800484247847709234169955991759171730536653446542112812358172091929346514587169174686337169991869938238505899152575357998492982452709882911730459213897539874702848731054310452369311982154340216689880490519421369565503523589058425691972985040649508039288810950911094071918004982882794477018513127757422505337150590718095919532731488978070588572804765113169859666159797739349156365824766881902763234798406611486219182046807920502400080197421354045831921139636184671051070376056449213621562476782666874210749446075149641567831437183373249154856255886597635538292635921266477293084182552025635936552702645057354967682703479271161071122167664303958099442715383041942460577530882721034708572499713195923704445926413510805749575740884598967062059469325826466991353193910190854170212859353706720035445989195629993996315637667038100824095467878737978000881015918342950974664822089015492556473499751060978860412055433012034689809096180556204877332389010454422105887116310697563919356682877452925093995980659700143547387305993260274263025605524847056803017799151731593685256559100198119429914907828909369134945571599388383219851240736981031193930835575623344833114879078804298033848978825942310384572918550634599661801299541901907013405089988184519527374881681212985476388976673568674908884981588150591640103864834746231781949121869645997902558586965208506846914818898942875020866929982885281492522487117036822562198760390044322761166392790108980985491744085822923296126821445246748829290521527801109354331096122745825843675784734262259686067391699534503407305648413882781086464652202801982289596350184681760363912217250555666867107612571004275463810191084324445893447140710270635140907776862503022079685822759151737510221689743361811430049092038924667430142650092628818455666740499279556604273977475443357501137536365130443193802833940316207309488346275832686309236261263097958673312607492013663463620220092666212056915344391297578052059589823101702068223728275012474451196772905574475874534026777063810145695738087770641981125388914973127851173148148350874095641446513757077786187214778521287054028324648687889748157014454568781687843131526602107413756218989814884894284709965195957281601614190625618864054291335905887625365086329612270679184588402555373085499632741153907048320252075466602303471696050044948680077382284876663275885240063878276001541320607868314069103087355191347444499701699262221828686585318084276090271230834658897690720014655995550899111650899355134309003268535022848839501638694180772541613654760785291757350108466223088227171732078434500739639414489041392800940028701641955350435563456061180560441858396120443051021285108191185712326628145436312493837933133818291590821640226578177083545079500874437477279171725868293145966190181689047135351442976017783248242893469331078815249044264567479824638376564058781667219169714944766751709916156044785768702726241170958948856057479182805435029360255616162672492331700821974653838456798307240221335823960332702821946156267196523543100561048518489870762711480560921168985049159785385894467742623625107307463024661873753529651040193704942150005531097229646805621038383154986784082917285862498279715474232425049545802670160040121924239483428668569643955090791269003380341934184691909950285356985802518650536435293114527418362374842254227233597986121408427658247287416733062026828376558334778482450642562899306803627501995672659540823220981655278917807014378477032654641070995986193328773762059661589137431744553633323126454257047585336982624517953273546193126184947821120684095614034757510005508756914272194879330717958754131691740960203214047368740182445912408791276576308700480615608044438683537387119962235131362712980141176556872716440589063492298548090075076771404033333272679389125284634623353206101945608692105905112110020337958695806728950593391587194085494470707626229777668742773628441492945814050006885651597917423972368899107805032116792974271922058337330800099376981398453833296135425285559452342518939885759372243528416249619816046446559286408517285151283959287168976714695458508179745496040638915131393610120994920881722950530140132140174848019649287560625358974204248164548220735678425693901054185592534896071575452974287115129558280721113150999596098940404417889124739014069588307515696596031596531930059460813667397630961957138816028046746151560302892078964322344045028302202737584571119513960814886462770602198712742375989495768342316738230868748639578364169724668897236341851818080038093972726602582813792401425872103374553786429662250611953123265950132430489116663372822293680225279344904861328568375903286089187530201566120915250788815112216062890765794480124927505291082751448212912227891436214958950452133722002433108729139338159588347723585909893492859361889040959051034359805625880798638684249889138909542296293208558868004320626726217636488521368965914188582897582382051363698032138138207543174849328778570835135732370699825339904876899758194264107465980239344007099221524898985058737927904431642436491496370965960847214176244214969765309038252212038377924048316525870671975072263780219607378369394051500037397248850653668629500264784525714833583620233009437228008628764898285386238110411312368854521610005057456476574450370480520995430425341799638867961477679581741686452119439296214549591819756825026167325541275297112182056481681679975894943006246076360589636458822547260478045518593075357069600651959665869651685691639384255247026755842954969449620759650530026870273101913261790118116740878175464458368937044162083243703174899468052517079628651165860148835907139063125491837064757574579677504159245351860379170473731289711912799030079708379327193447433806997030367002125492914910708841997280211626896352600410438036462173840876758412835240682971635602745928374746942203057857830307663555385753258014251991179557604972528744442217537334871403912381139810292585952777580208804492060008824845268113120961473544875643814952263216078537594608155686512779960171278497358968871934137063035054823546284966937743953226161063834412925256566793906153998083205689140055845447603175187235804365443355488909578862928545462246544172363967216024330679973290965255984806788739840857291838473929397186564078344981561698162878594920388448479524658047550560388771757393089908429206091774358393477998056057048235536804302191662075580837006569315226782943647295978761298287127995305796463391290559307673032864724069447746378201287435256918281235172268433746190882082650518925381649284112714378063556321616117905236235027871316805745920746210210739745747274844695796106345367102795876975646387919162665273159862308392153053075286117120765013864277928295089682537299426445320593985078904154925804914150064665482315081743020785416955845602645483262180793961763769055346324650129815483216966495354007811682756416633273012611019338253740570074111564004077065871320778183895794945258035511444515062817829628906465331204217411622836582513570580599633073082267067559111301776354251481503254816283869951389393501003859579868534201196822629316263100819612999828927028546010369354513331302973273325889350566672769207944356603116795516963051621019178111903104360121644244496549233772084970275545817867766643027369302854670490066881275266117755256557901545783053682175597091190249890405934037301997237255623948055312307080855539984461335187734572114447435384143081115338271536132390565311653853648640985143862653216447172673128791208463383253068483381901540804303677043952637823871496333069264132241934719365997761157525979212468727712060034024055737557743287814681244700704311090033083010577907525203501709067128907287228454457022077788497982838168915603875360129310139243831536620445377172186020201199326038110014048714572050603309731553451249552634329856279560919169083612432916068140376083226700474234715938343801121526105414816052078991847228002286709449438736758135344663822644741023786307680768861176630005516375518480931421904162892649540760794951270515517581798839539222417929231451844371099379501907221078187460606642775133744763270968602665082035882998953673602632657816953945064424669058589833016375604794862116231767659375487425269141453653837347928707711558512471671235598284254096781887350410752665480219227820162127718092421625734028775673775964253401225679907768673041627451845900168547019815175803351640475037544245793434818501956925796218749868142228060279764798051377541771267427035809479126929938557649980478124412537446344588540445047509120706767155250683136794091946469195761453872918059867398205994613974164477688240683748570734474248759143040821836850433741446104341297766453567583335600963958074128558279534786560168143195720085735021451187849191464828775698931583428419366336370706957163911002400941766345934583500191084626778884615959695095297071856080043402345106154525642876421656647659628940671606064621839058565238790134059788532718058541499374888443274762220078443165733448950303893978881383786482584079276881861407357228786748034294654094358896801031651061458912550440397357290909927857610186556414084058040877039520769240075888559915047288408537673378541826559533478174598007177965985441823199007127042265621430285675142152484266288054159922773305074054016028169293224661307323936157670318705762518896129857940131272035404646467433157685446978738652273245775853565329391519603600221347445920461650808717051096572738994594381991446852929116022318207298673738497021952144869056508714633991659556583166871772822893529027152160839598989155099372723760447468047253709521090530182648806090207084007740944380264597968778501686310752406239432944765895212358775508350631943030991867108788341209801652130856826428636873610942708498332470856824163865430843307970374012140201586359749859543647548101636983474593834327345262350523975263514271940145124704572742431484001668837124320076909157445593923545235204895137796501846564034436275032146983916989217929097341010925821629159521828562147536874671486017333711260535210831535459609872954504034351761787604120687814035311924259018574249498651943710979372446395310994027284448927693709176445417515436798699977750249415607146292356767140795273738376767438048211942403582963808519124701871946922654186073292010883638820691037572319436380071951684214325088897640124810467573360369722358930157356905330973438580808242977388264237056358576977270535785172397815481776651078168035464839168175134520520274975749089064454336368793793207328322034872938356601689217005328666071175387494433779934108854893771493444180389730100577520745342874672757479950108729491192427286715435702576432520564891808858169659062820061359293021929173908525597179754487134423099793669523860272911962068224748018787325624578767410201465075019787455912433885243071765722252861259789764508836999021160703536076463387980376786835885071787435466650789370280892722431638037198023406593329304514558682767873847108055150289862356636717065964060501329696647784749702396907124745816332643398893161072897368112908962253309237347524826897690998421341749974750383773760604318165560790891505607263028548528872475793508810897315254675707353313811668889079688026933298741359306036630161193608754770650729764975663592788626080154674609806435015346167037011247715100191535209429349666250035807583705642687493996063637271939742482530095611255013758430676137101672719922836843858312154908696734541414164014799558594302801452180304740836737994057964641038790610823067469138335841002201501697802748286091547196794077508444904241947907222008981808608871400344905170892313385306642390134014330614020480997337727932601721716301793250399195826480802865594058874485146313076359447497731883354262362977633075825482470093163971318736022674618471895366961390771503792120055012394593790358864273390568642511444694159019228585765797285068710797018473098452986786734452406692652516892454398545699817179739811605110901680454081697478397067950249835565702313360042728511017092441115026774778579904855655413731964086137966330303165407738557759755208041408168681386909559873656638566348443253652168719761845392722361619315913344338729264334666163424648913335395121998330612040215835965201482775003561831105695757124553054951152913619365563458579175943831989216717883621065931305443905650989454914810537529526726562419841394853778345429030744632154524469857506815626719609543164947813328956364101651120536011823468091092180123052427855153244656434201418395588157946679353685246716119644525616856891322012548120429942875142335962676939602054492222229332198982340150879394292777847501292084948099100812593619842914206969036248653692214940689010569496702533556100836116792914228853257508182253479179322168552712345318450049480899520089268562819788386856931534539711900759880405561212514468123003876513209107640777036630403929184775421967741059875711223173483202129948531446162720979253598921520322191692176837503435643856372558978332424741830966119592352414334320491519708459946618490516873153738279180239772542687202442124745060314955731726553965132034318325170079461432540076252249070532645378827354433225797424567877748570661782931713693247533203101917646456604753237524373706134277298295782729368034887727009322668361448689926594137933677799617240018215070854721131198400777677227740154102675957243788773579641784325774880496258018439824079307196080122765941179557085971026443644947363429148255995258327440229171536175166622071956939490202330913565897964665831463866522950940778391716887041554511856287102451009589316505207902155166113867439140956938328928633057311176553664249893743244757508129611435391137635952443312426207439931658136777511753675838744441514971761984856115457176590119822173877326059858964316095622522578161602532800041865429106237190577210969833585936060352011616051845641902732604190419793315703435315282160835909169801195647103184689744745564369651689733359249646164589166055883315597036977828114644332001675216384993135618873061405841148392124111374959529842266606788204042636079205626625783641748465253404164252726599775806023190627867369072621007286577166263717533935829006135625510481623713143745903953204893847263517346222440394329744514568577450673581050598386434882288492555875169404046379570339522289182807636573386608450564925420489596670627672824278230726564868683119033490418573209977004114045171687842883124231244311530650666986377693044881376242754536752223329745695151207282627527498331704555530862205018915517498617574690438110715968864333820820500384256640336511941187290839140181955102127814759617901055318115175818648157721091149512434129067439895471755869872552147121279409759308515133819920888219293451647435927889932654426667354611922690826123904753161607024781297277949071200634773786930209077144737905654627252657508626241599902872391494565307935402653408306619042343424386025605279630023904875318993813180677892021303654643553901861985496146469592002983280429660555978382969091303649461822328806973192209099321852088793529531602405493929142570447499077482629196953479773946574559298259892048938215070633648381305261733593792837105850415275649852582144913717220480158925458267420496967926644742951511988418558041914348569411232666141421186704059718100284680071078386234289168589792869302075609086884543449859150727181635644178994563941455588733530496376526732252199868410654517109239718787328412854122727405343956572761154724024055601955651636313354931201179963628869423482925074648065830948420342041624578451846417765830042050186213119483721779080289681864576281678830922593631101492918789730103620204348209135366773005174751775796674856296114503557698734156007153636246610845941644012780933740149453356856582283974467932249628727004954725476930564172057996992512530182295245428668799776988873786330673399038318655050497854199175023295583690156264264158764660253804034667301784904462261385071195408024047351749085351789364722848708678710487696918072330549816105000149273153738832900594705546143649781847390857423846386421325665880975734398187959052771533900917725797158816846687807779350546516959810033363496945944393047585264188135087460022878220460574066860010083340422642095158380581675679464459042966275837483957741449479372059288337394232229704054220684232469187691806804700695798383884243736407856638280749451598812858044060664992154868615098150125775116868675322927885552943586801187530346853736270152471431193391142384662892709260778254870990562940865067868657117757714177970301508225063257477754160283708006065439155055266513253079337229599012071295279287987723530583799948437049404831855384445933389483662649491668632771264083053398149128615719812144092262314167513036430885252533782178076573778628363901791652818168973748583148596247545454403455657039928641647430058943549789133633148753949395296777582785768321735352042875205174363918513486835962557272967983102656571317341293427416542986943684861339785497324192378021285736705458687862295591986386401690542964760264952666217860036023897578929384944119596018992816765708891458694052980276018843561323007879948341364641248450929606801584274177519057998729690532570863967058851443409479620326077773749127589682690597535215800710160383171377923958057927149002021528704839053801236714916148715395295278113278992041739543737981037376458643283583744541415480865985250110484854137663605598436573131524158266248876056842853190773082838095322157907826278435124246257200347376529259791399664748415226075860691420561636302202325355778180484171398758237690945136505160931682276772640120117453262969749172829920680680272173169989029501186808967882344524470795919220475311791686510481844146745778456490649395270440923587786867649420289671828359371075097088130520963275423956991813400468394961510872590057929836597696901376107392765083065449574912291766510481395682591220704667100353375419683214355963125551610754750839302895266465416024182399225502864324227122055309885294495338441174843272460720150537961695595021813865522301039957097023039931638741772752762279647330338677859324132339049150616349087172748423601674075192551429010821314457496402832653333897600887792076526170047593759585748720764407849060789432458201750284915648361510236972160539468197629429045642589471024963615793319943389965060136595515937005987661640587730554190823989222889433020759048953769577949892545144768547788516565891102010973712212154183072967457168540113179868950541118248149803412267539575143246351335885429480340695344764866881122477442936810325760462834951353773240296827686131145386282053436741072509944838195960306586428565561021015743333080712868807169198293821126067690974440475624671887280692246456136003700868316405544253417147324674765856705298379303050377759581732122901009375840942308575966266447156175181301169640735842223802762307891719781956159623910271119258810230497278130649023948737567608141415944409212702709696065364334878725679072735339546734939658578271389574538382508750061422998219341384661287165988039306512748113703201046909239564270174750603692785037800628354789984854072227415476556735332990354118057193224039745019161596552200676500250648908936793887159428609880910757573023482043295298343946827904786893411435667344397341989849100242956469842666249668473224830405711859810098506014927919195739533990411802181911753098073099581221213842967231683831707264025789111414502144266414794049571630283082784342561759770780935896402800043178597252267073925453143454880110507877430304863844416084861553125474812982967427467282563486480727369862353578075937970087018178017595625651089555793935239078147822610766183358595379840632470779338096683056909928155933723350915064362261610023510561855970855127279448361482110359120121299291525669139131030869988753597735393322317322749457320459732404272467669397148010218454860486521522818169728007917124475117228896325354274645332083016289811116420896604408454246727916344489217913700044192459928607600182640335814505641404221449154810786687881039547901308096895170667057234291633824705844951594081439661620268334888217531471878345236673853142374473427676684778843986988114279600305489255450488744355974169651540779163756719994448333859363885646480955130627142331967138969912391286554487827950356961548867790912617572466535446738505319747121364468181834340411251231338281529763426099313345036391794211191327369131777630609200494784627268452601504023073431738288095311063184335533600545207100182213968692929740571505326690646739229713652380744714909153063404981410707555841766885000998941801384098877962824231406849025076547096976404150423717279068344284172810578922064023033512794904951976353225297981225266601288049549103303581837218767984379280136915214569805231723870356986683505619149447955566602373750864910465075998953656260704637958297327124583722724221555393458808984737964393199018867453617630488976469756680860817895311611297683511591976355852324361957035293079260680415800760477018111826132589198437697488941954992231529917538095486463697792703483761642951519803505878391790913480526299358034476862434893544358126573544831935904476391177465006426630477175823584602911048189876385119041306870769236916635290057355274516452251339526679815287066268003707178717727297207250612739477584993431166364338084005693113584531493392659825880679368465444767766171244274935891931573224499922014324749408831790618607324975723780882287382663959992994287954934725840684524729920417803556311783658874614344917701460661355466646480687347571518455974228089587722912837520058961384039163409842764459471170925812108183119968777303758883029446691560575798739200845501272308328503585940453783814077996475579283588037807715354868324594467221648341209569301662248204066484215264276985734400289246657031499071284532319719333079726467700404192973003802793971559300510515690436212436269684244566334853272559830110266790847574095790669260700846903102555513143373745771347510785380469397202535002621540355063572657632986164876713346377705879243758065139987538208134601957805142883683373842329625412032993863565948156854531133759754326206909005823151995658648153553317988828814315036910038471859584069194694640826123465727183133592344665209002295180893689268026841501796948231175287746807153085545896858319760852459502410627168960926693831315434024097958746250197972470285462234924192238629029738039525642010982831376426271545530092645183599435137511443634123691499445530291821983245623611715470939431349898736478196163296621503427899577738863618031005680890815013877745696641715343544533633124869741220783207425012396434532607678230401380985010303160834989403086478750271901746743047370640166543218853256023118718255477318691361112190671617756847608626700749382319483047738144276220245536846269617957371059540489166251828053390703742666933001091971837069846925717719176662754760516800649968128926419510702959005078624268586806693686044674143663144568196420332866898475399749104445851981595188650781409675095967487480464257460732389598733716874050010145876946953469346907161240739164378020970313242798605799315178586968814349221928723570974571596781021031597967289086735046906908124329926297099400034807537276941658919989303599909904429873904913518133745565294962768871897993366223209507732482642039244164757859591122885705835934545235862223053908933421083138056286741921394922665985260248759648492274482370494517045073995319743078981908604533450022330038344284704170179735228472238678250859871605505460361771371884641071658638592637062114952838262408802225805175696689443347242802667543502221543747051526150349013043508568488179454170756779991565765679469168908516640030341499851115310667385223139352450686308633167082115960625977522657988060277838872448202227838795873381132125415545161497660543787675845170887244540933781016117809723419865411443387404367850856685190980247355724132132881832501580974902638136055104750756034623446337797703425633465723046490511819178844690638197573005828626817826551934449280395444833690047254812991190263967097152793073626084693060025849837343377590255956951245979897783703939098330278603324190370632781430638472683447426589416081315101978138817571065961697059117605728985146768171634084638035992912626516718203414363639987197342002449470829587008290675151156425046132265791764980994135751465745888685572326339538379426238647788121045879133727830055493840501812516875328654595129549152338354924493989860132891089548311453150438278426850545417005561418421956309833145967995940600386019287417810467715641449986305711548256580135327980765017407466315171359043545436036145475268376870863786680101431138544843609768892971061925936950163095870540769354380005546868005585090531007971193386248503474699808194321445593549430414758779137648583371559225756228730253830574691875706007456794369238090687225659384156427875144458544639572952580453131696227911484288229762073871842027992442816082625523476331478028109175834161747958980965126446980886022361025103497062914921032766973535500151299779018194650155439033678898435075015494179153939177313993760607694828088044408659289863569487715297810358193763899952285931520585578412504082686158018924640605750940748461685660847339719887397016079720469326194104006125688318372539075963579862820936469711920594716335694831734123517739246765665513118236853043757750821235313351677543591185206201927280533366956759910244631578706449438325312301414601514599483271173216195531381256261040285153445106353057290686632718405621356437026135989140352301297622486756914415285340458764223187290412894174803469001675378771985950734369623263809853997323917382233230541626784801999706347910106197440595633923766617406337543066262671021962535581551581764570292285779493923235411814843030100748281122479856415238538334499529837580909525998564106113513633890491713847964902394172493463514699638917821809145165456440828597319684956476621499167783169837435644844410639267986075842194945241254734982307347681701562265285172285254187656801385392037629837636512212368886705685166996988115660381113875758804508319940853912139967852393346081431904689917799879429666938689350469394611488162947840473094632207111585960069344287903392303410731967906035238055414808732108617285735120389572104277421434633961179852280723296410826791948380978992114553953660736836820531241287556935879320870887952836811227147795205381918112838245074418158474578126944824998051791777662375859505677317000444919768202595892932616033424083532183553995418432770161068296931035093022843367331477366130560687054495806459155219526042509537083529874738715294136302458373955452990882281895206364538272888779945967302008710833705369980745581762870593757519213189783887422215183582951936964750662021898084497661474485128517909655996853716764277698074554301063905054227298144379150983623715598250151122591019500092720080214399146571950533183785847999700102958260476234654952231582806716381222652558328285674459933164260310919462048768582292383753475824586147765263545460744140989965299407473894688801257155464383176990290143472000330426704187885790110380319204983354344082934360483189977326148964683945149902501335058517794985192659954984020571852111315019123763507307042863244262233304256019535148819717938198328891925217768263782444883244693805702550925597246190611848180001468297747038038891350824227323188348508748605625578359509988239291670287347430392509191335576619929416114678954090763408203297414993455585180763248397818521571856875515256580962779516283093397130641253573876010161947421429260879898653641526406733167939363812491877793707442881595858611112285874012482980478951402948144936488729241277694016555448794596121468405518828554463451877863398223798326267474166653580423872207139532629607878974242392218464868068801995734859940359960061194867711364854990640096332991755766520416667538147869514553235598485115489799629476094705263792184557638520838034042762359301621093114865871296975890471526265236604400542189104649150968120586951879749808568617578763508475760732880749797046850827216585056713131256890469464728391791773302194216209706895393074873149956333060281630620596662187966980887800973917733744402843789156505944577907369946182742450933839006822670141986776787169173240461142713211474652049350253686587696345165477044107854997820706120288653161548382579303115105089462089674360260197017280582525160608809326708395627652818587283992738802172489173487210201020235744839044629090931451844064805050636839939912811452950698904158073157376237318196329734516514132565667582739579768088161795604565898395485872826122652102570372957914497355848305836997544775641496968920068076787349743174521277636152279066574639398061609970732913703323679423369018312047246918966587501813903030194387329740618349077808900585947594352149800643843136891235826564909958045223344964375812562996446319893741002843959287436459796891475738996654116499801784545465181719394408688072197526145278005666112175099995744613835705225330970811485756995592383129456364913293255495005957756799437830538756285118715988574142741048598283182107981569986269427489620133208334495815634256333535962530246696169301043899234550795403846588732102101186342531882440022035221064989265503532738937781892659209391631971174409582357395735694827660465717635339325793370820263448853073623950360036296120490151335835530076768761236611140317961500314242994014977091046540016778763732024920866020877016874447761217604031710022671455837440172750651981587683316141177245332155777588569662933978649525323146015545431066879456087564015475152180500095009352590107537833666964637112980369352085933798905715102935564440424898660532511183376982848523361855048196306043734989055036548129016968405797274897160832649245938127432524087746273057295867070645323335909674934983936282795087356363372787899377140523939451248524808525132537033479715968716037494769701164031576433306978684869637591637661257904887672576738538449538223654390631466987402986674982991737368122710339324829738227541207434170996575036231447501140904910299821380902820218370971583976056958719535157673857358338807783136547135682299742734548129376962838894706597535330347126673634024080368991233175862066160547290957635504966795487077504105526287533452705662267019373066930812255997198618183907080755303055743535365604788256991700425153644034931866106638074565743548093023633871129473674558709620794812951193108524611070614949701487103485277589333296213377246463975487100324979440604472464215608597108743913840836797218057345065325340750793280947117176084734946023901143067448118263368985701567063079361816111534287709054821461365746997150192022244380146346845351012634288114220090089479284949538628936924777616008724316921595423190274911955756889243320925660526539642158232432089986722176083020858400868999631070098977995404857157682189927606390874964516072589791560504640036549184302351934379778779044100294433615605762511513053501198424006989799642309341881892459094594563050317741923391009489073357828344888871062711279310880076116845997538909409498902732223134840594187550883745441925690142507550762544768551044231937710329807659550278926076608634286679530029951525959451214002584719925344616734655431005643921006688655571132884774928429002499732092172833098722587686781615376965938857413847859459451211641906420669800950980404659318723828977364055189270957023197212241900779867568595355780349215106009818956500174651443279816201738853556965758099500273695362242907366337095740309794567340914750936200156601714150689922247544089925375288043055933586773022759682582355161086438860156612017131505107258094026027181392734304462583452829973513259277505600778801072918511637876260531940372134733115990872602247888991934266045862563073170396583702136603925791113788430431388670909888611400295825399293461391698538102447876887165247191551307449630320599286053384032051769008091781841932236581541857101421667272347357684269986120940317169282974798563602537017351468571883406291957291773434347943595492991786055633045837140236489711697410464940669587821172655396472635254435248312674953257665000841567229077262856165070028319091901258738843286171352538301516050353902571045132427225973524314531885049817958772873759683664868078163780912141838889388414225807635284038840441485694802561490474462252072332925830744399468903264980071345973202886236701870413998480393643308668133202168636629259753460187560412555653256793910108793085904314367826122950643856203569884214536652539526522055362226175503869697612431959620449648249317921767034170633128032463736212605633553813557647343420229711287021731055520421623451810797601933794899508707774009592077153665971304824437701405663436411816700867557119296647780979275521517444617195292195200823673501007898738613155040870049547574676648406528584551531982342632808540541543878213950626274624428689564055476443723311120355453959563130676407551121527623887232874377517995330164385513244954609574076530946292475640453977322291251340163455420770895312436997544468353635272277512966269052745915770385945587387572677605122554191593378081883824175069173816714545523460848908985011134699288723544222961282050541996507909861697230203385144565437032238216095525322721451635266648985807924420988537167306803579217522011911998114508296944379808234400546864092571310017052488070010337976591888590639426567038593580708673238710318662877023119890504247654262694390929682818919938646718873417025756257436401652354179251016911172843924248857014281451782373737762386275511863537707282579290071426347224126386087054518753448278653660425581898168837689646098065880328119838231816696603945344327481982765399425310983491091413615385094751088664152554754812475300924212950813371521461967575396495242960900091774834311332367165145589639374703026691597500791777668090082984421256284572051236338672000663309638946216044478671885719907165068956935063517589063607657062080823646043689509087508025220282906314223585800294075722645723189735935330954675348965624283408168239916284494462737516494774020070964463653659967299556337551408648776161957094481571549163248672995155671012124153466959765424313794604523332131019396666423265092723283492520533537924249001571197253430690115672605100148827527366331320962543836073855691902929833481755642812866338791678693899879066948390476024560226931969901820058974986312159082782796491995419901020760002114204792776436754119380696891060501670257096026753278419798766543416023060188214268618604874029810353950081007394460908634745603267382739609669098492389154103687228886284506828307987848849403792436560441397004406345124466143795352280505657178060583036326345789110248070362098936551953807787698659556853647581044364683742497189219119715738293353140426927425450335094171997138544342950335751044860807547480610499533126286290887899517557965456313317564285976889372182906314752731569323416286566139756988757993540411928566334996880419002127645534787635217286247537009573325784481806133087315601842022975649558650874013291283355157578196901627282445778581010662833974285852469379005669042816291905600649359918044631498652512833184604006719613646916977513180125397545537220421973961794668890401416432528713726398482535645520506784259459857252700830028315336264465934116552892203695578341033811222053570533835237912465757875732824642814027763107511425815814595763383061701660852205183448903179830513014525121048675552486976584938922861564727904646957584938787201540770247163556789535753637970709003399614071238188478531827953142131509721934695247914494310940615308461972377422907825527398207543639031761967559986337210991785087381446349076815334960739528052402171792028606701001997195045085165915106329997243282594363056336616571176685510675690247468430884209227778282976328587205947255396579376722494817031962524786531375002698548881804399288607120622398910236852571845664389225004226410006577263976778172724551015743888438386316096528476450117914140910128683898795687781275268288849211894531646274328397549664937010972342385603818122835408156512873577801799783560443742200619002778016092583352518331386792033521672373181300025312963119909641611262412486519669027413952684553177672526059796116764214606841011958554605116740956259013096672699253975503308275870706983775847064744243464523477621360998597003460761560246116440131249850901135641305886028442189374476850471765483419279741779570301277657070283046621534099430118492717094354431185279422545291968803153712021869224611631508901499196740371495551104651450549831849595875923744187877597162529766673293169743578797396798809378434838150887885298011330733893484465480724339145888995738286201512091154950028745474386659885312479218548366605242917970223728144250312154062068035828059969155566311819005097773582981733437411594449492049447740188368564254738541295548904898452050432792461137867341193138046412538698564576598681847726472210466659882985298280046502906435362407946844918056386833762443732663325754064277596337082010878869561860622439394800149529764871055210399976481364144256957170257874425875935175807019349510086624608035214995293214476447965221988827509172415639842740853306015876741294042462580593262292775203785958651106822591237174924399854248226000555477219527292526151297003651213721538226240519102979369781016869979902735827970110892082905720795301085245106468469977952733398723748610768497191150708179839233609721930540923371625097649509585667853868417738582728912952302080666667121996888830382594915286899384825284184951692076933549877289616924913574054398395848141700896614557948437806069983162858939638657286136700354189214045688559918956696287381722056238171337523433279182689261784935079178077698732769117127476819234371399751443421403693997962498065854055697001704255400055448339047113855184806557049563076792757169790926591502931426845023926475355528176292739602349617772741618850670678387588748209449834832903749695536926422406653685401857829590101085718746321565590832674439958123207559464341537985225186743845717959651632204238965593229206649408427636244216409697734161138379785096707218594016546058751314532655118168649366006065831519529970479451015548888880378445204100759977044227207425483106491358620146335196067315630563756051181518882551545197260211554993606749264896583017542896732413643222676656384940149159796620856996079905957174085981891917008634769511770522141767059543916098714301881231792249350780293493761909474062259825987320291600725736796397019130614507666014332310461225855243186670673261977204128546493316971097921439223707245032479466851447771391142638536324944919255671247967687915549995529773388332066740639141006948329515400175238079543949526787255707011569025750378772896708242849884900878483501589115750747953147536172180143489576570691425948369554841454166313021992144230478418153866695152223292742425202451247151622055491229859150577790159924503839604032755435077407024041574039947592665874295476101510499650976514223996288081826677117102314643883365033941788873318282683753003477884733796111877450265690271893654230466240093115444135820539061787562274817487748189647263748374430523071025687717886754997258531742645793607152806594537273958768780966194962581201599313180208848954179228995220408853921937048541927782979785179331232284993843246906282983110388450635316712037343047649391861386727465726352386795847935254356945914402180264017871584789589213521282358490457067035070448119001381084137126779055688706336386134290488994045202358242938707059030630892911066851933848903443758451701969192133341428371537287868187717972560143961018673224770941447168298626140149896381057613237295232299151543085513467484770335072595985817959866465189201918753133301601367887094261568263843918299886130780430169589740133747204322500798935234852164052219203598491905012137920853395733222109214299360799519890885923957063475070856726254085990976389147991091521243010482212428222162634486249865046110264043648433664853683207495181734153051876666867859862054851746496596474935976067816306542835497699033959065971374566801088197932567816945542328747626269939204608903104949886400500501960699257915662034536249581216232697069647345928602019426874526434481886493093919405051829345696778058753609047076482062754946038911025969564098108271749650133437114884018906574680916189476787717721486211441141988250416629213518909408507727295020632551251876724449868825563895736503741684583816241990308720398234686624777566268978379929748379467799351836902592844901851499836858896965713860748567615891853686031279111506585434433923297597669837379305474466106475593180333902252775141388908579110528271013884247635305652857556405635182968347441627012441309552222604706706169097669212519694210942885165891805237696891141833970446446933158522532874212833357363113796666309225789899692852811176329628828658282938666565971679669379487946070336292254765862490482437335145897511817403145759018738399635677699814503038114720686446272858763656325231203040790151617694585928179502638206346609283790876777519885500825769271461700004828188911289843693989030876666061602226880321761862931094221067269859822798648184655040435376901141297839266445447833010536888221794192665697146928416839597245476362378078545111774026978877017455118839079138754163801449758287087537664323136605112549691372459721985431304712527709412867794942857728969573349033943137372478572379181761043963746051047190805652454967970287680896373125637887704751720362457572396898113942949740494428155570738811500549355459455622926295416120233327098104370515758268803893352056275141130312806039486824537681377128185223889751698971740067922862215038961132205880268149670859528431035204800847040827949925302891765104612199508695001330729541880419627943691876806688272428653286265636579959405263667744959441851400501450705199791450654302544245037823080226633977602869411831747945615073137334506419926181881046704784128311681091699260502773866548054419264394761073981265765862536005902786385186376417843021791602881110754948564835808663257902749043172573368653203499217862177721189417888037549780475176639103793268246094060508500912381029572395959006082376666060047808651115937208345567422363554422650470722452477741907057426550029074181139930419352209253488774764697057704204471391857629926678839702217985253889784429134501684067884959639423751921486268521762227580853961855020234346824768802969648432243604542108088096027898057353733642078097797736660410849692528561778710655140850073543884633554554340814754898657411074883950237052224292886747769938545917107244639309914720238481665815120497776456901211932966581423024842789312549307867787851053655150553835702871582393784085991104167195219655247579101040630010154200210149213432152291931609705571270067167422771864002406516285549238076025714535085450124495396536105746376860670088472487996526562252484786239768940057811707002377402457472012611642909113275545829283418557712194958856183663691380055616334207714846962482587791609542463236831854664878013111672631945518626430248440666210482587951353488428232896766724472566256984124612134095775286182451506477024115261511934853241238865687037585181245438302234635111265353548720921201861485601153659683039664142853491566981962573754620512352295989592722600981801044436318479678798401769246564674168074205667031468927784304022549932608116078963686359321311630829711838281624825414779970963185937068530464139375740126503930456316990176074693114874247301141028794196723649143986615345056460484570716257320930648157804405827268478938529164599461572204073110492390915071564199967297105099500669563161187402228809748976545494945877295464497169840386759525938985111035945621410522662389333482078532532337198586727773611131895158999483447913087900325272112618229188093005471311485342314485164752333713589936549220890957726892809273796236086604765367641789084411492839407913406225430887484213369411140174239565162819314998066450644830150027706453809378387548245584917575697333737305319634663785496148724185026486204027709153724123531261708412228086214070645435677991280841907558714901013007928825718637243081371928196968316925487562292046892578447653875765863372214886128487709978745263679006582424902310674174940364598823417560457555595753880702329734475113438421524539051815709264246156405790848134249379034624088682298422576466283684736438674361289148487037534937069873563704424456094634603877805608110467662031779076316998536073777448730342623465751543646611308856761198387357399982500820545362883591106055898593360719501377837527982348572986218069147956192543021908306020183717511534620259768738298262699484833173266712247629171875071739854741931765180993099444524424320682190018147424734365332313565347405301798337592644716585333625533850656271400034195929218212463355169202022816181288940478401549838032323073353206799430195985432324273950801648648413897464777466156863519252479679858315019270378036105501963883157271781280679436399440042401796911046454253985509552339776973165761569749220416757273118827515690623176903289208130112533238087059959144998165742744822330434980510686890182932434103264210472731062822049255312142498121285399573703770787108343133375771509671779217442783747042827068167155432721387662624572855608339132799980744282979238930500141621936140687548600147152629655255035045194944563952342543708827370360099044878504468224663940210285524454154208255977334703813716885711807192129055026365902162184149166107308460960846790780845220700375526681873547639226585811860023138594573038710188369320699073133126668361900914316261418576211126897529197539221122954264454202145124721648823864625526221071639487255327978112003338268100778561772616266617408217184534473563491794486270569941940110466386621072977932236006193500178325900748798300177624135816688353788441075726419854912878279579261591375550250731728156035275268505915265407398305876124577176663944459703490180879198674640149363375846561224021798846934689475362997219914544330852717735837446591631602251648920492318691916981068217150906077225639220830777608423239086776208108293717146154539356789990913343789405314163758483925027251684085768970273682681790396904919194565975705963314429437364040155394302622109785112350278162743019242258876612926068573000803158078003874487910498831045865661549565130010412755942226962162003289756098476746673705961653167702060972931948992561386011121391501547336605952209607005322613342658518355163207468559563987418596174923030410502412787175161736174169251016360250999954452842579213502844784945215767136254196398046905790696594501174469893241164078271729268465573800870809517365998422898313891818917181301260340000037152771752912840694452550105712304792438167705694405669586049446429932295739001787631933910089021855764001125875158839173595873450217526805728247419748012334925149038371692573047836020473163034223617929931487506961806673028444535542731043892814901499136064074513887777905977416318752265762397714839194829281463010809759663641473975299006581917280744605939104220491446008374226879408285333717365364931879291603457618192794880924937610398691164153302406853175276295814430312248892961877993474494540270442908071730262908507728080546505711056845189416266243629179464532766362491591296251321523863008410736442063304687572041731151200738997449637800219389798732805092152587098513457152426652849088404140508558227184705423401955192672588761830785489592356544549219038571814609168684768590376449794980125353575137945200236389030931476679503755445039130634390829107838350963409410572517349751325961095091275122643923485985304748843043175456571627284721624371487003262965579926889979778610357465744686411828882200910843391570080531484612717959603169673243736602927584283035202107825479596235661797379002528234789205984546021583786476055227411221755736460897573097817917513035587076369721604424640230227771543213392680498815193427215347802790884665977603929059769657872622319680852847346985211507743035601094133494798925544021579527877225400770371560932000318909593963338495621642735801868267233699535609955883140823114417532593260949394475470698762154112152630634146673488973115430089756808245016608066132991467703251453179424596082021062515142259679081754902159493553381647480287298026179328942232878418390300627874084879697853194164370128804281113194207871851630611341391735509324994625694862464720094123186706484030650796295740685324495844041226647965594165685583671873668005306285440016461400795425159560051777776670141506584569926387658552095663423978856286364992272809639230024018940324893067698456342855384326005773745200618507764872311475798583558847829938977563784224805371759195942511497922607391476910745015308536611113346572164457146908038253485871063645593648882316305653716569939098503013133625258778802063151809150234272685164536273948902976237176946995979569198670577443933512371646882134615686721937209587868928533684518686206083297366973693811883507958821930064814752425583034538492295659999799691206622418944945191016477589301736535896630172218953769537676689361800803772091424298421570253419492792790971190680497620819793101145777028559952998699381657527793920857010712993739600995085585882613351267016787548165643687909000033828125556334931537896404960308271636560375236208892486053126153244337534551047047671091324293212716109291888686498368405594444015738758195021269833085761921966064303688525034493648113928652252862622076629107112570007369886195013335106345884838370981252269985370481050991829641703784920025535051835687389528030774864696174243527639180583971039291780071112021566463164524186407268959850718980141885598704798045953520201012974954363720112031960066211354663298569251014239456887450676053400467236542322278258094309671165584852857935873096586374119348563376077218728104614695730625472808386733828431251975591664026694300256975138705437916385658293741428085835936945540150408729474703191589403949922911023038772986657977291829909226756846925744571132139328875466480679810006617421050333772608170264047461283397199315085114369284872633633024976083675425629355153597796033809103535367511358102233260969818114582630259924247686254828286259067209306731210217048036477527428673737997347909620002141390522652708967676486043947412328762230652149251970912104778569978113597772640375821249960526148405982727723948849381235622556585743876042902300802431623705836497097377738392648635421346662251384331208609543640536722651868660025238697109930661025390479382043289527358694905916106014913906616814214271193386011682665042352422612328268057612938119496674408163465591936518248495574158319543253495351276999210009345814182533696037265017876148417831093414983933682244432309928598610711964096512104895374062443160467953655418273190530575608020080345355727626080668319537504560426749608809846708741747302565326745479741059088724571147904989824952967615892795193663410909757220426258733368326693448176706777190208468410502458776579094966352987139671582966390806811965343609575978408461962101748874187767312833005908517604472358246888669736142732701499918396052034665562995237315155651119202337509256566244901013561366580805376892167763928693519565768664359318439834714966751794514669147968256617663872990276483870198227878840012089389214290364590828847657766826995763651758159762969641351818473678132873202611340349401085596157119280342863034729661958084459593479268922688617161183719379726281862412147749236434341475475152083306182987613604646880125611153051977032790822569340227135020862118005800016396567374483476805178132139670653557845864630279270424158232828462389424766821800572161312104915131447538805662713870795421721444983745592114836569876063319152621365994491549638040166847017175691252440885524828724207384213687187445453822865753381241714445451008684361788800082408405902724845381751091089165063596915095854873419776524799022883461364500750320074530163565950347788472782830165752424065812233015863609857484858183103750236023028437554261319606336794760202888551652644774676432871149161491659211856728834265985496887358645209639139311022445942138473561336007226034924521863414548882862652666780804969545967987328537918857991235703745863748238726497252498992507063769119661446151900595747744288352360593656499035742433526561799448765754056268325850776409882287821768907224411149392353216631099326288002916072069829774248704034483766473635364735706882344828398878134654099820504216814279348050056716920737167087802733484808197570679057589367215187383113244537335054595886045522965557214151380544205850233013943916504296002591803160792191623461087214669097729902900401126095894146304101512419970318510604688753342665215728603164333009115875887976273899506313932607916216728291960367870057821747508134225777240699145902114834903310384917590697133389504099648784053928299120244724909726396941472831475461451584603399536585321865813746746168237321817358440022652196811244557843495363740187747031221926073623324208781393351268788507538591688828557875804986226110681790388828637085471696520802705263504207024191362459116727742932579261123854849728239639994973751536274662172802767526812863744749689256627392468386790056026495668857211267124263943342381055155173610139493248213340261033558899859639970802093219802824231643946763694225998222820730163496959786711626041253624956385985812012125175971087188673173214079033948635999202976713511577431088387999956181566170675374273979695104021370181230174570534081281686382189301499270469971615264826407523392081234000602557602565812232746090412068625524517057615759058499642093579990784178741659470122359207127796339437051608381810119028588645252613136745072211045466196809399500268511231127519560143025295278396661637211071851172424994396244592462379706465156339845812150039326183981838994712180552001265886962828466045298672638747185534421337627906321276803364081462569461465741416057119430976983085408566973188956730995484205612997095226396867455197194570462221720386145835445722835354687197284494999089939711042246418221977513953960093283452578477055048597262530812977363378238545668477687271883565698357659412898363797786690662454941935349424796643584122915794470145600911216475283199595282327544897092009072573958261676353503376667721775023293290413521165100426865024655832226836561960822831878012658576119957209519989647752447379313690562300388638841031119634046034782609625011330892319632676882886056649572480150871680094561483304571567952315256844750811754023046521075941921538850103803435837934786893918790559012920511831701644525540006156388513946828832893151277137128405467729248242291893420190929744481485567277069711347577840499084021348098624168196076319762182351518752402583970887903679016087199729652485994795451165492906691170056337819141367560197101484382206798674033839098707112073728543155880172907755381235474095082825568151603351056686576233740391081460861566164848530139802774723354190162631017459819541434073568639052328204470477723250452545921995860158619060799999734802965991279086943706990111408984984487016588012000024798431669638782426318228776068023475204300719174988050191049938754679549794325658306497059741170313924940780742927535345607387153617820431998112777238311243793585925864878618992968325030221799910598236131795495362000019643561882817181475808680671747881307895705719659235227229481715637065603619166641006367101166155070346869392899557073923401062921143365040906518060376406690227890257399508755080684940538456848354223805231153408053759587081136713023401862051286244500113117701119521471057763973953047805425086840497316776721062600573766066147532402757486910115824738601720475109379584079967829914107488999443659673210850702078013829844742754140472974823401801058306574350385119860079043433996075540974664733136434731482071713927558987132134823661130354307389133875840571065403781101029546154545535546053036056697184605065795076335051033209688667317577887053616243862512095116186619134604159151579037245992130114957103886656107586997967189769544052591893402066943655506053064890816400121422477424806877637110152725160891698583717909142733532795103267887018562198458749565858385095514008241134743687168054846623012880402704392513748055528866828868498484520606728570815515411043642346025198507377687691318680109038752876668041807306493373065881421557882504253760588538132249748310255209329666984427323306136445199874596292663367240190261770791940981604044121591514672063925832600931504168592754109929816974614318963511017105374080174280229999359739772665121095070451941196762447324778150156553996464912205161692587603729719732337606235440990308430248023509478784410552463488931986872102933274406462175592274197758735194660147781948098000239535498734540016295458450565739384645993257995427326351205857749997626385086147207280333614038596779588662451870569970113532231642530514575833190354575641144421906633812892790252505001378849553532631300639800655855362626976827142308164034820456702706378975850726942558201422508081616946296715501191614998033790754282059849169940288814703332530523287527120293455980541125350489081000266388463172439847612453827113801229356797852016529452350264350590054596332444185688331703727778416495942271557327317623303060107611828298283332298707283852037185132312139884069708482023396254182941501733079234676690135730956149088058627392522306521931708140925401273241276418367062635940105785932221482771837251902373748877041779392239623436799218356831041228746980329945531854932505210133441614190048120685675726707628618396476134912009342385730543217255377580237097629138096606449641113848985435778491685629595438391757769070032485467864134273738869451168643981284081099507948807815988925413549405088658719677917371939792064930591937273629601305534255136556662766759425925789567258317770750628586036145455172850474440824274056081278789619550944752383278531949986044535402366480422744635224620610303727836625799219592125623091758828744026633014473299047533471235717745341140248919032940939044479658814859853579205319309620980524703608277780417248422991673042052843930507842322506050187799382487765278187327377103967716982829880722641318220285749015386026362598512558988262805393982560542575434418362300061963136927035222110877818381512269238528957522958170126987003682255601075916985300730362642384420623768664547832710465659282768172325915554337931087826982321407884308159741539461188508359297106217614511963893425007338852222240052647997923196359141683671347780983599463461542954181658569375826323719292311270811793255315984737751877504527749426828819232500443791422556899786001701899087444662551071248178329513222472253097727780128457998369230875490979755765781197719405907580695117053186167915767899103360514736460865781880889695859693375540390924169010174275607407465510081559914974156168211575545512382132249622244855178293797896657976220185433959447406283529021882390415428599030432597137708056600241147371639825397163184268847564728862742900732616898797829027050333815995431553603342260079017429328933781228703115421981356455569755811982171189039941079467284392397835447589653235931286930910110001069741627142131242210707387735029948989191830361880729891210858331628612052994794148982162481549884350681951849721174402778290267122509622338402205748705979030858873478692146105730734764621878067324842455423592452327441831791324014087149939083727963459913085518657165001302698380808537302923204828714989252622881530578565443597198114679444600286292515827734808996745061106044768487452017688039767832781269952381452112591231343721965096541806993896657151471036040799525065623365756198013587639497184778458440060013551803282733097040676007561195689405787639228026780929911614180389987191848366988606184734950209628958480666353010789295794009532945759202315374155561634527701626800465158446603882597990973818660518799188913152140178583518463104226336158446248274517850201004003072183957218934740869830296466861385618146068414893777543398631921869883525463079541455518514763420594785817650133059504975691381753585075450748139294946713641100218020298049976295471434489688442932737463653413002117728769305016397473227313135921589460917538252864509410644965004722794913658864633412817434997818996982316277943820813601140268430114821686295311809310765308022072693328691213399118075425146660610938401522729488203232993828578196049055538401672306089923467238317292419857744533117191350070544717263926341459397780860602559035317862232450012903916716300407112329057501356340449971653385770608069195756924130387352730468270907523667549740594777215448514602882669965628226093649487936359698740990730335940676522534822775759355372834095828091712535930513174036567771000347653521028592391842253485971666904391672954589474982280263584981613108631562976768788086954845898078638044335586374031355654845920028956097178428504568721591366726022504081921802154961587630954799309912421020769297674361319973065323947657803178767772912337313203744702030809440185774910893107751438421579349458669599415414860319680958448162500777871945939911194710432162406571040698087028501081438595930865467930851593890330916440846066884288374220381246639158150702470588521670792099844759808120230502363781884403175065648646076376877208015696653303193447442360455179867806098400758743464111105082840642766324246409989442795447693234924665509613401373628644694600289155415831925023777787137260308145916810822572629532995668932714019416294687367021846241543810130156695338676346121379278456450548346061208850768843501822977788863769754861288512725412239603888478393322462334302569624262235266454337301293257636273338299797141756879696126624802986022752872276120961606016504663403287872826187930957066507909159951115991899097758492708091894452240457624812424277767455228705763541520307212493422540794601669858249684498650406913817550350868502010652630413030926161993436402554519464584054566435034262956359946556740012751265734162796513732312377111933638001659444345597935275287637346760306871862432333678667934972972196616205300033623487075700675403862345209999591905496619450421202812969816777263609592342162953104923368879150930455982898262970000916066597043686164436816701912573778211572196319049680170021800730908551035226536345268553833097814797302139613832479654473243823727097372995051101462101178795513534161987384358338163234823636161713846969866799689083386331125663323821902060136870454385800717755081122924874177702989005207767001319232465513145759669352925271459376541222214320064370587641947354711292956986766863900508268992940035642702433808008299523894317944133977402259860930587997450944563052475663971358799002673953686242763702557230248355978901133190871579552230425627919404570976747102864946359789275844122753433080973723964498290299981278792182524317457066337833962424059760586883752579053467236163885077729091936828995529775023469473054402590498688047181181063824878498342156615635665422224664133259418728908544306109991704985696667224834077467402551323842741818033076390450123605951772795528519473809074568326493615028686571742768778771808260688195633284781031800369915745361145409217708630960285246076210124885236955447185449488062352893367415895670158982554110052382765626101741658048386087622996486701870899681783071981743044088419662696061536666328635393127695319202520167282166229643209958253768464149337765433238338667559366475985107137942672219709275815546118903963088713938036382982382333240518077116010564006899796343265704333594296175208541016967595397673591935363536662541427867964521751391835330068800167686737031247251091914020779521612247854384685493860856357965588739079066675148707670839121084247114790486484866338774544796167411496825649127276856450248699963657567498064769952113898239381605059528788774240111203686643974611046487767131170332257718160622396208490960082643648954859086210863641014711037631353643556035912411439827771089822765111237450597925449178406145067798031202505309175649511214329669291482442059872189799558085691080539134938276454985020896355718064229519953788526152981773261692571399383269701421319824120828102939158510407433868670429486332168052740695333622538247231967603436934168588945395497206089800619891497225634893091139301659721873757778967783560203036179192596944843943436007423180186646300680716882359938234336824682958694618609511061830310772818976589560497640434889339623815334692386052310658090419003487265890408686346052206408351233443419783567394667623738066629053772920094355403242779446912432183777293712231110511731117579339897615440843659897890442992954027383411024517077285134614380150900761178249856494346423154480486753638489990403345317083960867777227022459230671410776784473294824308135551813869941699783165199867613563792409155047764551942768939843496800780632993775392075793118900725531419516846796300622534207137554597285838999550894384972994811390735049664809560513585517728362334661561144886202860133596024235189697370031247751869751774877719463306358788700215585967643019444706282737341070163601426931273866938293604347830023494590326241732477016454908261234804314822755392985547102098246567454354328490538287124748001113728250156121645026933408043993178286642166512614035545291790853764960988427248312864451052696446992012103710592054960992216480494312313446555922520378468656045249579416240152747125319941107199067751924083821583256416238463025978972693309509581583186956272817870437128817657869094476644403627593361923185305510649311002089875941962388726401772834456087085761066395848675195290863677881144838311927851313237229019900947154817311728891319148036081727398740490370528364598756572545806342918584306844134062340346622570150106492371153138765873592366322085621865078774420290420889645796946471560364137020434488341384824668723571214559485171090244630214731171394994014515314460525365423159122143898282869402681719264756483803561652752025140859742238214629336044059061675772979098854846955694205397507633807544689223161996769684987625450736050649551461519161313040453121015674742878601472751003563584269511757465492575453783410405334404801624923503597224309886935827312224565393665868674365173030563033777506128565769697545863846604695436587456467175949947729807308352507170026197030213050560332600485236080667034766889391529428324199990669615489033575615080254956272727732502691452968869308814059553523190432325312281053210601049294791338214447792913192773817478631630694872369747443581726671887576202115104800888408818906801173870981333931466042643888415917784409988082950795953118473741998835309214460790798589171829105673722242319966450521650665899806690702713246465610096687871848183892942256229657505420206124529368654251853881612296870196758739315140080020979784128638337277222143457797562269132100839608757603975363159243460247673074532188698069028080594634603900494232442703874837630612671527813400721871768933456930727178963831076403277141751916711412353725897261864029600708327548697331935411319224341085121184091183694427097941168361396823157773561805194836345071665885387780559892645779820940212643779011464869842552556824941803595383362483245740900063319388955999404039960333117715399863310326656525982204738681764063262541252087304359544382701624351288503709714231148692096191468048187995187131279411113383340257842824491853939021828555540464309331588315529702039270537966783591356554377404669835905575875508386032630789508316411950245311714572659117877451050235878109253002066712635855265203114186700332605908411119819536593374427313685530581203806912211602967893705471352831468354307927807516854813633008177150727019301604515518955513618426230073918140271557166282383019386961259287681694848198027728981606831990848999681649484396294671549917902539452209685114423013421160694606675034163111642612723615687193949221761405567774012292879437588799873456896422344315171493866423517399024482095100905386473804974695465671917347659942589760095457671314465353926696268389776303178634789778833718470724392004908949366896254033017278258200960434830285529279152682853429869355873058080802850742809366245705325929860485808150115017775555479222237441676112353884582901370580964263454376153612411492797087535160996795076496412762459918435662343655818595919249690702594130254252719257129208902278891756845470572433344099434063291804992124461541341997880205311695993713207571507220729229719041879439871016884006309758827916283591772565228752824265207133879661426756277523589493079847869506223852627573009086547305670425372215865035423071129923686256011447357948866719684771296077733100840228235525472098533891808285471315177623820564249107090918056455277793302232432754336041824012606770064435401814073154286224196400464269324664748667558463816362449079306228032612077360203072433898841083551758792650011931403563313566054062791956080264320779290481264212291320027612982951988874492902644454623492239212271500346884490572495541251105328295650236417327859676972676293929902866144959112030580093622023121871524562130844648276691884346949713030096329471423684988599155040423060622480783928204513797110741656548037938841972247727097957156168867498053671037542538605809400725743870543651123216539714146703555098393322648646657397117846070313069096525717117555989017601340478427534314000795016029911092127236143120346906687692022020089331650380683039063489356831895286196776471265842772978347924926926339125060536129469980120196012095879127546173951530726884400764176883485696892637687665390376762382439746272503947472682748600218441872372520290666995501750521949314694189011433085807151754613633648928570917879604525334078285150385586128606441062020874719403692693522896290943258300944679978980929113207182049138180499710657236442656296348011156015040485578936625051586322518487246543290309405539560050821111066649120554792966705471513874014470027413455173911472113599152539580837992505061902621994705562293507956833911854213105201431726635687990262257278598883275373614753389727883055727609843235559630427428564390466744820937250872687634512450727706575714078034545422984906955199646009320253161064493550933311283560057038119162568934694717103261248047383891989253321915405302466683825898911546598378592285619208037950804991552871617698272182218286429772191413698682317985107470330132109755243846437132291319602862370725436310065303717690406510977813432941307651232810709155145885694237670933380789812972676288318302862778649494218495167091746592102268982917685180091156642127996826459000503333596646233380803254822090110436753736931380168020505201327641210790504677430636644097008671492210050071768608966320616350698445200736705068316373763191930001277379098246960599151372408702266137362256399253624860003985128728882092245838504829463220093951292940436834116945503711877090446079407015325070903575571147395645141974449548385642312993167784033235074612549901126981803671086779658916138180027096221357317735818461949448449758766221192654012241052608940991518305513078272304125150455524333583019652508158336980335339505962245731015188602607174911766878734743155921261046637149957052008727067750997139462614657539610144180140648779584778389591164974450158205437361815527336335235648302842144191985107351398492492627403594859804788870451895820025024651999477612448245790554562564882733109692606550109142664618274581527185080288651399611852199654661114461932877331127668577768663123404159759396755719866654702917219039625445979592383747024559581109570039078309394974594158386574315540257599815650459239952036162029143070212592275360953079126125789695756506210721838131402424546153477022319490124891456321970826728409572944594705415029946883751834526184265324576482465020362149368318240070757362024721894043222956021253805305450760420298546661228567827686790703001541297645640988839177398789793328458363073736980808688214036804817712281835036334010579972498882537716569728486393347936837011087231315152690099340741626750799000211565670979123568167016213330052224628355224277030202709451624735952513906265799834352083801954201071431969508610502375276193235675690198265381330012588774093041095425272042094762992033417093045114335793774668694089040254916207817792107536809388037384710839665868946720053541703775995954646009744717785171366945153612620046637334764874181198368453237708197056177786038041830717763127349403659311534312281060868430447716574978952162482929523910508177903558239189154721634306711015620194351568866720374621450579114905589696877382696909023464264030694261792705464995853163677424714929135173290903780777422419606211482826227638387628575981858253222926923615334599514113289707731054170311489243766490665756266176048854311284006007037133704605807270302356908161475076895825825691051619331922704834729475588517702167579900987881721875910304063879472817181097466080683693342433394117538586226615674786402463022923819250232639864364492666101028898704642093234070883373499371755034421160471526652375655363131255510222599132386405071510077417817447555903189379655074337819810056111292206078717512682144559796868579606493060162846418128569490651063744818966329037714416128535567913080255606228105226788589664666439748471549726837591744614042037580101679125552669717546465397346867969937706450375075145859844302417204705856474222615730679010454319893732036205975964257378811121680798398165355464501359492908502567964140167418558531621608336073756474770734692442475482854971637193284170248348099259149203645539054518282335996034348546664735797576415306640481355347268979783680974729555810880272263134823492873728689921438527920838580011123981182860806493324262154447882498821932303911225567426658612795536890576964936310249085918978774389101121918763272074305340454496303498504452689949680488488082219522754905963818046681398511044774836023293056594176541047779734592305290802268264265660328723132118440985721784269833217451071203403687594846792187205491179109750767544517200437286541254863558441120003641527282639675663906970407839887651226086037553135791258074938877989960262495250044518739228680743197275072914424775452976908475302410093979441856413241269859078284098442720009746153897824376096098267113924344313401970712228336296661900158963674999337722000943137058951509567833167952271634853801651451979053559326634838499408130166518212678397726994895075042871493072122024990406308288607231115318680336396807708848661446568928839097474203997786503963368311440504629840183188641530551700592919147888763237415746437950057845635214411896530192940863411265805877262769573103285646725261863757867009211966408732385150084886202250011577405341681338337272404080628933693594088082820910089403456759099194922751977152853337787962960464706866899499198854285483186716672582252738166200340473399787185952806417388567840944427838994350868522436530261601412910188281478800349299157292765691374849493349149240027403743553728483623693299357585403492219453380587629781373754067073130699049589082793770483140487560889835514642462713894696102160138725647865024131004846628535749567645098700884262603237416630192030174825111370422297325433963756568728545170296698949232874274619807356714346028060383653628598111100958429937298350188767415818079920812910413609154166124531512474578129572025817341683849134077804683845951375105017390355575404968246416727979981393007545130541096185122527177806084333439520426619987337081610542800200926758995408051002954670557770391023559890710893420076571600023260948049575362860682902501753777787184326019736922938090758242028133681793361276925387266686740025030560175874576358199152984247843461949862307513159787586892952121017772086140438190437253426054863259217587538379066559496614974911909696042807351023224527188510419098275822463718292424618567826756939363038538824252496328819158480759968448835392856076933813384232769188797978492893878912196459466108999503605061598243346816328517808359670319172513556119533798138065788003766003418891196287014510089699087511257649754068743530917986335838729783233202907060578232186635483579110417762566204187274922967475712620316178703743507302771101169447875481221683203247574315620850153985446632034329958870701459882239614625699341442326136848963376914192140480020480958114753107088571773956202412500568979801999139076557050297349934486421940381950823208674855916252990453737297212559571720292709821136834976746822759803584848386715070599622490646761522274867063893113151865623570378627865936143283834978460820142855532207142739256312810041993051894206753595631737523139260272349507647320193425533080267062108538357114246958796337139571507220382158925494976171481036926894909379160488569619953614329589937184660748183028588878957631394973073437790476775491496399160832145917693022362818095065511114532975924671009608749911656425284168971455462648635823523660320040689689486987281818247878782119394921532984416381146389742300550300401306378672881104641450597163379175505683016504583510132152868946736234578793777556348245537221019355120192994648965873117353140118086674810681962712202849813014294276237508952707436146351900487160866500221829791584966952957445531534882584677911360214901698934363811344813278238384013391333943344584279927373209445239925850994496569531956024984991882210023244429638204080998039782016993704961578496296071243661530606281713977236223458425837299221738330403427776834153152652549492892111356187123158268867907562612563306929030567744253416860232972759658281910025598593605435799598070896524142909155236263052332267271843574247008572930922958999199910877974189056517588662949688089458009363077213185004240873889490213931219988014981350473511601386433982315071215829135708915192421083861867607770581256005378656527641048984534112085191328006745142538041590040580472947618131820521893035626572745841598302453495691342040648591826936275185147757781092163388316805741015181949113767008397523523935954581841432641923492572891565868248494523999927471817043689275758193770279941023260797942428800601457725870959846803602223138551922760504622544731788323503063085497878833250007866282425981734286989912551851708024678497890302300799371606853315469902917661351242050884751887046084930266940749664666067857211055958098232978310387441695120383339236044399139626260872716752390944436783836435355940271062494412228833960124752437879061122156370934407187964808888514340049262170368539242809588892209154349497317507631018240725947653836486149784322499326131277545925088923222597674389200769522964625565277430921862430992555209337998611404390071907124679676240653490120363688578940128404951265688964854621732785500670624676618975245476467042064172053961084942933699778211604504378845086439842107546592724050846146906794240220248358820590366322878976521486568586930063511530211802591210113732552027830454031812449084299582538841137946036174844954093262960280172803878116412199031923844325556806734588230806883318997889399401122543236486483113760475547290887793009967229680561656361532762762898413847006094402900231657577668691860978409224158695845482791703780529329902490813033663607863313064710529780525033610098626506167602438001504713451809413322092555748686538673673439775218569153744487930621593906591163748317148577566603323024288470552001625386156981500786464138226481908860053697237054378479724269838520680614782140520468603938538855826900560747431690334303222349289702185379080821779559143748711643757811268287667552561354754366985862084075694950740782076136296408772462412456801136963753185484740501483496853739962454865281509738260323076250588226963227207485169162530172318083070490421388165675905305194477397728043188022752159794952354209636635766826457167934983220802890921118673878258338675966459054697669584933292991890714709112090614411383226512906871040436953060020866280258650644922036706827267472851519890784867714130376825849885105782864944427528866379606429372727002708523876993121083037787877103106735752101218663403471320509075257231521610183088027968336553441530148092054657454422394809267041967396509750271875061116039362515347416954352532327256421356656396472411145021706207737108158318689846471490574153527956891471438884293647313951963538262564498030163538437896256176004266826567548446236361413457406761088455982366385874585227554262827932137672913892452837067211778451360858016576577796279091825975394932941140704607727179569911314846427821874180281132802214789022607986436851339613584175942479124568865253948615783252779981042665945808480831419392986828789097825397005243288483975251630966065450712146417194925878390752043114381029415308041817218990945007256375620950997270233006215679435249827143898487360154553303984776618628049840111006310353637193801811786614872033279538208972807345217474439362774502032080769210619489787322407008966907772754568798834465111130007598998704665539535545779874785259395994988107877291356912592378209709845043855882606053175226028879103227737541856959421916421202733240541701796680120475113985262330464855846039281924680759443400167746087652260201059925365212861298466022870159120615606029695244814632839013020204022207753765377489295272051644289083528114877687334848380331697032113198799644877674904038288483375850463761814968063724987282292131742838387466305439883227262678887562942191169462461598205665278601072536425365448324049613230355791353868821735039378270313555591803211341914329384874083306940236358104992185739341539245114668290025266661122366501349952180618836658120513172610390078795201309194367169782542168176931373074067351864879916607158920680819558802405265337402407048089076727889659692038227054488566678674154010624529481770870336252280657411275806017727718513599361819903418657716074306531716824912196957434840264938612626330490877507717620335879749740519134396744795933787467013372602099961684173389351628947416826122415428852455134909604439469674637695548196975770308831443595841227176805812041755736400348615072046068115407462571020968515047248830096656285710480986087483970720173830875418243106331546159449385452885553921022729887975661182207182705348267698389181990242956372505068912425300402669254342119021650580913281156781539803439040261516420081485132004774675648022676058665398239497738640021328973574875906435178847681572359799997762056508813866459459596410334424370548217910592201256766139467928522632638068021654119039385304058982638514532485254244733247055026501009992723844701518280114714593428309501565452177427789966740288588679748296441278700560893044760756374872110138409242978235006257157682178621517919867466785601426435565566445381125161230860665455080734971919728446586187730523187453108528619874945778258700570921834329196244198465409103896127737583861176018103654872358042167190372839518642241423772518401837351996512621741279527649397139064874071571695108130636730111114425274744318940407968311557865961418199192061665216633197485424029621678328474163285049018954548402544356997222708816102779958602191011809246335233277610606433827240608948108657125867890301700612840142364630459520307523694097879579500804548486915084816832939123253608324609669792333711811217352540250770123612276514472308146933600846576896390983883489605599714431140017924801196523065327995941735777180551716124419498674139581194563230780323367373510624867843889460126962168162320041784491843238672586558595717862133765918489806859510123690430132684136042541152309090637788530429567477055558989226502283651219381704148479989718503320658840962234313042497841426329673189427175721836396819769984992227032575592519089697145017623889302636240985351642594476701971063038520373869057383685814963114581751493418087036798583882973236724693381397044461359674442993114195361227534725970824817766087929025696705543667595934921729734052133494448606917510353220472907663738773917076014256793215757587581330823115281000022009391288312826751545696159730374140960026844766255378507017023054038377020115118065992143121304790319515122283457398849258315782533125727050735241229819059543060286439963392871145015862280653860657203245372148530012878996410846647768462404405597149707509524935557780406416145775564949951884327605600356939735829510924234955265157089944992158753888300385504943096641877211035428366690995009504116420856409637228879877969207973407827817653847707095791203807991130725871972433589965042419391074242632050523985170175250418867387211234412621663772655500745408179836573694238886773905535805480911629470278732995089751908077672827670483484911252714581182961354288316432042302178391008167359059785477512628558433373252682223030849404851998285473460575909546449220934340390821714193247655923606063767106773832158953852602302263446011950962353933207765119512069287326859616321212089780012234770106343705584048007666963415645033403842995143041375709882908710261856202438039416239499097109211632943184730507380866874355107890078314151985609574152815413605470260984061752738776404405281225188717477338847672353667944318653163100548042901817272469139748679927716460639678536820578060630438722380683946249570954583721006297111496664159126305977992890179643165485852630821978671308616705979280221347387043902323209102150923380376926235767443378267829744481932261406729527036647374427779851949207385261496056838983477380314359272789389500956669320259475806400056016447353183357801688509205403869280713656016510578121714197517325141545908601352370960495321473514553723427257920346659773283300113388801135944800967293902271232699530854204040656450310794641949649605775335700386106926582816418938610621213383787861571945693702602060378100925177512933989484751705186794620525043888594378083348054940578828781144763035183302225504901757203681048019129574094681424246841258193150296077283853323714456318183815792508144080690678834378444458526539279573002872742980830272910467575459950500021946066858323906765690506194235720383502869580601065385995908160684390989014444417066948349820925497558481158130649580213562490270397121722299619766887936309952035529165514265211096030062862705591360211922263893647029724342501920941207013750736614662956644470789882960784226418164356641381144562436574763520771597598817370363362607390964438122960564072057806148953272492611305789409861833803434802826545736577218479674379536106874362763995541951047134615662017714896479939102834259752002319472556378826701577735330687666506743018289939165198961713063259728874512891634057164419245010354319120106708918366726497490874775351005364502936530871712660801375808653348623565425527317922331107759213381275943896542060420438083964895132375716554487173200197362529135270423427471325109485232896648522143897917206964804278312398852973902633677535346801906899292598477348494071645333945569838606957482390706531074982659017029690635712935354118081929950497460291620533267367659997182013241752604350558050217235069833848325163167036470598546628258529719468901472294392410701456057303113439025000875404896924501366009332575559521269390238428127064850872744949595231034359595974441655862282007486750024609536303032116017915623066748998660674344471955662622257508549443200205089371019662219580370490441235437145348912247087384087490462425878511482903566937889703482011817647672061137328644261688201655882063279836042799626135597186354463204784897197580840876810279563737807011935827136816834808605443079317793961590702833158455267817857171106033226541700312023352985506117542035373130409784688518726350842979878954060223517838912584816096866901277526841803397274991021520925042496255476180859441963999700125501070342165015515445609060907365480049876936221662251027518267796714804656046835140672902160069081491882733651816108401042211309993218614423253728340434373398068701785355773666825086097698239444805205576434034067804807179717769015681890464850162130984287414407231265305954596644744854777377141354016576867966964761959094781839808941075882334909591595650252512835791809738928259588700337567287754592168992658094853926880339044657182995630107739595388419903080703628004447231026925705584351163754357232713197401756207344530652679738112959279290343170707447001462768104921795060208399538505063940093997161226186663350662976603089376397334551169276596751912226808653786027199141259145979898004232670322723654572114520876335378554340496332410557746231053017749288462435142597131792084167344474391845176264532609302446771539885219163800350034332456408685141355973746502582205543149089408277722702999408135312253643819376198164347069079283821887460935334461422264927523966874067729803150309119391407340688534667001478547677202292973255063128839613270181605280877986617807603525980528905224660658917620739505459024514316483182540133414580898798465925815477049582393262320609394466450517753262040978346621726837451923055027473956366430938454905664758755561214618297587280031341861687053582922843028337505280458219126898346730153187054582829770756426414709878479943831947632320141607371291684068325817246744133983970146054791898401100338106885466719350386636534018783516202977401271732589009813010988202396507650026238726533370483563097914324132213870401780612026410078907085937815498970454050004157302052026548836717264392445375300840291980837894798714271244457491425374804782197712919867804322843383399627986945662559716981062371966193470373302603607094973922621277553180393595901164428810253565575156857548051500753245715758328067702962264400713662222445666026139428540118150979064091210409546465918489508780763346380643810781312220116874255883710664205284929530583604500596805197808335494990115540358703494383105435981994428242544105006028499695500640472758676994473125055295427416995645236015149443467120090122275774207726345460206340183825640672086112640054319137500428903617031651757911231517587189241266326253180245051200044401412416507391594695868717082011428439871883688823059853121684256568709489161443824687689493320944381569395107126566273025994372967547452217662631423647971620446243952515008022505229723868926391623672587660454532702002373707155663455942966073854347416925999698635230591496092379249666023596192953025274831636235754080967824654843394343111520102298785447700133003810979991587147117113814548670469193394537851023843097619746498099860003388517966289539605860861327426320044695658730526107566623758683817720799330822694355461574124089373840966297753035574547983670134521064070583860478266417982269883039594289581301319674218346250025804951992383477985675498274748542457553405516078698419189366500869138549670547118074257640635771201536131537556369629795394942624985386901206936297324417138821391934292345470521378146930287883164846451864459909934404847147227585596093056553465911585769785589960959686123419171847703753975271629361199380038517619236331117093510461359875417041501988839310444390548337100182655808005886344548070280259067253331473509282379181865618416627454985931215933344385871058388568781735494593352976365193090132627981544759578129364217028708316763290473954754778726317997323841513815430112034968724498449901831704858313598667599586353632888453756909621895723454245362987628742844447520709707315424097544007232371676211111347914329021689712757826754722069819157545822400113576012824233354099042723243759091005375893454003817086182001835339022203454731825739813204087968348329913901452658417324817400716224335966782635470112827755140652632657898401805588183454958320973242606048077766208613626886440968443204891444575643939121243107372382151705115392059511646375838031148369426299184322671288161114467274537134506770123866080980354641380548087842345343915382372071864005512227124635994875213368121800505159511088389481275130452232590784414506353285043162094067356998954895553476416373643089527190880801970731304610637006162217066751524577159621532279914037994215887662351665111087192763209546996562997801272270996271293189409985710280515178538611396592005555478933967550213998518417300759555092245104818247722624119821406417485933009273362876142762726581113454324244101105580826976229849593817603827017493491180418373936837008215467706039721510272485368328570861337794302503730068279553032225925050154964545227010700063912819592008121372692569624090780212769793362398332726677606016833216028745257171354505373477342708452400064588001594293019333330235923755148587200453554146867411721210499287465036637931034117937747038988859018250501535147719291582491967233190699726000390277459208262132303478390198447578263998515034854362340662681619540211648039942616381007420905328236593600402491923206106910216621069543515679274437864502629355761380300597377962470178147915360603108980085152995988958630709882357715698104653200266720688620205483857650391972527143108904657762475222039032185926378263451236486689631742489420057403782103974324977347528461006029290005147682747402737793234881045110086218907935771306371088431988394946593906448954378926341261917023156706198952914382371242603835796785299360918364090281500442111180467444824943192120315832780296491581479566815438510965073756119139665317078156983861506662915189461607056663901985726226824070845238139061323949766470444377689426742107760314205246282638366394744406995686544030586887107468283737960920515112952628573157197586413288907444328632636951151971313750274389526855513216263733057533058365563603101097988733136409384591631038035322264858354298180506772742140222506286354745116848511860599512981494335760548858194051198779056529214240264657767330792872210024424053674942287665765169419525678411140013556775419536806194181658906917416078075609319876047465111138776402099698864133059888757275278129495757452601560467046777542002399004040461717117093489817347464891325087232724248239532591815028303362659979987173700858171837106909612724457480783249377835508596723111421068573066748619485826202161670280384272965701640822984853439438980884444739875218878102116896770599839915456638413994803040770704622217050884499763708111288086618673299080162785042300088579222577928793406551747887260311706273914152962573757298900617447912944409230767772317563052659178094575831501298776978803442618383246305960806372945099315671135618044034603913331386719524501243740383194840085772433555089635859275487364857909997279824184975089633029195663390428545760095201059764855866753467668374742537211577622779892226376289899807560700482488855057705934391370388815913852205421148925675364396161091409307618793606032232505392673544127960573870639595311841453545619402956618793386934550586263824549528154493734056787874426687928893518121525837557850004370047126952891900626680688996743542443714697903057406307768892925566411373683911249741838977510291762555619096739951757708458629574585384393369882773652368440539314074231322129488633575704226725955588758045831857400876116852666720092767107051623584669105988298125392399281829486822093480829342276504084602567113377167671798123614184690095773349545867151538581825539190418378064073847253048638879404764909555724195048057557865802189854106627568906049126420799237242146416968397678318619306050700153358920018467134330614708935271773906844475562836185501389912993796863832218667940916482533812286559306967869896564928246525760429083795110200912651956907566622480807484362734383739695618858557719576309962817030559142599671955792011562179918227910485296293030830894300426683604791649338733681091422146007831738561684767848506806498906291234292548116978972359180435902161798210101512797875702506913561124218054253264615159944404972886603450456414957506466830841300866289716707809162567179679579054661224951343343746565100503490570466067223915071704604515443650807091262461749015147673418395458356812715944688976994086298992969077363149096153607062024549786120861654246282043573815467446613351472718461556398203429619442625370362926426436469864510200287973711368767540677351539550877725615796252073883052250231838131023134287100226904224173991725825084924301461632621735114443000916604778892738766363855979853097579987357661965926390527403681921646553695615993425108665853248915051203965343536583730819469302791099082576037320860399320860711481007571810373338692069979666862759590227448987083992453354550913484268744624660192502926272752287142619007843535861878278087972444204321125759855850417707372973098703615588979386791951383524910947527416251840946719310795724260376102365384790784068915108166960481208590102984704606300538501946000436705302631904896866356859247959136673911635727360858940958810684136346053134041386127113970505910480259125499068266832330169747896188313272105498501266654851191184096719918355567379399466788860754514751976810940296745220208501857719932768376002919693044888075322021520744231489380318693067703009954238762880001494498773179500683679808473898447857368318268768346396059578489039564676362778545101790396241973359402806232733526135676097912815729897018573666624415633777597181687463611457833582087189829622941959547538207613510551087125868241054791332348249803998372172178278609641429647078323182699716014032722813227852354063407884958984955153189045834520914532728477620276119133766906099128961488983644194706195519667149894972370889805208398861042712317526144682324928983957447137513078755609496829738187961427488005547280309795818094406096037583126287873710885909991763030065395664987764132309249198973317527723816330889208532331230902607325505061587615261821660320020875854213495785556887066026890223558656511565184955876224121647059345992461455601316855138504743031111868901846574905850028868940570473664405024966478555496219147429228282491179266704332082788219936825123861288019876282004756518530235439743664987297052524275086641760657309127027018222038013935783219639725081476368201752498857256549624226954360392006307361182046501194824811010868191687721218487019997306699082149018153710906376137222089859700585765689551468226298196648440072070166635116714618162085846777027062158283983785663392391644150072533901554704511359862612657519831269620785043095979582768091124336987838975336843616487557929135919517324224379662954515259339170470849979064208216509864968273141084851307158969013515034758547462613252497737635351102555034186602324234327607674457439374569507596418003249268416868996574938390771028238694375066462940553610303439644682578580217355949256702996170665529427083151169225746211473449494722225482870953399821294372199775106872036734942830434120322037430718698871333933607405478408415759100904111675028494857384461459519680798560263592188245242192092383194690523946343800872127208447905921888415768769924773172915803090661613856845460539696353406517844629759754323495272574994656681826762286527171076278228453419676452624653196059910042134905969465651332120094595483774822423570995909137060679774126626092967773593085487914338260806302584690393881364365602277122784128749938239589474224020771637341464048470874506241501180053162236866243469400671504182363640320236775607050622183906098419365997610364807657974259014010189982480238519667651432172255200252471194397990278527584933214055333376285659984992509411225789970724404722005106810611359116421713458557197747545430626634406038375660908813717950001533774870614069287195991000562156231425511318022767465910372529886234378673989161656460003147828724195911679069415435292896113947178142020778667668040068877935536836700773970523097432068207917506096637084473841761074083067726812396865018861456465540704221157642642636790589205767375094151515013761633577493495098549837242299311179868448126903390667544337055447416603011056484510531979732735792938366184981407260471039859639242216707703855348004432717841579934032978313292027297024652553002874747813913621662642834056932296134282684270444602965821288426463324865328082116217271234347896869900058071922160566565790012288594909646276061969629564432184709311440028763190616343995592557468895321302766921036451643035178423336261811284053730596965578013058943046642144211639894631056826662097774187190982627648598081284413157409054195824928909376924337985210054883023729210963236880074329257257968916113233914904045659817160851917212969362711732935779089333488496732568277263729492317353658714257370231100898525906936390316376157176929541437019405459466693674219875701136887156935954036095708846967222015071953520115574599799359004766998753730858405675669444891094588185865625610972218329838069296224870881300633077499294111643205302069808148581503610063259559968911548093127931443343371110617953133481129379363733996672473714010497304064773172053956343826740868372195481206497962492222389355547958467482042295274374947645693565518327975653879109339432890950333996040626057370895843897113831657569577769067610189908567045340440290541917412776843299979453525912222125083115661682295077290323090380872477388395420775261376814392982672786448936273079389301189916627040080397752709518120314803359324824251762977346477011815421843518496633074847635208942345675562734528096418430956137796919655722265613575340129824918815033173655281497947177382616896893156436198976403602293103558857903954465918942663538391152483754528713680266613270555798200807958996861475625150552453071214449476200048044499966157034829700902223742061774153933671788668785727029031041194054893375359216876270643539251669445035944934811943326612867110242958952225038491628675540368844508075051384103494131649275342486901150167209119066593946308076502546622224735640829629739827071416633159305155331144054773397038274069042798353882176336247630896338869628370942989645756212878535243467499910383693580637580220733421238410540115400782274520517202373309742539512537322155072037403877908926226559024297327848378258896598770410678467647057796584759135956195179675347145033720162482536377174678710430834587313757661587169194704863922301988556921372894155156883661621445670560771775696027318699515168182673196719024778261578510690655931440881275975508256680100633357821524160177068334300628195656384087281405052598278013338133122997177355017152198844683575851742970810563991306013191033742748332707169742968119046189786218722863373753666117409136772460322874268888900146064903090571312414789671592375556952794750386744289788052568412613894151997006630756262726745647044254811835765875636346202600675282361224121204323726059919241724963917566572113757855317762568857084406550063669162612827698742103611237624094107253668331533875630709912095168910772715712397192971288799386316537635640424538288859462589900491126974719449092308970836600386388714678432106568569784925218248438997634072660428923853734467456917978605600222703124580134594035975996418375167385001453492465154094641879704883451333397824526248605084919505027734257158150808296281145137924798253901767513355287309008231359628139553119386400922188706496592361693317913081841408815580577034510271159801279421578464259391008068379303720717219659512903966873075772432641232838030499023485960974548708819541130156894254461434827751340493401069207654034013522243422267655812338727722708651302137884584618636829331185808139623889223914894941732497112341819559018380252769787543601635076630364212983313032287736567504626431215240983431168517452454266242957655394609841384592446419605205025839224809945887632118410467209475133762955681733739111011584079689208796519665867395062664993732534483167043055141654378630035323079824564903259735403333225145096105486568225136553409036528557938233372480123395196774649259877772022622776303401595109476575227063885108134205561041623126551816460655079988063475239673940849191364055453553684504169520616297121267155620104477500169437840674514498712535321024214699758766369690823071291130795121786303069369663276680579441084135809695537928901477519339504158534423622595984073261791731430505997449568824901683434247263605085110416883889271440407717814824121125247421673455415382681980460241511289299466928772190076954604793059114939885537806913077105047240825385485401529653073031275281639845649603468958258360916441772260821026043377571837022605082311662273472172745891165033369166036641607921685624220147770822037355440665763876843315045633643196492837973738986421918790486015911894171012368824208207892699723845409137066755103926352277488027444608259790027767738202327060765083825627582996052679878281683748853088046967478963546709975016397362319600651414296070953365845628445325683931897489908950390997544283232878861024121627793115034586596019630146937450403232523251846423281487824828687302172111537205365558492573940735218774848785380718211230703730665110892947925019539401816372640519427299998041660672250318403792733656626449896147166516609391281823396621315592008560220182504600802925741072412154469837195668787232351145648419985757990528183996983462947110766775239608752513844645969535070094204282319199523358822737955878544878575215516799666108752388394148659708900045089087958305101336215588597501883220847871775215473009251597850511676247194152379462607490324434589890194050509922364264064780131840672097564093107852168920925811865284794106361661643241552065913022357439895553847465241484168122355874649232378779312196807170069020760540428323268352032744739718170718896680124704998750164578840158299206501688411854918651710747857525919183001105935999509754977930008962479180218324032410156096685609059315595873479193026532958938559517283905500881631124279046669095998578333033549410357979718574211087116726242556661839065441177206228229415596735567925280396409290802109363973421166661129673523425481329901480995818486419113350049792243774652013671855951871773700394641356416951023244075619482770643511167421474518448446842036099984020761598834756973604111768100877425214076426715090244604735425050522353260766709686944449761768428213412104952849328981551314707031927339762184033710347621569412953534342372121783661803785726933521149014054678520785940081704505068867073003042264250576395340257779807395911366986145021349283886146123990523330707385323720759337277814917102332663773687047781446637999348801288822994694116915821473225259700379971501343259343376933199511103705098732828799529145847951852951664555998036406175642687199446425472065421726332207005306751487657455190251637654928203130378319419017893323219662377831961962724685000865065282020734353314276747785021870106694568034970784618890856801521491360348453634565519904992869795475619067920089167004763303983978804082585815927863145693435171673740137451558761537132960514848575580036245886365927712152900049693484895089162820364442003019344409341021118404758048914457635716983542801670102275526604759669874156146612459419308982674412269067506058302902105936720376829622908906754299455365320559426451315482684713336745812304514042747858619567760703659482816872533902987744756001563219550746450319624651347357564342192494356118831742534637320636928697068506996192753406304453590250629796840667462804427433479590688352064914628450040455955427845298505506283280389659987453906858317719807680798387443809941831278858548358433491661994427233192331323566686487868602738724375701299504748835451808037539700552196830258632110848845516275098201568590545378762178407962005502572474724992292894969511206688953231194498575986932088444708101727092691763258920289851169070023496850946615697419717550616310350532241339863111135408057282493662447090029234862332563749434744011664064886658151033301943494553062707864610327659870189499668616165638922043593947874127827387158421550086506489281065174666517886371776915987056861472395787886904499442231430969785274582850901479974787498083892135554336649493914493714714648352230374550095237079670396145722148880138451074872939197279849636384231007101222170564749085906032814404329758901393057861804691810174478066516942818383623328334102229420784050446038447454964383113897341135381968182899937725567942838888247806830271746876993251383389132790033765491467222559533593787420648969014783390750312094736116682085040015306864453386653002516637596572142202183006104523662751116256638056370409186546964651286274540596288374461549404737232569434764216221181732468844322289502070166174192688533387343086960569283725077429295216138591664064160170966746066775422624540747248696146695619972735536798382378319760973345494474437495505742176677623838778695890059178564229256327430802969141312511923365393887973240262578104302167836502103267063256381770711264730198508797068440313353464826529848069516136460711388473747985846403589384452604085342300560940557783670595480895246948796161252476755292450438106190912609173865280099223314405962225418720966758835990732426335541515190416379443116577758066092306011493505648873891058547584609611166411412503949512027152084905500341500922539278373619160082492814287589628607535565742217506614020350647235855734422885138235769018803019876325782325555273264458491727804756808872921588494227474762475600576029463475742011552211031418031587786639824809812127084818474625406425608627005716116281953379031228309625477104871135400176485907465161011822014105883145181465183054188793590710709759811299724924099540665193035357457536805946575344867972143323131607871154051633362245083109989922224070265868809323980582572676768572770899591341186986131999991102581288081941965029463047186892484203905159271136084538759813491314703776756057423227748168811823486156928896158762170522131715937018542151404641504521245083160322442925290606716634529949851893351302135368047677460503294697492810948854497888098346796326213698784612187785716116611962659394994101542580233204352058213033100215132245438853002690514137456495721650348039841811477298856234728183665468374189808282943040239187856328834842664227931036005982541537266900070245198183889964462726690160583717843121669784182042388588812966917917915392025075246196878541299791304972243314813350278071711694905523987577153616244905012307481694332204692582674919205092516508793404970497185910160459438566511642234800081899514187340443451093535393778676361933024474972141121651286264236583685259001694969159295682486029922946603912346762892932718313449232957833180960529681321551284831121289652524109827853277410860279036364420505449996641045735810130902194849445841068586160974875820644251241731409329223069191651483087803955969620983274788529973251426307229403176003800195358703084378533938946808987442349096979240088721941274993278580461731664302842971074838120114546556562523052264207402561959700531353022817227239015113734928999233079622736212982297606244490138484237329349829849033441678864030285842615835804400180195022665852253578096449529240928360457429083182112873789925733138746173068610514071730200527405657682834869298505172853843941108205573157464652868721135819499346762825715038967435981973216257254588351687589239191035745582468996591159438725643779288769829455229270746923957945823319474895675948413954064865790169852277689972948320921259591305489320123809974101179982716002433686084141114916814671286930018722355406471398630399526259256931539844636334133330230491662664876660626739658891975525361689207971281397090378916641658482871073063004900265602701868246726593427859801663070119195247694859637877652603596373046485644202641193820436472786143045637631142523322829398208085014666653961521134628370935103195190957577752387378340005023252444228442987592144135136440518066369758657125062157831874512917599071764241590663070579297059098578620409983566634492060738755016509413287536668744001373826938194754516571609774615890913870870606423384243158683415594501277208033605000380641979811679551211208694890800909973835097311935094286374151719750849179500801149223204042875398550785905324518947601959817054490711023228773315952638779428571644665522385866210256457057542693159674464225172035572717707044563802649942944082182210964443124132043101666380994525146195003535831848994143447541775248250856655007089211223582110560953832536881150468544263310962558408166510371006186615384303144430550869395564441104459920656139508018770880172766700326259618698946309548225602611930863204585711245625185772259745653338253658900040794541983582619691792802898869357384706689722212958957664949457786005990742392452842600353643232698279258724814111321147841945033613504585726906507885640820345109725873380095694837950148273928130435625006929521766510043385946933034321791453574116587463716885703373034423176516769136504562197818041156469041711757165948026434659782662051993516332412983024796788094003853607335507585595203875915772477377497633256961053758499758805933911455286147440516056878722504504044383494749215805655937906607663508928655857426307271797009425800758763468458824075528071671157830058658534773684722581481365118668128101644949143966525723007472475519310617078879309406282624376096122508389218820271570198045796333414615693226009197696650986513227598520484334965902857383400400211965731395888232831001068013816591688892261399111353404103804797460286006964537583618120310750108102063933742270179359512593475313373007137793207093664208964488928393110251789913293289769134217136933152005645050906885151319147485368800224647366543619963448531640825286153011136053362231287731942022727263248579711244424064776312107539838395510989216571328202426514731447003761508488881666767756952032890589147342483938400974300386134762972488102444947473451901156472221637003590603025710722103557993123347430135351625651400350407611873440334843985546621590981162397430461132256857530920891925679109157218554804356245337096767376007865611982764969365316058366857431672031609171065820601781725940168217133219204323774160995925492605565200381579974039151809239080103795846859978678233924299880410099242723567797032779210190962819982820198645948253703743781208360571476342593532656591974096958845910162088995115765157385706407863128362199104587019940966599174445761675852413238914646782955023612463946490593515242988874081958908961257967625204617913584110238584856687269702055130475991711566653437280430685929764649012723400103068088448797585242397594604274684324018044711933916605768177521971133539486584655737585280712741352457760356874651179281059508716601168145200501898251119142032166161130769613892661088796140978933160009624368262085942925382129813365263659844193458065368417781178443716841122606184899117163609600924781885811348721677240618293746537931945220478183709898787105549258457065784621857328544796094319248905988097871567504460558021618975782486450268713469140995307997171782334905515528889884082592750385748140833529790343453545082629225007098834897894962236659247772910149885229425415627539290406247399124547608353956756061911027390925697976938410468528601094350416489332573498128387543375856355138777264385060386015988713897823202014408296447472656469778218444797659985798909611918503984810814618896698074695185590406514579279750590113497500459516559862020592520336373078882911742186019178012321407076055562630619736301346527527636016857355222610210297108318127568942759382319560754578685184973407483571766831774675627092869382323152945271054434058145269074137684444486047638029478853037864267281105740039850745570349673637204544488536231256338233206148211090500169321701716239265312106835614364961338938941823780964797665022666610787250738461669586519738920755795376342816849841129849730771521632990067300123871658719586452128777684294108833722162080018797199985921397021937956774583355275054635445075863660196537636683640924594173203231602745461819019592586903969434531417606278461096757699651187928594888816957597381536548979970232121752121777806225002534215887082796936796483820884289572392627554394854668798076880999372435667945381900448849505699592130946964312491291588197371121949613322411429033762383844130154203307299831193826986248179558577558302255347734229039012350219314702992998910584378889114638477295296817776005282550696977553721820184252565489275120205214118078286067006458402376283694308101866698091086103584017303552135591215042276121139373743479806417343370139558428707817665139843868032280292557059716010335701145850476953356249838268882135859990775533611827655101996045401955216407900868989410138953070335352209969389556856712404065857755894749064920601135554790673146170838545739468543562026625007908017439080842895777535580752224061920390846655447864409196139665698002022659654688433898836250238131812998283413880828134456279097542384143724674322761913840383436878848961624016555387370308587345820807282200626655126508486352381428198422261749041976692796104446705237186929358117241663390816295434372305175008087620085485803082411433041654928172067428611333763255914606498159857136911882629422852636992781709844329997342492186816482361303996639896897875109044676780214310560106312879221205387801533037679655875197191458983850544906647709146982789245908761059386581763056661078541146462156295187584382002839812995536889372280529236024260739040134944636661681833370190951295597130926342473585612585911555981158886804829973202899034056901344224037084016986418263936412199181260462853449730910534932054491426426022411113738097293603385560586251499212940542721660757513219227491935468051057657210113600709631652617367459645929885917160925960822643344769619912328625165724318605857408507165949709659940052233422141053824215975105849259619795926782305450513848303990425991995621948567161940915504061173341362831673354085671059319046241363795546760029609832866557198366939628848659885262928059494168418875266443904239927794571531902283355167602873894309564782388683035529951114092961653197565264073685626545080746537548668157180058187876164326585233297423378177281396622465389226822618813111472160496331347397673080224495214778590427254860568513815210484223165786788771820416763689062339572012085992752129393650335375395944948047523237588023657561110473621954621091206967837275107137900467846974231003639026949179550145591377965036051551801904242932793889630198569880880305893919406001738068694119952932435721623344568311608212402994935924494618844469248866988137347570843112312541327511673819131795867157277354461961321628102762523938395085533395478455971461049349153446133378658550938278547175872038494421586133004757032004003792794660643257802888117122906407896074073905169037872755610252465038275164050497694941173745161955353839291605973887716831760536785470196632909701360133924196728596223015452824813347627855785564691875792354477131123773649609928727197372263783322614090997347263560861806871901314796879874776938983783231405879626262140349353911253605153228908646448215180627073164945110234848754915724953416146278243791781790617445941215430999118917823219066407001024510179436820357334551791449826765974393019362017414428027931046310617748660334986952130933641437400626718630827363994800013619766103970054185704926907470625712443901363724837494489857666356590898280408437726578175518017831929710103115288189348027724137994481446051734734748184270895223351426698217262812393738033539737650600756783763152978308580378424747465376323152053297803518159113029682745882028503001720561405613514273159778079456299828275845293097700427584294442416739517268674351976995178264789365165753967664307356324150507130190634571546258920181736569854846175170731541021064700704898045589932978504880072747146395573894355359639486135285672878607993361924371584093679920051877764517768126310494093249201886460991929469897373843356951543275643599387042906146244153768499485644023948779325957822929431645632167150421515237294052623176535871355257531105503502359556579031452994902702238127394477981018871273421247389172232674130163356609999687561494409454039188990155422552556523664219873384882957720879280344427637680786781869284322753395042243758161900794418339234778481772365686295003731995611130371919369749262027431353527888492819058218585462133135236930382058903076177753342127058960434874370733719182837964375778983516487838256399885478604831293990063066832150529033799162214556151668336668826642372880571976747821431057535119221576780854389855217368630462712719551509361691687388112689969113969753285980941091385401101347229112385026170815836654010357037325047733675576101322125405922658744998504565680118442675972973324946641456006496696635251158799002885369351139398178679260243537521912410661986384386951292975753274111643957263080722723751516498038096785531032800328910314349760310701794785196531901302670241951728560241321740402359362419984818714514060066677924051230348999225405937321638390524654768445509178971716760924659915872418392395890296566609616757235281597856210031464862171121989828457401925999816752404603376607542505607817430699721524640345784823701997478567326907191942063245952619654432557628226253420280617479790484498048476020268156951275775679340059019253272442105814452336510924703770404209336842854934366176263282163068218060796357919502913981491347322320860688515639645808812973709585698073078196714499251776570023287079663999008864266006498852049645984489279485504025748030015908485600765801163001787663836175640302041259935198931352746813665599295396615080494673978987619042479127599162869822981542045202757975809554820813599358081155229003806127639217898398906389695571421780755738569271740642523314242722602925059072166821626567322208387760991367420946008567861197465441247561517980866135624865548778100469990630030996017858271860615754783590122696946322432651209884796794216395601510498259211936520505119587182912355078511856820330320802802254766739087839874478281077355218096806685966456029391305012176647698179963039918234623705767403306632283642633885995342987957595332683927003277717701867813290674686609319462401189611064946991993712354781487578465616233069325282869260198400865431020412312332691173214630289855167871962740675124518680329462615533916710850473542400602273073222397354729544436927853958322300897103049884479806563394903245819372585703683602930384542794677496767006123607177309421171576250830470820903094422451365502565233425176824518654980775078265510637522706725103192146155921962659343627252776265437995286108411325847443880380576863765249505192823325681429090337246435836827694135877201098375474072193835548725828844485286561513217919810670839473546730459771020045322055975727383157063810741748744719624962071443870077461155020381440124287108947367824780808984314033477112070049099439342134588345972855841448132176655600037645723513414773381108057464728532436618868435581424462482471359116571595618044690692173302165194176209581272156973791642620564581435021535143689589710406590598111891141290510165820135433530304851430178601309092949002506561946352349955730110403096545879575751572059269816368650035618622604803737135112328623957494910691626341353890929045779832143074286003085442699584975608399503105980766678899716154910872597758683747641275613336204480571856323879599834514059724105211074950546015387342993375995982234238933064624877483944368608330991083058594919164725612595141011436052616971614783629065240022971870818299273058718325554163176514699320773905907190817272123335937647600047909678347120113432371648607697403039587981808973986002964638921579516216573340937900345805740926299315272075564651710021697532500085285613148662487532653248911325925994964870918554291269777906608086158112795970052585027524819934122240517021928281207001485841149355836728589323584423648906760259417260004384667040214395230932353743557485104311471265120436516009761243402555173320171940216335267358866970427610917294628713078708647741546771495176450856026692518906772635019082270710353728022621341160698798122463679862055260311137942710913839321166745846428877237721799179071690880282692476357748073339292128216134811917948770063248225970396776356815414070077755009743920384900087951404028780691873663148367327672363599029569563309745662130872758342282889574696831415656866551196632068744847635891781546476599817045491955291089790546837073302800823684853147801497379051564933284796311632427166965152122070290459986304242488630507401483499773976619930512349492789516964316348180274137079650397722636480387965621669652099760037016335218548363452031411209528820734838910515796124506161388127944269373139869775923725035584206605847616494314731712640728955547529224025024978616179253133531182992918451896734919333300861520998506104561691804559813567128238998854131704497313594651875223501525124421428166827417160297811111753223375266530657859371166372325824025023111871490310687333145597116821363275025337739353761118145484942031550518992174013283403289846828095999194948479026969965502911378272339788488763055827915969815099323480190620069305202631725235940338548178712693563072392045500102502831686056442359167195103574008709579570164269319020379434939584469335282882188727579182582460461632398016654673610415807588275803532971020574312242532379986962035423723017294735833788676709438512112773795979228681283356699367401569014498188414032810606505091628068253122756783585601748156870421344780456309277916597673672858744280234805629288293408853581752257192140344982583598103242243136333270246008253558916254158058754484587999370895729401610493539253353270241469124903436103643979049706822238060221531915682949966360048799933956039122496003289328702930322916982764374532274422708037776769889069060008600550529989552412839893229430001389936852504193972010587968584154094034265073451476169776442995490498793258506740810702390530871620438250752445688163880303893029135380190808352606089399410649943395642734263144960273096614740275888447688028439675151146456093597444699853519877566281728412062033469857239389549086302468759381724400806182695572892343914417364917887707778687284104516344158575105231229654975520312354998118597572088796975918980367440407449199417525704724262688417137943438951359111740710665058753435590709781246733879414023687459411944029046224304737290547689084049812116886683460155038486799988001129078938658002985262500409368215434513442168557145946492008538790452637230517094669349174711064564816756569575487310735710731118242313972728188009872333517033371138691033717732014239803513364658310061314050437094768611285852704351023306662765427570296354874802679643165875402498490202999325052143289328790445312781481568908572704127728013663583427077829935964401427295389997836493849128323736239211270806683788542303171681950728013257611835528157851516432254543214944992339165662315727672888552605929933289984680836690457375746794875037872257096452810559934179370606575060915456741915203903096514558316201721061673467467770620283484941252990632112991333724304030913931186775283271657668960025127318959820031686081467112953643315728952457993985019189223424713524606240318877784959449747487604085864466109757922290621655336992688310103700988593072945520275339624569993440203820468291723411176456041297153697896229515548486458117242271257245320101615221634842572315790165210424794544911754744930685854855343129708643410841139567047753594307831909828002429036381752108820234663762832369080982709491164253507094751278997496293185120606833336945206711826670560685478757357484970631115710462708863090900311669060793905515951754987617501745649112736460951332821633007946774306870604560120625281160343974103923533935308842219565640882604977846107692662132852948265777814890306054245913076260243263658181578238586732237682689254185318118585167998802207540454428230493346001655133177998984555890571448454122339421508297478984836058823141921136405793240359880446894535849315321422501227610694980333797943226947959069620515707037431144033147960562592265228312354921215913264893333261981711993479296389843665265681740083672601456239185593385505917128880309389437293588299414069058464655796857517558138006636947060195591831223298853385502839836159763728966773981830157515013488507106474837297226946358310515428432851413500906536739823559602315742301923895060066342300738409865642367494489057133660193520298646932752623136122852422203699859651842553732619157987340137950904606566934520873043823975971453732333751807714424930239983770374172924413313652646606632198337100864066701146418790995511411062288983230348424198898830813638577154583338163612454478213129989420921818959036019175938946804611888892443199934271843288845220849927636935215447864030438535465145120827209244497949613244121858104767701802319492699355089690498834498785167680543265704177061666759249272159945163029884694443477175330021269798566011506858240010361204515668697242190419380101220062662464547564747080243895620213153442642874198068217541874892244730321497764636502601773840849770465588112068823738005367405429867661931615511892518986927107606397405455115091263936072908609854402612809917593174112098716259487426037087303177152619718982213231522746049937867531885107141260884317020836136106239252517740902019048343261534695721202929511985035778673906431004679695805558807995547616988192744520496905864961882869866393230301730879816919861608584708699754548004725609739316737878180858035282895392784819858440801963505733135576409040705032868748123758543809476291920052959125954274884038811252551660660649334719961038064125592712804718177869578496650685886054968789495535973165766973420345559095920642539550252246038141454534536217064960033191115662608048744441664422216948874083791659553708041649735155180101095067999794485127311168147504193406419565480230363107005467287737352195896076200549000632584343910598230205104796310087160337644900102645189247676373505821768557797226954639073729172997261125698612385555391628574021493770422736102820441474767833627667227506529414210383765859476057930063541957852968475258199700645636729358949621589143507534034690177217009087563445030209813852507672909813708732201237135980525815630855052540104365486481579552582405789950911335201229348020855013985440840463197485448435644630112339928805572534613747955601954856167493903273966853064816634362255372300763481785271255644190862153714998387015997796102478558150202520632046614939281198294022773874575333856868159730896783724022269187997512341313017735922848062261613030463432970264507951337456330087674626172519551367224195553015738690984469139803642941914532046546721724665049037886421827533779438916223271549286850856483393025899992376400263115426268426166148229487862424867963446800290983704707972057003226032384699294318445745402796554514507727729016009664235948165213474708381343385242160236497959983793938825175272716175248175260002457100018270619553650632852092135671145397783882238757102603759448548990695554060459762262254687880168123165760536795490712523457706299555384463282401452848555400304723492487156630086459646201141166192074278886211721556246451544806622534550906232149603800953083845275969006910514967139771592853018170422837652018654285806901151226030866313024512461430478457578381988326589614093633151224721558267007447831450986178560654085528667811121653769915704736883897822067277598367788005957513925036494292011529755751793473395154401132788195960723551343639787838748951639166063378825104680441540973542422833729704495673449456099535336115775628455806375282789020606999162714404090158831910312895448323890070708037458038685516107156038598344354669046977908699796502471351912825604161719076221959019083546321122112114472123470158309788824970764728422774124765275717939203446457170832892970056947831104405024793769069481941786871569786515953315168686915072408134799078932803645505050519335215817345650561973005330987402671822062885960629145128657435412008073934347838419596266225531076018575328107564601521010502335616091501471769092338417926706159472723306689003289813812927510720645721916837270153372598698892383837584379679334573257420606681819861160713706094313755981888106305889819496108375371845683982214141668670255038159530323075083258614296119195660587869822114873896622738075470766926638068440713745412494716982860378045333076716327140813956703953758855958757722478057131801464876653631270192480688314206675526733539455035347617354952676951337898484132075183415139411650950639551167912569642352822380498847513909398239214114611192084881905360776747429883224768962954060204512709149681230698838237062934076268914307525190976054241942377072853109029056048657730611031092415909841074805670493707737214385604108294013088983967333461957560733318818756118656211011870134479686056212289515218177871346701894205795036948029739061314494395468545401193736389823019868406923091682198589324008289001969365410542032823178385980285480222216290371895666721594479988880230563293986781803822221882392621587212742177491081673241387056258938925743792002725697570665156128938349551341337569815278317973842869372397130280146581614591913275844330465461111338981277272070848531766836794469161497798106621659083698821546935422271231351585158197035911721800436133485625502978366873893566475150248189983129335849175120954409726261228202244234204715075751393788432353408300245447005980003293423958426786301514582913792356977676087265777848272056716381362402138848094636912347498405160715236250293829323396767440399768912446808763229186579635593835402724670148776819854261217453592162826551778469631021463372455666315290736776204697088659934387243127631257992300710795634813101961698460097257046235060350490811677351930686441824649071389824871927179010622661168660310421561997336383665740359214867924606984085895628549564814313856185394463284014454443390083788075839655868675935583439767158779696628067860724578058503237356624135834862021737098310127764669660537979936874592045526836773130308721304724401752049548431092939385702079670345065619231380846485998853916974041778316493426841817242948912337909995339465261927212264483414819928814460981233097047280294834789712956639737464879026202033139547023800018266623223925869557523353899486595443349856013486925920231349668612345632921910281006441566552011050528747890074184460769505547992328649179107614506523233209491767958556754403800251577542003048543977008230647333652659647234138225964516923106339619580198049528567409949302249762150854539107435705512464978417796546728108344094166829280139379201701053156713955689672834165502480417539558745602146498022986883201311932434223163753860659615534281099824716334965581747923263900922606017005073187587387450805945594547937860895719195403872813683447529280795922068121703127228641291505563280608949080961007751604727317011927258289105536742794810111675879680196578389903685446133391593140683494930140881964481132813584283332606226600423046740154582518189786917853020478190884848230062306668812687233603413764715242602903063217564508483733740994005411855780219936786117611624183327513152183810270632317346114387190509651892060252834999480309925793638334899992852255617729508290926864566821804295078265886182400470731390419757424170987463160195361323856223719622411623991286448178925383560032844121591489280773219308360714117880214098168877189707592991803636007150645495631700620837484383187666366817962832971502828394020042773593186626545925431527959432385072188309576967597342839662667405480127840267319364433562720208803502656472465838801682121964075458836515015383740440548949987458013494064392747780991530422444759253866826101954176287367092935817722218948778064482808316456878633747417758472916999993688767514021144608176194688941918056980537911594342944236873238476601594726626520969339312507104186614131761955799543707702751573337477391669153641754224669578230182635873367494856458776041616255968601669260751394316595835575157908268372618406537178542636198500778217589656920878463735292510019122185460480102317163187750980319781865891014382554735939671224882495251363385424212033451555545012828586972080129620608321794226803973081751760697047597459149380300670844169954933360061601135070487471807178718973943906869683478638261606061208718598589751424527167953137789628696121568975175916637512964045559359353123327005101837891514811251527005796051795393876744719284808613596693868626372613392485420040819285946277733000047768550285774268032629033154607457263922365300351973581216616869402953862227221309525647434962457938442101848620891798035893898880296581918557930380041729021313185200121377245850962533125079337113661899581682961326073447345896473346846170128744772573379222434635686152441755618335703382927577031180068050125643509965986667482892170629830819966309532158847130263553097819567682960927423536995614543371531199971786504614965456758995322629703655480747632027285856376803408592234350256394195662673803602112402360999040673375760715087987496924606589111732345129523755535910701093898663505636282229766914198847078868212587412167668613117314740003263417260707401551338393198029877165997251359929897952810368875985371589103026284318096643974955781921191769027074593637207931472516182160704371205388728404362656408275858188746592602587441036976952868931605507508719511092773334733687953740260071781092020306673913296332921930639761999095002607777330975096372186226312373304338995668625484640937195078036707641524065382292043097273517164598390020701327918313472788415814044897489156488904956305961373987853573507240607166313921845126904591947280773827188232549033425898823319649219087329206043154152625785825164683656602683879069748330509237453241379745044778561513848035558892714894993241869342176682759041571549789159832984863881464664375410581710810565145624077305525239382713526797329044025757222943245022143998419115845343219091073194608599700205188773438724295283789392033645814587651176970578408513043680198775921217622217810989821164154602173608673566989075400948014208867090667597367152813649008827261892925226493236073062494302830308479221742355565740448248295700370609359995589527958442640363772412367360409332926161826266191221541403879720078650115429772930674885703056432568523609421255445562743320932692486923723977660261721742632417263077168859968066003869927656895625530174028881891176665277532701888011637359513811463142110406318299059805860787187584508186813846985713181728537953514373583275486514096106147130497236446926787694455046726497707538809101895329946080417560523274210918007693914895735097488872431652342486960190537369722090533959826533715918674723738002736838795052205790939212997694023556839489151775323872961206940776342586773599728084604207115210167529147251679122110116744448670723177726680638048480422849341731967442522912352898405205869794822186657028981162855587129809674044935076298089000943512505420461470387781884947967576548128729750363301999796315035989967258236839042224714574345631546310317822130921577180247670039651506175017191000904626906461810985358531400963679782379002329323553866873133915259199898715484963111299978653800253001188670037005639679275306147379659424510500252919905261170306965573975031253145668453534148265665978664238157501892676265491038063099360241016174233468967317845998159856239404919809505136318578544044433671289553189119992664217307014106900724910074794638573124017280021819566787796886901612789485055549466740835519314391833377118534277506453470319073358206869153938397219100967029233851438669348049552376598116268299861045147349347898779532604059348629819011641548328392821846467100829999879858284726577787715989963292866864409233148409505011380279675497021636929373576614132507228444362114403833176621923510365156750665749112252141728985324199497405825133393560232157504720899945936141234673769544228857269262239065977760679595667299051906081356242224348431280359764748987806105606353573449714824388673954665994252276124204607275744834531263169346976017137425746302484838847286328440436912025097366847697415964410155965654522912789019716921539284625964948384396263948731761008090991142675196463626973150184899156798656497774429247478218768973032389436171302570739502795761532382075509328802528375765885252012821281456500001625821296651606246613382109537570744032323607350203613743888914218546280669731059488287752494259995714157968598324511771694568577012961754164881745397391424747392812705875447245343477499745840684535652701920681837764551310558586742765918214455940592792517956009336293681429252264356791919204977205319705438974265305225075010128451740145912158217179042905623610016799072807916358221433475710277818703201081043510164165649552751918658895070400016044065064907850037101182211129757151898033821476140391714645969848115743548746730884891728736264288495117690857549635476623156800321279895554229004945581945382353199823070565122719614939537356615898802759840754251834816372731061596944909134172316844076742510612252424625887810448562607421096895384700764712018199500654114239713298622684095502478987482866362183134801194773009238046751843735849145246014352617102733192032317092354776032840035267904900304098572398501282218678782690741170148046513461312851693533272376253901465464272592528803918428600314360901087103202521283539570626544071250525418255019105533047563695437781217746261953330474681185279919781275400785934194738058976278385365151685178430784765180265650825794405221588267723275922759889342284994111135372431743559256688397280433988476264435025866245925917970605883337752756683769759489457673820564890830514590292126988523032832174094252936060410623244017982307645293318480786877876536342983275086152989946761351922092682532976097742659564614115358243060996103415686236048895374787391494135797243545719088124604737065599867030768036827955465720138605354902515604342966036298291129616796843772497220792317405558914440856924343287286108655072858904527546309927847640741552310618380312103484272839792398574143866149585268160646955467774998894928426834838145043535354852281767807401396382059949422726370598755845600908605252505079279235706025049596652183647705368714362100595376474831082755498771342782387005962061190583689323973458174512661624899890918786119382689373030941053094788876378943663481068228648881237696173757517291937848674746863516189150846453231938127146794134429526825646160352661874979544665311722440416797709165539224506214401432884394416335151683176360933258821936393515393983058163649894097831147960893363116119746036043229044205651197660749029165024224970675313166184092436601496863021102203988697131774161867860024706147848368043418604874361339441069887971771929449040376435804493518131013284397916435072211557193386241416997834534982367402135614243684236046871179678977584685876181257357638972400961065677364255618839400185647498633698123651521838685986390761553022658094817060980625338455555225196594847668332294699913091678993884258519585268168409282875551195372989328866284890478852687801729184267708090042726171294471278511550752283765207530247131146446208176520400188924687183579751636639042049753635641043925415145453748430640909402938300360602265212641974094365782553030075021536549471828430842131995532867682014217604253702393696060083013730243286906889480135305627041149941910755810244877120047935436152272314185388769986884060168366409653616732406712781501373782169934169542867805931122837484119808794551683497493792815592312958898471197799390838433434256200085477985101502570397219052998930971962874355174868071811838420037147360004280388603722607638374305401263306496214114301202469095814334967616670956340580954653692157425246682715019620398774522674535003179238072674838190552592863564576519795313091188071110877460898799298798237363304374370401479580123095649914519293827687149035038144474926540747969170914930816965540518312124661531653300963030897072039822481585944186765374866093851821869680843941793163830137689971314497641119940976048250160623452818802470283033292074695980513349038345672610705947125563106946901591012850164551375143793269668972606823252265843990900931339685528914807556051028850769165111030284415133356626147290761893504532344954388520032534682703199318503933693921522458673772840608941306630874986897186899898959509287564548149125231870890813104519972417490413673306244665121884328193049079252841303872053935865247504208529506909731596658797069782217775383708313556168354994954060132800939476900392841456318785443688553441378655771719501822679081010043118211734781985372444518402673753988664214970172937880652122428094294503410380101417064475673185176587619344655827386880163498039051405154343887349844145321126763389523681468449412277994558566808663312063612477779547553117980530034165819031902644434626777415838687468566200154774578977597291728836365107763595258130502836014174967838570131093748828563665153258725869011018384762640504649708400191402345115511670206441920448802073814199117576602335779564297811300819228129407459401607406668036663277765153148493910987974296459602147702508750632810146093798364063829152992007329709823257938642983884077991895167951663667949343969091154526988287083804621262697306822619141668640427430243382556532979559621981227586924466785198623865629906808832915677200726581388243088429317409227251132266570081090232981103954676275311732230999859932760077436856891318611147197025437148894739132102156066635519623851119629084581888788537727421317170393387093128972817062711411609912553497777843802217202440100669839262444684559270091268813219682771271688509649035309940541119753560171352047823675929296487897835699317540070510946707335972140759342558144231461268885028388022142897293770992100760067580181199225147049039846924381720800089423485777133400162891113798420715946282509917901306641121682977073549909703372811424095055256769366187549793356345116074443361169647640971871504969486499498807547098554172385633231431213746589295504372844747536737979902301101646364713349252074646141842035798756374850081557075901920761990889131844092029728525118174031270023892495791997294016207087192432447060041942689756219673978966830896644749110752567511916193305902408649110524487317476620581469063167381311758204574516234493948636391994434424177561382751582050291210492131092726724254997154067418683348476749582021681141252474787247151295461461695148498155702473163774314569278008493845458101830386871581632074649313933813410528502937876228163756330179166983196279518842563705902247109639973722192564836419955676428046679520681884665334187707333124597542865657147029450530967666789817638693536301972318853466105018010252541114606391656832141120073862139245326738941304094697625672723365531792993858865723853510542313332763250782549880955165684730031005012880697740046574424964333470751707055112431419310629126648182592650931516360352735354644097977552420548036273583710147715681533453690851725766016922664095905559828245581644093973688179974953637139448309735178352435318052260071815481928971830603253989392344560889872594282094143661718906504876002534917915630356467983669947125482869221899048442962048969868004499380945842902449098899370419424325342537047618757946859182325537585222523281184925834795455003454356098319671963868755993867685587106927892866357183000755765435144899573696859544257050725189846173718540671774506260170325938549670615820712963534964398951178177825198497766182383884867064976225862873777890201735603123294207601506795917407543792520452698856204879620947372570403333178401785403526918366045294109192633385455161213625935000644451834369998679714798395518380172058464326445849592498076080076946212155690735965187999555089019945018909676658142079409004302660664905988316831799622881242975097785411221409142543236722531761372783726055147528105180051515760554255313601253032677184354695964028020871791407989482491942756225365304379314791019408185194452158867330702853668445146965378212718709999490699357748756932997032908971071244998242160876899043935196975925110755832445023433024630214815517168066800074256081377152979534449015931384245243407974658430647573714849206448732513420814663823125315303282349908882244465607306494038435763091899798861440493131338360744499001588695746262856238636849126930776502572340082762027608372132818054006443092116673434685770481094365186975052853695450488431689547589210687256158718771691776771659951123372780607897808078222063357185948828122933221409230430428825112645259704386233625646531833823876972709706107271730898267205654750097755115582203387085670613414734161201805140543577167994989281144367059014615211639498148819815497809812621430544855173778159298603666778721058346064762195538200108642231633126979821330014133166778962735872862086301728759536844877719144638306479039044741949205195638855256045531889228696533087317362083852237239238491735568757497500646644709519424906025386714378947171748831612133936216518945833293561734439009618932255553728419527638820334120000002980016689864645232219524337354482474206969585987812207037763524054132546551982596553778938890795027767271941328947805290946799825503223792235955171211389433238950463765412710609002900382901314303364082968011087825105434244812723051599908054828400678948625222394929784091726765460060829925505456333059614011185659050478701937404556799299674197911359597675323088976223409178856366879345940451786502501262693834946899400683541317330499472891469525021899579465740473879444500699764595311157659731940857347120351932597654357228908664411765550477570728604338168413110360337658918051576958485490676049559657053247670159184994337435756834743043490186149697405461332193259397995077195627057581661553207898713384603046078783242007938667791378519750943250022582414996313213499658236132368796645889247546954681686336532916951874914131821838501632303834100000099597768036131743128674007122088623709135199397212500826855751150064052080512203181711149741274316121466595385818470905580905794276644403407280568826931347616850184749784905763113083605262204821289170422069921116391629416943403645734236070121880668721037709542769680313034344266650586665172472219220974763364492675678232073799764566052499476484308270960874664650664210701924368913306028992742878614355186185617060550937054449348913575836475160507141419106946478202679524071398216819909325203963447578962198449486940876363860726773418498265803488354015217233117649206662704383420265060942704686346664129795880153502325019592161732880952539632284818338094786677547641807431125348825962147184812346557895684850647192421518048045195541197123083028351891041176346803589724999617230048250698453974448628098669388538809069580633989914374986108130134607012031761363735911555174205472686447610391621335745598483361837259792383833319696464859523570793819976892386643026214827025871739034852402757420362509034978403601669211165717366045781773302347285863190203850407063358829261524807206987883046858043457215976653371102188860750158286712013362311247606491422806186649342076094982089983827860245984728859705084916435717306286232687161580712804980732041066898904629048330776703217743039022585114539578842140749675678388295668758753191551004750431986718602041429236837206625472737808222115025383814322445183550600359489124885408715698175032620778229909073115468241510904782778099004428081717900804399908699143150119444483949572611289427216708857868440603741535164003492385268002560437344601207687919324976227138122916700374217867171768826773619232895882455209790994754823840896429254346406652743352209156967818819128671605457078942482946497857249077080171758278575364885607140865859448837798265448705574531160529304960094462015761781937998332653704031972106704719440387903761977384913454532314042112775335294588790607333652764629587627558595103842562725948268831842259301513802372115836278376981065766272541549587872993681546412383012362888664112841168604439793834087702697812387729378998072445126100872907126916279801609061588185837735395638626012183820925470435266954989226118828958582727240149921748590632686121708483092176474014855296581845026950951893910684319075333029624870107731783563277195381972052191799286740848284857900371027722439977215982439475174942485529091621187822611472371141407308441417509998895521575851680869401085855061541725652567265875582765285697956740286357281074980952897793184210349506034416988999482867294797498954223401103828863236960332912184200471665838849503520319740675342202936058566088254390155667131377456544608600969047701774683318649688968787759488750585828191207535549244586377030878521854407952634660855220721755814626525894881212221672069486024620645783745772133745238318805843946495014440988683820907987926063005301318157661461441248877163831551232506420565840399255824390427169115864134305059202260973756705448433279078118948653689592053908739132382772202605683147195526232135097164350674986383997727972727312457746335857221650780717888587059825058028188165250338512176016281706369133451170332892903511768692368724537351203528403689659694064838121699263373735613728583386968517636009158507030316761606295087507799328018572674323645299133207665351165721145733454954275596365668632657134794379578337783542224420411467593146536858125724148204949538637938586958188923140982544765355960388757224839856759418868471752302037706933687797484127603599083334853174706574771775507034341270701933686033699298036891131067700084943206476340040447539059590875486757870173077858953536837627028454485587179437564923364387429015691075272021819111977152443299847357553746005594400791086174066412116764473803288133715619372326140673194693107130191726174745604908467791284256544209340228453097598958422695820805274567533133632559800640586276316347719709462497069771701441419307066559083553027939824208497897539723995952040653538947834686431553051625111087281055286146503777103852774548746156087234441529107369808316169007100687682046623738443502505154984656929191440272495078146288994401577773039684995912784385201146832124744170183838731653696397167369056684835244047407886357718232051652748983584182653577794550034685300324406937896715332871868514039576937523060481599733894177989622700120742183804438781459559435479647031825817559007146407562569321672363302354364085986854331564785581494480738147433642154828410628214796601780376942800129901631443683292552216346732423569612575046311138799962770232694965336411178993272143674433493728586645709564819986934721737919939532021945444449015537125328249918058060826178703162688137478865440438393787463173400264108351666968654695090633042234679288928867604341235717313451705586425386121882029917310198386220833615501692553175716295058591612105738315119929150376333100890541571697011198837805265263637684345146363759292331947824830664692199501924621988440035799595405188386636315818268327467628532705935210615207460776066879471371841130514461189859235248193505961945257946816192335491889016214544663422659123461172329283650821315273861436967344960961826341758431162693652749188421745028443131711598867823854542630359229698355765119080596838592366344375401463882181485158082658174837629939769541247250261134301485621742309937660064713565109609549752373379898962176889027820620578504182091717878061319581327675144258028440787220309923050329802150546241174253815107490212206401127769195405103689096612075477330601781438791969095766400531267344067919285992025334683498424867644355782536974212999447737294166331133599888296557447893580184186808146082912395101605411418562561813518084400282809137673238603638949411048161847875870530367717938013996580764696839569461813735568704692877645725895392793251727509438536899914118888661589028581398737207245411905631098914535569521989837634130445914731184873939009326438829894076956884297508545390365801261326942338663491899701679358202834428785248651376442505280064830274454929446765839782776557553505969531367560150532533244175894799814110947637114592825307733956260697384476890766525569633578180873793856546844185065945128612893661011945796152629028040359038006747554567290152352051239605096634810512447142012915480778679494271895039896289007699980714064501263955897339554209722088077160742562895875919169747590565183875647877745912823186273265439380345104933679097798034949969434489497781199646062595427416390959869828704862872877953529117918468592850477545061547587907098067565565276836785465204354381120839714233429068132355439128589305840077332450510847604852542130016217712139972685673844318665313335255707632175881241912281093323421566655511525284973038742776413128298406692801218057465979022474369797603164777442359977377035716586732957077776400810853021313616901715483067084434322219836162530625810217512701989199083167990725191063925869030836766681986296008684846335688459005106859846583230356209482528581471149009760783106868815512651162758971989666236426804878613299113373297321538335412022018868859724049152244796780376419416642650849840140407319058935237554734584800820208427029284143886719034921039891108631111722738095459447531698298309891170216176508814714070160879367500026966276486035588641264076309290399511874072587447204528530978518023662900097104822247812472494097725490332080543952793464089974231222123779507156009863983336522861086716076674887651174568972337092326552692703745098122245495126200955934880964241314112965935895735328082091205160383781720295256395480422720762294619729380284109211834723392498828215709239164378150344314846504622864532051783978110452082216295033181921105663154866453854441212992059752160596783057391572384188304241896778268841255340189522278839927038759628187301312003353025413086726720264035353230333899767294793398141687795722570392504665404870283531494539256448087415158222954069155638576152200861784910043837840974377014525600436294053070374656822154698616377335893994714073818090776292235568070369427323381518588441146050151807946363289906982210449025776034623746620228899536197954456956334036747294938387254884972386458266289023957297701835208321579192895895670180565980715970333399798529515695987738548632965191374476729484704384117326372794602612375351832820432133487069942640899436484717231546127434674657676582969069511864314320519187068153429379934125805214538582935285933584731981581286778110415724435769164212635152336059064031876127876547874182386539896772964917796559410586367511256390946394191276867154860249908695238361684871661780721638826722567262063210960517253832518840806256656511857422378276030224908844348625256510236553084024818210303315501123583446958026148462463149472286664334736271372420780594969419210281009769752499653474197326876053999059018049735639819179110033050625631516719203280061991028264393904647287807563278753592091361974289395635540487791175791524599040907492216083671138681774053506948507158632294354072090465160494528295317561471871322649723866028485879233012538177727953624187970716159180482731362984607315336601925422721727929893393684961115587014406866792375342756019859204048474458728714663387167787163321972942677930350497026088780416352875773730786137995412336443747112999183675817887788873991677031972013655531303143952123158968837994304654633370655650735651228153038981515538332746656162840875803253229233993209324225330805718812794046417131767469641260440644366241192314455850645756066784590705180100300711595699941946890725192589089728456434205803114930474177812970583120147169489294059767739450767428246913520463830848753438171529567913384345098709553791566920788445551015057341322866151033806251919986429265163469592955320057207491179814127997307758922140328985166189713507653212806657397957402912952244393400200239862939709004652324199597856696343438456172133437796934028976022519119119477175862022841997108261231695110136536969528749182687043986766093234133821375405112632754235682781661534453529130076970803339882253007695671587581943170488927392702512426352184345419949011372862878150470156863555087417461444617330632346141748180123080778281524102823652491357533364593514861207243196309460659789630872908957789200741869595803193995400734995273235398701199039284061248917081599076653949740828572812973566690086349755249011577568653710958898919757067142074029265436016437971654368950036375700587514585937945756867865536999899259054300747410130145589821454786219343123148852003594720949011033845621376955040854412591034324664756923021530404454435976402642102594110377620213964698444478506283659609300639449048168779205170218554260857580506993182380991876319061175272373340543263728254395589543331569147929626279956241429121417289200776168364958448311937257605362220466587066233375179934095535254469088818294031440608262189954496896917993307650570228047770708002569751613061760762694968549075487228943729270762617683020144709902768500613332615600040347672886858026781379915862472185592868595386391269672753218124480656845941704420634576179464998243417516699140789018529525717460111000474305895705084212509147789144802365535048152376350271394369503366784786863836312090054813813385161259123914703629457453812951578811216989765425086954153719982847248954862972248244896059013747162105977796410741400132297285022377607457863989982430719802536249007848228671128012344146122917124795889494459866619608287439630345658121814562535062697250903137833466262751504193362151452954850187795250278407678881231328491860762785955061530029741426372171047725401653119870590099989740305261986220655824338455247800633015771050586898525242635723881987027629998296907686911370400775408612137932527295461922217523862473013227768388657380655057365356967075644952376454858473072892366294932695389602752393610597012291591996248177991685499032207243046316917318836250169886089867021243857396111376753263949721484901866476136337901909879197160225207321502507061981597400079960088329070690663578229813831858722418396887476064147203710264186981025397541521363044003008078233111112814893931868588559315385375677725283280533562281427738412902994832730195102794225437482131570979977496184564937279411429554547924643892388891533946928212526836864084178393063252434362926777829275564707813194346483502664053687477038972621545289778009735985425978651470913798591749537446339726588017987246459150491304289431603054324073735058997288619912799932086004020602713211461422246170457870464789733880104243863762701349129102002067154643271482655173390968326724964422364402979627729328151466839711255691882560856854892605775962577701000709396780266430755464400750195144785751521604625598613256695144803553727706713664770856282678992145624794313367675460487322273134904729490727486504810105548138861593342324073185711034391543876607026067801557979318310967746080511811933521980087049114029390316843601319360699453668376506103610510560182383008917990613270099302112915572326015359122085187536403380945270045692274890305605952258527475899890984874984468994999449893354448162313424763962408470846817824793891420435964519684752649338414668793182823363221084283029403603855275222939382840673462465834543400709529404754837175473897661808779672625882282985586501784849935730970783870101098500269866967756794693163074839613202617204268241273276622642218371158424361117990154602685832340101444191134921552004436831061346319486774555676860737642602575250366512184088949675802163786805974026605421682220369865156281062048622592129402948085253235908653816514019442827835000212219331377576179710930815094930873457390985308833166403326179892908240070347086085481969088829365414246426953843370880752519417013108879226970099512444529535135529809891746370091248389899381479899552778858157138313736384359380522061474571487266159661063157110009804650750201009759882169101327237884752120767367072310483724210661467580162940059161780037862247412364032316367528687880101003321315302100209790482919304364965585936070374142012331410172007472005135119286525009011744664968275741801817167968158960077319917747721778035274344020803031152171406987128790715457661166718052385275283044269178443886793287142851921824540467183552036175572947977081641546830276064594360904102436267410304321437953851299372323928640034872887617281447862602515591917820796864570805942124875203386640273038085408846174752117254640973792490868584989129652836184777790138896679213598923513747801317677409610945213106983291605831705580051142919484345437291610462615520047898155787790891907184674258167562540946932907674718510622132774149749689549386108875656816776129487163231193761772023258475155523347183403617867717286093646198940463056577226648308397789077267356893877588699548863270634574862733945150692868653098649474223794707935420630230560324921582528842898035367242695430756033059796275442973072137232981668613594188467082721501677751701401535889567820123872754807924348303733614238776251682875014894201344571152414803986891423629403654727240468793285640032707467224303226466869506652534818496163864335523634819635027142624266160226301666478809338833271571391976953093849122766658824402050617502699023464601838228840722392250456809188539653642173714196378344353062139032752673312595399086852655043405352661812245336223825488936508026295759355602508334527172923395751094274362723270994335274285147232722295688655308767206027169644986126951668138773429837866526660981273607058156896094222611139238441003457278788836434447911922897483426997980218332958221716512601400059710463131703930433197205779904386696568642684492510819958710250030475569327267956027138661226847724667388342728603763418639641300279529551363621747762851711267656586284241394134330669638191399917621603889732079476583981438939099932155779658127439781775162109265208355161357036522521074408526120827681903789123001509371859249769838135102867897424150208459555000857290793094614445710384102119200776473145242994290000891382360462550877978537038312459332501619523695087465990123765814788626572946262392154854636606610081841642934124604683345621491804662276367165607950356316758607775971981459197698020651995317702776729825607516289590530953326469714102305485299124370325485096545339437806454042276289829036358945703704143086717188277233036544444123509569391774165914060542935087528989368441700355062024738436787502931633090156021530887236087596361214118308133713802883042948097095518690359139163310157714130149947095889122488262636204974010791758571647273191443119906717869962053277011326271650747029334820464921636652492782770383869361061670319180690907617965649179890101916315983706884818004268689003917582353026885101236270593286012058785879349002208159172402167520483799284904626023578067282718155076217444556894724253218036678739218229971588455201834149066485798974987983480024877914751857427449782853973303458854130720888864964267367212326135997763254697317268765282119548392546855510648782244792327899119727472949813942961995269595707118421601798336201242424721077983187163802544307117216466512410100214474999693027763157641696083735875120105532831130112557269510152398174979220117942721817192249987078910639494789093891032762155331488433794744957785959965311470070925298277089252020337997735858262283654030306932234617999623562410135821268018294994792840534821229182906733324603871290769892795518237930817493382504948197691483554817513062252144672176495591516521205279478480833184672108516169957223282126360476138104368508576031152505759760147252417365410089365208516302609657332094914886223228077079976804899516794279758055517209582948935064885678785110682583106712391083401149149467328019113671453239714383078752859386649441010685124001494535567398464006583511207340470542701519596928676374255146699905985940176053382480915095006893287751254674199215590888607761313045753941385184645422490152397069699211444056431525020954523950012739930068001584477293394469646845336605105486364055161694616232422215363487888303113415090297905781710331333126241859011354542921742288173306321886555186130348455395159506039189961320053761805692167654075792869365202464718084544710180813124588609420324158265694287818497575606850002284854751146710047688142037789691734395848833995898341356336523519525781571331577399477736098612452488292391335138458269583830336953813779352818541295137141612512625560273912332574637470500402805392706382381987575239753725920362793198837843144831877688060321190350480888301697469455422791861114687144779311979655721214056454603123973270829048879893873185567074515008650404291482446630802759689658838996998526281008154642522932579912118564258262370830128915150967161074246854790950907371840630772917431373017881798815405937466710276120011793285669796482075001792265424773574110361039453759911533115224716896832921209441813693009256484546122513671830768436225420202001924312536884737505254142614876087560734674953700498587586442104430931476856889256348215723932669289879595488659728479059027987586519457567969471823887558612841566652235810914580326773839420673203685917529559312627398074681866089401143052860124766250011612775992010460801160762257110602079531735938902042599111219961168319571180609921292606618752621247304395520403132426502809148483982079461381402246396752147832370318997421113284073575806482228222740158484048789467636606273498870862479776694003494354928390915794380219615720337057660342678490590613893625579832610043958819411366690178028893903040230951074644872246146450781274780447873563576567841696791308042973972093222017916388306591231812937163795057792260358512181262495650938646905977336048884879826271527990611899249214702670791502928304536649519683317349749993733421522591678508177949215048520717014640531813928940848770610769402384927953847942490951667859868900018948184863413411933521018478325329701601776316060227061376384677511167515710859666918874083036724165101488200505066584404015192118246042906193284031876356626221580254568852096417116595754527591033742617892417836933162052535160264484729068088737974935323130851979312130329225735484379554609590594807527534757404626404321007119889904450043094619216757551496459715646272684197555891550659808958397921356695879934058084108219210616538627341539512620546493257447161589934665858292026014737113281572159367197216122713382209398912623861025258831281001610450013542760888166533443490854134048832250004429509584862892864760490835572892359645919625878570660562691640580264023186922670561789727014902207306642043664475816598272070901491877888218443692385510535049430866742371051684729728956698487990523466144668431445048340326750382351670200865361271335296583635861338794331753842159037962866537383468838278431958510290948431196084354074916956411548514052252119640640930939859346967979416233361935558061474103420125192215751617512513489742838277605160293252869293809625449813221999297511049915494248980734992379058925413816609087996848452892784220640386078304479903328186980950505189438645888174043411623590193064341678576181549790771449473575232885984975878179393899260184713693718888787044559471600643774525620261269199919759774245678452738392415150944719989794960316294527083961189516429157538874169779773083129334585788437539877736910314027644511765455307672587756472023423988538574811543461810358995959002134847286838993089377461770264904620261407236909664166666506425862114574024170480368137338751520744033875851552155509847564054807342834356984393275941520421829597663352529620401160124864967108286254425869908376579942879495904808612590263636873104391081025169749073250415297952191523209902279478755565990551835690756643946619839575342312984518851396873046276502793228612224694685932624737360267295188143484975520571980890505299312266799478864077067718492141850692149782000153295133940445698494786073919104501582387740375986689542537551415040480697657517384706480542309160492680976952021641311110004288756478162258833655605310510688899037305087691173333387697376898690919665832391653201081809622481228614766790181271969050854602110948697977054709513099104456656556609580243916179147076935449376525282455856318684619942249890490399286272495723033082206216789330412399208535011651863296182952086694590642622493455403380970408662410281841298065734040526850439492650901147511401102003933282993598838495252813742215502288280465416742141522731136673661972299659107708675626071726139064743216954814835398387736331682979855147498449338301333007968021811026381109334112075519848776807870613084292994465175474305624699053609749970426015546259769489616474262964108086602315509314809464257755395880561376636122380796567101422958447473681908967066504231663039507020595952035564854105452210443927748388489088615701917453287385013779643624974481369199997052863896340849942058602071972357531907838173917236671005327605125815907378012569264594408830945429984541715473772675437144863257661730033225319100946681091464425110209644256664260476554154073470520280331570628492151453886589123077974638404159255257060138366009220561853454603772952738401140688766923885641142459190765054470592234735786699267998712079206952756733585544497341293759534483249813735522644202505914585339211897246630277938814464971840122395120532575938471521821014033103693622211049768571287563690005116482137423582286050001009290897900948367448413169426215169940584992655514661345254379522342126183189549339203984416924560037568603105827951296435697111649952881824621978093351343687939717731593499242426618460276427787295559471989051133773301923890941697261818574725301264384332707003980575617623091727913095798289716148740342124697243919324215567045997950867751441956545591786759387693314959445913614499487443656929914945908622946218730858927868693851172593091077798639922534312099451058700453208735359111951057211828933041703670912662590718694084800420889407342942951984154626003976044670275872944729016170357892839305036472185315086984510236100007920409267123664711148000213082283485274709064995706400243148048186327740158628006053598086030245610043353884629930826507479327388334160252412274222895724693394240868304842098861540517453176860274317985189255076255643263874790363929327655507125013879841267696723409576726802493611757134948984809501821759450309004073961324925171452358940305161574415116879485766232307476658538955650178444985891712684736069220308019991945416447319140281117926476695486471219149150658148651551640092470076847905739275552261756010058357223515767417734944118828585723151038269095507676838304297157973613838015389298998584846641725246486964778469838320066226299032456888818896044860326854796026191624208607300752198313037601141880367125054494874413365679064840876406124529396187908411764695927223314125802252725497552797668850004996401758711070288341421675324531125103714368401924058339257201506101802490808302611436171323278104980163996343754323168183782634053343121473685158680557607482023440642692176135765965091268611442510905178829966241073295749299445216016364804261269370177682345981692532992932452863842639850245615548577177381678640877053918592764269764498082923300649952869610353531301933014181058536209897223111838367513456164663286675651117078493506807196849718390203745802197665342496181951646360615507030739395956540580289026753722238154965679607077865730103966660239453184222774290912873146720919628235353617953682849368544397883624150378715712360861628445705325960823146977147688931700235221009149921585568028929885159172705867874463086253231256755571978580076797246239046000251317223203321867260161798801921117893445053435735822721604218928421964714416416536002459008079682818435524506505096913054521379092830401492461124113513943691901147220688712636771002394325247945522111515486026039845034499658524890898350439989708747061381106955946809337808772084892530886349512006008286202153866549224384894101723882999849171078654830292596279075621182473039417623611739947272639250554396972898573483681106670587058908321184743591557482544354246021150219862732256323389002236125096991723755075613340732259864369001187000242840420786370861061717201466263441909864739575545684476077907142065409899651142117131753788041280023303502637536620740715171963418307734674663876926779833579639458291873508233664519409965165529772713774239108618683099773012070743986594572861710428482738293582975646363898691470722774238469549394867777612584592254353498913777806519298601659420248844749626338881528028188627433001378091025152815267232205871897832042530322109242148616049610503677016394825441378084394797879947365209072644267815587510604078610884490978810208799372345361632714118320048446239953612461454500099500799369581333479338678718912401730148361769882471309563335717248683316119871546128655231664553097700253648972402294521028643394244630867568576424227885900934315866490122105811728316886907167294720452777254594942641597998161019335922879691772782318484649948487077237769787622676663241726460719037461536460923246609549689967643692624406883311280988357172727342382137496670004824627587154445787338656948878473955577932660388211197781537914202962404239746254320369979842336155577328462840800125469582310170251284525830839180505937282344438609739923223256714771182613403839116047235212057246618611569166858642642689869387374456177668839222377981903020272850839929051174461189094644419672259160635991266805731737027885507461968291230322645230870385731250249475871407682220381679659682811210636556251422367434786075459691588786397319557250877546995011843060215331653242351793460694822011059363583634903923365890018523376634588048403401698356386741992780176172148161795590473023825967972994936763004303022013056372539226773340670423590013514246912465387448361561933544195117930699327157781020526272427022803309354626052988563062849399591180847158379258570958068085261337062473329968848165680324899509292290427820206326038212931225599142787252856434925760988546284554902821555175319497024806211968548112752911255448217569036919712607465236786768846384872803692101022171323948061396418718703061224485946419709566302221175349112651784502868641793677023447265915335082620774099764956223072301548407790257246189764351257195562515647968726273883176735240643799037227262319329855440640996420063714232433795826689070501729955628945733895652255751039679850557609481951745320828318000549088396499484742733607482004443658733591934292873289728242172472137220877745738539218340480955441253598285022871638821451638788533199272524114659495414188102605021301398002020192372045398537422901988303840929765472597640694643128083264545984019822301277989229725871386749713159908902528524518042594051471793149663217944977676511791103441109837283834694400164313675463843087715001887218550224382243482894060024761689274825063181410771301498944725777071160105616633773632007140999689470327927627158850326275478768484847751719861028995765642847915637297715544997111576394197923849699980112329166932454738877366526824324319641485792299930458027113943471453446535182869046141712366536271792134460481132003378914738197713791299680610047343113395869262052106249466021688684964765960330439931893712421634224858477994723188916142045002650688248495422987522540667539095488169311951451999165416611340689385145912555505929862388826219817782870092620428317747280703329814124773407187287595775574311847347727539654335563417681318307200802555902823009565211843491809970303356782915324670454308552515954068111974816108079911723734120051591353066515586385135996226433118149378664842361124525748466025076694685074571674235757479108135297730995129033778423828088792533254493498536461833585889953710379661993866545770693087135507660295681155903460757050967707394041089871603986908131100826896316601393627709691926747387001238674291307212125423642337170973070213458785034002519161407382600441591171664269029981204040349104033446129931513816448231968407707176170450208247122552880949835108755463182088362871557074562862013081474707367501229210419000870432170917661469585118810876186794744750973639637995441013867515679801060605481972497796390224986647503296535480843500465041738013668341747236633577198574830416575970267276460024556671986094493100008060235522746517128547920620851218608775738450071319234985256986447219824027468170708554750609874301606096581354160117113599073205485720088283886691625520497039864906785649100823652216082247612591370745218608710010427439676178953116552432752198265547724439498610631653027422936161617996787901711833420154398206276745578790484383217373596799991418812378852858605377044853253875355231306869574369219488246840585671031087259906433193317524886526852521471562405770748966132601476895252838223647259249705490072564474242728193473141443396268408967045804804559588426597759032324314134335274777373812878226580194397284620768486084888904793869877402318014488086544682607317738065386657158264470918461588129432261529210701366439035039615907120296009495698647625856695460589237933392381899800714439874146087765355841238205356465595833488100875166599464820661912472793274358862486571964230491800309637640621603890817090042329934858991884427909623983196139777635874014678999978706919205217895294951338681823381343290180839488773564508873870882821014746009605104862153219728277940170175953500463031331242270960612494187982247988011871248919664597864609983283229551743449874421863601130543966237635946314962029244069582342770240620353649178347424008830798407385507312985294209995862770379359296337667422394591894227019719342984211756363680902448675345817401054096705164724217891165404055991175499288710008305543598520100694037120383931958922367758021274097479226650288186202261989669434461140818480644140722873647827108946603157225664766886217359801669807766776933870894544519115863758573960951386968097815961072130051577246618505572560434833050638092550854918273185128008711370959279230197431274245793376543339867744392649353505611815885661171279915961019397364906182532004388638850673800145409468810435102369312806364413582189551256772054353496415718224551545869615783105575239718094161036398497182803907332722860232091606286066612723909026267394708627993758455341125758114889779923910223160224666879952870741670147041641022956684008319635476952033938626419886645186916763116029662969765958098169798158158020338070093533292841000657421644365736492552652369129871915151828906840044938692528958469788509502361439646584719634992708322139717805672246992318960503874402463715665622093256752794529507549835444565982486993540731044672969108992530658123167689027109171946076506155391020483077863214623672295551604803763952462875366373999584998758754486732407111727811678330810287990972747672401071989042295489468905292841145264537031604204767252749477912208907564029945580066943991830428710633610684521454406924838347796416305721730409855221043652976541411459353328114516465139512714293592576260769230660993166795267877207924204229277933058640673599633978867339470669975863386635840466649559656281659552716228236880997795829436318416627518593921998938559523263911438465676749255966196571810690934371576194736279524588750576405160302155041243563694662203662335702935926531189511126790775351054823435231657706575263556895614181519272964262485228183219991891767387735898136599343308308510205811695507294229449748193970756891745566585655711041388228135387719572401182135447047262221358905624461304943701955923858093024535919697263205659001123484459692298039942675683113049225619109098059478716889933620064336516649356519825128643881663522269507310250382764362460216443735041986818552401273216323418293142143146914862834753335892854723875314265792520364597168051404287018659795592082129073386554863687164148150642826563410682972420807476455665883053697514260604981916590922485294918685400746933689050428598290913456584531325631226728957301926631449305857470462100240259019300112287196910347696839552819264814767555733594811640745728790270111254831790881208633902111669994807584885242261514872112999861257709301340550935551397726954933194061317254822524416035892319680126925340597559011666554261065284600556918319351338507765539951985273117033822345160989227398102124897633177679095464904312955392480400114079937371535823533818641059318254638564196572988786795260856344970964309076986673353332244819128522261708369819397347361152479126050875467800694625961241639938355865068051316875419150696135423597469788988105435774129674167457542201470129617199527231830460613074584795038966361752094591617777833782984924622111069405635560927204128027866024858597980925435022460056086426217703373695391577557981953375081873458354866103939555127032900646634764522910927640315453307633495553916430528387544197806813566335732142339360805276848255324423932717498112484069622930832723452763774746018222875379531092397140639915469947578103149283101629829185246709131949753855736286661399683487880991700513004843648980782069085551618811098121253479897905361393040894247112546492692794146339901046719790937708862188869289213064392558484401736787901566096877613756980169145083128488436669077784737555609160878720258164845134733306836842404274626621591246949024470996184840514188392566685648158121965512957816227982120251565357234664976977301396627764292073763872190970281951721230170581294982257226726062479741934070593552887647676765169733488351801567898590750388121987312911862211662645015234659590614088702349840131514090533928142930882296395308367096327243798728334107445155783001296170665210748351342728032244361745471851946593474881321616527217436726572842830863425111650299536430162434904708773982595859385770007122098233644466699265034348164478813927341748192376889384401852797194236636781707247197759170767351138145949856098615202309267095714185409226950070071741477947544358766272339518612032371111041086619545626063959409831107763807641966561887638739825810897148992327114224009400099258423575032995734532329055401699277145287125055962216052311628796225871427421660222359284615741424316544318333691117781963622642071561354231753243889281977455269712552564667307926275384750705840386386723731113565219571875335198147019330915489908578255288217611788650242309885535820090600859168686700130756291231309719984705486944089961302169713004154107822182572352680627179722377218758655189781698257969751298172040714296316167140192212799459804336046314080104898905013826482062650184986568648801193310350859621120756595983663419991352566936343917212047216164074375788717600763318210670991179636694627767617167216637846530780628703997955985805978831384669995512669635045946413396167491833725105744784551526969702884878135695745456150646032901211811283329532541599198171216662090890965073054819744205960553413701156894418946912591788170851024653696079285140906315459466539199670182749646792596016608014058627271180157767594777148961282004714201290965752704534344503328738160106919778544085062304330249504858181808538201190981247579684013172509545204124820493122273658205628993089130361787308014858070821080638134119659169881216034656070516352573696960093504574106069195544700043155805471580361883472663288009913405846058822511160603174488491201037337411131650949572249564050176484336852666348027265761937762147614006618986267969680397307107443963603526207549894458966232869312280228760972765552942258798599054985693458145812616191299228189207794314174007627739562144841748002652588422439776692156105686903169165739869897948011627497135171807741996109238539751002837662236732884182329388505287100391453399164834046128450946758056749072698184351593330404583447628119671937603359218598232726977332562248665673473275872760423478033250407286263710126480679441078462062335488959525649028432810885901484534132182248233571277500374445627771560324508705973502118704816759457122563561032349805989237088297251485580242084514194757545136323521110182410278195153225517051597312076288732498621592037508809119943868024954102009561492199032203887900665668688559203622685824289341974998953340659196067210682808981989666044799030659254269088071676062173939116736952395232483711734535786492540460542166062947676819338569648816773683799738919864834770555462949275662935590803441220125046878277488443739611376036242289481516462884204876979742588616601519856622598040986995577257646256181315654483592397201538368185724521289236322205298113905186981149277828237402396498216086522852434769013696435697156980094747131124841650491415913520903059844275815315759418914471032878944770907770409614037071528683678225887574691465695550945375039136497410720901953274871331328532739576328570535923089451126190088355793768658613437430732330340263365833527384085635108985908756590590845204324467904522970087538265820859443018050779623538927462376074200366792146631404438599504114639988895245961884597516070489503331185899872119158103946637463713064544640755036746869337282022266463432403633921329649727381330943608236721012276852239050943167363928800159340400839552519450975133102433643048884217503167585847557836225895557513958147799381789574472004594240596069426898770648557257925166222013592634284878593662336799374172192808373236898103092788582546423295823245879454652952766135142303118354322089281539903784509500951277409257133757218875777788145178264834047580650799332267876977020416313431998754754387018543239162006098686203159653392693111859816420753568962671856705147311286467588005058023973067053985297539626923372072823450534753971019982489550196243335135117835888508306368360912887584005619448801984743720861991413893989523772826595627771580463805074370131906743950550464677214179585934756621188868746736652604229215288529552133736885097116731832006353264662417133918130723349348462907406255263982031453215753748425652337595811783018029255905263246584247361087615977830676587325044915338620139452465455657687639240111495970667100652098709041395119355919027963166469156650834157482786265014684188041975211364186719744828896959687522418582221953674446926343401134443144482219879554360170919883221414759411505267973036852744114380627471941024427385093750443202825337502214433036781376501933074512652762033482339880048854493793913522834582866240531686404293844013113205337920109823281005503392071966685726759661476576608989929606027368565163734901001282395652854536072649148971408370040077375915953556972099603810147420164161474404550159737196754084952748274605082787435080928302318275781948052893620825593122724671373688848915865247115338743003389980962450185434318318785842827317102144584149557228574313422936282682040121482407524227456317499646444795657356259102663529623769589910850996005568976100656328396432438451388370646703951776296555710903082940262363072864892777698332639743543187255141049305070953160981759754409534865361336181471065146471740913486062932220219996297033488257564822533296729283560560671440004655942064116120600965821755259997955518806569561032905930415810938141810730244116005427357854856795584737755724831380838913073485906379074043394097212975499906111004158207720818787767280370377029329192244630096532680655856918574610126269814612230880321143435128110222761081629836347299593430745725727802249314858931026844970330724796867322676742325743073823430388444103721531047924765072301177080358544285016548308837666231630945150880585909778806115946894302064392041745730169823985590439934933422669445369866072815660438159148502968329945958446050859288399401240500263050961560837832671976924812814946567267403263897646277911755114754259292894916536916012830377849283150053971832299428735583092216123492868209613570974019270069910959821765914231565985110711398122408695936582635049322804897908018848211805833535738657197832975664521550359750579207433396063974480214088030143151185183772074614909688240395934002005918553444183198751422143449114409068111941691478163952781294298674166018026152190819203121507617830690523833234372313677484433002771709840429764155212159274728457829891076871003503645742419868668627018342023018817418015700223646147433348752372153979451077819248954891439374178585019717887117727536998483590794666446485574327758463763199119061304606330944532740384214816531620865643415501945425340061798806219061545039998902826800138860894536723542295624233383469767280705813815053929353056595460740881115121952470393963495925064537585914328862851386698701387665991691138930507591139214253771559981570590597402125530016287050569442021004612009885591229144639027298833183700260494629736618756681944406899242228669731922415105027863124273900700712123793117636889907633503233686840896888394819157893057483251962343507336260987036334396452461688265816896530373180122370423299566115233265334200055208297024899147081885645407896603051736218637892123247172307914395169978393620691687761224706219008246236150882077889157165390153029851668669856758021622441007759557983425067552819533271092775437332800313100422157455499226408899705549123185298843397534015641504352628283612085928600581934534603614041786147106999563154298085723264493337851461039096261879901263040930343280030658515502883955102865083599273454508108586513070334400160501817135189448916194829350851893280374650328730332559422082882010839761590162634302026729538270956076783726491921386353168473474848478521446948481780825443330134202079186430992549121781400426433993344717166899719637151270003147293464269002967279478219345537114572700826591774192790235117375714864905928041646449742169630987615679308177193274832447902076967096799397194136362386883244614486791631645967884114312992248055389965124973028503833672123252007847753630745277967867949218145300082160237440484004747879287948215716874639631552703949821526058509695698421885459837764716783059213965306206753655048257406942074728062527326720912103008774663269171805546030563287679832520190311066722774284955877198191133970736788567721307033943124196695849267696537677397869588578296141788947601095177391151639530197518423711150730986648701664266090747717361806269139368121796964338043934881380706823711691738226361487076196657083807923159246989901917357642882121582770360509531209667319155525211486471747773102742527526229303247772401496951153489157956004615157747308136206094770496172209075377956375950174260636316680880909362258917446371251624994829925599691848971047969353373660668077618283041710783002670541453932106267818531862897815424830996698516358008636156645312638785941254015119555800887436543256272015605359024152676489661597839443662101369182564759319016750674951548485107519282175053911192414956120136820783000610760581171024783901574231849241877528963442944069573626379203214287957793517205237871337528350733148927315724603548025546335128419013974360849668194656374098673690244414454353976796816626561882506235195650622360525665065612515886295863529674482661950397317955923139035263962143912875623436632406695001042574137926468394406938854446272318730623841786707008058374184580298294052630808211500968557073974232115816979533802925331008019527699311641159293824860392244595808860291963090741914799439501444291781615532309644831953661740379955414580127149680865868892024973888369881613324862439019681974332918381899712047456638935439034061658269201096526821912455184924829468850182880373584150080305752367794186556418135716461771657523137215761696463021744408570066487413571857321574420081695111540961949668010973454283597349690659890382167180560629163760463534357678433284553470771392281437076268103814065708933695885273375932411467274627470539560608140306869436408005673548350341665802934604717842891009629898079648917077245488380616336683781002800816313676517531355424033267777828688190227541606206626860740716253777580073417224873957046510102430222686931072605840133192686324120244086220389028975702219915666944609110837941588700238011571166622428435013366179522888427852622258125418009558564321731825635933700342400548260301767451391681785122513910785243240085840185993336961289687253326274832555772058641151721792310976378630572966700175135063441206907888141514398085986021058243212141642266313048116598271556003331586259318708929613098755873152529837153412953590279607112963483463246673885292559684415629008869490283231098126688718790000977442878683008587931541527574017055667928466594121118099823891580952160265785187010299301172631123190737576231776733958989981558588037127795463230630554664767348799652583426994035222105262189904436308343628907330474669694775762715475333748858209576649763126503919456379793476222862313128010765388364975670030658647368693153979483046925729016062706681920979094722838140932447793363092792510654302915442286824869902185539198405065854466183676297990586410145873697113406437270099031016895271943899206957104717882651103819786302618673945426352161013068610152379141669546307273384640774650708593046579867108944173579656641130256758034270286565901337409079716470655237929305629831389791052174793679202140976205482624617012431898474963125564314433188068341921195776681480666655575870282030116997985016899898924329094538910191666942015921517230882343271414030534050470536514176009377340925421089699645002393235110381416937160428391619839633047472771600683317914045078071533658264641516510457969439926625868639103056153524782457562322211563106628886195449704454331680166546680551580285852749273708400013950061770970820387653194292693263066749585428351309375245507338052141740909705061900014421409923568565149813396221885968497434708800760242265593929209294105461957600904542543672561551444730085686670164522554504954967096398832416522419868040391296852796484419685766084266434447327015270114164981317076159481152899087432094028186977876726102914174985996997450161647956364591531003274241112644690990266553530729009847173257903839848120231347369777010463690159421284358349488109263057524985179580392811603914922723071683095984093425978964860266689235259971983208604102757702220928996472021453823709009351929305907532948305705577690712325877207813409801857934006399853571079143813633328506507848084900134557780163380053734845474130856413853765511181756968843980742017896588992032807002506715026412821767208800968282320944286134584497800030900291794675629853547245207832074632487657952097673957235043362430730269334980816493122538370435600835428043167322128071729475002604517298763617080961217586050714274378584417691148210903975147403930257059966825269270815939800133363512854484728316246984664451001793655619456036399003553289386110546885218618666085030165195944830382272393466003205719344186212793114169987692169253275044465006563174524404269265703299599442215437620029535181479675968578972991003698523985458552437250821308698534652868884433045632361485769030389880195931443287216574624243982941535670337487437817933275051882195053795931321703734351647914430710975583548146328249498701740114405322488581681981302914749293076623385514239093352412423470431914252426112334605172487878464819518403138701513074108255452724751642155309495555828228433709604972641540648351541594952994013163075760185943732304584543055202229363697038792890515623022053801783015770187768279917808425004828851684273316644584531010708708295369606701901729203510336115249813495451481390101035986338343517467824162160666064394006639582568747127876369959709118701632224432913703465275688376661945031906696885266250150462913574835930292408979341265643215953424762279166538844204753666074594201072074831499717429325005559380840676416938268715594905158724182211995037854571061340929438881570153099412877292369330092221999132074356589439435911134332618722394965439418574458875616141722980276733989060167279960942464883153898813761945481020031663510491297956099967127578658815074081949637444782354287685013067351096174805153362293921192829032738564467638975845817738245407054839658973165564017776351192336620063477484157051902175904347146216003298205822691939587098499666291399112307237920811192447403067326102420934107700855456756552971318808803653325505087803426768372643707344200682744419534768474007945140364980164762531343946802881691623948379595450646232946133777749590825199808942967024568059374481294922124061125347304340995758089488046807725556986571188259149188936839657834655768257945991186307807655067774866591707645439345610958308965985523953002434678507755056307869924355313423227325175847354903842181998875331583305064994418142030422316077634530174081988894532602572722722587531068672753135484397229776820291419180003552305186407425511771560378149200350972860189873740182186716053538819909782106415822240262285793790370516314757488385177546795596379991246818327081275338105598399090251492915400401208280327028687064821149281924875222991262870164429306615469024870734004506602399191830031854449698164993349997927743789269658496107950807130451973852347690835551756877091471511427406919112459759039165213374845482978419488746323698137518804935858582363083723987933602351757572476073528159831191209294572293714110540519585118166802768256234533197496834160352097516490397732344867812050914042794181559033914480933825958208984345409736737530875644941340016226787234996018160263146240817196883663462632307830001466683721258663813049778904643405076664831721631213944732961812571028856717417947134222174210657224352773249606054395312982554450034961494818063171559794143946362762537094530081777554537916195278300819740472365480192932253222003640300961856930601198793215331734321106600090799835813342063176064259528955744187169586607126114566987023937784504162755312220978510463757873991081836172051537214327291010563881488958132961728159289412867886686821599374594356605010226759362462345505047685233251461377823932655620497641019950402341818369341970461448359282079023405348361762651799538922753755883623065902074917782042073669297151047181647093557050779692044045928007522707119240816369862256919062960344772449670981993455618956159600672967749955636396306404046432624630944399676063489451087626393078812078568262045844887473081565608704258289379020209221519796910092147141262280410135585866209885555294529778466241273250244711089185114626620684783433735460595424606292222775777953598692930737710651208376835012709075476272797222623912195541336513770335716663102662582792082326718475892764917192541945926568444201302395959844057575381356508835207830174412019179990323416149955365107192344802942320366115476761773580701182786494400016806323561847440341512482444531329266990775266972416120344991597565983258360375424468279511633501315389949109226614999707821465028831437225626270737936430697003372169783445313669781373505706172340082508183048757505475545160463865464759911933872759351311823630492432494280956019944125070311909265189877527416782817167455776301321264881344594497811511122454832536840743103441011575016149034235030737552268149900468504108952832480833136549630252208300548002266496540042418412221218370860163213804766233715711202915684778340203413012283451199619548762396562144925964348501665363920747948765615430321899554433305438414194886818683723903118852878765388086936474503322965485348604363671948654105710376731229618638151829341239793623776222371748330866311309148821400171324779110856909797396858445118171579909970839745254277624637028339100578276622100152577695109406540635861961177747773144730814753585239758314089316402033992716661331356845969509240248418119620997109409354377528765594170125809583619404892987404358390283355531053099016760590233476440720570881196969924900555499924878678647224442807743951704031008705578512208091897219072529127944301795632872829282322950775273926946139610936264832289957710437981869650747011053806942722006849772476663581538772589937470638066566751895608305919570036476148779475244451345268530530083950910541910751568588359182536291682341259109462405536635365383406566421313903635314141665011815318133568228287508715010536706707288178340339949729937104035115485652584463190302240562486426900173992598047175654925990090368677988800502243369547906349621490890539233351665425051794714439973740353804168182133089082556443098918599658424280809776671810914410703295486318728721691068570550745947218304521546095780037076838940516474760274122860613129494968079209922848504618237644170469388869884370267553846373280448774380557701644640338810210696255318568337652585201457024084724029349655913168162945608099389873437909274221632078940250431840391959735697810337760486421463286777077863620702661108682913363110829731226312371322970479367294461238658892786640359426395239274082328844846669021432870197560211391698322119008389027286529916405970606300559746270075288096287480573829280291549708521860943782281059661718352931618175705452257115772937311881764441456914684751239464107986888969121057883509625742149311153731071170345065648435174276775274458819519427377167820625187128394464942468835547598426698023649171224702793910766945844830683308583675790582796676692937271856348101579622031164827253623261865034639550451305629476389561558505971663805618419741349710584546108096374217745383155702835720765513772771586458643315484065112227256231648417106735059215409667410415178617163432926267129586874840564187978919764073610822510417477122300700639542322411467848807008667720263122451517363834961561421965455201967148143368595202291135415379804855158875415010330501067573168373326361157193854569187417760187154210576710487637406413811476784580056339233728090580967086088355384593258394132025976417364691086187394582946022454769371885306262853495440601605738694421436895241974270690229561124141581117637425292327297370031558917593820170989581015056131600447500474079578987008712139817003057932757857982808616051435951067877334638621428248558820540883950877612419346729846595409569393820197226803918660395926080018140152662664486441213958236335758493336193666643225052476846525185796205665053765919601576209320733173784296032588525782317416431936493687942929706041795125868072366491808167482018104189550181874086412581827346591964198751022262467626058256239816586974616759727306672618896435471205974017628349113901445407781147073904301625454993437467967765203737846904776343323885225536401839893524769242848292536310556013629302371949200686763803974641320806276625527429129471030716036303533708240682742968935204944717909953854159175768890405006668874298052821778229400825399728297972914815556621688773041856936008645101730675776407547860360792613426314003088054905822984799983107950638204303465729164480970051152342051651401584270182038382030423145497171533630256895654599517360863601243684333606669816399340374129431306148359439196995307084384770966545448733931836695985005656633547612054993777913164234985136963427076176192204749561311825542447494048394305008626976243082791431281659258354032422562492181754950790772165740952982240006457645671464376965139753550434001656204980057681860882412467943570721900091117305359477295355380176997222650925428518847517977638626364526158435484139058636351980203979510843157796570535919356600704039035194974034850638720677909333742654667450509468317174851648139844207980995977715291500201758464185384689904663099234626269967299413709756856921834561797789035976646334172997553053005802298841764183939076850822765433285991279895060220147460144116417928996950590133685026425785347895991234555717368533068725120122852851811453151722318810183400745120854541523174112580012984682532720244688406347915976896231311551997375007922062626395550077256413216406757470830994071412206612841568143670428217495230390707622891755444791815051304997948717288752730301755057112229685671692538242490892253650431556955786047211805813378530861569419395578081101268460355190100970133827635721912052411224686953054989038541706534579057050384951971905759092651513485867804802434450483756150667478898668626321075942525689827478255269609325025265046645526985496441971561373374976593267684671622682720168038711285515776215945827496605987582727971210469365580851611151356082088576034499830600249323473920053118575582545965151436467817000075975866420219570308241617514631304930849419071999713351057794849664725109256876765812864537267169906731548894077755512739305776772701123719542735444933331367075283426216947479757444429803299837245032656188845344611468136811042257480406090188672961743047835439111096877184339139917149983313042182957241477166875856503480621999338118292523317575594283509986028367539387583829013251833398512905564560733115659191569887006071543009737532416736097255422389025612230688996193801903160010474834133564209079174213471854612570938307864265029188979929621941211495440953789987479481771706751414309460200171951036264388642375814315803044834906136789411188640036943119385932621272502149568655023093908764755993617745211115733507639544043672566942051482216939734562726944896133395223536293576587684825260831286748816331211130386209828043065299775484349412355872881584470178079939668865760043254092243437043502614989467367512924970868077635027237118598335973154155491203091301601448837454511713910731909807229133196116419530591910857509356680338518912571254603563855311049716217081796464455461899675387394328911992780220736833854585771528567890765442608174094084710907586591967304213712844223093267165169409489739485772171376126719783318662145290158358819812450976057273372729683911355887549516386783641127593517133195165423970015336809549637220844513151994205946980922577351778898485666329540443207715942964242080148698905517746214309714512833159951815499219584663124806347677994555615422086661763901408205246497054329690266084298320840510575819687091961667443840724228777866905527015436622848372568210498429271443661241831847422783633138208557871145820907963131527951580338607722045970524922476136177453189374180877723254534608685338527010109773770847360079458670648090160453159218507100170365227225859910973005924303735616471122379868807517694174399837753367822063417641287226105242027735342395844743069272098340783300093895087144852478232107584529125571470789045079071108133416200613671475266450217707294279560258787671742490717723047836201346576266673845108022088180782260900094577149472716963110587811872726074552784430601294425015519138852359430639992542342303137404466512187418430208750384089512923372136026200785138061431608511087634147555924685770205166337919571862749805385503833628126533801025133808825692952925373494064050374512869713144118523507880746464032163658683044689563471472122726648600704320022379629648186512990509400040837221571946515205629574000382413461498352487064153055622586587547733310957768924634877542815254364920948451204698976142785835911956671780992864594065173275723778635537732877536427157766422799550650216607825825514611663046032661215696159920447689515515585879790939280664262798385919108726939515725355387322081564367629647134711476600796454948375449086632477855123436590289329488110762767823838671292623815769894117467722302381203073472993874499883270169015333637972137880567849505975115089127871354655092127734289286196702835970311833652480801081370206926613549963392607842355317714530915358309242978901268624065505351802203973114345037506874016329605686524599052525589428905467991158255137784355933131805156838077831978869422136843775033213705772781512264747030888316102758218068305112940326010170824795227382341879067712063194705500048242822988584827630696272872692500407242517318900704353203733393127667861569521792340790642616221465618826086711090485517450701210980953795954643914761691842795715429477779831250799626963224880343778524381957118040162092440647956824844880814137098454738234370965962842297573438019801765864201900810594517754326399847107844668592882235317731220683899796984643248300175876217576413634896454746011986317888086559773513122287972772604689842755170368155196579464281256338176866043562932695879407707107323808972011217754771692200498241306415776128791773478006074624621565456368148325427417972509500644061210530580380914925187152421668074123212270578003976606015272015048502205107471347748297578154211939231532798746091788383706528492285235164016235687230746568857339753328589562325703122687896821234649525118939021451852941108328353024849882180231771697071906815355504710435562190741616004422364210184171634540789201952423117689338266663809675700688027596271941183503307959484209047180976522702493638870301003781671783646584370363345784363246630560416988783235849692623100798049359732592655323237877742117442833811019691327630405237478131146234543959590668036277235218149472842892063732506958204097091953281445454530445006781974243608386048103550843220189192931327087268142077090819349658238193089132476110022422752438570095751872105587170908469188043973062423985879561659395222225504445656396973746023325547771627182966983328753735788337959831828012465175287389946530938790918300673724908633946147797804766692716107290677746262755627077283013345406344472211349314102436722483092907849800768551432771405747098050878557300138636200836589605811118455383815786876776393979566890784710007691395102437904421039114303049997731883429523377580757709385281902338608779811709194628334790398201847248829567122848241045013214179919547311336032847635289554567937835314461741868525043299998969794539211174857066291868984628084269520625818259620249966550682760510429386842304154807817538253575496091704806696259475823322482514120340436430731242698709774108089093443224450354346305705145462256548298793209049450692597987055932618402816545095534123821963426798029475106868686655096575337690426177131252483184259459795072626758016915255618247420641580421951163220933056961134644321865724311696180041701713228552752022137322111325387713718556602204996901446355080092898354526194221415567978508548737207648621796217220923833158893794024150425500190960560284592229012956032323818792535154883237808420645357733833117412947763557342505799734398009555043956232987319149771905032532117916556204299187266533050449039531545974230374225994099633524861144196758341578680124879822099078238503425345383075844476392161112820223112613876272959117441452024393207037105688612787248457217545084611808776365290473039552797984836445098232124883060971915646143776658791725116529723578296591267784984724271053140013207210479158455705757183536197884787145630944733435402182032254066925823140605618296683444916378798378054438834034600624721846844874020300177189301101389506388815769553006273784783754607597406902755673020918962947197801704959141862998919920216708588066067472162915258196945580079309404826862021799543364597097157033170974525400864804115733384653382686440405091294363878206060354974812019529006051582215623815387879920808917805890726627866829792857691644996752734232245559617698284362792615467548420605597972472330024090266432671680928742693042891310604426958016835017077362230354005438171492363433064464725409809762351817656235228878900220120820548037407000523384797995102311316457303740078742699767552233641552516239613643343669821275159112590506351814719696838091687918420198071654977988145689486756467382925568732951539045890353186896648238541821336458232089507535951775190016649056332617516025907439891675812487077727252095716984509432916034153834315020527898377417168039952068263286464700859134568361426177637908923189739853101844737799157397883909450577039637762575532287847675913295561094245208405000682701691329406098673888407250321522219890444601408460247923213371448178336690461901107808099163419556998716224676729792067012281341864963349548968679182987161577154352566872610065737991543687225949789256005858448970460781391026445417221422701394369680148035049097764758952696433454435529067304578516438547291070194477626676050444098634705051019657260784181844558636197391476555436777517247952955745524191680701673006223294087041376749562302429836988100648551483165511573278541447726379489861280410783965263094544322906229114336306061895421822188145727624162264092097910162286482325356515761354492081264343289243351523306990235683999778068563903264980459446521132060865684306963598259624934567843378063973439601299973103895901156051161385248840434715284477733497462237544379350279414289875984434069276356868102926789788814212674546657821491027610683978141986576867249749811915288172367580323148170428684344011506794308115925097431379676453552068549538321975971528240894183896003342163412497449240413416172297673039993592764798283915585471811009941709965489707306166385661557282965330801150705024412399299604695426510627105634880790584509237515486024095503360099726541675192229226125993876398049146432894103870015089324565919540155025893151367803256973086302208964145004625873098342770387170698243103219357889149382559526462175717644460501144226077710702966314730210869229542874681931800930221649604332161832921563235238990284764321865052155642692131046169625872947507264476454656519340710847726022570796163599622149159598160214070988707221435724200918920974565388277721569258670608564963661189741915902424687618208110655966750355722774750078465416611483114310299447328301808719212192471716602676111730774827359822502783136835549575908454315287172801593863296573789656120033928857836230923021494735149346902193302938945558793736967143781567515152909490828320285280011907799323583972784358057632958728633874318651048130043748925187276358577909705854335298482890155751380359917032775901075152651264488724925655010608951669770642285508596764312742806443926635084077646742649964055347177514491903303188934705478469180857919179063791032943545231748172237199112293458207985654727866870112881161583911044216011214460865863110954163929705867228380599428140214797140843309432363087570673745219949127495492626771730618945224710954871177984295856778836811457401914636446741160980135757217070318160376316720184444859017585638534614582542958039786611993749839986100525520830986165584722283043598187682772392290718525456815835463643928899119007846415216696159007568015421386142151890248126478556685778958115235717537532783052153723214894730562476002476010987100139088467295643704873364747265140432304635153759897423561723019845198867548094545909719432694652456282627945750476184463897605881467725832165241464333467972195507850192245470256829790325934799158466233863710471183771826439419653573515161456611359436143237497090474748626723134072857537041971829603347504961929138133128263343633786189446101900823732494969686955510513945599025352325305706335543209675376885258818718685187911161791170858891768774137569573471703508023624023194806992944672979469949405100435977887667692540966511470957860401991819820865709297491192679713775893923562525836904627230240993918027223078610513734527639917636301931297006382693529292184152692879651256799236776690390285986528083603296934004205199364341426929725580932837209769781800871757445192965676200100685501306469189036927699720376883459423181589339757247744594825134145155602364238469823786621959924321150129761203941668455173132804896352702655560166068982686476252921361771209792866668060608783350706913900757389726646050755062425310071246256580276966410876053182246993673518930408278506352407064425097887218897578394775455936636707310506457596635555251835538675135294746286808217767385980440291631737565118787857566801368115731745288957993178970006399833725170609487676631654688024259741146149113662862624358636613058246104870495076156765683934872493552673519430216500103521732806972723785852781006277249372863342753984554723888179642049050480712580845713956092477370838169872506890706591347330915830453514406061828399839205611930594908856801114310772799366620081057089035747160078683704228279619605183121167535677917831839096132604114654689467888193447041252646039224978084382637973848080472407861384746267633330820687608843515165625890039989051549085096258702101024957063380551702966329845597422033448811473260007018893043269719961982659074713878009501983544101945537252381185658286660726975005954065394602911929146209522925739601043895288554947156876285970647000608098853452067535782497630611849517147747581430275016369376612159894106750999794982645753263419402449389495653661289202415551087727281514829239814461916940970111659758049476041101790793251662813382396245158493781408829943114488487354545007993279843902527403720779568932276302363478199769502757626918740138305436085103199405217109706165920848072848230474861396946395643550297614542773093188577057199427868921362214755241179632431345915165169958812837748214950778237521573982131688771487636542655248564992462016028591626027086914409288721839014626312590384046380568028030261955393841187931952805049619706599813880089163290962355501704391139997929999965141755009310414691964335349920243597613056464872088419904370320234028267754542733345114700318399970970451394976484254276413815411307226453705472202440536195734069475241083427712410220274578845461699306718439939578646304784489990568248616238172133969432386863523298430959607907726025745639352984679650499434102185140719408495757502413864004901789018300014309759162723378540143723011333214694105028595947402899348284513777870302597106389730350797976771734093960249750274945360384443816618147001169934335360030524798855329093995758083750559527046137564885437005442755804384934727137050535732807645837895585174929671530139991092189202805318296821917719871195238367955326649909621489842630901653327691072936260768765136323083391775211221965783130091761337398000145813365431370964499986857531108046721188078747892285319502872539617528321027862165245318735076947189317034000326118401629732294085650468316307233850690337024711062387563265732008787511372353366072296190562482369230884638713050102179706137837839678858876672076901336674996576464231558976144146200980611359473163910229856200703351271942542137461820399709502115571572408769476230420826029800392428286566017855605914778281107345967415725572402364907229833807152622508296712113131431301171397035593160064160203502915773770078323911552221978840749595635181263775778680498834667909766974358360562025229403185053596589604127754363311796127449733271048370955456012550968560357312183391259016853334074218261283107563494093924590584826618416343238602321770394935774109390148352131766862444337126241046676589552619254225608702553964680938908862591655511905469121363954998705466081280459799221822442891078722947275773286488799075819858213345856849409224720551339934528252438453198841774954118847589729085792333760793181211059331538854097420186748156663413235351777066412381473039848791303834932020500575357209921969279428051079088296013385288299973235459194791984525810084237403429665431756107633383637432421407302620283491757492767030460775244638565352822530161929663164059434904216021168898556210702556711096123986965733154438029875227333212573208542877595678857301007559372970657357794979191954551940995579135907061415907525261767884008771390403782173575748643501622943191832968061297844644930312610170683892719565133840073663914156286499564450243280266415195196045370064816210850897809575869344793570976324920782877153183136820520836042383189974815062436352774231011841762602653878307077345804918730740177288166611978492789036000101431798327992706216879424301773929145959371791706398401497588321212860180255622101594827925752547509949460134081712134479469617591808998975205137787868786803790136499002448925813739410695339633247599874799259523092318079590421425574082173121636913156590280360905508511235721253835453782714412365522846485352116588684201442572031545551152849418224159308477714281277512044790641776502256459877793257717271011532259584879240390935083330926844067669188883614929257697015150212093289477104091920203142498632084987373801667638670872998898345488960902731741296491061179587513569147864167559135596924569315981432445514275408160194157836614833514594674332967456532315205937689783134995225426914607027199548578545295178366812606561120446693424753302696405469469804694991666508466840763713870812696450227889703766910871189182183138992321811726525941168090755021827610822812082752909181510324862394848575725049008848506014337867089262098139913417588909262729625872821816312405051129769599992807690582658953909502848798217512571238374233966937784784894295617458555117739407228013775113618215270530008436923035576104036357135051286781560407521569543765455991242436016865823449446767945212421697190618362114329651723673875327006126291071487018612921747120565845844050729901896679261220737042715544440239174997790032419350141217357582443740969189968548420627407305209992945264598247078573036933794320370598274975020685707360131430758642744392912414243960719414579758148214133406489411065300802776765498953235958795526430405487427435812174908044963104695940823147734392734810484977627794355189456303239701669420990140889359151051893889151986487785950952957748696609634275747917704236194336023181304872248446127718478330212703408210922467529623803022791301222592484126517781555293802657849150212799427412575272724947880758892212968190307819446736725989279024831109473689325630792070001538997858861510971960345170391981011701744286792357258826734970705093569334927923257825648957974521603400981253103360236589495680180419625147900159631092818883247323973210234021377063249727494784890104774505029167572868823397722227639681917316478654446951911285738424104555117223834949386536139664889050284262139630197074138629145273853759912143849734597137688006871632442033422127786962592855235389675626707645765340912984160001546198136758946652891198122584519900244244636109665905798149178108707872476941431889428488990753841091783503135864703664506271577815744938619859948946139177633917490227278682929769937719844555551324096306083492228121645903362225419317723707674409807927055978053567413063178772174547873616528637379014463267210952507819934772117491883438097175982053609270972163517465965475238821017798643834260900082775412880012748416173371415211456494852142320928140657632242882864574154008979403811040864475980632844432548718849977243816074770687942423648396428164244166591064214038898100808200796230003367506945413416856777978567200506993825939089766515025666319716638672773365370467901282555018382982173480063410093788376632501442058991275082291374005453150205094616589290318983707138229782018729112079962988028907134165130547168968222308237097746714578890168670314648592750968947304650457632767801056414498399691137309751312747955608797253355879255660840513213056547600584908188153283719432567266574511657517666385785034568418434605688852674589036865507334127663529862026969600874853555535730660712364754826797419648383249677142129994041251697590078805123247888054804498095391941402598808589730658291710436958278988073950095286072500056253172120241328055089501417053135520100157501065165565915334118203920425654672438422947711611485715085666649653469861665960104433766002198977016374355171989692221450862875397938758131730193707286222028361697762415219134826176061943320196914057092423699594452598579010358440810569540831587869163818878881301493238737416519286647474240539982406534721984008213483516350635871315837731435632820266189449936880730748144725795037795245538610546983784625893657832292468311451069865023414285572415060077194865992347652399079751744520973328767760320883949357257783227266142145205653216766529393953151284129602429561806091498395732873546642980997994123120061331923155410342006171603156920510290096347274150312421143660498698926334725097931790638376193089771777149213211445726152921752449690190272557144930888126258799860154696301264977048513308290572383775954979182602437885963751369583729344101439320330345733171981509139860063318891633151177625448449256009271355968058446956940793101335062551635411478890465491010872267863608136800649886502225010901761931874029688604359675148402212706534004968793064914600315619149582666847904241924002927584709993453779499651455744594017157469827512911044868788404986750030760727175016085130041615283298488277110077598715741372615439026957621730854355953068446966357043862808230953891246711798238284136916957072157719298949772404275093128860176349289561940329815383168176977345387120390295436892859800267164725516068814164585465710551437628425595059473306307625930375900654724986893102738572450830890945390496544308680179635530431488538753312051099257014587516081811145284906413426359775033214450931819116459541555350345046365722774171894308170520079542733448421876585383612671554069678955193476575425514051056142454073182597842300033029851945717439595622957641169568688829216360244615772336432908422950907261241271518293833178138989984753794264086350070576881822892536653095912808685109453014722377368086053186297764207128866971889100420378406945383663641519605621699881634935866704912972824585696729906011230721107469461710902988306419628533473937540547334610893045434221276859432579628334886377902640044069690011789615577790359214022137976416806423501427300009672859306041303558185304838665784710558160197888184567129816944886083514363504199869499552858937502983352638744886924451556583644520063812203103970253777524644002933616836386854378377866158452319703847187966291666839506132876533478958149889674210577704249891608971617804455490264512508975094838013352023323512103489030313923091621099526438698230686265378087987384882977886488379168607988965138500605583508848327281732039880153098979145313741276557987957763909544761641674220438376271524543155505041670095880226275755728058605842473576551338047138956641433897771119642180389766256146431492481421210540997957583504040612283595185303419343382049081984312778627117068019404699268441489245399400603720388645820146513392734490917712838098438520676036414978168599761412932570634687999619207746318374548273527170503621726680783061710700447500909923168901421298041660612716338357067183805425197402032706086181666856698883905731506943596894541372089562161295000007990227817008373196308477036545147031653288071251136324381133773470588065285805525571682572193179559551177268503290161939003503342010870350571446870436816923404225353915340079282490559970627778001105961554413121007912740548184419736299359084013551943164939394298650501134516848838999975542282809888740080256122846267502417412209203344350003888776330737165443235110497375812345436125433138680877919670175462642991820667177735098330354787181118877614217023530313317264505063215714828556215677291191984984765581635660101185409940948574573049618079620993067019377826427371262682816363353352059416994312935105848399514520831888349683308338926398647556978490156094609368774856386442700481334883894914321184000099920394636834614885884884535630299109650603472110637310021734223853649009312594857877933977972253829580690377813088912763769702956011973394297777938907764070359515898157720867843894594104194535674516189563028967881464072889810509073601867535909796811209544139988470047561581922657198660751104078622053877723762519304024022354882489803996942392186619796266277105289469416459661091234967164792969406993597459608829802511578069515028131320130298014852021449811584047324596889923054395244273801904580216985485229740259449096815917313624738253445178783172559813120082906397583100958152760028909804580289875587731860121213029072530479476718969467076782760683056334212724545977579099079752151945512738386864651729585160688751364948232174482618837394566354556076189193580822224557163463962733403051551022967195279915501395738938206196737803451623372521186124449760051228959578095060136396999933356615580993851186306938060331445019507126894780644038585172366716199244706725061395476589026684373181253536721077564910049751115344241695163335328388486810551244259112519775542706158001461282540909003258427972653386230705707834680768059134991121484467160584431595391330090668611908711241303223976572918177431498767980363991420217194762445593984681373146151520354003205825774366290803523643952313690080153531869614055051945006689402454942285217458909234883731358139710381752740649173711202054393054364838166964200697434969281557051522521553053569241060750660334115889730523846142734851415692333694571432785844466040289016612590475623231030409332537383078212660415776023455455477223380945962950600469448335074792819376419873664445713432699720534364898132982466590778113715128457116207122483204947980909015494971496745753168639687371038405036423562902303823460799970650078132259912630082659842512634632020215654418331461887993899000428789210878045397926543583554681497052932599425329790186980315035928365816750047462692020052155014537902775390280932971711080706913895978453078262863123016083816784556251146686542460878462317625955005335987704134124270300382316230891159221350393313444883910783540690036731946973747984804609384442472895329707031828019454806764095107596725819410993731338878658887096647755778736743884532853135735371060874291629211566372778639440114801596076825440984460601455911124896455703451958539713739646848832840300349703682816342876665794642122867963593137272027688384876280841487169152923134876396383586656987155183301222831565077193906340163712632922056583328670938064227106281177082680738314379826169584728128270603121418611253590249495332970364806785530920782901922231483236424155160464088587073149999836713510097622572830247802537023929731072874639181235014228561930899334398204502867211765298504660667698229113278158408906455696998291842539271977632282438124744312674691395434995263761956200304674841551177286166391493393152189535324932565853896024271524696340367104342624610436889743796836490790355547625001275024271521255600319349890089873968178394866460468742496912761489141837870625837213732320442769441464845830130083576274775472113162777679170110287274097440199782971178834932452060849618165298788402251200154786170318376710287288996073281178595060903425867504857773263701339014477143420985867560483268230050569290002379046484750577652758729644009435893949739364247908298865618032170198298310387140149873227298999945385033189559935060085691285583448216380331593160223741532234914798274604826020650115676221822068013118639228101613575159988894686576427419590756961696025659685501595057638071786472615653128747205672224749648884876234044126396234667598068559568774323397733856987321836928833904726825585261761829591746994341153014963848804005778315060927329138948659736647230357457810994159055599345871188020457883165687570831798396307823331380979642332526062746437403056506471092212538698565300360525608089705943185496837089368819612594107400055683991189657380195263649048121461073389280517621195115946294650971244898178222158245429841351158428587124552314694059095437115713678230510614027660694982938919665270203986920228058914727010350975507474477786101168024243326559605425165478423145871438526883714774306181896784452892493494983452870313926733086395814667520683429004914031591439178343502782441522081915868431730411906176157510259678044475580956612206557552512947467119966900870631948297655755137807910806748278169514806404147626532997575543058256344936315964886389130167707289113676792295351124271374689196067338856629064732824997465324143865311551048646407005950958011749950621352402584599160996561101784087497120741942883377288101406418079658473961530596718241059002277841992534394249830267860384961961728290612179381991100183475390146379769253224186514088952767260027732351157996186070940496928494051449157773425311466523004749750536378604345187917078019563431775638697429637135793744288452528769808651445723171326464472261264125450714392648624685245924045984313147776774440655053327821977612088937943633558693387865109705875247932014507976525880192510243752465562877999974750315360773062145476751575799588844856915014092346720172909404163086539931339113103634114470029719732036622423013945975999033530623664675746114767077993990998404077326536980189518555310473385971626415424339964644631298800336927003499010866096747924433468258208855724992450238813242046262991880783074638917067870173104827117057022605914448519956559901264237855689073828656781816217958553498601516159178497424793665038674124210580629272438724673147784337939458141138703094542151376760657044918780478381396375406949644085902884535866831138174082221624933762639056575294485096801184684222190140249306507444350672600800152618805684718117540946026984322601874203875657390171411330597286002143911538691816986498185022374051886343096843276386939550393444727232813090859945925736639845085956518755078463855888776020581817043535809553054034510481620609414803053481174800728563437553064945398684579033810198364695136729166593855736410111098978534388186528550789250306829557918900591546435066066015151196609808525085329732750742746870692939189649837512973645582211746715973192687690898625024755897488423077088306815912595250060459347549135625189758794354908753951007619308982170865721715049597035672969043582952404218609167558839412939132739227098589016977225891024440046732834574708565508551216369280932870052752143632562601452471578916371317628701912441272508938358128588196992312763839186914299325563922530418965145264151431819872210739987474573875357757193200924154397477713788126203708746287310186418339230198530250729346303535310716936003534065301648019076462739161534425570877616586199801411724830775810432212339681804001419199582111118479110969366054228032317003493163123880273604605719763262611018930825211294679529782706495955596921329556929318252047681477159011936660491688482002575152636592007002126820618515466755046489067888962661349522195953937968280270959373233491324211396283719605640514892743627629885002212257913217490801506365184824558209404120989944886603499425424700486858647742885564040690343601917363927208058118863733071708261113776992090019522183272095337977225292691870240221764898998836594079804542926623476865944843159726183623313876561489716697533092267060902386066575577767157183843403860059420863835000654701443506610212326762417224514473677792668442054914455255343663681094379858340107930084128516887726122154124282477163787021446057071382294822237803525608979203747659441416134435688505377069605068166434564162968389623010465857083401067195043692823236324116426337874837963532442531622612875695621931420406790428640826066852708611840488455392162086425956911600151016265225337827990264029698664194693675807007179083579358389509202291607987442496401673415274287217460560989381339104852401798257610262150947283767503194238969697145359293626772287997487985433370576610155270346963166275806032837229958931899157817920440029860341917641882778543996796196469069318992016767438080341946774904337420927521462049209119180131724135585281631193713882880968876205067653907247433140666714133023232087813065914065833447272762571600690240100463802204069672120920312622230370744490696711707791940151510793716373121813165545047559735763250405766890093165107197336495598585629756139523875305976725787159285036582341537123337627934470245375180184450710596826107146565657451857915685224023050067695440718887866971950913362635937329039157940536794289983611840703224672194122019649088322554436186850822779358909629908498289040855890901645595291251549698762555557862240088073420594687061598690743468964626561037653418351060050121832471107707170013049241972514049490491630416217484194346990635202138638286240175230973619257343610630220190573445299894506982191392778202764881217282357278346817090855444875073807000055165702219757533044821094666803180946883356542267486436031934931147308168669534897615454289232543609846038312336374838524840061676279006400924128481068322119259671121145330772727780340526361415603227476939538433972443927299002955853590632428221116657201903853010440925929971097540645147794760495986960388399802478849078732760442965271786624861195731154567732687707583324414633118636383226470638375848941748562899805144453018345813573669879448912436682690649512851181909744760118142089858407402571396503805166082013460291899080264508591598868816405637061001401251479835941495555697667142299547625607931255359736694804095846739063459954905074685252963168432270666561470161595431874240667278813622689212319202675987426406647924278266691994524980491554804280794906644519384826778249354772070932398326717393184967475355578739477017969701432314381699505500905868849587975291566064725854919948477952850917492892207561009605068135799788615243846423404060721296309816904761451890895585950514133564091303980022891161700408619451736841314061812140417330632905171442193616560298802948066848645464015767464661473339750617284051334766378975121809402997762461869444606184926971571027266929413094395585733046569545401475578864645446986269069154052514627759700433918312633637702016512556205411081698012785818111723606743920968393066129967334852085821617567815386286815692598048364418318116955364900842478779731467269520793162568341247006840468811957777107962722382196105507435792283856116609528165128399446571222183861989671184180360880848586388742658416947299738403809775176871580333391935448755822241891003973684752822424886657604618636201013676285757182238610850474608192171521283778351928417924384945157483746920814437766151877025539058398308995725655362725061583397997459280902060353757937735184402895214237005445055480157612505234055505956718306501124756310863105023634145338403979899491986299673375192945111536221799080057486181088923605086769962507804305309804361054095214259549224813241638641191712470295909515465369157322272582728996850487960326480135764291313378569510533056558048842478699343236488444182414646232455376351457687558825813685328509251454679619732037637917590685658725148717218662073675723742466202332722233305504777030350184419751153183547622473592129106858032712793636368130648919175757392991024312054364436886738776201620727128710961687848337066030583438893285515590500415782362120893179241701310834364250531505016348764752929323712740806217529987414875055410365394774834279284883698004374899897894207583009011795561060126837661410443196353906117971332213548912870754913811031467884140629074550615542108539009191072877788097890500671695968082117088685805755956903940467033220538248341208054273098347468252764931969344664884583828722147399260230718345477439562891885658959324076326511729024835590340948295100544669394479684985696734715087573065691899182397514980129595726747991596174286923231171244818690979346431864066810454539443215867354063247740595803125805059690059269380604633923860213913487110781376223175748258266442221741791591731614167417385554852435850121762049162977331656978027375652604564863834636987796283791257442071758132524709077419192966166133203513417747076608925935616361730792307908681439713482173902882936145009128153113817052065440947116403500115386519276729251769670029840360873080953295887223707297049186677836493332057141172978690231273601988547664801761296896487310028952237420272073743215106468333025935723248395527842377916307773283172169344187931528777151922992939252878650182706146310393086890400972295050547251495206135626085849413882928117255298565316417454679101124042148688092413991179186897398204122426510764313472224629184490927228362621406164881542077738254868018339751474287693085905452831093353700685881658054334145488659288897275322940786469179000387098673704330380213793898126206623233281179173876192252727370564114406902957052221057007153395941446187308529472510993040524690003336800609177088907922065512038108209925193539510725361778503627782603776586099838765678275255081953096133332280008588731385640762483428563729941033859478001588439789911572677987832155366068947421563609566292343414735241694560403854865150259723024768650332181174103240521669839701974810644934393926553532565929180043832828649894106795914105772657511429567017521515505446052553482296807958440761552580122168155218103032151734280022692603056271684621908064475819975752065154352069683793384881267863486214566637574555102644404875368960383683768538406189263116535520726909232545881340301105555922543388554307379069445354442008600970237373868880067173283310424042560829560766580644616809630133086170739038072649356689799607420766783812492564120974081423257540543905973580262384479966870203742652614720867138854191662761519625895753550046740673770147668373279662691375249637470181133036582709481267476984482838929475583506230101429485612563306305469340184187358112109917832745230808772467197810980421196633601375850847748046917479976980554400373741216694903938015676310932955587461364330298946972696364323238611241290818073538398952678103337004758275288426913306918222010937755412374647353516405596962239311459356318097026948391850629997745281916437280969675716645449033394950296026825358711741905846945811270205048032263616974185936393889224023023580005064307688980379533179959686886060049442744405842588935368735289438346477910686553578828386938660590123929668284180092354068175783418750047680264162042477142308096086340393619471627142968846763504161956896291980551976491400170040475927143331376624186775666608928804777988629926927881875735198276932733106602689205512710836382645582844000935865468939464957877238003540501529991262485732030913722864670465660930883586462212774743089745318838630130576756098685192581165963970597893176947472498801883351022005674508779558621115411530737201195504954915194228838431478364796379460749373283447182631773190331125895655953244632051056646335696810145097331857407384994644028580297437491961684122628840721167751168269726529339314193462213057252937930810299299314776774661568205280084796885347371025529825632991687953317828641409163911465597137469198237894823040916183025879550055486747740277186712307994398057248259353511397157751629422267948383060103520817304610005995780864804645834587033091252256788760383886875787234215007598290691202828501712168374913530717909006534108674415084779244282566190335929591302833026538733320801793204714640764380159475222932585326240542988313218901596510910482006740488445982149650730660592475095991532593473958659667215998733091547769573153822483253740500841429407814159140550081991681114421678646986772620479462809465114420518246951582233302502653322066217109257288182587326181141114428722674028963785952643635975484931491612718547236678260245864657840506876749389499632507657318396813828715555240078902987857268848397162841650424912218513127545995875017429621471774912066067254622789695589342982417951679721666706018362081506855537297451961936225518757869333412618383945649601062025362610715802662832818178186276379632868412387990965322943135142321619412199998730367854649553956174886778982554142707939469694567769039378590839135155314850358251356464110412984059142101938087761572320970222090661647272524442039524305760633818236054638617497315510191641191021685311416189002220188266398116744626091938964316378190641815409197155425906708427163816473054058711784441887493491313673883127382742193539837587525687097689026170290677712549241579378347642425305056003686874667375053547985703421014878114109214659532127856092478832794733259572180150823980150680516189639042507922078897105515147896384746051302260019626732216370820312035945028433171490359396502680710559264113780442919929311879225152878598170694771347923101037308317599260023884124677428388079394136278135270632073882903000138856448122285462261096126330379273467265237281017436630887110684910003894486254038735240965792114450788513822217456243694089503155636598633801743177356543736086979259034866386515666837621668815121369945193452527388584160921736995146429036115067672626112484347645416320367120189163393031066418656468775955509498195665940034201121806888217677169627065038553771277756655879570344044332319863111371776292329425799344835221451963159895675799066760116337308475456455907887825427922111944457372072598185333068805743706315636021970270769989702091625794823494935676374551258076145394776207102517646092088361967641838117932643164749486950741440126255793741484971858103732789974392750945555238988193057307951211710030247590210134661787190342772785380100525052572842588676690358714128264729726727795200570667463695390740483879289023182421771668164318663289294300845417508563955536367524392141988213299306144028346563625603651381935267966313255901659126668786380871826367092750072156165660660747791780065202002016042158391333792455728266357056064070714912355923800302033342975439802918976899370931206814483760451087846779042926629698597217404862086720910649249584373211125441226881775822465346230446168970874939359381046592606617155282777524075470409930259193785015368320728640247759987442807869406443830703099587285836676169638716730850117603066504186929350304010422953184261003531866979397284702046006881552833915690798218440812596423527416465026250142205567256912834647978439551487230957047815996947448783545683720970008604466101319974163348266688961131709172118755283391275536820173852295877516281101310233680232867551237436205681481563632582271694971109057662839214801961771945859131733758536423244450303993135270945211936110343835677805862390051502075591998475050568002271770433123129937718832924843470342410876987199456752714648157124422131762740734208264157626711085691709155074954056769178721722890441755067107203080502896881901324774714928478928837680504454964232567441908691347290721711509913092370037813522421681182053337711072907344040378204950120642725860500115548381105466621729936549514593458134353137651679251386462801953878767306884753446977357670354428377933830247429081014373442067144469929877583533975526105442956080891747618057969410206987467330590121376315803140197319641072640733146556699101541928384763295315737880490351343292941399772987672931643601560390223965566869062617802661176478892458584766435702180325390896243686719179895088198661601228217142636784041432649710731472702185288843644453575995909038903925935880413089938961536448312644478105428552891863995556333173231640613690095769804897982023995653222937324756020113025825050556811475182536489967305984258766806680064134882878853421797787788210799654626137052799532469381356963237328811496841757012332527433187767968662869946468815725902569188841967509504061374869275494972219299441924391378937540119867395979367302998736024715084588509498821128455012890626046483003936458159064991587484536491473389668746533088484735087893194343989432823890222439891342007646879287215968675531261243489965613694259829094663369373495427949633930084201923691508673937497379844672136731920180450972903393724315019311940806115662250738106885642226532664490425365644358619056270868788018149152513127135406199184931591724704841128525131584827599670746644185600190709490150649202136110610299574541257428185265088503919968959643873791057182327041381636665328215396384960738083685631875901009464318273407042452969370237508527536909795799251084606050200584455736848210130872565366893361788985388366122285952672762268579088087365917065100638082499372766388481925230381544250743719222740137473016967690009731749486866059044283685707689676100302379004256281561312641933835535997676377358804554494297106067227106220983225284771966576269939768238655378310501048978639583310931984037366384951471090017856323019532277949681562356247680442511033615382301559673566379579122095957235604435448468121671553621883345490095016398317701327848272917358207334491290518853976759193994503773556067397586788924426351218685531804845301976694450041743873370182117354053987178606485212419075584476454741303413104389784567150151181005789434536088069833109372743679974922681428709206551408746176925749763283119295030031175933856297755322084666282511469479942515860329654644915584958655387377859341749477816385535840425684470095039110013114808643637465939444786540019046319481104394516971028472784667428156494016377235231985012768660018753603045378093362341282816386387839639165025307116427839790649410714228871573515027549999762647537806708630213194096457140926096686076291575101400809052988105264684835300411540535915158611485188760307600096139435861208576774785243129948173702133563148600889731064839833662196335893697581064352801268789170591621411209806980257881955658957620206838709317233503374129140186678881493802248830765484582140696197860782140853172639421734239256905489982660678224282750599271594104715131743378140535964414226670023434764049829655015286192571792841306421436200774751764051942560411287952541283850805810322921649580721124348636723917590632814257116478128109089132402887326423460326755420645601561669240456814482966262056361334480604880029859916452585085538558254286760819528330682452340130027851304041205641153126586009662770498967043392599390896757625657246113175283339767807096873798411436207235792328583418904325958747823860533099342373964966467627495320387285382325152620503366785963269910213142144618732938181466272108447008302837673965176194234535017656290383327537021713316470512994911701032113741159860614311759652476862352363276289615894525569404500259378961584554772994088179180582666137016120234921720194253877625364262441351608287504178289672999654201444769934641376901767152894546394602256764781642364680670463125592730385471252964580267775511145408525295503305224575946875568990485935742297934687524663995087093818096782676980939221234751732554945719691884208023289093542132451374286990407679217303223528571090069177313233529021899142202186796576766523799573646054083622663843980500422715644193473329777532924435045629206958485546887910832697920826123367170255325245591781452169970042324290081719598228263670488716094427271663817562408349527363445111468776794732570536551078654636708669836752036976708417051844227558355167510927391089396826278578033384312150206944743524691283775283343504715901621723740804085484842942089633565892717817754785956989700870567647269118929164941601284429932750219972435725210884256877628098730712624268434008158190798997320257620727620356599763817739422230479045800469244062961524156440571370847584296084249861602354074057499679452020256497136784209282357478478888935297646146602458678804722210341946401108453666798906217653040370187032941242829561474531388772968983706299412119627659444258691272506185444843633537296177788172358237229132775638981577362530949151141960472869420763786861414378650946563549322743733414576779815676341520976802423291801244056969786014944108624551125460679941618385775438499288691610864141797496723604951571430529450949173772059745615991384288374995866239187825973753797799596789774047931940010459681777513541431904506413718648522960643726357399317467012409859678185647193681542524975176615273626429454022754772754457687215534951982609669097356651856751467848462819920037658808806257184732351552769932841409358899329059431943283542004938487886682555429393359717886901374022551567463085026902886367282982630785029090495428811760154648527507396042228354723437165247415900329685125424186937896430815103767468705887592506444185937250152124668301013128544662328646164762361722614665819432399759179485701816602105506908929220921610313037695866072901246797272947366909924663240005666251300862734496733580042229605615979386232837942427268652745986444441834394830678008684197220565698059981738576785444963625075029813250813383985312917144005206795439497678985865319467694434781339629994828047024196294306450304574386071834847475484645275115408087971956347940154832737462601514368753237595048535355292731328565519063362836096165521307195209982334785430527641982215144958454189101154214295468999170247437671066216588149638473527373762190630243864095958621714318581881265280271684668842664467882548765286220266649282987186737972836284699698156453693240353733269928041932301433587437479941566947226657741998868477866805812583243471590858592127396841681936479382300664603849439885839401989013371173775304306418433496242599151937358153417904349927244852360138784675969883381357866010301350517234174570651951697106442528407989294669165604160843296018007076528521392288525655993534132388590094193530324142965924133007840932967722404012681257541002523892293581445101302094493474934421545044007313823256523855627986964030593539401152681813626767500281183519823701826075672063370163309840714218798759285944250089835531621643755784893122285754759299901751808249753061782712317322726107287483735308332214497998655385879754457384655000122801315005534287553010835847341501121260618650419759896011542685002868904007991444303465494592985900135823274499607949968936108200829874976019904199408598522529008531703965175398213451369425366599486346575077957112809640570778418638595838969111590556915624522064597151988931395674945712641792326216714680845538534169757900216557382851838136026698245647183751894690307813873479905232080999023832200339734139805222109199346578747340729385331229088595830188286171834176994173018697063215218906176536707410066496533606796248413203613734457643695521236621076129816811760611388088905627314274592988055951698814740684628950097607978461228196419709995378230629110271641337659273817184261057197883309666668308584171858255382258616167376054884795607200278993625549314380708797746505826771228631269218304062944569187441759901928906713867825578771724092890661211887339488545226481473265961858967762877460990634454682509622088977324890481861264839351391546393923447460721955072001510107423325287992739907441844930683569527073419761312210676316413873014715254609893401657736474178668972901449943952446526667408390647965696796293428725155365610052854282645236612894998242313354270286530674173185295340694133161604424638009592920975448500130508011314092120909161328606964899015672572809865469404214915852817839072710697892437656196177367984481564491788404093647661601568137713558965196460271044899080609554970970756024521216157532054095795486365963381368729685878549431908048924168500056322165737526383251816705821891750492231304273741035772464502653702279873316171849455000426409712851850333003340711497624679109176719936704013007631128753244147294368731174372798211810684757350174165445453307516153896612608904109145886073354473350212759528529146616529112577159302644408551657467294027861426878957654206187180840083395814735304637639177591387884586119466569421502495157707455364331166672461717906778932436868724161322430666896712714374590996587979368365337213095858880775533013454228874192142154937728880074894969007626314180389414343930402945113135278466413861103507799494215095436250743310835783905864282538195068295810161486237551319321328383246584127805285228401504323328558963253403697260836836520264587007984009608838296801611810629631515150594098749156577431282072353292882149465314885832752361261982145902997989211132254095486277207471782962018911021735807686619736490003921713510660726033523908016135826140284518711593323951345026311045861414811231334552725686761921113514955608591724064805040278541961610904511190288119846451472451879340453983656574982100133945244246489022170975137697156914787313103229147359945409827047114265171126856551087559806877947642224467040816997924858657410740260999428845197215449261806086642679748080906877174168693591339537026928233896421551469480262192929970840099573587394850297769470822489247632109335622652314687265394051579356081957918428475780508636873546722309143507140102251187674054563653403243632486085391968482776846578095081382866140864156842838464220117987572195853034708558716809510907838825623048817735002664834568040975790361851806597366335863066852443132823984698934293948850549034704101938366950784427777284719510330291526172717258080627482158240384711157551307551162832564956230391948629641132670492590025834594783080928301829478835070683167752885100069247604110768451839485010166857005560930170443192812368330255642022315606573911095738769321145686201619561522713219915563365830451268667361538738158715805537254767980587590331678532756651162725390606527378473578747297129509887674452418939678584900606533269129229971901957682324544665559473112115160840774348774737833213926897277389229325491119719816558347990517189908958565335359918847433631471918776803524071632331009609368317741090646654311747724843891831691396822906361324271047786448579588119217830033350466238368340411654145347678383814251026557149618288617591152098970771570027799283473947329631897543222250626701961820241733579946750547310332224743301561884440096698654885547277729009523327161111745482444058064773417091088015608740472183550826966721630670461996851115571828004915127855921115642579947091245547667315850901945430300458535279099044039094915954751634336563037765667176829773533670731601645786197010599960968000498963429147066078597729675344773379378067045208491706824131398946324329947132263286995881478322526486233548648836884484050574663704542737401455150277935105896791288840646458957291870312305374317767872998375612410620733517181560429091832817283409503994672245739373566317501733421891782345133794756289652373929881809683716143240893692828525029974285873831513930509583521754404333845038657447939697623263869862987023128227733923369640983317176694207353752583519371074485427077509277916531453382041018489293297773864290974483142898018901610659294293632821976963212319272118092435208118579738509482339485149908410318755314956043295619727483444401553773548533000569500562201921880800530658197478289633521627736641583408520042290318691549383969497450622901130764546636808252009708785314908937631540796950991783989035696691933788284635982211054627512093880284938621814671724900104808222837649902105586693326904263900413273725091238624642083265080567567333540290665146447312316911974671561312776757326013542841428359901070272072980835180126185051709541317855955450775426761789620568788371272186279704082423889108658263866538573187875637563225030833214355516613592655674553081925157199031373372746306675962554421040186495421269811391531591609681962283038554052257330377554149875452087084634774173728899925119954523034048436987369508798769317810573963697693220507637750566855617116389342619105653446268518425340604598401345912746342094200471542015917912275669692306850608935158350448908830972887659094873548032744088006288324795465110160265348578591542290255009703638449865158164745772897384474335299958845037921890716957225543024736531515438886125662483768507032830528291450907508054891877636041354322592752027918250739325334324278446515237926570896162113995166859873568785078830746414104680592835830589639213588717657441534813624045272739461249521514605585650600243608455748948606941120460813285582557601976617433017749630831518115669490031007153922527579570170089215569692875662408919504648834280494002469205145886944670775805003751476659025173649813184252893231620317554004682949379480089395530771886597262892237729565714218538080940871981182000078621144393670629155626115320484553557250382955948449761289717734139009106530531560796808781479783478458965805590340862145621418055528360933364491441020536466673433537568861202728517041821823080560495538762126287331963883105109296797065999731650884341035533516749226668645941376436202597933300051691488446620957799542778442488144783566201983616304275015694826881383210234355410250994104935409933879982632137478659125570170460172283274782051511534464468136441527520286335071524825687599753231338555493481306824758700697712795586820940015612344000267298973599292396531850656700202144432578006744714257436226363663018774096354330039373420459093976583424470359103781868604348980603202180643586295634706465812110210418680220535985267317859623239468146849532626428536077345572059049862118575744575964032812925635074982756321092123221836963957001528641939692935633032802550011984446777993122797718211103634647155081397541344876291408455900381598413975852162258760910940986288604002261894833099728121290768485178767495319443440187259270748782308237655538034150604164909292987314002334741515044306320352977882690749813665572468487965223820847484552031009296998142697459004074925819527203195981630566663939438414132258670904864399139572699431574469567336837859245531646085475808265560270440310474866085062095376834418909222344273247708064959546390407044464383634427820708761700890196828323413299316000444099258222124980720344232767471354914988837905938687309228301810342504130710849175353696668127284953564703864225651426748880923771065588375190720571172729976328293602258078066759789517643766890781216562573009196269191949298149312070254109764075241377005662981136295057168068458696148026136878768288424519865524890482410773466845721499293099913947110575787627123661653344955420906274630356606377196760351867481324878675070606928799225448362954391340124110920970956168465312756808763519591869079526366354972681779830703635099679262521120806610513026199912570816561422287188297066142065226202231052112847571208362036780879046096062767095710204443279108765325956912801782767768970253620566131563772965913423968710838350957735359295156764969648071872898498219278327507815373571940862661885615052422953628398497174725807233594862767061808606456200720866707909541304674207512822898617145926166720517150421130573831418374397127133264078987785878823138167431113404145291931294146558449770301867372997239310126960702656586799792981854044941290745195722790979228348498954567666931391156769260938011534539065223804493838107213330892030145235051746526212067949405574830583345618623681176557418967358472292109632975158367728595727314018234632268757611645887372298186130042821872933297860110288971693363317405272064220865990463957403721569767645146758054110321857253754303270419806382666815013894904054418309999358937998131178334202486074724170833244724693081660672297372992937584092020113881363423354122032520061599797900243510149013437135103143344484274636090621263684280614528419129646433855183332214444752896735307020349180957021519440708914121371135485841252647724097143832279594516535061215643243200373196070279408639010793199594484684222056610381534905927021149642069348840085798806021735648038390800232471633961210150542823492225378459897523022215868297733168791275337626486370460986815305739670803540755248904659474827748743387095111328625415176161040801182656183918938832622890279575600547806739452438930642627405192678952592972431348345154551324764040059214932317067932008683324390161534021984474446534967234237170982859138381801666702221916209895650701925944607791239601837758230167593115179577076687523026191116261434488918855346319636748813088084006711257628307259848624170571437337949580074116864774707651051137951385312640126020849695022935258708221065955118636369443838464220869738256501460120976697192156844395436373930724696478776055775598425152035293980795960739246445738381738300842472010272672183312865795114306739915799873969457236172966432671941671543171396927963314827747271088152570199998427731973212094697289286340717585948739629638760627284785738520199047177578666434827357974670581776464426861761711009609088544900725182804767942537260752181582176485803600475430866232586917308899885087629694659685707385851909150217842186058855279648662725912566141812094982552362589538126987225133689110063312156283867790622349757519586257032120403230203299819249713700510943850668552430445414280396529244482073226392706386793602384540713218554516812681366719204084158622920291658916586264237726471670304295370383085381268803783696224018837763926847558161863661117267733599172460158340000300362557312429769736912140549256568316773018257452939660870198902256307913360824499149234286654106528910781433546361963451331727795207181907478050356151451425886608164578289807751356212665113374218389403560538683734286467618607456684420465279923251730618877017202714206228514229350059797057709477378354715558573479540977174438883272989153241332252942755181396563198243473814557734876317834637367732719914563086039232873328440712388008443244744728762086760068552638059432997152610265537138103693370956761115285025207828683547733788626138718950102793982241021528593569292848213326584482539493471708912946510889344526890701303622762080420747953720507787174678855043524815203943580933007761260227319933383878514958049825899306279557973483460882477747760642490144642888608937833765285972981877658161753437232516317346033897082800316645454180759432341632673135003923777202155049411677776096838177239239606306545657914384485553252110732609976072415945690001649576362991573664264094175235680431529819065099651537938928680923260160206903604048037690571353630857024987252143043536452928054482739734699598596967657563997312264700997127505557623948063083408867925601348642761446946499915352538406609501869812186865333635245819922330135361068599103420022330618685789222430452220341920545139545590122145338257966637004043520138091139878078536320236106955804479346595022567036227747659540946094321529429940331642747315857294294546948561778301051379932269523397386685988996247232841954704118682547641796938265184392904324934844644959719291503647213029152424925000411565360484047929937979594959585481417990559675993726159151061993779956448495384855486233250762578742333134572415283008814965921837074787030858294745459918649798811877288219530465516562344370114063139960989912001926139046298017119646527442374747950436331087235409105511483856982886168766550721661968507405878688639181252006241166572060724457291581348930779535283529321162146330788758283858408394940095379046840791256627305681166621383129701339281290411166068476503391451358517993580201146870759306857916346824534950938240415278351740064686196930545065217710515505224311943306347549736339680042319996892621519150733409309335696694884115879562333455118345686543645377122728648345236754855452489324038745078001770078759212866107251851044203836990990417847216139667774211842894163445050792523227514457550683292620689100599023790018712087973870640819816771772063957924635336502360674394342435804518727512881768767742527469964038220098666312772265320159842448014254793620681268762771223220384108133542998516811168608001452056471889502637938593768253841523119292688572509783868599437175278646749698277099763789528655785390394709651498773736612998898990854627765173112207949576855969879497794709126993650165990338666667287286959894246437773994869453218941889036782401457381541860674242888352680309319997539652753699865199655308946528259857241690458625172938331484641960390095484759382769396576208576907799652285575649199825712996129216507028844457946256879963226230040956986501285417769316073916426810810806637303783619060318269317195720503777108883175697879596630795536756348759270873332800917311298456133780522577971679149420287927939212913181574577278356020734023802929137196985857861893071318380163750894764215589371559330514015473664558687815255030797741551952164018461703960508496313792624352885692723546342922142542018913357512970808892013045304905879338443827414707134631251199805907308456272673338171567053708567035964663745217038785390767839422779640261712650400767639406465410268916747443376480455827245850776519301846875906622255790676017376614139987301543529804821095981586726663467851923627508520087774144993414432944585523807314339229611660464381371105277239235306297194111182722386517975607512255440882089133192550969270829879883301552248962753802786181807367006128655565446823578744675956349118789036574006900085246269211460018700982897524344275276652015614075646265891454554521755554961726386400478349989155397370214060673783739924899056313265319230031861209427064251891791086893038338907225239236085217198817160694143063281158556895831157477406967725718449370586719817043965236971917296369876517753160003779426664428277590601219324347916805689390176394794189881990045867453814413385073308477280144747050455152668684859127192471983552392981710463048713915717922881646772521446659177551682743298118702274900361015602074284353098779180935616922864394157603962178166498937441081894058093172840703205605689371283582352922669570454866130698051420102003929604823831925649277306660551416111636477206320927420102119918990136690527907866246199924935393662450840203915258080882561413955798559950965228752108025153971693117431549356942866999338546394099362983664346592405180284369055621687803005138493557249990965721239642561272677492115970757196825368562042915373002760830751387238896535430561728978814700224651245389037417751584909375797391816612681515682253031431118952901277140644210401660297066845099017458435473493069902304428463367374618414740268047391759136477343641332322598931363086309180039139920472254438602378761726396074257366327594023887157861361038601007148390964268956093553709840843368894615865036785361993616302429537941994687245748052110017953851552116076308919479862063192537761476945262065133226578831431199215291328999215285539008266220123622254812905904051772600474148420271488070139748000329109377061669002891970799706174887690541017011064392279870637755857936509303645289565462327267963936072370600924965090287786837976880929326346784295513119262246271746778100536089626617098753940824177174343473840101560251303652363065575755077010908774025888129175636053569296344641823054558349987064283865256268740130426080451101392338030949071677179793793214399339261946046764972464763768289313028112446661346114364343313808113578018454264670856247873270182340276713930715081145623805469993121366111174876476169799247268211023518091196360271258349041413387690810863608659000968030571480550218163601377054706678032130335587034753718875208451632552892015947600580181484366395617121614898894910915491994700675438960302984924204153071303480676399355458423910234037880802615387468200710000580561377716386482250140757379911943171388192378717994622002285859086025254028740162785381831037693594629697347761084918172491172635642107567489310173320944485823095978867308898929204089977660647420062502731415676791117553780961910742336331757207553587357457387387760553779344452156465344845460494885241223919048418403339181492334775354609715849806906547505675488012771083764247239306161520528649669869312744722214038796804391729307185177346841499553451159054755364952904486593623627111152683472714806749381227362490451082214161975235296088087245273305831040689565779605004462415981100878554162484093754293407702629840574682911847694613569343081163800384531599698874009264021165277998116114142004569752711148033494431945244095713092736130102669465980991886471059182575839745906884976824981583848056711627567240439743009558592190314287423831250157589841121349720010774021321248654545142309091420007606623113786771849089758270863217035453050812868266989922476586896210490730940884767224189650963045602187526924993928971838482651390754748856228689080059966010117408033632550828248948197010208678444693574838149156507079418865550227767992304154825726882034781055128991347024943818842583368233667812748950340414312152241111823751311983969516397644705232215858177427647326275693074551543176363078433070600871316752830166716496918745407463770946225307347579673232439504219351265781158741205735851430571812240125320531366356022432741861867258069550689260471940669610777640998164819776483289678975449887563263376814384057065821424759772721862806833546206691533661860131295388095908762707424146123287466522012797231307934787105821885449342956725269809372944337210219437378530182690135527476610636813253324794679154697201765270654221399595635374756920114246069683755395612784707187853541497702166629194135174312626084455018032082316438671828503660400622467485387887375204327180605512958498630329231165994268812833670453651205577707992709723373490102017279680812936272356054195281492105407536161825684249502144807547875131118150873564482947974863018078109530947206398233438477552197447133478823694580489187061534786557872309579826802153430023026908540039648020045852727940964038878293343897302393269498482803246765920986320898077960058361047863051982267535160967285008690252085735592278695219711865376866336440124655049531916748096636398762068370646330188055099193199209467821456025324168591766619840670044897046682044293348256498093709997391851419339923890408553551400560589365777011414684568617958346971999536362953392057641873514822333400957348949523755675940547796904103786783572714160627881339869457322716915735724308869522243464215377209756963137285703689796053987465333743693718611398111104286462225928023561186703965788731401012502790952012742552056666966661500763216378231362312466433903562002731207610596030631128466494997813531430112607898790891561688304919879952656547979480147721258511337956167717434974583143504305021924108346645855214367098105542424765742826755076323984067824747289065667527767839203861341783496507687024382027939113683015011900250149227532203598903025414888381783795998521937958540685147351916671300343230550839153568930052648508396060120973663219453484936811010706106594927381285648505638417469426437565855340626151554846204979102215314089332960450484153219379744058585765631929442598907216733979010947449014676544041338325667229169983881959006823777044272118871937728730776996664806666854419846987521232199577229002205595033523295170977616408356813483947562343839633956293238784761228467447522121902989827582939689359268544897608471488399277293088736782618503119102275929907811616044923125383625381871213457050074274225558160733973836209422150060864730704621115928154948241132002097432183990201673385382060852280921470737488279539094248688684380144878151451098718326504920687201211499796542172844016258785042055424803817363706061905254890112498453541183659711409177829517786875346424877949836976691673898642288776111865530624062373532470318336816723076541641200428951601257636493849434355416106677223170752430477569290985812170747790939717696687224828189077510513356324178591219274267013012433388500292459927202475044710632553058561510005242438295303368368257208777445953598262099966474206805473719931537361304735929092688521296898842002695700144694219689275004458682890926164377965621318502734076728181170131493955215007792206977746633488832640332533500364167406934391022800191839940482846276140474063496241529897581500309052444105154034937998078850074232970095337142792909908915185158824513285577634515638656514541996840188365398955453147168531092284230525317263712637735798452998004086970071397374865472835200194361181555641643878420720601016062026541993445350679464287599168151790359839303171032593782062685072041693624147302369761880163531839643815502553439920687468073562929905989577939690325821183309859125560358352722985847521630670805954498673430905950210641210445238451070211566142612709522940571347066316255741009000612170778624189118951491773883209577796654160762138895068477920979910217845051129201676915705008697227091040570813590622885398067083674150230705289062674224308995550735830912155340723421938455669019729648695102762958944231342294188879654046643018651096635826395194297765469371608948958418156038114403432904871252756951844093599925878390245051508159514362070463455196605576334948013590936103990164052799749060709460742931879407726021610851703918083722968464321979021599709754865405767375548725579538122765938857362424552902958259358524580444302468009383805321640032958653403819240850114156841714611044615963102098236695255935096095116323237336836038839467401796544682249445008724770022904816615136368465554561046656537202623625774923974027518855960138545302254490628729043705696413840621699109446944625973712216964679229645840909320458093612171092804326280018216468587943624083431133479723815033027574219489877161005035087086328828913442426403897335223646688957405715356680180360319054312626306096833244654876645112414375183959040527117657465269118540942568915351099634528600518277173077241048449003380026823139507875995615577500952213586980123340946586804667107370254911010601727683848654998381371820192278422453969885852762153992079074864384670875197004856670266557158252941714587965644002498999680831468370816131772442312272156037586565281031139830714258134605923892544217725976457244155615343981906945329045899300546366690657348950659082475452199902784213961074271244588357656947558758476807995533097747049833597649549037670455514728403704026335110046639747828830719868934866372917881121553168412682301757228190960384411892018039075269140125364572291277289225119409576611093468045784965286215203760121566606872336719483183518862104554905075892147463103113248436176785545419399506326131092273354767696617035358283238993200652662679422370649476923198989146008630538758145245564786202436033201614943680358881668317164665552457864754549573038457917147750746088784903873992278569481708158338957646465020170335962387122487241430911282061090021659869598227626692761873502287724370358452448364670607523449062602305055784017194639574897544824284746312918537429352933864652587088828632682828662808683371792874496411056860485907159446786540495319984680839201970667438314038739621447092222280700103696447211489582381824252539852235007666253042839646406860661207288390052873081481075659052232436338433506805152113284527201008145260072521910737961791883952354542875192997110535057466808914371419041393277800798033180355209205244458877891111762780706804789597006119453431315626123116931394883128570085987854570985259768887220952507015916009769680859177595871273879047536262539902581777354669341037308496862667873146463883595837069853034785998777136113013951807469672473370000161497376134021161191926462778652243993511544029798735592920555772080866892991619019707137290460252052701908712595266060254630175576715214111550175166165608311417274656104653925397130155051568957127834662201255311741977141962911171163408599634523893916375022261958404735666837605139973514280142584506170512317785389008233325259793125995474823699145645169733953093846541476947628275406540734945925008192417485077335607519509087966428825395443732213636280471922714953645889938870197941852269649865201274845431911099187731691840462974329490077043516684109374550436361067675297655183314983209136375587350720513924794258131918581552596982319861357610659381825951617271707598271129859779674993746494876775530259962847865377178425055656074600206641598191076327274877636911809751596023888732319899336430090123054764074276493556086229437009342735976558912849255436383043261194540752533737316569000316856307480979779186239422559883032976487530260521000166189124292684820963364715802606034599099018262846260811835381820548694601642965197200818754965625078647799519853911720057571761595664958548585165602494031251251052660355988132599137565047141721728743077053639185913901321995314804928003369058960305935216344543191892490330834137467134185981394186996398536518768496947468736583284999479942288881712041883146897351272895096906122592629825216952946752350303450049941592555212863813424086028420735520638190070841175170861475327652044845599449571123798142934614784029240393223294693263672397952861867427535166882543197899022368166322451093269838909878236952919377596116621650565322243355916764754715170221363007451750672609567538200378188322999731343198178395132331684135242541493838619024610154404039779801361389280484190876747802020910768532543193124278834935495963769380532399875734896842114343350744766944216187599918577740669112504783349336372438009934384162077423811945445543610124727575171682146255492690583193191861165825053791049137633589683746297714902072643831664189603265564757987763869485414748166850258738086420491385478675647041301022258246322466637949704924560031502509908528463852619987863540130172565544060492343687739153509101713926509112375072183779906761248012686486258498861752953383381462031436361560912368473579493497209459350062596046688728863402135166344941960824567269003386575348843214069725296647759388574284599337311443008829940685682711351180989687064738744385165969560416820554959110417581927611360033698771607871721955458816697561770912926545385812329838448103477500853010986031515767964894028836873414013348913096402432049506538876195681961614788187689632088710811330094133842740409390512219677529186789349784418962370341043440204621692425330937645098699363458289919754764693293078447772924502420415077504455191831757269954166782358524663679931658148568354928877679571966480111098873915790497989794375052989715123956983086571113640045205529537400290320346560006678550399314653238195184383768686700352905666145609040251788295372202013882738891287021258233109875789579162047687487057147542548685990535856598838774417602260787611194262051981864575686454634671998729274179198300427828125822473527822138040208566520306759083352962289062318444039724315046205360467718233069446028148351009201160234714198286835277626680122240461384836009000300312748454373244975082154453901749159012225939309444605819583229023170990728851284647977617397979283241161853704031321946269239977203165658754665547509969066481866605318888730715831891230839371131310200684199880242698715024704002233720688622621035060737926565311016223458524438610215450382073251423630598184993198309759118874431185638994232799752487825634505022100710411894308238439275575851064228989688408359166553784250327462515986453870266700412970004215857636489914999955239485126907565547380708056007829940988732551044304615858738385742320799274643694013751947502593115659569544063499170896523043249415052467684991314929773116784022614369687884975947257229050963039519847561507555488464882157976251220268570577159929769252689630060085499431560320617883257594366547172317460784853219731376637319221535278616818723284475248967929737983354328277301178401755946513028841905231136850630181326308427529213426647475820509127440813937243437761972872198564566040680239535766233645018938642199471236264656535357118260647211993772812286482970376204218514018251171437319033107140271573007079930715610660844632105801837334640913960795987488568817326713928642209754115705123065898446496433115306270546014371819666664846636427510073813562764063098941956469087544481237178183127185206139128696527642804996385174032863176118109408276781063728037623050282436302586520141252332811057318671653550688460586700521648257673823938640178765181242886496904619844521744986471670136503348747831119649196929039456660311259968362415615125317884794246370262572804348517587903066630692716833055912100431770054902725919663609620309484584924919867645261755241702482423351050450897431920530961411548624644131581078738549728228455884131058337740023573271431926384803570352837534574543255981657388133976266848330338295480122109812783086028819550579180297181916881347490167407022963849665615864930516578775323242536761790231893050052342210575780765554525768329335145707423513205722572334217088720675151740222326275266506559698006260902251058144061521462728825996726276850483398356811933358355666887472975095356869094959814313051536191731653214300909713299260873008713026807485075426185957627992280299395713502926833898108133770580954218892761477553213528253910095026652588705016258338706159119454044934601376329746569366678861917184217676911286408391563414076715439848929256906541721699002929116433643744720085609393417989715508677775688824473380833382926736765316113587322768320055647628728040623820799746721155089407169904392947524375503993398273260807433923440226213450708673948968990747533342286060990658672192981142098655680770114215959299500420463827324132988685396641495756735440256595313141251123574126996903861581787582038128118254001101744396280913987880649004138057590742420773078436893546811492322544255516699008865991623242825764206426300892812334923268984338997865716943489736322189190801131018342278130605306261248957137758544824412674796691454804791142843286453134677466971839878717693831256314908946801083321334639518903915445086450670812760835953635593537453053919457279420965185097526096315059305909116083365367578986439447051660886465462299538732024869850096446354066710245520186652449995259227712158638628487325254589788854312487485763586878378849036159742863275704388678318951757898503420654239717064516024358917659848774560925498382689580953973770580247889338212206568771216422972746337367945229289472639027066416091091726096177107789435631555298533701868003012871306552154903800064866235366493600559474520818281290576814145166537283808756209615922707929209030457033276493687141698835665917852702691171454116613730092743415524688518498661568629235470519094109101953735125744258173533836728896984015895033801334605081694455475844814462730303412772060929867016547787624812081508748568590435781601775270609871624041034076761067053815699456611206886074207069876724607209368329348796990421628907543039694424372777631915626261264741685477578160767634250794980913725336092564967271652872588866409168632755083805572341125922045466928072020570416471809167976406396395285959164257797170292353197101592397755455408262090675276360858426360485799439403592698474600753403609250631139357966591289199162935499628614459567974615907406473403759875431415456506661528524266135908637120535400437916265420629635740692884720707369874413182121766475823072283293133284137655540165887239704471769569926482662105766739414572621897896632248064375365687129031469077392161253601318416641530035115073443120349829833101187840211773166923177646669850803159724324199881229455672118171257679585606149576465957497518730396754710896850872601305289635423040955413004155796675113509211467712604770733116517951665859984350247949022660460728669594853004440180644926498578879658816831172649999733461019160496074646575974028819585373812902285562278335141841571929554814444499925868968331588495910565085990880112102733178383822544311864455666083204177500951521806471078188516858354014313927542637938407610232329855950598243565817925398531190991134980486004172867901092121718412553487766343865352917000851256399708706526385759775896828809756112994221394013439005818657443755400858223260993185249212706050597107177452092167962488354088961459582533234145182687734476675812109672867443879188422019845118333706199455481243904882779478830837880121393294730652851956572106552913287518871059403125914231888901716243741078294973507244982624097380412110993997348486123765755777841428948900795521076679835322672533134365197252611374071921770943311925714002518016766382581641949640563381196057904522965610693947085555066847243085380716674930558330408677517063031668069225708103098285577967963115285108237969193432443715544974396746138550573079062598498754128627854412636884847191019021874652755453160536074680337174754652622973109372631443976978682158498544043150296897470799673472966094258492699688656701160805303357060311966929914620783361920040925317335705126664607568385226240993871220791660750543056180575822830885383906236194032201610551477509375343931024554102538208288735156489917908394984193375403180265414517492285189033216613131947863713828551687777303147937108783151890353290313705302601933722355670970311753603766124117146243057733878116058756453275041243385474576173007091805500821129070487672622776300019635363610053513219684343508121588084056282646380493950132443253505252948230033705434898666398029801797876913965060238586324267969643581768490027261476191017584631465382519923694150438664608546817610001099121171492233155565754314879032196245818644879653932612358380951220691486274909854092036870585470020689831559023715567678684585805500323533863640895220402665850213069043010599180706921645331619086478398330382469461239589881448342297408279166623658895526855707066401441835183431335391438703625254681309410740673220423072829144310221688988451942489891794908702907031719530653691986553394727488404724368328705782805670346819206413361810373432292490237676720451212792595010219011707857855468434124008346864990844894964111549425557449092602511233628594382099452935843114953842347070454893136897203287335242516336087512899316083269834994351643795365760899045960490042367037701984643685112785734225250599184606253930954061249461100919888339344308805718057822468501797383818838112204845673911653144026604264183228786674569728797514750428573168839126794713885135442284890572223466469547364668199216784035312449949798972151107889699379077822434106148340271699694423473964791389764904841641830040989006707743307072966399591484788010912449571985138276503410268729038456959406710029081273565166960129737794058569848716515669015637072188489586942831154844023103101569293316882417883712644643523375382791623704487525505281526187752264980832868271009202331385438289373919535300907320516811520478687146848474297274136509039584677039129704058416956219126364058670758675366319728430572953263347535327342092015201696022318832011057533181532195039864143037050795085118768785196801349142693484954427896632734708492012185725032688774971354209332327142198350206030959858483197795103903922157546854442282296948553413043048508838876084872166079181944175514901711113826601522663042732658371055961509829914107945166796113260510397399920229904980874010953160886627900871012164441795294447464714719104197704564670677124109556407207552791981996933917401372302045692386240193156361925300105843020753025966895635211259754437473567688592649403148911390688072997152641079353826378029066399807144811675173711268628006939296090085093300060570823301095829771577522081491371002601010622700052742110994017145213383478216269604005869425616599886199877317556935066275774844317805598022455122437062873646994677363002561553982041745192509168607882588125174086897027297422071562836487968481383578055636492162575605712504126959180456324711484491825855496119402250305321967774927502709454392173363462248406533186863707075208970417240573368499906611266847470168382446178705345130630319754222654747984162342149402665094581287426996813716109464086193233059021103670210258353556669214789713006075819936427946140177103488845306928654135146251703832549327355084076563943157095775642736043765671128569211482151252680427825834998731663469408335866624127229556084880672217033835468191161238727185256104969576348333337052854853758379206440301375156633935065529652905036449763453986647563412283228529956203886501335570926394547043580497181682878233156761206524290377428833817086168038719148824549015201183182606690394288165706383870174541084809617427408584212983025631083623499607151986113164607109478051689478673878756157322933670401855029496132485816637734805939810195330014328968969930060989412195552478844141245748652290304622909775444574270037800432224137577727427870747511092742927661089594861260148902256516877099222800508571829717675920770364399552646940997365293744463847463427292105774013197493362525293393118167004796261837317130511477692735353270893608407374216000277771223086923015875153514729471987164335496980364047642192662599130712298266510379122810715447714895275856654236277413201290289703822175430454834270543976481087397392226175533031474926776524578462681812922151326183897256942693325359468191989433517693538966044859273763127993296491593700738173634012409156593886650922336441753133939481077183748883224985222460858012649164631601797442525245911157580472763063142411181697783517552192857832825770076376900664616930190935533419811403903361505567327648525285460385925160218244914751778269900145509169284247096151265386073332084396025481717366225609725875196812554527413636193073068275583987999644652987013754452088368007197632976523576188352092743453849564059736405830422744740879367039248475877406619317093947095304642243770646653359757575798329756245656780310671411821310985804010576475013612480681912985710352546632870994152986868898111199523829217733764981732739800211362285274938806461630061703671620461077047935919891758612071428375193044599159199372233449357483946037977226684063816841332409952594172303113620382920528314738277015673334944159912006404632538626907910249273174964558106068848818692151725348525088761439242677020124444513940087065988021032959987289030470119981949533234313731234487425306969354500808202996435088692939216453928808971992904280349634833603737087975290880109772583229980493638698325260427472622581854445500721577462113972139800837073725581357961422384960380978695817676540601780100229076385229061325075186680226851332270233722543477861776860395271976568782572425172230640524930014667013923489990911518624420774801044861883073403319585300507911681989840058062503459813027545287119616044093707224061393328318282413503242076151828290212691687126842486783789097901542651295284045994212341130673493248663107799628020887017797211409741686148808289216611184427607356368249998443930729720577769762958864065036866197807166586073930591970932083862334781371801409994735670349699106400786064489600314559912365570656216398753136341805543240141043621285637279598488772417460073740583488058433328140435094362788469674724578677623245064180978255258339631769259756001390294579017097788136910740933531769824268559234889685419445267796776209298013752246282341494175677105811740086983639765626075025538486060646047525539597850125063608081909274982504494997230051059847899896591552179456245393800464005141899482550448720556587671775123393730563078062861764138631863421952322711018482647869500630765943056641271435198949111440988864737426272824545809256558018635440277410497267162345535106911821846524276096939290673223040958358757561300493254215198354910794965041710929143215773657126343187926760607361471867078094861600609176709474377836809491846225644264355036535706391290705629676837890543211786391766746339905118719424067449635116019742581425279968962949991223911141689003363170184081074201260224686345250020961437129567425596510624629233087005642827002310213708010398899715472357857314282994738855020396859855671019246530790682157744598474070625993381669708146601204213638570307633168288748616616595890505726157346007602597095259286117618046230301226239179075447286519588078752515396153082771427932704318594517685829638346793898083412122424472841707477763445000347256401611412059179887231296707460849558761765982736956107962906438735097449849490962081940552501338574765501274477470700512800961218529370508365844128483438158823862963116047297418796613678951949707547280699293919609347647403461922558448941316552877012775359273549096933085980773667226475036320526626619670033347361519141592128322246209013504084783231946730751054446233692978171814176859111227838709881586101865183654861739091015707559735338059430586750183801893216391461151214375644654331317848523511001646782842075854858000418121844627808250261311509951244256348273469122006541734614437458421844614262423851787018139915524928919188829405358828466986942268096781877626851397053156914024171260583788362465791708177153805070307449011720164317735487352141199954022480472024623871782178857264291369724809676493824627047951136870965206416942047457090300246288167491147369554077145491537202317249980384159894208452423150416016637040468446942767135434377079247040601119009181591642611608116958736201710273543431085049078364248020861582913034982425786616418043994331793047904642092693821938281644783218690762227238138302772789379342051624705587872018523493279006804132751976716797816076983031079456540539648305639287863652073826524645809642176724663419564426146157956817397299634027210071096218992392326904847513403305096349849317535800906391782939399283511388609152271427110992041458141240087484021313529014778847917352505079804260921272741353135338613487818651024385483615473992698950237131934049826244683122365165813347754910861395652118250410014593234896124162538409135469039102905144095483343862915509251180065545212127530143329729230073470192477945417495964459251643431991466319324674903167029207411507878647514930107308667957085642499198312642875932730606391745810836236922867592801133836335554345921230456438074202660312382845909057650128868780504830350506713748328985836317611180673849156977219901809599325886244656648596696765131393593620237518070278027014933365315750509590866432663476925554127988418164815931235486467678610822782660806357379276015551541523795646969223125543590421043683376983793569135490342463569823067658334405018892208878078913287626639785963715851521650250438399358055096102943354275319728804393612960638427905866047831287373713214930965962963865861373561285124061941600934770292337752530272377112292758410929810312185476656579899547190260446578678241863955226240029592233772192296313230739186659361466411350608120242027743921384949478721355239985571313330094747053483369682532787299100935587747727024132065570398231751081416231604091277640730132155799400491882334437728045600775551911508754631032650201332371605058638841302452572192366308907668309878806702892242490934277493879875606862062735046781442460896407019638825366293585061663151427550218037673772840411155475672026097520157984379741129134903129675688101240017012209252210324698478787149047899777187437778915049520816943808536975262087795631254743035791009995108254573488565823902968449269434416269658359535298892507069254686769752905030745813168528543846927282415475953304606708402158170718161167950450935462792688474968999565866506544494111094002818552917029903039143603381525190720805167206961778684677641595456607415662617923823026762842453653887839895528294670494139790504096813055563460623596071243985508483196607491967133795244653985775623122312484459797100717013844518449823757867461706594206159453312245517093604270527977214732163930500970780166176073063064841600834716169963273326630400513131537185710961854391837466172026426938152661203118418543502552422770038494619741785526339073405048771383275446689359966021293014392021221102633973021460306609735301798227690985399803810412188217631676008238273283634749870810277405158526305769656331480517733248840374377571689581265741694561014603409335835876675295300349287593273830366997495121657647374778073491735887433764177923221837611612022906217119455901696991981731875076374901790908640371471586984611731629259856839862830609604202164591724266324808584430659502524814662020749515882341919444426832483810902355708678389948517292850865350131807444638151912598629512991260412539114313901797640258921061005526673013192497082088644383361212637689110463796862915020458306366969247075290462276120141464146415962919149250538049941209229623557326304041148799669543409124897823197626931656689950769010590769464770380599763246719014553029067636345719022985603971612855503778677931944877394832452266851971442772027005773179038505860969190189092442821110321528158676826534407399551163295122213088586144994815189250197251428609567545302412284463737792754640439137621266276250593028590903493087881859925533853362887023283821285816177176230222171691536623831650983941060080759945640583775341898448976696794201024518803841464664385746792833646487209280834154442827477665851101082742493240917156685136173714101246731301923964033704898294202508116118415142114765649296217312873450720882816200833685289110970041107585471683327911157998442465568882338954648458737309694068582215770023406480558033193070727913300458155784034524007439533283544065090368728289623731703584006245748692040588505915192447533542342381761216245026586559253394419978689296990607760742285519311991024474816012584118826578004267908594219874873236208884547904825381527487852728924074597850214979378694011676415753576073845570181076162976365104429442542859015552713582603956766832554023491374873254635745431181326036835449966425374128407390335353574193974709378940071293428325414496192657983976820349820604904375432693681060240251872649550877797823970632120154872176999015616045688466220194934961141400319566747369995392357955725919544298371216010340352491795959641037586869250526606999680751510674129139945126732462795719204255455894912581694400398674780359257720490185802999896154180202210425080179843415913926638974534884866832388306355559274852114420872067229891684389807255295860710963117649521784282676284056575100498599650601449336578386512544034019893017631114162721785648488142763167750897540616136049830932998435701109815036077686993493070577862846583450007131813957107387488510569781283686282273076551990937701302046001151360416169838817699651078519437405563778397482873360282442235781248332573012845550853553057889773856915063229146551345469322780890112003501193795962912412746590969710098438107812639175506220175286888410665503592342372050813681307942524380527715386106280993725784784453232438414546748878699917042366314565221145184653167520177785262313263364381729592692496046181527928992280529215726574960654678532363673963892906499318413642390557803191735790337689560320857478232098791165946882760291724326614445391469067762455653977277186673325773093250340480975958933442299092229875351548969092302603885036596635560523775191584194069847890151738707806862282554771671519876706272027440681329662010452808853552071789780309714073731582922420265327913672363882947543835041145261610007446664227060561808322465014471128226309057435518612839491289079921777138614846450749254285304702431396372488474667618595854527272305007099972301738692262800323857010449077701853797854504185656116162143004564469979204756616787772833219131779559996274110723664572026661849308724532455392594644178254025502653644784522423823074436037112151462409020028981793007130359857009064572848577488174099758044469908921625327752640748558103749438320701913502048330692814932877586675187805780721752483528598889192208871253940011405427316323229840391044132472373286549565022381961088369521386077843453475257489414124459260626872732040738213736161536123258805566348373439381593314884505211735100028467376989483132687930530046674486433580158576915450855515854071919056968108202064445107743927267651443633323024938917400099433220352084803376203831815659175383660623539678997895989390377362188031438888472418784370906062671577463162476540516361523876396653219403302696446715018265860008839441048492534624596748822278912003518619795788420174623229261368727451898350097803865366360875971874086378666586968067823262197608127263823382023748426452964096318153007631944072251477104611823823985698826410173071579561560525421390106893783153944293575688366054489985061961162024955727484898959219985744480620523434082117535837777581155613503975285137639921177924859310245166538546385759184335462596664903386197352381297441246773842945420537553756363772839038569127982724318394031938531671242277045879499757090653704204775477255753866952998377406875665879912548982734211849971236969479182939433791082723816416980773776512964621436680259342412774552324531367670996859013790859442734250506710988337514212601462227496158914569334803429866144026267631700935179782870987496291974824860228302857760136682552298630844814438736473127709357333483896464100451327719998953175620143857682220302753007102299933394791027313039832384288658573067653253670495537435237201936125366766793620950921688476878075335968348856430294495966674247691574618413884137344987651543274287886323222780981021862151142806696814672670718351313310353697278473343063729701103132889751435502670949195113944964201625425135163082083278975486964149182087639233030350703808465445090377954882362677772686012433531515971143046087707829250668341343936219831672830148515569020883110420462902729629129160024553109117640115934435613869901920626187327499944188346944976365191618970530689458397075915560546099760875649040519302577970003248929893781558711737888272608313865962295097870398830071774233546179769701941976761321893329981556844431937780531633108635577163424006728761250857272750900551454347178395169990221139432507033653232630790312025377521061125016446249937305568959243957565329151409382436804006191479389076571670063695639259063610463675659461158066367369337363000529269022491576920625369903142769185372625304994527278482067454790683770952925757897838828977944500672809963648913673074703806317299838303700083949919015745114135456706816667324512812879747604470362721676019163523231945655990364954326790415366288932371870510334968933185153623847104510138420638403938136380869475624700866640618801159478397774378163295814308135728220774120244886588065044273692630229084949428926556659683680006516365562647169729056837597662818979426772423955093802106505984413902826600331282771591396071472130483851810982480113917336441815371484666704527354434514187504715960946463041441322917393022034221069833375312562863365893412115277744524117852563878834354944686385995706022039368539228359449697980503380153020261636912339118114041795911769713566714356290476276174752135070120575338323775743498786590846286504618164466746512690559369160633761172779902196247954368045868518780056900177892434850456808803749199543139971211675931713860322080807564729819678134434592939708811257413207298495896293937873728645105872437909881668274183881303698241544923741781703213315991085608324107140857692960037927418826343296129169814439940848710696066205615808128960123699273959291333311876400728379410093373631332313711740254214629825838618257970763989388964825635917982625810128235207578003386575091890028340658768567104936276814524659777284028136284648181661457945892959115871798429506428280458924676584552867089491747901748969152331690756211563067385933600463839475327572969114190471237408470593806330121143500502813389485885476279004187162149119414028227834339677996333509043898217999758333490401468319624110096569280541068508921048802975457462134705244926114024469849450873072825642678814820025801615246341263573979785261177778118487600428356540917990022588825652330626299104069547082591285746666180870689849152162483690605336134872784307903677426887029509680414078349959531115487553171366239806135780383907508177419444459891740199760369089557315340149950321559397092681489127456738703444970308659637568926811815420483144687150640880700694174371374002307415611931313932429797608777074068985508804765535396057339957828623182744312522181140828188342452930175290181995671881515222107745011120129364278864135547622137914399643614692031726666349278848339065278946649664600856667201597717642814507862165895697030650909000513568781874012779839059984509674954491100461945407812542375728840963565385789176546329519202221457978566659296451387380873565069233044279054158923851374878718640385234822993323571509349768696881802570252162715115324070508532446139241844414752979853434063223593202507873523221723861514210829269787967403105374374405196034323639438508373464713292196012036744743888142824536095021965136100846535387086650834336140619835508396061456238757669321242149363830844034284156065153642433992798426979155479643379042069961699800615250002958526325906754521554915935227110932655815998229091206323558683572863612621520125156642072627963244120556362808840155007334023642373185915209935122222063575654721068180678996035115412667528683335262332095673769423289480598064337797168883605428686822548184498705148940515432424529044547507132529670159255656803668541607569838278434372640717089830941067708177352267296183162134057604178383608068645961163929944769909834280069291394842596223340010243728364426420693302703316667471772002200101940432994475110461555938415959827118933851512417255035017501759205304066927060538659319820713497971275366636033598809765903333581217181944326920226099954664025731253733622249633142274088942230755834341418996550211965837093060029733978863218424053627214488473744350545255157656798374744282420834873881372541307677225818548788996998387289939486697369929199212984438148049500927382065152820512277756937067823823935865199539652749477637402848583457795345227468171900781928098781997759133432355487217756308039546337626312183563895043014850865719278626310421668142210586287088007953346331581715756250724162571138847925167419648193107190894215741354263602405073787206766053881739385604146084893734751405812159088018185999459774744440421500679812406349916816781795036774654424585973263266012563998103127587621777044213863810785349328321535402881848645621538071924960902271970691863626864327176437094119472761682051431646296458894827953416311654253519485941685341061693965761309903753584379702682909233483133059691884562612204169748690305405538902486001263467715863580453969504433402987517240353731671066254146048855325447265829808801533245154349746836650885075622117393792135704558354869534044755307627393843908756103134599583408577677380895242454613361524433043303331725627979269649173417065903815333667248266058174660461590038523853159557379668910835392153998254187254829370492306873640590472178902866695848327632306948681480777397451505041507414696387219565211634803131742957344553417295984874081040528636964096606462446485725109877425311676966923155532528498151029265103167552471989460198283150378005703365835620292786573069871203379404757857499685458499956542575508339688421156206756276993636981387261690475686828615930517810760520495559125771417422557854885267800567694463960320627776015812733571657982904500536748620140798899346606946872840743449650192813802055105512543514071264520630615034477347080144684257431171002411947755141121154546208249438153918803996957676532889338128872099091150282860140377607669556022332867960848707658614762415025733887857653905718986527842162286816144542938392658672016557160052386141679438647582315775466599418594098527060760865525873157405877701145489302392826608703177674541034690236941509652239202333750741134963905818245274479911244152350329571154513918148731696143803526429806601547409358078438182174301639060247697967552521239212664639847562507835083653018228691289374751370635058381137511669931086327264971783051162819816271717930196416420145147001112415311860819100520817705336148270307788366389427864531281313314886416460177859035770058549182638935451474165166356322848478023528560550704461213975429737322305179402957305209896034373679544049475715015378831537007608879522134015217819131341163233052094262131001237619749954852748893463836237383737583201228114801994948453709765421410999484169560560173978012968597042770318910108637332588504991504142857667862265881544856060388241161249897793162547863723087508449450944129479809013057613908246242548365184946690879505280423706964622576146151101924377653631871312760139378653100312295279592630987947265851143916371613483827834528738184528859342464276693379740375471416206891298562796302229983685128319568140221140814411055731596024620012828025579271202136092906147959671698598715632405814197459277305870201751771233879217294798422991732135772046592005931280926384300596371651490762155240971954870897761075505078190255210819930672605262820244552744780915949196893728905737118695152601774793638170561612152090798563473140763294352627197992509010900224690095877993962312004000599356468070417167365238720007300838761494407617376991587486660039993536755631621478484272281201294504379851570126867925983174081168487411392194297597536194345442681898794240280728945145086115106329639507240567006589528532854017614378340275654545178505084371328192309931048569185004682038591779337473357876592201754661092868965007797773332983289896934881395283326605485320616470267393434088797368808713695467915435161135390888457052700767131379739907953636935242558763464434438195343771123170589106914246175030578060703858687164853912047540652581086405648280341536813623323451171202109822593129285783621394641313117439119160363593439849879101052902537527574445638342488883916386749725454350889287636030680121527630231610741316539502014373043850738953889603453796100204712967958865735313342937109470347592434540235468508881028348482189092170797790565934080624288955632215538022180440219134840829650204410651201523486141181600122275241475868375172142363878980002145906227841862457938251995694223527654917512073326484149810773345137413977087701309235071620940360684096059730380968731319752047912253499727221776167686086194625774655673660887368727830488458583785696599949567760403185089459138029243266499857297275327966103340379714401462727685656518336768038440940823156332084055616389337442544428382747389683447021886870349224060038335177377054980980920698946291541808713256431684846994143122040931489146615860498562889651373076904820094763617128063239186980256020768429766232728328479550759186049669392323116919292273291584585571908305853307451048656034839379454975372202541430886847876516406595018029953626461963312594085034226710887266048919861167348254182062018311961642896329741089259888291682752116863313132004086500440378151150440961913337525360116082745158570879218200706686371889049332336860024592021639376280744763118206462485283714266881549286312161117704756320517014437335125730132817238310068914968485231433377032125185898397633365985325047093621926499758417363667347753167847136147553977405051336937192064772890122313094644347393538165070887820800798985241912349694151770018291918386058397213609494732950843105223534793655489388518284688018852028001145287276684426653723851271262542146500437808850811095163081548949054629627257775325452409120446744922352567291957615001398673091815770693759935065341384432894743989997717004414950436921945807574479464429000209861577357259937817585208820231647280379839412188040875619940548330881763777730298176646545091629030878920467321920504223472199934896685494689385378005381724893796032756721546512220511004722663043101481630382159503865911220727684091105392193829318201290363004150019850626313321282834777985090392346365903332527685419307869942028059226759717021879207278208918122194344424715472677541102675004397423014691128280408608258296115550856075733756757130478840705783165617008537915268076968737651592044236866490071935285317509853867895891882761243574542871974790167873790927028195019434444903086580450337084395590143122370998546670299209066357399792993419297464811315162787981930064477295933559822543243211852839625510857589102936401734141312628162167543539186302907493237066331836617317300350948395491778279992116957273229252340494969223112307279663856116421421361440549353976773153073642631384514479837696659543565594000830301400439007469055655811588292191681514285750791649551115284638563508174333442048485249162067247853094776805896668449271362321144452034071867408569536132852611565566763430857538530725491323695690697009954871292805409835556970967705204271829583287145622730984711409500515114583763054313308130609818311406428273647757481952327120481281062767800973667218562203971808288847037581518361178074788993679844951672701903952512387673084538164429212195972089950611370101073344642962157755335605043288413315434346550686538348809024322201427736657246522117943457654723074972552463888047224812694678980980938025313836863643516730445493152536473602192429477516741194980322560640247402601707679214187760691045575212574651512596008209683145644614195185932852819121017334626343786972700613056220541018258246954645266588516509851695245436673965593201318590230312410429828719275471149177555283234822886594786624067599929537558295485785970906507343371294652304700520286396804308908880005524612320844980908408170930682490614188928537617771117622844130724671984241513195639920464621567990971101957804330493902073392584247320059960044207350322558095727059984012962702845709904106010967724555774136803867402326522533706995223159458499869055081965611012549400481613999479808165153366175504495550509794655780188649340091949765733839667884838453444171232804939282306520585954476270913561006322061435763897164613136122238209995691100961900097865230180537901030584595598358353068619288394331919297682284103778039908186705703697195198011778002351329306121449008584633528225650498835610863572715187260359402589437565178526690576063078411054752059196074807409381412896564503906745533375058702355257385278433373328113876022131028057345208537453759184949791235296863487305183251546646547088041052292094892939195268932572972886160934565814097484745037658984743146072278411777619788676293431733259145273827530878231757999435529794475563068433161637358026176562715214639152912227761512466816974392315773868004647024444334532775343972803654986841462429934011684215143954980580984699454168778313075020037559116804567076330635382574729176966405301019072622134970920329757485303536767539075009041641597855830365142471751043060538671943923400760627632343811915115989567970226931409293258152235539385804413744965030554371925727920145967954305606373533368594610488241819632706689185214292661135258594773792127231951624216283719970469044770028595720843611791255253248454593145493937431817736890244061928505081410181635027384142667599100662653178029151753222518046145116609802804742836138112123147259139252611001243997127667705000824248679035254867020429888485923732149734764907262803727816935638605992318839860015551366821081590026274652620700625189027022452989952089488256244430068023110484731086160470006245154903890937252131148450285267050853891374632264998707454351316049159982918584323107742398932070571636157938264832999213550355418060913068666462725016374229644764026190478154538838166373603495780908899249143102150104880015006122397003003383283596025053323958332264603067052715058910723805688243359486856419189198890870142514185428018120637607064446518570103063469129609455580479870487540260461227924866883425467099771681833038094858779805246637717332991283669040183955329334590652613541090699852500978910706969686503123178161428633492159063734933478171616265179502182624391679181607631095277837373808164237197137590227664349056384748129038889063525970678394003427897008463057338726641184452276031874489365904000352627803447969351962000528265671851648238046885304616760624703272653872228739439103545962712591895652445062363426568988850600790155338743836342585408185981346103538195122026485962823080315592330039983116723191976956534277659867748651008422946497350867811707202188014931216770353028968177390380928202384054071695718430477222741016830993646385178253243294435899639314823165468264130615984478483520198753093689012700798122919314228249661162902063898863139326123561353155903724295027730567081149884974288711749455219910474277761277697895755125867078952385311462846855511569333351497677813719515959771113261608026012231857422626985458154379167465264980644650459324677719952881190519549130812933854485223684049836562509041794356464341607036499703461580856328594745493874063089597041927235445827381535291607007168159378142235333021276318498887297313924884938642613300719939276599464602942280975720863128396773874513012984040181922308451020010836400237937921593577095332920771466457086036876157016356100190153782581328103784487869616893714084193898453682408645803836021196326999967818405962191067392144233513022719369729466390255934024053979911466198768220721979476461058664933651240918431322354437381263969931526297539237972134813807120231555344149819942106480770640596670536423053476651889237238716107788228298582079375987993451352498836576227205099694203337504102314303183526738021092915149640885675632011123839149593989525067648797866423578789082035217729929720315653487565403914173319098776239847992530510397795327588266853999630545462767652814540373403088684942682911480406353788728813466590539458201763110709442893044670719168316912970141717130969497723961791290374254157138562623135881332533634060970190209899590153107446667799970256553417027959277102688751483988020670749837360609684514265279312311553701850893427134151958648750751055274306594828603502602448003477131819299146322232944367078820561639637358061786544656934616979366309188499384319232353486674173182182579594315895213434518390324355255007844793818753874809648295189967392619405668923001702991196384498339164386242998412034892334212413976684703058658988905965663344695136196061513564425015878664981555581300027202301108501671038842715973226860664043658299860323035057644188912299728383149138975072353051228744858487722614976848415886115305209246993982403567324863481858415634195047248077995693481066726138036562236199627607883502037439650130565749303755604265423837995541853534763219037050468966262878675221852081557425768743212536884274491334526573962792991272010412767135401417433951241008656640670084217041645680241776717283245808578315552101609186882292302456253202065374388288488078421242917881798692944688073501145625433342675061949704712134918209389241543916018588026716865775127488797798732365905788980088772270855627040160216849807734479784921658547913436500327808851195698491775765707975471031419122844185730126322093973849322834283697794693321526385302718597894213386284179973821946519528742860471955619616883550997428812486404159084250082179052648703265897478302132866744786242169634551797528640317239914378479507995508255204288724724850952024370618427668205270961106002771296048908463007311721578310842729752607921660731633273400891176681542216169801029573007347609795110374140703700775923886786046593876566972748390412648772947238741089879209956395185167763425104096790997165852070484623990280628444440990642947860111355991854108629907986545303000897583995393020184547772995284905258126208922204266226283025460502463127820311267562925311713771741515532641270716378185824213317161219650396611840659660347277471531276255215387949774853291372141805558217898417368027246790213806458999471905352011811088087180215278900800810604632335324615499616127594466805360622753456427112234188658560889231500139703878142449133815763662241797967446970595869793849843629809303800888407868792184450666021468345769454894171408985041396677531529891915572176805097340379725771723183408544050041289530090521377112365925172271062434369515205148584791099714245569533099738866696148022823874049284704546675461063414358359363376869452950502075563087464311262974876605719612228393896592973005538575185519815006413758653901848026886270335931208529396291493538725061672291416216270132892262371456092512358241114221702043277676305997350069596117853638594269855643939373521506322379230592181182510792023783843560564200653663790099983011597988754322359940026867270581455745058842206923806157015591317988520552161203424257152110484122166889574602773374943965120784120700007016803283656423615430643252657354370960333490588331146315090738523916382321363110182321190813855873209094959356267642550521368093862834823113630107953719265348530122258629596198029026974747718807826257937474927801546826205557616579775814819452476474233654920403947701099953089771397647961176326558223873306070218865583427747158769965030399342602488216376853710384251337481748001215832328468066414764150051596658505320608996727085139471013178413244670209472907122667392411459147045134598861630825123488586706132268449613485860536874586270425236667021680383882760345221980235006456710061464962144631248707301740145870607853278498163207558176574293004109841290613488539959045753347165776653083480134720709242094401507078951408528523144623709425353901008800755041577046471749504958511200345210785938008500688856516874874142812622920276859369587959282144376212577270592882332844219960992265720963438539581773567044976054551394803485346834492150479063880613766799426870000758671125774737994052140263361731614212011424710165794275362985217491571755630554202114446442174223835653767712186525795024656918907391693139220483508405432393495420981485932769331973053199847343322006449432134931893913418048564593380700753858312757869912735741638781716529954945255803700493166744224863088422167957806400475929113644960249140460693048381688459179591333172550874116326733601692298719902261945293157229062430496625655458541332488719220128570284845194973639622437704885997757956211380908627765950378731565926035970706802970155901013775528880751585646141576869412410515759225777037597933693189515675968914827439076187940706985065560394448796010211764834393025393954497632576281521997176190851994755953683970803277178015964353242604421047347511527836311327369995929468377643093929826080499682476052714687213741882027344992408207626433042832563643972939471741764989645413666984371614623280883555919814905330196053709910599720570480608539429177696310308421877990314083474251897501131233092625948764237374243564881992939672766820889578790575419853528349981383703815709066457664610191588854346885752103465598707221186976769098409054424354790228204162216690587466083776173225921308695081801772144659754376290108285447371988368869032801185992187740124000054654974189759358635645491070745637115518000549319928335850938515694009024686809561308492788254344361678343817449813291006979665184327326548794461069473338144552607275641871133346326371269151048299405558356665830645700260762258302895766202140767184581280959283590555877148205695439480919084636739276078512221040091896948363160224057404085017602178575698859048391576170619669439003691848604476943780076021830284439741531187624089947834605285057187003055137412753268367186788119880302871545657585244184706727537042636981856780101189797140612397089392258463544196645067615046414643197803283442801027177422271383132660997496046390855175504561262704642422187014851111122913283810978433302928831616552673114114772337288046339964573087763281560972423174940188228338353454008202155584663062932153122492751889504829044397370065357950944872977502213639513683996402695979175095746431356399544213245614954329793309431453635471212787273875862876986315406360278277848850391418733090736723603796396175253294402768259423600563882658647239616152213805432103399670104810503377077533963191289653051191875946708169330211758665761123135580173273491455887040715879468014268735563725387489316944321899927833543728211303988540167166436851672400627170449528127787135258643308627820083895046324728377696934460027925971204650366419089754829555629338032982617373408911489112337460129950822684748675842742674221923103823912697063269342082605995205280256665515479883440558095457383665893088653877819197946048623390532632704021290016406760148728957552902778464910120908835164614934260478952240865194442664570336610668320492087795226801029373337815023629769517011825920827452149314676983109148156384535369947978536209539200352329657335980545333101510225298646595038507798455171252433293094487207447836215421191855170133714074971638885833018788790900980364056459238261910500860714716177829112141976275512393384727584841274752516586039134590873727294356299671557572871048832698264482192653594804735838806170415368320905768569168825284270671133795359477356668302416013089707287166532114609429919267075363766721155327471880713257785385791478565063572004426791290793986203505296616639425030485040404206046289951914183476226196127534466344904881531615105403692534662999139559571132788786246684092465653043932623493849826175984139329506351811548066952608801966508699732639939931165460518045757772038959662291095880033732296583490835484475807631401735121856104008118685998709726324710511506099593602972150851083439372014876876309342398376137467425458937532196011278098681828154601101951202691511443465025445991919119533752028260253124817720729922486558709995791347864448470033757998471704017525889888031959812200671106559772268189314031530303092816376792779563241352083691483471106098819178913983809296326470310258915796309234753511539060224158363327155613325386892659442202072368997340285080948257382578137558384715889666029691337685717600650403700765147588842950973631384409550211835575751684439946702815817434075787532726062671216781933152411812105302641508172303273260958110636644005293918494501493202905855036458344451153503017795133441786482889023924540203262393389378451210283481765876457462821969392385934759709671179320244656659612374320568625118146639414801655756599008418373117961573318987804901381550914287320958606906458324192253479971328267052905380872875335871097230808219585798958709538594981789782995513999640805823823589348621402891876715185973982818353209429367254608275077786616823155144350826406270276820806963641694258918347840086564525962999013946067843148472198800859540645663058426092862058876268380740728838177117120151042776435848571782570086134731186596844810705135300508267251717282057580537388592208430858442790857553626631451943446017768789464700979851097904962570890307346766564729515022944879126335480776270416059285863447573817775036723429340566071036631219273574465834576871283165379842116330714471419569306237769401033530708313519645732730148572702294451173646739593367818953556490986531850263967615841550103405324662635751603230654238243425169179444749596087713324757417717229800254743021994507711741240672587101630936929450631358485231356115883892161913784942449444139981010800956978630426168459576586530293105226008839688221990291084689061070902806061132034394023200037007160884047267759596704004329650010026920369583165585664994668184881570625229543530080766279798125522313189843505328899389660114232464239577211614661371087216676093587372360543141740236375765400292571575024947651271279410867068006398935051122351156712654334751010066236147891705097786564439962713070321231377991657230776803899025425933081802645505889869464893406139030481675722503161643397089789528453566303672097184296920594959974636091556019744357774621690434314987991570086401113289622409104841330680232379686083863062186593667727873322159439562031053201862380259060712725701470459953225022104417515564258778198034661188963615746056872521964431940050910214856077085399412209202800293533838323211699995095404543732383688677177464280941186322605627254464131073420316943267327207973421020059645729498930807614715885655807714766742085526993360209551536666000777022228955275405545331545565545886516802858289052169130678677024205067715589629444718724957091594924099516378750875167804749524772377874992261545518970781484678844154191767428505537486164147600114168483610964192195879420232525362038309431969748824703233733336692129138402011258249735364984106053689957535713580350495649940732361698466689353923029516767962030348768339230090303965012892620234633489329340848515454713537316101100584191079747621171562362535483773615609695734674740129712014233441603714601917496012816328345164191178764682074913923071597342045778200726916429561037994417786542247159878458697049706596767968696368889310161302234979890564687619342834136670358682095534844285126889381416082091308239651862854847122609527904600179701905409230367983401963122651882758417168682009274373944218123029081946595567045212609494816984592797826046539136163169449694632246686611454200084806804886348237496158558204302513510126670851777640121843827884648717380199371211561642693819722503046645596342322485734058262709515458371666587236180200860908303308814934464385131299657907041499867000987961454974524564304492836511044141031110599640660994459865774704738130187197333114158477201188425040475446615724812468463255230993168841744548561114818915118873026075639316607954365638211813087007870264799334268426451730975805466191414365644504736311945081962877626461505068811366145816143674923622906908789407911606055731211813061763812006563403952641666251493984452705216206216504561669000059671377133842801698227077505503960920479488380346437144450070567277390667651191645298241224450398483430191403460037163524506678276628342387172211146036055814571115994488452708883439430634339822528335846708084832061131512136005486136587735400755584364687858091338237719610451628291575463448037871193502255038015022343944577786305469238933199721401285034645392653518762119690533728081445461166761512392481108428215190641805634854582208958429360692920314649125743586176814541489440929375818807594284911198026620303149857953275155325831466726687817750906596409997440068171239016137505835746092058320872950994500497789051077263351336792049957514623870963315156408471425514901232807336228767951275166278597191334658494723797746421869258262247933281222706511589598757669316060002891439071861020298351557467447858549945982701761252294165769406515746040287895715129967585447796417599395896550598399494680145827069930644491105638470589468121528241700378710461811900720322690145607755874049916982088039325928973394357506342425671039900385278072261994514166120857100992721182131129400421837362706596559202333104135380810760667643600073639159767761716371769289504644720391741071371793150015274302035991560985088979323812600922184162119474759878836810652058972663579346038386634712063448332688232417925824356382151768227373418448884062752338077895429107464662586938285901014040893258840946141504680563023847877952420553510980671487382006063688468750179433897807033329447272295869537184567925884581628904948651325738041767997514837225293693218525556883244471574956212803792519898595466773688292032093551141792100024611112907608063027740023015895450551051084991906119079182781424320153869850785934741737949074170866064355527973176230434099697335290450914764428789665405405347330860381518558941228178749494527775048385610490895646718932637777502396387192119076863091501600985791552459234337046477433095327462805888377408858892063571679153539081253280488315565849964727269636399767309960737027437321035133501646837593185908716495520177262427562389711383429131030744076201850094053403213309607649417896030180267128386048754038803242468651577153008442788463284665370273061738416015070990897730265355060010387133936763932696229780494025970825197215093331975213611742496813222699520282650359317370725557418343764965647853292029824406120848669141000499537088043314610745320591583284640111890837266636042453790747359400109459167634882221209111817581899052109370840181700701471923860043463686417756377344440485277248334019097000674940623983531822605783324122236198314872854130974248937261621731717540808261752806501384775415353782327409654570606457250116219830192436203184785101025187099785997977202488146176130675760196933024935227307243017837683530302745324407887990368187422663128043140076932849154175389351564584567325573349776254802528211837495395403792665118663090153557200757056583296323275365610580650652306695255351023908917755868643203572620797852554345701881427027458222184031181032329131201330459907616999479432127864486048488871544374136454829111099633574123423234755165177942916557325636617308632595739681329264627712319094810263872046358387237633599603435229715760919395202042725135460956950536503748711978784612238756355308044409312051329250521172881765301371410562410910539790256535957614210129856504313149436033455126597391149817352341294504252317517990943525556136091379883774368233349336640572927620334574146217241373411628321564074987207936728737053471783910310621523353431229023131674237371019420700837548210912781163691643943712935010120395866975782142861391902344746153525479066570403366775534006355863686944837798477791949238143395638594613163835477749135524464743368613932009963694987360330006158749522451038982800903184686957759555145303824884768966794079961178987950413456249819124312836715513888368459400560328349096344497866282317391620752476289628068658949300880244088301966873993220688214322873768879973825724578835299942061166459593659936537211627992927116830296879240734829972306725132856675204105428199803457444728863313533328287036519198972794016384437228303648650648477345708462649702313115999840310552369446531589423139224479145783667379399358489867490988744247794057641854223379134938272674043042286962424353070902079524047775141313974890443537512656177104961300315252762162276765952176648721877357639217113860643296561034582962659693635870081370234162682692572603538714746257422163562955916826075848618451257182142685355502630666196792125556842941773669129389604898099518016267225773440009648640668435578198881452025929583417464659802727615314414409411346000801727345626420364989089143991822908314815805570213453337604570099295317635379024753294677028358807311059208332335675549929922482316163186445838600600080524605517808131299517542824195877055282920319583878411731924593386564710093202064907943805206112604337707416297650629125980136490477070527728640559450112060979559760312377979992091820990264691442039825965802703546719834976287747683485424434035050428311120071153275993321051956647354772108169072827287903089318206820017141150493624444684256677726065334979012028637565684281270746829780944225966487207204418244931026407139533636775937992476364430686200919269812881461851147709890986449367718802385620267034588796785880861784679538040153045196741601991711382033676541108648303445821356156518775403549999617358822436844785955723765095969427863231359730279142974015927891991007932611687999553203391831820264276298894442184118596916081319609974107833652619351763900484336890366720386042349847038712779479985267349285664531644035914017199774248086599121069025490634364335673099536837844099611705190860544195945377916014493885746607681847349539244672578047196277449551105546368003348570346890150751564492458577713031728741177489205552850612755708041054921569424167342532233278131235098610019126872737677605681215245820945121280068403263958030081707915338872164082910097749104208356761593222884118080627588960052204782508954795408388958811059955309198096056760813729284724540266628095926719242277902795525231723873190267413935294483169944152188979768393824949826339376743402026210824491894484780355281305180984686257264013843377967925496912944291664120730474548264245535799489028197389607269334536216407758903547943038006036991034606119957722677497344563633077572603549104085409114257092622638175886297514863071158173321997569091690834512853653099290008767198646596992638898381662302898552751694449480214697856505308345212935720258078852133884135800835195264770236881611472061865083372786910150115013557213013673463180274300103246941146724435949922871929261653855622978800669248073198338154785414073037128635793270210897493661443052839704678094571761262627500332227054276551645491887926818107538832300563483767564291791113040964989268588119592468850079535447324196415120229526995325830171748962491465930042789704571084608014372439368363099397939316096021439428589792926830049997821701244826796407520756687287603919563476928806821726794234418582453388081288064447163466037864960843710320796174909065522934062184329587093898927217561135310892196125225005111785253639008455170178782886919189670429663904132557822558637564869749693840412562535438552500858441967867967226798755066294164880416721469761588537786539918734824060893251114751418029667908067432313689322133938154120625528087785550728796497337688820733976231219852564582438695560527671704166028913681380434036426082202655198743098529634310857648021919775583199512529685271310432132816480757034326812361813471691010196818122075527434528106087588499470040984359160156234491547854446920858785186974627457005160931547382470060664137301463569137453080229892602667212463982564288518351042566710781816750064913647819231952863341226376243146522433518033728957095146700985773664189456582208629722412466276692997224423500613854312847829588072404030608006883932683675976842559004618154970377153583673926503570437272952500672007354235897772491681892671039287723145734703874816915028023588758187368111111535112128019720015159976305585346461032453900266536235454175831362962169996171895965404332216724105226509988519470209022182540876597734377441536794099954534639144799627610428691925942429782918062244314079096876058411800793594038751828259535495753085387899571892088480620704863897899068231228784832368819439331249451265213010051839510532174879337999400091802742303277343342681529053707270590327668059675485491732393503404038798442021269168882555734139146871521104895303641093144804104098009145667803228904945682403059121259193252904701950915832402839731214180635400249352454921893721893543848638455193814679227065712132290459315144316312744466743630382880349485480136173002214483856944280474144913250601625193494273253791690428349493846095053630734820832401895400021775112237388639782129067522979637688872682704161961655299488782035758416279011394386456900060850035454907790062001517426977582364317098817371974955893445875907832577459926509901480571527999682348316008120594819207736031898304509283013694693209932965986343479857236431485260341282117350679412626130356952180378654073528137091102671018326293311869710604868487228257732806391579961665219782957130641220335441395947302675067013217123458170393390854376785495330885392668744637080726291276708052005903053167341689196356430942283342257044147299202554062415379681339652682709824703152562344373623186538966784187961329822762520657370011928799470330442957382258169203380965323326851804175530541369473949975727391240987205206614451976067613007401849419693438175473533413004337196298231962427419244427021034904097441364024609921905840741760393454730330213521050500719310974981912444299921772224546999774297831910423272418910184902583367378185176233595979544121654973753366321472088156803235400307790780176551265399483340564626216401735729662135523056865703932852747301051678560107429140662503412956002952887549971584951458906616088491793303877073356370881263413920794094499231717899235345443556504620629691974408630021513719480880010004039254839363007197473536299561439301406992135309886483781695825992066895528060798721437721738895029491654885863423379982860156440565596563391716962181840458017623040208332289408408756069899093301281650406110933529819602723043941780587095505877577687751136679882342262509857521331236118299239944421545191030892494799348753546591419212711291969243015198656549125253272963154813750262034510321394817492891038147872513987566951100028388795304764258138212841317241605169097620328920504856099859108967573765446385402281397481746856083259277411428373448812034169574077302062149670854428804283604142132806470653420337902540570533046812773124193799825579678231341937186443679288052057183317036893055933254228500154104891504933402036835790080324024690676415388306965417841997435670904500323263655209088326812678352901826196356168624243340265026808974490459433231360773387550863744469598749966060930989395973945672446679290430755819472298003915229208610561665021481967367822929473152235188955447562182692797345055619354305046290972684808504581021561323013275553014422977982355709047690437383062958195669273503445919435762322107477401993514283592896338801447987484130877540095365304739046727138889853004672568507398194097393178629798879059321921222167366649743382242095745846215593661510400164032388320794298669319594180314870285568206366471691288004818998235638892129130582922479463173597502592552646522008611144928324204533286577382960099122019796062788664980172734042900914278554389499203924329961233822739491284740026206057905576429145491831840715496815644861122645445379160568816304527392334527149522339436889523384166445334006994041460310316171165965193957433320520902797299045935819848755898579404003871568207797563979056192767904847904391518840130772426341243764838761285087744177071748772738612262761144796146520959166578900576709384601197173728896554478927489833974811408327365769016099039958885740927713639368656568156675769880248213022092770184566323594966279287403407285666694290185628940924567021703316836933570328318883791795582278758281887341437995160754732983406893497234001131350978748066319670328361650728547218282252034762893392791922479098462538789524746144257454367494177156036782219369525866126286885440999987497703848268618315475799526177268466210987569103147674025797604640144396322336792820830889188383933125729892277772035719705535501494450817745598964862539974331414964802844139330780933057742375772724429863764016282637020549795186914935561106640945161937984071386856706408992059817815763591791025403999800487906696330796220418221721317661778173858306254880606553083398011230411190231619821871835125332989911683199393864883639506784808275353293298796429758528302096874253615181996773184371800124106520353068484559154324860737523908673994728229143206711695936030487615356295230532523440386910994476677438741310998090382552080419736475068453048028164246080257050013372884618070569015016423562433647606538743453096135043646837280148029493767936102287005852977599985892671409051097271174216567278442595419848736210699354946037075974356829562000227380144882436405952115504859189501427129800056621544495611243105062663193762053753153777499713838664079526922262753244311614172536905241792382108926052504403311876992725512400043514438279382934664149725132268220733660692350378069746372045125681115873512051799426251101888662804752264824537171802270902560997563527318627705842719322967561195327718736385855477930760763107809458747227201301542443647791015556913787984852531507806122550856530181623540493226082279313635367487569854764315577969187542532942595105218980411727781644109345569922163882866370584582360723529291737006589876408449678229929984016331358047407579747558883444678164579713441377270832543715951742442171270674063666350061000580610925634958637222860841267119100955670440935606247938137515109746583900453879423295580505079267329859396625872347047472435432526625881569696009222432083620727522204183083581508586447730245518561475193184910890212812356933353145345559599333608880057127318738383878140472360735899760009156119658002830298718590275434410542648733307638398899942062552360029660934188550959326176902803447807243357418201287480579665119634222430053005877442178340459712886198433455316831334448832430696154210675869382809261577106469858589319914767143564943957998766901081130390589640363176468792086266337420428215407440017152708661000164067676827338269526100893307039061104300551814949167632078934930442932919657380622128104318477274419634153559912522908788665923101260404047364648246247407045008216005432804773577825175554555489687401951073443008305241819594568559972582941354610881754650116137370440697884959416777211217774573282959234283924789668199494637696741887131304729266319686058060349904876564420579438563103549871926478772604079295615919234671398472121365816513615730974338213000884358369935410810896855435146808809376246996549444844691409431689708380656998756405403277397336779248052645349380129560070315699903068247921647152291294025656868834283403580679700670933725620868745047263423233523909554066148467008034605792677000225128043309936196444432122278392911934467032229950806715239080573429438845380016407169653870537724673603635347192776596159289085229203880068500212641309846382123617673057078968060908595912667009921442309288944491694850114231597507507138583796578330619889922542019979097133544889807315748783949815340083960767402225190205325999054451264239198852090152901925453219175362612951807950657563041100250342836869719226632064431233906591525191766387002792344630812673406151463378123611940485278169056325378690735189368934535107299335699961937058911735621097989523225129090952551780215264430477714203610143389847101141665800039879914101006520624148304341366440490580707743210318435680392593250529925126262850209461905635192501018425651799877111823112159432073136988303052053064324770071072475607499507210633796899581454218521418421924334071795212858414834755188177098077296167055349161515979628995505207552979822587865754184505597833104197626681978812267304242470615582795402725768268028860850300241489344839021490355761682998831010962753804182314116632265892966769993524634466323387397859286721931636238969901009574927165991360231380222790576869292627666646254291459939273154412467326572168181721700277697595631369297461026670976036799266088368806749849032709533241945688262449435801527671134473072141053463465745693834899653377624377875669171406287793218428921001929994353646697205599567050765288727679757489141333621749163164896404712569082596018773366191170614468327994190018372739603990110984918485659374345746777250327899295833185249595505381089904537750922475122213042699194619726662000221114576300289913052739918062994180331560115598621851576921224717386850484293797305352095854844220635962591447362591862663516860419419295769414719374236695176212999504896988480121797890177040459677177410865362562814015872226282060548822843140062708311644469808136289657855009441811432633405357361661419356016993382240109657503901571538551472620108145930460163236170767386903133455594301066010660092891442234552863768882008037244479331702707881469907996090813373820146637750184029858522094718645868503291132139549217651162960408518232415970479814623906850674346017611501835631428690576029895941342464870849423310694580803116102838870027673897217955831102480656122551224336394677878023046384785064354099129366945052760432105218388156939052656373695430784404836270661381444075855943768339984829215217240123544346823559302360731197888935959471560949826079714278265823362250628866658439964058755359829847967264224750905456023423767935912186712703648079905135091820487491154529768464394529214594130964847069400830033044728659984486718565827845983825755296177894253747081277033252184687867012963134040603975872062945143653653424189278419504797950915003346893382452717561370060367713341079933097211320082815093103687592656684099098172655018977287579897609821761890408113670659764477194231859038534617205721324343032535486902850384768799594243393709649342160014776758529093603497838124106759124804258964059339555299484551371724487527375313077124850707911787883228790445732956785954400821485208207931107408770694435813156037691053870954649667358602634687108288991184104296842206697272284721151405468875446232715052989071096144259749833710157225191305069336032562283044056974525408038364621846875971985804598602883502004434820729169708970400000678569790970868476875849977320342498677228017172034906768396816295072459705355058181256148277205707586271504021333757739529156705926586581577317686630151782728930677959008870777810325844948632788117696493388285599963806874799581491542452057560059740933719243401397940225356024136468299342892689990713125410861948339896565791055787178421333762145879479152180885887644640731316612492939876475920084581365447100820068090074100133596452076605603318078952821519159302677163230913443923345113895501985063071403279143189052489281749967012768265816697209065927568028711150308055162412383627397637019375812001116823159809485821784609830564056119291184357382881695191796159056082369478382543916267092494017198360583527975810605990329985224897742773993719155395485829668595578074790762462891337431500442380635311759296116058722050707675458118174085707753101804921709734553614702113623387792824170395717582236659294024169247985821850342399953348862981336855806586871162071334360999219126539862464562855065957173532963665529739054516886677491032447752210728633490124617848110713477821353623421670269202541023466041516011347022878006390586047750590448005744989247995089061126882202121805699163820209324505081429612283855587000598030030660975829757925899544965918803792791988175447035159307073668257533654575326261764698452854383461587725799219754120197203129307285729237264487174705142828546359843590028514332556927333412340571473097717212541350410736808715654402155968613767818887104852233106525374096654190567230422279460380541178444069917724669355221471710825318923323281364134693306678867426735115510524833685813201980588816917646717672579121213727432489434190563526711696992689480827904748422541614333041811307094096123386059373434679954595965762389132436304852372912904039917084303003500072556790612341010946610349383598924471145381144344517963864504911917455002022601315739276514099597792217664613097913433137850204878839712870786887718308872264687035581172199970639986480333876186174405715696971890966779649894306323817606862362988675381956390659276815075650246178778302029849293483260948256241970180931992028969892120664961144960650581795929385250958179492172645170261488727852067047952180258605400918014963071455988806362174187514706579922642447445268477678838375349160902677673417916920410104699140814744232007004792795307312652613195292852379506434048860547543701006518894181208758642012461178976872697065683494698927366938441635518286924531922286321014816711982906114512577701666759415268687803088214850663508411404208042610320171208318436195679759742412224677172314203312847170665577793807997217777004969146244034216636822893745099781606742444053642400496080288425382509905772892696765906873453899497903907262634239186312835865512713227079261506951008666095062971773587719212240718259136521601636762501865872602131664505135842909111957443693175569484227128738593805180438789495103360378682450013001248801549674718972589992704674373867703223836431017786539801493639937875455229330663328574894866444993456494889659741684678929604281422399457963838217829640963569995328276586795507904494860207367411668412357377003422110190021604315141609279077433484648616869789052318628209550967458469826117411615891626604490523322999470940777328035898303117992924380671600236558773670325601399716720545115339568048670386495334671985608843260037514566737912963428034746519829859335768801712959186318924177132054169799802518280262371118385839199459633222331883803473016449181057982478269335418010670480504616857224347229406082644508990344260272149198035027106878504700574387261926096779557219077308093407691721474155624215116333901494944194640702630248769883120982343222960798782634041245342206630392107749800399376293152396015254341508158340950282970121383385333904200325423741213905540150993973047875893911715594843074133997892283616262702932999253320320124529973030351501522909308255594192549166000865873883909874665246612268281444107165360317758820506145438726628772245939149466210597546372183219472800266438139826517054909861975656313505321684134542491755039605661836782799165874790703669833160266785517935090998359456185890737333643682846249045902340304148103131128984928005151665920654625505867241869706096123882196184297578016973616832656590032866538410069373897567329838719311222818904045536887460462855524598185462939713326665512382804875122512482742161814755028139661662833792041314950462335668456834697845423042943894544858138452341391659264876922714163771376727876100655221374559474023896179645050611392319605398983006242217414085217761857473990419195969404151480454927221883527460813753164514325393112911411642192951027502909619515864036329656403995451206869704347817440645302771091200693762252921609434987054843563000270878018876019247867432146602392252098873603578647599774963396878412400211360022802743834460551121321943405931121673120473089517058720287899266869762041222314838881803170728806387944470109115441567211693283507096442862434013347294533925703152086259818357994847918911150398101499994129049026434538587896169280132398063892032471899891563428106274625208369484620216987658251988361163337119689503729453105671442621517408524442359120415355067283793954695812799722128760219676422715809600390458026626558991867442395174287123892532956363035223368701235909577246295453977655934898462004417742483375856342535362966198751763609479781926144814804966040808638894903143603855517396602799196888214549076459359559572547534666048547607515064409132240196062670921082303655357680735478391143560794421425509505461588435660903939202643909898344492714330905251196625366321986696653643029204599757519458325409370491178053092063099481695682315216050688230012539834811496853842778262696289820814201142768229717971839175195135927870879599822421785345773406388161709733812851239532490867176222267466852536088588869398405941217376216306271701144291333570670655689937556750490709735971060177444720476846011286987912637073842574779125468111519885109829730840998529477484960160171759323019883431182102433576114507981652188836633940088824386688059704941618305389642507204193165143422593159627956498143798018452019692881497946624240596628764675381781054446530187881144641386731794306498132646782267738829732667030794813554948051264606328861059389899873925551925371694543470224469080308339718880197823129616204650617767277346253213775580604101615742638530212171382888836439392691576978389658991342873338240160605856300612672858761698945144623535193922627976496947976746459333691189672075217075172143875783363008036666406322430016695109435623704147555634880828626487512871179313651636261781474946050109224525974266790408933374745934112159786806100114643240673733207092002282668548579976443583160526138527146468403613588234685069971042447463504964562539348790279638959881863445672245689903223881780131558604113327891141291176210290539197101334976357087873792302611418698868329136294034940035485649324063144695385920020726986253612334115292764698827419280555644390388134324784815712209296770695836707601657286256197680850060834028227360375464697080388880622458454542895336160304370630811300816047731480502220178107838825944005031530833818643949635412003140314230222713996666851782284326853775236239543665539823438917033544523365346394131919080792155549317693282638063174125097322863138101309343572803485806811752163396080694744936940815736131436350359065023284620269760365494870869288203818976024896211356446942313166173832263540523439926951959429160721854243700415691987649831702728495123881720545173397912869333928255059550978134194986230765648937202271977060278107282131141333035008313486328062428561666202406645751729607301289292722409615136385063668291542165674677583921688717292950838876578248561198500164166730004391049337402211384010156007019312035982822729193116926742214176877800455307367501667990720392973827835135281793487689226600599914693911518923614657697262954469682362711721562479141666005112130096009745310627977873754033318655012452086685143828399486723336402951169231290685137142283638120495095401911647505007015321209038697950249080442664408823061672424644175033458887025157720333064199402064373297867905936571085660700141969597969265784955633649257916732370912018385960233294787675436717444571406686474601006616958512997846169239634922007378134326301276644029477119973694305368630474244766906842490699528698368158602902831288143960843021249751362227565773531996596508768969923326386923341882418672634993556452180539364993693944705814676228499339713417395224909040922680564333189253916995305543168087753657712604391030963883495870274520066606129132771464103127701599158934032083398705848201071816924012974234027678044823071941525085866538634817451948660881053350385835339909215929257020542435575515939043019040235396075506668512110739911138621481030839302167244289599767242757747705575150634735935729750172767556682152450111093408734015950051644574653584551001739147587952815126089913589739885030579082520602370977234183170295134324833549970158007805685393984817291315078755773077527956993458979148609192707529262648530612540075320970420743121000025970825416859005412623842289715806921690387465456207424826803932179002489302772981300917130752853816126297792343959441019953101520835413732461214707349194243844684298365567593353893932512364566019380010140219047790476792070400180405488345437132521367936373067512497545713245567678003924255978722336578207840233246186002853369593905272473391831779946222764887172101924898049014977260324438811679729763591230094548321191534520634653594266701160393664411371395570309778983680186668064474248988039345618602988657884204003273973116990548078596477156457562094745177740541029606120235960804787529546482169300079431747818494138779136517510681380555184901911718463791645500090116806378755267597866248362758379918624719801991552968392241792337353185410416493134789478117495392796154061432405479627623035046788257598293290173052118522525487888013785978419620293569098492296818799792684335253246367883381925966795736052122779421692875823190045641914900097016093135598240353070496496401253249353944804784062335874314850505395575543281720804866141915073736886309963912309376542018937119275826325090922125050365083514000654188765997364739873823763991404713758914233246492812582397274436970531213378591683288132173522025936124375933626643301625388208272606451753674138385177679021445735333522130174509411341694534685018861334676660100857319931153772994678776249651274880005077729535898373380611184289798375283325222320594641218935368329971604084080013830148512906972660685709906440023390608421552723164245858338823486302981259647068281419736234148517663507780120416030158497504995204995739690335311008176172880862473469602680946410875507423859596291201071265424291522376309421081903400771257979413905507208289043197678935878905520273459971009351593420805836363854112833420170164034498435141556707672012710490754740025762056975281376122953326687442693007481668930350323396675832481010804027576105707462122532165974786629807482397136730664058579359783829518139949134476724495557178042125484483376974693264654667907750530677716518261818063442193241394606377726379708256049493883188649330408665871223887973906540776659893112776288903112476003468230147193947375977134654865179781531485466925151826590020016140416513396800981611875748505902360770884608034509319872986999144134432074413834511115671201074807204240524444538454429059359579591077711076709062621054950012508209516582467736475283178541005953682388135280142237814300735213399794400251880609952590064602981354983939534808932747727016789777067867189290382768473213312707541483161173986875253714132940816996099542808789353984703801224815807192048098886940492462734225646430857503355328696375541562191157052246878071719753287188623675782254234786444759062574424583875444989110629350782673871812976263006454019827069601431696440568167295360337945559467499745103901409224778645164617308136567660040921475800764085832131184530735453284129491269954772400474591220986708256953946217756868632754138112132498617810091703016299315772618276187330040039178983156037273683644162015601873334468463783274221008675979921707544895315943974371228753995766432585507493203085794921759137616511585324540287765535885470237036060332764278972488916686322680526517547355397631353940647286411699495885134398712889759172617429864618649552840169811427103990267811011613024125498000200319414211181914946323927837329538802841686178063824026561122002615103239827839923417313129171119665081004201083597495686400679565183969330614891681561562491343529358778725875286776056301717352141867734341274911128386438655922177462518586602088608109057223907145768385195121513082021649386511458058235216162668993588858903969561127319806866329646986176795858927328229761271456761683433191894564845327167261339125713403945363679123332466850069947767465340755624572550117455543137279516103221938626606266740106072442995776884417496064986877366808355398609644560883576441587559451940083038933417581778050139504170483269552883153003134036105504603667871447565418469553660253026579512580507072004993067593855913435157040942483150870379443114468941460726113380429620823319913836568417628309776001186570789151759241367092214443457928753654705814452879960322269550391518171799808248196729911965280747611787192541581618578352921497270819833878751424092250775472522243591615278580034704695088216671925115920702050446193589436825522599601099938735257653782346880218426542712304740531451803610027423972790153092135441884924087864012287425589641791126073136255557750719203532942296346201728772509794344019617990611078429071686467276024795254956488797799197499400679477668520485498991600313913774685931063365939820478065408744393413195039199227327881514325883326460076608695787261321158727548108865189782166461792845092630943474054276615563471247468548864060376045116689229497438729935179905072309394062045840786706132453761415586985828612887102034642399053048954976718272721064648423561780080392053824685701034351764613184740699864750059222740157611673943452002820219664563386115251137340504647898307199292416366233264095248243255613934659244499794458975657133061727441315179950031989934200695509066403051730246381754248971153281315190941680438702616826620180126748825474647361399405587044130183854595536789574282117310089745511042340601710090540646801528105213759355353466808010263277287920049743005293875211218472845475629038054828457048325860184178510122069486045016850125116731154619448430424990874240618020981652726278805391213358495780741975946196549608475700481617480410723496775687358109189206683344251244618807131856724677204435149358758451537508769521832773339434099523712844933583611447272074622737610617648899890210837209091747983209099026950623137768614933895522294875159305088762824067248104403443790382870009406669377249054738089811301212608813423192614103972722004889483004096687366129557667779550943400181887249402432644041620867967624981825366263769791260331946133342023261510469014216869903159778950849964400051791411649341793852497511458066186925800374249730475301901589509638753689357368070362576258579889741405088337395762931168095076116818121782657679022829245969213477342602606583980517700703337789434714492774078433395278489822073588568783757511655832338667092571149341973252051778943850335064462435743329781269122551066979033565267504640309472045576002394449052514686411508370236028285085137551916568729551262492675420041232275598251806854022882410426152401946161205027045130516105929505652606955331912759364563824389220727133656648542014272701164106713756569442499606969013395830622140086922779979297714096294570726519574221206625660476148354930442408334956277639113150287961444198724753669189870194206031089652200169509080321908218305244387657074027925485887703658514944859272682843244697547295174551701613219649493298738360192107360658529718166412745727650884837821230491480385814719210294483603996094059806438430268778535735589904419276809191812033391414036895211732986034756833647731412754407395359553936479622989177593951862495979996357009721736285934628228969648394011588695118631777541089738534494217606583453179770105684111637801138462792780221092179464829174423069374057682853615424200888638405054837178742129693910259879044683516227850496451538685219915642491033447869175103568734530856197296931626152977883403737181937798461392098642568152129003451773002103306898019761788245007133756805823236910620002377774732598307885603776330236392220735759001534575547412149591810080638274769273957916476188054372532310765952366650776836523832586826785411439659133233358734844377843220820975020964542580747983219087390060785967113028309143778893976182820912288905048356989915487603958996421101032197517158149317594400181146368424758409113890869363345778666208591336468261202302053528704777161087134042978620724522302908731708434749024919690024257166325745284953261813455393322046990333967292668257016266028121201425785503264844753812666323642174906885277570896839580986560662493702124119293334198161711388390287785646578180245912490426798495685293139686079095145308559046391895769373225133439879006064124061854910931441984905101089599196793999155207697226768973826175656383841990026814907347424568766691950710616000404363142814270737729291038513992315384495419126195760574018827381465980546654473280219167116448240918380156948181084839987575044929993857051751106152795918659549514375303338952091702686179529495360943956687155156834708624059043475913753945430163972721921899221345597104298349543436681850222371978974240909453981268739639834982595183712261446607181648058884490254294186223726712572959427897233709991281394569557076977644812598967259701989100011637920841385273214112151411747282036069944069099837846744148560775388115795550517556244496448813435100596262021323618832701926364922402210574550731033932296500600639739838830050293947893136114529235376469634493773584698135886780004533464379117426824503781885696918396004610051574180791451546880880792424398034625394404035719860336603996976858431553949652573063061668453292179048978304783131486921500930438946761584146171043541069349995696758500926484268277315586357613117358064938269323692764191514639914771462747115964313744317161201821031007059033805713393055195618209743797912657947020975643696413271383593424874719723149626359247965105156500892316842150792510117499318321410976846826916066120844014693735167733938643230789839899600051878077340958140675395859058422087476127759460218773080555035666773800425546875211887830364459235548119741189936694803140948172286214525570548219379639072238927855686474789548173924445463766188113458285602515753467017153391106868400684063299162403675505981702119305793138049478729240460986385116797050593542200365581521899100748937146832751651600412083814334060727033677695345477231315299010205965821031797750061696022506751826338466863175220339113460495422825674223097445395440538308925734384804794173309965768286696881262155090348286896382609031724559027388626627158860849640841359559387128162450812626980680431782075613914683761422801460529172739683158261703033924272349525976697094097195019620561927808461789302416166345629198240503572778252010013567614404321136598392880042215572291800367642083961972338661763516503989865088197895041045298173610179540263692544835867206524727039849305417505607497634310029104692906259729928334194353619683457632429293913486178744387714832939799987493212405436038159288441406855765740462275228243790233030346089055655585309612546208537182712944995807626980797628246303042866160838391671867581628360846305788797975411899423688208701261660956488331891580795327237390978469565337399848332027611181044630800619540352442069259205938294504205815209850148014905650383150679014314267214181106121553684905571235801197044723215904757615176734299196731991602810410676999264367334012837185452971115655288483875453160530709776403495295896365645986156584890559537396030448959068808054463383802036329119447470690244218482699601370147513082699209427837711799717297007237211395337412866973602223730535735152028814412562222709842370421540075836508393491953936024911986935740514028487480711251108993108049475254956724550201920474576959816908316450078533048422256903044410289242954764344188768695563490882433705182252764986141141092145181531704281528598661966714851993580995689626482555914384657534341957999969388418843668846256200515715401590504072406857261855230927024124086260822048706094700611215183624120666507934791296406015774917274042930308752886512480135437566469619840664654853440624767798271798200591288949002514850776178887018503152352773908684353512927047001172947314736152438673804468415533352204285192199498847568853808231167022680791439359094116254369664665158724533112947788728807202474555034050638580570112171836541977009101102755664769449350113327690586638577378642060140713123843344766193511241811745341188807082418535167033426053047867268922835331164456583765218297553778288464619177299664172419616761385566830889750883945518625703872913032016555812982360344995581069841571304757648311628858887496732702029692823579216180329514576651788626835657416332559172377548635499944194743735131123064782293254687254589368521769547446460100843324566614345059787628741279038033075398288566617907303169629406528361379768592978097926694087356730735504096538419951826707169525639077254236215076392986246055404189705592723315219807990104500249619320965838726051376236693644201379020743209545124485338271092409871213488662852285808060975081459459079216268217736119631536849621988125230131798669066944562080849682833756400893893568197867226696380920122839009864524217898925606972394899211063765795546567646358517177221921277453224467772102338781804518282030606928563470517334744259422694669496707706193262279690699388927603561906275206289982047545044957634547521937340042915172689359115036126445475984130904838213641400426808744681259219077361569878037614705140589685943225764594581237487509616602825194526027546373413865845468838136412613298966361187543637489461936385004995437456483039865230826844827096900837722643465585826777635879185072563461958805586530925744903328208538647285960125367144261768436068080522274658157171706626409956355839416648492036166837528936854486658397134467516525547500213388264823685116069705970122776380510008330834448893157681957618642330271726173258620799881397156963599877435747121288170796935010696493737269600648123402591524921526421818352322014594715547017481131111103403309931292095846808519025691446064961440349285250216445677681240721310355344393085999576049848305217955766384431263877651510821430428134776912007324936039475788562528445126775445629443532756946569701894350018981136828302097785850847592878017998872513929822770092045627933573295674393792559683022934709815043809680197631409230748335276932135694050709207719608132939258749247100006858433423152569624209190205137200825563497409640220090824061072833598520511958458739516346001930306190551024694143693626689610472122248469323244438550655461305233167866942048632097308347346750565305858952994528142074205621688904345573846465614688158322282852416578584728520945924368303269248072089452340648888378906111140888703146137219057293701438187298278557786754601007564675474994302686196341463519165910649114510588471254255185049238554244722713554804958044264056893309962318909317904198618141648327365395923370848767244543773901380630557510607320273743652277845887903977820650965772405534935877527859601518946563516277829527208707836638355482753197698279033231633915807907829782706471313529770775562535445469226315946380872159516213264679654632054595620162903639884061596113310976726946340371250234747371770855970846699410647095343930715849731671238992342561211000707234929011832404668017764279570053923777459586870173086995570431136930897273319655632165468352021132807537667225573456723662934267639825821184396911548015838523839718096643147031487018245610891416016174702517025208858681781882305825058992686881279351350014405279755791523265462477065038648149193995242330896990336874616933238106184834764459873590977224071881895806091609862980304114767983445939844891956653085509763087268350188336766027297451081997451649294300444326099788621557084186334186399798454068382761359947183264602159821472129695326560150979024399860162942508795770983509364340869085927648605576541550836828584686216349885989113247409103328042281268541699566314018445334696142963714263928086170742128576166246058173077795717688175811913066379201243565930710086680972847326117938252245460726285867497101275752371102986265197323560675717018774884858696361474813047537210759842612736385765889378197956603926731955441014037765851244522036795701338152971461630303688077818074235005957726408390777009117682435503664399580896800881303801134972289203700810219987686373990857232764716261458522877017077494222807746708383735337930514954271982284078374907801661110408629187686836300678277567995983308661482249042354921373631404789944765998149712525539217960959265457907722751236492853277406914475892582643067981183038058213811479471026131448137450760574181425383690123144793915931414718586968526691954319330599369033303064957699072204500652906966516769247471596689802184626201821903082803931445182233721889740465835488395399328244839484310728794545629459513623179730977714782681378796922358653542456605369256231920827758789383636334777075686099163360542435484087065131549226348614791084636774522113556499640583395556106239181291309112705260113540407393352827133908054682893520809394095877081100319298274300853417873080725623746720619178180260951530110205006145842852773921188909029441250099067780179146454574123503438784005973684284986696102626300527274550245734045622572508614355757948161490229264695830535225691694861723739643266550645693315736310936035865093061902605527952046925435022462219392089201072996247847753102998410856427327085114560760149786803560186990638639000893867342432084447440928242660186081778403961178661096555204459931615502470081753851895420382486338248427635968548501887653590635477095868806014717849206055163266734089797412571229490925192485458154547434864792590495045264882454421130070534523955253681362903342813053487643062046104587688081093743251833121205939387667990995495993885848584454662077282530527756027038845547221948009767745388555281979980576794065768522389263325513786912174221940966828572997633558751897835682985145572475983169722586716726983712251676979298760583515965255043259371238417548303074584625516730721845775078388880843786461367817070218729060628339082534572453897753074099761289323525333879099438469222837213398076651867323199336846838817631795789865446235047435944095954812391053651747653900936283181434954631526731218832646588463632496226146010716527916682072063829749556571314486680746327768947941289251228134773009623960074410191985528016995512303072054302053264187045442983181452490619451126020088027210580955339765157300883643086706201182039692830352824013906302172511316127097736015358574726496132671477905330165496430989637699078875786633231195404461682511205470033924243807587972592331610157308882874477682601416420435982409783469715859553910041344232888399563604252003430094922913389364727328996711459905719619074703699038584407927209704953867304478398680499773845896117476057421814149394496225470326482551629122872193616804900468418063245020095999179669485648794350969281867559981224981712285089583469655651854765517255710384366539720894601556769509115572485476622753788469682506418445802519787639654936149388801811232829665012661153326586308447265699940771520219656587306512543087989123273370533238314097435410997085806915912625768861819131134956782299870800543543535727207868985920720576995220486360277930758193844388081761392544735273357550270833074799092087737952671660766349965688088066703134840688435998264489174353701966203282753143593441798258517507274820649622532611916997752695090424727933810662433189432359847828624811753453347255710267703420595155207884789306508052779371855124989597487217223563473275766312167105239025794009835709080679270139268762576837840272337649515817957544066242202829022805612938980018958120969261422381533018870801772393659387304513014700942921398838724507934820276672382012462203086886996229331368060463433565572775507234815769193976607663467702994617243089034393833844631593249018076056307732340110838157832633240850664282603337414539493826518303597751880934315482080570766927128737150212943278935734543961127100337537264754584828946242241372386776327432573584178769730644640495500219991340073024377990128307791510522847501048190791673530629180498253045043175976293644092987480572965256829485123488469581755197035575079187537578211010904697369437408070586014352093476336242606771716497464104729788784043567223034159268468359437487905087160666314513101257171034294830529976149069326389527694304698440842580269257639145679895763023975435440117212404981213727801194735041246098971943944886417431841027773937677568526040672626754857575911543579759767877034409669793294331597146368387460106421536883366680836299614877923431615696097263784045645991192763727361667505420218482999751099820813226623740397154110139796840455705313002891254007098482207863970185387258733160035796659271111622937717769026132054033062001662589943369972300108604394859889162950585639802868802492487230682534053482042104471668115502734201301907851308709603908196530412713165124739768498198582763954067047021167942820588028913004492799975201681260489152581245909281074808300516526073545814433750400197667043679878502150259539870331489672312766409960879599819115145673121215379360256231258874628054452839366561336651623323721224401007082534449421925452994297360486276656856194551395541376825783779781220881106541579689622514029226519881407559367437692431094396919987169928302759030919901622438776931352369366867535040897896322496422633600930059234956098267125937732297140669141364125912193420655494278351461166865830763229510191223021702971649947099732623582297519362298330409012387580142468360570007917998553711283191632940199701814422641512846998510991896623281349026618269476035051653551638110428932523832755920559949223105225503992151225318760370040070721504306705359875573307351693989328460747589975779908067011764303836551790190226509672734827470626072946810997452071715421822453309048087474196977552381634369639901623446876248079680012909350832297064706667602770198138770941215925010547337866539962746701063478221611637911136476932494450345940890992155459995115672630390109018870826486471152613204339942530155364771396437956162700421715740463970193188195333735190802843378343171018681219453874263781012696907449210558053336365639908586736178010958676374777632878825649463160899060803605471439992079166088056961951376542744465217090684700461331867188992812096442043721515078886756643412492761801298424462405459432160502276950771465647871725017804017188199943247861554579308570691812747287924500869344862429200993466873035307028521945838208067301849970661298798242480352575971163622560762001956664679620132262462566415045326664115533522134639692334433649047552842528444350956196674497595126909067043187872884984104451864560455583163177902873500360616795717597122443168630571992722254952455206843865037763550831468487877289419010101724546433693544055338735548716063910677351423949176884652064749713135886237905615108970501291476277433029881564737501585102344407951415835444607005214951447371091572245212959271983284464645265136073813725785542963852563286298969416617051984698500075312775142204209154151192467483751645642134903951241333839761543311967349042551990908247676351384689254263614063254467769918431453814379203744637294616608525509314685581905401734150080114221059286739974872210797168819933122599925002012049234135789333728192980448626956746282120518049651372687496251804435621080029610183582336795976036683028825555543397793476114739635297400701231840554232532170707087480291711592637504627653403013586517103152363735950073459137425972263226196872628015178361053638289066510760376722552204467192360032814043655740908709234780283927733571391416917110640867222574699292833337962268801762240825265929360278584402643106232454802445366948243211528906450106408140075103997696120967723661309382992986903710257878719457663712894862518898530720140219942001606829690251358200352146093473263440167913803057104210661220731347489427989474591817797707636908049092519617562684822567565507679871801074349143725475675257161986682776784386902303994665081536748615355065796042449076050307576975366036890893838941007560531487948802633058206857661768020583828611249792489260789462788201897778161614887716190552665423368367593771686240586088328221965188361247687209749498841729006967747153212725047644724341869767658661729773971705136528920762259286633444926024529969558436101791326210804381727239737599832318430021755982275427494037189299167687549946325287744345031197320047154926826887714205473343540349506173924574850183252921717753208461866192642847885133427813495272487357903569757845996873906249055882841589474991643207151924355682517402451439501633214929487477128023274793561317373055508932611821864536383605973024331109060546210244362975758964721635370188216031761582284398964708711839360345302410783213880647285872064335670086381494698923253111983874494902721968765396094005059456473571382980336478692105257112701883021586384228736628253557818753980740262709204485577036424500901376247874032688470772572508339472580456858247569708095708710664936314357911907357910854905419662795740133219791832963186705549841325509541779101046142965019237823459288979461655550495046826021361152899492198175336442558047724995179529674536214775406231557871833186996746217274861788432451997481123201069550672004194100406591293238240092198622159637411851303637809809026802113694083211714142311291804604673715118069273922112177383723537067137764775889915906687514286946702174898223231765370103910017633669022460696420446656801578858470073623491155358671604091003324784970505014628161352107718417576006019820991682890042150783331437415460223159938132387887952750401041089854055649560941074795376505956707473199992143163364141520775583344501025260046578409974515953289002428742510532014549653340394080339062969972670089745733953969828412375474823840596782251669180524394881134464738481585220326882619628444785431653143546104238391589914189153616212338508096025233030297613015221793505854136462880772114325581632807603763082289474276015475626373004232759003215382737510756926332277159519253465010000557580096658250806175076502909248886510399959036720851944962909135950387711461058129338704456981175540263827466123633973766455486014160892729939422881046577537907113506382693583126792925058804709299154884290901810700404062503012944230866767124988191960187298931371571108411281590305541837558595249927666726226108061364568090706919185180123585748739166581303014207087355739929462786517369420380788758304977356228263652777340409757926897485499814429108560741495910016231840080223934476961138076663864256355745307869636356699031207748108395821002980340925377865872670189211204136518888730806089660200911553750827764774270796720610040241636806593037932131774706371680862465800561317395154759604496131603750805771885737124457652543787764932799167450978911484919510268717086074449860437857419487808493483145782802831571841960282541551237596152261205199425271534781148969693174204095338314594716216386037750152483187943070168374137865106925634492905821364528111824347249219771104298301750305622932524262831493438266835289396645308747904322253129075096479341382702480207335385247151034675548942243034225973477094388640018460083459151884082320418681311741927106680093522686401967422344471636296673466685443581337384646311584323952366535095460175594552368754673186485739284846307295514674131628704610165504299444839243730604762979342747106003517669816619140247941105420418181237710202497260716256586334434827394286074967576537509915591079957715689008444360441394115943117322947114921730649787773803573847887611068510419405501922168520468036296620688404019984260373683348941582592244646525514343546991170761554405758659322164391873210334170370411762997709251525966257194066884297560034091464329402552437321277823906681351504665978501241716395911006350762103165700632100080477164412500590934765945422624942465681298823791118020459475906229655442547376177477662406206742573361750871228318092564346743010563420215199201848523537130490180509518890636854268350018850549044818006066169421830244536582447892140243869222166988248156438615353085374810450374736230364300420859896204546031816250900860396793435011620542066467883761207666394548360916630633505299607437887967516379529356459382858169274703256811879418573399849870238470774485561463900362235976093645854616311061539883380667970144991345439035756886363562023347770667224086424896087040968000382321053596969885347315146632408463665453506252523539857776350134161335610929792662686598484905647639874399245311465835225066376798072257464555258369467431138816173283209420795278762254482268003883632703991597983604370547079343429466745400476380698522105694019694787813539113442461125145766088547538061450369218663094738070568659362266906244330561659226183248117028838449927384864411611582332420059314164379997022842821670990038016254289458410276292928301030570062995660387660295312425408257662328063749408260941626428524546527042724256682292363535902168042248196707141838866919341516835952559934333615333488145210618495696857562092090992837791878818675547392302423670450501283622057733549424352722432845719031389617094417176189557550080733083732114157827091905836351688518879187456448609434256887641824011961607167148940178749193762397606094422175762495876636372325976078258283860992278248697946641981190566777342087100664728011293737527849770610316548457786463054409542649454614336379553994819047178458096147204465675504224407961700418487331306440750823371252431900959419035984804756520611395403579436421100160083110547689831320765339125741301388617481154397080882420374512545898027534131642087084451710270399778894714209392877463147142989168975879843334125339979849453745416018627809293332415642942878515196855577582243102414356309036096001908901557067323199611218125338676636159894787165755171766620388519114842813690335836066373110069844697630953717706263670002273574719313688905504568773864030470313025591904526459581082407006364492464905104489944222980936562700940997534966119184459192619118035018783747698663160666679009195899934741996472210501746017197040176912773864488713095599711623178709724011161324825743001343536951867132927189516365278667352032578140713992569055678395789348547831610386182629597839322884088335843410000420097082686574268785080997181527590944142583077604522464591214951656643100045903758291802510906402112094106817920534465419936510773866633470073968051468836440592372949863688539267697274679319687518023478419232336521689300443900767662387070390126025254707851767490499387933845134437602584061532970267064993275976182319300886156820794992460419072968389079300755439192176501243106422526132939747382885359741156341029227092270844239345036345362745731759632805659780076108637570673168282220960564884437012454363613805496125324222636853485898468502953909078318350094117126940654935672187870419039702983503625127774716441738702008757237529343674098772710697785810816633772039437509498916050135470824841226431202996041990583879906973116604016788056671655829710569576809115167262564964311062564605279880788159617739253606108722787563425638399416740347976168911709006453437947078351786598984337094740828127476092064911171261593084428828724646595179192444312364026495049307902785313893029162242106231015600075420711589995532703569307903036326077564699156191923519396973619695147934064546164681385529157201815287903100950591677914398672017640554825636812037418537782466781292134081547966018227812460902661186842908541292482669109088036519925034559576363237233708808573836616443699177392822503371034290408120206608258051707525932212720151174060862983202852673067692666817284308561861475735125064892794792951977871248238748667962470582682285244694359323106431225111964070788429535345880451331825010703631414797024699162409956733754793184782237535188341151738084267141022286589113152365026667293477445238341936073769026825507082101793973060335575642986467336472300639195363549160532075215494315273647625400324757629481526408842119186914619461226229568432996290344138391601748982760368444985735176436749431237223969254031267902015366339829273596175902707179196315829919001493460564038972738569241142487878460767681016731565790235553707358585302826582262392229568642438854386703534737654545898390451214753853011559607607264180665929255168140792767855229123793646295250715890530627784234196579814099191000356652483979746110661328948200651638039655311081288096480885127087243716643726647599480929288512021280725562378380982220991922519068373481620936915903029390442397902813708018706083839623068108661211801342119245636841291037229115149041212298004065180077623136464255113852346093550995706424807655419954697491101720697086114622725596834920886140252215453932830904825362647713043307464580990576035509103893835915075352716171298074024582235027633297835810557252699491497268651984634292891785176364256262869468133628806892069138842568578803773008102670189303150760058135458347691112905794860697544557351116664419197945616860275151961516636909213914542411802550504226170818747523268667677674494727941087059982527371088727843020696813388357092893774271626371830374443381077289678125931034807575364131894116743471815643247979527423181634297116475790990473495838141353130960720655489568955106981573107141019830979004839098037087775755802743117997890825342548898882614554308981657515119895210492178225317101459891471398815873300709073545741230453341693619211312174445682272779119233854711504556379166189396950410175488654427208864943205092706883370829443318952569991243547001010532639069322828608869206821084981877622647471046847150924124856872314580461943594254261467562464281531935614478820601974775639287260599480801224012698017543220164122095614873564276279565526145451466752980578155677641238550529457936530433393698017725153316607764975130620010045112700283734614124824577440327684415754018558692027845391636658439785088007419924817226378431649857016260585586657943916145164339448843764628609497022667825715931516363555510612179417523537943102549013585194869605026940333410851944357653231003510291187885082567038401854182640094473363463531179047582678847879685929808021416603181886773303386813239581646163869062144821252445289200979554335567597572739311443978282119583392971179616324005926149958680596498017409713159369558405626277900810777250365042701471612544232031723821923609761803438815277598695879886617968568582744095131275011354433271950097474868342046049002486319457597087769209340366508147313820263755099819893727381273765779562149305128295738431997471397252692565825170910450912800558485889161419507469540253603542091737948195511739730275265565818560348374912652319496059675862873322812905002534759235266048156969015055870088254373860296928389404714720028508011182215122699757215827806679664595576189329089610656412353481122312364960152708839474454380827629172735347157130622076686410446868305752126092636748125382883398622762285269995832554216462438788959786847495731634917582668338592305205565724746399377087249021144582183928052986496118239784447019328512897656448769570111545317530114229121522392813191359094112365222502031746258312911663878222696361541862508665508703542151760693557316546716390446888515831628347951852396053318598400725047578724126997611362002793043877991451934852351274189076606742607691716110046189340073349782887175618798635478296796913309209044850605190744179189122216991901293169137516079865868038069704283184798675150532892459663961525235283701348249618872946508753004334249941084768576941763875434331574204669798099075136303646449643213479018910127991622682583384714989265354781914017999038213873830026043780809324509627316080319337719000261274060115993028598812959935877840336144753240097648759412674625994001092227499050824159530583240520242478857479780659361945487858469453272689193811920252157509066076173831357453238252338780986096883160180615972828583920820101135691747098877832460588255584752072978239902435886063973791668093268342665502466228533249310552144054349009527278847953580698257705536359845536509136319992407681183861654587729959101880811868192878338881341977207218713912299485642858553955065832324714560671409186741334763767038964274264278814457210125789411118366877054369658572216214550128798448705201410411549834194226911200325465968919836326559750518467963689239814251767167562473536126924352762246547086618559742105936475198192237765394554619407030883873744377923594087355132997349791878626270202942575705798112104857836829473707189263104554056026668220959417389699999597893096462995424841971423739357473869266765907870623450344825958824030919178448751888383663625512803631274820838285563994739552513406861763505026067646905122703829243655889944734493480741194976704852624970789368947914684276038287907366525286888984444367960509179385615040369498338037582244367204629744824971662573969775866065428253076080692037844985793028327653837642117775044510229833097921654914218537502062865354655141664292237221728091172104577187330693349319747144436589046089014959944118001595752910204327005068937811033727695404039969879399778330981842040442568047544679287494349777643271044320370204318045331247109885750886779404378778198735603275386616202062741854433452509089693953703371703724858783431454273856080979700430245620308836701871807229518468879700999637057270152883005853672638490519396183314341923458452176995489909930556073655464591267903025555469548507822260719319011227937474061748398039179012457164939802240216921926081881107796375095089325407077147176978918631446399818028535738477594854433583703210898666536343729369004503322305195373474691060896534302860749081437013909917065494839303518440889356819003131761251538674141008363501893111510578255614644195830773158942891399624480388928069353262438784092795259161530451579784031491585837990792565908464430888049958734081198921474368359954766457023989434514506460661171558218985408802672857625033555276830329036423358436547034548857471157501479520283958465664502843627956113116750836401919017574036599065460077125991079116411601582847334389330553426286378352075662888678598516031788764678012750437861669297348093472700079134578174356955450923225950461076220075964285381932558436502072196165702898413608508583906675235840544538997410476740391176786241507986319679515344769421470808100366873870293652914700839446454195608369460899067382064917614675275901314382478999972374228154590243714617988958105705752397414726730433093770171319458875126484881888566465724623979391366539224989071466284505808545372117355093578573768057634850795810191574026590182372284763236492938078501256760580237218472688552897369369944529617231171996985528659099633982208871830505046353757922884293805329221369494443034777635683437422456711934625705458392859371650273988481430712455599093955832349881267620811288691114660181080497698191132438771037371213149785346217777245716625373847790532373329625447061511410229487217641220326551883656083052858771191958472336748909006167122073569572127392628840287386707549840264774801727939505024832881660047206897032113787640209358551082841142745830555449085308842711964164657133281397832989820817921345269550155674467693504884913040956330411647107310995411909689309887238605689991188188799451254137408769317148779159163269937841265474640939407124538709551034334799884384054226793016616338342229944494443260784358364962045252356655671486577218906852056075353170876913812523996820867127017349275493862862420377519440509200309693013616604083256826673776226872553222128429422518086549724217709010957092203815636391964813492334467065589465342099062999219853740822443308518076052829563613796800886712541497208924527755831929446372828857985915579387533679640769489808518732405242523242892428006594345533673564604801286679765083126660861697205648430579485802910144877484747297232929246933593007609552380573999625263960333476789555021491844558823467006982894858470456410323829049254072596572884145454103899346660979800800604882389395606177365535389277629954829830627613958715126775220112724707837452594335376146414491411323531906784134198338081188352501953515892039818333218894967031164176180953818518311077247207963471987087230388337879379924019284124277795364213097722412936977929946417114373573706034463502963330614089297417036531254443237542585270792779004983241239423733930573873385859441079988372930481202818241074273797754288365691683767263459048355114810740412049159894844633296719732857533429282781044963492391556375489972759827450291111978520250759970547351620176891070896854651242797356464602598175907639233548376197775871393169929411381774516151970381489643790926123533376740883831620690632990419346532533965931634269947475517919296250634453939283460439441616890498559142390875806134846073037717105714438880366449528567788409508064044997171448926769990627005157915539167892393540727414169124795584822310994713291660235468500282454039901768157874455290739625029534336573692583110081301949250330684824847658253538877704010267212932709685140452508999819384766796337709526584164081547408891723567565934418453321707652300226853692513945167177489673825036020964289999264420439791083762876165309398361739412838646672516840141184282953004434989216256330027857672106303626367022906873957283206056904183492145072092023765692517168403804492650713560266940571277227648483242339733861056710929404992898605382938071746250497332461414374982022688679360280325927965212269850032351855137424278882549381388323314188882348492696945761048013766416793594319185350762479698069769816048552103474416054788007247043660718371618214972640699050556080743814872695071141502149064110303640539751773606508677661876221816024389353857012877529286172868355120129617862546875271547299646635894014831076729483262892833665303984663950091557799476993079204312214984924083488666502921674920028990360313444998186253406081033105475430054018981215826888106028421514351820326241533484418541612527334903827461919058165945942112910960137180195350741249985333837563167878541745260582466099135232821924715954297909162606746442372617969087590443719653560538785073930849228360545070751996593709102962809827651848495491571105563659044119906140081020496675805288139892953508598871333933053082914109048696382886239400303877691537191454294801343248853486176702662621591912346634665009982231755751384505202030054526932055567699498088152034669934098939004960064065165128712873396005313813840046508400504777520437415109756333681230886106308838889268461487712957569782565930860707809752300449061374531054027816825448395256112622691682345655647172673112827543353719563760486720026055470792556420829939041758511213953448492573915573167199994947874437575391245643416904622505964031165394873001929862499283728183087172529742445462332440650021521496193989175732946110626367376828518739583808178700529553457531431624726351599267730697373216569115506401972994616344391364290294751524232830181355943566194541155939916185020244997535698225650899293600430381424379519253170470537579515489175509240465302862791897222855628347914343500520842927063513220192579747267601882952450429834258562174406343303895170934220844454667965979309904264744513669266922995112455044480714494812522040606290282539794716347539234116120053410006272770139401914181689339705664087536691484310560145803185157993010729848841379541739716511640678888188806525454297595967524327926095513885348995384895056151725601485238981625945742184697204571213047703835993118414498935654699081785687150124380351559256919912769269388029436061944167445955595907451641044346649318824521063913421889462818827309781431721643879522924257704105878192928204574434910123043128034404660458522385736094771378773915416925157808728690511783822729209665800418675741564606246152938414717100159768785611591417612918384633795028067257352777406877990658055130239391219420531382194324945116739945121431813249916401677099451672971819676536347348863567069805397761440573041167828715748498692470549423441389407343816900150255089567148254565742202733344322759863976213464500383536319364185417237584405388720087593041541321367871350374919557360322994855405578769792966857675727846759112297802133681796575733339374330641910111540471920480822910709843047819192425453192218214174792926694425256341716738143883021141099874225947230465837804035188459583138552362847111502548774845537640307046563292701424987285057855890305598115723804313292035620147502412590295302180634098889209466126762744850183924190563338267959268840733421033749059348116056768298909699940788351649808252510263614102937562234786643528848117226966703403938769808072089783921183704358467963379085845189183844810707167352283460716307301727578794282140559786792664592964674065697042943895568279844877996571596356926366975538130915605342698326510610053083314413178796472633940326483428629775776849037918308504103792278200320790132747501884597944020406915775971281203137318526313262749802945083997646456585647736445281390302436813192821141276638982173349782705812137853304274337097824666065519756403437712225188527506754951423967808331002029983947252492125061421822623375118303320355213775420907495181258195345913623428646059351801101870083557501081980463233121209796714735460910099694203924095517287514656561118872917835702512758674308996332877148230928664993348450022058774851700658866799344427699070734178888534715485448912830018480559695202431121953647911058898102611690527144918407471188958599481777058835388109936319589451423810035144149831034982588493066505161057430919062052557789441871792750868755462181767016649227065355710114053086390704660091952961978812331363402865357877936895725404793503344486463595280269059046642164378190415551901246019448827672496769688887228346724304708006718591053303404314874762414163533671115078492656028915736090597095739522466580883878214922150614913034586307383695132332689346840408323319622484008817064043110704767387168589245327984297467032117573427430904676677235970009445738943159597089197382467541510313784793437749585022647066486852540933256536225776909013403941642127014681971871336963523675066204008162957916357726656374490014641518147283942966675559428366352186506815601687858844255546694038055065193510004107792932996728541500204748249207754195160358527806363296805181969692524041273263734237632986712947191157902569841793171435985555998133263710158595959258229014941471866739873597786798898573990356526312802542558836872476128173086085330490544974523031888032235113441680509565993769898214289581049474552038329737569232505663719085618892936982730415213255277850088787381771863335033812811098522969598264579713464461374076960182460770146508938791741615366526311886391503658286079645213323942962544358001469232536524432201432162025137003956584203911416770086511933756922664827632998988261619305035448842261481515433297327795114516089443910542882956253667048808015061379102791171054713826423828992919400326959815286695536364790070886534115396621733518832118140055206078033235461926836680765881251240887368876625225862012461541544212451531452033155833060746291745848912611023723814304985493518528915394575820886389710593588104595829521357894657975458717664030125562783229478160906757030303525082137884837141228671992157320045212167066388471418106605515947281327510027915446565316401294853580830602862296678802613423213106837916736033162387486371519027798770405774188473676137424543493292568505378822100869743733078350768110377623727331298069876144491505076976751276993778477266930973144937882982855578492892461203710717187358108600206960473447906352129529217127135689123051631862835102060130155290504497419543363486772876963010605755644157907794453694859701415884169523611128182356548556056358862203322051108261968507311779947417189555747237416895922692539556685464327887047879846893118049836068982664406973227209952996138210002264469813370968113363400538807443386754413522071221616212465240509907506973758758818705689767493530617616893815817692014653609967584464146984004298757934168534676461495429245421495060255795228861638684781040640694403302469072433357147590612189631900815158655932731226697089741003023342664094384674828710675505716069854734662910814618084684733571013309609053505641732320744929788686274721932821409272763953727784614390381515366151813476586900249115285557071990394500843542770991831920888341328254994699134474983418025090575418036617608852535391912750051441087146094019624549698189754123342834077377311035489892896942601228076806228901486802686710316296534144825097090404448711955136676069760790114470182174291982224054428762573893139881362708401925724925362239505110261851459458016623617055106037748324836436917067271032072323009154538175564087881399436773333240328001701189009355436490573888816918924327687296557233178836046722371555725700021890539970164413749099056282750343446340963597559975813905998553927320353174515950216045111982345637283179051181671601922800772437954182289398107956710375176495350364838918381481308861160362078069037600529249830232739206986237343287729478955815121041712584055602727216280535101087422212560075665835460105887319752168394104932188593421173767661849081470998316933708246887163851443001809991636633797494255201532405250195798081874654004513182039373385779288135635555373040664570628927190410911094278553986786425663045951641375889102208637059799134333703254890851452184445374957176944739126557710074916088052062981684164553018045012143959628958251202660078368434607912295173892942444865602704919841817379085879569939381101655684168962458475760362009792823908836827231002870150782073600852088885788838341669298010612997977794718126399098087372155339581224789697582629285540166280944766349892651799418142575949386006993808397334916070729740714119612170485344767397763314112357289821415097286902322251191579687231924104080992152693659056219857743565201711624395881125555905588442968667323528892754759725560111303243101126250666143259547035918446519918891775258693565008742244189930613173766334354887986631634326500980787528950567756831845095447634506756618681776073223847535077162467489235451554338291492372853197239981811253051557595409023224735649477371501500234642309255038139586143295006139682926845011082933194208798027520154022918801880836159731256181606130541933351314883153515419767089735696047077813224228445280422489504157095734545329214208434416484599544242764648667737527181831664199326264402739180938161993156786527313459093601808600003076855317936191617714533496164533657427515500955083618744555184299627193834374665613265422093827446599695272433527101705875276643489760212454957797646111584103669527290160983912028255458734488597515818731567081531721405869465642486743086078404109203353436813767877804883688775145275901362639733646289502369230485559249603755471921543721012517288720022266860949541963736581918260133736975473931880364124272498434713770412615542716592514676268650303267593524710149289630447594979688861701163991231995782127107956864805768655362995042900002957433541198534229917209833490110268630354919437856934055148216431224036714861164020057553935781762782746887847775709606027417654243305408915624547062984786663626707935197688773288353086368591401689699944694040279184970478225162289614909596114701909495963741126924790003137202940020521510640639484878120231856401153164941878670265893137326482213230348509614666438184611487366276343171646257380545681633273954957455354122275277973993157504083228858240439472938150348254734147948393862815379998489352439355382612569745721648878944187277808842448506324799864911344724098099925236366613600159188070759922221387860762305228162179680836419578429914550516005623913388497186251996195875431113986907990437558791423589641025138070722929432594585375684094139759541096940872203926910767573661019574712757198329014037411189908875929236380741705412058124529816286846206588090356965907048128466275506506802121902381980166676139590410048355968744687018264172005474944588842630435753455988251047089494101427164788660235224533346862677325102928830554218751462990166999129321520084041501050125674812958309281255049215924385601991511797267742120657246097623873134190643474851049874485293176903995921405110688884678693168862926993122367674578703645822553102213493261974598572193013483718284745941772864348248659264004919103195357444484283467685254307086697379376325473112333733342616633233505419722662224674604128019260855621901900175613626220687530428474301910600523581377011124280635735985185042904065413702375587633680024414790405627580698253933687484565443517883342936129260259814229457582595325436608223386504101378485548299230773466607311306965972073896512930401320331234850566569854279674809770937194864884423689197741349793725137188570141715136404453275618516538293268683426315323609672377614211801182149921330355146615561390617979991394257789103625895194951946547488859322411519179248553876869923909070516336599796467911208123393291215332896332982284973507798210368174498458339055233380003166359399896775117622419662499026544478171884779944627112814301410827527582333126528274621931379151365104727879748099242350509729367361854482174224993419667082314986862072630362630715958045562763959018326430497256457255522323211331670814408181841745959767161047811681625000765940196775060502989145303974895152222093640798665345108803028449891109866277831929848063987025944014790583605087293624922738439503882159283720308708967149468813990529333417295881623386839539541152494165456368174214547305920095218941220755663526038068899122152445859632276243003842917495737287229710178089179610323159604794393730514442995989840681656403630192377779529603966882119291758902067548096884727450743282563855425208622052219442056778031745448539574625105167712651540110933532327291859074855824028787926414370936547764904976297482948619886943403717378223819670731323163451142152664403452036732569909471743249130928168904579429158184388645769759995025082461611187853253009210948547754462777979343201614431836569861805060496681714033274545610269618955985465965190244299986171365096876526598972080520132419176735619755415943982262116741228445607193300145637572069279232482095695941258483117778961802604270755731580108278527997810510462453162094843918947310899564226339155347673363643356986921378765430791076381738418965637977806307331486067368237238204615125264117065777969240436852433171397512093300981773332996945612072639795986142610690813861626613287002063059290380165176330786066342908871216185946394851675621676990793280455065739834314821499172198854366195210154379090256004902282588672341646985272870715828571055982803412399042054428551136814671121272400534960299896817589250149963278763859933974703121408888974050469661187078197805657571885971409759776451831358360479069919329180545911561112378836882778636986876518497732924487101763775903398769908652327378146426137609660154122030592514084663172560623218511222152034433714070343788652669560592651739414914559473626516628968970373624571378938321290374302484855298324250965649837630570480031135727802509438113109801111055405177831797547099560136291328967945998697359186512869853615614063020709158129231699173239453485595160847431027671235435445128358198621493419276989374636158387469601721003300945680591179730506377401510472924158155238932430835517908151000723466523517441371007927444170796096664173533744180137765018021342584871427101626275209004886144322356610940210285335484073791343337991369794962068253755265680518768954200583369701748037079994618498509787902272481150118503193104404841327373935014298062948364873904708029676116669655588835867331926100854621954463555978700250897008148400293568937935359913091557219100773466671019548615569567795290636169175180711418388952692432927552693767490488614079896782392885729946050647849104439322125996713084467901701433090890801320612570017355726487015535452008213956576159972266686379472348081853814332867994649484316885720567739327408845149229935027191076622661806207959099451341663452702037528412120812347587577665663819906120182170954351380123767097853091727449904967371480998176376404245270157390789239050891973897659471083929012493929242419818401098521416039551002755817284774704099764747777410611687834626401231185669933650952375531574178201036924904253883299846225638431747589983419545621673724816509313496682518863291748889035280904786067485303502116796457047825229332904545229176505808290773198057690377884770139207873732415892738474036073277252953508291853181606894959508229052843163854007213087588677125874628203028411916567779335943293043328956271147109410661363032649131739203480802445176639545625354347560673424278679334348731323135969272496278994778579014230691723968865692737864131072037933545244856652927919845757305071834412660925726137209719946591167355718215914923375411858322444997598455261765998780993028843042074614067843556124216472553348961076012331282175009135626012654661406851453283068174242859107767156296385995591684382590360429925771038026160424085467803412475562192602075816049678888584932575455299938347155220626377346375040192937469136485154731424881246946265859590137066362216906245822474484626057063613045712996577471780800951997983653139854387679129804640454728991277944529845081199887037728037456430352729925658690521827700173533414411486006551169883824316901616403286793780365600707486365569763542410692820741359361407600893616475541211597529998393143485367104317049656529061989844426240664925514801770689299458044797055519186070359306660038019593866323496446891760080975780400853455896263148780765889821346860214382532033191191011689523974168416975078941743871981717757091549554348990592942460458236388819615248867220117583583601637772770630905106660950993075139561636181737747474802494554330992701878558803502762755078835131686424735472474108421146050553345133187250318876362720109766696448980158805702456614627224026082743079901061919234599794470419768089865203846200810859940107585686356899075856218560290699117891466547049797955779171537566251727931089637384495120271434162839029931562460226181641827683183196305192942214983738184970689458442777352906532895746992616906633277401589718730996702295792118233065481138024055455576385756420616508967129219555092479933486027385568237970939596085661332901740085114722865363857920327361409451197241125138275853838797259806129004229026236694279764219498983964872357201254737841145549494530341208253511301056988994810652129118773992502050437217908841765219900327642309327369338850239808367454133193196694524050982584773622482406587301509559921582836371397221910623554125784133067286678292609156863283093398816380504476353073237534419690586845470783040121866956072218008617865665531235335895975395955321608853200038473991254136577756747366896925204061064896245533375273287115621155157364722326957588781521489295202355991877720902905510715076256764905152912729111186630641336122877353145402603666606829171705439419306215701242480634779804353902760499772125724357141509788083246313951209871981659458532546711386766373792137392821442834266396737397289682405318981534171565608693848395516143305409452500836878582716052504958698547963156718052845867865687781762730232317437032334410049852090663693096142502073962718678013757743727891609559523986391770573323675987707773075623063786943137765408915433433923637457320031492683291661710655047680621067991460629911296150384200451682689170247549510507815130566930201936870411569395883299064113756700214116849091151193678064766926682180963379214440160709143140774360124501280961473414996810674107045481166590013801257779203655095950119952492826783019589621445970352171605235594839795221996779306512701738665954961869024863929111739600832301447192279168637071704939816933891168359327318000704916971776035987917295169442549229798414975430770289474539920792879943240298565714970035841310027595153493277540730732115892964937345666315905807405753566538835740099769636737105789183185427972597795119452866384681080744388474760452346317323946242646252318994099625672091420654207577825701649804163008238026156865528246043432254420247819765211113831107088389541500642342948776313849422595127434305639204252692194939604182947585604604003070665461989073420976439786123759125529439027867764882155411917155032550513968684632488506589500571927828225432653997541754428444133603688175689748202583812149460593873288605874509364777274242271035375788136739812455547214820576300575597996911206296586805865133382146818092168256211324732702396744349434289617452452821672191939086716186924797943605387933368624093492315867957364837357074554361725844782045692580681923804722646391900129692923079749304254660428373969281283083322876016706409003876948456925894394918334858179669459224894640580473890889735699206819211858420392414763988022567049079021818328484181280106278422068720649112348586662766183749351859801308524847687781443580960026094164472637027542007271649120387620342037178943727761890284988992138337702479314439596739410572656710069185924402885362797719707259810375170922254016429918317079191309175854067181913922570609447327023631315636664611899464690759524333464293429238937951514299151924893120854387850589354800018469926328823936526388607358619860994937356298889388288149883355525138681428018903748276537298641798968979582868462420745885084272734361264213824131018212495299067105378321154280966642804576785577528590317061194530047528653416146032237977995780414339149517045393765133487472766065789662120572995524472021488756100048116223169279179813732818799245632656824544014054984315912004802576389159406262044546109477446270269882466401570024986113875731897538375462264711019404400521452128368372454184669255843578280317290514994203261812693378608276700365763441418662634609315781490116875397254462616302253222144454382392043633353896992921921636128657977747302088432159629512198129162573380997820271894282657074701787875692013442692059581765262213142787323474637900960071525978800665202835969135884891541851674979627145927477043155654073808801245158923236304740148160823767531232906651640944169920603563947947936341983331730445291227907548474818305141329412463080107621964837011015800117663813617325410933678865416430457961891938555080918158650485006897160515870647026103108944553892110012163534713855940634271329597300163936721732592934164521871865626245183497215627506133085785500619917629515074680688188389389605466337192856243636381350879708954870826540961782794820002136089447827456916192962994587434793769837508392209512904745419694833707777138780499931252165346595293861998964741791160696308111793959974088995176886680167436486783934307126868712294970256112380107938077482199504689620434176832250494199455127623838460856599278663620309410586380434424228430022491371593529920350524778260358189730815178114460840879198023785349584890930169029239010913976798399353000385148455027433046600620810969788705713508547599958687608872563189185009724396526170317976081675883576417778611148899590418466047549721290156644053389139730964426394704055043632057878769177246066741757592125768493844476189158293851125336199470451505836556726962742660189653182234631777684511446280777741626504876922256075373173715196748144443424427322396765869300101662553992644380909308021404792468936744900398925345030668578905867197478222559195778664376208225879651814784697253072178719711234033435381655789418540458065630076793359569972813761849339711191364178108188358217217020438705004041569224235044173042152925723685176861814807373360055071025100445889056026718715762366912430724083838085154805223757720099174857902106876085434005470988137951191695640905605199341932926456962807795612021993765342303333757891462080253383321356899336869179813040865866686108470192864354439872921000559504026379591033014355994867553535186111953911269474186505282114848448852818842310093440858512245449540806906042569164375934908361926109021559680169214320454596571630601355306431233833608218189364112387631690232537908381477482327056812771375191213486008430908570429870550582669196211047338603938733243480896791587325533569523123440121617722562287393522485873941656576788358715525448805442607498798372954481000956496127730925673325546316342432391628359995897723341925775939836036610391709505913223092567925191291353461338825052263081769233760719413353619615060731739887812906685087194418657390903937848941821956481364244673511920236808898266794979274824316329994564641316138112204898529865930664936465200174512612937825969657020457676397799981160479325112447679648818848993747920756165196258317114461402969161989539421443838441730912020090485072637336509385982996677369312854415674319707298907307993917468430219533897205433612817182618179728786730708084420695823601895944690745495935585326125963790325502262929293837468380734083530108896900669383413938689921856805089713792309322708861944751113629420676627353338204158200915626474036382189432507449062856639616998834450389872805723777264723887403030954078533975030610944176467926437343117894092824921676215289106764126801287561910087567446574781480606981817101446705271215906520754067039694370772916797565225322633917243530294030499435896533898662081669262734651920369067913424273785281023841042817225405564859391723575444927537662407657655557442879342690935529577224984971561172996351912557965290101331780175785283506372441842561329684441492595182328114330710804350904573825706855271564686727717315776986862133990943730167560246158978565140255160152538963035217406991857139086717996245061812698813026216411131679407687596386311859526179139619853573265039443337094860631262821498231526361924930874729179330505346508469928785046874678557333929945051035104034593069598333091908042771731255013542709802957070567840961497787096080101332858214611051600790933441468440477911491750829883398084203875573734659250873027103652126010710025820520056987747006401069155658841108331909855340870329149731495642775456148528410265434194124323606959271309443307622456688447824149488620921896260186156591318916398773479956848223911520005016319919770540432558455089407331904169131438861019000148510597099040355631958956644568777091229121810947187179738542114645270442150567530308779235299684348741711011198084006290755639460327256479363366462588096388726492933089747173229963486097165255167114682987439521085238141341977304957149581671229087400154808145370134920907034172944594889477406694039001771284716658502570759050887656934750421881537067518854501057732069726708704457985314902436368983228764325062289077469743873012435855755198748439253226305445865290312985097338871521063253400072944608965928812620099961887065547611210805575223025711976170160576449606304881311673174142742420892773579795112703916165031722082372616843695205795936148838338135900505379627990868305893078970138526792916314009390554906045797961274846297287899870472274535276214777468117813293072356891225824510898234640300287252421381576122989813583091877050070386492997285616373805668358880257163478387791082544973254488279534506575528138329312165115032950865331029885148133396438895930786627749566222424645593828915968549048825593201036314430352836882533277390595561637208068287014930791634162149282266493419396988447346808749460919052929695980706077947020024829007521384725153388355682899015623503407749708585852850770348481061938186905898472987616684546885465185727883023794220971037283167453328578479692726230851062274150619531920797652525363316165076899096378456704765300001392051469998147414767824391142827487288894080869361918692614259027783716325734854983546099624454061130688155726182939947511256044642260185676767611099498086248167702445936416379517391541590542606796983683898349733239191855395025781048096285312424628767958332668712724210749686574367362068681153028212295115834706997462839015434628498310578797164426707373433227221837584532808251270029402607456400875437136905705723726270086727302338330923660248853879884325100794254546229496575644142885143713149688142802958366072182246995541453554294507587235388247065952753523487887344710721664040644936089076369893327162060342609816365106456606919299783596775741871847567145499379697408675097047474066755569974522879161732779582460534062960148186207542987119510324143360647384961145509501664225238140292345434748664529815971503166111272778047096480150968144696986828938029962647749440829806407910432623678929712367488460273277308884312605615175844637948386921832513526320675023905125713440280605395680501248780591242658258204118395863627038181201823999809201679407930178823542692940886702587001622249810888902364314567761697196590633223015020464057580558557206780704494250079563199083623379707518465638728944836600755828649589385549286795185708665677370183502001705096236298199278793653761041069504905931708919370988715575315802381280476361345800879728415206683280018617882049538595468450281132577208101259339938187323931746323589701573008629630584955113915959638273957368493583541728659683931426076518315490789521934305501929147828157472585877886363198211322634382864009188327095427806178059266998891605015098320999308216954049997178409537960657410873213834712386286246679629026103808341299238482904104254035538493215557723681483917285061569301468562566072252068881999529981192920498589045043829618857254503449623403868222117736173658904891654535960736637214099371214853615015890399747605665198245218863875458846840112805210237353953568944433474666154689196506034365491636199563013501879506129560640016185930430903900090412810199096084914190402568016791161425386913131772473968870859326226750294118657820659087296201287016149223785294410183354413797812718731971210894053557498919645268810171935236312588498724336776861567641169616577172187454694681285903927691560296167802997855739619810074992098432651772154403950425204755732179465965559865578650932516424252924567158984713426960100220136639156708457476219733587283539507709424322992157886214509941770399161853431015160394140834497464596475354797593509395533292227250732530451065574786999916222336038008004949836571795790224007730100858535368343773077323570591566006297458024309520124254068656923015396556863547552973454920090346074744980515402828982359739383881185388539394042786155071670103827806898897325735199934210901187396215349835535900835483281004746594093807523582236722844701975703729119946467421861382839137041450973137023189205992605336545791415718598998866937135140422303786485181736541923108326062269924382386801842096872161088544543478533726008662091112660001951300478886496209466111243684940120187232557111026873828505825977851725931249452596250918779532256168224761314635878797219277235930784433803160903440789443808820823754163700450575883021912411508018644222588335941811282292150687797357622111150177191449296148682452794005075941048680894176217091075010762384380450177347129305799315494648724451117659383808878880356553135967449527597163384044389809681663828305233348536608140053191578320584371933367200602961447072468689651489373525695202774664676654631322649162375009070635465388451727335905187424164493972346919409292182179409398075415161067900602591201972915685611535242894127865625091557338094166829422406466349029812339716041524265833709754517545739922988815912663231413024865908776225772649395954832954745023135093260182648008867894631777005244769331147358434451743506114895164507843337115513066137735766674541384740591282955720760094070458771734199315144106742834185930356605887054176797141190604468316943565736477280612168509704708022870735881562724024288528926449995397975009669982356912342676989470349454021569570936186248051051468149756657890061180043407588188363488890058345266275166232600808042353041377210717388462643580961013627044360704037044317894403786335858738614515353616904135927962695009280608961500885642128614963205860051510821972594653634002685732408340313569789898745276811967463297730462136930014544844999770797786079280442365541952492544127650761804514140213184839559662366652475210330688252219934054444408592486805021735177837218427719794507624769572428431231043478372399380889883835615797845004202222138829679344542830643115608814847426037107801728284013965016923802014958363137263770396768117725669388828384246629519795417298260906840103311903946219478495366471483964246310926822667417883621318608048785031859572887352496202280059228951222236873718802413675542114942012953987475055898962737497726234338482628259701920625213945668211178896181470404561849419371833674034508414768410377335028411124674812582386055500108964492681598797922064053830058227894345965196687488323021885630563411677069227861723648341101754996739701111786850293303410658836100892348433912215113880658748766809371044283146561897630699761302267202455974567333196350189478153919859351950112200687947796203602728213044663160989401432925720101420520016343112988174790986687116349872576503950989234382309534161003662405188275566861474243837947218507111397770498717090261758420972503514903244705387262751455527035020932993285195953851520506213805667702818490325091811270869622810805773659204921649339233489076201053925738061984916421560728254959905704252311058533373708007454992348939234917774481572542823193287416433461302023477055017243525097161736087527925616287680345931844971280437722407860698544467002793801121339643652590580205130072900153103353800557200463837481005741070143909096718057621720703907105474076292484119614709806823587456469979598937551789049130520079687693276798626847604571283107887677950060413665564336161491301479611163152579896847093832296659402598122432887219111256262964439425075624025915218558605546728185369029435224070750953972782360619660701006702165813740587655138706634079644571133950366124697068505331940415405874941889905948529467087849143820211524374603629774883498627090507595214485359542208452184501917262167174430348124299805695150952861689121681809573756389002183496386522893964202913556435854749861894192935221531970348670034089466208412429238533531475182177314258002479543581098363063490092886362957603133243531454302371194919747622038634202245005893545254299902375747217619997200002837266450575479644723151471522166132886953799290297465434660753419631868085978941285069221807549636363803797802043293235492452944089473850424695643307441668125450954971583531715585224908810590170329502800433268284746653883895783916343493491229958456091452205992379445584490725415466281615241133277620941724467154029756067767546879183288944747848203112534865025041677503969498239888701512818426244829918200279252278228134512936935788116046103578403793092669787843230041788662192359917429430031470486463968683827447340329583733732162992414548254293161756307039370584141177109770283662629482924383947375887059563190443059616682906443878295059337421034068914524208604765816760060672498909198804037651634815094445897844441789781662457160419691601385950922408104238404612846304679271997691083279294596922021758077048875757533947901506397176353315984207338605118297585104404774679072292024515722613028108451138454391664954523507350880884371241878505667117962896495704153574969262263853234186991581709316216106934709062800150172916849404978447966723691462618759006960644844768014156903593134252286513829348987915232083399242483849983970965920778195702936735093040318051232154540632050448731971241626166132437004533132055182379186445456326312633204936860236715175368837638738075376248243053476963890111884659383316796556506360591569323694568501094096283902943729029242595921544449241234970581715833787070275821615359354382704964947035665768881861382477638928922721145811156159147477390423452665818796499715466261602815467988790294135774486756554186868012418514187690137874144925704089606478379017434074236881718658502251739902242369820763416568446845035184302046502365542038583805992080508859675934940191491245139909401295375184803832022887458090432864412138274214876461664777415919028481192122169042120563894972758660052047665891545471254684487500164231062936485905771613357927409899802119518995225593459726382746284200562943007134081101414146336665765748185244669086159684055354455269581651539691847773249950615968514484685228493105738329423991714307252188425086911402391687952044294984746882615689259091115085548333274200553009795698365290562869752991676969761799823837527773535532386956342376476907913166735434995395110463845711645464928106629370711746107420194386530910700613605390996207401822743813715654027003268097974669416553133428711100857997216085105400959617049343521104510852592871338361481126025601831035793705931354224663536130678634858288393484579009861273077800071790965717986454077497910003494333996997874960267248232665412885736473710358457911772398218391363864896405809385715130270355190853250900145397596834003685758207520277222562352327228645751276803912865262370062094164922529159947628872709937203018859601324739413908690131879373858432130012958499000097015202424818994005575837994181190724204240904818516525341429580665209244651378890472549996778313537725954922782181371800662324527815596421252687407593680435957389069056509428278545772197247557984800772285024485373629717481250910284860693755449830739655401717590060707794660572400270005133427400850399903336098387707549069758011470164369863295979755052037519076272956138933753826975108858259514887950043016369082280657428260217819820836924998398719854804907472924709232841754995172152874491910890480974580345620193413157923198656541933559379946684620961079685473950939365975416078411927401632331844105863822950473202083501215181518781178029948012113955220986513303536230305457699501879364403847979098076920492998036677476856986993931839997360902962410512319433522964638722395175246664829729765760683267431585709546193947248919541809949829948008737850424601708134761158171075129930055191381895262398769399110478345436530701526409170026409997195119955608455275676395896558057291126239072077111202268989021081244281650143933166977381184307271614190102345112281245415860893042121075836254752636669559861470466866269652906181586903234913885122976833754374896663618141416480881707032643399789006204003850647603601693545965500601732419989718812397049265370785669987325536544373366466178368421175615142009832489715219998977089841085303717143742904295280455998137987451629389244408192318035541054915337907264217057224993393807559719130972541214601309096631478950896196937952186025848554626336389833423020960282647027423999664251093504901316558965073883972083894960337854436204846873867016253176003235130195346254318488913773055473393393928610195989306409323870233526749496417782222144598094716262609911048709913220847249007290339613710639107398161618955584115226454201144770834945589340490419247359655549299561696420706160778235601722365772339240845526412203737643455568817549105938654980956274456014001691214687494587367943974992168386285762959497972917274495287456783232568595146822282427082026362485494855999644734871041297422917292735297100768237138540001559176307813199765772205513301024107287182469996232194899713053330026354706845126665906883291955416407356099767420169848215242689233149764214825483185738307126479907658984144792045522800229107624885624674451363401199588750970445512519363992944018770843302797746834742870930288525423668159518202932028866107274370867033723850003121998290518942934492378448693900059392830483153537339957846713814382953950721672743280348245808595926408720867777562691618947310574432869650410888443048757048098143575545059455172878154504303088812747461318336270925782670157417789901895700169190720937832542833394393378790179444480188664487328572791246301311256793543818176105614323200942659328230487747831593893301236331565032456582906065476210783517856687173074635572049920958793511476736467187466192778143064276252205101455075990365235354172299377232847592186639962450119996416058989640574456726066795869856551201879925091300273650849581105359479169510736744799768119178260033321673469496172290121578833266301833447652392338058669385780745524256491016617889759144998046845641779422235939363401729320239516839659891313339764148634052295281967435983753607709816421842740830907134273218016653278944901093623019339066159627217660074751405678246548041019782213211805763289033101660042220249999187502888725076675909492987536997954786125288328712294421387564675393521266047880821704355257143446181971153997871421070344479293349937456379590129271640196328748837498731780274601110334400072785888993973173591487878212476163957181367595398886729699103536559956268537623876262018834243470070363684403537091576820442892694635324143835095738806977435714288249598760525700064750274780486867170942095114861836569418389610522596670122257866819086119553590495952005308003637696116934290154923567363259171302340958888227747878814252910503710144762048059846867583186974941261801612628037925538536823296367349020577003594451417150630873457262531508557549407851742272107784353268114674090832318761448535607876180668702015745787662617360236125969452288521011964734818905385732636955656676451987682376209309289922084313933396794954533146763261653667904775237164951879904284632874367141413908026135004825685345752345555676076915298509792880274364236393249234763757658691133840139689079519901654917666542251931377076886509872260759481177481570588161977020199123185651223029441984093707841682252357542345908126428525451023226329516347859094364347095895186307620048045963402391822474936713967118911377676337559017341517032795232298801371418337197951732944209376309716970553098590576852643894457256309340884638573883720658543888775080728702708034440851376547040813133703345043960355757926358745189865724605265662041715648065925644653014175007161192078690868207034384160374165425672056503995978042844605475462332301495753733996574028766617827998103354712389045762734740430293346631950526778608963500498435285536427539757585277443553979222625911283997749506337539540468357968870034839651611173699689655020800094690394050110400588994075181806217414662717402353493931784799923758432713159300666619375076416366835309407729649493449553671020030753017410234409965319036725624971644497901729207170391801148218419705883795958264342415562328605843961265954128389386230252966154695903536372631144826321711897751849206584400258745428428655234737094371444184332389169527744671245786170750426253758001522866613245446750673462031106368424887052551648618929252387580930856539734510779509236357093139925041133429888921247552229753675846372722261301585214751318655816720210809202084384304251492832677590436162284598218840344499414325304964417326039778369666570599805014478746022113857135887648824718696107043934426882752954843387640795749511498145042720992006849059421119072278326679141105598939672107798707465653709685019203225837565774741888075017562545015652749514942881805648509523843522845765536132472497953919445024068572964304472236895267638725922355106158311483118832821325856585756107731374332267757293102443142401844581055837635349525560027814029525805584742759081613203348378919668535278767524650258034184937406609303380526944745318020134285516666546493352679333619682838581217736102109191586396331355661841857829013472366551467703469594860771609650389963132465702740165148199994649078102727435937708224850957819359852588567539719914623566531119166653489905190480375164616723515458999318755338986204140994410263208920724667318554282777683101392697818377521095550075568300249716331995882346602215202095459059870772787745601005838785766033453886884365690900355695256652845873640763756454016084234611039753728022176886817011227576287002625886345692085330835312514812200720354016666275395333330495247406294710028857825379238196232536749084702451605260683092299133055989159018524349532703747509139358457235675504441704978943425844114278039683764003446211245679780220428010620323088478777532463717509724521204743935952221881116635152253607551431515325205430978958555687118693724948341634222590666854832044008721639844051372996034549778689431104408147325118442136412751794360514319485190099531764836625737950098565645857139496598367809813539499120679294144574037262163902334877249629733536735070963498828603736888614248647192459016666628410205606990205175659557852636368976580092044078820742834906300301284306431252899119080491596320194930556723717310288376145378975710467525764602146197114184009929170827795840363751487849896250100089999211460492469283191617667304456396679960734398483878194758716312706962757299543604272823235530955393077486212769327752428246781917837744092526831583389219586365097215838945455667837177349987639857028583675589396636678881540218966494687094399677711759361969272123297790406092470034505180137221884073496572790115806688844833308570955990346544077049194220105671282169827046638619297310719477731149622513345673033199289551664591610143740181743073945772093385666089548035956647475710073338988270887781903140051024755225562909330766548925534125709846611046188667748787555040194128013107487038341940652199500614442377504717250137848631265351131806510778532627077593458112561459767761798948803881233939501099760687835781022745895428820871495110538473312180090367933649703002217626287145952342094061904325802981909997754489497450184424357977559114097879303754563307829401528661496430152364057599421801599420513862643702306294460847017964692223173608120564520445018144667814216065827507318695505361174331565126418794275924751561582114234404303515751539965981771824921192174427765253550389977482911769188184686940690782241519937754201083023879627049925688203601849110788123026801160370647716512084988833017776251639982423081917842440941013398473679342490684986123820992652922609783920588692533512269529922612347271036254547532938632381890127550626940791811081041904937191389333543321943036697509546458305103948961466403982948441538015590731749548708008485883019186998731962886368539257943514773989992842325222329157056627979589415445522494831261591741292589512636402664469246626629719476065014094878964826892315209313626460876620714036192177324092123095657009863755961940770962543708141694461396504139705335313770126318517770140726988915021482738757980483658369289258692901140017435927359112110236544643687348552261331912549512523316030220237503882222405200551567811558176392697569095849026015206165185581799081059422196066556638194583482679148872254833931933810866146518573836947901134149247360603534968759349409034072388209994117229032862108857741459446488095523188087768577562619550921941693611435629105331284019549444784350200963689702937547612414803620950903357393453324205897476403215513443667245401063905283350201396587338668620195832645538673293437087376117956987420151538092457146322227873453618702574690615948073459515052244709945421574969362743966859508185556080321467742947410751544619084176890437648369053491730371226435427081163746227022318401455220005952419368930412714122155422000881337295054341926426949718536105883471411873216501116813250600883012725114170755094446743502641172951597780530164575707072706560252373710591498369723164299072300566563213840959899574665693146151479598021036007846717918601948036601807391366269436763685274410724146508032466149809737428808159988822820875542369953107816742524132321649469152283933605927657273206268677148631524370947099879003373722292553180328160964364274117569847602372742414387549842334424611377240286168441690301791179998027910526074834271878828957793954232391301536881074164610038813922551022925352480445806350558085473727379603204025789233543563314392945894114902856188895673731123403517125979010258936783518524962583811572755164500215726914847684700514100644359316630231125378776617749628433104846566937724153635658201695014104149243215659150252965754995622579761608683841714641448717234530380659993824754098465153181452109032462568893862414128099541418435281943173904576137694606050548728334183400476254943088748814278851043318002181940510629645943648366780959293026524812852373851013049750521790908517130067784869412368297849672403394855053758801081401244672706324455117765601795508647171043179495357329794410086381860014607896882216473548128204415315700660888631706313435172205165252469860578668958045538371256072276306540256376977607895648117042616507153689729581470158515629324658386270488268342684175208248365503007104705934658826524375539513243846746423847392880719657376608188209117526990700703071293489060451466393735292402190779682069109418257481604020131832416325352144637277759654376710464005958414351784955210924493325508107096096510347907404901297599673024332723260736482382419416701679864694421922616018250701503184455455928390908117981977589542204587242437499312621245255620563725636413958218469476358151848284660946008814895285482016583700344687875101338819635976320377922718272357654214614747431410762623201495168558634220520584683797070822333039836367458360040886742213299856011115582405340304801390250693518443197027590272244145417442565209446227918888174075276293101064558430820419162204838640751229110391168227329514612239426022255586720512999731543773028082147805240734355317164434275280540595823265155804002089089097763918996645189785539447168606971111463928083561524678802090326618269429938096201322813853555460752346801546480027818909799762242815565122911318512175476700941911922763649744659686614254196265350597666462942124009369516570190708268067118695531988630748885447526447548140718783565975517065832296214859881769176911208910716194595996613753333019723263406895006006153035286103933588231166201804271609382948154075181507257180973335522447646262696419228425076258619133823444527374479080292724836731243721009485164170654459036814192460866940079497908571722785905706140419783517231948971449381175698165555234740419576300175677964420450306591171702076403324604294981204998407090122780588746424528874260166272936697831679353626630535835346536259193217543460119889253567311019970974817265804844824716230417131367678650916320661260673300732729691752091781883548975860292517426911605394253279133755628266207194403389785399137411158498326584906127649087032069775987877037715648714340818848872484992204103532382180780067846403245322692186313495125300934668202462630848703188261443875518834792834547878413229570475588991505899717931009593148431275485968434815617077907855371165772947233648279778288250237834426996223096979668301417481048493582232241638371282638621881469533069532103235645027252517751627814077965015045023780126367299547617133128070198401990564761915128375720030677902691863438711014662438677093071643882022687120090216352774150952767605290709301694676624491863897958616424185378223228910638131613711498965045452339343307711113119318003299754913929478057333720471601061412801432694598581240845767108384573656897074921798881289226607080066564880349365882693522364733412397583423735643125899829010506664956385505244094333508358609360704675840569938574539031325188883660994682140468365435040091944081573318817869093113666379126709888460615502301512498954976391004517442707159136690731656586739790723932339541392107443302672911680576143911800698621080347714456496186509763160806084970741982404279113779984610955706957164152809529390051851519600173199024792990920739058652154813468345265489516105651186539004424747161729075265376028889337748407398154665148240115203849549415782558788656768161420230444130549373970050949959741575086472764990577787170219783395582289777559966424650284055887509352343845883774217699061821907282527295043013954456642565054420428582961980087956089505462156142087756208507348245814122344940215500772980043576458336645635563509648855915692309752350323811838743272415774442431222796711326037705625898003471433442339881709983055963399329034061291278475869404019349009721969539602979014914142181301601062272572596032187351097373199077378792843539596109934786614175062253321717177343739405634810141061501104932987535102858623768331504780983911747524811580337993977891165684002672772180427486205877610760040479843998015576369872076451103096667170204995261466802347726853706902283295262647776471148535694763989734582823978485105507744192558195497522639356678066916036185394310129810725704211500522028761382720177670972601526500339264507295256950406315671988309267440070507711714025514092348332558714041850185218064529607799567687353802509675902273034551114999341765118305376646353292187711256725545731141392732088209678717394919993984134977881651072990880379641196748336826730156536354439684447494076507190575936312871250609471156655093616209150208895811295828835718030540146444725263364089872245937927181314220867401706222807789004477310009587259213414102774782878978969214532157189502631282848165168444824768384939587717584043269942783527000935312237755468912209103409542117409183810038036901001061763569741864365277313551201019592246368402536684853195771169402755322330145054250538545063776602892258847488414874557614878321051010835769938851600598086695682086031523927856927687738954906196256683833263009711081770263592597526289428332004575968398331312190609388196598979871127802428884231979076759286757549323013836844335439909332497421315384792255645106892967838546336482549287744773602021903471987618655487281538810684195729424190018724168848533193542365816299705408114427117567219739593888369306961023607479519251264796695311731746245575784147026971087055091263362553798016319355552925688815049469021355337182952839021577953229028524617253608397831464014137395251945333689544765547313336511440169202665345302438427482630558949636020862803292340453970062745652823784565615089686618993535500378470774634446057822649143465713857401381687197518221736075115449459037624068294086948694647724025740588809430535780480054726120574334555789151026551558525663338254120550777223662615215636876317216573137038693523190996022803390899322728781400102657841638461926777194677196472498905477778622160326954860949954202998082536585391996884792429696842130658596378803392542132309628531926210243627275951247674862156051618319130576359641510299300094483977845802214936181058071329734238537874267564230625354132287381467277753407066428946623463691809037488590189582750754050333432945635098390534079246673560700620301801093344913688299308203009019830178223030209906681765030940698088393584211544562639566433187062724587355558568997563064347830441723457449154651225884254810529810915576416015844737329786189773164743197983908082119712539819360248004987334968788752523764675020752308895323452988054787778814906789171762400489731840417829312484190709103661821721708833376375473817947556205279426163361948256686709056769699778524206355063795347252085024854638480934314925371446797417229843527045220312637006142640101982899570817288142790443108295690012945563328371073715931418942472070419099764767404099525245751899886377817614569522909113877297847812501803944982817457816174567972632131947575118993478738655111355045397740548881903197852653913981133872581549970887933094569693376904118111104073094772834825507460475847065526022547909171741860830987151125427653810656302047819850742926838309877776455871350798717202581297580618143050511531929418383889152593684255843071242334876579137302443525170351105384028801091024635541995836696080408299713666735504696786309692921447314055208718426085310974900463648093665418833147006184137624040960209492223642507473529470668274847428352648490823984691659132024787832414171536196167071842954930062555791867444383293447928823259041333405901971202712125094871577815875630639000080767812599541750256096645182276663715048794671634101830591462848740599510021135628217084460950465008822092508175548629675928817761367453674954555285038677650656705991823578414046617696325650487478811540462708822431518070372582578526773336962516209154735529214597346544943342281203465333446092761799049178600376942722904526080902055686183588757695025493973833913011304122233960260528562029417225315931165573112327071607078722167467696783253064636451676712988192960372458852786634060741616921345484779929002601926356778669977073971178024550812604866679120268084271317989679067610879121192847969527846813833494656168381338701659957422921144975791399379550280864729029603014885310236114095851660805146861207826097922545906326561121064887234727863725126866795898744802660249925131353278175218489511177326136648929627177682610339311910388724956882541024382749849062522607396170955512556704606190382629939773355042038543713860660406401400916124835701940095040397946145441300539001282170285698726007334730469710998172267728828544910530193346299051003220029636420178816454885325799389145523136134874507133696541486251238288859366418898353046102645516078291554682257052891129367079341162720593910727075012552307022066833672627538334602305225766285877337996538183326812700741157916599832303720936002610380841368009037060111223858344205039316483070563371740298143771936938406812088153494469690546890334314537547574762175130193816664383454614358947966576977376722313802660557987574236627958102089390286862833552336173053098836372968748534836513411087320570887272004105261230857180192944698707269365117257263051057945504237110488398729388561109553791592810244696556884078672745934140818945661547389292313321899292061214195461524543491455101434621783187976767439717956208334075590405935638150973309822980195462377831925833991422781358850544765312454191923556877521796457474936811156814317922280211392928027623948529761080595878909821006621864331323904518567774085560832581091024477042241509987521760662724930716590281604687295127161743500163545417593539390071634457471916816173855264044909577581018152805012825661177359101873294075947371835710790758194906397843168892624380190444897415519740519048643191280069639562509145539146660043783615700025435175222893674445546184575760737556580338738879071480984409599200716576310173633539295763199394945238579291140719908216199106280084826771425410356029782243312468157913317019593080732571089954121700413557853667691481206452466682403535777267941245279616898468496426955732707711157311660999937355778487204848640398350971900907386269127726186042895207398757589275070752849383483839240304384404900031565466923037093469310337885478520599666293697595270093916186113445501167530289001102983031197504989203635969170366621753157338589147457813951306299221023201776012820783755056937031046905116794356608935816213892213770664221912445079139221261802221660286949597001818848467726055597851900143355379873187196570295696635830921690821470879240400563506550306766300158714186717467552908876868980336933652149777591830853777527323507454202348268209459977668119808075705712524456831101077238784925567837244090420908386308281020376598714455933515490513685641153626222926277488039035675705897083038863941182865537631765753754097683583245980170573496991114045976340924393002170461747794491442961352022972896041596058433011027071146863597921586416640518009671875260962703313184928159665690383490352092712107998284056264040011368393992691205895812092128233612812440854901534145655941571401147701011736355268547804946338722271686148954781555516107763504428084911087433162094012602805228484231432059181346495335748700967140349358509196467111273739265178558167773032282088384238708019983233428226608253262796589433822250935706182251025981805434799898424770210349205950623919189373555252993530146344310463385748583202855240983247523108255771781329484048056766594521868412536661333062608265200650774461305944391410632976475165303029591559333009243552913757064417380269318375972300297751346379043787287694949961673020628458139661698944440992826123245695757140341391589970898079648486382700932623960468487027451814979742848414286470870553489444136343995773429745290659139174287836088438628286640383143122156244907279980205655667840533696924362162521617288196680902366043852755022620702816686678822833821656945348479936197030280680607368938640474971327996152120731102622909589031959508318557553059673402837009240715071158448840495937166898064987336127580804721816756854984592920361426790322465223267324614467502362136771681341649239246920211759250006534808513447640058501414582695022660001722698762904045451437094975136615346579652537955882191012470761449117579073952248757679667561192500757700956702331735908034309463002019884377629014129576979071516691013008154136454895648605271853070155479670297485625112959526432874780769322402532069593307001940113439131469392438229818492549264990503079334765480280967082700076567469868061537035651399453292184774388225143220914311898514812776398828712906052582207836781202745237069090799707703296287505735744250574939660769935154285098858360967163803382277540477005641595312249547883233288686166199837425038746248811053156455873568226914693272324522982405109256483237245742964096551003508121371449780983095142840270073893629570105798537821897747702858563192631701714556978175242832003011636140583814307587470581333251940165237402043449158425639539238856609634249881079569612425491749914772294961135662616618635886775150315034157350919812175473576340575733770587791741856334218300387549165234605957776753568833080349288297755423986899543552209444851892376595976736319158197476026003050984165866511024451241454138947164981742273492552105042085193177255594347979093784231917210976020661168738596827188245937540103884740829511624635817505183352490270927126746165659996855098713280178997476993077456505845119812163008768956107999341030610179283181840667321683175312816308664427151127150036270753828254641543269661287185990901338641034085416652581715996803632648838113196935540767450366952154780602583289698452829626106102209461124452541157353149454158347042095969828637784986121867385883227857481596391943917693617352586238701824561453087234224229061387002511484225118818232216121649338535656867692514784520413762420516934755603933774033647247019276048504553944411363063506976238057958275956732255287144840454374958043129618559499542497736703467576725733984795943713584540095285817339926591236240634670761844648316481276986726098783662329981137534874804075972548888440086888501164403073243511113275319212822610753355398595942573669449375366150863748848520437792136119200089947342974824793879249733457302702109342020280706283917729204864813023855793087752020756303071177400138215606214831149402536041236075761005387539959339032188531158434942676750314918854365981846228943946434056811791719775768268858979922898406689812777317450274058527740147550090418945824867285049231117428413100192039478056767720055123103687863117928888985432718430240021070810815082534714331490134153085893195922522933749700523476587309627909030927452072164232622127472484909648903092407003851490244924167910495172490847687954614012789506014508687457107287354597003365515435718196615977366653943186596318298799720423172314015750331806061228997305296322574265710668705491023038011804145246917519821271964918679709594608626712867755015010075514792541296745047821444925491991050316624065071652738279557672825927294564630766977098910284241558577313714586695747855885595990700641937061251359834132291113495935154899003499051395296467632551203255057359480414121269717330353373903120750456646976653056822277520451330532975882242081949162198770753669184555243131317455041184949466879163852636885311039307238542638655630529064316277754699325342799163603477708099317091011198783203739709032417563179753927675830279419053038772470466976408647984910603129278826538106346410781476877962907711730021319710913162954830545588081863180265498429430188227313739871679876029972022027389912434566310565721893743992365726353569977865030536338211465786741031196337072370995978386595830335867768547867262610651689647506039100189365273855628758646137636375250137071417407852170024627194600402358776414786751969715813846507575321465219477896144385334238324343079308038244569489052106869172313529654573761728559812919414411705960041438104736765080859600477294908006984287394922410642098741681511541590136934737755538090569309400991558552562921847179830157934434263281327196550400762805577307673952444880203485494616119338835148037319024768541510982217779243234044376962948708935247212925931242907732450655110511132067039355315263364992297530245232144676476739528516700250810617818734336843969383392881129136024476252885770272836858466185789535333835036044085733453803438248811301643626869028760787543134221547919492922799051418282312253294992066861862966515311980753465953647541592724063659841275325514797440998948491200422656683101668200023048379740251744017821091840905495277162241706562976306008581028680131467573166502275693706521298660803914593534985364302048147503563528460140655222005263804709625570745674450445316148341608310166059896213482694443709148398510912184323107532020194828567450017928657037662529070718286215820619861243306017740888170513609033667021374814287471146824582967923140784244472207686451712142355886839115319843937279707564452454124584720550507753925482288330718389590670193928610411335479565847613858904181965722947934560507154300057431534093239937264393849605266257941523848642481842530742663337461801744259805197835834794362772909613054235241404809831099557838975703310590596891775106546945690868555484837191197597418492107969257353828234940257443619799692239614600821055059357519243210097820315393530614662027917184932817145713875084715300525727384460405497777206906096694500753346196283875458837221900652565868072630226892939105093646137257677394161827885749376587450430457818933050915349568218280914800095649596849395065920447172695421244630611656178256195204405426562639332038148808167071025940744170154628732956248439293471702171541673556320521394479370361247039841624684840315897864261842534960421475556002048328492176008750770722008868582492963637921266083136851849437526039753325840396814527687653431427882112963506010052733016776064700556002715779610754620084550292897704942393005630033371368137870853446555254096820006594785899564879003679929720137782989301430669958112796398806928995194636381217171910821028635991998709755664106571437436719274302679203608320750491730886359078917907752127539020725095143726196296596093219579772472234423279764818517336961651837097621995549477730268646174411637984543632400676101232946714563405799060262345229881652521508835364596338259092256975012502641018183487452761522919350435196024295596816759777743837161945732777043962975607347607278080309756219888933238204508630661268293783664349603238377711687840988879261533293206065868086768580669549862538579999363817270179782830415720868653353328897287161592402191022958665418118192682205577768565081292984381114010132989618405576567709981244093445327478159543184777806635598067943027981400437315157207256396042068547173103610376894504803692162467073696330519328802376260046937125858615805599844833958398146616096876613388348820961116333376562102824246768681943585561874262351694432526540010899994726472640026525861278937735459794983468507846221804058000247644569139883967772977532325257415597067875845960608558944702340184662670752266195227592561161563321360219521553437559652032955119661694312837070463988543076681671767377667008921032810657422868693213143906915577967527357331906552752119286388830414717700624866066406417970916028033771839953644361025785565498686071790185993816477804436688803212129369629615072558165415706879722942163361527808608999917242384027752786635184291938649372913599632789046331981970776672765617860823919428631833840041316304788889766435208912270755616117090900679742755707764621411448153116801457119246597399433001427310926858918961297698854821325699233599577302509437750604684678935168075089650664420756694593326512587776587895666892454369323180597418275525647512779336559795638678174360331015757393829157920719562246608049729599538139972934651144084683798363196752723418224517569896640097738913268429961108318828965072827270763205149185924533306828580570937144518337167011111444389073302465086657980000499369118338743556461365883342886064783047317217451162075347710059261925653457852382787273203458247711575226097617194689868173869203122544932874074863312393559412256589263104878306338152271575622475436027429868097038561269294015566120770992653006496543764367232897586123172965939559349822271005194835106726114988752525302174552768898180038098193004502446341860225360133618556141757487131998834761349923099031971504648265098058312450971569360603059551105653079295803183858572358151184836473172756606075940614766493369664147294246930509338345539948277712433586590863612270948314772591237938758345114573004807507612651223953756832428031274184281331160190417186941248992943228627778700276616476898385224208218540334604131683883339327072375446935284368150808287368799330658127321132105919154489463906060869426868538526478179735557394240101478445759104449815092452227442206462875354143919234215856490881016805843951745670398949676201645459474371517396937286256573193522009385954772358379976401990023403200164101787521869652665253884098165962077399945386345084187877265443668044085907214452817002431796597600678848713532044606462265057207366436862632400202138064678798073315591635003174146353309242055639613376939289296416336535467565387435064977274849006390974092253020765431374689402149266416248735352942245112528879905431643837490515861753522671711075731632372585782536215951850847830608077753431741832367706139253258599242268294763741060969853935500364014446758481703711044744679609352541265134862901445055112787164854335948999432651355994953142961640415483656017010382956792613330720136902676234377422223748483419659771004349323161061650378346338893059542388488176157565500513765675394210928852758145136797067261281768912187337065713918003776106074469406681509087554740168377874426028936254017402496843976599555025149081731595427873667527513440315125771689786861410371616810079911585600819097429448774375718372225927921949689853443536088699519677024898105068598885799048362109506303188957465905020781807082324941852458004323900166396327841373566754107079660351045839670259002740248247959288469551653011264699257152733288151250428942012514749533979117789617501494073917863595455555329376788202720339105434726116426949556038105790173111272053421467672357662553342644346008355327683725344578114415664767937412775328205532561035740558240072957875231047254088702284103968840473884969703993211651919252292292859849378585862832330033439860475397855816527913118236416793591139470303767248163327332095983984249173897395442505152755808053306637510847056130997349293083359188698303735169781428637278778564099964718450539649394973587716796338348079075490997411679787797455972999038539772016810586161000073032858878718507586937032953723778866849034928677789810017093577969783104724684528949286711923324812069720035712718996180687733307998067584881501245082546903937666300832443642794082784843540731997787459274246748778422033492504417114049116606634962035773899263038799793428770396598686276320511621817440940422894536644917868605303101194696904422016893624930792804126732219600162104545535475594769501518127572442717497853359074300244000190167113483263344108410637772975842513893738434945825581941087334142083729055267149588560833839591252726190492826539842728912725531006416133838979294711594891665892662121951486983393987789744210100944913806842064853353726630556436174664128910563722889424887198555516987896782118413867086087833169743025772208679661438902964909509876300259972058353699480582394452200340578846395408877419682108331462748670583611124088818688005818761063704681148636682124422679519843750211492303047384346292960683001075619915655889692658450824059793755337168911844554859333170211253550912499053085223202224911120601561412994389717355568573031066696129300945306510793042512975825247474912049462850453450250538290785367066258166519350946807720833848851546043070273847721517099673512099780141279282840341314332233433774350347153411259277375168065285704639879432919372208646879097001997781728544144843473567114787097901539054261976466737736868350910631936996351581504876922820459022274643676861663593279565633880016881316182011733776823529294945317113996128838687930907318033266235086511091132729596389875922246809919434298430529239798799293662812379193782308124687209623425496884793552221739332004630904557454047902511489346245641195915687124096281268391314160864691366788150201321544302191756123605923097188404706548615023461802250312947025588179018320238032358148933570149810206049449703870004334647285187268244189264622275612335683199081543810178793152633811284748512248433691927260618017573628291830232954425186136597959379776965010319118579304514018415125934274613106666960594236840674686298218975073748887809684167990373059748040232323456401008524471469207239576319184921136048652940102609737387773901566251312331448373573721807131684417961384074652863205260357770242014520133572990945577768298629179446177865446701674188602881157689652917494383673824377539336845816178657589948879523653140856762814907643440796758124673825141319223503816521430656748358878595474215225321455967987110136046178965215891835764232473459372297903927196737749864488817425638374351469444118772663933909034315063660640606309988506636713625278780415943992127516711256191579365933881979236899508633661042297645880560871413349908803706831258054167681548278604322290016977006012992481019224285932897679257258260279841169721350136375280322141898925285795267374682079376373616802327022096068131485719134150834178641368501346691748772951769143479054846822650958029183454026254585686400596550906349396375370201382848303280379982701213288690899959251389847150635221583791250024821331530486223738033238207230811649632767489769930329168865784046100724219687755331267927341312284871895649909011979446390465738278740298175032655592521500948927642620796645112966473030701423950855576808320989520435071600493815323452998904226178201056994809470945393472947826735384890930303413711201042871748878577099450420445875071660126861578607520931319868505886767886109798647114296327002176826302858770087595014411250573568414792181345399062886897464521038140826601560943697853092047405691311585396411034469054379122804443104191157519586754094734456959129260720893856469986452853429093376150625006333854547743558728769942090814333935501432481174229185332758954108219121628361977416706047975240758953822985311205742174409949311208043724563005873709265429937599073428964543515804145384321382181919868049175461232537927956446717452372567991474827673438004968322328620866012570517971106223084999650384669809034320264792681343439118979571085306216359924442934767658456051413545995077016740409043740309876999404613290456054301050981521569058393226895392310952959348240578826703813288539083920416464866460107867064562945735431901548941968605941822851919400698784614616401743599326469155110775849239465720668709328110197674021954389923777404257006324184956157893359926535019724836258727782313012701302865650811487653445853443819826106448538829773072194070577016043834365853794853987702560317012285107584487947692089691608560167485984583868925150370996316286693913655223269356860182682999212107903394059380235828738483965195423361194001870758012358011055763178672931545737457171901010094556247033789589755638373945356022980305984723880117814299877182143964972561047445912878674932428074614506081539315106112679435954479123134839601572854761155394612221841113505043091414448675380346515694062140959385623017839546868205251848653590216912350129701798307206416612583980862552635527432793875865273070083449416346672942576669931641641370063840506838000331551003780929335181249479118243350965075743495654020928960881626014119364751397031305274453615129915994422621573902668021420525546539871837334267012637819297681346871610410161493478884794880362332575350741354262763038185260486756469698691212268065633075097952636216204330557277843733780005341173960674263447619818988503805821412079492795283970432415735194612242816429489923327680161560673688302958410254388247778080246268708863323310370287243605940774296389974674866769551615086958608990755900770733696105294888460550125036651716049639890895214885914338379437759836275360406386430139792665247072273505452567170616616520035058638400212305675228780329936477705851701666954936626613281600135317212053077339523858311888739546546543276116167091477232641376262386814005927301260046600439757037370848011318748958029825209041629539692418581640401490049765448708013437990969298489908704286321208878266796673572034050235062981144806491324353016323433198508042996574870378839330260587870825995556527622255587441372537728299151524893751737314686663642351278632962394541230186491721669906714035932873326237084988086898695802401627182228778288033884455475612499374159242086109146033870515910955810199438791212686462571919693707274189734265131117742058199348922732146807764214882972205861980335584212126162384242705199946556471502826860477179496149243299095098460324192700072727085584273642093101730990744074925062238979608626573142733817813266704919243500509738806592154003790927454105115056398415850234068344129335907663978614590127712477794346384167622187516612919293314701410163166582301694085814758786726595413691271640347094699356956209166322406706030387321673345606285266951219439250627081001640695350135474616457994122266573567369435028276775805437877984017176851090640829903268622001208554195308429606564645257152589686382637560674512517500090589877428393523578128156136805851134359396632410571763711120672562088529425135250772898304827498464752728074566003541072016440310157140349713549637760805707153674120585353561065446101227349828758873898344589966929692763926240342120124173768742803061418846971299233266674621756164595033654825823575478691523372294300751848310194352528452066207997396895983326151053606130541399786907924273593882503650958970067013515742816258654585610641474738317708533980456918552264991092882563414531327028217131645616174700755716909777400265555516547493672553404093434684636548614485038885618244749303536109138732515183683950912303559063547158703072072200761429739096363113125978181077104117756644516174876775593116610081933606282335556799885890766563874169484513041718777759396336596967561657901426474392758613919003766482015971872586230334795244275809936766864248694312575417193453192243989675380406404869039951540456048056610087861892825812011596789281980565175529997119588396966034654924034058340050194518716898452445632063615007353300092256953583296397789326261804756211004507212692664809414813332108787019945780292583988255145419561888180213431001597317522501541981850012767250675418370841884010166932088888886576806991188523501774396143841030572499102659577154718672908881571936702361771152424841544416047151181554785385658851308893454666292192824674090377298651379829439656226627535016254909894230592422601341221037657323376949354260991434691703161652552324356510224946264914075648816599042481629871293167609918220968783377873189910884700906762489032384070642596255890814113896861197518820258830829640254874598812275523758187139076533708018409966312759723464672209966217680609598189804720827177926795882211833108000143797636996284527904792053326986869991700052180972487782177164537948180550157052612577735837888286547860217148636599659276111578845224250427381477075979249709477551843663535879330287545341284507365584641501426949068121906728874292727388782938850266760509765529201259487963938538122899022572681386518899257082962444314152692739071170992900612329136881432737053788130715281734770468561984777529762600529092126755776322856999519808656584023309482157692776431760242076981389052219844776195786091038920584133093164946011724569001053332146942729083398560929733642657232037364785827184652545516785343284478154960731116239652600746280603686167681823616214662770743302874719814811618095825174693943108944822327450109872842062789832067570545136443265984805403819051577368122192324238901095996943149290532329721853979996157821600157421557869984547496511680776175703990674770385540666880060538096875135328900507981992620657809355646845826184500241289091431638691672228455898578435330477429705506121833684732885766048182272589996012009925608537719414326124282112651143418069161443166637194836751446084131045741124105090399240605682047326923882360211776108143302649074515850558241227157809801283499388416326669609616806639966273434816540293116989497538577697222892788687394048796942550855643763526998226860158835228209929165041911467217433586226946097162832899522027410762768051389540214770747054907073168290901376472428173970303734603861281144175596801629695192851054180398281369681741468119731779120056359386478318540957611353018471255975069708766254489234904259181413059505342852701901666031460360411796984167691182006418348325076154126241827314624813245463934876117698017014690385432210423815871002299544884598082744560287157639294474384176235744664051737091020473021684847638250715353156944928390439484399460649927474994201868298698296392368500229339431482768835745487202741648811701231619943273198021787646120403228365969570065047526391062903759810322661682846383959718942770360956455214435460844604725221615315825712570657757974983544957038630232643649516286058586311503420872221397644130550472380897324410255932235849542856062605097626568186493185633102210512020136570324436788134406408617117305458453594747681059742798975659224488123172084068290436907464787632221381634350706539405454793981705414117446798185542419306386481362418905198246462037613224110837639166406738653562853560700853084292277765772020360803355199680055541367606908417679248657020985275892876378316116163236903214305568907056591018279545896979878235469387939935931799719787581276677042916413795832213987684057746704081054261517465322111768255874653846920976582857083516852618594150752824880445570733237980789467550652726720043421258216438401615154301225067628546455915827226951211295294742495219909300667036379067918243018308228484002020865480486931884677593511231724114761428910535795572029061028842511672137810256842802970568276663366236127920297199180291549297356603063308412555749678142787415064587034566384511511496602545952885837558750668229086910857871363040942939399455443668000372779450252650406789913712529742057129961576235454324981178658275769691259664087086665071676650240126934863165633371442558544312470843849021579845365760400866428800886224505785809287194694202638610855859270045104063467149917033691346373923633191046541259369023968033552659613331714331909001766753498973526791319894032704878583429737792324740862773044778714694666346180241412865843194681019429841347200517335888091322889406883054017443276783692174901574496727000274634227425567964648608849871202456395612251641654301067274082069409617080399647901077440492026732090919878938990807664112812288728504884456825102604978692081113010993046591915273327381596211143343925534439428211777807665746080446524413608074254759130627983939334298342452695717058322769088988172604897266018514078070684722123771230274786589245937800100714925599529161624312321959284217456427202833390788285670070317276516860436170652449733043919663659395684130570477675346323320990093821137982092084130637245541861028191653352426512067872346057767301377984196507895936714301318725955390853610725225821049431118170958342627610936098044230674545964162545450687216726608333440374763744800355345622522884287627718004133708812365042580990740593393123493533908569210375729085849644522425835920681263414999198487532500116650248624773913402518415835562613534741217035586839812365587512674227771262059407849254674034944681387384334976506171755308565729140813614086405700556577716819911639096843690281601163451391250701778010427033700931367489557538100383272901416788820908578026118538620262600857141701292931500713655809021943595904294383401389458680254184628639856029949245172881177235385043866093029742365438303103849277248308578833000482011888758297393190721900829752432316755852825702179770319695173811132280519782336897283024274049417489142885340549624770998982775051410384277938920000377573410940119319699927209689283852827380759214367137929737104047696511152361474361492756304179532646974974795183563430183961032937460569869294107984559214767183332617525130416756108426380921096272080692609919712929413562851875033735173340755112996631468996464315812199687473082384968107739469487693680545995173761899776798748094008626799183284098796790930786637100458958147798871783307053738601174111901231074077494500578067321514470297069121525937352161070585303441031856611650838993566399400669525035031161950439642531702163483039846789588676168844811326586836635633213650890044159643907992392478939163705148647977133895058571174603349585516360242684694136810574343618394380007068910012716466584019412135787291812408454710293550310553984604644832932892303786587037412368593811360872158599881400288207027312319382434939173611759261821677587374218780910297871699733140778457035019194647312187711566947971800900854405475513677034045419564914517157155570504644326106382747014210355988814109903824886852987316348337459663703612503223159535202575443334816990982777672576838326826878441021309018918478583491507971314611787621190708187769275573621564437382108602833094397676909441023037793076711642643754114542362464956842024261530880023860883633785357982488988250035285144230270203789446860808719131889759907995046272626269496846707715305805256986658979946642970598637221025839755994379676959613991064112131999278099523413872723357087932631312459589663524442610889749896000564555369878221284981563271708662547435288697595629482670967021485486666996995568733604670700548236976133964864497084273080224481282214046855917758471021400664436894522990328483054772063297301432587908737646198002201536126537711374414244878798531022310800330548547020739569043637709801691390595238256726271864401422905967958411014448386159143326159766240439572676098110693868420750955036100752145050636161542401605544058456726969910171522789894691913636147321457378303397025431396071933734662404705682036235782790182877088564686424575627265114271955273630622817779383049828168012735963660821882605467290810891547997203539451461873517553080979162419058656931448617238737482872473956671899478633375976230717472490963049943427653277876525582938221436727144756768404405338115498799465871055809832512737151021822633687095738828866199362062297806286137693073787978496991774511968516734660775670328087621365614586023391024980382209585820917119215189159243867068614481287734391779423288675897467323395842429237752076185689669433667387968493532102024736184889637270658514268519192881914787320853382317264405799857703130169408634846820632031349164909924581682250739707065400622932971248996918892053695989333000633846301637428803173751149291658516046828658970834813374643004337731813804104055494683099932622400491137293744565795279595867138437246490982021365884484741149149768929941658400625043545632558005432139179288905931838645256961271403301743589353590606290268108964913605710937070473941740369000916736858705083731726116174743106470534487103845595886531182111664697781722566030616648455127422206500538246128073499376043453771410376494018850565869216172362313466739458493561485400019941983294407097055119195410448305269789224361065660143948713577540744484144448457946136746225747915924888266946796532316465242321712302921043927954278489091296671717029341253681849006571275088584747791757364156363591959408671366676885678207737223428245378209934651317998448170700365292084699606376215719686341778475177237302545880942786034124751527036404537193092269567649317619650508795474721598036282418115907206299855237210357935238715658488163512913910514498653915461491210326998853358411820171773602877867858793548428172519099557640887897586083960987644168187451228551752379609570422809284660285708921675900237505610810931378947329445171532042534225886195419740209948833050159674666724776830028663199901854275363820320422871046555925820005301211629024104898554415137269043275919382181025703025144969749114624770208093862129968455241536363806627152484761866567956058837558257539043003265542073348212669450745324229640626798550747558993597548042568669528346471561845303150876074298934582454235630122209561693040649401491945037195767406539239437230457224352928764274566123585872050163671758146141675530136977478616345170558655224950575022245807822611174968264530856665463802258125274714299742276756153730439073151794197707198706281313928497031945039519578100817199645848523720539575726294398548547496600890673172902595648588377516250888072646480615030649015591202332836788599061822930140816884957565841102405260003040224665348083428255604034030849114401027340602873114210447967771292836799575883262621234880627508491192186649425632927852738677642523631643101758803593469179261607214824063428919523872864780862603694061123713791891773125189919860226341549264152203346944293150945442332944497297567622345654589891893237530323578729141859132888187651520339290575520064607518482980136850112976680560365499819843550360867395423159417392873957747345636441260515749701145567860758018370536885930318593497646066017228647152607738082415953881043859770223093431535072997109751516269436520686175498346271514191213279834951200767114220345813380645760835521643198137462127098833002138588036254149310479464694564823715366144660559313149449885352435220252005353534451206508810990499000227741600324517096214685176638757963849678514038730839388281638692081253780981066453654033864476932681043000459495260128680448687454753190093024609814956924171153606798602960589265900504134926062558272853322403473200599080385457299992470090129710181871484884007623667532151444372836192830764873978093879362680380890818896984854887501428105827229150300336772734514003847019009314120678537422363946332967605848049015733864126773395934005089689382530906007318072041165088765387835721250833538204226996677334587158023573773460431069980147177545347076020219686801029230925376625140613345792273880645149122076485687935040188304789613447631667481230235894050043631560728100141426663008618017931423750826874946833248854275483005316439673564674861502205281726930473814822348315971212093876521237591973562821500915486071819095368686572623507925438058762218911808072537258531155076403327652700097671272102970293514879863894395545555162028026821016671035228270066763696357647553982516686153304758630206377525546938658310712561473538253280429703683050367717102639260833646353997491371653527099763174479286974606881015060757551049732197335156387845961567598813779800982735168952184419822033741156605264806917288145746948367682458057439511664693413081477541692494433945239845952200984115504175953503075676673408236421530990193414750668466660159728575763414037063969416888987548568193649983484067128787814197336343827102133491821315421392956784366054684392964953270865575017782911244127445774660509313565957808859179297321357328877547768656566614072733100333851313121436251919603424037142838121047134025417301460489591364725045392420269234010168427037530621959899397730108929458634259296555751857823431192777034562266429475101409851969572417065898058391959579030753140137733708951286544574010951502623264000321780175310766806226724760691319059190791253289467383991313344108386755398098167725972861516407766159308836945617029709006934012121165985863645309751758115038999865521234229932204689138071656876526253740831502023275154883217961214934407804571024587608903730028934857801438036980891663535305190965446918548767890420002559522495106859570724474147160737166394183054677852692449272106919282937514335609962230501757174935952661949923187180633144522686961330322987324882442851566023351757283058113914437976703595704002491398784501019464916350716417457709193885956268849444095314421627521165129426680356792542722471829876674526523001804995306271953881323990667206244930562777377339279809109251130130504245605528732515110501178455165708254603236739108743863344153955018820256044627074719441940385241226379579745001464118306994580079009941215033534488800238128804185144908363325151229387450848382551912889818568264333120927328340396057274976676410284283599126837180933877882194829526215230522964540656841719224186551415923732386890219597343864806359301019312842771108970118506141391464558236249635467914695774097979156177285816552531010147341131411565326076827101619386923947301142456628871213707938003467653895024909155356984972330971260000925278673815912908686346618689324913415901633069685121543617390873189945566533845705572956956949515702186248539348373964700289929120542437839443329367896172121889686307386110061128275518315983527103972659797335430555969540636189753520818660946152836926586592987417445462031239533076479288137196689857788323374430533441060597061026598553760102210963183029282335078303706364301152561131782222506176151183916206887385703171298605320170135091046932506003625840069867884337383539957906099756434522528337649110340228126744710546035620449945832138464618464553050182605907085415595827661857534667818188584175895600691993765922577161552532842525778392312976851225220423438474144625663180192112723081342455935001366118638907171321787767104800912266506691460604521075696540041553931097853242264112280234466955941564449476107025902456885303967135975099419878380272678540798574393606304358153567368585712399207190227649133663045971283638918683553163515794969707800874070960060929918707022348606877166907421937771089720842760846996052210391903494441082714100855199460299179259789324081289584669161432486520805066036309910272571849817096195661104579147922100863704639209730552089512859575332210389962025395000883367724254951920408785820289634749148315915773391626856843940105617633158776351541356411829519852226471515307370470954207596050929323880746273902905353498596997144527810139225654260011845461669643147598955769563672815270171556581697630460938965053419203530637360978075418966825443855542198911949237983577485654719301154762289778208992447704423349921897584582850086542117553675896671262176128071805947405960823297139362593129525900521939031150514963418107499657698045076492307783352502403999775622824333247045098454952573908140958788056610108725466609433817664948738127616461726898161742628174109072335456980790918454869797283668133180551295926872883369739613588577541071117985991732471120143324966309959102309495794778142378699354568012753793138357096349318293972352091344658138768347938510775700607923123885126386237896671123410418446526744949600855629429427668674965508203253617813895136693275726613042314325432681212649275695178548335441006756515737996714597796282718915625276561303096391164723643714237005964143248688888401172455651378334256857406449283411805945747247163546709992578038791117564691804061282711148391894617028848362186806896182357173228199719954863809268959017870676504412949496088631438397301053666042787127280587077112028639895160735445701492497660312617948420822520170817680960958691206215360935865681844612944101837640312753338587621780120004350426449428507470541797383616724821562194058405174833655373780035252900474703013384446643621055013209922447545611071130579701757686679071455317400043755090972765181519563568287341124914016472481257915510941415559087088980182258964416723973006473779043189500255560583177531120032530596765579432041632757249918997609459160682153596876043138010450392037594765022105719664647273375164607859600128434125175840567221335058692052688990080991173372210767881224612449965403035969365068186958985790036296594318693274270537467007368485558780325183890502476898627581896612116884784919108952077720327584746749963013856613154319974782222161664767463810896951288833728972968447450149183900433487008159458219832792020977128704998046503136394301908163776125494680019328115869168094130891342023879397774260582075317299574723815666131624799769546278888738958417067046763280821567659715525920807563524350118791833222576368735992122921430988624990225855204066317754953990361304704938025698471272238900325509327731693974746477104480968707428934152586959338825819800651932308336901028143094077739337945391160919894025886097908015657274133413827418533372924459818240160430683796518611165507424444346701380492154974343309539878196588573630257318539339947277352490743331630655764615878564621183252643235617104443348633093365802218105608301364391803066901101757336928215473540396126372934187732293337393951958317451635492837828620812033300315675166698805260383352008522280356662565749387055598567146309434465197468189889410092250491968526133512671117125910528303633268478425962644889817017170226935962548055774239909636896280907019779272212160104304512473232466845307041137548107142885828199370409616356832155734450307350699201376699152820318948705103639578823487182636124289135201715510581516506397828190859337916557190857580804761988860854853479598370029044004889829918214563976731353600853192344231617781368182494670777445835791128563865007572212975811380644991142385121362383251343542995980498203773329848074396431107578905864395318542628428758103801258899384417221135967401710360906326700533545417333332133097924216429064395710960549271771723902511179762457227724732316468146668512119103661711146034030507880765747982721868063960277334126967062907264022684965291664532580602166517390002054799243323743837711395015934989973164943500266064088134798337315619481778645735005495503758454095418792243536448696733666309465910129263588465049818147077280592469336792389241512671527543229686142914303782215996181332750092025543761715122377150592496038330671229387859492657819474481944492478679735592639995986285940398940569364353728088974235487972899238738632989364829085806611158130166866614567781949655102768369276741285575093619958313763596110871815777658200534801012424049477389701399758450966842703979816529193966909719280604650609441639604241612447243870072593172153339806157074171398008316084941392669588615470132625221730042659474714989146305041345929546803791917450196480256361669171103384768962820605435525321935677098681670582860760724576813281601687280716100471104939537503506963561960082721914360961430022988623386927394448845505558262574468432748811342741056383299607965566595121285529507384968583274739743911090785189845983712964538838808744330865959070377856072859907700115551293894925384007611210055046043689804940432511175895140934478802396824146870663829015430010519314857628066645905492821361581246074473936794279552538629987936458995871238323441712634630726880327588065192238827728736687348411191624694494335391195151642860518794116878494163464750201826784281361557413484314221465983354788338466701909210494635553548157602866835848761991104594071518776588357033109233013781885261014399754862801093488708143015041656965303725608745152959425433014825633057333636627478889441675359607087413714306696706729919871588371216177439669907221379174638758849057937057046059162096549424114587774280311082650239975162491018900714910680658539963055448285443491191793620900433345243787490031851434161037086628930815877807428479315645814498939995851370927699086357277298450660230097056175519052474488584504843612005856664771840349022918677792637192415546446466946738953358034718197132759596393739048299334676685855876111623103595449314061474623626874060237742928385937858025440990511104138677910463142619370685707482450733124330849962340506869238141075359415257067723864471497395852894640479762111017860327544146225549172118831062115040353856404560356406031322858791678562666594570334773921512626774541133225908631383411081239664551312591174397047934645680815076410978216541175329049439854205108044339564118735727397780703003830309678762223452319601885472323939989474665656180575189895153289867096974821799832557058071582308935871470774541260547378915348777427535799218655979427615719149880603409287593726684668502335371132077956545869143670789687549377712894388939561528291166257502543448792146785399997021013194168187268386741735204782010418155780443023798861168426025077379651780472712608726249315410633875738312666268488985039234500760873623866841736684461529216708374469023361115190780859686723512949489420844869826184076788475849606803368818154451176577047160683903172045320456029975373005964954518292484860968368957739711422416425951352592035247876352616258420007148073415808509338326098680294637801862531475542280233585367364457615113091246742736080085661481042666521163704416021887367724469322150400794838970842468617860440226421286002482738909619756189402116992279709909835543566970281067595223541099225301454159748883312764105926683063066621734900770349575774921418884615414690088191050550879996879029921578723511251916704828219313668864753392000598389587021242927615225245529552944697280557892608782565412416261494268197994434299586717793525192377862939379901240416733250228622680390150823924978800057914690458760090516974268557256694978126737310106905871405069163191786840109155112800438258468102574581844991331901157346499630164019674799453055003801325266169101646881695636496016906949785048582626741219496157034126248971794738604936840676754911958630674713800872728019236238804214125394600995226259347325836615499706591887948230719778968560686226564444859569125849986286665484609161745226559091395363923832772991154047181853978703840845560500993579525461800113847873426216068367703243282146268577530778513012585421934394821810170782731651484598061912535710455661649856187769916005928766197777487168804645927646925796425836716228634571041417761891628833723842175778830449119275636424643176716613989297876211313680577313612324143849225707009638604209780200281588437532783176273108488828642322004187054495685814696342906104505229277248979320511394838037854272000626463121252656231243752937101369480506681051061865130660972715186340808098429414656362732103234885340413853537870916091979277404167428669727520195719831115774910585703770286365208767377946913159184640172489858579514183047188165820174397963699099165027582394010690955797347325990613678642828804866357203452176354480272231106638364167419641225591879623552532953246673448615572788369228891363644350420646486097442112832844599981359538764857428259333535807371323689475676950036624119883124371356014772198454952065718752276526848408310122236221625458340674340586304443817072582363838309575760050558311629952670677098046833520756370998141921387405274683535756580724322187500346209731762654569004855273929710443055084768394222260726056403000153649867183057883506203312606739062072895494938929075158700036057916339538255191758804261351814115924333114266019120966280318190142445699616827365698154021140320147741428679396915658886893059316273248915617739948855229769157688927538754517440679187756032821972695893697930501630502966920637803882474949009473821588091522567672710828569497827891204381072787499210866151083145626408657026755082100115638384585979321110197324430438685767868454396285701986885281277829446510140936422148740924894757975835827988376964852052206521076482305695412024479736657303784102740683241703811854040463308018672078534490416387190435458461368720600855367968944854150905919069453829468398017624393297314225419931252004987685496562588382410967060680417542454414418035566564084224309059849751299395839122546308823726483350262554082227856909873859304272941239298352675011164259570633698942346734589567199230304511601772693622349648290387867688702686126319631970889719957925012930227437978831723358296794327456511000934704716048872398616758801137078717787420912899476032772666066465737724136218356658304538919568662996261926862235746140066037980776431224382028308877586293022224354703589047017468728355956949229867753988196374725073290298684851614859513996240362433769232274018575935412633329506948494991534183726450320458287071433311875513339980670675406503109272036647904643039061121340281950533855896700888313961183042157644515159845125962148115886916280076375539820941778437336864977123154752254131975667888493028749647157350671236737907436535040085310152975633666426683709638085151744473068869072512348026394555225841516728082350743115019332744596586003385163484356119307312013371405323473222162514964973822439028661272372008768173094116656240651346132307560941344140874687983466716422166779057969211695874840835763671967543961094954506584113915565219654960361283719253686803754621313226677297779760209064660583113616769423666228837701688754139130375488805192279217624829020331513739780836548712558080123927864216242463084257533115345058279143517494497471677712246166641082362954779009230934629507253256685752914371362522949970320052361409554221875666866841251339581147465070660288990716654660268517313677222202054483206626955560288129709330730716897356267999851089594131303111746127563130146529406812812680680741328165981716587591380528729976382959810019365178317707282125719771022926054416134295885211686534170239760872157980434983194751317769515903323956934115275894337485340872187623971378268093823519477033348424411742994606417996540668994686651540486940808883069763860459380458519845216761836187260451987213749689205761822778817062890438291887602677081104304448808070337249620238151258824204605520152993240350552219738975894392332886382412904080261782971674333789488005983611752286955415187396942490783621648574743532291349697212429809923921375655753867448805637518804806764043945362265836884456094981944479844074228500877731436157273049900461788313648002564525936271213338396675426529276900176575237998381599391203744931303592052935623668809416136167804757352650776730324438573256543891164308560440852128028562291248302961463928030254735879263682923450301642905953220565738427373806716004790621615560034142400205559614421850153305287903273733776048485228813394007835083803803049989140067575537918803794308853643549528247743669984598315996730970743975615883285761223679851163006811943430561816170825272449784505263834781605279809531696158456949473713757079883854431756362167909312698091641138038947219939993392789391075045275101096408047298830455409383119458444775136289068847025725898544206750582659922980130209635141066279737078369700550513266851238579333911445874554978604187806297301050771245822185562500075440414652197027255242212906956788247486310886167931878333671942918230807982631553128267637676573082814454212839732770160797556077796192563254203619634712394111813739290064625178386475907394251132299182367354219213422953360571342883841895793862165983885107882265632592448945087517077629103532181079150126572923919278112578148107899682866203096000619644525315828298932567766897741272030012264035290800893845212090777665325454200742080254126628531132300595383837143552130212235797196903821734742595563339745697318604796261356868666789893396900862922486373792537977382499621229000933794255145092984481913397981441987410809581189088040203829157143960725119206148953201259021228621665726910968435354267617276399745945161257388231891298099708748064818925252990690251420089338956160365206677058773396090032329362601297535640390420305255716955240024841688728375638011913772318995898547892493806900740991664091953692369162574474127419573242454192272175678548817241882742114642567853541098966698132846059767125653099387444623420144694148200975714125350044510703524596309567060597787242583043421702470207548298268546192887814090924889434306910756992606971491284619554209242480094300220847448925701800543939443379599467995937942433164092742261269695558823140821643443608268302155422122202584247959329731868394538412965233373202234126675343279208991281210019375240547999458014257046738743348499143968578632292919378385339237885398774260963411079577874439891245498242146869428571674128052530742471627578492052245701315048646079349088255052452072962675303242337507987760635825680061291905999127072464604600465161346211766982521840237106720247751820612228783543878356552656807316005514039820915615809111628026492957736682632671557214614307668999300698835401877180003954947091444540080030178836595156817286029843509795769115775962252922185740971172057535150235774094904862126579191689473113949869411293514073823543628326113671106295094166991219261588811724102504106920555002924396425598740691574834560778599639643957173790569956161447035401215205134214859439151504098076508316329084016170331136860539495877343670244431388320605171001873103176717797358629722797854652951303583130844112519245782025241677472881572462736635046603582917743969555524239388420304184594291279747655449452321159715126657588714929650762815555245903960174395008733924604662671992578529036582716306624625333146748899238077165136280334412889729424207104162282169490574467772645353617300552601587948270318303205324504912766260917171905589767385454989224828636142094614418488650196068706995821221419946213209660794109246455631729204188612376798007698794748214772572011261792660756250116727532932513396266575588259701697427928058137058669701563548519721833132284854126866990570302063545846997196586329990970722609004749555279491955738632730891624962086320144647079230535233282665443652184386070762631385001009359213416992366442367288661357573997234353092550686420286431029482493308150499438913863066496306737032973962147148376062284294795975115808364774675019014909150823529894151751860582144380217824656024339539127357002617976167719521924883305118568922405233110783448626966965789029835962420239252329942669931182065703499811985368741645946476507368300942807261040988195774064276084382437088985958887153590881578723136972997578184525519310274078224567639897094741992122463898163323000561434046206863860645652640200700592038079836536119494399280215293054280955823609842286864708829308851944293423160489316849251096019669182428515902553187414634633110669850786766309180399448152642330458006929197627346892409753057193040702681664434998144010017955262059547872643789508451738354668662566248773284325366961541272754525389199801894661300557855819104270824744606156049672758839145694667142390356214871608390493931593118773016078130100745753051665590976797809566413540084223226572008489121483386414881604566564613660511121953709008781361526267255197687206868159827600073160719673685873047855441313823917579667775874575480122509348788990942734664538925953835122033997583748337969213875633127473245802539943946560828666027261913718521009253137152672890540427994635341216296390499461635397362194931030198940105981267230735757487353052572644896323039104988322412577919336393924986117386003586270574553038906051329952493775030010134210850709162183962234042633093901518199198427815521442794859515199913305900764960065815830634360345797860043884920730237988683141514613854129135342798060874143375558431204785241552822536611403296805585540051137108115760771293403232776190170892666616379908542480186694875559196526936483126063779016658418167102442631027773905946000934627389990390865165672875366178219884440619782859166248086409775860312239166342776658823189087089669683530827942995146940663321183861952387695670991130925932720388498610662254887621784636934255380673704155776768267686549540491586803846494933161556302937460855371092164041220276930995649747807311853594303521118237556345842509998967839940350653327058467655324893390580075794878375320051499566649976855931113205102975172331473340201509069175282608943688722517431062796013991313045220145725888638790555300285592110240769244800763871390480909864687750257172197119249090231539367052320255027831945030181239795523902955263973257216976532104806390443933862378684307935204733413009992346048502521164653171596275673583316326019031202362310647364570053573731338429971097010911433875096309920220062814417963580828368535702522703714545586162441212643630073915226454910144733555490123195739124264637928663006800861382077054017013334868329021682668682857193358293578380627815872952609844929790532844258761471415813435675153456627392740542395890078645636336816826892574719421669530210482188051240760327004708490129702271519907593893964645778144278359430021511405084771180165987642540622273839901601901888634965855364202991917426807541585355495077907706859508988141919661327758719049190546257098072108597662057812617465075370435383104681259119462308932969553810201961072339442048558244775240383506326749887840928992214277082203648586144720876326273668669096455826149656555791632126173265178646717092653059296535535063813437658244657647226678626279904402677610109665202770649916037899132010917538962451330619428522705724491615588086270838757491787612822888072405343918893206870491888315568016572902695267435245426479185737220860324974017927454079092652944893051129178756715529233046353291808379987275299554104060743227366306846149705255551964485673088070639928619219670144090883750828728423437106357696527651326166746536807935535292402235103728775702214064012364866595398875462652529198214893740336464935965093713925810305120798304422271014757163591988809029152783575029947094162780582276735537424298805231033122510732476931927884658616186608028497656757116909933467717067966543044254893165900003620500052416058424736858850182759782976372457847465781660646302166753969768420250181526644060258638156549859625472400480616808159647454300739656265269438743248083316483074700192888325330628404891372138873878880027514040965109089859136827177172950633052264464550503973682887897427073139553465330287811271281829707053154633547291825915300462700734109934202306937712859723479070030039997072418320014406485805265740134985705786851165878989372447937388706209532586814561517910441421587343420959900684363522969500299954493065919607269786613553169334593962207728455468860373782584276805985877970771458248603340367762892169435597373645102223624378643347937847511451331149478882565570257101877758440956568230303841289244987518774419610047833285859447581208590389676597164209386564139922715242826906149877526363108301587557122072630783296311135626051695662315925964028409982407104402785778328385950081751625839811794390528492620535240905299174461485388008222809749367409351576366409219114082523943782014454716099332185833207199547480200551535395160802311484329519087780415445295011503911097714682013599777095128923958451823858987318570644052782549859835699375108321259068312604747358712607996222260902892232045300755954488671461809084638434980292938579020497652337860530205514163739378644847968586208505111473699271069984335336070672918620568023337631949519276738967996905813688016422131243892464995063017734382158266080223307513640173905517960911243805128745322857013963466329236043376750147192456152351159284936087633160100327772619572812324675093012576388038921497574414190999869236363294044407303223171110805681868141892748615560165219262342893615368514843530994500402301409409634552999521359271064097251219512889536491785186939651141791393423721524416195903449452856166440632253331861735790569469813508474890679544000467366833217461317699100977292734935083871882577801089210122172854491348817950958497482483138202653504274647925640880551091996681763717041774400709163888177710150702204296373047023795282583922465722109221431314299925421874090042379389656761366059350637744425654771347414325813867655455989956583048386784513099379084072602929181008828633345648513257979273495084670459425315316638469887770306211959380145683899575285692998859079028391292005993203634632118566156580321438937098497171974566313547276173223345595449688074345752259033384502384724019845530293512531072525889149726952511512814716048965082650386806479586840690784155568676002849204960131854712825374377340055239720608778052581878733351757232023615001513248880971198035358285754486839505044265786924418191584173203751574067554000173116175385304505712847301712641895481877348080564884391771206125060930097919564806816759570099560101731675156468953066190788414434779104111794248223375990815335159392680299080395234678514288379089987594748298069752234514361785920586784843363652921102807847505955290129546654071075125918969927409901404709462766196543175720051971953568936888257670807668118365821320192126455226430992187691507775687578940739768443161684341440689127777562564789395753209577820413131663436529710518973483770391791308493505300473481442477703339947053993024431092258934713594054168033472407844971785361835039243001725268049701002486236645485476742564485767327828319036124538422826572524610747051530504873225129360571352206419229940783376541673665955358823512330486646205947956181531165044947710248899213022952268046498680816750724850045484903020236271595428074603924507683044562759218771391561404609927262658766606486423375595673516893993215512677221129734927070051356587236371905307835494765796028673025150832718063806601389711687670389410288222706193804629250102358338516246216078393058908925317520690447994943309462401913570441393576092173213761208652916712978975418504756053888630869411468512014481593818775134576049785086082632584638745757243453044828298757226949460414333007904133629721964345713271568185695092754403027535180971403721488759397569198164435582686552001101478423329783232758531407121472071586330763676453703206327454133683081089894996635259468330170157115996768216146045516170518188751927450582797085758638396750003770544358945924910178547241735948054963593796893085641239423781826435553127387370247603945859524647220193627277035808511987783125784052429638905720737631345734328216838459975271146679003958259807354834710471923415149909307641147256504255578157743943014416803158524237729417732171224034212745044130008973135448598282844708434403140456312889838743119185117206035344547996835123707614277257070192824633527518463898373724441918007760654422332307191702378546719411323741975580549934521791097151805946183414856322909704392291196095665153515098912507670329175140487303149834560702985117917270898385369495267544153060635058035796048976028399232918695696452830902319961692499036469500203646639983011350978711022514877668264737398152103954744470196107254950041913992675487687547788477331653749629552853802676002311250716509327540204761644815115798278300688015878283614559940360877667323887404364169585669411251339626740089424436839105950225629123923389974283245133152679108344010747194021560812144357256506689622683782004291496749592083020500787046065561043193701758771195298851351551756076508904808353434372988439900266615547477402330533836359383997435605884779753864292373893595268389441138598682842052381007735237886102085398875663304077773816329686400375578095986259283064258602370323209186326675872506554514040853137287324870627558446177122127800788491732216339247481743407762726648381324792189688973046456554000271660001611672748715490817497816802425248425009926861632951419952666867274213080525380700065874417203061393057630746842142437569994214003540389631495024445662071765708502668584405536878439799886510574422520966292164436955517496006184189908582099022698033460565582914718900980023749188181590368915251721473016501594435371935492818423076108100180643111986006568209052415725729289509721793235395971366832869549631792929981032145851482056666276722460513494225001903386516228264705711893240793525693600374791182592187837407399047903221955244512004474193743564077641725033342901022603736397552339473130235431529814777833766356613298132870862654776963750412556612423925919902366436283874557448863866540471934148271912208659552648618623355920960497891383709547722357361240208219186371171064218204502547985400901767444992631842970192639009462785428420239796924021738840455100695050424724121855298687585073384207380698375269368999062284467579456292822414363371535941957827900428771636996822424102903789202309346759885589126275007548648066397869536734680643610607391543023457946271377402788725171091104414936568244567267156025089673544475570834145864234330929038983883545684768767694722352363073655694108519071875006556273773395871984960619128413602034962447926064315484116037511276141951996586249609933423285448776979390532222789533530116665674892467925146117313358064073046609158195116651270534873223075486441381851635585128324749189812286882740370163666816236769168546152731675922881022635522434432146581688749484458650219997278662913531202932085234735676253357776251026914606009060709059124687287899458118178633340508346049893491924573122755647688906795150447451636667532450968175099664361231668070686036996723744890317926970682579544280961937634061857138790615167980329407641435037127188132250125827343764570180152814318751037909777609778934085605301875555603003523630267660921020481674031885192548614754985361762872604644457973797575888794011039919931371060279719231058218271336078590665589649149328032721034122150140533237532588256673260051009622735121780460396362904451560798739070979323822943072365472334061283352741424712941190352766575582982647247186256080131018834840652036186220295705101028157555210947608395499341050886115842770563795241487700676464744477338056272799935238737330769236088483125548185717104993925180350638715321217020154070358835023082571428526288102437719045849524437753466792898317322103302784038067314870621871744664179193300379670587878097502298131669444860585368817050257976156663799259916737606076460767869023310388192750287235708825252021708157983231843206542726025735481655742445619472475507554871812256658508102315842912719206107965688268586028602889456042284863398509401705213095553857877686099964951997874573459068780666021977638796363370853464162951141389490022596104908597681314336282904186500473261840311351801949865457370845675091468432447514939004261452392703967726555762784965578643877809488734188523880343343133578127564618344748619048897527882779290491989648780749133096304173984584774511531968992635955661300435665633172225394628029226631819024012489035515832084085139102717044514958001566325784759036609870295132318281138066069873596250088385462670074358843947033128199683261434328199630707792324093415776661668439387274978325850527762479082968479647251481889282488251760048252550820652980411543315176479506529799458639847483225019517213089624585260003380693588987366625713086372695938901533917590878041331744097532842594710840000521227261855254032267810257337703778046013768141244507933208349401484951222163857555153530691920470519986856472005629748821101066349181825054456948404537108753543769958450213611183049326569702395367804448663227639401539991060425579719669688369451867487491069791112866960511926716776422366981674751204561380478536987987169179167165056986494478453339299496918729925133575684964593472832118892684148632166354257416570301654357178789476965822333725561191649165196203356201556490370491483219797132311044590663773613842985186340065086063797731803328195193508614867104214854075214679994453607329021388442225500068323655080301790022530924514797144918856910118359951618571915818004976481639634222245308723876422895178856086825159777249107420812277986008967524544555720976872638910143862514050806878816486936597959282302102428284881189284904752223178040628663828210031434837061554465891070003519327600866117346140531247903378523095726249605747881661977799300498037201613819280524556951418907993923825737029971112052101805666830547072533015606562878820549144570295126274215861070966854612998473711454642509424303143401822343770147903901450480527397598681512016889746786068737612488070135856859937886495191254884367331086580509013393334679941315237614261244089282876433265674167933236798102246985488309097543204405474695431792679747099489799661298447411390920027689478336468796978652717386471991149374948550844357789398104241571070665601037864786452696020711024285851875854512499778988354320763381591956228608791538764784708476741101636109118999199119871440667611963917252670142026670880035079862712589712576749517122216906286112304575922240473050176194548917228397846100916600264296352646143463240497547076474761621308309201418417595927025500221312640200861427263706804196709313410303909247051119489013844205137948830431899720966850298659478916904006781621483316658235795979929163232070978309034222574011883392640661321182944107096231414230414875501637767220058391464855930574182212790906037492772334751474286150637637401112242970617132693369295500517837755992463433009124984962947936075643540215806416266840082715291045268930528657400497213200591625696960812400752933987477993100390396809914745433727933832064115666428772498920327595174966233766449436713319690189240768218324871045222650136198209364149164759908376932928014264580582260011359230082823406890515480796369443866434366052729278806219453041073040468239465402466394508417469725711261593742105175990293293911308744753092478661921605629685121544659463742295258815498666381115675410849100279276697137925783513181481468320876832473991012453266911960156942391403080094295854835881123624156043699634598623074083891422528524929306247919835909895188989044408301325441225639216177112705697444015718211433431858050609422721523968705954124229970878856520777433621402871647171434173906581475543748699321559607766503387863157498435858507014727604920304237578871296650530650356931561603870397970204173553373743320793148986163357175961413502456802831826638913830498457381270278413645164978641348679371291872673343912544056394659670665143230575159025716566404810880610072177201700096118236993434969032254008457986165341463823990605876263078074577227019841460876782845372894870481735386241206843107338567678378804534587219043722663560112329199165502844828084721270857349355420059776444695070993287561817074102829668765346762278966086784793965603002746369593375761295371401114264589679338299963610618757401918573661220304701767616462040960442587563951900996304405024480147525348364595705958417997759993861280825571530939204521647732798233117646367665848817251229139265593131401284186825546987960818709083740037128225046485323533880514817248074920846102018755536910000583052084941635978792849915527658702333044342325822355590830203140513235438555944719268866882057331191875104754258819363150470390227679617222287625081490260155171651312185012250553936471378681356804647707241863152844399357150254797779959673716744056028087545212749805427811412951691368035851962974107681766486909124015089680407624793795514063789003184109702130781126814908070860672792832637199017593705032891556043105502234796081002313666829427153997190029799646897832898419427230788873400597205348390403374147145371459298458734830565409453512886061137347333633926568181028200341990734863187228247485683439180746978456717452066043748018133716305493772743527116664024980569808467328958242410713002020842310128024420098767981192282753938392831463754426183495535089017590299456282716853597835536269264400718713878613920435672566912049292397875113816046895135624751197094773088282084458086893180059229656923262050226029253202071028340163807566779236706942797965931794187269063948833168992643807462016075204832456233081815066010786352215323656499469889824214821160230397701181942878997054257680255555712860626209023455495936675268367804338855814919622457620992363269257848738482577582794032390900763858690271591734127766508971332409730239003740384906746198027481347952332513362543379575494313764490843668575988151710793359398339966836942561500971501847950934245752664034647004028971555993577223394706426998405919902776422202994746983166340493309745782356608780797803199536824091156073600312012992529375248519744702773903857587042675705207079018271658846300761065409296371878529983801600244856950826556422973194576966880954631964795365060728314448014969221444367062648784931184799700770169151012044661911171699367864484464448485814267835417141384193917935383537845521530031296444202106991095903219554230963490298870433507535836069720149298450415151631046440417572360659945856214041936757739266975685136261454399154987367499018234652047921954704203077214535772069411969914709368427124232091041564411172839058245772902039810207254196658978137566014077495205348365086938382578206375991174989332389970177385860963965285042010318127182105283006113536026744447289600020823404745760932591929551497936627592339656231596949332975436010013155599463031661159922524756927489785226552198294541527078540601339203933582219227792570430520980120199419616469220430268278853533305842881094570511053517954332099263040952345834922543305981144366194000046778882532708278520377604752824534475951866869516348632270144827215585748236498645220249285177081548869392944412279032628550424582267586571974655660897117259858451829475476969538941892443869898048087911155589802979597195013036646919895534730704959049885239243855069289833537443857695739081260497103500632106618174314906910529872923855785187922565645829269797960500085975242677721849174465166871969892176117601232455907698915665821933643643233335505785613471539093188275241627235889441823896391316188596107186367579657568898169736346191164938768774658807716532713905563293368675554957808257173568638882814068369721452761716736298080269524980712755590143446910683507149622511440109198291110139910911726181625500087374809120871646260709387884876454827748378832730434280903278078506140540685820965116958484787858732683912439010679118862429611660473080251684819187523846302837511285037137971573358302123400093108023847396469076787289169928518090805441917080015473873160714927509977670919763945993899072555064719542086586882564536479235673128073654831305027035948341830820912740897605342640724223348037572732462697624217973115633184280385312153695799569533680240890681542246220032663700387092615494393134711359233425539708268904858364480663540358315000254201845680803169428994114892104059276534295222329160916439874315477307301477610859341440883124462150246215194105225101800299566773537177490226946425985645779093086570539521819395173444973059586336594741177865677475499370680278935831199539924236212443963059573861101292252368014744370077418561108305186611386848560980122134815090061735582107321322372991278957312526417714750853636460713613822239612085954372057857183174693537204600196477271784422333416919560043046713893359298860497109155765092427033225193517768429867204593630034960845680325600239095844564632681509685903934692845730952376624527715616999299363843750218255374040486443741084703051650974240580966349690980288402639166130089994139351302086651133451532590692447386444655993948832264196633613085439349138749693848095407360361090794779357426926650831706881758458258328496640303382352278550215704111523135071639462010609977943701014585645542980636594225620610095634787044956952421226531381644154862330944467477343002402328342509818182814897856581364610773034862319510586338788142394437391979719139045693190755212479722659222844834236724930736771869555566997755704214370705117441418408391160947930318329604881592120904463426439582303433207333817972020011322307877929083846146305598650745892591588998765679198836841325418673647819191181399317459546910424739910498960489508514165613545406384709014281253044540391843919813419506583450842310938256823348821073190681329631826207552347459240086379106370226444736101855595764654130344770551896599654971880209414420992328656501141128614296112223673223385401254821416314071412262960598297970009761115641320513937554618517468404138050028174712487367438105121993227208739733601757480796315154377753746348310241615712366197658166490041253408021067807498244749176306467838947774575475468555894262546980978315740668927863112264574772251937551268228812371983450006767424244485103095246463607879052704328435603164823435261009494582244171842832310254072877651695904817078640234167413426532435254322151933835253531494283824922920553419653148287731304723334854384249843130203435705603603453046893369849847542546074314028305413830031776288119579908603684190627756532692149271298634338868592883665247704786455111937796628404208853879664237056401178129690315080398662933125161930221283541776840474792234438603692278692112707599522346225374860877205512091080389026466513929180233450107056555629284557366143143047704703667887134951863236363394876710160105315776719341959929273568988488446747495500899221457295618969191901713826837315526293550199820067193468647099252310087252188012122486473154402040766956338837405051107295331056263308180734531119744735587498036483784583664524269611942489359516779679375025774338898573425634925150751418021806036544522366567203331237148044209723106600009325105203892300851565933905185520734802341629319052053168502923652045922497070150093855998866089549686836673374175053897636018779017449455207022321223094336200611239747612353856920191017607405035021507509047737830020890714487951328526404334789207028327551825356732570491619390154824802403116744160986185898177060232547556729156727928506832565141906391453285208317430753788749552659460868668454124185912767710591450354666910440439567591863150612361566878432012761048507278574525462455143505379610557576603593896335801867355348099027735675083824065170727297390881261347386528609243264865581075177499569619032739888557313475726963974286747306988772536191802339957096327101501515033009978139280085516296998944028102456186301491588376604528543127808375769206905970218737287274231587842491832867644768578725994640939517258298585028630302585299643163128122059976845320035129827123978689055942692854402910187714944022055853436946872191652377820059703473601700137179298358110017370285992792902339659427278575831794754265735432998933197758006696423982800312257815914354483311996795398364903658182924820666194026061612074076138098596714077940176081269467444282329046327181657161764443888397715671103893678281214455291334683481914817677098320862419322015390379242873368875709240839993745792339931625182347150281471996822066870946418895607097128240282390955650348938351339357417683269863433126602064832699056193427001524043172229556802116897157988036985319216236825101071012644657728759866025439604083486761505343270800707811908793514520039638529123594367631373060339862951548451225835670592139492205721643766770124432728184448911821576694472637805781504197341155231653353863381200388206056509982433755962769003416003108826708618020488272492319812326861660775175044702301302230619278382242728206249357203206272777151047469980517949118371465832935838779221291326455556748186900356616281979853918853918100336004570038999622102764473676067005020722627139826576939684331649672925187426572711105032795572003598539393197690754468419337708266006356377780855671300271662929275761246845600805094067821825465880436150692384381461223071482529112445701992076137686612060271817019673050430202710726534551834778425215569920044406947914208755893190647102064272344198117164186757023563557244710777029488526911458567345161436404007147414021901091453954407753092323455837489388905210344447166273326424426901477350578448134075242688026245483694737537153004009921857134337804549290353327936185805905641920766496270252582427066885392105260617314753333725911551493871261403637700895479964063357050837393490112489477045887456496948028879216239343271406924389824996144110210321711978903590004578807695666428438135979949027054683447374071533773095477657974654216428384963229577382256632325887046216244227054542740600812478554056348374819210471086004898223961364944274355918649755733708279550149885566353503068571011928679694824266444887456329922425921500635385630063663990922675066152166662127959700346638516343581970676563927956442556104494653616666697044985070069506718443742336720125763514598487914113837764708555992380489806653430514245914241090527158688939310548442117904259252909329255525223458196986103897329108477884516980159690741127908034508890779380821648592434571962417411720397848183461696967417476009391835691271332344293726909972274690468249871145636716005467160336429093835423744902292526654062308915993068370603718761528808139607569675718361970792398904878768941456188898327457528255026223645373164063045989225763165837550347492878730506708035832704392274341988439246132072594474628170468763599647675425361823517231463401164220026324379753204723370598590924867908439552878719634101692861470657835859494464532855899608500742191823410683190986150342104854201837728944112194079719041888492082284456921626072135944771073189054777109862267782638212872879291523322449948311929610489920877798203843751716149657885855308412496212111877653337372491653920532015407894075952410569416095524793595100513468123028183523070635582162048195495304911286868825586959669681558344990011892290217306506301127163315250634620046366459510808619886726794247227163107598628539062939214173583144471834666134215887157172010075017659028070676381775876142305534324617242347280470055542758778196326692584430786008156332430798149628989826470905743981499090879054793278087340023789585041998390147116624106082497227066547931741582676915887409609350176619573204995306168196747947628217094775458582674915775726425445610435979760143082772041970975699912668564234504217374507670275467392502373916002257372759601891939847373409245290678799776889104790293944706959219333965604669116890882071855882805480962010203449539666742637152559264852946140266255440441781538300618617247202264766882980245467116331471795447140819798919445169844614556632584303254348906680439727096415601689625597358787673602096591968028366188060433262279313217286863511416496069292758348422901105935110901293250675467130520565244111003075370337184841973732929365396770683612713838287230662935547103594196219776972922711344455928958532167931316894489459453934132952684725005318333159241696314164360626705998788783790293349817227065590908866151073886070711351767268929113889685913446935315051376032673150539223745054729903756960042210958034798827836223049180914683036517264581954137771272138191479255034156203076124763898038491468325984864185125067343464388333889424898074612189565175787135836663715549688651275400055418524951008289144873114637944857570575091703635772277978600236808873646062915800204350686786634698813448799519737115823739760095429970986467532392504265389356697853404486165553935103803016527552095549096347151669444555453963471911551136873588470188010830386973912695653233820919697634402292922279763069461702191543185061054257385363399209642293973454024354310323774218585672073718191441017831423014135782957222287657460634402203429543226661814726462802245469972013750213375436928693191642832277211820159457004959464108631946174697297659329888003988278121058190416576611774018688368615560869448046877500666710853197636289502921561477368639971314711134551586596544247025488147709021896734455883791660535523333942484986357949167936179728645743338755774418819329409462986153786971501223714539665758843772394940249583233693086096175705197031524958780553517279601007903201056347466755518260271764505111957825747860153958038105100080961060631161014580054337378200296986917607808312885429155936224098085280786263883985902089810611930712900760024101966934631791065579299412832286609429253824068108302856828156961254402025152128492536074980314848119327532516837726952678396422254887739609916913349080241456735350682093184591601398173978793278597096381417199202888328003911264995789203103923043319468318679947089634955048396605833071706843711427783707030313618053885622811587732361454850197884707925827925667888379319474492267640965051541887403520012464405204448206965468456084139991366893195310274428007638284995283152840055767486410387372599030841950012490578236079697207227854602686605030453689583458565376788535741035428961910027124645196034200144342899902332518922123867302032123727268489827763498538738638030129323528372558099816897739375416589236311832538185948558136676141120091608243873078881857358499546007083874863188889713301986334898704277896232794263732784874324968013586236304293657004508998876415950327899485610109085243923178704597725316037998273510789610129942795826510770525231072678029774308713452529842771489736243149044550849284497147597456914497916439393767132323968498901870800473191769785607390782636327402186722895702389989971105899267597059902931048946479356125460847341898452712326135177850648156743761323301422631100921115478912431739809252776439357864082758079300582785056619165584275502436418612563243064993135442487677446408866561411115954027363476408950868467969971372618031269171429962519535570564293995956457094939800984762067539816224939701273217896706285016487739503417886172832444316859012484172563085212358118526838560692767036188953605807811383140653451442012762656729883133420560699759073175425812750925418253133808302617181680601265790932820117548201444468152056366073450623721448098132401790073521725749176883407917272671312216083417289744238572287676715819445525239033236740657908729345804432128634728022202342527143519025003653750430818364304003347530111596049563567326843289516052431527447140710963225321632836635712659398745915108096595331004353155492902250325316005812211597293755534795911629105738580939671818536516438166097577615194592805906360864346521579956560619058310174829846011699784064526139773988386009901743956505388596258116517128068959394080307269987080858748020447950134041377108578434445525171261452993205730147165785690404063310814538995814915316304152015849878329290666917939131296755839967479532974667619934720638493315632464752966453651451810521876161307719370592192739415490018560189768253656605080698068392867312716237546632468371562965035940926219471972960071471449795569478730105638137943580544537643401099029080577632974029198424524982473174136087987724070113593363914933403216288895418370372416430007607838280892684374442842092652996799594315146131933195609870587868158238118020020954576070609871651646435008832428902497247150641689845261529368635314962088220376843003822288652382016715756983477892304566841547539738641185943312834996781546728321949533705966037623611039248484621232655509029616982639631390750727178698025888519194944538110004120410182376737331710152740761981663273980685005783841889117685138363508626381013301907791314601982516681381637470642047610950141130030443280451169614776954766653836887182296456222609262355290508210189991995998276877533294108325877914303009565031446006064593831209996661686116560349063385083185560205936362286353537359716846515004543056841664388639645621982939900759784468665720811490104611323189704283448926706381894770197299317770966488161856877179318349191876194036369535886615037742285597879206211742550175820237616993609713769970223458367152789479310106445415464617538687203980474577032221678374579260536248723589144617882671317100574590096428830432463756069552370630250690087982245901307092335740947288921123043051747251569269082832741270306288053668231137949426806813710576081781855673568446277461238311864633807379898422443474977601496812626041764346837297951110677827515196594762989745185033785720105544606650274353940286064632049483141500508839474628287311681785505607772182297188132827843326156264206586658093364419015880706401600360622520758556316348893347079460301959847036592786189906138057766015275944868131475167488834467615926652714880600109595586308019832416158625507796746046191490059796008192010243473350207766268716211542473594473087529180209028990217824035446598524036620007450606605288103235526580657983241364141426618928829396981373113880359343484053426069344423691952817150287097769244727015876827674441085055358614025846729966661908634492765626667108883130036752673388825144282510940323942854928637459813580243851875771258100310474325771131755620206313765618556237299342630801326139898575233424620044716543675951133116576551906530629329020416983769046146508680665386278179426380701339428157139015586645475629209902055499967277103817666270520982878033639374686903781845851965996479730423402071810050602079713087850849014018360552660614458139391117061501427432036258393704550020693354550640522795987425896442341581345270784669337596066360754022355627619957339469628148815719461367021249108371171821863554523694907937329603034414890790331485460265619473009057405879041399595521324194051707728397019972195429987693825656434946372250162902043915657095646358822270782965752731772131021282258800100213373080406419519126349489438231838929170940955410077214761236885786156142923425153425623270173535688397158377533719016113675442919005990217553094253869657066907316165214776991069313982427767322255497204232325294393336839365033292735270941959778725302094129530273134159150025922740642691704682340166757323057966221745105293618210961346387757741718357535501966112488079981407293501127635067193416135302971599996700809509031355722376628959178505804277973661733283270090123946328759858882837949070392224529330508259550789044798166248294036834781855578528430510469940655112881464903394600392195345934199850028972837167670640955430336160131960648301201227263505495302229073577243528744038794452582266920474186201160147169403699489009303853443525588692758749855074410831777708450256545753456893980318440654523128977391643292473800574204051578759940519622755078759725143967426852639193914169947044835792098753320884844826114952733726425344601314295939516866716625234177808906949934632109563304143540451220575382700467356686833949980414722003251666587897058761863977620091617411731850822564867898338716088971269369247742910009750284342323712399325153828146416853175737102439429880711720640898540293254006093428688472329140809028868928496005667844964877729022177052035905203992236686948526065780205239475618142984011673439088703890658457911437173901057536164899677459199303008128361838048347464656472658861781716797157398253730463392737064150631864589377484755880417031635420596320147772676937375668578389316722525395052613418642615099876977990914816458294611062353122789243003664416923424976374360580271317324325197624790653049385074860920111198332461957297092930745131138635798587990033494047176625165194531625624741039789023878815420953944372827279034575557714844851080356348117235419671041813365957373858284952428197677153096902757436780997432972800336794089611314686183047137724700799743642200789938729017590392933654110428431118049383166657173008003416206530599136114047638923486144599258948050455180403338866168849422841796445675831520587521630393702597344753481638547208950304026717410727404883874101756246700119756363291942636047962190368224607795003623282289877171744857538615087193600452816124890623563983303804268910569612728738276733146284081456007999474925793426164072092470201375773619543295861380144257759499600261598576488970660609761958326891365077631690697459528207263716315828660589363259650250173026084054424812645267421448333251254414171515434747070668457274740894632226505170037610814885469651570472932502557484709671344157878584766536045491148562593019334803973411300281031935884309334424410660843911987576685403541634922026887965188913795980447974311863803856267622201490764715195099831675268525624346422968455388300450585189214600496181780149838513486128962656545376717406038172348083335692229211278093649680946102064429151220775733408902830286382902202627854735371808155778842795052847938677636639586187483809747918315643554133322703885239563584021852900018405809415232635783723180612421374412342166132284171185546230164486094196254339323105808944700507641287919509251704522630919017033253477757943146332648470594781937971135734165608609596071191473551438259010697899440502454571687663799285028923942831644070349338540397530047182977210423411580828737963221343341387576137735647144088740344274525818168408533282233268947114330088786490807175597032853870415412575013869062102800769891164583572263370306250786846259281588233231744120568527037094634367670833507146689394771855323027321299325882087670376388642996599975395042062799854870502551972409786381841829125299763815692481062484456513932427648781368148414095076438248101454973769606567485872156542614027563271190965402482601928367047662904285947307358773916042777897581310071381914421465664384718894478992523374685830195916166638405138404195785671495559548206306061481781107351099147562178935935539552182355080724452565717867428906706650343614094561615698163841385389024126111160623714602940016344575522237015534311801360040428688492725778757091962340951645822726423231299172346750373637330803188519081799258620809567431687059400304418798910070962036647474521720979422541633699803212667846679423719313328061305466960667080509293019730030550854722831403646920819554698553329576796743791931054489251436515524138937053382035605199774727316370176408024864677888429583762078524869184376045089147556466226241384211964329758798452088928254042402698025007537080634071229801306369363789264230139094375411463703233576197717284770344669454265199474613738771471711547176116314132299697217921059135553018558345057321154531598328602681630503643077673075185917065757472839343321846994661838472697956457100120288357563947954499475971092629679964244077940518398878184003571266802176163704612662336748872181420491562321624636611947741239904566030593241526978391189718326810347543444643531030626664983164707716126083181311614690331049804759327594462716971377166076586942418039897231375565409328701645072389382340162302848238996658276307406339367848877555398194759028054799766905280209088174257246444992830935040219478774938339962740340513339262778251536087979376613848836982763533150225082141775597480814961012274411224636890629794311225569423404070345838292951117633040403266353852280873605593961387181107500749942969592692869474837506659719162496951169350446294609640990310895541559376742621451617156635338998385437468770505714998077763561925651160886212874430022475226905463120813501339561753249974531797186041590208789379163344127404395826118926655807721868062950499262018211108972319186776908966937896643062310387865603931456779707605320377169139328690330997910340975102316365268873630083107020097548891277410201331206926468703760157486338844872123926036793999069672774396696801340702692161498612606189420042880349170347551609786004106358184028834747570991214954459270129268971821500136914440852991687640409232690145239759799623964009067555326043138523038816560589789321930607044679652032267669378872501205172651118294800746457921360068254846180302170597678337912228315153738971958220912820665036176023190323000842977716477600337364420668696837120406832783567946232591448639060863604292136976897559280094086424245068257580835448754609088146510142065560620104130075555991607427425111820589958777176198416606226597839989921187629912313881097991158952373470319505430300077592516744610428854680249994610689642626668448690502287599515711471105536349857331108178106973271120964543681710502876631975158904942088103725642037901842367004964684099175816411799525576057080286317992560906175643725135629202285442584875921323575484225179413823307923273281447441947004771753746510070880299578555595633135976658027696058103705144277524614590466822215535559718338200627529565180959250120848331492572473388050422167250343360973646975324051806334981333103505669096473593253433929452223984123460883389095782098806081148331598389605250252415262967538060895649723147793370993033660747125942602514526733365872945203846289611237090729661060166867885836098197451749811657375485211510314747445686644623078450478327808641116428019164498205600209588676145890232767265953462542413300846327009513972725354185555336043135345963239671749277345913806721882777490617322643873957283712031887016400961334179193373403060882700516744318092069436906189084360872777520624490799225767912482434078329716269664296424286549707832243675450165539379483595076993113035969622838454215832134240398984961045033015538160697656902874600113790396813327922086515004216300234238048724449331337464288983011192339499310027316527382362412375607392357391576617454250354386570213746995657389601265194958732693062906815649907655261246106209791238466815575894729971669234652528119903503468272922503895089162891727471538731464562847099064454961641744521911101058696142591484406139884548087341313482441129129379616855549131258675629752386041462690325474176845571585631542272354912150601614442331297781093122085283585925380402378451321819613583612776292761086030914239954756785516284108019614687545476977202186374901675241476177181430907699493156270306451784129432149960516648106887378771463299549593291675077979690970564103937133817206862961235056049185133949295077287979988770773933455140418335662328599270559610034052242634428526747929100064553114840277347315859690285182916331851984486447612944549467469158137330322631641996988379754120575843446562757984922516858818828635589020120222615118031439963078822524265107342592040821839639775744763398851549769217660674450346011895148443255229877481871198050061044376240988076497845504549013419458943488536994811135825677752067973470571368218362941730171251280694444635215772603554606605931864163599144287993382178490024177350052843171653082362176994352627404467434144013871401496978110457942154765811322195828314990873908766183153557362341679531412414480401100744363435413160717753440932685171841178983011383042122976627846200733968097210087592574358617217651138733549483049147129761914211374745217207569627391500056760114633562914552186383100936508012778445414978345812580638899501065230538917049947418682571777527216524432435470049629328952261155217370825282614798101009332031279173397822379337045143149942556415584680470792277684327564746680243620830366315218146049551362281129778035988438834377375847173287858946367835419628199805652490300841545809806896803066972791732991689555334751884311517019506603592130317854573369108389704100960146814581957448929814052864913375569198699329658746457011734518009747536532284632674405576816278195081438602800162130927235618357066681453265417523374550528068123749842557666593596068499657845927868181419087545060385816962827850232999287181408280635832595972763028600352035452279175518873762192612538068511600560564064989522875605665352596384040040333232133794660281790345452170982551354493348298229433664265161284041492885061939433514372018234628574499152904506462796518241735251946511266314609909416610155199978127106899558754972285826521899843516012174845750367534651025326105826319714901970587001218370560450138399898065321496119852683809593161215646977700259991616297815192283596760624786615517009556704576779379819419107999386236662742458723127006991121500898436740171475320467592105651556213265281243198312306495329715943746312772856526794648969535306170686383537741896041233421739228007565684171572716180111286336616104081887568477643608163800381189191367978872569072343497139295875303797923282993905543863641482521950592611513443989217533816789632927707858738348611227928894317413429162046221572156996275324666004820576858050183218846564704528958359125904670835810639576096778684907008699112204757305177980206241147516093203698185401001040547239834314206925083587413423166654178989560644951350296778510581820933440980449538118524303565678696022728899087933299841395225580928846970095773816510570637470895744270270302436584694445509262301352103189588487805105237675667929698619809501314460086650091120887285994480476637224648273170311122389843011344336570781068801060389130577971249784742436016161497320763466453618380097080385754708508954337201992569327785399402092262883370941796741743064219503370065351763883674429905551298097228479992922798314054043462936538735715045897305566504600616368170309565203259092728682603948801879822612493225769834698593876744352672419683141621520950566850208399861029042857991317262375177316075450039396654411679967646053842566748178978235628624078031115808718256997532567739041632270982604870470562950674423601619122885838216912100322007623787207727293163073886929917477116131449328662149765925882835228526724305260208108167889458924795428467671938543732466748549147314146207737964499728965328188684301206215300762263106014646572595843642554272571018608442841500542901039392350613905160645103301815686846538879683486509985708649372845768047884559561334566658817907014460382115521898484979249749049246892754571491022976804466838599525193706067715037801821038789448845577389716928749393167336848366410162708304369739907481362826335376805545701564467151979787096291203906706479624221679173484117776746997213159384256336708619845919578080228356239271509883279186876115799217899728443055041648621995136292415742178004862780363502557683286611758428761283524466963925288725153296827458051901880762094116365220210867016644029859280175680242874170250021378331829494890997518048642844062349484703034404208686490306717059795314636388839408725809805611275204636576661877825365939967884084191617327200455555778578398216839092188245387677490405916493881295549410932760253299990033181009246548756596232927618714803693481792221824737117939230820567185998105760204093675580874420082795871813080077929519425055679582261266695009768079639543436614047592939902277828390956759760688075875214401728112860178372008278051104426182683521269048873678110998984790718370998416050136165892504665699892965759399719203692784150824005855785903453165239422188300139476640593772458836549559470080411107400690352123694266740014161749253683415798374341134823214780628620558238797770271210742586428934619497790381850886199544720035126130790102435995545341453307089961071749953618300421175784627103998308550337672825430782278133606140053642625194611894320227705546804830448397018826855558028465854567463087170798398465528031439603208106116634177468370619612598743508107492977267282569438223370505096926151569926650052048632797588786675394591926171205550661410996480449848472083818320334904640090912426310503825799934978962331301217497543999861399654066237418708838148404734304090758803475012527627970651841941463239926296256820597416472470416667568513006999434077892418868131416305650147682234007497502135630837673868702733329291744189580440097790621612649762149391343065762239763482494641087865429247505193477291855035636806615117720332182287896667770566917001723546388655039217733006022231559373027665407070946758463457899739327606312948123236102154779281342335202387486542972182928073932715787469233594549528991920678853763964600851500534390642755981566483855066404106423437239736344629926592169953253842595771843617745120761709255328566554734290945221255127218724699252923292685909677830197393738773935578848733029230708767258203766662149831175641507812353936220924317492158778884692145847949403856521070331739664547658925213428937079824996149932721391367842485651032463659313085434109407489094151283989639444793364949681338066598300385076210739170620229421052975221835831317535398405200200919657673581816118922519049449695546939317983438613820445571074104781705264804967173518340877166018644376600685418150694357378660548569696736376392762701884966896449574992217277099885957088243817714763623492932232427375906210202632749492839923022765455703047854397695452106880622184971785868636274326849699184937365760420199282606493754549806080132272609276908279422970662592608588129138966843220385839438812629613834166878115420357189699940730712565339267799691624978315439773317411978331303073844987250778157549799747149337662632308268146721867172624959501507333671190594891717953593630538951000248214097135657348022116858968991167342222689588046880159033280318030463497648117878280960737720010912190321507861608298870158424897145672663377409426145699290119015432422059126392798878089676554050323310128579492170874594855017388447224699369401830704388559227863649029414401000648263394552521626684098946552014608090871115628895862798546334392630713472059516037084510854663152945603839982332900916161209226791933185065856703998431946382730333035109954596402052811156256514083104430940515587098446824664683832920630883660066141696048569867564559011069215732666113864571538905883716891588071956766585803800207840703464238958308678330990569096638096407037291722747763591709660183039278217520816486420366435812177555029893232221755354866754724378316647196925384001085158987580193797485251248608987017650797646623999138646700739908769005750205863333800497621208860885900965048542265237609856526751378186495152069207218693399809677877254383342246571185693135153096412308340803354973506613795351200673697405345978370878072657001215952367930033236678818644145346347397877941225466350450242136478182166938218120149482361932015994281542168329234718076079077523418611671423968454032538499501468393959905050274366442427193368973413433757222775714320103073268430990212814575000632641093829240486392540650878051309522212490633951784615754833787719169135552770660217842338863959305362748699609218205023703175282499922883268403647184344487736195580692152634103074517256215463527211510844711605594277743123803151020246379232010588710103159953764367699602182666644758427333493294831812797287661301919649890246186221574515348500126064063538059755604649407070842503431739261649678111336954359086346717311834773249916924417716086183892659649182425272776547734211795287278726570753328020198883054131456394370194139841955497618535220826940489251285972074459843458303708154234102229118355173792071270247071090072496390844549490467742875947892886250877140595652879505678555836279617509051956279692701862214649620439514463125918559565616800702273878317660728214552479208983475416706683486464779242439500958993293468432677158349325011644548420960204791544367437210569251376444090355583413154838979023108076405708975256679788204001733912610322835357681185044221452471126796045555609848607257110694733027092038407117831951944946716295004442661416165205129842637893660495817685167750439853941265660075554637221447489307062062375914995269567020114841035428089410648516476706998136579346213828698828176136209460532920077329726832793888790704810157461049864097952805756749653655251020906822107811877774969066958619631697227475304665976039147783363373596741085074115972198149049857223890593677899624413815064620254879332831864534009739653007030331443443349665024645933286917375160467413925126089913149172877132461771892694737227541372510889626660968811318878956772277867494621851103318236439572936306915265703563344813121549389187099500181189040772317426216561742811601700630894077201898147944157173060364423730611304959243218251925950466203143573630357407407590385660140236591672317315556450612035564172018686020725608480727107718726896359168713253794647087119585732045273913486075850419588771530677294243155722267287511050278348905333162097379564410939262778103637642246931933664240153868648386216382279547385871058913926550689637889984525142765507016010826923958626399225655180330687204316591777093019566761382237775721891633337865453130137437285591393088659126090127909826327728243094522558002545851590219937871700944712027219969282834861183889889186930764126108397407008749316166485027397864336875940580655955124417258850067237578310714056416637172764964275251070747359446186361189573822219308311298895061044136776952959734228455938487208278210090705251944296439367240501851271892307098005770792486096588681338434273465479172820663914782837738194410215133562027175016799199906801841935549928224709323537483711077632516827185482510543622621304787366791860815885804303315051686722343655017657224506848845561243595735606483495047588418384586313612117383598566045956353138367107721293166696155344669244745314419658544849628161177105795333336275004274055581588091270261740523300215728068908910826739219384147338480434795866850302605448086390183841034902158724152873315855271476484315343965456174067170338850483180560836789974854818808266541601900064608956198948588311101538877717176236824380757476502944062680849919550451060626237707212983728549010136487602564663205959871112859497665910605086926139708874097929941210561684650547057390651230976292149355081786973963358912191939668914480892019585250027259155094555712808367313951106069786765321561740174830647275004198977455321911277702661105006732054799935420594094075924792261958282733504400949658054577012761638910892267336993108688325217666048145871291927071120100896339575073313225351545785111753889423292676418070332169461478269456736236823815010413111979385942705018068043574828231877757183590598362903562743318008089670909664298268119878397855359455118639016924988436462810133371954949585846658385766825122840721330980467018421284444715840053158713730938500021767651076264252630560877273098570409254516986575536276067178059864811395912584657665863307744877196309678617727890393878774791883053397091103080535337001527133763756590017202534623043400422813130849028094468583293331529999373349144957549089682467770195265727630732834748146952765811032144319152157179276075232822137756851336129925178187662997367402020714131298753046667449352917807331514713962618852464989886618457254642642999006796220086869824866968280644572934588711198190962372913665294166146821119879376856105306307229567169023249490851184004477344646524534110167376383897329281064682467621829330944720406910719295518515238019814927309559601494601595662589204895259176840225047177764116620786715633507700563820102307201872196069015880257297516517481000175381390111603151805372404736920206033396587764213883051915756421501583620298172247986802965209283378820282834470852720186072765552944845977662127976051698828941249300740849492418618854070194148840732233022664571547642188644936839253833100840888753870668616329163459031296078057363990467970002886979014037787420324127133399251256435340167204072508395148047982636095648910386844282449826929910314168649394763696041921950453921394612690699789351964598661965256181081322017008221189384465923229596858994795515617093152106852933909617433754237089136628927564448491648760684262799527404520710838858032287775929589538335403871062500292054819823025549648688061119644098297383478102313208633004682927137591949159618855040173033296346031866363078747858537833426824908073379081393522286619187572770724957723647887011302721175816581769367539431829003275959782661137556943084173182260973191684160537768666997217760765010942222469657008429590047088212985566419931149511279051211542083108053691877846057815501364626406137971360877360496367744854733889111962392645542226397037884547600675162211286779454522852334110481104900252900144962660423283429444890254729648900083541619601405550464278975675695581510274057368523336904328203424549349775608674614337859913943048071759257736074489932608642998317241569799985588712267982030720677425368716746621871912380241099333401621108482998159246410591094949068911022495795702074169762261123169425064955831447921326367384075865938732401842543549868222388105109306153311089635214161845898715849331701266369515342107556491096869513189187748532483759703540294362627683351613755681722263410655939408409581333211866591975371907368675580773600401476073043770551189283753054072684887116469509036278950374262947225526135845540957611689560209358580978151502031900342788255964960093161645878017730710477482030187124512392781172650929824903102271355535732407547334246691833723072978232070079786743496244571079887464787111044589850319923754391955290036788290294389918785621467503719749457584274614456090338066320136330965166924615845824730365653249515461574443334105623810930652087727310978410985548729703006197593573010572928207055832157033337063249236701953032282940403241716006119705060642151677669360768374324699459548239921375935381511937870270406993836259647405698230739888847936252730274982691624853048887763885262189287591946936843554363100761028545177381080386887518525590458896298762728887375683830775177477071583924028988428231391946085824812049307994736401157213050377476092763036759664238731209216502681365171135125277960204725168451799148873557190924145916194659386945346295329355184763740928409184573036239204898157588135350952162817616325101325372347353866024346780408514954259558334870702008761122414648019384211443780644672338653340428949642104943934484879987600276950722266652927450866189316680746054089568872947493882638547076445086178321902995185896486886362438241150928009823857372784905225214496411013459941004094948909160928664840598835899687890939870123113715849947411099088058688031436654069506127230926200995924990820482525203846795717504719715710145342501216492410019459479642262271678568609464899816140798180436730565397906954772818958695400932693861970664807149829338184286823667658782621944836231851000372151563090818541791404606600502243270424249164383906492630801593254715308797814285493959272898379744014437739521592937091995402974620919466957799292299457589424995813295432169566146599947264163793642463269229051983882317140672323782772343863261870268961911034143903627632266818906606532206689117962837710209146893524206638553742203204553937014314785876644230165060054327466140979449497965646603831240106283315091879605999962715207918716390302823429531089941612076369903626508083478704228922585038746984314071110282082991132014738022625507812422458028414301855289189443579402446676788598594129544416607134925840292094649218366253338962726961663389979190134317243195449254895339530604179967826778951379454324208397608062195227777283639777926553994107554919695955524540874394091945629123874533825377736064971894978783458766221372054535197315667869219542687027283155291150127361933819956903528603924749914994716494578871179405501178678398996530250352792923065669421901869124975678469509271148147917693843692662361238302186787893049140432586352351786819784070456930690482407812183387128318813212769214714896063642776076335968088401088009781064735595876740838489819667419607802264258232207740816186395648917916817231608493250740938117316235436112915004614553363256479122010871515010723584785927820084388349609846215124997724115883455284724322343650003786627939796763680933643336880539133573874357062217036253297431613662457354760640206106363483904775614757775836606295690383670798841486079970308106802682009236315298224510878537276523039228000923733198944979808485018878049320489749660010418697902594273060334908718302084281371693179655366676790227351868554682817594281187203412885729320124710625290164627097461734197400099596714921169444370718665550359446406197214168221171059147562316305402119412952491415698470674594085193492787278911965088185511635325455402341407638119998111151117064266920436435509873351857105346352472623097075467793033094264885768636063696773150589789344676171097528344701554500768388164095516650120127524675348291661992434861064119515594943095290452667905578015080800514667907566584346633397960412968954721394838034669586227164018553095448763825505150762302737958270425441342159009046080981465302795853690348138401173594468571460392829439229729012230565786506366624556511731836441754989329531554949525533197246701248227527769950145240647396456367198084930410855861171255182966506091072928625609758183457114284021761132721481688926064522865534391844775683755891307595556818846842538360931493041560908355913810693592661412596356123008262913945264021734778852964101570386742380090797308056610885335538465822310886426832798910384876284361841146008569308060456311681867824882043226162215868442977881570631764537850979141291190526087939092169074792516420674532139041135729470138916451786044589571669620866058414023492324176265986562632801043442259796010187853411803375373783620511806708924655857858525871197652519481701140395900529343625285366578760121080827409442924222982072093923694799735936332692015559175299787609285187320722647780144149457670472889204579111793980271295925671320546595149100026302639209763773648085317409831665812147485903146118909855123184269113617558257598957114328351783802749806597363222883471270908494609930169848366853889734619413691776561524063893296518152104014562606556504922851246858695373096910090665443206649775523164033982280596420931462859764877486264479468191785161899028608069085090058967818685822405087468543744252921228151063787926215314644586467073880896421126718298896005532284537971705699538736352077533281459716018006707014509458400323917257577407530349986010894867581660608235158208688663735459070355277270269810982746939080564836389310669484548948168296268831443086233372935688916040140113240962790435998234828424532725255468133829235878131650751167166208622964529833320275598733064821979711644172737942173066274541220870686247428200682531133858573420548235142222961657610463230799988512457904721803511797598205898928595419410737076340426061176945336366361222004149807828872954203436621169278619207300343624463923901893066865200830706396322337082730179014750705833779398894505036868988746094107612095772278153038107445172843332978501498793643977437332290591274150543686811206824683131193673299951375212838020351941011139794436473452363016832423770482462136791647698880169110286619117804200860975427613301593275145941638299168686449339529718768664681317121286555128656699396454717007315165893200886004070690862536183909853883187170483910602339725999663271126900923279587722725623561798972944255842650201471603743615163893746349959870686710506886364523596624179127503941823613724180626456229330457440039402234297008847904253528359686068490705758939549275379152546874471580027303578067946856328385431616062381989058412798838325901415430370474977030197369108621366044100739014297785281585650477132336358410175450269222557540548697218296641466738631852450125977904310162221756072783505174862032126950708530923785173808223395836247297137892369933345858520544866313299809697514834028978200359697575505440874229903770552359949068338600132677390408443594609545480905243916478410111361156139942571929072149894425277927327431766861063049155632539678101275488605053847705299940826105245652631135548087521248359167638412623786001558867104752005589849892093089951816202794893508206937697841820144119899156042834598933327456790688846019475257562693814627769548902530485227108920071141580569558276239712430328579730970578374780758077260892778186031810146125966868907488410630754199923701522982577475876800420263026331748684166631541471139318925289495530438161587317981637323717903232677909891930880257549325799045258853216720906923909369009930761245182672405085264981339131708638857659240268153962445125536356232109395772986949921415686700759195586706182459506221620215649227216829017347238805833792195802468335396821591158680940406333833821987041713098243153529409204124880441999472530158258493834613655085751350026218242488616224492964075506296981235109412618988215409220680910866423944385514223333851444958690724444326390322628416484971152589455256100749347680412532618770709305805720933419388550263450806480444331967138349386027982789953878429378387264243865813904481964183023400274738884299336108936534181516323202057454022996966149504952159063210809184589931424911875745629457824348227452023734776129598103012425466697235273990925143115922689241035041349575788773983217695568714852535362755861544587627277342386814437389461062239524434312972425812623233681360460010578582068519432567495714756575425062016643115485448029193603702347367877402248772062717866957825666056532043584680585310403247651999952873206164477593762903646287620246520702662527105127694715601899699511000051406716471497379138893430757558775901354251791782429526529904679484359655615461977397650589857180524759541611381738557847918549766828734728438771886469310489778110434752813675212321683590049626077649833346684054544753263537060805084740482575721017879882159027901693016497860993216112473944519858126394654763496944752039195257023325232155055941071539680534802713918525388391697495741331274697677827626113347677206691651486040657288595006521047613216332336598646050239419552344705218049823399629522915957125325929488010933178123654629088611379545618854168573190119296749991213634381184009178692552893043555784001718377354558016593518261505089517892490376312311861712368987461406573671059105336433028574079839296232745825478575189274138749615246467825169390285655299327156092649319420329802943345366645097715182227503888409847524877690626313612981689559678828920752292191763857869836707003069282557375778066023789782176572000602277187673048018224229934428353233712703086657913582210607961459973554821510133323036074923721922390808106222739991089418717567007764656471254646521747176141082370680982166506185362555376991018117627599982645539664293427134319802446296012513365165821710500019811610529274061994576632211994030786400689787030081546275610572367293950026346140108641031925833987202469700820577270292623507851900519423475779178807248593613465476203586915485420553118953828584579298580249135904827743461710701689309718971362979687105686666155602545973186328029070048267847541512810591473956667113626974852588237704377453491687570204634943555659841414021315667348013336065626121055057768474503289351955643852883219037324085579961432074699553481373851920944418268776307540828805428738481900912465452393004324583092576409705575540275427966557869449498268898764827103388313224333433158390202258705280586992447162329196638296664511599696527369788282085385108335064463199831223353303296436067309524008189836142473267410057972725938232869560428340303122168530786467674470284154034685309850651269388869056678397045428286171372072187190578097631452773115504321923141950123272191965527594093799965671804602209789822334218629950355002387482106626284646910484573800238398048431363493360051174508887887373179527836474384329938754747775205612143883816543376504538440125312819690576461262879736928572830912552229937437323139918119258276097419441432448274965514488848773308439733199369808149518153388277465237598100081790993910361653979695245236604547895306575927221883875128681603408010795276208685468628023003728063023765150309635304823882980262813132520841515517798456534515174697993172131980777567119147409695794629545298978815742430837557193170944086962902586083716939065175394195003625012170085373725973346496986402841266442268362289961518855669382185720918587808816968383778085335615953804660790332532993988485348985855128087822545641224273952904273121472453089206407974266420135015359706824701739811069704998761094975250641498752942622577790923512825763014858015399139033669430792437391058125609109187195214656363581571821285807262691598771856862388530114064948499173584281843831273738304835877368084184682960745901334193061595672954657312456190921704271791781728730602642901800230203566303542977209959298440285397935377544880241167761246037255698188958567659411487933861847373323527588116024999363173538946468940366364633304592672479469649439568852250478371305307495300517957080026135367456303984268173397017440322389833585556503238129775488340795716492574409955332676748486812654289933074017998399707378485132630364269719742202767306512865630466900442164661566404404491435657079671613101574622467301945457136901812043596495942797659740420128461031057015427834096180835763855917185256128821421610848115873669503054266234436550679040101720499749059669093417229456222503357535721461788850872558542434007970253754455678799028888619977120600013752622405356135468859755728915447876009092048801667889159000068476271924200791624329537254709401289211947455465835209021264095391926746337356417645299610344532306460029554351903737352751219524617077145328665451620677874819193897001028644847413916854594143608743122901146956814783384467023158896794397532935994939329740381869346429356116785807408161693803626142105581032575517457920738862661542688851075147894201200037869940804771297999384263651645859424195900723387551532406602181179258669466253551836226479144315295377825768412467673560365963141891948917778872014996936985637506262485738916339452889393593771030782009689239651163720767266750869053602919100588854311029168541475055221043146875810129971779821563206088865607778655430583962072746914550641264145828743376458628691476757466470631277567023771171649645453209276434714206434227354566281820340343390175437298777204094464144406268298243099824585405092850069316416529948704279006411019911080669422616676294445091315690035008321336803127172150129890583504276681216597488348656709978283321822339548722844611975007624545005046777764690882647367402729939209341121605147717699000191339180849680950933811995473665248544109695537235440085049576951205289829336441840864638981816334342262231661380038642540402508933367368823075200587006134198368287078895231010494885584884065507393002377860130449255093606319062222255343140615730599942602421846965023877222509701740630543502974294346591033303398026807053024701804458837309933349470880271707093847423976078697396178992852061277221016385434515552572984881431564415305773875860524374438740834253697119828253693637920878298537538567165779542790308984346098391450810372795325568913043495491231704785214595030352324194971312284475880804653835850761470307670574361396955935138450669489528730398283713664571274261263481749169774289012651827676931801948707491936148423223278771234581054023912500860526944493330880302500425721205644600257244096517725590120986883802845620457801588308395133069389881030550012744007070275859121950101217622567053242567962796930008817500010022495263208551113500776930811677246088360519277637625711533134402612521351466006397184695990899819707451405467885624106112361158039394047160910166787892626000671991677048092662666238583866537489215302523602024311658621833273741820549354233928178909613555638569784959368632031172042322931458315078060417134650844202964697773348549784422632402276456491839751831874800141874518926918047985559124018173932159043267044283442492828326871796106992747252586764185627883024862020837791078840674091701161851644571840641959837336798960987799565761620998722200404784107720847914465820107324078106378461384990026570549381070988600598969735942863374222032744023592458587412775140074752139776157130493647928363457174398991535110382329216142204244619212777906899813187805865356192279845893370812840699650923424845661353997097004688718943023247442887350953544307667280623770782697101070298990171655396174091975809502744164242159911183589723420954262926505735326749001499025938586344096032267062911105301409933450013734203213757095741429999011403113872032008461189751574066518725458603530220464784676581107946447078303826807997187633016127976998686444223654390007270691783823841776380276547275463565888729748650798381125826383390658189951745584700900462985972591690284367609612743137961101460247665643992396478613052489386346864040626411766250806349109935079681922441855765213876123282876396561720082882399238148040283106090591895522047305367871255481566010246735857018488933651494960893962832760891195687972198307121284464022440208156694150362173401157456275193000899257824042268105106419154786786157803993449520202229067712523722519488150972565425343783342694590049957032865723810251260190996147862677583895699378246304323987913845960615083754881900616933077152473983139318285685796379692709135244278157876552638076209581044486281877450175207604627918474400453548784889785071614276153326787043594816838853576912053584271372469195839788329381948583145639956341194357572664743293914357840798613042834447575655187319969126700334019322774757516057382461863905486795246233845107955839531022969592366799193816884144987062718778947416926300772677501545082641702277374474201852507728235053718991570825592777802808200675298758313076721634304957584037425991760866877770796539603903639561206184215205678669038648565087516492309651939665205820396943239949950082477188539609277015709533577290376008935659507728258023450753284902420865150311770221948690165333181565154032116628496636442830809839327424997435202469997468035980627182891884602280481222385406924091001832277222344912369628958038993449472377240533780157540809443415827375032000019812919220366745454808162755899190950514898167886497553503232251000624895271813950893541456384779966721411044726471731833862122982888562778927280789837895585450997672169079131500606326790451837159770394416139106673031867129185475283893764185107976303073209592658493528603063139693829957278064356905056233665734530386934382936864524877537452242822475526492928059454887205378784325472550101929248390287666469021289510237832324060744221690138180537288687557247656924328502221376836452578440083541626745432505962001684441029285442546515567797299340194427749525048006928028105862384233264569227291978044386377965581778319774806401747541023203685917133985491662981263811082543397836449975871257622806167195513456588330142432096582234629057464558725379197712720276243334066165962868616959431695470828199787480982946171459524609388153094341342410083038747079142763978367880771233068489753365270469208505780847833744282057097855319393752035526711917315834822084082705092681519400780649046374242412260911526354722922317672385719624720550119030894327819175548159086283491913081197595571075579868959259886189568204951085233072407373159276330667168382172550039141551014712481468770681511288288436042778738565679451299239099078877707801738098364149441105861000475609547587268802089972478365207994263988345710775470372945050725488039850180894614663812606644532114504620799954517111428632416777314672730090360356742075366680104773260753979020898204226017614160081967142578871851222569143450220524769507441652691477429807033363322327219785087472919026166396468599051473870838685496384900418139714076631222113885226098813783033732871136539545989217545728902107420016597724565695141788389662161833317113053847962387350599391332144227975524689953329840366672100904607871521295244807892533699212479095246796986901890488889224330378183497496658908120842621563400268586552466984865101725588895068190124406302100048399974098824396772700564531721853296243953240691511172117744749897997378073816124052096901034335034246527504952956901410997482084657894301934643878109122413024375881340532381577890776215862868066065627460039987905262100694873748177462390082369458007055908121730222633115909483124058176924689658300341861280409414004677507360271221264133722627388705557658124435964480252206113855622340788443404475561524785675258031097765982556454085693935222966629107172073495669159377993823682957742531888741406644695251139369675775899336555324358786849801793313038856984860434681388028609837617550005705524894571730972739412745385034669617581986810412743257716881175278924215235514743451114145031971784338340077592895265292299281077619676811112760990457629337843410774081804289047528083302580768811546310420202114690482331210458475288316566004302281619286845997256316083101266882976853900688866784967465594178013492574044307590951909457433273372910813892661635197924977403488557101981291398420352569610778100198316258811772215752809355167527187373008571150217325912432610520708378170020774949737563266325580508985940418710694356767415946032724964929176344856737930702465647930962084136267662593533925615914460123981502398029467523714866535590334572671189140638186002637427757024812643299736467260176426248484778390945705466593761822706662072135006872124776785447189462723201255218979187684060986975073812369009481933989362268457447360148299965107196815405808840811321671327208068833018712568261501829370351116584084222949789131411425546838366214764867503321908190261189561804285203702713244087167574637801478742868975364787000002496121427061601196085718221361754103990088068376714828595811074380968605683823269983350893292057052462542438517807320466932233468701383264943773884408623158030327705062858115855672579971360129618290054997937258541366183747558963222140795713775756686153722977189481103139340902609466549815651448492118927413753725303908960920817995393793173226186580926206959442504474724019803786494810605578876448788512499761204915921464818095732535370988168366282921292002244277125301244645047203538292897692443121415874591724818141024174287617073362929949600923765712483426432317188484827999506632002912161874530778856729488563432840459371686511004432393687834892981606807880204998709592341350121481965108048514164474106179702665959407508404574600543256701808790813327501831136389395019264236497960652406909290133250109294018875918011624023054086520795798083452423191199361916004580958825325467081299977003491775166400620536278632401163409164047292360090730284087315206923336369788036425600663815165585174803096689530166377148114149221317047961950767136239496297375380552318955548153188763107467469901593211596849834795695198843177288772242126407395144349771810012156262724315498571661189843597392335620984522142825296763245683831248242686553751847137505357355229106915019940205749664887015015081246580196819363645648698343956397436309029209529298503700190238671635654569575363500582729793898651679214743196022067029556969514546106412049011170213026699150251427991725614079538645252432435131635265103042866088844544241788886049377728202339798203553371714142215306412021699054366294812600855010856580277445624860618464520276849557551471548068250182782494498295299884428019898785611501011901689113133642034543012582405139452645904384100073807375876734172793961649238332016675502837629403918511354619836533419464027339955391202764658255112042623158815409160959585517724925323819735272809361996128196146920545084501460951465266499284522970032771155624569293748852355488493470442074989119822740401185213911571214620928356119683740123991453132948153467483621773267357336384142977195659818751920955570079270457716232380994799394955118497145747912377131937283208533716815142195086181522403811320215356493200885459076211975428804581242324397931846876453292015881764550908943823703525042247205075087434702963734103716767522324463550220946463413091069574098473427127549578873374963089888248740053226603086924555154523908644392743576910824659374040429330969140252554192677640226550995717982903604761704241614031902317480965558057096679835165482801361154337460259025993338379427232912308170287354476723801457896495896971136817047134637328138219946257562947538405987913565477703852005935012816527928424432792449988468078640486434078590801027177715686621665301642327390217190201901405457912900060651597544706910315820025951732956533388434387672159884374760579612166964682099229006288526652071575878025546162374057293980298730260076750268002190167830436423819970234892086938549173458880737722179204511241107708204034053624996793072159245791750862656696079776544118275158683624513776471086617769807292562967127526454641132687949856167672295509815300438396773957539008149128419430219313107477666690171482521439907530500940915098186438285521132453360924244558903358539221538904478099123232584915475401600304723759793724293115167199861901979518237249493868831277267952370873097643608578573345464837088757505080963692138751332103501624009238725624016823505036014188102774121608432321834188245345554791078894605957122692110783067063782322576094039977778213382450728121564243217982875533318621742605548133580520435169221765538510314169323033239654945820310353430602257617250623556671802041772740179410582847856556497637772533226605226388327385844319045705662855896701276092827716109054982106156925636236305254495735992380803869157741614195317781085242501979003292026994744172154632683945947342718820742206970171472213161872310208762547914936328828115144952448803674456596597392761369497913988169290536038692156752920970346279027232890084252815315206250430410785114200836358466621655998407526794283383143238862734604978884449075981048131702875491431991959436683653006787218969399438554277444440427082406650383883500880663080034049745478261198119845182156680380566311917433372852909548737732025429494428362977980699774984350672211226166448437623255405382984939185235606756395803009520831231046123492365812965590693960387228402640151976803668416480235681172965269984205022224637133776209149398303009304221963605640135636969526223317283013921810795922268380990757701207829836821647205127464586115455216945784702971969261411138249846615745951130908519683796674877927856923142925327369767892332359929506699472049324446863608244499233240083138447451507521240261124334520545089219105452648927673068745856156318591123570356403139283106487507616849620867808391888338519387120459713227073225807280723924399972322696737441868055359349495096670737211319993247348383342035700900139917216140445434657774931255005186602035566956328231001034640552378161733214012726330958270965906030382006870771909191609988356836472356242663845334681776360290329166625963870706807193849706723353935841559269027621807980252142342361747091273320234541833583626614887432061108965315362424119634701655622679055001470901065774637152380292301769866072679508511265394293761211662617596505081222725103017423054168599184019901184605976435946707054002605474607908596133303050469254402171058195841008336507831379228273172016285101805465441815557295374209987119008095492872432389829936337476065795727435679485936018759838960623578620866278247335792441527715188165409041167199257697946727550336543592244107578185924891478694820510789150082862208385808746908184538254989967012093668172211242072470499739550682429948846802611949907599827016208869910149697429293045512734534018758925896971831029592935565422508119736789363012128034177950407206009001668628505035288308651232741781684130636155474477206749595413879650556512325096965320716379055576472152240241778365760718764031034235769108311385970630974603892738469836718158631243079834260454564882198668537135441594472956664851284366081355364950451422501788667500346552059397833755379653399737987834518492519111142122634689713350208231692122970535009113975425685559887722933229223911173490525125454374993711204601721034450825333218775582650481797855430663019819334502243476060628619022641370805479495093812688023906579181926322772489312912065030838801237950788260086089258688629527263246268325892333930353498787301149563925726616961477565661710265124318973496082142053192262708488154870102476324077342519394336035448135678118536121148713518399094903442343831020361594284094199973164554606667340439648818118708985742646303277824356763651259594245683630988693591992832942605264202401362293739256700141083123446540161917903504370661883902317812176900961381181341181544694669938303292490316805399466356732675639308920575959747364623095379177883026153357817470852573859671630458595309313700804165444812183785559545344266339316414284543669060753360764849611701490815781478265656424772947777740598499851323315788748499334526214329696115833392755575443190267248910793652805014037510032859631585714798515408268518309352512502522774118620850953671984522519873941860820773663642596450721357207409925788150685399889864627718628999939260904455068488226542290395676261643245279558390586567972469435703420421578056843011787283028785987182610042252231665021222405390941295519299224234808178821144872091229834148907620563407318891536627881914611186594640260774523496763975119106366713712030655031549968861989355758963942442084201273438898354868027711122121451374096817023622291933299599155630593129307941389493578469911010607407357365977824407703395656987744955904103436663454526877674885304566602701262414491421736036836868654797239201863035345387448764149531435615564257931000603378638099497669259398535479480229834875211905795244966492161652774836571283844731250973995030513101933107948118975076679688179746198255616966714816723709463852427223936491493039731665066093345865528837862914987816556249697341344539922931137240734612352289442308519115084364788587510459029442113048302713271177188402994632163485484982188713919452573278899115594907519299874164275854233757227828212570052652711538214697788148549713876446426137486510441950233142192535045317840177899539181347365653591304061310703695159015480797013295355692058105654317221028373841881930834801245309975583611317132296680711395857063687731335862767893751509393006623505741146635560284202987359511859284156299060638388490338240491971710355981774949014880239955512424864929376174479855398852663879059895250829096050519622550790715354044833085365538754743807589516282097191471240344104860142159989387239503865722297649787204513903376546701577169109757364007357280985858246350354521805365936780108631050391455516899333097882751379830078253300021121680399288381330394274691572525932913357680610672258138539590173123715273538745457413649745625343525683293753157692289548008316416316160126040466714302060558058811193355845589610029723077721980861930685411937866044118632272817830126844198460266414558622202478661886072695576718203910431692695590178995519941882664564607348848672946259892286295871829470559638956138545916019326188593696793814061263750377017070629391873850786257637647100871476666566474882267174335669633288604639033136388821727729663002703826300269378932673733100283879290656872480148147517358054265514292483188901265679203982134155362133714747126419636205630113335185813232565569751805322297526070508793189505696754095494473704429511222094856484857465872347161452323880049852181059748717223349023068215885138739529591144943783263239352066389276031527317259151646853329067070114370191220933226449503951971762279777580229040915187959643768581431348561042546789972290476193962616294186768426991080377095283773316250967946371174649526324207672471959875230776326497352264045622814507038377593324994929501680229531065676488723650012933831572822400263950208474891242590380887946084202836351934005079204487313126362673408927526091299119246955176770833135542981945017484508254846624214831268551351048790649552278141189622396479419455596742391542537617074493956482255999663779841017579285246285321615164473089697689469539140049583859995621991404979143711488772200534623879512178739742875665703246123527084361623030780640161886781345277511667393794570828813739307427514508137276822458758227623494026933125936105861694010851449046767910781968470915600626368066352967710788464770123762263546783216918052911299680838596041380431001371431193926676356082678810279550496654386284285889993455327591983624938508924300351556628329177450204574173065560514744439816180824414204173928265618118499325683575529680784323053829626658035220031345760679973195608015620384284231745820181829862408638473450547034507450299832105340787019932172638447994154985591606090046016610601978220746062301795152761293814001134342622097938862658487349359434206338368003576555790099417262405216558446491083532796891305339674045753584050683892293376716662534382332953877843496458750981906018905252436501401879322102080004469839840979228705208708159203428194045095842161824847360214963641655115110216757914165479672633529634401653119286690129977633317221883788622577945168979262881764306251418217796088510594625058898801677573707736546110242752792037083268651619253329970283500646255078732215368334981599576631086102561716760757830872428732993108411796743906049315896270278912027365010599378240080976587685253583091518899093436035964325222112919486283193393445965707934993038693673366056780492595271851324348748060290601157441191137570115535550508759686286882401054911832409584516675461903650239796925821528391230914753253064015341681161367034768611207234598935356503995785486563286120408722585051664081961061294579585053855845990639066629848799347609893930343263246389587278980735314193510291087887248956611282036123274705609251560846024463251517214470481690662354453572705072107188196793482103787982272972098644117779096568637880373437519658719481505740398598216816189187966761383996119818985112590015515394223481594808611657503564440248418108913363159451684497442412661489444960521695037742313209405621059690974261572637315793794379677440724873102841290090465955892281884414123642168956075649837525128986588082640552099529589057072388482064297819970834746299843896427991652388306659627756465963429979650858737299816612017512659901012482554684970623582669072813163077750135075045031229728527037913503006542534054933589468090861039219997847338514352560111864173437760520276670970062777404973351159812713492900306184205216111658388040628119919635536664001422300765316028768355084176745429813373781976723970201426145812854179833901786609933443797540290625135995414650635293269981300742229038711602732568077748883712679365668572368307741171894077749757032055112625541891282734653562062187857039436222882021877183388203445513155654994055297326351392526112926807516191257647174656966130115767250887901575505484007414477659462959949966706808632729175772861125761119774302942273938602270372743215201135717679802344396156453030863881411694794415422505499240897472530023242070415905741143699924014802599369801600134767067208638953747836799232598058101584825388143912284125989188687206009986338010728892297553466270816114745883264482886303981434576674294683440248760062268429047295124246538883476478429037360702981294487815206982770721920585955688302364897029038472677204867317851968999815438954281361223696811932828147181525520086072839121383680313656581139112060603233947308159831356753595449151913383353571284775616776932254882317749998242878015369638256388472320231994793217559891486443803234889448639549465309399702528678863571445364702261028126769720692097325165070171050511909389776180970414192698661564378653724359936919794499009356110923693464149080796699391556416815064647223059318197356240584103864982695014796414902282403930954283438272952688754851554046413583458624524475902083458064575923310619391781432424502436171505542686909286997226883401457745173608129363619977554147739195497738086295318737440848896136002284219528581587744881475835312412986445440411167893173855355487597071416785417960327321157227878713890773264941804828016725975811162823994029677237624235427898024300995552973964341713395858275629905433405011757604661740369658987118326553030796538186388636125268444076643084691387392027288161868155248579952880152007710381777048774794275516275332214288536813112048959232937398635752746135653359288650615612553996491122797553726189557021546549616138072440025432719544026496635360924636482322525197196909278681750459869675405275277001815609547767246727575410216496781235415906859033510106438471894089522688377016745711832693033711474269824600112281413926281747879192070636836417778235559500180987518444902343799959690820802873008840616365599917760497894092830443440225507000088368483853042962195991566356651619258965051092855128433129867978438389175751503063302777360872992791904464847523675341631635478125908570434754784182371981987059914692790472701226384492406775915909398229852422846075516664212222834212501814721699492332714192163931009310485545870595785416539810663919038112170694529554997490549461072580193324106660275846454755585867258461751939870997200512676381159098450300366208810111907553398427572357281123791692390313407925304864749146209803627350719527411263186768174133754335266795261851773614088273995544151052570146444515230310609257177880793350450070081291403702064204308482605263531203699121072005759095745179065106001649952466494911899312554457572576583795192239996448537118029635822115989433854309399168071089245582023198892012365929642715087900535917049088216483097963427800290086823019253465783346868814990852325841907760123927157400713691947161748659137851128616172221933724060282449546313995303384265078163043382084835907253976103437584645208000533954024713958264978179135168427911724663853221574294884191438581148483584902285767947480088645238409553046510839936510572329105901883553616902775357821375270765027097471103921927759252848685508396594266610001812491855048964311531677635771476606520831460135750041777804275576695219725446530133336825223583529494181811445033364159692789211736312628378783854623971352465359212535335642271270367774586938861364486639679482678294193835203735381505721841653019985917795977471353526914029176606467948276924362596718115925503968682742846886659662351487695192502361979102093922417268819005323450189287133869199238655732355821882037754545343834084410061270228181146347433002177988727647818001563565775949266729013992979056687493802885185695939027455652589181639443146190476477138318755682636351442068497670033853992115944312398068918211327442035810448454839764752843540071866195143425514990693949685678854455141262783383968320112165069334479630680792144073604446543481163950409482510036502070151480612030884898152148494553980901026447846300145456157356835972621236758261770281754622619619806348868603323140248580632631972930660411949631723489267113435853525385472199609641937270284195368929336420160890612420510638304671115310539856101914218929837636262675892931408657082296104101749583753108081542052196091785090145556004162440846909543684373243597464345398761584864539426265353660758381734101778362916688762129788039013031342045999957276054562763114824139138852001229715843770466131793470075668854469883730202612038218389166364192162707439974335073231769215022464696536902336562264167121153281582768227382764746840593947457403289962878065264146644048359693072610692769994274737945379728089109402726499683035190468999844620757884861523144081745249007442609638416230847897695849831155830708944988397645643392892940943063922265307682393807823657978339166848987857326116525588891793414055763742974189461734595417355458799495433464471656737083855334290098650004907463207913773917530436572480344716105013403895491260339192554453324708471819387836671011982316129823024194187363710822446080374978309100459625202143902647204281964415489034757284854447945432055658529057924483277994861822238338955973415060102833200911952823073092716369886494388974751896643478880003015337224243439976489289803510901533282961548399586029317288768170024839186628539431880681895116556043014722664344311753906973340936513375706618970964889335204237101877836903580169162972496425848127077906467026113706296224092255829426503969215777602127249751571818897302902083783735758598301755943924473975460607879275547755154478189061392256916258358276048233517320067448795856450922074077752686091492967856313213554859873614515430971687949891666945640995914147600081123430837714197827444377198510917504331523476307496794060842993030410057951489590787680761671080549227912810659596529400957583061738451345648753640748781129877919837637052275770591496949633603261853505947492649472913701086652512303307403265981425777761359776329389685760503154460320504998385139568951115497046326994274506626052494216198647040331784179910208161240118460710281980665563948895489102331651840552463404976752060631780464100367476352639382716234370584758188085172394156854068228949673271084237023617271811807293612204912481676537876610783263550202904028938337972556896316647977066321586878719273902654599430529977514063645249743330485793617880031269878947038638000279077954430977346255235555042691647499769801235308290557837985275170693662189903154601903343626825420009241954011999256925829625897708919994286435380712491244253039590353679127589416365892588096505823357048634716145162124298508071221150267159588860305558713266458052430862928649576138785580369483284626953456633329993757473398841143591849525721942526207323482338164004184975018803475647646469133005261945203817343245552203290657330232986236744314617374496594550923732957538551571776796552787078817267981533658385811831504913125925076219993547808909491730020312258993225498171842679625277150263928309504668586180483966252806356215549583877552868540605199727542053068990809404819787313071563367541517344823204459309118346024898187158089118669888495763109757783975370396137329211655330302535217788302040041001349143177027709903488914404242409653801247083747628184625691577580257440948977389940984003736949963493053020650715219631519497552712859664483154311534691880064746857408203722529108512120534928195604685978905580894262097973166138966766599917897848182773350342254347925528040403571475522757508523006033792959756538160714017761392597986668551297744932870506031358494668762000611616242858026663403519978527595219788996312830474942582788551398317724553319096383656545106624257797461802006611172294938304964457984854092868719803227434763894947292694240164049375626366841802446931352882960860849995123350311481846028580984459421103866176040598287581150396506863862127392123938690180634215654777449293804525224538039224035324885736399901684549812179536719676477302599361330357388044990602839415074697497242428025466021358750586620614994310422437916184766761103516458983430762186952730814968464577369755379163575841594432228140015609717293337321256492212494550560132931496623071847155887708133256895007541815832213536940567410513873589040876542635095825062309244612723439260958590293934828367665646855727377402616031292809224743316411183765602151580993446588556908710164268135809336891907924707137051183977158451217080225304559605680520188983903540508980128349848962475555921224616803874211874891709743506072056753623785733717391230108311980244422159758432126252862832970191803582002300355531836945338012757414509800868679338499555042351663926633278191705219172947320864591616494156484133823344402890233783605175490037606824521925897074382796063517947561167518629479127884331183435820303814523685578332406748244234420902317493117864084668431566243882393126154409581750309275842898240815626165050644488692412574720939843111819705422082153703817591382450116122236879594846927178580343962742327270240425747848771333460555151632471191207926566068222210239608891668007523344252820219395875437206394076855296695005331240485117613272832528327700110329335631297413262131609187429773808719562838795537691572669310657844488202501835195248397044734158279455182287744105142576313177517665716211606303160473199037490125904008801746787134157336816199049200585843967560925866942725299627245764149644350461052688842658834204578159297885609998842025704476820734626095744160647618024358762987202887923314733724994984391854706716552975237769770947889610257284559298914943043809429711274302938382357717024734218904321585883537726585658113099099975286164221906204685990252525915332460335639179326021410598671727954939136146764147392379745874074665317569363206515586647335410535286024055110043966622791275255530702101843892924257995444474791665722700292461779453631204959794402778087080005466331821298365245083875877766812299821160380888313888136493523978380947680969258392381080312363500350075853564221211904583508052277488032612507191799244130324638964762839388138254105547959084272003228110170569429136418598897984214234053113704852972263403064861386586120457148089786174456022098952257559977982467421737690632656831200235754084694619145445430401215949124175444779723326232453745942768733332347755024155585076582301229466934190916826447157304889063346051656570439352638551881303169716847291116585730837666271941843728354059149997688620177296909497617975178704144157202915568233273983800822009716321311139654497380177941001808367686850002964799425023425020180896302594294855130180180920868654798294625728709621267185908067487164929939789465675696205493870413420415355968518040535950703139427098454660785242491159490682933626916538246122172931912574643419721617993849802300117234173064405789954769473639255012430331712541784806288353615262911619363080031708245833914120321509809624350643479367077682818778862159549312001198307536756720275370891448533366678801421140917903336239221713163750045603839801193109388740234714909584069858831335915866222404500794300914525005986660027040336383411651150176542204383330859808188900070883297954384975832411679818406946015493316771819452909411589992719441756528608381050530718400853420866789345923703822850993647625283804816389105640133403279017434710998034612995734209307283603460555063864170836797099452480718891736786044760832013672080376023661763040306236296878016890385949720048350278807457963560661708552893031791500417798241558972790792388409178703211144151276089738987633506468892161379746924449346824303811077883651985499659630520988800542943979487861589236495603632471112930279786891984824054088304139613115124558156738279230397411246603965677672468618128816109488343747758358371032658396839862244677596566173874825317860186661674759975709295568945607777371357910888087326133360863407564480738519807537320644081622608224629683264650820866113733851786185093548404536107123400728812483825005978014320978163248499739982670723433265045796413138276461971705694862581463146332714910807877320391566423335616526005754112659377798472982789906094103991995522048592207996055483220196146720334138517972450327367987939698806541049024921798510633256112344223905846701394213921587322248033604774921613070767673726299542779943963654251849815952574651281759108603715006414270006487654446256054449898179464329905814573166551645977041480429122200469540452479591760566358906148197950462229097523059239992156327077470832952495030597786286575475880708441054771159711691615735854682777480899388417531109098560490669982662754276982328524079716381036965965629405514247527683243539721214674354634082712951512310052134847136481775432622121295461769693321077916824251329686752129513076866761133698707780756083143095109492448881495148968814500885717669868919043767065634380755086127191618306670367924077455881558830920447201458921548790417491281205257861856580261518730870102741617800971681168669020599669186516110071733994854337790628328851920920328117116652814581733389450895042630429414437410917959917796768383463789384356281061698047495316833535434225509450642832341607355857864692346035275840909954993942840062931709502538732724769574541859360313451950755094030539903876523226018762896006536779322969718155354134082817765384011775871825515971908598880211597195458724250634718266701016589774768317791104254997823481103559737469100253470934961278147889347549175463387001215990537746650737976185079420608300635370347162451616298544804169757784145467200058906711911500221912343706668078529185064519377114444609699078097612512746846249843342642622388774309695920720028224024298080751123476201534993143324242370280964363005877370080054109663504631350244138548968219511522742526945971564574321698051282170987658473139388919715144526640423931132738801588379403652460076788263974585006375691055399388113325421608744198715577951670931536922474328264279486330308736247437936750087431645174323634688237395121130307239201937622773085152182948134376584064666746471545726650227030853743843500837642811913128518315317735189919681836871323497914925541035758495140282850126197527492168442726095912685623914774912024171751198080155564030401309775801264440933318745555104285263425424394283200706742332791163525700872848921006089972151502186462898221535561276114863433861708530847004355405169080286886628905044225129520005099546809528292587675633754481989939422953426255067697400084055275975580551231296531923504023945486450480291201904179062605361172777262289678774408523830050632792632561264499633832950541216970158793871203805304930693724068694307695565536161396461975875425694764176406661187792378677247032797239609492868552551088569995003476071100315197592205509131924728678329200876043422110183822248108720165708827874578075778429201069489682041531658613604326298129731185753758121900311429344192717920167728493760755489547159234122316961248521494696759302752007792495425637084947701756970385210822413642887473259437450989670922225014057221597398915827860591298860459307447532816726305056461308079362787645930775344352433937336610242624683398167141999605372961586411277129404997390665920863183934777474450201395500387261330237474970693910178664650363727734948092995393476011204814236271145622681419694628984018683595722278890516600381372901532082110152300047749255948236621808641832690124738238122161920464994904376255240988013901193468522450254573876971621123496393307690064822311631811417785584793138081844598972953837998323445211097311475197021192817865513141431313006613866699626961611690847938137557577714898290995366676786875142937018611384449737919681678949741468813312876885886218661233528814235071507074387175295565470968239170521999582304664266149571046075336152660621801963604110489734993933335503292953021781609678305927109972041284446899069982191590301573850314775994034903338051794225839717178011726112320694417735211687084140078675708448269627635842967706455984324156004884503881048832367381114519565128323067750155511723816561837029280876935344604509311246356531720922162643205266795925906948821050389856394106878082700172704229700418710553317007819468439801794472617595016840588614433652742168166621931883762885121608837567746702552554894812369349393717301708552628095496681535492787526563680025808849851804310082503895937467520503899156802381324519978639328100896502635677359438023539071481492445099258563272675985167377673022034598658551398492670784814560226721276471483234950478047815443214255900083510199171128714230393498996358213974211166521813389448075702256055267060536093018229311689715557297713714288985848204190012529074956018869952321968543287100194057364296256226972755147334132344245380545117709300761903343734551872448159482932827261056672125552076000424950905540620423702470146905363944578226790936359596286778632598094465718401828120148269523798736379627056470387189088374823729548957504144428245075813762405383814590361537609105676918085569777261392255511206509393730745960292908324566499997343514857676148131043435297023851008194157617199875723127375292131652095203289875336283836531692483319647917441026129776862863101801181910817444726474192710480768671463256275572070905166523212599618656290596778763832334754161544997818083460723406097783970169469683452014222540897438645770814385317694609362507125436844339629822498381815464210989539438528006635207569645622993842523148166212402363402075169856161125399802772587156744639285995383260283582558862175125392837874032466231955886393043274408494860391866287763654221888613273754046096292466834020790643325514656024021648425902414877058497037064461114919575503105062528756989881342250364966512832441582698652604198966738492218834261289672236649009333712650275727407839021134336765961117771105311508868635422288366818333576866900390981777860278986793931248841318412906836115821172268446165600486706828127941448027689163823129825341085919021810446915355787798127674148501505161743536539052173437087239225616917392623849936878616332037425625353912811521487456243823972287175780304642350192973545449965068782513572825855219299590313355968743072738575021176936176462108763630753274772536785964694043348485313609368116257890962361170159277070215615702401079171305240944298325026159468077601345487193124757834924796867750141866866227307314776788487187963069701553671104474449063207591734620365545510584929999751712777861039882925326617201169654639610821969017635366392017439950257842700073110080168455517127032855739183588799025712497955867241948060980491245861406542547148485044845979273689304413105344063929464538500756235963493546581001208408292356463655867851003017916364635704864965821656065161898381846033150918683478809000462867017914004221888088966633461499824704263323938926540858762395384725366182774748881386394279547447209606021214659356172374591829179151207286371929012491214509532189512776425158636762990031211541822822479468555640113490179876094938640235020396328679371133260209809243413659606066488875747715975614133785371624178389274923289641854136852515954332917422267735897548761825511477265547037840392779892378822513354997028726470251028681607431060129508254514366645324693495035122822216853163577148409508964751064197538950066497575248836018490405422240784327330180625088507134623851541892812737921333140818770080380912370097723047895140901639444638849534501926785357583446936822155104664551389191426261505777421870796602486712209323215459090102170252368165025216803549255980958128707793318295495686430291276866072082625655094525318532585490526937675993580624053853868417241482704286082129818079043492739779319552114570516597182133317522923383840955511029798272518480805168616875430157085318335744787328355774720590849274277105391367797013188936146851604978425575292451856937745880444358705943646216053187807509540965320909740173458755010269269420635502934257518933233539519182612434481210267278362551055250824852319504580297302135297835676410532075590918193732731081149863200842810349412670530864226666128033241383717422310308569680501387634549928727369363570046177615999628870303161016210990110837701740992475751511387470310480119452842653968269055067839721101470375850102548301371755496730991412341451129759345336293646071571643797337112264494412003550579484634368121617168809995985208892653154559916810494957322849102196698919903186461371413346327697761339046660371132463760826543943362989849280792173256653743032522506943019376831367424330118356003688240030791090578842507477412108595585933670654122861414079408680611468494471461819842264671967199561128960871149604372311648736983809484178778129902090733600093393193994507063607732075730491080527124459244627182776255082026396202570513126198128078343643283042884559833271741145977123068873489605859011087109524807464388355183270361110857106173193303269514667297520001527610959646216067180107794415242347787990519090802075241508501143044151672690537977950620275026633192196809485692135589623268495521518147923775102650426511548693135682072999246341038621824902746226979014766139229755352178014432555884882319016303563216652696392662752838341048210136313424705531965086357024024831941420235284449447550750356169305669937612276867670250341778572100014499379761787195115465925761717891437313580064560607677536557269097271800052941599777046228958495073733730862509516481544633924151335694444404797056335740589772965727075156112128243239169812774608103093917389113745496946123547185230127790506103866585053275073726561761750218183957842681311879081105027274637924349252675648719600250494417414476245448837936228573987562203719205743334198722561748231105062109613106371735076486905484682086708855102382721361555080012754533271419428140618238086605490294849440037693717609020594278244079043676557931838081709473875018720247097843705547493718140281706782353970343729525458000818459822232065499263949859831621848021071072593097361944161221823399514833447027612008894740503908592923773140829687394734742424229910744267658989082075382880857922285174651457273036388681775731863738092784598684627986786263366557071981402649067197002968561355801445358974860418764440066560269821290677657165883075333285392222315313889068926855170620851412643147222777408905586393133586455379627497192880107182391728129927929361803646295302636405741363886367088847206403546286507376373355920919876530134887308219716973521532131304604824494217927974941653958094043280268167880075445719208711485759073415371233748643636854292095878398918441868277711109773960879400556554428413792637770247352293210917590408577409602810822813503575673174869791393818542901123873526369886439099985518010062043794768519486994894241488668373888663848059295700636570357876673042857387531901288090673891985399609307212622142549724682681712429661229880066219464049085583749673123666969653786500494558260559175398525554549399465064614034048864225001506405030537378101351565622043884352302614989753008955312656535757934154130180826324377790058346719901184656771342650692318329422354671523116508445380452293111747922596483491283769863602956654876524283620613996283223255924347823435123001882517074873526102632760438321267479462516844036213055857745645387015341497129642414291003727558313306835576301300731709249681532863938086123441596694486913099844995013933788944974388834864341721950745617265778724525653782355846882867257068954877428313071251848856969903787699833872679138149612469745856404853548023648551731873663990733207787830628685176612474517044345941946519720650442292285657638702587306111865780741601456779256133489963109674288762822626798052110401856722434517559695158132110990794393451443437627536226342589031893650925104898668637544596768528467723237766023714755222280207676178567111158279144752342310347377413393832652093375901224507033128186094050846482829360677010137890007828068312634453975121725857316039388193765900317170046154650630065253639700540785864203255117512935413878677824360238698550603377546939446619468715171564924714407053823360277790560986938828882923844656769367933071792174206422746422624657734233828337597818085367064525742786320513986686115555854394423174955998890136669540771788572203598152108010371072908187158784250556403856932597206033703887692021917484730303858406357529307073461475079977088476544036072814102947782967736280862491533263119689783614407866466765088133593998145857966934326687625052570902518025582729562412952004101081529520657254614205352949039557264270247674408798743910918498061790894416013432637571333655628809489507409184080235224424719891198504831663671389854915003986100631929254416633544128799994001698125957944530394888506655510455672417970094437288172425006797495294361128780441336988502122470279337628380091696734286413188001617344512124583384725580166772285580100378155401574564800940130423488746815695956121711456638802237433483434507375027196618828605359455471716181787167236628334057028139836593602809463923512466734887398447683180875797261060078226085230609757826482380277791020563545482835216102295657267865957708981841310850982109548573196576709635574121095694126132040343934953365949196687963549250834907912328051996770365280586251303881355335635489649782212151230492381798209572794305534762940184837394642414213751035373930808767550040992190384759907997792435375830718895540290679701224293432187394152407573582591562953881413997829857049317636524831270356742071605710270422915452735676303499405588361645628657470766887272298072822727103841177352339387151751990240641273745433163982958222943782208211441669219390706479099827829778923507105063643848801339139655939660314713774336103548571675252571218250336621445659021795168269962015434113766429227180564630814799968735085099629756775993281802992018184497574503052497781391100344562534678437111671461934917078399375259514552274529803010615727465981849893336571525506644149359186763167543828147643776983839782608881948361631228745963516142173900693828602794254771806467798008265612282904391314931374381129007140544884600284647731924793237034944599516117796937328127628687208066860935204619441983499749733415814199383684643368401841833855824989554603492649114201997113667573485087776691694575634743944905944755372100308624936504524129496080961160421893801129057743224447103791460045577915978161120071894551283565439632576379034158411437457166470050510264243343931351741227055219853633576544807082658697192822128043811170375913172073908910484396784387078392141573027777674908557459005298850346611672671797499343044598836350958902041647515727374616556563984576654235333367017975668321120025526235455688539252213843693391321649757123789265346955199245272131492870609985328094336383752275466426151562370014817071355533901183706274450124938062285390403049787343478791280731818676829632688536863275957017713492889729660373538780707998739044430334495974097353995555949043824102402674434340662342355416222003170324673432676004655169564821406766523631477347865375242342422867388168506848219468948907446237350636463908334240315001161900390833838989295746304324625072845270424105905717437107821772450026408490630613120460389186327394219132807460243461902694177393576933652142769595313899111100181728337117718802976111900041698526818284796771934372728884389631408051340712584826424699208225727275636358797569175621937682155153588902488318903860204570414750794233239788276312757412466388077543409330554525583457528304307435731464929301468124914200500132010588279577686913059807916470317421056768592366485061596569498744164312302911870584161132076325217878803547993608785302429300391217509825193542459623621008872825151400978446394980128878811860219402476354306038777913636740811347856907311334957591036241028422833471968716943937379655037862871400046079949695000907287215031579649896022056860187184021742456788610850893970128827812348804681891602064788978941909561989498007676341728668083213503267210439678634253342436981635597722732320757184857272590308126050087697546368226905401433056412658321566622737046897287929044056343789647508198962013636770773832449908401129954107980398181151424654887122576298669838180261027985447391183517561114458610521532428050471673581246635046855362323125191089157108330525126960479966426578338968027592420023116069031660337193146716956823193091514438633142751275637200117548745835124132981156206759404231557988847599821845712651451712732570905463621139313782178062638478670552965135281918088024111165590531234947593921245115873770961507180129178814746330546040888549066509354092841471773795129542711764512429121978153297385739446614405926491826051787836806438773501268269415063094942001016299035640431451194777178990223188506628353061977248486017040384173186326298065854177963696605809568665384178468715546662665219491112059650948823835775021566865841276020341143592283052471224447414241497129318717707702104694758564554175375795256917889174042428202325859022839287097855642907767257359627305065063225931708737345280380939049898890236515874752437331915255384909679161501088944412461835259032093896361837294941490256462501935636674315498832268840831149348888745221839729079864570986036686987666375460469104307139772635768626763133437337818663843244593083301179378749110402449543174581618397167813069021902729537905726937452800508312798862657077618798245940001585100063385617845464147263453286371967382432558612566991140141458732987294224312486972912541831475926491114674609724177196525884298425438776068607439519066341201062554974439780778228515044183222265904062164191267812816210184458264145113626079744073641778015577910628410698981514162673576267145382851084517368886221248682209512021339168991485418770682304082266641815554545470044619741818503890130797001282342662833459655283838500717401243751279515990101163078913292386179462627549127877353677786973450328081438352918909335026341272623564582350698668062667653297251560622725623191828154722376937555220070128009393704669989721916154129321091088607664356322334543474193742426818774544286502925412065616609493793110502832569094102350660249306216554500566307445810214125129415491312313131052902835297224605753738141458331130019539907338519457200950609554485517734947735212135036388964452012514542548845441455099175740786438909926343984967646235657070688209330974562254039988398172204169914557694975480274566454929726688867885874255029570527439606763533618078831940676263037661542288350972243426411558806148437204321439493072892945493055139853520050260586214132858189565115264376833706185374587847590198933526968745887023108715971163068515684332949069713618364628971216641649168085100821075535732466856749008534664416554670363722092681107476671761104973693243155612759577231378474824909912900359281318585847096326168208106767094652269142679630837376630920487395820624400807684253358515158012752895120931698922627241848369325639044794300326563825245874442458084521496060214882385996389029754818823326871366170948652364048971108122040505903655556809482689621365448315982826318604658902258831250096474735929761046863602418320513504349755127282967845582122151389013779515531331258263858077987304117618737218081298396470611655089632273985503625552438790381649318430986335455399522039377692464868166385416450861606471183543544640248638968986387284311088438823355100717125387782339853316218817417602067548295818559662876187170972476158999981818199633680251635878102541789068653267423563081251420537676867988520397913644360969106036962419591843609491288729444076220268798095736466873440468470434279855660630120725385725049723958374888405045533835717772184568639749993592844793149249300289384536698528781539586944921030635526376198071980029742197052191623173347482383546944450696183559743972439626257048462830683862203236173439556280840283185266862391537985632668231941973419138925159682765465369292186295943284335674927158352654704764615007603459964162065441780496659223366944648590271176914321107980800725838264201562468020119354328065259223616323085525113189671659106832679220769959338116522226879554533030556043605513569197118753665760154308647627595146290719599764560622336875583900507305164195466890212203047454203345723359745679416820920506221860173880558157218108563917500167566056909596643433882877002164560472194068660788467265269098179848488912447579230069203708640205152382524807393298100929067122597351036941515543379230152062820912863657746732872822559359697607129988787208031193052169268225176492205081699291617201352162248589434686211884506719419071969591299386658806351208956524406826813102875572162794657677940105385472256400116582977512697042160596114943705004979011042193815312122395429321243303286261031892644953108418815787942898640247150492849231978847896136685130586904724512826155660869673194764386377901053451718159166732998461615397983154840678716454310004670334629676252111557437533115441418634710684867732514551345848255843668392663418800304167434998935909955241693271717788831801879859647356036888033049579339549690843494663139183473013171224891055442852220499899108051891670617621981851748367545039462093851586723447068790739133373505590749184993267414589899614339033450450059535786964487047817415782120278411673102985743379743704224501566924300690974201164801749998804061492658365038061049049580389197650650781459252888264500386643061683181305554418601180707260130218981255806164843033563377404421677136454493022411709685263671420657245400070089943021632852559930346352563303305062733466964547447849800507261319851508614276249178740287717309627694475586755039412370181896416333073784530770837354953110903707726113832599772237667571893185887038671475528688778561704850751488243836542348709477141238337677763695003269298763503526265507456059949155960735196667317293553532056647846763432252741771291312794146872752550290503093747579919003401258399002598916333855214299877801195957203087690278500677365311813946967512726424877432896430950301216019202294262326404844465767409406309886641634226477433296597269106875114794430846830509694177501437676467935410242864859513917036706132494930891670971815761201417437643060175710129948937822889036379709844436788336319092392349607694865987629696340125508863874261356182435047017925490314634168510571479054175139440109526531147380869063661384185491953127572366198845441990211143069378270120554260160400157687472461387427661143617550474101367726283765603179456846476658142581425590427024119076238266341905505034044113239268462231494772756198379854366778230937072040033097562019735026529481200523630800308360065621252526805190393670263501369281649830153613389808707949232621260245741036408509358856945217027163162367052796986212655399194126350190643109556099998093105358183271091632140690247891456246088760959060743635278598927700044409895550390150701801181472863772871763167257918386279652095853917550353039599135537628148795200788345279771552222604265072146396677118411853192978513135715481682897238151035019703285561115915062926558821138207951820660660591925593141779234181713950135223193366231626581953812377269839564581977792567816620963798657676944952160186584459488120356135100593138856434326652137259490790075263205192684779893783899044904150097157839097767246735778531354507492563187388843286439424481018127165577322013336160281258908798408530638020541068184281870244792547158876611166864712035066945842415076202014503332444845494662778764210207840335214538275984028034301303346273796964372997791415018793173254677824126790848598876009978839683124749726393348039957617193504918619100970580179310856060159881695688837839860427175169759641031828509666541393640418821425950895836213457825435633743541357640884128576380300704617420610453882506298187717194986517584731625447646610014254383755952132238869195879395061680166734625587939925257444174227901295109098901172369676481072087016798731139153387083514144966817501728789635367633182752884726556589486481409447159139765836739951667089049765918177337135114569991316803816982911818325902250108140478020947436795960789506133419850325664029894461912695802104231961349232834154857813470623677132429787469837630965695247194574197057932152331713588109749283092546877730423412400154906853880727864145409450908758328279459543728840951624387147122167878849602629302408870204197542152243564435986081162647588805852119395324092128325754085438914762501288598439739247437818883907308454665936305736935799921185101357232464807635918329580322429189918150938466046556898748395047166480602137209558699880111279543708546443835149628226478869843530266430448625175688083971914118621610208504998867839968357885544205028211774705708048166888615436075442986334164688132180629838781081530195559620730078219870635838475509447965763471295539015119919214332524456061751816751737000696890015161326115955096278713373118805767532864749676783027183978837062784583439330382154714118819066742579628446250477735899758008440734869695407389908068706651598967532615193552128054157802330960136785355741679761004930555379912202987290123443418776958176748651813870658921222331674359593934828427887952824836874709574462076829716168863846551714963419969428185947340676156430027788183937398976348046727439781547426664008186468682897880398211183499347721632866363096927761060072728578594775742257184878935208597056498711496691949150618145241336512891596563471663244931460797318423695821765784360019939809978839213852123887908683765308666901479766515082703274451494049807609480559218546783747924563337050196363522929574396458637676861759691922491848199711237269933987717721705974143199483282280534427563057152936341670375506963111115691618295861394467761346512767220282425975968823642140305195178668080267639665870861166762256273921742770844026043427227966090919675902285381067924005509631321933704917066347001105091832274207576571111476013947227083224695244511193237985239326613994569100596059138400983241258325264854765439913124315508099885569914263189137004084556515694238781138451856367481463953217945428319563253280060555958245220593409477156318714538308529097941209952941809691034373345316681810937437317946062395660584326946378451360917973299994030338619761915393612943271507992340535024241992561316405167291314284009197182342881071121174069131606622295862532348466591254030623390185990203468667193999147319628549201624198958105783537266861875714679263281722646785321228021067517473379877993254156180366450575796731808772684444386153413839102707943017915428458801220520878539016840949411051665611327246131520554530870936849135591006852366888271626287985260769526817779413350401648567997730070038070423809861944936464969112284896118821252302056494284712427966354318556194126213683340917311621855947890137002263946536168207039710134906229826282124399469047757077234883646911458193326207657260067429365775349974868511737344155541203736692436659262984174276928776102724739620912483775477534880740212746503236641013288136270381751043941271611290819001072905962278949400411620648311709204962884834386530052881757727138009245543608993287919208935762352688460989573122225232785214243748429900732362041699064066986035335738409567491187125328962481221562213805909949426500976390314233624970459832214176301729082691089982443807707032153845750365306625629360688089828773109507179657614368243638654355914879531034556951775931051267313634313103573861466950154133505975343322798217915591900400799597647144110614762266223612724557093809777573472366401306174392754827442740731665627780325782129852471466147937555831195336169570428723079580578278665184776553255522812128731737265561428571218507931448754114329012243501692433837499994041141661023352265766083435326906966782884743223800532587877053361548905907448539162198173542433779495957872110512723232817943273228838835766885303825313796271123066849786751991775963732294414273402353937968869244078379623455882482551765869413058669792065855359797203230595616923318531413182210531812142557863679388761565698139418560522576241218058320279907467117571117745996549024703746118099028819444289121517296756517737391462738704344172836138040776408831793873651703875865250177504796068821063409822758516680141913815695268456394546864327966831211468881345557003682185796461946185824424372212024898111022800004372211544473573423792687336233975824084997933034600051344027340679684143178074448494484871759459519430334133645354975508480034407349683423189146669053841656589259689622981822812178673865360453867400323310421206432126466115671942823898200574098961430104921816103186993726723796252470020040593105084862797846904176140152918710408731845649073815238531631287304057639729557196026944322995994465923478852798887888524810503768653271193946908163927445160957757469294458340970883422739206789000401470566591317894420967428523375127696133152191110009020769445564643056676540982697274312541107005541738056015521769854631337539961741564455008973327440189120457909615927091493697561334050376329274768607019220712762256384697714909391608753919344333216194327149234278090810815581477857590199457368351597564896709991798848656853330272365079262694729809680437266474640612064746592556441345949315289568086215189941499314267788795284698232036029980350264338849753025269713554332201853078819063592660019674846427229072459699433326651163054684285309996466060768461378912079428908826187229083553992706055376379672573734723061193078245065918136171520458617654855846679062573094788245216454160110275928121225991090549254193572371179890671251535646979787580438970794562949715100898707653424110161317857501810207672802116555373400668990992194866455950017617727559630438544480442274074403835357995242564428047524629176296072059797335496422916270749324064971724576102080082222563649444681581907593457210259780766454343497626687204151193955476483299173289706404273349297519817533532339095899656098218088566744380682441293607286889102399446348520231671313777203815567211507702516347036888308680054036166919139535247526105925420787789387599527888695343818428504835706066222928313425506514102992888604658335740941032725789853311389400341669703062715696724637342459578140407032276605030414314402685458235516050709646087615378339130564008792528309556830302462708907656629299687136180300613775325769824501992567762978544614116553556267137522702002810076681661231422147331186443062231618715809640566558577688104016140993612256528135597307700897491062926432845319296343426483036381313508170442164049105116944666689986396099183769269294463727929401118250795953573697711927513873867510681035371993181247982818261360250442888208917652477027493503545355871716651755609065975673354787958097887075642553120988915867646388932561338876219637107621920561431464481432916178442874789506123434261125674397456424586879360647279996666693258794458574006805354959938879783002489812377427664425323230471385662135662150357990760797901770708766382937767749360767134146938250057695269759836993378941743660304219100901621312337961112742669668513045169569200816418506929739882621735821177813158816154548895048236918513114952116662626215164662034318047207508242456621620663154560825320407759996835696768552886927801642349862683065053290196468317115476353576041472448413017461989892788804180005207438591023348379376522205411820271424845326836068658259218176429919827598421756382025073196416472540410946983005618170279527608649257997422705757215493284003222329815999023302729603673909428394532632858743784431182901558768006031704766612547706136901608498014247307756171891685543966884491695435041977217751843686103440349030568955801932695034226283594916266004077803160386021990534544412452169955362240157413101714091892861307086656429260625605422803882560029549492913793710709943486692377064284740283342877679841679181290500692704578732289189757182966518235396680661688765895479494776527667997953303532599419407188013242905602594618270029640491011488060268388665380433078932192828880580264346449572222613354337081899284683362797772747696740024950461773923815210300759433921671944977546221036274818387026904944315155777099704763123115665993228642455314495204563859191135084103786313427106488880238792420460419538513267656637678012303882813617533222842236264967050910041111552876149348357779462737443983477436382308319719032334136774792955920454217402467732936177474871169995831078239906134204364083963008026643599545807650109730034670522410254222782707257119811125176688816991882347395183691671935370663067926913065804932745507759905277866649273869710837095861401800654276834495401070914604026676557400291524788535371692063915657606130965325385042460978864649267194816401927772757065470804679516965630951962410920682288796190271258167789589953288561997273012677810738446381494890395642166112657436340728553900077725985222331019217598675329743662250913697100199172951124768888045150397246171041778497775863416115193986422641716493320588581365823392182571461410114361852674473251981730493234229119541078860674503754078108847636155642116812259504643670738425711909981668513741320948855274054503106013642053480134047791539196265509477783615762336757672146457321976898752541023460461078837644269317310552840438596862468884093798296019453815357195494280874362077742113751797823153302203336001497937160175405230476434528858176816403625103704674382537363566574133915916653008842442739983789666488842074177150967617885486013566816459666974462562754310964160375833272470219067250432971975274298983586896340995702232652533822041263205956006858180252368362311965914096950131290216353908001619210577369136941010785909925004160496215229218000848218351249193176921885570263633657372485482238048096216632919050079496457933497977347619550487620131010580962762678221645064109185679520416783559475808161830137176866881825326588683076840231329613865946564152015594321026214695546128194181169085611839129488843438782765743733708381728664234442902732782590659688951161742759350722063711325683372267617720779817658333373385187361881966813354320144453512454135811250541324436536238215835663119639264714216921128613860503857434005526353688309529860549440293893486755127163027794115088771351415639668373928689315959446567864195868396750927403980737733622811623115858974938695833995432953857462350381988311018240953776880059163176827660376104995243775697135705105042652552071520546004189546098311763590323531314938522626954497988448245601377642933173045711968095154840937482502398963370495514866926793743648447941528070305709539083051288403133545230062039011666701538486822362226007756550792739058675420347351016774574139780362583946400921987938829725783411215662937695551389066755596843360396034141084435796189082269145984872742337767709413737242759690677968452362101872670375885230502271997404808938382313608841080008802655499169901552280983404453215654644500541976948443534900286253443345643554469334036323461157660234667347411022880162842742314511282179032521342305489999906499322239576623665305351943893809589106993576006930766880075380128073761063521357591485435460282254922315400422907486314883419448451865422769240413211943106823337213901123474046628990632267100154266326885496001876220925346691422161544864133019699367844171735992072560711973883906119848325597112870029878357091207075759752621754358950805156703802713524786041328150357252974803068176301785416267390191432924050216784502883740433897099655715921104320429687332237898038047152836618785670710531181467082902068149706029804552644607022867717438051210598529525251421959917739407971668651623378947293761377262218583351108408209482980488656026126919959483667952684322020281936035090813376210824803757460620450517632989779646962297234073558184475582279994149599462272925944310112057196816996777815975472396017161981330555427674505160208631982630481897889241584355767594117133405666092178602887873284311836175155330671834930842062962163216573288910942064854544841787633584097604496286096488703987931363694659851033394670289421375966748659912811328014873987496672457579320695604575877577574833292409184358016103194333263093454072515443954176389376892556062672567953593762891484598685053816376166043833118112433857685335302993957020762663047823871785817519790169572572788094147275449506580909268561785562381226225460051141188420899471133744646421259476057539534789532426717343611851118361034028984021806263081468631157900078239525766821199312738215202487974241861826440730906412165550657168050020996586959555629798415562490791060535916748806792988092468462246865664259041000165345015782163641807485371849600083145385564652833397972624143637401732305273837571949289146096725441466708100976686215304233570989880036213267115312052328453201765478484438444721684849951004928544467455183568964617106085630208762498844395881856616044652349742511011834351250975682260810508341193940989164016290683854705265172766899784340203947398620869902737460580323278031523122623927874798406071400584989778290159714293239812257428113011775221825476985364146021737583156996110537096143635687118955237123860315411520261345905951544312185402556203883430254010093733946643886490541912207458306169008133262944040601094954898909541365905018316537731173565537720391067323061357812046275083234649892201536752096986921753175562959052684477673927142675657186218270635748701967364006872651446911060203213132808355745850394441082118664959252419905536805016418423188675448666158448828779850532486920958204783433729409398826636530275039415240503858310958486339849077025620554877979838469291421522747894747784082076728927315414609635693957910981011660802581161145120286099234559167398933202857836389202172315350444505344247248781270705362010569159192321910311723655814561255933359424919545700294169289002043123592297743607699357884956517288993964899418210521556135649789773208785626380675922821398098772711399038130367054894484737694190227451397056310346821790573919622437197351624518585616614790588700537119577668784849909836970463528514773575999081128063158538099446423063882360213556680117156805643085137420746268207996823163503484952604482499739726613102303911099014059700134882237860070675704594343177468152281248387286371874065039010826339914320162731257177009843515069187449747270490693192545813881232992586456807445545388654816953024140809494200153028193619517174156939718890093233339251071788421792897546952152498127625927497052920484022217378295315248410766096825784354855166842970698184277423712975446944407770896807593834706891546168280578916545634057921937570344457512680784141187501702427003335567692371952368746087535977862092746137705302194396279452768564809819550031128882787359168706639836842151685774560446519913701708139268290848809331162741320155452457698952816790702280793738302377683826217705769708803289874340298714296387895328412012473114971301935970099425340366186469101179634546549137052091619183781214923151316557371628259199220338397478097609107207352041365847636650436654457431109588549451833332520007748194288507795176126944772024443683574142305442483913184471215230397096159324982176557958202758756302986618517312506434221867501092175741979851592667193955562705440114010924131826618648698365683652495354894241908600939651676243807014036772472215616353715903981935280282366624109838653806768119274356091115973922364804935276198136832373599504742094006250948891251831004596573090455802295143591832505650636939128256119239497816931232392020213183875896656497839605359682662080177344383079405899600937606158700957695480817630676618538878243121188615113633498899480943350773525090609922371085433064675076940122696953913813375176039216989617629041950287734043811121625863249697887077835939074856027497134735573230406639843217271590232296532290572704567069452572658558896806588628062314150940835412216885915136613291309576726571378101141515291602176803676495199578568870092014679651288090177380132539016988510789360890266795870815578452439917992318746027974658840618994206723046683238010239628500163153267662472211082205066537947183227076468086544686338628942699251956962957806409977078030350106126060597581584145471607962566918059960614765890807737671164933664464290216796969201895105942126347087608083440116542354071260739939783808216318661772918404341019695093434917837584662172810243829295731449872348455162369860363783324411292087582879887282996198174088937783632769183298815882636302942942349770687889990751570511080654890894444336399727238832443973588741474760440723741094818541290484340506513679723556418947754079388470023523535646040264909327194017797494069849579406687572973591548744994374485135313017765138250136664999929887406916382073909785372990876939317269244918259380272287437056152486760858615873103136854032221874445905202756950816860638859590787020690452282452480837142838001987297190819333417248005041290280950205423402215807458876897753998832027763652386519456999394770692540002816326864142597585409095152868396785244133945476641125083394746459935896596115460182048108574354571971973949704411081243287034917257981409832975461863760920628822547642671225320737114866783040539059437092064281190214492253322509488838533002734870866861343529209062741518102650706094229514683625331666708631799877642828160361616101653812412571847967125360938544157683217274919947555888191630282921378437641750660596615952965140245343589604928567817100098457840950622706060963000249765412843520982025084907279047537339239273659876421975206706227052059978835594326305007852888549878386137440780932871619659921660512570490282371896443870576221737800430168065370027033619677195722591382061335807513733267347674416765190661042801455464854786159890616944459758862814792517813570669508925872967899715692210604325875083204934656782295571168184273102796185047611980965949107823650464877532495030016510422969692236424512880572802319534708348132134412793069943630347755250859615407471293455532420478404804509457086213425138969488307907712118682416174136928632775012419339667825905648901838410439485014048877154525802063375359521942532293083450892115826813602935563520691307674431330290592424468853109226923235914780099565179326083240627776342200074691114491287950259355561582411224799326686321424602280156773132812685405033707895131715611763942448692309628306013727776762303644310087297022645292592315842824657146752032074913498296321443902801490207965883376549815537533960244228608091217224862876529514723831255838720742910263452475437198901566616183115978816146087552385509273336458465527138745900542843817578306729680936009291225501688014926211219194425126964961398931375119792048212585280339824716913921539100437971672645184144608530360645398339062129253616366558028185953511936131288091772069634593368103203427097821261688379552625396413419410879740294750964555893463748930796007604554482815445592718667875885382861811749530057285636498162113503971330216009618555693001895110222969418791585084864262740047858179046531852000176971264224430457409753631780245557280641285817887172251238049585255424352480827418749747817696251300777761005338337686199655541049993696108751493333513436783269075782118580191824528351514898980894662653722707682976126732066711814864242294066194365615014654580658027384254970650767909517160523884393805262108738700012913151624716036697442663326337410601732133535855971482541784717487821725091833045962602146246624474420660781350158642617330617844297787193057204256032476987237014301067439217539842703302010385554461055228845610279928456831840515756011805333010380785285197589228477443979723802967293163794992586470060260734381666847590045466363815330479141620833878380124875002761378967992491963288851460205848755473205137001596285969217208424811993133007343459382518412878003538374694619801853989184310722099238305329359774388014344582161431217753924512006663634465157732329374875110811983381829624569288970121872718743107264060478346842947031152421292436106855593543544092643449329151957256286562987035169234821509719479490611362285372438877705673731372286911532727684547320731735546020446389964619820582972140116847212957784975290878556972081312619096277189918961810520230979977333516174526050188118833471943073691660160307814362126106973991219507448584415970882580139165360128180334105528947307549745352153996518342753160403976198185670843486571061009953387900167983988487143322609457546466771924762084596185640622956930777388435207284142855372724909580136289774968463858352613973695386506383474378244326550202989316718812662062980805863789562963793376288787075618492492878286802510874276008686687822100279120114451742440086810010529649079194403339268904181943314529656714647465226537982262982272200852332142848134645232467819384863854823779358769080296961352539060094636339494462008830663659430776157544540308658915423782361295990116834379922822500293820513396148955881763273648683222680132003433846218925477856677687682843303876755132512053656861038190484501864471124877404444338018449354117743625237773405397134848698349820368474365815079304792819562504061740060361209317372747892349410064345233881889145437243236312623100163138788616391341324899036767660596475300938142581731417634196018713943683769040185523758380396058129572719306278393365812180417996372985340002463162501858897753417335603421166112538327096713004700773501622002477502048296667765377532437876347061352698186245421952646006654408506935343414353930575839917600002440990877003980890237330764401326914803485232886319688860864249240107675846871839342221617359384958961093041877755288378452689430531018678844642071938006667375639049146282709475334933973338947124869037146164998185013457300549977994179011065453252414038713325068228534597425828880990124626068876833495955284254011383567607858290359017049894532097892528701549944508687122035627493079590686550292809213514784719608022337775891253062238804829579630427021461199697164656038684814642539762419197674103936588279202520851254267546276041275164189784168847034934643997632327802062826436077092487455343192278121140086798079117905789912450495496556841142544332097129140615686647577461100854422280946137005866325074701628299036496323421492397240057335444888496455234248970255014178680298482218511501191431493283954635746183548418385185979838074203449194622953242733025326335019670321267786107020647212094272804010365913588524366791628300237137852473417926880567129968909116578362361298814526688302020193771520783074298648993465099189827254655673195533905030925174382380942904443504910919015488115952674509115827988561688560905853332425327342026274514872627973232176257851347129337521103945481291114811791414991369255852595335929100737966762929827884348293447501687952232196295429053330044818657185060214020925060718423052783467896789683270216993175751890772734822378398315619133595530604843491160189361832622165737609094612395400105482489788811018504606879002478980126296315074745298395671830528396955336332525406285513588344764173550989687170810925519050718661572721307382189635808085349064121669733001596210218579410884968615904318763972383957268386563765441184020414408278165909146451113579415062293116152168968146672957203117916969313998062116035325356504502313665696490397154793067271355191298283841522183448920754341052841210122467781984380775079651958811745726929083039805243873409260122333619217355892796188122353247826483945429596838696117533030067136476542826016204759040906279217024252647893623103096717123647662992108083346818551295660181502768925231485942310473815326598800850311095746780505342487068315369829052792250246265248653236476007274573962345232432177061665055588228903256753336805644425286954118347472243521174355965471699891710325257346075757137132893444799277262521807878459061823913602987058558491970164619562966792097043122899250705607647117976454095551576561980504242980698494282949982134657760277551852374687976208716879045982256662088950110942681530044523453421389754744724874407387331152210463283578449131305500106993661223255571113449709301905647749887811830318398874404805429038925854831867527529411596872700610276901169648296852378694809171154959556536497061823821564354137122065206011151609020843991527504325867723501049188175297947912169634548206320832046627060890218993213692635064889411470956136558985254148619637826798043189849972303436628594488410100700604563480345690843017079147257260332458295031906369783797582259049902276836001216860908493771994008036583310336415925148240668247567479272827129585816030165826871670776160223697288808711208581336060768621936923488202632582952545543516765877529743930778014847634832302297584777647764330194923161999506702632078919195168185461800108484810115743933432242806381607480584782189015158825418600526757683995266743746266996366029516107648295495963070354500060576879421858642746000893576659742325536784062824261716331090849105568420584529690963279285101765881440248331770093227303627917855689349269855349523964971117416340263571303143088531457019933867539937498917572603944739923070578538304180286176466052723425872682389730785651225176022601532837602526897568059016288977546957810896357124892897998515279980748133933344894916507021178147692325953927136783282026256899686632676526279986960346301656704100515691197819075360334374861752710402976915971806729700555093590794000290751027625768921415058373681879184317473648355374736194483670685602021551860474617782835501696652237693631721582878756907008172265996290228855317677139341336338724989700976895921902458931778450595914764508514275640815394061216351855259478351252133764624243889817951721571527910956081839540607191214497921820253885667952563892282994325164144990781115528007814781746585017835434339349024827611733490307809771731292553430046682355826356839939930246211730505215157146426926179723365740341906081627273407762914984342879877095685609799658563752433251489634134477760586835223183306837782429079296452312424264260369388739536135705227508860601254355123668653786316193078031981563352176548034471705688737272185918445160476836558336410792925404939668604187616811024560846339840490130074579528164368570275782374147316081947905339405470120928440144460133241560317281056363061549494136322875964522606778839552941602937085642524653850159485494344746103485818129921617506787852075949662164572383287256815138389241452432226635556751803974473709419545622058351245893169627440552632303136380563073994213343862349593361324403967416902374146424492098025398901523985391831854126387202538986316635923559343489559203480682455963038906043745461830151834424354762759940248046516537496010074987087777172028939254053881891238767359517227836966717080747495564959864886320273275964579293927723920221490193489718354178450350137085713187138796674769582883433726350594966958629366912393345991186070629879672668432755501352454176956839161591615572691865189793609475151399070797339680606555285192177506751210891188320074762969725406866421880028604768546336139562223100561173798033956705693358458213722493046505000436229855714771417337457072617834550844361447266884506043230504666886364193470032518937666433264116281032368114420456843146391812049198206920561416855622748357593822369883710303681612181695632922934701083233550624101846318756109787698714651531090937742637948116435654099865911304666014303803199548646835600027425499051478713624303920887538170223318771267113958354811186376805137429406740109745943674144844330059945227573646349308336682855039953981562117991080550475100167515603503303590099394526946577343407467185005311521425261652082447501499139899730489390538237935653090292410451206509418778695535299026083926860169884270276428658810294979299070066512864321148397571743910683023109494894945598996054342799454206169014051923693034731352981028870436291570791585863001542230183563233106537890987536012561044474932290366417468254195330773620289402233020167307052802302576036663071307931980968426991791206396944048627181549181877604555834278698377651169273972205517419787451434612189097847955350445179811648357283307746922427392869891877540794305967818110338272502150278452266313473878619006375166402072244432482832784778806489217611455083169350152016415548216082164406335667657821642511625164630804298165773361506213479947178199681949818115459391220382140307327698093845188830886479513534958471556462524416455080903384403023231248967703075296949972981482170389781826627448493248066032738551535096443076372610524622702223893096259673162165158715965488525930291606709712603277270734355427643920894929524182518599331239082804827603375253332088021676364285746820373031650909776248718779796559618020150409272015888669945054104432080041935382386132064684692168084774253934227623731202492211372641716030707808756441835758852280001708922415180184843903044558662634581423973970503090037648518964518390960133860171642283123636566847211448804656730337799044085666909749998716067928720268173847885108847951754387487200532259266056878709551864329340196143751228208207764347910902805813194318132100194230900048094467822646786753772788624582875992267398575347838170070141447848541255952570522801758137787818600987884039228359180421780091258816593577280021289573115608342862657885234929143957290784237026985631050838210427359252789282401294254630163114604199820044945441929660769799907417686631117780744749158513946164502403696213578721147570604869029613785378351849249278209414639549133342272204545523808375447086586461734672334455651456934041468656486559301330408470361849191603066024697957565402838889742053846716144980703954127674849387020018911769902883789234803665907736867855415353362959326558156621933670878400972688108043829074175429795766557027756664021361872463730506864315342788663512052207452232636363960023393140951254029332073582086924467159643046338681438302271912219876116085022206944001822044367747290932176132327123699291001333896262929728659604079623303518674905862352556294104168158360679403185525959732436411237147367187983492027887533993057235769537506644659686147695995770775438278549628616541757429801339243702114029314765681502105080776776972692266552864602369901081034718465435278682123350651536601843463432621894059685390292235516858628290684673070030304006776915407921099301726738909124389587215112773367600775263051294713460975271891856798367390978471442567208167424629095644515888966314859450767384216495713070933294718565564221226289408860522942047846881936725141837458693860431802587746889379586216506943080015497745589043992042407998850924432230322650494810002728406716113465050259861855705854421330546794195628334583213704577109866757402685061465473790718660607025622064430665356845458405242828349390580732952708976281241645131146961931027863800793614318608248418169204049518623293450191276491554376134741752776533148789365228016924482412815945711877198715187795163066627648064613953429900685730413202368107297240807443240049123545178177364762530707618484465044205848089468242150947265570471589702459242534296076180479971807888246978687613832685546313232767852349109844922726246703769007335266134639455219219517184262429163006302303687437951273541638681717326056349602752813598420146964917079983412770855740446320974524954210321223758067298642463220800011064660312356765730950568749775108540809701896294029374547735388833678202833045744191045508592878678761044496089117459845033458436048741114213135307763920493373351426007754414017681668664142053476499752531624173670940452992012117315403830588697244996033124700342246125637359011656033523428881209731474611404993906765328189168395198376756543276649563648610860559028229751280027336365823190485827075103797159494054060612091245628840435703133474583555669767126840339970691583704778331423007576291307571916377910428800559366589687068178245802586465518450780665144652502397504618883955877663386789235178742306011561527734032473125900886914559651965663532040556458246306104795851694550787803051039952262407935786266880289065335760234932333532187684093018562851803343004063679733292487019382995634701222965013827459201586519357398092418588272380009081014555570223167218295352309861629238233436536876143751085170152428571138012251536400215401989784855651304301016869137644165949565944748403153475463315835484830362350520405882899676884467860628191459194136815358065580195988233642886788697678511875303299842351083241507016388525125350395806145726501356640838545782036733280557957482240725766600815949914231750105582481893473966920806052601475498778717841511641068061201757125461506045252481940975492852417498935086283441084674554393268818594666482640926568234946796782177257259558538350585794044317049209483616706562579335508586015471252696898488264913737219310027457499795708889286431595351559668498970119935894806367426649654346586411959522385539229470613371915273909979942409705484448314408923391717284252363583714242118005389168189552039111878245375801508307526913575075589224138985845032088004141469903832518756589148041826574050727154463956750581569294659936600365373933114691381676962380920658606148834766858855891899646845220390391903600940456233214653199212792297819877895158840665636423866158417470687653612348235160785011165990318064608463025977887333692157790262383404398911781978302795811349500952650533386623967132770973588946802692907503268886308840595394445637235547841379299808201711451772942426397532628971565858663922236450226073906829442124199772227951877990307504921812729492534506466470164232757922783510847382532337648086962263844657487599690542466108351968460239775442788516355907818040187463466064689153360581619896565078973045109310288451468206656255772823442489518474103086028361193158529883845586964323461696134136717165607842288077457419465053247030207681522724465006622901156602428893339840885009765514061294769551437154929200167433752363737240404090324786654195644074146691105975364274523037475829304106982271567997914934927035745707044021285704387299536563764229771398765713703011009851154036141174644022946086647751313970922919231792064243705571893250720631579598961280741205831546505956959942000910637370291941974706303625546042263821102874584619062759984135797408869031779768843348326176854587712501729256665851225285959868088434724162112021322898108354609152222749902626006070998499891926742473109786140733987166384867024321046146522496508812252866958845398002827274419018058748276197434047009769078238409137170909219334418033704889143614785836682110820619277495599603880571915185728474367083198649990062433324643775088865858250462322499059122355043389016110743672494436622469404374849255435961566280469954609666319981117208397757816400089189588439454663991624962081203759840032139666205665924382392652742784689452972238310840895824716742914367642066888521165593916948256016893456726401628441930880264298826588469061874434564939653934590711942831601909565171659678728212453277099365909397986819573297153268810900135799802716217910015833006830571582654536051262461217681600370495484239264086690338031817289097243628656370805613100981130097493643903934051603330038986809677952870199061628838288524711848946200117732263128035767118266746979124162573396006940816390426716141658298630415342036097543493766210950836903922106668848153741890401634779249816530015858654279574527264700033878757856173819271283257668704492987929695610152097076750847462096672880025277283238914011188765279402241495528290605838006955420164622489615292672461441418347642614990784778771470937187009467668491735880327011316833042718142857684039829463962465860923512409764052612093998313422329315294599577429334615694039166532314983080688220738675030296861233526352657986444465537535696431528643626719623221579115556348458269826462483127907833755297897160855076994610165008514421999385677883299793174393554496463896744436078158830782139626737380418578479573392414691311374561590788886498641435815256837057402172098063719080056765716265376290203489578311542467713727464281198124824288303289393656436499148742972279882155378868460157906034069926392151413943187724734383663831620444542234127980924224769049770788783495114579843305175916723421671048310598114298825802765763222732397882099180485676517272525365080484920659295099369727101017131155610235963065597109324545943141113486685610353788961294771505038450730951566593181258847628256960031519386745865691658750883084967428523962621177178559949918889653087945786593999071203348895655435151942349174397014069450259415257738236114122549833337362954434587069116027892552552040301725792080218023931418036374217452755546832251382329964262874510161318499297316830388788660527501785071830661756258695396289335213084410200669175146214601629310138341313276414717752413879205210415470895008402566576859647709607962374752760177732796190580309292287454795787812105623312876668406080388385767887935348268943711449473763190093897110992447354162883303433164464151972888595434928690116859754633805161122267277276896128296892964047061426932156074533553302556494879657981691404379491837248948447740810336640039174703109876107542542627527146070363734527667124556076361561343570238570647010817906421400074649467576437519826313858400133619814886294612710901642921489576458867307803594166593834465032159040416372923269715627519923160663874672950211485791529120205637960128905919572471865890541953611312731554688578489980785938684488842766907526250758022500505915867033554766233664206517045585586476980062157576983396018904478827548026125122444763280726294423001828910942888795480464419925216328933689310109824723309006994652711059650726878017218572862365508238152424360397740727980416596998596049755254558968863541721225377453257758266741676522986713855883125060305697674114719567983181594586580429920903716549329693557606325592071352912543531855651471273401991314850648096869658784105800555572729538518667125826265194697737894871202649508507949358485441327955676197968851578812387419485795481798818524484040340913816517590882820657938491325229392140762007431388640235485225815055893090821223626917000755694702946515145225386209958732313245445460697252080990242301546370743739363605092703695858002678965759237958838406448636031249087234262771047870455449026804640294532053521912923241613173311168019865521209814312777655853081308415507882964304146709193966172043204770183194621359900652710276420101364941272266177751337531504930076541167014203323665013586221781046299014609712555041841166155205491482205834477948491191841104315084276767198164410425171009314185077202515631539290170216501824217217018879297843323466759321076842207426132026345242598547643799110427818296594685182024246829034271291623332615950835735977865195624441544725406998257508227156172000522052961657805728727643706122774199555496331450948621036955819461228515465032903757999030379166211511311934933366285565824698090032423333084211954309400372223953233795407255001922416500077344180942408922779984680644349967315223797255108110637743639661289181728036730972502570188364830868537899804356186012962278271398064353650293729454603674761628212836061523914236286901871614002814142385760675251068939686027138224552809424200358196760930643352422364298961172265023791248086023464319398249691255002221980031498625147274593471109444566394667499014624104000531424187378261973292798006022073335824087455018040768356308661295933078072457792028113246148277256978053598670224707959960895587480271465435437982477851735618503617049343725522733417932639586653324957521614412863558596614102784400375362912671285926795999577475279804661651610152634475246453980705195207942796270512647262816358752555415972064129575682751196245918105863282332629413290784457515207176817782970305664918548019757043980223218567976838789375711298837497529387391728743813446103623864614005458419182072682343424532232022040273886160233745952465329602310198609315661319767775836833854248805027554668421613084484707829601254721820302911322454160250788985133518470638337725606159271374426697616318050434781936027594386364996748509371313907891071089750656788934493261306169272861635029652429792988381666207584643297400632205669178161464860433442998123420763817769858406155785861778953088231935997497072393855319020899860408443110130237941520450636515851947651872226559423597009351877241480797052350650178776497333341798512207243487554109142889725663836364928741847371599680876289818277731751082917482934534034562598172500545469831740746934233251478453313364644568644800314209963046777331547187585958642415256830080580304799556498051794594953161097814284300463591300340551652853678649863814157062278544943153063163767664707220163267844005894632786520486964531597279713239150784405072980857254291789008919166974439651717370322750153727249108341568345023175866754245318147894642903545514603882167186014600906443351984327160443107126727972022211881239226399918619695322186335159779314267494223517378571234173603162150269418969824965638101448949514698577669416496327550834022423233575655323037772928394267699090644116520810301980846222649779304319793198762618230264813172660073529281274377985945487556551247685538516841657528509522671131639599208894022605469404687153553550321581125942170482600019146138711875681612426084597163317151536048243322852144613479239005536942510508803394107976377784045160938778845121512391918801159651000239303534566074058197570208619728467254699731682980597375165204576734540963173148145017283646641023741679527383102895825036817457925068835362454939754493384490044743806409218334475104185241757154084812116067029741929755472462883344896414430482925616032813551084725841690973241689604225813443421415828049966696750580606486750121711646764905297322030604744852265000233711639964418549983263340825704579241091411798727830008584413180098051036912793769402880538398439877280009881240310936375374327987717724677487189296851320932272019606057099862596177440015721126873882719891363213756306022745643105555746708065715854560564255440287769014372056327182859796917870189822698110379298781128339695107555679582676901561617098797259921519041217044405514319361297516714316781882412218953122328540301203128471830695216470150672982804977878440591563605431163596452493390808274960948915158697014544439235686392582506852299226206240986372014145582315996888559183532860717032748756896088627968454485405878580778449136800736562049705111039744487087425019897474353162707575324831105232257930998526074187010785036690045313225867527737163639764216755793590392006447647157730664782026854014310244411579888700361165527963278984220522959398742480399536977287275640797542726352254916734075123348874881879090113690477885298735606399313127537923481100631656481815441912153319641422288273256970922596279739474175155140595546298176933211352777792278779860673989348585766457180205346381949075647191233031425741555431903209396629712124883346323880219782521967370480016415963000517505676409147619693386858013253159471932021225635071057898648945192666807599615209761802655262167289639656974554817920619549869338853891132361532106927553671635406170569973195684999163253878420159817442830196730206103265376769417907023645717122898866120617734953940566890851980082534261569315674852376480569271609675477009336180941531837908285611896687451247399672221420553092506123070033381088180857072251625397150421177836049745458364594512813523320285597823765696480096814438007892822740307616037461431432784044727297162279618584094219139629608086584771734388668854045989066492917592043369243840840882951868186743056691845743187066477198129166740087132034786714995700014626076870699723203300001805696145395755701695237788609663188593806337998658282768780386403289114509605989381126430354728579342400010158116104538911324228875751351877900156105535088712495020573669116639456690282095865126594783051680213183827896194881711220089929473323813118255970545853300382743521939229462438284108964244752250436953921807253392559537286939829731177340250600098129867181308819242053662192087601704096337944967373919480804782007751072912089640598682134053212284826695874639537030821887934092257564779992614182441973506683715493130498719569697919107582773665350688553574761862055031044875235392037578802868019698699685651800545426074230673117778270131437364513231560827435279932186186584325775675903139521232971875838718141161885390378814428297320117005480832429109461623379530791191713638543920734429200529121119700911303036971425243914702158917865092526624350761817142194475144863373391463817671210819805373843951874526107787031358622910515392958381431093016401646286897357813732342248502338071115222016321109380919221449697808663391437107582167097555344611849759075841928817949572702749565780423774479624292046404372750593334375939251092134566220271225746182918388659538929819466943171373416462545266772058938697527984469989486892819331945573099123152084408718362274587385205249465440034100603983395671858760591102563683483206849742273996885275477615376064269542069681940776233170470000407257140320946948397018860469687508149914005561426179837377390095169202972123321806575991552165758407130777743851076033621823444258440540073209561128160424273562010874220618486297944031428189094196788776209547770737098567935215720180218045203686752287412467219328451046056367446972786520440618398506918073315274626273211502912513726271494744710606990131944126472440287299018054308589304764518353754035945470559289426260466639301711766605702297015126918397676914096316684236760481960218168943590396416782552960670016819772655560589686053084843158335302174858642951824747385665510291564628389125264131201441076794893465641079792980729495663909985158311724727353857981958677570387012665365693695615103355128461658773482000076786554896675466215643138450891016931979530876214273741684329154850263864849358611422673571501932276259086993406569697676638803137400899012244255884868130526431652624809793052988555303750868519326546721034040469403336768779581889597700949889030393892353104821566674864777420808452467375611000372160854223441810445006900998529375836675013986880807691159839988249104740740382473402962046627909180315708045411579399124867704771951982872283032644535168300047204975694956719979876731154932883455385108248913550557727473429314454967592834892309844156428123668251035098255129753778018277289419574525087489540223436598691557469201805593484469789139764012726886349418562333950124329832704202252274420191759982485568318152432976236069928379946182278133984559666617979667846590062202752010972424695930077378546787841076058460802245074803389172646922100755048907109889212389124619770744232597936490131737955252579325334946730341848627184830472034672355746050766223619552979081597587300669510567618046723993929832245564595053917823510599217276591479547081422819515439378575982914782882689831557548267890765636785021736823256547065897934325433086678314562689675169728221800692502069967207290289972318487241974365354897372931962833533514317902749651934096060209717122763396948671192370241023522240567342735420026861617229856255097579445271252632974665889458658517597726940261598160360780917610307991029156591088777701532497441812214818159147364935875125026774547697959802528862809397001620832622543619237269869973247560754858302234066170396398276831570422055697907930815197118603941249895311773941587262085196659520839543270268718987101796010110078466884881858922930678486112765074694283081464218553057805156670565435653273919955000934356413208034862138728873145439317560041180030030820531871118939594273769703930658436563779068299286884822673926635087407601074011807768171270768666316590074800899092670477377543164329476733693327375768247261122347913121808309970526017355346845310799696054274984476574116090445070546573456340644676042637121478073124160549527841822007541867821059223771668985910985424617365469440278203838988629182884484880991935336322704391915963195660535345705751587241580143457817132590331287914661895637837494682962752190887995406523797820363224268493904532125072415718971283803674921941534436985117129141895734101668947570895472990154060508908462614794183735309776526203568941944811523725175157304953215977199981404592823501994019364367827268935807819095990658453033699199314282830881364639392618910974888411929085268090624944431204336483690799090336288642204156513050799293590497457832804410489415875885254874814733480525312904921451554677569370566644611365854819882996120242266802113750992649396967954936296345037119350824772498673555300479964462925990461040486986996963346431312999072001421380815851062096834284916141580509119867802425278304158056438209905309249367082320993009772969106361187881505800783433742318841651810728182930470652175560040484446449595947078367889550070930464118250203782753111318536330182316700050529320625801568535448974909537124093505223238817185791304092033598928000779140527320577607322803682674419006188090323196528424867358234383911453124164872205787581985521880965661535238031531716241575378905403882643475221355630840984994867606581144547759703162404391966315651864150694284210025337186898294249067120129123333243317616148711891625213838025431702119271590743242764984626475387698529801944223476036433543357001540459226153938363862892214674291934022323442086939961152306885097608226299277158668007836179155690099248495443743367482998670973564524775892491970896563639639581756956236852046212431048562456870574225709243630871854599453808834320321179129677135191546046838858203191801845005680788059047335852391350815191127442635479544015611540834858305530586397718291612641834410143936531503427081136798579971313130875978785400408687159676358706257463837062292742541881968325571294948500049949073482712292324935266144881648349196583980646071244893635062160267677732848320103875293341871631797365339532444552998014411800947751233636607755578517112828718085787564143122684686491209168290118331691594267898028246456302383538991524425804861058411225065141578867933372258000365942993306931023547399083008450565940714801428133362065370250330940804159366822853192351447255739227345286822119924546835047709527381136325227573190853959148422297419113256402232711242937298639122821799643144705408157578773277831756612630445260356028659980886501467213941286438895208105617704722031594876069480639903860669067981460208600005736709484631465735662895139404884575268800639344661925980057586713525128890365429043829411681798342062792629398155603203483675710056391889713672601803091918775530500530769768732067224593634476055281834709426081564468000721041613867698036658231766420507100971718066405142911293872614975025927289254737361811113759748470888144119659049648086575134040760135643221763941632903677052302644673192382521628962128961206480295256269604776528385113156539864759410755715231990825191903251417265410920763865441097829860025835175047325956530029275681554312452489460000921753016619112718814557708481407103327465193440672645809777881043932200185931123931596373303079257956411684411342778396477738572472295687921510560096851620152392966032342289679938348336451226427450612882349443158981757713603804951869337902423405483222653858751897362497215152420368432006188018269893239186185102068913767224615668731664201330759970221659650436245395481522288059060739937478244460422875789868846687009836853950077878187566785991510715712950037052264998200880078993976186900569551822901403598520203107026649590078666289559708471674208064023877861727096523140791937529553973157696182898489123881720097486434631293653021567373150189839052042065888173640619887750018665451380771144062814457170124473829716766026298029088252619626083503289990318842284926617496056997840649127972203474118408757960555126171398402303710297134784432248538983173102414388373392383458046108181595954654636284601240257436849566401230180309403401368014157219555345442862461559179268855138449036603243376078441202666216065740600123458738372847615524128551761781401730148711554033430190916205297698487549767548394844363988719197208481392527119914512373407426886953911287259043986934956141240685717700364916253271105024382272253670226072505223680367743077834434880440503887659878171277771137550423404758016247398168481982754860493550225428471307242085213461948721744281179630383779302109700877648258187845873165565940447032726322567087146089257337452863402402562606823665674570794384188206795150838632099982836448956650359576241759278552135570255817273157582641069120869373579023621337212982070612339402135113642288505330338506722328115405465102175477303303713326290713240474296404568192757191090979928981223461924416049188983919334029859007289825446682341415398432401561508023573289064455110586157456645900019875579071648808837988399886260456312803124928859058296830983202181638523179991691604547966692434286600886202453776333302909290780815479591740335340512367711253017336642812684373055896854477497088836672131535971660764963370619646342365502163214196233894376614477139026302355204647047115996824318069912483985609914383905416659389093829302123522313798825003621772621758206447916032680291628959103357131511988399841567819077195131169531010784559861716576568730726660207336641578515023029615337965424358983570376258433160416638814722430482085748699232555230360669425716473744751438173664900100328555324893988224089405717093689326241548399670377948128595182626688856235449189049032870084261377632989931880447878698461086486539443211533385083227321711068380576275219393174512398009662618354868389200043357168082829725129093085782127787963001873431902769557191484916289601384625196485998668951311134613858810718044146983965409729320188071492399939253794541862441957516759099376070179017342382627724023595953535519973208589995257079413729864906150950632181851782721006047192947900882282298229607478820211460826121124659910734534931094903962975832312331546886534164470009534335436582909266112301417244472186721968399600561583496881193071430064590805813926166206295155123080155428795157280880571906774278881506451227752897173318835201909444717030193321956089163831573402920869662341522502097773991340098467080157119685838955516489889731484261573359562666650511077712642109320241950191572922088415792882426460039148848360607592051439656802721212740200865772123488750114389907044177888046636478619408493671413220006828709654160632493344969196860589973498878318195123335736669563482735660196845288574618091255619153844590799966815824358357855088450552212618574029561422772102104981154582560431604556764339191261732537641054819585472867621995879021257849232327814395073208752227899784251362779990952323947294005698612132558090239722832462254056980743216471123192125347682406865960902647796600036558664797834290696918472987182102712486615421140532631220927133320861324569428201713277542870044038346676514890028825665934482669201265671468250672532328948302254399168030040677258471706547586193428859966397903136752564154920887196496169187751643548605124068969503277952880879388772358410160627500222511331809926216969335780710926896277942099816480086801945013480267989215775359248043470556775071574687550746847311820044036679727676728658316565381336135201189643317272427780731991804890553853447960502166038354162898793794038945348312570209791492461778536207227097649196406804666073353432467379631992021642957992884992124594440062015490611443344802090736810434952382829835326368820905636932489538471505130912258915538599520332239138598600414793563095404672427915882197105114724509268106711624714504634400227153833764074586945000089102058264141031331148184862638549443018902053738411379299855585235613045456986370594926884427890960723493509249049588054060909604869356588475433983596873653268705420630151826274976064685147864415780718887949237036447545870303549683770455580537844368498241609448117488122197782332624738633885814796717375685732596907351959218640164348587055381781428611977567739320131107592306995255276851263913906782720653029202154618003375947542332011524629898464819661745218302701919314383615121255472102735530022754669389024127251849017361757513482600707461636264374928234521172146869637317671986589086232288453196525229230400826170728354781047776192420713417914033290272479019547259746046810642308398566115761310455245353173561724011804727378430995532222519194626370409761920132947158671178309416998512880638783734093943368915609705419229282408046382042654252468974631648534314905598129391991073624183643923176588559334287997246009156698765952916346282697580905635079076484418947809879304979382056360617640405210941123325101852966213412482127112510097846536622868480722082830729011289641228092383135318880328982316425308671338450745386415109705221874461384729123463870375384456109580473642186739345784869298257501038894115636656747316110793574253342441252623526235884777603886790733703378064404132916092500000534680145697785515244704277552229761080570550377260612410216254535658568710423320930882084270294529246024963781056076694180210072936820634066718259090168630246856332178803038215264750923806686861563789964857348325462130840246137650758658041540267936472005721190537619307543428311434139873445698154509046052766577345472897571180794665446130479000679891163763550508501322485974777820111824717801715169283867685958630726969361376553241215922517513106856398172427483145313517958876365621441943743290045510634110581942236386539730744538921448539969853950406698852945250575978969017981660783299538349755954484447801480982128767581878938445583427877189257679880756411509600512464671792365837090458423199537369213320912636918205682061184318844692438824369365326980571458506787563292122662343600511299315834578898422557988951710252767328083246342511755247346827936823944094601509469185089912753077123612645019420050462944888672243916780820825131746152391208552354717098370112203533967483088165749204582886901459569989207241300195008287767326190681891365107936777534141869098608715913962936620129293035986932030454504039485077962893769220279714912246510768642341667617329302561547336025141600423092294926309978613777213657519675368233528950072505484470029431931387336365303324719796514243573752139490047689964739351505960388240708460333098280570970508948933908616606724090143480563210870846513018326838789217685226343926368173560980632323976447159475292914291658406116615220711539993499538361682851060502451204848414491498043129778644187643996230023694825488683320853874507885011590065288770156357396265039852049107631038516942493481821723125118223405468776963101613773782102132405719496584619742269875304791832643042972005838130704365071170062239628272857754642855745605817968542256790523188361565383293227790814232432161110252074427440142248130778979536071210400452059755430349585339027570530259419306852532010538117338439927689322747310402056372017994602948675846376024319418315275958676227581251413832084491065018020868020989655855212408578390364096101469418157888471907322305709135399914588140449636384698044741257169894066001190981248347972440228587581288888810227627097542709902299358260893288503379994362061906743169710151742230199957223385084222467569641240356387937971414685186205889703836437826754497204349355228541227581977786782842701602213906810783691841477949008396995479050558998747176069678942847365164593727677452761434526122574170633019341839161470467276355325844924194153861693774451423519963602024023061959401215905870252649001479546993465553079994821466482718967342782800637152383680958230360836833257606117753520938436797905839073272409318803738442632142195729784837781887183428782489936470503193946361091122385129038686570895254266536437687855923052006117311259816738408575868800977016936877885911376875028317356442569094370719862082104657453012820748822840194428943712750450627348631021582913946642432459155533943176815143611516318593780041815464209196974868869521176832707989058184158435495153713386218605556379567246764812476164590726427287718682766109435745282449152822994565949883935474337947522544347791648262686139074644405931559918739327159182327822369022565571864047014107145490982902530633719616151867355512881648701885325216104012730075277231927844543176401038261434068512581179353246193882953807905871789365875389151462150392881485114845615965450754422695168223435937602008948782970412100916991367309976599845021229532949050200303410773481694366830842033340939007285634902732426004287486127698543433466531452582384105428962920803340053281820842716968614316050754462123706918985621489033560081883493721813306777166151712824016887509368669899190023599261938496428942716751536191455637647447535812865035300826529594313137191653525588047670557372272479811405296428651272957040318517829344985658883971340881553013265290783078893049072843168076943541801652129253706233271326893899757539885877491871412589798368882413086263640674342758314887932453449457124128468529868275517679205325312374123438057888001874054265785208034247756789172102242345827729645758304851208539417321037621077177480282773362563242359365202018280926778557445213041448738985622154632373603645748756194446528042289110344646164585168905301964513084389474949261294397416540558068072050001556670759821885917376472789139509402338078718443610573550093537039805758836281667111661776666445430564841747562203985673695146253030846546012659383994012283211364232460377155352367704619833225791138185265554165468382130897391189858097597486074057377915802574325341797269190057217276758212678289272515500978108557986502804654759602410401795735176020705824642662577658571424336971635980962002014405558316880404626409698143964705714723150109489075530258443666673081709121731608969506742329023983663867657098993773438565210106159729505686204230767536413403292137701264380720544534859828131404506736907911335343469867623925143164138875600241502057245341188460193893132798965112909529236231657239974806940245847028758414464445576804982018023377051651606306714814762410625087209405425228959619144754426664929245617388301845548215148393808313463461695778900135169209899620362662826170805065806832534634904047154187788408347159076773541787844747299287465490860510615825971819405042275234643119534079059037351380188928258690108624221871000006031571379553346476786136002900609172651447001378925958039206434031782814971877486628764944217240457816921511125368932096889530061976081751643792602558182024439098214843872867168068161991604654989868771347456152801196614324354584618871169957948127208475541384779747667544682069124155553162859011070014016576428884448406293281368475304415142267272203308290495226639971525772709153061328109285131693000787257919305279363522556466469644318883495181856737726513879362794796108674176609378044976129522632510314627953724822406128794074183176212619948081609847267531633002361384677588579463105570590148560139795490409535326204932459833621682254651534856209003797565658986432159515365145384731051539074833934619622136673132320484861203134161365508641389628428616439446091824025954301803820525905108449696863486672492553006049590497110975310178751166131190466122766646643459702364542383837361280314932977512995516541769641367205914890528917299012576091426841446885842126635252017057316062259334785549777779419157303016037618807666489993159500564570547228152235546182938838544980102718039470515561468598790506075948173654775576544513828985199567291465122517936102600558977836176934661583329465726338607375228627615074548804440289554387944482106317946203440024166764126069698112802779162670282526030388727968770060330972948411895166197818391260260781291790941243602374108520654424847735894773935917143735918661406152833249930763438087339049926872796644415846076620375854593063893112878777328484907081376190327771981805474174750614680470758306942219751482462462538671786224389732879795107287403773726469576764722308584213921738108753082419818515258142143764460578838057617232854826562541376331025451246711072299795818428694245912568894810159819044260321522938382636314667021496112082830366759881899026317975787602060573336860536471330613430131404428658410221639152067114834684741298743696010314775160313628119933384871777869854397597404970278647668871858049293741112160904761739880129395037861678772858457166828273982305715258121295019388385834892828672443344626770626490487493040657255183337311967900782598976391331295203750366615108257230359330250936704045784697813219915638683870579424075772749556163247934845805566310663483963822649357493192404915488711445543685244163780483092315445643553465143710472151167867446360339276469755727481884684422346933765348154624588394251324415769492630196034593499524618580311698444539052209019680588870472287089939308303485825298315170655581272690776110228827679764502672792468411344397228778527131145389194514541177768153486912081292214157801746061214133646905889814728300262962709813377494414360979103467319934110055936267721171705363051796181690488834812142166299387756231423793399079035238734102634061116178417707816445862590378448952280976408601287795248269558875599356094859981827127677128547109343922269681685890731102928444681072966113662685702542776964463986401289530641064145689785134866695775119064376978778122499904585245980453853822755987072398166451726398826375682844242054708285857887446164502439737177987636902385110022577669842867496475682517631986556284006122293646686580218251427992880421644615702516153218801116352605608057312148277010625976620348814356333229319234630471358002362426338215886980797041860752471143907181544340720385881801401962763512312082337593999391100334342106379917559810741230008109514757114210747185287753652366204659818836063937330092476189965281433515274119063656168821228969442391827144948647809292629917625422335297300911310994559214202491101976240820244135603402915338301851412584818177421529683418902554777168955891922195394209832431550933130814052397922956016158386241826173403767734768166961037089163032206137356225407295298207743848629871232704099934626814155721724908241027540593078755561956068704272111582623144337112241009936327674924153520020658725648025046964883629296594707982012694866207504098465947197620521306032706401744857554936843252756681389640026078433476141888358286212042363074697692111738636479867511695696498750150963878338717096420707347226494411012098335683553293155360408080428926066320717209790471134293146052511691692069500256344345917614139575925353589738436095408691243685347406396222413971880168310772626005167767742609407834009660872785284120170152273009589391946416792897954364057348656107357480427911628911437565908435902044187345580936531893683248776731897708168555696181474109529874298587022535837710708750977200000024811507874243932080938672241263426775381389903568297961468228200010949061258781005876305514999268447628833339592843545158978528669183655030414035723214477292271787649379940147796550295785752407465521657536532849543883152007833433178349947664084370831354818755135703465444442227154694534595359712186948468334825131626453094654964418988598086511615357935195145223579089407780883437643502145430341111050173955828006984603748785539927897812041985001123548099873746721165820083521470346836010504754247894838475796379364343846505433075474908496485671366783528799637299173833577131267008084418711489386775993920555699654225894392668149889829567187171471632800569352720750401601425329505053787517531121982583013180147525191684883127543685197640045913347532320515290127132909771116513250872978678017554258313882478223158478505555564216726789170421433740845001596206019957268352870933280120398822291219753077361407233390409537004037976561792991624487629453871203670766559081182486021785407320682654102602014706714475446135875700256029371851465622681445851991239409546543030804937999136363138665021226653452689948718217304102803159115084439563935675464551345313510494144995726688818301595139748868796731404416238211158707149436977695699345358548863954097699136977084287039891202281865180400157983788466625081791746889206319317767800687452486940515978970784260501735343156853399835140529078373216732665956776144865840121693166530508756106298924357084947585078352807615019632956223028711994975088896582409237700252314985290065098290545861439916294591163843723987841236811368465439733830333807880602464968560517419539042682835585577774847606753403883143492749654376351354551880719239178182359379815737621276735887964512630484220698175054958305945585816798477614406939655165052332737174761495504581224126996803519526682843256435371396193537149465858185272907822287236670868106910975984969947625181660584612486678485474297101820660744960305622766734490714671934397195531391257783800762261220009171776062752381227488379968517918641735146210747024272571801075226900042433065439539391168035961112466481924652686965475438282474830587226930106621981876320431371644217305631057651199101418961320560540653729433649038970893595257231604446530887223637463175005061956319023443454197940173583824014406825385969297970001333328311387222861785285188942713857336732332668991775455263631390048265764293220654461381313643884531861787279908390462512664246996435533883591780825166097382581069820032924317839036304306980993642286246442491288962558346962345563449085264448581438254213196476933150652251785354767589544251387946785712199932325952684454403496884452263372539108315123383430139418168088017201125400379440380959653724270422346825750735428151846029652822230563785043662037200158957531609952348052394812303229260647665069691211725186659321810584626343863637200583697931172355765406506910964056283830087620455129033214995720186892750850417372940396300990324075451826510732676740111873372896586256083931605597887295092875447142973453648099530113226680080385898066083158294537257133921983309875380136825022917746432233279756913328024886241071224255437586363494291392665932265727919347895460019362495004265028519838713892389002845225023968543567226956025249829150398182167866655645819796082429564013065863178229610511296511451284177608774335262842935540439006890985275083832315003194146900558499528419671662266638024948260932817272000260619741525360113853532588785066516047471977595370068975407685142068429617808153080672465542373455265387722536930265485601311420755267651766212941364993793351541838113443380261788013900054674349225348445906353741338597506362457507503651863977874191043564239967772536335478483392015297884089545850430500745812161738480333732101537224105799445770923649337345201909935370464665398706825231139336603707161793674275623139756503004721781875667290079830684481664089524669331264739704246298559909405022811138491791712796651056628356411791550058109154287865828222857428557033277599546016844911809843825066710073986391041508584265678896057550599074223324314593791970269206960282216153900227201480970631081179413918321170880032204326415217411579520540472406385188938218012708103598885643961880110966609631170466171332511690861881865098317970124668541985180227273980981794713628480724054719412064899225111186471864476849115989118273004670799711627919992912806088523243861347698987940540597385050627137157896996068499559648783082107182290333084987072746193319668034863669747525556716768261795579541140118751947721437587399252723663142588207651775352251522354779998312882701322815881743873719419032049978029643197410323629842449506637250569862784294231760030759032832441644170471506081699668342049054160187264499329263696701640479879356310323971388811029998349013903560509989526185048715574240779104099881447931776274071540044075114469442746678142335940705340094092773453174250178944780644362115663505346455188553608708000996385664935568271818523183785350897436754663892163456760266408566291142419534574607417095498272645756234793442777596744229970890907002716419098538986953522787543252095484283740405161681440213811525195452909116573387424119396380518356304740434766007751918099376345446109805824989029941940668900548326496950124073833684641857181654019868396658703044597663725354563128740504024213858178093428037356708280662043587563967512717085672327610884208668735273452266655695795741853774138816963274289913996172213012052272982476814927400651616578459020294980338359190071794796579701885216178051339124358229724463177369887953900335724034940612361371607988539907141845728096299403663259583107180342432316886478970526789500582716315438375112058442587868162221008101921788432883775634177993284121953233279402022041504098734186069099743356189663627618175905356292645147627454690551838760449723677454264099810774421415086711502889451024022859663112821065681995433139243122575384607392919871256089487917645566656936345174432219357631436389115695082480542065646984630414037091160554192938370780862204882594826973767871615837430675006304012774352151128380604929347149453560016728731958181655396033065367393593524239665142910742141550838720863679077069577441211617691093026153702133984584581297328754377708309958051169402850493121914159006990666803631526546003269271207202717428691145345762045331265850138706625330580813565576469761106857887749752799070019594034178968684005516360428745939013050325528574121150523554065030784104766490000449719634636946467894500795417316242592128716192857247579701679392759025000490648474215142785043091680741218837469472691679550430707746682914032504031677426508297238670611459862483436668280285745888840687958607866175917693513586766396356189462067863329468794888631818562166918091902351013117131170573550027532433866613478903570442716003134452543177005851054691097509740395816311419215031104632734410724081568179656688825767193899826759677907127477060684321768076293467059587133542444939859425379853669201958644865620890031516962942832836176424389702437612401709784893420120972646242269342699565512843383142226781287078462443508481791634975654516110312681458659393005698318803467523703758783101980012165338669002944603161903382952859575394940734514863767682780009229493494139407706800744623768999062216934544967183041028071010747157047546032365066113970853054228446636471237039026166188689823758150064817020510991079087153030759820718994856673666211162282901697376754975722186572913578129069498459190176747690756118316137159266896223862180335413931719547003974989490527790047212621306726985103817830784111938764578513197495095549002816847230860641894598210613943068494236007188176629624239022926711978132945608087427706547269396936268984702030256622918460866183242904856527977676493994333798008593904880579279616225600134246078582303821003217011420527679056018785851291081459301831374049712007442761542108240178780009204958974457996103545613105288460260359677985383669344070631113822814589933951266506419186874910035624899308464326935501955606595421614298872545432512790565895385929491967498878042468889562391321942301713747618283404171987572006328387034281882521782912615446342057466999011672267564144732657791728086600440847321579728141542373934918122573692514818742250923207495506452796462166378944244439168528474205532592099216418069950133315686949967862330476921289760464800915409697174369767305989796372212242226927574302238909307865750858559332951635526576753748642132048683363399849498839864920210788603077996417573463300479873992590079553467437866966968137033739047651286541462647143055687443471319235946490064700515839879051361150121307479338268431717971732744357513473627818425229195557837237662783530700281533827554081511465006729423432493302343687162355145332540189941863978550820028384986142831640953837192824762667662997221045688304211871294144231748885053467326921021000811248456394095291796827953246008810566239873366102049287694451674825336060338180252945673495057947736287823945270118270683901981905086178890887078808744161196083703956952310950882579665511664888795403674279098034841168041808754364746464300306341494296094908313457221266349861366014166910854585508187292279206753432720618730651133964043934451311286398270583054546481335543437487337042821400176645603336010935011873681541914879413877831746125854504649234908923020215709542911770177804083288704869906102348173202386557041275334636731785563514470362836885073848372402975914137701625037876935339547931761655432669509164386588419247314874698405674201136930015946326627040396035621898831706767753770733938042748312876426471893855739983076749168576247236103329876679023478918596650064213082878459951109076141622360454014087390559859336914754097284348700799309749577039754759478574760503974490587607624766370408779490625367185563538314149623333887729659392287129141031012291681323431903048026288551541984088351922540220987291153059108607545094775118497669546945809996087268812899873361853044226804442312544972665613909929758549104098727085119546921898068787407775593122236566483180636654785245286514638920730335783803804707826813375808809431249836049619545129015900855486550790022982042267747476639220439538495285382094810057172309612859638718455522285774350772245684049187423293764756483251520399000033400281507067764632784742826353595767973002527774502768008351721616131218121596179941194066964628770235653275191479567971825676677984602494510621647509083250917878806537986062364615506685910031522421621138915147043478305280667299429698574817361042366835560198457951194504458189425244843002639580692423309436270159668805833907944235390272683649488722002427981074868504653659185423637007807973933197038242658871159881122875179074793133581165303508552229170481091349635962730388273494938019961609446690350561146209368559783816699870830875178768576980569272065588343441278284950670575019029827960160562284465283474233615435132763922537128446074983480444433388751957433647227032893755483360718301204354158263741142503365995091510438318675190369965297413290509368777268802048531129246683120175601771346030557389029364793036052395286364656330960407705767326693291482202863228617896009569647196347704878458223743123689276494694633482368118578715343121315650010452628453707848018882320151166675744815214998623374118447615609244245117176365790272684863842754656230188870719156425840380799807478333007581094489399765640026366523870700263922227563285665705068246542429867599508779182583864422855114983535718484196125105317297742401776482265065404115491153020674788283797095666085500112341140192693127053965457144873453382295057109496854615434408778556147358841726742342921867590224489173046197578524685957764177130767603488020020732703650751221925486621074264069202163701868189057331121433416786862887709765049933344739164864043754096513259266990637782485164532447902777768054844762895498208035178727347161666779649663324790186656885612897863522377876604572973939902507012318449502583538917370450474110979458410493446068838223544927363986582089909319720737787046349926927818536732241833899213664531090526589166322036541644894384036113097833304647286718110064778942876364936221872416926692655799377498071929359182992551911742451638970508284640992625471139621033921134146126183413183850536702633172465390475349929729725419788036274828007930843316012658754741767262576259490645457459521397811314559188655385474037595480764856637686407615040841843823110936742449945781187743140053344313494145431759580154084319799569908395786020052441264865733162345679697557659531106277322561112954848504029787461112934985915925134769230763463369681332140553185532083899865064147199184817906083110687018168761812723893241191181889953318577409192979687016818866127025983652178543181940954470041982799192474970990728723574086497526822640417615986791962318778533008660288285904295391494584279589770610829520247781603458205970720880728001505833740093972475385277787053725395530070790057402047976138272735231222269210915065764144090707251547236597898281700174837661179868317122255205014896142069052130109232946338362658014330735729755054620415715635945568702022552535525112603777152736221679242485571414984519032439720822932895773666974914717216812639300244869403333621458921720574259278985825852450517080254962202175328932426694588905617809737228355492651835144067675313832744169900142477218666593597450894564691066425599237380363937397822304348451224240426846775056633741047305838565605163353432100656777288590831690448475690688979291759466252020130466794343289290456084948800073638717216822141368582572686571061349316802267236502710963970548910975866895179114571225931825190144717429457537359786467163224968773137487751277052950748208235666544125905808598030173649578206174341701032711113098082629041435533390277741568775135623111093251935940828804698985105077805003131799655663060836885032541289501654045386817264482225040250995789778391290510372470720569899971774865239727749704514049320729478363967845674827999177436269172369531552365640551799788624451647515751543100201571622046696464734513917966447995252935751376110889023647417298843174008655176492899505990412691550064466820912139348953028782898788258650850149485174400275226153455430868558937950003534648317513398080701775617802732775040660062769925283785659684970746227714449131903501554285172733958434804066836094233500875119595755882605409661327257525299092508956169559351042435329967126512807489788229846407035876737807728291390108033438214573102397843870206998528666426496599973992394273679859591192560077906569132474196159193533723852036040407645557932715443737696855970357656128789594515800691113473376834329765715992294384700556530072077259661550740238499623701400592804033424502206215801876357013670036427046398345320294743286092902086904456105287228344730053371365104286818251120376988986029212842841368680570426202963586676505223989685004689792012472582710306203042175461330110086089833430970028314653915771397647655382217292570627995993582902723888699533009869016521939410084665861860652784947576185299735860755107702036761864572301411309658463094398389106146085605196399786108697326587425918097479409694866662140691251758886761273175119666970722424819193545685361093114334670465509355726936263291665974900845447332897311075145916364898443431115408522662961422152007051574013305193256039972563534633179925141698424788009846377482150989869304841060665856833308747796855512591585337713991995165666898619625585501933259335641234922264822610765387813798567491882892499389207114244476233601594292109980809821377579720783780604834611874026509242633827330007649766893743539791355712452199572314319967200272794808093435342512116048533755324034767172739050999522197345647278648200851876871114336924394929681609399851438454769265243634271210173996717430665502369470125244071200094210386212649746072349495936491629147889864212347741596922788662098995873432088892239020455156561798579470283703390146546350980363918890993401302430554745418371264069861570285736250152105200963088345567837808769872857197507155213388848187071005075321569713364102402500837066872699827409560203160189002637979732990756188651205462908607365314718892956373775827746629508790199595192701112236471999471906234345824764919193571319793921472130796149164027602182007333975055020201098954984235215912661363725033066229965497918068298515535316904737058688695413574743031292366505828907546126736644955593971947365433772940762551790077528205691688445583765747245965976496341906423180105013462512868027487000324240999424110531501578939603672682011662694758103429156404881361161776927165862235674240096912809544083517356258496932282310781475113939424564691869547222954622673147646131542027460913350435163838953685079600139109021886210440679954030781342036384501789288261101110376422060456067051994410100270591668695064743160965012677241161606605457345137822935348591278493943154884777372979711737437396926010526969996795135085819868518814007774225729350478781120950853912520860751013907772339076462188772068438920547227337600469624301399216393191316006355902004013359689427647870651467912190484970265427154013006919424387497425304642680995287584015691007973788240872246292473741529888759896776829119745350381947397995415252273629815837738194108828400507756544562892460421823046361426168075098952111146416060803013559368804869402164483164837571741192604497648566407439100037741448714735593286591063718454955234253626787124722488375207225623129441944805175281483836801071877227473228669974385397258538980161275844270132043191036090967083545187292013326211053747682342233604966702824870076084237107707588215641633537829985456703148200638858831840568668346368734197185012288124334283595991503737420796241616697050765232582458925636416972910293261785269213250804127761816077192678032331674845272659085005940254760759249365904470994349016101748938822389520704351944791647128037459381739449513758015027315893106795708770441375869786232349154534648013343337847536815613208229838895378946090138962194697957401891080825471777467744784438799834144181415479432872341740797088713905740351653512293250477839590374926695542559865294217311612177121956809426773984830210427321195910480056515636446934510166612590729401630978102800648674453651083938026327523321860973912293115148280818722483527518407047492971815758053904193919087007488729674125654484006469538287469502682473456986380124714933231197465337760013218615769392889691924745824923579234773887326535450310273820056317393558412337325244868340190345127107121197030068467964508158568547514232694210806008062896607713381383111432202901875635016572352008019668448798577641903809720216070454667653674508049983350648161683722758351401845950707537850585851691097889222387981522360309604683223380755322569986853167159889706707264172359745025600846601497150485319843277355899243233817431498549129256929170769270651244232976838158568919114356244464441140664370107250706594716611700253934288985262959389922858175015451096249480174699522347808210173120746667077552445644964293711807209792380392190204914966666948120388830343129350515335140966595448116717434060448292786987550300407360681637435845222335022275203665228987552195817896071786947519609257293997221316835514145678591949505095682600667921510796751364990728214118315724019092790646336791644043689061784474648967224690838471535829914715561113775547125060573674535262729254899078430753330005754696002814922332911642917331369630980740158016807020829441976025726973205787637712334556419790428928883210793510650887636962028144688301766426118828793321408279843218701431206321482559060490419865518740425888435353064760463983140631690969304716323773185904907923969836449602802738527349992306348540911721641756976874847591215760709778371424649442941508678150293727137692260692398912202848658882307466725473781788853971099802064096908973624979381954265102870338575584159869218233238484100803083557270955300550280752161541928724291575603472971037424378536223275597950233350443639849124967239817210805181788487032481396468835944645852694762018634527141065874264780327282390190450869662228955168410060265550314177364376532145196567470269840825847640239910719331594209047755515646725614406739241055455371916764573674782759954993252429046458801857039880995054194295115890032091832264362029154107635393484440783913504658644502933895954853327446661435901028086746882063435977375296675523006480758594554450174052310580447491902765088720425249201135427473402093418797430225167938597503041320192443417911228955718143815157884021221448924715803261678567185818400276707960248380289206354465352626207885032611786938588117277494854024630318262970059179081170859507916348438747607138553015619261103649572999392874160646374025532728794991200727435334594962242906706861242332696288937523848412987086842721787736951676353933803516783043017406973472440614964571267095647523238319740847563573454569187519376306196463975691151557076536942781771944103415779396429879902895421179492935105404984742147840953426972244597325219767578684592689621848919047167545645053061445170918001465667754767009952384604238597824235678095544656079231657763239076858988240533942929105749336089959787249069571498969883783878111563216222423031685981151967270531629896914072662117921537570016806010185920059403176953832219095723221296194925873935139259121379253169046579221376317118860372335968879822899672688639775542036509535141897916324032374246270221634090440957616135821726870078736115079642508701196959878864666264368723952537271275762870605855296989842190729547880196483449880385068233404885067528312899623142819885290299467895056091700478655012393765884477297613202110682417792460377109953727979900559474308200826992069959416565474218687056063830908889767916422323836626593891379138316905768778854136103034696602476596788621167413823831080436437057413926221323241648010261980714170439371116816289753452882315110405439134712549487431234205302829067954139070822153531167772397898834452482738113356534870104473161318968763050741400227305556130464742718962395091633958507491799025725553001073119546490444303321379354730817852847451014365450529783799494722600528841633216696711635608376319824610013216681532977475790656358191197112727318884048478856313666797584543810247629261585479533471931315621626390670801362562117956006631750096099622619545982316535684425471203133008510128616804315254962786537239932148850035544351362213559103789541124697450533870959484944541341830195616799448734978984252598092613848927866674162063648830553586323066962053109497996481025688589898936538817111628416009076987685387500350557155900178890439863714662296217852896686428926916981102561892879177720281137153949680802580369456532459474802400840353700678987976310327910092516750570469787160233362819240471511215675465340699398519444114653077559640428362952881810826140527861248040403364539034952174104877145198957188690373882049811529738624876983591591577785112900630240345296857178627101054812793770366090163096647961450258678727006119067461318881346180605617355564527776828651942343116388026290787034651648020965312881455421826345823584673010656029823746703955061698536099581356049255214040210441902090250440017445141489930656148960813018423087108151041396215915267593552746139468166778694136007075448455017900937780051995153659632790785408371676731205402181984964599996287941102689387568812455538828335689585194782740481497155638577640533591439996909507168230091581112575867726869514724132607256024901690387400775189605859320323260527507256181582351968029285514177801372702598801145978332031270826693622172842515405967375839258168912054698780299397586068351864527602346519764775224475624817689273138524254134788000708122479851704705222242547280238369606786646386403619858498319716391458364269458316376421609678828694317074190500908974285212946894335290131963930693642227635666120638446542389998095900991606447754694618020413265138234873543814435497182225994087131635061257037836580143308079569016872591151254051729406273524208918439876522443051000877689566591895508937027996666486351194819567941424221803553337818306027843865704707079170146883101857389773763391682544881712278106359757892664510134283063657251862567679910098776929208226641388926884625618879793157410149623967963795543068286552060683819407473919206343074895668382522227893600337021992711647621188045648665498229195896374420877654583473114837034069364739764278721613550698003593996955284623386091679978499128945980354383994878607782130657731733368453446416761769207682325387175931415727336771919787682654843897137664267392243688207810497605125663968524668126472378565244140463694307737837608755402594318265213529905004735857954031903479733971543131270002337211532828471175032149012059915249927165529249899892684370111750768128526962548148535451199426416716076548090492785015765436406801055478702036118610316122089931051047668595084033903101710165791975919153329600091701098734115484472188249710814784632861522640461573047593160565343247532854373559728394639001096840698788579957833823644555046613104240864017969860790667174871035014218828235409989932772439989077360328988473309385196031259770525175625650087654084874793396820078717463111026297182062170657304649031583358798414616449912752087364083518395827005378677355540666354598102395152251926678222534622546561643557253943813972207147126942064891340312497114338471735897463021701437628115829560672351838214236506249434238222426993436443664897660494328340612978482115356607968173474170827209971318832020683804571185849008786275459551212885071817026879468129008695748127497754778833147828929168217335027597058613082816089233726452909164463522316400640685449628867887946379996979495069360710755527625026489182032779509848063898597134642042695586227227985961063324972623990114066164282848640084139701277397441142969642945448809207850678980242132376857879585579215192480917668558752330623396049113678811950500076969541769559499970975185711748683448109126154708384336805120515595860844219784101391664934085535193935742986562061889520957166710172483093245007151028857073209617330060348760767172926808423394434347720265841597405347367740720731024857201876441145886328996602692438994072008343290330749646763523093276316299054338776078377983581425170171147846025238242516969992097216040245035090078205114702348465926164219008286548655869221655586264042670889221834537838113328243393752405977091094327287709360089135272850162386328571109143857161104058892216036005068324401230110668687263152561700880231535245994027841374714828053205343816472436002737574019227961755397300207142603377268805695589748981931221993955878616774351010730785383748258051670054947031652032778342095941641048315627627293102876283150249939513172485349726785513210123964558246041220336503790764402853569120058944149662054607568947731407535939317729619205650341399614988869625467283556073501375268062180186076968867234611019381777793956959177913961583805501307562393665105066932649252480883809096774853470690867608662913298035454255565505145912033539418562812238358777774262153993715530905765595749346874646290046903779174942136635196012255639103621475817979251710473850842058924775859161906652895458195388479030227703736380335672349536092714630456848993199863374469757633160824853867828271712871719303807674281924991461943888925093271496452105164168188069055741174124546130067639974770878091517010052130934775586398257892062431574324836965960032126408755789928456658488668062313094997108386204932403036928410411125703786350890263196650403984609908400432558007674971948139421105932779547924026722388545574894347442591529902283447496526772368736840563247977986612405718721616300134734672196618509347005572695085637223938983764136439561631778366305154518409258980983345451412033892462893120326216325915760071931588766459825022103733412171635405750920612384674093945486529702909692109375175014340339579209051719834601106331913514713581090603061076224325082565590493622185369329500745612952742827874593173382811575881674302148935764902629466363854920219992642337164514678669152832278179458667958411535627710787623810989303629008302428643200086729256896061614208485656659359395481216806926657688197926413724666743022614746380133077747518540317924141902787009359505303176460597422524902486979910690515288134363467521769767377088996359782797331868691220497655659288100194985205234339902278185442074061925772876469082403902651325163184166283486211999385852758169037388702310292526241182763810834252698358871814272591980345338440073700770436196231308007754483415544049958552822848206875148778269449296495016265149945242804727522911090668330127266351498186012964641230749965245118981542413773100273611461529404131356415056773811718408464835067739975095034240028222188967902069262381928267141938866677278478151006392308476660338174848802541189251880857573862988210935343188712433205247582548014813244138204240320286016767217241841816709963584378841666180485964250225576416581587303298243035750690707559663031797491373355902178611675150539782603124741390038886259839269917851063085161909266433192327078717152247220967763790708563170021908676819966845512536292603851749497829125234720976986611869639739444154792979136470277165502985178649116682658241057837097668233432672074440679916762493753663044330919781199719787511921002557394945734987730007824579656753546703087628775720158664216473268045905686701989092485837457097212654423952239388974209914445922059402247990457153140178634309744607516233845461142689046380102099102367043248843492593238417351108387955574237966502982606584103301392509973635466326618603627339057829642373543440067374074415416935333254000546443608094876058084123635728190835002694369615251119038917029405610556298295736605094991760059811432179852271142504062335992478398488751600102335943258184024723133357064185226155065112197584485763478086547969243132791253617650438537558594157439122201945707904436101001306074923471285991719006206119818129259155596754774923642698947671007232908370986129596265174612287395019275043562888770147197535480727500428589820030704730038128195712123506574760836942736920576504141841750107309492291640606982459724464509667975716260983994688801255423431735991363068241871404977118251541783418691997108690550580286040289493490674962368746798081145680262134868830304675229957120469597328813155224863610395209339810926862505531064770582287320155864152904982083644306258819141907598133165498491850733157469659745751661767714764730676714038174886574750398300404135862016718735448072900600780884995175496387879029905815741320216548878526856493037327998626107641090417684808588250015456441941908899697624283514651724417739465544910797127087325258884905644803722382233656564903337925841813555014812644478882303964013742099244063458346944995750472757886224185372642517613371223627546008105897020707306053922929416028196629485830693128943272643292077058385637457193512625944308236092528592466407298008631920188599056682097334039250492909740666509049307947445927405127479929532574955179630700042026837914883995357471452174637533308132011223548873081225258777822673891506931537806754702677502944847084360549955231360289751464342631939310195650060486319218640920536701132414220423946501203044779443929424276727536871151240100928328610607978831373623867512776984459314976413491947847997979851745900147473891070690871483493068108337000923887965999474864841095682403161451943077619237692860445883753875532454211251759967633691465935100184146930232729183187439384357503587694458645348784183357282119179778060124818084223797064746305784105445014237405055087142914289056962532050617887232489878110212466830019083278088043074350139083608736772658118284894580536797799058033742711213615918800815253443183529462231376328721937487712370658235523957934410803303762500281627385242685947110350057658215228964530380438553543550094083998149162867542525359803259183470221531884681342490885167821455241056190076760530440984156184353546679049554302794204510387089178590276408476301966830269060125207220324963296588208676737973028536050600571851328784912607353150266517966028745584513702306996824458532441866435855628712127059455085948766225240207671392477966813430246026937418641810413976304572485447750175922137198581481029588891701304415530051839549966928393578347416099340823035022200161358984311285926122411258720463555680821891257681882619722687231214094317488375358201399662987666942607175582582045635295945029312367016792735812888855310901399653123933410304053510691880929426592468823867153765075689194361747412792392902047517790914740539164241447844724255506935358217969430646061276307343399635940061723776748605917343243959233853620503705353702165092207170587228579770395487834742320906083002399321823384172342709532577858608726768650652541140541751676901984754193536682803234935452912521009321462382547478051691373790784392723521670295402503387808228590180157266810803690662767070123732033298142569525879554760856465339867791178329667619597604253517518368112336412951096610600325974621653974738262441292502746832668773214826918859033128282985539394474711490423183574260945037492008023271826870568566473555070129871556341606693408218672301556822911357798620431366117224896955410202107221664380135055166981668100677058830635107542714072361888063863026958774121064136666791896774370235785628506462670355191024655910194545604878013718512892989291389428037409196375966020200905729957944770475863918528816211773990364323185297094190707350165831484889366451570659447618567642688908475140369242524504079598894808506467268695450358546219034071921301264881345204915877512265010140670747992241305175118894372284346958179833500553259968099667992311785836868234177605041947658763364064596561907721065748002065419339654073992398149640793813791259205327757936597618308883032181709155635150944246885934052754858916755499924483543986601239174250805018273631356345050508605256776166263423671704984027294348067383343010209240143076466088832883963636614235348348360998772541814328975085932483204985119676596051529452577340982397874638384677307009789961922376956482182097128232628388568981634312528730075846263253937862872059354460066515818892143537736626682905797155325041713070945897462003260334759572038827291180849037432955196265850843955338674076643431351131835789100346331367066775078792334578339236491166415905684440962535377495280167757774722075377258830894283067468847369101918205024036110568203737533073608469859548932478754361763112003132564354381439712577047668650910144840538687960148876835362135888016162108930714925610656020207473942862621298786222497681493465503323020316412094036570341090617653249625614092192150183222424726552045083598777259173343041485868810811396727592999468671284527605952769468781037120781596354621118545180213811714229697671929165747715117073833698399975619026239867071527794737142089233647734538973581805134503869146057463036156529865861440071522844201409037727802463339704231974109447563103971397900087894304968747816488680149461617095959815570570414050683574795882359647090178872884442984035251746009389246798595984250537608284974344373254356424075134554430035508079073773076728696184144842744883605142010658665518861379809610116542445612554300675087097248213280385959749517806351580045388961280805644358842903435334158300753655541019824572632275699823038220071995596774412846806845919354277820959039062216013678935477479344629043235619574312410549158954907612105591442802341985876651191952569148400631283090957504810381692023462976539037234693637958714248748856743366932654588702575356238482964296620780211096770549297240044807893721631955241474978378323526121661497331191245758564795082725969662317718696607363460835531783101284588185243556112784701946185452551894605483258183635367035933032412992940388128338152228742465999824743235269510049051010555612085715800337386726364205025459485632646195568043353692030244450478442975425794534034283328352955269296297451586458915151137804387978351056108554148577268097956500459501792937758342607397121826302690836398265307143729305594325812486139586916113665029703420219465028355625757906900122620896520614164253156113670115626707248094968083701284565721141875634397542772269629314235166294399095554109835151813342095996560921142673659467784795631207719623495388700402176835747919638810564595867256001099291092861255734172614640293377991087751090817531365155467830135864968908539367207381086120294754067326344817831011974705327475587528073730138091764354563482580477059240296647224880857690059006977698327024360148278986950712082130423969047974888919745003538376421751066602680190339980875141511518998026814886902767557688542783200396766775883707321883451594327296530441858012453102645540516014399813105301015917275898616103930033934528707754936659483054230758267301885625414213258992605863956213608123897847111825002426177328973426214897759325078454444184742492914056817886139185029579633418708347564217468948699117119065378414908986974819410430759019358922682881955018111659663286826138393711179519804533027116347365107439833539549214232003457907238424730472768871675025627577358822476120461155633460078796710619625239427055769772326541160355895096331051061199809327080539782322053336801721801598567379559676075710538473180112136329194924620013699741100193807152490491953630003027595566034359979883100719893414151560062491646259066313238906923159845240674287625837342299218679664316210303819094492923274292923551689777842038147620820471545075342867968531905584664349996694595434678644641149078093023053205073818382748545928671963982045376560589567953366223796878515074484039270048697320125377609737435301048326517276882085553468671731479386594095363333932162179778438712106759550207189180269416361979929154979974705493304134333882401259795747598212989309054565176732896898009412305230938256427087811724438642900868949049640794535593097292265186403643729854221743519011630876362676922896399686585041547305865987410377229186790748411604073861768609802697865110487435523106508256946032099767495220047456642168708443415138729548909378471583307173831345336388845761606578354614504055752235953500424963874004716777701510135056185219292042409889134608556671124669621697527543566897666675056972339550569099477576431585635229213227973395260534163289325788954724520401533031139520849443774416226253042353595434058934946582816904924789098753070937557253002776309304315598484705187862570603812916059553389952118194310727592486760484612767684030155062091008040797899610804994296480828198602485188132674871379545340383402601723207702883913543425329755413978510368402781312974671184579552821323570865432051997422219307683577861363154756578264590995191215916134358915213768003758365529266592587841442746808601292552638877892651347336250954466670751702552192859610850052479620418976521015108980865015847426904203831711955604741192899045741284145274500043447127249290985870723258424585342484302486182500086528164242071227330566820953121904900845916281776446856226229388352645542866706227860397030222203965750247933490764546784634490323383990120340628692491207902557972286790340129452640464104649032535148259367550499426371371222876191537319202402302649242748267860963595212707224257296218553490167183760231646604590291673647281367665305605315956969449225597710280435752076178491044431265028887941482890035753382297022454355257712580390816063137287920601189843308753039813644913211585239533665424039655740333995705786263991692450288932775005061445573725588006643351044717957469939604657739455398495387745618974370671289444398725983663220592609197521318881645961056882189487120921169027041312995580786355493795952305202600600374373135135237240648769525957308032488057831495850065779978645796402985291577305305010778457239616556796486176160659439622035357168818361940805020512812944409487368063867361894621029763318969986130602097252420693326386139323823837695012460897216382297215895145148439421318220372493756070428594138471482302835197883803128869176169292707854733569434039195234933416867521185070629022688331518891802273523474048223999397001162807298968300829841567707219783554452129724494352595452281393195498349514358516916749307429275543496403400380574803430377798427832030210563544591665851396001533393098337664999075250548940126375106739008108478635264981219759412802486436094077867806953608510687932901069261962432628552524558540775148034644687742050234716921327437006147781036330093600228650087796948175232649640424294764584321628674448859879977017248065231240981045443616102904722804975347498364973769725435973670304581780221202381719680541283053494286650159638274520022435225692812150981454446325915408306737794415678310874837214470664522625021473197563540758030090420867587208119961385330121626388727027719243611561065966270178200597923928813493544395556041745631072750275837560138807285159227695891211425865680979064994867958703865322490712890378528326809698605367074691055962280958711136042953679897789847495002977158051850870992035901225429377435425178890246174783344041527316257852177729255667739776994200320053656000651051965127339192658504687730088592974839788822598373246020176140595308749909516800370645604220136106113846172919670689018517360028481629956960007433251653269677270358701699941318386902408488725954065281250211393770786717783256294076097367990193850830101495620168657292848905778427882426232439613260989180640851095220982099053183986970379652507880260417216677337372903529210112196859629375192473699003768960555104849743946820483490284202542818299279006256062262204683937687792658772969542599735096787265263964564328173401436932423255368082363264311441098864748601350813413706211508607200393541079002162222700807701406054006951294581975242367694878435175241766449913699235603013407050640235511531673758845692012569294283682960901395938074603053580935486665550488153126678238176893344170737155215747969688454260178489333579909619516788548992438992252462555717302838481097996710180163352955989471926765766855654838820895731495291955196938505852747537347456437177777868829922742428871637297386138536948341664990220521658596094617088200056510508913632406214422706887888063675079203341088875800425399756186727477506076306741746313394606498808059255067417080911189173096315432664839458880394258363187242689011573403828121344749414687376024598987839717910313286818020952587412230660509698252501595194165520817874590856254193428875221502115818629763244959223112472270966824400622244552651555451650342172741473140477513664730806160253988754008401239206727373863104086567626942513827821833866823705454476327104213112877998957954477150824036960534372582797230173793088670947696816471626741733680421875057433606488624099144097403688836468246131037857701501946363082481488957610895594510248697115459184221804448814782518358024993590725435524752455377726479923358875571785241487794965013855238762845817729136482236820691128309072581526190430134101296414294799661386987328527237088759294728666606005055121390604701446048400913034313976010066575321630855619926783865079344220383448167771021697549836251306573065790289332524888533914952774791700928766992122448118644543603508348548837649832999107417441664119961565725477990242146810859353974807367505214482353481917842353891907404514964135193299241611808983195675030047007489619359834595821041999030455353793553030100806270747273566068413300166207444729880178634502002427595481624601430820062837925109000221192895850468760657893632674961914322147143302832133643910672834578291202724975913155031210857886033937270838392929270010380232449020231916776299566157359293151884166727267914110387251149078177765237804431725353599744728584801703625446471168615702850317461052202619832315777637863976296886353551171702791147144323208335629822161629993448597947714874857090588101080615659444794799982999609290692186317965713318112251571361372324158267571655487252332173847497176618240211565662697415557361174346363031727823388127369526630806531879948792888657513543173075940743643966169887567913103400678366600812479497602638808260435221341833296301415860059368137530604120887023015243296084635590730307740527153951121258140059743018066214342752357712045664344333526000110713061252847755181063110868066884407463763901193668683716116314003457663898042964964851406082468814056799635014503358801979975215483486972568094961569888475393699194414447317055638116090243514734745715730241103874902020398698146474972314273246153010823792221964975828825324321884431728833783921068971866126054876970137883422171406483194242391228572957975774809990362468153498179486459633492542088596957870189792475137755485818388863695825442865075644029618774926218142420379688639941908598348152030752263423833215446213020016146276283228069965686285486449789934851627724337312961413656703607744343942773613239125240814713951798616838484125872581560722323794411114888946943010846124068832528746072610114351534617614723992756073894302344870706605899390790143901255402123357958034892940917730208820059985071991894561521638791568939713662482167018350715462663186911782668518999747509235913824584321007859563943858396596041218173904180517794051343234231472190784353388633128695808074863872916673875654203624962673703075164518388514572581664498300141032422969762011558509829763317963888059962533710658830408877360728136019489193480276402566569350550935930861017981746661198355360217559360028386112715772409250332032860727207019913666150020699130093261837664032254939313357484425960129619154210861608365282798575775366282529124003996134562742789017230553187614878059907477519200060965802157757678652890660802671091119464707483942656917671099192696681515843628871916396086146273615537024313144413681698738823435254480484395230950201382999678144861829361604946483568199383103090926383614151139110431329889189837581605793537181069094777826997548396713771296533782719605008919067468413494193741927844250563154134233718060573155379591123374402271462505010739417046082703742652883050062222048111566923892643019030563036868640748587507391608442141073113089252955904430893336777398685241202082413734188643270480814285097366826001341421343693797616718668313152204575683172532508185774054705052485394067996861029904094265959227305153858440901645268295928640238065406447829357734163446182185537496462222352679933597322945588427390406634964338636413381031240360378832559714932796174718742465932689608738762352293294001691789623957339133035612504276854054395290429964190903277976086208442713731829952444516952860062297342168089197111387229393897385957583369770633115078880502635869453712802385222359360743053356993390029455044552301718129403673193063539764437886737663270051425333365862582832259982075462782829694055259003577137062137419618455152215412784833688157588159330665521481850448857438777774593622347411326181467117317841531569725458228842622756917274709136876563656396166712920445825097971285197377182199492082210026801961870820498491651596713486886129013429313119868386747170061230958577182324796352423687279563651602269372946860131824173595445983304572122027211584016612302961230371193942207520916201683268721520502682360025270819972229978833704237583287730440699139152359542259385769654734000887248530922442851604320013792555551943589429025208526955947138895352151902676646334154731065439042691067594108628436311132504939796184283665299710863761208288512920572864140877663682301109770802577651198937557958605972840161206144078373476632222735326106280306336761852055586180939934002584246391393187166822864389373129992256466268684099642981084439567174648007358673652114972547899165348620774143821243520687012018903775726235713474350522620178854671176841291634561803618741948970198542194340308151998653669976430683790054594152554235207094905510310759031356112874010022259438874449078706981734711142139563920373243313686266441662277792674808121309115571782261557639779314721153985521540058692586539593083210709378989991113587091156825517560092072214089592104834093573451733550117778851077031923384640513126663149870872704141713164398588582080307397116463604843529449319352918907547601008069856305935567493500099135564611521113005932919859687421927767155751483875850790611148415604844276349328167015001420638893726555246685398618179707274096526431882468732348503740223459463351083988487651807268869968430494805032881674544391113182268432349684405341088163726642880552887525969638549838697172099980054177677018041352845290276288304471409725655722382069651153142163504218637508177412310953689092592248880479567179247060978960041272978017700516864090129385153439276814827472192506381204627238647968955173081872689600979347704185735043479151858544174987139339379719499197913084000303482152841710016546452042247728243945306990036166823168489451993736870692993165788028507335408735396432560576875897744641056615296374405102593371019738301891464697194452229091542195483443961886744960491568197439989446409908682008422020709962420224359961825376670066979664502209084240918045966607995193657613175042647327510971689590581315795051756067361365083956050203681401196812536183463766132247338793829778683936995106252330278848597756219874461169641449958795736997869018690218786357654307147073910837166588065850851145779157618069552292336463659716024382611982090099216073005396139506924873198352782685216366686810545971144994488137977464158198614085243656193747896261788675112627233620970964097031003826699922255205405774665787977509463490931166322935800244222043064309709155124936136067276635954221463017525871834917360794793844668058681416130933252489311447394586125989626938866899099997088882247888492834778285644518655016376618248064669914158766951074354184417240386737280114223519162804315806378021803034124320110968266947862408991657535114697013605549036274592062929578647201047756840588725577445177517415378111238006274341068367465363724882738363203678717526610739598255831144847492522345212518447497434479536499837574523659310441333043969702245443006300019939338422226019075596229081140716804812418321494227636807708528218176088618155323152988873940549430022551092588742190736422940579215393708224050180977157605691714173204755466280937741367486954595273127453768867856669765198017115849008166189863201889938282938284217077433966969778879847742395414486977992304779952896187366488935238444722295281809197359323025446363048034556576159036648370910388098024478460983525258179853663336297091282416145094449819650929545813284932201274597736667874829372164812447118274745533871878376694573125602440196361330438558405441221277874106937557898053905979326095812515055853289940287728383385253644094180792354346319368625369682994871559501671519274542711838491025524595297597942604171324908355097015969679345036666670001528122287488962118691065285210026902803211870549878023041752585658610540297178463667325505595063968749689309576939314105272463336588658249741464577287852669416813400995490411539636620629530253207785553160385078944805646083108806383517583127259234410074050200312742272578658843160541875724459325884081064832380165253627927281066877887113549797301596288128059295453298817453464063331846371095964854538803628647262206604173327773309173636015985889395727783342305785330605075261133046108030455603195496696520397350862938845535806433347367916117198980916622674862998951269089656839607193437800623357117807191968119896997982940253940801939159569054944377649975260652952448732442356984520913639010813748929814353063358205662844914702025641640250592295603850459388207462166258631265942920291894689555451432601241076879174832404027158582574036817442898041281575688324980840869983000448762186630207204448144888712745325705118074266421024497519102346339135565688567877642946968930933565028704460690702956492934066580871874353978952574819297267500856772153858420274442290599285186226734114534582370638845158948721556050587648419358856200502038122051875325665721597423708637919691135353165471793280386445547977431011615130921178432223546439179479049994313221838846147016006212783870401687780121562272661923758269161346244577346331395805279794698215114993750580915633671857254418471166078207235804408258911902496970716256698614237083968483655723374857664113181230169961808989868311766150562399562795053592095217363084759529222930474316345276587364550024677770851372816766033525898832452730567440199701774221916620837694689824418049327244707234103585627187643644956846415236226464733827594584993426793888724201270280947169772742148661686737451715508498663004435460530655778460573363718000264182035894693597314828123264333874806021831983686733893601622023538931574347518446595537235579384994663977982187279492228605679339804191459733071311584653840487094925139827220973077553189588619218954828044865380131257979609014894889141651983681091776441322433964614773239269766921905118716154265250686299029996208673142653229110077882699227029451152020571871990326610693878080176772315061701862491106997947141106741041034224151304601264430786962812712603443323400762077620568658410592299264733300606196084509773876519398786424876531248321183525075005746010817677159201078247185316099535140337913489351860803765515036716283399064194340880665924689865333146524510409824806608555701732506431903734504782866046570917783151964396142656175903585712149980627107153989491045467003337090715393354466902492913321007817701706459664675612459969428320631363059779244372192759869753374719488378349175987630695515013167273868889266124335109164827762551239718593712500759269387412778508534877426990635407997966698102109078813084392604440444591720927505795509615815879277159958081359376903414306361458992702221298665959268989203535500760031904868698862866494803450360834111386786421168032927170545020795626186109104711714350768681699928690571324260767707438361186790526460180630151783651524823305985188180893076210681568297214868123896530010962563167300142290518128302415308702410949086130091138160055419348732521333736639947167362825050010406808609277708812857098154211427098906123481481227422673735907049256216633234295993937604396222416220414399980742144114487887595620792949629457425287808999016503252485658514022476209831693263290744626564267887883486890973202869824159445215523303163151033999406761321900858441197626906347220980752205806264360600553622346963922697142445846464041943338424962054905351197847554467810627020896622657585980886829951887781960552504514806215473478617603475895305459516469887401930250087788790350544286122316662169286346252035950428733909185963921702970512267001030719253380943275107605524173764436414728807361683436292277309287681480889031247597720882143304185845797402588539980125113785434158432942836101398722913036244883807837992691153561288691588908360943206616433716164383761101342027028037338531740493771159781976912062430531665190666380797537993037452870989049137780931245459560592933875604540981936286691323362304181825571223802722970433740231352145563587726971768838239303089967512450935558429955519263656571866750272434844758352879439757175477932285369265438524548140601515245597324867884598414284258851856466344729436293564859745007762062223768700481361118434228510826887798703748434995016872779129399195411051018997392835611607409978202317710029587283955761726164056675582648082675439221013234363368978651180625122269547652419760543337505407861897886276500288521089966778225214105652788831650202698311715807380832128860355066332410754124132392687537882321668009216984755363095630032707944277442100678592833192533796366034999492561132724908090687901261445890530279880535718389720904105553262854850111869920068138612229511042882894506682489963438452135822169981774530970271239585901437527879801056895793942389500831263753387745976717935164414548946073913115592254981710531728752422378291041955794364810223740241227491524569668734077730031478766831050895662139249712189171646959256908123521316914199275645719144595655685607979065594397993929963498311257250714814478884658519356536821892827675917004354210003899515052386308835796651317859580579271747007214297469727527923088045898027119513536842095311087377403213301536631327356695715592600138731532180692971709721143316177313585569265382589882010846375021479660235261103762811228864595998104311243362387739177200566501309459708208993515571063474020251626662328064201930115414534756784056598008988395430843580921118854345387396399967038481372643149461461064097383208513402995038421027759790492351101044330231903850159501069200573866997228411968050890543077397149971102229854938007815750763187516661627713599360109994114950144098172788946443125580851582443908198502981183282478437254279463780022457654694996426622391667166100427596895149279663507101902459922483137084881786296987863719150623752785471275157394537334294260857855959541987340706041629103614154513424888243370481785356770389059663294156243548020649002756267739621171835508304337381181576936418443109821151006629122202131935449631923072358114183262523656982708312017163817285533051028867477703940999410783916308153468159835969053864633369894994144339735326505332532017263557429911769462799638365950351296918902273099152915475995715827717357712150520603419069913381245513620240438672627078019269937280054695697602692189042349637656392602062529857249051636271720927522852482301147023219522955089051935267482743088698030033530658347242333043483705561637777526946733108188022957349421037735560548231158193281756549653521851377929747421570370976047500204117890179844401056494576468383815709209565209524145136196767220331701900218052384546499879675029619848398661280139335593584506881186734735721431550382767184605234075279647033852282525570119195242373599015907002964136399369825049576557105837926134730470153181766315091452152179892000258454132102432066393316699065121267127980332452818260414553276448168526140555668159826124131606302366126933173838611383843600068783106621190939476587518489985882261219214172677201065749682551189245397441744085591115646244224117434657553612545204514095914032040840293219388029875627951236892801878108839729840641765141779292832531200706512324563136679502429315133589035138315259286143570147175249904135891161947579299362161992415783141212274949751655398298965635073979734784503023958909885391568390931707750253467953522236773600017335774657292492707938920437462129386248914690156431456426278083279850790214917826916135961387131994450143084275273734078832575784446695866775789685972731845566346747724304717467057848724970189586132349594614712050330218433801388818088093424682770861320298690684300707681245680197873392982474029269790494775502578470483280350949344761507512582293236396917896744942618901408757886550760644500949901287070761512406831362569808695327982277923696690399333768842389095399007851933906781498882415945488555390839818077510688187926376229803648982342358570409222817209750678312633571840316050858057393787371283708551132690335443264568132405885879204454857592376940538034745535746749051854768040719290694201329379400992863301232724513943510826115408875642520568165011042223868420209588556745701120434975966996864704430144276673434327852261467950757985842439613124034416443445253574050199006084613354519001602860342322708533754805060343363737482489400278159731103207585302848949445649829438951136980966111926912643405712615194371887720580290454973857895166324654419633558533225571821980793547468494258135171593249677476066121987465941715984824648433180540725125322401388317742584168060502759970134985821913450303715619095153584845438012947947991849646954600403890454901256896707993804697894405831167182303281953173459959138236650554377910118669385336542311152570679156704527050294490925076154678288065722944238761659422823272237857995259632869208498391067270050684772044554746012875870962988962511343803416996117146060027713429945581423246363474267135815889818120495862610371570259338494106241568441844239685909048692343189119575460348132318463266227265496659039896270023731662299526151804303667238876698055930150233816171366813146487520091432043395493890284734319119219855274040565473086913165301443080875983704330220568409622468459798437451932124035815689639499722067356705899102273078235790440393336057865232236247251481497528128437983075002224471702546700964115760341479453949769673557368238313011200662251282683451591553167958777355640937646765876608989510409788348273974792615327650210354939107313525964238668434668378859916682826001596012107289731074097832329337472405217664287741936236180540197413744945210525388298185303951361939457989057308150823226647058695136510506418785927041764588844589649675217344735254376774145830644304513981636651018337950540714537750230106765344720128373465140532589977124767274080665132109043711238745571250716113811279412198874289199363524498656424674302467317868416439151508940250766943562334325954261222731218478513005363804481483014896646903623116798192573901335734054270538434504757847695907941145610291466703417221308950903610066737065561604121275141655958076181460973634697954350168978476600655970611510157924432290495957052364054041428997407953862576538803292814486562078289475020524731799668595531161741214680137960457024636257372666528678493054778540317067702525366160419349420897077778096339636260029049686435919191371895848068061318771361901041586046489889900515143198578757247685913521759745178793176358477789360752037755536285695610983236663051501531603791063311872120839917147899459839939960302939719373729339088659382965815042424463953022778023879772343829610321960068367147514861737790210027286650327961159153531981518582375593148536247427035960986349565840165307887183448679767242519647496214866776628774625428701031321640916416726443180584814244752948464787936981917962550955435112950515072649582434034712170264323489845654974900301537080176475223239215969223162944014329587061898497678709856906659249970720054710408806890480037818191792409554427250633981448459761896235544966089076582740553247335610585967207632598681696701228602082446008823864353286017540779923978676788414801712071084229469668557397342922329457139174251506204898926839602516726116714683732680549869869824388863043170383847222145775219997166996529020123975962656995390444946125711581896939020068905464039494014573327372744426566734675041500900915263676069998429031722332632222481207589046081045260149450404767222636595404424647029830469649514450585646250651085180316607291711909306997994093742454869788101826521423973659718025329651313213816518301286275682374406845615072884428104583870367199822261098450728482563737632571332600553419869297021079352208543624114973145853210701293486811280788853935063511293157521963579671473390277004106464930714398980440493640961104305709678050977343608778254258426956050572588019639025292982672922280645623672682281671754996203857406735715393290139650152667548729902763628600157340379182979589150863824375568953819673083264900714776083753645132481246029411087380726731462573871638898774686480590458075525654431157141483595272154847000452634527083257333099574566104916418351824697014501290354590512847036872472777792175430719278100243709597965104896824047467580654867832182494262755963318642985404628943512433261695418569489069790198124171697660695424100195767382201814521118516747993468423091261292610103755935422120481470184472255826151921867971872512532576305834348594436466340355954556594925077664901074128231019597094599775413594325034423415051728911669106644444304506592760624678225832321796961987219041645977511897728049930097770925329976831129532794259542305116034358042667581956301596697687209421849293283990171385280841985584630367668674316952433020415875379838484161381313778763826808652620736351708094305243883448793895945069112050492017233523937210495869073309073176536897371392650719863505376491424872537256045598993241980818699737674630241518052218433156473804657940152306194076009010395526956112696835440135584221638601842640403221998010123120479517876699564604059789263864902975262773885537895318164781655498034727682608390390651051046492621093746269368543571012867873095161140620127121003379905521295687971660904851410283148423669863337601182423646068950061098892436377295610100707661372234005408645968107502407009765342123156361557731690060137278867092745021415460241347958396820195278742268177183863732807232076793030177187072663909114709723966964202193295222684778637938303130838705392156431457108885419044237464236868797313518662711342781360682259084824954152316262621808911215652048065843557682179489035031872425991637722022147634392655383443744409572513130036468546895354257820656970885175107509545698784998766269728024994373838327899344546654978738578439540541430048437789376443387220389189383933272041387059307679493226406326844358154216537867343719351059412419206803728560568648109464588384082562877505120474590017236864975798748937248492120773791098081608913059617397791880889346846372715197292205716221176074165013422949209458481053697817823996287753412924498727276355035491302218332348197379286775961726504760266130366578243006756170556026725408141758198815764116708468515226776709393390033244539380855449955046828439784216320596299808539182555247940917850045581735248730618250127448622532057185997288354370105066763177030811295091270440209398480144542587936299121341236376059612113860276880335137107526066561111464057260815489347254292521405677068741078257954139925860062659928511667293258266057639613766250352213364620139073348140098564830486064363052245230913101002747800996639287116038859356197218553741193745255734789972655908971633235190265380420024804035840196471988451499636274304089221927891034437747714828917287068983124879985380710777407121458498759449146189524285512153853535244589593216141758690823465957300589415387182007279683410607906681071355426791306557254070333882973288875956119110823714708144421971727958509209773147115105503398663914808486294380764771224339655983736160090940623779559786685752700815362309594864493923232583306745946620110531081415554862587694831452231418197539633455277363408115691362077860479072298973251103425702459959766702455032533352197187958747150487861838877376301551622197418293893537741654077322415977590352993323997199562412346325545841979600884283684619088091388207459910946269071670369956781245615176214717776087379869416784608634012931528613531448831984535033709686769807533283526349226821565486324313433496688887331179030641474484318279457285085705467096647050072798863150694190976149051880413534279044809040609510660055222218429498903255556888256454238363823808308436871803282496475814980118919871759903351362313904539022294479518678578685584385869044315528599819284520344601569266573823298577978170902234266541671404940580962800941301877825337185240763236473660946218548395433749677388856503257820830913232938712945940490586107270577593872553384010452138358906847873817314843562201804517626427979795652127831586710659610791140426351902068823063187193171352581992580308580072335808802941385626829368083776408396161920185997333393383260560503532736208755609461298381351166300771689375966350532871481620063558169579980451655650163897191482636040578556408510852227399631561175178843526654557767228084163789597513999160063914448804355133164341077423328205207565392192785098161929182417685052827782426328788875427463079108400003323470313768270143929017642386947099929042772892879968929462029505928327799357434598417421903932027451006865474800498038147177935223997642498369291907698661529778128572294700705778978480481019640934785574742764294314525247562243859287371928900374672631052336309765073090311790329994343596366263514731537220369548720606692419490813993122752301740544321704978868251384039270017604466164129077427328983988270270902826328079759701272944857059655081003549759500156946731433031284577841480423112188322866415513231854178889746380193359575372485185385882531837616918154727288723018573770967864925705970222483146183146564802687505254563577119685365583691984653855428513471603671348910699487732177242977371049579232744215951389437479863873950096961796699277892284709993432126249424469190526571254351321264583718811784031269329224434180131262905741694241611207041227341408838654760937396724464533806651161011370515986831757975430922914561060926314445676175128850556044597915377228822494937254390429138443276844593655491980478180778652215078397618040483293833371122582571202452605094526316423345085985826710964706750602776924351260618868183402389937673261600303293025836503561743279941297898981495176547235985793778773974831750092784520755870590389246586008626164748372065026687547865338309046206933076945683234772837406525494761882936700147062721582909911690589022918682128841687702748260295639616577537952338540216137063330072938966025129350671124596018613876013858768047937521431617661925613679939958557004871005004813433359192599561545041400557841752394419875532154751305905968606940898520397560642165948994029896825574740653241460312651411465048442142177442030496879806846688265210873085904200557236758966361740949567303534894512899121374789306534065891838178998623946012979606818782397606075824475223338290035539730462837214676999102839343454696722080356819924946051475750096878201171799101857459598680088829648232444568392985485413539398669919088674212042371738310725584498250063365465765894818295840147841157275108254233345535134667595632297438123410849381486975424849307436834237117999234033537765636166062340382329535562295773090801481621850669987673410116175555701179746410717203560594713461266281739981449849412117852710442144821414298438402262299106373601978619271677348611452385975695696580462992916254929998329628852477385204491543408309373538086684345208021961318177059079225776480113200824265658612498202662746914855439835897419290618165758072832574321052850470113594704119465694743728851826396518624083032348304261067780175776498902655641187128494367978641048340360824769285379899360290003911001089389935029214197465589188900578592933239373914897379248199548014671196233522712946137924707472706575404236968555148629601171299624263511297327405943200013495733687331529316533805410083303301339420202987409025243386980094726912910478596324555081476469175159376888687850610230685845812533582288711250839763516954816959566728850925208186305825069346678793295895874165595994184158336955086797158501408689935967331342193425326473627517906638450122026586241122930459781703688917425002429848654569622194171554061958094095336286487804430274051155980374088535692704784211496957144806905946604161433973175744254763326433892570344756851151536474913407040161186278546024307319236086536238042896196111253260407228981301676646179739965281983765843928611685597189698886666455100045265015087717001453898004514012785551592970404762343134431281047324588080082949421522937823575216993457348205679683483926485831710236259167620852765801674806037126877667749642632835383509426471498011579042545057895020134725417152938773493900468141688395776067049191922466833434464390094363193459889924189405643685054672070104196275536309264657473547337496362553372458907353225332410573597533206147453523556746218730845956644906381745454715704085221384464526362430052293661312012008306776428610198572898232148625559554220144751149711206125168531784744501975592095469105771577318463646529687442197569429689873899763904938055862163328427084741835464007446298565995103297480482470873151809625811988549839121605830008954459009314067946068778497822578122164071690057419243502806350642255448146681007933508465347461822897724969091792444175124573143420410238226997905967223853088307634226094901349799678653673901181787811985377790024990941029612300232871759393057056400868130956510637459023778161370936679356748037511282938988896832206587899875452894653204069448902499278817794771894902027579418572950613790210246251277314272663167965185444301963810591450548403784988908543211700690546144009035600015254191290861587015265494798263563970668363759540379980015495839822031296982049656243993221492466702934220330337595600813623580492937465916103521233723343802672454158434062183621284593096850070254191522983501179309231032740051677410324796033196273479853432751261169539896317322773444658559090204881295807340012610262507673788076557593624038741467044266676973373055341861077304309565342538464275270732944542265402175030733231828538147581193952899296934166183303661148339692085578629095994551051777169306946638134180325152530461358799950425883168177083082766642011281905169258263598834973679734384197973387827141463632343891109697768733937297051276926618666489172850837480753297661644048141685915993347943332959061435882034664079553136419541750700380737722167295418966696677809334891398134253173285437867599332668098896347011403728883536128318996506213615942911190418675322044813768544849027945672587961442382315128891632089635050005784317650252133047623927634301149344090267598164751339441693716800142410106052430244207828020169866149182531646342525523634078254222469104183733036316519974235905523592864832591146499384982055900380069900767514639771909117369726509803838735276848311137808711517631877070833119866162194841688901458069922153827114926209815650563822475909831853092421291335840109257422385359017469950310332305288946125393726392793092816710365114488356251120904602026031586290465813673893083830827676310814552178880196460679011925270105888805202068805975085766390397444068959471287635227687038782951970652682641175371225419982157388611299610308735255730906229839643144475364943894584820949489363553825963947930159464203760583438641776757520092726442082469778691631165072484496211516722942184713320153030269261304734434343156709049165267107805779146596137078234473915750262654980967731220300410069384371699007606458180289839529779240440019264807878528497465310752833234267588359635632089921670604223134567891181843337703959029261790476077665096726698796666287739325441505353988235234666334256993739951662995939837708777253860079980209487613881865719282018599169533946985080964426582836414821968937749134289687662907126764480953526640149881944231137570332185528300236757309738596595960218469146258347318770880406012969997354215058516362880374522697119896236449795009969481149895530005903826677613019440098353712817231961777390320219006613949238019022328371152186918023062086149059832823821552141701879425451423862024099953173458149902206489466354188507211956863169641730048186637637156446805269552890338293059532429796597166226317069887573041176333641314317835738296550230706780088296207582843019104403954521527723734991414958863491612057658638593167847188542709370939546927300398197056683375187053139953004033804614957506712350097585919436397606630454664033780163411172328548118706186229400559990337568596141804529638494871815412613091848664927515035741388902134503219304725268078183097198273170370804202918076640029358009509184246347787859372783896622887237533581983004398102928741889381372701210426965417130806094040147353502235445323711732799511664980954334040615992839986817473423259238526159453872600443927784081727504872019734594953498506975590369665398898446963223775237134217578013508629191416862956837497180330669884472273512309416616416614470603977489905493541457906198691831185342788535668991895499098891352345543087616449574569412504281953351129096440713970433056620503087533487696169550731262280708977800769042857973133228724199047368785030544116038768870886298781264004649793166021569076229874127539528626143228484242556561800896952833953577430016405058261995289117543553751969062963100175742425678077626362597955666196106411081533286876257651342475127457711762663196872805136425749825285672712917722534819262274533567252437317542638893360490304814153952349537067938675783590682784360969050913550619430252779517370330377147337891645126332405764487745038559438891239232567284721544013973938975325433481387516581032543076583775081452467162288753612973997887179218493866737702708176689660453307157343132495883335675013821363374739524774931912216779362728698518637221141194548281116506080495740260106918467816281208275488078500075727499735600639980181244142092525882161078198102583470875722605173963913986688048161192626815560870982338714934885233446969571638221390310030698151106307587225293323912508828909669925342537261402352527381456832592866703441657414769350550322524120128567480455164020357350527191096743244598168870285199848454982339068795903992104633076309968536627593396889924084793726176479551881446687160998296413858240242755748993028188146315974159336782189191575752058583073158396281742947145204407274061684007612196555056404586795373921650970622039130905150464497126561283402691732338496948887393751692781806662525748130914301539065428619896450989587408780273680814255633042590885009061103468025932858599504774279780360597181796248266412870958434387053845663110423655546682230353978182005341084576322128543353032935256526057322500222510665090456427042705830581418882788839604386453823200604637224117223555520826101545860337629813616546044046022309264818283802221378142613218203560780601450787403981112584545475295144961782030197886987092109369316948100092283483102262312066085975829254001964540144898034079066514120336042260493591869535015699040726686399464106720253213076643217271760122440401467090680230035806669935825479948910101036730689538394832973159486548523438733001487762058845201092555525875796487312923505534873065582443146992626569666442327701409598588335130227022856949039515409070055080618337764379267353353085253962580639030310444704106185503403885618919282071860427393954393581278504468884265657881892734807946242013121071468572348346985976298083234242289111260910700552564718368263719427952323856534530483215249160088884533834809617670844390152954168533302727971422002521080572196439947821535492689225194774750170439643419441780890108482677580719007103159292668688605882626394541590143820297774179061251730902024738024938121818722504095139393672498606108260699034459068292215482827743713268440716037831356580633420591322666565221291986823442338348332030988025704492658578771678146939102401921064456849638296342443192044978224430854689261343414078958219345627177679822377115467678596554865770090115393110314817775035238521697469767161201261082048634829327479025186697338039681486957637556116788248170360852308041601899442002324676267520449369232385583211322156259270782233618795385854415936913787827151008334001794550124449393619109553426154488027021946118769349300915142192396425989644053153295045968552485407875502947945657966083541223110452019476895501375826337282502260427862967523964218163873356349762496156165481943186048922757044409364064998107110933173346073656907333250997964381573488867633111285885663096377894995807158274518769337599484967403084498910390142368115313706955831033260929894027096072616244681182492977479588139248042437653196057333826788985933137152408373262744511395912128808247117921785074753253607719889907170231388321250640595591631668902488986409434012912216215476868096327918236883543984594094408705204644333660088204850120968482776857007385273502659100367577272602722130901450867222177118784490283319914530887941268678720102550354611502263830959582377459121156186130985406129279014725531842726153386086985632051252965344936212660748394473439429415384468398852658164183802788127202919730127668400571665327692760014955543209187910595489361730070247081225306324165460577028352892472354587907866683439094499457370512270136778757811816328750312046877527272174199599248489629753861388648671746975307002412248847658121849883927408352109935631086906294241871291188562898207964875252019956308598604799510045965263509217546121023870870428928095492038453865303466934663732563655894395200302764280319136989838533679631275075332856759445021486207637732716890776128498963644978480296058314935377874608194413414029166463478193988301003265353490899056316280905280245161481645191467019720613070755386825605245295833698388283224755779409738806943430164591764867655083324527185177180329718789820293210026852335842330649268682601834609264364860741305589505159262310431481511991634236609694825674070007641951656565831656052281161560881474104041938314433369087294593622597919623919816511543747314958706113829849474608952420397834822612487145390795334478593389093827660494550381273860929604623513060198016680311941887921704678039230668750879695875726908131890033139134473048683315190904216377830838993158777014351194917403853374376163988868540226627235047401631885506900384445070783542476457021219413415206412341188514977640961988909053171711484802854740300843035975436464576598770635917130526194870944795450716920056268668560708820232750458955603592439558856391013312125595454326025339141549004447050419116720083551823979588673591154563735695702051406685649555328950621150822915750965019766230047537088558742297945085109750304239463580883529567656911555517246000062168130637990116391919929856405938748002009602910631279787682848684639445924165465705129318892507396461266480196005907268364263903990221242641500684566717455616810552059164516802336067392318992835358404233786962009512278221091468806165649987240373873207111347356350174464053140480003687218452988940590258597590243270509271968679885396812224866211246306393073568948883514999228379255729545697585723961375189120293204268312621162119253638794016321720922355951797004082502157788907971603057079651360091315951030601726468462253389410824146398995996968728763150678004430223349772170521283461750710301273537854299267746259924204088039128446991520388969101946564894131292710044931211149471876156708498895986071012202352920150956995805151533526486488932720332670356373899052592916076237641990903318801038083883341062031955507629708671713509039211967356542093988401259631633327090600389301225638117940797584551138194583536143069938564075505201608534789264640600268292638104556741541657833384437298308852373943916927893162209522513673835091705863879875560407508955238487380769855817952462251867121515963146564899090492032646074786876798818871837721302132814129547065500922300007755147193862693615025932812939252583795133758095585287707841366446610311071566673167301968129691350178136290597457208424971638795183405908176827881768708299685640950646769825728299248770788093113104887358762907175243904203129861127115820185277766759470024523822527289220338845509768620704481358222655833518820832679487992008479917783404454640641961821726215768068364888069131940729813466395030040374846997328910473815410478245501711294815260980747816301060550953773457347835158557749889852746900339284190298397913263809934482156892783219446102953377005685691416846272246478370856534389355503872932481526050765424649581231864508131292668459821299006452003853323272315289062710322269210859032675099716569349267223864893962895387416909340093393215170680129998306456435063086354013381179175276249396665874447092243746808762053325393466625906638845983699664414352561422489670257358882850337524464996043546070351661628364055294606351300719958047072691172765886826880066116639880484241796506270913639312752356664243216450609033278323593229274696438210324208236470917822782920572489288732495781586766055877470584257427667127635318163521549744282769327260053827132793931557834894516250569526039113201224622814928071156695622353094901033597953782866156439889277339703193470321852627803435316927294050092540920787553815521295737673577607325533464165629185700667773456552910244232226830366017823397283947185955913691360060965258254122119632222147192433979488594181337433909119617802225256718802985368819833444927936256317625172721039510772887409886986341001087480298422956819358173067351739033690804854822960344993729251943008749554031775580473814457026601122039400238198977075519335058974069223401925703703828750092175000629702664244874324958990762895795025784483690031615884455184249244088226031885990495512607012705839907395438077162270655474216683249790584059143176310678183489545945880156442854074700196800153905436248121836868361477063224487458802514426786599116461677838714925016022967264568668700821454394434910523541783741250069556740858978203221124700188106315194334348672807035632842320644696887332550938090285467459037755341133709199447105930399368610484284331999663425387472360830653752836683415197682623632555459584750692130444738064176880115748405833569560037291365908041008486774287752297730756028951953438776861876747319640627181591581514285009589434337353524493794459642306131386141512834374198867883415534829777026932381137644417395738177352650768323284714060829693547548227339494620173849859474893856570547746511101448603498677319414596217483975961838215375621915601880477645408193955215683239331522010159450359074336206409067233633914034917648071335267364867196545657566189029364543027158478289710289875157515025136966611559350886744605969673608091021602687797508411810067868397556092669037369343477574638814989221540046295961912632467260376626972148264285319290840187180939329653725540660167393101679030064771951036383876821642888665418239493089984431493343830516674723015282722179403114401317210149552588947640248829855645057157248623343157336057757085093748443495190399161779595393938852515954299528889391944132274269458191171822178198885586087141043780008333387704076466023377797953630670488775680164747560792881746343848391551363591105682191894517205546892272227384647021437328307022313281503602829847500680178130029080479905479276174454843220705900901470833164519108295496823494708061665406440285768933041329858204262443125783834823608681698322752352955338347574298714175297235790303366780247454238943861906087913066704127014344056752822508412571581873404863389405275617087325848419136503531093227709897489533228021394928906881149182089882027747594119696026419036663832765343190687412076786950478187207556575725413150189656040235570966824521851688478641446842664385090065188082303475555066834103666733780261951659974001238005761434033115514275634024771516998332890221153560545443533889210422250733629640414917452578482561595790782241149270698312316158588835608948438925216999841390905631538286832873100520732339776486237221722858459174081511010749165165975769174431104648063893923364537780556912024260194348999260497356728445723560962267179388635907262034738556387730954242146185749446002790135396925435487894339524188724161731758018257196747781394014644027944671287752538719042190885920967620758536031612313091429417336956268047587465657263599680095356263824443219049179180119600148398922561247621412808963636656435187875204557661878222626483789254443688739055855547049548979340025033044281613583011128363512953180979457747862509046530311513030070346020965148427561325471673068187412192572335056979978808883856885385372359363033175938475187411118431905438724487776121838318506755857291329878678848581802632358232753071594050086936675313554550552279094799801999339529452667939694739479918956637564359597921801119687464868639497198463784889555602872814160745411186923638073871241390144205610492682235139974250343679931565292215002572837689831711677446233450302130734276311708235760255226100174353504300096917592030589553186153847812470051661006357999309572899062629924884159299438030570843495579516837114304566322405055172965822498193061826120145647824172095433843878218020156667682444445771987630691169648278060324365656325749538960745485009357626378903156541667270642128853607107740099021600688364864089277827096954366572323771789208495754716187885220742302977821469582259181260456242096307572994168891272917975003783374346453751146005319958068804078398040686371875204692048804116194236809261831222485596793916475509517282023090081983181556707636162100709908868642860970752976495063080554511067671823199817347653197008808327777196023790129737727850448920056964966626690662049893098565364301775060545288193940227663168628438693808848417679229246984005551364019772326594045745442527996290012769722333942108191745229596111349109881330620310601990044286645266967493630517017525732864419366810689131166164771699706327209242503376566718390118582954756258701665723756243112478999141802985485854342034526536908624424095067827357496994218056676546878635660240477702284838923277532441164788535816381847502188527644805532435716580150557716723300494464631300050390744773268772007547512244474570930341878111981122621215834948800991259359181765706350020524270279887603027637130893716736232999413690783641087229872528690697078378961979145240156256184629384419080682997598898998077731013479120532463119643736640479793234421040368794263037620779933562883622520188248471173129669529582990879571205317625763498733927777490602327233198246208028544186350655959073913725939247989744766967479902606301292346999304582728173358044317280959523232343113218470157582293776792561773122549238089062392247472525461477503638834535978746782713003560642631675846514994266457288949745899429350698674937972825467876430617867380953052575745882504429399733877412594438796028286806929733136780358488942796298615280808040920537367925101127797187682439236810481368958174223292081643367356151050724785316210337454320240992667967278003133763682658747013382653717988008677567014467968545500574990427059184994242854422714477327654465438858223977089026950774788356187593147048267133767878648722950491608386381677846574354224534099682012588115951960262004821964480171382297123638346755805350136651705474125096582446709152647381259413282783065466592372773793209786558788458482469896429959160933877070297302785328449330798937533319816119701592975614579552678953380574689206534636523870384297824066378069416536893277244509609805202935825585067715798922065706542735210464836206323329434697365285805867186526529216200601784314156992608958402380268699022540073931653071227367145593232504226543011814021044243004429838625967243991618724183176422520982886965358734501159333934745237923399770869913082587302433584829886656192208265943498369720809645921251341609450726320803226366469050620732321899622041484735797005564697904511435421547274295814707000775288927597045988222611563343359913202554466869558837385309339753489497407424250931680152107445415568005159151145543507556079405055148309312832394985243408217164493046615335803291487419696071206891715703273793367386211558872930772238243564880837027332845331860644916837931691717742487297754451330908389872143177535749552097615033143517149094795899976412014291724897721004634688185497099809701094741082409786319118204838662951950453855230873241285924014398679063244811462099343227132396092738869537447155556596957129828968659279643189637113988593224788177333975063311297692351268282063546842366763973414361359881356819771413331203024378480268856105323398921359052960070554952245492455947861822974145282483662014294311793019715600746185243980225313868249843097880592760894654200587813836923694750130713818887623391332398168376956382297291962280809639969557926247175065869449851845839072541808244942613267578306845330783051373897513593930721017937347234288085626371309346699048725887820888205816282191223455298515053414443108032296378134759583124724871867969894266171909584426418685345523245183663206806235964356431393014210902671704292293245422783673269449062406275763634512266989710074255091963174491489448567035158975184958661686816994909952525504784696847961658363055436870076347325609466031765503052784385330350041637832745139202658104999963250835176959543845314469627877792617417174748084504320767687928987106666107842540959935862319326612150818700702828754133180379084095916327005017697375806012124605730480163959189095147883362214852117652580081748390816968065982163975573179148033780427182792643187277340040945223950730379608735506886709660957245035427433240800872197558862900958476143125575259917401469317260574395816152477435654243056652636681789299395919570840156339754763661784381216878658036760314334674566433336047140171204571507294839406073641298043048837212985671031978227051486893270092140522111246972673518402734357351335090935648256480257953040445153791483290336056133256925936470784051670784710183994396523252771462883438703897893087802821173828781631834501768163256580987408124644681652392510744570489196500084615924120176476297025748200507215856872056517857977561114341635792767051603110026427713012623082699045340330572008007241835286972116300801165591645173541532955690710433783481532977189928950364285088537541576573989842010404393238498709295587703778718007456719877370650415391640632678664350800330022190659081662291402777865809328601305429908089577415475883956983598097455472455802785385964778625991720839696497938359142197242883722973238075468572819955073907929717063484102936568161363016412714215856562105467550044258726733963295889355541476917807620344032442349718858317829930623408665363419499793732785924119856604359775852088568388986115478397854895761632854407513874331747887844869069039828884219970299596215611994422360246546274373063361010483905324860759634783560880052492328982328770161549391876918679455144835465338899476140846001748956245080644416158473009891754880719679769364035114912687060773815344060741258189834301869167101494822104297764428774682410067967901239156879916639030421412865680676079191730244249896531981325871376579841502668204117235752768469950100730089300667473567529706381771914229591679644277483301768003150421853535959965525533255991614812381313192889007458974332882668346843336551759221947997195720165418305257272299959822348778672422660938196625135256708255248370024526844884168569332964585858782841707136611351197920524247314014302828536190837728935008308873501099254369334626049695307457654646503829385916668572374546435665052683305403084423135431636190476399179376965378847477636669821870780932610445777318087531394621826349291700139972853411846659387552042490373726173630063244447842308391345557640065905284254177189955001540003242543666314606734178931256611466608207194252618804210371074656994908426810052294053203342943256667100686127549055061617785357834055678758442321224266038175269222819374426882497189531929185712983153501380552346997294507257660792111884096499190599704563812478022949677893749640008797007392979641808765954487629614640501621292232061568811203303160416373532228695240729434845326932107115747501755302317677327621402877580946235157560810736298595560341389428208445462137838840108302811973045569905110210596050033782808046347097451904823033307067315424854004416453616549979067183292743505672024695248297334231202832638596117585603508718165440433463020257727158910699116694318082489846234380603411693219883083262081604564644020118775926779007643829863437023061121148971042049118869162000525583549253876399220841231209329276813606508212944764148100694752130796934003224730790069749267589402347201457379128916437230901616070006566917326037712709802183039542999828334889435060043934872577398776329078742870168133459697398952350262714425708699209170729216289381641003664922094597386624229877688341848831668133396968685343080818636189554556798068435673029564413651128873692542582234186690806859522150796104310403042626631881518233970428055483089087839450465800359334078541104789174348330012965852771795018157584241509696737068018388122496703011761587377266467474380492737503982843748858273015040857286780323541473541343331540217326329565546979881447302526086342964144202155090909194713533765248190488853857896967283882569423099481866438442235640838067602041310147161616069992817460503126089176060762811567922714142918756871248177214621236251021658643511531612471959441621159770089468378099093292030662230278028095233915499480479532071809908577037975478934393506438859991883567079421565966233377386828012337430684113816903259666085715763767634585357209357524111713064751089550635682104995587992932324394825773596387750101980907801908340209425465132113494557396183131587393135776330114141218241010296840893159832389353547734353077458026369995993167182017201985951749166106850888976661693312465537424646261071089084772944226128899996072364272500351034353854544941222934202015375659012798965807163011951126552244665351806340058860500945507008344962402433279753235177378647596300300617355263672045205675426317781723636595017554761372596630338407392651832238780579289286813178959443588718142546363437653192328399619291858535161154504887285296968736636191913241745678388488689456236264366558142781033137398856949685278427461283342010792736372399900000287453018079716033918624579588198023292554062808201888845020650016385350661674709835228854186201079402389492910048875621953245150310653496502384103865512949057393447386453686393280272991902597773289288982376004879160254161737683790435768656017647090372351757689400940055939718912262818656501429654502471801415341652036732362852416448580637668983768808758529894014314972573889014037352203177604032760770659463474281565543484791086017984314051906271995833540179923640520173626009825991248358730101384639093282933125766527216420096842297402185996089633410766758911303228415196472399869345740881150610622655767345577186990820753122616782083253449603013870689930830828460834402505476275388102008441833687647095788164763448680830724166510619812826976606396282665580079333591433301449327626223210441450308380433393504944261425373566390014586269560358012815915702335242365052178068014077809635689765582319909249384614652013916247957139763679011437737855146159145606499622117907983695543021946329623514458403332648332691294104230582518064973815897449113730116549322816683734427194122180322251625892482166178053876621652564930687200393718001196524874177194668732963121736302831229158929364010054362957001999319874267216072810447849426745560815005452767367701431384112479997437354097143159986234022544593204847427629017834724372018597360125917968333075789162800931612241222750395039310979887984740425646684888691312973474739050012054628087573856091214943711043585109199444479258646297382337907133002071524707141015745911332156438661301546778356821577134481018002394546495926425917806385495582438940517404232190408998702723230459250748072382497799774676620403813615656429108759936218290197376945707643296628379421741622403874928517398004174803805292631762720807448787552205363090815898517964099516988377263921724862911892828196840643128241710533851033093075417377024461904327547821614116940396863180019056400399133447630925697344668028578770520812061053855964298572486722307195048577840573535570238695977141309152374434986037575699173873401821904325265299047873506075305644130746547176844824614574999154116963644309956882243215134076621647235097493612333650057005004425824812455639487852551830706306110832167595702345809185294595943590142292262862332558080768970721949060882113588830068284479511720003028219637653943830204841972704399276762392606974306993236106058456129416667752177255522987395383650537197866984069625470532773235378602098482595250888282216377274728255353729779981159588065517812114372436734157963993224110000545400425719116048295622291009901351166125138376266360735954561184812215784791413740576090949616605459692999717681949904597778870740310430194630001315014069668693269679181191151222023516000662509576535596343790230361442932673796677764881216286028691675463440438034598274867438390444377394216163900307686213395919638695673935090341242403442722421341055864964802033507546594140103161768305900861648435595065537789806694628236027272172239417510229736459046375372057407779029526257379762410644138907872192616004525350238063089164989926438351947953688226955675579774339182175648586125373651101084151095839108272827752747217570355857701766458063649926494522896157374896824575506396431093312989949958842604456225654877005515843027562867573115433957403126216375439632227983917422282224963422454102402925701635237568023629694482001321434144766953084869578164960716427816366178712845499996495508740077906445731767901801942588530103600820259361045859024809216632274843680921121735724029263419160074400632196132383277996487925651058205754018252635663803082324753033639361033409331982923036847538456620519173594381983816549906937872761930725162712229118794137360851407897627102067895187305952109620704782369122856154149740825868494483444113704669714002022650943409013071095096691044577876375209742787406958152242254484857945340212793476334805774909244654919936850167579759907484196654926909483073129915206938536925391037217239023020352772329656413726305368272592651669331505723311938089575167343364852222675288016622760362209586271530968859754501431626847395488603483457755209754320887121351777748702435610046573611278310015324186600001342465516070582809879685927291183508816002198415239095189111280276663679676194256331282918343290560954025447517183763656008806354934915838771512727106132428868071669509865797927582133790003779008290727321529378267822047535484837949211202958798533653399917467344078237300545097049478827703721151539498946843294056972186553930008429652932429492682775573779980595674016305065819220029950990463037024195507852391227567828660642103407216923863194790218957221135820013924480896838796662656111509579259999770161380036571047962604373870934655493989268227335991975288972500797931179370128596697034524753960938577384421114804419681742896504874526680655673418696363056050897234738445245139330567548740893749988715932077808087527225464134918540791179435185024807296213207165636682817204565897251543976447504314127507559051388595213231623784074513769822465783776087072285246867912885729711953395995460818821674553586034650713466576243277452902320715481823664824672988567796701403363023689570745480847545298922340723553553967241560738969534909857952918014057058340268754917041137798300835638849889123806963529848317846021485761791107207668498694134661710708425062735062741769708495079924964563732436142435902282974924969724170705372187978190014441872225903734413662253216949183999641328404377050937727724056371047972211650040115599186948111992703954204554916765777867580881569482853964815618251825812774880154026407906858955189645945431674475303334100146096463185489628604563754468751508704418403396443506425480768727355461416068203842028244457539218081479661445134508951233006236425226001341511763613216671802828941070259814454333952583548340618617853863823495296891914639869387033090308573222744918631907269152468810961872953101988376439378009930771979154528261031708510613371603671160186188178972881515659153466200652841822350992899224907352757538711908097749014111978964145779886061824192690827260128803601496803363897296827868814939556575509113370780879971318481042727012097553551492991582650847718983838598743274436460866524930324989008418618799028450139694494376343480588914916789742246721390746566186410860131866089274241945673065761293818230683908584726828429163855485231731703301286416257336939011780169973527096144584605942059838656751399715824091356812488208743848894897001019200289318949127507097997304717644536476443416746183460810556965587815546332087023479476641712543145908492260988297261805462433404230627932813572166762274042176472208552363268489653285518545066063425850326938434751034242885186699063577739683676574411959407640186067275128009473608445418894613517661353574875055268736366082480456320005775280476421275355650204889564850741457823233622688643554728245572221273566249484272964941484627988061680511342048216038304952449032589516882222813713681026389801548689664698970460467877615698973652173818772967185430088829582200932382226201502893229117512962645949028247136578889407723145613597315000913662415388754214434400317029555066652802612507114461779666951670613804871171500177270089110854280284692816977083211653910897321336535663134453911137067067534369439560664476584187841431360246225793790505942823689951899002362519363467536245408726353238671160611987029869950679168280143257536490765624253638766159902403800845741299832945138791762221305505684570587661633721049135423206142998622904154380148059002161512837503321230516036241435332705428501015083140607857909690946989655419598212112382706990406572096156132468039094572931757424302905429748636841557073557394431367387294529117224237614834888524211443942366517936493755914464041473495299121162465761847273423730261855871497624086319799758506023460976105773269025511575024149680899515350091863204682978027830018656973162903373663989390270543938630779084526289055348857009838076864982402516636867428069422245215102233549197402448590727955451959499080131980358852393394113266805380091162293506843604975159100861570436777900616620713165751349105464291715643139974967063792594511836755070879555601335203216182572406409146701422724086194245831358850670846990681328445122640316568373914259748359683030166296517890198054320992000352086410393774420698661677130690806210329470522392714731075367786541448962907360587057468996377907158419921429282867257173286617160422291067880456380336149948813548007074232341853194039834526689969637639391710962607205201519833748981911455939934162299386875638845006383917170317425633227623557606383782774281063333144596160159098172200127444284164451626874332533536438460544019846778574141603729483456709487839684267769526079260194667447626569985394222887971210993058597261256556573872632009545231854495374018063799842707751436224674906692308282464244344514772374865458514465617704333285314006982508820377417093218883888963335288822515141764998207783965804699318062008791409634429256968849118251739133232205116596942122779336307440755681957791942349301567039322406581301642813741502072888290196038753258350568135520247595670192633758029444871255770930724311529401159485498802710722941320033476732046916610565709476251325398369951081667283738495794841535037885395716028568085857822747860853017520340772229265561095557886531209093856298989854599082024329586071831805893740809760940724553788963273506850422091061109496640777982974094010456729180864553842934022822720598561453101325763556431002768741088255933181065859380570559761958047473037568642886627459306190130885914576820225066860395115629315851274215750778308043279621070451928756831154031275439772176845282403191200006311266285967100950062410244997433478175683685807817395036627032404705087962277891997706884633111698494899539261898975074168906298534194460490830110531883978106466085382508484612421080374327310791660100853718942911121506635904224657235702862825135671250378246310890584719296740160991095577000716710804806298189819378327294842204519802921205684776865570746796338574628843262821494365923853245933368160722935120406114641331117941502944990573965305983091856740206111259171557445008894925418987820981678073159133348847795160172112207396960601272944487423422824850174796346148772560844340821515683323586992586220286039668803566977891919825274570278578630544983464325604341767483871517405270420465633759564841297023697585810375509988546325346818791710508208429909019624852259466937794864269543821983943295766456613323595016467717041134176630205201956405490426812494104865144591820662303788018792215547391262296320102543824633447712291710198923302510485101387510933683226130124481581427744537034061659752853655106051315254654116993457973027555637764330496344675526534188943694046720381135137169295051119919098692278864789444979546904969749995488042204071818268503241769754355003969550846474230772591950393392279637760009405471848773647119619103211756638229929161483725192997428509980835174592872128766122923476372514676403876598738238995574847088541348252964122776720153284468233505920056512238676662075806386805941206109905711429054543846533734277352500571913194151754777936915071651316272978563641890299809548214477138604344875184140998150072534167411491702715791836014020973640328207191383184151864827265704396463623921672893640937606809788868778764530842540269762779041712615647668856189801968702072779164504731330145531127938099723210090865377550962329300408957445643164629851688424128837434697928792133582226223416543237250750126157112397719455249773709663522529158653993741583288895445658050974761840181865019973052466881834403872844934480038680647969244016482534165165571332828242539193715808051399447814728767606971806138170495360746114601185431493457811805273873833828318991827631552606964048797641938136473080357312448998625230197582554088661734109298334747048919646520980528224886099075656891923557517410765779829236212930441384646008279177896917823840390291358152564780360432664332596917514200635997298759970883778392635919342231827410085781179484141177057099509266485341408323508378809507399140363844619626210700252092294227111195421917602267216069557733786126323348332656647490804038506834793780526564200782195814338233242133318598988093116556162721702334259318288699823224792943075280210383215937689044941644278153623703259073544979184510551141903114344753838543788585867643876520519426658506201202921084459469594201784757587602583450536773001136748454747465858837266849068706784025377387504893044731676958372555019867041718993437605648247388847460358606969744466572355443915809530064524715203461896538043683046447482778873160470226116831554180014602841106236148010361525997830729671408575322807067841818752643376506697955789127202417537713094933815955351414761895027635436143794867770952869154068486965190643997242678092348948931785013528012945713488428469038488353837740425648083865042882338353499362098404924004807469711952894578438997963549259301592918563670992881899828462321704159930019236877901516439953660968310218059559515635220986917336345630343498294751878618572087352745316801238687661255954568593423521770616886447693323151697755355975600029237695051833805609585692322067161454619633127182605064185986828708617088993903984730407341648048245089546206516599002877394916142932906775297610015224701404722981422246543884155505533412892720639408529522723100254506398118855713373376833723773450385903669528610511423691491404566084693848234511290946052274492543085944920628257169552386282436833089310999530202646437262000788748873989165355832721764852319933411294739984216784425785965118584845646958236353038820389093681093568719752228601600789403476659012795787053297971121569338880713996277329820155360648534004406879858930296213110657746247299096959333349225347299413415169491378975015081925815563141414970418313595222818409962471068860256360964493720042505205833589368215961598801774927880623160996766317385360349906899148464082739353512914712232788589569067440299663679928484432421358899660351328349423984528590057106638573431488751162593022745033548313111732267069698505003337203759156110584245405558185728440013823918797388618828345567397755970614921971875160909898451127976447550106888196017501433215804280315668998769714798624494644924368402795040147144410811431955146080042843957460400022436959064289705854304181408290115685030399647412163504317797104877875861216745428020718960836916669734451615772977519466923711778342713238780180820333532816744387142930757388041903687834607048865640387339497122897472754590866974101388898712041422720736432441615042346019165871290233480136185671339354410324160418591673311770101784467808186199285868241165441971689714212554952982715205733394805173652553004695735972713658617936306034481561578581789936581267417149862010300757281382658627426527364030279434274703209194891232263598297032903014075067964154592256696984478225688570885461045511351201658563093499462268777181308576042821639712971283708596178801034346622413183316514156238015031292217448171697484776913081203821040854549067299138978434475824323192948769626660120341985048505807971904245994512301387905362117855733358320081532359485868814074323305422185956679582506456086332338545913001702865681494740309411232230103852875854537332378446892187705129511452504406209596524567153078978661951158246591923554473292217613346389830940187926310322816799750842780442184761911754458623179085468065069881986084691063936134183010862036960447294728573083557270341202831442988836647512655701662907230282343317926968307406113455758450374273305109760871493100654264685548112492821916343757096059206856778001590898185329498859987362663963409733498194020613045083044526082351371160357047015330918108157161731612044632982439426841479555369367373042147484792133263693825483625897141764128001915684509412253269644077747070921251273055808028996124896617911337088251739559591474572284829950267113817910053156828086488833572071716705971255040117195698445041676591632305100630459399898626620171952827485718283356244666283252061466096021803930141145421777359110658666545732761547698438306731672836380030382754985845291365451228661947065724086236640877521404349118562391921490236111864349915876762602060283522812820206227350223734294608586373532842186924433527066918816870820883239955841183484014021026008265254696389295405108141183222597392167744184704828253588829019486893277877951304832482627804681464870543108815039116075808674913371541211517522228377593844804079567452228889476842632210810504693515806735917055429897442477962111810235104477827768189470158557462421619258976097180775109037991336115548801251985877796076517641885774787927460371532448764944663784600618684183280730748029145329539885869966021806768931634050124766214931895805150167115391705142019722963764959834134091791484208117232527342701947138681665606242473367229884638066549096729685097882037903100942219292958788597173489747549837095870562334430210903348911391272738709558675910133814993840303715229004764653567001561651586497700690392433112784328611735199232322252783929392406108856480724576303788154093089840916687629258971945265083589230681428716444444731644356948721803398816835979496719069097187935452827581339284563721048048648129133357432398385761771287029654236443261852394245747631241392029868095896298765964885348537701393764916915113291238878857302658372879945786679520637326106885641855853371528226372615741153077462771522162067495849263184881612013418885422760413370012261005422607481288807690505267056770106283863010153752092581991810759556658677009588041578436238174844101033498898019298249373991564258896402324411002261860317804986351897603965158098815816764638498692163587660200344704853948658731322348982654364928170290891987311338824100815572344145842833818890819586622618261218350914185280856351834177138071027233891439406024072504318019736792918254422076858867716265976106968301045378129076005527172446506729339484196075583523916215051127294011340301595932224408529612048143837363779133274768349886539385893629794508685272797298569053214153641192714124976724639821353861550068931398516050249012033123816396197264384458478659722537145749627176255927525615127500883175209899557984108714415086917022043972283812483263057389120563369241805362577266843583069526091434454388417426572780855711116928085699791940806604502302637901289119335960767932016492034464990147110757602265108791062407113246828939044478639190329454328472902300121323971266481428019815712614802890577693515925939840497798305628623783878236063953965069257203926441688970034415147053458573345241946017548840512622803371200404774768748056510315768146377286169866752450008840953756367455013664426936603358656870897756982580819540626345789093873275727836053184825040167205136450128486667704527900531715099024169701337618942012024865783525232321262851836698365434499995796408045747132585836327171254962597415855922486841309069794069520544576751865003294341736617662660797100600011515884905502966887128248380918599511909597311552098954983080740034880529694187318542581848605049014938519825190931267062665385375762839663785483955423268926613625651526908409473462812611182582954533716874736312251912011463688685416805907029307611333442278573356164028911488565641059370978802351022707274394003928293051424717534117337926541220010427025708584076684532539957136026820568033978370551434700182402679692425244021757732620125725257280530715365161661374697933223770619575362279107002529122129116699529911462787038401146832263160444702914549935249057407768676261041644801067620213299054440332407981792851095004542342215609612485609924202934899545439283104821749150631432673441849157802582217414835662402113222850154037807204532622668881261902431146520903773480958304677573911626859014684761783730530365198100876484601936753511773137557961701275880968468770464076858194626592640493635806217706619073827976056083920749874095096383122038771929633102922073064052252417333084620344873561351055375908149380960849660681075837505328467241106589741889588941126903134151701497314902124064321963060068781723812317657349398269820958076857959166527122134848062136569175057457783792501791039677479726411468341537274911185339375248823978432362926441274220757403739173674286684347187939232475454263955882360071196674761508779756381900884584834906163932539900888308970807450929555971112150656600862752602981328551542462050039898777096273120975948754684327525979246877239982414210564048181313327462958126545140594130695303889130105972324818325145017286635698322583321478648099752787238202401985411965791118940092237457915917903061962252525218692411885038521439162191839059871272682840256625332488219380956573327441187574040331652981212301080486664610541603717619472642624401309173778323640750303372967091173871004162796350581880734747097134522288210982406074674783380710790189761948552016418845413658530982684286532723505154514337540326476438263155238217319753430257836898115655446422767353828900682785799012740259895975200167124067056588780538545456807538414218848084945607532879366015120082256091256039902269017007012519015417561868065610906538462029487876376884342598474601762382769477774707840583240197188048367444985937986611985119951468567723450440669843563822830320988453547178622437203648872996318156272247987784131747155346058018998520348606049229298516418520224845306689912797426323816559757558042284840882421204097054730818569574336061978024083107351593357291606561122903955349425001356848030966136515813730889121581342147611271036018536540788510452649978806859096356063346913246941699242419891827516176149533791478532601021762669873453969808634168406889360743430521175567467097484944548271779790693357936834462739888385018735650190344458363285382922362320223729678803098663419188424728368617130407120246002463801281490423444322713699838607029038832009371347675028094465218611183251653602837961125724951886284292120050322687629117633367996588506848073665613295401516099611436602725282790435196867391512667215771469714727723290575975796086754486730552285277158372834098513386165357668818173398904970997494608032643157574006533950945642643592762488215004187489181438672037619033925269293097364512561500423292518194518023336117797932472115137747085309425181150668615072682248398089844172385306032833725588624997074203977047539209940582804544693350202773580408911498648824552006440313544262670763977488958865820384502452882410470084114640886704230560956338516641283628903880891719840230966945996344263265690178197941971862741708881307672093755054341418681665479261632438640930427959640849630853751602509869967450013059875778897295800645562672681201593907719579212296301872238301515361670020514243875597046594277801778719082099098061871833427501749793600273893891881252588459316684944597005439722956643765457290300952432632107584922369346060943276376358525330103443253936833096376662118181099967751074509599846029319398357152366939130710264456950639899164575243095810215972173491049469877480433149458210010215916126966272355371873455052209852412793457762164152482842127265541320594027073061171990510524580597522457092846941920211722374588206725983122958962926834703533892092131039780383066311147715452801071338957585639159312056832060869066438906572061042497837801266678965405286985769026293237966710839463530339117611731644116242709212505570704277021500330609138019053498017368953042115646325889265735426620657875362287807484936866811237636961177326078205251798494547537978687498541899636131207233912133778214792981444969795313938042585176571670395506541530226649162429044940623768137809590273129307567770550967273414377255842068565154234960004306854092888256193816770559546894829747529540573339111575909541393774269808183969350631520681405878823084348614824313291616120623800433611005206668054634310008534039462504405641296834469613499662356644930956953997376883105765653221870890488951345006396776484010431467915483008390521111182516548733523961220157888415929148474772942747145323487568038570064519695682519556396449161646214453033477918975596227903927841360766423498661651416491068752947671627708981389442617944206700205562068180448589006885316075430462910575839568255728064871686056556850921101877493154884647955853319095038986544253022814166017786801017228672054196726072784033556961876768043023237049745841320209688049117920333762234141304073264095499398436484517660439903879052679857504788676906983631910108966047408824268225335470537102642610704893099225811417445781180031533137879905014086357936090470077123983373948563842274447106034315334581778712692864159881520719002745815606587284793981726134357692035365509149701180656802891022156100825453070672209042014338853886796719283493397381353017290704745782200587183341016899303209644246968933797969406523349284289942902233709811305696046307706841625020013307522205071893847966120093327607246598595088466381632443660834916593240271529279080134707233427237421028381780440960401522674946786357933866805164491779033894184079359606602088984008881649332302260253921423532324424547957311578025190614047863489207889800720525258602639685043299534819988395545542115969548568204730886872960611619111333858150441920506017414049440010082808801566152731977178733009363021047227893191766277798901717890973487547185928424149012051458612088856892935045313316853479994609245801754005920502461449626593186206746196497141714414606701284887172755632787901605672718085173881318456733830698053640462729621214466309132926159024931144302719387316432063979745215120737775712048306792300672132190400652438996235604749679258411856000349330689738900107994754082891263681652793602682713403981447363579753108747197872612757689056335684450744925899788189912889101526269443585226018940731112401458130809222131128485820007153291072307386896564162140017814520101760399557555663812048191513410478866209730343986007776089270818326884105399851864339420676255004670810475298661731875978983544315192286392122313713517240862113267881084403966428582983015790650266347407437368588724211708904703267408992655458572901831584419795954152232736528832761815096324786965439039745407377588099171586607830049912125744449210614941324212842037130479446661901496205839564678667760098924251936014883622071722352606095468903431748963309850924097855078765009897115378631862966934251521002942239347578017922916213441059865556679039747122050727802345103965027876804718310758558851719539832111708443228808181936538638429618794408421054365078677643907966584134952246172162768800122921025145513909535669804133717083480022993001251574936999148053255240959651243108800681008196619722569961713403567255758149050542808411346012302321838931939480738664632918863919733651739888852064931277376291996804086761326243210443841745365979331241023178586684124492961948152812147619933802138339052425306339894295086421557417670679914370018755780780073780446439026715106697645577388903687880997694284649504750538848329609912357009211756805146228502462866010313530210558585458507708419961578710843811170563075090160020314536739533989215048345759877343561565795252127181793041581613559467509420763313399762285372435242660800105850773173518745349479411647242589184589081154566912484501289711716479041379203563014919399175307039460203044655606276744107067213044359788114464912914956820402902929084203983602552209800564095261277528717376335254428254638726278084907265677223812332921156435127386721950610878097698838556026408081752128787581375015110990842281699984857347165626985878407820840091780908211368474391069807771081504134045721125399800661343690580495650381756427078324014182269590851369965403182789136568126372467805502400099150203437479962070023333964872816937957065619859047535400983187271566982679107849800606423640876496171726397707585760824692299255661053248678572290449599550804051858367644624812256233021504165749833073442537500573691153652375875409843048846230325823698566373573472695094916271386381988307714618165931818561562114384067434144464037963017706489275176433799520102867695470671760571496657824663756125760479002646909298619371273902527268152940380749742786519543001820967868308222520449329505634086210883308512301784788547175645215355051950752943217907610806264567637623650777007182789221138893459197407404355406965378926750584020871892038569110609761467936116408844258881717032844570052215429060279525670930262027669867995757341125929843629644848408152689307462009779203763857332128771769256256061592510250854348197776487687544111333047721499227235395281825133874949617921716282792753824219277075872740378529885875289739886270127739635836478329158188064989154083918894522222767139467505367307982799701325019038475994433789263368166975515741656212073957182621165690646398763053761924386773757799909274940522337623328885015158457055168980853821988190231858761574792903655282805101384876306392705216797329392538042836425289884778332998763827374612109820018688251051983636876142240879918050565547283281482080926783422455586838501926541229787446813749802011628178791916646007148803374429711174557340496918325194150090635352761325041220937125132752699342070633608931748301269204265118859239642871773221601964044938094801046621169138376116636795305433765191943133426120324264388285731081994918541471076231955962758922163864837484179038582425863138733112999374747758637233839818601661041959154612786029708074313179725414060386631005141330138672598395535615831337787075043988636894767435647279155511372165480999837486189987835018525492311371720521184363714428082441521016919352875966870245367861333215507533510202878326094095999241047390480036311708664985673732021524739037562152131398202072716320114435370940727305466376622213914692338161834838449417462869366809354530571186513896216321767514129607654730531494973170414235848218000408437459474339438189776796779626531376085048267749985353507365006846432503230343784129511943020996719682390451694338558089757034707571306113500710915046239555525637360908554649019657641017820138427617028568396912816092191025680410348825443917565264007846926942251785595945651233218240195864922892880847629937808538729213827760621198037099140161804485062912122037993812345983587040559662565609086431307221110137923874649846905391343358852488256249403805419105229107484002552972645227126416212307886407241020736090488923447107829871756522410016239698574947800335001282564535563931333633632757616394916749964617653900903226913657693458925422574904809078218546875633106501080425223632267842157711784454688082834421511143063403909188657506897318733468124807125140464391348960470562906972309519218653989761684644044276506554836895697896211097620157125848702727644170168984493650336890757975042325352296103870334388800756188175290857117153089405772479259638100577435135558567096554376412684317100749644759096523989918479282325774203623048161270298118580650936901100269922131142705029811395021422243748250006470209257382599602138131052345295087643159703663276858466214746345839692112256194626774339614768606343412967876101108548204643063657299071129365164473443841138307550755434486425876951728526707872776241671030281480544926116709029240406106437236314545783313827129937726169196157713052341450233590259219121464100696176410239024411186935003845534556086251068120066569246562731623701913637181618037801688503025885114501479221159876166467470262942977233060454850201483882322876747480602129575983134095968415255757996660027943223582204828867263950342750597214712775936461997159400541666718219084478024213484274372018268059414388627735902659366374065372732387912000870541121455921563935145701286968599996147283063076068704721472677026026565580509049569037734669634688335588600510427544290613045608940896687038306849985226696681481057965122841810863994197178919642069480471856691141379498829867474067535020690489234802062277632395307443708784963468582476633654430671294649626477718266489377546061608394273567868568370241841480997705063782732354772799425339125570205244750725204391460243427829770200758425655162935160496484790654928815936940556135647645684673812700052325329452262934324595543244235023735461663381240984357386569288540637421491313148937812688264708770438325953127131509871831442189061056956768755567714565410718885315216940114429828299966539114727796850200721770569388187319576961707040968815901599387097001450464252489368258078020330814852273027948235764480470172152606062683024618373823745264902010978447517913957285713758168202769633960046995511899700121929166461805576197850580690902388502296717406754163117600784756552007661071579833261296956327056058320769230420021303691690032961691341705068480874397047404666740583441248012741636365728280959877545142612980758862235127399126130474143098596099639696943781912421293552397957729984907848068165007959369696321647460495871993809585610455072006581265015352977370496473362427570753583702839529408378542144192866517463177247494517147586768653891662439417027510653249697820330269777062812891757665007966087787463598240616996877596181966063654939501539373770378725708878826908414234342643151189871098222373263701282008607132638050886915850662454693258618163441449967063944115970404422352306335387776460136568641433031456928606617629211204098973770741514462534758878552022413729738868655310134727991463653142686269568945665602315012765456863687534820559745026722553981680610919663875799820616297641581198439934995214163893329308605948203905281054460740430594797376305245453696058520082652843223419726445199494510903047925617769073008401372065934319094503396838493127003293112614237696701530195463025534455991419490636496259811078677388307349911099544216595808752440891747422411028696187669130957031104010712569070717388184235620850750813253838744037373277647393840408770622294357934594834509735165333783304072905226234376521164839508862332371929390809561194072158434923052462383903395793702704122694051984561522559382181292139517336673474616729431831441827256547279625575769686645571014415309296708982123374198313152873452145000942121924790924367262749800189449369991380997571378073423522010472028159534232293390839251656921577250331580926929719691424278819134690567652161771964218257029424873266675941647365807438811969108467621582065923802222097164144028222463294372879346904221405637798666993676536409890792542217955637683854001799474655772521109377894056152926266836440742456017029075530977188734249878809626821409414426764396068207271090967194357294858969480342095307569451900808429913981162546813842194821179347042358445216260475954453902427183478297352600108055513290084309581319797564803882935028938639553752963607575714281861069559667856313278093992856765867089603986275394361299106935320027028669043568443104145037467249696515644841062403009175450699005073779937955443495398568370218453001905057951636216442162716020662138855105224266817890367519078366880664364597931113063929005486085537459861028830646758760524101602764795512217054165354632090095259155740862533975587062798142754327963397408095204585436671162416700672439742249083638679754927888465637652629557674038997023775754315495024451218291937880636718492374776435441803917288385062285293163444518830038313855681118988722899306066275449638990603032774357604549035530961951723643736136021549117427939899723965383712673477661754293106216356381371516681515128866307311031338136552080575960695075415639306313235999279765260650634892735810069576216543565032581420182989043119293064802837861568329082286164616558683058104123020099176730261986559232423447675578077249789116296296546170525704012993994349754646283683326563374531099066543263528061406422716362715214179544469122494072756360201797217406357248201481523309190074671230250616624998423338415425251464561672341868935413972593608554817677279073306968770259506179846566802930222466806607090777517379031897135067621611330675922392075451411579197807621957599930306724872958122971517872879573099545006121083471677962790551048406489451187432630208658907301102291568328063608423135640016638911419985913576753811578425639651441189363832461943078894668001944745513163820355461007444305280699242843508753338789042062661796898037433503830025436630682453569809730745608812544459765694377546311321639987005553867445790868490235893841047835730718168029038776590750207047246173861019030068725229052155090252945994195965787782977010287280507580523946241576752023104935077807958140837897170524593259931944881236506537400042113706015689110423234773922756948804664472518582767347070627182907264762796304560723812546947896525743017176487976890974294419390842953243179670768554532933693228806481101727470598008179189613266577899572501239404428127622731999769892117281174950803569692379631904860870089451377089510548523162997819862285573025713417590990842172729929300790098424492125903904929227224821347910033292733975940025696369381636998165155499335206889141147253492051252888045563711737695060425640762224171104859470181949017249924453779715259515197505846932943362216585528708839309154378254049157712777994594951549893470450047152264402795480182093300162314239751952110044717028829281066932298341509782418121306778226685898655444683003309419766240598819766615847933752423568757329805481701939358471628035703283719853492147260641274542782179187083735555280790430020952053952078465016873251466748043378344376718844231386972817510297578078116846937451941951261524210824242691696792554955424575815141590212856649851919587251670006782751845424201775975883680124082225950052630386387441825387669480151031884422938230281959483956496131192247223894662694445485587738602125889315128879513325473913095701459702205744840213914408942515654300327652286661586076490351646608405574331116964956397258656074910917483063858931837711593589030624356392608343524031604036148162252336781836761736663433660912791584949784211254816037352748163443554604900934170338401650032468979000389378506318231518763650176256169419462944193453327583866222963931913121465323324677492156317051123596843550704994843932459303486035793309829501277323688816448553722221947023346421383624011906330086913172073905691646841191695825940787001292708675195433146785657554018970891677917178049090122054448321074315062968980870796293243395154675445521817631086469645222970503213614537257616488874515249989353821991171398275055433982350807126512656373069632636919557937383998114737056821572526447326516236774222063618315028112229442663298557579909483922466348255903943387775861943982087045607226151188168193875829943563467824332001934086880431918571256068366307548602272775379009816447572449112659694444816308558676721067359953089147706673179012282496807410962586498763615254711038284436615840424476420779463726614349516247332594362562238411221726741422478257328130329270234684954597043206015461275886700802412339215290071923646414111366070292565733829101006608885894927316184990006373189600211075333075153140555727188932798752768864546016483758904923510026086713289972341485768365876082384024278216642955303339729151131238005449443976854185276868859621217140893116294221407141340102848339638767254555998924152774521013880206893361598486628169604601587441055274438045183976335879223107302333436731977266750805089351978428971065957331054244492589234247905149623356089317295735176206625312664135342365380117731953786587376466019348654438166477378056012585706300110999891355505021676931045323086890583728141339886148811754754201772351248052447882370630719313080311491414308993644023843819058542730636029089995448048173176538415017602031650566302832569890376295052097427723303160355550410013218505504095220405072006968443892065039694502341195803041020562323556381175478659023311804904437516245063573542260466103573203029837939718842352611390233195393735771211824462935946272074359408942861614995252722225981886189989123657933324086050873633725168319186753715494478459489634012006994123045207395471217308647603007035126411597739119106116608750145098471746634174471765005030565114298428850376416974686691356769352352678493064424684680193909824331836985321866371923566380526497503775608162193754306218257060795030047807032156740632790036599545802253237366876287462189752934433670741864662707545855941710836027446029333469441625161202726786896213018207687475175929523276974602239098635194745735030655036736353809944302994939656538329823223315464586437059494098524192250499634827673739968532693585762124511685078643893286796870978889880331066768696977127879198215240312879660079056960295596747234835344878194194976787501775468638517855416796663514252890653206424334617799803608480341870197647797672286865175749706496519830251368187989906714775158981803880002045978424629032693282131729066419485449632091410509884049121219549621912153894089750468622239609186055126153385383123412465878900109938387675574852474543411083097499544647704441575326885063393856840241543296182073328345696475437618322069765604487104741433885168496759870355891623168735076971383282887023741656929710874855115268037044730635940476125968564772650356625804090776882837549742878487412318457458984790871598106767408221625476195027087605929774839132455983289016233311037511121181597358355299042186044660067029301252381916706155563523884226507850301881930042083630231838422812245120044109182816180992370481042144846406783810140421964077619684679603674201993582292723071821978682937562347129935524105710159703970128364564275751989325839149751385542373978725732296712746483573799258863466347048989881276284593431256295963817583245612679719537741291391692203300231919049291888802763281043041927590671743551927737916839069155285204143932401596773627552056976630417327225183666553629372465563757336683124868872352604159515455186154471413971871700842886939299090384032987851727507052943033898792358034972351621671219718833741924422841530238961501294355224077486631700472329142511473920472189667807556974504519901937273912274377405005542987723768541954901025471342327630252692512783132946690406709653105995827188513191461356201058828257597378906725109287998980491245266254891448602431207564804247849528964385052086398513563145724095958541096792946826488228862779000795990958650299704722053832770669875914278135585199768654509894674184061093973553798835903694251885618669206598975048660536858377268291103855746368022223988599222490226583511054940226767909991924647169228670453805069469395052531245560193609145380574639282716133489526715265699575856442590455991499605382551250303533633228679107369640667875905728461776293724325619146480184560453765741651720014374125493291857934490278910612834041441961820224104045155584122067690123802335411639352483598128032057381070488068633287679402376015058883849259510102574385097279488234828048625257596741780741642045863134858461665172258971823801598682211919009779459169156032401751645832823038075596228704099079502741207167586637472587549299774890249829139521247205760779487704240552537669372932708590514995698869668938887084884144188578787207531466620660516004339512005861592377323470159331138941096904004418610300373843330395625453000550277381033503423043313532434107021584583812863288096049771017194261824024903419874494337493449702450966626818728698498914615156219371630042952587684136368340996684018411735263133032817059525021619725218311593929304938949333946859075409390509696848707711685422147449550873134324396552529716008091916623307355046916717240299127395141504008871093561641386986195062054647992111594103990176601543957667706449345577028277220520088856399143754432299608156050106177496570278407511864588357772876504261119016817318143972961781518830917627712393683025780883737113720612415047189757676395752475958684206880384360254019890789391151141350575470638405601529863291874377207232498518272473163822923141809882333537380674248317094890564233753464898906203589810019190850631906743199810261318821499694356157412410860846324835306327046946890469785734013461214595388627788386114125176244731481401940329849201072498270216470917894239181850444320069256906289571146195481094028153294002921575090205974683669558300669953462533788786416216056198479693282533466279205265209956447003185492258075416719294433172722784615298608147797145130325859062879503484449421351659872369395140967521168622146401650481604058092941474048567118534537376579574312936422483893575516405939961498530062177928465398069357018496229316908599778460253853055587719640629621266303100629741741726072583993602640835189066152967895561634576843735464154945712187441133823066723653707033137892168855192108019401698821444608697719721271681421124920586166771627165544737088184451145625234123315745227284908817894562152184411507049611130562360289770710508362512850251966292985996857294579409417041293052962972496230772403209102781155790356214974738169831383691443730712148119214166643125828796521396868727490568401326182645302225037766255276415240750298942095470242166731373487422946890391083827843949079663320016114628449967999541948323755689324819601035024944003243375337317876833156320194766471751806196331695305692760028559716694041952119321158577908091208543348445462946404089496435983708187643021507137046811197173971760211562765815418267079744053159632767192730562472996193552910783907826372307850331201248602750377265302463497192831942327577505948425813105989744157183687759649245131898308726566024042564822656273018888974278954268803844723911860443802523662391196010419366321550859603512718096654744622674069091679590880269632456998500464730731223892581760664905535052463960618108836428342632951017283595696251549744843090556835410461017772296348472949795739455170091001784947371731189744548266370024781630114095663843553349091671294613743573160793118344247696861557898445511478325674662419692928945930117152779270580854994626640843916856792386413987325134747494955394639445809661883138464767672924925197125953294700034661511910303271809966679614310118981189438976128952004991455632114867015795383036478685630076102126315230070585656876010936369509386557598732056238236699246300762264478143470913265498036243702044929380503310382606819816345422533261267269187824296006589589615284599988286374478454516741427312765805078550237617296411500885727563279634290817154873168550377929011303284594693893476611568160986954767451304009582547675963850178759568324741244077418137361917570928326307884787728942015445360237759345329824541254978226000362356813609705901164676773706025486740927203711869114199282731798546754916591363333477025671782696047267729413887752675150279469058032693953375018940108945402485800429563595593596013013087804289832030893852868753491760151037474967341391129442038946059806700502440943377732849414134626954321622107216943680553419248886371429917008353353184682084661833697992719455190180927742983402247148577101488721145793132117833616496895144639688237307446148893887348046288731504236207510811696775725832454901990734271873384400939837357265385023923917032621296051613090041349849022935015426356313696703516862845780407324966555408918107017135372015006186807041977481741100900574836894251476517030620557472248113435120500949357354174035156599323214417822691899423357419743285822912919461732304226586905404256385182790842456395537160472385875009422534122187940987832743288657499480260621838755998116582505801663116987258820522352371866288828490321907185219305590372145267585535984821691413312776908398547054447187940873680923175404614434883985435949817423136431547689502938758891989709595707270670649754288917200227649032381948378628021479066444840056514709767075231518946724814366687881026403726854312922745385753029366347494491418020760821921444726191463220387903590460539472069611402834719803386984984204528765518994744651286232846398446408993231618251050867887549643147433112631607410064048693008214801741039861489334849924196576361856545634575729021190122230203032533361090091249937930113450436941470837128335377322847018607794297420546567481840523402530403276216225894253942954060319395372131575026637863581709276898150041616191649056386791877905347401325393743504861673611358958154236401474253918501836258104447941761825924169741666805949315625690369779045198981081172550066349117316016391558664389639878316396916769009993917002972585044306874639959013195540738027696502042562860842686571048385583737377390648040126814840281501428914465065521203891730151550986129124318265802384997618556407413715355154497484120624412442573204520611435245266224142126526277118810227547463695363027590692932664400697988706846773725274082258756703673011304872557583906635335007910527225074500475049062939028703337461770377164647560138300260440688317895226860708628405041194602056108407842220927066745618003939442537960552679263746913281985819110638863668426906888810092657599357669492177488818982732099373493894063179925417302722331244922637093795673315732578611138073882030809211208151555402553940579231287938008426205741723259643888398352438066695977166394453177042705752040748957702180756940602348371168726883172529269831533141661541178049122548950834531060765551337098438488382904822356317624768464440867928275919262544636477372342543209949231305570149644262682604432365068162678102034902844055331260677005253187218378026491629242382228607361945594757864196922173572156401109649987190655983275176925282223445550230963309169326100415947236318981094260833073229122046286563343584650057245094673700412110278631018240479111681492232582872386917187988178178621657962830746021870300777703047883459323675869945372197822570552730274662230238821177224087723087282751180057205364271776123196550996175310548010735687846892968309722076448996032550377692011738472880445739350657689230935648431669692909473074705849483764845403151617376834911036240229770971284437010056775343383412162767920581057325595490839753349801722120321054393663417888004033888741842483625043083614118427261075676692110572467615691039647430099992499310221522585089513057520412763480774083293340701984105386908563754821177030012758021151267252179104838544609365795208665442272256284016461388694996140526019381728460809882666907994011973280010457864434569884777782498070266139009469095783074354882642322653923326046247559665279446758996127193137037275347309248479391603440115271710415822828838506416476740218546268148273264932669145447508682446699358497962199249826323971765482401615723581885425647560490651269650693455995135399145479457970902461935827335173781480151909216124264680425246524648862615934664268387961126685265319612587322920855321151369116677530223917573221546271994640573719413291521712543143382326403354162366413602238813233250668707649626553989391462447241468361334362592517131017811211377499112560169059449912977954494640798068452267815605922386633694020812012489197683913343029887929945805444571469419472762576486798561131598676594008043785612021783840703420236098846672152001096953384876879956139412748456206018632864886551750967940114306548277353688982989773237628732450073304812543731839365926252713837603442350859564272218116186287086162808413762492749341925123978964517466516511295540230199656354995535810529263537269917173758244861245026891699210186963409921472554874064578052514099744366489510498201482776033898565846213832609419364967282801542406719687219796731817609097730137484725625008876072400502899311695659589051737979050637540580444887993352612034714370806695921957707014127665701091279260137930521157194380653852154833134690177277021164399017299033964004547100225051748521313151031845742738178794662259466129948323978598599991350126724264103904931198322958969395911207059376168299194614435704052109033434532798880029952893319205545615854813039247705301581810939220025806747917105117783003018510962434150155112841372606216107595913977509196332725782539489398471202280644201746670867558201831175929399693279192528926490753358754726653269106617738829917548461347631947297161241318037022764118016521245770950378999249623282636469968529975656713605533304047579757392463940066293396784122063445016902366111677885283127131305154136241469783144091545146614529460361277431505252396937311806562286703249745026943212043957732986081632643910941623548487313832498093441221078517323303218021082380424788966092965597515880941186453574845021424070913902197911493197307434374040628234653900669319061514252030699041753185968382281428850983133798746295956998658829954057912273886229125165324713387119115692839327645040723886344974586027773378216102437084323722614634210911648880560905907538561066909500538365168059266138649977728329102462558921743825198827907742474748268109865929681174399502773729308476193094729345969347929730091530469715414130435900707571816108007322825255198653773949414651251498846766543546696966782333636045763398747255915548688893506463218027833703974379797679012507691910266423976006849880578693180710169915293481719368944105947443651550184576477346963820349061858276445342621082453186437791545607763477539601591914970195714457176939593863201079227980415059718994989198025776585633623432015950158553745344076871866828340264082231614296994030234926107780124130195950376029322953262573737076138462773889277938007727889385787623229032113863103455336620762564625124668321633362712296823243269109399886434608788378349106837565600066351721990168369248452833935857349600383353392719270479422773590378346288343909100885653778879747643675582295817752709635647301965588409803539371290021943643032146405760247723515658462115419143547177318990405969241693289535654655357100768870014054607695451115495214225050801935342288036285608333609671292214657736566234278075247298445998458002840736662944913083530541880463549707632795075223565810929954294781460796148338168421248694113985091478864396481501336570419282862093938260471687433867014846370978612759700349446412447439582905621070423189413340470549885343471414489178298688907467041894294588294258102618492338343431660905585705212583856414506396649285998250035047047357346439919206443864822841686918173450764061874844658174287203461270247994760925761709174770322161075008647607909930020041184768605009479642828445574438566828369084988795541105092728318411914913519637004572702058137516960595937189119562761963687423807226807551189699076883628131654369269440177772798266956735706825018161001845154996904378725503232271302605127517995149353296306581340011817563825176908307493136893061455116256145627755469552372416999175503394635019978188107752830023949344147763765226233786754790300561844660625946325853717713374875578893966413025680731153609761460845324773091190840814120072476115253429209655304049650572345802911184128004271840446946269739966910827101545264607566865570320309887239134049009561033005454056807062825305991272420479194629119464921125364505898063031733369199858453370376966143518982613010210816357663173813703318978547340003195675411473705712839222403849660479592090946850008630083574533383329833184222734261991386572510328914414505434843981264596916939342219789102704058571846154746704479583020298503145287128960090098793543344170220837857049313826406381473717147537226044155367355754089461954590862938161846709954931387732559126542592356905406897330421384066415677429203234594794024851259828206673424438126325473694082370630217820894488205315209661994539697921656360226452384664283698313026136210852739423814882090392042866128267702132438919674281715527520752078597207765861282212508540461264042388003657958025512591994410904623467835401798807488543842472572957887177793599346280274473679945532180808762923924535638441416917920653098399323677192215284298988365882232856970756312850156226936894415337184851850032093324411826848036085222128408729113101043591848718454366030329763345186100772022379193221894861882915829995581720510282390934114401916831124289352882533670402790433094149045673259778232901260416960318374887915419154308542489382392606127824938680640401010027006542849925076823544490446278290197804456704605022726967812581117756132756401623114109570482539934153466677898560663842318231964405838326910196996461494245678245309555253352814290598242555953326260844096741472709566794548257729660525379680318983222905737140397725952307958105760091539798510206533999040870179890735268358924090120925679392328699679556589274254775429659941120238107605314699945414427424838356040308692622395457160103567807403966690166647572567879509377311783816013631141202030135408514397972217020765380315615652017177725058442172735846610309862171998320915209221868836759465591029010352794848135324719084230688638607976769206585328216988856776132008696505445964404792119898014532289662754851435150230035804583116492086847448044541951513840482760378782406692054178273484360432062006636358288682259543157884150590353721579233468539238797877112109108264874712149819422138028066348191013309621663416925891561274845840647312913172379666603391286571328691518239692093921660117414417607794038861054212174470779910318209665954079918415336856650438174818866367386595849634396058697270890378178512624406386483345613091069323917051447624624844038731975957160792187822623561533531768605538913522445372916657188388213127456231934164452219527029548116928021322106754437342020106474043166901122481937216402324644961610433528058953140454068903734520177655159523066793136249587488393651469578672571415987207582495199574055161893831628962286432958500879518609958587637606681382979958848265843940813025700099308569317030749566605236941559576179384714361451172423171826728662304004489186046138826805243381219443012713844771291076862916711145796348343889144092495462261031090170938750616325020494609301553324539954642630352729216653758084982842598462449515933764038473642983162164815251649539514495437542524679417233668369934964964336426793639479904856601628990164136279453769952745810414385763344615655310618872021659193506307372844374598094371402928617469427467465195102468636548795348045637850484090358744601363277986286928453902482053892405704920487924362527666997922634072755709923356524852292197498918611361690171004010957141956382586564230095651440713541254636130376830839887646823967718439176436175456387360612874321511971030181838516538676526884881135567930758855380961738594324629093116833670466009568729961274684643261243139707943100928715041175071569769450791218782591559063361730968485965628695907954631364742346752826347046094283610025604815654692320599616728720393915573919871621487731910977715068065879199822396770514392121504312335103680581840298789855663724349996845268629270841184293667903855773318637615779580645978031516137290445386154361923804322527376585999909106822691498561822451947005736285914851187890218331832921944233253422625585551820754493411884021094149512116752527849620099330408403371456648567496400532011517310963974382341160305086414739254736493099456119132756614801682133830823744654689281954773017421813039698933394673147316829026107852833281333552755146692813851638183570758580455754277715644637901487104327664250705664247991037120105653035509748558448959068756578595660399282892924014131693187653410580798685669188311133331942968602096251699452565073903139009956458839839554635829860815865718712053362246387672685829771333140158932684197139607336385719787131618184518373502719005654004033441961506436157838068461895088258868029585716803540264892435926394334861537983573738741861732824421318831634728457035730045248612128702768584258564609736164848146114889153261557740579357101639456894467516002279666755942988192964328355990631388931833354529327432781870122571001647485463556383193688106230671143761882529353412724861024377848106317995420467667764710334021664151459652505280127857361889016829854039044225608140941833981051805134290812559429770466008196149976475877606866748800386167048221219005203609090882124286273395335729993530234294558709144204699383872010880622844943602007594782200663809177396750168503704234043456550638742490220316899983018932582612076503888238681325646636748030892551907394292704368972758109058791282741525388935669095669577192678090399863959179917718731743647667629795800113478079032723442253300888695727609089995867233805786691737066087307031028677171728010029292893257115805060476231205863393479311273018870299316708780149621830448086980847990689984195832050236436254361543136545263065828851227411274069527003562560834626115460431020749235034545547881636222247823069524939942576129039759732424276718573349083440855323804120737666321917107287569249604881997699887522626552166678295299164927619946993051951007918150235462040170287842208504756336827451085712446785725555831938364353827266927680558692274287249208167847080566261966949402166063607574212111558941996634522125043823439866601555899804135085797944570844390067086557607884386100805402184915306298576698077275154208229340066092115846303174632370566739537414916344742301155531324453404001997106457361837940397283025865812655468752076592366748183885703744040852782790675927437721982505949662863177139649714552429562339369828277903834892342578689208164776734723954284770572735543898320665630392205215844121686178389037324801966477513611625111666307281408702925317080479512267290253277779030392592051405284029828402702535125337315863019196331771018178588294232612689529797115240615703950846810010773625510633870090068320559227811758146451056196839515710258009316616150128242459728565695098452096244590432126220973327468342439863146694927305462121044965231891460359473583527806343636602768164715935685784324937178577724319977797631359731172681558386949170500907771727688692778565627596387798930098157653291966027944306003561158954178816006893805288311590829100816544362769996986475770250124908710350413642995247875449109789875211982544353800818300528882839142772091928668550952059961884672124410019390223445343981570705493002781679612507584346527381609897941997298096639678937576412420484364583933499607020718339275863582125485472763220285199730574262887818326201720032711014296611973129190738790432343756466235167886756147602194892339475854910527704709524609520171092656595853335112156464929298847478909092875990588024787735682050485248609152552018910555515287562706401701562368486951099729349405171897179968160727575160884704338736581135657724236485249845593736938219732649928816608221192744673071350853230167395905620640900196489502367007179079877921567920814209737340701162875576823855471184848743433477638626365809994140610025005123906461806100917978639154347955638934785498783753132436097999930318531435256130938172610701052432146757241222674151049564293160077746492845673977045945736537218046488757670820360795266280231764890392422307683093932808755281306778601879868410713380570745351522430815276159778348345766288936501815871756955179356172385031751607993658202266460661515989359880468468896641811958731425035204297698590126816395985448972054008455670916200509128685392307264437883316373812106156096480815050989276502689537760076245548249395541551635350824280425099226682180562889223356442473734732945077711925412944088441956280832131927335167289328212947279550453391724292830097469546100633662605092196333303508996123982069799654009523474639561675424523943681178135019635219175218069016714168623521035543137392868928271969817599340392664017695857388485647198429351512062658230297955285132178017639330202855450650123643146718954582317158153337543287215952752075088277139124181477039626869432270139218214084174814548870896083142298464907550164983722336794219004468439255480651369699993739608214522697529583589766957758612194734114476802547990763136328474785670827017977608545865468841667751070119023337686414143965379220706356098835673246988459010977627223052261300509799280428153540113852163365642297367426221350129956733403742245252643835545586990787127818308878048409353637811596976954450778798428466745341493008926661787887841887859051628074496287340618619561159873931765393640911843038146025568498594691835071489905865715423694355626126259248811650946344067170989319780752547328970104940959307853153259109059292584393715822039685022783834857886194631751957476414594922516266591067823120887071202585096389775094342426230179511592544001233429993727564361016832290233277964354702413785079382692164889383629296872290937351553938823739241563830289181202542850388476069408950172979534931457957594358763772809533396069656951215740758713728175488609742532032707062892215605296376237952950417416104002352175505108176264453847363034535664892772078180123356226125963277050099981639595306224995064918320827754939087224340551484963803008877771944197570459535460477953741382699316143096931703806068794588791419340211884058448299458781934577699852074353348302625123105991460033677043755634643122156968685413694385481068654633369332526943990192122689385570816232130136959730176648158219516806294402873946481654723923375372590271222766399862490701804172625560512660276823148367189463333385644265017395313776758645211112528970838505319712494467431475011458360092961653813187639499757166322141059770561779219314102458394817481398202410583176199613940550626742448181866633801447549735131887950626722998453101925100240232021025375512882747788325381425238248766856491864065601557896831888161257469783136390704194861447187346391557546582937125176629595818742195057875687000504200972305363203185802946288147816323617298395752377438493491765710546448671370893720617172111627395171165687766080553974938338399337977044947955859516643503400767235182832837572088897891729817342450723917134636543016383353780952498825601464578633424457001302567376252510743052286734316050241661747325681466808666956274531409942056115186836661573832937078191268053949817842981410102022136746211594730374982240855449500308829142310292954230921079370248393400125990743266057383215340986936449187247572415760285745386365771965793375525219023881267255402144332823087609346755349224528830038135530749844587795273324559762057894599407541225724019070655106399811258423712066157753297788031813713227524392284333782146744518575914299340192411190532743944012890020375889183210347245304261680083278285713307759741746688407168954387096950758935439938357756372261536324099849289892040596881574711161785560830316064626192360043662664137519434616328848859855036597062889694828339135591822462842329060461547704826613226595108215109632996137510020629969509108271684210824942590722101999905440762464139897829072567701494497464936606887025165052677203107795124325500209968551317342803446932424340883096916507499548499085820162270370694282546509087342831560647154778105994577433369246629519829805083837651837328638014736538038324270764033854263074159717648834164050635145122986291268318410578657931707484636722280559947941204608609754783107150008612229459949579267187931674474400914241656175157816208196676174507808627764682194192198595464871887134080882710409998023473575870059833891903005892969902743680240775415543576431118663607786337661324568810519764660246155806617924123199416232111487694677913643405404671747746263981519469861961165921383396185450061194934182154146842069504827108617877500314891393946241756552244310693497450179504934516034519256074904744632587901599667873269166860188056931878256686814570599759259906241896030146520880281517980604422204351370686999267730692862772893594198470928733585089155036674076990723836950109230772815433462201524985535437982810887323350042472747770620900587118006613554809668529991282736445247540936464835253056019389407549169153611770904580477763046660814619386046093606244196004836312347594877731346840107983712097189927765914489715861940822049032022272826529630602845446638740543019877080572687289186889982221763216678127319401882627662583225689775233747360210589512768639379347010975753230985453281333189070516266964393392696175108958080148144418090013234643954160262647140851844449274483558195052351569197833602030618161941540318830293341982541332987112977246261772033772208286099729701370266531557061733628454169003432468250622524502145900303679809176005729188156077868970252170835369461484808207999187381878746954495931050052244304245925489567796362285430751851168598716294166979711605285881718104314700434625571706374977412094526293495901393557473146613464123157153101969189869967462720402914699823940502794286144251832796838177707806295242332337676135426592165314217964483775440027390318841585975139200349011733794944526171872139829047118975959195083155493845588638961794871764925647378333120412870765209050173166157403683541056778976194149576593759642026820631901706319097792293047897504284582655723845843817553392993900495803963933036831570955303813240847005372572506486886987849378224336313575377916771557840450649885022917590750385054885693102327149649158077995111477287763375738528076915678096871647785205698126716828866743880663357272387089977800255571451064313326087638498927383499587858202296717944300996658005651196402646165357196959643664317052855356234618711930719384694429216218838991704013364652661519934787237338785332418347648023202324617033321394791370235370024983751883503979907381740386445354454993940274220533807903648458664932407247029434103945272175109377419434905017206706584116683837483096826661613898930908866664183716624111908580867476124961529529419459841915997135104537488015132720177663033765271710159402505985835089377980411634674624192230124576469239635906750532462388006495284719719045764606327602283009381505706755941342769336095874150554972710315081722520397737492422266114746599949425556836643959824831546314142939390883577279010051032015623253780849571947083162996434976016650607272506200532870038820858652589394873089737357153289316036235296736351102689948340003729664794428748085555321066727523998609182320319531133717698672054856341035702742218302898461794022571209893797217251712479020615843212885512498545220681696016687438350467949240965547352056229149008530631479537138195582745239855954872859916909347974517856054001436481227652673369824077336960864304818939573339825787809096129407560666012404020812058439787666815961628446869664487555859197416758555367467481176582029177382801932275251795237732891092622640652935952844719735185935899044894388548856373521991942602282110202481908648443229850395007459769711592095354491987758448877958922001348244199224756530893148876661774838757591272882454128112036053771154049881500296595729245488912492601804105670701893587502067742137848870747096360251836336975082232336133832924047093522062688277023483871093256645231221187177525682533899519901309230822433193321679350821311078188776638651623768727353151868157417465201735252681890809233574042677959046648967259355852618476061900543357759377078708476907498355818975773948294717427676060738708234189195933321831975429716997146958403831905794827811397849849779222478537211152536870585500894064063730987284071032331491126382644086485663904521073178997714344405374424215145888929308392711398222462611043708520745874993458984270963679371700089820088613715724177602859609821590059347145835557630566744580014372342147846278889303253094799708533024351389370687382614951860556969112399278046419882839093199810193921798918423279645170370612848206724676665533376225611774884789977202729718224851433015300209402136946056866085482173767671926504757670599391599795398773251295800797080002811067882046167470466536028886142849754842849422954908910869456572579722595519168686464128191964715371917030703926894649475372649957723896638272987578391861746634204187561197226965969623725174381203873767588400154595834049067830750635484557513390092261774031775339407443623025333155916392253319997464263956243952314558567433628517151716540527075831609413637630327378066635246174157745891186390206397724614238982948476988263212275458058347135191027682157780947421211980823112575421215644204922978930865558882279743300341112898683214851832645518150548388617647854470905824746981566784194048262967058937367943257761439716734303518913254001639845130821608915181756299260914976566712387829689164291507277566176778027929975121150321247857921718946169126711955465213574204982030604392202953365774346001546857687650610945401769793069052397748649004952790084866223634374643508197075729295059276944368426218987788867398137245726354958887299219295343504246964456036792260080589414090616239681442952855435846270540707929763206760132531893257316557998084701203574034987465446990444748784436789812508407265392577297290967835421307311059550065306051417625392094129464994799178677219703156621964911788863056905923310961346722502786350268292171095977960180846518339629770800923814197415155358353061547348415618892750805870152909670000822470548662902080675828729194273307868108235183073916249764918822490677185833531495290131309531467961380293509520795014936982549515645346265370339872729962004363380996461986769837052254923990707043223236534080647206934747390431390829432604841949251114406366266667662637486050493121685693052974601717227175548886366607239996053756540544285084076608605855607315984794228837395340499009528303609126028553939143667879147477086582772717688407863435938605493335948822360429065398484483194704270759364251228767866941624611867011387612311232272916961830473807848015533428572867531438414864729445905702826593513233175883727958250168680174638522076369807885163720244035120105190007100760465337334635402826669236843925986917231958566365812119370313592290576401829332276695860397289848482179290030106680045756903197383871885447244096771761271173141143842724450201723870494712538687561548164897019669618661012120177845786457403123642626172087066206434071289240805830655946517207516834730804077400613864532758926643479959250788902470386244653449031395756442711487688088871516119829412030977465155105848257406932552438437972531813374446258202878963716573848582667007976025403011923845086513739736237795610491021023137029903858503331811494047678024364202489442300801334380728935553353134202900216162484367705164118749508013771241712128957548546207243375867971522014876088196473841458947814126310136805634680343464311038823711662643212136952468384947309759967708054028718054358165764714366506912225747670407008780446605051148600441703665750054743442748328875573278354257748133977712828114905111265749197082055742383099997956517349345557887727394030059499061167827235888161880264681932534613817421046491401831061191565537591576121148703248125644162957538452646878416880459457418710715044296179492013507573818176848840149234524638308913679086611898809039732260128178535655821377190212269771663297383124413997682346595924918035274551479742542300262149530435743077774701878158030339683796948579879817792482009810099506228092955920477102849335563209179000508443239455488786445440700310446207066101549876431310314959472123737522660056446554126776143744582622319776849240052057739289446130486834132639269625536868518556061007416774150235001746862069498057399912083904428942769075257578259940389012051797668014794079465843338804883896893133708418564674090542704296256939272390408233615139190002001210485069252538172072078492457919458278787308856497824657987365983316944976120338909489810561928072334666643946152677540710665683807460931505451331798683061592062155795651642902284888602212527543214970412961385089240083683275343131512163105136287770667355731337697329864382826598594720398947661322330008361186083802602183657543983684431418879978785327692417612778055549556783566281636328412646635386175337506549775118207572226703894333886272833170973392689890784890177869401222334368681204038194845940372831676652212476047594080967502639481858300406030167735653383129053170883980074969237936446528584951002116189259061955795632186666338164243976972695213060262566226176658207944319334404746060043239147768485391027329864546640586088012719504144686104982978173905739309942476691325792991618020661637271372017632912986362052989509476398191873085682921267784461520004876586307282749476334539830601485813380585104595217888144761440536341375807022335231798802830520344829977616232081734651714747632885746740974984754696303193662444548444701951953869385498912304988003203268246944492950122709999900408969030151957356514287763164268904215995467890329114057135448261462147477614043797402417792678517753561177948542175030693067084321435320116074486685577550087271759872767187318841282414951281142222462282142418986139346608864579502872767082796729614009218556467878718999891846641520973671528553450939339410944753214461847055323120040230017417323021367954329549793843518542982882642769833259052478350647009628199372222980888456015854477356976343604430234738986933007011444455542767271130186961814640800135391935793581697256363472020913795057850565131952307164862138354095449157075456939323919490949797241712351885865047929956641993361457318548113744020346387395594191497290031999817349013836816415090940596480203844365193791817741878781112415170714964146787874041363384408816238735787763565300226591714782229889087662575868094504656773596260388369304161277729287879959278974834612488556185470165526650406981503729151899415186574337247450092116074662194582456782685861773788967837583850801189424340637480186050214084259052449248729736470407855929488136102452806680921646957022549205698829412628786928068160339260494361050584359430884632641772471706103270107400593530383362584766449715567851838671424161789867965251038676728745863919458904035178893985584694882700938085887816075571686794935683025903857548439918729045561228452832586458837430094362169449075466514007365020857443911017174476857460976580096046424524991130647646681678247320886241272925316055221536743484466843335995237174192874836581039398068260593428643044072267891697907135762788518142239307561356519255657748684326335410452195485635217781083931527569813339305947763871374126492545036148537688002734497666640411137989559702853880319457414268866619654878774523167985738015021833325769266463514097589283525072335355505458832189505130582409230556848915534671890851424596486222011108828606848938242831244120237684797654515648729182425656513431855538658104024436815230790772530754167740187579893001077611293868033467813721853392748378190264657393438119690910655383631251800398029886926312427096808405949687863724213435723846298434938560230541202270496513744961241448113480392874091530739460018561756091757656973944744627772655604698624734124345193780920592175667566495428719398049654073079218844284565217466354970410765950302763282722410403729853842276063724166637217964433013953056847199144857051463491366734213055568431480897198530007263860179542970714810003652957289601880296296521856215775875748697366584543802615173315985299087004580290613302890311642452927558229259760100023170384310500952305358447078254996067644186994926710031332232563057389251627491478064387236245754722345210590776307344074672129996848063826940165556088456870956445273934281080187583923495976313873245330437251074246282671978001907824336706692874759312292580467102227353064578127745349913152424457736987583528600461380822487093524143035097347207782989088580298679216731892230442104087360197137380175308130045758821831644245817709971806390489384413858839154160845296073913824762689262063099638472511059912658413198578336551590170311440475891065310394034187556257326563333042227609284883602093212655960061292818029273800827588499209388474980241527127855994699886848617084009586245251198226992811915201602644672835115843096278890860676556853997478711811433418184952710747235918779890340107325209753403568389227103391605329031812992896606298027519395086633499055313988446201183993721521750068916682659323024144747377184661412157611720933753951358490861735210733811858306507125519047994888779160020039841565299490648105539537949872428125045953350373934653899413634207411798280387152633537635953858120583511201539225959480506225663679371997718847434783532313172523234521461908970141139370998453722613344736854826634116263022699293059515054516768817316487029728487856129249932530713622988312976038397878490542800664983719362129642939228785350499781123875013929078056878720060366491438438584497490069432016661955602413058872865612232096355923395922989611412914642493668862767594531882282831948142662881445249683434882772969889409975403011221251740812074146400115531377180960978431345377291857704930569096044694087218129465290037529789037305875503156890273763801410408662456103820379076033681933308764268148626017124387741825637123224375291678590912092730612612374601489863914780116859974411167693499002111743328092032976530777474888874163840173858038600553952037393772553843690349879733604841739099196072163956619143597811474219373101386297431779988495717031642762387873959457659759454617540874897439545338238418585587097695302205822511811748573196461945936328853438512759350615193563664316357664098677447667306897550926720817229799483372156452229296187108736464421870501343238927613084967670198993364848959718803437264150778359853916827057821557198271735813113512425999001311122498939428062443542525866446945065887007440122935857497690896547979149923002064978709965300623293482317680982444841096923752635089307487834609827269113776239174765756074164263165336714094193388135740324836233645187868680831721950896181639767486406123481337079835184604329865233795551779688025294107737999489073429519053533994360575370066088992743025234060029902713818695621983443259050691326819162359047456865911645299347302513868861168406287985326094804376947510255877918375916141087381127436890907189264285521006217559752543621090774593917347043480939458480084381914552737532228968815522893749497118728075411918413074882560153079781806343995189191781589621458588456112528200258680474277732952846520241534574073824214687354115203145659680743754993325110998878972343679682095148220239398352695627733300252374267064437381871708529080643815754593655232776218673746882241030024404420909979176913837102652187059589111508868717252612796585652550951318349524737813052087442086288240357592736396941442509041435498307862879885934191725275471162279684418727144114266367350241468720024240142226740789761500439845530060254590875025770323091775839686349360101510370037010165475673140415946994024082845872557325965007312629935160836963063913311805878006934131799141418042106894300065063925879431280675638661438841610175648746456235552214934357506107271146484885816453909816175845210149331039940730152813210171834392334847218583070935427069523087877503817111978600825521908479197684872630105535017766203399332122601165647744824161958498195159642715420000800359585325689664076905011448822350635935366027856266136945664798084154032068435498968489438935068244947349722805720376425430772629324423345261271292085996116121536758453047391155735122910957219114170216403360251608852670395486595496237069210554430204388241418622939426489780398987600037002281058631169119162720750686575420509843242158745850849450851521069405948190850683495965266878429834803651179003083019232590152809250252613227528569611918105690343471569671102612482266714919123195917489098129931873111243104087523195290705837120528821726886268406293570693894323258193297347195669881703704117590873120329776733956621234423543397684772848334930902150615515011221217334473975921723032052115691820907766728503077927364809480483382644053692284880879668576643864505473447816653349234310348416626531427827205121962137578593391943032375845821708245025570160381363174006406076034017067028457964136049254988687338477400954395812225921192846235190851665838058173601949833801470092172351416660505143215974326907413516097784854960772840567393051904739496389513371516369869635765179006397326599771615948366731532342831935661473473548882991126214443681066659363908136682084863794241051866043382657234490785173753921268837709071010848177807229670083856809687084501480192944954858967063834241322482606450764976564485552238511156818114318997988822545153205969395629799472264320214264556693047082930416813538090240715331578851302984524511469970283224422297109494047574451863132794805408862212061589756602067010493872615461172963006003284492012905368807614916700817019510119559130628595799597116873279727218459267718434636583016014451328053541478617721068892730950656894303745755263591736398113007267930722302855695250830599500842968634788491449097159802690421536888477964716988756864569052284356401410684850963362066499436401760958731663018583478196120981876645773464277835648680630217600460466124523691277436652689709745367634225290039237047112609672989605023420541348358224764160149542767235317135406799021691492247557021213813572897601698412247458898747748859268048740032217825728879272772606205610499008100949857521634971552743747515198288799244313923046535908082785016538238236383659445823348604014615317734990337690139358084821972462987368707092326515281855585830371363738418086802383500910488963201712354877826388001060747851694039460588865080920218871721165153840852811260822281289498452710549407624065705541426495430627319595945957051067592068284376050015393909819340084400883585822839736606124554143051997651033557835099103665795815726832184431613218183930771846517120604424161328613832452813893366044860526223966235102991784653533576287564453179555112915110106716151826957642152448016499497754500595971254183614537038005494638390562821648060954153833315466595573780634285217500086921375391483359690371998424492777716797543009445580419823761908470232221251876316811523164575375019296083414454873895797225137876052016990912980437650553320183699108292599391836133923729394155208119659784386105554691603698083479997865514244641503965006809149048363389072163905447319493557780627613671965311880601486009233802323840381914715435670561845838166110802981987669924510437605258958757256677851694815117952528383782875732631569684702261998111623001867101163694189079786801227822501779162850094100812873146959296264056336623318648195622250553852280894317604679812680404455989317655890654755383348699439876380258949784740141172492898669461445077585450478925178418523568135445699782592465537549072874558252728656243813746464382909225883124579750134149691844193821484294121515485803814928507466890924743333168599195821770657939046884325693135233793830546769916716747082208219989995197764316282160138045681667615094261380093528952387725028896898677270208479159456496637599522292878433425749525764913478661723241936681810054055876354102893136519952932384214452628494550848732336831248825984187687771234534987935381896551468533304602868690421949376647326276212521843526411691928368374536973327834786534062681533022979855422678496420183655113227799560088550218292243390969655073225957663151082575784888597019406554715727164375838476942114557479333673839489498878798736438269528079688158275140790016301014358409424059053173733437068133965889787214791521478663818338516136613696297000349891327732843335445457716252411495300175460505500698991984742077856194718490117713987472417888711033197368397231623993228832079218932204491220512908306189789714666624766928187821081449577012064602473650079059045100815910171324903658779637156359898825599982791177877676651641242241611007062924050332710518473510287088405164862717015779991667195029275646463515858185665003188478964901863060450032007541957957960147757558578178681154041956811224152253290872403437449862356678752050046557696839850527373672923114052818604432142989122563251702059676380143352341176993022725351357722914440068727977191763101941291978826486275564776891342511961533841942612170631467239772999685823337228110170004548391868355719949661899810455749494121214322475903168692645546609125199306236873825492467597432877235171892290054364218325270275487347407036759463740195696418342311929793064629930184613117073813094992327810152537460549205383611949069424714488304521098319336338982072730570404657997465735389912596183607533716195229110385988387304053876202196204158231248062472995527496218382109364322198417976742855642373329274026585319843456817248433037140127847825051977170962028899836447919945556222334964611578603118029545613371264794813499218579931895782953514199524041341580853979250832226957335256477061683965249349448455760122672795522870653316036072330158047515017950886896111251774682641340111066604118519372968244657655462958254888654843256838269210538099127046617333672356056358552504484922329178884655073333003169273612138258020021888434042534770553994245451572227631213496151416705583867336332292987895750797458828862445053665751093159338154098248994325278399257537835201409472705253393579471263525726594711977712126805705710835492663252423412286822854529051854417127783308122981062731499037460058859182407997595061622811727759402041110202913815669215749533104457328646218929158056317374978389309647111127206398569537204750665559365927626444152276670161457583154457840438426775044558104622080971450791567690294282299691000915840527206148514983096675148905450512418049755913184860628692073626480038079454018245109029052338419793375940735166012102720015336870026774563743047411312396365016162503867904359193258777119071660838979495945895689533549492928454840793343322959068417153791832586294064534295228424973685173877299168284835965783948170210934656968228036128206375291453684943820684471452254707693658095365560559836132558692541379082647840973366160796372085440317069705675704054710098892545761712595615433335158060500663768787812175433312377361495565183633241252834661513331152987927400510646317728671401689441454060032415184707852350963422107997283388338756927060071731609709705294557349277580346522566744012317199442125880580273891701516966188947489645165066048385417728237139907420146057755883761547548703966614659366519188873293841753213694142353532090644269601233789022443178970595368763487144599014541595112318328054753704535921825036936590409636215989706844805243670518299933107545056173106576058954982223811355957293072547432620743495366829574176346744425936932936244804014411762156733448790257572158319587200326808573048502074582795223586924785809741378976311158063620493794609791882089481724987346173136301715669701468654507379531520850815545135242744483775654815777895369557662080249206251544439589150708049591354400870848981767916635467719833293061780148541188996523509209915571047331399453473767138799322788129154658518882972009556832652313832481973250902556075065702711090463056790576953306233780999210992464999708709984785001570250801326158585075466339198528917477237283169151423992727883523796772012355288570493555264894617841881849239996921031045544019768325756892010039853071744812400595432032072441801510766943512753521727101403425295568072007981540387699145691222435256897411939748502168726146067280787241203702714936662623306722428787954676405869973483511110412261742777615621784979589811778830443516604402940961884515245640368683324819453394199211741358844590112148292234755293371351839666203078722211873483332462698618406986121279956278450542926200663656753322420790544031553439480526067595579278306119381869836306166770394838659993147510202963530980664814000162981205077612763567711221166848066030955975039862911912779840414458069764531752768643130080920062194529435768873847550565065809616437393993445441903480044983580498462759797085098872497063226461065674526161007176977562232838839509606820232746462320920061815783701942378170787384560883801483129160375064868021762233388932086084624906990945759938092286587165865047465465416804980099420344018541182198412948081184514409347880310446651150860805253578103963152974353580054639865033933933503563988209171194595008682511234785249187977397839813007891062113268279593915593309230995484901963253404713007957267029600888363274057944650921833291339546165749490283218255303463892947725379194133586291480648019074132900647034561041882833999531604564731332350365545950492745149091348700063231669282184490555486675454438176531303046453210851968639921246971702892774766521274671640746641630875497970190420887603145882076704983055673855091591357245382676365717923142663202964929171584690575106303893126636741981540255536970607505641123076657830995676652146074995587890363963716164555166477009387454321769766297544093380909876743248076506276133810369283326819793210188645281548522254235351940369018345584745383086313429774022195730140166528801365225440887659764606201345486839989727472605163968353838325157049404041740580291191668106803791272670715489582974021101591358307556137811462503154994975482890849674743090214732002077376199718298811340897818724153258559010044271240791825734293116285561783743871642831251002406779955159235815586673166548824257337953260227239625272518935518934674220459165964756910240622626436446328889971913446235206875484415140223721244614547763152316487872468625547943209397873434552335055873215192762482013271886676506903157248388985971038748518248818310732438549282776044446041343622945478846496893452122621179804964025323189741958463192487423250049590739665864325142631083094481301184024606316830248435874218737289817935644350066358550023533118574690290938462233882294077272288148938279496162111156060532367945787548932347889099734647537055219211864752959944733035498058192061962876393010871866037743781717631394263325973898564943302928441241153249482889933703085757881742436190762194345389955353104779921411955910803798179108325837201202727946060342600966386284794912014644121140950936258521473148122485120383842566026654584069213638197724032048273417317971088988631759487371275709987188139270230827092892783382794246090020013192541096096244172416649775486505184075958307633353907244445814602672432923148793224935677117050108828978360459363743736494970301836577451660104844863028082220011393154623941408030863111472881964337502126183996331358739741963460807531065867827558642977539246597490445567639312208848822819129854821443928038074831916284288566641720430569187028493978455444588179181424618844722296334287990501219675447964769129526005997824525253396994513540964728575849689105000725703796173700462946491372874934555841884265018044749584720235041273615805140508462735847901024829500953717700719619584936338885510610809500830564230573915922308687856519246257532747252623190159759840311960683745651817026727297963183166273356810982803700062586031781507799826056118406822140799220707356973126709377974119468809744168941966092084321440364730505064707754573105214707425938325088008176124144089863995490952007794568290251153382618730374064671793597997091140898938940790901096287224899369296101990275111224962926326881099216934542274744143863976780197315243782924525197118350386782786943687647056342902933827556831690434204420535417342457490588497787593954385118058628772980865490219147749488497797190518039570422091130843626901978701785814462250038949197563535448359158420110340867424541968996622278129866481602833725428360662050874970174187689683747785989406354595767673275015172943730406145651405361142255314039014441406898928895374909634941292110765918883867971037838159019745095166721541607932552926407180360737439360318801677908968167845327910945366784212019019863733300506877393123253461482272138331525426749228114480128731714045450742280626205550387841730484153040869313674037624418963915639911165078727337031019325713784486252896252832248650330258173947776557624289991022287712429328813809095097429530277139828173404350491934133722579038629700408158162048679028335090308524850334364623174450934258187745510740683931277571809417839196794988908905458852129275236718669071212897696841895623039380576494934516999592516755060512191896107957142356407160493488773049789560103436807912025350502665302727594654162400299532251298242036747325268844480068387635532042483923127361383632310667631842141684344885200277594521545234132353025206227903673226517485657775545147364323194561659827398204136315457765112318299590812219495572593515210154323308485894066038359933923591774419140992266144828151702051443602165048079607963313357986472665978359800774237012332634464620127379824017896564234614516023856466420178847556400892289790437206204179333085841062620152033480591817167505737496221966247074485080167960725117713425488614578634069556465277322061443283931502326904782181268402044175893386600069058542935520559222213574500202742767931001910919896057757822088228925202515823689995241357434942167584659511492610303205287642670004792928684133750709621168360239247465520740483234844211357766373718880095558849317096344168929786817151599073066532893516387010893581494152958757331388872333374279497843237310872731603739011915392193739994056527450846762538424324859187566945042807879490280811931266632522533522520991707527045121382094525050512913558519985345053264066794908248989423905014431433750964464631642638670178968882863617352811697529584897644043463867584448114160102810871088423985006579287261122962779473209223260792307054239467371306999684616672040181831074936093142747813556748015330213038431562225824516129601088992157468485152345955674188865638823901673103442994360205979529043532197991810089968421099285331587581693885205176782154146842784199227881794042263025315149326467693932761158225644150865630597200704105441854206177619828856760359589833971068728408500180503943154605583903722952835626163308703743627997834293744025163658399930991288854397241129073938256291931644554545958763513345108170423418799369323996518715372642063984689508276628959150105687910497022538072846551876843810537206899522366231536182332754922300196091387548145515746993505944439330599339661417220481834220286341771685354910560733797826666213335452504817836165608977992311757118135748810152389511413336527614663657074005020514327575590197359228295921226129173172363620679836879093800688730500979637262794911286720047377010043308887829506380670185529010111772941215572526110396758974743758735810069843632066043630505802570736495099629539732895617138307043950126312895034939474939909238305053389101026774411290020913382618051757962815420408642119896519611325029533391006545424283016959646198927706616341999218763897186991044539005382830334253854666899178600858046963955908532833247329633092772054547603044017504564926587998450636253242549926117511275472943591595835182400295441506009931743604758484116069954928992871429041614981934302504899824018183832035551345864524658896237613675575360895283399643146833517722169431445472222235911458450241891596829590964107878002769874482467921670900375156520421334157122329598716761671900091235544596550962660894425946787802856869673771286138403527836882063783980002541264867233553233092059660635467840193608057741387012739656748689104156767935343377885315810215021711329257498133134785777275165967422627933412746234731244360109843955030154179058646473335228226806759056427884440414738574952092236689158223974792815175402319389969093901710807463363504821148619062865562454218072489408665210041458584783313465792448670096517055163011247465315143207698467722654897639651603635565312665300620300404497045066045701084340257177993060849742081251410197333387178925682534520685924379976808401240107518334468129612175086169747679902897356892424329022812989892699211748067864083672020927209580735770128544573531595093722178706860440678284838973412611721101787784475743235437691880337818953785764160411355418657633063222730441583304835862851210439592582728644571390205673242223000801139093830467321069351981714440864680064355893718742730668138163491055464818548352869324477897104566418660116917677909126728468264892697910752316553559222044026528714783547499072575703152760485956013785674666193214616057198122654509013806798380150254657939670326606844630351135499067093787583357911148566941577213129942825747436444346097955191818653740149596196763782988676929679138111405759732171403991903460145624508348868781734091207007686000784026096431088088989633120647551311906909192577569984604234411668289811320274127697899137711762531764550404310345478538819277513588172360980017003384179793426419625996048286774916793724406052760940483773192997215527042786770122628402673591710057953071900436359661842843242127895486528863272239191915362338685900986343938609469455684964622673302750874749839158026453461429623963010686746409220963041728829391454327620580410099453505259275581611631458880641270213487377758486114540437948514824010061982323825856184664434392022253834097585411389284406827099854857774323874046983646395231467404536143045280251557205758034172183645460736570056933166558292358127163550966434260309615103409478709288308232944954642714528559600366251749327717680274940604244800385175498962657005176475059221485593598173147447984670305919060143980300229784046770644352607675648826657952818048461851586586304398658146787414096819654583952404244751130993415918392407224699867626650830093957098038049185428869085580669624469505569193180496068402438451180987669332640462651262709727263977411543448639346358584572592114859719281242248735115905863922080565513472484594003628284552876925928409402922012342697386559478125670207692557878142240789461510132431544180260722394866369532593519731724001535281210115655081568205135520263367113843526938512567186224287618903231526695319445500498570614971219988915104567611458343326200332524664026140954248023619777776309538184427385588735774659311355795944898408069667769330241413302116359076423401258348186398480760397816286250646821068788644008067591269772470733570986279494553973106172940224845128683759317569116719749442719412748768522803171322322704096794755805450629261778417460951106682848240624687952091481601217568163688120076127308328681405674398858064455606585430438921374949222891730291340361141782265048302602692842668734396369788175132565995897757859959515438405275629531317699247913885894117853984566309180670316270173909293645873635515193556172944206943146814930853496020128287672920137956206617826916168473029505207484968311527517628327723325453245311483322651351796118037303043688018897646716391507461211126667107249610174694513485671959097517969571390283026597732246006740468365317006985975561132544786202776172820901778889994814181886020271218930158436136645987437604494335795211264254162753001827881353912720175741801260556327878104091415045671235120738436894614523039831466156734943600126187089627465170665069395029666406117360109764325923562230963696707129369839611014842269929180684925331540357465010875042681451639671775555431166690320463905649926267886624834077895927107599865953324035120968384958128078323441380568022314237611460958184597062703928183796223909385291447901835233572557965183804967226682002934771853060433380512957376062299289454581251858382528076031474800524141297237311307904352821891818217506389747665762683554697253943759634575008724490916936938946383033882415908431949820166089810101187795513720173066731401835085547501375322757485214996560686111808004364666267587637952775113459690379303928350268933342396050595738013683257280311869084917333983852109608905711536930481962476289366109457327287262731660329541130898056731361225103811061795582262057555913034681810031941574202730733003342438350709359249330394787460686607909489051091275220718313124905349759953933029624096986953284972957818748774894615421132489575568334050978911513582280864774564824417968219518383852763929643349393394563931940176059277455185193566676596096556461993241150122918789620678042226945309322196430886952671653404125335190697494306474416005555025873812662630309947568432405458981896854087561849457807211501762568368849341725599803662703978056146438600404502184494657759138635257395188213355740840620454939815613214890948932061653384457723706485866436320103944394536701429920596117953255308186367904777241949999622989576369844507624960598569572293860703856105601381434623541401679107503777652956496598046203380909041328646213685871654678439307966980811680915326637521628457322623417707849921075066124797873797095507024411045798286750693279021364243934448648706733794016422819824471794085813079487106786157361700013541073883684074397864747084528550080907632636109520596630157872753099334624410640970968546176357131806118952193491346940245837679194924098830634500627432139839190371569512647446686450686553567303120671366768751996262537470961989125185685954309854707815768059090768268015309666625897186804092110638567691174680355354220928741441533554290014664827327854306527483503567644777430404621735539125106311589804368223486393537944226300043357624480177630018567874921105255181876843512206085105681477997467877620145571406443314764608680624502216366326330020730161395868717031435923490333485280906637996745750301761670578227616336639557058245191605829308420163017451294239404734296286567022957689644055014235766171747779449591042705402030548218438055921886248846398336647988502525752823277737415718439313442350313864685745337306261046232090808597412016324298496591911254592742022674931896056852478180720985172841725749582998130697862285676494066298591717799147259594897932669735643021240779888094893601264000910132288954553552582964101999768224996667212060617620753731211421406580991985833288253395494811104291841252543730931709862512800398421371639386198721052497486651754486621917128168035537094580130215448032898568253278968173548810037208948091616250960311462663962123359866048720808284067076087962877994439802529634761275659812943347865376177654735600463810060018747028802019142793731364786124363513663094230143127805338446216601752542306237587732714471436319185888149997884969498536681669475259808422727832043799545743258207577142261905270825901227476923126545395671194684988696153850735638868053225164921380906210245863159122721445479443860416523998685369263281769393178267597080998435913888800417484088141581579391051992338390943553198355081320831760867742727984909652767594179852846563513370310804561923187893424387061362724163153865810088765630777608965337433647697810577642474422994605112229332616987908670252368114838656286501136216447721776422588300632782212183408018977249938990089251231872154323583243631559348830988856341106362053479365362752647898801303529415837849739185166377281005179208726069635135266499877482981991360058951156233573020096326949655581033166282194141817746569800984930902270100337865407266789038335798838898999426774328786800223697510230582824971485462878772850398438477072808294241047462761719733897480191436368393972035531739052638626592286207149067324261021621498094157395032693270398230779720441790027424078721514292788650341044387147832096853782576862234855346777299043975787967067861801460040480800012436195235007011240130112238012798810900220041072474673440245188641737756490127690003910533025980613502489304634977213865532426471332111789246840364769219693478146501662675044141599596639297543414063090000299151455835914888479221549308201247813535963017683593428465101544562809449513305403196214360602030004707454429615909001916652722343079759637825940537894129158823532790917286525208947533356774014020657219739781367572337551227994044976858935485958452104270742817334897317473179064788011823583112433574985822808032854719866335190882139422264427558093139806627650284909578106338442202670586102471959177475343877726933852233937233144754002720534500403191706464176459280395164716836365694655010003575880281793619255011697545025111871494487513558706970501713023598236632165177612358004112389532314130179075317476854054810212708640849302969550127177647686409398448035541845437041809521915466236434253101112615333717551241077446434796358074685687125018897196188578188802346371099917686011172434153274649507717520627701589381019019717593080121199627405432480580536762637496549004083417187545453131595451720631595390514722363915526174002463155058593695255202200686070291423352543218490812730625075539388185008705310685243739532105191156279465833533730378667585659015149759959013634370575844358705478030589054345025211073460041529665960057999690411656961926390943885083937473581331543487386407419014413074276372161476500222931348652201662286525198092835275547059384742971942730992104294484102526193368655483915627651294754116317629658067679970404400774152339347691752201322634181583096324834429083211522378519339238665487088177672377948978498520939188017085112617179419082679502909922094286188590749412902354495690544975274549024686002948521977290327723793162154109616708596684142860249826590950020036010063969638061450522749677900289069462307386633686375736904876472820058842058850844431022268108290994672209440874806202750783054897810178074387791239876958585091414793073492075441389014212668778779099624368637768080784007410512824481722582163314858219039032666600496134029653166604660956432442008695406516175233001897686080338809292997685767403157808498901568852771322117152082474990574408229979941994099834910809889208587316681899397133787075126170706470930693808053463714475028816639248610550957243505599165798102562880530276512181911400316405427887544378479697697955957703829914494287286514761029365616264517186309703110531235240514478518327259067133677442043505248513773843581234250325952278633260067283237336638190733500081802951270258530455305835978366868096287562650968275885258313648105618400786231476860759899753418399681589428659790451858879443211066445470770182390055364647544005736643443995410960365122144977986040506905281938711551581777137232931360299222163881170401033474831260798362072120045890595427352493651942735648553322890937285387137571625317228459555159483417126275494081349372688735893482617682103874933874150790817233985827759194101143942601394969717186966750469083533074812378650032141482509474569103825565865598129442768298270435699041247881685764238848180674853525582003700814125509386717255567583775433975111306581044237864752241703645649397465388542577609466878107022797673063502812210967927216005742671572991340919985132075599948664697133942661765329967763668154149487967546068471114077252662649605360056762261419664850342613969538882597037093881854733700925935391389871649654232691805159724608471384624611579149116326281641236025397057881077373621428865250940214429147762819495825959490809261796197183414555210562143773628291383714321470688710772336523665210991782823640018188748521050684249818735938406751340642008486991256692359021300338871521961854473788256065347015591722754812609156735607168664324464244336509166242857282721382384974388354486754866895378824284125006070587245315702513567447397072041273620964387979787659783025813603367390516376388905012248639436347266011315716209213253258460662601153002988355342110395773264864517287298516348413285251721211070524251096454826398162996672299180833643037806080769290638710247747666705258887922652522756806294823708226431501798049701846039312399145483972536625720714584070514794913035168653522585850467622298438813034048250046924750687531725457905274425351610969834687346930294523006878569559760364532656061272552305704712387592490671759665488562270858320966665826790030129036041477117963491880377949486394141508365255116993231806123625755366912822299821920899343692991760477417072923090623750249969023871299787677626292988586764062364717302055906970159520655943540310141538145555222434723242177635798058613794623835941132696367816442425001526361984499787103333322576568473444222827771226144855386489078574919666408078137283686023938735849080535048732584273438230761199768011994165145448189918109558045539273277234421439962595559040268240375668462094945937098285929835372330956502983372663704080428660757072927316366562715946493513725931123516766016388538241509355596388296676121068405596100323068315813317410200365860295777904429256782442004205941082250162702430216227406914576581755593872210289900352593206089461451030293294561344599207431116778003694675043100562975312927175695542948388391058067359669279530270108263196221123610990458275164720622696260493795227071638973320362453631484018428918273372301618094075207466221579079692527049507244173057866816925381833871587697363244306251486516826122079214780753184191646074395966168311514783110986484299942418850010837232861129446789212358729837926785198243151170143840113653842968201838198574734346167930873293873804370519992750704429253146346643112039990097644164623491432295733195000160176361979303886631467726986974696706941577542729717149213146848082111343950697897449111478949490238917051754080909943541048587639832957557854072016964257046561962081098058353162621223740106391873304128195786082404804554673592295002147286319025250978623531751808458802383677734264371738043346540209781736166465101741854251680975030674376219522222487792165650911377104583798039430786652665243059748535334433147379808206236574642831804477037882102423731553709642020846767631017127950150115645335840086057187748519782347443551299675536291097418954613088892185329372478632800030073758678852570369239434041664732733115122179097400070063218084780882869188408543232132887328833838203442987929386963670235052007843917689121046054768908719788676176882656238219344130871540983192979933683505038612229695222619323769935081997354168231399579599830724352217631642742260862456250592858542764956962805522945939529884429200968683792733817193903368207906728075205145479585714021977796003231974342353569250159255054371117425387633269661450378269898546284501668827567469225449159542003224312565021011252316206305814753266720358760705827568046522349300920401118672089910865506443238360443120337601095308706111802536716555193265727093674685746784197728136201632042967009941286263712715146291787875936107755557646907300716188155119322148780287656199666862265239195044717148282849199946082264894597656285972329377494080295733661613385271778806998134549884334370683221364840197252420414072307821980135969754186530044397492128028806089402205009213123091853845394684657973430521614392234615367395238766677590814792959785478533285262904157897383989909207061932152412074314098230750398037552594013771391781423891540964562012136150303006046898257848235390337896927762040267716565644122363535199020501837475000844126139755344043660827056269033508561259354752808287056411337514710857946570226524030886083928956286021324991198076768946870507901358774347507156343254588820427289439674586435322505811037920050547113918185614375109487061004168638012793957103513052491081290886933014986378639138213695339612699046160721624155804511626629951719207901241347003663768570786843492986726595813319108752724750885452356871603306940826040462447498232645185523370675329924016682826881892757736585399463903254362601645575818531355863908528506560135933529839667371480418884658625956817270477140289779556356609070079716311312333988377241101020158990820507058357372733166176673570552176831874085985309971845094007945527164324774703092343747732314355328815331322374958386270592851178139540489318227398195917060885153383950805115571507990915595523005869194091394394173212140667702683072821211341484858995102366730201215542587284350628676430511266952971315185417402479815850794977143856758804019476359208550125886772244935200996144524883245764059647379831425171218994020799757109627934514799358364182700620604585116257613590522261485033830783724618957025167347539552796357800749458417375485385943231029276641445304095568946191423683225952501948465071247562504467133481749500379759472411649888985206248581615153060291434635710998501590566251688820172733910563737613440504729962365016049764700741257610722888655342819142279173560231278780177047017988292631541423304277706637404390032241442027883233730163539478899147707327515287056530101191606184374297896901499791264701686336118454764655014778009952106111811736608602323612899217159644856345828898001544851554483059507396927567548304061279675685947190821786381077427446215453300087977133656269022851912205443583661558355231082622231683602289859853629618538555284307245280285875820663527472308710162443589132450892877574351083608749863342720728044236737791788963573205542167661149906188124592778510808104317155192274975316730419299975005829561297016071891552194310822089723297072704904370309168400306394821544808654618520828344110411520697842242431965046769872628701098063205393832127147113608454922840881465793584050867790942928906267780190253127514052503429348904552988921267592252892090095730102486048673821095350716737297342558762068990677046275272171980255111940169609891526194193698251808909304745934985037209354465425926202977550798693535988666332051472913753725304470105098711950650163400882522877859403918114687723147892240103472602268007521800911978063387057949170755766460488169865816863584342670506332716920156609595519755933077123654700878767600126260837624013838889806496709625402998092480028018506780759638547260603964366308848958153042938078887483683354279914949985549992037253794474500020621916766424956601048826984407027263166127799389955724476050258927681694752448489570045286972590370018835650549359906206010410871346216147187348298019945495432308692721453388215167948953001265481985247759466275564883978256262634006040965957028350536293538009254353275823938652944824438065941740574194782984771454984040605099603529106542294543542173165854889195339999996772717061253556354159840824120855572134885704906446520096042724367842571168172131556163898120558420739392204368448908481768857147090051552137260083657932727551474324241792839011291116638255259692058503782371584105183954054826861970581524887524897088466033657010190056864137974329526312967646801967968242978497596765168759612760956955931943763846570611610540318881533671046894113036733285410360569824979068885672689117107063564689079997614965102006691192332522330469985495036987295524094651843024730978268985805531283502740805420757584259804873663643710740990184133993630099273946865811058456276292385003863696387632734902509155911962347185635868216276145933843353980015457180797566488642383151362220973856163838692084531342596748379710125799065758361938948515326363426763215205390102651454302680059518689862506654102381089789619571278586421504679798463036015687087802894458965343727022334433883258392496259351667027281064626244996405004666557975013543207225642565728377149573458015201321135269949782171193781269919155451083796121054074048690064945460821751146466328611272340695099714047693008533437559111532453421967028519047052606670830207748171602540235133966346111113002676627923479253398269755501354764124807137509932058340173575224776686671083109611762979295454613073317656855647706565229944519432398618604174270582843290210272518395474112338944710883066503073025173984751987261153410458192114384335121175833526839745694772758775263541749574426988252117321824035256377119692675819234425528154789257057852703726550711077733726488805714327649186792470978626569153218064375785142519337806561800697353602836137837306968784178534114577194794322264485972754203606212267948298883659717563923780616110979475566281023782056940893834834210370431557550271165063816762739834913070617183994155124719977626517573563378997118683187910222525757675573071328214704991873366949205993112131760250879339760204434645135765419993093553887048221348310640522104281529506165418801883430773395402623668810468838843992060209228997262483370986670312488074299235517203272888743999156247290901223714952815385449053836490891724673164881282529937247652032826631100676366697201122808976141579220849873229859618688922948108998285584137695982992466011942746964044807542794221435509115268058039799486281816374324542381319280250512900691209434984203872058870139470908513534550090511438025280284094345491035605868674823729702238956633802710547537540917247378577666401245990274891135204665830224569755406190944339538072692920451300347229686572894297638369842811222389400605831295275504732896471604135809189016758993606061060229648280370154647634718641061104809336482032961523261149560480685788125748514833327376960141661605808173698619871059625372882910712650690055115698591248014133719536146200326435412452386058504413726816127443120418335205873342168166409811767367431757477235018006755474763658018802218705028072835786363875336544579808068802717013690750658284536850376830025453415388409120276014869128051398833613123654660511960821482510044823965731348809756216419166999076338235734342782668151597336110982165762428247847969387230856895792536523000220370337240738231461875921688712854191025221153542571801019531146307714016214425843720911551477192612847296947540882526741964931571056160119847967939507189580986886288640691576499315894085244850500402048815964656711246450512369573070555981523110042455314301914285728423500735756979110004134773144173654113387800385241052684601026963683183826796408522137893195891347477495049225703219938964200211524130679337577540741472383753173471606528219186439089163297888278929267492043571341082230305409546373880204134637437457828891117191538461488332744549499729689105256562639009123186323936933173357602270566336531602502824565096530705894140504796808597995824011788520338739650344465888192111998278200433776770550066590291823633235978100857197216194259795740902784832962605754490982634180703644174501398226364431081232927866726471821633195655942819640522928354774802593263563407885297981404295572558769760315342439818417916622091908509833257996830115167400715086143382125011539685788799983506531262094644647655777955543064237480439028208289363987659024614380603608169187924776230368565296093078205400651593636206809977638992383075043657858784498035955926197841962880089596744436171680736552771324424514856327978790735138079936076426443285039416847729581625507438138287054965116625364972542042638145091750632336149105757683965680372520980243115214024487076202960746896810465149774373397132841347809057141320892604531585795109491779704971784554207690266886231513355045178501992661923588710807157823201731366555721131795771532230503934679385579667535108401220710389743951189336773520737174629674528285556708450148665847583668957247929412917258619404519608706159657206488566158237577322166921974341828235075595526142862855063475735971904950129766481063350942663750275668708940130157648649958818615933576092668796094500234490476015767741011144380974268265173280750119098887288813509473131160035879859768319355446805045217279655031153003602601558307387511544852018090552766716998203644726158033725303897920042658294494177318680877225752302075456952208076459417518301813412907509557536684375817875535078634456021338114631779843467725287728122903795056632482351300552484595721151830539550443786840167455419110537602211996989143968852919222969793948911567389879538414284644485341891651102197058138196204851182090718724418459356238267197932767352745429359510418898870559493752343708247295523769392512485944114323321444318043536121499493720004368501080217421025814215472146322540290573413566155111319234769449928755028804570848593483203574046261830899039484285314627500743087883135722424121585949251706018937164633351106595590365111864105271025229074566246513898736804292844072719157789599075927407036289504830633925818482761997994557286756792257514715412641034195813925761593950588136466456582955689427033199743476676690582477201248467524525031086594658410091138517661628661438206823992441503341282369690316316982093615894952064578679447223253285127812626962221598348573256766492996523097081135526127802093001002801818854433034279607001637042702873655089042638543180253354707776860534441914247429801449845833809058126833783276913575427278169005075325734322300830882397264788720175463036436642253243901970203965354531518144720793480849597728829190864352593982312319669672340835258484552205453899634782599551240832271014042206292886637556424153029807879685013883277427869695112877343777607122346657014892374800472744133037502943473192642228736408678914815787033078348759533131101153057691315044877308761750065460454983206133020560705662480534868273140882961120565351040213737208265307066891381433904184755413501455699414201668438782832575585672121938668251214082189079222570255143491349566996855834369942023971034449943263833490558377602149010164400828934858261328528571865063931302728901857858398297024955318722101394257325996928889923433680879915436757271097335603501236999810094289050342957704654376256305417456477363173129326527700161316339065724787072931349108871297377788254948959031691679846106595234362214816654184353984616274013407120794659367403142715505085233619012192837446734002114932341808584296685540065792003717028098993522748398576647398594300741364832516290543750946665251275590937660563339724660934772359046780471681208276836233475214845917349736410931459845009327701889269730218309876768789742812329533975346796695266923000195847337250021034747684756399226151581797804149160612285607020350369963619532340255672793971506661164881614463420504473912438344389848937531088552043497481813076380184399637566902056642357742591570541777619081207328031535425135315906775344101731379722997495951591696475156191192461650026141282071045907854545351700028038057552340373823994932703977302555629878168215645168256325552628401103989029859192745167518624806833224136820745487819523066654399648448568784918071214745198646857095553624214112559498805799580891694544341234289884411000947321492031204404757913207837828758414025109074383808079123938301774037611832791296874137838143362602384028018464745464943542514248306114300017675007086495992620706766711465089688898179809148798337307956270204392698927294906066197424242298619581642564491197035036570718416910945718329985667817145089883931041377303417500403536232497920731282765179730594227843876558208579775791116470367832753587869554411550223944787092956225504323852058746438274991715748411475753845561348384311034814215677916663120625353393953269925423052171218091818984323449057433602465632704192075749822377520969141306496165930699770095471095263752890904690629708748755158422634608304160837072638072985681653108465815458797257116397699488168220795769567503862467872592287943218145410549406759242289416247811907699396437559621163342523608213914125451756220246598023705652981793911702543687173103894268860291049968418000630624293391344822805152928480184703509100976412521350583115084965972331312702997017485488255256221489229599893846252764771341383119029269897839005238286444635455555219527259268730895407446706131298173320481191994093626534430573837420094358347874111287768741376904343074541388269634581989163590364756539086768703334982362452915126877019722687770469852717181538493011161999259318127046315516146448840824235221340816980405011574575862831958387927100677015165843388163687351528810312560046373087617931799021712457146028862197898524699485895502709899647053783556101021216897265018484447544235988027318267781068460541171993642494769986545355722520608706142491687821679132095753661052881834292144860248416003828111896270154305467343615769379113540784362896479573199696633580591263953318730552344859584189758073219682341513576495482668701615275101521674630915712820676546628276935767609409348840628889643771732273931891664652256774269052424296402531796566233578598113547218451329025984174349347504123158190954660698244687272634699896849750443780745169275617286996050984332692134024310583142533409450277116934114544626024575994074099538417852988930435538848159797011218891040554130839912576875034737852603427110858830355841680710067656667943119683798021179365299414930607584659102089951910501232002475950512994263209850850336526930191329133143797693326044357055607588139111262330927743283469971729523970242290184360228252379370410223044578152562955334548111029156512837340353107613556720248623794506634799520541190636436804828630651723019313308653134403805999559975369475498097434730123380803667351811715091104903796394385498909368000132802496820811899227201636912716315582816372575187665237308606421994064614943653196526329757861229569443811977847044148347752914157345374300712225561929414068414037543174574420301819314988117661827609427954894115108267869431686454776352315273512760890453791596386740028843817691694197384621575542695132386909730402442977724338827659907985302550177643875839188529107140624594701880713471069239020954773780041795705343914993054346414721497105138624992988752467177870136576906646988945017655972702591384482457668681766447998680212809434301224738187545424730401461628585224185617858040552466776619330119405414899365055587498715735145104709921419979657833481150017674557427538209359618423823800198960947834070491200752431947335791343965448672309991693230185112352210412314360411850366703513068298466981358492198985242410865982964902839805165148060925589100394759521072882077987617133998287789808298941199656214548510563186348897019878561475617712889473092449617591422990477839479475732730887238113129945756431965851070173734317378767411435418940656288991161175937041616228377523829888782755729723099330424277087410091005155008045581589224410502374826733075314866810031158878309941287602913610982935120273620878665183505383228357109912995846891928948200079634158865839938816818619801692475379071571354427098623181690109938696756196500252462311492005018669336050888781140888282830310880325887273132775788701896961796019670467037068159978816020626062603992805433254296826642797726049360435655312848138217800793894641327590736785976336013823853682568357145058554289303465296855544298227182964441158738352379048481733678312834232155036724589348322207233252355497811903047359129384299668155958648931473997145312398933497719161290036275648310741816961623746910497989481707606624890726913024217167852990319628579837352839852011923895920827957443935969396697547850256673492812649370280222376466482513092377898278771792926947411364160828544761483972109448183012798872653511540230883868778336397085303991415631242590009297830721349278628845358496930934925401187373715698260960944580430032225480153793107558166833550769415019597894793650050546158218670236528145597455490927566380597210821707796092594330942014934385306360940310535836546785032542825215632473950390259760242289212744621362560061957512446772968958031654018615503565856449426962689925862269907031044941450844581530412452529307159206843488560608873247252704036383535978161726924037017653401749763324372708179620703667156347180132851006209387743412730621310064347016564991914804714191449514064257148284393472804777556377431217450860724356874046379036915552007060331632371583835810092566756767947462324418692548871968120704497955900778321537490133573620814082291864743687955805705199860543444070934318753722704831111496874823294438321007531976105454392685448122661062755426821044026461690390029599778370375185962275086151011089032979451753410965515574076433826284927737596256979600170655362176130012440703706341729734157301524469872692984476150062489313324345774275683497566961087644748695206325653824666758894514912985021530192739196426551912787698919903717701282978961951493436569793295292312324235228038846524963280696930053496430882793179993003595799085533155780380460410287915609463905220852356947339900615889571906518334131454122125309282406175870333734547855988893777145899518533121674586512685853099090923617187550668252763664155844774114894336133864308240122606672543361993389023899463047821524754065015617069967148365902568952953867942579787034501897745630410521733797789487227197033729073949794720126316416122284769852338778401846382965209320419206929869439291114428162860346455496315249432709484086283979748522854349859794933327955788857314417879715427319516416588342963339868561756137253966253805157659934756171557666968369014437308375629520211627794475609628110286191946933506021183933779941831718762075759418520731265219816267115910010749168911902718427096374935414318008596486828128370824549008213301545194779085640716815117246234467373330398831314221786041561215810607369649127623472400550091132834776219431124959971851358623403509301645301794314163862340160442039191642279109449934368070907035278227004756642345759624569013357580843480754062342392145572262556052575696912440604091985580469163853615128599913561253110764424363876375134659127757785274806695626369627890150811657502832142494707603081909648225188318814527798509358413730411338362917289461618212252961016896258184322280748679026866137952372128014720807376877257953790623486777399059986425372927103693069756782391393817632471264498345208238126107131434562043472595559751374126060803395115136714972456595841523194692429387368639918864878467283283564718131486281163242883371378928672610853254483033486593572990018891756996690065122082891058122640240826272030980326080840832134141076985268252623433608625822811171326775101911715873673528679309496172440349791268787398381888262950847339787952269142363719604173466194519487866887320939979054011028555994417632533961899984696132402297702979308425381906784091951907996025706455326577821724230466250998935757550425256751100527453623681470059188635952028007455249679511492578404797312788836441145508480272595529837932822228591894078250763595964011221585283551763504967467370330603118577950449823889856348480476897390016170462663887611076832545959789886356136802643837585371681827124022928012643499423223974691486304531568609051008370319543790745621618427482209231122213962110275937956503715624172304517445950175503487329772393475108875118183916782103253850685959515391753574602277938689914246059392579472513125920040688130155385200089423046447538658871101776626051685718393160990833790050408598164423647653571828493390793112541043581335920397430728597719424259569253477570515626856604402014300621309700957205972642521481552575789937280478558227483449894505659872841254827459054510235998619904043160202356068797452635813967851635317803762216707720971052498779821816717367440122790242176811733577723757962482984755954021557439636782788828542182693697065979379365206378348276766683514941980768894830381961581810995721127277643746165093648866102841499275694262888283439924214123945964583108936433732910324649873654366069404169963996289633051134801578776602091779471853025626364611198379982032155511444286230744301530009542202445887600420998918246138760700872409005498955916152245934574125357179677669334919454709814826338390247095462512489168938647083499797394545239319681109889645635651204445921635052823878101171750097018905006895165974320247296636799575855996945793865069466588893760662923192573070224724828951711244690966047326660157848230275129156529163320163735607112037883484204949241960350599555936011264272006065664273987208241555329464516880248548854338216977186407964521790596786125609231947821682581695063306081555561263869382894753977878972676651075122340665100257925131815773795818374202550408541315116012324675579571353375403363810355775788177256585407237836350190953721744972620409502398439953815720938818330538938166436550284453982115040632133639139160958074010239284136285610589282675535223592259166923906568531984245392903530434955503339869030778615008649858168698587231137592707106716582518242283506424373788956626297892676698903708967715802480447464948128824941015898587636581295316118350770458629247021861077852964186347889711828540633238386160121804877671447206700641922478667625559794128686483639203836937528131012816379632297274092100502172136192158032813863477632520309741003186848508829416552004195554575246454076865347349302852854004571293424024153683639877901244388615857203361632812172510972173689098346997871273134894949145804344853257360794598287349480728427928092668042308861971373957171026988396909235794470495632715848591424579837641841238722055450376254409346289041443112355620602662850137094396200362959242670038306174405204264975532244347475820591784389801122349077284797174325157894292945328868351866918699600751219866444293143572951836300756431286958514381626177647665981171508027943883329080697150980650235706674059447866260434698496049754122154094977108148098118183348554901703661296273082177151962883483790941897651566856939502762695763723013849447354764185936450199723655493426596397423066777600234861211867456672841415313985797065232953000581303682966115645929213273221029858324028563139466957429300418937535685949926918369969727331119888451067105497875450320658014915022033960205649143396969040789108727518152089360711185776088210185465479771952155902666895101589877671271036619101167078366792970471415218184159178623137632299943655005149830771383496648507090710725028530929124997403004871037444899539038364480549092125182443541895941640387075868202896493609994576117801390939206439066539746935409731539952599698721272837289044000735089706150219257604542436130182034606310446600392398754198881920565333601933141308232394357364911447795775644236855703896421976953937803846107808545723334131858425754948246837957342167936185366045910680585658950763878659668928342966249772282496888655229275859704551930394357898358902565761515985615517627247674041602627940252033013459153943348554915314131206687041386456263168904295165212128472237661400653579656133156859729353761310462837584341983870720838655508935754236732083459850720304243635467666851262907705688480003105780999671376409648518094278189472487359625963810127453057258859079184469006845763368735196174687000588079532585471127115340828549752426213009444970591436850868200549793806334838840048403604738945686353468427317869920328262773553794151373583150699564127090706293452554876937265562134035848354110749030794965081755491741260682395980503406615671639675083868635233828553031360722144347941870096030076471412159236417161939370411247443624381820116953968581663844001412361077438488645040734656740797733217009684935260664610806267689931487334054647336054748222815740353174391263290684337245248085257750113304538988159775732710754813877519502432147342401909031274646483626733156625358363596012393385770666082841426376750901580470799532907547176544366037018708970125384499192022069517140126004970549701271305223756696294140834923096897211681757976707451504543542255188865672174529574077231217398233484195120018508433956648662501780172658143281056127998835841098871244224781706681475593008333103586352526307962402362401542674210514485490469870477164694810232526227014773675649115304900596142751169347305657542609084177644941575412511967930010894198577123679771484654859814518770851442873235746267226618558695137726603215499764978414921388379436181544463828626157490468768120873007082188410077268311248216379891223016424008692487893138380857949507396698551252069350152633381304925487148896187530929444352321449435126658611724962612065800664612527659096509210805139584313868800787780282261557546536332437387920041378868186266517889402532458282880598990789834047675002735436572846857950837681491002896541628427644373322026882092463381832876319138981059294671230733293992491116434642046766453663239765427655631324880438942702184032966925492214225211236139297222989386305175575724502041085146087065201226654574430934250066069632230213053576362505789294168142465552102429915565078886847782264385315407643878848027077626456201615099563148328697140856416099270963614875007651235025230031078169290026711265356520427580434624799947174803714669502048231631055731113944290907502614107511090051984870267396229017749436601145439777146689192885906998388982846557566618157445547282093164949308532161916903035745682729122668490483076305886297411751460998020808651243165389266262072046643623909413498638188161068149507092504553027384236945402227817614235222956329188075877394893685012452997582129901004127356814863959833643299911664983903966327943604760898202005877631189977884592190777216805367348668067376124595591390546928027147670453753862060692336162933594211107062222104711292598177732561451712124802857516372671112451600206739191028617197961884136381109989607889230706362914546286987228746769818564573166871008741899011882513896786663236410875714004548418284164204599072268269373921647578946826901397997668809286814317225000526846152154816355984536556842771539549002181889544035570947688412446075419123560417063092323173027527647013956786625323457209526624976368339952614449517804348951653679937170105776553083722950205244732049565732105489270808895912371350136051816233225995419630389002031126779333886057771631867980324416468435790000847304201763053764795242154081842653178927956877953856864145635770476155607688965823398771421740654188083452635142575809451712521339323258958586655372350469064751838254138720734749364368864764030536683781601430018429770219428437639880281422731809559216785416872228492975863222132120837766820957911653407339341457540256919004978745292206319025592713763640045856432301658111467268283542792251241425534806141282928884435141478203940634155179133554371284431833116901410119924746718572127392360921786108320231119104873668812749046334579682068445599042968268464154316846130458661127805587186645820531191497871947941657353365442086277510329547870844062517126274936320358395151315492377147713101403241195410216315885851710769267990765145994290889458748948708827874323810315996094999699560685059818833208911662780241869677908944608508165750099395508320280511219971922746502709251828236257227026012400751032330784798296072030382107387890945387003952508193954926865440625535815654284253979414712552187726328278922615408321178031714235474431889976979687154469606329747801894611306520820352280012801801990370232399668723954673799930554359087709499270189620836108702499326018676979890470910753353522141934637929590246111634229796985713567693254722799049500224824631207821106794962003279998431113853906467354520982410824193919647500753468677788449833967973798066313612978808908854145201199469108850080891202766671918059395202531389281365189417341061918066307403692100385682764539905647317653688421975440278554220511022257821119171574925568970543097616296903932112703654645978895978937241651382153665229335084575962269731041945106665957967291224291344718113664306860252656869115065082239219294974842156795662733997657988849133087763974791515129786437145608722322334547288411559686422308876645518718354863221876379504141615444941379314868138160675666813742101374315748931604781357143767901253407344633018434742905687486107321167761030985948768436670349234308734135445787081883418759856447250376204478885346340079103029177966564731780501757286105872426369827995746539074458486095340223315589986128552607072779747422214738818896173063470632488237499719634962035043446191259097130441898100372635827412058186949390471458099329574924215618432361014545830664299535893584431897433349650282685404248129908509459464246907352387166152351789963365490881301877431286836648346707579201257612451214472102467992056309102197795396929801429350545547428663394718360456194111665484360549838777079176309860374355312497493213052670604178598892639274285904099569429013777229830904554108361857396789091250343723987029242587880542218242335995375782857718200262137406153667307039736585263492644790605690004615639387675912331786717364726894220618968158461125071034297537017348698333337377509024631861095059061047484785194217229192086015871603632263823762943195206213127882275042845625719381663408605645918269008016272209815080394294110242599180741276182205197638501801700456115398331953342198005024728341487275629303302093065199232589060863689316343408934372239685849955494148836971203166083206928817946356701428214002285620976659170706386475674595125840232118102495678854239621307799033887937462080025016623867956547374902610372449970492342858091903969987890469007060670605771939595168946680781119916430068002779920746831728187837141940769363585860182587139929816500742941657494029588338637201230620783967478879301303731562903049370560817949839401839312023004876471721713481959433616919892908145898297029181817700268484611006714981962307987255310778614279444012784210001176593654519275348550117895666904370666440290242158485205889012415747124586661289061643910098338852075474900896756882874007459481868313913621202455310716534341959170390104735596290818426993641247312321076090437030785863004863472069786582588501780832874598375516472707720780422052614168898125877180087690784251854455863668124223602051600189759039547803167526307000718075725361513696524077742760206062383473763257424202560843130692648967254319404180748260015250824958181515239866743262762233388674545312449653906766708717184418033692066404593077714060951594103996215881735124682072006164156255311276306822422398824269722547971154563645368422905089721546012326933389667299704571852403148110344541317448734589268412081684509525345401594225293558437841778073645529760639081139632616988754287152946870019046425103081847424788585111890905025251644017355609346030085589756720972840820089548391880133598448662766208850973520582674256979853820290051389008059955669442791686277498547300891648240166367509467160814775434685685607445403924410934181339946615611254124979683494495246853870331071311623084715955018532953988877175602733964163546040159550520181760750351300275397398326373744012667285391147455970340445772886536899724769865234225387108049037692222596224226184833256534533819043332471266113345286829412607060388109017012566293727801139899659882571900404157346283469566278141231069986822368631750522469031562046506645373203722510109597193883819419177217947218774477357230350308912959544212276015950106454836464674239080783384448851795452059412122285179714190573319231940226701211042974017437763620986518080699952102566778335859818785716772023744811201174828716767715593151995974238017853806749276215772287092971572402499554986994872193488421670112845433511335866043337047223107307741368948978828473868083492038962494648765771707784072052958333698320749990015783342202206305362742584161074223627088311207666826012550987168182749452412197008765658676886109462155295000614682096034593041093458101165962589005931496294573596275785867489738919126653956257829525277629818255635380386297878448845754849021480944731199289466222058081642355172009769844337757176881563575849560588356900340421748015435296472029109563915134159090339847309096382188900645947378114091202520658884824196777797313375276019914514968450229391119769955319284003809096391230508563597063326260610354516627615380784249558600922576264397616489737747378334386522722020199645382033738234215508899242709337325514422779248321870785726892852658471673941407069783622382782616417014567725788211759685584884009171292755226708885320377316547633015141012914627922770911427773283203798645636771890718046415750057862084570358567039848954259142777277082797509577656587264726936880476873803616461920368596220679904065432697180966764136354961709408645640820994128105370792217577821800706202062394176414688268099602665399018909152488375139747650353181995402986003153661289588876546996664842463175030444232656418374859780748692066543968463329648723568772797534617799234410437127611189386304264902521039950133473953566561908675342646083373768575194967630928754373896910961957791384868111386666747235013117421094117597189354374952219387258625171180077583998552628428937826609644356165612441430402566379206885651490007757440748022569840702693191904512243000967883876202696755221341709945999286442533607630793231993710443712847111428695200915201739082508855491256241628040750429377395261341833907634005843268853023792320542401444087392118341904127907462944105289023964669923667133032913310498930083204145997468399997656953243653546611570450018260772995070213144268731272259459446434405523303850924795950451970944905811457336006652672680052115561355016807780244438918950259995531414566625224001938637424472049693141790141656694449090990760874937058207817171021103332979326521359485378284977195111030476748242243816439470626885148701763298303083898998081539922058874819101530770997062363400418070114177219855721476018251078596900115677935331358932428648257029021085916424429271176164661190140873318801624340533027458756672907961413446646748404639210802411575420354608394236308912752382793221838866875439555695347871238113832628004476547575237112403807224494970126639980059147301236384775322060301985762834183137120762038078044291929829922148510275335680501625278328369635951619699012510679509084376059219443142727912532178481222148225256600164929940025539528844623543534057259806824536696687039426483395993950105968312026860230925151437805581576772027655643711613814766162182821144082093127939914473589141575374930342028888352353674208748371555535803324203816398300790064993101896532874218518497140354129414761021045184058315508105249660457610554128647293607102283201516987262863449409866676550302846440609001087999835149728224603642971453126140202187141199439126421651475990088941784378774226063736246420669371633001735273127519451745671048418069326618490554775551932182731239024232972976394302285307316940567824686327131295882435949406169276332205066911863107554714233684910678594316269912484087171134155007809111961110677202286523839490442644701590233438598541897723738235167853839654386470883829330878823936394048269607281670944336219539373903660992849282534821871625500421135077361574908254040397819768597185885677878940870144428441843838954851567756725147328492089625190990696088149524410818012703946460074531514322090788161239835193183545032111652670334973356994451687463269618165149510105474588487253394239052529440180247097695198362356632831527612815866876248204734402710483163938738646328660135234271862565123083321553370435998092181902966582822462958121300702510193598368483286416424713379205768362625597963425246288494009774698712546514726520003467630405311889079113097179069244750241882618525815597896129027479364495459546084041546040426079577621033586200924973496717007728322376100233052123035619413803620715761240599518273434316520931482229927023226521699773307300212171606340416262687026878527867463925267790868387694329918582767126876584656397784879285988696935265745727093270622664286262366086304831327900127654248902620684744228498880077541124089568583617827791138674572573018056296663297173234284988884924848851795851698506309540786959295976671026583661293751088763374627096682326851498308219761990993590583943520832725406346735526460190865854476035890689559658712774016799819669890732914435105229812081743018697479753433525477264011247703133788301224707469529472822173111471724966481954470942519732475414070721481657891592049333968821003359572368843171151247690399200848024618960624232323211450237038899421153622252870710631643531474552068240120178603737328868234568470852739420802123613476343412909260734826217106964513439550089347567124468296298213988553437783398608029329416650426118800362376596573326482966718133285265614849147084099463733887762269046176396211680532748246711941461913176614813465478821800778317066395282758433520779437550807554000548490928197220686021695708809650913752717571915287155264041690838337950299595747988680629248689452812928138464732307219319071291655365192372797705796538979314671418487519435265601639328990152725969878089717536674454160054151093442434697402361860032906792873100843368935584545842402576364005996828521023721692453295645163626241691420436135885716073812346303938169953236841835177654598967434641308884982957716240093710465783908023311832333856027792918450705402937570712231995152257975724668920602883648397838532711669252859295243824257978754708524481571404298067475134726856377722846711053893534757990396632079917983319832336652791162741725692352267083071123570892678347024456339982279441473593095568642140437746346362911597789703359639381750169936504060023095260475527048874547253018641837757103704846692221653605189639686652121226596847638804892946682918208709145707297221416205738944536193493348886395159621314558504536367758155766836071985457870732616819140472594722231751810574027405891104854044373070458361515896907492048949229279996499881596666320216903956540601887881574011881748147389232176279555033142975830154949116165699758355948822342452127438128547926317434999530396550750482190563945366576124490286814078094264291887369575823999528481361615127074785614762279862020133780661575809260527597313460549471590076018030002543491295583890630554606897518248674856851283640495891791861498347048662469850142460900291552816484298286732055491031816281553783898695452627747166560698966268301773615157738171102073211752915391238223757318096570728755270166591816192872037590010786074994086981507946030531812472678890105917876490903742359728475622358940471903653571778377569653344339288267897832008763920091939091113913241691944705871329308347823758557753740876386492591496923053711727803450235208573035130635657186981460943472665548553610015065811792679713302803465907396911671321273609422511250156700256891730338912397091446038148714831763860997433260342368397385723301297384284614337218154899716151697035990647058709486003972742393064306388077585229220612344090225737112866686951626388521090484090622520957215396933642679183206413204888904067048907843604092516905413621322217106515185609964199642318552025825782257084219625169464083260073493365443226564041704521981703190307502493548522308325465324196503068712029343423865201625391375786243652579230404624481533871492790329838592313131924492535880977006522795903220114977857276326948283617789986922558028747373250542855136926849484142923290048709245524742402919724596088395374521911787053908248916030232338050796555680846754253551690076789582156091898112047865746617398175294168262766249539818729369496661650426705906721377541928774498743464421053142976599402186575581932638420869661451374644369140890190490348809214797355004220261447461282640841952105082438823299345827410778675776427459886503098444353760492836334595542493058770460588311627161036948221401614953957202021299300512129211385046191007230708162817759483141275378215765611659548576262266108083272929196820657167457051607389436854149061380636672762104818553492321140450872826843082828217388035754124751515460495840453657588112259873981478299567817248266828802418950106834871777318460900433113892354577615083770201386555429602474913414233709290297685103862687982364932698615394765508609775142572328499097040569862657915683618998320445230956102196375388519098402274596231821287046698806969030820518052250912121603352664671175650614437324897446521952578481771516567199969001877126750696783584956003698774726768475225756589120540938604725082563208526421102568870330942536122656815409790661633704804224959373184586142507683315033463754586877078447678490123575724882708736220850291141539415656343991991196115676963912526915309493435598148532045266005218676996018434295066430187686738954198090393403911424167150149172658618813311749784658330472091598687995238285593256507875484618142323526726768516817319268002094913844440391499214060977710379340783933409756101776942381806015977433399298569261329847812141239342841332698981078004419230728641608686262223684712929440047280978953911618843142870209639847826085942847961498845171807823385548768859483090143141187513899261767738355864226289922807149384364019002071541290764553029146870652016630964548419287222318331639772379270958684202500257750928491889931237595630487564243827257119863263418718923948278339231126844238343642667289316535383698351920843687061476417548050286260197466337702756439757620460368361045767362239411611691719146100541138700279902629841078915826064049246329845394929483633494811776185556966536381458343384234905011109419958385588484284103909144938936853027125803339097608316191707349751192720875945867845776792963967954514711129337995500564609596707977863954684291264766530461050744192109780108695177878445487349827085901944038185718195630399606973103139934264414269950187299913706168587964791281946498659664267803179858819452855323221394804549915012824020359905175684504207366048503851110640330885600163475270240032266255962280054208780843155280309070367396836415627068520062145725882274878856446940231373950687308484224762254782251797368749786870758795197063041515014587471616885491348182975327223964239811715568886284586079549869922732352237097828081562769699453530883184466253255768345650103231831163634135610345823118218464761492231978265553891340019709004382371875131609912974566373375971138861083331204625551367720646208742758977082515834700006092591396959715476489741394398796433654196142184648297570259511416969064297219355167961339361712371126422537400163821694006054020012008000922524284559382281979818888144849232022859753526512827202461839264472017719897120682028585109136794186886777431873096789032659226221991517330888468499023388855373280582211552481202194951886409057339986270577396927880379836646612815936015548656305832998664850488700764138151468549274626070714031016684751104040448681421854903740418166228551535814849116519595700407799776495824398667206627243842329317008072248797662156963486412407722105417261289488621962505803533667658474192221739354811133401456902978877000155998779310524345224940778309206794317587650586118653138566939936809504334182528832359936990056743540913135829071970268043368998143884630365645434542745939451179269819929833322973274714834385986683834828526388364919464301290231505708780379743379510105074261222359953516139932030780981552725531991830521542662627360112488569832219964422705434554637613673863645367948833625914491892518626961254283607715428689078532216886438723139301283305920525768540975598903250641685452464935530710131265535458801656838724012405027051934393830627669047794203147765332339407713454121117414636823833814142358994177414423890805440913014606229926229175464187909442197999101203964220255528442367571113999488933126867633224517187080970106456836295064001362686238664772190846946209173844717161033892802860108706365013793340021169440511831561854300547141523217185856479926578959934127333391297243603310116397446182221549640779800613808053406817631862731146138232780897440025950137912956540211480722288990622784930059989898486852906644860832051008419776506452701581697627898225965862352713049169370165704895220369238738108038295100017090311017477115775768446703653028378218340497787371294990481708080685210480765761969827055370631182203494396776182184924269074398319864390629394260142400883879864139380823229066724761898355539232212959493099453598258531362399643554345892086862200766087283022565867027689263995260559591317993913621085190286089629305349442999099840552443293364871039443209749580405531285480419530113304590734580854154811448480392098359459700090277578575896353693075747053281154833759690337158547805452583045971633536905899046691064196259545343706979837582615019241992708745667455601898225814299392349296211117659731572975861150591682403551275673623090900810532103025391373034690752818115956860946035711341920517858549806524304538546399790009446147527193380354260350528511209778760086819154663159803673806468725667201403559153779396643656290881588258520079669270663982382358942203268333113850792768109106180074561183867341576622153217696483430195150521305283635248556138452111580403603005566845755462406112131013784304226325678143586962352474106228863876700579604023734855947621314175019848986334909332334591668113784557912866229451079811916914382555097045443608450391931257902168396972939129449711442128673077769625315433897647807624034432438322521597033514748572309609617909865519886596291908309583950933200573314964065519303592857005229225189301723268821913586954728679922420708909355372610242610464523325197930564789961877513037901829286029261195172138093486030087999601672384714224282158441103698953177869957785404075522197308858029716521028674248274261242595747074460624926206169643687537194092240774647489458970370135863319119528070581300233913824143250904207298884302145568314882015811733597748955919283895336188392625206544157236050630933966580580888896001457626929353352944617813783971193297317425439221480653477911847318066069228175581087179887434573151029642633824218760793560151540192126369187747201461856392150630421904800255809339911714342419712002392367528583769096067490678477227671474352550914039123853666139997866421921570281326595278480452378970262385807441617786028732162946334625556580424999157231480942784017654886189822643211369250641687277338251910345906525603735093947094616598280741652077898006123028255035102370700758429083948675490869776078874851206758119562360645618029634821286405501249225703237164748928870062160082791171300798192521492931425787300626220201827646561250601266568465795660654011916881221155078375487520805419086267950866520471091627931729794881623487569701064244727002616668206095165563132526144077433804805360408426371629367676195598621296634519348584107265350546920990486371630217506501590605547737594359208734224706555090128720746172340834732094287892720740030964098694009002703795993388109098711280074797527054491625897106813323854355418901270503947294516706971989340175389127757044617799444522444541335252497596028384575208719454432153699529861633727898903692493666914277720407849859963479214909523812792065063315562943267406467256141908144056184631041930407015065154709195530288385325010891624035149224305140014070625435113072026042244385456077668540886976458445254661158074748935112495042826910999010867257293316241410667933969334065515613371059525537311072457580692634347071014685609151767782744529610995257111606675310624893046281253163612697126577647083398788006484807140775673197986948266824182180265099817130132589577109877408796726742647799162554231959323018403798243259899857266981266263005069523514778643217575278915660496508857921408614837666678645758070170147499793638627431998022281636588916603755827768563856535232837966268194573801987825302812158555784562684056899248196823670317212328174996196668009678436289667859530334651160364280104197117170119144533117488451367752251909548752689166422426237874729613126206451219216145605200642140063330347011247382877613547747292252132294039694973276333886303195318507809521715769265456162568174562040682213658387383441748146680180169060510876405410512006050739861791594068788658114313093165120672610833659940154494898021219516206252209146981241344005313544129800254856672368002498238002984413415338759587079651403691607921980184262887834483323578801852673020086965591570920758324261695907986519344094466631674101294175536360140320762619310246836159944448739487509782928147149799333523170174629120977584171352881548186614741231767709009546738159941934498872721439458561653998656050177536677052301960593933903321018680190994119600529942803199645088502168047316168413347368786608375556971802093627056454173191702131418097531957894461042531567008805607047741396000893064105305951065108304590371365259686510598288601809420308885593217620545991658644912488461378287895378268040553744530833098131345392699844644886277307581850311778359483583946295490003102164437498407257012474798157900161440537186680573520863935841370524939291471869947733698546587980427873220043477242613172163333307522591647646283062733666595468448063153570941067196051202529536413726716014870294619193297931576186261353276313062803931813269590091540309282791462139563697358382187739362281101340111351315661935897811157910505614352816507557819034400631237604970058642260249355274218534821357102774660029941080671468890975803031344187205935542703676385124883938034216493631078934760367330644876401220751011370549437784240503715476843918204046169790952923628812208494174810831785743364687642057428098631490302915853235789115279031272091757713095691162670180747861795592757837916844019080984144610419786710491210620461055381784528753225097713190505048182678404662912448011518640412813763129533777548512429286284278900571040772871209253040985212025568471516887819390036585888199904049300342448418932637853841321369327749666935822404995564514323505496535897515151044232752310776033619737009498438241109984598890273632025224163721625904885366991360294863500337943983993448008670599382527159376768178416526750961828012110676071730720804157291140792396978323032509730969946156393951987218338658618360677884259305182951011703189959046205118983820989990310547221493915306588116639705707751561279443974959559568197343457823790756626803029298700135521150229796462839640578563536172799295536333882036223455285560196622328048319345032640027417347359505356821138502661707009881913150169413270775220219368628200539996943035772529844534930161471613132048487994212692063456389654364771872619649610174540058653303912947928427661161170475868051981311986538524585096206271642931769679447720659543980554868099844620600335887704558137854527094384838981189228878028690174063124337309338486270683965646840308377075403170131725322721834566208176596191305007936390487491825894296771486662790848326465912877626185636829345015179988600005979107526114378805104185324788178553017662766360133696575796821182484695731126299870719259257881677841480293841730020271488380040948530177732473289282603737353735349467531113144453205500311492448347691848761221221290631061990868040118041512591510521313328552868230524692336862773000799646130802338195907989849864274672690983178503074655431036224368121289137751352356296293593011124938674082205716592430506137345299309503818797127303638834744710380155685731667333734953936023835983499681007561507292458358289398605617846336616838342012845921122675403355966919429041242173299133027589017152579489875555538274376067039104163057799241982699090762274652417436373379301338515557183206161817586882671434494017284810866680299743490531344106901428076101371375363690640773646058219091907427931946522959980117487733780574994762446427190509003704879897537909737161311873908574002563946499297754921899274864499604916097068648113090623864173363505924900129395594425113065212167067625177459116870579564288152038160818844191911832422533654363131359588311118669627261192271770226705866659574529570455351300685200126334611654218677506070292498632650578119001730039975589413106722548136929937909530745658255780104316959339417719868389838269777616401311236057091214114825402568203442680959588033736590196047865688341847662997868275738212238346672000901684089474847609988510632039327594296515404133121793848920795801037220378582098710446785496441677950814767722838760349759293943153555190965770399062468491872679059670733045484840267499595789452757494913605921228549416966802275606329381188315789718703495411830152814456384087772003067793252790581368251931579713015537420046489058343054035132214155914736058341062628601138590997154830099714401072670819077073940034993210330129780288113982516209671505706567582036820926105174884201330785799679136293049003400535147168314062368160984829720967681672137747660598785704098331737011291012948321970205234939195850214957291439344608259412221939529816708723428403932051296077226130080571431383650706487347562016992296236999172437416250559740260077380266233474786591620746672895231776817906443869685298680542053596755198009587535384186736731037599210100707393548299406646628673191815897200913649199213726903725854373887115790109114782943694183735304430567193235558679146006560355643257463808724679437800975806566553741037556318598818091252699722585995616040733579854585968396499197856550041411312229308075291151125592134519072476075654839740323439978189325015148145365540985640463913277054415375832760341118729584781361091120857069983116157238595176828027757108152858345319324455176909280018123769267611946226357959794185788088436458224352115996228332386829109839552291683645409732393717477991375105178185871820879426419672246922312619239489527269888227717848664880624626719844400182257929499187880989253742206806894035044741921702871767070277019787479837308079368704666793242749691512448879013687242151258123861824237591643064880830713168166736878002928836058411631533022755852214092925434499218626558662052712655170074398012638315968678171271993625719630885631870215030514092899286644304337586755919850548195620820254407792914039375363565151860984496710622893265011038266580351090373440236948939176084095677313820412576461501536210201459695638496095888412466987945646718981797062854702245002087785220218091969013058868274018148262788507469551425522925317587731767563654866559076980333144302370026501589094834202119948412475084061973753750206544023977609551178060217613522562491411958325480262799136184685841452742544223580569516931636849717011746904081501634050015057703998042194032278202238798316283398784774105841587866243585157602132688040657415349129211478880102599281546891379689654425567339423593176087209672917508561814888754228289668312288616842736063675265541880060806661912415058563404894172567851916049703532880037188862227067981913226145679922178070880530703668892320745036579186161156060546829180155073596462196017231592349848676981164631214476030070385880949088213596513554056336644301079636612692249643012969972989440590528278365677695231775008042819460506180715379399134127172628796413990526453613760158640839721660847869155447873897269179381524579859725676551755186957823163826317228229476441568572979886723975651378119798808214621228831228206531182967861295980321485980837741065607260719588723022550217719547034555144879298330753088758318174008490635157427278494155349406489342514599550497792942311782829175616200384445000411524870917900865489581626293340685619379551905644520286655462323865445596897899446895152484946344403088627054655592100740723874528162980717803184568997418617934762150807327370644567261046917810637957623511739193743615919463113373095743044356242632114948299522154595084431518996285469728459713840290683439506394162236836109587578307290697402379151161734673581374720187546604621271335225914169789285771611862831346569056271506653789555291144771740301127210032467051629255855761295360116426771551212656005031266938686606959564622172469481032206521255522640632714374362594117499567380991607833832548710487421372108357459084665432946094276248640966769777970946988943870521574939988879852415776843502580975910846108057293168119401360681983790422457172914760507554512252483799013453843423148937425439934678030943788848514761989182068342830339490532247443474527224176633830013467125613414568924719827197080205749530440981225236620926248752198742503749186004713932377042857585859132144704468522953606406292668440108135222455597156693825648941773820439008129483618258873005846744794404226696126030813239772853032162717698956229662249089232702661854857591555368497714553638687535239417104211875982242912588060121536270394780758315437972049219172776910456080902907391452217073448969617278323620374381393040413032342420811433211223016931056531444070700198420522390376913260065221763949620858804028911938247964777295144004541780059204329578701676347733400861722831859534098718057701476504235354022746326331795815640058853314583994336855060476573188797042391641190791706303143868464009837104331662069144771927886655539213979188858519589099253447163293741369754802174976594098059703020428270477467572817822525839342989097976436198556510401277899978965105855999936404438214538297042548707173493954259262150747724845944460112435401610951553439042493927196873213199790743162183506435276051925760811160413685248545300294120373534224799983241763818108202564030297548983779535431193688173164113383120921141216126714363986908415042757096028160823869465756788039311493868639171188311879741773522371242811107941823758608371768863782447371764233718171996353748905578283961173334241598990005193289494782629141053037167466623656852277926779780720381847597427949984068442941159037122773811838062593975265670104691715953222531422145516049392121366489227350728142749318933337181224848835146053319425438961811771178442967305898317344216007607457033605999172768686674973109920757520196668171370252207635969116172925860997305457744425170565886606422038758238071833132323248231465812751901699020981050014041196398938382367112561534062689671743348715233187810209916769135763682217423800431194747130062496816184009323643368282189293181513446285542800084874947181648052873037220150145729298396637085414820001879777731749564025654554500112933126895326833602286740473050380359547883066021464904698181742604066483615362102509213648179002431923112680307504066768619932978845884517791716684156198045877752856425262309341778999072583796415229389314431196224910498285016970884074506013813873036702254094423370595839815915098681034002642639120529058678488780988293415492459672876182368127417777526420144014132699592878735330970854273000260610017688580669987356447565832375598249969361381114063669977664420391602946671828649028274315630428797815602540618955110756455368368197591486861499631417586919629571620095598596307362923493465376286756429631688277153297748072100504733745670974228011428939698270765428757006120926618885931910913150888955735567726275619532461495611693660244526167397058286744440466757800111170190015310359111030881379148897532759973859829320200133528248375289731956134922995766177291169466632430919901426459669206954657673990714407205318565966894356516895052957671829247095192196319789965293339128834849731561720502153714579667557557452838446243954453473774559505168226157135821390840654246695231096007907777308473101380463505649299144073827070025396834603371255994632458866032682183432618741118785344725667106071543597272066338264113776306244760639650043651606480009628454823055796303775574540636951177958365500036366204761745192718058826739581693037335117152795858488397886285080977701269561466038503244513062890645837631669898038853448625246739128472164346309216027622325414762753905017292589567010744137059498641997334487373058515264329562785374443171225472984182088102896403232633856859942036129110250196789314300644733831802106737414954556577772350388892780207519362429444091412996599801302077488758619913415100744610181869948582321179216099328669976084038275101674264667342830133673013482685469652777464983261531649418594233250703892559458380862886523098881211069414124158828564685567336359904387894417735064243400675657418058175271703527659535901922255762418729762371144161803495863124834908053597166815602780727129654948692045058482191424060520778360693263905020660638228307837152697217057813840844578309804678083735433567636551658489192493888341596658340584449459928960583033171486336207924364864972411037857928357732716367552759134400529589735059944111109157604263709262242509166422705527168610486787224627021285295295604662496469742414148081176901734367285097911229645350024139466876125651204084123959302226054782392930770049603968215055171122038901842789563575712519579382451026549117859179232143352323413351816713302948704454651853586166455143728962561126324063906909596880948495386964237312152353941335557430789627204663713013913131747945661776015342084505590920821402686474202405269568299544101379464287094204270296915150830249279992926642030373891242455418392976376215409380633593195933762188591006681981424339747185272587214939892127889040337022102498260674859140663767996830573334824100939523709296087774197305993060048881085270886595728072772842258028326161380487442365737295443543982094486490958240261989344357792288838383947583491338462984992913093009565926857820879382718440635135686108416465949257844305474035519956128381284835109553286980683443252832511985454349554871649812622349099704057677430014292438099214798028801753254998172268547222715728231055851996541400648609589049730937152284900680605427436412806607750282677997854642947468822022270563067539068446814129869038962033845422493292114435064702544964468218470791704586329273162728968778205673768147499108465716993400453743956128252074331306955567272459607762853849664921725181708248950212133676210614565001153952657206903592535500653997631739338866560337870572325013434195271984287387627912393537626272508429447834517956286664082000135635668141088253976171971672427225199895527413453776824567098165713211267420358018771652058742658529541357478447904516516886749332699364542499941441676368824981194174687832803314956776497502458565435131909345143850957520961197074648015803511227283387510248743534085526898955306665647443090491675244594541417544746812857519768463152792411238804448740432236206506486457088605814158802178652566342497814478023496998418041143217717691152236813056956833078488521245604488738385175042928984170261440212151017047173045837424604501094407077442817891988104988442213376910308093512931817636825917960161855876601667099682147569321296039378282366336690320340132739322512120381956823546794013052733769431811656375888048036323397067754500845592793349647737984188326045055873249268364024419664988765590343610136394681097315047707104445952170591331249880061971716586681988718849017809946057103003068855839550207185421040292127591864870396850488105270791031214402272936780955194636794320774260609113598742943897586070482376111536618127074020779638973530299220022579730829871116539702890614035140476536057651591772293766202349629861587836419869479653004946954697485685679086420277688170975653648738119553388657353063318178510363060255426552847569782016773460597726876503062547690487032231898606584411376190662059647008151684581114324937830103899374733027381097431497654814710282754694035969427387882937774949325322633486657854494371192313813509774970293424232225608337918871567625469471931441310677065237641120313781342673280648815368849582784626187055969436816595880292858702934919814694553199814923622868005698123997498688844868702335430734788846031247656996161324344846325066923204910784976659856782958491986850553822527750530254029973887681613654920086278874137364940141900035370766433357184279649655774451258150156313323600679098917475686095997766927477932099315891613595692155947589262190024122638823833926087738768995275058334780784053944440453893025345399219529876831492774220484321723947561901079031407818564821074929523054612195456616368563278132821892840799890078688602717806048783495395372926079847185040257784166776541538941015157582781778932596516677253314535333388767297317717282621643638552271860582005860213256076081227184429502208475274429060640902966233066950635054613649807937208754290869244520064606147037223966657251550923504559215717181597581741530952156186040038030194874010550817043523120002340647848481941739491877247138564249253507295856891008205551140080705864350278722446795445910442024870726334728659439183618921339149250034703376299461793818618120307312554024807592358665183809601003331207461961948740194704724380582010925715660423462623194539292632280453756311288293549865083545304426688932789577303432008671235289587423841649193994490778584229933611126827483573530787847047445796424934319629392051827950634731730384286387067429242900795910589240129821254743969241416368728840411452088163532736062483353939276404870205706504267866853652566380047951313923175356400535467590799125720559988481112154564639554378525519398556667713460071782032647654372447429224558778091085755373816275020724261995714266187950151340590852479568785381765106148721706020737290873956153824373127415135502368361621173228379254246946484196174565213913791977960595548349685634986464240924210116442810405867201532379531289939714644933035975169699893940218107333645455662476062323527058783527864739993739145951399774595500405709796827949490479948409049689343503169036169748268256937206019268942815987113999067827454500115273538027655136518976787308100244531610443142174248832071599999635332837612953378371400445575059338154379087075125802611123090885614799995721682368028326045474534768189515532410760912879586073638835593870105600174459663297727530843073303163430000191169359981677572086710707683418402396722023173792457697966294129240458205411407634839020224954966361972907277702412311223589713895318536497053652568852860528633537492166960857542613396554491259580538116166329880472590265073639729852465903711953578718563699918890867560870476920152603008718682242661095263937940295973417948055946916858569252577822861534216684485653838589001821431684069267443143607283041711915167567372112735520036656283812866016894790193885123474701527070444152575700985090998356648762111924124241943025708193678810376697498835610547165993784336012534213237432130439695280710927962089074400341703485552883635301311828481929042596776079554330373527157757072757578785174048061073392741572625562983297101247611187147102477312411657052202205288741208932779163973113423264282028637136406525671215477482713245631728796987165080965257353713534252867689498759115380812073018270619759088549229454509888648851644882602074140601309222091537773025885759610991159142454319625926131737185060788696642451203512076165913913064404186817521428257988490540241419283491338066075694322899120499136166233689504223266303926913082104284356755316233436638215631726175892832314187094035132245687324385871472917821213295512445647344311745912320423208513492178717009461615772210132490556209018355199952551923936143766828472606625623680679130340114319521058805566658722447855230700933886456481008929052711815574684517462975675932717277006551050314153246608984962725723912247536642134526286965409709991462176749344280216337164391743946923130892857505969476796616923562025193690731343970041950246223893276287022426578102167544455316478222192443529212120359055249579220336863078508665524965927072312280288909400284325119955369004361616363713766087747668522436026174289438712881260803447885334899714092232533911804546696685484391548441445008997621606299935560702899732643555299164019155071279701270689374702394351827092547256956026336383325797891415658936462415569837031552491623522549199534655979569063937916691729366455064083366395734264949668567743009805773282638051785964717356836728197656137313309832133530912825333705983296450365061097790374850041470033159479800691674040400399518786452764840827830914233058352989651365842461489034708983971852953095569666168674510070745884720948833489631698476156517968507521838379257019853880901386018493310595466333459231960556937082518215057055184438152766283361669520794314508400781953133350333450016052402197569309018689014683709782951237259395416951321791862888338262178946180173816224247571330454112536381042950866389787046047811419190093325363704529349735548484745570574588076194312850384817480624653128971741587692541666653721029677749277224240305516395301246438585133153748809943807954756216107555453898610619856512368060471551371787898900849960768898754926552106730946229260103185023973366141389670733816803041079987322548335091653958403421914950672174226766186508144751008150571776277373718326583211262195625750303031263592942593322081935811470175717307069365359373500651654680766012456965399774426477668293102807583382301271158183051758761484862528320167375144773181147074252586680746880514059280613032339473349373387274160115337517408066532705953224341718325851606205769866462274652652195356848221358113550963132136907335018112982691032623304712830019355736035587886422962767122445043452024534710665233343012975662330123031035662116388205941299586675639949751156904432142758993990924533678180983043597462281131768666619995612577822594108413718123012377898780473945434932540592707825049209751362942358542772465458905668804121902774856227739540439762476199754627628410580443536537421762095236936746831286379494076908478012167893146139183482113505634740275150046286847689918322958265956340557824242692574502186265177098036926317380676550012546692101415114766926148874484414155393916480089439391885447490536432977376450056504713293274420385058394910526156905359320578900093930992227543323615497810138148199530527362515002617725744285565526468625681966089732547039564998732320143330477460611556775956889178544047651679809423991712773621195857464161909170154865334799887662782611964499914526602802609207553181996850605078705452875578509501999072949767811157613506673521494981143625509988541488879667129117642549752801414055738342460524862795772008264706348673082430011629320787108425162173788866771219329131550891214128575515906349899396181357141131457874296230064180978963059754851778643465591585187475952776590060023941979049015757674012995379819244101275491901517920508681597694468338867919384269510684939880644896754413920258904361116210879080857355422816132114138897821081316310993474483199547581175686199524013977027503804408933992360159474628831692934609589985249074400003617536639659694793691763532446959100355553877144685946480167776827533671414070095440511416440175517030907824015261290639141846557946601870611877591408175471028801159339339939230619348783659803298397537686879635004319220816424349053439908366209281154532118840787455111780285270429647373591742588135730361935527283035659125367921083089358206071444565802355632636786558509808858807836146157584669173724888363948296518203643862222442753242389403961987639132057491336681894890830849697806411884677944207686640555543384856399258364419760739010037106477016031985240916222762159606306500687821271818690361958279735838853057023099609252533209735785142272209235760536561877396625276399450785777071579489253869493393181704179264313524028192449918490166778429638047482930696489754126310096202187058241483355573348132316050616188673863875746412291514759217926539230527152353034837678945810560864029689441730443518352800123713411626743260125591720521144441080817375374901132324067672637328191291204191962816946682434620887439284387071827171158882398455823390153947486309581638525968402122136205098106813557637417820949046239441779205474725897277079698480156356180613206116283502664267632845378461237990653260433185740864118981341148977026407339533123038548158213466111538067655372305761003929149737212389149696603338094851988874869163384978513430851008152013384056884825226615434417935818824992806568821562260580860847307634405272827696485183734362782608849620302217722326327498903735038084556506148179531085479463770521754438478534385405003097746858095776754025562165198991462865644484969155715258784470745136346603152304625208853221238514943207034148453870083774135885293822071422118058594829670071595624697164895849166365009580308800158821705854593413515332144046452407802056327395254733730010723785376790134358478654446056744282668230246716933382967315589146356282733491183704709982743874314492951658928327642655708206016629500052422058034380374801170266261590895190454202006344478110585879672516846279509027576749615619075218778977786845122959689060665313974098616205232159472279530211337981465626442336609952697060800556816669772461335146101852763801727341930870699775670680954496685354394180315906720713221826279829568211360279348500777474888421007434960041256317892305163626236367907417461126021805702214131204503307652425289614217595416195780945040718755307887498001844266373507080861484581557608095557418032896134650599901733109659517927547436479149285263685691658895710290320751866919628781218428309658565041656280664837324225881147522128480496644795163795179842295570331142853006994933708347178424111345907157404953416228003641821710321368254115439420980961951152762618574425893635265798770489139617249807495659779141760767720552326425563957371771673718546250629560918015581744026502568462307021984351655417335851445050486303450236901729546011230960614184067604004855612764212759924587641605866040306760472839579990465893111630566994388980279919598632317584124751906465839692872650540601222923957033817539238679219644982935062545045780641352794536822550201956220540556438789885428240315171192655197008959050100349822598304139625915428130083729798395997281755170373961074514260027867066557284002483532680211174074513629345221841552382455229533087265335159194397343346591563165743713670781258360227179004021303046981196658375381406917501904377001946174351316614132802412236421073717187219214043765494870545771714187130651333412993531939866489805997972993217638294548308065273131973732972402719279259696927000763028179751100024195729666976941426630194410188322731164852036406415674265224294792157141473043261377585018291890621992485062037990285429673145852412220574552810760884125219113698773007094682429878118231399486257443143844006464206292315743338208021844179511726560682899778789490748300408449426948938044537668425400578217900278847827895155830773411785352280289453343477973243383469719030101706400513487672024512504471552274339178151606804788430484050512329908363638182241563368437915778044969210221347676922811816299398038795612588999546329420905102292191719550360249872191765130341471250791608379505753031284677304665186777996642433176800379643338964297707572204844179314907875828954351342729735464624369024638920223562660136378189455007477574272337319829857229266753273285166464306189585723499404849116135718030541316041406405089978815729965634638163689234945509727365434427775995257936653026294058938270408255508201479107445448625152884457567130846410156173229906866480977058618047059947267922501986086699959774558782500629448449953718828901973122093670395672630557819753789554509273735417349539205792939127341343614451204701492072667019888322877500563720140514399537084694696473430721812896393669887588656698833540910556830840203892509157324629608381051657935887257340755340174556536905621539621271131354400859502957789313802932535630681827603133454798533164245559192162278408477668711985361996555813916609148911876729219219072080810284765209735332827113551292772567052446972180447759961768375499535402381479454233466252771132039070073315593639553282546719928513408041935390566818143845258749991188564290685561895696261177311413336269337217450916000699044785063652558753198587645637405274696612094745023315875384211716369228890703929341356026441171553962446475875969009694204636934643370612007952329471323353263447295286202712594842491430472850699486356422334480427711450767927410224494948139948909446168375043579503262924820993578013588548590095415703438358484141458598595183611367081998031513263995554623722122017329103774418848319854775095371206835830424908150111778435603245919917084492825437793048396705518170826706108515962144089133957378696871045342090154611672203854282378157976167923356376235623666189204381868546408015518009185929590190589956014992625958263332713585816422556282223697107858432323158278406310334011618766861718724773806844005192873374071480224985568515866970062506627807538472139423898513711854036610675060070413552430239259495305067129476182401202656867036897326988904965381572904480226969623861124192862814838837408499833433272634121553660396352527716496379560523707080940498818810685391191272018498175905403893480417031447639989714304956548731704556960555127510835231190981380315857468904677170413476752576072706581385095716247422379962807954553234021695822024958763875583901673068026634756043159495124212331268412239493941866213349260727739013287213646597213860197233559063522795403743003220194602885288224132538993518267726774470887987520273392798222281571744379133938311234075858749762496902653742243947157413927980159295065593220255110260573717228298934868901117450789697370648169299369764523266038991720428743606015574200700058036665156438130621873983278444362514879773432872463331085729149824049212824270548306778756860615313636888723856089274566515284915634405323081750430735198834107653967928414908733476973535153390929673006596303571920907473378975098207785322273705358627557068286009913496794420502050569160860978738571655930932223255092801635244300093832537832982893671502372407518820252957552347990569671919220682657910310499765859789694023393979800735202953681582583380163459987508026097916073928092202603640726865544530796020375968598012607016791155102019384081350850692502219044622388084582336952722383831015492478006942970788462155857667717986272996020006757589045228711831314644764720461891513769350213369868178718339143380973126274889518477612494433584412032859317936122206705493289514635183636842170229936614776833140737070478035408870880580398821452044825104282145734884323223799279413824299724455166371521886696792516288371910305496582114483359290871129389207393761544093877034933290961056658408128501307915243936516682292586608475350894767971297074335117331085187936663875019122853005100500008109747004612363579992440259448975528720807212815718448875874706414986380304470387086679425779386557184890303835620291513727502580639540767834986603861833370586572465655041576578341375580945530728785038409581745752828816383383157613767680253960930536691162060025730553262446867347693068247141308987686547408251066692729518517005124486184890888249203439062550916803339674567959794708706994886246077581888455991409733332564717593010690103093597239409842871124861960734423522095755306528298364811762092321451500855009237042503876488048621042905190760587854490894154156105807844209864273988961579124958195052739591043710041711106646696085595180678538421493697781836365907474781669474913992444397825270798166127088969268439352697835036035324581029757544772625838058997318736411427638460669130041578437289627872342164068876896007277702560419078818222699744487794594898309044132287067510112079680835032909666260998488052837566462850426788120275479856831278553162099433580016544986614237402001882013445259444576661551988654085273184801674439982618039324617219715414457092508830118281004182212544655808055855873094080701671712133918773432730147871220539720944833636386885040370557032575497933182842406869340595989857718901814913708838652996121717052899449755955858143096929934147585342022001618087798995934943408685507309209880662852508562880510122681398690717418451823594934495141188613060195546402227761096033992988974021094304424673835563437203319806523003176713791751727213312031547884220975607695645483089300077873684435959595172605052242223309128742811145038030627899653020068244887451755071418156792960956873069402521351813158144893597035160372096660074195079456610013215289087469958417597355735240206661349933611902828953898161160950929121208645908749648974719232337125466832517640173919338417969657087751823097592228499683919797590977425622781873373935269606188283498805326533146251205369789658416350595450134433257768564790363412983968837034217347156282666409754344664885575896026940081147722015985989351420849900616497217056841602108057375216640866107985925220168977642737342813693758066624248537408878847201813194764952821516609125898692266971148034520913538554793947088308485928693783510268357338379902706125323443711297665622289804712710051938157463029202852543312385608478168168600337064691463595196749613864107652739264979282951426585661942884549743752219458030758078526116302570566573033820559471910913893487165814248667268613816143943901640817010458847064370233569678266192770729868734150820529725121338218347587995377121414132750581510975899960625303057331801549274803043186064454091538962745770513655828416314815157541527954165780665415705193564696704294442894893688854277395021917458649790770035962251993585991599544839372228724751736998983573562158795652310990667350651723525890021864647604820098422173869842225986032937000347369928209740385576864423546157821588521950867934355250137610289650730205668133504528266574799586203465452986188092563624871024007023597343352980203604420498861994902220716580083043471768915367476972913404326326278098369338824477674466835837464387162482980351070526714541586513319665467474013644400326713226169310783143858076582467785506224117235365395391217915530663583891258409109535167799944084871140506848708441559762275270788296990289597508660750610039212361751746486128628971706574342954081118628355018076908588502928796812410320420191059512828838235905982457176849462257859611918710566825821153334769821852787895556884741392777168539139375829733357362650021799663720984414865707793134255265030018623527974827365289256641503867635081666738808459537697704830878274729626544832546314153828288936041406682559039429035555582304889963911193025409026033646742314269586449879424232296252786221783894719189506862262401638215610251413931174672530244933763862802535778277030597103753387469685483231061682459717034218561872288095802568199340710382103166853741669106781705230683107786234901310702306551501660457370459673546698096084924951041377067329579265058925761095643157718907496169379647023451347717046696441552932663287053149051372439948453256989486752140516767392162055609893861310549014839377462724065469251543515891050695623719501255577625707860039400774399255482746660438200561360201849929432441427402036826717103180937598048130117790200907692595840087465465676481311304980813081201727881135678384677793714342796529724536836016432108139807261530583382766183225535891454050170641029951483468965425985322582791329864364035383447787051730001626008313598797641127476078631106893074151075999171818612956833041747627584451908177145799804459018075083890499280147156558174675390112134461531913435419791013720973791836887296080912014217184535401993945142878841217955527695333535796653892305054835256273332354865425039244230728686004672398626431233721434416937297075670972055087993345947340938226415135911790824602163907361440328366529903257269121765035974800193772783083901915703073071155347711960105205302993495174862606936340710244615429710576250854133496458389466222422977205113480327500591213602276635429555991289566380376522252503782335430760699801650603109554785835258282598417367176772372355716087571644631621081393130263397421617427037485855992430535923933103613210712347334195689178702514922361325862330234695395746874895336354181130498239267001547828867807906900717106403240760200457349467119500474460509544315457266512858946305260901200229076172325246639581151740259797826248569356170493327246630231895421030461237588414345715582751365906828655148062519942588766770409056563918051173994872474706123801900703075340313176961857773882020120097951943646300720102575548403943261251693704835110635882062738366898538610696978848104451338993341878474323049151735785887499429967810190039644142956269718439694721816788980714865669633244511999785758938978840766700016229129522280778698767624990402163712819716853007044425689618405533957266677903830054758273930218376439104372968208971225762597766358018070752526874717078152539707409334784825409610620803942005322228345892621795372974586232636283020931140014159516625996560612505612620120036255841160599482415145601555475861225452551012601798061155955139445682412385531537864481440777539085289725361414685245585700487934376018208318363677142859041969119038557223745647875080109200747785339467892941147079250686649780496849667670554607193394226146840880588833350022534292946136552558767206141020800131386728144820013231829496127609559336544416433698189692265483098342907756930327864971787524077799482907212840029517490175324262997194947877670412110855789092122227366011810138446466844415654039441992564641361274391901123079540701613812447893289659451429741698564947812156093230372379083014021883441563762485605465428084560612962358022654199422327494243807773908120411091675408065679760855876944822690575916402869540088230414554817439982468002734775149534519039477794692066437234689126613791798575394013316951131924675446572612063012453187460434290605213756412745688647725775412614661054752794715882015376690649841289691589559666132422062196373892929298464017955632514785531321410179586549139094454471715272396915464253877325982890280780687934890425235881710487008189309845278376882265791481674977543397852356178994090282623882254497867626163611637571844248373280491341255013542384054720088475834345305356745309101309522595662877329206747596777333438779685063421642068722869071927669580134239017181682252167832521550678294892374386124781736436340876930324420327321155054811951655156443478915604149606750467781795940333115879902062674280420084805479516977618429118562634587658894073817848554627201876936054563640170507542105278042179229640481349895368079089349409805786824273653224265300989568646900988338686697989144075675309057710243705015252807475472445880815264409019627700266333968475097802537147542784743353290752609380477429713574383706891059286891895329399487065245762433043831813574843344587624303041457578765439107173344794053809914807651019614492286164609344673799531561676651459271597495098211180302219278051430797131876944017181751822433918259450557988183744191763671069620843527900463970444921363098826486588391213767076948310323299826167885595261791488231530701672987978886528122504387786892282417811558368988518769352675893940741690475148667239421765215832973711480921524937197380844008513083812514925098622951537830117076683378054424546175750458050094032136533416787123598800182586875594851575119839108194452256683031623073538417334050245620285649071612480517290492455757215132486204953351476982459875851735280761270888909648991886667345102390968921418678462967688567424807917158645426123559303881999720024741771995315067542718834098098718764531477262921641603481647678634275789459975059898031025343216768714120049384669770234779530429632126290937393285815084669869946225197654445296705153422030999153092265585080097377164719733495210625405931764000842058281539177497007532633779088603510776264588530710025102138794575460779325066391260111342893142499309745279108874648485491139289502944471282477021510541098302116450139102536508751441916899289568007066577121634889066151614604536411017275164996827555307596007190464573172834907023788060799149998603063201612474548264388099897952223220201048490709111512124847875429238685988273910609639068086149996824959066068911532464487232234525044134659706979987311243536038478871216450947547481424758116020895864409329681437993477932661850529151426106206354492011753560959625188559447965657145027604768327724509970738902419264110561580356450650558307346384876515154585283681303079221352439176422570590873870682970742295099482447925738998230528739907206015563548479985237945696934571591510563239961360995957289208518787164524456098820906330441906051987174334712391578384937578901077653737496426050052844677618026799663485654171342214324031189021395891553658397138555122944102225185036102719446448885632212988778526397242442850945117662986428981340987427726329432835759559086034784676943743394448490961615452942282718424353050432006596825548968699511948069222421367332047363094550958090857898314365247337339169209067840326298454965356135989299483234343140041744457346545865437114225383688755399541729160980564431571558527366720293359453932827202384362669520813082598004742207719997082792254687778754957498177933422225271611853700269916351626300165607297978522885215328596492695362711524106341615034283623126193963221377679461872210764873496601959417205298754513416781939435285262830603658095308164840804296905324571876863655957333645931856504752237288893941550307104352388531068728428293333066208313423536043914955877231689105630280176366433311264760332884182478490210919441850642875301972515542475863090197286664520664276520100191093483313362084343064575517729300171575109232173090011183356328434876664643956540056153813561028646195344506805752326710767753754679228100957827350290275417107057792317272743908121592605077837674554683037118041459995246583308242893503330457718556563773007291921360333315133284959674003034901856160280035638551627420151132012685435428515136162638943911270648828926427205772809228527596730370290832537437145298286761047530678627272289959828825997267050933418190769367414381780588568302072824831202625766195801756514033783570742561438103431103586737918986418454108205549419604074511803803713220938899020424926724098985258818477933546552338923019649574803424073575689845786837654957181195780864107119098827862067260556349956425654490972170569862505034840627528510531809020853155758766583913350491901759887651595267378542843274672230325786323111008934342085359594591444189005995458463616913403851371180960674742800917514501637490203559530572024456282756948001492687182055392734402549881336729542193393349258898239549959073687861991886516002325247299595176376038092969086220364715929874945653444885195975774019776681785906404934210794861800298016036836394666435949558041868989037360162223409109011680562226335521468849963173256210820525821786931089086645609498806363814592484079713879277691691761421031288804417822344831992018867315058233916827106785449278102543705132337882132422759795444440572392923617416207300794105790354158628897735719122472990096136762457690584454042411176213507299271103045615288655748299592771436047717789740890327271708658101424625408790469964407933113571653658895449496264610121666796821392714558496219793163504259687881244248509862048778187163863840815092981758826954390518832096019254873755047276316572736218883827015107015516265131061558435464713990104718487329155583304539772920956231607449668950775957957696736132654444501492508088697915882956241171590923620267625246811373524089412176873995428735867072547392699566756818126679166258476246827004809755558563793992085976529326282747251715137049841292246585588909800632337356775172658809911698019523313720299851684074270244950439825135751710296620500709311957661005399437610316631833878574077536016905994698016022670578277386345814478762572844439308543684325625682612984502216021635332835674036322374201533283351787431377942865061770836510975109171187255396020668735823379138651720630233333342589950735652157338200531157850882012272308834299855250470383961397311096721773592341585901873908164869529387805441338526023392145675598304473138164861397473191804381250808834701264668915019630212668086704904789856315854299064353814956894282035321692574855475928903960670056861078428565097229833826412754587930836919727185322921041068503610527336827799910867115098458498472554567381811386193981100756662187096471081569095302017219540476105551103237499433237329752546607398057992868230784341424967270338953980190814700469032326899391554599190615710958879780403267242045957240595792738442281330774432682759130583575098803985939130854923140465753834670434358859643817058312280477140868352427405881802069566580465909812035365659671249228216816299865859631410635702774739016279142151920802267203483376890809246533033224662923715578647945376353403110027099429658596924786539872672735460319599863337141588374993644612771761537769453530070199154158370705731368088924668044843774524141596913863376153887385053781401024615753468215322608262951782787106604151504176864253912102365240983116444159783020133759451608438840308083993429622660225259698622468422034295059474934691844944335267272177331539683934978176598938181944108869195603832795860964513138283216403706046318171567389116717131048967737768219777477683592196377064188994074974637654237045403125531775519698011208088081342046337053576272502110491440148232887633430674540887294806132707599173928825826373652115305533999468301241799842456344444913684126579297065321814856784495697553913577203195651655563077134338149898722444246829564152775275651823029766583036393140802691363437563673797946841951786358670216786527088928869549079740153825925947505825599326272381437539131610790008801415999219130490041304830921885019470010174260253496743812037724693686017190762220338163240623603813225965679346804591926357855180282461759002062886014742704320339532728497612607790471291047956217436794421907031266412980663640362033370796601941226429457485345239976420212771576460026189701485542209019376244779590295986226988700203990521021237699864775482172419541520627173169888389492397813361812202914389612367608443107215463249183774677293960958902053319213421365899331105878879319658072473483258907189873688718101709986211325768210169702359919783788821219682316899011269393874867223986072282388130669150754224572105119445295164868073855962673310642065665217993408841749878970042833194799719511883441261516006721118362436171971518337581809665977521923167159071309666642764089642743591036203807105953350327126207644255168795758378838978596805194112026767066530958117630525138733176225179265233182779477526503250811294129095105519604891158908116328251033061573747142450257479981685558296856578128855825063190467816163356572431991338138159709545683086175305213163537448901194877104250195897949987594823052704470464358232247298405665136523943209575336344261376547662745461166003068224012115201401536761579774593926937412731982234647215461999101834220395843313057656647221188241966941709538546311714238642657783509400373703142888962626633367574521634736096086772112448782654770270737999653910469643079586472641678347161065332354947897518120170244163021619343094654180849101168099104151274403616385969249487793627328241817293946367156741848240556330079293308983857762120079118301789410028068699503733476247536284798483666057747534358398429944710893877474399374984201565050583236054403645855739644284996191093878739387421424863193666075411387235377913545844276863707116468058995568138943872649620476886871880582451180382443013330272905927630176883389351581218624613540170347277717153107705797448890332966645180075575825281313151169496275035011829339531030001445121139692796550232740036966335770437308955522775423777966226029289412773781807369132158338218946845573932912348495854415131321491332147701039846684461849633691098336619895111265359783338030209228476446508977313046931164651003294669201002956261063296882529962202080286280248307898444812333839590147376367459099011512220282454043773292701906532222713186809784577071463385330910131545109027710550723986340186208826115239423570871389699200257871036768946025790264195783064477374257816151601370084475738998988462866974959942910916207548123499167553533538124720364247742764022233604095448281556582826754861435699605705194999039028460001181575175068126096422556267778778254790781025543695829015575873836330611175643371458096641791283676355748753918755402523102197907089438027108860687737386794886371258112083895389080470004557156631127584136578012744587935000931759750546449965360880134534332943546943393158041555063828201282812744308557870826923692042584655256911293799979365241135130972823228139325357370370158597441758936967649272768848069029444913412041761057582751854067759138503552160854244921419494804094711739618169295649671886386933664339976634040442659521861605535019033926442800792168061412738382481961915783848498145487999176258664276290070924066004410891462895341074039248032494347170180637739277036463117207359227796158871841789541295262289520407217938085952900957426518238963158662663890013796620373231591266462841705629908491997687689633679354620819312000579702193837886535792378572528031884932297123803977009027267234763702594070762119439301626827538325087835507491420527277800764324975155733573170118862925367241662897934013819475577516877465655341632553063256096135715032346569036792620928317373138587219861996433043481753653614874932300114744876842330385621750946575541968885371081618996049350928114945860358801812925045138327585922986814653610760919567599969660279094345505210668019642852775760166262443366663629895739245778683124541325634211178318529137198337357736969275104128883582740310088198654402638173604707249377394339744246201088796778028411216021063310563264982709780184626121387954639636000995574270999226545006051814441668241086283024220600634445909534430002919876773769249110755852360753238164398130247723979576091280527663482654080671441901141749170487781318206838472307311058734359608472173875194829577111633260501976797587908805982989959287877012525981714983852632553665660522052523333450916218286544436070661807954938961732494175106182965036784661080985155146024866929286927135641040344578733976348996914214169456613633957807132071093350131035221425120508664385498179365405752693135476871873397916797203800583653853512460263820468039087910204653846104597576481880852692975373862643277898102792385802383414290246431073065677403161848005090855129226385407208807444235912719908891324972218446872801480102374314014676052090248734556897017958914426246836297217346498869282054762207810205036984826770383944048682210226183665578863102162420169935253337983380985933504599338504311748873388216022551522745629695699512993004465113865158064709475183098342401444979859858388745581887317776659972581544673684340455573803562256524971595129755698326893418629614047670179442451255330628911248619079081650706228989714791492442534393894899565705923018102475960947370971498760185219299488226974925456667318097149541856400781751699994821101499264738343583432814833535989554413195274063248309945695815431247025555607096167219420367608007074651165143822241706981732840318492392373497103023178719820159605241003615467488909671784570676087883676199468850448693351662710059371021672038775748699433106642294851890402033184157674941011094638969138070231978788539426339331222473595889095088321004427081889525193620127390038894512944228565048621823250744797179687242845309351411933235707026598237143257275166195399423065527326136044403021899990618527242003391437984166398807216769238351915068276767195457476952949725856023054942944443713139571974281609968202810218888904783949475364234792266907027416303533057266407384960245263677383603400688899050817955321102686772529631600155460077011063726096133601922610662185917679048800701678028265650782116041750516219107422115227315426515942153042978029568891268803431029002214933331349068742908572702547213262519452845273940453424090794525907629161075730151235333099787833280984179572898317046203106832483375257691451079938350285623756221478676774660471222165114644428765813934156604217006034310162237165159579312876385776415218750438037117497869266803515420286989488286625028365681241465426402369518682500281905335231191126470471233228664699436788078856639586879868745740444919960806343799950378393963799078860819468844541834337310606267728246452853196454592955696690788896274157153784972174310881369725474468018926082157538499537573616226471190137005690961451817691091279047842020972981433947027302391009027767538928123400591232317754883590136638842537584020176906442084683555464838862894391363852186191333958550281600860798943605836191140793173010440729057960214988181594188828049541537463735545162897548360082294266151275260860536811537222157168789611631919096295349637247219238344562070964711643524438317603257928355388697293936960707499479712216995049003265874632670130527761320028877237926762925751345400702880696784485203020172354044409395122654145857124939881842735427220064020486323973146192898745991303963387917294451873692950608293577270276737565698080487669671423234424860838636643694068443023400885150702449300495472954369784103971104253639723667039002966339072384317316243851708839487026830127884541502743382518441492936984933454431123335638174869407541281027567218504414526297870133596221606074264018964885239183326416937651915157559467654499741416657750132620428972088964121696490525143265886704213853049094291489229259381125623898269656238026257891277376409403162945881789800886067906260271013704248428937673719231854651377523443823158112524382856171085659477006496102491572541678254005093731186880043936216141004979304096600165743630449156221067605949627984275042810016642259986196827015865521901553612588226993743704371289162648425988565257641252166690462505178960068596849107284372226211849243309182068778816292448432480840110219089140030985519919117396871994788196831071316422967052339738007328336177597620696418118598433791579317882663049904179185729157345107049840573805833818608666451214580758891892900091023228871631616571011421027036773886825878962615792823268046962434708802546800372273680240969555828165832704972970511754421693033691291371187026391533086684095510034751640218461249204968402113060349872875997376323862592953661183276074240240647544575500919173739604949248086007538486351930619305448363898653220359772096888258207665051000441721771580946333548903550331427919046920771942162181837496517736148308389118659423277783935402846766446863950484632864744364643534555311302064532974600605429279878021627416823843714383326672242024931745178884182658132255400314493914319112063295069785556955064941883106001505273551924165577466777899304324406850881826933511110196651640864282410223600597317696376947456075054102048731253429965555728856925796622366254485031816215486723390678776476081090670568375403673578367446966560018637463534749385008419319613030124155604256659982623652508462801051293894676136506479323839019425486360573515454622701850886706159061096835455948859084743240314405245041874755892350185685671547534040633902831708016155387260763807970842467995116674420969094430550769524293009687236050508028747268980885542879085765048273458962995592058635449046826709181981768029217826977195772454417540502122374841316527339227360152702018269483857343480064463776153112361789017959885391058097654822492081442252215317697195734815340631959510777620751401924411255365124799186258877849287294976653165886476312918558719346939328574506306755692910330405960933440580970413456248257413787103843008368814141545395837514738326646838633198380051610425157342862982919533021547848489648653196858071912211271731074103011911748314302196211253329282358460984193836427791477749628183270609375334472501021789430720485196010084999414926994174727861416635712149011053841929881515996070142321383041323609061555190031581252965584484112849073812014868135155628987635490721014031401498383669930561417182187550461390339596946366194017356675343533433834817791274916781127868224250300627987248075492860259012864002126590732543299606117007589987390031967832424196415182936862037097673221338823981504521345979336592183763102318752717950413235584758940939428659132259148197546649938557483250947295842937076909759188037789724178179263150566007994654470298984277840001001343711883768279476935836846934652306683279140500878499716520427682418748522751765088469338914244882849896124118756556779472194013539426851446021288756402440896820707666368872636280126146677669024049488901636452453241572561953635655198903971400519839023243085108571001637206436402717662655120342198057227752676067303973826111513978118791407725743899796295975780267601416877815558671042695941171320507391502279410700490163444567836490071159891495202319528961907484344208988835159530582927578996919703718338170069996487001016286644191054525965697493813471145922449741275937565411794722006838570925181101960953797054049344068198365510423952954956889081204609786922672812654589439956973416734643749945656390140501829147233523069889482472726542455677594627955930565420073936986537157099373873967100622009468984254124127339736088743643653689365154305640866157231670781323574808747659750539177002514316929913151631231012122778575618985228185701800620306245900294618054988579124796051621325308807008694444993011611030114953391120540157118092379479994915370307979216213894372841190399943903230501433861875602587466100315085321573370997651493701921190997693209529955367334460437066087659305764069047022167038070520732016273258836593008819003704326533778458095572539342183305343556367388512213737126858451536957579360466234043393521486381356508042332939506552890457275104456797827543944270623455887842759701152888758023459962727427220367696238817306962941696296131651103888982289331207249436547261833612273445462037094745199141939991201255666415176867922554215317701163818954596983226976908385900011290235195149973927575050387534163616298694744305516859824729890294988631822013835338168834063573490725463263061104221336915352528723830443819885424184274089487260721116212759334480190022257295146405992061704073448369834467197083159091573327627348341546872037280748111665311641054455804137265446077922468596905610951784865859523273779208901285416011637991057995958515781719947568817842491016780500656120268281719473659321178296926690995134488857483186971268651596594869833903897639792115843218317608884381343236452888320210258105086157076021802856334682499465138053875412771791476190131260567751940177628297193902238862231410931196488365810524918637961724255615587170096760913057624213467901969147234123624306197359926056644021397237279919141796501398915184092525442947316547591831592318020703171487540423558998027471083438540562990716094528748942388667596356716869828589155535796626524343904500395145630198374069926641319442754138435096590045601402589046458043700291831667590735159037763023243865310376460214857121777214284866731407029174868919945112282807623738624428708132062769453317558532966627330452411262964499906354469943261078616363132283190353666283701677574332399641672947778946686024908374113876649569049742396342937722530267548799720099358880057102905526345080576016266858699302689906539633432157117766875193557528548899398793387411035739463181251625723414428875922711554541059566868596164753814345553227229535128798962673537624185644335464952573208139269947906282602731084238267885434609890300793353356247775747333247311572856610691956074450964746077387557809537732112080285329654265458920034085098187033674040948273197447137402101513492031666600327835668114887620145206365711411618444862431080276639979140604969700050359039062652868054468126656878298491857715155956307249418401835634614750052812096935570724882977058210953685776761983846651693654275595171290296425463177557558731791535879806060245761524631618751541476087291032090394284128239960497239094301233020788627252718916285327323419697806991041137622581418676058987474110388597849841556615070824279373209168672165949970190431001228695775138397320521168111937967899526842333595119864372007433709278618380464151756524029323188309097806969885312318057589189334644518395470702910994370468087380217661484523415858406032956175998944673241307883532659344477776529696128319438787185085486136059241506707894453995759030049485681471900086703667902260531463152575804119438389662978547600238699340625758099173659076871199908323581741230935653701832576437104745420820673017556182996877617509885554364740299916601385373996578515868686495211447671670981528347907175405389423203947189283012592216166028122258591311599441645646479764303896183325893926312252300200196407824629517629520901143779492960957426895976675789309885414874197185127040912540583644937714310317439860064644929172549481962175929191680913001723970480919829648450447342227390131726671259869173323465811861731229570622260090094414332469884357912298014880244363287591365486111410619731549491814493857965501588776013026445594746737821370973738099353665438289242998432883934475319305974572037990387239154118997148253909635728809773298517090137797620495275767817518668069155402900726282952953519769055005925159372864911603413375639727117788630851356447483125451831968181291382765460453072919605617472505309561698724088055302977169268917115239303270376059260145699355094253594283475995288180472130824893901477103615341717188356835780947317192331583516472337279188399051770172831357528545570069925204279739095376748038438980508777916864235596082083170582982492590699364549993361530332705443744051031050960564756560310593921474975102723387224333218193634119966434888804359449903725447388034369309339252304453786586634566924938734958400974828141430920392951692979577118879460887872573765635847962104527728422902150753073548646653577976055966159046327082304257986178512753354404015798261733785742957496158043699675507199497663537950521248975132535249363453639445455755453262035272252189823603459107867039010998785278209208649231750643238041115200207694763366114267826884199459819467189798420570871771173929155787330742289375499968421766248213984790919133348656824695936629759915451351386790752455060024831978387431593534033630721562403254549424701981859724760015796947055583201157635902168930913811741285611305223262498394601904666212869574104440847223749830004944351976447661093220582107144696529154817941853244069648065998449730100664128715070028930785653419481749865668867278538220581429213933802792165708727595069187313962439019731051377476879417889520071374930889699872920424743415802165582210853247041333048452205593292447679880266397545652256920812386194036393942780866191457960958878250906704705533322433423948746914073206905905340062797765434035692836322843968510932685485068541562773798965864635253132480619035805723982120449016504170109565175395156387858787983642617522520508447986706845251838679678920393693853833025602167514932765978451235607934167591853353016849694340880437607216179923132161197957440119625101697566763564886705929973442993185751350999083448866253199898290288831795527779370388579154737782319739518343062870309100012625381213429805979563515306940560803729992284365190852946833833831342723691203779849465898100898426966633866336513393048265557325617316208540930346559136271305595304564739229252271854930573491432993265278442696501811824559139530278454801498948333082804551117934635736723540058881044681390765840297653116161552184954917436895033498835065250795965255988204736079913165651845309809996194422580058858863375271360613451117462074594180896479435558820124495912244305504583695505382093599101091395722814183442818737114484776179337314496235169405362847228204040788389425400331056885334215810728152399863204100699505173302566111502197476614438191953496357058563388337694074937838956666694077510676824518772500028840077898371931869262428536577978398381900163076212745321244138825772353404476449771356293068723003681024146431869927857642475492524472650518582057992304062140564531557265365461829018425418463594996963361519895817487519737897114983939636807064650360682220099359009632832456515260676279483029529702613282483251164492492800324452083028653219796041353690687925740898875342586544241480549974415755025546410677341069046350467720496612411298489929651911399537281064369311483979939405011883500228300603423905441492566197591270145267018193077273837251007268077140930947661558498541777944873804297734697599260649731513847259351478850090627905971720930186457789457402181841063704274006699449687234241223085801016208191017109138553691784485697506796025462195668778088892373045486451309489867028260306145746252411241488168743024410339889845468238488938139779215792451444591542601861849727212014599810384091082322957919110649352605730772042690612773717794763017293325493940449802936084079797165693190936711776017856137837224310439120779027613121024487269868045141462115706963580229496262392439790275932809253542846776650245247845248719516404671640729913093403681707027827579551320377543215041179606618702334406124461776156584736991706648546844835831087667376766553666149513407145918485606495430709585299784294331267070908484800635957036371560629717216533782686688240306459959021260191556055438011518137080771942452007439617491676163548468280014387935926307719477956527957859620750630732715293086842557920147774378891812907780414494377890149008017792209857036010615069089597400018829826002138545991206973937460419450235235040188042461084901846538001512532877330146840014661313191118018075491242858981575132816319408036134940036532675741116057035087319943394944875876443153877253342479121324156573799892748759421420891123244486628013020291599269193046045548163449490160571408981729887994873896211641439964360442361995178009141800836080741321955631709357863732826852947237018491664131683976760061468599233232079958893202032441468482009155306184429116511484343247434448423523751007230866510896356295687438585305145181613174917636535937201432419448264317075919215967655382378929884245873438583829525579791971877357293943492010544048261359217118093994109315395844793709235284067487525317739120278251624290841087822057386056026087362373972950223809145800562643402961325560276333837636531339225503159569914904532853029393524329997123135014425845896823356256368828942024859036607795877097528713111285395274286722834118198470085100194109544868558356054794350771843773934052485297205288101332063112752058469147527169449230477634273732675797001492319056592520023295599356565781350954285754796936787343621885051427933573527147487445447405228895060867464258610498481544449042246143899059182771896512545977260779293006927950774119195648979423170239432322777209112954906051276346847687224139254606915163745249221442937505772810618192732469174431562828695378376345157601599016647609449604628770215445124608275307965911831127733607367496232267787147527196529467131111780270896682142461959440736008454613865649991681844493734802178615797591907733498897183968306760626704955429223497429572489290288464364100202694338653109897658279331856884930660972121206424720246232200901234372851873843143062826939428289741186705591458971871116960460830115575912063535773614454479503367655997211602349713846034711433563381778138384806021682467924696341543706865102477652445375867838854852968218750752467750515342573857609688584269545065517082102926837121077841162922295382663057666927509316407917605681572032346946999418197452779143080209231030383706438026487517420784064530221408977938156179184985964937677056718106547550737282803150809659759529461165937148816704952933273064257394310142444670186856795625899052152120930121650498274770724816582157350886554681976032329564689543820533928926223900086324842155883107474565712678614344951557809089498219318108589134776878688652934658280797685926261973178758585100335141169606777868822224237921982324673067785226010245320538563655460080100909347793164821222929962178302218857537297218347594487964135692957889088312713437173735294073792601216193142982223203668607029529534144050209483688515834401687011052524067521753724081738558442451135917455581709502854456372842437026033268166635746761624709173466675068909731118016720048624402075981893945979290589289474588545583065867937655284249554534607056544062735319055685561380299180659662107504865076901390089526033177182632780376156323837494776181378935336461629747512434924180539829453013557825974685472584487737951469860896133884954356532838620162403738708437443644060448047762785128456645063306236284121204710647225651848937478262759943303746233181386566569011520301427609462836823068531599508512097436065195891018038457539867253871377958202963117396132418217233716187799620371727281162527265477473823238477134556204560915016474030675770297161019458367421948738786065481849137284809907116690738646799811385897460338547192615919391452354203477469227691042255257906944166351925622353397729226917948200107314707807509119511449840248319102382337655051460783328711052896421562460072409049086526931814333643814628955071932478049605239317722092419044013960789355793824505719655811827410263189506631061957508648490926551339695285061374756122895430764997485502168184069784411043285145985049170636888830874612002297336891066517502321821256657895739886022944489056411419490021037525187572546583465937334911113435818852230555624257938713757213747127667044818708411118204505559276556048964027465376501157736876566763371582873220641295338618965773397732512429835426703987030799400662598791759180040143889175805653858430407553434607325059739051127583627601537539076276319653423432667527072746332212815459084683215753200905338853041014415552914062940945293739674858196179861233342103355233122644444369490914686658271119678783978376519133642099228107315127594084240353702659292938141793362036274722654894366505763186104207607081165727380858819109109505756648779854063130195981463126558243715048713755469639620209546642473042636782602499836214245154793304601102478671527380884920058082967896628480729744047321059057121733903451355504913556100173253033173738205483445228015745694215190437907801646776627157770292925449640773931365635882867941887913620984041551645088491721376337487131327326184695171462907137834570613645975989738955858646519464060151411356028117277162000965804511627373390115801054809203841171436165741549225774110340315806132828139328138251710770576565815188460174484754484635317389946183211901034280354495249650128374345652987818532905641419780368241570044771772256570463174617450302568526645347243315401810327298372005201920049562800196344079063139537553434271125290980222747146094299641381053512039916576726634230742483952860327167461903340560837566167956657941989515766273450821206178728642745887187964261444141608474808433979630646851498456273478093823830661747644737279472350833999127984376941100402881744979751912890416369510956963106765291322535972428515211780127297994871710702888961914384758540847934031881775024113141382966810184872836642619882258402408972673448046447199131813135898011652349173916044215324696671147965652691417856660740412787032135894353736477086356780316010314002043124866050904975522237988919141882428612006019457871622854016504463701573828805025207820584185571265090211879520610074183482847354194502692002220706613786501866784939701496365306979461885510964665859656630870601419072844360208600026082185435681321815406666895249256433674950696705671583572514214164421550969442343905299873540788297204369521135034592622054996156064250751846789479299115937834341907102726938882358185050746520340154945211279548551487515339346026067630638483566378572193883048412001804327029726347957308117239846664531262907593943557379127643002147761317341200381391491394399532120509797024469087937578953202334671540613856090784546959553937608592502847323900882696702794120355153735857026618287904265134909928331105882105195464078448661172936795493835061846628837180345446508969896915284254383371611329175929548376016490716927186508994271237751312120176224035067958612055606156503764092229683149614668969945575858571379813129872502811562304575876213069940681033760972176275384748443392750925329458709781325583297990272015658915885262016721666455476092424624554944709910372154986141323654972399935475723192657821805078147576154171910698740530757216433186000649744903800017552648552296316835894705978464898216464187395248829440622170348243111984762674235857451330105410620462680581357862100638233791764073285863792649003826341747108361787265225022058780293891840764431171353715150136211872279181038038913107022434462323035248727418962291970215172311109221139913203306322539715585997169594402555012840215870046581901791654408064134827383797592467274791409699614576780437273150377017733820193164556491840626767535449306318312569694094182536152073473352432391030401985013085002752581508743594867393024777678367038712038815646090239738087176962682793834977396265845802479440695248734594391931962997071721855368384623712692887464331796843129112676356587732571118066757348656897196549615338696556633559488413576029149365386433604639157390375907183575473277873279570178566705687205898873554483962990510674378426275425454258209717756445030983846286570490440046434936686924207055350988975452236780348389393517947263328738303303055989536968236283918960760975962845794835847984200327204999682967457825492859632510302227095921369193215133626434601137517536704615963605521136002983277467017536968586411293791301403125474318764551030430246409890216625626147756977922256627472241301841086774028516698877104914022381478289189805180085265608500258181331764755717140157483386138942909336189527940929327793072741921503919415811774564045519133992369612159299283263021232321065322869422566105929144619208926969207942574408056106668891601810676862105574535373381655987284369571388686808833476190284011476902827880572559933973605841812135994041672050627746243039846498339093152954129063331168571140097393476881926733602641871325911598589710666184729243679099643605581857803632653170783151002171341160456585430757822693920725229354745860508942185357968801059490467313628425568048813618922907250362897254636063339934334917332061441974469508805735802447083028104598502398418622643838422416186772280794732593950797540738839371126853668109943778835894862998365309370599407481229410803600050145807350266604857211986195456453561388836318509258770260503166612915372589973505780755675124202932377102294253487208467710488180028367649622156745575305369563933010958825726009608254644772124608086332615470787594143327887356641780254932537254616257867847296679270699372968970312106041556293065508511998362541231145270986494826441272089378365450828828374081468243673109232243204200089298558029934297854609958203338994357838204544385199396699817521966703815457943729262521685279665716111014284741107686956142996385706033672256788676495126583683487322211218303115158999314553352090878959845288010060109895272768197609842275822023004627392303717523151642796411575115205441851835386778449744059416300620508787561014433631195203894421823345884189194056946076992134713515055276578733477800908500230099267736091063523302570149559414594102793002378362969223251730222183535219232328457616482569306184396885371701137997677685672081954826360794345990543658069531180278709697721862321096958353914640071070526465085284821923552509970204391325213306053646382864891105873569906493880559598267031271063544084645624772574156618380372615536624235016174259264137384460325888479479010275987588541837353029004190611266208920168997734401190869651933719034405742938049271382574030164604998391209850843894615299046023332296950852071043705188147877304399434158100407133114575858143503426314121073083562779384809212064805479192272546348551927412771305510975197764380303959789900006547056252321377601755803000347986823905704223338151344042230646349105371484511374132340146084338141395179288379972919240046121853255211178404610837051388570701112370968334064465684107133356237028836318170974456916209132421735113890291119310707815270177247506187812845410831766696245705073548545837488535358958896740235150062594833572664987631518874760612358753020877832836767944487214181632885992462196460348460396414131320096915599848713057315380078916604486372174730694636582954267125907670178184324963892786158332336321088327250060515332713503668652292346425367754771350264541707614617781929578539890815140858954891593286508414619462787104709296136428135946654682229056105856185026153116557628062730229032177790049555966157435698014561038505877649398988093312317084808032355070683498416580704582806231415508443916275061696582224121074092009712935253007729756107256111682771434046884533965670067693266614195974200854409684605575966368192832610742540859466366780405895195977700545986025257228654939755785070978719805199066549948221545744141010875783925444168524777807240066226889943123129904637086841139084716544114588165678245205968479599633364127878315186356254992594454907062645144648869789488502210920852029214617178356920490113414922170752529474374281839494718033673740016047787809193319174711808762954216519677630773257431567935434341965224513489288040098022841338293033046391267905740977523241568973055470666207031755389192849487747402607304251825648169100156122167859277519792731085431575819382385400030685381718595572425329178175844520266171413486392667414394882267063842939703118594910969584435378933731288050833679165938320246636163753510939210128261139417205537912383948578274623848102465631119019799119517386182953357090385438305825149977647889679753937205740650641996535566337985951771894496666647063343923105956336027757981153605892890335973813773309025169226893305015627869589157985839138438183573718828741795491841743909889368068939327648764428081937677523244134435794683039168924016156118826477497119363594332387225641626854664443505868012527864029156514992243747002733869443856935460237933588406682173901047108853259002830090098195213932929477403629577158441233664886123037688379771974059832804792354929719263790353114405890656972760066866529300919445570757438996676190898923739049103182184234995412591207245612959371393245266601099235953918926736778353076018308768546736675526492992868256116749926515782285034282542922037128407187378380940121172234690567470614097562192436145646340958806667742761091096344523301065371946459937799389890411534991753702058292177705375921993339199138541831065414633185847766787424193892221486739177791434589701946583577572007402745489084475058942551741047710605818618730246240348638874634364761826170396693491075008914950705577071906089711873401308904235801569731069377267349820929341266310330163962694507110456138924824496800064611090012411868468822183922756628226938065255916858669750641706769375003686796317623059055227108158879998846114515157256748346392151627430132238811889145649613203246928964795852628309956059931193740185893592646172926615589343864184760340301758628387583639013335849023878533052846337347609059813112394109599399204482603261238857134227124480698112634275287877192989102481439972544310565250438391774343292566898369399203254176554109218720884352426006934859494300552724169532138152412454124293479099791262177336724482689804334077517348724919183501779454940176281739565967872633601031291854320323589292475244698595102733875465150109055618660771123271405231931319775256909595249374770798098462792501272575276086121352560384305709037744233050260134745466255488775068041611738551230360145099092461342983154021025295788007423863196342297536577814623878642162841904185675281009506664075062848243431872892888644526024594822663345155070814009337481846289516566639203470224422061306973214824405814611671376176464511797179422663544781534163410889595963508387881287852659320169532333026907649193816515464803596047189909954873900003585249541395953818699060602012318604433076804740590020585151070555938011871725480973425173516036930510166862751400923406730419866109964154444103387084040284103361552308667305037060537091159026618770504176409435839795718489527356540926663405015255505641745336603999493044985832799103574180750406372331392756114177332913279824417016209148393753176838819024558987546874690116380530934865998797045147149048059625886825317499699416068263597854934897739790177936557738200386381144144747123040243428312781346241632887577253329466696060669240939908685053370027410541670961695166063388227261940045198703756653693736496177538430385247031729131629000984008419271162868620573804561161043961676003011898319589569502609727407306870205494600847910362009398887775495013985660167436099052802749669646469600543840898863739436549990336273279631834433944001207084041841399782174251174135460377558503528136693674682652304502216583568118223968551221238821867295987033470292211811558520967992469928321321771190251568683036419121757831866082513308804885619328682277059238621200500025501350034641346981796100975583513708875160578000516760010627842308921406182660393102242557726629597961242809854538793303172322117282244453883480796201644541994061813077768717558673953383824540180270485197351493547275786267880800042886931300580743773024990308731710645985991794394687810348168120772234860553537769207034735104610684167677619140303662431018794687587842299241288909520997911904750728047194072094291801889439708711110269510021366575047783930728783850907526382505244963244517663498207689198672238901830943335608950129738971290966345220619606261916191653253243128447398979600613860064742627389609111043016041525420963979278813695522957248304692298356796373535089471883774840933188409661416150261751310753097015800148352195773439217302635822880967664316109081850760736842664090846390506285192333002811200075872794248142824425215583659492992330560435479164605203930721163608164461705434438315565855603243975607575738037451256025082634067766524742005053533500947365353204632261629778954715197961329108288646377886932111851834474191702791776438379825251660809141539106096308978449722674782324542426470621390501681265074259174233924332888572433029873823952503822780844478914855467249761187484684020072437909875392597664784310883626014222020155773606360285054501528456845038246418245962856410824391329550636272929164354564432352460900024724501829369412174080435286360195708176406050594144154641615265329438714278689705931588181231633886614805454834824719000332792514320629704768875551377919455619089202413325859788865779513514916363567041691003366473870115025090903812813980088334639537810551793459130674316756925729934541939598874093084878283665564853889442696864064397112700485816195214722827437475102574184589501374624454302585520861826263061781942660293274003819870756412190441652862545064686615311657286398150829595579044574872154313964317013125579509408594474842022319556683195432051277684607575058539986106121403154475095985423085138367638843115945127647675225731833571907843643908501202849722030821194701387465159331248336271911735576951582059312687616563346467437045920602129381517737426443707985491640399420955729503047056073123230037352717968742576297057951720154413162278226159320496552970076904894529700962763384781571015312711597813161011075440169669988931427140059325629766105746611091518578056413848089796663011399375967896322325010277300121981438519287011975340170208306725100519265998574679209562995530481982278523147180635892512841777711382721624489343651134332348100185178638609646699287992925524695737978968136635445336551913713586357147825975931005138509081855190166916330984954242922195050732653107680539311923259523130226706602534202311109763992373266113423200678010726222093104519321944570314983011844433886896951738710001546348310213098812923629007816758719400143429193545667181846302059432067941880096905183310775839324712664921622593098419876083585422920340010109158561279231335463671895470040609938503662472713896730156041535227368701113042108852278619198511958937343700032713957039741716043280803882307864643317569001709812433008479119241861875732377458945894637358160497252595568879683971629607644437785795056908007537504762606766690903960238620059491189566726119028794705074858570041172995480098499027411200566065672427305389549295815155757835998520844980197728999753416005807353437171464879599360105845180709420415541457224561123135107609841967475151539472448188750110453696488297797273187650501832984945815364680752503878189903759486265685912141254123785987432219109767966450204530355800768471537491245337854025084680324915880738727907972673138775723518488862265004522728392891758194720715316568470248855439820881044452302069867684482754996892629121574231984218324885553117756433215802217512918873348932118836044851868098138512257798832846856189193467069523909079082062660270048520444869052627934124168714630166791553800186966285520744962869699699775646187964717723268965529505682327719948584857649801230259295271721726700292869908479243898795084811292787639755000330341847959847278972960613662320909797572715673949612768113072496039540260553483332879393939331074578467022588924217466142732787169602745795452607430707110184567198414917055220961130781511259150750426405811407134902833288465225507696620341368356304820735572307003194123401728472325034598918321599987468450397093618562941858541567352728905535105654250104454329842221982359230224261196580861064105823750952173635418798541073581931031171302748560277134768121797597732543985745968878397725959182225575746717109826803909154798115088887883456739113750179450591313688861692106864511812933299260874913098889355309873079570161484690539669759652065709196887191219985897201920566757656204004503123823562710454798462326993922560141001317048328572692442471485048016950115740495905754245512149415557635438727422516693823638310862186467554137606748812188417236242971933925856347698169627343250702448589165921860794641663051702506680937407152010342993313211783892895945222376540510032501507646064886421182903072092614443558022312882802907268000429589344243244205061045434925250432247509818196268794430828730235040993939428052955292127584645201135942589721613966583822909985361994250282476747847005134812679657543836016932688973518256122340618808674490508213608239205759939635980348539025523702924976643791816086596560729538167862046643364310033274909398227628539215823506381149435074160153521072628967369705501195355011531868924748140971601574413605417554519682786169864997229411132860547411785136163349723790820273213579652175277163845959898578176524868776952913486146806715372423135340995916117269428461886068570722970860654990473304756224660558479024746726328874033883069735591296829091316764651055110945215322746584335330457083313870318747310281480472676386126786994381203022367347094974662888157898086002322447304108123669587841300393996209216132129402856602945134998967617143627875056568840738737207754667943058435125667992365785631889895643172942688512248073242866613406625843880866688746439860143374546694118422539352655094188949692149260341320581505970307038690362123264948358814507288245128037262850001334326981323358335932906591266970078999907167949000777843195369525986377736651080215261844909351904862509728464036649418425264692201297717734853517249194704622811443048274090417086885279051863920943749180372634679830361834975911316668048914890392158477476237162920293780549116672586115604446044342658190770385980783649071308989967443287414126282380963815728295070474194355515675150610828950581425646727102581997325455439891826300130741061318703207762796115727567347880617059330660503065998193673664444158331351547107645959422107685415126868502617748625650685773890832276618740296366232068611858640245545315811856398325389736509902936810002678014068700364934267531392644637535369996320474811535413986541033176083003057784591917105577504626878454359531767366011084351708479394500739192119811719040717173524326481035688592539262289101785194815515186647953450662874313139532566707499090963627960313423782090673367713330252700936084745261031358572849468173019131344114328351143494892455207573795737462119937312708975424835366498549578086903649305675063423431352135871996077765785453951063281773759631289106749032041402303188006083273618081767590101969833186726576855866534599393960393940713273995701275310575330280740797546397718856965972277927847463937603064934277994725032456724871634392623010328201149226416237786729370420626638901367194070121652780971144118880444915990016460285069000627315236435378537774192067558599020490706994310049408620485249672538170119620955706903690606305662666052599373634210320648212950922437280087809763428491927107394493075029802938325735485674429776189785466593800090797260914084803343349371290041201549660237653183806114304356980569787403273829013764136620927903513603344427873039127817753417144089196488131112892899929078211704787925433694012983036839389042955355538376988680323735259227017826532775940861504253885422442846696851791021494852997226334743322196107020304587322857565162917569792901878275650487910358711256061734710773025085373821804813928720694635715732642477468963969178535769626954636831397880617843795529584153308095667354242427318655519395841747000472055580210766661215620590866018026334017485394822603105072993216390559977239913490042532679676882557149499526456386769252734359073169129494991677788317919297968355386201151468862375464577794572294589437250860309331339264054573792602909594210370287110756321459902118635676616432600225984093142230304512937834793319425686044308116510741357804494263964661600155007741770526081542762235974914985412769363354961100961730670340995707206776923499016916941815223608101069971410765454507762112566483215538729136858053434517132010707314679166670266425519342254813868353059356544127676308150209650264444462790230899001971893423723755140340678498314895902938890657029868129346794630675851160970312987313238453199817683450987732650199168211379336550613587990407834161064722990783887469608812499113506282557616066671460742552472393382302959490859792467932104261840088484236506159622681742892712422963959702022670954643358324066713498869142452173837418425384501005530099338805276924746185044546641511833629571725227309791343410406374293568609154353439585589131370550625299252248050735910595970143695296744731908006844912392466531718186759010827908150045767064155702110310459479787182714457697349578590671242876882873515217346067063860265536095526724967643765408985187813269711123695139914446854827931986912801887661029396252692866665346503263476749778092388344160441728805502209220981385098800008633324675974607912142825103531267434079292273848559670991210011218375148816732914624305008549372885804315036127239553066433401732438880736400031575496685308864194350578457126188422816306671435217440253616062506821501116444483633459680608011714417655408884708553992693344799020837404137989295758064841991750930052795353861696997538450587611251849418332580458252109574649956878284591722796838686251739232752366719514270935633175701476097773851472534428631956575124345428337172178434834621491888763041870533912967075447847798890682171651255096005120234898739197115244795027254608656324059292707244608403703545128416225704829442348871449226891716044452927577027385591826642645196757980544226209857637060730349282640239497685010637058548462722209512133407484282428414120768852089356773908305083948650299647480658133116972930772727342173098101225360575455867226821435559766579859020246554628363633608759393100398053644543800453600743475112363065655322761261117953717755623454621742898457985720209527316952007949563734920465146865150797756652922401257496678273180724478072922768553926212205475616352262239262698615932424036877905133002795005545668522627422821169184166901519998489853674064508117914544804613039119996051442049289516886971054092727920692417632177735716050093099223871176767000024812422472362109826787173887848451242291787009477356044059127666745252037153062273853905481945267619337418461022109132170413281855888342618092629371491205742866134180070479685773233215502823520528399466854414425415988789708942570972989306797887011907441240088366854869058949406257780617888709700432914408006354100087753618985892338335767507610217235914740690601246035079777272505885422615573191299649835163947370774877847250945905414845303870627643526558503505975988626703909205448108160028724730905516552640182465339075889979698649644984980470867803130216261291452759312926359642986106321780045595193579004563177314858609853616530300672525958136040077054573719263980261086042572064399537651466729002485344135591610727544019563892449459953307276393176832531108271745588290816160904001505065214944752454917362753733631758958346321471693100979319725130067473899899412774248623643008609994192937705074847709763331720475733007450302648314978865869083564802481076919996625674691050402427658153074112523581943526130463967991231547601982898656301568449756256536401356950475332725664248505541499167590626218220963867927319018242803009300947662606967447386317602031158693597303063691391820158752571048903063798952303871377393807921593424049410769260168403652396208787864991117238097293267975403124559460018062529469464946278858961066945639314101422967164508111533315713474893466891573308271765044299163145335422303452011477612367935525144793519980237100034542173979181926195737636169169745634568502999624985728506716998664910619477512389934368546053893712442870831475285921448767558202887008409850070233819365937402886079763772214338381202229573289898390126209981767816914621635316401940375791004418308475943855995440807105306819685357313653717712035479954146812582880303594803154180604620133231128059505551327920473423997301067781539101416680240555633307918153906236168968034187663538979933695951578933455350721815968919000124215262191611584605412076479311563511878258551708326892598512212352630396253869792870099025170801710368071725924956073659521645627334860574587499939526361490403450467748415984772172907645709395159673655631505225717610420496723689700860490562476428817028123328195989496912053296692267250435116958406267971727828983154061466918016858280705295723834900464707179175009443857931396424574216280426762547436357191720992784351144926518466892480830982836470414291826230152030499391091947450887824897689132146615031347892208986363984996018912962260166131722345018882982545324292494268502878449806396863976740301859702708586130434397811661502780658623835987079217634629773243007785684515113408457113491914923592902363473238030328722289114994215979571811221449227688419509063203102003118005025470187780168937112615077458752851934134782138911747922152861005962449023762113573545379210163976894794518892016870275023793418333287709887311512036500713937163673904389121894329843163628156038344567755016129873173101611021267314187606379537172394106059697868428600432158770056993891736547090845140916657199664073715906930664819282789625241924884050488579203979610080160619210848018502846241864330779165072063995318721751694058343535936229779136227720369021156453110071066332295440550816541654586032752346449399041111720127084918379752517263914457737445298417902663531890724229997630671751540255250133335823799278807190291056426728743284730346458183877048833334816326278658584599150364130147817658933944649955332702456025775951532786092176954150220128525882897140835727377129179642642360007450843663933883032714629681326161003700234404433072233514905441417860423240864033168570186837003304676243131669271456949394509086566128896728482261251054313356156476326579233585241358580817538349766205078488361846506638310924739519554298520101108576345827631761873130919549280573293642182260375707846851516146885373978057706424634940560426700084777386457133950834188139515707928120174186111373838122079654639045772155199094117410925965777007027928835123308178705733855174461281183858413610330173036927742439504783973163494545595214400300124716159376967951050079698233757983022960478662568622126260487230347754534695797976525442390324637781635588940471624481156412316108665307098101219933401922801717127197795671014459400342981944680077414780438035306267350662368251063893028687975821243324906766109521206993526069681559527738811495814762819261879511823124386216965977292041816661964335757200695780548997220127642966886750050261091977204093847350608444916385949502297670748382570330124120140219406571737851714545400656992003015923668925213702590877784689917011630619901897095579034950534287757663859836144839799117198718612057977872543385305488146287041375656845457842787624937750538166648501051411885359699826974154728732071224537316537553458863848368375650360828990703427171802440452222194352789459192163707834179221255513704850276819726296184166093491250455936578368236836266976984059946006180812623239998618587000076643779654951123484250016694721995487680504374903606586062836369843196478523863841727874993447728752969064852274294544470365426365247987400197602147155282092945044962440150934673838796691438021034991825382077296906268976388238539511560361265328731117757699842947123631502581017985012750446785099913556802532995227894392875707928782571956425197356230095215126549511505885801037888051025747988144382803403005765512138146484217387393275329331637625860057411625675799786056641189719455867102063206626397995509884720056742050570509039635205845250066085192637165679709885323224510852330113539118174246624358922756818952063347145677803876629115997059295361427666817322444983844583099953270738411312371069856617262965749937391169598921691793522625028077211915800834590237393689754187132043907383340568096767130597170741851838999226575450079972403240308440151990816527400698947114484156200729414753911141443940736909710455637032341194536443414652309699122637064516675378155568606347029746344673184488448789915112070468051624799773881807551450960052420892589457967796081927680613706790461856529573537203085662918580745783756556031211868313255620960376341547752559415717701676492579735734650098672858923856995603579838630475549342487316895830202306071334834427761986491788123830005986170932564227559348386246136450074381816724549312415714348179768796743009278986531402235868401352275976209512034476183321762792495518030014170626489653611414647022417789718464471120641018089698327402056511239870502803893561480358862961927303864151101555470584172582350988926406228749085210037955360618527653998013353637495354182562227263783839765058509684903036495892011117844269322525977096932935395604422391004924456599946504563922146013879011435743837062463924953945707947443067372347011415274282365350349416412733115982512672039908219104471571316888912145323994076277673744585947409091233029740268871837975307950078238999188295913227494342099738197012431512410005904159357245262262650794588681315978642257089963788048885295386317462217667800095069020685748104846055035514726695783345422496722142596385141680700582977995089358495891943163038461636501546494808080936645054219668448501720474924972021305909885772056856491393229808503424299782036117576042349007797977125682702941773294648195897864673400260357494466548573230764064424030446502832195777126003950053867406326626481095156474479008198254195491793233044296042290422953694139963763168106805694401156021087481683423913035314096069770687094334463869131799908191386749329553576060489578498176454195552787597991023321677137295522960616627931772810601958493219864430123298906953314504415266601706729086790172521014543381287083067942548243283515159136397678047004240818657352339435650756745833732307132726629186965365614859368934066179821832428304871514630496417411201510803212934041969048521261328921565868732360619506932622273667726130958581641194646348860710898452095711708503993989118884494658520967695352756951942327722979326541990699590796081783117214673567683542910965899416833132844796494322726262840386677401710916635361985479535491116557417424173117700516404328973829818124283033885901713455648595571656119197894270365847560904487141702496994113293032297072472440874959795465514234263012390847856096049528775875994656720766186686714275017546401886309145348530204886267553025273468219381091131930480073835251078635197830485795159185346341263258064188168119139104785464800211403868586349040697609354690899584532374690158858340787641454600588316314472026518120140056813933889606784644917405929132742463123981447353910192767172390347401879869108723941166061703956461229513754480418793723677762758661136686192838481257439478596055680237824150243749938421345126040982115478401504141966313372041652467810180340559949500250912222697267539406436542216028225513260557052574188296814911388827243365668357319313904491744137611452064949465326388868520013502410782517961492182782725199865990833852062413551254822813667416556259203990018758157197202219526883284920112125616448396203926942449495822444904302840177019850864197124251034283916481404466663323496725844204116188622015079355958738472660139522458211547561400053414624894680576674893729096428227834249340784937505372813039649964730542229038308590953352613460108895225893643048169410769772874740614853765534187840966443351761897596709646955549162144201691501259512279167098788090492599510039267434987508491245472538462716178893238938028535175460548585824901744310602431759896577302734649028705797492764937005886058102546800556149916968281513119044840110665499320917278979540850293680824033042921498330476073838079954685507243839994265237054894507684909575693562956631276369590325684894651072756468763135431780811798228806682017756993214318176192345403108621104826933455226296028744360108752292758957127576901016376363669694395683799180158256682795642942956936558462686624156809051720028268373617347334527009792652291305815572083052977236870039742300080048638955993633561242062421046498626942442635422296067647140856510024501656665588056062950745039399090763173904598888841574060740328251131982683173684614695992009097260090389893452816701594833284797201557239819201423305913561603974527648739171137363452456954312506080574726091533218501172075736045058662923844335583355769770902764090379555938463454841154039632931762191589826973040787868923260929546042092474470662843703073518079082995160350712170403089180867362648968551220035083646673366683397755134079717079998811436583202195502413144625096100849269424173446868751196409978799780848014850198866374651081050053198250312304846754979472762638200781742144168560792093287707179677757813581542414474290250576401235387709037137522424061665328156765137755218896469418066476628674358460436348994352731394036175445193484798281656118619182930532743910802217779722290195488624397021666771720058690730661222554104250409507020137464341985359520865114202962637279425439076900026222137409356305137162507198712828663761286520799767969805015475256113433182292091646938003303525704902777065974106128287280822622894457177060476599154021929624222930433572448592148578388327659978685433359825319898856074956956772160172657994868093995583230245939083704049389300048927915496621337551385737925069212135402759770956347483193053938731635617427835064295001525687980385751413261690855857312270268890351874820951331133309916985674641887948243553327466887033265083880362291780208176354868561338095614917376126934709469543427883249376740652478461239274493910981095779460733781967382342800578165452152560111059479476421206391039991665211469184596434814944672505942205271794826237961852783276019974406211999187631498242918547716534843600497620383374130330006951159178678990019228544812833325455273033162192953902824045949703828698258076340157747661609106615478290720515290733290082549924048848550593514467162077459537141156430489474809073655892480505494581466494325407703287140064900140699479866234019932300387173144987388945944257780179437028759808103569693121236422190792881635509662400599631572958391886091414860172611782897491984760182415383402137981026408518452332778651098776769981395187440937558570170359827119847991090670797206828639376585934763174099644051226832026524748529970212652511868562305574173875357809417625682981994243778150799303171680557882228945183373632682342868060301454605963077857670444536677473395751272297828496084024837594855831589346544507509810165403962188832527266498667780105201467305137399945809282396327020217502325511992496784646447294771844750643539428592914885046275361013427159376536979904122086729051487576030767910155736301182281488105138633328667184346761097042990357742792231011860994034876687598991627584926922330835786925640238979097922201523861581649574016503774621107748594644197305685612159342764822347483127712691700937155729135925470521011414996368871487164398680016387087573192631721434222957997647290650894426087793063531554112019048539069128143522759192969418733100926606838836620660298437493267840641339112446819672379515632357390634354477200389417092159579200738589225792017511486616978188607435524339464395941284915284602484065185012149954230310368036226756425757398097396955087780538523384284769404273375806575993534478260147019594320437812263873312973685772689604441702531410965911841157383842871391822778638858234970954433173001322911626401963231808167435125859410263191604571687330658401073909463232625081274801689270928208430870449445551267983312020405807678626027921182073416431492303172681305696337202476289868559289714116653215869362755668334528314113701559560222338605683636356396057499713681386301906186650885263955311389818295271289962769642556143650216945848144537626990001626508824439626244896228747451247935978095759649184007771280729511366425922561876068194239688567721681701296917545764192297693141415064054774394127588359443907232354900582323208276786822774358087469875922814244927986075255110625667615072932441592213507559144143216332814089853389169998514641536988487275824726287221416285165862713597706917793950650173980919853177823830058385824126373256977872487000208444302981377177388937389220498476703277115108567845844638318880573607825884757324391556343497446237273491268077503703970139447776243122440598073837991438135639078784802188993406000312059961376079167301514892151989489019345940209646157938189832327155900040246257440701841203903680848038872266341094305066712726062543974673485874203878299948585631453746263778027261218666834196174927013947091522805016222765904615071544722464539725418964797194455792359617870462595547949245129081865959641739604625363130816757324295233187198502601010588465532437148845723239905831963295196665572886714227840439056870918387006672704529163922997415261205085281207285699889794280228413099451609476050829930712896411583641261524195399858959451294378637063873521908364165225972693783731473487640482435622973357660339071715151924788864459234978385017949169687579049697215713071341253744556135219469189408444767540022603323606870710291111849674885943292494176863707006865669743918619284546167547570335766324877287336723480207954132324698871397342649383348958483550941117727705141768812802375119185056221571731718500284695312757659806907175876160412747095176329428561686026108461845055994675483144950815043472116739248656660242183736209967517700612148173516654583240871448557193688922104441037947197002667641783164685718609706414114480827890649534362712589465183028896053754572333966968272805611001411537471953193470214370136507472111591439922898635350572729290070154834241410133084182374758154102385801353378555020438333006381530140863554368945042255070008475734067610939776738720481517903382164900916841728125287259859160057261875319070174274594845149917224002670460825756121335335541369212220748295642910143619469834713151338989499620718355014503456459974794155212463824609427026404615329401100565086990280433142008445162635589881743036615295876017836598843861284997373664662154295463792470173882751452602228869519216279329103647363337226843399324090686373724041413417207370833866331394769906456101061388551754370993572754114598819078452245751665956402404014384045547940512624033956526423255036502068046642178469465686893113488521300849860099009269258143550054063823733063017254108267808168456600925448138151515765941275599578494394059644976971780449553918759507453041346651761440433067811395227301134914333305862766136873597335488484471797100903523289223636361648818546488173849357265660414218563806099458778903256819383797286887757328641192772485431306924647315147952187553061090739049786357124117269202383169100668006496278824391706267188701047793395571560049719950559445668994396551878672441419156254214037258922520923184342990596917877925109470988320174198600883655189246100784442446871387881458407765077522331332975579970553794865429229748768868387727849961530868481943913535105995875394333853944992266513863731452430652283784615476912228980570248643064123119517191827354540821829993816718938177717534807649405132233171975727407841993720999180194616834955272714935121244033293726509623770133901443075145500093232218996335776406632279045080290550370407359990797528578553723570520443920943913650914946557085194655410953732688326985547256848635114660731083478570894667425346160144744968420294915234146730214989947477275161470265317836519936550025345073445890690526953912047772888437580718167363767344926202754025946021938535412124365962101540329565833738567380996929854481522123915327827807865105243647872166425090935698860954468066676363049689130466250627528162431817465829707945470576454972556095571702203781621193968879345430338653475583144175639355636224087151546475917798606341262439963441386805239608499109286395269197223101978031376994965093259702628135969740996074681979708848962537325633200263083470799087573960981310775690875902155030728270677242517305843891121171198530254485879383125183687200566164329708349831775552127107971146319432548222964872760896190951842525754106508253480205190838490588668368417316390648144989346336755114683215293137472124075858080182208130697608379679720987544490310230646208394584600321394235190007395575148154885109182597230933298822773543172061326805242806353441733485384640544294458307609221744230527017851445526612804324177404913107699308350910644157327183021526003150640429061334956841359747176194474379226073205917279104762698151339988710341484951589833276011051018592107865277306383768023779046168688023509636730856468188193536773422956313742819838007110690760309457857391832807566095206411327180399640916779043907798859478365599969820424087900318619559939821216830096963545059349656293722432168437926671417514058166348130079326988709822574248286014845357163893430461247677094319328764669146057833567015439184612328462179388561892647150857261222187260494840533483605415630252664162675151613426005729907697678210962599094310356590444219836426704901671827944777502757267265086381619188867399140614648446217885846204545328756257419067565266454149579287390789082480654625925234614285510352967114694066761519863992591244710728094417968334696978636510898950961782310279391394493519843378454649842898505711467380485936794189970184933513743321839428600168951185190225255072426248687732450572177065039689646599183221544141739442545747357161276844403497642695044316627860888461542851752423975717029207803559716910094537331202750380578264651102291047784991620869561854189637118170107662660092356265884753916746478234854358529639524779859948518678107269162387937509767539898166238205250638442051894922389948115087809795900100138001537724423781741858601656404279913267839801951566596247095233768360049394618052565309799667123482456398758899711243572289301876469028072643475589858278461670511775841223505883804066453124877166838234013631401860745299527945189426100004513313774208407041490301353174889717331949618688088922537311816942453212575726644235406512239082321063579581908301718686564975560664200271861296286600542501359858222541596801108898613388580007276448100787692157028940930333812536908966132851549290886066135757866280178928175216779033859714446014871742731945244544273050464960637938039561775916747187894635740265509143789148048652832847252183590010365189607748127894307319916103232939816166103081388294073397403116251615156537723241295521780739044423029125156060839597799924461563167430567340358247433419336559158805201837553249986079253851188667654843244465590869746984489810481444557182971623428859084109281800611986235083544135998747050152748027256469847030936279926375116404027066657565964711847808847157364604302754878946357289809517598911337729920129206583092235220312981273290310410780233134123298474131897182308163446877052580870114192925513834307611427926067455579306415039301592508371898913180075030357046364012396017929585622511066955025319382273796687032585914775468153256425133196879003660908709283568358905428243511949819337613981650759223019100772250516501939218390250468359217863566002096123529579499721304835329552319150940848029253426103714867632170162988051768999525843269273676840450993903116172764714770035520713181568877917676941726614527336528668751298329410280939506430488312336108389431322490507128187305739696404806740486990218853108877794024183196139597885459849482176352820372807145434203832399046023110650274043847986624895753827344628190626353341606103859999709048005866857814143474616394714681980155006341726289081853158749095677717855440894938655135737911711368371687534406746674649008751697167341813030350954532627104639248794142688018499167368924262538707948387740629971716837347452536174895531993530442704246080168686494427742059374825069462832035062507741367712686656210666400104259612286778168246291853181081989088454502820559322453618179675417785194208588472722141209417405657223653852079515089940381469466310014946135588496126897993050671114725531538871492082845457782699089401975581657447688137280910025545777162261995042195594855646802217868827378059021449355002902115764319820696386290765856698748177727861641427712105400012931321613281036915167555200938519850237752982047032209218940644012841706985973587892026797621528668331968323397915704363998342230550027218581954683625289336737792792191171348668021035995290720640759803493629945695564703534551901016157107890142801810155520742010290123569914794515212881420015341210003389558662998602749238551065238333251679460461522543140441359903825315273880609346932031649011855628936506435454978563699312898974441220658397790151627567911397730622227958245323347656524864041260456199485623441684120833962775717674006371836439026322158483106513483369162972867555626037869108228032104995276055667066040755312953777203314070799278084160417538529858718636270919282262333511559149461530459813426510497201946685846810896529778383266059891298102103321633093014654068641306688187714278221189447477720543867100820911738267539596488631370143060378603691588955875749560404347439587264566791188957555398340674366819673930925127404235369829762018079538553162837552240110220861627196960907843489414437484733381619289870906123479331641159257264666244119136445769994029274991727845206416178735617329573104808440110803740164473097639859582871504155944282702422051880765374155468405372133477435864975249362406953629266146198392172915208888657675152891076800368587022021323385161823644157760871206983889005321235645949912458884978507920532506452093668642961799003623948675935360916413255886656008454840604529328010678553547803832514860351035545602388015657604065931416053403034245102390440998147800351729437433836728555259002230209932641903335927642672711199357176162933678004825104856819289587174808444092143250752785347066441373306008931614523422273525419875300438596351026157640493131117968496663517089894981769815051705088568168454034967758627319831280326818849431648942497113116737493946427748476570084683264288308373379932381241302190817013740773183739762561254693523880346746013085572942714985884637710302877074523752924410981587098272846109174680636257144626303743032628885939986076773032752681566609514610087599844808639035901792067846158806003458430762124588779869740689794750003675043886472828171943954534126080152258836982385804485974467382426159692972338754897256167980570488917618064031093602357029476654811902984404237469843879469081675279655489998998495518319559788803176282706840358826203538378280261457310467071363343740816201719168521091097379277648125316978721478856494894409541243823044639934139044457416498475566848752753887538791836322633394920123087552822520521297588133565331706182012682643502942289818381718433366901005411576147939718849084705103061560655368953175268095766342861694972718203606960069616353188025302984738231456557159193694919470556583979881357666287569900679553526971086926794593377535042399979454716680257845642393200963611166737151703609742041113192252692118352931453518352321732418270604034145434310947766267837707000740594552937426042866150626840277228260372736607416333872325979594970685958828870225870960688898224008946461874697145522713683764183780256553790712513501386375101114214113122892565893366527980522508951012845587305932161690816234321665940282608225304210751413028344471518142501890881674060773970380479725528144532840472521033456142313470000098918796063275716842440054266125608882016741894962645160985491044508011242294099499820661055271247265485539925878112832258695194877596723171271842343221955126696206893988116783400888868658446821944778005232554763125359974882152982136442620257135992569308539250011082486751088082692484836074082479084140782432701217626299600998914175232442226313747511342678821676288516822265769029383367156883357517144468130722097865902225890717839040293009966957758359843478108394890441201983317741707361141104830095386550655351479072911175256520350749444744482253840857489806617226303634032120735743867403452039282630277440023665621472843755714758318625148860611675167072342820148443911873533180117323914088034142514613334679395932426430477847193057796409565195748419713644965441900658587901338667847614411747218845540287765754993641905027716835955498730885682079842785427967642765585271738045203129782382665977935575887224626496356153255849076772000068233755823334176835767217382621334294256507409235244602369417243334127478849790992541177848357929629784864522406679348624466218715474015834797590922371162996574283605960106702336738500708314763510557923248428056842522575558444618991144079654538746678634945750709766344805988726972846362988652672938660529868354479903583891148672929568569561883653160450488828610232423599957732125612052686850406717295482419568416699260509702669066282344420818654390388841920681501829281387539600205604848512323783414350471543264919731327906488610946387087954800974576100808343734572186096348887925994301300559908054251907913779955772106468491360574757075722735262685192152555041089695062069558056868367528087854799850833015390095719284178482656262797099138174707852991388659494252218756297780677230697191770778099646045465982055750705688928192712472986065915200900617676774077415233827101906706826628916947543250841030605176467774244648774577527488774481982709967314598968222676499746364272563787151672345032966214515231280474329359193383341253850194860101796376497250252762067576545678410200043909269664789153936385039312418110237251940961912150573894958630719079367622525909072429734948235075484312214484262450406779748147393085895522256748714405327262793071440340415381792993425819079077225692942591722936571128274147241979164464104619179570696074778582726301602517397832871250976638323531980096495995559399753785809323760149201506085089570864684270777279852165243187088648464359382679785440284431694528348536736105990907593047770606609481752629907386421035202331467677901243281656390726061023023730785831295477833846027414306483700643074097205213083723094114896695674491834575328806243599839956197175236276197270874927313167588625884121469687717543671862413092888919062396535735893997382640923712768620232230384582495593660062685556783628843640173919052405113753659201035877111854137254701404699835006606722291844159185378611664810342955533328111019390243518509765463096478811218680404786993622884646606661876293193316992105030001654776251460442619641719590474669950254361797167863132749160606413155601390438278097049057667005532171002467201969117231914865818267828869464520866742949382583489568601239791486089735982680067948911089360293136849783601006827726922671704226180653761668548927198234187694596391106481782793048241404967556579231349998015168139199936203376870946384858622110214145677413067716428655858547475842779753920472376126854800596455728811128711061637363998125201933937079273100959432375807675724522441001808062931198040945399266618496262412043600807404311980726801203487667446301807045883652516289691502400159848079214444199035202805449185073566776020686978540532385122647424821446061172907544904162020452315349474624533255802236155097268356234646074507050852142412899447066007676290753884018710364976483124810446846233244405874491829189237750662192730018476870707897937568984654394506475711057930543097870526573669340794820314438392285967847207657134252900565390994510160041465079779909964639055532371339431408009350509413990208112596741267178973089513355039642472682486613728898999725142555373409810193817302041183001915910069457969495464580995105296807076002877665315019844445615656832378665269649037135009852215596383157880135348912773804401876461399867591562701953953896162828713077488164613148116573360695290714127144374539721515666627965438593794670076243421032169659956489857304694357220315766978835848334697728919583627468756498374144671633921672434769492485071611895544874480771875991079184921497050185413981530296076467154910084708095216215128082816922282472824876688712307006026162598976308277064365292319138792627300902162228365745234605400450561323308836640462135267144516275068133012810953968414181935223709739663707087528783555845077490332767299783909229711619034302943544097876297577955612685234159831602157877844476747226825798658016666075777071165783766421004698464703104352956258285021463966054720206449360941197835533908682423422491177496106485702331402964345748014340566125346232648833135723154544618779514464098752011177935599607799588641660530095979053583510821493185253187869408806103354958292531180810651468855675246685891243927358611296509725834093897567586486665992175491241835360159254874117544651665090737118560744335091081020006577604941760230216111999064288844654228172166367630247540381201109874037538643991038921667542121009617530374939285432655417052574301006806699558679119407696469509729803826770824642348590859900474965252900755487390690147323835260636843189647606816645021773192838383474106164349606460357168224469427287408399274793353604439473701259437368387790042116312217870330103427413876290389648977546505987207040176222706198641700015631100798575172224996207400313326076043195495033307040802254114704092370293437456237820793478908488088354627263066836636214458383083535660298765237312198687590295851299307340006367609363350630577659754705348962009720952853984836198051267813747197570688154920665378173306496391276670812114253529773800211492768999815319481014982487884077908466216374341119676550828929673737183187422212275364475653276038090398151664502588759902177070696020834822831991162940446448692817050514671007697299317611866512999250216937153085365277768000047502496444724340148548839096555163691804009458701205602662197719404057890182876340401818169501583092309573808120095547629822942219110558653562948452037073430898026772815231730273317159693384684701844074637694815368767484120259927873507106033874640028461753708530320862209130008431799350489963842520149605614378804854264605942125940218566405932673911786017504489049543448364214514064177337767549820208807066630516404359684205842653312290224153374359234003595032181807957569127175807218755123374747298935973845802695427291550116235975129161840320169374079800725218493019840324808163362362482316650142534407634829693677844482875099429002365152268700528879344072999238843085161405456579631584488373132960604313233177892955063237132831654546115969382400901191157783807267696685443961847118988768037960502609674078129870035056007332991510666117617867260655037285216084763356898773659546486050252622662893949697179770735038189737219312901439270069928129176904336638505276817580160548172999611987747518352088859571163818410673006688701804628594168446200339638439797396555525826313511473439726100115633210098559806105755869880326999309568989543647944878065485523802574748733008884037595828004469471561978707603516534752003688233268348598138211851378044930642134917645652070962644420455129022736260457803616301888291613332373521491115179017401146205476280311737002123526564438662745548155718611865733146275903687456281629570506656877763435711335559167418454926723180725625445932710389108857041305539132810158770246262775082602036123797525943709659611192682870216477361973437819504701736027063765413453936559825019718478549018087723697559086414732936547454152181054918566719197910091780323426119659278316359637527473746883643383397086231895169538322691488811171026870679526034115154813411701703304205265733200240916188979810050130878997708701885649017478320777908798557959914956482536139158520841244026948524489615469256816547901175376079840043921661308252832111454757180249277571738256952060066460837463300471545151430172355140169962332022433991581343900351293374663747165895082986645198569794383308136811412276410291120065904785917601867774469017185821285875627513189414503214388050272588074600641042890262640708650977347355711354740745239011301720899032726472526231509783314624722125706540388526587497213952746367579430156000749790810678148392779237974696263900601920118193575379120946770773236750581206253101862435915897058211460353755767509951651682254091693173539623431021625337537894828147982200899603245555423445115599599443995651365435005129420685442913313304554418655997755962335750244136484490663230657354322069995462961185031727281270738419097256758694520804527916963344835459631198417437600391933614328082306718890188866136712673418330246749501499002121018924445664056267143182993004726405034056656366099996515984743924226586918324849928368117546436060725142209213423843914566168092523741975382185112519169323281921229498274394903224665971191778704352476854551788925836137963023960369597635970604794720344088953384160872882446464462899447317640647451326021876035545614694653076438408711025265354191695623808810623901966818756044725485922725129677148192023996434712246953642256902257384396162119318450673999305171331086372532692537740262715217476002426519928842282821445333250605033138766077275399687679434827338904163915033505671574092834200444609803727561343903876957747892713232513231978607072132682177271942963082231063640355007328175474818652646151243234263379049378359603715619955382318647258552612447983217706447538794690045486513924099661260331499869956757514138311878202732357868742625246166843659967285400039745248654930676874086419901696735067864652557946060031278444098248673000823484780174492719419076612297145241789702633280175153684105863060103790072220296605126429084472772819173073519711952428872818209073767380195674543320987054451268821444943825060444530560495589349609994898945687280361590292482148027697874661301994265901568157163742946747290616832350003879320083039746925409327686427566882235081929942603241476283092055346685956344637430296871044609425721263893976903682870303387710280100840624254108676516780156419735002985438633515975137173933187470115468681567973940498494749097912126820660471835904400691644816985683114094484979463696982363022234627275096817438057462218287523345013406931655369826701722117978072148643391039527877002620065578223378762978071010541188252140940323864859685589100232897603874235798138416751507795150855212782378244422907779061031971110575289854371704634446665550682281671131663725661661967395511701366067704046513117855612341815134877970676742096776945138203763016051643224797542446397279712345588529242458430738592616452238129550310661928963140196497899824631832097652915401070538786810166970037151470194708071787420460433149940985168449110852464859499339034696085322992568409051878398988819683182884901563269989544415007079138107671549704092747675257055959659771646899939754959131788699030715927636096030366010571400489808504914732514703620882119955194225303838625154024419836314291272764431042199444728160617559115744823758489879304767909748942393010319096875638263256802996446360148843336240054003684044622230849780924912752746382269679082909596608568711037018343723438497658593269490813762798752622664832800187314056726085085761760514086861831231157187503392015674439339571799129603937826565206934911100196553886358253624634617746708755160439693206783914203260288483741045947643218093860860304993639948723200784193927788049433900962506732279807084703521770960907286203710091679137431543571780620925515423183774675142616437717368844547260181571429143442136286663342477109750099376831474818590592066252578241695844604305315266429981457231507991500533490279140302068940593725642256836641412233482838475637633770915164293018642305435463560071755168162974630101344785172074871735067291663665713541267690804034910981581012285799730959178640997977544285373017404295642201749479961351170928864419932413473147873731084853501353406152358743567978403332967643714713845574988195026764952464518868334443528056566934465808474534106985424490962478959315029076175599435987994473152412204091770425211074425374565775652504928680502603454454224616883383793408080889071121818802405675127257974560888990720526655515755082344527874373033011395704871823255712616239584772724222568682121347751475285673458819935942648589105382045569845902248582884216977701138670705459262173261429174095140184587909788047325626647168717608402550753580421556685644386946449316919270042104040389669944273318368570702883420807411070359400752242921429580340386168875149628904261248257359072876520541418579190387113046938350531296384684817885098530511737071884626266407498454142417264188444959729128997219377925188371473447614072308476183174830477683788196466741037443166455901051117782616011396772710249945226743605644064753737081679737070067382558361264184589295805996735025510317332144373299377070820227051600926614686431198316962543507551436212632455276099838183014743193570325456606322309273016799799133021671192027465258575048274064127988016386191380080453395167791753627383616423017337801134611190555226974559679708667798012653509281993558626266691451749131855373812157237473156699399134859671670131368474708268316300217715131705843776635079516482134666917232301321624472331562249193277005674753357702520739258892867271154303335781905342770159568195453403491647665846317888784184833074415727682519228159493966610637668914666429253470345654990510653476061182513572684675221691989605873910706829869893298972391057115133622681480406750277491053867616709433630484434705488405373710262290286045627784982631441544435303245138404360284071800451129169186924942359904099092035951770664633376312375410858749876184006943758046767799625138783470788887617291451819722473374197873826876608606216843199529136478463883003041036397906952478197451546481464511239239560841077080209096127269353812632793046301521107752971954901257582775407450141185524402072609936882803356588469163348174123549792562133341273537878128721245556803919362457186397737339158611322215568121837231134890545072692476316826121408684265137000464098015740681089973347266736165008013405198983562375214377253181465077431079865901131121265375235579916790077919209997475259200453691058391310877780127358236529970008610031798285270868590458458675841345237230697052853008761982011353219426713428081553880591007363297209948396951778565146598056322737623699317560197499151936341441649882090579293819352028088369699114270435255549621840814133546785313435417738111685688810581498544335665240424859687868395893997139468057920616492403597905634232869296817906110003867826738158094652665653161537666473322004704725960940894304431566139932507427211650659762089050097760174631348084364174463166000270230828559298634405202367602816313012336991964229942496296718580886488880574769555585914970323590477448278799642162454048381252774973974652276016901974642875764710773241152482792204476568288325550492332506128883634962551619949133278096512667807853826295885121765871437644935389046244313944232477607003740174338202056503074429109656943432698530455865653235385082715185016186577151537514860493524493361451320709461599704777733763944974141101075988694267698315969045758719062629430215086190776285460460381084513937611802800200548532692788241534599713126552835681208291911160280604273987640908298212145236932251830414793485218097130342817980663781607796111658198549690866257694287703274511270727729851213575970305442962344333159033899355164372785529992992911528696130197590824355962515754646744582432789254534635574218320143965469400457124230208128737926039150284200096056962041732878946109497327637827421528238689354985807783410129794809822088329754623107714989300664709416571658763071265001673970509614255167029665154806755678537395426220348052582054202650886338156149885617994151369394010604848859519054593183080029508143965408140518371647898587662521131990390041942109716374150030915963360645129192533192725931798072478154295033842134735025737855272171180205325651188802623997131498520356596091830798953559036846700088285882500816605695220389766020713466698826444559948488865284112028924836046055149644434177127318667403978073903705386986785276356136320238265263192122006165291188234916263534580503271962021391653594513963867131849568481596766496870894316388200377933223640786824857044991372376480338649256001326596425543012224522031180221307690169582300508719823778186873471866484951807027843986456877897849576986142770493456917853272015937983660101582659548384773083989287633317731597604975905804284481728603036902310650342518389561442736231027456989957350018380452199543970052807167242022729860713849675831887277225101760554325665881788741826860301026938551580485902178990456260298171803142019088150553254433792954987025600836729538968070321498977475192826393630239116589298818768009453464591461298140026072731387560883114921173462256893343311103873400705199749415717282157834351275087481043580080411342744846207071001635413661039369051236234408883179156962850323591679198154127076841632799315986449514752393724564923615142019671740720120428803092387212765587055170516356867170181582221763351357095018693465284220125604043558377394432352750255662470535826328233502836551615829981227192825474440066504070274493927051385885779016755598335016429785021856820287236084216422796957857236880692241444790189592245153744416121520684794829033244346718621630979486531418639576188048945915373564521614515412247350834666019984916059437728703035924002594805884965726250776851102280855549965631728135008805329314527765446150784513727881502600248370590656129626193844441209073560498867926157677803944397432745539482828104327886666923692910603854845933304412568153928226951121204720515974695263004665264541345996001061406092036553253220875690306663815576132164221999652978327857929517388330296698445884525374531388804114764528795125427227687346676283778789175356157794597587043055185843405081314262605266500338351171713258747756987023481205729406119503282956948753521987068884413457529091901462781165567729135359095161949864903847085158565309783348944952270885449327479248151117427374063761641686266237030608939814343054207545285681605872090882229989550377332140123544952626583185771334222232979350653733675696342883585836789365841960549866950775234524807983963964145088081292446198450450679451435568740344996949096870520571540564355134718704974339757342816759471031039425809339678107303056722435362480609737872822532471516306796323668141219644346379938754702534889436200678585529064014510912447942852441187540318644718092298844402858419570660975599445662529931818933213626165351765939448261175226436877211394859708335850337950738790334895606089207224863343868729109374279672132400488109120409030778319629777964702007047057730912886212409898725973610567132710623537871079014947039650113853865122190695123865150512063196910062148514343004999506148357289458154546942601501579921077328326191057256122417382190797321422172063370335909010090187510515877672362125894971786787688769941844521902158255820052161913752330389881963867280009357860673354309806945141872700312433339428168840832933692917326784868603492690811516109691039058198584803747731912756278291426774335839694687783853308220421236409023789196473994123040128082363109157758878135267358056244012289772312538123300664728701208064559061339758198279272602181878566672975163405870342470240434776626868741223604058316755965608017300247947209272413423830518550736466753955926785788232584170881551092572169985876496715944953829783557366264004444014950472661492713945268298189311440195868231653256338720586799132593306501200628729307350873748533547076423323947768003087682626479089669898796589932100926120218390844172942828926692567258357139143439295083127793377971090715435964880678722911107112742224729111417601135232733315504070583731239916919555430137796761388905445473796694514835163899840468301786452804001919425355926370417301078780897785362435863917977062313854714870992417267940052975010396497830586023114274059362518493302845425585779913482111005054832376351963858820471690496046946994759437970842290420429759095713443817417858560229073964858812994741959143458549292245954016692942806845912675500100794555685552001454234229903270126435547647895781207242793092515206146427579966015924349872604383397078682107628248643896599341000567920784166174403235820548224590670822680117449042583518005928626049989331885521361336451583053457799864394185523412142211057683757742096063891216855428191871161750572334781251190921988995660018507111927633041828083659127219078100104976485183618302369218432746346981428026321802406411556621033687326051679697962408874999929089626697586518706031494123064078769647890672594668432992612314401225782874654436565649958494038242008117713638089449130325619285931688212758883883576864280748496678456246714091373084399919771422795419530057854781108007903707055364874845264482199089204819041611147493536978614626919074159245285008622892424023860395017082585608844550332532987227275995159120777884476965974069071194450066990735693057231505719852546416585507626317442820965724648496140132151435287843993921025314367724181096206331084412960462524726978127217470742734900024276677816811052750496955174390700961650486339599355102253978905923710342251559814284112602131291988068136714497146433903644783700369945231694364079585073098082176490398638977747411923388319147859668248306747641018902561951262869624094071563228140995310726890947858718104616097016948964197227317696799610780157253325685656178888316663195044970777411400829401020821558697147399315727044817834057092983790023294604599918957732726730455780766234261396769754109968934462414463537700176651551228230471318651814191490639788927553726534330046158596330798439957941449226592188492385571641171389027823742222897090369213059327202957046675707497761039637288467274568105861642583994516063221882954877703399318300364415493775186802503054669512130987361070602871127116583632835528679861620462537497155927972558725270669116949662743532940825419026148904816648240958162155444229517975754877901428383933868960632980845148212369474012510128319589584063661095824635494295454000209979227676151988111161745356427626808972416867971509652217553719349440869868997622922153598949006802168285980701521424147932040160566823923092044404842900105041979781605151168133275708607849760575438703437980954743073669159822495181451015172688571652569618283949599272299527316657280951256441433946570596495945874577712784928901288471180787340675965832455164095853303278235092177176067960326348835429842057237357595529424011501014686969202116352015847477522811191115980730802640092318393918991705474986473068553225682234015414013154966081989236300006089174699847826867553313438896490518005932847441557199636747295908080159788060577802486856168788515021521582562225046583314201794556501746559596864779122388375143004749421479009889710213962664325584048782057336536763925533762432502170373748135293528196877438739863461024150811197642964323844120030658644494700615832192166286038442697771871757188617760045393487969292396468857338528055166091520277340334584813610657307817989591586837275258483832940926740292156494121493359350904447014066468972770255476889915144605765664138645654910796246018994145179360430006548717138788533429012368582946982595614810922896246560699323267260314000982190641545315410022766017633855528689695710520694546929480850451216120753329406731958803543973955710816738868585564282863430960682134577780454071033006996656563556860126810979533140133795949014657425436840588463942839388129201069583611256483478678148740032835924859118820513683531749499300129378555457739951819954058195931548234588592307749009651836363044985679503950458957853517232098021391797418787296563151224989934496844468290401431288247311592582670479734213802705498673955532516995593202504766467840121764388969378758298095908005247457980094646827545005465228719817697917146567435466999681060242540037077891478328614613310058861832137227550430666786116871575455701398342710973073614018082694892949974419801206038710201986662002978060311958374562222336186052919541001680387830686982552671839826626265830854169706653707583539801294825491135866108652653344788091696255025643997357323728870476716266248323601707506398312216228266597375696785703412556948075104945037671640630172541519710973923669224050721285504761396096954037293934045140897800256393327930092817060456558679568079939311551756552345911032608251263995131384679911635392320333567061003151694243102199288830483613901698757327904185086405005607834695504184470467446619839996448300770655532407705653231016966119257740717807678595436485590389583248205029996329610983815227908300117573332928592627095827098100439821349465820844045357314439751438593716212577195846639727808456323023237741511719647967445883129296368076453941919192305116986260512352326948210523365060517448641032111062677687464025017719920365604188941248015604089568531826062562736105780426467668581988311098724678893440313771743122289401944208937007829999310949994327868400369613785527148534532283783273320091743953998365807578799775887847055189353239183872771156967991076996135554190141069669445016165079594760810928963189155874512867329814888286648335801450730732774293294555988155124209770901529208971413436281796300840326140292380259930556069465184615908865755128155278882258728901918510219766408723879982014209511100176124148404114298330999645070432251185088256517836477484637323198523668497299025684499809441579655788501300267955869968623807999499589463712550056088450095686846184408580423730874818112299756960178060871354735760800718791258077556318886588225037133423722569902077720478846088218280705819804105973076875081367862570848283437531548357505986245628493404428664950444815869234831881175098450613872724869872101691051248971070945851675489427046881263030368536228887925807074595428648415215723474333053866880043606884134852489629185651084848731121196703323040339239270204180615347697614043774015743837191655078748687082382380379811331126747399599264886355209372204457894312593097313037317017764502405406559630214296887153540290057741400839442701808795769503877909293333266183800250418829333778111004929770547456123364645455617855682493391754886465116833033829466409354603833581564722281507853753761439846915861449556579027127342408332572320476667621047446025883412237803427586160383125896586160399744165071762129176294281666419810819719860779055312997160251970302684520945517456045052677916570841926152332810663478849090729809006800966592846351717011397475253667402527897557565305164471461758479679298205382782014683581232025672379140102212041981049024151647520308703748135866813972358531508368528931887152915976393336818115310100136566723160656701541658798611865476489736732098110151807417344894059981694206523954465370100411021936080717003718918804129197634475559805297071384988120140512021406687620291138726517694738270084607329918650315140901125756703514851560044783398228916652341337969140137455243470952587217420478709763755521655629658282642896548382801353072544415683463996373516068324817842286524222722099412500013307202457887611379403156265155049127365729437988280157338176001928383173203399709445339194608581902372978531894908741964928988595022943975962085460130853042645861983541016826428995418194677287337397888951408956804843398996524258994176008886647890767543058525937532329300693655635242684736124002840183697566222196302894740451378931669286991486529028350833182004604597554176074838238311341472733072160449675627329041466195885098543419895089046901739949665868447732206574047343402540730852122635410980698311310808985786941582862022373832770782386944734514479386399370369944802411386081806606743865320241754697221253227325475496455429555703018269037082238901608802416652961961613494792445868845802720497439776075802357071491071676808320288423532579608013864157957901856417804731275837805043049515706141149541862366252457787127650841799776538524696568394156917582645380758086155561711177969079277583488820726426304804778512973890439963491168297188863946895120496106184505624034808018554144631086346085413290583295831803937053645513937404185697236824720206211032066002542581580560592805937573956267258768906955697459711407350137788194060129714010743337746014326430795606331556507556292383413652902297055007402057426672069417507103212931368185761641853582414396073574638714380823615220411326274312061895213509840896203883129156241325972930155242060312039580438454203701804532222668500908590288790289471384462764391007585901210572552528742277041412482288879253697117835491108066367510898982306775498470215337779241076664699377179999099503289322861325506786833233273458920547925322871486909117096721886307810646814436117273333784841757580417408799389319674582911400549818193528890826368303338439015413569647550907424291626784936547348289021529902976465136538050771930531248482112711038253501202704800860927720713779310570690727729925446912936412505862240911641166738959820888858370983679942313215294555789897207556896897487017958060476830828644705947685483356027906267073619282178618083772369203837986907356517117485039972884850609312144616470880003529225661225504778250638646817050413849626220707485256660877654794904447226380672031022734577170231433004035154985690166479151479827217768842606551561029201469082858797468329697502146975991038276324819464563922430179586201764259220693825973025055045723345608330767449050635438630256468708982630242205931341122917569741694925031305718852249565891822457607410937934623784701469325857774838598019414152137931274850557519906406066035077997822307608940324787947483423560822102247260625821165480643288356531096665950799471805214190411463119211005656717277113127794501090264777723109333268019251212925865076726776854838622608928840055510417707827188470452914795298922522634760180948839158612695216581991420059839855521369702700875941949504106231135368275858464750589435248828041461754658371405871098659586771457598931714885993242411551200569776447969523088345924946551914325040123377675453952499505570902503711790682220649885034366342616819535136446408246898992728268062963297812587225455645030441621695694693169269204454237105252260371787889839780334419823806386964235322660468510919842897932817471507546506450907001968408262700166688432320831866863265915744584698925458770921398748144294211692965780334658990817414638237525466383224093124832572410058003774163310715733392517377510870863347567897072661835620714071860936570284795623032553407150480520951356867833800861221595240781762462091701839482566270780864273933327338175318888656960773620883815134889011094569249119516409202485170910394982168472843335833941192415166183105063810480281125339531848592491538931039441360713356312030505690224686167206413747551071005343520483464587626880838206479064626796624535789336204442554876659091785795375983673667242098306121125934279204698641097871242442964868526234317154536984705911497940121992316706917062017931135440872149329466152446517481909160998310323711385888658477158138940748182226643543625460548934836897098109813594705920112807425974717505559410798874329798772799633809926774420184727068345182673094877125485571560009490416819921838755224629811288025925273130132666783100696483018276893528177826802565040660732824449007355769279224346458037173204769569299211112818783594421689918171158481275530386622553647564757822238848712132070532825743658432224403431341741328421438461806533172926255382428264443330043694961931543649569641132553508830349682753526161013459901091869493712601684895534431801054794562126243554731655988139415378745358858765282596016659150726918671849248574341396778889926804262523206207822103222396379029765690202691051076496953937244342489450114514971182439762594356067368404904314310081216556068031816045843798236998854179123949159735631608543353581818528881877461753462692191932095144195043135676791293811220432570292438172361257302798231938541809180965672000386998987093223131565035209215708707058439390045679344253876827897693645001369296674750012163953046357803181090964537662348091553570031694925858794570245111685083319026999993088834421622650072845042000807541326063942033039659953643899856840816372353651256411628496388933440008495883888664720432836196344986137869343419555272500616163383676693845522910803599091090229148995856576623016486126541116930203847157482310000718440573693489658593453872649911716443467853619183073251491998932598240332973575917845398867013399447759303164788856416555897644447655284755298285280686089991192411825387443840976216343540505372692022268229202334868656890938969581198332952283490409562891386732650294248194617552637624599926383932852625700220553012862262085471229359895210377026863035778666095268519935377689422834931724944643971530584127361938998730038563346564955095807000941975831243080012434925565541956530393286444008684341556023229342418802104746184022974336793224621025852526830356748798931919292294745918851639983246726248486630316186723754113752846025877476444043063981734665343148385131548600300222286723468977989052986913089453993213729468989838878680283685747978367374783343548112171673861601757565145029338974242048978802303766070996629293777663943363469441299364944257209348402691600615460619585725048089828378493574000169645924930824500367580250919640420253586466073017946234083381489702837585660081379713533592261335629881233205164907074078957882635886877072903778841838250928498532819336907425359795778931150355942762718283636498495115993560904049544899667830038871231324937649700753245142041857411837942448078329801458211964378775721056525202432834629502169209592133744914092477618442667498984489146904102943129141131313564265520793599016506304344808225707994091118614432812344533473429280649085404018618964553257667322599262394200247561551019798565689963081816277880405902484661414143004477173248947074631236020155998960833167749821402859721430445608879704918559852311595388636098567233800329341407758888777238823768600133531770284847881310644420753907034438885633673379878016116259566097867919674541171807597266088269462199022361214140307599214122923242451901807534230218809048245609897744316364853157497481855141962559438486421820716783847122779404542276265367954421438351540274547173019015898836817921497335835820727457786322680476134263858486209325973749237419733797168466775825448248532420638797577305867661148706347695528416367126029456813142210043361094376680379404696046766124717297026532056862655151265691591279392582365036037911527087443850356116435804631133807093663976958217456253900974038038531655443161163385801908522747339662240611241042508574846088143557278927245432873495924934525756729505938706648546550497260648638725835357216354596505920553410667807010289119450665431075387490422697140580113144360786113652895589029088262840400625632783729590079592646385380696992076036140702900055733220881828151420802142641743049655240917506963970121388500532354019330294761658219835758491132809887537494279728757214506611265756796434287339577802031285101801803183826615336399010962601695810651952115782460331278788643291508757310547040325862954636857754256264836676149196953739497005052470033490086223351868951298638010491764199983066336756819459725048205645422593533510700550273439684135772004900297249622697751213913190151408458505922136946391516113911860554489439292932236483012999217883877668801769437959984452410192001486624160907524500724497201595330036641516830862728022633935776191363646813324352785829571123948731802245199766158917165205369279497935422226517261127827387508646591615997857436164088175536307083759634435460423560963585035919707330870425091368732816442225108704598808659987858350138765701882720345594390236726066158562997336610041191694971510319091565707576129656848101057486187725142665237902843951101055742182097336170577615755153232609117326029449337529311127958502261228348975849327266010215409311601274035685725588332816346954604957557273633304918963981679569519932834674250539266895961053485575228077428447707101707902686420188850429627435276941616258137579960837482023523198634574207872732911984790498448941676430481371699500154678978289485379435098206243662011581581248423374457600353593924061385343458734941622638800828233678706836121009811886051652961482317289310768829339097239977344468489190904542028593984922598445856819456570285459411883721180385410546553650961645280448530291966444624616572536489799152282111883977287544443456221746684603876039285901649807831498963038275880969131779366031422229108819024620370383323072630546071626071304869474126043441011913444139397642418145789010909814355070537533264879472509739507998580677303138560829700664172435563117197865564687786284828613954984168732514483780401522625220423248927936630970465957694427111543359196322486665564865615388650453303250410356845915034307715837501757319891419006501013566064997270332598531336116624095948403008249636401705421836903001798234685231988348259370874542595172604311849104094528284550073396990893854675796860198765551018924976508009041731397373009370164327038693354869469768246491524316663842573889322538831574576315637597613691102310146652734722627048208879148379777384023379953431377193948434186723117083367453888128331473940227871487772615134764556785646280410132122297534114726132353130133234273886807116963883277689524731100725080816120485701750745831579236190225837685200076323663856758711868934576097400131412136656365322503862596802163587147179655286903817777489195941218305791529372360658830581972033036398172785517313762382853030114450802992168527606791645996585161329657685949259596439300577407669803516769452853075080573804002953867764243731074468520385471819228142901555741500187691403494111546048099525561924898250202506421367192905474029697027413289578151257193771969417215218241850486696647499620638993827252883334751278990968992987211534470170867401672243624613692591811464112533528851944323575322583913079809126253720553852211539093381084014404470711809494861256460804251427080896513246785385387155366185488849988627570470074609116156783248507539841115842750350673855901625377121073630282534436824555990724226466457905519809651444426761238004968264411692573588468666534230749142318139124347853948301642484832100095653595886922621567626046379158536873060937493346157438616878525514354406007823897865367555605188982107096083987525039530652979637227744689553389249708292872425287087563716660114752463827621522280865433743719256686203324322262816566113401165636584033198704536010946385771958105947928366695425673287850336929510150958362077684390621228900502723104055155129047114580835819939403715891324046976776090669355212316318168738631663175086655133996713915562940276417542151925672458030768537653848955964134964332211818784733248916867163373061103260405041437164981918386632252934330696176533301932259092393796745705531630321361396227748404801709973337153606121675157693173789337343956016385091198903698604039285362001432535402455649059912614458623461303276728171386130358419772672675037853308164799151441996119679260519595452963102023002097858390652751955778535678334022951559185999983932120692725154714219443662475986280674709852117547549680001112181552862827944248198725749282491643572137309367239155885579030300756156240669026034394696249672746609603995417944184158537251476658289173905698480495263646991443114297554621595295932021759771336240641123893752495548057788356821135249670461195928795809044955467722644833657096302041807976814082592852210241028321768440448905774314304917489949128096176802754094700733782466285039664177817891643098729189658730545763631442386277454219216344910155939578690879842937354081636045743890202327822270457524617652265686652622380685881805799690908222598788438593642261144152578073638969332809221414667088951488176303625689293211460153398963983379251755340058373232357979345176811629279679302145864469017063127327249224845880049552478240448193051456630071495548894965735320874070539220924069676902234689065253343677911409727125699739941696208534458584204175912849665728808648119665718648274324274655902058867249341309260802106594033454320618898371304797966662375687867936110164517130128409486935915032660265268985519495783487402574639474611315868425428083986214361573719008046951492398586014159704879858274377710223469885755897855052415753007972480225152844688343374511028580239536028305719189505110145944566412377232357097996570991406080775483652576886564440159324132034204293958920663878962117856145155168006492820760820374065271656232092832861081827859413849436633274593962514932167959722232614564311194099403175699000444340858161833114820367515146856757995992656240346709376741402723323762332729522318664766607984511685086365445560152235074051503147296215337830693830869888298817437030788422295366404398654632771133405149146679744011275196962833748875721783950685013215360713171752119521058142739273048330039538384446530157320682958174850236831077490925992170328206071016552788809109220504892037443765848145519865395556402555048866895277011112376871150799210851657576014805267265309338204680920319250330362628962836393595619917741972147135107436973823729250028242983110604772679987507460867806411437207266517428380914803822720367591799095417592242027413830869099134696382665116221294619121155925085263665632597719864774540356726982695462863792169131797753467189352373729877745903279767689561498774722329537741787472451662273862015532308390184679555251061954333714358909719117841142336731627014826216887992970547558712635222618567256520452034740220570741020132685572316910027581386217049524914877890247943139029896923605193082835053859393887646897392074955598846367449537004770130108825228968096420656163577459494032468267987546601926605326213067615069279961240369545519963825791002105076264224863411574001295198773314901608366689910944389515692280916831119684179475513782097148614210541306796990563732725874089795971636750123419852534278143908987452756805547283238238444111863515729685233177225707696021918266283392465729829999157284696899764362974884044642088038248499382603825709665689548133270972012346794285161896285365329107397380025765650470949871002308342497206588737569134926466217748196698852671689735713525326342880119354635246157772608644443034176317721039737532672229568304880678966264822467832091317854017616464140341067318100413572243438041676322849766202222248378681461267347266634863725959413570548979510213824025636737599743935873872310789259644974988211132890674859845490014978282806500407245111697589508773411067980636981284968614662860166170193428680085263067177883032370039894494593155835110661588166133073275779882265506331252082194862609076608177973825534637214077697970016441324172360916416500593803836052769865014805213454375262502867492232715233354716934525784750986899872262754128482959288862895964357654746680870169048017549975239986332423216665520460001152653806625241133614213137580114615440018933851938510651014577938781038605516508196703685411447784464042224601854774183300857332585225823500829221879946082717432366530280680904081917311130351546719466198878617712048941720306342957512985634135035043558984990122628709006366358647757359419499597699627566606517453596075873614113867811053488344117855680430227027497344627029740392762357430251119534094793448204332029684281687692820357491599202376399018958059814936701754454898348673729636022783809107254730714516826422483354403006456552236247615344165222015428766384038728264123821868405967781811645812533959064147546204649822787940103526898711464113576914085696414386172791418102290488853078093152306000415215357064104716244821643144498163680650002126504242178817929727046522401976157116717573982873265561182776142214510446019830343693680678179410942321073979250408025637325323422809621717198856177157528341750038835493938778782163595067637231838736088171921522311798381869187129902700214762005171288153151906995270544982355424066933265574598425557795018627118702181884998478327093496665389127858781546678423174677376143424354763853073989869618272015711422511715123831073349328072638958009694813142185572481118474239423643350634522237007253677390502048597011845414891628340111638254828517244029647525190125282748515650848922888826376819974705514317857871121825619447828621428882164825501240353782424890025036384119905293779099460770578038359831154497970872891402244146253148192846678157240718071152620901789807587637322124842869748806414456497150291608514951497087505843772428067038320009178575305185037080564700024147579135002251086636095107332184167931862753586357314597217422644022331923531024712895060868446374738433568973318679961725051054495598250221192767924115876539508272340972146381081664170089971717351834391968984954848124990740219967939223722289176967719076688145510937463738960985128145828714961736487382102418470515279799608313879568763746177223590673125240211295531205790924771009355591635694315358722683547992181715085684269827909287179268994137818937808376390282763973243333030254588477426021120110530943615093808439180282684365108709474893668044754208071075664180458560400274130409251276315989702621018047678284855190612551185776043379805292541140051841134025026814044322254613507753551397629666753779441935987315952346071915711263059415061891677279716841079559568626751371154670131101083696023529690872864363528413861549601336882709536076955278605731298268435838149823653348532943624916702706656326040082234410118377100175032603243842291122917982123127257394822614896263771835778928211685330180111658846418281050465178815166472724722168081806181915442698591325063249323532620163230861156439487508875956581937025423094910578112956110179512918265342178657122651627392432623195404730276279700285151376750246145264769841512133927524157355556207138646911050607392166524385672087943125563073764015151478825703952888988365406498153379158939678544098234188101118150539686381090257014638897641768916332415873801767427006936911878481658303882689176560362518950809688743652006446008628452243039730201666042678408225304768599806246695355352510748905622615661205484078173278084485379395295096429230526858404972374212784691001126747799751348157217819815177601085718376327314639605416521928391623981339366849878173088993380225018842092057147594689668245421994674010707964493022082822345918930047446214777040333155042008308986088624783076235869019301508364598606991800751395047081643643019858519669685675510894509587603377628953917403403234332681110006881388555518287316900897209877400633190022904037434241584741363654641911927458895920099216793443946979477177095930619582456391697086044477585313319302622387569019123312762614091920480576919980445077730472111902021837488863993860993256485655795935353591882442101270152198361680923704429809082082631905013122484374725431245606633560613346181761419780555091480391795684921253899824111480478378141169839336325561940142930711950758557863395994808173762764706892809547278734191572352309351170204755839274372404567076830171135904359611779592731208735581431992603769079463362719349669832406487831968057182933317675980612926053455738393006775722941873634358838354111658400177029272169153894899558781842357459116038489807391760752963044628553784981441178856720835476364963913331960357489639727328385439828150431050762263121708910663663779607589069029452123004793708751670928172099893782038148810428398851209886206493691713033145095657016278153493198228847140769257240265663008333644476516737817905751011875916559592119266100277262150818889168158418766465964259379507347928884286000542404554204843510293090057206671527104601566264394622417010115562707728960539566165321265821005669271765108551310398746963703138946591956049878872368457191807082228165891974396099861792369057744212391134010144022916865161156404385411746185809763636309988967017478325680518753783237119405582597956824248767470050869024557307090797194255912136581028179037449432745439024667908564740198433292896818120515756885541334537234137707413787998508723338404871489385558597238934577335818088816035584759842557182897725201799556571842921380807397034711070731238982930200534154057946289081038160771195412018265218932852357455824327179964191574543522963383245598958598713902092048313459338315457344385559732871833176355246426008380612433277575780892354792284293283717037308756727105121549555380326713156058215970492844274022323197315258955310719629861706797592027060277746577186617358129064776941850949014536571992255469035189111365286961628002693657293563178917874948402415169333632599868111830075609013868807519414394496639823068683725657212460460159882217189284083008726905761112163654936947669750822820831359893631435301192600568514867725072799871751805703209016967718868542255691112532997114833597235012746836956286227913851386734165975073474093689454716661029743235622544633213188229424758140518503901204900881537262388355762065129659904942004474825187675380691069319315760850911364085014364212680616785124173858892654688347863405137296844824698677157493204417184832670858247468746263101006105473600680247835649818167518106732120730561985530090319809693057586885727847189887323963266328416068754554355426676184781290904094285693887944024417696204937181869034095975927568274333769190391082938721644199836920612004818136844815419346969312151596776278264742732645008881714629745964359687147152101653480349488759040974835410976089171350648446826415265801171423819991929786083808848381808877633607632295851812883264010651461771446806905700825179554223140619048300687402110189546933656337092565502002634001122580081900111251578553554823026811318738672333372837447779362379578250707918199881381832174316379188379804353860532733326105974098059142310714256124736794717445448278027818519727979779073524644636769596704558243980901743856446500370856286808670082848869045810864484525930599757926096743857511111030396065012395998112477605567903865567868572966135322638017071655680546418321839686552691080868833999876171679702451546617899208531052949047621927308400960158426552622868058674795934447836960610008682226017196354707123294782474942686577161169102674564039850906763116427517487746876967929707821281261734202863383309237509834921375959607258092751489674281943590698963719837513028186011193297922098193127763015779810649669328668503598430032366509236632416559000441209943646053670919124631663673324450954583190463391828947609637927864738956887319369012485926013627351371441594798829370716578678545191470539271027501881383388019219056982120188442540354419270361598639870165770406280616658585124952502862488924606006691202268992260521793667634304584404196563704896604264811712661137470493059942714170931948454452816684051331008228217373983093279767597960395818879655015612533363008727855300794477057640774366136377957451008428802767009828821579197121607174886903284568037148692687186137459931442692671320593431195541990970428512375245038752499345899462760011169091416305335848863744541886817330844303488086231917974621605888619941317503453905321647552904480608368315090731864590541147923991922239604828683690157840034151036029592504348148353149619450356654452411007281262366581073641909162100226345965333867609360452078541572485815497203401519546661296237651320519949648268754769821356922736760270947908869119871181654580382696856159779657728029167425847120950842511354659012915582834641802884125232113800158958034444141268475811963158625811076756213819839857002905898670906663044622032893175004168773509597201685133236799367141713689456635379308508283596323361573810841417275053638853731381204408983274965354328999060454082485826912065985739693525257060489758759066815730484790508390962697121704970891725582089574827476353517296011732200487477649138696517715207136032772778758281473337351152799250676898522657161457204943960829466867740559817350754698775170267073152111213811329405335707050927238539107825258329952168094458666512072944661823831409316229865744551659163749049092432834112226245977072603996341850858101791799948417882647478646590774323418778331008730329795146128431741243735494092403852150861918548618073433653975794670868294298697455932344099700541234564060728981985479702083936644503170092285274969611129669405652427974632871758343804315046975020289459491775165325332784987944208646235927356635762991931253250604587139721310349467702307043827945210794619730931666094604158769079492432717174410748805676237425808616394441305541109061308969931577683794129386458020237274871259932741357110918151109049438818450880641070241393595711730581129856378960902651849990702814133516188476208676971689953251979025159749667756675557486394982809239398942062776015512593925515305651157921087111922796549451948998592934183650223211101788466989460893236371398990191887682196935915788787304892648247435449764730981657906654021832316222799707661892334066432857462445559568946858886624548733320646692662217403843193098672382510617255638805653974422402362700119139581148644836527471532624645002697253004862789320779197733954073808490416701883520351565069930165358749178044586803757380206235439070020240194275886074972360404061708539373991930496130172318346961135846196672316339407426351052484296854921218091952427623577569391304153869952388049942060493341593054192498167760396560557472548568502464254192533699794505975975114557226688625072535462023356734702010104356725432978525692481592991475934853975907228768526825027601747764514460258374991166315870533967610997648231013719605344656804464341244030288518399232180390784489684604767746145358969869224796969069961653738009424135046927542556514579618375418577941017532286584629109764510512800445519601442378883893542362852684931403960365360197061844297780804946212743693956197679775143599524771691732385528154167463892927591197973966349579132216103201224729573434847349939997549481811964366859566313894592701220658164912137594332317121060990799873341239810344405551046037298758964922174862272982152006080444076191849363117507170596506288739259562729260635759778029027371089966169593921339721644324772027598555331311918026588534706598334969209346506058734779544921383587593455771860828064830192128669263051799059396704784949419394850405963306620952448018857403179055690468463220468107285321877286673701448117337994878994474766999828482264330280947673580025302627394165639048267074356331601333392209461969531634808184522879910021869138939129490961750890422053926662290993614235100191606489938273162337057866694075089239006355314910094987477680010510649992832150604821705049617905657059938765025266226357049008450262631917352778343386367590568040685994951228082342411254540166692846477978113208419773515699834645404346481507787795833082655421865302234028360470721872146803252501882571421812933156047682338041664534389195503394454903290341355914845851766360879182387974931843898183294705807043203946777482619865420660245697697386740530445077032225441175023700106234034491581295328636719300649641700910371668131769122996217548210279232325491058572209248553636579703187831885831510886740049251098333600925450188833786375222330256558017596327079907001642136972480826877598008198789342506373345769304157525991695304117308923380352453386562599953262280787182772643042084074846513376813707394916460395221470159291407855709217726917325813829647246296024745736173682056093539777040646991944132843531821138266908905798108062672267473165875967632935103474207152428447865129340258434337619174062919259007360983189853711325014990386199217886102432426729722823690840546686711984157082102580349505998813797601024751718313266527973105116256516786547318584167134056928433904018644196111244144927562916097293924542438141385946435292843862312174178828056513768585371741098534085167549671990522935720770505811984051687137139345014327224709164343652096522932611433766583275312164886285946888918885010149426415318462432291845690605776851378671059685221200612831588412748295755782607215401871628627870321673047221104885353213491817000770169552249077665102995497004367880126883377121184707755030805378675536255420858106698509909978666640489644723911431269054589589487539010886909397830676872616833388804688359100434338144690408925097336206292197724403141506878157717236272030236156434158832880378027268370714541116769507549489607788337193863624919978407458894643638673544691022674625553348803170163293033066512778243544760453284961683712089873750939866179998067870150041880968289332573823994949701477362267979786850421769587612398865186786970371682928045966707627563437352176710607673333235285560833386011517897002948825706123808532929818865626857121822751243605910502366978579079522160859241352097241549603718445862919941180176148796718473133288810866390606678854029143764636316175326296532649026931850307424973905286968866866291351614747087137479816182796314777526049475526779915913715368843088153956959200203046956160395479172892382799795087055253930002972561631496943748502558713897549174712804799824069707391442840690954450330809531538586248128395572145081031167867537891076248491331168860368557695420403090794843659018946965077320541747364525775269102463957729304619706986006571533791630427326773118616509439206683743360465240758332069458176981273398672841153156686942421353270855517985806099460834287359195045008769582577533632900113652727162265341234294345022100621268541202966679098459224527997919757606352743612414175495851574425417446233422631383096110772400825053219016827754940416742242509304309414120477727430613911486701376282405404225359642706329300787913576267122910619647740685442565617342802950073898901965794880612192773410260928547923269566351556613398706381681630309099475026675040349309183035530523362011179284642500516387377830380629425981615521606806525598062627426167934113852333680334256403110166144635203073476290938032830752513885684703808944030626228833392481362706540348855069081715129285886277536347214599169328649188405922930098420064461575931540894658093655253475496355923711194104498247217224781953485965627988241700835448741856485558234794235816243863008813384385493721438031531484057136488400745403205727655426766195531291725750713735488166688846799656401453167155276537977962647529986682666537953971988178889488157062823181491458646335627049903005680430167196434653223931439651029829645449250283168826880110434889586295523562164996535574518380542033143798970274545454701788341706437642834942273008714700668819434775198580582614712417917785966607916254479157451840480068591531249281111019618063742187079520694050856050918425452611919654443738516464526652219739936663061686219050082893855424537019350368369123159024726651527461277963811928073732948011218917630927413827044559732838841182425240622883527018901378676081728325180994713863160379724486053941036350194582680573241397781908967129737493120938748506700295910780930422181731467161598523369486752997133056866963896126687267986085352463324251230990406944963880031410885381348882992843552724180360312957183263399433333755435526892458394930181434112351858269044823230654869368695373780084894432497256186775076649154678069176552339254261658628864374738485352298714266992724397394770808639373858450249291566176377880663817372782480771576987462623055626008476593307732693221710524615616163823314063643397429775431112792876515276994143271532795286175874801671687178034267416899231435658761863021954694108501340443003096154914206276533764646990984900121347332024994475654032766194505538159469390658079798830932785763717539737847737924232792158002886061037692473018049108569652355843477000535415100636547025371960716954487760057088181609566886369424493127225882974322820392137108804411510477552780217360482149647109584800569318010000108368757470307237808344461323426572277566834897648272789266635641465070668007730212989698611201681203645100268213393611893871972488613181415727542879782839893761194292597745439240046061233643039191003698566543385896867023640308777286119650562652470390767049681699089260362094322658404563983824774908974478096922925916527903845446324562309735606012453164507966388261235132560077326785491081731358524929383907338059631450380363956853098343301797305064478932430429951527316027803215641199478739110731269408576747514339374334578717730444040750801542932134880890460546713389782325603258228372549995453469218036308139006585661028275553201421343536369952800948657560320614017628130834449720131750281117067213899488767981315255979346726681110340045698236314631786112660398898187994794830141857952101442290090403368585693102547961003668406963766223268829951966875273970323403513851484336239556910131985800215452566974289582103838422852776434441302142704535097318690339073620558086235527156926593930796100024954103934341288649119268482504421329627684858050780132495308736235898492824942873794047597736942258367151825793868908667714044317556803857643423266965150756792781230306531068781911392018103157227641701003027080317933402324221826100499943116975264206730878815306196236183869212251548213961934527978387550045480699897698843809509068342428084962584936833093872648151660488556593017051487706266454769706816869246226036561353168095498395809171154249569167545074338902846029547204230437418963991895513229590316932147865791560612473007834257993761865862711681440730236500658564151943412549548816084973486996865918690879814454849247913808083639393287413005834550185192229666502779210731767327759007580959212309074233961823241833097208825386251177784683169254552739096914243726739838353850742556372262429956533578487907265511610141347814138660922803656327997106454701421389091073704290194339400834606525508290433516927432522218444339757514414653096545645547121000828893857918923086396343045550159343026048622514029461515886162360497909358237280016923162208212624441286861676759090777155742701713796968171279485106843632286136769588655160614630995627050236180663114315992950037994638509393075520087718314247489627888475392744920094916202048814669954163259471124452716383882579360221369871638455248698500055823685478655779671005435544258444341485913658061566587960200030786491580814837059267651160530032062339165690641966306882680845497963872885712219398445593473997659434738560214832547919498565331021840886569246411060046338560960087815147135322025191915830692895829493816403711531441747492682729829005801021450065000628133235314821428496480969644652679332180142884349844949348558484494568959737958594805706491549298631414689693333853265507979858516410819590685431758991854099059739455584959724225956410183969930805275940786431506766228581151917202654447739398516628775234817747672681064920451558151603838265664006631206118961344764911160213588920761768612166831927584123484140845085762929670926756695672294694830365892376562852790632223764720801979027029343446424825309208556507396797622726913849384759934134135966959549086814465931077761811541776917623672506985455882674073450029750090485689858964436486590210473006007192483214567849754330270141151995198645044388300547968809508588860185425877966529873716355227166079569075048870370348030298205087872138392961852359540665531077488120391573890196313687573570405046126213347375123554014666393393992044977559200268451210174848526691242259649942341040898275584435334385313770179121639079702726749597756712697908882743710799202427663114638629256693264614376762828135902365282059737948081390262319086499033689018076623275582046082100237080696393780630315857518603595803186230430273718878578691708397673689005428150670319572298984948683646471377690842832480188167557595686411655328056744795719574822785225612315056156231591494695581207426431552933768886201641924619500270156924179371845343614210586173727946259078847337304870511975909808117974807754380989751811383059165159469904706431400891715860397400502196482333290015203330689000250470786928986529673853315258221837487004792566292691105672175173665320032360151851914060300811984193488406172352966662539399484737999516984686003484506801011894558859511284005615652882607242643539037677161381152735892817359353987157144226863632277860522193799061870491820947544929459205531484889792507087423097412354701466520899492243386609356180703901266799376839824495950073375118068371079190842425034597474269908108981887985804210036389798170070690487375087491934126019369569592428047974846554749665187767379716656055644383329841070536255470669201882812328370661705758832650173737686553881543737065840609821335923694876635419463986447480110360027098669406583518895667621619499458671650495000702618610670573064039226209152882515865110948490485944646025657297313909579185790137640590452342937019496762893335299445431613283911722635084521498720222299024088360072449747180985367731408958658588322302153459733346868377007302022944215487501415576897677371593251732292165643837312890049190928448895816080088270686149729326129054857043602016638079233205047995013702009695146809464256437418047712509869126704204591457727079647744878788064797407207988666260387875729183376045780698722136803031262959091150186350873603417319813752043954395072696937988866733502198646113497829150843837666197250577513126971844611172503215575824537397911890757844688799037542264881903071419183262931274657709377062820676767724246035056046564093488711416401860160887516533007884136868971650024181642880571821661657262433457311168643744691246312238669580753710909972319349638029343244727888305358988510068536768030705861275730826825676660973627943195568799591116410577549960975105101085126656384619747381219187926727769505196233179390258154755992136726772629689487838029583613180786589317783029838038573722821339762074620341266636596169506577690435273500253166696004845958204714174910395139208711553223334461050758803506353171952566769630238595408975952368434897502467669528368948968817090249212124588270143752509350087779855383404349401501007851259315116837693403581900844081731215558034448052140772612328045933133828043298843662296553584618300572551212454128267079486339900002650931887349634466250822715779126345259087217774299986435219913535463915685198114732612474346209852818499149643140941614244165580683160834964861940463106815514511720511211263498513086478158748322762723595662521161034509785038562903306154880841245948361166786542625594648754954671097860794257203900626302466025391941761891513710125342886148785438476919592279163052900884956258807756390179871887759504004229542402472439996852506768033771869742069264601112098928885536134933892953770452081655408029541388278236211915606970791940129336698225545568367725584056394813619530427973137634272410672693495913984174168462620187578432393492082133204338740002664491782627199946511036961963232875414055274360287347399833430419556698754150338880453765013629569319593195760310732248267218908759749087899253979018717515238310329325249684737332387702599496471208170928099050687844319860964946851308288882793469459188309325658901215835386601728479178516208980593707531575171919095872070738376829744220823775502413792781023796898360275680800756383272147971656099049597529023603159168662476579159295229189843835594093791639714697152253376442553278013674878409507679685949309388961489123698420965110214658101659975891753865170189797539611113042417729172672168982526047672271552813930535957834379503854640814905351265498663633987479689107032335803067853520313346924913813155435216242346514341069194578078950719802606779403665083896268523216629328153933237083760506026570815429425045013770875437703293258076887258047523098528431588294705218039174842352256050344027017132874977058620041345456212702833475081346158832457132398100229206728371216194291392554901189212511337986159061557661994253293603201999839106805540137674067115845534709948015024167267954321202199626951429202244486973199659513329851737037849467360562848643975056119971636274952461332479329390902471783163712349106177193424039642076704281726313407164603719530700989954056320538273147016748515708376536035057246764056539475789673169457345860918647827099656192953600687353251581922108040606800131104373564454890675692618592319249456703324446091309379151167928353359019916454623108905394536188473636539078554839814275324066577668938851264004601346701185048388832658238320328743300871890039574150373197540085037801610488356301211691026167495998456220769719705492920329778351169663915567113040597321988278335913550469696327186523923549820831739101747413101682190115594869265712312138276309522772966548378991943056909737721540323493981858236092672216422856619024953891703599460548208877220364643638185556382055980145834411501584192690002356694613674496225561019688357292778462643635273570517268859411911901612398139132345377135319109762694551301337517344211546034059499708669793963068674403823632611849484886781659242012154402973421681838189009096065854477569834203821028485784509145828961720719425857162094758141982379396220455785141151105510250902372388132402640914759366907199011484092524922558092528074110319461987286478480338203287299862301442917825383297043556400763551056736660879852767632411885292375828285500528056946217522153292513507472083891794626965779869265788209710415927761804957758724020314848899765956321445069708776038709119594320322117545989781021308951023542166774817330442721573282807727999428591718639013552512244370389580160378453277282071106557543562474423657970662167353477781689962194275541022905673734885119876586419653065010590870493241577009989463837836160780721773579355842311321598362599743866457859807246983291678475165367320267858282720860321252147089980188818113472560355365425305878105233503584115595252631189057039375492098040655350786490373426202402698318813139074040442155241642600366101786862689861770109379998656023426229514919450360678654339716109275093210420601522982547087423652127049781671431216223596490863601329250241715793923568607698112309016439101958277893759462210921291244516462197344899669436140160318682681992237067212491745876727931199223585716986978107112606396630592757164057082288195856323718443835356063101330535007734763986257873299150008366775803489588919745345165159686817575740289412358054721208967469988270047016761739494926913828563640804837638301175015127264926857140623590513674264734528478357798361141834909534673202973088732673887034162187646556894387230714254483468481217690875730881260148562759281777780779584427405116296577175867614344763077472622205401404715461775905225292813226246469215980655792269388871413784570695053090541150066858239350053046035969750972747865920484424414323926103157919869463204330680360584466920396277238845180315051717804294857431379442469117708906012454648169226098806955249857317849397664690466962100977146629601327134611570278559901422785602533611148750196004537175391663750715134956112805594456966335053853862640332773286970366290286804399552726633153547520593580886286502735628988366179615267402489874635105105880421318010891899265071399888183199253767027241743958185897440815795592186526933435317539541095186415936628877777629909447740813214455152409226241524515194350434805463510821401375823394058278723691076435057207006860170706003044104683762111394425103598020004380009054772263624266566531167461125937854232520493965980989739548440530151384273639322060271215120077374273672448560208972510448666755074912744330172086510575457407628425217468005752659555599785609268811285925500426123165276564714663179739932660771983327098710875901709167011099162368103015461658010171544730479208397293484929436250364431942527524279098459245872790104626582066564184290279713960344932614016447139998039114029715200415471220157506983890956936832316895969287679123767061779952545499633130528355114987508953512639047749915611588806399299670643892301955270376762952124099599389526046475265817903773057696440406886103127514693555913363104916410132374811549431470432115164532345429200106127010245138085240730331468601632313201149067766776116776437687676108788572073604300664045462997432871322681315309090239469968637482255323847223779710622976313639051890864304576402776790684623316231966376050481632412421125792801137141567801275620746487150597512374471531652124727096846301104748002692026266881061745459767063499240438459242944449661305273236484042689268774186744195488465215834396003353880731154151418274819066377058896582320022256269213761594435838997374437616628283813653263015370702271180794715904859862111756664105317839615692753705999490159384680098840109502899170924602370443680623813118205169074747069742008615664599738887760870238411228320525887875956307505787942651611930919548011064519382178554048494064349843041966322092466625910035475993260099918258822249316427968263957721427861095137016996036496102972787392875403229128422750022513263207951069067358906912251265701195819474154159137323329359801821674835546036957154179705774318919021459173361421901213039894842230821954105652663743326537938865454777667059692214518036659670627507091159398665865675084676115109364318604828666262679204880466619099711142130405237139492791483337748711072519300575428063783271276634070523383606963573110128272078906557265768086818916922324112620992691555600747241341959850299496456991944003515776088368302576305992614783208847594351801634492191644039896399914301542740566318375038811965696392380208973471763693514959158538654201450173786448219875616302695501795102761546545985042179597617693910146190228888240940744576013680041436929587846119936861685143234438752581196792167550917348279855172112934743903138838356959423891837809977167638405948015313196511633051698637154296920841317902527687212544772924163057844213702790370658299752181465846613823242294464601192533382122797601529849714655319604184424749747956097026337152249353058200195586693925239181781506406259074169371567113445968480340890860626662330697903481942825713464045495331130762146195604545246494096406408681585839746754421274101050959559040369961182327572684772263992444410661985189812986564551534630949341932400324406445377004682790609635175936229389932795855701481654374970475891134557191475932533355796849936498598613014943928470213859583219355097105237691700211876959776024590394942680666108062837094210466828422149684953207787304615774063448290965921909898195050102354928255624045274714834053470796495987230246470725955913705551665357499476426772073561501406562089653618368917361669608162709274425477148335316137137406873832544268068555870671210025092314804610751826707369700154196071343695111098350547668887900579526197417988227582215311163742015357097838183847923442406544523756861366371189634132129071805357733689423874052644180848705144644188318586797471264925984536404605811178449233774949676305167742045886235145446534040623448103585047600455138813659465694776508966214493341308949055931532707369351668841165225708569451098919180959927831115830186796740908905692842175802608715454554704126667539609469897749091315327589348097312433748782337176892223786361861800887078237628052876368246956384578277175828799268791635585249220226926727119081538327181503658658190392445280390848117229731898916519881784589209716588206499692477810422079252578238558786325522082075616088339074402176074408819146812101364672218131053884280429835569028793445620437436160468180645622239461170094150870808046662140652418480616394427354444516588263316580623766339237158869320727104535106010781481496462742881110584555298488467332852856387263243686818429151475007408933377238006582595946502728824336973620068200099080384140560352501122604915152339326806874740907975482388721351670306711555647540666012278379111201195905025229951740575806587516279628754162576877300852890002241646670364631415272015332542841756423559141849811197119073461451779043849393890624760101187175088371534988321600827007636142903739246442898491667808309849021708223525606894866517384716313181566291351055285243908829403116345022817747583271035926572728083610632810294246869276080551791091759095148170810280146948105367609332438808912309842649931029131983931456919509761444215916196826646391808447974654960730142327054069924519487563958225792750560264142308625599820085452001612992424722272493344216245179845655343914024871403349767874810274704490544556916598925864987054987607155699675909129429282734180834372263714984307502848296133960918978355295935230884965310322597016727437015188464987840690174310362146814474411465393820636890821035808895531261506402515249759512563992739272462698560808848836418406179458297922691557931013925475983959701443183431904346052439127866958669105339402108093051869487111362905858311182510520783425325202503960843170128961681189662445358133559666828462750929118319181965474994166658174612130988669026800210176390759312571432361424245934304188856735317340295509691966213900764160427096170867142348340570438802850496750566333110675708381093356492986712711447808457120894926099001853599797822026836339675702320987056524951146812866264194072389378930589597096175356720447969047383395062099968673723718895877131845445225557543592066656813887358308609946739903385524440236028098255845851050561116472896331600486988878399306933967389552672090777168163240179900027715824379893547542868656572880452600858028825121830214844437708073331533708483318553818911588354622408313009129088497619991935440263929649748144772149654603501779535056150261496964094243352830560873124754889757958477845902834661210687552575569752203329910953699499680231128617222256790256446863908229904625366082185780556057246437895243262428370945644155470876870470537131031662686796142239639241514481072586949058830551018444634726380335569283420494490523414070592548814074144102522747990416373748509039186619024289256238833845415338053553382272956491579188945212606365255884719138695236882605352606843030482854840257339490509051785065582285281847161047800221363161555832353001913873651287077468830428012595398872835309591738094958212377351452447588340344780472532055626351458578071461773820605109715785513008089757153210036183832984275725836900699997216631749918033353208228213212582533647155362552180014350523118375323160780537078373440790613825732175555644242964334894713550892581964121848466816575000179238836821391934591348121614706155469686307522819096628679459537841124521879486500092647410389620894821224448460151689284743424079279424121278202463861854961394554357253556129772608900669741737921189016702534768854309492496247265457150069894306583067240669144959591475887151575766062518174477190769736762699173041979061605611475309941031439353449952689280841437668653386036664595856622819811470106243307056817496685875482970132585873619762817626716002757050570522455762148450605843496736311970184799637414510468553688474981541990208828731055441461389469981210814799257808084092506579816475659768239687827782155162092537621195823560442636003555225501105350368776344498610418733580565197917185018263759036320862821498595669224293930566786014804116179897886385148156288934197519244177125583825613074695836411661485286306608499377923376820843425763941017385516024552736453147409825927358419377852968489423284744269002578810969273405148396725645932363300407538182624141105617712957559761517406237348576077598727796075224817013354600212000936572247384419899881070730111784030534819072855548234773273994584173234203133203136513806846708279468879310424737763467623852414598584566111261363753877444135363628540555107707862219806002280075136761305335063045673325931704999854402227104782883599486621356392259971126930356345516784968959015123148742062691531890110891823417342972472093503909463473773391792734835035533731002006970225728970043228245996026087915817607357476702844916952327358292796149727776693390198211249535541837870943456496747339659436085197518005836482422102708011454100325721680453592202253891558927419207839528577762620826181110100098753688187289139850384033138136931069574598976440552010669754100292886179061625675391046181449801878524681076885874550495177909996682483082754248276697412031879855673660673604153116227176541221204393348119367298895694260432348655040061341540699949837693247588561432077008410390629577877114382375945480903575333776402099555003511769832364118897616374224669721011308020492299980346597620700028031646597884097749265467776067517676598133013359100226322579436798010078627901439801215107829846351957011674335099269428524017583731968609190903752308951239487546191466276227331683937737006073761769078083049292069856445480294084787442056820031121966766614720630981413180062179965164001869704133379286774053466726240073115997680720295613710655276108715502271503443454032223784277910629115748157733239742668576618573456667802791677892571446148264731786834785709829901347210284055981562479696447179669676925630917759227552416101956769373569271768621098574621208593884297093137550658005116655148958263152212168461913879965675560856979276392669742137089247865043458695833758177068312183969108156814903261210430454161215980408185819792857777311353427891637769136551481288826933509767312142155182545339244679073243598677740560619796540258554321563947916102417932547150231820735964064025700607034780252320132941111151175017323047057317061828078251115887276941026762431954636834344953785293589750256786972140685984048377135086911600860750875904897578931822906307625250276303803952994370684061729553569657505961365659875791314288505728743371580148079362339170692238543718877052485312352236899722300226989527264090837227099650205079458539731826014270467415618147654550568215192007194238541254228580035869359349389260339998324378455933311190956102059265391416388231666708792940832163127374383623622299793776582401879307970603108577922749582508453995533902553442563940631469952399335231735330461382792468510874826424719092141178902943635188079903650875443703481621716943686544059119172901237555793275367568393804070625401313518692162657621026569076493466896639633537435407297487962290578280677053949702937749244329901593494393816668192700311472800878808592938612137811043175342017634207450473779636926597442780942885379936878637240701710970509948006849422102739441333497465119756899784375317394944449607880367823529840147810312762501650962733602480108029189670643400819297127253259947232367621448863105329227086722301772531973084014407475184426221565979288451497063794535193837172066809726988389801201967614325641871416997190877887884179249789039676236746248181782790092754895156262470666272873886833827887974348303186233048363458787228358041292069636619708143874213307599368483267607567848663262655894402301150615846691318601663672069153339895345568842958368791855983464575071262701540002993386177732025957285024660181145071510612283072322020226721629183643484250786784120525696945224200919202563786881955660289473424916037297618937611140927246115331622325539685947598090385248225730477317966618276858781989071517037109710963341896094543918054309532151364306564020881888777349127820873042271510327763687695642414102452169320021158112765149481005263844506147732470579333846996089707889838166044934774204821525271851826719368997063751009190512778881649900731092837605001887983972269328905705270957781583977508281895205931706398929063475201279185472381627140565310608142402014277088726185353086267555135703188580066859154594778612148701382937861749097675688754173463297363750744229839845852338983643427285770203217243687336954123811554553580812975678071012434043369551976949410946270276458208577957141047566981072120523981462522641129336577878047699807544977866404240460133445131186481855540760035194587573380791476020275425224854909837916740821790777053935085897761974357457206462239946984988076198561009774197347784440389894888146044165646194859092093570927531755555226180944474225645760428032697765892830842963476901398267740435022714056497916285591939540154421200892509406314889587952643529216974113473469123962586118782464469068300680225131742701743234379199149224115724259594455762877143969636859875010501219628854358239226444005344369342266496244916482060889373144909687995535088952678379290769134185703065088089533071408715137293656679628802851604166425117857043131733184136386358088604090827275315601033572958615956670623095884745527403407077465719222398510659742611402641060905773696454638940827597597792259546172013294440818083882023078547814451718014681528330733313625572270065822495585379605812793402887902997533915100173423075546147705518074523768553170100845961220861109847495569272193919374300124098901555160150878170843893796734839621928004759227744124117502503398806423821100813032362357683283026885882856671830534538581158608157569732669174771537709167307558361767385835521240859165740363539468120708905592384537362347215478242088046315176079673471477565112552228767890021511747283984906333584386036180867238039848624082680639226738681114955019713939957857061164694616879897470989620499098686429931654631797612592078787313090552756566568530238279996628153909009603329247756394239745305622224850804228725702862435909312171656220752373063097639795825043905551354135070957841959033328698921371146700894201682718740092339679051191136682976335171420106659198528097503056507878250645102218113575787873907408490180950202756594155391075936622496173971872020909175328178916149133695167286713509856039650723250658835729527017422649833232722140579295559834300007865790241313934427425840991906449966568100646417515267975634137107082261144274344060929769617701066061409562319102692354238450512525820987866505576772141254675958927860554331055889898816244489120452899385500198619638295206476037667006882836655582889623274144437943315453417307780985079017778088370471634297091167013574524529145500210095877633354213631800892915805316795706336676987464953318408845090447118870371737215630206682115399411728218531582280721515973917284573161589786358960054623973887314117806286008732820506980640250299649228589017831813275173259829291518691185999902864026566937356886365429793517077450056723855216619242965039151578967832393630756615506289326602923957438611916022273639305038564615773655908817790321804031262418922233157152306306892031015833036766425676084155377481374040645209753630036408713821779013557973152327653021960210320289977566248025147469984693476097763052227355240913485385875607618414416878929421981049994943770639702913661045140888389212848213217408308030707512664749274417645977525368315469867518686173929141082797014503706961534634671977552489112251702675927828161117282703656323086179766496839552143838871826946354103162758182648800262671252970388786225721970526729272912871244233554681926265304019280349691123784534089821955786177638352916029023569837369269262229722909414343187607142979198113853598593737756245140826098437483099778839237447779774973365096557551662807356271332077303686721115323320823627052747807307212521838553178570354863129364531756444630547036857892720355113609712844490605445313631406484468014334325998653338483754685916285145049455403797464262821927512562464647236118456010695630668251143698229150772387340158733836688913742154595071856150509319393824964363910901270977981344391296397379345525561253947477796635199270451442583367201642456566808259893825005460768788727529394791935577501274262113880380231483096849813396246189764861754650071349879909941151279779970814034348247449947728837148610987412958376624435291810221415566063577880534634862397986545230795934529448737939316791419903387305469477350538022218298336242279937018154363294776760320519814370707765547529483021852356282881881278612273928603941807088772554464009044355027720108656110443638775406800861885736004239436455920152251263824425428065946568060880895465010468125489024105159791490300259486141029366631245703068037337163006998664111342255120063469841865526274475068137787807052349963110483247798116539764682767032759113739972784825737642514415707787171643498442091919508330825099756223229058027864256943159153305366916492090364696120717121504600141339373509813162820038673103236936616138285795347468847814522322742349808364547838083405814481627036920709298178888745827255662769785004242435879711543210584179374960161156665202691912842621313597768612466579448752125818659403373163567388226715719272700396180821211672471777992017789547589708279453778102518408894431494603723290860826650436603803301181142795362829731449887534550789693116076147958522694307966876040130958674699481963671943683235380341569333186222820663694131469047537624826268792658822374277829934443649840495155228963521077968350489140270410279478028937305794329968145846696162543206221381909889036234314274466702754935978700796260672726232526523694610348933764157950019665374498546115003090236145950758438418930302033037273751172712170231033297251811788507261231112482562686953741163729044761227552261564596647842592240544532876770446104192885523396776764901061013123888779189762832638487001406821119106778063959758421422400117253347951637925082082553120275704276095729226782051396596535134162787673495509101770268991666419237677417024859155970854756400886382582250982092228981570022058369734507757132780847654662976772145308192849980404323480853611411128751659175606769950806142367555738459267237213722082542027048918953960624519634478969140988032697377333350670575113748611326670442628539677925051000227719093535262258371186251815550498447178452223196136830695860009500980455884339443287939550421442669774683475322167909764370246032373300392097424908919244621201176076778010345563598889315449716850420110889923979871423049549164996079106268501637977451558733723814060488470042536986666192300008646078689148256260870050284158209831266873048583152873863592094097245475531138865623167870164261065918064410215721437043021922925238584506542040911212443974474053244027943256698332372904102124555703022073993829378609499824234514476839613575877273825453550852640738454247308491166961333158469431518637176074428945780838228486026430866837377870361084648041385086002392626623156527227059319073795512014745456678073561533992667169658151494795166253410284577356130945624990938534494166294901609911259819993004402913468163187261030582978047416204451191508374331866291715258527774133686583690035407058723754131145261829778321301824533030615477137844834796587813963016517010675147730516269796083737121003491016296260834149295187329258244744285431990796828485269291407678642518439978112859922171229830054886051155585344022511634826880430556494621185323185400610070138177429358976727537838273313811567718330556190297244049851141649861749555776526471286633185639016243869275367204081373835705822935709474245349651564579297298891335778023306487097321634753964709543945909384732790447086591211200264255315012661785121485229291501808907257872656886334968905935024120465428090987340618672965862267293908261525439672644121252659698492027636922280740219685449610716337048305597235433805689618007894731430499222147031644846292201221557254776647931085184208695297560723944806524928345521513645120527745474476531514193946031244307982361908118332923495837378873668828995273355619577234426933681283083328254797524893667475974346343026979504056899022081255333762789312517618364766220675412418628829884605592947134609843832928684514378444697291805094215554478215472405464197887414006125167402865792855129050977923721044583968363007012564933803551930176893904272542908811284868011084909834418113826162568045758131869904969168275070149958960207501118368421276490427745410865527220514650332840137753120206895117955984434892895089936876525798491920137315620973807577720905020873668835787553270668947290099997705203841155695024287382586835952881262081365188918663522763143616191353656341041953435300241724726559453584168636407049283870380467356257406963461673889736233543350576688789938168030471509786254510177307642382108857305292347454985772757463151874203832984892461825211668010034366713545868436855721668974349216179955643171789091279820429493272318983337712302529955592722206808972734246740768421640838880609730079540749937448033566115498903061699897238869035483405805703573274134551110278351356832923809736101663834476951803874292868928728919702567168520383187160664661426849921618036505328121386242202009912468844655687999864266524431105244388226760335266755811908528683791531847959946869853772176549248423473850448595697290330701921358496394558718393609872147790146493478300828081853112048026635617322068402342858021916044996311121146251270108391311195866880348199228795758772600845490337294036347538506990407177182386597120363073954683666042844069399143290188947920298584666097468984680217665165020678051207807121450670834746688590832835225270807540495898102555775312294015291847762801704067533684563318146263759225054606863125781454388596388641209137230455377718913574885357906928889395248034579130372331863608196301582879119962079660144846143118810141966732867090694562652332660242043719453243985327350431025977886806974161590546834857659649552428554467436101499246576456768863111051843597789191102519893364160348635120749923321749149103123659342648137526363947208155994595381496458415613073559266351585546292521746182646231865810798678995693548048513978240241831213854702335897867329088840013712518400544162268846653117588052303984468535370277736240610530825879123920898154863232577289204225409854304905800328094482883777299093539609795824887540053472430155828700402789982294581712013884870616474331561271144129555778631390203480916433763722520811640754324341587645461541564025944289872632601809390419532762480820506370224545257343119325280023830292274667723529460830509225437512046935816889728899144809968906901986132561544657949359563951114627367306022774333328024959242664067218808926823767644355967480721684650908076340333508325285095610946182866334642169781317334244360430368125524136482631168345387456213053461831305902926815592288967467290153794655697268490576131673564335409793909572725069111111820991791667759030337764673434796304160059610774923013343521463620791778698433001742554812722849473459993587031147392697884319075402118582962997944796680486826385840231663689275588312015761373587042499850449923629108389166405223842509820443758860648048713923135101065648700507740736590833184549567424091137793571461697715996486297844761321120934122928623456044087654941640013442914171611808685285801600207882230880332145773935114988483165336161998479962534023776689510891445752229585692701176360162654797682089188980877962187241056941160831993463441735796965047098116662857509721386910371620327583235090948454265270682804677120840829108293078153385807552831500463659823626577133608901071333922587340993356354386309148977072881214551410912807661002301400610674702244127107455469613997203706185585964327263151950552746878464512313141551552188389425439306411108450430676373680708270725925076369157502610266014843050731345061052426473267731241410924604898737524834369520995710871460521494817013883523967121293877518584692365374248336864743439277559145371392512374393873847149039485414451429447193704465632547335433734672810316807152342904306599890904484514382564265881393272227293936529666851256288691015207400398340281566430745680535562848636881345237093515920941475797297265076429418967727789954917471377281422172274990056953129285181945477215117684051936808608507019863091204707251073384425461555179545111034012587473087451379809790699407083292495516134045272820685688865897772674688172337960733661029952743976050842996022763791195762237858974112197331590059027806002218524110565721067917883995530355657465144004796207720433545457447721676645268043397417568611045781578498109036290861710201068639538523275787289175944527412844399063852963608230297113995828689668341333047594264783228611570025054493145991009863352087207834274282830741599177812223553203139566395467610216611988434723342442468353304820122623424707222924058066161497114117149606397751928815672289035596268129623676118014752991751188374388635477215417503620857784967227576271256714990978710459765821421715263880516109144871573303330663125197037091708530591408907654240245720188137217366048555388915633433389574998822732416702715128319860152297794492526240055958529154006981804263219098397566089768081679264947616361468020087279681975511271751414429903753632228913749832607967402824903259596323256625683276164632400602255995827400711482354234039793924644328848351785523667660704709342650457023923418331479825359922815040652307213714997882274958513930954973375144786929009168854791612783893367984669553720560019431540012387196978926197695807446672536646000100540418991685359907395434911564835821809089682021952599015893310313703490742944323837924385971351977837686457548886409378006734408239084937109524296666839602013453196340559681583666610369730292816201720525760467823525950833826769428590190608726024286738807994023205987181394880682648241730855089137102836147046491417181112477349151615532601786102057056130451003349223774817179849898548193804136412661596486545514300105718075328208790202255207938280434127491443447909706615398215494976064884103922032475112051682023729189650882468531355500687037808451870770385778777947906484456296389447344543322161542701754654374175242836078782234432938966675755388397561400757692597085085423860364022710620541025833489563231299014126918687815892074032733684796445467082486898638406096612710411620141461946513364401769601203162743045449965632970352040440364046496262052189489770577277255550592015292184944376004646808559635246113945422423057936205929912382415445179403671681169310352216528599268810108851371034919537448584867249184713721145479085505928214377020244502829884015169642522126595635600785950422121393523945198084972525538275135196721389989048277617770082890687176610986843652598336514063719714296938125381459713543656999301247374423868111549233370079376532865007217310245042153514994453627268196093978845644658030693610974323129912018854197354373847449995444509218274746613745937871295487137056690044220251705425754714698067965215659901933503875184731762376303217641927745967889918172173266500885970891013513569095836547762604455662093258185123043576832397583421419741847534906463193235118861798357813082513370361751020001998377960187289188232214099713332718033356902539629386213165155823807897269476156108787422046169805290514976469030299056247429510200171199064867673995310643015488006875832128403221531716491299649717228951064742667886523184197477684984638368938624707305985442521234326333312685040629541017159120285623184310086805522177197285668527787336722104066045399130387266780480658086327383369879514767497157291816051570833373591347424149117984245722095270847330701660919174602986328462842926919535245838134679203561372708488898321944256169650905962373741172296613646838466090506924385030087725256358852679554824225509036271783914073004359747381773587436036066874167116555985117452829352997276087256585198541021564383833943032487416939162526052708574612455399244881379773969848138884163499081958556984596559625610326179934014656221340672397444572844821857341508623015274510442362077830705964869146797017199694654255932479391065206446221647635071862504861867902538012330862506896081614201532331954777155321203959763893598359717949494502044561737779720332011368401701184212498776004731167540236022036620475328907173999657856846346067049712795622304163835424071575588686921518297887038305501815218222230148012954372869322799448461160569024932545710228678762901922915345345055490181862092099591605969344815825400786366150531954801209331010037101387612744756134751643934176524212053455351269011699701256001461088551349491498475165439123743476071827773282525789437865599123337922767787248883318318275024720226818131458751207888913089552965549907405236254736198774828443743637690877998459077853183708788794311051055995145398124644439487363787950696786625370731676941635485226722720363597009906575263797000352414876329901163520142122665206503110065012425381684686269724799176863179808716200312485663971790743573643090385404851677080665383256172858061606090697919565177413417187469821503957185872265170592833722144640730437590443822547883408923471732004862199109651246847097785340669706826138893955632847512107726015413989440671424456148324858526050636523362965011213657884860257437309156612317348805770873706400891795100073019829004534494361943865274100460160050638522161388469680546799405612487513186907260682514023767244954327913805317390015299685993370139793749605051707407539647866956034348305945534855887712334081044892820179722693238129266278085997496972557812588226313660935202271678203272180834806957060732650889420202903719293598478531207731946262866061276274763234841234093289000600522695748581086862931566844773080407205583681332423355879305709301615132413027407870036059282154632705657483411715959675633758680539847468897822306845442484317031338585884084799672775368891326767896509402979362205236248378993211691105957948550971068522027249303647527393872293486866751538059781355366226959320558880357404627889686315533003218287956543188426782058418196803667902576828546634525300610344655780214500325060771642453636082493285063646206625290085783781724802819212368029968136738039060455323945521743280286049223592422683974495396046903201655700246035875436782885893107961158917237267877667301089174331913840780030043703703164963476676698171258520464209128547150093678674043106104692939873386994765453074398213444553438319636171011512319843976837959590748391175193925552301887375962681325337607648856038380973683874746370865094628444303787527827353737383971704211455145982118132784688873262346498232764068197766192945760215158174110231606158579424930206860232945925116823422940538438666939985469597058960614234943292897436862001871131463645410674346574466843613457255478389235591067972093094927346121209822047292474886303259186253669953211062239874544087111899071461310537044947480270135374991939686886076772793887518208909690045037029294392373362014470546065996763814948557190862189086129652255423243731537718984130780307824815044085391623387165556986130702848143270754950417677887587187771936700854600082377196112688045065965397340477632701362481679133528528815225258157804516180551450899570567026718485868450001855755185221851097367456481291119364206381822507000264305600343818194209672010821875388776303666679403565094162219779948709320274592844981202666162763457082737039726051062686557771981345975822444888128898263835728690571838549636553560992899128519601686028572645957528226851727274119270717495620810279529749802703097829775771793774122411061090357837569893886701376438097984129851863165811174819897416453398340595192407299210389581010668521136897308191728714904526750904029635036530134682752796835803279518720342621367602973366272283504083257713458340077589283993372660431580424119124092270002056894267898693276298603833607837531196859918686285724512158174601753235454132624999423113920925565654242195353243784751085155726355959844222821747959359442228926786081701664769807563058740992122662292936033145217752240594651995404751858449760695010133420054057052362366925117049396022521295932473912854180965729765708694431395209151371979099914179446643668147997332289875006659750909386511844806625796746958071876811157574207685979928735149006420275798441411344025170018031304361284665646351221060714417157782752393364529562353773914821729496264281310028728977361086394363920398839756583779931285949015976403984657041072959013529662771693480058666057892940921574195821824501989059864307619489372709280627636972128651043820644803058708068276046613143696038702991970600068958726416011911828775446058053671316483026721249259978180796925494450870686014528398900235718398605273376847601576256887999893145732238234465461062979761492595416610754350301455573923890390563668953768559184672867259354285905082459606548846558622316321709257495718099109284074019438721172228942049220817386740470395884390058660427889733566680307346665100473230951321381559374071330360287319052995226414618753755147157469157385453900655020265690403782540363022922561719142031796355584749596674419533882827024981088513546783206221814822643003664467059807398166151692465020698055458133360497391524847799411269383880587710903452613830489037730539582093579649901016244869962442175057740831053336108661877527128588595899002818077848059582614516077932386105042900504103976681722378210657071497325205385657149556739119055296705474100089110075956759921997635694372572968968602266218885722220753458102570856168234868121445663338642609170002523967126927721591774245156734864895136472815136626432300515782463653001001776901458756272639605576566537019760873184095989819229257915489224869001837202009462500516907438573780454507743572235174014264986576724374056342491544565704373187332222860899075048684709889996178124625215981928895410441886249917305803197212878011634304095855347334280937131461757158311139275011717084463410483253043310262445437898968938450608171981250844525961681359138981101164630837239640004416306872078543106963079681836167642697385273240615052355747485825343623239797886942730009842362837968813186249328135357062701277760001949133743800082386425695851028074613763902545627506674554255740652972397627880461301710985838484815740016944572284510054074106001523785344924435275462185915235345382894433155292590484914199365004312037460571353407006805334174039336991441370426462392342186996533107214036599173431352215449873550856003845616871096865511632124502207529368062934030799374369554668989813607587773110549432542559014784487392879863839879568212938125083461010211431977223873908384267417835569882099437309184902172599628066624034101627513085434732625766897186079538473482932288812471462416000138850953224869258592157538784947412419904883117647148761076853574232584881207052779507213576833280954439717281754500923113488426385536560207374505971643265637365227962055409795155735178661055513276844368095290781042482916414772152541080791391167256204361137876946759357143095436318090178806176653258575955281888787351846263066391491483962101046061583757908486124700358398270762621255005045791781449577562158480099161322425363988586837399434959751251941522048941680912343924373848071178386571497020042671322973231004356947527966293504082100722814286275293554931994482235551816592407115354269949716262974502788462852586028175120716259352406217306637292860231249270464554682075150076917294849093962219206422406610220296663219836243992202655471637577704976251561050242129520604098137709133202216705486649082360160902131106967838845415059445328586431928891476194914473356468751588606503714637469409515427810366081704363543553474582710884876396310614836524646902572993385747779494961033138300027187489922914465448167083918665474800406488992171520075478198106002207871011932335489529949478660238229152250830374141068896162304341341293749892005813974645062512369920490384985928197303592270401631721762091223493049907855493697223624697970475711849755883694824805742137099733992198045641095243396333535695444728594978069263495610518329539959356556389677476630541875806055519317568920486720819112871549976979538773312195935049042514837299271501773490197286704733468427656526888069032727973164116373352229530462046543176892152694574011636614742699884656543484600134739989195589082459101994847874982945203965657629192127149003722728561217201322755004875131780542441031839357738009725593062679935405429621603215734047340881706064263025572383124536369405416773505837555818487119961558113692165588423728700325399430447108235392755412448349628133996181716157242277834663970962057846508108710345313585606023429235270316547252938666188755237707281492791661847045915658720061059450518136866387478966265049301922167451705377128473544612191853524551611798949787263245201385391515478890228236144642779779818991027714752883419558857136969131637151998012087717032532782647189857162803609235780591076854651755244674552288180231791794649636414688558978671116668142684036431759344142266612814934331665605661419077228741402868933530451644721859119610890335736540979439110603640537739557244057704031286138388596264760946451834308363554656001002163159576255167955402842005880511125257498649863962735059978913811595358898525486105745889332330338115435934081630024898112260961167494343385769211052146567091521724826349502807544452867424505213871665243290073280010256025330164518626478895481777227502245861231495573872448471687265667094790449085576245263779757637846411187552255475735305415108879574961872797457831400349068872039327407937587933473548165029266536805332967392670811645217143541135402686580761688781432269798608574614104247941253659497884089518785540402467902190481018463271911775714774522417518346548521496577923880015228831730471265229454004743665292496043824465631556694248633597362684764690845772139960914695262731396878328575840552510053791460182104295360541145438065294017332967610929703595076297747742040644593331291424057151600537404967011754224754110623800527489962579290982922523065446687810056577428268269981758654786006223475380238047842598555594064471336205596353306662377019415587803411729295309565796997441242556584023677013280728465776810318691062348418476953779069930638283049649643269511973014057503712447587506848397104523692206746551160786544894521843262529290680468252167675891762156117781111829633030073712068083341888098456806005067336810138310999038831682505909815866092460604697936105884281580608799348871131073569211535118908494197448742981558194198341224510895611118040447070455568655114638098939803502224373167696864314105668795399527479175090457298571208088611569987693204943564620571747303408995365558009260633255682219317437717110837913544285943035044349602070653767025819452774657979103986164942789774312891305541430685392629434151912158916082015373047281984679416217033274969886962960198868924770974548645222831615568526833894468591260076920930708744518518520866727540628002997430432099579436190343567547353253405067961716213408567093615233618719567400363666203549011584951681116133887962748810236732880339142650150477386911025003560915777917577384386495317117138259056641286716532518754894401782695663483259814533804613378862767238188673175558443617182834305231122952948273200056512025702802943953043423283760382490594037461645339270256491466820747151349895136223409484372602848721616027446904221210326992048322540469450792585996857730447218826541025622565139003658097679629234559994255351974611513710188979005688972049987510585710439534483910865354349278389015148560160093858917306189880271212656623608052603285559282291910839979037222538851496806305428377856332844554275711265030012163938389340777343567158803909848169662576427060594729187597199322453389076428986215457443639926680356455388207502389084378591393508000493072162234620703698466879438775219284790605920155161769705887250693098799689605384839128534517895048925262366036682910338878266360814086277421610092214356488975150133206094861859159795110396183049577734086233109118663110969052781014566771312226875273143152610810561230967736236029900602087110036886170165404941396206176921755439471296605570944962461829141737226337921976539541055874981362841305642211968151630261176556563418125779964579071697948514836928354626681380184781690320884417376843247741956303258970514051124926288864256245065403189767447136703778902906193517482393344951555955535971761793390370751158786096188501793775882519781766237144764866405703636729651146135712760807157504580686183014112935326521785618436769452255270284552441895120171969275656276733221401189742425286402400615879157454206292902788037428053336329731895256059862139738339440540715851719302640704453004028416310829414301068121285537452058373018020083137307324548699415865863218805723159060216507633480431634105192081790648116263327530014659001490676607921618049098840047514807700150576356713115478154683146197068604605302500993594376158950109140626340937025847751337978733236908754737675709413335712170158566295136508990460348838246301035428218900555900467797963626509287477767255723897726679871075627545815583471348309202885458467168495513347676924784325924682094361053515335665633841284671945209375861377837081831120390919525483736887646931621030162025234653224196573915760121083137458022397649877297415016873446462575684797708564568595898947458888808157117813080983739763266220606400022638651599935346962397690066196880192215268565180413948854704610359302679896362926317366876325740048541223972942900690238529168757062143786061433886667344419145830720013764376597724210482621617633114069313556830810382548277037663685292599423946228800658901191126940315823871361490427490756230865040506570865497879920935283547687601905730252031725693154804780750341283062759475841180660302667019370406960227037850654284498918709374375574026057189316249200481108384902869286295854367770896020659029245361824311285041640450526892710205863609771886716716695078904588716370012468093604529597641045987936583197580262480807267618817802592027184139065021759232573740934063458064934446440787324706682939404673374665457471064980784099059685882215026123626913586690226338361076151546317867559294066065954176283263271448748826921321260263198696415125552512684132090926068032760713482086722725134840849106537158505492691636302622262450137302472745939139874209486525502231136790657366072391871537787040165903161403696699516825196790196513521407577125590508031190747186041626377149952893212541796855789779376623191527330026082805109206619549806090212539545414286455581845524923982943897949384374574014061016554092624886167769444702181967619448440889834886010427603155655801950354732787427181965592827445389145641463719854855760900713469992231438829743035299851450676861262391953834304381206616948868756826429266633902439530944283704346426533560741766954579544671275926833239649531354686991631489960987573077949734571020868772101521070921241556632187448253750313101171610514886719598365214488498427621267737080305509165219042687876892361004366093295769676069427172917035612581541512751259845698191009070069667646702437070480573843695610838261050470952098586672772207545706186688499117684996129867542930551158750580184520719046409434266525980145704499235410703577815903805180212647455116812667046966608053988084052367741503174062265129154889866928724242027131172311596090911413423568319346444676144621520413553795579496167194531577316620491447184974637348857045235520928795655214603306639886864476626474699827445076275994014354143058911997665439337272380249480571663689955676516377235450880016042320122261818526478391392413145633085705046798813490415431725419926560020303033320167304162064767073421264629171328878224670180508551846700094352683270000987261125386506392739196363482758709557968425452334814385688532606546486961274377650385098096995173559858716774812486237452424600030421757106715859893693585773037616063108269503549229939854500811910522508051888439882863350088240569295886072894353635871394538395051119033924072612058416922643713197098896603552326506675402003339282741637817673039737823744782831813489285782104995787868004549219451167658048909673712287804068473629715823401299686046808110869662835667607050892281501654718242639692152638980422658966861715038190153546769655650389840119967713106630578375575864311369594672707828548258251992917800967657114588811028303844294172512470450338738273644942876997786429018255390390116134404341533490995298668849575510740840722941220844074974172181752785419868574449105338820928312483229113883477088701996473047688254898512724031000265808613653954715127091298367757717661402214027861715254154332676626409393075609293137332911177151146327167028218038146264869144883367060443936604795733652053486228719554486334646152885100281251363143037375323295553432639340296539674773139957782205577992077768670567430244668516884407696781860034111564711597276256947038457416773923983440099017957450829943723986683527557407620204579871302969682690845162548675272404604144351229236826151250053282379966762729755260130895693366092082100354172594534966935723501555877113214882685966576986192125541454978217308477812645449210450078753962086436762017774832474725913943512634972359964999585899142414865139918834645194156453387851045924469124714572913677640178435949598708151870533541558393487617196838347262426424547684527923158581993769361375176129147349513781135856522851539287779408277191839809830239446723897561679227454987992419997354252352592520063735530164943133277940748534138289248938315686149879991993656293073877659212162559791119776234504735984823139397665902748659017076249399073358445023828854450581738720267018563336531185996746002242935884294783308325430387582113762442136359816739159586019439380336538532821093530157063490610613605983833117641847446408156885120464347143592570432228230068857338976883399372999922430887439818627561156345796191481457768024250476337099050691568979362857046710992442242489323414610524532009103186984974616342117830111251493190735041963272043689339770314019436518527054698955698157553720846848477563612267061527910234671178010484719213066192040904531589681408866955531077762806576081906361676193959387120385233860868438699965635216922064552056625893721570421384840866958730976381409261019857162609993843428870739468150331957420678603612510481625230019504822248146656471413313943314125761834522734251905071741799188549190344044406788087981516768046078264561974500648868535769795345076113817954487547832100889324531418658093540756385551955971235945926269752676815297096844014338603017514945207632827995207030709531436958296726675024595773125589844902394983252680015242776431059626017058479239978119301792412289405745117883498350250631964942900936768149499279698779790418900096159769808838630308422933807688573842335459877648169713516737760983594838133475129793290616440063366348047130693834726721950623532365371821992677164909082633929147638200624148551963159374555442999465021334911983288456026497296810228000103683649370374640405099731985813825037677453044094153792697004607183876528844188630523517736638065261276975487572255378438930314017788351123145910326684358238804363555461836024434355075704421494935567266525217389387327486772743406830344438301708009475150451716141863491536515802097301756124601931785455739994698547174034401733751015898552579926043432877187582859347611168029786078302240889111876852824815522704813884345480250042077056151327830492208565581344962494620728121104375092899336266002360906151946150535914565609269170183921427004966946737137389197653198849549765875790600656478199520017813804685903519904618309449639878146283913295606832778762664203748126924816854973819630333588425994619759403617057054169116660064666425791639050190248044956371153377222709900103162340457377468807168849265821146980664108109430180922318822204844598029881474755558251333825780564744240850707294567808175394315390514302633899054205308926459384896713559943969321570477060770188710694216808522973058085145417179603702586255711779317115714642977289849695103051552165722309317759607178887569445905636740396139760928281577471160513107054156706660054144882615962896446958907044157583574487983602003147846729167760465260118705202926562615690453102960356370863664563633721897996441040615842757657339415432431240283217510273629955854950123840683972641651613316362361527296300638892645089696469411234022879665119851730609521027777122405427869843181696954636224091971990916690197092489249730445922683275648156260704527048097060289912414309507417204024783787401587731170527546238839292707222646475057515843740391859119368926930120137059023094764709974548422595222487148603392782293286831267460520095377878935499197852744542583228182481023327977484649765320678926194885879380081722190234069164637565481056487569702889595472470215453934850646153798542674783627514249415445079948460611784117128527026445187844760285397122873215188562153125472977165509897414809255072512077594025584954949892620221130032087612513841944347604181399135624559728957478272475081860152491413738527029889523840701891518192958099109680349098508415342581679515376886952429908848064610463510274651152361283426011972513964541893101071162255431160641923660764072644439035899098264812556205949512592569715988102588476112191459458249040657533641418902923017410523289308869424211541175375132406298717030934401721392630953490812284562014984244773573902879834539229762961300973509622969509162047610047611757873401736224580828308415883781820111418577573786912783049703159989008347545495098918028146644649175897521347602446172002209648948810341364479799802696127573799306289317570718302134258276665060972392077071344165188365058841552410913064362160095745339394654900969391868953562522507314177806557581471524126224827781849711759688975153672224302807274749415994940962453113153516035628646346722656452819968581890043897960482492989910969739682370260672038956177988607124078239877868332001115439513124510945240406750538978074200759293843029541004720944227348087837599040799503756599593710993711297506316425737928659936975428677605715525052957084566093043334736902385056501379248913023894742908347275717518054682945725654702532067844972261081512541520171173210431885792820752067330061382144157104350277265467161906331340667160117752665383615182867753922022248942173975087457082156839865349671998775008734410400799982281059526949122074038427267150685608786745539198465521699922523160710751752275969106069142625874187774431867005456580222396119061978496646306143331218441515438684958107892547625623045414975771442487026466253290261943671927532377828692123717404659236763691575266546328687512930255914961204720349662804188356398672784499780541199084877110221389645186703932634683693830909286206159960323515504114765157848144716154960643982425349180226513375131242161729450768786507570778517868013333566797428313395104112364137368186371735501050365683481685564862317474287015039536587983801073645397530179753414635385855873904006561940414858498389148882062391273115729637910174131756540942075184489728902131199699423256506933511038194564163219843767696055275909613959404580773553345752169224559995468576126519126650581443363267996770168692826336833374303560361449972953988250406509392582012954529143205895614288129905925044829189684760767776467733107445443369668166161413949084457417387875617929147360913076152543977566852088418051014559410151649862405342972669551759574603984403508686399877958518382586233455112560644624193081671916913579811315927521766879508136109953501059007692682852674546628409744773035948849394460068029213771488518214312208487398715085340717942288664828231766785149377464144952230515678855937705653670097921238357833913096589604790176780040477750399558651988418275826134125440593183728183267249505994074393558992118366739946619692538341819351227303789102414636050989863154435593995169288567309713309774979731849044807868020818444374640044089507048440095143450417525979290975605428840199077746488117663239285894005883516019539447209655080664474346410343357098934809199857002016043989086401009265188420558378847206694947253322713282202008022804559561488909909053580889468582375037358721609412596704233969329143190138728416466829849536601800721974944748700456033331661530035168749004474394341174556854052276951962479340995489051390898297508949527733230941142055438077273264713649418236507882801752075878099402464698599209283829670132926128134246127858595412552292428179284528799968822994820528149874293621784550128315858678596689072595705233846050065245155327813625079322293628594838466015320619681513475250812674575913832363593219761099735720613641553895130948341330837712817560413367014524748516624225783088651569938756583405564500292133502320181403321071760565797457309971655015565869715415243684728992106701825500605093487827787745247927267644474751315186349422103742854227722447699263022720816948291055369319489248349521668438341242499050570148344616575444280040418412653044698626080831157057854230253271084282860174920962582723605036870200928930565073171006163233679718219699779484633859947261519707760668109591005867999340744079148492244877202552871825831029108078455182837849713738798737591419947413383569475045921567097301822948678241746362306830624727492055229106813007554463252748700898115694256598996679160232307587554469773807385066572913355410341006658616673755130268757641793106805964049997612884464526672617557287857202427207531597212105263347919312588771230661356464304177448600206031010886047132637388043861948275523256210399838031926750367768758591063615737368407291281363588707675466571660505785928125035085668884461267412275572354046149687517822630427162104003485419344952877334754056591664889256933239443350672634286498779905182369608202386384287697339413435229799519501791824006272418780456545761307848239342375360218747756160170190331915100822260395666552448285656827631342409461806061132355887162212905843784254320885478242831845688518152076804850030352754994260428725416063341443172330386667803225112326777390228535145580932116139383933124745572658203353921983897831508808127389705554499903324310066917289774857853724218927647396298412069238990411549481910003741280205122451521454584133017613434522435185976484505417257250290665382288259362077919471938350657561338916469836935510478401525432331192990613247892621495324349986120509445052096295982397750030535494312763821897736199961204004260428628852691576820593094913532364101772227666942863709044846451017565852974853711198570015533543473936957346087798329314214644109572598214188656560483499101694492232006384653647776833178243978560021842988912178483513432141879829466661601101612846251183103652454381297357940431301545547450398491619115662545398584850701701796517266184363654226376699039877862231971794876987717435286956490597823663984647314265380444552997558549037943582322417887147946354150054245173239311923726940768245389703099202648170507889684476001799551831086693855563862517961363262520284749762354959763585429735521590689553260729146676334591822784104997184362538475178988418731942254622742156301191970228028935058391238131250463652564635915791452053984137429415411650656292912519467999136028000122546483240017131679573644143132822583226407858768753098440972279915285795932969861930917038123963008081321212122091135650033966739077151915717062994732637656051559591638446683657795047403012849750801538206017108980112575657959779569903501740342776234462204746147500840611647631422551996038235468558880276011136325070961926717572723940623510268544419054818523595986974643394637186555435065579654299874282141013923595758728499791561269809864641569356876301655787855419789811563047380333393974997482850114357676111750728746079144867358424334065993751746947934161798857890378840663399471835413087718374429411404591882001339314762275912440745548751542333498462175324361493209780829115854659681263002713045379719539975755185617236717877010708983953377982001181040597220170325716113040552537712697350316532131454534071794105879033526533635598951577014916207583587245160631457941390364021198658976981063594987151332590059364823014501172851022184298430441361665124933272251998814227904768465706754124569111198471583891574985511382158971852209057132021043329662150297085239033795798925678473572464479899037372109944714140952639930551757033352888184115170604065350729348647778641888942805931160105680102238150193414864728169191723227594542088594962646100262782613011174919738548658615091445314781236754660642143742608502643057034443269268251951133632330256809781080945086939366971836739060840657328728598397634863405768393317860476079526909521826287761851609105073898526450669116258096153968782268739824480299556538499166678255227601712330121090447233994543089148930037964189190127529363126721890554856609445792313832698743711669605841465818870904261928611724283111360527675341167856292962250618460056695114184206677376169212568319384520289940937333647878406834490939666502793945164264661454836746766788931026889154160628824966328729455295795824934265249518490148104631923880092608316740668114207335637800495162268559591530122309608882948167804301098291020773301715393440416237959634970492634861938666261720052459769615447578272176125204511426906626301251009864173988626329086084411577081150557327082288997521851129156431920956152227883223126429627165778655313937285573223640132420382575589831556467620850696760954835525180576726037743941741144044900578474019963673335822018229595123572542821681121780900137517186308474549511004729400133158009877941995453985987080068342770089603843115636806613780148130485689689720861129293628846706144537741692044087259805430860877072014869321334587332446529749502835246923104928904162895785490709984111187197831497665690835716596098360961003877052463882618633293632071825454379042827837206151746064008213032633445436474748544924424125641008759438377573809686089379277581020038045372858511498012073876312693478310804322875818978363825723915833656081342309436819436245791702544999641375022786126082865697714453570852733572582663547007472039768561039710201881126887130979925776929587339691763010189477082627145879345333698192124463588560267247599707384112917978526972471421090399670442566890022061462569472317121261251658562979972235380854620697573936855032581673548118890393464965683074969252177240583844132165126319105247352752239806670000739298505048961311960953673759182778753450537441610140149636308247993280627811445087875258811832408983271072470047761203974079919728016604282845053954005464044994088963324613555752060625252815062372586581761556089130221399182697862701040615671479376992701436834410350343755471660851107557849009154287181384815745048361416014394941537553731779811827119750216431872365030327964773832346701772566711646215644542681646853117031271485622471186361739610270160043176183514067774148931883574690759280924409427805535161167511833343127620107046561083767621728854213064187362183993732611467986021991957169968109005018428018613247068112204797590297231581084717458603420513945035471500898393731066961008901732621314637983828309546469117453922450727421203066287823179869285591900657676678651682365903577660360181171572453185568399314359446107928717345776739001503961573616063740744933711300588547968489174189543832934501421510143605791318450013694239697784995410577196913011633764564652058726182030565576491683152830162124476782120433970703127050503763118463682272624957040842872023974514590736921859286914864987140650334276672974641399115995796559344764008524417154708696937064665885438313384297514346240967631333164320418305029682483566520105846133037084103378136895317746215010223362302599198994752830991222354848656061812136073797531413462792083127296041245225120841809337177654140600485761000263237851050252500693725020837320268237547076611162656234840069161594950046253540669199381366567953761975588318069182583193988986589340117770083135663875883181130928827006279028814788115472754493585860407296234300998577896336224670908909073035423834388706733170185700518375855130617223970682798965186201748924046659992654965302859116759336051462010000225257376127686053235161163919930316636442163873029951662080365901631996010765143885460030366645474410170926932778256220252829741303962301293923206261564136217227222761551746988232902998152911402232116035617956949403041991041151729539695938704777944075774530983561266814680047286599355829261660081086922950123404624754772704266442493418305185567184490376314077260341606609452940613719153396277064479308906033796943341823508447862036945509289532743548182438933929044730283615194793597049953544384271546023586605831304028857154790323328668189858674760767567592117768532245314662391388100558111895414760157519535956662815067448338298871904094521232774881896718931516347055122582733254028922331749049717265725878367106008214233187118296685496214448448401976280878277210289789421883203972823514223613513818120168278858986818826287941653243484528147493057978801230417569372554203201734782817037988384234170348585157790773722556997212407308829466685264463439502834463086744257175258242804992147945451321136547452455090769522709252830712434337116031436090465900828239261240047753698242330607675590085084999994609818439234102362096237568269831255072946681125526328754241999165049520135309754398695558694763160183446145527195963255691300025156932075956637392768347051073256334174307216083347215605338378067007886565774895586443896324790552554951443454056885788091111625336076532008264388729040116230817805846464075924163509754965983275457276230854403487245225955778782019825305491237513891096336646021164891864932255814569249336527515071245291113649403048220051075667607180073364009773210506926685529328449248741983341055321338707392232629539121169517040303432261398511909222387409395651931908540746123651577173687130724442400721202467101996357658733419714015699846584270982587029478040647570601740603434133724468885334664128049739788406001897019553395423824948985222940543223380289704926606196262227529006078451713520702927707245492771080172807506786775681922887742053238403875195937163923871951878537251808564886499689649976708015831234527672490190715234188945849374833826617715952882262679710438078149959233980864117048590361564033255286962425201725699457610750081514901994621162484784207059650435988323479831400726752510703318563719587027160708252733807233993683043432454099573778097486111130503378390615095195252351897667526819397179652238988544800324459856797878296161211370299484076267631722770502185778092866492268912355130715816473504050517524731477124677743037554853796222666191204920990559486870177570874577561158442699835195437865712159712418209963491322435464111568502369525072014017757972278297909691238937103926238754314855352516200655010417336785799187009237761313103991252426958814631241125316141930940304302335961363567143110652634120874602325881289192631482409621596324457760076483513157149319149000003794631580468371622908545691439592809279168475672402285424524278854801045480403528805217951269645005904216333364304328408502970426976237419565193643125164103427098383144539454769572186031164407999644607981279437461870965456537224761726015512986981556257497224435635699242189113147701554442466119985983720388746246099985382345795736480265734085936817497254332535320694694883925859107066201962588025231406482098011127845250668868367654711712869343036567433471166988342402878005026415932383004679736687684356320218216438042982166618524310411413642971288318518214528965798619985340549330117724224152045934744449038116742978795854796179879259788575085656541349402985109724202695222779452106560375164655444750444664118403430641905136060854107148250419795560137596074246907159161475128999728676123215508677423282289130568289474905740167136809940332043355709836234505781150757543409610708500134429985511554071004154106597919119805904765232416375940723717971417220206666626497609707354725052969229459469214251192077926010631212580086224186773694942188384293129271714412650865758912956665658680617317580524252590497033219481257235915598774847933777937172684427163827742637934931508950881531281538917952741905741996720645910658656745493005359388044515956527164368404246565063512724639814668828385098421898859916960836213820807489319237214620808067284694613711590702005515657743407861490216133117738117765440469974471552362928612836036504795733632499422690671310937838296945007328204093982940913995021201317214360185822896769847533778437227499332227134799422347235405668463350744933901917365979346981641673103397180631080722403815497952320051706558876821764605960817699504278531716942424078729083647984806112072834639723821158120540826472092877095186519216543752655890821382748708946921287442390476349825644272610560471455116454881960264046890208743132837742685066278197073765041183918584903106694569907322284958832462168815349905636077060771908074692289812059923168462531664714898358159934342990024924332491187854329013876672587066044268096308029766368643267296511783481964865766447466971447251185961038526794036466107083813113672655217582853478729041144150595579933453244540012659637999495812657404406591498257429081929089048192857241668187710174190983992545345285810761261901243337149902945983390696176608803152192925490275272521813606996083252655018083159213265623207135451911380996992756348546233892106208192483082188818819584756631935864363470753587663696341406026222183971249314700626726888253675676761513498323548675128582029861162732779300689094351397067096279701047740766347319446102856837646085728634787896713883553050853813463124269665616421232393467053879141531752182802782950213385016001381017904147626453140443885363393611163178346290039173614439591818809783898132159949667256920562856562027719525065746108714703143998767138648327273857398049425065199533863191083751159679304926696058313759835351082862000408597371583998696814378262754794664872637632762991746047032151159890171633736906690372087770291512920438358638272632370499808141259230140591345162685280408091939448167477350110129783587433884218249534894228503972416190276954266614538903378825761450435879685685899275798915208751920449394710314188119424216347472151387209771825634414217958494999896202059148647368255138789258109262346581907277169428249390942756440863632289700224544566346235787587770812066599253242386050618805943076111931116361555704290394165905445938273697438484317060226893428667200598315386575709624827605052371353843555530307475172175256418551072116184660253898074266266619973672938161232011184840512452866388589096478808288388408272725456832665759984160879614936357794339633202568840115865186159674388747482584453365563797132465269060847109172268064614780316550358294231703155401710501758784857098606535086872926350502063496813716556782109735624372045502980476056097747272513063625083998576059393820518327685869859053677785982679390805711531615953346812313592340310120740800901206653888584957381330251144712571445665036167875298013357880205237500064427397775071464688834722950946271912412911089666927218980315145927093185920355031133221276588712651727354590392508119404077971889220220365869823710274387757360069023343494663944187272789196304454546467060110325445974129831644927365255453256627826122667649110279886913381738957848029259495823844972758792591532842015923433800232930481924584935306695154684993060689290979789193465284807676684651688710705349072916065921797996563720966857314765587637393623894868802679729537078929300920551627814735642812763730462762083714022376012577637731429447572803444365617116408900508030312771005900172230517863240685948696854838714047864774853949415055938973052381302775853109100667994730270359527057468602272311296667618900946881726521526448502561995166951150692890139067626068674996682301189552601151430899710140299962336453077654865134268145064618812577915315541710365174796038565185380580659428111195830311929070439860191501934020640854765241798669877426196181555590552319324466051089971486354311073147953900487109056273237572375472951953147401274934612513109307831457547876337657222792735393726731562635728273062516728924071487031297313888770185238010343521986721393376705662744600652062397095235286789298336090403325171003827411646452828347534819341269540416860487702097572095813866542797629874249598477603824048295271065118715127761285866764984494119021958951083538170272586083531363439567425327523625207083970548248646938853511530913825625600068018215425683380100236351340299406162918531288374829432759869589818125526334087152766901125359654768418775715364231076994878535129131462194917209910134458381820994051263749489926692258656631413999853081471341266864881391115596779811245461106941972723342436432165621034146309445465084540461048646613956672198053027470899244781779439401111140612734911486120523486198950124789089784359448999669012867777152095098180268824921748027203807563440068715619537236444142304111136335914100692636836414617191445007115453686036867937788117308198949495375071236017053039344971594876388019928012241674544584365066661772280916580900000977158161611629089588898439722353769391622490577197683648765453560452898877947649575618289544154780550907294600984876805842865946695876732715094091337007496907925541847316843981454809195147980535493996276834234498321517570838695282877406756723570501716020011590152369918658749069296550418763421056566385872696708772963485249104997768487458976967433598297964019356912197337494292966835881570119503203963965692931195250583292983592835887030866904213924974164648881259883750292139997352362377013824934887894359520582693675482718892126939587502791599369873836289233220831996945537538154990527109396080691953765107861072191580419475284879240339193240152382109820596418001577571332432282682837248176343969953819817729453410428755957641966092646475445604656205894439595641805311368990491393491285796352715047805696047610177026496062744990397877054809128892648699462845213696247575434467253782246115424251501743194530074848360264434789259717057458858975861046371069240128104908309199556762168804190458652863607374103455258821847321115730179714926711171026519521578099648093299746192755555229277851564604386895938343059908921606009199241997280049070914289832597078456204533978143941875979393475679292352256888650843713793378021452047249863734899424550911926093162037679652672976141463236761345048616328404460388127585677961983734144244233289204161942882777819257866361312971321842925342680956542137333054112698498936709196462033821001117516288276828283246360266312881635220050483314890420977642930214768925503606179762940801726880640074443914669613495522923505610625068503545977846675972526001626768320701556864157865894445744322879988880958125347815934235382651405431557207670863076820475402165775762646118098539367714495057473919989694393546277092304774532249193749734516836813724209766220024409404304108248052510244911105184222748636284165732314952606896168335762490260873959495270920931461582151739471556936068162160052459962140659984707008045732110468648778706987222748040831277892875485830109643820771455631641611865021566488239204484728017526401502511423238306724235025155638166050865214921180038893459840395393517591676228466744403059794290874140824495989453419549542950169173815550448645515115157024378124205161833097381326805415712327069911799849999485577656724304859931470241893186846767884440479205758055326705294629563006232354185597033218144499965739517357068088487989985483259459950180256736433345474878194113942821889197186835488632706579218457494233954850139246424675621141625648948300715749041517551111370867740425563473061708964102604232593874381518118056595385771047574538556761551553450682478536803147510895413193804732266367829570329878096219925101214844267153215965182290374211758495655414999677549030070684325986884838640028319304869155215898612346203291189531086763636002931588314933636652862648458013705140894186117428304648358296274388055897400686903964233698288293538634054173687026143038728024628310775091974521253576749611032510788157767687270011955679250961342437624713682087385440476677761494477506813877910750756115122984584140695778535198004496322771568748752574594900428919492129379591589867626798880474962756990843668489237235565902391610227716398677671499240771437771737416150689071921362634407788010516373279527869799833927367961289547913462917052122840002677145217156485092580998315747536609676696495353359518718441871201151173574620154492410731976050650026593813092041562513240731193896827268001570680311644640782769490767379242417508802217929546617294578468500263976920861562671526512333486078472074712766616043566091885625185980532068074600415120830837988151276388228234221347725295865766832323406721910250256587774955606224160975786618558155158661412597351409299556640424256719111373018774172861876938564096170160448536303752688184791648805065184887119434610940417061711028964140721555143073461941724665124900699155506369291274409704959075972706830272091289045684519268766722142625365798434030412595923802103978342126293093383394161549251513285808381105770110013915606817035975978809593051000376511527981006240378041090284991254120879232201157400517500583002375948114341497004628648836057462940722811006477165506832584068828817698172757666807968927725018928453194013329626972082827357478850618821159095204192436122042721728015705998238023800326099261529825265096628265263099702919040367518727450699781448073393967650709636388115965385708054068756368783183428343784742900310032635331425875990240167059175883785479370049795348120211900272749652682845438838579550356267353162456127468107375482071442940029160832606090419780882107426547096059532380250202274454535334951335376043869519394566543273695740288911277150603393933459816863435786636867361228932524433848438606268855173576153714539947301568234222638804262542668559329752207988590737974219538229113687180145484918984008650838594513619192894964930692863844004351940486760031404005493798121274182811373626343816335904463492917428510785726577395545844206599674101401212282001613052726285024685560680484475812580157483155325678285662641014618040865319126320611570923474228373890770522794292469694450355255859074516011106774629506737076832717125510248819778456977517541020008086775778186481606163695910184115525597865815254891296661097504078273389166398734997991826592075146513626916173129285383141963821967500345638615111804874074095937736390485402078366612308254018111176588409339175978558070866668421553044932106921251835052065653107929655662297116170745874356807657209294732024696720431865061369442536246528401129273882465193386411778071815404719361495755984211382401066239372593811190992673510240673642838717488176678368987831891195968164707516327573238406150523567891369285259183166300129183766222373472386657620974872454867151292156938471338969341927679440448908310574946530004947765819777681026834762605718302489698849015441077931256634708016263668207761708711807537092359476092870950561670835595045997548037155738140021604326050311950641550591520024019986343966902266643608403602963374477155742332138151633570946164628667355634053824057969547966333764664887133273689408631780607404004290776419926721680664618769811971221439714215183155445760897450797217458802772436893079998694236445591033952174037074559962669816451659704011776532177285603670990816968755251555505559899138987822975905539595556423550212750307584666187153905658464393806195635502686671750113657198879334438556460749045209812188232252807044430910871681411977245349069144539582365357998008474527851361899661580990558739243826329861844037169766467578749895807220295396038819937263171877888183572331481751648488904837716081045409164749213478917836740354851889969928203801616857983309698713752657133016830229557346092517652162104602279372062519145007975978859277644843030197898718446071389886609517178642627793323661454342332874111240381657127940641957657666325080700185080327648973050114657321224067609897580378793965563672274844884653074064743466730880710539693457207300154642364158252982684145137737066598614213368643188087057529063139786278968608361324416222033532361072696939658591673945893481193739754604195682550829671489507723644028874368902600810478394082443953929787536820917879325828350806290870620730488470176233157042977918939514612989442100385913284380139653676937099668310750568407500088501180480542325116608442985142306108626221284987392013197451225372530039674575552389450717369462578178548056987801738740375186610440102054418971330276334563428013516976266512617745181811032664739089783958094397232030340493514927836686478305355379710745159337977809623962161847340343032154526855778917185952949453512509031637436048130434830783197553217919844195079125348770834446691363881945494044289867657909194452056005101528964671548350284910589789138902007662471545524927348290215339548732543098870140203370789829756192183216959223315362826300091191107878494918283506451364684772123695560573303268434512039734392653145103479793439436277988932039615152046987163275858958810788192089813824234284369416321364775078116628687730590955542553245276631917693466576677647193212847146849510543752229323022485217546557502005422931689761550613110427519284499040682225928164003482009248154372743896073471992650427744231290061557999416551997689146252960070261520989180768790442521542767624192739102695703790696818786550428710332483884302028964488822814516782888966271600578381276199996524736982027357804506632584400598447461485856649940550507138877238463600671548543324629768852099212818619414149460940284029869255733623825341001745266639742128982807437621392876646700631467259979102062565595609661730432674374120133541892195451630178446927781315983961797538942735644880169393526886741853112213505101644470625745585959693795808376522282451217235622762476376021351851674362199658826784232834078077541657532363931957502376611633728331820959150764596082244004464178961852939376808746922829872983003947171484581644141551687048512592579166570510462542808110055200614776204908559920595553489506125269632644482073821984024010144341092905621765127764796682364120457766823029631779243142561171668397400670689427257363648844911380246572839812953549096054590224087363885461212911731894674159577782161194545561051794198237409660549369219134578076578405314283901851880351057804604278399638013243540094935144039464661149769219922501564954846610898549713563259971826191876594062222403367426723033424533632719617235568125058594386486115299571272713373044237246911562578958264423897508054871307827478008836863503967384539561275713877196675086468246987767563971162067342699530487804207562240520259923387845153604308088313711082556890915094668970141253599798573480603253730173598960179848458037317379110161599767297236511324637571223075921134125481036967136160208368230055106994890337750071913517102273009183910973174848187810869588255250684990069298766844225359917579924425439489750842699951452706003315287170502166372780649688081226120549195966910745265695518064973139841952142191935629575892764436870183649029564950484246778480246309082273051078647215114557295914545364892102194646840053263566290608524862026448704312294570367386944374602999643339732583448546700599999392124468541288859958629463381060134910499384780179837982713165953770389853938765305282022564988531512770179424259111282233071700904787007471670666920875449773781022158668580907863399112995979177261513108221174784950745306319622898868259018823276800030226165211844360126295160287417499566641489648534273508689331267053053226927856089512884249973827524584973252087339654189889879081808360860885094866948401230914088635353511384125249808792540483277176847869204233821765842904049440755927425828166413057622131383754177136185556757944637063430059352257467334801166275474278893147806076264969546345331548188479188120157497294969765673698091741327097220482090894666918388670669895202540497357621409005903516942111048961361903853825124559927541538014685819753343112295961264574636886052901553530633638343197106946373451747098113556376764680704072011251732530411382239661313295150924746357181923927508580083482163068395432574373833262742792117342366298700598493501464759566958011409543312810924364050349505688223707257775630313796420305683939291798252125289614800530281835505987098005260657061444769943952099768568122989992433756605702275544296100342201237233201392294578396123596263242175904053448507671356598922525645878420021866658001540579047525879119072003690398886723234469069541531531344296964640952123803630216875224924461363552132256627678458041227809746984651155687795903388408747006176648706338007604776937309162248941359757959601665330246232830957790270797028114621954592491708610882789725679157976116814631945603305220054135087847599573296664233559507441691845226125194699567708743669670002470223677121624234818091350461962444035971581768086482402361469666187953911023008412524557973348173922691110951486022700119963886102263711811390441508012139860711028098149100076230992398178844376887107786245953273489484223856875560300822650155874213874471694315180055624184457378300524354263586620019458164473468276659415336414597810060891275414779461990240972700809288420869661236582907773945931955256584667126511309829694966000582793884499765511392020003910961760518534959703301758529083761555917634101323886975506047419676518055779939779316300009436918855677121066924550917033924504557400571321919675432001585689590478434475102063161720947908940858453318283775184323119138780461237278417550261567406500439506330653201230217002037766861727480123919229327266019662914380053564928914360911097670552329632269843521126196065872509478883413717001635370425256515219155679722534283133469886763722996860421040780157882932212590203553602304234244250187125237086770243370992503029826052816313546294422734234549980434279206464452141218314306182667212873551471443343317764580801619956653601880599176530696001245072333823331326375664317611715861274597761823895697222667664760125352125260228896167898874153577065676085137406475315259824303416823763376863629327229745554675628702604569053875597364582260784780849516918565534684625330152869278220086280935130050661500772267189879612012475971764723544288150701574885337386823229979215045711736644311806786432186677889816666161226030427171587729986350998161627047312317367897186735145121256664183654521388755971421373196270344161257558232336898798123115826190481672961830393397103942802933988311482699003346951394513744104732927572649814249602321677715551180466156607879719812810225698971861272043385895615994265964719907445496192958043859323539635324986145259441860278628169133599377091547023621804881029565835902691109904280362338050846978062922794412183781080900853105573620343769837382279831041308995825290238098182091872885458097142226692163115032859985817545294648350893709998042966779365439807608852135862335131597889172357791434822454971761607452588684058261682680279075775587207517116619481158110284934564124146862103333206172639911883425290218502421638954108123157389142516237398288195347114505501408945331375513757410114149345430290423486453378015501942509994868840376408014480003965074929204763606948993830585273718397812928109499152501576340942984977777623503965202952743045895590251378958829196982869918925970508211342631770758882393412323145547888685666167528924307477356685665712653880733131437571462440472766550154497898170318845668458333856106356811362007456916729603099777740360127065641768629568394262181669198185217794133671295296733510383349968895985754776795238202643747512246476723970266504664011110312339386345966721899337276772923517522261810204804646173632840495156631926226868927290114194666213528686383551696197316158068485444033247574410854775877018748019259437326796013871254759745313138438474402484147059762088255023659839936497793996275195054540078825120870702629828516253256528617722141131079186737951772086695379168986369426562545401841891022107820812934462624666622290476463492438383359156372088347746043074407624335045221930567079558058715474947435895067224521390813909720932262492990942325144199918167067078342995393349990114860202681108898767078272963824638919538627250793905572275441288098129164605734865620980286246668461846350714122799251272831045182621978158559781337961609088543304598456182246759712091292290804875341433346190189897742171297574522275246397011964870929363082595953014830953448541689159143804449526337854615618610393665554126119051855888341673417719343444417993226522805360572215597131969712053897299405622087595315163240721382291429897216481497737024580355997341260266549173726048515058385660380850971420355880047217096595693993303397761189626437894478990923694362254342605975525208759684457306135198066400832736088446396081125080096462909511243800127189316632012390707894681341958448200984613297771631513149053606234528329144501925472049405081424254967996912471259012785686011213016734753247876382071542898838696908327130434119649651513968647153027451387113407893603842599627588739034930305856094479104902560040595671875004388343776732321836552810987442414148469789666227794344126789369654894863244078114121044864344116524169254061378023230386751753937935150257108035692490242265138753384010070031879978567761563259920644972209391784668446902659227063008436012598012803787008540749057790957746055284639070947781018386793506267601158337317915634689823481163327245897269454743074898912588413034419929051441710224510129898308583215984141758786371362785642572177923447711948296277064118760016649480433672795252110135990597059470402101502098749639902744687826160078948660523613391045943469667504963063820668930919849794998467637386697744421910147725547903393175193339685042379678258096320636944705231321352051809691776228003757878277314641368493614888626273743193760840833127516546809815399609513326748921927552427651153680123419000856890098983296065991265398658476771499558354006761098636546232252139664300172882459925062088590330566907168515230965653968414105571206372783335547240155807424612432328856364281055888892818815962511097160510698856560212034755569122337718685961565018655596750159307042238585320753731162223559319272626708337575090873234903181546719599868295033558069117688930199642130928271093034405466490331589324107525091692651826247479924702993262129858893261617751921617023394438788859179421624227337481805690040961427534191703108687225431524398925777623948915627140682332605823758264206466626745674977642602769808309931899206193558372795452366858998014720114604082874150532137206388961789586805087681605772060266532897097198772093228822498520357211830100772573268583069748887425519081012146837172709957276481119677513020377916330890862360340579040406215884433938317719451329757118287140687292188328429692360083291020831873806199241646460569787712003311212173374000267668680908807687034116045195411492940802942250571377391068235430761304892189380822912555155193107314169078117969975280032055775837707201022719773720722299876877944047523006524122894698905150167037685488305165330285445158309513232432367468662438466237181217175682674856821888835718375941733673971033209288546498085171787372072755428836630476664861410297047066706092791765233278386471873040240622200300953052434108687892550164869378882545759995319636736678297599660146641585682641255084472050685284609492268722396677741809120848163581941679351773576628774689310108943636034264788550440944587310182552320692137196968715280326834630873949193548731491617423921265594333426981295216007722306450219917476967049230421853568386798059053832697239989812685741471368650660863515199901646450361541867507754984995655794741245995147697861452435550935309899648719870287576859630044738903274777449255151215763260940655916739408702762353410813453447815109588428608779662012272144546105260708637695299053135168465349085440268457828116538075545555663919360810286677064002197775125337972145779424278128222198563627610396792025414915575085452498775622610748698513143358493319917464712888437905874306510354479363763561008974429666708377479670965809037414481747684747208968156575404319038454795763673575561190403807143730831981924311723033459489658908649476215070918135006263289524408303590646903584533865270274782596830143444609987671895156099189429183572759644918363425453412849574614420402638133620794866233149360014460464712991816227307661706497975372978511019827791361440698043448614190920447442192140864558022027610157271936997914227921499672473064352451167740008666809508840012146593395649306345180836318148080218001602584937239474332544931280312976091425275818230526164998589420067696715640207876696626705644376682875457321472004483951182015231348866777107334850289582351035344627362137047360006509382363706667943846235680839867121182433831164247462895837074566429190742051222643999629905262746210937959995862116087065508593994871178163527131522887691152184670499056887529395455915543851531453673329420177196161131989087998409993923922807798418571888744578823866766140250324645237381618894112482168341210177735315998718194667462095073417701790250520808219401881256122564243593988211299833439043998794482889325863425033636653556399364438734481565994002813318584802262579192984505559318570802594842155497425392386925776753041032115028120754173610373901615236591500478540012646640970383122562794618716892517390233713146848865892854597163835844836876711537353873406857432486843809608226311397346445969025749913473456202195700072895238043982361351633755174850907591055602118607938258690706518963211255019440679975085290016253138633170741032124201904573330415425751506420009204160430845673787241414640694508678099461687688481649802628875493602878211858728264941845103690843013138747569621337028255769468830570107664421472697988379286446500628915676266531243191885811986825218376405920066018755436596831023898941989003558620190542342803878109744181916089270621728075299160237768015822951717671279492564055095931608547105663884340013324501448449124920162670562899984691023936754247132458994582003483424478412962414702301642899463149501685636523668042574073579711459328729284372871512267206397849186213233741099241552701071161366620414160625246746466093507066058657302093544644499993159952134289004534368174310108116391482629012769130510775658432626333406424320659548226994858598056598390489746522426564086837765218458647737240968023392042330296037733375990477187130325919819799092933162085483385833546524418710109715496293868374778954837993969471615078658604291265720176641496185786941437969128739213792675464086765747247146464540136790671095065108901109738317172404459800965413635183699693386526897538291548832428413999937993692957514347870872037801202499679566389883932669056113456824277299508550208736783168042316229533957174938799669038074733330061077809479571647779641905517113619401580707355199077685763381149578893765671576210385485128308287560218710092645746671820021041295066003745094551648332528546662152604473599683704833715188694480966209679946969017053406353766404287920039072243297497904069741460562760540370504995217749753351563203180828526621498411506236402744471063081076719959439802183961706951564177724603778472319635381175804498308609523506807753501624224812569949816638898695989812511388694079300379273331848049166432313302399529959131403372383687011665801829980138827935271491336991395689286583707360066782234268921657818615067112902556925763272896452419736005768138607850097973987296541527440268134739433558028294630550912873546223108797556956738983911103423785580244423059775678675178223448303140331292385659333837159637007165713981182612293518646427681398507023428655258516253859982364654639566815826372750109739425683125117866962838980051251487296713943142566417328157350223494808661761989479204513350506384459758086138339159026597841344452457638256454587391810964809326857863279688511641416674166642282170101708120590947423108710718948741623392068046352061299790197401087966085954179407546087455683401840142166736162255690249915600384415539982450985796562306512306158135251596509221513935148480308833646542421114407981151047374448972910777566932605276948728175921582255626694222798641119678553063610755344977522465604725930889596412573118025612016933793518432369716815301353805994107639796512992158139717654221599718808256209986263843825366430731880952142520194256406072365228340493784915361657940687920383360309210425068155898640358081933227310257510831731431187555989502219053583648230119258268852385440250251199254721725430818378564173448362594564581564847191859923354215258957600662302254176841373617823723117065266943614880204371485934985378864231077011220621704047128696222320330754943203359334822732683254990416452662144505394218496000860747704225495858385798349324454083907988838503157960242043669733568552267347708776772853132858925598612510797658309808922873375856660882892463558640458298034052879460089737690954138988366577154416537889277721749239815006143864836371874877749093780062952146611857202205875636368893250220039098089928304521050666941044360277838824966531541105100424894572548734919627699922458332618715680938067751272580794385539780398633059383953066304125696186741296615306142762720227612111376476047393311416450546319106739778465178907602718603971367562643338813697333305090280730955498464538055603529534491419967640917802088257629313739049053532905465547672382689825312643120307159007267264725062441106163690527610549211912309558262147780817648797011607721721070852862548643552542872344027030169517103124850214785906794877072782893227814543342039903765883174298624330287352627190564914465847545878709432068128068175469304728230458825212224561778015412086192798537745376776092986263696069818716315176753266959693551678416484908710304691281329636220805864364656557702112256034467600329170297640964274516749254499391377701658748813570192330274599597084734771202569438406554629650338850525693208052085774438110807753735878840372752188731850097057992580619202332607694034983779311165138508574472658316357435009027358709760499113827268557733957710601041335300143200272173190141144023840160718387887096147717672302718436768592894857836325390991202594177078401008810073604854011672127443146683175506544597307963325963384230093558141097730395056946020700569184033144228272091919563040392167417682226815728580029662764245757490718201020574580418712283257482344474404386012334174694921363621604749937428159594103771092731090474951984986246510020181068743154682691056313100395069311633670037803936847246186128516142814557832940649602287357990396646866117602647476869451406735230992866287484736132632472843003263878453065583889950196061565238127338049483309117849652015961835339430992859199325409983270480722829415773916581209877161469716002825034495858497092851508861912004441547772853678088390015132960351046208948294608847703323550297587638837031842294166631927331274467517446628613969609592250759995620230303485151933924002444705544609799515247555911828963933743326359827615610377807613732429384989752978165131976746611205869103590300471801337859584329669502124039155658959189092639257420069369444956362118758388024889067247778155135969726147438911792400992092835051113077152626155488872285837542591965920936477752172186400319628327274921123084425307941484638401331018141940389790736398946477684541887987040180749982955333951290569753417404939950342648936637002355641352755243677478592754478329813812165731447778240660010444510526091845675740158973717707260609706591970436793617902208245033780311098592085443000990439021614950540931133393667167730668894829512477483010517849759439219718541130996907441552903056133330127476639217816570304662314142315633927456838438966703048907582470904521323926084066436819761061479820774446166772047926640844236960889504690433890510739232040429869054947215048339238987718233186850838880522922032340657080866900401687940380931614209143413321513417953053767222508546188389731784550138965439716833698382761370138052854501397729151653344894424054999282611089743339187571688528977272421065785137802398721434710616388921746421449226512810690554710989120064752773220841478998448967495377501138738476011042944323602768732814210248892744747723932979170661737319903566819141704195769236973661528333130278433474096985265875691958660408514475564032204744321233184660752856009044548927474732361172919166005158478240721414902626309080259077685861594768249625084771598166246510736420160499121005928905120487296789421399488666600789794114139699917712952727145179273492604002620054335076122766386252054255809022956657394957121934401299736966400369415988523512370050655853137943889209082995671524641278441720512620636876498727560876057945987614675057091507126762805841501606971676826158602911928580465994640785642781906061323874375056090039854666024959734295891724713969449093788077042849427577449205712167174739215756880137899457549725751792323674080420589986839323495058056434498915849660171213349399606140397480827729477382926138276326433651999220699272932853428919372131567296539336102428631461658157399309149753847012180765518600690285523120603928303855443831460386125496006248698453280927292115256287759237923481799649791259300946992084008412654891189435924195862870384449798202969748801877850979160532673451733998207524103294702484609968948582451805262840048250531117942221983881505118128077850152857825050361697882687237735830015092691176118657975239687287772993007791997322143451830741297807004907386249479060836925705283979852828382279219373463181997022605393915976413845620119136812422788466702245454584962868397974555575335998948230570419780312970430746839818044907115757789438714882888678883417446160973614024833040122960103621103074190955562926687588490978905141147546623330919248938300135792687515757347670190603380112422105563315985951996767411460197855999612920335772431887160681926111284324521130303979438686504316220307749945945081214131573851278981154378852387825780856367976728524257536343487282476789176026310199428169203127809278732205788494377317128918382285354751210774275186169312400198268907971332391049494348331591810358443241069226413660789122225164296538734171661342012900589002506850385651184801714765559206381974351579205147731232820393938275300075336089967450077171291074683812191943163730186635678513949316426259739329902842403017776287802382002200551546957604877761480498220931262762309657836720428956281722723512765324673072316661876473594357448745294155150157528980502462614145200839436735165329226496049922939815428887987942532085213385853349133387297470181399710611891622341119012746386151502260060619191197967147176277180274317172692021281887341212701471933231206131993818173364480025980119641282586492413242594400564195995338756501041102017731877801406654473456003512548441409722045157243338503769034096698456754900010627709251517110280875077911960457451344553772495106229046262035935866396010192412613530982544835033028678081027047299853435284536435589032722849259663386757961595312370547948038777010659940913152816092876959159764683460249236571950011266728804126123532734599135014525059510438207020228011261060339319491498014274023366513423598580450948502017527177447940430819112860857337283594717824743482753619954657595077828915017646073120784213283489917840874958165924935664485988264073813297193501265478818741362994736296720789855284250981867040294855153348110655815186716066273021652636478845494894040465559733846003273975390044093615422122261931982732812545458613714234348174814193943214152627209166776243280151799920455741694709587734767471380841884014451734938003019816585350851859987926412986849843795614083690246583287559808207934612733307342496070987748707672778106749484327143081817187010471068404572646191936698585835374074596042455071119563580979494266478393017509877735046651684617116076407589558066181815748356624919783419670070835225798400005209732420229466358421154453820580910973702290022526562086591792158967828017817267684917925401660922075817946075788742141969423877007411772400517563148877666999531087620925192379857908044723875499098808797348001460939545074182331052975718639922362277773595765770938255338928848668535690039431306605992781031219471571292362915919259364608398872690625750803631379103938822012835628970961780742393417362123068728065667586666394141639088805491893679478151278729665698709655679515751093364522738557580068057217829354304243666237223573012653123175862897214628444442798406047801111549337756604523190482958416382108204037269154840988490428130213912350944437899311480149389343991062728666094563209483629480052383016046698646088989992822903610105876591401507355291779666338900155721475452107066468144799095077409535258493711481609447267801039984391999020458736125655026746001015766195338433976151324391136307476791386203181786820466863620036095547136071981497657422328741651966825835939962114625721668830236976400874479799762420719371821107740235970404461227862373659791716185924759840055826224647286345039357526447163690515846734805523369716463507129456824477601426777646492508742254255581670190532911582958588137636530263397353942633074412650883658427632754760535735619946777700985055372023023359310520901365020886608985454951535174522044816890749024761157353448732638001681912043990642171113842036827304436554019219429198942327668564857603401233508506536424109544887857443355293289850164204384995369665285185841780269133430922016414041714298604799410489597782632974067470498102700883143730552301683082064804482681043358667188370568261372533514551118342888319738722897567594668454565925157809751414778552146867742417855271117731692746834789029713620246408563374960264049702339149520681683154677943639845032756061736925597609597966739169363912341367996378626646482533029460916338348845058646288741576265660784555405651740084864473924906480588924834794741717835540825977835053600498308211509108032469115440759645933903306286927989537335217592912384160815387140919236367066855666467956106217414758138369148148482849731244745115297272139048065046268811198563213472457085082391970170631831660360740199137228350584137963719682773540199084590424565789941831953429851080651405870834072915902195778843259622237917978302425186254802195745453130796239802165050677566940382263394345560577899338019946616304252565289606808622715075992434510583622459916408898895733075032555289246196905410856390657576581627005148766775924421443052831559914320050082775746525628052575139238684222697802400920696481055666252772610820107735807300518206471647664653474326540733359785998715492132077349091340409329847208519784285093612954010424451473255985610550642647988259109666439392975198261710124156739169112844512811407384874135766352829284955947496764689403218834795711840731966927723424663653936552570630518869751051809625774127243977222404167347854513973969506112645046393930011044985979947065553586255533091364535008928646353382732788238751713912921272735206282720708814072874219909210205333188461522709498899055245022007217486552767808613820076618926265977851985986665480505049009038781744702453607327903310876581525116851144528850590118436249084725454741369137383862398703278024916927365206312724700024178425173757666879487187141761364989838520674121748243603918485409282966016196120264826291188651474600499624555663440674485621136687701430261079468577512038349111593228868757863423295855203802323813449180952048996972868684260903224007457890901842457974786739830249109142823867491495197213906285692714006054621762326164559605182621452686597478534819222173572683584684148482436345197192670815606268441953499118601221251580560151838679064367011517527957148250411814662342050005911379244420839537353769063958246768923485047136833536812014208340421571940326746500690543156859639606311393594691677923933931694425201893823621451600859273435900749503108344248715012564322372761976529765247909474257421204378665819760397904212190353178862927785801519385964450468821095692835012205985743516345244431751807840675915838029243248196226764295482681220849470229893326653922718131548126895022850052576136523241194508869440848795291280929644306574993856904128894575654020937636171063712904313348206216638706678245964200833305681158998000687806148251105630816969595313497218642443096630287944644452325519401055879416746990640608298441225554498764521601431178288934108520173631523978969835211420761123144235621369164366830993710884244664243254089880684355787440555080886669303499414505218593423524944863342216078382020973139304718492882276327557296884418591082803841940904409832281353615333269616809237250571004896560244736841849439607726089749277906874189000156928797993460948594387015457344406803467961549532957158862472643683371136005744025058862505451720528452275374503693552345109453740706292409654353489778297280805510345941845731292246780278464910557256559044888697216649249200384240776854409299386127522230951548954438766557966067582452992547848391520110615900205605382852866700187947020341527330893937104699832375128574573453094083757396375973689517616216314316249714876158322176743837537686600794309403061451802252496692830942326928969426952000727833292458203695634306124683539984611026590221718415465022647062958625931432466463578500673021678900409887550468842896702469591033679401310836783975902315588179724965685212644172454155491771390001299213428255647171725133068767910856010359998068403954713920242189469926172875316275616592722243110039369727623816431305001574978708518535649875358762742374115188904287415612115153044935262133681469596267987607864542590725459555889252848301743403194377257978391827477177686819136515441491432381006299747899059820710229495864665857920332642314173920811590766893495124762860086860047432784974648917969166799061645665509240811723952433145791723872059506858579698110347053103062275686680943863446947554171958581505318589184940370683902837063773306970182949859757666795256675883687446153945683583676853469688668270860609556907344397481715466663923521436554396401887623083885930759844965523588226966151600879449450957232517936168492360420905021796461066718339255237358652568769228571900849992393282226972555408244795086136898287971622730860088740487118707505888374853303394581113672585438870623144525103407763353409128233572100038370789744716341145334658613241518388771829614575585929733134996698793334178914859022297904297591511907354071216439721162117341918913421736071083585606890845363605957269399986876588054016687991649794152901001804473567708306048000444579481812777437727891081895764809121912077590361552290958890274016812264539359483004949511953259772550464808570896737954418128122250215188621892052827699807755012017890257866045640697832511309254938394864118824670787207220746380525952254610748154631445847012858267099045888259921792896291817181474670048020635684267531749007499789767119212760807630015814418905586060180941172254689454940046887572099475888994686591545181727274807321916270132053536807913529917496371449412853661763208609463639169294971701874285088216673112954110661755143690001181074140734972829187422755344225582803847936793817961685718729650274539033119745267382973440290841802596234197394155198314324805349880853662229514972451450925958689153359896473020180618789782567900782696330027153697371195031451151688214197919966742453327544892955941584697716862188894849712591047257327333792521463150193764740577689197726004880347396007665221668878627662305697246868712309173279478633336702099369744508250612094863804789749413589016283712206824986201493537115494950766982892875894156892558976605146815444233767969773438294769041772535978089269812896252778776029048134231293536931405715956100942154682420244523954343314203877435799669616268094288390214884705972336492174362893831216613682802442701361825810607164263911721554927347545576706824528253123234044752577295927407855431920124948750772489733715475494856545459243205044855063257068993050168641416387266785069155865379922029630047539417095807589789790355723201236676584627434263117158831355318415211874782673127251287522400310338689162804846040271624036520590518304666211552081943021012819613257716492026297378102093017225119677126774514747023359617512100666736629889168634823636202909414794379747165512393480694258641681355900115159781431030522188128978676905950190457701893846761977598847812718597797887133818262079163164574510292917414527969173707984708868026074692484995320951146792533461875667490055200298391697935738289851912287331914806605232079739823793306973321943257452096591180111219971475131375776315215103964148124009684507925602912203202254386948641295343010189150742430412076662520694310152004156256532263783186501406220241256427608454125564035341983552111946895144612279764584555120040934988842993890388270108862420064417804627271396590644545009513252608438852820499175421370930414511837247311102028926337028543128668624951444911537896809061349335518129918791897569656551243385013850101988255126107884644076646313165690329082344123211627317749476518463876911394365537949667023287733329814366791366047912356399576539112398874771273575932518073472337110355423176992926598961074750520023746412548375514240610776365111242899930959076526514057058455915717897311747613368861813551680932643016060243827102613314839495554669470049798419321483282806401848437546420487808350508692854598672754969129417583360226220426359263270040564125880838508797747176265124608862732927929484158706433915751519483268520499227179877009028842383055240433217831959674565350989979012139459288518146640100075803845323739331520304284596669236431158982275895344977155827992250369864491157022837875488154704986034309463901836649811798967093369752725035552360286825286998736151572587095864688144434706730927499752614950859653937549860718556944164939348873916906712388598659525973327021511096411378339253860596838536942290537912827647019169585250220709146769501848146046990665296532564194668983490374190038248532926246192851674705750068967240507490653703601797226767559119967885231244188483515996133521184226095200484641517364193803109152103968449648455840407121243583393566818261505611768961890225040119358009699602022090209501958147549595948401825135268141443197485985412765521634937898732381763813808399565784108889047948601813582296261542786293381829756684423641577413868852936292906159122735465767605349473433668217004163649637904935358724908225948431447439801223013312472740636785236302311058019442997851658856230360924013511425342016553275893293519193410934351697507979540825832048319609106303219306432051311491217673525541363569665003710507724036442239493822186506672735575251617176948889941034757566373555732066982897157483695521110357768334530186594071978173434104450350790810955250569259074957334399593559952322653031884130962658511274753032435857061153060603495275142860943581902932590087900470852446577596061600587619165064064379588060215290976896872378674838249853301860131420267381505924222536087562046143748591300393260332156377674798403535500353972465932687788480498351794203453819207447322397856744503114146863644984142583691432399206912153813540862824765851134931798787954804554241997299625676271039673364302186404151630975230461247232597020628349816685738935580628119889108459061015906840256047537687756095377368064962025673431688192166515503418681803880038721604117524562975979480852245406091035931505366532711056664946264579697646927664565837765612369893285763189967169477083424664168805306369671217532366054340811552432474977209169658682230175246065573887718294185671365977040030265500232461764374286084362453997405830599380787522869718860991263717761118586713709586907255490281347196753485748323487381237937644163394597721262571090981044544655424274653800076650920614559474031207143665573311220153130168843807381628675477957269680601524090327843150808185418503252952042785898734296889188309248830862016758667923085488932585294958901159662277902576611429227163142815152743355268487322451799464962284877689946155978138229814877035408343144707637002061358545502435830240795953049509540685660448483700050977730853322265653753376279473303578765027264849002771970799196655293547739020558786875070194865176684647984605256293225300532926639839274652618413822417428898826407005122928672080882737598843218196330193718064012643941485859999491845755816938390776249424853449022334524071815117034548178369859663999232272859969673168478729859899301514019826616614362137036264992850114724456980691353533344742941862156763512058457584609699950615532379709256331749130610538610629240528329052303680079524775963650728222001970606762860896142046794689780188594042994778165945068694280819341650587073360969803455394530559790869567980226963514190696208221908381877755370201320246411347503474376646929180292419494814230594464208438873093113227202095974753600682140636274422226060397464032843889276186507786432692654595719557675545274188722806577419916976291838354217907598880668113797886722059277616817178135610290029428400335741898066957865256693785674031061574071295012546549581703730414035229918306921986704701761691548383827672107665218423280337369446383453333735577441777637967069152106108507393899804613166869730679216202738764283464438723102205098794609525833008257495535085277571105643947029034007004296651325822470697902171501213507626107934572666405122429507819478664040278415743715776916436174959273866317326189351041247020838710416514279886342651657348228104671940618187857826912209559355013238088135563204382008883510181361920203058966810577479420356429008936860498821745535123051582123615010830633929784729022078540428157266188974125023486909881113003937032393228755943713571194064866993386903625651255466298228228430836981190062909125330668716443720530028221775153842944746612279508996865432522820649493814694914245711924952825934449046010320387324416264012432346619325181487230596011163549643187864054080718002377091026133811561587044960412389496954092856498309310077942543781063381014503330346713094031448212113181351810913716289553618176649331542805399652369586885969565896192662450652664320527122596721946344754903044481083370064380839747589381370764455620525193151842961292121066786964657591629258639278942739863788960277442568981421258157612896280698498645974101368355780762037816139624157766134220101096277485586045926498593623927909989243773119767679645308335843307193154993868274524826691901083698309756442337095892635079706517255113894451947990675032289183800979725434335527374698996701740179838787118563148446056840153652918224691841939207064585214157740047558780129414388468647766309283838846678220278228156623309612287570333950367177329746492886867333540763556726137229492689176370708178638770316845184546522985116565520111892359355538153795512501592725007027496494335316100762523540585242453904160382642972584786395842227228655373907758819950808594884177339813977838884510423401304715135055770003101020667378355525258780861704647683820044244707757732148853884261078450014663572689245378517769173388397666985267628906375346421775573602492314601459474121834393966460880380501237809797869614763718188360979663882064508140021751145696209987866680113077643540215088724330805418789145994492942141194777153757554032664615417114359706710576226413702912693052262953737018451674014866701463637957351347035413787926980561564901098437016096019092422840799112531807036149470526571846790448354921789224051636350153656072904596334818826157182175860754357146268129049856054431342343120689601260487951148414141247857772489791618423359858420387583590899903790097138988921213087474887957450699752420655778864653037937401508771151974382892833451386844074085590179141420101928235224473250385676729693085303150821734377963539815157314113981348429685901711781980295795714990129632634893430948760247822085753177523796410827732454035490228355953319304280208659065830706584901436267581893616504352692494128950545404541962065658057929109684771626608850086042156941725364876159294202225328061125356866623674672201726228371752018422237134005532676375044863895724579245223866795415107083365622911641425567412131046151386127471100126971289848731147633909515447393022705337701614159550736603458190894451840749506982916900304238366592907803930435195671939084992762488574626299099851591886328367781827336890667344934508210291101632470084531439314080930526717003899990777091138146012118250297750358227355063945429455341473576030837618235991672211510920965208629957792630469322054617044811527760116537698079079195622924906910331510981002736670076935010226654993653675962414630337777784111425152941553276804079441465333554981755952108994752643839411054853515709830867727501266468413716223455941076292017322057271489876021117064331158646864993744702726432478097500774698722583633310567332729949050778146218868429381222354535392587341533020316321915728897048497485757183956826080462165775580119086818462129336872282503563409148509072230133493923525385033605628164464628635424138913156421946396097111986359189581072175582154683354608431191654162453827116630408440974852487933783631186889364696132815373747170770635998495013031545065608664060284510613674120224040203222362205007455677925328284201656128950547114348710904181024934211186912370282150887222634036644769242387899095131099613286394822659176135987276645724919211801073802187791571452970937084621078613320950667023788098802378785640074031490868637442677709225963307099542724391592367514857102218001902394035412018783111653109315019500964186390449930276938383820972803142394808498814529238122632786862716267575285724505153720053627786053575901689917571699016650269473561483977082456940944374580058152216949304851260435774733692383997119137147744415264079497476800865695475113195502467431100501553075641225983452179041357353652947016699352203620425552261711118816099842064593148119941956986469530399709231850982448397905409065228910260131779450851153209172894198720662006922673630206567967640275915209922739444867821662127926731962111417477392973915945420528559253591359524610226661735694136031905634394438843649680548737646555127659801996841203788074489801128498596905832865879585449978780999077684671406094974507832546762638808841974545077445525558824832253391709042422383506667054388337527218691806280211507975223036884683700596625070325281347871988238353698736490665759857068036054775949211323768270264210043428840228045850969465067549340791464270408860200641980466911324336938536043560298075041373982487935276398761274924196393169833203188609833939145081016077887289065862158959786060579810306146456298974389963917209373201952202224019450139760768209981568586375706102317556152573143833101834217869484980884345683380319553311836832790205776797053339953213142940886813217231968346510235874023734874230108585958035006294752567260394109043631502697640777221678668039444569844662997768657240898416812638714215854793685723798251029095240756027036233968036518460314577081300154716390123694966526469959211926987936686107844580156621205795235969381044634800649999299998635641967251089806495933926362124204179359245213665111688488990581571797723061653046751454016011755011932286439272742885480618702288026277881472245622314012633924053577293198695180727703111719782652833547862074865524089235921505945776966483960438777130947837212082407720024770470730472624240694590102284262840435578761517427685510906566371853670065093924507272225251937623037778450207671136475097314563882976821027757889481599007528331573210732898111803673824038956027029699568208289495686187126871042137139849496546243699881657540949571046232151753858497838858351119279428894549658879083986559398700362278858898231850696631576981190881439030007290726262146278580255137723277190365485968505682435871605277684802599516642322566245532560540871105945299234953729972709513167573055139828713169168362417933900976363010546127799850850838730935399050351193140269940508927576760571761760875022621796337975104748358876571663708813674658074085341632829566380303490456911820620833774848570153904239044522678426487836760679240193554532691302163461656804990459269064377321111725872210705133404708607666291632424257057121217783950194932607742804988149781237578570255129923012766958016759860060669641770533614330464220882391610072124707181955956532916877563991008212232873862314226377162100985031510918707212534706312797499641812930546926992793985450224614545341635524760907033470631867058837726694943135510045270147666979057940350477807314924424010279016134966616159555825515105300497080692701973865952825256038587288719447949241187756059142679243055381730338947196018888642106106242926560124912231077403741160887653645115354491657704175922991008634076474630505258930657773426458929071329115832941651300791559337979447248573331271016221820337801651930707718969284645782288266074101687528724516250720832858644014747763849288617385932475660743757863536912713427897849382656578475084687261620343023663783104788335225044419735436817301503566987767560806927344462997499597276214399735377790162822164706378015367777082313275417767055936907373609087535030789683033110628171054496581224865463655139197748907856033666498541723730696911172240126377218299236455521676477393039130313089928239803343286396568646991873330566906250541873794849268017922177645132212659488860118174253432679507691994783128678667140367572386771105923605935444328016280321229785707324945029699883836967871656019087428090853881390628983068967866256188598806167430032175500219682837136564137883782022528974278721193591395978482566231856859660062721185495123817555867620533578140793034493676964861539307269284977381625511427401422652672239731462114209004672203097308026894930631421654157606464715520766571020310994855232080156415404247586610327854217250923000285525655989169077042340045945160214360621299435480076903633804492583551152320699438587851384627169485273959929973180548314756476224184990512095546908713452353527529602910567831458137455113010681219056647626074212625024081403293793746515202964733709122029590895145937722811755715040950815826257832334142122569115694183799951160935853392636397148380811361055768362078294604817447056524251160897983884569446778230154530786327835046271419387094239721738333060567870519016920094148072570345116219395302128975286747367376775032699385293486964476824032620250783385290885539299775485036004358385840088571575458972540628053475994883686063924687538805085441805976471235675966356305543050188520036117532844119574351367461135137397304170977401951748696756336912985165892344575598348314691839246417845502402574661959037692310681223304919637664453018067878786496184823953758392532615503074055209478952080548765661238184708495032539743333211492682133904403588578012588302216050645176031019934606685852246426599852983492169455520467133988087673794868682660493235425069155455390730916906373359830959618769935931774177083784802214976640728982553092212936826978658243369658137078771726690659868346795897944277347717789387565284800434766315781761279956725907621100538260780551447699238960695190313310952218490964060055443046655486230389944750624943544698794909449785662470684176475014500391568395739185863967054414193905984759589779596473622637837857203627409364938865858441103749492301774454031442708987473331663597315954027598623897242659490074232129193040244638609946620284287525424981944995829571920586688527425647223852411453953329932086408167783617284298655347320499707954831381943415103510567929293687128821763721406875277510859160805148473168991545929555236809440527947200010681818032582922539690602845569819467752490462014402730155520139731761318318160403161320532113377398857329480138120750792146325954602807586696434325607755819469040456183121434161005383812059877082110361400217869617161630486004921022241211791529477234002745073129949528157540127631201676815541898684930726653497778703010390140229464350632779179540387059796111335701320616764293989158298545399730486660319045011736177412193706617891421812009410459802461824397331542766330373436169093996111535773665765923356011212132354901672428603903195415659842543979656500579944500770616969717286232260359794172561143357189866225711246586359737380340873792916026475859722246776390595678455257477032328303447139841101600207990406736626150990875906792486697093974809967133699927145459992533856907062255131173438783904674807458699180123058110663445664843243450726486738435444724400237306972784726577906172458123033782126169010953295101307775200555884313105340347109517567256135384314225707556698883320157543120149900705746676099126668435891676367575716437634017002006905889783223648840189482035030622651790325431386254349269354931584910786843688630784731097992414286533405173684336943672629551797046206413941513134718808094025958082186649659731326672021255997443495513034551567244691844904085439864763931516244496456595153138321992293250475162794801418098222736849711317505582271711041004320768552874567667086976897815729864472407868357652368361592881977524685302600681161083319424594844192802279035234977694057057164757021280274827484005755794242413393905821352514082025846373061287969055826170962213786413523630093409201692854607378867834841178574817453391515984951694597242355076792860006757862357988372071192281772619215705259611962800630339307375350333446920446988874497088002405705954974822190719927202510169268809777042699498432450040862599585838107600022472017918828125473141714789428216157664239402093860152555039267570380292340587803226646454433109640261955870210043353172994536173065123550179537132844765669370172732512365512578885592894375675037424090478524539608817366770719175819335786940813246316753593917277186486464237803394911788523870468633924062431188454167806575512799170048808975898004265762274105987292329510244767312974492535521360877363219708412645107971137580405874151323593554855883817895734045380258989718030863215380034575029575355703909392351893901235692337482010364000952744255643405133716163499581472413824636476582019738950223162317766156567026499296226288843633723480507899571974995037066415823146312420256356915696120599609895185472518632273906470236508409805643033625238075370798390790548552553357875170711974919154535661457337806613895141376989116954363683082919360656008993427594775445975872043193669641953299507951975137693550584949134847787143389103566619941003372058670023839289065474186206808962014301778744843779300056228052861165212424006773958447696787907242144098394158983328723655167502764092922389667128221377898016241853581732106200259562185023812508327296880887121707850248683368219722958912086740355814899416693194551492410470803075232649290459547763234228939516047789233445477118663082602179375666161666355588660961261412411705905902972453704887817222394671486556859461327760339559612915143020249365060846099383013775117007286764383881063488752413227158043454508844273036286835695115697149633136523710537471400761876662285954706084782173645594023412042595401660412234647903685527935186009578178089949498869036104248788752970360722344620310460464164454820491126836586981958996240893218572707239508079325646755874232328437404917756072164269690859060483217439245822136530286273398364197009142627522319708163755619280093668201020636746043176820284110110735848594012338575508244670170716881812608015824097819473796814413125694634599237818495341270889176805961750547117914543409725826310496569008792848078054053749421698434773532089190001041461154939719691625758122109866283614567387578300432744810652136522975288335942411870335319286730019624270776862565650305599640499815974830036192790721358322059587066473565106846618898852856048575592311947020232442495076942690292800193055662100888816640352210769026291536624671448691862479820335494985667476450309652838352773403830886216433667583802658730769244485384789200841057747060157708760413717734369480161332683432010661645986042618713713265700358121378075725382181061254965783737577785222133817953731909283139395931668511324141686973466520308914780467044677825984251139177662591736545715992042023955984240342574711232671430200114706055400019521690990288415043629837034521883875582912976055639030395167860063825685885447801556229742450874935986147583280586318650450795641961251314165045672192034755619217592870549377113970799017020143877388880708014076609575021642397823091185190910021187702443700162677963756900542636371931002432812418178795650709475543837741520208660938892416127297956160458150030799521815822193678730311437437004332209900773346889740654003773920256657645932264975132663324389352287293124417193740922519576321651100016203064103679627895461997527807652267130205583773942565928298816096918223078731996354571953957729407173360431923604260087014442098955101870727806318559387667499435448445257906797274965576236158690061567193743969678037592578712829855979070051454034175378739449128922128945157308312937773962938210563604048996063442166586035643931541427270404638101299262360177947918491212583122953212266168070004309110739998647259050481471224310631851348681361675212831751405749452221774543688347636861138092928743942125632455925748423511067735337227898408803379215228856289918438739242867911480813807884377264046761138794640879938788854956410521996327959244066737440746368391113143906355467015099606715694494724842777958822511814458037371354238974447706258699494302556901906094944917837695511794064926461748523188681470069923803100729746791066096522944197477289917969772715668835575246485663996390821303384944279409694095858829514829443744623712783357529420115546225842718082601349982915927716506562310647732923021980767747982216245571033816558039604747465472247664340082905135143047308337522384971242233751276460266806962257220679188336952889098944280132458828998408088734977975954183754100925197701291221831627428113312386040647450570961060527199388099096131312907605440304911618036722823269891270170060912814899450910163814705652809844389210604410689576706272813217748614475419710003434676934966118269798295616444974312387470662260549907196265278006330010115092862542122443441744526059073682755852619338503657970254447214516274691100118692984171829173095695426121058781105686091476173085361891396721826018640666828903097769323844605520242952559091603194057427661866214120964520123361924719530125466731412016221314520833425292130662848186654310707065764288114990578754109389223523226148534062161225397947725280170101438689419756309888805080835092943275188152621968524452532361470432773883215606677550379924494854537915394699588925739334125364493395753043185863069804072733397616820738080471560228492847116749472828846580454927615971930085326925427635359143674187874167297311449857268577633690797628552383066154262613290800597162608871471646806346532818496585206516016523901633205261867956777939725110790640090573826601754524762140922533785109118739145542585381380355558030885814681938609881569619482181948436745550900852255361824018626573559205943888976327694377211020146027080851334299459337092272122571340993644907948940376626657805022682434478953599259103272828052831524136509783747953029548240361745570042806752118148791417673977446143187287602977996111538927940204767228351420006314098509753543557771235172081023282698208322028954329911985845070398213837575177015593694362324663159045800458091817739538124324891399338711245988455444916067345835887142152802502983961690847635750766506822907547480923105493540953538119317638212799893558154257224959943046964630241312028665533105269874688615386405378288225350098913679253974238734956999691534190191084747499854637058926720440809112961110182292983213056442515430193553313674895618593756160230383181948080708769596866501821380422548244155500227826736605832877386093588135939428216215477810399109118134655628740907086522128159347701578530747160919975052802642107913807374606709924281174491566146081725512463943599973458770641059221713383774910958583715844461857548944272165438725331698003203500436003177193196092606614290250256451008062063575914841808666568709977867775243749736376123389676044126603674590637134457070535834004893803947689319779933222603195336275429301032244702718905184433322893190997318990228386347581607155293289336427015230245904342129613178266892988132884615663186721960110923268024739576571496357897900075699500131710059575502318627320271541625836649315793941899821878912314811411932768844090906353853558380374184546853685514783538685831679932598736733032129780875156474652364851797349531302715880174520244345096113102380972216916501564061567378461992939859504910573297123507310785763426749703940731594351010326682199586898394386382672867948185686503733900053635561989633778939713171657944888135878294771508472629962521778660588646452229950525346301030950813974450116513644841165833111724988333086848391182654209842277340884243413767140154112765006334603973370936604179097087435475623704682388514804041356225589133509018297478028391367303646936449533520812747370102624268327506371714320104672776787695598904955829729701724744230755544747433226235260297226237062977369835100661753665700196450971163389070455208768975050580214829359695576959868821499034471591619578196622155274134667140560804817588371393510288828136374059327848990615478119618164715946177321984777329198264547117015073359358691282357899839111887155607504660823007970832356830742158624440391026437655796525115180877537592077915194227642433472847113078397547279253765923003439769880240385307253158913700376364428514674149906543388350198290069135385625655290619306580386356524033492776269047876838983932717098003287658616437645712128966304204656729008305632282757221680340135479878039291802212853106415991920842023176095490346436539354557235459398868887538490340975907225800601411224115103275878528367240415289285013498650756872051070693073579526238725017009309629280342641055492186016982201944519677053937784930543139011764585912335746570567045384529924069295704386412493174932243485759534829463778012428845156648571243706753400276452887877427300680037489047240634544346969541298321950843898481185628861162728096338385917495245776626407771936504374515065320504965301994962742656121612015453053498848579698386393845041737159398181481849207821255187391873346822020088929849036990012172456249425691673740186387197187490130902157680366780708077150636708957073688859121485598748992394565727850147436916625964134629521886899105057572899236293508975192885792125429249468798191856567120475759095007829939865865231938610886466773831172571107682417253682020769358851767859656856033350648420353856595089654882378694403228229258344622363992785095759239351633059320937527911934865167688561275141233053051892750290099781733896426948997263098386614560827379785397507246140581260126438596743666815396529487300831989585191042476876657271945685921237279525206428268633128864348562604367857288949093580315256584597514129098079238201138358097794364527922284374501646877051023234059909464151372443483602193965207733603527578578554110821408797234820276764134300841339957240898231330190953841147992880569547809733389823616572519601475524650762909823756337065467381827183548896568294542569824178652238771691464698510051006264401703233598460915698489939645787947398480077814337550213974870162425675191233273099945732772446202673443767996200247966901935130297661676109066939783837799042362039047046316857931213078917589653023895814055478178431130461757260888452845576232291888417455472208216011719415633685034672802981443407782431793504611881485566176819762961817077514982334854852816189248935405464600511404171517361608789829922447889159062170594273534511408012982632911523298386398217421146363189073187633414380720600232906857003502644046000505508421958409867901381760900354412032988063162583101694938263383057727088893589835337803523399079890908896071470075443838097953504691589899549925286075217346588706749229335277329347391048212734691057550191909752246550560600106407505346989500240095250706991506151535901973287591661392349492754748015606975814488626241566480554881002394834272061788178005907459249181090865683622782996260342755090345571518908071616302204131587164900963094239391806482771740970545084725532368204115255523055752717278275323051951498016025156878810446945880095715483103791112521462511313126578192563041559472826123511517651466789736868407871779106929090307737416430949491128544803896126897332757868156903064079144287004101927215771057351149884178483194905090395748270610916329866047166093147488722402772621546459915133100478948479580946000251435075365053545245816343591166827390097706676703805665167697411629631117170007557754789064132878205032229021999913939641393253905524088247314089063320307044723747853263056009376222561755453265205896777934113409381509301735656170747067153775327860235579288395713104804508521793578464791156638632171557169694880419447467713494039961561645559356179043337275725453857897837314970408759878785591758592741611554322103218892299386854545025995877531929083766903147240092726460629093372064625442247324598719873522897530043243582231931596128318516117450026360344806469838342024494508886947630210265498532092937646543016873718205303399056817117074588098422904990324515680966435854560966692649239255701984725818200000357597093054581042665357442773510041788050995553451508225994526126599002206460006940447332244194260943764151480526634527680090175062429757591710384692254866698149339899929725130591229125451296726097339016752519994650677569622913278777425120146434839451014909984899235186123356630386869524645223167362446786891494437497575105787425698194055031334640797948741579303124758210395856127879176922644712502427790989542952394726742459643434005945170395284361258457238460258159352082832148235661286370465494746360473774667790808966705422209700786105572677009097355011155110821919488434323719314253705316576607073362023480065530640648300876970819852209745063141533617420193895185680797403750651470601456820374861556046596085715759546067895385726147196999351111166109209100079458468361870262302108418388007990666397773931929678480194430142384953701008821354575494988293682832595890728448260205388233110203851362369627230751537749052317949006757352104106549610720294819898320311909852827555056059910762569374832782029438248432061029168270513859833510427179636480448683154863100015874073486976906359114325795401962274572542947011046855192621560154665106728239591021681409415734984188140401656173797050038645491326377120642626513135007201215421433301725173623485815294511794362598567774508614806711611223059509831934584401340435158582013931101031450717306762486000269374307261816353633868753001093256212517349960603454465893228998276875165688566002779846341673487364301473106643200388208770360601893982617742366923447461648843789025925396316752177265277999787344492036600314769837658548895952883134168056170827751884845756522558986471529412225260601468515901998153494707321082859072805358697473168959436454766916315908784713073482563761601660588336168567524577068575093729603375077419422339295635362375245054305273503358669377526909811354978716523000510901443398435075836586380561402566650001900688045883548714681116441357494559998567319622036766239583013288466718318313555800858688851157458697014082559777855373786562338964053711836363407445350560454732518899412434960804193449908927784729745075769401511212070015105264724644863149700233507622304014677799434954988876823010511442350275038420794790921893006573373086501028162994031782111469151369695084864994541849079755553524332728991095422545856804044924314068964833507840781381007903694822097596864429220022259959242654550366197433138136299918379236289898158005812160522779422142474677990737227642929040369543718946106970188568506890399738618863475941314536789144681022976224212313423280049239154290447031508748915821369588624031488914320830748356267244693663112325345390287365195284764004411706551502037900742542049487653950125244953395994569951964342901891666353770944901553197893211406960070813482437926580475242402247400901639554968818643084534172952984075992052902562148742732333005440738897488691877817979527477952068580477572403592922761238662493432978581808558670550871796571702420004569886163140393005716643815159982428977593322625537053139661721462269633896082499646095548975265635670923867148878238286487675291480109873893339935333101218966497849545321309142662266818782481787013193547720771596378301756888579902288422051318804954056920650762343889065329408563549963229228605321543977396047005024231124104279721973064833892665870928832428846512160419752033768961838483483538001914476193071449637737122082857306469548940502730797932432488706002293944842687051928747509925766915472300123654851886025074530723047720850181059478699236853036911032660819348200743260127043345831258626434954386182920228733852172452110213716250232004293594013353947024824574882064190100675088196527954030927725487450267481395645891170603343577958303566683836720468627359978788286514502452764327113218217462091136672510774716329091936942059312114658360783896605998731527705560332440891649040092341527594520065891863760842849258624796231935068017425791834524327442576728650781307040103678348619353259507672094171066486587622308478906669891140831415321182413411078756064482321370618212648491179997242534730006806979202835921559424810890883878579313174067206999678472942614000417454195596797986286154871166383417326176410481306852672837562904491239007349499220412168888740374080664857663415953598457599162061775228729504627619576527155578994244802541856102793838470675481930472355860976120600387675937445387424047789069286830404693862845648450735858949311801479124507537233978031854699819762983743901167922756181117569361907817412212857801482605558888488307152306911402278152802591605990444112229242659333047174854235289151080716364754434857678053810361965716506848279635860387825230850625116093147538276040267738384540001297071204735492321360140206632783509702497249827518539279658184097586393701371114321167509012546064395419292738948541808808751769704766327217710843540070316104956116902188777551974319230162464045249103056377575872222049691639008621101952475936389833199742104051587024929772970462242111356895028411591010150481475508713558938858088497247847525171034766098557156688589785604364731926490761547380396678343056324764357930889031027941405367637499041393857133219747316513650873013943917486523394083667699162302128087964147241928182596247187529109048564191964433038719481240404975195728724753462281694552821810901860766536417013590980008998740953116321864542649636071061643466078985382740712176937338021432445245854016692469404312035732575330912655894421683265396906939223667313494681522879755283358179387687233846365298017996051869976470461791182363169268408963877786341394915076865451650847917980648612155595353244848351476738190366848338033061240886357226407932904820717202978633451959548800954020114441772452591663021473800423947896375667603125979679728680786625250726519513523978603548799978557691611355012708121838267046179373835952619932937411309623931085042442172901480154642844186361008144723855428230537175856785153558019389071210050230763789139148577489401149255274191459640616246837399026386818171986262330005597184863242158824282460599897037178288054972990587495567143755204492336274349668282308820305318500476478695694265260312076807284873992017215533180352546476422351840436971462557621050093928116375941650280753042189899885135639321376558916265059550264053515903226197076356370522968090093976756852070338791851744317898859379777796418330022311178610739714781332256803439326819916805451554085965992886857507618085398638464253535762142417713190279150985096767344528327781000072653532150001563140286486914212298064191988910704794427022776406282406555013717947199358003378811463427735934527734809217970060222379285969847033087043099353033737715597786849453590945274181717316973158134822636303770044571548898210679100403486205290298752903442476159622929600875787339223967834473148512681391155086707508021922517254116603129843358569630933554036925678453520876074337029609985430963739696988502269230891294850330051901320814090750819007676122824572856778357055677863703267295789722997811853423540096152295190889084878871973678122505075294720138156149917041618052727040963753702913193994221091444493833523841402867111655704122812912173583437009652625298913874039695909047269478367979592454589571016518526880924690750243384523339115809469669430280788895559029004448764442012093505486186774705947147092559546531694430983183445416896334604627255043444809566322929969271714770164171176714562103850020581626459466712254093090164808980660500486874062459745467958516133342581609687478579471431587603597895103625729184319247079897970375761934225346135004957245688333966072422538609506129449716715158883890161380446806222345118196087371382516363596220672942578371118891525554209984609945572615215410761165105556763538341089368640261448622774483066819764625571541256267773037815095684318895185132595259672046032668509697843763043157954352759416313849874887082134105856108185666276693023535996679523034673637094047818940706954813723666765586549972700705691174391828673717111228048945898199772303082850602232705010728606274454141473903078585705040013428736588879067491385015323986072559063364688139829391241469807889156384134561748145315494022968600038536773741761369035207957758925788009558198382585053495431131674430042308732256113333733408289397361628221039945552828095335680342065677190490713993796743745535283062225275299723055666283692115066509486364025911006049100938417002370591050611070985539717742094127984141664997879011235393367298618950216943648583729531577319341414345306235654675724126090346911925995804803979572700692789243458120008518377788501308055393772806916283255779030329645090801540243180678015678968398812396113306765049086284469232761736504549104525910996652296810758666723654716029722548771230251722514468453625559775597391947879330712357479569913986444233128342081545626277185674156678701292205083085735933304546403043970136341179571131736600694923917898136932366218091333342949855703572587578106564746133586056185366537937523606462953973020241437860439377125683877777360187319433680807792295792972708630561309804761830606661534649315110106069294639113466594654195486214153628812847391955302570261820512614873834438715519066623582594552538659699232704354307014483791789102724382622105975339066890981389991599188004994736270639089747045225114450009652677474327290096295159616775497868755397391097583826160493485145004249855201301013277172678254322649828325476021143113898684996360810468157001906129018395132379529052872340064730480237958042541740269000874320031310504680008644599719253767671445134621597000141618538218993098296019554101922704631753028843645300770504569583382149692183711332116861307575110572213718135776064751572902229591993633642433642967704161398718451008188662330907783237885752708534439301822633671939165560608132558959340831719902503638298088150723406820654082764420099928667604327933421600008662983941519002576383432809628530297455599969134551182614238175124949284175633828283842818325836602592977633815373538378954826547907171151027715217797671530697075532788394607418743128977676784386241676709405982124389325682384769033875592109695173852123428389586552283097320396080069292427389936811254876974419109299593830560849830236465474066848404361028204432017086116516033109574476739690033057831286785495160004846023241049463959390481981118366899693184341481915485252224135312053071631070471404655617827190016019479181478960567881936545640675092682391491093455566698502941897825811145707308166663275655384572939525900928679795557735543947366538614575479101911397560028822835535088674136503633945036681003170524601905484372778760694286112242206415399154146327116330408678783938740740197344510380936646156342887872078562207637661489213905730158235088955637379829727286698202006700328283120881623505944750943119563420779467709515868471336869317110197916719972217019093230297702251435474220210409899251401022836450333665223853714535706444041201919198620604243050790474790630765408729604533104293403680953113162012200359039604806505701043683689614804604055707559975822381721029713580793740292067408064915531659458039712881593890367220848018427670882344886197515548934137021349340298378038170479981174101276598073357371448606194421431740501233259794004728884346694100051405918971856692795484446251238236453716997534333933240071157220780752401271093038798920711705798716866310927993342771694065300262061861492892457027877246208287167298288221228833433855844785891146806531134491214219766188190087187086265396045674184872726249651005328347037094925037985404764136218752350577681388379935846897893059354377446438945821101072507713249351710562304232668179022981405515385860293805455007140454269399745626278392119797453044186278827301363920575587780873688471324565666484528415440537416943734751223129421995415026596655716486122924677106930678078714614043160085176951907036271298934204935531390040029200553585698020050520465314710840755771891191233184572580080443923231768998831781394467580316931883636721382177831770807185548877924826389041644890082498620314105050751492105310259980941503135408735925254658524115750556108953870368473610231233967800917667829963001867965168378054940037074685546763749623009594167047806122208441546934490356557976404430532103263026760687442934386054066615554408700082853362809272571720727523777851940902244817161218331248400962641155345866337955387230163592710207463436824044621340679847923314257862760888417645900712934830240561691456030735994951810691307378096179605994753796632331810983726053328688922883391735879472222793193377217745775569821424557875779053844478192541281906705234338909933542188904299183797779017507688733681654585600161593980107761644720622760346859473077116553713306350153491963310434959258372666007019095446333939734947092577953670260638296389411547684792660245863885903559635401872838878350370959423860042697458236063688177229853347822621773161280380638292658812194956024492936142176224675134221173773150544903418949164344466032732964108260746860756579142176988250151640965209627854449595582293912916907160589148286940745889154034815459618978400805936272472303376439202648848007628208571231039389558878557310268398394210696486487812605969007193968903490106263127765272621182199418357324462832565090336768778647622429923908111289980153670305058857564435498806182103576555073049645930301897528608458112382181510997164217874116527080230725759047605113690054966830077945776521696543511569519826868265675573528623846610185403331624769797850119290599597960327417665704964706681622195298342129458105077555663624392205783418895766078647252733985025765685513020043525147314724027496051097435157027522510296424530680499240763660915936749214028790538398448660100001516103754836211878552387262750562058176861372464028485357132146769130091209940778235936730211273872691366596538997141516164044442971791572325449157107654442113982621905311266226245450320794095753803126857715714545118812872050102400346982253082713921944959897415732047599958744652596556869506758147780477917557168392108718200898087907881075227407393995949754535442196308017323518456380821593120552979214955795636965840176427812013235534437885480128148462046762197127089200364810798696774388574609260179400627102092360735480954514813031569399721053928736000209515525599671736306859223043896272911963772532919627688303123403379413689728008435019838341670282159450082506968756418746774274154887770364982172537902329430995561324304429466763741715102394120176876813948509084159895866826052636932975542262945875577343225565539373080582207032534296707616715280288619743805300003773604178882848664203133799409847853459878032814450541752701628634982739606848126308779007332104502404711210202565960512009345665804034884532078794405464679442711546302322395750557201944476450212590566965014701089180541184396963065889355165743257754080447443372689685487265250673892702729490237484344898510153566140869204712371317055154706801289773579938103527979177594018228959597979782702943041210589183882396453879838263434323298281523840548518423466002854952779826384032251447215272523943573744847760968322630472993535898047749329468995633805881828716380208101794410532684701273700683820602426984041172570601421417955895942024756329520624249972283561030843448901923600309200353379479847292002758770074017904101981089932999870809254069247508450887988936829306711752236517486544174600506110113299582253248623405013137086885443537554315849789509354646116161523863082398790551818697361689426609935306379339063104005476562336712503420765453431907335179247503851706505339349929846127017360647790783836205381754392382073968609357841964099360472278702331730998814000035583453223152180946431436053732986584898198434325640444868754229031365351704027044149303562549916454558836141809986084830953364783491402885613163562694041944791384426484548191443110803302347273602749344773532194482771030483646992822890189269289594365282871069813129703470018537929616391892029499880600677683788431956211313949275661814297734716696812571136790730557918573795657858637795596844492252671966016362800942135982052360715057172279117782313997063818825251791113295871357618638205831615979703745518796886971302124289130037574842526811458780740071460688438946189806080822804085014212444809287851929733025837085550794323456262742764965879498970694742318161196543239785434493090372890408434468246137056143924524091559049101746163639420288342014102802853317622047164371765193673065425214343127774659180774578143972781785521753049565933782975212596104759822552399904408806480082883850575963024572007164547157010844911472730626694912377877552316895492110864912028621325314843746608261923853674159944916508950684846782023630791327478643432330864322932661512933202992965143068389035132859365481485298747408348217422034252378679427561594745635554726088067050887493446489451919604894972475472500293546178621846608647990873312347560292206333555315283720555817895906617151764986287448359877854947071311967320918588109372613229427044064157393412200197622616780548191198065591997703113626984401130688853900769092312236668752484957075901768314369353893426901301229353710208782001603041430752839781917383386477058800894881961662062468773974986221756075564527545835318074579534539212801168161567673919957232562308254952220042855801648351713187435435574511661867380011984590641599862599538281770387096363068340060929887570379360221557457516118210155412834642341534971804151567721019348782698061581640448814707596241978022981053801488377501321029361548449233840848311720971550160405143318982332528255512272102410079723244454409197469958458571696090979189342645602653802304252630641606569424405268228092548754103159072662104535097940918118794557513332194465385008795095752226426018662839959462719582793872432110191700264766949409452369721844174185983992200312462580071772489326128369459830446405592097484804895390024145782808494845865353251079333091770695738826340206122919389429314487961716840251726620836512501658064463404524735762617561619492394128520827263279058847570761498629447132175568091961545909777143275821889637592120644861105650713923174570971426085570875543180432279851927532509029072533466178635894659570206462089665113705101970969764469121106345038562150984364778312101863407444187552409552416325935788906673965593778219161142175558259260485620397240786004303949025085583845929485815422697121827168291278881333988381602171208787598664206377861456742048689840608940608662630044939678761008774640462205412990067269416076154421440367596599016086546961516970403647308531979062960630599255822553215454085132738493299687998297573388944562419706392832070376164861527747008580773630178101182314761993239566768713642767797756513034886877961713060429490217400678782669438146235035956709390156248681441969100972275445430292093462937472818993597379765642146670376975612427829624832136279168288490808632400529301611456192191327279638398011578935425354825801609376668052850456171957981400442249563346340692328050049802525691043228855230022901142662949034617929216930179749051771121454704637926534217922715790777152585329134219817044462856055692873983836100979076861375384011514278256723374460939316525345291200652357243741175351797477935312780235362219704869237343315840768561891501385999234865174378352826033849504008970936417255769843997652716586342968999803928318955104731425285387262055636903039747241240940681799659335969680203163243336909507701671823359166366436358590637662860541458303018405102782844863375271473708035760725097450130588149229914309660798875293841464992486015649748457099541462509217473610334713632778936785779264513582635649333244624602124042078319716590494146980635331051405294321763878702945677032509515905821352554955680115481725320690578871482467969194244134225689253877502628877012621939195672742665440039584693807137027352878769102597380389440518756276930667361843677249190028743471547783919788360588770123468799494278101413508647411546615052909169167643742369352009289361904902433459044595569455155006215122834778768927218071251832821831851227610423052740569567427891652184098793490893455397619888375838458200084574998564409004045072988886922924151477398873358052865123380934109318826103050088454352592281136384198073746080964516800817056390389253486359232296887875023294121874899603636147220062128008791657486792921608291941466657078714704513994169418162906189664006937755788666356255061848576321678324021383322718637804277758938075198197546971759385287281881034375076222491291562772338973252927451524538362275038917356513843817941540017893952810402352967329618728541768555145936334085375038994574525845746480835436353577689794930585565823233091831770270394155751824459075496233997579778976074714729889488875990198082864666795025346470981486027871486242413512591086255588965641697205278083491563351341294041488124329052196784597609165449183008481373978445329569224542609575072956170047512481482871908637910573023489837838902117109039661664818698141475537056087555216529645403877932664849153434193028853851508154981657000626576154490229806913481892747455177606396522535814221679037379377924310881552230835876452354784229103726052729777641785053425683916304081272495143616834724167241597604824641936363408038025823993960774205394653326390603029945342517122707210778939980057630324029834634065141089479639557655303633064743995819138524448376350590696577979121456114868615649005284383842674555297556906453804758910684738016343786953775181085938636773946074853951779788261840747634610377022909321675521715911944540505141432205544960456795261824062978052080579154045833753423681828797195786428463356407470047195599055856955528484333463331202667133166107571567165392412430649131905324264096218088301121743898805882067214116857850388400250084263319464525810386322112028049863800945683155620149531930647466596102137770322670132714137797945260593382443147263505725950894336768324225765589811244368226128760918141487976625212262101637992371855736244091267554710050816525473191219497884233651512516309201813715056003325971603025716434916199949952356284466245670212975416117646108136985442879410402365755226963466120487274085168409364202487465391751363299898664655930963846948958623266876142057385419351894113243651410867995681377649715895278001610443022538065649208148887305969345036356519607868805338425374197166439724833477198443696810792847062729821480466864177462595631245437457751495433320196713507717011629544378794910532024895232447354565956301357483680072804721917029653673315037793427406880561125983193027516624034916337543991067364015946416357672985839556922254383446786825646950697653485420908357829433296129727159790917706484503395051499576724894195137547573350938009287292031726528495904121037698223856973190154289188382246931592542507025547206012773708391261823596365752396566429043542896298210866424614362392648615082211698728440732910462295693233828767075435309255520866311789606538641872437355091372138172317471859892571680098854183027076142644414820171396924571737922228976688537717659944257182192037365717121525410568629618582462249155748787403385251348384666238982032216668935774595972739522935319492187800908521287481034141235216820407112117084901089565962167714297652607859799260969787316294463123679785256314045955559297740079903954105834791361213363235484382825786249549341797802053526734156428792737398025749595480477678903500687665235854162566491787883214221546278005123260205220933808456513387581802201102752506430765242367949319314075551141974276286902900125049220180559798347597548086612989139716107166891058209903467652916323018788027080973816699767846650962767763670160262424386263788143919911921944801631481915214455824776444943056524876344700932993627371542679608777178330366623620383203287560472020078817018635875620351934537414993258626183932705600399981979932004567695774784139265134318334180507132838683309975304129849199940831335885109556868099532950443012477385845677159503151961658242229028846783410479830496505720078735192091312761295480724693704822951334126499880355820727765465134012479832491340812509093766532269395724162081512461970038450425393297422954690492339875276393868888114734508346227226620856880798457823480187308826932300286823390235959790122453126083188745075825195143143599829846494225015739726130803769859265032205210578050717506831156788218166814753247400001642835396832396858633142787514035091431806004043971770283298940748996488062412533296967876811771310310633602265544142196713128556266226166248775196970806584590266426699243018354725371127326261923407940052540006605981582011530256595482418573188828153627202066773247743653500994126640231676540809209866086062753723615902623145651877005708961530600417369460528870204850172255422202947842753390312834161350061087614453848925840622830177204183897678867180690008719854235266503211661273620217061974023287671298224927761083710018317485671720880537289047327132746448872546641246781149603176543854148595519380219495575692312525773385329815194193241188633467615193156608868398450035071395481663769689611079129138581520029200524859178767285753618184267496422517965205104404175016237569123074323593918173920394234349674172356206556410695017539658657950716157707220691014472949460981758705081185555110654140366577179881878411672514929407129095273155321716083569975566750850091770798321361059779674168195133014365965969926480969444295663420604771733431772427202557023389694011235080241513624755908114030905550021841175080688109996244522284361067739629179097291339632311387951983419477640767426166344123721647837247109631822749844438312061495092424003188359091423924381314857492008646903834271794390104110395055591093278553227392256505670318473321154743031546009303118545591161431988058247177233668033211497698969187604510102303474287038209032203012105491040543262829104759598654213359847237425206894963709738803927547608333296784438039849883188702098164294088217620009215205016401224181569838364085135550554281418097229498023291873937205447160533729777494700227454831875349443794498820135058898031837631050523416930507059618922630987727835989109343924622777088357533090189907232215415604966473260380142359084649880852084202176917127470937369096690054710105194365717795855618166647699804954445934671476033243238558564096855719369050765049858243092587286788735390953572659115675401659873973632731672248108220105730052044050989564218874143182347258228072391772910785446242509659820398904437648639888344998930731081850567669935702324504146669144905147732699109818613726859583322655242546193909161887929694064756632623027462174387420231669313090951062064565377080487725487164660880163984683498194538394993044046650217994935923010976568031503248286158829967210035733276144421480076477998162266048379279204307216843921116753536103911880180847639062468684855213929650633353020208041179838329661401354764683862600980732191864122061513569177171330242657454818073263671352329463549143743546043085340694909324969393780911030763202184288097165842096635295840855626143433878171802125302795557785357714419771006827830440384305727184826352064109675628706556644307913700283036477775961629270362967927398592213403155549166438372183286800459244717491249121114104540307379541944887688363936294243957430085184218719212963282555697547628796855301964607284782554429618147592913485541793247813348322951502275191551911973944935160848552721352636125688186248026604473209331374626509813741716792517520089372958800635961609393977859591422380590193966812395210384638917415377375003279200050017886497177248816960841563036994305997108347142275315769987632298419558622684688711165355391933415278787145306977060297476686534305099549850504086393205394259279277168355997361602305270707257513044855870378513801970270212593723587569675646743419650752306157857243003953808779843128212724225138788893329139363461197534393951059754374937234513854499627773770578687014397887833674834954726062214350169948722955521055585908650864576683202402851846842179354486365128616690503196465192353232245820686120996664144962086336172111262160580549792651020259218608289950048842182484947685557803680121281139129000713667088033628743453924921377274257588430818372349479108010653770614827118567733835452540184473511542935051641577129054815590243959543385675225200041436385358850989771108546306755117947874089731448681169995517610164310114797256303823656105199785353139380088582260885731089879734914815082084777846495212607970052967379048235885812101221120373024156475193745858677599812320625547099735369580280226053851339022846854796360221265108089866647464419813711829045486366019742437235399441558156252787538895117408201454662194731545249127637007238128233043240537892117196173986024055917892071726030493600104274358565580309857526843606785351292634351361986952237493354088665812870161102234913330773037573005900570895183780914711351106743999234662727058031261246571644759053982310517330335974674841540676542019601753794982037296057274376013791112495302865448377830284478303191316050994569740594863031734644645483386811605858385729282973437111383502426116293057187502188759068714048701671802964725902522230241195630738708837628269646997279691022409593179503106312585089824739787362461875479636814364384584093693770517147714630760964012235083208086850899832493515836032743382504019930589749404657759566537274138816160688899032371741155944594829747839418641179590986466040290260114314218755662152412659113027856039984762488887533392633380785862571868099030583646510007485701595223383241177577951018412006451274985127208121338809532478897711158055321454734927263772228990278097120929927282937225849093902121984488947980656625582368648991644150443405646847874568456219006392029729300778522029204625977116413111897983839648497285816450058621590773512536564645625112350664086612473315090159385301760071186214278403301746870960581094864000690544828014708770304211242468888866813688238570839797348272116214937462457389258200631555525765662294760499859801445405346793753482449172351842626252893775426543077294873977986763541849377510664268010720655508299007008467586631428715689153653766472141523698639339196499166323014892744531784493253821630206731935834192489383936892096680724794192453169864115540386065213773376435616637263758280103702707305104752718037794459204821072680710699968766566509202272829298168547908824296690539344003153465333399094113393484285386814897076248029635806099696308436205547243352360563835983625079678524418733860599303030435316519722627070264184273187964467675931655512640575601150815494760756884369947620711401554068018156670117076658541828548114666284674291307228293277514236598616820535560074910269875459677772498196100745610760191115514316891620226651368981158894268810701629233148448783279364849140701710364297474105654662943947327664191157213513728817692209614748084220000121875816511149072047548539445942405434734102394007573092144846175738229811601396381802399242830602046594229827531752110476333385882997666750076964400040855843413683429761560676825364466105376092382185800879663836135003707046211168823212048696672637340836253556370548922484028111174288375843861539169944831671916117070749427447456925269394485915446349988305286754578385294914499040772660548466235009626878600691928006654094556261638712461361242760216553512689761360476230737097998909634238012761132317097088809423913357631469371630618956732483927057165597172255764252719734434144192095532496955157896359256361208375477554630164593721888436037854982242061312963018800460146004354817401032889094809917051654798046448425506689918060743011698044663162999898580440695155529477824398604177855207263813330975443284930795378121943620499098422040326088648001470920669847404380422627365161462385264611244376345907338661476933309244465590059871866007488425579462678911069417552418862090006119973361174934909999259154898437274132338980820732311217951163246153498696175214903457444593972269094063162873348320077754572172023452560570220529613493948122782666010824929373643858557433078473202363859019204937544374264619564051857038486082392317551550848246266803886498777466907927817110742330032119171327238886042424839058251248220906586101623392048888028718363247293749922744149742085469311531177255157673371495667497088242330859977492848450585733135913010747918877492433571092161227472908166742646098923647169701339896903291217322950128819131081601414432336452034718152762796885775237473547130083972924568590318126029765329768341333016202849654268065989787345669641126777393297815410806118589013147153909598358283241353839529497256104757217389141272158262860612848175640942158958016913159218652595898500758237339869025284671456354074766512104496357688340232908358170293304994616435760112313322338063650048625095490965588198658202144691684557073508771092562089752236872041034087190598383123941551814441791753250371804231937151212189711974944888913446619226537497041753358887029042183118482141719019134190299199597002825503353003425532808179191337946344839546158973345206708578950930204475572501010753590092699225779551996047547345250401240053511147148827522177554533369987530426108103710804613360930814968311334487810938894099360622328892858156707426663484363242134357835053578699359716094007749013727787737097461627179831783142906788919725104086142387922730249934501752181776747007466103947484488146780744331386411471105045826611976936681882063054192568325874963129598175903768636148024579452263948057922848737392041178655704013056106660829263619542381400365439384249513088492444196348411704835616034509851170922057386273359957568391271410300375749818698357940258279809732838352864388938745777690925861863140821580394972906436036354234672762494033216302306707628890752203358820985887165857661519865460881736103914092444601967814373791368748006996936790216192775746519975862129386962560329396814642895026753386792076113394853893771093051045556905897260078383441808786444429957995633042069516535466073752466259860788979180273785187486101877687608228814854987807616596533817448805963178452010987128799993715646766880851050109310812366095813546373710116973324496476473163749955355887795297924150552576050176487464711149476273570748748500027324219365604705581239203008291324344560438439557492575068399264475612908590925224276501529010343222482938216584022146777540028296619179317580433109680470511746906576560183082274164894669345755800824208808596926102576810236819621847598711073871770821973717979680200865519639023728229459516932496195545689222421052736206443026750549834640433461067293959632708795714866952046186989244162097048683555008260348806295218084098465649086012156664595107648418897604957651544652658869361535829234760340629883001041366601520607849688379770585696152983877214591641845028547024271476606123994685852237232235219776569464947879969709914613373572776912099270292863988742590090245316262470846318410891378688472623294785176171571625790839344345580027915446869420014668746267973239763728031348425721608923109081279198974270141405717740965048410165046155225584438131696253532475400191663114224816930497743182762790676098021341365096202227666816245647281401346185010887199798545857527658638492928577627737950134194598291923697416734492911278916207287309903197934765945834410217188601987564332919829860664238930189853846492504586868508334530363266655324631978413906391323248138961553606191259895105945726230133257491530003783334640673270822470187227963089672073222090053486021095238141346684325743848487826136508239600750363437271958499374752534699973095287289154230054543940860311996025198384295293286600561393672911270535675091270063390199404413518648885302136342812507797733383607671733671055686574831050356524993876800238846142269459464416110155946351209511369404143907902759797545630938915595292504629237262395935756706515377690000540782043155180145509416310534806025478180680327198759024150180495924081827160809446058216784593518424292368835626715526421445541630668311334439581580817736045162946412431683839275183323180912193710747252603144280327163972984506086909088188574804071378825382594196591159798532916568625322454424869141235675587701606320266797538062648145763460828142351422945988016583516814445616766408234752072238977785450285891139999840561041082791792679189532408797109062813052557545610964503682585050067520583671011647048614462305556324920294684645019033268156283285178613420681033040041086718169233794088768082461524085003375539105222949534083316403295340969348425318676965983097123552991318615947981516931604915437265478848097793244962623138759598005502164532424044581563534703110933958179025241226646089736335615061263798535911790044662194577253507771890198858782559955007969334873265879660075556849141475680696860301876989775390914277302894814193890737768106025763078356331806288107839039975524726536626152879169129522461643554200500568181910529419297115518807375878336175746218594147256558864112411259650496473280732718729838667182142437487307108661441865405947662586206663989463008149392395524360426097522674673410536015674690713111234331470602422909114823466996861514964557522506281430456139805303049384603069343813542231080874822204663578875033127054145912762286579295042297354435774690664656073479174675109178687967231937932440644816174372993564090333392727042543288884636533672910237779511548066217995617853921819469396729434418125246288778198372662892852906372124402151272080497770276218116396392540049114149971346147522828529951032624673251834027989501484123440580145442685706565360256381626336868002312559745253380151093131262203470983192586893267847801832598794088311985171595376494953472683049350969760510271689038534119198776820324042497946737695937449007011348505675007301135016828535379073035639875837912267985229620614275754821616255074699224147671154178919008083770637202179484572632778186030275728139492258870202280356799982178794196132258482113729179510887781242232060425771906556064772478143004514488483703036848737547955725141552407433665890382760103557474990322975688276917473850982143241361258446262389082819982773938636428092634201422548696027235621527033499929623034815172835927830455688160287132684410320012834510141707773930344180520710743582745794936203191982140499984964320075165726383168051682527756889734377571202032645763430425828898096880704521321409776991801648602172044337781908151171646405164255876505751501936497563382987672390777244229590337036376812220914407683567058088630786067998687164639718820811731632863250683856658661126523043467209440855532092606897097412843435758689081316879497052802662998588481472064150835200718795142544009080072055701709511243195148460332901388951153828871795108685154836271807058455844800026216591383812524867386880507528741735701858385624744663886922024852145499257476484750522383480164690948656970463209045847388376296352207753539933433183467300521065227161251858991448197000304443780212926259525417711557103278817307099537753580289044916247553653337305312858905401731508763725743645189688114924684481708149348631018746005862209492628846994835635818895767733300466473134045787771937692333356539535287309348728198978019864620936446349641843967210491811957783817463740250366086740090143556664416781528769848356846165256240133287379707128354221585670990369336213269802651822986609344994090345736934714099451719113717422843220323007695156249181391409854621414940972494835274710696236182414777116300725638435210972925566168848809402613122650491787153124903762238244958982378933773277945362311637980394298015741133295871539633296660313730469680109674123051178010928554514986506216186570469664275370330869049849703581318423849055608770966571919384930527239260641078590858533806539064943705170576038941945095291821792168696712546651234510559403150600614710695074518556880361402146604348546850136323139848705230737524972476712624162310060567583517112873109383990625288387548102943028326310751572462259186002816059086881408047724763909196990145655931889117983239830197394851635818078358787429446643675349922433277709319770447749382736566300265458669378311401786873631256895909453865492676780246864401799150714494315983171601422929219890027641204277034962516464823540383207846189690912871630695253387189725179250000522335409580196576143726098125803553968924369379114265987798927757006465080378529819526507669915892876382017415772625492883122889801281159769337650074450870199952536607248418270488815729153493840382200141204556431431486828640922842030414690658220314321419374762451663016044543222819908370564743995256660818396421438459455408589997549660092906085645514807552350160652651221143129832362621817351978243204288670588485088056050729054902968657121026286004952016467322202952063066552434242909407948571123109430601443400081989735924913048674154444890216115472114090132725159179293362830867441561391967351303308591666159498023843055952650537153124591577169251358928847466833178933465405384113415127171651816703537773053868022999425712572157390444143046670846955896035567056552363079703727051319223254412844113349476673827666753307001086052700530944731511838534835464545270507710456958651873482470896781862099028873190995786683357683586883176292394567764557424208445621252026341862190908531201335103784939223632763472123456477422670679610194296340260358871258148453033987766256924047646152587128866891794959462709047301126405949842318280765514558618592005029335051808298774804269273894993291490131384851960428875249120313998836943022687265475371359998100476168853466160660676553713749870454585653176645396049782058716899476454712251132779463150729044896112111981624451340534393122738601376614345852958445188516537100074309684869973375313465581735756929789057783526584879576713433570543694256153337290660640403134900859086730604809432050552893349962777598099153132186450550110685508767607183007885622959062609267995817414541049833737359241077591278637366668869836366679501817275802472765710566561050975802776319610550196560886162056793908882391969523216680789274482893116859401250356104869734063866792423333929676023363399123734479601555771167264413474188301236892323191944039950171291580552679483703123033608340651859415526192376115847030586779764676233956537109935060629879737238077771438058369876141032320403361778349456481185603713100767449251873122985609052416923038563290299631265041737324762988460554096257910259226355494515710505344122164655572009036293258520218080682219192595147317435158948885685482433469848565772610828514191698455793296074852066603493230444730037854723137143243697682372862597537901790190084036295086488919500339837095022630267424955651671850164130076824413604987208702603952641595620078541843315089231215440370125133999638661868799352614151372886804922915171756176097917292655722382768274926877912169082281251343794056503349331397759036870206422285233521873508549742323764821872793152943955312782947247089959372144485876352764316138392225507013736833204375657405735422605469717704217264050919464898351049289107057444708398249127542360734877852206618875841042016221166097581763321873533449659452133320624449389705792318985986213837111373829469047711829368100190664904070465022229110390929600094431147715139783101829485532361248373855824390279320393587095041546425802570535204620936242127737089013754118646426669325581037762997052303764624101647084139092755233507475971179970217176141395920852630199029962837942631011796464005585156510173188400853395054099331853731464579826176980238683951776082882443555281196331296418711284559938446290895330521000845388058175732933907279183568291526908808109560267441570583932477390909372842542910480719007936164007459880019521347664947692582299140595822103298651665098631909968686299178394718310781575452531521806427858796296795137683735466404763182286701113771639733167676624940896588765306350977077360196865955962627404718521197369494744238807033817098417498854325636425243929081351040803376511974687539252251949151411184087459564728234193050588053531805569811978117629956126804063130036394096143232393253498344621745842676773301330982222935910420253580524434323710107694785222042924461719307513817324482224142562650790159316596565152685968244581971036360893002928810803086818407698521947485863492652357267660994562188583597287106926796400767379356360485064255477921089268707518022692916009993189697173612158304204190091464496757888035974418900837572674440138767209205710659106088902069008892912287870653846202941300515832180570680533773920248509014708188566121564452721212254598376469442561580533878227665798364433869319801010161299749204490867022472885866395101757380033602183200882578097064660841499868111456721463912502350170824331836917851421307988686806715405563884963048414418215544835612042077731329201446832749432711321189356020874288348153878193721518137229217535138539689525534307461449144485780129119185743537145511776709411546900320978846937555380383950784395813659542867303801675749789005938703207716230899746967612953577195215871996864602540526700465661145259598313343315477785549353449351552199543073302426995362593545799161990430536764122864920176367165181667590449408569457059751053083622614887376456244252142978156164480550654289949649551416538120692915411177607671608459725417790063518880245584969786910981737838422919252318676985301296860070682675839898320274992662564114151085188093425777485765606081922881825186667982445508264924946246304431009592820981295814841456114909976696102670649037855379397657236701815823938849386227688134029034481928377382984727739326922005015692827014376847837595789425469601822293889943766184279993279767831212353958197877108886353712344871492951898709652898844069780445907671500166292498105220946663346438634028833641152855879474125627459910276553973098920120275991376649800119086992794326959034580588543947821030683845326608012124294939065207091410262138510821719297004461285832655657073820411351817433200507459376829135611651957618695704257419320968549067878856571433219444491971843983045127841315917016229222357076146714712545389120173880328004515438471905333197563705324350895056110874134364605327708463957022320145309522789176079052818199931866876134920474938995803763495240033392671620989911428897025004158043331905882239919958343523020288411720197702444540453357208714010692525370314231120964781443283682780272747693216079402007392054586300322910795857677484712854067224004094450421415838742453636903818622631709264103662954583842273899951317694839388680110078470801287118180823027926576270033831535286171760384823297539269662711155930365045510781666613560401806487205591393701512181406065751383363590568138728920423118850614018955049707063990405692200403104021843911062491079765798582691358040097139467752483131935585490469632192371827472184566142557489578020608380999397604157559073574737966794792821551121500713728286598627024408629429545578180197682947199815111968662471385461683013814950716835140552146735820208559500474719253486503336375916754750149713430861544866183712428702955358084472216444941151968634345476113516002135051138361535587662294730402169273305278319367786949478492230294697851085119943638703736744099733380901371780469806959511273287362627401672209126836576931046660508926857266366360047868023363871258867095428482616995272808791914044760971813985987535931077172020186319027311589387604752406742291228184593451081446702405015821612366246887015662286461599943085613118698208368762524852303098416509433484399046968129716566493101370922131357298983139239897382370968965135838115669070181700258808764159433656156330366848532384833100756977038261797638091998556072234219342981328676043337237104875741508082083755569835573565992022891537529535195381680203125700195313073455885466089516789142616008876491751283011994328930492033484896379869101025584752437772502213465422642773385517810390470513720419530283538795599724053044106236209815452389533279950510752844529041368534103257764426768358471555700153489208136176501947376380473963420081878772484351567009045274683614410941193617873098693376022932117013620061610038377844443716222428821301216712585270751051708344560365869046626432340016620962631009405196353113476059999969103150849769981374624465036261780590835633354166869836993462392882709954831759451701304819935859137596858890711551601487381996896762376644983676124813721480427121000386183618691830302744036324402513959585536628547584905746247492021705908222154557684310098290069511076645816445711254255901523039531132042805989129722970257492607797499983001454978475006661802505116817819774622983110930335597517826921175523136752969881131285266838725993830998824076569254163444981464554507452551935363908410404065348622771432884091598216433457644497529393500016699007400640775349434272816060415906476004548231720126931626762643502128782584417015742042456502703827494878575596665014120357745806257255642170917228197329115243142608330556993248319219358316283033444576570783906620808739004160574447157379913229111914821134031236348595129496500766285162987560369982372273718543312479524408289117383789701360888805725624088306687212341626912890753981116643529651699569324564106417571378611780249382523815932571812608608207106497071666845984836359746841871262423569255755888572135933770606711842739732944149424677384319024453924700671492605788631530821896674350661130173042576392191623650011672835562822692624700860407254566354116156016295758028565817839888555000755338933295749633328798606887304556670915593093301787303746008408302768791399211224148523037675825441472116941037781995227634705456013992426771753933469478828483724548506938436251787536269253301614969536998761481719004019724561742232516824295913849141076093137828310365372950844525641587599910142275542571083205766746615990969814087764049837859674573228961968060031138470771290520138321924211302030837172917365673016654669162436293604766334404675369337541974727331993955675414747400359554369512033062540277740998003045888096304605376882992222041705138248948046340502624070674740266659300738422857178254082445502802223589508785184118518514508320409267056664334440563006672381826894833295213363672245035426744355527770884075114071483771511710850860462174911068083023556863744377853278569734384743067868229762438934352265181194993181805637405951128912188911951009238076370610661712355295850884469329433467106244061962260511155482007272488480929597935920751917815942045477291485800848781225771958531184090586572962239206240740525375168921055418819811829968870518236208049573177197884727623102724791698590060078543945494129880660614380120321726123761585658662815380591037719297496112870248602337014020735655933942710678634704507075168821704590022205175926228606107778944612265611870842892051623197555208789470721078505629243878303384488325893700303477423724276724104472767420111201468417650217564687296706897211938816294116643869416880324471850769563027874324746179779745146413697567338633969108027582643859589853653716454730828028759992346158802482175368642067995798778543344332729152793091656964247464358715615124532057363753181315411383345426052400032671068879980548527103568753185757642018876240506202786214547572260205683816770975790379245235473112372210594973335238682395990554850260377331253238190353689080622018277938018265704469165492859109438022918945872293512954159012766077849587547494748380130644638035579997637326496919345569574599244882195901811619237792492411081762203480464776208497391222239585064229304323361191951320748362463821882542614900827251932473876073073567411808819586991807148737691247726923030892170214478047094849208416771431240884398441566425993155601972580397050127154102369959304530365246945803216508008356186831274870564195219673038440247278036546229996212353408389176945335164261553344446068295233617746942682480278011204848069639614121556398936859435834364293795181497939041163180442662378678446486240747778215874922468445370355157302189839912185881858850418673481879715994919771260191613777320757204597781632578699350781167486369881852403753736823629321445019029033640628284069497688560809492166715863064633254086494843562542363452670910424484063463058827129777774799426501753133596535480354738480083145692384099581483296043228624472605979224348803168503272111625406180792033800247238175590413799449760540171626248728151811577190460214889013153093915085241726735034641709571930572163206816009679534570021024793893492220052708240174689956703598865537149821444904214828554893114104531545302722623229414242404565028764729076839225788001839237721321859985135267167391324446367112942266629612947622374475908552894510492729746808851387202520649952794027678472072627806335832947240833995666435194264778689603997451392403706967881666760150074082376631657197981558775526346626780768007883473649711738040324703586907606536323163903436297346173905928401446354159498418758228379602231838976874448195739309448378483468766920762146140902984923262781443055259435982296944962387427650761494822574655869445006734248504434371866074552734682399574400006060561154830027337254145355437183751580025323534728937151315867219930931019320642611492102578305994358634283772705278319488883929835339876265909346085335086576293043302415042160799027960308456049964048128055040328243230294749049538018552793112568636328471787292406336092368637575158588819152830028646369367508896413102741026432559602611837693263274220247257655499641462447431231087220413413075036126566530138405133543994709951386724279955447954562543128729407375922312914339287365863693508265903437512237479474632811623080527002779115696136320209165474140313868479222536839963618586329843537333695347345277904118526054286190402009488301219768448659868187909380622939087634213557234945457138727213544148147078255669399992314556644761527414614531735877596647507216158400396966809551639394030453107529152484417678618880523194139119775804415333632199832526930378713967230775094062842256687587981736125951055367784910326821677452180789332281525371962883067001795286530467935067798462282452250796315666940559282384951737914126730626715775947939895891146807170361782165098449839553989842797662119811055439830996343427906843821736335059842284644229323563702822207238592621245568388786130176414518358356190496708697436578364225160292832681363629966454910971603981090038507938188753315991246077298315080559837389774640698060056592243441805096483875481616795801518136867324305531057905634006731709649444993495518634062323273213713413655064037113168484487472890609931117018136625094807068446412939880455220322747601888847595120274725719190716464043256843324856759014796382336246069280592559045127500100087770946023520935017659638000345216113486887368611721345357608049903297314562187687042609346802207314420876745273827731458054042679634340483025080729864222098784547326584987739431114049715461648280049567854954367758316124676718440112265066995552123977727922189469270148442351481010005931546729048918439080449835235445565397429452446790539284725692574398025858791178733799834031841532473331371570695528854139145174321304376331394049463170615884510674661373752233386335889513328365680822122663979571778790906585651678443554629369613461942930675999360292578316109771449079334077973931300898053318823404354493761536136489470075316534422602773793289545562896684154887220791793385002095944797886096205488916130356661310609026390190714772469062253393348430842297699737803282251795092613903697454878320599765526278010909800769374540097539289145426174353368852182479572776046661061644030580045930959170066179435191845817698435476024129117571510152059605466429259780117369190635956970804088924194712525183259651283585002700177710890793199776588143899831087860831324369678756278633250551822541031548842084128064430325394051290394493254049784277932265611900835575524220181726713621851768358029800530685185254619139839655251665720495282538912005647056186282381452192489849605416406893845163712979287394078357466085830118341300747872687493676500638152407998739843883219595643730886292293065239296488729109765547483298418732160897236356268331670392368340758428500919903937804610372324708170252004176030810526412394437376030478033990764645701500470796995234042011910321996241002567552086963236967252536147608218105981941231521788478890998341337153321104007023120512513877787596384777373846691432587858171123591304506877119803162802411757551012607654724234127579284920544944763002549008616531049966307982873752582024254999480734888180541995988399917327191398998127508291690757391577578768040552716699881965222153843264583068637494758412154007917485905906523947680015326819331694051808235469256609674775434280616833034023792285289680120919101686588556336081299337616807693963267212714185162449205875362670241192418911974591504263083511716036971913025057225621030306194530393977855475798151817056085082995441485068774995624410596345000895785116134749523509491755247849343082145562738612429045787083936094318726333125607163007968019030784654214891542743957824169233442680305791860193254520244799882445950970277594086712197302248925775775043561917072398769468476882201108898406406197605810560206214499817823461209864488124478930171693927077854210146593956912518991372782976373198103136157891084202471621739926910976546323155836950680315045995343096488202001884524322744524675005079894872002288036200219452572582863014380438870909523258937581284425030042168875442398912961698548634042770443254904020853388759351901794051159243935749163756658078344155600257233925591496081139633903659431668098761073708929543589475700004503573289501004729633287942598500532434021692436328475091491270481476979065134122307396111527305906519186852582350780378296404407727194424396682800094983537251419269185431192664663234701571527099811710305800006265690503617331363097921864509874060565501255472611151850411720560489395162315654071058022772151573584124958887950398715236836825550520885318983900455427142916294729929097618000649803230889251087142104032603996990029893782765358938514050062517979517864989123927896301505905014901953706161705879918007520270844696806698937222853150657562304474207505635685017057644505504280588606203821665414818922242839001921120769124482936503136270957058508264740163415013222611739188625536541866632968319328674125066910550263439403918296230187533230876171195363687134014791603450330068052841324206411142385487720570496391668050309386571234312646628778518719231382895400582089767692507535458019177002855046587465905131996614278733368485337378535448980405383071256844333230309464007191657526058764262524942722154290682903100660265762758187748473433471558062381885463923303949703093467573168048767907271548903361914458851727812868359649284576973543037945627446836324984144963040972038928955971658980280416768415947431622507518432815143750876073978252697003046181101067561072011530686473070036719833973974857058095965880898337713009602571649135812890379351538306330735819967161254460490773273537223581434169844898708038500930634300384579958820274727259120379981862500235920105085320751612439611066689759273973239993758173093574212167263568305518759032934879622515316057499564534868794953941511836316147461820995408819494354908059761780633398757123015522058023646690559112675994935970352679129732497600935177039179993181586568623311026294172924926162821779235935365386746582171475023744717132834207703125361187807279770133876455089071181321029286646422098468500395289985998221214463819302068459219985739033854938785213810575547389118174528808935615027284696401895039146694109400290332858862689707691376839312292679808829814768349621408905446578335657226723464071880587215621539815751573574368982440871506332276756820130024769450334571867745297609939618592798066512292234207972834051964793508752056916374756912061712518879488916708347619203269076572322312609513559758092144809495061814541220260911192208194964096067762418875834963096244976602448249786611316788899671149068915316068743773944810660463464833755321310636150190328310374832001111710441751176086601162735772253116867562803363371641586073815089004995639055690465947747162974866740830583612509859974660432164103440376964262222352551612832518608358575508003482419522471219082655904151049989638641007132627540997057826360585051767843201597078057413139979617613368045469896317672727024922888480199076392301116678966339333767169341667703688968374639687722517022117323246490496889274033948387954000921003880879337046982464695118939507105127930337902869456508237390073799991222862056318733521435676777938872973514685709961151828885641139233446297906474123633348945017800437152612696215037742224629053530904475578071400459195940595134163741587508742258524711856089714408379730634377679199457722922771786120915732005698673849814043960177497578848318667649210736654972948347835870899534307277627898230240922321399340165844291709988649726579353685388203325896287696845360789982028233813716256663699214921568974893071976747802769156593516186107676726596319993130841209434803080372429383465077261814974196752277218550095708469509229949698143905203399056605437930213462892429243283095962171368484965644072982586328973753026949181852964305398054039900990808591606521720479844535888046854120404824161623551378852604279853140456575517562185924826335033128049532083381594165324362757697770952212336296153852559461741130812929320946666021968741990451046971184796528707383944011424526880984587177654870526736489466533793576802726643651203694398414243820916500251884132884704234842126670071183657364242864078588104280952043784847657006983252165835117423311704060964566118005817816848810622489972642497043439071191161546915757787927958514780148478888779559262924230994021350898884922303007806923433740183325634472621358065313949684633301403069212178381495906798579462680069367977676261682448043944169382718436618019683837164878755595247540953543755202160297831324940581063890869302345836988659216563828794172586992754723698142814232454946346090975221293913806989917978074933977831134350676101194041987903975323680104951095011910195855025918905224110569559516228890281957964602253709958094934050365501976722967628962543207368097459633451963261572103343528928898484380818457573939962905101280305081310602134346252916257054925244175137676851618647111709612316900311149109926934967002130766880138890779482823636164349155563526122273324825615905716358392674729681540261724996324813619483943951622998334926456936873401843868938824578048968221229524202679044729786445755285333261902091096176442274324884089084815932115141571752875571820109869676750877389098696518600247122944981763682464447546718744770046650072333689291937738056296258458939160887862801819142780776483531290573070863057747583765163135956954102819470054099558396898482299887026914200192934091919019507343528807510247689052189766714822875667618981704430662757814738393874947622892475723448940030169374145063232804475075334131225432495824612783798126170770172453684675156063153106828168253260171789562283000627934797898769348608352395532332891457052584488949913975056186025280378118609624526040181291014047064178117028609563378301707967685352462546024980085164651548007180923562484317350077159272464923551865499073093637737506435391178149281021959645613513255959983616883287713728708325325408414122324399499715046126860132734797472146570827788906419915784183111868154814104765108348172259101659495331644667755251719945861674360139812501586583587729692752629131708977243140871187814835945111639760971073719869220597359282486873089474114282202457827981860632322595516679689901014346257414614303198498449797587055609533385887868574167485748500749437275416630665346784442433202869442328249884792015116964940079479823469315335081350190474422277337235497166880065678329496691758119115330331589486709087124941303491782273486104537082012841388437242198451240802044497128225280475388656747843861521808791928298815965390931649604891931619754018828723038652689727250882855519664408172535458473942322718304421251215469961804513505273509172424600998923187269184307380544547750113170285008497024011658903949952807175784435853080027567082245384815237766764471964780026123706004302462887272980117811992942222489250143275096006856716898119602906244848318912983329382682607995413394395665792963163295598637934702510631427055156412845941441614059792792197015245956068592947343612194082188819088074127449759734402779917241188521852932358780118241644170509651025279467262725659289814570410308455594837560822479191209315191261880614771395924477691681838357856345195817739896040052406699813741135961657196348406496543239137588969365363420682178806753448526565347191055819405730907796700966809970533656829926939461118398022487674440757241170039491994582805713095614091232976107632602335726484333333670538565366431849126914893692607162646389367855054835752958780329146067246239221917361904066460313041439546298357223454698149449882143323407749609999154274090344493336809058743357371945189445383387566447452682544383187477173609089579642084577835809559448361793371544093183874266995573187000424256476752971207517329683056318044816373186296552251810310976363354882341989772856899692676098476137999470821128167175055984487002554484829461907745729085894206765107352027916873086475085910273924646936905313833575842235325644615059925435612072307931751654967507610337580659318740836600794479106899021487966984734520117690002532746487998691515927030073045250233630516150534635451682715585520716621294631920636046844856584435444346471772820316421626021867245612716886811537622268629179663216087098484661754022523173995193932913474800168292077461833273925204585462662075413185443017984288558416863915416539973668552938935429009079307498101846426210857960545502012408291551482374389510901029287110201946772892660279860974180822663906410490201961587084341339932387381908725684259619977522954616244860916450964548261147436063428614955093760981272153249643597434667911104296200189931299632465938211642635163382207647370300823122493618310231240218543848678626290887160610290267180862970562947304429464054991619240810246681099292152439449295106680647009004247118357716206881914767039793942077662108565998209916261832613643014509560132174974295080093953304811514565909161083716920935944630757417471120333163475678325653807046676214847824808564112707162160233751909115777913677770698333370551170130096508233185050434415465784167467885984189022765161639069787346573485609079597325155158631672679688821673937901863918640689597733968359292997183124881216312759875511258609667499317911231987850096187638046881421030580694775231827250279256909138744796061813251412837525484337974907095447573641079213385883319497787075203121127902484014025616221697295399814490201517621481991966057906308120044135631066891363550713656022558857381174799754090634049617786098102928608074155220868021596927079431648563427649486074360130768189782376742679966038647905070290747903237526121355217177977887649783837067581407044188470037378931152474702615822477277237375562350601852284833654805604481150735234361178591118377489274403571595828893191563024418955024025657511150919837907989192490195607151266622479832439614731511520110727151449642686323645085357575331831886054056640414898660981986795967483025468836322097168467223928905293052972254732674636386131384912017325594332385948593285796891071347351127571299419605856898673941625831392591649756548604922174068125746903335822907358750327058922607905875919372484100733834336015544210142499441251538762331148839577045000167185394585992838452530709515797043537030945531215280496924535936744703536916428662216584474371844306891300864055075061709256535401730862383886995966710136494057070470833451952531287208580751714894489693724128492930585514588581340219910603023141857652783960414889387687820378676603123703741778004374925802284120125486336581470948984496702497696656643534686552751461507387738404003178379817443736025995351143650271117427909940723460496557424785538080677970143110663660006166593335786792453375566644590592036977563595938963976391715295579070375342710396800961192217012219904264244038299610293270180608505904220548105695605143630409804973581380963861062212747118087659129512676369268335526496288063994298078087885175190462226925295136013685270915383701468778783420762694308088889343334461841714193465618915219031456784840703875008579792096605816767035657251359616696045429206894738720700778002676964722089061144231196764809052919736531053143618469735056885349389114380611927107229560058763169052112095161064899992270161181569282419804211759154570406586763584785582658062032855993668099405862353606674998616718943337091969559991590341358479275168526309286353996819621023896852196736049889255185827356836645319069977553521821138711330344592894495379880667401742979473206907956023660999490623766911025097074100751988863164379179469165724645124223681496596978870840889933300338374523216511394509271131299137285112415478633478241691106808033803672125494198811699231200810013241590092606781918295795525286453566097712617231023792858449044184415718004129672524175423590279064147802677338170891587851783567211196260489232987682895561524068309294743701875317161898615143962274817631254625695128104484522491715253980109136349140476096250056864491408138403947668226677997709129321641113721890010182798788987218964443759419571169728580616664133859111736853578969558714013586176809548702040998640606681610730665155012340674956336080374839263179217798087882961436720059596519257263605578375572137558703868479821189470536129440357736128759919574282424225712219338504738476200036947970402740123151661255185931818563000461819166977719749836678959768064175360296413517693423449285229182157463986874207155276154203728678415305183838717754963354771294151038845116344444784382228097503237390406945253935860771766646848222351496346755156598032412603203829687464007231381086507111857127292639491947217266771499947280902970338895021896914877715244537893880560684712914627911008317392359643742650570040460070783171485628877034665612298556745463249822357771369882823672749071323690228336852896602542991396829844152018690684388746671751654814845415864021569759980179571237850637261522839828890399307953236161565006371328745683985937855596101914829286930776387643509798837924114930355338090616326766356106444682502571554664619151937721697284011897636764536922281642749234227119992787883277984817415271615196272017293779922001754249818319142455967643458412596145468258227513179162747151144529649651441150176882134707413237948197720543405003589110136793893071281063248921321410038393754992238426120443139548855902267643002519338933624331717361085663458687819781238244486664497243445237250511436860344070298928813962516415109252140060072948927002662077805877171510925925892280720501797521197367115566674621861846806703563490435311135000364625082080028833627663063106779091747800990681233246726936581566218792559511463185830039076907704803698587167810752280560310146547672650199578385956769289919793691578839074778913303512460644292168021166168127797025952907512946649281182271313241547578926249945432257567897909254187435925143791314825023417700075531611821820954692664011973708412913621825028059692761338242470558748110973601921056179960387114072910241145714644359784512239272064761354200411208053842994739054074100375725455716802067444208268828709778791233120172065044293169335319833482299686669144817155189547675688817594432011469707684007620320951887467671144639554807671421102599253214316755206480921504694473264574770807315503142778650792348958000961888563538169936950747833614168781647026714480744683894918359384051549327642207063369692972678464237671509982811066703726414873987097911923802116549938523824952176365962363725728931536018106973797282721510242998974822557242275313838522434294146817262199945106197005103598330693424311986083770079730766655592682241245640229847838525921370901204530196257094805558876021623093755119287223531813443877365380999473754462805792255836247481943099692789543536029484215194051603629679688897039345345630599446107474632473614350336567136009417915503255350251826386178355961760939270752301239902281498558095061038057876201177654391165760465308951522449770860234708290518934010337175668187982898179165747476201794704964232289169650120542809814365851768443913693707130038302101951457480255233300079627245841482434611254217897859011533738323946506650525452606596951582452946708213210343390880845983793093881527067987721884151738481188685621577399510460286031083412902268763393490496290049697439912791695619889418995329181903778756989564739529224460673790138762559365674234615504088675238335334455374242446216985615027659623902211576603853388184020610980044830964202891269886443075410874682976029393621453018873203675573161511286117579468348903307860869799973553312433361242701041584398212737047705526254851438927015052330654100036023027791900028324117072860548165900050397261311302532432936707881214288797526733834885332785708897411092379941949609255657947174146528538079767989427426585928207202061297281058980486753439277982605523083229765519070318524445541693042661700216905454317291544281518134370004570120480180244664489811544261686047932815871532325829679943133261116591760842227923326220573646415748332271646189431231966758852768360241763772133838894009578704833808053211704172444323401687475649245411402056142998477467086498127756761773763825583421911199510035697932077985960710270308109678800066429487918350668287642808369486338156454499745618448742204926455632787610782132602164641117971797218486389568788692334153598501820656998576836875572038508871360101715841854216219123032693406734259897480454390928321970020042883635670548046470957975150002679738776492649768469978260284490682635955192980818907731614574553436001257378447693236927234944625163139398592402029322824995117765977774997253098961420346167697082810472442943551467200646481683568199646796580087109309913196726721267767454443786296262009080862911490330750696699966967998318623928713490284739545343385050651862230203518954183213905029950138011483868327678509605287287456299033721773348384142062828611285733398608234527238118682142911995809722710912935248215063173821548697589896368858724311816649777775690801313013894355919895504067192950053111525658247251360045665761869547591403391690764966075290196311056100078030792768858471698492491724997310076220493655732745627531411025075888845714730299732631655231427511294699529345174923610060273203832179560547483915430199044329419618620389598969344827438292919190366800926052521782174497401820745997135411908166937844717564204014836749484609719897889379438033594009222510830316821908195831445078414881280529974009947239289285696084932862645555457594392831737771175236384219313251605135482578128438643325004476216076710357561230086262995199342023466866666982717322715794854519470145468122063269594024885738814038232560773212308742449918445940725734589548205848604412624311728518440578573165412167286163404782920245823849436294739649210506434935490957255208062763639141626592019304786133138442633958519973622673142854291032984985873371112140203815085890011027417377463971707623834667112881801161086823383535256792806888777431631848252741503194981357077811989218078294856109462951023084616172405912198232862359466488166008751192894562371962258218737115133268413047256958780778073830916481680600172692241978658908578214204178941692761952832835749006523187838927666226473315898932444157045914808202252383220171558029498730017209040014569284673891923391581568287308384903449627689726153711689999906559518396751881714636738297212318745795127006615315915506834031477576336337062896970170868001454633394668727517362983153574119174928079523111336567545678719624399251759528435364944781529071803541066108303189699330461639716525320480829332035059936516635131979643062946355006704777504584954787433109623730731835525023123375290856601286361676512044431825905158929974253154190914983353401296325575871491364636562761722072712527277242532269937051929398939849655316320440770518537413975586619791132129852326143822566970980472274554060730224732868759335693874635265716698445381925155216658995287380937565793005960370411871209382249310238170480603262757150094115161257131901139758194922742938367591353329330000051950802531639539718956343288939195210890954077560253737578122432338582305506354317725967621788208907209488526471664643531466482039006191104955142364190986707622624856160542139394874696146394845072172521065650416181036365121004457945647523916882708416384993609480880713769304080146096884907876263986735060707027008052095497505614754958681504563180880581807752969832365571523783669909034690145180685015157668722476642057380835938017641015888900030004372116523501934025979256787462437705721563117059528649693762156268822820794643592007750028665160051915341332068767585879246928809638889216696708348514762651047097928077826150216353046265271271337047418309735846045715717039440927881699470753249808503112789628224016916701739110773376796275174511152639217605766370302489507558725720569679439817365690876168307061616093218653662336024670706356840169172248794659754617075168447719524424667888138548315679826982565948220338624330840065251234974875561334994338244714674779560736620654649837919559797624352687258887406266998521151165128446320529750686177328985659428668866604633913511242587084398421803300746104216792975586113025979932460829634272941476693317882585891174458022250461356345526361912643476881690881758779031572673006536523627170498830951795155174159387043320826897912256207800195469887928308095848217515602410175488916288930188531406095618132365250837776843648531683361753925006717343259073073582944734368764282169473985442940664412620804539727446717106303556948380387382608028682154239829959278527495355396978872009139179078145299483106016751429178297510228143450122853653033198850289707836252750395598448586036096554694106953769650784460359665283230609646395839850209665589214553253095709439747942345997071721935072206337416478187734132064222565731701053065173711452977746696446543010632331687185013860054116807473428211879200853585818231775930173118161708029069090839051738262808703926662533199284045251572783221050662453520531311143835061905301116177722491189640306968361092671318951456599247373963099842035187681435098586626359261208093590629419413303552593898534967729807952054751268671132933941149160687203141778846504034233924112027190928573872681985386773180705508058659472017151514767984089346156747279232312609293668197212870271721784538860340431590523903258066196330586376075776818519982963892365028664288592131923325620277673533518899567670893169766435223110540700063682508225192348562701752870402185574230058594649241550056698875237394629794252509029315306457638518378363727424991704701804550175454495829303312088374084926582405475079163391984801308206098670153810772203953162717853049265024071584970965273475497605702806793883470058959552130998906559157637975917471901879329018602397132365896910049685666095275934113349434417069298543827738911294972015180369296212821071818949203842421042190439249246490422072186749719881091334947597672249560187668283265308439888194881970752110349213853946742990678350729440988564764805804556456150581132184127935954506457064184359024270236974620460763118254486682172721210127229257022874602361681607191400096981113988485024850556327283286184392677256129528817607989697609186594367068597878132113294015910324400870647137747211770215937214865316367606226902438204402052149901221794450864349001457383430384107630665808079548212320418922055476481502768452581723190878894250888039370762536589749275520058702765830817331750673435215603564869886095856845947535505735136094746973348031360301244325713555995248178636989125955405739309898243418058927720874449328191731702867067038580706051933790723758295257568709584218753163694522623608596468495173454924032018958850229671822366508287095864951947338463019366505834117831751048468303027694065402735195422285683267144078164578163520413381290425801241625315314363778221230681121497540648055669139972019987182418260062299278514659747678310517199717509016133288924747463875352677795593723358598314490402430270443895330363160982412052184775529282052192097056206454722997227003084997214949754252847888863575417349335247256746748888315861081789566708502459535144963522108187877939754407592559687339709296345325792385391550999586298048116297327821802688406312767554201590792277508941343917896744761881170958563792687518814029337510857248848778075777514645251829980268657831451740495001805035044898192407621814758485727446583525794408336253632169310639516970564481397657479688458898278372768055093053993059147165917080018875381128427097779853106636497827811548603826692396075212661096092927247303014752160005830677726587458359848832301045843360513283898659349650966710801054836646966179168469515239484103633107709346136510350630789230284012015763916608858256603590794571380621302573599850834854294405710498708686417161585866603941269149075540854513108682500413597853222825828267325002251662327854956825367932419297116020414420658678637958708287681714543810498447483140526473239365446496476450270903909506059630443485285315901564107986908124638570114243811231591777223427673980942208932930281719363423572645517090107523743279441782345772875534223478941796590851827108836506720789592470929839243915716582073181769561546640308612044658194552418584481304814300991554199518257732545736173730379547288811891981043315611367680562256399317401574951936310843091195166681644351858859814812881056058326434320370986162238187666181317185763933725785076288355702158494133829629720679187056339932639459827978644036183492869018213577400104850224012553587536573306524121855296449202452644940167761990551587745970837095184484184459225465496012740756196394345945292786156943074512529242037083487635559475853337161925728147099831256594148277384801617291316567276796960365745348392734915818460316788556674684117823261577168185622922335462123354197390320898726025277310041232592721548388463527711723701600100575292699706787669480792502701989757212902942854530243080897136981038242341556834727503079024362003381063103843105088909249207294890971065063457443986490867036033961145085539522164163749707787301399576049029227328600358249824529324443392020246256964439354000936854967053147476324513259723412740398723533192959285644906094945527890568693930746376241014195457576843347227137541982643905951253109909621294268653218273659308177271766886972862768158290531949870663550951139042076881656964155271270329254742875183945214752355745432094432892984100108602231154018645803126321384379229937550559672208371166103708254069492992838119485333220650758677409609697051012282307350527968349828143117840837943715526498772368911742475680104307032362557748953719039266736470647055768328312471343430997355824648629621579653909264776914252049806503833563353584892639889403395715989072467193375960518138885239702698470833385469700662853938015112379388134799430350413139871507943763941791352600237671185471934637276659414462522506357173114451005063600705683989548892139756465561278539460502661954880619100112393164068575089372176163692347697136281129992393606929598934857367872966675959350823127716070807676048371514592978435107657503999825427620147486329797136516483734371360880758498864706113505334261176720410273056254740675973775458630867711542305601314995889871261479152838399460876488550515108143433943090031367962233605845191436135305344446954279860863357186882844478867551294430764447169896384307908757613284247411467382268146530226879754044433109289368338153899322012848026312794171849052107480997537449383410819759828293296397894677257191632642716546312405265927387397410225548554425136639194635919014777808314803188316306680752690494537171027533311868005318656632282864241300693806186018704903268998097318243708614699006293919638650469179729980030881851864413014456274744771515392000525890878558050769763454643141029655800533692430254466594830766394127519842777117378597897820877460224673202094930691070195178896965754113928939775401238752260882905670036237269926031325910584269346502460787692520936078247034697953908132428441950680830408884626602426191592091141818650718511927316159815066581190139297975897649145793749594452528052511220660696654169068015022001682706140159771613986718717472324858042318255211133426065989934828369060574340968954050136231841679691677601613030177453923067428567771440634450850039407673121692774163723158744611931957671294389285288374893121237308876868635600936363105028217424944968367551562993851131334542496749792421088765601939642908616115992644058969550969709680464921605559751903870636021187881995169049392375023020882000024861554091664734496744716549493300748044211188909809059771787991418129764795131357207056132734423207654728094623040225565467849433170365946872549364935106546482766850710565629973491859304260953978973760889524351734857350986659923127355535287905390611132035167910091982750429227855319410131145727533157116832309483517851580006771066905690184560069900913805329709459015031463267498165629209969065588085341358395032917816009346460583088202682567838840737317483373690263890967785393569831534427889116225675712269561454122258047542785145930494834549057228998825066769320696879396322347480480323418238717264036659625642224217215863977724166420630948135870875935637749745697689799336503838819124045069546809039882127059395271086001511628803041626811351881248021118071275059411374345951329048611540832727124536920644858139308930497786564938510478857788115572603624927247546774330834387162641030331033376376208950632481493247468326083196592206186623398961153616006741979271551485231729548616939941814931437168610469219229980373615319804483380394580056155044280839103212500074463825462913290122112110789867356638998766546790018544463925021120536772259625855543627158087879928760791102256322072253673932265208809514205548778014313316219753476438877649446763695053508760917026243857354613880307126520011806814773033109658019964837407759196202139423937416352803871413433488757817688111407328808401367550172262113266263604892130858662374468230706445709240564419730564015290531165126891989896682206625494140683445264749250788821623142251460622197403571927136937236546391437158807022630519444891045418937889048949181638385633511878928988318206448785125586384746309463629669680570071903062955858635606081910815972521906170078944219393387188725338232618699872021168360432987177292474182715404422325880998780102919017303083988204300646431014994431797826803327587167062697454409717490865307985600208305341369904451998257040060467247361794420532667382201722025563116451065299985638178114332379705319661347167180149718321030552579002375402553139864543565719052719663007942185752735804042936378035908107976256002273437049790980042707585791137817744200372672570799075788103020308739254487435219724164392406304246390047793853212792607604213668172965729214705649057591928376570410102509268898369086380960473839973517096395508180332205373930920146279955122078070457347536152298348233255921342235013585700088310050743883011650689799374279951857629923654221505492690675776741724657777343594643266612241363330946807940625075968311954202875428871543983372887921092758166379795443732191059635116155949142515100150942062424650654498165147439244175684667924177098513799439857455963214136125228882789949217095038837751010593930137108660311732898160230296791250778566919460989194139937148656042305781565087536959923200973631330313688540512225668282056853136574518746258328879854105952038669256477901923053760967122327439885731689321526434799894429377002005426954943637661681605589078984061064833338863553107501139938931097128556082921906562003350036036685553358428232732879280100296843975883713617070727569209498673148651296517883064742602434938271405812379683285192026263412979909504423690476049575219726521878869518657661125030144005150643049861001679909077841782500837772356100553689467907877414180158355554824539508185874049266780954458181698798959022474602073589819280811057737299941457738594737917621887431372924059809888937422030734888689228317410167618528465205691000381836386104213921518087119408939789174153385173208130923546704617952239265497971145903878944012133288385331968047384330715129562331504883581502727090675884939846648348035846230144226168451312208820292014705711978585917123219252386641576864795542141017444053658101899568002599275406280296371726358280585139925670235281069769556982704399932286327199285757917739045506306125651796985257839924982283199391111844502322035723043119601424813556915959418621799636503917041867246642370014619729795958815256092428493064893242292851922966139891584734385238386832332580502694945513213580741692188078007714858627153971682134791811423107773815900205193306280429693969360648640502187257294855306230755887015571487039484760429804669571091335394341227652652291841015698459250446664315020757339047212128228984768579397675105339315296776391389986357654903341807425576547460983110128875814049508444487840561809140511758458701861714396484116938810675220394328704873591478767938154956087502138902787622317379048530014402064724539183805202067244964605600364441692176546074523808108095976220911609882473157052234366770077363294619792521197091546078646028276253531850840869089510229423902438426076479830014385002374518445221895842575707763746256282362735388259927476855107613051513388103562824216956629278739227370284640645620237921324031974166993495718026199041961611564516242928534716159495422844581339910280490903903830838159245481953556175464412004550436209561275721292109913407301315589232160185987950539821647638721579123249428316069955961750343614780303677639361658341118203029040706243674293759466582681942256693947671562939940044118379019813236861996005141224774484277757851429680059182464274617551980157040151850309502292645342613701769518639238993796588821410570484478933589145248125766789125433719553392525020798691273446257201480617837821632178327366481638127857301563087051488254427527987051697873249955846180651777407249838399543365789451463076053500133204314721865816491149153221763898129429724145748302657894797584205862990646067390937948791251544798478988795978862973716649062664615750969179172247186364159500105431769912195742063983981051942813389912111072737098540316231656356338386529024126882460658294804794495030816479655618566269659350181184140812076142403724998484837947436621453820994236452068139818041716098460701984834382676298979352017979969026914915720882439435605647767848328797774066731600761585299659342619588773865063857797370686130769486478050291463271131627164941669946858025967023782512710374731118562451505106979015996987866174956766797865775222766004400447083628198786661009388285371820728255242796805373211740959266049724628170224078978312467218438298115871928145754510717503990383603883469356635697142381764469994296666794891425565163498535960418979341303688826743668107715712690790532380974361928806405317097977701084715392903427446604965651629424601821026665594372975343535633852264103157108143251374160216373455042669737233433246009055494611279729148492254280379469807721256683893428205633855355548149225691372387265488718031646322096662294820931328465135827339083212321137416599846598803936534673250230186376689118388539572340258692373216905838385677409341611306953172179988238110968084952432460626774270266014953417008080142788511869921749490835597108008970131831533476536302527581926000881565458593489523708456087722357389736862996103383861443474540792642253120877562331494324483994638607043150611331153462873536195179905616925409319885345677713351836032898419907493444865073084926011507887016187243445700308025529201203296094939756120931236435628556782250410839722256099639108298707463223071077282891487251664296570806303664840301750153595324946666664244714213912057469220191471816478856456875450940353439655137259931708591866681241860305047680296896039899613266883835179978478719023424734390902469455412160732930554811210868629855642185874400109442335915576102761718681472940077505018976591637359244186472319358248068940985296546006836451426863148592021439009384019643336368437193714053736401468680576662009559205998348083113487699366836738532284135596832825990127306339015239611561384945009507151494678987948901955352368152498129457762001792418670153060455756980495615464676325231354071604253103447422391317460504230015113017746519859221916757915316823209696466553686113116691389788194865450622415717043671567985491569661083218430865863721250497999336955174997005987013684662352885544082437592623474102893156540248017392761239100785313201642591673874756937244939646133432528011047211794656929763965610012865367380578639254194704353411286864111204274656081772656495700853650101904430358778731095468401917008216121749953394120517850986284702434692349334586531665467500435101922537651475594502847313126036944426955269881774409154532807038344211804415840927397068743193964469605047973470809269889004169075828096825956195527019228740681969026194818634693374671791177478230893265363182421309599335189081798490024645479680326245700682359162921971484722340011585019135738018134363006982142456189023226367150411055965419084480489045299524771530978378515744370746390697978242024102302609328500469233100302114056038285372557345924881458207560757643855993686458567086169250645587861768353530160276740945436018250942815363045756861850787190391214011287573324641301665946835716810218466250158263770509833058170413163542302153987245742759719278770794396121285119976216753240225777269309400705457615064867076259898086551153172464203716345004556067009070329262767533931413220161335520699930180815640058553382816168414124906839212101168665182600448886792891715298857410325692480275072278880036747887762463104732474552771661464994289618471491362674111756068092380336950738297304775174171321234615925958887801615232629322818244652565245746976377165757448994655968901150565203568140815393340798183795318322477424140153383879248980453356822780245509227850745004121864581055716803331628713645936139651885379411869253710331584814834312263801241948947399402860876787751778697269956674952747825543884338874464511088900969949080149221411578887455940154476904081467126905770911637519430642150395142940111386990286868102091533253530667120286268410425319209632045341782266420048276917828206755696089688034377582748935807642822675614244816893746718307804816198434338530667720076470070028280845462981462147834651409527682139837586904639837553199701130832094069120849450269097876323155779450678700701253479693563667003872770056301710442991681328429472497167637244941104237623758935841021308495611767632829371977645693658849366212853452652254979597121786115271041200050243780819918436649586308075512734517397021936082399814228171126022202735148004324006645480745609251809013746897809039556545316489472006438914421343169796875800067670951252893013919996666648136999875360310826572021869983086025681748107957731638217367781927345007870509121864145452353278641222392958436011686271019545786712533604747379246425856869098168696498054938262643612911053377237925445649595163101252631161826039223288868195976337968832673421732892719326015566419889678248533094163942520178581590408126940879050829320176904970551921950264742386800146234434003798484728996067367754679442494286733609096249200853024584705620749366170981526467174432525340938725997280730517192953368143240818120375514546431701861652951372837103858502811728182497125445755520549996644166186319933606261754429943329509156315617458877859571692399007817735480812522741386550196553192265208233809807717641196815601981294495302910621122222777275553881639726793340455810201628015188094156130283232769280267435808250297828520578655253914634695559486363656393988678143840287152852715891213068791756813027869295117465882080454211689600816241624658651285749587110354523816054301887154697893669207499075795890478600009400091864926803514065521619106700815187787463580560033227160776376999358092796011214920139744341048087340477256976184336138243334320702634710541922372491664967621031157675181325532635382988033279552974012816873872988203652480032331741138127697541696527241753382830336454050463274563122088689244436932909085862304732665651292472824049445502436262233598262906714162321487098490482399483895420932378972771567395313139812044896834583807326153901883652399104350021870342019916487740882912668074368095561420259962070530599917831963191038878371738016098206083441937388039041699167946971943111103844288179558179044017449953569512167456842571062566506787126806950424728510187687679633179687457374773175574775964870646302623784717101123290456233080203176581982952457053677366599979547596056340029507316202206667890058523995177796299103311539596021277837189270398244962431180197347319210427509690593001442272917009272618674187649570928723317849242207353775495992109837504565759876269281481683493125500897533303816664336159969466575559988220232858770528997100550751226379778338548985640277457131243912514103852601444573737886880210530528951454783202061957041667655929225696891896386333434657851728671430402721095908017120003177100251817086929597673132688728915951639690683854359613104769710649138386498707984789808013669221064681009029720713109314554379000828374762377564686247141979776542456260870231148836092517470159220470325097432673889140071519083842886167230071709062780703558608922803899593549386830084452353350467434934761075148716681311915336289777321301817659849755928332501469717633400031433162940899946809709608475979939569362838910004897444427079000913189187733650003211160101184493146128945571885171570090043113683184558790743621831190619222192390087422058655224286840241056005628904701024064295795002885311737462620808996824709135743040142344062632598956068356385461195098299439199253648002821100730681912181372705074193948924587369277703517712331755812608376196017282337828258934395594180748542411551325922415652280602311418555059213055794635400194795009031585971489490752952387140740061565017339916699845164225121857044886689550409782371151414829487454213666965826348090031474308414457686965206163864181405784022218025639446663569067403165470932222023684825431066384106642415488521351635138751714121049711125335873092072589823360767230987570181609422315885309836347678550042880359206340502836897759256825406330311342976897177142693862098272922446241207235760903818805288314734842594080280652020671059892247732992510642808346166137888152580940939678176019597098677533144452891653583721320415353559339910442791878162502444508766732191236875847476518017338599853064910823420832187629062598676245214392680955488849096192787624848798014301525967352948988507462600791071074934081706637529717001470097612324411547606144834317601105805553837483041461533756918407632428320801927224541649769334143573058259393279428646723405380898643342093581105377990334339776165779532052529618889498128872560229851924753436459503484617176404236600187802876971959414308627194424043539757009704379650727841256384483845945565511473717307248643845487314395687461145886608228597725126914794188438705299678358517283350164705760643002526512452059069099249295866439473001127138799563182378486796337449696262441782491216246779289719716842813407365640204942474898638246523169596664466749882079250003915423642022184271947432630533975302143961483779742417895907167464155774486699465993023213457319520353779019657723604244079912866588285042257662880250432586324932500808145002991597999936586927888912374926431757936308734545828516086914822142245178820147004455713436378689348149007132371441610537601031937522382046530428961817936254593719112302677323282381767856227968399754361551026243036770460567452063863105479876898145640714341255072731097924224857103978155648197667416978402022910406476855441567441271390546959243098333685651626482249943607911112279801612342810693144453834996726277348835982158550634809244105771482439370937854568417508918498233094334149439813894279162648095355957079566504918120323859239161619445600556219176042133624850379745101687591343525759999227539668619211261633199499677704046439599079767657090285355198837887256686826349104636128252341554248232728123860668625720590528032889443277761622548844675130815271762914670969554265746291748554563572296315452524257183525060082115629460884210934143815025042893904139465956638634967642405252640524894195303102212516797383833468171623356580827743395088273122481123934939017656121420746760323543056460317068766224346461755281437175131518323991969410813113316010035316154392475386716071862454424087160622165916807190816835459405813503569072765288664959695532267706785842886333699419757276059988893858102576019043705391415330022048274677151801406251550589775160168791694392647483234253547499136984786942714874898052699229535663985338359080400920429358964334056119407625852061651891340455420855012637064630743695883569115911875053711659336954876541210122647807669548806838247788167023155935445921814155792498885861143182503888884333771468938994726173155038583073851742183316228850567940448826057749882328787327732051439132802545859413638938797079579400177497185515284124246661162579609033964495454424413532249713839101138917915962585615147902591445950754081852385397657988137163941249616136764093119939716262354133571549393221778479215884763952418389461328983172558725423260307507419888242982693162072651496752017448505136010221786625377520033645895554170369687622073343918288085848405490326549088930808635130600499118567666775771824023926436692659891323255763319947046559830929339159360927166549457579097728438904062690404693707929702074659415882727908205096597385642776062958573980455756178790238569360324921531296246356335397176588230019121545373237112904499216418992183735051862414979037489667725007559024713397043145643322252251436858059195510868223898950346508053354350263990082387791698206137660001901702536525387167235773026787096937638447390477599798238194168363929326798703008611885228563420766674931986222561652553276187571540689244641876651604090372853509990553847855495842478524934394206980670374775862015416098029134548074854480966869501122530430736696137117988186917354942174999764575278701670882609292366783621302483456558174348628343240116726712912277002040209960048376465085410170519030278885480434660087999318579040462238715236805557218572235428341450973033900273851121776676348296415101021006099540857583934730087674091885011985025527449582512172030866518551313849719202517351960454172882311079728845499676106728058961960376397549836774196878963914858622736804259790121449825662494416294801592059637423274852645739548328200441355515535131368050230826548225077887623744270724407675487442844178430660236144329932716015177995574704322724356569244139781117505996525147935773210304817990854478309560664026331009750911052065802313639341686687570788530562352197689328124217727641456581647116571632355208561242969635548046574157383259561866960176829863194492152129090220544347695929060177341971024148052139709293668767773769762289086119729684946438836681816539161207491995942236380629199924484672599519424669309964885419081253472862674263680008963526933825983586460321719373249225407634930431480494428561423449820494560559984109197965395855841088842146373883182786865950313576476988461962691665070994756554196330083188834537178874892499784678035477015587828213341320425646215401515678492332072819447512090985690523638138916306444128177122864365557528225920366333874027785205892641322173250984996432074555107977032926614872660867625145712543056862473964000076120668264738623004479400112578853684542755965461320488540550835796625609839854649968571278577364664100222782678436528560125978067834577801144390187744746369039530867558730168922444563632100483549096840605658017655397298209146548110663455332987579581015199747245936564824437056969643855937670812380461331431692047987873962452161657048940295265024828106929201496899520471714407677909805442783611064501416110266611199386252883859015205470343297391707977397134641974559921573510504465239184163308700243386283974585630525709343223488107978180193356645139314219177125698187657685695155163983374685551306111807157517902292763950162670711971874188460020417420570777683858655367827572718342671309257190455165682534571923499594038155562664004569110942015876046305910091827250765227742686704164526504913205805246612492582611834590736038298162366449608075902798106447820170682613075619443341586570120059072965771072249156559157899208076126150905889603284964880444232952080836414408047664749580613034578944870802169567349376202845082576080675141192696810043974779062148319229660344241483847363892818625175405039592259628587304617414431709763302640567083990157334389515650973323991626843218410494310034540559753636588341855786365364093632946581844909443015432580077184413160212662335615133187835411203920435696516538570603499516922409117599877637638419637187561446574768925114741285243716121022047306656386717735275596935064607841791088367056424021938361077416364241420270153909353721465923247064199518879903474523567713612379348754085255196819472985769641114901849273753040055386238316616594460798719009075133769652326742986660470916040388387874704540768260655947774953637377095555387227820144931068761545996992169929057104069999192516805496162436832089379497109857350587396384744380405223540772577193091684594104487911191936981324036433582313237064684767888723341737271362068001952986594753896651232814249471536297725700217259744260977771192427410031482116810716278117126984767371312922946399330052826563082030162228066806406381489860188482823352617582432487507593310058535794427240495587470893023807881447546837170849715539775463187188124124681094160139004340395461276832749246043936228644757497377260742961128929477555371213894368681652974017212601367131081386612787307183606410164545640257090958324573993838300938588649367382860485874678942843396290795802402153119933891846225273738488730879549498985527245516548422231966178842452477862111283028561703596300664788495202253820672565518983096162343462610491410076459945646308706966473072887757610267294463907008301673967424043586482882073008379263005851684518594439601041696576805311772810788105162722793834955996051892929565532443405031953615386847846348978462861666020923864047229149611927747364506012351521433917462233055101579587103780160897253155086195491479658085944637531079870595680971792057512942682933466061751098428901600455209642783986104183639346407073031711591997219053625437283149498733639914323741426931263266767708205856732467971305864504826552562683387428028379393757226477736961676625837483022295221366618673133314708686116046002431372463288183525510493815243645587600864741387694718634828561668787026683293620993478949314454966357172881176374037539160905293535067828470488446806782383091590413380610593629922158391829933805249212383750361776925396832647008279728534141521167252264966494457260328083544402805095097372881894191505731141950374754280379091306202821015842053185183420223645342339422482076553509544485963343265882388728493630730051559374349510235550851579722618751239432702084042867334734711817404097073074464205148319472104233053334214733035481047091059273077800083415498512120303890925681269796635525901425143401309914100086991412763431452317751797431360472099665628709123366813703001480053473561253520407958108583631267607702064288247795940171702610266093767368798771713398716941587381801761185703130830121922675063028848165201803746154439354100219891374193683810453140328260438303113177165914652527083269900218727333808574234537082778830688098017859840423910026406211063378598179728727186470609303285366677243778007180333247439081649426865703841494728299643034765363247880272837856981343234828391311119395656652405363530482375167205439749228483515267627466076105404236898273955692469994384607634781521787618537238442111414694477395430083438737813796619539300729385570009533287868051042074233093367924541172658214849997166782005754192645803271784886650276361826681090301870169371679851140768419072217177006958298970852298193134289824094127267509875912484300238678277828200427408791403762668723723553249437095330242978481283020750359308731701693019370995081819211418504751456706428388215966965542323269159173841450285678934803139930968631624522549059375214061096452279809555718256111688637775909285356677446537256549117937952154853326021375483798837989921472724887746790529923644392262343498054306521631391704234130022088862552877975140921221230935506027990846560242102020305676395336757114616388026996194539539765788643959276384648849698368731861624701010092849626089523869870430734514691451697492512238663514632613493285995202006055569954089794875232257811864361579917151639080705091212690187400098332124986687904476931043013491825847834222977005647843392606182012398477953632104140295386550125444945771647273650228960073295757600175509541241305420270971435418581984554395837090890871040816273939920152438147696496880374501816931110027664794424040579715278664641449548225131448245040769244755244568420701825002390555173841182309319733594199167857656006491081436213168581699040682970806117050160815233795841476434799767397306440334779788181975506393781685541115696131072559175840949279829697519180954907570520251499067271868520773404869057607509524402667820675686057300766808562368629090604842648439480397973053174157600030705729858356279817311467542676040531016366461676059965290879005272768392458195543791653735437113226192213849176449427792309768904760518764131386988837325599842590198890924678905311884018367394837753340458007508797817666634048301965735221450442974330791677482747648165602939876271518037464956051645087353479392701377000540064239037427100593673082173374456118005288362292792631507094223244269151986027927192415560967469185252035508272461089965147111407043628841596205497417665032040818311076776393267060278858424868493791194822114270643123955185630256516795351878036800040057850444135612763869745515055189530357901004981131675088406190598284734441380761437954220566483899142355113800819309085231518182364391896471881924462906787592436188312821861803077937220772353355013020954118219597708066693570153897346412208032519671939249834708638074267845374652962827389715095446333952040462547442601475480184739265012169083984252673322286134723063238339605033301951151751135455814564740888334331893276723300310748528838243999578086545045618799588941551060435470212399970981556679309727489833510696312772911007417328312809891962732624563973910202339549407506149935662316214837003816322479914777476260177181390332790626627360182222888015079199207240870357686149972773384977921854078042111198755281381809220019668322474907370297144213812848541581700971485210047409956726539874331711869757067641570336152982746372154722447176821928082635998628660143131942080245355278372275906218461836644513063271997819563591332908727268574387155974760690722933239581254429233407202035233211858080470845532291790395935144559142854025798080303110875961620286057971519031996088596589750130544599814535784801339073151107145846781076553669616238511012143028159056794234528596436288660569318632583397153338446453948762938161093763597093302443451839554812256495217050079563118760914406397536654000476534870724881563745467281674687685046241437191768823060863263722187186435749227105900134824370260849051850380904508281315720327162489298574157526829077544024994760915004408969693672262601277656037460309073440827557862952804777874545790884968637347343579810992850977702348368933731183175099195740050879269425360334123463345805484492838967932055778052454528894902009955947319213201001116938831051563939223662139476579522849432998797952696523436224210094995274766208012004746009168384292200641823988887304196873772830460506194877913119812823796041514410696251178200499566819877855090238709446259182194245385577161291396816141932501944748508325530256867988515589727547333227348166055212630733878953267403457042837952682788398550460964510269596588222032404850681361585496566780427358742319688589940959145233291621328534319927750546220567701222916202909995090363776526914313098908378565248063671084086558672807563233012613174842076656587246883555241399382261032043433125908550630256787961759035470059614703146007781329328211520014845444095414198083727600819943988715370585752375192999114347103243147513542455821921287658210528891389610664221168642528822210074675866920100495817239920705431408960152274171144640196719127818001797891316745202125965545646175839303633638076588881551922718413439238562775938837289024927572680146157949833767222175647625078462473413301715395877580058027491317155175437422114983287905615699772780237786733966238466327496225850624050838617834538369232502865932541982102316656012785366374685270851575449481355285858861165140209766618329604871551315202890315723328807341762601124644768333856619751916622524794986874968496173402321300253494571096379010520460559420529768836443994091042971950835629742075119744535336907926617908892102704421143718401655877994431155599716915154369744232554896857334960507784275619688343113098677125271790535319085971679504876753878402590299584172693436919091656880074689391786977436703183914460237305824190170147973909757671238969940221994220878183992343563797163123136259492977194320570179812128322750733660119820337080255997762277827248570844835269844546323415995077754423372236245269843452231510912542708799160648708893802266005122041625292253749194088644428496335476867203402403520495643870649779880069697187012973461185628839522152258386592062413750080308598088680731012124809142411339372425778958750828057794201380243644369344447316763982962389039781249363346599921613352010246040674945499576718031508391793404665361053689108633635559839089046904152468765283233942097912004247744265535012168236474707738156166393077123181264734451339280256000347986589706185867258278173308439402665976692855269679687376177217683401181503559995223976517481910531110918019836274329806734034806410516040982321406107448152988599206867837528429285878782936038312691217489345177252762767856281548700259131222655659252470619185752627589976484183354712891976417190269867680773733153302399056316550247707768699580544298831202711645090420340713915204040044085828342556373255373236491101130897319367228801205611333028258697396050905741061708051854451350497450896444944369474113773782186310100069289545036916834339886986761410091549282344303862579856396242998452424655881373863738876264695537520389761202487838415675280018775947170985162445776425217813996815639856549690751404178850678487897936356560914323602821171304328772960449437271949712056952652783100332580643475291852824167134396461808845418838306575401383639883925656261233676317834761883141387155050928531225501849431618392832160675438876384347346446049563558036963413649991052044829730474882936949411105041233608808909104251815036131400313111894680386114136190021050960852848567013184676475002705232449642574511453140612394552697749432688044199009848184462197321568295818012289732483390922901581870732307078009393662899959025098323392221422273235665083874138685901128347713351383671778989695472425973288070747072443277012169074842833845917009617386559490670814147015900432723797794161364245787965464869291659654948637238469856624561604925500573845260738847701412866818624086907976485917684060940777400007325342576867469750855553297485024522603913855149289106720160806550341820830229503032365319632508998015093275170712006046431514872716393709210423123305276535136528151254607306968979342102352662519701723246001225092576602651271115451307060657574130619873403426908570807589944196990927931459345791580504519861449626289242151804433153263872614666594468763725850860548388630093590371738095069538144878849160047956606776918353285132185611309272505687206004734474162814180013529827294964985081827971362426127988319044302564975192657287355974259926196544506760649363601383020291527665402654253143935689894125250807373227320246163109411170307447645638789853203265524526112358133258647834244028425320205786217740747725516722755287953206445384750539034452529939195021154874086856271463633760558937864911200025562348605870908792063555847547477097398602284227653142336497535448406431122946206011795535555634562481151671800124952193083480632638709189868375966069711032346973856855367816034970244576505805468945525850692529543430258246686709858340113724088380119066901895268352476067955419304650510041286055864568133123895392189105830139618846994307627245782578519183665905918844807549658055950102886210567346050312670889367956126904706162848824204536134268293075309255913412764920932482574875328331602973983725238673331007312524433641653684071492540545066637187880027175744239653639985940105639981691313480414555922895700508065352139643036786734400763509634532926471276404700821463305150082243583141349403702871150071485375852236103583262538438278096883249233133276514834836891006088233432964463973364652515016490714149601572294555701509330947190036445582540740089805294577531904180283205589711270241062809806122485864281172017198023164034941891489128027050992522356509614844452065455600829028767950849260443893139577817529511865435027340155577616614959308766339498934419139865371317940322881790112607645337205748965612761086236463103479706399219535137452010235259941441413011546213893944103496237081356573388650478510100542511953454206167419363838262200308106841515675602077905563576251228332786180286797187763827387120906615312807717468454965516023122054565236118770502049516628037284801193353520274569848658929231146406274069912361492326573760948133873453772975049965452436068496917870070665867797782908647832576613549987540534862829591247923287482890081448978637413912489702370323841533302643596755342933661983896853475884488040113746980192940073972616558189835726918891532574892523237100617979430329876240876093696505215964716572366800820328797170730079435905177507215927664790780816671908124172053319080694658991969359420093851310175937135392695318574074740637163337118847943718947471134314099668590418579964609396325426856146788683398221676256125370859591176575401778540885308983083599786860763054358788712122317666501927877563387517515236547458392461356818289900978149749975842073579551998687697011586929734694584094478752006512366151511272361961088212288079330390311058637914031541279175292145184598156992120101796200411133128699519143720250885725884541337611905139036982238543661710151113619104582491991184494823514662919822271728228054152939194078113739701864501125659882221508079920831556044663826268458074868105696039335474532123241013434584992608105142172340515056653307781023806666942539768227285079023322640641690557943003868959422269711093993901845722761080027163685378204996460641993532494541516666799853082646844476403912942384265958842003951926672670490136451015097012504087857179936713015537708678566541344041941173596288209601488934271634341469641603484329710234046587088226489052694076377349960471990833579043921444641119096695333962272371842739816091606581788738262271200201630371495997902803801143189945936241136634955370244705725467489460412708227267946451438922698077142951127125781621627889512228519029991926765724107523734721939840221472422623280614923462093799369868554540026463932592801508214934615590976770648464472504555476864755848363996817799592006773283580753465441780094372281525537892614423432080971207373365598414450710122980171240798243784948079988021625185894379152325372994501280519487240332562207167975802041486614046061845142412117281299021458011422422827179761202504073342660687908915359286300915250465274739327940426510084285324920977281173643943492755512967219226229054531294856184109641497143550837059706077081615140733239170255190111864487839285951793383964975820844494220399184014454862867446972961051727762379705830461606277791084230263420639131379444159538566172089901896692423445797206239161249170498306508557325476846842219481443741394388406265346838872064374351841001351899731516184708883611362420835087991687716996333499401072279207801625720949040138395746792666838913729604068539610330943189864214299252186929926085875924437302768744921353960567399132493856706502588967256656320393135190599411061074902448473863269763470033992185619523289612491772569169476649822993935536144310979752660103947607603606759640806450428810684989431067257864274070393951233567049725979240968122302279180345383074751252286136306083531775621475162134600505649002297309138110564574311048733227898991079614552064606268987861227863979506495971097209601350703556033310076203138192736293321086086329467276568190977675817760034968542315990570240962001309369829023137533882120320569232245985692714770762167140563423865841004314315809051035782846442327988845687492499249477005867192756482803125422324158359842042572292433727826510263583941346742110324575018896987666461010027072740507668882170907779619687564774208012842995553538269295171329126185483728769256983134381607780403395313679675656292669809555135099252643117685374703505299606853330666153200280907623817972317878100636907609689630514455374236870749311126597041668592820745709633618185735423354273072161064643306213906538992276896260841149291016771710071583177554380559912855821469207719773747666597238641599783812808211513220639674742127940361114669034412704654654265645708729739877730731054014426935147249504454188790361259796769706731878599108989564735848185485086135005505860072391241574802669180319476445677129846926489877366056637404710740099046387425427464101875829041818423864605854562033905054078169186204067598061370852174851184347994057520652644073082266050603327749006130939098376137177385119080760856847811878933592574009404361715178336642351648816973128423181418521812581728773064553412871171163394631450235460898905118383549587637780424220988987423099976506994639095176896788375845115551595627049691621518803514040750160076625063269025066425286691239434544574965028752948715574589481228774435045325743170007929338800882495096273076805547939664235245001719025414682028665543750445126556932608063710370291834384801215040279757925346700999998834107132247646214522375230936398943841182224807081161626679395274443585006931445419935869550289415009265210215736887499634482172229898862380716756105635811780016823978477725015527419494674115475231722569524851995554041956188482641304050444010508997482159060546111866400007772866539300778226600211827687961486412152562211777075661893266105468052382409401928768207870742530820364683218108018074644690351254515927411875674689471660122613384720020221176680470533672458083793126143242536753366090857102727642703380886206677981912201977496276754705610701485768706133311505060375878869086928992799985930009803875034933295201576188473855905487413671168705931682115870484122099952936788887570191619546317909684215717894921510568908642514885611307056876124321003093672129460726912148674981336336749294875531276295198391310982557172531230207687187005157774264702282373591492129560526158539731059698701234961839050394800463080756769423950819359836447377636374173426930929121757931674155509559261755138796532025150608796657378761511484177006081108471982306159543980067451298051299767163050667572457235692052086198038096813526008792114434060303035822638347279378513897272891807969608957724384916121786561670420058059697412057153826210197560691267487360443286982814373000319499882711740924070967198412906616662489536299203350434108071690609402032795151948975094653454046454877837830686919965790868000625263093935476065867199669021453167221850560840841956996439477292126673323949244060582491726049671338980353524324973923745201202308634090578065573015403046770667350261777061479835829114990358785567643684071644409632293691968561223435820601065551914585893875875986744958414200400895224507770514797540928786982972618897267838438315144962598993048231059905262883644794974341993559770322760876685098620621052383479529034406343309654349676778923075778133916937813495720544587655272749129265617525546406233078036284432014698481046007499100434552395431795183122559302348944131297819669724380016462273924938194007185949626845313925651612868244722336525455613268731327449269215261800930358166427711562657769146758927666675099846566620763289759041813410378399593536353757637900170373303990312647154052192870593163992656468818356673074439030327313147659665775522276623199360599191041233341838600836557949260817492972972792931266906914664626694627527080269955908938699900752211387018627191736843112604869872030332871886730219813098778804528391710641178648505836266837028247305843534163765676032466001527237670551723479148326565941033464983889397191363575424237585514943862707484939503847531503912676913373526887131009179176459265915681287430193344980430697866085098229845879550988307883721977712176115791486804484771403126992804520043119596242850283900550021994268104337506159078378505022315096045641831058408818093283807589112230390159153566316118923291540512745945000843660087915363786413780593103480912146324759294263898418699309254968698863264260427846789157738336155234996313909632207340691136605940457249628132419798469856045958298045579017654363192710271663853357139913225192947069834757415298072512878125922974018036457522999129259162722910409850215357872312203049549513185743494171815874125295832206642797689772355925610495980665551731198136541113343041370060912037677459015969319096719224807362879581840550184200368644464287784421213136712650455098118336085210097180761725980566590896244756493951795140701252556632011709647400649940483015018978248446389035626845267473593683838041981779821034044753093335725404654868819041082245757255954870421958226181729357613225502624159723129572581810324388287413310196191790227965366049577869040197588719152284903611337126854261847922611059134683624195828830270704684481250387407698808141997656957462037101600897085930340161743845685794324846930421589732527665706197196145865767431493317315412113914048061567205611284971621757196686302129042811410140843955453143051798831511411678892268608612601651065008629242241005237998239262965929208888299844812545322128597208128937101824320617199736372639941379987597228060125874280428423789871809424432877008115500488559242151295007832137575768284002077644654153773136005099208791952021156202839266512181946087867213561015971988105566269735936324688439434847048951867300635850490051651651365356828777257120055842786096305505271110101498881434223153006592395673238921096790878574592808955335322554004521996750323615087532166599524963429262059221027448891684434417407425206742078104516111299600497346515388880789077660793578809247466331381828699627054918441898173799621253695689573150425868509912371906310833501888516210017656109113073027993524088285576015579640620427265091412141252749528207924786737450195898079445425330558578536432005123229557836275930312347159221108501694738987065906992240065997329005878954168293404492727950129046640985234579946513468053006377421708454599304801615712681557241212424018448482714845956694662132818930807866349084132380197553081625648455166692716485473826950132649112952529955668875283517508350706716819321120497448236014712769993358513238618775853734543402005253212386994940178194242222888919027751327945280266541943568276417803804262370927845463454290026955820697958951581615287690057490064720399590377369103475739573069064349694795266911295640644825811629499322608147742352685233692293079937823852840419281243068261625783418814912594377604630995744621971079171577929878376381008150769315066241514864618985025999582860377589222402101508233261629436748714192317542365130113505853333255660190863081792550075749091091669529098497904507587393632731284396113673469492219997860340821976193988847002330847174906308156546481966655236252124952328550553408069951521167400637828588050223166471714110268367536048762047463893837602814097970808058620539787608783617199044995477003591870278521293141653811678099471321143400278916427525895128159134265275526865260646769881144640618550541563621294067521424582313421691362432143780282779837340115620602705616421204376754609252656342476826723506677777048158955262668966748265089002238091298233343376045829589010272945356119461035383446053392930457867802156503204928014280884113283724467719573609296851479119268640578570564496939777314584805023136174349782020735606637796283910189507006461320327578501305427638224866112935412801940172443289460125664620449336879191712382022227958486997968068259185910270459479583546689191370188327420681153093998241429519030116839292735750157706242584303425522058286209996265671230720470290133971483768288203680936770040934368985013410623131378759789650810832502109255262702999038782898806754334726685347059832744453085323373183554371024115854588842275241828911582305361595766430249456748666559218699656961823091736322954792858468512263167352307309649152322770629062074382685371838313538131391824132304374386103757471520834331105423381172907834373589673216201190768592594608228022494480695999305559928692794300388947731746878359887795563855402595855741586648748038307081860591813065825133809904275241309627794763011083511506063855672663214356887558683393818479349100357736742886818888951502505475498195453024536514686733887412561398733365832455140159566008420733857330233233573204197550285004045575506942518029823230834993629839984132051413290555509806702895680077997708713821303504431038378648014605541320849357830614574167307747405912585930089430536347713948929338848530823950380032492915744177067943144634714195374867884737471518806450431640365808085391074184922324852470833426016835060465486418593473355487534011215169551214696873702725812501342764055164234855788315272696382024453795769123807892830894780905236118664645895255553744539231993023121963161023194058896183482730577618629772645385891113686264316640136855673857999326658522929592103351999545050437412642242974709928625666902298777067281982385793839655228461683591537525595528808718466692125032583908869890317352993171559829229289237228290375349202401714668231158443544276269229702383135223620535134873507272118747462255278476411081660499921386118749876201498404335180326894779594334346056839744601566037703960148075439326434473444244019661752353718938525766647872489865115735984318496126396906897332115567965493413795435551005261890702495507271848326726619375402404710615137691982804916803016107955778224269314747232122607520719699693598182872971592066592348115884655559138094709428188461105745273151391359055193335930113221194430932072949090825637330678762159535047658667998583135292497330275493804959972103607613038322053284018795516689176278575268431788711065318482925424095743198230147925953676009333098254191411536642051606771800906654708598573449392782277048700600006618201223376278652909908688146319230994113939731964970574693735252691757743569549935422268301421685512378278256331691623774317288231776333223828725552424802870802607078562099217111324459576385406175120350675649418810399386106263250435524479989875211311702861122270848913461343971829803103546646584674974746762484134486041129917989143491912832269406922578308751465787525046042563091393879707148068716772597364980798344565894871551801372552443592810903448901000393815071751053228904774601890116544270886140132854772392356721447806061222036936405675038660525392275236128746876019434852807406032022719305982318695053735045107374663162619202430662668161426272807167578404065869217982723281348278073810003399933263740097199067103994863673944988499707442840469806099960863563940005238522953833301088981160984888605984918118837643307528523473886380972002197929217496262823455126844143215738744037534619222829719832321663524839397372733171163951139321938593616938750127173211379507494344280945769152922907112594860858346024014195471994344247179881875557697220788121244782704254110626093295442829019407549442287645960705513071928658484246769028213928193029378941844891905945080340054313333628368788683773414592501934606842497494487516892541302306445264484432659341856842843926573589865755106367019925843618358038488439570301519337636638685421945474069875087798493119796703600932850638564616862800294329495380226928537506122331929316733370446323936339851958687369722634762496119033266930890031175286758781446517519908171773135685121188427456163852802762258711312134120578387924016786491510229369590560372599345386230751337515410206489502601523752483871445489729721054709137762614750768758911906998836900591314158857287412148823827369561653285985822718821583491787327368549776686467233300205652881371254973335644232531768318502223751757603666430618886918028675733449896894999942540624772705764398234691317811463031041977221879007084212575192849907272631104649857660332854223269644123401392399239003557103628637710472025546226786352777917084604103902929479770240943270262926800093244655261569270944627046824428620618478918423023343348012472770717649530877256122025537448696246681849940824887264785281738308254981707387744870610323336662083730757397429999091249568288611833440874044025834936922714336407731274832881724850170278733672973187447090972974177101128855075254109684317102298449067610444534347575891715658400237658245836484400067264202761801924626058759274993895657612044164462202652569797310351615458056064506809830113346649246646758416084005377619763845264957603289811967326717272599032343699461637186193453106789666379728583172330937556852306990237160890246193121177162812409118611046169137484368654903551223317606789384276659478774521846158954526998389240264106646421981713865334290618658524505005964283691384645434530569874297185879064699521670695898233211030630763419947867306839106321230344773451114135057781630385148482425522977646997908845081334916845434065235746564248595404869436832005267476577901812709315072825088277031332122333897691095335780596868151611068072935339784025347713808142295792126131390225342126185472026123944016720526610970130689774692998171366827514813635511006116302866765586161725386293591326680314058879413609612916778662435722504058411697056167152174711368204047884060050251564835820915786424163830926812171319677652188395616647385409268413311556411252181787864069783235850757324756040922863356820540005582943282316553812757733134931968484888788263293819339922032759018271805333658137017483094510383081956393351771936529878736665169474491695213394814115565308429651034819295031251093377133191500694921253972705934466408052359165967434246019067408415515930651038490491832412831557611865988940338506997303524749852516199405025817030282216094678940352715065595822390280423368890144548934461744552676789346039164307809411423666525586886045745259788929794226953576900165323036987471656570238542490370079933659699646765130840297604927602691979076689339663620411650850185025875460093455481217367123577159657561943786932042165035223535065677279513625181913666476701116340929455171223023832500885781370975794057171975531798202245119849964997865222305023822568404469120118854253341529427067339557823665562360323917610635756534290970777321931288800086159253901816722817250359975537013147367331833355292198005920028951031636333737095997218000446270667897364739665040718759573688982901271042354132489485822831579373158734153651463230680102995774728687885652558784053189137452840421042587560915268471855116227912333957082483231079700485542493365523619003813066140875723310525894440677789815642215196412476069891108650950266535055619872212242603226736553498008618823181798557327779434991674711741552182654810486972912564218038600884634405041057779488510212713082894065461610845297517208967886864000280710721413589266688010627027870428795684011419879984885014537264429917829534222236723434787425037386357452591013890186719367518367272596156343453466378192214558005224504399949828726338720737833488890387971707838050156590431283313900580377992835226443479845819370008763307337410057233706600436453853936319022897581626982347039545441321115952378987247425246405659976185848584961666792029348333423725512566620594177697991188789854910595108584621080714866659285260911198092974056592036486128785555477447126927948267326443170376870295364128428451053035114911050724023874589657161311910559916389020022450350452251808115167664112736052226770757260765760764350162454801847173696547105254175513319850661633682417721938378363694464984258685724890054093196618694744722924234910586775258400896932002984852675399249193308119443961026238870376196262828305479396906697641527391281689257076963139920108059451888741986332081293223848169951930262632120720242942437543323902825658454527338682995907188387873302281793675842866294514329027714276529054406101046668831957703406800181884135084220573497084885318266496555510708889607494660530921666388733499199118594207516097910646832665926310499137289375324446646054361529449078025199683187112561796651150008283926950049267624920015452746574438851903045590987747662935917490541071595129436462438655572002219287028087727354830767550098518409313207361909436788195234333001890995214691378473319886887526417905182740516614192509654209066490495789371329100662442347207668236463498131116607643015574214820567502290781944708450038889086689312162560357287815943555965175140921929627679480091012059899853181451578949235131590038997397558760220064390798867093865672686052598632771408580354933508288933419053661302264978567696667385430071458069638032102378313110247827096578747947396502816368219381318227236420267688307462485494555091162910282082094169397850916549039108482146533094513114227553136274196565933043354116813440451944219142811402219256139811716801510218119658735637556846822580832010847406193616563068523264875373739335423300193969486975927261818303663056156892230019349630652579242498957994399978378342544872185578329170788889891293095581799604538809335237094937655491359775606378828487319575315533804436027410879426131641618850940725325882737184816676846357628901340028726902909324627397347957692206118431797742187201830917229983794244045945729851054542368649262766413887615379665630996572816486935523282800428982602324924059111984075748329681525367854605477032003022871017154101023196384448361742614471681401454424464966764465704105620569327836665082225404283887103661544383994383881342464989955351255379528275842479411955514450276762467090537300653010031964896429354265092608597822644118493550460274911653739020896982013259099299765937496972026241371173504088231533847752268589007317352450788902622162058441484801328607286724890056818521296595147316435383126299047126039538813569051921680798174148351384647160963371249503547423272662109298841856737686157470741077258301940223721254020174243118633978854500842914949892970696766191273036844219406542883006814202783700727723187995360935340174850558327823414725699519589134129528246690692359967377786946265448399913604685156847400961450012913941344429979353980861371254924430073147715771105927937346460661261991568297757833169797591028649382477014193514577800749232194427126519762770855407881419728621884255888214645947995276600185890112323449574912593046043199901904896439279711533975113109735962116863824126163142461681693409456135938945109121477721159071477318196467755329999346295213220394903861707347262616902333264614576105248240733994594023598187602974765940207861999021950703230061591058421803449003784136921988427620992631264689364616808526772621539029062049550028749653878289014396946774696963150787653682633448898950158160976551018510015060121661810928807949268366668066014924854812084244722546125653919996577731432281047774706450705444681064309054382700083197642171856750577284326757281740675440078973511769694488870568700460283469489830806836431340521330062432349082973302752663296736114772587126159184950973915658990312010770215315141160516433017954921623920981984910066753804100840545897061611486191643615150995372838037714887902302356696512012976819364615051409506896194421705363775267131553478230324374548840123682972345960564780851139561164774669677556841869945451530589893705888402738899061524601403732818549335898264371504263591418331489184310062487294827697905915900322441428822356477291604835996705674958764443083951202344323983803030267055243279494483384420838035749053268613594584889750758642473414447461205685819473670761948138138158299796213679298807877978231181860167377638772857384723234372024151680153290521564330546952931974586509724242685287920110461076973521627548427376688920120237288600691353696975531632158956565210610642589113977406325939504944308440798784065361062358223769239261661488185723664036215280877699260201228750771873033526191458846704261613153919080112676701766456617027000673550228048249645244842103978218073503005568472454324535051223221537003726488439594772653976304973609013661279584071748369304892996278456133310131924196217721763712955592144343334187179474592385848453038466572833411492028041597249932573383165444240993306680000735375808649397444446738766854497945516819655757888022720919675375471483184901182044179404298363863749149932098392720043148549786483756243700364385020714800851712737188507850769769857430468515358193958188227194276882260680565632244718402271497638794715855038307377652483806947716752007839920199648583723997247113241943594591780539767247898501867694044757647298379576147320044693012466997546266722706974035052013092069052727363179445505734930702072584368847137145119305062845253523929914506284997379244937827792378718739618514880515245158878098116369513785833730350478100405889343701994292446435969898138325908082346472025663773091744501331849309501066226092600824655913190720677718851855120989064904095627625699908949737850676123025907707490598426046468177234249284082871527390815686116720750220761786512775463368898740049251138441323450328037315774700294589103735904548908435580143674164920441221788263501440083546003534474904391638690099163212482635217859438886386483262813180525094063624245410875986475835871195784593731548149363571399528388543403450129377948763828180693196601108878127570670785854668300698264234832192762685894910572598934664179837903814614576746844794352617890451127157265179113413229858366405592589709813523030301690385300562833546152234029957842526011855733811584070676858375271274828491319288854790080040156957667532587389581219759321399482795547952272935537701714002051349683051560755438099428919721230268372914235248810146475428932175088231396471675702499535191985303306534123523764643635537505828673300035247330928520532834223425439643139820936879063956045594700227811783438095397971947386303755350519861931874017097083982164297482483458031308612943417866916696087328520194032685613877081909134080075774042560417587750052093900951683621783761811853759884463344390856765249208600282414717200030639218360361605856507836878147530830402073317236841654334900163052926615432338755632468961937068903846198632166242475513167758652448812770332180577532218127520013503624691134523432172579942896452214451054922667851390107630710506414601038593572191581819786307374262732727860362996904389430914627633435600528293804240409922408558352593369129231476608186195347400576299075904452697639373328947823751900146587326237076758395690498171045967843273529710951677335102952992903398443946667326824858648052470457037548107877431397723371419084398258906084076852018979337298501082527985864057531285631767270436285025758291012845201795723444195434600202374631184947162187803465190163546720691013321705198085064554806087210464804890036982258098206441529691604514735658022916521122569422747625058241628499324026027543357566116607044965876977450803248892694653621963229758633788099930615045902444733110283167188576779442585541806842801241628764855041668685990414254503164279993863146780913442396099846289948962388459718857599485573895954583485924492657906228935374474044337839963267990425226520660098655200311358455454541775396116741226177875912084756986293142998058816725273225723866766272542857366396764711853407589757782853809847832524412949316758731376870831852895802805602790470099323769335099414541488458395152624408906642781939067290138365815627413509858737592324025849214363913985050521119329075233575945273581474641263391100404455277457246242243263558706712303813142777928083492841911124476854976174294810973403061425783640235734865027162710117356865707085512951475927322190430029329854345964197681430135031274891158003062125041458571608265149763846523750662968443911088500651108644530233937833511869430359395132414092564512392685000467204982289800339643953883135137699668418472769274081402213054926620835723907935075037291336371229564700062455537796665698073497677177136592632120899457215248769013500145272663048055848086905149193841720417346130162352627805462823331609795760798041926038691764019043333614898657689724264827694247647354473435284656147105865508536198439345843857092123656059962555789800529825955224957260535476951527650813359067462213400845620008807197875595617359444549259830902189905798473233472931967596091005357430703270032014295466539226009125557583865046997327351473285968500181544966990178140540598649636274033345130546187757161558200640648744140309965745165204857451159038905617235949914511366455886522432032462427381016571968379002390454037748131826557764833840821811930946910244713736873605579601514828013767228655560305922425054474985189275919162362115504552933496106690220713880193053288603951812599735039758066446445392581334276121521815948427509528845813640033766384702868365862030943368281505516138178776717269957700820401415504024684284044576535761106896383973435874252549646364201725591145419147349353514939298319067152660410208007995832996795591695012687958210471990979076815935048146430914286238422889072434000361650452395973052893702966767841537303860234984515743416714238334791804682305026415500565184376685862280273589582903432950019846938479999579406485762597716822573668414953185379238824283011284319134316724332279210044563349080929766485853654456973983973157185358668796657027759532087047747159748746714668593649543391494831520366954077647841239963718418940591767978309608641222966951177690151681145785637104382303623063413480902540403317199430492364417780093341008017316820068549066661126493609783008082304594925355491101721053334861710275568123412597380923230519292911530460512445343855890787782827278455367864083756808655111634515146718910756395556469046089285820409418836018085197138509930528397478754748987177202261767845073828453144919849809683145103360966774721024166114272961282126530624575105253449241140092336531378158967557555790244501811551125367593639523904126539690646110208887589365377847414691324546756368597593974796743809341158108832282580323837028524103724229407311023806529222121596365101715057993341101249459232714424003615013225102006406282254703779385474344731569773862456539826454465747380698618447312751409217490494689585496132581116583949825642455744333650359968493797484963077142110374130490375775393193282402855838110388445823548920299901554879275361822535745021692529444730804306990280191539146874533840550303270854574429795090372740200353110492429917166883087216418716401755756321470177142841983558223301620773439892817941186471428403965154889605169392259628792079370175249013595468435065217396927159599162936590882367607903971534791307677726726734984447095435069326701114309233433994621030023603381932911848784468935379050868143131412764306315405257988495733784043312775582973456584890230901571692347402795614769951849202448676122100545729041897536923758624201046199806978606521688497202285950317114278706693330449420120951667400052155587526906916199835524473265671763033631317418760831575414122815367343899131809942098692159913277972899322141653372918301066576250500098617337783951103287194289926868077578680043981516776003344122510940586863504212685619278255502021831060042718451746820139149115204666147379940775091322103737505357882122407181581499839343687390697283103390191131016561793503030641831122417978336162553033478436567264674280602693003732704833541021025623164165899288938432999815056416941975073991074379122670817031298636611387789837707132801859824306805443670146934346345511904682663581761705830363086911513020658476392631243303940348322041499160232457768015889993885185870620305378328383724378901149590881339428747893244639530953613018364404108897906788286344071539110273200249600429109903421997551451748707046986014346899545905197229725563037165114174519099317765687916409954146124464367930944775418213452813687740367805967709617296742459661193337327918671100012299635711200212993571160830804572058318727216108274488003236851613271857903447662630145159699591101313086245367303122703803579095597684748784739525852122104130953725866019951162168945957855162937417030378090167181946034397779321839661559939806883265450962045316121524918490297019404642159625124555224557494140808787309142083788944479454936969943867014830705295726600208331508734167524352215502801691334831728846268082468044524309822278597243595067622044226819617032820594367049519739008862750070984448126648814783618388524075919449893896970732741849706139147840636372596821349042394658677127522274373400970630293074236211893006505971535861337291182648639192831326880940311465674989696430944032272551084289516386168092579206630294726460970605891044700902937228564303669601356068612439069767357171943362211782835889886914922698289332562422202770667734261396038995077923170027723837162880990188295957116209488403170192488140436473980181847207549746419239530460320119833163015542510881047585089856103177337272362642891892075714814502101123053708518313289656831494933712823781577519592751843381091372529370938122762524318097827926872823109732347016129746883556744717265626491174539572635026617863156653563056196943534702098498954977866219487249058488674686552867958061830286587033959524355233430172085175180187364547352298922942557999950382194673136268287070542122678668653981720189490071046522816121283357322962494233424975612691253085078097863780779867486157959671284225750176761865543238339467950716445579569035836442923686128526839546618471433175019823119709618891879191421856136426920562303456137380717283259153605068997108879488106225856182578036723009205106676712332496687467006300423595142016080462640560536466808276954663546887940548394162932991359892129090878675569245160260887993726172548944819617525278629552140903370522708771941862164981762973497307938604602102697226224187829883964980222433485616051597177932421714777564120348453495022994125945997624070690456974220792664562955612804434775827494060132212533339401407380333095185492435379444475751499841803331164761170777503612899634998425469802891862266530142249217933382271382124418467444208052403000041394723540985016286607818455384914603211233713753130473104755507482942959723806421902639878528268881163517553554797773639348695429085687278536804108971977969550456785901595195869425380666103559571063156056093658711935304395170054417046067199600556012240127845364221063903639703403550652046997723158797173552412669508200420281053388792958808325703179628343455777537024970561723831372885801329145659291237017806095350008368696607715080347476119407620637688582696872895444224894822758479532833953016896421220293663906635201843085074936196142751948511743708216088666297276338920675131480412155851460949104587408106731713835133613014464238374194571576537659216978587278155656435211448993927687334537557283448564844291851163050619330331198785092672837637893752182575377127483957586929823513821226389427322936598713025880216422178740564304429813473946589045365004297170727778358751560229073521590353166236384848323026847649751137657482068575529260795240667689053046341316264542442988500012971501645938688223889836654477539392025374927879248601289041170820164692638174225863072940645416063221676556370405587987940669658624169582035418420712327525830495982626755963910633091041293470009277602072404096866080349486760356405066923003619421714062537863912569449588972791312739213439827124520476329943581471854788282570169506661418931082000846962809111224499581647956013736433766739846796486761870957839462283241008593336584554421811258629954148508502312103397228833025229738337610101244021479259989285605187416391551326924296128241430632528960583221348712945991445349019390997121717277847036439397682823547807397591765506424882891809415864977112139303341751327694159206990028865703204340941988622443158326799507905534909784938922720133045013554818786305222694229887012313499815509560866807103606379025179619972546500631526252972885415704809625767475402590667571567878963341476089121239901335295596337557915264316700385933442214658662878805727913980738098963554685159376734916735325773174194549942848499098386989219597431115994999691799665900088078703249139928760957468903440263618056163437528888184839896825707323250126529525434943634260469453944667049537930251968605763703172526495074711930182598175541852309286766484634294601782803233780162284890702335708059405238942843162205216783235611762377178027377843942973658020907009581781527159695255364633998366831207215230572531571141968647015687332416567283075291750975946757344739787579592158253671348855997459740385642766299537502960814340273154052010562050257773245657149836677811743581463928974775186518376699721576690526794613391930701597810063861616840420584468720009314902570966460563144159183359602835733318420794833851199903288297321300349182211672679289094584773848013755385532420318746717882650146250128595173737131950817777440166017881492743209689718026508849324213409211258765233932021299030758936627913016726119979618987377038813246696367492457209234303791901503774846488741492611472251130640304954489998261699403161595279676714780836568020967439059065123261806530423071223742853498028882131986166497477217756926205155405986886260078275904925160801719156482083325458603789405255219848266497379233876097112931109603673023492096333872339525252796403003326500836614831061586641959784682985169306307466484418946310709498220806528193047264332853519096373070303848525550896382712128563538921340025042587798426389355721953779014052236711891390512933550619753674643106293698887443032445971359574478224632168133037795748528134806692100773484205691290241224820883669199692604262515919383171068301526454690095922591998218193567899872033875135174617237322865735705645031141181133640633396168331759783577954851409925648650848793535450789692373980292159607409903378980954933089663435499180293111097124311830882640537468059779479055233423469345620568266639704995419667186292703576864248336059581867036260148760294173347158732752203860239617141522157219923167970123150712892459458599838191966320492704346904875524271039648239497480206092025053187855840759591911468308650598525636478620721816361288903320288775003585388507199586546144331244453286907874061088677274905777954301568773357783220285089974095628195893316015131329072422122521135829113662533387800099395739473948627868227556662811342406072692659440592980869685369716939190776279188123055911630929687455915794518342518187802137040742323448493412340912466955257745412896177345097334543281421012546513279755356721903025967617030982415902107593851478810555733615347120167639156343763044482156853468831750554806043148277905995045754781276581155822669331156322214222570896026737191099162732538428779046120551756730559269759266622835742145385902818013743576376190923824269237392504117835420531925536053127185607948162269477737323738111505108964396764927967745783010488179147164703001561811753045675527834950410545567878402870167885428048805539427650485834747571345663477781346198053891438149134859128898345378045657583116709630888426675509481333233360634689000102218837867573901040493738282897846676091542733732506294388800700993927708729320689519676183655484711877999847474803644846112007514911379764969491481002733553883592018003153953732769890341624611750653548373628810243624022230706284729541613560879642900705202632441863825137774545473765789268166544337191019506716910107550280126484359634163694416519909953282739865521308520466687282318106484753517407643217303820576795599073638568280428430351014970184710818789810896521405804541740812768864956841385457899963322806151793204984285186130020053430654993715574834877396277551706465278421232218861096959344215659479242347475875851959627593517599353588353684527029150379060218212513824362947276012044935786990499917871751344111007032440696528615491220462593357668510371304851538071565593175910250827316979421825772421740684993376268881850790236196969856356165299142925061436720516391396633153272182631322668803322350291881710389754925384912034829299332920702468551270655908817104702497336256250927110719441714058594734431643289393650894854108776984083617916236667037225343229645803059264433452555082080017327600860597090097111382408519567800756335046652207538275785081220102216361617889404775564984577386262844694132888118928194723288831031908893694877091912639133513475759797756844593264840636792041005373473801375861109375003049218470686431771130794744200261143055301832667361700210996144028574203889179618706046269399884787459003674082025909461570613884297706650814296763126668684114126027809802302605385152908518612972706168393587264112585202402425421272854689044786382671330986283431385123470616689558477967898635863450796239274670960020910514607895800921881229452127098571070719022413996719186441229020227649639077138593819589548674798307812158161839125500394557334188383820154379135383880130202220144829199949858651710269609752182940380862893657913650662711110931480520960685020554332939836452959741192266553501719495463707128364205490520953044472402568010325698575237234781403376661352266898775422923964623362733530418370956224965582266784939114363566835266316348816473604742063755761186967593228940896357395158660791035006889538870039226464946430631879542143782537326266457554381545439921585081405474125561159551632327087423080537827910936318615145516528067386238774099477752250270905169436550145620369305432964291590843765094398665641170144376301671098124626806891054186568450948938631374592573186578671267297975396213897861473252297034834433189759169741977403628373722274224609464083999287920532398398076559561915676544951715850107121732334238473895788384569236969811935214665265771521437640593024705649387424879292728030269269533128188583257934189968746867665217838520446959403124271517209349754756845664231398188468396474590272722159220863182737983167072454731507467015934593714392581275873991067673079059840111150202034604036891700353899658267780129647676826707155879801720835248093032932265406200497020081260786588105414943106486510082677602474762012095866136725693619299340716840811137044242978594679728143628588214756022790239346618835280956542831778261676509427122496025249362189690548968592732872437442796912561518994107941998065642114405367077204490261805907284686787682295631082290816694652466058150127640934178823275322941939635150435681415495287598802440829425384787685446691220197793183117117091507856732659397104839987653506100028510585849931734311136959844949791226067179429310863062031548469545684543000416730196581653265439790035990345501255997631713996611944765559953001142265462894562928226042411462465557092581093828535894246916093858694124132444664271729979175196518573833970137886557255096831158019783385788106991032818018080213379541472515266583876335346366710623593926168148535937504853158330746845376200087741712464719434387843918303700881862814426635270177202958136067819988823990423291174207174116650609199824568292525894539306634590805804251382860104474708132285375893340958036409204683692223634475106611499017729810812953791725677371286964262120693577727581401835218239342524723457333537753990377246190158979848433918540104648274481133329974505075019074508097138323480852445747150876093047240263571477672487181768816369525529800254816141783729838951456794643729224313585346187561868044124621548965813850499335911888277103739888045953454904042102007098928497813477694649940719890859981578894745069709151398664854525089705746908472966697465563232472527198763193755594783421791752664083766996603361929875502675425703667414885095834933487895760637366938328046166990168675024609820576631784785802109948508350259435585636398141619419584650794413887921211099281453237283699843000008871498878856454083463613730837677046650504665272052843832545494589389964483413924484307796694913197263382618025317984304992833458618501685769447015832890599624168115507771408657147988483297196474073007517919495684733123539994797627990245311175701418419825929272758320138542726971097771372727839035518619407898369752177768775272210510904565015797722562512633984981119835972801313515331566364055792526540448676933414687551718597396198388567924294826677001717265300509866530294318661495800841471175608752541069371785153759268310870663385083622723672054581456942439293590922341558034719359261423803652390690226726485794617931765385744788684460496159697209748853384301162518578702458988667958955044398965122314081282774470326851806977748682182230141589799825958268560984045282980570094986612894436743829968323149627219177356299576193396255685916567289512864059589760085770620733134729636779393657937539764709201460396652444159330790234486544544511019279070705160303889848195331688713778744992052369107228662238256992823358408947111513159716219072741169721150943829684901039391837248405665411926040034556891959564167031700583314036936016593462875432808109819869696150159212214346721040136696211821718812973088246393083218721850108556414713442346071154750049847741793113443708951481831720263892027640427702438533884459670664052901792588406524496097287781679933267962747476905059304504222903184387774324814670746667238409427042220607836739311459562609919075747737748509964810882183220608516742275177555033913595025071594955003420064573145865109036616413861557831188300714252036085322936268635928473352781567634110443735467260373585339696986622091182090297355017101218481119036282715188916855442440708944469783030639124276643909890840606102678530197719659158014300270206609278809086390693391983953344092640797396251702316026999244634488074662909134956167012601334316390474490774168656437932105813457291498376396119672331438041845148869931682931829141111001267087915955764507486516213119461361213088827111286029186594411938273726756917293326592793830696666688795128369862727642894319420382199523118031086158992271568481101294311133149405233049939443630504048013932663284698432252866551766719218416098661606750034063674208438101320743435481410742602882025380190853122671341362385175220928752762844690982834670694253468463353378997443763848001193388237563820190550753936352644873829776678476300083704196631337925365500265777503542906167970466534191315335601101664365187941944440877865049901908931817207749474298718614650913388300358003863410368569633207052865681929072262950920328281870491059222341162867161033486062461958195296113563486015835872110203801606318637993493457746508765913135582486842449172733952455390872131698462937716956311971796570539940844473350654705595514523472697579823228705860302691718991875977303548780970829512302084717070959893463365934562554985825969499963285181702532483080339445739715733182386289299162096242062012755683362978393191574201575812267837734850285466595973803540755861791830233381128884973786610754481723776359889159677649201411422633355138228295531428507143021882422810938613588717842724392682341556008358703895660223220741355832832729987634350237258823308049162293620463376794341261539403644203196176300572425490105974428088099481543360782813428996039224546816514755450030885216914805040202477591121893154817254535857516981833050289746408865526305205255610217240241242396460315547183676314831566777726636191065550758415726971812730054438710700982946153022384910528202776674810775596152310398728842320729568235440929314796802311329049425130900826377949144455694026238903267384855992968570344411332175250264236715144752236950618531295729592352559486286477924828490757569676000761789655505791590804446949029337036976615572459019814785474220065712662094293117201487614694074493872760756543884043450050053130106105797155903213300384935279163091078634282036341625521931909328110548586106293456038404196524585351996272433046345230555043005493785797021621214019312450123626240686327896597304142788096395995497734143951649712999511492971910935294182325535164988035413063028422902431128168970835915680723824946378623952829715704127542923022991597549820626190337846801083813033156664264639065705909511480787508485846355752342692764156326350899860601913569472901103882025796627799636807480034234157687052194904346059083614299808557344575732363919165058556202451191612380495242344205363512253137172175468212972298759303867025085398111285369429917925598296446206497464955371067777910377820356046141541922807930758804622644316368639426140433838062932093119517752239341139414710651464703986318518571616334575254635140808345986823213874137257135430926459381597118295723328573039407808743645982618818833453433392006039129816754310622608392908970483684544133167218425359886206972783970224973702099428486735480162655687845488968328653601768668219287510708216848033795424394648407412275324686872230745211991506449889318747197207635240159217804697097286326400190642581328177239002498676621443120464906668729185138466905370207742423231869153571220773862117621965306264635034702983138252211390202316598951102409422772555635544410888047976684654631611536919065470256994827640365066496761387921178027394654455241878270015714938781873726124337536206899147721392330694631135643896133039405463651207543074053825193173424569429235155692209124120362149303633802628419597250912832866420963515567424410229575826074671616876775109100582056960549254317185556258041547703685204220551742639457618742553768756428310312282279066997901354270345512827920011970994485986973009137931296173133767396872016398216769540615756723564054363752808384232638237310436842069260466665374331692999959705463602554126765394042011628745931385270830025956920039264085036178007704094436727491503322664704485137155633670952016092463314926405116556220080769303411978702789148119852561147268796634042592415296710827518293356818210208933948849631388101908308056616269760004596685757891372868051218513186960221048863199446490075492506642497734004482615797123181764422106416119509249137855950275789479614277574084931704031774893339079991519111810517167783692248041939039275847271938705181413649783522150347759145172266868938154791774583299410746707283896086122876193372612957756436785084089773758860984431462265994473812011848953937383619901082069070207225208609613474563928424358853578129809719971962746819306828181975024493771077706998308165837119979832931145429676661039369095046822098105190235612890735045277057369233972378733807086411872805018758082245225300862044374082253241527780423080015278988600883937071064685459604873139058035932342543915649052507953409981572824456544048306214071851008531679320099665384649016597940419503426094526133346724397343633630555852133054898162022576804512380397928772315245813289692213881023549152469447665903681858106743526020414306550497876789520206888757215371484955373350745242650548313758971928669608951174874175077940973704841010857851511541699544801799620789296404288673714914103441569939624942866501732339145133493767507368276381602358037878262532829372201085449550285950862625174729610634137695774734804760727829523513085926958977017788494022652963844847147520419885135901457134906101966319431012471014218552303094303810267626742709927477604181409165551665353016413288131990860101474794500917315295612611453190145013116485152040511800448362671613144223215614758994932899707226075672754574681672534221791015208918152964000114575607035291707410841899153619108936384440474065358622746039468430046439402248834177146797512101517196928390066342621860821573438891187505139954995531312801896197178115707749116451555549585850036845336465558087710161123023550897322052895705790828716383013865466027681900542787835422461098838622706271201491281849081527858519814005638635590423812800888001415218155879227033203223208135445666735857543139355782137796308204305096524313007931289648184765906006815677420753508084287229696544217453881472103559066529906015811155190391349941643497279713406844552729403388971046250384157624240706844929332672139143225925269466576250148484182910414639000503787268454066620978149033330332257177517592983360137299322847038458050891340565348795874158589591426595944837609176260154416434317729895728342727295380719681198771610453861121098402057038915176820353302018579710900230418779420262604338439220655992292730874447066177856372060043456779377885624886045735143238884681718353543537373495097376982575460677910276129466923170905041821720207153615567804640688010621368722101519853805482479630280444484017215609485258198620625736485055066298448566215778763136327881217148502738635374133860528590523534737107567561793946305242478581432860830400638999958236608092556651896108646370953134224233551860860595701053126230682311811851131059669877470684086593443979479817318354381836403860409689599385145332338475254480104033796449687278575874073432433116663510437726385587411230791154078909732069729086812909779643458843726560465120694142252234604026603416215054437952301365195244258200542857184491555399442530145907791489766985017482691641055203172545479062242196233823951488032337536299953444978370020044097609206863162076902990103071026759871614725529904769974606744074315963441613841233619564620676297437942140234698469771263883887613338381442106232426550474042128428603160815596406993482979826842440318300305935927712676706304045133210364489936896882860884586151046505262314822249291847610987243653754852187611182061015820683509992507466954418057713482496058347251817214407968795781374446939614646692302115902091517510765699626239711918777324513254847802731629468875349633271920297837507541460997271280345686972883455788523750234633498239881214911972931033739057797517208313990102167169197142675562145346193862687876033868809324035121314202895578871577247980917271995331802161489361663050979603463414741910554851826956456148426856466337328840260362566197135896547271443207419275352825986915414951747073145124033936285412233901961127107740078133012535066574821513598024225400347442618034692151771146582272540377664774728540801111658064479893359705723500353890784432246349400517152120698600175090723733523207878073607619569170186673548071528399704136978967864317858462819423067713336330023149829048288634085468374136462806268416098134986086347442784283765764943613558248888685208929759119617967239041710384690113902332497319415604928685592727668799200317974273453523188674265567839431786507051792067158641900004118685874317468322052971917711219840738494300283160434120716194106364482399552460816833329597860510917727876876608693281517887095498497573265544868120357355183307701757726118930716314531268110783791504607968193737227575339119896770057667690387569633046498821284853733969890635195602057021634386685025942309791252888420839574085290426046579714880304009036223036234559177234966455607222291165314379645830020796432231411485673722243037012736036062086591755829284205878702491409662991308558252872379201160696743154190644366606039358197358378891213928617699078674619902979923249990464885557564185853916527989678884187444488661184831853976267438571915435334234571581922844063939645577673490203213741968348309237391652770527962590727121879125003159045800534037064524926282071197937513692524645516942038361552646926165967053623009132317371907795449303883169766604000168822548217874380074614017713833870923468610851395231490150554107999266792197379503446463592437403851342446020700045426544678125576212663306393150739050150642826349503237232377055451435324760530204046693653549615840320247503790107816448995773990873082724990048156199364386417254943205200942279542593096245922754123962818406284387715608556891942179724536100312739687079039877258958514087713519390518920264808041237801366841861681148041451350427740103023398061982220879267815470208086351683573325496213854465662375079002427728322132166180896325607490484865560277312430054207426048232161147514386746947571987203341726610960916006155908474215820703116083581400103622946902362413015797700927671293817536574618738540502836789893803985041677250406415961553683457518421688110695714865681882603651111378430063256978860902429313216696256188872604429019904877485384360522493833734053782047920858440534668119945509009368851661210838844066135861246593296273642084414805259695893406899261545483509506796943250418518066318439648939983802450403612584859939309947781002180633551542195054477050095622289848088578789904331932347936119190381818725241347085956585562223549181305422100762150106115669463941443998284225971602383041528071597595888130185791073438721788697574115830865294959689457974996822615013385274495459974748697566295110076591570668268765102108050586412139480515029221791566025483603364768862083070899886141465830747798885434757422816286230983772403090705970662193920170470042327587731119899710176135502048154119935573714395785192994723052354405439143691991126536070738034263510028474020910674782916990091340171180734122203967328886816960067644483619537675313719746513385465226665605707524897990208022111134498557804310445906214239030505828317286417983066291018660744867941947698031640373695205365435863849450047446333589020130584558865572656359385876617684156670952549625773983332927987601661688736315574191981975776029208425522289552914216483700085902017905719649964815688688610068277838599339730338041047680236461737725087747579938349104550883586929260463734057629002324657467518422600440649640706351769850962204533994155607920869051946958806392696309197169482994026888641486897458998027705013308532467436970809094363522428873502117368028767250595440079640237039563215992821184027139340434715171202193568232638883942076864634088518770078062628161165858018506438242517910201505340022637402105113588751055072868774765393266726176583299871662606222406282572613453354378218554978931575524268871584021409891647362794840579300676351454577433911939578821277132179798247124849978764376904551010984308970031230619939562494737282337364655295807339279971732311553366298588923186511865495665368014371102456635271803798838034846466506662575661670471287763791482231122589093503217856587054226314699227401304834384501547658794453476851603082524941286201756368008570622203731092315826266320036291299576040495271820672534490140426725877418230743376477805917409129286355883072097108271954076800544611838163634128136639220550696731653519849227253289434794963254161839327929942748876948253966282171055755736998081875713908939689714952479944486279258237051615875285943373485760074480462268406973581302332710996917313907422259850171374709707887381301706249281495563196288384090010503950825819210346170774359208079623355787941392644878127307204911092121076225448708402172350302185993249979857768504621519057506381537578022572975509639729370581509569328435309694303774426974438905974645643090049967017785453713620380510870926083429006021089567413172075172867751325220179444621937594984636894595966945081619154968477071437699761730249669717039376622148305368407246398750815428403269178620035907642451955868158304468448042569893844871627564856688044684014038987641644508972352492556038794162258304686836909675069542163590717321841556321753810552741291543204681241845446038481658167596927913151380363750526187248216651193866576964542012610152076007521455873784857733767480366142986252658106226739861588135753290320483451201101839588225127871619971478885145831139944361930051435867879188630356835976142858888569494511401279095498471430130009181278647162298529697983063553010530171380400419712084315146391136150615564193782984562446691283013145420676790861451510234480125402972233390289188610539088632798022196706762799850296305495209419911766484199405870036884826132058204256881179838014298074446084829964496395322605715787488319598061217964133315185892744068499585659476583046216274429371513331955560119324730472064907079711804372720726627769495013702649208363826056841852285294317817921914546015041319592027003989209409184070021983953832070284025039574139151622572508183181873913487003880797675315105907414078063845184234618467609973268909166641792485045744577670309461868329607876694931079537366598522112954529173656342530714158831049019022395180225891594394220697290237609889125701352453148580725170668435933419579999643577680762107007373998245289396516978783153275058347572624694362214750650615813298714912692547887223193000898632536272923856185970124547470882882821428997324812120970528161813544495945842338028865382510324626269849359358126377677845354263944880467072585001099500136071536989709321509621995526031503131714080184354565764462632775951646520984621362865723512379623513813748195492485178334721137811856349325655707669093077121761591988961754397642021953160754940511333211971490082977817393753733988188891793060562140443954711941528494484936474767957538972674515377293569874822798087441304903910486712532861576171227068398877949673207082563809358764370588179965104653982433616366506002329365122393510726397747741902922321326031493056603342838151496714786511780580207214589143556326935345934505560790845267677822104725342493290174313749256434155290041392247919125107351424763564539112441422522877152324266398520708987369091643127437195981962264397030650448456602495800478781905938303703606418495468362250455899012122509157338948795219995841329254702738874243977151962358679588586630829457003281430661971776429766020244680619214807462813448756924905836647064130813671020779316563020293979870848337786686748345599953832865107329217749735826603709774282497189061157269552423585799271659012652956722881265192643555519884918097354403510074049769492918387554026763562934681751272025198717047279266818173338229894808825510864532707302439949962686126700326363848166588078401861728987214398364123296433307339595334251492881403707586689024518902293656672714818290358060881800653288239317834467230032296229609896539636344743648458583365500693213449377769226177882788899792083990169322153140810136086496573243711188716930493644890142378178942505349955458575424510050526886533395335145319087356238888342744065159019586618154062834578314684608267373903572068663178093202831845422854313935004815193839788892090007626436287646661689314773856186525727138371407854727379802168430946764645969951487172796366200299294066480963297203683291241015151172288054428267757102081696255913326634959680015692860100110488111556715328094744911681532856210572489719887585145001359411928599578225637460439004948472837462473778178681680377299273438120932316958884200084133444298225704052056827108555200252642356547109736194982119349278131513502991289958912382168018106591385961877397239674523331282073624358442901866333216154817223642314744163509784295997867840848508611888111196354601985632080984312878756140648572311650404191537053652019544688658251010124752174530169780168896115263666512777014390622825784475725609080462161020829230581967331936059633849821847862518507483981799164954895924134586819881110151450921001245331448897079074487955534470256709058532039215365428351812953680510129206084923961418343430204750476508730666801302328934237557430749195025983343271026339785518978370834177548487661582787811478628764358228864083381998641136436548790036646858844859057281813306364277464215463528826848905889387283861741252910191417776974403571212609857439256832434390657617689570060348094336162486197864484577639200641635278861188295530264811167442986259228879222725348780717373860056593573982110322250540343375870566158629536090768289496225361152210246958669607100503381621931612226296931644829647967226783235773890818150248802127105139299203695990934817426970862482560113892756214172074643170686228225255254577448507651462692802685619471701760444414235268825778476436165205834271371627042863775919734999612854578710904501584078721402813967380472062712917812779041740541383102075966762368131995077337399984133459754545495942929852033251032950211121269775602360802844695043623372527281780054201054855843403269956185272313463328537282704822986782486743696130671697955690838272192297668998978754574172358784021818955588786627880192014209568875644368984817636332460660293073349850896597096425836102441505456967574679439149685391363256172622902016942814875369425789809033783495660923559232129982901718963121027242884976176073352698022795300431127940846393209705693520322119744707510585257694373661863467853190973589332385191021443401070244898288046414169133968856721698241125289751868674690768873482133347350276812782808479467541788831824232595727178826460549316272295765730392383010161438746225065818217753723721763938270080259685367819573681322233617365324136595298905189785657371160744331264162490456627818411215667018766262032705786187106539667373629522330620741679293306708662543494870947961920539758789530094098915309386362841598102243643639124490756934211144487407925209381563530575748713989202440438860026217938589072920063355263834581963419218323348409811496265038422035024250624790661547866986124492332449256076906688274153234076650698794038887550151487813107896193019797482468922303471686362385639386913465772800876732385013740701374384930378594046589973122569867275256091976345523345324673730515455432130385206165136675740962229103483579365723169400741374251321788848881454208422519629622647766111969713179577813398875049185179953821379488651403518989988664335670817286836642130013545423562182288085485039849921047030601154105485177670542328895879780790002938307925964519444853413417508369770066072882845658808532975274219959440939780464834500104594721525075166869664057963889647844798961567883135697906449454358188738888909339956663124408378963080875923032058015540737470843234419128966988998477351037830497806694215123744171924794473991264407186720929338423104610662505563650850644728249816794555874630771656104206283257507653446981380802405598971434817695749711195818403286193706904676973551511847991381108598449702598820210990133106198825889441129824305899489587164572863880822369575272680252324817227903585521469587598299695320022679291807570246599191165644341222867557584266429447433399872408643625202381589689752583437736012047104201218350765890361356923408771812495542045278635311600379879049605734756998410130268499346951323464347436442964029866344838555042649343065346577640188180954345460351878173625140538300069604064334400528270584987083176009833436002574980744723180182000959604139698937219659881096425195362341535902747187334067880142060420763467943591062294424889035143536723930132397004720510553201016151183961527436305493816168088703631435441940433285304782395594431024400176317702769622391694387096234245284459667996439350477980278919921880614791113440233821401619097982218743663548965422683631391225595971930392469060721356961531556057891526688734872274867091322880290659692482495257554735735605834548651971017044287500460242616484466616679363365999125541285115850720931183488900938894193205471466208135059228855291165494856026515310507597485415843918268317026870296224990334951060611126607582033707008907604273496919150162141368241436395770682383583015594400721949537444686622526679606566192070724537050032888468674398265830660191607976147536067387320256166738671156591062752309891952269086950702888035694798153178646443139080063916732141749202688052981929799072182135642106442209147652704021339787925475844910692854576581671105629897188678217145838978032438663131445568769671983686335297136653007179740990396921098042467582596014206947933514494126859880165637866670946948037774929903010112458090069356609910103181948871436441566404600458225372077477215240263347151370938435546143735994912976444743912489267655042256595441413871687923305649485549877265787640364960853525351851596616256843523814213595368096581327692380746195312637551486921138250183625920899120231743955733709246114796627940613831901122910116683792403044520225820121741844787210947873485467638601066770001237659535766481142076905938004502780373715914729666502018228118123734643266326169586387696939110392597897894981803912168102359084716075548832461959411625610888479665929753994847869855609720733675399117531707587293929480536955293902942183601186746052764867768242903714965546642189413754272043199414296205220007510724645460087183064493514565247468402749248021694706004852591007528367075309117850189486865774407835262484907645540561580221871725441519975914810576176747575531825569309050815190129221694112459675339526391670843290411368390290019979990492796516968344333659595999646245585109505512117986859701190007718315676925601814576360510448748684393910458748315106333372186720050018716423606486330664629813597078834522072430651655373989044459545240931370597576838606548963586182304968369219553096867347288456011340033951559252097916833381816429665948758044265164119178964062820193757601040070032400987580107425727919886571558370973946008187148798963782869712492378730097356864683108014677024056521138751072264864368371512991198163767203601175709773222434634113848405273287729754462884942774672417942645485159594600345849865054684134738714207664517588138168155382655462492940126837759385511803908060342032632223789682116248987360055306686560240496976994510853450642106039083857360664361231904440938738808629338685924115478866416356410042127386162835762287679329866172283106462860491565285595957053199305561767055614820031525591247318681253482836260496697660589422554050734826139314483492037476547699934425976086335147034944104848666252501652877958037725701487020315764334941741925527759164659083350964427129113517328795929224337658594796486505817682990279699889425879446425025643861339026602692447855875118771507822020959337500505376102501283324417157266913508596085381940314934282646034076896808724461128926527585523998171575304971541238506825522093301791828644136663656024249130159385731743129169321047302828565375992618530662111652470246828925796542814641746629754963241093863898429087880397721092630325408112072348828443940956799885672564743188890061668155128639195817811940561654856275533508221691197287474155171590768519557680355109811797206472576276199606705280329346188135178307340230111807242650021071823096298537230419893366014943616474738595699942700519831271930653524975516141243611498135502345186893753177466258640937954760412235808427000707922713932527589886447164592993467099479409300521220945259558939045225739256070443375512352569005892205663933328722864069624393954248863997937674467266885875722767907858063398393684798468496331666147094160892504376613981084407621909052316815374169369469482453770811205633968105695832862371946629925518359012781167842047143561305973916148651752019357048925436999155644430032999354087564477049223264019439494639550484710152780600699667621498706836813366305434811776707566869575709934224035854416813665683184655601151783504153168474136202646357350703351831857726617497588647193324831237777512047513439046380314219577073912077639248187328063119916199085900120873511612844194194782579685400111727641263867989647499329291766489151750793170934819733312878405562168026614084616853483800397079755138229829367583351248252463821000075797138318486246485677670599029079000228473113317220353129043668472329834491755815247388943149581557050436015664936629616598574751115626743163140393364616485474289660220912082192578222311548947976690213469747727758515203581333283738719172445708920904547768532417428151837326186878184365123084583364720568944632500173058869952949475946522457000703138053667947612180118311451351567411378240646465048102557535356469792620404443883884547520476600469531536478860162840654466891076752268622281375777728804034040387605144075857361416053564019720919111209418168879570729473053196543366770875090120574031008680451179619604080488076651381676083289192375033055327910522379960903267319805800677788389921639809868416401185985752352603491190524694464016092119251009400134098596101450807676348157380900355264720720216562432685741095698697436844347875791323650498191319501298152174586202541291007534874825379813319667122183158321076454238883217664079432527968247231775767835082393163642994668176501094438840188279312081742280142262221596996535257837740247943479496210976557761956366998197971192358165789672819585234950954739159783695024690914046380897092533260419574994391864780637395798832720536842730300552541073952303901287307649080727635971732645447707662385240243502411820991668970609879458973275040741073033620470265529294503793454332865094325701122258291572234900793878333133812099519633219269684370350577281454334198437167616066380709241872874200727972441309380840994239871322370157503644855225370987111691118704648815990539944202588316581025882768984683921206798022841082632642434618139631032582176049358411110922033401685259585210889009334843681365223544614423116551836911445090690087500933745356836427111980528817168707431468975247883159355356257053629123913829270207754090996461650227861946198294180700686646865914719066588070749189509935718673251767255394310054835839006957325238127714209489595391819963265938226017409046220064730086769391680356069766180215926908824047986419764459696190462477389973651940905865222693459081758982060007770927367271883798111017300967540558814975660824552081209212609892172232449591194121602530320637318084240233863868966008453161919356687375993322626088464142445544602249418950686215035989878180919923306538749037659799208501604349733973487382047512079244032285138620763573888307477513134124672841706760429425331110174360044410679838132022638582490630430238441184677058681004422583134815923456292842930195834858445117918687929988836063834593102668145771649845690004274186004437803339660901441766974004882903921933670936065978342825204430257047013913811957394854618494134400784219198601352135494985554136642094298771563907201246030983449126328627088025539396036417323418751604804311471679235294683121364046048045894218005979596082943177151565604705873863421047303539759584365787321371997695140134424890269941435181253053393201543710222015476952737131213746857407794665018249326340877259134983023795140081419309142165213788352402782749788130012140182184930418327721953669896086857965154395068814988323342415329187306573393880814368015810037561181912520765868834887792185758597659570670976483960581979484057325095557642007740224854329566968657814903549079283723709469843188240933205027635826753116785705571920372618683771530178284452602854021915303250943913706814440260603020721158985664970588952915880421069006940899438497317395483160464054048288881957655623931255706549865212049812668774916653914763393144720818393236225330916664616405113056858683206770439099458237600772442763135678304674506546863922573452387824047050386010336446628310235022155165179920852672336393120266506617607318390042306180410742210504220872511445761266562334126549673324301331592918732368615765390762896866934061102699616745336690870120972678267071910378499979410366396357502031633636921948566282343266653189801071325518934667379842312240770521005813777443648154987078099603643905643153289757846459768729693122008657647381618375509003535847309777710801429268879000011228947945597546409385654637986712232608845954063757188774583739004945018630515022385147381406045898833231097674859922999860114412767535457410039295288632122766890048621991828930900668011927238879972564256909203408908929913735718339718599213141255071843731637092309851566748149477086185202044543964286842368517878077153882717099194323191112004195458342195191770016021378649226704009905333060987852473666928737565929623135280304211749033539052095680310589479148893640015792218028638071400497475613661812416426829664426569608024796641032322489892309288609778367834670878708434112980099534739112220853491792519038834453205284257133722040650966178612167002453679395366807872312168331052451277440610824008293017119095411545531523210249467583131703867903553775823161554104601525526703567182459717570576920542983025474090986879445445844339646930906321552621276070346386582568253175025289091113312321867588635203164691445195531690401957097979244410754470789390765235661806196735297693830162311368705517196478316478987883313733281303767961956098901146955296330621818136061423264377551733768987889776253484517841163052533343997088009108522298673214525602131694319731632969935616808377210434472262125538349348926359660522045872347690250630529606080506636232083122417443331388280490593872833538658995091415972827218080092858683366174623589134654934030940075500112137857124145477402672797365297310870423623473378797675788021079837221624345858398624758781371329415660402686581640414036758622562907973047891804628464780511984299253588180842424935770074657286068326686125726706600098211466174151598818945785394168501048400047780856682672527437191503928732255233233197135331222994415633187899128140444380395128726289811280531612912458963539226983460932833347830079607302666702184329215962448141525640107953452366622296490725383704130263969465286323047878749705236903714015403801184076367528169208505937581570253389434447558530184705570063583824841551960926240272001736670934140484753456405937086249071005978127074200281223294269136982641807388562391296834230639045426227396879308226806735212960642240314344310002057053555451960283449645916371819989017145377508450235772599560693924101232926356861588397416324591933172700594699229827849554312552555325438195677535824564412400195232336148767807972415556685272816011316055869898371945356768197597725387815425457541137251923073311242963925717230663339219496154404812775342842864959423896414338752326929805859860556194776824757487789585054753861855098865829179575240228668717866879414719065398946480917520557386585353143883060091984559054966300093226279471963032457698256535024766129161504453610856918019936926081048808224696692389961416718359252871346326195668375891299873359793208061387905211828348818111394999838944822033219574301448268904731224615044827198998155313481576660766156628232886637978525575077982945715864122544134564488653404059883176067751433157474917410300177436798817001284216809747959843903772060004471778821485447958003518097768818591399804173396088651843711813889121397016830870504928213181217058493365353112900233153128032732532607267990014817688784404073202377146692340482076184313652810469078162762133962328488916459246437856530894447897227948606000105628740226484174374366199671498128771341237823646164167363427881790476776842560104811521578940216411855224387916886923615455264743552602930714472162314957715266122187500227726940695481959265710048587944779407757784891574271878344841913414059186299345933182962570323711553615403303277759366395272001889786271570086628867823189022430027074300768716576857669604977770876228734581481321299531168391336937179486004191190656341046975297722741707007941610863381280137571817013455597147109674056686820589177844167798603157033859051924499526445812274009447001772459223833385946872539318783107497747656759310170813395074745882173530879844992637305187311939069735825630851024147719870852651503075138580049412126035224332954686390133064549477390903858495036620706171269353316064653800279821939017252057566901706074802178930162595427036795633721621682889835015233446958257639540205364399264648551795148971137201534675572497802662035280847852800019386636565016431449573886989636572148594350994049889513872866597543005678532265658945847160059235308225964962388758435586153067479470273883806264369692341784207779029339821981819480742663205598971369542927383468210513497275601543812316015261038732575976337777947470610481224152178256794619889706500384558022080003785868596446311761016800195563761953844720073781619301112972762995411148326973878260776208646222244269756931625153193333912113482644344675226347380073901383138291451914151851801914913339730514500731637031402055626825832973388080726413649769052553281727653792542696702446892989921722214979563937236643143766806483467308581411475940117276130248791105979351245204037203509592278670154332826634333857697410229501958632016709609107436776243030768269537370172812153355465292553714860038125073856522428115786882315843246176755151074127657767173080577474171090924454647887813809751473866438437405082831627605437812255165734387373043840439592996682072151162833527603176723127055024826699975872434088874174241457821695118119811056724294461589842113906051965424908829595638662176229873174365578336306537099374086262925621111018448976371980387516748231792021860309446953715129556984980691661722034449979438482958104578388741982125053775236990474681933035313356937997876786739104854521734209350876088581318468721438904801542891216315371181143473886579516274473431475097346191629849350847143021221506895798310364706052635733514184294294224867786696496800747030109441631314933801724009290546020973925117492566681598176974475268082589486836016437229197374517944751329473651891016894196711940792957283209585780334740493406447295945054920222312316419822296214232587836105010082138126398423245600538496361787663273866245333556966168413624758129934493230025022227105696118565539673333101128147737414713724247544055826233046389274054371194742883970750307658155995130577452485559219014515270485881454754589386644035207142710860986063530675006729707485270463602413085824333545797350607112276954487777949663483807403532801161910584437588419387755661758779426589636816260816251753161781666729630979607140873064017630696729966868573766586408641121974638257737473150743157482400217556390272148461059419454288726349836815925440186764959915698497883712531704697746115187434865665719024671844361623976115073861498194220227239958734280373241884518337312289601002943980828405582431675869351953903050203402089124010549814348948122969167307899158351463721174070625814014773990421119504405759610960761440798879034499190289691782484059636148494482675327819486952887750804339431257502410538475521839417950054992367686032445529486904476018336147122679238689830140263373010142523772557160723207121594161615858013787826782849521634578381475476808804265078101517969425740819449264983032589307590832533307746237795307316828710122804836775526016203241504489493305027936118286400311202033193679731236020059014165308939223082781174219114574271362012744800357331290010941299575955653762160444684273823128880665202467888533439191883533523527800710664912266107834286776631403532542938357611883009762455477877460622364203829891561507932834750741668772339833871994029347352948213631117093897542347479325190071297462529488253296401692348376896178943884411045174450825050593829860646126342927903684541878932184741077389821742112826618084547187372985636547347335328578804466398128688265584787697180894349649905964707215375252772139426271346019801529507173725761287723236954195716916151899078259197994136405165590924916473587563822843879459937396624280720224850886974134240352095976676089453244049594540478527278741947045426556540929156601855555293555301024259740306395954195612391981346028386514021960181843127801513863077787300177711789737119192931591737705877872144120107192146241572641771921829047723736599111841793206979514078768901571205155225684115835036684987362076430205353775479025889088051847992151215977418735675034925903779261453708742655130272542141951258373246694176300168803246036015386730090548383622934716277139429704704620983309896854105906144286673823970160082517917743904274169274342726353559151316081747967442251859865775534479016056681466880560154534531252490905071235796547311935073719127442422264361971075521528992924111940648148860129436451216421965086100769564916924636318984332327104573414801605991354158846155312923988541241054537863507606069278125960732610542881674284909827387171520963097723494728135142650178535902753196688331766790902532006872123579275498808857808002671997971469973656506464654636110559659570626182733062352652743103248295748460780086987730867180590847340702207443580382948889352488166396302194443168242051974190071719290007130100112238154475181853042086755267263713777413967268452682872115613536845973516303125167113437845201620702561420639145016399658817739290074881265474364772068126383627411631285834252074926630237001014936389693102877844722021273663554954598160878719400365965241772699740140479102036776134182730713500994379134084485608171456066503015153083681348915348570982873473390385684096133290063612210348541343273773622260697603047148010713129080233738594997586341180275368792136351016679298857715356604940717569213046834020583000592306522674442721934342707719793810824918365784780011421758223133419554595301174035802190264874844327705046012649991261876941553661100287250433597955258475037701490967362331085204291425419513966947107414966667888064682822535665738388127270563740863119288315047960473601714578374108966802657278432921731818171270117340109052356871782282575628369174239164499431576125739265030094250621502972644994686695675245295896328218261525024809272392493020627775074236794520941932626046392765719173805631583099582005066238211286852425000386501734812561727464143432807072293207504278001918805012019770147698873811170775119476296581120675336074924599778747406192748347423967316935208945450010057235515923089202297916966385342268313771043019635555587673498569908893421582991872539493842289449371284014423810262450879044934808050224045799328432481347402306451421073059646615063177458376201717838419256324741504168099972184712391194775774441120708948469367696304547001646711409844431113812690395261999040444354596322929692481395242958633942913752629512025513946183815536529505754526802972821055799722328347357518023449871894893612629803584991179331403585923752135584302766606903750239618425722607419159920876622948047337012874687096753373535662555342612501293766094078385316098091671705913872749373685261190260603637002871666497925486083686844595653624682540507040206924899228088163311591812700116810861357336154122951890054859241505669745152155090033902893348915610463994082103950796677226762200720344790880325444783815807922567631559595124824734352104535269743900772952796377567852553383354035071316588292580143257917069449395209880047657572480744706192570797820334414717745197919772871745924875595990030805066972882126180698881921066580328794634008280861993815214775921211019555051332798963265162414803026258257009310232453584720726076958021855350734295168566595659819409073503709918872468543219031230707525388567332297212588985920102474228750629926409647071532751937554529416194246150468431373079735863519261204755834134470220631131152607476616189621882256099097843439047769406163477751593532006100007082672828436822650066798629157242524689963228385382120952441114903366201888401670934794992856142824828401085990308146432984596078226822817818828870115305143514943537324713462838363954470454308640752302388632192667469236450877786428709016805490858795261884830334848020056537734735425156559282201421982701268256576084826376433963937013672759482466398258046605662259460476370469203913466649856175337702869113310117744994473731880548152797776476777015965347043240041865393328348200064005416431056998507442013758217034152270598266515835189687462351221576221867466545710425065951805799293833235674308512064014542734287384481717951884618727907857446984136999090640094150731979685274961153087074098834273285675214691812428298969817774740638105580271967223245139338590398357182230782988879126040105479280999085078549797966835050368955454876992950801764422537129027837891146197237739579986853296418722305685614707435740468578370944123080152246198461060646529009355675528994303039007173071225976117350370154952517418538058854337492407436839707942736452868559634678944691075280567710601186286590790250827397231590925720840282376188520037814447138267363972537449509818417137545049272592954832444969868218296742209555488899696548293603406843641672297049550748109564405130881142822020118798141873770966994566400762347737600807455195625214778124029863609370380772667466177051056814066550404886061500415920968057059056312239607060584242593099095731037579447247757430775584612789994639530925429316132442004672832013987316718786655688657105922007788235302725861041674965699107662725153420267756719609519988629460689307436328749614390440137143419683092509533360531786624577240503466297624421604476846607556405596445605278380622428140253266529402447626850577717965520578240083638509324925138729862829956813652890326345453450757471306014383299624706299076089734365872546271207317425107655951243528070834155171872890636941252183981257601123675030132218209036924640645408097976501733274844824881231683696032839367942757613315691327634015325917261523718827063650025424214965657492435479346902449064378070446673582924612189425705751112644861598118371847288900187442294497921036125802676774490106384015821188436216360980108218550245756245528182570756488212218157872639386562175146307064813836283609148999911883285465374959794680885980925838037560832943782998677328298232209417912716653029417732272383880828680945385719798374369930483490071802620542263275771025749298699793529265084453638514564437837288506192333548751125949552267141275285377056705601661627458292668141107746750567350623263690385905392103709225060347045718497955776898204854760357945169412554009349062599167021808994689485759752027105120992075288449098576748913108011491491422809831224902020450283768818379677764773610489840301576532865568441026958772021143773734284611919887300680805789005551152579074861409671794521314492587290523074802061470689773864521828597478868254447047998629962018913077502707428587109652627866439483200686149288723078631105162518339105639032504638861822683460755270779744252700722442100533845241016563960847496669109770787505808621553361915828088811447462669006089334029107891187289449585976643221799200503874815857265498268849973861588501337803455890679958794649050221796399721596346601012844647715060473743642967164634283909112482923613080370436893949887401110310382753683317661166583611844711723866190001021765151659654704939162484019192830505257303018072096337643432046513726150889333489072373052937417427018514812525333744943837353897665339148621995102068873874913874980137201422173509099795633229074055588879710750356579041621127765224284011149540072165096336756531642733503069125211251410072568400180658130997184317201924975939605956060055659643404804102182815482334295779164881164559419297495236573202007004241194305127289296674529371326929752459382390407811135520964882116417305835632906508440060050184164113257131505853295478280058007410415849335726482310479413807639701044657965801000591731515201256314003850306653974873980591206750033171397581347952390135751366514961968198181709369435720727761098435418753794651805646906520865833971333224215281694464072687733914657713397169050705363131405718588575649988294216796946531604852836932297804620736306249321228123790165094630012633517310296202764861042729179578054580252845180101716936184827862171632929547776608751958677827691933949574410366568988005647394845366332749538891524081562011416973586384869376142031183250603404630892182387547008974286308175725955278037183601376697077593047357294991428009958237928900910443261243115072752066666382847693831833120495620097880803547439578243541375226445857915431807960454424080336965208360598406917200246919341453926568803313172570261568535025856139572599776802040105194604584893889903389640977838023836401365440300637551379436723923076414786625437230532165806371143379605064728157846220043245976789329094017903009326165460905439097969262749589555205573964974994955272275935345673700390681960623548404831039785671246708440228676407869114059954626714570628286488553523726091483340476150160204483714771835801616249620088186958160709737975993274699066431067905636941854001216532552653442100286534489585434684548817410130110628927530041050714659927439299116057197064095256041035353714211193493996807787919767319036920054855175504688659342586126834042886946488299435657944280059718072947670461899406428842500206235343745223238594643619893493010789083970060803866133431836766611950575091153381413787472972466167091891037458450429952708789167594325322810206904682492622166663123901588762645289257488341111383632636632064893504448750527324625257418061828595292470584351160124610512389385364749737784878305776798230414078905857660533106803016133994986590309265450417883569665106813463599064595903010662567879741731537140412731334355944206455012630773528796198250877776409676243508579235702472968788346217919889979880393822711613643979257259828162568352965375038793333905604000061471754724083103963931608136709344360878129060629995652676669835282331362436834810066226128175395474372357580018122461109498363226065546145856426720267124307779693797187033055686960229564463482612406618014620470461826448024079677938196091315050507652279728964991243009956241403399162255863777366268672529490636076797646683563710372885813254830741763880665542880459125880814650945535502426185800532381421001748318127537302956231635316291522051343860442498467605444084180185052486850217565860825944219317421559631576862545142978353168122511030458655725678504257988946726599139277289782657072188440857331920603636953809967122986800771238691880362386868309234674832119876646286247810183008875032842258571515058753399906424755404922290996143796585321137792951908369961425450058581810868783625024022991260750473759186549633463295011726869080664646917346874375783692339635051015966909733487023576865190540867701251404186611107355238519247572190384088631209765053589343954413485613140551180655088141799249359487708620032052901481589252517585933007638901102121417711500727457136575203314048171018025693081005887214881224175022505734183159809106312436955746138113821145147548004449105513498123927747195961281454741747080829709574657070568552209399590239691204407046624914180668775192148971391561960392759950273619275581028637152262952426714983268804441838702653407499428615826282640418551524195523254737708528822507721720409028024385990139655874200219216037686358107308703238997324153611945897575408701142161265417342232816257606941078018547410419121537855928754733355189159281412551452732980538396144090882060468176025753697082553851113257411692706846413721924662296867616063093323984063027112539037449238932053546658321516622598129818722840761979952131251382406357987509096643794924726203301149121667157405890056983951065911825171581788374546034990441197040629636212293847368330781021850353289662559340717928065301373410900407049094183537069477736716219267943409759384756800457544852292179610193789963640132403896108225449177452017454866598371984882389715519102327898863867022313649718560773119987203764226988556688775959263985806594917366822620333357559498357891863995042497662269835039067375723784548616954845728896946365361620853689358404411531449900275881936660353078797198882588905184718586243514137641744597036000322738288144046571322623998311305645156300543863965657845275539233473020468647452904038946114337865242605086006071698926158617847370947183799992385911587393103477799436857061504835927813153138807824258444661748349574457412750336077973970431316227769177414223657382634396230823705438989795030875659328523571711069038371721883427802270473863760121641887608470662506970247113095869923402527996189810579555235380383077656323054627606866229135448881917006687740464797042222925379529566560524885173670922015655634162220514430922146467943305546083689874276264133584225064032744368861445555333521649649873834643884046144092932173626347739159875635182451225297263866428593023334520856705161259547921819108711079037342707320131866192276890633483450642510328216871204262620265334704764549582675683448405191511325918808598131077060109099563253827789291285295905392392070794595878535044450155123978567596092623313094940415899974755212726796862019700919752524847962345777645053492292331430424869099733167521217506042272822713488462246621474994837247061417555551004531061408795176806288502312811027942680807802603022467732828667503273928715006096665903821600844561491341543998567560469212223730592938882932479165338121063898440554740559347509101670805909845776447503813771873154540500463525835474141120612517739664183681944127910039643460709923346941071006291627891572789371205048544445928610372525780141469571415673564053909572642374536447953912098893290243691870334442679148514373439797855443843721035874792259604145786477401198027892675589641882742823562484693534182633015535980852579254312036307363008347996515263978858975591762429566611787572157147014643072484077712346697791892754152719260011344708765873856019202733371358626995015101508611955580060977946198157993241184402317348321304461790438798658749492085252959407896296667272362595783441561311919226181616553217336438701469122902153179786814051977328202402578633713174562992575990546225520099179935602866131436934577040974071704532875602229366694419824742695076688636404263044935732305398203760078902706098512836381516408131702110052434067987233450591978108085046749102477608973543755948476566561747425512499465849824802460895838074062645166034625995952705440591307377954781229664982294610872321053478650763688220185520752292941815358466670406563009074507994404244424653721838760515973572673310804792898789309174427702925253883628098940732939491720452578979026424110975403712800684948773295478808256443455795933713289293536299021253305851969510268894217995304042290610510443479246869740150671129385029821572390742902628270996642137269054755591706289746270798477119231983480752899088334647381569500511755448010349298391625646923201818249742223138894195607518950699790174166740826923019620607959502765675272841435153934683352822927798475416443136145518819874137734147122555510099285171901947671855188891209847456091166109155152051614244709688244884788612255280555681643246529898945952746863301340595649118436136520120054681712333911933431263709585374470576828099470481333265103575128989090712701006207227717442305191407836647293874232865222238755384436106662346570087335156002089487008761382454829123275187388077528802036862371474853675299030636375484122943665082826508297572541476741218156647360634342483882448064741441409473191460894807577524342825674210650501875617146815372501134981002630320533020207177349423273364462527390347181854882767082153951996777877666496763294911772170523252025647360781485685051115648783185142059332887876756780747814351397065762598723991291005364722234543774224886621045341781680820481577058010627051478409979509615890024171232909154284948294147534294018727603809498439481028327358256738074165122074611779950912662739132657395104324294038326160539315111541132973488098472535382307411557933591703938389681402353822302455199177666058784505703274868858543620626396231736402165192949392280593023430677499743190229766387015847678294454331104184615909537130691010957094025823608183590417612941437454498954629503748823636827380343177486785834531469309003479082520465919800684179660206532308080314927799724626734647768287983376670147704520130997415541539498681717444416635062223159839210790649381423325558442926781844591205963669752995541929911529303132337553578272148722507241037072196027383220124406257479055780575081351413421721424371965815430298917647981592183619726286681168074991929634030941297094200742086203221693117451112992155631703909321107590013442961335319912820272795656069360332003097697031214161680955955920276186718663755542366411453295363485009488727496253265948312526820840620850205207081956596318567391602449527942304463249762355846098165983597023858921096688408768778335887089452212360256415979995599477400416217776516157567716188294960634976705627295650977655108342766082921001598717179056135929755224616980062739761403959728779808378746994082096259153885126450602070429685959505681403219340521579605691672943326003696446584605994562102074095979349643313917530891796550377121274599018768614812906576902441126697245973786289865815997081802652730192998331830031212085122575233723487819780197736122984692227228112683386590198261269883268139499895958505868821380488760335946141363553535413600179321361193242148283832785847771072147623983835311124565363187775420525250256063052764014003600754467734152220752632249742896771865550665698534327862715404052698270257409391737895380255128020654716447306090234874467262136994809996180654822014278637821640186781718283421399176515689680542561154655965101608381542248753216525158895993674207217736257500217757081314731640028903866825971884814885263135956013601644171393104606300052229835479849851963179808352547121845459861682876494127455304246435141107727606324582692804056583831853058551854604412158195915089621924643476574080511687761746735762167109201336502164625633687718718320311090801735220805271896652704060822682895745579076146279656502575600112322360896019517123537640635520011896961543852766065332266113835079324566488379419067000737029407253028383768682116046093180769333722692729695581308245657202127030031002197338988370527118104258593930607359514934529477703621360366998965598496797427538291166236226968110255222778504089230383996706530306698387974185677062829399426805131459094480724380181966448723496512646207526141754344026121577148356901361243414978856716508379762319387232384799616726161505837342990976253428804404652040992186493992039265482107596245404614417966425308296000409001953117661542629209647181560368858002860344323719776966382579417952245855154149339428765453418640568504183424830234837960432700812211986445560510208518214973251149453367621420765890332342399940001723794512873129709473973096937736680161955724295544459824141770243986148003216334084345495431007305861396776057029565050732434265431928356292434309791970825441093744167804598511496569049897873194412232565569071744912871431220491042639150828520855234673858364742512723130456432978002074076504786890060682302132184806269796221444535032511935438462496363414699090544370828278483818806607890466207900040370185625267543399139449189789039413926138959351509194085690553821591113375608305921881394476254260420729574726911749726848716905238525312471494695166710044393708676052135769808283895525895543661553913923911022027946339874229945448473732826228324503764707352030592741286925631011409003667515733026089991165123501838360492664468952772383069817330941893849841118504085442557004150258368579793410278642950600088047787330605555251076439039719010211910706678215389765777107878881415231547665905946423550159692282345493246797501938125513101815368488596756089027011181700921700527924450398167005506372748618198462479105455077386132477200041860725205080096372338304057663720491790459551944608431798660840370842869767893131227374115808687178036342321074412103754330357604332544764462173836688265884107287611077277688883142613494587339937671810038083315977507737018936217749527830367184795316086891471381285699809775021851298587780794011277659019395912252229361206466239546779139458116715286449998436195011165186967520222740462794798804117921720661447901138592974107630897185190624417010004739254791132455272147351534358691890427473901551997554599971640515168005878006636336814143457854302813401735826753418382595796926686393845691761704553662344065186307063744563328380104453545557106216792192377453036001438161255158274438692523634087320146790288070699608357089807038624154592244121147609391814318629126714300653763608013794389119337263465466097072632164305582414193879346498974589732835082162635283933336132199696448894591076523659163632389102796770299980108164843320437435363755049658574025360088879934974637548704239798229881250034508612806275592383937887100880872863159651923257240741773895036154654929633129395583785455668887592009254000116662930315279229610305332388258601607062555716340388482866194052019943739708370880070917826832668422685453688969477317537218968785233099102851921794775456384053312335748438697202168229995212619149910027089272144629424072619677545675302547621179130349442763586284918946924753733181557879739259566310523074374754255305448892498570481748950245595919701614687488269054782532376662332619037038205359858166736756334102156173868235202591664092432417613520523001730152776783536193001493676633324542499336018782719227354858522822918388196956600577204382220546097646437946932140787977715228566169925382046179843075075175928310752629332439032341645454557503753780065455411221968595594901279886030154694373664009617311857363210913170345692247149988139149354860310596689839645853776761505779544215185914165473165620455774929483440527537693989589624066380878801603534957144396047137709593324075870747236092702757813349037699213334699781883029737560998747006917251434361986218322109581641537013785000309323184907282253837246477597514806978552641373037777785464305856965258936094656287017640066030823251605571971246333453808803852112754327929310449253133847165581044166884576980462156205577243783474602236786689403613744381401801635447814545336207179222421273956971512297894534417461287200251226759913695892724875898665726526243814281177703406985484303930512997334729890104412735339714084585907026575735450260045572984658080233838784584938583653471802311944892510750635537450550444564764457051819648889755372338098456021167535464817613627810449488359389125984627981071431936222489839205403172716282578747825390143705755879195450153458205260701397364398369017608442985610675983452206352560295338826784952955343900692686049611308087203770511840606140263774199256446496561006040444279034857816631050681310978313229825422584155112313153064252283221426593931525629672539658714615639461881106958168837884682272743156983562511743536160065428342163692310537681845723875803435083286747002141281287530307313111170548933134991860426679439725039413408231241298042270063356956107255078407833217149726338689556916842160153025076858037695240420228326045768051555391880116179764255937798563878262253960002799497428828456201347390947348841786044572124512394224778151365521834412244549391240216872017753968124777423776860590643480969537741290041066300675129369105596206129273622957611037639041152407760883672812625305627543562058990212733713012457047670841551669802469713360434334817807779605814729577750771457687292199104774737438459149242572046324113635586182964397225530882837616548908560471280978124778823218104598147303486152192691688389906579397502028035218045977568220255782849727775822659685043077855896629909732120051277589328453437601396717615950418870706694396367880823669445684666775482192182308301591084030023463894802733485339052190800502266198951136259967930259064698344934214540237494609274883281838901556744148909213197116892441804016757030381353099878557003599026344399374532785228016479357357678341507658510639271030291454094779505072229242949795887975323027403017300528484150460634318102524752781508964829264851382857891758991402651927575710113855988945384284798767248231168328767235235138091650012309093759391726091816209141492108970792382354441889256180330234683679042846313895785732551238848479860597325275581040603044084392233572449115883641863625134343110038147635707379587468184414228147244111338603145250454650621359983856432640825318170065809786948804635107639411323487444916099532692503531973434171750081811864423432904441843648281240932839574588535223749096394710774569979175003677784412228188505592592412830525109931502080940056491293440323041741381255982824265382453256839950624443473252711542203564815789146287947222672674214854860363351259075615872603470092235560473572620737889131381006825091746727073868726647799209469228465517050143313577256245501075518134665615668552894468557673223473925424545625024271941880993434162000926399900752467543423825906157349920118750014247923039529900850121777061258279582051563459497216704969801316403770464483850623069773629265520191869412332579413892800813508816262363371883097778538312603697987641606293567029578380714483423709656593136686569577747862107889401528363551444911472248523057995286080250363973281771297156278788453154175875979471045394043335044736186456351938330806743091974587408134799829726568551990124706663699580321755857741520393470007812187446452097758730874754388622119702725228742881127410074056257707463613319592245722949261586180849931583310612277513604183797564954104385544360448046014386401802333278130653092170926615134717961371675606413447152775672860918610325305671778191328587465833245087262543952928872320940947976072739662203492467431580801217427948565801699036836371074909557217158088602477486668889297570526194771902550938477335620149524075559633184747780669548788213146280884021303011967460425806121386522293452377729504508127329323595081045346889715550942321759828337542060320401069865297787177029824899162082030675583644777400751959669319443123092955081460436050276524212822477627438059753136258243059034482616443482759391137735966195359383585699170090430542265548746052955908187741914355634410966012754627043428158671152758873020455514137054202429191597850650737369337538884092648263773523281562354148447692440872241141103308808958490384015396654238633947864190878078586435262381901073023710423645866463353195140905693385190315406203641131818672813050124385239215435490024364853857456124269826813622345846464092245743397739095177893896967219702194551878991771447692488840421792246316673385857334714585291208494064182706312898705335573382081004403243835336548537354016340581640007202229065708765847556552238547087962655423222295560011195264455210636574331553341701413470736835830942001244671290119664548628092555385346676458905894834776221045242944836598244450793294615027657510576782699051503467383831990534955348967861177579219409246594723770351660213730180002438187747098594361844280910073853455106705674641859772193528547960743811592660051097348613331765936038193106725525521663242332467274903715363390759268099285846590675995383807909625791366022085316963316522333490349374326569451575919087785665204584963714273353560172749602637514298077289923313952022876008030178797038053432909311225041193049143441105106842735449043598638031033918224187413811886243067270059335333453449737701633041957770192320277702749188423267039785202794680406068071205295237470794236721958903063847080937431359026549030637934634715942073585789868875396418501180238444038099526557169706919187660360062337857346480821617325217075815263093707106970293377344934009329427300808316676516213999084824253532489076471242130688822240109365612285676586539938872258665196145799580307831110980613914656824743526152611399441880908723995205887551541052739916275246626652475707862288447261082230745664649169387919769144233291960255426698738385614134017412247938455732056613250728841687086307780040376396630284517996862232183338349157047937831202324365895711256820080504351522438428672556063159873851593987520515419236038781504463230647618689395796232245622510704886596260898718489183582764035152995250727064147857424521949911917035028438147414739899559418864080043676427982817515890509442791131635472767922171328757315069944816337987464686538363699562362675165830226554310224768551495694426187043664250389418800039915129255649443956785408060448239930099832475402903177831141541093997614248570932089000032840394422081856836912756818132400580017272159842414180611147385204474564349985817469285555070047894120392290256270997475554344655564584038276810632817951018307662280958183429088333008309736291073906431163343909443500068496966898328709935139856858155053704671163814516567305492598317908131569182655444312973474421262544645287072365598294191692092901173905912083298136123135096651080486881951962490937801639167359950256008717422408385929724267470484111642132996076428862620371212239520364669226006417390578009728323086592216142318600051536010162283509933478661885278372373592116239782838997002016260032297747942204408334723196261077782921363688646345462069726777412515655604217284841392891820259573935692054675083160944332244506072904080291598077820187479479627555752012525188644862167886218993326711292834959895173627211707759604849123996895596848187621738820035805621201032640000740116432228381986060890762786465009603211086280902861495532067938432863622457633410837349588250486918211444314383319140632853323123754628010931177282167122332625953595502649872787429462761182816093417423986464735565019624355985262984046064675046339369460634701830675558128513803553040401478746180392507435720208919031812475105276247293439718036854939070958388111770172873790388915093376887112822788866982390537143995620837633993599962212375070251405203873738556918034619166167318059495239293226909049772049428854403292235761657149950931280004218369635253607154453614190494461902404013401958492832346756496766972067135505313961175774516404200085553152484584599144878095810739988400267712284225354014744856277578836543448186128542403481811672959009355897026368617808825549975631889892242291409518476578778309224518758481908383817040225400865448534497512571490991510919034863947746818057852758932087241056722354170779489260689491858646125708337900284070479921105251439005847352761305421867380675262797538661675481280364108651240894688416164789943161500121851607187852592756636882390405765063751330474092649647558970025037106645896803793839610287631538188205995746627155724148969661897182119941110593660458282980327753142650653592038526069889109239664584877477547501715981336537521281203892979597846538940237106046822513877319105573017082082389734926465673447732544540136873093562034508348669568827083867584262288698340964613321365364495140249000373615105196588221106508059260677576487020851601181252019516077715494485630043170363693885415119800656517641711348779643868106042112278363531656709551214234125824914875288953546725646751098953569806361816472089255205715464062884257901738983009730898647533042385371284702619695240287621720039548716940136174350230293518529077497468010734532572755786721380105242094379819277821174530414850856512292748694883871333194618276915678011359052387563724428334144124248277576631056676281255505673829700126427280378556187883597918590597260964774525902170186530596893388920338434249854930967209617378962958004297247181955700539500254700777190503876409439939041535899885990009836882061472820245972586864307058940963477484997073091126945469065587719558377426894107555464434359007132837712323335306917812124473485940256093883872576528449446319231324407311691957694816004082122770325151064537908528041996278616662226618601317380431484909781447545367144542134359744901254965472296043193761763984488965838365041826358692960305411449992100551975074307565796908900795332849600209213735901306074050384995292948474443092156766769668536234284355452985381573717489351255210110416540326624231209362729108911326584123951655044446225329646468181816918284990490258865676578912728660117299831122894738739389468408389192289655825917626583676157153504637223964244138832594055073413213118698077939632023610668369121298690520354402976425061763003324095477500778656211607179262031240666477752732612681588449932679087888834344828062345022814653524650895715994712169349849346248489867300875312041797442878689590690765572677174337699383824810625554276930136381154146687257565520498225427406731475551883597467957161080131563022572344264919947120011292331330248863209694418537918964572136531495710797714398133518717358789064436335117243037032593280793341418325430854873179309002999430222498604006175292701001806485561253075868894693928528924528514075024001357091537774229082515429704534103080998977932294981163768900683813335535620512243003576961317176072572335493907565899560068920769532182839933105968459512527585612244739870140541574257697572543538317697949776609115395132563991622926435394783361443471405264466481169854379779669948789496215875735649128014935606866340792633674954976433925726767052363675094824928437434312441022392973239207689182925149753657993369286266434157955270481533435250584760916801897340452822335512543082576111948403590801027599089472652203458275663700154353516227788660033205460587577002963574122462594588945397370402392923442589265238856234664631884072769751129336732404240319250275807973405983326062358257497532547025587275471649040580922320671715737653148177032080218112069895401485828626828502530510331573827275842432136815781877437363133172689868936755241836053824530953209123099568964923352617797751917332364798955077906691091805814280316555396512200142647671732937542257627410721287027835832395383939999448146669531186932960670834369843802094675662061731702595586659761843469188920543132982847558316057143387067931273336564334458525152246340951931053832055670283823941195312550686968906711008293671090208219054469884764086574541947133371675159497766771010917288308357377282161002470471812546185557648236837789353661494295574078237977469062788906406914762243676847878449573353075232764886450698136193075566375846437672256865976808729743426197932883068202949879751323824021153047810363253141912469398425910586152282499327697555441832536344055279579165003544566430142604562808110475414517064368133245823440312610077154787335343973351772281105492441721614061269634079587194735152408133105814432674536419335032132153306727372247661695805445758162334080526671817401002389793799891116405238823834326660684731965636247794362526912815760322993833530503642191193477513617892724315265308554785373497843704280013178917768181643898616983471169293616917889029582757253261707844186927569796364754325953454622967576340951750074564778898038984332199442223352659373076649152753741750421528706963764815630849690993699898524368319550465060313203534122984133225356879820804803111862428181339807098740223542470758596673373883965822323099269494888389201534325199974714480416415010459097765273569407670744751957021330469836244973400555735745711474604561729458162265898092937273178433898098484037568312167636442311862911006702644927247316023039574284079392041507883691465399644704616662501330587902253434070298792085636358783184317766401223868766816922586912784906101188219792230338454565464034545843332720008812302769471467956344506008590211233616407331782235342674520832316849660067995754749904436188629091769023664147861267349047192674366754871542006066169080355243029697060013285776313518776949549053152339885179560906031193396393966816784190036655779637311179970379490341994009374182060816414096538939665514804628323042311691118485576668881019007252157750006367687122083587490155957945981871118151617698552155472292272244505107701033111926017696836962767312919045905727269257536966922162333451265185279728230267015264339655609959446875202410184477192528281049227827203573704054850448921976902732098129454095536659840795244642570983958309666661652597934524679008994762115686381382697860672917710835295926009969281344998300113911913464186826247022126287066001375780555316193277749335145210952710267915154313023260068133075620276200507955369004998816685762497804881543225310030435388157937223776707451162018534737413111277925187136717202224640766792697164319957065211340827069967120793018320683171897255346190222281400217275732425578325925166467036961785041564651942590658295733008105363991876638499934757338865343111803670299981290872793288310844525705134445843962586317219243178004391949858787679349670394379445902753310141964921746778316955505681795922728485187940775869891775480476795555854525285387251236433742472968690413621896643910151945724361059865297088115935930368216398406682389997042416470064673816090298058028932804234625651158498722618646072280362762868701648336273406013789133148899436748123233092703879175593257987537001883839794026112356908354928022769626749877845021477504604204565897916536838719180189884908326914510716587614212786192103074691985762481964463850401774954561880112239758287470267950856636038641134797638132771040178781991462373842267187903158046424520557709744305651186045177162408291106794719253974419432560571014422617471545456803737373106244842288402257165103548824366629259261403192223446929621017277260568635543453454014320057735506393357956354522779948594387566701471351823836379403077326716578654992457235498924633043711924293555717274027976582768417148004451429699820518923465832154245477045141723268606572095432665987547957274166926731903339297726202013439321333396394112786125035726845331105424857643426166789652495599928926298522540133161064734390946186222090540416143353681091639941862438595225286506099927217630032550194099913579503401477970452374123616257962891453647134379367883816890732398527189050585708825788184216662406981147058474218535615886040261511405745837318417762385132602150614144379201312472228438470513365822828251419047050421501772956301530032750165279494121943455102091144093816536621066880147720472206693136933678363108104356414761508327411750445844219476261832512613635130039419459497656338837950893936752782172915698959627163647052837016320211628797006319634105717673120114447874860081033053315939092164306205155648124931738404405091691610315592103565498077076374679106520575368714290637237233463023831586020091594218089110503626777218385169461470089769216446924900114683148408082396272954926616610239055639582733445620779588223317651474848916641122529270588869228241349433263480124920457370623417438003042300239160732637113245653863938929369932664796253689500002716200952551571108496265408655710084646580750192579353565833295794920771969978786071724546826660728393207379287209006559428577262024136342113454360992647017473388384024481681872198267622731375657397923557841582928280253020249653349426332177081171966237364312636910102872333385408357751803450642773519704735685119455161151539496579465153680526795878903337950700709549264293693893925504731156564589780822378806067035879400937144362880713590585274213390192609260407511609956220245631645243493051941575965911112772430134084345637359120386936855307348714892958408838866423722535000342760545380028356177666887769257769603137546404535945827316296300567606081471270430516669727668165708127961873117235656994273056192557215043772513257914987678666292961733864779980704575765640825203810329955803438441732337808081086674512645139323896572363237003533263508018726546418528466348510937690948239927466192840968726504027812984334318752206188715675399772174020771695282460558549974857483087008483315146285109686847258980622559822906995131164270859236676854570880438684617736250199095440586315212090042738413116762763146083181913185934722992584228409836207695604662948948350270319029966059764233870732928877420499302519117955074897107332094346604585644361508397295466000839099095443187493869015596797796444167536148615866298050896000634487901539965028374135851033682034430347402198324489983589157930827381506868427304068254735928639237560702464197889517431139747643547625725222928098503336676728236963369591710007173809794726960469222434782845873682234022595108832119969496061036881435972589995874345404993644701788111040682798810850357145298974925817823128381159032981924438557408397509343577540063863406749722692701054269457823744463989934870669749169773315487807836790760484520504020985900148504443170938721659534039787192161191773788376503881984844893368086682711764717086970840106970014282653429535851325302658334008928659569839953795860191786603142426203354228118015326026020715874945920692322301494198137063985796585556238722943541507684583256650100488604025259388774974720474397210265176924654048822065886142961497838157332148274834532898650096599134861176073562561608987554657648047341937650200591460020730621513032758049280984726387714014997967167130056690689469441690453232180441932076404099736659647350537484657469539069731044522704304087261665457642587754756261019432305573083073958503492270871864509606549372375234815957955168724388837525804968058488717813172612214486942305291911215957024986832135372711318499691038329874484680274726832229520031170619007433066882028389394467799765000555826514769055467341527484365285329101262161976175570492917101362361526355654455573558918074432515940496750733218964407793167659335241805942017751770512553146696326622682159918420352679380895664440547858105678358834347929783466933570873967575510064454363652032930280725230199599568993151940489806232671721405367088229605958678516334327503315677276351716975660740446778365160551470104132586520450117241742650847694646924062706298791485415502032525667988801421640441626789198193865480228524153871230318725431117773151383404832132813940534224443753596545622645215226106746540683746701857005394217931951581435227368886362021628881755047896524453953503100854594267632692296054273357856720744507266925034262956964729231379990919633578654055314093123602691675379732839616665450436913079881324936819599514076334344147137975514019893118798274584356354527880816775418992309921020729776619344613790600381151847924242693017965735826475870559957162340495713804198267177820743259095576914606091513622129185774860911953228464285692044514227801405049623942995343254302767953201961246333198260333520169006084731807189227390240233848804001730044991080027314438963049160076090447428130111512742723575342311323930569915005248519286972689555989635690701524484599642115724384790463144180680514413901159407505891226336752769313974673737836642720877337044931350262522623986759348895378021814928095695688054165114809390924624732765952641798235783332200606094246613361039277466405302344000055532322117161919308369151777185482626637830210581293952208438691668653128210747586499039411897249240080003158710793278123166285711366484836750307677651545479148367614922876914537511397822342358892026192095597327000649150305109206531506735100328178726144354029212949650236522682582604192030947053461947444823381442787366693513858345040274213769924895002741262012337937867391988963448215673903365070332879822376877192308561443579558823835872091532150173442881720148859926295483468692203124334885480238153777450191982644626726512160437461656988601073188185152565222286687293324017228798009210371287436872120927488800027824535354292544882440906564552705338754521536201865999514526734308877634558323192464174305780347935062746050316618306530009294555504399673787997510640824735904528861389870990766060932130698940625081507664634751783354676025128185128840206252996395024387449852336514950436837981393122033624672061656972166104318117731701831983188543911091986836724020415285461945299521963879044013458216975297615610448132312524509831533693142225186087134135722158087937233846527939644053327270656904839611387054161013109987586620633340727289147776723772241194256043925709481558856139090064528218956837494263765510311293093120492498874322543448170006565178835809003845211191121686729685784324580937374860840110615895538357535750442406903814474183107221117771568992114395928474145720701061452999138587980414478937947246549171154488011424505928409471014152764689094151987182563564587950015468994505894594277745889198879302530846438606463317633306285743080170458558434302181333277764967489009977291820752371346553843017847378819146357490124387689795251860185906609203371386869387274129591472079867240647115070375693370584535472282668332012094419684386359985777857321197276707810086471996511628857750414874627783566615727929800585232998729630997193391811273661848847085785220746845141885835661965755704386953796465921267578217068230659639331799125226509418949149237353068445666391072007433099517912557606778441915137094755614413033570992089217928684306316248208477801699679173168603015623563539284932586671371504903939369058455693764460237216615799864081448246771061015400288412134909144034576833420944626111937225908715871020458842731633258146573889490555022051907904897679339324603320228882794729311354204135310246899067135406154177303581550161541976201140828270307216826670331672986285568253919309764821352794317925157419595297633680864876373990779734833612048698516690509065725224613434603908865824406997871448936284602594508399100438513446435709532133821994407096204243543290384733403617669301315351246956521478422271395961409516723929409698579129128670948772366798295932989216088742051788589960433629517055581274637104783924372011229893867003696467075049242841017039107375981562937653726081509907904596311296437043932968371379883764231934609047863532540209104185649972627285537642546545166996550136014833729891079313337067331270541274429365064572784709100926871899948624593687974478163582364964374589714069692630867806136677764386730036399878143199369786003884927954829951681773705188439214577988720396324353432028876816071038543418178090707323028237241471231091443703966913756660893559263378858988642924701741827618567667175044685524849507527621982778488448720728497311139406504782832558262923112843756922433416483323866264758589345233191572278868360049956163383437040939430570691254077256459117052482305274738145680718067692969474746234582053764553119021894543710773697998958796759308092593983621320194287299469204230463156173946214004534345663972710048717763297297990975620761519978872929554541171248386390138097393212919812046277932913123314162772629708259520032978086165263533814470643596093400219782949017432347963043302320853449606799837592109779798717032479316141119257857690717459446120972454119922552887534572387935454323435101422042372757043401547144836104842441449691976262278202340442411998757681547560736510860231511064844602081212481967753922082700222258834662999252830147615087447559838504504465305132306312936299541615756232363563923235393902214827487643927426261516707529627563559537317524558951681853775577310841060858931327189665584693655943030388877906643792780247925272910844878161701053541660807183012687169419615987813609160264935422017632893159676094113928629715689726878357518797868061228078310267342389669100319994401390883213382757645548342386157338039141178845941230790939269481600083598009304085946267798085176323756445826002899317696897336215960301252625954926287405972452482016217848881924281283948513781604580076093559547709371896428101956608207979624969242523643282865120327540111559003805550808018403215931478628339571799148623979920668169854000884691466688681225580257640667795506927233220578573340937214567424590924262282616694050500402323322739149131696741707902694950672145983098135588832828494867573870835695217034109361160441184014237481024400881887634147749055197705195567945411144311773869738858724155604125147870089935978644110783854827823340657335815991952995705181474148361775298060152258781887959633798097893971093355671862626360041809713067629923456481985635112770992922888792586756641242098590568189974493563415526190007643973923497513256090537864194132504804310577694521571632436845881783999778052634677919639005502657067872129857427066514405327940080586134611526770091557050862124658297285253881218432642097830518868477841449992172204973622996462051692276214642336794172397087036077547478062555734511651319339952620809308398934967187475853727492319243627095006645806557346236616752219934353958950382120626694880176946135863764152144635035785642356825174649574230694995367619180975474857346133097699966172500356291199971521724227970336431851502570268949827939194793312496663014627664423789027985336204519715761075351686148716327741804300568915518485946415223149755945797255923096706450935389449402666744428815899116010824603876447770969045496852544988329578369688322970539125956941063010335116226345688480561837894706080630568199876508933178160232661555277191312461587551010073316183450641065056655821814372744102817260914592987702110237751455173466940278614400655620172000477843051081074974763681201127463147207041136342875486673983424291323743481666584909548896346836378820895090496619031838115117445380193215001428465578382306208494778518308566468883963862590463541783229399103851183913802437737362560078177073394663941155971866577125741094277289158940300210933402972451588091435750373233136922507945608398248088441301343542000376374349020029121738506166378368382144786937024565937986516163361768370133959073312442612997960305879477227269033591217277650425697116889990961968088348446639294033614468599170678347574702785563485776945329102999888661111608580284634513608394596631724764468087582061823877385102208070621841535081559871872295799481757137410918593428397357853284687833492590271627620094756415179626305632734718761109533037095202516927191683351998913052141973061735204574632110517405934655107723009480468307413688345084390203482260708491315132303541598554462462225372497206851344589337912537746370232059184168277810992881811733242919007064410599495774386022911669176655811419702244164864493558333629971891687775252392798247378110352632913685399655662043069181538952512566337130204521890260894418923271393842293525017289442253737594926217202539410816563123720786328183837917146881131683846448591845398673830925280569296081339430053182547747067507974554245357040707047147734086201537941656479550167058177306740399049261907677346478146448224885033920049989280290935108883631823792803383819779596081891340572476805145094570629948733981294526681441825002598685584824376731039760991101519509597377396274580280896537863671288580925604393079618303637178850031262098760874512379352910046554084043012781221935954133503794670603570645409433291232382473302783162862322306368274441475660403896054540692406082604552434640168576731834048265590331868725629185571571954115390771609275990907084392736400219997304233560193469989899849116011489462617158542301985608874556534554262107950605537236447539841927483470426659069726292008620839171675212135914593668182206197187811723976026098900074116606065870352397091924606579638962246972271248314266496145837729517275701602849945815693441102128887032099790312471881006110862466127035956067786088120189592125188803967728471829615715856212129460887523678512550179293262985740763862903074481115365974230802925441484679849467088369498859797553685621238323786821147541620361354351820915917233772456249238720912095981279292793792636226412433342781900559755806277766000443393837452606992689467501240439463460382435370460362840606005722273918880692555205096541172905401546884987102268370366991807279217530919598064713365288618135079863949573482206358178496019569173318465563972154259640140870658115876557727387193250984564925915973479028305240285915344094017056489715442889249250808546449594226516062127426783937792977559592099747534607553892748311216208321473001506142484362110556877887592176202309181540988596326041627898727057921672171148862669967943002877240403364572181076644526392810734625326177611322082355900357222814301516091527463004268263379222305024262478419124139642911714775496147800413830247964773190656014229200502995731858335150631321047079672746416508596458725216401702945079340617927594687993874950658941526430625917893943757090284358672281733404973363891657030767307033119981020369067673148837300412748397699299386415638255828395583456946888270526346908168020785099154297478353065721660174986190737505118485640973398367874022308615906872596251470352991390949153976450678235630437337538392724866545921209212700873978767968972364663709233461294722815389636475850766685175501871994561838558975268698948339627356412767359241340767686858808620669223627640932836591339134292285553367352482570713395624122941568526768413047926153947654375355139003527348961320736992785839657030484605904641571084398511314889991421335713650234916914993671865359172005639001763189200630966206959237506384487392808048435705665895643720190321661997542822358826769220929135541382634591610595450236444673448647241963427127559091059234655406468500692087314951532913473895836780194627033155976696597512250950739652238032256270258104267448204566793010158759550262567083692389205359307686352710541360371843202207301286811870909226008612775743630687599177556459721351586908396387341393873623517143604194841552457468629651913564450501535960348177158753955811338392618436180594098392953930915487272132293405028134440475657269546760298338471486299012194282993080232576831516934110004151657228100784041207877400546487734786478839222773471568252769231114509762557707863503232037620396157937620283764637232508373982595785387080149730531965753508648683902974275032042531595633734298143390720778226667064088999959688922034902334783577013295795551688808778440010758847520266381008313425882792896509657807097089884618631266647200157001619869794845752079395590605890837721330344932440679342634454729502516546124088068489473191307912570928445728074244464198057824534188413125502902459423185325322215946676443668076016113524462980362353880968186812784713880661387055809841963825678757442111135349625762836152819487626990442781413800661408842980069271254887124980423660908731605496638539018564920576630948067219021185700330964291989035522483631919274363351162649150447169881855964514893266814721075054437017255200796324066244714972184655833858869738649127705336278441980821960867137149033723469108044559827579010190226983293737766028461296388415176415101226407229938369441060792180352645119176856886273852408064113835495012370799041460919761965234736867332538064726061711351831707285405437171286736343706991283753778519358579221741817494542506326902688075281215103799940919604249907443541108523311649106473039114237378224609647201294334033588441195193841782383321398411456345193238314474327595809002297591599686211204699265468499147109583610697475781231085892482717927133397457627972027720615818035023284322563246863858960957715243069260569998013621167986910008404742758797569645764938043977847558858138276528354890651955387633319680137769470869732003998110397816275448249302233868736499702492695318571473547531479728243354881815961875341068024170691565102789671584959485961240105229537371703990597273509331202818373440799410814856813861229869791571450824506616108747679733520666175127097152318448571740665443777512270911361744179505041538486954620703703719642405165076133950311096877201119804819893965219369270726967392000285318179744887380295997407117169687966089685570997930994587063353064195258850500600943747429662302926528017727991576179002295834331526046678935710659075070217220004589069377675737822690972776480740694128251820682563328601166377658406003651865317600249544688171298773501472054331637106411734317109482024359611057695619334894439435561599397476340707983932270103771298404831471521181093727659292433538218793819290335227953482648699419193458451677248922415924444652988912919510333531553413684763083435830603507088513286335715926233344758959616521577899621335618835537767809210887748162321225990113959445459144233976744269009426101376743913362361606604981557755162697311894310074119301739776281630620418400075754336693392515839201328929022946182862635305098408795819280751866776215100185008911712545924348309676842649556929579246884074948985415733703742352533789793933427433569187010408485776366039371869615049818883708432366091962171577176690334366436644455469387298788006471599694080292301297107987650758584894156678558524855480206854942457908365211595490165036273981141479993170188394597746228935360419492758102024564504075041183398826619793376431710744579892187006440069807759478655391262826466637199135197636545984953897124176754222537689726473675745046352081721120169729191459966915443834007568531975921093465566846608751121907458246248471180220988743716603607288241131133373044288062462686224615668434712356825700874034290876908802864295004752498569782354135008450304070061647804098260486586892341908043388817612084216874108570104870592643242723895577830426479130306596735908813048965160097677049487757881335222432386220173200632535299643823384580934824487318102727626644831994604536694049411334571336753650320582983482346222717850767030871536034178149868299957230405288067828687911397616438179639735041020381883968958106527953011102438383666922937016522839552733372999864783509372710068086367064086605478304742086458571784085996476909257054060419257119234557728931645208938382730340938478721828777822919378497822581566811506573893250500132693203485923003064032349955867699524620683548800544271052198722079689427214758554236969459451917013968356748615440363515216586630295197010057399627212900925281298205479509224178720687990273174524458601205148782419057499127412399723903594299224108311894812770458184429818537182091273939901355070204467251920119569684854095629641291513539662246368755314351157741895590429538802341453309483782820737890276408307103001016317893957822921484333578426143886546596478513353613399950265199919911348516461270338136518754106350425520229495705831978858645942014421867624543153853201480999404546129876587527643666905276396728620052321173311431117250279299570530713444593292016730523447178194580925204152637685653438357955563765546070570738188758349476837065511982997711408018798911892912123978521822831585619129817716233283185001898395915690164508712093630356657979789121519760752167688086358962511820486865203909318147353047542979031102943513609277634846333968465412101737604389097481110707968099708539373450162546604049762802540525145128941231173985366932738461217774713364889771494381840360140960985692111093692933846810996096274032125168964081297327128439887115619511358165914879355205905469456886655278624992246787374349222704244049535862222347161746159431977195052892034699337842543809251594761285844573341255036386159041168302434721229080583676093308174307274449792599233692513534620515960485046273213175680472246932576876703200940559047966458995476344460983585168144474144659940311403217564723148920099220919694183264842214426766024590176207028718696672212592253774943085170998307290303105063940442258176900231638636199631888415552128000122390437704800806022913552367953903391248945934523303556071610596895841392297497286073454561887732104670217308728102804166361493686884138122451707715738558253189993844724024131775240989878708923391080830802946002842421338979514765441364963458755329659327445113788148070834376235254598403869281305758813078787603896548016504202608490821243068652963660047499726019597615620704556885606630007059250548936162579569344657032826356809063794823009929534241919803883500048599193666138260448474737544667834780686320973948373538704691014930084271544873244892615857230416540226795382715451478185863498186976280370127679333710347103043970160460073288506324154923784154033601837405819501957568696270138155793694432907030068054445618991548956038189439432497650481014009893956820402723315779400312249719626791263964948221711285941597812845306380105151984267029741081436943736486764856522014070895327731134914543671415159020582560781767141363573628521358230097990853560864250553755699663774566156505709627417343879163488365691154450529209292960141396676452134336538700656342734209490966265507862370539570285442257089733792324475955392738256166602530542410444485310327161954029935686111006945228280749532118604817281431086690995844842618586200633394126667071162735015591479300802476348306042670757606245556962775570445193298821532189204029328267878437003277468104532298099027609239761827730762832012681129762575458688657884107948585647369096462331028204605049109734468542453124355442619029704582054961414522711198538090068600166874122697114311759089996191378203345864555224459622745650951165457110785465025457700725984237464610173955231321606596843392358998457371404104362352936886157431382399262183492928920859355233539158080853102726655411443106156864662859701057207760381805889290236346440750819572211808198107625825120455235506003731208796956398626869787466069099951730077081827709163476340029333842890859802239513146725921005094600484975461830767459312669138184478275081438870824283101163687254353480837480800586273786931098265119013597025958061342156771391588597602345264602383181486840206005222392035047421803690950033239023716224117822352403573828966665645285509633775105120345561508319846311289505241720078701926687771014486503297202347429236493502547587375016831277404327157943854705197351226099374081249433382612685111516907368578562899577394632915209961365172226817829491352959024447361530771139211465652947143045188378711691556908787612941560873127369371639407400521504514026657083222612471884439775597297213517411595279484433871265647832856293624771933028149388309701726059842687293389347470462662355868638144537114274997929877670792615482168515958279411070351580575981447746405293097409098680615471207811104010362689962657814942634405153828327996242036884644362563005881244907187995602779137887687600294448693943825946244781811604700765412572405715963060738928891887300109747204468275599874091660558457948751103409444674443820363939963398012836645343871223096072746966197162338089300371699200292237495278344423397255943273068907653692474183841193321594669354632717246235004897733097230277341954475399899630486723550315287143173604435673571667618110392291753520180988656151815124652086027030034458686495093308904947370429291062085936228132763879618296335557744702896194257229907774096316712594308256441417928128555314096726679425523436719908218528130462493886154507894345899498841850272627388588661559369828076434828118360298706477755455959129464643372390682326204271666885993470478012944528351045904912369584694177984669906508911578533645089741621582270920036666864268445036444409280647800237488385522117937315376155203010481006510655053245701228356393720018867053761073062922081783024737638262232634200556611938583760944538979396527094522115770453584336065615625053950461246407576140960102198824290993867495396287094208857152253584626758412818837846775712656319972149725300671011514063987290971850794732926337191633362224056435217976720388915807090043426012552886237052091741727199139978412774895550627858913101505194872005888793114678051686781110580294382218038508489794184577257501841655742224836242072691836604336000135052835618580812778594985852351888801494841033376964134295175724944151783681963126675945340326811014369594329978511315247611871197198822634794011914035002621633349189340021634063930727236284586447801695362812911533615602426188260419010330843157851843569028651074427109941501031039007789975344616654078735052465202765892203090194263009143427181260595910774684270273515646673063541168502205873173928383214444166433295948321231014614348156725083282785375908927295608379870644022823467037543791942504260146823880448278453416431227438082169064684680439136234684215352697391787310245733089814936905695832832156962828617587173352965250544585115039005890752407861887927799955953758660113973878099125089458059519546213391943357997142146173170321652529018379612539830996186340474695230324443579246247782507231499335005562035090923604376419892873454619938359767950582514384184441418506577271834721387035144264283330118593615433738861982336965401227980419110550630139136643889409575380977280548411535994674161553311215212169318719207472280432621187079034639210241825438271438095303415320034545843798669759801325874743874155863000916192471650768099763981030761440808202712520885320688909770619249883337899596860278201190014302279091161364054456416248555175589989854265437757642208829778368057871100681169206767395368966469240765113428302173539618095323681596476468457086552113453150637442097136671014970841018675671368477103479030415989738885740459729100043307137377238183287744483430420131104940203368220698788369516606788728385242525895737127863796913011205686486996422427653632935278349929396760262418307688296613447553769181034873768995144103102506488525999202159921422780549371036103427847838215438142891777756110066722928700549854513765839304089496059607063008674140874459692385152665266073060741796800650806434553760975230284425793670861054757902033719161063266684228447764696257421847761689679034803195662970443534645276252255355279732447634647671205249235314500252666511467145843085898864853176074120794524401725548920452840486504966562810203738591562090742684943999915104127938159212647530136134716458677830365465770819794650083483711826485861568517107506846611771112000128552455413624847527496788083651533298949563427831049537522207505067198202468562702420202203653701566971017778608994864790236276885184126259759730037659561358923787115650261679385269794442128527692606072323797116246925250921709431388892797699825657636945848285938022726916941793924209905908532468986052219694178664301618725351968590403541606056486330370529853158214453097812931874884591567421080611623604298618527235825291676776491667395914659366098005585438264207729927060791367511126912414242061926287233944079275712203607840129672442664025670562294764499044488494719568377329223379906016798073217801088752114085457814722190247790017144106585332805191762189034783303745148498528961805799481208243895055472216910495256775106566451722021598615743267257710899207922622244587734071277647285377684543059649744894715782034746587798856339184012766366881446259973437889624047065134913433114352305736746492168415978641043361859205071697155258197469157158194864954121690730499825427409622956043592593136691465534306895314720086056562074581181886114018678762199102093465819550918462900534871925672141058846154053261809851761712255009489313968150804093222170647719646993034975086050418784537080701463352923151813876120646014522086892036609900574545632200064954516351335149271582896226461102631481268477498232629025575663384852698700013311950001783574983341616944913578681081857058208693246399094780124287573056725127672060168280143136103421497649646360977603647306489576237339626918865529179313008273132046219462636232486664969382431004904240018754172065088989930596482186639060925999199962340236489192523311716913913460629412339989540277789766662052203571419794411216612923999220628721911288992942888611340137666149995392230333605915532899333091974482728241043959075717583849940531091107870580491920118787317312059801336828263686764655773190359916084251374830436482927016034470285532032936882219625848948810906798385640674706171801075444345041081486148709233651021420584365887679493873815726860184466613078731963210809257747972457135972797898145848756643727903943169350740709706162849103510607625860297577524051862092628118668364457986104337147515978364997152029607673475340174923151452440096452406667202788448503076576447533174894244217788594599069329876281752839372432953799838350233515231328555183633680827763484908750296146695641691296522650543314495618664930521927495968658628772780415779147955369263311955102910252788511191150325932327335925015008353925207524388531322529080019930610156167361897251884136539380125428932805227733476159960665943030004746359909934952135623691664460183051254651056692697790132765428403904253066715308136237843757929439585997523445130805844406203327401721794148177948423933929180313710075152752673078678220381862595393027180992699583014930137656477899064534181989683077961469920062545158374789910153673844068825931393491979078505944577189820809210248599978222790440881438817902849891956313397633200873417650604761862126187842378379506857877187937485321514025713523305049371407622929547865685245124177075437216878064863120067984922652315254198687901868226740117329004491808795597179648894453400385942930687599713161050013784584588362121525608237156146976191564707375363007703992163053751542480534169371599545412008664007220825130985171769083600513536335172855107537060340763056714406605299918194448316425086878355034864732951472945189425586069679563628469265121690598796430864169905473223884587964568842083927039607639724007522528533865162957649837734560795458613889703230524229040689055503032565541380671068132749646699777082975689416068992343997114524780628414793857012525507993145775572833915825241069549562410939896091816033915439493155295898376103249160788197802521035874774067264233705698821892397273229467799894574105440035640717234023050359786670550563257509955913579888638072631757126615573277993390092861397961793849720537585845928937796645550863203677569645888175148652830697734847922745658366505993231081707022920804901607890637572869862250129242854852374557725877981193563580573311541226675452999613550141329159174761767808976921671918342260680054365137010022144222086810277101977525203304049205095951444781380688065494364759180763412729013376243083693376877969942287016060731337979746607539924094968686765874140001070295937273575509457459338907679830472642010000440031331668168038896454964765249917531907988776595399015323145062438704729307751315824960109153701002941748316591787761145250043079674687640258357295293770782944199221882393437379584038935742522563530532234380763180862397723924478924205929523245185779075986432768540085820032262946088335427641707563796779912037159294657180065659744127455601123215486292548771806916522170545773205136286760681423157077733161745836211047139718623271362771063926096187750328374748440017965354961388665466308927537130026046623632155293231290709290580625676285901697866070212063202923926869111537079271186622134083348712370892884257671771459967503233461223005154982951090976993416748728290980298757902601692131886103241628773610381873520050810984676829959902455984664651745875187228490456722555484251390051817685805670732269194552032488364794327484677591025888149868345305101364924871299123098467877968328240842182333785244256792694350557304486506517462994070324221958957118072109171886034329134293553124155801050509666513045656721790689356554315517363368222832309270307692013568857179193489624529891059316364639330395580011726018407730581379710862232555082542879205018540821408046020870384462808017387040999370793330987629528106410440648846436060828572896996259652100445937873075941061819204308744646257502869019983896147275427116980784383940553012078107999591678164386768399010226406565698473578151717191530648862813377237970493484441510787456930774826238593245121747823056200023117582575852648691594867448371749557217801166508201867800830816774569896239408763222339353937000336758545148764279367679792877130620864212852011344188995325935931178637632587576902085843393781778496208473859965068092345973758707812964555809272545476581087505761461990549850343712950002325729777945543307143421571021129717707558331429965262627303673608060322619726708147744814248650201595886586176925842927248154215124278333782626114696557059470004962430896390522859719942399311556996083359366436098783605944561258229338598087850832593500452646377546800170306832137161991023765508361586775348907038063965288405990938364102095322277963869063337457430436083019571920585048946135025079981281588609458725333971783245632178683705498886374562528770287285595773263321019301099214872940365345721113251335473519185707972795301424453088852877579638704535345587231400796177199964708895851858145623773761303734892539226795551185366470875938510102233942501113157988222907388021038537236458363518908152760375034820427548851800502475554414393301458688633883794517746642180237229312427106320489270964044826105945012469137028711146063657583073176159619280441170170684690203073484191086997266130829242558800709713294190498232878030150200770660717289976663858581221022363860222495315968761126586280986409487533257322206198694239939594847940531363029169160031496860211143169244754725903437152038658095374082122739515848671065049238188074996904759401798671281272534663243629691929908142993427633457286361447947112803635635216981093966110473374917059194809986726271561603742693817245222280654084306682771373648141482578680723982467167231467215589189153456924411048566900450722829069020586275536990797899976655065017656395754231451987944777067763369041882625594327034287133420441822515798923247160994667641982058698553296232091798363021427313917482895236866529990031869669666707020704862997808588233873451392521741344179864064199135386272666603281181916165111051693605102309888649993702126804511192601267348261243463217588660307577982995156619496741492500604985044743141240398964822014935353550503906505250302010320887175089856103123262071454589972715407771442060597232798210127910086724928187825972087194802083631701231507410164894156495647333455105293310914293900238966841507457784848716927364476879355767701715368379465421410244338744531942546796148815907149570780810744675774189986673191637413297985837339552575157404436092517269446429460754996188793255196852380338703607764399203085665970840569003764192344436283416829336984148613579220687533744539811387112560384361356939697061607366269504953038926863307212783405458875601464622715759217307257648371455464393504019524644371079457433594443743544282409581791787096210662363788476140533922139888864739138538133023351423867520981314185899751579647357431749410243956405126243416445811863136028109136599915664722378686166820581472532676889557114049358676453390057786985787634150142187669643450528469571916872712347850558701132428646485084665551841379684246006389492798446078749644072740002952146763701072759947072573740052495691695848476795493990301656096355310722870075286885719506475489155588982781138612081819913823358541904908080738929618728193351698901223185986681956322298314390528152384790124330759991444180745323179809116444983929033033419286508292506139509520056593709001689520111344941371207376496404736076451101931626659696775105887639828442647382362022302653839821930873471017791668074923323980531192194456796877128570639369973757840893399847665731924392626336181656328587687446714975368974233076801207785997705764847058770230776032273589667399505197845720374471270739701231592659424120670861272129237086394936775869840152483584522005741910834174397531751595600707778547744591625214896322061844934678900636031093321388286038259396079322220224263578312405225917856616135654127895647509122631675895421857227207357349755345312918149316248576126238542724996214496336839961339703985994209301763577618358477045183500660687325222671274138633820289960729870680393248386227398476553426593387534088489022114543448577782777015585484114378872029768047521578834316757604241667084520140909495413715562431503889233587707434551924881975933053258649832653484589373384125157737403195736197961497000858350143914199373538402596579599543758011789301754358257012112665039600128387525647743518523437172543641975132268709613509087530014326163713876817901611837693045610300204104896438825483863957351817723646971656256864979340797368713229587376052145683741647515911076553347677886238524539379027982974367236338019030780958513526820548013007667574085595961454232715992098248104253226219933624707084906883014102098664547696201735278235542156364000250806072896923810194618901713941156160549843822958203252000568354555716147119684312271182695565527011318226553312846307372162757681889370767886989674660314985772163279043958198503352699266730627224743463342520851111105182034579652735329527546282425386957367581981860461903434051720452247104630672548872174383439302999575167651400554585237932766180139509234775772748163167325196166582059210366591530155796291702685478738515013167637130147443526658276674523272580755743653371893385589822536080793338977554694268450496574611267070900673594069662104986179117390218951277406795062132775019312984144880229075088676901623751001499737555966212170093278438938776261878112303462821466094476224273767737052416190227252107326788096687233621504285764923723530800499978721822042778815445655877849361811491655479468175683402165483463891223590089004887217468767135975267872138455243538182561371560494009817739500286035659734303242561368473822724859695218570424905211736136958498662284705838407847480249028336204809682267324270406455670527585452077719106211167268689645786197670890863475089616062104932578912854284332463313614946877091831607691469410144871152560860420248116048227136173690304120481112729190091374722035421728637134680752995895847987585627185561634229894725782858340574056324443109826761587660314980017505767053031718155747813291531352322407504160309733910827078009640540850137702174036852601167892324029440789725289975149937023746489558723416020422042199824452179837447997512214304863665044123050963800379414122821470832811915652350745900284486530040417907256720163744753642762127587407751896767522073248664600543936643090357032596701047201205504896793554434002510922244662145914320200096106584393655493475383544401723042066273963039401234962054182911302107587780344361024099115718318039892069377613520584068951727737114198144187676514442380199787110892001405742416153249389958831697489316477194761609675661697705727589891370787695770388940776013571479794855727467838797017095148574117399424792833985554384642113286085149636288981856431245592306240230074329544783388087756880200925526606229518102359537878244294272158367056331258387863717549915992262948869613703314136237138231185143760134840765242836986936683006100461876622612726184565572531835674115149347597908686243573333319628397121461011483886885214901485317570030786257302995633771851491522684074167366676391015001717333241064691091678740604810904968910520866089546733365927920276562827821168487433909378112715808523254171372633448633849942905228950399049204517414951749863911798731969744990874325577902977307493605804565636604874811507828530926773021690036830652662481990204662726090075732588444531037992223938552873604115672981517831287807166574006122371430910506989470856577191445503895935691227402228377703784591586053515409922907649964391583737369032636381326538253090431596784234057082532461156114542769522408300983533442930550830504916215877814592467654775126533306921689496057220088417786782904648355391280317782554955109626426575152495767997124714230953164876126562480840462647682182772867125833027864686872471682559198208943971350867514365411421517241058188446574542758684201137754113563567354611956902016194359446143413439601155550025943574032100779314252089460273701986243948963872573284499936799307468100682313269255684399102411132171530961099827735292355223505825251211113757408028249948638459806447049371346338709133470056999076416017401941714134376285466314611919250500697586575593608316333089270804926791389431142139137287901034515975432758886458702120796308760179922833281589357489449783379542695563916734796419030739764710742344472191880897682701485163199914927943375883367359668244221752868145081150702443997300334132435016703766680635637251759116471067467120146019807343016406688140879133926573548248558391607480941496986659937089213401057757402546711658289717569946252724811003238345817774758993495626730635994271638181061926413116054468432649099675989203092108667204800732789452043377699740005496135516824926241492911463720463130916076947076825772448315445701471528399364222238770336829878097012135216814992561561127495753076000120668464793322499430719721235118656725756077711533549673147146821495518616661719095281552032928760242547862021701497665335589950746052067671943582817002163998588704263852760873030654298359793790785800745000790910003231512637038451288565018973695093977926891841387911512535864158150625150734277241845441880193660167569322465061921617374267674304015788234783519769156758677441018447946839084510446820141450901911071455227977135470432044051949939053085892873158223955573855317138296770699606827909340951402262675747870120159686403239313979060236788718369790467022889081712440866919901246399800054013856875201625334752641953826688361001851297997593098576585587862744245797114713720554371477845738455095565797600091452708485049352509561440263668009606466834608576978004610407212458903650576454358885915345573723009060803759432979142886424457459378167657588788985966950553547878863040149642641623902078539588782761516844284608920171539744149860951050854000225422296381617511385262742345500119117337064656234399557833109909797790191834203232734937748019105067643156335864472587465418752531916436147077936886344517944548495542676190092944254519777665252243020156946452850381545756237108856958814925173381002111847699373887694787589962589911420146980154870046236420426137416962903628002908561289359233222120314163792101424324991473555373784687879751072890047426507536965229678628813852732713437489140205400658730869886406941154070797299596138348882428611483055927657649687230829220239827691993259850431375615668383130352878550447774129930635416942621300374156931086606696922110256655287218470539322959161559950647635274406147946750399226234172890923078559394712579577972502689900127710936028389733121001039285939482880119881158754334615317110371428099697868817698667883827974549311075896978628891907055045800989082029120351703628633158172584649908553268519842951442459822949617230617287595650151963653024106458469146159137772390809012587153144885849841593915270802894285633010851631460280231886060762147107685094931955303987639823922542846329182585399621310673163163903403060419339668249482587147315288232187369225200892676708553452751387201514610693179227193772026694417404474622356306048151739403142928105167628829932332775203574063769926758511487344317758940811959165291080152370210509430597005835289334434087978429107746636303693362670688598868218915249170886486083755595925028617163915272943441815145829845257219784823988338022042545252554026661056616806954771375538976235924788605833056041938771475841869810992372563729249054408673674830981799464109594966672925330379487686402570681433365285061156096554082466231283758654583057927161408589170811896438230646803300176189652798455566374294398924262296840628751270118008451696983346184057172090681832386206365767613472953668190933287561766714372566607470189815277217266412947188686828966708008459366793608283419389257508886575578992824126455588786703177056402752762666598130774556454882423733234118449748893549694201257514591119517828789163848250014726149937453725481309690995029687377291033495715413560033778908751748310014585903810458937076541983541794582919460478530092074633937112188458863426991281429798042051422120766009803962146558247294991758688798859715909467635147198053792540123908546961174111514098178933978582385225951178150717894933140640386066469407557937686462865122782836936797156461785954592464500488501964363084292557687225426780103648629834420935358617910168607457346665091178033374034078716740666235592491876924724869324249787799778473115010502182754069178408837177825527314806267069181206057846576902985675930364046371288562004081429086461307247744374876670582814568439152836382540350905360871793705577787030382448656381664819930332060760088516215392239229733899477959785010824998779758272238458786351276660200076638553823197785974579714834628311946784313251960793106903862311865454473272985033482341597811375322324313982400645468040110165387348518958869931946663660788519200939289810656714780984105039139810798133397420252797957536623587939002888726323674465091678309983012684407830450079659914714971547204190097342249319001578770033051110579263949127619431391427554165202758125284838824428330361046292782927890771761873553265679089367898808505774933474670080646869123562283919100570288383084164081473358220048004535929705250741502958992536840724086072900216259844770605354385879981264651188039433547757500660134296961039493967832629275075782016038004750440768261240824286905125195998500774471563928267067130624615581697430163932808588805126559039165189776012538396867029002569873481630409297437050042035686565643354716978865250965951915180057466770946152439505491477887616814175856243849810846553352667537942761433626509457823597378700525376628737877347716383616323014440719788032437590966613792555354562174649732312032864168569185103255616215972670945967353865174770865112473606747719124931540220828060768617940338433373023160137611590472871661743178159015121326364805726317242647977068612756364263904179661338542156338658117363803126572481339506283237754514910605260458464655017884317945113091533327473898451746173283161247139785245709364446608498505719890759496598975057664710925025758152841529867776002521591920058486891394279923691629352838464551758414708323916236548840122780771539217740090729671112362532931195249744687369309959481562194714996407667594409882930224159696650674499539210743889322929352545795409507053363412078006674014933692738199469761816728844397794083509247925511990787840665110597699325176916960374822656651197589568684361169575347584362252996217339463755011588062906121476546454903903822871550465947182348369495377427876637072993930707292215689441644458798741489665422124057969186184347594597661619159572491331958808246841423497889478404329595043814189223228864485264245217293778732817039486559129995385684933919156190951739914770714906284156615378231422552393364021250365503354197846121406113675584690372454666865912389921594013596327870980475587462967434179635588897866346698520503418800123756445342813910645567770167155642924547535282928455931622791610252502332044985352318608988318409427653648372196949106543856056128071766460026358554952302236724604470500336022022784500878301086688077554853092418651787502691174907981655112661776538176244207355774331419860303205703513748897784359709780450978594340394299484833624089942387742914947185667916456692446372122593570093736146496712882638953448984924652364107646685854507121865277125602783694865620535198818331787987025077419342460714669268160593886079812540835727759943437099477386832386142996544408791440206673812258001482375293687666793308965971429548328599983173812235707007922242307487033410683764968994196266593373024893608674471024103363828219146285674899038324102626787711543648502803267777604043100266271989091284936756835913860164166794857773021123332789491060828661668627230799335445303410438397231180151335351983648384532134944442806444746681401612888221710922717384254881066483240476700902429673474513221325010102486218885334565191014646951381959376610348947326822494070806624395058628100185341940342052707255868538120531636098307511743366178902920228000044079412518357246473032072318782302963118396718285379784387333096734532800924782334447946756536182341292931418322940749328397253796416557552380042203947946856931252344273161943447041317873424779816930976122647245152411388804207449497169220665463549060835774354759247088278465302760479699008766447581865997560817788605240394068148862793372704487857283154611378535799424221568464115890170800423044820317557210628248908231268799775646424544680917954538840017022101753057779847396563885757684221147870779102594386354055910979407229009939307665937290291687687178533234645744937474981020302203123700891406818426529910123644566904682810638728538513367412258975062369626955089884178738006146994314247187265522077928677942442098763024372766942292375159931352864212421909291998590316521517146286111460155868186871646342153235764451601263322849867515890345468228395099966343024566670281099936697239815104650591530731467801257110595546847310163246966706987136197904061101618989237300055935864150321045185144844122808154674774710120827723779900797921114495695760816147430836716812676029012724325519767534791131744107874027476216722554890812640790277868228231476496174445169727010671723535343490228549822445721874402949229782298816806687448632973702204650540480322058553069918289084287662433355897707965181062724001580843168101074980549892935518002338308222440460027593611004553330404119159837867015278170972182648386198170018547819159252342505218973403647213515149031706804395713833752731398406421925031184606547966773811356087275723940462243823984395147172588142740165329182542124070752129054260106896427861775524600948780876145263252553908923951589046959322272007584756148509381793747641184909818304415361737152803459436734242287823961179470695986591969970496623380880801180585020543983201952345626851460491330840552730319042343072120814704385148857559525927540422097018207697591066205907768630393550384983485215781287389054700985400661863167524473094924903194361414519399591487913550932729560202436621477275817699202979711217403135291155996204330224178631015943460889330786316157723165403323922742585553799477917891969853894301737103731328796269271153460984570952660051724972781685382393978104608564110695372979870270366073085993706797514008751901488480320243127368635813016984946078566256983398998083029579747063512057061864025391532599807832494679603624516989766735943149027318915058855269767404841683097031767124064920430422804251357046528776423950725375550500456622627986179739588403960462613324233420803055163097846248059019118105001903655517620665165229419824699878856688377651865181846786961812051748720017643950263240240124904879798198912833664212325693622415537106489995889646087165850162799853291018813586994828844837680246417428310270005660515155361095501079058524806742844148793836192955025308937260575079283625295687142712673637755168082866672727230388450264632645781806096993111474103602414962909599163724843460694947837457494746151590814289487967714816348446284811135830553568100511679641617789144695301966056590563086841529434378426288939257499135604752240934515701707648038361142374273429373466559777870687743113026130274377758527277244528675919398001863547040295856645855654959731289296708751456916826801611033229239360667414437149553762206570164987576987779473150649579633766455628165116124597314515035481187820341190871388476387532582239316460421237533974750838955995880491504073160685931271617304931777463509761204233554382156026123219337728597195959926048787748661722986825513966377864374203541734260447557190608217495185059489811770740047665943151492371929153680636434849827589597398603997936651947989670831318201801303566125924236692360524522652930151953933197246564463000184544236086272598454937075521272810798228125700294282823623964367779143497132456280967062520828643706165095105692310739119793652746390826087822980824654423179064302392416304324027624883459255472602337746136280477795575322446048245865670420014584301881820156202611441818756597138373219334329685702416182692656149330845258752634152476610899407403366642354317189180942705076566216637412050390403876452743427677298477174742527547407805577602340108286737222092877836085587541513538353536688888513045986893350715179704349092011398762069843057851879185016649360055912364851539110823281704735554704559354400781138264019248003876893567671207417066251626795919910978570755012688272564136256573579181919283504121350831186158166108162164449198416254646567296000314382353919381490252825752477635974345563667089644115458369904042613633157092016208518786671847232734667278962529433874511217928074492885204282996089383462344306995636838148562679788165061107565774917076944951988097680042466319583223294727650828762269191383617278749241239848129048392439403609676186717564007674112836159305805485392668408536945329919102999639084649221053234555597737880851174429861046108948582526406326640948292838056248514220565612761491767335724403726006133984002009426887695071931494603471322265352735183722919432771712083027645258719525674765834924137081322486991631558078040056905957712166099682082799164696468074633967444201561082418848837295894008072870722592733903439588112457607280524251232762641509039934954767808561358210214827749732444770981893288567824864659182751364761024504613430925133557625377699523156124323675372095624938589582369445959226266689690900932736854564162672883591001705356983474944980689078431481365518395621665539089036948911699622087872916757111269082874573708586018745721598814245318782720255051214031246424924324382982854716238894755656236347722819250477468971735681814954420132710910471806185847745353000945207161942141833089587253323919311337779175739217548280191912915450064125810329676133023018529366485474386649008069684715150716812548991335943870204486060257986582218875797309579233202744839002853561527028779793638620092422290042563419103104217328417812294139495469508822004485088390830505364758405203918252606579216885787641643926733497520466430231220692202832928157987701307110258079088369028481941445949471512607382316515000144873594717092885168125261258454980285478711350738230856090045526266333330844401005222840867972447530627783298841332841143133860939704942124698032845890610490207850260661885515266943432923561445486016307651945366117930617556277009815958277801221682140611329241725346707829749806104419184883897634616017507503571563985571347222060346091080193737027329584848478273879767002216147738323483984747964755447715944228635975669462389045610403760707696957491199004879863365773144826830692988854026435915156806006273594397855740626484770091141178385757465652019560012669465000120499481034644380624826641113814846887608440132946685421139493057932693502788871988673642055822605010138061539968136847309956267809800561822940293838570389030299735773052888430394033221037008695390642601386119274199038377912519862561809574701237144973411978639547147098087336345239867554162902471916053222560064913123923184730010940083689069262549955064500190070105115524158517729113124405417414118397150808720514332304146027783333314312418981358048564954030339032979778460973672441448548148421692314942138639649381177577133550369156548458590052243519867253312957650375939873720494514412176105897851985096901143075120169050874840093511555335883798299797362406694072788633494032642612378580469998960139520027120041759930219073964497156823878682197144599122031092095976194848237926124680832513351805273665519502161761425898196789450957701468720296843534220419450824717263290466927382520757128702915328145470761983475436499489756168642674917508786403569922957492196045350182545283831916142336118701005780488842150433110352277340730066689425878794481711570532559028666272492727123810213755221591688348991778028838037130559150685496109432527116647444884284983910597035296053657587870137236742074679873627514364147702336718386977525785745496204770002899129680517355067019426127350752396080849023542482984711230891507934918898387829426961868463128761311691027880729105919295174629833343756519926382520096711240337512245815040043081489215318439955550225583789014099253770256555319167709633550369809593090118192227275145928780546074532791024514992754431570694337128260780426677970754368295975939501577325392703357137541844436106361046289049239170212210576686206603583273545504312752067283474507976136819902276842304511629761830604280585125697945410827749955083937855471858350765521520005324455326545715249234012554448388944052685102070872747988280176576718593166764634314005200833382778547991439517888099397223740266957510116471527507360775427401927543540241005078775072376642048439922204444785933918309376637508120534055057318239172831911764732336266749072708498156808292838864829267519353233734408941246946458305184984825827401212359060957080884826852322922565256419892384670945449723235895403612657010880902184873257153320929152613830446497421841880274168706059529035693497587403016314061961150042284629243120877870910043190949098730409978304474684126041060231400634421973559829352259123006222706493593305489671498718988573282303290642165044085407558806955792264505090289937031998428910309805532662743011940264948927407125434264964955915100872570500428413352246475782921895342474978941601472384995926880811600900080130161599924424095843767859797291536184476151052250357005644801143400637021840855832427952936365797157308795373945698308517058560205955353569117189122927134970413233469436048509399058505039964800094938414822474308320617022822565209987001444513784425599980261920568389685303711545689918782525009301394556093837126606370481841883439013315223670212519929978517905859965411248152135478007399675318598038840456062268913110127407333894252479722322893147609072201808071502400504026164080932773622663078514413514603189745557289022633015223032172313816152650862506406288974259305345248545951955382017235140974307817128838567797540978466117841211260299846678411154483491781823480340839885025278653944545873041051227553747648222208921462191290101319925573793945815568709070946578418750670803156744211382466169054726969807720623555478455823337281711064901020690903759784365112159986897008286130148840487273880437482343756842153619461329115114732267149462498013502710237607004792700194861727657303171496446093802457036807935191977886796182382395853632983913020631633357298524725910407779583565938468067631990720511034346388165543169802932213938938966849044398125491594612214053379710636669959244153869114780786827245177153475058799567812783315949939503158005442197011264150947118532804974645689175756543699196502946757078985973447300812255405294790839260673224290912376147028787895663361525288272635384399545662875938731354480759982149930540424255630263140661006434003550614903099386876461690249589341101194063361352597569394750661838843079633737213978379306093283896642187206894974980307056904293639508051053488772880459454323969560497114952646363908710948022020843487104986746953985946516108463039335518757321563298725014060829692123342425931335762771905683941805031236672516351823652433858402237843190608160358453896606952819489111604937172951781544248690292986569445772285827156331041007411357414419238123323121497419900557159796122265581417502875917719719515729880188020633061657574286521806239452784830954801816623268313816358572363390185258349880952957047229141885584529125673053102953884874042658909717613656330777419697136210728814785461075815701605541486453111999088724024817479846333990602087111889658337264221819449785288798665792766213626557619560365013345144562497317527052240023366639363019646218446634288841051706616626097110253371735918496807461346130898049206288408245671218127521086887858926216175959538417905718773889923049897989894972781299549108509400556499556715190830467581347232491904171699192225531576683264986318805735341419099100824581338185610554505517106923028730001649858521981478640887610493060641533098304594927911278667553424552087785645842137512482014565100365880673647507894806573234979369995312728638159433002299736639021890368960239784248225541127835611138081790040837558279776647928347441621573087972930734795932110596722593418523904668082483748842653939043742752614726150924559763566774242201666126504818038931307402996897826257752716997802032508255556280145047384241574619653531368004652622756235383674440689530410391320349308872852622284672249496293504764603833072429059957280502423869769069695604693788169980062859839149603003452726231802913935548471786154745625636791656102539245615750989542340920772629632391877891319259651437617272350501344526269380398135632721559871621448872975820918919059254540756648768304311705094065215868546776202875755039774178193503155410552941136552369917136432759768322481965877912702341473438421648401098961703308704634159982038529207079819518689216273178103071066727020980811135387847484039559299128236599290865914564285043392921292546059137602381153997162742953520284007867789388531820180938007096727148588702184283175117158425242909029031624698567035451473331502492052667895745443147582964670082094676262129603336807238383143131626015459441691111596380445398944308548933887159781273323483126841810131295671865291471595647238948838047432594051602500006142950069063203263645416803862370166208995971577761974008230794799134740771602217926528457475609378881855953889134893510631866553372925638647516801477518240489889448649615317198243743955626542905168845381044507248480358697018360733209421529767589966803394685958015814653479379111276808050032143539909924745179987550709982546492716315583907344629081089485269562524534613812461946009939066705403292554491711641586319523969712674519787844185896545322582211459303325270378275570605964497940307726344733740422936979123544841227822745051581031038914685959784421597317372185778034227986478295289250140755740739324584424226475000370270163412586264800654939178325060147229726881131351780385091063744134619066756325434602344139639679321836189356604870796871720625029650871464572043705256879512559171662867701604056403248832789019896002636890357588527948723954191912301096741669379057681865206883594699134942181318002033033742781896862547268648492089520032650710709809698094279528748869174155125669603645517448673619473019175594159981183263706206683265850452906310837130174744600451275399703064511542570799929235081721366626525653205112893306964822740413758884687729104317700030343721793202866472838921412087415392313537084978841975471059955853154090674335003746912903773628839876763257418238107891810303138015063769727380430247908120759558188282004658420911785262045540683678908401705463619651571100077808455159027503261135461624492154774298016625735729457393302677127765844674190588178821056960620578344771145320734263460960100591488273122915451678952798578998371334740889089706705450688755030669811257481721737899247986331136345932567949767559347421421756330356994761212682992237416928242490851934699044508109102917426494444152179985274994730974471219930552895070197103444953186881681674011238420729161415481065032355455738501762608644446295479554139025646766334520930942721448637478267768637151069760164078992789131222060453914931666550706559484685796105870302934988045944735527185405374274490408380484554236684708548059567051567428890222378193395791313065339012760732933639502123548729907760611884878700359863208136195600475760405198538797659418549890219040716105145860786707423237607709682799134159601330546690332887525919021761251199897241337790686037608683122942270127935427493621912282301861133051474831916617906538758068316963396038948994176812891831565019576552960670805943673528879753932101333175749079703779969179349517974765557188820934916644216781564888958445917861937926076031922950107877413833250729273678721614228610074409620649155888866243855711928317064129408391870790408871288385643835608915277049336232912857249643885848101933272138264562546981444874036952217125909453318215598245971690924208817934285309016612800005911884573532634249280669166803410200768169505809456775827214128709767058937381792754022008700715131059902467512601413628688238837950468062339626144819065764490746061720932625318201328374057161633666753352112212654681905021733737202252088777351352722705523505837243605550171855525236061237042298497704665579092745971958830155398267528728560447588558679514294164704481976687413688242151212982361415446499303741264595845109738159624063957454498795049687671658451743394471728807058774519005260944478633603931961740164763359894139560287082436432652360152365052421641227250735428052911809794486734560141806359601595875060524207349161051746550475274051243711300345282972353966690907805723227185073010492697625651058646014481894818584535025982862666319636338613970443492152092297720500025493369951446895788303426396319656666939790315436316093889713697094344022609329377865295152785318282683789221855273617679188844482298757854202617144909683948907750129628595316865546358183417770559343355208092775857732693175224008456241443084043434285320775936161777534018257144752763672176041019365982033308008295895730779918454217434922399755130525057487927804495707762860928771920721488888236380903718121544682389517247365573008845108174688166038364849873108821014905804229285637569550796283223822382135900803396381391328548055128868809405996276153634100923146663178822012910096675411826112298557768625648193898629260786503712809002951791430358700988792169028301696099051939813888944367507367378830100155819938127908116265460263762158484095564164804235434984097495232525094829205129957625802469263708951984396928662445443220798590054246905256779404021998667664943877753225035177926602739113727776657530441177685917411442781134931573508805653222405683200861793496326410990639521923785519294549907935675501095472357122007950652821993593240497204424710288529598361206809909039529570825346921458577125257397510746686574944101525457302845586684294451778013758398526327269940039978144216427943777262722083986355207338662662953464536035200448655728174707987896459912853843256463727178000658286608053584559075091489829120155042845225966313117427996951246013309898664632336997440859461178501365457189757629402715250932362172277102443736554616829691019407775523068874181713558501083500123713491852759258633580400960934036739934854754706548115191212852358162647050181244905434326522940164973400830535478222360407414107478910172836212002437664317158094665469564268400107914777144670297675211043441422350543418108253165073839668588412280638303239565079282759399801720234247993256216946754513540396923704481481105648582379121768974459086792704673210147771264779288261813315735019145581768781408160984420914577893818526374617121209172734834894269494706062745176552634775146030983612305181959991126258037951976149194912381702181954709441653641168823766432422985659129114204974212000733067858355861196654713433658333951198445655623580194797345066632277741475748497114210348408749186769115037434581358346485908739761242355222805399081688271821558706027194625346854564616091867592552138699987071819116175349395546621964231388261725383526134483539887785037921978384604045441482678321118893846761948582513948113348494932003563719063631285153953236039884509587976144010291509302011130040625742588527491147558527252055587580537575065100420012026047340080795376800706029318140448057920417570915283290540108762231445765617352433112762706093179494128764349169334561395751372293117983277438982801144396025300367778979566131694031141527537304572955859996825581426569060626763251917641852385948179743877473467332319340829823073662891113366864210341589387383873993493785266519126293432688103021574401770829154244766547159104805529391703942970142703853960524869490209805753131507010632801451896931942956495574911386187633243232828784869855489979041994736283460290561340958408924593829041303080093848331531603078493846203035459654987375289266156496717251412571098666913767903168689613166028853205285317100879697912319936004824715031056749148501612352168313450479018956727910382003493523584284831608539481628842163825956105727931033089347987542314340831001809242802493057016224856768071860639996169384141926937749721647147345819099625831478422898300744658705579667334751333841780086975834947786841910959677533129417888681188778292601749578952448143867846243228092049304225801735965428062281701036377286541635953485237674121098807683723119499606275589497396630932530886894026673326495018139924236934592187803405637136368813013434673220380000988082681036663679490551538552277218786933078667746028262338546488673868566006089656640371769009476111008811470544076234981361206948821030880604439627746394249795384452869266418437837313276213405127176274331385295454302311708525786143015866353807505253927571628758498604951908358009462281953439748406882859182362219224093904156800373344323032024586495954243711219636750017402959334476277314254567587592921470545903300685556823737341741109978819519650720264418149607763011480897754886653713796560922193014544553115697682758942380690194137823481482941954161216635412398780994692263751606764663136326346485674709306183111822125059356902697358637755723624232012521217237238527413437840394295064558865362649057792660549691412206775908594146145276039248783968883553613442532127457314375146909358367754826075583972131495230783402098945046067391954710730835421214768279331635218369844533195961200465767521320938948732896341252803679214578438649623433411194999377144015285029848836787387258379769091002272063139210638795482590549568185453732534752943410096270860016657326369972295037229810979680183954601922263020215152453534241972069979822685771838556087664102249932383500972831830546124811504302969095291516263919430843688272680971318230182549225413156448244320067477932530339568374520058153256391588634008343116161964804199260099384875683468900370639299886782953462204834040094061248138896780067600230196885719873224936464588122622803035421638791095878005257013966648062351195036658326410723877288697178959994881398870359091333925738533994955870799685261586570272114402116257090838236620089061512297132490291070840228911479206970460903059951404988660310255714678685682424728333103211362289819876483278320242729098900410252716890944982096357907450676739700585213321013959298699354483069725233393752532915656027669196378404067017748996072379048077059653532659543818963796684783297024213915337927633271668021065176834916565650659144769160141773872072548158131319741053403378867406771116427575775368772522136745133692242395333452306155649681273776484392340477527770037455712863244908127374610138991074933364379591145856361559238351230904789630688220721677790889780597331606475503211540159194652118701228258009337291256321243295502355673773519228543129185979178851465182309889971094076678007913740198480990636437392652915208014325813948457007193979733888347615146359887358743565141703058682802973630238426807482754707656887486676837719160037937001667503661392132750541092958198038980330007371434768765152346025085082686065683030834142796268955748455393450115150869924631532590447322791819006491443955261357990795877409002124166864363457405133780356703916716604108994500746995953701303838026810884373205904643371057828723182218973153788596125457978030849954286000411610704246176843485846906887674039902811614347573934814224069967850875539068719598290979639687628804642308941405504222161039389628321372792674854771475892322647703558683610157416148540281434934150545615216330599721184590111616425047932036791350730257698291996502718633592965030216371458138481390240786008800227696529236157604437397003072477542689536230945689316573636986947732253861638080912814389574215853538799401822316970332053260550161299545801073430667873470194286177515920648988717238681893704021136513708015287819898104303260380863028936602475422286525777566023986858063542943018612082970770509472633118207073137370753061802562735869237705125741592103273426249374639851892418434430661486739292524357237384650125773397278575182226308728112238098914442866684815015355077579830065876742445553767339837742275179071675298118873915626982663290236097547885300758724642829097388598938862202669348711610444987977137779021266537085942498799360263494082337182161508998128470102922665734473011078702499202407516045699402203144336231333460559921488787361627113259878202159438077671606173518046088365404123513124725395411186247080784249370552252175042903207646986021922400223663010258720476115253123862878986674525425026261257597350534460301395924241017121292494152238053760675946628674048923592371195594986786255968476174009762301102710113315835251108541154003600685435840047829780441055751819024909383703839116801093529940233955810686720396440416697123135051375384489418940717009787735618399884657519185005476556533724037382655022404345901693023754631045162200476950862097473409072831029546567657183979731585056060956571175101656760872149656469975182034413206666968569609895202607838661748117508485567006843799012978757157344361798236312432575966871401297954693478457551848475401779568439868358145304568608064236329028803774773298194949111724186521590403483587700178690914620652329842013365313973593047124778282643163130519897750454058428187147333157519419826448920199569155427173106494103752703477615413702653102715843379442504528569158098521045083513401450343349920664066436116655032188831716821921542024562139037692402332107637244395931354530832827910239842498292986164332497216171155840668531334744786604092278851702166678705982706650914749496020437704253453601656335036659528267025783112614042201126395935742910214671296290015087372613981022997999830840578794751131825119809411103237829141688870685707461866471159101467946673784673105334796050848163252822486119795836283897204795746612670709885862298999181876530280729437982947341674085863841538272425955205702095587522352150102699435964803077532856316237191003887925922394516827576858815914298142937956941032769630294536758850730244369817511521756322517929794022562257819475104522535376912396645434733021964555358577757763719603530181991640533580880113071846847874104481075125931735102882788244376309033512545904931785470029807766371019078653166574731846612080626909175514448940500173675065622737149064408754425957667612211996426277804633172762094002958712029325996670719726098878193928752583175591394421164182284790592191861255527931140747180682914143841129013937723767852373083517493173109698708017448005765332960375497944539834501531381246501534921688430872415506066295776575368791232313617535960037155038645354638032702878458713946848334369877687981261093017607900935816550142769326952271618741042468993138914424088832677282591786047943319302617154754473934223684930851026461231012669627272649100997232958037391978525248433943282626415806448614814586067274035359147780604626525018382283976403389350150417712232351599312806409554446843013899782584295492127382798416936700823378906336279759848664807571640966906380086032516589959820849328499013116560305430422428306279677666646054402345301773259288642013947553554537605557234398323663919912158668127159322630679067885557176293610727703150213988293928939715441948408724025454692652537757313078933172744065520825278886507576829557197309677729905636274451956335126445047380097231238017283200840917977008391193865650328772366513033777346465850715496418677399394119941785602399641813090611111951010786459378227961116667047198516475938436187730023126974221592879415073505571137834810789919210318057270492995570628645499678713225096588292802272489370989769700760909676597419155503776084866618727955041707142323318584984774685669413894021147438583508817827678438963412653192532942714702085057128065485533202593125387164486784947989638960192658667632538242956313988430819894001686693250274114490023531370611604953669580745330549686018619955370336271549251507246094384708246988347847335119509348201157339806672508668820947826591484391439279453673889146615600558989709566864267583904871679239925648519503082487096623112398640514703118669769040359679492188028770026382417704465840781009687179550463319757100079749361335994844312696690442403240862951677780417709252735845549086065796326085720958904556426115136304856906430949817088836532614469793178751791380736952702745406877719581165499076226371593263384559266599531715261986950010460258438017772044965214207061809366338076360302333048402602731187673998160265410066941472679388489552569528501253552360200300101794292932224619482449053278545798574828169804748623749089847717574534602322339198077431980485783401663435230598848308875834444904574603926292118313810170639358275693368623033240669497759330042095414938040099901854930989193970303574844325563151981202014432269939727587739047541280972475512455858315469532972666274606531636701131885335963289794262895307137165428772254094036969146012886815217378223401240159626899297901193935652866567223806153845674918862203287595525761519992466253363479528213615470237453351623744901025952962360863828202381962548309640971341462862470091314322069953843274357386437892319283248277925579891579324671797482870429041764244671825436530128586691036894487417475231877521717408601551524204656517317063777988967238893698358305214774104498466717568518115507187268631388544352247436555985769168548169166501770894943521878917074605835979394926688516591575720127444874533119612549959658298140019601216218321870853210608338634361892187676664239384024017762272197310705082176584101804512870687159475112945145203127567803175969617035860694487214585864390628682631282131190466919825611248478910488038175517889366952212384487456377766109207116254085501058267664244254627120016878790982615231860937079162692983923950970288724991266628543828890719191783859865257105969489287708160472923479297066174599531596213651156747696786992736297134261908355724407446975577990622816572934326935312590339090961398025033018660691239343004849613497846565966730253656281018576906901602278966483232519073265510940517851255723884804216247690640153079072052809103257904168168349500864144484739993307464469932530512046896880587122705599605001887175095528010223762737515671521453673105649005617548828795294544559288629003132942844536541139806668563814775371144324591862621682807333779105337628583922897500764290916645484337627744809049109228893792761990241088445542098489107202874147343977130109237254137593505576312172315238635854331970746812280023714194537680343918823614575050242746451309867479348756420202612293292917702435802647856968116222414139731689827666020281294973705354938286420995262880813192740155308541272527077106446202305733838013421543015826667623409208637636083151334646844392914819734318162950910512353621509118111579908115818213103482779527641535091997468374114023193171524541801535301550161790196437360739602489401970508041530695347577053705796044860856630107797448126889430669503061702236366764329312020267510479669638893565241547137587166561382522340487869751125193166057668761474731253112664453890205493169406457068565991968820699219497300883230675286645215544182791957828704931914556492042613816339734514896485804003905663774385626489432020539296680584401074864620021020292701677619559911293288152020645891897780849444355089817683562282939702057405701498906934178439547073554923831244246543397977912633281690787409051944974543817635603770383924872066348641788008911432174553745912808827646567230922942776683616773031432334287600643151396623425811069874564839428862305175535237621347363858625884955362242653506243859068326581043543391522486323694445413127682497915708112194759750446205366374697033840588972083007048802205394877475199398810519725161762781872942948110773796461536656758803706978402603057789060585799860307348122389298544209808053476319221624054007179509886246016736251044278652711524314011265381826754006745367385116835300938520949266646905788385663733110262991743092083151814234704969270105047587945778771428222986968613309224064496867516036106140114868356380232532466300000105801763507783747802459374805996333425801282148648415041094657558705827038726673988842316773231161344364779397748685497073449145766055598212120621099434284963936623976196011902087152898764240812640185935706464040138758777519815582703343901009234791307557540886986352570872416767405785734725075421240440506926790062188260488408544476355020280581237153383535511935909522416556570877484193433409965594200667880763533596832669974672872642925650444473453891795793800069652292489258758126970725536450624513727606656541422210415652742305894470690450473794874118611412383919930301459200865925556468091674771874922092127478901742515162781816806246378581361735516259513664234661109546970415983225443467334928991329588850149210428385174406999298085894546926812168845284197506169067434952635971066828929149887315208263336739155950503177632904057902894838355110676587541620767869587025239661739479567377887358660284019417576306769484880966926138818875856136706184511464125152193067234729530281011805995046965757947516180360093385191596261106198796567783589177261467880223406377854899592352934776435182405163271835095978265554164239320010583374543019307800506178825569634113189524169851388885308066898210566529093657377039562713112813269005242217603598336661032443791251421700545899700175875083058554028337787704181803112529588531693300703937138151749678431268811204045912886183706242848582194990277024938365239929676370009121058093247852801954453254520419487128965012245500166853437801991261842664019413775927238794446624017932540906804141698982565774525224656942102498516928097234478193561452850188392554405209564568938931417834085954521574664594789478431766638219828291986807121875557295333732542402925542282307475736493174496955054766722784800466210273096406820004753836010961767994484023722778709851539170170195225567539501326568129786232150879323934327937024937369610256103479536696831003708679565377097842732885633323272002010461329312267269967571387192861370753606528892229459003620036649760206446289615638859985996514357268252177858137391633310396003920546017681601925817047109736830241837666572477912558255082259287926293471537998261771915165601922801705711985172041362518948982490539155264128326264066444814154416389892237598886766421364256874459885291736383568222764069300597422787937326404243974732986517163900996912035446304548308891924793222148004039709893457021063430395751051033884005188285048292746760026414904824323018291798890559526554681454426913979624788599972681945943373016126515864345296421602237189945822350750621311621686067861070553908058795482523505456521732903155884828747453580780652960918207128494641231547838198855561002591209200179245267988416694334287134003365375272947227195268346907338869565379932139110400881825386468293007288864397185588955709779176518264942957169285224815608673326812094176347691295731324128271867134864421678589211995841708502096636190680774117954216394218779645598557895999662659510636890699991160721322396034372816913788529273847729859793865106529053633788896228068766106261963685171711172077372189253343287492795544388057717994290071622052659291803918013542155084293677578590423393046869236171240886258647518930995835894147325081163285338120739878763245549294048561700518821554776273931551350113758813724034035203796034114863293504969117938559858108917328320945842496030191835523787304524856597983865712294905313559059632081081317476341838460012219272426838250285793674433732370395366520039121707974013968847061721129374281238857967712387992328263429006965384827536007908772210046176396741749059603643165450298198024945928491841835305002936564289957882046441673550114413209527113740379681970592513285297297928000854920774315960302878245474930689120175201951799153160601995037941148219791281186228604787552506500054113022552643438552357394156855014635272928642376174739558830962553446125443219034912608598277813702618623366910431014506955729140832200117762819278753099303607842146370049907310951598099445918531870144874250394452805605086981107098141040190386739170479546562397035765415247606992278159136373162193904984010557519091818015145519107516937249617399952660818648488686842880278924370179789584195620607117352842213611404885444564865808829128757845009393455812513464117924203228096758244501685257092758305878563352882824640321136563700228578071792088003846742291722617530944152243039125404859870296277943245984984557470833624857203170773765354866126767327038317549858710301753169656138033033489005446122428847018950044040602009667427697185089074444578947962061059694411222446352253580387839206559172360886432664788554830632415846861211331824361055076559112081025436740233505459980075004958616480678778351369654866137196738953390300418308162576269832166846425814013944002073162795762158722732892637682883084976598889975894427111121607419529752384278089062088609896911363644621537759346846757331325547765208552861707928996091764804065849467190415457844863066835163221561358181738511842440746268753594055478355736261679407134703447601497703637939172686880565599126572199281046391615932471817983985015302584568393113588763720112735714854437024039298646241898817487400870137706392617821508805406595847276970840030293202879646613242583809266484102912402511604753167393081315096400118779129398199190336201236590343082323482768436475749041593476263110458694059450794231283898969271025661480948170941742009212705916535378748337617485330316390829353102356643696598091682921971232124404228248765719609797061476615428693592745713313965996964792905174654842487631194192385953816466851935779184446116967844904859398720625952959725903618706205369650257800729407294281140859404854151275086933269001976445489923147360549804831182116513529534605384561114184650638469146997249516019303528709074734525845201143288901855893554587667742680742473535398465037697255260229757797778253396888935128619720205232005405184558811325906382525027279085265255112548132085960650903041349264779423729836073038207327986479696020326564733059186001272304065493074999870787061090439129874632454631483869328827361951035115093063933669467923770431852864878211980857602754539776364062068124357631380227046714572958758712522651240380798987244147197668379549777523579554093760537967890594118293814103327576707836259346686400905390934052377091705889571045208045558887005911403162400337778651862860465974280878997193598797013246076197488959974563921363568036567558290583513180003253315018047753351867786477036273557793231230313766803789669212831786843397144718520850773908147706931187226825677585849504139642893054191399974800537397706122386865339858276854967053555350861297058236839510966383586172680815903250567517713673289377900830612356440809721305606036730138153101644658777148972758504391217933185917841258887419058020117288541223313089924553419707832564085184169294198219666687163867029699728604150284756145669163050772890020143593901219040378875557930321141829820472454456286095702796904176171660077807889795467074827026126149864629684269125494086018384483175852942247278913822061988985748642398262403759756071689929652807785358463899596480195822486084483866852934462513643547542086310623496407641255017606164711626545387685861430137705661715111861976184040586320540453590292784180922856634629477407107015572065102307275951717728796818090225290704030603292772310244989464692713189292881886879645087277611705452392499949887172117746449081793384371399871769278204967049301801394345730379748924641875898461034195167909661091503064830866094777023613772601545043975421063489896905535547028013786020928898600099269803820613723659303812214753967126697549480505237134204397122107139282051671749864853427425469955142232565514194618372951364941889405159418143066216341954441689165605851278146524053835799588624717857487810526501116930966042041173078843490404999871239619389502527100782286269218734237907202264743049303899340618193921876173600241592364105443986010054983650582143904736933273853540428659240656418037765152027674394788010453856002205017026454943423951650667759304255796063646543043622300466209578896115702162753896412636956580539369048519139528280560468903365551727841985417761420418127163497969146171405993354754638967636705651869367634980323653566983010124609688440831546503282379576673574016828259142821597908046627278247723269085007663475284251960271161191322542994037348590043620533636205623856647481346692221379166607917844976267363588804231132129923974341300319164306028869167617580299196806354519546692111022276179248040450372084111806968419295657016417854107391881618127306366940988683090467456482650445488539732813891476397031429134272209122321708416854672181900005336650363676654215364418621808168083275413759337530050128569949016254292455219556470072133629293753996504907183261001778646613845297621601790985066146338885536784789048176993145504527022928288827098783957165770893585306795709480353825910856757240781815642509817607873461463065803753750212880639235514366977261226627090072865216936931496089528935487798280578842620851320908519601653113471140170643691523003426319533560029649054943253359737756253515962171975509118591567801425517055729010335283955037824919276604875118900259162191149364595595661432776558906006116196638283295850377206376543259512773239238553643468280103715319014307121223099612950821461198802655078168356113663360004613255782367324982175928743279911473243318373609515309218993836005565397337402845273500025871035561768028457002287283427601634162511193015691126732033824551519109148117447535538344547379719568128140496627613351017369739959240562633421706539291135281731896054814442928983660261290799686373200278977655456273263601125054521328854763186697126097347269316968713667381283750005672119960945736598050198994597278025922143985885533051260732093486809574953290520953172180525903169032202155223774676770665958333743183216335618850056536903702556210861772126133125311650208930443518619976503931082188965552284283050189541894082552305691998619021357756645788713855616487446238764609427648826267978788222977012574059611255165910049658748994698233894124051963140447269701070742815944854388638465890760101096335516930582624745439406735873242199510261088961461249107789288031077282110460694379441955536662047254855727876057545481660978687849391924613051723268484442035975487131758245415480570085958357796012300286174292554987061255748752003277229172683119551950478393805645674313796855264286637890960152249047573805140817846030059878936504864425912709012187575228957527084865285905753918692691651040191497548228606379500561048247696032269059118906046430292674857839104937966830316519953931360493593485769366725573344109414945810005749485382931576684185132449017574945616753380190812647633857281270774879909658388375742622864673538651975379921469702068390017438286950428314777158159358222607670033721046596334441464379331207773834824274720494098662972992564862089078497950116059556454345515224217033943799537394178811634098351572678998342928500963830882457248737454809159977034221924452175149682547245936830245667717051087470033384376802739549872495323930789992810716649025406458332769464070385963097413393753563304114721659612018289448982674269559935618697514570129858773824942031485355555236105144280261464661140283368539651050401483243937696822585173249861148028166662980182883452717091980557010297199477967931043150864221636270101330259109571692174336821081169706691452543063430858043962434736982276248491330927196014478089589974368422293408335887770742732936323647536226293485994356316959144144176915742806185598271568975668378358440233291799799265929937413940631032054235357873263702695232157755207968464251916286141956620015073450417784350956232762628690553076074359888507717578025787879541898331592408159757443366462788597704862667403045987285760040443112481112163861421358097101488980010093608443937676616575258011834791085729196360620382168333109150955145017238513513019542841774528500715230312381013609880906333101024674946956559280246656471562399589638056217661481858434121185713952350299379387551532921138795496410921517846111756867688190226304217366570100469597626808554634164729882012162991305208324854856919683019065498099910284838868933232258672469865163704564183183660031487148863004694405987006450641922793075125265523273913260927235131774344257116915348932710602331124394395061202920688165418579832619464086520716871769680048073173387325657846751622113994862542783249836338509866507709664407850381494466661797691282106885798001800193605055601326973888347171685200048329294076817921084419527625958637446631758384202211401325203940151603740642223956354564800242064901281917375143302593605806737454828038410814298376031085127282472865756260183248809504616399119273374864221392910971755291320469201642812446638483295879990595201496916208038346192052826030427825546993689682412352693848410330597237111792693531903240079469418315048729148571401028901897348727272058305470579806598442787464632230538938217696106767448062348263578136789618036136827506139049593256385108834523286594921324772793795176087975828258583398311306588100045105854507863025408352001634256655948971811552814462685853829003524142968786181544519804903834939091842397469953778311965324688248773840390280778313764556161650915396231364693159215921180214081499083262230786462389925971799112420092491858496582420250359479382206002090494043682472858259497250363402706215439103085681268509329610182057543421601338185218880554407331202218103214660110423449298095056712397323916659751370797546026201746788376412060938911091816758872570851339486931940248231991293166623765532725908008296823160875760710652944310555668737187017191311047606954611073856034750580408421769918137184822409605461132752867087795391528099601511845872680169150707000698122869988424481920631368680791699886239846385128810500341084392790281484935049283076679847542416785650566495845466448818923438853645428448712732823886973805608342959335840287484496244330078284307773967054357348251835478969969500448170712583878085531089818593259045311008948008979308206702286960952905472354539700220208873149880397510837012111867534539963700961107007183581419928498525935803891138531274967803435410022241535882054951281357821919688800252232929531890017867652984319234627749727564982299392195018795759713705777565631395888531080027005592766437224094646766326376141607629162991895090959625147153590535846143912541284101804473488581219670726987540017046857416079887056795652411027105562728551104438772944867989176976520809900396730313280481454468214074364895147024836745790693429512204369339543718423973445388367989343656622010247060405745574644378207871876985401184530411284829450124573791784936980414202625144424253824814177658320790672009938874084406641947641727571514772756741081150713877273910343789544655496680136433650612184983705340715688388229756877539528793155908255492544855158693143428498566575895416796407483548654249899461665163639169292141543703599069420110886678689766061019122181080954773990748062471444086863446411536052657666239123441832863490654818956164430269375998914052289648383247895814141738428861741619481097691442899728552665999742246126007812528743821368317037079457772309865133836904473111773381718753087141203495463003238250166512509733654910768907216704701452530577993044650472773501383499802238310254102292193783334346641629973090316488354517322726347397128936660063444768588658377716991978556068011192659384758619618912134478294785111192760098616185904898025466804640053208355858972477141551611874760602495498978028869062522610794872339036234151043025015402554429767005118037530721500210196600808246146621561622647550010249191032654701767514886841075439860963780374504328477757380252761936016561663884627478750922691453253566008688579312985082103118813729676486869518291079871661148873673812511980075206222964240335751417033071252439311345005974516775102451390233066225809301784839300344538135066593206953087628268390107280185601776330487515640615373468918180608008544331042984137824125996731721337187378932395486509395972795859931493285637529779222123188961134653720288590075304084299990243423882504699219166992829115677397196222981281193969258985438508891728037485152973464151738252426745295762583995995439029253476655520478036317269738864641177601841047117368245276950628553769008212358159879123397305183537959918800127810223929837522414600691950737323872742413347083757061832846033205126640976075109176446687305373189987757906513242543408372427669435189501337892274704171985734087547140402997318626678600691375212568937665441430188686100916355746603950149984906014605998253299444728761964009649762948035721087657155832134176496216316342887814868745476003697861335695573163416273664884121820094876175643982118868941393539071904772729239321478096700107796670867211856086865444244613173055504725557047693251078624178799057378042833584413371826616215257578406710338222226423576090472326668534732746534635574978106253973846932704707557157636100062494364693467083496123355808369867437925471015965482917615202554168965312870204284866099095093910819907768639425147349529060002918036481755919118673081010494237494398753973869291361567709101228343496690809704230123236322607630018320574345258522235667225186093638251591014593125546262552527711106571052594435583538044575621432447980420414895781238933218002593524551308514444991286318531540140019538058960288945193093321647262072044753506040405648379865269579841486922900561644081637549872016151400873938206140491610489731864735125219958218247370785645410888198069810203380230070168022336772001464228355524628571573787099350249099362111948146833189414005919555563426803366878983637687312259402365549533328862762662775086375351745699659512080710303461003493312939858298312492221589763179761406505307998749912634832706629104721325706463510754195950011507699606738075762812060603821712738176589246117439419942176530250602035058113776680803422989643178612247631382082708098631319641176595770841371322175348772548352307533478119135658010845016410982877173289598344690606519693412315642256954427687304818751895239314394346890402280052676225173998737624525606517939132422562291513173006278658550090859611755305831274365136638855645624285515408649461620977451838662664445834039625785073032677166569420894355253999853961793753599724850676604899527926074189869748056576338911114723498600973696732685862803669692090664499729336480233312918722468361640079667480743067858307588567065520714126583391911728369731949730686228826726401364311966209112983907901701154224500813560546802588566317341253569413689252151503831471169825210685226378645755869079571632591067509945957329727800935382554635598711613188890643541120585617991719837475909592979063698815758427599527834474756761068552235733407711848205672756083556340842892824953345025824302367664662086079338281350843798114481177511390110726594708316553675809096701603906846979168661921004052418578407094069972102220034695193554609013817271341476811841760880417680833209543430413499867723255599431356759273997443129060955970452825139427752034821744320141669433323421944366491301778748333914362154075106444018644889255193274232149013137337690862083377373493493542127381436025509472843884849457790812379780017977914456249301344837652619626822373082364941155826577558540834633316316595212393177406512144457636363478231879500482899418442026319997719236008472679128691437102200714459583366038834463948173616486078955937959724096290456927204745410471900389501164616691801802750609632230079730678415548793825627800496729322455948706651797237992345083481351845704764952173497875905248910074329020816769815902100344368978886274448120224900142094963922251436951934778543163959252795455401891371765934514729454730429255627057952956197605655359854304820013385922342487937055221684294656824084576095423798380985363738598936349473257437764845800697521561265039062018375963974204860545973965450708798717845802315417067795239519723569529300050460223472052247278942480546491401938272152821726132307107741843598640787665197775042905433614002302413115937473339521197239692722766446120995929684340196355711805535277379230942623800125077360288465537768343339628680967463766949909320614016975883017605439309417826756325466605520872154698887305610442070709283722112134077448462631740182358662856551083209436075693504369979208213535880740250018738072953257093869570694966532514550979425846648405783105105825075448760367297883397758387392272127502147658366948963780144417016427059634189696765617257222390988100032965857579432025509635157047728435424340495796832147407370881143116387161754255923793378812279667860343336665248447959141897970898828425424935966802282665835405189917358921733362599656495839427345798742233772409441771908614265666949112468988558564281291820893478164350149284080514053491617401035050877331685774589329980467672869260859548958783149234658766159759876341307837529284187746838556969319572516997049029697133095615655554253203032779114788522854802052404009416194963398557893022105959683311501889967643730038871243822163879632597002366680761603705902296708937359986494417967697707727992678718151458122407813745159074482768799255616497302939575260753282172656955290683604519325904879582014254049887560588006334736944330489398163107013071150503541847839039011029378100223163652365236543530298093012536993738607012798342218183708051174282411171942495289731586187054063791860039195932870694138640888726482456759184327415313513672022239066091509846175075405474997075741085086870277564249981705678928287112277751345344152079236197116005916923830588264447588171223424735747572689770740658108706399192582971648284495900245410985335472824043564651320428789605178422178239186142892365390736593189699827949376212015205747432860006198936864439577570220848565352103198548574454692683982299925896326731026341511135056998653182614792072334028519750832964921818064666352078943299315867656845934249173440071967064835130042055358935952163439014985130782534077970673243830234410017998342696914780253698552729193396039349581141090695851549958447132323993422289596639591295517527047778553308295902275153507826037944094602018513285867990169455685408147589182766972157973059771558189672218379256452694342947049411688764807242420664986003488414575485589585413731489935855188674684897936262922379907174829551285548864490981071236528595989186450320485129867300983369193536976707022422913569565199220838132087837492114373558458739890837081443569553045309541254381092513220596799010311531391234659181513462430239846433575329391033096274023366845263150283417932566610105493487207215281580544184465199728018560648967608576656012057034427530503538258592388217591591587860869673208705845982005768715158745447237177058549753975305381042909109753531110183387345376057433732058385384603896935562971880480313781398650108221570552959886510386297126627013825931977231058956418072992865092120841175027332522470813349885756280405422277340535964311046499143792842832291809740013401657596569606932909035461249521105799553309034638004267933542226414779588988520897263324358721873676710188459918885842529209049946325860331823987986408272221416767683100878660491616751553498312793264903156301021507698053469688995534931563331450266961079506754416908222924620753533874113918526861928551157795148778239638586975908705352822604078361712136329839152819234676674266422944560571372756600869486827260975713510514031519009895216223956138022185260774176266706602716591724069670879319927371222139849419845576807323337771323660690867180940441054461240969253583622422616715983380716081038549649117866254055796649508608455071995607240512392032803301986559027489338950516345507821559180719755671384889781891292564545826390762581590292941356485167664680021945647372188219558266621330988325282488476681570752183138189207261588064468428048040634054220964216052391239491022312775975965446678095586871999014686843394483202155954559139577670559281800855534443343014715089132875984864728397838327092605603573341708793857119482011981856602610596554787344293528744615329706104023082266152562592293132352566331691784648935816240209949738781077973235678855437702459668155320396662205755921572994047469874576937878024110091119710641846604789244596930217725834809350444780029489855906887829438319572572436498762488567564191767963875426813510877786660629421253774375124326718660913854738140884373299591111445116944995170961407761697517086663977683282044496957682480085105180331443120059911513472127083520407819153762420413474000797434365374704809023401698447315977301847080012315662509281540091700521493499698537874996128104316405146213897129479522326218966683710657091321290452973848815192784015272738892620041012573241445610164703391154065935788230673452171566479344447260987721165251396627599435494624097065159269824086685346203959347511057480670988682033500440349067788546440940551402310858221746652110823851036819012332414692703269623702340288755581565552886887657378948784755043239292622877025968857529781828472523847227162424560134987389013028606374709438827164484734583372338887241946655415085613756431410902828313860337443381921713511795405534590585433394982295732097437159325713146458315231412800984992200282348253862014372610091654466775277156455509943611290091693590410014195759503880496613092951739091098740254828071466725020667427718837192620959999735723725441356669828179876336606692832281952340828925888378463775485898189318388560519077082627796605121772437728799296579636003285935966082855528018325498282708906381667380794925626080419703323700841007906853748258376283846436742539123477124274708304247386344564445347851503435438085947392604245247686483491873124480373958091383768849025080970900919830482336342420584575820631924190621570359585875128777241774376358181292700272224343727075255039680050902019622252558517416721761708798590328915058300325494800578815771437406674287053005283043220833257627558664889999343582922965290129370607364064530143589847589090961162553692592392301562427765990151559848929896010997351637987600187617085694524948077072816497761137835753653054721817944637500535301138448696350896397451009572434476775485651715442758572973978619529288087170715673646744961200555686688520266495079387116322808742973265761914195183761367814564877817264233160069981373831348687891019331531443549809598953709857224149095130526263699040974388136731404329615659093681427465485361100403631456345918992439077574397105260794064167280167770829321006872065590743769462313255898718161311778617013316594291557830218499075919719598363065156591504937080874427327323954936684533598942846378965744066139275855849434359666556651434621201758665599837786943546520953578271378092050403576432948232366419452222890768465373118030401562028447190051080400402742124043471393175328487427900131214826576566332476485894749269644942739824872679016828764676541820197017364473356927913643433303298666821762660287456061469836314235062917386059273175638293374511051349021159856519650314526692880188753752894799051228189427739212632804685896364506489457887836241953140976108455253059033784642866957726003467088245424840105610916200898271100996656184965985059715124633451365852182045555209708167832724252480271822666534597845234767766108912669316852702020104547762928913086610458155494912106035754672413877275136784259133549111075310414270263935298483127178868730790128814840245355194208059204434252008210783130275576693468624248373326139272834259756810935852811537338887223687226866917156279426029519763085451514457715156014787134632910104684380321986260045662648026958185179354940448004334729765641344558961712653935143165981614603795028386612644206251740599239762886815268906721407762051285201558417515367644686352394026928621735956824026625496388920561303772503575077467470560667692064181363125186874935494306456898095716684830496902182993237033346366909179455375463214816073719674609304566480063020371438674356844480004420004409780011799108607136189729013070893260215810212674159590227185964111474719983999437262995168308890186283636173498062803959401460752949619816905731974898376792978368480034907931324902372350972540070032640490926030702025559382441533436720154075182893570813081168818659150038019196045728960705969389894169244571984349433846893449306330003626547701888553225750156784412213706271108994285340944153321546910116495029876794887221317466515704254824512385845968747419111727887087925019037639168924766064327659610133962049140339694715274838172841111245153307266205071675844578067226419107793665252307032796156261479550019617261668665160167954950578179106811780864159768790311194760192057013410555165435668955314215153989111313133184096828418379886252982057519725869365550618939391623162638824876739779784651623216132362383279029663767381405077659737242789875855619825814581354103480389146438714732703444359257893194444269645031240251510377654670971176864833778526573945210885151770938409305266307286870502635944546648186938377985623956169816470581500553883369117169737169762689125665452877869599067750166361211779278989269907531485457568461272182522007598534622781164453444308788390327887821253109353611042168361634241910769683544489990620194199299577605216586021604090846396314904658542973288451967624604875911274920577922847742344617866708729641971517692891221485997371939441428359879895132183928406788355590437292355806709498230060520794609932301174053682766247872156611064216678376116913550050074466985240980775196900304863455488752566210950310167114688104352784579146620995176857407884363030221088407311415711471845114581724176241909554928660196550162110827116887799136112901210527816030129061037863369740719605027418613025332747359323349034508915654117990655565744885289528866436647118658422950352319388168556021337969289340584955955223803521587545582541193450779902185631694079314650114010905505430831599061760137799992978207381611516577930396069666049192902508337844978561969808278189472510490552251260783499721843874687647121812043051076743287180967115194591933049110552627289266046972584105095788076208912942700974409309780869443772943906569104547457307128769318275542459203135158075293065838687357128003023625750039818996900444030767978973210842814466534315941638909656651170268872787942961129237271583845195113710708445465085015960152866847026387937394154631164491599065161607038645096594440710675701520076912891030876351541666682080616709467350451675477394341322265814514590453915271862270209775249391929669198969073390277456648944505780456166390977027796709364689313071784768124141108000429922940953512086403009543093385319583661706253580988550706840346312270390632578019700211120034590796785995617944921017052081378280808319435235580478902317416128175223652976485058077734592203181495506739518943353955696648443100993930452895507800633119012311371752801692641657366359804619225783960661822122076653833347455303608211508968185345527724674593210051778201327607196630145339829841496914580380372502900165845336205496909708911635119490005716716166147844894114465461406482020019155761619102298041598442689431557322374695086055818541980032161291216528665959768170494669891887589505338967918934017675039516108861919842619695494726633292016503476943513971998645835921873284900909453632729093359973156686740356417438950287667613083146202143377207995965251382678368577557561729026374970658573843751558888088111018963586728236341878763092746826083035422153354018270317057123728185239794990945571725738627730353539677170412064945836453106349810757211611776398187846965237036523173893989315605772695884286406979535965109223706815776379187347755503358126759944347135630160179177850027015190793480866159424958912142295194472696458060325306306281622584253987384244230818412646767924587272442017024856299696114556166087626764751823290427599615300329559978545006269449845302089798351714505548113918303175416152175824680523947449040006722633487127040097173844046098314701606783358710904191151615175039931469667072003385676597895649062228809595984180824795379436600094475670109367188774785470231793348024497655510948544611522155288553469079221154615295704379965860107004788609629611512201616117317402266836997937598222385790327840445000698106028036781667351709571363238969730759421207977751352664187544150256995726538675612474176488630108360859570371422575843943588216950173701697590894016110924535167809400629325584080273672569791113866710132015585280993928940713871041522157509303239221288977855798899213194954936520691307131292982308478052076786139560522189899905458097441537372310383146057570985011067630092969336465837149954414367652788252069293051610399620382978671658647246479687112978379634068479365107037425146796038724971833024534856985758978109039877307608936976795665646658267997302749211800456887792163999017460192810794372680082402431052320910084648124500598278325830314679486106142081209128421723730403585470851736416807076739624487718016436781597584954064651217905968479018181910280398467808747723430157032379919202057593477958734008092234866074652791522632544130868050957474299574612513474888501369535996343872388055101731416601586186671751193141437443856676765852608099026177991881690010877527526558993541860012465961867546505797219266264828214031763367538407526571346600850017520202384576209371697659280383202457104821331366003175028825500929744664121945439833453433317017899925020996657396603425920883896994553549382470027004081463982333101844425860906452635637232993820823227111938068615252375165677523570700233441214209394713232675503173576194036868521292318816565318487227380491154794556787438883685780609401058471194090133686807413625754540437745526436806863728617370109519201332811219984065870474945402883163796381888034246981029503892510680729193467165821065874825138433520329289317959693159377181887501709785295901401103518553079302602107821127486591113608571495479151228035436701217551788566285121189580369687036378522109415950507478985493098047486242690786184034505016302890302867305238074498368948991991626026584102123595109748122877534385256064811051326290874953403858883766092590594248794978493702039577875561248120685157815067205114299926935244457985434503811708294305547135126361527735701291456240465364559287614895000222382474882541099804654644476517654546039121389769647924216853025934785239249276151201786597393612599907820965563445529004653694887228629356204361350627757601124040163209836539839347121519930470896164895506652630303623002629143549305140886561011988778177724474103507141371483848573405664022063710320885986524116086365888510133817076236899751504241118008632106134897547265527802843549429904241311806099814058761133155619850161970666091718860507917457721895715347929281517600836681143542414176854171022808684702624652005862130986290140189477314848526766960957514975815424048208567021741520933029227196996981095161918748222157694168676492898686148650195882889720359684985200557957864917620340039431550660388298046645991155841415570041286520276756208016446740813805305806142337807500533369814990623387103114833434609570117546710693540737324092646764435140501927382656883381036636935291079008743583931056612077976591940910796488810638045857820011038304392295180784234365272224608495492601185537222904730997240458911625290948115152432573347384338327371118558881125177404606395325453198783829214723180837573246822782661351771765511564818772385293013243929526229490307756179225348863988554192589666045459429280912655636136658933129806244942044758033919850855848456961084336847123619216177837756155335400170282090677772293824300235096750096543493853984359721512268474567430337160547402202899442832775027865370323710976688911805571066634588847395993487195834261561059654760063816776048207026880507256530408782148635671843583402200500954717006076272173923872112906584553102635413368125387270131384978858693490865420283275638811145295743221346772105631342272358263348722969464817831078048349526928038837077554562618803891902858235440860216429469297117880027927675361432889077247088765195438681645394521479595455155541948192770790189237202837113299116860680988732043275005932776519046092503010989562561971121352236593090123532605560563785390845785675589912314857876446427316439032948656950674985073357425647516704378960268177549903281436793431864113883656661297572894859045531265463469037729211001673011994456725672407754744605416163238165272092675490942480146671671470684444781467744386262192643080478272368605918968678929276637479544035390231130088473794525025399723573674505500971168526029280714878768668180933149419651761011385289188071575873665011904115854657500122100741173722261121442625761562198943090919007368156233322502103728471477196582217478457877188010628607923597323622032289667138614456465777906759288950170565541444150177648138454808655565627689254836475044433707677406445791249175666296791540510697383464783236528624612055203888309126208971072202177849809268523094084731589291407009748669972957322497849991873509408677197584668059063308644884852919787512657546819131193399763695838589993300171361834352629150655184251613233062357818097090750438936299147165896406970395295361922795783613537383563781938739727563482961902562122361331909275575382307707303445399645043369120972948228847773069481218410379461687441839362473474467866051389461190819310050787180782437131096887430100371836566164131242140779078782286057534325076079958513605652927840477491121241188727314777149417119955927352586680725407277090080231186198401679285556457757057046391322507902660489006870996560714227325860470351649541636067271588410933887539313529025445320786998989073596789369553333916570629195030057486946331915762447948613032926825859148845028070065207719369346809756091231855980728063006548614743528281375314595829448020753107450998148641679782395004033316186053120323720119102635950969596272549155750105972830566762440775278859217369507203076713201634909209989224122780078363631268064919045985572278579571194739550740841013418361234232472503217892083216079410908592995702229099568405979611425633502863530411710444446400555621402236706200582653908133724986045155474081108640203729581771476865517700371860748737410375042847175364082771765341017237476682472120047145926037525180004943021408952746895489612348241916319131306577926639153901109618512697424090142298487466518543546681773011659032714736179499453986501081244630499005595346215729129873348628036356627366652326317499473252237345627702509781319467274446872331137135730247568270167601472263930593126784331941683725168499518902832311792361243065504135520630969594130629634289515567766888656654297130014306133689343991043626527546914205266146556599556577710220663690413740473507227735586146367184770620861561940798562477345382035375433702380468276372255864373429240342745129019123873759868233037847233254228584052785438439784261634120741636781314490877060680905217166213486128561217868944861922839995723551362397542458264908993119332425714869444020275911144572433907405480340628227477096184564282535957264013852839181832340174723973305691658104827072373215936919960801259827734794478555553428847433858581035305671919416941834965487926409798994218890080720295064707848247979110816269021951655839398697500617042055328214007665467492339908148577450143477548052216918475184119090822542081529721955373358939768587223482833674534365626216951271092050728085123509277117073800625267737371205920035356628449332705886535910005666295333203180884119034823828928335113094805565508430002786056781738598481152910930186529612011796515277682835717989647791936401634471599621655305925969759868462127234006271842931071087555591542742001802932991997913406474553274383062639369692520518896957954323867666013600314802178460374410017122467373780371596446598373393373670257483260485629434181159713321651535040622547731592668490495493339088073192092844264225379328482498444191468719079079433663088832593410497902932831498441741208611107987819848947973144933658445364709224999206525970366701971009639362177648413367183672130919707844619872053090366801769190511552471926507076337557935419113990715598937506647550781251674255192520238656375975433491717475867779112306427918411049179943562427517119021403253978720720103711031547594373605759803448927554838941920545342895803610204132937283443269646029083431785953700459948023887203803482196504449757612517195346137966460050768909252369042532987272207037864765191461462950974855748978072451901884630839422215263149584327693765806319747537983340350944505325347668029620436839972197828736720801474969519689234288418761344255354077543384226925091694420515677165286620104890436813602439922790533264903541751002263908226880374908463323510446927912878072710202404245405489400601489699782557551040850252319525588817176992717400265870811213143012657691174378063514039611428054570257325965999290661059434351768953218212072175332739840018011078847748288864345705746266094268129139289068796629592609498238842966590557699751016431170962169555724390758995937444220432271980363340908985005251650117122797108547364279494646172125931956840252836790310037562445109257319807635510684055046470328248797516612677800020806147555447108167244584168423050355789440235901300201986399445826987527019564615290293914094515335457213219110275598554335821008757353171019420630650984842246429433559852311026153267901781677081230122164436461466084836825480273856740642524239074710737817847651292596611669987853106475716251417183113224196705860029734640248078594218967722022637852347508452453210164189740600645862375724125677460636674136341782189338063181115479277317746375637921932095549215756583871683994532139193548877035717978741778285981310321896587978892588140487429306959009295295103588515389870076134453951828869717986736073341504175958842887635181546351445117859322021133843310261679088949315216979655978512633691594334099980609455942723296697472421714048363697541027801352697259655032060758160429199413209066671914828968480432110931288589865841176154463998342976468355179588408845325200410470656325067425761211231299534686135383821950438169991584634006648497994794731447358975833213327822393173554643599484313458894648113525583019327954224740456825500467471366653091752015870217984595235916376321042953453132217590770231567596173348152702385828073502498187914236881779797886859078570168912812999357339225207179797187413074660138885088951761014105962594565826502505755714468496608240116989703807412528559103955432966854649693165417933637851888288713994670849624841035823370395490876070854732212382683993702635141601529083675244064047895798901093920985970504421966000979973555186165920419578264165041406991496198438217918240028002958589077914315502427669092746137850177548540541396487518006189564102828242766519718105796920063880728207925409068055304453042414653233903841680850741725775383687124494398560343634035980806635103360943094672260067628383796168173934856236119504880497478313889226014995471751471582983998818473986882720022928723429709713460974760815236987395968652372488267066857863742546710473827615790366436564847350701129198994440136037522338300777807023180804488193639539459924157143870119950789838839291705788344606632381973280275304530961106041929114052166071935807102509305716661537233766902830704214710430364944837930040138308955424598543097296579662050632282220674951989669885645113397017673900937430659186093418588115482921917884878272912035462404163503847455045645621058158107320360496353181762945094627920080560879814102964029411392055530031111332245103613045302100320749147662985301820027135409779474742126907016737381330148279596187337489384159441979373837408183910602568950300841977546068518234689738010213281776406527390435697920350165011802024630683712173684470716890755121205828436158020176877514922698841569903991721083241716476593650297090869864853169377467147610123783254617159408875224979890189053088601156649286842061474015632343666918956807734179080838783698934533108189953265507737133781507646335199213036778348422580280284478621250361517024565677597188814096102603901672364546225655985953838291168291850099176366462844957679423020961888165457630759831733693217386088633772606286660900092888937884881296477001260129227901220601240071091157405330663349242596907033879899771130507839374228491326251387584108657684056878236010532905921007222759733551486407240091407132255241216443315639226872995199528456094257772594817045570557468198679660169855899749810663233624726411979069696712147622229234110434520153179991781976106090487292708196165583971895586451766605766590518694789729999505252683075434733742826941214109208632073248506017860556576159928862834920852852372206669141564314161653267264213965652447480387476735911575440831303500054044256968923216068070145338411075085531418456260779277178619134500258246455428161592135242916145999012641429102407996395780878916265289038826439590082511685919503631811667183989335495373835330042719938076773901613678427450455961502307762685779457993110165677830437410182362291754345441238853584350162423211763888164194070859563747312080753256209490930829754675176621965712920841197414541533114227867295080772335318779271065795255948036310305312412301574223009493149661033166136803265372643880421122990689155967643324811585294721347399749672292706372016657636259777306166754597572559191470669645361448466663355754201451291741518466363341997530714189503084528702224467096295229347122184329946185174706023101132329634380376579023488495624257114502400181247469647736249631784070175286852139884332211310945961429485068898626946745907755823019300299327824221524651578666739503963997277966178712017546281410135206146289400886094664192640350422946108332438552204619478013968291169877680823737386519327189719482934580711216902872823698231664572239793405143723253819923559074464479165544250428910603857109021249616963779026342279405497478580973577890697170349299018129045489844360677040661525598284999348564195900922689326208579852148099158874174713567185866866413755673020743114979521938352170236755904201968061725640470649686488670889018778912468852776863564685793717993594690164094095602839471951147561594038598097832766680238876274461793400032321204258701076156774436985552431815293094904785472815528156186575710332959678545855704539889399451653718726630773699682887570572722066678992818201065162833219525666730394774300375081143112438150812420831095804658308679456985545458052791297844871318269928138193994360512235220506274143501198612886655356469286115066420974271151823436070774820977167254846458953368370929651491831876625759825110097499461674220536156878892652354935814711605369080957529943759249511206219091773292598178298576982336800063457144492827673024837027164566980657348449107067392594233516640767196022318602302095529750303752522686655094596847233029236493253279111383636447921287538063448153625231733737743789202634075310704550092443296062014048013648380899637896596880959844367735361422857880329121410844906115458184496508550568010027608666756024888126949406094074019641531160930919467665135939529642429035665461968517602528394777812963741412700001372295946498239866067955341241372310670127061110681476446822154521090001666964027147380983302190847134932171242401087380835571282257210418348430835884280834804363946753154155935608149799191906496410372833021164905760950897483841512564244473374841634402178568309094729229124809986355224899249232639308930461601844539960069844022025465061558358930483759275651178819338747983512815795485578189343908406063910485960382635942907319666296518008578105080833466626491632820388495168461041511272915173285707035898943068039571121540307930036303503969899444846064900940916845739442853052536458473178349877284885173172262872298501924651966575684200199671619266862059635591896615492918928076379010772549008788165400203687838046011965420687465605807070201881129933857924726357526177322831939930079642752099465547789228107301130467067109878198131626854241301965452185342670345638904302761731966569753182364437452543307057905344504739186223623838813818261725973968083567805129561660711818180016799146058730418269735525899078069607152377277508839462558044399961284282327969728857888264094464926846984564178584793742230267922683524398295195711925334705021920557352981887277597753523619320805742881568850346684125415783072300274570631932363602111461622716444174554411829792104484199098315555648124919143791869175613478577665878287986652804389885017105640353055978078849468370219806719219640883598240956758115828087494806807547268105798652862185257746222579049700309615150688107623260829104809311440542161733312831617468819767941049358666670703577473621939200112749707071719116219023210843668495225220917854608200204219172892640207380740135468471220620120202767494336407093184414710649936680209170710422332425685389069414176977877647989351940126737556762768316434702712784155169613924123293582753806257276018667365040123682395728467444954279413282223610784586814405749994679974040317553715684373104401720722117821420681886403674534429032588014887846389112966451537741096264807129987171614025179415464772554538591943457810102028394818206567157707902302440504285143034864368426588603870864269498546352827298864260158928212303716107569006827566720257466474992104830472450407955328466990015838579194314385744125537797411435224058406552106068669900749998671550031396747790231653829755993083727027646711076620035241168199148260880894746017659819795395831923307052900669186084179720603612995872169959459376072271640300798046024803422296003518602475640780713340724476395788815460967026085086816974522190338803259352188123490992901803808347897190146117121276201407966360519759608353490112640298018427302809762610828710576232899824137150304863246847218013930783046662573864827145079653839673762617866868821669235890157328482546027358203119615169000028183310277119076640708607756824168022408936014641083378059491985133355585760038665670219264410540651654760742286168197209568280014762713006678840000611921005944252566904337229018022468541982625805001689815257759171613801426242966015583530784345080795537198815550986004932544536914557193635375047043666472316619983345939583202114257103212710908220186240723843292607006031301499784328241775626872057670333459456765846716379517578548079070701702659560021409861758346754975749140144627870367421313677300269250348857046190188118272634768906963886767693992433138766895915393979800995847775959993635172463260265609661554757592604891238995441769012590481686515388970206518468271000247890946827696587329118769971136622746347811403861933876879602027209259192627681372307612166529708495087163385169816889149144288225494100489228252145610912050230280045185455402075443932769042530993324843130563989233586260525257389832073748930563947832771983772771192791869519426181664167820631021934575742963348281613650591140446274352332900134679927879655387494773804380103829490931906894083846625611972139722322696710956889909077714368643741302043479955842735720624386200396814202458149509336685754967110804331954326601776559100612326947125844587969361608108848969249701309663294023968307597495644008685343008156068399350552576097909474967329015679378754314579671755871206796352924356735108994266912945997540492449284749762705992738107844307173160515977293191748962676023127202072860835105631780494558713347815094271540851662945756619243869254368057905540633927463014701432352839145442171032207655867019705798018842203435140004906748126247982502377456377202197139126821615848356826010225937653746010477674689582936757078071364008802586390518233560322455966058737293854672385942166113983462947071663198096557508914054979878649723247237348770841103152819346890400264726954350661292606396204720106783374602285039080346807418102428298844421441553779744824071582575674884518404627418587993134441600621340371205587652924379131340521046837758926314396023346713498581485271956762824079721968584800718019713306169819483394026655110204911505283178573540002219812210430578567566684512385560064760970284781034464211253288415017737703563621470954088437674954683922439253634391363501183008675038211294061378554720008732534158491918856866264478189489226246458987302933061069873978936808338245928875884759499769000526494905626520863913002706760448865811735190001021859129378928646861502088330068063719308189996322643160865082166680741695632899085594519624427561188424062945918841050520549404052477067019747670656104879789696800706084448478656819385938807112413247158540312876174081124934662639604847951652505106516787471514381667324446898955719064784261303558679153380317434666428027419459656328145972528429138897948861330410996035793650925719398280606882152797488854376062560070014650937082238016634336407541875243633967557827156321442341733121355051530800775110811295965545382070850908139264459216486927199964098678932854735920599578358563115376641756656400702049891339622840834938798629514530812439265846608847820059727370999229391906852833855289438874563983061697232712280720384560420106036835754603390769107909880656186885903812803586551055413725868238218519985080789203970124179749841536066000802748265389878859814572789650111400945707199318125263005845205126469313835319554720362583266762815272570685910093102392262605080072568759336468123623109363236347191695687831963528628489877046104830378479792969096305322205980808607475298848760706894820475204476129272830405295426026540666341835090568036168852402001543595172288857970883771901932872211486723187671081460063982763473083345757625140579124220296458498810278272586170097322036953590267086495121638625907488288356549732076604512524977919716943860543590333231218116803967432054972021753551316235399859417109288129439690949507755697902336025280271707005785178620666669204680824210671897229468636134928748433948941862269822646491003734666763704664972858021412549663544772707554007369625286840379504763031201894639337563903664821337810215709431322911001332304639935629445030951208332846308080516064804387268830311814639543600028995751987208591143965900662473982904331880291157167560167528287727255090985960818042098267214356512041840109117147871443909504335002266498769668866663834613321071696911818151292643297273171465393763551139211448259887700985257266882071562669577215390629207580192090760963910306810552965554616920962564264148446740423205378885510804307924558674049378149079039601652381275322033236065555101386054204222226027534595989008422188745370701734326392168431457198711923635658590147635000409885487013374676407418446505907090849196820452023769157615750746369738170750060875348312989883742815982463413712310561405025020280322270672975497754218556082393799360168118929800389159087870158112803799540636411303713798301705632535107990784851529540220523317971217195991328761367314357419774616161030294022552817372055156555313971697901109394893979151959291630656299310878509601343639725106965196060177883515700590430074749467768442026707365025103245814528115010199599996024559953350840970443085613697416063624990958114997633168859506874310117617019397535087484304149302885646483953856697287839437818232896304259043036320618036321146705536722218918278282895318787454511367843894881092980084938596423978236815788734157445112724563467903830463981010485453068564331827358016149404382577172125865651101374326902654187197278291977902331307749672996557871651159351714794582912074508223924565533347797150282308501190715699155491088870184434874484483782008195194367835564266790911634000710649473739271766175945765955234887601017844729693274019885028963540606081260289647210661641601241012171207784703737954749699838550825525310869336887776330043226601361492528935146137860474687602582790304366240843292857605399141111778916004359733999259888509110562068201235223253606445112501733384679974285392825655877550909217913329006855370765241945122933917671153751737939859435247855111986464838526054960566383642991809491033839204513403439289371388921053726692068285413326313122993339435356116600764827467921180195757725741704163195497307602812772177837613003563316589104185793244481457041104436030996413277386840025824385324570110468946446871664021771291363154095368635700848280926009754826011203452087443361734319742301491890068314770028233271706954043178715667918967644170964928170474303161849399879707132028281766882450722311938723480013219499707453838360443966214154892525389223290087344621442860852986000482905127320180696078582921331560495596775376649371858365791521941615934897325713443028970376897142544139252356257920748590254512473639980004045480955770246255388855032983674094125244117604301525807075725901884733229848892667228714056465956371506578119021923554481223905202168082339992222779434284140219691554774995324894988152132050298392906638086330019565835726503756530695460919473696721321675894648849297863759175935310731842704400816031827564757901920103990677343866256240780093860092304608009389214102654650068887002865887428273957908006137903019906337588060071731744377233001424709139343981420313535226675661216379353487504530614330225653005994712113087172838264674068334783929287669869621349940840453626025681234524860725349597521432509757580578531916737550323969558011634633677391036853543367660592570850827877336128013503502399347627158799019440703788396338682385219330766853838197502381416092251756436770323681974741107110975535916550971374136693979196796960753421988022698798810112311593555526320876964325951889377948050760745748730407160586903789713041809973276058286200126791598028950029568878662710970076777140716704032303597833527602146353497193131965511911382114751877086191744990538722297514534692019038063824792262806235951395504366708602266812604246741163354614518548744428395804611181416397237931160211731999768356736429549084393257343149759035267176589059901655700228613349888895419282170007627721910836373184680719578391962861213488304386538850681404634808246261904598068147531220134311291327946065257247757274215111514255605954908661265553847648976601463053181923466501337892206827016296717893372258338638218170056138735272650817513726425791992677928116094161478398811182570203330055500547425744669926125857979739002570744349431498483851662336746265017068328835596015158612752006419437343543146057685618790851640522203558109064591901284601881907246432330764135312930581700684008235616728015550112178126838917351146109938150385133661921131608119092360570769673005030859516377633267293640413709043375679369109251226727834449972318674506259064478417827939446869086259198384606479105088060643286821968205033848973761325345244086213005992378630512542164806872881088708018111824897803403678878136495601562694905518619344550779266495986114413188723691002902067090054488411929570919131981973451772638502596488558215504704269511277163211216208994540199228010708777291881642292656222679792099323979392299027521240689831610591535397186428655880946601607013320292292037797752337882201459748339298606758618039725293517861423775171864177739097383057863948132251768983096524787669761469967271369387711796176175880398823977569435741806778235581637070962832494789201586796291853074795303382940642539878021176340543844544794331052784329166421074793504960906379645151165459569694862684822726852575192107957521116887070967518234046805146386553670771634435219293089733347773989252143944812853344748269551723233055572420750954165116979920526759254659739823651704754022902607743917252035187683779049117299169114912459750824577494401788833276076317016665788751994216150855005281431464108985018122441902044387697882440405240486939688533505525438922040898627112346081438581609927364536681537908891074467762976936811923805339910245646131868804749329021720212851252132602768512183648779833640088771208845655075838854268123374553809531881473017386924721563610073075355571652285752085802489954172886458297863495510832411072285097803382625712220765031248683621642529735667613023069582842670914409974768997579420386572216642766431273453809034469920690627933542160106742451318435308194259815492090747064375819269093345472326403842946953399954019694934131436307861191765704372299178739054702333158917431257208354778207867830168852493399567489680346651512520027365906148040597291233485361699652217587598151996743875002136885418065838129551607871283607184350931596471311135622957819730102169511671242404133047583258527108641290918683747048913080948652302148908970399892584264251563838658224119471164257534209964133009190977086005465411302629980864033570861107215384586309822136720133235011697151137348270841394896719036033046538959756187452550872064709799376855404138634812165512952435446513435331386269157575387810241842551146109470104602645768045023521455270470721674407953673245751843787556821628851858936099864281879926377842210266448319306225095146055179112820284009224528391525908595769967713994235281236259212996890909728556641727111501322529746742840190997616542178674141231552913398686095926968970187338166987213356283014357316588032735068876957183336885243928680406742525162171273013555228611410119942288710738058446510466529783293482243130170448009269565681195809913375489727905060495460505615850380851286171037011789802263068155676869272062051481291673719741899282615018048447374196636990593252180215571144745035431436337803209427410113326303013324587775850751247099943362994101017386527359582567114325832798928005062673706362894047266106800299383934652866399002901606001321436074922814657981339756048425032326934515900576978880494237688991824896126574422817072994381295913298736252369826428477735569597620510564937062069785372737917372051478716651466688872356007367914066510069297861631515497215960326773442787130658573717599188329095380224836164508907398976972988940287652597834170704100186720614756176984996431884418174127073120554590665732734154352687235259891121086312156700524689688276536728770529768898236784454851769647268222265291113762067934290923515898340739228411642655110464771853120963918035548546356330359405717617616527705829064626635862782755404808457573308024579160412575062862034692868054595137013725756824571788685585568099480699731334914934052689438816236653990642719596696391338887866967264794538811497782273714948286779052903519845627268690690540848132882781256199817251178855232086059854089799061097456838643735449439047440752913655797406590647517928301430350927155088476259357692829624132203204128853863664376428735717689229213203686761854251456707238546495347261136298531030625472472691491132059799481279329879806394827842787017676217020787840454570728726893388628185762951976740266335636428025533484920369033635328187489326628957252817203273559085540470040415750627030198394891690842204625792247158547380789699171934291128286453232460422385919612385417681579744040815318040377399059826686028060015723438190426061529112243343965012478402094940163873619697783778201175050566364748389221446498431909354607789856229865543020986285730481153375951069798053795573295652689910873818786964450591694708003002095084415727287804658231966166870579720338845007872184684253417324945952180340056406964949217492376781433702786859293588469499947226490225943057160670964352456525735847362656722502365956174813336609738884074145527242845929667041932218765537567982226192739431358575160320622202638786664969504380287450502654674496932751310258368192338738354383185979822285106611349770133368453447908769546954024122774157148148603022565923141480701907066869875225251917860537342723363441487896499474257586174087944527704091374068748175117466616264042166824296086398533799088945103247150124289767219273389463198700775439045539499305987526585121438119114327859724889605676835231772211115740233972892800108712835534899143678006891749186312849661388095280744138279949922112372986960446180705564064157614457165072983051883554437290287052123809691599171697021918108170748153498336414716382439659139387222420074534063680432446153947171659569903301185659703134770337672617906481538287279668735106342579930190534235883488376493149404012634889117379651873595602413451418148845215653447252527736979996970026109792195362786484982373975559240167318693607818054356446495554154644290358886369876102841990507728895118596179495892662057175751639172320331029950529768780833871760920340329696010503611777945397822401095819132647283544404959398004982785172783081011649365470946825813318869919058066196993247545995460212830040797212031662487991205984783211568464282210790216303809098135055741339041356616871840728303193724185063602411328387635013117430286840480434743636629419524388465156035257587298058218392045284836491911011092031916014146729147973903072949915601258432842089886316962850843515088723722971458562611353777004550500588476205273960720870941033953133178277338409387740166548116724443224660162626240399693806365688221479350339697155581948268739952045415151018803826041124123360088761070147009366462407420380262944634310245749708465147547121272572075809048798320485902491757900523222527348596735566193717632837450376070206086975107785515582341464787131456034561395460241382302098972613710237513046609767420892224999583935073864295286812197598960824441206969696769026187293012591932012252058743179962180412771607368992003521404364828418699754924764979833173193771512267805181225551144094043038428161494024259505968942354166772391910585656043592293620254263379241527379245029491253675510822496586495776608283577612302537903429089934873810304222404780939759070466686473858201522665999615416165656547683710283293022406248854104779208635874248516175774796354643933156088092371054851651394835136192387938226983289858551767222481234537846749491830442379169279971921742744568626881296404991691227341383099255047356194728948709734744928527957911071267955760153805847545633019771149090663577670139793807581215665188434017544677068198141837486250553137255980691505997381927982922810912323904830688431561684309597117131998704351621890139077945107733038561756587884321441739732396730081730708669697390167797199927251449007041537331848597869027900976022494514005480384031396820722959884373092075448425033133995044999710598699445486027889963651762918014382542978269329378815850220821085709974030009102827075171243577325277848799534424000188844569309103060014754623890831518258230435503089738471354686776747925944958651365287919872977600944175828608371897306276636769639383787168350517179780300028741261320388497483214649073255361922326903516197961268316964523077103858439962594585118826185611748163115718144475719738097896903005484554586513957357590192421271773605107353024891337180705593501658903050346678071334942740553278933173977944217411071160365395272665206511439961970391292393591632422147097872972239906363483701437921489313825345269235397528063288512714166205403217224748435610956269115488701727043423204790121502996575705334687807269579895857728420965283594069549872131320148118039146317557592790382673381960157843402538643833119136452643146299561372871007968655278064212624933853090406041465727580590852609788949793563438864836000102936149352233514907178475802815281534290368130532997479331747759808918863198607793516159073886415511565649354458582433544836207471293134926569115531191615213341675022935841582125102240916013079233590655807605288995961537636592454437484652899640976043827429798003733635981141857407634467359770193974938184890864923352615368573418105356426020126129199042277040475310846521836288967229347238794926505972665148981208120979179290280337977704685857428343091677063610471778519859994724738815451202343703826381162448270037698392123943636024645355595598509191946732544174703655812955421018273489218650111743197814571053337739182859442776532288821062938393598573787400379168647839898328133675902348464155426002468824746781149046328776839279030842863965706923248736230465145252276808446746066298682172683325043347102036960057413863683476395236981948720496505962904763866422738709117533011824462691607568326775747525859848441997283492116564454899741787864551890804007352821117530957447682570777488112705495118415318605379809242655147502748334950331324237019184768524238517638440352534866363604401438602687141249138356512332369067828764185042797895793995909021753057935274864761137287735712354356129747770885345498757327896173125019877755277873571987937781719869050388828760734601557258099818610790459198437379023748894265733737065872832247950127593951324990318406943247514319479344901545485168643674198788483106312745869218952501905981696493943104502634030556069875857249870280684324524759225687809727189073176182154935740760316899475024335107327608567259674406635335784360920377571883921270066433210212534009277084116815870336645898387418006722800536510335360478152296238433242284373700023730577495019044904884257048040553565295373066461689928106505413922927979070736111710573306866783487217412828749783539500241968161929326609684500158193864890895969586868361204449612605585182254313377497773191299827584843427638494016184887034383405607371093544895105784343613219513599244988387022276039440988025365663431663712382835362976064531841013268513144209034317432265149889355773065294595576628921032261725046065235901270249133285520995248274878716455458159478005572233707974219455025155706426392205460209017475055148034792542142298543843254327712023275703302116485435850892091498778547731694871101227351196365035502063837626038259637833463697440207008681077477359573089239086363848468626195015938428821947524899063186348251904997987660161581873231825790370062948512127387314084663322409921616257666636111052612108337534581052539531128744873631605922487204348675324973776440831743620377665417177987748733125378952264672206759379197386270787919104499914467198551003952682017941373957305180480024144534184496900136748554528826038428397113359782752805678142434669072975382410885563974496814582248351866172477380415780072124696306884016487555411791200249816087071377640339670370910749125556661458575018594525024207470812224624684089486044412299478357926874917899436505414461807975212844206348036525094112824714758461537053089076821746604723326106757320165422486454850097410891527910370101862867240421847941259113678541872214470390376735677028344965313037077199047931853573804682884202744609156588287583100828553077241686484941305834444062763323007359379740089929489048336333585105423956980948404780429604144945530429638294579132460385366526560943060582355148639669154205811893399999740734142129428811986301068908526518487206026401472818472689666659544826160138875549027317124539903699805475334741628686486458807975711755814737514679865539448043162211576418203611942223692936981624373690194960279885754030365218760292170479256388682234303622284525807302767449273406897197273678756807009600787569575585139605455615819714464003892405231822093165279735715454614916402488346685895218656641805849027577080664231660802089612369636723368969676319196836857923748354597935154906260516716824720908746511014859386567036816435594457686913651309572435603135294655414361185007678836855913207223549326118199907301600515775332584201913449484295069814451781432867022721912629094376566849424907430627428838760396737987266477209955669706790035169134609366217516418783656883084567208523751867617462933040468598938919372982754653803916733703512472663999540994689171572948574584637444481802467377793004056043687077843724210399515464379141271239402045677358196010447292481694161720673864712514482075333715863235371671705543740669133117630451656894582318526586118467585995935157995835966883986429296580697561272036128205987176733255868924437788916034237959814977469003478356216012947589711413818315852782419395174378846140490445169464534407101016175302205457284251707818753575269406057178038365913359968001975454199648446669409546101159084643539830685792544183686730546549160979092553945260562883269168876800409397483463355718465938358800669012660863639913467110063766737501342001023217307861391980397830957618676150526449706970197713081230375748971600989631618518475944053881927952859449589773416030041588857531463943494755051647416280793182602729745348318385220512250693003783291489969941209355902466294640372232723735506146551697202513965748754083180094591518714428858219350258749691486362722195709440321278353048585693402982863360556920438352110941647151863825927692257373582485815599551630732488916992724992287194084548943049682582393160371363403024258301412774257004663948963657604666097932039545183483302608714093706055479976742908437111458594189767086383490587930920099268696208080168477877949242915871443912568468637700635735054438597173537058700290647044700902854223489335219867312907732188093993046176891754717998379132853141494576381488430664646983653487887876209135562231356923592454961780382505139764828195797338631528609283370194025348635631892087435484019464024275594982569971827275033921336128148541297186646827541235656780602543245160998030450326774649160361278975684817967665235295402085219372486727856327884821060890456954081878727723599155672961163316662385111618656036923408676581423008719513998490655427954993848546643097746175403102239491352566827736929102307185998338125928394916198288474069846061418737622305761945102111456331019744012041786538536536292651860797774928917416049055958146425914146144042445138162361013652407946747727099393214959131503450428470114135799340337588742710685978795306526326626005508477261115211323052413680406578336863743426639956553268676161197022143265643612355925892965969546820440420318432482535282614819316418414014401405729620198634655090610613382364777669726952132842855739435362228416829911488044598526519413186571547021333608218412781970155938330278397252016233843151271731373318521828837811805366122792017733681282921248115003799619964947394805520981804835091551997360294891909220129320546782975443634065691802321355044379697498145208955365692411095900357459958446376309904618903317378213327655651750706183599846353544426797081577140773036280171225307220098212087257967196710960283439511535205396720001598612274541013264265239232150848750405401127243564506436316626040528222023588727636361117949230850038755641291167484463946835076573854930929834756903166878434729873133865973937949536180985242823972273609465822789065020642276299406022856358092016091804466233240979623927168817259030844118816411171481190832997054824623239080137367992881741214010340325421496287786883505639822092342944691964558478522321734567210340787722256277831856622162436067628159299903407792865738537296535835540833944217098996652515415090286810383179583899424921867949705574820939334026768165948091076637099577570411299351525705598751833075057825992843543666801479023326565241239698968623760925312214060329362190310489613557144760485498333333676305159005210625765963486079636034022803991961744773796053327424593561765029219372931358844643047690225015561622854862441667191421099107109981737867265541623563093514203206945749500942676073564184430102876532125310144837633116670925093501287994354503667545497933049038267627310369582595565327856614226187936222027052397081290032012441219350230493708899608905228097232499610798422939280894916690894988518865902380023862678824755112562126545134975758279486771853206034272856614822745912098316588699440914794411812518277950774631229754429886622850997252641619589345862644032180964700627815698453336812039795149808564647168606995018207821630277724073135986448076168851959567110692992204414521608141660140668719456122733900347921698175937434002481454342520085901092571137403391242052233376977516106447738207598632951621929461317199620697781136047498249340578547811935258162691247577010148575241123020168586320474562577476696930132202565869667907068299529950550033406949805028883348818399174231704802078274004872126342881099066033247781554705376596732315694166851030084803723219099079475946248511014922071041554456099962380029121396075721749415926256707308482843037923375909764689770764658619185093156873653776263121138643188514109033617637000877200826437950947754500080753890693299932942065692896976165828899815804671206421462593684001184486390271718972442880356484476285655023673702861684454451128535294399195089920653589051156888744340561258573403686724307944326527216930518313492648176583723902936734909348904008812641282706640188549337051101687599382577746050015938721364373961741182904090980714372630062552627599885872419686568897835083458306660272023314583621413641944491520169839978787509839504558809085710918518036247384428078417345494228053240594323063728740456188317597402153649692473001857417200071176112446125495895250628089259676247031952769711039344113456301510014932951201026772597387337413706141349053380091242270548910971547174060893915494016900558515385464749953996848280998138485841166794111421981342861342478068359505713400314183543065942984231203199387808581244058085777920639104101917321014773286180998300379273181098221471896350461827383944820332700811384977247682239438804609224870657472338827873994315282957331078424413225348576554224776526710801740950397443078180413526547669970560629754400770731618925007445868040093236995031264145446125309701454921887163669790587759054287895766570509615405199628548424476487504557961258703241504079108799847875023020487289757767343372874274946115367204093595066528833532858184957351325357719080931740388742742216128806259946292866580870928957891929979354759751635112481440123949391455914416032202245287041132100260029353204605070502783704327577414414825282215844981400257313251806523852297090625249949640984083917108505874155546839419798658139973920389139679857040193435045918338572832709622804887640859676291416656464813138322034953244174333919092124105032343394421745228775619061647834532345102630855068564131970506734469887493440870040001732902884066034123411414209708746996707403164648874625864270517738027414130212931881574150862348053322240074870067432524692968435571931436552404019851529385108559283309072851940670804678308474054405179558657365457397208139289098608317280234664430722657096682326992979617697714442197859464383305577502689768528308410942986163796948122373607736553332146385989105086219013595433668084215923423224192348905503107259415338123238002527661718344281499530219485230947813547741618124442181773418179250470284582305392055174353637208768643773907393678811432178824973819133087961873365550599203629081168253695338375177020534034321212494034448633085914871670047116454234647915171830909705098214326532350281601810717925137459556802763217500450627239944146754420901356421580376276623495451492797867421317978676198611154416639600747641785088628736125703781037694188855538798744802011055250250964806292993790116872864484308076489983132764735413425058462466506404550480963714893466344425842539312042850226103877605149986314594264840241037269688584249085424244530506685813049642219479593006341190897692315112506506154196904888693052754501361192365830987242848679355553538176022914725137008500472670319863062023284671960052570592159282687605875911613765643349499851302497073851869923657199460638193865582239659143857434047557471196580534760853424763478690182039378212336612685751666568628804201171979159930322766148796451849997942288029769496429950048652189961790250212161755980870086574763202644599873348685264717779034485721627291113406851555224758201698131802852621309389733922822181005574164696508961001845109645923838216628546980320973059940211724562540023451007795670870887095233239713531777756907778297023738142667655010601144335468402254565169234084314818111041988850833356505431753884797873069641518729877435621371862294111379304603101174803469039582899318417157806314156602977174291241707874909274404126711192943185241464035780539352780889500213962190245636818946767511049494297472783582249128118999607729946648159436131037009103277046115612329205977815241232312570925605163298251601103235514634554259455857672421238780011064919493027421729253238273958431337912687471000063326753634478758483814199450797266781376564719566273721052754275823392543922149557396541592862881796719913772108609922631649263202546810953941698651789492130459979654390242182457961859291132299541815794464563999449933155298098831498123766894269351192148793933516591505306962413238670086591324165822232685390515473341324530268523602355161875614492129320707180568262379135045458926616167572146668717842206912133996692655709248524411064026397562939553989031713416484538624766936864229756141856027393980975261848927250046867751058457931380354551768478558839564706604251094831022350008351181205548799165787504233068816395091206917359977448466687053906793362792134682242534477465059609715021356977183383465594495801800535275419581661398123040533833850322204354080506928960423528624782944430528939744967360462459831127567123173364076861505866560075856771837831670785955944259205840888448853515379198707377084185405808876301185817061498484418428363869893823046635826271678282026234250005974966827415801402397302808423269271867471877088307063579787838180984616376237968687547033169245618331910587420121187741507466767372136027368690964626764596664799654055317299139383620258202401278237866749168303115971681448724412597222527764813832328740229925830079245637306497005322643772974627379730840713517701186604225823394269793736838565680796414681527302984581078493927932059787690116418649696028898236124462777296509299678666144306947801851459575502606960131476373342368929661701631625383825272152612368227751486927216914767584152305106168184205036517174744003487359929584997500991936823983312472651881070140523085021361807234394317072954243081354130859218073559262209542886926591678164226862151167325513348228746985110191171307722200373702534297705438636139477785297505718700593202651077319947111137296927842033412598986795360495300968242912466193798208441913440173462078482075137967002104755134658085357662567238189521633281527298702403002918696708295348224749593527729251433301593840336176686515540353484531828594422265656364250940620440179089089773437977959369669088603349868849113714055226837794479143858229593453687841241392221293155390105302349267124405362956990551316688352282496919413766675711805115860016289791337317772738292752589590999747564997012330700344353065893621527772441977157296431420701304950462259958678721401413921709917202494200383904510754085016438956336746405034185163833701242949239771960971952125506179050037959784931345264077261569414072512286884077107310959780075985060917814618479196413841601254410209525773123904696275729360820444171726912042871896441636663052664455130681956147631706024649493245080547072197399426604860579063027003312850359548261857319878163684770933529213213072475201186519839644636112151311701170685744128956620609996698496818633025561035850470501947284468677752569764732512945704743128669336485476972853331464573072692003051537341792378025635275289746407931024625730938569528131604849176942532627817666032502028564514360396652607488742220976063446584760868372154348645315882397090556138240961085735474758520230985652224584866607012666430335743136867419134465471644221816831983069056240991141673988934010299007292363262153213855849708685908063088653615005269475804210313387352518281805151814857426309459336088667608853820332598819192323721884834136589081629502040333594848584736054308255955856570756421637552674278662268443238023264409369594729498495686454976139321593429633039195116584499261057420521705364796499206772812498737565231678696207599197106160823066986205443633356268112396544112534313649542843493931648581249649461009544363923611012566668314839153366260502567180655656175913317315762086772276732205747036711252566726623927818852759348210970857945664476305125695261555349208480138397074423813893188492807167667467356611342277453801073815571990929518025984850931722782710846266922423178004270014072708518130914821794628485649101242329618792380276727361496884144205211130100176794652270110710683196352106266852699965576442890978143328672366335396769509106599887541807008107141083676084671955815962408460708468034355074737288266846682028697766230927380107058789966058946351164060570302520326719865065089530354851903781340775361068202609032375699594989995320433561694199960583150471376241277287692669415808651694601942574323713665177445264571276260627679455921125219739867320535283821083502143854714874386483732615893349449218129637452303155610976456567987906752366877091579208238533214864175645974533187264959229732364900169039901866005595598400884261044702623355941858012996678910521324940465038868153122906248408314535977572307464725872757148426008519030684373125461778646054119879371543323859443646575316497092656965691129593448921504571632896185715953880950513457733512457785550212541256247556702809455663470035655502362157809005190592478208614318904455276295973294454368446237484820399210719078668641684856508137425149762506077272307533621375044468076218276636437396187299055565760718933391440191926978558757722816401970031144182009777081059642526454315269352874506492143780570484288643290107221387013116713323415269726062356065958944408741300148536662338860304312774483008520739567399155478304077673715669502496576656544007040202290089661774121434713869672675616509295953333870774490788906917470810278913005113831446967177199169232654133026165245226696745842933455108396177131971226970814335000014633346746011119634662583297405426458597053395932969818156305160906937378409400220375127963738713440940130627774938335771286689355068268317667947635528969127952265647189200495499208946395663173286912810768254606603292194435557153634654908297548946864416929788032106182358241163124291544030416389663672889022988238799953066387857705250761618557063944402188533517284084096712512977510876472041238310158631904503950567698548028798878665344672374759743581634836448487117780760117889193017539261016616376488730935630676665789758474516159798051377815463745028277804297886642119084266002343552489318780132110832431148430223256806460817189866278400708056489585530059590246861951708062816558770859825444684239829486684863167660982460792710010169063955397820832149591270201046701782436469199996849111022998487916681865118795151535918070615158458983282595903650199065553521576443967670055668575580763824595677174993658485926405029318307681608349355007424653492487629910167816001187468723905303097404340184403697566690006356328886190008081517281635598301402333812204050586703078343102197941301418251335116439170258662694394763047133089281189817496357387166277565283488293525748041211562624107594479207183655159167160975781627892197069792086920894642931761732533813888070323152510559613210778274521520634627961990231412238080885261511322008109249976908425566691893021099459766505591358070896120359937369130078020994361478742840083018328696202304084615511500441087613730086158508343760417533249191194728569905498194312627506071877778903038554880039892907538481233502508177952695974926915480121161941720065109409899682244169492143464865693801205788971711435752349014030462226991095279608122950195831032768474709596606715238542956810311213940889049224559780691266002927944252885659680716570889142623939315803748867771590422479128341228183244222799087322761984633956338918326672279133229121880682954547134931510058657635813722630056356323826235130792805090279917027088621001401772782502093425296400124576307525871279322133760077078754299264907264738394666493742601656085806970059204576248829145795990178306164929269455727637734376713023552207073180684750287021161919762377367623359641847422054655067110041037118765332599000966809983504691522297773254586068238619089524087665883089661007849314966915186260407603833663732124108998720799222418291967156811298213322755778438586035611309138352217124079509297133024181412219282776440117301188069494543246630685689554971593617616710417438339981694992403970809415199298547980256523008453544509263524861443659365863129384348390276504702209292184987157779732232449058710611424095518604001836205570234646437737593387844454072608461441650985384052985685276252529745857092079816362734736556232674912211519054379346464911761777801840385899351000796394051483861629715030250450178914120389398165574907084236012188388177983963515875041808533906333834855235524989347511123246287031364846087481303443349649777123070700966056074564278153293635156508465916124433496798644845368293397426159738877939210356447338134672015960686086655646768561059266242038840476787845341920980747654117751852617734709010812281913837374521865192904097024250910718197854628540957815482285234856515441219529980769314117185251784939941663208092248606312711327693934370714942520174779247844511567534249615256118494121819864713021548161191412642696089667052063262256870082364166130109921590517212238708016768982507387665315603817073707370314235517097512890578666579156604636338874422675637107913117529993241669040683359780455789453876775703116599070162078644159374402149372576344008822435486366666431431721946303862446730102249646307970601898146757492293116956090963177734260872111379558593810401178369010824977093176719981476452018423387658254744178426577574035982112968719661041239845356683717524049781220483493990255997979384949868006377428367879998087742652714005160277974359265656079821436126633183509016526133662663519674812763133332955071636136378717859477597465212090895459145312262713304967812554275081835014582216379212614652084423155987025826563556188099097832945038582667198966667993476841616727019059710960412167532038991843914576853709914231078152495646134242070625907868859403980551444868769760802928245009145173267616539109729807699262733565273521120704752859634770380906843817029476305877984491726404593357270926019776592260206184517542821908957094039528591319947238542126641393621511869358731438430253226944802541553495314598268568962383238619491303155349512665729721174659978763989173757200920492276132578947481395165348114773254846382902135597987086764829895713986243731291245273595359242857003264272493998577073945681404425972088946421254402866738286580138309667396100204215013909136472514969587233347637636437971689717265966517217101820092538833806249180427732814001400323718689325711231008399051128147465353305887594981436324912320361542567491928883114702126784506553854206949620264431656532764155660607307277925398628271512014067729467142123787901431597227665874849133151863211078046791881778792794168247295354673673044694641074845373169941266271223478652360701128874468606535833042206513986385850317820232137113114784589223830657615004212564339839480273005308147725319052301509219990153026843825221308134623758661832553145114253764206903016566803314784643705274461241977728993641535489571767828436318606020585650922702426460421234003467172475872093870222988349118227057147362548980893353390738678122449822367142059196468022189544053379270052813226229818721539761632576230971038634998992418780380877330730743187214000012697334201457221306456716720004845121416205319348302769993368216212578350745146131783865641248829293666662172383700995146383570514450884579997765835102942952546706099753736703790889288029023147286771875982507725699753622913915566467709121451881670814538399791670846741747605863524572610086896840876019573887107952164584860015157687924718660040933846169092391331591902632757182378623050830096925837218764470939964538389910446732481146761659898655076392294878754268630246591192153857975504119264365440706509748582213229076226898040180191705468136724564034574792481231061990166149660494221287937800814677371152148905410110090754875073727421779789628426779022703481918980102883471486199930647969922479859400498990853339418020475603075317869634715311729122931510611150423798309620352392045206671497523054599301857202466553278036463364880164889290018704315259327437109216972251672101666934787631012231074175137340846254452184458373562520779702931935192255931546524763887812715950273113489413574402459320273650791057761727470485841821538503537550708198492589153781881431928057455860379431351856412903277559590105316150218513872924295143436847031624718323751063192667061235339079943778154689900027303118226337635127455159564484173631080578620235726986856917461744554047558856912906557053009740248790544757600551720160584609789020189788877563138898752907156337609174582439232329937433919926765637166882497504984578488443950510150976301288051525244095456448163527509886026807611620422925677791036582437625154481020797020857068190047733051845802646741542458247383703227161333994201642420437377324981129348823978010285628835226488786588234527103157512772644613771675003263415577194198532255832819324841706913837755844352323472517323819780741593278275350814270356732994239100228525950484576671262931472074322428955684599248561431105132325039841854278572404718333190292220350057101672995023045057272889393492834422723163889276803881994426921584204594682150552042782575966508064661116766604452362569694929149136093020902532141140771334094036296733894323257950003458616952198238700735392704673763292932971112439449440329579892132741916522120811131161668242370794223688556584051017063036118942531440926777601004107755337750347283077534177419177360456058228422855078801398482211906389148601364438771750204702089205748225820504153310623971643350799926111279926108418560434689634200098972450262291070860847919232946071568075780355176168880518728802145825133426758550484906537239501704913291593293324651973269438805853385438691713439004038319958085813648173551622629238969787868600521639814616978782765423338055815028261636673627126457732010186050094395206623099195612484322563949160984073058134935500982153274939814989485428650186316103230099846190348382507224362566365290472223786947128467498711250150186562872205869641127602239830039974492594112093297083181908750601781038897091116379412995188572545184530015601412802464647288981294990542391827400604728252334166531846246261699781811897558527395893845906975803566407889727254501028575710545770286519955720029275063822828782168344892884518643905636600718748310805849360006583316606502798731892221883851908623321835432397293667345437832375223009027546648314394061255768974233156029743244883052547064492486234620981809570702727125257182150534729403045432382830162793758727394434844855409435306652111110885447459363466536588501001690753466502541541178333449487896821526952005376065432072444252947900814289963992445419860577333672488518966957868263195267333407225651859192153132529041878994642125305551618327841593455142494031806279653305265343562531543031522342303587183618168704079838714065806191546763985984212106761342969977040464529207273316715125258428295258724743519884609895974997672442314775630646855476090272128962206570444605879905858593117181527373457729926034584504776888837506335530236486468576621432916037162244985149080604796660943232931572210026590873092857784805334384431386480189769957949755109918588223926906531096706548302243900097878879025474903893915120021252333255060289575812905465882905332297037515036238967558742173833950464276987197135517820174530415695689817460722392526389087622861824447900621192859165305929293637304047914174191009284979366062705663764171038195724522053715914486182462273342839047672560468695128628217261805038174513475607535923871611549631013389376103270770362733619966375223548392452975629282440893091667182557992961083347395245655395636881877553012783281266042193793703866458432627246161481710197040689423705948735660050854782954583859222658072045291174546822906074443333246250112994865751542689288906762304485341820198621406796291995543464978366586755992936409690304281989961506400553749150565501140611034490673987936981622730039924858151759674155071471624542378358430283416847345841682926021242964363130946743846305746250892746510527329655365740238072343501382619387472164718321851506198345693050422552636021972981533549177231476235330960536060969253467416205845958493209152939328491908157856587834934567160971402934979283633450079193701362355269330405446655267367165545211830337128984457805436919014419179468770634551446669038584961705169778122821756944044867304966415334912627378971758988217597822718320456723556647842272767772388225774452851209045747885983104492213141179479644480949787165004807594023976264840103825326849114207842553211327566224622998282937559170289748682728045145823099124654504784633967876780151253143112289441802505795943472070995665464842348285805170656303578435679973509768606118942551510561297835707614704280175582127884237950286530585945443733164211949457508157757778251197183451585259494319164062583344428932856411324663954282092859519840388033222717242999515421386685852783305768830161509956080222226006510025437140789510580806626333618610402648174448023526530564596048825200332786162176625445747277015758498307797768483460752581549238058347652925674765340258116692686814412766525693092029963901964751069419181711005304499623030541707253996121574522407965569169083308959775066875661497734566092403707104721894873205571979472510400178408746680045962476113108255045266547549448342609478069006384035670761144452583018858294996735859785691674377327287726235029573172112218205438972201531256181792131959254692314352803782531058068727423869671458221108610878487106723660399382747071173567017746618371253100608573133056027785784354033806399754090407315368435880190406616758855216166433947434929143708708671538095589360107998899273715754719057516473419716223509425353900091186572144783156819969024569337947793678970954106087504453694391210149364396509450954306842700931320967491633935241181887310397006225609258734927133367039449378197290757494130391822372986595093998913858096983919194685452195063520348124940109437766758093047431806075542666598102915813515532865589922174978423075388649387181743610938512145078538633751930854973011926004921008516715282250631120512655890117106489102022741003994293044228192312736421220642392237852864365374591094082971055029592202697545413137494600091310479989346200484610399784703647201227723267474998501877636190233609396509684233246310299546446328131014864545047606412470450585435339405962978251037603235216022391193499812072401637281960612570565839783051720065445125509580110587816946160988618906873605616970131531249662772994730324672010799155778909674084548048322241256686894676162733114947385032267642495429146107658442207457938438441193089226416417195687299723542859420135587531241146124026067143497536993699794736736643875677785973577555629341434258763698258177811701152586892072644543594110781445982341049983693927478323582879882101113407858646667417888332589460745205737328540994255774102796134443537245595384297050820841413932118853681566375383724403897284319860795000261086956483285611211886245570535218966561238202464955066270084096984844604361102603290619745446401792649075466310788238626710206754878154989848693081596386841406626951814408401058825457150176847195439601606263959833123069565793748623301130615892233649798434891843871967061399979269117075827638142468329547951720776642518143200459677332761667648761566038502307129404764570706841996712251920389881182985201673670790784653442880292824834079933764607713024517085538017304497524166186816443978840161585747418716916470405830630598618877641747029845725295270154661282710737466770264826717814572161403355125454155364615937231822862554270134970773636195496234144267339814801132311252434040407085462433051035246335365926332952390308814246874835058043139288590545598903748714153855889754400943865491808332622149985969179615282963842257131601671806976313739139471987663717360451953745208504832345486721198619076995806542045897946577603422512769255949473959224841976366446504147124619478394100611911433674084034188171398170785539838013578177287074002745049583179553450504746125058293172745969131737654100589039188334953181192574854834982215572167567901828565465357978761954722273230105655355566821512796784849185209212362810441321996120412091913429887784538761158156869579635383824610217406516963047647133110241798247760598477242475960071724304384455886812079131517486755806766127006124914053517963744040146420752201880107300568617695578698254136934625831220999878232651251796224749813756512253827615357818173702756872687636982794700959717799222687989606616883013779087496614911950785762202624108593283886981204059740909033944624958177587559413708576031160151624510607606384843616754241807545938854976880653268652341475566055054651873369253559033232354797837891826759544382752562297454193871180238176272011460464265662201618967414891444971514428293411973329435578395453982530092999605091301348037965491762683711833180710583648761651693425459968512866073954302614887542580139113651906258549136289288269958604592283150539548242877315487512411184101717516823617774093420701886660231341903701230439505979576377517356542610399780999275628106307081382284684531574686896703330773558335914546223101091189152472798090965005701958886833186898530046898378994977166493430971716642667993227564877743747216387859823487781633783710846857402248504453854116088118321129389900537310056568990823778395099373352010310430768073505031543448069433437739491128994336608245484372914780628856774377897813130196847478521228520560483068341560361405146358867797782143769868509141990325479059090995353999700365957517746986430571307185960340023090715412198064554007314993144500392908994542906181795237881501148437805963650129607706937160135390647399505036121556791493196201729077767352219914346530977848187332756469371971225392429976134675118580045717681570066763281608400505581203815558895321402774758800676009546135845305932186499293560624859838070464848392975825306188137117953931709425423938295554409730917703205203469319530038491543050277845064430101989708660846986678854495430589231202982668650364048754343434196596403039343519737522740021589030528745673013133133879797121917519024804096262332033245849279345983270695916327417519516575521338628307697774158534485242597901452240803004092007170620475645565910421492366276841299834993491216092650997673523241394814817021527198148610866797915821187717736680959175306622026942019415982809450986823432161808659751668139572026554277182665311023367885772925372503888751709742766230612189364202885043325665658997518821637253510623690359458451058234379418897687551742601293004962292331547758881935628131693165540487562358824170952103296137054167221893635695341307179048148788735712460184109423048194882456726746615679788280222423265162527516862037015576728094368254548873467692947757111573098357989081597752442469531553799576158430351055718678614934076587231969882753179378606566273318282130426219898301944585221542398794890033747159366705826163126384889620868756328680134916001769118410639652184297428113216429779434168049905680896855122375468856626903299326189489370044926904812363729110843887288784772030646474866659458186342004576084756179678839226664163395076524204037889366045537304939367285848265216865982258030012312853305036426032774978859840005119796880042794419760263251278689573463611604960598778490074925552269599209040162352142271108343961670492884590539797056618894168755839507947438485483478096781150095390259320514826986606675116977653588997320940868811892155299181377213339036895521988682797084378554347309547624797867657099123968100914150297671856466515066418844627705461334944032839683892412366742121934726363047116049146905572402908580255697283519636310950560190810209871200577614082398058555246809901614523391362308032303529345584926377903336137077190135487414206810173318831775866885448350936310302216455364620164823019584370735991232040079171923631860799443805319757019057173604333551821112513432741634880952671811842562492726088380703286039096278580945424460333993570472378537454508277537112624909227170035108936939730958748538166177985868826869026824967657003629630882137588021664541488317203058424121307740375578979141905977910630275811434863761194327442865072617060329477266171728796692593093624578323822993420689965576101552329952762649857958491900475645455744429538017561201765501566604923834004894607143226901535522492414043196328769007284782797756789571122448514881834824309053653326884511880782988970214725058262093303350912863575361471268097696337415144872907445401017041544023727216001068432113683990381886544781621299491878972746775581704485254454890994683102936912320486838537257275594575755464136442496854083828888393747675195803020639219417669865460778701524704955781521156690330004586165581325046755934156533236353165141884203490671392348982858648128185183287452720506780346248794855873997265414113599169749973921542398542662341347511834738273416946861555860516008401511230105067432895468661169938680252666292715071385891477653108151264484097148101367628734463562498418775191480075926309424047561030251595137191893660220821817736755427898296803018386002709343106166259609355730568107580426326185894406512968016569548093877642441269274922833596337177275455533364901119492439662839388466743596275662021112640855164811624221950709564010545614260398661738942420824157474198867840745061223151806075788185180083489219561527196426240750677329890620209260722102442453852399142286491438838728226359817616512169362538274786573503070245307836009879932857816463127619388010550654227876217579592627503714683515859939218184467298770102164713862705468533659864163654576625392982889423842180239163165205801277934329115277774666151767341661207191846017069666223302650690832574427532320813926378495457390643723673240287446927742548836615035015370064884404066586570888522277331730092810029106184210685927232135221537461308319959245820435349148478288880136526787258867654768371687374822211118338901437699722570886703634974579942340908080734840151298955024972133263720547329606981706663071533926796346711752240445074852148879992584842648594195751234929144514817339329013086193477555032691165051226986342503142558084864475943232049640869763771989649655876328088551918609098850641411877746259623406527638756217493004321608883827153236497703867657607582292333388452840962839266418338090563451322108741710670307488601543781983051532064370247460844325368827751639102389697557596070957803990068321221962361246130756217922364813947703672325108566770555825860019504414359821366278251330331879422396693450786371089492507130491393622570475823788550546883135110060593021460403511401900326713292406264236005899832844936568941080752694785176254584802164364078909169737302678532998179821263623796666738156049625963420149923561988766364623308037331725999375204101319839200488493687862997353496997928340374653417113499142872799402520077892689242623887039227824735417170386295346846449604626087487240780429502422777957545331653952537713687491725994430710902303882141186627785363555186217826219969625286689170073182671366472747147477911818058352425003231726122025835809229618305509024656043716873398987469124254781871152744686057314221838523286361333202935331329036070309433599596023146608508605328849071066392638146216278170393155760236766105055039398166754601128152765624966291165776661779967439731870092492823112660486981409204177347973918890940973733779550660564881233556640736427053294087691781878899995288599716747220656007664611134115451355365671033913531562789338716090361646382677366504594797052773349115169312472492869726532004255067547896433981436006843281631243342683727094628166042677862902302232457484980890442362253923249968164552358576997695997811138922689087669242658979727915080032351153565758984301009535584175083067150745977228422736449001055245282148625432821421303258534888505927242504586506540662999658153503684866798424354976282072493909859678833351086470248843589127219284339300917465485673223021572466080722472923603261583620981426921225600736356491679355639836276082514647286080236728638471500069712087647056914444411474670930595707590585167161503700883235656707558237663220696189778168229400677108493380605107861141552918200108907693370018119017329590441255130437664344444685534509403571558739214775792465427454341209844386825641643133587943900115165986730914474057934073191534984280995039723595281656780275749389209825312153856177600156212028587009444062268928192770586463931792084833425621542006871602661780344735610567384545132704663493075350109642509955936048021727364070033019100006339031484909107249351630854039422577149315791532279405401709519890175894014252382997232713908806989909291209407343269976724760962668632330310839952717859337722315826413775537451333239148845651546664575665899195286899951904926957484435658012435122475730369352873377822739503809543652992196387890739554596902318916641048226154758533837393369375874207493973032307717872310827864404633353290756412211633962903102926363877014924524534957016101254419379105927899704171867222034476006756009017844233950256928048177567808662081130358448264120758896620664124443644332154053264627616029503330224126047671042682371517279675917885336030818576553869722734495662719467258704360006722554613104403217953612782811028048778314282821425239217092438628783629508810680034072057641344392176859964404913343802315538713769827753432074441757709057882998669061454766598221189026127160456255351172640450946047460599639329360934099029683726820957750511353958865011556227896258675738389240296236857552208137920270495055840627256184791717800762729043434827155114441596630247921670151361227702483050884884964636908901680202854737857542949299543502717648842877927778297232956733128768804894006550740275470056101057121404596321657248657704216834183269641755178261588157959183730780921949181932598796161822739053537588810405321723086973137873366094827571043500991446009235183548604833840946620613894853611432643551194059464834683091974913556183438734319765622049400798036915126374805702661236254717121806509857363102553040431416107050255885659855859869373122489514652807945199405101759375316641270439425300714858273716219588253984695072647069702129222880605215401216343757347158386781780223672344269165196289180959302485669036673525843764661106331569259557169573128108585374211403550295057258411284736088325626497196390895445545793784797955859942206487130584589910452098713314592577692545332620590204597890656824244480336703208312449984560283388698816966086982370102388164532538963879568010837497561534207729224478608686851028563771560484567925716184317861886318659457187869265543628125234084481012462701898114292623505891365958125824724539101223592441386104709113927291133395572305273283356837192825000497946262231786610676211684205868081343126961244098085298778185962378619472196285155780198534069428426595139739597759238872609432067227659102707898099060978959231419538381433138919925722166419331126774833915251997502490026306422884249590702321429302143344733417204495326021226014466613104113180768707081484094295918123300425777593510664083936023843975465262519660251885039437679006572095760251672048405618164254965163838331043311792421727310171133853448032328281391700687354692287024784076241900124194751544594621468744122176301018796082820691085387033032485680079416444974600655560291700869954867520938743036485269931274735904172623655088276356532133854977518938180394865299978745162475001068400641608696528751083684286149959953732770413481352690995141273347003744183848362989094145578856472472895873758741155516975963882447989362867537380675973618684522527380661904129647534604420417118191718008131276187028591281481415848162873631066169830746516503372926748461861323433950654248425638808982677470863044424104674705982639943838377450863899990576580531437753470768818207397223203870609547355310722399287875920378636976477071698298712572390256010846122893416814109165855469651889195344095281433858986058504873694433368158160784317500654178334804514192787945505235130235462478114537022959203550499775342549342228403089990435541121247753435990663493267609834755350685068358889502732570862629356341509852958530467785486665104638921265425655428973047519453913604814835958530905604754565585655908379540575771409926002886453665245775889135414160583943729140771765495622298532501094230913065900497039182889562050677950690176782374270542538527468487851499421191449490864809351028387170885071432644054342549899490126724092955228342460062526716461709841040872775737304313699803238810821982289622181248940007164741934935013638830862459418222037036520896471455660853497077470774045955175968128313345892388635725593038726864078368791718796189804716409860637234327709169235993477006338026437041839353432073702719328844881474593753449101396455797965183518603304891980435591029341848392977701050774902852106073468843921769280977552741271869716860170184417001734257336704071305952063613400518128278743634049937324145958535813343812698703347690046174587176247847225496623852763082330212668593209155635563727340354953763173007998541017466483071546521509599917835679065372303944555901933968408587550281550654546427426435809233663696981905628168996336526235259854502944808032525899268968987063467670763008717475104172222694065996253484110967332448279987133070328873241538486282833387361917007294618599183109859703233457636356753560599477291006704143078087081949945089032709537504926927520819181071480599887654663177219925297310117747764893091524139490785233901833270815038810447891945224616990678492092277898291276988399735735685563023658487646394030303331751212332601717297084586452682952252639723369233162477695406051819631691288719899862767667383999243806788344590317314865576935570004290323656174887004898842391646154960229441456589154335714144881608064382033011820705789016595509401031478875349903924068377505616530698272079149112063004209005259458380666404641479445116766490150226736894511243326906099085882048976941037678249913882838815488961184150305278392165878625512751526961677468534906971096600157466527791298171169023654877253943443749719332533251802774929019068644750329262486503859013567844354580176823715800878159138434728676474654228584432062622834989220915065956161688526912852701722201468977432587881145632289939871092652597773494774652535556794270940763302508588392651491886020543082359555055988970436798245821913168707535286180283352211450265397169427353091227468177978246089639047742154196236483640514913100231113437337965242155366752955895559895432887891359830463465667990869417890524400165048200605501234078316835698597655495209080769290387659955504236840834074532486478386964539008538408212319226451713497529914190918859066833153217743217370176147256441483166603227936265413632620422130565681875360548498770064603341370112724844697156783336328733568127259690423785433458905788590873971556750753912616062961889570544546282795269913918752028550993837964629709699294160666089791117560461412000566024254573001534484844863270091132627902993777704210894233907716779584553035235174353162080814117659227460067461851784235045346664806851830053940170178563497321971952698021314017730103984934816778424514684607990372843794196891671160502461904510666253522211850348928860502337728200501441646659475860806370520906147157431204593059067316549968361553342138696171164322573729112421313333778761906211058110029707126026307043406448657485623093699045490785846421821348022665120118664039619993611933226410688756973922189257619844218855303318505609552481948901963808881705760184266973976932077597640182486151238556326717665569864980948032500672466459731764235397868828038184395165833197343999208701647592844986440411737262701026328645981055591202071950145844894551684802761671972474221570185682732244789500651881129207448764173806377873128299937711545717851051697152508764947636488733292178162144847745378752542483120137948500667891699914937095757930757162128165140308082759764576532805421496994614919616025979449376339527439526488223804143522007234150479700654818107490576766160944170900280121265420631572847750670929259003557116420126901675646124650440238968555130721185140159808793547184883208828552897696032919472371107860108804224580888416534878390987147288186889712297252294523333358321348224704467183200628778289132471098402888422164131630953548425510008791219775582411045088702853073531000769234707661931175653131478434949200151844020807814009716684794451135390701744661734384207396742966684496141829998622919366023169380439649742892343479049641633498905527313096729331156570035065545814082394943906718279367504037792330942341618266687482434139556750390171592645670455335082768294537668324977740095143496635423853991198641340857606706257624179406414021188591296209060968767193920808570640298107790328877637672922710114107020391227205645909556207290547972490581827669985565605287659171711310490126597687211186167775149303041197459306881506079978013318936525012462534107524899725640166422114864794863199506729102186046607208203120168686362577717112484827751635870194339178025329209111754984341597443532513491539145741815413145933502848492336631603230101050246197292421815201586704035932269830363097512993920696008798995314037036459912521021225149348728845404797405119760593322408093530304633946513609234886011583007620973195641689742914195457492809117674759684490194403131825294723347112083410342342258453555326149484911617267561902261067229679670659877729983711657501409128621368021795068177203268316846789310552284557813245885775233831674474230183726855127199092675890800515543095903710859057014924053186067460344742542762624820680319530859492266277421201347245934421412969995601472250758344543780377513598943798007706044814331584732683921587135269991001518603315546908205589586347046418576998195059347941636118578094777831383597627334580804331094245583927980766606106175534203149019858969378147650870375679582755647646088819166582641539757247387453466806096852166064130254552872398275972870316371894540861260097556527648874076378238452208580665242965581995631357264988580946189539529028854185961306274027275892323752490745177024694731517641070425374468600330997460382980600418253792179588309093864788789353528423588194195393703150402561658211829814013600087474933814405283553937317497212214836867934999777827649023416921002637894175621579604326933130123826163495432313895859897942235017018174012064685194976243080941038139716080117572463188410404354171855310844825196199418479260271733560376787695259341060845776645151319055382645278684157176809770152282272564794958884213180767119766143852096526729085187991227254872748140235376675581065065045017594864648071887869547753433544805339474388133079775750035726682999388328375794589581408270468887699890869432459036331606786917038401554029773502799783117303162255413487095342498334363965838844679771642995836271770291254949313341853302466997369761815804855506895433114068653901490987676018667815372155371375557456623885504852159069616489581990177583014010729459741537083269451171890061729646953157681635674877490691884227655973345485498478543418330772771806866379035714471436065388057588788609321891961065533635731198546788991851069514741985211725754886959534290875455567190592177517280925005985463059790001715585468135736038435400654162836779875189815134528340853305970664486434243568100618134188132918997093195926738195276689370635516416968182153234874864550680862269670432346062355050619530291406265862914335394852986475114252901193662732362361348599985083750652811221360181240538636976554494632557460623475328855537372146955444152307316795323375339782138155304739132392530476246897916442781264085813868242907705705038896388712061722654897360051638389990272615775296188592710168704009124409956814826135989960336929023213819326558505653950268717749994208814534441778934801115620516078990949306648990939099670817762859656261658330607046231707529177750642737626623965918159632114278234294085655144198794232959869012510658027486550846269076824578587651653351728431364824987957829856462477226180492800707389224192178087605120390731920342006097041322260620630273216417576699054142105450040663215811062132866069385087619735460837546478374022983873412993548789173598570768056471036995195391067084339222906980554204543380020665581309714307714163635956406402941927038234772876885789212013493262394759048659887267374711399619417082432839793299250356233605334582157392094721033920338732849075830286385773425271474389900485460523927402942868545723340784895078286497961692270419098645638554056015734871137339437182878304104917993324151803617244255659032401842566093516191349529877050791563598994280985468233411719910401515300087007666281460373989355501473212246980041324060352170367723153190364941495914207598808494913040504815976856077332000406701846290180062581544036710777461033821568044120358272237986247222449077266773368162715677159151675639394162015642649683093638950365862812445606248792427322484687496816745086994643749347076918011424957740807648390202306835669536053222274468280956791863765623955247084404690528412898737936951866609365995577434732369354445939415336856508698166273771291332203367672776181743958873966187321942546524292709951730168737016669031844055889557109851050229080404407005805558999014644529777980834596408719813274539536917930405519972536879912679386714420502407792001707303802874831358555959973835265321326366488636020924165112678692883287363124551797381817551069347437107727562857897875060845409838289768788627816301828065738704233211501439145453053394309276553962259730311591010560663912133143181908174846515306947817175877368982983043631984624388835789148317151017524861670487159044510095180970297713165469598883942376951903112445194807104175181822437246266896358062894542736445914727942432080502851145878518313839977408590540294674883572716861172725387995956019299102759518750238015173797063490730780757705378721784853032401853693047921874969597838843607739572222654848822251537270901123572741704174674926884573860353152520232629433474631468735150856134291634601475777781309814699751698603236493932198680083521238134216127859831008163945851784012909937393256279036320762366126911736009333256945302663854063291580122403030560696260206891556014223033381415420480183339475269420038730629988077360058765786296613963365398717339606818487937334389051298939222310855609469288457349824590775892794695558821292095497561259027243457341881707218208926864182687440272267385205411929701824712785637294698979931260901102263494388629828914784538836882849469847354783687232828963606389499525722897395887821229892621651280019079181744903167572057462914873552481869524233623621165917079835925365102694912301217995016496293343226179078021811716375250935171667826418879867388260272097211845566655547571285838277990457406903703621687353272801580347671729271726640885415233315735945320066988386239879293251844694857141168755348104910563364369308001821487362093437137613379668648051689824133866733680564840697975717761781943722469305451670154261863814391695809760654403302769641365073973735602864244307429603226900290134334049773710172795213199998263290709049577957611752679391111559016230070677154293741914879996206219842423803433208810963266626595237681536778885417029872383595671206026771477233025415705305434211523389654292425747110780185088560749108637091632191313673344211187881521331714362932118207466643966234035630143322773791254746946477985487037531600515080518074953088954772770288259103228483685193733210179763087750525800951158519370481507888625520757910205001929106723249315660939513769850257376438814216505407998418758466469503819721227809361657554839968588572771776208569965230546461321475238906607271740056602017729515932392584056262110764714788628140606571645505957473379393996745324043280247865095674831900872332505511681815492257402593598799372702126506396719704354991240750243930268591592842258630577809118920523292559147222642481393545708841262955419577965333992561658725997041135072015765148066947539552433533265020470721326673758521977556293552202965700977058843069588288490990078801565952074297018636283722550996271426608078370047946693259977809807868136518671639876782683967043433883156018270137027980979396869004710555844953194290928027120592577805029177598135393114215743430929928856122083096793972765975417860591102599880427546768653507171165983067894312156240366793777206335860360483578208132677783214353034910054290991234643725682014664558156667276252084949898101051956807766983608359647785261085168100669388572229045323741274696865979676895555484324904019353620160576655998411942630919801190304621090945220881095658807845105245782418143241042747816582456548386246285496756999633202620219705794114077332112545236444215565581087618466214231724434422533183222966090148468399490305529104035685298428806289968987701952001689066628876382262952580980062490666486194926842569106799106456519729445529743354274985691777900051435669063305773232620192046050421839277455644547517934511287193810486960741037883736341493713662232471749465652730744620420075033543818088801108979506955507389152361660369620234871983865877302921868289979352536808949155819737551767832993228539657055585257835754555734011915155664231176259002577790710568775167764255223335468929653401533000115458862854446708644419636474361002688587360473557922312936317513487583855784264801598865641465214334974186474866214677737228561709890719326697917707853561620555879409062932140623797640515302969732712025569629674329282729807334918854636793866988929889426893107236751151723210765716758569787370726953166289023579527532799013380748897401187968351790513226143476329839605073601649342687356838128970984764183658851295474858207462667974449434893126361259972291334159951335921040837103739997106303650243731293252649106921018045393874816316568804579332743376882618954058395865325672626528974080517650170530858033540106318656427040583263603760332959214347095405849139178056397470836164099011430550181264897965688388613981540711950496442945187921688633634555866148232421695416030560417364052690345959818211530242572496811424857066248715295336567043718193554599092162627297345660206661982539364320922708098107236362792382417342231105924346713195383345108667850561758825606657268218935604423504224549819691092047843634142191284526640705635523899789460061863703203409221188239229100768936717113808552281841839059278549234431267325736962858825484481738449101295105131572985341501054072440627621389256775266033635197058603078120910385431788267577847391711022534221884161769404822103950924048261762787430536733960509025887242530532844953037950407500368642982130746177712162350061398868770050143979892488814284227431174550299127979932129861020793196198104861442195417260701621527710797966481199123119845196589960457221409044442595592847813425219049605297769800442089982402231773889222672190172232381106849117964283983432210372398112793883757053268853931613787488577467864576742006400708173454333963091708969995152746486166304783880607877046697253266343974295242905324250718820028047587848300343503513046151963294480735187943381517310704411343647741736692854016192522258028690816001443103568555772414162915765393423548097498962135155318138299227572171529097075136822918772461386611122062547662688195586508197216980946129368947742686023496698297259406255403696321332300436475935885548655321968969715051659602311105327357698559339093045410215359757020962019206580133646205908323810127180010006641280331951958503663564667870483727133998507762868416335781083734643848136595895192966316929304439325966167737559796586236940949620064601789188742146184078531759181106991389542121633155291734189498832200066334117399935204482258618698767698998729630525312080433456437874863254557385852009421673434774763440211312682339645736370202874457636820719486297793937527288198585065947817876149984582462661650481552152296588011831101662683277207371280274596816752828137572012893185419447752474918382680516125311156948893195318915089282217031768759669884937274829955496260638341138550958603134519299928909219612318977769231080257143830340718898364356243767351404069717481399692897411463796469667303263138281741722732713390403363794543422587722607872151201281921047634992674198225544608378544862896193082966841648575095204439964260632002842779166549077528325390250279594713310988155259804670378564840513020696743451244732996131013690157952094632531428989776917444628113761898524090057382369577543775384600927963797145673597694626222948070612845637355964351904293621515005779000062961602623144737053551618113245801946566515146588642945586640982881230948951140352665662000103769132732638258779963810895121684569202773862269606554346463350086379199571863159573241139812966091639221377093833754332993474591542131055776178398066133945609245702578939208486351102287221004069376837623152693265061545397439569172485545382153521197119761261912313697033623346343357134746070624114488387473070479056875307412531702654353671653413400856765809886207127161399068055207186703836347274507186780713325841826741010436476284566343232870618912373559432427571528263950175775737952861128238105706596397609112349348731431566856764232961647452705432854627679822585103329062326373115112715013241703897364730170208560431551479265299439788910064672853428464157442884266266578700624894033585951650800610090874384223004709010753499682002388040718974407234898525212401061263941242086297154643455580856947268350645243282514736102864471273357200709025768730741506975428741414664780000292575348390186179875310619682472934959540224533606248907242906901961120778940227325823914606334965722495412818266135638401493410204964857555923373255433657375635814866706268877069625232301320617397072818430803795803164993411165747160364929853625243575011511045985910099760576960088909068281391800321440400404365456505849467271342747948176738898879242125141491137916182904950489452063612036071888400020238696275547686576777275680583566645605237131937505020404966023410786349343235006991241602755207761217031789083940427428796614005298459608110377395479908370344788795753173728301056212018269397516002916434932226982974376524506316537252643219176068857314152491801539036793060882949720936362820717393708343634626632083265490346410365533246974588032067726496482226122337508393653105051174348881391906277412327035168141946156477163580652725156512965537138551188462125289320559350499682831349115295414901115256107815645790691061736303647337632314672982039433172177879503785151517157344144786774614516639603125801745745552075043556379113448797886661753640632839107157862631306662023742507255340060690736639044343694337845012802030410894314466506418287283884808815799219435594185743678375622293534841495927504506538465655665057830186593388450637339083434480519565962233249094872278278470624210655416832482442403464038384323610518180717448009726566766776053897339113320599980243852895001166095510799870452480080728966949721265683178066024543007263124324823980774329732588340883932487012227050142554055620377357637563111176981684532396385221840084143351853526273182495387451402254768459971512929909172442600670053813791881940402335179872372553310172057925118095327334035266907318363534129865879658489080416191400677723738256279722159278522524063672782287668467208826914087847544707945108061791943450706969199216128932655297440225390679721398601108468522193037506665224674410401801651793959774796381504952181932000247484900437466738950934064506051629362054130877562028517734351720653308981850762558364298467907671799390204725585725333604553992179589847818439090648343717362592369372168062421654391688085650436462542896378013587865530206136900036811503451058676877100778013716223688885926138185725457346027136551126163270820827565034894130484358459923098914350111861003285009494756876870634969684559588065816057881083488146860242249736621448972013843957929586316120814627213733320660355643027731594792325556392671820772068549363638793305764249976463196703219091811817483982005613571839149323752959026579642042749240136420371729367941861148058555307023204247170293484475854929812596721027779542527865920760989955998462036241377289487547230354507830062559977534158570946152633355505819845569490893370024171206928757844694715893153356539258563904355651907285607001610443555882084457746615000258671593137502904911133827065907281096528451975570111267315323868534679032669751605100349616636957370070965660572114383786227728554589294801611050505427264795936677551334993894877192350113871267316729727771329927478025293313999660398442034391803030799470820985894984347434015087888519665982746286936715756494423889148028739914148117052738762081605026117681183859835624525691730436983721191450523409669995388456559665198972318826583114032726714404236677184319369925639835940976969823217199028274361575863692380804786810276769897350105104842628924147921193152302330056291342561585841321745142543033380206725772271126212209330288742417953748215558572461134028409800160116046442067438360042706233749150634924029983554976382233220335060658657794216761492797918762706716121079569133769101052319073200436610189134795721543327030124943759695715642880636558937407856438746162685078431253134671501102349018723389867970367547472963315433693996277259392326972837982102369582365403855539465134329696087813814029686758789296446212694182945164674982610046325718816259221737142138221521705717545566080179213148200720054851737661887301746371755070537102356539295603503827556040767927834033894609187664375789224879963461002736199998983326210892999738596482037999656959837613802852820145507884778315504899394563135141517194118456766124788051919644134660409071480818123624004236062622295539457739085661609630641475828155903323263518351540173307820847172980474556285407621063371519880916727097829643933600579490351166508324943486447460114290564799152491628902817150315085755852122732150899914509214155147319407758686829344184570185626968192318004599467741915785353074604160635775747413082222691103119737518273665160639388980946765082895831905615354331014579892710650502050751624179260225868652151620999523291661368387821906613115518003957069540051732478776025692421873981811717101454171735509924260129048497173708245359082439812246781048411342671214296798652030301608530937490843410673447104930164518472515910637737260610095639691414150069542796226523999622434512215184251359810177596322148295264402478433473613811941381926499365656226725801261365122021820227508410548701225758983919211108781226015765838491955136565520796828023134288005285348577987184526729005319361837030662151991102735324744199716727596311872300193509676291947549621473775770309913794014935549000839731743817773631810880234808771443825257931550355209407665310411958660943387383538664070734834059751152120790803235325687685822866510099512193052325652906727751917609153363369107915936261083164913294549473928450178019803850711224420245079470610407254078621030185069796945102604716440158265246561664176752853241511904524897094242891953957847625998751532104780273618335047836532901729093948602179397297312660230376628154184443327178388302984856926404055820868453779980660213887611762571728584179173065494654356928127845600535526464515991320549697937651524257961882277380966748529609204161706474192872695139197327009596326603248421726593715463573121590660586014932573655746078788588772656469373452999239800627885951088603223068928144333997778852284675378895056938839692209470058676244793243533632651402520380136528413079587515396729107656841032689648043041544345744990918740995719680531444705776236947231728049359297068846982566449985345584513466619527543850037442061296671855138227575516981528454472292859465666265823643599378967807340750055145553475553887409626303133399102971878149180823951467468838591412807640441167922941831537556745537461154531711103667193855281466032680241760809900744694412278946858973813023081296864743295776886339262418295172173620164214443937085015671735108946279385579601349944639688965533633254908704953429733796128153474272689187757952629464114694249558368700304225297284947983724710537319563197705113978530415011851101161526167435546841703409767311201154073042050130159632045638461561569509552152632527623177479572294155088147723019042938975785644410237614298788529925936836222571158091881827475550485503031722633875494419264773922010727100603160921804396279621167196756382531820925715830883211345849345053930466201167711298593601258161783251434798774304340402662279904541812082836849127937340783539059543457669801196316740585239889889871347443378051250116288766882446409362885372384814308325245988269990232482609535245718911128234679628704260628761165656975446352952715465356280168773551000945884190356869224593192220473458996579482443009131816476465906612958055828957392765570297580796791277152348270368071965542297584001760327662385895094917008266557712748129877998568905797866048824752185634084901952989999153660886359507480943569554362776925317710433818971942174156468745116806950960342114204242586852574283521452596097234700221770576907106248878926478501369489023177975092230592150914920755775387001100413721180231525599173870857359276898033709490989801785660309789613707708488791445834015911462989235729417742475805014765894153444192177456135992188760328329879704467965161606978679388636110158337115395070497080360511247410383181863778126920158034656394457973109376551019698659494499155048132530541000033002106421985703153767685555591731098975483149417000261342413310081304848501547557727601238717240567770532958658261681959941040622727799627909634958956167803274278539692035874997946220395509737405509845411237692756679143090683733192362800268308248768326773796971422257632228004843041835800907459885723975916477493780044635530259969703198708676310300144406027199729624207798025427422304805982790227662062307185938567911021744826606952691679953910126509213100090734079898834099739037327457912131942408863275876812113777913702118089382224898521527551877979543226101682667032000018016815474715696606223431679617662334786321468178816044381670688056169867986894755963700734039551987717194031728617809279283177497109147288455961747117550374448337722857386470458316917560178827176360655816469279336144831339140107356887904774874424721800758794475575987921405656270021111543262128862276561755885420680154130610141340123178156583522349976002886076635025407927925904701839116414730911361986451383052948292872064701287438611001093792505194662746660908880882901555996553469814525625436269069433041181138962489371896602699978643018689149316660479235621466857867579185380412628566551692549937484804250706383831006229498284127907112653703606112142076145443447593776048709328762927322582537978072870993956438117371806813798515920180506189612826761444599456664241642325422807095838902829972606345447724283139564892927796492272786909140819633583545648210153573223017918846363184651032809854235325058952404649685425221870304981470920941840633731764093284392886349442448126556976137589079134514289082742997429229237727997035426533924093715939974711744388499147878746644972511813978940729907799551814415501707579528395291650919012797170710153993871094733197115833309641550530100762327730431286897532842241309765764185729103543808467998375913630054461946295215956485053692864207446372076623987297877985118480879028637949908200375114325743700447818325835830517618350176837761197171842464730864159597934076761331618277425794020822803175883178032273176836581544520134222499244758449050553507998434433237965158262285119286097174288974780059874814665943997663146884293420778373907723229484217093449860365167481242551499320948962850781132053766145430577209995797248157536066319396532671813343440243500969928264613451842974838544520773499922230054921115794974421389884657206310435515381663082343754464335295479148310509228397052626332318666692128712100069148945555026655361071317460639627864218557976469003937318417997644402574187408939341040407172526246500368390063557499603348901301281042974777975569818277623487843375705600241248347708634260932076745734488947396925028623462807064697753977558463749576012079343302141445372553760742782775819142648073561208248307089415827117562472701130497938460945345167093140559237829965841531036401161856406694934110828175634458446996701049952814001676256575151079066765525807611897168141590602281175505853268380924419903275660869930684977307782112208813611909627842192999334089624341846157186811534384258115877581104147729074431240115175143154230234523868877638547907249717854866100429894312683914524067778527524403575991913412614445112750906369445486905816854355023514652864999453220921949985989768282095816970359767348766297018738594593972799546119225637203667033186686937890731458597575705778003035076970540418319457796801033666420804837915684896835459968607632430646257718024618022294658499027893845694544256528766245458015661033215402257600757207429856743283435288208685336580362176697014488999610010695327023231653855292953087914491940082285823681314578100533180537096213476133841738752943475614738947123840360544106901694599109893597743426777016064800065704550249971313423851652040419455833302328897126253283797376779102490755524334178445413967650921964687125406305700260391375920419139869364682720874290233821660392086326267935624871891723620063848762632250876662145754206641887769790218712307880534477475909897461958836473010067244213084904398123273473302326007394460327721213799385494413383873284294665097077267322560714075840836113426935967492821889586876048978300950581156341993617415199102554853231348945888547269676506288848156425456667251927520720573187770708790703653654079102673013358819775585149069663552536358739347838286923020437827297098853051938280095990180207163992716678661217204701376509931082020230161102400557465387273849756034519368177131593781397690016972981386574010810487055954996685089589691709666874520624800368007777732011849562818333192765006443813745442205359095106200520982280667014529104364047342965424265162517502997256731686522421971727516813025548129883367095386428659945800640034768643002129480892729533780676284090502858585451535137038468297935518164014165431426977685472613493242403449533366805790757438055468894476286626586882274736301147582229082042793551667761871739796708918588277722631577808654095233441152267820994598150596457230974078064506737329268621232495032774711316084809978896356330627099003172274242768209296062577365513668341690855128320018230405131597487885118475697746187879526726540718535106841277939360819791691722278603386326428392325330444170331751761581229342791947905987589080152607503099176893938166007944064571786403472494504694377734195147964510446544613262583594745585465140936055698509215586185899391038955554915938762268636293469615185646649228225427956999733062934115884456126310697986756868062754520849643945217515831303044944131241986042164181339870011987553016585598587139275757431811455571874266897436541275688316828151727361766196223250699167530049357347770056695458155453009196289021482747840745648304963958288845283132171248167876850056969529524794683216387484126099192820658365335824608611797397666878063225526938186655457294076498225776096433732310129255998990942132864628108368038036006158763503438103156583265544702481196688816053245224665677683574441821317545240983320927592099571312609535810828082692848563421534240781714047600337062307578377600781529381310342567874640159792677311571328420572387516119483284344416576833298146440605187469729274221728725428684911239883128213565269518905366437179552760698765985698825321773676829103184518968173337227023451694422348997593869860428418247985055685327020207634278959477507451328711022905038345507286413928180785160517499655742762483314626179827131629060512665168637122442815838184211883566566181929720515779591011628051736572831598044409457049668234652287031623474640309471855232276674934572806128506521960234312784312810125776350939605820008298370475577895118599381144621268900522812608957142672943462406221742008278459594494311320511361335295936633004675644501333649085997151716698720682819211525635626686747499126334262852830788654224808036286537460441338482732737690296272851873465708723972357014345872107731859528905005656675475881932124468496546730488616855843787850251439333235360005520860595412219627984210915614608910638911263351847973739957160491573940401860425319925873578560842022477299514434285725762720036474405718219619257144752082376740638455311982900635058877329240749955433319703381847294160293241364618441053456534596023545739175238243449751903123999363823326068193211774137119279904017509375263887455447440634922900144426174465777142701520732233762054169638146447603333905527375928636071471526951343155833475182456293887900338412678701242298453194778645376346749290626409885693474306280867144685720437367393314625949148436576729548736134609126805028168963185509000493415420851381205620060099565044199675097505668093683172702822199747177558058078093904164681087829627633877995563689182009561685473805438191397545387293294272046883276087311439218452006371835707274127200822814912686850452116176333046834560394012919377297695541117205335359061352989453514612340461123208530557704317827838372180234362180098388186757537501275707731040309414021146383761204563625159942319972597435621333552669229360533285191674709783437386530121326066843970059372399885960715472023963120093741087972830721151811774000728043316908603645899742060176202664141086620047616955584158483873464661613248669756222049093316196024191406394403838135940053028095942037014815658714977837096971121425417303191311029258134979308021203575900782910302427260667413279462598000135608466880181029118219196805441093675058583335604693072831428147275213039263724495665135736344781909844848770005819839552921212264181950123867510600431819206371703753562236963837882280888227476172075172250740074139631972434129474460801240405114451032888572158685871592075603794611903015772488018191762742040920001797007918274954990669942506549370580656815323448004321194582872054086866196509890616977622982168082378421089298779761970105350651070263136286134422640222284229117633205811602393024148409250160395343435490128873078057689882890525793566825971969876150114415327283144083941877175194604921895459731542337100633590467818867336462084871120996523996912226174425150086833302441739087824655705031806650130874392856832691677114852973792707130333118357484122097702176424843380197492225020608949742767911177782480420760561097655951802039829683286577776467724848820709017297623001273948649317869940109422117709805537973520551428367958502211806028728292777877130292404754942206662210323564722745980994434131543664829976788894736308225867104385161027238461999247927899360170900109127466774517997447109573765747053310539567623123063470057498223161572456191557170140401398726281848538106218021705009857670967703587180375879959680999225704771087592021143019074685970802330614827133451094325736357330884598131485028975652381789762845111195908674114977597727008015591647186315687143927936119384323582961138404736806429449365224296524106983848620543924159426381151748209067584159486774842946596927127518191888889995244566405489645243294923703531672964882342509938266533561180351992233801083454133439396856790677125035586653222864160420636531267251802893290276551783407482746644191574903262569808186968617358863946244994296435577206082476237462907872967276519513148919752072563904485378403988159910610390877999461984634937849981448140586310926810314509273415816369059209571841059333176539824164123723959104375984613242414870244055824532345427559200893255145006267590600455243058624787657154676528233144913067717850462756571033945614895194445469551601379037484100756404779929717994053176520318711255242832974554722029751213645355404056934040688141181345465940559027077366531433829822458233261605636290510921761070533964839840982737015365471103764528542079581955612305338411336175191036271811949858718396366260185319031551830723235548367603926687523525376643882434621697007622146641211135915885482458962814699826294811463766887141275991691030276545827061386807379499264136104777883975779520445592900971163329572094943541311862419958576511642960847190317883337640792603260764103285899415485616351581045226955707815781210537839609603404534340792316848988168968115636819698523398828601348868293707885094228126701625250947613904932325624056956027019933908535737085215507255126071215726307706214278437047084554075623127935398345954352313984159865405611483643647855854140113724063866802587603339307245309060530105561803025371616697158611540184744921461820076467854065935495829443371690153371932779990505842604599957326156520793753359950122607167802593464207769372605100987100783301006116944121510787218166772726567993722855530426580627004860215945283725101642161374928423049448687229387739437714410162550136431086831337444011831647731287453868397214735972584297913248449331591647398059641922627645264308660522501485815810036552037156644577050671376098317208970409570156252052284963978378409844693405442323095883691961988197049281546219898543787494719844916083776420217914881578779084730075986915351470412750296178568076960661982749062703144895231866654502314775670163389530025494873061056472874286725907906007689919692352140249120203021334126361538289373715196920913224765539352207176871047927515735709133965632089876233949933821810904500074430516457430342822536890521459931617213843166907177093695461522965531077416100114683206374839211721168257252985603417026770835650489936951099051432182051544237500073178690894259772952410164902806186138853577214231429330287581280446479274944236736270876537648950604838459742430369167427720483533179579798976480721533961768661777262412255581356988202022869929516411279828440699003564117961490975443083911869762659192844271418842990697065263027740225926576430400583043963573225551926560921326291562588427787665028538010817321800154763234741566686170546845464874535411565646986606214340725683696377632568433156670024434895283946726234549445713876999449299666994292431170523317091802139928044063019900963343014414341693543440132073138869862420484930608831684775654320532932323327016899402565445314131704644627649630379703691227575267175423151380553305024612098995277744448638762176046940497216454737812554400669154681655555358698689477107306937428592651337912409756766726903954425161061872203971731485942127360439261950915696637148500063652917726805040132469244589736033566436541255244928807584024686246874908389465316439197319308526204578833951642524279807535473616607047542760865783595783437732533228754547904379212230346310306415082263016489575730765234360410746609003214219849102451417898307341597592425058867655225627188533708688550904808406172169419737031537209570538379895763955268579975147751027894568539365232789416301393121261805992993126518838616238057700164752506813525536552588744335664581627395335527259910446873347652648967082977746792622467984317472463261088963709392830020276596242413374097516918721593126814307896973095679563706937364197180733097164386266295050708327511712268490944205032733806239636339381537916350593155093768505463184371718024649707806614124371409297845191051587340793056002671894412137175517861268363780281082711603511552208531194978523432741258706546633553600312816854633998629708595368120072917501423100575098150666659064388166080191183652891550562524024575268479364131898800453333128529983637433307373507669016215132368483491867690908196077183261433876456817625526876558239544228772349036783725894819848479815830038388993608830196003367353719053021338273601649190757628839516785452312178382338813199093853629828495575396120894858004270542060878342966885572777843878215456859096112057898311963824656177729137393161218249520602812222547387146555189788920076627778782474182878634743351352792058757698735984339713505860070318780134798163237126413424050638059522537577063776632792979310753527528556314798900976266110537685570947725279464124690826410143861155503031990204469380671015663400316544964307638219542769779445566048360382415892492744008189742720211868737471335064575928068985871243214014581504890737983145855324934944775660466825711172081932298029233496531891813139915454006740988132418754919252112297265416124932356687953771201670671774029322661746070405048635370081412305484347545792328554507494022141066439253716463416936573978115371310556170404164798076919114101215652947724132151623614705355355254386433372816071696343786960399930903076423739648868303150892645903894376770104498056542004202938001904594843475250893822914205712293665726176143872440503439359940017711858908271761188449242053491153030114197436015726786609658687066051644462734209884277183714343851644846810488254142978701202450293407407746785071984213880969882176797878644302533298920961703376633134057686229945342551565951918164373969911087749328170569268112839323182349460958085639176410306592543156772693916790983908634485036532248570036598562897797029094329713435060509914314506652765696421581775216102748799761917324499083747103293775113409806526906926187401157286628062334575531288719776893189674059858843037159136916138398010926038868744232239693919579749645596771337577377542442270268190564333649018672093544048279288737673044090607592432565151384984603119937031984301104609060062794774176779885814973531415750109796092122871943769765259955039801820826532487123718706641689190072573170427006266932520903234638091960467572115721530580278866075618233680852592964402692846730714189715518155566415088184338362965967523910169603771193736718338208447472005135600099557656250549780231586382697823037226679940072234576292470309024721976325032538280567579598332655524177097849891772229599616401228973002228309925877273326856698042121088526942089947462944899888807272814632174509811705677909455125192919298084399978743133354121684519712162497523955720297493583414281648164147639463433993300857059712483601353200923046770726831964241813232470898074237020910004250054428694917939186930739666991267949141318168155978295249969243187955027834241330674911493648634900926089772662926943929678536039815350111155139799642805465968579803041311198188338506954964779022572343310129996481360704317460431911834578881509211727195088208435489565751853891737584726566531623069962207986314309545632737314713269162944573358747478408958522690486138794116089730632817421944185519144860226562514898789814557462989493901164131055291554002237388479592684036473644880957864862884388780566663391062873595443863283031333011328393694487954936577310210651565483622732869147228202564652495859472902789977218126602406987088683636999152119174082139057651756340972573993459964412959174741976317809545298820511384492073450556642610553738416312012776826294429399161107518228648082331882684426157704451976544573146687998236776437952533599798499983708540615633947058973361661200089401064470594822921888586187065501370519277121489427178190498632677143290732382084747249607871074643270290558384407689731266048054392227387064290137086004163551402733501039976802599025743442052382834458751892441011196892514656944125765653520638611393771327842398637678954779355332909436756868867988955209848052439170481802672884733992397213841522313664368930818078301249562328014925478550899858143349882538030148905451779819445510504120123746022207093131793221835695284778543560442867384283057758644940879319249819167401232670095463293056100282559463414480776739117088131222174345804931798173991268622837337376602317648796510833241688858300831118464830284126448172186320027401739492818809295999295647440662461869217820422791443820172690296362976710408472584656292485036319213186660313267112574271832777074739400237083266544130369102498401878668600815130090995794230808521866680086853640967356978734765259986471954810786107477726235549777531368129731061272314588259937016502232913214232429012944353599148830059392506016873253369108120837550950730505441591895444151982886677656931477603176384000195726667750868284722973062743551842917113552120318089982880772471355036844520028824135515220799131377456916653545195354609752577717351920434480015611901011666196449714789018580194181225145649303606366282960053661285884866371016512314317361754555257566343862031110622683853181371550709653458432648261243104372734974680019042227917916610791239778002955118353295714751113180322829110117416082171999202922246330823176083751760590350176075912069029626587978618001935492787889116995953430704962702370585467756983093830247873939051645894028713264907205712681056361955904405375757833759817672191998904341869271053536461616939376111642513977234563870398715388276752617594341324000401097072220414070231217784192406836333983913039501032734068921978043896940244060188967163320704348104359249321746121898976638052022988673171825310422637662366053103948374722308060305697603867722349286542192379173581658025389388660143232852221992061141230823201827626550119604826346332128812841568387154889192756447844545322525075078368972675467159230361783713020383976012324874781673756250529404842661200531684306345226325625003355523102481100371866876248826407643150691158999905561006332782435941673139897371774279375782864976092856062400745573481350914745562914877348955606476603688719506798953504217515532070862317623116137796608952158480572081723764599777703475212507876046803131092471066517613336866329738414234114067421018051235219694876513198318262760011576100410380384894236143829692061025198650522983732219086414858822973479938975386285208807898008882129557702020798900511183293550932621919107372915077827389670660310959927745379779076240077625416870787571109893270128910949386685643813627869924448049166305169202029972408923709131805351868119245439366080182264170035709339501362866648229769800672132206239064799726343712773303562571659524368604106497844143360964974099870558795397958520413681034570856955041497009253613153690904221307355235261672577483672642367275363627445060402057791821088359842237342913904949155641036161029339327392768302316015736312780996331623831920812151402591426719041063848881607791600181305397465923684694352073589702217169155483703243130702489292742556496799828984941643232252868201527320583433785309018120085882122659114600913777599621880916993118623347669790065530076787959985836372969096250228888681889411534972509283878086983830324937527690397699405586909343485446290660271598628211606364780218026565551945158686244150367654320969965815418382333225965704893140020126430341234611567593365561424421750831950818099697908805218658927326001216385626483548125033091083685589254392715835197930279890177792730063079985768102088112757389731740202513379939231332972899515870277204882621720569767483039280184979454999236674438430114018377935661192717971383389504384286803933485498899038170502145191514952858974641958123719042141100436971216894925317783022099316693568467218746564392826622187391668838268644827403814857116810914329607370688679753547801518393897431140581356601420147749755530042936864523448026656355609670095925851307611009118512618250888419765524888569990138265030203377265411469548148920653211217585645117015637411980249109280799106015150466133762157904142747074719907123041258125359209934247079253724818247451976771968950046078043535357849965858524706471494725206227285584142128003257578263767046799431542384338152207785503359883288229631063844122232411256241337085625136383963647435414074737382521929240832822696541469096143382143805063565304684309675623291437013376935202442363772162802182834228817298532931571508303237705166313045848739108547739535170084533140445110667821350534539739010742449898181641825268367970901178527743833914246038104364349568130516208462834667600805198644098964728592318015174693277442733583571893964115797649022270938881258671659012981189124931437613994412851955653530491051217067449887956256011330948306673380575052335720285221826833535293601445577759546874017567881582241197083428291343057105006882961857104760112377786985927554364836056473269123907642400011676146022727785376828269033246777971762851485249306208980368413081813988977077972812276386237384403502466245076410865663134702355498662199543800610546370746587913827509304494913092469476823054901826642524052589456290470293231670889131375570057599643417965120179552570012410940037941566380981258537060901299631181663928972413385506049573577106578110784062342024355764991354580507298924116810398408622656296921534078719820625528130226134563537196992574151321819440176178116613247336619643881952041869267356570636742790239488772066289900856252443108924404402677215687594270894926536335435301444508946415355737073221984561969557590614012406905307465203992645953792259103042422865513067451142338333011201908001203292205794552624342602556295679655769858021733529947229735697415444500005309372256679168063432385335909900107199683493192894029167984106139160496229495254985924309109106095215774567683697010690028536022451381347655588527899349652778275829545302791453183826125525455661553876950846945098438099108570831455921982229585798767891261747611133288572170036786140795876214572000292800539459912541681525039124223327856092293296964405918141455109084099528063646359341225868363094587390955208867938115246260977384112360075773747107588035676414286498588147382728125591361149500868395348190361405562861845278702175262076419972922696576342245154916780546260760796690027683017023110938590355206742452668319786018745596413403326693402692898305420086986499608786011440660717258374253582958435179705987335571840087884702352813647153673882237487812560651720709673346901601706959425928357063700347201386352346029035648736207393797492358460207381638624583379540046143544566443059197804463205035560986999125101398502161232058339103108704969567404482645209918846053033975787409987227161666572910374709789320428245988497220606516919073790923418642841560687255206089993276382217870192669998269288511165828576925218869233494133757517425200464207795991784356322560769389756144722072386687940121852916158103918884245718289909515756729839288590299475781576922248765294753534201624092925123359186258178829383788900934679930338099044016488119306004463214890214447379515917635750994525879550470533504773501769964002954306947870242660562384363469901766854037395760366047527705569955360961420741164270372737725218365903417891712961098896091966681416069599120559268862286588417122072068467832880091380102631505614506807883244322909981922562974950312443101899568943185992331193473781621859567253842343615509149316927866160079747360291851404757002034555790361999008693463461418582447413231437160623480834548002442979628167810552012008287595004483749312076455258343788188749061428575630753717326078997855881666180917786327077634218425017784957730255246672094628029026405962994020237519466746993534142709702175405412363469718504632788278223769157780919533584928007693225170856860467141996290548485029705946555530652103383284691286900964067201626565430001446527071648713641188361419572978758094995500872896726398800142110289457331130658023956474458843802386338089751573123213882680182104760099342867265861178054461545604936967006481117940630097227315154353130236404277482929922250239835544274026091462454232648450239195530118893111340756050496936346150214206898721576539450366035768248048476574613744826381913512380936410821128169104785383264783082775497187354954749182310779553095767138608313821397248215712794898185890495224319266187961307742386694759035106409145810346355529245721264767053946117557612004403514332606826028804433743877666322153325596593935329987737650589356794413316264080280999162430449957692767469111679101922326032156606399730526263510495297645496283010866142163371015962718834119068100273130624909507840761653878587716590793115287696439334555940546086569219723747814316675866720287266613744847743331812798390419411119671547907538937713873384338325253996821105326858219678985917044364834129711720017669433189116704143973253732907626053172215912655256834425742523702497362057331372627669240200447130052980670081105587409849457026126994381542226892448488767099183742733324877031146541618237471676635806022411264419138726294455282479680249071744956376392695301020845196227061253772158155332604890936274822510513544777356947513253457175674666130590474508160223562478648699186510289664720494334568179709817698930494064189469558300584443041095325734612283818967212921027333638426565686268278099331627311303050628164236826353586232065108622615581458915421961826235188938067625122454571579646510041952902073588381115821830734355821011284826550005837579329818945673851001116919482660327372273894141640394297998042902345066981246809247974991015087320604575096473405630008309167113100904391919295022502315394590754830711141848162009171459980374150140337293886875114982001318220136099714239940779671780099916217315127794980244553143084291276927711367916189136626777382277083299464949816313366443999294254027516672444187684525295464914334654728872262407842018122135188501694001060045575510318258502969296850225208001377413485439538134576061287247502978879818453152009449728685046601327331389117735762845803001053521368733460657896933615212776844266819298295357892249618816782914234239420708262625415187278267316871844370318369359315231062214936071990406676665744574532353419708694654543634605821590748432025767432940820443492447053758282598573155795140586188832040636230658612429655176123499711605746599075709295279415781047519278129998958165289986846475048150031978082477066749029326158542404028288612009327097506228274585066620596342400868812972260436006840761236782370193439935925962273604026931776054744090564795889041665166002872384384489898687588788939599607663235815245197806208975920328417177232098151863050830529277860453087582094009164403546741989804747690899541880151731613731983112889308113244737477256239973518848080581294777642956044538678637616570935179152449309926793399800431427355147686712655768679152804289565958065702054981763905892263414042998648123163669005573403415571014735964173033553246420380627548549834574896716048959000345851502782516472482103842097166789731745843225655381984079604185474668261027243507094189738388887017803853327273898341843444982348898509113482017508687312751254194200479887934692274035708505209592667013649658614510230005567262372227497647415554253229777585359729127240515287803179860998110516705472582209276009333408426453535749175422238974186321968009657559217474510843447133852046088158360720385907135308814444548549711199533979949117023920133376069537459814115325001133582035965193234698020976746799036674168794947311063675979588381547500544289514117407461538823673939212444809449455953967421109833465603666963960381347858557363828555071541485374251371092470848466913212620152386830733120590025770842926569302852178196379799834615121457751217618604834013723447466535616087056500647217703873004225583154884635311607529555361767961959861994424235888655249777107127868583798886865884791003720374914181846159627608985926719962796900636017861341932838127628540798948380135305499242810676481915214596982856789176110523478138143823508616266114308319966472136877170967692275604524715027051982004524128328985073381283090250484726266443654191014464876826879283096637795946164545643067901667275741357534205643314698127366729529395341914454638805965394072970018051702768641644905819450484194672169335696828910611790517728945616880101577735845668069135018074190689979776385899466973672516343481602692240800600048495671720863779458118954057235017728298776157362869036009180365470984092003838214719787012114155087168796023859922231915046677304066629302691550445359176920203050012947837737011132515218848781563820799435204117529344009184074989670034880554160103242969272625526224565361762125298280528080429310733532567215280929144205967264179783645517444125241895055241584361711428227751096766993871122199366076787376350693006774136327270974744146114478689898906035853765085496664914752591095148044323638213613274985066582941866280694591149561806825871331487674276319727595406127575872303399997526604750942777666775819075507257743580863783674175221019074560933246832811177214267014293667592276513746912863712011409465527239363122899708164757728536510170775921845746169183878691149768261768232642219792155859883685974921167847078631559198353316313181790575212396162867816199020282562902686660559948440946680299269678055259717603437940207636196179699609214793225918441813180763126185280576646206441640733846418279848816172354446037180445274452823624015758032157963254205801611523124006547554315632627336680395643712833939864709872723620551149159367738202432105904832727790064393640614840277836336564763970172253950236247313911446878096393248737414490323417497309088643636629518713646583692829116946657486201753020208964944231756077050180727070914691641897967678872052626360697058919983228522976163711981839092014064119035112601222627203265988526217916696381510418632747116258905271787173190660970376084441336280975967163118124111056293057914204050656347946026929280810500367848037558808754787385086730919660526105389336555926986808894675342361161771627254370638205234289612324284008496157275487728959467456291719032336950824424297512889988850709357371766773530771689734892757936737151906299782903554314124572408546830435280894704109927678359695113090698806486678379185790364732447791988377972183172169792206284989118095948490470300201734777307885245245111765944864567545868435005684854110187215460907558953891283004543253246895508424423393518054367922528435556132821302972615653353195796129445276217091959995630832230573379360421304577742777200799207913832191657181052377697026091540490429929804011261785664319387469223843189815981337085441944464961219416134055986218690461653307355045364528535067999686821300348060531973763890080767132218845049259619453923649614732659913802160371601370818234711332087217015834632275502434456029442434311611168920364229299676997480388931859224135287497756827618389645605348487556142004716921758028044236178942089304920548855752274897441604030587022166484583671609809338546085953765538448441476341040801326531646695154406582485026967803038249574789470740487229972485518564472928836090298936790765907486916961374974973585334133047277489786259365853441513653446768776815773781600223180329409196596634746031133002386581669233624667192357524901711615593067562610444868577832595097256390157685270446730973537822663540465421382355129280632533543813409937029796450988091871525514844520847407512164080184222915326075985928329142523009132601757407770185151265528922515735095281011959279356609824278777043726765105273762249755153222671968562617792078546813542741999114745103400653584377024848233728384259201274051146922917055871431190336363673531316173652104944348438939136409396616805437806539990142735218003514345370729126951090989303435185571008553395617297984387492330243794765984541945313057205242849163456113338149386845241660590729349717610413811423234067324944431561790337091903582695843448556370602784172512940932077477841576088112872402889505528050139262732401937029747254053655921157058638275131451596512785956071003061662206017562546082853169706107947374010095626591567669079561814260200161236304418321030789487303626930239837264915154864484637146045588061016961977795144032062591546095781828067947423670627892011852296743622905150613964050966731019337555473291936198351893864503668966018893513262013900289172993942740421301149594932102831995449659118320784380211835114493916366178864794750612135972014443507217664446051700269832805710642755794724813488500567304827374158406798631128027079982510075528251679005471230048390824000694802345171430965395063792548710277901034000479258898600591285932151903286919867550033921687482338687372789754283869814000542293758013762472632885984561432429539220265112812562969156428313853857513653881663228969213172222646321392462113332451854105611899676122482913684076959259001857386907569046088726834138386958772541545129868974273083464273815319989545005534356073034403833124559401649949995235244794237367131934981360496608044572365540028426746498094407437846450081393546438447968465257712851734079258712292277277389041611644012222395670628565459581739249534016226406862939859901341727235712970229514279535761235193942547692534771919822148216282472051173566077560725429700886613652768918803266698829065072085486915462245005359683034863158730570691215613076910035311890679546464337464667577181173166768052982822155259811875288088108206308640558169426363651424608769401445848378343076464440745608199116243907171888152402808514569894328894352926702002789370811364254660944809594364777495315999754302263575816164457806981988805085679926186456434140548811791299689456537592899474215303697313849376710378146745345501246559187161436902007423470510704712925779156337862670593895286730785811871106391772795121215298707809869529701016427001624946706897891608395542372140244825417834242057671830079820875282137966869532978939176369015309166210407755239711834861659908460189272663354615006839376746837799474653368734261716246466422022246577029240293396101457333343242871243212348577920526588016642358662786177746024290873019222373490495438983160810679256571522079838263185765437319220782411256246271477793810821254138574901095477218398500023259695196986387168344271042767879726127843455502029779219705904386960654036675206364036694142373276529543244359135595858066018676413436734504224613714860017329441564422623038940451547462054784488931003185318032052181991786228271896466218594438314577798249627905658428998802128427402088713905277255078175010567542687066023140080310283838640472844499741510789337881207394210633271492340699653782597729001168699815112720088292068501744203883223104542288069512132431884424680691026818984171253452242992507558232404739890268909533685454622946698028764189805852911684910716715489663684066389846795601924890504875255971367682895494520558791222411116136714868831658937928018491924089291479864290571862002929054172673469425580435140365354077733740735111957645827486765065566950325819001414767769760438099111075727612827904961747874111294498722788364272230852093199191945821031147881038531507345306782550755371005072639306014256747918837769444602261339364749083897055497268409717330168372286554174228556543544666819432812225932082295976801269099839890157376094230423600521682275584501653727760004680498428734660615830589519686808493686688591517118001994593011205150959626138905386201946176285747873098667172181206625641150406214104770779520072703536969506566053921166101016450527837432040107288542816989065362123671204320021602724082434311896947063233435587437362431874446478761210865561341298968013987850358208923264514550643456922168043783925375639325920407274108942375581755799618559276902047846154854104120027158875791147498145479839797163754637062346633952714810127229203224111734179661340401415249180558380844671769792760056520914422536321648123108786052923407317639853466702686557668704616124667822924544195937512617274824054261822235613583355653802131697877872465126306957754968593106174913431334055593128686436657456781994716029073095004475768631309857533109866477153467787860827445174907189199667385219442924568014734315916172157668727480633323350109057637965131506064521219477964298979555717534362616475404964621014967276777953128059173352060328513804725925633540371564549603306765032112603257821455840515535862667844761725260929832771430778901497848211684274619284595546104950507900322734212426968148835722304817252694577137458284479236655982105798973717384924785003503552691689190588039930677416767058925667826631498963017794037581977001841729950997989146288311753798290919712123759827898959245362111204475835220450647069353447020946464986000965891823132431582524491081622990598166764280811452764017962527270997095535503590194637373977412955908765249929083279136501787227031459740733731875370900331611579994102415356580040718160567839665713157297956420249986818198845239985973567400130993149624976231678061650593702133408402626185527748724616137055046268383158070190785344038598240016855407175741077789148416875381575713955431950495935772771534274921406049099129208389056592573878092191424101222905512550901487953882354552811555706854170537929088083178098393851842243827122891320034550577728997794028017701006935618835254658162839379193056162735939839376174570365340628834472390381673675320742616361816855396658324643613370816894370627893864033585074267023731478472294524533006188073158623506227913439752014858879927575643552046826260059468642021928219409246897827337560964172142214419546516810307747189264991971393059534331564154454680373192816926224672225729469049015086774097583965240550578721752177462717345139936155050045534325401364883782580894390195740704822011543189829545981595952236221412444668981669600177034477657161575363239602173401049224179836928069819432998956127612337718217179053060546211586297199069813787085462543560659814094278422537552739668976710839029162572623672660764690955527826802712064726991892048586273774949743511213674235190510138297389226704908423837699001907001847974122813358729721243807062101363971738005309392006161681051711062099508663104767462196404728080893510992611239117665899607432083461569139401985996353651159740166901751737183573868920393746658652780608775085033208624763647429925164729585236972088174867121529226076310127717723875028221113819459685225875569070303303400503304402864123351884057254169342992707377526582339500376621430356587159585036380052839247172474384844672401982090810968574683903581010404388856254985650727415492885328758081869611741203014513107685346642991994818803772658298622188839006912011490242627879808054900289819790443101392608022966031501933197488091192468310982585355900952524960910533407306250385776852295143030770601521693607331424770646386200287424898959984930164490637379557709612374020618323560596071260029815008585559527577919181057345893313879279031858901950845311035858562779467071962601054493536819879551995531893358228109369291454555699131108015213927745899965516113809021361346649677299544833982911703473051578067770340675777209524394797275012549382947799012938401689860242543847938429205743741287009701665248645634785595439573130093648563397674871723200843023745725409993217181705464916613290017677565629560821913951360808858199076466624405975839480266649101549808985224686211266353377948593618234330219238835268345461573374943179172350231513365092470713264859820885805524798796259457314845704191590293455694811916424374899393654416255964014985965608202262404402762013120380663876352497335085200907468674107951646782458455161611477803008423052890378165845755204469910759213697629099411608112552787318049909303784303009966057711694302253154799700916419350963735183572163154541222482976635232372273677176503644556122054984672277243173112688399046548836534497597486025581665215637450128950457288366378774681262887203891963117482866362170326448196249123352070242584010923174838596768372707482601237534102949396229071035888659979113509617704988202027879907853098132969078678362488675399452400703789397558326286669875949470621527601158229261807617014433802882657518659607998339303907264419357325162498735685178274569104302778511068295544208994720176314792143726110825315588888778411740621291269740652525986051357956060470989751511708708206719549698399838030402003582993090522922757321606985511744235083647832539174356361526811337356179690857425684384105774805225416603671845646597048441240517914422141368012533699413096351909041236165331487687877656049103494249949570366952486018787849916067317172111369217165444116373493636859459195078799394540739185545766106908967267137294506859239906833991806487729316908028490987155236515204360731467627656802773916222077207586789255786705076088646102890336773286165540632096246901121795974746654710305761163625098145213754617710133793912488689925381213486433724188644470447456712901622953371613545025022576783465921272132088937647598252118976930020774342559425325174951432799921438888873177609908139929196156163374215809299762860836882702996054795336160640831436382894968035692950662527153502959326798316891789261704644813724986031668465433947626124193147132778044774051018739238556487720765636060199606045558997717712226347941299341226676979969049734827526029634461222111862650903569146798784276256586406773737068301869160221604909045325783766442927909926429758750547805644579874233549258188516556974680778308876906725094523007248506977946755364882840589840388854933935169617152471774773323696435988310423604182514482880324994591757717661641116020684712052287458017446323260504872394408546202516817844809742288845183383679690736761699327817677799861794616639994715915299877537865875403922774142006114959949172349517873751940097658185247322498075747835570801924167568253978933571207609496762489152360027254410535305012200644051604532008496062551193898288427719275014058082940543517831133123584407468971797961230929473364503475608124704922402289962199114898071595801064725653750064603480105193602518820323689699537463445208733373877045600395685474324025299333127034384469641401092355778971920393813239631433549509954804861742038642649630790478867899427001614152183978176099279352421901130593255912043454205420485575550488527769934961819619240005019111433502515129295117545789515555504136129685895838259746376546773065228970777188079220048885691771586013758857152869950464960602676653815978773544813739050196785682008627380295244041395324157493508767385891715467679085216920978021322619871262337712925927188601580366983718424385814353174943958486451097333361876873107295957678397483458278291420910183886057467019993311439467529858144903577602641398680709970605539021019040217703837691466348116717171463609843460901825852581347092447555910386809548434435980611640845360785230240048383682850362635029629064026985451860808355867544598399046698313821861136802370936900638074960261642270625724856112997481381697954998925755271680364089552443973770268042143766929442928981465999228121477327499613980023766521543126741012660582316023309056257929148945299869067828010687200160699609452036097281019367215687920881458990193756024801039123621437375839409554094039757767889901765049793389038874966835005426785598771290302101950115038634260157757182631669298630966179813505551598577021573455270809831409529837811218671728353796537940006296057157394868273618373979349760762365963841760793596228546687736343305940977398363489956868409564591493204403344103692895402067454610556237140787208648289031153754715588282289192061347750889423955238657209141388643296166792241248293888262493180342561976905254993834043981559189507976484614812317647090016916743466858513567829620948542230801638119800047365400580183012249537970955086472615445409525532395523854841720076151152829830311800953216641766296786470540289651176433111449007356265069962444868933548632401322492617089368864185721301832718949581286894324518554805284224937615622425953274445753948701946358571272548143289467144178986970559380996913162897382203559174396416394709928491426622005180774093134936373092895796794585114450046211280500454852319556872344363678799518153398271411468629536549451337525206033748278503996398613090887359920350940979219001003112737712253589900695448400158761003741062386429589117058494201539049186007692447157333194564981814324415440230555829707945297478734880682117858306307405928837695158280404293338026889703704056818482768652713640105689317779927619059182174524632443945471776817753403132796991938875358041582683203244178071559763043955219443694108888840469673181346246879094373219645361021339661164492143784959574302255462383846741137741323345023209226244468861928213285146869692261113784758714871133163374532848308077942598828081736630733862203277899544554563601350316278460119376023740952980372147851336068019336539023972439757908106998098075324572516114473721443519945714460011461662398618566564476931996097796274974327661758400132289263143299708151602106896631943454779191687579219991609947466704142222618472777954605701411191117855088051063649934195095904267743496839728174603126815491430978214132943655156967410012223846258064120722719087154416967156836746295421255679856608135732444208934499854601942592916915993794454390002341340147219249491183637493016227991068686080417830752216982443058762393157253958688104968144198599737306373937720675777452430595823602825696439215855583869573457253259037727815525707194638396389285212406105526601473508328481537643611827835892320413752593533113386661412448832673144462727148636240671168816492562033287437008683835106313852233046948989131706267359935017444585648909927177884858989099830400518456839570481236000810639557505447136799046820186892427933105862329738291846546894291192358628881365073066347727861489432346735230589424528353347437514072541998438905986231176807620008678639958625589402260406905835126028398171402416562541888322152690318950474800825353102360238137455389599342743519600468338839059283729248849799874246812782118898746022977412307252067971151437884196406391016787349443127473517206911971374686238364431625080650803620293454638884355484616927280404950239517903127435396248284992878794269485770823715700797809479082795962968626927950696661105399141062923313811482594627626240371810988036122529224359878843866182698548678502370833368203474393222820123953491364491669126245072501944593394555650975651042589520424273825288074086161504612285290872946012744727298385612410830323989811612402279026415992194116769737647221911879380453859453213140402122621126444454290537371294632372908912872287698809965500284496324361193243439888980996120345077851747388123109798081058058799027590851052258895813626539222768714725965255034488448757431071317471560100876415479328670116777192656470229589087393766016685714577682201067357149695191858596574981294552110499811456031364190098608237665295817206698242884006391006478822863894016655715735568190062516952677342366065208490278812725302161338592978205310638423969949520763060759670210870709998646898578795342811235100591130163393362641778425480868396120964290308499354131211334788422358087768299017523114494591635037846690791115408547050114799134289405560718198370332851892772609968981694170209564183799841997831868350837867872399310103705471916903702213536925890590144591915372443590385289218668880644718573263738074905919195672417126946956739363591175162109653067269023132013825190132604935798745195074363306420788238518334913196198037355640125265515153482029084673334622526946321788145791532509162364521054497017995836867982725950999030010827712681778144284657976887962851190916431673230973260820038445439824091744220206580972059342371609293285525386651569405452841617641136219747358731774729014534680193623845015783745643017334819250882149814780349568761405473551478367009167926404479372678522295586558036034327434412404456100342584915263388705518897612807737815892304104790619922177953984934343131628250903122217089511519890890587006482367518940415188687617459468797358945095970265881715853539855295035526488094637580119141980995508310857375487327090292274639486908836588808532070148908764825100632284206008317147010803770296701342474711143262465361314775214480657525321903901591527645309595782503047110916722895338220020984032762693164469775770281952990016902574671349240014235242690365649924590935670222613439378076813604760180606783386344561891071683201995546238673104428110520191919233855452835790796532850266376483800817369607675002021311710825847774727626675487010479058205215469499884025233446226304652135525230092971063464450296313801712775930488034047886179160062452812457181720669345228840110107935290399249749017286231757639544250694811801639772305774608706612450913326667521725607830759007279132909712618161446350212315682119219841612000843094893282987754917742567154873765290378011187124216567462972755413650923362085744311327773857513676535890945838488021625833729594052289179982955312109704621071056668812571148565886583595291007679420627737012770505460832057882429310710790180090019752661312940527804023033930988611856349028218938546860030502612540846655321198426536951065755701704208327393578216383200161915395989977855088801804244211963853999279835930979218603233333488226490396063241842390147773150066503905569182398172074322156244029378544892314787515127230325509992505038108678933781611886264660658096078086269793753404464695912245291726925242055178111345963352945583228132403931720941409365236897637431224503468713666007924528219332704499165162290064320501015914901745598181569110784520385644629712645883573496600556380934985326542265758175039905653668838734135419812901828032442445212190747683125256163757423452852215602260672646870233643369563550569408754971052135774961467204164821561994902452214732889199214565887906343393654492162950435564069490066982826227618253250444698286336879844112982209602899559339000321804374790061979620538806997855491758442067476927582925986519520716114566291377407004750472996153160764329369219937858813755662991261645431539302124051428658406959016548357789937421682267824185734665977909770437214507878213968665078839148649814844874066306892373868180965869672519183729257741312741290846040608218179085847958339950604513547402153985613919553703127735092275155749082269679476640564452649079593597362943893553555699163816923488539621038049637144793363478588609588370793293897685696341117488619546190576160587282098343815204400972303933833442649093998928305633956988037695024450340198304251541540815368664647107830633726460749122698735752601060033661441333170566459105889475404713994337010451706245539708403148125384731473001539896865920543015376687282828722687379345661072741267547390246726797190204590547401602280876176922487847114380965813381276348071844042788037241075702720585902813876959853705361322466753067966388889749690700790620100967165711688185916353939664833585596027546652919708970220435311230523636449743298856652111339589732635935687440922456658956576938581353787852826120379339321823694587367274169474534872763698176418141045372009147512576879881875646833063801152886344114870455361097278105460598673912705326512084915453670792338082085955606602610603006843612775796662902679713763634474069960695865268561919431485726612949066678613234443179945231937397942466934469346631369064027608508335323325891659458623810910506693777350636558728631003124620191416733899464388955203350200991151995150967736368900505099131163777219650864714465909316836181539430421652641587519451286606022260928884349434081353600465482222189059963127729591638285335814701485434809696214162823037980820454014674629309477455428065768575691612436493477115072742030645489835810628734267682583377871797111363012071580976795161247767528950789596051576932099886381816937447246334150631035905220087146558499604968855079057183096640963051062706203544220742887597091512732601796085797045616531543980851653712288548460377334264596707625355578862828945010586550635400130246187136176654458442561360091844295678524247628312354030058254935962783236830011341094345108666565880685395735445039511953841386585030929016256226448104802452134135888767816206202407232443900056443428152652666205761409095436261781309500841968792007972099761385612456929681729989746484906340499573583374064125406529131642314585012937359831011092961567895949733744693554887455002668077743680620569238991420246020402473011872203116189333542702787264514263058672858834079907686070885721205393700199399388939232161962854031811914051210955800631789517161051933356671184410041715958422356604061895723661396135172327479057716638550813477940873781679210566667050987785879930651338522271799357757936167572243614687912791213093216103150059412821560652668848688887577396537633793169007123866815479315044900634324625919315755646523530647436245478947308324221215613090509322951090018670123455313949295586476509936721992029112875830824921455906620371362882457885547979364840295560363270023845319385510635767687486858316386863258346694514468632139782515263735816789510940770603173731579706084333587807602926954570213456201325013962867932137438200770821463869589480248387320394600279985288459431070352614013128912366603446704066251074710030671305893293798219073985314019263486746238536572379400701087352364943273243554433765043205932715838567337332210306252328806404479367899901605865120533896155437671620170713249786539555184672183861742713199050256663799792571403320349023574200655261478416581636519564608696436668904475903897478754446088227612831538170369754699242107507966608172398100172821455358549933123409186858005648004831248497749782127496336084053974695610229551694809989858946213037700332382498192084853351941259244474595099954465971407769009985540162343188752535109894928386194030041711375330605416618366666965391492023122294426348290427506295143543630948759754612598086164841681784018073344977974364980648132784687565228089389882476951004445339562824949825062779192221774129619330895641802912916457002753760932020389066752453405339638858460392558409265673421640464814844822397605904926908707581999191160971659077693920200723578471667540301651002020868081646691271526828876672756348064489890488907226146134203231254756463119784918708127995692218460222072092851716966684959314550203729301404839156500564016506277064374203922288768745012271086265987437979459731523277179705195925475338228657650405071457761100628576959292379672994804553471173302997255008877802938977855855126433731638507001518027892468403636882522648840980482251650478690890152411685316251923454497326703693923143193314945318070668389938791784432447787916807853712470900260017904153698998099493115697479147461051461353304484010768857050204952554853066330551806227041757255520786170696636839238006757444871719876389866946125284216184847411648308607884448427104776158718198260000330571777011827225931644232745706012677850311541198116269292267875112188747191779919682027034205203194585746345865570253366304677751624254224544673272718441868068216295113155214056738109738816001180108717050733421855131624423415733004537160896826012172660814740345873957534824193918969864552213010590595833678336403186054104515287644678088839314586362961448161681145507707410810597026059367244248318693359123698710125510023249695279524409398404383376060309605548883608749951300846865120912461017691729988381665228436492074959292628462910573262352776044411999826954318178703213345126395417401308396184562795233127062394474041235525825000792740240077699478528474205257746061232167907026373907202253774845575924907982434850604356815694871350476560899792973830741248531825673247959859618657899855389657905920585905751145414232440186816170878183866367732379200625009860006015195318223519887613091429581886051772709187172632465999986461719064009230439161110384311071156151800655701308577295663525231122331471678869908264956333668880996096265805370053177436149103102071803694281649249438243559709344030012031700116218943325158495937551393786810808408563950223447614263717376040418308075136683871025006603307118976384383031301579856224146346046614780698628935175491424705794056854346372579358682761739388459685882140704653368721859564903650820393467704787211902926399984054416615532882435441973943815314028549280480836310506447591469047973692246721874911071985510909204580103684201765816475274933036409288968162595588834245956372590763444057418502425168238253423342193964789430351607323792665929421588479167224108686214657174946545387949856818924043094240968249860055907017736901901521263545905507255529261873743909334473875793233082569242196587382503200932383012194673781825136628768480960931639643122843980741709882856161802132396120368489770785342278845358921131239891904748722638269190635557496055789913226666517630144000205986270339951785767938224162726628151083491625462930962218580527832150055013317114727146769713826088517735299406076617674038473695922366700952430746958904709042894238563615568831289531600530109883311783913799982429288958905411011420824313923145952195674180151277237277180939134795247122809561496870909560928638964601798057300118365983364518008733657554362238238891289870976907457950692088059997223020913835310369162726869584330489578658651794840707749333152757952641676035118691049247264537246429596158686691901057331061414194292149286251562606014835771173888396032414359563585383558571147534044744156850510449633764339812272195611317394566993049989069680915533735272380145482506155926234062014372177608772485554167277379949221471412847922818508417252948849357142849781915761966269400014503236735693129647929141591850733708122474251252513746638136643805140454163547002645716087818443297503325310109625876554828782824519361856054574488841184158491995036883346896830807978669473944468067899611605646709482649665311335522264479396545726968458737463716301273532204481386969992487847630840323343196972402322831187027578367810568762239422718871766166209227641731540885281946081125363135795254230027464344190021694822629725789858115938906571027808108225027336419127484086320295047481840104436593703812831736443723978683398307181617472044898756981412469092975813444584592638595470225357961399583425271313837163784618093401818241965465597314001350698184904253407162710218557587998702468828898438791824964486708208507507158724842171179799232723302876356792847211872266248532582953079267471550533660900915164919862722165371450603213456663084917058135596256216377795266069041489034932276572703977726609358901675705241228404487398021762023806938090944409038092831945886651169960455786703954982217991085586253060482941869539384172355389895756751940424149461557050269199031461654960216146559150648507769168113495359756557769416633122455025326404102169623791682605057538821882985571451160333063956728122730963248946949607184859642222411030335299579069705321012282939708032233213775023473232479452051945253032991827342427360310443323580532250150807630041750630412432359603667119669154600818476984695430007095779854407046182573917593186936645111134517408017705383180130707327825982826391252356986433616074579719468248045000217046064097431852367444580509566084261820442319307359349118366803286356121279658946763526915052995974712176958031019659526261579916596808652717167458896882805840429158090928308569839097209491921951376281539490026358113870121979014529125552575848942389784168466225400692674920036708028624858185983102334097621154935902830701081317727784875964077904724278143791497254459890975336979889714823527532697946347822829097982612426692915951359779134326705279537429767098700145193524558420027138014207408102219417531225486906799938328945835531789459671461445371188411005166058053755595528900593601170355768800662612458010240622288666628754499798970896575487413091386727738372283480935154351055231744702270096557434684660434781165766556234141550713287266993349952841021611185276920997961771042743852116763958227660231808036903868508450640576243807415907233344874821786953834462376727059619048738825962578733238312540822382015506867943874483663916781242017311904020683941934097759578309749605116687209385390623670939986433961885887102791683434847343907498339254474553356543500644578209559545933245191568247839783546530785623737017818329650741413552422650779800242195017964340142100593251117635008987841519638904978180005102971081522360253306669296918311555358149868025002542278523199747772361300038145533391495908633686585532821973521299694176277992965015329154375636463154438974096063999499885496015133730979320789122975557240454095759209905009608654259610586129873884927357444469277974299619467679066606705091271861612388819082509787068346422581563744345116474782284770022192281402134880482095690060860075146356036691330778784250918858401109985298803564944646929879637085387371728912940104383276566599351159467777440214076160631402368383484514634589259309748946314802936270415171636525055955115900486447123093754909987691472548447041258960051850955454753027009041894496759182904067185449076829493470286941218069925442591886369192598020112328137009164918391090603923866481463571906317041559045498797896599948989710558289586964401946004393740259941845729100762151236107482332956075783589676663620661582309059241774378426582739791477532040730981682074854454747389601627108106811205754062442313429629918311406105573911064184556495142158952266624396238403884194318767931165022800422176093628395020074558659732228517298272476419498429489316589077290361956648383015462024907254505619557755652409463243353181882379376002733636071735136519995025252829899492027261665002500456393944457967629532119938464093152595372294070635688349799848285708833339911105574341648674834099907445013606124535471199122522918693564072780099496374624123663977571123390986727477373257333246310712883219907896669425112294672223942825936856674027936144408148344432391655884162083976354697004398583726427035559532502946270349882971621651536294629200358882412877132070399950669566281936295005419895816005752531581699065071010518637810663305260035911486209396975018355757450861887942760612764854092412651653830149485408806833835078454341984717215078182284662682970956393689395198869001616397246872112873507281853233176413254185890456237759204774669469748460694017358343588879686093985314254848369459055095709968774413268662710059490123017186919693850276428616101545515547098782180437646007848285470302841477663660733201380685344458043132417678810649755240328825382344070271024605972090819868995541291683559973646971909107748340133311867966656063989059803975734732070380253783881958506823695600559893581838769205007826631575380498455055967381866518952021651344133445566169423928132526679389752087014302947732468268358576179480428348063275660986731575097799638837473733394397936907576493271079924702611871752050441453467859417825947937702025154185509572480491133797348700183064047243565392474085600048265700674167398164928544323430277955484670411903235408173683011065571992601346434672835350089313913920028038536294637586757734667112413759933202766151489756484564273968922300310452632318838380918612839358387362266641029431243544966095405305562666878043809863469090837613859644363933815167463385422602346213368463095737317143259813988172818119506031670808650168342476594002175495134642781692352760915456311253398421928973562629055627898996477030071742986226285863220494679661214273524444921116392901980690673563947718650618958753316990075403428799312046324036042045930811471740515826068509403263453000926082174095191166958485782330396659583657578175041474912655988577138495520309427921710656935474044967992583112365548554133206010110747494204699669059637572577718054719564984170361133114897444539010338262434336104839844455083337041215102419117877030890689805245818454462873164037645275621283523079420844460569048774480409854500487524138918351043457734489733194460141039909810798192525150353631994976298085125333723745563644602171539350061267538265599977107650782121508516078632722073130085720411072277322812095115631367788221076154802933264467370281782894595899045938117795708071400691575010140779419319506556595508697047288456019726033783476143213411698599696622354285840426462876153630210414258582807648886113509872991923959029184059587065746313003269881162777795126957863908121606493295004964748681114068391461612817990624433369687130751791746416926349682636560134436639767750175128374193238425819217143035459137898696891513654509519521922631658724283732387495656439832604721036776088317467751915506664732878140448549563966621080802729407033951976279179130695579072595664183715702731419573924524590884027030714644552590145072539631846423940914214209719507834672975036686425712137044071316325367991440642205163884337832039867512344232881634009202859364265117738880859677045280851655187938230654608078477563889854611489998456920176665741833232688785266230960763775826244526735535563196315573685504633890731979748448483998762603551345365173004401329734778176162279950722211188415651360286252165078608742886652107512997189832250261512424035638500960731228784564546514338201336279869384667267012783939159046593983284585778890334403014123076528874980003349849502634224731208582388988564323865468922171788268973090267186986020532701722489003174950790706262836822883297394953045196725490213574962070216926374303898942065523281463253182212416957979576831670172508468444622680565399962747019036125340880768581439883894801913460056166853219107393005280722614332591663164870569387924087398986454341488396473726327027878526245672500461867382174583656577911341363528345981279049500879728871676250881584359247923088814028891666801406095218822044387966714189551508536326664604640865344463691581386675692049447757142733690391333501981610903692140483678231591669925626023195837114415570980430186376094516437577218239357752470902518301874714366684636527089340935706030216398480585853393052684717007204587964784092806574005286818070093546529047947615532068087211056595017324329547779331730273336849588148252684869273670028448981192114296170935271958303252690056614268960136230963428596088924613751214578998260812202526266742517964433458312362451033176854079815330007144603426147039976320418354786945702739200918846598137838297789055500374004900765793986224210753176267757154415240991317008773172253939129581438678143305958893677083196878581126694146531040107591832487176333472474346994357339951688378192526495503061307952600823806766533159992529369097980473056289422047465053101915790253258756584620380275488861406881098517984928975749993476187582249588309937851146455983183334031039490747614512960667885720797001671320593230251717936908767787538628877027851506267064408084148449573216868403278650486448610080341912543339231520624151461241535222660069853863114574156403255461772850053888266907172325030828197992944584348821370096495568576828657729188363966595134031980919555358609339198480739039392018253867195807427169415156502456082616964181512289070099830172375875625492075496037197764487739053697108939807703869521802824532553908243650208198170355526628878272732788421380897549370868012191447108876575221802551556438307230251383160723640530928459403270522693516895497705941072782431194220329533578014412439981749669032689863585959401068452365589851931476570242640881964335345408775372687987314288412991223798122441477171145726390192728660432731450059750720750114145292097680388112810905310796066472312766764976246233967758273664814494708380311509178095770465514195122857621978171451227138710678342055779662262716238692021068709713956574095265640801412306388194727904898038253465735923785708566474407281856510906537431224859690512825833690597690607476090673622301076663342068548493258068338492882331166192375320644467459781809210537425358296614369474907961264657508461841679019296163152162447053338612063898711550450320501081595302739755399199466989285778603934521976111544319909715632592579019475486226247656965240975650080694105022697993011427152305410416827507948269467833827451622924570299083451583935251028998477537382137818452080286069973007632806474616636489196635989009153471360623033482555078145535549875365745590527253221913760104481872494755020416057819571465110795990334005214264682628079971921107338088188594587248678929495808491150130368873298520052068450300637498395597443434332794036679578150562519830038464563423669890178208671016096895273990189631245283239354866699396089733548007725976158964490788818294289685836572273540443376521806270045532596103259678877716708207477142328331540471044664876287180062449950416001170982109894196988339712529561362555942276926737561180442246198839983023202841426642536361163761840302304654631866167019338155281857967530434809695621026739781017315350759437963837558449210967205882331240503590299819479570363540991905006192472641952991764431725765396302886097355895558883615735687007918620314700513654486483296713343905105331114169821418781730490297491477377176916147237513587576052440919749130019823495785646208985474251880846000651952963849463063902694692109554479981716510849628880881273949111810550037195242719232831105664309411047853450091620867140350271191579640752548838604842376672723930451563268555656606943481110984798093882141689578768934005309815361949572183034479922580338147607493678037645032848975942213469153424049896672067739484318388911610407637983633683824558120026889714054878182833527813442906733574567793776361675902405438370055093533125291172707999900027125745132057467213353176532133230684274712784105647858065625363402816057562177396332706105302157904545864968734986013314511656314901621488013968620262255916813106536008520113666597008677031194124641055734801284483293199331141862454318366698270027812737101539893615296843683880193115335648132171057908375554774538059069704200154749820423452355933731862922632895349931723966257154092945950549660176729364898780675974469535146583588424381644889146856881975379157082838357348208758134308347614238014836392841766435976729893198611263477367730623443388503854237896018106879952265183520620576139150903516051601185745664953594963004917303763656877478779925048032659187226405502595617286145517794663711719474602110835245633709078322533390263727849231672409002723023125763902616634575551899850297112197458202102731944356192854911805299113197405378224010708616443390168283918591675753095722236336081141796699492595142879312965635421124658409428173259750400003925875791977873876749013219687288300606735505626234828864069831011670222662240891696108945360685477245288728278873472562545961579829687160026782503261635613752301226857726719049318559730782703067075259982269169302870583425955392263403094937193291624587739723322132343427381346900150309635140857235212253257095490732341664329738364048334555008978547885319531717491168039567955458205272592401954227569076517343366283068946969276176262075815221691060512252877797164853845505023217351545636168247296365142882645199262877651664996267021740900184964437562909153711897757996295321201105335049728643520388585905484403397294938872569266729018883724989288857421597442760496569037091772598658888447285165689656509781940996160118489907903547159223971365265870643299240706426638774994830683930960868868837049271183548170213872921152175293358095505046959328296237734489145233682873328184057302772518758428521920201483681597124966096579828862503696473205743949929612472886924917858164816946881494952320705655023669447369356443653094759221422046233346620965135841428026478808336020734216782240492126332956689041099504717255739380445245383723317935242299038967714351967531533181459850019193742033171712345801152673324117194538548898418896105700736131563198548124915748218658070805968676169689511883393609906785702066801575318305988151743317435124636715127740332933763288544805530933343669677674335498030977112642522362594170004075559834294549000662899989025839376870422862433939909274863479589360585546303553359332601470059986915305013507643902914591967730234035956882917785486498914421149498228248206079231718213129928459979215033533163362792426130836694394284417626733064023899535283192431463018301076421945629730417220372787273304373536689854027316728583949349820641018202029485391415897926929342245548830536651449791857997891749766786583456302783102750301306083640225204037150166063787049742019624319203062277262558820989256529722596826569452739883838843962042997101333244461468785856317004282273342036960859103722449322572145130978187889687523417030704125892797583143010679549671208653900126005489347807376279642100365003239282628177778637428333233161035840207862168517542771802381897162910389777001837181881924125510681634697200828953550938815184145905389450999294079095087187059467726542775124097842136789311488746977834362535355699554721520462434545414703695403038089264780547066113807986677777580334655976315325218959981971632063764016930367038558842525966511849362283989089682502131792061889690443326418070321935642063917736184101187933521962037586540458530487127351432124304530631309114326529659374871224110184346053914114112366892506757962105322620276072537242197368898519262692599265687451411355367375270870431466049410344620027220080204241196799920752710718585551202878301844035933887396313384424522055224186906773392655893046244203861947007522900099494719200704641205863180844698636379809928700315400100591778788165477005165005762902675914009154022756875458455640214963344350725162488327891243339412902355878294902556003110899848463199452229944613762298420552091793690127177244413032457355202969413284826247093474989243964133522400637563650698487933365262462355088753399082564254228978649405148409946688046509656877129672158326976308701041213050180442030187962565143948753157590633275933952916581671252241094601089323802683604455882489590541725664201365874300676759403667825634888644614527131433400487883899357356158161970571558966464817532662411621044054731403905210865434200120656597141873270405793276385409834063104071350180648092439078812934570638598133419483605424976949050717814392730993119549126053840919890099591430720913486287200988388863333030738552737493195036737331038912071436795055022502578945612771371932540720828954258914442097670170231897667126698143051523016147607011457658648201309735956478727369301604914096653791131043795417405151698884257899514997826627074437334496181231761613309152436746983554592773202252475791242462965762851152287241443482414488151105053480118188230257568321469154510192696520352637364615073893893473035184110717396848007016243760161491433883956374540504942577380180183892133380935278620013626727929180363322469418795490177636409238434561847080150988183615203711721594967251869571317201508460242130674681848719786741722349461317574518044703223249738506131903483523874212954174762648092286877097298123055982268983190896501833914514303386447363202630108641976948476465914123624617820061043914486830543628531618909049790846852828696500838226219236903417202344331322857606804994483159957285506361718131526924254957882222980362654083125738355395591326973531077700492768597882878943730273051576143423453025198556106622487073536528292834834887307765566664927257156053267782586893596733354549408576789457881284334023124075236040371963092690544210564047696877784074172547884643174916696399787569362385224175902320093532031480942361069034689080813280248225487222866350786049359059493670044053477340932328280735317079488226816865700733060357801370926484730326228335203093128428426243430842590595261174789342293103539023303440325330338077424073936671234948610864594988873053757430529924717703687486931349626329514506118872738095199841236385331752689789978198307617636880091521085262544813404064158652955398415852690540014156353225803496679915480135884345130370498641007623963710869342973502238244262360527007915572641181001701055092706744038710666445653231513126463842985595139223989789594502062733264266574813732761802019381528961608515113899647953020795244053124786020322452219394645665427732953194504229075287911927182104383666878437434397643259694409168182379188907671623178118690358017745425613099397299392140056931859025553463203695543097692449982030608946254419101737290183517253635965398781261335103306132090869491186353198966288954003743843083016430738742766826214015588511256222637533808653380594643342370809544188444609378854450850689914674615079987529443797543707150517990468112180617670901828282820004460566225242930417243978221868937736290630587219192689054103478806057968331176828065131836729535100930231866296472610463998970876918933602244826644618008659947506423545537445907141244914474016042975491443203106977136257723235406015909921549757905482853126571386012326341257176026468437880021697567609427922054486872251775051283534221996180574995231472176998554534284284730191237603139686037008056231275108605835837223702148202683581159805799215787864301631501696510511037754105131716577354151899471659420325982732227008093444002764185332483971436516250179487905275738012041188892936236309003319809785475893042343707116480569536193203291383941810740135060072270300135197550893307599821459243972223414776174345163879232108419720308771312824999191039479527728013791755937949248898972560071939132203579791009975547251951214030591115579444866704249374039979905636873700367644874449749127909520402384458540460542777782752239111332110731501229290500629932648529126125234762779921831675224276335086995452721286842887142068058727272470147580324677749430266600551839492334873719267327856939023333215845031948761420745309099403576992053148005295222787491401931854862345135129829344141956915872575263490181872200580211641604795523402268078950686556045668586355577918464129937334953872399881060606552095395390926702739653478901731398831899636738914675505039932913831780762188188517723420768006269400930239798343516187347557782712342787642672578105706325539020289769993942011208053644323137653895540012121658181093219547900563409899972103036393793138379048342621753551873679020170324021408184473412362390908947100609988322203879279539446917908476066577302976664744560145894447791606556581857133625784596912338347375671053496170741836339829118921142418632193810108493636825587868604766559012574654777113145734016859100937080460701634332759134840548515532472277137396947477368746424286699858395641395285675788332921955942399737405626746757215981509778003477846724075892349345083301988352668395323983155330962113705864490904379729100581630298600329250236290202929522880533607462655590012841680228335836974912496381837505971332922130244384146078139770914946052265444145587552241770559919303950800999520880090327660601781242748912048512043185882089352039651049797571567147360413946879590734433915766802984357606543574587229610646557121654854965821151982384954642977596949563160197243093508413828834511247603967115948133552995606536964301342763315797947048505700319803975429284248194726828686593442729211707412169860307651615870410693100672423118040992874416960406253488693795113946688515101688733029130417495055583055331254985555861895798713683612871129069877097725378971030934961732416431337928197009463949857254057245777344079422455047260698409498234921039465793158361868261019297359902411456807096554678623545694352038769049693688130235324827866261932908700231499116329529788297532887334854588762319634474248098367845049749849390938750171099577782481604645698441123165336908929192041828048363857619619809561973775801447220278428276890498585335566167037478303927650473456234704703644691852840274464883795732733000011113269476123747610786969178111525942372952505198124780310477127921741218447769006809880666914653457503588336490158490465675230669927564291233211972423198614826036032702341819014286180053112350464415226558128933923172708215724889016775085334051334317909675139590456195979733917643843202892125821921950886792691694664667837126340764244188336460304385064284319343056276756242372799234677780872969755921493273432690393802476906908950148230556996841248180643209192173343687286948743861758256961376495131036058054696773468689140296141920644385062291123350335071596907086576173373678336233581143060387344295605166342436685694106868882336115683215026491883402193355500305048019219681410194371824157558814154731295418644911032424658967976094514440296967800474319465656997806721469122651997281296817493717309796878538070427356998511507437235759936833896255999130922823195488575505739847937564523055259564943635884240498388609112463022537785629281878707139615706401412948244907245642519976215564779193188527817307529123358004087027793389560069299910840800253518118248403523245470302323515710171384835555107108071348706018948807386742210529909074772247399873718477527514605152252155152257575588203304828283661765620185158719137039653971081764318220469142458132150039155104137838859986318107964095601065517183352882286508869532447336376999537233173017344011378186923542918581199957292258361864560501867660297438008248965016060494420583948215602862086101331097775819526574053010546604208650472953720606409540906184395742398423362486643421945745590887016165015527467684578693708546795452772590422620304985461682577106614279651397384489311373461034180019971838361575521680696212963465785677613517100227718154191063269095789616891910429022201658031765439190755212892062574378616551250400391054018774990369425337056005021871096257527617504920595992425808883415210440424806731108538428600473253723763101605736611814667510941624608094395141067676234258167111625968854789147399553527695531023715891446994299248291146215705229137438496733678386379872705944630601675155117491310861196427653812618995310993377197529977968269331515351792327092108296748188818666308489490097103063161307984060501014363461633937646585366670705211245271832299138831869601483491218119184615602022011004158807095656491074859685974258898007815209787628461294501653648246861626309242269479801956600519024810971141869381551391732471934353980901866142667756305422705720257590162673782559512353996311190067783830934298650159564477587355629054626617906498928991465884300091689771460611702271864848349889430911142007262024039747900252085350707744327225276304716066877919606820329454570752787263596873894870688194147820888880792673923763187052978889290907354383901590788925634702137849388238482707074408577880043942049148884370393014805655227962961956991831423197996027331272360143252043841737062421994969197588773139257117765248690995971166170670497301492477545829804924127924089743601503946057427367322811796683252681430900367506619669466532369548564700969764153493158510539324755980876639128681057598880510504552424546725916003961112795510590386824991795674230822075523257265958594927700427487659011546946823637096546696410284334902835713189888642031913138362234031077726917239576724869830640699603805734997932531203351763072023077696448280626343403374643051411382748873295110851358441568956734828277698594588053061976242998411920472079049010107450873265708932979484331636395190417150494914517057074509859182963658219177133017616784161631371520302813670232466492315489487951200224068338170272007177168398828935273171146272760983638298263525691204386312879771008961405547282914914675583703838450871731788284806695971657420984137011688523346233485420505978715817258334210829045345377468302506087071034272752513504046942956814760714773193342189685508431377778058830148108963791578178482057723239164046359777053743755370258773718097225891887543562808306487702270425870706848388104057534946565072822492805713925981176162167816051801829694033198094590715442657990240104322363946062035792383432126118867463653033035025410199258366742165195559551184674340080743313448742623174759675689831441362910391781677327982717985802016886797312767947645613415984270113817932637452724968822786084241774306857583226241163422029849938152622098378487635263617656701184692949556028056042097424630958370513144201407605103610466262166951459206989474927721449762391764198349177800277813769359295343563955707842709569926157169421802292416596828475029908604723954943088509240915451881049102318968440422642476642867293531749008413451203930473395197414358122643189853960603153934798864221807498792570155832407363690853865780720613384130388030312177490324630460113032536005467313227476815516080830151928760665175086658757857723454281145436517870722276879623151936102108899420531642120458298183303163150089640805061920741934073881893280670972729691372896207524722115517664722977580864456434688186662013035838719513519438962862555397985353688974807133514237883744234558898034368774590062582764948592241730051497740614533367574014021205495982581323450666797608665312365489484202449177605930122363354656021870939628745798904088339735761387509007063768127525197218817334466779233174677443694001601498582720908238066793454174175912009664040377832176629329179095156873506346279088574750577693270820559059611890500911641751485654549121683237315449086011581742283373324872842061522009973410275685426871798470311159209178924842274525592239716925487217182192500204827988886185219554125685024433104245510393158647912124109392464012013629537780737750809013888385804151558002964143676244935351041305203293598195642926270918316738856443860697944181168299647035677337261370249637258134469197778050234295927693307692889835132646344201859281629614796843091714167849198740445716646754325314846683153244387855393890349268846848894243064328941493372375997023169112516276418548128239976728637264377513857134954179689380225045512258967199326834408034049968692956898728729031739529532588403980922725640472872773886815124712361421148963734724888684608197960682340045209215437083719578860057209413762762114732725080880163130124373821118601876707562769923379626371866943629942606433917796354663205756712541522246440341208623772234391489554764263179940507250295284505439434031374238851487253944540036197087059784352269469767951629569096141831695779059344179170572289632878964167002433537997440980575574090733459593721230739651665205343087631370422115357090342331246729595355035321507464849229109507854597869748268387378972185487774228937380191062447713856273928805928280405835143305603486779233733425801177366469505338549805959437910945041077357528207192576614460214615377896342778056037834071834307371196494185633714921406029167676409806958127836564393147473605169651580040656097546855315848395113908703847590536096470738527610371186941746375566115942027928522122866077468276057025805125939742661313606731487419962974096843728407715164552675215304276289940024921150630230251357924110788195644041146114506465443505384336867134777542735756038155301664168263134239463798478312609182779517357953932517698401830242964680695574378644871230024632436599643821822796544779676794844257536280196538446035127867960882620032773895213640373317287621738132250767656134741313372781019957740124021513382044678842808591428641601389112319345132947416040775831091728700534357058720674497064914645626318854277019611814254492019882649288098043989916189358156464230848528584036509377382749915656230387140704956841862098855715299842540194429048402512445288426135229080699193784671697019722755181223686460316926034151794162931303653946088035952416885173930859306304053987268623519823199723396703302972256978916687592251154280244112826682456201961060489869295856791374857812285469082464579312681019465423209986670475035959276304871553864435959702625553022445415017244548282938884384501523093461089161889325092729007393778527427036496857144408899987265828941331786364438220223701274508739014645611301745446676736425070755501520614176645002557716867800507221622001222982080809559474894192150714591880359957373884119291514318090363676986767143319829889574720613365778170722867505158652760883576449814977390908090732496228918056488291014897316822277870713699041287862009668623426924264872824215801007121982193368876831388900405961921801549650266425128089388717170500198866542420165747840050125166408435435844035584772808641747668555462921590324250295285414383147986247440303991239185315109270703960541168626833142657420235259842442182385227187497352486475234915316014762042280810257350175346088450575847117800334732790101935121476922729923756001365273065541048274288605111874297007805922319690051483833682257627803236537724495365546639950480062149547242740825361933419837751888003612069490260478064599374640549671254770627963229083172860179157518791537839981987049139208899299796790825709365892230605046602186814958131526497222828386198325016274121098808125018704065278139044544069581727799934020680680764599172049755960485530283719936410426976787379717996817407450995437647989544106154054690742704441458223076773271044573917361003179710527937387685427146854979578234157010656962118997919453779599957058370549503480232087496375438314898124866494403415169885686801347036542980603354343978166497027806296265833245690967345177366652133885363195126693326822489042567555030458528823712749363570678586175625187893683987606021702958315845469942108225893357852349545223232012347484616514705570613578229179822787312132163556341944083385039471689401764683215876016679771678250113985769467651468440055738396335566280140098835054403838342701035725053451278957792451986825002432931587558638218171916611729628344493518249857227657985159393519636214440940801446231886816469962301124407036092336614651687613106001805876048508910046068178511212693143386017014116065623605544736601063055279051381128127766713626482405261323657873530692317963438781520282984290837791673708693158867206342909303670514666382063036673586473374141038375173071023223288798338438822766237648745563312918728139462603895216845706861841196172611492465686034473465049698772927170820633712085345266761244993072609505462096396366723893142342255070659685403263863351404667297918446177112571452056275875046927100281409835176045897884140536158717779496677221798581667927027798243156842758718436245671651577161815628784441616725196865037181056244380199096610923251987152424997079631625385596848373322540646061020090949097801635267740536670965507449767830723392936550084163813956983003361069092926026072456805907591864315761505871818180335811432984543615997362374229344823195832846816920627466725433481787402631074618809564901658535159594916850448516969937917799531548854342521339913471826502560468846740827794250237018255878900105349529396643909485571194229441013845357610603235881335188107443568612248826380704527555610298088737790952375964663702079231833211160904665680486115203647743820754241743656892327786066397876646402507750062946935412182832857031734062328737166243355985409795229631013922869881260442609661877509260678876285186645652204466589871924534947054464240643653207893562395275932292162660047150144286130687268015965540190778461996104850304710080472278352839875324190075845572008813035763654782820172743439308124351388276989298536734770565937822576956708397957273108373426814132107015875642887789709990728922104716034250236393631119739787608839944340746438066430726654850530661413481324806568731704446746237335558981803365109620181105960649345607458365184335612114683285353088716731575767220397461889953882146634443426752105784862950477272787458245668035460499935722837660775599421531331311387717214048213978189390874059444819721258834016333350944533524335082889388277538077436086017772330074194987553418125940484314450248537664569430400310434850533204118509330847452106672245885135992337083581862106972174384042495500000754547083654327067524922377778907714957959729829985144486816842540157619005132808790344148515454253557150383091983378984167639362295781013060261249529856815468849616112765746927138561590073824691602283725038764958203207063317212766211077053033124830903706129104512166416343237863677006114396811455136735756452628921540858919038589965763394823817239499459028758281010303634578921257045657336644511632215964041439335670164258691230061312916147746886310862372855387212917615878527603608240672665201810130588494794607466435852063229366947169046851823765292049028469711117025777149966211353781069856942498861047649944397147437291656443657470264377054438621680857129827729087832192385804084417124458534402289518015928986741562101527842803212360799450864197146720347956218086465867611746668974844822884636729857366602096492435867787352885519889282612759926984226411143499208945836071619040679438381382756737728897127340867625073695201441513966472050022126411977911113855861560880160880978943023803321480831698811610237998864230722601204391969874548428355251464624389756958620544574270058923407836096189624048727157875021899882550832515759152468707425857571309279660504829879650161208315908165581602964050165389917572058428758703354089175548988133727825318929797622373721321149341930505909523587107752882423582112303150869990975354719257838848739028028070235058578744130248536076308020174777464640705061055789405557337136827723942681661656883705189146276274430876436195364743474171910578778061947352044654109931457606952336776015607233780587286750915951620173821893595688811761981260294064174634325629304351075172769753431162032996483562077834803587510963507472838268171946249092972614543576448286143136773212368878364618451227857733053643639430504993892820452650681481930015904957634113813668980566946020743439742993531282000677331893813218671711104793872452219321639690432888484848343548309701276331851073124263462653877415100460218763230923451324654409830064034975052031691927336433217741570812260566514011789072017147267711733736967079795322677906567316629766740932619133167266399326449828178880146033547879530020010421561028667324043568134898410417305672202042351711194375600650326316226833124744681130306032640450220978636376854904208924863414218668300770582353640125412696565778023547217493634289687537967114343705947185829201330341221257649599822823848941884025461574443405275892705974661964357718099786607239069014568267248576681382442075923328216297133290425689895279592112791853350989863438261279464121997872097878111888916884662179774070247694204017132358986636306047766658644713757075154979940106256252479886948604580027660271412073690398611834126357428131164498647245579759444398011882264362227171694507740105435393921307617921167506051674260467129301853296802312682609888487807465721606664611598339492116244979259230175865313176107559929081977260714892138922337604571060020309451070376779255360835490159977882302349462866816623513411371352460766848581894278391946897311327618584738957824674371226804606120664609082090700460894902416884387289485283614617916750178327702872365376805787491216050373976100197357385722936394445539427344722542787978427793055323581514970579907580676068490582907301920291455846649588330480324034202277862334193795224326280224165176237086935513980369568514251074788746234521696535246628637836234812479703018732377187218601696509190709535727015109959159243469793120933054344487519254446661054390091182029780215915963345232296691514477733706934245798669748569670884450041465533669883431162511623503136892756784680434149231353383703665119494107123983622321275681356948766442573132048905546191828337197346864527180741033581279266616851976943085506921351536491733386475964543531701128027267462912718331291314789050336828443037778019704861818886329722779053077152529546594269210208691619650280234182810677450342835141050165087060728414098493340524212118005014716278126878908633008935954438827308891664729514010100109716789844754933603904907501792370464357069710566934762495568849237963629539230713562807681670028152158372272030808914326329610524405996102503737930883957432270094725965351765032106244248103291421084864873420513451894476215981988473040479892589444813664823661933922768722061064080629635703908502100486499188794022946731294796366558485900800704643573795290074062244726468237128108417137383359948962320169387361319159759827279518416430439972754033166710557813511758614632625028981011451085956784017007899787944460088249156146653056035405796647639153551056435924333714641278443748878261081799744057630339114915974585262104663427631405654209678518990872425878563125137512720929614499231125616813380841475065896831935662366794899680868311916947228330805382720553416644194806294592119452357735490348324594607095138769857419641242569871479835101990025388547976372968340260525092041975963439608436604665913747322818700010061337133119375161645644903577694643375197528456580821023641612367116528302838972369764158605986157256140381277883173798967419177726157695343906745605937273435159734000638872089041002249757800497959113334003501446729043354034208174924651600626474253823871670835802951026499923590858236087053215602227807307447223354946654174176149919002609403292456360905086876266148675332570775422035142672944836598650016457212386997083517600974327434101677983233309613660177157272205409974256925329715671679631413130800100044714027736762976942179701736670712049868593311009379316043247948935959922138137301187825605206386474283314845354572090035145922684230110829460331818214602773597853116109004335748280281397517796207304990126749933843595670054723012692403948367343333150735099990121408993371176656941727141394376236518718252729642875724894608108044701497242375363584923609696808462619506996877288605382951189672293165231985781240575283568776483405115207634284053080330183974408857687913640988173751749094976331421990823928122629116683160783692009832060472484522415814491880304506525541700741115370066376563588738709303347491449647361851738135719308333350025108173023617740351378665011768622820287598666166665866667393355605894910059768688172295973779672946890202395177440388170897846201415471008430482698918360938503589183134215796108109481897121992629858529972727134911594124754552312822562032934994269696265593458371801023616753620801534781481436192404367384549074771754618551806572420362399178173712016866428756659293288689062535149802099490446693788748406258270506327739551112776760389347920210413734282070088802554033169067741228785247759182773533070216155629673369563632989514665227942280037746796076894291428290030163167975283618502593399822671044691549104565120492952864389846382757557991753195958358523486012691089574199367146764806202830032997682291712289240529189828642344775750606366223987446468596097775111466755260918476310883229914785832345119427396121254919965111797811584945562787914418713973851708074177509623050759649203752530163714928069492778364070244840313331170463794031192851219319534571010919821883501968554257695365192856667657561180129507417591529622251818300808188714495105096250832044281730472575087252245705915514721456318281523547424752221630145204492696023949155770432232650700984161890300867492640332040705692558208717034577233031754352730191923189209392688792189416271675767759796894197694242785331147259090217164077934377379995663315046351468570144396274073400797820014587819521965039826631825707200757304716050723593285457536378062306699780246982708431943018357957610533253399529381884789928769028031451693856530464565806466372438861437553487336030286132199554069363883263473095326446384336191278685862220375526714561464319301739891351810620462492277618331666355470325500207599785730342709635058627744452119659695336426988072163416877092102344165042857110182165339016455512573591655229247840143784769121360926727547197006683311588314982856648091666897343047214456427419175160081696873868921468986727863160907593528996268855742178211015262232194181090077798395411564152161535505656229496027695213480796605435836665571284550749721848669057710952123197641047432180729510051309245217059293897980967364334504513804117422292441328044921243778490212490493680096600208522747737330915464826357509236650011677393554243953942158128155250284015102713117511170488287236287393372203030770456490460183443125855537659030557419967903928751580430377753401446868218952689829625353709233801124173768200219864031716008407738217328853704362412705452361357350581846306341661141805276509715770964971045954781770333806298283946160769903568485908703474094971027119935846906203482171410912242325982945375168257914447429028947589129471158965733042747868953638102266106115272678371692419737918905085585403281887226293121599553596516090837870853188352273236749007222673479925823057206706098362206643398850455852447720319169627351051271280931242449590106873711663044133035832999521856817930479010649286669833762413424282731946434992961259722633259787663887763274428682784011177643985393025802239020319838649227182723384622480400296601530765789482844642731200142041581756693995789040236366709919552823150464034165946164028661832824691174693037142850980399585033693451272272466291666723638553085712909099459239279489161282583001117089273137998892104913098218290289378060193317669657873880775755070897424801950725403777580337006257157380809676493904235717168052512120173440800880855351565878232292720729853388384942569571212809689507092895798646937902737058488915700890592236195002627522673395466395537354570377057355352442878744244085485643563081159221416731017391518592244621288047751355082294182476558817423726491737485617689636445823505585331138148816132112428866428408655572069932057754258662774142612328261984775991822088247998208459866852317772502034645940705590629596064330253850737569195749896732528030861839523167665976008889893449033359038860835467376868320779755974720680233123609196588880835108578361598241846111905439655483369761675092874032987992762029932245909991940965264198352813111355910974172633956221852840994928939706961818441811747303621404103700693243156790024032291127862588544946360980552752529600453237815811107629347449721573230010540368533757624786011473093462953621887300645393318459465695321373032004220188968302064062048616083553350137334843980356797580342641303169912326499286188465633953725191107867506367940213933726868931887732793307187186333734768702783587972587603721873215418566404165764107261465772651107626237792307037665006044661083948071183027981947513996766544938717385818133383955180664645823155143229363291812890321629719556315719601667937831317586605575678935975785481020706559463115310030121204375459999919529283252087842246087052899528325876269553885273919601100720834182531801706732924946844130572071055577193075252220056091021702732503002550614443327799201136523612082796290005905462844144346573319813904272893150894507376038212473173922602504390838726608758841179054831342653765566097245597203833208650790869179035163760800492503060691125541714149267934075457141662769577205415422226328592038863223794918299843620119390150690304083445029421468171743651419516126824150528154469956266211733608425131319140137728588636977677323378237043571283134990078407166271360333973527641355199173834248721074853034903850383847522338630948212261813062896707951955170940748542113625766302457763685264048764865144533659239036644530336239218292837387068171628833446357301085680569418267431755990384628191030183417810349534587604760897123385154041581188123013436308130420468906785612914076407365766463924005951118259397064427328783277326725581929685402790612483381596275376868798495480255535482534433321531641087025908543714823215013345531753357025610680089719500372848666809632800957103277941605046197067437281546415599977462775117239085796019810363750689027623918431376872618889563600286536623470647428744171464629812121762338806974213796355178599262912193862377089010372512452337794862515799107368987180680400656014989734163459180414511686746401571287617431199554766179799097881379430114027252551537252071663558669746846124305658127069242191045793910674296214913861750186102817910244496261647394247517283567072708262527266907707355014213361970670922048997157928527870375362208572338238552290300665902206434780109290084294552270468968677085407411661215659738683396646822545862978955420942913181501040390772421482471626185961913274179894609132363374439268768262186202875199609794820944079415691463173673612816000163151959808050344306488056102943280996673657377295340538287006140048071701863375536879222173564469822079680450258879826507229528140751003272037239453281053107294342931786409959311839265672519131100146580678268467184863040021453927495399372749221625324346076647536265454172359637492613852793882792455550310612457263221246088259675920625223077281037536802580204075109289807339448267217140181325264129594772766132345843761776570973268200638904426108334016370145326582365880419613089759331066941381668178255064886731682698178827434561099140573111217579838545738237673346051351546839869687652994944351516301682155381555660238796986826133015755504501531668608992526807495075265113045143056117834287981924382915554295482184041723559723193471898041627192604798642177290988138666165755955460875695323753285935200291796935753492197564548756783954867548837196907543566812155770662292943716706672143763556315840201333095982452189666606829729449975252172847442597986481112276754932819897041465581949179821049035903424780192456384730852370804526144757539161736102552494260043223415666033868621981030451630080896098597470540602356274245059927767946387001254246260966833635698867062865913276587719899678950557982809586195623008259103485170425247074754023438660170201145414499323082589510446900153483285091957001918033863794992706868190731373397006657430241557231495084603612663745398917891258188448141807677189609417886076276676510458329587623369922346808330217039544757413626529088750929582055710104230087848772045230669827370134888880803848093638015498105974403867279180033660200296469112711049822007921317468252986521135764961086219304793668986712538264019386342364860692922115211059741432780538735040129637081521596550717274197189905232646848195064489429921113762219314530521477955428848151805342082098704679819209533134754703744538840463065456564298975969790210004237837212828851875542124288650760809122887453424266019423385950729335640553199620488235455170710409398757951025786392693080828523631169524800718963961629034349143560561837374033346293009880150068555088866496732460236265175535067716848966227406103140616595798677296787407074736576971772771609246154157214946770145678188477723463271053723516749249471095951231958228609541007008725776478064293983496514540519616443976214690614292149889523037382549371530409480100514742801186212558827233188635002405873321562979929731397171468677475708858559212645191289674011462805158318629236706911100805851794338946278259074203584738953890977802520203104660165030848642698032183595660840527908736967320086130490808354003103621496660583359682905354471128520968566970889516259179348299639523362993539220669382606360298232827709624253220336989709170248006889078883094496252557657679219047128466233692653549302753142060983470443489085623888714092851372283631614154657178655749732908175427292121418898586297788887460900620377596255466965715284938601856099374244285814622313641741644013066612684648091907256622167519207966306841874884406539952270559714223784834050150768008382095461880155874940327583883516854045510011447691231911458892343545048781639144364780165959910221366104510163335993713436060347557659586044437735490227472347634601156400163150403023784542885470541965529721515816527643552640297775794064079159966452789846759043414151097020181775972484057193151630206745472361840786977871866082328904836722622818006880249676549740807220873833197331397525097476168640935699639386364556412514226539619873956252275884791618260306342464929695879486652966841735903442775355499394681604549627977049298156558002247805558069192715682860174687695419855020295114276860302643289738533965409314986010595791985374308288159313538055985209421966491589105588461757615967272308181209035363158069225536421650160425287676413622622761214453554419174281403342866344495734475038892933871086618728962094309236176861762627066399691497087148985697904142103504986670167601277644066536941450060704025818136046345292442045862361208797850749144141321796376592414786072606423194643978350610701407710119798294537015000388032547777747804899071957912412751910731482819390651573054635437539816614381817288450568716258358213345056559582236640381615588814271240521815604592315551170470542538279499205672370106869128711110311964703132803737714894443165819461954319750836699006994258700787776254968455342563131922463356677170818624128236607885033691285368766796899737366862842521116148404201346989397125744970715173903736918220686430707233092573071292047818548620395033646697510887659006111594374631397198616249342040644180464308277667076327940101543461721692011185804118466313244769125400100819512966273985430683077577907010795782460629556267199015415901830833524211086224749428830417501631737962400796683419153119809702340989797750511486034608621804588449592335574556702929911213534752152358234342387429111512823305237639546793588053099900039910634001737105225908232199601737398606032706764322798011621536202720097229213599508920902277595825235032571904039942275300491929883395317363758036628124891029806337045905510301957631417071574122437453467656776738465290142979758233938102312698080479840786630743301408825162192550094248483280909332828520716738020125207310345586013131740777096124630459690930641488245319242928521990322848010139120134720505155963200286459317564755611278110767755540870346784942941394960980281926860900575579031788311555692384758384475030845729784081004136679338173848359720722883919004753086114398259223428653474066609009443925929161699264039350734387282603881951765680701362503860145891164404268427219162547594669176238753388788579244859015710951241340633350577512500529631810904118761085898066734096098811898597333400878906394066957461315840980050463979001027335595200099753559764382043633370686718816653702745782663894863827032620401890417568130044395004366042555796943282909102651292624738436433024317364043144138206516213825857975733485153081902749768779980886500080742402596323706163635898901475473372872120313702746031065100339624387181865156293591595453299418663795080606163514140543314959143483685186426210249775524924510555113120550219801471255145884050990704987713793410899691213493029514792541353575322697460206895648863622495004360445834124336139298593438267042888043432407316897827420854540679737022377586480047266841145533702944591900802046742886249564488568710322882532082517808317187142485328495493453108255641938397305028150251180227059086580288885701378900146954453604494515688086670681039432090438308672694723396638267697808381948940160480965570260944826493060136805231036302171754027772352837568385047030668880816427618835839520812738931975642114768263980611148765947329249208957165527257780224398032855939447329194617217600188317559844506083116340656064646877319230017373514188834854211042035677192812049235120619026652320053402825921181401519383878922419037546912620976732289870789747818094147677083374089234142659697624794324291685350490517415805577919749955147205512616783104278700090073305482612868912372596745653968729449463753872774175892545782033948688399252568486757310133687600509745539685107408595850846744819368136568456414154421579663343775051627297263418237334327122228363209235390870852377018051063515178162098951748163155810333581242663281395792137098367684033044201653449193927469496164446954164255228298261486062085526862354848192000572076645547026061485952444398832698054063804570120868142308120806077457978087109737671086712624919352892264292935163981499382143615866038720253164588679131894510301239850223442751799755613489679473519211640840379874741874433794349560338927788350543535693292175127788964827054323281716776224450120455836015119123660152641429779304306289145335803213942142402229607018003797172578194110624619158858719570785601490722135092759382096531326210354863151262503904519459220908307237958714955855516627029599468108962977484167059539003902505054173274211245614690258072103269301272698650170152755907358594050071571211780919518707713279778624909511152060590794653132122055771275409072961179529121600242826011445749624432789267569936033954792810624061933989290097352976714612697416741495823171970802183033603493015994928324416508515080849255233261928925474771236825810400427627716871239182364148088194111939440829860148095535596360874344771201674756957776090154225413951320919806518606313199527271716430925525247461351028511303387764215281606888000203132955308047923199892906820359570169537047671509372246474222726393660562772089512715012001295949822420130591239383240864626498274107817062707790251438389840786396779053935660683803408443910944836410769460143883261815196065099138684614463739779488211430474127630759640980578600700365204200667688906921687507325864627806917705974462315559949620183061595552575963124571042911419639685696553123960888241573592519077779045791342078732842809407541955656644251959196044133344854147586086639954089614841392630425123674241531120480310712613959181071579357411161432759647068421985854950040695397529249430422443301442379591236396856004867790989515379026270193778330559045091246063973355098767872367905715081632378926979085583930307621460368357869968339142956375690829750310272195728475843378460548650423371307549541586976693218015724789178976358845553036301347606029553658411934067155765731760246355912301639971178824662140233584829923232830410312315123109738836784771800134380980584222739299141376754355995094446241092221070419622507820912881237793257224267788268228478645294232216500189911694647204739172048896987624078335615569181439046238714951950030405426599175394076986792308665602963183083655834559611305648175605691946262138596305859153108560823875469432367158121595813092174501789265986064073451680468475632149927603992152388878984543403572489239503789154917318924193757178964803501449725084446591115381795595161179311499090093663887381153399151250659367461592369693887912519945022311734194718434991690715629522592001328544908241109698070384393681258741798496755635324607063058411535281904443749467121903272542565027493961500144212097005925354909691823115337948314456447147176712334747029018442611486354920341744229978310950656977391972885894734028247880080863982559909912888984879995608264224147266001798281513108599525572212121021240792040427204106225595801357740759159969750183214968137006660916420059304380100153408815090527677873975896353783474654467219591623137984804629431196490523453643987301610617657495157620301445410004754175310441109249505430231977441150100455994729339121586924914886714223310970004824598518677424333810226200192777079674759327487528780261711336718954872415014940215033985461073433841126641712628258337970246621805198596326730724725731701510910329235083725545611652829512841526877872987302090138619697847517019946181867618156147179443167060692509895116828269458416977945060298302202460559208775884173666845502718994220242082850629085801875676417777845692906291649431389354421752641812191250188713979920440407673543613950043557725341963712384004161079390639956978861888748379766606267060950494900480767294782778442293344848270011867489622044434406783220998179475805282239990804054877837049725012013059488598136218833195529416235502652981417940632404521854790497328894085125120516458811889908080733785653450430831346855837484647965235986443630078689018826865136169427373005756342902733747474049525338265532910091899574250835741400074201027865076778611029759983429741622498502822812498010674449425634953455080464360768831957165398098028537692648136478426329656469818535262608722776125939654380494370229773157364511786170363931411537041644034886581431950042358223043752327828747062006343162400789329437407825199047495759707369832193906586418686787667207474513991954938790549776127739590105209297759453520470572515151847253581616447951499620550673737115955399340447727749780266799880606315445326665178949317775259525290146272918914960108972555216544396779468637935627243831144171133445789586770799120852144610889290867886092292013822375343001445653620199757588348036375970442516946488725331889989084437352887867575262520638448726458671153367545647192503825986127847923965246924117218456500383623077303305826164510711058482444925078185498605227265302125010670794361222154319424052310297789465117548632158660952254312065532466294990757149455760754877214375049209711257429390802972941716386952535752399552406630672643685540594742587892121727169268319092220175914033783200880532941841369815713067615960987591339829619362079775991477277520558106511186640129056964778948535862953133309328054622469099351732125744246623630335400090702641338371881472898460809505482141790132767896854727765933306340096038535530040860849087332979990786987115310492777094767596365237851334192805476788650208619960508996590732771929202618809406027875867480216652870693540423748990533374542909998247468583209136561455164234420451293308995614690452534813744111890108605640868232836047639931838802508241019497879990791156487260027813981905097679609543606458054255234010884104471166967542807226387569201155479035769330421653236958578058952466601571227692322837699801400394516370381384785573651430561470239302041351818068219465167773368399111682803216224610955397754978898092042122948414558729617355478337845222072161520217768564586754281008844793131802924316243863045584999200583197892319662626041573570057885772267242484356687653117566562979475572791972480043077120135944801507744799772686578009742857177648079860232386634861716792328539179812505972317306818640115780843299667261751254011340857835104347177334214058849153099914935515854944829333949713401617106912059256222607144747698447667146236375222763073552564059044455991756801266590944989216866151863172247639282796826071082424729142346050180959629598508389063621707210479505842117863986303933009605518804192216348257450610840535062695982871306951510603484624074853754461523244280616123034360907946305309964679805364511720919272809836509486235150875317980435557360445628277038108151857368377006610898948638738581907058390163155530962170073800994322945272890461492197158180733855459033651707049183496509360214175058317365116869710251261719313812687542295026194106156824444446746768898747998246175259975444983641664124748246117710383408244133460612651177398817653603021242641947212731282565416420092183343082983212281948766787813713040033318544793255472853103138527516943296431967029537616523810906879503277692546078480066410990868589549641758935992570348575809295667696755056758381045947788401867230942816053236356717068789610900866812746410598474170971793401315655942707853606389045146755779419857740530653426631031778482193153010755566938812772171697646265664501376967521241260835891160419165942240734271487493893856959676208960111719730888643472012754702575987379899461406706038796006576433028531156071694954094391692858770683549958965686986320485743905419801841345632875511020226714418110759853166399342155678561950389839552878668912730271206122289488436664230234724009088006796868220560153346409109543469791208399125712995839414111671711626221353112101331574678952671054111460418474969753957198118303219218664555213261094597693789304924109028904878396344173596301226467901034738504754581664973612788163687648433148915563698683206833167192637882623350835955241399667595980544555380057749492770577962487934472359995631577470008607624281635302789004762791281433459065372196745420737732740308885460192432726098672730401664638225599496483709381204813314687218296069041391872805300199920366899251256725026356777105424802585732995089098783849910374576083269880215400436354263722393141839556717160741307363602077037936339555652024180810451397726317998014048716845948763062499881659906091589106155141379338319587007953526878186838145973878229534859332138284572202725483215403230608879169447079045541664131722261661039357377552806517637386494122556445174781813184258122594043585946077156837373203355908465439219580281323351641757819687118011104865968824287841694472009887370995402734105284616905290798764614078599113497676159586570511541364794686706039666138341816118129621521326021035016834693015046888628426053266225191005258914292756236085800295213131780969030466983156322502972701887190024412861637764486630122410548682414860107439185244142226179585291345450130512991048278326235631549387310716535841648416212880567557476542962689558026015627926501768579550476735447937218445046416868605360738596894460597333849398936824959814520504477591732421938308599887659107641465887180217873530932994568210795177302158520875293927326085431504448679033090099290939115397941034919099108390358949069190889717664683934313385997124144137574672064221463336123621545537799066974406446322348701383513655720892492547666096276498623556792846007683433532178110996806158511939818086211537662142316609923941808507493907412047318231691829926646656114908751028106334807198189289704958010860905655724754855696846918637988487002553111341916374251667115662777576164083942802871465011510274717637900336697677321129527857295244060952944770160669498940457634073105609245004115949688713527943169587836127579728948721815742861394871614928700777788671795050961593878742366952407556834315934664057148635548961386958316933872086605966444056838022938473911550392110141677832744534208959525595631905774460622878028804861884659648433636371023930955832419860334179380650568235797802689646748428602158070195825351729889202015287131785695439772290615327191700326103587543148595256885267027080608704540698762025856393661922406541443175020500283156770025697658319437500261097549205813445108760079664912324408442250528862683727533895268234261133419759336794360227763507967243321065147885846086839862755789539407447010906888440877938345132346959309367750783558854269844826132390686907019055603159339134303879008782523107145445525571546997467786083963536638865584905958908517161330919776782377649365572313483925863282113668748518234499444622230940748090617863265943307572798768539689113108037390222840328650201520601212652867990857797523132349708004246799253939708575693531940342967831441672611454729021557544808918535885222127199670810855784976444324505499866356272658662166144409781243361149549917267716508689519994423998855904150617871411528313469044620080518866245863336283323577733957521254114186013034953633033975100429491853215780282941596756845585655486195929776988414780049986032925333554406246424495669451437665980999408816892094496270166033644627332339091122608697686633380153475620361747946031265967198711880957646938594396377110599859574034944131309108394273058638326808578465404700540076941249525758723727997721940031124063483273841245384045282152374779574627139959494152699507653096299430323398469287266215246578965544121217590738318013575710715362600524035999511711674286201583547553398115343815324802954168861313658202245656356380129157532875987856301713970287356917451814975787109752631949751745318423769793864979137417071928976531953801021846084062600627287844862734584711239553959057440272702746214169612204791052185445263683762664076829953283065789271231033506107254950252687594048129450230913140706191910386706472538759803776586064417817853150628324889707861364980043287474809130285517807549968298460337607231981634723000996532593866150603017113659098520998496033777774253903628969136216322456870728782633722537673105619053679644655616465468019836991961791165749082107742887335371641532803399376726485699826547660806187772617740500882241803567995025653569128615612275164995887294397647064393065740263633181017890927342092266121975476120848274717525746547032566853288842188365850533245964092125692471328518861377802305045407353722700966014963914935519857152353061399500554347318766718800858695140878069674370077999972571024581656929666639742414410556802630051566978006258400840457738446706095475057267623438721976502171157430828270063305560559233943745483384333755998823015926418936114644924140924725425624677390869062278717656004897035771749989012460870283155747596763058258443025628535163815133909033546779906792298743795573066286504193680992459094866789280014715901105965707359779286125382592403418453891344096401771174967608302358538001275882321232609576634064656465807392905623203426366567341913324375447711521739196859644379323662232845572682431681052007481261004107069740166838090291565276185530213855633739357131890998505430743699206110148262265117780100474406922138191276676891587477652489680964137271993194503779690280275750350869785814463578860118871710426310905039494151850044963844559329752488644256984978528639830270517849078849586113946522684786586463723204320971257197976335067648721704429546918019929342623656215086032837044926370573605420940979646625049498341633155995778909368302675750108599835748189962682771924201202100462758268384044729840902291840527852020964528312211485130811445975405057748246995953242262815464049150692883781521716792332256148032252442438181008557870505092268042590806362139562777125214383113016278362314829578097804915054909009623802864683325766393570331798717669052598994950605609425709208376677485238464209309090983480303979043485885843669059918559825972606416367761910060632366238108202751189838819792078638619761862421249179801510418001944645940618383421424123473660698422554955764834049307358250505911728293871000804990213515798719496155351949932241752030580077387899091024905922007672210894531617295908299672430705574036117448111043651185840690200443842667692139794771816047472475182555967670575434395742638119142355241486092579987328250032603655805119782216499649111665037600656148746086439374095136217893430228408688030713994131416724390758966564155001416837451035652912381503153943133771851052146026187968781925404216307953610634511025570700666078184434249274388129791981340794621038899023390197326204222414548622650413141507157096660716847504631176923586180945416537780760024658817207057152908838025961466385695050357511098615434222586255247232594785271300793885941289396760015346313181739495091177210223523641519663188190959855242073374364014757853493581912453895948459145714262477201709318317093126091397557033984276134173497758498586025826219316808718001903194360296306815094027056644643009550176181406939983839173107436990895038203161923981665699471261556937501938061218146169576299511589592985940143854546715667634119371104137205141832501074101604456241815109353138275705320360407699236327964239134188444947692339706271353300566170167383308535248978603821578609329074058760230925415588733842444441581443367029853022411133042236845690389423477169758013634046824698058420177491839827310726001550667959909996951057580747257153204560633549873794644168476661644489221344879559307789976593674162035757352753010768548906109765002452507301558727965394508053661740270899799675756528659000565388673697455479003295275000607452950692150694586744499404313502305941293838038185317585038905429591502097964538194132290680049821842937191716020747571713166922904105250460029236375590982025893015569728256142174156094334053342242130968178978691478790099906090163522960323275037941734611495039844735873184631695343138694327334123497700766889466883252569626727885759958103551817455019546888465456593555392353562728464283986867119716328190876735226968608741553328986965874929784086753400191683032600364151570927878802781571497984519101707734125927187427625131779314445493114817991189097495878842124293174307476670234313280195860037910193660185192210062575062366407227444092518629637883290237930965625229783019353360549831351237191247659872247152354997099636509254297440011898094283276195731401664536100496754778013891348405283771120427825129878654127727268645896205803458305109563768267165185111683290812879540740314009446739427622401990642255669788924390951105922026452675194780637071549618394768512347037515544031986933331178068266946039321940539118654619384254615415441407004590271176820163029257638219464268542683467285098884658470678673372506890765813856298476380613716308096362685933926011027970962178318210671900092450324193037560688915996010592891476214995375684489709335848044293948286245728578778984576918926085486811146216313219364308150332257650431677862791915081774136373166413404321139351151938414147206625739730886010812403175430340571461097404988451679488718317992308997772249031889136943268275535514291178432203608901399911691849970837651656358232631255801790830116904097221970624306153134443030078837233367476097380565927219750022449694431054946643533741164235815946868200880860230572336599328769384575741156868360432047582013623247421885452525165672528689466597460895368528651470115554132216043402114088888409977644895128845054949874878341655024703958911138048524920099711743704000348041669804957866540244527590541051112981292209849992458888267737128749695949433955239566221574595963047932266800449605845247691639481205642095771356508271634781170952102692740114605127136496007856164139625349415260485632379938930634939277816511103858795096782494037544395724664210909825806878461345392840987435571784651689462369345307046484083847569084847095548651920551636926601652142959884599788507934221622106502689737829699608981459630950885278519795422609291543623680626453062949463536210668798886515153450372928534927432561622724325407972243958636186946330918406580712827524182876419671998093445529694493855159921320181811973906085308213089295222784115750962276373017951780025599493273092895448748594515208736246079494398767228629114337496999802867750260077593752409279005369905058802528948207251832242475736304023058452905911855108916952359247609410305369084210337972542840893634514862391405631611267024453300276264997754935159168124644834341293106852822967395665655141628613375785131950907349835027728365270099137653909814282812488805846767365309452652267201116065570616865928391599347975926438220543059156294046363703833413420303273044373316864024689720371932077161648262747105497588142555903185523397153051285635584729981768969495141652714808283590523700814256535192186686563271241480142247844821721516065034805098679805289618417905854050511425108293199170125775380224082592762025513428505707623953415999268891987980726767982997756712271804297698690893320611637378777567312450647730016081836520849048054107521849552427264284514503076749086688808114377337887430103644115611675913782378028928192746577917704275954258503540472466674553583558943565969883868909535585048486717657619010958458666886275562307904877493119997031449128219629602193551170544255563617289552152025893742013706371748537505666545830901079296330236861337484672776825849718371241338798159478047836806146522133054712154073056856511749652406537274854475527505115555614227603595326091538805704252136347887859006977609460214684762816921443977432219664748785159888735926554710238633192968223036963030386804005846817486889190229281359294056844324641358819969352099888270447619156346322233231477359191088723611406896465958733257286650182066297947914455474696395779461946247803597726522931246544524907461007793786095985583763990219753779850980471560330476833335697085639081853999018323449689425727240002467984099580023778330516332463404395403609049459407642339708707654989668308873053726443995911667402753270850488713175308315505568411268498137899020151713045628564162431205352161053020522437067550302039774347488743312404203440704358120182770622026915288818413053120230589502692060910545915022309226767900291445161076613880928611955098176862843808706679351914102027114496703542762458474933500960563799049425791427337935859232294775758394596171722539218317994184165902713448287489085340647416177688029732927601079213838743902653668093305399576101527478228687544053552840519521191177191949424313735750293611879365774332509965506213979566463354112390100447333839874626294239375503578974835333206078472370785962458045365629124653426600038217199375403412167121644548438617445552348472041078496125195997936060912862708526976627067475674214043056986278731866584468268224218424570934482944558079535390002447403255384050792761563581446202858113047380320705273425899271845502172413123124847403895570787548154811763714071907633807508937183403694063423983770999293940766959028069321280047751139737001268489375673669833839318094596221516882082332319033704228577285663983283191629934203340549570303449521790658208451840241067522008778797849339621498622227026402202704259034413175302648726834378435715726924425842545395038552662725418919998476374624733896041839199329485395438623699272880863719698029315404874283559277966067563744265658522531493280257649379197164200436274386235618517519638107500995617866723262268359769973424908856057487646970801243757646041450208470653701546837441573251594194656897942567778075227850019883412561937918138492309331716979414542847997742685664566854096367901107426707446345288892547274721436092125922214219773629930180204829406457746930905235804940065892121492795061107270913483877688933409680162231519082893583090716428583676674579432021808593163115981778866645552875751364376633442276234114312269488982710746398763694025482135449797006693788740323044027831345341295555992982442694717555981394054164742167684528444353169789248710539838984831951299189646865578602226957736808087447917408971491014104299454476256411556807217478831136591590952848310719157918936422848624896562784350883912539198990594404162392902792274468047547637527439009416101319614622383109771071566162542725400513062494818247645496857664012071409823571610748556455616325232204611379260425502730206606159423847450632981990402742347444323366447968349503600478472064448673577955904889969024361641524485745146826572289457923784830112090043415237167146385121650596651160821939139304527482783737106481874561082968430555111705733753811047779297791967757518304377839843794454614077847574928063654945888685323270660934013369951312719773928634504944929859717657104053529897108091601279132972679116577366335062751283767231483289078093478028619062010216413352036624998810398142339354397761276738165166662869435568833484692874626251000599403682921524942461748607650125996751593868411070851465682707429928062753136130294671251507821087011138318900862806098724494961178221386145335536995383028536227306344002514069205837392710316202223756201210025453247720968008922963996301494811093584503754545587435453131826447829247227812886208926743667152038100709845446616074446944878226116359415516839976916712046620111838951110900905494629762117106225199169981777389402993495928074373446413927531880677168093814371050509073059910957641539757139152641975802648243587209182285053386291848954497897128627988549012106332697673247422018270176824606688243365155369527500919913425319646831242406332503046390150379041194352403840597034534001015243503250165836419656989970451497151582910810708752131176930663431827465332851932057082677044718699470137986761346384989823264707887503417933738089630402627218747623291807887278166548889086933846607080743550339654126082949876772099675337857155500032959145465067852835079219163164290896278863678777389954341047395428738229201367426397296509067123197662880931580484324737219854282076314757463440490686184780237986508166423699308936277831253405724224458868726503893859321440355514654209004577429561310084687353830767382731223610097155310228149096871963605389781383584110275049815766255979287443524447418709887266119645652609967887698541898934419295596902695282170292558573497024590770333992281856023860349537684545428336420197103171380578790323880137888036431731365388944066148048290832306683330421109713711695895208127273786734100777648270177320406193685870980464705230319946636238298742131997690801351726363793561893044223137720457899316573426126210778591335675673618811429586334681182412012268480828793873832181838706006196762412497756867881671454683136845074792614070579539770580861817235513391466007308782113270567056307315981284861756780223109175149182141340533901822795464964709240956567252341699444477516485125759757302840102027156562601017707681480326227379037490670286556207074662645252942334121456856650697621339864954997827036162426421123363687852546598299927618998507889090461789732059486259975475525170108876187077849887785694158723543671447115980782702754212826750462658365545042771785531844863331136116068034882960500742084780828540441403944567051110796669463545992681960109901838920330636498343685985303368209656388823449608491694795925121408965704324052622305656516487375630038482708806606377578991152936822961370630268386449627898237497392966581066542166572633157263280971283511105288355456326009184866804544388644537046309976145572670322786812322725537359165859009125002235309319415655418535124765732385218699528329604240790539405919203896489972062858511414289673864155866134526566294129088966187691925196151105538120936686765321316276587681921403219631620082035466465976721952237726189129369155752565414986196377806736882442018773340763093762283971925681235120322150237181733438201093832803291822751087747888086089251066718050855238721021320419235566937248311456947343084379671826618890557056434897733755873932912377251373714088074553818674572039509661498017153374783915323504514576588146300953036545875934766388285234233780863179837455534514081741091938600396256477383689983331888733237956282987749447157674392877892266905869805118326963964727864259959235536157787216698092478937748999986902445822316497463742103704976649516097038229002374663560427691134675604272013777162280764909793099392791275524525262025504702801384513046116870232127345731921034680773805460766512472933668305573683352931692283039899339983956094176387364842229499935760011696142071354354572627673044880351068943543095845509776223161377370980403075442257478843489183913821881630948270501635848191298402829123168344924541368339690122323636532564484310965103173068115289257129327082784678016710848347154027031191416314128701083377872792659929907416546441665127878348804215692988823514812111532746392332383319345004799016052834080143507582606046815707263636055132355640751485315866441906400284592499195437772276457416869790772243412866434279035260731721042898285754753518784293135277191139473847973780699092947502430271766577935489950211813228389787759935044745662680359237425949828629923912606118262515058625219420227550390548465682636618362408999843059349912353967437477204968058102295020995556265121600261478861751986442531737580260196326823440472547155941078549939570178764524490552365141231811364726162489938012450223290718212072377451904093257695109292347673422969640171895857518436584117404417536779849519312182060810021585971093952663855126883840489642437907587593282939651040846092220356626259400873708364250605568902661375095925416413090067564436637861145620691912160840732904207115414438588647303027469618424108384232064049153944366116195821206718788765249088746457152012888072081076444061056849353351427132447446095072047680942986765618846685261618365975838560430321799228936742726330114466036662734629106274118901422208484515143218805361744296960542301152704288029379785675762012969627317542152945330263367631957747227878901441478548092145214666747294346384803232442440059673143885997265353578292280563615673453466608497038944360497182374483099198983916820759439138854721311025291889789857400996681964440936273685442712889140140434150272373399404094127623158956190501441037264270823319023418636766797991755208496331294107047980814681348574750834751803270928625574304354312961709436126570775054584509134978508837091280776933634091714915195168950771289279774901543126833737066059280571278418526895960745979666345330281092834986545381484911326272956330797573992691281467458720384854930397389237106072713946600289647220505370619357188141686706176040248276521147773644898658651770377562173417407586368883523022013454407698718615037698194952771088013365000808122541249511186846511822987973979703607748575454947097264180304165075640883603144609470006529483350489361994148934260956185787724415683567131704712808204918556668848126512561723322981647684559717910468140502584491766072181260991532076099999655825622557660641747709369974304687098475105257310795023939712016773917444119988875684072497840794260110698877228490757283008832562451261790729542767562116699664134820241695901343153154357690774120583435980234725905480178912707373334605453076648211759047106652133210200063133882853946750887399631124150758849223154540657619849300019004568206856392577785325747258926851161855094843782046098609574209840002806175436203875642079640556425717364359654951028692752666770491366853658732021198926185316370363382542790722215299961801508720013806975645747004177736142232783869907755922006199443472478894080965525450221307197064687310421050014141664716724253927638236371782351776288606918033092282448297243431738158621191935504904371460563541636217509395512332433863658029163206564297675540865774863294452374678960059122735600238309915520444839416562938586196143777183799745120136690879188885084736416400958450404233728512179012327438459609747904068511274086910576887489354167460297886558721040838102624797446712751057014537466121953705697693620943090160235842549204069646240869981056107320965588834140395167943272162040329249441757420378034513561212782092055619503896464985016824742900586652002135434423127281507397193336968013624870689090913228356917464342407075417010220454549299141150689828806523702966590956795123174572547659132686135179966537269913516244224227552213945775985128673214562377994523947621545013924484086769438292358890614028120496161314199296709041282809815173829961384155585771653651416066309742303731786242745965714655237141609900854723333094342648883925543539688766804435336067954914792350093446767470833443002752560611217998357749445832806623725901418600667743112632918903302304450210864516263020006086626294443581378141364611522930600598568958159381127285282812026738529840031672102159462224323813189039860685844658255684970601147079079149943447757422301300134917935554155734381476500998883128888322168333999139494280640779586056119034822129857775940142778337800664358190799245054317547434747209452787011881148419717495267146537717008911164508276134182602726705113143578996152135526429602604142874502876335133852055773450457588189202610679516970979963530392021201778737193550021790420821575627457092428069239441046375070431996558728331186953616026929755065754316097365436691364248911821706353303006559383037630398370436782627575316545585608841441167143911422159940408622915209992290140386390391927058236697564442739517604841295112005571448324461565634572731372643470452094724007051388691742171240001070504558524649249697814337532559088009134002535728839095218337742796977526886740665590112571431802490932909768910016190639281240925017517422985033779624208370079875620775942384934214765570224326568900100579196843893946742410074536083439759973775907956794547687684204886955765133586961998216368180948718760329764645279387151947656448763163979761790343581242787769604286867941883103494708466179342782544077964084975855172656511861484229706197966991010337861964839372717527937230548817832658102690829905989513220849177129737511328115095009472799047717711444664379268434492389670949494123665326144954800167838098316948801576955537869702672115241012519676300839481324997323985526073650343440086583725703210288407047686338466026164172382709427636745049823944387155516942093299342706971199309742756879559120384343149000839440470010493831505081667834580887110012550640612753453733840842391198972865386343319831727246231366816375441172644471531383245712946955623475231551200618006028123424842619091844263617898786270863981239600441205881103378909701080249078412599549161016145200482407363688204538191700895850487381105548155800868747543289584798738406246054774266714648290586332127757679325344614016592070016458902732399481816307059438897372412878395728048659630712050748736785771242210151726067653413141324684620830668901023772498923608652197246219018257310685731622895221715455738276065994239590744996687230849621951594472092502352044259321179301364513808445180660234018117677190477158077965301999382741968468609462251776568513696228552464042570875369864455353163328272530311738416849469434727832227624028482048047354109710481300892221420204909872402719390881401954542182549159706816735601561994872536425119801820789260936595346435922168033173463680685907041959225802324772860268203144850756653925320301934922785560189846167873072071961191741568032130555330907276463607813817243510116763532612410521720751143821521864201524521489181363269038238464251808158540696198886262723090757775763423446940787030120200050857668292487066989828905037009418419354108858621417832747777466621196454603507632456463815004018346106814882505057998716829622092623602109908231403502986946339034292729162249286935192186446562269420344407145907722384346389850674160995400395793033088784426323623724819867719137575400946985874139464030494732083126216584987598765081240589628308155951131183291292542788827421907032452131825678533087350225923748817442621121913144562162482403632161345855301210177957847992539537711990746473032372900776675604270613967200195831329604056900575869638931922288332640483992099570990192354725461752164778978943153160190013483170582566309024476625265300549225668244508960871159251320763094165093065546141916259529154485218481633848039070256651251998612853312376348167576570823446376071388097353713954933342345967624341738995624903664211552972482804806147505248216771253689063440254207279870835680341371335353423596265562232772345375684074672072319438902832359852832225416839566547274709594192812211227592129256540139263608705395522416471019715230457140400251660967732740650127898222556532391682951203637735442384266603824621879994337816142201264758410717932997432088257942945685704442098443120952313791857899087795894382799065436143356527185891099666411614015897745275743866221894837196697940966436288314970446931916314848474704501403802424022435402483732337483077547604569710314866462591702441251511298354708495581553768228362658173578219341812958803710780698294032170303822383680817086927406335023742328088381673055274090667095991243657737660083950006246684736300643194651198040126920518425802972796439251242903060895652525426730509540378837115052102446839333330116757298476258246993635208812028146336610392079373962106623288902880832208491717128571822412659024098352622816757538368777910343925929706804616932380334643381116969208296952400368827080268376447230784730581849431581059117343603599133174635531817033428099079937380723352527866350566136914850865721695915425202494027296891152148013628842979649497430584552626220131668033147537800367509089154789730316802433553407898972679684662922672463109228537145360790010328472555163179311414688695715801732142248964409932396764310488572358802343289233095759509428102820156887717437015013713574745783020895690110356513731913641606251253151484266490125575260907746808904832141314083985057464311962844734417423787544403090526295117921119500451496690326475158049613148022794391331170825834042916455781330829119696684248089395559362158647632728763708526238267220198232627919768356129714160266768180216606479112085949302113849011026628610855599602111601084320223728490231817741025251229251687350754194271158411108677384230658493089078153592728681442161551483769305055565820214291965958486781145118319422665251854069162632961586857418326760099226364880176961302101710374824157077086644596411948892553378374784283956123191738814469192150010645101654463023119131640079814877337304679936076391012097735670180556839671859098071327059186021510929266686207105687506414148269813319741062970711020978526593410445859029485810916949859814675803373513008088114824382621931319405994016391436680469368263342214893109162879657432164184275747064688676742657779535671705662974732307471951616224871534324029634206904808994290520310334309771257433842502974226715883861788351754028274856955097922972238284475583110230882246625498162455032039068175341584360524673784894057472589741352547376727402740988838480365438607561768292504390407355300551120070117447197671865466460986792448062918073617495807832962638094282927734147983678154935320987010220629662125879680123512728353458364577263923157896247124422244013313429651603648784431306991996241901074947982243249322330837755474992049809299402318862181017080253684756838829609684682611962304939534365076312488024989586014256715150129786310149272217620562124478426177315376236236268365261245483841550125493286611967013036959480052612856332497004718670831002499164909705785033907323708935032822496123199013564216412448237638532147292061525872364274963741522902518396002624862891223321110554246181925486005668280759607009065754804649704271412859866313074212722789593690213596505088553559691801736021846255799333420069243769014757563237505918761471130434208681815247238022119309661123752675551075840001180775404236975185229666607585213838108554387354651208149346420600737471916068477027110719075157636699507426947762178926108044677988413750871965011690515568595801948891534290450287640532189747952789673275620843288929892553653758430886727311892542358386971976699171133549444916156933067964134543715055076832279699985524999423476795774979886536002047213610863749104619602846890836227002053902985867916320194565620568906582308600740936331718107191561465820431680436681041888293560086337360866432312870071683152696430491785025765236099451842857245653115231007605490260533130314238075219029910101852548587499002884966327349234399784287686963291273062919873424711362575980727713201863418009231858529859236445616529523889205118725764000643873352126289040400671083423959115811003922221762461922879346784514108383091859533911645049605050482742133687516073073825215975123727669650350890667151786389863250732006471024311152413383499273004024437952428276486963855555072635261033781633927384058438003432752929714305524244734344550307139408885556143681425521967922578015383078888672284824119577902051696145991037182410525753997886201570492166713958823211631199251176221985723706888598092664037570847225469972229258870327414839994438914324783827584642313169591387847243229570908827994960046344511177222092765259182037874853679168861600984494645224328912917477501807393671915613716066212327055430066547582329269425598753805267608957276368719607407724985912306524380129595482173087627684915447532148734668192978655794596269143856916150354040323054541088745358550623208300123922649985672864952631687551209983914738298602244470799604089951802601998368704880289638801419821237182169595169390512498745061912591757000851624078848185289560049717814837934786183458897926545044009340300912861544453400644177840910793047102689575631379030925666177559042307892745233246967913921849835054768513357658090391095118719194102196457759470295425685847316776904132950436509807786945653772710571646538029730380743285674026082174414470259861237487587850501577719551928306498037136583084783207656886799682778496307489099504149964700761399526933190077904520166710112271106223706750275871856352594662669608110753496841978180110715090455023028247826539233779836383253502475215341238680335421430601404802012214287915206645502147832503533144549273779710295734759149712550347471679593567254175815677407725528709530870309868253198655458717066000053490518726279181912951761657329430841545659964697754873050912976720519699922327503534450775117383824773981843437428996435431755838478515457601132931860308715052429968832707536534523886130780015546602371125081683722873462458266976683003355547707128489270762857773268174498625272572052013673400600815990513469967005338524046310510540022079081243290260610990119294676958336119587613807934447426719779856328535853252361133949530187643683170212426749567216154291198662600559326219555464959369453465513436502563661264702994329577977711195612320462176868173402483184410442673397226894895008423160037588570162740436836310434569721555852051698211262318034291152515667706199560433761936616627498578047253315621619327986281381313382310632837394690411015203007131342678024454791494706444460113127045708536535077542614315540633581669855633313190204819444276647538242694894743875594879788449803822561389474464690937128399297878333067570672461497037194730157679359557698970289090674528781420099027055349745302591720178947475223595612105022746286948883842766814355311911931426049977556472489311603677214191746748416780807102343243264498624763295627720687482055862054700382246792905581854252581644546124251911898427395772413850911718249990667716854135881449614809327508150507082977158472001821324161688596787790503394381255743404053727030334999602251128229940096627211296346920009667498202225557306425732952832706819605764405503431574402233507752042732838941624462360425775647623379913109191067084809419344165290722548589842214899104906947107852682807268702914755691965014428772551184956743831417274296557263704337825906335420023469616171010323600172535445138678662992964573437210080839497937208481277759678838427103744215349611962748239808244948002736557391539878426641461889555178377457689038560774572126789129629670375313866434340027300511656589256471430263654595521120402111605930993795401682847958349933022380848229891986649444912383402487978643589608141475851122309962167170564511325833512839252192745073034795446486924895593692586713485326593292734824787322675700317254204953194649995325718687987113137210982692909357456770357208629307876089892325641308958692635991767335853162654600590471919775056540957440756117820254821311462872767380572550772711683313522696827358104088941197220711754283585376361868265815400368695331836490937166199723438184557234880548713662053849510638556031185158354347236110883381122417963803576527991240204945126925735375401403248517083941016520071246272940449240160706576288984630437495247742830475253180978360639853532737661609440272004996747630762262241169086279536463111542322524603431585043724584961988468013662199782354481265469236149297422533073501768537950393205916339372861981324633645330442592719165664947390043010010112115432073438156304687719285614713574642077815115394976156555853734296616853859987033138488331961663428896369998043454097165520151003241504468034332172360949446225601155003939414962154416239120036868705509539111914128350614682205662663354130017654904125365556806487095203536061833730708873526899875311033545581537305990709917469361048780848190706534047201917098594832387240180361337251871001645318674162678001564306353276768989250476527770554442302514473970585270801601967292800513727844826575886917035951953702634765401446367224533269242819031338670481060420808136618194752625458001911759296235426192387565716008239950088287793857766866981539013606333363742409468812310503047478099377568515870536143548066044544915539811353716694348609297875604010448312756967517823801382604833380522684742636686624798755794208090706960803677537490473676495046611828633369278059517213351142282398888488157391113213155337157430751923839778187331401576531545688551218728601154097612261096331409801667778044342444617562193166390212134822952182743564328342117065725832678289037309814648736350261541227188994154139071647567422188703351323308975181839444689886475533262145511822723869563673313894689017196522247035813658271859164409744123817284756362501847403360715815189426644596745937968539767725320245515126310962438325719591550931912670386324141338649715631367280440187402654926345165730933967299078639920302928997541408771346757324528628428226041497605310050884476424121403263406702508895757900491771385982868563441662444472465633821837644476534915762242772804814330913684249317166315284636292073168359690795735792059665564984162039359515333984439366600010694180384030691688151301994406437736736353485459325419952043737176295315646645596373887808489135675959620866203322231908886528665169928137517508860638505265159549959000084782979389845949780796718326559950922195539029690954291811085376769972002791268108958674026793431407873371715179116556842041390826581883664411694881632835390411335594532829971385944137295748437515352361046487076703376768045841520610003639683874283139422152756185704904782084601473554780558177624067500454327511056309336521098241736129544965107464458568286259077986790642803022085941822715407303295491219084054185074174481463673915954187939378836544017331135828454024291992452429504157755621247206019150965106906848335077305864699923820823843743208206339499818483637317841335035143175519123944036268765332936142874003303058088124822049122967296626958789127071612676840654960527364932664918246059452409771198303793420383312135704583612211030252531184757186931435488977056077240063764056274846447374566972823157969278030210244992432145790895205130565050540114057207561311805921246992895976591647442491464545245919411209246931678720712187230431127205021980838214931589447428016468554427246481255568046199996984585405630373234102019685005588789796675830521806107681350260620169791304126301989000297157344521035595277388110691330807580357100347541315718723465864484284124358007891223684633060021622569487840101488847566469201125495051841144653640230736069162718404301163319238775553297466517816446693320929231207761772449885671858831358437397840634631778081192456078916365881463283553730139092826828590139473541416666021516433138775596927314490232596535674284730733004646690569998222952307262581079039849595769283642522477065039263637245277805209615135930470397113593651692642063876914858212531011620756371079738520217852751966521129123703994590160140481220401599866880223832344235024283393845341048475043573416166367504589747855362116044662958534185929785632512120325360132264712461220247842921342992215640527984404166430789318046619971905847129712936870948526097455880022220186986678206615540268492922885102468966318478605853465175638157340381434025724093781676304549024107529987442302118912706850205165229178205870708498965768738100640505150578491553978755700243292089098746296175384508769017687419170761160529069396245830762850378216991292216724216902746543163902938831176187551177697609452137459555704641552361661676359527095827405848945448804419503214602805611100858978858848432417133774169957160164301996299436457246082802322102298296127270806182780533257403434912199134129761507165704368427340935900821639941213721100751073836679734017898328863501237056384583018725376307710630035581924075303905981865464834812949158792342092833457770503603054778388626460215650977581820686105914987805473911362239145225794978976587093995698277779696254964489868064729533797878229275302383748180964279860303471400826959174040646194036783782543674492984291385630672162724352672572419192089890934206437042760054211082495569850404865820105701956921202029505473464419839768289930776134177722026178047504748849280153561686931370582874649461791731793849763779196096673384906834777827807195687778418918451144351465300950156655033327457984566312743882066841777424945981834172964599924032410060006233794661242149938201712199837145308876409471639062083908113750936751616363905413674155655339608612032061786447585515642566389397359512358168020537624244222079369809177234263027085650819450328493906248732048002281194652992562506072089377985697105291687358349561921626217005801985437294015219600007169887163630912039513459054276148156980132086945475004166072372134286529137266084817548417533260458340698610297780126810465713946101074660912756491297330580319251692917870268882175859117351307317631674347559245919189514981290882594219653231746222678214210556227222950999319342176748704874839459950275252018829218047873041676908036731464012417636166657805200384819291982073535961335884771310045089760487784585229471381366102198941802467499095151789548845711768903930627029219178627979155563416878191051859028829309939881505425635815609548307734644239251583120956092785658226760333622504774296913781829596190924690703175877845707116897673810970703897987800033803297624618801656795355407720166675194525775397518137005862586232540004204129812655408906507757753020559716524237205995463480678311711677608322017250814323821363579763642174853947018322578919839396457995309991261674818910620614764498965408076254841570908013024150225397900952349276416880422894342068640760443903733249275789766177885691648258207624507464463466203652465025674763460905274153739855423617679202257626029764951433158623649619150500625519699648931147401393279811193813312529325662055633310120295751747561397538742849401349668809591590155069288822778565683761323471421996946725927307577748711643880380103457145209889037592052954362899125220119682315432816278020816437032305670756763145973145269008494497818781593634808156935974381357010672592168633003264422087395167409411999975039696339402744988813443746656119974557205193440064603725853592275638254635836688866576075148252183977968660675792944540398796654766488769737479564548647023780898731445035009837823154699244945612980965622417601252810387413619795650608309854026999553564058551030872641488867107557411308901587419612115192100533054690109450580805215921756962375788414754377034861752337745385076541338773988956085385316208609586428543040847941620258932998285155124721623906752748451799562256499791446257596694483339653349125932809742032346190257575472445310719168444963371649308316474062247294698929823681045890978973185898153536629913817227688766204331924585774110843430791808904810123934801070248493905520632943700736540953199525715372010997858085169418862076439597040912286948656641823723359588222978591369236664141854127059856859731088693950552504781535316963040763683272723797532944434254637921481525346348734737703811340922496457283823564362089412609262112766176456750649509665188730447956426621247756213261772331196109208392225477349194789975551862734481306583458029088402824723176601663129379973447458124374627569883320726853449125830253677686432733128045797833284738670275527891502389327122850268193806033855768644909085710640524747963404001857097055653126379551602285746690457777872960948367695898982932157759843099105965331629639784868085399271383985896659557278244818323896504028859808901470876724584441113826832464810466195475034171943386268886762928690191674102566143479828368731029731361424573057050870815847831039348071841942704358057016919672121834774745126352610366501654204209851357585240407523370401312681318976277736673625737693065492496985112116889952587390136693718110408922206145019780410865236320329773201828890019279144041622378117125154701361714471984211966442265268194490169646554325372080474074490687627656157470099376378452401077508361968832828475623857237999628377477039808126765929674416668267509370431685428859550136286594620493164309395338358651138590071262009200467104786002213427506295505244410871325152171048277895528204821484449745012916250467866175961306248102574106348334940086332201085263468385692630880471498567217653328715256854838060453780573040649817747835425435441598100066685168578436666638416279742028384057810376034832464218709297320098183811902556247535722356074476090145624374368106213991228913507423845436980135005796659080279779722211667124974907752682415376468512719724706628511761058547222286349356555478195302103162050015162658457481998534798631457557970882591763784729548771700120340336728852320712821801292054899409958652404782569368280253643153291658734073740811993454313808730409412613332006707539449470431809364016734710775110649460297348649072858584818153015686555141617270021613734984601873588662804018228879858236256544288973682895997339183536772850512470611637076346030734537798791712000813997215250014281746810732459824807403902717404342979581638383252334501373889912975413519108119208677956507692659162976701312569681761730650312505214377032412999796131445632805292214949172075427629355010356444619771211351437562183576395100030629567001498072138509321242124875384202079446825327378114441063602552340907748064032109017049160339505280469441315421497808431048965656576129216639853135942395627402379604624091140665597089477027074705596841201776076586256317915701392056238935766051249136054998535348475945985053903551851041351619885487433773477151159968767222870178741826963526998079547390680249672082579575785676980977749454737572713693871014218206949472266259895469256085605608886426219085171693870102801553596497339404247619885845507957835796771548199038936830600297465617955242812576361046741127470734652689034243944067546850218725566024995265575973123234279151906104751459424767294553182678108420019478430314813956496155719061924337842398734255097770214128613767999309950899985311565186331581561464072059414328391818557684581994884046770937095259162721016134122588610147058903394527534253825933422929084274038891228051626115043845525551365794513681700528982321792839341617635590596490698058214454940364506962560249270471794927168269164637183825808463578442571272921733301444108128345934996049060262345830793410063035585163057344100994933028252982760359680084280028012365472252265333299637029664097280586705704387331324927613424167808473908253254457417440274049125888132341028593113269441648026674462283067153328812980008882411357585455766372923976384752140766731627105106309351860447235556915404508384213982493347916932621334287305794628039195961852270416564722880630807283794586164905844504209970375232676888178491701875598917384077006211943948375437349023199041099789030564285508200604889367698006540750460613596453611925662291732601263748940404399530724097259172178381059733233289387267568403189375944216033785161272819879301732122638871935365368277737919869507897616734613468316705621334234229624978891643533484940762009977455205549132300632599245188646501357063017325923396226752241698595709757356158688143451594919313028942860132365019613513856196605458635774912279342971293377540635279094915692343473950291723480702357034105202889701887417846888456944811266432726296751924729250819022958822944156108761846636788178097039802498126473230084762518833570091305474872157983943598898030141862671430531304013775373498213420567790472366971687914546336273330211267690460207647087570957285734880662632502734885324167479243077122798224079161467141300138136498193350085560046634909450240995443265053173146489907042152738116010448450770950503939146647536330443781037187739735904361815483965051401224678872763896947391135376287799918397226826477214954781147520522864556527968756905010747398211667163834162298417797039439497213020910565872602198020351708892450665890833151076129691581944176249678675911166551285007816926376359036459792856348128817078601505222493639263916124414130323342036147671890729152762040441987196632001965788217676226402025509778831318108407710253235121708369106241790841092804970229003755317503038502643018978326436000421837631585993834721658675831502644246851544858057092634059934431580957184024938506950702962791332797193771350295475215471547639399253815303246031353866625647119325572012724678337193383922217987780191630435090064530021997493326323154897959742278589882124331980004018887275709456743536348260490441243576965905706805447446269749594040377078717228871674433950554195965665671186229381440961574888415450121216973889409686238736280609534986310766168251876699808389066765138693508423916283664521084553119137167202147975768773009726944321187412196860850522943405592818860352082860044084966966049745495804867972173200599178770330930783265936975126935199034059832408557942214951086566577499617808130351570769985677802077808388912782769760591636856257044034749446972751918106783692959349675225374877788857501201776889368161703034844510318458312757345576756073503577372575039805561610185083336414388417118676900259487223409377549427107402680008466191367333515574573026582257873568428086843577207921455526580405313782415713766221693453649095178203478030767971774591063556509325016415463451932205786928727980009363489486827105553274993635276068590732548760588031382522339314581411131976117323670022903027815355102629936407768292747814114393810286363223974018777403587290641804009458079837368873971657618026511095880462306882397675937670218512044360861837366903936683698666962190930537283827023652121930085523004211515318671604743532049705083126989952174479354661580030833287696811450224428163199403809376042278935590378459102096047935085488979787181273830500043943621354223503450406748500178602011453202269118723685728111210388478237004310846760200233816270711618358781571907282051210580676318994538169412676201157867830516275613234792025526309731663537913374449570389762705958119985207751912826661332618888748273856371636261020452535133529223349210865117437932047560166999991740681833887396064171952946986306844859867888027069609885645868666027436797707208074309648276830953303838532133203624872313391301415158771700042853686913325050661428842849870226119036517358274855700783546491145655795887878091349502074156441403476825709747590810717498344921797217451782485352548656700222308112839901961183445649131370907626894882755640747406271181736097292943199508523932134812356581253138652438827815806281986267324564241570964109898831560464543269527440375431215266332453197219165279864431419088296141529614017172420395539304330350053158398341353174154301645569732692444589205551648665602070345034893977595789930600936472020767113421324449837790471017290964578454726647879677093511958105019273060513902249838683809728744359780489932817909370033595772148722171892151153894796863955289399049539988160250943983532336821570767763403475929122636380659545668560433369616082131803159953955960200619068866696034481560835797145889308483925326571657055923457162908141907991131726773578415084265947559157240184772112711218990734896624893436401379983016372000206838148647877552794340633058247785902224479368033572228429929700144284421447030102594707502344054381478774479266802848288047011412717687697382370976945577300136647030079434389676819834113097512813464307069176074714826701784256823528467225054020365349563950064277828235886966771897948940268550065150055062547166400135918694333493991495833852876806874568921177124312629931657799570687761525243599678828300613535095574427661026497358148824686011268472153230044145534311225882353410286368428093603161637858796195636999092938837102495593659726115141348352560732108974836424034706263799525683182602028674090383844536851215605774988571840282688712857852755345433357025823571059359174808904269396565394582600243712072463635047618855418761015174490487329098709895955422456100550110382607943865077918728427243986039620615027468872446558799824099305131388400680151539258743741367725697306472988671425128857727427613870665190434110018579871874573165195751468606423884648956531873900853899362914444451535674339485321416781558105837800811964102713883483354196964216052993267970928971095739405913376832496011956158962555763743869726858899242597139542814956505248550925190215514652369254254055472276888422649876240018634106099402081914925376702435782989791040466816938901081678005855440707502707901612502956206217515697551050697982984911485590694545994894540010954362260784010680472133149471390208817497929063194876498791048048120704604223361444256339142302723107311016751205371476261911816858823509451980156575966004662072845381572059916879943855372272480157835988735507610158857525508156835813646613470411843619726922784963119899193471153406125028500064713153731183296769413894333061563598604499638669386312491877167051836002601844621194273870330283210401468278737723994491487823556547345517808678824448273004178166732080919682191562223229709917570226653755378840842865024988198163514117996989071736939448822403268865711144334807022568576076000968027122243065314309021386653744440115161198467252726830734882022268098674904658800033628887237671502964042315516464899540092700301491447133933690152289359441047960559918011739995362291386054782595594392073844312113953700601837710392214118142009989568150364153388194628562681762377413878104817728369999449700651614255368242760877976054654726793067796075197364540411389879525314406593562828169504956124462349405145406784705040902430465098393931332077428630425809931418596590034511731566543738348264646596266426909539503169303056728570229220716109121820750359457314753559310795281694725409509140770913209926948022483515653687623985069037534378025006184455037992899063632689031323275072911195564092566282339440448623634282476043222532442402103410828670624097903665606272355667699561447396401157726911035475208693739394824441709305327038612726840157443356250654194436593668797532441497011771341196622374463363565863536242646189633999854985050530788425388394347186413531192269029546750811832668229571092011117624275107953261249950929315290813806691998934252286976833839411476217313474569734716865504655212696432145891558013356896133391325328265504118564860964595640428426719730994627808221282029443283012489186762406175205053335455820621269283257269873433043882822732924800691585697189589034040877902536667382817281173060345470083082109729517895474566332325950594834998779598484399625601307583869947664352275813071967778987917461389767739571760478432531576450125228902111561002589009010580877879650386572724241972880768916734620878602303255017148124428333745522244793298554817732079036696547016606066014040447423825538064184138633912467139010731425532366198953750347378097235170638510194640671083140663458726841304733351717133383168313057432090257126366752962570627157811569220818464051450694201126775722778071401016944760403066859071099207322115117697159349670667114469094253887512405608317963188322016165221337238850607527754299645827717107401631086176434276694193547577930323525552068762223481248841587239895707041149405709995388851711545936867831330852343739049609012647111370411573410408624499962576095628451203237206383822795603580484572546218195048924991316875547895277774558057109086462549782711727782007442394458757048167482396211799763418408577430169321878114231034209867720015679588200306111706563010006565652990847896296361007374760963231659419749803269010012625230206144776353975138465518935429669173464815530073115217699318727127829603633141432284330139347754503721656909453953118878683060689844398329670318058176869324028645052580473842779744791966038821665507798571305453109569269996596414011928679050612841476348859673229371880008705535066599047826847088817798230191404757183733841565718833334257056026585731535227781445295535124010449633021192721768556906734548711975123674057876512628293124629138893342150676952234949530023854289345488959776223919834239643748843765589363138419991415373249746803242820126974518570337615149737598353017766407027834656591095920655926534226709197520431230185974814366845894276277491434617492223104838318210422151445791411896543606077597224317596235504571828329644186849577990934015616610973924166775428309405127446739847646563863114184453832553861549679108207897954002673833259530608158274083806558940538794285876435498923859451610836198021023201648086407350230029003370918984183249043689086552650463956580860582444799610376634120427290978691438796341322492595750040259297498509133200325466955255891200732349259840692720922795940267705364310242033826841671581041011156571991447173882999998607356050799903847410516218667167415427025011862350681352490677516021963267718356982483572371283577385793552817798846203945586091149251668147608747108009158291919801841717552249000372954165663053449769431446164230505516922706957998324546070072557835786426484640750719134976510137671695445906454490638430611906705541176610884708999458630133044413815602265942292293724779459043065117028976627343463630200157835484104436239506802577950549995144456082095022057918546190078374737554262134407691072818864719775052839888704880589868689053245044900692327411283534475143565013719624878845274517043313945188696362945802240978230973795220783297848325853410869855166438528153501649826881028074518781140515856519630553624525327786691786021509907368043096415021261107372500104869892717592060197505663134967786283581906549548027407317780449315715488691464457176321735372325673778324174696559488217660363829702668793256047903764681560630692003234218031387035112399197005294231026780033949265989056656117533303422319725559085503045773069979507182760119134868303647432873049272635792081893005310749088254225271884298035475709880004993827521192964299008113566999506411117023653103340255591477298973188124870424177892554648273226466962627048882891040339362554187207622147252942472966923236649021694071757707581168130745045428810757728264830605885586381014645282855686698834035909138120180854588374320786553789157066371040196650311318922636355913366536244100123437417116146399879290247590406923311716037403584079186749384986456016102263356985109032293590921748195525896042332538986940624261938688610514798197379820966476044302961805623801836231521227421751021396308137023905759927299507315469476875962078875597866304316006488381479718383951077269803603742897318700939872962584040246415328695986299883365593356592500255530574456804251640333629420508504782367235435315085164017536047682779489914482571670363797845087794152937940533625539199758351385344480613549656527489978007842604925567182999723589487771130364456499444423903289042786281755461314695347922292462001818756358237509924431506498399389425758647461137283867927111510660229326527807506890575206764157450019646821119811587873881961516408118837286067542429741053473243989015130470586520171495273485547200375577193268302445076860442793942004606110507858052278341502997004110205450050458552127973119061537245995577639804404955822169326959566234852725714425631398659548159930708710368197622824642195364685701776569517510607896214976533856703612092953744518470378130910080501646587470089009015160467869174382710585524552239987668142551613112984031239638982959405906823122904711465907499576746544486756797552549951535149329878196333992304915560101297755101003842424085567674071364857165336083247129800959741986214378343205938958747119258385416509340836348146165797202854265677502758957202383632585940635665482338196909090033964351258906678133528222342079745023219101625913809776550957579328982883071713821879071810181584300305509705390399391863031545386473925552017284889987309911428719715066456869532035669188586169829747274038830935330034075882411352956904117253855120405372478934731201469346939910579368120883478158438208417033253032139183008200711105284065703443703984761762312002342390357787851230018013696479990954760401015747734681439735454146365266193633301150100153860446096279289983943480406347610978829122032416097147578301066288626735031222379502453984629202507140350544340587850995246322362650243036736436618379549429711182472006270267470905315607633713955384303344146982449353526858839444083470792586556617124833483982817790738311498208414404296697879580696434943727264820475862016416662712982750196721237999705927721131469450951528620587444068863708034427642302353818697555135612914518581364308763519674809948643242366299434079005962173384347354055344790778800981903543176551777054552467969258341118803195879990602122194967371732373307887420004651103607263437665090694155996197861853409716077647087131067214757923368144477860261859466515050100175409888966773500659860792150391160504727726855844119073609353265214681647112544150237292099964160947291259025287610129748939959476394208399112112079907436262960223095554663998556430201236762323572444552006058293658918855292698257120695351874119968344448237533645252259510274447138720678895018740854334924349502113430071175572019808079939135611566138547305640463457177473593445121974087710736573429703916479902879627759861533367523874361614366494494297741098487183766120626979008495886158937827965063394478617554763081158005816560410324901817390529060435324577072378367878175031773765395241569643090898616698110005178506251231324186184018100678421702387510870863224589854149713734897636390938917797791876423538942942087963605057025916989067306267764952493900354775414874940834317917311919115393489726130256710511945488946256352635650790266502886932621559932491016632581828609551079705493033835524410518191855821072767172877145031950115442218553735922913708688038849459549576679889003983234489106115461473553471103601862750683066650160017349769654051717896113789791589318818915735068418281402977179331689801433416249150853410128664047986592515126995500170565851618406010708313108355942374647005748411928551544027311170187706915072344207408661629241734349889427074695860850561493231455548504686890924413368048456631744157383433695944916294160725696871620307665436237628968679383789833842105421493154137621138236700505904958519271943007064809912017443677893776977730461672437941429941943131535761593338055682335239930867468162811337921391645355270572309750476648536542814993382552062162780409811477774069036430032274791793246901836296359835823133927093039226854699233081899503051866438052313428985997445535563646296234002683821742997686431591441563124627867159255404039712548776627033524669493243892332575279285001420393632977911830287659289763783637288376062570062905239027996875944469712605574176075210645725872326048120541858789527622286920161179770466360881067014043429418198521777024827649262178862814393853118892949606334708095062807395194633499317638570843348049397053304322400665764168088559742511852975877893749908287099961692602993172292467701849559684210644965210008768165374876456174205492151303317189864482041774585681532383728201612214807632711530600124643381612777490591422799961453817542029084540790881743864800349865851024755260319300238826633669158456907235650914509726972736946412097700265795612369530966192328476723799088262960792288963679404246103276777306608574768696841984504397130098077019417688635333845762435383496888396277779414198027843356914236865722188224752936866276790533800144684118560311819613658890434951711906999071330366413641978686352547813851246646814592684157455854141054076177123890186444164710968987550631698986603359564563891429499702673069197706832649320059943235066802038845100721290858489377891468155127136144794389287194572200693462580666788171554239797735477155389589586027477400472699321711168629038982414717088356235884958090902855817317927235363886351190166590118412596409441482350306904658978259138767724256788543398569977263357077618780194456728179873099794644154467182333984068636004982534316797223903977744740809202087219890193410289238229845115467361142354569795676613100835165045250363568888960194944162536110145967541987029657688394042275509821707104450256990151779975743977317082988039675303185918860635684823155517143539788118684036099237466103407254567335368607484801230080667778550555325168663992991115139197257151523105299893264066001508945613231564083356501962835827744300312130244800044826216224336380700871406824003733992760672940802095032750047264462251213511842363057519404171454329967657927802969571764067382723028489032938737882969447859606280480180687174109826413288447371000723455425798787215434547323841326180044367821400624547278896397075272364120200414464295315598541350129111928035712957005818813352812387291473587902473120872840105411028185529912611822308738734526681873024611476563168418752039254787976687259926975686103648670224199815510890750779146754734876497791283078113898489213694079378807639243037649508047905298693652477390717724661296880621093419161708037520127338536310894076012979806795769812136072437675411092103407450734617624580294280469622603848367420112141270574344809400507018594384856230178127653531798724970972089449757497230746089296624753639106230194586757029112933735593666366887865965488368550494139096914956876959373569739217483319120362696631670426256269594948247458399445527939339257835984419911541851003318922418984801425211085935748829169391691328866009085531998826960066291625918303730886058030816939939621480944866469273876768242484239460410895907854257620920273678970317378958209831181361034475289232889363171899208631620345361606231858979034207458542052267483027233414372425251135018231148760308690071260582455138491592253955064564804426753988273862103357139724548017013008167762830308860705990334704340130313159733279091430374603725983902439893253327971380201022425362364158836556216598880559268054334170371663175075577664141628765234273503833563742386621102033353265525917301393067521268224535606691323318269308517239829338712031213237458973427704689159674679714754826986809628099282563036245846876321014155832321229667501374488330980415422342513886406542750374634389950985625152278244684849667685252359363624698210684352327006846900887390950888911563064714034558079698878878378905627866964989565073983175219724805831343926351914045164021936252027896648156893574614196708268791725848688803602472391586283765135403061653487169002375602444459563985451880566931676751627920479104324270366989734688285329595548197881431648894817936610556481392697099912985069513781410721154724022619161036601457113385611809219694029695945266758148973229264260432952852996852358529159568716971359906667091876894544214491223559735072563062554739247599922651114774072785324029514621928391215285443130866256104747698427582695512540811363365307807035203143530629327672300117655915207339950986300405388108982676260523796451238611300925833437634587099465886193865714651361466627475248920146649511835464075870732043005213276486111422412525039448081484924229570723169976673584939988975860099160217421212043552781342752363822265306383885325375572854462348415088490379711372720057290736227477684285659311699671518604954805243837131903159914015154440973472040706877138840226341431683403313801112150481457265140351843198604472608174061330223552508518635373576199595220770628554261793579906393538773765066682488966767530618819495724192524109325811169508384811420846577586657015455536884065411992766733512175550019307728500570198933803131368933478178405089616868751535275881059910795821253385017415215132117983149380057892297679773797538024693337245052657692435611292950017808260050305805077405435944718076289112486542957513567577032747419151937077892019029784941938665085939881342217166470125138681529181238183873505349312006330096132103262624931906082974254824524906528959550844781188038505668083890010127562796531036847534110977969045211132992971591221766728886588696376560678212879179829317110591636447748175972553486402777981044576912060990762221566176533253188661929904822953922842005712382903965578462926350990406265738583846917652023542419793226238185553894181210924425118081621372486184582725126458673613282106818528939497158550226052027805351449899708911095963149313954539129625395387920941726197940492640328746591265320422715654219686052734499648645160629579140103391707948002209914337317276975921319466840508424171643804082039749040766499595368359481441099547243205785285452170626514200884450824411054490040308262708672798628455266914873314540833680039011625078043502906118056057096345845715685107102583708231793753334265356872081125834692192665702766871248123353097045993829923998668431501681853900502563620652455539460355227990604431358608940878039225455694778346248875432322892613715427952237421755638526651342400767179482452493018905048525816727042841966504631600381324379249754578432498957314848083705533798864385429860926570620299707837227835725622909822828344082052521995669909992209031221284166908671475751793644181233565339185205250185022026673448238615275020911824310637622746835006896753823789149632095827048060773856393746189911917237185411824444718230359327891858366656867426632705230939952116963460316883386931994059074222144299812222692505275408749055563074234872739085278315942246900248001992169415725085519478204029855030405490531583798584575393311393014200473997706167818577931774682218821389864903375024385445028596878982253786241329126895423526480200910644138219295919792295617664474403421079859568294426092650677016840517256745666014750679252893436090148495606528472419495148254585036540166728301430780164086685301201362002311058049888741235750644577215366896932057607332914133287852034818975848987793496444644786456697194390263335351113968509761346626384972886942167971608799536219809560371131822742487013271202217080341710691269143886630697637142077418837603497136139967468550594701717701479461113331019024046648066962178598122096680354380326357947883715794431328609098611192337081208873713956303965225890483899930366168727211752713735691248381403750135938326460283309760141796279555384343708020617321037783787724581721571258594498675584677077895492050056869750508785542077350411751431055488449688267132912934811319471278439017143517840160529547911371585072111079617367187251222480329083209789403165782460615525931197329900617275904581387546161188677251392651117072663536745151714291910520614607750626619108813541101595989366883606639173266461710117646594750115845934702323955647413924493151015066637661406285993651381803462008191900237681518796870323901310063888270365260224192112216787602372249975708817560491160311458977129807321487683027355109856684665813211716415270558955779682358243991989974012320644730046617708452100762091147149752600718231772576638472794573283889170039052952144315362034306606449320361695538561680621679778748860441940395504003121346331204548463268923576796273095929354327535281605929529716607459331965091702352471532761466754328091373769043637049811606627171225441921384387993164304136600990285871848903241499033371441892474499872655239309188317409993154031542405603180650048263858428651733237755496837296342278312952001706220430943680939488461562709237680540698554653052282308384251506093212515236755446407948583102017413458240973399081608576493506519191201966222480850151911481691221579308547211465319647865690199171864318376022716434585079404384317540481703938607749099296694395846569807451581804517678512558865145967191385954472401512068250602780884788310889548090074651668178861499975975796398136028657894733540143844538217071956882302625089748635358271473285911317863298596929743582584151030675961407812769921204838337043898081828242176129404513373097040453497197338917042033525916904340339963942925774458968108290445166989374223835125479722128717139469889381770134353857682223894920698314373757011152463364340659325085727866326384555169330573892778604147315302704005516234286990751677283177649912408311199538394688093555900145367849951543317213590863086008887488870138688898687747642260633587494388432907764438566825430901343664138599827325883574945623856897486810990604100985608840893083721346993402039214168045395957444340663795492679994427317083116908829021823727335977864535754210575498209056814597057130706370752397116757360897742271660992221000115792668701392891666906184781636533401920750897097537100873748566526891100199289228829564560562228650534233397459800090762275983241893752073612478674056321414024084191250476170383253637121607326845054746445999902753592577224741116830632067882876637236865802217762818922628429585262802909403372890898005886775218266834847947064771234987801861113195663425820119122054975827924354387616498045428497533571439036491954348399539514453567726114134455367563820511908098720783807013746220453756328923135915018974612380012694037133941701247641293131730529148901673922678855115056723004011147676671256797883593585705796291932456494440343737199439915658767456243869129789912676813089916271903345383417210048840841609455161577834990388889960754217261276914971749457108340388112381558892403933799440988654683370720548190432783795920194191318760205838430478827459824684479333835419125703627839803690175975264541693220923477271329318109082112842359980596272145944684346832547845483531602306002362788253633783849264858931566213773281571123158713035049256233068192092130112640310997499027975993634664623805474687427473866029621597567660819446167154314460629810942243852682516823133464456739769947067534021496263813045462387965903901181770351048411791300990557207064761570965736646492707889468939513744262143147823163414192781121124434395179626580988850441633111239206754224837296367584032592634708016859318493064597834254688244055872293384646287181155315948247486220428032720208073182724797796647118301269228364162113014556309266292703615255835913672011250609628173944307463870290125862209381398652943270968724576656305366712510508705817502151314787943412759001849146701735440367326141611786106429500889881404022090879238046567705644429796037835108382854238001047935704819232434972442221073689463864381934315478702241575211325184108487295016234452121084853448476117407127506711088020065802456440665082565974897070304844247217317979986633544269777602725690546455682129157569908280339379425787301389562076827048715724886485995704596540652327213486853150812955185773988887511724930209153042492878954728493882822598375784233571323316507250886860083370445240630215167608996806115536031194120357432487546952664352447673420372565499847161722017484532071054533598269189642382522695697560432518644171050514281394484991689971382589813379162421692943139838052220762943797779414116022374598041608645730256531492448726687063707341843617895911549046880012035337578710250634084994711984111375478175410213262270653227095975907980532547415221394908501135649311398182535482185461517831669702344890672308363727360539734005539917383418171949940153894661241805100135382752770964096120099035292159601169501328568193423975420156769069023570975464049098933762739504072226638346504527358559651837349903917352133586636913500109162254708036638286423928274502651088984083308950411808250741472541152807723131168746129894574383188124224959919739554525231355858434667134559736236326571618872357077273518279755254511052976364160747103762823699493139196904885188850127782017370307885819855093921245294975668429174227375762250425457064301392779653416364856449792324426409625471564080996759928835318100113944636840908472683732489889140539995554239105339786468543378198624857082405762890069551318160245086584691692787198088400289824424176000451096768124587643823446074753961935895396530445667718951300737362353652044266739738918469943006579749507734794497393567195954488806001202161908239007650518680836474356411097323914094860021674413187057838357286771433680334893642465935498570885679265982511842477077726968219518204615775622373444827621208784852334894993168142291673780359906481389969749050021913619674584785229496853024108418946931222904908477641044881621008596222667145331942867458581610205259796297190991988360909563967501281483909630117167469859128691064078705826247638090729408988883112106384533288318726027895276439453000186507681727904310736793591180692825916867636213533233055138254079790940300522829899229247603734180341758379041537751763067601126317022598345656618904899710917569443138965421263317169439885747071277112313345703696475127555270877356132372728134848497953884611070975692851765880169066646888313796915213843500336659483786853962230562686643254694665557293537142757652592191818535684985399769226052429271043105474600532140245332627896084388958992831195857672750800917623540968172930842694113248163654819538766290065509247983843568702812708224965568828465980150700116538693650797407208652799035398662478998234012572984663823203877085222344519624353926735433932559927769040432904509240824933200530783068363413161990531499415152622593535328024647277322310141444920724929377408056917419827976682316872448203548851742925944355528624262587468130241880870864192473208688646177489098140527209998597861642069509087606677045528204150133356106493527719997875725846378967944054110042947446705703984765772026507785846914001275671869210949001938490344811964155515563372616942085065636340454464869685629003040472554620052780785334981307314697340722946192650510660550343411100493093656450748339613973700904668122976051471720993671034817420130330069822949256678353234491962799730667983808699496292732918102073424882599933850031341635999884100377290089556173807329108804351784643406676338752765126886307407112798821403255842749221246740117665785406908739858756649597976281965653731895265009947231905950460359511308935199461383297237167228376235175062804149355137103926995511916064184151896170317027038319207238757490898204518406260361046604335262598703691543812629253255573857660886181230926271912385673154960379521640934272373485795820103607152687321286952346294292189282561942777186662438708054634008002959355392686674688197777648388510490710489655285790613072255856299740447241655750343303910859651047614288843297985113458428960714444303522472619334049789157947280261812785812614950404069896969348158629499176285543396668045678862589095164716789601532089721023068814288800927083923124381903978336689030112924505693394343218955243895682182762458180010267617814982378612443886570970159981074316720811346166237122323888692721657435519473396742260670570745792271885123586288562413794751380904526412391150667263372925450759212697958449594182116371550388964506712407442128712229738064079649506728074579228486957012561024974286155452397656397300482424467977127942408335472278980244464358870905462109794659209963481303181221867835666835243432875427066010035813966992523834792434462929316415175024356378503872049667416000907655199791520566684090901819953114906393597052902917089435172081767608821044143129890126315858837786907790940115464144973747323864252623766837581262776045439099911752472356760802835705240047761309452120387911157667283042540386696050801520954215233866349697501825440267819819836673276540168661945451614225601393728621908637852630705053445998619190076009383128336079966358974720005132230339916522652381368641515511919416366227912330118297028858804367030468145172388621675539858050565585603449406251706955400448871794641849320244260369305743399073318063332761919019995577290081052102446399189352455523413269258251819555021726832731710868341069599332657671711540612696805598957101758018335387318312481480362968722125349068920288912660953709064528738480613186967018396681161299932054388159437545751889451070296997850143895822481887760693358099934698409074668165961715618982377887760929968201600506546585414719353569881451555542880668559357408675759318496893436049392089217499668271606837256709159240169732988465033069503548989312845408174977672281532140416735202985852095532208608274416558811168736819819581958919742601329049607562472341914658649288040372618494532322443806006583682287630233144649106568233538399979887617980273043524079231060788821107071618875969036491751370557095399560745110016091810477095125472763434359172795520215187391699431987485732969830027503764402288230294588044532799369419156829425456089626990534901207470591621938693097481064558287430083389216173757591269848488360130290139730639840720059739833272568577342402551594807090236310652338452517293886521901301423386268183196695541267545813671330820863354137138668767003978395318467912421693339132822308642065705714002456118637892325574821101861829392822055340644180681880983585652222592669160003534575574782988921430679803704214472221271524037211545156353723166192708809528490146349889880349987591234004097667148394565444502818826081238666598424142317838087013808226521366830695768595494525385654853286766198812934535623936064280238225529476828860343358628189309366598088667324104819770199716172158803492532478786573731475221044793816736215762000834393015466715494821811403671384654251258861429832453136785278321276387276927287719375257259621669969966825963115292526912846796704261958770032754689805457354436946451243034782827312843954258466571318697517691478970355669604251586599806509391335474795261700002153359903890976789736241862350907365902531129080157583781662499185460339191873688249109591947741316345173136571716051813574681780586178531389440040440891896950231189952312304541253967639799890098526684259410160049997049592308974984314313803207692625614032720969314415925973583278257697010976584361807700310792758843789599429638346370066814411077763624211106343971736553936877706586784867722886378386115023808953152733282631639027827729463930037849363098176401626230062437073648850166182042617942569896041163563634852164385477552584579761458331726041979813645269746579813833570241367053848665841934637617968832633186650589170035883816204603774525634286990460122277986552833608289968115020535560070158418089749193713985244894881883362929118223961905459691770852890952022293963430565915735277628216323459292843353733661967053368990521118716652191160350077548515867182969899641400803000448314427723766172976565699321457826077701346482084923083591590237736594539404880329495796180906106669742246113382690069759171042327011800445093977764097922588540991926899123128560941321984377147242550727595328658339046843840851470039088116164850602602747866415263830231786521133806774795255423285819535186849967198674224609508982449603651792365468034448870656381675159513938960801181819741159943372067096684415671390037669922634370547538017587606973412476242441091204264677320504939375831107369760785369014777630440181946421512096136929818804832471575002249896938776394718483641249771564545522211753660699444802991194544173036822300426024163386924536675728867948755018238307118438349263169119663057232569078138337836825589564841429393098057130902023885503241583197954554536015752750341850138814205816089036487498828783151030757519320043354671559492031981619270692174369891493871570724191988222494294337687503096875466460103110895737647309184118448243912534341390381531156893394706091908276274351808255233339749553654178695406384436170271203680650282038279212836852152767349636228241539987010596202236289095862047198183983723447127495962266578236889244354425101327401027133111863126995472574561695814293103930414571442335463134415386036321890171183723101952177399973755441849045062021132095495639636277685294977905797805943303285563122934259587377456199279779321488245736243945916989469243327151166704688781696765200847465603918678534168589778576930127021429040366056530323672271700240152833616105804380930595030806955772103721617210894248583662820997492888982233342238080970302068576437693643609700265715812655771995227239100466213905570332135861898754505183054774310454176119956702553121889397626077294289078004868071521169111423257642993691849855102279410151344531275396428676715126511967253049132146521176341393928677795367537043857873188457287746865748672741065443148098168191028251489977627979476488998576858553582221730424241096676356030625712207119229471860294587152167795645931258845910208028174854158967331350032094202392208976273677022926643879355254195966317606922690923347552729849056460012074952958949728794093020636518852222602749355648239988687287451476608252015156434838242848143608038618538277478462786913411736826267254980024100944242969979220089903067119910631369617575459852212541054263134670078885026541527925393072549382196040054486995496761234456413816537932571202786897399226554241363816589882817480319711200904805678603272537441958217996287288909902736011458944572665465450262829980666805813114174741617182449870499454576431862523131248413578950123294696040602978616362548616784143021068989591073992582581393518527039944980890328446762811793540818815631829231202470078574708267138610928784629052921216692510616993180761563807428426311562784358304499455866409054703998897134458596482206636242394009540431513025774125815137150831462460366788666284048351898704471935717242052666777810257805627103530304892108572411875784290198167671459586500304884953297762485707789380205092621425243709872537128019733531979945191071056046617307763913129845060500552673682568499354388984140059359496039398194300372066498755793535629641269754596886359444878729018929102221644710200952538816684831219594816074153813734110722178407462277536128078098298235123244101842406152734711546470518799144692272179121792374254544084549179589588789453564219566390637516430421330553415492604558167223570155816059922325449185200433143957779387476963448191391675837003027225651422214084822265880394026466641012540586774543374595025694459490004074089414316113330672972676570497124911755020588188239980417634209954307702378370828718711206543696563537689101906758596076702414631665207486376599815899287863599219974300831937333620408342724836568291922209422930698486100822806122405437639814121171045534662024463450994339036206489037525009045448849930031900614769009151590274269650144658965210541380665532698011722284580676776223417059797686249582848505275005593989071708846762550716582757147220269693611395319174698175248881915942081334456997150547953025724911734988118221293988417632959526521809246850787511538824070584456608999043234864455183235273513288605473997683694197188754225415342912814078496202632138798646933895468849973373972423461558995184952704811161511776864551282099593373607804556826126784746446712522306047584948378655445903109816013166361732632180126960938609739292791882095064454671488437321386228377393995594377327380695151410230652537378059042723491602687391032196279461426760358523575022463976753765448244692171800614918037996937529608170378737422064441194426256724268781478649194139644595603403162467205245265002583980399047099574547948865416149228746565495823080919818302620631841463031357462288279013179492341888847538698628746120947847125484376249516518802593264239922522280628564449880453182694546150051079437202943868404593775876496165641159639043568435741951843179717833142269298093805538794862347908904567683483439480406980077520666285251838109012267478483324085932944308115441877930510774631580009121406889988048128572889127214625067043235696093996350371612614869680750371087879687025585190580134069540397765877345435507222491215173812139390081891605754829775304164413940188047907041245438318264393606544307366579240330833211992678930426858439892470008207689460327854453362690928643373819215338984410632934195029824966109439304867814032340816919717851331467705905380839961598591600907066644685419283149938530095888865015141884975113499492562636761229567345342983852494351256313866706945012530085007075398649257195808823487308063922231938318799363530181642254904620985049633662407494074444467309894922975803670180461080763824444520044325966128694091957680259116934014316868647610388107385694245259714870884120921469519998919033168158068625028017565180379262464117936194150034703322822309153019702475350026602174391764261137947148643108565309046103677880598317704700682889284229525486446578217785529178499250826507991820655887894861083322325636533953358298619796653414579708770487583129043143369129686044264904077622536444547728507617204893697913378785622493897949895208753719143184180069075122707994253371574387901346803098919636995896236100801811006695726655879924416221890227017987438837862279294958677169799495782299421673362293922887591078092461471051126218564905843492485620271180302520581117348533017215884398799219892139622046747540662948251207581100942673481091291601543822844769381512527533112314250729710134513077711654156324387798185614519428179480146574229106454835489360803095244485135379652041636216016630691082220700904559145666204516372796340857132847144052140440278559720972580370050512333493820474566494937561328992366361705773114480254705522018514613172793245306077897003836612388609012964594450739427159242753917661765885040065614357626345270606713022477722665430816062467289867118547056040628444159359095490208015321802191630931366238245218177563756752118223747246678089063952537396243512167225973998845589159923059552415267128276553169121922410313334123376511630590713677187750521681035641970879079274194617021109747404395493125573868440686454140056541325503385286873823831820061148182027131969595596277332965721546317056989299448695599953298957263509760878673951662029047760154264830606393167100776564966815758477096548559954245713599063649781755923424575024706484473633927249765701525318668944404884883742083776312570914069340553052166551351965564171892298680935171076998747422949622865888835489943587106896172782366344748224139522228940300646853066063641859659985674357990727104963185312686451225383094047638292745508987703769242868041364995382330610697486738766224149572950810968134179392605919064566384543084483573463290806695332399439530648683150631965986486881336579505543023802233170927448102212003570231592798155191199932331257366758495575781413439390599694173970396156659934505571907531549410193483582665401413914720375756519858551917041109868764639493270949839084941289625683513516436396910047168115333887832610742556900324991152269605185225299078637027747395226563340249904572347175031749383151752908531283755209581641754542547504214723486825351691038986871503908303375621049908344328005022934896849781904790571140944316837201632610327391645644260715024469751174313096526826702491745560573013958782433627999588572861957304564081865333242123157931652531533752560905737622693795491390661766517030998996222734643296011082063974828687893582500879306643763731809685568097248820255938565128504161586131690906193149995002375489768385266686730952030856388686459634729875346482343863498908044089805719549750239885043321833195491817258785954056004966696666128642307428369136703438336200104257805521272924004552324634818594713013129901414796022580061266435000309920772012486182858526561850635960313669728708708071044360984876302552433997975306365880752302238898255691748255552355064352328969117706655837401425293365094910183304682249608214499472437233668888955728569687590196972639446644988827698698566081410344445136219007022701821795374354595463980244933240882677507252827632405229858273786369647856316617699679513244544829954489632315626812069482251631118707946923144312348523946510004413690660162873292298678708537416332991983446704893227129777859838280867578105785333367347055016979146345095348568668329792067312502519528979775315778718596864906057132702505839192426658605815172879630385114786359351934389345911380220940765263366466330344060084407810663536459256014715917010307674286472800808501616071729584332351525817638187253564067651693823322256851706256733799793774750585254714297197179809581728967294399034724285886291211581848534443856211210921299782652436516177737302932797346183711611693198089823589805023149501108846541065612380443599675738252234364094129135961068003430321874766418830960084700794838861091791941627120299867995916787999189353649268145912148523418683182526170060226157918815481461796223568007726405589684117267845922308826785996480375076702198468691444666791463746373559972750278941346081075332705612129882831819094234756278579943916358790179033919536364529241935729871678774118626792002754126041542480931178554691106062802819445999882843609208678334730935077092390310280996275988722150323213852527751313640213466793370066045089330684848630362257948981901254336565425185207707868464872756087766127255261835620023317016031755439928083234753861710987104035735036084732896812665470480360528212475050165365141457730833619696549837123892927830502316947500501214857441010334180916644022727221797976965050920221223145382158950252035934068126196353524157271053031326398175170054070193720426016930437243765011844838714413473428521160932542589463967612888619248877774890720424988302635448916491267580361695580259822149100776643287079692062362159228844195584203356585505018197117442472588677500385409658749402393494157709408976407070070734758864015878603856895089115484345525127662585022571563269304306107393722794285216933928554254822864687003721358285324649851145677453619660328503760968501637983580453082748431999682404420888743453725247358564981352743272915756544790173300847271969754759908957124341204641001057240087586958638875605406413489284228161218920604355522180474870501682411079336320690768935273413255267627299309553263309865808181553502374769636406256205847661948214542055441005643361339944861772916864312975214002011436993874344399213349416085103993489983965739983379895407985128665866491848836475378793592183797193288283738914909055748408647324949397080685803078365520731771065926918991693516946325409849838467881195986639936365815805634471749892469486994714940559755213801196301484336136511667834390058821355268471067932354895918226723004803548787888945402025409278418330525273730767735269910145300326429745072048604506150819484749718951084462404401788573583696994790477147762942506444175886417225870239552299490983045064710985664437876387383808149517773826299208256208756054136863377294008091709109123550034520019138001750159586797996332257114168121944052144993871269736893640474976515200878814632751932242604409383242352153201974049509842935972590909595213011315721868946048218519232674335956991155659048624852302460715936754315097588062147546610992208243219565426300746417097624394185955871708824262369144960593673259769349136709242059249007478183113823837351519916799729623323948879781571633857480304351522502892934651372847810805638718080973646874296906004797724490675669046254440719433920385292425718824818901604519010444530078732071317715265389952454370596903119094499328218896475544858285494168424133508089052395679804087771941887128170967602887921698540892921466926070010379699429880510107553843949732061308691887260148956463526095311948371534953769848700050493553119463163767165859741222404646082261906841333155430226736646310471004891262818115673839808101752766746412813980331276919809452556447500729924078474487507034133890697326221324487723398359116472619374826782996228460012467594255433317270349833813456386538227719432771592751390858528395449741755775870110136535634903801630859341864702128639225281524746298696605247847216876388404375011705314988117931491280715452244820335956599974696329328765245626103774142205487934136523801241503898141601003876615926537370971968338922607808446602474149094123363870798261015262057460023822387926057425330869244968906336839762535514720184701716969650698062306379304021924636201520695310593450608294480483468049003463443229622174705082128975202541896266877069118445758672257843522358262079213434218970767842061892219204172370931530827607520469338942049950068964427936003695894038564676622226957921023992223098172920706476214088491095616995734798156836459998968717709302894759211604980215939248397050964118896497083612948494761952744077228161674560516275567674312337399983052356909405642607451867374496882672550781662536358838575015207234218826082135467490970512274307642596956605599670264121745986762609140279847363584864501960630619472319076852423905506561074981692800867958364593049870584936414454143328687398226985262806103525473167702799515094465325740118606961702791198937492790510710801046738679053332620312898626122058814311291025942521777633070087170972050700656591877229559661790863824314220181365255929483412524045187328892481590127451800001703244300303771432734599387207646492038307194158275330420373213472200232995349257064899540841454676611005635132752258171182736410093718691224649408528514165467382751939933697153714197606537608266144845889350123594097836201736592395298506693684925452657347770691707516255340069885976182761162638356835743004931483797650656305824153711384374178869385669592196722704487895198704220245984332767941981159605560097895765535136666773784565383884569439898024638870540353378159958582044180525582457636841164519526019406934155927486295398226274976565948279264348279824169795172987085655907402097123131645668150808390971819752768960826287352404289648059821024222424717045678969008085914744357931524372728310541834603512141728884216168616249171713907710811451177516885958066567162094571462497835800538121281061540705735860442243756329472068843679473834205437654713742493871160701129588647537997649258974564480807105201537830564180786776752529806748240287154469907182913722847742400709896779200291121885061240079573555986806916792407579354398099431251466660039388503919557037624540390117161931941694835278644088529663010530918663704834183173847880824707784097756733957499624641277982432299965779800287556204722139160316563421983321610608196343504321163957760449461456749047268868546022428342940812377180410809660851974636862360792883647033800382528300525952210498050037168854024680769555469193368162774569299648352721442556684770690019567081849356966550797006451702293665650931374232883544260784737742492474213688540943850808541591651221137028616392050610598733950256166172413810016868600856930313644330367563118715021848178147183673798258711530908902180462221809858766877254962759845896131359598462847162212178616331811269569065494529895055111483488564729595244107893391939918497479852667435178756458722922277014932928551922906137581469503226056746334691976152195116818397351383193740272003922951233015402873542390110563917002993081829585216827009089534341497805123023115671705056171861210774485818385094504802263640387239761806761563540693839770813712298478144239670464663999914077525846317034637348641239204167289796415101871261384433072050776320965719175820084295546044915048111542712028844621256569649814836420559251785070395423023636866854323434477695971335130208825566739974253146589721503404569559619591047460767243843459623063718429067646656451519898389229998511391897762059983194270005895214896740927847541846482584303583661021765214690247526353893410092343967839593970674726632756772856149763699815856748228377863828005551529946642869994350435659831340100075344379282864089110766155091260467524474773882764621533968174013390885824351551838616620686461189217386260259616682879326174077005194058248181634148705411957576063390144269996346604869332593091195208219811295848671011889878012109555087711305219584646622736149725308310432202763715149503568358148547935798513627039940441480333327236672199420546318245578908631934166986584560179264486490691956913850777890772163503767655277287911580987167412195022218930994128718323108690338706047636484202752471278787423648828611368081086965754904010262613689854410531542487518820665750090595456469834785033424321929510659667669791178652301222101712618342848443028571567932510158838682612832308668644473268917832191099681005122654064492682871515391537454208628328006118142014850577136166573292354324534838535257859647400856763895714166330386999956155901819675443135744594847799517503085493939586254776784161906650557601403744707470806730174606464851021052820230823924838768862683357204220250635464668278854046583100414541048368022990119512848684239474246270887294872296899228335681363403984918786623500520154282791913992263575255373463478639593378303668036382726818634842423984546684644448589861643582561583374558616452877181761101708307157627856108623695671646318986230542753012364054594241286089861057481588910763285544401857952741251336285152642273376221085349482851239269411125068351862072080248342780787289324634997142675514194862828119531609534570989553703557038913070367826567140442645559795690190677626331294871201183238765022492640855993487663440867481933293360605557580523680926538472942766995322207721445620931346152496824716905710492246624857028214763512608271830025603980755527992308910323780694069274984619635043188623176923891385317113168219844956477531237329699241718857926719968169834079390025521064820962966670843828154612973476522034424909116588631158974295755658212829147004521570044676943790760270152748312839152870397536381164038551579090836841932268876793295475801183385876073879884029886534364557790351301137555739798280676594951624771859791043216085736489597265270805927277542151039334350218804317431531845279814663830296752520399072027403112306628890155992040910381754828598047945986319675900450986621947478170572007178989765919866771583560791375066897499570673591296218932233057276164120394493155518507515332959562795501114390127691719011493087565377150685230966775107361485181671054809868777426934668771043718748228821070182229916206203917533776984570809381838197090112989454475950675440328692827308805226716379806244955133377633134251164307245078423603523779020302553580622106997369550597944685999741359920858232487262010930371812298439909519672237575842959212234439258058411165223529946257361088667261627497893998019195517727321639826745045263120154619969369867279865226164824728988107299763019382637656771362435935787063194817837602744605971422718271674855830607789401524266596366478259697373606782939622938194357894646387839277471793019138202029900339867734161525889205100443292230172843822191033597132238116343633838815334995590927426966746695431829210123044917210012754180032625038513287998558374872277869495092823438584413674404525469554271942659378665302135525904885983100270404757957046828335240837209426544233174025164974145056219235061824512934681339623540739127014709205212330914322728376499030658957616057530437269663737136622880251356682908305516000471971812947165118503036498845467180740203035645307043014310221662698881604289300627955185098903053511618595902869631659313563617624470117163128133981088155203748918175687425389020901747388814301413005362593147558887906795933046356951910553421977474424331817958741520148801818083208796143840694521191659573889359808827466812039282941769913006429134999824740268441934247745528350342292926304510596061436640301315798035364655071724149908300962283624655786737129446199117969335176084146796493991792787757156378674898736087507467160712287140535836029380660398448917219622491602266863179942513695926399280952466265028521861458578584030230035450531410295357971196732357014575219410666790134497634028190943602065369722086984648199562212952519058774076492493900271961211515485980891749293548619875485008302767997988299029675784890349203462196199002147537566245445877461295545092627755288402437759174684342227018597450737708623194193165832709925694746658761129606449299751290343774889037872726733704846497671925643936673411005096293076008994224210971646521690341329890387258759002887827125899794350419110801855794115158112351029321570361131797765640083861245195226223962389968297881710283963438511992751955678398297361130352383458155376277654102227000147977122569409094213266447637739193993391014515764637411837166711121870502215100180400094748083050994231609989818041931930309159823676638859289040319890835479217649804925053636792269687217550347586154807449413959117087468306204036440850711092194723652224279904068866085089473470155369403094195854513443756016802344490612435956199258833930018780703819061177361302794236029108148461367778152074980022416826929988574196701886163031403835662806492959175102776640807286503511249158228004692564181054488342371904885033895967451034187363122338208351350287633030104110015234351487681874802327201478665053438211755681881589397014993415817299711065674723330961773066777419753371816287756088354390643520901092674301062823283282330565228686886160568851231643937031650845533047766569055972924256130592882422336474061390271132409430147340153190178636928354414861384692822095205078625503388694122997515629058020963887766233798389844590159935905611981898424313549585346087423941189633773230076423110384156999732692917288762227380354449178495210558239975683382208657841854192101630310388663752176795648279903390758471810184433721110263117278727854892413113323645230670529080588249883686341221503485403544554735215271461621262740481341468183887152964166285632472734770295604781792954375496009753777988811868191808017889328382751762898472207754706565980939975749110752234682414979773032206057098381452521746629787751928164173403514264605207997828311434729993813898572820553472228491699755118056363303343416553757805477467310141371110287409702421025944475713644795034472366946430451455316336079007530113148188426782615906238875946690728385764984569366375865273585372289845448806566812708629783031290662643972834629911868958882930715578895741781866791139032325541093221007464264164990813687818848642672444377615738966426168663548393305764812962460282768431141825182665591317169722844144035188746186951236571072631572679528718091302028598271769611574788724980921096233953635918137242322844906491105599547917972819056693937731124579362168939840057340322656436992291457143646534754435917569997180063217995137513683865028447837679416065093626811185174194801447952783879681169275141587795166278416847706857531039492942305426429521588494641261933034001704135213213973220073517382432214321127339809682674975352694199135325503336903773459421394904767730760018422026257176513210581271177388532084501662485144406956945438864319459118395518116984562445870885380078575853843468295132856279633212979106527523253648722023273046492628863811072136452132276367423983167950048750222086206333548922789716932856598340442586955502230153457943812388390630360851473124960993098798554757399015796131603510056620475514223536596725742724344418905860165563211329449719825529384399994243632575090811197129394825674288703329925584442185110279901280087526558866770754011391865080625475647161435806113119680330582257477338959904504000164059892419473697647426377511539827964231551180485183176983275801159308829470317535226296880475515091632371015907910848867599306571687139644952265946089144771146183312074997732175932204081514885211243819845255515627163218539889429575929315518151230243443762284734173057608244245368675875316937719689254295779876007786576638368736401898752102588714418588140665747337019626157785908174081526987455309726127260409886197896800461639607609755766660139724535905403289250706294414898536618147735657952774546338296763141226669052131765511872103587799909883964686054151578326865827991396389047652632595431029670208272912720514709305340609694360178979257439827324621101741486748173646961226115003825653108378004151763694615981746543304776980591122422590386240499735532645466447801602517724463425446297585356726328075231015207000521129617479495368276240501989597856076431290240559181765656346327458611417529599418271109299089105209845019263797764486215791520268575926197981463951061952501247262270228718176154898533789835671467783665682299070036560470354371496201801536611406814991790462698201457544000281419801763638110416265196724252112004895249702251832749194770811758572267106835047404390413459366618426160507810650838268193927039156184784134069156541368616520466716545531794682951539100949754770559130948368724733610116492019613939784595920541710370223085634788246536898961108496716891107766203452065216217003794168954767269384502691345513420785809575192470191425462314103983191059725206572415581681063744939101718374945187073093095336953565967103653682082103836492716331509997372333153149509823346639051744040586812351602022275149031239772224440983794121733002752853129647006916887981849674122840828796682933947988406748680902965975008229972003013953120476762982056402913946040218091620676241281291692046850611685549354357475928780227184590160733014812217485114189768834091987963612657462957128012027717826555313390901508599309453847555578761105886532400324209458957808858916675178828277958892404391696243759885209161651737826458137659524817349534342670782602768962361750703479654126589732621131681486295763157465382499925571478449826712654466887055513796209887363479680257793779607857831621097770709601864148192346474263015957848580801861336918253528771241890966214826208319688879280118494988899337119542669975594269640741566492124000955390005075866054821190345346868637525121296389309901617109066967822442762133339305299992444170893214435636853438471210837015682372962119113366008200600970662272919189665939293763596821785922556421579757059765780412604851414302492182163174053621674636482078127132894698181822595219621759959153010895968331592273832883328007166101073946549741810546705558664014715420592266556810122816755429812522899621543741645825562422105814026324006195952565183380369891181776800774830314285168960827682622815213000910329986082618914907595717915971284133475644755275977205729338135669005353454354099925073196070636576491006470141455606468124811466711521903772084539514077477521201500249761554644901308122135309572492508880192021377137140566804434363773240755790992399115566246574457740681072393794741150466911006019927190697074054427244243584799465126041971925808634760818397537236739953395178023211236838490401185390674130658551558400612863518335544394121462764478828520474729134135567438493993334401270406207946640427492010935202381930861441204206187980323451648143847720017622491299930722712600046147607807449015425406727872328360240246616171027974905646363959921530550926285747697099738444259660785352297151886426034082321912238961484780188986323014811069247125281766398494644788335167851035660949836184264951807124319199038484922935801532104809700348263408162379751854180532807832471041817501512328975111874260767004261507342236561113734714417752027377329097789537135574610900112055412462681284241563275850993064225865149383508489552885408910455503190211003272924304203347044757447672739988627313188749123063303146045187804566228643323113381189394629286994198457392359172668240633450384709675265570530938265041904519636132702370340207105321108089696568345824531107630196644268621702592091276020726704976056841559657597955358460723398407275376425598727445203184668605058682455465128795134654874975907088656201183427125918539807273539385974730465264504049352809254285630589924947915349223676381059771940852875566561923453411384454580738826996732681430059932673849814603962095683605022830404450509744285183887970443564154535418787449708991629873578575021062967221578117545539688877580820030414113000143110408167949623876041758595587503905727660551130030885909682146210925031570682820642976156388026757947678979676346815253401470893484110398282468722207768085346456113169889472119380282608428069202126317113101651845845923978541500776884857317330482252552360911968365858873103188531697156857671561602303207906641878042846267963465912181891258729681908718458445169401150423939782706138833518306832511140562377040166259316732665122080149943469846151289486887803072930197142619653003438909425915907546289020632132252260692959201466865230011624955756474729815933444527436114877764210608598195454074368354222307059881805153478784682482078879706337412478767155736153411249924741606975353616591365020462755351855325771058220855315048460776927693372596182403938556765565178270317648813743719722753521295366958197252809497907393089976977615049245084655083190491020144785561707473917831433678082967671323092517427332542475779813361336312260817619197919075538253482112038353945652677276249193381886930101069519749408946614187274671573264639180584303835010417212180155540055413284772806561012323639844265116167809776169704316403826284958639628482201697300703227679701451011758508664399103944801272187344474816702773403099479735056844510703580120387729427202127807367935047929092791459024374725987823897279482970034972317984739205785581230207687534582432522147046265788918385406332760409743364005927730159382902751517497405331687692078020074504605077383447503659888024758761492168695290551489649003562220016367527568793426821040748567904672677470955311526538348084627485274117105571340918990555744134243483446320444881626842480028280793680249234494019075710574948132413847785584909390483073236185342414575671000586497122784276440240084957047093018518566508726721603020021421597401837985229246639400080678933722518146454646417311340709672275433923943519394553917454808419530262541825234114657966107554991219301107532337215235528532019124803232590705931057093759231406107148515094052717861787997380658617378203427103582097944385783848150412957381246190391556360455886973807671827027498036173691162484099432753571832023377166556203699321259465229185676588837000633207981945121025467802825892516516645841615542291914481254240263009250279294960789163010131382905316009022257220146928867613806948549439875464891363493894053021547919533284145289408355124834205197378220329671904927102396075895446074602479663320717684548370830904019517925668839923281091121302119341174436055611184215215610153775666578635484077227016102920929372110215653299766072739953467977698950320102877016909300735884664511420686225032900700078821494022226783468340988814053151702803843875833924879738608787693284499843435448645648827488679207896067786468624360508032063698182183958593375595207143651916867447264790039250248400816378394843849220077216563361671042335220466622915341542817047297228353051133827113405972768630469425611947153250529870821446754558260072303913678810609704312834425289396861381269203418514855433668795384225013702464509161832650464867981148960427310648487453706334913035598388613260619272575304536020671007470947691994900346820940025121499224300870763089166943405938868205730907510399007814655399180445822819516281905177730923197052199420878225661401618843984699734316309463791325139565254511370256978887309632247392498147720739521282045789624840149933999851441639214889339457293243188687773536322741811137866312440135370162502607207292212268064296271219128147553941271083257633300165799217685834373285442234687627934754090802512988739635130434326476441486892651541009926189972734227163600548492170743811402674125405205670433871645214816281820217004896873558480327613362495500156189906959598271578936570569921216817839490011939717383582682662184277601767239783351031799414068328593634920703155359283384141165073533971381627061656581432675451092704504045451585572627394300567338345547480170380085757023388557108426695827358019114957942750753364582264143106129656865119706886119950345833530930699273518432265153194539309696307552285522608187643058515667444700696903773213579044158114463729463570763681429093863353740714317449239893653294198414820475359724630386034183990962367479808561842849335799153197252127015935045843265105023435961692045710867623670277682176517001701732725181933117266469546740020485120976093371347878001959629680650457298667796679987126718054910947931728526641652769642955544611825628878941418006356405342313454945069255925965092808577789004452171737765352917254155103898489696624903748702836393977344986576269861822355519145749524157874840418704713379620071394298665143858400195831948956289152557552308879249064949755605625758723129695762662168918115829234935298633372818773045655614163127849996701205568948328286641202100819070376365246529458454245899018877058692237762946662063592880537964388081087953802961146289147505605327799597360996993536085597976169069692761753372243277828457479538395554213806093797115238358494385396260624891039483968648912403328884705263944678585980802225695569706780631140395643639476156658418614827676271501010537608559524075445777513095948688732683954810772635884395769205591661979653741838267808088853162759650591066365559274911755349687566489124152249851665032144204444891994770263524829722914535089636923593059649324646102771709553264606058320054160636064834399149978636345694377472073225559243605243543519083425491288034635504639151931909940927235953960717371075242450858502670714046177547354624678849892165035674181071449195643249264177669824214327509332768463925333499247715157812089745897406463626544420399543133565071617072977688793098493705096165717154006472194162062654333531563819689047701608786098410185395734578972532639701995238640802621524484126938486360532577459688490105702559516843983306904594116204374748072409517418162885855556055769303346922904554995239511553678948107763547129783768080489578539311437042434008986532600452596417205960755915599789191144708377438459664467128005994887574206653888242029397846529332692733064878200794807503158844878674669150351542396729479918630287813676570524519453018201283972295918277447922667878571939263201910527547217400228803993074413924009533114576417998523432523345641046587202756913899838186116426973743233448614028011809460809369104566048576480008579344566440031038708608740162146680338197610411302354554581111941370587140561077840151635159301050156739461357826972899520984415981639221749364746320204482315538171298721110588476503257824962709311302123418496905832240429845561267949542253155959106124856056808757718986858651358423603626240539793589721670943540833317295696018034152599791175624266139121412319353845964001141114257595502573561870806122140200299798287148355046863775603594144138628652620533209833872529487154122148337827792641023211025377229778525749154831597735578899305232912433860079334767068447652290261676085599514392019397284221542168124719011568983245632417333018055642681110818582364031756925483641082192365320194673472115691686715334637000808211799592670549344460913299455601059149911120477463888518570713671249111395498376732496939535983333430005717331432731313646787757421587782935916014417787611331084974483117095012434811117392330841199282356732936866132971634413544686883983973054558758897520243027880358471333096469052402718756312403057663090442025544632559960637035329497329718269701324985072465708444960494024816205480548160482780047871354537555849179156521136475475480515706792261296679497705825765622806334976597218976900732906615260632882388211619108578116851337824342775485357271950648171821764631212145776565495170525113519605620845348971017449489331116612013182774872204601190875687308840223046252795050667727061209310360062721738530553972494533045805804739900546515824957854045096816131040538834550558973786633197978377695407238750529614711313112616945919568278238663861264074141683262588350363694373964389434163186778302756830176973023573100618934624466116886008729094412586883465233887134308792502263287283221491473733787864802017534936094655180658881928832958901084853713618683123828772234375193398677549927104986987562006820395384386095747690996770697003561503639105229834192168819197567665193606747840575103591631505055896705029978621032344424433344080193509146924789001692693033909651022444133156557760018325612997277920142006281291433470097630985771971787113465798578524562184267258492541310862588350528130205380115341073999034803851752449598631429232974272351077021183104628438647756491719219270317434882498700949521291782011820061261147826086612651134486223565608634634135722774828466756100674707048749333609615548761151195114517753666724774511792550803615359773187443941529514320859165221729564448496673268085860631936628786113800902800867810396170066792177269207498202596213042074356992811135426953762449614127543055829629400234948283208711872339021270731525761111033953372182187703473762729565185830302861891926740365469696382011597181287953102897371529623386251504008633917714324982554623312739681343131431754099723737712241484814777915312791314451767808189041206355592361542393165772927927963692949434697240461659809368154771625434326348891671577957184121364293059253014743102407578168434608841362799026138084566851699211710242080692412152075777431505252537883437887102620196138196761274800499945775087787607322281059427709808376981914538003141169519110506309368197132793060759447599840089096917962495919636577754093372142690731967893674966689144994416260492894641728685346142728213523965261424550947254483643746366785008800030812402505547537797227351532291428774155932247601706565599068897466142634171015325129353606013235438104850872594448138767507981043688838367113533245891098836610767392815514323882739739528121686493862628062972067966171092927710205062954125347260148951164596629748765629209684283944002547285673556102328206311879477282786765875496303603966515237020029818375043331255879946272234964385877914408147968212425473304174914417847265905243423965011248128675832372097637866548430260578686125740453548989464687182880080585360007965388903719901281685191480894241056520525591514597279763484757981814789103551635531546811544149058684930849002373614463435761443931335298980325417321737901172667388501098993858397635785133153100980952942283021283729246427879004402239305973012612489029591947974673036196146986838324495730544052361342666095215081640201582271583121970725144737924457577605768115534259622740607926548304362830233416663381235818223804151833872382755904469000123724750381124809678885854240135804504614307388297994633849176833980098122839325465072637690646870287848141627252086583845451915141976657284308808203586103603999638125250437859243134551781161520389256274729776399226489521911994983299088437849922540139365614302711477403987599784519830120063201763635313423298580952745264603175144148778699974725372926701307528616558458557864523015561013053955471634074118278746248102906732713707987490890344622397275508758950805715897404936742103097419024742311513002542713220680482586590205406472552812716794282817630245818874698632081788498262631963624843524856787327262256971869259962616009723720408243694738739497317076878645442423201885986655171244350359025893896990310674870280837844189276134452561354556714030958738538400335237159074471342512005651778259289488940033503278390352295854580663807588612566642192151072694521778732863635571918603838516489257763894520520056012349006448066728812198303971828935535738640210829859768374903469693780856676026604773591420041026198897345346411613765823531120906840660235989791309390241661510149906866014842647946928961295444482528315550425473600387894739053938002293128205972426800236473003113658028569767873452253267424219133188443171494610173950080477621015999934246255182290221514118989607668265485907992610169954332292840488150491853211071047978395420551561843345899504220048015566813720376925371708876277874271711004006257148818957417407637483766535532462688821094178267023575692311251545228132529150844203754790076511022561847770737414395750609716656741705137355244447949763205976597957369999567984849324169480802573265696551922414824003775846551054301627724907259705002261220970493290737690637904118241086349154103479038430571656114070124475686189687489623821948906623910640592787430227133584323459907774294514031318795571906080486441024386634295912909198065901234057233969885349674540126224211793270984650013053114646893023254219940299323938428806051177367155478626752857742436201965148318605800828119518410752192785568518341993206371295307313611498818434291232000332462633762138293183834609629981462393572258847421823387177643871936475117967343511218715536621944346172603143948334932412771188096709848427743850185347012330184742254096675967947753288514385738142713026072094635831501724920541886431102311580942071706011146020817557539502030779548500295036329801174110674363380209881832074148838266726175119913786152744722908052299991718086947699476509056817657051650175492612275838680449010195640103480523097543337000460144352711029580277471296191868683774149054921640465186386339226618637225349294660627813680263555130156516590090734672235363490791348321059375899324981201273225003427285253037285723431063410179302426802088699207605501315448650990518994411108555842353262837980547887382461020314894425381696042700780147097165884646404962114578156346832099337779779329121962370546716252713582521190783458082346704765865181233971294667025157726011057777106459081228087489612309923719173755754810553584578990208959649692424944618382093198839224227836062247670820388745907193770259232941696205597172695393143815263110177011882086986269143507381028255702069136888652113559384052105002205272929184518759092478139209147454793091983353828786429515052015373288586305213329355308319898412388400440342777030979013925296912955989862096089870122487353767217913656703370298057904623215039751576813661717249263798409032127814613655220186484055929387540953191936893569970952627279799208003482203300196327433989493339257439213555942884318077692023191985250634328439841874237914931926055003360035814577540392799099496925977423329559359625754021509050822005566938851673668775093975122585777750851931012923772623159372637743117428263077424203710703140301371752573433011375308353598036488313787706120048760480931738223678802859110237534244439900708230469471607246519083648314131330934579541995139724683840146039430798740996592586179136775525472776371796203266698463496252286480791899550052526123670336116628047166104897628501467083287439477264598599475840912013290024072356695314878362796692734611042296314958775142736629530118460877869154574909691724397887673842637670455200906944359971869023652017329067169572341434725589686636438461663704007390365815545650944029884389645656000078034872351673164335092265796214764229014518424387351595355518366745751681782487049090986972565580873585163658195988029978670853453691113971081238154683752397270930294194260477349901956956612840460434782216631285400397549732987084937378213794484891082828403677098196442335887925428083194089687498615850493059690810539830779758258831727972931303256817404999727420434877104749585453715441773174229227049289229197276337276908698675943517414404515824518851269720091684965366053316591391436606086073451329679169000214761153724635914749108659843714681683276488794316181610094134019714600875677212750923590353276595256778160882622306115042226083910164723000023157431269557011368612663905519417808671236842337236933194782800571083310071261353863588716830756288976923423574493096549802408793961472294594952662482147385564559757073522468234192459808003228040058496015957173489682777517344532569682368267192420301519310600311013764669563581038266680079978572017859035719747295026774077534093407324831612139256612992242568976260840268357517671756184347244874500168263025306135118986196313846306490935074502559802599382592890779595919668250475849651933558884449665390781890093494869030198577333923834736112691389885469470958678009821154768906956438764588602474498623695516354000123506057621240072858899889434083171721325182402483357564303182597542079490142083838086575732804438755231949361607180906115053287452766686226705721385382282809691832580748170766722877995729551119549242848964228177221403050579945644755706226014488083143569742782395609879426471557069994236114260096927242250921438962259898615444729542595125812710091603430641827170989195314371902368058826857469839606847414879143485245565139956780384064297795495476126260454988157266717557024102585191934797164791290522278801887528112365295862323825071548636920200440486682250878751283216294613181998941053989755440624096883546023946457857177256594054454268586547639262766536728249335849703949757307765021504711888845352585253024870799713408174278734581664234334809802203842896713342970815856879885757260322139179653440850067293105755781383297810042133067853175328445252208844289302798072249277206286505229820198082891416602076698238733638960031978362208079842785677028502323969407633460810337987752863499502773304755689480854314511852956372679117969271722036571774733675527270953375419931197705551245295811777062836959561514274918404832860026556354978306960497086840529911824273362661942287401403956769722188790847041820602378972489976980513868354863547116167814545203111584182393264222688103819448667120657883959034372558771536553984426388689091565712185403985460896497453026320295300377643148781457877480076573382724201936796189277176410969688415861744920765594569819508838976504047982625004596308396028449041676075059125623581158566896129709882932995803754067270604819554321615165249062042587063936330123992748395380329339230434268739734678416340098044456679257475588965691776092814785572497992966067739044990068285409618922068414705019829469601826623365785116928682020339201112532804344921275471578323550291771853240764437242078024734375265344371419993004215041581975556833560998333287939206586027052420421861192642809695658498359029372671600666693605351006684864522666796002298522730642075026570469942894608053556602269882058038399590415735674327052481546518007796094470410996028923188748382474710992750011568349259652152819449595704383327431294577121800068724038754065817072258741714428893621864334034928553562013612762329058204928089912773925175361747914119341651088865257761531364434389930930477617951400517517920750328695043697165950041167411995826759948222784818988104022936163281424884630366498817358034422642766956830689676010117817499002758724870018879984734745526322010529615125863488568551785150642769276203622076827137717512789360710733111415013995834393073018165950915087914406719532596948444221064390600641101124934558381464539469797421644394067597706067569700061570981774684443528265240205093907439641636231380898397784217640885784577122082144368571974283649200052237812064792946076907521601549152977124248729022509122126476995131946511344717127547990919618750884755682473991609341757251567294947309110340630535708450236818454946746382537393102083866291379231113026177728441746692030195980185155746395268851515112794898167398549516735405986354611747844969847003597284275652992176946281623973257778994710934971701661788224959414660641591890132669948853131537125877991852295210364010982329520452052073953213828009455916299252507724332064229958412284652615316615961422439178738172078347068983561238429201792322440641936952286135193433507381412649334866660988634463496050869585914021795578655052887754506338465726895081806636176261176983795858538782157052470128338073056641099518485379731749797166570956036680800573494626114105250146664831124805841760799961980004041276327865060752877968292723369302748732161163821753831412733753971070820974643733844641155489039423304107922399196137057243736145339181834872696563531844579492318862099482904311537910762460577580979557926576571837121077543370543727684198693925072559262570436576448524125326322490016903381748793195538188660180978195092546116822570670938818453479993645848968434822442501682249357225049824607618261231456973944549413811441898168092898518838405369699196920577690133347288263650061793860174629754955406327091091993073840833947847652232965553500678166715372603306318013256331959462922190933415953019086994290221490434388265996915160401499173580824519180437584635698299276626034724780188032956496038166232445096209186538348540602453502618220259456592824080011552025483960549279000805171192100003432289455089730654685075608023111451501504743601771413143701655872661139333286401337002079388703820744526362890635926936931349549806120461102863795541301297527158182262099387599347302058358716288021451924986820518246035014967389996285844938317121797859037055117319491989120395115116833981911663506486707988496395053942426580872915958249464351373621271247509199647673171498868563931602812867063288035588584398085753992857430323007687577424221656943713132970509715381257043605963154207288486203326571507719075432212447161165778820801592255789759504931148195768112672731354913295148134670184702177557279603226554450157927893764818449963698502295259154910553174649134635883043002384870045706672152325106470778359620075976999455425849913932140401188868562301587934509643111593463728434120639719553624069778671855420720134840336475641639022763181539996234132923838586406105528123283676355653616927884879786793177996783662500585210985772775142135295011681239542191209641423766306291377661444856434474099930742114965836775796446143860977457655878971599442717258635298671340595901503029113168038837858846903620001226276385824619229998876027322414304597211750214113669699558725019621295068228023123727165951208912328678759538410630325233914622937475333454798162424525773094557513617730448969062274451266341016842186748232821599051422795761751155109383621568105735179354042136168961694750296720923334621950298393876801706093949027285185061371871461839471316823795615321894475578996525789416278783849419645910318636242588232744045030935278155991904437984306406626230763942657369182681032242525024594804826197394964626509316312078889311196227142258136807481966155007328706967758899926278246448547030718214310586172321545032713829796584714881009975191367635333325218509376811410184645437400520948860309827201312072829392829893244310400268108156009221045725614708875078672260970445286377439406429462797677730028036561149130448609446041711573921947663569448702922119931960923954827762509993836977178437393222044507483084137005310350069314182312569713150930576182245722878967379977423765120568029992602830991091647773340810238408831271568772651920849578587432047528059961698794826698035108682882180121848508690690880227355491769359426425504490248334738374060692459051439662333164709703757982995114483713645110568198600336968397484628186756064097927856377757219183646384379181309282548520708233716814492664565864992624505654875373712546826352062758853821154875530524038204546865846506574081844952421693160654320796023773194857825540708277016334002465263322111655990658175582956141932854982226123027078949139301394714873728435222857931796495415141411886824006411633400848009994056970707713686040909688148965999799838675431314028533437819115592121466287588622845751396322762595275326626489818001110700138919401687475552674563169275380559573722540595048403527926172750130574347342191897985517360100181672388764747015984416754826725697288672600470029266672828964150129099319426742594694555503660221176160989073615312198095526011851277713829098237935904467647609814442090816567926900165374130273511397172689562623864361608292493598251204913667163714652019486231284881123960374826688581011343387511571763977789803290554945090302522785612712659035344816335372128827304187394819114243716367989749506963969282366624326000605670263809908199398001053188790422207274216199779317202547305898140015193880538277356011330285302769975618163248656140962404298447132011136800131346992054612369629823928066847745346083494094721290539952404722659893553362868494833795586562757686072715334117733982397496921359619285140475580916542559420958114637556073149900830718836353910941533643084313751003687639124195463869985627686713985118771320677515140137251112454438788157138757022983567789761985160489461843373103893701599470329405864612089925133290445628438247793632189410539669703280621661697358614433727339769656184855702462068101839645577408820560135689151522016274474013146040410881942090222351061878231645175162221794589911955473845813694522155274093845884407523793759855748512709345493598276908504800293057038843776812689565881462236603225502491606173947151499908232983020555616354209199962107324904040206836359367800307614405748414935438946280350120958166056354563104469356160009656224541738402050161162169454993000762327148031182122574996946439855833615905428231807572806012917888818052986265514087501629502608149228047263521641600711910495700191119070288012770835037362192703129129421068629146035171181911581216015140231367004163604029933549212675101620166573153423807365413835221815146497984305299911122096176003985281973976316118980153666116681500245082021278666298244761154183189372180282480961199293532296777397678006772417610084107689582021619342647425023301625382298650413477078360241884935065185180784118694164581481916782408792816278173607356394520004335283239074292878185578368857249709663745997462720171545738426484663569434316857454783408259149048245712080012370768581048524505492486898472231678204669754934434097893066882707972452610950973670927680358863378414616527837738689967108458010563631894268483030017717097803610671291906395650739830242971371905743057620784875297364043089884450979227675031126469212150144585945916965819131502535216840967500413639225855023315139603828066651091442684654685132615552129292801637570926306066568199536590097978105818430101595434498700068673186752761042488900238227880073534254022362314139065991334428521049531337122821046730189282960741043907116529481561277143764524861703634162645352053713003751159099493748801012450786018545815514454055418360639311256839352578452300721190650175118504634234153784018769384264333864004491904157550978869251807547588678216344490485927526368605770264400332070308075812348619153032990222567389056255747299864380597750724422821552908074871580907937869882129779102969708491434975021095073291444404293019055493939308942520642156059423592442318428047410306355266334406985944376597268151372807617144732354166177352548726679955024443259929531309360786403120088092320929813695131546800376649032958615869803851854594447942724121480182114399256339908414885358364445713971717938695555996172436140171032625096691378639425033626718575717558040037887824730919089834089183247789130355079474802230560376982501028129227336570599663877105355568187919756568891943782621912152816325923578745260037537867960610468781972992517686118059912130642553311555987179604453478433243895671919821676693038828281545620265714653456605958447099780411251510603836859689076758463222704913874931137252809113457212943040723378800526012848561848305007638702772877736188546512865136908337720576678400876080393708345455267704587808970803509489598056014300214466036450273625182167523596182521662402579031154864584106431836373528300031562759155635480391535134205143796035844298138435241017996123959727723019358555392132713988385758919646956929892801397196240527373469135698767809436978379658282643887348167768703828642060577936293130945542270640608592563030633759949353099897608992648430914558667063410435229749607216279650624833213420658652383538581794938830887887039064755070947849468288660977993528446446487761978651304257499970938462855683891293582497506862903806590671716259852912258494606212940796074570251201999212495031424778508532733301842428228944186237826500630539011419129766945391760995763983083152388447256040234869659828365762416193602047153997184586762665730364734218675281904659222862261120768799723002774830122296206536744432198671628351082063100420507670691966290223676201640027037621660234265762415809325182738308066605143176842380311454154002586611511892635234763170640681177597641438093790648078324828963683521012088143581628429911185025077558744194584039828141785418446136398898084128136561810568161006509534114459178952150623478869571460679101280671592860079754836374127954669521414527491855316201538764706130907939883599134622478201925014605929370168114246122286808165472726609547595192809459399013280613605008061887479953435833309675515771187007422691373838336704253110547105493054387657397007114933511406658821865905612187027665942622307711713494755752472860024197406940532648733410805551126022068373927898716450961887044602781606283553139829420732553721143539089609553073140111260191552298476234400372950514915635862370845592770450917275241630516613241186458541436563446437983224121208970464771512428194792562469687243176898991200401498108139574505739656802074481164988328629779016701524928840087904605651182647457769507118277316921335732785654475293731234401260976371298596719771836806994780699790486397161280122580078416704907025404380165817147191315764841201687125571504335327047711335458503327500797039790533303607592620514440827208979576115964995930313862817098451180204384474242948849293634081257407289847796369983306558485011050805427275532380595320350046174898424224948652098987495688792673723723335318736360307890070084340689488387169748899487254065782990219043037765011524986634162934520973269254721607655188674489375453258578978194815106569531802407088138782660723622265413245421507280617031541591646669943866085466456182397817692499153628433145949107303386297298490923146499462632564328661459738105534997636382578519613014504775118558071377578615144726100234696943069129140521492104072049798987267179180385522554610597926847916243246768923837640081123262465661641331001071156599595646977866140464345096315749325231294787319360930016294717637047344133281084475620497921663906742709734398922845256321693835466372618166292170623120792742542048506675998803004167799788561272455595043871268917633638471438416500754425094771109353147436935046149390889539159405552572175378354841136292931842498394726710701113423669081188086660933945401201288441159063840797811572213271340603515141132969268437719863535784060253996210590539141830632009166338028587851217984072648896579209315553159302113896730808210563068799117303469583719229390717182891533571645262507556118929200338068499181388260155510108480904502323240743211279174422215790026923316003762769511642453102259608559382759976804872391942279171163594444232045348425430392819581682775940842709412155461175959506778612874088222286133513911901984955919318896232655902821601467245702808301602532698811818494683109996269306474992971666761273660553946785704793706854853989752832975536560941535585986777209110279972634913675981519319582775978134018310918111029930549648891035135432775366480022670075509610339539332908793810820683994477079848902798796045463497844579829154413872334593034571150166911504634182420846842040684194897402637492237131613068044823969247982833451611815912509060234260984424215897374696292026798346439944402804950167847785126879731216240583246576241781939616004782280448006154963707161103771148062273192496679419250793066928725206040196573533168012495593147999073332664158217159932397431383530829301352766418020071213867395838279181014323015777637532435963857320882237359899290856470627869831759479353780492427454680317829410205572973925334679717108961207715394977856894346659782584126752197309508622078716046263945822897334985290593742703925649617928777626289136931614022245508636326086896803877495206582661206426795492552746722870903679160354329947023025041432253112143559106740692980889770604528514104084817484153875848816410993431790841518615952343819266767593376238060358424365397533404863599694903334213030651230403673652418626409657500228298914387550480474211327544236085146320042833881708477200218479503349427289593699240925964797713565935159771750025884009427392111960628907694493909488645128739367824409341991309392678022310129533106619708183015524098421760673996044483019516929722235769262952564532326177743792004620544748165666140427932091592136749479563961609469903292160645440025590895024810459138176576453285046232766131801905206060359751795391656666004841827371942612946034139194260169708073639490227069544329235396620404675049061552276016656833771203329767946850253797266987644373565754402216097586352381927203024725761449270648896548368640784711544412906970892721405601242693415306635486723154092794440555174931628222299636142922644701340620210156094348009780902519512265407704146441899276689855875973100091887801129231984125376088286103509524709639480316754666460147460190565169810465018658078259011807236971559378854629997324333869046840731564024012411662822093746645006265059785614075399590753294210281436774262032817221147512535045378961764790387299159863929077149185912771089368153530329353144302578859267154950265781120137399022239212436678616883734411249733209495733946963919968812132836713850061374726619595685376186100834610969958797119169944270752659487949241979424577682611342671449942238510354089784724443205822380988818748709260893082699372811655406662975745589948446364278307036297021606200938941952070166049339145634966695075646484741243503981066315111952342892179079281325843243448388523018000197187263109053206934817925352561012091949162433165684938372958705961365322876110794760454627861379459083874118742780778644856282463643481259584507218623344387436984879899076191975258260123253253195755442575346710821233208167272703091789933978066937691808636542119824604661895349014202212202750087038331205179338446561909392978631752553193970021736210762246051592492018940389039768468598790353248760455617279622933115187834116831606931055696840528297895412384287497486020209493057572577264637087410776816348886555424006880534921061284800575425301247705135178336862812657138902253812012577995789211194275272676773890892909312199456130522259322066154950765534116251610287066336506987430308529933339442800917055344342578778436935304706905110710677251432154883862410979306288547472205749805936240784723550469045846056904150350457333411896550132318569227923399621987131580014915814491079960245266170022042174166981018049528411420709706156921213315134597945380943676356885521222600876752348234888237098761089679353189247095102851992845455340913057558093994594145000836679660783344530997083320950862321281806290355385235221909008842938839668958351156538879538383669866145481670072137024092197811260298435503545801204549653125924407656778022128721016460613106831008190459151148334568902804701828737769835564493520532163842791622051528854904344851047926280281258430973461691994223806170484496597230707136017160971572712906686996472134010909759119211407443759185676538965538477990817081604188553817192728634343365343880972305057094616799668559708103703130944461345497886763139374588763858221544979606129670785380944499719995742174450644696254148649262762601114698814823022554693183214788410284498942991320145999235177722672379451555077885578737067957233087009468223654977368036651680876200719394111266836285870673863160188868102771529946948367336099515960050723806133557874304833563284569323829179399271671705860625776241026866251344609043539401515599169355804708378514289614558222316719392456841886826760020912723124498741229407145797109125243766526093162992733859238959639253790264351661357586611454741880004903662334487468085757346256397016191086031720530489281291205949988336335224410099091728214641578551564433092731124815298966643902687242728656506034237673671203229627374643110485936337764120289256421774756598082963887943456734076981117539444598496791207076025378863627258532095389386148982083516928072615195542114272426463646266796534642126927771436503115285432858515474614501916724055161796144384662849453681214106528347852661377491639366770824670202441752648854533883443652368166278297131248939852306059948610489531794428775206511901349978501413678439204523525117587398287810017757696665642725021321087763903727659060462620845947424228760647011846962722291140729081805113506215657308735936888597487884708155782349345824835007419581775502744845061899349791056692166375739991475706709216090879591396925911278411393014264087057093498316157489086464893105169377614312206748343082364895694076797469266800915655684109866458817504685981186260238634740664884656114502645119578083317727751260849982649679339916029463337402073843361702803459715528064046472372372247312007422582737016205170814551490318085361697625443251426083378708204273215124117013174685725089856010867643447338957000841844831311618452627950042545947042839407286819006638546398069395415599907290223955500158676348588939331789550223720064016817770936468796495663185072940496493288195040931234452383930470046442747634759516770208729671044032512383043557588372247852878860957164466834872356729489314192141440982946771103712423692766402999087069269319417945082569124616954248282243106675586188312056099258588108823432103217613324621434955856288245762674254044980090463072827245781427290431429928623792520380502330866557632123081644654581789040460642298394598136943986860838813799766695044279487560316045121511640846389324529545932241272225765324635673991832202032315681520051320636158934395004211793113975759590857768237420697907281776922765441532631535625405072917333099511252812845655262628577839685161137314418061481496989540410334123555172712090178533976314712530049984517870228359496115601784447079344306287887650148011178804026168473837405983962404407792343619687475829439616699866747835159980762793235696206788161009608854806569712247129541986761684079804925913503999366978314714358085169301892598098924198728653450966944174726746644458046491662368597407698906196461437123804322816816132681614402933095713024045365672242725319580980658872699805071394519271778399160556167508945841880652865566384203225059469040287894056507644096440567873756555494061589947233124648242767568609409616548972788578784273416659849740523960777995692047479769976961002076032902641044815465534791034507939921994783138931429974383753451297226588466033954969564132710692910457288863224892752908082311661737400405999429687964800956320051096521956299303920662556080535436990921537148872487131549838761941680458815670399254634724540075174908803431463588446018368155006685789448542544032507594793801761220058987145311536679504309220204218194049314587996488954700665336983426191956352037328330685701667912701665310867166722628017609701280241984192693408149126074611213777360158765091477904835336180949730571771166334559393626258032027538199872928596367695839231245773456551017313267940738271934682334757449931629450458647159177417326599087040245854321230944824714980457673345126128900065821154767371532400093272243272138336877488656357253817701094505354303068889288701469757256448055098410640191838139912041689303365191850247393030795833307473546267628129302758471318352266301306743198003572692263274410791429228242455337699075487379014764745053184870912459176008404994894495891331363203486998928832436568532820990319341416198470212924084142927785393163803038001512854810280117389029779446902506967569184209447238151056898243461995297341432648768317802677059197172324961744804002241552928771773815934485543675237316477896855118097588179786343314332977082111644923101274847671596227129829664883304214141234360847486817891166371394479554852676934371319433938271427202046159658362517453749978822839574873506364636830282606036219990317359559180700948484823144988394979975692400235688405335855527807078158581932788133683220459078062089266483676663898555323392811917828936984353325904921864714385073071801105812038944081516923703473850046766182221645041843088984463357099563322997248036369806666745091258677029486886968510576490682013757652874487518334837083241485882016742062661842417184693983149212661629388427357480883137322391856455376925320446343688376916719874149467485413009341634968431767563934902903116134556200678492027729591293710651266874590701144044178529648175243506082005547036837851651579905133008518238101647119788357013849466724825810790512906695920651179307911157109664494536426073234362201424209759124068907727661641303847793573360298586490362155391314955833308010986474201088193501116733627176937281863679437404688163463437317912936795314158503626427984625390518825136472775511483960471714471382428830632417688431390922220001117724801672675892164439236305601900962028305347168175989497331039847874297207706766204638589214861763318444021176801767819400049177722729351768074193253928882042293069107920144465370913917519707986204458463750940759239845410842329583354099034146582266755020602827591843204810240562019063407245531468629793245652603042231915865299174720704453232475332299717104280164887725279122250828944068655376344772414632972056493940779617629967854059113459841845867210453268450128279476044063991272465659805809354986021549149864969369696740594252037780681975853720210765727909577041668994365563890233749225166848483984015195757455422751611534934422016779951572953893520841689846822472457963476929733537233897557239189406317672706082856410047301649480545316672759827452252480108782682008184944996392919592626135802121191284955744499507590250078298381334095628690196176191459424966549931097222862378961310945938886470346053531693766442876289463786151839883419703494491068713153228527072823626737143589474871024793740944919718725413252927954549291502954600583122326185331278627957372292983353788616610248231650063633744307499255667928822149618912787466235067171085993031899604561429285687725590222618883735751989938575456715569590280978183340380667070558635973284935698139760536960699471543117068413963092673225184728595517424917348524288581654909133455686394018462290769179644668658263993292836974094598971437678333767603771408534001496135760617941480403515654773210809402998754551877667322873305917024353023720959425848789286304036867537940470124447605908868509090126478813857730418228978304729354236003887702315048769353129883850494958366318452460293910066913193183852800381373302547805391417820075604779442064324894494179309563925351929091319261395811052131415241541839007363664805407379788411464785486199007888303779143211089479832139533320220789754305697664310733662366533311426378772422890572231063522669084464564246345643286296124187401214215789649037839394052008085842111741377248056491429372978115503144889598023277254674751824540357612764435239418251200402241671306913885960879817967707015406562528202615468974788971808925669410645373705643749076772687489825552425945016781330605224840950442191540538672565983652067984515850915448869774349327428603503601785371941104315004985014591071980585184846174407280289005712650565096949011432754931171206616016357843251103917647893074915392276986049302514754640657472265970005985988593348072368662827573471135674218690709855140608801203226698555373975087570051616876067433840953097921950758322018665731522787099121377266374971677905101895791563223441744395561059054991672479342659930458363312538871064751832213435050596699366431646449012597893502689086611265289898989322508299220429711280363858916443065175209507372260924693749855157975689754275983198480758543780859804535199416701415328402608480912760488597981097552006909481041549863219809216447041710608941438909716597877341629718297591396310475557441628147747274957520266824564383926179210183291919571361782397800982329094861124567429610889590528050942738136462715861212829108213973295555317671565185588630164181516410010330097911993757361188758795500842058535770596993660672946362229616120402536253133225739165243971370487602501760661567012133930213646443390167142985910428570517759050346084739989065462651370027983764819628938266194935829308358866428562797439379433766531652037210548256160233889454603290200127621608417265260447177665356408592429490379892802952839684716674536013922215342524972234683274439414876085966096368164101125573478262247706579066825097509873520013598038645477656495987638316799932182578102252036973659226245712796531504471250704130629850988719510436459224557345558354152650225059760761231328008196337720305218371066388601684728364643746047918035723774323238048068868791185039009275135912053816606200884282725178585852096591338444192911863434121423081547367593950691429354395995815345355354142536567254938407194902464067640952740787257327568299458846550470000167102386830426323754344586789712528809805596794311247127113051812765443553422697004420481750883507202472552178630599228421349645677759987684893702784298126037373018889960755872486243400922106770737653313351739265300357545161679807646777377754062632875252644254034491422001968708525311803915514480489482237152328822038359108058412446741275599018869831360686918983958508236617995552788554164123264790645691027224291585137837626539699016951063242840080204278211107979516111204881700627316110118251806874417194565584899425302411753650942237721060279436014178927128338478737645993286720764230101152234596486149862333995391224664440377986828487979045692771267904841224683544205883415961500914534472362450516779169692055657929955180011473660157943256530735638076415327405002059783541815893406055542188149194175636368629607847808423968659454495224992177069524678369933556420855522157787981745044096397257954687055183392909060395917299844902568212322495552824717270560478189103861990331867909010610827467104943606994779598496538770933302737543386650687809539452610664229399171162084875976668227671407606705632478965405006320810413251274860199781079245697498687535399775182546201797182417845148294587698336396135325337767863085350114512448693710661391881148837436772389679413428394692431441246018878542878289365786469656792397438586166807451355799530941901275114308966933314819679028315721809186031569991605742195900466273894659069134325308335294145523169884333432293033962512939200378960209902243839564844638869754075823181164903575862751715491150482283879961550494876246174008075895283254127536729246742470608998021568896506156694715807971210937431888019593245213236334859294274137843581322808324570059356860454502241658239843438589491998671698540569511180738588628349045305094462782370069297367798921812958218693307131787450041524580278840127376998291747647366338313799675638673027699784905163198117274473644105468697843498203630924330829846909594603977695088942118743092601875889257019160313464236669574789602744031218744858652044873038627783829491721955424262506150921889823854277488505880425016954316698049225613239174779679591747512651570345116570365125631930652645713496476668493114108917978875482957658416098635413002924616304248249668676526147695634682288698783740961490478875632667708645736377991412956912318130835609149508019117247659348880519675129638759205960180731034334011486795202638526398508915146163836363535203395553675242748424116786284508838129245949637783585976074238734055831246590514130540863376779592290724104575169771162693933181440886192527020725166603219357914181730956828389888000315552723967172057415632675254758180967094216390480807709292138248086643125219682911157201093467561816460048929424089190555078676593151100759235535319218989854218245603184108529003647773216164824489801019231771512030739473941503885690234976871907672290837859143378943183077867948210594868374758618334513112381290436622365650103782504693740987704078551294073355254883646326573202458656117406453361833317194692223295191045230722189334616167138405758364165576351727686496704933207488433105977064092876124675156483048929940112180912701047845658310768035156875911944574295900338994806503598895772062516672799274363336491024184266330950459119168169110010001409267093233109562733947662729321738663736239491617059237575005177578101762215095769963638440031995717516252703919905584442138343224079078127904360172463721208733056900746500671194496484661382845392633934275694746357581407075483556302049001630392865517402488266184878385200177922760165720702205924275163919258614224671361240151202007787705160855286606377565043717423990980531394022907315862739560542490897095100358441032897843044751243116990870485728215184581367382851613614252807370560218956068307244741613493980570382725883406302705298280695111047500125760398724779597238240448652733759391203272307738272131791611474391888124815251020291761782037457478765452402541163968491058971380258993254986861815427298148114181264040347277644871456092480669833090402117984494792419740374565891864142768296383617133817457021768951425606352626355605346287218744296366905627789760472108640371967933035214350359708473569466499788425224745437235290402279912071494967628660781379268737406471862362970885927342195782491455390753496991215728845502041940659999849326138920836413956676465591086157629811762546749653374977531254395033048048688329887741271925448499457503339526971682583514503843440482428673533688796597346122054306553273092102006244613957107130442862947624994203919116273709066608919672404982476656346396597005612156895439261716321051448776147472945985641048613577199767252604230561973338873362187966759660258511358554576524431387531161514523935724964712186699654421018300252186184269035545658621873665140049398602015525977103237014449386211809728711119886353908949380614471000497755879079780828421315828705043878199020710222622649785125577750020848780792461823111793718179133395796075667891551111845259326979500770688260761459074200575876086345845405910600925600056238589825791683848818485085078981954327415909721798870330008894806716418253284504148012830298466791326641211333250722433917718533143709866465417698001360488161531994627989453026919047679351759277937407490759182787175267550301994466160746796183432255463181748524790066986063336145338817561208643449073483286536156157083693562603342468785357892785167875334744526931523246047186732705318408302990938996013632232024876963564915615820684128137974184718133505404425030622916210221722506900782963669159110203009897183108415505974338282455042669451420102066819329621636154134546758145602294627709436213615234002332346929230976116894534536858844709759989700294558299230259473194216264108866432383454395407573799971736197918493632840081704282575343870937987487466335281034901091162384030583048271424299628341202407087468340231887082171568592907773631416850013245050808572534361464834737922780953447496650510753488088220020721274262915037166047673920405356261862657203345040367403204226799560665700032154564855836686442478414890930690314467884220242460650522192184778977756438345324092228406837963504680125459681752039821021746905793441943854130358669004857085031200233345474093605994644381175325785676378904396559298763377733428415802836103076461388764001238319993941353711893214717916006042992967507195596907915765555744183721766402155638405364831498436352321067743167668348116685010926323083055446728378168303672368345982422149911239537699499594190856833046983580127202742187781699166009022337838483652433709309992190470609089585128899997300255074717992782426218913526302533728771238140582831049964041467679200999645618949388352170867861002047251846287021724089426174894822304342435847208855374335325832440899664019503749516712681313978566832777147218286194931209325944312675234244925713292655420018112792402278408021955491132269076996488684737641188320934753032890408824209400432430582500591366626019994855609268460329566968994741535429087009934965086589913596769604143330550402319542641053280744896037508385422567967537656100961932667548987477270177660746796259389245016583470441159837623922160009433910688299054488327132659626937336514633491712863934833034846017912948154628457602734404410692195745204317546482662220186193813683453999173746592648981415505611370434685060117883463946622288213669387322705497482289142331395435254679833659820411235364710230463438653965681067055987921650938612847587375607750183213152981046626956055179849183278528352523399257541250988575991216750701991164783392127114620889780448342131806505807220510248434858068795497847389262609961106856184433886530780765831003551041352051864109917333234899626125364009662775230971507162181093760351040614619139093773451254477252139814724802198857650685264791578347111151242790337904131366285122238558952022428760342706612347977917928164192712869639142594666266562328769141401201094756882531477074360382203841179890329721531510253978440578912088237660630374881457960175924794212668689926039213933524068606174428327568064750623077639704526660385018442576559167066246988529870093357074287853272695242021191088397491801959968131083427645525125904364783640076607981563415443424774814556431330896309091630567409133367716488239353670062595883618643638593994678718544792773857865992419141133628730388005697068530298688445317155250957729903559352144795495951495590129487973974716807104291133069099159752008659703946397353487782101671621028018427595183191238043950091477043696935412789381700791220542190814578147499815449559615663899232793747982868274381173130689919486208127702803836814524866763960834893343384186068252766254053162660276384888752945243367723061442242282380130269649690317497404882532877996786942280777191156128000349160201486333232286548454445432503012660176739704300577621984589563153216632347440067908826884630669044229033347835819316955870131960976466347488980671627140447519995100187297145545043704808896987300995350082313289804048463357731169708665146093766803188582436380085496849626379891466858159772731905322833060467573736720531840364777946654881588233083923605018924092211370581116141539364896005560819304307226813455185692715554450952293641904489388078869487145984667418898576177800758589130681025760052955731299064774458890258779680965987256625516730432930040526330231888664344453682629577863679246370501015631976275400546912509965374370349913268558049636920621651960718425218880450846639764797287248579994652065379400494974889026758447380955238629028155197434943988665785899490977618479600224325940861056439385341184603787121022179163169801425346008114326763959440941491175777228862484075003296902985994279720454710408277137224343836596026095048034983426096669709291410516831037340990423635243947410221124325454807602072246441140716432783376666123307603627847761144551269085690414732620246059296533487454057483873877580800920199198159109917333830090045325580764557791050933891342154413874662408020285687665263544879352758067519592872357348943464345352496100543958507527486628373972797938578471074380668583870095444857212722947302156835259992780578718593476605694644123638140858771995053968981483729341699043052052185968512138589910068045303296079865296046924896248717539254336116751487116729293600272234360707021217616738534518210437097949179386410772082823504493596036398587998005261470897726364298648207097713631795640206080491869110275429095961649683014071004518877476931872208060858789208580296766035485069740842102437509646588788043213443751257014836350005468055924413514450261945316101213486151014609415842678145541619250508222765674371451629685341158435598118958150760783907532133365121818274239563975620456237026195732528616334853860636688017762440809638361397195040859949628625147695812892078846687625914894416172998288494788351868115541532604201269415880568764770174682924032534854181023631996908564216839871180670872276268387188483838692237385338048222806263239788628314051831015389312448092334503236011761120670645910176758768102313654191739050884799703159127242988279652184034540551076470925168852490728610651145002909983566499131882630788263278111761529075025231777654959095515231229539742158176921006399993205947526084052052881344516449590873834018225384917772082520590938178562943817145763500975482943359627141474103884235192912877647540812791485445039542078465289397316892657418256051261036744882039049208549383462563487823211126580091142124002883453805348124355014789708017165081005363219297919630948417449183924350502382762768737604008780265394990606568957522123530713363559382801513032399218784695966021364996374388268878377968658544860529706439337600236734341110962252924608932128635006835651906313202860211477787741551084982825729029218729374585286909810517470227859627905933120591605092437093365446779335992325685588450252388376195075490037975278761855834766478390904594543609513757131844727090427019007877068261970035359210850386125914006727437583557003918764768880606384762172842415642286227182505664663067199373517093972541805986864978253069776135325507105298499912477898392802215581898886773953086966818926319505080516748545293172732365113219042138007662524919979208059153641463046802824237859289298207698592151150202825315646652529838289450116422850376174650435446712223257095184247242009337596525659307331404913846457273027925038081044254813256109426359595205249493073214046165781271384266222006894709887088033982551346758886046271848528160566001698978594107737832573202676386220627148394389477273860244523495557156715769017008828261377246479763250235712801301252074788094610932396955448950034772965126746869257768422632401600171058640499387392364580235400441668012322298325293327143777063306670448382059310502705348624362341227618718213918381310109763871289013663378089252069088599293323037169599883481927711215098482437950895457470135168992210512321665295335540214880434044244585138164937780537963869582469246182678227663473137482493067418315583858262311465952314465792151593183363373428215597979756507966751401374217733999610660230138008092909416308146584835421299795539882224755891167905200712173032718746432106278050965401695717305516792155568211775205060651834259277331743785798405975384896219589554393157477510576305964344255362114209597076605762052335459703279791340312306762635309576807296845974204327095413086931848242464674271702479805853225657905290039108961418446887820906397847918618467809926758304287340158744918449733170243038218599006078663046363907533717766204150844847090375848527000956242366409758640018526820384768971223082912959114833732202159676008082419964532759254453194240484038499658784813313306141524528646706861950705779342219000117520620792618737192080212153179154106412519340864098960546274535146769663233108250448607252999663562024218903261984536958405865642877680818062009331711838303483126819591126711174411676733164224616421994656600663686916863348676447595725101067150026390040948169685727993371870711887883228292954880116271136077996827850990873101876822880091124818187156610464574803702008588868216320775454532866117989021559660593612381063247241259555255888033717418186119025941811044541399255043031704637537017048916906280431768447242107513728244530328212966880357882239202824240459105877956782420900933634857163959916082874814672981505487729044423558968865187685457357697530019400086258596673584671080893491479729352527092744194924706978168598066053345557512473972104084105140318628428820050823674904097261214779824433737439806015034005842311287316114752225013563858683979759630269305126392920811005122716189956052229874747591023544220543085254553519659019790944169295893859323811279401297918185118110527360929237537264834042343463073563852541647636522876116794073212051159947502176514068878794690989943120645271529987703548132930639802363549870809960991530315949865972255723923267175017144538952438470514063704179872573890641879681917506599605265885416350813516323277468555297652649330015139401202299387133707185849180730708986478490529533623782783698851347982165937813936436307516669906491364558309588015351210113759615243395731780202090262650223355539678175853975688723032003037233360891325395053200122286368644065074255379006931670581035709424679249605653183866508475475898626221991150101492833607680814399389681952200633322876821415973485973467221008360092578347995404456896268972373052906881225576839780896001845995800127244483150182349925275842672486756430131738466310174386286771311775194015987871562445254059220068493143021917928467756809793770626098927615685196583212867504910277596561053340581699030735351050734490855142765704513153423405876498433179667206166257290091408939873144397019511974159247924094533505929601072114844240471804906235545736077068741016469802946306522078105281773752635406558090169199180357452919708846485122167425749972356099451377563277918530228787946035633930720479742713323027724555103677730858943199837147909100656836666479836589256998062798326085118916213259839184329840068351817164459933777089753041652258310028820236794752026356605360470791755223985644093851432755917246471164214516003218890514559392423705339704746655375546090706409083804806575781077485583958852047855050884075962099453977172713790304823121331261568362077331432423371116753044301365295004680970163194300989499622046232830006250777896900879197598081010855857278095413946981144248861025444610320592289484637160984366749392259704718794843822462940020719277935105081732217525162193545948792788227523543075209176735038063964812133093595276556940835789423555030622736325546270252421965784074317912705098106751733112820694975534791812172970547650301799535599450512300439320058253266091049105126697362018114758758809935433967320244852703672549595360863483312749280466114270833134695358665665113233564798079824496409678604483177735136712108553498611008680072149730307722641278709713006366197959088356006053344398210553466325882651524356850950961026441828617193400903308354699271605114770786041805339160445381216769574861188431965539434038812801496155279777306850600434346597679987468974381439238420743609337607245730212640906201070071993619066627592971590173939052010969420239439144368171433320155351134524547068482993037911090460012242812668096312978999601397837246164015555147317667162029247198882106623038942090769604423679960186459201139497786349897075223629946863368718420762113762708449551007955812111205237223741457041404567942568241712618859654506391313192194662178313232737824045375381153691877237547137760828335106579756648237733068452306428702048643518135826872468653251955768065016491260617347908291073623838497344656324448963512509003343389750917781112176405562741446016871706757551001182063748002338329520324511642973018385622641356425713505467202517280739550333880675541959343793063883355685046437759805973725913771483704899255454519704440218382745944046342747707538855083114087730172271310321856984922867282883295685834253841012731640965272188462111250490920030596991176678606684354011264766284527432913041092039875962485224231298262353175159883197895704573359214504863443269122677765315480624258566607980579476520720051221258943559876122257971623510971787514821962038609948670956492403135216180865525364072463047927542258424598982022095167018467200138211892940561633542021047318663138858891222415932596245265148884811102230464640286580033675221405886464187423768134742637945601823310603504813119837096826868685124743692096415742043483660130543875010644467215901421986908334990052184854013978135882408999006376768395959913790641095729982863329301188599138419521552247538567997719289028697119590684671894864244027306228478602549085565672803390258553687805341256670464595674470360158321620813935453761839282348227171281245857394279203310651840935507894168051116679791000563989997923103559261440526661136967938555557674052089436621246230939257528909362948153014491104523078231595289940981828109589971510271763885980789675776855572343794976602724078618793031024703748443718325728803984519248331131244688230629562585784893077027996707983782813653919672404739957915048227228775111507766369178993247974784543696758277295128941273160211296237013693155998925338002322457996705170457387161248702287124560417707041209775161243034208118390757712238809544578599481102048673171213168756004316108525235277999477167419198349138634442150114084970927116707939001459822916027515579642240307762257281292423838471056475453309375043746605307046198692883719126432394881244063529237992744575138882629155791893945262054894053763760976581756768332320725726440845192224398219471382951923822970879992345437987515181583465817571953686819343655945773179813151365898177964218426249369973300496528452988126439257983778406847082035117787436581900572332740637602289684405884123746881208848755373937366480750676932632143611275198657492361810039997530842359227021297330660918561222032543864376116192442631388940519919138297217516952371757101343127109246353232592567148896322431037348442738776959847968620953372282595069342057331545956175367280088090294576626995500171414381966177936718466323812669696977874860760198964860558870959217818152307996949389729056855374261264783808653696689529420970501239039631959453504819569951017566285460509350490546629588432816097077031085277862326646260198329347671297619364477110266529613319549384261933977675643812935209381284470583207683865383602147747991517221967721768966653887833057112033419093166562394849815127679110234399742348885586345696524023889189148003796281402556171199661186920512335665560076339262454513248804102975466352564730094675784857165282108027897740935295433854237560307168699192808206178199750461493637869964911546694672807780230085559794818575107313066733481443929262693081904115668135016910233968720964670983849098421287869416174675339904097210009813549689035970846851943636534334047601736489769472368456388432028429439624558207377568022702230767639419111262614389177394542953785016466070412215963782259265901083318550068988460990068238351833156599839128549356682988289769340229622248506708302746562261948432659115225135080705070729001840956836708429453539039698644553523333534161420919754251590606430214166449677297779048493132914643081203054474177008641909868250325854923399547398333776737657949032216764628936894075440881961246083496070317534458498659431325299012520445292928360637593142706407523055871454730470935637394338972946255773143562053177413317240089910860527470702141952230323596663475482926856535116059041918540557828403595687842676529449343108061683482765472520931305698002740934803250245659221951349408431075953739647659132418477789513079625374734529486212834035776460983453027326446140642974572504901833938190729919717648722129246186891941935480786312922216800930433863509162251163053756782214518169991941619813578671596565013405161819604581996285191330099803652251043095069833711524909582629774234820820542885946830580468271870612185462263827863898486980763200243010889509156943678122563973797620570654068398325817101256471858996580832598813896403891066831885873310015248136841601158044019872293908083654084338090675608702985913890169077060686040551120691863202032398420605160188818132190855665019335616167095712262461840003190762116565337850042623871285075716056519677994852310368510469836699798015629000963535523971660066317305632180603026250416440119175844688688117319344560708467262640778004537727063543942063594209978653274902875244328089638975855593553112670376572553280890448611679563933173305099320381366537093289820501563551921091027651358436504321016622553489058491008445412707142471797319132079705716288650358689416888403941793635429313636480550961587743768809434735707789116846240571543812423197270175539068187367527290700328209462231517119961047755485053984023307201471359865817542967665774790260537737976940800546871751399770559012253348493494763679629249353247420106657543583151226729338249860115482042004160326097116627109336884112619941662706431065964953704313689684147435744985255862473822400738010377568603302015592208347762746174848217676397969017170258477388614238278994967319408782887519400258495928144053195825514419515265135418073404253005432903362197554679309414075656440398431360233176869405188943371253893072571741862412913346803718643526204756334690043742049987279958854679030498693933491395438918899805396644487558348284825826100595398785551797638869826960664942837384084199505657696678702824451004219782958346476963578492356837482485664060668543615972224884276475291227019030852479729251186532500360315365081310812944126354139151649773611160280106633954475889567132911728983128824332716998748890055697892264149567184188012103587111583018848181200504203024727447747378953135156531304737901281383839089757428329556683808394703898816018275154560723946896958570393282232880606943438435258594145031041577597703637998597051683339277945404251449315895551359483396829421387718901813925348828889525293513940947371582011845693611057789141157954753398492141038296878084696634181052427803810945268780293225541563647939707119606075309096561901210792880026099412064129482408796945079373236387878715204460138707785511231389769107913790684461273885281570534211540713494086152082667824000646166932371997081045593113027325937477128736171314714485487276856995157507623299316129688084070662105445483354381537684849633943724204993285493123046102587580710846981879554986167145662825494209301809168785256125127520564949888779000629304199524205624764403813499791026337024278408694885996902356835698328500556341951373659771811362427972778275198129710519664643444358543392680554403777106154233011209947923825738495522944012381348121007695092559929598447303371904590877691957853609725511653225531607112037004731819554815327826736626493514384679218065805903726060001231425662222811729928225019953930115472048921303079309252526050699191164710639772784977201214230017382923383208754943551454208849055619272462458918156940074511231300752812897947370715892172889339679635424565194432193843112544570510165895727866048843989341308054341669813480332596600459390439184029488207831077107808044258507519201884894388469695176716434878074361702556789370035824666748215473036813636047268087413232216526080690116007918229321794387710139571892786492518513682769160894771835056145419169097991408737678910406565261795495924977798640553644905937970870791471774165523786984021021721005961410185160118921200085128656418278133665510747347282297411368100418747729737527758205040847001058760580954727218454302433121246784339764409780565265173746787594917788894825876367402589737258667387066384813169783342336075036730847438939430444219256383079259574898848185010007085008498318811027796053514570447484798092000547558846712056550816518006280892857168123326023873221253689962802805419945169997911212293061453665252168690446660508590622816346692827808255313502642613669184676228615488767746367140159128348362846250983368746391791400294588631878071382059570223938065522171128075498419611164511983431010151223210539964699701525613584491605611277154381960408339388403490309923957489688038633285915164248844374430861722814314568488554663584591328212545079733171590254195069160703618756372843552465659314418589953347921863104729736742406376925308588840633698411317298482982595556758255284570919227800608824403298929913443186061187181000136485610802559335019787978539393344793092720947684412623247067612414489410344048777149130325291969647035703807186170292551903375105103699159595673915950690910162002630163937735120690820506127292284272109560809825802795074645784006923550808906067570669543709405575206269618874272140954430372916615032668656827873325272460586476488240713353792841060424024645197297594693037934474447846915276506366161513088060461104797090904577659720484340774928654041674678451969881152049059542513680075016806785272204878740631183267046649474725255399144802173633793122580134962403937568506517942686771020487496529220276375994375141680751393877492019521543472324405627177793472074768571234910356287666285150178934931341101051993273788062621838260886017959034188921694674823015393733840160499311886907921850367052750121217669429299972950122505395981479156686575163912511206066101853609325790943539863570336648605020393346786281012461976355353308232627886228174095641236360349177876237209395798666257727471616531122804549754801841718131096869348660135780992023226864389533003991621924884121907843231133767820928243339421166095648243773057434986766633734723151565114898067102539037855814630345385450519170984922632551506134074702276396824646804719611631501243079456789415640341671245071607750463763231678801999185031611223164666530452115081542226262985117370651779373562821427858476331376611881854631057566287854764911877134897948945720410806154767641554468792829502495220876667748714084788769151090272662895412207537667761168792389890059477293931679063992406103815065793239066310446514922748262545978194495167443856539979335282627088718464242877545988009683985686752795732952891053512342517452794502590159231136630021997898564979686568857524737869636849450331567032034784705398818993022266163183910043561864080183803912306304607862686415291175341700394358464398624949571464398643927274419434413611144202588507428735059673668435381367739812233680740953598042329195119785341291730130693046197204194621422996386009660246026505726528405771014749136324486161998655848963200563389023026234327619059589906742195606832929722602880732987358074678545595008864072114717493354490775015791019358251277132388424357835031685685000096103848539912621937774233734060752580989938049957948187482256171518422231037958815002521852941216664225332269118244954471530473182914450927482874124725663993332524842842905384982761954516069722887542692159136617141690347599787813322112914330788589527042469481122505387819866353037925635276401161919006426425764727955552207966294221522230802544541427295644686113172816521470532182753510944490341889334295966662809917776676073318447355927215809586879416806006481688198083023042387718934680064295724924870352778804380591198503669587572959166876955106770125324338337985466539968683676228900480373392704545154402738829344776970762937080390533015815852536801914269825065120473487408625756793787908092632829924681032290476674232624462991724158658238112165776735151131879897525144021238072636143745508283566420339449620654160434138192524337100493193384697253126481420418874499456776762166199729153634428710474878833460083173562236157473720643261540480956611361955750063692392805135451186464738262839584619665447609628625174662805747759741769554559231536432513082195127151904885355460338295473443377391390987458269529959610090899999389516783860431201611836067798921951034000759282316052049810540084445549808282579211253170385930067296177585734780683077526935727053787341154617042815420265285944823246643889587748046682753701545351935001422262349776632799471481593568212909531102829364778720041233634217436003777132588033727777548037464200012791667568724739496565144773447027985532911511656073456911860582541130372756458696371706193966531258203700605281631605048799467117194702992052313047730384074750089674327570531411731126029494687254936975881228302623703996080650604177437082630594940989019263338853095784937779654122341711676827619969628597395762562646219932729730071293672782799040610192674524549419685336244753040151009321463116937190157147231560425311860778376099451857447793242911313692347863826896200340894385808971263762106560203966470185006278117402145850617671394675778041274152658530252950639814064478410525749114196540288644225386285973384066145421845276281342721360590452642341323421447349561679165764731224801505073888244994186565559522201367064799593083895099212357456443311556038744225424982850039204089827598114340136590287161274913983302143027808501991962005425740194862841443504298712847589174997900039851627154726939335510273853919586922000165646697690548505828694454728717390502516699724181812293464225547832889045732714951905714796901146257301623117398177945387381120740407342884150832734508158445610442356650310481185616178290134313901229700500557847996125736529890061260770906703209942365893952525975996945686940532604220339344108545392197826391194164524464527597278146156171214715045502498602295136712944348284469312617763305825157901017709888195382114283600212674718223013562906528736701411719339587348323995369097423914976293940423923688419829175312849818213427030717616710128064497295209680978519298253439732798895691855581278339644071418933960680692189907429026572506883041151615311148675794912453952630363133593479317015450222002165597553230890412996240767363337663309815841390837986069116454071787863076595456159284036230860432240474589977925419633524727665646231464515956433738630342685513223320604691340957709703480576349071824486554518828132133141571754454618856594131171320600409231439181237417159629773256996471792978480156369665202489034133992260235570980720992369744328457797999292507905207849941320121890482338954157870664266541100359901218541557532811789146713696901853273034770834867549215661539329938947253174247067089057270205295262991968757896319433172436388309205241308093983320757502791304631553725081740668257982883973170951450209812033667613773501183597316920538895052446301165921864703161295215871003592283331566042990094589721551382339298683766925495146702991943468074153049352838634939243702294216937728531024958059003251959830926734828405364543919053993255638777384013983412269220282189172331493138172689148054046129067889572846689168567525613198426064583399424077381897265146286441575673787959741646794899995182245478566064136390257230851561284100586882185320620916981533796031669058441489833254470218015315439152275898741998079973387043879847217059368619616364945549957402177361458874520077245072609271101154057134220810201474038873994876073024787008293179323347625449815332375006175677859110806381379708295780665077531411919541330149092695951437574106944343203314677383650849098383527439971589459519428241733752073085750995520936761895707683861132587284371955015256051599459855276823663906192410910393929166028757499138870778216481912790449749029710987358132173064782248364843515597383385398133681494988667508832933060066611492076513931738516897900812947298553041775305639129192591289191353884320551680821598374480828795843516141006378012114047247116515655442028946585895371587527170309259544971307692307325867832152994899257374104296844729954872688493653240928563369979221644840256431413485765268968981598782112681708914350771996420082123985187831284516523874157141276355130707531480821811973484168392676579757025181275099287073939364365501333547924642902192923197617445376201156691505222267733834570492612906654522151230612704635833017433050807523494856024536902662746482477999735158883243124337853840262165592817092305736227523873539647394842048245905628135859307867514483934750360765040054183096105158998855488521569833869193354170681738410806223838886697992116661578436587810001096558300256033806793349209076987061953802185221861102534164728004852126187453216271174772084101966668333428261296550577023655610029700768078838455382668324791017730957968585662033354252094184778609356789048202303304934448940772244711049109727961824521756680371721617367437913415533311755559660976773963999430618004879654050072044330451554469946279488180720773625597460117158562913277003553075194644479260691582775596323729576484449386485048981831008524033255121984411040132078905938499196888662275454976400106994152527684265591072783410688665080527603441152854940273080250369630115068761093085525729329279524320011397894777672429218514276807747239282706170926917683569832257261026416157700543647200804944529780041873829213233075080906985919394461618569836997546540212381183430366338760067715779668231750492762157833047727985959487605032564529192936934682144799738299633027125342214944199707311586014230932957655627486562721588234148419995108253461451305034906344910519939396572132575660600323550124929977249531314256990400186779756140799571227303221673334090180150846245157136359466676705594282297010747262879016808437400225879337176450188441351377040348910498326643526833117050644141770529232662046991014348279724206876439098328964156998691751249072639296136452221285066711230704373200780736194781435420261818262452286867573614601238355426620851552273566162967748853287726869527528816533304957209444360310157727415635526581045804967356734664037898350580797308289039061635387808080429126934986363079680737991374243870307778898840757003500901567399568188900481018673226009738987904729789351134018690307675608480956654984745875284995684053216568683669596891872314400748947926009981569330549802927579445903316103492977263518708751181974628561405936249292260594059380396022328274998000802960913064215828197833174246950822430495558477803224814272085170777791530602922449339623123853604563141429328950099726341250555561669734264968687807588577854561636092692379663736998450747013022808135162340931583138952780468793656273377110873343479704217222653855556999002137516814194821524323074873379273756140772489455082780807757054278881265253080000318579605348012715892914183729847682571577236550471783755660406394716873727792436513094346424499714210403987276528035438194062993665927380978519198385785511924513389205384265596618704407354865115563105942530942192015194101523094164690487784793168378838873624763646202535950821734005563289870776503503343702380572460773413712407776321433664238197454608363336101162176052212422684543330430766924310667845990064299009959318411724817729710398487662053473334589805833197021518719880276366785532235759641714528198919461992475365649337618360442584815181880341938955654901956693045573125877458169982223030146242172934863898566633858971137979806877811891539241983405781224527427189752605374496175592949901032961597521123495125915799782315996774597988080231169359538908934699285349799320529686016170651633430726558339670149835177204644613543526268851733373163542081528009967446852955504891278696943724772465805812658439115075459784914664241902072410000896356996055968425277887479942139552122693350234356995834099377035667182939033409481523253002820390804844579870953813579121414733437521068254859250993207315831312274844182170340011416623551548908847678681931695756715506320451374670440680431036077675455206320491147509882640940323748635017311787918188526439532074740573127128484813252114221675016264909999743746465850994422438994951370662752732477097018385929417330371021650947457977215906277554664286904216068327629249701762428134082725253022151150535867231112176165734368686974121926524872162778080651983816469520632933370550846785754880771289139086858061570561471923127727463606921624022152991674944147740588621226475147815134260134299205394234163810255580237984439054666417840793694593996556199728952248948456030119306153141226036347432266456986212640728685400830058844970069785594973527363885074614403153888978813375578440198381274993917746825355407981713845334082571660908041824842507195326553604694531485636339748086530018901850925960263324175867448803327013348720818212288471349354045924538558752566862014594262537250953922059812356042148117480979105057903589914138391739865347180689019396323147322104325774613600713666452315567213809807076809325555116435520716911887233178366320461087436982002132025676917731724630618683147347013215258243588012744928366910868551139255265774164587261976363418548758216560856074705146877430858201915964703882673115509669764937851697024017303331141644699823768129523761071038773342586914882759406525752530835539046728493179426115185236831884306561687387797731781771083702645813185496565953775330034005075405936638902454537137610404986349007847095189016300267623687953250191742172789032442830254846051419729328694173207113574462675726013810338568497151032411044747412027128059542247166244683587482733048442390677928704440161724599565766668136929819460586005019378660172037679448445010356459095950927221416203670317237436918342498486455645781997732622694504770023227168154499284441624973570853444861184638774922119627626373340790356438758237980284169166564727389990751850520154282698738400088298352695473351233286597031658647480925928059884638792147815399718515760701245846253075701641014431976508406941589128396486359238982182292918882108105829768370863250088378743940637851193704343845891051288563033209043632489467422692193359004990253888137911733112215053305785151562957453266894543175386435971348030245735721939560941381485563949288153149183298867639444971484691622726107457451032494018639852350597489858076003719294463410075909446084409036704610642621252646097456185583030374319065715559330361824924233473673988047417988966306169490619741740423062850827416117508674271247844279337274307232512258139029320970830756137323342799435339284614042747565306293206406932622120696175867941880491786034081999178595640269761904256419773693547269077259338318370040604656079377047262942741978368941200159750507125708311332297996068436500378626256023545649011700399639634053988099916949916165505199160885368776193025389387999711631814456603177241179155554803306295588525020101564451123491515050625492391835925573970831592364481379575453263283557506973122330650497462737323746097114057011118122821596957822675623116054369223632587368235837559405655077861074136719269774965914271790397360777826117250543591904833588365569093430581853356866887289718727294040295915645978779458711332248855370116818142093334885560711083042324900085550675583832966650150109544106337667000378585614981507413315132086249523058300946738260340204745359030954614984943904035361606928638709933860447989781142604353692211703712615074992576169852666637271548358223969518931210546275202574827817710065120389398372300543197291808483855130404549660461626563493504492067273252804490847564576216862684009969292935546389487370188256133408482080706013768791816255922007513862913988924928745727704670290070318839170739836819112420498391990256074432968324169303586995132101476563672215651685679294318768080631240867677168820775988350505173952608723889740976679498397733880825723999628125790523331006398158988045555146574919305695614201492817365124037577150325952027176160028951388852273236886097612578089741896791193603559861293912466006323264040028670638971804796816405744501204204914117568884575512875932933040182520238491728018885380461242893071668629938062289879231550110770489742546552038859122300233537190675940199875390922559131018134761289584862114236598040589369263609706812084825543709370541670192966110585935488107126914901711112869692959612108589306369146518428920277559619257733664262817843673436860865177073987451528227606841066821698735103766857379996263296710268019973575959870455012949793604409819720392088691627625450985205938587363396775042793388315773964402318918904206035345194899479465559472404369478000550385446479543991764103628489654952958653692658682832057248643899015505094934426098312625374058050693743995723506130813132789349873725089718381875303423608906471604367375958865056700740399177510559527524777981123720407409765533859530897749093691978491082207914361584241578224763867760847444792883054627909697878599570976263880016591072856690524691015334755988754124370592983565331024491547793463570693121183529660925983152843481716472247705102680142207229623362907981842167385481043034805987136178391275205941802456719700457414310807614009805348131196083036265193035920972406465496093515767265310780402398701985397802502868394048211811614982214026193714222708271018367764645558683028169639391834204151259517045994840611843984857240665205701073589106993724461428855546523905869240233547210074242262154224770328039890740164111343385865420937562007054046605907164751694740025825020879848921441057439099512642830700299738399906242788896481321744571116050847326057539140106801136707478423447173971521303661996714410485898004002235491479358611308484654061030813615613046298614857704188802825533477344172527600568610785844826296358567983697335979487302399730575316169485797360599534531464458349763676412718137181374727373411397151014091409683208757267089609377833361490727522677623267009546085743851237030918548610214343648794688004502159995100896923030790214765360668207639565940449480418010344250262437296024899474091810152114971021256200846484258866644809687285041104098802624920224865552196632562961957382267515921953839570402404889309917365927780721817628235790141194877286060470384699296578348460742503470006233174809477060305508117686781004228384568032919530299145589199587711946757604865816820051895344641308362681684830235512100366734408517254742682952412215594446125075108312695939473576089259274472249502729278365225525326599876597686033914439097635656903671429945163256806526293415071991883766955857860190745212059900106485316358504542077811847160181961314468343552907169820343708848420939566633451789606225937368871068251769856005842225592888075871230984705301318440766363438915254951702038711757057832533874516416916185114742445838025846762876821940994251959838488665661349169931714535057823299087248135285045822723513337289492341282232183740002388435185200325842436721469698201221607107573669057205406438270547673909527560873766637584410924291097918805658347356160356900250052403320657225492938348560018343769947594692499525632645133790794093198797044268033394008250070634181360975681738893627315482208736118939891780390283013647005233897487040739511200685225298063651459285784282424841543889434280674030919989761607085478231410940722284263667822545382594273573245147004170820989726585692548217891019559883496257469710701055875560732849040355780500920681439739265536599093830279508253618005234745291282794531141549106459152002002315985611171066288546241337941418529861235041950548718565862905242853394229772060673768455626694671202108485599496935431265614875673174919505382737290332666233295106076682931585189671233572134099918393695340825627253064167689879077068760814902852077406505154916209111023980107177002562437654224713877333564306132121832421510739358084617633140762418142269255656801681185154065186219862268431185512672953827350157993058655379424998344313888149248161776968111982556747473368888572659176888557307129933471784138178699485049538498552323717408211801753843805768188260164569700488834674802924730915516321414052274499909800244188524178986270909585254610833935061070003206353986754833771835525952139515175696086375985548454820141603554540114782680996112073638185811175376188157138927607113468492900012819806158013975574328624977594076558263783847394771977895649217375530359064265546560930980374802595572826606646980772407701280816286630320812240041101458146120261895300067644606331208771833567629405000039451831453175695447279768821744236853958821821425349577093368466679197000977593175494359139585619496257270589424879617415659743346574404447593732873990284988228837094668406224361320040597761371137331436032889036104319265058042551073654828365149107622977577830204034642060442654054102813429128200092701690418798244244051667380215775171191792428512449886169879893274629088331698644811655479968061877125260982401269083940722882475773726498498059663933793454990357053089063735081126660837486309322383142811798284388262669242302075194162057377089063864801293535891534391239660470081770521613547939872648256049223606021857236131464863103850222960595752672882200549034244047239032008357557068816265257020548873997277668375481858527484499679413168532814147329325082454946350861969926855538486949530687167542895077274341382951470120210838045716729152667557193142034257321184403319467198393928714858017236539533973771970512091310038636673744129231213294950803404827831703113144261739230259929463881925096278570223723780081237088181369033842832644697298371987859128703009639290971044741188643561986343283381953754542942267264205857020821006722931826471644641256849304945842384419927367443835381197873322401111879860244478297062382190025656836193939293208698246323487907535850430073700659801291425803475061968284855096879160319815013869737030142389506461877281081819090739447909749486000677364092813350513680257805421654600339211210327114429163532713498826906896845589229156994250094477361431487155203891679462837864531629211537477801165326443991505432230883001613728621151074424997750277941766848152087886373222279094479413415450020211273065644155989085522982144053698128586129834130911895009515323547054277757417451572352569142624988352366411470627727421709046883543757191611571223750782249038047588719158286805699342238824131822641275800618381628202832226271610891210638837683785002312272912682662115352093109978168084112246014110022453339732791534406919129152926860148969521982153359103346534394366735267269031761114050013683071442784511192727485073820383657314765215046021588408071863078007836674929194847298027524914256315429803206119432041551253717989560071842668694583082257346551967562139354155801672203923979612067360230642437922754132515660792695990702089117593187137293538181892655977523926108385031862017698625784365597713727243639448649554877601731811025921289089862802934047559045198419873337436771256847541565939781266378214462844379349610030120504075499866676206451100426223230003320209934555523428500522459341003630697789669554550824316286898329713939797289333212769195110929445193117922523068700272308508171319267938039080515490407627906288684183504340730133688824579377995746145229833053598420870730751369757230445887207165656611698315959084420447758088673352674952629816442669394563753105590711068220691610265057219446930108330631818963705253849623103502711875126878270989865771949106323013467358579459195935951047790187106214969239966875187717932567165165994581877049344331771352774362885385014328382027092871878090304956685611453034079541444063949376836387944738948764335971672514875827799611782726346050779542690205840037444624896145170326740993514747431238436801142743624582313671605044416246103478552595722228833182422210969144051384585601061712321624334441458422201863450965223478309088643341290113109908555195803816230254122039634823686202797322024949838996600911532607624502604876833173993322463719082063361290967245868896161734191465363797859216608895848950754315912657166905692432353331351370230503023733269184501291507339392025095327791139343723868425778185963290354651171366664481737850488021825220913758152307812536750260179461068195484635873981860789146696519661685376664986339328377243798584978451190312932415520484557941689126762230716771800524391987005882837902812608948303248643037287719065196006509654044438597050858744465916996156788681916434909926151246387031739079282763578401469534634666460135905758350111734575830124233908132356703240544633630532024930469870614684506224532161349382418516175248150048163223430277462471719121126315069006934001580524085901679686949065248055492767671377507296456757156738905200144404145527180390770566726565165220903580511953696891566120420986495511174114609410283853991574727362840994630323702243660097711260536471290246915468418240194645626668357457582018619947823104568731887247313511577736944088756149816664483343788815029542404404232216847740921464097635144170849295218029836082040928339523707679218116816763554617947773270140849967971762596384182255517846854192785861141356384695712031301061936811628811058034767902635858511576324560102246464848358348754171186211712307175273741140421291997615493689720288141968235432790123589713399470778986195338742737477282655748950755581254509029214996794641750731616452358176137788091067138819889753930545524877330143860172591594379621858699802656346396102972997979043795694474483573118232053589066355571232154820649392835397874971704476053439477235229493564066865391317161072170372112819412390320613221932316240608323928010705547996263648070018953438068693233559561196185438861777741809388024637273125641291318164171905032969129594362474336293682909210133326495799624533945312844544358257168755185776640896969080662535161181729564404283105998882569107625025323478491443506468501751830667141632546687319112557382146718883347547841884802257975671087386850167804857700902911463393983305547257526893525825967355086182108250625190096746758716896113911242924404925987665009048067878078698708396744501020073165308204603277204396305624288643840399131630464140778221001187983713397753239958226098110779340825957761661646032548768234841419290447104803599480536673279221437761254652890097188780567233378960518500449544627673927813757383019654876405940561550835361215492002693177122117733127662503555351860280175043395823639822616962072986405710826150598757987833475757096738942133613678412697281043028485686403101907789089874753638239559019651863188171895130987681757867240030696022463688618962032929676814952411382133030657179715157291570326926203168493815577206629104068544925295945954458592692203358098522753804999706435336690417869014175078412749682808163251285045186762775405085073088160493112113634507611768144077031181794768534954371240154271773062926355930661091849963271203896498890429665940827020007424480777590267403225225290959981732744328297657490845673364673379390217632610747013770495898050641019768915757879329644984625315698883344761818113219138202080926285938772396809951971998387639977822174545465657080332824150401862341665849146334013624229875026941077656873311336201506028387004674882705604235250719696520632235441442132131376287020290483781536779790989657286765463209604868291466150932083219814706795116778749825673803433842815520562420923314759399360363721785255601873392408577470792854339551355060015165895686646300540492551106415027395308355095003880685448850072933784509245756070526474161294102933876527639931092960683783635136765366883414253731235586419134549745823703840718125142735808570416890019660623529806502342471825735756343095593803087732593447772297611645077743832995460885411366111420458403410082883455970180182262829293571483972295186154460131347238544847893167869331678772219385002971353628513285694383259867899825186268170994497737132873545500850525539179760289249400495839902525037941721908347440652310140173535434946049256543085864981517146670017123153928190890981378295006013929850245827651014727808777298186509744758873813928310728867207810760450229125615911403492931860592301090960264057825107089582768844226561125503931707676039380504242256410270121142379620686089081188815258202704953214245956706082269394435659448825939778551304926072654655791152800700760783504361081797959154823245825434224914583189669012064151643635002605904051741851626961677706400595141021636816010980682201825627782529210916295028351941783383164649159288429800495259744271856719961668811973158880175678964649318895282451213113316874855230417690482426329412532549893759493351175786107211722819344964148150388455997609833214391236541838723526744417249689256246644670489506517576268284120488838585668956159862285885519010996852576757534566148226820777429472825841756260884279084915286978976376351498955162614810088723056346687322370667695591807578542296785368279133229333346289754096790309957152708136059697190996214562898422695308192327802009702573244764238554444005203888729495609932671493908472953723535532967850106253382823406182056578492628937816957993790850774122874299573005131054559465505538315459773833610920333477956852041604069131743502414382400666230643481703292468470087241233253248722367154801173009956842263673228448597832545769504247745092543242293179069785724941750393530998453152114364538197047510897825069923197896830801907173973661972322984107270130610208264893366106411415252776187227879387657474003345426923980515257757876932929714204031750735208295390612433787447318260034135493738890587661662140807488556426196677719692344598145307124263526067497906994472225650376003600099250486986365103583746992421851903160827676444213941873614707777497035280970911374375266168001703689516532107745479172263653100165397455154287099395139585323415828076693303814022891808424945389547730602703067840861124147612654945304258975529104912024187669948001859848899769941364937733463006456734620804850757786051957596660801395073725745073183224661454227984823657599164442814934715508214601957904547200089107739236817012856830202728060777168484024874310293200798976688128295585562813252526190526886453242197688505538743906027612841731453529614440288590416190778186744992777437899961461255074021682210327917226314830605328377032362247752069298783849633597777663060623561754200541812605346291278746677675453200509316989754050730466319555462423813662455681575857089561856745170258036197571068468305525929777980656114281739121237475058625497322714236168114439027504183066354115359337818060319261440825791166559882052124051660731988063012180216243291590146781400176484762540510688217192786069608610524261286134346712217086497423592363911476608827108285852538764581410205282059101954933035195529808034480972451053399956308962658898113561688777375234351173709688825452181691378064137162716335790634250562860647045946043829232278622084275208858392206793829235234424540063739468515612832171186259300066662093032449525193680899330446019786970185720996165718376403805256528098786921453570519554685261340553339569365925048774190125888006444275548508857667184216363729129086280898438145952743648231508456225662745706977863892493935108006235588981486602352979941045716856315818596990753298771380049638494111380599251406133028834974431183594444987544945836933671138774483932780214182445339328686150099433566158015749449238720624300819830927063059378197686898470445977172031499336721193953366561620408705882704421317292968862411837626618086373044214091616377321569995343871465620989603998725704444157720263579698103511508811409950060889090111974302713376320375282202078292990378571224737538429978090799348512768360754080384841373435758171716579777816310819200737141231357575746561892999683533205475375499731603606076250263953459695514720557758709872051420747951561832859259416927674428426712541632153881894979783987554795313018834449436963468320430390356595314709634839283153921581233442896129304535207219203970699528734754164736913437926276633734054125063305546046493094705678390499989396855925191974076455691158577786183806226806804195586691288942679134462018320981618375542627709020667796037553455572244679318425737422059568478189412447061067354284244467317906382799685868944378196801150692775395665782585715333748155521225984438448157379478272519682261673852931262845026634777074918782948754597265854681610846966629527197679107965534760567677856316825483854472011319571929178613357536172613654460228369304359184434391169554972162799460280899157255805165524214771964326208019258586072994691471385345498587237694335100691096369785768217611411823338908605829187567284057009816329055799138954920362547467370621056742821093655086310016498585359619292721313612376247229206388503681216987194719757132941465199562524980964606422798158676627995711478709876590417882513480466561159896003874057882516738934689169045310859554470428751481949249182300263822400528924455481477075081788370065716733454858983756725790641285412361613471429309859398200420237412016871725706430783743739817550343841325578351526451170523505847608233092299190537345418721063285364290630901970933180422820877393621942166463639622679832920691829870919463827346687244982260776830983113968156814962276131217253627922169112313425799417149478531218682500377504756735587812821566982122330239260304958334788347359314603145321854564815778476729288644015696822411893385178222544717058747939142247328263779705315461628046814252205505749510776243857059993530459358206647961957255804603964437639712532939771039139342206686319871356232138340643362144456507300875664626901807455077855962056826185423966759085799275720577867154358591586214867592260030213217358705736771081520665297305885966067042339047136462021844754133679068486790762010882976540901491234237928151728141471690502644718576848846144939764301677279528089510202404725481862458005894584617153548939079797732126422039686584384585755445925529784209474984653045111014114835494472262278327292959094131296588195180234033361743190800822585410354926706024420042442306334861679138753805816065129986764045268489894500051717261493228463650789287877695988645666963477704409687363030230064901378223136961406781830844759390076628904073703452098843641381064481011049283561052816421571797838368465427534476410246965795644486291622314343506290077034178871843605783050920708070066695277036204923778079678795586853602085650534863394122734651797301640579979668475968413705165003416540328572924408835887507698461121334566761108412244522120464705275101036131999398033713504362772975470754581555323446646348786203236064413500305965676213010027701448687898578338341810669059038602503598255892053725069964921683544221514514482755579449249857961540913184556300288704255013335152574757479057445305378475040747690956520260959788293424322646408037282049725116974765268656594514418324853126629314158757210335849150235079314049617831043150444433545014948824114554423555021311977961910574024917792569806323357266058378976114482854370102344491362415286991058845484813709326335472154931150399847577920471125854984848844997304758803646760549671263881700812272210962767488326124107438483542282522679247368358798875557284018447066197451553853927979294375970248723210402180637879496333416521769239295646794215410611508399174107809700311494535122440605598894457408822101508352679777990706674500162899846902894872625876635120790721293478444241087135826223195611936022454774113562255091485503077984666616953030955326812019791076965309404008898621088676841808212902684001116864495707976568734215490202540516372166319953698129592308841605171342877391228399368428977596586576468251317852711823501489946566794993327215099046227060435035740354267742071903076536481638613374554207322522290122710441339996307602490528547178636586797362367369038321503549370445049859356855993195227703955414297378791691444949651440423983767163730059296185538325810465823260804759523304368754838020383153740069659419453645280156468460427378868446109350834528043251734038707048576057641154782134089627201688925834518831888648130714718875594835706694366355520090823179195168971937395528286264169967973787146300226597073027740676713618444174028411212566082264866283073935476689187290974585878481019589382600065605466742196100138883507741193180716943274385443266742015413267073486942188760227022647352637403006308069624491388243684417954857267026532970480912003959717144872290263971785156683821549450972429931927556046502801892005899780293181183882989094215616510341417264983782505317070432552141888858599928986807600540536477772463729776987967562328485093344054929195554277957996789110384487013869975124313434016172633981291643072584262524096340412777797436673086883416377535156005252766552016343307337478865872922248789313216660942459772958640498810854235531589138053959399723434101929304040420055676676397293064313235416315793077686537749103420425303109432876050331754536194893031284050921425654902525718882930519348555376269985269824597184528015439091290342231248936396123319135168222755658216655977858712863954712975163181653685567957570892893564706884317371173234543672318731908158549421778564619375669141112480530564050030535132152580348756857155750517042892254150818656213100794531428172232641660840387906309767093516730614610103483313415498025163085361378802775595534586154643183000631346289533993076917263603466299584760814742866159866448789475367396625913470374900473539707933281002081196016774935945921627499159559753771876204558850033714826032411355031666754908955072589704976704686038241642639428270327790600881005185218019263433173998597258837377349113361140536784158658871088828969843321063225343393460601432279435609265946816895136389476744477375002265519977142958741590628837392158623412705431493123577490157172086852712843725008777823669092924746924734799988876404799203063194633236073801526346351778404513111713678401418756436441992966091673515527830970351432454730842291717411300844364924791846577689112460850057196527792878441102979686248377672293077316342813314665364300465152150060941717205094920708570450660165800568517764177077137741150050168757902886037810834220182092513286659226652164907179851886218894836514042431332849493472791873493187517694018975301843151152621170521572661686713268863344369503350823464514564362182574716373573468542173064337001795394987755482827647244389576094319859278245194434630022252534219541283200553795485064976733796956483654195442036625940330264646788955556286644501015608574891692533159230270344527595987629242312699823144269835802801074350408614686675808350233168750852476542427002372612813399036351496603904354570217393483505334011856979626783848842852231888527011812091074513725649984753896384044672390827641914990744391115622825523554345199542821761557286548781762803452443309819599988130886723896999532792893330576065595975303972518142108086531552354022350205699875350395728196481787435736542130462603664413201929612876285775204081954581431220804554842720930866092487539107420294331950899838904163325592472668960699480838587292279050669066031900097283929377385651413428895036419925790079449707342752665191428805490171353166337912471746586772619054732993906197927980245190561263187155051799449584455235606761939617419032845442344067664135510097807289559296199750274177933411235534090663880651950350170030885162490258690238380408877165050895526421713814702640518846419287615280786831931456373461020214634666400581145574982617779656493146872708122119593334495276746132018364725893987756112673259635375778014160365514151384237319108226054349488304975735801393374267909613340506824368717936720603524166507417527069143465659852985919484094173135152972031818133695237161993875619953156382051593431255889706767250791041019511422332366624650610775058731020691460150248640235512976683225802083842331438595606981383736307626433270243539590310498922151160741513706050495874910047906761294702220137348744492552191126818420664932465081834735918020505810268337600001708200230062569284936267097261446759598609070223184154653645328268642779302801927991151343132775279901053641929861205315069472284509982432255414620202461900916503818874486049417913484669467768898508953413240715543373851631968991372241858159230944579896748685679453254365376633159654025638343255845647515661002085247510007527425149963235214853675767006607644266743648485521923120371602364842156018685226724636264313162276355831801151972623115268804720710129053486116431066345423403230881339667522508058474774431490655188572544835305039624706548074658217419591376642115532875261482776029197870571117237258168025394997244882919582812388554066760046818849353170203435991123933094745063237760515668839868467103513594386024236438470265207110055949139075859032276536131857320849155230407185236707614109751857435710189027750911268775468362638651295121613255442436196631452554601170516315073643791094204526017975767318473002225533766420329563270218262523742072781106745550035100091286421030667309455016730721354568619570756842590857083804085600730717583068101159000770571914632768757812692315496794828311556508356624367769373566739061616137883663994044633549001755350083779980035320038789694474694884479888929922423328638465393224691368510908851482714960952094526891521922643091372620014407348144560940406271043576530229450252093780327747927430671791569219607758733368022313487888456810295395665304155000164449201441518177564823177000903743611625232757703068516402952584850711002967374375812579117434801594275218829361366920344202811772405022877038906149586309994463121057048242255105923936875333878846754009961766784943611573629170622141087869819481280368020489085566031700475176594346035578326263265479956048174824644217335238439011861222594169523180288364239559606256076434464396784487045671566250782290802931436544955780964215827481587725677813105456382139664866743541905208410627710953622419324143285814959689276646638072388457770069701008727606109955743920050748072988032188995707487543131136811550304425113808895309612261835149626256419281890513085669223384873876118160634026283082890763982033451831073562460393858017969992660163345240195797553914268846643567120082851996086832415254003220606531597964915467605914244804609746236505611666365306606813913537839016398434812785229020434332577992575160116476674570736426270750448823904664211603716321153361442399884316245838884278305994160037898375033275038725165407817800761424052964299715263637904712731051028230632133195081521589811298950683622373220273478422644802456496911774783348353897828574930118781590361503474823105283617832690827623043038641829358438344376423951911962544874176571648860922636203899590746003137438035161476044679330165688866870758349197587292950707704451401519895129367520201501905768987190413692274502487600315300111188140676446616214497497867808542469885233149163455772443800252931260436837003303492061727978022280689420658385495714017965259694915166045708992313097859426641926795114978391503135940618193039044803983243731512010525496621952440678078585389472582042345541790244284212500044934028347310248545494454709009692130617044652205533889062072294503381658695907229465306910307643240002117487485938411543052546339692089941998877974637051752019503447855469602996433332525731522394321396099860122276016648289702811120735831814914989945291278137437198069191404560058391218368696054225776703500986593459942694412627869201716148361785749115151617722079803233259106981034237828715897542551906126553160939105595881485132460618895960713141751293213656733462446742963576118483269782504932521275707475664422237353151910375103591516698231164106806079333610999678010251558759469506773719795361484137456111006572196044780466040730971175481891926415387061758043445885320508401573226675698981423317414486696917246053223430368040149066771117928106209386561235903142736133160381782777327940332015043394149936925800668305814542752430320304823484367968200920367110028883708655571283857277079184029047319642463440413443978265559563663147176883541871686408308566112142583362935511676079647929603581606330863380236998643267036609994835221485196213470833575575256657021018459390152740342453683630266893998547550282487968062065691114303464454664138744330457733209368486929040594564312211350277604075813470008905177999309591415496908944683099362166470895865930838294929302666978619037560776295425745891708224969281906010161293682610970894305252441468970402409593422728324260741561867425975385481993841657071398957672160588184438213087861132117201829214453178518272823785800926445717617514569669248851613300941556712684913652928975566634694799529215914258779340747053696141494516464395704254123808640063860577234162827788312761228332866463810963714795724532245683427868246833893407660765769732405805488055968500343071021548538652066936691838529114317297452109635718409058067490923819389565951311314305127458860965526916456843297678024193823346335982195026675501488854802707445510035346072938488609327001050837455675507740351178381622811567403296671500513995934531293991251877955851274260180174209505229258917847070538929656664901545636485643579153784690098660537898338999962699790947415981619810005012593730306301743920651112504963860063532808079506886299756103010623081553440593781053863020945194929940392074305356872277542274397611992656601131452705758616669839004682290810460953704438996787948801159258673413915464297235183083551671365412111288794163845518060603155291632354744628576250896839362055510877107353933978197648594506670136493723468488225150165210223974071145425528015571077048114170601958751825276742725401737834899978855211460525505903725150385299688478187080463425654908931851150353212199351578369734743253951169663108282261711063726669716006208013092432700272857573061524170962424699066360050555921719031380402202838257159529307668907981047663188484935620274611744223528221130514429378227609150077301342945360819803479986190325807444625369794706406336793552672765314653263042784665084982877537632962970540875759170871026848078347661511797703208236182158078406836539389206896686627634043336941636012408780220597239953667507726018788851758094255971094415521664018184988186698201286382260382208487778756605120583982005739679846477204821589233096129093709430278737856720449437989672162569185906885403773214703730053321873313379213245338871934544294708492366553363187595937346111651089468810288418044296879435571707994530960215465016231005752230115208461388186331012375953974915254312436054647270708493163465846627886077962189811567758202601238912100603670816338132072208550506119691049897231028674595929289060199412714187125705644055517888748284963526860157483737848997875589509489558050413069462718372465503246581581617385569638508283995743919375094105298216384900655350121127354544780316298568703785928237291083868134398365522627288257856934215187644927661882913327711485352746785074640493889496848526247746460399888538720232723214719022286240721560348917844920681322378121342922286362383713447777700893640559235219231940263868168614640252251498434744470950078637522296633076496489483349312727766189073366790499809503817101624729582252779529453299549473383140202286231399678379368595163242794186156500117918074353596268982085586504589557951771972625500585548351880881282749374558327185076499305583068164133635007408452114726530928500526884823371284613814025151107054092503818298510010580058140427427184617425542709665139884297167068601004484346028837403672145405805201487146368075383657393074384036405893366275627608878179798226847791339513930889191545795851445720175031587496964044306896229722044097365010798404395599986853101171851861749250252507596999731843338909185377152282460380732642455562574038412591277279011854335604163375464026886043813321886727261861883849978818505518890694450398938865472971143075880236106975450835547101426060750747514301371410762045480651996055963329664847174350797464831710050326903943551302481942438088814818555749377781633468872456195661920964327103026389934842898963633161707620026242076921086319650374072943807452997929130707048123878583967191013452105268953412035501330027143215908199150361160372814282912131159748537660106524822075755204002289378485732174972029210422774665534552564247482642783330934519030965996705208730437970242815196841893245779785223798811581415636496941748749275138320762254579653005266395981125076747215195917420214568375451190271167640448984077957390068120522343175173037103466695537697146228383369975464834218134876455551661329529466481907859034861992865089016102390214464171740769449924572873256804208553943329586086914223161133853788664230372368773902191310376149945958782904846179669314321167568142831281867028240338538190156650118242072709299315344055512442536994558915000925752859759403001096521964592017150723244328682502607779088659577627596403147726651224558312005379193809849353286493766959871429367558810740175645709527629463590901268847217396898179334383752134377913715818386113607444428070114283500911347070071367350004523702610853013500034018291610114572259072958434418184468644382892405643686840515869370831597885285831625725912387138350260939669494099999125188704779775843543599697704136107672386116316974518044517460206095502284875620928833261674389467272896395587191320629115656371042789313313660607459991518247288880954965985378467713943968265585266716181516283879089270386038808900634949115827987027041683986287157846390355189139829061007116569813172932115412114522957337376152689033798121892107371465241155773912962640125494652928218470534484196476000200340068574114425002367543223513027610275982090085967424166740677947544762303822328620950147574750817599428563407481643219478430798533031019121429663977743391262452853195972547378716947464715062129597857725579880217539829771954425008300775196964006939267100877367008377687502739426640955060761084179148961110559982498952621934519878319489398320918257893030832502294235935069944431054226325164383223822464942055814647406560450060005396999345894305525247718187792513951841288748861004247809193702025954139242989396237278727784549387607532023186083152451669745273753406840948889460947759787345765079806484446216088532370260482505990507287618676421143076917552857961728688956806889863730639693063032934097014777856380836443723302136000486173728314036251247760197006751582448127480389220423609950917862894291774994400142315145353789104048929317447258189073125790962880487458816890752183671049478544723365931368007377042044451096480201324430886716597654346877425358710419651267549684666046484406815294801652149575447384320800536468471724636500560540713710275541446255989656977197552303837106062891822782039159950618950513052106548392633342848796765714830242947928092988827046901514539301853387643847854179249296879934232168140670722879805476332819143931691428169585808758196607925622123042912371240126510739683289995323807186630261016105226107171082166679478352642880247804156014397248852435752103935914981792274266527561270561758200395548638619873449354877210747075550277631176320175395282514349614300443325382808377679205239135834944862779765767741517976472547313144357755445895000000935115875161031202012204277389778307451042649974967550513224486793419254980346711541704177695493132200021522891688432799593681907981663065967377626063184164388413533071559867744235334872584807278778799023760719649745715781750380681340042338005260902734242951275081898268816499594478456619487328930297646881885619790396135918123962508791716256883795609869497637243119058072540964899059970167012268997950889624057858649518790981023757551449833634950599662955209062097933200773933121945542158659630343415276861770574126441877732500043803096441325775610295410338872295678533325004181656961546588835921514124811919737703094315685684416966671660291766836424874811472362611509975757886740887236372648444495445737669851658090621828002434636782220177517927895827767352688863713836201735863678572113206527461396676127519439509837887176230761298876846582129592489421014755620838942145683297593594483434169060764181059881757904248148166878494141229777966573679993216936062843832278181442122044435406046307501147141742367863227457425685413829466221973026631993056500013064934476448095388917883168430593128062934980789569585591539650320894371128020015207389263595242699954897906521814057859447667594824197483096431512293814645399004032215369947258660855654897685911423407098087345244135170173370693873495924027468322663478294370168210227228103303342217827093907463414911674063240669813188777143427472104045571271589185890181721041019158885658316720169943314885890835303571080945311503148443086205116800969369350930590509180950290899375983440179519181452236842046998138040319045396555727687344252102273506174966530515859588457282606215033156797076517228310130496997131588552906251469589175210201357531123825701560394374695005457650435542612360124691696641371859812780224508835355578458709305879303937337894298379846384729392346178902574411709997112749000990167697492633167500962941064847094661049896761987554587143498709756785263137450360885712670214813597191201537916456529837366075781036841972242161871865702270455825952369112426908356319445410735872984333342024759410810106041819555437668016854097253542252042478507435761077956269468741105401969627510072281504935577576473412491564512815661684434845998356731125288945805996191813007577848400797712784262350383496374853344326877612077380630416133258099725517920141819825048504681925265633514130287350614203831283961308670446923767395102647928112101515264373847733998883496893761217054617527312256609224353501922106548820258357357307052686503919146720856620428215517568407170366920825292292411562399418754069364563135674044635195405487887107289956596894257180545414031875047204442332561135991066694133034093283542686387662003733787838410256389676322465505575714536181567022518986021553790113290101021000004979973113774976595143209173420816424315631216580492040382375731428334576355835324177158914422012837976271653450311485050399427023876976288487870559387643936151398356568916283738464572547667830324349155628196182944410619002790157046958907681512683768408390561712419050606102542385563483714779981813649508159478552891058013394494045592630434819429178732494255687322752415159618709593901707294706496458877777877684951888999772762624092759569908899418415445566576174338844645871628742601621157988617755216408150083950981387861255348843927096468707565869082996741719660673093667296445667767979100420836508568468154133142676028336323386665056142175282935260444564280440595251867662169457930065812547424992056232470928004714856428066983734808782081534272683314332529634785099436566471838278625912688181336157145750485151479631318942112945699154601276427414074216388664440797537676905485317858845439766711078471142640369858045709855421695560738324436454545887738362010962409697186350204377527281219249334096878092104031321166121175663717744419908748348140686730243858977357584659800254971284741792305636219636744146982457736588318784210046020988515610130938473780964446175239420778293431090275082826095585106609846298244692741379795996313336266227248997543363175039390101500952783758984741002964894024183101705618314512488735492933592150307802908788721609594890940825916522409022246214471349695511029122688821097099439620517605147350916490448203757058981319755876524525447147202989028391473505522249413467915629316071693193726467883812140608335331368353066594624701258221247947096817553954433684065000761210486718519133673033454343762273787283825853022145524182570324170465672441275258482449568267899879393301303444466321221238390962345578263363332266308898698424710341084709766578743848415643538558904743702375437299808551856443693992544744172926582586932213574780723910360506121356344962264442658217035402874146736770070275150744330884759575983378043190546044432460733550714271640023049642804014992874844323596361064897183094336626333863373690376332373392430662003402353750746275468818994593367908583149887146105749555858708291158300877978519489219264961209408280037251471203749410839015398954593032424606444726199096298618558270924281580634395450639264760511038042335339727422747245376448491437362209785454130050135655940406854499284153527239845555908397949182656894742315464644188009629144903683573430472815998682835905699499494867243157500904760400047110536739529235855349243413599461190102347374749438341986731306549165979185778379291413139019430424650596503007995953461493091575297793029196127586777348101425473442939321730053675932706401368936232854759364367062909398467852687341918694546941319138337141106365435799676996335575829851243699013852927584052738180266465756618424923358563985986244682795421271100130538687060687739395312384715510986622413815250022521246241396733740832207120067897329125572458604000307365799436941438325658875587880121704754436674194301399106229375988915145503916660795536586624323569369272985943134250764833040434655392490239765971847794545347415655161016483626054675261241418520426360136850147772808124747651952871022533666852403851565055457302719810886806257766625168388706310965213033351141473590234899954721417170673556138260997470141976636278267646846134988753867187325996826847874846248667378020813298537556333650644858111355995629601708611238093514781006975279114205268035234136631406163768875529452523729285297439834919168080638143505197350033399918331625870513200204721889532404073868075099810686407796493138381627957825665824978159525502521711734168229836862093192452992747026505150458683789180821604842050883795401690555886395760513912683075207815746223392393516440657498192482639887253917652752397482693405202043130437646204748607191883528773423006648848370873921143794043548851567160036592392037676351656800928492119323011495537644845883644807800541779189769085588191858617082455346040881562632304789361640957331131492647439130228261655386237683593825713496585119097719344058055824547604431007170048458445080589130782247371035423014302470035424720229798601760406087408877490951128993254792749058019848718699333379945917578568755959542821657909321155303753995883504849872530526329637621140441684388505835821112658802302691033857433974241402477003706592390069879410147576377433999892988830706409625258915094454463710161317760291392979172120995261932478850374018774499168832672822074137958864951043410459242861862285027346835910285336392777115121855744516094320243977854523204246076923706473241307167673259116354566239287361295988250671882950666761937395461746089901847450471094575123008912995224772128058258122729049378442250320713176657685529487350167103663154258562764766651632829069902080477133978558989216064000962603966655931625848779759327839292264474702132142992766282697215381276598819412850100429924705844926433071756653265794692038701132775858355837950550642736488835229761869375216106729135500901462044482983455466164228584541594297754712328685374032599506429175068989828160385645714638390014469944673929821719305595723684417485805503998928813765197873201562639016547699185424443946457182915043572000192956525965574968166198814365014291363185914699437067034245392535455054698686956660465763271217746983100906665202084481371035672887134574383847507516165652321855045770644738356646767161511889840683349679343435818652618743385962875388550835950596313901493264766482398851724739496222267156986472582191050564230567707370848210531125605162511195420055386900643633433430185252631499527560402023881415602777778934333583296331577411404797550450452446401547201797041966051490758407879464655131271123240441292613779029748065090553402899983787001839480569694584998480238648798466241003922837780974477835253994855110455014998572279838050150596631962582787949593226670586577593137572285747780219998352210050847815043185339923814883228905170621151748121844268926069070681485066247352755132254145847739888427070719846778626391385492090194353706479650339798887359941997515484118560426650554826866494043134621177415797752301563314061762921957544013067207982922826233617117317924662594886246371700882802594354493015278566350378610847082059898016415069810683608054966821833331398772573260371790656667011155057288216583526701166783089701728733222213086836255558417805119965745895907972439767268022989988309212108720062088126739325112037746643604514164084543366290022482662992645328882922275076852165050849851937361332944352158021768999581857719752397370086081518511395183021714290681638377371013808962184298334502099999643629618182969176893519633061061775257202070467654390891198567397239635827572910326806433309077739735672391689714610378591776382498013068103599648582823498685363514136067601516206560212622287039082185597140804054552422968990477969698091287612992006314498261710714902868057007995191354377377821996458465988253155285721448390267611782154112359502521729167315584601650062523396474336068150957546618490747832598191876848556265723696884815005044131688603721251321643156169639865389961266204586296612689676734442702557601490973162924013318249893489540059794498624092513010280362828396426056756182959635981087171128132892263581343461184897727361676066397649634428365341299419431495845281056902245980691987263743159736033944545712037591958761118588725414954810447820478636549226280654582116620940320715782205624773452041115452112044421693852318552321327017465117994031764523329335858074817901548654546517496505868983091286461606736189835216599580736952689058432045356557187159020881479407342084860109269332976037623130736790220994766893788683049574884729123513596928974879638286259627395780779733641163587242784997532731158123837791314268598564744150617121157615428129492826823735223438693919855381604336183970322347588194041633973400802474053392591579663342913069262673484450953979895090381180495152219701980908157450269739063418109359237415089635452649169957654160011126970491902926486586692317825182269405148922041616539181245799566859141475639461809382739627290187926090967634931188665386360265164864263300389636357706131360844729778976392111889830119262035253670190049052944829390465436510281992908636178084796970973597159710277436502955596388159912387068197226077013870481119342070115104381620494357365053625770852922262014818864536807214774165980044491430160049066535861391825622713047458427138258886350559999999124669286789703544727811878924382765852828559361618212965753903108828788960967302501374729627426865525750575351505422628137004550477466009694032869769915639991848778132033199382445698633135047991774028357250892653261821321519311983117365114194198006710970050061804397855397408915563985354997229737375307443998189590598524671544865719475292318385577261341366288976122113057978167219015734887580713471206491872627852233982851531623257096854138579093517601684570605511141950440117358510856262322583851404958413973056524689633873828935727349103625813168627761966798941570368381355971666870358152572794973202479866942353931572652990712708719323791117820948270368379403852776171380612150347906094192003088922281104066751236861112514245108203128853471905773618632458008602656484837729405580090510768092753478181991120281341353764000978032868043938892315262947715450127824273444146089713311365882027894215566081593870355624202532995107603409757976068386240294999172707782530945604034573246320219028464768327071301655663524218489838301703771640477817266529143067016474728930319785166007139611093046213316326097322141728736409649430310819182914571538632261409153259563745508336508776340042941635906021255928109589804938280672564027928387728085082845668388978592182500687947792264648041874874292708766658602765644854518365598695057723587474516057524226790445163658915963023765519245851728484318360278657016182058687008450243840716074902299927367440860098101813449645033741179912832437906317894946263331357689555727643307242789311769118750105038767696404480811501465760763065805768354421383500832929490146336415288554100062779174179686805660316416199768499546175833599906834590945405668664490592186144062354881127123610672397412335432510196946009879513877630303918902716469028613759577811409722792556394612371818500237692658554133612503083957460560612853459814505810973219893103990843551468454906993910236564131256023925380355874284039390887367520739579382642446420921208686332815294447380284557323406364411650721751389964977534360232773243271626448219939376162539207748798282408736667965950798943840487905946544640935931801807440948499499419814114695741573312648800594995380893659434331535872622161272735325601997679266671821680091468489252333732603284347389081992170121007693120230292952223487822349596776944199010386227265000190145895445048267284528188226446040275967954319610318468116933384543642325780403874670804621918956962557945764008762506681092567379168508148826272526829225125848477770783301331204339666834631398145287397259691992373992618681234127816364849283549554107118283315960761028403383710888568064209424577383909554191666353995435472746393045736243623715703060458779715974230011121975857001490656714138228285648792553817443912738098835862144393064091693820336809046547538436979498731116605196607503726278965883250012422550965927210753031348044740166303058944511121079769114054140331011658975962160020937138798083749586382907024224745890515845953617216407138140653600489815851387493409124838950015890913010811203563853299708748173709053810502955607269867075342206042869662932466408230251180941056158875013453723521880181044087898930706428936754901146806532966103299030258080153313319330657919939564593138224663393784371684130089856294270170059332760251417513853448008968399152018167409738203024062709773684737196643734133307897473768513216713644330849240858646138438857522875520118139672000515314658616617578048946887846256310829319852391274536753823390728251329717711159554006318590480995319928293597378303906672207478021245325701289594738729795800692418104434034121737806187185578886533790027748151732090806651320798933194010735499788551641320494914138919964254515244172723231157184919113877549724441798918358094879626260737099609339358251905653942600094742586850797085438330714864725821618101249908901988348455634519978120982620976656568286218974069613694560216414569849841814214599898535540185082715328165652006882344563594763226461746738258646724573747645405610550338058198221124717561762661928950675568167152166902091099695794843883718706836295376967911304988229087935905490711148471038737520143604682786506835626240410223058621774057054717116040922153626514505864918482498492476637926924813028533824543581397621453101954255757410462030193851049469927576407147718243475938174623975768259518831790412980528216798522918012099476512304761285397058669436406533017128402221093817657445130540234694605859069468668891888824654186603141666967847763883680751553946758904377046635580412730770394984586163221544545973797178976229799698687883814031001472630241297989524188954376000504566157527757355723632652366689045806299173559103306561440920027652959701148522788677738873618820410530481101683952000681826650379069317579029293335810523231987016645421447067565556087986672351415547505507798381266379557769308187756267561900370824636976749743153267780132861783894378325852355870713848966695891674067675908968410725317425698504683360444426856287026069840680552786040133813838186146965080387254767722352169214767972535181665262714758966985182436800743611576491275736706199636332105391256648986730685774304486838323239374713371833459422313223915011897751616188772462555250762110423624051379617278789323739137840489860379679465919753745625446484563813711786171225749091135770389260827795949414325017144664284683564310952681355931342102425088535588271804387271620545115308884678352692353144447865319621399037884942005884312374870067223433023049588623656081645227426919948234188008687646006205974088435248804312973302263284775985004705323291012032550461578443268698017952169165232518244505158851161902017585463430501203603888909150923402477835433675058999673803534831201416853847188103254791792857027132916052208462065378760635626988595437829437688629761961102545663336049543775325488966080689238676990882597559713093427743845427511916360533349543341631794806496866212732723113535822606591067015835263751777640564690154233980555339599020468726038841827903887365840303305843923699771339865028751528328562431810234507089783153607161473710032074570131057086475845593786366636855158557175173781702181132264938062266746929007185731357838666367601848126656747600588553097435515606698558825311772191916544962028504151876647702288375927922716322388209326141855381068984813650325952454232070539963114570172273544622083011254269034977000942121174593742099980552562911340458296264224227868410032515835606550895586714273728307647457020133580773446547440370424592274768392443871918046664818146880161951234204678455982213194205203880729997546973746773745337743012475282664686461330365178051446446780572260800006857915580738987712648330747317152385851731494652734576105229870804827679019743612518292750091538888936757937508866213955851083535742936318705918038487500861363918216532667205347970451654334654417795668202774930819375393788625442155521234326919122635435861057912616379873292130904333781293645198037038965958045466849425504144263422119215614251254414335276240694350467859070503555939376730879119406567563153842913233389246514276076153978324616858964610605621655215070278669322094362195129464103438859762654086566333076192504621996057950238240902554409352141631575278984818609082311202125328994729518114372215732988374707869009525506442637197054671561036025137690391933194796439644245874659090926678881521003484259791980390998627148359951519756292355235243920923755248495987491180906172674274645673117337488205732256723011770135463689836910892349456820075888063826401632626641088285538776804363053887578639104000631742231629893607159931527864763214018669014390915321558684325027339089295261346226338002452733133857069198656079105237434148913144500572244887502748878691209015282975865125622036743768652835998152409477173443634628318019838482409153028582630935827183931352620342776897185136308000936474342298184838619303376311286222094750770150515122496259275282836467271390962778504123624580554117614368252813761440458556130738965776110211173616871074645451396527718742344062364804055034351535326219977293651855248636238771242085192129218023046551367254909586021011017266650748879872841191362080853022988638784302493349020635617731084888738304090487622977673652992088997257829142438548310517584041097589540230834546274003463168091766711959575423626473333245318845408066470562961770643110876170200779389744200942949379216951919926281314751474389526738954839707501705621481394844757735940106973521462939240113352142470717252420135122456527930735597244838291450027200669862971578247347669998782322479360713774921878019246205943191290788198186082749931336625888457258884081028849299171374710404359614221731214614356665410449317908048031764000347613194758101867457804825206575943034972933459126288462292313004188700828270208204763274763373396981104542115921366539233355944239295816891595549665365390143564149485160761968371915966611581759112984992861150853407831253215006209078466098692038543753117068260839427111388819859779437730015672212324073350475589911006492101073907071270196202023863945837002405568989311384840092053170344594122550003747851292780528748152778460503757111159266354657884652776760931140144509108919107380527022488109471845475091366480189286197731761005156572747409708862999776461175137683368385205211293202596155410974891883880548926308261298318451735429761192868359155242665984226646599727626300937644138884617716840053569879906897103942706297764811239585549282078751169053814346931612732592934381142110521368351102157239974892590952334777609504619662254919464266371855128455962415325098638808974299465044680069320037129738755710777025367219785204310622460349680149177115427308495999977840736558327171815143004869733362076699433184101287667865856525349408159317172269862914244935075412295720438148922491198234922050535075303593298008709529331431207131649313874378845767376621158995329602271283210920150517659832668793729677659303632166815082095870931373259067150529040058669295458751730786277852271499666920550555490639827998242473437013631789294766791241083543256974291030710772195056401721427611345444604468847527143479269058387112145614267391545446202195717376267730645225122507080318988491124469961236548906111483659565189546278342825426700666473232067094232498944683244074887619378082028129987497331869694590971796865089073482996673188128552850124874444050031224226910571535996503555052468199507363580242678895086009136791997242148748947414530835461067935381322231375960056385620694499307827233793248838867178467176111224277957261287902447856663927358421605540546320931023777556873736953087245772499406488699925342417695392769753122356498869998297214282049585807048538083610075105988659221118814631550701544197347673184559123164145429167958052230308155976228302180554353858492660332700906325128090533882786449212993683593805418052675870787568011260340394850678902886172102392922701614217048374267254967105329688265844048263308957245102171155223003735795297833858980660715815172953195026378620445187368111787965560323264283392197435014394760838832409015811311750323266607421897925986035319120362477084731940226584508146489951461663355682757404677598701311591620808280573922957104944629902335030394726453099838720116127563966630183364396832323866896412127335292817333741132863096416464382112106176755757483100688798859453524213716806758687138948066930060578079144657833599314814743532804166547383015513667190443328697859433357480322647986916496204035473515103031836114914167235055085213842859948226606511613514967976190888309216270022513758526286535208182440357712300278334289647046228747519027520530488913423472167035543406969962681144966911346034069873347214238517340195531649662172996343378592539669943667718735543053886070004019501077970588113797390587484724654317020825344370398818941271700213983107872156869518029494506638735135983455182064437955642903125506480011299208602621424220474326866450582924552264516708434790701558580916776511821288534784038696333172246749530883014181176033548774801554642342328115776068841497303307608879182634320415062264217049075433811858438722489571401307238746614491210240842354266106978688715162798251654011222232535449477386630087503308376650829284960207724870513432632218798409894987178125055975141894399902340090152584816401585329798200593045846476875445584296775977583529444012162517453228649177247321555739229332892397434343900725937802432856342039466473087480706547178119107042271710817482407035625022790912241926815375014393302520775392821642631749708226900228602434711071331108550947520593719463974292459193892013505292907139831928654272843866625677851077007286918035416730769743995773152245992543593449261673900675771238482688023768997572455120903622489665079042305429795153395880941671217971273865010761712213459139430878370770882089443625639888895339596101315811878468040349084470084354513449900971402083449548797572344171821998549171143290812504035059215423578095270417015040778866958722976661854937707773736592151018534448437500682537395519582103285359215110978241985681926800783776594727086592064892989917200072352723549358909557544565453686891788813046567645209575433362088264890515176108122076065783945043818043402368454816089313485025127675468541144231566906158664871524765659045663591790938147191563224179216439072058435932870968132699130034681695303555581414056678855075200935150607276660179404842748528193646968560909221943105220651917259387472788293005390109231084053455028257395918750069424281397114292087417053637731650465988970182393009198926074494171413938804971046820075004880756718270587971700186784270822822895553330830919969116995973462529461276634407144029504156810235521500629023004978937455446083986372220111140511772147018234142610781115921548073133833942617202622882407873371335226815343976936413457493583907798330378108148954359649587299617867663154823576688635327892995466358648759861366572576092551618715502268269217004833052329159293778406004047523436146020929490831916543741220543097026412260221094126767490042375803000388371617772290392009682112166797484622828585015138032716191588437887266642796811438256428594914337687850683514890488195808468283330795740263427664866894067678058200897672806269239566220568547200025919956030349182873825594050678495710899221311705427697472496468920242681720619044549292012760644947592038629104533248015138291299162642171601097283239877817417599436465406492173109649838059508382956681231174226800363240049176410937680008672062235521648246996780315496246669291048353022236052010694163487722546953758151018385697774631750527355763513230708193326226914312073158153735675014256357704902434319681752577815427655499025688790437058467802065541529981541691188441686692592082782928904784567613237293587522132993214888205907458452981424495960273400249285303394868688400446264165088428225978162858788931260266294338875893107000547236975813193254841541380886764352970615035230541488773751242056101547575707237282869982168272428599049032095411071889959778087890623352561745295645836815147265154608746469344298384423093854217543094879125320218457664258405833200364580685231921522809672087497756509519268068844273616375603240577855881438819525225096776678128660595802840336739950019694225988430814076281902834732039080614900965096493547750518137597936275582279057845043495913725863942509180843042205169525791440732339117078024216507664467268628854060729194502086305447567779831442940978208589722788833118652322727599983391961543343870161629317763045946061246899878692426031077198347886183413798807099725338295258618147407035331586192729565744140558581216653856310360935365561825455347162384716840552790595802015664009464466053191519013857416270086816523033331082152220518992675549415516135128167132239700155384179163129077564971707989015626113415258872622743680044339391098959220629716547093150514147818107927604512463157533039111357042959145681051663001261112001477086488438952291632295192856130771525771968132540474093274038655617753317460671312065522156463885699226326109807772721639140791640406836804388653723672432430915478510147157246883880042586070055864174390120916254552992656056297398262640002093783279984624606715092979647026155652838533549018133673662952187919582532441018738173212558239987656626637836291558977485591598792792584862224429217375291198045276922949771875317693074953565101618199785688091746774066592526111755540513851817008536636575031422898914191394123219684285163438652943821327051784984767323439613074893079960581012237363365785783727411028414549413321205550165430287116244571784214151304827394879954435392298944950231192922375565146699202817215590815633571931091363875486394059711626127555924891583918383172614932932066006459238766810989354331493657923357617557992967982756795110122323349512785966871899404508398796144477327826128265028215742429708560151520601527014606467258073680172948583256497512466604083356467437555927718954907396189619250692803340347311911345939538532255820842685860883867736987002150388344248861638246624508841100171201539768618030354702608701157471596102196045795966498912027019928104112424580425412538544577446266287218789824322113362798760603160832289944298589547761391357948377788877949362135132155519596194747489966130076948181257964699599623213117424691835265965664370578752471999733159472836572134485871065216281631620928909549300921527832039771030228942638943337616888801557514209079918262978182742371717422992800278210184771045090138618259959368583652197588497383212300814499876225022712687281090838781758870793836214869685259146689521226066748539539442833517763476736377093853587510808796368376650095310417290308135767302145289465789880831120373505192235674318527975612169820965828769267036449469271930596537246888595566258548941759631866721115865013293859530029646889704666033441011538058496557704153164645076048795765353588112175630510456637572968075060486478572660070811074850145106546940508263743858305519513754586811133599002802396328252758384159832268002178220485478361504686173498205776645586761637943665311466832802417129849155382870287262846957581414931252618343427329707858985754322263561323850386953187366656146771353866471565039316126034252027283989102237863725232739295415904665595849039182173511878966924256396748084856241381039207273027810015879160396691610458217169932120454205286545625895536725068949654709781901345190356249981246104761291651986258712997240866487191391405074172341317108526400376798905962622171630433318657853752933462539037346208965530812768246710025039929280430826578333340893347432510951446242241028874118380926214577790249230174111142696689640777151374221499468848724628889508108628038640891109786754672970692053062347563858260257473524670796954079637554930040426527045230808586627837915868416405737133409594104760151562283019491019772911807951320828063724975439522881183040392314316068292931786533409384626843459700351946839596528098064873631024660229177234769818926516732613264764934551413254207314005756964714299476241345432997681854895821511202150560993275205874087491871081106220280758477099550429656416738321515834778937440003312779138049867924674263879478040383433701539940341005969908767886827636587889816309793033001206901955000872718697294842380965880718905152023988854671169838068600260759672168215661341304619177784195377689655718980338359126130379561239662222395189474399269562906453923026062245586238226376110438832410270539417436801787168236976925381988901218730505126103817500728853055025951003918545867075426790529681163298150343017640281162050062869810675610828558754368897135264578570709928801939872846007345024705909935282823248222532315218793576955713422559271092335183422334902267143933546560074364535340243809858831548600759321469337230210720884771918308539946905277704264539853290967376104544685810392060920858656720191344827549402969487530685891774454393221956955387168944735596248224856446082389941489437078931337847314538947394254003045125248780900033618535968458774426220210233505605576100182506291931451567003477501861492867898218311857292460790609740477602682220674585372414155242686137908878497640972845286181951452529677949805119822306786956785902441039557945458504707210536421980648660888454734815854804271789338860607984119690631836816253513360806370411259027445141272190378230910400754535234984144101808336902251971659723540635267030491572720739849573710463459073070876351479667471426433618412286627387810141674727939312000250413278694698933350164252759264147528769477885450288825818611400688332638378452677382011275194148538958025202711282804008542492835202261110110901088341310201594410905424561056062857081166988633374005605754255595549342854463529786441272286302060204928769619569046652640812066700357291422404546566910704796404790160873787880832665192128788405805299760839540682797731071965955849792489396761514918349370373673213089353659995707859783019033216708378206617710815417100389378455231822764075467020623731652978965503845252938102421405579711662867824892568459069037856428650801167184102905102794530102810587412706479362329137427352775119723596092332655894765949627653093610110549511097562434620620686185824789315517898493643160567356778731694156671403283655308358555061163899511405945640456072733164755579343690631999300675702350448597520541760432321645964504034125175622650744682654236826718661912558837085461395003022337730865546073323139665213662432012268377412354095873011336154770928420406935388503155493373473918357628795371446210026720965924330855041122338627903148501452819347918576290417462614609114270718992835699719265961228009798429878330962632282544090848656004317811225413749225537699911644819076286833122491177940948832811126864316841831773412083466203965425444549790766625598153103694066026268432100041443467809205934617389699748634974922813369386492562041386840286988058777217113996982079470211940017607245922814671921505889468678682304615361335147379194670188838545605470355555351251682624520345276891447476039995813831783998134497080801589270607483759675136269392143674202361948386657271124591935184820407964136016345154680719312605583325806904696965422058367765070742366457973791120167498614787865577841315652296406743044566940522229422310006460313847194151431039434704486577906438912144720684359890778198856622820091768105565766327507468041304930193404464088885801191635201891462757130295358198255092105581755134363163785720983414004856545470948668009074082468190838100761761234376922457145261594681330349528003069585800209181997050595165451682295069868139359121262760700321647600057480732790705806399683628204230320711622570639776905798560467022736210297793972238942335961701257131112402961245014268980065628653759761903912654146583056938663121180343801031206359260663738510024172582965027434782221875404965847113233584983276971262287087447884064224613216712131371853781437603879458626452302649436759616436063736894895459185017235795930904343463801516409400981305051712231700382919412517957381865315869306272603941991586210193242659726864366629250056351445800541883436991331768009960025519383653229402647914184846299325353347120740202195295469107672030016610467991968241034388258890285299074057522215759858258155811114301504668393245034090104274297606695596398134611312979714592388129385626909839664457095425000555847246860439612399378703167436243575497695485501069324475985753906927471133816300737838646178756522957788232637760413691281645193301684892279969497023052201692036950216805982018021747750696143566345826979811925286870530776922779788460652670405217758234971529991541999017432452667269719311385376484042650036016258037678351917307516297180806177325513385550980161745745439151308056725529748965998339426191471591028083691261926676896090730124976851758010551776836595309053455247498020869842722945229350481648858208605851478952330421869407446766136396004347914178839696894326797347907695634139454878234044421981516693743589801676341814373950310684075479381687015926662409572179640856057381992320326366733851027539138967610984735512766471972034582376617773110860671890858057949695289856145525992873555605766473504596700929839118828761176126593846691204710734402343679982588126925340369289705437865897348749034298460287194483805712514634188633934764689031027836616786982252673710260302283183355534798995489943463880360557567352562195435468056123414032876103272675213450649482694926391470006572038922151738620584329463514327073531286188832731684951158123806392672576254227818106715219555223049358526430111711779056901194732623008191360533763181398864760320042137806104486007694191726914707471388910235176020760776436207741720580318054075290222257785109774827806882503202880763088720145189021139421828336521864362226095042622724197893927264021971976695074192795536142319903100596538383219975360622519008066896423936006818714035535952781412337426703381797003255521919752873846386018597944176497769637775347306069999247765850223705752833798760360675377717112100998259112180089156309521423998934566779919830378576743435147988433098485482242737343041725708942503801471440782998258100202745876309652283282473385987331537367719690076960918097490932853693670690787131120188297899148935122574544248341765894637871225405780391411221081907658552227863905365389821323593599687334532728669509277051891306870776257034933456146841665134081851202921045530480115300499201083146713676812261747041979425767825043761785751858905032994414277963503589332194403369898393339064061640008514420740608320239735014269366904595342452630708457406715042908657287193084988215449885077506697313660081012585780642844077179036682586327165883443491256135217175313319425297915167143542178377133322865208568074503095071389108269416733367011131383697896145008603410738913524708363636131657035057125261531914617730217403732234334136199279265266651772617949382875515588072024194862789306659338472779023305102792960795589330176228141364614502332913861062863883414333816788443743345212170612342827323183581483365590058203310579679506622002719336060987335115383151311131630371710849065034697106152812073954351225400514774079461572804153375746929629713482576582221834069611796548425676310555150637853034209941412119146855785773018543932365439561875896392764133733967447820554196264027725374277804275805677540651371597729892336608782695833220548958688842396647617858548447611670881533194475024855764578279054023437433756609761736797738485515298667385073177244415174572290046142874198875889962181301349810154364830343303650538373609905978012044516918271909775907457097832785380512621919823842087115371643612470347223042790509323903425704081079981972669179764806648718398256427720327711450631703027137091186158033317590177804781695424976405703579886590319373872733219472320482334201007144960487203178200318429992301072115811432401152458752792834644663976513343198278788204158395950692282528094562819563985567584723601819088766352603477548144823097623147545796762591686964457046533647232959665487616143307502997857593262871214454580347411055893054603230376258449364500931961706773439984455991885868391573313650011625990487412910386467670982022578327659706674827368714173597415256978421797575492670471133871853912773423092134898660993468974439353258075925717979298803131458834159981529319105335422935277814773684317585496597280907365274762564544635500536314338257569967989831133358521807286508949097989378648110297948763025581227564051779290375736819779433381244350514719434055898475593076011352051396841941242017226616180979772680694741262038547532208725330099683651117632483640628752162046855654519160297407511513308704063852653040570240390807576014133165715892307787645186758828599291304195653528664138619784111561682685420940779272668880516254529644992694629122228800315310733488275243201836779236623146955507522742877081947409051340154481152491353603937327548927499234002610445734381335780156324102699451163931324438633109678671694962013655287155641976762345515941842524200837267294991259199112214565855919035330382176430161613573862142835091354922845092510855097557299431433396189994991828231330624808003908281440719239731354413125380764313332333056217813223642126045229462369608898011385456794832128442165073420953799867113213274803886472550675227447228041490908626703024191543751827004980325745425887568026096228843237193470551859497283267391706625515169308999390626427774542242858490420668286669079216742841883092058581587853513043381535871307747584139046086364861994247081565140062877606558099678510195637112560422939075770248215193673536571250291178054822055606366020880138468124441313310121361935398030017224496071213690871036237826295796404537822879811035736283972010496099118604845211284517349992762610889192107999703470307952181251493243953285506941499777236251540195149458850023154590037006537897971919889871506396340648702216685718402967196214766277612232469767783795360168452333670101900844632696591397501672075533047502326603870484910975963120783450574156980904294661913189419771845188203395065790816891710480575972149540960865923961705450445021546874022964238352526198541147796722490710842564707918314162233252391958311686320916559255980135351257888213771268296418488891387548812312237904435779948643202855792560170484957555779618601501086227239933227300673143493118191779133718368213331848931099299949253859468221625353769034362593351014630903508137397993415765712635336571868412438959186270167372403292562355670935427370100363653905845495689632199499955680656771472080781899252024061637008192306281074641351977049692921525734671614612203258187591176694533044975801008482078002744685501713398137512682923660496241339423563535843727588478063362367571982757155834901689286132681092273792268296490785836076158083115265021779302735064017150940529193119765966888440623292643977172073206722632793816602918416007477651516262797691035068671968145681074345281309972881829800766463214090041697300453377163126384965637576202000091274006467743189257690636356333064205206078580304298971675279404273582248064442803733800334986924142370103627674732987893513372796407697600605687172996645748767240184328888306532931771990431657652515949659371438097778665186274041408031223140092542377106991239462386026913116399339927689458993210189328745906787947812058626660085891709819761464496532644021477493574018619318352834958962901840396969014740586282407240558936137934135262831713859191405770604836015660799029806966008611073437663425183585149970878892323913357053767685466300894546595627739822104992624528435063455607204936811235582677383107006767824905343684471232193184913945044192512810535550900565677735830680891254761091988751642462081087962501504421089505769793553577284080721905810108858193993206650776641424935902697476663806818020676668483469000080559488742386569287225770696350895747650577002956128773023855386960404303487197993025974038887369232020016977675137654736530568610464052285472196445020236481757287450721223568109558786346204528544535884271756434447725649844152931517950420194486473312408634151808250170284827594374342214359383519771494737161253768097752502591397117672313119858718257379832542527061365915294001118554986791168399919565772112531330563995920699625544424666707018556090045291510153317575080898776732175501665043430549837004664497029605239300434776419786460856197904980142205689848332580337802039356514678080274256728189414567382590463417871553845488039813242431530619815191762192772254814816974826559415207320631649457105916770911551820161142175513584340776503397452804207021558586897471362571455049232106103670602080910456448594049928384906461625706026826600636041567744355951000815420844151862669796416957371243143465663651735998052291450209423349425997338967410591447441432660319686522577744366144260966439003867601515900535200376546905915274245468936527820497944050600846066252814174384816394059207698623891522467242093175690800957533228778927977249501957485011863710912171680378813511150876176253565586829578816179962701658293896889094020987542259404789723722682180820052140410768731032420482970377174525629232916860144860224935805485336152477361371099133772930592912475957054511869629524846527781891221084470080474971549626744349252438932434731404011109643211003610546772067014967313378080610515704745271396768631353888698680505575377861820820861150349402236204946311223815975491179095447551838985280250186912229875197718604388074643616383461959172571075363943707417684525878844364908262514104919816987611387621829569306780829054924389634928628767669817684730822326243539172242670424282174825291271203202882508241988175530994072124179970907098941192921236483882457110025640407093183490317785216263304661327474963287756092529613060016268440797009248194210058487242196966596657488505209227305601024313255732173867875554112218097623438964703604550267213090952876024399819666031334296490350794063334275445835276833884780623451787489560000084469045666595143832499403740332091582930814547284479515748108164583337038608746163845152533860145561780555323553960424995244657689102178619894212667317282412884649855649105789805220241133728808324719667474792763363764523858607921481468292109715190996184415447791750356810110602935916627337857001096212838432991279359489079044300739066191216323529200585793984523624008273949623404540863298937563549081205464936220550771397347077347545684603682700014276709643717466762938343885990337395420826792076611405731405248377863710807479629690081766766847268224454921897262371583239980998285366057577777342752171014976076050355827195371803970194561625623898818767159207119646495240715192998612806363955981073190998517832037484651956052543454332715137621740279536232175841783843972642579030210587216483324138550830390168149357329848275688690483913480105655980872716194936269798608591479841292619275208336641532785470510307610844305121055286851677645847776367016393108629678988626667891829833629587341921746538309394423463694534485557821165745746723658523911337013138019541112781061100596691391966704443069818763380378319252668732592137449790962575071648358113255784254816382324817315330459490881665069695401534620326140699454970144091396026816231723172980418225717541753965811144823847516452167423136633794613438191951527404736503632842912746936443672613564276746052287420317913290640533343334062726554595598572941110976323339031962999251269173085000429583175733984827342433110020562836426478302165629859261333365157488888483615693262816787673357445081030990913708670004074292568299122588773411533261762726871046900671725485197288870529651208175223889078537041823586055215357432875771335021701721905471530482188564533157864943815595935209773864765453562039819124619604300410390642696991790596022203037008962219325010212572772439109173133824351618994184203979263246016800010646859977462029027225201251843590243982652103641547917272048503272300057483582213688151642734652890437645880513903449744226362345344369871420161049528624287317340217665853497501984340647344642397553024283103945116884733565740457350655472631481598387670159287817955775087357956940345308329969605278377230015241521124918952805916641664610839780454594286833692186974716186072286670319311517378464952949416887010370991297751756786791798465527765731791994936228697565555019141708613473305902903753984783438280874758831316936249403202842362239163768638773255667682684541284507444778677201541850689811799072272496246666523710961612631918934466390806273078257091036235086514534357340702802076467140182232894623189185626982074045504388136738586784879463634566409449446970569108900917711442220295138328042536159316073550783575008062943520922170726360934141173561749782786022887243364713572468036831354212121472574208559527935832312906449695389818673148197254964273402438784493910288629405972761186455459318213273186522834800928877980367348016432464475313755478663829557742454800783376309414273399649475167617285566923392456662136536553319434254371214712403441149694361689617765025699622476541953800011993338050422529054252665891871235781278474171266378284607192279623639572128038990023715206994248210982664626596615307691289171766933766990948762717972310792250677108338684290871164755383531311748144978630737604708274206364518178132490263963825991142913246137432978278869010940529387733410892922256983465477402549460003070390121933886971823946370219972772575971991931816938864310295318864824915608511244984776851633515724573852436785362766641041932210462704742157689992312385481527549499876161324633153475562737817776031581999576071708562749738807907264416631354048448777343086123357310088253840354494394622469495537424407800569696340161662522327307159363863534599954851614169747458635688977084977747907494461763718687150230221457666329220934423171482185471423465833318135063774227358252467881530284007976085330939080487498855064976161853416095429637860261365688810636130415334295811747066562685985482727460595706921970465111477234531464177764381377353219558064159778365780980306427548976863397962989026398179046910276167508565978314743628484206051574542035101773837619332822558962882780519170679805620928392933045528198808056839046498055174032345394937639245262709810565101027547335474737524780852151863262571696842075934607623762254567587088041094882066864730355894192980339165866558391281766372453969863702475738612476452737396170592285432409765532305845080299148435240557825536510380662867999978029636195556645378171704100537353898096454769347858529705324044143876858635935753607519033898701385653462569166468788112989964997466117816571555983740913489551695558962925952454294129291781349592649169970851675178454930156330964755911505225842028094459850080661067571368835158243935519645842068635949082411611995008256904426409380784443539481910519593308615072396829224596035694213864595209609140102575615287088185839675443608372311519704888214216989396387548620461403899033903922603997451959504408317216748233782154225177686589428916966728121050126666820550123371878251817691158134803464163777366938418794545352861525268701226534653995467826744828498207196566797004495592713166405783206564924433368190170680259550348325955228166088891548543735498532612888228374581093759700596694386977290853704120888356715495382399141778089338662023636221232376905279609641946789519092443054820200927023651443763196475828701145168845978943322180863723937591165442152733255234063191790546470733890957231977387166733131192001518458581618135100593599025505616181495155207056818465036830360875267139777274794710608393344925910468930580370561494614784260197437100372356832241256492043926740925447808846640281249926443168543203528239529175176481386806476696277758326213103248285294935617275145953546762158454718476526332124501277152262848057067795909584650908986635599215657531499889716667685680668554245954857426228047995205457824856861946632627900097878207457477717469265798571777240738579623727363315376384321333145048301080477800225306884252029389886387407908440780279123917341374962418991076307054998183607175182482785065564391250263347850245327457357983854989587669861536136246721269256964251406255690437284763942832130244824713349606924428182237761246829204055729418076186890520909244952376748113528843189613311302186883247457900040946205337286412589496970593312359544037522829761508709159381318699950091697815707647346680818622127424390479613252787343119540299277280727494982292208977384408742889052507907468738881070034840945456836679848483703955735177299286256317639632389992626427766824152475967630908368920327917750578399031417824438371284361510985245164330734648818361307792837324480467886092609188302434219864272169705519080263362299354947115598455289762685609145271819807447647318604005101749618780094900643941878446546704961082480474847696058311310446525595834561537800375463849325545408679605628834893848033781289916137005682924441451178999030584198416160774655387324078594969075403080887384071816367465908547927107871770131068164922057391857539272534217187097532249278590158870941783036470507809117206249499134077993623190286830048622355640238699453305770397999174299544692233574263093374858551631338194944288162054976510058200415111577901336698531226954421420128291018014679951398205024981247590113235601773919317499310053134843418515965098891703200081009083628748810081526826602081800640734704196119665202827570918709976448910014101025353141159922636946045969071420241361348961041757573481692904255091127893880344438667293962688899233484712729964389667833062246542797920679669502172093033271027424446786481518886428669643930089545757823558709968336185558443037923491685605798395404538920324700353765666824451609881589280986053224451666999726657289058241783332332164544074559942470832293038239136335715064137941124441537341054106686425616404161574070334718507237591682546008519465192987044959448918145451290890000607180905710266554553302158015960817354706934788057442358761535258387667491618565355502754975771680707478465826037284692323886848922567662156889284202504728401672312929849366073524509923984720460130258363936735724851397068926130083651138434574699873653509363806180462421635897546042193313154503031342748441094739075237310610844861271745469540114894445226292104385998178856598073011841001408701887518160414904225805786477281833445623948515825920328539835565610331482787937975428332956358395454129416357972129714609017470026081329589198577012300791421667359700532660813268194360351413128184759822567384214405845300609753225504290854324624213570199278184317146170132409473951192366495945626450119519511214324411647351750043684344339700862944135307504182518977429424442952501669101935284184876311198193402647840787477952142240665007389508753832865723908740288655383846041506934498216531642552974012653308753619020014215544632133927170366293752359532722648032948687246802051874846919263146949032359143963162582711865001103802592387148730363179278113933593549444323834147181629635147888339394638222215607903465233295315581828135151448343045706684620055167680908695542796391963490695563206576533118511043960127254582053674743589067941041479733849344660395276275631648406254271432162636035418712189799421155096615944426931950401044492819453482472027047791835392057113393129387616822793705071532805342431780608445223886353362822242111011746953601982755714698722425786695463842935542848618144894082714274507348092129333205839507761982608753424057380721945190598046587845277499744036002574051054679432916375669492838177695100924445937989410352116594711015460081288771130916770789551362292182370041947512468995434130626989028119138889262289867832710711347948353631744203447321449241016357736881872714604893620576203650505131540487452544511215219962152688689168038710402413621382410722582873467831959073019587421763154821022830916320011859244619449151272117403814265809614695613330418261773394506523304238228295850404849275041557723963322193650390571112515894402233858210042148508669102582294884579434223328104193781558468777741013859430484575040458497412595891046789202648139945848194562919593168427055939478693133404031574833180151327902429726502292236677995774564117828405052581464661591981784406887335586095599946366955307199291903187476731166206300162270373969315012913648537976427994970481653370539712051079684448442593473677082380244410567449776563589529680468618309122969740114346172173713900515943560470180557053685412168489540001347759333249804089724063097051598653041293794419944873941932612120876120240972104160489092177324277240818219957819496860464044127291398472858667039380947922941487632480346976531756984042536771075269918896788954088490679558399467202521088795560926257139510225345709711377124341654826219429620630021257269825545107849112361616282808901593606432670751799840627966659694426441589903858365096476582183041337678060895343323093456410775805589350031762609812506040978742742155725231299519268295723643818832861706249852206078994739826431006940233594368298650621368300460483296800904956770795272876900884349845911739339363994040761434508897691578426010143820417643898560749272666111552509991746778071349111251951430621894200529613198174443137378191827315333776891232746463073312020436092971364503237825606536130635619819926450583755067773096551636607883884425118117965256316555709898352410920201854056187804575912866953886022772091044646772883206377751811540596209761127250067335331310860363765165150470885186384650316102665541369512023994209428133669272772501259071350569059589754186204779149550890315433338091806871421295791164129844604882572152353105300293642161811103712888988314233189684617446144790652302705249628996836146083731843703102684788063524933443992220532519584795704234583964603757161661007736028269839097317249143812779886905363412985651509219131783020059772805031885262387225692000210385018431746054588852347483932434597805939457144505665741484963817692938776903045787165827157946239712031343892612963926196118924623966551568392125415768469695010508730912446172177791244458430193811314664818035217462787482675030935856092113222374871682549112232399079845363574878632954613477663871872742717023795133795150012176026706045244929805758721862645617825727187796909234166225764889909160957373318695848278869388476745291735791130282164055066266562370788897956918851618902840976332417030690174635987897726058633613613308609168706610938309231193484195420840433562589883651231107145479303041273224565598839317769030128795289861498397303945127791153597500999743548519481193595859881573081083734648146800080157755603518145019950595645827968971717055863992365471021732156760296184239765185790499593853618697929734840249123473165074449699723537408214475094198157012582713037225362320636961008250470014143215846002521331446861858470067291717884946528001770201456585944596396554974292277943688585689808479925316144585301143650042528274562762299805877346067652441932260847381946879711848605960193275985771709560948680555379126092326805784693114210335522238125867445612807901380743451609306070029250502422223149629948970280542484914053086898556367962081015617803810914151000489886340375204561485665553202087837773464496466876044939670723762855411583663404178379186963611727592677371095463794689930692619672401426377739162008993560333745893579429536032629669585062529814345904683962032794157994347731802545782575352778727497143075033750745667982462709795063728373195422681996545549307183734019833873788454879208672630225922514220055374310738494066485384075962252312635198085101532155249712519275555488958316843475240223604962231040389178992398897362767873273004772996668316463782172340178748834544314282241786637768846954125236427780920010152726676584765828157991778539967789443732601210031620591202965949352805339260111884131491470310985393038535137875094765682304327269899743360496826517767285034488290031160897336769251411982864225902483052487872396710786917927284267702822057363407031222586986086444916670314403133973060939916849961705628669075780542197871539723009040550732572748469074184640105962986294839946512062847602237383780376706126911739480743113232099098166229197008605368381905368763043042553886565364236126747669697518553886098896684196038819234575471212247232440943356859862570458840268300491290182034759382907654922800390306256256395287734438219769667217630328972480618321802992202600405225120597334218400633761178356725311968085438590002000467549508853880310769480028271471950362258073334631532195546241355454105585671696172181369820797367966096117303743419989962237114825701813083806078177713871680991371297332309041985320951332204788348601954737551033957679241265905213074427925114135696245646743450530529845826846932093232995747980391928844442380521199240662750453409034173471285452421138775160021722288771106504374843072497985472380851598092382117770524508047828839545843040966665950352156014535591879322888055133426868916793327350557735189799638140295411585565794121508149547473872966376957146024000910557632739120040822972594228743186057863045934574561407462146662401773061017705971624726318630534656533054270997642202327754642954790101368748473802582838638251284818068204833090031981899887314700571948312181193953354951217506198114334223046936599731997888008900757828725214274014118473937901204046650029147959772430485031946155172796586868654442711385235101496167888834462635833402940195857366488558306191929579342974796623666937845924457071738970265390658289649317938625808176851759326943177407644337835303223488090495015025735243552766758660229037415549408498573214143632223844119670905969300255598839141768178960660040968957678361082353798331089106802030221911001914670000288653278658678762214222332152109736672507873739084422714135525218065228153839902910085850771182500703737046919085272105229938195647084475866283111342223637975101728945617942376896877065736982347523483045113659146846192206673108362800280261019960235848832054510286367420672675886878543868357087921006659752802100904049714175480959509713220280213697394787290855772418373863820418287800398171780937769196621723223726865150355147015115520851053541222500985680048754329731127403053277647761340336456897082637384291540187815708018283214422066803579159988294793295643882955670803637960967577053239881600875751868943437900553467308661333566992217404792153209266356619210770785949708034940367481648946032105430431952433379397650208728150104526956490940376955581321911122987938852929024368331138963777063695793514932476152118911679767206274924007433259265950307351744888631564577815517662975340679931637655041348918754485633576560223306338939345846525059243198181216148401987206834815013124721984063720364055600558973332840847259543344951388932346584599782471987395781625175414147705643650469828533158253584933800362263327196817220172736928195042744781063159623511659197485670369392766868635325342376817759898143519317143410113086579646223790583211211850038845343846441200955045749933586572860266916679684195019402526410252563747032581740799682733137095589574188530933322706554365159320441211492826643066957693837139120113241297929517892932373169549924273983828312431413866674092652352897109360339699797888331884005987886658183823811029612774553407353374846618107658877937184795930389546981454179592657824456304295274945387127397070605199812810278105811369304819290452106754908533656582478692224005769531256740952710757975292850711723419798051248820951426807897692692025929545401621277079056750688376914321754012054312482063411008436224061445455120277005748694767889569274136349293702679642314514602494464444885508172286202636488710777783094899233375044230204542867903552727321536431573775385003580349816842703268446815202404002748075702048827577740226100153075771528041321907988496563344429509533951122670126221391704795725447320168689777423371786536326887621936236671678888825814507734071215814997595606021152278878106826210791001248086656647736623800272673742720958823087859311052080069910291342986669486430112731469481643480878349763418564939145947267946450247856365521113209219482715492272884687632010730301733620157448211249275352593369307851474928240723380355155026520314870053060819974633814249848060618093788107678674567601818870456710392040681641659599324326696075034226411693992592427927032955501092964580037884394297607806396176054553752179019193288904822867610042567268601767352158761141372495509476775584946729763358312073296897914061254369854072393923223973749748763492015929345635079684707825602249969068179969619212563254709040267268427590075839730487382212259095969265551284787956857165933029483165602163193556718194669900531384348296956883034258267583053196560988573247454652863084071814298125593737810439090743778830499207683955684766210117166861060979150551597926341440472860145550036898718805937175413228345339840548789339609243052829922362794945722045241455105393331224673658671620714303713149521815269584018578377801630770814657694079791572288552678683823614430097388760834116574724479940191006690127696256053641804862838077674182772040054907010287284016033699224270289627588098128474022851090248514733623909939561193864937030077447806061350712654290298575056654608899575025123084168668310494446068670065093207124031336027528344538724731455845132173049979067017531163106205563019941028939029825536131410398016157600996800975849865584818800397097933561837595288095232090680352149969880056028068239382769781442674184169301373468633246479101200571175666725847620062731067755830033204897204119978365815913495737105710105734891399648294508834865167195195507914084460699560728697660479000050623993592473556431413399020635004544016867400250166856487399020981041083000407406004985405922775867792179273672690007888330183356653111725899278340741400087825498325701964832298853068896638345773140276652199028804139884019149896937992359233743405088503329719110905346553346134928359017647608193462544191140437460657604381218609841033131652470972980188167680728110111950154136422075457149452532698960320180108590649025157677207519068784897219405491920102427682732018561813111595219870864524414539499123492497045612684116789810401530191611150620630942334821406997203577816363716898008970857062656383847541999609685462583079618903081979918097884132724348029954872945061608614260231349910663944681976458391005512687401648123408976847641251238942455641778984729018246924345535661920631357649619485028990025749398475222571458741215638909385032510604886556093381377216621765495845511203303034261352207491567935840641885100048629795776267182013576443300225591872796596915020807112355691296776850996747144547274596420153443818838428591503037633467636686703994954648964262142878589753706193640745969565090717370828456212883637479523223646996348048031674265338756410993872091620627400000842687591495743836844246246430577407503381728694664136911495710008609892176513282908164267945511568060362945697212776319554392496432359682514724714719457610137551800333421783765332174756528279180824074910453815230507537523181447097414898249191069414460568922091728024906110590767127799464864868422807069263728341748016870075554545998889585084912715450841877216818784095875425892097945154722693226538673027062575162887637059396058784623933535607749778028290914226296411273167942089619281431399070706442252875468878321963125599174507786776143404565017857888089660791848376759375291370549175653128183477806496209994205862699395502960242954213772415898585480676340715487914243463296607253604574747602948963594460448194215283153039245732262667884752016396170486077269980441215224819003825041970463995453143921144152738609102592548939899559420095016917430066852085063497835959338323482648223481777685289245322791021952685953361398563583232670752890165497412301699565456255471306590360964658491065077176517362754319007189217454087536479678549426741416762511768820706531036918049896471244040925378850516188726289674575432205491395305165360035122397842081488159311507333733395869265743926276188565823226552019212286901602644023998205342203585433100517046570728929383366274175499236604777751591464489199857845502696169004848102008997922696888730435020779022544889295480768605663829572108134752418140954203218416525479208716640737153859012142156635089692808624750786206665939316433591192739338008125786382527338956517253566379309057009534819427500253156936111402387669820431254900892556951548492347642446631820468454447499028565815509860831756633740362483318723848820163100085671882556463027453619962782147422604310877811922125678429544117792119986215651130307105224440086648631436870221311210302431467119965125677734922957968774641298882553768572100509970893224908562822921662826146341777269663636271556507737626891152480693105864770053574941709122442326612302554917147258744531335756950974722020374708225576815955143678583423669284872509184366160070238261650011632695118352754983943257534669963110521053211742387371101360983608652145979932766236703170486591808254515137227415324534181466820660792481833673932203692749514510740041133887305494360246542063552995017597898916900986990711988995204334588378802574300345372551577948681911540997910151220884655456618211661220398731378497720181429739138233847254607167233480438414610757693248744009242356350157114303219854259771032045486610171342509590386074043219294564637446286489922344392322862189114255088352503923672882300494062459619698601893184074537200855981086385225358705041977110568138887036755582594021086106576948723311192679216579286276570096369013331102769319278874699308858525888963970068919259123313906243023254627912743573169217098756105997283026383641752618625081603082024267800036284050738702315155810648695551459937461629218270664433580694074002891279433882181315189478032310316665412232804372335853888578268476747280094865818738157598676016709498037755912057912671337138393824076212431297886075959631892563105204671283110488776588197193363406635439038069525053519955785757163904176860534918337933036388794917024691361765539390795675679208566817026398229567871143022600783355599329639416831569319086189453354084417063168520541900767307944663928473544596692334187616606405938919990842199698067278514664082523953350097610036973316425481316106419911647954787165097641141497341545859941806895196827745337826851283034450881452095080673771493653733765459858616488980129191733657027010440358594991595503495310070736335178487528561317375394504384071654815290893546356574078888430003529173804316593038198888701148056957841622253017084988694913840208629500466626377941430794414523291528764863112854660441387521290179923497118520894624093116744235486466819746230103747453004031251913378348122501513960173987563539320518542502763386035767070354790700606649697226967878850792840014685147263587277462864419131005909718021379242037309035954151166723723077655331530507208832178986251376205245418713602207560819563145663601070841945986984199610692684242851108340680504048437978730083518341420221668421033398815282950450445727787794038943860104683157708929789135668193706749237689960408365017773576105396720559504578572036239204016776282416775992958374862722766725932099187308046684672326833845065414341556235517707637442860492712160612106513332333633926020896107527208364829940308704849255018642847402948130942645909778985745265778791293196279475898618110110838395286452591553851573247463450520321837526819850701812558631444635427005028683222518577752915867764773818484128296074994490848661135428844740371944627948627813433096181117235626269498365971647418093950736861472767965502675460217856996801253348807030314859066994206419743290730095369423701598408262534191751294398863641376038720234837152096535790878234767239200181626693495699971241955137046792379133756437389562835665332828447283521600302705212610856723592666205765350911560204495012581683570036934850333257609893820875343789081607621849434565664482117005238680174008466841973319358266617412653027315355097706855829141832543306011850162342850635370480846213973959609593717818796538451642314423410391406780121157506424347849775779644834741008186141408144708560172329888286821816033362831171165908620497388363950507012381704552134246671876880601261986019131887042988171224178668760708284501185455459968706587195352696080811245337789110854650573033763268816243272136164238084449297868492817167405091948726092881570399607482922256812862623101673376266081700097970977477174894873682324130409453969073708137876274397879372570024264716567538622525829530224504511831290629710926260987856014578234246448297631873866931057581776629984261796222018680315402735918805421291429448705688078527647954509507361115582202174750726594798637299896041965917870816245366802811145435852384009773019479999321325252420063641139188060220100413525147766383238075241934509092540802597400008492456403129047799843330218326558622116907710966038280397252306134848173992055794961994677602336991238667972617212095988928162188568426234821690964674519086885107992283959779925775015671890525161073922758774573280425490763583697913206007563332077065300279762216192742899936981784089537745403495567475682781944432800720663729359058519536998373748484838801859937460319456917488191285427922774411926926580006356743592175227229160588507379550269769477135104070919250869439100091100488962673470237609849121527961461913928481311548723109725334182212113103353539438524661713854862846698406696516158658619232550009715212968077045114587830232840696863656051950556488258160080514963008233996751262202235684626217712910916187924864483334994381712673314000635897573953536134561681985799647796889513649724226278546646214384254023454677255055026236563869770624368188357024627941002034623896811804585646027273577598270068028105355612766679439868454896979275142464422567383768654541605693145056236448098615168295926154154382018197472419141082188239736373710199176502691043259071463811504344579082946506624432803330232543637012598147429708970109752428714824693249872134021792091668331295939461721030556488068762394160570110265881813791836339568178042257994957188664851333669892597087334359014297494830259765538247172192907795817007871908011133454787573504910674411062863744160763085544119835998860045595815498632574964561397050533844148188528192147943887617472476030864064055231051140010100333884974859040619878212320518768538506472405032670049188343447699824099989576138091452055412090044446005151702026379214613287033510906651215822776471027242789418549975323841362596798286876315728068236006956432319008819749823548241266501543310117400953636324456801249854931812838357590026979665226311035911767243949458379619479570086466109390316507091704101544206917800334124122109299595192302542402719673130012027439812144572340628498274379770203868178605542816370416399444601662842915310858074727876055505259612047788200650791527287947732695731448721765406611145365970280889168369747294383674610643863513432106328782844809362716425385161670506989593297012186260891327483176400416096653683043507513104257338679108813190814148513213892216766704289957354752661410477426314422570738404021589218446631951770362905712026047044738915873500720866985040535460676125319921210747869164831613114059713873597795415510843433382854016386202989985072393548722407729300430308640455601501719089717924962340098283755210375049669234167476762847950195044245337296086137958229140205455803523628106146575280875340901243943424957797847837615706459403667388898293806844291953569133360519128593868667660340871707163962740936763034386458282311881522590198576785722691548795674170049579022094248993759792955671224056629215718095627707412527506482818860820619636019970819359656566540918418612409832704090199790711487518188486559905997888167036822073936347188583255823621560187607205514959632489409694675851050614357940596147333888538507690675234354504227818144645615664417263624899888731240918307669200060934414994285784152147435425642169327623017285055038747770779395290437018791875634347213784774101639545953450762159110321210348497993318648308916219077487017968365602490556368459620137822719470291931934843279214447421511396910463771915750825802609076727704940041231760138713175288474387536382371441226060793625475564696115861415981079994226812475350151542196755741542848567661695179495227571290772129816513078098745981465113898200194435809652794161164793341345328313311713793155617739008035287574562561382934141724530025096975106055225983402726072067775118648232819174451423626688499180965166851148137939660707996707133783507276729659411346540127101271334926544835390295440448245234780366893314619333162295818616469365809013271166994708229040130000582957728654539899589141869615518925605878866209896482752965737702229181393318093561213675251412371403195163537059835198003642270064332020901379963216133423495503678825045869311545896562020204398457332475609167436857090375821996854169915657690084188678410894926302074610759426738740196352487146643948518094109178691490255863442410405702929584244106925067359956144351613583394921371512621358625205983099798747099693541704759303700666175698117508782310931318736229334651694305829545304682132447026519508078795871077922858001324166003928405413468176277706118567079554207877854014757152046443534547110670560587784466193040622371765560387682078383828360628143387319566777795719145688205166057546140162534703564585768525051030039573167998325029244364702876975754119787806135810153224483573176072018400266446559604458787390715466274760488191881798203955680650198776447906911067689472248327289939286856007225858802793582226922407808888559318502189814945164196854273208543588649153779494546607440904029695287248362512135900175087079402626842506564220707505966415880312396921775198779163890918396883582584487754928528319134859167401231245055364892049721597720474145830804775676034119439938498384515998097776159733206034690362138762643229370998326303859162935491017209085278009745432996386783722694564131872412006150401239056977754069748761061144474715331924817105838470640887365393666133257514480246160719847901925365949792375281471190063835249780622334750335005750429663312402625107403037037371883276638258648286039525216691370028958174096957306216244987097619626282536508181752013672459462709766657607758352271165108368058508688335150778191730254343551122878730425950675173259277999098450409746321262838436703004856980844072503671261574932112666878268264608092991382027872624055084701935900072396402465153747698881315644833792658843982957101956643019749664186420264039969094900871464469534172476261201752992229530507036370791153469863001107965733444226590801582607533725059726673928987307722126219269727565959003267058897247588559409457461859836396198254655194900195727919480846686105298689033307142705384165019721540442134473038436535230080926924107617184212532064045255595957243860924192552313385382900613174433265541697101653203828365107749512985954215881126116606215593329261617732603234345128788889455527932337792346982848202399640628691166947686725653507056672826219927123534913191052185950677205341901358540786872929371725137420540144272679526465848464470945148436652272739403494610944534709571137066147332692126203995380104609785561034784857956642763986489574131329987572374580691477533282810140791699007648908659867943282912536997472744922320552154506759319792408868010293658682677320257160528035025343360198654992250008396621909132994913104316676053715868018702582323659181750168029905806134328031319673428422235702039193498942843423368426731765551770323661196076758747655993768986041975430245931793118486335811077221828322831644828616658575971845567821363738150405286132624406046107958977136170736169244772940876411621255540839461567319419536931922121210049891306942915418358393191283438173794350334287043419585825603607207593131278121321757834000124398296037874765912418097160631993774486993182322295431529274370363881457451249625758021081254139926164293117248584094509661228830897890553090594311247391470461740176697586143867099021711543302657665308015014005627772029802244249850720506054797855641034074765581910369551725229317948166325376584701089104939238732874016665429289063173603484237003491632957439903690506395654446738424871141305822855855366768991679006995046505828976428061994512421565229115099807902737874825834506372252720017562156989021986578454177953736134334751250309241031543103746603896516518797724883072770244939912183246441663993401843683207271428644422791240586338380224751101319020303663133972772677387271780446153818624835330754764309212531945392706416842190856901461672112594004138098240033616386372699233933030045257265622022978517638987023863231068901184694055539340551595499414164994283938460299735818191349964498742069273888861091074857374106577624388044841398044774130468008595507716530754565129039601082717106328515986773419021329546738773566422685386574163440613475223565164571388253207823572626700838041037936315028127228346806878641905714521772555833315288917090751532228033222372681497758072170097355462897839241911537566599132373534315701483260614132228163184943508869209161697817468749891637838278707531386345954644035968106671755470034780686127325704069559158976075193164705792465140367823154398042069892584712243796526720381586437864909338588402782015464551793128762864201913544474415070373497022262455900681219924207300767440130253909544566932234432518120428631678532294658449552399887319711100804096453858647492251432011025638314570240515750064854441307245719946096172836954288128054299147499941322389938537624586606020262175892145028424331953875392661221693873464047498219301202551789277187003512025394294076497608721324431057502559936607571430346643789563087738490868497469024261291799125506802201378118124194175112407257026846353079918483794255983282773360771542727444030887956294160976392590315094404133198845980466258724754416070189213881846064556145153474264909303334030421778285001107731856039877864440832206259109875364824969844851611973888739337024900263052123207439232958460995317130161470383775716620223745143546194982192593587470950531652681496510991287534872714371323791555897630033376274843846554840490929479578104395365356148383609558423783509662150218172946270433570335421910121450629521631018914669310795226782741599233348797897387233053882981196006787590186031287375723294719293774939121581940598482791569506970376399072448205756765715092694040643279641803555580887880444645846035267582256599989622028525333119056555552515536789478203319788863850114723335486006765983223195584206975767007167383289612529397974234160116402469330137021508162393904446305872006603304631797509290688289075252209161030790517177383146859065352327587286074247511455431045354413124630599696922411945271147784348794118853551178135084360528495226070649631591930157413234965260752956041833425824366992196405685689607874768696977583777858981898564489836408192305187095015017855303154464935299495101482505631522273693683232056113035358758185909282971881735079564191920596991928959397701488379817780770531729004676151817358780200851439409852545561634091848391314317893602541646694526923473640893264013644593341580004107881113550731313758531637878278704013124962472030174134611286771344807662324266282619844254306444606931627273098371517569722825992740786501265462161628836313608463432976219360373508786748343551889599378300870763355646202671094167792926559064534119411587728521530290462325222353096974115655430473932296351571048820311119970522813320665848412794574825601794909835613438539850747378055333899392112605694665243934238099704431684189118619883703358507722737654720091786974429709521362726003114598241096293513135369853625242442532567885237047459882895208566243642963411368589753824056474556588971379931011056256377664665918223685908322433958296837852288141057906976133913661246379402829429403596809263681440267610154910695592740094321117861778314317201812679258528799743886379353987593250844392852710518312071681084280674490527046076243916677243993388569060932942878461920685668067146887527563787910784907273040334910804337119853367493424255932824560944209670443752892387564184556556955253601090106946320426815317182937516337091288085943856003319610400546829904781517759560917555525514447264149067674096227674073239173391986367795948953814760334602527690365000707239860248969621227176699005085503835819893822369072090042778295945007813024505546757819017636948966462810892498286786270246581236895428913484778881532696947389549095801856121101443731013956387936945539104980331529270544081869747107568347220657324256507954212030358596773857669061406149864547228536518743836412982245827297164609576861827441931721682741236329940771321386558417393328941175798821491190018472890887030707247336110160100261003755562773175497260560730572262483331206038997270164000728876287271707450061753309417830435314285201931226437207286581655936973409563126783692843411423682984625759702098230477516719417370799520637891581787164318740788874221942955844691817851668035570055134160880935724990738134564005249023320395223500134990254936965558624197500930713217203607000708116582085983926772330307012002267070047329429006505537161999134440995227704358017878603423072961530355839836939319337668595903516140830788088286311538260758828718539253039078820664100808518383892716856125086250711883350794524503664570764357015352712883866456547327299136683681371560459231430439286529725287980850001414415517331613867082050545165474097444337945610942797691190935798705811048770341284328651052924774164278017834691751179543477453400108689557069509572013762371811513190351082421860284525299560846912199232916517654423813097799836096611935067053642248039434555572705219860228602532055132445896442778471244329144704418117713242495815316608236330531498266766886369506000086046214739975098037244493123094813325887483095598448043258871432295695363053031628373092864470599428763429303738002338077105898192798851789366195356096294671028981980075151163991799884784619098439786789871079573249086521806481509789958794714104524555099979888551050040009210201087098300667799265388118619441849060896978622021816839955463228728726081820276185343459735172636131117260425566966968068568686522758561961769665965216312673332515275490259136132554515778296350266945774856086085793414719959899582779589063646461431259995377286690534413077400014632543312408339770655864308768266341383406970517816384164700145275887104946410924916719087161511370251187403699882734421473667930133752750836391458459289362485236348341771779436474786174362821358231255257697975058597627882436064908408583414894819499563922538513112530192538567067251784046939614781624622531092716804874830511027133158139269426995452820948461910633945790519767279368329969645474930146625643146522201529922513474706011150215181587470082344148852089766361460589915204291586687810548483932870580040782673553670267288008713288739230347181234570933755743108779214491388020282668622853168549409182416436676472911134106409478152161862196980126923511532333712315859271293903282907867677741295544768075815666868693343862183858555645811603309095492170939224942256897097140845813458568782521917950520695840897647001892037173693596674312353000242443444416004834599216170141975520912993788588666173233446954084474166312387432666397486275391305045814709815084478326259126337723131246492434226395392450023342900348911686834257369163672095091472529346471108593350221818340335729226848900427417031228594772664930647491034603174158807978309887902479874377649571167962898224635065218667323717678995798001165861330324808259593411856748662353503865231237599989024150623820372654643454132099185486605443494708094018146860131070712040494382687532374689943346716749947098503955436796434437570945183118413586623247941563082944719457921714321592076625035777249179297095944016089564025297193620884218303300691630248732300306552254230394961157182755432034282599674487650666228382751937482610539729336340334183721636924133786301477854601183691376719580448835377094938230999560806295540880695487201587385775093424804850433621746683821492582340462284532195079354525810506314952672223573851954990534583870400940944958928013025685187967950385792059198890781105378558017749489919173792119031007463115483890981609180554081381807664281102152899098765840432496348853268336540266588939857492400676174330923698983069200114523051698146711988507902566692774980636954078938459851987762203886839932444512646006487980703466961139217255030099256531283078100710874480809405734107588254345181959375362259555394532436670019415276053126004763940441419873598932909410703850435411849281690107846646253349812713632634495869981149615385511999084283763228732285163566471000486154624623967536222591276652353575792872701184022832293244907599570486091564001541310790776872944759458851664693472581915061683371420128646706604734269619129769925828637257228325935114709797732927565765316757415803198636969599692857243056845300011062727944146835608358064241680393702573784950018967747238789803336874340100424700472536818116804971616907537952723596002937446245324267939705251653867158489867507605760103457696222009339214035029488164982735521823501648502690799605918383336280666167792475616648892474417554533140014788696503243174005545720223040896283443451118270643206133557860531971862489555103721418606969478429956364613091739080189039513415937218932129924718967331973765177843011602930181954864855290388241538877383484747724822246814844725583069899514497616765614850005870629564323849223895308933479329115773076567369151965139991393290862150615800627349745049826330020677629611767084135407410929338647628952265499030525160280134518805444308938810016384489494347327491696082115418573698683885265072013323294927959109086865972021400312915681627467618355340971017103037113684547114896518584811936101482552247020807042933010783377251563963260431576112111025161254256955251628080260412075899962296493740105434989880205780210740821319955132903991750973623949757400874909324955120891577136677188843632818375980344345103585186546909191149184450376604459796108561138092059746557878452107309327554129389039578712767472549449055821330533018824301825893573904774992963299593792874859225507882161854357315707371526925420701038755663855718784657621359961521719420321259424381142002975734560384362630117255081050009641707063061373533149916416743245248250062176051639983482697968820150921483480210043774784628176815408951272450529162419058074906509585515198723362066083887136092535299586241885777793878777895610072045548085045102491127402630278583441336340244016845254711898502580658829807466230834237081527556286354720907811032828959305147656431485781756565326988633345624401686611060106192241840263881439330890920302353805050903400282910139759513216428058316976564555336443498213958663574728500795661180833291001627924659152223868859516666201877845044663277636137171572341196133719045225398607127280847051816012574099778663037750635274000708882945850975053900975776600180687942237890369223357045041385500624508241381388005480061259900641147478047108565570244857808687057182985283527544090542648647110871676391130101349446321856950409479779273122669963727271041900591526833748097234774296235112579954026053543110300993254481627898750937429897476785682824314302415457069297336121796478497633597735689931828012310338014706236036750580487914158847966091672739527691031021067876719757409671865420481042395793248217884994686818091145034285926233779100129415696877106572510619526324199679361594680225104478972054520043540678516952427019160161653525858914497933659939200782842042936552854172241147168487006804148318944214613528333711796470944728829975617562350326106754480357534352956512801552196653506860494280281790688062975300680661124291303481055638036614966872405857917528633614125796197114108349402939338944449343592637559432682081037937778379456867152523144331800703417817416684789680708078610306546886415694541510030108504797734750846002202399613775107043880704195798750181957522284827602288706026626806378473923800214698916974232604729944052866195012889355363993358370303964380350976923445176772981462618028558039349406697123528387183945749550752791835508600252147702063575217614093485391991438059769698354697816005630697692394397686379709854408813636240341088701239336075583679120597515135855685238650642135311910393553580776903121969875791576458059421915440504154961410521992994834432749522828127765034257553605847923002567676711306673996819527963414022002806041510975625598796622046334504789343004674240163621799822096395313348106276011708456403430352740694052503557162671119822633749623580640739757276795759186138244593428734834881681336632124392195227043780025437803937531256233654478958371615435182448259191594723730860031782580083153466106018860303587605045647017363460569284612444309313154720291354385065756204445296683430862574433171110203557644780702571342331397993366077660314153131935170894942139767594614871621177608310604131060648575017570745807727052171394978613013444732196857042998557568838085389648189505348385767596920831815122023484240121034353632862720564738418072179330093641681306748022005732181820227660453171130191056087050218019771600090601405367019455549533040358786044471738071805834459978776241649662205730736669773244204558288563243259806305495141018371146302518820883616792090728987900558086758153394486378899888366319852113682662869857509803393802334440860307966242054022938214564826006339596013734662323625680841329289028898394464627378643062852224462829545890036505137610484949049181775438360744405603756904292295070347376981013515781189662554174186019837462393358608312057142043775803460596819804065694805211475341032382010067469404682693624412071769367835354333734743660712037090353861237161868557431270981262711067472677379928680205322524803078504991479249179474021098362650205761063822901537616477710973688492568882768759793240314753655496983027443925677542401121711861341444698476971409881689180964179229846717760382292986210690392490318167568143298314640359100399778182371233838413877840216496962213916071992648101510960955625509175950080438666194847799250733587128223119351605307679549108814340699087699062804928022422433549033512536451357044321022813399436271758617882650313038844055768727902732805564095871730084605343980545732711111207564646024213735060575614378857776160093455773017789919924629527479040307518024687457033067249375902282116106599008596119288893167118322042418897841876441811726699812558018274425304475981458584990181102476111296108503547578491374705329440579237348084077648199708596311848717743845671894009839260754381555379481288493921485224377752880705848045354011702138159814191948229810846964482045206717259249101317881272529987101906441643870784566923295432099600799057238090360575189583084003957926530344156871483162429943375780444034757770703077495380390625675784317807264655668085710878516348057246994950987064809369097586711846274918869888345206024095840867969088948002564368203891561727856429902690105905167167441335697079187122084767297093564006143511415195431432653485817551130249192053109043814294692605381015438146190745692016656758886542353467965003909448361177687798712570800072985549060416092802841410855451845953386364277677158427544269062163069314962871921654325310836305185029739402494382827283000604834470977239609898251612252067910346695720826159994659634868962792096981776670991110324685292577577848832418432627741760616839359645318611677320743466842543973913830128417197732471703000345778951994508349331396655960341134086407461340952223807207582124404379050075284222052711500887322923171389705621403052952716340502894148278732535917049157042128038852338829994949539400459521902830067273295234736158824937133283471921453758334400571560210543878943614278615045513061156858247861969704045362284439513866524876724285602077337943361999160440663644182942453706423649731553303854223061920391257334675371093388860297518561137507577702696728979079687217496385019554384070575555804688144845247007731387176238571968919379229546562470811896088469157908765576023271682189044141161584716458080681930031994166541610449787393572087579972661337824614463292747774325325358184379237972775997997359442804216432489077315001686973106569007041233064835088724014093619059148081217843026777992714670935085583326896691246560740314002058432057889532344471100013367631680120790213726850086103992136895067641052813619379083168091691375663432587780587387603105654006633780580386427738630749868847499392693164875869842718230156618787325896966832847364962221754257051965763611049856029769944246271254566284374181064194593302233531400192557515505091254973127199751343605328809078505828415960464939905871061918342041952286582196376173663986025366185733572211261004896815803975106721233317643713474575633400053865823322878504213892773954868553153134847248957006584800756247478630334753690987690452940877247442115683555100123067506202093508936514215993737765770088401377338008682504455963866820118729998105192810063693083940665648440064535350706456790092726337572840883629121472278294845605737006368756069607767221582978873608331709115443216766317704856176503969794661682488234704990431091208096857106461750226523983377377658390231555158287689801354808108705208288159334409899924259181063590475657792878707751724441922712991714153361149232720459616387201458121907835221659980079391980861629879033992674171241136486459619203494005285908664220632333872808869299230849772291244759537919730902755904224711306305638509398543173675974091644462603979379883764535692684311221219886566440286487993334677089831528735230393363593128517852838276011467919759651069425579842691965985483866845692102692357513229082846932585326819244846178209633958943720009063378838888155761702812982274433371433883509062181618390157914602730663392407779018932372914357063914909338556689755796690877022695444064902634817475872755501180311843754250650191510213485758564118430661272036472771616959107316965869991435720279658134052437086095588845062909006929131422916784270001520621034448887069796347790694265569496806891188414455453577872131142660849768991409384593002970524121404903451223845145338195416372375591742867209952568414781731055834729757236849474953262933979666790796287075657452147806056740321049099469311247502453415070883581678583909263547352774397626133451986280535285874592428371443172118151125874430844952071951663919240613960794700532283635118264749314243053064038103938675728618532532258230423666883381785206911353099213559607560733710358696933805097371447043362068188771653563840396133873526222666796794782418863172082346403372089968734260767995653894491566920331953476620823427534141984515064478518427659331196864761848715226153058582659861631349619693655129102504530871414118464859013117856374719718379110677261558320351765727113865277164103273490765915597603677278278444810583499856831686484213043664966070603374227640472775432081781090934721511299137300808886515090976116377683142325887559339117862737870530099709318251823018408081453342509391825042714979875013493066398716085664506105650788747158884476127372788208810712125794384271284456902837609112486882367603547126963235261776939704344941985658325527539822666212699972894946343918296703268277664822231733041444562019848074316856706897013256525841062212447830255950461431535649699434133003334315032242159037648736090129739954640114388129712310797293275757998794906834558363084054656407032422361436116832712071734372363190142981912956420176750133386689418593861900812420256961714564487194210450996600429158687888114842498081123389781541935633136774863069109586289829854688635202277866885414777337764247362816382472420862494775482107209233888613534814467138063822850899478584223924714410009736777200486336419804262172919066372570073477740136309182863776411273587945965013874974809694812408097067677839366104818616237493460432140458717024284082939354220564211021043561128168357340894063293020487703339818109525447512398200066739526757145085013542634752438043844703336441147687934655110035863768949605029693725974615974813718434967999282480392838312429785938853610133411641219280046856144005778472363908789528209836517917447781047932655275207749885821035700216640801818082933253626361378163039932720569216525365212901460011816433866253591453435042123102021171972687251791028864454207921262586534056571444579619049184798769048050217846822299170679230759659584280261688095383683886178463396684731617737999844437956969406957877206863098539126493328940020315112257750200860169430072062280927933638156765451731818137908682550501394915524191142043773616260020958638812099896049118847132522279068935373918859774936202567589767628802877296923675738555422143081477335396339823089525834756874422038448398721288071358639843536260061757427500241275582594551881014264873610932380967555478299528667771424478967285771225207730775479053615200090756006860158376490267483406051309741987028717090684755080048575052790154807823880260140189703659086042348745245543584496606502776721687154321257185846057854895452864683458435217484726164707037396760346169766806392167658658922121144005642247846064648134875448887387482751552627851864254282497159331950868197657034809423428632619085850743902312699548113345148793010072819561291141452719150854122226965275609218761066501913794036705957655405305323578203543830865558912401106896689547196803700107616605434894892839423684455093301766783249778223334083274679184907009744272096756495809158318921653481299779380848352083672775762340772541993189404508242207154003056943645669357025363686467680561504377173179600627103794230244101289179105788522181031869099312647326872340065060371880093648049431236333344894801140231006005358693706891389350660278731369533528870153790126939604373893088893775874841302722509874278128748541041838049664194528038675591077263549877764440838821075345969560570277903869123355721737232035554435108589600999646221260750729509171571097577591480466851341370065753494505039070350034693470607762923597121971600872564974152528340098419732718880242526920381586972352747610710893302406745714015177050648381960627137737819640562957205632696636585755452140720877879208660011974754430958588314021269327653433001007077933877229389652355574288372184975080779164753214809944283684584920626439610366741401784999729699910521102180791048698891922836512267561126837830438618576003674618692762787387355040782422775263063314194794215262053972674310492170258938139925344961144879263247789378569682193961023673168000462762305444613303001003532080565585122556879700346786717854163723164885808270372874822549510387810208764986719194197027578909325696909086529666037298784227861391333885571562380091758198468829158390260334853224627032973991355868501214414625708471414874266842562630885357853643668206995572823040052777452634877578459703095125369966203204713117865263280453426485432615515228703580034773797136643458428998809905216910387352214211064931582062158814807693417902589066047353297835600162459363293663313639171461042294952708316671218893630384666658114068036489866215325530465911004443194303627398400453693207074021979333740956048039815848456572338492262350361913704994138581665207171113161898749893547289064924313224939333171151003071787894219357635621192754391392557251293792951861740310717122676189671935180728619625872270247384965333342825742239930364146650859634632983558926532117127708928408574562959161833278263158719390016863005389826142463058777060490911090963777175300516504043484145065534586369354720541655864508154070670967779849314944901315392689511398179284792382510398560211750139591920325841462377818282072534621439878248727242379402368803831646339707918900372752778451370807557104069482871322323207896488950419412269676312652458378465186166852959095730642460678090337649223718171710196574308385401895612596073260460084686527998525374125895117276253808450325619853292281354201537218746378128979616427839362635504296985614070638467943458043852300087487241717502756603802906172996849762903419307575253280023906821175597937592532868906171777457267129236076797520934611833618857696068893770600889316825225456395715725821013147247466224815282590477939987075962173531344027718729159217959366743990444103845060040825156436071518361477486066008771650513069235616342404820869102635681797090032160331040689089892032181789295975719168597637330237132772648613407050871776603202412080812576045130687499213093514774658114096942363706121740767770899935806189114869014950702888057695665418483272016132082842744534963171306162096140084151749803112871401315535184730995234068254280179660450033300662543060204283431088392913214033032393647499761321347774532022108237090255956960083946279931894817223750149040475465665325074085948381607951044080575696756892717218429413135221814834922365594560834416395812255903107204373437076019644837746520430824692670255781437769914329172017889925334135236109741430154615903616787484238026849835711674980963815647562865824859324578639946056500671321106336947787168049570214788653607174097489716136765162247387383346457701177235431692419809516114695013394538515071366856097971287293031686978357639305535817241286192178135567686828011214403987219778298625176003893832077671593922717631233382592852975857240728931795066234462784090633255158175786588729083399847643145418720788121956049586908604677060499893974759507247654314563186360783377348512348182373645660749503774924949412304913426996265590501508847018709892397551853496524752731181743657577847256664543004717992833761444570641294501781726634798032931051447003001469427834923736097558675596572003564881205378248342788389209061881843546212793731405574902981892208130135759030092411645687939726286689351137465749028117787590848317151483253856479939583393428796516663924090200055476178277485532521051595308278380163863691770454728469011535927758845332528264697345181345594606885512091067367922136501852754551325091471768213378870085217389280172221200687657415053052097257445154600386776098639521994699736356163081983440367336109127547643379344779027467132270469891572419265635309455514248209956908956549890665016554520477905992245289122893040397605889764693755267956954245952745569398179127446145987743938227156247340765695824853821184017061222488209358657052363879395962603211435278957257641600617040193220768651975728564083904581119568986263605801942442976271276360105500562967334814384942334435276942152522632370389288032764873436201260256086443536787107046143291619740375049531848727639485646822347384062161958802470684859548425753393792644531981508645382556987478982887930952243683637321457470572198807454992392650514196295726912384280941328890554208845292160008310907789300996474849380514381569587205871753756088246631077742931486603833306649272682820711469885523690648327947197770368695893980332391096128509690143859031660005551005074276873908542178228882755851611275784151292898555329641966964951861536552850842052377830175653324014846033240101470408602725239814577983935108210732718434458144548932787860269343847698577844657607886237503495220009652009021460962117493112302285964799126393058908400395209342563959227962436348337366654889088019966640097592177751855979616419902127008019717036013679121918581364534992373855052210354603413810881881508350162183629318645917203309715339853693548892833434514850876567999912602199281864318337187318777707681133963020531830756917048254281126096606042647340919649943461405330317568064132773115641848454167585955675297808296657187846369503405563210029976832688647662735269341949182888839966607200109465860635699763755669638468190947141199341205866551124556810010704912111316566643611156214868155365921714556379676650121159874377528365966995365072168614502179923866422658549000466286198872542374172797461172870876886065247452432432127664639911008346865903604068238048856883989708583070187054147084456339356080489299182302181000826174929623439179615676157230296045431352231911005545055407329232833445259900468667894316851274649566080939086330230481916936258785176175721301840310691509774271741214469643313196250453724046328192266672095736264863676318480677416362929698414053782458514289626670426179509153341359483180932990141057444489287999348535412680972298979146873662346743118761561542101159784961610330760126328062015094387014467130286903379864464581221035620152588877282834664706023239477545900729013261703389312749327655504308975698202525141042959730551634444231069775254710068408935345589961246562204305673564169543156164436449559595705479636088058168220153660049777553027704317079804237681265874690309354276968570745622848302889383822746807889674970969952592345253882635326356428054904894138716067372953814297592612327934291524582900656257071439104376062714393026150161510134149145279701345080393576639936747661197322259965771019997199315036390406860550908024821506590744062365761025513557080160913994197683196190217324097530158030087069144749169059725241729597783737331923366121791336366471094344386397172824428143034984037131193855069417164280374839511108858912209222834590498891576312441329679309188549203974892850501323703128085460381319437760598142438543115517249527229409191210531427975960880873892158948982723379776516143223000462454959770681679924768335168917886318124188316574759819493582279623988641115444728227366438509651780287035985238334986046847913906562754664479109425408931119402752272747036975190631364465641642477103039755263474628226856479775319565249169354417085504355069484819054982992450810550027961052335498237202988866059530714109974242228070983283517196285324443752956035016370735654855820004658614667597930190279074935542464871668356582374576597311230302942324958614820206975782904317472792946042211708527371631236934768409399942817051513576822042188747498776197345486619984201265550253160996643134637383392607236766904260069127743332672031365783411948547222601702654361790967399404541833765674796421220572707554093184304312511644271586207340180406549373011177727394831084020276721809785840496906504701610170442731757271180171402545299226122658057450013250356174040260289833293704059482823574219118434960610702491641681108718029259558678237930035448909128636064489170552612713914778909747191399234624545611970420335623248645664530835603159957831716960288719890572557165481812055060648607960306145550999050581131494437078262013525701406874929268013859969583708162022373702709765659891629794230483539922612807989505098323994024248235527518009194591701627877038136325639627038998821065890708574013281722342106708951978129345643857629086125104751980668537634877301999034710624810064886504219526208561865049236330539656327565144923163006027386851824071676955588156898616504463255181392986591899517246701948769608378789311867410782968019267987873084098650441368060002623639889745951726784525151801531057186944549399530850053714721026714737855619658894725294122090036992298203853891080923968009461859589185871980600748028356522406513710913857130939217410459569953028786883056616616929458738621150389815619184196424120670065655280978050797228459853144516102496461207408889953891474520804947366434783470837362264680055958362858769784798347051386173850112680432300251026369631545559042598856793471763342352263413680836874671192536924023853750694144414568496950612868083573966054049947642952159993598728096741906616493376385814705073318440271077212442202056698601462127006731392326189355990806586852971429739070830736721904115337589604288039343036803583278848019478355482972459332318218098688003294056126067539212471729939974188152223666131339519793190285925095988594580892680678969113122405739437814313469568994160756381519761093595783312069279552510496308741317049940038583880033483698043531237923698467458443107262700429691033614039071574192483570482066672954035400666256911405255517952595792418180130311006467292193623727083190480021088105914048392206978616393844188095389935565129871657929168740208587900256019369244114003569758807641677149766402222727766467981935189734355200255773318599049206860341846438996316390916927724540863216234933224045967471404511319215599744304491847282010760000195486257848055572071983727650256559364360267607559457249246224588520735181259893876457011504405874602368768409134642653786965826494144734275664058780364634874941707079938295084502686428992235079971099836041390605260338182248027940466926579628374255928441973347155775768554309500611087082049399916555053903784302548303448458289656154639001716613940669821839587873820877478048888752990994568563718187892425488638038982449033271872146765819816198423188744525341836231127040133572606615505853485144170193927616639465841446960172766374351371577336973210954369895393623832824661543050353862500317859340112449498473168459534221578339105758188764254242014143857839879246505692293555408840481502075061517931323000946236812740238248996529156244286773520976417615295906353894583274135066728755348353750127889911010785600083403838144851901924093679103596747313926880778881515157770707555926657605616289820538762113207017745689248116351868200413297331828353620197515318990964338505341871404075145477784872240419358856017485017259724493222541193876186215972719231935730983319259740496545488147698972733562174728735245228761054516471386007857671363663719377561584107187125507246609343473856587896492136093369416257444618623495713320738718880591984210847110600034607838649682651592204151789657349958543566527649693232816781845699622105265861932041808302811006851825981449885404249690176338184232083600343854135096229294526497382947118274155255484875637815716028042806815834196141264015197545440709263578306879985973407012924238915107358435898893364816370782852927860721186884342126383292184381991051512598420569066856814387532908514480596603172675633221784671522535015393576287669656291265452062313180254283141817929536549592329860327705205153850039264565128667045279354596318758525442947243423913144762889394617295297732994924440522032062439345541457763705233898487061537801872986329101889543825418541751257544244103636626045466480940731245168413940860708344919306808726966625245231973628053809468299992241205849998843763248321919776152228636543741675265902591768548807217716858465787763676082724828855527562569728880649776667260422724410047112216745791387999915256702438029774492177995484848826070601442904623418052924492385693542887509266233746483667584449356839969205999893825604412400393973006255246518395083474932431062627192689503872543628531164700735194951690229300936335546010007260481886924183448585613984812629339815368941658539186111812058168421557502437462531198106024909732016523424306776792370080426889918116481176237751555048830414751203874979899415397556142419769955172586589010988082185851178803291144735975099497529739933817424475470314612036487810062588932269142913935767292320705963573057916895130083562643269755823460714941410434003164579615332928625513049984253552614261332175320124224800282055619687016172787187633904845098470625007712314332465420334918469839807944325782100034374252194456958444844451285417715861748296810462159533459744475745666875159076108545698812840919873986683083175481864505586661426797534762631192370424043168271502588755311948757160716119796313019534930668188438074604025500446977233469484871214858248447824354364152617450359653668011171748972628031490127633668393487530743706537661509327109318679423634804096037161005194091424148185207851508789296486700878667519522274142430125773404016736345375807539501498633251287523853689098482037118418603366360500985613460725976190286593507825822489397245604337752432674335171134539063123323169319374162970983790012644357326966496044977096064150256488283808135377921764223993824081769084346725181210785378605800189248053427668515323501586745326988744326617934319658378075126911738471990317703166207725294110417323276990463363558377421892391987025084405345014445951165712684390432400785170939413434574688096246252397551067132219139616955770629752350717870338985027514121643002100003124326493597987196664847421326196128379403154526953465830582147894300390638988934159181202439611283258515050345702265270769465989529528187308463530662303240579681405412807025810511506193983392453706265672722810808814919954086102209738590110447317470172208002419738225980618407384897475084766905773660364495636845465865490856501779733241623507506082386470913936951815165486497359596317300615371882339594052859965357648675370941761094693911274740436462297195044847215439957461823940726757025717433121942328413191693558190764813813475011368382206366683672475993319797491390634120674786384909455128493265375235920019384458195772229132797144729409177987912681166721520436814599995719570367848412862057805112023404404942691260423199201190480760595333845905793516992298589977904441829325335571348063339108384461393431731768808634674338259991502046145597089562024788950082062684664384266276843631475541114438752115022890457009850279271823684048808123265644875212727612511083052562415996824114313784120867043446755873552943533866545954434950353133070441371104591719674366888125565525476440954010477914198604766910373144154980630964580298413538452060103027805027384878417718243173213232974308515683272357014144035804393753966123579435776451480231595404573418219275428888028264499601672933713307503940901244585554422223415415142162290984542442953871553181968372059436000245411499986744285840083771416451544804285667136570983730686943109862273884480844795777376596663911221845802803125635861215854897802067393283902522248577316799870030951489170284142716036965003708317741636749713742089674621456830959791945091174312439004412614776089213534407735627001779062156413515851491684327172221303289393979087132469860265028566982664538693198084641219213030984651049708403303664073628790815262855137239039517897239924142842652161922834589426904767142360501846196390520660988436110946721271944747398190549902886895387654899902395768582968027636539010882895096606262069923060387454815919344185493033744123353763627955087798528466193878509230945391930765292742925995443008948381836067886304164223913180979157507552539563248955016189902421620054434271064748771923745828122662670959545831038239702258173956779053991887063341602091363223636396796821068188863894792614471475493806829951632738878528034435583098639007023432387384014983581781555145070040422498212225459660169219081481418344463528039512976673641380293425211331120165744378799853309390177345120052570656445575628821329916968040426271110005950565079759500192981324752416526923712657040569901273543888196324113035570279427989914311748453944215121266858405981266579633684350343711279089749398570505113237288972244463996123465127798730638328777425850566982435775739785148154520889693598595446549662345768635717178959717512798177812942683728895556434032330373664719108712248576521531877619015595829083332100049215431660674500993195645969230785368988806018745086256970137165632131003364503840034888268731451326495406745783384378570665481339081583742900126981168486597132420186053694433120560523446152736148316058813274104832440193558447138429030177799750766009361705185081411125443822847330320872292786224925855072225260900182814974382320224221469048465723301531713738514339647260830938477250684526061870144656972907217728412984715232180935152548159168240184187032459980869869323781495530383255526201114342577061087453360437944419583120395063463524026002594598042806793964596647752243293377764412687699154559288233851973240984878714860118622140225919932955798430324850253289193652562431450492037799220198884818159693981976586435079587614674179486779155404582376475260221855685636926339244220750700007549214533920302528389672058855650414655147954595363405474415735952523196558982814095704220307152915734568634379725005360076274523196631580505166322091695993716620369312216872679192890075220590348309804806016168557553040974463526893659346079025610498713153755927339715892212734293994082359555216649951443333389854704538539014682701909135456730118140644587290779931507544917683598102810924815723346743885529113405888432278728985158840460026515538108139589384616545103693434984933714468447621226837322073718575674086402814658374595081393275813864116254983845222412421402134811582667377992707718714457960951959585935330528535892125339299040859446174658060347051379552252268363215702219592268070546598824239126883145776490143870269243699775687188522768370398088174841673621027192285799908997533630826991020078283433447760658441317137054984629743199414967536701502436174716616061721757833872469449823794001449463512602690655328398846788752368491529658680597460565822450344881076633767697989497788539370751141069630984853762166042436504982662651571306284598442343640372706739530472987324293414173069756763403489523381479201711705036337781296129048033283310005644446621798432267167655532993539364784146913756138515425183808148618116591732746516963580143294175462356301406177849552936288996267075202963239739133951991815792157297130111285757170598898260643771373266280955615143700584928934379777378947922741492116460138025309455077486260718621322611097622829268133588742886436590234909765716731458251786997222450853250395964894702945350388829076583966379107577905603837020992658832727631436944554341237904968972397526312993548918930392352993798709334457539168799907737362309363556609391858400138916757304622296326084136264982848182519233039294873669273334317872151357201189727063177123058051918192350925193197405546026700146728382960150864150555270044892758558639755972489599888287027252881285712396301593501559835415772307810645120478804344605487202584393024678738069107833845465742324797452326045924266057721894289843922222940083047660601572627654996032584062384097694902877350469614060767509639166325840579578230972443089167063626661469949304097587237220012230956763821300340318796573621933028470699962821102413418824737420888980072357702381738648076636857644385855792987606207392293878825692314210593178038365005651029256316769093526226638903591528311640506512103847512036516020529359600078779439736102888090808629809594423334502164171371040819891825653645104521869196032982732298710058922646190693870717604965058068419826232366125054240591504791322226387327427829461250191460168153340392730428352635644542268189783525815374866280074335803865114201938220916251742674663600803865255889993292007932028677201885222276962997872811574411017182144753678561436296628857059801434473050188202019572228005514811199746089306480864610367819652270207677733295259309096202919495740581169931233888148693555234108715482386052493866645730785106307568910278733900189321750621695695661858924011426698841293896748067770047860725024359670098915094547244489681913503256777223914187570795265348726045344887381865891302173192501442846854493734630084471183139139542296281617606418319197522208262094074063168221004520092938985673673051182655155811472575853568586951500638493917991239695354951113589625973859796775899029279736660730691231156153532079168611121826735295019111199764462294814977972986435331739178228737895953076334070689988246489228677419058532416302326427435441961820718259531241430690051907821618839151214071285858772764243000546462066565712263117253873733336141911951553726202924688489350957637630115971187487570599083361141283267525204799441632355406543326367655107453726131298758111973971934267314658937946551860619495549523169729566329890374398030139503145766128834728322140273739123519203902691238241410816900321499310602448930371962126600808443473849068851617472425366290343464408111558157375226862714467084102688304289486928954206034333551616191561547647589313251720055120127759811611516204993957721862791477336399402389470300446132305289220159830949301318217382472951667622549814637420538999368723910868085639116516057859778509836686147314111617115104937650403133711231465287384443585808121493576237989455775575125891285197673704633224806578563343535445759088693829374061107115502363108710522710519310452282502633750699703201379128791543896607867673656791961822060012742539696691579096272969629052814852591105077757143998002263343215597766056418306661696301332923832690466919191713443947037079990562524328130165477818570737203403317075621208721819925642077007387350089396099869782131516229898388650426665203658368081172012944454662353495259645983284536361691968941177721146750564543705444609831928109436309026909800489517062874965428283174608257331863943835202090227811823684764082425506029242787762966555591991374895484822130489145750664826620641897348173741361508647391593348909602445375458731786648864569472402971788567768340455941930423056827105341152344163504103422301150672831596079937048201038642308702952199997114983900322050583120709310770541297912988336592253938649183819661814866313453483590447587869823225983521426584644986047315512623060819000319891556423414194106918966816338948056288982769677578733326717637441216848459566427663253825625844880262781152034312253399575147415589992344880085519070811629817090510843156587490354733886374695025581420933800023152252100765907182921685034252139754490620894620318318862804517247009187305430545994736984835492284020897949555717526632899115422088104553732008149019365220922155639023886847522585464316856871102344061441433671740167058668232011759021444777241058408095416362806115348054739270012604933293384007910855514555889507121590291491412747978991794926679891341289803682250283837307380444239781402785094878794043698236938032074772657694973078886210071346933754336949460487606796555854118235859122217773194545214900975273586633344464809805899132157364669196149792741598719155731831069532873038181235922736040420870359365076519788165973724098858681060367016104701354025863242144010754035068971402046909595789401591295460191983125192032217923495333973625436393858574560741986730171179226811273796206137541837575849762646707722373419166602981117831708802939173161903908281037472591628503325624026416938486223588395427343473242112829424887536034343707101198267232263093726411293781095662539464234235702879604018623576187358011558713566601241807733609405215320370501899321845085799039055979703782374210296514658907161139946634277418864078682825585057255646321263359460634671331117547201736835500788791755061639096450188668669332762900508467581064349899522978033369145101597294245364548125955200750220569969256267933917907415419451155925524043241844082094508576530011395769850679045693854352194010679735211263022975704792579076488876171778838981433250628018770902183722737936587974176404800830745327223107762832208442590931131557691633341953124387313048440856325362185716918877764752624605861955624104164100843219696942385032623872022236919570381113365050667336903354540831740862529720309027684448838166542503262813110112512929420401175101893223430748076571004519479581093174343832288002928875501825458797774273030659019286551953607800667959502549348133343629422327077678892493080735946199405803469273455531340534923386215161814412067191544972677786177484873213471507654147974204084950274396950177140446865170799549479907693807980941292643589868571559854214480581661470667482012188040432412738907608989763628728757377244871855255032711635577960403400104731496972580561743150139406432732711894999987170773920445846418073600339752769200834897056825924298147814669727377568056271891718081156937581118299179923712261956288838649403188691055960929948206723950162669038218602969524972268451270991339494419000419417332481180494680828486299378595077939521496668931819970913068575874430191319036107925959376609541085313509808339531403980864800312642764649327240353795044171159274691084572524363943845191539071483213130154215430723972704542801616756242492869599315933219628698003659788447792272341213434435085038729376884957313579791795544628181065930369040887372037442418640257154701730932517608815567781082860857767509347835711573099191452954804925321186659945469118924969540881753938664161636298154285346348032433664192466048224455506551025058743338916106249151643677437425632081937468064920358287465471975207389308355065333165931688621694951121979585429182180364300877097210426028571065353944862275251044499318411867276171163967119484165129312616389894419203075623090161530406227962324774614469071563544286994754115954094519950539411594305316918880184140797833946641575608074598911521026202442336963353146664595184431247976800408084094124039955517087317611249019909413634558479306816799833366262519265386825834540416105573487366630324937321412869251475470693350008421966056504480486087470596909893831721450948829352029320778962610039481510049712144984382627393119124366243797805047491704239590481170023376555051153876861733609284759599581933726261721688688901253735794001432570634506575822161547728020378707174056554934936660388623207397471983798027561914245396672746718785757723830178135565715980425027629869747651525615824404372619555633091643395941193854176942028221026193324119912115955553847259026168429786494740366681438667023257028609937860673845320177760566625975524351663546784563854494041022879100018586776407869273183156655012310914139371913777234886974704436051691546577150271803956882130016762744700866595083160438689307459736937354550605739076847676464359182004099599365210689685310322204101318131329530479763040595592229967608728002929117471020399139688307682224988270459460679278846387491891544289607769184252182575002345436229635468153812446626514498583381110961739573147529713954735330306037337409659988811607908196847877699399248718932294336812839757041118116537564709862931712958053432397296022522228794145258762943301081486717524297090507576956212096767687336057643458529922958571396615627936938400053297560239143525754560846845518765840100142990129188319687439670536174221421242697766096001554290589993404218875513503408074579191292865993340323886847089611345079093259443262111162145868224811314885899054031849774972761291961529347608321300588405968828264693360567622998771582181412347133918628705834669172897894573175487450671660276157076182415889490448248618836792613156274697298532050862931477734430776737264120147756451226531327223029597175921770283612307962112393970422680493817969798811157502694585393437242136587802894390154601470238599916036205244357580629269827882487929427189298220557255040695808347744685223767021144771814253241490663438763980172329453937127142202874277234755103284726917370728251445295742661640887779755129784664699643657369122552400457998171165466136879771619896062308444317534656750319248954470934367250047971542128439002900393423623471093164960385017766533600839109210489429368394793165639130075426362784707916149914705130637121735269099105886190190681538389277088748621002445482954728035573686162138186372504180207733907004880585615700315642664800045871025482898973938617806597461049894474561872056253779473093075566381046465053896640032049162240497142572607736330189445268284459071105452923270874670411055849670382200608625816192845815681321976766199671616960089204685861525159378703403820360578301119600739831056397634357117747405960068773043820108292400258071762807102479973053485125809025980773383781896893135877198179560043729578752209483436576427023791016651660229521396231952345944631611659850776111608769322473430392718119006464574620954917937762393106008671060480099125574047449614687889652768859420916136877316325523549965399520581981462289400663800869841997070244634055556914502571425368220730462082584123144022689890175929584030649566267801994502166268293823410224814812714906454793020425788538318898305024661759367191573450742878447123287812671134405213056519845366377403076224290448781424919569554269221579192530657729439927801202242315193606690981267903287220340487926442205046933387993086671902900572730573247675453040846348865422703173242806346040833712684786220848261191556666802339310880416367459336414143428801553434287542635935050774737626515400487495665165359542730254893803284724776798867012933929516761623391338888202841998750366670991133832901246620455377366679555514958072400263024446049755750551650733726146192075942737150759707977012316265815412540797327265191275813865080977395679982372167490918822470166558350629847705444882238385938861472066979387367981494322758641554446519098259204497335351414567968471054165480856922368222866419109111269164883900605866670980589616734113904967013174899408493142758709096741597485262503373106692844277342763451161273795717968799814194332963173012861545086477873474330268479798068746049606945166050159293143888705185462068936537472987987799434108096130375546734068334599403715996765581495721198283698235054438765793513532810534060092691688125074124075793925074790100167195703714394129466641766478409515980163691569577492545078215368320603982900075714409914194263346564150585959265466336789491053161938514389407481027391115762942853139256665715177609471492117337839158739489989351767442726782613936383069002750476380858385304766662377658639191710762138050089665754564656633632088252994958877312430616594119507883893947298922265880621863618891893386195632996725429505469927503155652062834637860279932778219246468939972365959149907151198101052364950743858009051147720465591505094890351478537879624844684924569830630160282082683407576435541781958093104556091907705138898094173740528383186449836013629077822762278621446176701056486472028311216094511458742239975857369715694063097297698830186842714920762758404563343937658236241294081880278644045584653065584024456941797509321136223096123581042468051372267200357337213854786032010412991869809524909998346975369745297111514916776923555280479815133718799478646942429453927978928215252838550274854377877473767430242279901859984927720796451868380794360155467663659843125870870894224634211558210947161110869517420910361597636186282051753990800806677080870105935108641556998816355159106057053371003556874244168059551594202887835260238161318187805601155845473318412352169618613376274119334258366697524214430420870144334690350907873161974429601596937663718520278647391558375594901923456756336626177013933838754275295195426491495816594548357447717257031778449188530517586140695878200885583954024966889943624027985130890912374430666719675906892771712329483291564882266626150390537718157260413500582043663791377796776487993288474918085778810950244725059501853070871683055912285969873879037061516350094095932018350761660065155997663949849735125815528958141628988170099773188562722537501364187558336409465223687319544752120891335366536553267649683466091867612436269490339202512431036154331835797794761794272744350787971643127458118677876858022000626686817202953240412096957359927195327638534318456700529839568975999130827583205625963275038367835398398313903902833057032943264882085280082485195085984647070863889826800648350140942598164830693533912663831855683318129041979683947614444285950243956771259720760120016816335155320073089807140302948552141244938078412316674367956130001900124792311248482567640898844722874699746021621079592421558389197755355745429038980907346014774735958666473061384385752065635948045805887395034746716821623331217379343911566091393683871576195315279518878973514612129910496744822286840861978932028206688965002641673413474698243718083938563317348362812688008065548861653773134840522423903869990228521830508740659227522757525652044341530385352686881298932333252692330878758767014558982736307979134547444156563221835810867790949898248620210616390702356674669954138364604332591878076156173822121950250995324735708851048370713236219340636215511806542473914905794167109235248113024938601345273539895471282708336687281070110930232496365909786742675627543749188761246250296102956868877032929938177706323338191303048156979043157400240473676327785636395613113256196283406331465116247228879964756887944730011471597041038995323188873397551054973470363721647089372279799029821098803675672605781723910329651825715491003221830731345078746892597710922553130926380420489930411410808726126922821960085217197733269390806897142450663120357478359314772903855395095325028936072791980996316783562891927458924960979776343805777902521320854760684441232317497967692100237136882122155967087257452844204900774741884987460200667356783792480174876893436669147176072789421337403053411601740840281402535414274585369721103957552327990727463478918880333615381099548183373023925034789428651004948565469229892879110639383935135026840997459034573964587392949708846286906862028469851987814355508188588910231669850362937638935934413570778318607615684467785891056883292469299171453169971624583997244280941096205208704724284904727276759053894191834803784567955576506524962031261751996432350867600016910738292826957182208666889999419983242688750459897603377173957381917447220639234584333808147886927047950490600541906384803048909395818100260190468719733171779950213976822697338623855920419340999795000312710757334274305942848836931801767815370481718789711831229973574858968835297213072557143353396247494982528168718318962682165327725291616816918245856891858961483655733577214892527473168315267424233086721670438808695759011146581966554776726170144683135285974745231244606507898270229485529368538925246669831351302507314673806528374888185915862628666611167982773647133783317275023912685838412038393769783483659850735608679124275343436602563545847536495897562397654768774573815212120832636887667797435720090148627317285441863065973957153813503636644106676876650304997246027362404321920041638049743955259153336876427598035251713468412912304437170925981896967743847893788319795975537227997965489136011147614812336951419317079489016568140983598259638003764785338725587743722777308368586163186428584960600669726740054416851109971505547435064527441251080831948354896379928312729996995941136408713321723229027911183026062007679564502297401995345323371238498099416312611265927423783683037189217839157970465705221073191829757522194746222148108284273924653973738471303341694566133572774394942694418558789561985159775646614399861456773300139881804054297353603701012572215148378962669617617947420954228146550178282405187423988379241312512213552756351377237286418757619263995081880967595200659223158500467940575277457358270618549595414137947145159837824011732694357449929058849980057378210024725238114378863773410267924975032793634788908818278173173883720016097971529294070029384169642286172520894787614498861640989133327098781148974564611607380094363796870172468379460675051912349887378757058095871067533364025612516297989008583688166704242537690160954583795456501126171293713088190225534990325336930282167812636683739229880198003532146879096987692063065611676138629546395950615168996989271830936758966985833945536743146749867114835501182703785433742092372070253674564909337810020771710837512873141113265293019019550323416658790680398837455000088289898227984052308631926239482518602855498153699965515314620494503690403835997221501065056084413233942112199500104577178782294954787179263107008131599201350894285913059409259464218966847092862668770347662682954459496110546323304837300624735733052695443827007716843677528594387480188009190156102249650631831665149691178310789440446660823357317411379851618322782725418509089660386883084571021984548318262688391610505220282289437145270633804462535921881634415613395682254445347715678757782904482865420379090360648328211644849322433904753540685494968234061327295612010338998630532174829757434614101064591265588023957176729463209668126287560753127354326778227135481424785774619054281532418768206318716018686017227517350026369591194469725999979682337544581567734935117054270972444550701886979649309488096647965449017288161853768529405746183441326028498782165000541639094481344297353520360205877588604346723038144134217521592159791933633282874256898255460193912255551658757739174815654763695786022351131222019182561918440036340848155171832150102583630312733705485644011615444465496129959554920940198057645828361546133296367445004274332124802181519785347092941969331165941208080767173368879675843554289789940936361123973681943593470548936036400524465792397173662876480967716320090787704652822057145847044418486452346826512149960697176592349266865586904356335149428918124744464679841408818711217795088986574018630163129267849486887826593255293013862486082318839353318149370883733596869017128636073516848309497804209158160914265133501030476752723190369617759215168465487026324201834736352222093505465203094992966419284167134807100394732145343821053855857719347026106368995448409426719458192821579938100590275457258635667551038415771481077835043854719458041997260088964475817986277353893599825406087936948785822531026086986356957269415889449388270471989153095665075485385461683290711255707859889449961263679683261475000876910190147564797187754712986772308068903666002483216022686637204487612455763969598666439547987380976926787747182494141192503163639758223665911738066164170522304595007069528007572459157537528287208591712854245550902640083450155721167264718409257781976630736307715638283752707567827419416026349183464333866796697937249381508620343058864737383991884673731381996183694890136089250994588218533833662469065641477247113318455902186602542687393119101406492862892219675439521472409433962714665256834018923404772358376980290544647962509758038381011926409703022376797369250891374028698479008469508316834038260307567993786852998265198964022305602963619830343704143227237192221085590979700510519447048721608281716503464402799998307534299149558085553521615069203756292193979432799557418209543972945095730924119549480942424204553369894715861630730102708399691805793355333207087402292428875298101762447750181897576696567012917739827793976618278777493567969965088969366367001229291387139008520021765798279751703897586883133007229209399526658316183432516871358374222208647019729288090212726355822586320190869882102947817746884308021625515738040149075088804480542652697687750361228612930755056697903195347006517002665998662486805504697841821421941485735817177818961309372807440658641806130672147331308626106923447416661452210229835881029003471638382804160672756001364348615793224367547005349676423865635311618826162912434725311797075846026387291561182028900628742890154110653486189994950940569516361271157841166578642965055433552404383438916269322935649092520458256348819684743836569124842902378136495904010801145506155122067068072113587956775524313792666808694292250936838371573901648987353554253684782646454892877359001045374101079183713689005116383067120230629070215457769351642583295737263757824668814865635618797128365190405739164302714657652130988526809871574546644779458988611638932017782097551904596005843641342054160140788224939323751123822347414158036679829626154009912002500365225811295148143017377258340013765934065238489073250284043816870959081712561207454098100285547257448300719551080355548163577961908683167560843030129982487657446150919853878968382693555137996091054139755655015337157961826824231050883986549136453013777742596935510130111090370931458174394504067128686541210423147517284329444802305128028242707755444153277968206799271069272797445758089823859416907514573379836597928517093867566384003604521379209339123476297246628205487950300087012154346808387999840042069843151364330865884326154179441569066490247749648990557986805210603078361775527436931788603075297147541835235547029789038864795174698584172995441054534843938162281444261890939177164926799910319721894896488878243779929656791189722388030603276693282311237388314839665515923742116375902533249453024486105421320699839486235743310415127934585784157852690225747038687478985252274736466142791069247321799280997153960302940995438466477197991239341546357708318498467173500258531294183571398374964759985441982455581210663020610853835699838139489295359056300821681904946134799106767088634554626380796777680640925833742238113486943426970050738491831098840867265978489915185400754391186336525299743720628873158639101583493984460034201181648659919723925266979427171717734544858088868315549579125768265395843368265334053661491362774359429350219372224197181692263554483683980403052451604120877664687533243285622190026560947336046683462440081418669322397396437991810781256328714033716667765611754938439848010625130436292708180644491802893643236975972556976517240528452828378441882837048206375694156978297781230701927127195372318399590586690711090581502453070410308496616351387530864295651424750629780362840366100500510585806692979211759084372500234310365437928369541267880954699984108919501960946789156007344023714779038287887474510718447806592744236404759751169021360331068207366509632480394565142674625812760229176136630129316967557737357057615483160918098922546083621359726930593843979346207461520625205762241333939552457084067287991099627185363848440417051991188331392374476775914215338085678775286096256445561647201325407371703596429877504035127006115158909123136997013921432771639245438226651319406683636282552606660975779763805020195806568028745445727342876341167878827504883277384567598565185077442065498388649547890198743181017641689492319434971685349558248473055642620202466975877374607934216608710737944163056489880496424600719444115129496240547867792791081073259781556102223196821625493723457557570789005826761560351796570439105014834182392008151176644925836219358503597744177905287958804002629574574180022912468633871967397199374372124071095152393170206436592195783750754006714459990937164956438097788060855363591740366517912721440585625965389603768222016128699151901793278979288822690683584364220535192367877879705632080432672933657527094791138751436590825666943023366488484261513612199266107499818249907753261590727140647732394080385300244256727355572149172106936270342744205639249144624607052396808147386039855232244945798507013515324292934198760574489358229560436454482418555416328476030685296558441350519710041243099719065529602853136303441557886093311606204694328471151169309659449234920661797962356182882189291929804755772036467719317600027113893338204453830585106112391718712446305601609534143255985848768939619946723920131853143555513320792401946731931275978608376672935654558080661618879365667445278225412421246550354295179778095552933953573747967733418732303638073703579089302096004039811304509219910420867837667101620305892842386145907891629441125809303645629773295786763638889054433135907622122506379097456293903773206258287431896402259660449154988106699462719180653695191658708774009390916035491653936750561341357752559120958910195767767147481433138230758905907669265319266556173833882427634640446844551316644208226795912429037848719184249341582856010098544620528591414411200892730737399247063803729684240296965368432994347401337886032269430660842143793872047211455132202878479662608053561117660237490107647943808604624649907237044373098254975284839015968337077172947578109212676810120908987811213332336660868759727947321125668595085897477940586146280201632632891044881014949778448973782919768714366218370585227818531299120970290099791532946597263856841535700841671625854709560311489378720289256648839341606247374947575084143627296303448361642213096282181957502424735348673586215433841235791588649274167787558982429926591213721179706217030197415575052926427513528911585108673428398641826965848834299710579321791053632596622167405597608492811303551735681957829873905785209469669428561693883121334514444736367801899859337825172607655901156635597349582065426734356758749035491068746917541718001500769802308085284968816023008717914144845675527633465625646970079970911863667593379588894486176717383415769161350347634546056795668543162923526939883440573266251295090339448417793255822946126545623240315059782656337198219272542708587255510129504535758243916757568840179284879308826773241260664050461695407798855186771971809608788168171363676782868522600973629305054395237526556822333631150273485953922013655856578673284261982544066994702322930566784113347795784614726084538953475555277470127581477454660091327412411069796917596647987024856216949037313987013244460103395999964658561324333586260122477742131947994165240005730481362460064274544571027892829056191967376324902885924489173979504029748650032513022122178084648389766064375467805998086184812086473153815620220352900111967568970173097476654335805291936735071997489971118623017828127045001324122595173812173380242681490106895871748700832110800834783561087751786831550961163208553587470397960813194266132623737993416061017318706406688020020627967754945413838436728464935956939669577329182093597436078472355725920155063598058737040180256383653114808660355149487903740221515304483837017617840457508130564863059000630950159032698368086600825443278628897045515336376934242248431804909725400515241602827100163411277578167876158690482869214712763499549060808450806928263643126206473601777654268036847234019094844948992078239861661916256063680269389553019049095135899330936824152360993003462802983756752414961550124530474019304702587244448832548324845593925737934192143952076751961439475393040491274941778369216524111605627886678462353569880579739066361904367347052809550003164859681207096101839848409997297296017594015870904415774232042227785912255615477126901651419144984094449643251281543597272137734146429220514670618506676317644913094882944759428613745218657248073170551171248796341526458555033502746165741237873942781656667174695904287818540320786109161031779118785399451864726886262886252203430111190421363437474045632986483070011574509836002751903167262719333763183813514401781608110039867939908164159235197814440117094472590588107492964616322764747918539788061166800637396703516279791461081366608756731546785376715254059104595445662051705197336999705796276053883649881216636739794589779253295796623622493247337440736754031557108348992930390347174536823915619159515079279914690632959296192351334101106951205768939816121866452687388558039901787702384634353486456244473333465954887380388870483859068531390815210935252015349441126424725643703994126547435638581710064970530974308663700177725024145211181405077129000555678027477833606544424934604186407598693534445267673920795597555576853379424717284656363716051431812056015359723303726401250726109518726353128732770812119401339157627067685814945911034103667314193830906864039517886185620827524136286472371794865694281265224870249504240543087090263670399867185710519372754417438586526756467418533324868272274307567068596842756634013541482252725873853100129895636770882916886869018068129778127162116211331017096381250669090099512492959347354514053942205641239336002257569610274337233924268377203324257119309737887459540775873346903744763042670327341749262395412203503871363592958513277018644378296502962337521580848214271524682143216813862904950566548908090885176034230367968547890756520292883641411383388159593617665809942943245050739886022448697559175873660464518920101786127442912326243708828956603151059468919140259260033516968922891962978231726059853908109617927055491020613657659944149913715760355879617602239147245383076045620123249423258108116368926365892906352519089125127131085438278896947107084522898414073107014884193365010823310731029430285901319206080861755688928356597265189526463037263219066169418905850481843925411117733731353995807926517302697407503036520469874454793498152733111007038252994102316716339083459276072767366891078907611579662314987949687831002033954644178638153499740763546679196414485850249174727220324618233140972889208619139399934118372748574526815203151518646805528674459115393124248743175106786269546809845970803717330489762157026572262092484890835656512209745285999011753925960348613073004961829071813734279424685194907661115042063688825437485382023720263496432584611094260202911620265701321015897919206853017049602868466674545690177844798311524595074179699919979517259438576268306158685749947009442618116590544015674447865432533985589419081882675513559268106174801313412980513625390987124410144304215205516235606464264105149730705692203871100543489663761869295802237213240607683941080625168024841247044999986863994450938646498410619617767682477212172557972180914839428909262343724269801719728054306636255991468688575707437936364802187778075211509805231984731413457683251862947446283631732950009574234260796326042510249537251080499132413371476073207072977945740630704761189643608677595080122072271382477825160131632649588098348795731172680899309608779991177651272172101988263589152429143460255156538238728006237189253009447539427220004530837749576607275478557670873351462462651683891726564672906616184863306622993815051692546211957366401884122886647790126972516760318582299925132691091100286072522170866776763623685725720014718449431551486821665168825087404376347956592710740071809688299028534365938683947078396668304147376902492192915372946974829250040530305570016849640525412081283660346396374570825700413728486164288255933270451187242230112986972107682384729966496531056786253233088690499672127817675674311468240609667097481513772842413480447033801426051128149940103918584698083852890208899950106910444743504245163029798620874258227016219082005215233430835025257697201674933004878378560075761597465724763122175434990129591597636440614526678787972188473579724258251684896445411986635917612623455229789152074586434258329080116833964710610210810244752940352181446417333728283013821922225176945512379818399701335931948367226307577432007186041407706867946555149515967198450666953892020563776805205904811149872570461072842892046730936183992183229961136665739315106537772654231253700504223767289087722949882830166313720780860835188491780357587221773261774241179869241914814315459027388351836368402339049227899585469643576138617748838990961748747853080016583891123876069392116138899291418540728179262215996334837542734058273588701061912030612537054019589690373732494759601774788096468817861163536386609981616608237424997062778429845232639417965219832832719059561213411068225422190649759962888905921156873224592345949921363870283453894339338171352723940371297448720680745793525537628476002351234125960245425330435906388672733124360118990776813875197313330973216002404178380503019367024374462724941926760390752495236035233900401150333235913762069484794869120428915438976133139276196088543116106537514605021425105654996042978695158294170281048170469972435891466552354051523227486877012311424020034686916332102301797856516578951833518335898632719003736485841439109335870031275565784242130838318882442568773854752833692088348505625617808620706216583343991194795176392524027940690025575528022746233381416266576162130739496172281967992027859370723823533224098479900244497936553768788193508853986321017285242620720252456049513823982363327796397585320795657616684377569053856738592846117933791066826103139488835066297598747941474276589310626325124117574161117637078801036879060753342594206401937560365980382996980346964135371686100742429263188832367520914506105723741563700018947316616462479031250652108158642897842495180724319294991029021453118779888060449189989413946257589589669098955557999268619414546077823740338817581066012047349496086891505098439628546416736103392591973880385419931574541641061336647623318414673430608153090067168778857549086722004318538535623358778671790407262607535165334234794275045336562011134986948645068556028040320819041595587832171773969638498119465326453218647006341670421486732428677083946907763570168832934358357617637346561388015747542995195720425646309609974778890693350361498803161123351115362639114051294137959991725901122406790332955613845357449985022371092883105803552391353492246592581416512568473275124819613672292982469152655980759395867804604341331882035879424907254358779599529844841645051610856845551401066273887442330013123175094427641864133764573420627095271811289545918570785735818481464690074998286819389974415974365234460844091417647374538426533872640568947730609086758473106290695250570090319928530883103884737484741314103009143913176554587553347587965809725447243111886851916787262472508131883093497180345193543930654725801303244522270237782655737976358035787135916395496043727302112662081656598863128200616611393869890862506308140930319323617438781445248290858674719602843666345584726390410315109774982280640784597166108937100754287138408324108557729354407632336067678643854437145048932910207526782124177608853824606529902239796361166126769264784057984075175732612733880452129652369290368623427223399603948729884422351827728694918981748871201549289798977135505701659163590303521393442672357712381674884166088327940360216999494228598757360701961295800071172861908919780151018018696645870996304317178903405921386207297546888131253541925699395073189944054165240426553907186500503945449615882224692392202106886913199354924207717016937777793256176926165455113212538154390996683206540785292440028748067549671746185223226010792590967527143010183992668846498080482237137752959472595913508795936104809572755350865921113236090462020737335777065602518498026781502670810166596995336239249365323908722493294492315748336421801608742125010179258426539205099178824770750459360360645193889703510194260152029290124350013751029508783743931049509651324294257716768009079599616451322792190403333207623087129324519370019662700855048840373632750470511530107406801727029023134616926535099843438278832824090784228206261645870040032565815204939091758268306877284340151783507941519102930230968046167430832440624938131959629605606766723320033941522881797811614641385542639909378071774816980472382895939774160257390236433399402119119318605331473284649623492822065145807950679660089911663249158382229044734381146523016620742672482909999596703199651858607383837284528391027923721639008722536762898464690181708322960367370218446247599290593683647103969585084419753160011923820529878541624977636656290005660171204978017762723887739456784280934501632448079795503326960534463952385374202950694603895259632616786405148144687285478601114460317402268857304389915818647491370678805826122146239224451215538354758176390038022992154243872409828848484529352526069169206735723909796036132573108995030778162950971935635342169476768822894178459149988132974993778273992045674040572195140752343598774426837861364396701038515061642685963189778420814595658408424392938795302500888390234596251744216866258935978699036203330502451942612834384454659907843322149316866976252776739882596996689211932829963860669677824725100047352275693474566167134593903337193979332449996480384347474825499544678616406379899891476426189292738755751190760017733358647560645007066401212847801782144231028129982828140171740807906443564667571387736286786135145541981262817702819802077890810633491635526693256864583644946602332308424535283421871199176437275557517257671071689909886667959522794495345696710736191122660543246139877059276603528662933085918993641715673591915395852216434581646419153688891877743413793554234606911390899008823720554810828695129666823196492187438208881636335599941947189068884047966796765099574524671826939725389781096389148844760536918270947062232651302473585971010059201631596366794161064604595640439447725417714580534878689088477032087204806124823552409824645659565253643873979123645838326091564728327745577366406970174135665016029995854948151656180299271992580090495937729444271760936563794565607614412902908618373869463221436203301548575337767980705634486109662437572884501978650063085311074501448822168836761607878217762564286870511917795869344034384484369403113130560745943979718807790283323214386535658557384722982466492886703494601275184165923185688950553902715965473318164905196062425300890072232991495595705950052991257309224637281592812948545326280891228209816727062097521929591713804003580325726672106828016426490167321611645025367808224490523566226755281155717682270441911436888888700177837987512307477480918705009601967536217687613494324514077367442877373753493682300555318582223405547780386717187356865819271253010242832350974310107747644498529339594763561663135117114893391578270285126631776123251583474608488540557489191618046182319216488431853407428918839520561269357500512886480782499796080733242495111027760695671403098834856516876951851755910700617892564949886541372185630023301112372785458338983749307004100564467208171206754143476643525627141288906619148353674750598510232367058573756388678843368764726877689300160514063611008728486034598927567873441667374382428618695119863827436137208056482839282667801004274077300003150435130738637395949488010556288900122114826779513476643576410104295031536428177987720570091188780514155323660777292563347744766376113364804268025952828228413470191761305812658735543663586732949787675868952134950899654736141529956269289626036839382603982351548417793839406173593087562223988197755073301705068325081029237306447181778329786035736324355482857681733854625829305429497482423334407329505342037381072879434626253815778118162426006261884969644794732270684184399038121640541684109897436904044873810302282887137715769167284066423451810967165788820334075562709728769511931626358488354084718739345767721774990564485895461787356559682960615889136834597411913594483815936546375892901857481385238302963286810144448101991331172534408550151803209996032501212866990211158724542122606013450007898682551915224131051067309676246242898054564494473767410875332937507143205225647450616147683221535385948749225811183086169167943174629239669073346157632372222235565152364804764607252862540729052557499767422206094847978035609609360973029580397895946702386325429274663526672562210961933679424757659749390537134581761461720352977375166297568337102077279642747657270405618156962185754948146945026073517160990747510430341988606744119043925286575298599831153567123001679515026372988276879556808591338522917152836161176484964594134411034330104743773293431408180624965930779228711989447214993537800192718984701927044232942197075409816152540711697149959632938168454092470567756446722041656354692592120389083389772253524662982700238436526212213261950864819413630305588705773213230169376125813227443376494503496873482802033059453627510110876855048331566258303919596789750854606141662824071267758921067831273106688718682273065318556925262582532375891451967792827547253218377089774831291120855007736845767163257097223378976771063070038826359864187635405303511296913823380292173582579229144006262952208798650105247801554303412499468480217897809354278895144061477978104239624926416990798091671381369394780595881492092050984600266227721292759248668993234173600180442819821515828825670027488173658933846089301518565988371445548472172099227879484233458538934829077994853784208169767233706700168500184844863467582835801684667043053009958423893526106855000957098444017524452392186710040029846391890029693620340222709964769824129185318061476709411599914306705631434301086967335734723809474114935634569984315526632226074487523610843488860548173291597612976344797833519730255215213880805973037442972451311642352812327089539468186738650016679399786912995277580316659314847034901319231295505852222894841833232444273222117495751677148800535448019458674908793337947922239133387299882414394867368396273557645199452973345623793068769572028420480635468018141614408257152847875172305700447673166300042080102088367832864865861079454955593079148192972169751148553472685694766543760236411397094209729276703233076212213598112327522441000336639169828330312834415556918962513871903744841499709826782854281332525426348389616592549608551411094559361860683488280652222105512916669050490389254335710509604482352198669471717417999296035531139083049160662868828446574218809900477030173314497097242914647076158818871026132758828584037608583366830739519572716166621068118012014498340472342125314681115588333883459118972089380180920244122721293347319265618650686125825731862720310187173987837664427651912577080224171429101233576130553678194629760705445743373302126756458043655431917304973578915201133230051925378163852578569701409135622638451283492541725525949675457416032172009598567526409127258723712968451135008091383691221190144746557748399604574914845100095945600560804813468369948970094831091692832719801230029850976285440356108799638437357476555026474532642492863375779017705106110621385169110828072675391729250632052713816122841789654252105924986034158679510831847938886050246631916973240454716132024821986401486369916210822750769489675928510843206423411923638724316769452518016709080685574466298546115027484812461101882412109246110596303419592778492702574277714545557176990801549618798703226979010906461122699804672293429699917668010678152246538821243199464662930170594765733936192836627192490255526706310170541143277057568920664105309562816623437060199643991500185461449411621202469259442935257809800133569977424590394304177689476964921028954854651432512461452078002729196770033490331304440916636821933841558087963554573235551266046116370580937358488725500029372099530837284546895322639225499424214644115850463175523011656155516169259251618438244969204679609237223366127509348025048514712920700460993198945601968800697428194049236574847008948519829485602420775452825751076899094807025259611573375820911438266580520827595194433158455536812341657316158576857125104466418800370071523007964077069154228048501665984597329537212002349665410423449238612660890980320017582661729417390463770637201946482575863326254607129139433864849105994379337148002285031798580141325830788832983625109310605011562000893731212331541593594810162441837170478145118112505830137142775982478395784154510191836608716283721546669926843424410947297854243635665803537758703391743452416776337013503264906294845005020142810730247108815353486070415939756964190683762507556989944373361504215970016335375870155716439170545579896871273216742553442429220584178048780004708444911333821207942038525287261366180972744527194362148086185141337095312751964677031363791566791109172968961847782340415259277915154943722992250480710526511047932296940942480893042491758684675016091278285788213068475904437593021557752813742876184816860081953226386825065391381513139256043101502208064800188403397461204885344349646456953894911595498497309417189578985357365835021629468394208949799355592219518142331909589394410523721764447713475221323370926413889844599101060618129329731564470287297513499858169227515980274206022218967853731947295771216694599019863444257871176506426367634247222737472750650455547578713684889618929653553846314233515458640452992142219099277997504756776608223535337364411025920880149806337663173799524838574373609200788167663835545919213300372833498048221889123118721229941613548909064697800332948495085827818154907592898869627206013135596596797697539089994368127803600566256663118707038974707027235684833281303703753082423160537390625352715425190744337024934570152443535930246013852849647442956128760360677538204549662240066571827601673503838982142347408887565169894910353424585105812788023837687305467010560268580800159768362896199204519205145359711009266415969824608761925344872674514591211396351740498729630608189875217040846562368724049465598676408043863254327408300596890419660530233626055075260257974669603086515894576663489398774152557109299615240616483526965113717591076539655207531461979889852690769858448692872049572254741466911066136394649973217087908956835041073387571241256411869171691757664387859629995483710994577797283965693988948683247249671456978413455230697463093383006241732845319328583279459257500153066564806469498989524287430899159917827831720754786246293623865474839356206931644620505248251902284175211421724708721738171259874181354519971872376083784682073878447147757106912418422270045448219151794158511955034338523075023382049879395887689585415835144916729092969465494418024582469716959070826183303029118992348091226419698412459858983542502202835972329122649979768228948179512856360501139812089839195683244549894514441300691473312784905710398353544295002362159781787091237203241245292872675738314407662781246840064414138315830745225964293489816330738303999080932447131754038253461089690545181706179436510381281325225466199278755390513414633879251824265190541107121159730301641239151264330536328338324212390544015669313413964410316025080619798552107064295250960105587230835803666007374059822780251907751291898173933625850813155048281356975833217419645336286122527795718622280774259084549834644817557288011114767231304025294590651466991306205152698410621032585284008561558373512178579515442527374724291687892333364939018328977153851170397386005424227679569760925294112536042463435415268451887340501882974294143832969526544980110431553340631097771477826172976094520679396510149376592484519254948043139950886813371729397360729712312374018648260862330489586616473646143930159712362949806855669513975588152882481382407088282471484805560060180786638057401006670634204006350426801137357224090727028788759012471295615590324254047116516181966405732544074475124374512755983449623288544040885425838324602443219679039268713595165640915549934609186799980481089230109464289272771439456017570326895785737435471974174817489416861825623621258073675757273150560349758762222337689571029581532031047314972285464028906880261276532327144546509331278094444784690705148782568922398257755777324390689354277347760649876267300558466390811661890027413676601167575559709570032904368163719998039252333513748137888316186862311610862326896295777956071244781004429438787141054812608828452341235364342922509063712834288096079545789620183664176817930340567155688780096506959267473688468969727385212344717312647570841758205608010509111129815235254134146237592815097590773699270501609033065932649477313461781421550652546761604892301229084355927484366435268880935501602022945791155792389012089598900868022007150823244845998294374758102594808068885720930315798873529787900689549516710366671101616480560949595036048956060337657171741710555204518303986636907571354556380265026002102577464485525333944601721162976597503412517347391799705053914481644950050893790106175159976022433871345836935975160663517988655719330360044163988578958537694627656081944998918093908586791505819875440890546817661366442953562020351102566722576304743021818421669148199099247060238917094095246041022595597399823521110803631636379697921451321122477286233537174305723528558126489680371938233659572911904426615189935627052463521873327519976147897193665244919593344973817537821556585092716659059678600248186773098303633870540087336714196140415471101883233229922906234767060403302543785878928230661395286217246962227871045887555922167213637462411867070611654877793949755982688824311266986647733804638320332407486300212710421651565944986165275546725000789300677043871734841274971442677805176179267061880770174470689628070732144934234616410384568194550118251034634878725534104099055195706855552878829385311673812564817195499153763290734592740448467055722289988197092410516353272642833660349952636350723545921796779925202751348518485490914703172030585715422628713113030734848691812607647774047936462246593722352352288490776699317101544367116478220160736572016946078639967279014712190768734097234107697039347497125497976726490060835848553906076200842294561863042690461928119297792222274137541641197717538039120668664484373800058144004680585578609957274387243730879889102735631082799810075809751444583503875593002641475719771965905885793886897593540024497668376659692302716150132801915457494524865634934132254651581660524500356740494417274915166233945394588086041914024907097786274467364091610408056854901925697547328506392257152328434829796532203420669185768802580584814138426729922475247142775498375651765494415292928899383495093454560927895698835570341321641559803982885477642774626999145861529710890780015253571500016500523024759812357163651117510098365093143579012125967506116511413621085085771903689770222659464606568208236420290372563374301298640584299434696143537034183089765985753510559879703230996645301940641028116945277462969632969750602020059453049271899900323598159512642355924403146784827797141428018214035052975333038700115168499686408268515916923461703215539248835017690387934818624725367632179288786422794790535460471048930923859803282572240696359147535849346288822726993100698827161733814789692724773115238472021953445341034762331065688525508616983580609773001566646624250128345403507279832424847373352056462577016665983706239024980917985084084421211385522049171935836175915223205307961344866075671710908405806001739281576418901247207650530037328946522972538236912807509578278420766526030040553756154978683477202377910543624312458233262252869628600896537180414335724028408525470303507940403756108017428885165510732901316171837318325997064325339391332496375764009852405948430525497362188159506479874613379220008548427282117386579716823589903278333029284510648123560565309572178832692360442781371904072096390633342294767243525925920526992788178759162001827217427097599041032664849082931663795944304452740661533541954756035658653701231698899970266822361132786087335070394243368061556682189229214928868682529282069414477286715340912661934010821264312848089734212747996015678205393030211808201315736914827562810651810833314254067905698221948269943821281188302730815557275625240968049463140455479586055838660812806728913262673495330526445886936061805558926782625319783795790696575755584466109002968018649258245795182304061061224479207884747768365391477391288646346444925917867322372022197481396078825301167832864963961641648321559280450001757853265471575257548771151584208966212011927424025358335300192548493245262536920874036690170179140957405257682978314512552147567219418151166944914796914480957815048999542705837757980082238796543765964435700676306063952314395653344068789804467856526025137158294960632681825257291740740546844850038171627412288090920546872116533747348075993781396537074967053512946325977862288434104597973031171526760501327914272394367944129359606045932431085415986883488445539750267639390416896541052747283079637819503387035353225600227170124466981167483543401714363212491155985135469791241953946741442275982306595646929623546949914758595279021771939744335349840326443100049964826593060597638406988250927735653170050837717520794419861401310189705866983021539460967433730505923561198138142901116725473494444494667888242148881026665076505683554154095909725192393791684954841621759116318935438140239981813107009511990990280094046345459964947232421399508851734596957716693719233510527048162464747904838430068547359890073363306656305769792784129961356870413709587486376238878615431823419650962204268143939515295167231697377712598406679137558252320294353284233264583134640982909173200289838438075437501441178344351398498330658141584272221813525302907444948860878285972493489727150016829825136538649866923732990440083902525820042789932095541536149785654836231871316885723924398450922214996175037852896100479626070791673578228327254373302832989865514948270239232557721456778192407806048305766009328602972989900893346968829835855592468919028243349721857017528100057530040984791346534140628375818225696720001940446698973052044090662319595394419202825212403665572304656357395571012516338191515229370884134567187430053036254198119408388398719240435777743711937130188638352437120403457796156405337902528350001617825819661761617536351005920164862892414835416365060786352841239013810278936410178457681411335064063688699050334031744255529194625679398701628566294886564842121371867409563718138604194859057883246278999611235671860111913823462613703789516464567711420725030260657741536573193328022178597041989422255224764354397916002822032199356913367460060689819822471215371596546731777864180360740563858548501329873488927484185455720199301023000832924517886675769602104017766124738684229253221815033736976946861149988945198368924487458038301219712946289788734878544481523329471206960478029267659732774668811243552085612364019580610000173467922226766788516599850998572445428232108181937663724135966023346496971831110404360269738855247966322925204066419817701104425950483729063643281495271889703959923457509399502775885502858504132801972973135029361944717048583072273202508943611093604239198662824459973212763937119660212028585735162256137265824117891127910675211036061926153510131506637954010278565830237049592916838872151844192829447951006768755061585795251546607112859128434852062551682453254057001007630875049447307599350569029512195117376465865980444735378408366284485443838382421657034310699503305082143565063300652945141986149869622608715199660871262116088245788673794398240996620437891459129573158901874357974041742762913055920767307627450522550422136783065558968152917557667861267129678851554121719211703722184058749407525291498910107450053393180783882648350399671070541620524177736628426793908547713271108623887600413556192104690718661582595671004110542504995131908454787205416114701505274945048184289196008897365657032608327175700677126786338718728122817887270242710642793241224590848647194355069777329758117624394636621227082719134990136407317352334143566624945309743473784713867298527671553110330493162322533385437193835268250449395683674696882779461968372939459862158471599157215929239753812326613645541019933998685828271445990473989274221878226330669081704190476853946558165832776059234946249974574558913813650132721034923318553930020585861230000061104799763169409725527526983379972460396577062266768257368156413166046728071657551166561813201733889809336143159222391173870519413393403292720830885697703616621939672876730717662815797500382483692561336152752525806217247428103376842920892187766012154079940669173305115634036078041566884177294602398929296589555664147654625954990158808760073447045075513763258575438466031247580249460552627216843449231189133201817957644921320528707534929705046740324277637452966214860171526518767856304941841719193330749354673650957543070676050356593486163706310478621872226054209951575684387537704684982306679696459920556620982667110936818385414483848382650193156630574257867076237043417606053298038103902000871815666462997714249758212154774664175270938023553915902224429252732118273601035260436824470586671815624403885730051169161825032984088354174276776735990562586901575816774879803617595579413597974033968565387928762339808361252574732219543855145812627328670662040974481756088562004746251811055214614904301193514045079516262440927217908166962280838037089201126689055408269004893895933333096484019909079459096594088921714754812892541582481097868687338470403254788567700332774053539463399937641805989181409979498205911032751414632076776989941789068658276894727102586038606299211196421815887985535378048114672006180700485327438427397665705206065620666217354621972738751688738502003099550002782106369184249112395840692783349626922062918187097441897510913586050572731994349133533768009532170352937143107441865762105459179849118113434042800933712321499673458964362490127617287700447671334417504015690684581422610934742749649039808330971906639492292031184015951202915668472624352697994783717793168981834054958736710076516114091697892240807985205030781266758155151773251339033789202435529360225266665963425941000818347709283172790569930847887019737702754299033949000015627982238678371283478524104341052592609027929771268336246340755767398564865918970731994578677848010357944255725625272202657370124947973311876769770786118946734085685448337040192819127570187929418752138046034609998073324043679615337772831662685539927149067634676072079612716488200014076026493882814231507944419171781353298891454746028579918563048709765609565413262134747573737642565914980323521749669862491435781520740611877362705476423089130408386891933861312315824782333548504903024226418266989609441346943397499787350679504663353235173070928138662284880697951220512978380724300848436937147353198777387350195786132829061155114440472082354842317613138422095059183189803460103717086994013922899607010416828274968076740448455787521899932442725732806337451004129999983860194572597530955407405685307017069090334911921702370318418388178483137526612441533976722329039713716786123500802718159031225788308227393018838083590080487947446857183437987245413059690276333767942907513091003566246696846768789105123198078981369616762860233912958344051894218367109729612788147833848004693415626041781290865805079343067692688445636582054605370593225093479789621718996375844386641649246611145274098068645235357141541617480866099061621385012857483336342961741804174105087490981969919973065529426691323517578506943261551309763569205792968337762456608421461154683075622510075589925915307560708213549556600657764218921267340832956371667015206436591587249540294630436469082414283735350302595914734805822360438980246214463914496283609858950578685142831324968850427785138170149342349373173883186117833999209403329235914448417660421434677405299653741070703025719662172605397117122163159968820281912103066229631168346320458784789071803583930650157382243707778567934678650676841432002407738187917432375498704293940928334276331678269505367206478882782218023254330418523756317203428407560861318212830582161325970578262971260022286525775066780165051244843464845786457541507544104801721804791871186899072230476743042333824262384668229529833880203163678576998365627496317750045294686350448499163080617149815931487588159311105427404564702321186913339949936430227345745031917289617481849732303350719106382346796818704906675575655258411859205134159390154176208530913331963258764993603041654736012924927698324276636815545701380863287167972371676627147814967194409975378999291745792774537415455293817103754038391077246509253103339029429539460516963862951138545917580026947149258179096499759812526481815940496771814171583084515013030422388977009070245310135394035051437566657417274886751249902650951901402430342697103931225525392434671875238786842117624846687061505904202662792213818754810461347531262935182776305129893792143701443786738557218096766887443514054308740355799825805124988052865865073329134902800092519696293646948259197933984252321391138197344735365234562157931939963173028943495007229772431706119990486727957666357923825012506097462964719673953429532709091494088805041796714066440298120076483601997181811893660467041739036969538983050302964886924476977713121673802846588240187069440758947992786131746202036754715291581725645768940871251850689862511791981418216898058192979951517161338530661341172358341098318144925112241484246184099506187607216680858160216089821771727052426359164651573317708026770139321539261171952559642189135182011192775734543245189561442561256604280634648737460636144975340743605751273637540653385557514743037088465677306878998493999235398397836361209780133999307637530970932062688915967020506823777143552990817010572466288255061111609454879459533644839375684505126642395959806502697582925702788541501072253298518774937155601233415041544976189640214065268599890747305166974967152940187861592267649649365607245656414057954766805369656007102509842497602277859463959204052807000544331659369946979940326051609173323566157121709361689389530091562124899458002696533999733695578073997400607212776737667766928746803382110460820223324997500045568322135774445868300486569917300821453803272043917203703971477354205268028770112229577044527420177457437496222989502110343047844043645200477831226683729691869411638794951323827571748799802256874598755779163233076457879433698731255932378716013017354278875380097750835234328869568884106876865954499466760614109467026886364434646570370124784554096856532147187352867260921558194573403733512648309759525257572748591528436081036233345446917114322632248640373522277409751379087692906421955689361883794328279159613013596938469917167992780538938310749590532597775336701992052529008912105764643294521958563351531749219454184372445992595756813772278662962334698493933940865176953170673272922949430819451499611095201446651387021158100558995859534194660917024198977498896634530381629947485301057689480082685133001789529174964085390232765952429792026307844949907254226093106509240774455591912117756158441748802823256239166708660443543117990493197955251001046581628406133998681439679093608859657029034904244249250122889454961635846338336366205806890640541658764265220289225017671841952737427410890736079487223586805722580355015752863786532348562822401196824247470630915367012957160280514276112836294370674224178085708209575067721914824006575389567768945311729055992580653142257669349694427273439621936420641760235543105141063705236695363060582218864381983887427700841516456330353957709960232205371668809783684552150656027356375632835514770071252563392713902693006466333928206333657710988111523954200481231207992767501432726597272765083037841583316459216050184717613046617605856630500982349014611434219448164480202303373577699001415495221831476003283936535235879453682260155306316874843681827793351878297913869400854433333820016462244582432531769589771714412218868352195196200271950874609807075884577818520633315844087931971873677223009001961485342964297760393784745181432215326402871295881013918905464882521165163345841677649320427512526472181007700740926683884902179336673017911037745261303359521157309867668855513196431046155172307744885152986580005987119443234241269066454645783171653323233207779293369778073336803012578475197799144003057862809532342838057905103625121450037430281888450356225864776898344666161769439507970750514965390499128514966568110040454705398317460364107128160232590188668217853381522924188974171216134217037135833931389077605226053581553933281220820396658924017766575425464421552801218486091302238310078694291030963930956592506921782885940309490954622087854515069431512388567900205399109472676783253494644650203926492709399481910681264896344640264587921941240367471948220865211046012855252694408856485578617345074292280304280266653451222102756477447106298261415094101844514880312031671259172328817203107608648844149512660218145582103889889324595999297934435106061873181838731365726071025810135988158164459781610837938080624035762969754607484155088422982248530599878444713790255805396417773528534359694210920738481533304998299001012355958232590128008299393482119800798873703477144389883885101837284886062069543824988044058355125549465871592590477243996494839395648600541116361018109707849724329349483596629442999011598256455342654005870830805615997263534292681013585092354777033039448498391007531059567985153802637927861913512285787038220481612141371137356567441479718539121599050818980420017087315500787467399164975390298799552080243294087258003467664062460885214034977576861833643761402826503570575631529082049994923338105279789011167787498681099464254221526794650982213739196829935916483543530507747065249447757678583326914687571908046967732541542667218947527822384278594302545683664100595849610465602674460724569960115487006964370536199838307295959309365760477133510206435006862173314212667506685841779888777034485121830208326859873188099985967617078241982770374615912710463944060510852150824353346136439091875120697890216666632407041031572035191178408760791144952453517390173034548060912948287040759819262750896537787053251766859994248191451568568622028675174024454361879176980320097210163065831748732319800594381019244917662482232000486202867652220353283844876877587640158926114251836864388747298770043780099203913638200649891389035196897838690152053038249526709163903299777751324388589285754048752269390264718589990033683436932773581564765053043536709619092488994483384748030865708434119982426937709400261276243366904347353538769249134070806871208014902223031958107769682250628085246063670789630403327242066375194548670015342355965229737796528953517300414226491511103826316205818221523666818838091287580032287117827813714654604573091553338943624315615978337183527588767009216351519070509680500325013347402367206766814665137205161509168212734220914037863587886935475091873723914990927465179180230529228232114783342586570414996461976572039716456347696229108602375728453150128077491343458153406332921847479662028397350403721610293239506367964561249554750996023970299322182799417387854993761183199075945532080358726978547471158697908396621064279908050415523968503340381961664912206445878137077511930731736593998706971832178131640718680006387050844294397215293637883396363131673103810778014798842771447448751822483116120302647829092367087171938010371846753066044944377013719324538901401683857901049614032875912676190649265716995181011828108509810621330334247607406470596724794344595921521042513831876248747894747563017730380488126454527687943788954589612424298721488411128658156741649507500441555409238176725746258426054874297433832550549272147109932565575830893087518739954445885149574575018193916214698217710464911543684113786296781530407077040178904022708850515581251065213552473160845935098069454442520399631180841973209032860366973210569511082397216041736745060667742249923587931312706633527107924192983539134806087624945963237786776551507958631395594487159952941182784058701100814083702445968117163076625067144519905001184936953999276563192565012428986395231184961147306806219417098060940532259111924165297030891661213448864402583784658954905429196848054042629505055996908313662289603348095988618493903744635343663772939385750024743485084971639768196771820280324603715678061503903529826242965760159274027454855999613009305614395084898445575702459888144336693423515292332704843692289207218131272696442114196861710831813152927594505038800542775081010258396416294254495606670676189614060051561065572866186704517111301401809038270153972423719490400958959467999337440332933201519914287259057692767893120275311328359670758177555173620597938958346238035437528509366356404326647407676019683836598892314192784203577630473949308507241871200593358962705540136138077109960336166504500696570048318678984567286398826557470947342131796447596884006290084974333844172358005970517075181601716575980524158449360289362103915406743983368226849575149851919906245327715641090874586441641430388059106933262699220141155815649047443813078739105881902864824067624537376989299246854427180324362417928243987242773732611537392922756224957940923696327625144526661541672187951698917627172411742365521018857631816677248942323723143128133951009684774899685809739808201750225226967843897774496213516464728538310949894905794206586179174171402998320624981593357490918013895422602891985060712327221560042492478549218242983207358416742603447987436913514207525790838824051492766299644476059245560455618274544954154665787452337891451394458059707880325745110325901586794934890028049931599341451300941321011036851781340020668320261884586173920206741591815312100510409327132878403254628545977745757630217637081840083157411694356406343482957491609559433288349767654626889104996699995350350372594063383818302043918875079283618636793977856235577037220420228963319760930625315838413525629222427266818002451956478689168643416461483639107797510441533633900820133446397470215821947852610430567140009055782131827811727554988182307369256348765215103079824164479726327668146722088405263532053992895946711038855127417047575735273440245092538631459801333707358442991286078625611877516210356387606155622142751052169015831710159251254240249354333861357560856234179291396583657382586664457305786038043241268281941500352721774068797509325982132259445139154727760716584395820698408323156476283595241448988957589982005056806642027043703180251405905111595945860952195941377798769159100786131135193806763038328753014010640920683457245125701122392975141883067304666728223607607949189909660463599902560511585952605607087932347474955398255431108408950627275628658255426301259017510834335682457513150465452285180304642899074423966633118497158765912009080939170163268992474618606996959422815279270270386014006767330053780504192143737715600743744844420635202597456269770953456600343302807108579869576641584248784215018198522401007325760006747702083358211672699362802822862738207361676195016144185097836332138310893290365509666109844950193879790218884811092135315949873238103723174515017971772780696206421033462024274113468914556497966876724792454529744108520435297272234366488765848081459585914033850153626060258528783306859009680750096542886894373314982259997677835380192947433323529977800987691774420503344938886236632048470530846316298230611674323112364366133907173009232628065037645767702352473924825883391557112650991188304634800948462976393906090566975018723074562241935358110608710271063231868027447484290542015633896630755970893876327276669404958045184000318216631459769338360100618181512038299074656885505828312744560797851006239243346541642946892443747026531543690981294632998543780286098057024876558167591266927084519051239913580265542218228627683526396628075661253733836207225450858079942147164833142458542755207771601693748960174451877833991696274475601251007692810955754828453359438481002816958789799892522434699868428138629443316753714734511767700783054745027320512056976479295072732772232985415448222748301409673355998480692867598124637130889057635835584618553493480780874084026717191526607093967633684481595071146719868783241224196406119079454356485959353818921440279944967201876836876821345814277149757805832642923025828321418203115123898326347390489844992867875003642378417532552415135942506843810334172598662705617365365290815107841479555752914488627914251346276452444633887206564364062626892352163883951695850466817663317724032410454979145362618140160740957515157109667853919375060872984403312368383852726849812480161902633834173579475968521718348032494090720446049367709988438489553047740320593771849927537049129136470874370812648924237096560789641404886183954864343378140320728617716175498549304966410773096781041058615608809282703892990895217948539124841873366841990083491384516436077812560790537015697162819795707015027325774719452925491797626068420944418205278684943460479295855949810424902143652324706636157940731959742269714637561142484846982697826530534846872164801362412762756003894398598731333417782156724209083199819014617710215655704213558104813933904037686305276016278748550732588355451231857942908237719034502439591762910908015070579139990869649972921965898940948768323516558607238857772114277263812271607077605381231918402062003777405048078983100597245516409833967170929905421252714015658338877377819465756066605825963318820210136284865670034208292258987508037153641880024222787457928909269754288972169335421567804861526916752305452590045711481469804362125475270607124633103261453203239570259599035523947191996064366749801242597793717258182489212345057807785272080170350568016980003582019969697532909434586045981487252276333387612253165709199836602745054373761978304401972604546070511179416823151414636461190931314939901142090380507008785057912705443422732338169437403560062445426033049568700778577742744121744628293749200950448244955565580513443093899308518872777532359810821168450203514665535680423565968896981179330333763987368127741131805390506863600973692146479725901801594586614030912713219082153160651171547104920735291638275475457486456248711482175305933182966836414208043460355022038148800349896873361086583026855093321136027061875472327159610966930805326802931009578862961705088271934251317461027013304530474679464233133831293656650445953892266218080205928932080037254944778654061783394022086418166886770428922676876211391615592328518378484382670704888701508688024059730918886689807976084151152771730435227432046032109747269200490865607147858266535084883186213741807725830523586758872620642603135747322614151970824343923826774905995339702892609900722208125136139252041074756332794272728949122590198909109424032999887830342081970673120616027336333598659654123855717946043531798163063954039696089444036767039666708667053794449770845782066581619973570938356582602634358696156159324955971752465574782966098918154601745343814907190043636683763090918534729471108610561659681938312554225565363414268848403851710422001545064402586519433042565741413968951906708792592353031985330107838523784353814121645819692892194144499108264507684368160297101359453867312692103986126527769070015893976329408798675146421386384516808914742247001097632476724449801121947402980503817900297999675803499289304027137466561923461318012923078498511555264831580254592095293939817944913911859178514276219507253113073038812552477516859185687206571247352149962492251858340458864952252101863833963013353064820538708029168880343327715624857848348760921369159375135368032293234959514582091245049188345639338458223970494405035415347221206866638809019539408473501850451787073775507988110990463811173559738693887827492120973546915967786761697212861117503477218024146875178762219761820726841926181237818835423758081146111233080098464358811984912026577858360311488454790847837435482195576788315266729192943464309888886480543329960052399068593279306446422593417710124885167153036844134761893404948681230011135198200672962542437481980780636154936872964167818509821637367260981385028410380924923443772853167005486364891085851112515172019764778552956224761548271671613021865305755523310584541363662230192255301286652033596160698293343944314954224537218820528195269224823240692422377601907873075404368415723463221326157224612465760890933425115784490395935955971161292501597744785602323533001355037871129441284077613886262119646394771162807503516233359264916470630705838466214052980792556528740459404902565896564970933540615751922368912888887492801902542405400451928801108965322960282326850694414762173676522198264962704799908127548940697808658323561122290407675733756286915906041287465621597813161356449869620570500268593941195154841161595004775000542642678956914892307848833988794111027606158415854127831695012584367888640737343682446592910872697020743481066639874291470992256801898642935366372878528627930198907549157546284676953834455819439664722064247017429547742412551846598554537425600763851281462592872748312301487512941689785715521313648761668773995271800861949932965903854264824494835477169143846061513966539545294058694222743472107881537192299810572410014851223449668604853521981023448763534124733808329026901120297882200408181422418758792536412473669110537315023274365856349624877448264226066718299649718916473086366641029108565051636937271833439253702275907954883226717184668313062033699538443939485125610305146747995095697993265808458819749248818005722896356476072654512135062230315798078176561079729851414307381702300768229374073156577650361278634723481678752709172858987047890544740900988665206635135349415829668954078109132853846038601198568593370442900241612833156112624320942404989533724449107270298310914328634741204232163539360185093020505974401636632277656970837895193847052711941454929454492321143745605039662806349716282209818082684960128187938789684129505999634776237832043075062410880251122162669366131204655019078330073762275042624195058164324115124421514257286978979511132367475859565464788875959250693121197841664021984555039651267424052563472867610185491618415918519812539046715332509662590669663500827126483401741188405847484382949081388362313486636132045282586792759101162742110410574220524807873421983578069139771365054297225019044458190066380191761310208339379921525228162598339812163129715622462876002308933011897646744735141077810660643601498914895094672327326365688169662287241853981135066258121516193097558983200837006067915564249023146857676453323279217547056802384798003015900602966137140886634132383294575931087141591960277040720690511825627042559364281546756006125749144949953837025336164632556493135191316196271926441272594614263909661818040231644303764169349724788468729374459452835384168596283382707806947249587512743998015179689382838208312993530025521055744132838552522413368433458890519972304457178764974390318159044563084336423662060342622793503564635167456245457420837850986438332187262567472548873632058936172468338272531188755459612623636902259854820137280045772182087568723628762390241389078305813858685938369014178244243965026715957415992661885130183320467568796134189319239868083940261393827859295251676721076566415872461351072035303312604330247992057013248382184281854420300092344310259690186942868558842191821441244196073632689332593912605584237158336212235672419217862348771878452437552537108736163386002983194674748615689641615693600217434739820701362600276615129909289899216847124620152102313426221947011128566577663303060749938976378625239710280705788168414599089599863508775004083649129315038666026184284456142333734031132387775999218986795388162214721205295850233409816874759716181558612794142702562896317243518700164340341740826906347995319253127848078257843797517733693247609737808193056753184178184582706067026176184437101651996117399744948070528780939013603360350076521251451013453166687641125522094881460323464675815010773104182711569199687041136225923134046168915390755251023496935476329307833886366768047412449395628249771048360463939544184026571614665903981339153283659246109483310872501208437073967491027301922134951154178844781503054139800201840061401932964604666986795841824331472953382767470949673013300987475340072628133821290590382609953002510016407826957274475278228236668880180857953630285851095651172183490784643706422950647786411436666881958833976547790005314307547540467361202483722929005051071011123435185785178409323550425059790474192192553321718743202808332646321387905992884388243407614007909964865365242451858902258276468154794278578932978342781942855751646435161499789943024141769938496232631681312047931847375631214249432885221639202865921759604384337232211005495031480286747754867018434512902202371124263325589089256253159913885510653839288098779896909517567993021133701159597211235757155856858475913486609090107327054497830035828596211392351370115722176471587014241502425076463991877017848029061173781785267317465017764765841322361452758686304465717351980749790732883370295950723842511716126722696069114594583853330517207114762310182119454311054188416597571721700220075295525370115052647060179921366468796639291258578310277536102246044991702596543127366723526783304516182713840689984765467222804195904921736870800357596172605543321104997147802723850290269831576051543778616762751845733762171131071633958997302794020509325540458274419551994451208712757689959999107716745020205591904495981138465174488306075810708153375988995227762035837762533041322671511396243119633047079830642382442237840082175914528936270815348515378590336892636260516594071593871319565613936576397132250494411953086581404923879353796500851095721625159304956118272466921598722571378013244587102889249827957781501703684512451280645176291525064776645994975265714598813563213538544932579365194665544829325143124515779236853323440895544247089329036216909724421799028297740242595444824271345426487808581647260165074869879789727292420861769947246607651484857492546783020250624004259488110113326579422713915204697266887490725358344595486097393752517819957829456716194668776679995339091024365574259843119321576581950535180288157905169399074983810007926098440074604122069475463321221013176950583758977951029095947967753333986173165711842616291756066851039502861776887376798883229359663483702478227405472557978771461725106545696587650102003513410882811219807246179404523946209762416406005127115086691701813530361086295636550067758411096293516342614364251933604381958727528500162677142151224288532841272277578592932451737731247263680128927906569215255248840708438081401221848575760683364317322269992016060699124408817050419950689284701986875266404332032611039143814757706175400919019488079515941869510607355863503261166056532284202378514053225967600576271789476603522174895375130975178114938648888432889363193685012092819163609666239380807446081835688283772826452478540183530993457115880089589884384461290751213371493355752161013722807164332803654743563838532492547066456662355520957705825325393208207141063856566672732136080642334793540593460452040692503822984569911364123647099692491773868146826823018237567086603250397616234228141843422262053861628168195351337654713865669455814060701085867072489524580018136881376813353943422322222067762940692254757933774273237944235838065007894755971842734100106604440465780980920864885861275698164026611301837180820836553534274554253402372985369247661289246898587066002936012417026135837503495363276866923878099944430570402124830104182381607951848016176812342443894953287597157173098595811996852294921617500518956420187200039482635862475550465483855486008943632397958098008111847682203500034221794139374423380225333037282259654605066537075149292579586614911164635184657344166161304781680995380985673906130344816024913951784381861006929444407061022321344784236022952896379525271143228508407251011892582249807396796165983940335868344086765998416129947262514396793626160595415569254322716786662971600189918211529262050509832790414797843739138465440423025932468491089893908894207565654440990297080957702444204399960533628837811723217697134217733607908406861293237660906371464779780218338454035414443957517039874485397889466197585945525834203362231037919535095150066851582903636854973890304037874159465855219673769021210917091718872116256712933624207350935778812506887374409740192950629958085061948197377792604774079906226481992991657712038166148135047605012529614913210868764841339224435961372482705725818439907141719799433969024242229741798353888273761760051404042767777700860468557539688011935510399088640991919629186572610131681088076655959652691630211308485977611493327111518392557268900731406704321256085946323191316533551778021486370089534152501293569746918874204830894204099580382937459881088556456459256239577419520531530391799341826418041578779591986016473224909491843333781036200385492313302945705960444775634905065337282817413511628293449247604159974098205291139809242380721262328380846931804768386884477633188315364473063353771948874805531479699815777480781002864072660808072665743595476447223090276018805027415726643957111792567451419388996496509050780471836693443310552738475535554702479440947220081624378651825161456246846675896581053852233163518040629450879100496503518090637606194134376637292376312824657176922385124839430197135752514840745349214661910052655464867942586367155709681666284097789769069494636436578231716505472761927476178588313831686708032136274556309530886121074415052228793272658800346308519523923948039989440280920924622850155908217396663628418331282182365876976450096935386049185599350976506777141775981252196449143353502181474165426587160362732866550159211949262519792323333656645625921416143000357828822336071201337440778334747928190169644887485643161810147189307840755174976743334169564922669044718986261972595924039896445932353342452930946174510234814497300754840778358204549169719137366325397486643892098783548200298468494648794394931862373374279516191692931731605135876482602729400518362755240406790489196131307239735218748660938801894792043636642284522669571915963572367737316734237531953305063381630306077159561642362499295567337935754486940598767487469049491966167807214013407160089875554835582569019034879896206511858296471759655421086721274062614352454562187433995372520239795580614433608451867819192583592546711220625819811818917542941208933438799102192303414555821208926111465455002106339437425354509510919739902570384065005419474028054229645582511970278912604320822383910618517608858330424694286231613394023109318636936314430578915975241709314747321882129006502774591431625927334202940875228146646024264595175386108746784169004018064091407659875611671807556776240341012297709594417540143874709012371644459797725808729991743597988032715003820315595581257916337151647437057436367930159354637806810327654103027881225739056743817700664838182776280116236221493945526740283344418660907104303084838909051937683245818737559336434641622516545550336724654622116552761697740323228307419608309193203847996356073570411606126299560059628490368159456386807289559184187742147776972758095614521446328629784223062597859443555552017446114182758038780961140723423933975191347531098171258021107055492198624237547417153229146944977680273199468893665477784878460438468858113583825204770510034447909022634119346112777034304766381821271271720720289489203829469749849068277239190736013891839566206081986454306487655000704783476955653584989829735258010116658794709341371670278535501906818386947840816910737144842844662527482041038476019797872444805842305076474201294788794724179781981964850148166388907128987500697223488978562725872652372427745322711972581384032308851293498081146406338341993904661787518596488418541257623326560549164760209644629167192401978508320047108387429354025992885718735197448801273619211433707158585349939161123173683784493052009305322307480649074261023419853239532650864841490186653435038298359798353705099206358787772691953544268001335226839339046386826662656424786285603589797493974600301142958647047755961563542984117254344236269560828865043300307846618407087072418260983566313928745178634933546144020769192310402230744739028349825312015785826793015207840222454889784132709973698153335557010309649129894911562542069189617867594388110063348175376700912254367705530635014945101877393461577661917479641173198618445119600103310145809998983907994233789176545920565232320492787030198356564644103890936561027195124788387255349016914852410933640524968834357426685692861742726451329380235549214503036542269744776710854794601178478692220652441338316980450819328151347858803909066509648312568207447113373464248803484022596054448617019253194937451800254100288658008170895884437728131020066465298283825029252342554332485398484053960271786013400925695641644665710831713739517694702474998556565682338793961760786073690982277083196925909796689482986810217715920957123065839581053047913635879359306883254069696210860892899407951174415009255282315549710242036889806980892448467024357996378045358862919101339697299422484050993823436535969117433296019106747484363384938132894516215058840149075673651424578909622988052235891046839780909585890221811685225953197356415758079434405688054923934715137076338031049101407296948284059762803533696248912382240331729025875650121641603118421871991750769551230558833319576469132909613350348277773296772205146407530469737930244655706852641086155304246511634588474478246241950249686010905771702455056549613897266085421033723952790862896013598985606221573866203428070422187738221381964081426727662820454460962678575998898825480627806603975930796380608944498344056406215364111772115187202918625287081698601289748796206098436812404687622601909149821876977088546289099153631105304665989726130922240727655230131047952512842438012872990189821487087684393270446521566349617688832238541241590241386108605522678843278806772583800838408195186769184341634581017601031244647647914264124740456058292940712745854972425640932936224883602187011334262612155582894399942783904769089012365858266801983371697262333285748556463640652905610845815752402311191626327307328415793799470444908448125725063250968146531217157531614166761747294033496959773632367155858938266733295444102606109955502278581535551125893553310314673445275755588288057248712579928740612561418356375433325426165369540786854447886352755253030239014489387984726890580176207184192208658930187298345297186665695202838175682874446314278679641256961724866290322739766017804209427001203656710426690004374804290715298181581327346607678443287299894118232421544646103409694757400262131577460035314763373850190567281806195467270885980275097775211641220414955542445841370779429922613009723828035049989490253969981076321811099849480273614926105709735593024549867585863030832823082153195643126269741657642359742896561396624980986855660643704242445578743911520735483842683641617043679501009964293862157762110925866637114237101345089361151233914843565337657458255620832939807123660247554552045545380648578769484386373649029166107066471668546602495200439729672295354138471540729631521154709928622371310210191559002287530185165097789814129518367386022274547656182975904119274488506393188609903424209019891532968836958476742787086322865396130770124787518045432894455847378331058422937249129668508688241241929147978084834410403055798282562728104467029669299093955128404861749708898904684181117066815389743581312810278925502648859576037809678042368035759862864081383063689040265105333256045278999243803690862204529319312942777646658932487009017570956239477117709529933221159607059191535693138252697537217486009660126366358587729978528468190436389244562865353453438561547606315772425549808001449500821624724469013256988980858751491503171198469354750604701664065406260334415351593048786419885370709938194892093706236711647258769771095018560944355278758219746020081758306649351099383189664971504944576919525347292757472185903738064355736739144954555609179713432061954281039198738246582119374825514958524363763335424143052144715721456101644655024125111994794755606760396102585564727706311710745658676525602995359084116844772173335008296202030470564008828144768237090719509685950142882829589151003661728988067413613511502745857310553340273029299984723585123843727082281862050339154391703376610162670749955289461396065597463245943281508343783281323510021197605440803219670535106852214538347602283155810477037550358533760760317469616611323602579661927966221748241055702924883352385311770389597251462767082666952960894164601962899268366903288737697688200870931265102464185578807527400572791939442649485026677344530750745510325990581755326981528725857041112450503431556670675059782601026026112370555746703639799385002499187464106146338314191201046271378032105174175717172394316182005357178437443737000955413018557394466389337046700910073147229197094330489624058724330619650020721159957476431352934623921926883918091011453872554012715628255471652831057507850081060921683540656247133735990611235670469455958542575595085953911688447700163313348422100807490321281456366643775150894042127849763372233711421776867076434968731392643049846339759322350549539738331107854205472615390908467054988787525636109726060693802224212777298386618722830366200983883135915069422896902150203433190133677939503002455467463897798811723930347865536980600256440519408471484830264332375000221046749479072500843318488324936630130644354212364341054090925916349141380863924774319932671477581373992213775668212200606189378052349158970193827778730335697233528215923082701318865957878602460207647404531224191802418773300925116754617547479780412035431546623181060678562893109792877328509443517176129644343729728604381618382663961840071435276226440878233491318227302594713617319169268691354594813839078186189277153909018985954213606128011690291379128237302744143746134127101763819402880547118406232307648520092021419042431478163682331807274622278376079226500617715862542553239170310030972988511477373843274564651570862734935411305653575284600852931209496883234756122584987863727931317287519595009385301365290367545894249131156694080060310847010367482402395504019419851542776844433687046074085747450803723566424927448405474902899542565510479869923261774388059404541984111959867817117343937173117071721125276148628667082963330224179529911134043079338721354705051132421926272130955411145556971418165100217592356075665726277407472674009751668416483267012812740106649676057159255343603642366428187380353779271704466204805073587500755284386911897666466194647748754501219693766707896402582329608640214027276228670480490570837292073344527143935717030140655049315236959282262006370111979296615123725389078922591879225475294391664558510542260804524648350846633922760242958399847227166514755296385083787789067727678622839916203547600782632487984752991826419537996694527811873092292065512878221835747775250883003334956239507180117896682317539367241279168315089090492326858349334382358561453830164926663565448347228267932443629551136796658744988877934718554571645960194285282741405650884592577354002404393753754348850391244043380015941380307279739293388073525044620771262170877650607426679720924431272297964300568570161962638439782858632952483482683724621188540188837902521035042141606245718043915969163983871390053718476662938042191329418941694938856002946933375479504831768761805025669957850866045071620081543911990177129362837884804459622172408514588141176603351872163402311048751285496205722601635992971600395642096669436298840229488321812603588565578526878516064020289890362189493424534445029712107710033726655503675118839486700458780250599098839571917262080054575628225062581090902454899938890945054445834594374074718829237187195940314238471862458476233367198921015053266451563955077289952180668540731510164047293823354952467324782780770412591567258119659336785118854631541500478723308585057618783904665644943872254302682562898419419995133811943024735286524796295620880651738960504533056055793103595901977119015808046558284393047640556189280725711754817125695762312727854147226209384108156877033066919898183825986037543386503024016863312027878171239351331393100500568356357082749509916319905722292490680790230213402448583171286527457800064295144369085983989881386114155495361581219848804945519433062970404877218218888515980424654110642985135921176047799650272864227019212702621843317380781020236905527821909411474735167765249874362748032914122422425319183006650841807272215766770394235865354132671317049694198378840048484472049490184450514741219841592004262400767769627617582504073129359394970069319960565556198370627955268719137638126639143669722571932170290025800727227120923948427769295225783958608017205188229340506746215864873259266528210035013385196193501887823308956063273473540141962642169386595237000897884976658207959341968290849083816526846898834293555506756889147457364585339557877458637032402127384678931581924886358791487560859727733433471930373839714439176250570355903875473610559950381608671162726934140034212472051127868673193804335866480520393238508989754137006306839681070368349753670914490799361959792633901456074560792496121289373399465253576686042949222059902313543549320427076945490368307358776577746646710320164097164820639454053880473141421210457790577965425128877513199029996697391511239209591524109897644136261314161674632276529580935154105403373622620038348378755881579037508946774818663388293072863711233363788528207469919994421177826746540363438022504839198633741099148534941881848322890219072791197846042168457944151866165526349528636162660365509668993345821040809958924965870935703115827483463704473745154559180978066102259199859922455212545921962282702620329532908535803095731065469170499342434828518369199189573048479391632848320351695728471387730249043580973629718569313720374957163779484276454375872588793960592423099346508338828010271703462589461727902029765668470246822538052848137702791034451618090695721683153800360113208669707469774853394503010155677744077115146644793114205531921257179590767009057525140023239263347850272813677144661486354377226907995218036446373461395551007732487450492310177656238588028793887412575408332633640127485453738953709669576111547566177908322364834884810714994079334922344153944787502462696526727310150084364686785393256913652486684737066923312855847970265314306799763191940505093475862301443079880701836529698224981184624954942099588427738001874079543210270236851047037268134924689246947975015950065782496109176586495746451910195438609160674038380995917163440602638620447443188678330870075365656191761008359623113815404393411362123884371534265023345189658854210617405969973267585170396862746883274684786382068598041485840892333626355423573746680953465001881813643570748935880192693345796820277970130274709164650022390611785823685404349486049592697796383396784123302087094595133210927196631127847916146670382595561558834864538001807410591000144270407050898444915244232741338302903455561277489686528181273660496717466018064217304225768490452448201943041387940775843299668459071427442511472909768760028820278704506480452995779399696283654915687072469130259055300095706766779599770843541823180625981491977139621176445217877243072266819523236029804212035884581884664851931688127569524937593048716020094344152051862654708527911404096222718883311889161156035520005182401338599541849594706417357531834477965224489996263118420670050687188304067013964758246625390297891859224857801511993202390834476802479516391785743249550974363138631346094408507407846711235322039406925627699300414425460341569977448655964656633750072061229978246043907898003494955423674126145373689810108990149802615119513566550980854427759713780819613610515893690442063152396153580637110453489087409893008922884538364089174095630414997886794867542969082216544549116680486030340641754218854872685748514460286491073708590440038646300206794210410726045768646620569668502540931830078102287496549413167972045872716903492055736666510523137624314335014260721532017337474084141627908336353852352265237077722876129560945652694881225253602159773250540478571487838847832141626391538566371721386608701707902247689500713432596301386870112497401470433437447820780571311501288934158123000964062176168676229266039860041708562763426194195786404307867197974237270164852320427952334339464873697333253840699473589136401645453762976357439722519049896895180823598506429817311739562262520586779790243836751820159871934637346794694756281975981790422031467237931012821892322806044017688923355196965073386918077216389977076976432848600259736449815488009151701456106168197522867445692784818698654327724652815779036215185605344601920999786539709671991600467733223945663778813899687292492203238751315572240868679301780760506368470265715546291156814479835681522040396715041854963889865266894687454572498405311431599237870794755152615566290776809452870925099848000138951705983044204001383242025989952268728025706389768039375019141575370035019747662005462149855331840557242893828486911573421574066106566673360631275286609958860970003014990742223768989520194125310448566227982332293440489152499585552982346515319765452797188446070523743731931249391287213693850614560757822156748564714029497099052277755914398830699916197736190882784827011504129142051660896666626220397373517272378573687948531654152370141323815260582580029389537736152602595793613842596004291481393765442250078469800790195862430462606391078660314738368506084111313429595336129671964342178807573825380860266183952979029812278658592630844706725882495065818809710658349538959142809610174558098190526161594787065318251479724439422298446363788493817182575634123367163911652540174189745986647678660537971195958982162398552742781040217066803744475990088448222965571200018296815671731373575556487721694146510225300853117137085644666390065276886986349214199186823418052272719815516444511471603082397775482220658454493482385596192240063969486071195722194318384234981712127722657887036297705262759968590352877725210297932782525040765877398569546984314070272444491883038700419806485268334043005498692026398511343880669634728307800827954868905733556972154999300406422873783716108624944388546828717199663139412181575722387573465831280424760693664996376656866190743590153343137350712185472739175106814055830098667253700795545297226910514296185713103297981491004080453629816610222012039662213576439010664669377744073487605167434611313137832193649932288210723967785617225709433645379481694621411144522498110747455408394589589946730055584264113687085301466031032773097753696800445671200851107433123666529231485045074977869677118386150642341484416050808244728168000098523577888942157180396622170916202256231478743589346672277072803987015697890565862491080739056343334328006692484493169484400035453435404745145204477338665629647724848487151038284204284863928403602247132293252093152567685154267850397541368051567964376504551155454508087535900599025514167412835820333040792887304388336458772840664165068314215392931136221683847701059807675224359451356401829519159092117396332746913442039412764086357199967710044252829689162507499806687277214223648623884501045477221509651372993269452997811308972004675246326939505045558677882049916958391336659396524276001650314139105849678215970311132021767363244982836286265177097844276170396628098956827053066878248935946150256372395837104500154679719321014896254160578300263744665720160860634037001673414052960940931451403569927402236405959663728186472552860763498331986685000259592950593208951122691657566030091801036255271129710936026346920439694350945968667210352978956824952549338818531921523326650584311705236821885729062575753221014543881442848652162898184053828358364633327490078965616420776432346124927885966294969905603774235300656183566566126846772356976177584260151886650427284508636091425568949074544676131236862733325589604591770642573977978187991523093013002326044890925378105230805525461547908496583363934594106140959392423537667461664494709364862016663731268858996919280325027907355259476598267567614355486337212601130903821168178779664784490635353702872526056424075508926992381894397040576051719199613375922188920555595632297809859474872277297117235304316491281728386627990065197626818830926376196464141604689827301044635995062927783792599544493485755298765818511899531171501949009320657248015899002549251836166462297863098086667280840346750076740246339785828613368953902976165056563401645321949179191344238109795497094942409791100794987453293689501579806617130334460986387186967969350669143600195124133015095663454488295827104692729669393240362992621440457552510207152264380451863606537354801356975963044241005228149989027543320972328522682920761126278558500373769319872129384487351241533860825928944967232098297879632781128324797564236542290653179806322261166647303058744592997634859944118516936328211705041678249479235424855610687845660653797829370301812031774817245146813924302788020302420310574336938055007787517769930059677340069962308131394255119208849720185884635592845611183862584367082054213773292251008826134942042605062629343919471678599904745546989635446617877988490565544474066050579693531257809420773347847663783313529534828069497005121086232202184144622119806859136623343079237588013995045770360628222082142919299538470519948538306812542836704831543354247765671702373577483436193804345387274081243316237045242482878223917868173655603837843741279591910892850803270524429182881041381588948242601894943682855238792368908506258979280914893081910499234272103538035465272859860867322821736483118103979535472312454969277041474183444612699761935362239731858354016962332791196578536742739466879214754272664358830740674048651791834092757476244914725108676160811820814280790148610213952784064571370995552360874509205966849618637326440538129749006597879636338594148614820572362779266975240389404613463830340909009002247944965493365421285988147457372692118876196793407324657838892571525561268897156725395803682210819800990126510654781941946260266035961014638839792110720239349678542640847844459744834506058758987071177468347778054473637934083450013795774843640156622507554204108721855551845678818953821656778747084241928309204242701657143735227716788798262057071593774858062062386234111914442181525831185457432302882314850738482954902970000605469046296407862603823228285707266806226921075458720117904765478152330197381062516784117445273327059796105848781426792248948985743888782804920048702266401914633346273607308394668528361463703793747043882996771502857848276282499607431745213998146845234481172976212632471739480772754349227745066864457898506000211155154752842899963188861376777620551213769010754625666924003200039070558405731018224979777141876533118012992948807004901451255840186783907239173630638029507023429757426670343874885756078302294667856832784893652382890650319301239099133639984598043653279186462375884239921384587069549262076597414112364986549720285090337512983868225482060410479853527046926447536558874767116051170838452439213211282338210193131322558492245911030161182564016593750951525774477181604648158864570688125952826481699758287666827511191178787764893333404889439903345361358227572816573620755292931941540716951212966720738731028268210776483713025553941023243372855999914652351813432426048036816042731226343458323806922630417241519794088233652060192583755461181621881575181797002956120873359751108554088009168681108037036621906788660077158480064122616667536819411010299750719192205049425332565577307321147637572991967255628551351524262491183007576784523972894656537360039768230788381997809900920641108870826877233779186163216561882151084502962922705048711886434518535663341648018044767499427703054489366740640206743993711568497569288180683976788809096347712718447293134066139930332546145432357641731591085069966352531568999818330204624532982938362520510174178400152026567281515894563015045299068940490758124529115394506981608196176979432809093014804771277310568205404231161201255978654507356668459201519493020330453022336527523463528235112814730991765607780959420563291191923386465913943721684554574374892622990887827768486829189738169381228839634748855148512160374792764091511755504203277378559426157361502603033553213318161321943485852869154244314201705620941013847929682807782961043788513397005011820522015140730877413701028726205823852833690880269441722697145209643063152698304500127286510751815406493626588002625762497496709905953895662417328835571660509142212790108783935191932469671503469200462380315828370650204245186241555455387404892905737388096162365428180084535623548350503501886017314768011957418252921457186720638630561935641028394809145163428472920265515893475650486865301291645822967631391990454010034735966178458839961443732384829985567155557927360875757165017182700698575211821681697747175584480420591227273436390565390891989692448919237302312949569747432036252199515038039144244324552866745440043367476822812987076489032250636001199522547430700825497021889893411288939315255525958219995889289629286325151630754071999327883270152859508371391464856322711095422378091190126543223516522895660567767360522261130852565851325795721160947915090913243813116210087834298512753227447140671315527976753260436149579640126573794875837425174249814462924718808748123933241894792269220585471672804563145551059183907151634909618384819672545271715024435216436261679214341130886948987762554421344486623752914922268626870176260719038334616146500086546790059591255106773099909518771897272360511601513940286771496218720046099751626440487821925805795366664828885218509052180271897231292829574354488718195989894032142401914086962354930137660804291589868414643102382083134069589899417758861625652427399388246557570851740796367085323584067810349498548508526162388962122459549353738063570229007815218772423680190480066877973066512609821884014055569675652008249004022837646552853864453774601248703116075671155684894295712534284934306258279876453922843655470155555245709506058818830722209694008703004868915747626464630573876326094371652998339680747893360486337927741650792458810855635257913597522410475433889818337138780567270491162291366225842477234931318584905207832225176171383584546555943238377395033181727130323885136451732824365025819627082724426761274806147164741839996318843646266348069114518167117243505165886679679676624142547383254859141055503951693682442185308543114134752560733128505670644171467731680323206328014453263651124532624839939331961676618533725109584893897679057654556340422520429221600615309987978544371935634127887793569571910609875965966851110724256074757389830120450712237109613791704363540986457115909224352014588671292625705907450600799707262567293020397678675347056681432551225088939842383531132485647837902025515920977397093252745180520049138388498055493987705411111033316673170902164963423259229455849984807306447491046767916042440962040169957932212778962758000841395584394187776709644417577499358613544720268350216084058858287773191489636410949121358520717100605214807432353151150691648937904572290354591723491371978613657790255134268926308372352735087995101136407577124060987627100097032649076850819008697253878656153898176756163971384475900909797289953739798575328761933617875666506114264392373820482022571413169739615770095692132988346430659538970381772880389620396356366240759567582946801480984996349846758191493585471972180076995300903299259751032766046626129198514642745977523894366616050563073654229101077581097102673996011340625026358020361503785560129085749457799500363712015356110128901768961657376420693703378595024183452748877982804636904807137908759151543134629016671390648334224826610049358329139625611951484152854880368120594278246060003558253239602634465676440003040815970659143043695941438456243250221708675305713397269643863661658902466656587683049828344140524537101455967167249845272950827332100972798296980838302484174825916261485487113648580539977713196811544022952565906605357893676046636417626135329217293343339117013458287143483416029288621096268425980893858529447753257958303530511483379848114885726325228654152893780555136797601193046500022692433441357955576407390077009867679887150935447028595691468967232747145129345789346517951280877688429842813747393101482632918169217487230204771336780701249004316457144465356640281979164397470687045693770584636807016908325872602997774383980722892514258114040026705955996089137205517011738444925937308030886642713507145477468154981547310077761573407215682066888408312137090971854117993483700628723851650026222966558179724509001056918681102187961894220927451386091995449459395654223342569867843156517765766486218498144124795796691954986596998247034326624769007057501837004919207107181832720453167181961624022358926288479116562529649315943227334331695488737499805936894712271069246639803791724534398165166751753992571007878648398203342675332571736273222185755151791168065785117353699804237258271318575889126142845415192823227301932169679798315947315750843902757863675256076579942924969313122802217724990933820064703299279847219937864310626605091827492966460919753464145213625331587324222128123820931977870790389112616008834594577415994139785619865866824658003913565354326160309842978194526251412259910694258456431528137740630575509542651822725387811866590433102710497150357416934546406099992244968985506442031280681911290902801393341678567393379211073095544472476996095661238780438986647177645745802425644591376887473476043872012652576770345406694832803408281544743932053360804583371312583158257412205188168790712837927757885350534923569831320713914447423347442160827986608584519449627113324923300067754983178140402104579452746136587294830445269088504330608644515464061337956965402567419765394299272333940411615776413915106481017815680326947548516290880919787429707896234130313255319326664479362536541498150174935423222766689609800900981119544711254867668374489059250112984594551606479786585988008977362032504865105265368891595768481615373432773744803161632575695135748038036282080367859111237364209850649268330516002691523625351824148249165053665269656901825567496738418785171930570638100524261775335956683368738268472704126673547050288344773411537091371828851968363625591610373428155517449853815323584034998928295021846796281761686699521780926588589169274269443583928628317337120635948461286664160112057430091440054768201114056132998700108932281156185081320729962427739354505107108346874525573703416032798673073458477647476132206077274752787653519110830180091245591546604254719563961088014942214224239854508619930772224830980584914301872429658610964613260938671706734202765973346672309892112888501354710774611429698455258966193776343524446834969687318799281111558518533016064141301583621101082205833521538744035158116528318696575585499583738660525911177610133795826272005301868426624437238983573399127967308885560461036608155628514075326881803912445797032031065878412652595716397897993190781318003413919210088732197348892811085822498793140149082895955502052978399949455531523559911262123026378757865392509681249679269210538810992451233799253708410957013670970615204653925566299869223289254484144294200866223465152505817532172746054097360140045102140216900594603243240849266852619765077009026002662998420594799428165416201905210283779636362358727422175605056455142366399179273841721619191277023435192601200831304501851058960570713785563716146464288453313944420142119908537159851279120045154138925122562009250554256744892149408476978035684850271427380264091193419618127638462959723039087491646262117906530889239768404670838321451943626976770851550483146345062796456543522613362805106690491861248667733959091387674327871473232833776200320584242638504081576782184994684292315266974339157570453176435841166987580880837303244951292900599094725189228173219194891604257401543066479206596022898220817454967878956660276646264881161113122418222236011161712159857412902727054130606313314075561590269106528549278607645682603709991256592016516193032533712271873815610065254992125492545166702214038140770824625471106315642519450200440729407210839974878973122840236817175679772312528147704774843593133130420955812250766515914432689975751412446741476234689652835240348083313489631673305984583509392658557580352743809142066363150330450279578343621537844959774827199981527064822420192902663430827984143821805862892349058842269616754166422746270536418067427548984735172017058992656433645346236288198898156210033706072470925697580821502769833300957965188746587064953095688376646429247778577251045288025056606256111184299935319912873264604423356346168735759054619055795171536687809152576839526637243289751104487552600523731665303493179497939229171081986897312525169456705355383164300447889731049988429396572642294955117574889598546158828228526726207445708435696563787876897250331555036759258915783654763990733333596685382228258232047822990726700659420267002534286843563785748420120395607192415917012799372621950193533844722068505518802404276799564107027406752582849888244373810920160281581473019739617516027831362045711651891107793129741642769166730830719558052226564185841414982141337575463856843334232218196529853422358322031432933824145780528928340742815752234908475899890404910017577840451485049605448881517491943342221763208270450784442841982218459034642951323498191058529670731544060348653254044060026670435967957389431255456681140122056020349348636889077328101086980630403611162307422000947099548647958983627840016249337892492269047885263279398862835208987071308665676127028568520020306352602449792282722536684343182148470820334569997678646350956884064267127026402401407941479566327878780297633358811075847708187663441071191685815575239480912310666798424177065245527423048521469396856451414072572363949116505940038450691262648877343771711671125907341267889389621616587844510017496429609928439457461394578373979139983286445043999824530963179481723798408722100272281709100508241659750801953605852379078929966562480012869906870640361971576191355398104997765871343331813890725371734042178428507784847029263192044280896857389610092147277304776251482528756737517811070927038827724597238730039397375414219858755334197651600542464224509890379294763213977636596729139988274830011596449399449492875857592089464282447361437789699313851315973595353642810481152266001879043199782006497862162237111181722997856703723529580418798904565295156866489338855465793271913318100919991041457505356828942085843270666142823492148123983076567918230749719006451941922601208497115912335240607847853391925306212102524656022893006553411720364976328920189132660563886650419806541747516143671577307303588739617696387556862205512224915058848972566581058363615979480482876438679444340173760796634934939317694425717927144784124850545725030770734327213201492618033317933468802867550129495977265003937201539704608879651550039346917505689390971715753514204947467643851274037967069414939512719167121750599763572877821279685589516256476111829711805661484972401398770713190334333761063042305479435745273645288595369769026548717675783144877823614225972285250011247020296004725401898583786191433130622840535142844212171479452775594696179512253275614408241026598900793436206298711735547535672820463072881190160675822144494016116567021194230158296598565522210003065836445034234540551473366864635477533230659406507515237524617868912943998449634387709047340094213902444239389012855844200239695825741362184045784721164200385096851183625757561125050787064180354607465267636249308216395125601786099710588716021257636780108650670299271069610019892917784286541520396874245325082631338298699025335534750316866342492943923437133565378897120790333691395183835303301420154515037001134200667440706034146153782690198184689756864826522380330382685379413369274048743975010605943757556465405296117365263151549895189923500319730153686457627199823300978405966351731802897989418894439983854005354797715522284007537806193560265852655696752997533217167345656089302834140973851824742117019020373587696494286717378103533038174858463131973841032579343130753208036156157229412833163115351413567286226326017867863220536147409759852802752106093782714792492133474355137435789143725636058362795296944116700730983602806898428920218299090821323633206346166083006051220404579435310533392396582178450219433616871231837194160709540646117762032031669633596725099234769479742825663239930128884033058618059734779624062312191799641712741747097026019537893284902853986084180826707771545576568414145491565091188085352471034729800966905272467877134368564323055653495329975002825361250770283316912064749002681103659293389373352131427769609972427554696091244577228806886241554736639937521681460441576210540332288566892974395921187254722741075909560382537290355286071569711229570859133952347396544815946379250328996093863720350073931181337359359092102333417562809293047653301424694720972362694063948558905289170269984373035570591966339755585494475607499018292609677955823060729689306360935079160381631855336250001013266300956442175615904586558594206686525224143008804070444939568534921034991495439387209760766643467519682740598085875133299618162844168506964453214751463268809390254375982009347184525686668656667131586486112814748203058733443244208335339161349301192197441525320492407160779055910515704587222358013355938531267036719254494717332398946316319135283745249092603704127157877187568551854181868265717183815248249639450992152167609727596461156776879705018907391360168133662930316400511495036529308909357273371724778536620778420291179887409572302469075572870474421023635676189352889844078886427499339801273843196428236702340199618234735691177088561390046165032768436612214958426109656974370017839154853684853015509161353477509342072219752960078046418238822902990606004629058599775007349649870939398165625866334703288605573979775769936063706267773424981010813372771548693631596984921114307655501624699846269680565938080650088976395189568985330351358788148700781912586668432897315595963955364533915697068235421037004425601198016600784946105572717624314639407379401522612387922141548232991801821989587156070164807398208346336242354203281568574918721045190672107459627445650445238066132749273393192385664680069750263339379611896789304778353536194657940266307687206848824880772136447835373351936162593047007188053673370167920496361384365861258864587391748244621475344919796379524237121966162843018846665631328170174527695686190412732831624732616618691197060090449266967665706585053508248060612224646047438221632353965034796741324857817481797625670702139067848068811143706746208539479593076627613486432555693142406343372810922944342792720560993743414863724032355348694590171462843671535181320407475316249701627874702633340632014154847613433484689475686786627612862615797068971245998423425604359692666446616616233617565220636197712075965261244309913560187321772978449843895586241013795499588591852856845168578769299208219390467624811837388194291337514906016800426735591061032650235310403674738054457358671366889432142655606281213710639438657020506479205882511011717923047171810677543514695977492525168468900847405937840577041443209546042840243697715169031164658124741974764311533584601514215551799445198392918983227565924645349211724697314512546966425112664805349947674481534564493087489899270407784445745876600010672163635651352493099429470464680380236871868542380704337074567558572769661246520981104493223692928609409189176955438457045762387261111969962477426364058960003587478366103171937118314356516055234451996515259237663993899155160489569766238836338007276955734204660298477671834335516837513928282701368398492695748690276517213480130748687590891851165749270380781218285219132776097105943071309960837301904013387479925204763829988911597231690905136073929254860098332378195141764029867408151372238910478183121843847818109978922395105735916673974655289880182659612973859142214426336954810162199881966250766183049085886617820010198889027692480314606580604080330568804678851086641879470583523491471488773435401791547299180415286404999181039001904127137418079706660780146835639230048003568079687796995541586237679295468809388777058513383600717997267299362669984862267280619108959222507724507270871820406542255229937364093830739914001891906995081372876398866875677730118873323328357284310819809093692264722868236640374618492632960915998539930364529879922184127466248256874676481493072209810723016139907096796784824562677337395869231709386671202469113667393828921225281016968803535951693444685415672376232225474471070094304224783419717884911778739487698733452293956845940410381132673732987007888020467184016611632520107449283068572152502996246300570488500782504223202342634535023826185298247529877413126493569766648454647283519912533897508433625903272307067602175504367483013031304666534189310373107814277326245887623716716222222582195734466934294769645885370749637112767474528397286587428123743460277376121485912381036664464853364459038578441389196190618584600466507079477158241541846357467837391624993388465663367290381047178941947730803498176441479453387015459045472715480955721952972025021265006024346671631353428282861551229527683804698784472725727433387837004029129572563191637094721102246867906572948858460636571849602765639023185543391278053460753166407578096832483017192434338789516635942071908395123654631589944192851326422136260199283202778747883627581260335727177647235681839252665581679616799706110968860436349068840934325501525595700319845393254261171496257117502461439299015645691039897237194445875490358488817194849312761568486497139737860172874037425763833690334373198018822335107795382078543003777003386030073150670618753155129730088454863013572936466422350066472271714915605453812256460534829989267712129463738255790550039783704181641152664126140765238227799045235433381732318921161694555088217057213591458496581978890007650646841845061568933101360569216120668688612203496664092749041445986780038550171234001136132098435667624528988892406637429010315012802833614708026430694419646687947379591785191873774514955733443232601688784990348965825429195710032484377969796859122209648684229958384937822294316842116157348143343867179626740443078299658341273133874651473046994224410434787008551728303422894947119708273535225134247790650679743947601534606866691406402351557071472959289792373693081709371846723534903579579596177835691049276875276439090854678385491566165569024019468572129472452408870100824155085909864468507778317788631752228744955012061219868891407797850418335895925014754825946379235668081170655351336236218346160733277478715021599116102353883118122123865609834576032464552764318909934664925087340121199830788788192727778554077664003830509478645526973656690799954294317787164773201050105543345888152224927205477427494766208477675044038133641962011948972631313585844054397985488705973453389772591766295745003598055803906795367220348324859716933523852203117704596730130602565769924826804859660494665572573709946395883610514853149915328566340147543347755649082834008301855315828959330495756790401178288329470178716083800733157527303702483842203432185921136544730586629803829780985286223826660952344439463749611444640065783133633418002936408985539800618193294738639167032342540387267846859585689909123391501061207279041797455744080731899331963765975058291715635573661741453018089264355954540573751767604915840636860714398659778658857773180167727567986062973973298163444606382694291594325961371897450998508954941865217221905833870551693280931072291124437075672767936380407425119445228118312552597637257301475433918330915729894914388582083816564500595792924073972502746271744884968251974348606175359024084498807117019073808481024944428535555106074893638572402531140629098768427933895758947915473287142902785409085251385580978778350563514282824253627950317302925041208822444986739652975019079510891370717749782085601074108966802805337872724711048723815297085623139621836102136659155097888584468877366632711271162949848591298212856157264331061810850140905465358135202352752929563168567109748274525594658746202638492436781066202763586875120792310514500796207789946756675720840269151403951712911730929767926580878150171740410121800676644561849528631174211093819243191939327461203492487404501780549844367419116800467397287803752484956448913573143085192054660844648529122444806161210933530842796672337010473520109902992327213637071119777099951603779227602234044342797248118485417424021784975072741913524592700680179839383992573446219376193444875022175520945823319926533423409819378701996085433269429229392605714092035725596229935744509654799059267781088623027604128939267117704789749031562212944534825582857185512236480629121419907764083927241779611431611451186466210058631167325059515291810386520124517412722674206624369525863128762492946500967716993279185250161387759422499755445777371515887322748898797294836194975443859192887510542902344824779213178964351397046313924303943671497133682672478474756374909606855322734799650721408569804051406146995842597220184282624560813901347510487042188657848423393701959659179406649403281053178656457771464039964926608747743324652278971780575821242634262120430573305362131365322959276574912810687853887543980508598165606993919260909362250067714257373357403122092324277433863916859990023208765127954726152358560471117573835937371668893427280853831177424865510576950762109827434717204873232585175398605363826570648321035383989470976763511887241165589091692444300232499622371627689632681148121495062354817752902239823595515239803105559755333172668221808885924900953105675501561655384898702642784670078924661201432790262181496575979164726574480664084013880400136881833559498127900158668806571715351501838211930739202100159792145707182382725067389598315729292420794931101568057604181799296927114065323045693358290865153999675637027266667982362738073624183620510138117331892225472387165332123696756645049966637001889379576915351320956168024422989491746936221857109501317398963560505538437114277609236380839996298478989268302935770064902503173625993269227162325396981856491774082689160265988867665081535102442122834349094038206988483006384493219011611019319293847445560661462942053657647801631835832558288775643665658580890808547813206124129259356007570806178688392599687251325613970407281497798339268120166915212209892687268170860187035674147739182344326012004763030992661340890826588328336026212643732057158494608788620995822178480837523769220771252657283406821488914538518154476036506817057995775984466730490107020903465164862466014908880003144286864885162562746204885848635719986332393609464498492618730723258610887462337401352666958126519697727023886706410342969803715129322244185640393162339163136035056455930505493861160157613081716250327531030041757744710598383812954787339964419194564523918420374904668194899591194432764693717436420284461630390749731513259656899039890990403718795954927583075346684946557657225801412341542995898307900926780455370329406570766053652734645781065350271117738961096489289660574521099096470245673776178291664605240820188446857585418944366480451426159631369341709428641764292918336217023528751878626299526756251501012716689436511663056445577017041014261729636117599976627126989822037330740603328721813445832716692876863334789157642540157781809897229500431427755732997455806369627469999805544834114330906281901335067664992279229280453901645121693718156990925759234258262429067667879343399712720632454702615356524543409349128410139264855060093793085044771078088196708195134998357810453157824530628492424637917632071766623473018249333188323370876867535013337050833980244372159943546801170476104457810721717352801411291342664840056599502444595252139416763634875552266910843654928078718338887380126383921811907659836476430289663865447763508523046250296419353321274271163419573987564854710569219478286350295521473548250998348010498942652706904741275406635179638101296833493057497489094810322093375103520785001675037907377835078549117383014094110325681886810400438843955951478738815587670567187021197912117282372604115178283410251295680477713507046263566549149477615207860867048043176417289981107169362597531599743896616163720731154491808744714273232827251535619623271401084308410012039388469663708111753625746458091567186063078383600962244068246770583415944693163354206847587837895773306285027564919167829369259260238419962328034403029349040885530077816770484032706321520087371766717062715118774026998145257391915877011817161235504330426921909056141543550713971149304970663452228231372692766178094182234587981856532649923573873156061624428066722503577603434543108053087927707357598105470697861204271415879994781215711744440287721551722044718156876617329335387897462678562501808818637636955299944194850037905833194641671459278637996432856571224283053153936485796247479348801939794071245795818951817522571831518478989399118387553528183474620303491608270681163678041857536081628154232649874498479454630786352221055244425174205883905362554850722258233390081369248632558239141390541160649246404788046976998480554833503304353315289857793318188974992317015434154285050128112226761485744941335636231513202554757428681366507559250271558788349577937016553291561056546965712662240944340249305277574756267791031822841381424302634398008092237845185751633713259070250521986601654187038047443080488840578203249647680362059319019149090342792610202511658899571961112748936197573805415286233933382675037352713101651613145755756961479915451810986243429654556299201896448883138294249061834421468796044096698646143034417853480386362605919296261496484387232535493067084907770764005776334054731266916319524418475640995745342825113876362468608740927027546767544393360775939070372616893873910209734434215290656067889810449755404087529892608374443455141989836572084830128128843195093878278626758349615418058042724255313705658234954432759189118538545906150750177197543007857770040564020502945517520123478255406984868665833743582377075660973952579172004782895344535524110233410078208753191264169555220201652178719938411118985120800724596630039839847102342892620106341816928836719176061445098625765985970669552431004039817876652910702930389538452074966821845237463308693918748539879118952803454815006366211380752211818754185801561748935991131036325955182450889225863586655728760867528899521153011684997182024426064466592765370496095793522199792687235687217991719702221412799117676219872657427214012141753565925270770991049465536489393103652689334244221522167334646623523721056548697165347824023251321548515457909901796165075371526502484007843298666910994617205748718194954896033318385837371324171525973298568707709346838605972290001971674227877240162652779192623730893055509989698538817370052714984929823903965949960641079712948556813219292508190051430040352835987275674816252739193548743582834517303570590893305227780516669154524083943131046762803673593953467669557070431405596284683306114640411888451354563246184606317682794063637820577240744175844272335203583163059588167086605043582078395775096428891817377475542017355760456535990994339062363814393101319725410645874553480085547670315207587323014665537798924229290046733951959125727317500117257905882864241002038491102871304832662671528589596308684820774538220262010727567206439823947825049562337360166619741239355455307904407323690229369028795408461360761628075421642819014190225895682930299468868548616260794686263364114002099659125026654062872832757453301331371148492534700822037340733699092498401739040728242567965344873463246122133537408771103169873008122224005002940559708125970895897295858283095889275502474093272305848845096740949325901350530236583490536654977281840270503765835606361706374055827606110649906759381026753342362774621278968070373658185659275180433359275104258245281442614660349579686806326606152061839241505122511952550123605353964815138015809889234471517140526055006475764599440404655526252611777189737396987731968890737297315648621799783207715438694790219816137323101933331338376902575326002026114880527302414294437708466565125676526876814728836485675408322352285953406043193708620765761878042583098893537137922964170281200685243129671691520383848204117646477321759695452574941769848962373351805974194523979430451270803507615360868140824484134161822933100807512894473287986845459806294633458751359115501205746788457591864720808363963736655740738422444972898636136864211614944087686433482873919876854817081448673213280767380815749256004949488585835763465630961237603284767618131056297172471444530720581538583077532349957588803639865118904971390779771468849578776773336418699411269548175588152564002981572575717710857749274598393299379904822850775198231262104005079562528526477551906645309359970480372450353307097728829925179561180569080036030031491237254542643690295704389995857700367161349118406646436284964069070357067780360161479896155663940286743189762244126710714797439670615454738216895193721125581587912787954701438810135076832039188941006265022132717662088878189886871579043842552806045435420911569622116348140220900778333079089948421957555856566716145308191918784374722329154530261723011292716409553095075196947029952588515463997117555914423596190378010573795070852351838733854413550810129593176235462317769103621414791686178009270821664641892529011442064824729641895777508417094388387594746710807679338781358048619149472644473130300537624398277335789888335560264095968220290650357260287510344692857958371778610961782042664990898681696540479432655836481411903939508472312845042526658570719488841086615112261796310367651006237904053601557457738673599875550432664713275862507285179721926899527147622072166736123470704168730287073158278706901179999348439461736632825779481881063423071991846659510811387850902823287938141849347515035700626218541226529889130468544458507619659405241343094155330437661463101477748890422436237832363887240591453727019216548494957784124017321159707088833385094797885915286132268143493175703625401788940305548005010440892386096916636552821227802921992110345296937196102181018549704176645745362588714704418372634580476356430190286813579861457731707808207938588636922571689835119242173471771153452120912329827865072720375821050588685782911129086864610734091797696714671464542433457957649671899334246828722056196812470839715665314873682350140543958772256116163712304800446940772481131871728660923699534271893345779943471153611472167920796320677505516199721082289151566235659729986006496371005315387653928443519722622015502285919757504400623823512155909098761892103285536944638730107612696424603711506471792559505916638205244668437090185160487438745959557189291213241938254149864663045829121345318350593300450676931568973452226343352812184402085264630956484265662436371753297850197886117146186578961369960853951956876718291897195912283016307231939031882388631486330603972273538939912518841780564453827236432469022994696581153907841623720910218099958506791299128620788816023383818759866606088546370924771985727240210483652516044012257516180052436756678435763013664820553999545864895292243202358855679324691304173639740637726503518766148712867023574968825345139818682171399471578731038422501493867966245193041843762713509759660552033875256936336509225586136253280610434581401085233210918262315668357785598830633923438351619712960414531246838794116742845750617603568966540628595636410230588778641005718285368005500201787739319753079496943514837546119327314315926914279250827717150541808498836265157053199375834558071923284310143628220017349910604740133971782701765876297049245887152660454656726164307196730852398838404096140405785252504675101264630527786372291728100609040586866813130526640293163508378823964067168769232344264129541908665576271758463493815362272037744939611039637263834430525621524032995654709605621333759114288895699459320846718910649312191175660220829515670007460592891508920753615033160146086140603490520862057922227630776527373231573864046124297379468979973365684843157281708613975329231340444961002253770549476608810376851184870940713354853675218257885376351701733087099012857507954831029423624539234790899850594075774886700901020026886673372222960089321018467887779846631727808080283940306793850618173538579009423979094502771007197229111844043512522971046016688410439239741667578244514085406961499217088801061179298546432429269451305344447416667853741724697804804068917318583728255723922653087484003097932981595310790625502700690154802022012451751874974811868175305894171534989133511643416761685668854844765757835582704711886702675865517678927306685709907551057758374439146034387745030066281938591859806710201129162640879822380799758191907417006762839115138064361533462342926396888772219869125318513811829606372234601808370437726509995646198897868937521496558746423473705199806951678953675000131822994897806555688804957393349126070813543667829361035090907673274598451067694730072296787908732014208560617904425629501767753439712645020800020074933046485447213534875992261972687333752230736763144160785718198424841155985645292712403919772059883945176338688685563585924515466025820980958686473841847364180874852147100359127475935375003854507290658875621271780041751594658847787388206520590933771991095518446212492446851895341916561399816968082783103899130817000917880843456531598096028574039067147646644198201203977565009171051224542468263696986145875010084363989571450871363763455752389136858515949273261351567181148673398843640102307464529295267949935613343850792563915511482493408509640411580509746767661025566339494854220093490488998428340048904888212061764997475187259371433787220458591147855191977979247248362308629217498379660884435169944976897552315567714695212845311799076372553184466493076757412603488849019455478895002817346973651382882873261286670293128259700951333500367674768147498714166869913510489255546263738975489242616658793044377205379563711725320712550133428067275959215570097373460159306942193902070564288723502724576822934716781007208571121425844148726571814079077094604173474364882732824917012907144689464110080828064926445829411546270421063042528751323956237657440394192026336317243998677977034278791919527185465800716137959269249139825083831968440615602203360193536842478881649913485981105044768120424510709758949860428166556882433594859891878710870228745947887702944571123531906411712398636380199927219305963486489189818513686070125292190113390686546093478543058790170284355650881310609115454120102966102553894315432736036146805454396256146665555549489307596954104527283339165564601760612812616546264098469195085310380327847857815284949994972081965297404652990754705988571665318190471314274455932170242354702714308750934564333058747560917302638085032538596412777069046063634451439457396350243769861395004425834648727685878408490552438146960538780430240201664130776088052312218243442183830358081832146429832447039798994501574929746792309771092041277789258697295737443006206786545556065934733517774239170129987404355404614538401352555724865863208797286989711718997316604057554909558197326240692880198373797959205118520413970024528583883681467760356908912376346779897666511686801155987139879446393091290334092941058782112537038497773555659405813676108573669995613847863589770646632193848837770929388471072745517631837735098415596912197906119696897604390802998691721679155319543740504935095396504159815970464606311655905337164068643836453133645240782132660632042880256669158321180341085260377276225548859200070057866685920117931947462542878851536462167479048024158392810552671784387084758285547152186478406173986739405351963083200073788290027913233329525140761082090277684415577632916775353151288361669756584373909539700000436063197069042656034837610262146782181954714314390616808238806993099819318811366709983209193990834036978818377802442039226142223809251662788051737656165631112240840942254508572651104314074833841456171100722117102385826699060221100086597913794224650344609022621434729382539905199327881054962814643389743444911814595549645405514380768180395774245087113997033535269487990213452598399815206144650268205432947251341561977056590415149881807630496776131900256608008530622539636717394439123637140647435622379373052269296857733950667789334739909249145584850106000386243065562876353678735091244942938027934162396236923990313322739510807329466724341899201276675534885166577478173004236322876580678285857611523446961033376835576441274657977601185006188768854766511187808695583887712671430292163118534637427904415132918570509193014670159453477480216204978921440505795855985999218389257324791690422625670860998373032023642355035838046654826974421207286281679785240556423339588635308956259782737828502627728530263527942242636518659985993135194504826935582587029585167237283628494425127850451618854157408797040938257919362815403024393722882153509314340761606314217390419345274401964328274968969385243748985522601864040236975145959745512512010094869064758709418381003099105756287273632190559670823315808817137223822486274071619600052704853274131109946460820540437316136890599538823617747670529715515673562021977495414477860129578877609767645043818043650430873699196845535402692855616485805083053198399553976420644756176753829330162967793679140923386214660125740568459794587161944743680481371500618473221841079776922263006355648282593764700015238004886784503498388606656556052979852535960015915776440632784856427369963104806926239175154120373546958272322191462772403659553446344166274345354342917770133001218136405094667888702374270675092416415297142984010978545800235349857200000505953481059650071242639680573765523570963969021137694746235385499741653583341657185541617385977773800854132708734306162940524109563787579689646039666644607102264649233458586180700779362962771927627886419391630299571099850873326383567155898021073692675807235591333952159603118801596869011912064684660921656266047384543344418666675112706894536510978919051326951645838834636768938454722986258775221911212660340137364298336305577286378067254759322242145298987979297989493045618966462114845948073118987994437765888955409246607775858306920726173659566675218854926527012060212968003358729088861760820698489583502114769865370998990585907260957228009958393756050474672261665996672780293531726800334542251217432380271533175207320716184388042488346591226364171691844586634859696573105071926488432266028300722779498785897485730270538759331965223711023291287153161917591353806828420007239236603480507087776245948673848589171665084994892862691947949899165205568584452583524958401279037078081670619652587518189349737734394858291687739123042103863648995737044672642705562246697531154522674071184476029026926734798928146817832598468968269459671454321952419453505646254441438827103494665868831733728448815064826388109502199023018556007131741334059881186080892024480245499683736085843983290731423484379842018990478921562846287886108352185133106557011747431057901522178918789109433622783905865354751921752300066921643801079245876216617969705732120560270995679460108693751853319517537801124846778399173407720079690778886468869959695356364991861731765798710426799589753705240416491394406051700911644240873000478859305682381065393057285276079253707903785193477357044558257601990087131773753295870214875392720040173866730227441458247397352523756657600181661277343244552683394089869363013194341805760572750377237057566621791374642105613759323108078612293362002084084280606351282657673473002053399559796404311724390576385147444532834696283419149967051786098969577321881808543947469814813275704652874553273605730228870449793699396532880121195751324207017582844870470896713992989813965843302422291199898152984241694000926066497414555616998944503918078859839158504079260495997299678402378144914393170482173828717798441873489774507873708777094240015625760110135145270442941122317471746832278942315052551290909771472760172877563129071725112791322224995853330381997645089617020303046694273324177224885579853556722221502094332505338321325674431903165676968292433307810230878869331331959756428324174559545400805242960227515167716980942016395657708097721062840587139449129332903794376925878560740098398609977030291874972193920201364465927458711985502008764063005590585012527751224877600779007308165299497937589588247323094830381951404330563425460557410687180244655945622462350370596456451445252656464862427680865091619260534763773995405881584657609813780883234388753036395356763843020463599089032739098793869304150795503249392670838885600283135090035119621878789676588224380409443729646026377380544526581943473069252182860441858973735257871450384298435101007782457004558950211396126506777822183445948387476522378811912130034254070546838666219353222885299688423852729671542948435833465427427002004124236167234492947224385881101019476765820471172470529437883325856711305405519715257510253730434139656097236770541836168917080230498192270241311834481472900658667918543864640285837714625056040142906622504919580920424235826397488945720907493025344780363115278399698451001767671894576778949992840155734673089835470437055679252251927054669881190802725373459709269625151879184971377773202454048979931470262991485280472001891935818749344996513131885355560431108781791805949545828107036015970252984237492921089914709994406445981910657969945860590797017176597414915880421100137483421589738608259467287513114018554705009304629011043687807356108377342907236355547233974794961482643819530393621495584397997368389716028369066458709814294370694833349672662629913471063731424583638846797719060812361046340954436631643465275565559739650602043244153754262003621276187572756099377460397301234321796538060280409238456678935301148621096870502862533527855564327661886200937536441175451653438207142994554472754810921320253090655232135383621618455816748509413935355429847010008802428960264971153414948185955392169334193310950855867030795917398280404440564599338342000352173382354986878938178307987373664704115800478780752068262651548855807718430268848032825446700627752178862362500854263481740608021001291045927648381157385773962913435634545113447184033291752979988929258613540404819052985836796336777977857946675078578022836128131777349249068231465248004002261516977293575753229973128944452975292532028378103426900025415272861174297369997224309640506292742564531788759313641333947640850791229499423947837261171093218511635980118532865739588402084694808233037405300453330501322187725732967998362016173149197827894388911331762467078674473983851202008340904706034036270849054853355306942714228292666881881319675162181715700716709846355299069857330462137115855258807285682471696364097427840676184563150685367885529938082935126280682742037372807848051927113727093386279411488142605597063908849800148210724169093061989503585755276694998538919079537691620580901793107110917662790769276588002736236650001047427444048858034522701175809583723492958191587392459707828189490049000660109040438305443414770391839119704281940156963386749652570388665678373517613786955858180879313983068736463329897328153400812614738549081458504457443749190794082522314208025273283166347436752397284679671726920048781272871693001308115525117032405318650085418998008297315832541705825906086674105680796552083613487648773402461354089459669373781411941886867449649081085402817575726586066211031023428618019502240148890156189792800073745445233641014888567092115222527967441701286637527285306540084869319200129640418651138934948942362063525155325673408812930739112662967091872938333166359386590463596787097801562986457369927478360579338006467240735799500473439192987924579758500198888939170627518287941357801506664656229635863713166739303008092172506079916772632292072280741720361710742207355679180953082409980118561601305313242824367939691074654719975396940289383526057471923196776098954902737871079535758890722471563616806822607897906391760787595232853473428475691733255137953504813996187688666092352742355812873062373272447247456900396798645368776485251752016241663991368131775245762999002050578624201682804093401120691082005768398888627870418859923295164879537520597511148583218816050919159899181268927406291079580656123941812751493238920231018820241968798712369161306599070598750426517772321172171251250740869451554834515438700142284560128856066585063575142600451396516019074281661619105116565668502160768748681558574196398075665530696765999946467090240885241883079476114662247509926832177952942727917497221982344465799623749351429769211859282455967594638219260933046859432604085115319921265426665174883781737092033385819814709698499321095405746588649706151077037959418412025570051656785333543350192712968980897020969897445503852063325876293803141038599515099335944161644102499662288238575755027243252421850513321534835016621620550146793707436323655472809617647361136911052604101520022470899194543077370324686808724489733852045695745586455729180201853469336320217089883735393724379117148324508458004624634943597388328639454028357952113271216611100925483109508800414831203577253726165259810217098190873864724430337743663310313729043343881721428936048874831362644013005974183342043651765776199496507250275977104296422645147406354222361265229839565314002119696472143368425818775748880925941631480533501352699451551942159781850560732134523411456447824700111010315058829083158425126178901698684101270187765416780282705368961190796953462364211353146853560863713404156299110459569369877033192953476357133452137203588744271619267527722022459510109244876938489412152914679480244110408502526073539783484139203855553371862908828844611637793555437605467001986237160325877499536010809842118847034356024044697883553586496396665473144068988133844624868161900492008091875574290889454609021494426319574744404395560575151995538726119152849861471906883929662090630358393829900101829391830122617774905518245534174398602798099933276549205381574724687689938629592611346943706371602096090976376086640602566990056094916452005574622027819677074302305484759236505247921137618717033318286669471425009051358639447534561060029588955146087378672946010423427346660014496186902447512715432021756648326409156009726122321866636230707183711688484213004165617498863253219325156977591651054537613768654067321614106050346246878100901356503964872148045588518364568796598539622683281089270032126748657515631749928622352725479635431508982332631064581462616590696753106304354626351846543220531679781196451420915844057685268187638577240429888598872382863792742871310238259665265010563986966878753337729256493490532932766410362354621242103165140375469675422048995926156103878807867524063412857545934971339974802623929044994503809408233894268699351652040377840828639540377212604060277604823312452539933760176180464556335255997866018726880288093077911806546319673854873402667171001618052545685181811726406054225447247717427008542054037887945538622621011516998377849615088207938612985645937353858630265498919703686511367085267832188935373737778951279376298859632348909706468874649701254940783392646026960573849471230352768628031200436698879639868380810539671966048060306507953673752393575316750452514121704167531988639591215530332856499975554717369225044356186711972470753682364821324767725404758835740444272708470093305208275856313402490217506968541016954553775557985316866202863615658876078285464774384324002133332886826397402445744373238783088492802939662677441478841611898371448785166400343568885216932597721186453179103638793686284431005576612551881749616921414358152350450854782336620767817957196236328194899016051543022630653452801427716701666927525889263155073268406947034847283477074340649405141295853356301799369766452493752964299777244318625088304160355695620362896241769916484116632965467093023779362580658178738946659322082396304721627561267274957637766758618941645364130887825554709034386042511754788789664199850743299333598472828101143320098385898571782553624541500057649719258403377661713391006994853715931429194702889685998294068457840972832685098771323423383714513509695947935265166757751427634936762378657523901830735261140698833253561068918376526155744242187338745593594876603125101784821279828570915099491376625203922825903321734564778724868202351507690698698572976993052025716955169118498516692371564220942170962863706407405625123699441151793233172278323119452949207102883325458413696498485715012298481949970958775744656329123572935826369746110038200312211657779976549065983282217849277121236405957319937054315197268537195863628690756525192592930121431683907187955655380995102957673671274284058519561398083665359690831632197263753961684753110909376298773253834303890086393357868616065548738015222895716717115459189931637005007464007779714533101453459699941160993275276462957117999419075167367187712215047943746494228271017774336135274877383235179765911094540495104669979310845675502047293103445757430207756050199817085547486859932515491044744407134360769573683109332724582879397255541409245414599244686827603633560609560482616236258442393884614930803864163697401094968953834097125124624590796159542083115525483436096667341103744338437268609767723769789267206648582696269898710371031700120853984668440646481259513770993329206512513169010502761311255714293050977249591969573556708945001595657430053108112206232574502387410088581936315487448314007105688548692882980255773593825269549686553923860264835746774547818149950155859277356454254387278843236237237166409392534143049310010543399486839319217602001637009051070059357994747587204810406322345486822598407461893581702266390501333141868366755147663289019505677483892082507503869658802187310916026994720835895537507596920041176854601950325269555593970206402648593515038644647235848794510239668992378841861468352903476917001043660700321142892371640456960327994775416911319924504431182660111812689164678542504320117765480535906489579448412333930924888035918262188278679162668917415401587791423752489187624323148942903828171637687758413985891933193562876440735092852120215373426965125303709958903041220723635441049135070141130971534012665460591245040082195965937321790231237274693745242950679641181800454360312659824182121415156283307247198368419126214874464515451173838837100437959362530025767282033769384370883770365426374229183501792470166926306791341156716412062447225553759141385125979159744988303182261344611691025268397028879034678327575391576932592755483360941672741718703534378371960739620239002620972391001648730083764117402741529661648165770205198020062648392769119808480408184962361921789090362820620703109489266973200122486260269611124385880746754026982770384826043757673494090243915786213178277126528068951862230994303475432881521459242775552918395514800414553785104216458108109087749592746212262313217368805950266413187503966690802890659264720831202709889076196540208437452331407084003306883733168778647860434382991384176555508842654469885885432461392219805625367182548627505570004968819153549224480452769906032514828920241328507765045007883627128140348881446559091466371401633231517972037397210621059981360301888162454427887985559579600008439579274424038423377013555055538935025066060816242996686362935551334843776880458154101650474410741193466438506434029620235597982438522122311788061318676785360664248678293273866607823884048546691584836500783843646240639282703997086306083523517488917257308690316016448105119572719185493690248960688713461640764361518712166987079479650096491562194089142122271510068018477243930463476056746089874264133680873934747939806509453232473705500362459015834791768936580481292019742376879496778296165451262286462877048303074374720119998049616746244239877505809965370482733628823876608034409028844567447370719848512541537613012674594866705586954859086356920816813986443886340940662386209776306352911075977406122845613131236738692880580893443320192669224220078362216060142732179619195640533967375437194759563166262073250695031261693690213017432169968222305300404774097169102414618720466516085583502249648223888026605805614015098432822111721117522374918077787595466705344403929113393675579490594887748417731846692626291876453912346218017601012701486880138633103786370025532292617083687252929485873796173733103298984796207304840576070104952658014191621328168750827541400477225895685748184173449467666826394080725861619106262544862099273761491798745263969468194097758977929805964320433891098250399988640574924916024888012392966108553995714661797281660372746271677006282916617919531079412666499077643498432927808464688288706786459598773725650145019588883536108210781781907311755299460420126318176242477583337752995922504824625837039449436870421232760055782203318934225530967954743351389999430070947513635617633068100948302714149080668630220998301117436238630931944540598428050689095073057216348620094301350110366061973337758454724109242675825365709725541606394509653392437305150196321794562312843400320492546623344418107391579229889533593631486079136323811854165200885462852569981810737075665831484415990462392750881978753857865028632105581661635563424821601125471165120105130705411939337644129764723497650865086224967967022304088418079342256438660970767013564673225399452232227317972357026662423009498661922784200295042445353120102578463818637755754251090806967359405157112141333385949435708700522155380725247944220708930672213372964951911370934731537669196029575767370607355024042025929842660713804512584886931986492584972999011218008636677101719972495193797572126765364112187037770946595949714306535584101662008460717710517238425239599634029711246261078992197064177110081881262918144221292816852508063325556691421128304795619084885233831421545185503648801261359450553086740846341102475109684875529478178972597494516518272010018149600238923364277575335491170891893794093218801463881523707459669732092602258208245806133242112888356117280989389756216644371542737340014688566172237640325718945457881955368300342858300387278807134769745973459215911015072060780320417780616526219573990427104695749966762314847143125476526234738201955541766460467736402746809369036573422558581632467009990765032699972264761630261463022328500950097410837863542825592730168664218795449062473502516856998618255607164850135026224538385126966543879226974976013826418042801628726685287252264802715428095637490663056089952309736792056956784801334303440617298821956305390604125561809626561766144318095712582563907417192771252784422800375556696383443840286874676794685086758659877182216156283417359486004188374257777415865725701104399922194198855078477336615553018607597759096162445398814217298441340440873387618600771930013823204251372983324778797322972176619604824426801214757859787707023130614636375822798549428535217812202674314006264691658667990472404427836027899453188979924916187857158830273764515274712210314221706165668532434865702318793815527928032504379582559043597919983667855425282534923081134747170965530415091820864846756822668398042311978650672570737626384884982672026701397005661876437289388265947170969089402138279539906835631803063983439834045712694068772628146759019193488428733988878039533443272327840721631551232412089860237478653353719847205749055986093063097032873996453210826715520385064672864769577946899522494064251995568413805243416424464810432229227269617116132603163950356038905119988065741558894169763027837972481809492594516109732264486641190297510364907455045600353826903875983738265714283876843753950071357176010861510856864998702409264633707952959018772362118349417370254372527758535232690983974183854100674224300837915216198945875168191960360257425350830183506839882445489981485041971143828840775411994776494684841452280598957349775184847564453033820187400674978574820162444961454515289453680943024894504616237430410970849199853111969191858168793341129075357903462947782803314495587645640339562473860701516106393057060017843162766434619095529553042742972221594720901912590034609263848008704786446738918604497741640744134794810692840062259168511958768618630994642453403921258371647107075053941503051927220816841139690817784202757999002833759015050802206068409876361447635064181973597676035095426094069371820419270205738983476887483846144867019366751102350360292480271765646111820440682340473572768248428054222776532641444078449979355964888737475358737488464859017213344547939778579200640794072708952142926324917488553281813895045606749866175118411959266267958141273425539322971110939407152040635183602160312322647501412139010209421128414368094231471067785709773825072022589450431676299735646460040848012923992812029865132859018107613403359923274740024707751809102664244606094966508388830627130372108435577979497452484407537165653631062765377825213020268080356442584078447014027019025920911054152205805760076570741532246800942304459808712274296017694657884837802637734466007110917442082432677957172304884502805374076596839534461257652074856388764065700620659564697857613000777730953303907685852956082307006117608133911119480294159633052714980574821643827450157329372811178909593379051157903471155306366839441461848240443585933301601578345405498570013601839433944205465242413413525301258433699178558595293246370757467755361659316898202956828695840279890322376231508634729523610898134017916773742895464745799425281782800694854591200147552229162661364287049095587927638171471349078358189825200243369419084099266437450159934725268130218282506274383526199748171750174616329635631077273576174789068408517561769336391761741775402082302746505016302785316027551667136728734725276999038954796200041609498217452071206934457736968532664426821851275758986341819864091842320226867668433742840819331296968453181427291146927623603347181140076603846377437239657940700669859639292897550467449216750544050593345008456406365895039482925547774809517809083603203316116998651224884265994701151728073893740169003123007108533008191836358329074961377747605037836609844236177476803815618584666058690494989378681048771795201622121269237414349317241474291871457219805897527723556411516535705989211081488877099734306949718724081085421539756666718021350480584085476748756521571759235071422048492884897592125381260095044827087914041727366845423416939566811980334064412100844889532306510981119503098118363867057263384101111025392416230263442017239206522106499820754385540312084617900773918779038833977632650337458664302727317335267533351967126646675947061675886702706941401030356365375214283271691794690311190524286952974991045405667959431478775039944496829040433440436726404124909371814677818995411497832668855982822466381139203363495855016038966319985743809218404397175981649713963369019236750307265125116349385839515611666571668144378124647650614873105769481179573536684774448397662190869327588046667680845113017466397484809033088183286394683806935728743529896254562176286957046347832639344359614416577099058472845045549897861268566850134546716275622786331477697598561414064748528157527943319213795248882289021339296614514178998943829960185518746285162190333786866337625294143876965721689035920938301178276407038738601859793150137021267996316050383361295108933271676614259532665208618474270326614534814444069338392543282730352078938086231000863492941582329522535069564359113923603393254045496883172423981570447536147190381481929129946153729510685830396189852551523174404030705369189087194693672928609421571689825057558186584722664040969577754268072793833004116433977160531709510164912636644357428967755916182208279263994499225121882646633534666087128667846244146711818529887921879896462511037646118204066948385726275285464554592009236304703604983776900848900439213089597800582099582968142871192669655752884273974566771718656084660260415608426088017312804254698172281313866210112548084635012386527899200535611755540560968690935156776725569235224678427518618777778227896969515885118023820761823466058406468741879867779608197330178345240256901005958753921922475350085088297735706866950096624194662736026722545854801664106354495541463367524638664110474561233746705188647404180083555059253925935139329553465134066630266358182252030792544782860573348589393996687430253775824575644446472129595529276196913696099969308892109352108700937224960344129026060056857616939765651429555698896997106391140058544234920448207997717121488105609649555281945952658056506858136967978646292031727336290358323395073012583736306988645924538078485526649876322309941467769210379081174299697686362263311343804029225024386589183063255441231245376960313546672850511489430203226485695263972584598985846994161334944253828739262231296317088714247091204541742106965852017604960750256828333856243062247486903164267415781982367805127454638619977109869249259864574369995101879223667962828915044643804494965424434653413491380691438020998124836673917933562818003610269648499911421788914598659392596776955000335290206556965796923202168140252456404922327350876273208441009611769824815058167640994596364371100374032925004473142955186927107665562986449346327133465683685998301519536286995192586039110427512240120421663342189704798458351115275367642402302351598992168950401009162305792135099620350050259765336392552081228294854537455819279700305271668623168679720960598902598767843936387813380614324581776166671893576624684341380697406904553339128544767782180849638179728525453073400596983847298642172897438659015603836062281112545342088841474030646148562763625791165013719301297414972323574241069199892558768714796966181348271338707759781461421979674661368844955682301633574685733405821871901420465263824978141568191133020221635949191071138619469383104712384074887066740372010486925392155155474446344952146227330697012309688436762043360856985881902341833346556524917263374032421433542228803196584011638988984429388584644049001240329169502193409060486379131785163258384758537552503143700142663672625085189310059167036584580985936103277971975800566330067335047160052218285767735840547995891417417287433501604088845887113569265873992061016532917881422551695844265782648217247299426608820339739725666988593822041455690606766369583217688766442771105092137918591488280819852225512797918876272327554342840716566200341996307359288912692280514657067037515458576666770171670234957943943404399475437788740466523893353719795282000237841778731683177420047244691334598305629013743709597309698466271698711487080271213972475211002667486540566372902172048325231691077554729030572704136046098158468280967672378606831883248518855486667007516681687038509481054440089301789115954337659265970321842471979948324480518669235743504096206717075151911304415474137129847849596535694849164103109785902904498758158409002660148917268607115935208429081830275557642146225328965500912386723552906138541235176348454286065260417698546584073147642963485837933991051004307711533776109485638468579057688791451787493942429143421364063183021565259894270414877534173415262958169083448286885987365554510106958236182713916086000339940003765071810501843927914673339474764778310453050564591353943892818054338671033414792627001487543936704339082303593602154661108954648146103178896261443305508983880352347247019802993679353618021648246184464171065237244410467021758400118628086976521254651403031053171915262161801329402518260015574982885569464571260949834164888551671579988165842849802843777507860293789796727500505669672430498179713335347403160952152131146021579787255857101996634446975009114668790470659326611269393713458998999362768795650934320659518963935279628625834533876162222785617389204699280862103448356132122289663738858209620286034848865729490654068734165326197125541431025297118835807161632928718063355577857952479286626722924052869059189772633499207692403552111098560091337189939102877711248777010561815919820016726191874570578228336324825336857000653832145086302986094198159734375010390146720766926660690287028837877886990961885341053034251954432704139962467557694268829384298255601012923981082160672088457960964331178589618978405236526860265508724679561308303937862236446279439957327822397057987909817113976238637209310248286861293333770269895748461908394695560119825725766024399035609077988868579125133194520693096730758213080636337105261878417401376952415409693105443688183490603055681652848142119395237263083947688922419196788589777803926570455688438994912329831005132755777800314634419477283157204186284197148165944212146184139696558781672291060103665368552171764826748140528435231933080055335671386992212306947020911249411036015187423636040051072603833199750789607262127656702465111366757232051330397841137007332772114892101226216240121626737398489134223727035143716768076759066255323576599862119458112818879260130999395450835705840965446897981917157141109065996561500865347714092028992889498256280300100609945192852020848817662910163593473376604648233023190072444226321333355170752070413023495094398048186801278334408755178845476909802671809621604364232877206880596802500145831112613582623903268716625055192590192923574800263910370645301129103029028135775121716681915972608275907206316401173627157135906680630617113818245671314646341786189916911687686178909180108199403793222835194372371190229044411373779274551916285668273955141376439781501393016161996077709324491022392675396100740959893177649399829393658730727193641541409784491948364977996378769067519270686878950736365391502054801534983121888716240049920471778286302304844085468198547356262760312386326550881119767655252140809563107913179835859093776301987533126306617309719169683833987185335344151625337823833110921849001812260968900667337910617062515824340099716133996083288367600543071396960894404989487200233407927581107501466366977643523144098008012619060284818296196448726679182956383284580370519155890217564216965444632064037705676385228684558731978001044471973734713478615493375697349457870150725594436453277536751376996693099982144276741077619860294425462574516805129243681890760437926490521101470016933083045248831944341107337621339832263393438505382169010781191331746357334412163954920969119286801715175216954155895923978654264164030805352408864359082708445845878561504748577638348186734063389930602378881910492478616307101054196827601956288526838867731817805028006368463174554070694092265417983014602142540378689063003449237339751972018875215933225543344710777792020009150099790819495475007759609496524901114773881154565551143295926637138884969071855345371292074934025359073301516062120997603451241640937090957085596836999564816572507821832416625055538406020453457042023539920388582739359011053764804433107371428162115863763208738039591781457592714470810753767544876461854519093209265600134292699824436177845010415779797235287413653245723124877444011035821207546792289304897762083096097135609259368128896975792862532721743660825319893081206377559480904349529412456240996658467843388875937621309054099493884208541221128912479272821091647493647392962314562108690768715256710680550729992253306467103842502197616162594841566807043069790844618187383085713842196668298913930197289206120550504841092775626483258665872894413997622970602333799269423560690246372241480082368055445650976267126031607824408290648013080157975530164903882353596231046723303832423230068668013605132026252277238436862262032168992020215479013723472578223057573841000651403797575363390553070663746368091683805509808747701366747607712112940396952671257703209595300592931718490121250151608708364791715527487324950335499178759109272462209442714293305638873880106402921417854373127320308728219330498667917572595962210640937460336190042475980056913047257713413257047463209917770882878098253080918802129487398300735722180705375451478292145901625625313759962699773815759953056667189994201140094133156015674400002482232738413254229884927844793886473531762460209860653151582147186204818348980946130744999297931240699747824258615668003146265971691989272368796716032043429268506113265025127048603199875782548842198764073897671422801069797885234380407903984671973987057933231353541875459140458400299606384573940085562034211697286033638669432532106585523969585797409168152427124624098861741912743538868854052066943034227666843044483112037974580964302757812916285533901329385889406275221476950248173087987562226464115044655508889437092504058755294695769728007080479839764117121813447038691986240563979416903425830764783774972809452055270045967257367053916763491011475086576744754922363030777729947575961695761143667513686216016209742222349018608678419315842728549505700042081045472767555691855127411017970209280592244911156931948563295593740421944912677715314185316011669667772131050976963522750008136158935267620760774221471023921059898333798823329028764730007840312668039191074817899947269310262994994577070094368072349142026287168909274389044761446279091606682837500773298921720862513816406550964112419457010673773704135730033023548730069151080440084736773513337755435176341890937314326873265375866171559077318441610187326435921952752544089957560726035064431157501259826461331267241861154428997926158025272557831952899457711336118688087685534161464647463215578450364580449561030800132652331815076149591592529145669686023836376106755490227299606648400822173534398943529237264175148863438398781737433894958138733049694657712026495854614752634587884337160018241893367658503515767817484239377101085530112931679544197716750855219339546396571542059264860589191490303083113436235669266035644405658646230778146507427629608354667657321234365909980254570890180455842239285889284195126169843448182690956434232684720414632777734337240417481086389144611537339961983826124674449662520551250300144982788693752771233213187296427191326536155014395922624948014214025230654909770196268551808852043884979782261951922018045971303260742304869993786838099390724508196085357753569623217281804992489734733595705644786104375074693235029973354273565138781729651817210411326494021177374240818056470703068196807556221983572701453254948998740132356859882759612028648947943432186247919007955170121980383678276386513649221156252078942848065649561533500401393357076093835022402185070709528204308568637275158685783460275779087581940351750870744926762957750033931003521248701370301560295971371750964148960929588886164725845532583327144822498758238154329222494351008724676335005355252296113992975671852332532507173432081585466217963908891549549282980533943842522415101482337651169220812366530967735472243316938186652259098727382452813431465445159904035286865363422192751670277794408563588251416982036799052852424431988347815332957917366275993430403938759434646530188638232921899970035736802276150625215808277305135020891986983109060379350308435459406583806098843530773707586747002164323604791469618787098782002543613814445858205987512972067616385223731856579470088745506024811933713959190344609494552742012356742787036798082201500967680108749040328311480367559579756722492158043863218234698038551417190119209164139927112897214851922565930299818114816549518445190052587021349214589157518219486406946145521563679664380414250243610440375840007246689852925226033956394881930737268337698282055706839825864447831215313835575480281673202862674036461562637516101968551784009584229020658331350691440483658130961479403670439020529499091740582018576630773182351742391521691760064524754245510870416190329456223536781391093384513284865218463515835115927788627695840047627599614611346616157465342030886456647146922244542785354360985670543655542469144795179923504066852608222501774159760293708549321185928210093914229142596857448851114581782052097041846315388993107028235484051415230247054306048677855388902327848903848134185617425789419542676414401419889866054973872697699351263175724606943333100223732745675093082668906849607265991064033663354526147901054391693948134396191490457330587421361731416916474139384855116665944764943455709697946779865711730742174789640418686300694415695546374139514405920222440091414819251239507851618320710445444207644612439369455911526530997463389366089306330493786745849112675921140791234700721684194742367040716630634000484799578745770929755772671214457989075671351242021004184249336460609847878034165908402085051618889851354982583841647257265473341251181462907333237448980097694099728602623625698310225419201366883740979296989459116445490969755421232630362939598763286576205520311422500680998783663064049136680800193826863788825438176823140374590800519149564151442992289408425368799671550160344719924881226615076951025379821848216264141088025904087948944515066679604193862603520010937327389960249908903979819921331437319075024309369726748871499352633202201949417295535018836399349136713508567965174821718109965417512527468300264019687942219226391636984740531424243645023403796180866430490563077262819449821989993542234390144810880926554548294857137964510855168972969711395033674180202219204752004271656377684681005561859934162329936878905691311343884756573240448672564751517719317642442088397265409765257160709556623989665686316161531920573496598363171316086131640085682519950479221314589819701032073326436921622498965979238245250186759578126538661722190402429179230972546967549682624449608404339876461683841656714605836167661867504566626139498804476912037547660616824066118890049664758769464588520485072870544792263089535702976955557376856557740568475170676803676780659164619308986038654468663815514714535202206721951526060383609566887794258861838417596684265095108847945207466307921703190851580695450604126981313193711912037449256669482556591191070402734352342442550891995648493558259807731934242240855300306161485951161312084977524167418972622374436521873143597524685739864930392631989922826953905815482226750308892307989746257138204146078335545168425856670983793681966533036708554765921551981253715810161686195183437367628288837892224006456250721338408237369855032403579532022760912172594581872747216754094476629137515537705975953592318032832826208920808685611314488556132652400324866075088962100206662889839425161480442451872401652112498079382511323384404413645159196986975738086129598907566301851304056368684757093218093618159052507938452098145043866908083070270009825939388245326959528256370353829818223595244419865844154469136374790689258697386882330038836058315085760155128322659953325319438094805311679332707561242374830655303631347351124818775051161203052076102386622094307209479983236915798316417144021895247315723675209501845337225855487676698893573076557552542544528974184968063760798398255358948126511846590162767113222658296671702168481529887027121946333592424238257030552720938322517746436949577883565562984963939901559496439155784572776140493296340917332000437680696586559903809784764640679013468446314876804248549537983899998727349081146833634252465267026243443052083964655464092692040125533188956310749687138844549306560254111691145090145859093643059700914919098973528265510118893549775235875347005441812281762275949925028767968444779298132869826873597444366846360820380721111066217494960621396259162795803062221972595253582379283220951680706434289518011548952564522142775109351046366515486355824480986607184209321297091470039521598090805199518826833526596945739542647407391181304295633705001799262632142503655083355413198572677615529718774275456221417357848537332362209468126526820301724986095914462460391548213374293341136300144565874538034638960027175675628513472918915521747307872182579719856091195194908429016247757468144714640310942125523929178873596471648810760955723131936981062433617574919417812364369291795927520755724420730110262769502091235228435936476934867387908480792175465982484509260270596738200842255712241579045677739126061817374975351530668396125452895947235322306237453978717502380085578624694929819198703673397779521056307528723570095695137617134975741473751125919840713907620471319256107524330537950138262599185413273561294746505118828229572412397487856935532329022604891071373812211103094593769732825725729658233680184572023815418701757859021873849183700916727628476737979724695999959623303207006760562686394059520723347905370996226469066575364128007726670424313530809864343442201294755289077425987441039993925241052733978319272340457441021048839687341941665002344890435783401449109890175718903178055376061524910943659811040744524804239381127432160694537702224189093835115119823721358047192465480378941021600681087931508942647569215825839496037211986715007139229885850137145107657673194468882839269182703812707153382969030005583197846381712504605158888077854182289647979777530790985539682685457234182030895264844294071223630123323477750713926238529593662433620337393529945431492989854858398746274962329828145488088982034268558067233953386749932968693226913907588857803158938537546334516979552919961628700479118954314273693434405674946847557827125553170029594011699472722501469728146497978812041669501119236707552836748865393809952724678884489626100575210334656370770484207461882743540422747148225207408784689157276643990960503529923405890638961538741972329141021064729704644998667878899155501547977086628988819549639952031693940563912598717023231728068610387010886355093548675177892766851560929066347569923426240065772778119382481864152112223737799702766502328727177284620581612270749613058324806763371758869921392181255850563288507841811501800559308590460730357256653806959401159726370163035025777936800383677522428369886379522085619247392380429089192795959242291049165202307785142304902023492992808519695792023250280360773191718759441698978743705484335430564200883320751920141802007882101838304972180051820438510584432884071306730352773985269393021630999881654536244080846442044046189289225582970149411696326983765287598015174085860119953296957868887397900060982638926746510673510262916915976198779468833778755248008863459297616404325687035702409347426006949144751122704994039308999488446129151214243049170629840951070132663594865934074017240231234017078210752560514296567696447774301804632212234047155991814068195326613628507057392220553169007524490027407932400969864178714286369721345524550924167896312154931173015101606615407740499485089758251509363885367671770254803474358398733299161377562758865060325953485783637645700452068358067923794327493016320435263292499802434622387257166920271937323556324763075247192809935734135724962924166584410096356062611588098114185141052334285686327641480635774058698305333384480370511363709358949737662246336343458064990460195055682956190081558172550540842976385431880641471697357587992846175358237266001777421348822551878496529111598568181436016884162949730522950432964892870482936428731348248078944190564329111389383746476849044683486164532967744834859898438661418324865707255007591589352961829594222606049531985781371163221160171729553093895186620822508970477384309207982561259081765508683997368113344007972914038098937331283897809332776196117427886239714698837884762180365691139576008391246747072329893566340191056430260289301395831287077015592422345092142608535103891332363355633591342239451408889630303144557074622191974285212844692242775567735409973140176043128793522895803615663611838886021688910361427268453662855277421479167153228936379963587236537500050029856710750842336622595260799928202310847656723094554435475698289777034725589329602274068168697315750690556223041015940617136780901531649640932075601699967469843480900619232445656852900289956493057115566747387846321932202113581234241336336022218052440191773686656543928634523885469604882044942488497458460813012832360983277866536648669265439716399711431536292828722924391000838741811366265416275586454505115175930925959248118209107834419338734342244824880142649556468472782019041665467133067613162196270398871042180558591084864629291364057588382501125950328348305665740364445405332717756044277093407850489755896303609279099569730458966989307768341764667123811822044757941665781235915381637792850205100607915950370382564365553612353241371697284315034768672865917994557740258389812013091201304729802888455525628635227012405444371896693316460177966646064894352234452089262889179879338297747742890860430409388901259025955174495739080045642291226750670564333103355183202801900138874344768724006659209107544564967058812615569542063002835719105550257138996618369259737606609291655932660310213515671416779713274181106244205986792325924093286233175604141308385383782078494975303180154097846068168227715910571250246336872719787851236085207906944598072707200725929012876189091349165902031655454663402094683258100501019224379030999193023888010181654401661273595504561364888366753214825345908580866033959274112743136916324998988768808261989949591992751327049579173013318119000053126775324039552354306595918692570577086526365306045076396433066643346693437085389467823174292046573525767436210989931286628905238662634824084256473782066017274267234984076900647051112505048697992511095603405217679980459966717286906782714525819509122517399518603161830530271759231383751097634575526787584800779220757900506891186057632516252422101149690935988075504284280602551900544224094290339277360938900485082948784175521516241479994948973048428388231486386776786849574809213449638463998937721441645643053566061409478325485581001776085795456902651887636074872305032292913512590299298451951774617325361108717231743208362117465183744397769384843355568326310495540623148925785127742299617768744922285453639989509132782271598754311791854961322329358500559681334866914765161977394607798197348993869665866963676941924869388620397216159175680999327570877395864813964188525602793468366071544761329514361243966952965866840910387612492501621369067236866082960776016485233813377224650895111232803440734806300740282760705339787455495241195354753274162827320844230189243993574974598205338047206450059827453999304237156157294154924043081726477426646423438400001634844061273962792827664901695436276429510857594160366904105441798499986104401128846151503221842719786894070786355758130673066559559389707924323232238362526966992616559967281648698769151308142719363927492127262056207746699888056411690529360083108286095752186688918834904227847739080980335773002687428090831153652481508458481152123010597050957786547628444943687492243455197807379414617515307623437434465770460263080421297547951351263677995883769246204296196000593232852234321433091166434905889246017286819619846556254262466905933761216151278805350667241611087548777447847694581449581849727591950821808081842691699852678612117370608544830566765664857600161132267418349081637093670328097533837638066088215959107208957164755941311324312743165758710408055972710861988176145839070434285701519346282646576637266171417191103148998590781763894197485073297274206433989311639025182560364976175354995183170042569946112323533705142187930521287932466432948589106894850235384617831777923997141995143130239984854528569810782347836517317515253389379953075785484972386477435903179384677291009826100524559021078288747194642598940945254396091405301154017141270287818362707069267074324328890658273300091323863813996796445341026484628534087948776421200408382889407784212561824020252935965421274978776311248880511964766571570251158791730486990656995473830553586622575163474007441382713980638640304372955683893448389681241661898184734394420031599156037192327437568366010109465968027867471196988700740406251866784539286273428381282570313460336959021239056264296196071451273006473529271288463831182211448020600652353447296299359584229205108160552274431563579396616669410031414912927188666009040396869994198984654224090338191895165047809144293133396415079303149808935596351378986880472483467170164493395071317226938654946855325335545367623299036944995511245962880472002616708109122302734418912107043537904951814381493394981807647690912658595913586081284441730559613356382434215324902664577144706525148876936819075442488641087694642529809931738376683705741206665512631413985732419962768583312273489865140077768420041037176292820375759884410087371952767439193744974117399719889106150799056802973373829032682013390368146753834442998571323663708664723573013921225157257403998605551367180735180394916449651097627213087333976411951451395152845893482019460499351978839163602629019450757696150507956290144821531388223659954114911353026131895025876462948806861788355867269595772700775260304699134904654417987225792262941537913818000797400121717626037120579409610967650013013402711709140056072365376752646571673394933189389298919524056564940156474626076258730969701776481933740586006970397703090381301795160404020375098784411625055208186529101680390042837265340334877560295421439609244284181703221666710645073173169608225502008652278256993951242949923967737460983431728503013597587605503493629263000236132819066196410970527617424502317564538853792138209924034020526476182919134211931303492495139788703391815004295303537370201249442567221945877730157267842977236190706195903446592988113515773811297549923877929719846257861165521089153944353298294233072113605965786062283880652021559043135161803793234883769540664965699086805373185161540858400078498710724404167818634083168400365014253965664914788317747737346251048270034918101469652183443143378380735145889921655926235758922761032328720502517925171948857542724783879131968992271205862094278258279579813740814550880917028893460767514472514479033813588095251274884683873805790681658174622595047771171795907437741534779303439962449263996474648595987438593510414438346639948603611912759369876642356159737887953910900541243020765813809790256657457902631861339926668392114830638973597946338501414951818834386419784920347652049969563201491593251528249035389571942513796830930050562754144021561404510320118999675673076158761447484317291373272001780326479087735705089602698260260520281437451845167611326100248038765298246764218233413076824592073350867625966497189623786915659419437555199888995978569912527857440154547265017142786480441325699547850879062113834564792021504135078885572026051829031851147663611110722856359422674669634701155344337091474673448042726042842525980318255398385790821202805692433379324668896698110786635048930655718110580175867083682501584400446577011391249726606478000438568923884518652088060747322618143565783712234581234306950668819971047095890274256628488345091317105251720443619523439151845511126582115411375705482623846880670070767318608282812267593579083487695681353969170129602500675752454594656897964996724015812514954286269060807617220340428654111868292960958608451549465509251208781251772977581592898799435365254150275074905563508064738061053125213086664959757959323877909603154668779202113216381642058805621292111381037293942497458593582047311778377429257618143982284008666805803224858380208894295205975586381627841218406896358733128378296829114398847376406068826580292311957883175630870675930349358190472813082666619570726719124181108878053949171630694129394037709531668436045625579839925315019200068454008259396210574334404772946313372048205476961537161201773676101443763486356606675076236109153772436867137436725365416579827018878319547532992681418281701981526730827545848120718322293271624795743155878996008830289960203989195843660494973772716681576194527529782961712063662226370730039421268502812980029785866863740742093705839954044020602758953401723021167910699538015348183728625156865418731927706892004021236679863763204675845502761252656458213520674756081576539454943772963357193746475613834324287171439046337575694504157734452846442885470289318414282568722086002377407170834936329869537084012481638261837705993809702182019053298567848511571929099964514033432011744207109996859459915901129977074717441910335157777365687403097608182390334701802091831661793397651232387493593534287090564343423470972977125780075442425772137828358572498456212647360228233625359909635121470150773739970141462928426977777245358709902625571064937336981391319441289800356537333389004605491873752359058549195878682740000588844265465690851777628832737543356763542374707006567239490789378648075132271846139703181232499925321318678843581383674325944650783463969653860865312386130559982123861535547630544065850796804988090882685741500323753037788513001347329378114774888674424039110859183601994819612636858790241767663334549033995374989989274718140484054831251222718658124359168463322444753259725192832618998453211312612657398003842312373083664119386894921127424387795281771713414498910352340611579634516953079380696287203207145059691211351620237873680406890124243328041308715519260029741644961838685810959703955225333334726427131083770510616040749335379798932883149907461443465900446307837963496886667597111505764189929179103339398154021402333632689045625098945694824197500774063355263435347254126793512904401622494471566368299368538169332627003130551008642466252114681706052043314070337395541256892921967482258226478357828154917830926335682738264827419861400159650318228691744375527317483432460347437928620069801077259552289831291158555004191406066429149310064448379168106937022404040098018297434388269366535307810812614451299233253622748916477586777867392806702510739326502032472426771753720788253413420963951384488075689797166104431311517178334829808506111077831270508476325123230318901165619054294958470818180511069185353649947924198527873628778803331928227813984303632106061486203390288761969319738854338738211447690814641443032277932742015563959146862616077965115959363939994625149814327335387627890010505690881379381244518448063788564107411101112491259267768640993172900544487603986025975405861779290084791449810890151591423131429512773810267933449270862701364324810036404404195547214352758363983420236892693141971139908669080995038240181608415698475913666615028788077506413756664821441370309912875750470842045280162172172169199140784133989028675795560396581466388022794202053649150624098374087307489644547615611249743802106130196284823616078790267024398837879413295804670953229861511396649270507407270016511136051492645878151613773648048351066596208000206622911813039404551953940061675196082907555252703241660769635335509183029450637337658202508680446361767524129070121556210136963132063654959131421631331424365263209281555393287836423522156565543304993321612400261981562146366690355149627023414453817707406098087277173565639776572317441464809085628204248385789091340875766851909403350692865312135913819809683473302979042615023534086377610203806593925095701215555931590414606795946715296345880386729453654712118342937118871555023699205060626588855749526884848981524371823781029633137866405613393072466797044280295341408164748240146340245751559319304752307808427517879638372573262577335755466845722480573927502515681319155719217230910077446135057327309445372909801616837688703740100851235926658635784551794096121530355834587217464929571957794671813545345667629079401156500973119254206876897995099846726346134940069911637190795201502180320169561980370753341180340728754826645144855693923446223141110356565551460572077301635071618297277449125782292823021084990292116565239083565328961002289157088843244876422895982524695116216253786422502473833934836577501257315463387360152025637192474166329566059782186442897848291193018946145725306242865733063509765929259987370596313523407570555555995459182998572580459315379689177320115339852180041559932583732585202937284462861093585095699617951893059527328968079271204262396239691498328971483227743267841441049456477279867714862297077136807376344962532632434723797277177349850027432116579785050698334376166565496927325391207221820410268475655510828828079876567641085091268049259250833598815556033083561161863229972623479558759654984590133583989053881282608636146179272987742379329811520384254926637508471129729165745730094476983213209006536543376808792705699264928639299675867633700502651325603328172478135156038934795264410875864451352762843541291550097745912410073688342459386304780875941743109424193489596475583947499636279283926088506369422292925714872845030275160974407422015280961101213957379490072408844323170913737030758241574367913026128140404011315022223325924727723818451608463756472280226855074988445965934201591743482485348385323366705073981218720980884417224007983616674392280291819675065803321642086717431775946158173536022313576305003524750533792091549243582722602136436674552371943442208784866168001977529075033448755157149810871094112716651165956241334141139695547025725171136272241842763548570624575576651110448623228029667248706936469659069886811844137890232664916847070091444949622786564454290390571050998675407336688016853030438934425091134154986346495144934183933514067414358057158291745942045950538833269919857907741805609792339486129191585858839768923720668327776726280314943512961949401155726889303133827444456833157715385535626758447138874433773983460695628687567106922585029667501866335209307959989807976353230933622517041839175636245939786469173628373675663747493584337303931575237206507381593589190849086336313787902730526690129621340330795408962205399519113006859098371528694683051344191572273356093612560470669373232460464794018163118913554266581693600368059496675358637829620437988639309724942527321598971189654188837486501700247637935073275089581106394940007602826453574622890813836706735480291674912108508341221854338724558869317033935136860470272923813600818236010368173938642396568407299265091331333952378602770808323243434686492362501189065408650576067722830394659242981538507379705488124784713984345864614596659564257053698095465989171446860855228800048682008104501182696346456523148314606090472589715071989123359296411063855616009343855152450883688467073122587984202155961599075524766962242397625484863144948978917177746875890338169732998707310452676695398555227222926430566410965001989429171574033637497030637425953161770389557389285460516389584250263653103132326844438125935177444556871512957566114787674694240143065352482296368208362137061451125274326745811822749429935020664884221711338335723192288563047839262697968049943240350904515308453296813669121469025745431946962548437090051740841126036358865435860021908064666039469543243441989155431881322504683256517049226465312994243273887052071073564874972800720149408661524132762520040502873073616173148613712484114051175251727312098371390477370620294427480655317680639843916862945391826586837616566369636637708094591539852258397046746728425711752439851413957678086113404380172736985816018604185540333090019349913564330930115704984460700822498166349366252199852480815432876275386433341621991593846903388755034974883049851264369553523551742461623600194679322200160126571970995461706082827795882981069293642271031915474264327189555812871558184271402037970642617230209956490064788054543063654707421778688460007840207125425768562382625634818764962871062866057837573688232869748354112787348206640758793524191847064115063656890866623221800868717990778335040184759369086253191609831018933770639985144184698965034647308971506009638730478269415297748151889014108777940751451257854666919403701990316775938216642941438360765078203944757410097543195871634185604162226779680901464067558393256471026210032931876199572634646784498639071656665674974715687826338167716120744053234134221890789077271357481174920761703396272716253239393685939920129414918111275235975897913314683231441619170029743211275072185514293893695914909377852188942807477673889036196199661328780303119303779643152087270448149490147412970511666777047491821674556037365090000441518092610444895520876437088919473893844346524651079281213060879577239938676134709189479668664877733555833140003175189838242854196286188293446578581517690246639653965006286249510050371508766603142636529173308534773674271475040554668872134359565241912968102716316005239379956777195761962596126710903212384619113359359087064087942724250332111031945249492304762215231427224104437313559416177469198459323980319212676303629056299648573187835853296217553578145234600381627647843123407074819779491556782081781202244075943124214282321802014655880120316524675069386170103193909652143613743824768610389477327431419060881424033899595692696079903176082526398704721348417473515019595549841455821800127248930081474251144578406404450969206855478514102721073167308902309939968045825662416646987431986411501564968324834243915518660944426745677587840433026516963914354609062897413743468440924418176617955992038099189591666973174377928480500001696925151339217769409603288386283566561840438426993107912194989842322947750738805967330385028687222108558449337621945052664381500361852002118557805600912640424884141289964327474886403991172896388351976850683370596372751861866133980152486482682144240749519979423326293391437412823874772070779336085449644370654920292563459235609881988940314077198966442372985016028758071026856102573884789166491206258929867926448947261520797374299619066643315746982389570273057538529567406440099616713479714837776405322006179245615566558629281729475460431989345591821266598338053154079595638750655039372102112942896342650797853209989037020898866612105775523187737745707733916046335857958989580020836594512305476648862908989801355602389943293926647488784430226215916209607596037605556380508472059661062327481878761891094622601720953307332358357521536065278329318509396277357583418072031208796579303434355856103502754491705390864633724661665209549002893674071256395545785896832570851793704761044119488756114692304733727222806403766194016111339409281135990523655301260348732695050296296857071498732012412997471583823179955646313044204161546705489584350006713468903180567227347231692817131440703918276338219859795626065249573350604385626891535119074432649430037815277428573262494752375297227482306470250922923679477616625959153502495104121847223873392016164984071741860011570660640926346005714311667665205792122082770236299865348217237401963593386836525742896473008289714437655546834694557156920888364601338962115842790285502284710558783058937336541088035366050612344632791036861944384017474737963319075541512404984546157383135668785336986752299882324523740401833957292468388969820971106345655130115234228018005842628452369649204219063397414259403485458576912700243617879269745971539864417310853141573241802169937268879609791024686281297600921926439681963612847748020350709757337783866660185127159278257527474102814123918444331109353928559413733421418883138695503286322338225301208868658641868488390152200962207958935133892117439799706969194507216116702767774622667002023308863506282783192568865715705429444156517322251242608275304456486643183909827902571639008433007608575578063585784343925659871104136489305136775932029179837966396680208588570567436207887098640641695523256981967465756447839637864107409821133678691011151961001419316746914606782884592130072250725890050100100550649056449817007299131292897611384631189494348821229501534011503231873654183159499136886576552920891792437977598982684936216807284480255584804428376614274289334267347930349374637249959475529354040723177260408030137220995915112356342972469569770858844424459772561935230523256784089759298686787189782915249289767748487297843790935865588028708678369147342891972410992365226550777006941327173185178870178576509293406912640232462053282264253560045440697891332078703820593294917744287921285276730368020686282530519155729801888343270079180007718525026444498870461738233317921835146393195570508966456736766088956064355041678951499313084750973583698520488897731387098912795894292094733658609185182042807746589820031045720906111361238843287446302348437645078294174580489739797288233096294127493232327125978574649438589102030807643675391577921260539138670210849229355630278436829635954874917567654398297976285037395177708947069400387919617467845269075844547950244901127408844194723083098159096422653101046116542183351607377748765096909573611377318030534076856604285293039175222614032077157984427637478236782102526099408882362450895307375887704618102630544070440925700225510211674889129479775101392793238304893848892220868396645111687402394602354093829958457721022829184464777597472860071258972723913489017972277450192461122623333298725906398076717251169945077151722857150050815149870928147721824886383883323889435143926077888796838384256424608699825840943503924281614235791241639944696307236519756290719914996252840625934941285539998301990194001807744510156863126932676403917692300335383652185718434770804760957992972534113115913041430322002070902403525808084558862709515758890293841349403064210872276809478273434586433437768462239959573322274504623541686301444289962982581146477685744440517745277307266797372713820807138241729559586427784751827612240895115304396597822607847002509300536174215725161005643848059794554941620855894940003863930570229025874073269246602954371738686995086331399822070432269446689536436869640711521026427525791020208372838656340328639213610125955661909789096836848835149532961571721576788919741796179726386785862298990986454178171346486322515044915329930977115142100001139923559604145093456496223062945568396768475872006516105824138121617852281925157563775964779387065805769108363082553607168137206380887606109875479973763602578019273714797867500751577594494461675347106570507349272787899519924311695961558930867238933453670604505117719845399629155831689378436351252793008925147760750334474646390769005225955422623041834136770000292072124269472383801303236058998614767824895086885441565274847800348673188364640679256825898518691916209897885916998470930248134930925285471296968498899702613538457740170788738281320881667889385678981976393188381180295029506132610570182907342039000639303772823649744256189010160322606218186636195105397027769460789715340129408875385534528202320307892127628217018824497754424859186144961268348124645112679795611260078672456343504407901502973252974467691508726810594968422663838122589268167185638474129022512617258132540165829918532897005114826512683910049341838287709900729349002938681021736653635564539988183782705037762744862697903590559055086569592772664052932970311659329401551980224362257325549099616227636031039969947564497142001351276464358332339790822398489466685505558159393913675585172225589811538083081444573653158593425460227844063305632661602073382181731703090585640409311729264072917143657838645640132620479808038572991149292705420852162790749421890843634253950337265447011271815828334970686046156860955071838071590641179466802350415854839496036883418039367193333605357569576854442358615800063073901844858345738789220574053729021129333556279668072805614172697013043057382502443730463539916353606855420310570608194857110575027610680963058303024981053113631944206431876063744102129813533422632305021431524587744009067979844029729373662009731102907091427310963271576351188903096617982778088749061056442700500077243257399591112972174057428276016385123263316835924846419037225033055320289440325121052896748084213821773267292919804571531489055778011230991130503055139090182285627864558865196801919445351236343329513225620015304036271644445449027304747184655515872751990676294681064453089542747404702772263296921522515291264675878246853224713025238145144552305703696556681728204398903587794986232431750517457840273540950599220536744198963952261417405340894910727715490289323091293359470120366619485722281779802366194283988133573415483336865816024827113961777295352746826291269804027015445175426410771465136720718696674027044834214575289588524369323896333637354174190532661584558994301278593827929775052198923163052259175399781693473833841026509702488060164971718015057662946123515762757977733522769669168213911291210515610866838920609650623015880736170918866553396148446519928592651430987860730805280952998698650408965777347080591979411895641828221956175190181419157311459633115780515957740473096982317703205759680230710133317318415041232719652112849857115194968784473330977865740308202299301981271878563510952377891147624539535466195022436979841907882669345068692302260808864188967081577269541351929645807679761934477822166920865649074135494288121146457148736440380529149964791257167621680184587864590862762971451358063245296656857559463313137998003551763222506293679791120306183920197727295635423392609126192299147939177104690975413045345759721793689956246122069491514323634642626495696868825094793752274019448690245492907685846406387016060206155660829309860692556035612835817542488154857823428764754677601643917889127573053018523288891605014248010091421161517529364275973612013979072395939620303116582822544699423907443108120509170322277521677073992854534203005507887207973625057038387579444980719575025511122340431365600235860011542568011042811727722288462034291023185115048349203559490307234131313959468982519380949593068651873629590941806676477313445501483227317709757652017252616031873218307547203707249695215472015351601859064455123233942763179544431906032177431616603715122060386040653680294937936986931517583642435813402517146467260251416996100237021047527171215771433027886906961802660904677289693925892934597904175190275778031848795542595564651401758643419385181926627283186251489899734976504596471879181058018492834714816554708187404257696243765640934469182128861047795096437882764348674905069018845114304402223973329384011463020332195199882895002652345904689088553544723082342215415687849274630052774635031514623646220992308912953245269773915326141348810469962583353768633659127307986319573112664253480105405462960590054063870713902947248660307592918001111102801645187105480040494483102589801136420584889155308795533630301849954400988519390188100924441640564827908739898571403532081207367116842954439722603338787519681101352293272632743173186526654856719162493835894611095209105374074987012937373527370684623979739935609915998162129943096490230754176291548038327007412554380076743982467818415668348098760019786523648083719421070097508760059987878537456002977729622968843262010670966738126612272128902114596659755398203854721108849376235517689266873458539675551837125144399637596888335526203750906767601208117625425628827894872028070039798820879354794838932872235266223568184477103247344702435564046204815100131207880654557197101390596626759479530280451936110165027117050388526573481745680076602666692480898116294857427025172360125777972079624471734648061220897222532258019272869296856554664549037570871169279111560601282947213220673544902472223718216331080434346034502972207275580429987936964224454385720618422381366629014130723339509568329304013233548640986446881043335850008568506353426041255889852730456114787996548129626423831030712448226423426302279328038668027176285749625380282604669189064132068261363382128552816149938945887169122160877971699002228330949826926905190794988852956162855336352689339403387136539173363542433751282395102788498696600085664939366275469067145179705715315835839426105949568472845985214553328279820867533744185651635557826046531936157727630103156255506920954051590419407090332315891567460409757271438071901495533247095540390201932188901020889993760428573247227594618750532451256413519322465940104513064946143297894750698092311944278769863168627426153050420563874234145970580241491766282316931763143399866438048833547476340399271810430351619496323640071493999362686352607145569936683226120431374234730597827841625860908488310425253258235238190849250915485400180037929616597063973403744657074925208052002362692548924359663165339561234944996987552051275350204766141343134690723876751878054607465684633149978648520309385614640339204067865464719269919449200866283637886130638918261640268312597811277545228164162114511615005627478232195799543162282280417823960675031832787759552306545945381097300122172571334747364829097909290450712615239653825410697895315282707078744930051340628888975398330297154421867374750334553748509786877934789930724732193859930767094408884869655256130521183297794442079436914786114033355259785735571715192833189199623248788539686212370589156601193197738944468006815840354445966734454404275910298903820895564743473751343947988528455357797877409364992126547215467185709571358613323863399461099362915125299525630021998175017965576744080621314514144145337101121763616933114232813472841274667090707127981281996619393494289090725080921880175241133561968688125727230932327111052531127487204404172236071918242251994170367693178340867400572958247073260746697193666685355490414585341562698689435398355343131146838879792520585053337697459166820876564192756788018624925550537202165981482668256101801587692470149479810083979254354980257875653587062539110680631866436588613315720733408352108161686954398912678050715501747095817743300333333932435498967251228494114508351799241686654047554553833370892446032966492989587390227028207468534881825722041028257919124280713612912365768622999113122363004490701958347233641419666377944320564045472181116755341185199487761574160506887663468757885498510238039516370320704291122764408482158523048033530984038855270299158035302259618313040026616860839528422081375139181560064099628388085281125247010408294989302157979722922420215115499793413343483565223217637263394797932829421309121716253107860800510372994779919979479481302129836523481769449589400202915120655444793927568719185938832323624802273847719047286617995399099604299915467635916393476864227354331667856894420420451632551182375824267608708394901027816518821502579697913014715370428921366412159071252988448583097218151584999807622116318695089469936606116974244941933758638077379748206776345802594454525978224723219866896154738832913490727730267007202415575355650606745758494816038499538658810380074037677730016498123869318473648086417341091732640510779708073991918874276629853299775990417597969203728126617744487687598101490763322574535248884255783210160735449036229201382377021698441935713614719699446564161939352401263903305381053591366663306325599444637199190663823618065548674004743396750860545351488404364318226412499896034266657386861943286048157985879195405852165699742838950722256332587563795526602474909940025465829222900207010095701746385955733382436166655749577514523600205241333268161597987023596345776757865451917506378303100271440009789386991725245548479969225345962536386337459376664644459975695372795497439339315246188583174560276087192344433364732043179084476038338321682207977518125218478780540897218286064525823172313895845227775635709193603606297269340817243760131917078057223909246343205735933228421488921896967767955705419741674593619840636234472921447823481589458135553070504590295891018258551912620088901271125748485139863671636441912018174586645909096259850429647660094004139175573420676423324878757111864036318069678863568134533884424885232552384433901812074485090596912492271011213168999381882165121366308422520645021481410047775675105044347813989605020626695954513860534792320112977464342439918867423832117154435944544644278733453174473063084322230306249483430442637361483340926746715419074975422264317925401983041123978514804021138970935831158581502235265083019658413996502020299082405716995853662259986756294250608956484163612680480227777175808018836949840902154506680322333043626606387857875364402707147774026590000583681457140456502903565906828092982063501655771088199726937019704860681886872061918994140824041245381576595229565586645618984913298681570668231754886815080989263672976386444473448537385044701121169991942372674713209118625706046490004177253414680809044392717174278883306068657226789691865797188519660968480201272889178823023785812733557117726128361664618721441388459996660229928574186977632966888592701932689950354621099328415927147556599007386200587471362093085852421208929446814092318106669905187339662028995547789078344709016345911001505188651370554468632053959567322487850279074760249306927570329559870713169635475471698055470929010744859080877549012935734909362776935476296859405137031157517246569196647291111200708848957616999195746050618234788774408554487668195842604708009634324762983092121861303195930577603478692722797776066700795356483984746758199066065144204870248765755357310119563296839072019461322722758162555830879809734014856134020030305267085185440940425278538345284421604829666468903260555885880554916714609503297393956966548227805795226709300722784557707756420494867914085663782903263729594345086273591723306370839594932922175555561617393534257436136476397229567173766437345136882610816096541586033690378220107741199667802556978802357554433030180624593297787783248627096553605765965744448191892842042331321867976624490548468298136186531426286192702431818674287957027345994906518364301835346812365432730336374612505189802108269736975557910249435817637257036770895888498757292353261100356409317733699038417537384082638607229761337823458860837616934874926685824481720521798989738252028256257575905018255281437072938639145248865419129500165117371602927553125703007747931399390967029404724227884862218686252380715524980487416329531057286034194768641853424677598951398836048544442461493161350287209301731178384148696670877461942698748722634090493490980521551122394766997209056511555716388337383457560689567767749040629007361750549091667195829426507398532013127443329356963795000047096611539694414815436448825833425433835460676009921971843656218982231324934399085994444574453951537953382355390730996738530200214029892484806437500921188652838008752332003921958399990751233900390343320007736949326833066560905538668039413909498050834089331856296740821056592493191268755334869051509995520595024050322068446752774764987971802178733453166510090658806322370459347753349269890966043483934943795218757541653955004811470449468359972060203061436738544786235134724997556853917322210266228879144665087741148675394523629982207605208164023030706185975934321858516252415515208487804200578494361321135026618669926806631403441822423973589323896372365578752718466745255165141420565599341755684068911241263794834873714565404690426873436076093489685200247102692566145486616097305909022412776972014155612490502791936442835267232066615489745329022938619817701258133901051974232031425267951675145573829659146501588255008201076013412775446076003609367688389843984611966492854229471823467186014297561151286350794928756985114135076569731192876993464031523669441837325929814478805946547790412108773802476313618496683702214111521469389653056369863205334375060404914193534961155197071443614561161101805090632472540781609735866844481968812332476263123630248477331804174691380762343475472556059863328663861930300506923898946157390015789729958211412302311559472262805641928189010813959871033737254056457667232295172330814573792982471340237229898254588754348276499150752513454025586710830829466215866598092430581073362441504220817970517312507774904186439919689520986145440889187461826688809794618156895672913064888505576673621637518439502960652862319333331312564411561948654723785007907123860344104030601125851181643393708974504916088346412941233000849306343582933999328573049053609673733483196771923275404392181037423316089530794919225631928252452254967302499997515573172284223869258991020582377037391404108925860676708034938780385860945722025976237892191423364307704071497616065848536605935287351032944082682940913870016987401473183407675691729456432001966880154782546459576161773313099610836237179048749625065220036695451004254777757946405255628166596602876001386444046370919773993618128811542481618182120332269565507344545121780012335777288354526734436063763150302517955349134967801480136418597315808684064935807471264903639994443781110015783566378791065561721918889305837941448886274515051440156064388081252225347952964204024360411764042005098811204693654751649687913643550323683515947113862985899241476350230890980664804574638373741776460330645324597104108730023542533559671959435476213205839791059691698238916394186298903746687697043686167398158393830402489705078936620374572831741145482725555746427127049640496283220073242725259029380900413242837809886014782343306084013009914182924774364975808076675766499840051110477996772880216033911878744045260740537121894588153642217056317674184370124639056701623134018018676515052365431579467046752305485622118666802498357185906780483335993626987423876737992399969476947208378347494055065043756513660822641961017461439295100367883784200458505728456396825747909324906771831018686450005746011283774893016388670454561306987013430124009848402789192149931024044738298529958191386319325817935420255281768397708308030859384158833251140012881090507640370506493863001744136300727906797875026834528004775862005068540364753012194174607954177067935532301921507751125457549705068041171077468741078246822396378032369752699084828161600992731327767646145787873058976231860679659835345346388857670450845912573869385527882915592973069841672031302550555191142997889492780566004279400970134399909779160612110444498047681466456078098988983920931633517486458906045523501688762520320307218015978799285400689429717626864306279755410458534433725429235137881410401527025813671261330210919865797116288470924970673825602201575308351281185494547093384033402187181229033001967556924390222041340862271271455221202223422252820860060493860146327291171221545010206383336036891876786908142858379566868516255758050727392743983431843191155387927664575929356286195258693271037754108757270482259211402810471505750394725554773509361812041985037864325589530150971859808256202125373921675211100341642945493740923891616859092564130285477065268405557722030364950706742403654567086903360335807034646003707992851644642802940369952553395730210970342488034548741871145239837547821566665365649699356418094909607689774792601612190434195028265739081016227684738534405981653389413734429194603292650331946676181670044855605152786824194730503581368959760395007932132606960121373598509489523674323187809372859157801246571081057459538708150389741328159996318004417925425196848746280017500404867641343163030422430338018748535923933365049195669069546569705177731510551906788022804695863165858013631990644181313672351466911613831455735683698141637295491447297293451030600419031366374004400359346109506025558809732512227391077574107599765467773895149249906216737738016708755510712303952696932365381867340752553130459157907774515743333384919211406749251646268328130579780999628040863187162049517793603945058518234279126165221227005896587777856138897065892214365011946196881728523587665566166348349074063180206584457671711781508109057629522530915738316271560053517302216010564244700268259551223977338947202203210255828618958243134688907912646637570016304954215779715264903427529358403583372601537317636381204660260433139819979724015352751209550964014469750277559185419647885711919948087105077041231970700183497853479039993193262290136258204838269069790288915136009818129638369647583379334214146630348585057332966072076679801619910344224059596775223804554215006987520393175754980816103192652526404248224331211745026406677049785830533134718122524023738573888234809452235695381882272801702587188338858683745771234114414873814065199980919693745754533648544666574027338132671423407793803239581735780814349136401580347087540026059666276284000970210763003231248897743142312524280817437731947041527777169824943058296072348117761264013070889591754484489067114517571036815928359041471995780137519791611081771964723230773845327568367543992557718048536503454838654616428420097643963400018379791370209873936612620761756820042058005315654537017357352042179917630869257338069254602032065023676925258144557222621855797923287868829391278840924621486296808648609939032787910968128003881869289546498039246667056809787939530062116895012659356198633637194447767186328910812607105240427951238594313177430412334106437024526205029241126309719590258910688820662690243469659974824770622794618328882480452557475595872180373171647210025951432216186556509009647991474274829001248290650345563036621778950521806870451721405240035180724447647371279878940402981079633761198919436854225183097002492035562370729250448577767110491382447272589720787672183282731221294649926939789203438767744393852432611938540465607701742397776877757502769204586059942462825643639385043945194377384305480408631708395845817213400704341931868781886738476063732783746215907746387160061578280109753481995205192843904553055046306443509897172925134189946019173616509191028451692879506261681714479690832523595465679371742875046089632895928999125972951383665995582170909941907898419792027090313301889389202219603949969223998336753394208216478310505834579283759325949428954569556304986844019655309452575144451746247887556491760005976044067900969626768556384566189437083116365814004418239720984008042379923346207520888466327731748462716553680448365642953022399347241200264802543853084912745854667697126786489827715722019321168692929076824079215969882782307546881104774812274000196833973244182270950946024609030814369543904004609767381705749124183587248145686628738085263944793543634530816916637178214306710131078526061032079301239197380571200004004894825534419284862892702773226901261218229528974370723579174649681275772465155316622338966155621127075814189745111852866351637757865955263548274535028181650147270768346891415856769023838691486042172152185971189115883491381870310591936453635289904009412918066563434487932362238216291577517158565654006361305257375120911529017250095082818221454207585541777169650024175136842908124065922378977249377574371505481625275328093266985400708417906757379313659661272321705976580552411949899467596494115307100546338048578238372120960387384520742973679731735425531670289140154244725187903640146186850399926832796562742374003599165541975222423308816509552693892797575758559443736050555558047107284504967628241974488960299530254228674169281522439005859855150388319955163076190855186949896495119197483649280617799796810956637548745635192972901577124617415893194644133446416516397406146595105116247687363547036827381046354515299597079772114305979790135608429739189831991672279837803367773921385742622562687348139407096265825827107328335606175483167520756357781797801262759553527505036415004682171653895929155266430041329419375991261974766943155618103945581879467453172767822832756111424889356708502674985096068631039442627606177872478412431058602976521283862648281979571682764689271994463190511410794038950967855424659310918194132286691509443893928629667770371345680243464500661672375764599684244858447213335662565231137994042153008335099155067787302651041063320577119708166820548996512658495001383445051913343160090843151896985698880938779245771542351831446764761024434602190337103885153108063223350347148941303451053152264378385612769926706937681666317189362172609390359886583554603071131769841897683901215958727547220364792182931437992771255373897215499746806083274084135576209242476977283890469114694669775359485362492808046022517659177715851715414407415356887289348905121247055394329719858781629233005500103238876841586064289536990285348445441333676203753083530694838885751264610439135617852234295726473887322265603680916027826224154730173125065267744522830166661961490431650045037085728925690790259661665870337801898621825237036332920150326160504413050530191249444687347256322609302336384570622159501021372797626386734097616369357181036718684490204034725991090080961836252779252971859879905863078855205211385232440825434447992407468425706460524839883969671676339213690635581273778707747547592455836130453236682080713063073968632209839097898792004617858266584227478755186892593292828861197470735298293220630793467613326353506582584197735150298802766686274044742161321514833036746595698710215096179549797379055200657330998516703361211871358226793375438439397187390472160014635174989591006222875160172676676449538452875619428558665990595655916306829737122527999667714647488232264870473076370122931288554568584647604125672684600582319894256951370700008996032176687257021952373454374518357542172562800279341389443096684409766741050150982564386919561986798387712329193699602542309037008902865557450841214172968909096580968994236506133924232087587146484235991567792196402162408579753587724055507368024920592038229063368061334443112550100794662787847263957136003747989472347675570037899901302104727656485640768809549260623541707038705716567130000155487152869181441290780682805314485998139653411311751441964515244012605280755750001035331729646215948826071892607638488960891215744011695182155144852351928055925645995838856416270298798984162800452826036086781799070894740244554656295211244416290556764443161137712814521653279100485356059494617317783785097097866596405948485405090734380491716148385931776296507183628384551571943115647890887121506556990746853640333412407060328124522760922890778509743157099825520773215867902501539594307193614526914164374680728731774675852557980683315426467641018953521379803389958286165844535865575602101497823630681694865437113084071463387753584963962412762698279174174932950426894058088624461261334335142361299754913388401856965060544085737243621347339303425898016014914722481985137043540752809596876769410097273778103908919558604647709358863469209297707626334508902214897692932272329916693107401579270604814390532978205872569334420722661607988506624662961126058415558044759129051531339283213619924571776785719035862144526713372845797734090056109494249074094270115643671488073286391870682951280623615154147422970370356772038391241512268400490448880058181747937888226951835892382107195663304958619672351650648450972778066600023150276368143860514756540996594292059395971834488283518070323412132203043970080787509505918850184612411054636974663710618609661603732582953288093811142067703918193136882223796011254701327944833091421764626513227176584608989092036850010576727855903806983726678003179323952587476058029673273888264649339015497187728067854554551913315575799684535279190223120724835282479506189700131346202626368097705843054664618054737286697277073752221780888723933396340431143608398095319028665653852058810832600894997439312931808868800856076750592764047922718054289406153936774123986170069616829963744949539997401960515320747274114519097322183668027597972714768859712312808262573949286064128188572110806436790985396029136302499153923423500614917692640918048190625472121090925205725945826478273681816292659781812543818012238640689909250839775322032749948720993280496480142125691101450421036809559414036350102089966367350245097912873779590944810897864288576478685936304602750561634237294415902752241344984902874698238954960557435381123658283686071681452994078155921281768323605718896687694245451281693202648619714225270431040848414597656293371248220233015703756969456759254180983134193109868620531242997122161638988106430972441627375074233273090488681374646088221882224702604645037425414629482333212198745233039009449106197081456668537894835908525216392166286994272692534616456752560803137184576358460015907330499838152316289542630497920514702745504135001253760176803673022406043028692984436960781344150912938019222266862587452767639518369581372609734973277882436598670990405948426419501137452988696516073276620077911312394681587344789350206702880077112062991371188527253820547239556955071371402667135941740856527949688336865654875520275655026618636847930097470961629886838238792733922685713551643480067426738238726271733439213210553088440487177004083397108982261646612154350245434497016691242936005726239208524210599658133268895726483692803968741157841669216718290724575413067397378673863220043158022848430099503782330817740496326108254368815795827160985470838289921994368107778397308297573616914144011843427538704049180786621381120217575885916967571943151583947967911336922649519331445822836488159191726290672512355155768155557121052901419162737208751639842549876218428067575582226522586812494813514822847131075263506925996948320719253171265715329811013413048336919539480142247554599172826502382521501183970268253804379044453032399807898886337890372110453041433771694783276647151899320686243280808839885591181962437523223847638181645460193597512950843055802815508285633879746301920572149442417425101695348780804613338764678139803963289184021968004741213582660752949487682163435114410740723337475178536842938406992977855151369624476003576750662218256056140582971112674891242344790297227283256602471641102784900964206496479865377542933094080280483833425236363072094412632959241721168295843958483208166285900043668946866592207466050692940418918122075765952369360249012755274466013024195166517977633475312469904330327091398052570308524915614858404347669184242103466934598210095548835459227943201853188587702179202838365964071374936685408458190555085469698487914630872234420743064722177795504753269337464438921343344791889625274276882484980856488490403523472615062416189245414815563521425025061152722110770744063682599144674463423435155042660812155813419663828542347628265342388002369516262246305542727841803434253498561060569577258553807537828781439658612252495369887456908729376477506409070282253010219513889263177102062448240200315238353827171592953459281191206704090787771103518692342776968921778737116664303498954768986968771115853871136151766855704115072284259569983830646026083127965389956598696865389526412275301018759934723349592090644216115931034700873950989566264254382868242789468830336845932502430432351316610081726635552559032146915400687596325170704806585218123360364502794109898163335577761875687673806917095327307563138863235479364616550792176838541860972479172441490864974300099314268220083994986869298523268026071232034358427926978186853303980802089556876434472550340189829580799362504355182436053847884701982901947148660999176931878161132112558918142135263342075141620008238644003244653578063112452712915994734718711841737705185699036557827822999391745398012337297426923394791467364529698939861953630297711063597422718937633075360613270777414573505095651102393046552477417844415937382371664406749291144355367959843131952771075608916197764667158488907199675056181143218083988600644312193317600116495683798659460856185541834795120792287968514511630027979119833504579356831275658545886830277085518687076100845782385572107405449328835292701413065044883276826788094885430535134827782949406064747874700363366693230609991126425174670072496182822161915039116456731532147263071050357587503291255819902797149086358944138436899872590841166831520312641399681394343255709538805969862356780048362916104517352038119479238936391337624638346328199637125216309217161147901973355224056009534209367267098522519575823039105574534397132854680343299359794765009164878781348972696910910054138964264783255089155926062958546185739800507293539433809498345344105635387819214269092479471942848574441374553501129878916525943963566057932729022202817746850162982273586091785404058322046160598521159339952054525360543134466072887647460260826512795715165293043350578266651671997881618430601217519412175450789665854045548526364131662710506054479023508866830027854953591590156793525943792538792174512103321429925152711445706005126301515440944066032986080337953484303485201491752734775426863060646731044071978315433246690418743651514072313249443016029466661478939105941671392790159319016786960606992984143066243468376260223346311637812451251511854943350952157219552144149044152065921878144022134398474829373255838834556903190437530422059903727273366403642318915320801426908490116306153162123534724876925271873226894566556907538308934150534812378652296653820090455865978177253727889178464765627389745074472560635772531337603623802897279097984404209769897330204036649078609659117996144970239713783393643238554531374552641814831098987599106583633791236065084113220549399973236890983949778531007438478583846616195707261848615758077059914564741194481654778133908635873703636080106167887957075666137860631175881766366669227621163351592100351069572929646383765056414138821719605417502037493941599417944233515088251468512881738830920664697481852769866774970840007822049891003223060374058924217853294376025291324328604135215989972632348830842455129551324425764598856732209444207390406437429110559395417151160357914951455383662553253399403502375389784709253801427385116331628496424739222838068778473539325578831798769531137546791515630362943078866301315493662215362719935785388224598801011538242973513154737228744248275735956192172799713500627056495653031157605538940454353560985502575387077691075025021244121717827461470881973945177942860734126965980377591097411947517337836742757728301410850140142570237455851858705399717253704955972709496679110706136719823409910444137194528003719832835106582112084196429920627720878497875667085822389608238891719774866796773059139868574830024841910562993690323867512830088198887592738816116855727934486787257909688190061128993266884763504469836531659288925072115866373838062485447633568315760360872232262319250556638364001589959081769365641064636022229607686771546199760297862071579198687021742302534437858717187834594845399130765230186059108813958772767288294773174374810154780414710448382765177604793146557733586581358915338569657957209356173515389172427375043301060087415540085474322962709254050379670617279497125530327702753802990964568916193294865284197613683854755540765049842380610940482609193938541404493854471871737980230766155062602932152509717845212667117346168503782504499277522164626247191071012614914137028117695351250775684082338627870401689499378055257002031500337109460189269042596598790485794212524433852557524238634917742936159247930602932301151101342111781266913113047056419845582032272409060371561050706601723130434202470254940563397321515458839370898984832804466389305864901448611569269146548325304236166057376157707878587503434069692972726311174094873021244116865541033718662165777230997888645552228398815130530344427732615140015803199322602369902671081340698096310640417531552431819928181555410391086694953061452154866637153612946804290200857142886087215001732878712522797953922413725582094030411346944642631423407878457168570159037532899113281711615776724744851623098763453812719150455119635843453636943995214171547728381622960216151055105714954918941065807107051147006217996956891763972437706214877558329189123198420003051570300013614927456325224834110697710520833661239408455584642672200927015677809109794886772165560414851940948050196868445336666184291318334602328932985915612346748773933046751266140158018326525637407265076283110788318259158555884664064058788991309918474848366929685490522845548904335282954462031673405695872463384958695369882668693135483287602016723281727787173523691781636052167998487248731109193229281178297495573502225267677569773566847614173360157893140707828542577656516513008039122540362997657471159776595532327117133266230346422038021461654885651496802496080640859712270776659811164627648787267095187761344431795864157878470414029279230604856851455778861278031351925329277044681200976236073157504738025361473385417635975132674200875930364977056538620658048679668135385914044154192839883960638625904478264040834207413867865346601920107460905434251903256020911635915793546262489140780759925145172299545350870145598801987344926532786579065209102337406984303044840778341407729664654221765358758001710078934385469807923975625480056455521968450341911930076168420829793093529813514076911401941071702955500840420639705045936408233696527721728816325304364839682443369953442866787977167637532367954263361947147687633588641301746039345601902425875037400209078848520582870598332763660364472707609056664150781604447395203076750154523944279901718998068443740541326397909902003709689973997324272469113373254796831556970787723053918309962383803118686527918840198734912159632942966993545524668888673568313488459045083832747545612502074551335138080777057686634984021162658421629318805936461863644525053021804431590194064584858110825209325182999666867543314110464742866892994297046142066005077575416655176876216840083087232319184948184792777675604346992557778169376745914678324328779383994900635515252413687715111875894505849640073971628205520524202907880374774588543299120111750975980052576229639348362774133201506543836881355880368135085982196247551197543302952416701966782030547253287155086298862851586949145451019541150083454949854071129093821502547036211071045010363228107876954704039149915328815263265562771171654589785948622227047858148178717395439944000773750530732802160026784501244895346891291377473906747406570887832379024885486647201946721278813145685174760703911190817890351382722831301150913587987909727310728427020254566474157574514065703991676746489272984533580029300799576897548495109594976417281346374173330979866522766063441948434704253570084269231725708851903568392021490770111825287606635651651569707580911479248913135556960894281154052374054658591262441223656130847404621593225408297285627263951450335370251903337610656731796640562452704387951692488367926857485836313979902280602065960156222388702664297265363800098560520239901144614731576579946026727170142152030646342005193825120987478468239200579991574073699441856673492656421972901023277884536648820793636211023679168216253727276865739640469846291229097308585497522779983068000703100711782619552599456922923831192320137993199621824069384499526527056811361486216298066015803032967712029436532309744613086359034998981714066797755060188397915333928480828290134321796923395550926232056889682675095662026153490530694336559623802792355169453872734872099460476246716795493473021829403948222617187102594863164685821018043888653258205657085367423526916604641531042422818863565204963738157495951742981202722570575660351894478664026603626521717881062942865491202411411561495907305053838304274097803726786313598354534334256532619932159024394481591924620765627072854471998029705793949522989156544883692369587045360676122921343164935784377021422678652757496867131348775063472671581947821969521895441207920604602269498456500200153330994598654754726498137457363061638028967206048984152300338428998914118512135334632522351846659604807208959505833283601247163841205188267738229201622704612693509188881888863873613750774718478607887366630617873167134708809357326393552202859825993048369783903165164298611906381105024188249314963458897641505725056128058739194493125559095023768159726066452342396586891631882998893375720839560817820313161043034030385579722552482184493234779207237914176141184885697066035182031983530938241985499132826123264319938799591488354090538355176055982108458494301359380123684722594665960122959417776533347895831538570639400616496744560684682174381136336316492173262156964441725903474060357888842098396056256236030408262879782957361380103399636092237890513969422370267310250291839023599828116156662882136248875139606572757781418288190947305392691398147662320872064698083068867058428748772335245731379690534676655469006755437977496232687125875623511543180362698773002188781073313124815836214392615094723957010210007249532299231257432294528595525436949157174814336765894011490919391107247916721236020576423997480120385356992036135763086821516701363778567608589768503070319139107153561272548639874387782483633631157403803870649993150633302597352347840999215043199063353447256979100017178464660701805530376656217399885008084647678962481951387534191513155693647142170990576780601882938533678059606373920911948656689386848568728873259852341816374102420494657575480489238832428859472107591701227266333220858583607939514773133778141244946399092855540531858067435237732797630842037018336207971546495256665104139165920166646664059817472853104842078060653060422745410539212838583524718226402103294973992215248209661875603851255961262140385239908211882364007329424803066542975477257556464947229895944045861688597277022142865243594602023318748116430668886763408682911405321520672332352696503750158902371988191838782277689919502140972796998541253331778076084024488512152049775852058122797820619538723640253193134052773895188130887030318674321415257081701728403510592932074017204886899711486918851760153074930868900031745061654419619339341166836719994804192660021799301096499513719760545378983114299712443723444322742092528048470945638203484349053121975849131697312302617943843367488289155791403818864660520237996469407156379332228365400405733073625367951600522007081172420538665824916339110461637800593264078538693238701298604496973519179225117608161896332832199200190558654024462977950510517006079165587283015094894431586808691794937159624120656033302747356484748407204889732784258890539395349657671568751126226061487900510983751514082730022898598981343930491892696478963163067551344269954900746857466312385894173298239696745413502572352415109624333116309331301864276880250733264953343336915506065014490889288384190337558422899948275015744943991597855172972416431302588616995275759266479398522010392587234903099525640861665040549936798931522419330149934468027502177019559443124843527662876675729176709862709992536679244917927008314617501863424851225873537675446024197280630046237053205209789026648498841804988003311402131289364632052658300353234619310498634703759302684993647179411908608020956764544310719523574203413880905738548301829799564568053495881564471291560075157285766470578351189484280736613954790405184961246904930926922193937011027487269092963229434794623618579723316091543558876547324510279589846801550614318670586031620528320229831773684810452973611486281649832062889635724602497488039305736455131128738205293892545034249723805430085188718561700625553430795049997269130368124975016944978236083078320625975518454570946465918090246153887011769839674032752219967968234915582525797040605313202386603874495738818200498637975585691250485493019930076711617195945535684016838467097147178317507211143296415292315722247922291225754443510512349682209112383764020611589359706735205256517711424863959294463144242822558822531853242588564737458238607900557395974037611306694450500641493589300651333334568647809333148804656435657000562637979894527294690892920884787060113539566972370296272566594450279175659332145120765853845611920186226580570745875584842540692705250755186199594484967668312560754159548755204084898315585676411683616027278770456810912410171848488569450612339218451763092590449705006165114340261065068974005166814779457185619563950911433070599253715016521822709531951060403670265082333465817432825466399024929551015605408085303578186007324054871873069677160248533567171696269642218586436324040653546994267278257159984363621820063189072186161391839338207477497776925329160053257260625853948576825876353187467858387141683439130109414393792071631268921671988480524574449426153756655726457958796728818915318419491156533968286847258664994558801450672490788150506121288556788029827660690178414807690098229916659834369266203678205315092367621622489342105936223355425957433502851779455125039526139289090780707285854617045936966715003368995985720307535924609026063662409193228328616440185320133492732866340790315983730346750172478257259551978273536921295141514795298168408059298410280258611232385062755947135542233195991488594184562196144788623239331695321189091772710459336027768081096702698888434961493027951988895897798868720134432059960908015362274325913261972160716324489559650666722955644895170277487089202393018952559680793480475529043420767636562685160867244001860191829248826522283729387528047464278175201892373884727167491917601350661585872320177031797134594838136393465535012450829390973186342196702436217625238258342901598818137105216848990910763611223857562341593123479265234942197658609124440395499832022755617222587898264605364310452899878663699336443374196698940851903647373852376568411401430218085835561504537109849192683539271015806371859727005312317048304721649939113761765301975309287513283985364202820554619036169561742940258505688820878963431644790417679346873501842581661446329208329555288345841088668201567058808098039616058933347835665564442616450922775710322251249380477653713434598796125303022823227066160912466911046306074590813017753152435732372247300808034390640617244107218334162036313680452081352893741669646256056773082685951590556048408362225793194514923528284128420035407570048734892044635982574277524192663978937742174068241536446402288725512306929138214275771849141826038791823688745276159497987055439897362741703417327059786885915523800468157397406837347280762883865687863367821659271598391538286941768425507049683380781380224676661044329751920423743557910409978700062016593360577809048454983975908125055181501794759140453964152583611078161273089211973019616804932444110291225009183039727372394019868047965538820741972728770680982146740343743248425415767632410089007065396123431949586186924615343563203430553301940119361193723792943633429319713566443087039113251275210557885615249561377360492501012178555479270335819441947687459842259733454064326393354798384625373972334621922342031252256460008665296985746463275438912928064410077208524366193160012092414076393511502902495600468163501084129829864959813001944327224122120845462910986438392445309571956587693687636049256337729307460249850600150125841840108389161562809309408748144553985602559050260250316790191025535625186183941105003657688365233518206972865465978035646793680678458247994869679287798046303744915587463124893427158177745164059558844907438337531717626795422004592341099897148017738521681249296797368270627571435839671298592631781333823056417122919786573854966701429147826548566917203634840903160347353742718950277516979609051687210543506205625853191350886558906530054028556663944054882001752965250910545897107593202451525270621182764430047646377403483236713109673644190393042849218964576393723643400387242878808653093879797993171633639249255196664592896533780845627532947158166751155272338392158289084446821130785782146038205858375239687701781299668435602958997697657035416216564857907977623511461705329151438072043911700120399527120673400241106072260190933104975230125102338881775532490062905535938532682572142810043023365827807345168419839646817911168179632374823589570532736051637039385677654414534137275003089358433262156359381589490946849763427790834704730949232249946966525513012782338205781793288769584874582326241340549703673491606965251673269787168455123880431895007459312319108094903445534029218246138294700109213692482569906706458879546076788885547722275128623513994680484640593703079370429760440058734554883069694328992512999029229405643462817180592237494893767089518517746256473559228989500887926588096135438368526612871865548229248306971409797873658729888304750953204120366215293144745410385405330072022461452552435533140529824682666397158993193872828453491467841723086787979910308167466783663529201220829885571838434505392818046347149552217414563689077191440518980220354383667135625547497428233209134304759861845137983192068136998974115152772912862271371034239480235831794957310786902094560809565393517749895699432964872526801898535494190146104669580318416156227778314333259423570663360235729143886886616109863342474174381616450247545979552895736069386732675858848865716110348426597735313887910897317303257524189379195345765076331803231331089189574506371088315963392391748555319212592515761215765338625740573092805767835091514826256482869320841911276492606252647401012458758668835302076357103885710898310348555272104483609449107262566648286273322874024257258796020704845894973158053059543228940497690286619157962024851494053999941833059561860151069749682797819229977480989510738430836663759992744793962488665791039663372890505177862394497967354959541605270340582351591753781976626583364863835230668293415888423351679524286139943032826744979791693878323036929232246406483330024000162391195103541148925382777762591666877666718851617322497797958149656052086650069783908826609895863455936959411302760238284900334399113825748932671074748513636399875358208787806613259859631137005259654939138312221911212513571732122483049974115343436299243108027746652377242130493762904831770623037894233354044702889750164989913635581852802353995712252543765386274851889896944958411950267059075574659260358021557187533767394858419297014743223807627388722514346947237566303206158749181590513775707564421980834255946154709730094158685954005609872723246745560033901421914177551736591383595609394576816413380073408687667688978895435319340758141667788031567658577690374478399922639297706212238782760354452236883629265593619613206912202712063225998279721596568499354832338687085953825253306879125967952215431494119406905115465772590050750427011555717574378245584211231830238631501018246579388318183216104186191223233012285601702199971955939680595297842628722441711964828775340703006793547293964102671748968935374242888452623254914676607604281327962371601579764141891411441730712637149117249793620120179987870041751999852750561849636694377779795197213534084304363377475638512855765524824370109003636790443713370326972520704984548743828161315515134482252009057950922959808123822117998331071887483027147452712668699355562568113367817985110557208656957465968010102345864372763450839094991785247465881247051131867248912224213399941799337274500033946276020800556366722101462576195885646421808512740275623982918505895602904808033242961437001888173370631417240006977003042605642911902589072936556711570505845267931346414971854471364103224598879887706828379926515187098009487637153454981269725199658618688250780556403102154133393926704181699920231318559056189927492418795421845517502917081953945677542672482439866049112894281234891254691869621731631391195599945134887953343509252646687279164276341183429726847643874373956584005849982501070066991937071068935386357910500812315970595352568260323468798358990783202274139174206873648178728108311160363549796915264814749919185018078404356142408924732293092123200328542463048035083640907955691936165714828410516910413266832997542219947177246367264655036652633627575323181896406228770354545607572812350775305748966841752551967476355056871557145562912417729717411487989569208892449215149380911033659934896700017865836050012113688847760717399983177920033763173913674753236545922129214162911871692863680829043635376655173304766558687794153031588245789103289522516881951244419989363765637947694320709410824946501876790183693295987205683213955055278269330188568954733034963892963744080521763913344215196645063844314592339391672911574319805968577589555681498343380721614939460874667498043745546879057962979372301737887325397543760390565183611625833165688639555478384769812468061520958364432831378777243378036848859350773800743899553149060792519887670806452224874310654066350166368473241038227432433298490125194960311138907820608374769400677874492415933157714177305741169069313101354525048388262433121907421763039895589404676786646372059676755488856570179277950297719227207367001810552098525990834815478362788954319317889237143627256532688239633500980946724820806732694366712219238919602949761797101931833837386957225476259995222885070681647083917565362921505710620076763676372143772750235394310002202046103564508594410519094642853643713615481705373761961763740122687845092416968014684641476872255514978537072406685455841260733587866747112166262089534322982974751918538357315907402454282198813369418250236110603210202767545782512270285727347468060970572654087506990377953960055861858687057296013962149291873391970755506806648871138230779124970361318306480026499952327059923479805287470356523019188171805415642694133906480465037533558222316508742426091742791872845321189115083434793001692225126977519985558086215248188991435141479557779930709914972713394643423414043658231345170179678727651264835620280631101626048284209109117062656031378678501540930657061073653008552522092229331366453230830742742951743540068700668080754091228495700121824131467687387329146815527397756321052925762447211712829901741376743146704191213686996653486359000964561403856380822678287497862227584314958795779172151251262761727953951432562948797564699944935840357617294860672975911153865104888672083395150689517193938070203047380483375134807922847509591944410140410363651790623443921534553188989289993630993547616370533203439196531398663955899549354283394117727306915003768196560855729820002773414094453931554771522997490480670537326734202460304407028555106532547429799927608718312271331310651443115371786880797011638114673020640232409715761451578358121556367119220998145016571769413939580612297455601781426793855106123399310925654805715329946099468651328399877466966571665904443616188014691107943008207379491607613413845002974414112140550515927681940895741183395180472416513557310352207945712510249481972163742031712094832695183076256367139906475297148636132253107611280280491849159459168096527761918924903061574777793272539616482030073437073141152350738924617313984110564019591561489653862087506246536228725717999940596155378770998813204437944102309470786080389040477765032047588339847206966679208812092961820203417016082796004675250513116999474931674093747885264267902772098912001078026806764505226758425582921572032291536218473810409240300766571664720230652192776466115627792976916546450253206121095361315619229001477822962529015960010361973280517071314035666618406369819845298624512689128680570146076995410618130736891209308879382574156743167063487795182364525502731895904657666369127366905227084129973270656659944250619063537273804020067934887516137031636611253654180295626177446683390697791365760575227235902081797857873171809754001769089296886410071985341705119448321376710504533207232242669045601778223696317055827756998352129148605733117638480931289509963534877086658046527453013139603564818713181057988000894442600647311399907055218677784035061559004786448514671192713992487993851079917059855233864744530239684898385748697364779988225184711282760811563643970941920628475219163975534423878414602502488497081118196430436836630642331459052137993923820420864314771809257423174348684669039494216047450686871816168277752964108852429694734314274056788598689910764057254921574656447088099459120874692086913683933496702522383842455196322934710372052484156850629356717231375381001207304170069892992722809127135856044846595610131946876175299716139645830630102959915413409212752789784654275375765361597482514683085551918573236381032619396317969923671399749639659778755424944245914828510733224608451770953299739716758905680762105960676779143481778349035261707353165059426687868685571690100400087894403966749124227287875151108370571731944521954647384203043997869933336028434466650183905443153299574234510327341357181090339278905506237146859011889775344140450143868923094363788996524665933902515577549337657612223401399322504141968381517861052856877478684173444608521015697201368509335665828270550115840265291226991728957539280561628674619015690048071871870155355728909773302801140074635094818937010795266489824922784188820789847403290694418608040512820354903056666000774704834569098088606997334639474797609869011584037766726239491128555533472828845451027557167337252517020560642335810101823843032449055955054482864127080284964952611478810975389713133285974623019693552837148896303817766652898838468470216500787568446059399475392872815488066577667554339879605734401109516555172784037883489289927296652825245470104872961543319682170919194120897366796189466283087805901178989013486026902326659943239458310175391771674015803901841945216749743431148196917882793579772273982520392549953067296115048603749206934667756801079594957003947510973366978186575561208647296288297728195374231040154971112317707367183320164733881308152391889164802946442601475165144765777193270838449145708432500517200354421612539616805228960687926818816339379645304665748965305859238780503657106612686579691762103110957313274030308628084271376030372277187134444892796823055921250784122761714710713551741958546115381019280567137362519980028285638834740948302801714881359416499759773743571679769015365772983157046753418294292998951038794223733714049431919748517293259736758866386628792358472551829452674898667460608016691607497873754629767720712480562510909016392181976246102344323222763226930361212134039637136833094075257145294631065778317221227875616677264706881604700563592718078004412334583522757661790146495368810262966943167328330500396987734471356340224218645044269305888172936130965599622890861245034823991108298988219886407348890537404597935647936939575131921456278256535274955163842850883923983852953862236238760280423811871236839175530335169257967240289612418982041907794394391268112963475135244080823106729467549619818634398412507711931988188236038108588457177293429468357030586828182226443298958679753417371472410339582573465842417170469071344920847559896700065730404336903577788781498723237786651358914652555124324100660137673825237864046408709710193886153147509492524960850625115667547562099961014529386846072181862716541214241642643050181178078533716892801457295037703197537196685754823590044740991388250862703710306120959711876965824453494559378540945394506573916171848316063636433290317359421276491143997207732005075344443161833293466859454057137763083470897786430210982952684889170910410934894003793045514170674969862266271921491498981316018716322570929303263856078701595059846027016104388995746383433740963029709271992516594138505613232274087195017053639896066455022987356010901613418659300649688624279014781354716788509497423700572554976999383832575934588925456393474996698281805820912337698561322858500862042485023616517353129207268239702994870205198301843611288846385224195566943781521329748416072041225326339665749599855988512016225544655773374213746687761228992984510626873330154880191859793851911767849954649416251143934667026032684253247968692916385898028522743809334508490344095791618666931068639995514720658175797699823785458149112790001520263450499539275844405894365306532417276738323168213598924985676208504918170816423577537951417872196019749999902127023355149958585697534762337182115869471598863957478219267567906691168904107640099689024561043201209288415938779445172691004036879899884559131570210228249514310840585204166491234293321337339507502363532034656836906816115417901675539925839488887835837923590220890311419145701486471193143719392119020900766345479180765544125275164570011172376428497165633899583948475949021208062700536091663425973223325017557025183905390616309212119055904047591605057600020901566455928041715080474912031854754241341768433470650156724887242133705537065018785664594265225857056403974112129906048116403927851369607750353457150394616849170456297668272394718632658105428234595756868904565167911337290506448008847138390886005085487781402880278010279839782513094221497430819415394601537190080651289382934675340682647434838776284043422250124573840036074536376100810937572659997453423886287840727830832706456756051883951491058718298261499922853275585880541566572349416767110869696027573401484039458962624867827277870867644105304567964678755624419515157302729617970136070893069960591202686005024435326104490178579729732976305648342740215430447646778522523768010415437936129419549005189101087845647227500129429268103496738272310875904579574376398708196046184268482425042981680750532459430129686752247712696002581170338374679782965280216620739306852329522911954235502936459821614874470731038625439297742335949091233169030938277366530179851377875603892702175647813026469701586483189678843626523561230449913443959209399887791030123115593979077578304644575056582856706972133149186868728299753877499970411194116960738593724464788783592111562585214477489126805752161926494925282065430447493468498942151555347546548006517269919857029053048845876065745464003298240574574466389709462674012314721768106690801265031469919829120762676139297659860027326468243581601950233832745814132950062338969095441428259561803526932200839821733526710499916715495780544184600927258418029803065584626741475528339745180785301538746144526649825796535482554078502450476448814862501242862423842695280758795748723936847705591223245759930173228343097644705556028752918177657540194576351968138511103567486411319555665837012647865581438774749220541788842320026082354597032578798455511386819655678106530536899408070103830610067637618783235697305420174901797478601062229353362676594224652476402151636041024396962630149495570310177075598362271709183626293716718897247221102085929888447511651501982272580214684390662494306560339569086183229288022321504694442810006903143252007112786194941671506765017067325044562198235516613998789052446315640044472463369375116063591600056128426718151755908876419470411434812993498149500676421060392396882707442633712566727064469873457459123510641750655876738347512414611657957727047057669217979088361388019246776135688117825637275413740086145323799394318971863710395359673148165913398513498399826259682268460289677379229982811497963363153444104888067747151883241974569126637495975208472783612214350160941936009533507485850926677690567096339654984375994817415398705816553761137668359805188901977499594476652491966626154403427007044540344220969918020066761285907251215229387290915605878016054714225666888802559408574774717332082721599916688180171008629210529732626005405592315295730351342896627331138567779545287423432176047195561432463015211186870285619220335201121000388842962804129857899140182087495655982513567865041848652094679564525554237862055296857251413357222467429672181523893466046414097839343091793217797922056880400876922990669015326179464525980734953467133875483380602110786126495574824655668195505497263805523530291734135411614300306997004118735450261868856638730275857517231495490252249846448269862244051599944423373064570872792260468199129836523468947630292888015273785545575862718733058633481075608345477014446200483733369911174572198202368925956131741860730672999294022723930708737450567869786404642884412167769930733136298219822753334230946543866638794664403073950908565836100601989329089569116365434592705505521762079490694339779177144592652790619887889492050077042688710742568426732278411953954061285238024801241354182096978067754354078949854276940147304771055451541167975441281703615597332052724415615970559934731842064915060711149940796002772041746007407911791217309723941445387331205982873514889551739689883933580925545864983212898611667516335226254812228714461241757334972989321079661456325435819143340267662918264100525820134134132053965363746245202590746747465631952269948711690159376335782686988538207331199933857504088731181564658383340689901459164069445504489981583216909245724801514113450789208997952728911592881473281394123572967107223484825778364759299195902374929795439619539283782587020722506907663202612705918291627734235520202581848615296884113730190398049493877349871428477108734732168721491587600183788314180597721761373108504272433494374881566455902760012472277307236217100298146155679968633331645085795560449247515580769452121528332875075568229376197295007939673019483461259181793251892340681605794132883074812710879186087382908488544178780143227481472778904991268358737470997432181470542949859632761670014418799838996609049321085598115216293392677296354426995872752798383720845947752158892419867523859861758832147831503724287159761812556566061587083620308784052634336143395093355041467263818672320212783552843432933948034072988162560084649844573298568278464423182023995103306392485358197924650407899465024794837819819130303788774061972346356720158200004994073255581213268079712311462420664354531179261576764153725979219959936212618732695742559091821541988360521647898184410623250478607859363635333697473520010808110611235158209588847872264205522056294272404233477427164535042550345689755962200861733946941029102877547517138453233935468679661867722988482435542244124743290447026587955975698028137265463075319100862896347159270669241803204966273722857717356643584636094508608097122204091849486398997964396097489177559912146373137226646601739573972742121147065271584772786330301464376838499427659694137955537063107598041444989745885436526926642063686369764116157540601732061768474713344106872553995866477257527661111410249253220291992206723390141787819873613278050264688647065473496923920777543585996532252780046209258611773112614156134605295235824321290980032982422539417708991970226052180942638642881886962535749650453195092671661384583883166778314423824519254304352317912362404340289230934005687042566515651085466097321799086398594054795795931377353004072533797274533500579823245598807611696658622968359352334250226667294161586029351061391330038444927993330663297079682921661006580815999770152783939749364709386623021330991031514465367188717834016915947768839295822262828636227648408034714299637267377571706468299301625714447204875532062475604651535339028577554231696398804653509633633098549218221192995913866205368603475424699896276657172138682348578770221112840819486795615863874404376857987137564410282236872429951283104120476938583568465911510123293714387897049947553490046257395574036139400047405012557513971400415042886206229661675133839589446049309214493695256529896137211514543136956821796452649069975506044822679708777239567077258486538302602914304859962997585065657690115251728343372561816235209106342642946969137383569497588683146606908280065727449015772726821648643163698296933127175139995003831262397869176382394499992998642464899928694351867659812837394051707591227248208088306388556833602883856017458134878682956299019819350849997053294920397478780808323312361683788435357848107794959920194466515245586616898810586167096518100724364057224604369292905610272955360749949657810444831350214539667881977751137682092581309180218263529976365019731227126245088468847586436740965176235977681853838483306665627584081291866900308360851288801778654661089657834732289655138399351700079485325063821008289641277776593710707050862309496514540230349557578219487503483494266378576959137412882578226374289944578455606367302339789732181730696861783695520790434053431102362053085316824527559931791560890426634623961125204336599563326984753788520601167992924812794254679955605232461833833763100202169843211612537842996306156624900441316281678167021380483440416681490810551721598772833701154776458219770708304876085769102175613283942870464162226890382575367699664379337105372867352713802192985310415331584628049535270390127775325272494505404333595064649723426776818140148169746196432574707346037719673374027759099520603173433491292419223985798404426182873871617221960237556355433793966525003422339984857748690715596775543550440898749065432796673007767318791716478759910905475201572334386447738281807148058597716490347436955861008423188488759943871827157008286409962686519258834089456528471829248528292492927636222386435836494904760908703525209742215860390192908689483342145275804058048855917670644044154536339032318154940019174506025913250049084059839260222234767335545028295169792795441280427256820501285707909760701343974022354118903033276010630909827351619779807020586887712658259200892546635469128287920307926629142554028783269504768700483683962158735328864400847634797625580603362411587721932855989498308690500234171181318617245261366838817777097794319747703610481859711660979390153396428269565985632503397460260367460202202007955164476231999034675384510642102284666020522303616372152980964073293006296289869344554909374765071204265649167173988170205841048510913136850364243438861601290148349133418710239775029913111090577079275010425418215736912014522566712410990265759199794555721143922905070787039282877768159419220161580998303775750881976834645073849676802138250267707448286591437609188536495978730542755673003324685823900368016580895097248175070273012066295340687655527679652948026883181225162780823847761937387701802637176440889448607192812012734805081762173259990223140361389606550268897355694018962906367560177298195150986207696176281994952922173861671759385558724172893994363727476262029853808662634741345457165656729913327957922523533126687982027732680379585704700676782699039968633282433699928495181902177475881501061103295045507702581022019273156883476709924012613807604712969914167525041968529396623657016588240322357814775009228376430551351590243553024665261303580048101459620445560563898376499057900699383286640320128448979778568256934966094821806104821137125466898576063251143653739593912073191342788901820276374414570047394813812394308134679559847995723194566228174065927485637521883551929491191700651961483766113220358715369149077418422481668425055301890937423001452140482098155863838039430476871459931236948296047194341090475584496880251141556615376053978511948282137177113755208748193494419114946948155527580170825245080866943996816529980655324823815219476588911299610204404261635286663437020426414092193237206692628647593883985551335384811703570398546970662245226649745999738300461617100488290976688062919735963661795475797804708506870262826852885005098059486609646111390587667798142982879341094200929803782175843603958910535915563120532495947732214995033642471428764838667569818164967933334435037242776467534483780116612109983707133287574273739606929869389073445231319716156189040219038650551264217767716944476119707579650777363176649043168486875659918359510197757315159346294479802252600416725973425240211444741996716916918801616969855326721535432798691758461107357380372025465185802256177845152392086156076631585672054317166075478578513135298959202126171545400871674884722854558866496262564200842105102633850122574062557054584374627339552812275105489205051115748194327139496663931046975158364976870917050604906886017998313986022090926505173009656732098633741341575741838489869636328679334581084936146434548191996197112141526052020062913700292738603570314917832585935558512013975307000869517800454657512818370790969421943392824883052724584798540930373612410663328781147234382695193080222550800056723256257248703243517962047002272387616403503121679196846703091324086401792081478182478688902836078646700794737764177692231838782229946511869689968628019313430601475270431413688911557118231017754461708325805767739657183878108083518814817062907575531715960946419159387676646930903218849064699720028384463266377799415547309614186012464837450805709044235565041001185673102831942741540809445256447548614161122519798215245434345245565367670963910554413316371351546612195725761381479923994817072008634475636561875689603331655412885503171041219339592624656531116965827787965512970487911657796283495050367410534464944510612626687275078154235487448081043695910591261448789290621403128801110681408492286300658168043630173830109526135089051952611497829697975130131536835922109782011768406311345760927810051082635280585828906496940299202821208569770724407614689382783727743764821417569656570949851213943346570721168300559548956579391035116897992709784613741380452943909024992920062762575229831107386463667550121293390403330384620477738341442533118888162271622199932009381227011128558399171022614265823998395566689415473742145985540707059623173469856550025691417526960199487603100799285911293882156405796544749493616422839369756418970626349171547528401810122317031598243591872101424244357644121844635038639896610567786121415218263918000088953715844367710925446541088748955618853669136686401186356571658209280987776181721647556902207791768637826376756852223672357913705759611626495537896135739396981881159113309806463449500810262269499382424237814460958196208787349164831751921632320159581041521761771820269982719400963420801466199263367343448978401643183657910642975153742011459859584524870130375303935328833358266132593952907144385838301338040358478851735301300525936300771534524098618104214184661423864508866077892015525470331173375972581446973108510282534315757150662300940427198132538988281944480955834783098540179326763871251173928754254092602046544559553701963527285325979139974206635607199813460113886899990338762717280084667000628108029659148967396981841098572225192110275525605617070551027424775597630256841231997583858414297376428144937470972879766477944386241401843451450000078670552599167856505883410489351436271950774975436797866770044130095708314936109418137206368847111389386668472625479802384768632955218231948417324809456918503300217938034300782465126676732298048694488001171516889470287627357202832518267013408719521863306946593879854874936633405045567271527057931092806095242713350179482623319596106029761076924616877410167081959889026065217939573461974234210196352060102963094189940095755053000851105693155669801866279225414480066645233385010303997288589253840277112157112652078319753531589575912876460852882867815236825214001363710246691759475052334308655707308843764255436378905266868357376027861716959106999274373679479364641818876383304258102182979264209073696968634657414664790202351099323065665875349333473358207066764282781794976524730467762548650783933708134221577476527322101420981423634759363878531432191591548452906913801936460658726251688508333997220599397199006804931713370965865401778671801818473598859398565717636447012931219510082779264703388597491628778514995026913695202949865665873459176384405541740353469095548828048435495811967605932778913943614292076265718356399284076741348512043054196084153697959132540352628728046326353967929732068936869207539665489198762333450976115668983196347262456022735917925220183291021348857428234589467787610699186474196127350660825900601556669362048417810264102062183414613614336603365681096471188412367563152843163660831663778123154013954849783755741708492472728893864898162985690063419806312389205879244289669810123704398576044487058482363871240969484441704411558639139377002864107856940081714799280402523002625362173544348616530853743049884068703430858666151379446779921043797944799180428364574727995794130551896276453458975946941399599322945609116899295537094928251981695343155464314488673957264636255551570547246786221439664179136873286816277028395294960984253952495981530232240275643411570345747522767154807387540152637398692417460386896948652138764528489301573769907572158775744289437114986722152892722165593900384112462890372830221888839381348929288706747310256205287125710262160967184988601801933753947324110976881336998561531347000477405833916465102736412728779610716835328005427378204143393776420348239216852647273677368712217578761521219611198417376075438290134794166856781406464828717374731134199050583735947478313275740067406098862196944657825786743709406482844927067726619153562013188068592385712635537441561788108497525324637060516776122563975569998802609034135767290327977255814432667950988237336625178100036243471312378063224922668431489873511797050253749730530114564551307908156527172455283283145143510761484603284307496411673553813789527928609319570434535740332417316519621506150195643236351144725629086722795830719957931388789268769253133539346250375221811627885081130839704586653305783153487272979509842259645170498712811087265661427289174985431690732030600575389321272941928717819831116160747370099843239522560270340140078410096490561288474094142839093428432208214719883989023272946343685578404328254097687548799110335340189945507894636809430934669529722220756512169618519449604956582718615098883233324347668325096565934021933776228916596414436919549803546610026483441201501637073015634089337106572743814250071077927158009337756682390744660768535189147416314304908203873246114101508959293978974625740846856592793953066588818784906863146467938784910244757464521998442186107965549808384394356938704781464048046965758123090929941488764520979029675390575006910713750641213625324305838825755906140105794031483329126480992191785939481997624952528591359060680066063751829331713862529294968321067723888977843797877644332161485755485366724762187091385162796346516043136705807472088401319371043941615817784277498274732664133965193463831364082431773024764153784531142749513895456393089541968511777544131745200567366859880189241277407547613985617834064335356322230911233013011382018278065102852598857504414035251839688593046069961893171619965711508247140627503602311769371347094091225608571676250701067281653834703170840317666028208401995025070698675782809007669270948783371111683409981429506858493956756045069907591628658433452115184794643056679686350408141653770225712029100537151081195385490187290580486501414140338996165195916669567880136391379545422335713490597301590815343021763918320272540396559690235508447983978797575035371677992545160101459913480851091980194781291573859908428714993302362097799488347604928628035562775753310769971272498097650534207951969437354335490833089834145703062629679747929239701084098621162833930261830088281904172060605190068683766608414550667702561643390837019424794433513796243258737799359642624366520020878490998322640319921311903070990832565624140170600982491102695333442419539098439125784604061369081710843394783181749021422386888641969886197861337439549178326023099916122302958527942598728626702248228529064641667127835104546235225911912567217537978949058837276581354844822382363123767648775857743190721762400038296316731755873003534658066147797208065300524372078959010235524584790359917338862364757801613833238533713265512882685769960274285017243575962744861344993145072395805217041867817759735824206821221801455629517284397414377648600138273882833344642114715691872472396473612275176252729383817317881745912722093215814766091289076504409619975039479026020112148633739501850400954890155800914912894985892220002140032943342538170898239329713222330056913783088703723954344475897779167850791514814469460190991915500689056325362999340687558168590815875491434589721877223910861359644453747834710571298697604916886191911947171771923942013737406050671757990651427524346639882435057908066170295516128664834094995874977317400795301240763458516570011015899079053110737961935194165625759177785904994947512423184319310272975223633681176539273965037005815932214212762001546008863027423524189259511596738035800546900039222258675425343203616146210455345837761546894409104178845155932625344830650613636234277781611529331143585660951860980407577018343811088815528095404506087370980885184981168854105522125774307852993478032588081708115657126601776969910239825521187771510373933371974094247406959420627279439884964946020711864698843322436977203922327278748157283801806653903201654008124606759827309909809863311307260357789431090617447480276757403571015133898248562212742945885664918086215671844434912687572210978938308582620411116913293655941617340326920145510475656481226802414227992654285384546116150312730265072239486574061573816611188420556087754558657770356961212983333259280053298409870411687622026388394134546415632612419421173494024632412423394930790402934935618521376204496005858863009658638548504877953708040449420944465108714842102832343868905325993633171889116625066644070612765458415597721363787791865755959250524287354176097701841064000146711388914072564894794157585859051680911653720821603786717647610540369529282379768878811531930165165093106143106535078212722660285028625362993932584815188686744019961974225365620405357738714540137785939350268047118756026855376767905278644591120261975905835444884817918043799377750681844655776475144033817195019087637867726895726586351179597940892174801084989562607288873169926820898059397231574402973773014977789399947416291511142128140401314830109841029176066612629629225108612181630182155692812099984414853271306584471815277004543066747395339930768671199638211214595115717707179599300684609387938518375163399314342347105611590932817846720575929085452575955751048075045117118767082824059062358146133010174623445358378498489778649746558588413947970690349000807460169745111697650739505099244019191370609765685421606026443378392412467758843589849119751996692183877916850846096193436863647965937622308890482211145697128129604846252511372597566702132050027922528553842683085248952584804928437457372608984760326210701219460840778533233951585704989993524896888789588077945466826213868729623437093659326062976799816459404895214938651366365626236608437561496780733277266562633467251375327648781107169346360013591566779810646293564141342745801297829155456370138171578931481464314706414750492071046899142896655815241150971849290659247905595695151096830814779608358883922356634084583270625287996944127982111996742695705733807584424278617500954894938418342747379792167257922705543896865572902340868931556094244435407238382872092715390307644839610642203488865932383712245166404100790120548624572566319257212153896585467649731191503030170849275259604461169374158787126943305295687954619110822563943353038958491650635345140359885808784775223827602923999899363376281660124175446690686799392055307480541946504230358751839806186406865391908129966539834054375744710728616776452500844038468359187604655046990050879938461523601226276918473734921873521600883282212902497402957853663923424437344987816434963547979020926905158774727741464940334309100903023536656824578676957069772982622289683640528405602533319547414600637499121265265541934731238412257460500796104225178116669760964824394618433425711626443573109862623176258676666999994519239522869183429994809173381679291817497968369961754496704722015017960657807836870807014062259678763001985142972834468561952113034524654467855678109255594357875759454102273081180963104969017153897703243360355683073719375834349512386784900667454655790198079482398105471447864494280267544420470158571947172846246940707692718446513604748398659019206438062619704791637300020799089991957155223775610306314347040336964255107985244350164307057754801949300258235116942180109665445745335724321212053424793925634959545886467475397997785068983999729655545474048253514794049364451925768245555548070186020717668281074047828202161407297571391290497575517657807832878383522686769571837573676261334785564172361366599027098704606052855448707553564099237987656270040503126405665887219007464715799089238366161509718736607455420368316597349135751586585632954325150807146026322835994473736123548730821525757069218742635446724678355304801232442521524032238482350838557973679527708953854157477664939930142922841213389131218229212678488835255612942194615086524542838825661304075104814322343984631304437821365189027874081115795567314855230058666009194300133764438071710393905704327260909595245611906122292886344447756218034299170676741207016198520821610097320663206620442714380928874001787691200396315289279552154263998513248458658317368389127303143300482736385277493415899449232728843658873153052890968524778829605193845809113101848421026918157994520013157678039318271262828116979089626858337903897343844201648056369274202293843887697782189434983879216104739747312686182227743791057060945809519826768891009042676251935542484303699229674982052724282194948024617322930323555154948662451164590234348949739198522426413177330422822088878683117192923299142285665961804042799220231395135446718542212795691632964747816499412887656442622434442660056749016178338678271834630724340533458159695970885663590491849095444668397943703162696486407374411802766834636850139710919180056350472660070971776369589083461431400541429569865765888105784902878041541238021067857244876221456288533504177152307345408299015095309431173695871851451479465802514548818669113427910554369710174473961050848541639639239506075063426386936954273204473333941407322493837697149282277261294912937662448479757998880379088893430382114904421510627888550231956502651886978772196588070155204127477752503187195345140128265817627465427578543869034755200446561951857158844687313583583408801633293020629494358699075658487872080491187853211237741356054694278932594922018140240074435238151006424775911952705509750642706128544978380542946877892665574050724148809683960704343165627727890977671937969266572517608424462022159953394722373336582543154634370478118821670308955055894222111334382098766613281854452662323991024687461265910139435292282923988409367685732386974793166192278007386142916226209836972899220888932796473442359598481538626386859049777025815141811163926218082651753555294036904579782187935205453856698266711510944636379255867037089852207619341050850753261637518862547907496408016121458100885925039272369734399465770698638910027094544451904206716282302221154102125569496190266146026429078644567734938762492209550212981683121984622045322822197216205083802318936953482349583026982931482971294486796297281240936018932484024712688475847183093411228084670450981793690323233903184578924274662172393689614672799000329211111688745617938267237279475207297501690702227585914653094757677169998546965546771255177391911699988361353566950408742741651702405044245454488140520485208097753104818740126528158874500441735217821212316348357773727312173395629506690679406158879773304309294066942248830069195992096317960903174155535690877574554903672577480510074009514428879912001692327717561645988618712639933954797109148789358087743261017632489301894868470280807824062941635170928043452492832889409371964319663997944359925523472760879701140283366047674499221604133590304494758735178726911354993984504405766420990664900871530106318723260965802165420325884341127951191780949211166478662222063554480697977830703739625576906193384753668146766937268149692620239537732583289659090533706298771709332486242297313910751789381455288158884694710822011516599061730980886231569600139720353415594168837676370725500497565099255252999526847674097512073381146463919740042325463518295528398698568149268633874928069568061356442863554920281631178884787813925177078104392428604880288786369448482016255958598920021254999619655146951716029755358374779077141790459109213622053217754013279080054683479593308212178733276974291489283054036473035252383831172817444779197128287022546211042725214794170147667288728610846916694952514973174122005048604574308359341058241279093840129332782892388038456628340670627243915018420469511913197631976472585768967467393999963691771781760728798977351769107102862438768369115150832239699961216147596342052686275755701167916735311817748001469215871677670817097714253299789327816381799260017588153047710425827019954395953562936695467585884619004290820284766092936740933340697451426549346328238828621131370363868944560520553128852973856689946311153186126238613800711513514895256626336481206171674247661966999226115419533210397584277014563309355190007829703597062770544002814455853022912610273130131207189055319266112419867754678465505876417516078761269957920614274177180234454416982466457863974137296772367598538531452612756336098571068576532861064010764373864761701246495972360666609031557184331927522454756158904719066998155877675564994643177092309691676687115285633475200115992136771697825833067096870638108500100197312988987202737503899954281397179328015942325780649587950586529332317288399967794477323980252470799070128184610574334327881160227199060114023265107844327417919101619328645719067001380206516260877989573827770558960732282058083235061320976206228273844589205207745954263444496060947267980096780959219696383776132782866405985271201630048698719377886007535010554710593841074803977570516655238473810313895119724240299703359644211062002398503332931826014958592050177053448581153644361800264674915457845700188880092579517430024030633503460021667657647301833274253674587888018932899900936599423590083839487380522516698539798885939966714719896346132588740182742036865549974885542222491361277406265661852980868406116872059158759296233249173704890889559756066633946032631455687591473109745639983912834065224921160406529355380662184494205085971719021713019512625274772049357083138736814786759985060873305338840499874007288338000040557183232342570496970852985880025137067506160119037212458884539834825712257859129837067333457870600676473368837012603277574478936077902708559067723046932500970954073901229270516237419033929587442675707044401427775590239099875973221400586797707262989133123642155826745861868210070785494195197446365643278516068276933773567340541576092617210796253176226778472372687482655749490552442831543201675125088670554478499960968440725396675480020139460983587602227544930914580704463097758898293235901894483680364431288696328284775597277200021474822565088215525912244510324023130843507526383885528335981922402137357365433646695015090781902924232455849296116931239744070243527000223943873720724489501036008772796020700130810033237198438164603906674732226107958033694909675279416426547052729300907814791602784045364673401077861673436110143690509163568349640338064356015750717618287875347129691231550163912873861960889398987605867567652644781346722460615213340941421832190359914038122182238700415778909070447168456342855602195692637596167721291006002512854580997852195592594509984969398932505710510855714392326434884806486352998348783274277822056139638722020417609285878636911702538472506640436262914534307483707762373384328539011637621852754740396151043973163109556582956368649939688252546926928399377459111554745951266530709848704331098157818424157481196650692083958478443704451862782160925592960997205493130983550936196957973725876187559156983434476878395238723270933120231441441633345924324848149440777410536355214557043419632242377501470259417626934369061994500326202984783716340180760970812253798476817731663746339122632172766563057917378446327596263447514568866275092099136194853928570972998053133899552194236466515593323345226064323938446918678389629505965437110548789492435476485440366594536654895745743920930753870721441105715529513451630771527464379780430319726728297714788895926561370304938740558770526744672204982899288787400126836874010909909471237677602051231002232509584760196838849195670708155825071366431214667251284064084895472958902543765445138106730872770943630632993591998601068662569255887859555682276501887247872204487618448013369979843027220326631149005445322087111257610646390836480543572592731768553154205301400712334224982091081310285493156137033264669104397386464067757233763829193060763381012169361361049496914180979342882457465817772641011914724037084574399535629741227195702910546385709645633029567674048774896047807516772462157336078360517413293192842335804280982179911086221013148830183027500468399886049892838383845906710191242162274030039079760632733979650025485614938657260225772212113031281408387738155495939361230847899703026427126989255259914305623401708608985677118230289093332868038256079256024860684064363378420966109805959825962749740688166124742479791075917914696891458756701755258253822589945220413258500843864043986270282654374999027624998610503565153135939105459531272140635422525239687133788231663526703819762210570090176426453182097551672837281999411899646345903579883932114086900164952320836293328929122927873384409107674317410733243056924891180762603930402319674975123849868459163667655479575651405790537468693518696322080147451946415297699235513768398644292474823307915184130703108543982187236905321713441655071646394124420590863530725907066340620076389052514310640256392086782424945301693795201681656516450954356200307890998223964259889923291572246619820902172651904726696452983880647215225531006510933789193196687360090003932666145013521990712500676271176953845168700263813862892666263066673810629172206526744857008714441590508541726605147274139634957638955713651047163465057010901893538816792610403478434585077505533830426506221612721844837701572815150853207963508292689014580411526400037284709425494487017169352245174932238832224279707938543331898969171878016277956845175627576578219448943991394870289427351561975292626069249787404496587325985594858485014772544034403188769804600253054507456603698975177543289280224525885230503561298567026306748130001530766422166788597849678053668891760119246946549002459739467691258246421482353936921851236876619626108206129559384687296628438919400618455005051283964325785768987215699682458761093999081830323866404228083220537431579297075953924082924917296713432563632713157745672504842942072545060026709486764557875395630194597972158905148116298121375124474682678993346532207058704595271287445258804368290523012843834800839183932164467997272142639477269638000288167889653213115812665472598224136729262623789538224132588139982640287184767549225319397874556263869643821110934253517186394055882182150387834253539766998052264401144717434876879112642959200400290230649007538396993120410667086489919007465313006453795263068437089063496136305306916428432626347827172559965394826926336427605101911524777896276212248715349115318094704801150291074962135927130100424228023381255929215736509328386217418302885223340263319429057930003829480603093568370001942516036970051873013242404078623404778102246071912050223268866693131160286788695758017298679373282977950906565511700684514310536156611890103906022673758066869030539640868133197216774396850589811226147286202902490361385293912066660255239859654694798478022852904684660231438867868075851320621662220916291208298343569836177827266560238630789097654989747636814760548943328008121527690886722644180216439634993170580092860818745119683296489154177714371579034246194664744436692512510600687865614472126490343509944711868130406497408699930479943821425159235262089530272729046542112105140827022110644353608420688371132985849831851354155097289036874774100720255813168672899438196499878709505048953093446036346871433292518034527127361928054123041059786463208597186806171728430621704744065204642205475405308757557026367401409739257168220101274893741929195051759616924851078630653176550747780750867133973846981410724908900523844436357147556336526904925215790360531820947959969333125970357273117650591911114782049024257462640597062441715381269302011041053724602981248264334039113124783800786569580055616278311922499679414491912156831117494592992297258167753161578873584932675751684118214032787008799905225445243723458821700112384157991592847168476247594041123262529324009170601433240698916434940921160058115124429989063437314013819085578566163933638323527905303188430969314101214971508685996196379656004745457925078217310655398174293212425432521636725327193064906466928071345645189798138571262288743307690803878075843311442762420055440194711628314798423433417683229678654531471660782984758665987102360656836757632136477378760012880208634166623005153048803046033297528680579460488349096403275510685800843954686417964744020977584027904367152048191315962901866410607804661930533061827544301452973049999849692489169792224155294532070155122895215446342954415688237848546078459932731799040505752130535041381538807753421339917144281470852359534852591681908686441291384275164541328371384185971433992461925736296273541182117996425303133690255878393132010089843379555189846707240119613178192385835125955038331832994583206871616966902271891714186527224005545950957093067285215033365723406165732984600779464974477901861850093501091357359126298554870274354806170099009191959944501104029799230099058465985530997100369407022027103278909551161215187450960597226407764738868910486754812143427464932843083950110878768176072817825637051656063864894338338838806371493284811963472802872963837319440543997603277970578073063799787690661576094098214461075342825815510927126788051666597876503750656686366580526038227598013923507414419509009044797592793147367694207887537011427128410278585098436010217754983610024135121539867665905826309423441041741942410104549584585425822374474524272825989733724261645122735162906875714753024900455619234527475341564357726132189236502272349513828255996821649307805347726474834599004657056909010653573998249843509669556816160483775214699285215692270573647748707050283545148328325231009761456762473874992557909711171712081883003145069611189062150441589416489895585168543380533394706039017809194528272106508697500592607749254290076541880394220776005167401160078881256902563123072041105470047900226980626209372184888145510246127787563144979164577128560788752940123564692709393510035879161898655963127180768099285680048484274319320328867394685707713870940118960399003365167295305183734350784694737890441782140828454819817827958127586495171426291203882097296924591843852439142356867680091310204059773664680709737484097899804991672506496808951630914131767681034985774215501884816826599098034849664803591163259603331699140900101291422751528165532032060766925150698435255675950453635280403497893756243442370608502288318691276181345375830829202595461657154702707799241608026315647530566861162255251636852448461797299410173134290031496966965379451839534910622526920741705287594354112588092273304132089270526123665550564747576719205095263528744448639082977685281220754416614887979436136830716155164154464601939897899618838192899724845762276334745747725768697150525844556642984489404653081655384211741863608196854176265654343473176652216664131029903346734023822343132217725378843925919636472753914351365793550426767050569838112510793252780220736974247141811255686873054010091413746254840625404147809697148159687968043314402841752781664321314723626905346620669104729045797875002992243324683300049411232477571967597630748613860684222323288630163553191701299981160888595401121478352680779788238290355504202650266704686739813085636964427530931282668968137141918724009878969637929591694471291061083304233704970758858838674364745038121898390408258791946112837395971654625038756536919503396280229240682988090636489796063719117936691454500271209466050117195825879604185415125281372544758870417069045608501933186727739503079877907458024398901148205478888941957144329524709485685323683681031626958591907698181655228102644847594688250540647014272056793284911795387410560780875016061320142180549484248996990208859388107403430293442272702438338552862032315905928551138355500534608707021346082174600309411529191301098661890693950145010050138171029150297883696209987103537867814254989042482450033776346629811703576014374810917299255803328207585746741841226372269648585723622755250866452667609962459946809096999560326870544915897491184743391559418156745739888373946502815626520298307628326486803010263006696225065909791402554669304525025580838298846707077227776653871531715828188442413019126572196029179654528784270556019541887605240155703180413256415096140911272135290910089481960038271853538329670303034000398546655364957972985705859952219007051418535434639132814867604564811062397050414660151040136587877402196134008987124767582467339957819232986972518075203381244092901529525724962097779391417048578992403011607155764535680224140675761465939798915142430549728439158802288124385139857177509199106617700337661268530323155224822790511808951183561744678841963384520811657593120524167872657380025831516222648956597532152447916563225216212298329615888478318012438072423153588371170916917897004117637038457496462781806363396866586394284597661907959372889577107873776509351747950942974690502757155358811037795122052955256293861607964768320022104975128335518150766950148135817266786639971185605574672016720216698952257236029082692356095857832735069893616030308133055705442664093735098216351879229041354024188311882374379181336620945521013926502943655548603428970194091491892999519592906536675486174405473037648760730115246947102001346022074804618272250402555848776857494725401295476639125920529818911609501962673385615246187713409159610760361357095299913273395025178024034861300184292614286742329495010963248702794802595651596572475061354683887775357675922844760976554708956176312042219869059654577629743046749130205422093294118247344163135584114967456240570331260637065875978323736116964803889559682864349497724075629552927037920558527660038983744399087840716944315954958326964811321848559519037931907388662884006923159581229959681738085554409181420118266571334440988364428300305779377906531253887262268150590588017586678513990325723293255145334819543870165416124519761007692202969826325005081074518664673967792303919181174551061877827664344604132960751177282110300329574006226890182582644374986016904736267545004800413725912378131634907990767440730275425735135907140501512047413891615430090677122670063495753512042012827028794132749861264574539064103991208671000495169867537796772458266802533093065795477097950071710935728731535154979182115595148275757030440374911387845991401698609565840184384929902823871789603355657161605609742376325982377504208905791639602527974678055934556744686251304421004417651091416755833645878405407887770137329256955509201033816468452909539638726516514184364521860894670889086708752216447085910041840828651478214818095477519270455969635898659408924386850691370577220748898536253345945525096951915100423373847929036533952333126036537094731559173365518826988634147461684699061913075539536728727949856872450148403343783108711593233049968356617063678820603325042369622313883192648546711734196376022551952598956684731598708252817417502181181482083806216155681212320678584099636957472623883524164199926374582509287025649977893383908952243800835757541488621735663503610142226806751318976009018306968989733085345099681024478413817396578266218686181566530598769879788782063001321676408329369195175817777996428374391124004320889478155049745189662454032813821329933058660047700281289415522122018506700893421141088728391339351800139784751482303046941423375399346618593999715058416099590118003745742955689081137132689788781588509750728369035396153818924418511338695647326989904356988393864714228881285371041818876683331060371497904144129564005175434552401685368614124259279830968143366160558999311433686503322395360353996968862173317811683377044286513729011851089235302612089855954410928125321695445245280768022317946344238276365793745746959368915834303109836333115015349905285539613999101517262555536674203136948425004694361670365199532247895863863260938233797972309786175726271440204702438903136969055209381329950266596307670525646920644303851924289954248254239598277880394406345326271372036817643125337868318957502182896433628800277049714068300695003666854632715764831308374763547610649344459914082870117656024807806465249310881882143394295599920780938507837170590852244084753578652359504417998080724408375415119370669874101525469037201045569778781143151477208700513601531387456640134399804511380352172587438348785331443930571752009539787733359198359059419515578249267115800366311934129842184699110414663638530062453666139405139335616863620272126297490230028609724689736070179077585746023574443400705892477497124336961773426400228443435103334862873937633743330960418391324903262783917935768084310928204995135894248210788715212780956905997846849552441213596236051680361750455160011311109041973588180920104360599245842734914826967497860553369387314618089334835301275158356706365513021720178884915066105320707844762336848479492307753033034045030208621869519981007807596940284847361237602525771373638175749958749233059951722181662147193738472702288925763778691894822450566658596697395083487560998659415891620634076827968453738144140087853400099648679180283566337785988796049036232039971495307165508440479273078388094110235916713074746032451897070949990623902797858109752722314156081332547928043122472381494507209581143133143450618461322883059770701135722775636182061282120208657365912877188501593944759560612360388492418996722813987094793692674614562540038811759713483298920096465638835922851949294011754290974601386565760628527861027492071224163861570199834518254708654359417207942609099436093429423100457581575830530892654379246135613892568644062723116578289831563658926610225838863002696309638396951517955920531396233690637815840719510980950588459827396908067969690175736325662087114734494464480986601183493917979999669002795824471533258357829757351490923034122732067191631341287311946453837278450999117642063537817738095688340518541828650052234345261317349199611392472932136059539374805989076312787999525206409317840827313992051673954792956731203449790460880459281116184091344204589444793757072968793942160138034524449296033677241074086845664773821479205654214647720361346887526801751173594184150009573804316769819582090370968308015203359109290752908652984218239724927963812046815042756790378878722142950042930106350817023802968210984593558328478940768427358897071109912871934696083739152899064878951770248644898062915898642532852619883621450538223384325314402860433276329540521788183047296677630726348764021410573180912810684532423675781877216581543935183892814003486132022010706202760254524266542175963067984432670457522554667340810623063628494214806415025839680433460873605673941516503236361281353468148453849236386979600637634671017050409554155542166685020967178061899866582463073873192776934546280729614658537615284083280557277860102180560510693217423439288203516057291116525628722833528793918973206799642716527216191847602490325103201831143496040197938513973302354616677530485264606195963608706473223569350862338625647123904242216306846691751453008351409285094452421382217540009932769834131947378175952578169067498014094478283327621006062440509859313328868523063742404700654761465592537512384891762407411312984321334938360243007354446888854002542408284397331971215271484821847499363085923265955340533151085676794138488763452825610004737508086224370230763909806935230249930670860498565119651668599484152067436188750729353300494373705176494424371777351059384223856068077455378954733876068400275228087846851778045712301605142180037675806189332260750033247288836617448106392728478268720354624918515299786034890618724800925765686328139247340176174357717118656299939913608651711123213928268627111815695564231706362672810138303531718264826730656129593551287954919637287864968872196124691366395425928193715164264838194721382615161381362401601379195057145803803188845960483613281332503691852029632145579345898232070197150131330184379547473545446011120339308859325924454492212902059991464305851687243919123818625428879738704754976866640294665589571697823782277162263095149754033632756708527608440398260173609723993652845752221990265728026106433847514185654492022504773010803527184844245746728917731724413800709086602986581493867728954216313880882045921066892242654925823870816781607528517084235723178088423871769853031706587177283574044087480611907503267789791121830536441953090850424026358851782308981487188382747161021636753749634294232612229513716061106481029831501286158844905481394254695924030362308900171371829111559822039992440154530475436464230434709897567981974855825609703752445757927891060182345111687614065277265856847514039131574074038400556447383343640998980056185030502223043251232381147127024723363861209775348251495945271903570774064163109881035635633259784832790824610027581544461911480203831138690271062425566093847959199611613588774431975815875293839415701910421726249880319277717098290510578403349580111772670082000368516818246265774560513229081179547273963641892492427908580694630863924114343961097055808759579142459594568225566982230335765184902251278259633057869239060466693611633164528223410682515650377442298038817048268900810188475909608704149104166431806897339751552113913080296856847290421931799229033071399334403045456103149705865701682070129757367707267615865659734028730516310430584824808933572924335054312880259483748322714695805171275891854182658028117246367145438307857059431747267043935883040286202822894949559316418121693812157913677673752118039060100997836167570475982056785693323039459310714514735872429506209359659382780291336369937735418305883830371530191252536447733385746687156159014036173688146751484367226099984229174805066329871165159844441723353134154430197897666632955838810582378061650161222388700108971583268045593402235296370437669951278937265471438699736765820634627620426313012361501702806987979062242105501657280016189381888980024178795071847586498888289146860190446253126578252391516632406974831769954840349040205661058705455336482179880069412778813155488589804878920943207309310399344677110031547559614581357442482463082765819136952746377084162721438175363959859567764624757874192923379228168203236315726111049277428029452429604983882659123752401706497773518809882596898596799652007319699449973786479123099074786275435116598626608625101385309800108187668840655087259045393068879364807530526507737571174257631236159579384916526915599733464724630800178972449235091402121722626738192833307695411390569906647065227208605320330050181406343838989926676643116992588124884545802707941177341030714120121297001844045225748185690645490228887588169606977579353326817352690013292703890890903374928566885251958763551413729813676218736508553088118659462015624463332615303147583145091282980814454891592061783274320307797540210288821505095913574341461576764943315423087764259079263401177409593692006400299437447067560767599346193812144338441419014649167838460068006431501983983083454323299418652264335170292253375457926002377983616862920697285378924961418825379919825134323614204361773581538245952924801422841196737953076241316484605153988863663559648720539237876743601858967862654978303704156118835949262635852838821759902714079567304967543766815512194724708005075304364325146609304749944239089584821576786643053233699113511057896385447432565848374779554743444711796736357880074289592348497449914785799909928073928941431767098941340864788035766528566140804441596094372483227000794431747380262166187804161573813569171290164059786650409854365758103361424598787003480878940709385446477478281026675510937127458184536177182333999083894085038542384856654190781170632482305735579286075423784208560249988470955234768544448824855958997099233960176102601362182060617580955524358505175561306826972196023444513944246067860046197160138067131006510245254628407077157756640647870189421515300242756941699260150345410874214912166920458348293527668332262481212195560333788352711731590803690065014133539372764269176898177425552776114885872490780267118813091805316929781360167407371478467510068365978959733291035294813667190360053132134203486042258576730531079336261366166336383639461974696053737088587389134790855293901323635086359840460396458466949823824512704248346771822988662629244873358228214224657018020703947760194595546704959117853643835068159300527494396151152415141206435196640484284717860319077679464353163077268224136768090114708268397821646997444682978561232200921896982706929223872303341603643136862866379984159296935576315553179554960761025670916130438179703090115287677914745277971383654764192035998028661547969167021477837945235986522451523124394245049982269779817809997269387139888215549634223253078086223617082875570559050397562662812408545386721493325636988489390323501657599579467214756129656280180063660753698220364581532590007391765356054621690318299376292592696316606693546337301911678238965201970754343301500156535998261846826050381954422322200344111000964697926466648317299375645450822857859589566658936629032802623182354792485942293706388446396117858709903239484321404204990396645894350004312883889040618891789567847521939503183725461333815969155830439488554250494303303960803285911411871930722719918202542017730764370877626501936009282114738311411220358810005555115655937030930066242948132660113881360445772194041275444118078358653833908240077482857500475455947921686691913640937688140930986535385420858420905975289792392193463839832202060234175089235501266072222997963626437748996160604358696270540157857717172975161413940470781626656886768225999659127563548329992958655674101638515246704653548061990005374810193456917652833541047398959172544872587223130665912252630090482276031419962846944320941347836932849571606226750690951774231083444761853876347643496881954607267984609336300209087883013758960304979094525835441933865823358692513545963711987133135614192374592904311948857088258864116592021897112845025238585249632483043263115557143716396697850506723161206665593573532713619062534299284548013986799808720326441714342030660553045500819825941380818595668207080034030757391219236358918353800104770441347222353207734864979197063006580031959491052703339584500164109538242049294235395599950902231949751602550548059166589023946523571619382483095506369232722201674194970159962631534544575207194845219947003637338822419961609688151942194002784911125969296323473534304467171703141540412350984285127174704184527132318637157917937814363021809974334169774728795937143870109041368207419814318589701718343492483821834656830603867130015603844599963562039063235269649088548602026678392120323264129583717934182645027985152986445232975578540791225050544639376901417502139269519225211410246913751114896928341005854486531566399082818305307402185052064544720333304114317103657231166166989826551225693985499209744195193366478752359199941140051859917352795401488841956805150925488686905949839740123035079618719304351714782953465834934309908494172259747203577972163329018185648737134218369542725538846122814194670680261511142229070982439697919750436967071169075901908237920487258609130215376019917936015105141798981265696845375953829079278099236924660197675016326345858360656331747828496219367520282675497315750258596904080821636865102107845568145868092629608664727253131522049829988406097458642747686200463561141857567083885428641572930589457969106399737268965012982606235828058941150159025746623679047107665345354930319642822993165014208969878706892499418683149500033113637298215911873108298163715437645188497454112229366317547874518857033462353963437785445238943485455006560519385572280770373106709812242962759246649575568830491762702267072542580131654376724100425655493220948802406235588048788790921006688590994678593183437642931197581187422547100616980268515194919144974817487432842762276031016657035575523050619501068100766268381651479620642917054275329458954436297213207974607082060515568990737206718821347667712150617632615716020400593058207803591833970801270342527364567860573871392245525738392704764804907293275444467069934596878031399991208611595091205587570153444200275429972975880215194214848892311844228982086840674643066947198491198544549647154269784742639865594782597459794344396199167366922053400775434679690143200639873635820073443701975924038007412148694805894730879659524662830753534292236078756379087392137470057785721430770975395901831160976848860822019222837312292120061630842050389813843385955207036101871090564872261223595431135718036536759334477901769134561942726438358329533586855936544805852279637487279903541640080907322165988385219924973778017723331184747240600337574788715361311073030732267023557963013476908389345347921481500098283437046926344717814872504195399391211186184317490464407660804277472877038323475188802120382149608131144348309243245376005437372653056415482572060849146753194545624523686969127229427868507110124283294071760261197101047104248082940045281253807520501823728416317379695963374384562902680582651135091564658086739359479623228660789046926362713255187587935961429013487786492296316207037168378289783859321472142731982146701450443049078275161459017185527015863457510988503865354261809907341342228737090391950670265409945418385580727510656801760251279214372799447921433776688288490899702204942299202169309640331355746025473438007719392240462561544277593250913569532352505692187523265460990223270293787224578109824753959130415651345644362197646364318033200447313328401590473046174604559250754444456933277044867736846774336328205546086552485905379434050030898284632685997380679520964596177277914461430184249981931568578654251621797019741170224129285603197959143474890525679451569630876061491685015380115461885300448570782514988053313155423329932116157869456959304334281513746788142005532001305008020252930047003970774233160593035805888268805069832612737562458208905154448724295515504568326566835295493334330991885947383817885854193797837747689668314499662365361461229424624452728108809711227777760245627981395862598899549628230290249433414023200904695890519519983114753797348167586002358647692041782193523436157250799101397858578372757168855950483463549468002294045905615371728688031147616311730569689728342627644887653070311295706919774868062376197492090566728173088860108123741392478080560670108315056056754304672908964393827203902523436376960427862210625531333774511231915821428002755362403581161918077621220928654697245931368880241572181098227746035591831699992234044077654861260448372979835260056461308227062790670135211456755911314688185466279439222223800559084387033683320684875093962973319530060801198398132138205966428783841421521985594708672727080553222737663985346358048712733909100154703538394273607068052318235703501629239943864227881959556977614263912458928631122998159538300669246073014378302750948864728162278683422828503115216645657701170033785977776083824762499858144758614070006253844526736833448747658098429389044792758859772681481931253362648137381966320724444171799064140365142430277004593958147859228062696489643453144406382077017064815161174987926717388265767134439641136090039905135910277664054476594483755307487798590759994903513742734065346358067011805577120311580630877989900277668650115269121509860261253062052959100000274670083512729235849430244556204905922285419226812874043736984280180390309012040491600521370966224853479193342125017390652590766919756633706717357918699666203785451573985386270083128797264159161562846692743072129851695148131011079340545126309109776025738507477340599559619609032532036096183810486558457904474263901364094549224989084575852082683640318114700051241309614819613818315688556336652341586114338488062836942123635980021304881381545773507943755367235112102199194813378801992392891342044784992940747648191833906820548730433510059041829727834081844517491082813747183326243271165620815814122574659280008198316602551609566233004862989980076609219786420664743899456099679433334813703820882093224937408616289523729100572418381305442470630465573560992552805360943032066568397230278231132735396928393959305013964718347826753361244351985896356420561748398586077970916214745167639871577437907035016172142968756562679766198649647942785421471119392640296052959605739649169487190731833354069105779712039207237984334959641392906143321147274512283941332720921711644975918444405751977516250359800085782240598737599876970985091131839898434398102761082232553838345046524296445460009622754829930262985425957821364919516252558383403850449928775698563902819784740341256200447702909265776429824678214273913078498223146549123996423088524514420346715994335250361519305037954375665797319619638926240951617937754130275023111301873038150119406530493035917848178997909815823484231286173558550932521527641937491065519585306055342105394317989749855215222705087180895709849516476489585706394637062268804242152755701663538063869780069622080893598403375995079118207366896176307839189687731987591999443435243450306767951558560664868298003042310351129112805033669457188994572153759594240033359304333739122609552278521070771808603395918980153208691767917635879982142062686350178279574107454404295537135501719682548520647832866793861972588898326356204953919271458156708046085910867653406197853482482400959952591303131255498602206207380903784663091052749149735945556994790288968795313428792844177279999033595306706656542087504802073322724862072085034988868908903404255612491180365714478111392904477067769262953962256358471021641885745402109312978159090072379454296487182773361563923655359094586420044945083425064454073569786693379634653820392542731849078465857152530239585967941252590834726243642663441249796659836394900576610994898578714622474118957995801093001319089993964487992127432384351283902153529559706965731545550955252143874899016866642459107500661963563352299061362124818664515543843626662603883320402750897249384799073376534267552091290170984515019625628342039433685923523828552683544296830759051117252396828987964949801485290080596859477512420897321491074516536788136972086955642472930566670136145492867742711728881495746712519090680806607747726079548234521128972618826470025930788477412717507609469495506818322103927578401531680854373158180312956184479330117773310265698085530352698603525755359917035361453023176058801408036802628232594617865917555745425370278144003805746985953892104002964597883757846078200746288458669298846681206296646040411116106732911290078893254037786766235217563332316128302809279808361577780627186397472941030015824866759106353015356366309096324414936362435926349634523822555549607328878978259582480968767374278372847205629893384619310910194493483653978653872514483492249252211662853520733205917536995782161386828705238879301739841753568525355606837632110532201845636357581491728371000943869161369144736783202730321810684145237201849109007395069075832740618288334538712848580710990001178498714654760893392890741547464574550211085617880015260797329977015232923911621031873172592433472636056699224928992753380805203752879436652987159250956512584852765496270141384049737503033176951970490361457250503469577573476683988937302507521005084929334068960104376603997304435624595891721890031764147008915216011120681393429869059774679443385155276567080241627004858798837760670769870180520045418948180529555438950486766210969823874608175489249186397011783900226375097803835313092098444616761631960138746395524482166932066639055788894390765315790815872137626608595929528108412106434561919322110501530661744364206456031689056995914957554396243408660087522512673777283727808944509839721202577616816745044500728516660767964848995976124279752013074909453367391360692004817472547483893396572740652602829184099775193600397891060087466434131660438955276361952518864489570934814750771387274839956398871440990575167967859624763177361153266781903394683833054655371201931843865777887239206825909378263698983163013083412960567695930119647993104231805503801796494553321612495034889399829374876434127541888666724516420328816351068887263944996172575851076573339855975338406955085837008704800602446527954991379933766242544048158994427150666263555374776205010495826687845617071778917709980783736057407384509888453725393056509861049157230697624313852906511419159597601969236541002074403150070095464670546269571641896375847878049940953993177507703640359697766418200960229894734750082568937531586579782614797034582873090147875575196376513776029318535882460950008459350116065558487074766757686441477979699758956740467198315307151362172147389658759281343712465659129232257757889462401604698097055120053223080517534601374275665375008850491750772647717481299336039287173882817998118597190142138396856996855217886053531372358365395157531621908144481503596770746354972621331514370468061566689161503786341310342556025059026728250609935433050327524580974975912987041053794208011200860447222293883809625027372553227493479456627144243453016230434126588815487147926929062855152815419436105874864692000342659510710710030337915507478442177555925006075063104572207278497819089544286284027010825820805271784144654094416182008088133371684074283470772043549475908254314668577590330257936411281670793759645674023305504470911093818987442956615264122893333226913275104726561813876490879348948667137129141144106834540735400105067487560384243318680079536041932674464452644894328115748218856155584706189480336985506011702001609195672878752509765954756801799044070332538957915127459319635055641821864098867243420588642854610421828403800985324012932509104269744646867401730054166855411147024895385564619699638318525964448843058666765948282531443043036331941813816182584945687162931782149996591563425649647854687942827993494272366878779684286322882383621984336937736077309449179375362998961248313916767141995225006954813205533397678233159050913658595657856664860055004107742218200506247443219538511613787167957195124543045381783728163472790350806374895918237080673353869215346414118971295055793233193550711005148037107043847923240898697798515432965531721629977096251430295346722921647123046914608397484444042780811041951186687370136684721279175999593668786685019208015546989647146908637510245238547484254837657206292325988402390883314783537748602444233769166402107019798786395307631561959341258944319231919556888597950902679771948985675488114158512593980327295954259676233211100001659361853924615421836243391848545843492022733643760094921845083585700884935855244624897501335352108138249365174553972316005234668888276714854402559736209797698741735242442644622370072774076335465349539849066125910378686707414378258460255655195739202851073335113213060176922638504861191977609396604278968683689623576844938368810133219436779085061711047352396474963456005415580462232380487426361995365683813081584726757031591926325418333885295489517879390975738673643671905090661238178872273990532503306050116376386668428302834413723120340720616263262230330181097848394014482127551984572989665977163312224398720852211234741185838437014202393762685852832363428769853408991467407803129677878420392210572454132433626356734027134065034649534005644142065902097333341345131323535225665004893413634812020482358541648001355356847137844720796676609040803172044577480006714459532690050860022184245311564904401693956139829846116017975497314645723199895528562766040823504810057080643263838347463169839287252273660914399879554112996149114208602957496893335085038859094055026404582810887305638187452413182365043756140176684067048386637594609253041165322994707607800099894036884399630046115797360266190990791468547030388743383424899801879297133011779432251426153989045591682028395793761148337620802153163446307384702836630282476606377629916240959653633250382086347759586755333794596411367481184456259777992872086525488115773642904918513540151326964456541253002160605161360742073420079064953255256854868109298645375787645761814534058228866525057744067234571163294932431553976166523925200894844162380731586914108922145570833486790432409490055941750209863549240422874953719938880247822356344826470130278266698622581297314975294381904611423293546295100986160407786986668566251755653277186232315972027015016634687766345595444399446814517364425333666957668569552684129569240777452084863589984629309371086243138026513049168197529727897741057241160635886947700962418501704581612219178951612217226995815347175932564523176705448613509614319971043277399974531653453594710074078386139776123443945077659593517962153785650401098588880706403279908993042972741415238352443326830330606872275048298072391653973400563781472695401396789543432800974924857335078878643303900105736860650306990576272600627651401342014758383059010882418479718967696004833460562778215027889275149208293429037779450618601984252444349787804364145513264952650851880895153735017105962267988335426214030832422738136810335456918571006328678361309788519766152415203997778411369462792532716466771501703133866539080555636341413275115413079792027099972372592883868318912189774807193436264374906839886561815897608103674211165616847071791068131508877440330384159427660335865518627408543853075005653153303200875253297525732823480852854189303476303699848219350487026355990417685194126246593665341642678888841508050922845371284836077215665151442193899619335087696063578545949826617856184775671042393417054386985173435817469878435809466971981611604841169236667645010959335416046136830447047082025493708676840031650839878200273902585392905607692347164617607719136725158393738150365155419487433868055646362410266303593173699875739452088261987551145644780718346126240605619614705993425814112527145086194072299305015943400548719558566477404404618271388134393449515962406661671209816356253736381099371505334872280900869635242413280218920564840563807117558763920257826670805678243450167274970228556056442133842661674466353249286225470402169792359121238519357079839527236943159893392925459654364305511642504042518029860843965835632140560072124547269458940305853128791818259025577566472242384144487413139464436171751886766079514045836668570927244175986775781711315078884315398813530759020984418184353632378855046833314094980379515315192359038948641481546619105576750005853830482092729039112711758763860503553832995463561815846898773314632152034899688215850467208837904263739121999442757817346821756506819714550853785204284251273643853637634835982997747248693238083703515242665823861310131956737799631279066794231441107081038977637642797509263642736872626338699715993617576842340668279251452868471533514797830154199369241866665056688352542021728588360117668339472627114645489036136766843856220869338069324196072419504625149976111317475635663866448547203767653354653496582114004295612707913481617050266907325301968587774259731223196906958524985420492992064268942590961773963026205924078863488350769514993225673250934922092390741153362173207642413024096355082866963706464284795430392812078853975966925940499842339127594697255216133192181976672667017165968877285991602390391162503377008625915976664997909457504084648228612386064053246394546104409727079455511805969183679183062847284680520734667584051756344071959454783222904396544969880759461339452915742717145131401372721085101233740363105867335001794851274640748395748204652621452818176973240948183971837380337014283405122288758591779528056120590235832601271357153898192533747125630204711162392469432743194669610585831245618684398071851333450871349378858099176372714606031186235823111032112116895580442533992090138464505225534257372214435431901471802623964313388298400731217458258916625875726650748753410354007587448123465386721010917379010021474536258745065513654802252856322229619150958598467940172815245301705560327323684608224150906815150495749972801720212429322926893465599817599531593487311384682125264073468298977584255615248159749766266431297321462837951939286860897466798416763937349052511038732042930673123963161079997402059842021620505602875345462755559654713168758244025768867903249005238302682191118868266884460398765521103649902632500872357853070463419470698711238429113030085912137678410734285960300572778331361955019004415968431607393902140385341761196818182844728902644730119718263244088186474184732658247921946781415787974128749487545868956781099655828154911537445717561107225473697303369539571598016079363551259818763898799617146391395229017646860708204465022096195401951746771184971307777221945237756206812942096435183482531453773789512849334531407914652732569730444398301163210177253435970680457836850220257840938506778880266554581890375146109950814408744980986462218927935271965256741291561714928022804845064778607289708535610695393876318062587930484795809746651365161011454715180628310355812006500202817849036868572436717222148928900903226840477088943120146901855479632217609574210900214901849448439806107250717681910705926944076712760600807494294479731130022920914776357836872534900496734540413667940531708838093936212173320030345092647317059245290927073090248781122479430924560688590689223194515901484581995462903979763407149920343110128150563288860847941086364759024368791842535170766638763310965404901737313080342238903152967181128728014018117807440264805065749377431101459485856074907191555213507357852941082601139781981910840379266126558881124960499634450847795485569920797896316331333303134579377288216642842044915125318127469810121892508641988265659887323309732896250564437046643641472606809376645405646400710302914168909270418821426639353323201585280209247581733465823551943541292438726678657245001070927009196670019945222295424564316323880545018233850871983609893011147537322161375850257920695399274453825134126167230237952579079327850999862942250469215700934713996198461346042201612616204712350818825423356653718345919173207439327480881972583028634002265413066263926058430707505921338580313345436254031225269665231597536852403292783527032336656854366349744775929026862792806213706298400684675880464829037344453950543359240647027501323040861871038364003173487162931612998543556754796908615077586503415652900051151550095183153573252366629238177451855607957354129375840823409191018366588516109071131276441379806246458448194547795941198437908397859997008349107417797988104099117898963240616954595868419866092373500614764543400213166344223285717258482800574490797542377625448913409706565711641784477734945305868654941323586452797026022756640516163960754827118284730320263834705395694911488556852289133989702783406395845333069946891806926951852875048668434536198485309298829114901595920158185861178041902551367708432837647527421519766929869759485387124689369723050536011568270149788681461693924549130752320510899176224099387668581379549082285186813321098381029022370924601792186239545388621275726491997782846681483013111419704338110387365193706278324412168767710240463577762133329024002283816405115746939079571707482389729453454703189540856556282841470175075318934096134112515747542939544720986828411279719026467573151271305269864479390053470816365420402260865625727891637331326169446818216743782356793979012006841686357859746771389331135431833050460813655565152665234136138045078422458197226235255757940263776552227895572011530232388407253956493327395212785513612558433697347988642943898501895111463493638917891526428865165030110825277578236566274086659778077650311039302934695347055268687032003239123181530994739278906923304485636547507909310376670398712674681987675380655660914237010338963374872850513413051989480651349205800483511372898761637533636089966963168341704107640695184285211322118859776309034982931107212613466662028267688299370509299216463354578497332043408290625470564873450865628359619101981390924752854410180670161395783053275064606982560363401789553884370801643856110843282743459992936002032525054009718337752928346416884747457156232253359461501981187145868167561915109311769749285463080391610272417076954314870597792255511981137911164883663187088444621157947988308734957451813683578045980377028349850749880787405894086279388622110151770161874007193039484680978600492334361044038960233199373314890602723731549857523031064709387588443660245423583599050496768647362097789891682716663856573937404659683285825311994161693973330010948570048389286873559599713370618594855260076490001928950909681452190619402008542178139944478129808537673668692286184192356006078774244566046021124918556082980436326061749594374099581094509511019252161270477646714893137547075323319058246128422602227846407961884119541843200484050306472778993393917571053890339144133198583339756643579310491267965689579238966694080678214769237774731705025291162918745397281878438795655831262997074059308388593936059972557756451864085572862050094185239887011149618563019693330596594510057377228608226207522138604170648291067590809853383838868210634408489032183418194803951422850573970173947006769102747109329729683263298198295505420020708913098418104803669453321150063437428190169957738728474335639699068297318659210929534064068930124079786082794105808824867796611324891102756533678590745797242120073256138240948362849585103721094643527324073255966128985315013002043659476003373466531481021643151119164006762307522003633826204323081441738459315556149716501408648359778473912362250886159455650855460265502527818998500437508665017638153831870216788295406044733459664338397789683777540921988703401234209785468244396472843074151987645332840584845536056164418640772760249561427660349931704865463326235100602229143145670573678732066891270216766008272051505162258559152985186223589153987610719124023284977879615788066898602872089623556069470077492655181204308807313461067577406677363139123818561115332649367939459361722318522667646555266053044981204359752333397822596592873349862232837955306182265217285814535612343324343697838200362221666682973760791783048017375763002173848287912136029363843025701501266543969405275787021497249926769654805630107436769692416638118046073713084557127715386897487364770840260420854214238039588084410491390234702593878359852228957881734788350762963414346431300402163142549776586687970504875529882687876181885947508226716536727024698403556431718786986257285140105165737314014067920710518674735375270006478947781071674176319965149216651430444276838417521207058527563438276179993421772191890279620117531277726582434034721581727215499086757177707545276341560577305823418700726687388689570621782687027228333979890656348697030178579415935479156215632442746974447558929605817350426580604123284480886535928268956288865004102948901227672673857644658404010806898741309736973133449146121034783799470333472317332034342481383629830426838366658534709001479391867286047812362853919231525886347285233745289209974141912190889886802767476298980847114546830426301632930516254014068219821142700716644305628184870001532457083647645460120988920976356976294018070651887156868623034892788061150014693129991950238135387743159423644527270189926262595999387540846921657014908307479798400183738865061239380443424443618603397961617838356810828185891520161362032739378016994440569158814114159015032584381737127550937733902211868694362952057420961204628241284833868771189274982234164792327154693855301857945847693306386807780255024222237004867551695282354188036521208155731108924738091079448006981689879801604254822300192556167560063668242865426462770712077248393458042024010139016925314789414873554455039364558574857609979598236458506074678895087738645751708747346687238652087561718298608817779353790039067268711985744549411568044887738973886278062460420872155344570630128685378295881800589718807649143221503681068428534704076857907343497677414676010302687896673868960186226122660818575764797503527017349984913265563027641819773924408481572258931121992430187160158800170191150283465899224164896759131427548860267186896784207707684305097832976476763917086342920035560069397327452757315222757550858474577005995576178336184778030055113163843557002951800202571849502673133047692661637291811055387275628696628547116068831415853168684703760827765204393052881015250138861631171157042860162815189795617433533659975430033717726565245190370263796610625739363020977828125103436895220360291934308159576076661965544257267697093029516279432891466904038106446165587681278829715235411734779740919207216636233797054753975143479502172643002064139973113247836845813515389738449436184096461614273863000882081155411204941969270330511259431704929526368546720009903400065251475860091653839501145565071773725015167020380393743513925167474082121270486757697149785086983582061055506053429079515771841732111210075151147543642535505630911042481263521147133048924363602982801034493403193923728111437595419527106657642287435142939957373913971263023910486521639706877543097826880232283742956221657851538549022812071699739589499262772956318802932871214024869640887882294209465147713480212189936925260495298139790935126484893099387412511769985127632742419295933749873699974236397715817666069748671197388300328209318236442272868065473944440995274878561302602341869134878884872052649758426849317061708552819999321878689598533497465421068449640228208010691559687668379552097958987804281847917214832526407639806690122802283891443595349458846793726136180640174907653976523503228215517379604437013235100211339772289583909771043588916663035222715088213226367277331703861700252638191092464764005241513084077471697977619860633500143521804119922330211931284011412093423212829114647277771051677690219393452031091971791062118192083308114363228121379777145428396950988485482162078879209120529357870159575200420816166624949317477174494375720876516933449352780309092918851883737533242213896861305481603763478739537495937855048632344905327689031848894436820637076170490274016225128242458340175272081311888382684671566550657928891378493178755175151294330718946221074910941083098394774300000572351989814663808491941767099832815979327428461589916394547836460860471710736987809440687938108788433995602033298663019982351311641857262443455211332857830271597603855430546177979422423620656693798768574685654024394274078585475329467990028444111528398864045577375599585371981354670930344833747922621397595886876339194039193785974065852635575994846712575907271199335388963023264442228517184396630702738391979199497002463434469792463481123759511711428111737152155646020888379006752864855303098743328851084314505201360989564208605003121587219902858280485305137889321193542570251047117741549787068363558470267898810689439307433702675250021569617695168416338843700618639080249184463679727953616442870298894790895161460159907517377203461273027368468984600252601240299006082332361216627755292199651891876812432827840946618021941611574566529786506866275752108968469008268368448631456483311439442452993622992843164492565937367320824174411115973968717430864117132732086810392052580244333944428311679457517849307691915911843820287973820986721162340447114462651481054767127955735075345039004057374503344439564932576646617367290303781756153773409883191023487357697471429359593699513014837217472969525171416522576855888163518479459657212330273813267078483232937900162086667032425903650611484626286288762454580932458311966695274363202013029119460177548418896419268025575015335122517050950927644330161933795666564475416239828472344094324803438646263729237676329711704410437356603268356604338970869204064047218945206247337459276647096903784165927886437805135677116914198853676996127979742279566858381308322086125431473502122240057292449328175396737463158381371227607142397014494253161568749363821919846728976502318763764666778259240860168772422900961441452251414087734356718567564718292182310096186004311175561238053233038941385218344101499961641315301367420732546679398616218140834758627086780929678361830809842542877675624257997742228825563102510061673253464499509734086275177123278701702037462133379528166994191487886695572238129824003696237886499276861173230526658944738941688585645835675721264828459628787061149259265891099726706347909920086508676069818862639909070290600946241712028181531798388069888616619850899447317180624443973864393775824365566954879292611619099807586509038941978036522451849743694290405363337404207191000415784149068689215120825764212630282823814972420610474243085664492790457430049972649578180998120126373448838528653965595329834984300459948481882952080046618884745391961989340213471202701280316788432753105889058370522694451622554657234094619757952034329959556821972210528282263362263522261190563605765137653576713166527631756772459784920319414317971008972881801351317170176651862491842714596704147206925627651359932688224598208054332137096122043569040354615268383984894467135526473295901428291131273027558934026335437803800058688140530569055627785877081967674462432422537791519644726476562952396105684857707146901965137946124431826764361681532380701479314615452770727577565453028970169071434788660862309561522494236979309095576583033868041135065750333240300110466563479083750031204148020345732335034789731570163729736691889602721077038848017005243805873243063750101181518686511112762485162503953970120578733943997750892732100712989668143152607951592387020431436408255732060730716553424552946163756175282875614542886425071676042967679521618295646506656910334934329465797073320043080294336730348766696820731136412634280743585188761980184317718439254122730393619689214891153514332782382565886535422012711534850086330486236923183219887606256271466726783172635810055453925423191789413714128580984387102915313102882346116606927367298379715090920063997366714729986425774661918578334382237078820409363521446233704779107301131728999765451489128215501365701547032900103041784657813782759522486935512985170537705877093308921942899691295133120963879227852670312125349130963652276495210754548785303665384571879648074738712251979492660614895035574235800669066242025320109219452560286759732457586359593756073739822847543764730246593587134515041731187435853942553452139665723305467979136575985310946463782401936393593675249800844548415909594195587209112172289181029144604562597385585942401094020473770404679718862948364817500714977199033341167965659814883838529542035619163639450067357770947306092947960925398614687927509761979450024524456891676327118765869351061918077657875280933570930834113952424982628980029921114772817607291738314783353920249259241799116879136731037819853472656350543445280664114074122808080111232657901851367147749182064617386203463637704868625133611378424483847883482935815999740527473751737244149812266847688415729692079889592986253956075518552662339829763667587377650357688362029109873575358264248836278025331863963294199985530915569198312785966282231524121984848350739447925270853994431086566419067948617582246107236558665716696594440418023033773146247616150617619445472378501817993404151538414507799398009452656430113584283514700745092822660764634547056097316183992564743804974229980361710885917653438820707013721451046563617126317934654280167675888254461361707874769721629780303957353691617513332178108054443611748483286454521754009276593962386720955217903626042953909704726269475083408093786331435948766201053625794603230662534545688448172322379236790794337631019719433371099285384078115791214143040879027253445136020735440482952869586752039241937617188851060753406748383859571676174097746998847958128643994036522950513875490452575898843822723674146782491947945576736325136264410286687482331338258978347025070873544573309537419003606620275176003282711089577779675471529772826908343426658286426492312728399673073679290281284078855273482512162371010966112622047264871115312367386145409774106258240832211631214256677558608630494195531010728831397386659505620820118113241270927576631209091030825928225491078710387605748024694236476795551933015530226976658502574250640168486660494129386509730234486732241204902199627350990076456867378569532314118651006879044849584503755891113253756932354059148092469868968581393317704531562336147111854681501061317775555470747476546080496330867033917809439848758201518270318549827772025939821503670165226715483126412939695459598141807764397808311005327003878791919825728841157978960603805428778685853342309005380504395629939337242514279082984416311586298407080978235240554117161573321101608105268002742148023200654340804289608569983477090578185612151808538762688116515607017943061151093243325714014796054891177830369564916624642321639252610864792339380755401219486305040092678701574749214752561721693510577162524968512090536193764123781147769178716291722501091426334866178073346640204769148921793621914562594307388940672675011324503851379351606776230188824551215633299012836801335745350048243474300897039556014526835978578728033221367676667413921440244631329961164270964448074809593666377004633123913830237594992132350678873386789649689805766412942649782464823804236633428941791024892749195028026507371294710965660055110720854508421124924431182826978277073669857468232631974567498288460151007812592485349070698078404443232832570063717000459827765206492676614048266952145761866512275085859382348572825147150941312278248837630999344373853984559733197247993809951105033982235196318517053963713554339269267670433257859262245269638964908968443575693729823653324970521625004871755932611231872854525263928799707481516304150239756553182940652840048407251602615585190547293000362549688692078800264214437108010120052707940136782797076080650887764274257470435701803002713762138132014423196884864303508950893258555458317226607003229952150106819725708122295650917504234474244892169011738773269855754632123007922377445171307211046231552500024809075395031845262725410877089659151533709464468570442100326799903927012030181047886097649394818450185507155087765621407422194606538711557181445738397105321465581311788526578019519517532720922277461729663182006433574451429645918330272532225228618205475321617789595690695726037939731692473443712029791480584851200893986782133779262859057359751555879321055307439568134701380657354217016313918194694055047036465186831608820689938902671895366292083273068709172778113010856968385237615519212981457684644536366559949169052424783596430195969008980075653988271137408130328816391444157459840550134292775572198045171771184416117858751435309666257083230141021457263210177490310985380989720088958081789821887598763473087834807189889330936792564384648971046471952702298469098742677160837849146508846562644417973679691181041157742250871558423138540999415171066135235348278136737320394824784048114950925209723021778525535481649503105138202097040464961069938753280354602132293556171244672622821440555249376343112434027564932166569167552303365759683723638815832832200243468849915311676221083136431964009594348186430290921421145503586081368941796582417732084149898034382496562953027397762332648689035953460545431072043364201531286115954085140839804092501889661888323593018199586636625445504084923234314144157844752318205899300558597858708125459764202835109894569661286124693022066178425783732193851576182813546380839341721999794656316094395586969380096441357677802277637002710156028269288130968960998814560985472864541169018473581453717983146206042663364770609675084671488448893297862771838047042958096648651491722741283974915384866475690656083997639092038613542679600334946433161018614364863411623403925133576298437736615568331562914139536507608711573508458273058526200084974814176872220329114815492738618896896230036330184937238806930150980148488731044612656334346976998232085708288981452972323880410180429139646436071490892637786529980083496366665777426559947642318372630649585077854208578198053897567411256383614467081713621692763952999767546969869640750276266647315315608114875750635041036613405634551710522042459806759010017310608476143175890299511667195606249618304805999844039256868839303958995715485651040853226687505559790172663327473567170107629585427379812617024884827786750262701069770845113334231812016623656960061399432221397874045536575982968865881092115019965045366840209513817094789378313884276949908862411244683307175250357206073606605318510544095042705170046839021845211277539617068624591885622299253672707431565512164733107728011578620294531431720074037284790065690774267395952005839790376573953318501742757918748666676856996705073751672039132331759732198318542097491811378169223845263101053315359609346390874784183814294541055074088938249800056020606643126433216210780588851240355120426373280986167969347342419196927483504327710579967653064300185909427482476852585857928389087895037943241550909569148140425985775089809537667094207803527871409223391660942130605149702104622444904015136735921382707277664108872699240539669597076925364837587558473225515226008240523365825159471687464516626487929989297300602360559482483610265158948325692775100066786988383129450968185403041401218504380585261944378744742935379921478592638188484759442380477458275262804808679689177772086183050710738105165178292482061650983245593089667120652720682531086561301284650884189953534712432897806203767369495580816698630922667427526712674782272362126300661012615846685404179900038581059355919091308797386069518623912635403752326688882452486059172053686989254423220508451059372195952000463475421933086410105802923490275924984043070935268049098711177976475041785406972825421312732749003060650376927203060070047667665606168066313171351237848380968895857504009625476113981345406270435979669406918314027833179139812784027293982570897454588228631775011958365898716602709532341096823987586109711950843122198613615522444832371342652972861464664457687561416233666327859508356528359067966052286995665376288320956371198211719323495591445460734476041782979574129453301791478415235984500731781047175297599682628726145315506838526536547179405987129581938318834163723754777145152744771734468969158652571028683927627812788125251793870864999763436437411649158757546143292310277351503983255381165681670925166638361531949919783943432461974439311762303604946789584626835761384838308878561558319864181934838480334240859453253535266806457312037556712592522932677478796483947437420948866280288089018521829123537497287244040894082883547443622648072479580997509753336624801261398093144543708647183224854635366245115256393019922352676521666950673019659854168418425663829745090077713327060426135106357158578466084334358469443243631359853517977802204454606359867741167917484575196535371993365394041258418771650635053070288172492329192521999450499878402955073245307703276684076760758821696930232867234875742691174565058691281377002490650056123492067879481950495818226607127328603610505516949134938330275150160664894140076490568141135014322210141199006958109587264150938452389514644381682721214653545300873655130643435232637590383373979112582459741017644858495197205427554604841568051365052407452279936764414196530044670612910872570278241279881496634587332141835455675868802184877211891099310415433091857175569178403593837064116375537107828240504153168543715315052344222243441970536759421016163119274326771624204108652283188318303654862092427264912388423895363287776594121738410939782342395967387362349399250364552112761737777772387124038469254276125946910706609406079848512351376564716519414607387249141922897205844601741820267513843936867069150632661581139808973181341209248438461889404162307911315938813144955378864539674208870849722040942471926908118830220842501786606151716197635946052742269492517434136117551238796860114493389201304364406500657725352961255711923609710823126515337827139810693428337986276891427655127827729534672927621037995611633423115350005199953138756089570721085337852410606876659890053756588776849492989433879932699682754210677317358250004084310066918472633254141651494857917590580184108837479110865850615052923031445640148076842774352941967502189234149779858437694111478324642496088834012508513240471986324738697734226718085652889892759503783014305094904518155843870212340114602335784749991884570758486172001443669453816841510648588410127649735119780448228251254771080103076967284500768562303937647934169624496575993122030113583557510048680972604862044482728261969748538627466194618826983785474692073745781229460870850478370817903875054734475855067183732484936503846054221576164988770945979429034111236266321489637046994536815434294402262979725528250316817556559587219578535404088605037625156459884611321717122407680959664298424599419998381637877611373973138874432321167192213202241867903209795580201253180779878092821708010851857263982087708813985192606457189275408052492610169431179781506380326371292498022080015660949296917889020364039551640838789846655956751692550963200450917741211935209926240340351465680954814384609951744279158182925352214506259198261944354745420827762637556335083440638802731785291225563347829842627881183574000552930161747711143101657448726318565725033008041072856705329918105130723456626857766301149643305224376690908203982885605935965752790838993343949895615214020093323315352482533010901027207705383921389678479060797944726129523480434193278914217284861625538377211345938704458779217374706868294865580772922383292772007542345324584008902857643474744503071326928541829808243894023325746812980832209412723568701422395910388265252280781291890781545617429213990482454697633423309900015869308138223134709249584318277650578123706061368716938180076797632221437050071198089838096748635152767179928194554651547387242353428928614269076183783818474730866362554817827235153869205870038538967062778370733086717461359043777745653182320741497920670538589822749936771367727038976214042308025236662507050557795903072528636813923864833948576038543689575529220450559752953647421668809388873066804615130347639770990045377305363170947834666985452294865352027841573539691686637327145175067722171731238257142923622802006052185845591066670194438295406733048012250602284383585593563913242081277773166079977471082239954642723055174952437732601176381979023217265592765274969981246659764349053457107754963398937030901883820443898139989727356397376338178518889530865489330346484930404703408741292775413047289198678606880443371855296273388725894427013971276134125935595381566037254474213864435564615591324440920458811183932353427991551711738899309608658209664598902599109058183502278257750703257237827344263181684639921801912524192741703776430977114150462121627866237083312345790802510359273767031312368854503549541341104348887306725325071120674198791733892492629857054143385614838864513233704935836646078698416970578237270634655007227885105976793391983390155144258208937880549992399949008692529259611251081389080589545889556439882092762408977931065789605445768445067733472281816974183734458320447494132847486072715829308860021750303673105922302942510505883924896814905213318527462918443573552219368363863990135474563778801971268768213040635871077026109836036346420170629111149455898686745078136111120165200593297340115015206070667422958578285774140572512093371789657259917585831069639398835794980466900915387275851899356861367111527627275352645360382119235315756770518532760669731389592836401765358303465040514890854173220662412261840338982437851966251287748525551629214073086932328349002046397908737068298158526540428556213880460525987198739800709338166090627813446717741703864281487835872297738456599259632657341745366146642583474196147678560653406943610530785762133885459063731286871606195295998841306675084347692487507434813487120008260875082619581769195976247160734633581925319390726871141575104921775211279146631527893035479059948300687486505193860542162537099697110757805729900682529073629055297673018628504787499597083450250224273103220293979749684288243259115757342977470121670882754179902948414510696643697835414677538337385618495869526520492902951640582243718593234988780694374390641726204093636614202642930700983850693833911427841854046774141505005230988318871712638876585405809572736801786395238604426625838065641337182285585633206024111724833918887712259625769441335129591618673025592325740988199525094228994133469990069479666203925164908382878816422971142235169129659109960389443744039439169369280224237119317927158196823391276076222483585388203461427443834564962701685720972620529642073246229881979680084624800294786636417648094606857350118069670638952245678372312012423624156263142899737978364093758280030097099586177071967654262691760779854777250103976941193045761445380287755921512351055893142616454250290388394629063987258562748044667517957967849537435552981781948268829784033678941806273629350423260585260485079135888947607201128554707390437067947841270323782707672063468084128880636403409967102619192129936258048799725172565990636938182301178110641310683791065409543359738471997033458555054945648849658779003955235592968904723402293516036880887043133049503391569359569540138520310684614693343308897769209052030263517238761892611422055886904609180662361206245732185176082836940090346229741054486307232124328081062788026461231470715335031737078825420942558474218969400980978263475624947272702404338559678446866628785262012726769038920788584144814870236290411250976781176088375626069138870211585002249064649845713481223352766298890976842810700331247198904865552193895735879182085023972812373920492170062762615766340086371952180742479914429745972422819348334093601874278147461119030057038869666819814587497602564112716759977119288506423189021869232408142329908128046857872680254655647828305363081097359207654522526423675976714782326064100739656301234373222983430430171580412458287270921040774250909982139553378325013307358029565777570614701972085576114229826355683656562184444132081490167471156494929937295712158897206234333112593426332900367600221253319832689436034037652460434143908834116118830637947864104598521671831906265757471476933857833826909453976023302812259204961378662357876349710774954224275783907681758920792489889285690112055560758168381048285279871707761759866528074699913969717514713281826034551133332336222188471517692104920188416817022891161579887802224028257495603056448861432540461285340066278964620975557285720280266771144157832062363914411473579066915045845940365301898912429671889206804183548524431905733574464807887425911763452703495992191857052264624527313567074797040822884476411031778941246911839117714911997581429648190969962030110341666401800316070333250325962955003212765028802922142325581986868454773762690110317202294630608063600621127959836732965997754885269325367780217142159436253288075988176459527636960567432750037466579427519013731535869805415371107927536580383242782018358360363135333304636350685363356632334021711057326204492661009131368589876284603764006903990682135163600630543640588800863925639292221483263653144173918695879079235630794292242885103957937115528347806191265515410168152943613508566982392197312974266272192437205733055051033482307166715868816083210228884149940887011645753992189873481956269246395204225229114499355066564728826954880710616070655625704720079225907743784473312626160501269735084694134190392889242014337260091821666106131167905353332626549071280533850851551494237112679055865168392955076600179309680508904798656302633723098534483030303559787549177016135989238019065287408328033797946387770132522621608091945521362229822454409352173977352706304608535372611452715204883689256430909931672770467626852675821253376004470939755803583030822285001424735567122476846200654956033865903757986288294174642650747449689463172055549027508197507500580366462093343470065368303345861334987648853210464697950159998143034871947055957987673114240210821605175872672276952047905475226255853000276412988540098300700617416131559265645455068199359374478497064363619965419534758617341018825739637949238529482907775629303510723041025713823940424161941640090609519844717730891268756424880132039166778599385801450448290112360343923171083093765537843970400119274049117197271563900558388934889021255572396215794825738378342821948280467439058017225682155330350501053405296759050720467113346894346080316451116796387813118504803845943533478544322838643180174410241053820207980454075880352525647372322641143453187280219691377209787418745346636317284061385314274572160483664274336801929781352896550941594650236959340668234146999585518883558874470559763709130140742342378178519771023627826560687834349802479854480237549469425924197079087903099053688090471700279443391148579061528406515037101180512029666667054066468124166991080108601610194648447347825774668690537992413934058450338135012924198845837084148810272575390942620139563689891530981364164939513803440567451818100293015499129004828776833151238744343946171784725998640437046204711204999277641239108916083083710065261118076537356951127564257219945717714210380246747161620457997692447614844628407938198677003785114640603221213765291415659219720245228083012781711076784496854638984547335411069521948548760814275538282872305092976439725767847877749857489245209744119461047980497059300180029234253435675903087900417227994769869928247567176998338646930423391176798217172783032255568238859643535487266373054544383557531309555382328027460022043565752699315200380164060478056052946211170521952999078806127415155314577936173811681750724399851644212849966826363815234495345335923140391079164503178461251572745946336068263100175838331839594993614523710591039937511713306981121618072096407750362751234937552092914629909264579096341726435413720228579979433196517024717165754803987804118286168379777092203660315598957310444339296634247793837308254498488796196197066356984918045223714991436484275370363794910729067161403577089482484075156711229830415557405515520445784227254357862764089296033274676277464922684125052412941366962658788585309442553225624846507962472328061717472419310542460077208816449487742614435717023203799185577084587727875732412892941862708771839682693219734147615341811521141403098556277902216516116896396510942069176031396055490418055602708430451524577501871440842127291718484228803618410636864232898392239884504059322920796800438047405361955158446984589264640834174565886331262938717214957232074167394119629762655390799380751006326258413576602110331514702610351635730852366503677697495137359408357950250801447239171079747717116683395446679396471284165933595004762270293750491851982725957958201884718488788888508792379303364677741964770820833739413630042979634467931912441971628176266260790580973512643789418789038439315548964600166502054453010194174509540028898680258441165300816274489633165828441609430916450825918529311740601038792035777214057057868975126315514881812861534547235075995292917687918382884488723551429234785765810339366676153049497413527478199128194537484467337398148322912605886938578795853832045021237840108348555234873234526510190903206425578053654866405669640938418426812789102010206676996453158921724950832399621412918160790516521901009827486916063964071183773157864135911039230131217339341512345578877562069029621634501503284782337814796239914233614082262549639727957868708840866789385407188027619721936130854356805214410267343048834921899421354928508628746178541103643694873328228433406107335337144758576540577059364358156278678098251272334016301670482128550418698062514041395514920264571400864312709979597221805553476908005604357242176631579933052087532467222891307248225712783522552239303467769397352364602120650534782183411316372952836629066597552143045572088959496739114043621569964068131703845390791870985540311989929251224333670150435850368645859186355899166140985996439593643158760376181061687548222662687819780198001317495751930156223978527289762504658739811329558140685559059997994333045631163028483584276211987775061398409286117046018362781213385449045740045372796896223214934170941462795590043740613997594070321315748098097647072114569052408291115428565546330574362763912981612758098080460955626673137373320708815980997114586844741174701840658066333457889647180751087928257884422471546988741498087556130777813326169085321120974437481682732175946758295054564946608946710959357646298640084677647507495156834549359756617264349019069534506451666390205289444107759364042721164596654791018829883505355390427575270975491693624791295713881982462666837982525216089718478343339880665760585136550160599313023377410285602956323834174464236667461580985254168772568845019341629345257148371242109289850029917280300022770205613400605861669969411792980704315780433154083317544033732507080582136219417006979022391862498077098527438854119472728043285796875454237409336389299844393674605659140319730590304412574487685502863547505430100545207691630167115952022672632462645454337796579059735017183769116616252160568613704794216036540803625622329869652688392105883237769498154554032925111726881593490926798272105322825473547824022580014689434517549211977084883818402863858625542355294546880392219749366059003871696372900753635317509183009275390273354220483807692429976540702352520260419389668827883804002774329277017759820640814557759742228813445041078900765605939666850759181232258588672911142449030766053148847314723827047049350266972431075143888534614567932441740870475601925059236784146584859472926562263795513670583994497942085317843274670943966351380066650212843385964440482005064482670626379015842688839881019680305421239903765539550759793824639571162166593267430315955116166599194272388024291867980834294027025681787220460669055411262436319467086115209589249766256490303812995083539289014639652512451463835676826525418393596148273081097026245558533456505622962001369431702059453880103395870675170873396535755040306070980267874098476756456682720893491342748656632999081518916076463543718056794912334261928181845731494059455758342828952506141747520393882714140664457920918269083023947755809346929641921280012473055016017779758206405159790045613893889442070866595942633325103807006162743744441338999130199388077063018031071677913980937493923244383565814016669691889301291921489060938467661561319156043120424604340037735392646816667072889223672845480260662907567434872803475229679535540606897361827255747125814128321114933394276128120032811162155933060862928748229495017134864627492657586855857760150747820130057352879303257511421434510244515497287594549332897726238198720801181582664475972841273883057798762432011242610374385060809859199196133741195574840909573444898406715022346181304319171451291658409351253573985099620485804027980757141100115327181609516527397033647988256651994093046234821219774370801363208432678678931612685451622692853266613231681507192193844787602341417710758145813199008024651409268554118504902400521996713459664578640642943253295326157549432442699253699702234085253850465084243535534727119759190896031423568366881961684213420783207136477928093362778333885308139528746221445906221732675686214267267659684803662514081148523367485860745130716771444748380635931884710844232721076580044437206321904812377006660612451892601386099418616305701334159138281262436851327369129325384833619586742561400528634269395070254121541313098377107443807733929020435079524494818142302723087445926064405552008503303792347603780682821205371152280769765556539798814343817313811319523762074813683312302251059382646143556281958760899716451816679388628080556078197446085848248984386121771350389750422324334211912790489924609398087658415965861937717808303190682342467895449093566510025849626133624683218439240239287239575555471696939192926979008519618157659466389290437383433214307902384276653870336645411434827945275703866864586378530863250721150290080764081813763640299286512592974752083244483007371596575049209852338608883057210722835061786089359356119579787801738148679959913298589917162557453903643427578159008394083830891131275171549048068940054081401536581603157460515213059507429018226785536357036457625106371170152761545423685175547497733483355566446711288336262372407237958742459380247699238612994834383695902909901957029636764436151180104551965736319750979059385741116505285153508536595016745476679658584250597817893998548008785132277775800899694296405627116491929765996484329673657734076600277530343895023906493844561807539919946375070123265763388450110319091367555407533474210360921242749144872001659738706878306293677270677502959396177361431628359709666422020525659963670359862779835288876190215842618478294816127739344336974348273097007485079568651332427193849547994350366421364049201068576637837683879256575843402304734441297510116284014167332602810878201664696923599327092927564734615528850604121669774597685191113603807804939930930151296383352711613864894787770189323652061444069762957583462836864671728985644214428692492707555781559012273448402874887014379629997480622364769607414780809169365416165532745442987602262738873190599293460742982135424053987052653371684457384118336124554561085459120031936258610002547626659926791674804618217017477289321071089031917892291043069013977192415039732561920277667769578061657242816957606115579311962594146737646281317721316524342734544225173884985916381681506730135741690416436798516204169015097963825622317845248268366833107327925381717336511226662911162876202869498693383064357394298895671080199934117292474795798125022460033365158824654324636768366817889932504391645577609284636560955419451841167177878844822030608855320668904692994486376713268798031030830188202960784489642390747027574250364131971312888692129454214242665026943772145064868636271151803187986699298303792171356565842320611559857119671509492235198632855400065372371167959453960506392308105747791048053052900397664651069684448464744702855164789487231061033207833402615170688782564616742631644490497426021179685773218520819152749640779680609015006619786312215989953343523543943424964216039067388192551684299734458497147999488346224008888808370900517326687633633393988361647680612643621961248783337609545874463325471377842511407348939761230264277633038528589854147317811541456310695380293781628402743522161024590428079750037276926201170742314353021662774387300115564095500706607903689588692413223122196095632608863841813298728673301810151161360921815016270942443746580812372281623867957272438533045214904112329251399753803749840355777344097736930535953713388345954986715008318341243755349707571862470889020329560524523634698757363928977410104083307556973830902445603774059919484601043049474729215778698429434707306597928902177217815834158466879987760497122552752572641470500958241833239571424486751733359731764424295747281152520464001626079801954409739747522479900142755101432630057058781402282788232260728071276730450175607921872971004530778824571944219556919770810070164735708736325303709008836280593287773026315590580075687013935445143237136405954219513167584000148631185986011051314899406302436918708491911782643355396391828704390198057170800982148799356582523410880985827378409202732869266476760181907262724676560900422934419136144879355387505875771332407287575037196260427932388696810388446462025638229099241202245293428505061301924216540438376461200119537575290127064957406764396866873081835061635675899072572632993517674235295244139066051033452350490709169313635488979634746523643074041136815170110895036612010801058678134511576672970162580300597384343133067773340490744616798647061651017878343704673234221847115808984798638142737008736051130248884501153520662017595672229347521857449176931102970593290898976949785176437497634423843961320576185714267858334502248004501298926100101782859298771862574224662587667387610986516360695813101995644567804113622628743955143431212580433188785850779084964415542660528241311613845208732182252104874926173435031502419593414991953267236016508460661897839646065010386610013940332107970041466005122886292087733094466693147160786683294167042120413336724967388414058413472513723298016580305469969870507456501357022935625553649226086212025524764945083864130413065467825130676552248969524329094817482051066668877247949138090809565355201743621127537243568898934537323164070594037445505423303342053786717968503992038305929073875802349950000474777331896786261955359410907792819805587208017439385583005079355733235166774468469506430975780283049544194214027772790302455405782059971851132098014201698451551132239612266678971491075942360322686835686805104345186561580689785307469473221551790649579815408618749531740040173066714793374700101278015273312225714669096758260927299895704254843602643952538115688386081527822834417848342688447600860970822769548529768766550739740077519132423063178428083600006797373550968437972635960134876378313027691108546312321200817552644672214256954876587179759447474436874590180679683385085316077475328179733765177756804560250139212083935983041950877329491405570121905442606582874326990914042934363706634022529002483476962068790151125786030434001752963271388198501642864781362328298678801412634145090600638262950596423654192224019309484884430014206135086171817608508912733593094322062551471983059080150344112440464383646298938570423843853772029927107050458414459147454256605639216217503465332227162968128468195203430289027351211645400357595242635749218016241280725746343787112302297641606052783556151657736419633381578656315051594936138898406636861924140225052110169736922825640047734608138679642197033848802020466379936690783469578931955781392913099066443234096888614279406017718706364569643932679215164045598469641249344309443763858187753181670333832125956680767825907605660595712412158894223480104346616622116794634258382845677587841392293336357165026371363494635061210176752288633855898022957725603591866288447231374831243401541938657745568778723475751886117725687103398842520859188619722332970407330993636644281137451084020785341075752058352526892365388338503166306180583542090075353866490331263607835021934746408109305329600156790808268928873384756339593188532997194534248649568251561529692785741116363635022500302687351503322471429123939860219512705267914436893753817348989203541980740755871865709475967394209194400719209963948227253810501848408306891484677116095732584669650976203291936178276449024938443606351804569521673839188027179516181446425451058105394230638240392403825905835872928379517987736832344047369920661967095853983490417966148083378764488977256679948144087770498301536969896657840625350340488282651777578426800349572665600263843278679806303688964048265532262120739177826324147709341074488151468325110412600358825058517830074921141570898386662792892680085692407921961354772553471134671079391840943675700297461801991488304699437234029386195017964247407342268936254154152926632810965733793699991714822768707164637253090999632171552757545017804808074210644194914511813405234134341134322552558046686757029141177947586945520578304796671480078701606777410661605530564379221681102675341069436471052398641489778526821140667873023514357793501911695694057652858876858167939082052583630251525777840802545662621276732564550498705570183505400787522496424126774694981579048827623551888884989999894238558827218032820339763764538885231781882170865563840094965530118465676484407857723918238465576522733222053303381145259567406566212813152803443731902628816169907437199842676981745667270312003636092385094590414407842197871787450223128997534147933402587863834556196566920263150758506594798190734019234013335561615620486921497616346476692445129803766676894971487986279308732396801650191513778737245542646567710472139529158876592869237001794248605186775070519749135746179265101615117523588760326727849989892411711113995762030226964850832396525696351205960668485083211168284055930928082444365032154687807679243190128683931691903515008694436440483959609809743542062156511368687447785502242537215946162907615560815439715267046744390437174983972732478221374906050238418172452482559392037105468213845210959914408072050397772083923556775645075004814116559692879374973883467540090962249468506708742827909947850709300901875964646485400641846023635571400885642218997912395865227108740593526528053908901819141841904213703958123244869073010384215560186419757493304967241372153061423624811777623423929346646841819345583232584618933192208363541045643863881924680469845260405396855890320941340398442070894416900481640506836133974130264157548787762352244915688104505367037330637108296659145928766001779957330989710419089250293535958594491238085318088465053896360489481844213301658325098788166980217874640792746522347626611302298371603404223231839166015106667483937599642806323458742580416275079308478350412875061881960668712259825531915125868598675347520448434378256769044906573411256596151361246916007385755088799216069876218964963820216487644075478944336495730793206782609851842479947290924511487253631981959610678396796806782524083601049870256404188594552869562165001752964410409636508861068366861900955715263022449212687057415845480889206795946583098517784549333030580809633289093233157982905619023790077872753607309256605164011986490354887259193331461182030384024528904128476052760341156270787393581628393774314958301839902969690142188367529397193728660597707537095328902310209647968293858576738530326654108176009960598780766106537550645901923168653129861410440087150455984642796809313575968324239263166226242096726350911909704110583551725039742485185888418196595741115914701161246751486250459592044559674723785354481995802695965049936159667564234042147593733733748478268545418621664486439826069521349996410433431731635374234128158170563244496555082997394531448900238526402643461094133084502094159227477279974810727583779202298379513502827888665066069964468827202893865036252085013886306153801499046150876099216989697373426581277978508002130672664590581451007187658443689384747191665776987450242582233979901568844267557246225743299767668136299605367931796398302303991393649754016853940579810308141868898903548900100271126902555433592643465806566056826309849703062886597325948913198170512369561042280584626550915102302806015102899999389137338958662425859756605015506580743938232150539015165330640984612884313701346261229501764911060740086381693581620141091907638357508736039291737669871236435694508304207972163751152077705573795180312373688830504944997633612943206354547608491669315805151876861970003851359884750544624331699090724536864133819680744579513203492204330896349650814215488868869344413736443699909100427275181451725419308010077512734124574978564298481962970247245648367470680372602639137115131403946695188135583209668991177312902236161208621743992586364802505313110216317686315112507830096676872248990908742534841869759141907736147456341647711910698257211567617481250671998913835924456117619675422812274723245667159508347303212210970986338109787125481379388396786778559569685925473967658142149617478418593616844853206649868017514397482964784748334112987021923536231690746547933087132827115025733990572606038903176810961951721980057989856269634970877442444330237309787922710858108410126529535196747879446443464704995255517914812809686356113004055242369513172965499973125592839620243244162186546394826536391190232430997311106256998043790388890870216885632053700275408563839865211991374564488871185111257667132834571696232620604921257507221914725436286518010243572700286857053870731206317727842519055802828517203112498901731366590749728332062719759536809764074428573341361447868728495152521287250575236545780327412144955531788168419590707753062757853004923355281439575466645877964170165449457332560864407651007869787460339987669968042032557950349358328388788690376974082446024082140271091044061028954832706985730132150358077347633708565863991085350576195749969160687389919688102493162603581948639443708979898428476153256248701805439318022144752722810331751132635474776816089675081031780364546261812972083513549142412998448708557689685903057567137331110341249209757007273319826579904682468340806503632796897276233552890959216902591399809011277076718146164084573723868031158684744836515365462003051609351243591270748668977408093205475130070305612382395781961911912779756084913432124761652620032441132165703014261509454260117339785762267493821904270648240876527070410321819718261259071528541725112009472803544639220406893490002577822829240291251107287600420127867580883465471900383114507416966345875258180404818829279497116449245390403977302927492201396419166990200564319590000044096659209886844734030550805654662940562539229852530586975395534361089371566822748388259561637463260684519157129440026321628476062303652597815740284169698860062002087013792933353104298020710345429806447639129785592576529166781576221047415535935496453693321645434442846274734849531952007719832898010405947115394542573216085341065660865203887664871502363795896532678126563080233809421761897110930076495716041672360154296480985702771180212415776674418984425231579173250676498478522291079674138475141938374139601384366686164274287450867553212512029716045024013353147916480132016467473152212078639542348324576222245479236330711239361710317234443967176496335006450100367227074407119037418736153619133085745128680604834946082251134270020526819498804074290406035883062142815489795190004580361921168356961125151696284786339356189053041865382084836237588859734247640494362514807120374175900154801142942067714226606913350626014598930651219921637670176939991794142147577809125423886009937707212113507990762670495447528921549185444175264992682514023891362879048315613548364177488951837034197343459329684567541269506231406252663227884001877262468597812652645039432591935830846024045411112071600806321550005480588854210678052149359276619606963771779279146456388549622890542624967492893620547275432540806484530574913291727000170094548310516111825514793570432865395067872081565602996112382793050929946260449720360825161277453272162814939723183166460450683587653844788614554134627446783951092589585489634451957767184774803792413876295080279614745764945323597905524006637664476627517398033433264675791741775600833899917598347303948885131909024470995505671882228715082732222669481754789582475272179497698889799700802828703223407986960301109869268101295034884058843238658073186366473419858094231238906082336388187234680541949445311856259676550269791766965903477272683325432493604305969902577563376397580620022036227334138831875288735334980764665894367316950597937496634656301133068191263067716860801748714151980372381999433930971206612637064660024244579231630344139057948236043351695256681441685171413046087737577165926163354856492762974824096491179895581232891974980678871385800895341532009739505205777127770337924684175185073402966732633895214855514201613396378156777876925705614561897244083596218877471625316700973750932132339352369044132716268573821871936707332615548197361838886171516360751852539027089263770638545172546474566642822231914982843423812788372904709198775693389026667909451834077228201169535487309254585147204784134719177810973175529539967858570428918823297665834659454339310502427511610927123617544525908437826132558525386065491482214267361668080988663605121145363403367029277675063079750653957528217525189090926518581192891419614786154012494104308831361510025201789580370387159238505666148166202646479827482546074670218364139607574578257468863041268910549497189450756001131004767480420178228923951696713146539150845434846937041880339836799519759266869876118009998233491212030860760115893790784217723345950992025596057805236695024073927798348885627124476789802272750905641650833654952146994567405088603220635086852545615126420828863012035723810064730278846516749603611165230857095280568961360766586322159922107151706175300515274992368868693373552002628689371473704886067335464783753553113139547951916323836320254076662103197399997572943958260002215952741666274391701910796175859931017084026969998502233931855334557796131748199675816437469668510788905550559988181413759721532167822512573615429417010289640407593346494720268841337626819575003827014234249197915919661161940815602454383325269752016966899571296259931948358732114785465730101484009100107814201980154529865925697186931119401916954028627734599282178408849581348307340184678235710196360143843644445642503004677618902610868613781080337664246901113400001492475950000392458928551192906364179681862258660091691709662581605034283615953032661630351150407904676652404993701986233863668442614705755003155483916463385997973270163419177140193307203631454258247060777315669432396983296249628439249564013804539677375032404848743370017459678919890444333631415013084780597454344428719280054758652479394542392443693706566497160283876222333206130721246184595348270440016902208206687042748124181263852977884352914957097051296679160739873365789104445794185917594717048875648331393818655437294214435018592191274785374333375998710608739331146020301427339654276880098902650112123760533453677038451091032229087832918571197127875701742446683153778507749787815414638701682491792517783014647123502999519488491512220263219827849710495657791736313324009623850818713306923876264043474020945965589841581947706844502995439583985987525148561377307424229724346381235543228760707734104807148788985422974972157854186733090195984408355482328784996950186954980496130136919342785706569358510451276273841113500137030359931335750037770808538609894523037730388621706874408373624527125796741974540759845991761946450843326688401387307367610701657343626474014802043382215694663991087338152322476671421493996985541211790144397582005040215390903707024080588691522734448455610070106406468420144890292175254764557483130406678154887316667965118826685844413353351408137929242027709352742261806156985750572474900984621197062973632741283582380355497344688316550250804141544678716078935642655757361243923268982855154333809282856382757431116978999575256832526993429986229765897200068632011120055558368967749134153870157717208961462471210421247532253289381882403014238207368128936795632113914357035218893810419013231432233318114896932281104972010452718974028346517484462472982332941827397403939849609165901775485176546995211854232185482290681284051560939736718109125111526239416360743782907288763158828250158724400212886528417002751164761411376873797618546373014379677138924120418144460511541772621170318230194792687164635603642153530180273278417160651636153043577423035831258909964661168180396241517311946199233605442226950489673788865091867285905529919683654192851965507819042997755005821434854867906521025080355399426412189835264933499905708544248721312862404850888261327154134979812743082840486581794772480410473057552645869642281387231144198300540153331902779448294936725412074779473955396991109537122505951088917238146950187524231728570624394790502731315622245045242017217732801953599428626210283694287090449571809612712007994039294941974991973004328083940124417129395709020692611584262663791115448384222845145868910561379860793783877323547258225748669613343160192273292947849726953010654276814897235709482393858519944573514536919845551105784233360806395782788804957553716132974430970858059291783380875220647217972699571511047384727171793875738027098868356673676535534426482093518780703995751819425780416339321236115773903013225550742320507171330807569369980513801487376269608427806276587300341721504748827646035038120840701033607477755709266547994661319601186179951464108821625477801824216098508794493101464554719451021452652796725981404190792360561555499504809748001453152723960960770411685886364716902483429566934193146163162696117932715097869276322044269851890394818152371244112490025272226644787800989362176906003587274809314053908816210768646417305320727527957752512416227408817923947857977672016443183198217746564001474711578585487712228655201016441849537595585516282949817456653138353394937733056565648620556784660061855026485471146807997216724819264991224468582387385352434155900569122477741024757772272224966178464643184520402325587829887842720245300769952030495039576481263873250187350627711002332599369568920298017428397271840854548434391981344426304463335415520850717177620964428719008536503277362686988765486747097149023229652011099942617967662716699075617412349910041540522654455528750483085303849974029844712488299646005151642911629535717964919840141029556892935499427516893721999930416793953430026931336992506146120184038083310977234341582624450313002523563006937478413129935706738432927885554634805765958257075570473227903370553515348640538031453603674625621943023702141988054787859571371013892109625638728263329740754984999317905460691443623131191408588570347584410139470758890097845576880112101737949921316799180181846298729325004792137700139729861463279253100198308602610955765748236411971090570121766532536339703658862874167613638502136708235019731410105530573269674709015864639728238899150668816527726195954390092170225788029635025486952595986165002035121748866991364108829128968442288292265030753136236368371508510367371361655717519611114861334055692218355157252250311182655085884851215352732986956144494129320005718134554079754186393925067774357835859842934672568633555954277865241876264459255380350979755169342420176400110107100341877130092087432592361978825650329343306130189829054718655796145432087956555232686299516638029094850165277530375348813705753028887830502207462864287271383343045156067811053177790491782053860394996401488758834836588784001898429470209629341486572952578910331406141213320069654939054143908629918469573991404149357336072932161082706205570735558199323949933960185870148069853389524095111395304912465523067483691102283647388528776922742178726555063746953072551495270877099786712907332111288295991435757651657168660196456664884943566927948847791936498727639871345683710777328208464032210427167230974015423051948699422261883067948695237729817955881896553719215336736134110415604212214202807435957063329311385205196406792832162713081725426826779570509297758628862031884260185760217387465702967668959771728559822855031651470393446190803501915074528510022340462932158124728446753615208313013702853341790104632473839299698693058691127967018523974923160472371835074612652261346386910341248104783165130842163917232217984778348611907712432531338753628951071456476549306933393376987081537678702099906198496255544387118530645885879981942754229434015561530717921225819800090215312417525102179789191285098471537005694528880727194491923740307734062156055076678012246831003399152077013247525578299450614986854011055376872284294919886843576567022663833671219378941996527773596943821782179957721367262464348292507372213707542094443358128479143366520969977219140398695183835290494579486055002870066777714786963341318861655775983472515997944735423492541905058651177958113343667001348074381252517785763047203201810342688531267692712599319517723424315957742035886051814962277541834060319819350921849225794425051736732969422979447697763479901923338482364264578163820848360574929071992844284728373223983224275392664749124897919385363135514157053702497033624220586638554888082086053159237503575372466400899467008023596004598054983534642038684940157178779211131640217871009267764503292659353159096723951864865519642731206289369740733627821065117967161663896588047462621777290333913729058363471199067055229592137104486423029199488450294985912412752095461282602789767693143529608781746556179861893862613298461628543083216383485226157739408455876271607334211457402367916655653709885745473298324087664796841812204158512010670468504811524065310899755721534916584065648735697616932319369121661929102815839900697253746151986552308235879634826213826359850625688747452643852429031976120915373855282551836553280239819713090849289309709784902099615929861110460822961309016514878420240856419891335344834517432960307248273842118581048426966933795312856556801715911943932289445267866724502198418401106707411147484314460376030696656057467212726955285897288613702343130677422475386007714635749197225344708359925581312743382677120119252661110506856461043238065100260213304164560164067234111799259539399600662283785113606173069541607613101193823213893790470246352339548603204890149455294653406109434876129696912454440774119670733543492447400134601628967681113450025596503066135697130275373182150515093839007786498997035484508469063688075603621643662957902062423349519998221587059941892200143824020586585955612295952320526655292406649291030899772204477004201080497495949554428376849248741766600862220879244736459390334993487110633132969512485023118147105737556520903541608838213452180588870892955959369175747234183967260624824025838087107003822192822978280410706833886350587286950696558344572528965621028402946237630552778796896227884427974936884370380873554209667386955312687378915347949485716152813743968108287702735137631026404123344607085635846553452939517829335986010396482437840610592565282539751588245560872985403322496777298076842295924056172641356992380010855597616216201306459256501374135832844044425378121216309511872383882533008571411556879160860976445794077900688247989424083805908964294240074102963318105009386962460302659614852777049563485161630387335035935476098880461034501906233275172826055857130278398844494964338078552473532352673739599154095050711420770882518215372162514907003482903353153692723755188944308445246947380273942251696561909741880760729294972357475542757892206939459125157733019047981780964858224752766694660499414192367763258428879329547863978945394766698381776679050670841887837955064110732950786846335407118434106711573940827439188970769298848859363324078211004450125608586775968078326425153370962405700998081414213657181550967549793805349758602719713895768016541130667385128655134470455303568278092449606641760611330354502621197091666305363697996715728293392150516126785177296154712106685664437609380484585584570279190483932827062427736138479689230939633323488154119536784244814324395073283549238737769547145264163473856731372778462261889063818768135462766062070829889564296054491430620276305612090356353101359924843610440677759320196848915386856173403444791450293618659615916630468372518215200489750861389864937110009779240100333658880674878819283690787190740118069482877839673865911091656169064017193417465007075521528887419758777583087608115049267575934811692647859688220710193422175089525124288404446094000056555147242642257031728580152866230545723236311735673929978804837741093904201873373843302879404026138143538297289126883610735617961088548344833927132269616434613476248109958680777993738309898583963714885408056375850734316659412164340657118597428224799773717179270175601718910629902803699973606791031229538072632298757676861607352543524957503798381808929820901177388896445501754916322674992026456709193421039525152681211140642182867366184337532060687059672225334314501076655588051696140343664132988911917151418790921540670733776138242719998675898359864233541894474758006232274232832226040408084989783696235464760826819378958499762172409291891485848371583085268095105597154651345768880745640993232145238367946900717298148858035546797856323741828173873204317600483663857437389590327662018693229646072815331673768626318038841051082755642316752666707664423741771401849065904721616128709387923934666222907017835168954326320058281967471504894829338259459197394501721176158108425817705894279677167057883733087937955785525961696900024840520313018785233643580193020723965361485856043006127615205670817700482926439983179971367874817489242185044739093602103637780867376825838411250638458960358228593595857433359676889747528849724644116969597541152187153075317431055437703758532796593545906763593783724849876407228872729625644341457718669162740130265308227139153902636508615772155185446027373406042456837378773625939781792736746358225658934969829613233654821984561155346391339601275366928689104093180099902500259441661588812886052928278616082235820448225264248196800366875260319965829339385228032947730470259492281286480407637608123879572015259823410829550217098449520475111054983298454079509648140866906485020560561604346769622507217585135955928262712430705012115910123039068184421114955681492440829146321572860295428061158764514050806826901492861741658232952114439550235104810563091553750515889812138095445174371689327690736131943598044557986898986894660013784169264057125582365717272204420145150623012040123240097879480490799874596908386252238424794451474168719394974510775460283052111437388848694449434598979465265747942445778454165498849651522171866503587378212836876063588860685691470845299587688313982430787842054062539152754644836687648239785273168001550092841744919972280334546553381938676855353023592214506046512236114773641997478152039635476765436315236334988745217043534679289101789048768824672883886414230049552536805696148831705598090549161470580814132779069399188361398986578909063140971933036396192910983358429698785293337027412622217169171433433333344118386278884441944609405938399490300166536134755923876200476519690715298749442169869941754484383602717003473100660416133258584956849764479904753297102095593157376528782659728652413615456072668716018828842581391162195287969090726074415854416909011870150685484777362580837495319427439392010627475961081494652193858070773680932210598390068797141273069690104445897442361210752566327828874614919837405754731136893480962551179737047378048000829091543456947219339325067122538984427211695384275796451935884189504880434621204763215272910049871638978852730851580837847306381709015851275872277661408741032104597618520058814011250255505489381658315902732627208328555244219924285597398324016655274428809788646957668179994693094884896356484762924444037835487707862018890695762382251651798158105791021466684971639013385106283649277667547773371819766031338413629628074741129524967834748407408742344593567422485193764044400356095399094928258011799483438703392321689141224805438209353411833034988837250256782472791383290815369069447021408422538701481703543438196126930687165509744149489741948830385901674321795124480862706087205552201549119818218730262684636835140546742635183118371373569653130079369037495547399334421979964776449039367149580015271501311696114224204810094202642797400993954977107114170655106122841314985703871920852161853226964819632002361431015035068056629715306559756651106386181806233659765088495808012245986450289835268056672207067428068539977144712802717598551567062207809920437009118812984227132388011340394264020400423557724204756279233882519692609593390639909502968702277774886293849988732829348759064216499105256051443419765038684144009270198635228525158910702898820319093289163759186896706244964388367906521538720348119240921476352387208004083443655856024934911315371436657933054651926549075384132221850924845717985909409005505947195741973810006432778781739206609113825120354081345575087196250195626345989555176242386917405257552406101150204677407354989199817917198063251283999623587282721947097713911284492837614111789953018537448288861240255988563506106008230144473106033715967805182070723989095057442672352325389204948218743032911537183696529395812309536814853584633376788292042675439844510095458652104388556304152881324640618697375098781302688853289104553360434731832126176989672943813746858262832324382085059712016745753947339988909110431994132195114882495525813374291098282008096237839102545352040794773699540691324639735015240518510722978545028029810866484313086901823953836465108069550289005329704022039079208182639404899376230562460284340882985045144843280978743815937317818855045923019196712550295021596813217200719980551193882827392384362171272017417278806186636554846569922894094827980999449952672255717051567850415154649032313216313212079902754373752600507161974527548043962847173569371965409032131380725403788197256865935613861201875044073224788932764772351756210621049522712398658449516806804811259993203663167218074733028412062859104979543314022575718645859360138288897163194119824396066215882899948969992814273317396034773055005981155370303156627634568143366807039566216248989260605248891001125831736276270746578034994886175813240566341791332154078246981047149468529445177934852735895356387444568019255255669389700169089383612152787218598270493894705928108298080553341584230847273258279327843533136477744300563106493647409740238897611728349204948164146625964637757714090670147773559939070354446744407232439651944025061044638996675069400519174146764520578669021591176588742575725403644166847506270519503364161462045678437219617912604718336483043981253630665595546061024724382562078212370031979542924721956561762972248384825623278468037888313046180630152909587251392443729562859113616475202960518091694550224739020259725576998780432734112441796072111423798558068471142200011347058362339090295554587470050609519681000108230740623871513740418084584773208420607674753100316694752572741499463470084332882520784603723486997924004820238860918094782537644860281369104187979324134718248653614561676637304120094459224293833140466167543860061033147758741661383802631655683999276328346373969484139696746409856774389953160437116757344346919906515144926316121346523622442319072277021565330445405569215881803612863845863650853882647125857267338312448361335299032575156892912706114901365597788046771553566020897410831696090009846014373395898414315203424403638403439454595647550219808489373142077775072453810484568666377851508067702909616037230705156682773507197237503676881569599504974727505497521192045270342671808451055670362465366597317063392709965105693207556902118950924960174719927707289583689726799046652237388972702488375073440073839110020198710309449295746854212785504275615274097366960490343148578415045908684272384038535003057460367286019416850770845445361661690316702245690286948096293399483529293276193921689024075919355642338850094312477766340858979183411465044066896402671751967804492177439357861193879641371887650576750102899793711014228529736567054006308445213234967911065666554611413124099773280309870161903441829377236222497313778375142896199998200639242940336145595478583622638479363776314676197058847875610826952756810902969079525576389549398561896701875194569757974146679255480097876154599499528474081397163764012684795883020381491986507340615885731277453616063778992071288433773405500624654421601208840263652103680218979842863431574318070202575272035763993084176926283211114874158233596808895088420946938973205159521438013781331046220712131360873732390164994020696843743498589649162881753475214512807003335521823433289723435045612892307616378997384710452569547745005616390286707419345481118464841048895923475644799005887697177466513407423754179570380644491220664503348625609602308552265116243464059295281020201499312158354168988095206437146409381815464295926958850845804419610462508506651896731662657354059113819644247871440909026881497309434667766200788877728247083072536208739823697818417142805144258191168178393072409596488561144867702990984770782826330516841729200778465404608838001343850965362705679167830754771535909662953514097094729666584660786889922729620501680794080016201334537220568040610093215288482629765947827062372052330543200737684889033628700072971162054237161707957969967180101299051022056501547527452899745015862526658542153824621897160829118796893839716169384622792301915014614370906080807572729309248099866221398200237473963464255417012998426532357562327197843605581362143289855862328491909692329231796102236778495457805594887349333736039067298965346662306564203161208333229764150970114606435678543572827905391814242368668313398835861882770617030221852405696152991776261011191019065901083861311600309988756918033975547718242784391121950881518259691673378526797706731483653405864807891332094103101401657579960559392991754924366746414491443972549990327853850566089342273701075627437092323471829821682612976973681686868220677931024846531298421780791343000518086845833446180035546396815840061186581347643763715399877133526255258345514430955976391624711630177374067116885778093090305498921095065366146221808997528633743499836894016233351620466301408642806704126581081139157795942079790551226279792983621609407578535469256331365424120875006899439006553786162591497430891692443608474744228181412401575230260310582936978782172158168859821780462236962337062554548161223643461724459158374834232613420858264295126788018267010404148823106807634232908629619119101688124567550812787035217384769742989578757506397404845934582887309691143705166787149985247382670094077277770077271365506741256903712802653189779459089590546487593297763246809757705723209290644315941892805375612472248268244628061982693718065576449131790548251602614447993657053121864540654304998518730849578223320744900452133490436463088112058275962638926096781171806544432258487245456711004842017109756310266106277444723873570987181487790037710112364418115405599964598961475067424844734470350164644157161568863113562667625458421012087790687170368203654997357636639853807441940849045188231613265217597358449246829106465293500062714451447063058080362095396912215047570845744607832999665953489777283941416031832843313402811087875707849009813027199108058445330366442290415796744360244516422773658219530589984451520284732073756690889215143508113638031161781350692557559396964416305240598841658792127350708023090449346431758335039025035457626739668504263960928161173063888336162623834365537338721966898836652182720775025501292845341002190286407388189044065658675876733192274764429139217523890192770970030147085400211893722088605959379480968165058159525721921282271001027644777207454376194540926089185592370419385783337776476063896539701826979369411621359208423876201150627682164152028178134917950713659636150816659950635495297949852398515759990456636522379002619992363608184455369956530439231367532408842610375104129913771584442049216429534830076714899069699267182880232092957558998685120330449926468067429493360109053275966856990906886140860340046337320810468338192955623454581893749743413395154313609933075869823559235960669983855109022419057403974341798201253090113199437400660277063877837853786518548661107288537104151571652139098978745333097641245338591753567508112858350460097530343238343428640474946156061633041972967436537326532424835795118526069480698043825226969489254402579693087400246113964102717683837577889340211734332390688205753799715484341273642688734245596035655717457447445428639942436144085182543034917189958235229364038306063088455849264871358694729624836545798817512947633098181967300660402570297192654788476795677123939453376246862527681915665090332459754968491901131760110022368735889420401380608620944730277542850112940112549551694924843691207954164328418908388088180914312233175555822083048919522271123899156466101621028570721398941939198733330589494144101734777030810813032502180204107406570089826391656685153614232052133519223553363968728894835548702648203273197849433610115538299948970338987240978518248554768463017375393087946418327738337237233917842687313743782617150344522946481772122756954694695232735627051864800183202726145562023655709700410060492721789465364375168741348257168472864714442176911916758127437962824768011057572461002500750115531178160237127742240894241171474556826672913319345707679660717242851255359208526758331520811601031791837774790219583856609086369620282332118867123964861704801294029499896792434190814564620059831312328117506197270321101833709294498755642369227242571214825861509073508255666878613640421867169023987644080556784314585114531322800173465362296430597308241712010968462073607852625538546515505689260232310747676011633795553636089184051538522688097759387716653378819766392630127206780921986348656297347791405855086367511588305129832884418589148392397494173240517739321417521413075768872075972764238777018459372354905355396241073811538515929373651461013037162502180887331588367185594235289601499267256302637761086797256321629973597712991902041936452779991207081153425315984718720418520071030816609390575369487409366970892467541250881818319855547514715982573021133329936970889235908220321507452906200956052034081766948930356406031948870917009624777005884104882823972946257739293219923884895804270874933193072676004369022710391573033707562176552886405565727307010788531906049498761424964584531411579147906223946991894175574345154404994592320444300371316739822886537025997532528493964144364452607636602833037891166099532131307572304302415808406792467977694903753459973301272340442712101458874548873632221479897451231757747671083920075001361765899692066688103126923005231339483319590191111917199906516155310722834462003727942351205324295885661944662577242327233330028561839184532916975812368631594996825400372400583371389806367575783366616968259205499196224265727730989568683987760627933998676505870742134730572533523082955203195888329143842649643614663464475037388580113607316080128041738260168769843521618672719341056118914982614680575610020643803269216063557522639259636960298816562743754141350096409121900145340453847565964186783936083867898735351790797906148025322997495948090467324708254445697105177016409985691087997449007923468875748178639174191137081361508750722455342359291858432454388530931394120029401829818906373764711109040120531671686211195799494825805765944176556862855279849719212845747372164086249368904369570496947901790381238920895335082202838633839040308401747759930090383543681554718299144896614538303964966683329829806800434299168386990300572636424158125699735207407576646969160438128574771783584616733368649463020193577836144779202290137277303371877095993137948544722444629115944697441541250109082646087405371108866354214441556196173608048739978433192638624496885153154877996798342145969106835033441266466406906699225528286263098770456624782972485505758358884574906796425118963605613790159446418713880756038898569205413619956659920163545581343550001724153549937316328327573166227749939066406155233746852303534882450718192134190776717488046880528017454133359830179618385249377201695454159700783091670935618988489767093076320911746260914425572772854651206184218967054330223202457969820409112398244925054296394612406903727530141728899578771369349431462559712571758581730909600420890337463763764577450330073607580378435347166681260223432367800130810301986319870977464861093278157562155129849337758132376899118068169395587891173728921490781308441704091525712633323189638001378517692811870581572960963053532776204893106204208569072023219698787942778123759016179491106934404452968113917971825689163923244981521302522517891433160563691293729114222778892331773447286379099174974713167199622929630120787591370281750447519763939187661258505408751700217574916883028471403798149543297925811070813758276469332232146089839109847004172055916931835169022902426743542738857468457333726877113421675713012818665804294124017355176598581619882440738799056568874850281253635854170787692806962707101838167002873017971292424775173188061173427590987291667008070859010834774387284851655755481345072510060949571983679151312402739752703964602407405015452205900258309595588466627982189365726669768709478340883948159287089545014328127509032018481914785088659403118100744833887564044308651066293738286900704611616636596448718422680654915487562332633080239629946950299520433201561820067980149278342627176803214269407983834936603244000521461393137006210716869036808554749031375446815020135650651574239275208774692563423692807016387204422495097306233354436061543460959296044520695965257037983860635405008880956684143852518945124781272730056266587452857128579908739154313597686772202138744884969364802623483631489252712204554903749827291694340869191734461565177752344010075569768961008760977016285593680265350893804629736938884965776181909350814350944235535419443210963430111484290929859838116091443685979331843520782893510611249368834433838421622243576117352150115584385004564006884217284747632779386110192056811061230081768050013844702831330764613187594409140106242350091050758506456093013217726654030542063679896623115207682808419018236868348012070095843714257538916332371236749450919036134274502175795456120507376532172273861204679113934387459094022731336613234513937500902328460973424572553983806382122487779938974886386005716691745987739621939184331168645174960758209721525064327155466463223862498524659330708975571284785276478833503503163260798382766787933979988812909195031396879917263804389131640245870889622724621941585684685248079932708472330775602781019876617787652830914198586235868157936690210358003889042018643218804109847170871780900312995905924956720322256335593114632223893539528188479083166390793378557822208922722939443281775399081516057231782956661732889584560794687826002485563352656884749816775698154393824859821744861872192683585217253396261490707738936094865628299260020007932884802207933810770939622092512515109678191604556146838520103390868352747759047379512185045447349067038797198160734719921035846535817701695432118059171077881854671563026519075105553342476534912612612059877919940724080365307486851921313519723896140984182278412984817010063887025703026375856140483806113152182602304832407063370849434069544779949371968956196532083285158784049075898943695016832379802317745866003562788166875699260389586798026737987663459116047966692815694876653414265747301657636328151333547328637657000824524941385950088343789589601100242609418411903255134958977014557325559053638894644446562761531891884201684155529268753394603833548464960398733912907304969768940450475009849724742014658010782957122070336452573748318394562151085450065148943907852449187495599682251751999297356511025631049263916580545147479923518930669083821057727742908643671612222709627834421870872280505774133354654204654272725692141112081231075599803545058923312300435377150954767620214349345531222273923703176275281356384053331147367534869426338900475293759769778996235107028268023437916547999206649877012591224773496579118700472115080054616292234188005440905808016718652927286097159588625151798279218065026799248534183368149919059272951955706558423469370254372498028798512851425207350630169460255659811671909561188719197314388968620761171102388690994116780473789004495689072423897125089330402432276928535650185171878231323472130550725319597452680061271713805432497953940128597709887895912585609021657397590070413139008167219740001322333096400180391873302716535732169921979975054295149547834164249042303674795735280768929074181841882097114062852002440733301733050528297264961031687605191701626203313313038430035709938727753346178244348499457711496740158782685357620339929877578043931952841936331750686693536894326973228734797609191092564456203867900300654184022085090429695478219302845983116126286313319864173352327322197313866588899213385035475753358847737181370658933134602353449684330819824172543902826580931263886998223154869748560748862492977105061476028775385191839264931418223926943639808267041963718090939191382807084674456127054201678283326567763813713324040393318100657858196529555610922145638377969735364002111498045632591722746129457232402342350181395848170710965239873852827352377837039060802767222465896250659768034956857077741424143151041846791067557075603907962500340436925078203222969726388180652468373261023625805422840621533608059052589287432842319635939523852620033299110896674640497442130381553917442508803624312804193142562734455193178641658442726999352003416760338525099285149786436955478658856170571318288056285110029699581620620731118938825918466151962934559976914330303090941560949544846405003294172700451813919585027257042812615976443597580330537333107373260667710307374710195830858856512505531355633343758553334070364763232606948456351693260378330029291753107514469647302441142845966688648168240404916352288515799336492193870984144245002845775275732273915668984078095897942425744271360519270139996492542698632143494488768421890846314182855549772879963637386692332140979072459493422445098840346828824605313175024861242359480489491014471931999641762385674265665336964226983657395126480802012668482322197223031052980165651014177805428097942501583696472131954705885865187147178742437223190839687242608284489760872462920645598639816896484646839871212321377818392235740491476170445242167019775348311972497182265853597363560258891160486513454355830031464114519157166384186217128548154120748999957886493466409977304606413538833441289091096800065460036620794212905715249811458199688588170450032635320277736296084488449347289214857561464540723386410075273948285836925386743680272149019143018956573338443150517432323608734246686974607716123298672088096146473567539890838368254256286497702060798372525504610842500316029070630516542246643519276086235396094009553844572076024670059157336587591931507656451510599442688595301244957512212939470101586843141949205994788757292458404843080299575435558200229039220946909305527763903744617729543670323930311770493523416953484506018633152576604102676155462733034406242464277009261610423400333914510233340334796046934859351034135417521252417814113564768535117878480214340010207466638622725650658327113229880999329636098906048503765219427799687153490555344192741201958960413325616726322359229448859488220722717091986385694764308475142161712747468524352983677913467815514847162544607777866980466895451838217834438435878487739253965622250703623916743376002873323868606210567823915364718783709325738561502394253166649962643265051682193850661994201585085090800416592019924909377937533141866045253362089200591803580373249044648055744204941630017708509297371966562381318205006414368572203592415891739059734656610785575040692601302179252608887752835758349575698114184533461725578977831373103059754214490463057311366945236509023894995052635688787233558005379767887560863872391891555084659897113236968578674484675131133763446198731458996029811716553130038593086430850793127530052353392405686802639713749432200158392181657460423205054845104845294930729932067235750186550912471760749096572985936213576009449306303005805534592875627909229995019165188437486282962291148389398127627630697238892576317834325956905084724062372593346360168533618338689661023342929349226010576264110584598903949507315228298899680429899960608879843804194502244313514097454711249198197156609428619832282369212076193933080859127802853816748683069165429088730309920270728962252541288283249642612689741525546477629545859685869107776063339188939671737628158284175539722294516122816063420534457669689432946341856717066224481563344288949672442324149293321838762557461768297760662570990975089958713941658532444305162261788244157461184780816609412767470079429589672681025779171580791102207989339525277234363796851447578381560785657843115884608200145254225337298868770832046225127450568428243394135301975038195542289098992763330573300151268437763540838259511208961505900972205639843573533113859170604540187266748694997787092549492966872012186820640766764172794339427077581491210999623408163393241413794330392365031381772468551498437326026233584303967080001638167931322200930846195826008567766812715618353852740784514015642902203321983174675434615431416107514208672635235633983867056759855044058296902789342313487587567054307841143080991869655924272927645269842286497395639221866514024121058687568312615694192392375149206807382567370788583391912002431680524088719040478525968412758691968919059715141644709373404169152216348052462797940521247065249815576257900792520999995227355275570983342748667649515470276205380917393377775117496574599809386749704689215948477107976394808506202928244486017707590708601401353036360181861925222744096390612369730103631614027468923533570618040073784194120552138322218633202787429573125444140621247685380712044515611188594496767957138616585632392843244762829781346778570694272454799372687651071568236490923005137536470164981569565464279980028473544553656160995636763281237360732437205325277081973161417728683694423175195825060476263502608808928162134897785412717484288865466249705703307820987907984851231720536873072374272294326880096969466709058094357605930651599779105419357212624812504493854889425818468105558880237185807096999966784397469767841835872480202752846933897361047435501604360721325082957620805029838817960263423634014225317598100921998103696778494662554570297273975943590643657775919746204201580092038336612348287383077071654566249087874112704912103514996169437489544849110756328581109942509040243101101831131637456534583909392522067613475402998789124552617767083702421797243274644625699990282437488709388397182670630884692240937607670007709594387697240522796049894150797584304948657634154576824908800417469787286709392143882919744764568070400950393396293421496990604736477975848610700100326596214752830361656799224999245252399791275612485908871897750986134511056794953381680087953758491376564699218455680211296504951814685172989055813186291890116137601618693214157724800797126491284242186272256226984804806967706799349408321119369119748242154213308278026968657420713044790180669616166214568393394910148224987392154992974986620940884343374901202933936422254671246028417132519419877826563074055796450295918739313599139939440895086157020633912336790139818161347791570748813692745874911366927915515407172519669659032992834064645635204580793754553182760755044628473160187368949629991298712255683760708523388641085163031527760752913584727663842916017503476867327820099369305607024562897918662652485303845492675055983453660883069895636914358657612645001520146597636391224366552246232608634796381360278965653798093715543909668681000528627150258010358875905093348178656198222695620832062393283289752101117431941583600680264265487913877928660175661426407687238619319480896866282809005190467271377449223646758840757627572446906847126892380368165388907538933119852024180448423871759902474619881583709059452431312092797382712833154690792485222151376729052621855276032937296951874095300147277666508162076547531937670862952115752509133855970503822867177780996069111261075283167771629188702672689615059417556385229659933850626941266638993675652339769535396295137440772038147751459006208578012982392886557881988146332629005988175968586926113620188571745521328655765687638793644115841123141115599104591740888480923694459421730001833999757508369163240926257712512551408589854124870214859676369610210895889049477633661923022706727988897183044497727297603774607192752621972717718452719143379693053142215155883029022772068235907515210303542347354017662980416865249588366630759109364464932497821305952748664699943016257126911901551818988909101218236286916260157992235323613372883140362250940720716779870543033974153736763401801213037229745274487127896767384857852539685537316493710580886797754062672356643118376669725643566922268572557775088282856694952176345673737641159770118710219929561619562830642592762282465304418439914608280979651895404234144431736357577663949978336503894833555156103303166235073192498346371567924899870474540202688613214356284284430088563031350733830928970550451673488394318509842036617301573039831331264619286377414173933631831539894138148818966420085404699024747642275964040483690763778162643505713552170568265045553965012558761686769540790541825527307105779355221317385064804509156945616525917441632589507466630030188605538908967177758629853298716059718556740495771140296512022675880611951968113665086900608515491790071876098455082507411831903883501850959211347305697375793441043688383301336606345823680921760622290830658638359609874229238496792145459214570589699036057881259801664934884012750357138736927308341027306730689018955637253117436384166963895097913004966192742971361482303334545457239363663767180834022401543069625311841905937827278081778376181129231472125576680151954178752441252822551241336578096644385411731204308281576910268131097307638815510924879703251735093545719612307485953137693857355762228582330179696411347446087044783170579598528624106090806303111861886940687793735113148809381812650221619458122405127417430937840538485387949808992987028160162846900705564012377911594096754131873366497838967752123058060861002491321806833177831728920330143575891038488930917063952745825404718021701830997438483354773876614281931146025053307230112071954945833283274520034573137178803371748273705396971785530223544773064026819437182360936532530850322724639746841797881987680452824011624176666975042587982184488496686622988235151826867316954889482836341364937915248708524443860573541969303200521749930221149715488927143626200983757027633421388494277780936332059906394156529569660710282742365193266107122345801097053452245263656575901517607892224494288213342993459839584534316012507106379055177727172771305379140320927888876554776658037256462395131636623063240734452119775985548847040186418679743146426803423714459391805784744816576104606927620125295442653616981850584882851411785708277851106076447870802427830561655886928652531088863855874408578854423646982272887111837230333871437308144903288115221330170145042070630243277408514092100381239985510475051742105180128130887922264661096568149437871046815441500815377589989832440387627093643390297309787168793162934258971379318107322202320111947810023053311857108978619283260722153932718676257057056437511455824398849230896640070461464018875703781983643152703491605953157099331881794305344938151087775633397848216142702951776010432975384196771081791671957699546504497703874025117766727764367858253492902130569048786980267324161052990834998584960742514236376478041626360941760456385134391354832636765573910177923222489828625289824295839122813195263462861326342344474080043598323675838547764683699786741965594953015827724699745441451769109183111477970821910009679950297970900182290704662489857801729518265798490805356137118346151367842558860321318055942890156687870173231845980032268945452678198258534810497157783146898826908511977462137540650478532447674374406567603562575459813152098345060660074422476739763843278451461871413964247204795800747256393614949742441825382002884439833378307029080095598508082069915959950852317109521888643219675818542219367488181681127966463360263465386821901041931383921723012542603881411814923074113995657583925436826947952248417290972604143631426682157520403967959376325876576312196072870594597666302868941537527270046722420962948333845902383818891127523153195264280120777033216907553877255847442647778809557463750630770172109652194939048291532387098496765727037023823482751286235484712025920260439051725209471992352719158272936991499857900949512649168410425624749341473008809637068443815197185015327998913165342466076826178037032421319363624481701309663922953675784749492307180055940017597819764017697782036825472879248411365781030123989818074794023675912655672653420916111264445177969511635114799367953968530709002045137643209862245080753241398983646933757664142959999345794402573264557970690081268093275283903328446572495672090513098722116283390986717430262227581363668778740460508678425226591913482749937528357621339367747952721546458717373475964619381657467433506460976296807591870820775193540235343627714598445144098145673595057161053796364016600146267931675020933591480666796900193940672644798262173608435790671692694835366557757332337648514811996985804218416441760204000056258762474382672476215040053301751989993171272038453329182574745962765330174809790432195963567185970344462368398700100546240789841355690270340458894253410334975019715025743334408287761284440194142038772734682865733799026624660729786315357231641197086378873452641554519396723503910749370844219233040339416872201591508956620013428915989674457427782577269080608508734979228309627458562009459422190487530813328402639581728690691144137405563670712808699785676705111357553450889287931569208619759930408104901513722947896116326910814317260413971491312942611613814008514880194476480482435253971666785962902013470786915386102051603487727799886407690014336712706149844517301734384211466228699378245384202399249038715302599333327726449378264519873102390099589219849557721263290706343868520064894524754684892180393743220469392955676517744427261112506767437010140738778807674182825198827528118914890066673265814698775635038608729256930184954258816493274071791623164121563320897663991298279433278027486673821801997220264328640866892637429801935421302542668054297637248379861442123606287006189591688058331990724093383474560515172074924921586549045937872815685406220180506036956835898836698873035579901428039527228054177802330417876441457382472395075749783525985786311746173145383393595348852842082008795247631913685814448112523117384663452530103186409343470763297309635510046533328424219632545750487201747746562631799233702200710531106357223845405823607149658369620998781232338561060619056476014724012294514005192200012937781628250509326577316551292174546641757479456850472839732738201467260106546236483750808049907398709548688861890725317244298343925107141261458412796937716275473495711611278800901875382325322549104190919274822788363705245001602665800238171924721448513050069616905693545964424589608756253238956644227651462786872101579788528263997004167483278137554553569137758541497771934302567393524378476593742348795439638141556439624087570240078114846698514560609808534210859860016710406923764157093118493965568575039984445838738639785370755243036985642009333417806027316272279711936655807032852573822494138800491331456783007558494011992017871095872247096975275127176413985763514950858058460756121488785991484292111602835250705628493076797081456004266120607912576223273344604478673843276276170305581884132756103349861235161192966474253036012289827658947518489200044530644411221042511343670862533728942230315715730955527198188259461820743728463132224874599968218255643321875399455829752155409748348388504876932665247525174617374456575086707912483455587581124893911197153844430593279156482397426854932718179793446417435138545857543699408292437229864272013894486707534808399144723681803852418533707022743413078118718429293914169742255301200084990476467401377177978108885336925107178352415719356958646883553144796526752433119596569547654948577785947063931803776278970837511315646133471822165619200334266084023839771396932858841255583401794925727530604843964101502157485375513125544906901383328158473786208790300353441202330344713246392232761523037155946371711029062740189574989310097316194794509452671967935357746084819852042540237915214039296125486608223323187251862610176563260864648430854513151489846489762252851151026034984902938573248947871319181523201239087703948832907191986297886069982516031608540649590264060332152841370030006747550101455056246583474233713596342702603979567917543496107767241184688048755448818828515240117576135180571405163032909755046742788386753646890761077755380645453896720263042743850573995737036520850199096305842177054815010612196347785938485471350749875588805459595681394588189501075409745890524936513639181890662572121039595346718062884361748813739219766538193301798461254119501121289925424967532004607956143946629588114195088693623714528229599715439484956808127533139789172977682671270356477723598073860391856568490061865476311935135899603669216917498021140640742412452024450320163333852403872470685656627498782337402233626064633828133330037617821296959524586971282826369393750646256485352347178958004400377618063140431216777631760524825150799691291132680122878107814999245256209674555885958287641977551794524029924272184078090757539406740432435009119774572292720647462938014285613394734522227478023009977667269543853731609115813579344662701999342004272023523662255392805371970658274682595793439020308213144690177890564509565419251766490510821974421534228410545377030500850912760129701497975113309127542847056263366557233024663550588025954233842026226010794654247780341278766334962078240099461803877578566313952167435560029203761152729681157131457950087785006413246627542428035747040744463797489791430898575192311506261101683157162544642048412297812158189076668449810477958397040630591940816641421396153067026167677718736222331011326828393839284529039061535943643734786868734229783689284483130330002041222579805151254509827818096780087191246912266790553826570507626239682397310725976054666663737877736206353630491290720010130936677481677675000027299231328496944460840270029373235613953914409948862888159493295969892628059568853671762852465684168063585478625389114566476152836736552924165021736798434705365970556810771190230723899349712527145189020169039521803349150099849580972255244779418192510670376021845489354350225925827465683196494824087475051056790076165726697362403227001748481889702266375596360832020859294494817810493898940591710970598464846999202387208811987888049954789800622598374084702849116307150162203482876050781936330413841779415335077381480632417984979060722595715020424827990250954235775986083633032210199978908001746337548926779721934882029759502474609476563621842988974918521693010814359646295278482262303036977696839932406029186532819961888930380809372031158524696840640258339005233235693900567337791983149699560641794530590765430299241139833757888571589208360737582976575773453991488411456400190764725904165274822473342223344183377680606142403446897469570650826886630440725637152059384610087723661440733795667187391677667735065064232928118702725929732448921028281768364731760151666808241039691627517472300792104702835121223878804687398464571053947478101816297030682412346017244412607956290115319470113442605565437150428786435815364775315200020578779531031101533881054785286726342232132156141519112987704893525573843030324810954442519899014209514720944680517292758142545290950109624488073967287437232925399762739000597254801907796851850710668751758536552019683760745666430036509313988357156165368345986449020862071556712619522132476633323746488535173880681672128654035113862752541468448628871999966691870301703858407476326755420123457979015510850929927053156994194022228475830622499995945524417848547647277971709604968154650909926388021524116890504445004351721662432100590068253033197922221008166257937496504698374663795501520742090417159682164402257355431178092098480694296599256414244280128463723523200891110050634421656169313502581150545258076588791662953511165461135930166843612508870100992736742624593017023982202151231679000449148422687934991321211916451300213340390603746507926747856672092502742368557986713622295888401104818463561988017370162403002760936879946931373554535067570988780626111516908455679404014084965416628338210308622026775107186832687028198875877600690738479261823965831113897261661494376824509392099803589578523554600588942446941546040052013173878359177818011175171648264527682181837112961448191865350452917045888189371506887647947740107936601592224911249923782150895184749680788214214681030849951074524462018939267801349231542257593371477885626125661744905329495680332864864247462379618474414049474146700006604185724629060888280675169631012796525017842731904825614978644025559479151960374781895522040054954174645365732662461108811359802568040582689787817174171230447625090545380160890488554351006528646018114774496319644793929434729212183254220465746811147688122259295865071810702582037318359524544741718945079725406926999742577309990559525569780070876027123852781357979927068575286788950485822845087998140960568098505758232398958769020204227993883998240149718363016170766888262921499726233231675425599814280291476736124904802508963581225514613909124704064889725181384690941199300650929627394188969349181719367651710091453635557536285263226930565595230060964211713226028089415693423255165656123389277506164423275726531350253088901658813665615622727121275159760830364851715665668621953657105916280094899359187498574239495573378779809840261337371977932050096314110158153771740760699213612577646435184386946343559634853044546628436297985309660617677019599681487136144099604446405864053224546577577427194979383581773266214945477958386903344939943755942735263250164383556895210518070790845024795481298893379532716582405255710931034556163642103934055531441518821638376218159774423271151334872048357779616417779594471084830380545441980825143551024730761901023205303395809809567936500556979410682677415586273887726745569349190383954452199677774799169710476654742684922631320693722425895357532579264640138650022491707798542109013382410200348406289215302761802976739090206038267722562859887704168518819815574995361777093541524005563878500395279316453728090379949010923833813520682177544425465545241725825987827413303145143050226474697570253375978000672010328088156129861079456589760189442645950279420566636204980624777385649455200979659300709018563479775083796054122364178753778633755345674091417501160845385793918694956182779677875992063088966439678041601591427375797374113241747805168679122104219702769867752365656057171702562758744411610929278989585318164754570355036568755703184289985529495653372063201414888471281416340966694830728958657599567858418667423781421964322726041556163319300359010111051099252370757522276817702824874101189743862909529594804791343718578484046096525690087036945785130170798676324587661897816062654406183523667776893514516731864362777555210108728018868740743212650575307034667165603348420720353591871796377983053278759788494968120435253885050490511026593225553706530881538988805539860466109397924968706433883446795039571324158638571427462914561901058468582816292621147544061911342233229405174645425418369824140155345773567522004293967769174774781120909314285520188146116556713372056273627318918362358398854753223491381252691620118827964116867344613861654198220006696256756451016199709519769231968987134504123665498370311643319301122370804763694319372319286356254562339297264267523868452523433970862958017671874038379727410479803723060797056874471210065527020617588430908077958955187988229617831692981548726319050376902410706052960467451154356981781292140669665078343772174533147120213949983950170493126689352367965402843856205577909489383407248272775487785821492916271763735627883231093404960073507467384522317238784171626051893230498651219792138872087798227492794389996825751269155464972129349759503605825559393823392102779588369727712107929285115552981404390049608079333818628522238092555016952743629188703088621789252712759450014422571080073355375838600168219744319612656632560681272833156575607384412087999568805472392564844793563249701248070433364759532757877638729755047434937191018412901796470400451614793214938002841014845797513473705777104190188745324290020032301163631576995875359130100684550395338835003024342968913031849315784522701407653788011253149998506019457940007633996289881583482552361422631548690544879861681993248536682405294047336748590370504002960164194028958549979409035161067990947619396413308140863813843762347299601006534639410920985412787940513510433528855410976794794274540497514485028200973748467419978528584534967784378561528012739779170513279841783952076369666652765684127384669023413121713507029755384222404501422024736776422354480142402830816825368453953890650720536152524469953479284804757383918142708839757278143378064117691638362910200042257919050326899141335178271885531771143850250040006753255180618548942101269454577983045412120656739818948454135800742814020712800840555869638279862843828092360284350858955393778957324212740727605470838739868496171973520500081984622436877047262167543201749603567123102564064931909128591201133875842812600175630516808612357159510353146394150134195121642801923971511392733354757746972318185068585948610457334493711846969504499391518574617891858125156841972706393172027254380852597197221310794178437554363516269446798545482272969518031615424807211756512158520191924167023812202917117272663539619980348197899671209641391310369861809425386690378184877408466529364573398713800359721143306993031642208311529216354389168452984020348626583716634248225303901727882501518781258881810900237723986429643619209363083292435292090847713510037920838796871853831895171360461089835737543984055916555615504729262081031492737428866363248337152400530785782813251157000120053482228054114406167407692966124789211946987267274443454550662600118838711298378181466544360476047140235095693766732552532410750039170959467863919196982933154406421548448819232520861202593560938684426934356501232745859359963664322535115503688822786296997933257729036085213028249161983149494333290780924663379190122867588926811952693006590270500241873608888025244632076792417874543387433532008512821341931993438393902213286198127100904721615236641984104343066935038425079787083538815470052616883626794930636402131226966127051302992969867152427923429144275420898102009764054474436095728237087496016012366184734286478379023166715288076581884288862631480703671904975964251965197441871081469090507855928992701700696174623793904966838347870877425404205309040588056503836388612521259808049182166322489305096268663082782645921404295789348720224162267299569406976441297025423513189429584764058387553752533644298561274790527824019347337157218971619860065047682364978524000286051765700953463445374696298198622153209835364008712330480799373542584797445015533599502164294908861487388940590734066505971960790513697516099246924076308051373090686157550127335738007442711948716142216316657993696483585634826592284428232855041242496546124469898270084667907084459040739287004451000032276568667061158504088458671697330211567477534249902426641754538409642099952275410420285960854784542897558451208352020815877950143227113547005867017612567872674722198866423177459329869351228078302491120979428311223566361659001638407957141036459700560540861801397142442250163312707554058899318072509164967684535736157497720864677395161699644165496343887564054069159512732695241598661592356419385421980070118691868566730836408035280898610328270763981340922500562857802503186931071907394938396196700942962691378649698320940600871751719425762875170584276964796698829329794485295485360521887025890663496894211323427505656925670795112341254689274191545920820803242644907777183856399648815173104588745089497720304344110444468985020641595813217447767782091289431929609123029650972486475258182444688139606385132700600804560457716690307156137868596391275306404665976764875048622116577838439831385965938462200294509691085665553634911429931560473610165435768029613555593709011297464349831357705262546304356977175428173910376597999231941815095464482227758918617203342403995788970271220338027874793731230126471612024339520953878896039353119058201603170369894162812584031486185366099859933190414520818214913163170768549470603834508664128409677798578760413386638738599685315717365277386697261385718527202885194263197629847280758911773108580231636461982980734751745316293117386026949713961167244298290189286859357489833144784701114349074983669612794129763529260585421777602572367790686262457230098377353875461850177123999138933516096197337601182917145646057080188788100172368105569015337728426675663621016185439647985830765890952250912784484884341810801540871455071739924174622169416388189247168993964472417062631025586057543218741038775188038954893156934016358933999264578183155208286773610510081310414299891629211916687418238664758936754896296822276755313782699880185463749001736725335421840027108318472574969628744146702060170688955288436831860739622863111562176220001016480921633058332616187137585599028711249664745343045956914246540985230756145209959087879971647592996973378764877063210269562228464692549686577290590537857057345691408909405431185752329463325938695287780323194596230682766230048940362041419883099444978689381238414337104911024659831865746706168762305990809927219428553485108009896097733617753671448476956956863514937174215433527032274355898948654822214211216572015695229031692883433196575985579099765616550890515774550248241721059897999836724597214630418641993894473298903921364117589697081095769489020825146211971098850560664153779095581001517873790609452596080500433682453897052625804107116513090588727777378692799704092399334977734329622930641534015186062781604621760808467859178565962986488866204727433466085415385714521876705898510678011174296091592580168266269067868129911485077712851150577392325223139292951965581461619815207347138590698672297642997657105087825212117185608844638439403605045731472517247191330561255779731818304627473642021804511079614344382483875001190017143475124936298944615932310547128707694117262433078616303531785322423151221069622774874416648679204705620632651509124095286042093375211732896096439621613156976961253119106628566591502986772878596776458918048689912570765046540734389983956707262317662319367517659607804925584579753268390087322407108683414364699204244772025848515306862844036711219812656135048965406131791489909350259367408280794323110948464056559592619419672067799645861905697830375422584563932769429653829804767060392603798075795030101453594356093858806625411600851153959302932266180275971043474090944078667724068360223885235398172622231388694618590779375023173364589971192793758818209790601327498758076723983417313943218456113766135321413230442972920702694845437904205898383448356585375701791564326271296360698253599464760664891036497717561596483417901558622107098479002606855919920217843996789098471706278850565996749643503860287357289965286686883330713357086098635034619101073357494627347050781984979615115756689532526322398886339495351283930237151533221475246339722961896361553234954153169596069178698933710943085571048489292459014782154765548389444298108178797954134744648055972383305937669311731277916355070160658780457542798413550163451601090707548723541685118788916803459068944139919350618722733696253515577046707085291101032271427386142327751023290102781008571537827584735832723060665210192568443864361426301586997271031388134098089659747261279868056195933763968515602343705252032300413659402448633665107276840267253770180618425775982387190510276415539283939774319478408965432866190104673796257528911501607828487232744462810186904859245341221617748371802070879052799726476227910079810744389600519679846233216529300015836681636621811420262722386413734064399984656579225410018870549150217177570658500992287813129967071435470812909266557131462958501683748690742724332033220019116274686956294845185621045055352008451367115650416210699470226887030623560999051068711133249966831144524405865138665402425708858190759153543854179579936155305085619469721986596223645427984236855727828506418193229473453582112994434852735717671726596190076751789339996708904254947691267294855339809698139057973879666016594617642283581888105826049744218980675710806168562710854002786709474366633750719741840684780080444312485921072603457699667473335665373155165263923830631501606626222144141565217037806148672446887331324317136087391473005821393822731620332098999666115287368523178933521981344499634956604199126345732754764787349080583148551881185747722582805712294253156616081480307765600484323632192981451772841491904726806833070269655207707160745733054348115749709646707368004769548365460663971069226313412841275751379574768632815488510931312623759837384854734945303802539581525690748496971221473256511278923398708244604188900922063281466723431234228900822335500179341145735318135623881179647952980941296531815611566670188409665904105925490891162569389509029607908257822329957026435751384521631104184888560697287633124176825642387801099677308948225769622753483230695319930332741954441536376653913810906088766817738188137962695427704442371782334820677916084599624871708584389340496467596416058407841005391542354706860045372801747040356720717343082175398436945490827909091482157491587108861507490010693889361469226653964534094070257876229602133549411209177468185772411015533378054341821278398439466552949883311708648701857089263052179797685724963095783792471071806947102763926564941661780856005586955979260075449897109782638907716992385678332614874382335388990962398948244914153720225342284046638388999569651175810199317120667461108732302335020790161044796333308477565884554540976212294171074133191797344325053890092458068809946553224199108705350598406879951104786375285442705080714979082970091820238253538341314934230146370400748310080707310882507455736098497273892356193058850283174962027022118646373631162942050647077789767252037837048856064062199758178046169545555258555941912196968804289425740694018445213220424865711571450632216167050023502003474477836587722497817712415502170336047491999438403147657070916760505530314049599675828308097930128930887183616507949379584320833871956582405684376177719391391448882159118518090250227756084658319809754443252880951031134550681753176982334695813438843727168308003020066126302791477391214325020856350697971811478057585333911029832697241064938249872901099861319867864560395392354386037206917747667269410871782079373510865625188374051373264221916923355402983152519845293272173816154802327272234675582948291540545140172078682807583493855757558999380657062365417756459130955274406684747885281811428773281924486261754957125519152112085343437972759909740973715591692271726795808051369175240108491942491508228544192159982778681817993698633683772040627030505830371965411550346838356145815044290263467833904149917570182109841989985869737419366795633979701829892475390926120481379869166775369780922087529618830555978390337581907603951665980410198223869577127243523889551484207717949218817978476255671303777030637022152332214619848003915098983204119064581498104576180070200508496215826531202862806385140117786092208451615349020141318315952231084145157468133066440342218120553345104305077427716081204313858612934082365572960804216483158563894247990550442962425609537327123928088187723902363394995396906968068194814113408828141240234028842325705146571280751611187851374058920817823050642424920341069039512709273564189313560781022646017398648385633842389376742263309089995920949200193645423758692330728810112285165840660681252226126207945087552644302104897794756422963083881410478843991357179164096884573462725546651181028781098376327996928934702825115548381788005995940393121147257201425812635411374418554718313837552723946918714176454601350233532257083999853349064703054403997328062068468301204930311267621577772154901363202702106609104273318179657549787703738711388433455216907483917404749403710395730226812464807392160894277299526821293918934911177375166230312372859157607791869131965145880611520249162620588775271441239913335582614281951788152961720644859167507431626294347302018327101126293133695839686465461832009787816353936523217668707438309236370767231443263529877092150690766219661026574468766143168637913997107407626068563480297744185504255755590631679632191581944655761160654086741749744699565395477209981799631358006562834080222773964402865326799229831006722151630513014116508076156596826302818226099153476188647350627614352842606321510129806573121732506216146185857810192796207144971281715144305123912438258803817651881679694713653723911792803781969266611467284181211310947652545893832503567373556726450640452197486983527736381231283013966930036175249217589637565721058781521471708650946401356711149941770358073418366196991156222481556430919934982557737084952145334242689251026435972863488349788756502480347989049853473501200098168764252631289844978680352885905721111963219945119144083267671436861027817138188367946645547724643138129780943012673031557317607161556735582475367454240057763634422006092638474282364851493024998086459920977992226910612052751785594875562531358088124857642874161447683413729794776777990019908427571259892891314771149273033752160403362608656902350344765600659220664788730165441824055565335889037394263948735169161406732210598992154110713029702265400992073076935039666397921567940763457512668007490288144925783529510925112214523913227915744307976948309379709146143319968766511063217310916260775444086145260620618839647757366394448933528461874561356782790429367322213551881139520720263959234204272246897359829423469740119974904093640336142176523112962780182626403089852342339059306379455606390144303349787417015069326551057566302615583737516435126297328035876971350318026811772749142535721431636632701141175352404371896339481620659042631970232228362247870606924516649835039301982602589918326067726016722563912143849633167077788571384231053793328848456354307816913647420657706662069544748244627165052042356299626361472794010580669885573183039475351129370677009844745002368031607800954164539457269944929594161943335323407930105689455767971894069413557888353442099369542446075586233101917581476754309272656236365028906553644564688549989096142000838156123270945045635886924097196288460207504886101966775715482229192545567986796295023034984223294064163289344852434516178443170154810974123722523668456688499009130528831015645393110213294649480971698238465924354633641968431790113336019859832187922415757285248591024790145123176444193829451038140737849077235138398518866218442327126744165608723352625180469140013783598900836694771117961667683667935326802612846513394646565453286236824767278010198029715750789965486895021421301230447845097932113803905993685381858522977948772393773872430685600168956415472979080506549722998344564583715821757634239753029774836511361946376635654735466924084965847432297910195039226468471664765662589929338571214020450763590774070046241924079496612370135485152279575986130864393298910045700662620296322664980987099754963575942457082022273541260092015722616976000230226963967952926852566267775049391715100811786046624649104532163879516015115523828266749680782855686031344898012937356187485160736959348401136006170074711802101253772914620409680357358384958907021148183992330626763351764128201923841845783214390922021945404873410248632083234325977231443761145092596123754942921131651625110830496977632004677225339035839928382996666285433133346152187330897954845360504900210380413336887247519694404439971863395845074765085024024391359267477862135497430895581423154896671122252390631140023670593305494595476062064912088340203172637119463418717719181353453056795844136142337199695104792508343439341621822843788382833183652595340188102794740755754863293851552272979627059791748685811261465912189264341211794113874077802216841373512565367203663760124826711832888387139738589190101153981008922953503891395333042070646561729118910776516348055912873127998680134878411691357403111266502375480468382003962169125302708113943977526943334138246994521380227557222594906404043206449486345436630630496443797221640646198958080351606731556734157963888240964550904565948432937327863928908713837360028067619622940784323884941657827934037826319373677165038135920612405980623560802825940829963967266897892705560079375600860708303375893465537510894189006474519862955364110334595847102476207457301658073553165443442170384277722591065027441784337917744388394510391141444585066844890566138132476472889600576976784246393858314014403357905225720992788005349409282997267895085692477063967587612019224737230699660382616400668702687050336702772732470413202568314498700359079430505905174550898387670979812035503776507790697087245126839006376336485657746941607547720458419783915665769758564422776325359883001648440139210073101389919227687746724148249724601036968216682957665987170869175096614246934495862479064874054113375557384171812284069640280857422729280421286315854147827900553400282207252533012201266749996600891677856537308607182658252256571025391383588842440968732462445982747853409663863497893291374767854077958970570206244750433275847697927274296084602850335148519713854675741948823964849797890218274054978211506001369930037705047607863985005989230838835610065861952244108521646008147594689413875420366339283024643456626203857283785705959053028676973227019553320683035191158796320464587998866087552458700947662167341786687389934142357026480494609966598482380467269850365016854183251272813848470219434139235516352875978529716701211807283656100668946654866956718673225295776109556212226622897860868570145665219983550482576442577247322747983272695279959364726378658100838654660040612720816237123008829843916270056361688017428615706138893441656924641054533241970862969885424012563364375432894564681277706269177061230757482526234683075808001646509207849983105149783476927029198385704493440175919200070397649271238630171349786060899197982749107070408895028096697150635915219619580402776520534186912096893702069650486296585190950933364317781609892095958143464209260194904400793684991768744131110745290158302805564665944212604397296573298190763247398696739156026128339174559802157232297045329987127854700393802860973205780544761180489283895581628538474968248991325242846325507607270664367644001395882732434143995107492938736798677734296792868888496903242569061244059332290653427856020101179182403192797021022020604122185351041895627596015184431907142396671913592259579098319234784695979423113398079942098037152721351322043048281887646155804260664106441082169779535968167352523032303460722863222842259441947635059434891902480925249576654619301245806651946097526119953011900079604673233142359964675273438440434233873867078333340988844820758434476918608697974967947051047477337124692828942210249329954892861302594290821715969953464537110632233645085599083212039607515992778267258041857892531983071554013867935332730047454306435226959866346500458634049826279231827704663321649927321304401198679555877343646552042148299581046626186343403927134555152012264322106123811957174443184266601790154999952307904279635296007872115057085360126493122582701456897809156336990028330485607147558053590716380500702631905151393138242729668870148486254622251500122201590450203186646378448549738307125409257158837809001205190295773586531187791981105057713778874624279136838052856347884623594504062870694196684681308992222322108091158295056410484553308274983778732223450025001224028562428335043991201189099771731995472793822682962051182834948014507588852619376563545096002143003897484372886938014723954263489427586378079364632245273866438645617267347343937467950493406822786244590708521624674559981341128162475430856109634660252026480490267618102445504573645071549985091532008256020508403803034438105561149659209529768331027840671946954829843678515255518872628542716177644339749867769727846465562254236324318050324003799748682468587917374584497622813716565594261526060542859536661153225693350659980795039187146342454117317085718552240273561848448410734407468437924400913718232016676012206569495424471471071092691924427070213756998547921329697718002328664032813175452685570996221610605887429711895277266135640383974053955813348207335709996961555927799504861464737592973116408270568662852774939277984706110214852629379127045036944944768803341763825126543548674852459309485325826626577566329765451919094027483327770938968636201430343810302880036379695803623479430610704969850285218892712227497073643522696515445088378831847425238913038643446090435224634126541613697423019998215282278912150069838279960211572078796406290267734928909116193907150415580351026813627614306443370190257757061470008533610488381410123104690314820757305494800606796125998927581103988802011409334145055397647222655627598767370840802772887155354710856854292754695771707063594760618345116557320329158685107829218626366901083405499995637847654307241431810394280814075996906239263219059969092799515185417581306157709048026054027792151715229543027734203382738446708264574151003683171993503375484975801322140811346748418633313668565967457471581773546825454568565604055573627451741785239876764442439936889927925348934940087708685696455161893881608896719209698312488579105477302692432505719152830824291154141678261875828022459918173208805953469467427966651543345240077057605818570422928959034884372581198884957616252556923054320000084887216046901249388403546450042258088156383293474698462240865472903979180596485280828277021455482933776621065360678394668531458356872709401546256487997077165252451065668641990093837585070438636656579127750286994301523386407002765149232490854221995771738643771286318013937892109088749563635116351104979506783588132671095809791055974259766486093732402858541837684180134788679423574240293432085487734288188434391832748947629511367761026804773318677037889342360263653914146976155140556697266457856349844263324421344074468942902247481404287920510952545950365189589517989793337882636051647563397334251628730117046997919111136379622972511897324385784879914798662812693462526620791188884106334162549500847209697586813786680184544763865842766811750813283185119558185672624468660295700129952005837748762573140267249265397476906873289112790851055378597847524516774419799407511173709185157598246028566788676223595407820108224823924530860217120822189900929084359968140440677246616882577718790910582723913060562783917255330082013133007089139547274419356256833617305434133769912290072333844097173637395326197790777221530267280316017390811896162638180565921808024509893178848062792570657218659634894496241500268037693771706826482850888347320047052197850924187336248102489148434808889665040981056554016310230586704938428557986857164981728550679220938024377722370821202916817304902991069883936169848225672199555540066159956383855675474227643364236761562497196401009991667363024139092298431052322703064266230053613156769051422382681516675297318226919227260176902163547318591699641366701832390588287852129603817633829085096803852659463452304989672754142262488483171657130285901212854954989939439947767691047485241149002082748578982569064306805007189290096960158055315522808066653688044752570216828587085324461358634578318727073159104312902806374571627410676705124551926310314251566577483837413191055180887486245375146548961749267667125204948859642990148694338751378249093996262902547130904343064070696890752093391444617420501234981190105016927352929536354379259688201998303875579863083051903006997671296389257475163153116784569813874891843878160326335882296546573127965553702137652454007572355252085824270030623518930937210438551967110890810236945971573878276511669768417252971373434124090846605260864174020362867315487078369872489101899894836033354829819771114081948778554300062130654953151786411849847878883285932085884819495231305171158592622322254326783768088153747285585282387840108365151773330399038406541359212216847274889212566839530713611765227963213289616967290292831671970208944722623058229525619796558176657040268285058107900679275594617556889361594035323918680998366212624516861354367703753438609604748166312190768680355080880851690975396337571201543418863636710506180343527468218479644551497589984051895235749287567336344211529234476536762601138888897277341395850144567753751689012897489082968735485954612718435023764318936052709585195678872356102931021315141954797055901877158589858575290689686736202316689465999820345140701345526345144442551308545924749443490580369713981643417556665232415873475381289410767938681179130336291865255164686716829697302394396962358935541398082009084961388529693849157971463266412551586163774802846339066807605290481293136953440212876252565512112662682722872491473330088012788832828105075070051415234873949424238992809196271911397476411225578000718879039611486057665601556779187910202126437064261131813426035747331625870942800235445582862894567920334306829137459378385509672631576285457760233207992848560290139298304737690412860608816038709205099882474076198926429408827877297359769293628587517358975339224625775100752042054230201758634304280117379064107984115520262790955431940440911067696751122861431377721395045851757341687737906096513882795933841771768778269944997337515555697671949085751081158804333331810620233135822186490102230082237119286125685463991799819476429409186939629916073375253155596937513208319684786278214359971451289787538278285266383055695915557713644793437172752089654353019058354708601460879515804954444811355025420191220730370318805771590763964794994272167444660077498831690183552059984164896078317582444869174781821275275414350935815053133247723280393330051475691424345134805655593656371689546116315841041284453609215867810656674289167699824463478523599933896528555434042360071239562856326577357341813295751547449016635458668617016922771500527439684316585170841291591635042835443004827157532758644039897128558458689010430977998344012443323552280126790407430750162953983995634868098814583319114839867105990225430077339822636786984140106826162941131160632044328958935011735775448554334487499385406763035926305923157663013498176794770161340313614392302308365693874309013663156525832871103891102552479239063374161012572768724759286134042987480754570671897215286195074611653010198105337701721794343090554137272474628345962684385185847353913878314717407422009887389370292717135472401997702140280320841178044140605545033845699078796179425365370166941056749307835279608494550437149113679595857139920612225880684096877249251273801481766961147372486999800743264530137998143917411488814179771821751432596578417611893771064333715174321078852495594838717121673130492942480350791563949348697542429219527049478079137216073919528682021810401020660537627469717997069599622613470438594488809258260162451946328823547069014631820414006624821020697708159123163101123628565029908160393402596770243749179156968410149981030794043700482930650612405260715422549972807004520981142912803803592701074084847490871396395157703619226700999446626551442460710849953003736516329236268942809408676994448508740456026108828260847552495689869224331984092828440498167617581849333083925382444058490389215440808435888368078242113912048677196479814502947216945929970194973402728036447047590041633153481232610547948480583589983982078598720438756439573689578732055962098379333466625475741509000133976047848528191655812301112494867256650961220245548077303757277786025050116073902977499704208388027104368737923639948382551394514121140385063982578712993135885490004389391548667463685360789612720804068019426181599120528607154060781336321217052633458061378066380575177305468590238403833632979301951161074491625931253679587979143642814409814226463708727001054404507366588582105005413262244154596531275623953347865485667604790607666335135740824227199442173593927210542351744127338568870139197872909342080739146061806502079472442756333395232633522094553059175890061291508246527393663768765893712163589128953330130308934562468379143708619294944720950364739605080735541096708399584703061334517753593022731886808260780749072580591900406170454700704291623190908156970993323076778232880567928111383015580272872050061091668278358533119592104129899717629629428450655917574363803880182502119780632827784275338237880199793696254803125765872101196051021986700525042273614896002140718691318725870351777408976776913103475383007779384212406262512350060244136282541903752272726403027189822892900343246744205864049010716898430838268243786036009636189329538839130795672740636464392109876593740419761202744053291774186354951589177048515725919494668259777356194873031519575945888447820025158806788116840534082451732482246846658956313419864745416623486052596097824221153377690933316627231405564965026657294494121573613518458835186034114146146139692527029913153112162807344380548180306989889153557395580325217050995342740519303059535098272876194106255715832462937253915336105632363188387355705668557391684117450090384569911435880303236012319628169055174939359983940629245847992906351129322491043482286240155250214422960902654216206148114428047486832034225420572639997871088021120327715755974444264961290766339488763891098073659431983445049692408465906117688694165772821363873433949969012189846480192934773581924951813205380119831139632485367034475234871844126859430595800573796560788034515844450191052707140844406786965366226315645636907472896854307282271828203060088717048602910854363425612578616721231230469746488374644023993540092348247038125641499315872054987493957173264221509624321990205594611428629634924609740018109460625756282503277406024301891616426664355828565852458945140009661003121102442575341203078895302258559939787219590395717353414865309823575655185713406249861828846466449651214545819541340799655198187458300449138201504268968232583704127676602412829155333719463253005565028263374783039474256278765039081675915775289231582210561841819298199543070799702195806510435986411658570082664172334358037096830433899511672241000215022740678880889939114813812787917404850683588159896884059591856563709167260325331528358644677788793432968935682334760970413171343931839311097853656496068528597797970473879317402853150997213621803630195046221858472423173070531375760722539722520321095116820695233413139678981906000441176852587923746044257539624818241820612429465956281041669054515875029754310445143432697872143015208152377060379615817360789754259665514422096794803278575525682396648261842643231363116589931884101917150439386595780420633476166092619231946327744011562038511357829982142601310401697224677798946828567823438451219098135234221600517854714755750393226649452786594797819886925546129960261681252569312263292110157968210163956443072540052743004005974457389365304903382006365782254690338000379556861697083332569782761448287002969827875443061507914066602852056461133371159294996926133882466499640667763786857309091734708879007009815119702075701140148696310516902950369770257450856079551687796125704506327930354378054278049021688185094933252221778506589989230371205334929381020705429097490906559004301360194881854093456748553356652193379756720876274173177800136052773652387145117011414564778100350038901814182605340007662234708928983269640347678335471822573502942920540351801190454488626815576943800556761797433672052955405327507265813377850131311491947533392758951789278954040889212088779821861213973955542936902473363669497121203949813639054055929247835859837104690166446321446267241878633961363269804743869716451249297401998019340492864449412866747692825333093746028941321373921618094868209318844579443354547884078224188406334768416710608771212579688225209613577378395259238130215930982843024173655521783030317066958499204276095608437443525039155348539414819031330604717327077812303577124005037229851477319278116377302014435237570083719134086550544203462493118684373186560637591006972936956681397625159580402370860271007351881759010966049736109485264311000976622782262685290323997636487969863065619347154993358676918071772640617392501996933653865989931404592586735640578268866401340816980510816135785028264862060564913802844707246461239380454089909375188644200113894493438924739741707134780253194099079510471581491201596599989730073535555058327206397849200744590868120264095797401149073880739454781263789882959823001484635860448726758519082312262561896884392626464573053121322999755306396196796196854098252042155236494277386965617122641986219839323318951252432508261023012531332521894027137149511827711938887514413311170524210296558917486775285523409701482159353599169488708028008637433618856925580857852026993824839511603466795834898503968220429159362839967537258635241245919566989960345135120060907830599699664167492123261951590328691302712507751363617139085738589689106906909803405312801181876213916438039743070787981062409326975309407300162017513719961607776793397252154700562493922971461099863664310509664868982076591547518999767190811052661421637082511843303733715724238834745036783899610008685014778875403834847117908000620128608160497551754649169858348933833434164758343124407892531420776955397690187950528060261258716758172690855885002706607423683598592284202538907127909508153641646471769603536551681069210423283388205999515748030163836415839448427189389075338829047558109465769955088370535042496664371370373681209520856385332204586343591276376821641891697860106287803209634382307344810160674206094797335781039053078153626996019381894834968824226806947499894276807487384657510020017988619489215200709076178884620596967337753793643156266393266625214996440886586344665402597659344073539816767181455153498200752915140097855052272889305867870080241088255413722843527694081919168727204704285112481331257718902338874411403923965924540217545893633936524454271669818157626537377769862137757136548805660054328413742450975435502183989591178616626541555327360394674150815208298386893072432663167103448216845159808091983100760505527374913849638021087600044598615668447488887198389245650746216131419561123133202182847700011196031858110911917586308736528511083433747545742217200967222950009217133108521261244734311845209830791745719648971458386145029825160597441790999919313647737011434240081350790897268752975171082191267396608145882882903481467977597380674798503178834570249077350245871109985589108245431545588275539902006971676896228477104648432377724428452426897731111929869183448451154486176782759113493238062391611981912151365575614109179370348881213318620175944268978826757546216353486700533831461830451653509607032662968989149036097336850444566137458189966066490209374258794611962163243652822025621459061652778592298349821242260802741748546824395940387807577275194425805420219149058549836462482857122257470553401396104278950064901813807754283575852491465600031986036975632823686920589737226673162810503014471905619563537947432539294673334506270672715203285677923913421046076983533767481265959205090940483992946773218712168501949986812418380055072478771977072846126978552654531862724008687853032222342687661570845500911367121198212307711702631566111059405999746310454189423354467100657933859902537505052977983247492535139600689684872746339982642171028459900693783800044343601592871567410906178324198227424315720113305823923701983092771113449852347386124558832498378381714385686276535222044348113921623998117763217544260946367563590646040097473853569094370392918417095916133412496416134439927071355235338157731277187997388035541828485903093947093716733079930572705886984868033282387216588502501618797962031335114534673486165351201030435219243229498510624378602317566315804969489090853689620563519170441866190523909899892968156531735689440164190257420015667908767993093796349718186947850456843572361016966697873025172287770577684304070581403595290085576001785041989000952611641008130119147716595080030686722216224000507095704397147529243647370173378887331123631506425029104784366399920822681405759410156715711441099399992374432727044648002434718871171357012098286185450080746430270847731390299075369484031056557650618487770718508302176156247292218606567544934547523946795641119740341879735795493200965794287676884253491139364431381957647159280633293573926425333140907610840305207729353999735684444552475022852426954723474961892829478900112668574178297340781906213247258424579628441515351425197652329961748734726657753459214405755263550811762657162418038150714815660935491145666959183578964807686635738449414165450630309952219921238553247881392957323180226246723810747230349961331174161354148327721713277527735412096503115955075783156901746086702380150174130604822480569128599363547651384912457249012369736673312217505833302020396529005438768369902902217919511906447711197951038715757649495207028554949028235455098428058935583031039146716572482836467856344621195796621677289279501172059588416235057747528671806216954600468451790233798439324534882615109041172074495451897125407426401608833454582065260503986651432796331415634043218814950982648049427106279780609843587787524173228542021985504897146573550933281250019718399436846108484766185784813647491268445338393048862867031714291031214142603562446049400585247013081738261292892972605301713494481258087016388404306274155835002454431289715952697211058026963220144092315805032478787570274103561077689453227606180215864402912316517793100590003076604853875228345774324519952725484529719280728183046136431348646214233073998156238765844764258474166952810157104383156762225626936559950163198745691774483267047068880563687164387371203092185238736129490863507969365897236786936280136330425603522001626254844480531018688462409300493131853397008041003571012260997847962474823429918675338125588293198309435248841907569457419749836821249192678746126782371390545902228256317194867312638054181890792992260000635104175003309039381555074051367123167165147427619737370248569491806186944492072756609828773616746187947682134707830321052772477308137463554494425225070369895540431012648054383633409349160451749594461145519330662694325503892712085019707435029266092391224974228668977357499203293509742730355936972311658303921603800948031154336739172619127082605784312929570293506297414368988185044352490600978254266707850057200531379019404565679367839859074249992965416968948606115143494471537206663200222074517319818071967752444434275569735710905496043691754467643234600080253752126792512784731888506113876803364844670117099742269893906019001837257934953058669458087206940890033790193336637343444942463597705703300328928540247870911856034845452522860112966240985919672059932725907182936455646995644890610403359097670228872616420051807953424134733080724862150579422005806120325851744707301993372384845660558771511083762885787611898267674783577275900608399501677316847991519370271545092373945570666295801026599967705786540820912111115310690111690348628812313009311988268745621341766784724500212474408420931763295070656183894726385039616079047239107767098439562894685194506779291775562150610450076428052291481693573676849710968412512409104375258785071491316393039635602171223097009584087701342585761382700021814521120523098555030748692830925532675443676475706247662413225240462394951899024605034954599320508140155002307473707230515652269113874910303293858146990381808861707429378932872727167867526200716058630727648135561250065219763725747173694504274732618097959804777730778854655951594004606259788553311612777026178802166888073394595428742352351233441762667169045729893772735564063997110923110206842902197284292835464656061045235616621860731318290052303083122843919121036182780204458488872117158435024082018368888858646912391797409741868730610463518723907386049481702576989683474598520784179875355853856157439199897920390191736852790124462994828038378384390689717408991710837213683020377393565683912089931338346206248307923961077308180849838375857354533352627692087041452322479106060085525491865051753460526230991635573158441726974017731475134556737945179789113670913620549325928050976470130413366063532184546053850479628659545199618829174480749540859863277643276571884288048171583347804370940050660554298057160336252080603350175609281484933411625118233250594768819412263748645142627266174000479426031347077676538939650104805239399990882325174642794533950848394736069460236721648566311172892136214806798976301503484061732780309407645367226982876755780525946910320129270674565938986256371180673101927414940809987482123520689393151956936652256566144264653022867648964611046553415094395643313631188243953280613537837542797084745595126456546359154924366190026399520544375665061989695579724217624775119675383304074265396634577391246535832707330569873018829258640231438461280513535644444331240736691616203207302528640395008366296227720517171307572768353556273760666868753928733278970819063353056177226524177330692504075560776362271112238733990120431175498889400870032263247681158368793769670570731292558209034735909854044539223027377343913470692470377964296875834071436920957147907562230598550104788713656167914467611473934979877357191034355937240418569702285772141841170520665473782471150388123085606899372533887033137541453006091786598418672359126740043648352389866844119114317480059307018604978351169138903021772467382453747629472600957004657014912878697626371960527050115792494886637993597606350491527932995261672186940567899262630813730085954993010016020463620688262933216055537480940311847072616312131593687654664448438371675512304470659184935122866023567283257816503070010234861731643543487226603066020792375504004130912108348294948598889782247569796812308961011706627890030461208546640239881627592104901931232815021258648681819108779728761220266059258861346368048018315503793747867003888781618252034196855587691327372511253666082037464609525773983819290481894287498632708288956936247669015398967647982675063459286845558362002781708758494393961168732030110707752928999418571946881073787810049498710416355619142301452540611825943865149807711588610024867465406722674885862025047873704092059686954616951838863889859554384856617465910068955282104566320317705400052020903293808422006346021425281077428588938993753756483704568615422000150763272486001752480764454864610087985580266871070435948810080381750882904545829542876231688025473635090552997296836476567329774116313630431990205464094445597693426037262934411419129614925321570637752748025658785157938883653063718242793675329920463087261020012777577275716064316495574618320978369370157503525148491189547526730360724489742975664715330331475553499089826616415429877804352278224932376010529995789399179190825343223594010150029088369880141296746682517468293941751254028758510287701785237924160443724192884150461668009785889217172691472331832307378055332787338631221951266839143560869330990204118144995830546632684434003277176688412501862683694165197673190931803108733925247642862624361916049000263131457134988025057851968574964109389715890115544433072578862328857667936788524505934686450859386496798084526792052181283863676787391673744406542386161906287658999244426887354097063830685516008923373918948037379434036662303413190890269653720515218144690975204690266542744013504769092974935725054916959658904808534072552427277974270101936184427810054205630058244354665013424209873864970280357540934115536676829500927284975919148696857521094583729188977994134617505907320467943182479004170554711862949493165691899137035295240710203063067654646739967786688132233008067920078132267880155492545284054903893767939785138634666071781884331785366944863901840961386979348663232936965131059567035561265325076865766974460801938861585988438913934237239892214923910437362852544270078905961870150164245434419480724536236623793228204541292198995986990087548453355548435785239253988166170061387707814027098959222659656042450318928552757542944306326871460020521977463543575380118108447431631515361436758696312764197002970919293827382151608829401461650484667215859807330734028211921948133183126108764552696830020912295616555300370944915863131047046939837885339782892063615027087225843228541370116794623656844293224465495388027908453632765840228154490480746056123475413952088414237933323255534348966284159145403053185608774900424714965221598605527575212261048399427398223374654529760381334062299258932368860146510692569676643354456167348258043335850867491779068574179334156249922900051568980582799449913881391040781253492556640987638894840845123664758025840987655100444052042730828564988066311417673880888461788366658208571327453468135560909762319797948361544014790433011611265889971985171701619333140237782574734361946193822263002570378775867690814798894485348519120346596545559282801068215833624068951541286411702274263726005471630371335114391580938359445768441503398653383396372788113344120901887323748052420291351757418888690907020932433265616053851516531879665247103760855882631572149761649805413640791782837787825102000788401240498422052180613261222216205817032117377308045464099732787541306094100166008254285101764974724334583017738083863826767669452734214300037573944194543450713546733810130547356634350401913482501489390623487374892322499073238551507810123913685300406962212502878179101883310910675034841970350884901986874315364657245074855238746374230395505489244143757522082096364422036453740435147491985105725907617376513242294690065754605336969209024246182289011196053948790870213240173715075478532110942270981286426236611390081648788603105639662093108457032835059662039032249383745960065166628889571983981219599920972822530353139593187996144753238400532698488806383892860874136573865703845101167163522067459984366461689706166567753906292848625406219274725327129113831658143779623098866635946253867233144703823576411046893156815941875436992471268499096377079817918408577954193058784993525630369285833838615717050098740282834735604046578420996487477347295752474894305471249351778845415649490071513144086226412103056201934664578369280493181631143911344484305136328749859081960396938259839453921821197917475582276766856977297646692005225855462740621198680113833054767410700494660668448595415006026891257753305423777065645764800879764885696438874382516567719649231289873238890727318582658613684271034095877050270520667008985614852422934858946267757941484795057192275239998620966792556921507745333226085202581562034368499906691115793858818661625302268449713177238485790825423030259305639419589897188164570292822649061714414278615603323919236901602108243971925626649318402041767948263185984286988564694444242381831814033332671725430569982050020954484815538275116178752894360815090851485916260962492970657680433441341707631544732628938881739354382292376572813896750515010211234339487347009865176962117200511430382632750602667079351981562016627159714201269278846714308417955155671526370328458387485085547492475300442440044032972446653593796724487232183857745130000125638374694876422965882561532053748302679518769844156290448856420656514154717546308069697534162090821925353478627516606277420351568685597934183048265290214356024480058156857003572380591115939076821479701439689109654000666694637506144098247099155862076148176902439703595404754170471422482413052252675857681425476812814452460230199701453196885549794111514655334385707623852864980413531140285336315166310022574721552078125859791692520832975804443520814953056123455580110346684440449178275277348352858183298731139180467701302223893034163613439160692446285349705223962047931230063774973282425054424788759800064608407791052842749628848671220343364275414483901109113586742171989665063049565026893433882268402757079418857615345539851141182941816130440360658178595870243706064947423262243014156419613940194359046849310237359038364181115608514663342251893654465826199971570365897524063160162837915051027920875235683923018586622067262734240721454133844527645179036357762364884346087671384848055991166111033221351424543932107390103753875168549751558431872713255017193411084524865895354233712168740660852314676928946027687194163629498392965205724605752397785574178570422925149158660647598979201083649351179346428070463881758893444478629223159901823268551367609463653696563699480200868590309291995808517410840470142709454541476188965184536321581338160881671291292607770401806858449949955705071107390453178003362556064186290877232332861298527782997063405172797862741420626636457041695748081975025581262144885135891191423520591109658830697525700239172373940172899443492848556685638748532361945952672350956359019262098522253437215093256906466107955050842597012739112025950020826057089243694909719551362002875897088242638950680776540894952775262837503311226231077327548268077337473637807432889423719399014932641003180590254694088433206457729572700994902481530787606188923952793691573531443800078964559559288258619595112214475086722764515828486467759243118546933999839818652357528738034404082208609768387009602688119194301782141235414562670201097791430595723470320249103081730190402337696886567563578773961872353654184766917584439757480447802873944204264420468821558917142986841705989516618511288058707358867832488157582520766024620145430644814960500399297255837988852177899097028139849416729212336104389767247850815005625630412182070348634861674528486274105321434907545300886619316601566900570019238294063799693967830864879284305923784917620335525819370510624579853447128568343392629114732139728369046493627375301668303154992198311121606744841354075568734418535248595353447766344945605225147246965842837121823070811800745415147620532032095708829017311725286617084701834320556271877179242043789231380756565477490361485268458168421578662336904897382196402290929945592884258019928270493003800642430590252132963716408773717254791083816379954581369606211883309019745981818912079980742410379199998760772000579857839740905596920284142299711069644737814184071621355233358897074837297111749376265400564155254173147160790434144323318797640923514547136284298361707881927717306723526806228214402116477295026621923125280171200493180513912363729787296054321183544864337359459091887950118840617423881601679313358446998962360108165429583441459026134346601611279302831806162795333127041642128743465238536173202443108453816275596205610239277592518593163634388970215302430012351634088271333660643879826582803032888835952207099349427113824852137520115223065758428269916947375278437997476121090331511474390914258632028465277415940073651822911571532333715629779993369520359089132613148844015491350544881568029263729944105477955118165249980749579624491831683498307673709980779726017252537988865122877201192423488644581229936287698244273810215458822456552888521653070124789112511926114869495249793639823187211626370157687264031175878725277061768749955049842028744654011756256358212172640229074119866903604606765233295513458473185001451602652085286493158428080694614501601052769782694240781719349887622673887005893862216769370876982049507561124723422671666193333076141764305883379216395487581255041586476193449089641815928003465427233377873879009688992987210191279481215154490356608317737342187695190512102263621952626797676769088658080656656972195527966933481194021856876887546557901964496635484705207798348371248775181446586573840323674981364842134215099822937562330701758125126502977209373783712166117894652157980922733204212036492398234512700550448151852756129503405586520844756987484466336377943503453684847934648972448205522517908180508366988788094357583504655995570046098257239780824932359760663423216964761490711652122262502467078973201944433349190132812359692727776768950735806558956034313665710763462141050649126591070981763700719064426279403549069548977847894836860063921865178706495649635307810250991304006192406619615565681708726167835268670731096085923641770587371942987477303557924766015110142113921481213042714102953627185091656265072689012014385477073161634560302103476197351837739028750098583000908967556572549207341093621513824231470731979071773029499756056746785369969019909354562574411800118993837007228517004813210857104858294082830945209475528044735370685428627564663090528000019145148006245961014432619865992236500263127642592331331197145635648912714424339020535303725110159831809130275381573161148310049836396602426512281003947937754988266300692326317914005031406499787561299586046247487163768699697434401202942285212708216097563464258213480560697044017155568799146245320134909648186302730881312109717317963091592777050548576890118267456982608718535886437654195282744694663811443262427957130996380182718740870547542339259451680014415283784707297899183850137650399263546391932811084942271173946823703211084528894748423199531708307895726698990560006267420749022557257376485447852771967188967859922594651534412155820832896097126195911092906512382232207450836649321006622015986681931681873175720906135935111355710562852102274301833138707029268657960857684468070697418731667999220072470657209831282716945021523055795412436489800741546095905745510172452970580595953089650315457661479634966968823181451591767242289289782115330312343498544830122514838810284248813132382161638793345415909087285080216346038742240387644652298525751535743406599450773696676884021746242899757441733621719655900566014164061924179974915493444346848044250154999616827515037885571545356585241152160206344732145621992113925323567058005237332874269509970055521347854279946219273864378109266129007701659786139195677707344680499337343081620413614422098446813076846768706740375489304004116265594171737351907492018373371927812496651200207620366479690975850878349141166380612899085291868167855693445787647030166707773770393423113796580371669139448848667817072898258186788591065651626002678132285038895371886998317714881798698990987773338385886520194065255803050918790786748365035249911472783853531084924157383029623667681376577404879925254838819912070013756091615415907405164196692387408076412991839524345233041751872574603226740251360998007249419208995617310091607576595578837663780924291606748095521233066855309232449375434920191000152332300579457103969474314169008622705004582106829756351103866217084346036216011032959550122563877439114235184291729425496720479662827078560800379764606806828322392436045764188098538853986486351876636472421917505112771123196245055670843983156975927489805106106830341730963358191940373206418365882449098964258855963935760969751932103452676897128209045306173861242814623346508981630233770117101189176168100287587477202177746761195722553681647430004332123197957074698461816715268363407276851071671783275924116903470986563363285827280209969424191334689289631246765900367934899180589657286304705681606923059099757936052791406549180174523745492013088395380182092296628459895720204350573366308666795513200278099341456887102559372168742970603304829550969296591454179427756776914510263249850733996175817327960902491396837908624341161192949292847297155689053145841055855621076504957273466525272576355474624542663048172566303386496504454016791002231464709340545216206444536238958960710760496032551375750526691434940262686894525269185624953824101135329318415920157608474215795764757927442613013880463711608038175925043715196265922305420882837241322305813426993257030947242591529707049896319641809525184196167171238965286451893629899701928055090670730350005326449230605679197043578085196051800599094687878648522177939677161712377356065965467088454030456917695757103609220475850002050223136911744684362578478902172868394675652881758817655103556522348036722597280113950402401879139209860414219881807980272904107751549071699576103148615294011120709918696003030280278610098843761223025618011329742651275192866115149557667625188717161824293660378018560634408015484223557643383617126902644618308107188704973620644895110923386174701927921430323772270759988712988752278257840942046318137637178644365620806623740931051474327472264970566820621982445732701614496787756150307556893698056003310890754721912563755657824854928740584381877456275169738335005324693224079525624257570098861590158553339157319369076412439983659904976660122158598881229003387194875258873535370277878512194884448586347917819915470058700632933712692576017152812617065991226154773794123112553741737951435459808700451098146848094802175537960961773326662973958331484227364067226489103542566838637091169782762588525975026859586752372183096779174865777377906498049612626233597678381472090279845951513694968397529708376434506909044137007320567608760074734697771848148233969414329967426826896456145039009213367525626407192752937078349029127089790547464838514357452379997015776085719417577083749920815248390827414118262974120292977994543573699930167473650892110093571543935410057768881293837217577651394485794379729332287686288307097418381323528148423848844008965825170985783822673002621940551512984823629987584139995824853463711574420832335799340360689549491598240580185584796444957944663504095190732464132738319662990940392621956769204895539463635894083332487577840787771109831346652215739554906790406376984348343347472767102565230154302687487713612602039184423855369654205314908344088642854891685325259561038063980690241785805903927513951992152536782464856901812468463905768662986383121690974482538948808539173103715626263150635933243926664944867540725761216938651594923260562794415988748470430014456406834739647025756589470493774466593640801398280369001277267426512319085209687059228677765305173934539570370554991255066734939973844870270887639492042869278747054371256453692657695535050437993757999706756786346353837088464010115468778205059534924696516491622757540220884747670736921658508687151751523058777457479766810177872846454954342876263431515054518170333891841551803628911000909801226482781181802191932857013081061659063906651001828661068129745031426688816747501178961819773203607295563841192509612626643437948808822714438070293786132094681023417584918893178480437074599939547019328569012449948496137733661889884951516661340885013295868981636814492530434443717948170642219364596808389702326940718895476420116586997189819413525575085056679357721955381897027531514331761405160356974302863611105579332975920831877578227270790184943154806016568135071333360387189778450469581683551736212733167388803892980148904202517867919293727248639563041014551309499405136944422628400156341379598004983095666139411277723869119796491362669047872290071661586766252690717214425546085581475807819285515910696720079370162620868919714099989365899968804308260174367215546443111504884815412663043533749791635925064605799335698285513966149454509092836310507564402149962284875051482038643741251455775507258452732325877496202386266043091088363588810303949574739235430811519046471566044219096292212605254204503030220278910760600611548205166934804925216925936664061944039607376820793406430732755949814420587565289904659718891421101976660552921163164327458674425501859191681581633880647755448093777739930452978193191940157362765204593569678610406290068380918264737228350664406361786338579583613698873516299154521671046558272857672001781053686398146130916333757311146387461068935701683695743226368543826642259762244573704783242206672858576144068557157899749404616880114087115535341978087732029310309333878100563927784135544955303494051040602364168709450526205767292105991024028984496241881979282274178146595344067969370847102353210480038417258990586408780520468528312501359071598749205198662513518500734072012531773657110018752507157213257768995758720818303583722019377908558233846137201375934820691638003800776679262822324384033167469405859454618851459998443841956268869925715845064810427662439801205216091357239954498140199556043686032022077894736599653381532173596481220080700168535180951016544480994410811088080411717764962477938787984593167099149358328557310796238857547728213115337730421464625216903428730857553586078250194338951695290194134787611809011693840115205766492747583251743047724918316753381502984177488318025962788190690131121817725054262119166330132311532635288121522722115970157318399946849438805097831363838867351242671336031585776233994942778664272477002124694586151394383918730578484178076159854704175280586051131186633071101698754265158858068602382006029077992974253585244399775835647708366739016995957406102869713538087458542627684658441053084821422623605782498125641346602138171430375945310792045715569861363233377753650834260471812027646818128956096345194415094456294394711196276307982759946885006269872923355605666940384813093393380687301651562230482247232621052457315130689952633828672196068695926128934214495406207917271304114454078104593017712453123629204132510156687821382294255469508276201398958870742764426295131072703516308856563691178378075141398640505535664473416154073612235816761070568216689041977343600520667115616891459715836649726955186389125420000355463258843293190993169223413025475290550538431467036526979448178496657178342107584416240121381793602113655306223549897105705290808077374530357284695411475764663607634924033853224619337190243678039976219269745849618782857652236985290364182979752527222378020718694934354754978894773065991746269260890292613160786335247414952782234630597999708132174004728553912751440850786010151772162906847089946367163840064126086798514391294433613472957827283847007715632740846150935614532676905151146604038157212501743637323927197689137124749794290551753057030829632025014252239855705498379572872112198600895864051500297327655301168365384010045799831111106307309713303309040332285932269755746711531373106915435898480561645578332503798479057477734242410311614996410360767311859909903872166319216188360383418144716642634609385464157757926631431674861504957394383611757155575209173210923832191510140251094612976814820905489167160150310830376112207172099879499254142470194552025619539164582420385864701879819828073898440208764515460521619508351967646169019932675077910519150256205303770082550793113549951392155709112957995046506783702306078398930283515603017225643195769128476419705193133288445951523339698868005096915923219348940586147746049869723778457074487418241078734524774768096133410204336130418998219912508601094373327981611038665143605117594539963678898508583124330710877139793721064965281925662574408654705631858852653331192718398841501416351215985627253042799999397355125142322483741705265342809159720535669442536234944580733176410890591245962535072523437715832845084323258373074975594167443582967981230443125040307529809342391172197859796974993597929579993262307843825987696630229317554945938903968237015757037113091425821153776611224807143537110763290164651484610555163928402726982419172432617137414452080992774296952125116175315328667595567067313107263207534553051483916492731459458821407477634750156206887645023718011806754609845795595875464256909997882812980409566944119195490071075522934961574688292774013585514069169475326836780273223782023159469370223875666277017238956493493945793740911200008738477786782695499392191662599345223176648498735792055931493012877619984459000629047259523671848636877717763039724106972374542990528084283265742050108448715662977713894096943520506211968855490385523085166544044204060415753491978150047855679583152855809771318315385511040759951082090556431237109120195430337437937220356931092692957431825289698242102295783852585540510542780471016323892764046028614989188581121638845484192347885301193658888299834214969574311243324015648497052989782858196296674726202727490456981456975122584042027563479634518968712874375636301685901797604626507752102747879680946379685770364231733902687262549082940171523319877571288753411721156230376084125219422068425579550270386057508299131570032174332624897590846809061984942278199515062096277277235236021698749637491698513763847757344269139571862127926163217822380950236972309545678101839278166631280009983296482423762559715452975651123310290338117160118962922605523488159322013976724537812857617491661255836963364873544497790222129543704133220184794172771826694119116279193573974168886977562844247915618202645153430699261586637212936141594607230754356109135181329480347670095072746274625632178933115824721083430314706877852033788581650325058564946513543434866390367316458398328668555789715999616315856122001516778485946380328257333318253764054068063845264562338874944880874665949963629996688080866210796018011392890472700070278463354830793579888228332480814865086490435038864070237099803742930482353642479902735372035953271751135285650344749877762986582752865909185302119486965698719261604792924820646198000886533131636695395157130689181025309513299732983508721312838709210545905914659608296545100379282936659452398872001353558917576456209164361406290653962497500036088017583376331044547479067053880907783063172989836414125337215737587468235970345700300137083594301460370007700616489997415830043469632319121641080897783930894134959589850644747150901183607797973085560940423373808907677204840631349311222054616584713998199754349598726936783980386959260140754825655259674504225260180476440492871163062160833305238736996501960689844210361854076935924531456154635891866731203947673476406408101186798416167297286705767629309168398074541123382283619997830975811404160329837057810246307647900765161588591285623238746180103717169278043687208214120388283836859935254025419511674597264839578136098289012661733260358565530307834944540925690557862520736049247756647681263611265244467981344212475998692855502307576092050153366528645473169582238706091513375004002619318456733975100042453848358810361389793534938857391416994862656100859214084573862244072918353458019447043330990820223364409535301394248537897793632667283821563330053207233108857144434417176174172952325697967007145886299898564480882228291351590158751242343316769263963629623774098936555338481958727951272214797043244255528492949163594374534493692106038136265452187009613181210132565604772776791494498317394692813010304359156775952852795293537878708845594736078424273337136205682518870805346632457783609656339095747950469934147970737758017705575096543204654443431528532924286712083344475349806454846588147172920135795312508381655508329464359833278123249423927650306309773871918967876189607883597532145789872629090440547399342667834458483559445090782001435380350803361845526758578169087854039377087777638259633779379102402395889929361556761565342189547159980353254886173831081452990610915962769834732348643006952346535597852844597448287411728405256256201898968360425077531457689132714811993619118227833509194199996852796886877538063256582369268618758201762532522647594269592211028404292919090558587200888346936957876898900680314272326975183983196444845561356362241697223628052644931672267738312298916321519503320465044795179599222438331776178388683802408582075876889457305805230390978691826114570830439566471208154687160457941845104149372431491540755389566497890430676139437562307808162946243630264098828059122416412884457620704635928924536984164800477735813150154533560910956148276119668625561652325425213426364819599874650665291979842495762658911130633691647778212062030360202282624302153472167048516327779828761681246079759621521378607914977181296321269883798683072433682956928783115993909544383099815879207653229598534743863044576735176958850722423450650784622891067587615725503322467452113000652592556788632346634239462277614972541636559451763336022577209620901552164611672905159646036162781720106883596955897132745537914387009712770289029436516853869424804679862186825706777453054078651832138162715758830335065720726800491857508114784815621313644588680576880022681090252610675083087888782696422140994662163133309570749664826713752442569800800947110366756852192183539530391679489341367327706940711459260443703184350397100457071979408047611247284687842622512189908334712933229241505924968778269018838059463894964872121692947448147264440642897522851378595563389962108930950505052815639542718420906900693281833462679488703384291326520201030165778889876079246299823101582978952753355182314182314279414968369751907139551785152174012425067953868007164940250782738269524580446423302057981813815599063232915515813254425273443179883681383736495773150031895783594053373244328968964449819974643113769334810620662262321933709251096126634542200066750337425196631323302682061293348727059843153111629339814752359693759935600949745513167715856815301623708769264634633213849226854489186123623334680814329937642293396471313662963868695230758269775054830550918820854189316548119711752392383369929212364095695355106594251944526524722727081298316649332009357271295107926595029501186069401121133196496220939736192348907459373838300473752166548215730693520487139352790123170372591927438889259021804612415422906568283226412037024859627313099741262786927291319038808692523442490102993461380982367057120461229048484086631298017395666104546148239127505630268639988965335613372275485545575139911746731083475282908319052721857809168448450061724958685089285418274101287401488510715929565337702542499297290978343410456818584020728081256956587911495552849746229459634958430149350008514753626479522835577251036550216993329239563059897415726909617789324256414540187394223442334548086390467387343166209002834696544281006340768494881342671541559521088952686652692875075221347949039760496514824211699244127622122502311199798821752081083587419620949917630172567118550102811670198552693937907343127756358310078967334384948427644006603460699288233172608027086231924901182823074549276945672490241187339104451658940792124832152291473245339606173156026779262053166157485080610518948457047809141212151174274790974659675427643305218517760944340962540292792552586902371399241088440314252320412038057504275702481918436215574022505986885426033117240219532102150756918673935061066270603500462873079188068174053636119633803500645198389575667725865828159691901287701535997674332934480832391092728287619761959917164579020047930035254201044085639853869394751959171265708835774453927198246765239957169364998838690849219252902278899317708311584144403756824064746796761090257868312473959395000158068339706253222316178430128131905818045824921622720137173475300324829011550278978556633988962867362078176349572951890767889530076204474359512862135100264095886590786029486877383031413790852696308211999881647240118097365848712381800851368678172230870379122375514636666768948739114871656387304588388994689955100889151964824293249032259617785581325199319843836747175862229157156942681732531330033145541943894537961000464123214327900866183413543990056005443010535338909713991391608750675961163535329356791045401530088714384049755718138573122843172067770342357584862057368889893701893140824960817452664317770984480041567405656833025671776511324535112800063788209714845738131542406293127694342419496306737959642825564144693966282366678135340743554449802075796594484191650325156870487800922425383600129308051365563316274024013112257734608404711218363316161291950798335565596453757498102256803483979131557275720409416152938037681914143886941068000033551765462201005819524004432785530049038665258828882241039193451428049665890573280593377954535285165258862726549229631883488893271919211376282526150825869269465953156173835750995162567197533693306400235273561768829726354616264144699327038308331937576730762523095100573171844394350157947603884003640621942616712691571163371705681240867469050956920799104602209556412260449448088009532107802601034137985239593132798757782311160043295692873356120495408209620975884941246418551057370648125812778491145805464879663075893699375884266902125664364371301015930485537265628894343749337743052577938258278907501801428185312126767531425684324793736652851129749170860893192377129294171066810758310717923202294559759569956892112183360743372020871649753013041428426644514787626931338771461720988417747324597812176671188509235167060155402413707038003640746371256567717511582714989709131454016818288482609763171854308751280060715424768118267677109353278532517819523417571368139750795273020423567726702152461479388133366596901356322062210196908597835120684069916154125554925520227376471974241863899619346327460162116580681139450421064288898971360591544678594568503696722413659581364888227825025789876874205779978216508653727728696649510250625613112520257501047891501921711599129823439074975310953756424876465577604450233177429411364851476296344593351120486387299133190878586379460702241526612099193527185631354472120213572968980832574621591730793386159942719619264067606543058480202014806940393871188808762400009375322097053042897268151885930395702848037002828844479521702879321132822326231219400121285149394432827523206679242646719278085240903371879096883576765632501707165875402454445973939291998679371019504393987910610341906471398335884972372229550442332131892239368217049969967603614549179447941984333934554813866970453202534569409376856610047797065371187343886432655185689546891781141324748303919696750930850799623543105770858936006375975709575585201966454260767042754601014297884168944534002300135848937415291627419539201598196268064918870698168883602364535683237999656525937736266427052987111849037852443253319586356175779671345305239772492638610367558511555075599403833753625680683974858751849585698415884220364849703582952268808324379001988621324463872945140697229712412661096487500864390831136723112363150939424330077912001253551998549477835185301628610725351019875045246902557044392590696704913204724200178027213006209077347080451399932491219859957873881584909291258391156553818826985199823520952454915393087400966224927711080175354859929053356229060596129003733436979943187746587311799661059452630833287052629576758842510444893160597316606652695512586730226917243815225914804484758854145964448886883003805338017004577157730274736942620602361537052957312684841518724071702247342672604689078115275930701082704519442771862911622896293891145052767574534451192138824196266610707670319310810073837041747559081891479787937249424696929740746337504156342424901482927892000245714485587648449294385947570615987885753601145261862580303537268558380621457777789343985635980775737220776074538183430687018574502066831571364984502149668246661500955714695894060110941918216828503591364219182480136355280295368200106396821516804945820615550902413187814277764333519060354663994601604492726711716469311214943896317829943217276823834963037835542646808408233070100035588923817387328553521539976943466765713948412051595266830577195804458045138115629962661877290920244535578907722093797420170181416467811930858989689943375129391825814625875823577046500918351894771240773541862372859146496726807503079979671296810064049592038794534639783955540517698427815797987681075411566273024679231743969364858015310789727207718925355574565176254632666853236871451176008310280460588249066269775094880827626680841285231401096425681952747268560437977370035250528738051606906111946476287572298418994458432467598923654683765884479645866908098360903438731843050591034752268855899029193204232882929182816755936772259704378589514953176125209537991303599558563428532440758664294289833739341749897632479280213363524589720009113837340653644943700813500512045287260963690130521749767375359181541194405341192902390100784874654830609610462934401692517701803830279152709707688142903470055310546530014071550057428356859103857952102211571876958595717528048889003395141416752652904471392982693340263510793004009282343242521226729521815997179779656768104846456700132192731217445125727531622540133596118454280606951214426359865971894578693739196590532908243556726729661710781733603339366609625027743015750630447058359254008194989526507142954665616850103055010757218300776024531236507127199020126123321982755065789849079570730154298676963223475854116823795085310078224127920420319212446922142805904408638864897901206056602268332679765186528218320768887451389142245074928836703793419190450282175191841543120015477312429311060811783027768001516531257973139762253705803724861294267232734154584405651048704854100197414600306863110701627324140048003931862948804987980219592474723107240060294452991439295178190574393168111637080435798390059250831677005316908028699524995538383675228957404937352103622377106287785614069255846748543147852748854360871160943450752851742539935018842013618656980173430494962759310103999930352525634789672764873565810487461648500617170607745592710267111212740961646955807181210809612790001734397747063116234594689108776361332804850016497618512203268367150405912313665903519056704411956945644672143341794331986282812851558603384539994109954039649756766186683165719328523265830267158972459723774991756348949039389740174595184540988350555578096455699560690737895504447637542412611889886923898820199846871556809744650224779030604283301338272307405356912274532447596139162897604806494009641626360946908616896494211837181758754538147106580974937064219716804402641705835302466850358229999466756451185271897037403587357761929610924139536244668246471439623114652632278332869839033487100424959357464796696516677883681753278590825993279709411315095672337431172049633039943695591280444722715163089200223355956489911011439527547790006652926368297566646230731114378605922544969330184828796220160130244840043407483280328934047661952660721033215834822849299353406499585505457362185325651690245708851074207182862128455397661358274406309504480020729615333442527027182738802093063409183370738232987999371475005649421898040867555026623741473653943486251008555146285984764761796810106959024298800985577206271494058949467278725129984292600637209966238579660616895363985154626146582611433333816770513609632830932511136275016068238579931071083658583028526085163709741890142563015148602102560003359556465594300708347684378490435759430085938882132167758927284765772563864005146426387574310456357210806457403131189808064441505518098236775568756069176786627984174860965468676709507181390087791655898438546521694448924562353473320170257045896017419226724290168818067285639486287970685683663667692020354626273196838813821902230523255966124449115718729122920300359976192508389756452420485510092391031764574702038615971990578055487402019363593588001415332149893020509276298157324141895865361042730938444666980608554916760518040587736380823354963250770076437422676914652303579859105241539721519353986434124554775090176167664072789293233418393319383840314526625506372720628487389404076701865446129429148651695083677509157242028541411911030927744192244006629680330958830037987061734519702253310735939608352913879444580089016755202304626820887948436620098985950039615754110605909390708480742501367714834406103328835561135340325857732701085870187164097134526554684743596448159884949681607033076598131982181540029174626518237861363261013761088449005775867961105282155871492603709025285015331473880819686482570127247887578129490116817180537842670022205721709950301831978762426056637605892270684393490535020510767531090780302432122834521689991682841816713625996719444861332326189394325562749463159222774981225624885224417474207135823785385464695208346318709469559904397623075944517286891037136479275831015238961440575590743039495835140586726308461202431752978030082160078893336801892061565071771735156797052085456443293147472157428987234322308330564702322525922147606114125643732036869294190237287701737840899044501119469246103742199144300863683102981903776136163922695757173451231594810790812130425356004533912045803620267628064967116767250205063153577233019459071308588772920567776645506826867785845879631645538250110468571073391118120754145966359069136225336322670029937891146102396762947925400749864511980290766353219093382930148483116179379078180080080357110354668451712352418672319591657551656987161618539533197407625113888834263009807713206883316062465439705997568188268522065767469024817718447023592348175198355031142183180482674754853491787549911307873660518693992057355719073632498394659075699188795256487863976426117025544583429849970973281583157835796743696194761642468244068487607649820880682062434202717183324629101426273247216715871155649461472142413753587024850692910520998800360070091788741824361786316470906861615405293950257496889967376776305570437487869517229716851133366300697181847126222458496061044416376057711895532304211610261631978529307738645418010162948939020120228005253102634726718222990404140548596640021337690855726633608729408422657195184670797483603402588440691319294027697489885741564029648131317260272537710462361286376590562257242944147374030442590249975172475196644951862334603336242652076976358666516181562058780828300830884747551035078472162338044155189443073678526784794949065646041985666265803148274048992966018105491795845559742944103932316371727658990289631709580845584767408466881070231800799897717071925416398187392032041233722575152077375759444806691562709076014685922827622075910706622540353099367221746928205439819902531635678827376516590741911354523040909216260617519649871545108454185650466864581436557239732418705091995145813053706444976978725433376855689720762802254739531880139525065047990071565974981818686125679127981367976837836822918092636796275952006827356807337312967773847827834729554010049000645770374419956070198033326491891686106396445010942461818313263372359241190311993335460133544320831518514820242360098388356673217491081436718196501901550770694053442044579190855232864937230184101735878141677013184230793438216530889930085245109465046516129669292147575327024950298637555068810369035618894058215030040192836997967867199975433233889717299600586324339411732703402152258892921035566988074943169602608414023770830592565141670997505982080718446139712196021531532902572437616671204113293758342249927843238118347246067507045931593042187774532957171612373358600633798678689935390284399597876851456185223786104929856525598649372998160106962807635819229672979322904951557232607729935627555565828436561539531862260042972826740498008052103651892582841524517614477300877665057263106185121802615261105172536544959105762261129105171193799655859914003125097627003644710875647957636189620903706437082179096817269397667318069132124301411979664327221692037770887757799848546228146427141535017297562064350533556260964997789091504067376372523907003767316745229307557839862320332209626191222441501365238998908799087519721178548516873725630066507818056517906119487669082567944531626070708028905884106329071564298980719451906618234589509694679490477419321627312786392666839157861782377765559300176162470739426381322653879036905345193468048067063234179306599356553405550957988615709157983051708858132743268011476250069819258826192330605430874250482767972666288927075186921362628884332255896983127324477971947016102097587085388994484352085542957416480331965728983981253288630536070330202947337454163289697339197930211630483272768785153493953265035270078669004539742434696913974786961501973749600466352189451772743552568296687014464687138346432502749401424215518082026958343809420795682752965460718651111425966780856202089237052699148369214069965677436221739804091173312425497994146090591392217287331354146649546945921350587078085498017184968913997983401604409505376643075999863866968109133589057724545872626380864160531898239389653659120507928373728170796091012273222258550330589421357416710590170891543482120850377201764723442696989311167347681305928631731053955386475227650810254375707306195985221671407866436664720510492743605669442594033294509983824069905928714878594585703532694135605134280254321767707727690202854282783683905028876819783087409001759595584412104459672237727372757770097267500099037493104385823887234046043401261022973337552726026310153895208828830113946991977880502201414911821511808064653853861873938343518054932668067934311983039493588489003400745173161758213927896629536684172505302715764850861475278189387347425557472600963254542511559863773440790298323743763989414112774472252565445296503200971471728309948355752834208701456548724104940468008075776318023541931471555645260521829236894459035836389832743580896138166979291668978673793828889642965594023561157484475001784512377874243498066544607401316459085716344600510621279426213028367506480390062188213851751633399635951233432977141912915794056943587169235540550420093337762999331637755457579600315116188115003671640624577077050964606694792741934359316591017423140851603933672911741183606946865243845194458555831622026870084991615604891616118634882851868191029870280201336634904514262704605944395042915575050516026953186584527827089025090406894390640370418945304898914495867740173252285805432857175365797549359852198197352258520339157350771618377832100268016591966786062599528289319912462813753286546189698865501209384244251552997549135368750853938924247919006980673653147148789789705421388518465258199134936308171232962598463513409817316416467267355549291033780223540804002842861174345941076070748274153988181773484330278163152843347556210201327785544676449308344912029958726660106215342883823270269057857133875682405940477666644770826896655948650361567937665079248953393724466377000162818212969701936799913651898059269293714779947856078333438186835262234839460938948779530326891225701588357418541658252748393330202556291068338273800989253340856481265108897015875938885899303018229808180037248966804832778034318550607227503625081123633075279402802221687643986816230597840270911544044358573474723640097056551827628247641722604480193041103747877759308435553473636126718409672260852408709975607713862258378995661814414178837875250120592478281238108782296832152385382410196477775105181188719427156469579109694394334161145881640438348318546848292797882216458703763242673150601890658227082909733968851402053897531637865512561198436285489520587752385350084712563743130253527506349646180958254784619805570408830223036689705839187027092878158975322249246581611174187367713420870526503826666561528794650683190002198633803373335455459908928422715852415553616633859450251275827971185142893020977768558057507545290447302217949433728864929752024571586915084205075691223908869719625901000521587016515135056705206375185614633854487642890765643103324732984279619144128564570740608207468886437487242269223883955112442022138622751852134375226645317748417810076883164098228434256098537553558708613061431732010428260517367076562257301346218725029300770545957046789179611508693909053763719829867915030267901066371618123197050165767990887464714893961571916391029396558040672414640722607440259011283092246740706710077504857206228542610697445179883880028186682510189738746590241825878721572186884520776050607512913734240973668940616468662277831400681079535137745012527391793919508374799915535869549410055905233603012071051542982644606359372553516295935338192489397699495286130805268635202742780696114027790591935419817833665200264689443254130367940730990357741068422235411866624345980818282917786102595259463915078357019126752381595164077188063475130384273899977921429020529086624765957280731366894642371614031579141614654296274398445116121772995645511458602811357451787755203095300466202340718430162896063621821501897701344899369993590042088452305682958903175066292318345690064460252357405027794269478150207469309041276107687788353371328872295163081628606890383775337594315640789413879608084168640038493584576982956216973316782792147574819140647814300799756306662998499285128832410497357327045085901872989074565372284474317175446913310083164966232250835078504573370690720172902631635509741910981856576481871910597111819750730813073282767756453611578684312016363692744750427197579715267409434773635431889068785579923889538029848236464183425382355072960874989640478922157132998059072054434537085660081714940097851149824843421333117029698510383851224119410130677616918113562596513315606039145558220932210547188511914362064923482213891642148969278147903813241513937917546491828278721516944288137274370948103271596112296175115376094389854371716888940455408798757100964346986202078926572383659357930870788349399299256731255678295914356033647751083829792690897450331169720564332067035976188278336387423352809968800991346095023287503358557514549513107111989290371052303731851766614685641243401909746835325691532885899384809269286344472308960980359316497810217122070327863420795833806284601386063492130405052128290629573976237174745204998013419755397872081769497983004900154559071376230245900552620591735894299192419402339920190067864756105931709478906570265871567123603302004973178999865568378188351431521137578663229398114028311236628212638628623369478869807100987168171523356534167364635481369700225093611345307012467962355937290212624254406402849048489772565228856845427436506619604592595197768279424367266541170734358174516629675346659142371802475592186961577292166500138586484363682913940288077776585564270631161121939373567924063775216826762936462116718587822913417920750133158702112211960746607647167838721142658129437797250139611359408751581234920045593749023430329101471868650368607127459367040503056274916191052559534251489711232721546508480219121496174253707790589604862972252659613712952727923638349500185050024866880313725204044306532834544851986191879669230525841862328684381146468195545104151354882387241449106104125163003754108564791991617087227435788980789251802256589485679840877717737559125963881372383531572955118691025323222959748914731624761878307187079672969972787610601880642802317954773214530529907457557754285320558027361677391939105806032693753270692086232589423341042740123273880020550619866480448369305934495221304321636199965394965991681273302870310562427886311298984971052792426370026952147328237568772750866828768229749646234199128456107325221918446033701496496266309090217726144193602611124157789291397670060597162619750909238288739303267875355010672725720336887751778057840430175405090006114445050315238181958912482094899093316415311042967600855483029962455663280262722538016662996099813235203469793751328754078691689591819785398409989784690542941022623788404802551953111535664122224547716713224488433775693429989465561845448550451417337132782346887123532944752523957955888489038618453308046904271884103008445888778507563059165039836304877332013069394783129927790245001139816483754112161570147272875227087274708932368952800728745377526098252813900488460943629316676357135713791499227457354209992472543865140498120532414926092399678392012519558050958331795119686831602837853415522156234955023964024146312321665136808096045583704840144768946587801244709014107249858399598687866405239603817242949802866386729655846318992093609755721013356723451311667482994675653662580213201425056819129196101375823360928746460416883429575533603766493848179058108768052120913877898821285124592074792824766262504026253717157526003783360648266531279390046436956648285255103940869152179771103051458991986598377421414304845782247457430712655165196384565274707268779107920700151263517234109444701899069060230573636597190840273241401590401441839437744328146317395812339037786711403470833069569979828566958551601235222914109625706482439292005783868661250089981446894477921290430455332020780694643511387664106333033514567642680909485676797233431815729779153172575484311571400802466151458989332583636945932197604681277605036304925080169835280941953918229031902024593272752286237677047911943076164714578477671623334162586530423549102600201282847006179608638795267959894723410414020080393631126984748703504915376594324005250878659195690823559231666568041757817144328276527202706591959023627031098329260215831048742724086270576874149470916894409908421897861402776519149259020981485747108716443043527154676388440970210979578326930464282204861144612220866446259284319754986118276154735184453988159011898916844202210796349963921955307073268329495681502776820980049663358529626394664148029898929655279333327847709617810592363851498523194322969953348758039150945333220403820397292297487183649957062626835118404933051995873926866908170658583455478128777002296770837756308030357903263521554928309525133451422528408264606385584167806526178098012018281556457316380479749310923405433143661444841562212326502613522356155913181182515056206712004462943302109535990532628005800820983266389748879089636579488334493169803173202873736724015231613922341237414427780439028438848339229017625714473567444981404997508084486266747202391686024643605745463366127068190462755379897499458527172897411972111616788870847282236742309103606485655902203445998343680283847267678488978238931377224872769323570350541493481073374414986348619072784776521576250491574722868921309248602409801323789004158078384207335433169827946429500593531354496745007154339268366889454653319647012380848753167215893811242399980376455980413658150297156402938248533426267575931365458518470007258220868677000761511357036668941082607637390632854716180036139565965225295913567418146606142530477205949797386017283457183559999430454308130237783061077695853324012895602728460711935780707045208344872029404408511500114315899814407841093869615393694615276519198730734625226421067065810643229571012603126455503986173351204136097291550121146404926595934673632522178882567232460685532393656498168345223691875035739746050665175899757354869400781285158082134105411826828744255958080001798543188887743933270937252022274481831765543863379988858983891260154329569654136713245273666714147735075233405661401704212873795386707508405836150668008725516896905613042584498781654571630612821264620147068676829718049907536849870208706091701091657325954707024654611261192501480064851007001705650654666540953689189911928338190685563398115430131448474770052475485552749818636270586879796231261016152453905512732703667184105491330213886256644406214783861422154283252429418152276773456522747155588043865417369339031218833464056104196898501110197559167355674830824945680427666273895634794532966187934396311069802101278604484857591890177003657178006118575206941245403478924913537201405509693538082250136259205143022334676041823879277175391609460518452465738103777761008528119509431163377475382123110800113485064491326062078173980522634536164180637349102506503655011609762810811634965927214959123925734116364159344723848592971000122902022542315075644119085478666870156714024282062982264823940044943792733714530324751215057527057280926044854710154735462830976447240091518427420489972949759351442692985449278106267900526954820835285423694797453451427121323563360504974861087404101765964420185915138731090049931709269607436555689293507102816288429931846332622657802906750357121724592822369853143132042505307300845649616542106121714224259496832159793578558514919660269155704352349521256464969394471455774485914404607841470345816972334669370148789288721644465153498896981576895779564856872982932519976715108474607551729269650116506152630579507897584780130242835036282975434288140751181370149638111432966665591371568522161812327203657210497548812604177517407424735717141875642428575884511581659273770817809319881609380945545937412747015600368677777883204017009575400794386136976858320807601791762583007678771569068379982834708401197216733431600455772682954366197858774356838395167089736321034387187703826022536881709498201905717409829108135870831634387493247315007586803627415474146696206405596277100262194327827883347058729629577610870848833087999025170283978162502988627573580969914948793528709226654144027926189683511514132894375837790271591124433026201958980879557144714257584751723717967300628892485684857401553660223932765362263074631055889159340190442973164613528131583625911615627057478917510131268899755841829322775700303218818008900650042993456472895929337523704426080280872504006906732424886656660195157668324117019834641504785688714206771085240438841480117947095240991334244903054511692641251405769401636913332600837643345496635331334713139503169217031712541846755384350896487476632259330420331517987043782515409511536886922827472787763735893501008232020394234569341052598121738291784951073216017020809546732947357067924735629872091431154180594349459223717147669292743468545032167078107457092859636637888177922401899150670806194968311446171265680748708988041773868082073241824886798376324086414363258900839738475243581893959846836546903415583594014493556389429216125398710215570325694483582147527053815306481950971986297008659424275183791024149477375685588213070480849304759990994087382940082679909415758210455186456355400886634365288258040724323537044334448229566447260523059720443090534933915584609110860547786920547583671014879529924526198101413151006663018696947242623738959126486512681326026086514884004828371207844890648741659052543144627401484341557922554153136973618457634950137114786744615513344569131006718279202397774231766996606164777563606717752424945127522697170265311188382507101032934308910683710886674115612924332198653097900885405271291594638710940102196139382564015116963220797183640743841945185757672576772303573504722574070881821008836899254997846717308681910331796850558056982014261682985878802059893487612131481660728721452483036160743902736355278022872440145186942615856382761067808751073871568864595614547700279003271584058562893860526493322322117181397128235519760838303063606293906382403879762614316895106758559265715358131804728270812692707161286277387439240278760193801953686724798862802251404993237733838649913809237144709914461775819860032538085988864661864041075410115307631620132099814621016080451697135455374596816451723800583972960657076112797097857870621085278349600870495482261346031239383305437793716448818055802121883464452650384485125379580378402169356064723921896321598804499146727991864963670381254286161158471281562654094023306724232776293861936449652245951729083667151207862676657086049721418215144399822918252900085233065607129832257275641537842105779882876393312295797158146452395056529364117839014447411669235609024246230494401520042448529973773782041763931853423714629417898090119387857241860753543391520253895786337571958789315489022227776890136122729043847396855071037078308431760535816174458180723422355811007232768148344060599497300263589653485599969260378979921913432092117891844015083899714700955774801232389864195775000415424076328217075014814391660370447670961320307122742904532951649857901443434962488239793091793274710504153279495366223718431846941335267746124293535253501320204777807252301813203694399922505130883132653551565966110381250484992375545771825932838534549306845682742876760785886863572251743379477758111412373834755680525018667031488132915965277144261963715294258962484425445820546716065027446599789923514652689593529284743206718468882282291002265193423347821130719204939355184783383350223650537825737383207948939192161420696041783593281907068993586625373373765345528445575601453234403911808075447173244678189885757798612646676799953989952352258089818344022015624293024979088825466918671774917769819432076300977384222149057755367454666710788468663964547752373884027652652534288069870178042208585934993724069586184155652588575501934432097462789135744811577775836385740729122094283896312579589887981263435568932602805629131479536969441137872388545971227139244555326235110305791922123719052868274468379899506364583996542350045413128460055325725216848676108482999657061236746152117266558839554426316007365650010228013515983120708840701901964295883430149111185141826873572857646999064335158681018562288804758803202676466046051111960392007503677546848368111112331267807964132233688736586913862604404766421663466240571068520758611811358661792907422734411024110264335452009777559650019599953361882039698797840787937667829616766970722692273675871362144913074723086930293527246576705689992063147476490182170569154859546002715210346787835760211929939332042160945314043218347608988865047692037334229447366482071043080993117521545583031433019440007064079106938161487324086889544626503183218210267534764677667169693228782189894290044216192975423753430680702814159526360032115539748695010173727458777759247598957219158774850078392694813544638260344040115758530201638222191263967210413954425509329152923888646669111647161075925836474564488808744346207379607076840432195414832502903295579301225798219186086862086509294415383251560288183654695016802036470843180477866821538032412480627604895057694010835656566140322849172475953343457910158780424484148022368445947983555052841178853808301097455140625400494510868817307303610659610814886510825402813491388829224857834090389767733412461538167796228838629317952651637634648768511735346026041208642203673248012100665815136011812107646017590793579051938536628962765062370280996220040091127918952306273442899782633323017353219565447695937677694457308910129515331583203089391351455540280749135341479207255836549781958057908367762903790107194735460000242859816903299745763343262931472244351949998402017364912796418950651949795452516800329222704340645005522283303029349191079036840368837286064970054763530612811478067546820252122113028596744201443279954688788486808807571022197672421415415801181700824120404452705534695558228050110836895612963635011485541966044668688594723793736386350514774936510290290462201157382479414353722950681071368131829827028666265224986516528462091341975202168793903965129496394075655719217473714610200790193935247857451460364716360573486411433354199245208242778306639903425788312213053024304015231570435713474081661543928867705427484933929796585804402911593793984408744427624958455768709057752099486737988357703519582928577658122088146931944901465939566870649632080207537846773329600705968976955735851274999119622758288243520554663400645879950225763949461091759669473433625009257674067240417236208065913676346812259815106347608727980197531389646745234557884874931109019449277524663123727646110290053906471843087876067540199940492816856720866474012637493324677330491077055522645743428587379841558561713550786936077856655620233130372263652552931783620280044089180680354028104626686444642890052180611845611166095855082284839725916943305856106874189799402256363524435521341257531203813694799439374853177707907603065207930133255758604546194716420798869985579464586401856844201040552213970761387544558808614071977524600808649017878065070316889014529598019471116464083226205934571501711649087192233300651222439864034072020537665656080790717214293276431833534701758334386593271054439517502736282057865280272806311144838080115901791387102129041489761354292458582411125024778371322314713724564771257188951566587989297506364651151443639856084997387073293877252946485436564465270263146873833408555962657804127495737762783922347217569784189412453401884008396854710308047260578013325241321256808276968088162550402752585192850202963931490244842289870031838431300954755344048732030410014024390847440176350198207502252755040203506349191311746190217591213547977465899075141436702180521740501559566912363717197681955721441416307574515830184297810878112353581519983746906539701283867988956281758983434116141127525468651652553526076309534444176581076485694667631523527236602366263298704325718938611390453089699896489984957600394863530029088975541940429027900221882583724199101880786808052448855221052814228248882309919938239885420513021672644089050295934162273436718184049974914482719010539862362881892055236945338785730756220710078699006693699762587370331397778695604815248423034856343702236935135580359707176887892040939509684865991141331422848524090457727327665943906998942591429324198662403869429212784415408927511290672341916549476855540113026950689109220417161197686824525151655578259614917691870887315599301667427495691544535690437123714292570314410476351751364736053158997651840095858135878340403990428928964020428373375799393550253401380237823039075053020880016354480453160857728400524261412086125279198386362804944495888729971634946014943807921754306686435269546717454981140652804761567088453269240530864831134503596185549410390940617504562097673454494247659245868672644300202967549830878877713014952017345052422397805433801115000975490555282820368185436946461206113862420020318182490829805907068350859161861185626528843879102437357101877845682873202034839448730478975357137277654243364215625829892089719472079803637947788595609952872948850290433558715604300102611503531530800948749424819771814505908569761693920729471684455052142199744656880341859881044417679848649985740359237847621560838149461342320640602258355537801296456738052988845435497459448858091299391628556241728559907548433393294717607036167166722269015396758065537601127421269464202070048519839683777156020368790784122296466724504548153219508377068852628271680676675808701767666995465834676942502220758114669358315916910349174860344738119819001276947804836906377129352981531513451753822196707757112244768413816204243510550351486610707364419349256161930559300054497884726839207124668017052287846289291470430856703380585156158773851486374771346551296482468220988190622032238955319345627813246670211971528176480496890133165978798564536109407408096215302498682260809322996715484493395243323613778547168785183447592915671510498559034265614514843027248737821525181273862830487859158674533735200904143764101074866633814611134120942568883774636464336659954058318096974417045560006130432060979813239306863490552810350055188415902351410316814277713670828575804465690572560911469905153108151337409671976315133201785216621959711981188645501154824523130726871957956594754658768818441532162541670917486675517688494270127801799535228946354651472183931716004522198655503986991834291249276387965501765323913712330282616642341648541073629873364487176547940807983426764039012086731885721098809655867858669711041727813644183186939260919017823010586791460712106367301024373781039609049125580763346816259967813546498828399619763910681636759313836710710573897538799339170563621099928911655612790600874971731519690262596553730065876539528163852914233859581229043141274928998022699241944094624364562911132223065149662419575572791450714056620033248469328009907618739981547853311401441937073203343026620435811334762278134570739326461925795109749869439456637465840277530544939751555892067024749930796835240954582126425753997710159724970415676808827308530130078837793172621035411308757978997937381827499889452269835295328333403117990733105046459092651373366918179707616154218016359876066250073131135320221075785388138228064661582603519090568418121246786560447160484222654293315820188314477133767486570598375209485472812230994513483105003182841546260825678913601442235006250776793040181043184875395384124945293463357045307848063677141237613284856045337969645222276009295983904588165689353022674224621372414480160646554740487884085759769129370044418819457798939779971885385445330790388680749270555376591635781908561127989824895216612917592003904922887194731341371941014159607089320018697111823606134612374704497354709961382637643299142018564956799894244063732453851116903701615334520634510832368899894671803413763375588351594104900065923577838383819907358273975445273396673231683383094846999115402693980488871784309144084092046950045295658153461137208331432766383195846999998267845560586960925353159237640281561744701783790640063314061364499283551089495637733934066374332964394004778115639868576497339057535500693062445183981550108502068647762047465421379128248494158510654942649031564421683155268872593558185710040466106353827734376622736006100821500481129396359264660480862202616396739752079755835935184811071879645114807611156331688907285226149055289004299954863725999889979769917166074081091788594001281192725521321025954193183213644017900205791882427067391224983599553517256018853630933397322548924031427219610459176036970177356908579451740979868086599918794132636158585135225743438039170731116866927682084778715877920964183868437991238447336873298487150939088255620721556753331879533842194555765956844215108195451219478243914778470923989314385790698236472798074967641797107203392766607132886241361955739583528593785046827601340564692569450022647651009974563672494607354073898847475391297145599794580499540027157285102001694416892577988296126557646930039003508455938662858322252807351976161579861190337188800715270139549643183125413880022553889774613115369682616643732952840589495102946526744817808797615595579870373144368253863695369339176600434424466850134525755710109033437814111244021891637107984553820275029722556920028492051336654812463435998858356099543596305046189222228493087651591708327129520746896909619680297837647274707965714775772723476915861436892570474111276175289662753069955292963642094284819432175734176601933818209888362123583085315796370927208183709116412344737315553311670624969372504991993706043790988883293760557490032272153563883323565149205361857808682371524118058177695102588123107314560970760654541498434457177963560579701006177777646931446395298385717296179832157449873672023425403794450147713497313270561019185884352351588539483834183520358167626306542242856745398572744906506112871299903625768882239896248422989070045535599279832324805394476247342468412526146252198285176655575907739471214159997131231193778326431361488955578712515732000694907520687838124021043531008003900119084378913810952656203469909107533501933438591764458812423793702660942450774985033895146904454014951551961235569857405525463881579230718757408992697391145045305726081542809098864045763332078396719080822109535375882086097516357605575020703806160593570587719088522614434182706223883777426640554989626205133989711535327708423389271282698632319703477797481846705894839798178927870336335206952094828496069308789111793214824120566781264312748187796106470543550625476054378930999869100012458309869484527421172635972913138725052236356980687589741499461796086866024271269066256722783969984638775469750393556695730271714499711930445838226787206685318273417795151184314773799820884933414079390277452394075964731890914937402864068829688719033578710158726652883576869051038984994998623572505952217541791874501174393281690839711450678960092272917824788938016714986117684965093242054030881218766065001232315546617033214262919964886930381750274967206881479986723444631702664841163803519221651375267779294701884089860854698305113868851201904888122896655657856820548810190704074147322362166981268254273921067847883880141848223328693243734991654673790908480997340776007760429154761339416954218752154560227448006088731334231701407113558124707436962425456715118876746860488435220384382756568588650830199951407852204880386145439246705979080330537491401252622093508023917260411089910707624014663812717693989635213267583633798911146822280846933950110523439971043961420175450545813751104707581440835334944471547563955807046665962580337080739103678377159030851866536868387678696106131756786243745619386400977246044345129816464739223550174528427875404830711467725346508450628035508978383263946908226316362743538189590771884039667947058757435602831407241326737677048709049150747864541719103810508951917663011063019064267660057075914444355139185060858009368938309133413192957372390399183994042077536607496761046551330171118136444293947865031779201643767852831899668177284727020904030426596058965914067164858710789717980043965549219520924432375625125929907661072702172310641080133653485681033504325033523645283981379586803477261966435693059558935489184352519035397458539587722016503371735838541549861788456406058269481206531087732903726959480143741957316215952804934476427378406361154917280428135008292888298062168224254870927883765254003462784206728942528775844669970236645066062924594959075906781452583115834610877289472980267931861832479472211567387081196383526779339224774743829126978701793593593267445325314054841000125951520068908422095704687419816817957872727657188322477644421021214794297633105102137395420179046742421249550004644607177023777543845172149947105539017868359373410620398578407874234231749882713405657504994198277249932212488180812430467426236583791963992528898381436469533062467854633378545114514104359254681331285453204363104555293524269640474411988945562386888246565188320794935048915100597211015240536190903566577579943027132887991613757086923625146708068356706829492303563598377519740698683406630262662917916011159900866563014733563055962781619883541292452672723086357601674249224245633576442585395986057350045310605971713593927864199736109005268433639680872689602615113307158357272632498892764495818190859318156296782761761565911670193423597655844230107875433891033015702525250992126040084585896163170223662521763391746353799790264023591687106824040849536374250626495162415742015486015796099350739044146427630393134533027482181166831671527598693758435165250292303695471221097857338282047884583780694744203287372343613196556691855648418386045815162194072806186702934959752698953981528729160280134847653665436241142666327801180264266523341294155479976537470576014465851016916523095135989308568782645322886548731348496733807392268502828219847466417276816616587595838701959421726655773902763268588507160772905547919058520226367985402230917161525063023472972261492180639491000041907114301984144898021932040836388091675968046048768466082073878164355606324925959680956405811935731012252999392657013213584790383466654913171732076126424647534024284166824614791523077296525204990636434306017796267837901518822835521922757194925661651093485208581236026206610567908385654729279795743344994904827182409297105937558028279370504230472927427596066267220177836852221007960704422380210261263750971791595606890162055573056095968175382530829597975481189858545919389338216713288003713035610856980105327675659632598333006759626476145587094239147839344810194798182638002945651853325160031416916649287997089775610988414985252309212457993758925805378924908215629295006322513225037739350227022298857359851762292182679863453596690501680196657641158882110832360597979917747686223204601384817718309923803147673124225691964423205180190566745294969435835376535567190288559933997648113185129676334894605709929762883500175871538114607911869516167909982524445122340995250549748560683970057718498949984876978996852914172310149985800154478481373384211402170581362635916016955917494275142325045395451667762688924024778654514172458093918952657393237401081654404959487923322042504199470260633437153368722119611077348292108665267905732292151888302850388549463142918105656819143491485258312253086501781341017110903234642350612886099742623933335754882090545752423485702218388667862917616301309363119747568121442351049743901297992436436111255903092039736304935296180505660848320474950683531073017127595785082912043550743478026107133230697241391535824890432573374348834671017611269720308738824580864932811613313785425321403357237770184145829782764064375076879577122808720965599851700281149080330870114689589577756676829635979390060316923952410909727461941761440989463217325182940506779656111753015443208144077576039264349468276618182461175048217745636101139971878497488304891572299829611579804235124062509987017118431908685952997009460588512636735110653194714920696474751143573574364247372181742076515574441535286812032194773068294781884792896670371980255409201397234019126479919065850313727873161284879624261991013269231416086449884592375196886976083751761446557718274668794229896474159558412762105502091765747040286136605022214912076077707976108373236238953609400438491620384485550983818060865688870224940680511727052018414365990665172496882819566239928448164794140766450205909314410170057126646450873654421771128835895292621242732576232646403370970036262236434411023289573578119116444721628231658254624685687822374042378336546133362123932227685905904929213423510783508586451056510930694947998270886366433771996161224483329345203017708763908721433918008708362791309603700168753270622824723204484926526932577418655401274450330341975668861223006581638622719315789895996051703827504097866341274091798442611460272987298538279162739313700241723590070927782013040654374873719713699905623535303623855426590577040203560554909169466883894328849412825953985745475848078053794816749373540953993193009524873332182030912544834552013346371315101488152130165121532069977789714231042582172661894682969592719217208618354836332384946680570588616436477801207476859676522269073086236757357389896109349786086695219838673223653081790126655543012924665016836955685559825109942021325742580277260219139004923647881042018641114476840835171080420673494535886088177201896340846690899059516052547932866856637730502867869107009057241387719356957868097817942237613061954268127131932906177212911350371106359232115637423588267614524048522680160103774957715175204313122892531646324146122710167886127541985554178194220442619385911804099062449295390586421420443625171393466987455379931240906075868804299210787439699277709507157643988604501078667620593075635494828786682381574460870024198621606379842450474754778120333623771588194503772282819131285477333120600969473092610771084653954649310344576076996320411035851876565979717205536129228574134623795634177750886103277602412881903694527777316936728862062821671292447783422414846345883783342960040476811552514927165717723771091667828019865885185815129113670472485658057367558759281576785640332398317981287972947834930651060026133005128832073386846207666123409150885152242496973765971187083183588711587213054280339266572953527562444785333751315822863711028652678953897098697445935171052135380484361525810333194575377410601046996853156238389270776972383899412707045624893100578805407395852452924808868590217671078409660167015585705425511173829073316490074659286759880573493263856927166241741531425798474113256437031541513046229126418370910250860592126773467019598235351721426433250186080650786605849801741393991516417877727114087375359922873792747639995264802081050770752611614920471216107175675276930069799797499014161476805025134414697195852272608163949883004516994729875458531080576773352008502640532920346237006352566957541465809576924058554415533816800679016540630492085200375053085143059518616673273480408359047145326603580930171295732770478554935142939157419250025569086754762907590249935010654824023016981749404188534262761347632126630430710087636707963331234804818015986902047904720301096827314481159522290920210776975782678327189856225580850171764807089671655255616346051991675819665710651663622482769035856975248482852647873251150522585664276414340162491776708996761496739316812861230400728043565086268149544730638161525164247871249123750727865890624412668618395078353123666976684067668085745438936909593404675092973051323406216878524118128849122316726322402903333724963107404106954282963860832631945253411483589278640104987605561083408959390132388862069354858224512207658309269383461423856759926647364789329355427524089679101840039213500527680700226233775094075675640126062760232919033099149353273467536932812594685697075954778804480002183254127848413055899032314348296750783326825816677936365469871383360611591568703093549570038498219732828404139172419813055198618989416349189651571022379509877864503102903817724180910790353568197832422529070994784486390842368669323100836993036736117261004998529500140288668296747511908055833207250288896480166573339744669679205768197730452665995690496595090034702785959631142332780225612871633968670460510251571497280144297100578283969989259140983208591734250547919526581018632426702552157420524617055445249990553942160651190602535226219105680837564094261342395393632538541284429068135341525750686899293866283434192399230387389794344920025073052741731653767454419681712020434122715317698038789898425099918982507802876232119235193893024344110307689675261306949520361608207909465817477109718823806618653110980122560030292697694916305594401235044035226830690649124314509561803657903688393667325775046690981767307163225881263545324832942449725859318510025558768706637939817106509709714649852584097176355618567816389015559369641582558901516513722318473961105984046072366292472013608640141037019113809511057311530641956527567382981951882500073213677816734533978301317297821275759541586689007226234410072186188861689338107037405077378218528017661661729048716149710030848623736926251621403096587237353700336080317107155439292852900678394460984347507119341156557976006664022152360119907635333554041399446176768450308456880916317012853504465960176648957387439098121448035812094990025239561355684050436741437212116675031304952403104215170899147934553176748076549710012467177580336525222338146917223664364855183571306412930365494289952501185777665894325938596129958544613785204746006043907201736808404973301863385818341158493774206331590930733691341401852865349307264936505603835811698116653539150043291760273864201056873969303822402787052922929967863749736920723468662202339091538585965394893102936957759457374535711782679187412847615698026084164412227476251140218129628447428956788604654756986697773431846976541947281976099112832110525686465967879164736466078079206962910729837940610682720894408837068322015301921739954477976906228273446274443508267014147059374294414612959098319744450562177351602609123175679689883986839562851512195302657441305776308832034307847632332608263937200178849182759255273425053349359662844695800065947685025181159950992304572828980459011486099679699681878614949518876742947102940798344648121844413425941609495636642829029390628152027867554889875304700506106944605838120088188489714715418719760147356878984071760527115330511299048594152807826358172960004498994123900635426596017791264706991511613610240641136983359026468073278785770766645269849666783168523126864281553611465600865542378099630234034101578672147077917964614973422937350890366095777126785682874550849759360630190464499867828798201502318144628463957328281863831824999052513941467863628666190746319536442126636757149087925513357603436941663994141237749473783551615320059473115404273176702642565097616846844864004822859588536736252801486529397340237963848881328707847500820141445007917640331283510586005911382180427981504267877157682263893358517337669585650298177592320489707312614013994642797580681383467525571437736814976935975546625086958743341733108574976275964004135210407369852688242283552124083027164664173054216793976430400259765239483745883672928118649663991501039919677567222662545292129730787405896164536964050136841304740014476680478774221330197321668931171127745714365235556819576515213371156317848705132017128991757050920057407118105218316196549628289418885809632076071406853141828210850273909687991063290766125184288917742955734994290938818885367361343918746847493520744840295483858924227399674221822004611864306830410562680244807888435495150017834140433928051524465184929347912437165167063218954126954503693856922614927249344338580807449308261123293501786031432413813826212600185957190730178700164056190783437203715428821528909151344088152585094832034828351247987422788530532331307039254127317642374584217872813930566443804186509512697399842433117745296088001835546409013474557820285789694858943214028148832680093015511807663666724509860794381675206703216223711640462548056250488786924502455245989579773543810314496716390705343769414117428437475369102310079250797279501344524158442829086180729613440630245194546892305658030910017497320043670071729267391656816185611403457134868802524301161167440294266139103993219644440621172015531807190325874311888516789641569952173288084461084011608200786380948624481461029454168579735117810141592012792703700643102909803579685093561794321629198152249154542465393319767353412347069155253073445333405369302940835971228460604983972404783948298888805414862583792155402382561492163189639945730862213599092908101749819694684109642931040520304008002202015043451300348527849720829859847271381690395769433607630963514083765942117761373919896434217708317912036546203176513775227876099160927691022272525390984948483556607241226264829622012095146248162545095226424166019079194815494702059971967596390241105208325473086406328485346491414104666162094599732439761107912877075146974252308238178966131261005343674275046719191441308109796629420720231101920778948484851820638330118801617269479168263937549860346997341401797612041495482247727655493024923086101837162258954824426671824242136706644000730967783761092216611655891830319000413900233531703863868160174754874899272188561566853022204208633051405238166368310581985844580727167694208702973953497372228296272071279272602680766925684411378053717075367933681059608538074670312557557892264045116693716383856138473256648864855305282492013677456142630939212977151243777350277193130467703091853029088653728056517274415816448741574835258006211556261522689430073541907247719926960593818828934314573699999624036034224730986625884114862863482220521782596727378465268350854503449458000609216964077502071135606920929189912532679514130780757984604978416605233449465843840355660722043168798685651405419854408786780060180121303672932145950024111070114399575121806724698414878738345302386174326981518337021145741935396122276016863391667829487247826921359664951835780997201498602072244132635732353395175696774894829627307028396979527855553884728488318244812211673288337991469539919725558194105424915307617054050946487424748823925309831773318653023882865282844091353981057698311766746704622151802104977344992585292868641405554932036499232773140487436595249690891549074747551732174595810006116711927652374955862728711582865564108061526940542973333679793514351988940760055172000189122002896480318622552191881833372117563637889332139477319676203161999194115014766754899917428315082931178561970218263037912684123135072829602360360822972168207007189735026361017163596317094380611401733964529462409906855336476384142084179148347497013345381204130660737518377842365557597644157025622901664310887220492698862043590374126894574640405670634163991055407082235902822649879423103737624347463158068113214251964182568771232297199604398430173144314298063088275948065079485731417982197270662298313770406968198921873429202861930962622499912280797757824356415674738181331022511326569574971235781705925574049698676854356501181641577448484286158598521860061620611417024582129598802773948968030834826775757331234513694353103456436067337408523811806648785016889125292702778737373678665266288715538633431440368231000833372084376963430383756957489405121444662760729949688112600536311558028372144103496281525398810873219363676127660929013060070352619521658051567061227364523281315665949948530403773436263125659433664377845969191784602998240005678812631225788502971456865432818312847876710795001387918037398632140834163878912218221547139887231447562048743739997122017107225425270094582555715594605638913579202541452198461901064940907315919754587799703461191493578200792214726322220033719114648818066702269087458041178018966466977940616006280292218358764703003987012170455276730518954857601449573835434027560042098908042561362522637097074676112669249787974851028316175710759388701992243579987804918827302888220968820232480918727189346553709857924976027075399186450431391257966751157891808079253881898558592579854964213500465787528995457528324783060569955702494888777093039768166251413970876392399746788477712123828280512943881926992065725711046502467339535060403197943478214864465903890712081320145379704801522790745462390059635278104146901479009387487848885152946630997984415956778948430693191439587845245118161816478277720383830958942347373294142340992408320082293573422529316090605567187860186068716134168065582007716650141396653039410415357898900815702384222504050240767469245824959779727359264063916115046049993402016056223621049409643508175009817172214978701568609894325781838175934774570654764377722937339372876536768165300896678840487473168826505445749964078897724589575068351308471147712662738775329281280161174977376604463301974260766355865153012619534841174694638799819576048491586016895339841871660449484113738026155687468157240213480385824397776201619662383252954715070112693020394163985136736698467298914699462833273040325675682848303148078584346136138680450424452684172724595511667725922358368637004075048876532428281490828733864931094854946559562057827886816103705812200422270877578692874977045842465462903873177258621921672159227356621774640787652167188678975309874068416011140064550453464989729802335488381306752440371380719219803941155530896887324886122160898103618132215430466278758744482865108581987701616841107410358418315668694063876404797873719625060420498761118625721643306497996757748538089713529668751828754740862222321832291550306510365119113253035505096162889020322470712553924884632043864303590614760402922351706333462858260715150183332113131306815140522427402588231393677021610480002573248760391516631292555640773103357300140181425116443901356767330396166560356336009938678265244082593051876101712317911572070674956093055361144491244267968710538919810898056476563848937142484368868132639247212794323264770322387355241177962098601072120536280027473392342525593174792456745076737047497543037398393334738044408897899474894551998575852912556477023774682313449543381126928736580386568402201897550371160738420076991099750243874625899077908553907008007306074887158215574035938203657114700972593985167913887484562655544116286256249746613440133096338605846247698618180910584518906350840018686583839778636410481204206441016269888746716369831979044479117279026167244397277379216853938519196183963260153918151754686698082599148094606852865389997752655399445858723177536072121274004963650540400329109288303153656787840993288710204629352566529561723958761295229311763236885216240318505799706472251542508765674055639216485737175323720282055932091113995704442516563133253818730112737178755710650518269785349397468658093880925288145715126212556494900596435303849222392802721147157733718293516078439261096671959675792020892289396934356562216423348847645251939293556428438209509188874999337386566531645915957444017853749979691646657674328730342873675796502122295402853964610960535207437250254757583267499233042125722734277788295782670468097356186941169776502945905202007379899729952950564345306146912053324017218319370880414767382668113280744540325006496422072670851621580836892101393858300190603035167752859222227975705646208947303789579042625688808232706389521061196592140773961152559263242853703181868713897904382255676186400561767330649944904250001958895867209983018087686110717735853877245674764021338221584126270948837456831826739226587527917846133376136962960987426014921907331548103755542090509133321517297092843645040969492975292333650345939873256551080211697949729548868123837571793244153264730221466903864855676684316699540201256135938151074868368033920574191156003158560561984585831628405972219325012057363957315365134434272449409206501175737043282565284621432997241945202309470209164429125324653616279300948368339154723084164308087371420126367506838187183931934869731997625690875323798827820699102341355926801141771552516858887585939261048928318707616672660058814200810933965965243557137969486354847243832257800496869602166204709810280863862085303960709163659978235784469345077614961026802803161713025804896044246258892363551521692370931053064121669720028900330378342886624697787392067684760456666770303828557255066275710019932883084652894799780106399246911387133900686465481745049788006182909250427772620099328122774929207221524110589549168235802944987708205011069400815640002649909244156692583670993220059606684166990815960602666917511152064592685420775145303579201997332249915470948294386906592941039261064985753223711780754082942899704761530973343026903643903134949260758841716924315351294289960042076945002629780845971196394115475028013660788513577319939257855097126422769028902169591734919765405498437090680352442539793153445413337209674966034563505357634904119991904070796402458312286646958409841742905612058357400674163526607706241337176709734961862041110518974171336525357266168506107771541891246142479746126939343385522688221575282457797011447211813182615315839204967026334125610512237326976067514190452771628653760609328755188242264883732144396544582788179341271589206201398859487093119673050412371742408506554578979323786451515684978000294525433934897410123104355845136156401225417594064391472739159001192714947399652195437384749772106681231648054941380077543597834691539596598853034333659402833285854622327063170968233715542599920301492054641779130935840270990825044354933899613845763909476977175254378283620793106746645817769946340116049766127852588249566670345189708995539289125674509134342769097193967847122695924042853334955098973442168577378160428584960476118210359298751304962030331467905421479329169958888416087829912550698679664166414915751368943686011345530518822449015514154571983907175973839971469722428916983528939931671073172261459898090917613578275831257499608347432247488403336731205020952228887526953854998357076243317187087955426437388085846987699555627681267119689817363664988269795713872688929012323759121473409411791890797193821488884953735598432607552089577080173563606400575059833701988339898415077216779183381004194116968971347477047794474846574774167342054439137681921149042226348452883650792117582489977005808702124597575884247242783789399907743832314781607084960191266199356886270271678420812977108622421348498330204743351507313685453504237269584095772089383466322349184183557742947553116378658531167426471855637697303892317736106709964159875074666954301806818877263196488568191103211733695260769115754297396341824363840448183321615338212886270002038925012138162000866818616499458777863377004510826196974834129345810904716381747150695680432143188195651967765834545331307985689454604348173806410762558981450277239808000218750831646942777521245176863086885339272933129387011518892758422486305703210992267051106200573004259885528809819446971510583799133177683538422077245184288558165940252555477204214233169094739086319016159875943685063852666424274511710638731491690820750589617540537843894088839126630404143964094429872975408210306207197877436737186191239424012463677345199808056140861533798074298392221067979561207697947802185119681352163962166655370040971303158147437616559334031689556146554564639696012740557613904487718467673634579278857427926754241318114615031824968014332927743779284358294590309315106138383875279534953663661330074115612094070661890319810571044212573855682027929788580299569738978389500752268953083035195252281689852183909468525012953569104057809535421490261935416750592414185368525788094354456157175357741014362265433260402581221654011775608573808642494479428272662381476246560235146542386878746023441068255479870005891257526642783563460467018707935210141784937059446271827540241277301003887565964884152616152561299761612121371978327338130184663782726427754260183170515455108866523852636156086906404040864701705130680605401325061140300936177518085359375330543892415152732926987766008580962056706905889917367522757237316812777720470413072149573639404703840037757424344746642323838235344091828194560440789994919169481920328524341040530144652539385762621540383113170440969699563710568849220109798201328650837848965326535064695490200654397692869677131269216364169259104246030750137552655463554788698115748910424848096558650617633539735586748406522100708882164646750735026997561143906499935350103667481511524977601091040418489313736755429887961873447683526273865507612867847986527397282275289532363295881560345720164859186794166381267180567349546051802805920322861659669581825488805036258676197930961798409194611455493703917472182148328873915254718556942307641239943991258729906486637532869997988263527590279228004742361590553999123296227747375927933647353768743739991945129212784206908630863339869524003443220879591690219508869103168150691135734140982800458304365262546119626709296066234498799696937652839125963811671334492940611741778377586672067113603498206067703931463290604521300096740390103830123581041886493673005912348024161220043841600364053208926697425281390795969957119666766669261676763829604833128118059834356086245707680401647731072482769002598700764202308411367743636568943082710631486839159078550325021814206818529987629939941412527765013411964763216859047116974351982353401930864025704642340539212009520501602211873159600766988253063028131157047958569603862962779709543454522886172524363101607963828810893896698053121509014721508990014366054819671584876770348498344451324447637351809527692406480009841803166571033061855137306032499111933477646175642762612824884115636899859034888221822523536902524999446456609399012218907313911335551227646539101764734358144315979309571082433625412354118426170241261259013718253570123160825062458400273646517231943843927616835083844396949970805734839135617332177027210694169090050403942363590550336641712225953428588951836765769544917718795555384462345602083681903423811086085856106487986653430037919450799738352372966546662082783015107085612450058856689064686723754702861970834871402596003916558366569456774029182288948953846899911646685902559763359612639685666762890552025301891694532304856638441460277620209693008001329820971647485379873192457153506249224017389011328820100314430115646302940821811786924063631369850871211638170303095294602665816405581178176717849405645001605190034939149655163241083166199137466008835247262983957997831991317237385177671742739849619464795086329461209347270122283952065548293189847107080577602638167849681284070733562577241853992838577883073009857979121130206113640253332568256263835741713807198685547982090609834878092031629591063136748814202230370920344091749296494817299485531129755902984804515235050508206755050599042264838788972171449928570433806236498707125347660810342833909987161535575728411809958446747159626529395386180958044412637179916502650040943380316410076711102199054341119878261173102036393176382168467532787243253564229814084453647588747313316930437366316008559946722064211510964434639928995100591764042495883552509332742178149057859576757361999833734861672879915940351419027357939334105299718708939846649445391250770336740441840339220850782126538212153174577595707759822838496078232719373173548456487500291030419125276108583420719673260737712122302957010116795053304710759404355010905240154641742001000961051382182680403009631744974444737243563570774917137993252628608882362427883510319520434826227663615682071369098086047040374143169827294160171859283712417328764113646764021342562153655372032181441805194868519927913883552260906474721748062917829824283658606673476898881706045275294506790285966697909429073628884391810999574258801351367254144954633578991625574320965695359739463237652397920894260182503434167808336495936000802623521756989453116092803069612181644706336379844996476790330978719286529904964150894638234340692991232963676173246922053090444341540433164598195078690712222948950245481879261773995525296349660318737238847335403886075498523798454097350364364223922929491001533951205474674333567662340463837271636346154515868500676976945917446434957165026359608626270438704350047080533319431587688679095592182011484105686013403703509941751882462505404771309207506527797237326940525272302671560345456345227267201543467001324065691544062064807124207279115889183040174404126408102897098576639179529989060216575458560607699128004173722906444256097259553111349682169854319465079185147185391485944029537588222534428523624731214279986190022011827258866081543465917450853259116706035653453683336135340025170789286389768254961091743621536508823301089129067024944973946832040955873250567997818541311008161435471704051599694823166969153120172938506851889953611512860305057807145043444402590817883737779266392831461717630998419221789375615339747683769989481941983497010653070522388955709725205436911705017336468822038619534727871380274389498373361094224641898048141087036768524079883198074244125685260399082719252945410425138586087092891701589155031659745219116579934404471878613062151266152299823066433612722599607154840559315763588281311398704224292849112792650084630487014316992634736378522273241984361150994869721457529293923527398650155343169497492617777785796968318099185630747123290007905672388432133582135639671671054058541318971616273510486417579174899097098245011266532737672492161986199745499092931693490810475578432778794438683471837363134741535761494524337862919725871442198403564425526932227986794755519353975078173186176663461887753985111714138525215784796424196835269358139071835423533716902761785599475721128618374872008162412231747317472334317591086771519869254889937161557125962695260435173845432569827481861534205892585244756284146893856868343374973022672020554368396861346936005529583371026751915338531203718619993339658668864132221935311313125680563753113291600434360741862717536710877152988241843030246330195569471365697668976521422637194216126337359339266675533970893570279973004895094276902586937424605845144432377506839168290810176390934276003698228960038477810514336748055425569038149798877148935465704504314095334277187425061010616632497594644205357491624437983049003241231729427806308839033161464961228760075571736964046106352562295394086849935603114826534702194195702783593642425105696943668149208544035242084354424344552800801619502527557186250953684428617192079901489770870529543275276436790059075367717092946441784663775550252174262598411572848362015640232726066536836212028675685945207231561792566331089265310299327191536412682696155511508523401080818707943442126447088224467176515353320530072807425967717694510178975248010124566375713980731137500132056941212588598992097213143301893652980634441515824332264166769814312284623541805797488579408506694544150088759373966530067886716429397798481787579613167069987207663589021390882257504554788399829625853582219807507591733780847601202102151535227468939326252455046464838581373220749511548256045542647895171683060588989788043380775010576975023587227389937980048356549047749878874956571775157394141300221396125705061703161661324476852803315307577120129852951991789838323653298112282691641570502889082577281251054623055979081148595179703379620908480313545085168283846492923912003001874625987198136576048413204880403676506528956050037138325817544281795282329788337201194979275700162790358954021520880880378789827029725958126818113312809803933667482318245421185934616389433316670452793073931082141690748904086549438652853170106977281191039789140033671216706934038419001669622807113388523385697749057913941783609510493737537704602035732898924974237219437119088183023764480743612595065805371001724619531830994317783963855928430142036207551915214450268488994802850964385788897024514884943492377878938878357250475130482791253577651958590040047059298213668484522058807768028872084744154004545588710825661364193582143880000294522010991311502606023531046007933231984438736348428024071435095884773281905766133334154482265108452441021992869648869044184181331863209597176861236851822278148438043410850551414756234836173371498452294286254565278367973199083258716144168420559548029027158853007079353021930497605413085335595953260772638681410938129732185574018019180231107796077080894809608975168310337045839599792303038120014824169616060641023069665014787734178625846867170040602069118708704828221004400760831315133457984975767387885259020540445799089567630502260523402618742077421286994785861278477263242898355191822916892597959382682372368701324654801597640929277743388462354489550760698850596667796865261843560800036227479810310628891508334092528746615632242191643938765810996537122551884143337456800843386557706052190918767417108925236449366542894563435567295077767256803034092982437868582135922873184032409571798113073596027916123460055004570313067218305152775413979293597736554044214604711736931801049440190140450341365483772599476005472404944055003370124719427318328612025810668825104970648280223892274983505949056161662833648413704945334102565330220254635037426461568646727744185483510127842102098722098385322362515667540438565052884165661474236417333330146901742462663276228587155495670870265905801251119801087492214747504467180823816450335784073401576205772121580471796186034539545519291812984435399805504297845835790045269761125172554801739171237014473178431143386525801572994846710469151908024906205173094088388478802029087606403522338164920185871072646864316718841361646834142970084351800017243174260607065070582197318355268587172142977990336965853417747802901451216838463906214519096301419692574449179836719434710435762234695380140488705816051385388331951344895869545079704006898029573812905048675630804602574450365075210419591401901934367771779078533675581311270459958236511951781803004258376660087085754200561290258217039883703762964609356844760882072971986871847946799364073113642477294186507917544965497223859098358045786088251940907210225488617094020817211704569096079314512677150012825853119488784248807507049736315845654537296956402215207300600894683392160262751952447159990269213881085565904851141795072969036292296076091024354448825333780976263997420486081198739220909482084184860061145846441116334818384125093068044466164680990064948345712935370266640080038499160813149263580006013358306082935913634446235873081389905883722937069084230160997755077506212628386221696349914248708050174138696719453725166141586580351438837371587037977906433264220934959584353527617223769003646997265524697403203448247221430495284710310046986567869796385688572365160987276671317960550773805581000767565546681476406455606562611123381756099887528431230298069499728674504478080187671645653644294254702343457922235508545173668497681075222134923166982837690244260479052766517565506026219718986931807452799938202377556894595097751272792835372544815174083442840349450322891398916766506233334241079939146215586762415079253494400908613499151014165378576002186052474744717971384394681319644231980749396668062407074150946033064442580252496363460026831438884637773092771658644275289918141080020710296966438082162466500043165583948689676794214331322406452823680165344218764192363329190901294161833023501732587603398574204076103547054388645338064512958170152714374050958695395806462546949285705111195302929921380590665119010147201644544022375907153661573628145684989045808939230929225359943217003397896403159369632669864037821053462382231457649433403479453369793141279746692042751358394650367679007527135170981852878623202610607721549510014583366821881786081647019628231786530209003673583111124163941781006513228336834650131438158070026295672714486681156910627345696992571998206443328912340827977009925054533456749126008272473381701169372073351511369418391673683918006497797924629952375342603051641749501489815095532715598638582371683494426080658278956806905111911808096446353344068711986855295533550071680256623916344060656086171209048766737227473269636804564277338561828999938444829395515779319236122694646252919676682241526647896576416112195850405911616335318488854406376522440080920296355933613532305570373298749779972106637833571783861246748322709205868718787329411349142847204452270072050954852317863257642844898913846383985401536300925826033639590025838221603821550282647251131592057097348112446196248760741750436345054107673456992999303517624800375464097406827387572159240704721202736777015185045357212245318169114549319473623359932622779279063393339018853199355331548121937717480117331242735937418408683272758911324188992603499378406579135116158204460611195540275467034131485864894939862106297725267472965371584769663791775634968444683908864365874198615147774742242311824236838306751589270355586112977792587855107944865843227375938475201294945631543778983729573533861268288391886110319497978022088629879137250155070519701004844160954952380498939569670656451314052310620890895474508445420327940853345549864572373273094863909250988453143432550133480555258456780318641801719463470447057717894672133690169754062574344100262944052796272074318349363178481143857836548267443006785665659979297812977201559337249647720594236503445554103292283146024790159222411186384029040181003833332823228102367969498044857143804890576539200468036531903017012428188876084418326589196722534927588957054162274898561298536711568731644250772580584634365792563598551015954516748514767006457105260390299595146311286180049658043491839659831666988459429778903510356326908108405393100567378023133699490410428063374735234781052809335558379963790303897835877860387777134946280857124639696334665681924094463955974429606044956924733414323620896276834797148684797894686861726815794972196580525175824397631208231345214115199509588906039530376314445371027673881393414429045148662575027634729889738271911514946568660824134065993735968612355991614986043050337558663229603761922788272974499496755394240096519887612144949366928810635623742772104950192478785455694795707134672425459371624454807734160432657797797141904368658443517634922559670477552343379214263207376365739876386282914461567841549292146759901779889549782085004924225842050076693977029364765384833476825653495169645767134844029394685895951946290632819746628420824369546235254025012197476254716297686306185834099783992484204953749526288955978179189975461426091960233797838006923131674774024757674848089200550504125658179919021943840096713591548066886227783851090535910754867387268774519701879677144513010659732452446479431228416032073375810053210296294235581792035619047429963326397443523477240559568677239995775626908089140917154176347074508788230959724449961914572394073639689999568982516238467933232154063433033187806999342638917624706386754659952368735973207078086626588842273183793385018927337287998507486620979760199198401813387587771005398910271756989641965309578007596251935222890616359503920985651521245871803692425693375165028237722837906371764625940531186231428411481871429416241870688845665373400018110062993782126718474358988838564823196163574126974505940679293934389149476947322684966656014468603860711222942536630132471824447839502557387335903580923439457887174479077441867795530068790574656482153646020632624407125584142822736833358994183881687692770090088982703238991234936971727837444524164150113875247695858272841893715978428426795436971030864294122874358760968782526953772948699614214010537552553421543891226983935554156496866799908858862209543754768431830256427291281489518322360460661477027378282528453110644642144258057863623254143814007549493120164172556655184655181500884577929540125572917837736287888700332562648469977928954722911952025914092582763999265257675315588315632319059551616297899407941269429799578794252075557991579542013765074112853700450356023902976234909768308201570295326760144885229627723264369421827720222276720983583434756780157911427006220053332473243776461464629224698727312352955365099198106087078301808104713329415006957317626004507683184128907900693958779835841158201753709336901876366032102257375683327642097784967829683107040893724590246353626495139385422504339526341724030268597514472246759523987578365381148249587087290284294799986138077229989831095719051158600367522031042475086417181721177575444536718947836674844565807368577937669112386173031097711630011244141342101524053994074192601985586072289575650852572232483475388141511098633381729447332098797614792665451810375552819411447035495386215024861172562650162763491960027595410129751862156064582092913176174716389916536661828717912117046690647856418569042596049622369366902660744339750660952284295997506721923318000760781073692674662881903172572395245618556230624622698112080221807055965105364254039122059624960243495258615489207136991057579345275419770692109943336536397454885893471932272933809709424739833718988835140540738013668407981317194130726572382919879202673171399041845274418992227514985825836986839363381208251093972956317809487217727139650658271988422452717589739554511849312644801097030744536866227265875707791992008882839578308804539294934606170623777582120864248188294115731544282039796407510136913072512161666234232849279595827942363226516223915715451902358009175674170609519337294876512718616014250141107292378226635553202674722021112637012889767326901501061976396867467080421226274503331710966157605930904977573845472084529319709458302033803613085588863470102036790821093302125951211626670389334046832750028668068785644446220448326971684543800304783747606392713505139492265721569640803773959983828911556091133652487560138998414004126625708792561015153039235404783963665881179001302175489612732749760370722844944454067422941196522437727272888272674251135841836450790944124271910131159323861673795265324529332515082487910389847341224886725877460482085034321641367647282202294770912671467390509994908090849441339743557394962087446000396565697831346167166529613646916128597203805575954857473704110462482381497313637786279769560923151708329508581267750977884860070028703231909900318116457180983177530273044795115610123506319788204537046208760759849826406346253512722846931670300007692530351418533612158664760660423538656528016491221588087395417603528841798034765402618263232934311012845094195129019993207093337930332849370864802290859599461084401592617340972426578537255937593019942156544239222117153575848256836855233625833503451690370620249826435967162861456200384967285397720128282154759430568219740812859130906198143383422978055934916153243916273399608603678771757373635562134217010816212532324095881344742013541899054526440825986812882217754421728895945545313741703682523744838213797783353289776284774919379324193528932202283014765360619713170625696164783510995078314603322023338728434756582520761740248166220117615571383782365624063816775335419784352922874673564583957510205571771925483535103737301884614598432214781509768007710071042474694973053722318328419933844170522594060184934310743867777718568521748923941296202488009610813264253299150049142342074016938517168064085271032950918005249807050398834542242048409627450201569126564982524132436015554043819917607828665187091101787362631990707569350207239334187353885761262256182029824274079125488133453904814614989800446220260629506940369559321024909094239397466906612119880796144759676732981809067710788384848133737256614663438930909721165800449662526718624739101120871976085035467726802998448250360402155151994748587371890054918830311749795798229843855077522819798415242506702075797655503229345539030077406002865130197146549636803053108058422306756986387864992002955081802663254222590439027877545355366217407384008954438333575055435959270220481873765030831467553519913929182706203723668367188181114619173456886883525154577283253632547152884445865457743709231635614063796512602461257811022552220238806339746524687338378968734912497095445770990275541216655033037255252838811578859154590415172192066950602734962186429839503722422030882305493946328493090435090378074599563873786569777960988372408743531637790404156849063849160702477409681497408736961908944994308986137226516227364723507472440346240934316591006776989355668403846706623610285415905651374416121809789060645445297560159283820300309023664086765844701271863738135892826932691529314095208336164539101445338136798920313324743957786402164685705175479608379936699483587217576294605073876927034023971943838490031939270192328023094364244710081873780144617682055543669255257706987132907829090372833697815207072304568061373690954464984266049367882782252484924555129183536561736890155318802564579127567562388621526026607722484896380799680495769791176770933843022516520286565292463195857079066435253070468914470804324374650297112112413214750400824790736697030273492176826226420201803705263947027562306492301614222630267169684345770141651128796036951051508097969259844096397194323591885901201108691835640595242066614395136837370945449070824015584413623669418908950860713929613653818292089576138409659043461525048696011765621213221609880982684550294854479199272774713871218304919237713765360247574528298915323374532782933363772496877660348248178113434539609668594747318424458509511973137182313083463861130582440155936525805691532658588937996619224034888229451181656506174399241280775526800013813556775868167392132466362080044375887945736695213878523808087201036241549368229660990162827018556954348981670295396740724202656468556754993257061658038458651786719480162719975562584060549020503370493845854248794998694004126665598975767562142435743689380619725537705913403966901504156161891000969672706235707176177600507935980906722605634806186490231926453762865550329042500360112880532129809123523659601878978293724086617526493267367902812424656067717018818824468971700251191117328836917654325343865080470272115695735203951896095668666900309663980114628390033063012082909490982350027538412600010593608938924953744590402078558647853800068033971879922790677017152369716278644517521879030634060868164580112983017157968359949167851319084198051631052773878241355548939284208941770932767240646152999537242666223217631649434768078522128086937108942585682330096958835082364605597855948501060749893978513799075332492807780129150659475963137777746646077676454174877028944992236531254593970452044852516497834546475307107342440814645375241738433554848807705649519098427259544179099801436277670764004117078557598193151893027760896002520435120866532625882648550001137969679060333732747484041360304492158092179321923338785007765398730274135527174733502812866958611504998154653519753474834765156857971205459422466122877640686016361634148087848009962925867002216874440413917512691934814779301550198960630618525120749817598520456211036381470998508133353223005758121591329657999585120512878485134108868410174910376903849176584326304568210276711103213334450060438345994960313273313785713386372299722477907951692706518092340664453947823579735087738532151793556258969205625851600265624995604671816039663091507977549989348268746416062251688783201509396769892423107299042800825321683253565026683868011965569198772483044121783691658517976912145491406434736132774216850940972142805800448670101656671506154308605391688927680028189173107616088377414095431402024615819899229832500690216597704479769776593825811367954815850918782935436095973957910263722320924432918427192871139309874647460636711236376993908150180826770578971158148449716831269604277510008187044422615421023336488278255156175424423875877069798581860141970437576387541612754556350583199482331014599384441195664963482125418504357869747353059802287306354809620163824856555380854410349646937134323752996821964184417028081662543968930899192062400081347477457570436413894802142918929604633398164483873900141824992351352013874196217973183336950278850807661091975697018200931981930737059113206356868080545085909396408334154977255049735079156016555395526858875875152203185751660913259187044828895804067446575367860762179082605945352148548792116427600139406857883153522947182895878537852414692793796416771366118035853538883073755701739928891604494439215952758351232798043764863641091425991939704911660548627821902927188364682924925886427888573828981417680981322572055204902886784793202792836157538325832413309302925615859515718864092878715436986977094463806562489725422470238121881962736950011740826782626440581480663795403342308837783013744884594170919624473795573833125926004482272405801560161474990916101236747830650607556644447293681098429240598638546327502500508374170133461228094228731022413760645138623573077227878475307431360863626194849570877856627766601562783279663187312779376631782108490152663745487209453625980721207546458982406578881268859179148576517344683464298503424914954703047323078375635718088299430068397588526480909630535783342663447882985038198211702111258763554376164284712520707979638291644855674657936915695485034762240752809630645779131392909842455478722933547336507409981965503050694521866588405757942417376385131163621851376669202932510871140446574666527797634387985027167690688274270111439029188333961207080167408567138826452940429440965983630677346498509691224031068026792528213790337138650083519085299987191546735257274209947801884657102495757990854564166806822413324094927364802113971722356788868365987001283824202127473063463503210699711128941903813307738843389719405782929673208363253268501337798790142102046852372499892032127184286757769850385005195287503322350504662040418299661328818119538827012647148287874374571621031010304977676991218102664697184722290604324185211270802368201208171761176921975820725164597239585528609277449690860414553623083176424439869128651450899158614845793073598289705089964427040953289552866641333084334690750448129616993299838657286682615222543157587267598802018876847486408853389829763159107884034485889987939980604016342188421542506907380823488671328846440852391439709171921575730234594737974136818989008939842032418445592102587902772845603212794311089747594182754810992079779716250634775462124576691161106882029412605496585111849788092809442166314742007665938014898625800647435084616220836631559712983849593002052227447105019431051895136256652195057828476144465452775238795630537140862584230608430961759554324675619573276593125367851469338325126142624639587162693417954052730340197296504757704503138541966347305946704062599681579480544698079554177214967914188141371720553809868798925892021880399133631717480311571234300475423702599278394824114184790473756616593483258797941775043523832370215033522002476056735222395300201605606421373004833770282113921931646297370933902399722384166045866682410760937127812220993598467003368034797824326953002658130550713167990104193173804046209745483749594566424441630356644964788224692391063931366361392475545004269627742947678771109868897104346916047060205520781569852817500863452930044475875375603828585803302267407992475343717159336662395168944803138443791859438434980547585119598651434042904304457922038100585756349306584288301670022158178237102046176409000229952990937448157940834245367081912249733976221868923498149849778999300758045898966093332937834672533933430292849626428851074897658204658554685743285537657574181646882431827077686723518355554825007237311399485825724346792023562180023698440383987157591792812500302092905340947274706981739325193331386077237724884839134677541370508582616596911038914427657732128345337902058160664909374154528260262339462671297936706763254894490162650236344541453751643668257007041128510802463906762496242190839115974843632381398972763685119920461722676859558367534174976994767756077141961650506931603850454134283665181814399724059264998722815886079942121661035470579792149589684306398846026700723016869493424352491473815921757012866812456848654115984061907008489419095027283506988329305191161506658298444174602475138824821758088099870383912474396665974786261518452385410321010845899222002482351381380936165013007802886860348366983553189975085769208754154117402462483423706511606979225736096608609778420075169177127018841267866974760742488186628913851590705938398537132811630563607712836813669052678909649519561929479651369432421298655117599771099447762838314206451929021958716092695574845022038453639386389017788041943674392239221063502606481427877109727401896271177927361848495728032675366221545255350796799796650306882666729292378328403198420925556949969390302112349771533373523812342747893869641842350566913130522028456024730743687813947601994934915320137955236065565523028572477193420990850183079355344712079802369981717171448700890152764018956598988508387528986344616662300578032972272188005038559476948116922645339341375806852461373790392475161989713584323114757012117825769362044632883178984297709522654175727535306078697146248169884195416749189660954677710360934837513243960441067978536718938031719030981446134892665091226169593617906817362258165085442876328551693528338152375010776647642320956963176951993948637787244382889087227179593175153091778738276661960592788471424359968258792502149172593343950002363879656283472647784336826943437654998800941561482208474730576754775445668347211616016655623576486402994458028585480478082565603507774323908032825705961619568025527192873362494647831804577283889451899000852688443527720834388166186364434336896669277425444861756088386735993528554482186890304743842277502178322038429908070188442455304450903280366370882069298077255961759104042384029500767289175557436347803520874822562678821919335325279608335429630214567814799351535418529293387038643113885432780465181574421811222415053865140719324684226125068584155549570474086943346076364442168859269517712553590352316811319929980116539725851584309293300446482332193805474046216295881501493173399197055867601132610019894137536438153260397470886235940051606604483356249649181815284698775087485584927151934948926915142858731498237997273619263607406329081023207733313094216065708988459034103929156924306949097920732345645122684037784578164143699816077803584474418055325982414399064135401844655657760606353868565456876659107436027993686361415803181841196075343404303920415056455871155619018471388633338542292614165139307102616273864419068709561739046722527179013281180617500775247240887939476973842593497403170064582350585180832210137771097921804334087173325392939397849308188376473062685404538160002649974546660640382585636559227084479420657760891147100860833638465129434206893022590338136076232517411918305408800351487492883108995780341140232105927595362533407711235471973006608487125675758461671468974070566732432896451259787130157693016962785643389242169608692815368892941965675358497068239913367414415078580133292052508814964230820919944126009082658404727922886451131545067479036207183599016156457008739100248012278535439790386008634095557517163427079616894206450987276222299879624456086390499838031268121595992867774679480158777968163601830051208308619956424614444980936033370382800241074465638445143301986719075666847029113132399631605657356181092986580965108441529792469173988876583980706009761885226937690428967333626729734488664115234776662376108665617170718840807500221806112528817559279933341847656449785840912482532119585992200032022633928463516322914812528648666802462297990023865138421715610957060857955216586509580201692514570723407193230816466875929878606856790648625826831764609612129156920490933723981358186355937694353110945300109004805191359149956662296559811144111677715444107382073935936993945368631223539338506595566223562780824060947503464035874515770308146746525052753134328595315861470139820807319094245823289962418682116988858890096952770472053551380000176910689135751876279854476105475583410286495584813540233543891581401544443767963279694889972692714253887304282710301090930368376250518129026069032328576258527162957970809476527015972691387060263329740806266809289112884589057755092125716734471543447562811633108428881728873114197937092011629858865862211107493257740452478319208121779362653270305879443500638726474211235492828579780141627101085630557257107981125855838164100995916583357998845071563704734311971579640146753814515024304493669218857141873554484951164226553125164650722812545966140509573702381235814289566656938270626715661969907887097880697972613667510814685629985550671359119019521495622778115773143655356711134879898779913160625473292094169249404065548080192242634864096293603098160933067755083523680902979837066647203466814951760166915210969788866080191092907668064770485606491075738002964631915546193240178964344606933138445330530332788774244885695766544505223549723637338229755485256784640944989310157675703814350910716888923840936691564217746709541596164967488265748131607453274217354311626116827617562410017514190906287569184096247044917577317885265887172210214667278875838706614652474764035421917337292910118643703982779666220892926980612646430689203521079803986444624939294539830646583425101107847011772520111543962544365314319041467354152754762035307077332079694977850541804185542110333215544805214862766519393536367257768590989670235000538117602749474989179814416708531068207371656892421999106446986588924304767004468910546826878781575998077871794014114396210295967621335257763157378818991618699708124217814318820572759813607247110429397171383318400912403165664517980234901166815421508262934725924106101039796120795715576855231200575884288083547406803059303642904183960004280429751348179087789490691471976902225204178857798106430782698072204590542683221832381614842465081867032136540964057773891315829173017084434597756181478242843387604924466500037819007151775380853341606413531553742549822840742488126032399790718477589808284902016077041760644876862150055608361547026283004172017925348906477465003205926430635995481306166531119192092238607043047237430027189379248134287146694637909630634559572617580772102483285663481785884471314385854660585713441311087487809576784067002893749624294010960834815874726890365073252584423126042824797127962039519443203797739628690483365820314216374949383928519848135308316804797751768152994838996255035780356580823424748156849260620656356382060645333623073795580631418585207745219450101974069834081758336241345741320336012580289582389784991516680073821100079328045432037000977261339513934955888208801871370430198705690354341793286396984519337539370107605215290962251042135599392268217429248066353024732939204751614711006387725540151242007795038343841132190143525836027998729461551916301342341517310436970709801610466504783824812224527469647771289734448787552168204245537081334436103197039978404958720813734952702666152210545556537928827046540199315842697993404055324001935504304547082709931961801127796805837637848276436974455725075180992085004592806135459468722950514253507589025893530181716945763685212101373374743002954725771809071189970259319780180761192654067636810824212514576370117935070106451317847658046997857267149645123166566974866295694352606233884417917042831304140204547075013721668344464620223511962583445196478999174378604023417941162412631058678381908126014731307854918942596958617812081355941341719274263290889642318288643365294334934801991601270112283867849995567286300090837931659125157704555510567137397431135999926807212028293459995244996293562746018201486022547144916970572513039485420374542817423540116643228858349319007232453578094584534608548183219608106512878099209694838504283874985363582728402033255718638134578166555172498710024895513300488407938976774459181770651117350733719438977108334050727627901286484495518831676207357062925848010883134385130479711727268540603524866683640389988744802430236108639575994122469445682428730208029432682747686919646703689368353368458898750430000889869888416212407951949677075272959284023553389604444684221171955508385417650107891299364986016932887978993535168566068406349460726402537645194283655328139450636160320902212456765726375402008253452867153281734143551312344266588082246963133646569988245358701537552158416740743436535972351158108137039382946900857539969872419612367200971348066434503637869171374667702550240206720961919534819831528589264078299317659086468800839113502654074518703556817245881631042488383218549662051236493392872266232274205173286531680605337923621969664682124329796897330252379481363010683307100368526892830908354097676548582879615580683194879433897076200646852751692526618963778547520185710447946683860618919449099482896254928297565607181664084193008116567880185588456278997450883691347043218485328678912256386574143973317407050078722033082891530117684565517356639723838190151735089189637648610667893661999664977654450180176046510033010901122431117049230848251947199071355866862996803620547271372626513382647410472139846144949909227379998667012910590134204358896978625908998815697781343386544704525803300012840199591644642712250725015361166947301960621393099347273870256669510493725747943091346632094400608275066028183861320981248556449503879390744873689006686460397187378855758670758068467390553588404386862917827755214433488775706664330152561615962681362130574724194297827747130805262886739339883420262446924382775637787015546921161598226966205066724945009394657910626856728235599936761301283868054045235142982643034411459832070570284039412151113654485155137366146070401708937576269173903141706731022420280558836900336808005732485958997555910175236830373532271128722277214300286922974642096897872838407008719054856037087002883637482619873737148021506517127073169525153833656949386522158984727564932378140449615834971566319814152308946674036862250294021026387740739808888978774065245432465643836494182087014653801296504315109712174245543369619065481360690702642014591198076152717268533675387628362263668033870561156721842607735482733001626757082850732644294276913970815602789052521455357780627442470314942599329193749615259968020115213861626235844051978748135827688426642821632191986362190807589379079084553418402618320182381212482559464984382454184682498349429814243110050163735365538514861147099349183020494230256357070613254775638009423448775793920102397735328712417903772561135085498044551539515151945229825201783404284840769189404991413793113583520438319915217854320263759962060682895068145242807152325571060671527696512651110446280884632431651323987476580669576148971622932758423801886004826781031329486312322648627269568753396188007013083312509808758371448672113733998381678241074901068104996461557804267379468377911277416718975918978623297108640013041028719874698625536354086022628127598704361985818670313101535440337174965128991252191539254754262827815750265498787015168575568461211682231120588784576862650344309820703371448494677919980984054804045157291099422429116971625384985775857673181176535302687447665757735999023020704871424867313778299370457210246871397393218891890184096850079911344307094016730165210788400391490146015676844063381012291627224318830308406710195956983299222728816594268754547363133889993845263294403796539889147762912789993120841540180716900336771611954866762146172318175846570646118365390401808814961613049088765369325623375739384552711814374835903122595891062919206141243397174232780473725845904915214327345745731307869885459290727755347867576092848369391132960785199757649636507735674243547960288304651247294329901790263087997968770745533025505185392043045608172890744264343956194927982986716657275331790993937078728205783993739592340331299299356753384535662615478335651160609317179216764230917583301435370025539437932233478053367871135394913972996809324044764080497085175761329278044843688291789935375535360686998948626750684067969017495388995027385774836566495830320321528853491035906651444825948172240867552847417113946463530376219463679664976086338350017473648741591008409461392640961840454828410778859232165577010135809546128340015155263571257233041397964646737131565153276533034960126986028805628765313705860292937376954559667550039111653254284694358094165700887031566404288505857404187907028283281908949284073430256882511217172794467439317928087926703754242170517140263372897935745364840548347614829094665632898458480908095761968921792593931790234903540336449573541653721554721048661355535182240858250670497892956448647054230179529557668131688534953428630141475283736447133496374880487178418745435529060931298278195776501262144589651266046678529086761998681389250282581958028417497703413215481713392546563006657633176886499993594927501864913372564988023407784201400396361002063569316156047934417129617308838791953499718095672434027796485955448350103411251836380429644043316068425213071823333823339206159563636963207399649958349217340809594099565435929111636441733234252329789428177079307077081043779131880130182187167954980439699243487931070329041626433268872062046423949756279500511539307357028634725127188343458411872494634013894198280984435494156352240442985078597714604065342250497879105473030089740128012289774841997193037096273903858840599998082077888506993886945385864349610851934139724122173095922651211250936074526774409679068583892718165778363609788965060576103010207578211230738933737292549163189080368196512947432432801253880029731323378816567885310059274852951280873241413259862822743123760867234652639196820633478172079690223036223273406968622087315982210608879585936673092820171793718674531784814508305084470527273050852383815733595817356333431920602403141222830692783305498739736381857399404573353305181217113952447770548248687248164541079857840399664889615151300579188369313185146974556449091143380787354348084799295087717000626202124488515003631560502478048057012743156568364965146715770932219666165888659745420480973166257955485904678833518511436078866891319658991003877612338560399780075717905506785041478531815492228517347740830834653534283078295168290850544054676466681345105820271923512772111497230031280486626559506781071939872174371810487309426878069597363599810236376457347387703215997932212981204143086760618359385516931112974685700167816030393002441970199902172667322207847134156281834167286463399342390623356168386104001469288285602201443323776018788965707867700356636890411770482143706552788247159041319816546229964781615991009915174924790213500766923270644815143216094596161569744032960213011006007117689272282011037119361098616734309351789319814287007545190080568570830081641958158645881248054355495014813164856981508413023782334058137497081189182359559303864758800482529365695440624525729334420642310516276318200040235532230874114508272773224195323221849400024692533729823592632309128451498947590960997811348402401552565705250997062363072131034487006792454982615574949325443059339877454057604105132720781188532370970771920703160288321796964676948911559806581616970727546945749074204776205184459036560762578495178823709392430231281999608352685841803152984557663100148859200395107185650095097585995084024575904653536008170462817268705735537414171712335725344318021981164362731465568272120246867166229142397480831447118857616560256947430240743841929813756950378579237633315215680655284397391180892368265274526968071779480175024338964517487297620634075728651507312911239773034855840921490039301609971977787095451060879424558536437287862043028406226000535498707188872204896889110451120752210551567659694734068977972657924499052282958899844156495459328016712851829701854301931954119335633037000747860545271546705310996363071095068367309557964851073884416087292780908430944156603290146581044412178204492843199385850144706504860090651697664536555372421984193062031722475403816468700920488816726476443600430510956549826191610755493906765906373674807681275519034948316040446750033873463208514387591792404095886426842080239696173235524904083203863622424612697273968263218439238509958346270661540478469266253300534165669647910545574593668966066249093202986909389790031233857507244160756990251966600164335816306325772030429662653001391482893105906441493605045423510113208720566847033911994344586408208555483216608785964048114712290636756837083205551136775398129629722680066469112306511961255735783624344172700318886611424476282377472024979999226240884040339317001329860897957093320513697264251307780845523510012649790829218585149690637205702222726226211618315305887278244611267217707933615651623641286570233294892135447471177906922988242905471517573218814405591752879544025778549067452110424396560325260627656542043005330457717518144732731447185165467791336567612907284167838706177595000168343165989292875992857941800175176281602912288191577654319747409700608463101350067167347166247956800899935881964539242243453433489015883799597397723597669125880391107075949590292545552217964731283833871327683550429277686498662790306986198731194350328657189712444219137295581991882304611739385421770803373527399730598098218510770969678734990529050790492643266466702010001482095027933534970200287210251070238568212418636142456065161177987529201905209073564537277193050922709997876294538641208616078545885538524697209745906676177663646878693525730259539483455157504891622689880730414158361678549258994773709310243899990013286580611329857018051506151461311484240640656873019563947382823241930515542934649110880389765394533387820917022291597949402736442245523330187681874055908667555560596710186721876771554678680517013115200626538823576588909736196298319575931957184819306962868633596361746122687240256986071901575324389452403679718487912965439955042039622604909434101516361084939601685700946630589165735826553217157167278546014807143652520183301307087005521820861532258673598895413755284063120929909044372614400165725857449736911506137252320030516034591448694633317769373250802863706067822384323289371406614887718360064461072713474422651409430487309828433272291567279702802586203985611595988815382963823190340300054008496860215141292691586757098898355859451028682049981589237742375931647933905050686557601283217083862021134092661698779468253602699928148902671986045281783462738208179869019494882680623548037755021195816436147302283876937560727596811778134537800972045096817857295553932582023554446430550584116535336230357185265368393804989197968885828486382716850943362234373907522206737979479114104431695909542211123460232406229915231699473898535434477382682774853697565655979118057841854741302559769683539588866987548305645929371946740559020563174410557417961132275895834517110177778312860959018674355129933440558413327789428345002490345124264208772480386678427213701020333679751346076266551371205643906417646598148828852044084265160455587559222884974051693772543909373150350657449578833485222358170265212548216518573257344234490174872064509837277790787106083652708891076852153477758225993935416377908212976851697477264133770421271373786491192861375227815933369963088151581831887128694162188668377484038398584317554516605668561319078716164895811187482995023509600356883670927407398823009552832384984452434171237615262718812274152492456500568284377421004319547080044106166726896314943534550080421990509879707673644955366796458674680282850217745324290442107515883338442576641930428675245176187511252413110101129011650163370200213545454460430975207546121563722913788827096541476934023597119092972649908203344949057977065979437532624350068849763566553447079540521991563974501885055523631247769792147534658007792086804799843318977432281908370718172890638892092191655155546211977688224579825805351483630911057477355851792248384935795033792013406848918716316205649402824015172098368971506531545397224561206466327459369474566936080904823502151834038433696782700716825478945745234394533952049273856383663907733525751168559814772748704744362064523387124425939208359535735477655857546440542847671128720793664956191468891390081253010172641888066232739071152663896702990638065614166437720291892083509398217581925652080435022924297231217960785256071877976261932130466041501200090370998107848829043839444584650204649508201786751122036473141790553025084356826022509908095930328384938190261086786992957783217515110071637750468476376443604353118359368622750252050343801525551890819983611422228057192060404096480714546831677712890433807592398640218324360308920634610142715267697187580759299962087051264388383228651544976205645472096435658157444555963827275699108761098104602446966412171166549770995012184917642746086745339377313517982586632536495317261127745800157839411814882121373597148836682911958143055599568361430305946087538922793328037203181087995414933759578174622696626063125839319439193953904811013416852061086224470598698539790978685449470979715724384448925453817942090032190594421422000917225811646746386500891961917515486434897684796555170723645389486596682006481748821214426410323684034291978859833414746952699898111668813935979026984047929130594817100468786157058457126943815790101104200858252346203500472114111244500882565310157964034014773288149631273639976216209643632958542551039365109565151120215275733529232039855665586838889916234039962844925018669307586256679728151637897632420379090023342243306685533706053237754353842650002040984307089720030651671575707303489074690860599892315579848523701065469195043161125987310738626529630643267825527817178960721419228206189909879885617940382037189520696599067849879775039109857573810453603954849289788773399388764355067706349383938538227132289632792050901786953219058477168552760208241444486889106883648776728623105728857873313782272632956875913381203559698716543197234313919822045960544779045749336271553185280538246055053136533681190279311404526767665076576335056334791395974847692204847047313741856620915440439476157622134707646615785873729267786663133518888570710043368874862257511796362827905947270236128490131436721484769203923937143802917390947763463842505789775843212323499940552073711612831231435330163885709340806236446906484487350029602505318285298015604223463125594293644666244348804350093067770085881215779891454706473025018546491766146331552202908523424360956284483496547047953400486022770898217020354769143020935716072315411653732880706271736530139406005470760775952792388503006273158632564032274585374246057652273970740667996832208024336146267361784816092521584262107536443422521681183132489758706038192319520970923378236772770852945440539494501274176141976928556802190373921959680364857947152376209085721435222361965954028191739451793609649948785391926879256015995617386203355268063824021585595156954458850042752207764614842979829954591334693992712091987031667221371717534639218770303849782191122450482397416809944551046322480131127440840803730606097630434964526456855200689221380537693611184328367330482034839944897072938380759648867498572284626746429350293082306529039215504352351715959178537963586580645351522045287824854978897143455749864267936042685234876719710380128998941492823107900604748478967763949188511228694111068237031208213480213268342702695865630417019540518772426793454260013687400082261776305765395352189669130109100332425395912134735426196218326816162542552989778467194344229736228288670219861284477590844856041310821868062950812086512823674880236859346994349152561516774775596972558112780435335424466556585274121055079734063744925225772506682578004396502742791739219154940868815267063146180756585225278188766240985290688730316605363603111589632140204419572353050465967479544155589301588330705979584318500253385531411706893799764303120309829581565546398870815029027285021990809655661630377617838964325709976775910409833158799618839836968657254362791935664518961306251091519850539415545135313769833639648680098252350186308575049791425916226274728528582881759033100682645821674964727137683692778315777789196536844862865012891457402244686291258347756022906739051764996361979233603227403202479325509075412097971269348847888641169285820737856582690930639566861599316492293669021064064004174705051911330330692710665204031452815468408804251581292450361009326753092869126885619685520057019904385667578990445222116817706587378755556114745962544864981723637832323919326056189396033229758971322977456227190500174674920187820293891873368817932518916941411097837130067675312401355597632483616320528318896349250470885215440040884175703025236527596397843984824096178286521740151990761485462369634742674635004408258590245928977483558223375555076769283938899349652019389699737288414155334604412328166128151627002881983650631809927001983428369511478674699031206392657944426375092473372244442581890949585815463757027763121186719709801702741091914661010771632385557809040936462409867936591213344834547826200586740815664120678679780854468422440813751609952103747616893588180808930359149105894932585144192351997968896898862599403790166961141000397242659299028498159309800123731179945803665520063143446056518910478650623388305767468186995381525387478661253608320871382535705800473824463195722852535931618449515073989047363467125696600184155716499214386683545180671234651602637449751506711241770366387817429682849621587436765180438201777130260771973702517122854296838593818984954416580288211492283134125916841022810564687821883986430108858148650957539874871369205091704510783017319748114380997216309232097428493603714616235888812371608168602575778660337186297843477529441271167338584634316087734910661622948134439281979610010991617028204218651893070575975678617082393832948685748704396598428576882124320408598536143930950964204464614415617390458202755412249998387299354061245371645174801320217963235767649692571459070242992232632048635705983141417558490243562622049174001728451938990437404446845153217724204905039477054158524082288609928962230235983230058427699021586212088861187597113159608082066189170068087379259213299966352074155013278073773280453811082537808981860728273922608940079593051607425776070742582389716555793738409753005376146029476009640609151375057825871762254501331849866188611444460117119527225042179532876987518611270687662198214899219420147484478700289452575158934562517906905749309746848711985117904943365340579013285750374557678345400483388984061434719607504347104537224477619776492179290470922447955710348026468600350282804227585723962440412497976364513741477280780696538455737691814749419049456180282391242505149956453121182077058595825608766405210243324783725122299437041024237217190180375131365346538475726017530478993172752306283699220684309990303854227088500687011868865905613789836813621266668402563407980244550811784678578982934358163902709538688226498319059682935288188898900926173647231412815928900261360832239410087875797409715083864800827091127906979065625588974364250048741854534210325044221140728507161945740453615903526904312494798223739568955067903083554716450880596984039402103225610005439382268894400081749715065921538371898015278228384672599182288483840869591008759350925261309508241501758825151004549305088710599991391595835019005262085430083380743254114022731311322623159440318183513430688401307091277210631024101095408453413901445991271462903316288394490738328083617861570486299076278777427868874210671960391781447602898783069774595948576324837804876946365269962855878681487021942715411681201503505539790912458856825819992041591719933460207225953084132167429226835319628718530263001369243524786006301241265802983203751779417363359242226177150821669486223619224520549384510164257840613126168351977390989735858021973557508926251937823678658620126272221732854605763410792051223093381001627964192807150739796084602203104278458528286832106404352209474138905538941981268745934969582084452090245261076657911103085704197968378308391986372184552723112567470384738590681768781123922131617260183279811606171147684600153858310258090452889585907315497135853183932851071212411642013015558902628245394268818159177296019784749314781581260348415029487654300438527886872650763520366099022777122939930969571520725675664507382052502583649565237089936262907092812375549964601080677403275275554947548287308362497879815448407912752424369199328233841984766642179006989060636435069771209352971856814623552738424643416543101596620783199966654539676882233428868048933170732038011028319644621592497857390858002216116455356353601710274010520307306740275962662929951668227022898262490199727885748466152283548660021466514212355366217275929281313495072911576634073493443817953225275006520189122656084854961151319319660572450338609568216191876048240688168719730625181255759331824336516445647206401211956292964590231496490853151916472176370345535691108708124906649321824505003224560591001707415366727983961926424904669259088335498170345181229273970127252255039754176837008425659934724887307306162801507793228583655897255150633323901980339122918516237060923787869637717312085154250996497043751272947310728394733946745767719684113534048732937645968044769578772696673135034524623067247090134940186418303047925710549673401147736129590435794125086531086667357955994786717506428515199358876332988885008699996417984958081095649126957436123135374175399326770901083686478622678114862489973779552334483153900724593688931340835002338656839077334643831210216406297438730524026776239511325233652574412126622040952657899999158227102100598606213377475310882589492566400727737520314296484472834106345443109656310920259840080715992444369359947713820739636942048181965462187700678902166954494126232864967329444705441976868396738453961635230152296277654095764350819657949134523519499129226876934542424920570053198840668360258790927950407551153268358715414652773037586448398655096573822060297560785948275611239574226595717048617290004504173981727574150712831984865504257611830117964032125412972913942879110504566698259329781840440865093115194725711232175553503809271274508354793956445963322638033256653475021135602695014018893017710653363155493310334076871714860568203411378080366829283631736983667410866082737999186534654195033327715868937796991086162961892023190071343299082662629792990165284315026436957357878387031187032763368089736716809179376427367299342839433104480629833996456030488143240454647686539654236638934468070040277599410925692180290062257455123606784123566271117550302371686607524732258329981150592041373648530150065320165092717785413837205627868533514412268272411691673396465034903127353844768492460502672990603654530076432962717789829158895333039755885134486763961545310446493986304503985083584787824623276877683893440776547473549411243136167896326465576693848077629771496170509861183883978280139917748491892751296722981510421563297892666247935692940169277301959228179245685970344246562469340885628830761439427259475010617227699043620362497671321580842786315148136427031107563499094312653400457565064275631517615339938949032456543102276706814459955805339100865122663326673631766956137412476515106509740534646723630407705967513111992576476138630410039220825254427894433861114157055597849944170153218354631071292482213651504275811282471996204992295501708202807799517440767278327398831033977407475405842851311765739193653043152625816631353980035283354579458699636859803624673037227195771490844878457062610510471883242572725874051046787382962761687258925073162463257810837048900267766760391945580340386087341283126409538569687595704089090965861103893346640629585105317584265366183224974531282759344368033790340347091989141755146482196867162984455913535528758047337821979619630233268125377119576229347964100645356755093699995188661414433989973540661358820752487204048417693108550782327087435457899818353693059496251441225932673558768477432373359707898586255975905616847703850073703394891371195825157360172667321313485844157954291502688610719118394873349602802801974693457705792426461868680503303362980627156424869919338119366534297310473291679251279197797424510473218932409428152726923670852824597041373852106408252976936631728198423801811752973248686202931031227369235744095461516284141485732393247028238195461921823002865387662807869983612888500865961078366266071859414502149047970828176527842404593899484260916083392854645901326326405459262666641489631415409081715128486442280951859393502482115308317167765955299242612547138807984858949679596973790228642662971396375396149721666342928298097283313691597316871286743125671414839511086592489781386313047194349068094491868457635324682888135001637921086922512963775281449385710390113622466881404225264685961510561144398070107806760371594921606659465259059041369876326344265887419985738796530834678110029848630574635717467471728395742254182647944997767903318433611332296117874722639624430274489553881807966487975508085834486216723920968691683845670948724114450670129257926376063409161801051856305714574381133915547849945870226403536799859392929424995662754324610039067910024164934594714657343305123844876092890918257258878789735480443151940959641448140309669159319961831458304777548412368146253780982316572538661300008413319627663711330759970226321922084365981249864072564132329207509843228748389325728850526417948084313462825658812488512799703169158697455195811835993699436766168432125840251761088545174160433157323943409593693338049378243356653876680364572115514856562968569373625300169612243029739280674572594995861541357580111773781584692679704005682376741763209840415796508698642364086915742169173103845100817385495414977093955550084503851111401481299592451562115345573725506173176590593564157291863788136415936504283858717693858051207355678006327784470124972964017513285661192999776058146067609783437083412442425842882925495570986320884499347749344533404227731769311044068894788698693558510620343628641617145530600351985479931202608001565667415583541367305611448609784323639405866876684453215014725170346796701869049399578859665597470639813624859856099715594272417984324798124931660110982979650391173771845100189952749340968648625400185993903463172397137983678560283033951112155705039673204989690686754125452622140251843643837858164783545934272491041513631302466157613990794716679957730123108752675174094628366354197059246685231979092282312808616371015612774899685872235045955387573971424040847254185895540916983106582229862090020441597656991684195684565802846725138066158397077981392566069927107578997656680857942429781910550827303676269786607814365573972769541944303874934626356464293817449955693719473087494709811124049782373708624503962073497757003618633552129001574112892097536834788677405880400138027015384012168574032089774915840080145315929375200999328562018420154142315780151414543020518389812792023093495549979831642474097463004792625305519299639332333504806095379548171995810574634222496535923139341768798901188784744063992501371241612337318348484497343575738941257603295446350456413655944839579816920316008796535514597606095992163936582731104749581321031476302695343965189903930745153582199508829082831382018846143207294123922238150516345179640971884952648602981240829919043383302802758219745713545007540952778418370674144280579132168937176486236828120362994861592305447261852191863910273292885782313741413474027674315768872127294692381239892387115189138735278610028118453553600951486252213746954822176977790311491216103747925378613515726415933647805400331077406246076757179373172103680136124927695054384841276941429496767756173660271736777193919926954113593050632233047926771072676136165293155785132827240885845652503177041582546343679892779349813404368746425372433619376015570850970781861190761546210520289294759801177996191055103974601383601863168988277757884551046209234717761948778130630835734143634806031210873664382427962230103917449273648164169808573201751758898051837400009650641938681478213703815873990867891491299690651986178379313944105324320931159827407272227764754974591710720577312133589810943164992510544378291569805944069574360158818753572143623371727905218816035825449673788706928027924669726161583574237253091693851427347705955570331822369295808817780268530369020500873306190292259084989213412314282965915896076241578330251149835648893608272190743698860194983846126729397193421854193302389325114051612088824172303060761466127379676632956276042243092056983620866882753738065698274304613999505284912420963071984294824991521125053867680275342720400672686103815846692213407909749463464522254190003132162747461347075073556921002969246285340446387198118680697891022607355597017830957754241083126787220343237431563304458578756430055132446346050021765928955198189793415819098024866076193939053521681854539667390033154582805753313246951304004723809881903063610295016093852703999499703999373391879724023375103262345150569020940421170425478140884746146316030359215570028024319331103510391386999247141163200711962818047359834577584952651789774026043014990020499350494136873331443059218273688722717562877745079173045852872042182275358897594569934452708937671398565621884769213037793703066937416669043182481223239731340038499657439846411637040330347952501613641834640458536422305319618565154186182750854124278909260062953517680668571260580190735163064138311694041233754893971930757936579829871409977127780183835315636447025148244492929454258375262912504384807374301732069549524338302916525346694953007382951575300072518115624126897192634953058335852692905975692683855748648341823846191942882449881917121733754098202641890207757662893401830769975860096266222071271390860880178104965096035187836252642562769188246790935980540845377477207621519476331860038963724152434637038800980088513051984732514560336913627745153187160971087096230979442793735802916599508427666083178633243270292708668961028751711366262853017195872207369794542265819480877890106260248056036673855107807390643159779564940148048258239736321997068332257259710920309473474754651743634033716556760669901126099486811497457587572857648817794547191552517743736790315865362842177347450624619847836471741868495763849025613314710309307021168587031551520018539015198020014220295711065077277656417555706568525027848162758603781616799644264973722069256154361480895843088792370097042238396474695686145910085312002753640521180076603774078121868490230837296171752268551380565415020141537328409806117061083151760475437504355680993031412119059841384003842336143670389455414704405324606098660075603995430185277370576670912991156538803317338442042998357010696714126624002441379495738226919289849030535425733859574724523743710879708648809778253041942443678985253466690166076489728662518347838137965583046050990967895781522095981007139854256241309997706624241987157794948307811477623282701690174237417726264110587750310522102451258530646090695720787296599348418440711838365834766572658265782392124923235802992196069107952588884367996871708853721479968649052136180114823463543538838184107469309296671828581572617240227660061269682987050710675261872388530953205804578335472915330062995649942302269268275981466028366329225978225497510189849560842554471697489772046193079867387940818522748720123326686691566128888008293662406097860432786104558756344894281739616529176781116115597403726640557570966617936923690968101938741993610958761586331384087679866608196813013066920490776016959926163970637933528164121139545553743696455329183736988797665450708829959846152903316126935771678635052519551738895396407306306733293973933281570800883309161600607771670800066558712911168229529071181955395705164853364448881446226992198321024590595124367099621756730685416525179039453471563709837318940480482441895302975228694614551921434845165521427085348232757870148525265007083056057206516302224913454498526597896242163093925871821781122037224021334494367056585930827186456045790728187138060546256633228656059649635504497516028888568977599480707459758367537939597573304710705437890684096417255687685134228485804992475869795840706205708259735557018949156608799082638026070270955328654028327930377218774593243704250450605434550039900259457953048258059886413686723209653499038014141193240216469109698758412548072556444326597388284358095219916085482545934156485789554591072821216206857992425880699425037001334492529238915865258149037559657441880455712118189841429722234278022020261683347007509761839039283454233241748608063906500376562207552189401206212412933400323233140881618967533703066169637372321578670511022991211227800711610216493160482783233080618647773930655964922607286810513485328261491215421775066008235941418964995386903233796202317519696858520995083927562928513463945942940035167061708256061242887129393656525998739179909465544831354065534376694118820856181385642771615719302626940118855879038851342870725621536034155795895252145031880756800295542889935903313484488014037833145574301865711429516302072916532228910365368138142847407506475902748056355848579398715406591647102120110466839629567771801697236890671303213378973298306102061214937908560135482614842652275548300889541582946362911883202979014313363728573804907339313127502691908036270485088991617079540111422783018169814715021014075566296905572273867710108464724182005211516694941002309082091133700190063441942111167979322497232665587166536636428023077625814711590664299432216966710160550528080902607860604480512198295721393052529894490515943975334725192103303213594152851375061062618347509724842105868593587351399918339796843271744799978962162769413985758608522408755094103592634874656929573302934749845370103975380026147459066138717941260640567913375463660134531439695788974516954489059597642225375180816016614447602163402580927884811717666674314173646616656412935215946480329217640085842236324587912134549192344373203754088208455737112183754665063182015020880112144710122555976130632407002111464694350616106415620413042894321995431871091871184600687975762026192010564271537177021919401653695082753667447794876400567126588426258596190137194522461684829991039183086994052368335147771748355400731712201595654683237929158406118223862639853338558772287852092274673415758478166758735972532120435225865343328067619482379219754256832841381732896691891000437182427579015940893103862411976483183476990551013242890430886310601530253290920669937849218517840611928000504485331297952851833483402433441673571549333240401119534314861038604276976965458423818287474340115858515885634589743555533053878227531694357260778920584200143516807587829542331709933888316252387620001857681711193741438001601180297273762660948931020672290606545268196185840682931838995454626748423315734832227720053777452629120982185711226785595224715869184125213144483179054024790726259121760669814186619517957091580486862862944925234390306773808905479377638173209705982663733592663207370542438947521214654693090693778387603851271824563368055517144857887753069763410719330421823135933009401303988326576947345936088816398274852911090182147099014987360335358411237146699674604106936703867934906042381918262749833651129718068279587050351465333072615263860167655805942329324373416657107600996082990411348375946995540861972292170816785885499260656485615380353364660284135124829504735194267774770981204542331580146441101833426172054628922401421171556699383264626422185169932157821210352989105023434190128439755858434690764776203974726964581293302344319541579614977536957121464663360362766907660396349513173300286303730410600465604881807453376635588671743850734615266576867714803556859161966710458254030353602888963830241246490715548441606745896420746556672696955991932656030339435399072899882644256358244911161348843775418223580784693777592793090926323059309914371396951412350824717344182649075536722195607573679540891766321590372370014506546795109727888617452545550888147636310159664968631941154430835441773367664793332379075906432037353105875579404024310598523369926887138014157969824568615666702673454773822817288564063412346730771008761318112013651746506096064009486293418100728304280935342299568723511634059197580348406388309138655423201659342508928543894062376174857260943896814409055824602452589448567837289326616209375041084886106720293019356204906902678436511475130726836001347117896788870580669004753468229943876284052208737717224060394363035487379738846963718604221246890504031537438258175610855636420501324755052512912211891737989504921526862992956052034038585123895406769575966830682687722504282888857444403372253063801002358369743886071967780412596411563968589812937400499716134181424579557653066404309194688674715586308602147313589781930555099956458401145385960931400166320595572673469896017210948005413399430665055218007344932995706701005492494652645284877371682206677857535002488756635597954759056114084900884773597503143221929052252461897053964510572651764937100238981570399501538116228549383123992786246947772382411158575169524216819446776931989610322126254724765116158460942357387565462969233314380246324537428715210682431138989364868635295553465832654725763606819673290585679072169168146003648320866853030235688695581462131154720339765624226967978636790076404114428248682028936201516398799168389978135501926194116585470790793985200976585646930914046774988679015624881020081901634827314485391164755422549779249430668701964406420905121939929890722772020153080781098571905925647988351821956993398560762648148296050575532134496866234615551433118484439597281385827876486971921217105085931264527516425184143020551491531326161948747222351917980676939781069840874267753182374765955942385954452386784592470395765689887443793366085217655976645631691547621836954420608173996493389970622852374573977536778022104156325558576730424071902535799792028281241479948428166516038315318360722728563457525209298838275991810251253049339585387146849775916756127159265443270222027711595268047939815225377985236226648095316284510635019761103727624026261179624747616538472574331039432458947686300240341979650426189513423045662848482528791047838372554447547611595652337940260682225388009140415464327779783230846583393840632699440922394415197057416193474053298606866397320941513804775388799596724831700554244275930061670776513216607043793904384089572975146869107765157959521668735495094430627880691965431618713675503161715105399908186076268481041190654278203307938006065971947438364890176885399193022440528892401868788031729897984616532595941235675655556103962193792966580946750863455203586895218163267187995766422587829583197194083124426152589491877742754653741169169157880153677160843238639254001743139430285586369900174186278543326085137771104245701148795978760962126233523599476245157667215951391491400046988554405945648862937393183024700886556169006479442608399853513914652598453184445583007788140654035782703490928671696001252348887940607894873584534460479121335726668330485873146139251197831461301094036491548112318506755161987495657365703833590453936557472424078917343541860354673972935528671831953313132966690312502914929727839393659194467820473580631098063898094776124586353409202307662543258843339367239891782352041030985867976438389571604366474378140889613997459732806080615101281163947955187673658992121548101270832325614522119445460545088737169116361583104550704416990249766284838475104911345254320940232787122429355728669729846772178190490835762618384470673444286686885580973786933726073644035694283662942044195556317422469035727283523763204068611591651573417625791152497271459556435004701417253954333640732037129732688434745735736918794433056101419937687759939551609165898761416454035590440840157385781843482498890221718980473734960170286118610612710829315075362580042906554027838348309817812667172690393388263777618201261099219907038261578898198463789989765982088210395215422775760012246921921051712365700131060707069286467207324470740798887037020874859539211391719478687181719114003930709746113532876395168970692002796811918888936883729038184955991923973687753310479417384697632085252846887040168396476540289227501558837116832177874909106873687757972232317220672966508022766524870933036069498256335176535984823874998667736822931322431808611404796577264575363491600638609873274467229694256724919918353134162022397402445578226084479150309800030926936157808839841795848500899700048074690634304592302530518369857257028787409902438918418597538090135562504505288317230321992679712043792200922227128499861510854862402501336993087385786616428214416702537414449959555049222583723533926016010922600615328739028176664422162870994896935318474675216465113920274809442794468887259895604587124869946747554882122808377870595835612896226207145921314876522008956811861653775444095087007092502247734234638835644743518311674928701701836265848099852289148664968556892045666668416424218876803224625302203549338270564799143517827445622673539670334443999972768033991339630505938745947648010660222149520761926719605484033006150834291746811041895603902553090830162130434595171439241046037502571121653165527995510962354144171915618681857630053824827232469601711719085639166147876653612167497432533203895445257335490380529331846223446789877052177262889125146597722684398078763419149852238985572540127104767765058431894501504550550098156537006069805853360904038241698316399000288249284151784911047453326836121113356009210874391070252710287254946346212404380178760648007293333097842421830436975768211198093604782884696922858344042581542425004490048281184531268682083790579232416184198703955508679025875760560257097862141830311657721111348496794693214043436452152071753186133413278660256723104819800282289210717471507378036912306704329881248232692521575135328507612060099739158909870788043772703778564341467810388903219843588856690648461258654144580679081047614804678128842299279341055938531516629523993621582908661275126523035143006656497483372750124046080479360683860202788299378852303428471704544963419009859355580413788372120514893979324671118301102979940333299200068300229667702909430243099104906682057821427758524184491926435428739625467201933541227164700318500367011741792650596749948501153587299337084785506710044668975623438270677902792795417006453554535536758109126630897465299203154576836590331981211153469641343391446033111949379953222655911791476007842629497229766650725497123133919930977312645591144542706691390253875017356607702976028258311183038318993698074857625014872770384685830601606435889241453140712054652519887315026991720302509939409447632740520838297538857661193319849803067393425493435284306789546430187389460872173631785936824368973993877635377798381120967662533600812586353332705745749221080909092789288699709772141919349440280495448125448462026227451394754935939348939108513335924658754270353284970363318135642580888767654390766086228805702716795737404093110556792673809006334367523180124458025162944341106353263360652262905469305138859866575154228656353017497344817360511233721439540646228914749353525811622000401522270174383864892227224375839544423034170881695754630117620897621435974900813913484183146241199205272526250251163518783888324475099498432527187698434030026096721390533453507178835421399843864302864646615457557967411948078781394328110527674782358176511088866913798014633877889331777240978905753117050195359775475188142530094763419489703592790369500648905583193475428040522132010212703371019923203074640358161821699022078585326237771117321234140398352497129477024735786974219825120953155310646028723130527965870646615469565153587407717608746983258171723721771311530001433982596963329086455384151170532887844074254035792279108856498773918391363825626252595986623037552606923864559470798316556723860234193764042809660423986356225406221510003253114606810775334605176120968674200985373714482676702127731721986175001012519022843728491043609455864482524258467006175996146842451346577676976565464258954186360730454992599122958948287585385076087032048911517866026832084016064411086629505476540419858832721097796510447835519394787213110202363708663324232858696760038931535958112059465776587503144897144665154276527314812772634992496422360889730297860995077355942766213003987709069190207806255770928248171063460320898249040389502091297709420508165482937941905995173932673649381646159807144544240229645038065337608974311493589367756014106534997750354849854499000405229659219482103526733808124560730142994536520436960140310986446851013999328597579395626155773136602338446350098066628856091278688624731419493443755807555918232845438046424629052303396371358909882768417478302779811007032063952974190255457134529684639074160384315590418434742164463326583845643305105117166830215659709078637476311484009301696371036291194685119074629070969537830149717713762917015850112605726975697326989073151523208469241061459822342351415480006373330279492635527138542098110605077189272210626986349953413861385008531826812592745491960749638586276609468716378178751174358333693287374066357571694311184895780626529361644246382079813025425932227416906673238375845871139797697804724560870067569973956968433928351981037754307851879268636033843596029361013683791892371208478044657281703051345949975245655568411756591306892263395566055289654837379830557563786743196568144197006660411586418130377340207589424485226239590456020996055014652528820118985478230080335067881463519888846957354480730378784835802533997022172424262152753093272371671055558663721845022613609776708866899806606642873224467445446900897577382278588818454233217605223518175729374030563953349759873248677415304847957600015630244620061472051136127095084982131288304043044465736868636772571661988518087711477841016784766948065788306069035726928531968414463668917764418246330505329622843473998684570483975324686144258441546457521923731193125018865932916847208597790256662608139074422200590998074830239293022586854275068406319589761200823098206825573666525365042163410873388383429179826518797170232160451444454269921690535819599766385880607615297838663100115650582020160767546217026136005755338257092221023216646378106545756943523617641926327956290408197305435885697023842728075916030232938995004858143212452458254861406987949055717000283501641362408297694280942315924314725257849814007254012062725376846153998055155346365872566033408388741587366333312680805147594118175446767256801287714970085950066577657160853512713649759186069144195834074150379550527527087773747344191803421619031830904358245147864131282099900797379480996339637869468238672287271802931137290729543116299023261326272775401085755989287485707153136768435017856747258058292107679695874677757925268516575062000391440006780094557295906177968876383625922570935294550181054801370315506213466586354252149155559653713145770200342018632232301932192635754804522367374742040712314377811068419135849140816311792493885978507007852082317962238665003932805305232882779351821303628708552805760677400669501555134501452305409061255481141424342121340302581395572301111013883471927579773662526490886239923569258550209031895254367587915121723340340864761907109560452297174084671832112178880321992869347575899901561542175864586579353425185362127437491441995105182605033620576943815328793137320871275860921972477954348856233948417726936865182956394157846533572281244203869161937302600363021336835526337391974142312383376294377563157665591937292384575673080068343258213579131806026275958319096789785937512012957737490079003464816005111029197859388535265258157532573681941514774484773883321533001514959578413762424142687999556252260063702248554198207009073554702787304981771976145611192062564774203171722276742806227732584520922498882805649720960273840146269673917075924052829810123102887995341654468540828739670915273389788014162336184215648663873215131229434225432295118221864538152270866552961850193973947305778830422900888443202429514941965158067976691342636038842334508035635672485149514865405714432595655489594002180057054931414387276474385775945608979147395851062504884960924791513872392127316400268310599466299495322573592710433384769164591106656601717107844654875018966587894694356534852050834271431003518766501297625659358480666153746325699879609008162240708406698617353502756436356045884442021658867969414371739717465350730479767022985455022204156254735048419439522570370378612485793802254850045266670676211898817092472200346589004199786452450644774642156675020393448206147170900643509850889058170676766575407564489584328543353760514632248900005216980393456379694849771884172999655011183484517562242119042005897998011463619359821002552250257674912327728118859551105024797211850848037554410375156943845897898964877866327948058257515307758816298591908598316117868321051437075687770714248358189650801436336436586508445831196493094650427014058371974060215012601128772483294250106804872385339124002127862873648174586080693233551689329274507155166945595455245038912179245983050009397301217661213254100966754640873697434416641394034670528538372364910417382658369865667212567499759057046130352609120849360970434755257111941080370798822067997686047222091383445612234288975562390991572987371818477932991188093626364908770817043090631381468813829068089736984274173067614491746278661090331602337056516326598777659926400945594383385430434593543491924700641485119505096870363446847758359734969263502509973864484320314287064360070670419250765363845076448680198158849962225181981626177210074025828767955483721953412345948268403236410763395731821014967832467250023468991787718589316511692775819091381219380290917222705140419397592649726741425781273781368415941305580099058851311526360622902129351370205957102177704057203495817539443838867338556575206389313704125882135372857619647340711170681651482770423207339044131504692086842185410519690129019484441067405713219593694054728372953265302189865958851715572412230117136175246379857224888885221607587938585980369777795741937735884230686177784468340059456962876572993025920396116265424428842158641433087529949489296984444091760677986467993707699699311516221231269372463862695417905910603539636080324095510837268664474795680676227472579074416764589226570400585904835329171617153765190525276979395155380601120583082362303977099370789839168997609515902025926256730045896412132144741919977691462262128271765170506028648066866765851067667083213155696650972724616699160609892835919354421560833433836043491828602846908283356669518077644609066258509491493231469653130220389882287401926190607659856936177618188498489971089652683263556838393775352440671468871723603854358587040996982621173634294947459626741945492038633345054633936410958781137876003117140123210887563598744379445485978686292366043661520543129628397855649781748798353905136243945623401215687214735335654170478592497774002472869465153525632914844060432938874408511142307155152287943307454973288945284579130869429802322967247210357436598421369033813274429412041295927489932087673218521193612875532404274666124256686944789985122218156404301208465339980798011743751647063426461994727441469518426486060526453988673708737384977430052674967828836978766218292616058036646410220618325996217726149210838477904988091948265523790807724092273184592821315942052727922686011373708215716723113142168540829065067252726043733783065129639198072233408488601358761547442560257080956587193917535784698800688997647763521346295306043429743259044288446011723935196686127256583101736027767181736173295744337022958475558497454013600660351129913450467478153692255501499555517864910270785299666958029663807083294204401326959741572995439385387718211936319957846295939956715552124416938408318068653598960279952664644396971360500825636668327350686354958050287086968164270003691109648374015490860271291115488282491337761626379047190836004530956402056744030486542489569627200744306936114736593194817511476259639902605794737349822674813176597969549847814037506602140028646441956732957227175122301104078398605031684026692861555143772829718058226554778813963839051607797528514976834365509521444582345910426219581208936434873536107384684015823098499803628277620034967498396401751800622453746789439202722252919550705381770337922745215380742781061421617312522471693997067932734834586431764555151535028429170177590760774596511625114433392189756310401167098876482006515843026369177745998718433611500112869705550718924818408267611625246328864502733444360909979520520945795174980393774638014802522471251870529834528070840818744971627279122075717039387942135908710327038259370841590381565037325955759926783101755849208030439889753497409445352999920729379181414406744685634254271299938058807086748314273702784548741780808194301904632698252969043839147018120158802386724311515464738700738321248210591392563374914687821419517856149808415988110199466308595821245354771770580804736932587490470622076279363678581608010088253085285635371056371054586494483719606397067255272289581586129646981848055998615888831924315208914567185619796568193100253203331101880153117992615464501824394814918540852493591277024577874219695461009454778832235490293186573597022362644994927130081013700186365095206055722986601214859687857912635537780714574702945748617290664288623787493362461104914136594747630402014003745430695743469644242809416568587586985612476326544115297737975027388982096067307597198963770771861035622624501980163711780280843474865888317065568419486625470005602978288333410423094884102949676050422783712886298246504819734936828129418725087288220138177457240366129395422883162347344050400799220340270193705185168207565894944185823231989302313532493321781830640052537568678281320306216242799035507337514254367667134528546458867215042296121394532882475809381706556352569061826802063319798804194083841140609915856563936967786727872020349772918462801476476581083548180505311988764803738124044949651891679016561904001413905813088654787738737055122578532128454885053509431772133504995656087669021746445782047244114765095064913190282383307139944327709898661750621180456187260447308405796026472031358571177750097186637197940636797782588757009178216718634797537645458938825468400276367187516162646432223836395773552656715903882941023780117304763681499261276816027126488173338507270256936760077481753045112244391680316271611162665010249031540999833485004903417796842232369403772966982407684362102428060540789138344926654202664793400666451521628420313836958781935912682655525519155912087373939696722639210355713817575444917365653018752841506474972899259958456825712049945277845901562998604396069491053891209661853938543409329592470396399626395463545340005245926500442787411776926740365707741565325033887512489818874659888088455754728017283470560847889491144889239842970283518862445494899644701667090867604067210431407426015836517298337643950251258364762987603835293705672574482809304597856859762035433198880685633585737217867034437270744811154705914207767161903948967312362599023640031807399664189449975784818035411975437875447630690101355798022679156116105541607396114796145114184302889094453359171066869810241004857138978542723481446424272229374660596220052239906671162678553315377383530990443027958201885883436797512327906081470673972556553597791161262153572063361410032641396685453735333201829586789602416995859533540079875675664901147163682807818851361097228911544006750401760473296028359392079458230240953509427177050978564845274382574883710832706565946435245151850115507336912808071764790846741221528670973442991958487095535870967646634096797995228779305659187118366890936005358502384723441642692669491521472689264540090017831230591044978730429748909632206649925934199966414081704446667447833928304271183239403226860326012964366091956739732721838752945384768135919398563199802777852227673213059882348473381516170793070642242513983198947503989534870501356243023529525080085748328712020103524314451637988135458468678341966338860792159728088880063288136492693803597260663974585812411522806177611602758890565723088298553835792788364221557087658191086410121243264754970690171915993564244744343377332480798097773210554023691774610386014263682287408851312685695829403918860369887583054580478992816920131988828407585071364413389788556057472988550403022187236478394962491813659912556314392144149938531091174531660724144889824093578575695399146202189687628132143468410460176078890221702151783365090750814370433676074674949866909996820527326204609454724381644120412896204808161118286676807781025810838055752155992497284137733907435018854043040511061861145214904532899282044401825724374602388785892862330559360926686875282265101985927980102893506031800699830002716770005043206058994003159837335279435414277878740783502230927969193869399707247759533508330253341246985240042232972207474669889276970502894904564502273013408198748418801180365522385941770074384863455583454850733493783573690299214898246028478119969125682711015258150508765548610422456343302939621165195713379926523039835369130453308778000675403880390334234509630751064198283050832233093785457954267496902039334147985421626124420800882093870739613846031742755867206711465166493034302529120148074867609643046393428670765668075167241053479851310287719865263631061454173687735611218032263474218933589970685335744969180280789054488998452913744513762411567509309057305598215073605357827495790138095534986161905383398330719811554625678364633246182514911351271858822815499712393845827090871547305605137797924612833427418853198245396380508033411879851827590887317468841142759791304002757819883953904129928797149307959128883649451775818502422110490914394827244677311088056123416283838799540407071444122663533320354485708376157163378253562953074138231544962237612166700750459356891748957679684472796250561112986985882941917550776894689900884902263938584508225295070250284103126440897187252656759540893504728308835919910270091699604439482046616297971326305242082645929877559890355648993892285303571226244961216616733381344479447725124912190067020587687288186134206301865849461939384651790661675699993113218650501547330663657502833924750122326043072882500809388381955950050338954971284492675822252748696550565204962834214554467822086632594314033842518703750354073450665911530417309864756250006310169250200954709784995164821429951383333599713300609690392046322171609157187944233428476396615239774747871733358198710352502626477700177200128737670094353383854482112411207117924101930912456499967299790278880793653106019590386253814079559163660971385759018128045578364804023021185293859229996014713310122451581586042977296479375770106334720747017929081886968633005089091631185335197934793937492357838237251849137751055513307766666519101388087175617074059854731163238522622008321963649359724418876249655721065508075999817407357119881946364177142481685513695416240231951327592575115748434765367219913143882078086145802653461733891513319019827170369679930713177070627996296275035259621792554833868233717116513766024313874625874112761279320735048111188517643065644974306852725209565333841327359192186062002589488105196342085198164240225766498902658553738139528499612632347419454468032843722120333298956074608761769864248615423624176848394930394398841925378431039137175122281826835968702635860415628014463185270122271307644027728002793786827854986692161502832066532137602066803501435832804506171391210648396586994850660862339040402819631699610619960409161217885774390396991173215493569208107748614288220489439911421721276278648833513721551742537839029853032750639394720310069572434311710800133574888048955326070286079576692592122682397357980505637246869201283551853453010673867163784420910264305520348383567423768926453205003041936030225345586158419154733412397842100875561673450938094543595434707193439806718628570668212006842343458704574727358830120108097422827718839962554881165639361591454106319479192759544330747812578388599877906826532357543417942805331743661629823666560918704493709074642195245013448358214695346852364024237781493897812658431860491859869472070076882004323276092509678777787665835444005980890238941853551639098791204484452989228151209136114700296493107693971389017932341270098444164928819842036064382971834282051131808645423684194778053796401344774831134908605845259721755149363291116003227676705662804074107627411122975946740092010855996817176508748308279116768634912661700768188963264695859991929316087850916654009057413767890309057601305992651320306683677966114548106646636099394769778944934059183374577808023674539888088940748467611867467786466875586713365268017038086820372887026844815930982594244652573032466694561306772917037237257272608467296606385700176723861577628514828243457346847093576040889033176416046890577176346268284115443068839382448014706208197696633576478404828246384672650489927985710146881676152689687995199667773745831164307124602791928873533640274856114082828730663957186873433608706533153434772819069726483987245274933501109827917596960980843954698272643475013401658389269172087812794876197799098787923805001579371347350036869518627567383220192984876916050314201900569198200657046119661518116789374264387001665479835546514394338252049869521051388598756557152050116763163079230634298336503269277270003693201072842894435236780182760984954478770992231781082807696927593184444901336709888924506399330946947195073639832506806189578447232561814804006152689395502913476794381165254251767153786027039573699141958725344856834413112971748596381835611943022640978614766434062167377028129058745189695951841070853087408399429398108218883774691121609702431664485906407774362791418283249950076934425649784552493405344811776756765439785991344184138594073206523792345009186580026798033272658393902109139034755295891611775765774650945282667348897504387628352789518974516675446307416725944201065028824309942698269273600412963417180306747382402710127428001910082873991953176372065400923223101725398706299660613133450834849378111436448015186676472729120263853690395638775657305553525615570853343487021247655681439282882154940652586463522447207604965795053947243218823572192007783057971072661112364882350995542311536204233963324408724877823663465480516819787263510446697417964904204727504604051420373078888819325094369033064275686394477154125253388520064854820338247281205180906604152287100198532820215752533273538189847368864215171677433888377604440941539202162031331696186893825456699920438142852576744286373299374155112575410929066586107992953419430170874933214923031921608114620524801003512626451555063425029936063172660761352821187925552339114192432200594792172783471534606167075457816137143167650636549076557908393568544483118494250556016704816142450944364547912527574704008517755665390304126418457625455395552057565595623490025367141956884924584582936458359250464599902981114198861406171584585349815811444457253759594714527206860229334322692040333194979341113687389308624109882026203440997312614175701165563502887273392603925291643412198610520348244839447062227374037243673964783985235979490391498514864946596312501095332713431792857235721512444502640210311628997777382866948112010428822455166615626347350152702930939454664432064576825897156823885969851193423835820713581711510004120675797772323516550850903928095181151505046204798671119702744351870410952688029564214848220783152939015506839869037385706055277715241157879762735418625173836528851144328434688077002815022400746217005366880372376805291713416811088891973633860457994767229055532334558588672920133360677650914015919505531787441809403687793677548979979134237663013977715193156851702943028391611042994234651282497244857925383758239163002498802856577407972771907497440182829859585107759181826743570162166767111923746162557108147341932279747661493543215016079425545939223732001446675477864232075868361356189723469449628813550440185742857211730973926698337919653132980803922104431567939211185406918473624578694181413495230748887136975095600293646767242845430961095413113242891497634094198156642616615088282909920574692968173654060811608810544296475263586725122300296837792536037682588587064888832043534388638379280446237144533836544290495737352165148068401577703538472235480014003663272191285145991749223935238417782902858611880168116515380816792429671867745528135520552330552068993580818572477309481069893993334926748260163827902804312091758754135372012092795832925091401585281016703754456303999893302447871517521563426355043196081749178714163521275414421002949681102041151623420613956537178163731745749840032695672139775289242120769448449412027814730886207930183922745265624649173599154405501801054273675828089755655012401124565257004480528171158587510659901241570933374604295018815423013917921002193251207012906853506664151010881607293627958768834622392723320606039363543022219817926494878270477179320647337086287451425010851650827067191373806859474437240938329519696605654216291757011613171889935959343022536768249944739666587598747272241441311513274695510240249126770897640304603785539545331869533834471522398951425858904572087675649947560878409506267339271725452253044024435408608599480573492372492395117980366021687366374875388061845044310427167539221653284744872149255688867992471714162543832917703768536383611363137622327507536180241617022099025741360140504566694248269638951028924784947152089789596846675842695135912928975697851701563675626725626395884281344232398158306692274431973845279257015010344970327882289256366112191983248087382947667827560443791994383245880910150609090155827443765099587413231041446743642969287244999665268063712565809155754999845776039097524387628678841657942327085532418884351385183553459181619277056325161773652410437134601257015708571023735690821957073299509081208049240012940094434728515199249316746756601430403392761120405125536888927559077251414901406557950949841689090661872842339484005163635890961411495632703884257581794753790469069160292679114301781981234557083807086393251423115874395310422171969132339499018578932815008392719273322271445860140775927306905251505620640283810401050938352434115402473812794884635518071945323370555724877841018908254268736952322300712869570636809132430006300582939354306083961940495607613510364241624434445835255883535823200614420807859179003181971016951896347308076059959051397955749313380383176723045036640347944972407818067290446344081551647644037325171722968987439271868608456079665196259873491302687285758079927274033212830277663933163561299882358702598313659358742765365052486280114200524762322028664818625500882681266685371907745665164807147961565754676752423138876134803895509685024286375119459833172862507235873770296933965351197453154839906601606246902593593392585347989163813454243472753140897614732986668833302961613455490221593177677987219331487115991686581147466545268737848932162858344041962667135939273693235342875233823724375956110250063103964889360812271087304600312398862448388269471719936225247553346961859717879214212408353224331251765128541627413267453628728508330898045075250692197012880402375789840336486903868440079706294158033000838978885780276198797949948952892021293157772306509598905149782353371117369486053957067560870014026558517282044849520417151050491982485530780693944763882762601212152750781315087705736060711876993612655368406651161897255421155718246888883487025820929385460792623827202701747275710997259148867829538112078564322953135743619330491482386535438596475641952665770405380140584958064935235144576209323265932417805667012761456459285361484659414757531839706496535755349856908830481568301502442964312857580352759973928662066389538983683484336816521562917543938986714970144404251818053427739878351654097318752107291173398649653475678786666665038838700185988828135955769964324598299553383143506704216364188201460520489842399185231138366772290602336374323751967988557940919070988443793875734693595594927918040557121115518648367404135828615474694147163261253727156999566347456808766568831906506730394245485166306928531283006044808791422599573058720607979148603969531417274342240505333877932779619953094032531137939688172939018065883183132577411772499506479039360214452921618614296565364854928694867445494587107943243928804533673616126988173526257675378176802121603566217900966753304343590284669071874385704516546053854970468714637415563624626191569573147384126455239664312542376826563741910641656732778541693790913629365335246831992558448225634617197079006324939271921854986120676200620127908933038153088741355702767746462980458792878962814898310679974122990262000125983419921161248146022086217057746016322001602446937015283277926647451678051223971897153318351972010350331687825014683049842086631044887503916556634081523931250876550475971235360995505019780743749564640490312028487570973679213960115006839118926758580406947182642347396777588251867928478597975864134124278202453140063279201294325296700857692983215233674407793426450991095150992990325546920735514501748324491086909752434495344849754263435034022805430467805375017677846313769335009372262584562656293347436407511128417822133402138268057212477730436592986633766831024915590784516267800378498093601551946372971980948048938256865282440603146014685736253129232496029303353433003192644664771333692988540452488589310621755071232718307861337902236364433387213743356649928167430989155847950592308861270727132353829738302402951065566750842030357461332381228134736517721752331726135140151392567804084796724766093284816382167388453803363614683937606628319572674875875208199585021968076791633814170662718497500755835038834343295836519133343760916281389860549447657579268281957779914973174049578946327066905789629736617938788947521600130630041150467437712434697698171717193022800467276831110650453192209199998026125079860053218430463604531754330778586810605958713473172252630169933843213123936410447599660964867892844968470019641863134807004156106631832097795994843322742193660978731631650927305093199042796295190372131600724280240225163722378977311830109131032138359163896761373669379966630205781831161960021005808650191489504802827661704942523975802092543054674580563353054530399427529497873188006503001206720110840830826631639574682832634609353924838048403615240890263634007773245296478286773933261695502393707464379380448298617594152776991408185748379594477252941917382691546371949955384925051274831152712119339090088524293631506021863296432975820675988623275354213028266468858790064434609967666109373714227878491469863171931436306796872607373440430748304936287066933807275886313230613817507380407939257429619361187714640232343186276110020977164093189588144014535998759649967624665918909859813331169242312270690980324734791149536843544293912366561713085217120111521379665523499750187010514687397124814430363508274002747176522364980021888744376314677715575857625205647141886741999380592986918998932399266182252467352949673023704800988097323095137652594945326001654783047912557878326237830286286078520894187365154330889591081008772926354682804094449612975769994702286925889543814514862825152318349466053967237420885643587651986505149767078448399400460874555169662212701717713918732164456828057572521692894147836607458470928288564044315086325230124895782080934530589613552993148136407563685240583831134787384399236420931260427425307515936884939190314943100075884718437600650522054526333762635664733355065376531878413009884865892100410876539627729557055328525822375235740890676423980564707430974079339161867645259641244618495349347051580776388245634514671937131959722559013815039831388375755640608437258959768016889176377918740971479352534081744661115372706746950081543701413498883744900113548815128827997289184044365795933798693822523669060823268207849205665491326423570654830915810709526041523850806986721855412027308270578633072341356054123378465010440306801380167684428425295289797082081965961353577134291509342225731009973409693225772421894499591129984893397882275102445027765994840838006281207984645691258504263862973141411616316586070981013351018064847133409101767471938226541816887343699815115190649024308345507513940938923089011486847584604705259005597794021230368520943156549005198972535952562155741609252612065582138925149573480841972258048539669936271483679351137324103856713259168285025500402983128408607254504183571708184198905451908967034105629685142454606978431209276767234924220165413715341933628288583741991187645465479608636169169003647429645675301414504805125186370600795083278012028444415423432978976194933798984645217228351945100837422634892336640259653726278149073148933227644547240649077087148281139291084811493561250346079291402518085620812584332405810177510735316406394872003690200808704160649659417631261090811165679867696737504907328564676002172249068965056414484068231362061686626244310811121563418182551303595982255132204924330248353462388595006248210637884397425052479950903520473498649521163803416950677246379233462805527675980376802739205682820870555125402760052987003024326673671571567219659988720814587852129343586491492095106718139860136568390750637218514522018876805040150301186543506437419152594050873709021719368682055494459181785098716184702905624556045299913351321821000079561080783630429605781497515134827415264273603683589270366167435879555317965627644241771261148007238686514579181908099094923904732901494863421481325789681706598851204707298611606211958584783495261965340959691071259710048999426413303604976186648322658570356652549663702967155665974627969869857817969433456850028643964305027472556367986564811828654229563936704183198011301865452141872303694824717811678165589822287697746299704953960464962020694027880623915168234501550194705192140129368265876155231378744474681087927911450747022140778344137640232672882621350845766564553900579156015567090473347171350616211858872627557137067517144164051283339672302772360428506618653712612080334376104068009059230664713779214729401119889500416001184595950719206475592712210360973373800976169173550398625238805890411884655106473906255794103081811278404884014079342639821986855790979467792598098629615325173684032367036986140476807934780439422634274426345702258367981666735134859289680187873110994531908389349222763643436802913217446134333939886641371324844724584979913792283343483950488089419165072248732246913591742201059402814842363600435831734606760503649890706759182852721578574704468934312682884560364888194636047965147472555669237255059202256236307142895084415543019599122939944880938721145314208465999506276545205616483193100537062714189880401756052248263144542229306805253261368452624444354652668791002552249329583702803378428503037009883303741004008244442998890110702788457958972752636606962943388480032771947180460793939275379100313934908398653205243481225104523345876712672478872740267801625414673124027372825055101041454086099596597346644106056546349571229560323474309061005011701663646139023793315377434851247271752560830305540458650551376488382875098608248819399514596648232095313457737628123647813135804583031157906572849454920788069232099158523207056666245226874593399435626669263952867120264490731495323532663117358078993720664759796745070287407532118911727662148578954976975474713639909266499437618300607921081436838737744753177151583714498124860389414042129675670947522541033003349305754531360309438704447493646369903100478332562470901674588141593039938646762378845549890681656911221618379521290476423854009035176173714417979321765112851176047404656532815436321267113196843754648503379965166026222397174249057898084584290519812000504565257100452727494758401422523837264604976621278593933673028984241141678738493612890988287392520323084510495570027356348211149607861865284506456653176537924193539519929423874839426415051022806349144506005069788062511112308919933546646720744152993144075897131970270871757073814625408051985088680366792288518615119912671212682968345443717024364419945935522201171133785053245064607889905167669767648428022779801275612394234385684084829407834088480620788777190131978112164365292142753764220256875478647225853785830405690310373653815893748455631288256678052808808288731889093361765005584259628262957757916921007219854286624951272622032830142719130376576779472874479418073147039869546972913360183420768073667484982599271373090131319822143162559936766666893773877434258435651108303569389943357947161218522098486637681455688410936967030542796838284862373766940818562904499221827131890172349255481132290096207979851672084848397185565222931525299922566224777469967319953112910201250976916079000595789322228976144315456494425882380146228560430659088156353847378913486719960482070168925975244268159469392048481246198080607113310977064284766565612316255562165956418770257975923066492530972647340669709442294425360717771988137074971138128151658171434649607956372628009170101207591249384958129202790816659636343303699527395937155147412320827478239083630838975341506962915123149137007164155381197147589886473825059058728300968226207015353983263535808243911147806560609875442535102985159991795975846778339870759343918190473088553446574172866393992720237390258566366266835458364518381558095631676913808264805498402968640489193012694346019738350035995891403031464122272810433250158142955213742048285285851265397966835183280154407712189956880256587823016243771044121021317416093332317814665973651559733362871537832683780628472592139059138715339468176803640500170178247925325809129550859662298404178058432885208757663793863034219430570366667877873399879681381323623310013198388595132227307340606900210455111806832877036249026133383282874216669752689669030234421144635916960924848497911289520875523817481141780865912317347397771024989339649444064671583985021155174461618446261325428123756737986966350726327491891846115434574301446230566783218089484169306417309582471942678768472446212698503994544192660375138827874347847776261827132838180652261222736387919383470641909607076600821191443221592212715724298893839967769030054528456937400476382724941165402488835941731505041834775740162582398311233488535764627661095257555311584340263286151681852878655627286360076371800100898409239553465728670041316509737295711808292916735702445364109956952325880932947551134781717776662053960610052502593140977804794906333030935245386490335821829224910122841292737769272586881662859385783438537122489318951585238970369695770855575186254548393325103733556253282536428340034162314316801923284732274680950529914978047637006681303073515336780029078720208277457729168135364501614230445842997538855671011191945425674111865194535049338618617316399007485122188618728359726705980874431499217405748971233408965821689687504607471133235707261763071539851862240523270501593171328381719724813261091141005848447711515591460628983229367433412260987203784010905135966899272813749976847518253686095430053466649862485860284196979646079348128691193764459828866976310205550205519946743036990264401439308359412664713237802005039292168527272105320677576230456443553393246190139981520977571334284788711718846454245619720357785815420526213624918179075626824478210459719791896884384110141922586092215343467960801007919751492108254799038151720062907280456661981015088186674648375038535156187289966132447424478227856873494221380190371884466210879880980565038611953142322138622561233360238280827094048309712625131191129864290301289908470451879584607839421389514298150107555458329730316794976012553443237368418661387810447398872793460241887656043729160851350935079934592395843002602409007879412531092851332048172496607718198783937638412684638057391257129319909232292907606958529967072649671327321946410710805177386779505680525793814172063937176581189044396319555002576134143975099369865437857262676941140610060354413463631768299001979815174892829057733932606301535333340464093271066615310532486639251042153661702584577660714474377842903149355191577497563938595508360807537088620850544792261460273093084118649156670880346017132255667574740535721526379706791537562311437292380676916816983027296432537953266969657582805908750830530070520215212466830863378627142791333686066534044946992029195579694203848207901324644999893817949972098730169151814136698624158433807125775267238737291713257608027858218020375025625631559398260667228290235623317775941607476085739298113097957598735319866367202359635999914448930265095592478865176114636010383749704197787402205929373785852501455119370950039811202409093910116515626771156931884195508424453231211505244912536196111546357211619544695221508253085345781095723336090701939538518033395588155098218946554645855705633803524937557048154930184538443678192522902270011176767740258871370948514148772084012349041337645596424743768724738742584956977691086364185493969964594512809890766513571406431518511872061387900423943117881204410865484054761434850303294543257657614730036184772459257301921332739062610952085747017049203482136346619270023264319211809379324198198979415266586362199878277664575185384920479291116423712063013722657773294970350750808594890781207267361897882745933557501907745454529838781671760238365575738167410458831752428494364390787950683036037835527431715774150983463535714762345758287412438032002659523708880146769900845527407673465400808921930967622875920061080934238222359707729570184966602792205340562187394582825892999302357462421474408340347940504276182503035921326377511888575967614359977859166399957594165813912251151628645514610554178244208410618340176069131958577211838289608978961238332362993566559649318162983509455335832309693860917231796311492307496500246655238785461788593267708924899461813164899914939944191006901310018305041676429429990081056142005418179397858979157345401443014069401104139711983271986661986489567225614514723089008903631689025495612747311842795559655266246992125519233921344352999357486447466983513448358469916971937584024816840370384956570484200815087118752795809473187467967712707233812911014445092118450801585481140159439417968308432945466929121958824078298808400547149565468619401446353753361168826258631597873541454808995454187467945331932916054284458378561291875981323610016644390409779478449363444364564509258526605069572893109589308509220437009891267732226736793577250151365897277882462556657465178449912253099543985854315408277026405838102793545760215248044436887547646047172970314045056947098600944738174078136291205867767554213095126402388231939561206804206795307043399917028111339707646755863379358329685482139037761692080927667066977643053132763763935677474665662447217029705563009120058307796642276409616687974073520099037109045705055499015636395298522046057866098523997818578681370802426084701110066674139899935016992904094487338826969969935823199738764939697314950502162682126161190794465947570657132706658922376652573328731976739451750865746166651549387824651816130306772685581090316093723346515960670223944311662124845426232135973451619035248165609986088540292515226979119869513659571397313501285185007699960597056680241236270783750936930766501666502418565279978360202451545328748989613063090315727638906939360654926433405347715184475272053651551095683348180717891688815243619266159073145685741423818170300229000197189320467167670258687899797945708751191531924357016232753802241789762572589795508387445615765776100827912621218121769775113017669942905714417282292622702772208666477823586908759312810711081268153491960348629499735560329645085010014022534190170251507858933850528636226059132245276481374615774068845669541432566289431293751595125980398029631982571663076577272377981824659110579103083139175532248795305699888281107941532590640545363329658218187521682739335375884261172647295807829125753421184801306281647174278415876678493764770645479543188568999353194282235574495481992766250695412412657535862385431934926948540862541497542156216309087217051839647021574140824726910197431173474754624414995304135863099981964455750090640782306380166594960872118768347482270111784925737822625126715465258371205844989739862380056831722770214138249736068452723487653350121674786321653948140762729301577121912891105461087463252697123690596862373340523381526314317777713232653496764898024138305212930579431178481122414651858629669120001790054673953610003790641538288134941230177069884318736955751054044430822881502659341493221088705838987909625696595691246716442314146363574871142372241356429678258334902588703058785687260648288281581988246501236973865547865522150645089921449169904914156957387348496107948094642583926621729964132824517255642129244361594224566781630814392527335349644865457283091764268939950733666439676480698433150453820842988097231457316351443494775168636852047290157842913198842550975502890095390356899248299657580831416639456656420542178080788322776812723245190675926495519029091902749877411550047346343283541027373056018055574254692504433016061064554765863517444050247965393583230870647486666667456853131644304005437118496821073644117245170602780454705847991028794283895755941291691008771720184634534396120665551238887755877591107209202576280086823336714643897087952841462511671374258372221013576639332859337913444148939294534025932578500598494003101565242758607647951834251109228166225015072226849950028398594922137498525373504023866654225134307862795822011859496917168030167486193602735861872625040729533037135781340283196156610120031790834058325308307926388277468030929316980337495322097838242141808347107672694333382619743628536297030119090034642324138334478459631795971167366609846240945212876209063940617822190522322855513474502796839758294591703559352049376043248790688662317060127515611216235116968848759185288990125656627799088839942542909169586870453188167773842680307654015956748145979452703647669978059394346261040683297862512182408336160697966710149843198364894693831916807880459490059913903404742761085731583870826787735421854623206701063072275959843896442432202121648032926543970196704336120564130440850892021659391034642615688128525516874130016005339168494557103876264814027546832727759103099259109304969761633158009646624084529408763393906054021887974908498382469062797779480195788208193671021492027410993439841220557427813712572031235879684242040687000052128607457248545377861560043948040011927119282047386904444312916573101534051639624276160912932539911184898214647239009677108594925350828113127253809233624599262617758787144981080988970968909293815976842029600210125802016702348490321265548235764643421646763343373987610131559343349136789164831932770498892847543260039579602929125428112117701384475780311452053237447610132734072277237498989427378969722547442507910613289102789056300053407655780748485595034538523775996062221241006476501800181654493911460158840319649031294237170593635521043558099928053683093990079022136022040869299359492822573502941371933061183435791232763356829592267937376394417164523880331690263373865645399522159482108528568092920880700689483754156538288658655586479486719045973692177802846345249186105953030745626056182716330040934471165525984705606599382502164043954604344975245700567186129722727816345040148718136688192821659685640977901121749114940486640010174496461664383379363056509579820633279156365137521200012777456817489455975616689872803523294905317347659030152004445680319228476249181395021550351468400411832582447075908966921515508552627614032010557562282515681771334869063168457250527449488516147833600727407501262636462352632923735961582024103866943651486333962313661213386020476760091106118550595506735908245276034399858484414549926585043646524131287091721806425125200404293779118858262878163456635514982224111957158696688828323722570591660465065186439606169571176661580867234681459646059502448655580672517474481796615277775884384549993215002940410750392245194610542525530386603377752242809400648739650504063538079986324950500020389856534239465604191950515631125218273740469980790401038037083998923073496018670568082090214164034331816789612651446007531750276526489383679137368435632085963167134001109752410458284641875922893613011075303323565946946117439435461440739513621058425786884306421531065265454920778077666980264044975408484333385224263636573498200822081431706349519195114666466886832292744837832128369518204708941578264186222516393450940143352410732621245771196345157242806547907807085669094115267915397332100360779755597062669253438376267545122177278786397221645306903920676755094132996445391738063502474023088443750804083015458960699615322387670972592078212277203112974272823488768213659853960822267822877750438611315790562482286161134918712935154943262208770134947011023021427734716946563789285283384356597969266917133188147259194788415596387247910817471772221353560995335730676491236569263731051250349673602903360425607506819633700165215886394629263743710911939773098914406340125912382254232374127095729597592097015862907900366914991215751765239443927458490154476184141386681516300634970626123139822000617094653544637110791630787682400583022565494026325979540842241918019248264130755792504561337514072610031848020200039422959342710527541164538486525078610352773177305300741693780972018052156489508787982419329703681897765254292426453706732092783275322490967941063097733011234855939331240678410990586220276149027357838610002937214320024910733015571221558224398757946481717019790355445107821219016330161926272663055441599736087750555497814063954809352360375287961055431040762664677454249675445346692058231715951790979933367472279070196068065873809727866150999091988280336349551889426971341757198491956239314552469008012692427109854399171571910059895964747312850750073802501167421025675583568419572825518902966209395862138127354854167984805344831318765383542827048819677740441393644970310541761097368917304339051644364152500892686494880035013526593808720838944998469084347961952191242228686828249233995106364905985699187097243635344503258508611586936834338931473000641148276322860755497503442484402688009769694378944860031153201522142370833493967593620194333063672736424737676163469902729012763770170283691291534616724833915468383326680736737536973048668750270612305306710400541473072859147098611639117059517809571181926093461912639217837784727025887269431417891192010239596816807038189345538743275879671353324873185151371070737159900496428949294516374061821626236478081714356855732486005734147176655393986593593183094358776063823080260039419348345531985696351193391148559047585948268990191718999748399095906498685697543284153371989203651280019427295985371335265104142637395164953739708945849897286680271972338509159463285832725489023444691820076274749474462002306145865368743807207481667611565061210612202355683916878211525347294297715926494912399282436277056149339655008485576424276216848019864227902067622335232460116496812077730544916266814396688018789094004392173330173119216224018237742740390621505716645063987223279907733699955159563952581977190810027299520683762589529143584274463484218671566779839178963510831463003653662656353624635446819117149317251172987593801083482931784174133159988648198515896651870368013637802964122007097717128821927715074262953943479726419822295346184955695864357035074335132857026614837199514720883214327397437011100936092821689094100970557379098883460283829166861776408450614457868594984647619579237882803093041215812866007049693493345039689581039371078910739269735603724611060227886983289190629295003116145671109943023075143001305889660484704899695317347266516699435678033905698973144107651172663111079237580761533951775885700851587816217955712795242196273382604678258988905031970468071643220337450992500669338531121398053263797394569029614784087422056006211852048333242920658208985815528831371660597039103248666824021197173066198966301018664638049287963675536125079305254226187417511463357299734226985984184854729533066512620421533952283015203568229786929905119622787474130564525379400711638708679325226994307059929832402318219132267769063441509511013547772997610113318227423752269488979948740029594549567810884401972331405973766165385226371015161883759815903716104295997760929259049620305135790514892837046512594670802730315815024742410400809985685363194833660252058343170240981312185830469614020579497778376958798925031103749348196754303519106698789801018248332328557392338742207883126560332347683908950462899096838955061976998405433832573412410754293600806107575146551254412247694549809779829015037397634142112527198108025094360976121053335983083254695724220404928287485478094444356331971584809430655015427457623537950040798179932912022906560251274946453754167847780089361473194048363629758519267740366342330646398294422090200189029901697647105842758018747007985906113069640680037717144245212587923331327644529075288845922306802001750388089148578743520704089721293781233207056309836662925663920995775562288909344819537322145638035228650313282496418942201295769479873326186219327798208638129707784391073392103918192867910793661967348749986152129392907206947024152556519730605480154894539782566503744701733238682588846716327682063159860394399805237818973657516821119214253987767244591661836121556962273697546113370922233405009098037366128576481411728287732439489203194960960371888399005150724377934938413055859963853200892265175339131645541562852125036561856264277268867740707843605682932104040087599908854623148012506753267048585676453724286124376698050911965480265973717493264444227825084981341414009010692867513382888326704067863676631625392097467889465990759571613043320582217069053580523623212863203901279663060852448005942958553185528324902093315102461575792397318960987494018988325068169044980594790779143742808882829301926121249343661518196881386430614087612790428342236628725635031497348020724951016062273549784579017410866352024699424083825115025120672081138571166580049261391905500992048088174512906174658502412918586814385924923273017081657050992192260235893345684679863565512143661117463015321457216956331129559091577691027057397947866840050683041473125587226429953451972537748178269613261606307430531181573133673381598719931343957079270061584071378396554785044776203151583548640699219291860638331701725642245980435118130359441902693815177898329107674503008521854949939867105193116593881522263552096130136824203725296043550777557244653310334176358844988254230349174130724211288296921645802587569997343219981856888176722122995797980557755738584161109983957251228546082967778224031658089930494277607476623561855457479376445746640812227657952788224706053669980663223341021436253379330976554933263026852205623472089819936432770822602912334097479607831383043485878809700166978955689792364163834884414900254743485085406320182780329386474060201290801917890729258676645018657594259271934727512908866354975369538610690084685762353830083860978956815658254027795977100953934536624770353432346305416090645640676416751865039197287101566408940151512757098712266642593937143303219235970739327903284730269538302704860942207503172931566153373852111310252001512922426607460594181693109528684113880190050272677053107539748933962753101457449377771192641510743851874185183641465553972062151757957187133866709753887857499497618714786161320551090387527568259964956590430566153496981695803969423532890035524578226056029011188157372943551038308724139892199117855752923653589130895602629105984388424459783515778139227944009352419609435521635259552857532312650220710577659623839672281308896025295586529028789380176239256173573588873903327931182353050032903714600932273266260269096394396251109442678199269313462922667391056776331706237618812225122044668690573825175105783641687908406732864666610043462817911419732236424901757623761565173870633915664478349013721091390060176745139238806617601130708099755175388680378665671335339031903293603051941127718145684078551968555173717466270419686373291857833570974155034279078241809462461531118237011510200580205007317161005341515325965653608042967008201460406689689546379892346351911855400848327969956081550434518096739562971091604671541250775381608167945116475356819110629075723733650354911304031153162752839491139797460099460275888167957669524647950355274415458005280085461514066012198283246388567651360430267955394831843723649750936252771106811662764643924479800617592313604764343844851526868690003039698553104998201379698970529058089017048480198644464104513737328397522701517669305234309965411652962925646453010443192179577755729051505706691885424776659374070624078349811967609249014801186791244331541677504016756228910153914993202911652892889137025018470450045808111913032941734725217465317844731514164135933527570510283274052448167593623321380528505791373896027525285206283060302894440214108336470217310778732209279981112337467595870252916705531828400099619018419244509345321122496799146437839301245224599979132461135182244904168931386989234945865425349962588293836959176704127879854090377972462591875989559014137477077661981755513284282602844796197510990347616694582968627786980894999573537810315340493006242079613216479357448160363582380773756322863208552590842331678992717897376205398989829812831864369743780926131015981702827113005456482717743786452237107729175280144916239873538877844998914299044414497252497030780335552038272638145377710712495832137962535935642011348004644193930147487782520791946447768336337090755145554596013995765141622324519209187973707483032961964388340609341491552967660260496223673925268297947769901991486817292874706490297067982636535365667064864319869229255338612133797728108672716028877763462036788215045120164184450036651610407895650980132212361369897301698080032808930180177483041462339718320745336452404466986613525125329955440080552953443848422042169954387930439894376457579408048320949056572558513718910919749592450271425028300690036377965126903038120059089219024587346324517034375631233226196070206833242924418817685876252607539269370860262045066927040384433088660633805576265284062174460012814915303313032491427138189125623474891599512435501115068576052844663403465783207797301483235979322706432256531141961279661490238251766919044279117533160725016648202371876027780786871222102900419077359882812686093700030441127700619593410532802461347601650396702753382894365741802425115618954968416692234908208757945922902593151501055332548204830671317826491856833216231545734460716283572208574152993171250630585959859207570929832890349493193828927388467730483599078388167646103824900029921932233912841609357183975554933357981716121027592825501920764080471249018783800329695267208517160740360073064045221761159076485453911782352529753755926253963474428321450115702891952986770601896819084639689712741371142688649726561090903475930432450049473262268163609658127814450150236320304662155000865169085152237989851107158996869228521166954019536445921419026190594397055994010894419547141272647803984630594003675603965234398799533828766711941444844145964210400825348918615796090227258878315631143007151909025615884682769261809328350064077505658965489618943278198644418255590035798456877354731466294074386095960204946517901143453164053801608995656715060049792619424976071039175553648741977127378602533822858832023601914576273034671614398430268500781455098631113683254739979683123664992499609875604034604498041769736782761097783815348592103666705713664475452043335942704520176969042099005514890383853615579244210240688115581467062076442402831311787517883877927144650242248664249220570776579942875019032231222119984788287140009067705704812337358601843562426995601814690073872917235067553137637664442913443359287761259109708271547181892469899120459249714682240633425576128239874259068594423386861824768517985266092378251821195070032333708187864924007639803934885503325086878634522342025836930705301090850606413527123039442490436131563412606587192967159789340722356107582180167108921411187243388192435687564521870704774403156388811503994924538700635240696682652533795972458671654692928659335297982402733093091444632682839251656789697731157516283250540763546867990837781552048988613841397282167927125547662968931761258703958474640071319405015715817668957665184139261253070904191992960621078400548806643387988246286293595797422488641862792598969957329984773563664344714417984745976390658921496720702794468315306268818085393100900157552314385208918077451270853719963796161673541371851585204929390226112866207507167251441835632056381704906989530290298921862181918628185871655383318475742176637209439835542757540079402043669872456078402430407827774366869207911665902460127243693113279849383867009810600424162730272043242675057376902089319517529761286260095115508570517792121363205496653372549978551962806612423961512500144508089598698384157726394263174349196910993159895761823408950137147414511278669584148207327339249103441050404714708251590286794297908754199707855150066792580347623434162983148212969337837228420417378242578950894784778724790354886362658300630934830481579700719464418951174324136397253856001757977920377718311399135378449413404481014646986557743864164550578423095080222031019015989943401422345600321639119527468676902592622911251925460069776275894125335053579713153744236031595336700046758854273749248946114308898446016199475099041408584620102621567610325014351095819519856037593728782087599530092348368862221906959186013333605805088913165879448798018171736083418189413521274698156987849463180176553390962913411326060321272501434598403680394798998691518775657872619389356098669277615182274866736907775281459753112834761445840094305805379881979680301307581111649323253185984488214783218407516606561458617396621470873488670557259231776499829860351577320495348339462256538852870011999436716058168790314468726516938035068872534274176129132952180230521721768598936637585197624568141868712391295175339631886243179939856075958349676049408940600437769887423702581645070921736298786403222607583203381634075472696073682558411853782255667304106080444832348203568249070604363573373589081220117372556965833149192024531053365189732243698373476742869848406221442903532828779786258838311629899909754581056610362370461028212017322834578131283433254257801599593435818683689038362091988639797790361595142473878293408316415954503427491772071463568737573023630518691601056580899723035867005194617869854336960520453093774988719880535174470446709759342306404415706594389224109850632714055820017890482198878901966938652303327465354038365149090493104235416960845350409534730609730864101413786949163505153190665148623527923526773367855497551605197990612673743570972639881747496210710333608965315435498047868548209732619867674524705727555034704316819627581352059871995492951483369291400022832222008570590586090217316603431443711836993505123036309129309045529976613347420896163457216880893013832701324065128739807108120851684497749583650958174704158128087072987298743882669983310615089364394408192572189959121435129199423899689916755933270934038867252309346112392143126726337154661616345520096149975867940467272282180131241041488146357338844621897719761853280125915165976529645462066111107452721851216662802613189195975859426257113770769822488531599962887220204232624953866379222870354981611826129839171670556643421979895570901427431310582337356879562844439060704882808289386340293679105805856957885874660384485057720792892320028537696987716958144437548634206282812249454647537760691035684763884439787205818263368411595684868376097452553724855347673612020341476412690645222465139619691399977446015446224088721446846755406647216404724124886988193367510320363858403855800117090307769359405597992504037164292897015104677981195950713073538779811716117193888294561224594387833495449724181321686391491788476307244731493242821012320058369682908446970045736987270261304225632088032268591975802257690358824517820182378650151422867167378994674191776782944818919425232589125251898686755141793429967748671491199672926200702195074820997130686154105362509255878918281838122993244034371905514256026066061977658891844868732937953103853642810191347537521137528125825899097714671692290031467160216358288038380799979454479622241852988378959139212404131718305693795979526631480739971975519641653577024420457822622321423008786020193143715612239290406336952881396559141767685838465940590613287062297202280098508639041680537379183963468744775175090713775078581121351368002933938473799581797323396457816821508922160411895481835975673460254445832032324668464048024241610835194376995155681320418719953661343430396453969447453867697360987998200959627965734206103386159371288410671113205759082658460655045844123886272479677254639943135736895582593115786918433059651748490899778868154242539103064303938227562108247768896262341217073074281509434379784969945696398674691243904836390518343257152914961574162360917647597868599077728799686637563842890752536647579958950988986131019728802310529783525929958027306736488099874007527175338168772862781396255554378658471076876115508698571934618417245836151138693263237787668527344117592743311889132593297949554478719966632061665579507646314010226227623271859453700237606382539530018371894941003612097498758443908103284955647622619499973371877749852789688487217408257888893084700777761070301896866669861332873386388880729239556056885005516541778138758628247062646468897575637682492916113616758929716793871149790312229254754317608660681321384557666982785456443955824104442934069671382040367175045601131927581706011786508004665796709266122926611106280723083391750873177578491006212444106926245177312505165175157411772209288381604222681393912934481883989345925542337504695424207690099073994368800244800661162439157992284886320118044737116616117629458103416856712544304199632212920298744249123898344870693566993109659172827477178813598076279242349794339179672838254503787869982194532543851696138267944638849108022124101841065886286686669160478776139166222271875153383637211076128201848157024163667157400324878680921088342166948239111653199710966298759768871159049264820042847408490159489512114804866925398819928742435123689887042442242746118710921987145606612258989861046017296158867546842625950600357892805955640554825310876615633391643091309773642396245090775738362547835303869435808118027933832135763066582343035787638694678717713767128994204695858010829067675169477343173156293226718404121055404201793477310349157102599019778796712800023191784425116096534114668652334730337933890091134756229288195976697920484726675695181514629447634567031566168239485529337575290327301526892897083642201354027753146822529553056471178450287027442192454614355970540443412244880554921664973922844915878358921101699966828868610222473959325072007498033803823756308636311726628814926384855908607076435241644084688209868495631250638591748617776766435407926210794688457832146465699613264580422430099326563033865126451468244794800222466484910173613492532970693637017479007021522142120663130884300424566804670735268712740198061310071023635487746920428200333328084999167306885110127309216474725676543975876333814959214082510231200883132176430515388179531303065902127761378675312628061519844115002167649589412793166926233506529081495589182947630709627170867660080109291529139556516301414059745858356957291041666474528453794544797885939230335515168649811732261191731678260858817314558369223904146714833990471283550161900448202970799929296754363558323695934619935469729990785340585446532988881547014678306889075954424108469196499634498460082712162161731429864393019183717647713004034806875887955713267961834935549939599374759689060431127557536098873797629824438148294723663745734376721088906218900609688755856153229212305586111620825352541585667647343786748964295881192437321050455483620020343139716159394238311358462569168381448463069887564430007222463743209363469116097935286685862186112946042368061676968908645742142114833436851135942934635431560427782522160596564736186332852385740253377351524809990693699320816358203343323502049374332625858820052968762269603677872010934828983024368642196535806430468328680306060853729452148167060836844989206220882344017653072625813913033048769685925221257926425500409812735612102693674482072455413280694464077193066466814768768140233399966523939464645200743970292494689295630144465914908096225942363758551659111295618195067964340278042389316216446874467745131462656141439811471640705628594337347956564547406693619989104277516497182411864395336763280054860000342220915363696490714595939745154971669667773623262701651878118388211469934148382805018104366011557160235363652620502237981109574395829297834426208883879408531608141645659813914445147374389049060675200300437011453604193744407819733363324281668460115413388767049726306062463116844348777333478427771169061392736832477069848541545866397674845770216815204168937226608366028418433522701001712573057999769438997260180466184110038558206829239539524776161192122397590007117583245949336074806713594302196740212699620271764363403511379965344697048393380482070355672050779007153982071775528714689878589019869215192595855853908246579359457652990148105498196012163107356543186174162851659586392935914226245853888238723143979445042378507887633196455135314697837172486783055057487038396001293545332715011621225101348133480748021905443473034849229951043161500039036258609983390842659700864166069953250735052226461663205220694210079922724904223884179501510687078494686483930035650153211904742550644236140733140857378380781167484440306281022460005677675508436429773507717637286182781480771787354575190152987618830138932530486673762972075054344251373607643802868603634786718930178532348280665290071921386296940449682006858097543339133879658183365456253957703867498319471899626809181899901620291827204156628135181342190516575556677605718028186833352848346734605095038911217371751896011411347436663648883948629769812860848667212170191457957596889702267349098079808299186128008392705155937058445412138661552602587947223928921643781958713081542640578306192361036849276192521651704264478321257059924888620111917092171635158246839125045084073299215936590271677592680829889693363467089944923951382118444517181172702865227324723304250141139533843931154298926394469571677982417480825940147289214196011788238297233896560662242205554620019845358949066599332321617445068288798578507234057314903146301510504601061173147943247923454607800582585772879543561903344048965785275970704495513877070820953751397838904549928405810544676544113062438101351436853375367769083100877368899683058748759013860993922373720733210022331873207924092751588247428695901125852304257338592847666931542253319812854236988026409031006621476914896947600927490249696961224734771972037055107414848329516963744182544510468073338987448020169835641851074034610723197622793370272685143535170592315249695630570942606544790973290796651309318721321170936196488982598269771575840215062026231441565989118390655098933287902191281467607577669924805976957546719743123732598796802955745313146540151293980495463987608645419323710876835054130424419352763005335317631145527717059004611285086117646712546870880393656823740217030705398385599366205293108389765964169144221233736504175507548985687087454406170927670178204350910445232311124084364776691450417759698673524273412631082309221865461297097852677875849628409743414987772458848792290668087995619978337070762186184512459750298685589108647362641169284754008806390399083564868938744201916351473272480640290675115140930463182202792045886416086821164928003760433646376392815694734478988694507872761706782606625471207196205762815991859214626186671197720770459127483438192739155659268064994180750291824947201538254382370104156971821182927411430873964581970212299149217189363665670129645595394882390852626040647864514675563317723162694433952346890887005898604417348382168575096037115053407816107088653042613800540845526634202658311414281155611446650622862492468541330245147664002753470309068754881044230948863849747775279708422373142429048892978974785290757614233773515840563701702098738940272640410509817071980622456913682773243245249335923268807154514577205904710298158750745469500915946649258377696552859212892935204095092262632440609313144096373700591785314446951632924511840528930549860769690755866593384267845405773024175148663312362650756635735654906084910137530373630063727598172747989006788029180573555993972728877945183912179506530338330633354337776368077106149395336254117840211322876143342365051684000313827042757547126905050126198955677291409073582176379611642398604459881231352774838257692337842212573650141928911069613382858960384610616315202823883733378818000934588757259819357433720873479196602656898409564611283350548299236594226556354167924268675603268227735563732657497497150779155092283007473183738782042461519356011616842661204472369851458734018063597083731531060560948839809538976155338721282206064476049317188521736274667273659356555332590094067100179386478515834247010067584210741655698087495244844307378095836908616435839704409754321281087227064689130628180894604508353854035683855317315950562807808972236631867944105831071866744731325981553085121772376902813433269261773302716583135774690098862296689924282180937266617137220015535843087217730957890255363612821493008036843886483578021197197639058537940768099843533893535818353529772008994177453469990782695115804835455937846691330955000559473076147039088593428323220935659843070467534962118270148729876958314485604439904247152855548460896707037776839348467735142859457104635350216439529299384637642670703269252353565573583126037484493355132513575507935699937272514474786385135741179649139806538102495351177977386385978446476651722403390976524979027026346959403117054969667395427058744797214526269367794580933846108705084548465202571189350849594288644627429946165706007567171182294069704034549756087136429578758774282308234648884513711721133572611869717596873855940639920761003866219184906175900727106439238876451798838481962550376426564390762923938175376118447149905593007679058118891293954488036958839282953229252084575093272814810657938334778705535089946783342972658285855332825681379113916917103265258447319281816363270602678157825939297360589326197401951466661381523429690286703188182955470726399195706856755281721803037838244806711924551794550663361744117052539539403468440884591075979017891935501072174726305760975495104526343659238747657122844887086362113907840455995477733287314649790966027765931272428119554563121864211279308217176923889164042208782604339179551831830647546720005843737439380321432772525349262848285406221602179498859626278536756608223232725653196124531362196407203178106527273624793565638006106958241489781833806285753589157160505990772256344408753121716597894102193823654707609113714508474991164404795280183543634848556116762262211980657253731811297688269485591631698209204177425969653431698261726566492465702609148301241569310406296531112292584580462883342753224429064910520575434112598953432259637211926034772278673565300290752102878616186176648691992890786595999367365129138425319752706799879175250714728142964752985333014534616292456001239138976059054971457449801814763471257516415569908583710249547032488217576235955253730488487362259282431445875683464360902646229357485441222875137156495619987730885531881733658737289968001726585275597825077321334561704542798090889796867345247159652589621886058781643657154736360383815014734904972747744069951336621597891868447255833515061738190745511744117365713856022890221005784783425033599511826297606602639508147709064811156611506735427592938883493479981408372628957262021445498948622828252571783803043679243911418390364779178033385948536336697626377281990130782307129338460461313520587932447444689034759771049120191985948783533927542964170897890397671743195184016531757256716509938147475480363016451280923406469243731427027422874578559209777708537118319165137934443091431911082377131320547095259770531003905638652937461879829241437570809383741725865015729434299380296962680193968252136924595762083083418118800615346049954384795710768836210552779451976353247662597888749194488479919331777199307143367245520308161861726490003323810321606517308777303433497928438100697003130569693837168479933127095118186227329070106294783007831776246975232183647978878965464390593944351076208682204809437616979215395002912898265952853722626351067450525870483816899112535508327685700724415079671126916126105484231321211729953201351560639840174516740203191810644071223304867663859759369385562387872784956059098439263696101528549633258492088902977691172822894240221507209778361413651334661202547277796542121625553234219696199253771274750434425832815125794852633222998889159965382493430772028398798672261712046590126657994468694687016426274967464955761162448380806513168504036042068084101221171114036713685005490562228191205032041330183482281791575589316071780502132521678011660250773986131155739416633864923657327939129530244794877818443268716193093110704926541598926655750749370094622971274245348431675796736951366221599406583526175621182876725053411333469685502046211695580219278176878652510543515830034695929006994953615378943818069424119864270871785828994177384616947765563492977962704837160725951057571618874478442982592754622607224549584960693070113503557621929912312802999059254418403640961135393071880463456664201193360479089906661520493362141984740013223093184361639401473070882788613605283796809806381764189684423054645092326838518561141928446463969524630979551122038203231152132285368436194322430913620791220920088508038860875222397737973903541890180216621681380076823255110774334306388266946542801258967244341637024061094011760742483661945633356160318432474271064197187025924316923145859139288130330360594871938876916619148062586990888842753168149715298377063411095735656040518231266303689619395501257453727251335006368574433409617257613320052217072238229092639957524124163868999057632838240586759430002872939546195384813138263650192255480332340402740849560721749570436066991295351033657938066400472627486548677390237815779646425373263476146886143730781971148401303583992748755338160685831485883556928507207537585323930460789168497516452847861752527140111599500705465870222642281101181762960707237791220782143250905982489970221286543572196655198467516609609719185936601621412345918519639279534874415334704699149169906317838635128436195532981747118836127300567467354838769824743619250713243165117539494039037091332556834702345359945290719171922693880643838623950698937134096246393854900992622805690261201137699741355206733934771508417546839407257392951390730227812163896578421569475019794315968331139742886226730165372369635710015206065043351843137737397056712576923415245843200241031505133378616774273845694252709422869078504575574040753306490717153987770413518964323496986169153456504899946537750949217044926557520623775160173127888657790617913776274422540584240774280595174466612261007128804265303047737298437698487096119552074752929291558023355162187534236034031371500597066743082553640376700594848057184711142581397648579598504418008498088095555582593060648944947454672156311402442411995268397658614862269797371167350393762598289167964507520538626568153535860070859807981765296457843858704569387094227050964964086594705140122133849437950742476320124385667242578850470861781183756967232525220206760901042508796678441827449146103963091699927256365096850612000206717388924041802081428055106446523826380088271213423397257931482806969479674730239449293064532490579990973361324286775026329867142730524890436211764688246573474110195092467207888851288762836367866727446552576279348952674020206214414053093752078971535747902793570375894019777695996832790817851450573535443683927599421297520251174100271775774618767731918233833835772845821587046714398705787277121305598482536324062663649503919271199963217108315062886555466182490852951793203381018135666350341674556549340588843904808184805309094584206655866404733083412114349630999069544060074533008484262774938102243655286894258856518714006702585996877290933013539750995961579647149484547106078157334919002302432277863361554899143378452488089204566291448365501902445300865203904163845213494449374468031538842385535444994977157334145730327818522362820295809973234624457637116802846908349086505457676177241178731433076446572832521030615800171451301870720783438087763528764604175267076372764409032987886541757512274228362099647146307678848169164887106670428444289671832630120909750530625925794425195149859687938314380166536179575000431593942378038137415620084798798459511585914851021384577603007163316662828878932689958287082964725768994488477649564888074364278833592861762078900049061036514432834970539268058376768846350080781468041335532095310310550035931253571892129028194194232446455436779703915594857437959602093225828791367250549008889456547793356956362750029320572730536350568735163993391023780963893517855485471554509509954597055137687464931258549050663746987398572212924514936378947296505177146814089835203706462340774254987565474096381255685379635976254770117527692212104477426013966954703805413951142163560585021356390787075162023855996891516680196528697634711286993412088194622602511042903926856816088159876817156117222366121646265507589736173895787397427039924328050114506139695610928978263458308778683036172584946883641523319063080015693851887483752094174871482502558426494859543870403293580724139311174137220033075636138081048804499980027905287082446688156627971699803727828514889929251576013401383850044735205240335581711142325880955449549511915856222455910553188916386207194530873021971604071071064212174347696054910939205315611260859441846680572062988445896066486428183616850356423568443437207853817746302178815684036915313410125651322522203858365481934523568650912935518383405200081463620577682175757140861354136679729189943516630186595921201053568791090873679474525761608389410177764529220907525145694069606023609359726419435975873765268862092616201961482662069618320677383493882466146304909753996310472123284578233174999100607306214689894385592948715345262470885530861176350229987322426207637139691541077308253254620107346705707816377479965820679878346179932102218618320566879842243615334477205800971374025592452512153497595024560322986211538943221841023084453152745081970245885311177326281910220975719625827232215105386350832599444513381520259770304000000829489780441276015991676835209951119251828428915724522394942348905104808450564386764978453459047471616851036462627818228361330096368212263281039040327048918109469551172802507376262770210681897885331865001658972605724324475361352127119666408541737457891940272234165432759947500479590927226322733323273097283601681957085990969408166949884376664831766043569870473956689260265609879840735443168350592290675745249569461843504626574007761546099264020096646861472354125264862620080082981403006137169569508105037042224244411030747477164584231534764053036977819209606243010678421854014608416012275981532772781634603724238257206525671522721550207437664066391329322937516658187848763962142720461644628729413229951902490663071845532914407190112670439459764019967424341308391155249275185372520100494062776316014896089782742600527546033241088521379995621194949698523591773562901124461201884218351319211528356524841764798171554950548265545247160470850918968879366302782379279123374666261403034718862670761171625245811121746257875569947804366306509613150640500767161341960595547490669508958721973929085585365383361951951011073926234505778478129360512224409457768665887090073654980647660308440317684743630366716582681095200838388489419443461720049351343946177103523091380162051454438319549709756353187004589709302145284168352165600903167074324119284086849529170327252106949982706304914160539498064803610483951662758598163491881074149180306539509373394800497082282004882219810015433070607383597290642017816447844606523275144081975413656304809081301140520829746351294829719558647097175687899186384544711353473161362466019419280227679352363648314096932320290280450156973147679628170690680138800489437456733666673183988786205399629390392061336742441624363547871214669640502282348420671475086278524347837702826058788351734585407313317164665417466945031684125080631758132446433800519098142107221918064919459834211181083864836155895323449957104250781300702081917246469012466524008996836202217321159330110425809763387077087151973902640014486746121103485742742431622010725717092483225027758434938165207822048336175719566661078976506814362034523212642981996009612659476874237913346904115248863513854368109954803935895358531046548518975299067603941475556736492222253939543494871873525690378149749820080528054036920146987848861176561561578683488847497235718353397281716202002645981068480028947440794221171124257845931318975970384437308616348341462958353609990930455347587818056941351818982832117438818968810656586042533661224451568923527779764953630159730230382662360654659042147263656387995126970727337451563027890383711403306559155903328790601081923976333517055870580769503265442036767505175187973796039726191232307178798782578202669587567180118527241780680332922046191910745695201062014111038749375191659597435100028971436625581914276256845928302386341743836288829828678577512228729958698177028008368629910883320234229830095586995936959770808195585969655610492318300467852820994762936455355508591562860127671472521340621457355159293454460081366588912818018777526026505151932272414122386386598360381489078141098998861935630052013412368288547975946462204513414833285240683320046236139162903023214503389834696648521329750606164940795780661018962697037769130727569036531073822479054083404628490928829591822002143534151451602561762317220931409853744892284341531776300670597067406397872847485462329029441917427934064301686814923709161248393774498373749868379484417918807542948658523945797362322538550352129153838816824477430892885126900201598384597113545264898460122222265459015093146767666688556461587042126252792346170186403406109598314043571676011796345242400526674111012760718233573432036185686739858766205793426915778651810623176294646713665126916359825788996524719892439673920911783398541857387070243091642250408733255711271533081798411177104600552709735013776820222682985596881934842865271934162179547284557308818309466961930954040237795070548416976602990700035864066719674580384504628410526284503193397710417223684935050038607362485968636578422827054970680688190156511471907065825200696733838471337783008023408112069062109081294785316056230177173482255147550812748485835094972314137405062305321589417902599389768944591930669906992197842136518125507402939591592312023335132423584153585084948474716598400647501833133534650727048982554050068376222196521307958454858492288900144599069129027067116768401521308003250060984379755167393311761071540824826912263062096304281669368217396987412485173403326202564919476454699960589121505964980400452170909596758410786608190119064468484234196510109967976609626759837379732962117294235582883496443477086762835066606869479975560455649003082506153676646139663532601496662392507476726251521175094056146211346670233114861385631212219441625533329134539805381957276197303919776765548705767639573740678962138146817220674775072057998074006894778937295670774546708492246267136960729108994759466974523053864434851051009230523220434436117654420048595025314958932887645516248974855554486195597087588985097533361381609179437829489805795147685274271573834178620108988751822813065423489699906505690044895227594497940281128553230140700027268917605433147558165864777291687626285879987114832541705293281516532796632231021984523259647352383907915041341667607771138010570704935025869249495652967451963563154280749843794285540855104092264907915951781964268676416875421709096618450113515549623173516027661710670136370462510284495829068006593498592995147052855514636274675596819484311433446351604861055054233184529100609347697048801513959629033454210277268134686792979019806160900442143507047777640873403338991394363747658916558956101871959785697476899708876977309352865844793825767318541985858351184786920527391089426030128218835554702973122545556396043908000028820137551803151564923570487740856637376513293707611887985701145622808319781646211060409368211088991845168507671673871479713677526831132417422946045335508760607700741527930094961018867275001874396281207226090894698140211346176414907177938681901957597414256575146071492321767401069235835910608917611199690002244441500465360653148892545228645648551731906226350800718154255663666478529539554415155409123460075430442917060571445143984394931264569250420486193330380491755847042662154763737267978585757717644861237766456373830013821801268996746965150893553085873733866171698094273230208477076693691321084321295602322421418910382643393499095749226334930521965534125788772234053261810578464320658005550511233143470161658283697514607129748431290161054648082510752075681066310351455609741116548849116583786925180820261547113901989716535096350539536528039614560484229400087318376313697177895533497179078973526266730108359666719275324714233151335020692195865193088970636445563584221900230551687354415564666804878269721521652327351298850151296636836944152947042410576799558725338983924493401056143988148257145128006149427701207673647836172297493591828891226408962166924585810428046324609192170854285537077506958982692431042664550243034579179046506192989092109786871943605457537384517400225950524204773409869886192157475387571857852848093513415813329875462629166513775834751822140677399604173883666454408073777753127615299296079831464941366271987574546297536566486513142804665475000100732164160585747987541307173585087118458226981290558141813809642203870725396441500335683283990228379496325628734391376052141169802428306610188150312789145134567447974041576230521094803908353014713560755517168119793195688992316521857138000316428742792459103555081820724148522658080212826539317935395025496866335454768878446702311764936643781325298527880124647944052940929173794405441837261257757004992933293760310700358706863446107996579995543271015521155930656052681540064647044700147869438102549887336733402796970783554612649003263941835863237408895226218662067874066221424261810103659727254938609545754819311143896844865820338455045377126255475473816146599920708584962046472678347784128276833640452358730823124914010072893037729129037689092928584302746804077410511357086733265512005971547479546232895932914213722216033949356989967484635536467631704330095105524906247926019072097500344665205429026127908844048151217204573255642622458296884235767974453197625545401070400753722951267607277660509023866872924462356518342260427958068320048791614867795306660635685727203848250895483907602542432541597334865030057292168505966237022183935529299644691964086546888370694976635794185976679348110573281292051198904452686342605353073302936146929188070532530845296238577753286447601883447242019667534310928239623172303409039722634777637888336832747021743428192159559801908615518034594907308698218581850562758426748721658611775801277409741285395094124682530163463164493171217411444990982530462298704328475754995776825160838498152771564866330205069438950120320500573505158506973521173876233019538072997541086227262313099416803489130898437183315693446607121347114510134217025904848008808919903872258335249956986123378475784464426513465260545238654870086701693739546042128504247478351260352607982542746986879339345089170393611955118007491629122280537357545344874533651087058871151205795303222617370522980059979090977713191206257057883181115156814281125174750696828906035868163026648858209202690896477513872291801657392166375036890233042593928903285347717023937089080681444373111908368442786465822145548951333853770252346823051996021531856286019845186028294171813235150342817150061807199945850516393013434632530276046709571484069137727100928639508901077801128934022873081170070396144965906724413826914497263756543295237764245588538931778169335357568759088776303273156456750961187547775675094759014753722529586414213779509362615556098080147719254765988137992050418607650870351642802248181345969466971523430199827425250451762171494069047889743430139055392293284536950304631937582970180909106644646814797365272845654260801729884895025949630419084044294896926620321162663889034461930105848900681360125713635807949581987893665364153143948129520640969216432267094969267639453088739073250725486531563852649167317303736681873868564243747123413776923743428348895715766586273325015590232496311740785817827584446248959814739705420229420428129844237578670060063397317034399239764128940613349868652844635005177693586892609677386365458371241514015003656692131481381080212393448336382979835364463800427088693673158213110084907780355399801866339716881099699931500887147305795206149879648934780187549590091391918065887587275867366891350507267004700391933392120365429344974158477632484046038675952807318837187196340731999746753560651660618091115173324161859816990628723049206274973950833929808298173439444705156286660810364370044467168968713948180462053836240231238047327004567833076477599446570259632427972352833653873175579029355641683281815094582276427746772966422052645595735182262762300756521138468950568822133114649442241829870293557084825750835196848929604409904367230992544503039010699806410538802392582375146081779553601140172191112609844310098232230163345472444367348123744977888088955744530808959257705663047797794526786713226650687538409675991874173209002507734344453849536373032142473298796064531521119519282656360235315654895122462061322940999139779759916725661820270089420833630901514204501634805014659608592071065524696826914337196903256879781110435109076955237550552215494346413895402620698336232043214613401833455358815005507921029807936678695447673595082249388825903733897415061877872172741270252166417439907069786582679995465617528484658347205076933220045928584085068321122640276151471071165392422189116595104824837319862321854305987462774896788498685194955804924849520380063548759478285198894957935443414735846307913144138328595191341944602547257042896514695327070140893522273464916511100899523471408658425728085071603328203879589303870969464846415949669194861549774227048633602983435402849092700187115084678396386824077916794771082855727380172655748934913029722108832196902737082442462787754198099003968646463773963364670295955234379507531076520443455904478338937068107899627002512419977706752284167332583926584168995607142486936549214314431040215256753296356872654214627710982200543261407633093234801905039375371547674431261247696011523945381819345186311660026091575306480629585241788554899791919468064747135715193532641998964852523084986516370077128349076654837543720299475892778673847595201505576752645007607100743804453119524190459794093323228497019388787309183493500126038695715212630836182389278178425893217984195350772887711534732025906871463076388037709371071811059482987595174900482990037590147660491578736624879253578501066305116424434581874266922327316089162005111039931329990840436768772356429424979383811685780210438547583747366637601110210739802156264400388758262970889787027036008956441790703624900425439141606249277324561330767839328184520802568691295821450713506170282046856086613401487798428766197741943026287321420628551930233694229595863924403752270428896007145190380024709932292802390753977493472852058883965827978053726971884900125102623710443541611962311222955719201813011448833843144070232779042428736636704053436604156544289851606208117599604625766233396976624013418886751438454858122064100632420718880379847440374105863686085523696259144915805490648081379683174912356704744798450484427168251846987606943382512783316458140041612876547129873101669723490654148739196634990959726284011667789188613823856915039052984880122026846863119083650346892463649969357872614389404662915099107715421915654461958527095647239353308711903008144858193751174436956355154012197812157763090446147096897633129693343954053860139522433606876552285118946566539761819371772286480892596679357994114230686403083996119510125728610086331834374658996696844523198189671400130280148266866633464424431058475500189231310596835185605788217099174809074521766993651325389166095511308363368260978964031748351582977003054659536172061907858492531497792293268849704242648483844613133847603340736786249997887740792369722737226345628393889605240218473919835668756598841747533898663381894741998196678493229168071706032399987275288645975590059486089811421261219884599191635066380673016231178097772870564468382248500495715798187572097883718304023799184844609424094269199918141882209420387564209383986619915826646059925969211035903769566980366969418672395985105357298048246891056605346203373510970475774084093539918932312644549162003809969349698565310084203141630503935916024971203809065116612106034971777600451557003443400489860914348023665620907799085048170428700916991368468291839488988478459267334570228198464025713419642613446452168258049205744136210004308491947062932557379360145028832973755347066266079442488341319260213390396951447070777329212242946330421150319847058250796710824482803089387602962866966956743561032905399514750432246955459746231703093341029237756710595317620499360542381627501430750873402541584441148153199740980245903362009343022988910047621505002911152079625690235834044421173988411956478016399616778935725079703615016872754752741776575615831756229590455907737797636646891262311540660369945212134336623344320158477939925105951375990084412683180856075355763714585655561352649955410424392508736525391671455869601075691341439482539448069490658972026120246717178380638362671111042844421468553057260355612647789293297455687523063056659862855443957931482283009811835298643499683188510695208682143171035525554387849777082967203103600025969347148073493761670441132141119198001708242504613589723637337784476850483016688874346213846850614393974707444595339239342858844682265577885921267793701653117009831375597927863326862281552102458264702933827318491626960334652176012922493865859192947307182256338071748058076640550804727218650206417744704892616641516401525083393276942430015120393713742436233981929067195591195803451334180872505356206879408257243206422306575427132440333863932200037627303028786192537718357084341556420695568203181019281274703624917185340423198755376091867023333285743896761258575144674311482381854421639402379557004483205425470853261607649970580208556435314168982408724026145075834086478013532040928051733338416441563214977466096588122854026027690209240502216578631974779345568221164311095416810288060004318272753720028608709475352256762158593838612082342634098291887049718373115615650307147956838171472544411953467188631391776793445307579670649606222119453548326638020043423230542152326857054763545418276106695385172229699701564288475292631074251915891628449620208165709077217253882006393842560875644650258984737560037975124393046651628348008935546518113537023229009159411971358918674418723039836102199768565567058905187630711480600418001606609901359105225787650113558089472756839445998183074663963955055914623789556176874606789547371876904266700849364153724971222693122021814254679364710484640738850477419364174098448011208987337082758103982137855267772358973888214710637706920720449035895009499928563059509209278458425207400602664013451793837046463616875154263658274868187556714723265363118832860485520647566443507524688998285813773654072284742859981687808100229683384239065969859655093175802947116638147691349038993598878111764159074144383249126342770246726354681470141598437664183581923412321480948710700619625805387416432272269847518345174049074346835770527836837078442510643291977800391028611821174925535105919697979573559621729144673627152327279418854488933934160886408184675611934736829125639077892848074174197776422138077471141993462444539303849082153306237966467896217505478576502698037483443228640605952837079557597735605087351610442659552322104238883937144233059856505484517270059084202640723147563843629889964056313756133865119756561732962773321362107276597435209579907350814227993106250309885690159559561042616686024879022718265759616900865592356714740667235070832160233566288649831381557293166562917833633414092592350809798456087943858756974275180542591915518055017026956015294281301725807675904883257960775632847187120486164602174982372138933569322147341450850299893007598280325993877756767131469194518752478892638294808207811930509527972925399061936174762568491464565509846206793131562555785432034738442612527182744618952645190419966360300331076078014519086879657941326625722615305530573695001786277044162704188342176529790479609133322900856613479052742425361194946470445810596967557411091049979112520981470577940960829681716543934180435814186123872058358149097006157274699748705325625767772053261342744710008372382665563371508155731158973656077077839429129395676504803875756337245500080464921654047546029992872404489765632893768949316654887087148807058102277524260350225983475351935656422216104837896199886291170013195891756113096680332438694205912276049283530485401434268095015522506970394084444731959177172014622204982201984121004478866342750558152343152158997567041481069897378249015084257881913329151265467864717389894974186316060214756587764699487632801578259890664294594530786441801764265686312095485435223767403671980118630736873256177160887463337750071337764512435109561247797797101242939455582699537123826100012621628757056499706338227212999830851796036414263052373910053215925422570242728675428420052922345516753432983895689734724714325258636921454559416447482279831855556743812101682659051404886176565037208429422769773755324793299886364168317419425467246468963169148563804048495950159213646432397986662592608811852204081794786489473318376057521827525784430199144920942721165951122561138924555180966571369810143103987792793286083998272952752486419716890239563454796886525564137435078131880422470581863408470866819151791505927141855465703496691992805075969963904279042632749588905405258456277182070235785761783716902723325013701618684602927365118867486898194323952202574387460222010361042334908908709076988043635771294910114800064446833079299696113698522351610087159307820780463707172016379930219403590454273659105446409645943527905651088456202977899774310053323317907109073364707112210344080129299231128684217170051335039153996230342810943713404584550944090793429319325664478889961540594995328242663162632812923075098830081604086111227066363775221557153918800536580611977691718810559124464546665921161947302604694895980311767924053615875767816502132307812792849064115062634935146725391969857680953288589286500075240600747404604572670306695680371027979606704075532850571872485485966507519715621930060871725592324976229651459333983375852530252827797949837561665503901991572486455267938221995279366372562690813741329001199574293740037657748762240956508711066749801306526478704693325920192091085880165373494389267363811894656557537849985874007354406783905743638147321158938903758677099782211580427056640989384246037411541294009446873384411147489680718217682204867321796850124338527920283869006024623256463324195525975732369818001975202144223543265614873563823253487711910788829624009503112621800269350173491005102414299058841789635007395987840595217540598637522907611847799414170099326848787216003539992719936110876739605024573302433897689241939171464340352163551981746693891157917691212157508938992662043323762581994411117125938635617903492315600477728419887844270151203188532743175244028147909043003395495247107751551012111106022864524690078934141312207481713200945524095003145907990187849700067478682960040773113835091516994326671060361512122350907730480654101518874217956057975575346161884021450503030915641209102908907334173280995858173125889694221336480755830898675756075699125583693152388674050422505496700671408208929684209491698083530067598723454110994163009964871564662920171431886385413501749881033196071804991220143739556892685105050954617981322795285238334817562831668226315317695727197785096343641429360621573349941520005915998190609721991745960037794627084129370864814546121969306174189759563132889388351992690772623915356665630659138852365862983104346095156666845778939939434938399293642945158772669054240815337363331933994126341129525795785040485029683145290769907798860771364052490014679394519307357393723473126659792752177733571129658189460974298696737697768012280528534258503149909239719711755783936190648426011241251994721997866800663708056706196930323832090515126297211032075801396277319894663074453613607219774402499459722258266248078506817335268866813578333541451589438655651900026587592048975436569472357471606587409412474829587811751936659735828020466836292555370458096428945396211557998020484267354891935642715393829917499462068122619496323130837008730693100916810646027031562834772868256291906720808821953139676822991518492686945499380343577373841060528421350242880043959708982364373908451760856028225416021074139555470708748465251686042740195745275973971635188579806623246647638640739853703116875691909825454299795157945524496496574403984958238981561307086100380098272659079459827695700910367821728110809385690811323508623440425100120851453487460822665013155009629333788160471205265529055225782819541485414106606361066988993716880261091653816977315958328868734663676165971496420460556877626281176776979142813476731512035281748076215745770863099835089767433212415953509362352470044409672610722323195356055736799780132148677970867393297841843741353958170420506529308476740845219762666078514408191800868869283335958111813519197454839610364296237110224178244646224992064860037560880868956789597829982786375981650825772366857852734985219259054041126233770538849360257297292320928089447108278522343171856309553991105122259406566316488375947472940830874925433895759646604719044968821880042956361235756656918894829320588591165894835937794156156693963207697847075009840118256479466517721571690011302701477736493911457182612577414485593919094791456585852894383101778734504131031059696285477160608286084768203379069321703689783657709598722488723335913911868518791044768905030950921093038291512389750516932435861510828149886496933254639130691608033320636825602418855536104089077231415335745671085339995213754243555894817786777068945649389129894755427309762465916638961112531315252936313936036155500359844421390031077224909501596417133463776481537267119520653936643017519426970174675051654412338560371134188994151807180223822446659173410466426541378164529948442094747953031707361700543409963551464577823707044417287284018148934884870083760882580533192051768517889089709513796870529892551494169242534010322272919473225101074647123867077054013974469441485859063386873756728220585561338962624850481800267251249529371196728250052327395223343546342034403666237684170778803647110652691618744198294349233456966190156476615990524741939953958558576119375384876570783530033245853771843058531232048018708093560771352132993916896897027191393264513348197892342176692526937033207321430162882525611325337107309699963583704818963723286951385601342926788061621703079635187153130173050975562878236310687545312674634976736451153298369896482480949402291525716044934679202006617877582057450985060291677479031880424574756237571688443108037156135003226357825012131986172611547406699337338160202861181127884036391727301000975400884307266290581630811341122008811161956007960119934554958998272371994863215795054721937811723862164375140356258806550597605159118047420931459067440142270879956809715417214775451298839041791012972589222750794799337006150340807740058436729015291565090493688083645796435820879506063752327959059027704388982242232788442630282491005353353872415292419868774101567228109315296831821547464463681145235135043831352465553905992896180631929552128815916347397390569999513897317545952144464512656121380818306841333480937210005460022997673017203163680359677402838729748145881539251993500336489465456861296658240397886519720862697001237251801056905087296737137938936081820174583107123721298481129827278564553909744776322025460450925530447311405760429465676580657107956578080163408168533940899883334727087102198965490482041497725293436793129815496314520904886776308928700539055911267723126646089165832828477112533523132279595138204456369464259579072263163967274683496703685064073258303695452712344954958359702030063524578576464309979338013888211435651281630800757738530385596495429649858758099793502001030633209771820489192120397744519094981879789689674178168890332270064869417298177884102153904523674201093279768087026367596515376413015294225369044061230677499124535467928110400154413009612182083902039364992862843354873413305902972233917138910706570055677310687873926426841121640281323600991504059653085250209558982672647342247133211644151299533144997261924796332825740720936956650166776402703700713376399558891194568315735221017909442722136243294009986653627162243045751158747360889270757787749947995964449178115126016790546778063467143155973744432392943164094340207458111799971627781068257294918827063667007396226864606156256380402754229888846776341579115199970019465926079450813847017973807447505395576199042870678239028341204395923073017672925776735119376633278501259416218911814077250370108180399751702656532951706878736196306622306679974869419985897894159694953916511750253227733666929130567064382881912466522360658272808251936600782210375092017808992642226055154095514797638099509834698520266976383681379592247437524835242793314051995394178941006803416613893160664833288570972057721097130497068599967646612556642280894486831037791262035649772324660482866725698417208553857185942309320438808817340251091939379434279509096799208822300764820009785073476320322499926273846171517040775258507826031047826611930456019771981584167268599074711146535131454382251797401414369320323756428973622057575208476506521262505307784948600548709450540851354508209275467645405280507273274159158269739822582474947968220896034348500147662056467266549587630815004545452445299127361659929390118431833522278240362159654187208177281648923783423332442585314058543492763304918526308665324740934530699170568915338973795783800070110298356045922423917145065609855152190747408792248435187450029159908805656671516149931452459551921951473390571794778445623974221111616680761020601805337695291170075503370846943954228123458928418073381336333574299963300912691851149479998143403259821064813271951486181579699706844561668138577425165497555061223052915608368134051474425010493098665411486433154123610865829529833241741697810222719183513605357422317215277245608599937315479644846329236982801801511053673488168302604281913270178943721948438327071934333318119695405848702818635807133626786153059698852969976420936575162283272475022977802019240002207292034078482180626326092065063506067850655772364784274405917830551946340551333543231688375749177470593774963049822422903819023194403063682309238926289991577219913159696672655080592804457934712983208863041643311021128445409656017611794184955146491142004553972201566729652243718506312301281413293753364073997498708906498038397810807640018492712574229888524943492772533264878927808541256662161930428332547347723021734062420750149872535267213028417314339991938026274227833446333927386816681650066762475877304881489800640793261619501249172687816946503370750084562187572179626745959026387306493721368353833083285367030347620024535237525356626511441059980591727791349408526086064627765247389537767383397541869542279180266390806091690162327891740818982635187357416900429367838319920721180832959897700034268558280464375780841748831088085810236460718315493838131208549294077961185481753882068719014334702224497277934616625209060129779103395560469690058004560590931741750345326572651354106351073528117148804159202124528293861922676891488131612052688057341105288473149778065469788211716485719614851450218411420231196429117774508437175614849556764426738498929395078652901980011443061434325480851741040633690756612908789584246457100614266572165936542973507607835165658015599655621957115584701364438003234602419182222389216249011644271561133446057456405054508091957896189016443143636026760243090080020750869696455849411880050752886639068005826189446880837513618606413206647970462326763862175202993256132887658544806247176840096421688138765250944002366591998544454129008923749168350883444004059796933960207996780749993125045225199470855449318695591313921972339188616668528782364362852727965943978038722252117595735956271191780241761128569085878120232272355834706367287207998182394221791176944853159388342638676013898665553590075044296806942598398042412157592517653106693471487645183055751616807734937788414674678008683119522709230711032771799187543715418001946466897448937427665208046075308554703750826230917307390312734220763772123250537214853331819357600992880041905844645754793792943307164177432374235023625762776349812008875525598583252770019357795282589936193120242113901669960861032003749254364766823656175644242644720724493104145630317252459045759750076054111751478454313248165115219521862256127610995559581015066735312526476607818745857408272072990831007160324011715357423983529547150778442587588924018968693248866349917051905296969236493938179409866850833137273931734941941625780058705135207459819363838825183378600994968405961662049023071172726152806900586948219936773356915904759240015240969983149348239875623132334959992923815494674477075570246441639121716106889747768760585407978924859160782559243193447545698459557826614669935490331979066461276763571874403202120137509648477108504585904818478128446809520486557290042323523672865742481328916319477762726982976859408490498601061934200442914892458871010978581436376674294925092184685707399191791739978410061425626572988480174247485961122783483461507333026744386343348379904630900207066260450910353006130474680324937086280771602440965633893555195075061196853568649461197793681335285446532219813288264265193801948172757027316988686676054876987681134732265483212463064585052609231335150966576355932007451552368291928944474963051820915479812603386003274501124189514163234827682998943973716607517816941027728795336734490139739374798016683396515377377119166099866263784725969048236467106835342723101315911336250658310119839542714340052711160510111229593102862988201299235493346819711645478144534737738982764010154528989261759360379590368780070917233220611280746395541151341182628971209067784707778219350519913767840444283360405495839728409192809475592551445136716027519988369313878090671181675545018287467550150772117359968245538650207315012876346801774151060809391906453269001576591760734358492062774416229833135557902183526792256274482017204394402548177839949219702215898702768946514609250773558770631612834157913586284327900181606047507997035770308969552998843568134598505719162819967227223232266387718010423985823628441701809444187396585491416603123583319175652207740401888290375573631324562541141071833875500140229230866737681888114557647343237598630568579653066903385435169674977394827871000121083452489345933770938316040532700514088251517701659201958536028512360918825367079123179928533196954587976067596634019910551982997678026977720689537248274115734889422696883282493228873947129952985336740945913942460883161518608917058248503480195281289136862412414142812819208484177267543977747277367298526827663794639075305535082783946986807733133790350521678631860400944529312243997620050970874533957515246017395395409004710115727376715396074254147431909444486095201686657823681726977429958366001859901444679545214262675204992212289591791396810432733470904519124680548211005828866416220874195771010555864504873113530828280241383124001143509940356202489563840283946776163510767041474959940126188405266952217294622749484982166539064137406024433134677069855551628082490769914935629102158822254549919001808974784290900606386495635632277244002113847885032771422828442195810469557003819011805094102692406753968210934642825581835961712705277010748795322511247480782196013790076937455673043248636333754740175256134665436650863555895433788558535465450144301608934639267430076401256916386976518302707101893716125612985630184326881720885093704929530001928732231049590301952715769857092933308475498505626658866302972527372045250712579633069107639686694391268503076973901590256074355709511873841759646544414572783860465485419852588504379513866027805057999384813310777010919413544379549307932218497074041296196398255117544088754006389976141969054776582545594977915110172484396986362605703389957257455735454096736209593567301398514151122142797887617134297394501319247150946286403863613915607382175249054021352761515819886940594201534706685950730394179225180936742871290826793103898164265683833114862961496653998267321397027302259660331761737410610783893984364962554463539855724417080839115093796893765625313466603292476795951812323384899456518084745288976643537790158282575946459837552986439483316515036068288737855558241964980529108075971162547203857860363486811958707879776662310478090971105088953173634088420435690341179922218843438876205021439920804406003879595264402558696990866880637326464772838443245714557627019075769623131963327149731628302254231624302814379914905005157618690588984092465504582647600595618570273865932317000908295296778612752782942865067443221205531267252900293894617569975344433809648464641270741979714588367751281445996420938385886020365008750861906734338116178795112707859440108769084649577108759373890810940293862521868885866394491369764881988261681916586496030207534993205038146959305013987310920919734858755116459353367726039874653171308872371315692927642326495036401011859950422077978028401986321421973286145938045175173589827589343013086650030884589796238229398003816940691146146897484938094734989472748241994152109606193439895824938034273922141084962353587945478169924549569922724786777815962993608627453142302463464943794639678305991775595341793097896392444316096835661355821883682811241229993332783466942113290889030077028960143135958661897275316898233570651057369020198597594591682551504583031311302228368692374981095743154916347658833746736267294959111116186274668148241732320163400646521805216483552886067806903815277304747971282287198383318467542793553276774451102100778758667667414939954120356337104793211409330514637256904632947339699011118745362772031830640422302616103167226205862583177786886497740870567661523609913304155429023127842628928448810470822029597622871469074370558930128064673705411303150837965914162001427088777393232828545416621262177959379060299746889319523948080239236629425649310697115477575171077694827487684800036469267259379509877557403686658275981432773235483403772563852312624013158580735831567150994615290141092453726137029285270744454722517033869112389211392707062548907796282120724007631972160816301490845889058816283346137305461988503617178673593274447507930730103579718564371283235500698444836317007720298212188121189115845949513139529522000650283103050022978327398417595538789628935383658621634287488640950220847600476370610654413107897012013675582015163551988439500782884074621570356680689663613697092395138550991358803956777308318305025141818929721172449345815815674623161703045054682600029945250668411266778054983938713955083589649390025716155347451822572215582518826747810191076597099219545406836681035564484777389035461420430141688015412219942671410530261288922298192256309959973983647729474728842874334389830146258183381689840024961756639977294983924468905865566354162722032295806784853587569857158034990396497270088327698275982469514364164786066523514597966958528488964721069659455066705771052398774528002689558279398672456906889470013794562525341323264142172929183375857930879174318491948821401709985807770834509714822743700692402999855123583118657136186379533085981273330654889504395180692525667307598441852391780030044640672902496351698613420551680624444996759699505527341660132924270208543643670329216264699772188395893062431541467029240249263302854751134087398000492053201296716975428597885658992805019518432002581883624904183517184227436479889160103554925609924467087525888737805359836802846406560541097240255319888890730789876652492175986105726974599082310128377668055405128748648025745393159566227310064183929028299691303816826057327428357901929017150886446218783720286461065652808491177931086012807366103843829773471057885160608038419612074163817120309286109021314286226358364247051861448799291522166154356195006467566883525153566400533439879672847553424654233668401383997651134020736169380959721147999727105753056691056564912349202825263346185157132990664637339727837822028312042042836407011887897242728676118512596160927008027882983214130019404938897103967785207886388371987717065760224268816792134539985813596432743517004248043490788139360686989207273947862737814893873338072815078512719926360262778937029836726394521510946362162289384501925512911388088824744813980550278724315221366940340770841658510028339828537726531583661004148194113599350748033279510845391634012990966238092206385492481472300237906352636126689892547456664235527125984351546980427573401796163467177741728798314045027579858342091387332144204474939873825724247330708645716454915634195444723654060581345567441263119488056644047411356953455736440580576885466326077149437571071673911494629511309851506931743619867479805670317103104393746475833705151395446787121579279310571838250223813773879491240765939436079585212461494192361325282361559455884669716299825612753755962026631275167688408735595712260592617243495014950405299498764190518399510549038008494847333383157758342327637217931026066563586904300886874819632235952636880446895655514740926516996989004558060816057153314780908023795309188250772730319456177635987541560297740032334981659849151966010049356253273705362437996992587722891382356563738292413334101379460693293855472684901664876206916586064789184903976163577041525942897863717072487057151872616069703851634486921125401612592641203186907200648797380641261114469245700141100886033226477620276161832039695398777750666206881901548622924258285057835804860400905409144880571873093786420118007403303694484109397549669130345958597767563232822929192646305754421061782745909797059206846375982842738186364751255925961758952263413919769214099188432788942069629929893879001031530418866713677729117838824234600000635398117953076106128216459479615925280916885904859444347161985511685408488966776292336075281495970022221835529605881953186470654639679013822971926800871281053957584222654214205819980882342722365327513772241996443704960130370392357509610407481857512362887607587783730596957539583374305130390395208513638526000228284611123886342960192833603849876818352145199229690847680125469113829885318414494720035058643170428369071405873910064178972812225243836231899764402564579043397214531058665160438744472623428205263587200384295335028220366569848468322235956574604355356999384546099355405679293012564273180775747839633027113000741556830227625307698961241349237338194882500266020348202540961632415914984710047236837005622901349861033786516963800598911681273962379876924611708689964900263229714848762766739768588163216183190136979048389229350318889572620927904446731132204793622509852935913223549780072647121380931808661614802351511542812391686151444758141446448154772091739070925023981008360508136543063886442475146744396405843412948488559318695023954466580711460033879159850423492796956014989904759965595779663272388546773415338395390331026265145119098408958958086931852214632896710574061505201138648245845018725868998580149855142150553179099585432247517726894265843860065634151127972385814121590850079796266642337317845521321589653345069589185706127009280585780951568306340943244713871765741797452585561676713163973997468426434409393297103133797762663140256792924608014019230236513095091666802028037056557737551294938615633904840586927991211698237093964979894268715515460171897332542933444456015071906065899919381314219602170624566096209498529242550007934914813380550539216627349759505781135182075814022513469244541543764615543792470969041989549112851531302226573108399688298663385761664709016770582138912330829676850090444012898931788293371344504211718790773679063825536592729462419918316894117469111757344810955095228269720614300589568665447174839400854233700013542223949314537002029682998166618238895855111929313296179222530024801824114682805448660355642107108656621069708328477822126998402230624545340098251268035622926294192577602544594486556977430468745367715578947550732742803434976299350646920870261258853986195675799386212075629884780581108029678714109675414420579781735765868712391335498467807422260977675417185188061192862231648074208453828285922177817809481691324655053940295063645886310418772711621833164558828502113955771878176313551623461387045787186075391641042893450251003555970248879058501019660250684743728655318029685488339767193255275953095389011847179894808444691228632084213325786841815269030553923833360000695494863514565221449792927088766379000974871966715499170414024335733467019446389463396880227640457827267239719205263768181926181764102994605832107492070063259721810113044338555058230578398838827619418083579405374783655802744459771897295091858878041355705066012212362664516952211054357100545705012352016500460543681629355875530795092374569045825165025640242639927297538399178861248398653085674021106705129068841126149525042050120219485833172045190331835962622541762707163238492441673294916678613067514599980393607463752593764425503049386621454991845561112769682989823918484172734623077390129036267053609468489341041143590560233782090930631683188764914989849755689585957518131102388249571799541326277934094870593620076495934718074453168937257588311217418350347331388022767008451729325870421243020479546318583448177358362871386587358635870511265568743917547473340266921703386607217177841715544299593750263053472399384307751665456138875365509859950208087901913577214862992743722104239261490976163477447460150861336347267817399492247468597700642145361285111926049010019320050409260610784429471665543976378278647576886514740706660863999593901557476663957851561864105686294235753785683017645911715834298097774667861429488711769047245884641386266222936981689196549329671378225338490666697339645775412720257497700023440904627182734870666265688250294915639038756912967781810932356973727263095383863829180472259269474797530737578027819701527017560806060008039898752137611531268763036129475909710365065255854133187498404429828541813412725660981382224684176327440839214359246627855715374771091159431137197675564157394739455872850254947851229826892705216659403960375493944915358998287207450200171378380700939059033782146826437154882635828891198512356678401628442351047296041141498846482215680798422679488904348669769664384020451968980006281827154670938827658378640056318691985259562570140001549443384868373905067633748112633086411681394838348260354914713672762882027572822177574951161350490669758974999966338150331165001103211488776229054129941495881763625063534258823067555204534386511639509558798900085244096486244429441858345787847150459916354765538319715130031257553689185125997788124019122749129821507478329431873022418759158369176002152178293182624224331883779816362595333063144859532589115701432821202580477013752805056217111544116294267741936154093148999001686756196029561013485971145156556179569035944653041649697374866647284312580404583844826470841485490641876569672568959662957747125442783512233211177119597734738892464549625019675417913433872742838071096912412526538777290981266646493226926781775313146188712590667411235609583525279150746387247576306406296277289636001939999106584211602026638157889417003795914837084870617749338143264588903756922028170302602823587880556273885440187118908364078580379993308676866733964768122352810544546942406299928943401307485143898008019081464684123829015426420443869612553616695807883505771405307106436163548876068192531293931498167849490693169828322587001954581241036641625728824382229883993121927542238762844931029870084619538444264289690329192491256276254727929671676269705426956679305439860233077910540709602373080913060085082521114687428565977175241289084092312396082386382887925720576687443618054480692853832989235262764070546325161235275621360065009019874764458400532496511412304198235432674282588296545192524063359338729983340410613515336346186599790546753812944637004253006582546217161875247112916089300428053481063841615324310940687243871728091352700040173141533520395031188743685218947149434388708613927080651617620950357799294917474647639967651333114630898160023735985749076770260364571997189156703769572319187351783109346147131109331624510405686495442964668876842934704382307128022874465426925785875879068191667521934958831271468992292108716998528170967963112374199912141288031230947569808329419264353448401449185719592477015096520803183255027620234710434304768468448320810689573902823358465178978839726722668763932405909299436077931270032009585337571106043046729242211155597690685368797143558358073255157119215498803089859158606665909253941173530653875009642290719953312931633505956362418711673954586754114401666673480876330869441597865004821524345485092028696978617002995370743184346354732008321079868911072333190733434277982498939066232433678690685039197264179289444689175731159358647784788510247701835123596016052444136376363638038814923304873356876222407489156146868139786275085547802216919677783475893393056610977763408850694942573719825363934462469302085550945722405782751750003982913999315452647152055917550409356449010621130686114809381452704188891671273130307032702796499551236572163042582414362420948578465275063934753225378992561557547483602727938774389816002782680563064105079172564691059085366114482399349626730688579022032249964420313465408314933976785043028621173757801314699335614697269572712499698980967210369261027277166361601264462259213141786827069345207883803080398908260420199537608486178384690442756672017068627154474773882610408029909116502178073309304413190961193524740220428812904728309333584726803206202853976876373804037120736161839418126233998794098867128801892003111652104064106526455693587896868835628133073447475566526157521650455300455144100724822116972080479084099855444978785464985354054124192730110053305484355301585453848207810273871787791693204617798697399297723419088676366105395004769211457428346226526828580865208148397602691306016650973512503034411652675716208695472849756744051863168431708736709578081846696372669824932516046534768270749682137695451474251481578843953813637566223836639004027892460812138889413660927910173937313154762708861850619674312322420829564012619803236465205264926507160620699576282741577702947962585172993949748753018922539468601268713970804573114405108688578881625981128793677663141596395367294386720139866084370162799925480233049598830081567947839460148241695328269410370611195619557914161549268899797469942195846901246494719602555940506753435835439298885496958343543028190280935789133153830915512355039118590174891222897761374300362584171782328222034132019295654571750722694148611514909888631362163898777179319941456041551577839035426500392338661892255724704195445724269936773397270270624087754720168948419790549106069431213998419270193004018178771992948284957088209274968020931043016090268784578789893263979579099832073263238331047112767658167603458714630736838440111974583423634789260540575277465891050427343987609939684623226966509581853634861010803307066284294528816835007988963496634434249324680570416455237744620319638917603026403215964962191319401885443796991856533844565968131837698464948008929659011543289138041576651538988155226409692100240298197018059488714749299102382852526327036230165519840918389090685946059148205039644312057545195111541886504189412851492638161445115754743217898097590205938002323665300743056988255339651072865814946682749866598007172862621505180303353999930035310781266909146157882192878949366496237310817079166977543481881954265695462350022135325356132335280707842113016873095700730984719015565326806477683745161469629916932977679255778663442346861370332164421333789047050962379087340389639160478684676362130616334611783562397796831258888453088475057788727225433953758051935914790869930276568956156910749159412517956275527784531572552311265480117332476455193186334224033233104468366570719979063478869819861609998351607534960836145617867994997976841447568976030364654672920934395300707902564330372608669344437697962315542062176487770181159531005670997616356711859314817980151010836549404827284814490081155417583458322618657120371940519332057420839924818114713566477867163260770418737410371200820658007634903441660667583312969050562107943162230427451522712073201042417248108487890742986932606268150550352065954205732201871419369011400705760648888586219997142815555016457019312163767197533322538683355464581208890148731293848509110335074087308887874802436920231007325458596039056910468577805319193377637212221758443423382973506116534213125600835225742822158383892849370293445495932220880759909196466002190555893815521552445045673453262715923375956745926444455382975268871436523338820386909625904123713152724241561632825582992964505880256701445632550017800657108993912019893865223039892418918532258999270887603736072999358482356564598075757550770804728536942157970413614006704609121907432384152147261559529255944233305068333767898050327386564184010921015023995563924260783426301679475146135249554010587726559715001902470329699314677467659725140543666256286505394293903441027099904875752306294124688804793306974443727509732402697328005116558795830480637768144856207644527137919185631007572168920260852538046837227852561321747266362470826011198700126278896602236724267976083985117709937021560969636188604223029818645554538087687359728070637341848156711090772983583774607350649653801519099078532682507987459334487316738040449131931121604133713673879758145537200270014903900410015420091937886514889763838017931223526322515366214101892040803909199684512487781917564392450846638388206991456134884670490999699793313335738105457142487314780414982620758293937860903948286068276278008826806578545842225304833652822191483018158978803253104562710037803098068999669413742003633176888667722290842848713583973612676596914680120481259238146769907848881114823493447831623413007277489065234781394325510013979330961262811482715773898006063181368935753191887657475719468591878631964431003970410731126857240563152120923923947699466370309731752008628864616607924324191416377316813737989242117608762478419889738985518837799176802098988448972402109733244548324459710547577866193523425933566599498787043947501208030860936748545422651001996574896348828499719928011096087403910378913051730537999475201564084790463498474382995736956199136953080811291167445201214631367565751066941021188592066228314390443152081665231379002168020121915055298730242196746609719647691418771235195794176578730412023461732509119888647872864782952823840612633319971194765639541925895781714760841418784756727875237350323148674133962396765349184283912365274268027215531848522117238749639070106854410528238764373050056871165904236927412318828494920625415125759957992317191927543046850057093057734784228441337535238499048958675192340281095707605330271876222275812250040871796412955281939665988651913164504443637118740217788558984764674320992062590387927232461294896342113867056753723012109804763098704975100641098794400244361174522341269795672972932462730540909034928678663207056396969763536054256016767246171169530252301050045633001059882330693498150080702397619505917717321343112799559393318977176126906883318773635265567353026983175119864755118128577004551211952570804643050676519228342872855453462997027924912601450497153673586672262744151833847069210999627267796712481918748964412035522422503971168413047109583919936782539041678857939952886190743703882709931363570348590372872196209605043081105389886020342300998776800957924932949037239925239124631724461534637762257557512656140060301560268529302882987587035270544024452999217402567393572652058424292193087846568927136031881014455475114629053334944636585741782227694696841804248578572304340021915557437862317415949907630497918082620352737897191139820998266662097878123425557378127641614135785628158043155562536161395842995831653577799159072242778358692378358075858719495243193698132621535772806779861693704719416780889497402204105343089203222747904289277876823635884879800092967321493367372838037415039116756993503931424102063452214026643168677317047014584463611771488838425920502083449806427867355325601509922310256426664234541772800802277120541373482347203820583198481384843976544169286727694136163876824470401426474537326123417885635008566849855066548412429084623165412242755233999684014775523440147536867727495093980937368376317721339288327982884538128762205057647455159885104952867738868838885551972257487183647832751436750897951201797088015535961371949548392061684332182011467184612492621065785367674610882748945574136425754263712485426941904911001844192365109286773173734414849593230251752224343047398083379517151326682755861183983459148341948269613923615003192180174717439320230576544969344723514031227680257785313393172883578027367287173370358681129676658341971436037469530350854574333026565686716763140270684369328166078092621553348259173815589457932151354247100646222103694742828572155410677618419625513895109871562834140877514394907939785928586110645398964953587778075029263964834577462282752828237658066573183851040849790776488385822691122524204024526893268598774091514608887185361549220847881973296649387265574522273095288609946125421502758496732724872242617524994748694731692726934079070265965577395698777740261544663432298080331311144302939008523566578255812760285548204648575061995593165614279302094131603666688230701485133976487377791678150351238131797736145774869342048131496961417260878413311401508058623835010739928243179898644825897413110441353934632802764975734500224878746438407293432554090234204236323848174932569240837477665136830423640390090811186149486722965453156492793836279965520147719842097775076850463504674361929796548700383723425739725731572679576444949277013232083991397150502430578990776366071772589400993530701040969208058321816880429932289512406152275100181360512298837093597364799205711858410847210379534184290269952111423229196964575941962207239727417922673843765581774512680731184075706218048793058696473738006109995237768317680870439899621625305984887230349189910367188348231299256920080335245864250537011856691942857876270268063121625632997377516688325567412646936502521246521365283784992196612923318287146696777136601206262473348476781111213153937712760657601142063398092142184098117118095593666765680900153939674307487998757943997055120759022895527237884749226499832098049641151391281522923883863911836684950094509427063834056155180699115130470787677031916629071026943032704428828796023021698550392329631940976673451258110672448243000570499972706825709798144562410103147357930275187821894224111450987082366161074239923268042275930768389101075817012346229826929404554510546904998174097344297487512729471894531794773502919293314868698651715233106711066335082146893074510167539708576192144064507837436150049263061195591801579025092118891697433025343112380747562449450493081109644709264567698017987385441334108773591491417798438314583202174757381621588676760831924840849939529013246076890837023866522273463518435591801212457559819948371950104802805731691624167948477224059534283519544103491888198552077774903732160944707593650815666725688720298241990720066416827616027302385752055885572150175997141246191296625828935751020865566223096189531186628994919328406442078533375315969939205369953713521363195376647837920456107179263241424000480078919745443868612560906683153101842657048221670289593675405437138981152874292955183624002661508218483645470360068157673831444793352423439285966662746456270656028575982456430719162111123853841850119829254945526790693930091064679987831701317887326433195078700009855322456568306512991020047501069359653437703798808233153483818856826148603919696434984209818122883633258818926793794659446307813840172836248518421879106102496772769841475400466448391891476268906736861152899723319579338552084426866635570963270593476542351167766641867812690318471807180079667542701870232875984787568603597231560408706697233550515942231828304683679704043338162148187824304863179130192650124040856098334877163819858963984238661118654415284120006984195439554355406201132877285277816170842580109980325301976351546439585763622439346404253510360075732729052516569740317456312209289522789844963079352432692591396412906527161455566231713553954872127021141985302748922291684623001212783695272343761521316128873898354700653026479068910616715350217657132773255965133825928522166381056317453703449405853041587237986820521625194005108145769670927091435305185535992174646880363929443469470682699643664975237137773740116824879451409681368764904770582161530056184522842601060044559085241129461212835219862537685224524309374863170644499273123209355442635618797343284795527360563816917014057111272126651316045642526054131968407230280427450319559134825972150456128268769321531102045814624109028608395281800202754135168440016472878048179336067814463320833435506798309331289133131624690261104728056068580893026640140786528156329885284988928719507546882605043078805811389569444036359327475622203352918259191976904427769921482323212153315512934944170215457206139564190085659338961578195073060267145157042817546030712916837377275190244624300495786089891439225571239271346115715601458944443806052316076937969670843331557104882126649021300260420944306109772823333162059249724434313167223182461116326207979319134634323673093265949433591746204248231931490768938064860716928631535620217877440939183730158809778066644399541789608889554405277891737936649062265822218717090945914658039915364706445739324785974639755402579641255607670478016177935529152304069308563611254976222188958116780576976034329214802792071636666786422869735187909208987191036877192602418403803060076230817408895935521394639498730752111384280821823763820341658816534266763600624019225665211101834720346208859515309075155255967429979010385022649511311557490849768913038625465786567296561882636044618564598741362607478483940749018397040930105974696611464716417845319794935843482010272337137287599195265731629228734109915479087384161942237478546150413557223612189229588928685491176791385946876327205098682478287980052496203322353179306280925997624133858993684005673695335208742290753354047348711109689448180840304364053100757768773651415451236658924005857731985562981265146427508604892145485816582337140489172516716100961885180090792170887302955539759920839003354211434428442280214815532328201457405794272646446885334080190225395597250843506823287084311633338138877014667624507239297172717991856334947216166197132528240130396265369774124587843396230429077609708635358172447874235229306902763001903349316520838294062609786567278751157718710601308266674303527275600998479098018025938862126535118278204781553618734332454312754797561227699947484533547241152136319740383925857293374122232199189486207522396765476641303348150718859317106653237700272905474719427892948554290188952364323707342340717394321848900517144993002796430341961395318829516898591549971557633023346923210892353247267288161648243533005178571570276501306639976168669677098979910959273881820507330050842914702058418332501783862433324158803837514309850774745642237255019082174111037998490769417084364443976836956152400373378572284877382630062932974088643760534753034702739433346822113704131925869545904565815102379239871188393060212950190251174108374286369758811160086633141393385946153335718054398400372278774937335838971732913411177672773149556151452378172154192301399164630483537874527823478208452005665471666111075295587955356002750003975135516974247313471432496874638892733864664747986275670276446022002777768520826115409521655492841660637052160547028703113412920378059252141341316024685852581807222735221230023455008716021584735431593291216369555381731230960507298404311966970794864517535633161549927379583885961580834144127313718392736062197908675753351715547666437872241060525466769832752767594465256422315863910363181623685243255216891313072378291646097108375736669960001644926709989479540419808396566924361218592683184346110493157512577438136427086114418020913652829355085860969776129903182916716479555108563287190003029960581628246227379919709741543322800179390888859001092265024784740229439141064918487738890696147114827099212336660558591429641355340521709139240372060427292226832830946408069542729625886958532595163271051099978671061810374144036338828687359787333158174799337902854357419988122296614910279676355040694466201089955152450826293671188684965538082026389140445766690123733342220135459398978911011224614767740267710212556868048785081843091101610706333619640177465304315249152271221850934562388763487509940674801642361011659710895420746662126581692747498386410840229513628098807877516307242627056955893982769085383374200130824067081363331409441063961207838681397086889705648563181668270076886115152062933618155015850029651977897207410356093734121819014565688252171535808443370502613339474698447199596404685924270821975725878251700873025368845638972957132908827561765616214490635446457770831198011020825532210623285040557392495021269804066833552499752040723859391115706430360347219380688293328314769886233369043801953605005270980474104879084540050401137351471735397754722248807750888430114102918866355114676453071992166003804542559379436022745887026706143639217952433326614010478763886419910136729845565845903134495419043791574341323546287055961880825932091550541195942815948195441782562420550200599551164353093929063305461338998607707149815577934553230320235406154181506688678975468938885870490920195741752349463720356872971547477767495178664992915789179882038666775544836749512638421811691398104229157327719110059300194563699048582678761652479818121697712280685459447271649745132444212482984621746542538954557571478834995664296188285076407657562510073526479437894291407378074549508277781080434703243630231355559194918565451278642059776721504342271632300665056322996155819797672513096509305493407687649137840227329283684531670597483715902090179315569130123281476085930845948212038082635657692491311278767357173655212457068799541374419554031684597784364922576479212410673721055966525894232192927269966107680247489846123263465656538555595535287903144890950260301569311379318803684762642441962222798824903756295348404938847088314531992460412703324305386048084703786196309758551851790705412165271835470023485043171926428421503445825969201452186122746326179465833202057161512101042882158317370882780079228016867362234519643499056568674480187885222067607557840586994213578024995940370980286579175171872422665147231847131130929615549516009191567097563887870127369995170350550351424836577103441576643875366570599350771177720015769768078719066491948159119377693138941366283576551972079615636784724452837573743089233131301888645210609700181335897309225422290296365193455514954022897204983103667824407689015999163863065120590950884747873451710275905042605154050781439046336744418036246790939503711329151203750762031305759445056470195103499937246674395414977279978151854021761237594545869365126520735822663173665555484881491746486680700570375671260163602661712082138871685275016546626178586614748329372001741447770051419849546105869773072255353268446336335633274310588239251674386674060152958011937368292001313100322892601446999284812537811750353534594808331826573969191720474401657497675586212763911131265138329347797081908625119710702864600404839776664775386557457838278056521663097916636856684042225750370823060170134612153406030128233364389431435716107377462571958794785046273012843462818360326082352662098964014261607809940851484219465120469190761754464445319354923509797795542082903212505023793749144288930193739866525997143812779399111297037233827910889569446129878321313027232471323687426897035616798788129224005474347628595489789532765661741880385642401826890535876765479402074582242285323010975250362872855549604137382428211582550924287141136074435919387517031731930518737539680351516944931450554616669179551653534756486912034243700573400801941292091746937750372952179282441486151632594314414022397045829833726158699827265508598748006949617771862757693013074500813404388276221777358879147943320697249835180342179777916265180049036380796420775542251675198311806825306240336971098570214567595708371711624099943031285251285001242935923232228446144225324685237143896188697624066335660911950641490653331475497561237802909716867980088089143035253148316021482333760538773419084482631232750838108354271748839463697222628148363323896023018256039873708460455748899892323480255086540611992554206424617043585398959831189864952388695671638254245480683175105733119642910558996161373931694517022970544206700526119333831605167738611472195308007622099620252623281019339802325014669525109750811464607598013192217076918315057453299619485654674740443904180403183920923892839953127277651466607097085338512957975501111723092639107162290286699206078041496724773455840473975868950238769810998388404111747480705242117680058775461448938418917443294881280653177401746749213302816276296748336575926143285429855997861491054285874912075933169159019011519031594272612218780219326437281231060627001297329785871901070990996935999290350192451454915492664495816939051288323037594075125788257707859448844698342072723846033240412047095747600267928303090544144569422030401468892573317818364281627981934136463715977448336641717465538260761240436597427958436968798560165672278472969169420674050912424658943335166206031212409559188660408410148088517648123332528560367819878160106638832801825499048206651907210351747415084157941232501158608205372665851292629717530736659750359259613228087269091528555046011910934022458926757473922253554001700244038601704635737563223740242643143370732005288824529901916685356323509763124831326363024299145533660224397597542479201638972943782341568161396292509601217579422112503507241900811094120947196456602152255615151645870489825171653175250995959186212181604248708241046939824483938839544588817226806430441978921840474570231007169980098401401894805413222900237897705087588306479222286230187875030427731978346065086907945398207210176555258738720644831171969697793538001206079657311074431041147932195662089316987847814145728974339014817612308300910277528686945273556210428946742436268534326440262626535625470758874235659182950784396039711604727354254407502960861145625706500609284722826074233662410924468652723245773023830207958909034231543212539714965986345376416589298407223294440973112316484440115020962092283201732543780831119991250466136169510028216625741749318974235156206330316749125031940486823031549320716421154594278199616212540484499677323525930414330645473171185991881525667441997905819151528126066067509453628306139425426349354986612827305848494121037460166641342982764372671486017492706756715788710749244784079055472424599905757569179653618700085157026606166606126667904080992132165864863826021803134518464527741948063200331792292222871385551356155126707755188018667961014611268713239676615890263533112495367252595539205178795879664107432173918071696605280565142108937637827198587439481840350488516843563341821594317939333636993368210088693751410376528552403408604171285119886928201847083830931747939374896629407392333644072621747279115734733714534656343057741309557645245249016842281653952296264944635089433819975506513676252768646134305720589723975099560250991725329911473699431690248944487627178482905907248959310089308506416634769545698493509881932234137542894974808011945945818839493303631550491619834253741893262419459192525921817550553414097130796587976277134194468317858477556575057739126389162029268069343071463843738914358311357862732317076197465774620082402002799862529033509752415693537829991904370575537261392204386195496045623118797345248437103555283688302521985296570811952212480169751225728019542602314481443245564011021195012896303794878791478482639417645442724774348072315654725396382497899451232420083511193323392397765610668691392235587962154888396304383683448145526861603237851521183884290672716068636032283685028753178615228519328993342361986488180384359979035524361267261894861463191370278254398974865076412348286593246532326776835844223380257006506502955710394730937867374187845569019456003848075327326917504732813188892756064100271494210054717090452080872658984431698287191552295746475359920845870636110582251299061837513018320791224445738115770437248219073093670624788347471541233873197870040101960673329824175186971137724933375907121879949884158904967919570306154807082454995805585437662221508973400879431787285351541724722294959310587342188240144431348119484310601312444889220954063614552238544545269424381077824895992356214688091628110566288618267220661440982909084573813893322518608337363419380458894974140019117115048639235157226656534325822115386667899534765674025582649614339848760111303754784829874858516286060122914232130996577338174200282174844782524160002891851161910903837489423782780076011030640716143702817951072451387114700454913576759637499574368760834386088291017917937498470138711057374477391748842351519131825119751058339669885442495472744492691205363468707276167837164473074473013549774511599181500701283569850297155599638776786659671032660216969585171725889375083750210964357914739081725002874233846649687602835081510044958848110050651162395556729012150315640939242158896756607954818478506553773895492183718944974326113693407933080747906599556495998451633431466989915632225776246301705743792673791598619679059326422420368621360384750395007190041361350175044608237215501912767500692818316263493362881566195629518473083035155635072865322402599647401638315718045422800458264410212076266918438329948544595181926221094504998000947894710706342848980323619045707357143472707170405378455037601628290604439173843749036378944357174914320480227941817540453984011468415688208963200580582150260980751783321723186868567228758907285553569166482517703657202210560397196629575449705458875659443440417651737131325451146471768640743203508599287171203199747884143689779348747840599384748873961808941047080843785883351117789038785196808448259454784998047521407336888880820710989779300311662600139373275492618028944445543011088873904294801445650647316478266456766655845519643678716745773725339102425501714670422997714734885631410871322679427693888536676684707767777470928022554051755123810923758232674459181357256264293339637633263228201609010249567433675182218090768574219124173349642298635832978201360504939007672488788566282098982396573390598520321385242931427190649674623379828012960521881616487728122917986057827714502766245918970177210826575078733728128932506913173439022706005732478610649220945400535526675567823156050303672791507174164889401492917966677310115347444363980225477098804099690694744589635339871628833323397800979417191988360737494726949972517106855619277807431388366420218128614758075642285378611229207504041061085391435947457636270389749224786271085005237356637772224261318912604325056972655691849044233404511725801611211075810370869793975265948367345590849801972980660656540879736889540012686745774191853197671430724241087106000897524648587457753197090386785877587055289710755791786832331308216765399399419995478598755515122768502304771220987184608767817966865001151496718512784511930835214711068986354644483047772562700721550421535156769436098134432111022132287189108119672501676823306500420744196353531358760670380786708675093793797721830091769029910811943582656204587031982531575058186264225188136593290737176946564519412156714831153977822214073174458970709567653722175795661267401589393193851514045066472383502968243986234860018082079531613022386756643415316228571013587762501338271297957985291686841735261623072061619679949244485321330738734016927515971407259431399089342289469939365684441494258700208589303319161201860069980858461937411158388732116783681632120988993767274653508873889221051193975779719812196319538777746676622375729960507414571917576235628184482726350597753701318520098382936898667358018933576486252237849438588240516631073932459638464538284155106153469868336268043324563025486185362311485711580100102979946625301765754883763763571980021089191946309574137834419725531671530934698954238095408109579486842066158838091410729848022632052234969805539392405896174997563350544004253941308820833484705380055251622130324592483758864111186216764334803282287093244674608028108649466804112439507696856576978707977515802344858586304494758255794267667312064877424957798882483184331225906801929717153687834205414448714702591321736254682116804364985406390881250725617235100442183177333754724718446068530994265986563881340680682112356019153591360548053391820065321752510960819046692749392216831120005434468728628313419777017139860531361290733965710057784760427848179643850919147361561695227532208932409578045170897460763409140609756450371516689940638159228837046975688626792771780473599993494883805265397992255875413246507189325125260110983179055007446838124921534808904822959609378696625778706795238899066828795983261923524297959149745744634630904001996414903294715985092470387648651326679351376758520943722156611577682617030311987316008502479880812394807518837921980053583747208283137375292515520069434811567238237595930603168896640619083322043516288920396742095066159640995341847256803639552670730656772532908654032199670151111392781939127027916918317852058226313106805440867271314888888823103935330323547865549332520651003523214155447977686485695633230953453997580237435463526395611105492216432479979390052864346085212899294326482336277031162425411716742587671488127897684153422049937569319663938247644249787640685315425488624543789440363321642142260038181737119787536477269518087199457138377317734055192977684776243584487540473127364772065484711862887738674918021073581241052100248743348855932568586207663664114560754797992004882422142736261325450592012706553874545487460901087108277287127775985947950098445120419413374603673252721297653988350317472827901288429336579518718303121713528109972570645113621257740118460539146353307392116533539890133193752584535675879379109468349306571912870280106719758929951542953657586411822086327314870950069985362750534911612478917676874911813567581628537061612991659462908176264035456862862631110305547001626961059527402800377735570342527507189318866942616955562672167346909949799542818243632927824375283286103097903545641950320515684460427883486618457130009556214784188255394327792219620053759394030273669445705828303470303921886350224467236558606000446036632600190883896114832523045286975831468858571327350910868251369195908414479127428873490923058296412297078344917632985811339009511215488590856679920047428538703897061383791782261795182007614865002721036823367371147543944885707119237822338650966780067566402322574298131583370650209241370671053615971918709807753266938317560725674077438031989103447547533834655727952038386303885044785771575135616182961442392001739371604836869281108350235061529465110513305715182046524873713091458056949944149709724568999342155360388571982332652676093832404256749257099341903108306418439242133669171640291299341543277462084819013885396770450349865268277279481414315396060477719334280863479734110970283655047316975359206284636718790756876723175541950726879480981535075240582774388758519835151570714358610231918417666689777814645168186646166898392386642799627757571974831016974289175086379823239021792451263437952097227042445679237506871840744551429564831872520517163383173302004215005821609389404997784264222954321917843185581213697598303330351553753603530165958213959479809486170145400430392392817896275621800032684471526567412676200546073768497185914711223288460044080060483093393617379381087040115240864980117206683577315783472865064475518437705892027188540308463504627676248071958328794803911023922133624243260948818630058200583483309612779342309080353334640819884389714447839213235275871170323622277254653223046643153498857265142391162777773133680339981998236515638029736959267375634128006532054442282236734433216889060762073196462222665821701400520150506984443360752997637086761888318935306224610787042977452819305052026780859652680816655800980630248723853209930473164111347066097943726321526643628949730977847540280792740113265696995504013076203165318401284111234366376936105740616066862634664984876641828087507275918400854812176029211289942037393011247910509990899767070191906858347426642540348818176675627825853526432049095181931208464467889303627280362278766889878428059529251908112714572778909439798492154666876479762461812662122682496525712016458391363140916145101141467469494847220958459690638030779526722377471360335869710373678065464400974911270817838154449530609786205741273476454414816891039480903439268503883823891456359743846603468686673835258804249089033158641179868311031096716586676585120190082005369465808541339178810697775114818976029482248630329911369684294473926412792201379406466156905334530332456110465848234443667805165382108447233819654838398568535207027650366295902376497157438848535388040251769496530083456571946228263719044597785243155480263025655834762905106327582985855110115262530806139550156577586808130296913967461755490717361437494802517509540894412770142393576108631366793507251953199074976779373497075720169000191548280726997007726153732671612846819193743848933868485287781012234486065753104855098525793099093414875025583241077307846479952377896944026677260267572491067849439330470755053035293212257784805983522661029630195629739123795121778749510277494971283903152553533311385116009111352567720314409721745707760065925562687393688197608731424015230465980461292764473202849559882109531900438850258110892645645323875032235701379316598429746320112042583877360008234407211257602182940908513870595366887458843885857679007237315982847996450738959458281468442965721287146970264727641272328927951729081824808749606781381003452452751405368074733892176154673252438780058945746662768316959042172053123083487257592419851643019037482225986522165388614905886989101212780695776853880734312178923221876076880104056669999761517147989285124010089040832544989129193549864542522182012199446469982482237560675776528019870957693127300769294142280011335483758954425089335409464803289017759162971778113589790234469913005994462514103432070464702170255181749988240195198531658501838086928557083503656784314852456945751432584351483857405615443395409098704693358424569082973917222934986362926706737366820314868775423207068451132026013145629312947216147616880870447034781737002341431123982311366735293713089208036504503835858662909307139766735596678996679979006207896020514983768380424982091606626023291058698757983680535306350471192603562179595347668187094297578602566897316847524531764837543030616121975591746566759010475038305171775852290960678925438054300116837689809264490209555167965319177603741851661667873273106723121759293789757782176229381435004795770690387773796204340967558318400503525931062870410675044776444260914903867512403192643923277235588477452473958336467416028226513100536568339336111520915464258395410799368135501150200243799572226733306647369002973463079947707721174799140428556254557815632434889221119776371940217044745402395148934739204840792826309902462998739993410437353462654683402058189992897966367797695531820765778056802419016154012568013582484348987891721599608759156992157772741631024464822174538990526073458577586811478795052238909930443926279575180223943149383904353805665106503799201879737050116001030541169272094885440210571244752721733502314518751491636226190938784166571347385909405060106176217875895631174495289144182996014620087844050353019043141408790082442333163055649712745499019702179441170379479595797900497019921436515377534293272729833575919738439089010469206448015628139484937929670129111483969456647641941673120908949517979887517713106371862672587104063100265758487163726796931934624959042702238575980131138541496739983684872870109589528991052836174178095298308436185059764318799896324002311583025573234765235929647143628010933070058074009629272072288813488266151658320996025257000436398919855032078814205571732950535079193450224764481970610401781747869663752209789620836389244706897048922833233915901613025408036215132005981563879795516291475023018268653574205285201516323497308189687774339825483359036214629054269687793704166860983202789996191005721351580584488519490389337535439167271938913277943339343457476699165532141678661228716007628526023706379119635121786175033606468316557033001059795751070937510894647863177957810257742628077037771517079159969075174762895159300919326789339223584445154423455084588045794137295045619485016087876516805177196429559446309707337258271554993170333220650000883179936991194576675301178563059673155747014685631298568823867683279283853043414357936306216303028411873676462638134927929655032297813104487655302616021154619757739554384392017465822201836378540438345972256263056082897289602941863360920766103372192923899732264566200458613748403121312663650560302661581146976840711024736660789629829764004044301874588259482175158767726700532206479964080724395167330777905741293051489877588959436665766599077438027476189986477818770214044823190718300988851681672662366446028475296184451839434078925119583112889887597930939212904798586989129323904277003529234616786600785135404227828753449021262319046079109615052276786832208964569576448283654085183907242537575944067740743126731857821990256480869208362769714901358768632587056934971074509906612008044567609957918903523940032742399624134762528944538578880475151870144631203264119664620974516558971090812709136945012083356143250339234712758141448055293091637380719719072841562198642921802059784251198550194592278661071042388536296540587766710161878923932778113166628325609223064206603968265565142473914634653901157022766524530171872996297857381761684779694042834248075309588568739499794392446525008272566435966722447592268173131162383089686006165190462057862071696469502709705844785556884667407738137210341642452416267034302872535144172958016226690086514463671125900352969017387080448816286645841017915536976076435574627485282100991210396359167585794737993815900426509635203644877351396634755646087587202931269291608052205163880552700772538897646515541850494243518112787307315257808373778624789702264367155112117049216715468011653954019244846511900637350346067140352351785660370410773666789613503781848212698414127429141628155911706454552679291119809686557123852544258300705304871312685872996750496489618846003182165477740473580375613663930025067342479305196409821054398805494913621708304779964511465356651253308440210166473190403108580496831762323082946951177860938053760325400316046546646447252492899866509685768753420879684162507606469986458463672981256301309124608072973701643953761576200282724519378877393676488810421617446863231660244450848689494371061600625286977718120240349718108291428516107864449187471863158645203573261075575683740459949993135343505595885341218471317530292700895596022121612524326941273349121866716729629347231115172457674309406559175402983973610645244028690682900533050542232297863996459809844351921082209325234943446990529265808283717265651495381740864158546537988179258018236908048927531111883327683188436624263158122550240335136200669906719587942785047691476897788571168438020183643796763099408843240242471271698984275604593862960513623262793396218387660927169667116946121434418583332994043812685031158658252436566725675719555176372532898710563929836441648611986023257291576696846228919184960748045064922166389980245365753739071189069773819526422063058940860218250099433751456747312122786588665412461786450414186175100766513627191007963675673887388466195761143549841446696391708558868403400198132526161163333708027656775536440981315381149070534325210816665384043881394472090372879574671204538082006650776036851090026310367692911985600561009789128843740102352945435277412391688172161687015012888432288566923246639210046467828788551398431733528025372583402044646769311407332677730289525419911872613346217977250406195307361213651290054382030719903458245959673627460655903899546619431384955891810298352516096141293978117235429140552375952320146637410799225667095362529592842833693257996925101594227059681055854100105367521896061268006226080309354786381692829619708821797621883210317835373308717092147144164815167220344707370529881811367473982547659684561002828658599260694631938054346429794520042971893156803715187172360977602578698980151636263969184689073765632160586888141844674272633394433258774446388120929541665737169454074846165456951593569956499149791153015813302214311118424126115445876640907321940869763949256428615802782539661499152829517595564931206807099438559904412674714584095432885387897775801328365192923147264208918696227235246306138538965396948159544720014018713672409758340882694012320012714248317484140342099702342242743261102066042283345706718322453018377562805275047114851125061097462411601186893392013103775594755485098754018601012820090183859988597312668797124086457799834213541771415909242294505999996754359168982564802057143471105944532865055185000733998431742399607989456851932415071225320777098677174230762550364119726003310371490619527071029821323302750166540510428837670945429122475457838164024628211248057209160304225907260732025580088517655445515082928230182923495044306138355284234528935268952811499170456032934138727234179903940325821699542057003673005003368801569170586077606362554997574782038238054634086864839902172950957677462891076208700261769853121078913591469072107647184689130789563338931791320111306082317161193007568410268574139574729729287342736232838811090536869666053530024190517741060053597033639991615928791382163322588599700976272866704933385747137785366358033775632484685128251051944429318833468836889997294430654231435142066852584436507926708018859159544580264348977699050419265113607663641635139985043723167211769815861423537456245903961652669796884285949287313417231858336829697687035068930074660124596451740214048522601280418975206018129656130538274688598004335759479947068325865311647899950313343105233245896086204077795232080495573913094798014702916075901287636628637441744906978365540451120142952010238217415635014871159369208710147506452903116410276539843717314399701870327895258457673748333762679242000297407944214072233619840107002997830175192939038876444234462039887598839274309380947478827710206623705285510387504680731837413215397510046852229118028208520417114329091231615989820845058649479428233192093981095107580303710744032114134681195901373192197134575422626053089637749583166456449354490743409196998899406600233969627750318930069341615644814886129992404239554289810001430221754340112806383336967545389962337725517410829823057065066522460795502503489718997532691111898975875462391557026293347687799416748019363534120253053910554241114906786802653657091921913275865006362443366012506094230696179409037175867954443703340144431006171927426078541925693295178537085476737479387600345078038496214879342469772575123232031236061295464222167430612729331818273960752426453648018568071876729188390577845007915478400290458780583714191733934671855191794486700301574184352535095503911458866172190840879130797194864555254491607787310695730993801033717798455806151273337807643584966866938312917227400667605282162268846308164530316557636034807883459692818471230791611424222562965831468312564078269182880583676821154699302437366554948339186811249302838024172112011084630277345680898483436737428620144789550159297882123888516019390218115986456519163348620133643176404068016419136836695423105989207168561923971204746849911564068199919463925638014154950464078101715185710229162704216071740134883261762153897086409488211519731199459815198274364527617928198043059226115681311231430611815039391028266292644286189954185842157582449932170740476890306421399421498587980315979098370759659570490107101959620989544141225191680533742777151960842435851717516308640249149284195941388673974339971383623753401250341306239385030784274091929715766878364478682917920514567077950491333075635664455284422215800827427259846295599297772602279896413933396802227620153735392117052847116207966911216652114723505971776329470860030579620777103675343165495694921892242302471352222553659006006538844181662199610640934160208319565631617130356187571533766668811079957029677298740339934690096763442770007373677136069960358287992700141042304253096992868471034786332868594543784047288397942441532879368747426672095699233973514862334217127635787650945920578539134463166087613346630546668125495185354926562913936958813108326167242813281750719711885979433840121975579087831002653029860840792724235772835784687784197420689533363178860213689632180942214551079246020082572437377236277071252306022198344320148298690056070627030169583632116727144536933303888727706187643825072970879941322022098035738696977060183484594561376455537634852708075672306758207066668476572176008978258557646053446605191031720419100124506880828378863463310681664167688510956647393670201816041866707531325606044356546826875286360103405810214110495089089956457089609825562235960628376556309708552708800844305576498767162058939309683160576214304738690076105237498468114769791948537283149280112983951844288630148714589347072988492239244385046539186917796181028338011080833217434412366389389517797139658977479503850707596052547930504779332993539527323023338420631880200006150544361339831454078900105198538879240154428647427176646690160930220207914820867578129235011089337774167260618247944673248373431939240563943273465662253947749551977103900240538913454624083672997402037130974272244079532941601052375921624377501377180838460775178591010577850120449165615631648600584085970851538260657772524142105141464257621669357596424303853323490756640866410189249332605558382983647544477304879555898579170737072250444654228827159785401152408042674563136578032501445711847454904329442168151009513275928792139420438710600989131289169225428705145908449658145743411111495182408220573622112653026911280692243439756630245290631328168830526879079083680286378663546305788862216844189293201272250789778709740335559847287480801511199599250856871955773461702416432636150912614285722965048568539866430332462581433175945908810790380059705426567097728946767254531122564342482328836051562682516631517276482426804372271406066222951936486181599974219587768702249367583379308275895598686075374999917614745409514740427685116622775836387074127509147172435321717694061736793216789243993103418898827274065911309412291801084492074205935923792461231099643289093543591157046488869101474805259137269433199419903377692145003356026684471818263382654381437642621558407113416884254082268524725198407074887233589690580613239522338158711995845998385199008330333753240784987481358631672335840980507108828028589619145087325071244322923004672455505084136777883812350271938538802997000704057576965632592765511898125356073350951595230034288269644288104852141315711147200156520295713761716209816673815902932660574619109815577651601479169183877106863195648651514938045462519123984096765238040576202428928554084856277844577175206843692385644541806702670289770362379041778779037936717594838310337009746457179486668418713130269838070908667025187369256483884461230910871614554299191555606688513146631987171292235281961964637211713100215548279062221734521532853139453412676807738308717944475181764507710531364120659913032407502599445580624801860169745990191851930665598555162498829621381820506803458040257355045695881784917972426686547873136162797988515158176509108232523519795650665593677044077253405784775573262687936276226032394751578051477846688007990204878504153161728014518078004337425572468486548854254327316282106772131623617529603047366377220974770938027574293232292084525907921228650124794650852328202579744895677911458775951679140557975543239591052965220331299319326350786334877040974231487386984419249481480168754577851880055316377092529782884293050246767460458489844614405079572295979207220151253100121875691352084613011792711748673366817629476381119053051882335112695153682278499467115149439767546923079169465496077137482769729670580328615385498328531991243998797808546286817775311797243515563181562812901441639517314838504004529983083722921475415614236480608946020308446762159228115250784221611316797154594039209157744013382225634501903542240813222002561475642540060310049743892707268953702428182194039442244783675529965132574167818853858461561807513349692569038864618678957554683294472170244305628016987111553383862922688318959701532556790845622860227441223437340484912376297762325194265092910665324512726384188137410220141727346230197151446298862795586284609700398307697861959563511341452787752522602235308749392197279474223255375720565175076124619695339697101486812883057017931063324120873614730313204458176545326028447327744221121950258810584237072288577433797507142023445044821358607676283797433749946027840358807591529839989510914387018117058284322423461197384941761273047697242194786513588962566896299353791956247501945857922724672155288777979188099670803665709907144204239599757753344279571341046387760284512586546427601951319282818328792648925502783910174333370589761372735469389280256934433830462895882640879029204967209440426537641601521184208193007934058539457297072861880484695932509598440452888628715685443048929197111264701462181236100494280210115083062082054281701054693722514977080586059890883730003444160615609509190548704811711987595775967243114003613462025650563945138974255021312491485459683014417179927452753568438162480132463834485771160941649245105168093655590108190344015310904076078537098511186731376046338806986895207572145335493722564921137742116647299243366587707732476058388563224167706378792423728189697505545604647362429900864481630441505660890918492383834467293510787850932104845749710797284717137385287858135288828508252455782837784708481412307794573370356260175135504554412186757701224436945027445915611558143321124946552869353957730101370719906663667766631970093335698017874565731310218693955280129262026541021261733321213810252366819731993759864083845156674762607281308181506427997449775947470806952765270267921112182832545488127187107509431489020464154975995347473036111612198825103873995017955663215587765243150006610884558738892798327278243958187604525596996945570764414342189066044527629357283995376043612583371948555334315539816992969040013865407049267519454821066069541060256083114403959283410298335838138944546584319221431146146981823424154394516049903838754263249081114528321326068063465959638733592971025839416930313657756816389571447756473258994325179228404449478753993728498420821506824329235496881073994057424341408863442886910272619886989673695180473090783196152574401332413584268761721146821639015479977711708048872866357893749503400185220016788251523861670098135466258054840353683767389977902234653200086244489374975448202787813026787383561945934991524977196835345146192697958521262471109637264160581198613168729882201830747808900353140736332619324466474969259336697969672256769160068526250757787247015439232006250577381020360441686802402594457903320450230715473183197948917068296373203594873920958203398639221635071030568761872408613476125434002540489097341622782533523159107266230886586896419500203464707998561314837413317418455057257575008240271105221841560710385710234254955595196609924033633470849233056846567587431825857200408376508627783359845979241186344865664355537418656720792796616427776688455466893074459343988104693659251097707022171063319973697207353153202781815422743231009288757121175238231332928549488860098222408614456412752082334531317820480737805349859126064275228930435900364974863661817507856990759056031084146427179790660079560598592608219065321461197020126356957880789121564951853640473680264494201953734559819224620614316540073728574423864797842923070227088032572566063504698371204385355215388967312766408063374474374206312820129068682432183560020831405070040101954114980862673618656267072258253231566905419425666048894626556656851103761644775702099290093321466791181829580598543601992918408545266607549622320676767099762718198280544429569590946837264520352586077358024307675608691542826481415763719382196657644987483685997208351599781118700680379911399490629193775284055498748832668305563680369110324232979504824051530296808348090395070221968730202841014458037227542947944259685686575900603180215049528220022571955360710042365880257446204291004470703564296263401388719583039558818876713052210881282431193847563953436773125129806773434289472164767968046443208241157134808195822726961028817682380539176852570152693476230776369816009643035558402129944511725338770728123565888104004207494408909084080776898414927414583266283750017254632461064120098326130049896876456665458433138687472420236795360878680055377061210872635885587708034336691911367985660275041566312373438673219279312205776574477171542104609462668554167206920797884955721824088912355171733321101939736142273950144601777648610291380888347275606239822681152798621359707612947904642374610502079213444339521016973211871443586930377300633784422034047780916429196000945163005503845638662606408230499646142376143907626465593920614023706428767069033100656564553402146686896219791770708292931506017205072270478888720806124206161127184037211823072282598937356286581614557850174384024837484806836636471375628191714338397317323170143791891345929995224685874975027658104191098371312912892532642796997939185576525212953088779751556255569542935227544982741955674551265086212469753184662618470385439536016848432837176939243958527820693971692496943678330469080018647356248498269849519407246431470470219249407038593956550945798337029518351836369994031484772352623522199036007094653374022490235149038385168392538221541628012905350069949640978206349590648265369201565708125782086910226217269658580553366429841343639855674482773355445050178274253912901777557962008825972110215004379597862093282818222266169405712065660070004294793135075454655666987110639892678352966761532061433797927719920394453408487314256817546080778262474532948154575593328385014959677870441043298343952657133487687973509357062430649409490955091628787360919511573318043275755108250161517044096905845473389207806181941421718258152409973271753372498096962629468680408253468698735939960710738455735369361636844870907745732652865081524995533305414761773407052453887218388690484526493981284279195701393423677802595618118421446764646066635282625934189915218759809921497812483602684211403740705729696787215038332608394090529029310525825185745078789380337179428172506026866716407053818928104859673412029062934958512508497145708063281166591309480176517324059848418396268681532006712756264375428959042572043369616922519366867260020706985501834810965779573840785922361786771954002184663923424957757319792655749108483382525928948140451702853431394579837391718710826144056918072114618495171963939858570584347286874757086443538660054760459576836251567466899003019442393560385528473698006235284029245597059090103297852461727251012577968943761844908874656524109421205422466777898700236620354798986522163483720667644631275359176896064802136592105676315867051760963989985403992907480050652990235362741870104453875121397387576281826037999087994770610046422480277545631233745519131270963842503195761609885129837484872467989150008668084095163413917652665517566252066682754101572580539832301829999460188579071246206509553863328287349839154327057269286822826380958822197040150363517293914705286546265282069858916230405306005949731142295581147558555045992282616649184273409522926816762273276065791278889226971770271926474755066439204909459191175677577723938916530293996332614682676507691253932854136734569212324524571257450255607573150793954288124457386309013980123854828841753804987734731855131688821781685173568283311780144302018033481216368707045252308082847571659145161176434532747484157165109475721807532848275911347488458286032136435236129448703740891684552114627188071978694452228108603944077601599861916800037875498521200838970653703576629373684084233539752308395389814934730271913317912229496673267053786616705954718635156283357587651308270125615936814859191410474472518164722323271493935254137018445750148030754374605020464686873337242679554773363316059039211794218943599822190201248426272977219277494810114715050577171187695478388298707463016525018374812778499465803186782068116625410540371518162671364910959536727389355278849280786481751753317862999867426597612577590363117394243177813257007459312857475667918815931703961790898606238036397350770388142795923369661933801187837492016064769066183848194403253743592004865387650907683617179691740079682759566130105211952179317065417225130631264509709486236076192559245696676616580133243396370030507052360030773941598259641182371821341891326492294975961748450490418725590247446588605736648820455168160705396263909633054973448577207058205147623848855826989015509546447634947592324357431122057146594339949735214676208706019912836636194106959599081801339621200325690453539925500095238723738222949214298832731892404412063611852353039038929472815657215738630765564512527735329053377373223285058489930242563418447558031736016997812314895349894618441242553556715258694364520835098645523883613337294723079540232348754421783365573996914108841362517731073725789856935731470636951071097899647493087905429577025982693902689768402148574475918461181903770712599432931775319014771904842310700536971785607236566178320441644125622775651628555784330404988906804933654047906492450909330344154610102040212598881309570614815841813355897974538575152671818160811880502221790189736059505722810248146353843729416791822140055647443440119854931507091268291723498875814188816122329576643936150279968859372706193756453147781135104124134325845821782208249900925263881952811907703926527300483597973159033351600123666939861979676461915256759124493395899987366574038933064203957140541387447662357617189655554239840476119550737359776460671840012316238376754721484670323519605593575411279461784116659526785547020753360856690256750610707742662923545632030588755073193492739217252881156825464621541068241026834719255690146175059755222025375233083550176642890596199451429622731062789026133403746377148144645475840812905451406552625891436649152227465320302576971370264391370745117348102353232736091511330414231720514986756475785100824509835613107833172866187587399752799842510973224592464346331712101553444073025798601939609484481503620343029814495942081685865341293095559785343284156551894506365840337988900892548415980866354443037312136229832891010513240029461174698779528507029974422318476089031146084369743797221931482795505129926752813115582213791603466846629000497698618550963263884486021319440957406229949195051553760287068339343468781931866514708360247392229001328289047977503199741730160639112016154276207037332844568738626270674343304387581529675855436007739511789883094605937850314071349408855103061351265533414658639543800699559443383419813614253640518618610134944299704269426328696744394048884194673508347070570931754611867161222166543317469750863324453559494223846224619881201823441619393677802597568868005233007620516137813044714391182629055689828543396455594420826415020736936969512888505486667568082396260072816746929310470857180970220246855645337356240674481150227553505322015751699684584636775697789129167330401785565425839933380822470467061916927183262295246580524612512507131348688716665655513424237824493191780905005110892682340472320289015861529749877516974813485170914397510021164371308310907653374496987807928031738470546053519759920316681892947955143033343095034341328851726483893116738513274280966370723541052158156825668895153985165718500241525827645187564574087082488528170459864521753392788051486344181618382617446030588190229697368325900875209313924599698163118945297603469356330585629862100638002021257337165937262280342094899791995794801931407285692479718144047763607914757132736929636500710134111669676767688891963419485566842931814984895455749998692638225024815576907107165233496474841480278922215677318575739316082845577859206988908883484697402482536878018637589706478412604648294261107129252572804753501261929535039132413211460743733508960819760565848072195065838313558032976498690677930412275899543108827836083852053169397525089295952270643990880988436523910380909834082384194392904920347305064548562560968058842679391559484350002003289450698544301466533255462219318854932531714389440152810463602319260526289773997324237885980268617705453250094706953159477488786965843758786871354363697809365308293021522328226874728265934298041938843077346324910983672737384656330599256060981957794808183909709692692575980530030940843216630993618583028019441871435163626896961951125398762739261210318868171953167875094656646400181098729174585108020052450307248791987234012614853094448746652726805734502788272955278098755761543839274803110121179166574547367160507220408419052234685334793443109677712544777287661126976479051493228081465084659959338174118840574279196252897267290800055948778970288872637956018266341844515376882089716500171404495494391951255383000445885557697009899576570220082937021213452756147333569446991967000691882727230323266529146346782614947611209432726167764062146284734946378259688626337374766124585109756646095313925480150230991842564000463107505866935924356336093321368540913428915464964072164405968571675516574533654483294622325608920163366349031748437177713904255152806109814460866179021501619727734568520790062314345521861472512474666383472586178821352714682304274393439508267828521431851497359475242186929170489367685628485663262601894100915235716658875790178870127461710892470107733271860669727935480752533392961240813784748291059423282519155505760848090297446970180307787651753918108425115486430055666553336369280923604732540199136194325245833803705051423386112142335458762281736320673245686029980369728627047538184765250860577853391955664597761456688287376705465440057963260724530446576967704562285607629513460172042750993306667645779186689104646257453263790146574371729022122120122890918232011603258032927691612089803752179563503510000454338690271062460391126273131528887210050477037192351322067895220539593367536731983500799447794231755313068368886239681404039663013954611322104900943356025236240908426117442184147623608051887207330051851172919858820675490050038901487329371755587643620149354347132116053128393105612489595550071207103548616939052497415282375084345231078027978866533581088386273096447385529104635373430992758408011731462225896170368028348871306031573990284299179839133650411281883772353860216404469227082406852987777513119705754521855755427609310104480042551371012341715581326092615092299217089458616805665385934880151353240131877359011191551444877545569880396780065819622815942525230277976361384102754155932198394239742203008492403923907775827817389909518280064217785059563367542417397286335449471319816891513537060832048120005239010581952953397739721412953924870321159402980395054060218706894938640798703224608446187803788691058798102314949606352955608178731165065057769539001202616643179252325276001930927809151604824027807226698519042784535783467722326711082389119602805939839982520743502006767773562566905599154407939268297346161161920946234085521760102748951883013409810021735271383010287104073423510049966097553064698250832818989341983603037929489418171380790097395529960829828007451237778638552479633442188308866000024726165866872268098008265476040114549185552721274080952731022428662939438788376522543676967022532538973517396739222776363632406728686763177401896583420939574239489991036248257355654156301844017441250144960175320527275729873122455019507082841752185989939197175876824690866083133820971946341637655088553973041272502000337235096322323626195076607267485590243840567971393809929170175305698803072239385744820380107532317277525318788254236138556499893303789509518557428678363523326175013056461318909447690424345800148239130715210052500404756752772874062953535966663757264098424892771601382165132648357102934075603738094049064485932435690132376811748384965506435767383655514390871948103420033508723945606359177270919827394817347683077950440325162649290281574771472880049279171331955527090203107615164436556757617127560575598770789760818886526617417318478741550002799327451922204112554092881834389823348127346671612400603551187365101692590773866733898845158708969965904401465202575700688886643396198162034273420008585269934891083415057473897511375007004508447223004710195576658226335232896653494699927233198829603123909694144068714805698925071917180105119062429374693995969439212151362066327141408166618227909981474263159204913497683167169659998149313782968468707517823478803886028760358195976688115993031963814711852432697188895984890636138579728043682537058081224792574566998278328081535365074706443503677428757794687857811293029536899203472898650721706710091558318214989827953471489030745211262379356968579776649526171047214222927353825184376330739405603622153131494907172755015982843226944498365447164082544056859935625793847853877689639176324118573026414782349833213237850827007383865844869585083710235551987029219363894584607601953348720277901048163533541792131949659113011947360480022502507723699802387287498162626903861517679682050853907003062437128165724150515430783488782440283889456287390688539103813703270110489945347044084760358909510531568824305722737977347460769602558519708606069217979144731275959429755871632072435672010634614965744471525283191028219584240794871404788254436706499066637031342785941973274818787363951856900736558023837751242669063309333084692094903755972482677962850287466274635567051956153724914962778719985405093237720646027688559837482084033246615229204949172568570446010693678771705806443754691299949024996610611162021928669553566581039385027839633724988305739974722532620942613569420184407393508410899697377841059196348755807643186599447736410921131975489724136472232669997971565439489494358654079578526728498411722287753915889715206680365694900433769799463495439808584142126489224796637648121604693825918619134687749494570649405100942342523793474248998722941071506124294486717121553096660385116385739995936461168116394253338686070048500179045530056160083481032544145282942539398829392435849306596630487993159323616315805771484738019907043276507805286170401403828920287464167058841938996634304802408632434563019900356173088153916555271611890591319847014187102689886621922326389413632149024285986263084321702995349904327068588767841877185385508623137369853190081392613342815194568373194057374955466504943379311268805857866483359808598132512059118780329381080064973069610783273330435705681935630833579060588443183107564555588066500327553713938320474928270529281233815039114324163590319173972986243645968267643865296353817902350899495930194281891721197689378849286095251900629187935229254195005842322591864984577514496807025774569441987451941723309409371066081083492377430118699376635608780162334554987211156733956685614055823295526716940077287114643688090771631452541472140329110175393412282582653742716890339219300546199220575197555622580568431915138653129588847732045979050359100831278726679067411450913929535031589219900250218460451322618737701415970404502571056171679084773103157045458933904333316938912052226667497738933065030056520954584151325629992336648895011906930361505926145152513824932868536314140809389052683375486379750646234626063954894296664371791565863487705269837851192253570002473984981802908778541104299865245343142933252854644513050999854739378192855250463254310963733882104060999611033765077319173705705075199525815848183427709265467833745669570469295474887716634561458664390431876439276162604189717622841451373226970324986696581576381041224289539739793426459054373391711008651584336611690070528967088288291664631022991718817902229361185484615793634807057245668875929612695135841604254741063995825590901228196097062035917817471160262880291780813651518320616043002021942957817000494746677763669571404106471870120661445961809926310392252747752496950329840842936314111761271149531250766155091582903050398479672549584543788863957203336970722629452481556246889974704258750829999280181221604560061234672305827185136145455636087593275758792325487765519572382872421738301071268084194232752537517620676323041550307067017389157047583574413808148286040181473169891735065614806206378902132758171491827040441469571203383203341074680327625749593497638380392452483579783281269692932790801926390782243679918753713482657870654074266808284752306356804937193955717941012476136165716286911872547312032470039887952719648139909551478324694716079297806835352174370718053572548139620367793898511052592887779997099876718321396498421618336358591639269965275286264467010608655278099456880885374615661739586712961295804390739905865326395999768640886123605414253711259927122089497729077401800155202789849541438108298251058006549649653727535871797254182672046125484956540660514988482157231252944677137334454935228794299371068950494755883900676518366322685860112491562537773843974215965100567037224569423090038880562009362975671990458614483019201614256873586914297100684170579202893686252696447128157338387300471563030188756368563279319846976364857420633961674213999253449716334405064607893264930066890457633059346029421096865111347582274030134602090788986449526837521610987672936726670989381193019025403114630745561484819035448748969660510388488865119532865942189983348171183863157665572929369542427050469411449127570505056523855001687474782025656036977717567030647652045974941704854220052583527202408985341238610308034379517759475413793118835891114217535180913343042477869404351210177105872750865781250407963903802043527259743438963081915754573407152432979213420797661462485095303827246638864535535379914717892908327718022638548646311011382599154703404784326556782095550142025398868433169799382979287858422786021997440411110977160588350515731225885282923993830655592410904157149294715944027220941050398041379841621267935935558264030322236826998138508982659315702614759386535644737246890606088890086277322236140064992813612210070773626417869468178802414663504649805804460859142738408141766931783005945619992359275342903138015588039563061522870499798066168880005088977500873337507417847432674929195611484706651682269691483905481712412325517256441044226377801158244078796604066115190418196827100989417579507759694843525886496408249293096364782003938413331171995806977075468946135517736203838783270421608479003738330927594814690938159970820580795379310041280882015424132081580476049293587948946830598601028217871344884351823496082356605134565118722118921986634758066771197445631998795635177869290284831740589533083327124674986256300363869410202519352222943808929130897608674097040756989724758447979160592318394035288755693680992495095935338481879992732654500829447202952057154683882108826577619805344171067708654908356336213132086701871339375271338184600280182621253368176747110932097500409214189814035856331420981847375913505327055164808643501736137128505773470388317934946916738653901307363328682971100177264141368848608668442554997985342111940412577002919718638580408757780065763329113955139896612716013156402438730038414680875320950133498104285007860492791153870275575735372617405203207587513104422999922936479513984489580240424807908408348809676254251541190869597409228911917268640073468534655007160175833470671424516136419855772285534432139572695909226220426792678125567553832929327694966350338629788193869863530835851298163365507715870236475310854208640533628839423618281871792563881040120343917111981811306317022091953925418224223281430007008799598964195083521685097696118688737999969695579428224236613633495614888711607977073588078675758437865487442432939938980378675797268551032816861357574615171210449777998745621628150326365412279405339806369720564892916042791974231405211346790337844079314386481052563402357743230806931271962841288267101998195897994549158042075647037330966228957544591420632443768953668843629184732513641661609798575039396349723869796320406544760081269408243203093176799415035865158722283182539014595069231946014382494689374712305556278964789854031816614966841242112673921190577663220295218341079286328681278121055772086896482410589890239628497261949016029255369306500761860876483566851631448201199259749251776460325377737018495549857915153905625481084039647189406700642078564166157247549304859008907058538914348799607383647833290935629189935729409482538531047885209285561791417520382995985228944278398652756625925100628713450902015002528924994292819029356534136484720147442627391456122975238572879702212175706302481151919429677532258009372627676322424026147799738466756329318313668460296262627248673478795004867186618979390523877758193455802683062529269691733368870245333094773298634934658787100740204893293061896514218900743643041445846887923154963836352233973742759668140141468933397017342179078690938267076829846954452464340200978816674696427431010718850310910620287220764565974955731482902133808512718093332787303253617951806913587264294007501416313264867012718320838759395437680065766720483864912807620456262383336949233608603345767900117428499673826478876227083287834157137196613642282634218545602701562004235794142517050307737174785160826066819613619222398284003744108086079790251814000069721531785454219046575554233841849890583586386430081661994628295082494764924409164680520320866958617671132329569704331894503174508649585425977557820671526281300442465345092451377985903965300545896135266236428984408536959144794767296380563476487056081883518165528640475392842372201743423125425145191221298631190638989637754160839328272328973025294288742269472917334036269363482290481156987113764218955935278522010053228100592170924649510458697455560685279239857498388316649820223481739534938322040747363964485225380697000137052901722476785865317812333520658081980799118524566427164571402562248604127859333305103041895619201704106631308031021128566054851640653049284465443103936690973648115803233659587417317510876249278640769322945493019128040242783854577734290083149269585672436370406953501934778597908941378963443921615955473057226067967719327482000246632114227953991688709724524961063006470089521491850408919965718594080362577051566205484426782424647502560890268653476544599726379147633637406105333668028536296371949079148907373324195234068919397986892355827924021151887299614435234519870607406780988892718145842937080468302214828480305796031013481488170001673044970564521754512179993726925389488900683255793835375742315741371659089498618371212875419899265905685406711770912942699332548111171573144616869367764595022936504610769171550364240253372263111407770328611498909356960960448961064508843219888470642795152974292561433186654448111486318427054755142159333066932940626660820410502958394422091238103124279462026529032101040782231375056029499079080292732074459736050534445854390920694420525951191228046005535571253550743059371860477315256848743719249378326679548594489139877908934716516769957442478638484622906201042486722170885001741315724395346661609132763266565144329964978286664845050962665567787205139284172597501388651899860477579549873950446840075463616650507940019775422943444235630490988144590070156522054820164122057531122747945096836915994390607365435372405228198892099208247097287928179480614811899113643834939688622180355218463215534505134702439096734086011593844613162466007457328500235218054179559834230978576986376778638395790311957358488785083671496645195383861874193633883531201844778791288747243065706943405027713301740829376674319930775971026628794335163893914059292755728801009574493540471038769432599037465097103794981656207189255857254954525127065976128102613666186310843129512131258028609214539859496050259091511160248600066665706825980375705741612930447532968904372752335460537078770300267098729008222769300499618770258639473343022828810211602687500186156762359064007796884112855067149641653445450594413221237421191636250743286714876790928299725904886298182478308006882467703399566463742111590341582265707352015244511099854158578631198187238321214536228959671315075050599246294258229149928495586108856114552705013055749320874996053038933534755041371028591551260973487117426296433835836417009103095480805732752736793333262192438037086652794336703892815695123099882651995659573845266759222076916906051445921758650880381884867341225004178217636659313010244276153345607243304739692369102665535790429531710082567039454822412174824261417781940272563299528342628899180586063400311796012897631912025443027452756128330911659871470590107296164444425026534865750373933577171973155651683904289567880978822439719222004966034046534128062128349547790146455145977993316535246244029202903751600355540923543276320315311029549880117829838066550129304943139183590780775133703574839749739933294958114731025154371259881315909799202277361108593858431403834815714979160446846109205250487209581136500626063785355842196048203956906907270698076680814155578499086351860867255354954582688536955985543429184988545302257611134884758030735759773547077693981243044624359568825262345264612503090879337347569740185946297896412408564317732921505098886965427329008193096531766585584627116440727353551076627992374463321319966464944498361331266998628088405211562675994528162715758021614584918643045016735321183371268789613251052277262198990453457992211656957414698034496503239641443119305367468419582492182534000719158988811249006893996922815298903596848866386951001043843562264299706626987021401468956211794242621399451617342861594447546260778921137050776743238616244108465898155848935899663965308028121176194491660712815736932532502059471502250839445467160886866255893987748837740077004728052421619675754649331903366964123353622900127059864978580331623094274026243416500177410549440127590883156515772711792819057784497635865633561104270151083062739622528836279878915096880713752317510418448190581026417198772006571092904271331536604098941532902480414932881005133239730761335381743652215832345900326834504844106798435828954435285696134355421149737329364103751861088756498496521882235045120124969318411708039539392240665453575695599441630719846087415507223973839147275729608678217019655947251686703263809825793329216391286178482254924046679714890178800420823248170861881741215368562944104797171670835684656157438831196709630234996743107835631877386358329970521689860676659933211048403398604179003788808533645518364512753914083886903120961980269036407100241054630883479632341076997677445682688616760319367125103255586388569739889000546379975565065898953858427610314773106157803614906799315223103065465073095549423364807872725218142521212828648278558574817675722593828976373534701999827220025199879315694805622516054425600917036508353486665806160720632756857976573982268986569351783722852607365529121191194614317015146484405058090718740858653819577373605278949924321452460882104018275487521890433121723261750692660131965641880866495654188753339588149059333818490515618696578328900911388538059539981207715051117800559273122763528751902553307694822544396522489246890436722309734984604246046593554026701017584098294039899765398796160469180524476718569360651699433519575506923824362221909458082217301169611900989132147862043239820933322554778951609810561217616173009449080474338949807112597622843316604003480851598198130559788938693852099740616276031648483996572190449214430426644397478295926459582115476958113637777115726153133312201765304679439254947067478553958339348091037238421193412394966711596935079637515617493194898973688636803587424467208635327038080234429866846390513524603300723079843801743904405164304815183870064909867914838463826052369189687912974214068914988562473348405886759560958911098927085236219606432874737410472359717159726862995466925769348214017371204231186136063732739998131677078814303410715407359752496425121731564045997306697980734985690379155655224787590635954592544845199788890818913134857584209447951117101646485219420307385745286459125804282027775270487095930885366742910847928696562173901264602173818453515891680233797960978756995433379042190826235404430891989415120938803576084985101875692042428026978712298942420416761446675377208411311604227975207819141340591141450067308339208390935932283633664625464773633105922288053980237666894603110534189976462837918613096402677879472401336348356264090683485538682418765927057605971861278414301644093870264430525328251865461179522353523794232635268474577522644613469427563704477236130816368564819228022699723796989444201266432889500848656746559687007174061261504993530098019403101350714270143168217915863600477281457020747554577226261749824056990493887907199540838129456333826904867849671905297656127572868690040073032051754637739580873743296377348905594380817901253731967403251153878903417519503873782165841559151067101912704033369441182620164414644390269508367164059046542224935916829100045860652316510856695971174832027770312472152624990154612542378563875788953212584531567175132212926693286337442223658864769971606777235732459173647602892201564495812511528697836971291583392317807825445562361026198118604076889680698927872331176709251114632012235696689267007616294427570889613122542833744471040497371430121226052150071811174061303419628901396434797770554986442326108341258190912166678808557826264168631999180849676777863101988972416643739438610114554951199719564154449051661392671991902803953016335313433394823592133277750210492947796643710928829771039572157077434134881054196656745171562943289054819215087160855873635695839761679497144135197203383831752069414709614778665363266508525833719119407710619237554676471731681470204970648315676500637757167586389065768471852137777396434025240542618804162472812400942419775027257493922775031471802286939966416755493644269514716108213278924056934807871484904473896113639968951286831484669863690263253792551364132404269320427116910368705992752872351668950008424323230479980132716412486058942102948337683004672054076590543338882904016329801258443945332799025633582750479642170704279657671703918311363997542966860546670832064495582862752961405736087940482564897884234746924450088906853695890186756156694050307474800336337676721951291654140135152230000353162503670672394351231504683631763371823249664920493820378411576332737987024423674155458340315376267494860617790266929333986659953495513537461787301945785793282292882711949903962364231287996901352803042636311665402070950391576315490620225707352151183922122670989723888076004738378937825558328313312700538418693424781649039170518439594973631420309659881958021732769689976378770889601176710041947236154274107516546509517587336254201111703260238109223275209604095541655800354683310980929455143546084724475009452282183057944492907240742817477849404283191773217812083575041422622164771855609756607339470141981587204307470722899221031502231865519206605843818848641912032262278692229866222434454373757793145607059930901638249281223434913651583433384945452930628702275007843497284551934528634997631743569822123327200560101003547084038711439227081877781506559656923272062711587643282632539699530877307898973379209243885321574766530509819193818673692246748143967747052854332059243709562648441850082244480485338275801610760986670899345105309718239434362787929983333127257496862599455293572932530276160712217856436365055107075436345070287423087848186398718394871884673115675523375521891721976031997180607676809617232311509111646811253406222603298190523929816015939194248563232166016078736982528104898749471377622247127977473654119829675308632187429972490692775200157752099710817476893755327162132472857997314873607571901381211293209248285651969067689134533494434029287037337891197119692689351339027004369488992307635914882772718959562437278816303050534397998184081865236216906169675408143626204725372366179146240722081799446486736761534846706570821102469482984966071979546428741700164587397146822169002950228009571975600367733193854233898562035438068066386074233019155607718437684068873288355209846176621100369893963769595197244335586028048739114934238486081756596988528036362684376642725632451809655164865179507992554985807051186790374993181920961385623440088630701279959678778192113032101422699296154957065361351186928297871857370122004926374760331334462590732775560102326589561961842904923279632562924584073947662440560638329735581350096195952068752836435197348009610399054051879840053069366010111481485042969492493034118253770965481836848537833011512787323719828527568741027494180124164661269591187385306764922672590172991027484545052300670515861920467629837941973610655063779555279064333382447008580911725088250913627507248146752712301456340304540829348162405958453568994057645424363547866727320892951001722126442536961795731859183898416553961275107657903507762156522712057013051277042190094349255158235313301005100199670619151966339821876794889142945313883765581964987700775522278692593020888565829112806308787331377266417798794395984615443917926303540242833295602380609962847370289632572187632282764123995173533141919760815591494246560419626263552374273621842046346641097837859948879680519515330809296109743769299711446670554808459970531795628276601217859876455155473319189791725615578414344680423859382524784108495225119126585252123850313986319653850052014493569577569846093164394759534895484722236345922277831001876276727812669722265987508852282465591143070677968189662914259006018730570081101323728710852178741067163139189644202914574515443294667804480032118070291117709898176985585185188631979125845995737796066435317136890763395195767837961656241797418595551061187433233869815057272436380751619254258026604998655689726764152371713154239047025393773291350026021063919742937829424508855755904027659993113221900839308267202171152392583089325718767261266018297619972805261286300211762596347737304872102783265893757680096753354850655296447440505081734681218969816320148081717155084602786550930409519211574873084023898637141156243145440295020016095818299063125256220920440468920432708389412927737330222976219962266846577296457850396749358978171155926944186299029027593783901109483336344958225102006337223685159975656661191162695303802780522859564708218463338966822746133129325810272152684778202000310044133938474320990738130047481862601114599179517642944196063969337199301217347512256324688829195213344064491607545309911261259498429700422010821665077427451219735204452819429199066176755445563181473795498651298212919214143395474457457934868347066737512945251001556572394748487330419703992484352789650443101711977648986716026691662641324548333184329355781480090309116117402592149052406979885444150503428852917610093753042044764555615908172331997389738538608445824633552358090337291209311021635551555768161447509117721552633527352334182946932599840159372435012884878779463747344962918046648027152896867005163277723286340375842897757553424989255073568978486626922289301790119570034968357940656760870901966913957348409578747082556301252482258018657437288565252764261043069395220664890657782322816258432750047740278561181401722530908409036261266232463692794148895282185581249126998164791349024908575434877172545260000941571590604623279870536012797495603140767875589717141181030949936069288719404752432921187150772810412742427346424815998527926596633053044705521905934608060304846931515212059086456564907679420044498936175458366471530581100455328182229184804796240237726315699682159561293968668872828171731022759930920798664540550814134758699209090369900750694195407248576876205376761266036132784211480365860544028839350176312744092994226882278536709260171312532009598507997458969007949496912140918172721539359461776851007170642786300124024046299990668678574835358842164981047982664010201547324676805556297692490597103091674091179254972845764942532143663502418202853539773004683673944235322174440266492296496923466585737902464467490345589432595109856861636250291980915330144517955529807327486363724433472951172123289504331223117259042087888586447020741108543566475258112962620433333690879296985516621597784432922968865763901843168218567637923400804927548882793055129797883284779720097070348417201270294824515626945904227587951930048599068939975524715978584103810623454587333816941943356385344736377586110318040114895737236033836202006437067967046336789697699734685114907487355107384155646857050942099364877172550781612206228184160606921762257543126694834196460280933646937740941175805998412638631185979001305486072548313495478946321666570610984801091460423454665821680417098361962305970683777474744842776842745630462555627887319856169706552606841021777295207468189275946785616107082922659356142030381517024565295706350938819735361513176676588977550870112873795477474686702005012013329954315866426389848130605468688697489604378111768846985398776240222090255715454923407321659944980791060241446790024996811038658215377397970231772731148276405481053286988616682335652783241443752942553181368391383868746144343988360095299546146212581659463457669598410716688384093409867516005067260138361387559441340071554295204758442354474383832230401603683790572208971115210484933074683221007088999654891738403711572051841315487384627433869407195466963925013164893495470227048883456876386110549518207151044442231743899992381255789685478464486267313265466548532601967895385485372039055659374955333992800907789344773922195359392685498890074834910675989996691239332721356563424686966749823070196882448855046220572173732575384279494355161118841428339087563605392694510339995718311532353470304141729808210914013116401894858653105269634686674905878496101823857627521002127147967440075123663388032077879483552091764679579505652938607966903200139099239188042456946982733965430477106785950058689870323695744206199562545161110100770665505418513607070860170723597627633968121239161716872477841454359080381455929612263520472487172533395525897048729834134727184789584271354652007294187747074371821075663680897539763032200676382729488165692918843507997615721807205587568131935234922168355112637641979908852965992493949437657661188698643508180082644849353837665004324088502061213265360052541231058962789910785527066026153247215722094978850360524569530294085181709276360249854510533614990028064203785033838840774720163131450834847132049850605398257788596349849851839599378699076813052705756644555278975565496530903836454725832917787207882145944759743688430632813191250210361794401189194892501945793340546388021191438738358374822661886715570699764283228138035486595718715957689427790167802671459563804896479160861260842351945381585178616558807752084504246810372723344160848813351514752307223646103053708626979262802327406003657454133964477947195833218140098217014436410544444252929036741855855322993238139167469339074165427601647586513831183639725204076534712700362331234355665952163698901712602913616269496584675670066885863614941608226660973131044899406127351189170657821182731018648574643535721586544566644735662154666523400402996640318660573573012500475501005493676315995846536034058448900786253322141788542204291857633512269227601799626684506389240888835250364253251608312626982555959108089702264149445650173484682145082508990446753556111338579819386549646030744843681546880885043345846338206649920975459377091229161392149875467256005132892797704080154624098138291309463599227609473424993928777854616806982146817608193160313017943176644622886431280401463296178792503475066392865368849018060265364001125149286958333960381574723622166355478952878813765090040299467290969505053295577827097035128185381159495253245710898156802798157115582099201387943438904432560169063357377157416520026082336990297727970332897436978883612353436658889930024747649224211067834526352989313214396961892198683219841329208309483088005979738193979196351706579681929835179225443327899920361617720758139080803171732644788244553671041258207289063204288968502187462804015004570384117574013511511357137925110440920504397700953491884474508584135467943289881314253270085765417390542499722713010812855130338411360933501493528241031639804483366783730495462561235258747614957281152340391195801869011259219874004501038083850354094975685986357283567109378441941711522470391149240923401370737434953884781312526253322417469712327957245811638960205278710160570866379046392188626851256202627577843367540871771135323732290820464117137559133976846515171219802692794896870110683656043419913726413929822056036594713781776395860638302896605753073041189271894635227455303088273124292415742601245892281073900794696867836109573789577054853516654960273119288912587587766467003497472111700348503120120038748267430548267699927563233606762929258853202319579691542059079598554629254987244478852994912066408156052215907029339388580343387720642141453547651990382883341923112343126540445119989295584526917704125106061050897188750788695639860156087844723805409571021424264613460222089642115438251499518569203072652395161735460425697881579234664304591217364839351985603739472264343963905258011927173062726385715275358456570712475415949254931731692669721521373085858496469200581294615604678063988147778849894968713505458501961510694538046901382835994899974203641998032078323107989106691099495222846868952610287649810584917346752280544329492061138842664743688573054332640206997301457223390199402452469354663300587519714117094725991228834184360251258496918590485296291348498298689285630235072061296788008542557157056185664965534117111614841531329400627111909560475162078734494223490226691461343701143996220454515116045795179274192055004059019274586984637916439414163964327978374233480904273631500910875450908217986648408892441001818920974789945548202329422017928402005794794907829468074037881478354153511533995168410274167312869311297224710742254501521689306942381486221866034806886755420799360386224201708215172380537557604458951853845014600025130796163872789839052631351869807601739469198255431671396618458062888266785008659464794902654486262044575102109461844800744226641908876133822798520387578176464235050216758911317543053714025459826684270146595654702202703105448953677878904043238132436111344172820642638647384963378399782049181217391981802522603203192055116019713871318685173214535181571756370996459302416102751102581487775451416232921301682427521885426462287058003895657421950753245279931080639661250584673462806969524457852773466399861546656129699635387359949134429124269330905336705175554106461276616819013884442782538385899763433423081027185538257163070452604490330367281788183666793479794608614588435532892167599678520365636490750444361928899203796074627049860262914216042076935588153839013701261210904467243530094769699564111585067520677805353039292180037445611001724703551015852658713109120720104518531223813524677671937467370084147685810388739590952939392799761314307548996593635735708596965962329841932024849511110215003292691087189389771208968673199592305557827030611561833036778856476768653257370022378843818756930956500392601355079030870053332302661724800364113772451057034991085289444404808907535481440998338463032422000570203137050353656124523998264613303762721713836469826451434929190242781402556982928759237862514869046561305709213801175405617306774189298692621301955039438271076920882799744362550990999779132422002705280235807345059515745731575738177561244488807046521651986627479106775013816068637112749145401538729881673209409934807842012730029086608022358633192705128096946806551262022979001073618630839960068082855718031236885650561762684909440801657722730463898955406680495664572950826822672980028359844732905528932379955580862363185742064793777882246870696955082749657819182326280169385931297545625972040110449589288208626901595693321501210615549446873897794016263654888458296679785099734599213135985416830734728464265914101803533597338133708125853261341676065834735165954251710404120756570786577131380366437712180219987938642982414566776033784164063145804092651919158770926188338622017327414598587916785194418213173451845246951524837528143147756720127865754977677589448361514850328958998581063223823059734641566266861066328610693282051890137895728674248616640691855380271684127406277063725964153192699956865682536369108240286697407330261236680987040534047508430471331442669032019299260221088662728823423643755012838245251806152966879260899286410318104268012747008560045439046360951522731232747412508969961293150430547606455919408876723482514792154143084545357748410337760164259875026180549597976383807690648458549549933324008181191741744677765611553364526521210841878991967699714071259609356373174393164173383056771886766616905021351579917554274153725353914842282751165188188810471973251537237072865328976232634969076974867060629719879209837007469882961305261593684190987109582758877237138207891108411511167252729639879521976627410832845898669519991145155080062240439762657320249187195737020962908691695402618854082956962138558157896711232111990080065703458436243043332143768819139529654165172353178311612687603905813464955002263902090176816763409929688886614712791192212144421950508164897274362741902240299949633697648054600583686504023584391698742891229663107358988248310320437923833240084707560543999964767596399210408266093437593113195312493262001093186690415854467514920022850039169018489913029211877362371803337419221475023188353411657830231745706203388207849583043423944991542853939335829008073480164748454374953593138099798097346483578061972504016375187842732717323248643372807059359170899420035139538529564440024733083064289749436189667272360000890913925489599004236745620863413674819861612609756937328724349485830450762218693672879517485451586713465458880653174158486055014279096608955943378217084640378452578449691794513408504408420151945368975950475418597327100281635242180149117908583651821299764669729263455121332612246279915038388723723789357041563995911128567852958927989341190490219453739660727594771705793443735660772946875111023356657018847556231710045501327107567203316103556257323702940325959907158765367057996305936070494000259396848699820825714331862936016247107981812901733100539599398893405897269442003469096835580944698084957750393324941804075896372613305988010194538506436833617043280805127416934491812277211238660559991513546243254760924955706048965703284082767296926202436792669671570176834195877982738346393970478697166252086384525967800200068507052979823493701877345375828363031374586549988261234883963371877319442385463815136308661658589723076571783505116079496674327728485283605576414580578718765146928077107744846394759632778502294148910126889992170810151013195924203792699614148277481176753651831974518388178608661756374913246159868102972507911957576582586535825334935939668895386624162396161380680033681400681769778466374327677261158702666288119381391313454332422838290016545969039871751733285871198310632201988484844617814495488227631425028388441355982958423282324396277324721015331207202600565326477362134045023126060562201642589701939905328368095376884143126574133520194656432391832066855114092139449310127544548281399423306425812210562838132218302628106802810829859068464593020274443091350240759577276409042652538283664495186423677717426505512585765406823914536047412311828873989489628617180048682310384730342437613877923595948001681267672736902982887070510199145172626353828330689095978690691891095892212235948630553020831131939544114378800019070061417212135172685923062691596645053482254754106371287903765839651988136943774803356363050416941802874237300607149574199217794201222799270556868051866510752201598701231369684611753704389717014545446918934450884999144768124587607058012714180839173400564934381870196512155865214754470982789595094959372837796630667221177672852255765552353197207294730669758255499352280211641481552101190499395711433796639791053103240733364568744078146965309980376944598370700436528802113250584646076645722474281569975675876203600742421989342963211259437570393129571882321564566762917629329777917317830301479915419763623879895123819349867860221459486356356395549385472511677504524271795993481209660204850493800954399517856594369227340489173815542867239961283033213098885492589684507966978515571739663879393135945312990121622660414335765811883041061467524065615774855968196533398485613458336523876129946397640794826087844618511583202929734907212369068238548882464591009802356764907902807422706655019260053655185979776972797933270312436550420092475113374038184686103496288782059908034101849866485704764071016748271519422254235580640846405706451313100356107136959348130214718149170238369211341623079506173910816174938343777707641521813893974319912729818706875816626053806800997055561336881595619055650594517492031887320925908599817059311638688535064106890828995196336942458086141888962255878204814141912959121608009118410141868781693642427831699723540832424331783788608787334626791482831175084089053477952496385603741075834549033319178648451701742638834341784174356055080868154079630364295748413488448763937892876098886829311656660819728960095747035666600559971429965965434545526924132117867698147363819267780529137445434425122657829609667461966840211317029110793707832956727246960217460232409247322759777131072721206847875331012906617293948056936302711918642257469795842610637477051925956363396249977789542561819915829411507414231943254488641196264498086498706229631361958439252748502601760160174827317739731281137784688974769086279849259465776879181062825716479704256673347947726157247753775814393090899895079278195677744085865111574734159168573528046261736958514829069050550231965734549702619909499396570962235454304427394726778496345857105708829942627056473651691937197489539537173848697254868736623207708564591386389746672278511234649620136195135768726166132264415902419264528289642220195835623437624435806912211029388007089420728613584676040321337545730915616132816964416546417149010505971558646722872627767744307127852535511754713887462614476592441127892803987235107827651040775204783545489502165244511529573086488866264301249110212611700752878559407632397126906293142256269193798253491744060450435657681258715736365643590212659570074950709342321948084137636280377374136961620037310369293477826284756981003205750593538602615099989966388074830276879846607474920312775018852043871879953023367958187959485480614816929009737012712866372026811220128264133511760146963181012505515723581862982189532893739668800077573853050344837252536084215740368875996262839303850093474474856962959111743390700138439798476533829342047180947352779874884067682386921215419981795222167446844213918462766435285176648949731955802102248052580485267879788400955870826035585219820159221706900959591266942485834577566105599688847060136190424319689001553577336150140471108560988734976185236421721091833590607526740573824975676925646244488928502898055837170434441444353904473891157794903362106452798879390169382947948316634283884198851966432648614712259603781963067539395195972996139964767031962457036991154689131789711237538706367019104493746151420210670567082451806556761623736584744354094230353412034910112268003059881051776775853369960118952661242541074101808139079568815588498477530919724336880888205488322901306733146593986639858195248304240314480257325694685799783751527881709420997180345272619897142348720314276844207278804623197833752544716033413473882753352202749769784868512647261145522185013032400893663189830437742403237666582637149436055836442341005193411364391776153981515996557174160379172748750213180998328773573547832080247323939074440309552404101214275559342131731072451445299398393460058837234292102951303943029831226693192115320067801583703043132369545589561043416089975250819592661449435012115231818550195720783394776562098062995445644596405411759659908297599215390877001652070024530654910073305508243398072047431063406236247910567187848881812801663228711744636992963307536917446492457836562244448525133012087842504297949058343469892477907363016183021631728899488531665785385843758162836837598569089531678692795702932231818240697533918106092697895721743436982440072841380693224201983932107503446036699558511020026666678687733634696585208174215360960706644887593510680842048345707809405996578966216459327909191397691678709455651003446425030455423879471743171884400823121953729608267526187055867867606528113384647210073721318912762790347388929856098755498383204600283101700233274040494619909369828515271591423093953392807432864290947728010074948313074358336804077606964228632218703082529723285923388016520379274061848811391930952484028944087153910877729814344544880196392980569568336294095186466880103085101748777601626915420415418922701414103064896580798444530305392204934724520438502471622428978447543276942357447785346233451591686419178985051450963441802169786816416968662250541240520005186412501380767176568579456340252238235898664497852441622178560873141968724526724394188175607627826215682793659534022087838041062765818613047930475378497276652148762522398662506446039270422932290282385401125739422448577485498350086210566128477750165866790179741027156732026629500984770077718252926963626545899135265830669312312647786389433122355194907995853949509577972341980809717728059321533650509247936437394362155214658035323897419337773503509902241375794541432767839141472995667997364984752163678432803744518968573388039865171006540339124128940233395621956268339441633605289715113135214459184354834260192559023026343794190760946377770889004741946245642307374790815207897434067292231369223978592276048514538365666415861406452820061484113984182801530032860808548554020327882716677137535113341710036115263525943952742104517915264599057656807236644502005915370116437787635485049585656765294194473795584735078033363114286101829021004460707198547303353581405069101601399061166037420023945047560341681966235209545496446442034381657509781111976010442451586686548641870631871095033534630002159809515608529969339954255466409968694204019478889157422048664683887544142284727402543578264379958596133526698163930543500752105085791629556176568319340081548398339052168350527325966887574604600868645856681386943030541785698102219526698862637833210010718035366172127042864768435942202500142335684142477392629712432969438677750646580705565767747869568960084794295601912048181827746232629027909672413857434419565187750819936894974605308503699664303797873979724112628961795644095235749311224897983740556487616160627599501872031252710275957179981215137963439604294960383384751734181113760412719877817785825298955198103676368415261241310058912007732035066790377358749614639187749624016068882462996136128811680248984502759076815832930062019247893999504491915738942983327234935302616138675228160578846556112711694220599726427455425069611186028106654695136473807901482584868251666273847862664623591650824574306623968066204041734933690939879749626309233092432442097167640218257228151183400286584370528657033138560733597684618696194256654088455905554146746471689782846019225140811681535447006362167541700900174930842411940485670194803568360322373196626285252425922626012380459116201286410716459953987509256323325404244266072841282650236408292240579926434987277270292363704272355371450052317470550900064209295476842017695815415741977451293548731431133304775698012965683537274599447581594255923512624904331774913961889921925508130648774008152439295902460898220797285045192767808411902395101427599096926964794158991323863617884412055348431380896543163720380746705903139198054405881420158757432135980588541716989431400325706460085572846811578869752110496217353704167194951415292809523495723818034213565702503833754382857370033724890053441703795100651791828832461710030750028816371398582834491438280088047307183762471850319069477933359610139329617225131560097696683131433234135332411773872545555640838896561887239864156106889405197409182150131636432469215011089556082058603199452675557912869857866909245449054817348181557279427708673509301203754150069967769737106577600858405527638598429308357166477879337425385940724619747062555236180907162310913209415699119284513086959201387284152077746877184697191047150451729859226383246207489019058146385849239721465674204286552918232162489094530646988017377856032959200438751320575943090599584358124767929727371831883644168772191071470808517579413124158292677518065831898231576336868158401134559164764369097516781110464249074455141552548892925695504013660456822360768125356278330018855985969909704817550868658320990106448279198980733332438808472465564840211103474959215378970927155723656699192975117926310458192117151589078590127663882443702306326807371284639697332143568019020255554328131520792097570643906735677092155171066260930689908590011842872614395720801434146154289522134935351387636335559575898624026576393490276099392227737216926092053401466441948764976280240587999398993422358642897444870272499670184663371525638355676356661633507158931340536465839985434332084529434003328649631197729022837190939550070828427280954525400240395125352509784196525251920451902831107266779347032913038446024897522863646341507694251424664487658493154584706343336112364512868395665140870468403697258773427013610850075052128563725557214050988720269326672456222816097726696534783683259502041909143691096446808669269072124443764138873289440370061686903956411612168077190770586652322282009098717878233193674635962577907364007540124647514527571501903961796932828184707728399110583696309925747368229549769497969009024916555994980246632983353756097160354837913860854110657777787771944128178412902992586438387204659067382700689745599137851269506085317056529521861411391371116761115147051063122078301017722441077996300533106608821563147249333806468367659806198869289169424038082928899148115183386649917800666221503215559811600660566694234644677812513886574414224905911002205070214333101155718906936749188696990983231586612393719421335436382309391746037685879871518463338473289864197863482114995522974546824025357643255175961130049444771087544014463616288504417800275634392465583207390558876160870756256015116642838223698300921844106133447118990047381129182913786533738030232561509563224832896357785472223723730134010696958428523678471026244201388315725921670075008690184099288970308824093754836520844955063930264949208988846972626373827118794879575451871050799636535219720417680798242037632276192033195101029428316066715645577332186594120067299364431355641768230508321564360784501260480919310870081177057937718501821495753103193234703133027966382130999866835814571209022565242058434397986898596245833568850349878926738787907953553529748738065865152101313685793424886696619993944198924671253238927698492086367814586583100206835439063095356363464168920241278766758289110519885933375231075630707531976185041313995306665398455604804793782351615786917196651619976903551529967700950052043877720252412177008415316722665297622127550472669994767412626240119894725846001269945072401088848777988118503216005732424005258464591062349543941909276303781742313661372707326065097044496322219358394053086331536058180454671916987752645187965931197496212525640657444329192924555671294865164770510904036866542187168042784699376748975113475676875604829617169401973384792575978371280291137051827976994685854927973775028196162863386379870378756227419543573052500346170013816678999625026022946449362362961581484570260648196536408044753183985952255233891193021047822779770526398578497380327557177048429610626831362908093163234994081327173790302544845012673085925123708537653435709319397338272568197516282123619731651449187939333787330427397447489782698594262370749400369537851543726570543169436359276969166745026030803701114891552311091549200143402959536738422330173878899509805346004651904455176732800820039268767991059195985062140397365969874317873241590635776835294113427943681095682042706933377763661706794606753658659945778646773831186814861174332375561452635102575246698607644592383644296674841176364316791401571077513988385334542102224566068536790414400825519014668220676705313330794591446223867457112257912715685171922452802617581890213687647729592148196807492134528743043886859933558924064113037871481419590657587721738543678707689923376864591813242864119874904151031386334756048541302602985216782250095912367561383924439053045137169801238250586822412458522204135524037456395008530671748697349630631162885478661617885024542780029149112759451329404437036465860432536777052202396396724778549591389787886543463717393657042443782226289654404283808164168474199131765191595197119769891854074343822445803579471175663057753708780085067523212180739356953884180013682966623130337761446105494998709273279445441819462442793659329001109185703043258922460118047727259212808529808710201211433046569477720640839871908565063707383863616237254054650200679794337674563636013379826129761457173497414696903805221186085438512988670368423985181985577140637289969847060557755646784993079454572101983409650140156572660472323771964939823911539532493971560564128820526115388915151826806712258773879686609222329789632290951620971972624599782717521532407371572115939829599540597490991570604661386778904087269820609093731845373187615451270549358414822874673579859507000803790726972625060128094243566183897257735153503844104329449319699644797455598036632762083269839323639947332720731087903257776638570279365842940096293461708729873964095653247366162481707181140707152118650831397196586782577649636816404571969636601020102904106504237924692899294503148689748011367647048827851939905438544025354330330368769661178791136061271931358627493241456960521223908494321888419312430523759783766419510419598984140509629193862533055885089272356583148082191520317124497085405825490334343476888599212150671213277530698492863281112334445877909610829649562181251774928027963509257093592749611871658822152161828247320551207613540265189621057483993474443757399182147044547184972343895097907504311319239561415283032734108974043048693148137938644493699277567581880127199161401693975375183320667067584941340798463970765178892100164426081598583998065866846203197840646488242372841437541885128858076303103203447109215464767694520541293897600471362223339280377997593422758429837974279630141888917859768757139571917049175005902614678465321613261970895573966692402465650124040333840382998242453451374011704143617230739098635480262742710330935792865808548435816233160477119522419031510387785127829206229118738642838076856632666779897507452496820354595364146784578402481081054231426711565853620144938062657997758108686582782237675009052169492438580058824605274166006184709821097860074621568109984921013252752263578927303072929655684347291358231967612234499672941572468301695660818112941084415349671036342209256414566994565012342489097071715494261291623099830595028241264359776849166790459838107877730377569427839575207537446528892360455775016125482120346622681131483320107564132669188715214146593312837863092454191038170089657222347642572968576409981069649613578607902494671144141088108180283279120585690700749293634981340739702860075416735646693779049688336181125265042951524694350728383191186571149970950273892726901270489770680014659078269974805867679455894568379422313126592554240022700630061482568751983407181028488793323161588301795319663548532368717518662411963677157439293939955944751007660207737765067551390605285376193887395594378168621153371141101816094577085153459786379295506756606498263310622074008487080094454872542155286912276377838551102386261818513797309101779761741940851173913237456195478360908083858154445430158090357818094021459122049942859335714933304691782568695070124861246914299951265569422559334123022923371399926010351533616267254038336371231712108672107116120036674986046599391833482632617019274763466668360577149357541430284676224666772566361905318097283245235713597579495306574830983472536953268730007534535861406242506685695079984908647798509765682916584165280338744511634513436115510534288217081496631208607969027485517614305961808071750419872246536577170494617205460870096463191216044209913926418188421514545154788260563745480688160438583133883168561034165205321584036414255219559754884685280433014924765902441144056893040443702879525992264905955234611427802272816969221103967027723623473261791430716765677212727280993130266663202311477565617151979745989083807891917014543380886897437121195634596761808805208167270262916221161326269957683966895887472734277469485165238046330163025881096075899933022907110478239096659899389303437620364040082308593578657456978672638149860069001145520833831181200308493394580505808093070891222629304822425889965375199113022645476670388445683232444632715311741996972674623789238437117477425996243915143744020570171960136051901576045381092823243184835712670828038641039232333094863579486521088210226757823411181115909770901749564246139300549469714652283626606033750087893300414532942676137473810429715528700124464992882160253338192290240627455218476563118852819404083958689813626704251093494379032436857218704688469557749862230104395072566265426157928630563629213162661323396331953618626192411374415864826354567512138758139148891687978546702407625629847398962874007259724475071998924165826976977418324440838992686515898118357405718493036756032016147478742342487158286434417390574228050559163886496718250395235825898732716501670930092614284466918112750108291037320321366818384689605150013060427064768000661212858016070091580483792388393951464161721235365331753655139871974315787835084720215754695097112377309482151229996937117843528275409638201454072818620367251051985078978916437844789206384838846946894995860150311718445452189784755126973399401501886657951520116341459700168749564195411561235094780061328438487789269933408645456588380450142001662341515870978234763046083565201700468602381098224908659654173182885175071797480570389099598424893880734553868686879391652930876436496000271601840248000041722626935372231049727530127446543043706845200863375826449812431152104235765583235322715734576629792480877299330839545882771859937507621582822897995078060036435367065029465494860020992692943904095359001795902641192122927391063028619308486724093454125878544769997965779776813494300015232618760224596101494585257018807867106310211491298782941938159010640595899434851745629667549833236771936582749125516381614795321897999745332977930436701327764634048056601710915669354073370736345430533414476264403677681630643880179195829612162075360727223865155474508412586530680656180038811309632989052492672717421598700865020146968422999824718511717838496870030407274192312039914236056251391126646566103183036572999762567757531793321359870122252719265463252907171328065775913168095567961567733864558136661749934726275968334304985199199301169288746071669279174741210673796978211820352934360752928934399126847878929708529709274417919075900379728296128928178343636227570934970147664573980837272623555738015783972726093428781633967113037431920648241852767438466194564042059421354788472070352893284262513240801996566315697640608448143044408188822334103026600319714759988966022325935590072308105208611356913012289820542676738185158559390245764525514108962029537087932146924462220504504486592151777549893195671182503618130176364775104528658313997365806719047051813499498483216854097640732135066178492201012492498577808093045253659322087498201863730016387305993725290277658859151223946329907741475696059346775889981614564840614652680938218401568362143383550058834213025401388161167410678466408644685116624007005937525084480058030260921376707412850816823737383480068713196799899318015518465104518847045760598387378600316365152853900306679800226557624942735095864546796672248420193503168516960528792175852405162571629531409749768166606551079638297416502103817525638153748705403963212847690947761342868755403220948633508110584595984481996328752433023158591337865082940732905329564808453379172095278119728302257112760898960384036045604572752299956733787496731295220988248968420068379934480156964951728156004381045069546790754555117262399876450913157600972105849404169265841431471957270203899910723521962018458271135235518759825059298874653693216624024265048122042796386840996456268694683794070650345821200584076614208977880594607132449078593687016766885364938149581240177092074421225355676855927299450279555918672144621583131574022033505570997979975781650422793301423210831838848433489123319663831795992672404225112398322904759473227528849268515350791019664449800617823909129901765057979002464516703067522979909947159056662025087396529112889953449486286485398748058115727618568400637188761407607126752858472857794966919010494895793387096132240570315281939995341347126958779175890449204413245202405111545001870281587038345372068609747053397666879308943689092665398665129449076246698286123826163893923148187146182302114914542190680091770596851708936308915439174662856753925175946552454006671613648712404033894160389404245882166537983955401145963786006013673466647432191306147225219273819267804532977609387325019988341213296750634580914888213564548366188791508254272488077030814424242885491571058478238057816576507094864715132974430530288833092707611598891966672250165202405734911371532602660812892929735399973378812170522830731747212360947628242626311791584739382777936440447943976834749675026060108953774769000063259805102625972867686793470684521523864320138260771988188524153000444457034467046026283556274578842724641827705454331309891645914197006264128919184052248219833170610353013978349760855991190800486060709507166463945990756634377958030255793636739394493976161346298139746291131893112794664436204783821831754465924044504184766844116437195123840387617090344563485299778997910430193384808663866362433091966570865540353046666969396798172080202260625171070044717645785829754166016549707409128630929638115907123847420257473244279644878451876188008484571298209111106503753532463472896181188911959778579231451773053631384820538022460157789713665949830924299912659983756471948225574397515440918024833979359125901705840247037301640607532300722266192257166665500118304162331358763965956750810598859694258141656332863792683814791404131739690998451307801626225607041496429041533702589651670517074173017266505997248145396044113506115826882816742778190609247801057418443965495707608271774358037655835026241727383431151347028512803863154301726960032303101020936673178843827418067298203923554411590109141410512689430306643066802646278380968735489427535466654374019302625516199182746685023034433640284803073224301192622037554112356027035227007031593357684870158677357927317086420620929637164219267717250730948212980190105383283565952693617780289464027447355903029656119478682780494881180748892788229436931742258591514612502701049237972826904828593472197851854773829403419243265312302540094879940473775257277020644881171113974038462844307983470264935394407922123460044847836608936321217843139416469278388100516330992328983627464794080174024666063880609687346837160912643721172151277681239046432331934297058209957730646442737515818962663624652038819144712845912717627734054447553474104357288570105472737504696644725744616027764261837540865294271867858123117786758691168832329836064027801236436680895578588962484210697154227504668407500437910323650585158190995376895361121990545387880089361137807360706448846912947309006306306449803102793994578925908758094704759691775032564492674198843722704397222260090290713420173125613472589300684480768489021101436661763391123520640559636949853008417089860199097292605851946631721381261345668962019827540999648514409433703173168460298469135858908221598824213788938532341102858652647186093272714474503117237820404080949747713305792556944584823234788564969163671433587008755077114803937087639537047776976963350693695148015469028663028986256591714709625740355122620634510538668717803726623260390190778833054009110903396288976729170248822279211672800934605260210034700323571043441981556243141152282844346284565854132372934051817981749934143337900816756629289562939616735284090449256811383979459872759289088306780783236641808888200744336728891158045583263811407970310624972272477166909754286113590762428263787516666804506526377609492814747226563908917222952936435846061578700246115302910357318972819909865133965550621571907009664324555470433449014772810936519394126616548441984977735078329878591906190113634024519402398812936766979561913985467411410585197716770746039054829255696972768818356829972238024304544325665611144966949515678188180850909597026246397099783991637166046819237491934387419993950964440305468294017817870329149434565994922654922713878808371769699405568357323694476693945016399036593500244724449348646182483941513761216464490011799710123302228037028142127259838219238072094101405113984548356475419363077732743340728508848976256904804580588144862043127154597645628059641308198777236589089511561302743321226553523126892407476082751468451326428331466776780397100906191099413630196522257621013168582287754179444986822741148661200759838280895110486215838030493902474478245548434573177862907758848310078427423100368545347735473276302367487709902829420192176467331024553619522017845280288435536185758690042082193101970965048560502750310275123561464459392852269359410212207854317399906193695592231487088017634400718309976254370215335466401864755151377873252240360234866853768548506618531518433261325238621416733045421037089230289291504588330901607444444907825099447882531831512823498626803262165709388424912764301473527437021829590496125552983759090657415080012815904964192708593344614862237754732505738829295733629143794000401988034050690198406279870845117384306298167753128290758686053807028266681556108574198954483275599439249542572450909844110404802398955325268440799688262447128473551388434616776985265691520875960111605257969417874493923295672907383296968648042306351310455431088614289014239740569677729343175841718369276523540519295299078119658015962645320631140309757477183010034245235213110210573261662975625643109967419879313185901015027716835859781930009364325507113255793793648098015553895341107789794591643433323969823023107228461353461482932359840784868037241395160124655511578242513444889339980395656219799243074476405313619657015025230590973875754565374908024490318221903562990275466912332479122663394039979313110236553227152990602132451799603650023533455476551841963792393207150409446552543015387460552927448901880793816691934919453979761241396411585538784704889785518384964877098029985216032685727846330054703229795553000118143300064987559874140549919253395464625431473209425824627141990504833482451474278121743977396100289122135523229187449975026314511859721670765122815053552672951304992466394787844593441272469865596954488661781356444592084369823965789610383245910102924465251538654974402340741924662342601261470163353434763747797476564489178532437913857709227158338400552763773578959680957302499447627345785737583100715287758769811254862301714469699554652138923590454563990684309890183501436648076903026386994545403725013705170861567917045121266810450353530355250558757416086394868768072030782662693783632729272416569662496544447091701995207135787062605524104095685455894383022200801726772582232727454367826266544781155408514167251176390644218146439304269744039439992032361182783789731406962653266560584173482259191314451036748101173605483556734427406563322250435041528248665691704381640656497009472529209255655635680292640352245033939849734957900875662011786231304669466012944236077972343139091281997166853042495119281915702682255759283325375411140183885549641782652478752772191335518670142826985465132156120148985174202671340018715159190259271233218176411169248554215463635774711080560104911656733282914075841730916854202245557400869864185931461029677647154984616652125631495034429089119513399336610255508777597685590165419131583741877095037468074811069577145623373846099317893680841585301711385116734185100934472509844273055801953389830249386053469437885717352715125804647965511855024162649867945743465780252752134551254194058240069680394054300192722595836957296839260312458082778039544387142150314354153645293704540337810313449297359710794874657996434564326265985137618286073741362467908293671335172037273323580707223843060076928808665146145381442425154665357982196426361750535170987721107406850906245210714105012446916337016341365572862407061215984868760021448307247871409630976329153641700433363272719180437918020869993907198797064474626433551090814841049568971184358636938780427574696244046498203689204183090075144412412654315392794124511022098502822861511261580851528737622926102681455637292943317096664417040788895849471792176070910274166812113612322008675498091954235243659985934239937893535887915006379845725238377785145044817891526614248881044634010646675915552980726110090454736309277925244179107695930343525597312758692145492012809690389865519594058757525499975958221477287575469632838127514610948793825856964129231223302602120655198764219754741619877232238631310678207338827152538337988681209091580106011810448749122423573374282493644375715672934622231388390630330553118224804774657967852344543502744720774847499154375050948327700685902479660402906976959200626458115143684617885708413011194024714252059209290593128515149543171921412444717208677641006724911431953545844730645290131448836702445579796810169375425639748069148635668595909359697382694900852915926080698655938617825245648615848288556056435761697293884747439765385546097097122355760095541749966744952442009328936168619613826952721140684176588476601664356679125195117413013548838796117048165989023564828287221951991535682404999478868898494241657008374151234634288264805533805694714907182739005829453248607378411556784326744660392931123177959577106834795405771295281041184654872155035457156297431372130601688607075986785270456402727293595204836165937965596326441484995476061576388468883155465598763496330257807067726159113159255163761994442142018799410024209171744790151296585387939856191276125658441832477671035841365446516429192041576504343706794132013729020616948105413003855652212410758187651627336400838333964553833931035721539270743636381083618813578772609435295904993675533767002736189566333423101913689941918587800551031991452059172506734430140290357889441196909815238628909223129342904146118853826369266887125030217243872926745548241461195999746318642026275510352008304807285180653515040372260900312601795858429549427816112700213687133938200597136438375540666820679301495209669850723284108819472721372642152460221647195797616710264519505334177793033686817965392938137729029352697881367776164701647274973864761568306070990789455120897085568355501055245253754915163363919343636921922347080101822638530598413801044302671751682340971998965863623624149365936845237556077699932292937228755974119782549318496588023566859215052787344767061019664153778782589420022530133076688599550641802536389163050474447427368305954797173830553400326869418635206234092963541670282392243188870428580416711538267911964622227518090546147659904561438694709771736587309356493994610108386717930661217090369305655097471756480041032320556470092124857605094390917345382412788169277519793670449833444958294271212454188569175701074809888450497003155602501315596445751698934524972935179958954486044168236202400312550443551797224343722622089550402522308698003248830912864783663281799831746973569152683395712773057862044453291579847514947090348845139387152677250891794208107395337672283266980287640225909333406983312696277252053469508897039872574387702697847888491476691771272453354146608142267486170045438535729487496926364814329237923807600722791476204650497296569291894420191756707003329545726168003594445066776208498460693410489144467549184670218442541323231183293153460936377187662583702769678127227683042286366903371422996283243378785039489560504240926317649206860807949510560766608468823299671516628072944906797838835604957459241992681142959223149696209720465607536655217539869959228956879912985702654094993346114408079499412694806396483592780628254923998138377413389808040550870386635735759231293158087165345333892316795211291331814199159484850874016747533847255749030756115486894326208948373850450389001804232984644926193883612520817642168398862222047739556041638261807610438852525276594872502477753826703568271421520492390840300941675145665730908933320667325719428440237729355299508783801898005807819968347120651491524746403174148084548925949617380189667612264622659342391909736870125309793434164821303591127049076061440456892925928451721795961121767830516341618209874633447523705719774021574951626470410351965721264640033472102781157372729488073680853842255282472980742064179270337301648809768519258199974547416850193610915090322825149399337073456946142180496339952063236300845332308999995802338984191553401701893815628309397174743584572634916200618135501651374861666382465536308451593289615541812774181495127725955962421047148050528214089747780178007048465434851013215599543901646599841030042716836073736272740690726223156609591728337426412800006804679047957993740151797674064018720084646438126729201010221594713885973021985505726926266525273528216800009974457149937813904638065156301272455115784477336764299097203470153650276397452564959002075273160404112398927793639801285943053850127313877157095724200583572863658148272893747081648410478287028864173449232771206664987869991161353027722315951773767178474369312949454439794814469225355435298987611723592961823987371392351542283056014154944892068648155418836672559398797554736284448791554118780092542170284267528256025880220768985850469859396299865771262018954520708274801939061024606233529774286774039939989237480334303790559592162762078712773931956589288616728241752761400928802121937386520630840555264597237758801991734211151420632089058422458006321511928412263294322264591989813014381151957115326095995781465390751745182233256885238871387896063362118505962246383982293693968330109454010930995965244021608026811156564793334949955651244816324750111289851762987524779856466895646549725134306368530138079582102727013958336208642493235291813482877025461235104857780131415632284742353561895780019452593790477927606458938766144778610490155542734232866491813941014282992787305836225512858866951264861108869915249880963189374879381767355182026276312124990440361479790278357119546163966506628289752700982991310593815413720562070374587035806682249750593984855563500742885450139513228056195506735011870773979969025096127391283554958001510185322635823119593967033465025128745181574364640194604587080716085162414870157700123259333125294731285678072864229113958879798582680108349916731986293198235528790838514618914114617692553729885714634360162442643413462267662318421286911731883867242330025340443118805293577975604980519125994329366144490471411711721463741332614347335782280493185369482691930986134004884979286969139781693012818131959803626230044873708900708565572213305968899805237597180682698634293037425659442365008131996985239839788872653359884460504509191314037469205494807214738198459250499809862804050002269322737699569135240762065069944517300108834770492946394084560528700017571735257153691099341815808646264479356600964629901751672711281715953609663663421980483505374745976075656061907784610099268586853185359655444917376176017124011601955616606792813077829310449295656681399245222720384946349974487085677084807674388650052437359949724035589357293488100167460914997022990091078916367091551929097892198216287069255242977868603021798673533297485735270239637644140272604090812726026146184062675920076374313820114614471133529313758316250963088668268591338774361579181473564443182413106124222391772189106117319743265728139846900843165235975024785097856881646668348163637349764929510014141121914720009840946713850184106762856258477864245706176381036638618258339244895847513391602596670868001833922643177695203068747998752590670717063258373068025964778321141230480105268611831037517671440389130137578072735013631789292184843140513953274239200424573052641258972350876449237958183112409375956688035429440219740677832288342406145407324032485058696593326160038579621908843051159239356257913881061010306979150390119384461018161373923303464549319322121467347323866562455366464610850980927907767621425479513259682124718801617884190759239936273021528924057562518272952763040861677533456807808411363651701777133142654582343900813600808937568954607487197450156554412454948976149017268248426414265012533613850527514518161098141047292405428129315814902675076914285688019569393330497797634414101100971694956405156333346611655233566665173531491737268799785095291763876911543059939472057454561797098892283433898752867547654919583861127050358017733938576615878389384659962018838374778512057614865959713139114877372612451751987488057913616226755184034668300174178444444845100433760068038709388901444012516947332331944893574259984836683369966357175138533737136472028596082923807364771214585081923575399514257770438819914567550891967570659096803741925924142703342015997374645063640466209377676774481931156543565201917419320916244500214997001224015174866087337135331587536511334984557625106670707179222723322165755849542401216231512879400545855401152525616427460742752524389244622021179180948952593552061540902585114252873317111605850845253227599927245417353659646355319935905966009388450970172549038716000313836039763436651843070020494073354421095946616218257357004704235265226971432253316939583862623754224910337253626781826554989622627973773076644141168588451895989221634931888321452806153368851996201260905073813524711834904558097108439416730028149523162159873618036288990867533401275204959028214266825676012266026071153478447958107897274747529224173555437086561700245000629775014902858395013835421808829117986429219725880009007429793199508543546398987312111522274336854109106252214239310037409707555225918857988399739803522505900609591275740296711957601275580360693490537942460314455866473423889037438397034379622372130386330267322668010786964144945993237798519384939499662458767215689179341244265309126163956248317449940618484685225217444640209939718244404020409333194789997309948920755438122539370838418379411675807328407289447757267899971825541426490343105551989552632999382548898551871802233060173762800042910361133974906353851128671685743332098766646555807187141362368683540386083931516652116485854093923451191046870417269434229500333036582247424847815870483909838155788881288079312135039266511956743358408949167274031777490424925155542259844843912868281947618721069038932723580439427624542763966600922379180315685938714102148092184508209294187694611734344118086621244025936594001028158793551439283762376295351641775388595204410040604001906705115182536544001151970042929756639669368254472118101397052623551004347137307403151161439462102321625203017436833664124371451532841951258798277911989265722083097593523024952650892101860011013539120685059544077664943789877656596030249492884566622541844394542897210294158777925695194077357461686293399007071926134709978782587256669703132993582980062171448382418310530129525226216410650468209670323388105981863737077692776234013108564327248426297228465482357170395953245930077258492728827705877795366185260010866860315586167313947621069347049385270219422239064258465301584567163104180580856961256141549327709501586115519767185951813761171200898645669495784179595217941165118394040799264433859653533704516467863545408490300046806643376640191294383704265974309026233928674624501568236240966249508766424717753684851216001814131809020080307383215534943580870516061490497782712845973916568480945448902025378305752282396924531682324687847234644556550620194174503358440373791390206688201518844877444809910839634711244760895581041397474923806862796703043603496576703240150643677817720018814147882437861099524000920615601909648868004624232729561732061928693846169430107929779622536449725620849889965907400644525832340746429810779133057958579294773743926591919209271838595016151667549408694139185230709868479494492303577447908369944606092246373092108283279118704564710533711408881320052859908819021113946089380987762492821070234364430797895920053673148733418086050488639508834730307468866558160513780399426843739789625332721211870179684260678047320750444997724276672648820772330794589289916696828934034467176011868705281266512571366408855746882504903400059711425101890643029149427114429989690921935269411592028005971787593233989608654468205078128683108499599539618611712555066984450672841831967612080764429593575822121277253101420517865314775507803130973826864781644483890104509942326443234688510540242419004706124722954111314675986606996515842762268258729958089048039763491313181716882793932432576669285290238067695877665500725470701490306738127017635193657108435272199307670941731788431416211361415387455436385970281625088136133892057315399233739786475954834133717424453352687196494683851845857746126601527535040276159507759848649154797135425524061891273707676022419530028670725985312496476230009976516686266956355722036096469502629272716212961166957237655996609766894277935242925695392643093695605183140826014943379682319147831469150596887873544144011579712313958294076693956433431555334251330312784916639208282994857378433262606134874136517341766375426323936861244002375679503413270143126166153480913160032089638497182416083525419087378033612194277682228714168174818917998157561986025757275731183333998899842022956505762729667048639360759337321589180705638620204906907066934406924081958720912272324937569917086183573539137890656618396639620050255572489308137347245649367002695791363718941471545348471085826877614469480678116310260805673045396957001819888213677962603515433942910437421981857186728752061898476143086097321807524064632092033474414093718117711229275213852115615264504376168729433095639251721156364951031505274274456062512959548861914396912613696709840733520156932020366322341327511271187111756851680161962796789193040488479609603235197511389670593741731677165754246510901247563792369816020641037553508002781797617776954770013544766479299644000055876535903479229679243465662598709761496958463364287306857301952146649624596323276748970434162936021164898949794416692396807713858735858864799692272661222319711647560106405895021390980942148433655806504386212356819840540686963687745265814728825540523111340101710797439064826856054693857824797212897055499872032146847044896293472678277419340770727840039852561992301490228379352849809497328996697169036919324030062269557670754699001756444606460038646858829625723243162632757812398969510682194574426531705839794581050994875404759458013145786458291563320408118393323763191058894376842974457937008189160200952046449401874434522233314918258826846241226359659687338724885550397089600887664844561284816031483776550641179241213705184205075043507250403272698496683910085918968228881879840975256774776931605417599719952727665534875175853862017098605073523557898377187652365563247130724893496937626819958647971621070055674631354482550539795132621769838154166278034745147722672921442562688662022114741269672575262165874457767408702459592741354672209405617736487664056240396903081500355306472466727079794410523771320608687756981643059802208181970789986173770888754931945197659747546086482775378528009183182301811026891759893789707360897903780478201506447225194129588619442570038292152624221640099661624544561707591452159762702827331034962700736385059260836401579545768294115600635351411826809796792002556843928780594267764405096690132078339366704169441709168170574041594369437922087040661645545789587647374189733949617837949261775194135740465337729457789528077093158106939836938910948219614907294910820669140859003552776908816779317361467737537164165939639924970332709611924987005448781633501613405631546728839195825680093487473753787831026285413681108597841724412554416652744437975888108668449067021983755552145532125760289838874928865036293126460585352417985007783785440393499927289668301238921029684603877171201750665820613486321207977623630999444949499324171898488238173968712894799894487745715038640852208332680405004361242999104724757825143349422821016657034685305321832921200031138197239998865282035606136265518567848092719455721594667769521984207515276066086998264369841520858038043620382332738436456870043455318278480517691122472105407120173244459974837619367661141776074570604457488686135966183495310495192820837722011185474426469324346645950200628758271689657083277872347164349719436830478705942933349636994441436646928357367037775152967879529415644766674559930756044257212843963562719092924491057339449257248385152314945371139074431148070479823890053017612994498275858406308269273023182199470142236483198262652694452530990236518134821556981619393463018015634973742144987632771405549512524295566244330296172955896900441545832517758198682148467297435613052576049600850904393092897653004151043294458819545095705549575840702161630928331046205538855152070718526241353910658608969954971121620232985362789964562579411535808260429084213948555198572150536845637366101358869969429573528877838951352625170992428080352689017144676530945076307965673799514409560024541247008871048321526394384876772159466943515819681023077828758437579578281929265249684996172707643520987237342229640182449418763402900399069015430081752126756839598827417088235422191067723167075199598899958944488667915120548479894735611588672709973599637349531505110009452709417696758027905485218229895038771281351191010289730395547956332503234378613929006140047656831473660937437952640941322098407739204370571168745950405509009410953799684122183342248318593871511614789452781783649635110536275239126365314858303872933261244863345040065257938481891563452581206346951492185624652468897178178259675043291239006899901732578595449046245963237573459132836686489993464882262685631990633638871456933491760445937775581685410656365172149268145636897837949458383218853218429885882746007917020944683442442564238906301665781606194940478961851261548621384134262642494392031549857604707455993557527519135686303399310265487790815327019212351444045657193909002711951739794640214568264520681164182166280593094543942875908476305160957290711126660392350442738170911849570055983376210180845881319714359964693795184049110518422719562828546611425758638970579106416673474468725530139401746849393769764620912682135579503504067133675066418333846414555650330534412456247849345723367456701385245209747337521973557426090721204602744835583294935017996457765258232013377072237448977993312741077062699791987178183070920208185113054381504841169493816042323338152791353377682794883781632557474704316884943574832653378574218371382669497964767697435983023242055791071603405709193096349314104203499281090625390473675619636265037031983946843583204115980146426194610521153796759766269030789460384632393819952892874598400865704099573563267654790680834658711482461757935105928826018867812254642056374669180504932138299823849262381838934406409300811403305846799621755027554475104700887078411038004521019586810245013295337526640116385779002254081199986531368407596502526044512952624153737970234004993571799291395895855249704983988610955949348712034245385492246009133221085346562408199805664861917436258865178068488632985334128674295343967886576067475761273161769459393987324324282098448051581303196338474912631763885344712084698916321123757821697062319651994341902095782355193547458094723558542944765248414538146078141761978441805916424943928429390821597439114616301181747460241885086428621594179332349829450413960984441505039440740179900415293434454496121042408746095122427900680409292606069426044402978159729361563445690204943466260868340276999339737329598364490806535665907479888234802932692724690002448686493336030145624414163348897129745164838266225444318876192122759607154386859067549479301765600456071376573762729878819032543812573528872828200861068628608020023227105002746357991184929607329951974370407515083340171320605096375937455141218186323573458449468997340351999279931373264141012673725908585904883604362710519009032918460884337318387485840055575686981740208898565933177152958251752649817315584246459019875114620026764384191865629082715643560515546937691621261779232114191880320363150902326873478694036666534191742637696603336822972101291560326422675857694900674753187672552549086496685865922566010721875194893496180526599950838083854832075079666678811040679388877539100881651551373987980074178051873817533218098168777877513923165097203502822423671820664841678244018340948995559950700601396725444874519498393641218583443375813600118926286087332749426783550045090577351877260817662076902460428877358503365802186339571523517007079965756101792260384000168214829079420574489929614090337232459933549366652950133707059365744104959288033037606792230636841930197410530636901494411679119381532663632163981478816691591423988029580140356722600275448263757592902493619153999386347725908185817700718707824453085167895596662472145208466833962188582914984037653897551145377317168052949877173398916006394200400209369546655692896310598888534047013719902825043911181025284992288150130343874051666157807178775932672781104160940602501350705051746448063996898264743313824521184720042746892107922603250970806243661790841184374468056699707990910579828124167620571725838288643735627682091757301962168372764617918052581293732838314032507832552897490911569710979085630268717948988634698503809096674224045416188876013701046798432616685810532984549113295901393941100934451913175625569199422362592048505051104408826122068229210503236884838472069908167279075085867800495535063579573954514688660576824481487998221219392616698113054743704861376371434981422737895882197036410740723175724344764086693075613472242823988540501983709360300873718344651492268001642772930846831290475401162320795422396109840048506668387371591832329859048344936578885741317734163064251252424328024816725651185821743227668299694513780212692403281947159314647530756965218002225833800802325704672123755890481092723565899860257971833005923058120019414418784248372647606004502560575571814296605175918553471687928150818828455885801195126768906130960159177029726947181922718850702110019907868174583638685650576320130592285323570376627958348452330598164398170947700507199179341847974068318331318978920146993818458677562487419179120435186147974341806818737574524880920360368403742828559667221905324111841503179199606571975796364562463987875130199256249366571607958312304430063241379270046775910406285564015559776865239921939427525987922404496615949761760861208190993350614877399344310436058287786207724437235963065574058794848668897430905428528767869654311682067661566781180247777597753668582308603216180921649630378148226131191566405028710512213814320721491015190182685619179872593099762223478952196021188961937100329261076676361328340731693783156676917117362113900704533946829642473273693929079656457943675726923244603770932918813185328829308166302387442142951113651132003696348074611781412863556519067513544043931225749130080720182549963610835940741713985919904787070357163546899879716625455969247843906905181910991441879342849296222957558268136848157051175388655359222351633840266426143429827214998984062229566181959510609896955583035197582595319478762326981573500167336969839990901882996212960021289249467842070555391053632486918674190053886799574743762193367174817913703383625799264356476081355365873326418334243081582822217936070862561970030639695734258971045970585628428128758776261285968522238648670780014324762778456057695787053907632925651032870761566116530813684792481020825741426412399662988142121786664217407325893554730770212132437287129022235531542741377926316476898491737321034056723656323754729658014644277143158617925013753467378290569191118049461844648495074556117986961946670232822023619764365729438029185191920400178911581861528559074939556210852471673691683692903077493560843276479912659795984132489810794602905010243521652337091268354138654160572211262162050325314213987861525689543029292590623277111645827353117911415558204756544591159820895022854602495674256527593955039755040694701743541659196106960278814235811699233201346157806907118181481178534169761082033502706918413335569956931077983104020317948551045636918112706270396335315267161132328659245262016517561494611728949217204489532576472906850305768915906669475278537065444616725878634805824874286929573657174795248218956061061693352968667210240318061685304480055349043023971120572197287206252984100222595724903694243537978202926514244883792707656372173622751498131620169330061289609073201334494824479618545177698960757980397699802717904929211788299982540898747667304704829151395048449937905821559227491859635072303883249678981286384948085756541029760330564907019753866541965811642553374826570185751269195025646384742189071145788189082912847138914085542430384781802069449980538487426308509104076215793148033389739242468883722970442399707278362060200039434912046957682819529121780493122277524418208156189826225138157770702564500526524733192971906023235621490433535372460161619619409444672781606284659236451015040031845608110742762883094090608161567909152564829082270183418321489985202499166621195910816952633587592470239977931690868689970285467783396194744932729219545087804007900896525082823123686248140575949735554116223805785082215537934700672836147509807651460693852921254445203875947790948411992065819480748087369152142022569392309309710977772063556047728291983132365711426242252161044026026754060036681614679500614199345528041273813230793887631646658016651684639092800098795753738023918280517333143965908833877059016593650703311975600666618554447423502656061725620745994916441673279053510871693012564012916304432056858376436189811758666833508794724636919373267703980197820875379982453705346138300965873977394467261129204950308681448858818136640987750813496333770498777984689858665757685526688453525263298549243754212314886710883519260041227325553295267272607870290063683913325485791735659405569912293007177671548964273596563144862048491632856034280601773988375552563852903720964535987820912416045777263840895425972368913669289866013826940574738055617342117812231929038187768110578301679877640171663942934069254058952404413174526175284112041917399625892221303996227167615013236878557132389655757262486612954890322156951985268513123888368822812399888771456029513653954397341851814680655396491350427193229605624923847035790644477148434591284255944311156882617506845466594971725438495457112647060409319337656604417118051048050117732217396501598981280395972203553118681944260136544627045959423612653819978450488771912062004610615591686333670063530020788630764365428837288226977853335869630465366191533185343216198528383894336918755366113925201766275433129615747189721754622449816078559198192549922061584099728778262271814662160888874672677131622109913432098401805478774753849490170071244968491625500746517348121719258238924347123598412268053686736235725768195666163349326760174031756630643984706994873816392003347779227939330754558214571130279066609808018446331093626914892998305510024207725348928442200288306536097038741985808557914569840232124160821611844693685226302384108043901578255841892515172708333869546589642565488503017948338593575259622557017149128594100993909535992707536157998682179681539837340849456997999639188712090915086323216941386032464943952428141057880944372290835508083904685249112505296297573189094642028546720900589951808596930992411158177453834391167610328810581613513082015276866076400246570708481682443314880962015413686309379030514461169362912774647886073848210674294598860126116573191785069389124041903340019216991079994662480407956599322859146402900785476799980603483318049715728437408905126747586943922043961847942885277601230569720470716608051858366895355207879940237398366640112319401115661889266539853247918242679394739196169086221222524471641525752934153688300768963558898952508285431049225221686769541152606882562185467645438165841044199794043374537623090436770276386104305838840398817485157646395488723576957975554508733526807509174510844454836207480166467824675077677986334264811903484966199675431573570784289697292817644615189109124789263672743871184765423444454954604494839086923735641358960782156130011580933629204767600397316744465784963377845777439574987063131824223911456027112814800384638334203305351271741250264164638136642037061189130375883734452469507566774464500010103613714384190989390397406647688065011042974492440142583164935268267814571170804279229240225106387542850759307769856620528782119772617718576322599314403021998866649441017380779542024435461855050426797989552978244036440275427581424242197114061063222402758250069758730230973178879063781151066348305721246004349670980656055667798086912627180438204748822704382475058197719830266892370861059953326819749996245923512798312427141988841367530383976390850123284919132453494026176767549013961763009563768767916718301671289656650545285409231035679190584611083996893995072223897475982810675368806304244422802315592610508042632490469360620190011186892991178532307350418880358552363268086635092729228708727991072676959380941440668195612010423812780945232670544164275008407430188742907706113503401282796263714419040973502906844496007955680288204795108863579253377960515832895079712370178034038901381712747714607956566629824895955729262593896476857166065559948376186649076761194030897437469684623087120266533113485211009654364222562537175903677668796054728547179427337436279071566322211668240233830666342015006166687426658493253500908972827118320443971956197443615885363201297458406226559249100893721909670487051993677567912165479060807591134336202327511253230943407472454345125769897598930428764270839740880061298403022976384907350036274650391761903681055261558146621870684217548409986633772065607285444949364573429297658903773000148887954872649985280840963879503009758270755965034162455140662930277816657058423505192777759787779618938732914389556412790255171691416999054541682950756265448153703797436227473686934979284852538706029141266311108497872543209264545363196354409537125569527910178371691167099107660076805487469313492244625425466896544121374750558993776317723223140779548010852004492623049893910735843897553307062723011202495823985026750647480746863100059800400550385305476279930706953438722171071343498630312537388801698494198544694716280150294913876968395401790640865462739598462119952838693120236088993875805449126339497931575515162028275744462672417521790945122078006798105680417317862364698773449393771428593686366694085173579294367210266455893794815167349192332561713521906876356377543370630164462366270035253258070468817661095011476182836273189664984323972818908512801025306380433703811344229185857289589721357156008751914202397433782884380178864738559177670524159766939843232564269336206739408832089906361512822398672747813343364271658053151740526156504514192841154006249749133039108221287690833165878579691141454149561293000994626380760353829420094302289988725532956813117841646239066274243707926130918392697147251422592189000031696858524591399484857832898069324524688480533493304519017057248169032966606986438737975878712992922324115139281901407631478866937189617281212128250743599877240818156242678210033769673990241891418061274488994909962642521946064188106852024675125606862993174904920752693878767837381465086818299384646640717274057686689784448933697910698168144767218818030135776184947968926628327111952231103804714508211866525182898095403826487772979689031565788562534306931935493505153572488746661975965476141003877803387782160398873064356416064281482322600714885173113662386845025533585842925752929308872555534705094114791375111110066665040445992978747851263821635818924579691629355748424411575677379086807478488231056060802482709085353259411294187070931490937551708133672059583423424597258536547639017495964167059215027213734131272432260835525457939655841421395258603994692615974121658265433911838925896674980436858702905560443323377037472868875024122908265454685517032434348325518705925502715093630850568853444574701710056549621264554332875225749499480967654522493804471662207886979556887968154367462806936443228912195433458158145536548464684136232012774332868078964398452147570830260660149936283389508095589622681567706787176117956909969477307437395724197505732607562339898867645540552658382183885851124499407216814319935001793129013541081292757411361174161569331325680284831503753420306953149104939335817036254688870514352600985318929819527771965390272093918237252922246750913155838722310172684960317731852816965748746237800390408169421759821940220749200781284308058985323498986935067649458085938037414827137062473538080227907199521906255619103553365623800073143536885741655808233396475897327646045613360180199025194465159637645861862898741975465719093498104426260247136976603765559397128585304258316256610982710769938438085741635164116976013965746376332455916449087490127143676647529843557855926930239286338464490316807910511278517215440780943134872077728615572015174679779352735548241623153014771599183373094952268556936078948129506046585085947299233446062595848332499699413707780601559955377864552845586415815436692199609877725788218581668154440585241821970845796070007770660628927690562489849914677010195056898004646031377071873964453591188195503385882355524507124142273297477390627810276125929963435048717969361871878269305147834513557835368546121608706306769122745760447843721961542946863112416351963886617007838598543264391466341146733809056681408713656167716436052043737890953915857547719996197731115011101966664175542424515857205482303241060087001269998301898654737644195464669214353471832410360551690911377373498316929695205739052470544091617636539275944462136797337752258126627564768477279539183427052755228295530190320778942802420964779471793085673200333315987568350745073908727696733876245442148771595871578857349071187705332900844794553513829296828770633949702538463974234038311410079566958111185300219785493269676401241776930240471789243353442301641453202609087057762125675587335347016299248051246294838585069404261774198029135825353744766546284241271480525862481451902135937120716123155712208751363659739032720607291674638539891847275894127959646220804246930051266909994227661898026972544852642492281816533484808000583096020887750691096333525293978471462700346938209645657066482044847996549259628191876117452367523273867910679367600415389090726948083826824696549187620289298363814280426017988453203554994652160505135692221809352979286564606560156418971392310224824439531816847753121680928685456752228190062416908104552378068737645240585659054319170831042873265397076820594923492931968590571853848783889848983499263633048415221851050416517037235429804361910878103812204236356144379134054057869347401039051499969827975472847817189813524619120113414453492702379238991740718371959519355942722122321740718249197955163844704277767960149800428152392503393378601500842636179031096962067658187439865521308730541941698008696589872466137014963573715026071253102092368306629880639645259491312279597754791782656091804022647783727604645743012729149257085300939719885843114644242888662620496254812369628113765468751345242256349399761026058197205305395764445308423688387999293352294566033036532989739193536352052960050697304731172741728339775016708135729414263819384934033286960758771320897875045625803288564509400705523828177506945590463193533219550417302185934922754307001416427893502100970181206589370316880832322889830879508202434232684090830600518836329185679455984206138793558841229967392640316678554984105682479460136766491129130873075194007706521180482211400297684286115996512865904312854685191129997960843537242231702441165272762927075063326320300447379297655185610540095017643128592923547302462253575084105824567602062394329515482737057460666647925002566829660877914696197382873328517651382241402388167815862006896123385091497116594515449926911723135234162342476821983893687185767566950283038711754054171157283223762493028512828132531314327302585762301055464157616020639730051440157981102743471693053479074909608492636041618609210424628102259886957725378712313154239528251926508359301974982773669028979068017483639420989329992061953071282646256223140286274513081455719369996678953837881944086402323426592877616044865945761390374346517524856470273649232844944108476574979187318505790960929250459315530684282756823558181194088258230040021200377126564845102955214975572688212966847266762051265728178632574735620634553391429912846344668160037806931262394268955084829888909037727798874413996463659586497737572382021903154229423545162983750039174356368200232445983982432344175029893446070035908672590368492315363140655488059345178489155443870074341352322454855003607532555219013978384609393104089913278214075553211727254586394577145077239180476731708558387621050097078532760564648206024630453173111709943188177004837037802877175105946869523811277681198369510151658734476943949220134090849222342938841846893209335872129084358110275767273497959555915348091037464608993880927659436774522930372552360302057849045828791823635296851260401610278049120922631751570577663761586054044676121857025456946482919485747174976761715247874906409747695859363238844743241380292896143008284524669090609814081879808473661906674873108897239916837818225953354547350006958387580474148383760256501423051176641856852783057154367658108999330260460187018558551480544656285117776371773738059873749344983484356815396856734007362673707723777394564879865819992416764098145419223196240515846926840996380292093381060449088829097904395273574646657544880297560086705887318670359956806335622670805637401644164250511170842000546848034911056511714063127170677967139933242014946019853250661806051684542555520606576571484647893676219093314134422119971427456506080315794795915369257072677672151866133175360713876389568111744506917088461561803804144673196847364429999612184319832058790332148501079148487354489646713263110522532358754714494663580887162018213741394087069745997218669094816204647334893230731406007386270173504006348425041360885202721595609714429935421612664543541150684520126759486588855839739204424116804164560915639975286786379384029823272822677269487205392517160355553448868929260498276444262283721306825075401464756874818771632033727176462313754063424852717284491887821042677685741332388026812857566170563584630720299936706664066225965804421347371406870578995525169326705876975665287611372498478223140757652522223730037697856951105653483913017441073281586642003172478183448561581550903672147480140708948597743439338994502767096953626790532996622284891726786020508993153371405270013924803659397931733977117739602357528340553989589509832173666739022514887936006935190422206383714157230814631548506284871923547635340472706656588257732720053423035880722064779728238814683821007972513224513283979940841089423306229375777406364510802114827950261571098971762440561400109955773373290829038559220619013227948706786181231272059747460458383514800994886151225217189301048020918626708706617445830775059669416612721257703536703392940018624505692432745529472558607159289723787806912999898333570789340969091353291885888978365292649386818499652823177330045826344772431535023334747025880158918326435134007896165809960331620267424068041158288797337855788113463260492496809447520131740025848827482417444110973153234131392223233806363418537326867543174220565014160969204381060208686665970284397102297177001171950334477967978546863645121641847201239652956629905967305907645184448157036601208621767253363664975337013336996847681431592538286069662721513128673461858779360506522641823679093579085818913636904166654625091858112712450616937533515567113584640595592958094583763174325935533642915710486468258362633125750639522320476398452118007621256060021111756505364443909590376640133557632313774643866238440292362603033801632651414451323220288347451065202388871323479541917539867818954120629526430062176893251956422414565126408893493276025603129776500184563465822571014440988541768834176732170293536599674477507303252377646692019486768805307083020142483816007802010519205200012980650179470616880578298820117968704453724763179724986230768468190642679780154816292622142869741234486922235376382123455719949411492590122955064111625931636283325035252392075661697741407104765381962482491635955546713445702514553587526581919649295816154993557331950207829038989986572220594057224845942350956924091813381990076583680877276900366581858820127009673769313114336554467502346332011385338549457394785283731588775011989919400392853894872644094845034920195299388497806139166853578175143246227857031074576367257992797828212908935721687449713604926621288914544299424606299941640704267449018942349495010472014543666935144471150868903158185251447206695898130158101326132244792989803980803350712199790496436107485156867337710397924990957989090559976974796440721373902378560047677820323003539066518559110578295938996431583967229456778938379724641136090051016923358265236171187492068568943376077578713941411603031053275431942512229048770859160863939010407096802314730023030779928699129519848755290349332710741441602324462257430985383400335278828438172282172176289112705995222082406380843202874622633787450644174788669520478617853580968139507489634853059522384780483709562414248235562182208829066837504044447073526525522916231663015567874176387422740650358685769229140150257029460523122040789790911562789437461084037266338216407944960119067854606765675251185582350309725406916654379508857466468455161359584068357179691782178314046893350868894614613610159612343895561098739626853642549276297010204616766408914608937321829930271323497241310210833599031764114399664566827424237205235123809993705562151085052069304127804740089264114361561727008848603282201472213043657702074483219643017672509670664800497685547665717345977805578560844287743173353405236725054485364593743410529427586465616681637396652661847609596790465346017505655282724920269926534340643872550648920290217756665510105515165226987437803095539754436806988169327354727854511861235108888319625618502784866286245511689429093663270146486702186850416149169154793308996211735471930589653956151264228687450557433241626680543016894922293845400726967923826518324817131659405475944507230911347885626821076604430089299158325579080034801039408249369259202182118781557538089028882598816669805366803280754121197033697868513158053963483354081043994523350854176753534998863368858556322671294645060341153713980808561993040432710160361327398745796691243621958195166761911308979966754467582011976917777091273014109671342938335605264714179951388726691967364001124283532152188851064358851272143673760710511337556876134555096890612370906193597903375713264216613810448716077156450099067227495381457683713907502715087368688726069428347602066437799091558648782863871067466406766276220411259625818809285532046304052044444084107958485634613227670298634267260250147047293632148898775513189895322747712253435036512475863294446476247240794408829796737090160101294338375784760886290944039608229315121266178974269585672020248141774292679555445707815253606753931874643944266119423042699376063050548163630004420832277650933130632580514985067995413867244673946863090349438685968838107969984061217090549068528872053892516282827818902078177779059615072912766897222978087129787941746183155541279329726949445715148736808783166755661263005280488826486826722168911929080020539122870095422873092282643039146085802074053243674876942510263499945294423166260085024271952842155898309364768494212690319363201604540940744455910614915224296901618324066847309361598966792658442734001314381222373733672250615304277411355727108087370351494605156059425463067007139640454649747346412451285832142549621029558745458408239210331256243399651773327470941897555602382558976622505229441100673469360664083640932002686353659671808485538912486580592260611671039690783387911414608797568549298998532819442572109675045429152857186330801916488314345383022300489333115803318969961629512224321890360502095184245218663214866781937534298735134497652798715577781688158230506445553613977743333157223455891522410918522161343382084764786310280319780416493014177882207357458145093682090598501297150252967371492349313821068312341470149533906103907122834687612270393103616307516222026072207466631182743591562366759552973895746963008038213503142595175648669585200409749833518371439782692345832607074451315611433580297572534080004485135452605746004957649480304029211348041190450567918911187654529781059671433212967211500023718085463581864006104989705958341827997312259796826613804814799941702167940222794009367418606766918878678149353747174559449466725050818744067864412610855534875635966833760176945531788580855377705285697712673883325911027352567172394450228710876342093701407173197801659940751786696012444513477171518274613367812212095675688504089799115416496810547782980991487818848422645506305235454695156495209530297049629426562816091168005319909416920193885037603304812477675744951384705956686082954484837754384101520805144918917406174048490916359723047490016299154118199287671322242788643085518535570944129800809266279257893442379025049779492305222301924396131493240934150374520959499695600878188393306362094523582841674352986942483826656496755609913474070805699483199095577652349855694317346641356651965774162541986617424542572843766029807124962414876438961243595957887495453620668797368296511578820012635349493950473294499867244022602911426447908750247503775757066501413602610959894491870556546699531556272161832496211116511337167772650580475128776018461391858786831055136052042514629839020986588107585125082106015026763333309188048630381817219162783284754061295595636078270332163760257822263981669412608302206738915315390885875466191119590502271051571205616814619457066029756761654705116502720644767482440247434101807484841344283092360900854365131086017052760189824582509861735031479728850201814717815720514553395903897956074992735581380091091791434775870795478619902138346686803816002426008388552594602485727743393239461318812116022836214163965645330627911176826812457414495165438762976040432212748768494657454620116617075875969825147069573418882241157959088163566637988664408545614464765831370766243635519679774349065821773621216922203660539669395239798446609101859963327035737315087377922512701862298259720851621207909040906784431487573972764742423295126679942613410864154549957066019198471286221540647234781077580024586220413840552299427620339879128638431312164908259478658778474385199207045922432523715643097540573681498091141445670809472798254984910156213832583624885518145770723493468237098869508145120117698479300539851650108943156346865593888892553998240365479806633940812454655829755094554112060199504728215322280181513091166146802998614354432186902350969047545185287634771986614564060530454922131136164660631676144085067727071352644237596714938615711998324704957478958363345913070040799214120713544959930481193449846787494103913023733491096795584017837452068812265538874508420377973752744861484532586478296974868334655926693010612219124002323232068907193029571334371763519617657670461471307821666339138937024304573494526254331612338386122337646844526605327244410185882632726380143337706732704616727384697158603595839917220816961313271751046512863529936658559341974200298521205183484014592227678913317267089322752481820236835938132693585149073363720993255452043411976037330353327496204558845035273869663628363070987085275367280916751596927394633509927937273903605776333048806859147161746590969351964340477668126801914618947334679295260961408014439922341875183643756796289295413335631657126119462832635704551034257822252362591801799843967639273724001955789096408507944926936846951809502976420071398470432432767925071051184301687442147857453901248876755178942957013951334726038774176763653559926431485546022529706531483709018527561700244316714392731651839070268222185744192782679303369222209238705677268044609653465311229312777947954818722546823729197402635382935542789356302645104242864901487748790584178500344598086010685645964212877723961159710998670175226246646315535355217939005214083969268644278000262944658213521321953634766278410715102236811368589190324558283572662928978673986659915030635867095929553733794222858564421111499087441611518984915449174253479170818067551525797747564939576127104019751752300317827953064895837385384835336089986060108651914651089528911996112184313365017356497178886662363090336330117893658496657745791457527322269474516499489584393165470693226978549342720991900729465397529458523181922971545297620794768939460305179438196432265825962131366977897397994068596221227646832617962834713622340161703117638798301193496347033666436689268046782751565803340044423665911600812085452228154289116042544435756004724120410966718376213860423209877251684280845428336733697778822315692979802039121359617160169773604697604421819859211440342104325110496992838314817354325810038323227802779742503655122187360074865398613174215290197027808587097707331707283208426017427270505415789136979890158645362431035464405742220668466877667036469380471432800357400285702171519547349730620631417588059223671836661336725344398773812481921966202374572794093718387873855327850811836763099135478144789779291769077036442109903863232313520054838380646145659116044183143727279078387984010366160065890784559240216322768191259878516638122912475600771096362354530450731706865911811528951679192040975321992536105580849037176489257582343039554641102177322610228656751626115268203043612341555147530130278424000119513284322660933199355036017773475817001403818786213196649770931018484914744808683733570747473178526227850507441575162940154274310571825654058222245658623182862706380627583980005501044625111611332430845644262615127452458917223477294433931316842324126923946557707078084459376696903475888111037254066917549838279302920603389841547819554507652286070153313209763272052645156663465506615577197539194669597000196301339944173016018163321192136013538504099398005536375142972924285262738239719049210295563906846744392207315670778386520429707343540551709804410594760524687586037819362623301921668105141636806745664020960758173457326594506980653393857296766570365222645976122487828053351203543471567888584084560035772867752734307619217639247488026045773881125430504753638708226489299281111095160038761610054927589504375336769488807190131445206238009315333126575071039181977345800370871322692191680286732772154864791438505668902017760725212882027077703274895420370404932265256098421062705241729313262686669536009605385214457257704287490676816898918657500936040646972646175333740299770717511444048249245063614489825275524095085644130985507270786071413380205690224597913393812627097186009576693303645560478739153391311282588374339843197383925265771973959551206286169655499209784594551589980234670103490041607377491626845014380413628681477484898050658253417068520064093392350072628017636827890094294069736726641589124033700951123814212837287837576395760204777475316318497798639868259499071738353691239738439259477226050655749778437560954914946017026689084170201680745389386531031105839638087058423019337566563640882391189241707225219403412228480305130075335552799598442621621657632491940063345211019692949205314870379975157597388468835957795449438192243474707965516348268032646656624350918851012241478436516704283632926252866315449522474737073520563777911610464851890953815808771620611497427168062971798301963660555239455773843080699495075923532060374069135266563790053305161839911651855797748530486934103078456293090165704037579385207441329613778494430726453464419607986206061331772050655474975389631635494260317057263295506556872056437705384122703623070182402028234843352004925538255913156315588242878475754016409005185010320564163888205671969184214478001615975619426554005031803412465929975418158162130240157768165457559798459578414899682147428523030525822569145911004674580488661562682398789276654492144639542453145133901987434455848212019979269227082807963930113478180234471323666613283729865993217951980223035912525397831665845130779510517598100533721473069957989391129859433899233146143816960942392360613708810851374265923263525108968718968000261274247006601476076956735772776531338316089072301222778482411703344367192948579249002610311159580563418244038259506993687751161930091444887744623679469585644162387565136323982407160787448696259515944919677055896038521051476532466095489374186245270986490752068899687051956982452206096814648427659626532931511710147962689856144475978741304717747355566689540844825172084207495358679128764291117578460122911657973775282876134630902045716066874648527609265055691301252525890692876384696292837234772890360373891016294489126218757154104449658194898449382559042691467098552845115686717882273418336069947535525197572213805325667923146091143113408701379140030062279613677001336925087852123444073645329151900251524196666617888125528572264156455461754218649814477515257347605610704641380351994765513105903018726315211651737136073786127947737572092894006714392113429561531638279294574695975570783301999223215579550518404560636374195618571806656792975058203389949632124879972118587666598880498711822037428260637522818748964502550123853923465562163067472923494201613296664752722046642728876207497345279378645281947825030251566985871638852524098133938849192354832818699458697083965456851541932515549334215304285283170891071399879522983918859260914455302878712736330228483817092280840225551283709320078162315666485993947935839523845737362985238711750652034072645401815714982017595045686111352297748673956436951467963918833088217205819413238064883701352702587613372712960565356858224404580290627346362133819426318893113924646262532007259603147784726635568584119020760314245163899948683358121208082815081080824532112677796225225874306648144477894326528308028397701119572079514377261266754881002798352660564608841963362467761405023204040540423929086976720118138288077935375018252692801139021730876230999529673604516901474356597597334512903390624995443934207170179643562501971234638387937820154060432518308552206598000130231160754249823195513240756564711944993968929440823949860088579083690433673541746333959602834743001664922440146005498910263541635122501589938097465888768396857002243250714376087591507122004606122597769075843947823530995902586723815065888845313039713013420510343177280048666341710997637276719395808182684271082045110240302311340644453785476422185427724428711384216222929099643703897733704642533314384010212120471308471833752528951897579001139504016058402343101567120210834072783955483211225337170014750513909827317583054629829881903553357804329324141519772306984333996070674122348407601021213923838225620619507179717997288558542036684904330652509888968201447271681081075700230353387210997586054212747623300122548623752819872794838553558424972362781655690186986574828280917345791898500363835015563801813673158760707095753114205929889684654800327105056916353332307133002189162183954235487219565713814200123117156662985209944565739000364637333197093908961202291481337245381098446679926202213083742993540646789359639733644389637773222206818053253289243155504710365684889365879059765980978419799951752936704972000680926815170995418983122521463763490438168544966343307390928588332548266708267502622141166455832128119948667818329919189000590002554991169379423590656450973714511614314092711903919551916444962391460622823824722719630136105831861139528785686544155103417046779597125185303432675991969024615429498923717931672424571540224925620218253594591215250509019262763043719402047142990991570442246296301662538233575409730623924775749178440428842931520462340084401449811978438016800864189458431281210845874486109789013787547202329517783905998370772601943105888952498387673966626408686561734777925526118907045626097913877493438311043921076365854335491567783687854818451413907234595164590750132680578107301944128561074624652311900732278821608268771845101179931173689536432174713496981946833511316574937705011603452485793160452512117853098961331536050255127328246777120863045751511573877526009930601099811415993814382810462466883172391645623735692305558560859349307116250185467440617215983007864006747556454891607217972488251060232043432171076258414990057102265396205018669337385930400193009839713981772507188433364079902605881489331834963781991319395682463241739273318745746422541131034928732655964188067475911893511876731804684130070582370483300020015542140526006736294090842313947040276465070570463328310186180978436715317974138929740980353967373650857102981185354109607742340916919716715138268024148063363280954314093551959943154768954783153446024816229968863449115102147637158976986802609283755013277098029219331393157173751463293161307580548605960435193268419059630370966165320259169521474343257132768952999461604339193915792051160917931628614420377094915650947998447509338222877657960504537513527759602699928674200156498637816331703931398425743547203416912356485282674030380834014488724420428362960091532289814169520020272834420839223625256376946424773078065330440968878697242423914237382275356961269981410331858210243104989517932196323808482678233354930124385256006227629087374546359171118381606808373503522402311006539426042860500284541914164300738898381060604285066766921283559275229491241868796352377948043524132624894617207053914971171225929797747466333105966593081606193837644824636646356360774507706376345982546918661290654850558668454921506805087596262772491120635780912230587316862921462020091869361432590825758695027375481912536768559119646289190432126110419054151975356457682026052030761148601496859960984826593802150793037371879998759795085506263018650416942883386239964716254712982241013175300504637682747303754210557943881681315480191517259220261452385140052018321010886831995722327819859598223432016665391021679540212035337763031809542979269891158070125332590131888589392719000671415144432144587704525755844104287859154916781251245116663039261640785933997666590662627276326571716337426201278785535598699096785998040178097244572792555178095897604087524287277795680147949247549785327993014051315197466451687746652592742264064489601462188460095863827373527070230942316737301121504302188822773428513955903178516278174763688782716975792900659365483292277770257356578401218216425625063397011098597710793227760282282381783591339991245351159191576701349508258718994605759729885919155749669862585437713629713415170682694595181784079486859937021118436626200372005340246315595947680044779889472372301310670516886973561721871598689381458929235999695558900376228937175288042282677206587853866788673786452482505276098462695396968499397608861671772088937182671864926993892725726845340022265045576029242403159179609150364426376859206785821682715019318949758599365724906364800002582069372861996239555235676330103833712021651177958131233493776845477234994942327269870832552567830756884771573047117703067197492993256109482106848543598521246501423586813399958217721403556055821014666682365706112602544155033037605128181278286520236661426067567748670642859849299726888869575896338937696084590529935303801396293517608882509062427899409805583758099443308308422136801624711663426096546117596775162998055691468277537249074219369101567344451378923888407258549796512759604543454092033033262541000505450373389971457466374818318573135321091187382982871288179323216684463331823683352735639411965526039072424020556992054126395645732145345578888723778019879174814097813830362995467617145813619158435516904237303419208295326454912212246491563257922229085643086453049835096266984181157044234649547769003353998117088061762686801778881153787682347853643529792687344249350249567449318696088813363224222674710007222227961805348276921864622590211452565423618326432884147294263682104844628929605779336655727066433055200912892875325663454701720261409624885933259090440664500414489308165945021038813465286495795120159145229896363988083491914523332366558296699781270918544941677964940504911484798760153460152748156903064564812410588229385489873562447159172888669297018116801334150838353068711754409040553540592787628443545710917949969921638330661273873998248922369804860931220049805366517421925226407427009059998806798292224333798651902564240265440870206482632602303486247157218304716504953211510661897836812259706396316952887588603885078617995260617848622222474551544817952378920060844333593204349725283788524701878617525188828813933363593906121558799544412596840554429638448314824306180470418577646236680674387172660617320186997815512379600484394615169998103965119469440498201271676838458107622447069576258923548949333607659649735337034183722408657262653820914392079650967373174316743043027451044277581791206089853230419997699024667109389028980808050117951025794900279060139583933349341687791336166486270172161794309226996439719869483296022328582571571675735943369394435975847823371325459856788003179247247282374630771423901430631554121630998897599096276782149509248518117168299965117794321083593831209759796430283087047417617912289660800998137826311490244624790397872537227163028832627950477796561792554947825308147036766076571413435845412084066925129559880844222702935618607058782037284590460842561655136676843224770989053368425896042932889865813627422739779451604154611030120549620412898536159431221519786976256641319914331289464297547322438757092357718646384746783695484695572949208034226247811754791801347653911399831418499122982642295423430729875559960540935984781192922115337380087588071398302428565500215193927373481988126349139775287495243449875195990080782185453136629144987218497723121224351879999888573682347506434143118420804623864745830552454771365987547627136236397895723711951548040039752053199935891060631167289855354275064659679092051602927716531106076358122492560468392623299466778298656137280272708646780616295788526327558460014521463174209083625263256384784862190148682303701847904361578421257223478624041299322890223488223296314571305218640561283756803314131002304515061148266797282423435777941790648148517522285062940651982145634636562481131624446070652558525972108619216761859247356641443976139159869300113761575820838516056324282443134283736967254872550697799261669530646458815812726821555929043607727177116190364551954574596971031011200986632466325737227254174632351090443020358839911065268058564213371694519312495188744004518005173247893987365350562535901894529317275936569765153527981011751082137016504963980754150551912331170359463178609604120906223429534212538552215700494692492933500856621406529854272905161541247817971866991201674828261469306109326306273025192681176652062492825652038023984777762966654560715854635626979409954387489237381942623176665577876688961679580371222615252222025727319616433712528748326956849568069144769963306935256266540553727933778307330103591841234572746077341646708647041083940081390283287968042238622218651186556583697489366001305214256129435296278939183159381930238932591080962845300979285781621457839153744050793397430332129850183547157824455675773544710661998881283914119497698493817758936488573522504350390183864633658834394165262265297837745903600704191079387489416906825349111799722047144467636483079073637015888567514259802609729407924526391243759882408899918961765647341308192514720657932577213934521742979375712683507274310992142907419400613498848470408854607822619959905248744315104416018382296830553788526901897005321485695052612193841931804289422503374341070512193543528787008386666280377153555471405112449906218937798022977743143808835870028256716498430625182959393986157764394590989139668981480017278740464171827324104771018261255508039156592708116596673744858590461492239858060003894945756767074747764712087657314632920089782800120662127606119483745536067884602881641564345177913912884512855592993852004387376901887892153239267775871947192783976460333312344390117521081277018983807033407862832451310513473911911714441091680466596188977662636414378566014876383831260314294752948211743222229200143522364639950868498294273376627064566743255942039249147595591707698732796306768321327850238898044635532815015300520420751001968590073307948955946308995723503189937840161341722349497827011254099395279544444015697450591948493965221397850164240615456533354304232284695840440474116102641789687902319680987303569695300792526534533373855215508004492575622902502473578564415362603408908451790428814618697470510412308851412153600386526895559340285415502694579526471882726269898931949103942867082571713893911634404098343174651399384660109930380441900816351952794775274712884209358367087863113351035770489987491386855120644490706398808854545269740428208052645274717136838051848288054180577839849550989051148480060087482845438191674890295307323547442706367290591822078870956960864676345817584021300047507143799741122303071141771901267914283969449130052434863441661704147167007983350127412328429638257471990089695625052021139285947563573832463780440890240400185020906522235255464857543960240345880561338819273290441723792769647101363587228966964775336300851246789899567348323653130487643706390031329043191532843932450490723216798925061195209942890500718696811805487869358321384183588040713439037604070162859355252554001208887543183459320498020401796095890176613176293848870330810024878806341310923745896689099364149541171228907657114944257077745289768220343649590630674921513330884983471197725602139541534611004622660582842615064762813213342297617132758355861362239830802961043109137785519647627117612211309161985590031326324843531385805612580154020277175123202914199271844141106647274743037834252464067680344240876084905305274116415835845051537423490783619734127211846986471550648054604403836640182481536761669975233244924723765263082443339919105326732842799622412005511594027289638019085337568156833850523636693326277543285348016550469235482283685630461715874255744466651852550214138426428032700568568798893016690773974247611415545571866644252469810596837070478173843460009361046000958077372024022863614467761345484216622171328543627040656221313152942756918204557208898074887833860766370780791561042302614658180477487516822772709932623226655827770393257425099206036386630681984589621597154916048478902883347769158879948136677502352393879245277485292840726049003906987644598521254052374029826766961137815804959301911704696419080883056945387177953329794019320382695188966551036961309316938781710515438776292747179947473629732773571314682795532975553057185125936379967669241508300425254747181282946501408866718599126616145209865195028045508307797565528697142345397456663015686033076352464576728589925689092286350424900341995995443574705221912250208532934265719164863519818718054720863129143409589633643449593841270115317863373132333339301112037518359701234731145695931610344504625332481053616609288584973886259375817598898388941664903044053647295938698043128467699841953664182828013637859245022858410730766543880405959729927844512436199440995421360125094092972398866454873099786695825833779785148258351435956355739807446470730563819979660425585389807828464184095863072622003681981816761366216734000624697591038452552840383483635670908083717969414913822348028510253488297844944360366435977790369293779745165459905997552917861520347933825121480700723116091804147034754537103060515817363625400783332474304676992302428233348552148798738568943740246561408181117244128858345855311751994837554467232743302383485744098308778150703863423288367420367647045869910932702507894668367844099127209312857990830454366408480223394670635841118088171427198177813117290208966951053825563527082885205051089385920479662178475906927718801207164558714249938046008845110348902915321715732136460844489739702718495010045195189987035266229782474635313664363360130522497835223249423904229781754719042595705752346871254096509372324527794637974705333669872824703943750683188173314408243557529037106939318388390619168528306950708946496554605377558301182166192815379291845764429408074425152052061320273130557889365773615026772188086198736846087030035969454942851018134282534546295773504412753081283267951923162082581978917025681209028124125218947202093135132408762821344060909164000705661602492550327316610037128038657692521140862792713419123372032386950356839874567713399970967462020686133141172716486762377756408958399905740922020340370276263425945021004597448823162519458799365226874314456995926713519911977111287262486910585463544585857437985264559109712137171157848784169264082411427939484582837415126764105015277430938232776719632922477934088447583062351022821443339465637606344629904948784905171341253706027420538134956736763050874650004280252252547995457165607122744375897057287122016183950205514724799921498412940904349200024836576120100419699101880737651241641882000944787255247235909864995248942107297188332537359429681192627104885204236597261284123382009113508548529867598335540526348478999286450308189798994803927859888457202481152652934167009519719247544015018566592776592478642284649645025826928822363348523556944317680506991289016906737253484191478670021073304643528729567765897762564832006209779688192648729764990255059249525540477995350592171546114994330546278763604282148251559063312030614277286899289765317958116232453616770575083470142422638977805510948854676490187496079415908258223620077366584330994055029792659684997349358253495999433384093209188585515983186484091327912061544404396752330982758675654741041639566642338355386069181823827673680305649121393032578512285154274964488110078344349575934441620644735773143225018506052385968887713872102045158602954292445742852754431879099097085831207269308615814705704488603326397240033928940488767165558831929793687763986762580629645546122958248685121254600039094960523423147786828584808108192119861686177263189388515976584657943476457463128100936789085647796861835907335563852555022148124241919376616698795615832602215858293133619970609568279734619285639720419240116012836525652000713145078575364594036323170226215094752498181599413486021019589057103628278047171751479694580466016151357921101490499632182444529611295982744257086584734287885165340584772637756732060113401047548228656912449305882846583614245710092109331172616779477362139125080786758072003542840498037672583493952287411377173772265090630583998531046406963819306950080270848718469723017204985869498610602534446206921177107030448731935654131391036028726222092607704033694684672398661228542212001526165542889613879463246073851377832939752064733589801549209920440015871452933577364972420424286875886384851311634509977467560206300908116506951010108552060907404420402794256200829495798358524088621187914712383371621705832892905441790642200196643642252752963390709554720874622042115468962614653500832500960671762298160700246243710868823388838553752829885878017494585421721090478222681800135393276383824633416107257978058317266176602163619198322964029755586979721245911957955623405342356787636615167756313812735263887996360942789287298037871733495027041285396001708709372597991630695484834213336235850662368937354215200370918079007707641450715695927576437581994247450525367794330744233671036973736058265528573427797637037337422509525756767258142661846345114344453141651482906640711724921631219778491064128978389841017474958473281586791715642045588653984024575485248297980412651834734674099397906277218334558258495100711620362635879411931227960456522603496690371975809307649447945948866051849955991501086286003412408363451857726386776975340914398329058948974884355216630860773174335804136992512923504921684076699489897907510916047712366827741916302844394989312509229824536463630288906440571234087018865466570521966913684197509390042516301814198072294107167291065006692940805693962615460834725686693099732302764249214887868629808244703906106815383445797908416400014216489962944362384061741975697383552553281547306875016345153915425027474381358414329949977871737604312438654825484693734405244327301581900158672904148809932183170151868087615551060145066444219900506844966996369877634264901701486014493830155862883463570858530651916013597011134176598250259807898583455122939235174175410624584888801133554118826023223022435643276009331310905388828692057632379109466089471831304191642966050431516169316181019640180948296529489453896724766366950244662852480683724079146115311739842706412253849536126779014161707684480543050291720075211183079102486128498493328427768198794579408676938628072762362319060620923385651585337743930658251115958708211033693327880504370792240917430020355202248458020478436296873712029445971553730160940203540079265774321004071723081292221516886630721226712307467501597906394171117689924382720081071099620676752789393565242753052347697058223848435170954743973800679002476744633775151400278195470187182076649359631126176495518403401731001678212704140940451198397912264296882520746831824127100022495305364070851143497126714078688758751128408921754377557938438962132231581811554469644846922190870205971205313328507884620566707083535217066310268142136931204718180173414516842445573879550787133714469515302075450838178065082374673030851608643586915531659232330559494437559771130250175722109332457951430678687512840621829752894303814846509470603897178832934316400547132959395929149941665913790790689093188743758655930840306136752131616897944155265104702175514639246260597760816598796588012523829365093565568890870666303094209287159262860647585808355671826344049639693819271637870507746116566455888005077710327280804107398231068036691384883977196405649528169734905263644149556684533354502097229419864418961428570423400444726630650215323942624517006627644119408883240926262107833202514978475198158179299267622973546807566746784396150933676381997972831426947948081440651702857464370961544976708668459344661127433119404875495224048601331364923418661154803517565147670520258925369011500849670862946331272124401623973258953348819611677171605292156764688220012556623374908938334823387638165303813568166144200321856443303672277397599702032577952158513429376755035116909707991629289645092483630345002278412229553377711772752170501516882120346056669234218926580019936299164683872008903831784678954923688003273685958306684829312793292135135238151881407701139782061929547164409348296793810536938404088436724626345258889499783780488535887932473839418154807654917521696440174957537290493257509904356915359436432737981253039312733321660083226546342189955625385295816434739400668119970068743881973958006425069259776270575193217435364364758345276055496159222586284926269494728959323067141304860545391802228696846063814430817167693523292217346456329698931671861458001411803140728523020779432371150324948120702246423841204365674988672300023494300743209681807919382620601650420849240614172834237954100783555665130457222548080479777365291550861990026926291081446813836323437707172597337771810577575163582830305617359956369416866601831025857989197567205610971586004120364796791393625148031066921553042189585005038535297923366782537339435596216984637166294206785131904328355094636790304504312721819152672919199168017669260948165843889420725372802092656073929600801509889098640448107122989477334823715490903198836340396035177971149525305663251987389238229894782076551186798812466689998041555835699228176654117586762853533391217324894469469314216640498311472605185467216075629853628134593694472307815683641223492052057144255782951550584290691578546943913022826250458457646539626497387576398620367087249658375125759338124052315384096624602203489615922168266166506424965958904250843583650590223552483957155515956996714572427591800583305897445878941710209777167349336123784689752122739795904767164573170193043960468958891200104985650948774760502779507573268275853362116214026780944233485097725877680286393216156966183537796424990571088536574930868484325400659239200278804926031542736443792015978392462201611078331817750811232313091758875445058072191013950059902083419856225489984868587607200401533326181286818268361256861420041089183201934494027071298348847058298865809858039719563243078003314044279359900042482180130598194183058820844453290515864086552590231289134368329469206948955469114204089386332282913990689240677982181709059525153143694361170035584469597706596865343165479832536426264510997724838426074364642035498586719272913053965481974986015501159230144668201226569143134873210762221201573281610946781321862830890519556026617712008636911280823839487701074406582624798254502032799525391075656147621508993713286811513363106074659891120477991756486481522730126924222826135293221238823521498316187427796532372854849532551021774196270236215040901071458401002136430193680675600836668287312677787277638299877217119560494084061934777722663490119046167886762790166685335020915368110229698726411655753988397687958085381979204287433889219521937837934115354809932445061366855903475478799171091885727860533597406182751619735444001605544402892337303767864882854038549863441767674366591528255300040620063690384319450124364518824606681830116960741282141151732542723861412789943854189218472495438354133793483894464539856206577544432102601558639461107443838233777403258243997280094777406639785849171216043544881163168010736424658463382097402746625882307399006885792940287560563958595468252172896204272922956533538702553907834464675445494676528324063026483228029454501721126278446532196985080291056238966925937639156919528993671234692115336810009753436032374666253923954519734005803119883784314737000671533972370762025544199955168397451666860472550648593330504541601173454879767215403223071178262517960749976127278716629809902921038327126467484886358124216659738349964485651571735954618541054821680219252727583460003935360819010972900041292193025557358404149718901322242218501078228844252105164538251092162219146632518112201552053213024244020932764509042029569705930073350374749269377346370348224952304314300417568144784786443525399403613126104651670353983657748241083670196996501836079787272661696696554896320108705336766391105962700382076018258089551068755169483210870327191458719226023492511194034571425544300925152123040197304990893590739620158678028363049000600378685112659505963855677551996701985733898976087977560915612254868896333559525675755149436731292221815011276767563638806454135686736473250360074406822915705421208085817316366476614440515390410211899601734485658339233411140045337272168408993983726936367062688494039647326197687787988500380012204542995393475229710279381313718104728981895579686185622592400318426043483556357602036364479225303439118491373698587292651236857297460492102983290458581661973919807404372915657104089714066106424892846361983190875630902783290199188958256226395450823453666979335388848200606520131183478031333707166811259276869320715043725862854908537614124605080706231693703525688560134945828359410114394779051525760881068763499616118997787076676981822177013342206371276617873941504224671526566608561601610131919594087294428280421305522342921816537067189318866785651883765081565628039185487231846468048856233105825517775787751553830182521072081075122153157567032246564645268749924762020412982501424337437235065472691377871558858326428272654949495332001473882988860858305672330607504375773284242004426428487493214706530639494587374499866761803077754058239887790209238052779798657507559556020774121240967691156064983741403434413197412744132247634185384408202713485042931378008881230778738203847167340522415839675172195513856208108776296710168190002170689235614264870710477409301580728783233628337955158525867806340324809902176572189165525127003684525131203269964501528681247019449244494871714155807499775504134349717091179572110507875922577669802279035546245122293935260549641458125645040526835126773851929437785867145481884251826784489659595814939630047522199733535115795805337055589045853968174422793085520500892603455621978159167143127727941385063273816000594091710935600182321056717321553452584773721195309534707648585965694420702094102131269852066467270767539533340174549660963480695391013822546858252225868172750011314708141287413590376864173429359011700186754591058757387240713107940862469475004033937148591617629664558965309487505316737771810292731749213503063649907780785498513764494482730381269198743357425234999630053561313042066627892412782142878712832123729994318715589906053522355120667817603434778301420631010701330557417698600226408031883723459083694469454895001999939928870522584442779809873665950879480740775542183374001506363031873706890573031778331192190603602766989298590010191330190497227163680324284774649128986428159877004063679208862364271646153771818178169680056866783228626030427891944410709409164688544217684027653247937950203147807150675551151034889603310380152189282421331537474542655377086740897907625752268575703111171005933841473630208887747138610362473403837695628070598283612232837293682333451628385047114496658489560140062990032193321772858241496233788360975806716995726848603535497460391421433320078497197202020878961065337056855774791002664568480008640447655984298626643474542713547957280547317493820093969434408071174647715569607171033168376098239102816048649104834068401333947956755934041973190322090668628026546453839608784630911210692001893615217184823618140027327588621032387483019116660165342055962300843011138447385306658258441636025675620839789212878397015304901992268700816508808251088885242377227549263306393619321183706474185314112292468226749850146595974822239809665657073359124408464147703125495832527635454651421442382325976675512358939982335459410717581935265235501780606285220252676925633955312352372430055751386896071547385937155845557287512038856417120271006755843899170941442291492907695833786079020221630608191993513511651182307531387985335600409295293518459875877891753167165323274047306561189896974086191937282172518010339585205384976078855844144728109572364228788523859431586741118735622031671037780933583706202549978369466980191917665692933595212448193357372756395733439151939601579891264006586117397444585950280541760877723583778352363760191773978055054277335093056083636252100869384490651700732822298664310024613165332666909276612001017048594210903505671934049736716610881592780589928314823866051482196583550032860342294198309261667684654138280019278991866948487661669683571734820455090866496914480770797879379336519586062460034298526605123264730962885866524006690809582143013148755097463771957332442456688077361129474181508789338252662738626029217875769392372621523654705626790177235230094924151282189889620801230596349969584928580542637898960101247982538545778259145420493377228379038545486028625447074212020043166319353385741602402438095064706657146018167960775758591462358697390395801595921103399500116158314425066910732210827199090784633916633430375776675911473163474114878121312212090103161288417473149825278660310509760235371218923101879515566942819318007632494841882525017439240761091374849461244930943226387501929859819156806112321460845131594150072811466699149889535094561003260700901134497506119389509309805939159100733716398029785708022694674382979334261135983417766458708110155526900830587617666468451906183422674661880555010565038868798270191044811866939179095797295592508281427266091938339411991077277653506400139202088093728775485344342213483639881905554686826054426133603618950834888966400410253023304222986738666054450761198178444683796573049440993617982317344298507182898615670191853423140621050295612194771348050118825563715325426583179762950076301517813570918873979879011726436302789445726484746632700713823119795614788218974754612029399178046036367304128713847884793959866564167212252441135115268445742506191733340845034650336136123025108439963958609648438295324867802921654082031793020082676713809493009976194676427118923873706535130680729697438002195175680939183179909011761459509493656075991351673706810831686792488703114262152851182604749632113279393108091535135265485468478021677613175056290442872970229167644677397184483266319012681157881866978658816099387965086415229735223904556063450901859593483506289250945606815618354570855610646736772621469531456475883472622650847232972186913452249265455957785244375118481444238095502017095273823607759057802690597532064679949432962174003389662789816410009627021483715545818254282834372666250985844836647453953970696852487093301104549142574873780287593672734212368747270391603905058547825469634843456414961493805522537465082818206322277654270134884984035919759001678321318622561217134035042798142350097267757228717766188432879369607901746193847782646885710969787134189673390848591175798285810305451897644055284780191512337470792857203845948145874417336051977499664857429273155743867349448704264778954877403013752553040394540065241131374889965891839521589861830685724792491265030811157580399896765075009726309128403373105899072042343251981429291715465297604205956905709556837352756626245727562734748682341083640513639679601979396934871065160260948726459892758456979970510240585343346827754962022133800208552882931982638763227085057122863836295062460752516152611035924191588691916384734313223180098905354407213106010345037513323354890581351989679477661527848630995947205541209191499519553047715202842547254384464543693815429487440406149927838576694794823217548092789212385966682949485795802214989851185227012992435587980796277264898113364180526611521863178896974533669859494966492159047008220449812703120645478824205781281680740057280117631862190578345502610798215056480927296169851585003778517527598617166337579786909488164200207705755019135768615068120974117086889481094343005030312768737131515869085421448991539573874020250961577992267605133635646443108721905804732666818736295746300860447478911594265004285505971973732522522545320243756280464757727362061823578872048554117819047109215676173731506139280043814668409129582700750011930189898095849897666520060008198246945347989607098952289421283967921641896589231340660664292765989849379370193876399200996434803021273575753737477289322232643425182846828513656261881475073479372167773328955273101057088377826128788111713636992305164662265065803287168591651552380947711039496257789856318614257225307135914825066725335835021506221717164928077510550444597579935061210182381358371993936460924509611847704353751624771518538076576745201235446904083033983913756613305625335422026250154046815287645205237517988598061836777957359803037264793171851144932145999345229296205724977528899788639683838076189562116969149827973771672500860526454598048617930603278994723720916541036788480061796889077018346204183292426523607116556440320791383119020377963347467257094796857817396379881771044247584045351961691014675821561029931586718447299027422922149897728221221903457731762140995313773723963366250897368291578980239527942000612613787346078380273133004619017620510830634994337455961410471093289088575938272273236499209733909868901423987479752365093710429443798040410922364182178087731262173418767601446464405930926219553041072261071130956585748291500077577000809838100251378404018331469908104022070652736689883165466069472326761667875304465476303378336240116542367214787398179686415968106952612954571376244980297093375618766273697387545239173972598439857334417874388202245196667635134496912170757696286821361650275646885922803430391392950752270389580826993844032178828253389184812472240323283222409070297300854477111894809419117193084818856559834290642398794518342298272020295184508878422667637173565918671135297044271207454047518938116920184344336169742560894724533299583453301932483127616710745487237720483901692624010712689575094070646207073513100233761782449459213878115217034392380555032003296251094700833149533331633973442894523681935356800099196589172126193533156263634619496700485273670453305069311623841921605711879642204548106976174686433552460498907477642898725606338607616099049035860913470532753278516762029772699515155950719368799457331167549051309049961504637310693376611510320752377368544987437004854208594044721915372668895275112667856214702198086213289841708828803818025021424474203158101044411847217331809864833041515848385163156328792831514309771184547141073134335392915658731889860773135410622916547744790175814152086244550937916864234842508725477539666788598235465875791716060979132494910687466669830168164476381158210036734669437757540880264013451824056846601735451478269549331864011768520522646400938804680841456266110523845712466637201227127683904959640883244007429887888569838096221301801106015374856567463083045585468713743796434306560245134202874711089643860243462152213825567087271777030649330851016992905241311186626899123378934937946241022192638501992700674093051755195939290942752592203756879979213569287653307605623317390713832984358522569017820116438248266272053922298220711051431172399608844490967521526520510426683080170903023712296836752103899464089633771179300152978997966547110605209588221730250342322673771530257786102217668780699974183558567245335059602705110597208944294730041591484965926451588882484237303213653572898724252670195307639638694833155079841369290199757877784359489366288835714483114215939557103080575427116849842406009198422023254034716630927309404851721755542182629437539325627554484305675981635027770656782381004281901887664357370439284354703925967029298279786619032857115447337832032439089385823816295814604792665005016214520320982423480297856336188994238715863061169368597432465343375785840573122134529271053647167587050602998937062418115317756617905502413631432774186357985414712468346614088578798363309888889697075798285477626064218660144575483313449776098182589499646336523027250828838460660893626282699298936372851705771682608373900541748406567415559105758950075587975516536411390303385578919048945898270548335400088534878826268173496559995584261476357780830571294191666676678410897304361084832942973453415098461816097777568351761818766202092097706765228053840093488038412027221999762649354860126141185218137413021726865708123773686204811535787677215652968521039567695577611045661659288060433917383997118390659695364038984438885836017489559670888871245077318788180613960740252446693538315301832778057156326212498558324833158918186526448834783541299825365431172624563103078893993595802059626628932462356935478548175084860400252107895070352244285590844591106887392815427640574400568551118644345263370715371437572092598310754107617239661725488246406846977455365639725390872325168134918886741068259252721941650146406516244623110277987419689970095702954486137024757005092760883595113910564162292351891066455722225369053523146095372096872570691764808288525636942369313847124810480518978547662967951475290675075267210867757271433266335583280865717151199407657149354837982607800534162250946019884041008998537861564461086414068182839923805497603453806955802372239638954428378335419539317321573268941268368402269163724799450365080874565990791704955481684021863623269360953582576210005838267415523470945085877591998591731150980577405847304687168818650064041651326715575451623639033182617216592689105218578611290695911750320152764410803076977516547223857909859756388648290129597539500979730040725969493665117026250875947104607533557292973965719648448272928529533101640469480993213726688505308905296120015987956604111497230501452829461425999491885714679834075626821351286366356096868125414959125455700697825820584701358723543441442339806693784286486629184389390845477881491305890044592220832502401207306491763806562802243702004047794634105660431914482624389965459408558670535114047265082494779492910028967068541638552640336206985860126438434238897958580026104039434137573793613714378181588679383920053591648786559264267147623996483560143355673426189275880062517487977796918760473559444770940808064725724650238606559306414918830249310559168696131076276248871004661184389458852017824461306101095131155771287452889479939010889589916061316695464332871555195818529538778396621826669472713570833014839312299767317410040102697682870215067846671861680127747118082729828869167828302840695762115278234676850827673711055968591821688536550275537433523859198548632630114080336369734911351649816421428878277004246389243417633306460825729197491114476731404836209048797115219376219050498797353310058744737472829635329380916968298040620498028264067671978912948081845895760225505548512609471657570644450260466334815047991604149644192636094768073006775038545423160826757946004175070160793179743244203262769503973882075101747758717773242361624298684557711610243426672092235573432824413726121751003670103847909444578136240119284413694314430744642764607270466806785459810152128893027807135459780391924710452051728750212378852863429487727282692735171103185077080298398695921888108311841595885032434360438823272758472116362992598990037535953238850832884029876321842872709799432882334994443689669311299012685515706771036009663421783216202439085501412506827418351910160707926382135241439152674141475023711346929947381935091556022921722387983978243161394439808355841833363717580693751917267576449412621299658075982826434267905830405233349233784170097205751754786623682600462459371969582257048391440977962237155963756726158196777004716748573630170734086619155327183223203685669996912965502142728455836608265873136514972121978236568478010529766976727443992051671586367513608884794525769346078510478274943094567057974046583416967384518574211656290680005127428530103368480256549595928329319453574886914993633498539060731554586900334510401489384454879450635955361700796881257766836975685743819912598296273765277589776922877277930927315607242558035851056902119349824543637183635552267311106521883865824437943771888515103509158614643377458727915755186212447441065421472523916708080384083506839536853698146364870421526439172422337618970460020259652357075521906834145827792017788083333482185351705571889383238901526833458408615615987861716519161520349815348381111783126009814710528694967945989446959872347362131764682296714109417642307896188419383289399981833808283953658501976633215988669660520970384051480814269911638648579651701782970311166174623819435814640210275933001251188304430230188589295620773548549434257632604976115801289924518827315847884310763566231179898716567645569844824247006922950648449672918424697143973473147379854484948693885339199213985215682116135622558722095169558477961964055469607722936543770656152032855669630782097051841629643419712243720755324017732994820148382858704114126601354428266010014495663261521093014077753540758368124274327251902036270827783802418176485283741760244448741612494428585808799095838846808035608604219116272020095162069554981171950948113057740016393199474528999580961787214381668996502962925270913674372643509431215077883483193911329788140389413548495268691413298549637042705171198562027109805735105964117313164653577137617660907809726693078984970326706584661270954620187803429033258191610876634942742578210964087862845432898673822384391954308678189840524367035610733940339153555002679793540061988191867791789136738166118607961751862676811747798905098570830741719154568467911846594753830309533545503393529451408361043722690937982146886445900271963661419687050580441740757631675268817350114917967337755006244401028405540817801245475350625796469054194344305956039319590879119173308464904393259174095215920540576735915029498303166554697954830029440985918064023924804328003720204437694402771235263013663928996592831601206133682293038382941791214326428151579117647769424351955420046213822500748506812224076464624348247440091559330675630057225501287449955661134415894668388977644883129393324704413676141603604327455460812572386368840959028636301493537161190406334883954607056346024555708687307647355177510846524896448859744613317841157187861749759016211555101178123421950448955682608225422774218253206257994075582427694617586338455595033777940326088043732424304769617130379153615866307285929339340607405659433514466362308570218395203086799131311427769360946356239895193588865026575142319389618176736810672596963433830526073513120950484262738567706682197843469739563986200316714111592931721830308250668835870239893522871740127584469149812628683081303238695470889135556632624259147712609055906131437374650842203451036449888461530508542824364535345987743192973252836582189102130329219389114804893807840178782202353180305955996391372523399781587547097943344978027521431765409315759566208915657074093730709508049830733634670355303058337694850662577704485688877557165856527847991854052672548461907900620358403799962839661566700775587947391696167319912890385500634055258029116390237570451561707852587164759140762470262530709108814635262542872944996055634091839991259420954786739720530424409140784235432493278585609123268774776023739641183702409077754201280651034828566768567391419263904231540836418737574302460041920636056623087235667456681636900669791158893855429203049955148723298257542219301222297202245503465597255881156528840036503086924906179790125744008094885270838249267896463753746012294647306064106016062474473188789666628009543971803658957044514796236087494861171974155595749364562706969239204662857579988995708668028784171973205489403240979899157262802900832346449702159066936736872680917357778115066857916231424215524559981254435753940172023780737667766299648666631319597342993950500612696997043274177547088606432523269438780863868652443637781908455279956285957955919358390284437578433255777999143600377109192012599527632843769908906210883904533528596899542025297669832860249293192014437638743219139434473266905183386239685064364286164350283421813051895915522993118178493558458685379471079298401805843593162718407269046575312683127383572546350000793541743891192010074600021071014249491654860961000535082809484718676731431047768868457649864877771784499510470055641289288628015267762146087102002360957096815645571971133904205248429621011015027475080937422329034572490589847393211093018223355979202370479061648667755130198723203458967096352105550730247280957539549030870161770233171114885993645907570450774248924018467897775497680152793672687989057816943926869065486898584743516215290923871598472876284802010358398805637285323343509946049770397409910388229855199557197754380530271599756897172654602464158414542356284546702276926867818357553061632040029360555239074163008497633426533700360969685232593135451507950760088149076759528637020196500563181129544188429643040119337491384154418160881621178979561032400344662308909411020499420001873478359033850838798994085425987165629460342673200898392408061731211058062126057309391287232786562241604815674510200941514214471760509665079047591340943258825043178614109482586237870042674874930272961671889858022736211825881742704346322342429324320295877920125940598528340552626128235545068990637767061240084778810600277061481632623653291065199822800617595251079039625653982714612234773146560568836299499444864406248016225727049857899699137214759261439778071144629703898267793446271510078397850810317728966881908172503889731962908422463494687020005523075218796895440341360099628478288799518666803356421093161231695945794491631421801012427653284097260264998935744271672200430155486522745933236746896223075356159152177600963903425408627096752154326647637135536442608655185917468684735783713999481188763404270878406838968389053721907607144916989067573155267189427704814413239871297698987195336862448108987077250790149340436516713047161677709673436100911510966788760811328775373739497152106952117798791197401744414211111720232823622620140551380571427787893272964760608678738521354215284215846012403829542435467373011224539259832639730051470694719451741533686845553434881767513430959025428246455071249176693761148595066017109805590632831665109203884461144510039535987817820158253460089541137569945839778792854192660349329047720116591230617561503134330109871868183227437876990256204039362353345576721275399160106730671939831744115662691332549555642644963130766760424681208768923261168585902526977191562590741854210233043146031145060776212783609244187080994390474793358591443612245196617136545547519817597455287648622104539252599016198853659461669817855567980035457192538444584168874131574819559288165435688830080256548374044924914586701622112379465844162490294831818273654651697065808744460143177715961816201583760924904184934142257466680450885330129285580564677743664370319584439332351927778836589619058585976638380214009307468831267623473696218832615860405665789905003213328713161022282959400506563803947095030815419240434342315996226221079289406588079986687957845524961704507706956053165832648986560003412814120270094611415865563970684075686616841958918639948593112485313437510961189435704381133612514514756769376547336559455153164012073825250736647664511743240777425456463736669287832375133174963509844663205766571816104319482905441512266654552120546475124029037560217993617614964152193976996950672144905875898796841504615705349578669278612580124761434300253537363652535155681424032171845250105842343683706945216079063642819540995531921576706124160839056249687430769321865162896225397251067588370901382886679768226148790174756427361502041636410998498318606922779602450077459555219488327975184506386707817127945438484354961043498053286237916557650359950101457179151666980977849087939749585196485331857181251416132609547821492442335246114074400448467723332550292393966222349702497394942478076746065585531241951841290162839432603640547320122062848343516581676471983779813917961169656038291508099872339670006015044337281305118678467734107464180772810395471897218076694345979565905986418565049192685590550138544143424315487455507223474085931002632150412073383910083703004115937634967636652460641746865971931755173969608085407178558388006416116841361434519075217556018339140937056787746898888974977772274694350810372939233610290232730910822357265094646040959904254211883091736392956248647337027335471604444562956718456817247339978407892526012950034267463620363764995500104928147499678377631051979992286292989427810220369475880176498216108820054367876631671474428184305834703449708402503255042795611647016610473850796124859403887216529318501517555243279642188533622879145968233837641892872592305327364875187979297389817884818040649482407703479146768071313966711220020529691663646289562767254552644294229909759815078922716810593695378905577781163355298035851113309816905216990671874062401689868438691922087757166660645863886405587965189942620845505417375501557291574277457435952419169027428702954514556668392641653616296343044844957734756681433797560137392084239208228269340854730416307251572935229324334251077223986194768598149116817858932107708869084889174289477760842283545190951442094327029727753355765034635955136411520415965269505561513435205029142423178803726259659327690117727154218674898842609087164886176856932788593422133603566701930971725374145135265807739672503596666842869449254922969213385535417593976082004803883588767405663617483709982806251095786039122523929356488013839568722123478926286868563591596801197436263077929602341533937060091538765925601370301026640712903919793246894492817012758476546021610894001811621205285178284613939942492242719063969720124498592354727214706918735007679918540379811694982337247983418661914898021349236362615535525511014599733650036028184050417139191071248126624819153810206113145245218292274386077904022338913424011197436874057965308639198654337223304413857251248858085830481864529189235429410385089593956554776923172265532658735566199918421078049931553649189743831752316695771772364616101562273166855883610141221023833865451936118086586909751982741745887984744116117936284041175313334498516527832663423758822896461201663200571054688034369071810527643900952990715082462161650113776764905208725747322286941915983256359880226319914445789579540648715774488795266244715645035514104234425333158204096742879110537656710416892016597363662865332279115622618493288824238780819601749747596753222836837114254042517198351618294436614256292074981569118113854485784427224140760932798719136519557482909318187324488482474400317654855110305551269429609446832870440663948178211639466786529062279526751536546348384998094323767618686906741253029946667149871916416141085739840966175386034820108074407164700168180608939821158548516116504194836142066623213784034675590413286079109312988907517867711666549412231289405036918624315337560262840219160263566981887289390571683054595734764518286027980245912739296523060916793035001892803549122227172067093416704223462707381785687669925684038476485708119829092941068260689379894345857837038550541648060041559293537437159637872521066437933651812196840989807703119961632904076093702145384463504659375822903922745383030830589086871691966618325218770672241688561780876646811691506811591734588490675484798606453692806146450189714293559810649285597883635990728232508299296945053186127682633696233985421940690996324965250042761311282543992652111031154120096487895573144050956418673361152937196657297787165059117569126995016583277130039211908640931490550499032690727956712952838829233332969664683720229436377827198301779476120657873845984885166126438306013034982059674399179065698697710823753611558945762130121618705920309869423962381230454899303143819356383024541791195399280123199336417572632964988507029125567726536641484011694181937566877301883177766830629614239991262315982132457538936796388296994087153394942331182677515029563294235757997023784120251382136099017941867438640762265427891561691844981161069221531033373941505782627913163540918867973370640979797482978695976378303464627517874845452037569405580429901615902385094736405804521024528889707239296674062352840731643206745480524413291079295454146852215089327215506142008887728393039900814763597954564666341512233458397351025628165490681784183119137100163364500038171401269460487652198402143508950187609209558229505420695517099112459860248361246334087143734442838172472672936086685723809776375726610997535386950787623618831982590073243233728658258513728326421211605296462611399694557971198918845006378871422707406870966366833729571428112217862900486745613924021448202415011308375704391244757757934643260267936687353348144961467781389755920023857200131819800535344930500056421050236327008288480278552918407571344221897385031478316628141202543127585011025168903214404071478904502485965365301438636659972043907239293093937508213986353270649803152174478321661595335653477262864549915264949530340949030864885386620139148701828388843448840020033187415330661783854385677196755452224319264820685732710755516587727010559092916881976173169402859880937091150736804783577888654455188625587780196086211082712150047723812879230014310357625304812761254017217785408322702019468480311389785969514542155218138436663693685530496789168841449018033540583159486747345605155839552354837899934084488105909348603053271612250952029731807602340876848739340314770098967231022482151649196985107074756163933983844904654241945382149503577525293535372378714601889246568420347915898449132644028199693594884212435283896650310533122780763352561437365614254415337957002531504465154338720446465666746803854794951992278183035274268749539998857938212741824305696857330053241587066902584973851557848716962776504975229703754187746830723664096129187147298086720244960521337568414800502397195095217547150761079612436316132466744938394214924815937591938878690771197499745255994919043872042902338538753954391422537176536362112307022321872745893099628374596135935899914893381921144343974632433162087224866597223033998787917903943400782808591547044483278684953522630834621808162433144052546662030947677548236649432321783748675628628292362355479682671698535560935232204384893210898120098526390369216856318000861472895954614168553636568857829691934021527873802453780293788689497063270904273132792342739332353881029175627410950207957794984143867353501765494759819113965574066269262041500181681331549778170138762448909803494432505257080873628501185087711166557261185252614286011879843790593190478432693892427855136970015788341419353347916369147780638330521070537929590993680021497630755945341657583641719761026908481100899038134662180622307253970393520947088365444788488917192425166343163761878931593814364942094369094230631832955598907261817465777609827546329986099738259500008068541423026954266184267950770611202290288253108696827619517331465375203345082845435258491488127274019984891749098989334064840073182340803324432370577184669839858305045778036833906969480561186486035273869570200462417878489877272152583757854037982317662819521865273081077533574076052654260796254020553761002071754899598654429286654316709461333984239511475335265577607866428811111385247522764978414656997367312347938718364295697246263682642360256105604756195215580555016011631978973731570139765017427803052219924521667257051343566912707064783092029548474030382626580241313942797346203212800866692389967101401723440002658970225083276736956654306673739324563893188318373331298843032039216447666532850708521370762348565033014765602961955600371361671473340833877341279396579438716048341455935181538973659970893073050167966324383290630531690986291886491435536357520659978890604857387716581044572644467593932670229770347161230124753365215671546812476684848370298574463359526908241872051243753059695087133750517767745244762085529737622090813189377368848984494421935448142034065095286048968032332815219029836350888381852739071694130152246578065522796673190995754277453511066762353286962988265275556298226519575090424092375146096416629601146968573054806167273885507513655006346051468091851140224375436409420294929157337010929608136295707053272013391812109111349320807526997845975130666905877302804172090605397175066368105801406693781704444966138180948989783705918998813007293218417626582810140682986185280177355044114795322142079325401785884641077144326626632158493827524660951537357550786073564990755900119676882263599006994199949648089123877995513104437358125003269171257940837830913033889937848659214929731459735993448365647520051281592251652752303212943080571850227560290957123616663690089334198439115905637835166394717432549297171830656780651659953331533245980548359360692936869075225087737826409590464754783698500333965001152947470153438186921959772028216069288975550493502824455063025964711806903472116847491431538935869014196539705780110933229728366543182965610738760465514490754552511778852650150005943843296785646263701407784345625939745899025348338397383597248540639120377132469132109077089080861781881741165971436561374343498134970571782342198885113977932848048121484281890229325999555746562947769418582387150449122443336807293262308159990657984386504923334460962494475592366602083907690023380154964277572503365250254471459925599083904167316635524015027407369325549198616219925819546340373884977393039090874908843226767937024776324462884798196687746855693510937634829058799308860879340738860118821654765943151983338114393316300500609948643387570985655941662040290116114629415827940486096698387552301392427032149659571829673598684671828637371073252606145438844050122274876328831032774964724025914058174276553840144625982163882221485664972451070562530011936008232827319931497878702667679289097272736034590839315880930073795907945897033720906237628536847899610655701723810940982382835961638039938867276836139214001356356732853572054564767253950163370576253850904239942190148018852486653194115370044481218876002508144198920984804030380936044436262960153774548114917774579972802302774662656275314915999300685951322146855518759267852930919938487784683991820824587172537761594992365141227996090140406140585107067375266419569865144535439245269599999142794489324369114366790405327672273428886280904240999777178588313582416914873754757300491872865731950080165028489496486836886681568241820223732648806080346249917728472640065655926039516300298515405702174605216780407935295944548603969839677583064705215662410704958584482875843587039859303767366973707437681961984683803311016142498122250647275475149619118483028567802349151316624312101647395242864579870537318269804240263117125423947696545742168481568836917643204723044484005570601419062995656308054214560674154075862779299222162770490735455082053765872966169203076156285861493131928071823127735807413464359455770105093615801992178486033208293967270970015992298538987009074748973229462426976332055561107168625473456423347891467342440803392217946021147199034419212679275267497003081535656415328892892721871351015928928457915547887807442867208486907127594898600988257492360534987121261280124024397265552733053067106941156010712588523534048324457282227041512162856044365103359914929845138119915043211015341418604112022543330387261278719937062112193051620813164687523884913126260480870937677361863553165081937278636468900543619836447410919021922271489935113874731099967297732258575939284324077920897185116545705793153667591815052370093264907729237165746885743794852850244699576440297026790223019886621164310390684726049356515033415969403995431369682014373280619176770828870317079821161787753201465394434638583440566846913385637646445156582093660396048174133379428112522424683013979324269616518685654299449609076472840347119766612660427572770441172755519646941155765848285105803150827580225573671504064005750897768491400642096072876548697305694244373707746897901249816588201857589465312507128922013138880583967736888593356987074217185702132085059242203204666084871358180817978225479499680367527597329125765747197846077762966546406688204864764648067249192739866056364684586142705382865823347164338941058193139787283013218278879166335789884286119433833356455286369795287406909293418660496192102813386067732151029891493851842278211240484550969085250424046798379307990252917977205464368625504436400651948353904836100713120955805126795380434596911776766182431321913759301807351077326745007347170994215865851997597999721825858498989027691913245954294556423043244668777673685585081925995991112725217317545929258596119037105425790621502771828389740386304285790286000089148700057787020314235384616645145327332486672503762557675093215103796118583630765342501235807582296098602791180138481822340543259176111858202369632721979081528115006777119682467248007790386699744709969364542634386309180093876347084525429689931938601947708675900992988147377767859405743563034960272398250090412041666253048712896423691487310604161148005181203650797460243514414025505481803226414541304747520894067890279596162033578599259026968646847598791207352906763090184501261034647430073885837761002533310677671673537417581582976953149021868531651166330684668751094576412296546839795238240901318849860981083173035111689273596493397218015014114053032634791613097793616479957038064837791780656521108757856415744753479761383199743069086131342244193404990991763234345763551659016099918167689686097388889660841278180150119688199792140697884729256172764049341978632427265061677823371875806846918277496505268514743779900049833241390659339469421023183492574551945070695122050761149841418630831675511157977208065847672164248519814561938399768342617365792960237745046266511094850668075692617559205348771077998302172364151878032734525848316715709248347558368443082113008751386830895145158171360473443251642218074520601754086360195354623856836100009590755622045456261723264792793344763143133110570637729806331181217678932569917722904709791647816110645576716279579431761286819409848134616722541624625850861864595186325492916739295512874335054498573980585173879403267361866268940896650894818125451983333976275675421534906447776119134881083744150790597335283571982247999739180443844500273973165039992034834801060154657147996211090593170634840776145905429317509968945114833774222707701898248028490412491847830535444910260000687064411696785103387723296029790266359493424787742978516900094871566462619467700081659139726076463837270713974393124504187838710794708011458156990726736112304651067333526799822253767543587793811397915921796997033157810677060433299771512082183236074446397188337207791136184057488111578971282828389655602749621533585245042878876832490052954247780988666073726095221262881576725654492736774744058651503709102324615158467001967843161397507229311305695560509189614147923237352561037565703145599384331274166154784748256272395079101421767807477645572181138309987690827034365314286544613185891980714818071810576467767641795896899402622863388141265545521555792250193218307984890551671952559087101184528229938113789807763225149374279156866306848943748511198678857960975623196691353107654020545678896284295842967898260327063603580084396128684983825210672457932995163266851072573217230773989229133998001668718871608250533369842360251654957013402938521024706185382195424057633088762073225003212547940944022589546456022150287592769022744630049633144899565003270609495037750300051333303601051283657856288092738967473443832946982156054399592157082542960270383570186025436451088566119595519447474392343770748303622641518257508007290743357630086542977053824787279853707829719476584418683502919425526190894336688266646882214303978436792531564916804087328630341641538160255371683704339688640157896658516950846743570491269157789149346797540154009106678990534000030982788113155483090070713499406223974965936377485689947299332241943176015742530442758227086160335966296557730824621049276782082508797026066311815157276155640074060345109675781107938338855061453688953332782381285145626599457651331140630511254702848467244431419794111280995588435736566116609936377011290988690541933551954951989386864884331425716287222875402303520082345439153594061302857724119489220756431377680235331081055306112987127607350836105182836869245349332091915662033667853835204364182493347161523149859795154671359784089938204066767340108993317650718342130094722389164336671546572663946297192727166067432908351712256551343544225717380696796434702490367306780750135087744077403366383088750918259063614783135243815473304650813754890413326243859716071573046049546130968627322774046837695155216990548452911602976570502730303278282051291706792401953751022552490288019320311391423363150331989730771478339322121460297899425512096102593488534476435345736023836625271618072780486195073479472292598441466175413389812411837477683736669700318348408524186690546236053095436213566273425155789312854058151701536915705984963578983437049781945046595895678884393491218405903978060986326393404289040299826526401984887041644138089815585497321341211756978849258210216358184717199173875978562169351913845888926681480327589445682341700136083148796412121998686974397407341143043359081583674939546931000626845804480023866859112547150346958319214373303554845373763809642225916387479641452705654795367641882146151503627453165636514872100413808461254360351306061457736652473139181287839467120992578593384850159281307702326681773273567918342472152211498602908101985910600520897969080507413866238702406949285241922740483836810499824375437947900144953385360452102775317186864414706236220912814336627171729022634054660810686582686751944050499702401078780548836595685673789929043160807027992179597170480118225046454427686187073525956172357438458857503662789460657350313941484288620902499299130948728390792431257522260340541737874321270623939691304104267653868709204941914580115393250068804575339788813899346030856828317298404396609454323335889737428981402773316115870606582557187088109112087299720676633056590538302085841441050156430258789668205315930136528523618479564046367973710243837974335457711845032511076016448554340217046124601537597773593195614747111842135531157955090800436854080906626029412997416437519237745123747313731450628170770144241831473099843488519668290565021376276758453042206061355480488704114755638163703509531532971389879984126031234953316578898762415943681788300096710274663094494921165025046841607252005488382707437693975762944011236986056800149261177551106185832553016651067248951849126611177584660911205692183024095060816038785829675866843164217795071520032687031031761765009951788755468254950232508335812491589899530693256568772626379976322691960948878788125033119125142595933118319594157997464349792357374734119396665994449377077556448326176018351854263524652711906847151691466438473705298446695905048298766664788387431388785398499065966588860126535875012368684945203883134792749029681037956419574385852446975428409568464845290388671722759664355878856091853103321110077725775790931022621606442902804585771669453138730435571997498264114022009926628323097878483460513660886250458668024375989535600790724726831706798834760001455080099464598029101668505794947826110028874837564057772103265708976128493899591173670452448520157729848179472932355387854319280816167577360870105612148306473067261884986817655284709625571023547507814692130019760294261406851252690881637915664682047104763293540375954243919751288396922789733983440085795862590289506443361266154715444264433275200100191074812754864290340531317715671973686405167376609345147976521188484508199070841158794116730956551204401686410735179569106297498464940038833875364460114637519086422590801941301872577503723039258021373537161331375512289753678522937716584906245015289222269647273540751483597996957910084834666680614275376711017835626697081272365238532680898431030317016805506763417622665356867467058505786864212869121181291164545065972102118522521786627506184745589758109404448926066727544624273063239748429706244090005050752837463098193226358414881388409759968846839051857131678606207404165512352148034984403601840500074178790335438168395941710998016399224943502276488339661838390612301396469047137720224891469049683694090797161342073447981043683580523583149820884824496591322873855877167830387890121893411980630177819165048627261698823187802225669243306276441662194827945061790994606229633633103724429920737092595917489877203041773396006886653935338088182606094851905406564550266383934723447273458073720288667763974955580710596332110937679600784598999100135627092640117121375954788932771718051536480242036373918069225337902165560222313758881270811865666340484090766539677729091615627957166176373429392859110848227250661383435790959815154778069433321759196068805671045089503014163314725296317850266426597096500011563028101950563719214492858689046858158813397087255536445214453610054852063128851771129190800146100947316348107064127173454563003092190368995191361905060793229207310305545291102952636977147433751547668344888620845801237842598429334555455771709931801128351898124924161847599707513910459167941558140141673126655561116002275653539691702494871612046464358901545609933287599816340776897421572190461183109096692798977207662468249910526536226586236464796829281818883387737249996157419267841178403985938900719216013876759942151452701447539368090092415750732459043055231437171122351180439376367592488850950948305111178608512957055502255334589710570016091641782235348530805577997356891037962309966759626341738008788260480077151359586416574182037364615944057233887835261404341790178419078261662455495615118252933639253553773111368526712856898746463628610073427925606848868988197059288712503555125079434353466059201480775640743817150036007696957285922901513733530443008042389369692630914293888390306646366974587236114001493460697788601655831038372210854148895729796935318537002370762642228299310003305492041319598739137806516282884039105406850499927838646216869804814725355683296701320707875895594833739065157588896596730251946015605235672389703078191262486341882825710652583248373630031180936914047132967644925367948433933190020038504723010977897742610789213046733806836076707260809895111746114064408962024928971104936258291870570690841841305601542548671329155979453778431306134998040723506818418963379005777279548124304355907055858141140919734380466848348420024006960089367267419075634359880843388293047723727561151549216140204918003408327348126222516934458484106943218991770530327934225558102169599248934516266614455249790051410851517540137662222128136918941185576385448025379614479462141770799331734126565194196051880273332330736255200505156319989153424696738782381216553213045146521955778527575836964918718708531154005866906540453087635746847748645136476739903039477996136375577285032579947138820888748885595059841568431257846935187974762164936790743346786927562499617540119942575395189044148785141612954978431542245645719749221956455590179371362948998986321315408992272852572706386242518313821885026571103771120718542241786751431279320499207014653843439780040470808403615423012625326754607932188660830303989659398797705328338432586311191840092401253956483855118941491292274084340447420140111489036243572912770919690121859036182979781971755235396869212886412859882655400381640562390783269203099258597879071730791837202493562154983019382215736767361881466739456873548279540373713442833971153041469471805884976618677324767057404521330126723459145421701636909357766767199433821458888024972903726052618679874535431977721073888523318284284927834892997773083488314699667938603197909197588192815301101021972768549927564971595025647419202921068289331665725609364267582275299410734518989951304333197343851827256317708913841685298540241570647270923309809473627658219501200173874645396882087168963323591341716559578433858697075273108826810441245407934327359980982537490268321558911751931557612763539797356183068705760505940892143938120716391663977599529736447751845614431800278315439488757715519453847113167660710853180133312686249386825615219005217216647030883716843567057381828100138913578842092475994795164333054275424304039210277114226100979413070802784575548486207414900512728824035110465321232612161388788109238125972422362287571898662350935393206078673009943986015544346278910962273579028246406825405367063675170301239135742546340685099597034322656201904374774997500400280431207985887564393154935086599688227061642183645670261067033325509175807982987618637631890131909096108862740162204074518032938148056226934867708694165558077565422963121321200243296276057407940330875614780162513768647280935056407307304127396637797502841465541681723364846120118607923669749795496263109405663942894157925656964862521550174923894715971232044445648885065436625734752838914159692665192471503862077196096159733499204310860993625718846886218986297401307615444687666598826267089776385191173231660338676796441752907369104044058345639424581739143758035708827625483360260248869268855103098557244950408351446568784822410374988234826240311190289967966447449672936103646708699390467232492553099893827624570032095460564628006584144732855772167910968358387819824091505060874830542682236991208595477627164938964719838889754550767029739201591108136254646322420462960605004220160792138927852249098879858333276974513969983075104612549591695933555938308041495099674926713136970629028343557907874057630715634550471289612513541080982610201151220922428410965743695323073439651496731373437559134762317823857012552872978618113811781640121435424237506631251296323858052415379440043651029994486547939764759692176690635491365017340301753905295077213830950794316923519106649016135325851591332452554725654626952671558401149684102221538556337233251668334809421554596759850007635101436851891698141361092846067127028491976324612020286573891272329112034183859191657061678609596240912224008171842103796978472101404046155150414635516730366712644132252098032869020410140688375868270034651001388592554191982221336874660128642169891815766742147884429043831868324538021925831802461661456439905123728762230473841325472390842835919626157579898535313071538284718585940136574049466018531826730311751287202543087995116091880903667103047207756107213165190807003526502503363491529108032185035842153710432083257699924287502822824099775585386830708887487736433330808362122849979677279438034919682979548109111345006817948650469159889094441539116193750262784540687785916970687898997530179772552430594994057386940190622028931088978022828897437279071047032419637830623943780191905661055294536150046899285080463790489467903788568497888136508906736537458171860995466687726194168577665242982945736351435904524020788585954913564454764678630064848261996870618779503950157345967664524158038628414343228904833706371239283425621194430576984054923041398243359135120642644663687175463799065243948588083337111665938615523866019823841113157465957713608112301111137034797362088190764780418309487750908560829455241493953974561445182794661668781373528013399017812357082144139768552687692453354802897174129291200396424825538393528834979853341971995897481499168063516032612905351514906112213617825844714500370235905061993710176311194026334953423257202301795236323745179517679156114861848605560845218751267683109647614941591573191990785713991595201232561950548161739140083505292859068923546710374890399024231364333448446048698077178545218946648709666538776353132685055592459640280122982458594215049785213944688621488280917222886420313420157215863990120290589907176515263183109603440300556953119431062644455814984678928254374608828219548178542683236238458339910369314951428680490942793090663988847980013576177907942439090624996956950604807152224102169365385159554738832122884849933302785466415536199392897129045858163871890828909705179705106931438816298524111497014066988035882878397745492311051445134631516672060062799310270964499979434506719842822452097418451689191168253841175786547516167834367962111060990564650807597974832792204043059699476878763404793935758238534944274217421728085091269367289790573126668105749931442919412690585198086605439016410880493351897311044447777961175769939843601478697122236136758844187075681283362276303071304437011742960375852842495589996380787642378414961467749366305455001701837816124554550684104559997038282670188026013293750687975701196382723520994006577182604037529235082451166242153954906736648025983628076429246105753746923084538650124413616356892173067626530975964786466084226475374634521844905483530562126744459146758177893397430120319947893414262015555857178439021796971305395846655211602336316420575593149351868933776559011461977911415342798999374931716809595575832105544407425514882543604325191682330129613454747874581295324484431962007596048348922018970799074776830228308161437628111471336767190974576760853836535487163684249285029104144853944188779813506810958882763506374554965852714399162089549140458721645582932823367364462402695412626332903358527757231767930522231190750709612009617598343282580379791618288957315906566064206869299423090640589257747536182544827179889930541261894204573713105373928814382856838787422057859536839907717484312925239711117132021749182341050879101169534029578739730470562908588858010499905339893326439278701241887653433380278263197421887508450206415940038828782316371207273934219091158009701482487489757706456147650508042839826952290890025353841584447196594992137045892822966227972640358599469942897366633974784221411711880321830244158327747794787430370792388365457117086096763166163483564088634623311485285698066902176833665881812923637145917863127172804914507367239262348024997550462516478867740465717860570868733065166027620988649458760376535207979063190936516440495187158014677761480012302613320035070741564017069926262061838784589045316823815243579836480006578648674887572377880801516327650724813494520309308875480554716064751649235959860459934358008024274814926193778805036831351787773983179420767616082789130693307076834258260414201630734798157298055549918448771120285901070107281039950934755963660253814269428371964258653678197159457849484931753055368972362651683464486566937152553648558243144594747068395386692662311912559135920501975895535759260548925029396511650671851487455543899286930749689621141021890139657366956545556239490397379869747854393599567009166098084754638490509938411973165989205371809748870003914010229874087867497376827591863822229320435733403395101989789291315637325690580704363628846269748833523524475071744124839132314405509949937125643967827121390356948338122100184217851398718322444431061111032613080672690288705935578952905518913310469991287923644186553423642198707994179970492076662299338467569038418289060667844475113638609961293242547207826701472168157683156822792982887656357901081942903856868257609797189710746287508944956599984082408094134362379115466381313710732341463179957768701597668343549698623479853603831708140370288987333721756606199162071406064567663374815582837319564826415566650481056863695621555314963667927323743454102138207213660459861398473297156664622808168269495517691156571963924723087966666137156363772169494311389998872029552835269361930145975171468114284337286000093600919604832826908460051754014974735574593205744052213101711327286959606113478958573403798868384003835802216747668411130597037525180986080414790882032569101242942403691101787788320567818288420798102673101350005455854233941160963815483702387560110234533120162269939709321920468055059393596156217362803488552996136607204250188804672711437618755293436925537573480324954869298949925673186388392782339505241781214502095457625137181545955856253655611173440401046384781384804428842079241618368302636050939672782761353603817800727600688046539686847338542709721611137531410838327875332489041060863366067647512907991326371116621787502119854286294541347752829841112795563175407521608075396586040648084732983178242816475751141100399605611256134566960373365498461122857667632344472418015335820044691645578362810609736397803831047506607963903041312601467180047582365635689057964165082492595888415137091947522324386700347646440624713295916995562394235317681788296485570570895542394142970230465073834161959100658697835140477622738201115121998865487926595477194174196348407711789230375584922654804582761924577359008593368318639480473907345416261190501064564929220897599169534811006079028190790422486426042756617728414403439909503701396482451786610448455604925218291690387220631077795819983317878850698812882792164666621974103136823915874560269407193743983832516775566338357225153223344269309222871452429541689926340651904829565446477928962741686166767996638119979899406954582880102700201115214843053094720396158118597035773603556213007769150591428944453914524273460323170000769682234401113735254372749386390603325729538646767925852004870236391950921890834364086831854372641484162027358607648666722641397064832660791064918250473876302229869210637809902516281999847432204306582428825699953704988568675662591890867116057156790853149428785758931626554678949874487331952535106286906328774348529400084782515855709502514773220584392530793289105559145325153109878595359905475533805056727983136091768846382158259130740739888894384672461779939793776825131791552630066392287733769705694201297532311549756626080450724375154264416081792967716511018764465847838616011203912379174334602997951995462076028504389725575532966376733934394619908835213543439920503198537742978746013091066848147430132691192101761812924704986492651221208173517478510017957174287298222639321273844140910216829282497256389215338953709696357980897679718907394561629096354362460167520786174253381268316746962391686636576362096343263883512301309574590293971602685886788871770376067434392775463008002497470654643228140302798851189674166862215402358008882839326338145132827000420623147522945591122627119794795877685833276865197507687643896862385190020767317766236067332096366799875249050752891878369905125792334882820786943607330986163743870746659696078867745968247921418121289605756920053760289634273028854368832884511935265321344303935743698180440611769880197419128768870206625787860768355244785531350781520546828088156666214406390086191257387489055265908329222010069341285151398156867815236046023654435683250030546690109106738803062090901324828701391377139191650023648373515828632317247327717793150611886740741694617745178153275104523949519856951758713165840625292995511243069542257619498085043726331600902870692372880516013879898433913641241607235322926057876270349912976024699956751010364625017048590787072594645681831085134092479175858656529104992296758808724983145032648010018678431715242940773257352212192753839435009070321461217555101971217454319625268588737737406667314501910541080930574162455985862510780736245155446009074953121787017624736717390975550465931332360707146047575734364092713294070478425122232754380756762077361782402708752417352792019963879171568161472166754516533217418396893201173436643614266709292684204706486908020007815059131885379187464133568918273148083671226861773175274865893370334582026699270798810498283271634362042276822227353699905400776279546841727684918833496234845333654645676047055814294549159876396180406061512125908578428059054343900373267911879277786259924085463556536998458113157127290486209602225275470929045191367751016029442699534465655823907876557488909316819467838763178410563145929774047484212601187375058885491753422506843133147173317867077789599049295781857716988375989165968470647623737254932127482136626731644116866104667087999257848494340751895875002973004959357531817197430198667552244884457733525697648869727833998995947077971454795609459728356099812011318900213064119903562436454656068878090932289941371438385801222430722537744680363834607108385222126820188758136706475434383066264126776854089677528874531448484334867056482334264085137753722489048036014184893266951773483372748797518732606624592568238017550470896222208977643895363346343734911297695121772681148281314996962925215788125746849187705409719666549008471272479857869761416742897338572373374981691211556072095348457505810684952096386097990670445004410926490404799327686900474565395295811574978842455746038099770141437333612575494351679936990537341484361312904944371631151756420264261786482760557188239601517629154067783931498114495517094013165383440755767451274413557744471834546227159648350445446133530478970102059807619570160299647698371291595000917677402189341937107103779374492702129695511063965269091631800045853838709325417596782247860997950642336816262539176107268193041786515854773406588907448873640750043168203272621432529561576070322786346542171841681506516389630724643724128916308744549846697172164355978749163434740204282249751179128800278394499617358076175562424951594096586321344504380338165472329258361434473863945054050670709102891460174251180084246576221623161612194767772678194874739978727007421887506052369379351471223098550449243170503347452478601613273101680423235584864603826760401530219644320419685036713123165002233342973746869228596990721028191905192723689264443990835231673850487183097748021677298342274361453381838003218909795952233514378507959224695939912361251512899988547674759826093345449642746948519815449902623392819096882327192171179296420392967801399741589985484542297783604506431758777605392066559673782325693607172504749019990004379502268640620523082224277666423456812316412604344468468025848915866819207330822737678441056351011144911864849724600424088036621985552791156182120861768900072742446225046543596748720371263874965949107572380944610542637778569932037038554384716395867624950673907015471758438444482102214543555384306046375931409191017989181897830123420888776108304763121878915725285063849738338451120500780980857849097440176425074867071630284825944712386959201108087935125396933010033341438951484092014106709637466125281080451808174767754112571680274936823801042252996557006564890295028790765661286754967281387473002343951794673328335783738149615894607881872058788193683734834411138829821859296348565535730677591409839552895487543550285764723865171136273514892649906571992828954409916472139565385463616792152595510251923015448869593807583383297766789172447988139864516562789708890540658027152915681343687991772413264707354810742973137894518071058129494174593412725160691312113791712964350433318505324402039260939471514090477422950788172009139615382388302176297739575934333345070509480352168305979170915897189302047008386329855226646519678046225807215229193422047850805850385748198150715037101830116004027796042514329414867585465453048040629713621752791367328766862913936568268454166388670670212685305695741886011659968971019682212474100940813055102121297253193493463357276671885443905189618095550378541880491387601468107700874425197633700586394491452211254951207709222583111755483780549505455944952866378548464798015082535068040235562796915262157788507086762262056087796231175450892347859760051637428889922859571207763266241577989334710978198006053453794497237537836011643189309802600707467029018540784886387565144582498641749633105958030457364357006938730058371830676650155458609261771646643149849716837461127043615877447519513988991178202925156088867864800946979232152916205814037557403039122098296973064862217797884824341840412362867255003560987557449287518759355328818312357281734446138473924768669993418856532459226932154735303482053524853143245236706461647538498332994159566179994572821220496886452118670449142874738306098918283564727484464962238349234078778629065542741531635487910540367721274596586886141066118396439469549015907721883071386874789500109628908006094395271510820905692463595670929774125410285913533913791698195347961106498873531409595733995589141059209609041326939658334180212178064808418773243875404409704194315469517263984061693596240576723319960886363518123441345299699488405576098000953526752321712118838014659147205349270396600103068839636469356085555698441621805105173594462379726827770833378546975623806541222076092810209497883089133834472289569371178717345191222439864567728994424069323640267351050883906427591940731749703910907916055138972441191151950592100192166906994728781921643321880796999164968704677317881053652410023556620529143349685568037913990981439071162055895122057751067965646194333353153981105774645762223943593509724584723402070017003889488436133997136772201073779165843617525317002107167727938177325784324215391247425875892192028314132572232870131414547362977599137059932435752192690613404571070684827840280154783324672192209040216659420755946417409022132541311007665144401336612503221622034525367596768412705565310441340672313961397408997561086930085805459980177787846143419547618109783699520307229674412447091757384901433552609683991412011012164763539192540939795660556835123968261037582485813751463515595770793898987695529724639045942354528968407577346965321565509124265835208217290698520428270384483634037213749644450318543124584844091906369323262452560587489778339342736194553816198868543642030190790924805399971814362019025514981266636171989201952534103389925188342304544035660735723168594001852770529706404070870954147436624689270652238489868212848052214531883219753884736313743665482157201118907091691830135480502979883293767012600025456001536902297740322831835557718417448711881857590936567314204233288710311418075441112073432673616139867798302975332208521740399063042553791615239104428944829280954957827566629431455623183860126131404727465752349535337681560547702743962669168395092390525724396761791544527095317365621129268191250429642562543300695941225446515902705412968789327071499763455045896939980487665444604140765677914069413919100126211746379214023904091212519679708164369779052061838771386419123062857512422820469404540376000198351977437698728312388808924330096655205762902447359614704957264471047466420411681253817328951318072659937671662561200506616746949532049952424523302230977016046682800776929729938301703417103731073345688102510613907929170130162987428631389656350261774235342967658890732403611419973473969832910258726344763913502933588319129946300806710645660377256278551980062610478116991416070144005623563579848188527783074783455768882613664647893143972710410690191822680506568869062116427447186485979451337246209276288792186603936649145296404637455283119068312862231456577724888961673875085620944462210171140820988278154112950196687120284976900037406936087835326062763382378897129525340688350199236611895173381123287825435651639770040687745181938450631358723871614541324604194204665192303601233029197837269141968453311415851798414777996857547549893243333589695692793152375641897677058617696366792794561590287211056438994143481472302357496311547390642911270727638816304784721873028696566706451723973219667119583732243460640731302906634655660010765671100066940583243586651116545268948735639157771820627505735453085672979653141255399174114211512061157366543670198121231266225137460240107772531764134765935520428467542470307446048608734875520290521216781169493142785763535669057324110016399763290011456549487733784578068775337736212896515918347042733060363850096693752420485703156740531900210373812500289566231362054787631679837902477999629258885175595249475443333339625737249148375345954291318904376118987222126548872654326723114313006796630059362054821690919045987222175084990616200152962435735731860145103029659277967869170837594914728100139012341357240316199143825682714917005320010878577238528839646628526999011045142514927552895810310320471996284712086595814815092395266664709555224249339714592457725399381725758230424241550235246310877236561453158602738695382381556177560073008515359434282244188902084080254955031064443516905788229430902228079095767616505288278568277548390533080096465107581443036959125881797696970849668532056638367970365893986069183023434030080972804299942094248565024698481694428693714301208677744605680725939554383911096897422997903795846866314522758149167715089614827205218494676061106657589246259234372668726114215957516907536686291387990882252122682471306428828291373166958863774621475312918571756629072241156002544468422863685492666058835716391442579915522610394441669542270377685919602586402952437073112432010377098980756821074221143177248567415979433846630362056549956036788507770628686258206108970559378189603970263744224857816627593246016310912069970518900857372712537759371145070705092075132314548617177448602597080898839418515737560368457721659722099375264923572608399131839524799032508383293665042965417694079997503453000364939831416384865774974056121035818154463014722406653442887475718581364319813628386526359601419610701612567151177975703591501597931267833715022048936180811865635333642404686748122523038782011192639010465351327486653588070176900346996366401873624965077676343513314646012107969266627564121203175694631693040334299337270484619031444650496486293113665444564790442895899701450455170991989069106950169339409038733862049074039073571852087890040346908917472586239928476045889967704225194781632089585213640076324231816027461069303677531122275023530703603425224663811147204389712383298971461713053892815981804571394850138961316436281878560476747399927095806212558752210010112254512398179932084191307109040797674731020706276683825584281086906697423553901599896261746124895998449699539287442428114392970077065089934489112380890475273326180971099136232534059555872688936174136347949958015134929968221546454236399665893411118592192280065690017036012955229659129432929269716494486456863398741267115287506910487008629342329689608328272817974054879746798467103790632869360839946350902966010251406159658874484303763125941466032436448015367292045437785530933686684213592311277572830956573406620700564625350696711652161248327487160847300972653035702392444615065582321338060162374551425863977520371860517079701138969005872409750784578240552694326998520717916703061595347900929222319005384958769220992875418092408795489021611572208558162831034224275139583508995743609753551683566623680457127075690574173205532964417597346270979516746547078092376659041158922848460295307172757716567801801327649366443116860449147909571224266611554422439740466461254280839917459138514037630978343644668544255124232080981081555832402583527118783857874616178761953937942450949378826298259110876848714477568016092930872712268732957514672819038376737427060242712053503904048096543904446131716420518990769603514701960040594177497607115061207424176729916185149683038577480286651732137925257653111379907423225928228518100659819532911147682109008740362532054249534004773513408606364213901315113023321116152737389372417431914691749592089576238458097610301741837069065497298233897159696270115650668438897139243709276167006366531901449910806841332587498112785705143456968412278188153818063557960123611894005723033777652234407751208850330006051477966829179579729199931367885659796349823482324400465154575720767179547107372847251611920348474712591919563807034022818305138345532214130649124394280142947739514549756025115752409293182558430733024809845866686084026100050085719117685438255669981032600326474877306454732073202908996020677217540831017818704223533686029954553073321858342093378040853871143880003257589513400612102399008449761441416724946399642401316918650971049826107096066988304811955030509149701576182229023842916411389176679968257414718756397327332216350164886710093041925376262692112436264757512476542092041583574858180121693637903828971601911498559176803695344430063382959932259496325494657384883014191651994511947164225706211302382619353704109821137415044992457872686150068125834574986082050763378861468450913150215258382728286658712423515160424341019104123114233966840105864796719488835460867598141891031167242448428561954418154234951341539268137939165644006288930764793203881622301587127890964091979842185921314788208466099993339903344017787958461176573553372925786474915497389757853599452382490733578062691331012097110072112993114339259758788383242112997674727549482644285071545444646110365386085197283952710963576120779938366823620677665637825241891953227524399824055670392159882405280221238993146662655746367912127874255380519886793850727518383714793197907316329798072379376331198156315964354239113936601153777807266691986148989102194331846844016604641815119373616281602622213609969395499742944844967194242140610571258215490712938381425626391524869000793829901990959126483109365740067717367024322929770998185007632142811352317183641720017530232614397934997179859629794077855195850573092025934356707687298069314502113754092499867203294882049155362981807698495861109467816171846020634445397860986549142266418513258942334661960913022524244996735025058682814281081128538335172848223885962526954589125755006113642654226821833312288849627118371947891734919578947066342041158796640011755257863738588054300537817389112534205800476711803599838778064611341473812055132969871662326011888968068598941885077157615286189713369713278096107449278409444957292332130834602291025874736241076597798468948951350599526989408943660668455223426951995269569278756213574787724117552505197009213234074271741223906393496116226135972365395327401263731433694237298824904588487273700796559944655404015109776885095823551482540751097507946650220312173901412732553847395282298174453803786164053993848665910399906194761504057246541211403688749835328074971709926153869211482183869597447639683697822482229766635089760114590551322271886952364015629582430305960555907716508991763727321951644706603550530407768973681645978297906134942778433771701292711211238509952198354168915211834146790226960083726106810712476722323287244412053399316786991569407624711627594397953366558865962351723985211469683585277671226542955243528236529270880194262458218639205459465718352344659357907831828328709428425359855177413519054481615141779914067271923765702565701901935248186875313958070505387266169032774476701406991200255681054617557316000019410618079945295907002281642824429557434941544916930631877055772018545958739056888994399318485086097969494608383000742517587495573383113847810858875520289386378738444590990927047966877181100146282811349845146668099937651981569280183171880651075534707975536680858554971441120779140970935659695427328351057843312319542361963554743854484455738666520054162289462679239044785068837969402113545375728377613246768665407398698401631443871154215304205903105503712212416310702687813466705970316378920217754469617115307654387398879648028819588704954562574688110662171993138946672739047878574721559120898603249035941718945766630804552178068138194137669370028918176304366574339061652381201634949071721139527673389650816768976380648352211336064058183118513970342463560398503114262744869419468737504667736318311370765335083693981234693266691972213411732745935940768941611477454649057195541736568938436996231119442420606266364276273183876957412645269462760844728500035108846771882781189566065772418214851191743605154967825447128358940831535095090115337123591848679537173436687481672221469195686178614978217076660674889078722805234127573411919063655956729634983360470887151427520260680637031561460373978315160384882888712001563456689343147143269072388233289379009756485104622756891899357131443549451192805176046362478994299020562697877892024777721153884581483016527393067663607452623376972278363509749776383179062912283094149411544307951953163742569716512424283949286242643465549500811441510421256111071567229451024329912442770028512059115713155680838704734891670980547358836473111518589780838029435051519793561656309897527845505687937941219204032459009894160032112868983402174127814079112842086619683285959579336345143999953295379265885710775679429442861913383456408439219738652569739773191347722482175805553672594590221961770916782897899017448534832328510946542820998086420908159309719826564200470619238814609161696669989729544369269680676762222368303888884221219779987845931141498171240544831415123163647498811537713064432141032967477697360438882120554513099485818056978135074381428604506092200932475746598204271627475400296372150008518673262926470793044633243652219331375161160674588499244757553216430500643469611262804006825536305385410677033301242988349384316240998932955056616602845451816463095419429442018222998051564074984496605602256149519358696059273367934484224215527734160953026452633836930387554874987685151551179946507899814475783120828351632877086960655431020820822320240727639888681989878976562538424046631016405752767751812213218113153464788375715898778647841046073555311080649057689800816753031289120296190992342179923079282565465903727210794219341387967963203295734741390617188427695418211745454180190219732967717781431672474658753479459949029245437478192015278750068194976956275685646862478975244275609546701557199671743268751875101387142828185893750405371249516625037790882297938610188877219845063009938651652644593417745508334262102653100577948680127317287044614282411378938144138708703564121070293428683243562914815393192841045211847906986368850393962990316582580536071605261832807818726798256330562907812590262993149325059459961105860444822303243442543411285857819450157300526307045749793863616284995173639518804063870583579633293350462039819735342181586767053845191740157246592894319712165471253071929912062264667778105925440513004622029609815829397510399916863788724323733048928474482739005473946902243704303248749847799643014300688144839202954769144598066913219011283196913706666262319942059236948737545649835977445635616735004656616749999019366047687759040127505751122750826475517331589519878987142985299540659496575281809797586000226462820279962006300956453604193022790265839380950608071680841768959123042563157743421435708261446582328399415051683040488140338368994205929679952212657377729049938792576977642027479889326140852642480606811085484184454343495234887979851623234799936898961079616827894772623141752246848531851920423165524642009584029848872340096716921092324346247484036349418994286508184738204625881731375339728949061772898171129178398440362306888921944008159638179567390638985373386967772791983713425626124421691436901262803065014365327233970133180941934796410224729070951096573146008354320838518534938346137386072239525549075052653112370733518258324033893060137853398068760252430473046479156315006508688485540463853876848829913977936966820633296627178166090944209355795642845698890524379018156735800215369733462467217834282432812973991560850077433471417878024479403772249635016060682672263755971710405598173339545335507720758598154418676002948457011155868419283613391378558322794608357654690166099040810065895303128485183801825523121289212432717576338335886181186598279787963781372171461952892529577299644467787658515108539445766477490391037487774046912498248422236968976172045046584678436154778655620592132588241774529902523739561781902406802999052041379980359040396020483211082704283550756416031969380933469153665703426418245212501110731421419113757809359997167716805328098827228839535260062673997556212874001975559573611089692566454875482933586414947104526384196629415099186721374329353746869283521494365866665398145646041466471195127429661597618341777390210194819709711239617216665805801764309498428211515034136059276549117655606804401050314825976870777762025839183220718469840783792933331023671634280081367985056439019441718934113479750552691916004649171649978123490424018431176051859323803066341526311345723071614933680676571511548778175308478176089680421124946718467083382803739831228193086932436186377883943373276575997020632431510018129645181621617409241422047555544581642207057326068701480127479846095060196033822871566328867036176002281500218431490254125321289578690962233428910285853386566387357553659538846111387276629406227046796811176458318787569504512515443114761739638625765871180573424841297132701542330313843612797845486314241508211773557497130054953640479228192956781768549202770203116456073607292321576432923832686233253885089344565450338908755519403330231585121824691147608257974766842095341095134553820227946146031872556193183429279790989938782707121332267583501404877759202101650372169050422352831385638168346832714355207930177889837658960808750247052823768595056221652059826210651979789506694043742953842548713742872334609724193196835374869290960674369824633526393775574053072337902418025192126654853559779116866827998232939872675342313669421559693751689882965969475456011764889463191746119970792159317724242600006160600640139335034752142816792227761498871294141575114428134198638673259552860010365347159227249531832165508050971052784178316641370562030767066108132711080064988827256483340975238262211008597040157552091343673218647720873072216419457219873908058669363258811711879859527634076408916459835960444076072428366711646852350010378475220883652714458953453130244008717152607719704854897843597968491774572668555318386223062944923994792182175635823664337134944207000402192461240899320993803721199638542910073421841224831294888745321395794837788420778058046772367864220811836927586670836423418218660061944802168495961129066106245730966818163610877395441462253910989065116176867554578350546492438867453225783557821916889222952762692559581001365501936368894268315710341095680499098815968076817517994483220253194444569524729264238133748567591042429280162496196364775459544981971388740700839504624520383266968673204332576550782442008630246278918785897401384405706172730752731262866792147533853871435054810721570030815013304320977522125098839104344856937490511148122681872208490369553836846820337478609909755401663782776991478319889061427670014127626451003352651370739482506552169730916422692125251029224655346883129166093636599042637021491521894303449597704907908850400884092699404720214863156052831884960644822109436178345899560506047156684866320761089637995219257006822951355963230839448227553815291708808606861808318631020524795581846365504438957520848609458379672779544792645141423645086797986579244110341898101447629723522511205614548570924365209727608922751236821948415226186060949019968573266076956916746984573968506491516958697346825948842899257752551657586270178205415998219933882062553366607868343746930133839887440498782565116873181133042278807600876892179582078712448023383343818545510338817868058790852996731590821375913124561811971242735623943089519245490799853135168947636504708317016078134776422332572556519522421816384788901913497943633446567580277617510387259615668766900383622531879579888467893212601436396424033569193486220478415313450488246773515647052107823544649211652128480615764160862961852240565884527655000601295015966424175626312522328550919868147935016524754938986639904111397628078225842550479882425511399535867597886946886527183963197140685168670414751864797705901493739263941161527958220540188387416453438465657220591214171379411479593515767600407577715945018939136881118598475750977202596048003295270338984916772929642316583509000865531035986350388953703064916452398999450836228961815851805490913065269465251955120213375123547043544099663002435430549115035413268698399065520483758283590593160073123162090417197925418659671326396732112789881077503361811607399782577754469867275399169731701425269277979936847122587253272268501992632389732734696037769398314892077254833927397350459968870820051755446043692401739474716553282741664697039996204011297244217838883986012778397555841127276618204735379592363655546370019412007707548781614884391181181030307754195726539140195237846211694939855018487489889665997023826315485675346186731362629847230515149136684640995029885042297742240544054165152385858872698429704438038790015164842540557207415325401290292579721466504557779284710857242478408992444932808486540761212577594300442731510271215875531750097841801797227259452619238136780932311116135221895712401818740207662801853883613824647484281510793961178334542398412799695503882962549447122794172431724828343982406557558263223591311663970949166041338751690350990233275938426603610806100660370732460446108075615810487096737230469441543968273204973176322081346750686117031334817465630278184222839658138383848054145401959704528480442245591643091231149034177481050899300383250133886186725904645932654987215939040872843282195668626916310894759727902443765009656906808731504938722159880025842854540793324032115146358522061239609983495249861671532478244228295137791305849436791897199809414339776118701092687787216253319824056239136805459291228155429498240864325500015032160667121804141578623389413852686524671251811421060184625821281490777448131466374470876637182905889825649779175997787336893666065012360698656546188078671451010361575209526676139031324035922382619618550923360601856960994256432672474038650623333016674422924417797733031691340199014383210015682482110357684296941151672085466555337464732603367473319840358424525310204689635186148814260024106993760374735814023476704700275915118099383906850660782015115158907315842333365774804962834225979447331991572763042950111278673311462340016071851160975940467532260751210456360169200905058243137363887975169012590175215708320324712472959137150323397999796854067859390294706024444473919030682963103794525934532071554390647801615070802124022196337243623696728058850293310789634739106456369809377360806371282614767449001175070397796823899057278542980565441329272753787365022565906044631340487290696559237026554715805953620640210577349985226840319841527536378128084914831294496257149522265177459236617937296086609512927681383588936876922721156179556765974565715460805192865688838995863891809356461747717405431174463528038593166275792002183536038258111892559506080317256743138370290013825584568486833575846385067261653725631493887687797436748462082367732344132013850613192311749216860159624440449786929770825722541484988453022944894056017624465983686236760912982042778631842329263543276329120878066042103357665297096147303927539390104473224336733184306544976899600448932401942022488925887624575128854334060849900771192717115901214094532654938219974533419397423247777885498487200774361047034874859358891475831133905416684646919372248834297530160675755944872483767757651069890867563650632527630141453385148983438334150471553798794534338660477120995017682708240749919624131109342484590665313715542943006518272563405289319029686100418054989380888597404843768288713153422826054277033021020088879599655039552347401013195058073756651247367894007275038969738942819416730701586871623203915326823562097375089208432480682199180642038067345856922011158207501481677065744981166832441352130401156014794193872859645216145014257941296705206532624766040272370319785820337896716459685356771084595325234160786208925747703403486409883869697245345035928427625393403098953600891284346242277063159078935558208623475103075994349013592069670494930397530647720596131330805540411296601743668983595313326456385530214320687316107261387279869512450982344756852779493901047470485783405647695316193864191558766956440769725480928606417831339068976659484381610986730413440235255260107800878198158120432205478539216036184568357669516511057848042246628652559786933629747376487488282118291509112456751097867135696853333116832815799340327893583231352881220016071629164422462157352667923458050560056129327381995775372954553577043831724028231432841831439861673556308289138495116374090361381803931270569101039732217358127504575729637976477858182542367602035518256939046828245402538472733618471862611962173049952423948304565384380350791072892438340684932341176092641704604007041428247126169505105374967888219523637292123817604881274563799004255743527511944947385690401385433612385736967866994036345184740010357978649278959528476798849768682120855588370665324292230448303986936557416585793697631135433098197794753336032517690374983576792447920936380047239436552422926043018275824043799043083737990014285750220156630895810190325618646582758576175668241245936847232216399116903818976137911156762291012787164608074159452581638293386182761894469176829589337014104310686593631441685691575185316995579047013909971017373687076791219402477242463320470938740951733958784551233057980336516781131434555317909406439996078356169426097757066408183913919429549980538055787418004858876960304823288434669480828363529087611157463327608896681898341807938622328304578847819206261270993422471588749541429979974063203164839675988495753688222178212186811809635707009240859639136341988185066390311714986642243113762811128974410265668215029241153821619785690952557545109003309993800275739904000727521365498725375611819774288016871215665535735876082698018365251459449864933280067105625909704126243387390610852625930961640511003152805242042431677652987226287841826081830186278195645005888983743665180190266583260319923423259241979311624382040541918389870297401149830456837854003170215215908701211883129286808550539302821297250948385919428304805453554562053716682952179324284605068499541097404697854351844383478684991231562235706570844059013625021853535462016703148828425019588804915524624460554243848246350677575043507428976885754610270038790291673318534675786918765327236411109617550675042429731100247958146950038039560086147347871866153426580661539093478356539846395038790616813202328931008912571557308977285262109364822139875392744603838817483267260424852361303828049385117343608932714981227827107464436856183869774396452637740553552678260334225481137819414838241132490751292122314565697451249029237796080393240143448358175848980204381960308218733950972239576541760973728423898938119615738537089022010051878464813172251730334631595995850466729942889322335918087420721274827852234162448616119819647558835605432415995176412573038634330656544501683261494486391861414485543851124340765650218191492049574567448997739688173189337325919101736869148433080635657182684432349361621123057837505036047643043952661376114691998602601998567375533235474407710472611237389255647135597268532361697106678589372876917078320882419935644125805177297131466726179589979022588854945120772344953482296272386281228827978773391747909671380383431530934364092859376476997257204359526481246090028480347148371894416806899818740867541958118230872804225316910647326582552258964140505820587341198576041221265710591760491283414730124928127318988636600375389162657054956722869189001474640259751282389066258107356361211523779426891579937738481954646598619960636535082172435680477716502808259559804020558333630906599621592596236611599364756183272159661336784217947014890338542662982560790343067355175986966247582545784338116585060545403863977248699694412732404977395210273647946359273161625842185282425777793743006099288251268245542068947756740781303016908887881028594132670761478038516978218621295119692293006540850053297426207990949779063932151469462891475281575996639078803519576222334063240562932529243155872346251664023338888452695349996967637401752074517323845160706611927135254137271077060176972614612132167423190764200073119018493903900048586325471328294802421101738921712260614357899719670982768654205403935358675070340772482945786595393936446074528258225571941639312127102295306759304081530050981326801518037428944695057757923852574084734003624500019643646099166403852561640955162071251000254522821370483959577943015620199869527259074971011395884710361166097150067876515752830508691254363984493582050971279622782094467695008971945529748776551634213952086017488163816772715421247015833987077818089096307956496394018225529068301760130598246491521707109741167805170507210724003586890786334630606300995272215339573395470739673466445282415409359073014632585047608206827870226664229887978336687855818420902365172930337069058034262476649995807772708942563672538920131594276242562210123612777839502799400623559893706444247574642821039207059304491504427647355501149246908708877025007099894273597511440686562680520502051628174317388423936858068428366688030538662428319424249052468164640771692729706071692328528111070459631942927173947542060469364235539556928908523914400493468441100238764702936828657121743509141600166191196717417595552710772271026498239170381156071022555431185225043357831935084134075964891554027832493188514589331490818309469320131207880550447953654665569381138248896194994254259203924152599786341778136333985220841380063885644195714460112477042847752466216336236811630163823362256646881157970884382371623115720084557107781961400527056121422219397415405051423700517980472020685902013728565049290903165476710509219195359921865047580647064357874211053069796589259281488148583763746649488213801965714988169638438315145269386924031595540455263024022495660060881263603545766625159830492713034200745381805853963240605585963151550985492296466593844270249080722224740509687402327364625849696171327462728339332801494269626953701293399031122520229945561532525499420657488546649251787349762870543632892875913455319717426339429467976626824355168606643273088357423217627957528100535032089882967139419517732332740875438363780783016220072705477657602799386464634970576623213974329791558543262214197845849984371538367723519775393662353942956489552569116307091969555936822353589415169695300420776676335791230264652417713304406696055364736505155018155732980723810406424904882159820914237235506356922901111962812697111762444261614272373723522243523931223273181535285494698169961627630872505389930913606317052351856948386806757174221256180349253566170549592601364762386993407026312834429524895790661030935180495000739812377493627595171193746187579981512189203585608511076901491397771593007565220649581424806109858750428747133802453082669442975783089030032173996024686610301816103756418400269604930539521384322233206941215604030513545236186892294733967158609127421633751282743321404409369415132337589792026981405059136563858605697126192448000959759382903684213862547456298241781304516072682087053403183670304124552035475145646612296138177879490435056374501444639148418191144043971798433864256357065211102955895259677970006507865356723558644013908182896720138116621810927370050237861425677337666475018240732441493245694793032324427155525030568481251700901646104467591407930142767925376460337359300492051932332976121057656723407841040766398301674267237782287919183360936776474876276052478340771737245081299432782434310686920735458621949661189188523601059513569178168559018426868106094606393355774135753302761070710054529188200048392412278876823024181673571196579390233012167393667663529272532535673462668769143335583584422103689904483373790504477895697038051020568257795530951381241202484993705589439013158747535911323840646395313111415063063543640537831772619970405229854574683540398869729227084659478136235863995547190207761181396238237474635441393194077884316019622221225579444064063929785844402713401603725946365106229164148708316428882438565431891134898999806969656241025092503234112350975410503391422115343974558849778828115370317197100559905955187299782882569395936294466321605155317346764976194390841350077223374123989649066319792285082852806332649991724616514935462888378543132062429016036052502956180248371424140551755074663713269848603737685396563902677815411175974837551914303619783377132039009309110770006896387125074647038408898375918964941529030624033581484479805323132148193340979323077664221053782199574458869968621537014793856183698178540875312866436021720267936762438699376939981450740091194415884400940229621497088658143294316127229449561034099809122678751030556990089405298972439636762444222387499351627710343001028062217227906052701523015196249518406003138602073317663969816915497575312332820468572972182042274938007820731756649241704649921536741873966311918263032561866062192271764032306488602070350730358205459460720316389051188210453759337719346931093705246405295960614986102931009755543118755758031181553727946047985608667597195813436595257738442401601893465122241774652678590297926364457104520120289236407882020236674838401859106025494789486692232499916724211510361334421330029520538558126555860521491938615402630056454142684043541057883216657332111485377612764316466222063301478971296381764573276313984449115675901185343894508348824482801256219317838044142475044627269054021976481405738310792300836876168587049998160434581935365888416082877053271490044062329877626981473029652294574385244610944835139281945941347758562399126306638878879304024006791461612474257720208436262274020027971181335674514624452332949293374009766606366734699685193826465018920553156290428726555726868050329895365166251010203051078393423419155327332285493169780276578027450269874011337483302874167481514200557071267033194010782541309030098334533546438481506556648826960551685927327844352352697963714623908666248180108776923021658720663829997628462392713888888828598179288824893056064908198659811381888793209957902298944770898548305491090503156859857424947664396480096771774578792574096180760342471154739013671593779127074029461582028327026084713704170999353221023195229034211102404452035992453721452394519585486806759673042768101701896570780471670826796280181064978001622084033892977392170417123271455748797916252011686264815187875754853860905599379288708334697892087098550238561929974723146926893409685855201738844085372090117263065609785898470260761656272624994847810588710285596621332993326010887827682460108496076652316349259299686531748672342878367424680614827252331670298578615440855842051707037105003042412899190756962526214258663770226698849882412367114531733351003036213719260667152156601154467472361335348829691720366296329181815698846708550503691493320796668264482568948863875365396707165373765924742706902962205502469458299282641690052696662018810951451157582021608204046402141157116343537049955350021409511276709027981071878299479303866712451707352510513770084298306493974813464534079281061981283183826899060917348129326209028721088491233482942468828020722211328901928895907081701393539224853087036411447050606495891676054743562991658817530164530006466014963014060152143926495780512570922873435468637027961536654782446992600725035524628385328980050106949675692625849087761260798523784584301299188778298448258982410747290682754984832691192480023054136007293711278150823268092299225025561795015394984332868093067334217837700694368895578528698330668991695288672331036585021557835921686877935312704141826991273607417516258493213018713463218209366180604939293877340349704951869771829461062153327941579819746440519339197624639124647418437439389744922200268693746143319680972655461657018234452164027451921868668570629528614775683531716070239889248425918082092077374520400005779605272471780233349144326452596600966864756268122926260426850017876603681567231146154111461272551648196860028330457834741005205774931838896747842632174914378732904149725750951630802099248999529159593338808010146233716128507221639159984143284929691292050496141808305610566360398818846883295940039442537030486593517948641422097494720357380985517201595652649247738932682248091886023458039379505076569497082890280251081956943831628387059707213963304882422770077902584628731569799673801186291335752334528162609759090701124662318026754503861633951183141269620087547533357161761762755271128862179661920837296721153594504107301066591643586649600023598264181279815720417723222941255601667403789581968686519336589606788207278774587394763473366343645304964072431124925330213725369591070724069012121791301261979588382560923364259122194378049073610847024662299675498993624506534656017737594785536016640158194822219107431822018850572459871572887332085767922555156618969689593990903831507572590997977236724243758754344089939306809129758647639082711986112242515199388390497697958757706658133408206815276741488926603846595049821382128934085497538345086939815059008524293300211031232225160809487027129482171934997802171366017179773769398136379045899755230642342695606496189023063450563129082762852753196106479084235494059908662045958036579903998138428949531403110586720680779915357444693054762448083413900001057247639098009761929544239669066129239671342450132357028709316866682473420304308318588596672763861659450500846678938979114127000975137100454608520695441333508340471558774607519916079837278466475456618736048680035472363307510794342898193104564980033604449162809377508649716857407623817271794998355628837766727988992082969750591110728742718521602578650909568154828695196407721352528278421233674810800959227616350053682509967056283734382578139483667368351686833144972207995613784102238466661209984064127969861381902613143198619007500663075467218003646604091244152309171881942796678871098769419251780840230442921662860708740477341455841359196576908207136734280773840861510566041020874611063768132283270413531237047750075937918950508009984937857740600048365680060030022644143451046959415578731942092038474939304182923878858670128227131714459212864136785426857053631741005286259181718592216500521479100973840748841337406478876113298613318822827928541454037561146834603718556266565716148722014168691397032504748490525820031343249818542370151856146425739259172046792535809994085978785000329279351065659075889964462185420575023933232418341940616387663122320396306701434293266479961300908528668596604919044739268047250806934590551786079131410058488569334341267097932022172020000874560443017715868774772468811992410260492421894550100933418673290027598930581462598591371050152923215892848004951820241841432139541515539705037676608798405568814312879051112673087018942205579365584834720650745928723912998494788973645900739171707565097817415793772980548518078542358616509421260994818006736004910941262167782147782530757039405632839800820797187337564086641216784807806438289848114835835363145362127987388050526045713818380962943514937504233416066747287925594779660393085817627713384781408971951194332877706275975538799899006771362826899667776134407433288394077483395786957797460306309666622030105243092632053845830457558938005587405029119287225377324154473912220377058325587504209090005330422810047217489056579007624373386874400248210245628003259222550409086057241237110278310658629428712365850730622678164830534962594342093600758347354695397825890915496503241586329186437878049207546385947930739667531248840178513171724205853686325809647455773640906625588016208293892003697507317929066639838377992663369785516677064307080875160880384898941686548079495802667426330035873769253869392915417369452999279895544272969515298755101290338911702298410884190345838882702721752708344057846169951945780520129068783195157791065856442318161748279558643379344828267350903425723520287273714719883367721506715892942133210751298357869928644929297810299680618065349346153502770678296907458324904683274530339829418611232669293856068721131574121976587486771295145451125966678949871466415964693203102451356979204817744430540315506597704714061425620471814234281075752739595958332723484672596980810726279539061049149002064217806396158418320838216174365040509728012937649667489638091231145682488882583832458619773029000065789649192791815582152560725670481861048391135762882298803642850069132673820328264785897036811354822583498022363255616282127770374984691181918001633711347392565932048742295396595049396188213685688537903278179086178429398630139426934165764168483074560662464114782096618994466385131689285795044813149147811403967248611614386900094419642557364638176925553972704891534791066543971306762728701021805595911631544951186764412180713032454339086244857113511458434514225911925127699653078443024395309940714505207691422794914261126994018620864144069950305863385796305336299862045273381694548031766737390942415472135026912432426245038717089343944747033767872688481595254983039479948434666661507541971612360514637128001282678940878838545364934544403223386746186881141084562631111293822073644717076069565790632014593849549317436491215575575758910110480216541804351630121098496814482070680305678734572609376268833553413306030491485338315799283145057676368176133589377577808476954244626956855403775249891729544054557945053220080024117081748380088729693273414429800613459610176867242677183648439646316613701842521129055938729870222523702275674859658375766576836081573395852705437223377325449327348323645954925173589425867077595337755520786442615154684301150293116677117634408012935815666258906998368955227027705632064231091898644769709642262824384424489032374724429978462992866255115152038678267305853999232247338734089562093031425897863798205047492412696146636142326755277175178309600186730995490655386047479751142637811968105042843032544200506861484463906146819226728769471979871316657670784132195593419559893136849166683910277083333313026967031778736635382852720695897834533122391621424993395162626998411253104498787655405063990556989316781521209954741123558472125813159374729387517842551698656371537020014475451529941303124457272053810120082388321216208090274667983793690902980965856613375231937356018033986205455164674689304697475611894235219411473629158263503112251246221411664893532457100809084910443808750629334830691602699043808878638077220069880117577229122369799318574837170623405656312248281125808554095213168042617233774886198500471665133757086104591651618770195621564353912921463510866438989129944318792662262410060387347807974186590343398385540671702216421744141239224607395192155988226306429974270120983707637238168025488572853124919073317824721337162935126925202158427071477464649305331381383066488822882227449579649916436455061163303266087527120522347951594750164544113159860525479507958075496356908507174598902816409652925673996101233749709814708123079697799952172578369055036291005304802966263327376947636967250617703100285631350655442256604549243830416477575295405526338328174222533315525920745591178679053608737525234090243607219893028051325398629392995973309989802782239942471454032705450805072401836397949547184085076154198558470890824921519516887881361438036353927344978265534270104035370122615897576323871916721814251619475591455785692571306037732774947904175434454063828352593335738347416300298878007717620450854910563649329000318777171458405092424908942373507081006834860958758378719406222893264220085306712063387762651740729444393684551285078957217212023222859500270451157226756788669903548076402609499161860558193022572931031103284481807306553674367183521183209275547457920497751005050589263730053503843575574743909990466577749293161355215052913139454785276452578165768668307460727430317381693233982800924564147118792682835135379666476809863720544743313719017566749158898596342681087873334554000399000466784947652609874056768601173856779131683888271822149040822430654582495253759732159188101632629033251785819471181832533204948866814553235461817711027572788947886588774990290579490060372902402537839298837067188336114321241520985404428003767395230604267423035016685168291302344172233377034992277976895993753706419318738616034898628479488671678540206200022079120390117070598143350255597811996409024933406568837373256019719736938372071024417068480504187710981077769479559606473485729336958564070611392388586694205598715285897670301790602833932916541423135754180847271283442764747125442119297182806539685732302698549559642541569065103231437461047076656043447637451927641481753031362599883798995143609896235333717694486930230116079533619614797619258427258112885122815910671627015760476359181962722991870959689728937341643258877875355188655447497662012743920742353640212563230230905731337729739840241472116203736396253766953112635587900366904505342893478374890314401627367632798351439631596300405395418854656832573932631388246113471876455270054428120517289470168345745684000029031949726578354765822165797259584696103809668058818407474959618618961887183082860336304396317049123390629119138415886335592104456938955601062789055443062259101756963392227177484769342330123345996794292099264289573906454078083547457409375620738311571791053027982572983565746454139647920528526231906527629014323951090755634600596244560179387538975921526805553596831494973507284563217085540417817929209066850998950324045001182382684913784813073033122866654369595946667092874473536395481921646798941936421942264374277270285321226455916883442994391362786155273081687379982717637361573714112387769646325820733186756238472242399067261639843498164052642124916593485483263652323736158440560152344870198340182470256182822382427950767675230395868207812576997549097163429416349809378638520468552880670576788523012920993120510199760755986314188722414322148742961628345902973730864879030938075036024484790887730709329738827797260877513445995323187941385524812189902059101224175944770963674722450349375372751396255916074413831118873251659443831601871089445003275745556467833097153952943758478140478876507479364500800590303738135469962468595015456188005743106057611323571836893291175707378384168164555884315774295732417008086417971664229979250493943424556255068199076319993737691871622862792722636253752250611843429529253819597766192906125834002112402584351004200485442089970026141545596121913208346748107967341719088854748795494277652887107283590061795528078087871163909558308186227858265229447610175711556142294982817940239660208195974021508379067644326309174866787004117222119668731783644518012034024319445025390561761303921619397570146108644257264603787919455538513081732357864573555994226752273332172489881477956109737241698979486286373137776794337323790459782500678590397966658772700214438752307521832785682073958072642605155104022732183327307787327620786125402808291745918546437590885270895026179657742922958257349447939569645244780815209168778735217815302143610392184291696729305852498775896801339100396450966039258321789846521040098799093217297100981296728853918064771238088412057016571048590027229851045075358571757667382381207170213848809983643416044394822973629450463591739249881284407261138204713082999247637673209076676791298627281833497102122990519666433699153504525969953181147127754159455187674778422370291429538358792550945954312907474024120747984405629157277056880218227151514517953963584933061831229631432596182551807294359570821146267846700254671647351968479127112919017617176468575192203637959176756685250519670742792659543564785116553939425643591516658149683309616691760801932250898851941135411217205230275078802986610183947523657969083035723541830784947240029211358711789411365083407860509946679515219545853144616523295917959838821628505644101876222276885621758980049496324574817673263661879987797729471008631322972531045377018440350261025173119192373866157186276346017035755035956550607763632041198490750124971189828055967851499372770968238319053636727135642263172436388372558611924875230081236376360573045037092883420765679245076442694049142026086265726030792935802980308108998841152918731504868978564540515695290733613475183368115216762953724796489192890715463380385981425796274765374485420591770009822511217382890688582291758541837937485531866151997867548802009040307055314894793996755989126186891255582891485525978663079120600983846887799361756520607648093538862898030344343216048308562385948921053503810049190899834750139715244682285072994202114996812881497061370455968839391351061857822345153496179383539871760239181389840595069887709953552094837751488422768397030723527685504286245089009628571477467273194873193706504970394175887424345004750534813092388043731188565300188678204382001065930731514616589832174918852301084509013789626335972691851488170278491311428912343042144868908940809482139984141516893605331988248248424334927630461134896507886065486444480553062566131914267367095983511839507204141321516973847931507492438568373615983475904945594431691666065433867678989545644819781891975785252095228078695661564651243882330858957742400991892020032397597532695970577650377414128108312570531116703699106507564991982465855669946161821861261436648948426048566165815576582310654031788671578286540871822449122799827870752762333198011444858734287392334562678690027378012005341982729663587447900736005523548771232271583416301178985962628224733469987616863506531991683540898693118638777419617798239734632613543321339733356486535846517954191030656176513796312566265863460729600928772317282951208652112467693087379719837068312449569198021246116371586431889013927909284844717347671193878968725314149800704809204815599315224791622982280573143223207279145390403377486359855313420899263971650135629012972088547678013024404000216840438729570410541567277241885159046899645711646430479140749369416133884638126431930507176812877847300770421276341431312188239763459828702021272132522269926447981689578026944889733347676208710962652689665700709945580238321776649012866345432863491541114954287395582381334390942086829988200897775490151891337324761511856371869810788352059541190659335515243645711038837865864676162765596716648781418054194967581933882919930890781289226225859777908118777646683494406548344493500368192635943758233304089290321941360318162982443513833240351085976717266776750001555585196061794340673363676931218595467987748474836718456422475520746044495800270477773267245381923881283818434588339092606124130293562897839583892218285386474127117242484786863928017534627989840500828378646521651996961595278083062838886158358595180532309738622680432956741063214933849484024066607151021896127687355071382483799456427260914567038606347627179027566181972380574047587136404658131984092616651066360046068978983483045417754211381108674713240917714729848885020406017962848069803390697796046306802645176885627713169405411116583776464748914849576892128777174890650854564867544256756528950108153152479651644137699895838266183610734056054624895168800987373654801620881894330751437397143447923310437269996117970119714835148863542971160714823168391276316558215243441028447071341241138375607424150377293798282593810020316246272130664189173321975572137824358944021811063044947715521982302571544970303979863280791541065549440193790896536250722495059548256463713575094597645062125524393119672754646085408166153884177968109359260264257581803564963595039602908413018380032684100473146157634074091997311604810817350719717133505611531179224097865992897251351259061890620945272975767439261542698259194969972595321156317239183691456283068009197181378873484117077319952446411234566727201500029708476842325467231345204600964626626925445380683200392059740941592210746895852074757203422482824095865993709549596212856547742208957480215678459182002113405430057293702326078825301231189665782088502050284491307256893512212206190527192565859132924452504622100087123418544523818832286299617442500038211548374149472742751205064442690513479381599716546227973933570766585256756511176774472663577521347332542076633731070356176990998743085274242312508446711436169989301185705103146666875911382095055036737101969061215266194060827893591558165895480537419563135333342034903209476279425332142323943938694917699963901178101479417351081347037504894510518363146597318926687083147109550367472564415562127776830944086824736676004120361826545348435035594076521907387531434060272248741450701166442077488703988241713494723673997722821065596177997778729862359625882674049973718954600057734373441836002031424757352177917308068474385166692652809938226226618892344344805668746585186229993612276318775248865337663705813420372823463110261007370933463853007100360724408970135381542589120132033966779518910459926609265491834195375166343202320338253356830046288788503740564214659817968019230224952654644991560211457604629955331418820420979222721115402400622356133064631924956891591605075029131489121716605063864465862154305885493241404112614413378250211855916337033874774066748155036180462904449320330967318743367871840748388951415991348789108724624839671922506181382928169340993722842788169835450333313221053450244356883752618739791614685664160923344072806614467392095517658186744146018488954281607245943029609449178719758704404796711951667707041325700776423806602085008359424597403228902188789558156256265062712220667818529414176801618927473621555964708919558231060684528783953546617268743918100296078287289114472423886641622536421611480660024291251272337537078632296150210283940866874328805815820370407776090285583062508742157654810404233269959721958384035887068909252170345887612935150836351767104605862179352672806576996947029565619737640601616736313778625562697083059565579951626313592854890334037159137674267092419734364802368055196313823876838655969780370508954051215516510414774032184756678091231202874418180075621272713306605224636312327995415283967228858159240191523375427426324420901047266214038347501916939485532823208281010903576061399770986150712715139191678004392306428451845778777237224621292258135054772835152505005181062552839046062951335051043495891041412193943157161526144967316048811353450968367548793303124922129508784771713869134586173583745260508619319107773531543671257901878808127046054896961383128837549832357021808862293298477156275345190723460866293020693773041506800725457838386943071262772410629628065186862226429311361785455508739884914121411135971351131828459378779244628151185952095168740626179219144638381640651282871639064385634429182453146779483405522733866780385963440498773852070225043498051595376554627747064797817071351970090846800400996451751183300865375120857702098097137807081169375322099190281085530192203276585548156807725473562390252004685201423601367509079825580065789254315621286317980449114201527632189781879513425983861193180089067646371945826717181422454918007063792407906838047103147641827396897836988762607266433817537527035826337222385250871615980777406513263793200879025569931616954230853505682698156893827138639651560244433279286910499538796950926971646433245708301621456365257461268474431488374208787024228721823880309981467598344826971253326178613979473771315214535855385747947241336631891704346249502794217260686278185472333839962810679816858095792195258792976352829347485207224220244896446060787325650430545535288505900874024606911378715623873400410752233492582378271080760770879503888037996953293764993226252155769751879331078868337748317019886951551554578471226907077524532843529832292867709140804104010649896090787478019312154221416294749526641821088217947698115233509302515932982754780744521687672513761678147719598168659052595579567982538343378646692503366353146726363145606303419052766218387494126571673964875629196246450553879145033068414987129786689965878323493629023298148181148449604499723131940565660146755698423550163857597221117775235788370384009915541125259132004627487114971230168628471684761196788051554097340498278143110438888770823206965872170407401819956451313553141173426942764762612048541620408789533470433463103371749882434126633620572270892623945987348384342536154443669675776510781719019109865807913331194694892768928478050922721988843158667862900772550000488864978708059481096052485174702414374614075976839755896162914018044405388782539611248602360756181286781411917357687166422111120799062811111430967586903010818152369993230826673537456189491634643324030537051976778497130495040618118617226341216169420181752898467831961622994420696995744081267724335458327226220728876077152957385525505078961769910189761484453401149239317907851530007903253154445529636529144871194319390370394865818009920996258702718113819463847380251699810348447429994495716674197653256315432950353061447826505316433156625468221138271518747103040760354452729987580104299257384289445922774018768326871434304859335120068519000634317554635373690948760422226668449047373155632981368059596218246833985824132985980233552694696415647967358760927906693806605631351270299424938689238543218534097116124647412366762484589341381837304859962949486202947682761792056167540112906150510329444561002374996878904897130790968513537823953338181748121248399463860574184243722660577752300795880007287854832874255777347908540151674650647250772997214638394404033275939335882116125684539711283923455144955015606639638461511073384656454442514432497479632460522251268232104532129064923908239327909787706952352764702729948382022153471818287004093914957430419954811517004769644718985583574312442628474964706031153432827074429432240666710801657627489011265202557076347131331275427555622528234481180883087684440705371820890307460629495582964766390370732736607925047876946628801058069818209154632171500281233931314678613095056301614871087958673160617940844060396090949303209993406961844135772042855186263829249711982513335497701581068352280077147336405417021177069004211808248804894039692316095997083501162197348044160226784846238784578670498625151974296988019697579046424003773755484535877960158732218791967696199169804074951177156989365293913887444752614635970055325625829497120587204787315820019050702033416522709160097730108019996206177837366630489480319719721296892263370312594189353934429539174093669326706477992876638758557414366301000440247794323259542487689327450655893649184080554180061451724885801366449358646541705956506817762865032439479425366298380544664906195000897405506724735279692795350412082482609128805247888503324658330097827484318021152754355212072099920049574005633531266387687240342042601688638619258581065300172073836674966164417670800905947859950024037312644808247976412534459681249089140379724763761489171822608265574510016342458674881503604743728641246569250246886791322270674964940010015810858004911845170259243910636835407408617741538306967105007852552131809555256393703533914116930025234310883981027219362254268649214232027075748445163628987909396225102025322951970046706609383955340385699213398555278893402916267183144921536028344580521614283229988711714664311764252987648828115840124905311718978562732262111321749851555271293766195892974508988288529728824497784019005440945771766712840706350628684919351196743575546907872379508417158208429685111477418810299304161653177338731424760704200168735175354036714288433189922672895579503220841394808651455092384764158425275983348991378659316093482344919627683500236605129450762111785604550421556677666350892029635062879294267844661757857742763945257046197406597908281216773564822205975688917852357467293483347357171092676539738839565007168362655469178106062680808519631173517282030466260188509749362874838151545972475619815477354498230811608301394019493102338045364770342754242100523197016910139581749374578014352294522080799419161592114007790134348036997203229065170753245461110718730396383503598960211776003861425801381596052873610600357603632859108807238148396740252340646196035416864844363253586043599070883709421763275557898046083814745813746213641466380072240431192948902091950259497073977731747699779615698138597673857497636417641746795522630542410491487034046629373067710422418714017113001083182724514449883569432273566417738738920224863253437575261384804747335112316074167945981069621565772066566711542436099848113572693599567056520014180695742278093803975253161557793847950887562659375459969988536501007432110995412568052918589793927591198689181722721016542278366482072216678526850587626876073352976870147766076261426924393057142914969232861764820636163147645026078042282893722213787505484261082613264706375007853017409244949084453385617089277234843097909471253095217242797199755067814592581463578574703079392188851146487719848872757208720329365787391522123014005664047113754518127964660111285158595974807717900632330271343073759936213765176742217255353872219107385474921553312141863988222196733888276481258177510832252170701549531096162166979205062528736903765990639864805220202073333069344984401404671518570294377683243816547251956287913488187079545080813000616654835729280181039381602419229992764260903453624270918423733790413047868760511340555810653714645271358850951260558269376652323856096664733015952533688263343963277914195938577714793644374119940922335074501523237971532972081051645240810313979914850457405543999497960963153044458715756360424774226802495140140015539422641771494691294295921640241394888394774197174857656944098572972815669863381912081842986910157964063643134310529743560193877524136642766668265105453876748219725648676433182349075380350490037827765643082066902782114767132949500734884720318740161840528718270255796313149236488563996633508221095651822594745586015080294822936784273392221078395675385970935248598061415451879638503656886846140573793563747128895576590398149124717847147010039762708729491218040044807928522994559049448457087800360511215027501249783634824398977532940114974014970979342046082114335203989106654961185559916929236292949574640857918266973842843669479871636344106356376968839098714928969897112917993693729584282217112920960715222495184192008445032594398817435074416955708594092316753410507873019068081014112136665714831334426535756752405730986560776206221614518867799718837245299009212923721207836589142664970199625836878589796246548483019240850586693050191224000866834599101392334717680407131796370447834616573095557589275510549493294508419095795419657016469997424283613005189283652254283647164657628037731839746773529800275771417092370312465220737711028696469444123731623748586856044155523767291206547873457566659984534298814674594028444767418658073240835445036776623949609093644072801428295295195560676166557154734313041823628400604974565496788804733871822468667388914676237049225021384049279745481342789743316914326791458911753345296702622197620120566032595775985060633619468924034677065703906383176889633331201571777618342664121195349684720107107340829705476664542244549217139230906629965556861691565238825588764425742752013901413576178690671096626302527130733136022954395510566422269650748012330058368106981946135392572406474175670400112831391173957035800758396754580955269575384854079708863711547488695966921438212108253207749407623600916653789377828403150835740586945012969425240670586635619289555230766465581776793053075784255271312184384617798304648282521094735421190803280286328680173607880861896347594395075792354258297849610409283986379509953658375695433671444640842760329889701073368738409153643458739954063517826828464411875023877261719051472676853874955697862229706749897330840113721861242548803449989881789932205767880460746784268716681271971273832894014291050339584643748609777387227020780305071757075529513303590239971834664187478124367038104105339402836605965724279634907840707051300091091846099959722350612527440007026941901586066869417991886108792450354511550631563070806228868876468504279568820429983956900637428835420739589029447567717715787373744189005259126251935716737255291510585275827574293909282526640472018142585645932675161019840065832692080165496322201428927286969845901017823741049185291465353525369311911629589445407922883367227052189900913654575344265557406430946850097322680012961221515172380906714620891746468173156521809507009032263551542909315653580528018584014060539622808618947514696743037924662360607848173422341892286494045500643210066071523705990684689321273705210947147201820122656562162937103932715550212885197782425678250509861071060205495365780389118078500108736748390332174195775181172407666118437361125550629560091579255769164429191394254136312071873757626906623036198469498059670844574360787718527755753967830573205091758758322942063958657247935030327824057343457393303885788431594743318896104663933153559770656464591078827597559550338488779173013983778179151352690352299242568370857082178636564430821084626341013756386163450338460590834835676294563546600547011483205198941812627001122377979172418297993164851916768860122616325336186124707939928935545523591161276743975695746912865998664116798062998790703832497088405457236011308418107042493360021262285594081775994853551432371059598991359860015249061494825608773929343124758170923052216560405824320605444556105980838335996803531491005054394080318350005488988076299435898599286920492130939945911388659121951457447481772266896810234351237111005846520553008748570936307802707846805960512645166790465682574775632058632192711028048485642693215358375114089759825849415356443028893241115822022657172076726255197887765714376691308544614227307009341505062617022419609771211369543618116301783593864733240050561193385519095955642985890759425540228580526758338336345451837932351352803960551244289428751529654549874255784945425469870310019720956254649319027153991665768454479509487698436634243909095020164274911481488673021034117412171033678601985784974274684830239451002713852681695604131294304333488671294020360589492603750104092266518796513165386343476986639530164934498203870797390573789897245603266386226805778363530763003912199499537173559383568556179802235681867373931840747155776589607279533287847181232745057166052664264807471746328598805879831246555067185897313869379126729420779071038021612682755444503452829827779325070229984932009048211198435050527284310184624132665624529022257989809432566492842209241666883943909710292556213507600831917632241638920482234846003369759833496076982088402251867673267549155160265213380947511601804248346503616907120606811198542753252390302912100563844229683555388398329507361343443929502185575266053386606177570231644296211749978274662336697741831304625764993949466729844436802482547398698136814597610216099943245172905151184387576998390927840871305291886007712356255532607340258582080597648397963603650084296036526716980578950284266304842678166641189166251192427929407367334969162369568755341989019044064870697198302192122441874105048299032152066667380474804688089161387371773866837393509773657355746938466456282894684958929709610120472955601633343473890910480888640161652836534085548975404735807696784219515824315679266641401609282420538384711761405987071495118936293348830900213312207901940984161574691758223986019602540812022450662052380303709566378171474633506066900919313714897553402729082857036477263055609086930744280735175383592927130555252376763804702934422552723591633591963002149065185429419345807938431714284092388014227223729435523852900823578632086584228516469145064932800287294111478289848932029145967094466097254216997605324202540001674581599490975770228822635064486114186798530334877503173370529181184628737590238705784768968190184237955178495157029021820972216568348471952359717936028887489654510502808844472989564040524691060029158981350230858747104865124178724430432239039167341113977781100615901931258272707770329207699421609744009903603795602512578980413827240038080931858825112957124544375245836426585099962631954952498389804061047000960665551164023982933331150145669071143604821159376672044057981687126220124026315997420215692915443590328110322247845193217284194647948395592741889866612624836742877597893561564171300909676926446456324243121713864275777710182640353252597463323961549924872048103671576795566611435096524996096285521001574557438602206815089291610850777275601449622169505475116001899308611161188299715111093357614303192272925546104471472168392876254379939027038070632276860270479504939229595566970173012781931721831260926845284984444925655925840823602684465729964969582222134318853254608100332761297373819871405431599430920205357649518164386580573984614706951020726232853776734326560606260063769978950678914759633633132206976762071595891957817152552063657393962855268813033964172278192008274560517986893281485176984690453565330436976347939752206846749732324451355157269207150823112456523172248369529321307715426674060427449058362842602055494469632482097193995245510875334905331119027345899463104489503928490028798045588040475822989598714379471638628313450699902469838818218142907001277418853285744054896988082845366646491330446234511974602477523929665102862396852009930800018238825303927820399116989936612366275824124838701535213855244183469639945378784409570670019404328219609647784101070125422682156791514573082424633680121221893816438311210156826880356177807030169363924163337678750327914193102894545003315134887500163713787415469529126211669555315413005107278773369021490268251441831706229308552923697930311731033899559284488339937772117238620634961046948921255275021529569397249411229740597812989862194899780304563175688837413217062567809222439647676532229005505446488033210061674387637331728931050210078902779838990508736472002866736602818264964362448276531750235608407614380867830488780255835344352761036962589993571994612774922481815430893655587057491522395272214193468833993755452696710967963604320055162206597577414319996087299528849761302761687369327624807282809815454519291448815256466940671147460975190475397031472032003964464598097966018346451139435324226630310322213509039633067703375976319003558768151541490924560270727389682530127501403078650679003062908034460606116872327698314878863670146076106849375944381801371893296467469695475977487253576257747222260285944388965299902405178886766567324789595225466308825910019057166497016624638837997048627230713321117692185169237161786550061288002288854879486905670285679973536437529795597732153458018478437179219158469227193859557192793109114285868094615170609762314973634985947930946983876338281951220763129085045334819122282206757608754789639550589119080751502075244646673123519788982194335588870794275938953333183973137073319443796194704607119347498609416288936740349006747740886182570205994828071741029409026013828002216279294279006338734844947350209186136517616089746897595617703997584539696664037268205462200510505066652616341141743552932819998046826564347328260576690353497541015256402687806964480648680331573650735126255566455391002491785746116800839658918620672155956566886903888721052252886286038215698837694033101616512479857637826851824391719489978029680134722530204074140445891454382981923998238127311710581343020436631632738701202784687143336631163871068846844942367808085663420727570473924536711688660303164344407483303537710229250872268289290938498347640691089119888859635460406913246735510816705973669431602836058906100047917797669120938890780267067879695906162447463930224066636030537377766518562578876646492852879064536540167768874278437600997767319557330676761175855190350641838822251230883702016714088962528103343909221720696958435222237998926695840748107287764361482541716473472958495812295825427609824555260823661299476224692933400308662929392014233196394365546290649995866488627837903396588546104547911367908027793165328878165337449892063050723027846068296394462057206351261222894158405715536896986936438606166168475468649899293039300268271380669605865498117025241617704637343589242080063449420545531481790752488635088437950355634156231795508022392011244008630198652045112312230641763094695660866799044531312898354469970466477933141281894928241388490513512487195206258637167772595761656267813060075997272245418388442905429303026619333877299042301425305305944597181302972353631176170770895214724206679482201382236601367338451711999936184723893274347620927979889806075536485151854969743140003465013888970755654671065730227040204774928028311550175013380112351854061325009955647849830428317740965760581878481164003719324527025304470838192440264606647680806127807564720940313024447127361303405945012087300606143392436406629701872141914308810859569077838858512237696105479694676647877090494958581556534757907849180649623520313566578943383879702693062570545095010032307036334270062417344902704138506181953697628350624374816080463753078948318151430286880600323620494317684167579637049821141903322488270374086863664072802222315313010953505121342000077113765653139768046130513508304023403943923555562073753616812161002108164276989539311985001119668804503012309901775595714043281183348420782285346216785461380076522627804045365355716211070785602014996254279350590945185065853495540107304462818371837780753212242724276887195480622663584254122319609746450700564787691456774046356717706212347085801154582210899805508635865956528444686212647403543999202452253790361836946355569994349606657228445774038241097391149518986735656692011978751531513310785781147352758005917343317126994674949869128267477931391612258470919973065178745437488960090697569428740498807598490072100384852368135804162634147623617660393220028006223560608804858789722833077257109530293785432100614305804391632739179202862032698585953768452210812561505841912198811778471146604253209525782359974870346314709577981840934165299982525505143008403863616014449591092511784903671123722815963416021740493865687018831152246246161205643665160707510020933849961405741673323393360409792611991708268614541705167355166135246192147449077579338200506276726636387093510844433534883009004706460125631192000123594315889283180055310436722693296432920033823079368167684956298293263099603839726848795459702534896504409739554196793515794887241211746212461343776444832260109439929084955759706477206299309080419754229062572619457302754770019141347414960680272113060868058226334384353189862780751474924775969763821983361132783242951784516560689483335250098960812167479946614215176431707557102009822039989604714524220222683115477789646301150246339479056900493994653794950908827034303400202822594217478684801667049341371783850228260575423973612781543973861955693035853564400021003660157257065458986115376988661450458332953464229782070244331775555237514861920078138485940969812507864075722758889362234645940536646577953189254780660747589622577645739936866600072832929511231555842356343400815116367518600084557151467637826985132152645061692571476675473934462006278073231175180480258217161111148278073841895009674234701969165522880242648459100247720548747616828402435505922289736051088288744543429245763975576327271141009704861431563123569583782834040040324969117608197120827650362096877488779852473734751636452792969202685317196788929300460226743318523917895073466050920456155932563071425617703704159378656402600289267757151769737005241932007069126565065674311311341459997088677075374637730483995244131953461848924927254250313227357197852006379893720776646959464804746246008350919233951379010748707729514336533224674326508723493513592355999739273623549203620813209782164377622239437649325158626128599816096288042356294909437734787181967863198314098060112771639468755903512089490835455458638108552805341678081785901204157208694992798075451670046788716958018191809918097964945295629677823229891039781437216193753205639468580651620038757430521124294825354850747597111305608913547400487173803241902395680961872073176193780462557970904036177180549547003002900038920190683047264700890999380492391929517337223449475586358278717932873086464291399558087576430214504976040465942670902790462775285569700872377754311361468810095673919392196687970570162593955900444937445627946951549426071252530499799930506231693194247652653894001842804304361816738387030593913967615586069867480987336268590472466744440020166528756439566323250150505912389022079637143096024620501087830469449721787146755759960310758657682918323575871727253153127490697024675970571975236798360111583110711158640563537980793910400661982756185789767263315540318946830793343221913220881114602328006483088901932417401179139153967448515392136274198419153092366859555841769592826073130458059953874649057520778567112587308573509253749527240749342157855972776479404375149522385652199680687152925199877582362798668363123164736596599830743665595108082864929304791002372459290788908002653498899090930909773119728103833142419376478154885539525946889410241203719174268021235900912273943811778547453151362709504436073136885028376020885405713035339065914723597952516818329814560371558328755695413602392351295639700000436113667902807114239385625558288695769826392813911240146738190075177324461802402554865319078057844792201779245277621391770995904674587443554709909440220353535115457381510292880828597037656689880831398248686389549997289107179465306196982708318766992998671593763452063021778867123720511053400220279685126755430743256852894273994507120176952564915842489221784510747220062442325499073667295092844466522904128429380767728758337765848940802036687420014988133405115835735944307564428039102230722569212440952649352643933889195015845230306752965060065489959896639834160906523359335227312543633758062182052688652547818318530522303884150199816321111027420940894448875816310111379970220891489222269333339630943580889877896585640986707076976857808033612061493430400863212259839027832418221952678021863793929135348971356013001052611963524748855268563273242366671291608544341881914524603917586304678858773253663074243317344537661484291136390365838842239047196796050882464977796202938946253679538881076845111386729222415042348615724897699002221929714076487255429881832099357167701796091245652060899203942345542847483704829111927825541297268810066600472090438390815204402815063105437048434094737354942376392807081593610555008605692185281608415422069401490829353033966527194415835693496789878939648939208289737228798177925766006430999633146098718134312370563246793306438555377601123001477254624397471458149084688648004636042991931901747418408694110780725433239502679081147683036903110465664508486963639972875429476193388094235043680975350207072664102464508832500172620834065975600789239400323099803078799442151537716765059577615973063371124007234322240110289105532730284535835991117779666845795099844416024289742130696691062384531360135983647518115941411135967108812600857272577277559779246076852552371016360708778229178178580591665125769545807565319623206327713381506381749117118785025908907436505642292927604403758228674333979470849705950180068915819778274888167892694365462893915481081124770955013132150910557278514511491735199987253150458566052929922901488087078692399368962737587953876983121942229283889447384578519563950489124149426873906029348825663367806911935966746068522444738055781313735000023902691396933163754975259513648948130426092992729352972691925619817168260018844442113467455723410857249293982725524875790383978510483106934912758393375070352537831434629007222771332437065828031486363227374428613705435526701661412901633306562163983536353716900205585688858158272374581157924293632298416681912012000325759625233135164166821828285001716231273175393716335946979176666219256708904791569578509835742099108128404136859790284388026815429521881299014726743562057335617671976408434715635209841196452863661409178240671958315336838210317834796890740645419455639253506361263255107543622040259424608622498904668942179664980091832982020978230695456513300254566270302140752136082943664584672637230670443034651316262106515646555611955721709927164586881741539117598368980366719623398673449562416697122583615404569850120885282855601969426082532864937008189335821493860586263432399498519477845015992460260498597986452098780896317316026036993263981757199572079521867899097006966344196426795875091053828818646469904247733919681674866105715300914616527345921073546667560308271416280714769654546601007277327923507973715893207511127663791527139990384241314300345909842134810321261011383890212713012510292868893957625969513821109925153705567970272579996277123536306618388155052099292866608924750586917330542057704727354528886993858597170687386063761168598971323570360106805545350180926625484867687650680804343682862240828637471435276177216231854694154476646209715327492724013677423421289909442934725909461676835567116615483708419138228344225273632066672262934386642172929270909661007784807383550947309148149479936028614715123615387568891704074308614119800333572587136917563075360211327152800319998052200760440286435563989703199625358768536408711572488718201660013941688191223206479139397961735992597427674084759849229253040613478510276262904046904555233051866676591528946756957432642952652158863051129829590991649921935753996259531592380789726731720764311746153554353085681371855628332246271980952896921637780230784821797166286817191010555037607146313076731933664799084407495134088441775038316000869397611872609189823754832452408133147611172921644797794770308765372911899212015136168309671096994252339147460756248520066542466980020059978085497458990599770827940563633028589072444735187165830602001599977610913231984971266978891191891898805205344526720288512094396164316091412396640814855755593601574991505805631803061392779168820607439424103378376342564455173618811538261338556732948711849848701436441396022858917587436010486658125657134363352066003149490567691317083526611063538377446653897078643626210007726118555559977754208917010032827615734554128824455077355406423260324630279577693848254091340562212959512477489113035762513277149184503162842771593441005571913137459723355889899512470474265072656007831633630119326978003275989333837930024865021921429256084509166892437962971624595521942037987354534066466353410692607220837505921780014715679942037581160098248961793644929722580621432898680611192335002095615962505961735374359789461055941998284504254450255933308687375477204326404189609759725874016306916322095294276475480381386347354183670854891716148907494063439222559380429981422624859885523338821349054628570487923209233507317852047713480857445950382162493971239071659430826110354535369725653310440972973676574745904423537161054203820699487434017116737589003205844130680268864530417113194625038981040438499476495420673993346882462336442432754715985611368426615097340729369349971931077843718244273511307004768787544297964885961329441025223287710320170054180692538186645274718493443734419686864110874811329066461990652483822555859415211945730381155435765879872734402053301952964683373069887107421325183406797499988576711520104296570074192141681368664385930130300640744915039327503398927697882555714215725639878102409060903973687834246533378541046512764038062985987210461417193326640128079803203707790987263848136255428089649916123246923393126655122191041434415871160234599061087317245770771726712770775710417865427690778532070568447587206715979747686004511600063582505344472646392385526828566753863485041798629843042956319873666706131318170757265362878182796332865114578676811415240573748784382548454047519645733975134970272849937084027205939358900020349470425594796604453991520289442718272198661249169545587758538330394848959228085851443948537926557132685026750198904718160967424536794188176050361367485802221049108230749379887467010640388017784837403249305648534070345539510988334343327074887751690992354408086607394632032422807830815961601271727937304863830577656127799073906514262118655753600028202064616933128666787404459514149459132111297111444306981991621786292314804911779314171410745635298213082253362562148049993732597954591925031950712020665513242042205944267772841930319697618086662017727710055146827408414976846715246522922651328545277539420192022008708422986477860967807943427601749758041178579783022764723160582949908668449372412366167248314829180098090787614129576104321992566448712275795009790352136927188340363732869122818295712537744539374098535385282907914557645262706410939411473696218050729281955019436416115435861022268932949238588481171738075757748002617705345953759599967830012000520822174351677712127575634600005995022124128797070386493383414470773442441777752880417519515064675722698536875260313587483967295771529150923272566336526842167449267287230787282623514362956445231931428872407344740803891114508091280613413711390313821177210348520133496776944427432028676217143652002809847934596806755731732578936481212722753696757637907022999757741668670827734537778280940246754279417265429147724885152376020292870984340004011032442330992840768189722373653446834188683860856362345578187379857404453363749620949893790424754835487659283799046458140615550437998538868299674605850972596380496560712677538460259379879512283609836472132878404113402568669206345821584317021302747239579788795685651836686385891515248579632668660795620286562774784732486555660350564436477631846846605554968466200241722676222132772281916233388112692249305350044996287976514382903785779503533330624764458514481835021902703978343426835743462253635292761243898760734340625515735226393662674543933818993744246016582611432708986099877046969672375283104697584746755951529933963743943694021233343800010579407101353357548321906251422316348773355827271127702554599491026806570936826816387294235215789678025433756815102754183506748096599090217833748716111631374200387770564983003618278225000838096867787067753556562991527661083505596981344622701375086938972553108123522440645268664350538032606345280874623131054410873598678906130014156135015198014068750682137090821554382053395408847936022710234725454360789611179116033541311817644280669604208691639214490114052507611473986395850922722300352923443155721417742017242828354737516544757494556034780686026567266067998314801030343347571708242881736001004048444565864243908311062109720159320380952511338311729010264000888804204097546786908874626795011067632348129609512352504948721440159475382265477821821957374459369639873634141475703492415808722476773715897962551353768641636119461816922231413849345643071038617311478286641800634449274555017652717004748787410552229946738169533133399959598553686902967393112817066202846027109705438569392127487900391895747483231011987698022812154180108843445589214370762508922875981563390457275655045963111299021202748020506931394204609216297552034671324287418187732396807358149175562074098785324389257154748039700179846569053344520899486624776619976165293907313361929825697572958219013991788025657833163847835493043696163725891570030651284231985141343700913910663259155557303445853128997833401583067355327505223309352055949018481996973565358443983349142877168773513121324767267753984667366585995255714022204998904902972877409500648307352138341408238124054755194786687813680905728081637227144062183403595184564848061537369073283082811620567874655985478547729406776623959306138326225766987464631917136806731295541167573187420688096069689839950140460069840362105601876512144695944224853505475685134349656549221034017849698916182952773938327458477314007343610050774787378629021035406043219022385638430785306667136193040993269565297096630963616895064164936640490881077950904601396693495985322121550927603069672995423781119718739422141030140960504482985074399943834126262473913528056486674663396867752789991838896916823865697256652842926255811996318410366304815393406180830782901828338152091789505544713242361785299906066615560816655012946746905281812985572209171128240303031783720030973092658682790267287999159585856968724751780802862312587426474008552910025110344412336912337402454534831056220847633435453821259967831950899996881410769980143802883053381558922577775355844794678219842212252488840751099186031537793236763431248847781971540240282221008241673140778981173413313737314390020669765031548922619580502713165626762512368863177019679623767371117585091879680584228703486969740018187426532659242798984268880505981704199638358696227661939986812741864221146468700753683630058086786624413823432260353055450971976362038654046247196845605408606955628898709893799636168731099140493967530660612513613334741151092035667595035796011091872362456166608888234812207194269145162184851443741340105334319587767886543584514816521718447405103602843103405464469234755431325807916631177359795885380843566636936238365665385741279181289967635800215233491844996894894386524496979487680540873917749428272039385675663849123403051716296727992026652171675570038332895193886590124035457926255001589624216855816778421447731997566471856871953033339857043864721333345863212564645787140683610765474051129233925281661466658729870008995751942723724983514526105644202455993555336806876827289834439753913668092902764560317977397891529765702499116681295588376903446111172021084569656161855263341622016492808800790871657209328782975187033994051142056331814833422594556540875415313833399229144284032124354303920679118834160120744738839444516076407708982897145011440634603679741758873298906488133585250709869941372299601425277511556963682569565405635201482709970451332855352749840933660992206360138529715379124313060821489311350624692457152535108436687333607975724894771430208087008107914627730982683192872348711806728489110045844978625862707295728105355897983852917821361601745287441279079535382153405573108280292718394267450083845818389502352990481038953431530771658921293225550749493053398820674192202003359990979076985702475875510275112846332376835030174799794720080991859166774465952233520986011205794977240586703652141187259411311438923782244112915363727912238971420737841740381399186373849393139298135145371989127431005160262081708315616218269881900843059121490654581216844806403759202977293745322291955984662658454992487569977114922965466678831538985815272936463279884531176616562423778959768491926407477456773236791733014784561079239069068326483941658433934159676394662813341362005544232134957065743737552025722996883522333703928777624903952878465870825461599775156684922325643684170994856370568303829938742592325073443266279344491425226889211487472922001945705518008794071460255922038641714037629827785893558624853347779329599447773556440340025034632595535816689437459834962067866366385236330820725401412448497038046701490840747633113490707960065605762825423927882738728701747037968573631954816597259934924139392368042667339077595157209012415590496584330800259515721702680055851994413446745976953855034900055552908289635307745221069275318096633724960348756187171815713957562874708696381441780163050695433831458457460388701818084191293123424340037388233828546025912944173688610091295895132690536308309963051180960465906680868690968098188451239434757475487282856466603682247122389319355252648721234401101496737885270735481448635293617056923281880849868787727427087993973160653180741910546800884674545535337146737659003393042125671966835331958774551660940995334098529686735860132420146701432227106275746471849127621916265658605526466617332504579548816368637212650536326889195670154871386991863558201308626457725988455408897281702380067335220196693940408674698722221653281065277449648563607057645789737219405232474662764765760275868134716623914003310821166650605138925946529730542085212061269822023917471002911716562726506185836828269045292873075808966589753341542230299210629064705318650227415580396557035995265899409430248279094102750356480217870009383299642118202419330944007477417015483678968298053379095824827450506284880845412934919795335126541398781333716031383790466435307250822812561540449141625759029163756310913683135672897554823178414467099919959834213996415766703028414628173087721743972634966001068840768497663853782735193225858498318853402734993298108392453141231340164646682790654200875729672883190268271587472151118799812655209167696031767812148511556583377878304430257879156473999817027707719179166895901300580585743088748802296235170827104829275995632166648742058137337299445353044402492941037654206937918369021676964411552065540912955612111336278886466069751018068639875764350082170558241969672285423322323846704328517503384554037252636348193895057786535851408489808687302457709127335544349406517746487170085679359980203596337598146783963545067443935077801954679008448878699900527425973760848831601351801904457972133202023679676274714108940719235288464946803588695812458299134281319847702409779284551878218414419404032121440239008454525501307200225848339409205315538240193205048550034618695666219540273979260274654176022142869103158871798317646281664670653411968308093803537276991048203644074442069889407173888068061601831334257461540099660272941687692748123010769599977491994289748485464680023148925924330240060118695631216710581106626960667636894653481256627106059891105103889271463252491131948375271078364142268528602467956393377796447763451180161261347639960641526399666784600264244069018263911032861615088333406356409639386381312223418516297177018503421689432652841846521506963481937456591923489175061733146512265027005268949425962547569700459473892009759405861228870777459015295810705446467870361244619548453736294023051134087936710537746962671831116924623959307646785291391620347249530504831014408168351134436236525990426220975700261977852790160985602213950315032358641201001623713567123591827700611995972901161296863549705728563130752609477614738261736463237273555390350654231507264202407715948935422093180935518966092535706599792230220778372074463304131122506029303153343664479572940303385969669221402130776792660532284534334624320454588416642314228072047161540859991968114724463649650298642402041640890203392599989090782837756334583487015764507049180892671699953456581548656550626617004964790662484157198961455131364973496322821946850713631869425679895477048712651133120390179766436909036055626521657115548785099846026482180298066764718242165549354763885036461971936864453558728952201574940726161107651029349853098177250849781884372718610089672038315998619715548837323184624836074946508661077959441693280923337183582895336971633067633663766160084290842218798446321173455805052298162116358941915978706586222919164223397075041234414476872370771532291182378946962431200402989180650301081745504548806422797052615375743891951745805896859456540158335131183128317691097699133398814117830007996437409699145527086869434052853109464898906556745864825282575766446706865312326933712747135484266618712996266561885175175328027607073671100270083219609797577991696995876701589156730722593461788251128313684616500995313368627491463536263911382059867358366879092757379313902049795036761371636590443942156142951211753631738921681612932474340503059341309706279455909880281278566529891646166056814917488879542035413080254693559834275145911148256673139479052849738918326828553312462198336262176900056579226437536203297042495666364806522460616467789166676507840038239397663133370940448034529911079927403574804797785564173824436200374215236025736296895642436323238974651783708088042136483806424296452491025106916324112948928086303966272574567451417512767429192129536274260034246636950072910972149508041867360640568878759404986990426717162081877806298414146747524905107460060448145477101040706416450216978753310198679385179878393483178722883587238608833303108925672659657730675431532755687800135088006088048075545877999289162136438508774008649522546469348313357753788790437510629246655543973598252256418786488171809708273365167639038794415011426557949490849172928770727493114146907495320792098823139307901452398580529135402282225100674003510284785119680070884922893696102533476330844776515444511660127538717384640687779174452901958772915678496316706531370305262739034226468561965931840913709446387709722592002419028886177345661419315964233468777961084728026641276848845465451208513830369345439565950594734890692845404693210076978310500826337930704079827997785974699073976616995175805696334466270853091063016593331717576675268595380293423181014133190485173628351223611576787906927575105391952530652041870721417035364648912041086000894516686366158625653073299937890670115042820210109052803820013212583306170182398502018261882087030058953607084907264256528333613106508554083846761458017690030182462031583713499133512379668132499150752232851310359911634883851165484415533258582896467654312975637358864483618007917807784313721746406288177143091461803840604141939810663925303012150092730700158949496432685427038252498690587819884054389476447353250036249791362415925083147491021479922072108284778095460686546026990092344136594150959921983831908864890703750929267276028122584418112048256390565230985551079327909749828306958074027826786351362275101481800391738972164948345670644312894869228651690933825045148044411566313420310098110028479005184217290223499431780347932928048649834020153834645392515135605896677827913405357481428347348740322192869156920576068199386368308286549543073789491304251339417800132958892773648269142671854714523238687009330936035704613613089174264592332438751780063023878114385169934030489977338863008968180837839256444977866214700938155644977347177575551480096501156725847633984216475586125360352877073806157955023621595706908347195356161218417859829360113208498164636821491495057931653368233619635543649149193334249345215046016405851111788738719728566542938580227297483427675485911782864343237002886056968818613900566325081489824203813444899064924659568374461143229008708699776821452919133807429233034163144021247281659520562526373829691652366204034459989194240044286825629311561267333782881489274137191916095961586204787634871786863939661855113844055500193069274311957522873057177286915220683100228764770507195509780008021363158534742766755590359881337768258980032071945653939119345793373625671095733127314247604954736974632847922477673095901174415368901934393746646953722610900995471327727162030131837755803778476348166767630040073935598929490742075694752525086993785452324954381479561146399176458303763676372636024380027981005953135289175578872729879514125780262112039377753558269734059399749258400187622897817539411093603356001822509921757519682477661023076700986307335339644921523502135520402185650062281354028073162611850229067796713208735821505007398284371557993716034200633305283311668068659586484503822393224339154327406061242062339033765367827504255492667273112206070104872521030695372754811404330681220367425500788202228825939996891018681341538413336933509468024995313445861961222838961385200859843702981545532580130573232026778307436653069411253558966667332414401105013011587051867110887319918642995011273161917229885284061781923319749218368253361645346467260674950779898755279686315833786776378860302887014320055944515694997953802635044505896259889276012525543655525894565090075155859508137706232948845018210712990077946240950367343013904536303478685148293151993212478798352939320844867272541008962573427410265326127241955266513278319106690114597852039835614421925140255161890829717181910199191382418588657282763728852030069616377159491494102689606807090848301586066619506473632838158453937454056468214137486908695777997516097666808104381552268172266682679172848562009402127624195740219932029668933828537129965549194034524361012276403841891904998344821509306755187441135373823295759904124698727893944904899336501415499171436785140038607944085700765958910974878749062776305603803920223488059606205741677837618251827402533831557299693151954893382609703495026305450089117203731557921461463268899166282945590131448081647672212170405317758586582583769380878228424023660801091945271773259850783820831347234459447122364043861155417668031902455559871795615718520959931580392618810679916674848251152792575108173976515895604975055114399695748990492332103289129342763945558923441500640322182554568268534910330303370933131305284074323221233891725053216580370705744921763948109063966360752956122693420847074642500761696996851457137447311473268151669172193302384597701525609005943122359777994245198256153509026061653604725964402837552693356414783225027226087515984052018762616224933188041769215099405428390413917532710382354767137284501303684288479403255357583012837361615254251874785006146977951779321161182590278688927442983323071046485135928185596584636977917769906440401709321095021174060819062751861381436625070416192365648837499597811199563675681136288891950276606622008125274573399496396161734278839149346464771878990516523283300093143912945749721357884141985260070788246980499920482909899389903285717035039610932564760892618267681448560947369615429848741159631681138687825571426603548650124568359336268070531702061823725048008338705240331136692927968567444636876592062390796901488899186545058278596314267931572240151313685123504935907903672943358188504415991613127685523896864010583004501469872220862651384397174474411161255526053790213590437496928586309626367493984617245383706722519711669363780044963991996538348075875445947980984852068152363491491403203999606165536707068327814793835953627372894661214403544375419894254893846709530210602257989162843715691821949073482144344077001723973969959373133794946299026269043696834500999676601317418534473423745903750718891659271930407654434568549523250971754696397150550457151543973081510417631360882821950007950378263358036739114679200125380475040181758333433577317377871029844711353905733145911875172184966749355490179064408878100519248862537591585924517648765114014376625551280360314079223401540815898014364080370554055817929109097132703939501240296341478801047458219304601694948199213461790748114168159289980184181294283944097551418396749060253477880609155508343036672662387614615952006572998418331968030487338137162612941009512655770629096121689607328373467115173916780752238470492003077133148460983590340668938623136235643710022103680329461828761612912445127589406612603354155121598457361947491284607914785029755180463507018426179093725792845139386468539665411254188990351627083102487283387556133741221505858939946862482016100708374298382956477306414152991514877496488623912939846451586213926508337803132314998477803854618354280371101422358219047351587348232402325498752342237350996454119999197364656363161584052114359073444511236883863299677010390714706042820991581068420157071525753318826469972182583970397569990967888103274058112237281381149113790845608565947154964401339363316930804319070046207166354160114540385541213468179620743053615701851772101383499679608139297330768935676425794441618200341880371245999812929299480616769897759255449981250557264536130737330768465565993969710141004032143556816855937291100390888978534446382716970662728865440507848915658130018291186662549723744138823727081213063160485225951870302378520642135186178769748089306969289668354501568814081563564788066727528855169345605307684973417503613543967562839924404117597700741405998752409380979950537272049945231148898461143955634136876284366990463451064763800962239136944268245751385535759666783644640957062441345846492178831854011285707389629998125425842974676893676125552154899332877063632750759749202458245400252309725482438569231520880943220642294509290015759878158581250927571280743355696526550473840653046513465117034773685888519309736033687885634498061261229315219813437873013619117842581604087216551970415527398279605720444564358371974081109934478586065792349488899367687509902579845933110207548695955456892818460702534050844659758486493065891225422239607708636868372940906318689530031360236066746240568080244622602442353496599534917209323530712411113280264494539328141921332796929864540572731421335221535123800097458124015687422313641729341971952466824393827314840517421247098682700804716260850294191965102535040639248201336155082685540225592316752818099008887600440596284838535082193693030828138647016634039381902370475245475372478611439487095785513714461051723577576414285775027305185434382882485317496537434349887530293409034473073724289952569658123224527934329047279853249776327641962784861394641347139666995649345855641558479855713367814795579199320950023042539037030132814707452120779049122293658220224873506847783481738948292184942229670799192900316978424909401894163711872220361501587046771748002485425780090861238033636706333310090128443736943073847028763889495660631129880639898897648376366668327178765170545746700082699631310025930184610220411952075823620908086672076376574456810113308405835111765849365295578723147788015919339820942034428027309910602555027593853299785233578885942794361539362670289822766316063105232985941951068534814721155479763659412891770721011868531473747036146006961093660226481153741910157605156961946715698845792931894422301855008179795831827609783966391046780085794058842676213993602658788130030943058086594871947486900060520768536544720341357690121976193128735376063992982250375392738158969578318923500075841065290073799552977936710948011520386318604722713525286569152470821661599886000045046776536208621375747694849402809125311988852471427227502885763203604525755589582556056032561202063818578994741643324743390976881923922909080860681780594969034364361721220936987676626891325269691084088012565067622606356319181657613195258756388514487053292826909582505840975236049409982408208229668393145995803332384136579876742810974198553119800412897320444793779592236720366243624996566416034335977545149053521587861384506020117966364931661760503018049944996076506470930214463276849860738768117267551868497666203511269215098146719864795191406976275710472916917725265880443407679176938631610004334591118342133351134484721755100144560868759379267533936757432779941744426311226927405836644906928271041501445598234075911776333125362910621731500079400028276008244496340877881199399375962695536190720546531326451118668775234890739253846285037392463575435526041547350565144236823847473685434581913528996308381892195257175223572669747161498096151148294071957381536631200348395103871389997677611525002818694140247053614113361006646017005785180110185915261132436430090311347114021375236125242120242905320520352712985033246200015952891403413871018820046395826184340369580395544746845591905675537933562026595623998621126085153288870761615038901888966277032852895893889472863076600952700538612669782516207683868830989726475852262195551060658890659640764230447262232867296185004055324865307593797662278856528769422676511065422914017082186351358398823268672494357622875050075867909900792335013157264524403344163893711214924456598046452008467021951793266135153518464274070339910512270112109051657113476456096770589790759127137443640697021079301099420084837526036387058345803910252894854686774905615944094999102204414510707523134929065333658461009043218085584028987581005870247752593012135238015506239606028041419369723584800898722604592831590378614488335977763896370582654175542812893080994207732471478724101683370753836116171267822909838770510592395038660323945628344701098280645732617767971097666261724544289892660797581395377047331414975934159770670485480063648207749139414118519844944677170680724309118191634037488206303461480985165695009127219769337126478561261898035580063695258871159461649023223081266131714600385604468544177585555117963082003761233458058046109886650642292250421189269813347359360821046312506572091318415842563574936485358591920934754985398171444689542061093753760654429888179334627956009524904806275616109770100919068721013208616145509742858080671728557423538177337997712951052670423429813946386266689217894214003732413199080593910904298334877062311710600285796442277944771337392172150202995225564613832657474221276053391361191509985068706078153288574752100519728279995931456429232265453820318798937001408540480757238117083193050513114186393267439244548528009058765438077335505318337856348199736067143219461260550148854817355450751162808080218664634568249364962922042169045212935477610624179231066939474310994216709994796509129297570476712035274635306930691213816393465442667942794845519406287375714073106841857568628003850200912302553287960059557648714973113431835079327085104668788536493353521786069615053057881078097352260356888061730084913653455358345222907650898400990233512149731593440758199937474132700171312746577842157159222872480457563465531031685509317014149615162539950347240559669949900325035491833103862654354910667773758727888285850531526333595285304085410692703642059443806431263181087327911882859740839271948113735120791010216590670402458449337722261912495688904750445052757762113005001530965398328101964481779160427973488950456941151865287773369581497202718311126830568663224884700973518899403546378560681342127996406724975587978633286298784370769217043662902139671199177220049403669891128729386929723777886695485294907597182397617889808525040904888907572868345271954011546419691220469214473131091692914777769068363747157345550040064402386655305637225873699714018981467930759409360440749997105144454539892846324442388990800438943570227661831874427596021943988767591405288187141092278675080522330722192683759525944868975570876659926059686256651640920949257575060564873629331958468061642020858531401144470651908503058030161442383151773620963759755083350078438920795708700755954357378073110758882190758506464087324413361016360943525358686313081909908899100187960191232573302614347379744770170364339766351025504002650646257676455583342823296486084417512961440839909397794394093638913330364646422967806055395747742446535155631209616018309293058751182940710739559458840944167418395811038657377786641662722795624631610660923879611807824763810344893915386796289717663322265728100096670632366353012379798156976302693481141947381040503712508812900500385464212108817480212409953109714961246892366682736345959840669816073607693719415545845400928112458762975750945175115922795281003851907777830060279431564455325553885630598872498124799128818288974051820576580663930570327058702121802166491102101193362713393725323045255781982838622752166072783932116087587854789970873766456797191206058881516381201591403881762077929732560667494258203047547539707822657201475435219924775170078179387492780357321737903915265677757100879976262546283295993379193524514387070215555873850848775895752425257806301431127892949439044068966408974571704169045567748102315717985625324391304119123228904919527239246596974222500418371760805427034276228451928088483234746257479773171856316635180942647729528003702684962805585370801720802814425716581762611264031055637982084398976651544988939559591375474102597444287361843120742942669137967779468929537306445133128664153945453967770104984544367163051430322318204295526693334998570264621498580365081244848625879778031682663995951599377918215011052501153403731821392746223338935738367787690660926022439753254147586973542639881139589177006654922808622121775404220688563317657828012985189882827325895022520854244966138746572303546125219852208089398701968856049969188610054058748667619384875487699871291043353226502180238561635793220535071320338513761734797823614158378245980143112543047038420617915347404674912800107327842667896774376955759193787961335405760660714688515505639819690805156276572598687600547264901994316705035648901991799254688418894859240419231291764819943042532447922199712031271597662073239181825996371289202099670170434195759816574960700249874243344442913207810144790617749110019647008230686187298589465614728331554419251290998918100546258875485835504950357609173698325974826808193072313102211432386862364973943242402686759135498366666173122191192847526627391553386470388131945459649790458916862059248154882422616872379088426407470898299510890429926584072246708404490847806778761615979123724268746693205213352352913927992382603993586518460991475495586782008034142518979606154741253877280292767797804753913653444947531650953399542673764655345098198552760920124802916499207430193672112032603294223840011887797264298435589267174545717332356123975054220407237571782920020004123257165623745975114627816279733161402569747348733864560845899533920804390225880687541355360776580540964112656507406534841932117749806292043716287912434574976439620910870656831656659592593247235961140357055703246293408758960728383175180218768378515167024082173794713308257847604161831072728398086669585481178441364375323175323342546735567081505389419816214894088172018483328146582110804355370937047728534063667530872467802292767784849851523107944801608179434677469175327095338015800584249659700914490952244650276218379526130240674872588353294704643331285060987198179425962384946547747182283859978766074013461953103587798953472142790953219849403726690851991078495240937464458333593944944824649655243816864051678927501381986311522333379582517966599820435090417806130641521302709279139537813197109897514205057790678883936643509465120889940796118736577192249291443908467909620115233376518843128069010502849553091475534669965202316947424086367568569522152469857726579174877071556624139326603642554010848017194499063753536438355143799598923458377925043911481593512244225489521087433823956461151708453752982551916623231388782673803360203132997480868118600097704220276149232627787368556361994007244032975877636213605872991115671506155371760853402153570370901447611268646584799586754880142138013447074164460174697994391011746105417129807330370022854905917164753657142607495984738975647068600797785094151693163826581007512266385520028836511238677662575999718649699387513457929288955447872993449020261246056361204027532938788092560184967520595512550822024716955707114715495911601667759658289782973869388425679477375256400501400954761120387677658562085215179340350590475285779845703327271954609238917379724302727929212152359939928992950460485768835650983127934939408195196969095727991366413610594658041432086657721431236032842078610112824975513854803250900431807863822037072367111848532866285704542231440802786652704673939413457835866141865334081107083682354469965749456971609052602736159767246581349229875253690962173325628676380037011247245125778371932857082088263112367386061052502095453312589093790325615471308155378544503982477540126781709910773967323359932341925441570124844199245768358119217744907599513516015400995919069671666597371049200751769903777797662521421990407808364787668694551606673776728854781170228546560674704905765421662748392186864827993603931038984422869198585655846743221083722794390542727173694510516841828147210785052859529163679063761922384433933097332989621454761400800658868233434065199089640746783104258345687495110978222892145062211074371911843537412213143679261781830868637562201683505356644519609303390137655179298842104974700650934856154288653366311749433270136721037180849575538733300992588747875271425589956497781907092270121925739639946816512743191112809951398671995978036212347707433328135897822514205677020854562792243942681211496490874710919266548366450284944105608390505105544623130144094146086422337890882960945533444699972466547433125210242831432551115374386610291931793043499243786824820819869740368022386268740266253692787350369960259573801683559336479092515169038871046545731456176784235975752762339142431011139545194613698154391939055474122589667643618871693259040264790427926629856399355680741695062476498913247692750754917189940721762523571182608583016701955727168167278993715230327643614578278563912860123057018866589877587105700490429831051414778099728906724035405388427432573559628134820845027881876257464060005161947267886727746124934183668127072299459125284258692101452686798805999862704578772087056217352696569622593425574636410317985687471197960667701871526354143205202827730355539355656505729840822272227543471836731053905364900798772679909512488874237799244033815001161196034014387165755432084206932289123581476722094207546640463095817640576918778997027228933496990770036821085712607750791963470237594965953585485293364947524845166270053780502646451033968999371510328706649043058432103561754650018643803157519435607218495890422718872240266358180569291116289324172255671985114835278778769083651577011436124543413988102026956609025599853500192246875831017670401911103552236487784688751661180273494817677745892572411830085704469960112787942308810723718437679040939328298223628836056978302024676871511307296200070818585291628332215011142892066929832227089660640584276669940179610639564671662265275615599287744711724437752282910010590096464024779191002042202260998837496515972064672174199707445206088837139295043293209323737542734955874803718872690609287561346281666891001093134900429950193586859007578193523063490695066690685233372774322128975970527054477742232181021767943946447866242803203857238489355717066418994652995359441271113892109922146650453935745669663846002053961093392930116042212855903032508820356047758316684468517843782137588669943588349615503908327617398015667757769458801938767987878370570303962618123845018576959619740234061679362431696713849413416525404678488943546513456486251196438237555760926795804579764684929874856814306276012111885943463285252396720825851202821779917945653956722389595332320664190091880177384248668837647880680933406020635035805653683211086262239353737462558711103816408793497831474291423489246748035737007895581182632215752433309472416610395177738865226971736429781810719785731725977133666179970216832140309613308851015266009171724964774858561412052399570710494221347142203780629421859643093390474749238772012052362255257605440061541263871049806969789834842538295271414508379137941658897628712432008206177654305881689848665329569647289178211838524078928046964126021612313235328160469110618879845826783462220461426487759273799613935208682523914235482211717972383882014118706798167399214730762612509705988313004554036871269377220142553480781964511501602741832702524914870414772738193908314061701356502679364055690837303175887664615943986587774592330702547623722364317480233372965361785333985605397198301404435835970620682800341426462129506536080163368661641879314830700144094442178971491181599988357130240824885890614608549146792506835620773258677307300980523156272707809270375324953420518187762456777795323672286606832456142167352521717536616424173095371324651086061304423423660764884610308802402847208454406721331543155061967957179649613827585956703910746580765143665364821117280636670662528232383671603371075559268048438347658837866328578646843673085057314066449457956691080680195155693938109108768442690484048978208600177120282059904492762425340555252639202417408336644051386095217152321766896018447758164597517175506980716109350044093729985237951802698862225160788757820788447807623617554232014506095384811305723051070721286127138227137947036435336475741159876036393804647826541975921721223705324933369967810483950515024185215559905253329418965267679946486672161947253083457927745657626998180394328609229906763704114859419642370574748448379488100023825785183168194723136731998572662854539323896796235098150868510808179760205225189030867623255837252255678714763155251704143252094353752974411042549216910304494071474648094778903270761462519984351713363405097484676795760548212993675367913173463853962204272241747306156344233222260631343867160965897906961861669121115084644726396336875392089075221153416994121563515344581829673897063248372150353288458355680585155927631050664926430120390815401842942597511778079129367567778913085873002446586643094657640218061116283651224712708976522860237878938369439474591570678103286270716272562112071389234814140019514616872972335766892178849564894121488805967113589657424302685847604492613998668437725085404938902087480655041670919206076112068728505072738152358154883326542036067695775590321320232498031270797655928674081888811350321316610226293097462991737360212295289916071772972805180129950514755470217559569843445275483103102246141557403351078646366298342330176219098079759296561625978418951466859068981546610042785762480478439966342227086406425941105121885448423785699527483834675810783761207673256138300580136957259945481323908301359190504378626968028975478834380513697087597164241301801433731210464164249457131605954034934345375443091044663187238886085447039993463935699589260976656563915325461021238679684692914622630666792411316583193352699297695766177610350870322050701325844358464630441902202615535378214619028379133904485967772949468309619153818452642334497624558591221873385978427179602344414330790939840976091370948030763961669433516256777131571424995261567205894716008858887088907633217152802941942240539991330282915548819532439468017322146583038424481539239758674635490851954170756981107315790007776397698864980256033986940952849346276502518391852111329951452156170871723156687584579767290571103570345404399357962241838578712134690903412280037964708318291257270911749239260722741803614067619503789154642228807551677700357408913033047120906276618500635762566357686561148003260078925241481552479963756400154006694807635223803029210504522369456156744906159678933435342150723293098252918968443366553024435824041290089256919704783301950988664207043860949399293422689862956272500069968522960636852453376356109203136745567680362990024405756223335971241212502869868323539324341143371865413992770571715166457168260787585582915104429362864163995073073317237404488670296033126356216687944967155516013979974619436966109110530434862881549354095678130569534515706994185078354320094032438954377234534614254246898167645319832868512602319142674406306907180487258014272255783031412302878940680231701058064396798740344660844210192488431099513143587439995584974010898713318680293053099624962866310905330914939974907234228843414358438880282402434948641455731764875754046669091074847024258522905536045432307635584004592878602879401826429563042908428885112012494183843638696295120218051642705654891530191740430305819780474609481276366880678110610128186541109417236319296946112058412281370925991463450357308814809435871277760340852035196854176390592680186794779164996635530947259885110907793298577842955864486331924132693259667119220335258625939603077389736825962479188038804403489725988718424266046608735457964691762503843469316945722446282412817748914043475533101116168930023700243312404746824563399522762716284837011822092964731526664662170986638442773280067778882782261298914787917910465524620001779682576561114889203754435777615542682713612096901905226201380026806280851522282901717653667316135859878566172367061906026347353780171949799674013611623874110663376834662901971818489240488204592830446078757394946996293530131816740308680546029853637912501637047157718408944529553188274834410035210084314542485596020202088528138065106028907685006874512322343206686552201672287127453140433853279856412555632812875997474450078909656679307893225059474221866357378466802615969289986462030475554283937041166026035696325330640560630709651377758258672164313790966066205116334116943739166232208453142880505730348583568955727716272862392038937140546053915742930162483369930920010493368173165427705821706252789107118828194653415585591274910856882408396030728632552258825564001016023536435373795715762040797526650690515855281746238922570496598044127120641603835983260264543547753033519182251448715104284772030537475465706546318769569271965479110809090815881002801612669862515244772865921956609430995345422740613008821391354076029374458363905350845990617479978083557266666344271929092031782187902078080294289745627476345981325580298796382110048961128862059607093845106453504476287394855501991302857823764647079604520952776426169391644894903292485680621900693702039684438632006384716762937825867839402303838356277243218661160749541913030100676640064605990397324220967484432142855042366313725710481237780594726908882532643816805903249333901370913380502105034807785851606338011566439964467587107516776152305215713107801487737539598144310631596066654249040800229600615176368834732005483547739180778911981729821511493779585412495229293755455834589154968117330022967699318835719975825364185119337002460462726196939121355733457463600833431825949509508405924570739202401404765329721096468820126873378383164815528879150280157368974068948817277451129156309005436829079945427437434103932812103712363863917622588291873673289709212099732805276600629154064810806234815721840201146356945952817430182545068504460074451022704529068398216114922006048336782772734825815698178057567682659202074806224972790109567412126873178264627998675429860720180558178484694752084215598429830400044589484206765850323605068268146727207623610585436457216960194198367485390638141851395273256284856862261876640047890510797001133996214760965886245461208541350999273559609974931171415005049855459557370106264682932648198818037523193800946773493394461705044854837264904588439686391018529376394781316392850219683338653454903040209426571868048313212197435718689225409577587321609624464049598423736531651473735538784096878455056116711604555448974287751802760218834867038798188183426010503646698969205700478755767064326416698102270452986288149097365410722655584676517040381797635223880640256470062393449027856444009386221022815402700878280284596741245441207271125788888934186051094592827582806260762403971554262532556659179621728483345779006930055313183871140093620200713280756904187306790387408038376775276319672900672055287596995279683136009703903691601285371771779296611009792758998734085385373650369733370359709275762628939937388016228671274223072327375921370491192416962285915694196439535497341492762958056903466570626417628872445950435384325255587060275916779663423398705146248754180479640426663480894530176377704129171608138264614612003088083229818239927308382165565357939635646767641485847555715703393532194420223724797661182720927775542518603286184157972394460950448855241546357722553292143033211882452466152978376807434773272484978202525442981725200311609301105723744296507357855218824335587121781652132662608437504519655694591849708910659566756437205943643848309573918187954626316671892465580969818635119205325341526246407962335575155473053562791077671253311262747798906091753734669769229708647217723311658680425064122360214719377636871521720241622924415848732208717987269233156302429091794865083055556219656375953313518508437953542654765448059626443952605321793897887108580976969140184079479831919764412116449751389984160761066410015895776102754714831147236641959777769505528061738505519324156045962270536784596695352930764907970755817545605310372489103663582447192115972513731666719351063004243952523347781579658705193071314420381517426994825787146856181374373625778132393561299189122971264119248968874277295324906894792091865511769972773994843914539287650489575530456743352321058046835995527743680257583649189940828057859000480315044894660560152844842805898063696502513890297017582318230651203040943472617993012786944586927434582553169813093833859853151505672254158327300198432780045032866726042631359824218448293680518145027495361477763981500910269648095364138610827314091728646395768441588533826395699352492379031660862158570086872770030310713312831674485998321979493982499585772244129862703022958377865558290599315312337985429832453402742587117678389204217922217893719036363911468081269445385420818748069549778483095203691716128705327624667296948348548765592434558899100812825124967635528271379265575896879553795965408753169545499100082841030743215404846025888197074750757782125414296688790068597291552266639836346554776976930647447192364127071371537164634313242748545919911782673922135833189678068869164820130509500124722308143691684463275036257300703060822708720578061350826653805865063883964938336357919911323140234488160427535335719400985006059430984988221218364512068071863634134564169537453122672601554474826125614989246035828182063391691722320518203540932897037715234801104955943828237350911948675878232029402008516516466646287914150994220612323765904762362044560365785376381565622433557328499286042999236986891983031742442725530384704576343054711030049536653236734125800186895978260214616136112525411095931911748670165956076228107330776901222482630911709908608360773187135669076535127401855293956911326132561513799287638374113261727234885340762345313671388758020697441482785453821297740243130543349379265104420283390668705908372221360986418179117183107577398548447218632156619412356267011278818068060017703917686726890112615242925646332483850161548800662393449085408412310878553210017992043419421543874043168661646167632349337438823448236161448226446881295858376816490056699756811788013898359194390921558389028254807326180482264630704785410868815672637461783740104356432539915786972625443755913965746096376571856544287198493269316504422150060237095798510438744793396998310751210069692047891817821583576668198700813243341218126740325902783051861022443423948810964179997274880480351129129474529856531509526574447599893075319963235665705314254203806391073146573184111266598901435379514215912579604089120437705507838850653037855453999508809649562777381928205809455558570521574756179876183122013247395544838420924001946635246018413580048534126161803816725266566242921457899194434335323515325203594011315122908760952321113898481816101079200765376997330135738328099803023610304196967379036527050063617725942348394324838500918842045506285379960969969459072710836578248175374399005953009414885272577562022641636708769816379769183921453865161528485715084110438140671104405289667982090135980851577598665832368102229344962342598629114113380668686162407031637014633767349697806969508443120664334204245753383257419406527538508905896052466761016897104087929567552518014354635321588253792750651400461680706065385417176502779868344616639388078791990502219223382023860356428125744744677640026633723633325494165070031877007513272375268915805697407896210015794763145135970496146594066263355892485775702379285954272540061052342385687539488832757395647285491702423416095427517175287298169988516988510161740298550275390485503886854738455996868977588919112086596317735448621571736702254814288321866714408726913407134844527890371059506024298353137415228980415624447025855495226455902502458054359146181809718124447512181718281710801833870927708816979105094615362891132743596774799042310155468850829010500246576965872903611586196568928873527449188898352101322645705356956459455968881139630878313712054120761310172578027906477173877296068924941135721216559301199213202692124083200033968378186740199859285301570326692970269676865535049372061118262022902597041630229378436387904098379296141660051250062818100023537714887519661899544158608290312022312911705245049285884659600156171919430236809740616862683615804872538269786751089966615957659024685113511110844460755047986821405436454180052693519027847057510258489574445832846976927558420728379452639685003331534715516236384155862054292520124367964289837774484113496992986529871000099027923975134531027328276451675160041770366689350775146696294592021881404950061811524778444502466483078256948802075876564468901421631420760734022399564102689233980387539793626407001293277927278595491691222849286162009373721834087356535282537053004603933846063243229924150459743904078360885793711749940130281686013415621898135820347761397966637540316545297975227137993372376367779718582788404178042717790891251149236430829031944252237865886645431622368557326057228019139540898543283694242124298173283469303277355520718786450800023600377055847851970385607874294851780353041761032660446380197755395166754517192293785459805915096152472303432863788054297737891268796780850777747190405184527483018409708538983249190048001195022737692629111116025258950889328745538819760385319971174413939709843911310673081232281159851188344768970299787629800109961427283783877774864315843873309751762895048338538015284496921070430044888602777405455979067713217434419913552958731801551141197296253640285342709395824323210023383065298722395368579034586023776021346199486780840139019537523098941549673519585576491436256370943632742141532406370403119465592648640047906394221438506903152407957267608647449938116518979291966413224220712030692191411881632986329336988332089988280706739703801373542002373461743021322793744197739685200664240660144506917581216892789455761698319244061376847893484840992539617024592037549850793878042410069593604602950272206481869164147627307040041620141383502697171957284039635726091166224848577097121827172775126128566185828900480909281200564871889364583375113798019328529387789606998375249829132426745400559420964930534332485506176565575780239729733898260547105225778524982046130166788714404868021960826814879616602901200907188982442876644374143275940074806027818793589401167930081737510539301110353983541572165872045334062381660152972836893147770495731581887681683360353898970860507080788874973922414058745235043028978678310473829687924270213708292797899124770907260795212888427594617063157217227172471404420924167960571751608474405413790435524161984574432932491890862261227707212168502550220684506303316668729028919371454644877407942800027446402865428834875943230788259798338525920135929029325696859928851401212190549061862045713201149706831872419648585530912927885687156018273193307133415970209253517060084725236607209866202763666724978841438526467903006772945605874630558749110148047519906973127651051979858110787770214632289819716659815689797028602093960534258903260627383289506702362682969758258749991292844820337003674241706428820691396489384547436678793943630107309541559410014099598351755344485075250011343422326126889947348984259405629428721586739353980869815948124993506813463015328795124509651403772115959368281426412392287449297879173095023151559464210924366027163524331352307279609225376548445153295748642151773274172046992628878936360206848899268067170837149675152314505683131017651417512053568009511346404054807623472524244788663300009373708964960158592338129706005478211547408970063531172347634717284891725129545003166970858725490982345453217958037426654579031204097264867345391019191674433831198025635992374390995816101433149633855286266161513975805257473957725196567180214541685416370632525302289379124495009071807854570871801454944576344501460441622912024653382594696120540437911770720409721163464724622517745726680829827680911641515516821855647965238121311974202887663450294333913443144435322916824077474836383874322945040343956738554507386175697036877379877211016778776308718401922563756429967928122791568413677861956899478013123714718444887035927173506655526522323437441779524995527946963613808680817648458694402414561323936788823555887799133745763917803702804684211330675341048330028191163730181790904230016818048866844745120245537693927167041740666290384237861152485548060023493515656000469364196311061703250066770569993224640081685542494847788095321237155233631524610579340232108317857142965785878378946078635699206760614514174003434041184063068455803272485649375623135940235626012952530607853223568799081503396149943358898290817868125271312622250830806795489297013408704798213557880578072513680114015460362489617887352390351110946554311565202723632160145217344024919663949598212006197908381683938487576878998461778870796525408038561034002987202952052266026233083950038908043173627628598976951150492928521077349311289475415354848172628178368757424434486965049709930485634599591313913818775154054657734699857115067404421399150461906596024437198074725964581940414916467083390053520773713009458801091519737775210776340296065744187933598922957273690207772746898325586767297101707394242643570842422639910023918212032668078536454397895333913923872928107373944152455635828671556854527488215645818958736483813250513416306634159917925033931608434546171531170265820051618800236932266390343034703850616326903979527335463478333657877176021910757776529712339095538019360427008802541857668447612499898673169399187072457490818009287406387369398962172051906570123477577454007020322411618766977812745580624258659332806275213990053759306984762138960091177894686391485117007495812598132476464663529095072421202215801654358069166363850034419873665787324169877721786571145753186153584956895960654831759753775173440601485190265716808576913007158556981744041087185648496530395669570537510896661948925818577986522091707776278671941759169074766222315731610217571785175944242222629857214862243816485659921304518202478231682373272814524121045999473444899131169397198819529690827828057202196472820850172024326641475681462855178571943989087487613193065411741959422422393738943871667459324848904757785600112151525794935195402936366425854023578017287533688612962432634450530098810456817379611608874868891892931629990596008821477725918398105863789967475311533154430037981318719439595671172804301570781488775816953291708917094458796796342930635876937433650729846756804655112512586072086672682761431912468365439458870057282222038641433265020836018563596307028657515583794669231136410169417909011963927464605126416992522654598855380322815903838327768185575586464349826599822514132968424782140373073554236292385176997039134261655589327250038764515158467631806655021309437144221443545023931995650067047849944738518160105700263916425788959736266607817495370704020778526206590945123948832376976079887497111709114858220480004908601736427330538802949034961352356999106356858381879383084487252611638832651502661813915230411828862161037017578828407085282668460208550856309064143405569896194126452642977483762602128375326120960725398446455515218501095208866739269839071797690303459148482139820978611014349727915406295649577449475043053763743314281977757559923733501703783757552808408847578035199958119597135956412061256100307248560179582611223134084228401880198717941685172011623134195036062278251142802829153622004844285705056345157007101904413726413658605901093834963551505574314630029542164347294709018877370122473441313518290329773648690164132877088906329612648944066234496183433822335666565666401303195867672312892802397590416876237138916443468122100403493203061470453059006417779131191832407792167184365349120205583942442251378172008975940914307383942924681032319998856239960298516419114586958514534362354042336380796033078375424508618492053063830292073602714502096181293291656977261068438168963144049169819601125457719174229596590657655488183026872166111448683748196891887833999321454653689439245088653744426249179412666737402248947356353105326267376212943926613157100094564413341888984759385298994632731014895448190664052596629227554184733492908214397785585625282578199418944235733526032848307506277788209937288424120891002851627650261294272017186089568553287290939478208507230849334996268666462238170751977121357517966619892605342366194932925314306147413839391421325888974438715694921316258876981000336076415763921046419996765273518427697428663739231648720032689717697774040231687692786529470538099190342939962787605340505835509589310594641908395389481348379473843233305066563149931999573342642586375537487042814142023161252586667481329474206478787563919510702958467521632397529834783836355613351210477241991316457257454990581376863246416917167640718352167181528865035267882374630354067414852604295909052525974128203594772951386703293219951175176242322772868410168850655750965203445828329365994114068517835607462064948048513272179305952484890017007154708573677932938015675712735755962949046210921020265616007849385138579882962370655050825715536267664383414761614705435002279686505337176625885228089881196808929197298939255030719863183292137644548162195885355285667089082977113975547455674439846589190805955771882246290346812900698318507680597372278661849641276410345491998478781550265417174922705692971675295664754754957391803254186248338009349633815052728733583981553900078104448015536388165105612105623517841238477683957613423047247377171564619327019799123311051612975352467977248829766616663581720107164811059519556107623880008564684741075597309890150406946024603733768409290126213066555254497126507003500712496490033896695622411388897105825678144894714470821752952071161762883437781720883911537473788863600135279304473844947251565069039590111662584284376793427975498816507983085568824798386235984091827149062762798106488679132964306290566943095361488150788557795917240106513666011838174616298218658631970759579994495655341697637534118016108503233557034144915532620227736928866747050455370652327773578112716673494121450986378829229802769156780626966721252849782823982892476918116466359312080527185987087783988058180132140890470884715927421705387928983000482615890359088506495863948382639903676241409219006020178099970476797491146090670597214250905736349655154955882288454364339686281749139906896997351250681947688148956626218048662656884160189981535066284298471799601442542816011640573019215783803176987781109157816252354787353954252662426396594396748065061174581398184528849274464089963661367654563413577069176123333120090134365744963848122173468920549106868776605199650067538029364617160770509618658519512304083601452453078331523116230899533666903679070959848111644907139945828596173860759792518320335295195954499735920160515863648713378139428382188372588799595248501923621647241362067025111095761808378838129331160240590465880426644017370056961444526168623615915402595795463028953616317836496107103378829443298267144070412731600432739415269170538887988483270339410574472623519146731276861840012340547824427034248573589598890217653181559300496065578245330132933412115974499603383503866888747937433887962367488642605241860426187885767564444741137386227399275335036320831622911873177180314364015739657362867139721451192392616055481555540589137041403113284741235359046817337530961703562694334889140556230202961235843756551729202872129612545987014513324548759528744861774002377719753589242994982800627077445317616573879014958725554191208189193934919816144888112355750988886498898763859317653145679010180719973265282977798404603438445824200577072251786850891592468006233071932284421650907148318042578543676492660391318533341569633759159329378674029035630773117971799758160857663594262639700896783339310308478706151609950629891283867920014185501173529385781934930654761336474242783392564952483883063347758419295626583997928543887836847102663780587968311608258321206793670784787136070034208106200544087399999737505974345054316405750672627181032961880013855854409121527019584707858187991004647211220446361431442656204040497338254003498267863668639702813632377471528064241487360082340437862977293752258668988999708736515354799023716505075283149817550878165413585016838057055624832380946652231437598679137894830012981585698260120794234870866210510988300963495259172298059655448741201275275567886859660207416182341405730457572392169532552028929466209142967485595308743180420616591849352688294475374220395309929227469700834918171303458787848795640966089364566396460502109587350316870231372449235127257938936764236115804154992084207788918944116233058241166890397649642115869622589921519494939592679058711445057690199495141342129592433286115019468754873049766614496960693220443764926470179528463657996285290249408137940028149891707134613022153244309801848584813425204520437994856744425881477116171711107844149815601343960164238773194201353693403373080180767871120848043406724062732780459719196325105945879711614582248101888649928118022102370152360016406369419063415300102881618631822872094965644059612125937125036341969763877654533298474066689324081025660827168447037824419939455028884894113194046144820597837625897757356559327992715338653269724228068677559153236592192130732750987133314865771739855922554622796639871364012854237778450946938219719594727830845767439758950086321356474310014336619711248700372251234958015192458772612612230540478090857614340741960018087894057071050164792270281977361923904891885415461993442046062657804699687235479928653273031391566098506599798380580549936420582031255352832767583020879739774005325679319275241471523587131844293817762214329628237072599201550735469305045477574467163893297213301970277335935072287326397945151960263374019770018575570380597454358259345166810497682598715186076268478832599224180342831554102369976794119450706665325420487175296039170986514353630172332859438677227537543159437744509542854551866334416884890796359215662418404927193334207199680260376020460844135509113559307032524555334443492788118347832430303172373634629820708796005224832604757917252774312827962500343506921351698591611314875889450355829679855870176443103020115652934145825829061596719958813567993425439131393163426278762305371321005563663438256653334155040572505388396426890057015245852245297691356477805744311066077565213532858475652911155771140259968894679052116210274794407820307600779484107710685928653286364312885669462325136640217765147832251231616328522470615297120454434090059735169447272146397583546822031225886793040771900755214687162181892826837883832214189298247167793979936894200987035115725859510475249588674167299300100447090865615231214293756594571658175003360708643171626664162828675439060389689059378780239210070011254486271098642283950104559700567797684067476107412985314026106956301104455861853946080145850609781505662944773006298434705022970697518699219954611427436670738855156962024988458008762125824750755618348681808565063961111753099279842357793421249198085876972945759788215006257427518524128496978064426437288012548201018338694366077272226227052494012399031822751501854515442365276706967106011745997629575236314549561097512820021303188665460544369537651561835016654777075002925996995212095588694865787381817938023001684043236390172966802311403783155310487752561838187070887623532226385568707246760331529892312823293927930109901691255186073518907082483084443534163772946710323100648540057844771734671820579171273865531443792244737213711650953546130818036247549043291605561769411012807347785809930072762364755476629065412401708373853126099403554224348619372618069332663834886140290127365039437219931280374276961195163692032080960218017121932619230913618028457951426030252033143123122447625278850236327838536982275258962021967263311898134969088192847147110879910224391988477525887189375453390036735103158378218346036727254088003825515823971622251221475948436162970986389756114377837479638366894647285454285655283530658466715903361119245997597614555585574001550688273909661538145748803081929509603992085394532913425581709169403390825350003885722037902946032605850632345912931797362215749661935697570866491533939695797464625442373779718203246817979736089957798101045010839464600203942694461277712324091385035854947739540876796723960381108025935835774756455437853276836819062074700180745643365761278946390512869050872166585205868314727369352485170794851245286812767423140166683716795266290211191276140271556987247527647922918968699321814334223893314079407306900812083787503887567792054996889031528434031834086696957997998164786554835269400401362338011921145580879828913003676236386161518310615127322236769356166745233789467602852986593767181827908839111886045162535406146848580699863200968548070206579003532684736876705356859304880940617507901273947329630797965321934373849885343282982222540374838073864066111235938560983258661426172122550952774065902938833964709993709264148113408893341442413877585472506044075534197287610244523190534270768635906452872893250181764333697422795336228038804464282034109113227441564236368975015401305775941118971422356764975658173991022728494661453652937909409026499288169592250645541270733248480376994454554113474792030337635881424437928385073217347290190521534056977191468830867161153436111528230994552825503878924004252927851927993053970066701175143631792997009397283009918377931158476901948025323472939063726538289444200315214365599169877104422010130924153778548166442223619489695074091585212109368273933321946177831444802623966582662252814291173758095868246605328420146206180633604543320732759918394905372996221670480286557124362296325803119597153256004229518703256326901249108610167366845606089026349635432972426230523195909066939882683256101632398841240443796384125939043190081556508636388168293936535786368112369129308247513756567021744306344063521215838190934098950085259012482966581548424384076970615365248992526988520907288057773329066480096876576044034792714704916215732243881690498234723207272496996467832692819185191201014735193012330185411423278665620202934469564631408325269600173216964927265331679747326503462542302030670824505388450097139397086083776586024648948190894039261876409175458066735146594977388489040292606333274880529937345296125857297274485220440856798954307420241136246009740377677651547262917964097102150710380121672954596856952989952054275247172823357882515781537942612994961021453529880602327768039734985834157041735304014780211320559420057029576647841943752154576700210783059176470661655340077076078007977418169696264057172563944374654323641668842934830577316586307213302740149041999266698314028301205703390893399555724028781973966543057760744199199853496559097749091916850035358207929001272161117702605350986506628729639914914133474698792213269451782692415004231197405995345219561016179918736068982739783127515213136321123852056123989342079996032602441253568601938382448851895100471368775883821359455114249672687309847777774396662583348473808493632149258010008221295286250422218911556646612865849187268856802118102802177236052192313133311113751246993468276366529141367752970167493358831323396867119903752376946796284755600898628704815590310107568408710138239721780300734303326959254754692432330664994485394434015622536248767763864407278417268013618828066115445356226091588331006948527657353272699346895698651566575066459136233462630089778353031809757975209209864482100449014272215278198129440713804133958334596290774629195595545476028991356166685993928762811978519592288533083344570741689044509324285949958222892176391468024567211830989711403849842171288038581663850653773932948653849051269440916266900751895274752841842824092934975328069657006604656893131203997783735964817597799903166781281648085366705076285601382740030255897161002679484413207341168227121937097865221273257081626926671318264454069591318035365173913217438854909406331687141552974506986449137686491619653697315815876825723997954834313632283139501386934834627925341141949440970221493358248862392555582309220877590004744701572254710865040225779654652353568685941998562007283558581595825383748044403938850810714505427309241021191280493263207641642533213328543104641456823306210821879645383245933773592583055412609969631808198852309132058175691837261342598527862639296992024335648075243690846536437136614189577885192201700916060664573435991978173478885665449841762748336406422942952498319588140877545622694743386523255645433388795188900516782156956972829961029805655840676209028561531666303068510387490426934421957426262576444159265632248481324878225656406312844133310016596815792480680784339888499540377798036439648318589684796210638271595432293837004688380524633783530717325244854184283394833164808792031454852972470035735854665419085117464642135524665983166051828250692962869013124712649442536207534233118520394119750642283722725609570394542791796664599115431318387132432117643808088254718607877457876833280384367002032730712406531283889989946083693165179936536067230660607042070344725247691678625867155820363746303134839944790667045304377868239207662132924923117701715229842388449813305338651383017671774792059582621083722659035617493995983627717072200357415634814050572495081466622500118970510140546959529249068568615724159351458812269342961333704771914034014867551579762745219692480518403770637010313295364883047559548978716843383609221646737745561499530492187552328887470646693107309950826000392867505881946680331983088510112651738162610193358260567107202409726296262926913513887712524437539236517019559462569649852090917261885599573569286712710484482586148055206019254278466465350642645414250052203170464704318008426280287267444584397465708358886622848267607302780187008019442644527557928650402682165540168795314958196302282461380531000396099475930845094960799106757711390947132391288112003695471034485309231381039185476652088316634638393958667701817565887003457283463574916382568511449791423744377244950695652968520612765952413641263414876337244488011659933985609386166853426959494273308789390331344422886012218135067061671891216520113376636614008460030709315170839427222317771447542201308654639712934892462477734867141572611488723303528641456774202614851336670311557625017234478331057166851869644210650058861994747835357625541990608994476648214874241569791351046063605732219602175639385237904461609152524259966660438706048378476558891544927661851657460287798104780189135764188737522225678566199134094096395025717879870075923579828679064815649533044684273198264962828533560113506733492233381272837748263029782310029162382265300614079456650128791113600046483085810325741487340046180612526970622811576707305007671172137974750707282672725763696407190811855437604087496998441109388201357362827015110976739081226004052987795730319805105380525425484736158622559186182306770547268864596027150225810001677892283882618793060694254916290365067360778857373519532739038130507546241611981936189857123589547382748134383732545107656499357076365006221499117650998461303467548442859459236232542075813549424330953319297646535531430766978998353660900383327358925302440511327251334228912744873438656053757827422570296867444583316086418176520839191970429263762173944670765095288953346796189185334376150921299784837635980507785640553820150234173395899738515612976057457550489811665273110185634752372799887309966064762584873290062986829253859055821258344034631589426331917439932313231675960138816576531495857856775508114928322917107313033677892705104242295999919312873889584403510556551786072880251991354007644343656690076060616217107059223170693283201728719740373335903055871520025302635411422792585847390985865880247734104552303190452625420412260542779433098240266994978984179373521824458331274859006191910414420619717424970691393592437002529788933297859958932665666379971093482885477686456165927391336740383417697827073851806478433181813607524055475112233703818196982368042924522044641916211667995695023565386893311880303812694798058122508400202038548603680519523086398858911943478839409221026067183562221482275868704860120335373376431873092226029243937808437290561106457011107064157561296615514511008005202848070973509965890474261298236604359252949820311454835736734400917549455930257065964688694616456535721937648258529318192214419170300853514221508584960368262783109290471087147978312644456127111100747018938285887328076874324144959334957592385014061498747662641959861829011060139867031465543772408044788775474438587508702487819190994694780661354490241347991148959729113685978282287747519115887087766191705348013095310317670464547303752971215086498640018746403094519861398550735253785088699008192198620962843834712146721130333160956213085897868173302915575242629387910446093111993661454120233761628572136638163076703143636846486328930425342093025171952678390820920279026951414661220547096806797184095383046508008042773427826601749373610210275232365032243261594580403678159336979057803823836421271692173520679359398619195199806264526510785732465252545605506844330464216544745547854658810971128855857713130134813719871863104025392604340328675211810424691675406745582810279406003428436470674251559248605517515416083445536784702438084659920503790726835751741141808638036804062926481643167856546497327480255280208800617082518192386306848738215250730087183026375051424773451641650320706651210835646291579973748267456627184103172541995097526568344289333452516618941668224548092491936896282961985657136501000099268764861186918962129613800254958299060724484936058288800570856229504649543895864302409809773832884827697351270596321454729747278898676727691937876199516764759129648646563719136445167561022725199434719762422947688208470795851309077462013252201741781686154894380179598666816446769754350263650168360595395475622162957857449550864974904006172092497140686581602349194108967430773004281746812021379031000465453587806939603999017171391626869373624813066118386956104448750660912649795931081406335252033613697414980320970331649798356194671830663532733914557420641465742912888212269704910972248916776433601167206029627950747280378621869338653064411028437047818049635015137149135224161106681882304449448083960489387691351071158447030278128268637050841864188803582659842740906393696002002553261058086727866122040831141970762358114593366165807799458553490603665331572706691640638012018885048825580702883553698270815180016915517185062607620542759593390716470129858962273606487057081700891843584232592540494426260211658667699070660889840655794071256222648217887755668140395896750717072180205886194399014708094865780570359362497845991378220102453691704934952904226371619716085889702754897216808380240830250477870902067269282740449091149084624679669999637193833647067106728796056181508778640636509477357455483814646970352534748338413815441912611494360042742075496605783874536104401790338780349024950528028563472279286275031749006812003319007274836679751028930153176716685416727325064464778097123202616759577904505175717982218403528519372392215136727233357027494948496609810077180314440042110510660409865110677270546403265914898774429528856378849100321601213312224118192472604455250896640162536652941383109055504409406836771796748544237751080970980097550107612889164360498360196864649449683870574949850244436225562983343325634418168782164614708757194539130953377220602576761031878526377484198215159295925949090374647098074953450101051696044792107624355273319849205942817263345280881813691132450838037905973487105450693514884531257225848293062069512966284924354661766824894441841460289084245033355377499046579604137304852339198817508988338114863635339505816073375075363261888283666857001634292374831534202792119789444834717254970040124709320810092339090845467980773784674873712312037263779388643135530278601896645696596321737062321387994732566455983727378789683556159861507482339471672550439826061386421707836605247388361633612221038732527144330747540360921879496631748405341921513319818422655043327656964611461404229302275147341249097450962486018152118237653196878820353247718163343672933892647806080060580965517015528066440344970208004737520818810713360601052018691120930394521543324772785100317075451498276022666238254029866394428588266228686994986200345756419385463518853569780039120240798121375693030895398007537387511455838096317706242416197100049438831771026812631215948937196663982761993611086587895331872994977346336666046026755785549048566613151908353082226956829690641009496607735033692337967971350552449469188776001828267793285145274780893419829853779406110494906821775323159350663270625432327087906106687132273692407923299615077743973160359594295410092585656107896031456425284029724868456792162451442872872233387008333586421453464470644058379587106409443302665541599746480838869777182481136697585829110227585126505890779973647332720358059623230187569604671645367588708955083081775092369688728175946190732981966806502894837390398086164869971061399225927818244679296991778306947926772364880445661239292655701883468041518974496702321013244301737915189884322019924086587896374186519794016463853509579884161555836312448767658313531740508977419218625810563154916329084713495098617061490936468059227921449697068483782438433753713339046125091753887767717851602983762171597779741392208505333229237348833429952792577195092451836291538215322484716298822101827859546375029299056861881910750472488468904141044202218925163541393320768699222749252043230872129726712784179989355533097017928948183316702575966286005250541756303411228705636893258855160596415399725046085719843792853800156323706968587100732953845517397822032939602633086216474155732535848845121071771675529845107367221474817640825511573513785035911004194116436389283198074108519720555738471977803430354451319523947895136499395110511603002738094917925182164059486848806437832094741565999067674519831856222320422643504285290344762599126112173512337992864110582102615665642698347398147348672910226216957038700252649512402029751285537414640421630609063668033079051267026301551434719922965171744733187078922918240442167716778468937051799045364845289550090283274259569268047950840360833929246482330136619093106377475749018426778717226254441793385263226133397573719818411532042728779075370361162501374752616224792556015426126872100522201828599545477335843623365734405898468231564499883745618776039142976987795864433052168408073434104521163277690631178484666098806335825428495115125164477934912730185250852474689995971834927575877701329222944801353095377366872981359444586731568004065766264766401653806593231665760621154059579339168973548031254194743598971419577314764905682704507804721154119763327260715826127464952155122616255755800808310781824364789536706267979396014568276967039490922044497224322567868445596015045487515764148572168948328227389776533897473415950578308492989077508422317937228633914653640101768545717209012568116765352409751983396196663869240889656316842316003564308277381390635498063582958644606750312403836341874076562638907701628467718195839960015041182735242586628946496922906821607025481345520082993917853610329994714976577902235674541885034481526233451163058678922934819306419210002129567290030312177240563504185974770641849338194227677150245806869877306427817445735899461701009876617711184938983644905343229910302736342138942797151797936973470776680783889511086817184754995282189777251253497071881027266619902065299048382220724532079259176868276812653422428863987296163652025088312534811426366246054573247522725189083128376931562519618801536713668775735650628731218688947682591908164930051969592180063419535087609666077439465172212394783521629115610188733525962905439629608323398076612402633039024166991749285484930299746223047416196567012241749635305001574602300134056758861736822794633078685253769978590965122765629126230691259997649620762785937788721770077026756527858094213998351305673620927709240617182254243247103808098479985990573948782795397676807034522181783220093188217841511440640882793290545941937754103635389814680546314024832579207202933308261338034245606554552258785711901745546162934603522617497594852172598825200997753568902159970585325988748864653435957289102846084026937386284151110226716400617737009119586148635331145056914918170533834136931030420603103896185954365981534414754927649305936841793179846086050176617184491523953933635466505443733586137639398663059580375958681945961727174695560819759245206782838264354301840256403790755386082094214970740476140332105156274684624860904123224474954457322442521666865375282730550279786311487391664900937374355205297942580675270553529391687715395123312008026700022242205677800832021326792624269305867376071047671195093202727428556004326307744392839875053163348695715762161761834639556128137319815795867938413313122695080331190487002788855460492458654997532807846094078863847984448691293326664643671067150533870489784871896104273823343315090628103183112101276990043037505417784254765270097263235157681096100243659949150878826913826273090661815353135015682180499190129053803583373342760378939780153819209189713796892237660190860918863552335284746098394927908214667176136232913328907646404689197240766467858443692887661320799498523727306564052293992640407057602489673957869515733880317694189721710012373696202432593552124440765191472242553753172631059153632845063882675169975918886265947844847841928152273955150398565157174814455401273954388085793633254266957838573504291446894529944670731440693094879241550134642948613125716626375846471435392259280287349982812987044271501854786783249557959913676756603779851739062269172479856506891869327913261373807590644243701621526653008354956626258372358243575899095607379407140209329017759104647323635655634047529885189583288106019430803161739811807474946003225043282988301099102329407793298244606704198963341289442967915911245239740967035088203902035634777217504458902696486476199282059102278333620085128239208528129854283425771260738954511867799443303538019316389041971427958412007613473679635134097509996094416946834833752359198322172513426293614280284289402267068252602148718548299218529475537147548417550940461204232094728132596371534700333569471172075488981591746787979958674072454888608924609866003108250641944828500067778999639711306053630541700664845145047333588119123363044300841438638720057069295292454275365303496815886608128331564358202249494460293012091004413302901887032260157073606947504615925565668132277628035742250017738026640783759145308979146537960413875747382462855423335558477495749189884551560300237097080066855045980615788208611398820478969407014902660593615258169935444006027234009770505734874015460934606703727215778197823017816705227965106662111786824077209318447214182018072834102237414768834450305833492469441104567466764967302054578240343126001069981569338441586370543130911484979626903421648672367154277352270806839606751100044353282713362234712777453934026457336811413786001631218343059010452639368236227427543929073833345711714075094169892660085633927825578468721500901781271128495619116039081702252391438265361530317156070724597848171972927677820892986440395026628005817518285575249213513989217434591114079708672567699134223575740780920532919847856441752419140782854790892064029347864054775257133943082163197793121484716063036169277614220059085083401884574665406666443496931708927428111032782572281338853151650277096140893230725418635667492718099137670078421588129251822350584162087445916420624499067024586461558771351466857251794123988115587086832193174705732388087029667738831034526866698972602615560101939061038919535869830300617188861947672223653450258486831711182869494415850456377912492713323487520845012733080284638091688339369081823477491355642123636701751850747705763459422477806024083619010043456755807760472961450687463607816086741347566500126077129201227524685255163955536674245000911879516435039085839475893447055010335474761579322181147289401270007960790385557476843153744936272018075990675420793023169478202490610926044522132861104820491564348358737349030065514617261244898149185175443620932857441492523872967546775013666774504838044112446490157637333657448505919485570673424913632547243552910517653554490976973181393252425538596150752451937169686220840293670042278798224555719290810556348561394195264267373970102577137638912049255934256864861535852457424833009654222145121642634728928602225696910389435788313960826649419726375016688317484863829613793425966091892006821811012557403548282953045881601114803033102442938239325040779754687458015430641466496417940980485244298394000065954329426651024748193410725346037908427780162613643364492000553629271033149243669910560836107337818698837225476109314159942666102448779298575737538318895392456499474101536372760755569459580384417685166085529124518739407490294817446106335802823719119093427984744389481644350345165030848832231517489030109756358610838352591726097563319759722204910875279571074810113418168451550887605931882474436726481430635156757702090131208609806635514114701765299697675021195372131864699738940636581167964477398538715821219106735185130226874047999724467296419621743083481089216192754426623380925930037053862156649337206890007200659346012033599536719847465284172481737814537220083582793429114747577978289090502300035713854629134147200264529998739481739670575125890861652348961083109999806480667554372347435922930498186109067168629340278474441938504215038346309872710051628401460142531932619634782092968623137507119047306724621283357754749385586783097525837155865832158970114884727445415500652208715492772336747844703787164246680015855425717480668989423994649798161476956173412792741795463320042845380306002751717177771006481509036080718762519448932516510977150541929560523767453298300911089372829781534028390470843527674653174176219192154972455859177596652369617325746057356748941568956637508372524196155959147673888381922901982182558205542989364834570816274324962841792889152889131659501877918998618368978806099514149192786160158013282503607905036892629589070757952870385170861021885830929899945516301545678134318755985920656870248422783034391310014682364953653587825155641015411508196008196768533164040851034990523109401479970626402648792786665886250176197259483230792398236610337278426085243823177941285649574946275928249220473122343089680566782383156354200040730608296045864011651674318963030058909363973660266209319231766587647993001413427151093415768804791608749618844514654852428158328880848657337265430170595982613030355735363369547101396428788025498990598891423136698602883486711717814363340025229680351044339138698830200216987997191515444342197562513935302692326644262415613872255577787017519547857616373927069073779127305034407264423252409278063208480373494468428676611403480424155922372405694215391650271536656612238751329096142757270561862732941243671758054700293831427031039127395765083477325640766417991995769388243674292771153718650294644951584665547860019772978568893020559699561857455750128936879008939483642963089387574912396044192332136583207423868656512665368627631504082388475601946104274906450197563634563311761462697000952174080687813423461145415619724795502092546411086051102681592713186372508594709603907372027535881687428367052244064027339318775448691316681127810686344338503540120959206894616008747611645126246774129577555942397990615927860479956601715836775886388229971887583607765493081742780819634567367648600987772872444578567717728831863089276622426360553835800259492359865699141800357226912684585120443541559970517029386417451503196780314796192484950089350601621927930050393060932691860792541223548993532947471788154194534087877305416902965979007373615073623311476025673903116306121310348594378113337495433072331362021521984370821400495556630266731596425344245868472503115488584809113567774426870459431142563059460011895598009122930733754817070209858404140256390676136583542513093610695898644292587040322905220448264458647449333341664600117425819960329289515005417705680972439965006661976856719963876176116030980252282204531326119153935467425797233716241500969065980808164011385710344460371879548914951897622574476964889697232248543419290712446303918231553775379128181926698089620519055711334568685532106535369580640953240397892444016007114013925657084624261998689444300844763384957163801365508202748021396902252759058870553482080604620592363466233005875654190926614857196054817420124276680179721080075238763768895931736520294486592292145352245849998515267858333232173059353849631332286725990725763102448174628473024128502651546713015280790055557725560124860488716320808422324390383603950458406079925502331783923230406179293026932536023673660644614895996311105393380420602043730302771111546435300638087383187864124469822272987546103723970649733587431901765837209815531575004351704137304531759058942368591150551684171709691619098525273234198012298700115558309190596449337035245666536022690103350065018981465450918027788761365845256916330023915203424689827529848963696662323455146428321282711891544204114400438240257241049040382800318014268882981791478768706354442658385646676015164344965468527103750479232094580802241343210825806372788741714360122813245909958593526721419243786903383123129722230947368102357316680830148130220330209801284255422040125099306901512305891904740667309870220872023108605414508382749958400812526438067400187309698119407349110542181393902464375869822143411116418618755643230367535330126520765429848192317577215761836256042860601808692574834894921469915484454183749566409987737316100445300225593711256985713355978290544216116097993095455499378077604444832415305881368110843484659658056819990087810705354128889337540413616331414430701986595685550730120701688128311077780815270242526739129261353723385655946922597743556485292596411869484096324132700308516884229606566604807314071622276124871907941253106984040060760931802369974970382493342380988740643647485092478331274267776730567019079968943049873161875407425955550106858264266167292795216622945458934915621514735268273513786165904469579403280482924984636271196712771745061994586650133635522513810405721121132450920092439216836330011053953926047593190824432385229371780440324808578128309153909114655198518411353852403454904659980911891648859863244104944794901842946071510877397164550231598078710795697023161563126489804807541005173959691554094568154612662945568940066924854433706900758129560711482021459800954444543752576439780179957959235766438434599516979425324617648813632266216222731304091886893199827537601020337680039372993189572037094091517193328653141071052389649910743582013124298302720216126227049784034831589567556304554592191605926626514404673857155027038659133882557744914883702440714705640466523362102459723082035500282918335145878480503103605530709148486948666183605558850048443953407519919849404562718583300341747399042179629496957282097035899721612433986060915897349837023704448910729332928340391563549780034391691451358948676017008942765317694770090235037325707904335735678983736479146317643207916346684840820873300738534045092839763807714659494587012750628054741666620116049607897728335028280591989683447697907666438623407075822792757113478937364000575043904522617087941731586776352702866656533481642864836848510388214671909916192844720020575228503009429734856062547197254377874242882087963035382703289951466317864481149523591835712740549023380499334990837494651710425552941699436250954578743590286811646163688304238732173859807949300051769968743445904976541370449501126144074729656647607524760110650375967954416729069655370581554929098147218000573001479771616737174722964841954887121652774599442138434225523352450585469263460652091749269672718666837022348434632897772945762903265946239616509694738742567788589641144755152685109791231660294585947901029583609267712712455169811012835508960229397005576330872939838611539790831048488896096842051615536961199732984613956103813578954337538501151799024147538331494940008588490108225056781589823218187814515365053489205042440162199674580720802718387309661246930310181615549977776413560902211314506541500304863981627217570969185797200317245261644506349376156889977378759015976679140656888960090908587581632010068738533746521714948524367446576710802613958012805187267828425539940760610370539819226552792708617016465459173384925522571279316335475682393783227878126973450191672931611609702292819032819087947563425182670459767406146508772306408510351138494762970609157423005956780819367313412151688626750973061888377800171235251553456634630625232910317733445461831770728631178797461713640310875864325554717922529544553872229632234599674480918940101180793530632266166871134300893403137746711970461034989118093589672934225005377324109908438716332243419428924323654931137493250690041103884319458916179620619077871014478451628211586346053881542682805915086123133308088990389941767587802323821838459496327320641993842502250881075086208672191814881524177451621046483730383431567632030023533820266131692412012937198974680190880356053668523834422707908258231097200578831979930611051606240513816919860519755679533402810195493998249963369567729777640004030916352859534772539479732391903107480066947144663966328937629510653009068042166475975239214863999413200086766608557221456823366169037913426691280418054098310750315331396855691348498437318095664669912060322079234074954299937217803698881122846753954326990409839050640870905792795599869555951820892542113023133658614535377354550654567803733198360930307055895404882583586103901568503841254552829816322167431641008314781409760965952981846909995294324712787107768264144679037472130158025939165675253617505257939621275431329349627773265815575032051944603167349448588198353582258215563177389865102136825513365436238046476480016554801225717026665722921776539304606284027970725133189120187009002286735106411674735503687271824835933044320628716180544925952966196203900840527352666605649384122086614593795330364233500720556763199451854157003979737310349565879970723282285691695724665166381239444676521075288609791142030560742993062326614124761105370012081059239990044074890652633711383603453038051819993673318840310167300636824307569451332802473597873715773673054350357069674860922915856374185876199071153691619908446766838183029097085343571106749137049854424529156983102276220709039412911046730635649313046398606947809859677183558459938073638131822227274167794580919365533207751653931400262683946852667920102011777906771499508898702633163449945162380234754526936722167771405287456069978348843040520765251033381537559550015236131193514695970579285787981462653626982979049506256194541787916635309753160206017125688284381992720921879950292833692611207334001054623492540775756284500896748652824894899196758125544453286843718530843518744790021347107792023754297699056953446842624424631623366537869844851015131919417629078942625582132947886732397489155123352767348540580274411789564088964612265053673416790466840074930135089106513666579083748011963714082857999327596214884526797546775396591616201310699979055669898114158086000687541712556093324138492730401110000313287040610768192241172034749426437554588154177007002487611983530881801148773156034603312573948571500218293860905214984453278982572496407350663632422638028836084955448305306026421887517854596223463057365599249549990898601458674558342427699834744587881333402086109935865746155782114866638111967528177814681906445745494213977139920757415270266703222619686389727482011097696500390849230688857656223580472158792318672698428106106855083619815700178234110568688052786442212611309313286842827021487108894220329685635435538329477598759637330232464394645041706564450912839397014248958675952637039297268233040289578817786101724088066139028510002318503071449768056387038370138249364966880432889976676882816043198666827591154268163369928841464549594054496638478816805383787626607152265638494906604175640128934922902856697298968937338937734952977169811031591573101738872450961377923126477369287751075795471125032787084559674347104797271265928238695204271932116335962252663813741902974985912062647735941809526373928679434448148062082965056371288811152594816457436197503313084521324016844064510888251522879821130984377231979748443861776438891293538968689091137964516119371852719008904026062686071238808392159998856781918025163327369264161805144932106345129062017009073229468219589194347540608254179269358700402653848019572378292064528644071412409460899222831702110812583536306738926247786848714625844755623223917727557361127904861287000013940149107999336802588391502678721105588077093891889689468039679385085419335773060555675360956957117527624835680304411179095883279159305883361133123638431089846522261608761104082625057776806440260234947895910040672170595714518819639483790822458542504243783211605989230097971442923301325656373280380014716665097991895517648900088719715937964475113154610274586761266333185051740128041196422176660587212993312477630752053412563146186149211563291203352418603953910825116753548562227386537146091374474294813583686086052926410137837411317429236382019260264860181005106612859027495656226775025047446802985431740444547547097595709538189319745141068826803928895013575042741476732288433012925005313717975800108629515157965125892310183352149981816485214117090880319970518158664467097813704844006005298024105956968124606574568653799767428852078071106189411350496477425167148253067728173036825584638551222154900684251737953570954512509024369034026463458613407433642922964790754940724432051378036193578404301792413814777035653816011136556503027704559558077205116814672228002463333302843669472185602233011190900882755597132422734704917490492879504550768612223820306625691746778104959255375518829856910493070512859055728324928580855434630173111581066194125060416254807859539305807909629412247582645234131438609131559879724263045100795815040744453225245351277861542812996337415123837786833335263315906319062397773944649008414571108124587241566178699607196000508582969103846987562174180799866187792295627473832255098578673160667426947376535925441355540447410961567070438563566738628101216905940109544217217000427446896318071631273571156067125183244749771211070485062785634146343514082162106514222990024661476267000621001257842981216440035725739997087495785763072235346851704306838672603702837377670059760263540353555600337969570451479996007876354444748154389738934182554175572912454986399432959645987189587246838951762404581472260765404372028660629395404271754711641800858145627994273545415868592868985568881653488301374122237847185679494342979845925985266872500219046945974663834824415088648097491038687977020493309461648693724150477646461318771017304990883008879929126047639020576150894062037502191894969178271024757853376116856145125775400568783799760947094476076328514833677877674076044140688029566895263919324918787867887445601655740372484728995193523017244411488648659886539982433418658309652485351099789185188701626991429009262533791281815421055811852022974465141706523874325062843943172073801192387216003079315728652953455131793078403681334278303495816007016942522203535114018393014304582947975208359416787545792410542068969273939128893257333604841409460169839723018390533543055792571466276985301823459761913194671610334561419747234977100690271698832241313124183741032196148959751909859501012664748519115457620465989725825806669494080824577253219083903527771563652957944992399552629639839645983653049536448309517338361424982555101078356389588777121137455653629216957368258884287224641426658374660599118517481979798126943885836257747349036729839045648255183700057590833018030939688081592594677916775646712522470565748816720011071322377444204204041372739593473628917836638426518007065813964106517644655801691079657723374345735771635639967716886416947000489347270856020711202924952096004322168772701681886307028903685671255958508024525862748449798514904910110355961944062013044224000350815116536944018615629023199192908106643992080924599215900853456080714040963504925671383923914159428321089657661190597564750818162666291602435529242949956717152145199154638638022429734211430064420724217015871271051994399162678477132006394951136768927207748198951557634857001393542457956854569032702898007499918782910865338600934409322759156375484645024994299996380611745385364353873169812619751529564882093891318561750304927490557055554367880968584546754955063314393575035823729965698489467974398744932259151322076670733780229157515260731449622133106338177002193905974306076290876342154724673871849721219246242460059293463032620317372919845336982610690074352288704131757159770298282565694715273678606008537476692894764520645924037596296840123052343001659605759389951265793297327091651922790833862251244887749570630753570472367628825459162853836251021689463738025983264049629416274001444747501460278018103437750670828168112547856744212266862076316979452156548439037181526121250621588081228730908270674081948567419623069671702362258259441764763455526211915686886343982948093812834859331812766573739321625569743887987791645278062529807869052400864934242455055592830006564106388200142153911649100632244661058993642584306744765452368206882072531808054996937607086901141017041926945820859823313202806087402221819914102911944412800470432657352596299603071612576992090129510224635010516657971396693813078778578594852350013292290167504471110434162036340527511028433717876549929653635100398177586757259978695161926201784905404204318629748448487267522663450605006155631559115704523346317030990323030688265481297903521438267125219139422013582838161871522322989514601537957065887169420858629021736820381294756620715261861854640535228318408830860508162885680611361880900773966681426790712222025863001549373488863210548418293531498926749225633625077467488402610215085741880270579613497708354558603308743393238678656337771611737942908391855815255212091614831233863048836975376335472408240289343938395935959760816464472438098502294026116422857645158405524248569011583975803316002166981967825812793890054025605090986639715048345499410839596965430913770773647689608208296822646265241133898807822490903111003681306341938011877453198089475940963978157590772807358949553567383506973880284086420018592768954665955138181327095719274663053947521281749654492792132409821407517736712262783692264921852060984902505871573540508398856895943644096381685321516469695597786399890917159731714392226189269236479482388476234733747744851382922543588916187460568478033330532777526155523150446733596532214490986287633523153407444838123790727527607497094261295037720651282595217547792081665714118361290062488186971443048530530822077442133883438020915803108301200904368691041592422883621068579340622089773833826615092663015296212567812360222359550325251474040871793726720114377546868869213320036542972011635667056553389225165403797677216962384757256414334507154498422452791141344181537190073277037321255362778460591075825665761710764946978881053097623336595206195422139671798996806395896151104914924812288534502783498738778967082163230304582680906968355022322559933997084435088827052928831532219897254443236012255367566233882691376560319996001464659774437446522182352765188725934587252190181448079790360966446323145767746672000880605455342593262203826735772444834895291112560845819877988594543527103044409164007435811088697606587040716943687232976559619305280353493706843139224075296589256465683774336115695360148781282068278075380328145360475590950355986079780602812072574302270285199992463823494820458061516038079913871613847695112166299608162902406159757936621948655129321387459173948701780639538291642316684692801215794251838736146855669783636208371891806906621941047488799472275253940879423632305447913286847603728843456142302556078500910422589608736122379470689321075968253473653240041811124721260667881322225674049423545450428627651409588005476951833161026171354930796893506073644189480873584023808223504590740214991276849458845387743102258629083026924770347760760718745153875119546622332042418708602548296529513778588929250315443596699614919084210281504115573443958485344117141596850016808141386712822495914864434298057655968912531846545180444273189483471502530663219898055031303798418603282985206485640050910595822130458748598865617790406513254156958146961859554132619517836151452190229320460666771003574300549600643381191665684338390429460941063019260886153706509325415782759122671930230113281677853522676198666019903920076192123827931571854648416905525828917926252201279674288440642425939507241347465705409382094551426737200470447629535839226084828362168667110503441624383981707901071489769796999478930961463886249659177297803980948559399785011889588108947741837681075175056523588422837618852162709317260174468051117557782898811241489724901214287663527449708047494327061502141927429740264535402445496794806929935403989625091419901370216766507343226526082542313567863476471865484252262634738843044297945147524474871945541107730774494351347511289748430871572727899929099023970996196421739466843152119886028917233754968092708124051640313796301927082797314227501864853490603223066369642596826766798178631109192103946842850500764957759889006525137600148073969568328299759125151775102958280031606182439681310543433713791452556336621025205316940859342237415382277594732971216976838058255568611365665589627753129117442526338327258532064673378334937628082384707648166391522387661485310223647317493946347706343120456731935544080990913534229267927161259786307621557328402573778814422068270997933796165105612106985728474181784991888813377995439503328913784806632913290370012218335723664491117112566458660159686031192664387458133208900271487234828803915942116510348961621294368288496882559781185445864586379058964629897998290672806878143512316565172798321818042778359746237108584575131466941252653666624708391138121411060958905460637921842086127683525932488177833256583278932245881123940667112519583394828673583348619628201764926289996889540045276966015644635598439880428410065073984764430144498647035222871744437661585739142010470803752847847363403861557064588951721367622767114786915287338577925006890225857416536987404330677201250040193771655717772550161938056228096208274733056293532508820714696356296715860407646489902113297986331917324592817319864118041077306078607542198403402922085152559651870772070003361197816737884831076942790633036234190438180709126442615920292058661733794845523252080802141752785129024668045598940362582027046090908720699449495369679556356815555723529164772882107890120017200907826433074939499935018389798632202638747564584030816092785485665832964645674145312614612257811998612661906701809103093466180166181538409441121178717172280401757630940091300093198207698083442238698988038205738472333009199721510322314285010902213960698658750111689739101000839806834901996991766173369771795772914733095706353361697958594046881153845541547949969406569835082875980667109086002188183021441414678402481582810036962590110097339771133530344316492586838967142811741828615736802675663306822747275900255053578613728475267773730590682683566426694860822264780964510672444492760641295395507121794114679209730568389601950179443903217098062615456994746716206604149368821241658048543011882727268419690102463567681301543509620810824563765083636644437114886894544941846827973266090534305890138254006047960862676764259535992982247494995710338628630760067871121967700614512556535592259270957868528140843860672252932816707283007421856895437632011119773724484468559891328679064148078912824850319483668322800854749035287733162985747652328417923439096083126816448521306977650650417541764261249267880530310468741936418872083200348092615917613837263404778140392572773418176706377408677073025833438723328007941767468231101440278977298081051162957989817318570263429248586305372483412241941553680990790288718968122166050272700558578302622764689304941145123850447422251297337472253681908322769575326807596103167047378858698198039447770746912734106068725504069948565755075425255176886143462013961682527315492631849932008328547896160204060464685939752845939551025242349188627620905890733311416691914639122549924341852426318854628279653541745115568413340802136540816229814555977356070298396466743786931395073395250568488958469376887473506414053959512669486424175736039104039476387895471567135932933923054424365094518798527510465952517640210400249595435479180874247513748849685404946485895254520965171190906303758305049197187621313672237482039058918689140336139614788526565869704435651745724275331988394402566389004500765087782610158244021859935558031547150911425288369561969562922809767174067362816136644546304034855568510464679989592743916866774714581717669581883124069246068161140582471217692015569750945218078814996617370225438415316898586507113491560119401522722625422022609366020865483003864566827354213378428105485426830176939624043722082062106196189966114016491453123785635538033663686203671838050232075354416339187131558929832714719224420312685267763344192074111681513307876930379606234631892291331726336509544973773017245006151494890132565806813605532002944314312408655444699658798988171226470756055457179249112172822866031985629588917794738542593379616212748913018535924864804399004725565204538583447791774504181167971432733738531015362119608463370017196936543499243530448201539159741374095461669070791929166045328061393504419895972583685846090326799941973685498404002888413641338635305602086668375236145894003011163137554571725092390934882391199304070498862421464644903485077224683259212956741164810257050452209663361828925771614388968590147113103253817415500421991157494861808074687974879051263347288198581964621816079286659482464871691707704883135207770436580553506924573167815511543685014237861246540563570291959730716849447644669348424159349541842175518670701410045245460818015609094997970889210281102786879128875302155229854526499190214084500851673788478694997911127802604880236592692089455437151469518761021151490453041160540523219358930934113628621436802331581233099080625974458534781676339713566484366117004182508743277230992463856083070252985625207012070513358775601122907850293630120326136569683158559895823885883989354148916304154058086177928638038428411016106863426957204948285707936167685765573709088346944337011772562310360242547344657038858646789633579090634501518021254819863495848548220866839122152806217308039198975088223254785471147787595994415420450425139340960489219794541741756500673081744123449738983337886846821965014494289236408280237139588921692048004799120120305962854017138733491808258814484353230584662545966736001393533902035689214160331209140452413663580176855452167616338439382178711007492974412881743757574209692777331255529693272213862890162092207437162273987663626011841114614321068218546384117196440321984418022975526223853275639925010361727222325705192388417742325223033724132796508292795886616547639657033776772753964819046596778777906739492889302885654696605512502917841380507300191283439746956649353645053523761171457249912901259852987933547054339539230708117064239500655309182631051689952428029676907509282960634775945649468262577955201417951414111890991227242558363458647236093736138155102412716473839042517466365515523427584658603169194462589889382061388197260088460364266423864599862262836372744401719195021796691713301858796172220954707192289490137948063758473824484929417450735521354539427863514356394516444981758117193877429284633337732665833806878954405566101522780889226542753254369365644317585068036459694585804873007117069523681235125787056047435548370866977024338453672443869201454524693586814537888334438040332925947441402490709600105023252597528821138362866487387787287281311194727540101979135417226000673589388989314196110150494362099427871995245160930119152590998196515200776889410062806519277496217824204544659443168115244397056101588455169915203803484619537606397592412208782207182049482315191344475266802637035851984513324533836668808661572436463363457597830083565676419275853547338515381235097267540675680985044868495068793130456128291996537235142707626442562095798988603778796985316791271803348844088668892719700974928869114457263929076622169372445807585474959725980335747238508327876700975192839232383352511452813583886506286032319952326811496014621376142062745772597980281571593575535604813090255545464968751823670631707296968422085874946166769828717407117382679978921679536763184949766171586615463974133521749252346571396437516616891566513595181607005370838239026573770363223633575593101371740360497219117205127329603839254847604352334194165572168118668399973702280666030049238452715192722144226316344118688214607672899025530316072562957615620167116791681265150280706798975240264641971750023303632655798139317045689132538375627367611120914417537676290426324255277687724378345392889250699215156261013937244694236229832357231952106667076228788487627356335849126594096227107309530042284766638288608664453915756720997318775310652032532428139509168760404051489687269731145560508660460572317744085077611700386470231392644228019301277677545560744218095000750667023705121497262170013172104998699344316214373733780007443732401297111727840017571235707864917224904456694072092421153791593540395959117781322275686506245665058330606478439843119297249733872959715572517207037032569912427752281316814639187897918088886359541738406898039020407559130800857030037098316242659693946994671571659770245748322831840022972393844473258310260218662435690031238940448208492092348291306120023681375752168020376011176094405721094053333105545561810235368768856344267516495268935315177839254210003985906787861643005378555329493441987201431928154861274603127714744271802166707970330383474072707231215741626805237151259129130380806688939292587649516485624966726495222789639949884437171082219333174355095444547226036784757529560535561226205490185187413208454169120316385102280744437280495142913695704698824754010682018801381329627992041051282365967897558155722563784870831825465474849884288199949519706702944980946521829332380136970823878184768651225868709513941602298783115771455596543864305937643172488162958557207000018219033971000427329608556968074400481894753948472477367105245719450641084634208450507422088818225662901464009260377209718530284544743212767519484027677558799578339903869423860967659658219188549604196234741646546663447299677574938114924643476748959613198062767691194829179484648514326892596640769812237502696812693054087894618672512483020713213654314762109401014374140642315617104307173591477280757655633889367736264206961921903969370098225277579850871637485479978971826904181671679263479984226946323109791129582588704786682111905857395046395619285219376218382446223042984415271622515893925952974405009897679810994346020123669248785834060464555716558468761693325549859237862360010648783021179119230252639303040916657632107528099201268869626846481108432938810504459464788528045347023400843635568091543737231850516129215356132376329852908338026908319410576680325413286166713484418226969653991767915567576571031584679767247621308049268702004665146407848638152211434749935347408575120669058941030204210891733380732797601180775412559496564621538213532276046034857492417650162279957726131789199839736543618517810399626096497906358981391392635635043875931146783003176193558504719992500365670814460692002742188214937340907711405143106200437189718937851561330005852126469380235225771205840080827100511859884633943815980742542962129087307900693814824986245024491454552484058638830680384901302461185053612407779996805276373082416436942042992369973517614686700151462655761811885533696577183950675026160301545608580798373462924426211025891324575681726773516373154958949200747896614637222829129082447346147942276680550759618142910352282499186643212878267649668930431557899847296917893818264397464935976846861142867899162372294998964176720362278024520556837971864586697581295818884366829876454890881802055719126661371444302465784660475751924096680456116792521886929301149080155753152305664934794668304006767129830798698524767262382585009599428174720912165934934083484742467641393825810957212315740013202375929224571151779915305963049604716890917108381528131434753626190163483420439033064586309033721576379119799003758799020183446422764002590973227841021356951450998171928907849736996811949509158885389232817897246774814959622640958072247599283695765991072561586999144305864138806508484081753322394975871135980959117880625242689360280801120262210898927431366888084541878472912513737266172510250048483854526503597568678774828332150537351780127935870555437469889428212882146237655217050657804989979267047119563387189661871217326995988944144913789417328259770449442135417477283999256030602107860121228226585237331722673296614020630776627253920088895417484269014365912279198329935203369365243153985311509239279057057857505160321580045903470675408357795986575978209844646008676426340675128770131644615896918108599610594515605560208981525557063089933592996255953004416731432901198530390192420278780501967505885564718164809434884020273287289805916735232484093410925452027580166123925223975449477923246585958710241665676844328702244187607585966157799045141093689798556270558371821241865263544722262188719281005842135484668613627114265011673409312700636850893720012094976863376146968740665332396726507252209527730988427547718717527194954022481020449056374223224462598284001700212906143621992669473838287814559166429850750420455365228682849813951175958393952038851373526980265863366637149971945159118130930792370247656265116513287265810653922576900411387600999934570442968606557834154124047750145740243609424174059045790151339355921038918452473276344488708096222159466758318371446165396407660290362750404445203649759599778601698112201560935279247360428906726104965720188300451620848775442631304053588663064465219464299646299633062613913129166363653449939822745931813823534837718707477644673376475852638450018668937900624163335553071447345183495371236153222462647130050238135258348523778199665218959948399424248084119979916494129345537648277726778407325973583534519702856258876232945923900271170759229205159211316149706017701586161632484723994716441763176528689096087010843998344803734483706879025210829602778889370327304594835776120635504324173726317550384052636647084567811837971879398663956973655011514632468255081769376879577549113757741498378612003115681516528222313496672667065787290005410537237585767402928542866291359775219059759416056111735282031296099667021818061385383089285388005783335893992975373703919337602436999483820249869724270169668595982524189635176306383978128611156377987904032757061765993325264387216010008483908676436969059406145118684493230466251693941402929193756339448069235230807978118638412447613242113332271106904119614919450443543094269420698702385677631654756843523929645911869703871323676915055913387253570497864409941945353300070632197243486235358306071807123445330528194409934890873067833143738679945083398131694849157296079863512278507608110284747668846433081869456158552703748660807610409889901955992289212410412400466462788603119826510393064326716422161527284963893839072502036425277159277527620693992041967683183007406835562557334015407371787154809522126639426279840151854791645399605278663151717699947580968869827129810958181254531154678893764551855036460183126557321660164336589043409279843359935092783023406265879636013982437228316149066378242127124572781437438733859166010750519084020695168409077544665583551938264625781030093323877300631538851295698744973774761155299578816934040949131626160856160843506210183241228893774909522188925252764045498675733644471379893168962884640509200509990856087326676868821205172794981118553873552093037884187940943420376677499490374541637887205280252530437791862358368878770920024417180229953149950739239862642759177200873823192052535223088893746451442838794320957809751897674121293131934852530550296465512526517267594829960154795158260806259366852530073759329400586405066968586766822763723186257492480791694642818883372947822857323202917222344340700276208811300584187109151864751229250738456096594534471835166641174517702197538188464928429209202252668991650142191465857326937773687374240320832722279036825446849386547896526374217710356237179386952014626103578684579694911323038345645954417887435153342012551006914101966675459021243286578225690258432370051126952061144350516371711032514242452308198989551600608509725810895132432612053959143235917095097717487434991124169090634701440877109857161202673606487738031290942704485703941498760127948515887674135378786785777704177493007202097985102228109933565593821236163337115512655484454954726036209545066884440645690581858383686736556145035490605974802718883431813771266441214364810315500362108843869091583378850196410352941294526656712418627599694053796213724342249669066106522553570898246207393023161587652235008089362222447656822252123492029214625500389123204234518352378591212645833513580857341568844180089820907040607847652668407497019803520666978625737930482028605473450186347590128763881963046700397560524261861436937373720641455956677246956451144999954346320508994628416821119845510305148943711765722286726970714570296281884735293135311437724388033501900243888761661326672364658908591514738972454164254233239341057048752007820614673850770423154701716261414295204124264021750434987648804891774238171786733381904794734135387369219163300746663326896696651892552222009042991277734487462343385903785574400048340805213561655544554519558644631997788377529739143849788483120270210476818879098692620579435108025087394926600266869066755950143475253727816861464386618576486272766330866241234203678591806808528491632860827936496925390396412544071847370396307902862858173437590736250427198867008847054941532886505853835174413531701684028374752842390087478262076057310792771891313378689708482375748091656530148540843751666282885997899267661428458195147371180192714645998571784696526301103250064666555947798306467914602479073470939509740963433376169867588200000472440901037730827009592363892614310447762329788940358839127367638225046596506917518363110303565879409711412666595811044555255626367323351660982145160447154898687645083049249109022852166206671067554354356419771120079803545347072603076043930974292282868951705327467118525402687212744487272713294129788554986096025851841641465296951415915892975638428021775231987193102701587872532038672888551900220067805548255359691878645899563146413429810923336178193580923694176983220707369873723227345412175467441708606645889948207454120610211367094720398094121775744257114011260093772686441627353472710146333784408580556510295120859333635646026964022309721122784832335352467913302310519299840010199259119306960991924438637670572544418570385108886187499532620677080374001208086568553379557868670386920054610774701183481277524372571898339201641450380486622455506581038976316883513483375475364158048190118474322778898423956308580603066736706732946415193344539168015739900218064698880439583395665134462736856063754942214169911607961767471292295929821174207854398813654069421628430521087279658515416771509775231190991800966163821308392142790043039431175044292986673293474372036351165146597766366775814829341644340991605048841900580024550014225628851265135514241194605662203598165564303740011655004608876500777002418718719644541577779456039953598333063932950549391816056987777075114434196058721004783748442943412853740807125360283416857037304540145394984208972849995307526487679464508518348415749100492921996312053926693754896019140416101580591378260801499812271527261218680789954346427950433428310774526622517312154324301566015037028013825216779824162309346422451974837624867213092266508340556752190180902691667030570214055421261425717022856376159082371863593103023396911776749221827038943334748024176559164380905741021003810517731269544833413499857322485596691108856328797608631071506733976114928948762606224061850051251352713232303405245756873785104197599339265451234243702116501207176767096745725876152354352087587532306386071269930692674733602164915440540724852470852222173179561162946374525035450921951493254874252076081927743703395268602659410230066045339320070290188391547569234937172801077902751881131487334479081685085555769529791942663577150057805814951462161999460912092481049765276564599042992765833131512519684973393758431121906673512618398299000588420698258297785241341630645639526120016016462353641014739316696100348697690927581412195361511807010097190313872579804709621554058696592890906750675865737943700995128268152093864535353514697273878869320910215947773675437999776229613535427462436899430564699867607880067876902025316128650433573314848969216984841349462959865065841380921616079655425323179557420603728886267260438149020134964528358546678326351111858528742382374446792942374048164349677764886470540699597511052450537840488135206359551667848671769779795493788347000572653483019767011225054302387995554940033975513398705696570141475773765451979274143960288459651274567249605981619489547897162734508600378241573212535942487790465825296736548896850493987416148368323389543134870848645834977237010462681577105825950653417893359649206907849095163481930212117379058499803929808081169157000720943394908997576398902861806102085889690314086889591889601648023429685197156986357708027090282249923224243081346560540609249488953300595673156153691178227562719488881750363199970811097318925390028686841352091006988592215722268917444139689328094969561244767589770483517360351621909020798594433328410351589311976162715138143849560428085228923587753138716843789306608064015093686108923570865093080367523267035547381225796117794102901234318337987335073408994324074898451188230624198322238321798265438468397998363874233394982748592863000463225952233992919591674214904253558225538144488818116137085663683284707238976703029824114095376398602131626697742887534607271817422314898977471610979302046805733512702976873724899655221410420966042831954916247952923007887417258473274714729622712760174455060369269885831252786697860826243692963494440899740286527996762892395300611197566497763911606851542111344963931117191865589045941054213180492836309244954201973874686682580527333770081403159648127992367095048825232709670024194091525477975649604516870468849112273623889584431416157821635495611370067019349189358755774969373882369687256285984378274767951060324044282868160213987651587235798065774598260962908907594249391317501054233244086857428277438450616960862528484997337997210596769112313930236524693429352358159796735372567487722492320169203772455079028199058790751379519154596828213577219557028452111101223509763220825931563626180317382085721646326630298328433349479930159682999533384968361825964029491628602674442114699821913291949377139892621807460768171901624003835788635956420582268674632306470877099672693872408854059744427383142561373568695665852357702417928958803467140288812860255703980412886569182219298568871086340638326423011537000703314031311484300994772504169848163621495069887721467639905762752517110977429233271562889261416568853795846411796523271077976575220745360379522336294981450772138693779160841369832137837385897845776589502823460075879653388041697737351758944753761667208233099599755776920632236350262176956976674994982358132443553226891766061417150840193956924346723203919570559066629591459080833405550121302234385492966895994717744617816484556489414508860115338180975604931977757730670901353585260658827030742416509372913859043425357685491607687411961219715418935754422832825938285543403892357721356295097728116841886409573220568902074920561964168162078457284467355606699177203242913211191470826644292701487711261557971147906731152931903298205843121825437876878774583849172688523425640976737391046503711648221148017599573687227990161555520708897591816300539882959746247304089219531810864174715213129114514375538721368439537281295298561520894975035375449134419285633656149323499472883941203469470142157538833858262966625957775777472783092695095453559744234765065540597928587763470851048348353739811233140550801704447777352115174567191462968102386088252234977917446241459181017211881474300678240759324846886308631858051926061544676473620183315191735189639823198215890185081084473567047272887571001645329442654697769041233578365491470526551294972546751024839362261836997625550464127976272959280591838722588797328081932919761372858734892993770583787828563090976783960210889861066425123158101953937313950355102233673911309799577269996434288543439635988894459066328683210661866203451380211017159709305061285606462391165833579727584036344069471256307056516670493453271827481080409751469741813260264727295400293499209348818421024060015125242106667282021753260100954902623887012474105217170226570722272174639674311292918963311146396331611841641809892543067792690188304761283875648209527964339051393196289190021262165460841907133350170498279458484590821679790352591591903199557234291547869115233375978846966543680562334991912202993803276154446882820066722698050361549331257976820121451302203807002665863730155656137624288963486344823460815762864622592849728765709584897619384888167316827516229670992024617261114694501547917811156401103381356141120406492594104725428870192303490594145953812837559133548581679490177344573963809480565044700992858484915355682106193593088059961463960912988711478441591806967189445419605557229514124656435398683303540499731700132841852251649398300625348470896263579947642216534950718800276824489685430840335423751791623787556469409685038259554805174475529993298739743479078747552310147207698680624732426819952384861723836677923779037987299896854259245475949463920595048698426506345667216736552410917394774302285677742764575233726558784476483609427545506228924468499894117165212185376108686356172520702051649475799526528569352368092387849154019305578833124922931806020094142550428287520777036052680012496735749977978742626310518268900705043112982238863501486456718993972494814652930777850365035475533374423989335511999755977266000995265263851169219207643212764848213277629087091276943207405844869650788037873378842108547090979158141124459294124402721363838885616390864803775458290201894512148394174707370716176826404997065666094696941318200886523935172620038235498942569332047692400809225369021007058251709362627491420261123949275845311694528378171514403651920152320987191120296482284448411816781011846986228278551393484367424003381955711419537677049534529181770086397861029720535902924432908821940806974045019638004371442775779758730727252365838444966793334159663740814141686197436773441890688672702430279793470330380456224150541136184799278478114816020958549970456103248971761328285059950410343897596561910616298617022784460620104632458638723845722838888188644282915367588816731841974176602796152809334618144323981802473621990720206400725171803792854698016173815906941434336438650553756366267713325724009741504506128039490200856325536836777232689255527051807275869596026923437603686706203632014242448403615204424521411768158486602800356688036098082766059923118412643473180730505952387412144469109771398240812019114157687934389682069927400834829744486560948179634690970037680515887133750823095932956253740353564251809631554686920881742119422636423890609237191573200484876745211654255382969316476902942807199193094915833353107683598016958879912233342987704888059656918397449810480946246772743902552045494943257795755751855798009591382072419322896897155017688964741971753853461710853453123192460331909475866133215200760389990452475961785258175758223176848487089962079061080933351009806263002219323094028699823996062948860586886297966797111756266577296367662481184868744541520161321716351120721768456990349430460822132158851700501710369486531962479965316133631349219938098111102573385989856610882551181263329641058209959608172112974253492828076669090653394355116633987856900174806359197400335186033881284483592336991458481383981126902998829841081941290953578131302452967709560936022406327189893225983023465378243921572835528681920221226684104979840207860787928506726474337551382772381519556402590202508928337946677826410254097260732078250412703822500185392863873814677968632008997107825814531945530399188435893637351629017202459896413494712264097842496602673381606113768412527389430475021747435380614937384934733331754475922417225759961290097958619891698219764975541594344957701033431016557088746125662595021623962644264193086553710324545051478431467265124529117886653411304557166604162152114946257263960978775667074997238232185340316758351585642539278505382208145044860912981544998286461617020280869844416989552109979996382169935434411512491645844409793920163746971897243980369829582554063497625912783845496062410291843053119334408956696834950107839101968550732997732066448260095437620638385106781361817398167536552833517610248661674335264344233406013249227508812275435530229378574862872514428201308786997406881638520476966954929971281388716441315364636838798462015353060173528210272109410346178209158606222063713093263410593564026587803640079820054577302099046366113262486634092074911093038943491563670689105167525617047342191355610225585599439249800473682775744225089302371371303195947712496719334363047896083269946247095223035330088419385597794170116227158625854471238248273451569099948672673135904365783882688282288396455591973681830603331259261393088069871689201066732269922032167975370326137999288564955552830832290010839419673861874231061537871216360259265840432015186203014149299348279369651684139653566903610081559522466631076592967720504938251308131528603931823704369522820233984356531612367412375827764568226866979538934261429924568068930032958223028333799022357772445302422956861195614634526504072567868464090491079709037366988036321214302889274245785725911023485627691344058487294737163165079173328650652322299168836029420973462016444963755462043312847358532614704327347151986436432031674643307533257237014439922479373078679133781511829585525522897031257355228167117119033042935146085983106145977076128664251073429927628137261986686483104327896666924407321977531329574975312254746388686448038603206543179945461202141322749643966877314422538308837857295073495811889861411269736476510172850830375092132737775666753577977152837770923066085109943993789159916171660751825345360671453194009677652138283038952490312429196117976774655968584149451370177271745253897285888694419167287154241071647955596680723134225300617051578453251898125944673601336775556170447833888971571312468656358586326247558262643392030687745113433223819918191248089769897231580461668072115019789778852141865224892236952924761140833679482466889934950845379689724988588385729014100074004629862881803323903770711879424380490091301141540267942196254518496979474121536422670191277455745158825518303698382838138962214364064551857311738950516255075043108341594313610594910326389759558885077819441148207933020181896794597119145794454622366957108801962959639491718961479847107231452599015688918780324701769882379398243878131657216385821087795770773093547905407276442542816218875191450840312922418211747639750513150595305035659756443334539712214800234329934304014426400876607021754860231956445540030794060115164418953371144020206971162648423719886382601006892358873179510561024523083288364908423405056160702996013012120520182338978604706902836311235141903946326419846707949088064490598938243016604579376166170201315505779854329694482162159385891710212448395249360347487526622910792790834165715847784273189605798876936949368855131348540891832379738357017280196271296585678260104419207597050563760633624279583967333953801636212205653868388766137114059366800312814866566395479705882703935248601997912246112245280243982091452240221478784411538670556057763772808203838901826660790764938921977841563222187015823139293523116554675249660894744693791027224227851784332238414323395696102832206961997447191685949442737489082004681741787378139127207351427874952713318931439607549301808650620939646943785689937086730942551799019733363592003178121859636345187427836594011282438946264875160773350778000701092270823902368775735023540861890555168840150128346805033486793888886667411187420668341194708191285914598694483612797330493998488546719831217644458712247630960889457083484645818157771766738982428947019938209668308685653728967929024707732237520096350223494306175486207585676192460037135842838387765882020036480159200932836066878789324340738763826531417578478482491431047681890262308724954093373231127737528154709781584123710838548660303283036861678277750458919111976483221687977927739733424088800526193017083044514076823660074634590524206645726041941153236416325065109231673772733137054663675508955554524390698359030341070560981668801205226575444806104864558332643333671247409464473444867482325819184921893472617613294502587497984000436654578364243796309218588269096592199156788259523781866733912287039154519094028355627139057670733465363563659363293994972913762106022445029051901857862758164624254220066757868336887802452491831356544578534789346141479879452785667867570367982950911504859890025525831620666098658752103472930301017987489746188864479745383374822053369778320483048418231569369250495180542869761830992051815065875795094320406859981069228583660348097742561371278407176484900897000970076579196359491014206751556444766506347319284617601758697818355330090495066425955097826834939271980632961299440689122958908151643105020373396401671231713183524898274487600367433717331242685436189501312858445051231422084419569632824755305087697612845891348751492371017821785128123452163126947771451817019627735162497717218333424618810293063327984598249211984561858965320254128251596742388340963226968161374407841429230038446568177287089048530073446419428768293131895374950011018872735297148230527355532937066452933648616785137643232731481406843994120342817956283242597805687081948892067041460884612727522639575614489266653670865359686701680725243668569409482428042733441547262738030517093288306419551604169071972686709516163799494711503858913802140791679299967748860783262451425022355829387493905490399254528903504022869556296620473736453195172758394256915801562782220480539894096931741554457693407046668005978163160923199211782745317236611527605421723327322933753016943160180143647284648942212847943989066986932367600601326227970016262132465539946683718209827481535627221437498752687590579368765108780602566180801192606163525891436793237703700323925732543972235335231310456233556776822766149280849863799361524996005876107078545702082232228618483611060614289631705962196425293345297858348505775628377748841356667253018160758372504868970404069272858460139973619754791342849991920241357600677719181028061740162010764185039106968261897606383643854670987295465459636154671002664764372672191573216232259935912611238754162869158821149068955580865297109194362950341181263622516947620125472555928430826399733371574727535954312350438839962378920833746564704804362606080715699251308818694404908115927715748420004572540845853583725517996860051883311858636877083689934530326834112604223463880735866441931774900099119466113410843623488682648929211390732909606901919008187592540763595099040025864323612133063393170180125386441581575694271996010397225751551552966280657396437885299606051889401132914720120134466270837684811697342839491881422701654444433835755784885320481345733920684672013384492775080789740747687136028196992118204888422913868683264541191220819562510579808257717789366584373571009984068424792725717949268237939810074935954697604984219277606696826043948870153662456269798475744629701707333533187217333372861291619400252663891638290541362933142462281911250909406978601827673799093635844229942241705660542287201460052554220202498097408641664247549180521782375725761547913925138381907746216958693749670504875849555559009950850098202212955455715372557542749424551288276942307529165999321775568478838577302365305027586820286339373974025496094570337967861616954720285403775051040930594059459140811237891776474762584950379615999917101620976481306315699877961067622916788390876169419043321435591951307418698340061935300059751878623177417485284249036883037409694971140206439284991139652660342213247286434035494810964694987145719202095682290333777571004903077780740404865807320252200783675260975610065749928104422295418546231570428260226931490403505205468811266879943608442246608747695952441809760664902856925906932687017810665678798474794577454110300214032079975211011899091087966243003446515611233626199552332458823244030851650081989162584677688458445470030001792401178376009457786088176371586563643455018551421034653107734016098939323560992322170228149275208073023201555407342318786166269618470544095876841261996393182864699695391156436625047468411024385917719002814850736163531294076489971064629573215115876384603671535267608897281706984232517353715947835356063510695892156511743937255111853391935727618152973488341525363674589627770947561558761923447305925151943310363668870804672517886257449350352869609418706685833138398005546856484352812816123357898937423424074770189058044830844367639319422798435322554289628670102013459526271514618279488833642279831366432873798952553416320433941622477388086930051997747051062852596283549468709368043472523681072009037840736576644030649591479209792384623795159841856369266357066133712151347175138010142388254175019325681115487664404309012730647331554906601317855909568215141610874139011620987117814149295678648833075956102427276014087819501873419459228029107197624361425306350639815461708438129867397641527861498539199686887932937024165556698997866031922680015007889475241538948097734212104386015541961901216034123686943266996666195969204715668813259946683838670872449214380539211060648454596045189137824553011379547897919295018254512316546706813348163818238767924217061934965148337396727707218290464009687783912016385506552656253095081262920161998726852855305934962902276910746001890727184829322691273272372362885669844937636855702340434839801726844970026103318472942214020782902537780889759711276542177118578880817202536882555267833509932178279422593729349264500897933352301646165433597088163797467940319873870984997601736820789693044262034087483273382990772817228760206704129974073902714465160576580606637319451473024552434033259088387511594614053553602499365388449923443592208549141231478886510797148983132134512685156250102008036066797130699629773776609775139784964279428277859051951617818701745884282245092721892388586732289217546508006358206388704977677627594308808478444084927377209775229368141014733711140877777553135082257977604414315898603025042220576950757678104694421454120817195647108471762129779641177914345520897388622428871309665768943535337737812746591534388456842672769683711602324646531507535098322196780681014422413506581542352841369288787876415333538222641466027940229754879254006188742213962622527918605729533262941482379269974534759140232301141513934401257948802258777791939532332709300705967375180078488274333231796922808129803310300084858621475373839924845373181888680218595348548454443031290140199198089025577734052871329174520224825764541200629325846014124238257952855536852366832559408812451086689103031671842006436599674984709460747485636888773692454242598642300991899357957514320217942451194161013045208714526246744234631126157902119105881515492520542658363616174304771434483994050839412792833976868062837792970819486010492174262262582332266814965362343497915248974739717260878467733217313745843494016696242440508629035068725592400787369845841781810133526896819423341548731453642956344539066566293479540542955281558524557550512625300446535413081223206849450658879423930314199849243017924885347258179804696369660083061448318402475886768429291507001923254116071556134458509928770372595545125448290128875795432349016936925741305852185517498586074156283762008240941899484947146027099607062705837616458942171557767091010612305676491187039570189527407681973194530565260797407120372622793970189834785447473392204858896604171030714598291462294830378881315273605299937153804223479324845295775166038852245028638531583665647892735232154339271461663961104785134252771951787149543055047408458682307697583160369744184049069129889019515204658205859122627323089881139043444337896384801064832165204631591907809308616534103921524935348956799519195943482754395412775931369071616834035302341996097481880216502443737180096031430907255806276838560938569235732838390723992651031923013784161333863449783055604656533027601963267393669829388684627058165202620563602639856757463666174580552089334451764368297977548886158859738433742000586763980190479785537387240390634459499048717698020403822608627839037256026021248021359332496838444029309532707799919307895270337948092281748846555546956839867338730741911908926924066675368358661333803319412143627054509066519700164794210953485722981201325188579688663374943809471254903350593011295153450310088804964530174665312188670182559899629145599646496685383970992986350567377498148351170800187491169551255959019787756847857092270274006962646786842966190270191972680490512833700628444467536913988670966760080832101434364620675225519846374589661833982108090918611558495067262009250258159576716578949301088317996808745626240564016918213005294587360072974336326559965150660889636474415240343010151829535923531365403047151829764491449541603193762898154766952610631234192977228403307375225021955130741740002394410973145087152898769950480837210007059739978091895566984509459573633392487574413500058014465790419880318566188710141933430759440225470485233094306099463772384430616010694012212978026126427577431077600906322426416749961216241618405590491296964862089533959746528946853575817129702378675929854788159605339067879123987649927545905464399385173536613180465477571198540233904053460774978344414960828221521647220013845342859111167001485206130001169578536259837526633799754065723669206099426658960960012981475264087810136876704178347741850726268582648268112424396987534031983439203034788310632465296858761215880703715859921860070551367056346341190306043369481598589814745310801407544275082512100977567693154503707947919699934494163004071050055938286973094910594893121156398693340643110092655761153038409969020606781942275339234115602119240588109679475407948305464997310130446665376972469479293543893827825032638304314658107078212732566813004251329450027439098124630567372207019680517644225903265768232829767251216885330733248140068896005202254967648271147377194088625542947468599863543313240961634284750297164295437572914522461053653702227050666492498602824115113516195044177463982111714614824049887742653629875338071409021620472703304471916708928075385809549342197103314003117353448534997890302440088644959479482303949279501135645103906529574258413779636732750568419270973964553461821152517299623021485055198740427473207262299215458834971529587574435608313579177945869142212896831946500122075975032712301160880948385687390293326955411681500807934483054901487240046266007679008676852644362190812155604269811870681940984662396648644930910916664592411954559283045854341691619374823458808751181405007229222505738334297497255527641476416403206231324650207424512325890474764166095829707144861766354443290842421197735772886856185694167666516090972940026759824036023847972319415338232463480771599227957296523647355487264332317927363445991311541240549375784062576882116941951103795167805455231420469331212685915377075097604397833014590000594845346072790049612345888820112631371731300679937501387295209643919070991932759661845210581080702441447069083884448405231145058876559108403738739730832428536301042390389815698612423972173767855153085479902660608280936272632140207144210442719863838411567887121618715445863743248176515409668079896686799267298701870562993989088732427213014117900569221111294114081132625944314652470021516669468843405164136771371303034849396270897665728158806232705890239814344156660782294801448589140273254759441913910185628254954391051369402042258945798983595545620392707562557398388399342308412952608944396730489799348295940731141500706494222248827028332145945713105500985871252397601593001269667546453598749643114581806127608330570691336228586042314637780892945958346303109540693127671420552380488015697486736229264676972746666346812760517124581085271125079996725632298322783020947747509308329151584381533447698662727499652634129156272519859552857408314232163644547493037170954382601554348278370191419350086328958125494228992267615251238957848917489537913281237856320615697269247176184574304771160548596297212113400986239830265823233841106930021039273929947295410247406614831837067593810244500907666706941711724161983364552458865098477039952369671968905957560816337687659932658146054657166241665902902748957320059867466762726195312923740586757441183468724135862089808238229648213916535029143671694766089588719627496893612956762792728528316348268071921021405714773830085649706326563091442281473896146915315794923910746974361429471185806707208948832746530289097434228559001202434595728891851158148636304193274014442463949429741969423578882446391264510652847324062913053959959432005979392527266194456866986607348761179873793414142915929760162652672962015454704266226542072202023999440993090513206123822238322790240651992332770371247674997399655098266257226609538699584832721921348610547735247358151645688239255554257347137366778580191964470388896965036889860195211310821275010264274056301438038996545200905281341567872170360559349237320280388638628402360956014799226220089954007578552854257794726981747033970738838041434096749807561223901191589591699928800755490874981915763872690986640949535286383879946516178528792361275511375862393360888946706734562505328640107466961900010669472856618691374840356814371249301969176668334043855193163367837076126527211167918211044709775211682276243324810006581423309493028673581673249527598640869527005517068245526443132202594927587511624467110237051553397932623526516306945191514048275059932244300177451308000357234364957497411703768287965402487754395924575882985598938347155134241887703975372567456508710600723508599908661548760758927947422004088321845873081556822826454777979634017126723605554163228171130819055654139421074958861452911834194716476285652615598423856576280380352091304499089890770034303447714529355910916341608805092462988724376888875912180184115009271764194998303771368766875512487628947202995862747114103261366327778868893868728633350418020769526085322157657071090868366604691843218848278452775408274068930982134758010144365550793412747973010032206766558296621461133618763156055185917514740465762006276481698253435468930301029488296031417356499012479129638837806938890682332326827480756386142430684651921819858529580642402494805183886567841542172824370855792021812567490126563459711344128816974345295848518239959203551209454339634166452472170036945916081233864164925106810530610462756393446395630272660288879080335512441990193933810883597271328969157023190891648713491404353238488570902844043135408256814940537551534869350026137838533486986485292920206295710759515095789697356258613701738294203957876602824958613200999248922722066557490041528778957397714306430943482035257987288622760970307031094373972750834404433246353953503824254288696709727993315441091293859672555108621714713934480240192899758377863374933917375917634417615354878998199341544140831060182126460637251834868227283381686697276828304341074339414335284251520620720509077725435103960210261687100028096660796942685581243728907805177307164723481344333826006016381703869983000245657607033416250870040590742392888888288228113393378716708621107019777462510678245045743980226130566756633236904579649364494178317587405787349985640472109405274362505420718419356943841819640571476898570460747512571227979671309283189240622553183564597274486544657961684356586695118534322046778931903546826631464821549935838144893653471332173506251203824772868321191527159359056436138277400709953145119925818061885948591928929149300117411863009568174798744204998234924707525409737223969016811321773456352067706077408134301746984576250038708933232330961203992238877422445295716152345455512105603742505646376839523555515472557507779267016854338201787808451114331681976651772794180628312794647195360930599674596686659218313172444707233251479959493182405298068506400081470999702563487786382638203058062685814580291808041919199793742556521527969859871738521356082265650985413326846096528460319661767096335172047371205380355008060598132340196377462725977784839249562137474755675242412104168727472405891404393985743549618902948831861345657967229061771746416928192835641920934537576719418564396981726506161738800135163344734598627106922423225498423460238792307123564140589467374183568965623961315534588972639616213303537226744478270542947105523320546789500428892342365287496373298111950560052990327426435261944522492577778670294677998509385855013335556173669027533344903981060296323551806371941336710248920993995109834451174577525944199297394571493419764251922184908355213872269777110280145486249510345830614238661499105183794356021098471456188166914177793794337877846643447122822635016509373496840290034377162310011946708300768895992041884082503453507184754887545006251750985382846487785193784627539013760041853986452799154938956143118669443906011144720729002438740783355066966723671920085001900715091258613966402716162767676809036779711288829190509081889451491645064522252478320344199126062025244240859313292224170881255659272073629759617140932785165580139245079558048653989411403365152240203366526805224566524835093764127551755644820315067232499817317373744995180537689235080411919745348957447771798145771212957730120269055824958380019873871147920100444023074671773676515422769909599283604291873878083479561920467159015631265148643528545817667122110649767507481987770757532006075968691409317691453194624473835116098824994046375564904904984554937231097852907721050893946688098762405576312913279032155142592063726416177369871675171195363853134822947980258989404331745842791960983464862439252313094074501250567104600655903840127076503264111682888486745923611473076497720021460920814707461206995159332134527555807189415146230169783030738892219462497311209536399342203636201160794237229041291460359978174509406756750131974381476787299988631070802397769661821581603463634925264634737267786821818835723097343122948023220437400851789123925022689768932720003400557921174709029044966183367505455084126530739832897751899858300027306248949289803757656254877892187505189114947240821075216917784313521266817927399530940223387223172499702077477877626384594520413756739707798061013858998529962381369807640882412550012261838641754000031113373186633136601740119176278551605937424357183044970320666604088047452026616010719079759583950561179468312336873726964834553232929120496534782750338741233830822995011617966922334684133893954723101802296467783085687330085290869471872220077594221330564405582861928693832258246044376979832155791400187888150274211993710140895722364914076625833352406549912236254864188789578284666479513804838739977299001638001918089948953216067738236392205519120040788814727791060574953528733855408977724385324656545679972697139872109659011447886241042989453120555567282796492301195322211186347158851583720373121234504640704953107905619033067297517945750425146718210159661364849862573474337167834330653897652588395132411672700725546719698801401678667096591091027469247759847438728115929159314970305424012608121060282133287457008816750206887056276317517728684512606507911029241864052817985604117244997937745458328080838669129840718829587765384762219160947518207453726603121199119443555219892612493892349426141404713512577632586389862104932316728677862792878710138128389528104722315430898540856476946693894744364100600779968404710418185415649011948743319299596486648623455364713633827801799269259092078715800088631563540652836799100658342608873275599351283601591841486137422230939922435321845074620433856688227749584251579901529487237715871927731996902590597106385216614615730089215674355230220929765578542448440124910345993365188628265667305896952498739575821822435183376053709318473805202624239796361382370886551928654803551029255274754230345870069764548104663422411869074030093437923192522635739742606579809055029199079134320667785892997693090438133375472965389013495194410910497970900170730733729172806569363351983663999963234384364169811757934600664494896809702471263070936328935293296806681081658071146145559472012907125577693482510455843776657383011636549521202866703401501162245014228030172385541937476337103498999783540417327978548097143081573351936734738118582800018755053265480125263714086809014175228774622659715741624163980413027992983613958307934674579653955386338874187134252503503122892357889930512925026906374557761694298026884345418981557520725014387707046129984366748571390637517809642604072917053337553460267914834818561198557671933189866832633574471816330379780904031857289205226154190562439291558445088456742620559017543328850397096146387370208105643166066532650411156554065673593851644218187353850278385693189296013778120826254761037559146642731186315318094696416402566895708126298548843606936270352200184795341034693483849028684585499043332989482369203944230008091549817092931891616027147099797599511983028808982643794990992004538554736812986856775248621513132657962347149422247953026800864106267387241294030153892962209714119885041713662576872496440535445692187715391652814260965136022296779997968402896096707340144785583299642217084444355273691733532364294700913233539658212099046544493590635993837439923118436711266765123618715725659974532609972081848278081684222208843365742309325823085237562605333583250062809329665699025819091895933551453415527068600336410548758156386746219336290739245311396211459050153389257824513329417585885531840856980524417084220403384523514461185675547529910707348503133294376603370217870197607144208132324356316984692250026672979276354879072805530644022098059539619521220725114436941998604221153238204007231128933423477686800607309418132643521525054289769988253462416753535114608612355583631758964548628175432850177446928304259213426040718556162786501913662600235653461318463593739537573394975657348766910055394027375738344084800983828424036253462652532641157799797707224712929495843725900204654498853078720529235996807625101505445006155185211052703071588615501240814272673494967693738174101671982150048330392691350144665332901600654000946962828311076577065955055551303273430817920480591203221837204733031749494003887603644675217129515965887628986864197342405987723350319095646907441930647131087049262029436543789176799365913360580615674965265036332690688279966331335744815473326531931622097627924932984254277140787841885919031952799787058245508994121856558028986867345101541727202800212215341287366850837999386930471359890999621492397633233466183923125539114900335498876220268100813785088511669625096927529690166367207035482180824640832264476670091894670927886657857393601227201439424231870644983565868457718150330938901424817050792806790925088808425217508777129922296189069942355830742234067656676794613284457072697904110665598528666265682641725857818574952312016168000230706646694593989888912039465330073483084554357108837452955395782876270303740183763149490297987351353684398998629748240411228377304702516210916361412324813608882518135943082267112394067746770587435017963115933358519767019811529137132434110619853167236727616389830312728090071118029372709526962425779793754503322893166375744063384075493832643121308818610049752430953768430527045203617939317768603126518110468210269345953842730556727648279834869070625724222120604020620692469544665128673554124810393929039426603040671461776265735585920228484193509335889345163747709665999793290387347112804880967904652529721970356725672139631567088122195431869062755212014558886582464383237610187874478219556849912638456921441222025563271577998257075512391153561118339684754985252538235765654503214611297958025525177455724352807251771598462848697951862671569875427142385233346821276682610532057600904829461977359477838627096040741592296239144817263000530355501595155630307395352718701563168636237767878739739909609640142885029556396393188567451634950062187194082162376969920552575685071715747625443266081908570663590147920443765986423286298339241040046498973472989384138813594562040218129259187699863719891773161607349565186766667467146768533313093965053553749071587843620527908061760386628853799701101245047888379188520565642689568984921536281958132468271842772012265846429629684434125605771084989072028852201694329619869340435731101186481285982832170691493374600341841423926674284893457378711812655177306076134729719150683365947658423171845200992733411616606574460565755083126496592774117032955267572244263731145397004618887607959805395531643902371187756519388211842280249267358111725049111370193226922727118480662682498956915308268177731623084601261936343621500767163919542180377807727816796328827770528757652139277831302900746701356366244078668180476335391656296900877082228525999319966696271952904546034008402612715191745523830400126925269610142710083841502270188710689893862639494182468289576301555602439555135219674931889049504152194517313510835399052767454128520876867257980887921268366469543302693582177209582484720486701570403190213150585986367076677094258700294299894579589198481884562859292419320503855896589032251278034359134510590735168051116247113247260932062071473305065606961479269587915662499144451160031664152655088453639913345324134447689450855016739037359542581495419004995992486515316188664330895934102600029338123677319651868104949999710989804806386527461628780374071744438209843005684049370754604907088388071672159953078046607249904568968178130032289302051800443656289674146362413888310964531179240813675056932600216879153415454901165738776298936088710981782329644541814339578797539232335724853120822645029841641810705785009171961696926081743506039879809338397634320864943998211235929698126260216876452515652303433424581784602921487779053812535272913382479084416953477281382064974249691275986749836378951333335172613137789488509972193876074087560852798490337400825980111361739678173689566099251133065087140218340469519011219648796717103985440036673222450945178265954137359839751206809604934007689813191829157959732351822711516840857082152868536620368861141592422824981971467581288789658941191810606970930430954708732778716920536524948132608438675009564046456060416311886918498783341753391624548806701920938099065774255279940193504218914635541643522367665153526278572382806859663529398313747148079689506849673413582697333985395229906374926157519143651510105408306527992577705150149760880503943452508518641494800313231174261699647214599352405416164568641193908793813665921932108190315304266286343956778748992092895292704942229263637962610581388647862163241029537946988797399124743895083839266030346998649554503441293448983334320447604742713880864737258639842310551488730144972819467802882486181742038231111073947186423066664214681281525740590041522723994383756276636163457655630582688316815867168720981948613799459007617245202002583658041469267722272945615237551377372368668875888886593089795058321701013812187393724692558281237242848248132489991686316273289348774963797470002589980501867327041442299691693313101390789279198184806809441134623643824218028592689827730436799289062202459362102408367359243441960451324863358291304740566325673342660680091904467145508260719178245192738051407739966308376388023322357922640179328414264028556836290620633170591643189918391836330409701427042894088310463843329532202496489154567113503940872742720916828433540935344383340026430956862532739441406757392378236437520105803189335372586618201136434545687818667964664816594165359123910214227919218356166726802781079665625150710248697058510100855961010106702004420406525550552221745416826632764198988729340822749340730160238448078599751275196569360072563449374041792142786071319705965226401069058187699780591194794313527564085221104729376873368846762462124317416582945018717140071021074208368347389301430173727666004023585390434177835168219912620174639027803568280892066461884991696305377174717787600154134079497947005383760751705570603171613923525622633869666050987922872791218004011262846740953474490344046668034345989631185253836661001632353724064637252058982402623148804612141109358541102475980655145689256559805741404768928795146054725060153085107458305551247444413731882290543654930074979869626382996267081619764626428686910652028170066277798942836831222881886312786017019948799570515131966468605055089488635908233585176377781018145129275166595169609385475151738308074776270525936948783982946393432667435084743080610133677207530988303484192190865234873008199483712279643705437065021534257901876856136005848152371489767388345251494400363646946063396330751873378507479990374901864685973065918955545549656303076125471683067620767674669634014193881785772369566193234884722113617641605288127735084795561765663252967253067706314494364958355970643686964378466239811249593492042386569224588218032357323264319890917780195441677010890376089912056689610129038743101401954079299702307415569022777563819404472830276190064778982423893616995668429633612582336043240431614132553122497320828378753246627612790593711549716984834062752190800485634205514682235268814114035289022991304231189533240399056723096740051092199587089449018464276720974089822020109455294656538427211968827751904886070801050672583239564784328140491167867065681763902682114921146009974005827042761261805243395461807414327314803625354266209572837168200384962892546206409645234538809328189031683413947539138621028709938275153282494524782520860026185709377532370858385985809711428273119617601273827889935470585188335879139633799051375986792219188137011275665262369838396831352661948347607136926580169853885402021787049261604105503392488242452518721715789352969224926550347072864221737544171173015126899531038111636475054070780488601686012582636921752590241331935460304755010109385622883434361224322247016708666053569233693631852144699319284108597342830133415096240000940662057789029105297689299596426120750499084951652967590026144818753933759345257141672130942080443414834481512742927135971867555233993387211779542466122173347973219307373699163483106716843519755000979780610806475745532192736554492408536878943275762326103979559873449023672849097054061307297213998124328599203834847341381322063276647497906032204955792675278510278823609508017184457692525519882415856991668342710035479167246314469363470751921594406335774270063596088546762340447789122918825397013786201063566028148262903050106259846727603340751050305292243361971318033861581605825756886600074644863677570479400271316221614995461017399197663818044385364741069278175791039414998698064926884539103769944315368562899792459318888307180821026191934779320799607049112160728821511130933788980121060622425121578741569415945250187780056923629020400833568268464722537444999705081099000528161296304480365466976028087692854066179531750638070989991983839258540041832013534818572613105872808879475502579172285788855697438504806079688111853531547365978582032894104580169626967776728857206736790515673063166521822610167826382931923857371761682117333382430135111062925525264609008677985553415230499423182412943891344161059414871414054988262031330146306642630446809002389455496805659482179474893675760598327996588172982221202976639449987319881382873855883102735547330280109155637650730973066149362087934948298168971902562906381471810839705411338868697745635736118634338719771955055106435162241586676314156538070828642262704080027352658022415311589336914726383540519533368316124056093123145924490500725587509578304203441078525613097668573170994544190934576892345132737183494659383466682070099428535490623162726227248798267113951221179992731280355892936328571884136467985887632163741959873282865124560871961782172849432919465481985053266741755707949176367302483703937611713870729435791362764849538999675974168096051573294422261910570583316205369230776547375678853483299539677916716202049514499428445072355693843762760328736355290690303486534396002468174881283858929625431301100627949849008172972662498621618388480451343275265912755898770347470361106394929085630839805947833498215993302427800259034296863706299866934564014748562494278186366524929208215448673097996681567449817693675277370190497520434674264412396291291637599595147802555930229231098101652072405794081256803231799645366707474281578909463699849468189833221061916921090733038562896907832602687402415948992367872649554486767493866145294364601733795180854531592141306628633974895894438966344479460188908004717323872688451941797342283891791910798434951497425945897903097567299079912923820390911144488875276915643087004853327208703813281566884861795696569161280281815085448761048348016350249901394213937747436452926428329276653289133525855042674532014430632983554465201355487494787799433948087250549081103480112414307821529427073108197555997773006938165619751633542031215668842469594382706542362727623416761286637775244650663319011866201006408976077707284052316005398447849516238086837345324598439996758724110755719249328755786851947027197083993142590222274815617387429872376203660483625642818506063496109081869132664571728849206469221552789653619149547992125383628690147922987951248515017260158812627334472675665501190397243141169322815860947328618292054734600328578682994819977995537000025185437918207331881164520118944988962626681405945680274472897257054549782455208916998382184276923459850526196514342038891172613371533297780338076245873593141547398666477328242555793642306336975274952412553401001691035827108612442270896932936506676952175589121758178687792269393719732399449409306042934041983759832734502932379434125573149508359530498377281216962691030138938136356655724541612688833348060884504937103730033090530606929749220201390477724657157401618936739042534477600434132373177057027075604632213726136226826557385790700317660042135799700161058284101159890950192407500223480511769080328483053982924342996191999589738699060096981396893319866110146910399420100993882185514340835119654983197947143300718636991916061926970348914842036780324876158740688384448999335625818858903087560164685080557980986020508686243353480834779361554869445788721897379994803463553665905128222871717107577272251955907963673430431500658935186391608847822549880262230443404995474182931136269591108409485163815217819011574809624294406866232007151939545691901007524967668029811940911458306465695691298560715740292311977492288723444640427331604662753645682825804598129394784073908980144354400379981927391302575607838018046600488621752989367025155997452676736308169533206880489995466683769270288275506174012233141976035977321729632975509104992750978131788227773165459657002161555535026573485121374587030775029608199338746542702275598775914415901979889693645568168247131838509312206840649010620107132050555458163827813886190499195051498010040097713177994338233043553059051153773033303215684664611243566386730529200723843268478533920286706613807884544067945789203103272992293264422015515836340184201006157540199481091935139917563644793999440370742120059687727103455200411494953887442397849992014837344055797926960118737470627148860113797009551114185118260759533426471436984010203504471986941975681541878347829773001494725638404124607896660268308241401429645928118615180636709145086834930233482767940725478286016022732662118971258471038747211077322957539893365455774197893247925884822183739180785395921401121872158881689355712365372843718067158879415459284857476711561386207714194363011503740302983641118922981754504437086029463997398141917818850050800908660782207960210659204493465111717795901764216613014586470312308192134670453772416340586988932206557382338290545036916521136175377988797390989491600528506440068955878797663801715913485340075234896994873408456075992630781063866255248874554328808817877721354305923425694944984851081286753798511302840245561064262561092325905659826705362250474963897413811841134535760420299813962149156088209975525896096049599273909440929089354387178948366988401296677870151271569184248497502196654918451646655934193586032368946239717798318267683594432296416399426126178632845195843225993516815675037189156169969916688958108419348392091946725683758213028935767996586569812442604096298217971946412732202565326795703103542285113487582504838982209079048458090754320280681523401545921902430595904653257738566542520735988239712108516040548519861875966352635875115724434532536928170834411014796821257529033853759917375838044924406908106616281415531252980407923765662853384426638570076705025360615693407098348903843067507620641213825447129197423556824560747918030088320385870693372469122601671995649207318467055398039833257983922243570756488146728181233432120740269564894088768772163045991710306568476025529698906513476100109542259197520295642410828891041319540935741419263526969624179417065689655843404051038354384346463467571158631787652208361772592981032983073591471657180418038764579413102335321958980396091992986383203908551945057154441332472704922509019149874142393550788659426070623084071927153258625899100772832963358614217371483831494197137189650574054329452349153927621193490134977345834252632510665431255639314596556297246120288026191741969838811749898207806050285741755110428141514047325212749058572146845231349263974334517082395261300522432121887530432104943114711221302568073696695455941438976871961750346406700756286955850238660066679668444973395830721891890639682687593303325980875714821500492517017396295478376443529644873540780336826221362881099798243033302740395509829179837778282607329303554050044016648714124155187598387616840492128724897998564743098416321717418715118637523100119328159360910151576469710354914085039328388970257708595380426881772516486104424533892142453608384432176399746850654004643232696416713189750148986878702490615162900421556946443709865600031513199725626620310757439939830654307552267022151945514467575667009363044448464859730922033447418263158240206428754418601698219413317833012283981129889159730386025923235184279575270006594667121107860552925887391554996680703320410486606102865636672552340833759614278245254244178816244408061610296280899964109281120274035218964370840687107748317674084238348589114869186994348458052569900989125952608155939428984258022305790687636280872439975832913143447824115365926340023187853548176693945855058305538687876676228548842510682914522034173868532373327805691922444182511011957269407267434347567784527071425237950023446010664321983116753676908171098599938861474002624787785498200321736339556872012423411269132800004528889173600530781032974042245014633068476224858119113882702172252262621914764383264816616298428125013967568577987377260261199480075817221979030950400393500960926075159454279529729151191177727613467930682901074354983472466215255328296124022297683007356483024907444130589520635009263618261646783820468480189767834445768879284279505265812428699800196058902081933070616847177237773243848167180909993513686508350019034595109579907751767051883428341846136363876194779811980598557076536069540114216928155655671299144399214395577270492191930900962171328175124740469741168143059780904533685180895094469520439580812898845054828756587487259366805761262217362237489976076677668405525972190454577210923203344054085862270244849588719723047226445747840024667533370136116441849953624671936577533874076980983538203102646354726035300692920160053386115086234687356144996291141962590492206816627490816266062812823675047510374943181063956903774088906464423335353169457110327093766176128246613954864697441298093075811861505696260813743171056410037373436586588003633355688184967507128064169483055692665265316508935966273209284359550083084549327868312424107884440344919090753927842073884276501649705057072286319731554798864867388367783812961396657272975469225997248869016719829797030410352339627159303189945092894701660543085977641532293745011276600906088982750526347633551974505045619032149982175686694886847558295194004252764190164154116581486764215781444810622512745715981651371309456013158740797850576224765477826002568315319419008451723101240412961594397443131130560380587412715766729252880820871819202912439281107232576304681711289806708514305521727655326226481440674564757428597980808710681565647666710190888010777329635290279098093477708613427809498162071986050244456612965020572766438071086943200053926406138729769840562831512227283676490355716485676720294537570229732557217972422194007031862842834765872420149282006222001080736903999623092957221453100474029005656690660105802268859431200775379373885516123428329007242031199997069068394608569292689892741090234602578382272977492580730204890626613088204748926668936126097209298047640760599516383445438156492152825252842156498066700221131744188336247169528724436126640079314160800425442827234680639900986649137060286705441207644631167641197287597669803107111861887003229242985052464482496636296406977534825334599077579239946794535593801942955833855272880583420211978237214383896078627695265628376427275996364077093285926851120758621142521812419859163285660692782613142474568245530342428468790161428056315556800989950066333130921613242066987947704533898430355618766889282048939163723925905093318948475294186635051951782659654144969629181059977733160671768340409187839866798870349259839661188808243471881898265397508247480319041529629583186448241896785488961257128585238386327100475911193208231560420702801157753300762326042068573063356022053748743713819986823331275391253798988906724392015510908905935013408644935303245219480011775835395006060872546049299277684624984572329345488765858116898329369494145435236133143325815503912217723361905826684876526240929633345945574419960208436461071917300568813472515123488064613359483177754075853737509353987255291884919546871375487824519550071204530743191631937116744113227823872880645927128269403207947532158669113508462883428325608649347917049636166183006453578802358696804867966922713588327506362398919517178022929870919221053219282310674705882919189283692404412872335233949326542556346301589899913657422885373628498700029879614137296851046837614979510950726344078817923359880711261468570271749238697765913434865636341431010196309913578751367888110204388237292241307469441395603088765039861226592220697324978547890857512854746705611752257952320991568330936074448789496957817494902001532791562680225197680172692688371484607517506159769975734024907268819013098911007057478576745385882807876520077847874889019616563964728174890301734331421750625891291456328449973474089957018897468638154183100835846081271495337582200809766513280213430289812211699035381807676239612786231269863468914687235843101544243896505345551062964501237599156234537556152424718703195592587914382541229168513213130585119976008123628651029412663338847016010187419470000501997836506126336469939617497976958127551753930652357712465441813689387885115184670045243976502445469147324491810151470080534283536300789090592951347935282122557331360861007164909666216938925803236166621031584547653560355881834937349744951239824996207845861974869734333531413439551008549374378572835830826564460691684476466989756356130693565757316328262507894594980135227568783676414645466499043375386713145894230579490606164662165870503727464967085924034287900438691441600855933429863047394100224430441747362577192785424066959621617448084561110940148972883183141710340151909396312534942596527510599880886490404434208455453743985662606404260522364796150379494390558001430478378271476428245064942511815422346739383565882308498575241576810983110825269249566234241055255918656545287475702326167065478695152882943535597182005311510576710652666250718968963612935818133194150832188425828708426360546535023402534261965250299959912273006239493024790762484121205846997235751196779352403661522107562040615705139091588613567829959584847650127955898475331488644246859124046558840747250807068486713082057883334724226149688936953594682693218528279120533601803670463129106394453906544720413677894673874101675602609804046344068226663332507407409891076065038312751009323688971356163494982793410304581935552454048705556957482912372217836740119476476999410843908930765756293197873613662447134920314209396910282495320060555161914579646859322007057458879657069128991219991288525720180451175414612400058860261224401481191409449417108879898930207398246308229129874284543035544779362321187019564426209908056723386986045026486463324743631333955416215910330894006049712125069083477589070452405770589251247148275882171232102353044719790785250348976727732248255445507812136639910526911715352503381294027369450956863094905865874086299542913751057602393023268308873081585694985489903568224227789018969929359168798260430237469450313247240478739544145478956098604794891097164948962599912227914822842058861463996852504263558923055478150441139965822845594341923249149353246097970821477111789084582773944296615070054520834860500558749223287548908250007489798780537351835630645813986922477686373820484248579963930138713904270970192220019327541046863559656936117132537479721375768458624169033668353379850041663231147559836832250282529959227657446263097770089120246007058745248620515402395913917696299166416275337040959811616446368041234895731377519861695811731549536522156462020917691891575533496179716198902309828941685125297151935884439738373472273346812797498547491404757915989774094566191196257264393475384689533915310630037021878711245460213034724143280636792717587374463765667413863753462651601459171294279263374697928908618949853681827391557844400740708035263491139806025251040650555674857901115611469929265019467756679463152282739098489853846501111986931443575779491893378329454097679041747063196195548719831357993756149213626830174152038631975301758731396563305524787365965029720137451487826462152228877285912901172765799455525481728257454929600876576274367277248892108145116501058525718420460212078304625960178431058633473115609546068763977864570256974506149067561860630339915404226947174131309151768182711762409244015417950916072944728849732508502638471549128836195671124466009658008251298363259706485828671387275301091485961522212918618076204325752611140459946591379177399831331817523071324960757593213921139187291490552278761142804357489187735733548686091920183470740924404252646661655563173790293595964945454163399624943931389592722263599908081521810585977735772442891113100316987874092507445301177417064143026416913193672942688907698902986678930971053905177856717436517685277015280290453962494217475060389746809433183698166990703239011144461675235586035521863267932353587578132255869847463525306241137004398468393585966721577203595178141740624749155584516022636788698215803704602403955744442269153513282337863821875319305777439160952668814874028498292683293310846191322358137379187596063524901947118962720639659288197780719391395306999605763706478150052287189446686209684912250554342158094654010022467250731293713147364467049258340695012133234190135292170729990222685393046084480269570826338120180511489208995679482635454335731014510050812764352231924661061467887518404567419797574812097712995876721497050596523629541518328826565215460044351011925814541074594063500387031527534328227643757494842544808592020277415618832198716590894753616517615238978008126668622707873068678209813150461766743017740035233046218464600499262789460168129549982566302645609591562619182507003156093217569601319086461103121797116399354912350213502353594763809892408976250735506500015638274740553338195092089888663676709863219338383389278387319032413596591859580891643622751944608174708698922017399589072030705873469230085572079321966237510421590504062804353654456833024434628486174076804171051398726394091801655412708926380472122083218359535801312573073900234214509136549150351106715895031075537808575337657312685741679776652230745816786873729972335537888150462283522995535653097027923415069810775698611715021477980261215202244178193514964774611548063831723334563204451999056725614077978035480694924151950144180020932147890152438364755329794778428133744221322540386059532981933522375723571681934109461962995947881793543395924617116908112833870293530774208650275325425745667914618588059594115646207231525138663922826391574122984216575727517540158583682973511540167689680105469607731085306868527927511043038310319091973084026499995581473338380167888803915934678806709621411205995684939084675951758259396264045611515658319080096929933069429910352778139418414488910126318853869395397350107409999335467614844011877707973857280547827906653594828057991799073095347856380460697728882986229442801712733266523674035711770352726426775500828306958221271596541128530650650385809388951488514676665999587606026751089302088874448812197688856180193950124746767159174364187843965065754455868097210302357732823660705906547960522473399450962705024848149499962509058248099287481795748037169200267687038377132865018690948752774860636787823756705258025218385549375649768185605965040595384841193158127070753012891574236099193314166336309685814787623611437478490994155874585495117140906325031778145197133418348641357842051405976125942764976810269925375847981190398335315601859580108446804619316369607454008368758369589324818318070036290220045253880987697803526050202089560722972251107373606564735846391050781315445061955317728267900804620201582701227432838626274846082303569460838911270410464425788031897437030943141670336337458128709262468637303210065838061647473315425233167875973145575980193998908148064233683574096476042642702143388002872646011618438922020875323068278965223795571213969851034746675600446707414092098631728939536634149725730988295725892381217024022069379673328614814792799607786127843028187892377813175585300810485641688607655480124261443118036223232555580359027983608062914829665332087390543075432549747940935702037821879823702506103822611669869368622597028632765854769128614130564070002407804318528993082561718014682566897818053148562682917910956494474498446718250558980054239632915511511084277284880852193264564311094233146148060778092271117248055160940435552122764826234312644026129049172492569478710619091747653938081471521020145239375667746031024603130992443695524070475806107266252042776749469413466174616290929719428295285912198583045313299029081041895522540466035698154166887036361510000364265127164401316188025465743658461095964790913544272515888285327683197886097184649761055566866294377472578021509857185932263629397228797677012463247101365721614956663437451172374454430328335164305886407149999448069381011143722104130545909930310015457753025616895896609762861130191559653811079691629780211577049832382838917937624681892795562846489312710581785122866849539150640834077959131989611174651637936400951041609526519147717230219835434973284078987783202745578299239053896430604542152544731272672698968073584154514933820872796056462259018496604139534400867941860258578076745421714525565546746963591456793200368605115178071179488179655289602061828722667384467103641512957613860880763551185939144663812354985949203143599276602968311684675106563450434205072527238518141373033309081683905254854050781016758287731639851905377010828175126081538505332172017307017990070213271330039785048573716952976842484671160450316931995800351763202107293474419836436879092322902275776656150704179781992317997470244736811272454200920912964522436351652462573959678593891578518163936617483117537547570190570337654127226301966999202962672408185209321757016328561992206254164074998395583841213239961308670571945653174119046563702953048291313493049094830016989033695449822775073587482721142318867436209521557352789460114313340273019652055893523536478460642057261574486569155637088259997202247864675571707457536809626849544032380989367422692000759571440843489214142777399264709277856657254857759051984169811958440915444350709275747105109712781465474769367619208158331342061971168180039909551249544366853505963840008744037425841480028227357547543465801240962428620879315194959881137290335084766878096909153442436614075998755670347867065427452517855994801641220779251947163104734501751698678916022593297864468011373765268036789471153043889225877313132983626944244888147807279752455662127705757855814165736677955476026589201634550460011360365412488865611932493416806616970977168963978350814539968802518937781127399498227104365181331047884969182818237170253137218913390545927384334783358154605980224976280651814439113577789531332354059027615898139945498555717124801528191417940113440177808347907501624739935170793701649175587109886471323638685270890395367758237461620721617336045880940546606175766644909444269936870463876355494211087081995884616273541784178419926075780598140858231828156891422877517525651242736233543723290473902144381391206160396886054833103166080434609218876947733718869296827685715820898301490494134616586426603429338197348854114018111662353887194270046909355294830066317884758086426981497455111870674369523997993745323278429377848999352620623434402817733581381875474776268559804783181404192125799188851132753923435761771595331205200103979325130000553991346172673122284799893984670498680213947789331813868505149627703066300354271386481572166921100476560172193257011971891456516458652671383236694603127604635603523955065077721566922717017958421057286341228099349790773233417493505408334525884139910495231909721598956096199680297677767240995915100488913768807409663781986779044481611598466637665775208925765930770338783488243931798464307397319256123833222969615154867975320458103066619897365302625610935374499034445084647288455526847633757239425528334070562383696138811463994112170229802667575019271863511009140649847001679034085161007142485879566655460852102344025212344288368933917433196765601802419343091512225864109221594287820852533035151833172807050578404162769197991869817525133136046416636792285188526769601470066873275043449612645305201231270284415699574044266514733139928930820708834380727766550446739527791854087862021786352961096725079078851333714430227274822072254515557362898573788881721997704566273095599962162228870165715278891633131000148397449331125683544773452708666643718940266796785046528884671259625154447884250172589499163060597985119788952671352511366307513634940419082491975877104319922755466862497088976645332409853433110790762614700685601619294609881337478572660697882087899473804551034115770193774361657629393408690919923619931987874621150412476267639188607130961439498728203899357142624643695771620488701487095908595197834193940037620577450699704020128751095541341115636731502838837236148027659158571100547340710537503360807464172898194782628289235079794039457348074794865558050229924589024979730354603262105591674580047211493210083307844435165562118662158223089888695780534474776124013545050795908829822673486740895523621559299261026756968981841359685226990283185903937797242519376754694951471721292859761628007062536226960459963300409224860111547702712503438909726993847310656873852773631227486630690287997075625556288696978370089751919699591732738699757206248776706992323598698115989794546120129802222058088801645037262673276949547425112498652814191704688524014539275158823394005935567873498931445567748973657701963894179216734455258840947447199090234546569669219380626164206186046058409661653740774248252780918863574677594846398375579094113306727081098050129957455730750115309771043396955938674567157157720842750245737665882483878410084953273273745123880653933791810974026476723490036955550790260331725139457253647865389349167258855822510722909152691309523076180613352780504900399329498535681358053003262766909909989313905319198969121191844490159427376627452356756594824523613564815769514728946437345522986932980509160223803286037438900091998379223862039117577201766796515451098048292129147353524017704762094302417347156758553433392002400439391560124518974108062423988617965887136632150340953042238971195771364623933696769524108077490996170373268653803324052350837240775515700967876543778844033909067415054916363121691030334942052859883317887774166003735425491078230320289648456909002232484446072590128676174419865992887832613427981346877020652552747965451685948708556326179232618185148060174330195004063404340319114586166667833279759220106547888280056911216426375515891348041629916387859417282685765333813260556857833321599348669292909716758623303470193595707880327672930033367310707393480635961706044608964656047971704447643497761794099381862083750677353545712491213824317069775598304506436929319663135787080466249966369690413584493576465735798496274751333533446029604731522110280164014856159733488737063137622707113586337620106167709501612774828663375799822191199796791250985089556958061497105074452681637333755811548895134518151300237557208182446536127723908856845109755216322709798595597137874557792357078066801545057054854880170677930392267516291856608530262685430239501551572191588092069845488999139322160384808171985756504868011027032264650357115060370238658107348186555865025608695609835024604995472452108250469210175033471319766191121091861594674729773530722221009132014641402822879578229229670242957704325949017278614770561145791302925338965065145059371828709422534338559180392268342749817261211708811172949432664754844590432976644239225768342114657788197678551705625649099944489112193345948372436301448566818598058119819536045482443348706251719782802490893026317819595063971553665253901477624513340537760738503939577635788368494338601546424975345094311975780735300901354800406661627678975846241964275443684588088392921762043722274480459769773774611571426201088717909738640791636388601537998231476573721493762674788793887695551755301982496445437530718778616239531648523689889019463109924531143767358055316787489465113459925845283490899718340007781558917893888241107498586225569989123912684554777915199179756834130553436658720599587904034199243220079122885210454019908850709488243405179516484560720019543404468792551879730430335690041016312691302927882080892491173395192173081102136181287776233451354910706568625822257312048614288621395408283291346945160952749997080285967891739634344223351167590426905721985725077523000008020423029651243016539264657149385561507250144859835961463292535570492768652334395921340726758569728599165178701336829672705503127762173562998559499832324738593195233550653869757068281069775941060710171502139530122053012651241983722051972832387580882188084057800572812438563094849602482160048548206744977204843789289827140918537210625411487338085965541940472321085407336624307756890845933159065630906446532992546231041934236176144684314706298125967635942935090070434805624127264399607728630754394501796664413500471861160541102112841881788405799144247870192282260524254645171872123979144285996366383369649174634969270373707757843526476926724569261267674151292768749541697663286464149759380644008703455932375177006478332116344941118525175378716607942405070363311129114185287236520116852235910748991664891571879339124794005462481888324041690601448813611203009490722973822399071030433583609967259863790137161405585992012874682838870097390778578940168904754660837963254764202363061612898363554671458201669822334781151509064608477172510583867349081450865064419122711863585456144211361554970418257342494956279247824633616558514760170104534344766873249932160626595361165600162357971077599648498451954802157985122909481030229979120589370830326737907025850253089167481071032501373755350081848903463149881046785563031100328719723334170949441377860843789321035376036522442841108388171536125209452654556336414451579065081032048722472471378079597085194303487132996120631826972964360631762940017038537793612205346510327034257475748183024939176362583313134072863273304348958307100118128137831270708543839817963050422912601052234609892993068837846461075556981816450368443055011520228935342897353928140233886608891105247787465749381810881443407621616488912020506277498575127038367848859625846125414584622177080397090294154927889479579872033888786293960626700346434337462498129077497486725447043291510799135402888606895130944769610707333170387696524668508614015683523487483292045077613559035103791792962966249930084008855672054503663204937190551715900286124752118129142317979671816570932680844895660808275698179048945857943010659933698546833810695879925870455475356463939035995487482395550196494219548476983393365476770055185488368068554195340608930333788673465880781713845760123838843671421056379082807908871849510009493000405113121974503685237825864081902414717695352532371890785518780413776384843893861234282198973880846430269657173992508501840018497397474029342069873209844010664408387361751306967398145940117044820186738131007483387860946474197862132451060091753781563470286914112876126219596010344426271383966422695544994751093832373232439039652521931073927394345792657881515741755824755540325734068946478733682230918941024876709251428271397813390323730710886400714036477185117584357204045654721088272861249703643112832745573547387763790979913886878265055973859720605567809807793372785522659656114921151676610640397350907199154387986597289675457670607010151962469236918300229334812545234904094053304505277337253208477878073130003655298856548713550974471116463722381035584737645296198337879707799647903484190205671651285267261334429490325826174469695260811699412530984800207551745230347038421039318196096188349009636462187898189405506726761470558832376867712497481966535528655136840066238608736039114848889772495638252101551895011173483566286042646060723049704490597432600253657129308890409734931690177945402466903055100152444310584806094708991148564073041679774513196700425958244960432373034481956486936284048020322602651395086071853547546481851957225749688125265398109570040877040107348941248008892147210177880432166966211515529592643927359266917982558615437337194244422030492952130613807599396916008504569476245681640630149001092594935979849349507206441153702950309606787923703841452768996424229099179923295544065302976737059666261961031712966473580509555304603408263135140276192659179081616591979515693384795570225898062277132320444550881874597222984284183440105213484406692130575706968117811401720632746263642215290911502662165549522909252885925143548234052583387419847318495977541037888762049799418509128196861235962099659351317889065002082489025346399779408180065753718038247398332144593588463667186609658454663428436101601231236927415096230504376548182891433935857178145337036541618143133628578847071851969661833133541676415520686275584885777934037915092440205393151208495234361586258895804839845318969180632901547960763732973854345096579294046196671934415147995901700959141032937838967360184851710869450926751301996914765629938800957947139688991593475849674112085693248875623768207162580803089525717778040329210145601124235544601604173690282550987018380336581052386379199078478620494794233662327416761192314852566549092925553764775633889070150628108944574711848352026527219691639438813075721534241851388235931397864066812236198582281553528087068887297301306564799328068308633631275581329044967568991821251221813779144972112418440025991816067805036434341407272992742666805388125992534250394750843487000030414183904863122111581050407974592321981858195942515618506950401192783866387243443431473849515082722272594365202195147866323657336283608179475438005191232511659468505551824616305559390915046866399303035061283573486455760112516534178002052275586728774788744160189272464748169380540139680022489204600712205222288340478710758658487781838534468563186849608823676639039351637662018780125812312444596610993335060747646764562875322261637644303453259949920008827753289696297970720886843013013947630292692920544457022586536385831416067466406818571733107052365244795014545628610777897475928423544192832237579854812388114580754897000454027679090772534843051141720727614513295353318013347646962886451594853917995060418943472911187021528286563134252518486076089523144118957913182017212288150625643980537726805000420220623601263881915319183764319452459271537570804988731374016596981640609411651255002558839475239217208519583166533079389741767563277417718220322511307999810326638490185794419427291168155877736440724654482810987036313166572274729396843775543860664383073489243713467967243444923658595033087070364840376219751180203839042631466504983876187461204258239599427216303426171234719813214788102391196219921864953608356948479444941847790757941758313296099438317532545019502777816168536340904515718097598897341006193169224365234572444888790017224807446301007560917672860726636225088262732647208502480481220710429403490857273458158987707295623983282481885864483201344828698266448446908367640305460873545558387091678171827179594278854002939370411349372963595234577411331928628895920598189556864558303575915754920671817794442721674043132629680984853378261280413780975946220870561943256743112163070733001638029453553254818044824522824776620238968623950529465714133780464081226802188171239431004798120951962832516607124966600135746266724369857742482961177985860956870336970523848775540872401699809654081474072893567331379947851594971722270101001494112891905449649689883785280190950197466270897400499651998114116625420515576275457635604484416002063855699597978638412104710849879212460928261153153937935978034564476422008806651784773125603035054748872473513717625170378578573458969177823718361879246061340374036036498120685383756851194999082571555254520032532084240501796074068019215356688146551572493313977696943455893062916899009506621641242558452246565792574891415898574512421331562338801700338669792222473276867487086957185801271002063758634613322298597174576828320640450732580707163335133742512743851281482077649347023246755195715051176980275695652755064792854123472607301024552225121329939304639082433417193782779448981996966093709686237684730670910532712650597225363854840080605562767072727412193162129962638090767274458856428096851651827390205114748604652651798610178514185103663172662562498424368989747945428661189563356494013274581463537020091781464167964217993116880083600347988613602638082845870193289297990922859785520883409502600515833568880016586007930133747483136974842315189091019481315042342607500045581977109195914333759298673846522555582229769302213219143171287640901589741926953998379993629554586445098434931520621183289497507442821262471020816544827041781587904355052614199005132259343486461026754520385961582251136510549751243890075119493775956089300916262090177560942567287467764617764571350392177775440868533307809198794206984805432379713168534627574020742332967230320041943357013605418889905146076613411156946741079768552397940504733201195973847720217105176602429357370849709926521445078719918079239914286785740777970875356239508010845935864097823888404357233038448060523292560852111755683682805109740514235895725387101508689556257125099982578693046576648749571324625277924200218239663688059480009217448144822067373672328697659923353847161973685001858923653081435378868313128337220802346391445536809800260600334088955760083716159146101534892377728497812994438370601471429931210991029307456737916095248431814459794083862327728918749836831885206412275284573836667076454523889253952730475132799093226739795550367679168907371248888319430510578972342414721606612149131037410265763696158499952530703865911720581562051183599751924531043481428580966244322878546903706366511471451572365659441410207441887012039925453182159522084491225681460266184341882327837681672273208103363425282769078092028717080239185131999857647994209388999240417412607835578440845126990499726005145473508219890132617608053366834310412961982924957196069635076181496170025405724108429190117282549513756158889596205446335802839786228411011704543504434791092350312820974491278984594999579663891289704422284376016563338855756824440499656213031229720972278783350026922268697940025158284418584732168552106473410556988433003324524564576964456402257267927642222203100841998905734731896891865735910372976298087571606316787931097254227337394965638272268178444585989538567815562683175813202367813154392898906498538504925429179294059643596552755478303333014687798573292512648710427292374974540941223838230504257259665288913781552998330065059013635638172943854048573431121456310259974778654917564351943849815121659289652878938004948523717063133486096653023707461274235897213028245365735045958556804413431918086344106089053710211046061567821525552417719317726479450763302616246033548968800231499876370098864376901129719942401969616611770785358108613240470015273916680849219243096901041524293972770639053889893990794363664439939695424687873590680601245307557820503493254034021558620832433476512424797001128658892250416639730544925106774142079459087868322083327262772990690368057842774674846125318593473193200003232066189618163639516894759038819491891646102240339113251579181117043480237145689992741297836746636994637637306309168248704836000591718048090126935577638295885104980376777603974141979803197619444966044969645853372894080099395163794516371790958218098995011978663011991183748195540822080121339068846325431641885041015167637371242500237256209171128849078877965067913420648898163166828073237662341316654235064749266127247023126021369893285479603996217477539065723767736923010646846460989722537502156144516640442855016762704363786360719394742755564324561245590129333137296203230260346770480648038378687476382253945553368395784734198081862867513634204608500796532066983916860131330116099942256794582331109368628182134611265600612773913547573432557520908510759969141571714020688403994072107842167159356174625540110410596386057450678764505332298731798800465578752599699585400308167593777286895700977334641414589054843821991815286227458501466193901865670873444101880054630937534591174424526740121091153595412679413925091332605341357150290270978099339070674911758951515809008268511436540344259864045481799979429795263386746039853218783383387451094926013358343108740924412840556108441302034418134822651896880808874753737597714546877403363914161331637043120098592631234053513944761250126573988843517274408147437360915522453246410979482535858287233337012527842402368278056521298027508245858496559082210335570372927563605074753337648685801848215462915671077665461919474917679461011608855822196704872541911769760774905815259784760381873038631112190343033109138137306975836331580297896022873001150206235866859276922847874212268926465262593037378653745380111901898514463457378306382784343211060529791079992181741832113686783411465784875896060636424973879567786769911549014497718523328407816851591677258904814490434508826078499567247500048512214636207941317472227670035720929953356962919250185611405865615360377890775684484429377290023361367613146769684720498051991145476262016561359431372491767275915015700060168175086512752903322867945858089339735641719732181418809728254079990130324075078759741757554795493344024193008306652144577441745693417261794996414301001928144453215041034661844800442288056292102243209640766198588886140693945207996697267309239165776996570406559306970684382930254534843312604592979931394012474400283196148489554655800656478929608664160792129777527862527535838357196391641658938321150717999157033628762679786259670557439014537850577318377527949054954365849266348342781585866450747907033089397349887448796476268266780355661048694456797050024036475676686757263881751215702745064075101436791589809645794898728961352981337063252799899873490670594442916331978382929164202299698538971885575187540541948255136336839047039689735312479772279274465395263526081028570719364004281969128621469877073785074968069501416377308030056950727134756248219178914629977841619949519138434022742530992090591663476169470255180452366686909517322702906443238101481329510892508004260483499214960341090946479538138133943606146577693069575977005258797269362382410543786671934416436608929210967669312468892733386371218434350767215650446282380887224807815434187890574448186381118944507802680332334461069091070580812284749621051383715095244736117957507376774725647862577701944871124871949154759496470923809189199026094380967779100433514698471463482521168689277617436392221830710087300473102665654806618863251273764663739267241050605093809709812600619185370396591004291077010138549849159059918650709981957314256791279619354716909157600252833099722941619035604523851117497278748049465316832375499295306177421097722030107580745366111806652835991538446646036373423679226930547032808362737447093008923524591416067894716323621565212379218147229524657473294972046696499684855114210698737744683144965132508231879082382802846147873253476325871871318690556286999543020328730110358238798189956627405935524946554319133304779200315330421163752367143406435812211695022992704594123874805354474936254896730973275522479790909068018004078670574342120736837465633988885489464118578211947735432919505847149859045829676171511562909816811113692861697848120837357785520327332495103118710489105599951742889600699270022016594700919923585152756765534620970813645677869160043010152238185799620315905889940195435853344036702611840163430750680931467618936929811732279946642938952888329406235773035728483932386770456790908367630983227635254567898406207483954341640625554812985605305559158931280724902648708611845850681868000488823604541784943574381540543111772188607915509049769920358130484934677215977025090950258738959935939728273164902944872246386378367804320085301617405912451164686747586031170966863920231635805583079626679780700760698614130796535351383636466421411725991428311273667418170319085832753178326302875476160798415424682268661685754894582236070299056105661489970047549331537444168573174262705036483305121774972019659953053691395094514037004138551889971202499423283852778678873678408649125331784333143425701903434816587135213640955372249437186288988049029538739056612504611787865544172874631451346882221219975450202969166290324374829178159244083719943337219888945406416330514128425233137024011941517019462816503802188707818901013442855601725440999683291280102174669982606253411115118025892254703465352962678746309789831025663542362129231722386874749339807699832392773929088438800712226714570548817242923650566433934585795237813608927119396557146053789996643864560979638805468407269736553461597518071511394146259180721363243560844776844497032339488278244235539525984361952592655982178178187863064855995973380097675906387491199585156721410281426182099373513800695652421496556831392967982030519810564058102659842179792687827940594495739963391826330548161270511496601017456988685483347956896206234850904847955579385318237678744490812955505056907954039007426279757728507174719407150190366010367290696854293129610867020125418752550649499793792050991001862048995895127929910178960561431890054979524140063549780012668483905074384141871331990333104709609645889598243640216027877514935709706505637145232348046259494885216335123373794885658584030226257535385260967717956551726376599227103125995298895523513856798739842792933777816548665876473545547722382089469250984445018841522132136952938927212044738448594459464549944805416554149379446801015441137189447745751737070194232459500322263841217576544811147244192925919049941209546378825666646291792673384019044515832103229053701109231897018747465579442751534093288364586245075775566703691173886164880098077542064956547960023149312776288820212164992384229153633243147637088626124895584129893473730442794230372953232911018698158059832016069408226205538865394213154793684543503708917456534000457507416031151482587387349864540322698415556151848285301519903332529815062825148399307267726222836625108942197282464796285312173795391445701467122524150823506018209181461065024545800333342001813973987555522287752487273108440525977817181088585823453185881589162628346590214102554797444688951445526612021468665727663478673449928145206992818663224326611754381333087109686332311024858242375394169010554768461125386547950990485465034969107357777361315628470060280416902394196561526807360615220653367855365576522238953331766568843959121081873483071388215028207210625914037153055522088549015373050199316539899575559823552394066335635695529135366932532228646526710039091035776239278595035022846107029023885806499570046704276029733557364044018892561579309888130097914549189425942462037908348590252698714102610892942439808751228362043367406976207149487905043902029703976871367492384923196773579779706146163429322406347628593100454863635043865197084340218187424773074315597136894100417949903710601689577803322332722793569833043598905308442626581276140689809702517885922569872083674091442057665112868249408370510542942085880020179103057600434802914791482746140599481785588355806444122617636147072457466467250053088921473847923586113436785736200332277942252437031431630290728324271783182899978032573088706668353597580511841128193535409399216479819710178588190980277654525027517397606311544501525197330827433301140808170355266613697162363147297472060551578102383150931696509197050911034191162321281010627676697305764102104010613872027338048717963432260387225306613807734101999684741502221929890698402241663745599030609798004190241724390693718117553988727277927016363694387617752317870522161617466602035594831770762376031158691167588203609877162685094277569956122836191789393438576036355710187998481433135651315547146733726731013498257483548611037360100237036900053230345807902482281085403210495285030885944060772788212214312274351083112864377060196379157052904271043827749382249537867933188555666512350410792153450282445324826796843120791617578311159314117014596867857314783153395790718052724068328211752140357600398107087918251746652863570111982263561909116680382185264419694053478863815402262854570198973890056017014370911951652598666315979167335331770875891798728822978722439692079399460588306644839987295262068445352777777961157444038886307318155519485941938592459861314859819239549376882048585853491400496843817150456038369131388455696809390669247500787615970086098118530262854489947609249193800167813681937056767113886782599595055812730580592261887998031775968303107304800005051605721801513813751239893099928857866758562115721096203206053389919128604320141172067196633872894499177656745841341034669766611598668572595977018451516207997495964208089350856804465221661986288410846713145825073519516039128403119989329676643527551544538770271084140667005999790770816705849348239649242402491397796510379088494854045547449794740281673418401016062935746536302245472337464656667593007297690610746251415387804381545896949688774450600611119126023903104944189240917601219788050966740393635521611185910982525441284444873476601462148729185603962664167558502572834498435640325224326050250650696300860085742213088309603011720667629467675243103023467250361090238025774938698531384603113060039477028105690204809153783731913678782058918592792169749801743875593858716864705475236050753721691768119576864167604579805187191773925851383064884664871091751549141159009581081630949932341432216668323410921439127566146393864272795917038935863352495313286912524244324866881839684000085872190498396996515075760678959772790447202382641427723034676152424374696224797313742391219397077822311758662878223884325903085443928681737786792002825904902826364795166742627083944033692677091858852034367659451388373947680825066668049274907880369617797361484021556192045359176560979530899089109607745978026631466255394066067619595539953719770176834428572841615638658036645795726048464701462134358056787932401409733056339989283514276070493617022617364153721212092010713142619863035205247946100252352894138396053600746360393472808392803763639435417675580499218413199918433487592409413832354079450095717450042019177329447655518962816881791517439727341423350627776654988250576465572007955685721297745367686474779461012928985988036479795746964466917372959064877423864103882677295580526938383010833355734527358753314049763105398292615182081023381277691650305849291367207312075328464455008701829075032622653265410281540298821547622409057598431848295109358180129843460459141512909733266094811430598728438244629729815563366097461352923790818302465945765794367765201279765005755289872371837875356730082083641058855780056724703969432931396294748810912341612098476252453580049688622409742075945034000693722888382873449307813110360055373057302193475045923551534725312746460585938715912028400847733553629998213406399789638581028708958831783083606700995965389419332930933921526376031114075130448005531312896337103964392113112460200142792567824063777463828476756517519162861535155417729003422861668301110478770536615561035320654065981710426555347327520133046930945340386055819594412961878872037236705989021818313337451453988073753852297930114463198410459339286232038028467481230006274442366421456760027690366779178520439268046672090897861599252769425840140882106493694481380537078125312509000997132748517733719987677127185734503779238051895792198751645027870887072475927401472639817182444090129282585590029271141746098125315837191376451748800973364649140504657153741566073015940046154086001175007319359447304109844655762516250211323975100490093467127855689013723338809381273137813710311416523454715547318433265275002021580554291334761079804926338225659851631282515846229145534497653059388291793742451022300793664675608841375370470574377292944885939373629603212763314591061885449891186512745728779435277511891417631945323747986519051106217109239564456114763571792222277300466713052781995225900144388140195377252590451809136188233735048512806389717497811431771149682323031837140507540251945634361486863182798672155649441546247727424768275864059465670825604258849855493925324924780913216575156588948015285867224500838017661195805163370022595433941825566014250062340701946285782520197560462704546999187462529372530269326963585409376672533765789376474266410454582954832680980440312304025969860654431060552741617033324506621945899193628963138250884821344528696113573266130891419339805315722346916413506894566908603777177337906124829594835398602978054826223332133104566035305250977146937440246150576497897988896757116585840433505711498773568356561791291417009577204837197972831874394949482184943697294295483190556715786803327637629263939685953517851207585616352807650593794207972924655589650903590879718656269214683169997033112316177594982521423829117862635491323152891517514096676068128741796343311091208572009481216141573038921657737332511792295869405662445927724337638601723617822398604447650006250910187049828409579012052372204666198485568195750473844057783155724371321109200886630767207066545264951478949903953842484159924080285088792205334138676945809679874134031022647797753120165750310705276042470722119026340572131768255227104790063789855480612339657514063037829560065539548073115869336563855994752009318525041946841508576692681995144412893161487390191469159676887517887034201607695973803643186782392055088709131800891279517319439967641430116756189936059205332544216063483509829735378889267714316607490641796624784952235459038603867013348965754392695561053522885327567914538350513727688608161566859612339100735673970090458965404580468077695848506014305206292662936718108026527299059829900287539882373527660427241092292333213462403245715410597028607391863489007470525698339981008175404708211105258683997194038526407425346558163965397919815210549795694604717193446052748704400552404530168120434430860915472406806089228071033266607109276832250897192789316569765221940973905941503544997521328162090952873752093857771171119432587976303842558334484981076291610670009689926458226396233416873093981824887286262219487441276071384733932297796324068556597625765680735033523448279229383271687984300633032836056559004135944406917136942678783809437983417912024568640089011857915673040741308552882170244612343797675577683122637840742049100998806825375773423236996472415386484018303847273520077121424976820812310167981279113805906529203436269485423886378049273722684634066060394321364840915767048993034406922597769685224301698623971377870078047130960774698483672350693129766811464087577703734569564769972149720407668547631864715308294288208753257221209382922176541223448425555525700202459880696869198595403953598062926044342125768993713050008979874183866999497278268246618615821341169503653000112601704313351032876449090068178719841805164112848342273357427396567119010751703672100882378790516072401260782252461739749648577573917252877459926373457730694267739408047779104106187439142843081275188330325124766604037179670712062548380238669898360102033748417858110706557370203648748165650457266790090695161653603685407761362225128568431528690499592694232871542512701965652621379657417546408824191485057202077815819830388531502278217996643881818070987453711895080382376470819508640074621714584944760003944672413390191106264680346304453477635641471621461428485522119988019059814074089033577964266167310376452813521319564407121768165174034711929342626137977933429395870164544364952913922983907257601961652390642201182659052893533355778307338850579306989244475097864232314181245508507790434293457733929978987266216516317396532335845355823030479848340978625580883251541488737786901903761967518471499150539879661130121432629395603434469152338154492752837093573851296744176098231783437436163078366346189486783472694201670055641980055272610656612144510806018985139588798430571397878354678059000233038359716951043077667728785987755518311453731179510315846927912664274661551259400718733248460974712276196037301070853319815503717234581742402811503266191830497969357250198875070311706099102874257172823472225758790404280045721707845351927698744529585906233861174142154440700607705383078289410695350844137255796520893282972467120146220012045288989474439547323892384569549533473633329284571300827340965728325349859386964819792813736708873461155827468680087420162893525628631426880997467635315485239876472159597912584569882335551515897163804228626419499836250089410786715095369919905325449073899984451006997102749962443822978919575853166104264898695303024203944707642497998741702730979133879553420369998972892828084057420170065938283154050574511743842872049907444184610693340189193706808524900428723710816286427408740846635619538517811455639021218567362576741975086961111774809252322242043941560306116857912387152598821957548889318118507684784693378800032075816209416537859170429658024994494165005974761467918839346515992838638082112060180521537610030972225711830736009468046739403400223689886311372363490846606719997760531945232132690789759503879017080205057337159378832060249430439836997463607265134738446970132176432354438946378852952192235643734819554609534763616062003078043925433187925617226683843308369481642470381345669375427508462473661442047832544268983528776717309337248972466047791108185928537617030708907051840509432052069797232522513443558022697829905267824049286009434130042410886339590329329335054431211709481014329442772076412766712663950719071137248028379722153040880023656236592740314990220845404763193527892118750844067673993368451104555215695913083307732091036338795281873082798578272151227099594190667696481467486298456988891566916545920911781126689965123505951173259636248639972388668952126032746572169261547333448245389578546962669534317705550200428092362354587926641543330885734374729553984274521105347147314253936512241648421632975261292004394859573081978639211636226352646321600189825105898756690953083558103688403183074324910710910602798592641161928920878948411303346398132770846723325712420485484464137610192361044089559620499001042211920390696457992419124510436274978835803873910865363873517277837294355928123688696242939643118671580993014591542415126906929221763312394655527342004584966108346681295366124880253610481878495593071845941297886593386985180548337295169109115737374121252753379378725037987258833714161184622495875364618379220695041427699356378801727478214257170095325727947617788074263107245237225554415150183821434691155488983796443293591848491324618339059536902658897225343425771578296037023695537025931360263987115425852681211193368517470232587103611297707067037195728562810673614663422720089050926939545339688159560060494172771638174521490966058173253284340123598586321684488076177100241540768212037138903811547767597865553007693312598599934955250455861532592003547821707254551543699767786973809223281173076481273821190543167970557716956149009164181330796931843682657791398115237438228093506064442187574964681657449389653310456493628619373885798813281532148452975288890088687382069317330965833710397579748218996453079047094222890933226493734801815144911873023406939065727482109282159115829417433070394568988194449921369641038113502418900166371653769674121495715139585020784710017596789342140754588994513944591614911180690621564366931516842656720432765957897153091321807863503439261559064327929023169365007333912646814657052394238360112338016132042257330899759892930226820354248156641207467667868955823438406690186295407955550862699434912227600264539900076377555375244242075230055246689433154885403299271302639730694302574636419350323332359237502538950934481436454480218168486798446702250564527439834525763411436486159255814499886805285136429098219350419669132928608702223410126994435779668767573621884548418529391408008530331302840568912629153233908473408491210572438373811463587314059992385808143519150987636109697607441999402170329274572881713016785422198858165858392417150022917012545493688131867603677194089635714424685393107452119259397296299536084125513393890980750018874485226758665398856989578365628462360954190577693187076671866506659929480125305635417303049028845583083045050257844826832326872942150807659635529746537554902753309548990003541084299445796566476187292009712444863072438147743913411803800006042937738744126613387405856443245647394250850745818634487207333490277870647173985910903096131705898420267712591396219570734915950853012274357700781765322214824595899694882362349480440283955430163746414344728744006400066612291777037260232472087549112238442399561559595276689734195949824237559361032723784086413880539915772752087019139872538702332374609705888154091299493868996954436120417045092341599656509162669194315173456094066598224726323529533866497749836083563730408223009112476816650119137735085106545462854007672232192719950123121168413851242259621336676387147248590245518957743196284084952531055056195011441251057154226810934519946408922484554846918357637143596731696020846384250874912247065815410928374756365768470340468969730834749990205951293195472477364906413080245702263787186580825031795954367393805061768379642761939670588840484705114167054702957819059016947931419863901833336842396478566376292642317776205714001803916175927683307636709323409462924867476163509438329472008776210484605590864900593569922178505547220543128571904695739343487782793400989830316054406991226318409798362046517971064711586688012442958461869782859095263349222654395190166581098917009829833969570053309166451393570947842472431780508423079499162677227780256797321762172133586797303584014809966503919112062973567521831147065649944326272745422103290767456370731195455175408315102634063870757102196682372606521098285131952066475711281602803664083482484887383275303547456840187584579187610809857522812227861583304684322026019877301494356732135948570974455843096479816425762842635659967509738662280424979094234850051184835737805793586677839727216224080051483892959805209470925167745971633571203697069678740449010083994487345324024287153143671811574099119935544941480229547508525571359080450605826711777269258293421568114154604547555183358589769019355344536964283556276653616757207660826413482978410910271518882101286728847389339993611309902006742417581967542157475745417650370337451592552750753572477875389655846739812001368145033314603694536275653510256880633544383212049770064258717553157256207672710909808612679136132441464148518125690169274493215523194170363946733519855646731568748823731008153928748457725463226819552036699183925213500779308187553142833149663407333305537241724973858652828629087846408815610529907498760476689057569942583765302120839888555230467977363424867066350533632192116109204816107660249608266362054026945926605815195854416383784449249907613184128164952631459365793201095466959079917218548430973217395734221611355497028459346713244754702244394079982330757505262395464005790077241235364717571048865225711338819191458508509064413253080007904072637250862052557133578312128442702159733028542287291717944933037338395774057112216446909770295557204723280033258287246493974622797166575710149463313174945777904353134510491008950362062261020554752039376481770115522413411300301742905884016154181592487044290145876340702147060548337631728532050069338200975638064516904980947757827617409514936904310717430398532295917405642323896072018027985400758277563640110962271409036662291520723530789264149339808874650078356733212753222373052515235812688231641012508724782349906760703887758530441143311490027703608044048761566610312753050988453214692668741815422923448696086479509554265302916243229818838874940009594811487544585482889629646436465041717923697944537308431861998028528142445425190366048719013042140877868215263407087557481176718835678511204530041414860373110270588508240159848676525857377139918704373481769580269789623118485629326100818226702537993185079737828358069052496215241558807489231952453072949549205609373644590906770660545644633583073497123719906844876515588506552127052053351782576425932392112220055481961979281368833927372033338341526885592430946502758180504031108644844241130847092947185048810464586010805096758483446161866121749584831707857995926887587673320209578984558535789219186390986873955964789509271562635937535617222372452500317809785827478902443239600548302635687033953128188491149662826360551305388989871845138478245380528977089783660327756873300166049105265117483036895352470417960683567555484701384298534910737771513672924547940919532156183458292234654629332584577545148196434116583481046603936840677323520441349805179164316593738768123541082518763234255832418891089963336277147942674064863722484332169424558203931905740644665863231579939662570183381077737226101196502805032521395475046824555307438178497149679372126368541536362808202836952058263573094037652041196648730672780729887311706644005807223258224081878362218665873072427760705741331214696370850244138341091650096291310884724531710286934104408170036859472134663051777664122964136360943178462809885323060097971339110719651753556102920710190133271271646616190559454329361867319459418361150975770668811167918876149119810628062921579117610335737060464906360994737251416129648938949735326428526469499291383006327711246163487385284785104884577511697188303516507541990663093952921738604101445804966566596424880886881213576146984708900598818538910102648919269973706693759714383320550724493761278359436150337322614919698200071917070943566771997807881642105541142033349843280335058606971701550408481570169200108149364078804741092750736111719921056512171115625017962445433659285073767936820668804338339493171353260067869205772995652625502722774022941991622890238937959308768462177402750575991643688004151082094685758559531040229634203883462762126794204505322452268951778179855226471002665692156806625716589917772607586001881396500884500512399618189258429294622242454799871657766444397419069301607795480383127951353794901759242608569607728862716022703475569802277775113416753787498174965871011273808072936372827828205405625866705683527828984445391114814796781318200854961431678894984965674031010438647260839539717849288026569061645301004139417448455470509435266861796657083310793681213943369464424344411968003558470178434634443626780003217449837153032424799931231957255209451838708261539404449405958139175933781457856269392763647775809524170920595464554083442637895867047999143913041591156505327979654055512416020370799344890170927034229143043133422507426160793240268328340961080022881879666084813921368208116339214705876548085538816139820196107444106206494905269349680316640678756580098521353776270862866575963951494044984997336770659716238351154149285459079325531334192793290457868637515802817615202294861951217698001527020038282272203098848656332628190722435959173249459131261135405871520278131755558209225726234879041764355762506891975710852424735045640898370284742179093452751269097845009355340415204637863178114254845212810361435970107272754655180020455287271186046379097000333280857969611947211757458889736776123905909807091752813307352365106756658298739863364975012846592887786172901479507442706443926559870052550072965468113210325683413817717618926446377788225707646012630567857717486204740954700385991828138451554034983044574256351290953323334398887515330084574871132145332781765320012097743545112584055823482308960954029097380100458989323431542591106350144928615571658758500632384606048186801954516513706493202648114321111152503278815449071044052370862656969246507771061259431937451417147196230483857565919563626542068187909829375612725891467306399375470259467254595056978281603134028379783243003416782351144911130482979019240876457308610314823425372378402791847653588780431309240457072809777141831379238482775587543358025309155249929895867613738874358754658509755220148949260379857252422472095231553792116637863832761038962562002519295678877541569136428532721993715262865968952221509576221430642891198391461012126644848403964399451093940278073075742884373600616210599947484321606381567415122215776659537813218020052823143472899379262563212009571985715546163812664200800207231459437009380110655213926716511244361491880615999785014087806670695257079564792362924815841558370784629364730099918866767768745622023775695569475636738600421628223206612062354365793222964816860749804394671934639346945197353275880266492911502852306525048316245383986636815698808060541990126529365417614120261133051983295800180936903721997659487199701949968635711073481810248201481454826751557766402072992257170934302892944862335178662350340076082353273136818679656622710998616984655152080790143982476082263935032794032692799920949740496195126762423438404267157109904166098352733158311364799222957115595873848257447094302058306945332103291665259395605317112225463278492569213607003372565361702751489401661874188395652452000220440575545840609197755788923532821383675513619571063585374119601360617204386374358780091992630855956216498000129418917935700562976299707986544716108975727964922514045869303889435840492649849207382782960444776764617033891252509050035438965511097090765706068940728420469734362261801962125642103162184800916044230855683568407085649155369989635379641818600335260604345795927657942153772452715963422574853660661316881465015010569473109321436285121452790796627113928350985432257205191274499276155746771925185968498695804812926354408770773079502455235684432682775585586191893001666903939529973586389726001322846764962997207431449360887561603645468800392282220205458218360306675974214776362693017709646079517850741681457593914845800900951665798804443796344619069062847957905043970623859291696518559159660277621053784569421552195502924269571134832798616429683084225526344610468485128743033336556556322645422991602135579716131560490058711140913048683471918892857566171234536883072514765169424487695150165148925587397852985410128210232816809429631962572830175886164897258896787297594116964388119055127757661609627167028282409072316882162804565238881342458017076254955113313950669797814559345225917908730371147063719224564933612673042106230624304064670161490417649240390656715575096834396654093256318630372797778752904609170974674601624833826621914934259781927018026268483653740093171949170603137775949876141268568342329794132604235974006876209805836042202639967054171020960026736334173463360807775535791975524780140230660277749001739058289712827811354780183166905802521232212867619208686427018498388624304992258008729637166933369314292525571046932444835346644110031218535300378003984329508147003274029745425273093122155908424305561830579897380091464869273764875189002985199377510826494777919948743911296630594869285039598587924985005787499648072755015332589639809828437288901844937198159758927097967443492215616492381507260952036479540659740947884759112624142870483204091494758575885195594739520354883115518733215978201567002740761657768092541795973079295564404669612738325641497361001694839641016123438918933785656701757679892097588781679415454183824297602865608161133150677950471777032868651168805585352511689585517474466140966027916762482694721968798173198267486894019630173123098758132351347129194248900084584695599485400919305378112104734610921752019418114943776068601952704880216387750364133165522790672910980672311277698775381441349402075464273414247570457612837306891467631128765874563198605405082211194858176117058519703932221398961492838278193011484901481170718643531682185931255455888405273715789584601143043128932320707161505561228169507557436460031723854789054869060398265749533569849119758119647872823685582684531576676037226943567766880718522367835174035147156639929577953755041365620679104178959280195375835233601093039326071939079307765250464139114103970792689334646948421033715081200179758410748193776101929349112165377930856518524543055310938408542861690784413240323255397724159633253468189690996273957478535384827029372476767772596011171459062976746155824823126160504771018118264209828573400071883566231054636439558887696106203095039899475824134431089137167331242432239648275582689244743703525588224034886825822367342939052509463330322018986184253351451086563928714561952137764062127382870685863508995328193355686502525416503492224577901284818669229659359289414859423533868037647686527193013801483514522615458238008734657525660267799086942718492461395985565173200740438226627463845339601375679326261529567511718449427306050462734888931414792875614874277936954733550731282777615054689687448901353784631995032294227356970607002233210175775165669391762375455791748717951248306410262074545481806667775453014271502106919609909486613069567276775092627024105055123867914101311632695808483469691711166306835328976141985002457611905520121327217900137349171287124674764522790750049505036943857637134583661132542123243864803900881342524925576300698759290205332276962504569121129565801642847759517436196800216265041362252716661120690137852153581830368534175968014122424145413541555722734847712881748788314964430654381194916980633887646453193239551262712278327611534006037308406912429352053114257411000273087277056736799644051770506452039943586185067397163434328922698471970534046995929214276251103632471497561894866309816879537950421054400808991079520883858884351022747300269734462954808511420379240109663885548076988589631987988662935430221757609732768147642647144869726225101518904962237089924250653835265814079992710213692268193230848932299694223123326058978132982880183160517920772713086080755933853969023310352664475852169168334319147777335238027695161354644681152299436005557071982769440887444471931837369626096058597115195173639625912920662113270270637635748150844071887819369028117128445548100900715433103638483400304901713468239617644581035346210044383965783558002474742528864008984730834887665492223839761701072043348760701623146646366110429667631210599453878169135430021263217238943914542541501921021652407533802877955819350010228573118824254152357215855359364503442521140690638225037870904719429514580004806996157796196320203740521466459350788100970480687138137977405651466797238073826119930000491236575816450686939541200426199809871444893572975064259828183205617814550799806705449301580895362839023900229683314109144452632678793404181693411593117776476868596896918437782425147529236382714313572833556180965803469081698130436418075490307622973285322738087397943240437718485742168610392724696550978693426553789214978746697691752776365048159726977407553082814420852122564343533978579124961416029750888082801959706438017327666364396428452123028885058362117239280457991962615237633961481673836872880404938379785011707352912477560784740301093536644967140570078801173792137300883023162450250377494349519256814852214834614629816083743585412393212240253500713678635228177648434676079243103189579553694312582526525151286224112158248225211473809261221106022227930117561892517050206865508920499008893179629488198232582445342182209886218526913812370767571161306752032238317451159486795906874279105228579164712293302383482868898681637218259149969829391755850296984847377461029799383218531671111442283044275932934788946035767691992684374127157682402840004319922149986250259485913923011723001640293531325518673931749326602431357406988246872550325518328692835081477011015532546036636672969297524245617815322263191006567340478339710718347227048822172727913334778305280516827506130683288327561322888115425904121913963921418749519871028196515600461058636462745642219924445861604513173534749181304974579251740342402434468077107232245794895100306987884104434971290183075147804667687669623039047336438870587910081155692809080654878327554341542901022324458456785325731841085701864680205095091948270257663247119022145670994972611100907841965482284559951037495856359930707289879295357774852528241632132935461191773939127274224382852657644073915279717157985093355625801124151281421768616180051549923061543627859043142189000915479556552289109087653822212596198845147579894051733602361799970865372349269834202813453797121216767271848013312722544131803224637796689738338708473908921930285302426061719205103130954871798070931305785386858888412651672509960203651251201370305721769599538339510422515808458019744196329399466684401459564755816945072297420599947163463408758309028002849753632800198232442086729483731638882047033087512736533600696988620070270696732322187255751432884603711788714892127032463056502781342591591612550587528356665022541844224176343074510935842208646223057018886636664288141347747122286039131346946182460495586166237953967130483565052262241481201407714182124907611794052898424851954301929075960475672617000741524647880227154117268966490681610662232813745631131261077985580828596395880546789148594232374878836972431903212803026104037721619609585632447623292354364345376789408723728970702661617333033820306484081301354793097169501449622090382554442255842607493578945350789684957942515205850543689661654441101172807995498249445011414650869758289723365299286909079564055042999811022976455228132624948960389654942569560744105602698003285192866305024490181665930862807741520501896989980425156577004274056956062778426559555073315639276452424930880026234244415990557819705154864749843677514410130815127644678383305204936241068592433784276020160934994444450351525001756730540502642905679372278240753942673466713412293720913476961526169560174917752596769679665135503411709704548040414702900277132433829835027397225110747003515221041401447908338949305078013633473655139403193371722984950870746067699083753888463386988578115288176091167908145758551088665983038621323526675348974850350731747524090163035007732952506109288387957517220330654621482426631232099109319111404603322167185832734023201905940914482326428999072702400595006585146088450096825282895527543231370122533381121206755214247250340577688553570862360440735570638134203702236410515073083279681188059801206261190816614055171853766607437529163962477950128606781958829927145139632783096231871772281710247218058201205146359781138147068652030939858863666962432861215992756194943116166557068088254905740543038632450910786816865892751814391469526704437907093205522963020676028795897913147465124022049902441266697342130206445402435967727956456873543826153373993263066974085595884984665361478451166142967326590031039047430229157261044026514382217120417500052082131842941344147380122155274590479469199203497697689867451954150710250973205645545986063664642725626571173366130884103752180310262101116276842130239444849880227303189248443005479295575844097002247385184039706167587918504581239162951511235690690292212250293519862208397460804757329088363402772759992302088989674398843872023176428892188542862319781984231160147871810766214291658701231265038318792364776548633537686864750761454275200486924619222162071771148377226204751968324573251598592804770892698471391249917486911789258568882857943923981752996536936834802889392601942606354582523317944826921164968782603136626029971532199232784554907273533728344928307677034629788275868618680780565330540527064305868768714171074764035584615265079284743606250197205045395597476487920268387491313468586810740242193969324182250372713151275437407177338828908633216454954287386462009263652165483749376906480992590639643823530348147526054396878952876349158986358457164841455940849591367056381438125588121603291569791540968236982704777537642390867766771044143439907552828737643406098656970806703049225163624554203280871517679337436990233336812215006505711443454167870267845626506797246564357912291120274604545886718398793984085472065788021939414141516166270152609737460829096727628130088747233912005611417281249501013526707601863093642673532950403434949613604412532107905654623415479184033788528553484914548365195049269467102696360358958746565072313147041137066924265381979868380570876116458527031349199676877213163950000604013544291913499506454638110551824578684250581497332325515513713292573125694334241185407679876750915986879656800223637721904123947228896917772347733680674730746441903007272078271277300940635952339084772351857488473398503231075560139720499386655472019394256132117179309367278964023778681020847054926829825374169452562204783379200596660556394311676418255689175076737855630157482362415509153413813592553718853740266286199324835622050831245078295343795796714608360051621708120037854067866602320158987588468656213971961403662007142202516154465811084391792094797184636983560995956682131844221485270675613674106171653571249608194726247376453059041341546133327292759993316787077999428475934523118791796366917889143640638785013994254334038911839637901523563670203370000129288718675551455401496735307412946446554490478373009221992756606177066382013913139617102587027358494854292449758580489307240454555944876326489488513353778125488220313561364429467605851844372882664036911005323618370566498796341723159842371816813529738677535445619940322519053109070999163293638841139192600443950384721731575920787883263892977385100704644825412643848500473162071933723145318548228495996701524536753533902877258250760798425550913263222640309096115894801365910729540328981672883575719041181859041059437510194777813163182719065734573288583950920515042839078943897244936659940746566474474374696803820262172985220915310558214244988772777958938210209047853588140075261941754143436539830374326261133258515126233546619429351758824074544827228281226628284110022139130024624166673897827368057287727396584899104903928441871620299741001590609219069940104114969412361453432809653930972166361805293815476396827504710708866258029566001293482073745384727362847454480370602934912069559206912198626769862441504325401353420561242553528516794991352616804751045306093541484274204461787891871561474302534138945713326938141484113345743312664302781754614106828173230159225206783594766431778567158614180234812149009740220240013956103581157918744170844410955727905961256788120486326246163201357848277341942754007016753184214862607703641145489537901548251838720152585226946672139878202384468632499866396067375693996526466206229291390652296162810730792614156893889879147914765482897799560752752344388095119407801658113869522842702770063352449029599712220673564297083568281498370740649447446205899985274139605873406867767822620885213248218679125427924312560297235044086024989317823216103962064212098964877336986347864536469401832363182253758817941471090181726200775675134181407350770020684209010649863367399730706990832255171384865306079527524392664264603315474321984721855297369943495941707381827194530223898005188902179562547199604568391119967937692246153157506943951485135346591865059864272902213544291005815426941041378807055363564531295111881635600180833019421397794751461385393397921645720155043961589217765579657959328917139483614617152287791089096852949049093130983217634345596470790170216896113049672828664507279420159644995247507008350703044743197478497605281064607030501624427407971565306495342660903961689088098551940240838848839243934328151381779730731201622158234797501693532994923598850584000603793143011412389158828653037704485397382707206258798344178578525971060406078015769941756992236080146017897925123963691427136237003218156880969790903046981276813646412345179838426838123475358349102390393037865784929430595908641006614292649674993113288939846172211340256716861146353112543825256478458300591289574365687845794360858865017473402896353345297440512526199228310380600447845714338948096099115463662661378551667899188425906015819410181327947966205521264066853499135660304672098231548345074764902752364766629741899938417618317502215293133177017191535819067885769809969346155813296632685153991696857143561105003269287268719502373275117229584450073800809409831281843769691470012204521057395044981207635250503922933681730495822483728040237776639130228290500019474036871396744336892869616286649163144501552572762761773964525657230820393981940172405923898967130042401547478807196646642573734715753028604186514247636455211298698890667224665878760650357482999346654093855622412655428244844504743031785038341249188927396809635164335738362848221206472025671373380182591031289152529787809982384198241109569026927023489931370183095847408559193122232294369495802365535031604818171964434726932859168082376217973010570860788903594478436092730632209209493365419246723899332297188852130532569938585731877078847399487386367914086394327504704191545367111433472611828983549453364608503207829226800779183013624439600695646936571421020300685075273345297884223935615070408112157122702754009508435560001975953078012690353760897842622409738073122587062787562953715053277823761699141522109633170312307278259401787607377930985893434926608099987187054857265656760354825189342349308844933211888960935838056363788744810719348775912421827991027776648749490677643468949769456306035942079666893289680720447277671060450999526748844620598285931825236368294110401208199007028620775838259421140040663861169899666960290766153174164048975110373507391956472715751335293310404693777197828587313845518850317424983256021721567756932146391971405569820213986832358463971708779233755521286110665993806898415118760595905477069426066944772043382140745318369544584418230391451787858172488490609247933142417970599335418329320219899506485546749721151994120978518828136989571605215874700986010995013703135544121160066259403577580035010720109013941554480801385195069653288212317337873693936300063506264664069003462317938111256508198650457307862863394700804990651963473749079247455286126278139113363020103095592821633690486678796704127893844332524693411892397956022974218555172399634875857595499978603704085836113657805908092693780823123449863941067269768599335930919794102254400949558062472050767792752146426813142589203800195069672355813907493327599185563555381512637636873924530573144669908098976261254945291771307820667399904392045397988238598927101412049778227557099805490653460947471435228557135057642057451434139335306510370627569208981931880193158518917204986228401730650600602458263189569705535234685251811904214556930701004536768381316355554846222866408487674848801233081962460558127620615032384747970686262861680986045806601827839884464057138490175627874093697382203086489547235863000418265237183007179610442130283613227818378671490028972849350585210208523971226659162558227978299895611418497793777554087062069754177268172298508022564734367571824712209855489741534256657087353319701871540936176145015004914593776953524561527684998931057143983342651104552090199449634236985988873036269815600721088955384932230745272712293072923944756067547659664749181943120253450564124685429858767843083508217755731901658117382176796804569735509475193974556458933202302258666667088987180498481962265150163030150040712226493854478610767211178772062455770029396317583497976042536356243877306138697222623273318300168648323818793557351699968413289849625459020626117198100491891050931068711726007215636964482732168048160976017948999504669441158137126956496288489081906795343900921066778924156713107692034543848262865013091544187903503347399752882285192744470352328801010578582336424888587481373828438747422440723727676933625826067430302995599709812032345714445702781810230857768463831901573357650508345669060593909349464931773465591607306855568277005051478952578092747768359323168787270089921048412362632403868538016622191619291906164248160977670358262301427778506129082548373634288366955906407013305616213712227243511965420261889781475129697796294459871088205340771194571920367684099907543473473430073794944928011199046292904188162892139977741741354938304634766692015403395888457792273475667920987178242148852692166195517207630115674955169171008672255275782781874743794337469582328347519749598769919766241480166529863010224276548197168499031858418064029106771844830559149806431534060855314720084116858505231468871977028650356955199751111227867281652820540984985227613691926898489846579609395795052419923607855171388055063274037978496346814417811784097226464530543317542996651621265866627372426869050749480277932436361253423880400566985476193634302646065000656030385527792344117332943540163236937253499586026345795419734256092294782139759179264907170220376728069790696392155854606374429098345665374812903807655646014592666377040122920748715569710446430498787395208658496833382638832120134608175077154138010831045206711853083693123899685289032608196824268026685556923865538735365251580761963290748277030380058381383271462074435161054753212541757831015203033672500816667892336027625696481911761447888535462169334523806244036046532169318480162454767054060354146358038570995932945826290508458493919460262714271968312552373562913896322078570599028860637383266408058514334603429126711229329046965903947382884157740771260536021537617625280507583655275787358138214872752260272063334659953924578952790324301781812266410458294313699908062186545589037814011231391366228482080835238648356351849013819749650058476034647845139479906776371377801766111979398531655016964466932607459925257093506766344496846126692621369688367803255173078115217089502968657097158187685533540617205917746240957319678793263730113394735944990916234299872405118131960928218871760513114751265584424908249542401951854079276298023262902218674828985114336933538972193859640997562697391398045253113669683550373490580283980173385982057053746236913410896924355636917956594883164593290419753789375807529051451872842420424813954265790923995822317287077082174228036133716133228453764786869414156290740946035758588611885436958415870719907795002345464345027215389191999513693136034298231287931786115070318573120258010849385221282639631370356650976780871004920520056815276258011074560391064124332169456448955426329685630050584086028291073300425928341436925481688811797005643668212489554823677069515455232371477549176312755387112059354814133658122862371589406957842298538760304733786168437704370367966641669449047937734226604189114648198102573602362703287565852849558557511601922686091814514886667970738711879572309413015048380582177937073321786785236828221868683603209819154113800038206680404349333416082395650830653560041139309252113408009241184058525831658725892206879813037084383826731501645099370583800634019088315766161468387280442352896662836445846526623993196929592152865103639594853724531764828572334895038141381646941230763453798048057022775532165374719511586945151741028590186071634140088123499441325456176963976862311840983983194447396790042426816372650149391875699464319419858347398929003344800619186194220767771358206252723604928979221595760889686736835933348143623635156367300830389195881546311030406247791194658529059384414978770229086148804610401069143084455816635336663865099825879760350938193594906308553271349688847653955145305639479264861635635057370790254339212308222023749268869422164927512858841335935941478267364843818491712689198867973911799063074575467671247935034969981851795466194262473122184597889091919435343019131291249239670609509415968328978429672225477972004941240541493505563050675219693718033439633906954168011948981868367563641178550031438810319737769593752694835329478863586276368701450458163714539510426904861319843652310279617745669629344142281827726312100280808855730811740438243402581804777988766704199607990470617413913380387871682109802467291078840257633992513201892934007806430120293883506993654252177394391034482051236371035670699147542696741758030305519385512427866830896396613670282291403360918855754657272326954962972384168279560700762511746912668955948777048251201641589046060534680147449720571702785953540600531827697381927017972651634699853533200187709941088467507351340016720860910217323594584144281679207020089167762546258288662296756601793924617396346827607844056125909357272123709626267462723496775094731216296827140798185779865337170389512135773117768721520276160106742988660788483327720255481677262918942431554292204687302132856840504027703582027191765585819716708838134382528659919110486481202850795622965451125988381573600443427844015215610195836257169377266908806640464115719365090426428255223287995860468890200934934479929513100324673285040585597979178549805497908032846908590192507465048851741373385446259415163701741761418264391871996381485690805385812727673359408405271023378237201989285430785758877198182535189027158820343038182353820495622734137277077640936244865710136634938615644470053150205971879612573823539298389719931180010064900115213692686472019375719862462171167070344751676107671824960278976130945007150812860226419229462059147974270807376317797222464232091256971004081071799846238069600417724942307201657250834634970579492894387573459979179109940627179295976709813023699520996732603877439888363197728818594641568212273721933880817475817245017611001922923680439392563519499354689403224469364150192249094780119403757334953329270546091820222911685840615734881366951134834525371849673933135532579520836286435465511402832164714662062343050962462062588793043170748799779833706450431433163383126225388389884309014707480846924143849168516511348165488676839330221351831684155780882764131331859815001998126074356680239346285809805932299661162437835978746256687187333580511205463332813988765502131810977439858669308963433692808376034163815926888948476215289578630254422512256088186523921197193938862764021159330119979223428745732639126890903931473539420858047929258335892510282858099913244866859365789351888126310799052557196559625564881437118924053483955003149960939958792396967797157647855298781167391350177001497915306949008760806488893510720616189606691971228133032203812586773882947685739178720572429635149131098482603534144943807152953437610243763007551124158638920049976622818191426089536822553645061384002439295290490725714364095239541573800152808430558932168240676011194659390234070371711735467188251368507182932308000373548669156985203483485646614363409647692825852200052073079363599908489136219540036948015704712833892581738224615590597801749725224609684105048367987202938173925115602844201969849839307299833215292763469035651970906607553193368446002375977450688320824264755330769150952657628451032139117035067303334256378675476949239010397067275412505158265669267761920467951696652587146239995027269316141164837129658065889079323526796423412567839293144002801219332771040088601452715039598670452692832201671320449768689606922883448991146798275289763305211499308213534966408392615145187885124239476371988102021932940579979325574180144041582228808306295434335821642062045422701278362789680734738140969534145300621516673211417217991407275759328246364259365661529446483948739169902902649532613465488011118329624525354743651118707451883550669116797686824637474256350297512453710470771846987702110038822156201848959715522280567811077137898629723205915651313124158569846524520170949287799054484306625473609161416410912055842412139887972025391830150169905732341448239407699393868574659374210375219389800426034449318701130328520513203212686144354969199866753983761395988153514929076245084417421887067584291143691227472961379805973798141561125286525943063230055409311021872100166219619092955567000173221238760853381807673543301550807117786456554450604237417031913572272783354955290511750763560784344596404171281956391741231335695626773148606491262962830988648161554415173815905441521771824451019762309230542213490905209713090834654326888799852784468896169047405919955479838440728676974883784760167688367221688335113072023226500424507692892600639372358833132464133116931590631446386449779390744273941149021049020561945610482669415101792882220747708241428054108393872269259322780353215385961859855594320400580165009524972202276284544364076912230120649128182481140866248975624460583634707516690879615730632168027670947480118856281413929689424156100976999290608283584101007180608307458627885216533155769771832001496382759588554823172834329913911762784764429651385214233034783435039058344056828382345644381556000182808810612783325778614364605252571795737072483085670586402224966215011631421666771242440025316591125748369637716808773783554346255299192553809534751655514321483612655294120151117909770624023388639350184559267621621385568526884663982927932339696135875193644853180291205200290807311150135569695143152012760635819782276221615346256823391262930033448975791143344488035135605849843640311876226768330014268833661285633996614071524828881106748117397986450801717196407660210864744329512119986120090017618032917689367234933666997276056104876893798899016312718266603298581798186042109663822174350351579632715441564659313703395862024075952423480961247349769740209679806154248378968620728512056581419291715258947754890291949279726543632176134288412372461247577840700736646202744050092737888561224224170025811645541159731896407085799062128346444354157338052463620079168083031009250337316274903655387800604238224107239103114857632639225483648210108458004798101474203700818937548089064700332878244666067978945339412106693016095960573253901089818004413053059967111790299558837820775681218455881318406599477627929664596608898301995244586053015216509897398163280991277939842610055286605765083566564746374273025322246362559798313172127724822050210462713604623857031896048414384361543545784569524670624373522000570666421351218825151291506761560931839473173050492760818197422995827475760642225677549425528087257939586977561711260221517233044056670575073427623875845490790496424502584177826940031738008499120821214151500799095242626054414629293506297610603153192983166682344765662531012646579468092422129351663462351531834115128639224161753645743454464022255391623532495070494643744282559268023010519199882281521373256741727024102201183991805330319128705792165618279861073474987704920512815243830387352842137923245091187452560740706694325478456504441033155446810103300792927881677139501175072151446520061918855151588995753567084182785920448648339625233083712009410021365432156184254774596306436418471158109965168507037593803935705627449194977549703767989737680887171003451948248912730550466339174399457966008708194017796156051797711107031708902582107679675755817158225014057887697015348744097714222638085041860916359270076504159851150297844337451930455119528116753768343235776584434176905346313013848398315653579167562909206861825598148713761489302004889993191401247223357074384397130060826622631185597827859177438064164647987137066956267295340516026056573886097094425216362896680962275669486712588421927920979316970581418529305610455336187775400409929106042155403337075307568411650301388781171861802323091122909867903109064177552413619907114372122872964320448956561622934482199064427527066597544916678992871930854066729619311328272606227814298401866218137078515466601669568043072216121232092155040120246008919012766160259088688048528694547941750390056997819712710198860069109581616641175339540453783976525343785289029829298399201245837861259459582071137265481585756070826656898777252449453512856370536053442814939105028242359120573033669373835479043263604646755241862823282296361233678127512122768758144706124717907118385219183825361075358753396689109973679014577129781166725571394098922122507104943636145838783293453630847295132873580683179096557272387854974238096224863691750848155282973587624088692568749989231888389488899377286436640573767674851000590028792233446598265438180068151231065980920881378450668061741506081444762828221574038886516279261621721601777041974264684174628864857168819845523494669659222255454837554237000181965997761186781161199550459975068604455099276429482135791974778336266508477514794834086371411279593301903191778665855442590030623129657692816835345270278327019748215611671378076873825698372357934797720536771832169825768285701022737092227215352476544472033392876997470146029687596474921592992263460477292249519967878794372261671891626859323287222675370924438497118692353388413050252437454685743841051069342887877608276172497255617085393399648935945622434593216125714130556189443224483141789488605890515223390289773344539075176497662363426955147017824577890728194884639125058979410602433469181141665226103122815323344464444657044322920401244521983096875644586770626863163239320347537083913387734407352815727224851383451642372188972534348964871200884205100641958341896999540114177846991630038957521970545326508766899589838803799179191655370536092286041070606044010045255958887588965081309444167048612581982768203632004901951552032693827711971984704025234006338273353680925838929539899546567539804767918565242948629443364923923982085644931337481974870660825690067645395641154702178113060438855542090205435825113691756662706274375929929911366575459470508324379507898662664019738444512417877043930530290474474657540441794160314476131059073887032943236979215618961811346291401834742116163703591944897980796136096590088057005505746616623623175334132594765365239962735530027294257457607668286407017790380634909383630080740349891873773702293020354038419187790841110594233716322210340710087921973732285028874967687660735507226393701976871014561066465911582696815359094726783213894544381044461730922067084910135298645672434469768353445295355806040440693543597399441436371056921683086132855960954758991651141770647176038359278806796399741357973754808183154000796886385571566440165361188888568748257741395582085359783283448133809512610238734551565764444635844633165709975531921531738348628444042135484053696931073504565537447239507023078147080730263557647940781357778086509464674925216252157644456774524767572077423980529860198664605106826244775386750045322955606047461508165300287104335247242183494948518064546902635835469269412683292081773124555742430540601981507858762073054784802100745557920058349453892232104814498843828383311567099463607243463158799573797964431603086388584290920686030300987268066863780505168285400859061908366203831611389178872277759234462816325149373482733759032089781253717254312308162018455310221185551750146157977919054040609975758258946091138461954801640180408275153371722191475252037335868703451257720969411151540146073699020537958078011454920451720394475374110904392118130985769553383967261382088066035208740273713926742190692734515555821961965072293934454224250862072004877575609242960855710623210671284450920478951760335142535211097816389974294763020824589683078742065505893811088984382018288433985026005512617670586835604075821065854020802098397496702364183298263490453437138648828375715851259353757425782510706496992595071440591802406810494123803127766557614698088580738617758461976275674005914665286390930702389482998434521763646490187160876378848957469357496677164644044213619218486239961904623700424626086955463135623422408187376862624562518546257173070480721119529881893944012489930146168640050108337385124860184665138458541980025840451602198497617307342629426041704007287943501998426053154664809194455350779449213503623754001438663869286573468549666299477718982928087760377761734015147621054284152555560838311212423491989984731004965084890250749887362241079945851768113272371032630695432092689224297882865027339750213152224386045850651766680863200651930304276502564483247099091570178289361432470421242998914745664038841175759064488531303634249771118240610541985217793052596795924147512607450412820014344017890059030478942957440257085343018753840875892199127782878145018544275275765731990686952799316835418037232764004151251165967491452226020341793830978197797776693699608906899643747966071065614003892689266805418717029749837050811319781039227716028136380881771000381164996103036850389476233562644864958322770219760495093513450040994250658963247947370360217058118463255199858992360508242351420388961999374587873828512603124255923036289867507810046114223503013179556595388295835277843941946714578602176015630462279071680575367996472880383385412489533393084048905817036489052992340204851145935810373121344779936912292674288945493774285352515452543863134254759849615557485933008564776934358834436352921476928689574359201373935053619965308140886306833892756827441552416666885138042741112858101645336105969011606147588372098381268935159124243223776571959743939428962840998083528539377071137850322106194463476985458994781621713582335801264233122883466119899002561774931990512771434469024610662870254455474565189667267425783130400498400396324444267041181489842296980685286570437735115940605498536212961262601039380464983925128538173461162899471114227422396325039391113587164578145978280530342810435373474700190176108245803411259632347882707777176622882294681127204141799313495423075149934588459454635006961046728591757684779158131623818391793705284305694668855033071280071607469880890524742311254241410627662907669566323403364908884900513428407216776946588265993036596076840683105912065265061145116092740247349406266240199965294232870341473453130637703208880240365600151699292570984838502505010934484019932032201205335415259552955802129678258348369386566031776940989437079467466891153041811830167751042797230029944503778277007145102811656109408994172983047889792668447972739174086151576327267896620258738531085393010036069142626209044422620945472109619619004849640246327558968411511400373879018154225512848592432420702759113536847945692749539702962957978479563685748589496145275130189801838417948116687585942709010118017914587384330785546550627717218066390354357415368844304970745600022211424497155034518749074405796330010708959427146225013359321174004501946407629184792944671024436877148617826682798243960816915692407346446445226581788469688306977730559940297385410170122205562933630231364382078156016958303446254152417042904298130270960092947031467705885059587877812240548669890184267238567080584178950595444845752451901837709963531537941532835576882439314778293993110378220086671724448325017311083422416027519839232457155802413135407353681663365344601563696342162907311330496768122465685282863092765883078589225762810524383072317656115307030364798688176019836746165332666807924620402829784410384070066867911068247131627687856322884644948388556289497307074479110722170382798720499879603597637735153194584724445210925084371100774610339721207239348919406189638594028349463386717863143697288621427282828364415126684193474761934468939207584654170959948188754236929213213607736593690657330004147321010941364183384675285311478353250263083208946906283965690777360551212678046824451712961805772127370146348317630928770793206547904282959312793096150319394152831327722635219515288890151138983168372916634899194948611051222275159792473601325902313465834197035788130326795246910577323997882347440420113738159253240038154427626019376385883670914210727115113412012914999290447575026050620456085907002091816048615933138012949817855181823103642868595969420523267401460897296250296831354678948918320760032258386666574596540097569564525512995032545596296282307468004892774557151794240628303524491237289510313630480628428758742439830897021793694417271408291300159831387954536493201211097542442680686489887496676927555031425605249151747626856035792601629971104358080695681586413530119845999779574663705356834396505193145259279497084736987807698968124930664254470783632999119092268462653918078893404713779644634341479592685560050634575757130314019792481444034077403089325550657872855660046944237713743448550073603621413827530708053583753581545572987645325556039557082958007988501637945588281674270502834716867893823471452026701071227426166165879042016837015748510192872755341934809929777429828659844605366279779993187851130595261889654993607477212815465076464806797671877764644473987413436845186814826498900893846670549962435113941296638652966698612889140278986331455409382963197859525254627427889209086868889407811690297171487061001296152978101602373006888561115789115878306154755458575234393186456784275397975074178615412310709995527886026220642703862748554311085591533621231540899175211375276400329466362869997930626067713913322343497951433787212661215378328174237358403560055347904475002218970341280578362585902573357648711949352985020772997658857674143447104979276191972268210642522134912960862790210860309947489521247941757663532100269072421038924827323969806143358316852754929679272337870196566164941435918136720775200114503657980443991886263268475322037469477699293148087758369627171306085170131916242954909809236993527608341021927698236874054996335140938680882947429483618789269503205168414318407690288105072998526728837281472582183283025714921543918988313858060884854634848375082327036916624614660293725313770374857911105984501547194772865152577165658459478707568900843421154582853853284083358067826826927276591459905441945017390623772740442978896909152059109970423474923482966067648198244909543273358199959550418041234430358528505401779434613020880929130729220734976758480650652250901614377221198634749688171001265656397103401727918337218245864801356511703700184466575235820514068934206164652868945653246270359023047578793887183148165357126369594524060956795219336981915160239826629072387439638163819812688971821044680957131081082537509060970988372655331500222077470725755293953622691494020511811498426450937778311935759396381622367129755527376187885421692919234775160173100599131736346435322275845934664513908312662612802130528722536519768588065377380727754679639662197358029064164134065391984847060541836336178623906376177272316846751694986634774414406586066124898655429679066791140129456063006734945494209146951962049502905060826537843269857338782996199146695394660760951480305397126318541942156474699812190552190865187262168175241458139120335072921695899639070084799823950762198882213290641315308441597702341504293693730095943823764564624838748107066822959958125965263688809237794121005521854094183912594937164105228796845987961905939983648078008744316678127431283452062960061705059509665832348214068787660378183192591929039592931453899295614609086741900488011949561700609287882391634692412235589262414983044959168810747891895417033284793556791777084537960853572751628379598310624056102958390851488858474374057505886495921222537283696268722888907416111151236399221471284079259338615616987612267626042699901369206999899899003835096007205271046961729632035558335423608972384240574778023235116968665435535859850791931377663299810859112426525235786089104653598304140540725673821594044929152463922402216072847958828877343313472153997184468731013569440630040725339306307901769110962617076829325081093162242457166330704133084413221118116740968235926700402239564390542381241315203712779286406780733534325624637385041231028215140001719556660687829348611995209111787314098212703512496856759390164288105144705930473006336708598139110594080033955870202896876488519213784063578007660613931874477304982787922903794500849507008735584536120776920785812042832118328696832434806708657876452694188375865967267186692478049570422821915409527457262140925978244358981690517895009614846855408767755882812719286878418200816707730466020389965275847246437289241990919536506365706403042043738717595638180814838453256904523620737180417568213687271374354732287422595794883531525192892163380956461120942334466655698907616788709867016936112472071740848905127493249109386594006356973500587432888368566102561791555069407286497160784506650336122817232784752661553791033191045937595241067898301371811333613200552549596619667809095478152948187992335386121954333472965028156947778889186839799020360699671949001041026588649477645311613800778864966062735810598578551868014707147026990040409127927114118913658679037012546310124625376628916197581413014654560473220714670119241616646523851258546797660264802383929557348983283053619118408342818741423790136532438461689565181781410679833132866682023713645302754406758017814083345428709514311868627708758444412477617012727854229621026849739659075390492446794093018707721256267160850885555965305814587081612294479555736796047062343898475383870535378590830681835775391127076243418630820754642106702159503957552848687987325556064633377111045175676318619092632226643422723721939878885167259866820213556467697727890937682986183779196845364047345433192643985172450156498027118546997991472147182882974681037219227991370398109900796654656958962474726368912959904032764957771966219956295556197858041141286883207838378627118061861750564550950970122635699842589533622703284426035207741801934417925880776497989323243085730110521901332273590986827854972465001325445902280405572363871681246276741074546611690823012080549341338861219701091948565533604915926721969382559898479719628160953558325618459891342819034093201414715612411841809975877573772967980239996167735271263069541689361654618543487259168962927714368981781318057324355067924464439120561465221048521729365228494183575764363197464884625020829709626542150779592121771560913946905188456600926905579533902911495846224308187755941943887815625339212763577538219421339117367452612723144820451372026461298589113415593252027132294358810995313724249194924867773978726334244067662526864694270383957011775646975867055022153755237362844750347749108881481680247330784017823538793016407088467878252897346343160431974491208197715366217956897480947448940746245336696505808821365795051667443037445696839807421572418265279781829215520265108114244053374474315746519223829787913820269715759694424252359337528950974456135636694729954564975481326215095217159816483632791510484600756853341590046161722496578441602120057722467282966935021957832160683939799851824022468047590605232977248761536322264274772498988482393316727336257009811675727661793023338205598038477231525471548911058311063966317555729141685906458806758982024124097540351126904309475925815349799825768479857918474253368118518459011795980993429568294071227894266812743216014481723442263860539185887408319348290016371767445408928010305234883569493383388976756272756881303012772882120940824254869875808470879070523048492921013325191664820732070518426074726886322877744356232608855686967936509767351581682488450550758350644919993651699430192362655067235043943878015472127543806502706755897689068698577685234209285680297139093903793994754686571997528617862582592982773802826144219463706893297423791912606903831592932190885394336104769047381878525017231764299728333609225896432220322133474188170301381376995434620261165369226404496218869015289107738023701603817724918221175379069555124593225437796681278455748684689091027838068607327533550201221956552221358026590021733889551631801762335517552948276112169932605036648196744370548932953197643898592007747930081410206224487133296684805244977057949105438771795791800957269061263821011165117179174993667531176210877330670972411857737146490258169659997940340985073920795642665708246769272405781107765924273064055194056310787520190510581868465793093947896116709178092678299148273776589379849425281159532541716827399572490896259709453508257096185712176417582589590727471038600926946319852772366423670923122589539076583545921552766620047349209184948729806958404014570778052586931970777555179064525116733914032354925106569292660862766174045779134587608766631862251691304182337167656206109619058776979499703885571993935265777048842178261938201304934568550324690816207383582687861279260590157053850850665304211030934877136918386641699177199595263333392421613406531881558057789157584752754559367667205738395025918720408694542258076249071380497108464086399442543248928981786372193293814576788241956641633088566612085501535413634689374800385145175891433161857957414900432769221842752840094276242006500880500372142918234516976836515563062297808051533309657573266531287178416272323709766988284367787065275864954597996898825780215379460061849655911605507096929334585014637965844884705235911914867932813740912966834268078175006569508115087060731017795929109023211364306658483734077871081658822246059833081339407261261702520890529446698033189119317698421966869954080628362686188895714982725678958237377708344345165523389177619168005084318021825090751321733049975337657609982958716820911082610687024382086527694894571246543563222436806512712141595591951950145595666109586904709997474245812054531299996194828226428716719729939846051548539475562882286649215624090350756089533637080761839474479841044664605839059073608968234437698396757710550820761150008990565662491514222653936109214238503610777469040404697215931793759725886086040025877652409284453267553528879198215768680778656869603537446179755430320026627195161796928378121611607203061651072733681483303406315960203689854984692248716573929524863210518153695580911272747215769069548710012156544597058938215237281529453568340642570210101832303189496443464764837939078046961033444165869706906004685778929576934118964593874077740357013073281282397064651828228071646029116468329459073704421041135787390829757404958361146508172400814480932525469439110474386024780403633707243678083022012524842691897571703916050897234068510339048522077787129022601757631845002521291070756986622402351705139770858269381471687032853555564011333513432124999726861491201716721041777179028529858958135292661826663013093388524842344182241847159737281859302321605584614965395741016713688552336430503728683819527326104338653257904330829555995309075164388077606487197230073575809914079384678221958273053255788097268944350151508790342378679559105045709222216623931949561254491921539547860940898341803774204523165800996277002821435329530861145796446079289808948069128238723614119119122147991735213140520828073664383996860183149995198300304233579530335414812321037837287776192767087438573202631480132949979247633482850329175196996294461653030693754553790872439137061129853639131265080712098880841302726654779457908537684401722194537780967199136622379284561240809872008970122872826991424380315589735973175763710929358990168076742949881572936763894511436296125598572616481770195182275034042053038012203390200047965620485490746009273093902440325618439793917597855289780802385648559108355378899673328282121644245031486101417897454935842160546926827783414316195928405000899265595337390510464785313944497238797257732500840837069898413526185247825149264217802169582619994792635678515349794707515264979639681875980777661856705752062496145746896449892658597100816206067333548111843720918549250561016708713335716194909532408170208927063243421679198912809823399376888242956273973860940281153487657638742792390478094702880587892411996987826525366136024496789558024460531616915018192194822508431056018362931835497633375649819377331026043100646983432377502429079713774542200561514140333016209962367982875548305803787801025243357142216739745400472693310772426465751054233285415759152181494124735041918857666029544986325213500577340453114569227395772211047945750701262857347562656963923684759455206548589628640611351352434778267460888675027887815301695083731631811091970941125311986005419067853949381004754052306251341974058671320999082480402846725999224171446207410805597271451103736184950948721317662404777193280885704498247877637866602194690246288060295995630110126179931366367802700103641770736785253769236437400616387621823254122190712580081275050785458481043467025971520567370521404586858063059334018338077619885492454058615393740202787860559715713362335505485252424411379983502122493416285387594732688074185499694889867639347334862720803022819650697141616819802391688934870044631892964915201844027784008765312633765705566923884477778629535915532278993219065892590643838171828260487509087105103053081905215526649333104549244476103371653205035172001529407961212166120458630727074848409724875373746684220434302123741926425146464168166841490926509680376922402754513759562493329211551443969387369583819516088641510853926702107248802917303868904966178718682639329928097011412783670629480843124139453256579826224109640209541274986670011740622649589258195991301281495160926676534618353023036523435049385495025268828330251196363102586246648845555360976774701569029019273730049741234721801160675484427656245345094147759795694453088216673847323605406396123591684908052820761827378291091102920499027036157524911371973121678110016479458469163075782186928035866831279880843605373850236870272606243489658340760355780679176501728876197561920664504009239624306848985326415177361977983353797504395409318906401671320544298221428872861909881308937034747652884743885655519987834627562836552326197691008198115939227783804204708605318319388761393685665006174434105057734841063678223691532037394828092103131254229212484748697350852925485996287738583220280994629185689082557678737703665162235290350094177749381961502399689053453624311242574031049422032219542236933829637337254651284275540748588881809119124656646360064728922314615601281634151625216330506210033017425191649639194594501269575465511199617261484179478617459334327514099533492866562291921084908423972789701254550259568037617180487749067618242085751017511937764986018427872713702929118263135420258655051325794592118062213063141181354696418710993210421830549651807291046744707991987421154954447217011828116273499254310091664547811099380374754491161395739429825150616867388502211417146373631537895922219408474701605784937223786929792122288356044064241343760669189543996858663083814055626496891964952548395016369227139028486188704541401038176950333305291238359586315138007440463926506000644539726689556807362449210241238582862611869692667893955302442250147482419535501636188458159362181272297293354966004338036569500558533464164172217701672920790822412746846064088061681259427970101028712453182047515769827618310347185814893539544747735054652944810035344937824564116384048078523789181068900675074981522482113013853454238052213819625448140291224468985875502101094931550561569013146290946957467683247599787118426171526793034995254443141453244575034783446958560550872773722270116900382790977684994057829718513418849400860386432597578290699535692275021781043813725342946074884273176602759797159938003151832613386756580736062076805080526561532771014352279090962663271881026448162885530422271114367125984204235627244203481023043127367397619371207253174689326505231003287254198931915937839490811434931970123218839599737391118805950880847507210803595608897307452272180988200671661043128220285227800673996528808258824059989092441054728503776636797132166177127799186263626950536943824173093667944272895242451542276527974410011225432874519519459191049521178461727101188440793023520107126736663449116521644427666225196704316471246083734972293339270145058887800461216857354881707247058429093414514068939746985901733759464162866703893611576947719109886159847678228083905138793562130717281440669183019292093312716867099934372543685679329072597658801222152812189863055377555766952666942840348171697089929615763859582489807187704900878857325879848500273226583763532737168931326106376131819335819526949863601238949430404665474294277781796650908549710433727579353253837497489196586318067484154367243348701455064683390876093757773959792123041347080079706733082139038784651812962673473472877434577737915000769921145811437231741645812300962073882429352425732437221210829932666110974396453878576872253076498288093956980590588890974805859771309830157589480464369779914694765763803688333005315600358035604545065436796229992711857649211480524203501624208896639661951713602348206742161658216527165101842759353449665976816600449034243783597830787307749908484657667025099425675471213471931683535325949264102739307378178890920786575210345740977099425546488046570239823811840845564460039512166162147239396990635137192713759570299162796258767367138688420833974300629920853085880095316588073354834686289632723479544664142339399102939063109576857172263894902411364925193136234099663076265897029871879443602466146708795085232361459496782747846432895660619122583804878124023113518204166709408343644517915669320410764947358111987846771641805331794780621534979074294948207244966169154151616198825034566266359289435768115622997456833328898201882061855637550617899307877786983524237650393775412339142566013330806244225850148598056382378030665996464746739615121948734488837189930920193527862039736688176346622057111668103916940343466874836635122698671865073555090354896219732957576216862546611942088008595437719596274174932275326851220038765734575039704654564556931554494982536931719926700926390855378070657202815189008814999533701315311544146912681378942468740319470081341926927594360223088839681727056970275950855718385893006471287731403223133996402348317672730404511643353725366837368511917435759462905050133415017826921485291892897131750553921352746240564925160310156361553071860484632920155972312421653081738477559037908879086117185275024205394165118870833582783360462423982209050781018650555842786167769562587977017108961573577863795810097158686023267486160378365966155249050026680017847407187775982588783067317268748683384197609916926267067893832485795223314109464084413517669072441048654895321800986519854846934349379078002824659152511441817355497319368811431484949799798637976736913606796644385095015896565461164739562175933096552350179771015541875374910455976748234574960486979723208452717907296513888388375842166023600924718894850612025751473288694518274445698499725239914207569639625459178304719157345974712694676328712976404680001259147798977864662358332866549827849734966706344096534729427569713223709664692637403036722088130273551982263235260006473882049740457489621799483754490455644110537111747450428995421981314072974192463564087955350673899806826150106629787632961947561018524698493507877646671066755828467434306480418476221920612106422623751332641271272487472063336235375700166629502645387954079557716752483637856824881337386571621022900989556659181683593046709147999030410872729906982068713347275117587148043567075905049026606487060733177171426235215700016409999563059615817635838288595446433848976276823907642704594412225899306498917610806529978166115504371005541154077820738090049718797219160136046634776993994806499551614763871457370044889725443651737937908016013539458849308660683387833929397352572905012094683530621062430411730961458145857202402103217638272833361924301333716976558673056210558621833500227597404412835480509810616833450411204309815432710938833382319370206662801937454062518523835795790205052422892868010596953981436507132510956428702989762936669246198051789550323944012936706749282450079636138303686980097354810119346224873138761781267563426815286649165678474059078332905001018899485435965461104635112586414639567278032450839096321336389965725565139116777633160775658608464352564467110135160420967804982238634857807282966584205994913389977444369818106451436142401435254667588382425576616467651093899609777187268934539152486884483646606909335338462574261383605902677473522221042004034992949212471768469525003464004059782305184054602891928417673244463640779028099772693399455980004832646905901461468571215737022780341444316823225277065167847528714597674245071220788589592075814180649357039507825738726234343984877332815077504742598118986721515854740428052414664630206470232576246285722761693107828551996187333139027680067412768530526740679839950132070454698474388332580012323577668014629953747058325865074120158489177598719582511150555050272981724731963316337921235815746402005928725094881480409414353506004047736936457677620901774468409121360885090645762330237935778029512396157905851194541948829753602491888314594387564502195178900558788290277322309628123036951879725471727455915483196410946157019377478922292709888635617117761776934309694028058781122634335772142671646816347283077163007098886306063764057715357473853227313409783162859994282123478512566150883229397964606375154968034165629060990252655506992808318099631019542430722638658695737659237244397688367418963011748281810564792240749668672889827674798715373510135123666772783708449379523329583808493849504290914698908014976407717815459424355014934594605147305289591034501826461200281996294841123523306294319942829529031054246322541392361664463862798159666423865888836226154613247838971436445805224421940568626433268615488360651568609769160368431806170373710218609058835142314374483126481123146832430861260585737660719193835068177538087006783148463361835730656947002270057474594516720672912999214724909416193511120769187342877073142601689897261316975570630317595667954096462378771343982719048556397245181671756279602668426716840876187307712667450504096415688502736675932810048595820445619092061527726945558494854148142956466768015890703710605789342136282313446109754601811176872242507952500280968181939542546891318623661981156004852355591611622470114527996929849446026537601112663532979089280748182457841313474612828751811159532566095488905925525332382398259634889928780461457100463075985817526168072035584844170427576446171839306943730875602492138409916929966210041401086621740055273467566395422038706061037424906292437733032655548821616833569331524587690250666731754975126037202018469292457690345903981154472675333506733954602904744675460561970147868954648615098617661312902462909433317846564605976218883276200530967633715911694985487568340678616278516958896367376389260147900283096954639840926067997791274032578531155467385350310459342662213814112049045297684888457181139669123632933353706694545256992297109361291794288730957443645807954120995294009688714515190303965919748622929457045700010948393452018764704819687989535347067922884715408668930160657295223276537545239196009485503109225007106908116479431434514089789446535081366489210111515405384472665357667552526530156246278542281878982133863413780040662403618108638626877407336265715912455949938436737527705748614796801817724662830165928748363455577247413180765040350788440576473687688490948467953984462928501988275342698019938922426871940362819532044947388028168099539723197030723530302208177619209893268647385632731424154519073348817786038087619831589957579074075271119569492140287350692303193929240001559634471166881072067801022495505301819041329894639324787705485957027221720732965060595895792868552766671557137241528491464419791230855457351832492594813091497013191017892721078251658282721286191386527248066991169434420084643613218559790359357617255301917802101123771492729128837625388298082580762922304889785456818393564548075519897093207472174042372181833660378571729014768146358442046446584467339830890399079029461963672619300527588015551437020276326885468935993041519699593591472475053206803767519057187789683158110243361306759680011927926915553642407652662182532482215059358102868986616505113561123672212984601539128268416156710708787364288274703521061285749322510084927324267159335332755894459785324213897067865492355919429419349918066852946637108783202923164925887228065373826916076505092256065746952761747375602615378755714099026480543924209703588900220637161195801249893012862296013786179927345841079453379133826016313108287502114956924332541622288598167925090962269146041669265697833786961699819218068104112794959054314970689863134989367980915784959989831583074351543546234200814501332546826658234181710179136322508348204676704858291889997027392997534626304895932317748398404448012902631248873910224996395228998069432427878787410967313094499752873293711550407592663680373235354020944103228495625297286258847281649998372790287697879395596992543035087189457744461434834858979881891126482076294396055195927993583080122095730342821622024081891168915514036656227012043959943497708681315099953712380371153464520383521116606582908125835743759655905751889254776918879517408735715746464340742890252589664810312988349522086071981379427237130458974724685167893270755040380930796630162030883394576630613008321068047022352685596553897376187188190784225970515916970365757061674498395218005667122604861267359586171274975619005802279409586290352573022284776976596943191782686497606008010304658910968391368702592381521135682894961006900188378872300449186112811274590680206868809119762127306911770880569820446730156157459527167243393099438321559321501813657292652607210759516421328954482497586093948732815295434997269480415023985387570026599192153753688947259743227070604555929312067781026944616402470089200865487629110375896867939186803941301947349581025726639714835986127647720042814425395331462351689973842532670683700220753844587130667846076573898851489392387366456063171082375907081491285906186792462543183795105438527876353243918926059104810718271522808045350951550239114568648948049954454299059426806182216749734348842229935369160329428349994177025206544560267290507923276533886403983431978492492420895956821292200011842137441408467390855870681467370056363328779166200405324131743914601471928033631226985468739656163305935296673824438391328660710337761974126335856250581692895222123867708801066491809936816047824827093915501160816566874706508700655152537038244511080665194781777599552569806051635730083024942544308859406839990239469789005035179085852306840291010596120165354334884137089640776134706932700948997034528299324732133554710583240244637911073093442329995917801974089075797529848636510840888076824852083137096336454677285155200399701591925012459771072800305055019374728745974922120556570542129628378309155385886100256954797238340672745265770052036177425480241921915341249968180825345548872139177154909292545957320314931768264761402216104327992976333042715724065544672518362512839205174591643519776948545965033607422827827446758898949957117572897126817050170978890952601514765861969139207500118765621457088796350754865501068918245028365131708076238071724185125072160609052309148592501986636145915408790727896147591150521575765213125263072416190186566416638774726564980131798511622491023021831923772786095826539274818809677299560267371584926525789853053197700074998886467498922539964830876963105718334424658025863588374985935497025939274104804497846232869855415145274242806522045451260975896386798817551513009651916778459084899965909859185734819008821527398750916442314223940956675492779750648605805171297723532588541108622057651315042753343041439643626419024199847735326283731677548354899092009056463059734445417989194075839597976079438456833147328648634729410150894572898697402406447322224216890878022024727050704039746872791677360458487888961527083556807423806189376610816864051554392581413833460957553012898192143026400722889980011178875658461855915106756223862024972625575596797116810273495451556002489573124620596543337362179423448466503811081190184663741319478743708887937859046629886074995824372854790271062098897149774650393973094038175676876434033500563515149723440897811934271559770003751789460067893810267551982508202318344203885174015277466228654443260220299888022434890755614850542610538702293642828502592957468433234401025977358178586164382557352824950058360164807954995025268962768143565461004225798727596892598604462738290616448960075753104876578340934337234355000304218382589887874312554902215476947231480510740810759068029794490728107952907119573316888285511697212381318168136857360543000201674077832621600433263214246220196430334642576748522720115177848040621506301065149123897215055935020072518290234716765581231081944926717319960880998459554307605876284272270931674383242445428944255134291309500058087837294313034801159536912288107548917290994927333047766036797812624905154386612744379476117314138859131597410543311336372315971991024325893459258282552660957947713147098209152044633448982167222015868236254936082199405094653777259647678992571228678091750007018692181550481738027598319779348856251583846609156944899590759534398429222668720939568031415937175869609022976200587262607908215558196099230549428424957295158584733203018453012203118447560388048358629359069363980874471400519926673052837708910677768266675962753434032484062323882674341450039650356458056776874321986584574024304395074092348764924784573464446739454764993650685775907757488880230348457077580146003449433939632027019792021591441486281539770150699167371793976145060463083534455894653262221393337640928386513537871729897543880595986347835796796771831011202821950370153001739154719134728914065647193819262260309978760284020050805793139982060024143573617435607458746562973069931832059238773727164010845542070044995562944041464287479782514666838455946533465996469845771121156069450108896090780279571702293506833186604797108660369531668506661875416203590116886501460560063824681155020619985144762235660790608414417218351732753344776409772887992855016368397921938870908396870136459974591430073099100898162038840099189447525001381806458217835214997451583986029057896147326148912376139727120747437041680164877898813802447654414069986019776324082286491022904216031220737596803757550488631535062344867737285835451909299988603194130356593435365335610965147531409011259268275135670841804160532586969835308064031151059821981186845905921438132986890160842769968690434637471466943092580891248499490568987918896262982331047939583621230764143080639978979327361527570826757412532975166190710382112264527078973921338069336873529131940387841725999152232350724859824710341316164561191873593174516534969642207687180572918426075903236428609406186140714129562488207343135791502669368139055827486533815319101003710247576281992214030692448299515386828773796053593679659651562594323694046243766173036560824905722260059606468022728339229439239352080532278921154623109356587881546231743202564472255528815444731806418422025502096144400840438807968268955503031268714455706589825113330261820499158554106418237930409560703508779964674841482871433418662754972415476072811557794980928724098114231290372816491913267023530512292616216539666855351184428322070835628720381997475914896077377556540409391347385045235082206334175176870673466492166449219160381228182436698190010730426994046792347243129435319442349598668588966315891610749555547582546024009254409957842086682595938796872552398815011920339123949711665127287217051621286831732769199583749989925842298224106416607982780537868836684951076213746260568166770350190244102403141368956209872759294020687826785712264200747419592263765384821543420717822565059541673730275408078187385746046120185801859259909553559436429837514392802315798320926796598534286758715379568136633812844046971334383859293358795011747359051838697191770370238411501013734966924907193965147368378826677974609915548098602686274702499697280924830063520907801934076210233312789328494834204320066052338448372931281597449678285353781569256352221570397684171830568435029535533356355430375856738330298402647109269663820657746120216695106500805418095209291464768053148240588494310783010160740029654064460955508617486783713488307666992455397107927769491885230125544341976700915678093031339990242699306218624685676302701961895361305989670111356944713399861334155369890945536836529144989766935535891632357291982345621165906081457172042863202083266601137397206718495623504469493055397532942683027197851717494096869140617125145740959275207132811598772638407368235013205329692646982820248255805168799217895971751894068863347912360282301711883668498110490514361718359923974436231413453751464093204179343694643664550005337051694613776668406711602852616999884243945913774764208053183222566186464774003689368744240070586064043243601167002696157361070732510504801743672443491898864333246179315260409766352658425593265528241663147959376812391028742247624674666677197312110622095133066313669510126261883441080034965235683798751722113767216529181019343680287449839099478960616280245065213909788588162725542750636951234964471958740952808574391162182541170665475638925498657439812689433504620496108662941696325849142618926702858374117046665819775197780196405685845227908774116622545022219390763813989756764846282011844758137008872175386325930176559408597926357641200460370093245753770035224642188044791384362504153322038948698708507508243711063415399713507725125318896963492851732503182477114204380992530481213353646229828222064682029870131884622117493000425517013160005260871600114559405786469341860852959513816343326094937183896873123278454830426933278765826375396002398021117192658858948256068400294446644104372914677029836059410545498775139314308646454874836570642101884861236575122262248756694821730335532524095633334978425452271118091528825601835641951100824345471803586238135560759679156877047611770082426442278518054130479109780294278154963272587963836299032190433088431726020036530312576649320111084487001278030366995378503498604389303492291612485932450716551318862985307701099547473133654344678302935254472982084506971803555888397950006411807687462789626379466667792733381034103113866499990984353287562224536153842861036342312010473658924031638667718077176545162047505004456832743355324907378642469545035391419204893709826554786932181538456819174019566753985522570015850372544237275050621602852601927106174236385406496748947750494639503235859661679985448531182672744506042908269988642217463092587804286461161030591441107921980950597633077432918539440292442960455253175554570054435996815737655163554065807515923658137981296827948649721448712511883165265435204373036770898266325176949988298478070631280732205000934279739455236118228352578182273363997975643839703868474763490014073126255084329560289887422793590290313319287713095771191967342909187395095757016998500711442772865425823497797294709846326701529794295126185960105929517723849907994700569164434691133907094633003408342746883243793068118030149099539713364798501583836988831574380817050413940852892673420563769650380353696794636241442241091526875126567839237435166350402442766534022758346323476522977750495169705320221368723986943696892862022956988327537649260077559631877258568505852521449544099548543096665069184037002120694201723591228715127483477649383934827176250713084920625052591837522785735132458222030261838707869954833583717024590052161623115924418928678342790086208885808716760966346293788466766847860007037172632672133836858815470081360954134796853245142654195960718448088643639666897243705075921039627773760047182776738835816653525383448845207724634845195895148343034307926293093734764844113707589830943567278337828007692935022696287186409249453634371626625423001766872451193443263088162869267459897734927219508168646257807511624118922967187789877671289803793918099008058526639250300266103888144285162938582605120695904348217090131996733523653575013912614629179033466473894954349369462917491850057310782839626617483117335569901902665718020906247389885675289778757730377528381408619285147337707797331452857406447160372013666771556670805917460604628364661513532269643410862900363796987688113673671412367114501558081169351423428203128672333374183351094931127479459086476294425066934993373662026412585401231436204027044018270154651963497920284294806141647567216767155275449486178075742524941633052213593523447334938399930628849005712418715036396737300686076829360090630702417617662895737773953767862327852815017248485253850146658274397338404371297444583619009077341855079735252083875776864486704127658584166981840491502472577061450759460907858420137838735298895198144485242689690406819352291179406497354498322226352664314059391018216038430009836971758734575834398461252286496111531463051382869445729833856290130154019569899746512731864447322808152630068272643567158565819222996712813646227778877878498745409190818338956649809226082372190168208550614324563593687251936108425323430943939672538728242130959957526384467422157713095731691015729228005076642658168774869694530240803092089638722917465910570476066971160591776526863091217505395324014610080100974391122135348768992418770036024529022292278433833462222390818699345905125899175266375736416745123413232595451853969524545960038424996488808574886164920388735871166192185103675673512212032880569107239633912037938601353370786554480222412740222778513367987120586249024623994696770482675385738240359240916129385341736726248288845580325556056115338141001114886543407830839387091829765895302382563067505443359817290136163618517047862816311821656770155652615524363010461030299014481139550292538207650240396031829272139310134834596325473467811409949664291420881607083346337074173385613163937873192318876924021700834165219623714161711155532317470149532253820044914116113401420736609583169909787447422625871122563455448561472438029316101711605726836166740422031042313400185283520862297375806630993328610120697326837763796096799099556607245941665262180158730592956832750173989309214583648412582072041807529839276566766712927105481358926760206775844557608905187073098232220825304859430194916605303425338178098354284320306976657242306635681377949101651530612570215936481287246156190546750347466959730194216427916291394569718503495619886676702908537393115723411371966444875537717156646247731487325251823206306992426656804480051746121925352224891156319805237657836580124323628139873675136760863735991205921140525590891856799290179364706874346598033847671374938083015692196508130372075753038716600255939317466200991219583207943967175540452779216115222959475367038770876392595204118454590701872541002696989745877974193864828746978885690567489997346487163479831172523548927522642592832207135068627889579383129963455340233944354423565208471038524863955605039212637865959035017739337172723955889601067601715527846680973329532954169208162333670957388990952409439915263535567067248839120560955264745517828704985512409500853240641853764744696344401432118262293612921590963808859458093659749729344938166918843731758365190255085273244642549711335587108230378111265617306128389316929900190444635021238475678622263224476883081422576302400221025056116820331804539369044714660765018369546208244531696917577127054861369733576731392496935109460200963478594837904625573242957687840943509517148404164990326029222802906533479337349680691350220379116776454892691392679089536734103215790767757992116689600030865124508942906474691241791272054140455677442441194554038338399292628217778242915987946210187314015353936102660830818487776870293647732695257057342851523125403035864236053874215204162167150199786236747778976249866427975898095762836305161404633850705678672323874383907097048075286624922672256390152727334231040257833531408984303257971098688840182396061660548419569081058630405838212054611597856984650443811938498088587469043815875079855158086789962651194977007914557709605195786642636231132170006669590067715077579561842226682362330669795191697468980505864233519779510561658764393313620188388214892489833520952767300949138840070807984005951828163052687041821769990904534672251699105217633084637700867710918214298410215552429488404198703433913633003979618234988299690386828774275939264665244546353984031890480846804184179126788265081221432490210124601415488355722445910294180019890333654910701093361679317405946337612789365473121045880772116509687106245758778830732466885155803042155314559048190104646883569373248254988492666257920035981499975314410401813601699332223905069258574831030992423208479920417057906813634483869677118531751488644289255098826372250120792873786550853624125298640736527161004622867283379415782513751505506318233878818497367970272025404714230732637501286833562924283579004744736803178208118560138812332575686750163707676428510902906840240042754835855510558891776652287339470158934996923063661664000156669746113611923782753759761580934983069283355791332726847954869206055110976095040486494016762264712800760413531137769952463887983688766436162372176565552815411147247111894944660670849991219417054856426525847292226550146512092656363582388446047320487656370131246760396252766742220991517301280426515470346256946638877354546566072972534544436068615054394656778059718772720652382667785755320624442035196119849460274242002290840715113648861555567955718381137362104276483176786733237908559533617598747716037018877560704486959637321923801672710270644693936856883364565362431050356170812361247139469459073766397260550857585238187745666131634889442353093224509657778343417639617479923771617591717115101128961533229167610050147002053458054401109355401641432763327457900305642719240434441019130600216359976030953606204730921964626603194648904437531534750744497718829295216683090948447793980368490803886818508137296328716982081794296493191400699103994083711422032861447890348741476110277757464596720171401265753278846827931298428344951497485941742588429240457533907676164606934273842823323612805544690634813019312213280872768927152486817455463899143295570159061376036226722644410212991656370009401284803107990208707991054659766429977513064540886598539052613772751429576122351821631804444604932915799504868132163240463296114388308272450911681283974453260169322327359890373145078540808695608796927198128013973500388087496072193087475939404186365320418854611174478148957860358439096971216759110366498833416483348484861687828463112493400789450891540903284963003742339600596855529667157818016255162454293498667682496372415653351260477328653442813538093567570296403555379895543110404566709752762513929204820263224096885857895289646271734076088467416321779630745920320023848382690886207001501945461264109161899156441377721582031978179015410688690537163411971690204133104474884245073746927773036008561977003064394660311104225033674512355625667441312964630081390448478979687853296334590611350496422004689928442860016962768642362814109278923657274712551672167392507837670748137871379879843648917148145999074864740302539313373497613159671392719380306744828995439705965823037027196428738447151150418787317264837048840753899236527993089386744759045284562199615140683191729034053718898764030309089812721925654078966737143376956112169964647679961802990130186471498377801205452335232913498952907951829329169406189544582468278536300466745530765138817963512595492824291674772549051118670808004940473820553778514019316293112174562917552838324644087433903715853783596170162391354534589855033429673014189195378507157712009800534305937098056053057333140231036021333811880895137688438022228179430062540565127813794308080931453409462328631100322917026823795678122898054704204924528988799953943132236774485512513062298894051092865785185865206329552687557239912980421584039970481245403602637220557212052078260769312285468867075416459804356071649476989380261863143586061066120034518773279943557146554096667177763746004241956547232071658334278639102360421840007891907809884382532875403421321802809829775042784810924905482277137397377541696773841446871945740757142506144101901744212444101542474742553493934464683218910392179507475737362862192015516326647094685794945121853611867688791023312471249253491999424590353797660755956960460082934363833563856324362362764506499583485574661709954988267124809794313258054195494266446566006392075519192732480554240862947612400916130768883188416817849483262022684750342198229429350344509217085924272022119567684828670658700492625010349311580533677450024572891505302458325624618291848718725505513850367810020509519881952244800169016733729704961260575042278204596727781179811562604230049067717653051970876538282754471714010213788668147518892630591120067692384707944313233655251017022726766677951745735064969698830588889230867233856644937375968473239695068746939566122481752981155923558306622501833208458488403431592248829205825874120422051264505371242924334279422227869143989841265855137854577244832390720344272753527425259093332621817584977002336077457291030629249092834991755272047141448874712053199806027405733499038516420529697898416653834387444953261153517133257008537943904147203286886082530216018267991742099845075549218727713628987243876445821386928464274542489769742010839976159850298871607313553462995583445105171593469321544176346957729248226958056371167427581519855690547818494897994220111683133866509555950232079365081827856524720488592165892986252582159520226461588405976850380658620697553419595852202246163062770355624283762528749842118782311752011599263740697136261715924394905067264188004400766466937417016686639321621158643833957290780962676304131980809155832907892913521587034494274212872297397674032331328587929807526526933030110647072739699616164299197296033315265012764794191990574526964001113533234829042254137091977779232006596471160698079437637467858648639102825906834739427451151639515724418553809408053916011917782496158519660993659948111619600252902129883739052363358546252498201269849629963471830457085058187997013249593019672613639133369736098629974763212894653377471769665624062804639736263081740443515561063196487335679001067069906371036714217887915829245396222395531957169771856655885460224814573530453877696542280503509822438146647207439595891984759057428983073455408221740388450760906900416322354849193583843974725457051937289897633238495518455571300115505962376389242682167917572099216994853949794534035152607849973766466858951612093057455506426174258587003509246019334599944837990187706562310397141751572787590282484615391050049565485039581044221122769152088650332881000833146256141794249449676739721440976532872831495009185856438658487412140731120293907055725466215082721634401993394359079819533969346338127666227363975901852683165029425691810729492876088316562614276755896045920579831544949160698375190576172587144539078177736118974062831539640641360967065723970060660343812362782853673199874051446362736431211003007420553328727640639475098399881206722349367216504619794345013777500378745806786378179498030859225951934706505460610003606527288320418166948085449048094072491598714941870294100297357019086946293987775938891809236238322182537477065326067312922880716481901694433875967642234113119461971436029754951542461959191015530362598504403598625609303440149736332570879876549726096260042209723952490996488500807978105140341622846511961463144643065580846229905006791200199789790006103389714107378451616901710634122919812655851737783227219615944651710105480636621973080936665305583491695981888478097216209434523346985912400219416027916949558407203596183613570919857212211951924091793686796772145065189950516667286344723478587637838943719218018734847768826348607665903496722882771749609735338124601725451090433094003087281358297915536353210415178007998392573441916403533643787301479552818627892097375785929902716550466495098011779278546530758692515957730118577705242942022285833412683330586879708337404870997926232688696023292265352883432912767019538306150207941626456228666887315676111174557443547463555381860602433567428630191006097979809645154274849399845561725033743629508299315100544040730970956861734527280396170702942760425783842246789287412227547100556838512195327186616705035828474190058581470207333971140004068353794563591737224334807348056247105038523303102778674651330459506006715849898216156287282845216376358487929784204668148201987393470956872535426729143467614242365744192269868104602315608914733489188746077326263859769404259336758892660564120706929244692474431789796248876780913062922475122837167949172948120212580973039050472933680038275905797509645289647761345547791858752662867576011182329317887504687127460522331132904621292574823597908802396203926500434510268914994150516508862775739836948626204434998982831332043585042592449938846769792493015340154164156154758037893361431751328167552311510114868159521631112855938118918746335032845344594944318296411169798698065742128319986910645923865928567598681785167093253215886561110946749043303630222684855866991794571318567671087834425243104154429095579220301078226145690305285303393378610470051280826956007738650258631262138424982401027373266059592859773981233321804592227995011642061489173377465823749628527207729328643512954518471802574031620215897525778870095822995294953768786140674105789635080003049448830470710474987151208419020304529968962359815711179282384547514760117420415733902233620313388577527387727156958338699057931724151190229140375379323714159217316279892381111590543109095449984896849696471319534513829005554070972116134241039487358781797764997242418692165689369078951677263573724111285508110881057538201940509880551741350254803328537947761608728748555672652505307694937547788919981897004655065813779043399861929464743445228829841677791745282786013976116124538692874527185322442023538291173104391499858503227424468787737475524246909095262915457774238561836168166958762632304126942907855191031361120966433853925429968066837220503614754090951593881623831216328455015864525018258032333606795223620934858428892967620753564797669306030570648059861548056689505155877124250749087768145607693519709823432474468569541261997868946495214440198905674423159411022370052308180296862198831302560358810206992513232356417889018421690281619274398280740454779281288386339189648114828700938967489448929960124567488186835857065664184374005980104891451075725724875242330551984447628140700991490288107228933783245142991553756837258457435528644321425029811161151125060321851356531087162060748592150173446445078213971609193143576176212580087449304832309577903369487025759911384414534000349042967107580840964622416976902219167962525113295662931553094752071125058816440613083195309936784179616489108311741274873706069953147285137888148559776286790309601734610526749680643955043660604804797654430472055336825003560204443857122835819184932413242715706334474978008442064797956499550743158716687554000485393126159594261313179164589289045165417913014146085563734960851741220171361200935167102025100363506753636358690760415327270879616876266698096119596452130480007990878934582179516122033484471887723091406368507536598511712333882098144257332375514567971555785329525982699737786869699647850648957076038795014323473019825843295611425111519212159371219895703795764126316635435100276858109854671727762185001462950905300906033879286405528196196296678543819859952349254380296790584412358455474400209093402249225839270773644588283258609426325666645898257962249138625953119519588861439828166250484653714136288108156478394849086665022310355723031798796134078163131129184064149853333706064194531741096472409148553868354402788561415439600456914608995210109082975038018489030619081768588534954399805004667242112149505961166450904663006076383262555159112647066672682476438939106831442901051116488130234848710483085459335116703414708315293677707566698890271564203697080871086971229846188726708034321705453435675106652501177677568379631752663020159318716085869106763983972836887587342073159796353844291762121580557194410681788043713127470624844998247037535411190254781357099999124658985550522696004924008464161278383623837042101980823677315411642813483745969038692596534211176092136294277581727379005032116348725624415775358307509298661319959745152587818298216388037784987718360550804400425046576651291748486459390990366085933432646141976270709286941853171673341068523597402917849989681358494299793450002220533114523402956334304866224942218041020636386919406576460872209409019650800834356316311178875497829511934870502820637913021101051527310796356513533573240730683512129730396983758385224392068038895749350890550814586967981432895578883796421579304180004650639350189433697617513811886182137605478782052766660134059780411775458461600934239846434757379899941453395154208043355674727738135107818006377449404831347631597468525785438802813120078384964864687686449812997962763127575554285199691214834464205449071563167019025192321347451888986619452519926342018651584588052806257652072204516632774937771598996286421054869080455486861367904694504073618333561634648339334741134656643368186427256258792221301664800651450654848265302857831344920411428545430110950936409615248900668015756498617473418504766969069497808509812559000278345557476990967054841380383948940303917407315828793535759523040046052960977146192797610469564142682902456462760024309214723095563686480426107797416699789626635866246577848835195462523196869507782789015854393281884951344557781545656541939750081906070106154003265196722349185938613421957637228552469885835255920226625534457973610456336696997716081943415494447350928562868313447629530463173115550420228551856783356538695093648439011977429769689020726068589273413048383447779776446092168291984778619083067101005454144824605140186244931934411862035092374071946802397933044839477279911543655313374776397548761321541233895006561747487614665097063868029184959342842161426203575629577561775850427110510871510953789636865129820121937920467391873875023458829625887401411414021588287947204685031216358769876495535001990703849572470853310027654422790441443795215003047953014459783037748730210138691623893081349662332683923269067357246885558865362549005012246790534220653042293390384164468896325957463608650326632772126356886890830539985972653345373056073462854672409045036529731854435670333283184694446698595660115718816873796879839175226273091554546334667273970555588742713543083939701945816318353412653772679596979297585317963009932407726281842221887270364053491974414927527148191381480083241784048127914545487513579908323642404028763001114905754789011413135362455448957470138653014146429714638493131362138917376762883822059689705721262072197529326232032084812173678519744505628905932130370745619890433575260227129210871485170262378354457066724258172289351655462401897563469060896250412844203073073168516120741394906896262831387904747973166928752507827585020918151373431885086015950627250449393767757064419407109257512604147863135650952598246098122085543647253763331261656680279112341660630334727034167877614248976452340150955295329515603612269312081887573442852947345052569251118851803830443714990238798422198448324967801407242428760450138268878397307713970252727139829432869187237771024741559545389528310868815109230205583569781960410300570634128694809877861309139643140368501540873427547336201319012403395695910596409954327689948738618422587750449206903229006196290215613684335933545726868020111283752181073628460318220355567556954173105049946336430741624123279039928895392541748064806432286911954465918350652122391359903098656030308393795151467623828525803091482499037816554850951407691173855417417698100673372752023893552467686933258017503520466846708824609749498684665718630441407347244283958650353283225143386320853776537770409495690477542961956527353900067108195245045929317343491339259285201759327877408093722539007630698658525671652512114504213064265287971126526578703085018945403174670431673396745072062562547795396861410919689769433386674023018802061113771260788181351961109534732376501724180736281067070043262369328348885896026967809699618675567811787945881488251793386439559083065893937725788669371613541663198285502748150755173063429441016296771721355292231943012169858971209856328983528086790309212736361086663121799415572662498051428756833904628874448491548696190938153005898167948629719166462408099437913680198174541031190171933918856600707024199657648775181879328104127026302498954693646146012764391203955324652511710484976353713319446819011964584830133166733645678069595608253653833533486939858787770912779961263252551945773105957021289525370869531140473146366532760888938470634638823429873911245052800056813565805617542757876392741278351042568035498401076010183603801730577904675209640823969887690231813552676115713759687064523374932164596943567918584093533599590772289398439746730189810395365302862920856533867944307748654714763297674262247552833389024470880235392597757968622662768070099763675451011945619589626069419702477074831605080809536273857628436353377581507325287950365196997829940787930366895865567652991662743267241482485058972561073880580728419157206288712213594241469945797287342377899062934297722860987086101599181054761157566309180186488801970233849223053107706286597533034237712301021385379364893969032897907664126183968566272130897074327946357234926313695973707018468105779667597045648494729869111890217362106125974511635076118488538621219834781598518988954589331070702114349326248651683142113738876592883875662074919006145574242685342133998797148162254000718045067575717622404738691892168186112745580151833694493118536632154298326716303475653842372933742377579925800903674160061404287487573319139960293722159787294277118826839121699220352584862544980123598733165484484083705641961850224203089910839741459388644067390185810082583270071525665964357302411208926333785829122879616166605551405586441173807706910651553819413137011510984135933103327859547637771871129036614154537428567646062289226582239063609590146780051058341676887296465741819646230092057761015370264027443665824299577638111594609273919690007763657374018465208131028050727013821196526321906673825325671384199699622268646003515378856967051902430068805862741198045374250540310900533652905293472131121520773416567805723990313059627184591551488386090481627658222866093131686915766107500874092211832358729918636049795416041788253703904454018001166567333249787845777440716424614200259653408950794371464777658113699957067696943554437839783895699608133314994393158368650081429410165607232718421262612862908066585783456151909247680579933520635823024929107764001580611900442343598828105309698656174188151725124018960318893092900397309822194855184433557250572841666424064257913251503668905679404225379845318603785087650985836364033666375173345009168299873566515359375149311603665798690721185424222150950528508908834717631617795121224924339289130960361302616650293870351707504009477600328323956593223701243906930226544487393453366090774846240767628101120343176956637481437790315709901122729424233788444476353204453010442671097910143731609748253246960364408653586709496938174077436830199923367334643879202215036700139856460895343608721442496717476969579513835968902529262969104333063769694597775319300804119010776728923922639070169564089654344575393580593287897255498810486074236001830491770059887798323107811286341014417533110858221733032666434883241206502641586326763864100484189808986872372489030179506125327827781739735125888204979556975494416561850426310166052169623902968659022713962042387850105669615395192835784502225443854919616380193446077890353936557677532309713318500250587610913682356815299417996243378883694480496728507967162912292148831847794807485842214642914270911514107777760750773384804464359749915427714020709693018124074013139845792459700196914662787044117080780449768019535280718032023677580679395571606299408630950800459482776589262530829400897897657572029958760524422267495762102478580253088765512032567575151167817752344803616146234655008436748761485393666693657066715026730308782907409560020702201546409216009099800803551567537598130085631822382072673795316507751208845812802018557936065935291463767300675294385079719281531142848686281007940691868695100599853527609695620949284959051061883028723202342401350493667095191868137442277399353620680328017583500874202492690996837547588555019564786933057295884026594712917711699287482459291629486956428809197320573958892939024622431709845078366990931122178735188921879301789825411794480699292212943051092531291936017848609078071126594879269258116823650962047504611206720234694499993003486680994869046652971840677317841995358085652899786333702179826762961460423872725684240322318860228194643875006156846931900712902693499069424346200465751871129771648734863208243472450885994302063620814133466765600536553094364001389445343046646699117831965560072110378994783148331871064284329164447184897874967233711333413553375722725762108440601024028312886379208367201324770367613353385598353942726807037447188772180919937863154067132272106957227443291286429273002341400441528839406839588509331655123790057206828881739549129648308594871763178403109840747937432068127293910836090314434392286567414756752144479441184532632965988090566278540854149368026205624141217498196930292505216359216586369295172228028571730890769052066389686360887723161185686570184238281899643996581590055923887441122508128806986346395711913929398503749728798978472671281865077461099015677752950539297687814131901333324164854644901331178322030655472174282903572763179197150326869162155877921577166374405926689549419578412310700467259810025229902948787522337712006504243268764301156245413794403606607340967883038191233076349081778494018533595258848961073195683408833837808678252352948647856646255692390220535111801318522720535894974068881213915256654705649965600164575256162288347555994897418555209200128714636663681444922847923717280199341277438214794101124134941297500425513193544072453571658595183233190461100576448448327430495107756271423776985804248461790788903771938018039291149802136559880913925105281823252136281366716477133551027506752304692131923884181821451494333875098812835929338409902138209534851669421854632058823567256779169403565921416187260781852885024318320736650357877127652145643238553455015706956196730379769516934882213369657077161141213370914346795702206047218278342970307051444779833394698772601635311250407973121832898073400502734093727306446695257968752858728358195732967312535461634711224562489936017944063756230963642970422084433375800241741361638400538843278061255909083124884935962486139042447077307851788005672326792182815720183033290337750952284581586685205574804786121535844906355200941303682969530052715261055015783978351528652376029017653164966714427053554017507892873085933538647248969147620915999790830320869386538245557093629043837014596089239514790668357922384641825345790807104446032309388832937243282250417808909870360760516702763313441965229157001597968947766566745050911153705218017230611082466565919845410946672851148521265590264380771020397744223171617340716862146959491435634648071016393449468641596029895588561979741217476471890598555724181873630486110580291207993826949205602314314605272648029757152315079105942793947973204344804001368783763300140145079857198550816829948072860971797948640282973172230742920221398934397839064904100897698748949340759000340830404303382536868402340135654148555478459131109462290515597331703950982792107092710677160027406770775482861788466012562119485257530821299505109808272100456853133743144131066165562135738573939889626798205755145072330604804185180741258357735495343286228529837362496965981330146212240145330290681171371320007299129727977862790689825073425204038307916472335540077929102507915097829865195200397044688995167202232499329623639505441873505619230262180565915774570982593813246227115088507958454584434781307517879329612896200438224733282414203943169469811032629584361386627157716661437303123368708990700234892371188267209682154897323012578337940693432686748035666088346471415234772876796936422143358156548063899798750013271145648498518456691311396506165194542186506455574508985993567362797303555149610788970874797100642509296105755450118052031341247128770909272919290286931222991005220104634025689259384248032949100544749437393787929344024596118287994773499368916073668370791200677181132667968016376580297511393487979687370384271393292030253074084235039568396417869329701476923266087604419637933148143097860383862992843509209985662696416965277773936203024565790407163341434328758173014341946211334129232957178405712225741147218269852918722860482477352352673212325839296874011980349479132338700622546808007863034307679039307647907516200980549423337640617301483431312049472823285735194494266499021112516062753013156784444445620191157394357150029961352382202709110963829010872573877481266591670848859556991051854682635343410589808276752410803538244623987570322445865429021536790708294243046731337201005546899319270234601094144416110690270103981407697773780978582033716068026760971195643996825021377140821184480951585542052457106423631106537079330272064749355237423821631179820815530668676522583728154833402567702829862411760533779885371883778767307435579553410372796037098612748701361257439395786407917829960272464327330902422692964983195687518442588895156736757255362743277804956897603342190506607583483115703376747351669019882661278432856004592855943063308795480818335639443935440889273106904366590158255169686434496103163917111950174629656722390330815840500755229771468985663628480398236194046532835370645513576408045111768831948647212488119912502387387492345906263689518239256637984221508058551197337165034307386647958611148989022738484429979134181634438110891405588677726291024744087212379241742616806907991109730579763409926865214255573133566425214103770787209224879767653152643739893050496250310074028389666336263199201721780766743267615237571814951667491286204799342494953107440032862661765674507706172105313873678937304890479247198553638510663277422645855657948045814510632034075541921084970027199731442186457584071449683385325442546022558303307559695143854756966811484601900274649035279092861905615747648545415995124598503262704958401100975523499537843175678170475826901407680611412635173307222995220763960153644319091043726377410174299270330856280002667183414333151209705790326659905699625398500544318466490700452091835009450124981530085134227702785550050673096002874524380880358561606673120543011733729911242174890940733109218622223766092350041078199977995469050431134151504551316320025861629484575237097448446761165497376590396474224526954462314561173538622578902465923186950131271669204880519385279713143173087653301562704482761784639833700264549038152146511724681786128500854982312348894052751071503436824386174813009230976767331192109195934407693577555395879355368438400979735678622800495216123115506148454525546051841748337174457668923990068080662090354645234623202277023052270033753828258219758264251261739775419827457833036284082000085957410464527867538260574606603897801896503696030389561214228884360642745743347747540378025205980861164972082815795664750746155083392730749826908646522881009752564619934769883571391698990381968644981893102617544417394159635895640349500078367132777252011121547647532608822347928747491413381787035808285815140179566320351668178717467580538492933740012196075927534889590965124058330224602231060526133592084157210072488832084281768340650109140608483212304513136256335843820359533402945050848108049312633193352219181841900187074364293059253892240131421252257419909757456823338565898126292489692568817406334088991734862604054054843810403905138420720066800029917169369418318165237057196636880945997893732624885408771035712420645849850940221142405782590971087893845066134939525766658106268290765742918780924647213078627518355963030548771469145115488571915750015236674540202111946461039756290472984299705678699373319577644304121344860841339814023347673960170300713419413270384915333529950707909842990972677733828892886322884079367232550150054157390502159863554195464282593366500698172473218747750946096796250721305339040895607119858999909034753330052020106505135919621101502156404684440302667508478255412858475773478362685880224354201781442549253283536738361282772676390307323602509643580446510136233957648501362077084233386118895958310156081433280428226851413359921321416012850679613266031051282741558302121605126801920598270954643626194526002666227847952406626371582628635435325894808773588239207299372024028358566137423881204859647518612531809644830674417898817206391760524516676906194481699039922279996035527353889309503022391666979896557051783515039174473381468498224113162784211669357393799953693472537153979217619104816303136666221431365447958978204894766425883801756260828744104276707711066638373622742374780088337324805346579490322348305104645382400064875045535832307693252406512260687349376948919409829606408850315266514286473743888442966006470487803414738079322666985356982839746369357612927097422319944804532490985621643294967116807681692675048335314936724554506239102545584162592260574810756141465461311593327356782061264564170600036304971095338280319737054406996492782895406005730959559182271782575840801844945460945949486723105545954322579244869698019553834819123477125014444175638280045259817874222950750358448812343168462463006435759410653216873234905101363808824598412638007182852174313460007818935806755923695744137431895058263995038352843661805659103259804727704776450613634363186722370306387310012822286985169119124323652729298225384767394924976190290485286435343961405181837105703440158348548176969482744689286479346324686564330074056851607248791028685650094199195189687048416503603332706527931980169671868925865068861523455165259533139340530586600752285307747402088558199202003229966134723957132073989014192643387647927342838892008530007572322763301209654281701397702048145840183124428740217426411603417378213812101892022570130317021136259559054543648459372199292360333804422122350669253240151096057241646689221208553099279331542269765847521472104915979711635137457428121663242466638855785444555191685462363501565472876753922993861016012926281567218378866990057880151973474911885067636292779256327947502215284637067798555725705532464177004680564853740195789803137854801174100970824229103276412811569600624305883997925541834738548621933507012985543058105081465551951639453837182521997616900090912869933208763224589332712233773402876734778754967051944466063818975542632608004148690654815178322481956514751272064494906678222034411550640152173684360061060900966566233022603051952815799378882068977441122539251669070071386413629843530419040809703842726043854164477892092860449332399574011668119299495707653814609424435359368666234870990683109112881000733815009242506401788912929818794590917132627867947014557753441915545654889991355059295171319402134657283334245070395816752806238089870376130500837936698514179749102866366745599645329981531119183727738322008229428811627296283073574967301020110023316685739213280616007759637315561246748153485978389878136000791540658954881641385662669618325415983803002977879096750827754888177583521788197268131749323109992796043317070055639899659569108187748412870586368882245352543044043066977308141938929819760789766266702378030251049143053828349240348264592144479272451923623407923544331844148141062653050822364753896641101353335547041748051636002044936771536495159763794392037401869181177751116526250720051360505737912551381276674391317878052099326837065468195887457673950103705179626964903555180166372163659883640912940709270891719238508595854736395532560376259992466155022619504049381180850295991720893107649755526893780800118897221603637490349777710009290305577851611255690715926494672505342255942825261849508013840293232049233009313445955137588003646303453078901051555006870819242728880683438207287677125126695748675579650928892117905428628953437348843466438154119960052845303110016900947501607203723936523424495845973240951667138407380146228356049484596249803293760768765794255471902663815151545776930985067142660461962112447040633297352397217341092463709264325443272504327180013054431391505974589726902218167693161886538747001599461833708031714635124457446232943632488318907062573349081377648071853704942943190962033577672288571025775289464670088846303235416919046464555194768155385953536450769491961344425361112381376154828831077208416195859760794035352043567229158894343788230926907615945049800471369155675021286461666821158435282867217837820038718665931874318284216030304603464363884887056996453903881110564786770318812053119222875596156959726097090966545436947429540766232123986319498107646573305767202029782981101359275861091298123281901282008685966315188214391239096879482494893176172936613672596765504087439993559586893527020973681389923853272172671446489523131432949137189585011518325762229170813708898981499148680224154888708266766934531762671273567297065941585030477961500604527350460166165561451710851522447972407468708918963310614271187786404783822461302756837446419443442106420898697932185630936177550281366502351368612532057569205295564774592775721024659078757673690567050181048866761563934961815173631321809092538855633773726487259805980925460158970040508178408176339020230391478985214287668804312359548228948425962449341654285689618640146296002978157753661694105372975785612661898668696512661621477506592641952647891085480698720362011316904555502581901535811603802164202404612309665448734573149217060985875171957866722104499806797215901607028836162505397763523190963860442507843239177868718140214561409209858504768159206716855559863616871875050847462993632176446672623813631287571106305423699587017732600852087474324389671763282125621808325556007550448137196098211695075124639261259414344253671373196484466430074900835861392453451039528475087866291869290457384912137802158858056890872912827656483708664966825962256696101225734512479122979374679168879970501028300747458982288739386228806758046863630547820323292559812825176778030559494111967303304958003739341194297207348217267843856910244277755245205706932432233205131264746904271922919746081304808357304145661333807520649381154405493509326939732163464853075396486489500928681431137066985268518677325824026625558648876850565522466162511228287339602844518537923159851972980800787588804998956433775680664447622725876409237422044962932104795381397330719897979390005960242537268938968023780877085919134458916264782044736288868542702599849057436696957011771208682509078621025915980925757934712182381096194772108365903992011566231360710341575656620208547360842554819121432899181130986699795751386901765642710522637908263137958083037153504848968992149083770715605368100526980567296669352506188557592484655638124008087078354930649878488567871363526725739821804034077888015152244744516254815439982214434621847843135074345164377113521701501723816031807246389517533346279918545761373785909316824890179691915643575687511134346722396628109954410603359266058013453312549831926258296614718725088097976089202449704639163005259021968009825159403725591583985355169961813587344754822071762691034087860100030633738545759042726528356928292089235634958442858993882655050164280386318531305930378487585210337503369529322640063453373091138754008762633249016589396923470724332732431967724352899425906669167125772046279836176184705282207792826764899371645303870880893230234994450437095032257537712985083901498247985375052079113804927821822785009051507890775253317588931827726295129314098504030644425605259751795691099642067588713633630986279017734761704217033345266152261506798835816713794722143929693190312045313089828226654512956518150729026979378105951602907446081756995386234543585094757213543747403643510224056347924294034789900798115589959248560258956017771833826237749907635182006552408949283950043421822778658552790613781287860081689987982363589358293703848132571167145906835516908815473647721238243208955330680755853407756647184191727543231006421233231985825207892942283449132055998549374766841331964511601087425307607493668759483400147212998351949113772759853189406151832468708148535298433670552231127878214085587832796571811965763964553139341990758326186116979003555653658934028156111688507044219317328179492486545553353384195123084208726367083021748216411441408245955800689723569480160108598025364682415032909811383876812654865244302457921358711373713533705339749297321441299977372342323529598526204616887543128488239091924187201614518492444253872722680448689209787523897809604665969283828936050111349406760816771202031985171663183120722467477810575579198743628253724412937656856805747465608285339467907475970222518248293170055221769789133157441041117127574072446990513215846195583017570152831485789383176347029459199965743138328827394305065297394316372702423881638426989396069692070629844082462110924466374284121063994023725837656114680467525269854938109430341130159629131520812740646390591230780206495803193148208685800944858415869724839968343609442070823974617816679893020870299566883944905826838529805526761456041070729342607567302663764974745974955478796367148111578769376351849755296044620660872160862130216488096322467498794260837447147351418733609898885767934424307865260220521958425666345259537918994386617245874886983216252101287289665996377592110484501728072055623846783560649917979305044366288916929854489721060331342599788314713571007253027272552316323808482599296267375435989444965329754557204291747833502737446947853993356153605452315218994917290227870502778490233995557055494668539767192708095911308214640906985582657721345024235983503510214824286746584265029037248753132032670485357439551419322941883760247211905349367679290246108895173278600741598666652506061549556514020811931807985246453214228073683498484328201492158674364034802003365332773832343663123566328817855137951026216722616386577182336010322735712805609647161143833150152713429993848915771007445158251570611554453036764756383806921374846628961660713749927618744962136367172285909566816663186977457174030540513696894613318129396500941856625968402776683890101783405278919551795274761928220645276320679654235519035706615891123371946777674980656742201746403037358216874409792310859349244402725815589960145745683134834761957897121563030483027774723222049345404337903488573552062180734436825294930389189929458401444792370912025350340209830462689300754797984553956406200594220624505988626155992089206609039673846369314391751750315527772414280221094490358375212667042598504930971644312432081165628771825437235174637841474153036562835592482465501100758521846921735620328693119833183938016468713715489979658125292344241962326833337765679850811865082898155589522355317213415098155048396055406621246012373575625856577708311873404741270802271771967869706414715583311299765434278360193562252948586883377791667521593816616117292359318295619161481250076880712299843747463387408250703448826946425601663183930972648124066183975604586237800444779600525926576889969326789112483689426089125893780878513100512612708493309091658517833067404603718650450853911757422016528979948392158053450309770276402080902755566643920524796802052442300702487325496024993851861015119684797444377506919143963011791662883551667191651203870947595380548921053934705904724100243685778941316133987148307241282271061461760141351354727506581731928764567509037778785072156122658042887228682325980780849328379607374804417376152184392191021443837451314703688829122706093333902176317961445685769735026348933961379674691019376018162068720074748102692105446430431965644782118151210235941373670811441891099445246351581096858184938528574099412686894927461530397548936051273229011717478559788627279442940389092915384517758217309090913898592444395618349191680027479884494787184564972133656755036849494580983731336797917259711243530413697040293161861443349944705107222745955321237491513227407619248525317001933276141574391934930771735794119672644439622489722337087546083310693775969214568462780204154370987512315898393853694924323096165153808431529306639424181610570139259901910647114618327180923210122789175074811279219753874489537495993088752331053078027458915333383159879474126463344831798680550440885209793947425064585931916281067298286490559615215443969785848052926971125375999507595147932862637983869889363254563039113188255391987626305134772317649225746014422785319842752794808173121753486094613874796020329059918650288495310480902103693023872175081936843204882953848306119843032231499318090101617178433565574114053532158525536820740731033796946627955000897446211253907330885954082637830496075137966229864831808286463582750200324926739422538577742446460000922750646050293843879553172134055059359763183239833594928987002916930767938607410055771912613466422290441733407394497314375723651289322053850084240857976751469816208010208078533980365236658531325867448461634653328292677551579312500681355165748580742014595041873384663043510450881808772298843854195893996204826272758461954250415680232483574132353779124274447303750451987703042101569722076264101052130786725834641611054497937049662365491550135195089082184955791316945258835260403732726034528833388988344412316534531424134017810018835541822998038389821982916870805857890549247842382642891421085221113417431595427580840300744168813924129997893115148313473482863818194247194910878354849009465521810425010947073643478056883289865318720440501937156998472973739944005316716926554102974838416790083229076078915768677470695567902881839270101656520360540226738380561496745521245837994016669636982190822176670823593243333910373236135566199058069171043058737967926594307718232626631966385423175875318950871638712878224591173875362925690698825211861236649879667491314237657888032213587115745443054051950831172384061805736960755724882453456278684073581032524151564168692317225641773252651931283412609392226870931125359920485791983312087911357136188820835027148363769112053404324742669554131187269502457305782171784637062290570034897236247747972051518848271246353453147532358447243576212160538933183575048521459264057286376506346893834610078487162487351778286028688426174670718862214222927601169876757245034985660108706533524800324134960592726211914838801588499484524850189538617468257583369021322001378435769736591965376990124548921957830008989271847433384725026172570100107523030385030661417775353662035996569682214352050694375847431446546046435885135561624456514954464967545160353334145251375435679257792071827166759811117885760648475463879456594973228242350308683360842419308044719397456873975576783248286017284396248218109684913638920772354062802973543962257811493033036187119223252973876458513203756062234001506929543463801443623511195153474638320510323093613252664920944989045397165719782228059134256346323717386566324188422876555689254532793267327090549947717924890597458416562390595196952770405382314542175043459489078077995815275584970467404393684471807594537224218464914458411673369786893718868791273555610477920435021212866599726357581899254647897363200498583274135606587579286889226153083461287615274129335594813162534536126269318351512208485723091719023032719217310370480605413226525383449646523033746328360124017543525064492395691418400349159318974470659195273921269603992579975969948862566786677118046998045837858983743263871589540321416421420453741248987453068404379016102622048674798000927703612918103874100863788965631493709392563694656407034528636553580564164150719847274489126547554481966666020829467659439930132487894723454876975584415179669164235296819740767935027982391151071182235917892954108561403836285885157306301942422572702977024066173239263716854826492257744604396209183177258191416595961724112135611343782462527686888869896445234392512492799910480093642101408005405886572361565695436389522314533164153998724033384206832103417876283976457292067371010028704416437775851219715722819708810472607275686228126290871231424329299108867993161941569412092294298060205823949736702138324227189721935922044450656652961905797920283954665293651233621623968018848846036599550020732288380424938165411745719086902379385628531152722345736241125033887308248493055887759684377540152503813237830772906714344652266311649984303673107221720536548281517700510798516156951929467908145384988653785701817417796892368344643315445673917988851254590168523561720073545127634143212115947798362865612374444524153246615983951957189065053449843678202917576115874215492018591440970328100083585362282775970521430225387466419253542488681335170536940666659915228174306333161242480131539878905368000385427992921782532607474293035146357130940246287813973822646600234437543855521979366596846233220162932918407998686470290636104707938832017646174990940726294214873873788960980213171561327337739040758874834205442561192276614959751295111086463666509113088400169971734732235515221481009142407497008524718663834265016316625617057585829580898108046870842133688603669528089155926641909736252860387512629122846247934009823802809326422886189007189116194743223905983680442756640301917990788654141286513360333295076290115201347737933063380412283698902712652299875014934177810559196616696683124304852215720705100616376730513245052962017670700878469294026436113740672111362781882832759305486394013475190778893735113364072730153217006035888058970283459966724114513388564351219177764823433091077973843533557463388498267652958843118653287031127551052065127472068487109701388063665537500293335237092902851322854182655591943280950727518564130751550229786426412210203290143115118969115907619475716489552752735262806415679057342282253215694217979758089087270470034686620981636679240165873184506029309600582857633901674618976481066812283748538727286777866435889972448964740734494491590150122831942464929698883493211133251396907260756082092993061784992291071620179134008551400917177638503960341895551695126588368861559851545273942209869352839231182314163380670251448883615780769898032353463732623011773946734723341642014235973206610917306331260329190806674117608601425989579639878907298649002721698448446982972176563314306424468853521953317620061743635873650705907223748980981034712720785770213957987134379299481226197247731339412459767399346227290241931199960803159576054797786572320925375771005449346264459827881381005752664568356425343260937132911739310808827546893692005394409235299432263457680931193865012517413656712717952591439949183328386730475773025202834558003525640427964633191753493621448386657593575078793700384056561832685508847269170135412588664290495652465180343588427483130485179630539365611196652625069139863905344327516881648027225952320574334188704206610235038565802433895330212593275076021258370053499803286400277200933263906536098104430312153325988636992435201374992252691063238151877363873888815571702780856777364421253134270874005646873808924347661358936682464254467373188864346489778507849534517366128624775274706750400401039193647028201780936008130928349766709107532163735328869712520099781738024630682494332363520394136906155897199351590101053736126290175443539545508791495856335080697911670233033843623518117728518144479337788147369738062135309410785809177721233510880204611269026027086013704258899432557403437283575077666205989744331746295347866284267209574717168935693264021251010364088990667915626763672957046987512156979057099488968865567798380654318533820995385076389850987792459967470286479168324693296702993659663526029297895254777388105301903643656026690936693206469601061155685078042843082963676391263963080874965875043441608961920715884142348410574842325501323079786436778884505234186505181766257156972305894744499292316853291116707243420546976894283384565895470326166718082941566831220090912546690495557905905398714634925543349930272749804263583565114631473010764477314697351961330378262936909311417448263455746670958644112827199939768501109110937673241516008928560587447450388513229857927658709230380643800128041307719570057199179557803716538241448066967490668415319885116133763741762046359831932735431047340251024020958341815425372358710091565557144020608401456876900213629713497901318553568426323061112766557422610119768076580349404974340111464587720133049617189435134783715582327566084319947219505807588993959799125141298232344261077870460194424562297352913861829864762456627545350018430788811568773073045869797417379834863310804730536240928897230045158898424923917335290161556293660798358036749196331560982083338473285432811123579409696090518084499599007542024133257541688253396380730711054048965837899457869943280271814996209475703338459253145540316489596874578869635256470151916254912775940183254703717157513999243913341651637297642919831505143866937944220684873072645681777445876553453080112568116355299413458319125609894046982752805909610141873009142706014906960068082613916085841800752622648731116109150347492763302537167970645988034469475807045975140734772272673394844894641920334916020556088010366383610277281707022664313091759724056355140398756719506722958013914324918564427802516055574762427195372998039907497917839361219175832376122200732480090572824994984016451012917428629948449771110522082473799823691189176849790996530844086020105962316586236091567935542523818628805272141132638371159664202541726257956087039253440957257075894469506955882767694094964054239026279168881377027579157336823742524392384499733309894707949867569053177941205931458928816189002589012648245484398820670841280458979497319945667592145954918883331567343679200500821566449487997358155458198839522634554395804791051380593686976076562721678540766161424857681896800009811107081015236376932931835054647212047998858377494162971408059621110216083347242649343740607086400435406568919557148050991488584651651648090384103563187911023327926222507359170654146171042186861328934749073941924551097836717552024948365625727377041949520013724609903877847685329108343657024966093834582501601638675632040765337482895153172093362081182970027630237433999438349206755414760430450734899686527110717489723047850599329103355684006776614453662997881701679692576308430899479927620143851648357583578730119432540047941265704297588167545568859363975203681201658381766025580020702787929692720008115938805783189346802517582465252341721784606074470183948538616130643501087113584835727863182852259311893571029467877212843283393906662556618811429343829032294892261794499147853964003206431497486947533119652799699936365139640139314454718119156693392254710421473862028108196955533806702344207143041244529584953278897920676582407281193276256812184268663701378627272216624643377588473999743715647452565843253981844144652286883717306940525184408349278736671079031284078629826800108768181157647202334367250417376650291580135143594073666498403824010734067956253298038933919035710150041721078746321455939167486275336474698861603004224011920901741777279050872270808144467720305414274604342154504776309759664351615037161543472839728535026706440853876480224880990963949647524958477588826594274478934208410330746135249840675584257160751709365114225558310974263624609653597923267338274765918298428524450532485725201940597519916506178784645906882385187488074054111245242795407463387156318779142746472780437930467450974362755294242128725712914761227723586987011754535637963175910926269936009403355079393450945382190649330280915463027253916690662310417205383174526150375324626204652437381008124941155474988686932060134444289617844227523922208152037957063709041750562708882075490631092909200543277111606689568328649209275502734661443570872180618964753770849838314017086942378779703971278315460738238331043658645873921983315238621693300345829288627562213323224029335427472228400482725892259059795176050009903311828962895580707844168060714869086179677582637249021044420406427780297432332694559953564677459924502146172941059585647673480412138538725912523916509912410863050416043376409370185446598539246924482298133503684358042300785002592144989073025888142945097043475610014053977310343601605285264337089658094425952835961320159252418941417256537319006511495585858440959918558153070061182740909163708044312982854396347947862676394347815190015311205419356378201610530867327920574950830896129106949144328982916933165672170256581193885903671390135563150464423712635492806434982159961425595468938714848415958846514130851321960653890019828811070186582813805463738509970516485095407470379382506344076443297147335849150806875088277209234031344204436406973957805151590927889371855655397154618435796800600563586619928247938907737053285772897607662853011699310626691546807001993131762452256577076833560365904571432831971261661394374700396717462566288964103935435187018993209802563003085597445932277982446952185655384560068200806705942446259478606494275703135846595136069924315591465611140065830994209232254592161684490153142517294111733740469601817205489104417033223437735562202100838202263060370014937371717025077604034916450737798790099169554302460988634519759557019804102130193459034057045678176217250938360546626998130998003320570744593287267634098380916576072234803785103596547910239079794633963861136725082251748455944354023166852850476872066112986069838186489816312135293620330770361715909225201126980497997935632926552006456145573636624903702364019788536834093731718445788199393656337469592005788445933699059143986368990368604545361389870351579328725569908975663075659239036726364217689029829985271036888408308111090427558221585017680056587417481649259312832888202069792353428591405097567154633355379808597097917581667486987487417131695351657562250309621953170830985468416276230796091944719240820599410344596714363191598566187899759749886587700493102907170435311524606689950537917409842534047528441379749173081904558358617682905037933861396492819606676071039099492717971483089529781189165784719895131226390382921323738742670604788157428424326372631752175608009601512460852701868404887815934738753914824845261919730784331555807296178215943376328426090993903150138161339749762549937747442072222005718452273204670709400346810514962622320356793462535636543130413332359186731773544519576572191796447549972575672529066246780478346433223462520091418281004553606799821224318438234222572576528038450102255345208328450799384282012277979769411318142145071253786483390950029924261156058392900138948694579193960032713292958931040702932524722914478137325965999927216092503405814832754156829440708164531495379374856669277221879323272443498797232391174161806429814926252447170046075202662662233311670104759374700142492390312790173900729944195085484971554779830207786713754288331686531649905787623282462927551552109607947940143947219730402000902177224345917393189044883574043736630098899504424123128283696839924604865327322199464796963153760810244109622739838245091151309123064532454696145935107842108074849981654742995871822614592201082704476843021319475099718008130980254145301648474349853565748017172098077484331710173960778596862883553933471482668262280340567558291711676490558204974604407195352413227419564540246379562919434033992196392298969230999290072701422342447869910123232799484573909215391375734210211368650621400637644505336405141398575774329978521487423854895039786337990926883735922430166713139760497987537362917129232086889110270892342730457193259734434874266092468988095077093031593518298204891890354405232112949033946464011367863294832694708432114478563215042045324411680505566081547536366038668166970306987486125463250797550904933384646588878961657659939057854756099088248502219523837644293828312358802712370110484086109949000306940007868640076797111456272341557462845751436603720316188085418842175717930236197769360674600584996278137478304756436620390641351372621297245172886436201659635677780306805943986337026460579767360127066728618519063917354463151603284711987696722149302337563108819746909384088416657714957335936774297503565149540403214142587798739024605643429633805486033182559166342492967051760476038076920074436062726814781179194628524654959822783745862149734237717732435179510477253991306175860359947819401740829884907016242107130269759593901458804859763699801721698933177642622381153695934810759414270891513472399389158236758028622592615032746523171292094285157455317873917322338657898650793436838408864456775411060803795470691855308694608728205373591539034663501782877812874283276162093910685974582004161431199819567341134623468088523100346894237665691338476119380056669928571062592799388480396555633840146078128267244622540592181556175098508427827129881881224423474517479873171306879887935967011935814126742529184734321025936391906180670540447972008206677644971533874637379329375664855072875086602219695863899358346570811354239690310835319558097471827295065576907615141184304200340027272196958408261458550472481865949442885216145791549100514657584684870938673199106310062488646658671265263817614534296448314317470398847506178182366947445598943522216197813423415965848421509426675622018500546066598643277630856467541086155070317910134485126626393088258602945300710335259859733237917320045791506963641446434967026690981842090243530389484571809625068793273994709579036917369506527546451953694484543033129327030574788321169391440045166122830560935634247321002858360981187426686632973679786113832001265866030313953705791245805909672794268757908561702165808947023244291822986665340304651375706940270358460255402477765691291992225528900354688735103068115255994886650639014515313509239790775855025989812235564508325114678798171362792207093412709224019727400044477823552284304492603931439658590667193638073372600564192646578748576985235805279680106975956105584389892351067699018288976360602650014033325858627974607110965153482444175726330138996654675573683622190232343579209251121014744131150873263966762893750605437331911142524294782100111896188072676825281075551993575249554516823275185424780920699993136783129212473168547119886768232060530207481985173402453389611604624117975002123397791655767247040992640937400380991319317844148552785153138732373818079946711600268373698053630793277512199541978788794005744606502937909414093909673418150271540215980485564058626930685724239587986372942237391589648292305985663333700562258125113140355557214047153909427716647353046602414611274679456920041941079954919686579112388373119315328227589463752383281421189848682670064880270268120298490122108669616867411944794775613956617633884331507931588776412734214338516590356206348364110704635253000980523266699684372200442702181301146677596530398023463984389973128634877315991181417919553581100210092573861341550873052779128401271567500410380171640573233935488581322402388061694918114780502875873235143656203497213681082938597532424668117254020525211814201390146917933991540650252821878131024562193408287652070558227542755178619245819146849425171978296931068994191342936442059026935796794959960524468903855345564577062503253335903625808003204071525839252782874957839191105012667247611960239212187870603947395713531100233511523741526833804698809006992670428134482184586691983768043471280524681620545948159874981526810432613246559342956779679423690085108163903441637758290012690150347441783589574720088509988346777625156626195722481386573938183230275668788009101554447345548120674130667704158853694837304860236713753701729669065090942506025297378842233740818894887099086091069682610522255698085913339887435440984634856124172614313761742855627937276475648891458293718257623869372144648209783724869160341560612461744859233528386580573171173925078352063720542442422339048667674307720327452864633690235522680067382818108265915495780493879932704100595731438801934150759189746710994967915429773192598084325108468054773734113568620494505441211450348551568326675851772294163321461534469488735844225467738014958894309186452449392197724833167841943152712430286584252276104188815062712033257107740850464691388277626351240533001610950389741577584718578858502459024457384338366455787572135298947838414111267965228910579569332055206769218804888504187714144542111797813026243463556104352115079849734934968674314212520617240448987080492274037512755567600298534844648364379115611019394956842114931767161351885470112420609378708882207614581586959544760973487216802006981654020937450402411242408758769262895076640696727129816779313626871654364709592251295507159648060039051643604478179075597170616734737929556384112475393400929523160532340530707187838978124465191067904525540979765074025658832505067179560849972578218729418533989475848476957031523448426099645058407961734217091373574070579211386282505983056232825625130165806711259868441794819781789129939300801801872997674739904086673337220786174740178373597626504337271383034944349412387191883780916984346901151031527403978683170968678899563644777752364752567853510688596255399427924877517227511304199656880752945365846676480746440838680304853251076944907331836490647710091826378454946737038150258475299233283120158597632095863453163315500146558217478422344559793508026980416194032998827924359880137857165202969333180786572382884300810333352375893637946505326288673896756772929829991460315066903892046799015057414594444794612390324491554355524815883894325056961663497240424827555671146282520825107857605675337411014249212379815090328839956250144099936541982389815585954204517318906676917720890793060950035570643163667287924265947246052703956845240282758172317248726911946947128864154463718161291225388306137283110782670494321488465780541202367787468008836350191616036660258052830324796586037262132718300655042204288213090550645453768723985355562491926078776168489811321035113548081381963564895138423929009122516612904420909101880350133240332106527134521247170743040245505697991693267632040023026573569556288993730727698074773405965101637858506650687227882837039131178895065012357928068514276472419866625601027992492934266183261125906753742255203341654420566803161745138967531606990086396957779007772432318534481078063565564574590293200108259744787594195097786437846268403653321020545458277415410801801463242958627999171728039549753113120024663961054545331237263612786912470467876315976490140393479268728646025024184068341123219908145720379335776739778480263014314872355849021388543591003634468197024171231904967155951994116692527136604833775304819392761920326140614351756759939461464985405286717201892084391273521709907352977644182697195537071716657869112839204196228534248625631035789372273063128703225577144545157941127476380511436861564550311703108920527027782628063194548356293770577205404081920596512724675315783059920548247027332434734505054000746649263523189401822556926934264567450559038084152120159940012165147093294766876644802312846153006381052445331028270690681922148930269645176708697084447123290734680625324928708840100358639611787467358368997995946449733082755861206239729801124526265349729088463681889040387141926135937125809712828074526892707224804396106746607232608443196933212116049002672136128066652741341758287098903142464314528588220814939359359559748586325442973405005361881193027160392120209496151696139484687555583950332371905707201304607247762659361584858736013602290632368849466861076083024173598270443257058298980278931129928296597881915459316153637820615054795128266155778863150590767759455032056717802127799475855819865192890729094865360586524916525916302942041069180593201196741092781950504671239173815314819196283941202454936959828121541035107521870689696973516987348618667887805736463302851885343426429533087272783150429381738713114774450178521060651095372666019084638032752423827252466999805825813677281441872060784676005706800961867950554667801326764976314840348511802577158221267645692266140869738276699127027581735129937694304211206990841468471139567028145006309401320082660919871058798791733986114533541244531251500127365188408922774940980129824635654478842768084117413301318988812984862666755926028962029499155600591627101601801243612909958918797227474195255932378681328161216716240780322092620572529467466469976540487933780475128116182073653333473048827300379493029779480978711154605920978775532065088697937594051917156801214238275609953887852704579925367924223471420536837428859975180455139672738579533138161932354109848034994660522829050539353957571359912758251830362479465029836145716380559990415022990243813177960729527981923344683642752634657073118687668409603553899677909457363225328202782434405961994571969740386591360081623777525785123336232496629001183157168711022320759517200046991809097139373738453743946764122292009198980091944172819956523504457410836551252294375049679790444099991114170917845907389329269873610951500816010442492491653667926631960502221746951379634222119929835690066122869333188170400431934409667286796545205512796220666786367100772477707192653624997822202839405846613935478455108240832495390869841823401276637364416671935592890033879071534851464189516104449724588472532609079497888044442856664165722120462378104074911345269185839710393000794567495524137292995573731415299074394375752936972456462347870334575226333562434622712947895310527764692779686813732517110071971578734477300637184819821732063442565050515173169738868044485625467423321357691157989841858617019848804907089346134133396689780873270663753835555751511900890735819140158644350878635600312631852240584212926389862367261329428832860961331081974526350472815862825778448231519689339773634898713894955627751135324417499188425199826891739513922282205103559346865886655050152977816901651531150558761793303092792697273803738721804154252489755541455307307661757447000125961605665556358890168757902579695537997166403299026129358679561142495169436589326120850235450360860567981172167030457180450342537918802339947674907347279988992499839076911196820673462562734395749712572749785585534081693310444577625953209487411027945899749654118736243353927914130792843000163008351857804523873345106333335847864053881635377294381599502813254687812131038421420204319599463638316607601526657340500486252967743831040254608773302866404551148058936854513892105207344521828781917225212026033044430475700982655568666969736389751581253053559677685409170577474791715835237212764244194212792177322486488599369152938145565402429657686788470479234297403209415626166939940111989657924196957985278286504647450488059537920717888964285956573165391098592354934470246263083371233217211053253998452496604341180963249329544387126009083039612358493667583875557024769071799284069687264494750191671368063117208181460102660791067915504865711680635993276275458749412309665490309605690500470366274013914223419072996155714370098827927809528556372000675528564430087117863912839405888204893432801816552380822534578370704442595964211877376030940129666724208157246249139605522502335906329339428810490593846445292876575125946808262222830395891677438897914177151379149527199580246209426133485515156795893943521282317244247212271044942521079174359076643574518895834285982646426915302186187029136285510104212448432521545623915381978707051741035623924440474930675030006513781744655181889663803626952815521091295788772746275149801980016927352589432013128688983876671542549427541857286814666642216492188304477267117706095604118086090430642866995271402173320147394220481220495913780576995170762281087885238848607638391453847524798713097705023625769738621877291832850279962820536235254062683559130508141645712573134028853382993110089953060172663583249257304243370589095347083947320760045143566518402620815677124974596993585875529586711673194120847495002231388203893690043378977950087478717656953997598581313226117173126818823137787382211798560756412047120833844234877811563440618462772221249062943952986805388037241222499597314108933667022468403350308599907252342764604193265758046675950320556052246200860626279205858708825169133797099830260889291209012295907166298886046098365295883326905073746797089525207308544424358152695187154969321515824586491760126537579545874140596878283062765146373161456124258450944171455206612169840094923614552896438098899120617370582804891849366064081453287551411043678087723999590558819992927647753172652770858462459447223642119702919089657979094984758615981794948167443701857843025008955396516500873461818965520600241599786893842921570480505852403645556351741123351264033391017602811851996177428655934612085678553683841229549892377079233662397286417664344287365103820829116905391758088825928377554126213318400018764215672530111336024299484029151934978346029414735805338157425245128556545506011663504826019177320492961526189556687985765581847511209844874278013976431232224444067350039468391537341441250349473900305823237386151044988535720939809132552775986763924704286055831854992223111766609657733923800356194802808193992668088573590176115909174185091375313006258074878948642478152786964443763162570320036461871743613089754478371226695444510699640022507242493526418568095343640040873638652130636474948860054821298328502985319790833697009260540990792229143708997477685161072102809596648161950716545979479878051855346691340801792753367060409911009054274903641830057204381409604939185641237367345089183359293120468923863440428075173402364460985697458293290786705552759468761190086428164836876133335819799827632409205818495781398928277295970233890774422273675929955545791927932010967123169525952045152243147239602845826818461987089937101582314651058859104497225809821328889219589423428056930567968287716229505125947782528838326514358339469173874317652517146944638202287206076903830067610331578928546181016491757872880637429803831401387205124138599249296445032140981309601441659735656281149143531146644320529349346419046924307099303994209821064737688851965343032868482114080907716247023740624295142337468002318835021677056672533186975349966402940521948589892994414970393021568640855945947990247485447078539080304091301873551436788352760025258827204555044491654285021978155996361676970215335499837355801912854652259493177853587560592143150435290928216219092516606404122381676597588188890394240586091506813985607808261285409114951363894253514284596652258581140385869228361950576036348310635674037321037451474827258015746883809008843039010998104668229374667871574870056650265502942301167565764572645757510826226470121368633420704774644203922153699068787681275317038250995243239536317015982809160507436453199488812750878691132088460119254193075665485785043636184151116250538680896606194491657530969311196129393279933650806891718895020567668658369676311914374675447893613469258281216252927009310726413166284972974123180954912399496652093817784978913058626721103892949923962889601697828105473600449284526311799495316280120895049499759899284612979153093717395037265832630510727113442522987128327921981769352057088255234011611790600731476301158883027649948385588597695039133571901997801560953462845508486372071132444738425685442357875229041687510369184739894216649517039070451260983930473704771845228046911568192428938171068513500628807921578476086509955965959645772141590372644411701784129891865323143218282549638169974723656412649767245515553098485929568903038487448460245169200488957789982132410202538139615011989602307654289142384920066956921142535526141987407673003056306632035653210073624221665741524827897651012849508324298300450984825073116250325274966922331541654499423682119824617493876140725637097913837537085024506215836868015587821796742873271613231545858802442163877549855609276538621237466556575222489764872940632649981977536098683834191536240936913311638502267153782916993438147678320074612424978175267417556525277736956773245001262441899977228374425687982174676860313326342634307956960485740288178534019149085805578051254147309360908616757049655145180841125209804403689417665955490575661773966945805688602390661322093400958985117226058142031578167039315183272643650557351934860175085512959339244589369558193622811858433331991174304442518108134461829245288877656540264573235513590516068056690277687564621076392360759653308710531328260826582263672714570126430829697778892641165056003300225734795869012695505166826186416371620233491597555597566377365321606065841537286950102585996227781554772175688716648480551306086799853460061082620746169908424231167694690426809358387543985337440960596137710976298112567514640997322857980285963254993064739698085334203428983323113017730898535343262973248555884579713971299777675143657561668078412683524150716091828809666734265817110750639495364235755643436023189184248362541602089859127009082296339204566271455003520062167505709530262053969346216192679237119766382451758015880985664952180845749749696769486054110386628099038790770955954927491926233674984345630815131553654189631279353766716531501037717496712708238239306325582141031463033172015653800140580079609601746952713954193629865319012205842086523148094415519977018742213390828668091629864637525785669195023672993591151672775896606147353180765051974947644739409198281825221626678043690598616767574470996888401726148967935759465239280666502462012477431071668991499632634019865407872606477506570213871271553282626282423787228671931607974390028450197773517814902279314021635527567660075034022190417755931034202367703844252555065263552713531625010692707580830039530638951571969739142482378117340610972835525806718975458645072021276630731523456396877866055586517988379828155745964003537057272662937486967271237150549068618132823708018579650125900236620349084944888905408707924823763997654794165248563775912406783590174272481940511290741326772312359403869827614417469724898934511782695671907816959006198734688117622940542084663197206773757553481107719278826388635067715681134037873009564134304978501956278796400768429064121358512202097667085672668625454503663203746742244815726672581591008224021337706092696641972554902874619228287995742862199390123322070313574236306751723803503448874538668127108961993205180911130239473318813775474786660557838567680127235071629306356492698005182893146314402208103562515644624227830020278963166658326964442387407420627353105589417102842727433003432969891550998527216935514120733945403428036790150255493212304330388584683970937929431665119738153463742813153761966208908505009870461515132246441384261319723998841054547171357718171865205639628300890680484434548915914993135503645033356514022751448280857764176046666583057162467912980643320542832915008795296402515197976004884738856625209079587577387351922817628133625945454428576032627969974484774590335799991806641468620088478992802894789498509339464918809086297308926694555401602520297463768010453794501321802378912018683660311780641938012744327152590880044977154175824758592887692011266925847600918447985878520789037177363735589201774049080442723487564511699394574508919418785105639578191479204701411285173176045526608656182691147211776194835524890450188216531183560780635128438349186721752366970691315005072792864549339058719678183178469016827432238487412465264708094634287334510517154612390868792281045218395229919709249914196191628997260738990163535361241083032745702038951692371964258727568506034845197867830827614872996799700102576536037488790781351887999430060571143798014934942808225609833709107561049450518906950671799260488579981910122062499346812069463643275149230190246075668812295933813413734724442740097962958985985860471632802309531474787206088677695393217737622565586408794437853443313530077649519304771649302886994498439421059507910803642098889647007168990120218395690612511279266887893226390454328146125054257830937132874180668437889939798450916716566560403716322275247791185720220409199230935417125479189224769623855275837592879527276153199643252257870424474489299855728877998763092959198999305314082929336151230643256252855682439787369277938111718793234907048764173647999454022633628401971019902506437783950849470259379975651666056727152013148316011959316761001055050347440591314813692756705796697834639465997271905447454190020935182335477309639980960539654666711917069636156234150846702532423789101088241724382887229648064586548137856196817009446901313465644334171593438887592879379999819892094025090168852456956612848500227764582126210563181955383464249483290779219237483336002630303267525119850238151939699350256319488992576482457676440527224017279114797757210751229658000442036875446800590168231710703521208727618210178515659986470254291510715955725178051204516153398099477074008998390462979865187253250488852631781342097385535368944519672825182875673621630408307884733191693233093103176688583578915564392239810760657444369538874351008658164569714870694729934761905699396396231934548755529792465512864047855537266313439029337466740184949842469734957887983533147488149780161889960710674883010914308525373657839177700262847294644552282987894089993289288191442645024986674798066528843411252751878573251263962478581859969721370820284586367654383305338990270423290173260519721370372697203617633493268952439701698859788169312562859594825406757561541060486993448961574692059916767564212768701094183279988412737199449424790743754926797001481078224737891301994037764217557602782258877869798694009131585229212877863078626573268457368719814954348118050279812653359231433393848794903988348268405069454733797114421258790008609732129615415980962212027086801849904741432610743418131264919969749068202447961225494794993362657739877417433281063218789110216563931920985296295289761531737352223992623136718805633842804256499669570778477866728138087554775326188098441024327428926954021325702233947532634164959338353106280552046167787841969562287521782739906428867552051766753166752274935809022592083830484099362689729183769637123057720236197768024218654450800684342363301162960674895680381240117215589888081845741334759703217205940130051236627679902185203921457523823665959631372010759479613422773117512935221575205144286918856452538800434930450519709175435305223515998112176184621737195118583389029506850423059334560724753952419429244115898690463667456505484010159653874384141184929747296092245303712604695073328836783054444275223974798098925140565827141043162859982432106700374669057913055283060898899487622228388649982438436000068898501346132453056204895116801338546800399828468648460432830779150162461395961939925075059495571498102535701395006532040022197479494771019515594095555716585970036536158740629132727059451411804111622323058093977341958997875043373697976597781201972069165157674474521618465837166240014247828359890153614078419675897281158506939460367845080142330984923977881696484431335890496594502477810419424309024762888104768922360395791709512251602920828591635464485678226709476345335325054491894743269466976393753894802635495444228728504035526731010748131961802485329640428211848655216561219372850998552793718619606506470599896882234992303819207053914440804488406636162373789776862135823919448305313070308543128412977801051065334011783977974090798635244842636436783859622412981767101449409174426815100132889203213648296904912054979090752056211041111783100004956463438915155969308685641456068646162053220691183901138961109827040429766223401581336636141517611967185755686231921888581008844189033832676411484870948605676896374271978135022762447256922655591297529310693662988820272964406183919878185668595488036527584779092748194724791173379898219882061336844794033587461069006611918870119516855872970505261238274079555926981670030751688219897210234528051583630585635809112293819563730503885486959460154606893413555977740059846332328237000415462905623237614356358346532426845937636386550261824608002089536433199210307754482768766686544949941437688630115679463537336137920848130178122014297570951509717746500744251320220661342475158144730273363634042073883761135349854335147433173116495922233724207724857149057448012672224213119436973233485453314848701496277821660900532498406941346617141330660495074653607233236109016953259638009434235990910341567411061008284224749238377072400322421745179365398262655346308736175348147707117186058345107328977193148809542493821057460346729822931940582900080880889215791106009724652891252826420982573848976072555520618974681316412152503494396916974064885731639073689941723005148434264944923159702114575306191834648112000057133984766190195355041404242877513610972459022287865930284352742773814493002122802888854410179242093059072580774095107053842230628651774446657026405780544087505243559652966452851370347974184586891074160669607137474891874932475969727790377302080845616521120173344292741951416987357778441003771686831046705171428298203140889352707716282580069481373266944474788306453606474307169399655455557482665227461722599811792938457315681157011457506849624026605765042093241903053697151879302642116172763840335521285102844990550306132617222581816833894014027252069338339765600629171925926764441985326810287620112881775576660471539084345810981492284591646472238143943513125819701215646720538153077996802409971184524019542565575915239216081659056266972921239539578511259947198962468543838380567629961869682173624886480776142681918384472888841568040548863459728597577916185630264778579294077993333853179875167518219965661448937448432676475536644651258101059578690980815426900532150024136096495782346928185516117967366937563845382955129856448001053312339102890262093992153295318381135791324437723277459265830841209586728447229195681701856173133537556152391899168528778121673661970696395364101233890882000726632404536273447695764433039257497849921098252150166338055044672351262265035902533871396722993080827727875409456655886083091675406181760232396525295595311480082815206206315367936615241225076406909087710057010154166937266458449268717166820878220503915731307078193983178609338477411963128586471887850890352710984651384171936661209224174047879881193464744812107819023311082227669092233684537686628868676175022780703044801459185461742595521965612308277585300421327918247122343910686602273317756036643409310997269942923941292978378891162638455570416040813556539335697478073256289067248098735350253591038819540894098781644778154320685755187502683748375391675410929484362213668523148396941462176248416631390091540615654524935598119540587694670408652822067400575026298879208109778245261894327096906215117260377634704319633944212029611461530818999383117535989839869060817880042003326057276114378183155821082564687412521112327229361372349308384584096517680420826106621398327867817552886460318197951969829098916693777770450805244636337216246891627565888679130623896612844681054921974790655388897715860075929287426247051780762994603459744135767403614636686595757782699332362631789954682845622102868250608508000819663670722132289687852426592695392604318994906950837978910622451250970901397346130830469329811319964478023376169818809598801503636555863850724565168967486282521143957852743645301051982401471430971669955037697383879992428510661288877641475196417861360377346766298824668104125907551919382634744655381126560869811529603885949872222175001176037471392730623350270235735692687303674125529869890659627134789002616350096482708182330641864799104349232622718636007702792108470767339178310370357761337535795816417991694387460134248030332560715655567771820268985929953612630546023649654609089987632160325787358456171745166327878405523276972032069621088427799744758373571398977064394342940658919706734604640087296139846251846087146455023840771740662537086736138283311578548782475610432600830930091828806119725870360868369381240802158895660619922247676756826628139116380075682868255723250216552889862668442690130214870649495842888612736423292012589505603421208746363149339704441873828967197995874442742164423366772151162213389863099595083965191937512490806386236492904351584584254163541335579430358474860402247747210556228523105365519443596040056913050530793584057867723667906453088747315163713658876341701277182318728048958973425564251105521398476697434857455418726157106179571707089576078678672680034025597454175470913956642442750036880151520670159575900745519700048756219823458721079404628307292906258416434752133943975074041168158093171289115443106442926012918419167187511884720339518916426649920903229523261147494780514970285583387487350288869380300187490090072352742040583430037733309665899978256804152955322228723222839399543247836625674829659112538467529259616564488857855048394091031560609291942960044685830752978513650907464062392667916147367648526355606186929317310669734022293695608680160349656532398719319657433949248073739301519952969733940399045175334431506895446388372537668675416674441973248013432636586133004474081369649955042924294761928240070069376901395731286904799215650164558445059709983642186419073951837951701554899347416717306906749972543633192187601587505664402083648032579615516456521223146710907927169846195490643687084519683619714302321995560245550691125267063408858313361681830304381994271519168179050607900367017735190934331471444673926517810352168169134303377803389496544312032103616873951987260670528237644183002665445875627264251489614875355214804104584340272758892395916912268051878122326114456068046632562824748517965655937117299715112094512850122382425264368197926718981123135656074584139280423311697757448197737085068903779967192191682987223800220382248645017140417923306312139290024560481936931016877271580600644447696244714840478866974453593108418169699968701187258503935036234334277485091905141741397736897712458735527831520542721330263074032158185072919839419828802933001820027504779873332367826989289833869559352538419155628173973017356076704112965144593565182713535304323256073748513263844865244674102119766163916254949247453395292346810488770728509386087171335097761813554542489296969981555542663265634826427471681396952757795668724136025175399328548960370332422904595690335773279009452607898926366083124779724186722700024398384361926211797779722186067507175610118176344594803918648355983046203897910828689631958746123834207523109963624997365312848191265397587257525989713744758483024907717466286640295576620676421126966133560860194789575318262481470974837928117239454819524312351436250674572917920488931383551941940857463130890151806352915217670439787476418818672856121120812790229350903717754696408133230234262006287138997071916318374777113636538825772194177345230485236099887449134348823115095172692873657388206713633200910504177399217642260016829590921713350994104421560427892748513868500871102133572926370421362941391168454536849082776569977802349433529258065688448286106002937458587241150341138894253023600593221727770313365946374716626514339504431829843303501420972723343084440583973660885311918667309228402924181165416951928291107955956783354382786800363938560122001620576176650406525156701908368079963719188350150705569129584826684838568395717821709339943580974364325479223681733494664378085182362562370625299776984169145160419568173221619679813719707313379584392305724120850363254265804905301259383633320795364298774286415296216588950500689171142549921556908332782670354959232992090951410348310727424200917700790059637298712532212274332331138432218280818528267906591512822407333212103737566574265406245243001906405574594016325935684252725500183442940892684603326416660422215043710733090292870969278898486074141057144127873891044691630943703821208483972635508210843634980484363310887145425949323550911163048783502692135089472110225089245232202193533105039419802579573945639381207838161612346711543198457697266647211870095817758310811758883643931360203977600927247969249217844417510343383697138710544230663226451759009010392640982351463798199155137132224830121619963876755749274688749872110625506275773683828686461023122488729674547156753924547153897344166744078366011278685913077122088053735833205895426038497235507529620386651967718358951871515547032698863871275007542758812378361315284391649963320030426274420454815043265682046812596460364708952332376400711872328827436753268213604006979055005879809822029387107538276846571283975812352091290286676983218436284476857917096211224387566430266867808973888208357083750713931140480314323462491855854312266782899887715307313690225971680985877407694357893102325662572681507902781515959254534552527617766811188712364310856811083513758193585184485896866341105200531776594930921998451747693662396725081555664160588858732586954195363400605149287303939909400848900207435829824832842486010237582547959289404335537060577926866237297610392327012134798063114582006002824401202566987647396426776220855798177683374113171721810957362549521450858091919036004359860892134522072935117711726207275019686332428461570248903841380666557594317918950976036189224993068013104361453239278130045032199642338058472948707971645090200435921919686124163575658352473724169234431670949615331444477468937556267390492050281499441164708794072012943150194578836493815347172251919633933708572128963126089081843200059306019798468179867913866698119815747037249608820392664282848163977267628048590032797460426123248524229400057967219301887229450888979632463944214835687079578134564175060269111539186814986978363498765691633916057406813419411233856363687661584353427134123705253666324779238780889163805459232561058424339003499189993002178596060513809657356062584755042718087367012626303517681779850906792356639578005576061977120081502318639674977408724466987689464153233482293759085801809824989281999341228447128520267895617423453990968723548657212044791172315541183289200618063179391184022376652002470260676450764425144496980703923731515216552139207402091822240814749722911069580329547857234451550034242251023600240606859329937808474619731765734919611698221094472005583035131393055071215888906262979938227909350439133520678592300921756384711182811006659071425833998427808865195337551425821978934582755149155440558105952897298164648124111309116710503931532174425160095053471479549817745048228913654967107762739875639923337199150695360766244392812478477054468053459117877598133161878634561925326787112051581138476474365242972684682741602959255829991103078634032888030213567833266236643916283786223714039555143770190402542757475247559046848435285114171645402312656304401326778185239725820361839766747544694674586909812310497934726546059006082947905563718883176831184313215584923824671511129862338633849026207383714275175321875562759542882575842060630931821630218689505151753491507778611920344822345073035909765631297530497581838859226262174233996308640605536751192223593233486197903125311343503063560799728322916208352855448733470514766914250189825555036541821197125932006515802347206489143945826714940341496200362296876965185910052361552442021155446269185191338067245408435001056808368863578583638054736019055393989109249348596564788219514291465877903218134651365604115628810376511038573851328480641630438544865225175908366608716427451873832892739320741962704094038839365546682284713349610021827860395295879179861007527072295379257103583436674072997653767874247181318990795642946203329962292452784637672555505915196901577684622402631581427110749026458753199207978189046782827334529144066849930595023200430907370050123366966629976936952315733361757798238763922322207227465921294276168335184365883013122073689190839802693297935698732855039436920027038881087435728490274012002818701737289560873312627677912884979286264329052257588868135010066854833411179446543266602628309127463907287483548241670975454588661699331779389215911114223642709781540444034234410310281862428820997746675391658713075015401563672851991471581362632401493607936205072401423622655281458312546680145406717177997305860340814483684020290335022268196712606057949081201433484792742247623241803629502623633467017966188246856077165597834354998108781578697007145940938796827385891218583783651427846402433061746651421899303598677762002297376796574366348020386378948734747612424311900675679863581600669502266729985407519629124263208054487412493494905623118389293629150782666142024230684000774624677738640559015536730687638920681984855093499364452185226918312340961341166878239101775517391608367936709681008017839334803226002837508759055411623876193522411179535904083135113368025887216056701357021023869943562543155836292040300524393020853132528368752134467012813062540707507729845855194765885607780716274457466210813651519876435476642843987178481403106245461391949571616424552221490189110186563221543640358727079215355364745531067489894184200966800021461757178301484793366424472800826894347996673177456259460892569439645665151819395993680184113606592540822333678793560866445893601550958223751090321074540176047149509743609527595678804818323264371373093453468152501845495321395069657325941378013031301141944263729860513914843001451454028949420366583085804820140251550716262993403661511334791437525279380979051483034403556276155199231907999898707926216281310022670330263741528988173861939393209954695122088163532612915941186823391438014798261689565634158801151871597309059181918670627847738451839238488636133073685113113176377953523194325982177219512727911484944039546152697676969518330256756714957434904937189447858325831233749374220064627263025682946958374407249670475455444466212200883477732600120047021627786777422609258472109759243562695667751631422606375835575400764679316254630228418252270896958646784120292720491533975162023409323586701377944481342325118274361357538438712126388723232128009803028781057171005253530116452613188098869074926093976128552864917528268668036804136420792764826690946336899550119958800058098691374683626515976802464704274323519610919154819471072695968052399846045933249716140660895336513157478020209883753997945958458611556905690219607268151456574686112372921136096446325270812725240930875512819577933341419677682580714071987167426584371200825161329108623595519952041488530152822573572610072980259090060543243829353217359684354477538650370540493038624716801434471610946092166285802290086873615314053501074210473717640535822314685743754495309960223401634982935252011619153799178269032745821576502560237032198655834700192363639978001845260729418018978364953903194614733494913706165118244918400094648863998879148730305167786809199532050298736047751033314260627284051389596785812836111588428473571146092754171897680177807560181856629860800981347147232733012176437878890007814348856828230759883615831752026884545426175551815821765109274797223938360777521471270295222634102346512302914943664038738946124007362012317947092440597084935908469489639659354484192570495010799441469527462931223085784764873665278051506418407616931199165434000016937831527095852128874367471053644293786726923768123443590405701940166628645304658608518182751783547975298057984989356779682737807314036841780601817008192663205073348501152199741660559260401861233133642674523862557578395733066725990719801570199736863222070158500383762501663150750291184052023865302667204944181970542117626688265361062458067138790940002125190627748799680729980621489471391597165177209734215883122670388316359596228689715836592028304945497084295919683378659253258022198862111950817655750597621653218875229475461112292317445067261615714453566129573291180577022610217138631627754957120171438908719020803416616614051499573113579534159972479994201906513100207827887777012198834915867796396619353195755467835176735288399663391791822623428435800552330588735756563184920300703870824010321047187629131980932533275454670099114780216773256057978709177537020907550365952374085379209554526043761875846672441282293165782601186255826710490172267376957241640727396685981957606121656422287062768823293522129664648385679068394595274546243868775481158955224536818154079981605740415076440491542883714778189217585571238375696041923314611652787495409954422266390855593811359662487779658007051826075900933092749388007946320161090023785557032169578400224955418626179870436688964121919842516951109919337584543812381980630351432446476388477851383350248769111421217649396705905274867968707755660331634746125681091225583047420530630946742280636970120586729113423400136914978374602660890788855732663722683840482403689460727055206246417747389839127958805852759458900540251567842002854296795462470153995989236423000852480047971846022887492342219132331525567037659500883938811230461385065653807420361720240028501592997067523142984326629683887706609240087854556805718447334517899130336397812236722577764479279256746774202089678738674751094994686692523732773528783810061357490259316875446801361764056483740503548733335895087361497027225980761389008757053538814255352547246135075661465761550951724943722636733913932310511656300308469664047316614701678255360522480911236909883953089736602619867525402569374661889410994437220751643642434827218369570598287963867598198265108818838623446814356069975453831267825530299830449229288475375917860138365751040302806810837005130899442364006264116368545839175724548154216452829787511563232828020057054099775431980500025478092757040451774150110204188204901931727751994085077492678870703815847951781779726964348822155831142394260103227192897478796075500932983284827611368522568672260532331944759063232842439072067854413465116587634769525544972801436245321407439694711226231313719908243801973229889041857312255648833504838536824203234747679505305040658849259327727179504402283479077354544081105952189590491861322736227537610134531764768333138770451298743127503515411869475897563722112702651904671486617239705222924562770944763017624790273115295442611679602909038829703115436519347823486544472297792190148252429052649526064464226742029185705335551166943773051877450691428988268127591648220995503093813511889178200722876869564619314452758944927033308825743981854622429688513816696299106527675305609461753243488384088444719557798563130683530172954994613624324278472539144173151583586172867211848194896386091918312200713171389034740987903984052652827015920174164390572564040378703014703706565983834301906055401035415706409158623889386610327841617388178578532764576649710076131918053791990178110170105944970093012926714722289036455666535558273172300774020602257384661559341286825565026239845206770365810558349283486019643738896535824942057494038708739159198904492327747782449354784565971191599679064023463761274046598408951800346006677254802357118035811978767466771768367667144006833493049950267564950711783010135237143720676839013734326083324500495206248730320815668213561772314348469253724287025521675401135741537456767781400566663794784839211046919833145743575735442423688072570503587933719181556467989114189238371851354422424401049603440319488774909557516380958792465201168206996589862854721316107786572377999723619446315578515528262161688488213844214658917401550202343236859690231834795669618665133613463522285230623769763217930399374208507974805026175042116213851903340449398578299194031762712146881235324715048262232396283014960271833356600670746694475215064022010952125029445460527100492041131343185669107247290834672527676221043988972913444887516048421228827485218392116584877300368647204323751484918785902829833830855835444591269329347899421849801965339280301352934837929172469203365076725763178431368654531774978647541630407830828109153612155954107455341207087227447582012660614246183763440256933978352211182873869211726775395538300573054749806782261058760728753213653090681278084224574700404151194986520081465863963570636450406652591444953877585740673690879010751207278442174618039383381975069345935061775819461134921060431903584459568603889033387643394895333993795299927680875803105691538107309498298300739858347726013880840628425428309316014276551358226728740154275969610653018168038464589427750665791413244101412185595397472487637274045927938283463995211730175723514150714621681798601287766503621300674820658358013244436755216643943630125121264261767480748616745005516184132548541185955992559790890902378388625911648403146692915533300645665909193880443660335743893702831938176614719044166642342516371564760681004033639981002987636826581219025310678147535111707489055180557101854032003755116082651646636625394950970990903733218676700150895428178308059556224976232261684942892509157085257102555954416727204375986080887975649214390163222321100194876547372383749857851887609522223679707828895852273730202527427446799452809417394155073677288198102269218493594445724840146004932500705960363454243935591958428040058262432128038867518913020320332642939367666461918179691772895350294515924063924127109350378688526840665956091854387166958950824868381050811169822535487869717677743412228440867487455394686667400927137699614676589726646708352937998764293759650250370458017651801912354561723631644196642740504525487685561219169128093003027597654281209820388271922076885805379885918258443636904030229980503271482494075638322268879611371248485283687716024702175728143153262147249340135764382073296000849651137445941000812055771674939175552237709986394528800721638109942537923310609845702087055905386409107753522670798575551241947600289422869518449871615906202423394724312568627882988233761018477652145061644379057715017368437203185112580549317991866140724152947862456011816789996602340234823204596050941909422305344621374044589705791912858190178713292387121994027050304649322519775980311009819331254948903057312866192691047576176214905859189519771812215085217604953654561558327400616010336904192399570294307839044728602791785815252825151104877843804578647298783339425278834229833286846779467412033642380050131964320357656970014044797970417910947730298900790961891620191270450676008622940618872988938563922050278985035981176444592716607479530240546466612225907315451500269264736516007701132082293855292607714888091802093899828285636000443728328864987503295591057754083582195879783987657989887144315479388015892070784921901460882458741187967904459747043917418674970444440583760412766817486085158554816354451490194291506324123828231560023620979601406796459275988355742071100483070142478346208849040322069878705740970992587176938963068977233914919541028002480716621336600897018147837508594980515106733521166691720971650505737981708127227348081195446641499245378679134231526895496183792825655652612013747912795263069121421910369178076796441738566533119502970016016637182878153805601669422903119759611370208973705744277838308519532012698277279311416390163348305055117434833301741650217935913561341831772863945027485004657519278144160086068032296861257748148884124487563643279440118169942649288120939174832595055945599166064580802260909412228273642329100606569549242981674238919398316827694265732508923802715704580376537161529122873603819450673593185609271726555475965121338098848648856598107455317549177944143519941293889057304975465789708408464491060188540737769504661602654502275330050031460850628152353659144619227139170652161000633373558495814252275979005925615374578998360833509683493429956729129575983238956022491117099323998079347783188042881346700790607657016447294908021236876417584361222966772601398663246234781732064101946562594909961305953875169779922443810852496601696689982673571572927941296902291023674108728082052024268854366165013295216261218012685642725561082116380199713698484565299591793904350145193742232878374949994421271143957740303097007771156566825279747837183460036238308907992483099363572226427413188703355135056477562322915939362490500946924204518339599228115423814863680939670417844531574333566676850914274859189787788449876059477520477492591524085220134330247806005588369380231953017488158784930203003785502535365011205755695929862293170976601232904539356725284916539275494317832020162527678182170163657158041558756034422663896867280873633266552091526518854286192440414914870193039225993701576131746593912902010899150643528403446251625711111233229557611579582119563396175706149899144500259678957556174807181957986808001269556326777285273952304365659831183679422522224885912458380085944182051559944101547935649423244509667255751424572452447896969415599381327674776036552369560929662481459773642474439341688651543403909573373663753636645343371658303551823183026451536314373105627104522509078094717768831221793296682053113893862106781689651714970457855704400596881825498588239937476036459315247727165714524284252860441838558001613498832833354098731274741552887804342980007690536255571252074715420636396490648587689190783849879310622912050809961818575715540248375059244092659597106076293668286937179072911440053945053300575335506125120369930176049162152676594380890667212975066108705780220547095994476386742446674233119845086495494719541522649770581891334476616245762979703307166106104870435594410230437073798403750413386037742666923432605541700548238416507811666942826460526189667686383959568288669327838562243495903520284981598867978087022908170001938535980532119368060671221365097286367615159336910345419116167180326038198951341760679371667477300828697892817725242099594097891088452845373434854959229764550039687484181798456636195381743409101560780209194017940314424013146177815243159274928912025718326234626579513100185218014839132013440998435287354464268602901309044000559694878621061696244990582794036790209178162207843768893894415711158895057215043288825054289838424216904400456343947144500932387409985167480488027214053346694241892830689327675009257276845917669400679742926873779761067132328593216028298419241491149161822366150686664358820558623729392123301762010955786446889827427676486415996560135579777585188595949064988159133391927124414030890126398126149967035199240286470071433967934359695754091832170988097117141492820134034215854088558651222798243930507156618759896846119969552609878415396408463116564303122999729874025171048623655625876340321133286018898941823862166756027919662723190934033930391508707904376090880241656733859900912600693848600779319278134702472050351442099073540430868886132832530802890020696565846129330531523534248140423726352606058643734785528199444559307603981581729685277008302465944895003055545258535316246317366277764384244935448557891674154030262291527733114585355113065193156991155887903886915437407197958159054081798259237517945752268945576767943797974926643514420834476317503831194699147027978303333077913273680980291720402758213637974844403768915689436995877850542344578469539375579178309338154829968480636333499971409960940514475749161700428899127368643239926815941097284322562856887680230589454071201528026416781847558190639602505360282242852902625617032107476751366992731424421237343544338827552118647842627899249823856669210001013515929684935307365197485436790239178218106344068327047436930970310963243926166323760534649879317157254475616470487067567068919883498135784736011382243471058720589047208402177432752642983960228363913280181570433537417760413844620479184029021679385943503455565522642823517789779488246115166250762070996160662312799508094832823164547484447878514509400402584366489808623275272852246760409655874348340392695213369722690797818769499881857246553880791358374066192738983173728913987732369419978265057233432106851206859813258391525866451634875535118226501337068187032309999176516891899998943163520424965449985537774456898430859715215658712512437643203227118939171414856408556601885375362222505759315497902114272215179872079413895546938841311064749841958910099270824716801882576994738453049441266208569983957202705312026092931256784587356975473283964435704730508415569168131052231946481357516177535617613014011893963586754839812470100363896179616827157883143410558825831701879029067281928130724730507447362485808842106524748343824621086031296590400504236634489256814534343395252656898362342137332794734507150489474133643692774755792727237127116383661842365640642171810275237969583100646269723664811820704226889873359036304415102509576362270219676485197837033571167974984910759042262943282914074650665343201951647890141190606840603089792180218004682894971124872612349705722760501822280269048744767262880838630209050703871133672016485728837203631370881500018889717966974311712172003873693917260508897676134244704681336959138210763208548927085084072816481612942500108551837583270572918858116853194106416996929352270878054894803708470118924193127666449495139747447940941171063182587084646424085947920293789744423593996804920878882792674448681271771649773956848969003616257825448315926543857888763167582546163416766761909832384645036669459160593776835944188373432030843624467075354633270605268602994575274484023041628392768285100314410578744052059625694427242422522859328691014402117964041627694339935078664213045362477253421018602653406241958988186982863292643605550033286858693436021388857396444927575063583308666799526465268387891913666508770354178107833680568154391904380137699205915388437386352195569283027624849938368310217036208179076305731614115613035613025155173385870670917421749145585964694987185609050717736517306629597978281397106204800394550210030554442091656741283064772683951231251278537904501209963502323305239377406477246199042262820670588821034957503907402860052988346964294709508301081126711742800324806912458474448522231860177291686728794063201291261269004364958870411610478480551850911201434127065893963601506144615553914707335639499312613908524825530560585956322884382205013705276456694781937453202210034807702192801969097270586534853702626725268851453018959781836638715260995583259475471581400566161082076589645569643462682218414647173035643842685099760535931445592681632434988714728960758796274373256242389956043969881763581555880404045776172749571486411634031262700354803180764851332990147663127220742443068574799617075068649588962269281513650378313327407790879343798827350081821247040963678017993901650750969776991775953167974219307954459513144112396742259742600018468744559400885602974349836928355013449152825690526375477898374468810472771447255841916457744083645071559970757379134313078481491638137377297149622475539240354001102944254082953970175533111355543139887519267904880166563926343664709984730384721248405082523354634032271009227975758954765055214191266811169806560326999482975152229611570077567219540001148648915089952470634197494354296556487165056649344864436207282879934574824842845917000922475575954604479093782335245824262916877480648109752874065532036670007140880944927448611952097626332742893635765643253935180038888744512615055291767799585444015824754778475965766896215045208901033503637815145845822029327265363061346211417494255446595695680064295307734335336774649835783690234762686283204988403988366814777267968338106788508062395662271132110907234563649772162071686807889071321744899425089599362732437084521287442289009479667086081007322042103887008847467712924072133614284626038272066986533873191833140204817580245553648862253403411889821728282026178470063347562324039193276659478617914924889131880637179607841206912654507049238556327662433416200831320126629860086414957929071718825671332926809293392623753326768267328194750046432052487017863739781995319266716149101740314317966071126694712643972628358969169273751747926234468428515978119798306041261663881719848188538418313271334151516036039131335385193641842437715489531397091253128293824590567935777052464964231138787282297799904813532887398214538111760618694320790689064694427160642215804809224948348719505140182713070458314100297039225969629794893935896837247180439179695618292429935493835965644355041299655492075675114456054001450275616144302306256223911610230808540087910264594863549237515498647196667185738672673863503795388920984682456186655319533663458530985165570436157143589056226286618896437634966393894994544029156667345724182716221428690101188155361963731424649950612002253097214905084175094668831723175362575731518147280618570773457365774945859990852019368220761151622328513100620734245138294086528279530849574909339022463569911021499353242664073944500253275092024474848940905848861523063010444346685441854202940667080174037799013368077729622628603178488502870464132234459938387793456496802131883628281403070219579686058609281006606223443041350507398338467393592771638871362602027836971823195448043251541024098085335031844689854138855612185093538851210444047581378522127956759149241872519076029337081433491234756820339456947187737899193371750083665190164163618279522181390139681795096711790666345981414468210291768589517287381419563905579667038517695572929249159102937141585234862120539026277656642822596796876453601287702801425335954445636268014315643417419462256682131038290066210334403531787421750257975251601409522664740335605025933294919455873834184749691194042146337881993994129626981228782382654749081664256307225118914371893066786211920039998028323429950803769769845171297209931021159706817303211634600652734791276566838664576524103522963834009529615372663490003654753486625542824566669007609013718491922069134628929685483718399515805587865490254521700988215551891299848466220105235352599433550374813904547538341495962905142084447421265501304128440119530420479422262945965848180092857714217693919119928358779413800086159758311977231689458282825579756193010430583174989386034894327382445621510599934240256441542325566394242050348338320310524934792196185727134647725845590353413673040371037373185423759891392737729847718259483691310508955730857228446161600736776063030786321212816259617245759895621630044713257728291531064675839934555738385868425640817561274358610484148533773555968635814251193577559482849445127222180244725107784684108724975144177319513792162096847962518890320911803781303538081791731900976811625739129207208102619265394901041811065679148818901131750363849924994109608364427810136594422855907223880366941727784708555261153961678377629454661495559497849505076985320112228520481588449717579532593049632753026398613388495900610478247753679712096957634663742582153064700162576374802142608220480903546999648261367896515233913678648938826401335052648440880699365384755346241280049662488663758500244966568121565055602599174361238842674517597492768385860270480815448951742417147040035132343735739283492892827449869531620047932817923973939994797121421098447162507499123760404076174818783053162530005672830457488667893403038740742627335577398914861680316156200870156751153509796794480319254435168236040950570014543447264314147060254583138183264074571098963041692353760731903864423802703214058135220049238692467126374085501245042838278286165059083222865279246908247463137645559228807239963078882652978208246457390913474222082505572486484455139351355840076323053808139574936613997369219665116984725450206888369785104744119925110013091101686694091345704413139817177616751138218035704888627724917241133443957217624339847920033746530328192981229813030565890551196501049006575834658044002334898414510475910732001835671892283314487227023904792572829996621125600580941158110704966251716338552840692614912904158290993351516076297450448082715423285376137996791092473691960847875300433733524907545848266983106158091103659562531949141338202251736747176801354666328404422840577116355843465554759201506037469433997081313476386778724648392972385919546222964924650361393087235659727598938984323866485073411439201692414274994640111953955737374112885364128727955258622827456909150460161994654016334579175900964758198655860347091320648746742727840860958932036927355022415742521058147686187465327966741037493054605137519787646595334135139536766900224012139834122776743182355189639708358748391235258668324288999327651089634661691379882621918766455323353685058880938165515147091978707483299401930343855199343741203531725290131134605795325799033667515841830277108780151932767590571177651056825645223557647345513600858947229163931591417719466322618173279599451799253365611653808526805131191109601246366796345678370776064254939890999970838668537392602073910137377934431362842095575538786533405109747143683008970762227093964882036864783838818194905738985285198132751408528717903294450303458698990551938805643891361274308149601733909989610516470619782640638764770530373867851720062139567275464232131736621294100670488009231262121775672382662439422456490124958150795509032954606983338404108996529874305216598163572517584347310729873210128958534651814696313112326348001037190109162836422295317648302153129148911676837176461464709876151262482873773604500942760385995146843458347534970256234309342907822942902727790370489068846161040270511774510309958886163336858207516962053363564361604191789418644951524147557052807256081939743077052864395168102619329594451898256224317295518879382714094141577995240831446020960081130287440485743573997969052859162099295716077426813987463695009971564903338345299004426343071301075690638492266875863792824941778657401023333935594066760245632449987080514452572486491312650189326531703587983211102914219395463903727348702149241771396661827226744456266900603667372349539476793170849697835159623053226052227072209245902706978560937691215836210865508298531751684049377599503502889646646309941772587000000965260108090865847283776028095048560202135812257481420685714234240393236731960856279938153946828068010365106063881071019368498016788129070534875581388193684234693983104642394617028965353284804721826704189395073419959330719596083563539191105256919095090343965393072200884990529064934102251355933447132723981163841585934680334807905540760137675221203890033787154640980565632249860886641571093059346246347117952011889876727408863006137692900547627297864246224214332482355490625322369779757789336542832094624763839269300285585467487655319352388660412001094247864370973965265587915027235226749677943716176988309181908879662557122489708075801032379904989075939436668626862334482444124713361157045137692940990971374863991665687051421736021549610291885976640674592772997445919684965236415562429780049505543140377428748640613840557042663091860840597293516317617072536524640358100857629189086743680665878388303730668205915614245277515614316646139029924739155655028752517304293353129168577527117417575301665661549739496930258879256635495960196420691218105811131784490328785156153097653075020574596796634617747867919964839674047819045207079814808409450867815087013140495112496643758624353663122017947965750106104001382291578463371422969223279493012914610517881785544839755028265021282748501647644525094573331506157198117844779441827109202403429342785837846400019733077438735098494893821922618206473403662694512751161002295990611276767275852042473195143698035684571164003048245741693283843293168606558560669606647318111231253540432383938726948831818445441244131498727335638881327921289437514855510948886528986995033578305692652270458312731267125563631127750069418864628889520916088801107402471263447405968228120837105890048613939642256069524964266952881294831459672096058614949576788460130858952603855940380687194698216077028969727686847475596899359031487870332028611785261717730057951730563807762281389806094155100673121595804663582829251274947451774653793261264682722167566924800437754102637802239869088385362669107600132510144203888234379901266952611714344362867132785739254444074956209884578934294197020800399430924454878361018664811761579350929610547210542782073810938437527186023075566445304532979633464283023195997764396809429544939569042728417699890398798326857241138706943452607065406457507143352896569394740296689061815981689475923345945813019903980189712606544820422118774621718526649891848561930953504894469971267574848132972719916343374462716429329843330588049454272460373217685067782411789235924792938085409586748436995503565372460394078338020693708321452702360216253920978751201003250982461067442393487860125299956709080708477674910683396973895517024026202676426245537792114668431221504075455874083333376914339852835228564398005117292572393605815928421030980862386555419822449893173994923919172546097583606720332349071811912067679665023084162683397256327124118475184723693361540298903970463448087504885771163778451540209758882631598966218370399023997703937798859221974452226007872875697457317562140752989122083849398193809800415090721393958779262204055612261294965981762727062281042494609439530592620805518025593641643061394665928800628163626391554189534191610942326938205505795979073212092640091653442132702751085473580613744026402363361928642255030941561088224404966217157493191825808082587772125603220865556664283543105593925553465769980068866185904507771340596977115746941968897365121213131740492165608440140102460223608971985053741019443145157310223279213754135139658650286950872955297794515931503146604593122873118657027410058485824108383293401692608374034094015291893374884199372703775992068156547064856033383167557295214546459810725097590616636415586216470248808723368300256063587700594758829444825422298900687948622899107288639036373149074949752824328966842642278967234655086903755427245396749223296560839034811213011577896540925762752809078007515153314563628818720216862338538447058640633820969820054966501386903181047275037919645017345462519261904890445972367840976844788190025695852302885181324457710412267401396382989828618721949826086239719675362254517470436102846861483393862728293381894160411860044297193348826600743989735822375687978098904084924035062556746451028020576502578190340054584250727971970765600018831798788628207554005610273598924953592189192937405063078219958095823147953091392485068958031616322197467934273110149734657359873844112049420535287942053092683538580283566074950743117291015733642407746615280868948085415697859734816679050057968241325614751959635018020895828847567769220846222361177763529330916331009657169752215438387152676477493594664053311665569711813264371097360153328756653966314521813589793481398860835135205590447350026163009312987894662657507571854270435994721943996843030082285298881877687758793823528728277844585863906513247575707720578133781331981444951311091426621640644859301022463633059575174624027524957486837434898096952795332521644540818935721708435338237846785618263597147181226887725669322825602763620040264769485302806471791847922410103637268996308626930922795738775812984419307393164447230518782830149592795557731387707218842250347001902652482015187744805655704975755655368272682578811287731989819327327598524117505886786666963061615573862003582188228549791932700911102223291098085550332004366678970105577787571139016189480917997791438184614208785698437509595630061193581825794989678207644521269840826171608981521771602886996876405131918624939928141902865910380716096907639145703560658611500119105533500464406461712001368234152342258312641139385168422450540592996574401621800511806224816078946149088431265891753540140169303759025726824748460315441794866499732400213516185704233620459584153181701017151676348701449261744019966313314567767343196030892050744768439577913012610922187455185008715692599605696479864720658987327369597984476148770283543752245409001524757939461989604606571996202098424442996755366696353377054469322000146333599146162640390169642272759647028821761702886363524933135288761902846737899652564967431905583540801305592034923032331980197830451260501846274250474174383980072110299940384094152409855869263028766050512727014845695305280616176216735416294954189414826439816908903443009570975404866081468203703071945150084881182403024305117433640458577560557949277046253728189215581904807603720524101131976740164463436691248908075798185952925638372980114644880271617910819566374156812266374105062459438193186853053160811329879019462459865034271252084147475423170821789371130107497541893243579366484563552989929586663484865166494357863281949171097328166327424817610506027397070278933311703086475763679129989807531205681851833210731324956867248767957132698487643103450961310858697437078362077274618931697188072099985768832319128234956025037763581966373669577668227783316027567284546407716305318415395537457940260319895256804071350838536120782925894886309966171726661945665106647537079646278418908208706536067928357594559047905682100508229454257213935441937415677482892794894037879584165451069381489388544259537458013672368511257977748996468752720005764613866952012501758016261618827290571896570580742693772150713932624459164093525071080349028348338517530053613117162484452815318230618279118955829147606088332627192769893169002996148284960960639025306967508282162363671629954840719116839328694329053274724947837935471613363201391807450291076881284550882731039609157691669684761364486455166718718043428242619640937113855343788289545713735699585340062466351718502904455849448181141534122740556203420763348210140093264105151569952886504223065000649116553757235482389873784966932603356851559525347102038012661773010220719189007431833805942671385816211507466941289336491670828264531226897083513812349332613756094292721467513882074164095189804013836225487601299101500239311187798771541863127324674838234720660825409467844489174470378625358243538951667489345985947668029427045484117624724339968420051165128933777650048939922725007901599224727543276618005411507834679222379112394577982414101783893239774677080036497675594064824253268950088627081918337477079134869791480366849712655097498402562900194839214775591430518880897819235212184156962307816377460078762997794903272684517126251514563252049032795954140704197862330235189311694294661136687503533110469705318290708048934804601093994301387661254983924180316324900856182360415445014718459310747460866040019726802801662604542485556632760892779224425962094373961368448539426403808569597259898852254259285993722034078136263708997705135398624687407686038822441615062030350184219640306031265646167891150089497230845733185556773680678124554536704968691224636736324400827098605157716538172741167935740851553755068273273317550604233031025540012048155643056531127212430435239480623817212190257147207324719943107529493179283904373248551153620929263389723836043913245473565997582083519909083609506847107652450511429933918001204636655909375808490120991758512430736006238352281768863859791233847535394990697364405130431442688087440954019031332812046602143950840758772008086160313650973615084523496283936036551175204137862527773041674070546706857138351746811688938417198281325062760644734654759488025726244328295238500280355751228556113832925515487445634472529628089975516835788691137281901784721907509047040937575657857704105826525991512721004896640416480831681599216256965292085684386233641283308044024209723280588348036279409420596021815835322532042897810475990096630727933269899156366032565183313997467440046796669530444068302627580905529682414003080397212092609440314861277100863817100984539034767786558739003617632957070835322339978125174623742517317302142297159431522962749473694506705152228997201848477143025477070557158733397663702680653949064513937928479487888510611135413697057178625137621103395043591434598082673295218966990090975426889886112402180576102814782957662272451267036148319051896562141587607371020795159685849297228002972952810961459628086656874014802659547914046371294467983788623039032916371311455997566665259912190012246213114018977966524037077629402177095327433519785847221287164097323738349104770555597832576273921202218241154382566073622357319109744883203428935907489473750394092628086621719857532618888961274148937617045616678030105053501043127192704129981042346701228650577576151658040530910623913439980723583248911568210441192969941210842531371193896059280840531470798364072102762239612267309448060654016065011880077524337877733009733612093016085311859176847592350387629236707320491074205306676772620187011771541566922810375151083998973119591425038457877886795491790474919900333752931028000813994575057569651693223305947885201874424073746741081196690356906935334946303891146814830615714144569959394628556166753784561278568820272893678952149966721194845599619308559224454302284589189501419159429334833479763106347256251496903608862447830070440915758180284472596703831570773389924933987724830621965117952835453270273233155225722483695778001002869403738139657155158035832032760708459012423152809758472432161719500738401457304734782499436080071540345569721296739881950559944033097766402712583405231131416096657082726732371380499543336424978339684538842936533854415930699021974907381396000644740672368686819497006428543808544677252737581782352118766690960687836427330570627625043414339675068586697181315286111779854217345044703285861887986020073346230249186688647466601149070294885990651257686373781150204767215430434990510635299410048315888973243149949919177977650758186764824954328674589766465104667828802968655339419036425029791070590057201992913596582422504462696702743453978598151061420264474904890588734259345420565750803829039491687566641957368389218661634433732058335563260763481566725943535386188972227694286800785348217532362541468777110293434716876179248983253176540848607972090486077087696066217443630100762765012476066812422055658074798010601364738681478916883443701591663689946170250894053640437257156632932428015308630219334591529988312851251778345933934398588585062046484964166824114578644522599436640330151727922036798263568443320585867943740579970997996062526240807123418727201904374216922519837498084449030029427297905717382392316861649784336529329285737180200430296028558295912302586477264597243203546893392063506812318869189087107972700439055540427209277511699830024348617150533372236796623607320258265110015346898388869029254040631053038015558578521766624137148512315179148860746655156954851156777835661972667232887106125235453312673646835761746924096352488690332112769033658637179714959766318073969304776207997723147302712316979447308080962079478387986062930394753236309920828223712015642192750834654662423866267103011064153877919942704008431075003075677369775586734131075179506277035226106628639101824715369362434097443314998134945366191011207411109722876946581988176508778114255528961768076004541870443452025424442117214648630459773881661631867843380570000355072618346519134938530614133383870130617391817969108196211626828380218564370017044137012445306211140202407301091600478415291911322784917190797817613080153437206609480493148049095623976993793025975385867902525901013217020208048538478322170285015938074886461220693774592958672026804244897499177200958094490557890228857788766160409916842186949412800158668722349634200787183856726784556627630561748307404372995695841950241100716569009591810260477357856057285640908564361240270786208506242304004450612260859592595390462983038329596967472803297363196993723310790444667579611940402806484567113677779113533281266994829377997955364894002055401359946958537326779471726621583709054976767349880663847325553712108679042989019424107959957628290973839219889024633921633538880065526596580438728494843599290856423843470893037679580408480159192451602735076880737156937954854920079801722255854100921427936020385953712678023435243557854985910451383108044796142180375179814087552326909546021579627756230812715588505115680252297576989449657000812654902499441089414531150394645573217965577249693790479943206173586894692201496346295268507536059409052506106796556187800480677214852607767367152985445377932981911263078358286207753447316748205329715621662079530804211120050624932825289211583751438198089806622268384753009684672812305324376314771607154483026382513457807213561662780674995163263802134873595698188335140977036699689340224678906512366460015938988424158909397198085098704276598247624915035955070925618821577163404059252248059424167716631077030033556680606936975546429579877382021048678760695282269443839525615867482291810341728572966857834225885231406557310150106382325144614818008666827605999254940202212914055755987206721093182275937409125034536397970343271237665626637293855109526587780601370601969285192577555093629397744098047460695067515580537560734562615697051757558049439281811007109940457357224117933245237238836373202153481216127495282108915051888447756829451257206142799866986501924104616017972226611810033809117765483674070274089472947217091238592524272199960002409825030090095824189747046674262139191437944584567532904069076809594999374622884874073569121533261183062166054669613639511580909977502218496206035702397328312982304992962050735476803851921742555562306585987001955352149690506836526431861119840125917476140505976180867397129722268969641005114153894270816301935384714773349579080417327405582699328843449808549427683343530227972809326214436520162753252336406161265107844848342408852225902899451746181106227582900088383667396582009809887025330973372344412263763404754561356684661703552418384796796822273430051963038337050374746424493707103660278710763611549432872708868337615239357954120715045628249994436094007373209168383746343433290328630386388353135959114945481760718919701128161470592324356132554774688139485733516235906541182279710707726910444437418474582141133975002116724236177160526488060881813550486676296072493662335798403715848955170369344879240480587306581618137641307825337253756932205950432769746899905197007658412382152553124167413663712663198458390980713647449467509945272252087243430880950217082337796534675779623228011992541454426500946364267786365056652336586661734053470348945864091668540375613663305087189603892994908921851033945021090079565940697899907878672319367914785737045266574881332633987184594822482830416843287759889440351765378186505494854040042148472007613421632342717102228297336750144100596899534141711051019557076376263681932019075179933738306302063497618434684772912386635415995254268249179272500144188103994360805565232136580955568485915166407834583552077021611836305454073587687574372816111953951897256735653339100757134093176523168058889642376264580905162902399869066009642149071360416595787734470272430644616447701732184391776830941567272840228931790198607739778942583368161876547304574543384110919238651754649986576603939804112714794464153001421956523814531609355364565332860334573404881878716147895802908863101920558444163925006952806080090672655105922859810733105465769676207777422457443987616383065996847650213459778032018633660083337670213576189582002534445031633818070159113210637552504885039593432734899774821321163097493147583667303046662751120332533004439213802983828646167457351306820685382435417552178155416761883237705269027164249486016111336216906584256324345181223600498138698255446780691125062506979339598005353194294867624176424327685025078214859832807367865779085553873550748772909850017992935472643413397893607662542221114428974137447627061720729227305628778741351601447002126016938755143933523135237001256131594998649065125563562759685950865447114028551770971137442657857446247718238995122003737012439923572223247652429408901480260495463659549934310430337610984955830199123196383306216451932204096413445869142546689286378691159598182589043824621672793734718376960449863795513731030128067628598407637520732692185597014915074137130861269197402625838966055098535537984726488094915601303594234708871549675647044204286734004648079201243988766901971091968298142636099503820555287516862964869661711462037825851928212726154818565215581151426924419880284829759216466695854035223239684234728334087237089829092498217107479218647425099894818832174514833420740257246083212482341162541123782214756260712410143797352604718021959764949383824392926322236406157574841321367874126821744222407075786013394752280802226202090889693697169044319460977984848044354392457424488114002739694862603977450790661586836040199496083759228025339283318180596744964462895539709644977690912502376275232729033702963211571530491561805781124775824846177813915442461412697765459129786827923977408837730722099971716144676796867547719396685595486820457621090828420228723580445965012128835716357601459282301844907649353497220284774863548019070374543070114872866732586403987219358105094468670236496148762801162372344413352674468888888480192143059105217640022137832364819129787342005277923020217731706032584258397648785862505579556851474424477478550159401377777033748726967709522007266026322495698062934547844520312084258061818726597958905208154786914336951520115907170059970254382800194562850796322312955488747691027356818190882853981518339701839875484114758187105329951338165059797778225377825727460196442644088072957245154882397843387972722738540636825622581273502213720978723297135703039010814188646846103976235677444067703953762097875256149868234872314495759624096498003161577610910707794683267100807851862331094805876458305299361807218586659324197178444210937779649507363469924476960583370117164408258660128401679977692725948628769929227424755072331672273678000648435305107277602644637837282735345828285087190205050946164215008131340888526281276619875032166870192820639744956821866310224814350984884923228884108235958422718241198827049899276352156966245099678923742210880680339483674047993597254010553318326512198848381663274471358715102026628508838777401827407027869983792007750051173126325858538942460419782468220453360295064805146341852943610202060604401459821434278642221229099617022976601404015214514421017449322618158080535042795125371291442245408011734834759548130636863999876271619388678017851494487010779038801908551629439934384255129842719143911823378570214867175089928240973287814457998243248265337078960298559800787236502104018573052676995454350149989977888814707593192115228797725593114563909760650715116462844839549974308212146352992675355723224567605839490312689095960427695102846642944070759538050658806201423243979000923603634234030067366579714542972696311988536771488881416076227515222816937490502125914162494591139774761613362556308623141323703521860580091584050506947014311218670356305502154088170386045017637141020437927311332215999136292332917983181404762806457390999992202164566869361996356966934251902994988530969404180214348228070015812214881589644502837735485409836977066704086977191585244932613261041844400332463607963854214061951107783788365261749397301897211997191339207894790626715495952895277505746906392247033748171453931298477136473806112363088178094254117763619880379982330553312978394499830817169318582668053024128447651170918221723274081912656293469914233883488864412547576241092721369959895495659362457332906066323619127501157530665370020081768020150495439653602988693310925825782644103573744396465409946886968608080309951759967695707043698383505863882314480434963032955974904153702300081290521200061519933820317876645724314399463172581561486397700304213545579801833616077519540330762987356937698518087790616241243916834941568748248734188105539066791173831478690153482583505374122125971305339051935352719834006139833746207232667313541264713157577925345460028413798569162828149111801568613230450173149881067660211154499875787627387000771866264786244961065223226641198366097803107401255179799397194211624888156161408142356407154344976610235709694031579158388528630225282441155278522065130163139564806565062025043411628731360774308287704637055245826407986336211557211613118400044742324262806852930081187876626687303833187769008925892797589659051675757224164612528954952107479500389983400956141287066922633124308104841826343334648474475136180697086412129291543402690636380215989236001096196183249289740058286082222360829613661908824960967314572398804792849921676802208072084603263873404046432110922057665812265502217879265127461744792473307285452720218759488311155908525680199573447247720192174062524690156855958065826136594352827398798052327824799108206286380085106222940786630400660447040253688933335698150364859610722476133216951886533191585396214463935754139032383111454554573043984083387445515922734665295269874048607258842806745143212957007872366702181680278004845439992176841553195934436091713826871871145788059878627874200890836366680613703479241476633146470963901496628571639552364071200459197447037299611314984878336102320616454468089904651930099413873693203466112796544131542746256850976893508091171677728094186247497595568577096930460559722903923276443145410336212366907686360036017684881693493008331782463257877404514556924945575857351033808708693453002263002583684367925261009899541490147287982925120303304171304909495404306600775223919119336637063941991297460305839299405671847046625866904889363201775061663213784337605959132621430420461318794792367712168372968179088696569871682276990988545722623405179060287251366738856717178746887953318595410608167529919178417492047747946988467190897302191243467353123456904966324225920789771008038055177794334171360018982957827675998281104828845411941584188489004441765452563363304848110831523938181095777189292976617954140443261483271256648060941135754557414895320728798678009235621066034157952968628923341040248166519515444006739076647065726490254207845837000100574163022996914054013846071152701446883609653234910127309274519460878710626960792645763881166249348453700600209331171634413427223733669881327466567440974965229205578297558242262825396054407418356886640800733502582385863347306425093516905664526754656533030450896469859462048355279291961628770950656960534562317571855611470834495901748082416801908381926553214366910101794557681934741653123598192556980307091593318068891422179945019786531448141814984284066418831389166280251095869907528898372329100945100035204498798122616589360925631223256607596741608891839187573497999854871622786083988560373922325600154644416369371780382362353081519729265724055526072833377271963139414300953918741662997330213662082870466669162005425782764093654051409294832067810092348526775819443034252134781751207892633564131535147536805587545795818115994205825926396218556690061138589127905001448472645834107314835635934044008315014069478978754848911256866225433040977490388926704467066621064550907605901963326996822769245246184613998301935180098781766661981773528249592683876568981987856111383507267812627561407279195026030205301649058721842089006773248759204800147831064643303154420137017937921562848144207287363492174201500168661545071808534484178335830449360955691686711408142227463810842374239509157057128497216790971514406076078764929994644012419743529842248480644887945830426246948676614904136185647877553710689488658935911606500188555670665273915514950840255613246113897153439960927898161912843472438980984981823039085440345214550485782251885891207445161325425307811567316263351351283102825283117190789411156576689629368103885153320143136340112373254983032384728641045889486816449166771534671773861892449597469821671976833599962317216554460704873973350331945655814349649307125482803740450708517213169997486131163753358292660031343148059461367094624101411850787382909630854216971126455037298346244890665507480554291594566797258607867570616323017595183558334311392803549423091592441570820447084530551981853622015731009289741883848911652776070661322357823760909107377462451683144498612114361770332678814564671360649296853571924207807430352431870010313311377542587537354470853234154752051162966985383998539035673863367056189423564449503625328366102993855157942938823728931237918185917335144768560418363344264636222554369593457337803573806759908001435988545164705493139785922855103466559492645103337118881905081506156673394772285666402497736563436283458003283575977687824670403120243115589759229636431691259003720466104548228853270507863077493697012576374258666142703924916010479249031608361816546583889566657698377359222664995666422200749236394289589791649582308998157798400332445358695678942342298565187253786634992475309400339451623314629399603557019237038380654592539127773486266725555943798335795008659896153205268460412374512953293294965885112933028573088076966792672139971767302979531066425090609346387405487406684954480013053548109271305189896690645693034925666855167564309980924838375010621415127823542627076892016417885157711140958071838867740712422370696641467874323421555214241651102385493337303721404413836437809930693110338240361417596815981495633014672312996951319725097768761096469246234713381290443168491827914018059044781879115314004585094779630012534969052717561434302825271588528044713516965511287344440168575626959335088830651784100399874871020628469182493065875634474241183017625366418581759828270538348483271034170431218282440561972348281485202229716765812956548534647985095698031234192130705200677296988541324403379383499501538739789339597380952119952211089310266996656889133668551571566420376078828063195225834307325410631946533979975274929563948228802014845869616941310144057440581511905184428093775941160451285593989855118414568113067146021471351623826372836981893467022000927096385537614861338495763103361277467209737144432459191988487623014890551024288703257679951764254368067848576366173054764199310872466845485602672002650833766247322777170875992913717436067628511638834384246557213473242646044381741647134253516032411181075568789983130443140166012563505543101701263283001010236272507414143710992594767810758822488435565364619779573702748980724451960115296541064681070181818174423839606009794725799978738236105417702576628741158705077148732113908864220204282235168062311234331126460661133988629608246472957321057337559766500542505070740547927508279182652856377940734985742690772325270357817336692472588300982935578948431928893855388767697926641020557614479125097750863950589841084635349409308281104845687418804427496002517410946624970163251770129585972771192840691333211195594491820672263123142247056690368455774449432961792490241594404769894009433436443609773153270775886207596373323190141663621551453525157443236176333302212721080466098728733500636980717338937629815605800286374371841179572527537805797086221373222817157845967106551042891291370254933101145820214294102670620446437121356632181037911304631839832357432864993709983613219073477992170544200335186135707186203551464451845970988765574943846230902033023437528979076068402593046884908070042056991910732229751960265022646221835738124716547921752450138302663546666617796849377881835926872514201814992742311407229170569601770687064651193812517109491683503894238695421958873922495072353959832533568531741253195628420164847108575489991417961569060685110681492983002049146530344663870380443533107083158961857426260112757762243232019389412299527280704977443734566528375961642779215181047486065021707164601374153254001099829810021385357000959356880774595701484101201394011380637016837890352846569310422870318567919852508164201428065966088609158169275302503967220921305214262415937549479512163435517852208044311347009792841975909170773995415869257097402197269188090367771295006089397957698232084763233519978884981103974716986721892158891613045982579411902787285476341173295233189156800261213097491122184434105644728342916371240716747303547008340048563654963240698657930764256665114786893633783078908360098890662850341709464113364077771422812846709537596631447857580110494891086761117870749760058294801176369937809631547888672573238312115236807046108872925065601235211212786783327742633891681941513277656308264310756370551255629790446914008351922477701602002834245571244202121135189010794111870036582720804530051604630370258136420123734024809417742601197466415289065143544178600745687906274308317544938391316101556804398051225573856058920480992490123254938826394918797596751045665704823873272401005993538992994756304867602177167840900559356500720033998265917661353319243165681103913854148629338818228213038460258033451182055162553383349320349860365993014449974507495807755762442259673520277708759629538870489497070446542700661896523710940665053650937206237658818307791515102686366735700289769971739683823303323598628950758781944464792321055333469281750476033254480711879261707991616766979596627764831029820078244138228366890465441603573074204867225301396132274342644149030144361968379523200462097140691646258326865574703305430366302692092495690999621978029123466826129998692305130239576571321673536189283789720041946733212670779397750964294082145116033485222891402748640404012876026411811074780450010923285887519618322911729654089208846100782297983234163692298230948521681864044172215180384443076430976523957111280395931963827901392441654504632833734080995474273583613086407281890541346617383021728319413709190556117343476428801709264891625838298220341167071530920194833529946874648812449543262885436792472894958226364469729179972443033085072200015903391706839957951335760559587839408195931552019571053106131879319016706289453642658121709607193133965426653598827241566857170754204882377451719716821397873477195646324218778006349982238671147316418847784124838417844141274474702593112439083914540579954921164259971505034574858233453119739805669284773790787970497110842171727433177196466407522206281455882029525524432182602724765871887089026289617374393909902876734405351663366726339025856916480728512672603719449819053761426035658457568852333711199287392149118355217950659227242473223105559363485091659644599735563229982430156227741563152503286011427864533874197750985286806181697228351415151298369931860134303394276268664438421132958266954225711184591342866780619149596035685670211340722275559364285895144033034476335522626465178291948874614614609706624079296800618871067167083804266230690131156919435143283606665141236465444431839745427831786990340748599349114390358131888637525216449428874684013399015543310305552916842467172824469795636659817588471019152612824747878659936032464679835102271499719000067302736541866058937513396989348537397600954500487554413730341637115389271162564373664159187624427417317735262274200309371594789268139734685586415879442189662414827711593447420352430850460103136399923309444057503493142088893313271961002183074872561680519241027301063494060487165022869678431709731049892868846953579855537269768935974079363122660098821882674009457514989608724530978467265061067545490389222040508697251111581836488046515742316897064747929953055937181862635200178258733349165364380132484955151491953657457305633054202265861077448499205102163142143688571353116822314233170362461942441581157775740712744406291027248131180434575823512296342427903930707174372186373761879676899585583112492161881159951876829593391812290865582239950955476651646112185233965001900910657024940328304029553672897016029689170154174157289561528420168426782355701609577083646594915657388289670602225813919096481652121670702424067138886630475534472681841117083978400769219174813517528053629651850736244365532496820185974356285607198696556322909541984246313044272801606801712073439774393730039546411360876888430909477782384274151902726398556433260767243371963286485748403828687386344540398482793730756320105246522215750902140306996490955896433201859016028337110115320228099553913562513053567821581050324122039770065846384866302333644523473949333696559744897243385448858887754593585049130259375288730161156541969224937758746939511079974607970253976800401170922637330937112239434297785035503975076486734653360323299930116829843117018842247887802266752438630102835445557584749584513314732193485030176946331269914737767054226610883528649485456071447122857217394687955888077529937394409192997913905886653935853891738221143439930219872214802694818775987178799858638198509178601298700828673363702160555756422414137786095583522276697080218595664723420368807664913882868663106902499746222667034281276170228087314934049870919107865136081717267858542154455495314467106914188566855456249232923937726430942057949295081734950541824088481023198654939845112082067851888563512998067469373470076857755424725659004301176229073941081163219134614493932483569082171204164282132426389000226500453705214300044546457800754081056698028484376862730654508500775975967085694353234891484838255754821910511265757376434233694890633780887666879641475578097246770737899505020565003113403005061198377717852562827579929202934022012737598515993974314645875425230916045738897337670576260996205042883170271613629196374974087563838339260368190911124751272025200961656901670298779804610429568469343512495552454928239333709820848822062588334459498064347022237734202771959729864065585028433894699190843698088183207367980373860683759595140518311299371688168531798883185680236193786351274956416295153438591210656244330010720110007121763544632453119597009251353266992786790363430160705683581655804725457041083521002261044664491894570418395124527802515163241099866422708304832565351256373754792451040554646233831015243760427456711983214236666596381374698408075748439345901590958017548610632104096803680909449698837315724275818000707229128763377430640806301690777294553354215592804557574552028195396665452939084292536387503346274820007494788934799298810396531992118610380302667010894470860975114640837902692513420128006606453893471156637754789284685710662150148799387110968048014515418158216652508733874220581242788079067702200336317589567500718565162402707155740596627969872094374436754687613722168513018588909375444823348228429262138423291671268365406557726932109643937004351069266993235871929315008821798523166538940604672336734613349398850761522324533669759423761105670861528086467066352917893067203477894534095921395371635297693557871587503304099632492311188241765100181980733337647506940695629614354363176262310835787160389071249371390295436649535557651269680054461886695084375192505183538274168847842867864387890699817422866389883012655261301324822297173619841432289083703784799250972047760208347739004818062475261795310891144315363021062684123429164338735629881453813260706631585628577887975969663859776300629801864962067806766149329371461347554733709265421286607254688440737449418692330215969898633112641388388273893551803028327898191605474159796250519377271207117135143533103192763360612993963828374843540729394938167179989808268310367219089062119568253227539572101743876685976267013200764360469911804513863162975868491348759215450784131193122709017820639493623931925637243724701173595572002202320496871967126281780492959199094596509010257615791403181899224961431328045126121389589951867033858093025340940334475082591488906702612965910673097591533699140198783976350975027800085173491533416965593824488192636273326756207432808425839679031683374397211297066570589060642905839755265148488536426736302104871037067511861879274979776513961403617786041877475665735416747408617252956229355293631242916432528304380149254727721086111043822898357314086486558939848217884923698893536837192246560873900515810949002907615789472476170356083030089405019796942374281661633967722920296226952816162819924225967128471771323276753719497452936322087065867091205083366944761767198363111937547975428056522634300199300360160158730767821110409062365598481200740393152218710631236500389266733213999538439857134490174982172698177931213062075501372929669288163507500782426440799293332416046225897164037587118482544964423882769691486520289629207117757160355219168952542464248467237525532475355609990320273099432962314804466039245002479523792072213100962155800675903106118117538086664127523638546615494729187151080516090855216761993316130670934892141163619870424810468152479862611767999075460367461580023218131974043898636315054658249858944979054729540739839874691779096425111291414518370710717789794361814108558199100630819453815047992584132371212162663574097325826125459005509360699175190506361820121626503931900275977199818508134979985422452498776501713334629294583306659739138599783985394793426888157524350965600613657941621065239167063112313686073842557935979628036378258996934547733879533328327611593700753341971724570216178341201944964761549718388700358736167024312065864625871823694270250899749514934275995984969176979601218845681060877170956989266643870784498700399728082761854385350863721532829951399992461436613349080742204864404379111865203409592354159650806782136195654192416430901963635219697459641030867634273767479154822450708544524892294623672833083107387627513791185518705032186340796548541872835602883696896045191607360359500897373587067001107460944994984564859962723397325306378101332458791263888255553895393777668305893071082860839216898797049190502287874692251223731857289296026376374785222738557646131492200651348179714975058184909050181959879115225680222663502892851861891086497115020524508790667896033709206860457962663552981848455166912667077031077134758901507309179102832682785845659084287242744241230618906922480461361282236026396387526155475751763054314842404311774756946561549499045658681557727268541617467355801379823562045010364422122922171444541631117292081020877698227346757325175032534202884998566965378890890062171247907730056202061911700500647739312136215041102680754148140636144101738431602387554082953117867600675677907897857793277473172071352916483787206824458209265094190079629978803015889922788169993855784270031246739432704460524703351458915083239134800850742123373339031936653168242346966439131118331689231727162738964507552968155969150359103815076830334231516208492282543744659314067516266579703641517541453604636412170305762272493936579747113795647252600207424522934923067259265126700504857438728777466297597824716559504792801472108734637027395210104834376787185028267225781766821056936848397020203056859708085493858089690831418806415882430401955608439925556870442058680541783844971121037918091773191479788835519807416180487864411078735180602239140078645284178626361114463872794859961622134837568211868612379268299983028951467528217820988929632082575029265898189838064646318134588842929513248579835336441974224977514830815094534259207753168533227962501109762223628351353636863542015874284608963794545855584685066622299955539700991659119408714362560521798752121931745033745089313331878429568457509224760313646356815770067660879305424340873098960823528353022325319178048606477124579838873941737729377761428942067548898745124136446101880058813463958555498252807666856034259504330342941474812493417087731837837011052927211351743930972723024564304875800922116162017599331460643471545209337699703071613148237132316011662876837480509965493091081827358570720996254762651365362704822646053359284546528111553472670207298108844201748539088593932059395535740472605741332921946280303904462689253003026822724719174927897747797916744189014496121749667811357846084632902535816672905631854231348104685801661764700403749184926973718786717509244983307857962870125693633385314811064021356010262940287910068630502348709336085603528738446052523356332495184914918838955346705485743623528505731182685585214670798799728241418779357037717800125956539649792976118953492526593147072788667460285687231188252870811803835886796854569992332248630464168236488499626534747024756438743218351181326991307606672920209429746789466046932836356828104438403170679207872000980042165163522925119722735006852856813270030162639131887070876177457462463119768216177365970186792948311783851694264920828949419358217478130509790364828563605284721373438256534706088988025485134597676930269050387539604701145781611521877887415595299890738948405101145977419382681283023309491747207905048568402581458209031744583700373977398304501721586807438898801066025736079312572811667880973651549132910293270659200583991462451582542872977327286747273097821881971212757835190440848192491981877969080302404732248093233853602344423041557441363715539826125779563283283205221955250792446597603983445837414275281483967291880948781681776528309948461570978350927869242440944204418263063477069894202634795917265659925616694759903642739739173131334632182005829410067602198053345778928833620880276745834364132772930807508671206304273192444539941436382536824326428495647155929814603273413797994088007960634227492445644056051077154425989540857592686737320339437354293015690099208965994326378268949540894172537100159365199278256536213350084137771953998875265719505768992281935697480414844488120984092455749625285419549719767372214747005120796240899360677724646687131873362776198185743146514163837788585504122254906033224683347759762344563841609381581088095780428198029438950299585444304244662863059781185840731968976875405883725913711057393841981470895312403136427879934769615337276217966387590894738356052924901642162323980856998961021894065172032939808886896463464912073822573766204716830211836720260015604043437208610165442374835450011383080792492598110864966007087384172981147905165571373930480264563044452738964846805117178610762237553046446965138604806552836083656898908507757736192510392413689303133709873504603206519075610302689093627330836157862998466354844222745998231762145171044879023059043813609013063202002411602532627535935740951020107118463469184871680084138919901500321062485946714714953984938049086823586405041268360790306672243583574967864977934197587032355639736588514133947472883362574400339980181529331898754945031303272930801898629773367525051012010547368988767157735098680836913299224372473871803691070533563215423279776720423661784492500951538996758761064462239968761566063092749387295778781366702740942999447045914338732004458338906241815865340869908787360883061821347056262892706921211338369870993405820142277354917755199957082981365272914059393107691526693734197132779286948044426736391973408425598598096936849669883282810613329562290378628264589394850122125694898309940813839938907406590792782591605605731732850099165125872207637843160445440078873077966999466075467327570294681046030133723269130358954061158317381418485129607047424818529187386359005022811888430162182354367548136262562523784216506342563965111843497776968790767959985719740325399623503211623809775604114513932991200266391223737056770968328056160653173645508503022310473114443680619252868827347542082492330555430912924506331274985731354363326945485826295346223501284319910311363809407161076806100189570182151999722094638035298632697276605550700387293087685202462149119407052954302677274439493564483522085207798026768193379695669984020423989381149491518850975247181742376851879021175146304134394791440131157792264486925938416983027470327499309305238842636075970405089231455897410499749839766547506226772026523155145634553056892471758002407350720017005442503906579606023737190138529431058879083294652320689810278842294024976378537045694249979051643626635336458739736090672366461741093632409265036130293353695377988528851005188976688555727386470906179244535962968268720618081031211603473162838771156809898020019482031756443136422668380653200836896284132192252117834510839621114535150441396871840674001841010706785849174462973054537478119926461564410638566684591525984823107853946233415986066244685767522779718517622384201058297496450596635969235581170636186333358499929311948450964323722233723831193396870191569639136828060027121908675742514355569024369438012431543832939014327968622547415972391806571704682165772886637642300650306698195841105605851033749222796861506372937829807918747396331023986294404889952880318257280647621939018250143299125859286101306527427813528915649101549446989143301077630041992181492176063763092437086074436501302145348990127771118286254094004039632967382762286286270402361291635651914724197978842961896598173159099173279116490891062684154716522108451300291140910926916074174553543989515274333606572252528691291231456477695278836391412316856994532786904451140516414605487210304417879606650495568744676969019742275819723547896232191698676865440207957738055644843443292621356312907970220887358250769548185304027453777695972194932990842325005475136909667095807636345655208451317614056650992606725196107847868236028793687958960517570249311781324067973794115811338802235362103651701996912263900866242324044413955360237721987525713488340501630928856211192760282502980210328232940932285567250462444529525032309803258279562844545113620942485579519391563807333085785519024131217388762121498823609241902173944021918497744356395284863249131825267593129371162903479508718346405871241889874312006586215527663672094642619100574870153027371658404756735590401084498632278808600816061138938273397987249029271647673577763015115159917882120625419201993517544172836062719479096689189846771681546199620768993657056433604520286057083614193368334736989643658905314322755025131367176476597509233798060997424156256270445920065040787571604968920820669180070678745056400549322530867848143137535117930156341482902667175078379457411588338828303422695085125593288367794759055697995996095510805843828297914103394845916553874292044954651953091722187271513249173374991261143176297860734427683996919462729329022146531893205919876893283738064930435092360947487026789269679381678557163892757990483611785076410134836565893175916295216665140536096971965286717403697992894613977749102606699414562210870390729945408092259647308777678847186397624600236824321914996092163519946481979168875654817179924212273992716976232125654990210191846262441733517336961750187257918349402099590572543006053105047247916273312398257182698002185561553203502741161306540267904989157098768126428796499277281451861498762560943147905375782116404912989281253356133782201259546732179574101341872718007674590917333868113186516201104340932030453558142859362492892169349209368263980788725639090893187111379223323139129119983006042007090682475076584399476271242426848495629215874894706195367358561631654048156190454593580539180650092358821432638087269223222917810416639055879202762127346103828377040540136755989581518129181555654289149600197035717708959810124097297705642420501166682982914710486566928780868736258662904900530745365481832690341393970934299144863854349775296861784139576202414729994802449342472345161184118272753346496376898269155422117392906873623879059273642819164412673447856555421650352773533804856404730776066443207133776879571179792259265536746478231106439348142389831158204071415078888705520463940426762332923149901445071083464484988933473888261114687042301145592511810389725146732816202918404960861600882892317403156524189004008251059685235937327628900880860858656045553902974587983989367178825185522922950702923282072724088355551802420444824012074664622810073431593768863747436708741846278410072628629896228237268422486986723813823885119815401646791986776678536940004980814479896302846725050011502413151174538965946218521290402181477838810030956110512962983398687027007487001578276066928433637178239529035332606563017308245467145763523562222479624992251681586204169172135840136069254675853334945622365183081486922173500545567549559588788688118873368892616515215930389659646663580383313840856696800871488661838407902831117560890922221738323817100919352426758638210708715160225349330059406130040603647842510094133250252366669481214265003862958559411258613944171121428078134726712395392130158942015554070376335885594235754246265489639962547950073836260885514774490346404158384771516453883458953913979482300449197682227347015933184940855410780799597891166732800387884090689616307855168866976348622787842176268827967633109518269651978848165244515402695852677530219705720275654370411228607684599751855779106328178958616453325782464008827786764864517727753304209370629071188488479932921790455816929421339580718429990706133456537987243717724784481248177080478878741560906507488410509430819400959695496045612441766632824759439171750181255776424948798660755985409863124735354685468236890787587719864594035502157986886101209543945155541636523416445069973168439165794328578024422716328745208960641423988821075566582192949602258274970410605801878080174134191641921920044990634659537593206712743989798305144400941708278850138497266925794568393271925172907326542730496134983126036713383223500725347544391174210488154740829354427216794694858542910731978078769739452205237756761193647813993042537845553583471543465767719937384963579005869255299715171052286049420466211222555401939285978077552570983574744528156074028257596212252176812721708542276241453125176801714134998684326507770954893221974010593667637969814250637359845006131627480220721054514063886432924606036649700212116516560451972369442609661743007923757730206238996058125559588540410079622616140091739882856412180216357784249597143789992818987896921077871670168350785150204556674747703234912268301362498091757179929040734040191963133010602571350383073893462936660624582649564877787326750446908007858027880500954450466276374595093048713387111221730451840238039435630122869188048842522148964502438810739087347929708219375964652124841891710019967964626821868809185865819405892918522573167502308826103362241400611558151944374578851592592696717713279689941919538293041951905479324375497032024614793860095102255494918303555444588273009110460907533771296793691083233630454264968688449518040931196593852297675739451836738788691329735479543017714300386183369984373305872865471482478438596406913045103020975288002728291351962802019003691080766211950538658958689886793767277569180965036998914637003716503334184927766961930819162579201100559994516446785849915124120080327982907158952979572351656671653595578998564529788061677713921809670834362262553867339239666273943725801616098790414092646722293168210362823133669504655905146238141472772071149288329172839422308962305598528597553214009809802856939477185505120444148929755404040172793815760866652536351905372662784226742409143323019556692734168335875291072376341934341254732305631319321310928292450884344434110413298081609429289643623898142386914534773412768256789227717549027585646311761291648549709646196354255896081173263356054454347288029628823526259443979158568981755013639520339334670790250451315975460180470253781054192568981729826108969177031302994333764357484529822849890898896304385952686120218322841870412303626135658396191818032659016378406099218596814546684911807949930848397034623395153958830577816352086304124611978468860042601963276090980768509131453119598132192531428541979127629787663433952476178514551026448151288464720292566323895742621417670632749607024898409382467303126210934176567715037113408156693690691739156597502364194659841582323722633748851911357296221451268576766554190271642130736284760265130507051578978117476795000825875227971657661378489571436178949033546465786690417399599410389152984017774258965739068573235209972218488276273389566337037488439062353072960912578335512672774082234702527291386745483900259983643405261448102895636510834631927296172218538299014748501029801297272043311353736438994935042244928729666340374758590598443838591275039965671096385906616521878653021174713267194850442637653621819427979575833639679729229727879324829036747413754496954113205814514804314072228527319459113364957657802265196689118428893044949866845651038951469844818447791380772989424546255269452926933507308117816362905719760634959159234093551439883565516064357937912614851700045645965959363072389341505686644731120640981059725533264462955265882279222900391522107013736032405285595890964728411530410510006677361070494797238336027152042288795076108490575455028339705157986998907824060490723762147985699600442839422242111606332665246327227060677809041713246069818438048086480291735099522533450021532359996895879305727325401360433742536392818309044397098382783372672616807164816912801239620867284809923471811658573358874345818056051659607505075077701020722518618336807713262072062947048456905756846300335436431353273108339911472478354732969979106480178670582954364697555376521655312188470535186164827325332582570352827595119391726435204300848452513351168736355051964922498772982700147692338921327208523862397905716209596713500844527077665736063276058585551830764733339683079991215982125071542714657478210072562903151171339929155864327095178965593210959900107789011528509096721992577001733889531465866929359223653720531082193762703078380615187739435869994816727318962265855432898741066625125710244271222041898899756329118502668087437946573559953502322115345389287283881071381033589664350552327244747400520950210851146830952493068044410810686092195799736146083041620117928966049411785066627656545102765068829625188666223793955778095399642317295837327038011962793019156716543634711310269539774373875634863187027720470552734764986878998277210356840410180010860573338935537580198415838235489396758468821935749246819895855603245958208770190174691452116673031831048708172745955475947350785850706634019778623483969530782391170927136794887358612776071906539851613483497092293564539217953669518862370479641124054824457393007421608104540891565320308560759004307766164263500905832705209800616034336889155765287550787860534918536895708576358794367443288359157073060955781765899286555255947036771869146303011392036422710630747069591180351215610178755374527408031780798382529859223796549584883759585739986335585004303178447379101347899456191405454806138498535644392038499278474782535975657621560676500503068576792193320786998760220872467411796344614872965826962182470817682622546680821963631943122702117185894964930845118537143184519046534686420735612272569714934181221761652266002540003130105848846011852594887803287020600224586162328953302479873614115965605498309668193060374873866941114050475080511606333035421095029984320934901106956157209381379921282210665147428953013938610694655405295921185114713756700281546606902217488273163948629486463880905097336574114349680308681773109181088270883411285754512525588447560732608569585964347695761353946394850971630433361909140627476630969296761103004625574535500061340199778853705008307235449657227093649500763767001262888195997219169383262638461987077312812373003730678416898921109819973786980965247694299223567334699457489177152430567508596172196854057813201163945522985635708173302081077246143245991051352550303845170307929826127845488071900041957629548664259671922555157537354922387129791635722772903904712691046367364656921406451614124028190100880589265526454186860844406787199571272155248367537393768783839488864646456269321608512746963138121878118736079815293755933835551597389049395863091363981118256167291687086896902648551632283119739327977294856713197583743971559277004206475074464577747410867675414763527351731336381985688868745968099839672469541569871907235599058922896366023418965624498118169056618367782058276089235806818132998131281616479837231626752629406989072545969823562180959808742356666913775830358303425897289732422035605610395059230331270283935282975086848181252732992135901446970076842375493857045796938672495871396920159007331374203243564155307109629926542371747984807534908302012921876481303220082072816178836886490769697830297199902271549973392512945280382403355886022338411846903239082320602480773831649263987378462211377747173982751943171426207463527104579562223481120097796091405504980224347597000584198306986329101669813023575361625193515242223180807839091525789323092612978199451828048553283250159068078406098749324694309670913013008723093749580900253683986382314936057978352281445310239106160648483745631700902045354637940277120050262982333978341659346027517847909709506215315095187034862510422361786150963636581007417167994063089761352635319886008213640445029222694171352030254036709317125171656842609650666802864585147008258446481992692084207522282651181082491997105661207571043727522356740663700242410865626287150735959989556473356483919810291651640003042663820809735379929497774214208033533144960526686784093409276645440990258090950285335539552518751612062142969073868698769428361548908289001932008290782365726658457258193597299559423533788315975192656467332007438489205953263442797964567442898982865745262912202702341093585779112715841042993382660701091222051295731512901729664236060150668295450063915955210170222962829524596092936019444120708557255217603998303776419655692354172769295036745339831551300050131237810939819888411439499092582095176406783018846995649649053306903333058482340181481057942202862503940084109598838574294883114468783290815423734584629528789656835403456860520170870772785282156558806008704833534581955427105231599196872285600440482579630946341297129716953719184852167275370116629347336807041167360152263776115853191576057408016487153908888843179251599171367608126665379467626372639130671055372110970009650278300720816903501211949076310093233638810740266334249202190977352338696532602386202281996856000913087507627174629159024485173006999478519578891745555416901359812698083282535038020812012347789374315573906941003033576292829078068024553620801351427700298572302151638595775157807681917316800754268691268980349733403011979979046331953621360889243613963636195264236627064348049872458065752194406583566256408500610876948390034871252310237612562969804533223394588548131400279629146917482200342473979675428082502659916493336790349316731809656195512364003558131707836768313316057597149527887663517529486115400125745164712800866155823069037501142334742625491125365196283410845221008170603039496186077318664074984002002308008773360664966995118777485964342178965221139013869984557999898081049017259805999374502184094156602124868314339078512461321532523584739958590625115112803569112534333642757882920625615894732357438002756134485391476133080282567616933538077069250393220635685990820298674088978215404164842518040114114849475336431387490219632887628931279717096693416175600222626197481924882072783251784022298387113772955786693649331403871392633218865956046317776156098477660202649359052572791130530316606396977474346732057269794301314642021795251807634812267735656183130109673935690549474451915624574511096825365480750554348634507505004575469034013911637217976010794069682289351833123058005347156329209173086403189322692972076757649231304001392543562217008578467262629834204313937148572374922967947842524857565911924927666645066412225695780287392071381174706556992456295356465750084193446615480877768849709335712768932935279790926671276667802503079692254707261534997678044876277489838791862331243916994063347026744052456102781020167907609624802685061347747735133405533545086358951863300903851943193362636224096259577896243910842557031509737543606737518109153552701591329453689048651616633059756171161739695857946148680505281437732292247537003542761998304245280000450267829117700183574942507857841800653733424318626749614358911517083093275309419920972418386667569541292461631903165757860989531125757229205130124316420559486475502714033431300292676639339840430940150289255775237784037555694647565021342813918943992740732727011978940887959534412316197117019781310925559110572675562858081602687903845311609897667487776080601243052243280127920678171029538029492231688708243071657496611888397448898112526485105330972805870866282309292818024638807816984218687363040615547756433608452866377224318265669394216774815307892574511732861080255956055518020960378595853550834708539588108173794810379745258223875011835803418020089302404228795306889683186699494170135831573624718160372546383763054478259181491238769142755069156699302637623223412333828983524791667166239743286549739896288664570738561362454202663692949665818965156234995553309801340839738110088778869810652797521465477411955408919069875680807154428621313260391046583748265249047009834029366398093418298122862465250001167753223033850973973238938915911962682395736655845394565683566871790113365887143414456737730903768069951844699120461206853716364851540633118126429751510922172997951199309112442022102389245204149380130667184560444423275437958287734917011712416580104167486945114782723624214380186461791043208646680915451432607590329275148778739888251454583027270199499308916258559133989265423238224150032491447756597127672850103325124296629455838650273526283556349937471340580601065310629376228651044165398418918837975763217801681584758701206544730418264298002903439617250722793089621399607811086840254268758488066374775212214704123830983896073748223302501198956088816287040780097800705411752031637767785502217918478734408047284366126953666876857217401734395098615786483281771857438989446632756015443388706862044816775403557580392537611904545830750486181656981170910320360519475577217430174536712465013497181738290751630441487002969104489185582197371303792860042148520306134455738177879463732444249594040394210039826196031098957798616406524106137805543299942044473123858026151442969852953048572525007382131337510780190796691386238331899741120617013754610760742092031781172781279221680609513544446288723717614854254295882252472231625978985894991265210779902368183486922095298664330751286239858514607749415203254755198733434485033215592228785811275910398432145513146279367164602514028573634272762201092313510053172613868678578586517681937536653292838103452618095038269199403682240035789257487199342443238228257730078499086072155761858062084013152054927801950475046759872252744012665481657836190063746359977289135893797170535336380666186439635838741254970036320884774144174105166067733832366606973680546258850033531179247485264704429782910418472622071699030802547103373602003953111773449108138087522343609467988005556275177622522895147917936081275164501174309494419540970898128916633663069961513368086720539731911992159674732974044553348026139648186945191325063214330520298207651372871503278435553844470797118788182685414224551594125724996959840283295195958564893048442492884279301488866390861993915074765652350640375068077907210274585084020879817813115421381991534657812400444326473582597088490267377217874278100043187326786779755429358425450312989041579216431065510442063726571174824067654227644033340615858241387107683970038642710974965295027694399726495110906123817038782904371837184356882387597064484541443633214531062542344769069315947125838561966334746328369724214413740615944907246155874791859101051507627428776989871759097791638610115797710365610404392629782182223070336046024361645289342955125430878592936583840674029802883176270821935973338896920818959813363296639368854382719507075958233925590989102411827915839656178702291538456342615818625565550075545933001354835056604659748021256166050319486055647457323555230330177985689671383404034727630188651409173402673429729380128598179529138878366295268937791696045899286622440614725673805275693066433535535068167238718212889060348918345759558620236432885465748066703767904481757435087806252371792252392764914311129369080191355305882065876570315899667158573388803076047886061525591439794475827808700966118521931124898743555030306276827873170586214122095235615957345051201089411539128731625901956160118526187211309287833625476836238234812422233266211150337076489421205524995613729438260228681880654885216341290010048206279665669983564502712167092759356095775197926025546596117796134468622425178871093000515157537357488987994577013105033701565616109080083593687741787753990438261994192410235831765318250090850166209922588824850502322483230897394818422894805425111567384864199773166359115083447782475691332574302901092113515325128646229688299337323967909952942521080833591499298585912143457291997226618715078451111522465444831670848602694231063743385561440981225256754269222033307551063432375463063132419946155629111777967977525397081357345625423464455641600137411479195399429211939094807887084139809662866549591072099956302470425958677872757809483709114198850988878500338629497340909693329719135833580130054217870694427126871859887929008567655125789396273264336779587377119784890295157997550458660082291210064640235586550874634432823623914921623774634457985407439893057488677453852374778994816695397603242814378530662350669888638915870103165698475061462019373899252321648405770677717812155223766121370636183557901241669669109572278073865612145880547862825655475592386294522405567461545384633200749754104175391617470104923016574597710225866180672228380458018268718351775379621072266518661605884383882788630307166686408597429091905529209086877226545834064395601470868274393903815980988293576222682102911490423189840982248490335583241366197212202117442708680984887905082513882192175788924763003578487514598890973506144132035768731122167654811193838240795374129916753617280208052299660087976190729885352346212281998656580643998916929535064543576038045324816458998074299377730163052919623570382941233507803976436991516546123245304558788252866353170264241367074755987011652633102985466118032428216014528251011855281866720698770842553260260243430216989353621534941260227918891160371917900702064027809643147087781456934662664658355557145739672836499781252633866314260076261430664048148530178433608664630932045373907780344218448963540870491278372826742378523388277933696813245140315711796248304357213248455934498190162400714902457348271999368114063276015677102785202854169331812821003930892780325966069066946017755173437016225787475859828632731088015183118217665365945737828780753216626376711927453199475330387045735845946413804119591920201994652903962892637261888715339583207154062967461042861090218377870378387508977255903068351715965164136192576415702461896673566310012897466952207704929923770941815403511813000859497372975713459668438685581926753754255401557463018521443865234033041811635060705405063672307549714371688033107883938288110316826212669622569038298336188016549817098832417948888692532859300649971735960536875613466394923125196804222294260517341965342699041892350893269150286095399837410111163160776805064844163534464993043018544598278371175928123498216677476998711480823358137736933479545251466555483162365133087738470272573690613389011693388750874459006751827702203807931563781697579701478082670940727481928591195118207290614028633296059136885373339590091572285547022145086503364884002109488654625119899120105629222472695484080762665104605824592109978844464484040825047831367488510518188281525721075970272688817168945555598096078555699758378634583756873384496103012591643052145414768945884481522196293591425845953177198307393990937928954853430464932488406652266640508616739814943962445493568519452971956605200956773308385809863243548358228122491489241804006301632463031457843690015876414183694061471170260299930205319556214700806626081176971272049499676119453913623347331386590067561392361921665827510391705205208931841637719514315295772548301631822471990461950008577184092903536221957306877935517515851073088558267370803924447298664570615700134081938691772304257943157865744999259237533185160752829966888163291859558267141616231178006197086988262917289004440294423985875726123340829570490846953478143371944138408545154894682707093026235929228056288925340286108262944621357125858765298060116609529596215622686046105884019336885533123467668780923816426659069538773726796455626889012004242235465674046594510819462822675435323323055124036868766584190346647293263833592795042465605648879653850378829569421608751329299210724227886871063480812061869781105528637113149925613433626539883141791596765430477416472772711408833842352301576132109160844955100807528334811068755700953679682903955273341421946549848974548056263677644215560352971346446556163763148734851860667497902797525059350892641629012237861501799259667066902670657934223331947488977395832351479719471256448681291920182479572576141108232710234275515219597964365937295274168758270342078616304783883818391704507787219497771607618442944989398740227563673637479923005749175005069700275681251519473843720191337076486532991917952481111665207250497950667759510674971952734999516487244054289720977705157477810089594906401717249698015357194457212445386569991208348927466027256034266137292119168909552576980860020472491794975760048230614245193980807760426985950076735462217095987917743375293359166861206253583760686651367096774463280603475250936389229635959399078320797573933508073574057013174032350644258581112060257795053633206659364040079343253709063718841693535607570225390530982972083998462910644133669160185057086885682615291852124482518378849774008000267211374575648513140573559117278876725034319250541119736904296975373982492775001959789023345503311885662872505925053481836854007435532216621415570277864317534692959762197675805620671359971464285478069712143757218299627158043232848822587476830269497399943009374284606199899267699383267091571736691600640911040242430853237640512909457226815009272883159828943588799466898176136449690948649644262188655495284804900161339303438038364000761009025513851610360120595430383133901297060089482445485944664682607523958547523026816292997769879801096722790065112861314080844612172004935886593057934228498605709462800933047923806704227379091620498116691567063707872466384727762612882680232212349312790316189375786811984114226651044632703211548652116090122093118866430293783680708523638746467425244639239777617804510952357765063088477210621190601340028258208221936879358731317836556743973577686132215137978432779443031657564904254139768193389237034420806593678562696283668190398083409056019229766976088326192644976167178800644965430610173506804172325639443651894469121481521363757796184527554329095001208606791240716845824261366614003332296652891581665855141219637912809261051501770029110571492823791291708897129696634713548577772581456008963493717833662066746022015629484956945687893677181367099304333790899632308702857211595446416287838097137895845053152592975940170079689737164196702403995542792071305077662368096105652919805539047977987579997409526155914560583107681832741456783059431458342683615073980337072664646184643794684921172333156291594154672711440583749978179924904984417378656641904919467242456524398977556619416757643494780667703711840702843149340403849331823556899114553489080712839867954890574246860749732463787890528349087901866363662414560888071874998889440257464867555240005770599969930018001553879789992332167354123517407538999742079918259394797975386592227489373741607187698634057795312374582798136775074921534823493827503133431661272648968759890164847514064414384808992743882045158475239504256870085609917849440620147403164827174929866140790857646411403772280561046728472321265423873690752235359330868961832006366371372595182286430894276987373504776939719295325451323608953075506315487116055603098748058953408566826395297374288084918519941507633290267653281254889375576937628694263729999942396755147437934823271977853446811140781038674830592222506626787242344541936593732576579785534713085010096679398191776945095959071315853323284244972938499181412309941744584132622875686947706676144788549895988184201860943214892145175185148369749474786991355030131143565655238052891076424605972603393166907110010382567945438037502871679690704748033003371697515408442697040514854115299417656858688445783008731796785769202710720582574725620629466769677523703325369471116129994350878311530726359732681685712566864929898286246876925754320669083934572194874790269330598821894554188653890124833531419852796367928386289474485740689447960606977529059122849934351558387327852848984045133246092579295112256782109936995454660730446730941029591792352363711289187639252754910026741149108761194049867950480189049903635840890185862589507487196323164531367918689729119274845327013880602612239925233687893414163287283636158050326696346296342700722760073937614945590831200222256526794995523578533233932683783509867466667493376955584811188560851074386493375373081255642844750038635903918553951034706895978456085698810005196172505410809189627581134508287637933985230067415146196546969653463789536478115323074007780187852191436143619394856007226492527929182785248693155871327614458206362869349567872546764826732258955572999723406358679204966239064559501341157895034121059530707207284583615098550183716614581846947849133399820971253386643242474790662904095236100276873520895592257270916096075891400309182096054368508877326439380424307776187336698536725548754524387604585139917566605777892168480536162517394891699597774484038517077464624908660969715919830495455045034649897670643219467170563368736228438317498700181824303196839154279790021645650872887788018608658751044588160698345275820706103809435900773684953449210151594159322797164533688509416225346970167013593796289377872365560124119703198394388007962624389634192464117441925609394510774242962372062451599060513791252488621540684921581876906040431313909904978056465783477336144938936271265157882542678198154146277535940214339122745520687728637075941573430481978823050655544242137520991019224491135095507269660123805558069263871389628913125325650170286280657269159721213773164262680275052621065684641068604583892826596447274560622943629384230890989391897603305221557272629438315275274912831797514562452773831516895984658485148188801719117893482745290784908578875575947736734220610240609932477929961421809538253741858687360440526253689288650875186841433822831741367155714683260118353942983501576469044399943704777940305669084743408951127588659564793517963161765141226106508959821972158153906653016321426773760673766069509669909260085779536026830807419684872753843321322912757238784465647741394546913026709094141290770917159967628243478500769222515255277949173405095690300773672963179346918702356991884167085069570990953854973554263466172097144287754168045755146699886371904489924678234008294465385405288113257371082474052514821847314371133943902276368927436053667443199691890955743466002465771258841139623405918191813083264119063149655291986876565767312732370815977196009219661171286599736897933698575193007567303602961533917937781880211905853978345375436129923238798679829203920055474285150068658542907082393478410012015437413499112259230702433555624281908557527475769989740706085344264180905966923207649199500319892881752251653068453818765728145505227997793516265539576340298296076586322571622534420105710904411111994512901514186983951159435107021022226906632401679914541102630191089810454376114709444638628271501258645683174907745263128826466125309250812473723191361290102794793916998768135130707625984927219497426239479134105360858083989661050125917350980158038857793211332169177960077159336867476645225089071115148032949495209828585693865192840755700703892938859089251620149218516610485297847511898782189747781239440902245504453059179302314286955982640028578488554600110609777398469268864005668051139938744865382512278066693927218863402956975360793266186377176586247151714877666621926435057172443641473043412852954083621676526786545004117837624334995440321904974816170944603086434278654064013243573504885216461388357437902223505797562850084686909220363343451504316471291856073799160527434010627736608013335351561215233618825477384656200744726225179997529089764613427690979016117360580409075101171588966982406512159255705979516134618676104574697581845289377566732772192085991314845319927255123503082960107945346479585857396338151903471024561375254494576478855542302472602224516772839404087310588674477918141927845475477027936552219485378270720086761851208616757575502239107599070307365174523853829844348882245565999676737407879142709666790948918935872746447159429509968468682628359342336520213799920049555617719226239482006113677305577507363855073614991095150190527622603663949191466295233689926549115570348976769860516908733064121641397944640923742074892386314751849954701073750852469434819850122919665570047530610551242391133231654562135371444956893208508367713947961268206190969294761771854417565383595925398957234805095922015997903155233995915103931607062079712918787985585149886608022507022974679468373435263416440718564218132047792822360003687243484622119828071388270209117144577674972691804945094591273812044317928576834013824822061270951753089772202820769967027340927400159225070739128478666906666421061309407281446353435746289744815256387495708525109471959535351132156920326138309615877151908668953935147353874918618388014200719645540727247600341945513539306707166540177961572978726415932242936327878720649702941737246263380835185238987303949775368787888090424108497534909247040332907005684124834904140838382267712592108726008280886657089777713276262901511770030177906511653316262673054033636944303077205091076532227560427997529414864595900690080046305235110639417075729520393608098406795065125227199120454856653669071859034668558109592617515814400316452755130235833835884565038006820325746279537673110548655452575577368950469372045698461388228260266464135339164611147447794484103884358955135506503286848777101482228676237535882416951039035294525657941468620441192680492830499094895525270077130731688522975788781616405203182144575353845321389583493360604053994757303523220449338816159677003900257295189051008899719179078694574485919909880203736986311029621290794125015318147097376036689763260977888028543081457753364901997144580111967904545773745927597113265300508921559744794113248615066731883636694964977660307206070052004710478596706293335697784719174196154380041124562476061609414868615387032113856421124131011886664910425598124167491885051165336474173333731903150863345659590666950994347902084194150221661502434929381431420585187051315898979627545462685151683902769014756210285981792066702981752356591402637315562827424516532376631972650202744753048136703109347663943949830867963251014721884321174466311745199269043154676664505135613048776445646801517388050879024695408902997675365209608837749223469545635325070792754586161418211027550280358821009005434488494786501892062449497391405144964928886498467857739057242776066680661072433607334530954070705866789542526968215690856972541968721753843658339504709459217673288553052768817211032187683724416783646175937576908976638737880764187712540156528281355798759486558253231583509686008857480084057392794574196807572775859068721585201312098551199731448463560719300005923026472075807909918577075838635450963234098450181284997128983441361321322859863375385616145831537099175115893559624728598820566134716195821635109458096389403112714140731908338826219874885584636514028679017469980124250315064343593346120514762461718584661965477583643121076472172908525659115409559797228881915137229798838989642721796175543618730852642782037870548777732349375797565681110294492682921151687618711126893498456876124301909634665917966100002857572769093757314862209226434347338229033616466746455501486488174828473294229692194085703317223367177598476147677457038610023097936133686357881901404030474903814508958803458705843350555286977440930720674404751495960801432250317344829623889096969244003123285468460407318891381053310644994910565550783085319893763241945447707562874600937352408049411690029003866969568724163515372797405393860992175717838393096579536515331532622594487655860001041243862853909852581839488527593057138940677588387488919716083735434191890733532908502680367006002349514444357832083108726877577955339077951156346321550656709785417197300429919050613285675872232255910907607303612989188908204731276286992109434584187236356726357231852738209748428640788053924178558367027038123857758092502200109539592689721919336765772146342628974333983124106733284962511423385111603524636764588577597655435615547109688045802260830985558266071526768832215782776250954583769620104402200292863691316205837361121150376216594190274900009824611552147911977963494804728141177231683321087987143734692833905119947664171756868760307924856139717196735024956509999079904312130116007304276120403261389131887505351561359572004383573755544598176193886837603119907867344201456965051132013189006466327231814634467332734151186362455163946597833062789598095938906004754303073348087598139826771091301225806154799047934447300652835772849315370222784116821078433058926090313756035362170821022272042459018094343276777894361454838514889299175920004650643188268651194106804162500113947895795686790266624536270208762196237926188131645078051298503018073720583219305549414446957547649333711277851825027185137477860430876833961592240946212950275019346391381996479286746280646424952512563794748655710431147630807936843471659660325784382195270104911443027707205624599877903268809343897290119253273082212812534810945552163208471590348898093330764366621245368395554501054111860521010209088801168338505630078691542339538134795077112959756025097680293521409672135886294641207001306849944718032360840969655850622891655337696650450544504356494648156783854666341265371648352295914658261394288996450136548958608484375443444810604658208764446040689376133914435857273466431833375621076642807750288311974555295055351704224715709073737620998755866048962211814844725181984418759891062322823415244369329591073909741563572087723579883211452809682906685193021825438482692274945545378122362001397581517956747662684436781751772012201483578355173449810053527488684878582804377992684313894082371506358459189177662301556396184428510145882890799392603075473653173195596646949867752735847592662471990208717542070255832998249189012812974460921998276197317063257134806804717802539752306831258142024236884428014320118816143723150077804622940284574869249954515931047468997244846581366373299227597041500335990428502987269274502517870005028388552312600439435128637539548039407331614836247703585290013509527380735909081830539287454932288453794240433069559934047309751114778785339369195670779470561371091572410145549780184664979647461087664874968628092872402596956163762120323736648083805800552677154033259830418814685869675978234358814054374610922216097927594370204482614820829790989174971119718203499699233571272910834821455147226384377177106454839261412030721254261917522505093900157856147654209432035435204947172188845835290615476722843914666791239780045081946842602426231644848783045943231173990607349653238159726405951776253274707407199763864686349275127125745033012613378655529835074265989801780296250625425933067270709294516446021501413387968543217276529853061977045751045568234237483801504094416533485657545565863109484998359336538612623709205687305563374984391037599166410945684549754521055828852194403659825621970269451917174330195836068794269858909825822876775820962388581425862639928206156514851647907607038725467892196892492962281043631495295668268012231695644747906810013951640407262977903545386915435020187336098799952474629490070027651985436345628815244285529571627580142758703299437401477079826993704925250308159416780391456806905422421647552246199070083509967355623493722026086373293873921769701930947784317173297578309033204419905813321462077174540487523699454859730679259496688799517856479710567581179196856392184727571951176174449871618380347677673879968078263626607660160173733791354815499395872066437265537762761992279662051195928828099104029742267177335518917272849008904466260470196632246450690078241052841817687205152107059390855389298361160881795249155753642581059415033187878823416216346735734712198298396411426743601955822161449653223966578310339100680606117107990485498942098344812124221613097680822463611133919814531493584163114374856507188953923350633914608952712993830050384833654353996981861867322139457968055776121970081888662029048114180274570658490906856822286162228440134186877766272392462058539573219170650150691248327231808160435546611620073364339179169294333034068476420517746004184514948315542741127438544211686374099733010599413778455564879709409645654927712907364800248435347724844298396118628577339786164386015789431570963561062816417407284104283563340838700379918723457253339971615440868132869543827269735583045632570977371370544471617713065945972991965076484735217489466711072568184980948360262287612948314496982058293690202544241903312985804130339931216032826809539359043878284579546926932729816580231334342898973340908461843172410846753668262187331156149935090079844931253846260901263924830176381351160908717707906130229444144555834230624758041526033087581452929181510685791710630549875708615506928290704673278217277806586233837062824182830356160798817272504141457565525582262598610586608666300550948393145433587672316422281666901936487422449452955195714075671820162906011313525884512348126291491862552253268962585991007313705827814652625726042843126694964537597670222445089828451703282090319009714003605377524092875850664695815175589646913238842755693775826348768818982202962833718317694588933831203361123950342546763590993991381015097982274206049452720899781172100505748015181634900088773967780406359756500968972302267961953441811837138458796845033097060035749230465263075125815559673283253085743609453687941402533332052480660729904278572161904050860286631130314677644177534666829560963758139829569852696168878303263359946502422748506176078750679968379194676464542934010781339053772354117862557734505330433531309645991990106453293584514488156344002650514028127316908069328771610355548100836991164652040720631760495133083369204226818960887015275285626368229667628045669612547419289502733867658976411897410948192834351293298569632529203810300001217574723822800201177857454316017632432944470052968343160035072998746135289099337609733865957399314953146502406753409297054874437170124875971237668704780930785643782302714863186078710203338811177038463964930847577444290980066573325105977978033033976200526274414875923480684984734736440889408117984423025021092130403175777425579084889981524194695634765632821646022565920392966372255854613648394109526963395309935337351055578012737173364540687714823388217147944997306268427492771361872645707399359018076824492425723141720818199133467587492620428572637274120481179962107160889643401792040969655124609591947506220971061575263020727704255844778468499221096550610753843699845598728633318205065795064970089877868811112212670565172369526709016720662378449577947561517115987661093005454445898020731929065961594937763581664330053081840112445106415445863049383854680032489380183581718629540778908519795089513957134052091663426817514571359735358503499453530018733303421084819058634600956029903145874535710544605906978890819997038360074448779624294096070741396430359662041537297788631151466576672562531361190756430236324219728404874899287653338624612488365785820050504851443080824911836838579549011551684053549267649512743624679396536526128874220947726697874750592244972916068513590714098897538492833406436186701715591060361637079182232566611651147864042455635881221748481956699696224907585297729507860802403968755278784016017542189713435892209115888263103173001152197284006393005885570243343917165369196507346908456237689871277366267379794287363980726078526078109946096707196981007851557272620195020578314782381006813559671255029651517331937550948590142598678698936995484595626990774096718392038674976509086975901580418219104183873169108923558267422341045440142685732393560800088204591512185966759867107339872344595210345737628533011322496442041505794812359349064219843117423732376926467054716692667929678375946954231193728569844004499946577189612062125415066272274301677571375593981360067299210204388827106355349008586338042564168924688313391973839964134561587415830701142878975475482612028789099855371476734825911728640077528331658579989054267107042000434049568667183810861531361844084246533749879587753068851263596252221999384398863072722543390807065478017185812336940537303691744614234680578439926762106211977118545074369426398827821295063830655446297879673557644606406299448882521150306619953602228354633461132204539372628999135347335819134212980956589451802699864509493151225932122561587762265313695302612480708843799893212813044041433632321955461028445178860281048431466983440545123293658119241551035441076581791907538182295888372049083539338084280322795118523032811322305966196745183899374221473850745797243373708547989982208397765203699663577680622650246494471541754584449771253864213143060269314603775386763962979779954915599711671030097866410640196043593843508662549792784879530815765076786826718202097601370129778422782348765576525585716648916362304999824924168229759380336460436401951046697994474322579355658578184048896138552302173657144649383855966786075499666832483109228260715539587898377075434549013407532324421772701912049376321930892773921964398188577004087256750211540643164759154400240691834265142055886773202995115334955614823181688721775348992200327804733191201151280049310515866896652914019065911808597466508273160279079779881708954284648255764440640528111360134661741023706733930720677489591895904057280343841205666088021790430237076834518391564250073981889373455579141246517535858821485438363537541041771658749494872930057589228227493637907850655688530120304377967841951184337908789532021564546974055563684586853187537691369584115669249459548802244999399170295921315510378121417524160174055335520314013460387327029701957301972095676365287605251924373575086104133358051899089474477950161989269427046525994596058149393053306268657655195061565900895263429786655395687596844438311248534894623932614867065927021322025792027878592986864446951952578724984389402015057920372569501441164827362457843863088129880915653845759749890144911259494489152208027231624672559341426912736476659813795985138621462957156816773927862736702704333900972441604240954336547256284357271175414115720794114049413689332849415411954040731295979381558713071963529843512016497406791068503959065914001854531905373887228054420485975465695549571937692251491872448088335244954783276852394459069029374124146648592403053472293110880391937453725527905821458686569274721939727146046221386267978155832707925743611262299141498667627555986381316984461258995400771042310647083216268898336881673394499308856259205407735803975394448390220409259978932621477001128515481549338941366382403663442563498085311572794618226046916998198270469668326788653046855708745883722362695601113658183116009937242920368724904407441162464215117879051873713205301811399178008855340481304665227025405181130408577774858135591059372260223885742997152054777349993074732687207361938490027268236253001677175420222966505661481282748338364014833372452355795807728896592494808593714829748455900504998269879258078571035899347136908322093230551126742861359238564063277883876697071264944457399366489884071261376245514608822560162987248547415356135529949679363418222040669751257894994562714345303082650246554288725045889880165344392277081918106190163156935476314025863146579437511445910346960352854078822638147611323366749164896601997796314232917490385345274732107552306026025261353214893328621217414934418306619065242803469896348491812642901183397794160463012931691925751308379852512535626923051697069438873879917329580996565779751371962800267274932217038185144976158301703639644749240147691195626891038619838414936353502861271400007073435143123599495928928619722241687413572960904537131851952307720343290917221281267277660393755656232180054391042189280898743706507431399390701703907814200278120449433953049364321185900509463470889549903285561826606333587876824125829425033100993784447356449564333996706388529152133182765271312302792931465492994892186158190732203797850893673487614510786130965038923474943125455920164042559849428298843569286345528549489928774207979399771604453571709828617792492422252168484938018591452901892139436891981838148986600118123769688629742642218767740334751283817430400140388526672978044299896949593919828614229819007618861698476980263655705846689022170164307066660889727415213424051253086193643004386609995523870329306386999287377427148116439410864804020993046327380601895809774338614261668113209549308043329986722381973572988368423315387276538559294980705545520956259109881955098135375414080696876490588097926223582252209393387104910102627193458025787407043553845176533220932765514896292492070978581925625712762389706004835970885661902735521531461707605437244557936641594098013738101366358570412710863295789523889118353836757991213500940506159274579529218719370172086544201350725476572651572814237308261805667278592987359382089773897486199684153594246968669099230049669189375298858710461695460182818327471442103381916974017997727645369384807774866735587737565286536987400833779873783503198278614561057242510576487299436040065587125403017561239373796170847646607784317271577721668923632593651665911486664300652821623428105755233965372468860151382993747312775013251551250098729684570987194859490785081216625527373855106308315883314460428405624952427244317669610690689141304780955271558737744695411240153415010966738915341893203985812109912301534234158488380969528315293871593552243829739145791788493691260390739789242717417058481198064797100641861822973490132234576255663202133737430758944401586971969176444196751524793597356629241050615773125023071018815069112354552529859182187481026289764961274651505861648309828151236160672453022234143968814568164295379213580356120812039272045602603860281836711749332390405790438711918485783221232729676287757406325681055700079627564683673593336026439774138398975836872720146569938129667833539057829999364782821371381589447335954887534032243915113116731014684532412187751584095440155148288292586847877140072361141778708291598716759766673515765797810938114088193206221106372247557794958703691296619554722573677389967388795930028959548669110109640048908297900288864083851072902223962522018846744602976620924334721367709886081551649056350922514652777479483892609154834266498088230271497929179692299121973739197189617981959155533660707487077363128217925786542161556975814871930317678605506240490875640493349428182687276054315721836510893046653710720017921720071961034442209692619452278306693827639837495679503735894198062639979829104051797789510727314484943183715111083747365566601077822420440088167251783581636403867500529662065468969961985136680415266610339558512855945561145131845834725235414915140201639588393103611476398920416323393948869200224124363337215106183250402506843060636833165501857663824265801338098373382647487757027427002026246311780004282701073408750457331047479073489409363224769258203512674103610370373239111202271341495448539694650440784938080280211694696200882126251335424181902588948615626391490249904471728907912111691446707701588438325128154503552725136518745749246819663167159478253859262150619392158157292538621933148018744964818032049102819942391674499112166267532646593203508395392953425016087594164875855347781651387834127916199430967728387393590342447731854751336882612705103564818591008162182970213837970881685000387735391080330292107151204389389315217066931835186872713990459885694787121984643216816022331691105566108804204011353442747000761810831635884300050144826358860519218656077696562028152572668853575998721179832885542653519987656887494978678330116268861833147385531402283926085201248067443241710219152717420096035283143743354426982848050494748469021005519223480586655712838525221609406820003726214498217619614971789232164163178992434212993959536346075026234997124307357014576935041097686926091577152926420214766329615372628986550730386173635892990335116259408349965615134957606327061647831028418804773814721390350509872042038168841332785852883715660785072559736731443214903434379778949293269721366824004961896584997431593546868732519506714401657550817639945579828682597339014190697179211662543978822977369366173671421794092502420676219120623138919072659178974226860382872452517298404995836277628736652936809894706068955254906019990339122098960488373695981649748807805475750150729170199800262062666710583018396305381395387625886332207381099119544843515703709056390149304922256934739796225686191398575257458055134006337919448650314278519576093799592892270589700220560985954959521984051315254670909210460164642911959072173477700904792823589112307884541840312342428187742569479413561344006534630151817601632171031826144674704326472461661960400702248701622161068141504996928965540474131560073801390745008455523439061330817845282859217794300714384545093439201040010251760915680067666449623657289426866885008436508949784873486938986330047359405528865045809417388684615274443106835793189104700212987164186571702531109879453407317424692222335132704221977215531468017848662745176432862869051673078310632188371063051028237071892861875973662928087153927143093626298285915081884892010319639646563505311786137155352215240915450536102344136975948501231864809506668581307211314937095254656853775541562438709587541188354752168606104006410962076315434509043629419619902582064917227059818903554248632869146370687600783980605304766280846102730541084478360935937616018849861884913436698342348624701941055843428000098424513451228021924552168241489471947946836508422635752287850408617386497854783227687918217303511033471629465830053661831589263422851018408015446290545025104904835208330760945017379759636612199203002402926116750072654788011096771222513724703052740297833659690610793677314274944853700787554684806913648892645231346247727347396639231558368688791155250996821156339517670288873406729218869418813847297793348044734669756723338716530870859545101793990574099614689019624711191817442007356792475887925898114693309055732340492258356624703175805984646598570420543679849351653053102472991780588999193705509812981370156500470293632429715593751522780315259707355252801176752169113450761482555133301623001936173982432954655253725145476892324393824819011763147820814569398572560963878516825952299039205819906848160028653401641456082231602629077838163007427981322805385597597724879932545990856583622294584292268237074094124696590495614446078506370722902081201225062981794356142370918591640846645633997476400694674636850205853397889063824292565155149328574507492530002021359017487854862092924321994536470084716717868843152438835909935751138291488737879611280474341372440641074429463304006375930572411864477831844918168331351843572411501063466736841377304942523714783452899203500491570402419477817321467016727214664173170245120900015340719912981988998493675710524440917403880940192927489283554415446586741341344088929763866880649000145277740423755031357092151967715753600677989056447019367123202993285181070677520855894714570915921421387425111996099246006524547409637936670259770911495453694763442455986315556309394356618110531084057204312244500283984860500855869016503742444529441749519757624117681408535971253007406833842412216982566227426321825327043397474270395443223916338073107404393862647298283578102060145772792103483418676451907449607140858589698139392921138695916094108646320324975666013888709868334470013647152750176904430242545666742763426015361977886914708232185807400671498692628508274309634096893006690825961104609977826311376650724963129870298547550118551085812912639499734452930845068524183406481331024214941764784445276223235636241968354048292328992573618707783297922316805137264045561280199391876062626294148213322570170464324560609008675657782876372705080123588010979909181791645788036025312096827066320119188580856061901618288362009922653806014840511195356872529079283952709859694479438820688638403099950634431973646331309601163851542551526048003247571007339443106707304854794694589450858272393898810484232173742793027891595901384509367360327958350782628757301750717316912102528187105963815206068589911514049689093568088900945298086610962798683957545328648323307785118942742920014677839424186363099041188701467524165012580244210805599023246715199322696713560334620567506473923121305432746264391334017562290539833031174297386718133974571841818916630266136893476623145534599898427544432520211066681986401031555954924214371491110374450836496666905528739316575611518307231882243667131299872514508221348378692963722133088920997678079697035841306872274226622158583216857033844961331888943442851011345521330495754913107282641406998965945307075465249827717515251835201263165824707366167019014138252379213096706557845158813374008768996469171303445092877506875137026950386204260967459412616355580741451601987674823658451849774659884431778356846944854678162195729988817647938421740962261193901891558281180890017175985122605788852457875234356770140078484908498821293451928722487264980432804211414692899286565444577484032736769744020938081391473996367652643680976444929405965419373810396799957634692149308117439026285731991766537831956520413104745939030841549754985194961798761504519681236552302959028368237577200159181811460563159296869912705831686139066558367731902976308761289392505585894088701877841462393004838995542044242506115020053314882100590916813974848605804820353247846248624799581988968680491572108307406830278074781245104664328997851813280512944677553988556068162253159247811589903838606593134805128387104068242639370880488310636275426837102303538256057920150906215337706440560208408039166033133844234184039058512430336747137592581709698450937183197060305865221134819516651166247992366785003837980716390901608720751322871556801519539748241951695905064550761497622566021067620657149925894519278437710359108896102178335408524167939206315922942796441690947128610778391444087666070684223462473892611429424788912385844847853617734084948079587752178106688914318821923722319249424008544986825187063275824971961199939861346244387846169852922887314050210581862756742403721105476364644148221082187394259084679643621814280594257149870007352474552850586155065945632866581143506167502921707684275697059371437247577966669167050006623813735529423941002964324824669617457248121279481774909090080985338025276457354279429993465176493531503258271835492712703516080106736370645230559347858001406845931597302436923551646535741997280050652612844590997900952200324574981572649013621421612252199029023094231021290209176047778548657089227450402012868748261495936097803668724858923178058766120050956140531372700376650205992505592461138172892820904324393253343205316283121845037179578012728201516408950763359219035335723904057790390093956155423933092313587232482526202801865679262322742133335706755280494868828294896125384130456825945095062487340839487543953408109131258975249792705701495019580865385607225410648664617098286618014649660496749945536139173382457183281219350950547141626333575796758495780654366995744928054522509257327326175611444120881029474453126377888693036807525479559381907689452590893462398771836494570543853540172425821552363576439349197843015031012701072554747351480991889727454001423999666513478602950166700843766238849292358955603757208465406476587821437348066926633186146189726990102461076015199544416048270014315980193283654538395486424180371287254177558023018502421454477768163626691577843226541680656302382086781745336742045532432784868559940097144170951878407785338845253795975856699371250913636311845681073528777558238767973864876531655848513495806818191210932421640188771315347394245815082231243149800430579556627565509053877516392765097033998126594470274523941960869957252537495203008517554935546403275054875777455553784685182826186995178962323184496302533356928427135766768301923864007415883751040613642139332385739318425256845889410047790278826694505033817297174785281821033677484583081676581257657286113085514649422349007602628193002574912496662764492527846354283845617869657499211211000340460142893098214866447449966062192108373114817484998445757017472813891548028891417475679284371848044807248830453758460095450941888328460946410160441404761274863010102682101918559695103914863970963381477544840375377065501331300146215558838535589761249122156276479941243318394744582111810786271297299758315503559368842620463696044181929844765494874215325210920651721516137130745859122179648857474174667388869466711736881162880469564241223897044943471370183659617502668437456986667287597870005807551371112239037777416346734631997426205207460649668944264060005136044495596908669242115338493094292226101168641033478312665198907589278667995181797358714995922041676824159708183947258654785731975397839339358913917738827488311846214678608746643155173432347321677202230846888930113382683875068313639374738442022159917262517420396662255349668034143987998602939432153186363547724852589837853420807464926283228678767376894496465641513377450297423924237483032953659967210801163326374687283281319849628200642850104871052325772332523736563367946376787916754745252756639480517624392090692860153715560510534160376757980804582956117541387432826609197809786909243349000706625302592381860528019447899943225822094003860634786141209902837172766249367454391248740003980075605766922948267667405911035712709152884346162682244899290446371442043089652576001811414276720503500220424068072341833751695075138367702421980874159309752103656025182543052754044183803864869457888557300297563529121317604571545436631549709330825354353112928553034054818772412930644201443109196315399196719150950537664255113515338508767627022715022735156361828825832759301969679126087987777940531272826302188691527564770440048776614376467793319000970071518683635846798378015112368361396943630175553278715044328461472983994007056334201125189448255257403247245998808376901308784469710172452704238904727128508309326062751371973408306113225342196724848303140831708839748752127336893451791776206070838880509728718209718536534691126451173088449512988300201658323635698735431038525199821540307607337819391845077035063857856536128068549739870796649064531013110343084982322901064829361433361284348073009029460964246814896007911393991760464314956956214816148298996251772775688864643325416968629354539407710946639241619617937081638207441270648648136134673156384108089463067798150281640445930514329026568126981465096194660592821225798487562062609834906408214043219813393206889561839286915935179542754285914747607691025044300987094426115062960503573034250661417365080351921809575032474873040712367460045443201974579737863775623724229335876923070190313742573504932966415925540453225222731880232636951549680590238614141209941691716186228535052196450015740439639915455359423788446724953460533430100502611695874970632219415074858962520028948547910465109749723792820722058968831701651721128833068411248218478145891858713183399297063580355979454326969070357845183538654017463471493299658113363465168621669022433214569560050481147885177811224743641852806417139166709655950071887925117958195511402775594061175116160477148392837590035776114443654387292382479273701607272345017663915731985216407311532196924526952709548730406688866058362532870251672576237324807120033771202972264917831608178564131210029188915907410800989966118734475519078976383491432066723257638073087035136739682646586172331692251274393048678230523480343107595612067851646762345987481972301014052777154129637868737152348750536204561928427040775017238186696709350808373602455615759932991346401121948776816285599266669374344988354924559540242616970903314122590754367247445942879668547729674167854937295806738750348621943353862947087169202892877632722520338818583265332425162627411703825817644883635838829157470144437321066050699508962173146382602424706372321108788228183201459834479178070300398348725273646926992595591208370780498153679649603388079112668638189919268852564471983185800617542505940993670299274329552907957671920451820871055409661370769102956143053302818693164959908598488216561210451221891732152293126610751611804149658687040367893084886887659047539404196044278624997066150281437884399419039164655714888532610753965019613189169753249261885802605852942741390995746884624885391793684926389240458645899568572804403464150547545303393296571433336682323630368722815406173570080665725597630721536341624211039471210010769674340862899503163659464954478103559673201402804877034753126006123930276456563518502866275010940574606685625181292601915739347234323952483200461403214325042975627497294782386262428830439419044583775319285677637263172309411300144792047713358471757655568207650220574003510474519318785143372064505915337117894841069274396392211574958158435171378471668888801538036201148638441259055543160008194759234049993003181030779439773986961594409098435524340211083289316117295821382258753493247479215894398136643705493829977323478399463387342207502521399574053351598296754621223657168906209036015249119540452165511494245576868936356701370496643489480702645352706938189049501975573493370715856250543744089524128746028970863648869330574882560084562426648608855274455840832209759088086064330582298885267613842755287640474021610676888047637166388836951982818925629433381755247978353209914467683610072149933458708204022769617736328838925860216983425604089951693230872680340944818800461330085315837692466473215317820641323463485765669608785832057124888707636894020172840987271963730135622257483875321152054328170300665737673270490813631742654076026929307028464479571835024639852931551631423146982742691235819738574277257756561542203726167107103786020431552191533722907506873522785959044570345488023496821959793681880657588628625298356971845831895438916346179801658480754862119096892482944112858408662395627452144213369304554328652239863906359032864748633891731397618036153736795099725280006504131587487659485567799087931190041399759161737889692205119805674429520679218172600558490787688231147289895544133705456783843361876646910660229620219603167808496504549184334761770846583693744999177155779615008737079416260293638262694210327209652544891294728147739097685317121215187527068475302980532768284865705586402036272435604286206121431002113077958617487500698946378357045392368259795272638473557551840723115806418325765503363819141464558714680209657270825776176572408866644635061824401463889795371037937490450539910811096953255124486012774640009000823922420468631003401769674403574607236995459308927561321789364479162376189749211937838546245762618583534705751655208533712041048595891673318271969757407130022880038736487535683743785558060090746135090417630719105009126818788661367870962143920969790758713299216117091431568203268078428502817067587742116733968357799443556072542379974077968304806730904900419142571650782084868306203495290202461890896411468786442989069434235878008923870841608778742275407799956180129409967552157055257901165648175019020599137970347021439007541980726300911005467357466613115463765052427949805830403052963176911361650467596123096177122520811399961876679941697186311377798592035796158829741439645650668332700997772722330682591933466715188880142252537958172368043146348978766485650274441197232590145873207875766576916742715338166138974345206792480365198821810113009858083869353187736597509606655096071738687999444872366569655927752002550074489420527546812275528651010249533626454984213465427629618838256506188729845389875493618630976571562950513781690131570561037560948606515939537542566111658070337136891636755702767055028182266268030427390446342400919821627943926349952983306249678730242899528143855528135839525196545532332513356931398840971534801110900250842038499040590771979206295018212469324645001985197694077639301571224183799731100510133867890944472480456022774030051396735265646130017483871319770899866659385920845643297663531237212021729194115466336276943291387087761113824142853610864458689647852434324470639191123968972296257944731750466896890123060871469029175502899166601949205554016271673787657518168057879798609220159983784705254395878774932246485785492982864290465912956407050732702946395253276804402182299799140682816923804003014501351007759548602728068383515799634737850335692227094249964938723988701238178150215786549181297822795086627846234261900753154866129823620343323151698211023853953031614258008009520169509843260212015882205263342678663121870560623229066147593583080318864211875702486812375404413831522573527577476173300855129535314848498649010073604396852408270965010616458067460863338857144726287184024093914525380806434879363436227265892178523324377987884045903713533803619815601098922231458296168400658759602431678006905594116640110526217072093760161036841942853315159308948815907104342479138446226393556819378463409379686529616007753486746646399495498869825079187574473585343966583235117706159339540350394825390733316153005505865725033098242589165353361119256043946780457143188999772638645734728993352527498635862194537437995950271312770223599072605343215220007159930689286401214709612212202320936546265792751250663962222836762707343768796936692238549425850869743483017180289822330362721254192562031042446153612562035073585620222731977444005248970956203046218701729136138476025220864242360341382301239172749559817960098523530061429295254575151245256014560894925222380671411294415498144355198839187807346952412035447034697806876412441044524897962888486870531459644996917443482575308307438979069373190813717206343462490747511920427363885561632266910296747221975132186659554061290080685669391094457613474722699040467013238640042496687860756638728090566945114918281447500891323748097136996843452905146863847115105243841719248137420530550735722241781988857130816905321581590633419996061574368716315938587421687343752701625492632217305787274556087861172132769368071056988152458261409686843311396763538322791986740312194206570949313000828717128873823232972262622408653119218531864501060598534719246986529781523782418590671614148726677943831704162582708895932273968072059294934113062836349006819843936624440458418671424613100275639465530636914970159936138407742625177165620564784381300451865082713325029220724762186121144682974338529697102618767801077589727116739895407780986336059697044653368321271083993184055473225813136567311639114244476643900477815396582122240148634111987509260762211035346897622299572684333209056472487930135274742648967366928160066588414029071984465983417234123674146912898600661848068083617306389995675173351063096419382269421082172659816140744043109530369150935677724666730353150520268631856731136603073415561015807690913663293429019218854911614287037920503044913156581290088252015348016656091621378168972625248246302544983167348166258930267656440060140763315259064747180920203047343199660423635392106008611336466616658569498396248994929962227159615882924057789100918499195066525598702868679121765325581904476204883207476972304241985292164178200758623866842667749563116235258834095139257427571292835677168145970993514523795683231547513365587730023698198440795377643065053643455698908245517025904736515114791878078038724895738629615012847437510218030849062784786319992568259273503142556250393686160744583007382619076565659260623369367994462406959774329163481469160228218225226658556886581348605528987763896590012887966429878734260296873566464099884642312754616557925113500978871140124636189031213575005376270618428398531734323844414280314963501851287781023744020475980788991913450069977127496475512201409653205474644938449328378765630368804766164159607162653718498037339256356778102463696790209537240717060984204054666519782783040906624255173524460123792544675948357599919866114944504418772780454690208160570140435554004756069611162698971085567687389655884757047263435746571006141575838126866461810428658123701318212370273787412192585547477044629436446935228122500824208063756374639730747571143736267025071249407959119322941209984956096719821100884151886425048298845336182813571344419453102252772970163753744850419201141439021021363552092586854248175598746414655433916339219830382822615400017936098832777236211214233612441499185067139602170676974495186318285682789785141137067073046612448962044988288342731834003352053842837485211743556384417250663818037240501581941507789483392270796141941751026892874458685006083261232153372075034923866555729189319555129990924810445114318836258700275267011342958474986857596687875469645087364571404756359648510221943834797929295144143166521266299044169075203506665678887946593867436481033164317279121338044979461338092638141598149919894910587102464381489956465510551713060406707913782759283971085882525014901935235127622033203938955692123346024009158791911415666698943880839988114249987852834447755419615214165958203648102795259784255138125015966354304024816238517337301955267558038400762896923864742480142320371136234127525067702575437245468228667133737738407246529819716672541477298928568428967201670521543504334455373035219761545149479954195398115887887752661361810052475700071769232448698319994351201309353171864236672585721992363225838894650172057359533542225095840109151820731079073064197828410816238707958046126902670274109305973603488265272155213595330798080470311386102396333610740519215936687475264576251401317102637149474932498470138521182445484583229484415236106434729906273963039793134544204974545820233952302735795316780430120669183139399672869216827491545893920461498645315083567029495536065632458308415960058003163046665679129275981909796175995334695427846174859232942191597674124238551173198959623622392488625181612524894741635059815676040877599706058578357436236255503040289225021928280258858211612911742554987762657761948424863323423400654428111370901437479844225932960228579227303166079973659442124562023102820595017497628624245469281788722820838374473151313869252407020405010541969824294988823112793720308320481813259182262947281171101399631745499349646331403451722759283258045614236605042847467940539136005343091791056099257121559525642117137412666780468833078377298795769631150972000836045706027439842128310045267377877248110969320437219219115509893208211612014593562547846978156962947767045270727608820430046075426766889094586446786520797679947871306030366603170132019336069607638156372668616252977811370935902274726684815382812581498925545715938489904624501314957240498600669486272953799832659764827568057230892735116691598886513164106631775392413818940234314239943683377230469995061022584902802321312110261498598189581959781515168571389629228050649092924716387441234900955408206083958689280423323965272420501427283251961229441624581932393144538443273247248790053553698070618588693642899605947285980507360233111730418943691872382198986608288395175371902244988828369696288446989034898086545609915354722225290461044301235322186027284472927314647304169252248846977942879359555936497399728768500088917014710021168839972698215606972966867492117731282154456507247278282984304557062407799298766266804938669264069051701756469426200306842945478783478754079544021723685643606458975995048327924204413061832162829881359019733206144644983147553508631362137535900366976763912601440022671422180734282946682750557432488129232820645671271964935471081570398336805095045017356139925118768559634256977020266955156270151844030877228173789536245506730749471992930972216189062482805714023097321849941124224678036268736893029203813737387357289607462576030870686867908750338660293672644758079935735904079389870906558200132424037303459388650868312686057069284241963838808435683694695942930505715142102525443643605072912634078753665290543981022215882734402577098370629271907677478924569546389446377816827010392578764491891846686361007458424793936109990661781298768852592877737887997519748211341255209670506080765899298355856083207499088484179385527723306226099157342365821301099003046576257175409754294304208858845241893253814828043802025685900144101041425800615747675792979144308625031892829225812491736478780087987024828360017996376452246025928556269075350235966789028159298844847904808053375524817053622378442920637854045158857815101461800358079677204528189868902196887950455999058765502133315075008284760766980815825210285139962847189592839106220825697414567871201593502689767193519979496253079407854595910049279300312164393994706089812173740099494043353458198566546492603115954390651295177527208786753845193852407255868798076421200774336693060203848572059313351915549654966521291141348069787252104731237854400160254037702754109280542711346882603275225949815311791078250179789041699005479806598096542620029376247354278749752856276644419704197775691393719673123048393868625998827613659753818841154641714000735591141318309955604798378856133527395636240582173834783231808120421887000744857397553482990874070009028646154639662685392219677837005881088823698767414332406708467228762280953012687693156492430026807882821326666008755353198206471309983634915319765600332072001210252886175312268306312676600732904246210528750861492494827700544821974807431376519372804943135737235353459703121839694426854256957510739658977307067827185455514848660031834301166368457493001588168053445023037531248114302354711932608710427054967170962231051275703609259687082314464000468009749066722266148946230419622583921133640284615720586753404894585352657662645790365313859092819734690132744844931774395934881653153679108905029176904086836161832628021000472544311726621021866995220122771538184347156579070667931791472712644961167075099313482729595987476041606844660410673508043950996277052338716103049657782471039636019474576107095575253058960096107632123808901459204429639483823943700570302943392706925448061238185567581253159833965955057088516297320563785062153477731284012802966495782068772920332487031026858569806077685606327660542774461295986653458461473312841974019412280723147100046818966760001079598720892646427582861593602410458723743380373700162861857585197500341572258331087728505503334117959668244227866993847611639862332569129307634859914383082147772985799580942024200026159601407906932713059942629943923462506696120909911454476997927495062977166757095930057868932364915233817962862532799668593809995971325106486758114954727296392474774799752310627893272558538187221560022246479717519160814666515074768911985294432857382153647307715435709514571107777697735390778723577782521585190055737836660139243095896453579605328887303402524008303440580383315277467155600034057545914899326728968273122281021208840376267230318239138195262942843665468983658626533106612750295535265676780592078477178342031551454247972273872627044782571019338479811065601877243146190499443749923933588693386972594368169037382063902278268572449160543169536756019397224728109506264833800624203183204311697756191490008869524371965618741097435034420937391641420781259105177765099081668349593604123022326329836635927981293929132278906497327635866445260543586606889516724442774142622654800723441112663015950948895789826568172641507948484431029012584584139035643970438120801784949218062074761674814819955037771007864358882193780471014877428461602166599538792332850358264224422726430975685713311088315020378910070364501983309386490093746590336665100082379965373638884994439109612963556400657809533263120642585170651813971418777999039153543578510987831738383288415775787645150993924868684591412647557085594932624240426090418911396623561614059209629109149691265469797765574152845815896594496323802652609895882248511900456611580868287656159684367462387157231773715801864186701781955091569129948931726688213757414318594011884086021106431876175739047209260157680580416509573283703550074036485295860605923564159214625929971381482871248705833206175524803416993184644514847488326742586377531487475928836483296518077944609769258145420745526816367017563944350209135470950724785563775718739154146717619145705639079184970575854487681228385632412889369210349859307646107150224308840822976907978225166293359473187872533507325418987152615970784826056583191485924428911185830696233306494278068519569689056159808572122379336631754127356649803613528291738368836743299850513513628240102056428778935776877476589768700263270724984435789621980016928046396236893191655878593823260683587272169803903013153453745216235129674598697106679696061462150134298793256703132763686816146624245298429963043057963038304372841722752857269238349368989198808412514069675577914035569678319538339998201017418780159525769657114457391248839812889355138845457191325114976984463080496643872747262906042759432584219100636495297061532266260240043888022002863824223334833269784691517441700919735826267204155262148736125798159628339324136538761279906297603197864018191375858330073331013630403253217287041104687804506806105908401833851045554013710952177268225001491551423978335152233466166647117637314548477863639288158087462793586352716813362751392498895961722827689445911681678227318003735948120105012979750575337631239828822880555693294883874748492474384174401875546761961441288841614328549212442954940245626740622426606786934429019053669425552898589968960655292326730332417531617000153748042416636341117712499358456363656839497999987922568128806105919237192943005771291589440574805766543728995686180844515398173584027740356477460737839935483999377479967880616048456702103317826918549558537488842969888845694673701515214720064403507508440436031633671250018013864860609619851881935147103638398674096409020596485641015346199450247926822176498643290479175074445550137093782346298391145597885936338587613200180513905434697188665852173675699491582265222903717825856937707709480093007856415730595243119164112988152162572210719308462126769666855362753585620116200295325612816650509888521031557559058622675359042437112619126712065772831239095345660627787558768267434331030923712893350430200165102246137828079652619689621854156509551933762255370096561083028562795702044832667068890923397630532390925929782790302591533466925922981033928286735553156772985504553803091996580672602964638113739177303436587930034074041857277426367574981591884257282266797293888553840897447298374575997081510003938409503878212211101723007179151439309768612225158440374736397409616464471942056297157287221683922341312269513311726461276894154295415916697857204000689492177687114018376371418459770138665189811019645275590031665803072899745691046615133013669241468194751894875100679709331670774059776503976805070773935102037056905792969675384705092260646767917152337643193381510767247375740618804388266199479992183450786188450756152685718940442165542736691395392535747658348202283251086159774165096501336898108369262972970238114556759965144278876770511325227219566712155107243907672974065062527655754174780798795005315043823918581618206194054348800651424873776618665203803906716572021313058196503632874958114744196902236286739022211184567834319779460749451227708793843853492734419074220026542491654773271571539003554655055173610958125236532463808499081821503410882468304095488153178812331177309657832137027366497312015175995562204844851481913035013826372600954999688147077593881997549163038423585563976558252992074389272215420773805727840918478890950312466268489666337459687842421843136110245512425239963798356149291552432913678209694469259418522054835546007684803547851913773903834993207864267938271215099355448617564091611221039368118902875756620076948476705278207822636120584243485849366944904654972467784754626389331293577163583188462702188839441557128311808694899364767241886267261588162242855903734274052141907138792459908168879877990225771487290683520437243754726538608853348642241490179079955618385991877953806841758337522439980090763813055960573800311178847191212077933960948232952925078219085548896432135501496181399837290601761364991155387988594229511211960082788735010694035867271940909478215571676328140065509380411917594831359378639731314501333369546373617215128800993249765696754352770294430323247260749512732373132811678593687459743053444828469507091724821138550593162766683082738439779989009463785327846470387117622875247714590235124662537244257627671512383787721739819762032274340339025470293244731181756080150502662928637933022861652129782226804665536209730891372086793107620514543032133514669970497815729723975089618939834894717270722687232346554728908619186778771453005954644057438759158333225399182830112547696190645134253114161647494303295892609610333039566742134306659078126188085824165156111470544683868470388919368368431652263935684121765714758103446383955730970538594685533190897846204260306322331445632232886724372807749170787544815231565796136675965508542966544527436209068858088833615916004629756382490594779707540232450267652675466519546965000137223212418523395249105238463361252143113034860420984128248195208766292638786841246636560480854807664742521230819024882925528995367640014445318285104500434241100191072007585223123851645701671607935790019952630135687058719639430243044980681392390840795504885847536246584063759396442139900600500149001831310150956940716775514243707984578278220163472808272648345418227483553948060082425564963915904880426343449671228896298379754209385161143152460344375023153290152860764737635074582226879665970965886172287321199248607955086024151880472562958856508010739429652873044581934551816399220541523885159134612441643636710657728813676082687388863166909815344370806252101268154396696701915486741890616809300064428559731908454033658255921248118276832938333980153631842894743878459157228030758134141056640713086050409878074076718105159713154923821574155100246928941407097838074242495145882754210585368995241635374680817927793576282082611003979719108297925533991519582228156868711692568306306583657128748444557941156825478117292525784448928038823152326112150540882650055296594550660585643080798640910924763200644138781286155637096211873757949704133696786775294773422522470423331310950967062930265556923975328478810236159114539698395888903455069606404558630315156265020152236413184991049145201468413764990750742345933828967691333985116817632420414790995942054412207190436387264868250137412928841023001140185594440734719118154903140473333845242714721523580218201207247130607266398614702478589545894906759617367045872257614611994724948924399217646674035819561689132571250575439453445629653758054992909680811011398294112181722594391997030484092412599783069421055639501905247349035127888265170576335977842924270583842275142471697473469721538290410975521368647534487025285108277750400338261412589672631229838801857649709357992449971230063774434858745538533253253961841329081932042020314934628692621113694502972634848240968865377224011177519743046648922817759798578698554966605896638663471266385934472638953139934860104236938224342941633868377846081729404628299416096772523637910702547257542435863559332311729708488502180080184682112257496255945916431189587785238161489820155512541203345618343142136553046684717063731961069336678193413196205757047609253006125066726033466769336411994920333577709854368624778014664241166377094898176912548920448004480229698241378346563130833363710366866649122733824658637228715973560365045319801684709139336372364756132859044541901094689401639055708667577368828046752497043159373405211259555453243191410304364260433770702966632669199683832617989467843779039924773925188073532678039081819979841107877026591483252369433870746003374350208281547398886206049793543706875322699658635930929708141301158675982688067907542503543411080509321312328146161124399896210863060539574482661273811306856861827621419917820439507548466211553172583685308240103880094086989658637270790929803942901118119047123590274379570135588477236680919131531416441821663326501209160075064718150388707331333801900536513139944642940001197327826694049427741637183828624395791343078400677271562475178231112620060480684849619672901151345031969822623810105544115166632410056668176889128443477517934383651484034346555833797539527480437561763535535513123672601630405642596160888551933474976332909332306316546549488000745739108445002710479187229938440016009671619116107419584598382480747328417932727503084386544198417440048115517578931827295627030809919537655034659741302648498347707195803793091610450808097187963882257390196907410456037414999714586632381880787630803172993044520770003092228612976167168714995636043189601759732170118123059566790015297054652029776381049139161478547775953469475432480142282726572989645547050689334141440757313943094699232204567364559180776861189310018668949134628408281333224767417863794030326929873109117426547393954195115831754703000782916928976398462136692978423514153229429929334527672418647684620754641276486086847915446845060591143634132497684179059438041478886871749696442592857670642270631783245892105144190614977633069608440936735662057150729044649231664023025149907905502605781494709066320863083016945908166329966167511063336176295137318273865213308579669794514370601362765394721012640853070497239585976708012402981214520372700229332968297193649958077798076017059134656532090164268734505945945726050823105181543052159742270739986412960349038921261646716098551544663831821145189918562498511782556543165665522723171462067962371221507905158600824517041715511371524009701069879552821547414775503337102690895607933319148565699388081353596842865325274988306102101933913200858833467641952639561554870051542459095055802092886495656140163248390773416195310623848835203481474252199072694239769677708398340161592780743033689841119408365167426209122344708459343962813968244387878501760539961102836042817870137812815878147054508792368077404257999967744153906026732906530209475641358007459533901008819477380555101628703706343283792358808244664445943887079930429008071577489472477434384987009943027746358925971102000585697303257479115574861608532654561814036274779301769826915145735002348795765232979745957777604006479969307960228079921238231165045798667949515803685513408186002638326487954622390962388393331450135360694661369980612913202628044561121666634109281737320781161382051303826169257221913304959672725841347579780928479324898621365329085246224898028490178104596943026573800578153175746314731570180515248355932820179782002861428994550868782849244715983886317398808805852234207319181443838127381884927679421554314435501412618878662873170235912669800015436416559192781653099152413292221994443211576536738145307676158311748820580234900668830509190191279470224145418673637747738665804408356063917147654751765193841415818411952397532693967493338468768622658845298124495421373643349084518966255291192407156503250179888230196551295863771253516553409270783590946286491103776467816814913071566453719331914070528224801553678693406854313925267641610139938592846687426763101470073724522911236623264071163252967589562579102452968731673029309742512170337486592169271963375383515918180480793734753273813710989799474428473204035891890023729883285029920536546084102564655307196194796550036846973865792793797032373194633431685050891274730034783222096867078336154260566748708135538805949833369667635760893396586036148350147387182589216623089521289942424298172854389794808742372651882674416122455107110634415154464940048244608978979164922138880492521383269205901176240785148585487081258077047021072889369297912069850149886821505928069829775335430930339560358940831228346354295729664682960250113901139549285213635711085173270696279616803248172091288478338533573848814187302663433293183672518085965935504835066283696577476636632959402688092663597657065279858354934952165431675262584554556697342886477666153822584576324631923889600497716425735994850721849344244547904733453020722941278853137513266508191163847251328159635953903101966224436704667532522479313376091716086350915187718043958891103504183493084721816105619964452132787055352672364559906254256562678116006220602225681247285848595008532753147938497385692677819908852622628603164589627348559308593999236643404717925057256293213974897304642856145441935434428115229283145297242091084812811669357176386131157449706671501005341608796441035871149316548037091110690819734500205959174430461011492790435067113003502096503640454781695301632013062617602786997455099993573230525822290794069926693680428792140725016702234223875455101898995925573276126529454985743875823249496852853061323978888971413443385539235034261034591282065022753724638190065239972934008239298716876640800029954565330066577155879682994249193066852512640915732681425442026213613627650582317953294791317593903622508753680232335680798849056365285663346814397531743591235381388693068947872191932295406741869941947800901971193062028770317467735973994219223755570783503176121396217391811952697168234493329096889411366139091289109147748978168223472686178911967407973059915223442891981202726505607677237560431285618620007105014315585544521339114887546674873222081277671533852608364459590942854780911510469121161797911875662477807224762166314931137199295383474998176537659436008976616078828572483115393488106861668860230362081063037843329479430466830411755492702225770319325805936128294193656911407428357006476916308536018208527032611150405786781618610434112341133922245769090979754792326839480458909974632261849947885475849371855545816798710431917178872838193929547130719833701876626356690167853496233708470041516685748647911899224937752198425857788159615596370900908803019738005676266654179517015523611085750078993475506556307945923033711077693324175242363236586518489730905117227773650816869130481462596763352980584538276365812594912297438400582133742168472360315072661559649766375149434992042505818987950599287310445497534820768559983688146995728873337392567763577442726424091899072648071660255334610716574522940431973489328992347045037380249647497563905772057094051890522365975914501380745850545900535595610788070807905725438126936531936638328780469559885731748295330312897271569333772468274129576790438664513734308507140181359097205823857812786391122004606097436205173923611722635026430179465268242430981360346912310413545626367331595440086793890227305838517215370346365296632626022597068079710602145286248968541981295294257206599873575698167242848881806821520507331041878040724901115542404881686597483594326541888554659874067128402137452252913230923417991556951637696878366202770479165858609362783153443754601629177327584430161630782460249728088942258761539870570073138498518448015263152619332053799255298467198288146331681931044492699951877616117236259479416186606471654444938058963096233554449570434322714312712993274885765746476524258648122131496942523929888347099016863818037508181074771750181840872284748722726884637794820458404258181466395312570527555412688180754430955700266484917131432523072623508987406387627896184786450865241484378395603209945128986077092362968184373119701983886249215261356469788937858774564027282192598661880393950473793497133941233235961645100735635298293678935834023253145001176546334581532143843244100084756572942836027551322818739694572172032432787885528991782577994592338556783513577264926977236804316821022351654196838638506504740077013632779744651052959989213454463240281843100251665114629256959541611189574732143320180059068132009459498222833377163211867338745239171500654283785047168173931081471886158713423637513457404328006797527515853305775119026239277640792277803028186317487846319979319792359950348031661413765360919630361228789347152985382787850324601348243468923272267252697710077196990073549550779371345594568088906604026790239563235022366068915990942596851066522692668445338745832356058219549173612531640530199242334239123488200656777037725926279672443879377408238967311592031314036210621481467931092948005528458238285903969721370583030184116326257010613088609908688811408366382541357208009252835352719312380195775755264132340133039845044095627838714499911564610124671181031196956995630253424495515329506102295210385015508380328613472671610224640997214763145168244276529669077163076992935223813753935930249466455043724856805457242998209073580249119147159677303305336966141027486325505057893792699560921998402978973547111595846240244344684049804464149768514797544777067486690768291773721387315954451999156374198225627588313476216102138404610515337897392946492749347739311215262324451715377973851248593379176862634701620297804946394891249497956408170852787527582272516758310433945887378429895571340741076810372370349529333223298973856751522604883692619217843642691826191937508119742789506164297181212116784019880377216941626456479470720846060676633861244537544930879526195470514169954985903895388777332060656858610969241423546453474219256599065385583183161625154632692806299816471270846573468310409361634939215706863991646452758758534587394314863109871207580124443361070427619264067101967385214286707241497867046682193131080550468922543987962679599162819052395696757866867015203953550401361836917807487755702964614702421845047011536236241166567015362684364359176869624066449125944345142149307742880452295847073280650568989897611087215612621248527351846450462379698409898940587597762048524065069298049868117341198703434227392922419206988161734179559722663845501606267447898237715507957706294930363993578528969221679558131120220030608352958233536268237856327117191644748588752320705873095409941270786155827689981412869361962183112190210744810989172341898541219702725388868633075057154952450989125002296631072882562070940048349844794981272678580309859543502329387733782711631480785900810094341999338917832460140649527772872618417923298439710672910855470091523098189832048651914436978859717207845780399183195496061246553306271275761962743771966167708072990047010170882542655330448607323707552931994042196877313975074076502237441611696499901234584270581310944889185279405101006983609900173988993523551406251981521104237639370819031215976573893795667646337975828861856393712506848610298489544135348238302633169932768765582715979561726705262536773430684613686422699316378930962645396724076939132787954151358417204544993521578812341835792575330503115814920062265557393648398492788771934793975550692207658270482077083151814861096667432596656060780911428669258336780932099191445651094094606905881460496840367425392820828566084106781018015118224090390937225943859797640875475018448798795139110987078809676163435518342168357716832806754393292421499328476095783451993778242923121852564190668052236957905958554378254418388082623777914845830811349449410514762781981005533149474312090443600550725580176833861429131447453270271474614180662502788091069235212051042050200778952920989967516303262990674026865859593232652068376271155512192812738950507702695211983872093279485990754541067607028962905026533328855885272108393208450531445256475832227989772192448111273334203607985040997834154166988318739869023042135416034658503934501834728584532719116665005410715990182421939983205477954856072959027803730554970668925972181266481959984076644846741822271894926159329345981940022120869119397525145367609596940268412298404529164123081775049864594866644883838842421652949602118635529444092205775891946953565546605178089236056574811118018949834965985885956691144724678442388778892383560783858974279200339672241233043975819081569646132797074391384190608829979349817883412999232112217664482101376565979021734238285344706409384881788987668404460635928357524017880161353269279910070514330328424586147869132336178436625403098788370427194750757751134223235492680392266595150734028884012913280515605770728239811501725308149332310815345138266930661776098351495406719878780496727030446585655294032077584221667382660544609755333970965998722837076536992624415220855238655515248705826899175877568001348583613338528257890290523913984887592762766967194932836429544706741225246507858893521954713260774721042194915158739052289090115059116327773091118080330192181339684511741895803366097668239258404704758352805375672707256603715071055250899102245098714327932295576846916076848203965109656756464857613648380884992614888266021341630276077416078016393854019344320833356679837077357490949085141497424657205556380317469568727686896899458451440962375040745029587987795945749850144301145218218956775602443236239724767935438445820945710911045303369333123574276487924659649568361221176964578735825063820837498177965467595378349318750200302085300566663575430597046616927841676992796179818033480318515349656762703373143530693806889584147622708963990733262540702495545288201404864909456949545993264783849549419097540204608806440391849560041781266934556833589322966110268113854913047627978165049826887757673908167492974867434528791261500865202598063276628638177962095075674377112094123219384052135009328180714670643921493009891280197925726917563303529065238010791730431659475000091464873790692910321569872434042178473458670892530984081626200093396694436997195022591553584200597286308518673828726152324363028665670571764092349357380546205807506653598087603730750800403451525512064067120877569399776538220500572989504419585668040583498540618327808966703520302738466344722446764566740446450619538903121939950053713554850076694905371917472673269575597683570514961724219006512080855094510252384009787832450690801299790622205513117112896962673862007879613533892871831378348604835696409056007074949893251612033049665069826107959664675383756736521668115604197735156369114360076882591861217865862866817168331630513459019439162026146856503083647626241871724517373219581984850247580347633928867376794996186618922353841406138095839981097743876965364449703938688926510322312332132536159071483532060536214530529500149761394771640259245321613440164863180587557100570348942533142035794821189878764107727294284029170259703709658381906865199885086118834429963126659488088240532548310325952208343143438386723665791860655115037382760002069120089718687379337598553459504993633490530302697669515504006474185007907130201016059956183277796270718964254759517357098843805858916435317887905628000034094831001136069724287449064398763133555399492803282050823562857027681372450620297054836442159604660775858989363525395973691325899680921409394103085348173826013294041346455417010860415570501394704181819755610467255708965270821550743613927543934118931242262819068975463243736867427450591630170426600080294988394845677493794173249076541140120747533850942978949586055339011655243155883743881068590895527689918465736956712342946713125639217348563805739170913063625393365606321129299058056459704493742358370852012990194070322975213501810837331860316622888200613588959427390107257142740155766758162034276126194021634256076074719708391777565964952083101080291274969471284707905914458613793593571659850326058780015028146620323362175867122527908540292820412095044392028973475797709021358989355001334294587335605374521107909737544932134912696969920145768291109271852226469978640957341450143262119191591010001571424276153690043565297142926106362358471516963127648974389018291477781957374608388277416393376997580921510383209617649317333387762000164834247564045303020067664199896629960140045637992198013895743796688521637084442684627590897385776485631913163063500487494160378984233098400128201768947163956727737783517146355885929524679788723717488713266404323710282839733855152184946241619244604262250728053125547874200229983207622605745075556693381441094506175046710710716480741841470536648052208128819096141499813153646904741574051135807625035462298017893539679717049000313123476553583876013432477936336479438038628365691557510725350984697655658024644917940247421538693135691251572720707398359903802564799275384225095368923661899840451268291177897040432897597199477876061986082278113882130829199438902362288458692625853202036749237627017612287298593568705790479143866183419409543648822934882703423634139914029802475082996833813154250431242119320910986807392618659043757925357462900330308646242581786539067689075825801882877679386397649217480233449619359477786162559272273683035596492940127441746045550150726068685094336064563029232452636370784861578913965977580259910772756465791187482447893609535405998928496576991351938824075738548853875038804809542244758028270732929719232053035108842689570705756669542720464877026399499542756942773053663444801821483693446120234304857365540156570981477708337098440169630050211058917421422750859234774812517816976986537883559115269845660442884933358344991211309054076114106477388788948854157175323409919230684765121057202771792533910351737869400879685165771486680759299914870235952624351492605948770065670154477642095357686385622271686680034307337322803167196452643363065037960217778039414771031434674138109727800083573008600857971517901631198170400800135491654564592756172048003124350001383973393744927514369419187827333069414292070875128241364368300721066485462477528194636758400067945804409417900174519068939401204065141069580162376349765900235406857082646074560895731582242806903922359867319122752759618867462436679742280509856331212157171897854184226332795175074677697263124495552493961699169754571649392901893029844810281080766343440510395654798372719813090491395284487630151769702938839021694829732665493532192676300484899628166677688120740080188430807880794776943484455749001383899190281857658425092165514285115994571981786224579452946788822240630431514140968374842247551547259650464432650007065582734978603990168040114912949048119632698338060343682456781725064694061757156974341443608632444634574969906422338598178286945665375168322387205422448140904495313637868430015998817440439514183015542242537515153988187430588490494678880953574132364011249174413961464575175793003600098903163236111796317869292992234214287386685418000159338859378038581258152608185788937225693292822204392219315607486367992254314922529981226884399939041285019444550605642491423437556601157505383072282926290186447972002927433159570168954324470159707457074901065793015525042822736029978638825830753011930297635033849853901609878112823845116780530241960426852268991435756928270057461996597213247084448165337756243446836684132974989144118169332921591679266436462551689666726109032796494626434248743536274685602180059703720124969651255279734000834922738929843515640532389360590411562860388057317547461167671439060569635773418902820100877687625184312813434613768077763687691234380347579029274914509643649052963370317485578300465497205375216909290728956063951139259640302474241523400474778853401211534433961229998115931788580174870167605855801751831325696637530484093662334375570293745202233029769751854495749876082658016767462059276476952934849148747689685980062205502914563937169121153615713682560668546319167688747810036861785817348546941138572389773599735786618668993609686233152824053087807415299368991378515018372434828620237929420557028047779481373035494687775316722948282651970719550379566628018584232028988585021512513568443107625509926355746775104142698715185164369034439112686896752662163795623197736783454848483561369219252999874499127531978767987337514908634948878646070733142674695143903594942643938386490964804778672400978846177006258040468766785848048698542351882408416595689636545424033990065221523293378969835657217942716911295202950045773573441162905922860557164627952109456538796009871906013216606670988662033245154741692940006712732554849054151518147391236350015856797135350619489390575680911553520266332324297585769838970284437222075301809547408228583290358429071798155450078399131024791481510032893909302466719891587228406597950962815006599766639763872752073980856008956301927144705586766119058769806553655000641921056662951504400794234033160156341299944258080359176516412643872725158476422601416090952810975276727056694641045067287650473509080554764555058420598616001357247789190094068214431059999454982876970879221731271127111236888891783509829232398695113576015069681381878369725065677053639068544706341835735221282391883610159117388733408922303463185201254606410796488485148083657931761849151022783418376609515381113077049931764199067001115218387552566958154201087015692179688065464669722783495860325706416790287779588919368895323183658154943912404350499195364668701076329341998340460865776408367644729183131056331573449922582791382916844962223259484782917640395200493644320614507099349119539361096790590270523919070656111063716014498406824042664668119376158664348128646148350956353763996082819561841186509829070896295639731956205708144718150446557893348353939798608763917601381005578324266259005055084823575869947752566540399526235212843673453930722096071682914804486970040076596754313724619847244439039944998801558308787197935885160569102581328942684512526950878592108356476252882074772513755632080724139723816487084132614860048334055164975319204214459938386869572614293954949180070170269822762197243057023469730632320633365102216672856978038110298396750234405193436761570361252553618597120864003730565314922945572428064049027417033452099869480509346882654494405170222133044555897277732153977226258167657918201657029666833769842914276483213423744083768537368926440967647704439209843800477086595870404924651281512904830043110442597495609321125059763119371294112343045418908819886254935183311735333711353925977589995098714050314198513328365096648181986489249415974142124703231872564147858388350178609348796729047969403351242989362657888468683023386684159309579721728249167472557867500330919008950674656235067665714803299061974351265556788879481765243149042388918841287496656209824020082909341317719820995358247197032307527732221453548354566696013010209963384325996325769166872605755916972248462984610805108705756776554423764981876297117329701168748441481736721628180486726036774249882549171504284461612101424370407644146476146872392909480468175093245763493117351952775757763585048551019431516673670264391707830811781655645474282057450833826756575867888754485957980982057577027653921148796909801619948762443254246206598202269247901780085243197785723716734268894016161141654485431013789809898536793957042606474111265249778920488225122478158017483967563085981695637141360497141714035090449029982037598163217252440650032200790635523552675953151590660023307679295099186486332843644628679873076185929973894778160335922995525396139411202843648652523494609609904367716267159559661006992717368470126397789618657538325952892254124343149882087834031018075191193444827059724614746807688748536144093752821392975870378679419527096299753910009619192275876290255446803644769946573494131738350011521200251006394881740793259137958289596275456309675884593056979662311104244077928725383261144927852175798257163411825897388222103153961021221986773323765327719708760155251528603016718494880426347869360354674102005274115506590407877542692668648804043715097670189479312719363890251728535585155004749872001503671014694385404388471909931942047226183777456143182148879618935184503006947414978202178112326183921927529242270414501761997664371529902200794034157545176545430313324430973563342166789732236284880707543523678045800784685221748691535531672337438620121826224263292951559410070347831400007858247055458340626392797275532363510384973737637755659715560882156843822066098006521628419934602917677369832067865740834853337900044029396229070021187606100588492548488440204964668047783294878999458822664529516801709814515716370887777112854479740122616988017197285499904888223496324802256090622036165764594188337794013963288228369351025399184229169569710576399473233833816560091205379373904389502679662701060888995151937438648625348900122820018455011416434677695016988152659724589442306232227325037652437579498171128166439405758845656403624689755227812438540205657137327185864929621775335709330831885458120300996489479894606984762235082126839967410650411409164174568517128557993597423665116812998694405205777880193804387482789217552725304951036021076346184770913490237281471136903770579842974804535822564155450324407581084953631324931330212914308606829062410319861422490768316641728759536671588774854139442444321706731163354637425158761573706376950948564748925070493131326636674832518027322435249796870316467763934764390093950186267990132378247829648496886460276537576741436747327985264458345453568323953864543422194098345808488623373922806841882768744908999735164162679499279102078991806298026125644578263106275772035598207940249357519933462230900059440423876962531044647264600591550057639277218077618549062263219248841495942922989848727041252667610758978498793999637545044583731700597286063979707284924093465789212780458146796299498690798020659297093155842879318698260246704861205018097396792072099935609606676534021223307189140541257947111022295298237766618657078316317053045966569833182900392641458821390004476006050782449376039973505076215702766506259964397263443422900820191895003937863585193143151647575426132031996992042608053273512918283408425690552348533271767123167436612888764801806160371861765829121461221039773797488808363640762097111625443991188453142642850651426203538882279032166079608113408562259646109544859097482654474938946703030736865318200737194650212965658481678911320346234602350028625844720245960584115036837036028258096015840284257572764016747451009230532506924392339856065199833249824131425818908027700320879038303391122975512358152555828925808070777472545846479906349546227899334908475064865997137004565104531222961127206163098272713190924512638436035065238609962683412181382000662740513174490207202018700378780439323586188049250123146106349770142207317803100381055486614032884441054664260200915210399115526316810542843067385050860855642640756576493257790992270012685702251424253469761661684309801564666129371848760880432016708712685022351259708192464411522227832176052216649364592503571285683818589360463008657973920730151080927139027613443809435683734585620434863629333122989876725956826470831128203064783246193455594295940312979650582758148321223285849946730479877738302025703097020357239514556651812450035482147635423134782935114317907190266977700554047093504592429855276503217276551267515292990824950258635819430018086643820629279637513564274197218581412702472360698561365371187900559688753524907422352442134201425743611477657859130205596045664999086468556670797825567027393775404433947331510060652863897500829219358871370378670450107017915741843550150810030325253253064238541652042079431541098441985833354164243557730637266962897398109157548509945379667891397592752036798981651364109860120141815359044531338979416739777173451203979620152921014831501736684301283615431149310706740486533252892360117164404993193263581987345689956959439727307733133111896121327965286620897627196412970924944270973595265041857328719785225520641444110597575022876553022471218670226214153175962995684107337594878716085437089665644618131018619049653522799210879166863118038052905166235209999416255224905034721339296078486055884572343884571524161175254107825389095547231356292987841523415830414544570843528683608970527931934380258565112229890380406169950626304921728768614611963772913656691273455282713349098376332439124277638783563207422045219420607739422418733087843491098274360311187194610746160599801290548405521571682586458969783616565237385764000226671176320569132812032834871717918739087206494399266055033708991386943668349863649443314351155145721884585015782650749767824059581795799459438701114487069989213520169898044109180569338869096144179407967552562754030636305665217236499456772351457202646682087139520856599492885313683627547777181251050757025973584135765474873237252589013510847069925060469879556690960045507008351908668568970122356442993205929698618148649081694777427203370288504963643433409631384416159798023058762928293672288570075569659767878253692612234763106551120662493148769030518321677692984238361955500924863124654125319380596224431974565117462744878964039562777840118399248156644594482310959662912240030300647342354723462108681868802992336764085750032797412579264360835994064200973521061011921375939068907630024459313688370505449434822064125179827830844882405158739813999582592569411638231298653551728021718804736184141295904528842206328037486530132873455115284167810933505971683896080461091678561043091752350718146675789096170959751809860158482216462654378625532950783530929771019746076739107049327363825190750992946148962207603914568128093310859830046594083234369422328661081345618926595551080587558666377993993026929128277119889084307100771667861264994183286564447060601056593560334155809303586724293788568653422753507625610213560893727841336868875886693314190630610551458413200512626964649182480625451568557459408000970325162378901133983643335006576790546433420497845293679737117267689660118896010644816988496054103909115916422820635614767684063825693439815653627331752914487722485551940317530639226683508920365136888431962719351505624117619239148463486117743157730152285506355073076145602518059558991072964986907678265629937821706711564695190902340798820307050320851277442533138033281442204903836373993984089777422622872761059306353344361077319959057004539192784092702218233893726878131463396502892922103338764279865753088060696351679538450277482495638110529264823346090395167103565820920628518877197099443495228664241034017216321224612686434244344091569540222166513993081580681085364632231243607342287148546007669973452993590773905326287019757205467092653182891066773518025569636942528556864249509233928715012425236538669577972451624865088094758567987695413936466262669336536649176721157939249576137376191717386357990484773276446019919339553389026259932784968801168928122670247778870244018060894817571543312818503867908821106049550252179061711852818654154979777388086332155448097486255043901283207393522302909376675873171599967681551025962439472173670120748862411152877750957103496118462855463128406304839528399963670665045132485678420192034979320790859301767553102816089022217727666730494789344184941884136845396882451085877372181935637059357466950594371407255352976113122184851320646925575440050897647426951232213787159660854133020589175163255402062462457593801915057926929321369632251008351336132640411988053311648933749667763508336658613990999031802987495405883689781035310152725776737118832878720914337768316805604098457997288966633215252760356530085102018292278988788137192744437150071742761012788788502910988398526016704877859917471577293266724920447685242767779624375692502915502619598201971289537421569897986837890157746366232835365303268636230493282464028602810626289484786425130069693614640358203885237439548608599853148159913070641973271746723983402565675610125432520456080495950052803840282606836697567628092447282039204576807598883354119585838492047390217869356884449344134116865540709814714850003030938235025827832815131337717876043967364591030523334115206446777296695772417679933430798096698808798458785214881165435333723626998598757113809886373512498175065424090297816425110993052882282487990180427698500178144582815354225367030922990666300244508110161241028274153808597790190924955996896884568644612468315010588869953465013158183118190132026018821307716886379260653406013249050571482485013241599101530721931253699147361513229829057738738545382866342660232731083348915431060423151608799975070424706174410767208646396141638258498570218526356701399951241792166269777206162946802097805766309752003348515283891615278334480226558333597245625829806238852070300070684645158501659172170200164353649809192720102302342483557216385632708984765231279902304143207447544666467120577513514794589115437229425631815741992984521828466872081565644502828101695856988694657511618747634196114623151793530393004739027893377515836868252112858525184765000173373691862963806824540826943354677084540582712466110420489690593069190947216603094378636642806757491985579065082374214402354812183977159585097756256656776330327111095117343768984395117900934522816042342621774494427486784827539327520028421628324336256987769811612297292361155790960919678839474747923103202314049194687720990467788051504451273505806828642083357421884665241401607116604510140857851161220528610346682290315416362928099232097022925360273596019050594853968452327331309761137813443194041842561262913370271575761536200498969646298097557190646447948969944441783661652868283500019611880861733144694709333051872209648972595444447695168743673213686485390960003853675995880928917787188947466685825315041109158474261250563911920095768859461182026112241596631294760796558044298373223641120443089459411300080801364752334518732685949689906564610269617318034773219344987296706349652382861950624104463274277348148799736029813207125203039186490015252941352053575364642772735818117398647349009398800645792006197413101937969041484606180105647991531788804029844889341035559746388708628921198696876360584572639036323037484377713187921114803218354955017019887200939994865927340611569275346240035941926882739878258450116143940871840975936197044835826470712161639061412201581359818921246076814004836094935530883667133556072137944622858593585627564975339117826615497149032654926181721443696818792278375427611921426596159913893223067902713692773318365745692995310822867274236513594086075883880687344035633113308785249319088030193452673967217114120847014811367076736108429938588168291695051138365793249915852176256152352383459466968843224716400884463157848280257295939347317900501377952240434525754336885405563931994913350427261012876579478308930330529466730486899776280157366463933048840835593839916530884299670634606771241304951202984704553385959932012896746753721514496121812441814278963852702941912836767342709975028418198491399061857969643043179555317561568161811821443759572221500944161653913018200337020314327277588539767250376153958790196192668702420811780840223826116087934738749929157160483354241248677381334881566813151079921506240455799144646327600713688365102851260883847862165563746303546220632247955740063285091635147321285878093119555293033895386913920788742267611560293236005902332243652416651430382844997684047165736991173270967050449198879262237580505734302149900994910464293193914829152672486944754328571614313578646486895176925597342154060215431120627311282076140887068210228615261584659465317309641100977343502047225004600348266281763869338858406838911955196107713604150920274252404971455070372771265164532797173005036279681274825412588824399781368953430976649837702583730430475339586455947617505166607061902939976792295911593646413443135310963693087674930653600356537043190684261514152647222968388766825129406222733510275932740536036694402421848961763481603238637268790042799084805266361425638817143640419125635912582470820104717390638234717129787600697714867379812492353303991960502263751162216082491078016623169488035025305387449669264624621320075874086999754162883256198644085543990674327463389229307027643679449606527884975200816513803923259185888450630786070106429918833615443553745226363226589547196274489789050035313760160357676017233642685404134810523305929336556576945447202117102185402204328147284188917340382602501385424117118656825723837770770400749810219493190011104748520145266310238633063473708258880920876758429816924237848701992964962031654334300304362059157466112319666748453924413202882656387992417969876045307081091770316510238811067509467288824114144448054025414077219903844156191830054146018170914939331173989813833431441014877880051006539041325231517441044309796256981047283345685690458456122163836143415366192421937811993532297197819357538846305372300035470142410187895736137144182959639289370377249119039793125467843593801856222003554735058421091297962812382115521305365434490562486844483411796617597219108330892793222545998326153662777825752422408187527655202242596168255936393681215815829345046785573911673253304755104337469729394512410729863395502908631560759772534941121927061710310075819610721399844877261202068322083890536946742115778428227683526869042990165121175445630497380691979299120499402071734435930356165049104509467640788035976635571067183126895718035140748851215060264174246349092048641679041982086704747214485491632688931050006453143397643409086127722392406466592899206102537163795162869134631222064658601240640558058475614478817378807738367597264855290004758487469909627925056615694896423986726977547526800943614585967741886723496784255170492498703864058642992883252986442297821112786671045306572237301687861787312938365979417496579978587376005648841720083691152095023128269080421332067582098470454424336055227116607551961526565357589862457898180724946152766188128735968735789000335254601899478564258689005906239017632983703252275502943616405359727144671625478999704181985886402729591154318698639891838581328355107497052984244643413634385559732381564231517325461854529596470118283130516493715657907704318784881836911724924997466191053376768358413727593790438095268409261443028660526089433561412994208945066636324688073451389302775079844080195380468545521272435551173303594377690899634329047521357404856324499181456428864651109999824818666775302549963668823892876411539937022505061693385291740341589192139366258870249641064339219373528398956360681395232104577017328529141804015192726088848450885258234992342281780527902123758855094471579532826688283196445473230586123432313880528187150153399512047288687077460678241916048500854514703841424324240802513345675315766474640398004350049254185522509301933833613960784302751808225465833848642674464304640210486665902761893776912859406142375486189953585227407617192740749475852456152721126851451119662551764420730493211955588372079607419134226710584054886287204952609748610706065698863482477262994631343326080728680699442356478439853110272543248016613350574096223127289713679125068965887324218246404881407341139881588902446360241184264191976214420313202396118320756040041798431018173006768429684334219415844460655382623149730046616123310627597767748935839476631719224724444913169777492280445509874115397565974609145189744941523448556033161185464920340048470651456477844642669964533504136374456614843978172906870727111781780531891240574143446999793682649455049743090108651611534812556389095138616304825245678396908343331730163651153017664763019602839783667421098057105542313152580548925614241838062496820374506100698361107074617887481755292130499699501317090508340807700507163129989009250107938670654587879926850490291789114761363085241329098730906254932167692032751280622660520878804591014843639081173815995956971222567459135797844565436626295694619298733402827337682696958896130768823111110651287850335048213763374907297967507361516005986689118176082370238977746388114483959687843206220751149534694535239783956269973119449785271242116980151723138781136381382609007479298621685434980916838634162401934314419745581417973518423633736820616301539620619669897123512025200893652872117865748445609538376865519343009116774308392124887720573987937545334776427760135821215194797030748646755491169844695217614191713470175634440803014578589044517209608687891728625280423261034190286635000843393596066682592209252697507443802979793547507783016065540458067246704689612979122501228412679111998696278317568505544034977936994951195400610723720387317267521650265690326775328294908207680963890224567188510867526893382431691386893162152439230677050411082290621788732544756597986140476460153481842483869909754159692575315542524449264410281635711234984142609071963405008794953814558985228583640444955870167461961679965603683850693807444291906163757060336810009424630255688955724810422811286828817022279777827445586279715130310012376925690064418142233922046474465098032223302509008160995285380221483716252706373447096402434515408224996990483602918448354011599811263897076182565299731114308784626659752324519072093314938545897375180486931297210809786376699424505061539530146707804927094270406503692433306498630445463006104109949150990890884263292822653750778171792087785880323529544983193611018379661337680263696951076049448728601804977415720170268374591068279786087467601681822254763423115562512625000334527584751848770114156819282308058139802277754077227068393156330577654433272191239831784355155642384832729233423675903794205271928412495097109455573187630600948054025445377248825270375189938825517577656504501417413207045985568296026956331558155303740389211091324391989682176858447167963710546570429130973501205033975703026968541393244436450176722296155360573499604921371089493831816596434046186525521438282839909214160131203561229469381402136462698154171205912625248978202442619270165595409561127209391967376695132369063214158232349137973702669519619674413738986468550507903457106603077886386597243372397181745905711714562095269482083917302402211613485931303241482671639766080857436806037478347707634672929528887725309320203123126267433315827799167382170517004228719910745534361740875621562023346827803757482115506403274262946600903755051936150477499570880611840120998312931381544533837895063671730647381072832573948588657739554573449196216353635500739197827640245532398228510957911342139795129479492472795712803416928402004623759739508551087131719294005174551170288534224303899218812887080952373323940664576844504558528855142182756507511123263372515511641924290806888780702090631941993634276756527971965679951615443932364303214127291934557100568030249162276165213531844887292351460201325560638569808890955057551271368097181667281839869327682715793216396793928577899464896133412553035102401310208361641332498647299359741733243745257013016819537654689025210910490843390772861481355596253391976504687192860550672386625147319146730044928648588613694834277236838718937713823849366649544623435052856223332393709108370611069752608403688898890023554753360564724577770723238585772961891138603469709299672783621979214747144276560034469540732969386803903908622502498635884042926344480581230030476588938966846211465662288631129358876100428664252559121201253626665695689175390822632066895155387085611501897199841179300910408064916765596364787331324433179583287756621270380120599234707591126077552854574050964762263794119849688685736384410444791583529103284420726328305986561383497932992760139889601391218178509489632208615334764228286252414268935198874938304366908748246032446096920851794494474772095587902947800943770141068075384903094329417668814068256443127851881033161811309514648212422864471391601928809281134542939469751505318905002108437050654448300384115218947859807290439480686469797092291737361384029611113117278924213956696001170238549407446371966682731263660759402940949192694115639277907978720411049255665272212933644170702325077258407699553320968243784702786602706572515255274777842997939293918225096322208738390890860253432154625234738439553156588398162356869181104277252997808847269060017637335307901385121827328948339195624853585393675820071425130491224498877996119879170335818955536292967023306514998182626172238629114418760818095153581268289680111946143767845760102939780577430137464972847001915144071621316353078081712996108340929172127943455351694364578065755686959813737094842035204062151379615157752778690980707183527103606658149465079227761003673582252109052281845544447053384574758070583475610238461651625604114772186006386674062727205133535635464909218327188850969043755488282268983802961163410028133563690834555701468737138299647088900265886255756147845681412265443314620715404887423705875217550936154008303794533663309305900005129052092170465410917635194207532812501902559051889071362635758278324227027208613594687598173467734546501498514401903817984308629889993359559534032418797747669802773154243312177106095925333905254627342077584470603670969660114539361576543035767795429377364411283418768073293103153619890506996738667001929609707889890889677926300656574278983346825723318506905989840326111898781122547783082992606288733249796729621152292699870939497638887089590131330516758881656445977680805734142307206993869284104840349714878507773628641813881370552315359388370571266745950099682876787811437902294509263219384179083920518690563710164461362337488834882809244143307328999049192196261724018185891913850443572025259542165525670363599438857234061466306983273483861499866253242774132760350880851126100770255481192230033340070294879416828655999821373056374936851997372882002867492580747724706939232076188196515707172150845834591873376743174690424523673053974570747118619111529036287963361526432400741479113443536895990497226556992197461812461482495832167289984266394569476014980488953952611622808204106605193042216511609405577696487133104050834087523640588203639057104316120508946417255923690080442930790556908860177214805312915955126846537849417086433200852775342585089114343856798143544844833118296200375474941096991423291841464785516501367263301048285487628795815048463754503393053805817853066521105401359982951549886421605568230217365597299655026009292854163395464394399113267786533428972237815008973445749708226783228329635905052790750290441485082772613698616071196310856941357317014747484714777345887372927836986403115331632679082059145772324844381489441703263042790493987325819336476375795432627544540951887146400548139391517925204229624938587832661599825057284690038460499070337447287003651591341472997091501410570814811822469933903509280857048623637141437143694186642617411363745796531607078106635414513385851868710767830784088246640241756572032618728641002236031136698070267640957863330087630432999935000303090479840885595618818630464532569150838271877473364780237236463406483638680120567834232750583503042110790931702846763806080239800055852670208819041011596713453701317842760050338763348926592831046269176698110820521265460314649833309507247120314803450079130335150148360061732090432195064187306793987801484444716435738710664012759814735730415955104677215939072841405490377600998830282945907069901701857994639808859997488677118705368792105549524600167031971593946885935663245449351083681136534566845446807632584046321177996875591254054969191049205152004956905031796292104893984558540049020296634869788401332086938860800115746258244785934371598089652825780162910822421131374050585593181522593529755007365666161743759344206678172248913230242867669197388491668455542888077037871421627275942510685218381793574041998661260794519224786804723773340671944130904526679725022277937956241264894289451793907772632936861428865873547701551113890885675595992505001772620486502721235872352424418928782257519461140486960019778055033596689016368146011710776019775787175470451195526565778211125346132754243693915647457619532538377117634887174997025953219941805399776210243103553021368607241862387294766565814131507373624051083268491039021919223562166541111732020133346243415162874988209901699149426003155441217697507271750526783519572108526863094267067254633149939165355272079362852987737984274897613580748786865121691101697050294520358709765101933513525547938776370387235712651859573399551878330055211063867424635317201931426244944224756696017114161611640582964408671277712670681807127068874477692485432912693234920703475079936785834738276166086648206212967219036556015663350675786194304836408968572017391242946590026199597389092299242382276475013831753717743182418245072688951842089547920061377534732021511917685951886680951319557362444381839346947697837361810147555756791696698520245449555610362737190480189848653980055904758816744577827285059363057700915119001374665201850384537884940053893313583057047296388012712877989231643748892381193320691779007424138306896630263477831882405206991393259991578273164592591665518862965156540320478160382361404154747541486096870281418262121856094688297356261396218822216384727752002438041125151861478250046641477939604221658003660742078426862187253183457178396382273691463590824422966646449553334282142234132467796871369272399068651444301697806117142148451984879875760116675469326916578797101272077882243744659378359541875029986702543848244116312468344553656566688438757223972453666545507364020690885505412664122456433963440225826899061872994110982653925047472723345386365031560571568654708071137919171099474138676444189760820073757483568803558828490061443203779551961844133943568115269500939527414197881994698507169620059069974546271364238757171825604695341532810912190970217371167579874013229595718282844653410569525563963963971249490687334958706990958745508924519811509789946201156737815958942677217766918148178836209243521935385818056833024786252847388565403282708488651623314960771886306548140970374500495150919548682769659763236005984376052439403791761561172752928698006421423634019487781512944693618957351210560289939847535451786836153300145478902595896476595090902817907431771775053415044680523622889132802995505211858181926897869977533966936456816517642764650126860116665638970522483130884073555984013828667738067415649464874518374552852991204459636257905042572892792992873347980528758540349904753957545248613079889049796284164443659945039649414061455639144897074711546692966121857013749674050257026531834086569849253048387328728259122423953308249344229544644878237823816237630190297837072144050023697595419902709759380744682863189077848023132211090030085805191967159977495874996957756375468674165187193212710943362674619675869797313035928947564829862448032847080229076244495877852451655150692339680763898416946837313177846050561010237201138765579076135394269428909582089355078983637696509242918433792833585203946635541601338894967663819203738977327069644520070127066810187264031915802398188569341843259117318121613550952274816783232943698239422750417838936015755333066399578059268780101370462184808014084236033173221998330384604106819098675515562245590937354945535162039103710912743339365895498827477605773857573873520275935942854281915272659809360972069569694012811855688990398328705987607043743805525208709823518957273568935233487074071152075742172615050419758340193551957563777775248758853149150445765011902027635454920302996798675865465129035433191684752244753869036264446081344403540093916926178167187812750409558037425605387895857731990946144355660181376793478654812352853677134641501351486865584457564862502403116411975224559196117334473824226654730407772619162983902772617731314940807915147377205332543060587369149019881201228533532568109107021694096237679767675166736573506528366606199378114075777287392324970020278785377278136429503682395310614963061424484616605976566969509255384653274916812385778588493136640981851780330926400887809246890702098723200253502784712521181867090808145214440792197605410201668756602339890842466587924631186981388259586515277228854117664891976251307877327851876256802583932119742649277491846738211278670859262801576529316863475167907468914268699845210375382096816105473732947420154607835534799446719204585474019413631281033916274977203217585740073839375894741321511378000939387540874947954488734445693554594299338731727653020537249592119025785367771492584886475323999105329849698582476687072019175003839369897632326570881466976230018926037716941703846010240413388688796792117980823422909789983286735578769034524410281025103184043870546618375688127139959012706659788091764339079812050920317438764437915124045534745873921130350552578452373882164051615863790510310571354414385120930497172549996807837516529231048223985369004785573698085950398333076570080435942876092183205120507262028631465946395813458165757796845813511096404554158226260632047542110382396287410265815881350243741776191511093624925423723607719739409761525799398594488003270004447808309834799775231528357237054807008447679763261667300463534558152832907890282045628942688144795330532811612934839101937680040785892180798039637684848542375423287269440790496942735348880848512789928448317122036567746349753728628069330734001160079083503713683704295857909237513614081558122847001660830060239051418388728249042103063856694580987645306333935645011981880060140548200519176822783885224121145189266069259720873429392273842721234304060291035979571131886204545297477006418368138717680689920839074125682704915455638822117177016119951329132388788788178074820318433066601327583036934670928941522781598387862987094883883637260185537221063942703248273846866219097658641960267512486325506212724963270464987083657406946052738393429669923055180337258766596457099040848158461060864284728218631601186258552744558131792354766630576359715849326939443571083714128981278589999386192157752487533632258941543201628234636826836025038380626318989012430027349775195418703179620883115155117642103307749516627594805408582015754924074638118573236282149255167368417592358726228638739852137260261981167406795547423238886158602897526758723337564738722345577142247987694319399490387069688805097962563528249675461420895365844265117393655747479397513227198653898789137600347390292640916958440126170083037616423594044030716502766383869451470986424013057913366698086766912256853789165239079764178193400844923324839844974268926129261044562772497774282848846808166687301132551608979130366027714216365203363777133521285827756587821515840456639257032818226512145904098736301699709957284005033708184696530836280030621765618980949195926232998195266026829985636340712246282277688392932866887222740439873500851676409778477936866941305403106702885357096737863021618483745639487948409527673905644789101519259346646341660665855962972107716379107368920375135944952474294285435218277839392674266004494612276878521196481222868507896227799448973430769444924044576496819903618880176374385557314243162577775387195739213034027393871278476427270109586885223953899646561941975474366237445114521560416794975330019726039180657369666047395984999051194480504686836872716432197476475756502510393255806671960578384765364660971038176391043381622083490715628689285157934917261364409399796210304886835411794451239975027463275880717081915710692522303192571558978715801917421589143447518468662345128148382895967304931105919402408870650893912310474029086424505131337942671428233549955263992649767935666079783118443422082120583398331236746597330068008378785852896641492282634842904748577349311960542188685956214451678216065692684292588473264507633035151255821105074722765115425297624325236106481478595743141127994363703637967061421513734675990525675612347321300160503519487183845026014301921422334794255851580631157590202403250301279712654210739645239456219137056027291914957161696971074861938326131330565469771578118012484481836911461717126239353231753965205495088455560500503470590956466894336282676118359449674369385536971690390222845367381386344326533912456038265929365072485517929519397949295726149201406677346447805199673623009806641606972622244827369664138696316623826019507995427074664662511615080503252795898758145095347820493312348132049423507277561792220348645870461716939499836186390208399070616965503251638203720340006089275312089420178211891916911021836463632695941222709647562660107611790192365587856985516675557352025344980128498906648893331658076973483973912494717724964065399411463201002086316541308666335398705354017994911780176714367417311853498455117149968704818894092999809619805382130591864024791198921877405739652084183702451383629943592732210446194578320535611058685092510407479051008972999753102321744783794554193240966463826209160947250832029789974059819845064287088074863632971674163827253233861938384464222626018736683328096628582620009661170498240601350928549242727587521471648647903266904965163050292065535173542555998887555661581586417564131115482038920043224194440680969689812567996283017370129677072377237018288331318640993680358295878657045624730356165095613738841279979937271946800920744016936973721489426520180276902755723891409827879598533697527483252573827711154890583696953538444035583970477868600854848015166110919696089542406772156605882923497653878459304166965308384061705253232102472447129907751919048275090644528518271308596970623008097075594812271552657091351411716777578858894881551945990495082277197931413029862081422957577413801069910126891039520717139740338284321288402169691657331290254196767855064415406365589670088914045796575629218319745166543818221186495580940055041225133367206962354993748083542349591952232973296683229848255908883852615356653997853498552936510676663508363813674819405669084177024634623346722011713118628277067702452462394757700073908206075074223757767652623961920126094203066209570296724787126622880828269703161770946069892254258848430960180847343043186205006126271192743795116063223668294879296149585755627018919215752143104323416754621271798489742742925779071270971010796312526019083848791476926040841842446835176451043232085652904338250909267975898313284487799551244500984354754852598241386970966174934549207599288603944296735247518062075993961684146895017498281317175249228203635328999386556619304485395071983540560169157639357601739958731126037196503223066285236992762367376182750682133738477610446155693932738564691998693975625329730292853885159496382102816191505998492530954468596988362818593226546182620885692411797234485281430043638009865477960908367191234642962852812689524442456745228431288568285731159787990453677015954563358726711364355602247197372523326169793924712378784338017900410252845358492321076167814053295852670468959113583671837718351398887615814489299989872922809447633986729464804317531932157870148864193272333105235588846354389567720166509147775541352451384113165382295770468061695523497500352308464225765298714267154223689560446951588876948616760986914927855296166818935565123859278928069090623245485397729306830635948524257228995744299272218778416474991959771737531754883838698464699731498848299330490896215053165042894754443656946166638938770206974922678975148670380636790341177412230330878259397175038376216660735030966964343369299345669315367742365501547968253564890967623795211202040464227000076028269470011676766314424698744333494560256373670750428339285545047372821781388642410586957266550635788612209050032714126950767039831613913348224002304042575317740151565468772220614050489134194387636895464965831576542681355977480690156354137872303467859484492367439692700310392920404405388810086719837877706902908287822417057961755202336102189592091329049294485025718237560537123163879740492815504855858278527094758970475769130430882289306061145455652841762639772935611942801539873935259461217115539179838216709636723686309641992216807212970832365783069238146590988903028712667995121220660692537119195097462280643537374902773259462084634156146707276023164262014204482696386026078274339648866370054956670121777659046895545516623148732499075869751782829522648985243036641602350438012142616446817543873396648759132522976781273652361806952353705763702635380088871783526241188329819870627991911760571757205268197728973872777328773964520614725817507906163653412466652387944403520621245348034040398985996696046362068866932238718265917933064656547156153683206853289351035271735119714561285127623320016051515952339019843374960474760686166717664471808593708948994432420867918625384476108807477600670119371467422094333328533378133862161212414598467575187863848911123239337463712339531850318172172446741867252511057477922510939236748333165235007773241987304723977942996653913420354695476691816602945741446654348975144151966348767033006075225185036348998754284662255248032223024922983893645712325062965859575879417758696576424300107095450579282664749371979546427460043264079303623106010101216255110467238434038264719731109267238452753790098570762969920986905805319965826095404094357852864085014789314861512253628765837796892751101830669440051337145193938771793181980882831691238188662767327019761187324559358295223850224456648617199697467801602742695425820218290957240974017372059548664684620459816359459572312076702522899594910810221772112254034495571800122203881744126016821162533622757299878442347583105763332192552995548610645264906330843553530929040183397476982792687322378920457816768471458180014828625772798849767841536767680744201429411385917847860495321452885891336624391834845232466944323850415071320018941090305915407384160237541229613276108376703826001961842535340487091195273628556925053316348944221419179806526823337530611434125639335890298412654127747093451487424074641850201176992438656624208717112089681275298043735180888926134914791950408985039466750890900389851279717048693872774057619161149205525886312493999420111110759806510962149700763379641005126944748195297658019118189919589100494361196766998540063212781725471244886737131585649983768037162816153888996584881707734944744450406476258462190650039458929096869126178065586792713463988775870453179497937269576430274752397921188761575234983383762525715587450611377156246028222652169646335397060206902724917354309273392941927403831012398647626839992087663649575788172358704128548221504451787677315234647517990057561865233621052894405216763549989457334474929340118248131599903065118636351762559712532158607251740033335421209331450160571906571023564383961363115736844211060454110787162846939597785130939650457286051143597951438645101545801797281376388896172372241746009413863530670386401873028974945553976319472178458441182896756390658469804458041844551616018809400633974400052578416005627320795877162526332879304921098158403324588367040431205887569674960712679522986286053330010933189573711240086846078248094884049592567561749360094106211375391780127118827810383860409620913414086617634408374386086582785803854958339392780355218731752002674620946567649419868354798715198429581888181121056807128301925411568702430714788425951683139371153377314406395333698456656812956643188524063255723085223349712605623198767812444849510314753495817052444897762875402191892794858052502066096854905963106019715646890845886031952017805063632973234262217627607559947885272969450512278938326273896266872442015021073881912972370117102772235058540514405997320292983088766018223301139772985740053225429034265949166038784816275371656174673812740619256779913254368709335150017251771517713164399630356520456958828728562207393632741951178926698726575585864819073703227032564023196513562424622521130466853854724941384512657552126721660052111801922559540738050280276116592986483978370808355255528405553046210634023886529251907405492942999461553731270743942875214376177407375697467976211621347813948775563411605474221901804224702813773989795152569443974291611383348901656257876687565052486099147282636856798592032291857002935932539726026624400430914294609542708551860556309555350149144381545255450308722332282095843627888689384082716390803600428736205766420137359231170003113397796830197826915509435195846824324959498772935101159535615958159101665377221268384986850654282112687477454629960327124263055943660391083036715900022603463752484979279943238370504697483717930968133026022299639930475741178454089169066361857782025459884282276550091617700317472032544233334546337113304811826868083611045867373368691578926205868935901019591042750828737195808548721719451885000380398600138948885313954543142728499721542306068859213806633478742205639926564390639673940235858315764557286813556875552195840793240282189757392270366205790989787442036914435576508819030629048568489793337125252320491354822539009865856251233033058202197098419998853547280900283437608150611898531606042386071545738195235630904717220806906616768870837278389854548567254363717468241752612119664476154954713832035814104272953679495322083636804722888171248817738569870524609882807319893763319044048040162717072878253106810807295576248183115010365929963584943271054427904938215284705097453902780541149052593246898571375582531215884377824726370330686475939690861782809302745692426465281560769221201243976072152703972926551450834071516975876835074551261626178220605981442598476836816680172013556255044492188407186683360903084226758477923828173621584442554766782268724112278833910675116180302155299953250902673619357368801193152743244725849931691057010384950960166655437310134645991313608756515694543648475840618893992114350614507485000331560233625788244029681156922423468194814222814355183993107743449766363773193568786055131322274485613259315398666214299821572723293373746151646205528492131084780198907875916770874393867017027473670809362540611637727101075295272288244386251911430745791366356168040549554303731137569681849749016377422642036263861743243934777257102265193799211218332970610053384332876821787240141267062663806250083426739572719127429085822196782815411971809647147763355293819717995986171981822988733772181397742885305055043427374412657931661760927075279555121784067391295439407971171612138831641948708749782363467958675779982435667829051814702095453441771810280348189654374240409831054776404777549711422626146877857020601995813159279030595936123110511102730109785564222267584081752098333001453266769498006837525716930542919165008369753816765999151145405383407366073358546833564686977189136737464955601782151574729693296829570253501005069169190211071657582685634808086911237115467274681156549819344930889190158006814379220193443888701881130260481922768387100079921285712800717942708908043268866969857616188669775028261032548715744817255783137242756099154896969478925808748812737895136775241353562972994294354301015002954122002434790177634936554630581267125573099544079078196627832946392074281586288204287008726815985827013410037864746133054497065388593853870581567409824583994289194734682507574667990997969151846948344823319015749416573775053051029522237031534095443245005105295659052691189482837853315314971114441318912782812480053541681469924904965127412410931663465688657842530177185460317579393331476124457921016595989673588228051215289865035957070300984070136115786086629725330597753116567919038000590031922972730197938388613398800041382649549281786960878193140885487765046935871695826950987123616729152761201379863824746590379071575709042927956450863608809371519668377811916096809232543225121793910204390004102224459734972582613965456316273667916578187429351480106825725280931807898269792556531358676807948908297591298790964733312057098569569767451714867331850776485530822278529827032450782892658081355398649830134762522585680945586354860730500757808723641018729201448258375853659291685423466661480690489716820667535424429917145415025145487445476733550515670133438960025800936759256211474122987727943522287014684494641294931723803820462240919372392691554694935047376700692948150029866233997071754092474245341690346120578535423150247975672146064445519511471521237126246569230160851835426372422178040793345873837626972320121890633745315781748321990164573912485039755058683264191437565070417537577926873341597512892348939248613527153375507088347431488842790296831950658859627626632800789131389327413999311061416068100532179151454850524400360316752525345796563393031023241902001187780432556060716140990639721016658988728437351464742382580472218095130027546652476377882238475381250326412733445895850880216117532450110188470838813153787723173618302197363268507430341995506323066157392853992057010176501633173824227496693306644751709180244016194038922272357986127167378405225183320110003726468619858405372079896186294929159025781408576410906767686459426100629323305022917755120452871713397410625199632454648041458134246159586668012651984828887739213636565938932398364162643693326610476691397895469233327757530897437408644635390982757914625093648589417748144130872097553209479199083931819869956779481959021399283952554917705768474010114761762660609028749955980388283164143708469806040598873116052994175841175544217737119350370508425800941445788906611892893164746153684491855951730282670573529837493004523101035862721925783493682661660971602637367783308640736746020447090971946642898739497265835678172772997822629951635400908157276296843960845461225960216323104413768594601561303229656446291002219509778979329714782626375719593705131786929385254613676466803229491801177784288885962932812613805847046979932770222389695642089234577822915680309380970120154009874968225472700041136587612589070206521825809885323606176239673308625900001516438912197379912716427946993497982563500167317185112857199133063214682487857468346361602267740040200136333913445029910206042061684916136958592155725973004243757109604025065227888574052482647293443010099188777311727058470264641388878075911669833902517771064576642629171742443824370366779155973643949149000507468745059675477938561536508133183001041823399103647265461879576956722871363449346540373774788256922883974218559021768307975678827813062485256053565398626426000635917240012042123331233017760369796255118152864213184379095563790183305236727560159137408988020046343591448295713155384815673164596131911081700377523492222300203870529610232479757678705966359827700912950165573968559808483804984706783862110087583101022712115041645575535614561627589775263727993179389037473954409505124036878205966237157318916870529527648833664222431873468271911468496594185915112316170718857810410492916694800080254889344392422075670344929362908827157666298219913884179107715923465596407877973536365855190884640702218914291992569793490461637594722317493746146531485251937503413748148711041566824539048803823746340118447341764135997482894911616035287848296131405361502160115713854490932950056760882127456728379079879196560679822115394463485380303319281576735510190088861278098068760569193801551907432631525717935796868552739224137245848092651826163444141809996930526499220175585780841499093118675796084463363005186036179675220119299731623339140710305921445414958574977988456919390674594431565394260994638875729454936270925909020145474832486202355664741118242436045525370395299266565709653815391293504625031019911376065762065730349681795425457733396128308519810618406786706937925518469721368287337327080134759196525963357052080289821896723583821476730278150271786033333086923808060860201621891583194686337692647924249963471967390542976985778756477185695794578231859735520517261258173545506498924477787959672606546526790652372366417490876372704762579448392513569094201678927315707284387829848979621583506525010209964139913843193144610197461366048200299335146339299398722580153797579257459632057478291670715835409545905335073087014592855508532824506616644112010004628142084132907719142798170999552388524231397021457883780255539003306934287580148090598339966885278735762911718717881505392765971144593142688031064534644110074776318671447331028114605064443864496941515543058725657630170194696466375297998173575005033431003839806589064584203336985002674652862291750367988041009373621099066987218309770008409645602728427905459775034302924312506020381834032009336225778054927228529932962128516613383256460611952187244503216943981086625588701515957670247459322382966385336927139958665093684917578278182291081209636927515457866690809483993777943936426574226344757151819718432734954577200842641949071171301447547649593170548546093468552090356799852974070681870360694152284442916143435863979175494173149015531139331146480231483116054599953848591258436419931114012790026733207256641545461483370295147764649488089972850878293753129362353006613096093487626780347158825422015090581758484212656168203057809363043618812960059877451014728319445499901037133224219085298146790010971124868474060430251826068894254825810519774350679203888911536610076048196981236215426229920644847013219639578085786487969565075317875189565323175387365606805709140998955337656377311893694743277391392129143348170279992343633143708521044198258999025664068694149567015202905349233061155725005399173226917769130291878130703838908338222250826378483660701044331832695065906434434308322718166389066731813130144809827617139918162623655908407295549642982172285319019280347400258367104492365571969635894712699223199655932337550988680112887371898203775849583990992538456142051847877508746831059238098304881470946346122993356679421946239547169075796274049496925395535067270790856430127536338457243960350309155166191925862314992613752806380112622966107505121642461596388271961831302023232953876309076923002834575946540961673087797545748243350109990269420153967745571729582296510386808012261326307177187655347893947732143718662205691512137021557847099312175214825662874430039732833584032657071713032499983304792403083733224774332688320999296766435848428121040966474692970884230055421564777803872380472372268961338647670764462134669535780840149670934248771324251185043039222662827341528329758595996755589957202536332436893629479263224395286135657777143556592872766059448923244912173467115842236275922976749706427187614815951166956015239456508496898587356245990168179337130455657008944676224522943995626818108574964960304371911891467794238234520522998017163908195085984661223123312656058803436167929818094881353351281139709045683953230797943900991234966389549942769968816200977118048018024066699049646052055906157323252403487976508040304321591197276926268822980673103543922998525799346484636991509272453101122846858957021006303463118673397297133268420470239978398626446641518908256731670161729396211199593985720322491615051633837639336207724276804306658353157349481773530357834421674012381805947723774781892391564233923962559015387097139520693868084854813471147153904678848543132193899500580380057195212317442520770155758165507800101734516751493165400298799058355258862194122888470052216858030444313942443657602704968543292606170629861498117798267222667790552082576966983562452639352296200486029871445442636676698549703665762090188942672261665932975759374823587685197929412299720964018438310191685852840921268783120737656248837051505838935601133630073607191366686080659245068504057727968086409441061316078033931074164580314707901002228166021737392908499037658580873473014943144540704903483456266255733095386211306283278535455200083632128382664343990589041752245561534331680815187057175857990589014478841576660083475858026890081095929125591999815398028667762352606067260357707298712431982542479555209376621354717228151305704367913003488460575605624096900271288146459581800888715639619739355221626356322055568232580743293985225071543658538350649088019445937613478449493919132126852089042791614997238576985126693605999316370814163713086594274401069198967284168765016023636958139028253406895701600564526196077605104365772928723870492779952727106288998825606928495737501162326408382359807793518293469876023997257138973849383997571934552102550024781752800887046900679498115172366228562391556212395879834594818799485909886618589953219754434162150710204658855772802549857684030893098422127191823994029179057036712261640818070901816420394983717906238014178128132118516345277031763962013035764381686341970019255619975418453072872751493493502350102753264036599644153216013227846256624395639226227899476389927564920794391298235749259631640593472595355237369069640541124285960141256362432767308180094183290243459303676813786061529139421559201946565771924777189838647208104591583514126762595630284815456926075204550548823871912820838364719605037706655870643311571408379926949102270182831867052963145488923713278176841233158081039224697604708647869846297637221828571590556470318977994385298250520361317879103632115914121880144407449237586794713005760984194927530042740558136830031209224171443745673961631542132323182354397158014250782490712739356464473037781730198208639064131193585018933476837469108545300610315006646977998670491455947649996933845513442930863704732499697451154393777516098456367752879557546459730148076584125421557994581013458431475072958235226036389595998446485278462974043025846953630842089375350876572824936279287138554548647046066625159534388796227375168611494321531761260038237240386415451507259592634560427748436232737140777824134323381678752565839923949083711434013028791884822721908051368516136590188658671412808884499096046787329707749100958213470062744401072985225027407165717710525841910922560896040750165279523492419207417825902213486764327472319017421678032433751455475268804429845009325923891569588309976134968166189301676390447113172385613687859204916921327888711568330764322392405097393683379093797744708228142141242271075372958862324937335742056600166386206153779517973097214217020073948065923082871614113299068838977321509010811541939190154797688373704696122372875095860320371092382191275161228747626286791012905633810711047369537232512305709157816482841635692737135536261585013678388599766014965790540517542895516229368134813066397990996013440931804614602530888656174202557872958003041116362277711599078304282914027806220969940932771306843816644092544485959670944823880754570694719259046402288689210585207381724864153066846766936833001103977551436550255169108826158256844336614625808926098558941946897852159395548401008583684130563227319488456215457464262818887824437553003418107158659815224351500629229442742684344212227715899024570972027260624149493653786481665842510328406143250849404577795396324528884756134119139302583366262686707568205555786409676181469632143066324591827573280013155454088378173598581815987537341170533504158839456272717764089178520870958181101574524306836863109715600625699733818716284845097835860209745855920427110532123626344671270040494859471146123566309234363637234298875740455471011435466763953807603804930813277757692087384799716683714200618078607195398096366119558998764665894416139641340585648968611696271166383662845497950969380215000297529359457482023617368560350544136822737010947877451559603917369188831334098168059425290683159056020479855711581577051011120820400268609373985224466275765458092750864902217484600087206587728510594151736180170635039691760884308198482710064212746408974145592872517997116673728994056391655222812646579475342757780827677065611504584700863963187558542150865692005129686162911052231560853307152532301095553423906386592716464790296249637300871150767824320035071421900404585487521065001574009137679523036923142869074695128989895732436670117214893367908867942895501664031083449224616605130021399639905666016739067186777306500707467120006846620842817905402159375546360407523297860051927346871591327418079685908765966186280800379143974913119408261773588931986798060353846778312767127727177083893647133005130899096524050187916147555254750387749961974603352447679427592353869202127715835906705819649966855773970461819062508706500039953446669553730374986546302347261788624485989015021817369363380496035287071308305183784874979145312207088698348703231650572019244429206794724879383134145732933673711090358757746690226578503301737215541432463707450061873276066753768173904227822371812382160433440584666728541391424032232577783803116633809887953554476381429049674279379724070672960707681007876019450829054099312588096139492480705396965256497719931006612917771959235821058093763996171691458022692381117743880837231866291237573137262579261487524503299510541513089186504567660670241351871452793336963605668886230181014341849770284605022890845260325566402578461589654552993533039536605453854789915814305430136477199537380022698466837110910396807677495048556804357823055139117403743423922810267458994667663181810527751042825771966995333057768168036909463787660546451139929154899466870093255034775991115072633530931684888655638050293161585657172730793324937919573107868872865526264922830938931171743660647248029941041925256688844561168313871234897055964071600002751114904310306716481366151469624629179053194276599788093358858391912068059192115834420406658300269523092688749192871488136753993833166100660475494645342603638786500638491894993655465093195981613977759267545442892239477807961069409996131781663753305097222686895519571047112211317997431438685030519145929308613687802815102289875054309562531300276949711493624698420188579798545323492510447499308728875423483426814080513308944116228139225190402036491361449798044939662511320690296708998973625324886382761024842603481117846845669738551177849074244548850397300200072365749196714464009325573021181424737516129035379983218182094075518973629376220199473991565437662179688253152441973149360432239744828606401796339087052367303016789695754212654630407731538199958621367129284533047062651602342304175549549120711535125301123082608487919366598535008117220452288538158051325714696028814801931790221131318920550949601176592117284531218756442508796118981118902640863191896806406015667584267838475367229583818051304296910882662560121376094563310446429839213577857229181338743483461096110313228319167223785401818295593634745128734620569129366825744331602459877840431999500532817193657753914411846778973987616829402537645318169291931943401742322720098566868136941816384905814293281789857169205159688924129612938946553746488874079837675857341906046996435267983821647614020049435517010652064868194464752345410988131736991175120320746246287513853600060401567779819971612815328148640416516053754262766287929793722473686482276961301562129165505345302133097940017623892690466450630163111953435469442475803796220924019287810458950244044468946852934210459361036996053851249223657204105931794211541135128161738069796334232682134068707688526886502929111708976239480648786474774336621872354774493780325680378285127128184765041359325509425384034978778086419030561999255922524273026890842729428441481657405276525017430009492425960383687008931815241435385047637754578024215697460664734903917317060717912654912983760000482716194172585310559403854518997551756099074081299635611960450022836939835223885520126075733407765389826102480966621793384198243674323140995347558816821157269193434106433230998651363921652693865208029330626103478584378081534869410425273902719779174687646819032609120352206260754278174552962571814601113887944297189636871265013207794703493466111839310760205681181432364286033009706575601369737018559382654916394616022566258911786447117326463715518796429857296956786020821829192507881505831110039518127775504174091423934431339989392622972528404353419843010202558766481564474879037384524971057563517361266987981656696307240501581880518479244709942359286415784950241924823824999983159898197870524678936468466319292793792570060270750789413734698656885582331098630751721644561107008683448214163026226798417124713124663465122114817842508562108591679969725946721140906395145884666724440516664871150946023307389649222668004556114921615757053142909532252070428820055265705049484530631586802772320471365983261124842863687753074495862739328967060823744592384336570812349065308001487910096292881036712282503394275590684939785907463010547576068070996983450191098527136732716751233879616756748126630349970354098842654622571210448242051326241373028013122450923375951609039156341006441638868775165784811579525604016684030453119530591790845574607311448862658365272739674795085296036048169861294991481227941751793109098908722497456331772252329767490861565245025504623488347380420046362986816077179352454717305909498376495056364146178100695482200463944944992460326819244433840936421852864964668980245770881019886807155820685378669112323735289665481250676418923050890985983277439990369809364287797018252850246830273476894379432567280799373092921001250506446816448700856582841764943800049931308957361161255896973272178736553053737470997117879723220407363405249531083914887518463805370055760374107567723891832052880548176860413310232972243313808936536112327653632797514418510445186992292049621361036922174588244128154194670213146909045699825646066491613425533244354224921470979235088846828415617798220228660144135406898446428095963400902684221077610301762566177373060568631274211878670593607854132899727268441242012566883037091160958363916668014820240667008109212856678801474301009150982215650571629638606208837615601165028828389763898340858005321869597431154214400378910301303709517910001040674045225278785093345332912170060968481187362346246848065359505149397936421709151184642268514960787092102434181817659477842694705952917107521231506369900327061343205336342374797845929270516972374240557078007948451299074636767811311068282511352650936471142820382460036222648927558652873680489742011466380554832560893150392796623199183010258065520843828567850397947605544105560044762588903852888481258170561474731934436988457887995231713628350973129171251357440057038283220719440119068366835964185640584019900874061492496032162299944501305375587277306011721315972930883750392615257801720979380864129011237058329000183116531751035952741868983617091977035423545927354566458207532524605738411423155688307808465464835797754023467031681156916958096277444338387020674420306885385522140317460463775162027116212428094024021131473191019487519931882753004026254559975664588417871487713851482185992386250660770616496078465903654319695342147510305895244718098621904312967453635958757398572216813007315523749424212666071429696618438616233125036374109641402530411957967093718124186915896171799678832790091300988677628384312175077274025665081560392828445043768848431560502862723318475579562581665421692174980081621178775300492191203349538074830206541589732725885214661731592883048463098045495786088463085098858681361483466765653638613610187487226879338313008959714023226163707009826415775850116972996957386626963844690648337583390251023007356758371878047031985869059657053024621336054460304963029000864430823081024829410939151263073103488277270347016952224723291450706118182359983582864555232807105339592444958547779096008844525536601064918742135856339062508372062271152154787747462829184145170217443336745346579787639611045914095918482262670556616879841708767492232026852542709842366308905419007478701641893108256500707734568227850789320723361816030711592254969112228109713735653205379344939434368140157319549218291980739550472739910620039752429242054622565221056531723089510005567635071268502008560146203448130800712473165773295715567346208792519763501994696428035125533323257382463539349373778410425932443658890342292642523601737785330274947347854967145325914267457629849855053559374890577150127631442637499619637636211154869024950945354568081919948966631334970504181130620790985576080843520917343606096708189103976231128771990422522713862954093391480912582656460113739246757433934436619550168407858495998978104648189690647033323264524038419954726404233200355559828459224829632217210449361512814068587614689466788137584673995092688639237563726884880910992503972360857111070283393809574997129984590025374986688397067255051349039066456045730414325087304657956728528455490807900529796029169092013779297446076259520767465690548024590187526477917525115143912714953231761048123334208500272430372271659482507211488920911749946556136107548786022753018571849493664825349121971842690371963238865665089727567393299836176979910399999418602594221486574988364202121013679096254199695300721606906274095326569902364273697871633404383228729528534665330030127392207199468394269164523953264196654909506380338763224066882261692626014968361127057914161242087316487662337118732231157961508557659754261363466501380645342082126108989644660813658299917631076972080886380403095709424248622697837397941663531669374923795843669330932037144211730560674635118575814533736142624548603624647678206483953355880282605726490165159086192654731492131107168332480709202154255638986370694540966563771215651601445270884995613338476506124604897327542012422959937794138910104829937768128371907692995804338365359905487186747397882762728223558509364233189454072448740645049538967086273152966500240651109685050823677629732447523805755829481733287401381651776154559810683967280600129747930396522972894062455498629662136621069837427275839801040260677882697946687988980697772149550207671447774248955899786068763360944861564992934765020742371031581445556727705867532040569234476342317703714938998040869462363472388579865667368939199930357730140856747458429970564906205911023810962488851011906636057827320872670195391531429228789858153153827458690767676256664717371964578909451152466505173868670281182623940104023004985506461984579337921024163830247334308749872757047013235126175718990711341016288755775542094099257328504939368742279916931310350702810564880077139188125766727671810213728673623968333869915547774043801484009228560374474845897501073081215774253026191323296394087927924224810130003259119854405828040383998142962899908421534081471161589906292382041742642598861782030500812023708162568683052284474377531795741574746375163095486870581249820787773650070411005862524526758532623833366850219013678705820737812399745497660368731876296856660302373594419665075867732247652681998943820254756534421593341906368258568385835423425162917037150188690026945730745295820653050791588048748188881242206711540394537647520377087687958558725360608642178585888373831549517450264646292393462984094220076118681925366293348904063524698115594909432220127962948975540160988324095094616692047842145646795262726813805048807735399298095851695284962617210729174140650266970057065678278636966881537570922239315348060537272767431174649386887771076541823840346981016771623879726448140993861142590042168695902133054773374385549379093468855315929961281293472838199636623800782613451188881118511437177366257856681706522122912306612686517887583904863110219241704867720670772612135751238248720291811669936530834405789499497235587584818912836698749059660493439798236677521254547788566510878946057733673660678831523840817540105817459345640986861337191609599545480611533258575431364991591515243997600894996519494678291212040221266511286787324182441983659191139968403932682836001629495599543774573195964363612350405562471931003748404374114219405782062844138130429344527552107713744009573811155271211942994533433292069460002166451709139272837400859638766210995726678199035933629535895209770373213179090151261566284361629112233316870546527270353292643687847021408942602163733356761352886521959081719778380378363255117911641788443086417071492183867159481593855446159812042898442860126733846595228466771871075164286101411571808578342861190884105574305919814627641312210461102326725660131494175970499925049475993569853261834261444780890342391661847115073209829864562887200275767252485482683711658521161950521789396970526157965991302627169749700184574477815434070534918798004424839240274975328224820504010940979747612356007211105470703032869523669403887990760201630496612047881822461269251536748560726414349131666845754893651883670117178008469978502127033498024942661248928049376205468482086134616045184618091382794506373376463839234524248893503420612349127568265892546311755670012685818598915852432164274148927076525560517908875480212929920703534972771399883890108759427004632532900226795196965347511051557046901114322350058565096192949407889312877807446988212289313934282518800193252793815122491097772828780869184820486230392666654438328355139017860854669918679577333388378501230902345369362747064846554385797083059929210748182406500742447637608520323333458181035074082624523324537102560635778130916997514807267525177898260624091845050313089480198741223268252907368791825071020767987159746549148682419877718535705028383114329586064804767333019982173663385572502174332486795115225270089457917945722489179629754600966570135557464022517195501440838957299921525561710043655495152629178275527644063237291758278475047486961899260867091125033895635160855695908592032402943859914024682081737457531666268080260036258797617553173900299120748532324203329445502601653485732728990210301630263527217202874815088830682391461205926879859283647581534031282703335623786401932154142772299110183091581750546925834779671848395513469154566905004105119753257199100797140285229404452205662848724939778299521902773047396418757618944767083669175564155614906784055274751571594724744647623428311469564802869661949501782112387885217060472930658384926846387131858072812389494356657673209519945120785721170849270816141657017858256720431866775523141600702913709086797624285790523304919674967342751483957482097903835268168939389990570769537463606547602249864024697013587194661110131220766728891736366294905117349564317497310466389524612855771001109844828182350872162041423647667866732161819621834464299305810494854706946499826431204619110091772971902062214347746291154417533173898442624507036879818384821248865726410335827245890106991422650054788146577201026705326595577180925014988135661230169966036484704243728087723414055529052421740332378058119951444642077482699574410485029494697173251060170132001965095930130981570931943299423742347050159167324184495664148470903489240362781648282581255578671344242591425574096489026465929447417518971250968150931409024189381666857669498710080123498229869945684124688912200065544099705247654879489000088093100626255207150553885829619665658959975224729150046313161186942759130899980549012477727843917784416618244673259367919874252490368984763495755468708793137672049115131051802746764005429034991693065253237867209072822601361715614022076311171245385307442251225475767141529350657824163190602901541186565870103410142429352637846228587439607885423636025989631674852056461906024149041507199778761020042888679498982530114543140894005830783121998646254133092472043037707590285934854048434445933307762507505977562664391368097637661728120215896241025383680650768365997713423759605251908883755204508341683576504902806395351424446998881295588427976043970592186852250743681862675734184063084407208305554098789669611662823270570208990664936155965854634582346455118957615618734879674976566437380221332937100339538487981889775996104086841461308055971775631013257227906349043229869870245756613305862108659268028835618208066399234282198931952677562995528202972087242928895559214970162520845934487316074713158047256853186117873496359655721450778890271157559708621345900502120054326020302592637954006636365729118327736589009337825721208986279860847919441134254715959451634550799495899637799908942619110170348935787658060844540787310928508936229459021283679329986104877054086353454420714215121122648404940159704158111192541887139478020722844693358410032035122303955154515935958635777886668652182579725918641161554987252378208168814881576533883039499257536708915882404975159597400617587875848227076098542006840077114081189424387748352997996126831707350369669068039174308940469071557846384106811375429188210672669000786468040868711491906531840911270754485612926559276144843953158632533869178620869215717311478118072866248317450063687976545985590133556323529108690262957485500460039494841971387318101377603769985868673419574774595883037963565903057609880231193613183891342739874880527905025579281781389622719875902714943126173534492791378665049532641638801578166506667877582863249761559966102521074555531656363731607661667860040044658260108857897108251779929460528615361001325112738117441401680476828496319729270447871158033735046024853023848183077648231239862565466307685541882931003561186466352542803940928916078973579312481707322154642068472883677285614109021432721445746602852494132390857725707659030793387971680334698035631421077369283627699315089006793306978436068510263617916651067707845933086436408659706828900124352018589764857158757640719800514672380020377540715749992338936333570292654419247205828144391671286900292551510067607034392283817442485187239164360145275735636541954560393016988233539501422523563520481414306667537221106625762503601344099032286625123850599835309007208981548541047490944044887479650076317903440129019734273465976990228601490713432065674904728550688219120379269831517966799696665996197182556898527837405665168423152940541305979334433039032836233921831846365336063845582782059320088674787602740167245150304291610114372580024981157379489122481876224297551804605915321498910260057956682231650187084968703368574665309792658559432994072743475812205468586538298906689007293421524384107774965030010543549933856288552335021192972522513609791577456490696115698027960674713899686189700364743092544137299892614458644960616781293137620223706064019615113489749522375375237874677992667693643234897385329209757468911993434587093699506657973593538659465955673585736138071291419095515789347542829640755213266560539089620107689004029015948875840258737319396692942730905364379911447625695589528124205481885653949392850120715878115046988827566081656491559890540140882561845748016247650947936867515017303194431219110256686056849122061458338444608219745607661815605632585587103415697155726197844471782015954237942535969094475435348181865822943392914825826642910489403084264339850338478042502146794273944708156343813340423287054203631735523843488674270747752487373705341113401148082723709038993669463458666940766721118534372155507693551988269123248910746960221800152885652023378275661926270329475546104720104557288218725622043514002771105023085492705195220700449753144988324584497823499460431716920162012685461352423298559559037843654225121394496021831130186808956560616049078838563780338425102174819103149745701323065512573215455643007535442707990694383308461846241775069578863411233052672222890238064520492348603388360528176200554238349604249992980611422159117986821713895421325003440247743314855741039741212045992643168803679356676233642985494046748405162110923779402895143283991057616219214369800489071917682843988665440989222998826859991887249981992994674675273492639049819400497765348159368237544538003907037831693130421222947193968984804427672614213562287767752771072477501348741038349238630330572723088124791079113100212599811424269760881489441694471827527569791322609881557555035600685095875207555444848261605799157058140433738241206990566536756699593408299518061343417351034821726441197124424170322148154656418760390671691582401173237033587120473463179379520271988243827036622109232036010813306700260470678875350198260245198413840312193597604400558625453363043407918904628358368083379303431072949937443099992627612780157938038477119594425664200314709422827497108010403006339941885434667668213096158647492144654224409279582505653816049408445853230968574341458515586960263356958237316682683891641896287740038034810621780956547443111483208882901883982605567610758545296282396877399276472076495418317656940121906518686418165588662922252466171158736016724731432648781736247297646095812683733741452108089332560747530529861009634719599117244871414631065199611184290817863006901911191259803804381859484501876340308562239170914105858765425900924061495032864423800379138025380525097433464448035339364716713352117546875521409440542811836818023306471505416232894359994302016531247934543060254821147083795744665953114050049716190867532732493745481266326325874661416762153147683392581077063663330881984858242325825402699839036737363475941264009209594262050819499788816795876759149044511503584633093149322172488991796078716417919247059473935335956001977101198132140826052850869232497607234805315878291356412901887737933724885877409852122839082246621611555177979672409402063658430010182849462842606886859783072532063527550944754746479766072537201477586656691640647273104493974117407653398549130441000522297630741781423775062497641925351090824822851190406355432969037922573655838287528949897933442586726642440025253787210425399777029739344911378960669543943855934014781007536730809760000181179943846258155776544067679732062959139275510275163926895569893230260280389402048737721360697472800488992457890305430321494121497463176294669393526796814625066858453485224921959624446067177069559793342852194094957964495125166953443915044095532218539358715230647267910466046624502196266943481699015051227590902649617631833630500759980358890628586471961329819863164076304619079933592283354370775353134122311974024872026693517722031709443698959566717736021445483466869068434486245875264324036510233448329536998759639398142151627828223110819984235615235283431873289839136003167409980419947963602121300594694555550566872482236939886026551844726078025121520868442974246802967647966218099284679765283348371166013124645571010157229539960387040247665508207295784203059094389045603504275013173243322383708918222660959430078393622518230475228143028432584056645790178139706258866330118542739326584020673543583226464157426023282584022613143045545714938760300608514457452624707235522677020902370414546734915717991024770576937745092180388384062004669084196590942923803705944341463446291601302135315488449667648951111906434098576553381967762469975703652769213679809460374729811674876737451636321062535693186782435412060972145904236324873987645596615217443439150502951725169199574891598913006451981985969264057881026921960420104043608427489750863898309127576596005732957750283095325838257677016038545488667393554185451628074146147821262884518334945012503063365993796307392406624289012659295981032471403403705884518592057588396883951685557514086855399661244401953806776517026025407665673949899494486051181398358077830156422510768035488333771238250754934719878870123166877400910348731126576952474475614870646987763960097646457928101727497594661778465535126664418856626518833607625071192897915120712744750775069075435508687121217553073241358055472236041558594938607383615752973051206185324616477797966358982087759072437656165562863138692914735600390377166485481379576569959642799273626353161191392618579101083799559648787971527165459313238074048752045641185558638981832542640994653330415612527881445128159395569196706230085523183432198304620273827067423817793627410043234294696619894434219489419323410957697002859603792716886046249961166648795125171242309712682664452200505188074181478518806478222459550198020701428114415359174282143891636539187895790864990715957636872541834268870000827130681906892260226723654805832997785774788782981893186442105326250314645217383171121701983684169372006492348777521793278292037990030186924232479051876262273706790561440308159997862416579137430757154653275238024962949083980169425217798455929715795898000610553240232266449982884375759066318054194391187625186026355200992237406745443413159840619911745018628187892364444994392093864601431574966360443058164625034089977742310543656753273591048488484386206585048106079476245880366658338965622272196376586693792489915144165604892926821090861679682169333298244809175463163556164303114806451531329123546651296770132009989233370836699853564481039664340586229090265960020677175158488890462816865622502273896765593176508089389051222434300174210909584556903966188907465124693185979772577722054157903698157384763638464569444118319640513622678979896961890453034948622667878460595451590944178274958449571268355314934597865826467912243651346604138256024449243990079016395261951286997497021136354140508719166369164437347436981863751326784492135379611483887568321016308519099366982395295506492205373245189362039089019839098889917670843698080987818270310422206399700836248974287236491449007466257674954129675613606559885563197528622828616973755080930123901970006481378498988492800501168759554652180190657116853188041120203308249652859135479567720191890480520032351590751469659305316673688096850260379724475024773635719165642940970504838934256463217845999033719395225484789333798503963275686127060633377771275771553755559204680826608989711837188190948520415375347192120913961982361039115389508159042551995830826078437588768550708438215243056542064668768428605537873545486214955879886079721828679394437879732346491006861051780107963256660330622462970379573316791155194803176926752596324546404836463067642194864641830484313727804230391538718712688837686549317647286291173737882542308846219445690662656062013846544083523230978785611317620878976034205349517938544610037043867674877168265949746043917773958918773972277632029628722837689228126790648372723274985496678712458427954148433631870655648053586259770785425711739903749884828795488678120929898950275625385677454932840979985857617982109025627852534005402470069704001996718029610848023308094997981420866620693188460328500683788449777932462207636185058125510441737503258065050279361983371072151869294153399395119648721674661286457279760865870949924014657861967724286446071461522193941394510791299561048518131570689362414468286837172288710539448058116468077378350601160665475865492086725444476160058420650551193385298428741420571709498739946363975281806844211300535587692296852987509562961974918441912827262212303793566563163472309930650461300114222874422688554995244698142349186516852167149249623357697519042190380036177397733535901319663231559753436021229296510878158227571482160063416184370393935735164841783636536708732704339164067423459612411733529006382014379970139973591387784752371201574875912135262083359318589582247138293537397624513869369748342130686514123665965712577518089835285438985964786108748675826332951375382799327308446039302931518487014497072791082298189446828497667368070221727209987336245318833592602031987664248600252624219040462891868383654019510171919544282990150418507336221368387625603204941706124280492556073144745196662110379871031312546440703920072504816731997283251915168757795638790847285064912742608742676843262829459697543664277044396125953838078153520605576701361421554875298625535078945871877030757532133366734949366910852892366600159237508594625878303873046037675663164725392115750433157683749873491505765580390898655730276971986479855626386026413673754471476143731869555211332442443397506405895260374238076262346499988357743591524503585897859160079567114303613071316650995537890626876757206118550865175557868611297863531393374652960873517723151601196685359963366194781792570306877204262112797438114053502552680089736140993375922450522191081686273348940443633907091394074596063939642928742822114812152722959821839883107041135063371908026831673371169424434001652089793265676615281234501392264603028457202306381096981516017134156517413825590442098677424802331705349539558483977410961310157347481752491723667567574859161872741294731967033368972461610885425237840410924686858224155221585014716621494190506372102196661130909673145028847424328529795972217066703384120762759444278747480151598999783367919293372387773714050618496210039079051973668055356504480405736524003928149173246089248689663322994649940556901777812801324652629284673146661803861339179330028409286618446181781729614251845347796047954279698737512331578650101261689985359245770297746763353055615651088455063014896291819319674797796612428251306925432238509448755811043748504412860116272467498599682656910365896592178331408729650980570909725276779884558116674156328180392648622577213088457082336113270913209812065554058694817090089774802914641573006785997402022070387963165442682771037242490528147811815732375446977892223015071943066715067330008474160202308777696733905588292575002423168164873186804259836866811261013220450029762829469585376014646178608249651595932910774751594211349904477253420115676673959018972246887632664418013621336433361040531618293536681199319743954651394273714752759387955896496775671761788699057908833127605071573117572929967934106998941431585717150233891424315208165690636164705413826285197471511122828817913141443794930366648807620853416289218478174302709532071339177073140969444866641342956154815900810944640057596713065550887564641946620771975253700128307538003029052664386516657119914528833836261326828597164139462310325912212176072861244641487624518426871957191705144135853452592580161562632820917645640337816912297957000094765816397344625995940983565226415842670047419201140973532614754406086837313721944786052710198739695350736014175356991460731288097304590178652201732271154635804544432586775818653409718198815664035797649413700147591775593723593747666685662368932111314383834995428551169792354094987999227238179348422007011877404236833094420872071995330990588126703941396844807391293950130510301379682497320727266865088319959822145406471688537257634254745764641777012899128427713693068437006098875648755362338525634118743065650396149074441262358305936565566403335996275488194826059225078333377646220311553761402943495835025874173559735163476604503735040881244024230672042176684286166473813595894915019234441749621691416212225730438424612415900497095419707372932296861575918897695691834103941876940857212925899925477340904467710766921705833419788240320642805694962627607057640060347948637463495454228046702114944989995483150830650468135881513233707504325180613332537071188139877512813936779149215809910303483992280375781336146744364708007828099930598661697033354479137769838968466624783022614732859104052315763440495946299597704214218894268998365273546744448190436905855085008316779234622800561164456255957822792371383479005773665339274789888252242680248505958391589901930694109219157648066789934700656280023543559220596648507471604204888707122670551316809319796613140992909671531506972601959383667319316306315747662179231331518988467268569702491392365063426577707116985316350040041137097957988428075862828992316589187313420935586968863457514010849079767298170377403669453368798174737284589297524816902441716686467905861386313365394361131022347822257166811303335470982054774230386886669136424908216959828232214447678480489687002435741776434641791523443368804078413704038729836747988279481394700080045744025785425085874793209463713907751041315682148036785216676186764061797767361011848272826857895283865674745388612633422724831091600290863679369250474105040559722633029480977052315545607137750929562493606856809009842767359337789273286474325203795520025324530158316134176269923174979731457007833539776694449849419712149962306595292644308020644528719773551137861766362971109568316807707204534600710757974253818285732118514819036662714151575620445425173272475783501265579904986556947172851341604655926794483252575234355363465062227118256823236481571129570721746317089160635417505625602908481016590441356986105486548600873334633557908831094565973239546108383607059485115480669500693350132772644645394200109259870140728372270091087108060554599329713845946778749660903919334958723612896992445047007612552196238322970873298840848555373944355190059734119675454242151767918165432335110273945570018347431191746188623671218098225098052002221434341105016637526156262343597095715798759084916430376380749367554468551559080123971206067528105299711130487967558365085871449140181412914456454015862188099581755257188559827379581727029708773826091167564411774531939571092528974824835668147432610360593241279391403488795977724281555043959167530014336919350426127133186406450763887345132860337368517218367694656404424197181757194548544708026024933722052325965220978904491537902626919859738294868735463946700033116828785958101998479040177664093599226755809484317877931565619730759966274189855772431020018228542548354512543634401460089200815785312108193337302185911611384733482307805968027031542641351084577633322425302657203005197842902736728323687775406999131478624204520599297561600446431703361723250940571162371103033616800728147626228134525526903599078343199908603686738318713726838401963605029622953238988679784874491876346875264301970471533999167179035663774769148696114618975385744701930881492367032704530973336606168124979326390832001754001792524964219368146350140300316660494727566081447082293297208033555558709087206665306122904853287890031109725396272512169647133309017053676167907513333230546687419144426391026821800822704312281053626271872877171617124053784356567059303318468732577797971203184566139708597267971442560390754281589228390085232420479548207770916173853728563012208534099663703036229840488533140778884898440567568951415349595285777771900787874851395913982259996957214069478291488536041071890221930761971182743553950202938986534719333798041030418062288836098164924570928734279653384979385067492784590498372006928683340805906958473530358403359757760391384643421422059557785436777401751463470481295168084146813591045397487955409384836681512310492982399019344323480918190928127966031114069603218263643820120451385284401913420778023840173073575917149370761388736655062180051872520267923629635068843471742024804810668876150348367482921834306236753868033374795361344872328567566214404756285496708843825553317877157083529870259574492196166903491173785672617986922434202421453343540227190420870290570160520727143439492882767393044838047520861548531035676830801344118591745624862109978325282760466579620597158305069799672723891236013903080954447914848396033133633825538054474617524670010810173774741932387024128496251675445689551314741098279859341578463782280282677980151766425544037738801149833221248215830894537760472752826275076248031594359725249588461247077999259135111628758890818762550762537940555098873048128616869724263787862983219125842658549200874376434267679340049877636746457378328432749422797125005018339581740580856256865796761198774773083582068810690973788250275818625275905399815811104843480818985265165034709145354776099451029723954399773452023249459752111057297712465998472639622514106245927758593309266105690407159555095075926136775290324300534365476076778429797027362575444831668053776669604113170498101813448209233904669363675940339325298860821113905453852631816767345000622453720335676331535312812163414201468020467702751908137257888603106796808468172459291910866986839715487804196004691546642807251168870203433550825808900095189005029787879229507563384464927773859724717168434855897128574488097758733916695432941088183754192496977894851777822431758146448515123763899477434205154301356347514950883728330038695799926181965763333716925188206648614473947260232239924641209237727716637879148291513639289618106182818649975510072398863373514079403849759933008240179653773950532168413683891473081626682741449795914866164403315691801362166403075713897230356027019546420758375585369460217701896519305607674507528748792765256628260825162963983892608473655079706272379832309929938323526046231370408392990824837698221586669137904997773765497118193648192557704852118632368323237805452280526405201373414118236064711014781903251146841417474036501017553872274813360088006791799824709099529950390433870007183931051666570686277744735866224287952802139881231829128929283620030087551080846403707112955299133271763069707515854959655295265078966005782698263024419527484321906835496858350322112996765157931428873178148408803816638845402836527927913213982074463386702239424274947388927389552527871112498143274135101220648575328024285604380399353479137937399411552225601570165054415933110374586350078032069991154086256048419996367709394298579010171523348632167570867053489166613301715610510498324195690955872709466254557712621336174263448309651018797896877929062958051650455661075862878906512423605096107442614479293003949253728474038178025604785198652596352052866425169162964459872911681583412227021603842063120515608620045900419871800640040885433861073929649332737438688661558363492086959093805537816413438331816026428986797323132277495652812891377454066434583139515300658269062835816267675775937377925768218896260029306247283449790140093457387631953146834790394154707417815424960207440649611219681881824424444935588798164993251820837981508775984796286113846487380158482625502450442695558487360011131745874620883655861076454980727826884095691399139302938296625577311720125414901734926294533460700743320700293113461331432724260484307035169996013050796074964370481052327574876953690102969276173966975700452863726461583082856121983896640558365358408011395427653652711119104751571965804185974601738420174103739671471668219553004561586824654863132688791096565861848602311136438202258970267548853121763472010728431026570781591308051265432119707479016917486818953346736790791724519059236604262206333996310990284225761785026526140209071795942711423786510847952225872803709584377058486363339112528832310044650001563235542281506713906244967830977884697692030743218904148147002730298634438961298294751826827596159773941100062570435855623613265040191547454261289613634820261722279837830880232286814968148894710527108554682264997300827046765902334095156503205257772681646209833115297001600202725390511362666377574145397701596854592532602067421679653108021645711645314715389617749038401629626931271660594065246627298369235205295406050718118368586056314671927699972066176295635413236605227573297777849417860834711604910695119704373976408343348024874146546023882176956865529775271023653118945897199470723687325443016420663274342710020668244525656894488525306941518224595222212794474331732810999280111130776089237932883662870278048396460557498600936704682921203645291386420538861376837451327235234431325168269352148310462428402163666284341449115102844847250206293953460038246283646302568474229177680387500607286610471846173418526341198413933100529468060229134684524178178899865750632069938052079595092575872147805503257561189343551136574702507672094336947406423066227421647722140231012464995221257427659925100225139814050805498466192493304689814307510384439614182177347524045976217379881751469599076964595544128504834175296243651546754254256557953894352331698849702382475584160233641169307504104414290271306011626009202154564753486159911034144662024060982712709110043314515996813907545704540726208056121474668928452458525015477458202344790700333629001744310478773589879253554225853786457472158864277885933221825287740335288861556519557578062428352989755571864469315323004605732883880008223379670695204770954491349828662430239592349854812421205400062212773820579804076469356540986623103420958668603420736803389746152426386844906363464043125162267688826706789541419317447331853050895465411892875534800299717859843092243405806527026318781057593224831926642148352379742080848489280839539080135680870140110355801605031860391055261718830633447168458017151989407444027293363826637471612836887005395527602319050720152250976657067106798431247407223136409397015055567262819716372754701764374464892655839713426803607200370877063778216725589064435417404486803149635940020484743307742193685254207932772271833511357715649171194191546711088899859110992201050617013438846082661510342702033835199399523053039694753932997484950881677871437514764685558949931481251652298069762893581643101578696238151230652314857748480359320903761280642353880426075026313350664978193144938110947641047978197775725698840137953058434087625370056700814546419375823298197924477597956308063606569519931577872215282667287028781183622402047676162174074233174645578398495949952120303252978482730927057866411411924450215220965611726875656452355150819787133258953540372044024724296815732220141728589485887966032179634797461871710592353182376298779436349248383466977185975197641788723138856846290742529577912876202866894436964167630033124819047485056430800889867473237957277968206516719627464321864942617659577821169209460005075777897618345183242754309415722831849721168255805683633122042506854665192896670497728197465285348678367086669633006026290610347391463687996299767790219008186462064148187054210025771670996934681586831032150478598628760783711661312528322171508727442669919784629138389929629402004205283099867343489283475186782384138727124823620207895759454536794862779120082231620044143683258044273075772434085594932230049575465833725225247874597597822833619368894786808057968342998871321717257805587015439591718799155349748745420812875588446464366066307967366795186439282310670376577975576469885423302719817960513233526686122473331171076971867729150936673776120158277817080018305664728627904379830597673980507030238670523721890008494298617179218803063864383589885410715090883640937320601222529371925484751991367909280099140899886223734584642422167109662500055326336324838224980515310696744215420078636204723363998753212853081131135379255278400658179948023116082534100736294200518702968516362376991161376150641984254344926051317709308047645690823697873129953060316800737731697481744556437666079423231498408354664287669512688628829526488613436777082964005327711294843492324866448996366130538620926092518586023545009697892218411764851048840855332523144301101271124488821167802661854366410877018896881580918459412156416536109153206840743021497338597984306961111580437916437877769185493637866175579207140358318380568534232173638809807950541766409913003247771495485387448087067146336438527192949126378639117356019070138649979391402523871542764994420394585451018015151020096806057465757710756196417929697840056703522731208194385031630328553232016739983702687306048193336499587556195189015430346761616447360996031508307713445037294158627113819274515663615329165947241006817351059151459131276604125824705947091153679086622997336965903013994692053644563755511604069659022192469607427612422821532053799379118165408773827474820552026439309618771112624055309286394552704726850817286899278926971933247094161520062293656033611814991337174493326346160050329164428666387208514297801078228451822959683097114974369047721756123856758136159651569784216847897668674861972440647280950595256668454059030883421934487082684273592638136568246293503809444495435276995482824494867386966492052353224069560734258912663747444837747983454011123373008781281859175793492092424460658384823019184327706914235886398422409375595965427112102744144536148742345463681119334395835830347562348519192854528486571795433539048696733873877057653733463565987883341103482925120979064150716189623452868375864717427650368282368322770999877005915317857922375313953304151811765978169014063966665546428434218137746866259461815987760513495520871257982267835256988173452590108600189014813798647457902659906854181204184265609709312356006944471544168348875687701280548150545798241815131760503364936537334613917632878749848290370879608858862345267447188794551229006045563003863348553321381555744267774529000181899862379305135502869280108113448884991574895975205097802994332161431068315194294060080741804582220477384938229135811083091152638067723734418617652876338741168455815724467249719639181877437236018772117559810963701689261815711340177044797079717314431329659445316960582615221858635731121494361151153683008894972010860824807533262830819727343472259483979487637223928158270111498165532864725567567262766423375549319367033557988960107696914464211548472279981779212507671799751038223952415829353062868425951024638738418452732444020810528912225069720148061507618642242426131876198142674808646986586940494713928057338747340329871450203558418199938994567140902791238263351716014478159223342563711645786990396821390723061203721107524468264988336198283144123035328536811024463111933842862446932787194856913368692340237988713569444398379091087511388637015796231053311789649200852298698025546190307338316986194421858411468729325533947789239914872530658488554666531724895708916596702169124114973071175361163674974072765248476263236938766202772085585764317154933849733037097038465282673469084886896845329342746951214797833057987891527994315428446761659606214997207852178951149617010587378452947742768553466433088114242626970683636489690684374490558292568028563717788062094231552933388314175274110005970145866720522441601807820386480073924010220683176369254693465708065062447268010091244857666727022337127784726074067024631983707301442119372320391430597192261495913606814452615550014955037019869262029889834287207207967407371814672245310669494955665177356940323751305655076209745130416518221468697179682965185238426938732874611784839414533992719568359017828331764851021809623565159341669007448973526307359075451902091164389299136508487891019371329022128155902037935384462683380209908720763246178489800588184295813091497074593623298830781606309675048955180897827640345860470391066387722537908337349517394572467208619481435004766103635360620939095844263936711714060360362258809900216389517177480082958068945682405679346879871918992976556524177804050667561843466131991263733099388640623954364740782241012292675013381495910950973384625901838186668712297548376717943311364968957315179754351209434053251915380844220609903212749831828348006340727390046638015686570265124902726918134942673454436533738247103269795425595253953285703666121272447590870439760717968490517749797437946855168343822040554231395559187623808961935874382465943953304111794831074580532540946793193623899729225509402203030944306883163081231122465325963656416962184624293537798847214255461513737227320411920353909293344094926421006256206160503688877680190574810564247872678724421164680044661350836000364884240903174300197098493259232324643619664087283399033410741372346181820292919297367453302634798515346533055780842943866062439446292604916476297473838758863124414424440814089968367037046540521309619078194858358265001160894732454931342947142321483594411534589386882306088246088681890098573153755040774291058484164972260916981477306416833455829357414300157715712565145790371657390034529876617825688707295084499282687600888625853942278078475951385363924799589396703347526233426539419651324605904317542776601250160561958699710558421262363872334988788157412919030813254558956173056242952533306915342724347205676353527278314602926625393874120190393650266594121892573359695358100556451937795796057245726937994809086600208357920385350193288794588348875819020266404588687260746280461672312984884080346134288054552537585471474198708813359288861684263447619279767813948397500375335903466329641197562827769621074216676606203663434272932046178856933169426750059616829341542578456456154520542762820043349236828038881905209989583983374222255951490830563051597600231372064128816838134526503046282914316097066742915111900123772569879369745228892532797090164158091020346318151772233054705246437324344410041298846238639195667269433080886396913699259152933593600922146837565410943937272702647160061614708555424822498797247801170295518207014204257494643678641557885547064502297985160751494396091828622963836629237523144746826498435846740314836825287484968149969446943262064937361339608411979222080117672971963445062717119783611704606613358989876158738608163043263264437089244775541173352387230389864107511201959462865744989581636990797428063573493536433476673171101879747050398939442387319367408240109037312041527347533340682663744963992595796647859281292073803300185397653618296263434958813020710931172385792547883263475142255677523722932459651568438904298273752050935390488697547480481499217711654887389350834589553521319970912944307952865439469545968842148527816604122546042505994241160965494388300474207296886330007760466404186713999649283514363300268290285449119289731982905980105087151435757844348222489215258650893767909627367198839857389672832369481863894630321384307737374443927494057862755457822213385992817252976479296812972222844218205978777424242191180180391071857707557222660935278589309574833978067035332479792167054679982683859287094066712191988617442283596877624895957441731249189008375852398157999159853282058711856604803687173969751414365337892080140523144048099858668597989566067588124505632865681469353315388502775298843672724991530454792325006203919280092192627220124490262441418447224308161097749008455188846775417009935605803020422032210307508457783955682898990884281376896644646270944364281517484922712321444911085665379678924549211257806794179693428609062674354822824910264017526238430463169465495193062891528623476408216643225733870383573743990312773027358855958180635014250588124928319335208636596340142740296282309026896954476501942424540230612103756932285637313306179257101698824069063028669346483743961706510449259662275306307385395590113186016254329319394469301614466359052742477173735652957119130415353839232761900071255090672109242533852530736674221009835529743534166074415524560937315785698289734024214944206433757593777156640105063395936466850124847643883306067417252000642061746613599151353168772630956097726102670290979548293030707775616405806561211019053391393256946489272194645729929734571350915681789320177058003786939943844202767099940508691362606310969381289872544700914204239320143768144983563374267499569653205801530746437128544343889823496782452573356014741201878216475653542352269023060203752736834967306134425018046271939778824334560211584051201662026550948486083153120161095193000678517834192337844445548192314798747866359325667175537196687374926777692579524342125551088698679996935458144518946375984387961674234733942392917785465775417875240251892659384738441350795159056230454434011537403275236265037226528807639636801309811049622081625819405765079604267767063121668608564313309109596812563621417272730392581002486014761960348323985060619623382713078284601995813149143982063085274352101415575072203496717116967898979818303028724390379496429523410757191102943769127005505545684609456931268524285051470759354359004471490759457156579849814340724531894869052448025170539875008732937220757407293791549096375089695127439464119873964074710151130457107661214186662975458041915925584052533374086453471886566247065145963248482709324220817307691860542090710815268382294983642280724311394518462733218356327923754647047939193053166557977538063798514675881340893039858191528005544400299191310895412142896755507681325206199995116734401185882021621082925959941514654356258034189748268892185391458245312798705012191313248158620934942696754455805432569324961115060793874634160524446438398503362410217201178577077182721593359325804704691183236612579955661010804264655834150201446749726016888713984943630554202616789167965319337043435202919079531101441976268056502920463116906526454152489768508407163729668833065099215863175308701341181502978217421253528122041072206365125289468386345585478531105974641841203571188490194446987864151803929647740094456592472322866842773169433483086537044499545824592382570046053452503917850364781615188675521668456187793408380863115707915615377799247301334303371854695592193342664697435569248401094319822284965265225543669105335462888869600998320695827376268158583274372513562772772576844558248625558267971685502436702808221183278229972904968294133026258635081752954966017638508431267200342935676797672969098784525689463567819218103275733985046813613396101946697201877839047582343524550922726646357507134683539724954354391912652069347683902990514796577020772824558746917792517816261522096695914618108400023501046048084841909739060065443308598870264662495115925693886341939690946550288602860042158272625437492030484333084434095677577547395251260675320150800003698205127425902098028692368960400972586322535820432970265518994139716142047383992856625189029919387686587901493306891156316139140670360848185510690581761519810344103534871726421912657187344052465062723562810043875670138577850450790841811756958849009451346600955946290590302486620207872904898739599736054475751388321586734555366271159654436204011549818572712719643960988907407729177869712522819678539684975086112163185959841872028902058247469362880575067444120401738936008461562340288326541754717777030610878000730453519896899229372922869057269713929924000205754146607433201279349057893225219401856992217180770637755451570813770925366520209774800879987617244814741615264431671106175746809518138177904261317504852849008693053128984318955371834143454049485981845612252313587711940655346924265455951959485605837006743319499168374487741465170368906330342999857961704801964248945465259195262348733016913839980641289646188222025400982684172166944013610882811768283512709761666656216685787583865439098517395998745334395373561586779455282911583279851319936513338528971886496567771345227453507224591839509293198386476159379562430440315723311623044275298721352584739317504204636558981905731618678673792733027563105318212358070658359513777524124099729038579973976742381093124160232225751581080445687758200105091891796570103792668751736737930162616979681783223250774315930294658904592825268575223472705448684962385948424419324289223149741365897200108291259266127851854599140727123812230457922044044591344137710105386460088333904520178276463081690205120709682440965019843971632871140289148057068061776321856908983902701804364803623417828978447276096771565210415335243881031346903399893609199357650906406809457339725777243074082954507389733893020458113082439269845947785923016034732679347233707672436596750245437528161302036464496348868842898320373680801656802658245724467675331024614718880313992793394747407898031367814013875900665496507757771305656471156014836375970770025394602219169981498891255033774726149226725925334624413202476280515568857538706781514051172803683680905530875419464798618297303052201447875234314818727545194605351093137579380549042577392926903306754617041073139403439739395145884885141686710429700932589947006578611099398749128765503286591669910626782590347015901206192528301460943281743003472273750941820557882659328219296876018575872158552814739418023469371896936997064101194167622970453665324758632546773544590960071120786964106130515642795953822450424078547924519785860821230902026709847565548541277627411182993910274584840434666785847391196338981318139412717019835478621615345686991593390464689484611487467757898505143437875679174702241661961835962927934259909047951521788592247593614090135536144824846418890375688103920710112477498746642807541773686219806249993728471969541217609895070481027177613584584181538804465323238787151999915258351699651585316911778005152225165020342064707443126661923441943331875869658230504887734707103709031375954200509925924882305001828123416024802415165512147404797452448546070612156167367532325286189724896947411182761723313297285453792918752540628278429811606806151894073195019491995201836484306772110814262921665469264761063979967334222312541226117005277506603296718039880838411766203619307554254223686255838949458506515900952910562558746368350381192572119210133019349777585405330501998879120569581542505659283196909056598787746349004179354128933672185375870964430203972833415901865098143245170065810802347356759917089267434088229631802607885057237022720967650700172579322852044000471972408313982572926986261810381694802251070863812456107507945760733315508044085694505089045449620877620296083880336306348927235153753842643612520016038282885693111360774724877868289937798581114987434068566851523029437082361396286045154882840738324330014790455439164365333436676219142806589472922124803026257350454687833329437584965282712291389808695783901609333065220077240753733553533403316330578834167765155986517098863906908930439947700182261688474487719003954283714921442886557541469520004527605126072888318102328495278417132144092147357845572030225366311912730090823859065488024289299448369156821146765796505345259628717340252910363945407277335646613494658707423337320546484872943085449370123103525197679875383739170009514528016094422152851842719586779429988956638979203088566857666989489348645273495671317095857461540264260434616690003317864682557952986176729389131184755105519486180487988580298389096782843610345895360630907483713249259143673293310723609264079360878412058280412197592129503357603851772822398809474345984292040976031203040872718344494861281296201415512546196813209027983347636939128181651349698150097420699388410161395686061208613176845087545580425016077122644759605394977841809897709620463227160457127154509420521722575823114877108185469759721206978870581695798793876780299369862387608059983647160089019489577408413124111391920116247105797004705777583546847335486600369494336607768637543547438130043996281081838794012325509969394759976426178873643268507961692570004264124720611576091406970714237405534445626066748325847122539740096001353957332993819015397806191202788558309308581694097006464391681831324014791381914429012814070277451927027865870372377078671227813067094120814114666728755000010456926963039978206290009024072043239351308550737803268204511037460355061798985333188911470407267088585856486255576741408621371647296843226895229188462755357027058087684109784227896043431875217515992807307562754766129758346045753693399523596511980726235706059259070188269226034128323480213337149255243090220024185520529255974837137293659358778353692341725587968205167121555674172204591917477239626832133823579896332312048674829133401520905265023445379851268589025346636130384868397811215562299294422048366323208368924102826677948230458572017320122142993003004696867431467426784949463083649739296443188130151269783718857710573069409268651545985963545658848283121521894733175486459544289473285625580454845850411009762014199278331930696923333685730532329587132474700737683357150338561606220028311082076996636646879249097868484738595594542525745680897788264612709724370351636787409539278458239403721945609811231211113392273872036655014020712864279373393647505912072481236961623321523684682810091553150963887766509004883963002104923790133077183396599009628597126246743845588731392722361369389664680547632415271046737328297280339343367206635568056821221632894156864583615455961409476405765841279187063356804032176663760951605910692084962476069676140738020707926049622891072719553224172187677761651125999216915856589878680688494565389510490943124186498324777085166917847597713810716691636890782065718557783036252157091706797444802723433134630902018393516130421522251537801242029222722383522130326114565728771923931943905117495925845346075415891123536931038082818018656193021889389146494190042224053090340120779626313435032090661786951195695939144834914194932888030581986306643568251955549013573249582054195188403550805626381380733989782450713823208804325871919146803085265870041726994351491491148279422583446941356023949079651143802293512849058610503347788615228605441236988127086380580658619188926933298539399007950748522050013795791724559067326324496097544494449778253808776279732831950926590804559164615205847602415322768358853673657402829074242897861030496623554309749383056377375288983494872323123127608166423466992721638704598100902341769365631535591409754401874038507601437739086926097076832101878969272388716783205315541663183659674355548548161894103636176184858849977796353494346955725621262406426399271247793693375213353062230360564933560478226436051923732069494427006521748622471290660196444904736996281927798506891310655432947064825820574553405312846792692044748272811713903251560913199597990327631420350525262259684834932195727519464171811149397955746486498667769655697623570455151499053271710170311066764397592326005956033051595976753393901195962987156371659990933953593677410885020775094392889217033790494997097976839539114927511564561083332102099642649759797365442282767259316083722309289010680295497277003889882995629235259402896566721774253514848271283430319585815396887889355357277474861874743666453328984555463728593106534970148878498404585382534158341884828813726417178080479044191832697522603830462939189391762699223638034682232247538932841434971470421363741557341282731785853148009245707744632432495040311744502889777983425991020794495407001440166963272284668973990996084279538625176470721111912368961397742442105116695477721160493085744386420666342826333520434406522216294292802729545887287846840582989848994250735195618616256487171885243742872746790153597494186025071432900491466436999479648612666418764000651821299938370819454855660147627861414058719998268597249400037638355045719999103260986590974016646056268983352111031722535428283020779185521809928673885719578124977616765517434872574771400778389318119616462754387986803233842335861779994401866997434737771727489528727580325868667128980336464975018122197657814424334083609542857953969702519376004869653986444484855872519108059443815710841410414255505553540457838023314963044545411060590292652239861225977230295347071594608985976334976259474417270145023755232959770045082851256005629773979586668704498751794472918793256797459827842001881007974332301542356688725052938675450471272537911205362798469797346828528576588389777395932378071571110556047736884441357279420050086688258359033037446077723622607856353722203371983107207733162934288202640099446871144696308678438570384458190140463504657186434956015409125881018718037212360861279509926371763482097900452209574128195708051281818705092429441454017913346062487192585960800394370636661597399083124758352075944331363647965116860840384287413845203325688133541310979246944768387721788535679977538497102008946574315668334816235782354053502847126151417966954623801140974971450941775808167727129495038113636687193295272559923326970182414587395756401799071537026903337318883383847767531099743738112768022441890856840447326921471514378245977593843876882431412175197288010977082531867454762358774021798852418711216867312663092575724484542561507197706019998492111324743716187052267312195393258512767724024190928842133378540712118340610042274070639047240641662167909567876013059968559634208351399017469269653372318862664354768743761207616148439508670888282323884266180604943195312062953055702549892186674842349015508960851665970006111779229666334644148959156717071335161384133386901744759894001422934428790087462315449146952618553819564941118775636785788702893048911221906973887319092990167675868484245981679151660743422798478547709818014276141992951414096831872064982759906776633845566189911571602164044928879537541456049855490089882072491208393939726981013219176905532890038558330098474903332363129226476186489432825431744664459073551977470681507643167425473240415898617616522525717727816186293718778701630473321458867436392639002262972076332814412852330206970109824900300731607751355807961397485391895389743650969042408173954768563481178705793234228806067266820228831467542352500197916990068102593412718498004566332988854737735881835452514796769233728612340804055920147666949075824261980829253285622465312684754781594004922961289405253676605719825395215683750930727903141990001276085900070321087415243864002618783413397939088054422124411224723536542335366061261189112639679078599341931306448095102153560519423609177286993572246826618670187214234539835759405879217473826434117767062854513527843364096654039541034072520675545770210090985416783900203510840206854093379677653464120020359951280477745904970250059439808274297922759609905652983306789338190238208488303542658590485519318476588222295084326704327433704139480916243565112477207039479703300992658336125031897039272416799431978757045342545045402181026936479642789679637870110690609694521777285624166228407427850635676699075602981003246381064602320330712392848407431055896347069869194621344697540887994837589404603184301654524889814003220444955122874702562294171774487704603625359364625651009188262245541003689194933613980639467054427963598766654217220859879460939454768758364051058692888310833399745616535499410296751533765612180069572900062623970566358845941957402524639110912821060809454199318518897122593892614663459795533403283026076325435735096007526270934711556364005271019749589256891905452133344183770530430401405866486437732696800760476273836040527871845243088251764580772615187217626904413632115847498440156946857285924229843881642809609888698652480537954221716445748721066215010331758536694275378870341697061512716771449526735875214261471340110457875219942557451591977544105481994165414115283131772500484665076152855357526625204932996049513258559766996088121718913148083080361397329556826796922081701560131323061275642625950569249579532618051634971720254499434732752140706263322629628353327441213546893086194112559793862146031967286328471310349641905542183203226054286428869664806445997374039544454649369364268500388281625583883412221657524236316454917320504999783597791790309117095114588229504412546476192377976388953823772968320431662856750712083714032617445631859759336772288575957474966263502278878170376126952725300792453556082503949641218647933245993312451880319784212774069959283826805235729215528938118981944764014908226704704397930725590733576162244452701090431710199227395599800789800884876440469504965710794005274724940575573337461944814786463450648785723457078638625797966901316165428635001043663987727940088103673842860640377750734957689006608526017339443343365903852413587607007683271050584942178576727842925876596814027234769000812156897720246949259385774497922541194391643104429715152164561258931399975068873136681935858413067019985197918255061271137300086375065088955915032373443019890929927176232822386640136219988508562743032469281199358709807799572028817263770169196915148094577924391496464894561921013065399121744029356543614442696662548697504539725469116054188827206551336643876681343251039371425363554678647871404428065614345035051046981843321419054678541996881256975898399939561199476282575324849046979530079581279514704832207090492189743529974454537514646078926730412519556203782960829011170757937614854314525064991862260981254289884963132119131104085458298891307352731702160896141896055847987472939256768332668322415035054411573855116877057309862491905881015899743527950649288919163015757116198541977935348006937217929993587237100113034749817104541504717797684506060299036139392824467664726761541359331497142908980359078223266498588426589881705002597630135720176606721644981670185101014146766316798045941039004448987373912296174747207500721101040710280613654017134048942250562133739511252453479508234810903394199792787450049883309024473043408055460063666657469149155329875469113105194287855966343674584961060056267140679176802585559890709923238996332860911640817592390213945508802599931401534369476811329526831144980908109639060142561517270117170487497254675957498103551740581528896900612181691358492294947223948411233334902500891881826549281614543725365355355665707043938721562324196725192414879672964053300903676011541060648624295836973423122920798274181052265462262554962038234790751020026055580739761205252863143099609665008006239477708286507369884135296718163008371554388389857334791327976628180761404426170049847134334955621203789045045222099418153569929294062765924422822520538704237996014223407801476436899073013579500780483827078996479319798279391129460653575399526591237307849545046011423317013285693967769577286831604013382079608894233042475660632210563649282870973734561720573993178141649887815099587580826900230659572069867120911239788967465986071341380318122138182658438333652006430705351442421593442629659315339136669125156121913013246450065283866496751755555841574476304952510450209956343575132596569379333840862484128921375313166087121281041453080480958468357733416667029988967584467390741246965133608415886188432000167471380399819864827365330249031110790785863503539671645906503449888555256114574009857690647600642143277351478858957603479268692631064164729583461082017125843133652696650186511874573108787953597493052127086105010264453995452403738195627053495723514351697345763306073504890570600855021754953159661366674233390963867636426355465012926157299495441443936006597944414822540696920332692105169724566309451629423827082361353583615439482759262114325162876075651993179672289747698117453930455419105203909470678730356632678279192469811460333001630430526857003356490601223266832722829733509893387746587466944223297038112162924797878890641819388730153878920209957228042226916043572818386167761959890456986089517147103373131410581545702303441581793423604510535394207134835086900780492667075635678304388477421873457804396900949632983505833825667862553207379227791492992207943438260210200519233702913677760545385298216957376269871892081805616057359988499240473557007544647896303991195235826433753161392402043599728673882263650742074635741294982159558713567690922577663657728164069419583056057104064688282798325897818287013477571168500678877196996219791033599205336584414567147460753687539862125883632285786321465058470470493663402116977393093525789566397225034507102432578972077728455796518197964968620946935592401251712723694740575878521061088151787894239073713508085513876360726604518393350634675037138625984374512836576870866503456420255569279156650917475647207040697709908287375432663250548577874001644176536545769342767407976811565087593584728727753506934073475109876965887396737773535666230100271092072168702472427354263998265806036261419686881871669452185746462869713705439862074377479568616793094474410543910131894207701359195853269471984909413342961283989248216733851878649541881421527575178328702355930555642939282996093474160243514488019540665633488495097137818542932440440199944389558601433647722853695105645811634430660850466846692974134375652410492441536021681071267898365262850689407116968287843767964009111282965052245624137716822908146166862641760551095401992394639858797018721628902608914404957508171305023057202667371883248487023294743415745770730047406545595411315058024868175004703409982154790833219262311661082079129906620358087233127637929104174033635208126836133741051066501463963568621586366216980844126114214084892928507023069826975986306836485408530443077339406223346525576209827797636462538105610216842049016915153524944485041655411081397303929267802385546077200726311354401721555078181140777532350583274668027976898712899747088234069125582458413022023325577805615779953977855118411327828297898588621087932761521451918762604242534218468595193521571962315652125327244658242025097841655706029816160811833400677879574175938238975535584256492895196882799523633639444567028217695103532960943417135227766300796507853116942162131585710307372457542242981464664177495669672893185322988750298443369621092965351847322532188972949258528390164807143789716001079025460738119849721087638789386799861014305996783797750701033343820359203361923682103100821918525313721485904268713293274998596565773505243965647072796073743369102432457066422708529867258188716467443372829638427491297525855048178065676084717675559038072761628911837398261365352923007345031182210946881489311699681413588367037135513471642568268050378796759047856244747119222201332256610964610027561349515989770196556989158984374798231407936231268002782873603202527376560082133167679811309181696546436641018664365310593489196802452327821760280582055046297194154858155692776813949976416276162825452358011441641399165460904427887050718024742465973684812125165662896538836301190294838681917411676364316894975305458987346908142237856064345353621036130432709431072273105158448423765662286221056508813646934903292505607135870707748302580820766396815075116790282574980405446058965116221125606602835202373153512511359453541903917698016345412864669453689800731056486124858518283488683863156091398222929935973786795219312216237725365290048766278936461707581825554891796445158900376519027333820365934867025536704447263849621235987989293225958607101344493059960307683762106179199605379331692392509237172716487609553753954067405406381049700565195437261563641757546280739587558810822132243738643367874543525716287356699678415525782436179395736273964712546829520353213616557638615462501523163538040851068717803224204199703919634699207205686044815886994537916791572659350191346567284706017113046691747860484615068929711093293750687986297958232709298012639366733802554745069340648644737830486374132005939040937426386940781011675740071562920705306052683087224057506102034391595796033389745250071947614757317775863084976135843394503067960031243681336223798476735540448322382851209888672365180494856483565805184604783240041870780125378745042389064711906423289164916115053584090221438011461275466806845361920234972826126247162858723379626198012932955289782496783269187728796627191767060357988118164447745370135535153814664840998111968295425233751468662619536266133642424015253193087943480541844832583380812117840625637388339669195671523548310080648569139646872803954041214372179079186514685993946414276349467817955449307738022781319598124452317310320567619804769923564746535501475402825306927680228391921597562040443764718353838004691719747203975424431806510109943881272947502160454433723370364891819886585992666968584655836081549191257511510813550822556369259033578884722308579754446093410202040389917959384442043257134780767479569752298483736696338686911883294754349443639444419082881416245044015235183443927745479959050239180185582983320907037284898578188235315049495710066070679341651529278420868868819931621921784124436600517764841990368648561114354691121085027704110557160807330310226664775553762606099837862552747882826889427103356146737439279313505314317881945991475623118934352540975503923205484866594417188655180237576997321540263968604343506074926979026138833073171493884310074957723500521970514805378139926811649320666882409557827755537587761991096284566633669837058554405167705545097913400813849767832230796667892570601955911085197066473881813648297114313317115692620685190643216392825045661079226890340521969113020742529502036993770056883322310941330918133827823157595662701730224314938203909916219299599735518539372049866094270739418420900940551663568254259264960291755658265776881369004805132420825960614464940592983917457611064195484109255460731497238246120710623613257994605567080162054988393237967110163022727819005406452615571900458610683024241020554312702484681890900247202704132271700298664971279827850271830598697314776989350788242646726020019179616022958365112150019986560232089394838629324321508045015847536097158983348510631381291965880570775303635473556208956566076193460507779601945808488077035383209076802676006587399914248526352565524552762645328803876638865747500853438808139210336625757351276432675676689094264075298241901078161520829410393968568304109159532664758752293257271947522891269152848932983782438638209334533175147409476465843906015942329483162917109549807355436893834054027238913366165555825903468671567734763306319277483001786288532396783425648929878907298826496107790071003183697018058029999187652081982040167895935514144372770243464462403151164628548313187089142107868571124252716460523608520438351855720103613669236008680635753726947572787521160763741173907167160271807566678730019069026347755506074954818241305852116336374064293310309306557111792970370026121819005128207842916619458407400999872421309193172808279000889843796463550202233506949833414542166496855363717443061839604942598498364357150705805399125593170560610611903281129989591884674376268599816540715978974180718497209867360664318156618564250849229885490503754207788739914804047043716758206812154039817647807417046686400607817963038677015739508455755507405876143976969707470850013424984866949514622128111156978049518458405425630154380575149753381163475672307096507465280000576973487920977699168574627023065160702512744881231012991741670824291664794081162330338099982995173347975170670523242644837252641423197401557132123602602385045279868616306605133905313553752469707411270165180297798175707616295928458175179647312912863948987464428339119756762260663879854457618675704175117553664429686151224885649694676109562105111463595425267368990233349559127738026816574954678024890306179460434043602029194990270940204743089584266489223426370059495127676333603677542303991858432483101418200962889488580181346507026805925663344946555691070325426460225936389585726524459788590161693537160030509402602600664241303290070374879048344475945748559489341293206961146442311397259395301043365800877799991500013200032856612802982435067461440238789257172509088597495055536065633536251661957234733627774321676318588341283400729432606189894434098072941331532827611572850953765256091270930898617142518486221553880678908026993688756199858927028286425695225217904575421757532307754598857755175298938789142954004489493758609381965849658026238031665567149768078228842903518448411792737306309360826512987556335705285022836714108649518083436122504814015027548749672785344507493219596951641148267216580015159664962767016610067433294832787270965840932520346524496510155937404789956891496888488416868200899011296508954265260666939231806965433986762172632624968246346703853600602948760408626627439895914611818019249616094023478579248903676746709830221793904342310708230335046528739038620487345967754695551567664560758942044462493351186110926444735922362449168379435021687170738859315031118114563501941377666663617402667762010616842645813149041577507704836525894722214261557014795406127929720475422641530519185762910241385920877349249679821429692296316454299940458136364634666646178449983818336027604515012148989710493062494490167420012530082811637259664472119371147002180361013026223430203506208397638311702697431682921977323490728505364860355507155681017396647137012222767485899374835682931528269352254822149419149474504241962921689093930677199960263499049718918586111827203839916698685624407622928373882251463061428771289975919502408713024779377925450613436966251335651410565073952950363215009434201552425835948193526427611541634470393057830426924784236287775325713442775080751755475885253824486632245922795005071904038423386023047952115159372140189483714325477444090528123649777322644092370223766246409840527592454928209548141977528905418569238954925421866966347048273189005787471800097421419979684618409250025846041777531938610575569438819848893716461695333574550888261363175198170246948372604365256300084146043039186656160844510289123834737601770080219803689766815775035345509293353592053909895798290590171446108059327103095432372279915682762158272363279309294463966656138144866635671137656982340509116161839249324513608606983065610390856779901189872345468843684875654642498395660470069284447849874039785446937445916978019217584525518769012520959386225174309705191834643146915281442399099309103198993441215804664868946451242504515043511075198663157871155562551494308348781526749168787375455369106363843027968339388959235868557973097775622448097786443854920314409298230564069778064570810045657890549502035442094229291268342740054491386588002647081363356135216558919627685090525787842219085109645048621032582727314362859552725665006800813087865988235614191577314390885483993972518594251981758874033343797310809192597894421077966319747659143124260801320745119262454591845739692100538593779415755700108763847711639091472071787057733788370338285073296925586547986298524615380120603992521818025473596957287744657329911694022972190659782473008134957968581884761607483983781681663531299368670715061443858337292776500437401297353815932408905995416389235308529503114250328899453562118491904447606788935099395830304715961360478655643015812667080761052539461221221503521622366554256966893538931855237153639827198667596341400096639761276064275926099264878594341426925971341808177528410722126579064920091130696557170856130050195025118242619183602217432432202419202724579131287241763518140526398588483047219635282502018104267166684835707052798323104667815957380226650417735005877003235166733257934764033102497758848062045261434544791744626443078156723483115302376217976117734519399274806709512416554765206342638094265631398921087064083580201427764594904071243121111653311137345044351149738050512895421156489300813925245812170291710712524294322573012696944588990605569016707165754776018682705958967322208620369992977410409612170754355638646343894544119005383451140432525768731274542321352878397332659018446498676615403061318691721507236803056830798573835699955566944976577941022854221654287061171182101956616030006891787336785701437790556961990712018693510663147117417935629299560018833717230022709308914078869530115947872657261343292936647992371001061811143721831001591773578443533345173247083184538920128950784655649679567589181349066708723430368244173247754643598726688098236969220208390795452429523784432607398139496435629130466479937525213517432132517893309215227249631252807452798815995687083741716886158171996334564898857772634720957981860082322414969161219261288389482989402136854491431011883562463416751259811941706587056268113513452447835448508597251895017239602353943334291001499024055993704350014781358479347839820712521757426778683847919093042171689429791384011933903385626545298954449443705434588363955503137224712675921849833190165188714010953506416761061219276547524392221133297322291673383328936142432654308580543839929110039345959650749237485684758694446467126109949202560444096155210398568859790585173504251409145270324954982610953265076644797264958928921486350855762751918847462370094395831588116932001769757071768746875622989397572044736178722958090782696958819788810168247743637914152493250491745604357854605103102253695498894674561378731793912484315340274572944260705808497307660446378905335060526151228424019881110605694360245152799331034318184784261311991537346173515256460523861483911654834223461139942295998818643456449675213478116875727539510106761092112275056455773303127205246674036786513418127025561586675638849816060844871625658969540042346237006244597124205558376524735279757864275536497307185739238515107185070973140943985193765183586839132727342687588238493905683181415288339838371405820313281886045097755835362677725397537175700609355179601612996710050163600479283711577567989059194587054268909313555194214143247067422539162750043866460788408981122960286469729005362394400479402228430985931094009335012698510906177456416262901703598106613400686866629368831969264752314811427905147142497476985249762360760701612657941126018190339121444693173918037882411789755355710837647776365128171137376330172296626346895559849727152175878478782684004171355363988849550836373309208205099472745036519426970841936612496204103134400874644949745694269473461811644104727417725801542889710388699809424860293458032250657625461004694277957885684558821349187057709451696743924551066121266956623163597006035051974082929499765731184620476035566421272798522962085022497868638691919619322365180390817156292225734180481579309954015273996706833844555950196505599602488807925393610109979120731923426961200167622383240821687894952641555488855084722759402159908371198870243276245334463895331692949836416221100370821601051535945047385963942947870760150314485072365351818415490509518895870309532900040228553055533638424105580734369301041947137891775089507451379736200644571736612515603374610980933007998425685429955572028947042495091979816884724762104889567890348891925198672388320475289259623798645760301848250934871672732777156995970164784620876230467367677855132106232429921964828217384460144543729270347855363102722473647046714295153689729880271465328641098490249903139928388800481334730237855589368623189758853535882783195223577847739024179844237561317305137718558336846986375654103348322836507316319741455848147835119177380564547999730590155685010723771217163748392508340667179015280112889040411835007843271787431736107013605504204985484158185416044177799716746164913322191610822237104044478572386996373230283051060696383396581978019764038564101818531767624968563194805580174561995525314794783358427065326368765239678247515839335858302998472432643709831185355387740338532751063158285769150923395490802068241419898545644516387334228940496112022672209629010472618901802702440576455651559880306429005882033682445901683557836904348149518512519297324565702415275664240965165743738652287771234710929410356362460705462367357066127901250378271493148927049355156255576628213019963820864335569029628133412461601978411958428025686629283627814637109493616750643747106729320121076939122202489662711499183335044279432961641609934908521085159958477622941917882499024367368174219658990771799936690338975606668369399563137758603201649622384825037905777427056989092878347332439082958604938733265939088116309506078404148082110872699700439726910313431899793898792157564934873617563782171568768535417472211271913848575054122555254901310960554248679342690554620341305126729253872529816123040628349575712568981698542633967290381985141851768197356360783077763214716005395290093449659953831607333166981943045494688917037627642087694006054682791461769934293869209384956755998512409060989623647264607650107674690359705027418728678667978889190516574726599542447531269149787454771667529221681020330454295498165126494737014648341622780368298241226340895982029948261667526616955578638116490032316204885270143249944171660919914431106512939752606404867146359436740036645625805355203110035835005048126649859367695408927110444555118441198181720111444909606858169697212254654673038508103832090759061293698499751767614675545327594280245897686271245689586973681130088253433654797380869938706094597393790851532438398868236642143483331146605929907575546770852788782534990285822924559421368193625960959562256412721507812939728490419776955857022455762227416943472032841743372928518027294465316757662192412128381580542036753419838892765638674441464848886572446211582765245991863195866291359709060009699509452602047305869309499423439026073576847959717055520068520861803348978083178737303173672282913828437271006073720523578853252084291001918881146932964022763283869870440485843543457350562132011311587815555214631906812283122077970311162822731893251803389738411369804324306892623587888064291435315248616477472076291255388279748253175676789132780083737211074611543035764762856569580255404545132287844358561755906878563565241790600270390148423357802670453380383376062699112924615243669675744681306955846489871675789222152478247993076798928785994285009250555219419257074110819832594144512826805188632886419837870402764311339413375264950625494958250394492859444768587751780340543213649211085608065282685778889310355336234730933088069531166224810325327406644578055371240416843474494628762854522332580557307348865558310433072810074782077952840315784397356557257847807079700253284335747561649876886041430540871547702962372303242852452284703314347026784069181824732484254124118354301997334029427173170712313153637886612817106487065789675908387797768528168175887866891474231335915361928865062114177441926668874318325534967167189369004217884842535195394513678338774625022798677886178803906435325158144496330342995577605910632676802807955626276903203262813406858610627897596021719416837260357424947341430186009371007941884816945998373192827826472997272789020871758909183482626633951216518001957604217812929401603927817599484386609746127045410805544820027424782610942215554120356515478346041087878062524753690928490828456850129498845844781503819066970847277778545601280545168997785281381490971572614054394314737749235689756774388795261663391379092082467311032870107619098387006563742674314721367000428735656064847816831573669999132707163414780268083353955039034884820721736907702210945627080092661122709976156071856331707345457254833447504891634900379803719584980892877091824891855047501323263786081118614730648519484449764152719284827142584395863859445167671374292105031473796837835986173864942162200784485865044450985282729351017144080211729827814474895014353538170608495801790868706129537144043543300851027641927252281638191054100437154705991212084128176840581649014022498286390188529901904504993393478933250152444666962471446466755793617076366548055072422402012072540044399652719641511270157651787153928233468747796259564123075387677669653711200728952393134762231863766056992589335649265066139898547043637101513016933260407042733478706816527899756228438378679613480732976538352879246274903792965040993926862068569355548593030882174396785079521238170801357876293202453156168403516921889462701149520675374562547306055860748228166793631960936815585943910798700501637466835644510276412109375333500205737862737390361664669665468249228473148776020822879800934696007228566682099558901597085986685182634602871148308038413261675420888538483585711520368944354846643785312704993704329727424946033600115752530135226382298413541614013808809608092214045996152504615259413619419301838127142386141427661534266467266299516712505276173208972987752538570180997319400150483231806048626261132333853808103508225442517724934652018094403137890879956730773427536157049185381334461697993498018063544648645086605489902387499579213018926273489104616825225974141693253451318850985406820335403005065997677695090745641742826481005347422489909658639918453414302189766855360251169878089525013377767774058116973085608839448998796499296525214748951067949269638079867116012134839989050894953213684937763931675286378122950120276529713655298245225577517241741683383826455239881272460438137718267655584720431733115385759433307381083567609742859594016060421139857641913976433388764308263025414840738841178730090730861317706591038045877541303385904812103249269411193947196192550531117285158309140655551353014950393238125208786721686712747218673046555719048286330158582822977351842898633083028964132299446495609836005986391473466340886892147457717433886310854336733970705930840058206092153844031601944238734861561263370391346960706938450967315720949046077108778529435887838232415940709285344120459592911707113837041551372700380493384458875058526547698426529543713837245682400992453844786870905384241535479611992009403895525973971237510538264568985243117613797869945778746586866208231186725018772942902295438989134705229559022752411389650501183156361672473848915497321353028858778795966034756550958242460560664659805014153681841892771700950681262698477006192790201540429880905984264014904233952382987534914660902026148537288377684698123164792311382347781693505398342680851924903768665017597343625312290939971854078780689615193000482205899602983355728176968777299584298206720147841811600633743226682181530692169025173369426555876271738532593221801460458084208631903273201880277654527082466101268094988432970189431764406034948399268039700301121575108869529675310015306288978587623277289635422407143184711778522468332377797446689552086290089562384657716698191939096705650658481189740325283675988874290116274337661642327008990722412328612809247564222136666348304722565536080613094073351513437824725956703894693866535115380922886502284586328302040977607482407143339955725135729876819750661338482304881673271145790650464759249354205078159840986224625586267646358217935619407095002259004843128765782656244473574637105381708397875083197372120910190214780223944518211719912648244656869614491864959067587157121440208914051472623196138432346931755116601858639747855812365451268657153399359461145307863057788779989649921165870995887783472979300393290177926992599109239856676618979198771650125926263901298354011621504831081364978552675626163180824074438102770730003137318903441582114088868055657568491759081407992670656709539338952022361347604164273407139295967868858550342329125644450068649575013492856023474143115549608534755874097540210618957032043933202505953649244591964377539582497343078378556750866210191606777743495099518158726720681522154443038658104083632438424689261099726649334717192047863365202137157478820555264128530673760066352970882277143301720414837156579988789929575178876687853121695271883868139619449222227770271823555596911509215783707998645242370195947136629933296955862759005536017302817452460382379179663261705704524367030278620689522563756083358799738965868051819569836718874979201864350241833807665206227061012114294058278025683934114506031938006683374502382159584020100971414457196695045437138652273886317767598178530716536477800629338639493617576134474758238059062642416636314472287626300186866088309017345970439377868391395671139469382809075730626111210599603357021074718494709787178346661895797728969767602719250177347467980500178469619030982980658457591938596990177447169544432817384469504909279114319029489674503631113643071916481571412205942239271481029939741340894281448317785173547812744734828568272011198601697714970761672384731721098114577000159460043842998302264231335326679232241736061367054805436619972609301488455746107562989606556551543981591097914888093593959045800387196698578562549519693863631869246248280787197486387051669476920177800064173665757166744258263590842726613233619713103954056310247898557390322074051051090297295704077443606920571694826807853821792215227416130124841151218543042536784611642257049792220858550129816101810997620528404435286356565862271000354100617948937595278803151106446061566282851294411644249942763502334803597468875655255839626783839634038655100829540821232978290947205196098986611648601097629206830072824877158206093319333385612230336775550857997979658452044750294432653158728950092201691858007449230091672170438704051373643448580826441783303512991041033809505568094403860709966240605553701968214739325616959070780905042533529084955834444871559819961761155558511485291164451371608556113463207932533621662481027645393077688997141060704490279645644513582471421310598536670971395641904227018974677769606686136811728512585912720639393320376523762374238093795620037911245680720743765617854209135272901483660020512144605919149808349136184074968842838576414082389459006491063920126292562837202984435858874815254976649325692716157459240400118936619711779249798638789334697655578838707725190332209259621449709423921966726880321122494591939126313333557121499961199518168729110283655191401516981712898357333188402231478958154939268512051541934242523082644316434031914669146035466653119641105220361768947260301240726289379466793488802774869811274082146833073696991341936997066781627623732149257318115500358470156712187205599218717281460148504310250432142127455033074606242468586277907132541855574330875061312922679175464810349115705605885762868557068227686393712168573473121019220571599584900542851539027752901649795999838564542742518672011991154758748840255021247811657993101866767378107138840685705330151273185189395879454164976340556933731637984457190879311453453291372425112871197498304536921025248493725829938654784290135912762015852545136430863609685845311325601593920299843576673051756098816412883839295986091578711102690910100338420502169099845510376075376059789155890227992614243391381429782498534836314114805567330100064394747957746174635405355709027204888582031851937551276475394101705216988872653858222684466113263435590853194781076791938168766385216088800273242052424191837017210930596207952945590707982987891948511473074947389563085911356445743193750745698603330990159094278656948151486504716746168610197110889418419985047908055550795551361336193786983201367071711030559041732532170420535484340441294776661443101222098389885329481117383224299936475648775368851300644239200077984950832733176261035404983145977860830150010307460140228265400054175691662093755754668970471939482217044815255516063671922432180483970577025811558609786510801586079723994396450304588002901638205389092763432327913514440405005086796941274788843848966836565669182603812331339825203570816528285115237400590113384533119023593568193882098299971653751932702225361044186828834516851138962494383616060419119221510407585645686589848138081830394153002049185437536669595796856804288944651998712106409162554063851469341956032965851605282919811864789930105983791435298764930405584254459699165883227491703743014971875926890356104964737187010426962165966688797957512922424176702914657568597491456583261965380142892183335258029718899007013202063558379707236642287976811645621192675495375324112852146695540496307592677227746091971282611786310778151856162506735060330095406326568375848727065148476774705886601251852227052553551669591403382770892506537808539684496404991477009903940710164714353576091145388981421418382022676037943025119568505440116368347066267181627744172092286157717663600789138007731678897690340002913999349653788995946460276097823842774981794103925757389953782075648154629406263573064445603490419346652490880674494703856701904289382278778627916766706739997867058713487971177228814563103215131985755666632245654470700817803875426456968624804333616574772486458410602626642942442743376439488891357621900075934262709766280614941063463264525115177666149824601310133912710834274188226753432798637594238312159659508577950881683791824598216518821595536977777389772715025312324321060534681930355212412233003790301131694578385565386737185359625139208540862884434000281631615171374598329045722022378888523405016087171154576745351431393550295432415664487446126449658910464050534093151864553193576264606741892088586602033061169782313880186844532180988228122128258705527291308683873846772628733634810130160207210688399186057507346261937146214518519701047158247375817598622551071396448974156044452930991715725861453116810584404460932772665202076375827924234721680298800355428175341967732715841536969916602580351083227284681409887096720960954136779374758666426322348399696914900835982428304693027405327813911744658975696899171034617145804173692900585124406007503118628721962277795632632919848881722226505082585717359938572085549077615743263828947724661352954846489408743226319536359773059008323483390048215017446349117983102426223451893321738779076478500981102692110752071529417832671101563147620977376228568263614546964522446162661733299458266711957498601783722065423296880395546097120774664132502019588223487973504458536090549309617925017516096775272410867134685755586272892685504083558525278176579328701697886657356752226722716907216879003162376496017066135100162263898423323611543984437569995749233291528672717627209726119175394184678420865707002451257482856138530326415518219786932935213503392593077901352438357108236525254799013962255572823916531503608299046463820559087874849783988514062419277440632342909533339742360453624030994281605320906334683094000692530744664119485891246433045041295042119286322294013906958200497669615763369982713310199257660333351241061573931692621383018174288678603831962223728690696714202488743725271781662167046427375283806639041700499231246580631712289073163741176399606769221354242131140009111694676254199939400287558642707154110182009144217282556598056984601013858919185614848914960491039851939283897535991560059076950799210946964758071246655770070018780427700743614805146932036836194436116319368082480094364078715284246571680477265214175690981884005083837485146534993434939031961112449689437694182697138495154018124522830786608122774081263924147729409877554607624042461220349809062727380023423229060664193724350842665809890979009079781295836340520786115706125670863558156016276068960487433495423670734247981430175169727818619991907502323559019965580945028751550907920646836133849741440409849549403056520757301699079187937962738192077169854581308250531545168431072350065666295437340898081648114040030001418231693411831787580520328423177509647991145205401204925069381377976902525759519800066105974217104117045018202959484187716280650680423084911071374991199092586135083073773027473026920593926864087345287041750151932329902348113780997753025580982579611339202203011649267897174164294709034398030334154117167712522054842052923352250514103654387768426163149950204538643755359843778624019095932254202704048839047397939215398199711072187593699284118478427788857701596775360690030965997225912978216614587800503188065516415518420083125152980868324246851471507837761492901403279499793307696831274809965306477835846015986605923693973226832580079697443667274734580605881209114468314984754874594207964606617871048770397880857338323077868465234820997493068666489023596198172017297509523356211303404519725722061641903416840536257901184619625421731790174755420927172523699425556581879781924814151200228912411053883780389906980388470504725355707365701087967164227712340478825023255959504712499270889036928666593755423275640411555118488414274638854779757185675977841326713141905163836785662510389911972187176912907796149028634719077224983075077801989706275634697842653780312719791601953129888216823785193701029587271606796720259498388579037999906063476508576081656525577265963345210350490860161249827245143457474469042521349889921581544817391451589800816087163774659494068687000050496514413857755881811248223899645743818586567300508026524403731234156177778594810321871677749529379848855987836850587400091478331258018614931560373353400524540059122279565240955815025810232674325528662582752810166309205500023069785221863908837605553530200552760338791914685745996680870877732502762043305405798270004459436875977583648773811702632162884188676171077322984723361026895496560603439871462944646736485999122401378994208388306243445277300193402146478600654117652371053286305167108250806863896093587647865120101777178946396822496159489860365982632071108296643356337846215432841393576266031031199960282155791567196367504811455188556037452948780515650721426801950848521277697818123962294563948170127769399679565459441549938132440538246609642019236552626783107441916307113298889555535890198333249116504493717279150820198719182910604314854019097579004439700906217095151977598121879738296384126472715619504166411287445088598481014176284179286324498907437919429928777767994432923279695794937352276268388306524595360963644846034106124312571320775443496603745473735759496527532463569895359109961824605257697763616690714566320351944745787967724053678343812003707504895788557104124815837617657662251724794020291544471217606313262287078990274898598417897706769069242675759061081056857272307376134532891171201441341555026978134996065227035129499103807101929397120800293099044385786061713103226779518645591734200155248633059421095084254048999523712739082959048161737253726235306102938263736233657641601684013291804970340732155447143117329584019262791099861560069118060602829356227522594276615012439451225467331604839814060991889251790924714637979818462964172843315305572621370851668235363604146454228735156462872357412846898716493830554225338801460122759579649129004345193424968261234020190552765141877597809227387026447897397036799917447977899864900733158036193889969666425224478928623018489831973258539143349183211439831029423204177686068551835114545988075511772695054628868302835036186132058949798512501811206464999841096693107622267703233538503616640002429135421447185488873564118470256645162177052195188625793117081158049203092110826661921442649516243330166325165104445906125572295614440997502892102941001641086630347760427467070113802031180823223396562009789570943392037474319602666093340206574861788862789605682707603479686290271507567863589966869534816422525314867149737041188289500879699259141748635271860568139412587944176508816951298151345253587174248907476863573789090090210369666014866101474018006836974635779577615440459613419860507072582707748002602506587964044405537660395629362680898278702565642580659622956914098555499309919440478677312773740522145333946120076684363064851396919313637125933046711403091732705595045510889160309947892016354806079344647029972717320776552936679153081601873298236045525382507516679933516627405849302021900808415962153255120523021903693307183118322991849515051813467978850567316093870010198150651546467878286327056229982483163022256744633707148792341963684492402689470122179447596949689368033236634386388619453023218290085783729246648406649934520903168954981043028309386517776655057423553162213916970036840531726095764516458271316633135003944897159523568337507160173142300978062468663258658272250849921903453361307465471461994442753225142633735283428962888631388227625679001679249125207268392732750330701375932861785913640842429241271172898407034785763788419146483534105350582042454210683616386691732581855020733556202105475260631338623489477457001239167439173012918214437137629735012433921426860882433436853495093549195346148602820154652152283365345806362166484858356809213147528764869777446289564819720213800394659902350219903192831313972226971688073028683411260479096086624294153293577318677774967307164723945222027665016674074810818346025070900317203398407128159809231147459980093887104143647978796235040399571504919098331546389402603619192394708656408113066755653328227299115046473182504493568328830996182082188700145618685142664869373988597139562248672921628912414989967325355050144359195708313556219972116579100370235076613787600163313011074481058290583292010877973250688968766978687335647856086349102451891366017472385237863104676447529141977073801825642836796814392667237218571142732404153648752742848902589880963125015022994679286651668179267567604049647600661240551023135724677038438664889225553059288620093519441696737291423463794936716541175404605123742613343328304476659619193485073243422214832144437346602136087045508318058519597306766017005988528954597339699183329748428467403445956498094084437419490772297670433453986764490514779429883742429004640000341177974060352845635399832170360883444307880464761554182226192895357928195299466544983774883504669149001064886445726217617739180310563084471883415295191462082348535255929625954389550347087803612606038315076513401989556672086930050120645601172131631280373906787571976230777213973158436598762754890549211304598120499418768173977762512056018840190900980763883353982831259019943513615786725101848680025414360440202496869347109996910701143200433024271549729979231357324214412893113564885784661603539851081104040458465001775064109750439658456293617680669028414121644007990355940545147404650707476844337795902281418815164454320054851302907830520607626487205657059679835722331520350972972368497032577984217923231810206626786644096889184909978392118329811531437228915412250285921072534635853599942305526963282181218936974477381731918039677996905647545851788762598388924821073513060401392700028415706314996702058756649228699278271767254419193268084954168587408179671454538141473126222324106819235453208735843422012985211933682855501557549590806339147044275024932101606784317157831383612590198941974830313360857719514189476944834138942750310239338202986304532087155886029248748738498416071027153856258538808888489344831383350173696286139774501435640970117853110790676981547801341571663232643884247513637228583852212089465021576875980400183650519301349329961049152419828830305037185623220472458022264637033194312150921854062416088398299256994747211338182269578225389207854886742294663423651008050870454152456178543222072096613592923251521311522367616408970545252607534097979371380566519217592086633440066044029441843841468335879890531673436507632936870438803669849388254810401132850574761395331996348146378259191538993915662173850082439533786247004403866863078893674373202943263880698698715141482631698553955321270585536303175053723860036627779333525313411789066840707813604964910081882217610110635949605476270167484920899295929906282345591132518161683977131192029608096478658340990465552256918303494427235368906203723839360356563478777350568782245237405570394940758954814759654889339749606113105337603379958767374295241228159522573832907497267051535327785542215895469359727328107641239045875992913571336738495622185958015104747256472127922410933205120395030665261272812036594373993831145651921543664235017698474121065991397092571996170566849306961058099465792816814789830047347243314272538746050179398239603385199237906693094880796146326701376603604483145616707399221817665214357200513277756337105470251623745932250815140858264262017715169497140304605969220611991374627450654637285364708743929982323896919620411334407579664065429018766458190261216163525109138278150417291952867651097097265036466318466441687258400846781792709182809339738678210821933013355256211718121676935917069168000535995182938704221628472936278597288172889205183998061273466562255099067810228965877983801187474647666810388595905430837382809210704658217628426338557756296412012230676344930982256961733281930518794998605886130687604385715804173730805140418293094850795452182140661974617278278502495442707563188570664030037526119734589929944854417186033206918235048470403580260692819057482056259465891577316051825927095215662357424987634229027232242891202159964003253182611450931379217895524264243192619012201166111742788780667209029087790645649497635432320111957697140138915245729800540317965375318545892644571553471252947948762302745063181521310127882685192899489898492432986961080707715988147844123594146492815640807532937724504147330284309880765258358133642729484189071633819771200108915759158719548985256093614735199941369214394442100344226141055940377630558770458909409964962153970607137904192955084285450856045356615234997412757725281205129051592090493643813990150635460878418774399229957414826239978718481592097887666149385296738981203149600441781201916379710333452415148114134987188273184656824555304193683503711651513045422540791012936257849122308209968257460532329874100717187402342756089204845322141612150781623494706859226401886872095783073698941447856187864368808151077365881261951929806289658780361498947393623205293137593158546821401793392674718571780392470411612306576595426405363943592852975349923343492711248026375819762808132660602497583686976863168497484307070735455474880102844552877694284235906250348141044378521059837710043208283059919596840149534724232792501991477774475968134662796582737643551056260886130935799599528872805563441744902867969817100534710037661592967051232414202177666899119651886620312923352490074624256184732031487597871345791070058040609380817203272826150086567078516215961892643921309027982401914008301401468163728491949571424941824541808160336795109355330052953071680435862444794970546334108436510003089695066393419290061891081668793170694359215642422835934102325230585701845764071605241443691384373402097025489345368593404796789488957466422179937932161344506295994000300360625976456711041062195312088958337939132017215185101631572789873218900846306268398379781093814159081327899942046413119558145695488437277250828999155131601114962335570359192731604457811541292177388154573055491487231460030280571194580658799486114446675117561936855779557612404147568119885189003696011013489204410913778708257527128015861016955825356877535286735457471451746061125552528491030158333968335172873122081023711996294057952714291712947735273986678209363633055007796893229393843771752845244662697231207876205981591878314973411710765383223018793048261743620945487586524331324549654807345727040521629472471621292175968511959330018075349926930623936322533105398387784134722884272877683079763491491517842500235260578168396267813329395808349859298389631059325015987327217952394592645051106254375546561127719512958950381830959117925560058994577729735766290726813647603226021575229416499011784147577109128782817832025094509306308523291608755345102593365385123034174567654008711425943646665329693436279130193320437966481205478442659332915964427741446888079099682896900004323175243069288130335926813947682040830790802230311010293282044368330596696333221752501376337375430197381132649137734405011169890136635432778813153424521500420821426380290012795501042281052706359520997602613338412336346143407644631214383937506094562820849982030264602683718277620654166871553668316856128080093509096204964612066616361484436799954874635221216592155572150147364480670464972251899473771032120880171457690633723473467358604826017157220474434003467678759091251301546458514947362388435879050909043715477528865764695302303163652250352792728932683511824498369334113407833032507743615081448688127491057948191804523431197614609425252645265356271144141132246237610663437001588440176047036461005988841441015288819315456720595377355426966535526794118311384204922598303773291598194983747227204501667495900693835716353062198494610176688842737088784616282655968819222433025660207975849829357643271221142043569021041421871709995704162400493752461716011908785322034750314064593183706946206448086234263954207439632026113082272830353314784239808820948084023628378354287791941252647527331514954784626760977772827594532040706874274199961645579389872543268253380940872619895801581081069688225696655489055594601488444088117292886913796500442821182547110071661123911453124956554823726350456455219207486764318984627294222412176581704844765058677856714688612971525698576624000505713893409838813996675415502478371791396596032008239058371698794539239389433155754388808654529999541408662091813271767005499781833583385730272442254916652057421635558278636005730518549244229918482560716699547886258099070653515374352070103428285680653086565218324738767546771532513370721389179333935776588117669171363793174232198531929469256103075677237088368850676246252201959916701978324010964012698590206325210491647674268040728001854843568932269241354192113673689669005579639109814376039023419508965717523613122279577849515920886660525136924307733000416623920168047547123150243940546627173267525579426528350021853863775849530409200190679771948611345797943832335858403929435053305006916843356807080904130456522498372871030232411492231674319642111163211308048702764886710987443937940128177597723481533512159473955932147224632601652636910759564104666904640810384854202171702057213630399230575759117855833566124649765600881872851488244880623885253366405634660084407689345804221274154480053650738984221164751159681409623346012653430838761481974808328972793232366738135442517366082522003759107956572970514988522662506905654130884376792407818369508247794597610748789078221318228515091467509439457781018990179862213063968188605381947525887060281699592574021730378786450580286330046224933950778654027016870556051491768528792348860622989030779022390548906227258168491280349359043730086210876146409561839424952437957647176924332106771857164229716415769415650533322085630661747501130106125982799251587277923790765453051745790673579306745839330993759484016852716149680565764741713368818101239603585493764669404664706472513712209711175025089308038218415150330287958961351647320100076870647502889172885171040899730637338727748309235147433594283193268702630588048882408475015211223061571729282480105843273037891560412600702078176066730953588082499481591322503363452968083037335731200600324385773087518410108301969743344814838910936680644165358527703213819957283164914158486114767803031276220960469538494024576933695117216351285835592049993590811396348721306123672690155519278547748417797138286841673612219536751437830992249990445430549444081169263762767967119095874341294549321010897402940124427222764260601813920562817078306745825372121147400852942570837385875463131862955502471359828791968282479907530778690305216316332656720195122112740700896814552278076577193808581994617153350896083982942212837189667506029143663414122080742267802965444246590627288466473027849163166565378571703556907972445673190335087175206015931300551937313868796892252619200767768468357602421285854029435077632535048679980089619233787945155589225926538158559363895578584073757008129403727760215698497216682873149062453617441491083585040425280032233178779227677692799823224015376608634121904343624361777201438349627560948619897865706951658856721749054435154725645286514330250361799098073843069958275890721093791385076085142615310984784189500622854280734422306508649657097250719299905555842482594496234776445899812605961822272964931789546568643422638649877157256106955663295395154182160406538720112665786063852807425321448337714649966193045451489668616199502473479500132119783358765801918193145989807314645435381805544346902566614606078130847600862410122338692398268441150337040804462286249624494006426100107276520047276553526504688975596929646240609438669454765208320825638903417772304603186498241707608371301178755533313610598670066709009921203939510363005521105382804706766355612345366829369127434603123932851758242428999907852589644890658009943833507630630925524052788992041037572330989821132843653434516796648567347900098313262357715308186962894796884365066555668616198781859404851289214131780047408471446039795278589333428403457321213799259712187263153524196182741702978091566997719092662610768532039694601574885695768950501992165652815126843353160149974158200575841413687734190562531241240982048293286664103522381841885868895008873887930820500985133494881345028305874981472267073471371356798223461917727443419793071884394220887781080407596631449363359533087136965124035106936669927879463770249020221777113208541989946214232112951074528453226037725857071825807612484482848429489587103535545409864161617706388174467730662803070980314649534143912282656391207100986387691259648850015929761842535276733429438340513405694648720924450605305180970619593242800726818795100918968333813443153446234116079469954017979086276589338168343969736083770753304274558947657916508383248086694449345576196113217757243966331266507852693419949064401155598063080181120584520641702399581021766413738037212523277160232523843330720270242866215868261892695748160166578059403956787240267624067296746087862039620305642533485997742246499868833308240447994543248545876097092786561218349357369926733440364887971298113072872781933078279273430194926488085173357447451069701913455104986798002763929984741735333215981431148860320962885209667299812074937914625898412404087128658116510044198345472327278730686589528165271310045145872147132301458156841207407650261833129780961953055938156464420251672960246391328349882433440426042513130574287210034582913464129111532932117983218928803573671103107107478548673193323146171901585313846004548391015158738145521394911330702231385475684620677202164921826645174012908932955278112117457474981938153225467823909394608838229680431077961343621584319003025914920815856817730077632821665709226701163080049266626282973785042625507444718464169411495502317946102226830078039883635217140896944503741692126214027168662612095049805796314537608987753117620266766222232427647792029619656309555343993539954025323690214220820246185161749446530519135752798299828923522786518493951220873593945615941166099451377449044547512428414260225353995020798473956274944800613853431695513575847670452802626761619573992586727825675020865807386406497386842817021669672428529418480599817479915942143109572943667997713334582594633358531523007899496204087247466481339222181177173486170403699293520579416878407115439683854425526721108637403143605775647016761017354190753445183250922083084717793314655245912907739638287935732501249935419013571324882911092583128306276234430619096217086674163242069527011537340784453714751915876535961527470314478226796091302981525878808903433420937734074150434047640288753900237103603424848221889845325907715606552121282981434929557393568536280166951734220906966597853646175959130326856481818492385744184997063783675907518026313763424308141152233549567094532939486100419284189976133400926629310739757317505099444508314949724016348232869803785525702967155303458905625867436421263443842216797109241664393329667190094579400877925542008270702441212197988291682507468105034230581661982132204274404016901195485789179317213562909745362878368281233493658714761424645618860405479233228606960995417998437328224152004131542577566862479317018688255174701803323463885976877910941098880349195366876902294772754348785947103202341815096396164995616392393716619643607525145360924326806197943336432615500931719772482779604402195875458035412900986936664907918093770813194153040262463624753827064798275530238340571399435366554320717814080064187775654205730646505202082618184955165771245416837593008501956519590459797248878000197641726422626446950248312823484548819154066302756452215826062123791647562533614789840882837222887346590004184960369106450320775758316569637452057114556475580528500164970653374554270589742905361220494471685045358317454527883562064182557920986016306641310543596434380533825709249479817129298917802721998698689753277054604775164243413235248102055080450452594795620294356591006504148649724317377923233091361205452513925609218444041982227326426426689737463648735592228056670802008242657779635411323594961329864054411409219908928352733510205747993668755641874070439660810059539916978904967275777886652214213769361574314615241873908709803987308424683224996854002625753993144812343578723553589866835293059653360893788526039000037434929105271241672045096702336394789277055217093569371054011361001238149805694298316044862647169704114341822315745977987640179966943470531258791576042504547980155431519364451897845005386653869146644542615660383684159782810767597729853905268978858536740227246760712034148739949018109747904003728232908708392025189361707590005825962060217171882587816245008348727007468138263681196663184110394063372283124544395282175924141072866111477056376124349546922379414756663979098108466394201767044550781463346322685981573595903096278065205081464503757834185638540729111551651101040313561801770561909532734544662533371237968180159483395448373983007870662832575886762847206527052131632067064690001860139578042118767425166428474614559599312682701258422956641385425251330104442265519980578638102899179300423847303227502141134876812101162757224464043200405411518897947581969929761369658600418349600592757682536802644025714573792163960201858988614521612773425605833971792541646247646102429457675107904616150816897173061170547653558814511343973232576370103947038001640704529262965870931959043738137666594010952922617075612371325363223660866852520985800384856561380352276976652583394967613667499339429247724028695318378646437787397693151911960252253189374557060538848089697663199116779665242143010609762906453283809173933734289435271550113127862257975286341751050565812043577606146521586816213250786087250554639700742739536467383875511559529413104303982643766828646091677970167127410215097662030004419865986878164818156192493093178459866859074787976969761350684672932570048730076787799775715661996708550345391156448757037961532941645137873082888938230495324515607864377247037466262171364217381442484381904124647005722399399353712617841994369067347940241880388780690895639851103987494022789465863499427476381764212777211048910679243883637854482663462153215535280862226536620842766396147586399832725377354387735224799949272524683540770148770349705117668059487947071263797376424927386863617801876811709134295453525864175623050656156891474012220281131213125903490376143270175814941953036830341181758354685741142348879188546853607054216556890573323306362397283302808268296394836386717360574881412003424750028837689602358324931545306929566454205983686619086385405521318750432168839161265582347891286084942224869394257857388757247791629186942289587192845810265779948313188668940198691286694673733048657085910504231998055324174965900909301977967573718230231433768925259023671943959306263315851750505783881507288590353343834574958565497606207110583412260231573155049331630952503816966444419964149072730129210738989004739606512312336737464974696468257423365575121715321617582736463240595490406154208958442587380899453615400789053439196629941001280384950153601751509287776607196450539888041882616779744142648068506223918064757245679995080561942495063570755265409884215012321530351439217606377823410845120647342179202851493147940668673428082396429572323225976959015698637774812932867481736086109219239821688544854751105138660806925142699472540604886287866654830150711586006372338357811516652380595912349111069765127812670789663897394624057849000103380993169759503228699067096960568714825923575084552069945936427399248133787238529383407289069670072138148830842425288132091019478316672007437610605375163303950381868683268187123797549815254094488133537932244184725851921243449883494216265929512472179036983635879348413499263332203666599186258824915018498334258614501557386209760840698168376611360164250946809519392388628442340715376163449345463433435627389583591300440471533975541610123972682781262872121314113071508895108403290706240673333206695655964886460463291085070284033386627995857470749223256692632950584207779567847481733929372377079305427990860226878458985523916223936547181242963851573542750021188480254332453802364902232080649626499072618725558251700740966353773758191121710620295352360451514559482514734860242482815385024147515321157883073663089745699153964845522361305961676597511362755601163724576432877633633637340984666151322410451467497867777941933610136350932407521330280630414313946273818587202911076913879433359676455162289039828680027110262162085349721604207502498495982904913075397305934756092552218683957428909919488195825502983808365034516013142285399780599076911041011882853358495800897686974857980894298512687132312597828953042237191233025853393716621762883092956798226023346822658637042461487897879064300681299091352079896477331407537802766365396286620690400268063083273769982052397270291074408731451343942967584555302217935488683374915207738617831424829276111380559443575080648967111799773774478075228277302148010779887765915840484720014038098976496798309280839520157097460486346725317976420656889924970685376746764137338538352337186332304040060060900875203612873948570227908933382267881157843104105935144641574221502254580330875440677269740681750959601178327957361550697621260475458515374868476199908546086169096201768771603081283801648118613919683429495221649982953392900830607113472836799865947468174782765117100515833871791429761314551329755638713123672353500036724361962743234685822355153543007407307149130875918933490345240081528577016932689711090781292568448226970307072309408707696686624748981148273015147061511510907636260661307786339847930739792620948323753758773951265359727196548125670727696287480923274706269144490476238721567472015733913151765184756134268602443250946878799482131383920955516717811966177167815451956479966583335437481503864714357864347870150263550052517964651202386695840039604265074125166287056545029602966032043920238997623817962358279469421040549817278742148511089572533850191153240088661935247594656757433301437219115395990207264468293215149486325953219704726974812446547221226267787007285833927429892046280958044351176608961226590538866534684497664699699399612668638848877094746878575142102457307808524983304715149486189502955662387063477276391553737432919471750526041810543506372050107364529119801528055760417547269682381888023421997048893258543509724176384893908981358604324104399989133720974624505034062090049732133706462569137451273201676375578370181000381950532931585979183603716281452440214240349323765438306054242750055643606360014914124000111070231711775662844565366063771229799389242575214436179789836140999648779977161841469787966626183188760354985311070333199165907176649400377539866116493047847374009504454939204769504294839632337000174686722228211164876019555480653292602641355595394442179778940433652610933435236478334701909115813706982121303042497449113550828130948053097151444393182173662482012214074391061950995270942537151844795697606244151912316371531439017572369789996818353477119464711488353543047062214816883335073116560578038659245360007134652318742588666075904817683956596344241894684275779083887070005393635555575200590149987624687549976203369956329047946948973778515095761306406945582464588827217308738497967432282687712571394865597087415068795551978388409051717889245154037357865015244695833904559018316677130306753052170473455150808518569786885409475592143239543619965523708370916778455175341040477727114793857087696844195523494094949748366825692846494495008352054169226066202005032973961631326221247252931728629544105938524003543334722898852244649638734762341403864527754725143853514060618918030777575886238320486589136703649465237569973162797062895217062519072831947248966224972545709961556066793789811486166913780221825147435833289537220270709063963544153164126698842447213621834897278599984043735725423250568948346341770390934725775071421719813929228132861387408841194433078250841354327523540870683682826351523431137686791285435525784313056150290164351488632333684757974120961734921578074335118070439354599831078195148555173074047033315675307754940913057139722255632698354373989054948207074605431388070615959841049445881659014543802433659829300347749174687301655472334916738796829107087307398965971145021498838441515021222236017765898032627548045217749286689576017179994128773255195641435355917292985089580765940952393405277582756355268057655733172911203984029600596962649630868552443036665819590860522404040339576298611878151633709992854302207437556893351368385135522216346392404299291932424211805376262400731921208427705102591946464358851990709652141153147570819947438643746897703966128042564659201049958909116893707066152180400430950725633015229282254307199995912040247774344758900965852498862569293026570186800093587187053221981005078280690026018220372446944944383404484072476197448535453045936205511070594499091925546753315807919377173107340364116639664309755725824451132756685148553046888466567009497345656745786487407742003192090711545663852424025160749547811904682712141865988036579176375146109399439319645459622073023336568022850246484897200273726000499188324150419294882014778980627232182084853002251850224228583094016281179455048647446677534910065380843257402276841684856963642175679785128365058110871332530807825742600690872833298442002222767645529518056457044478327838614110429250000264538162689739344984783867521389244081842878374993079415285150786059762538285532388622406729151776779925507136143984898195857906655647581956852525057023182476427018377157346104446860679070779475105306971663227898335381530181680770451604369087172899475307524942997559741263754762743976728942956012529810122526591544032261900548821101158291060420999859198678351656825319521989916242468941272795534825847762633097878479214758925881418087915515681219643863617254377863489671276403740108863562331523760959743458274202250999954756603355362956791193324993896761633445355931656574786862492520480442191160377722415041364147381834934652969930685669588746373157947075605582343587390372703816614550026691849969754170092189243920047304336213973764040248095666699068808161366115244770245656527589149427285272986027325471519663993237785845776556824833254154955473209836848110007301747935234349611288976723397212754765007898886635616870446749823534892458279899870807842831187175951435478005465423848241226249375185666752503820839745490488752379740046577893066518798891206176416782458459931820418093286646151570568173939310853240799101232117025053456681568904080248285731817240292859018364727008512139366736996876009861727097365915854442182562879576626595947660448150075908308855267203774960134391239662537487038442954690173033285196566328382014887504937431174769985240582039172035061497444702800224739518201292633769860955845582991260570902242035602009701811963139906682707826575817276432123804734319611526449564634116122556842600435994468651712896231375701528721340778425457391357879408268466389508799584724218008289044341389166268943358672350354981120638721371618423710951840230692659057326901185298600658390757589807102187527471396123470737139908621773411443751415802153943500666709043366060897641032653029407933620447545965213154469388972768846925779405364378934955231678575447478964188813434612861531996822596271366752598504337875638544194980674143973810769167657593194842521801077044947758888404326584153739073044950996038640137502679701568249224185875629021804131722226017462944960599680201706122535914908897099966363886791878209868465521281727906452146864823238632772345031239847628259209901443573096087968281277955378939977978344424987056438891332794315868123171610379171458557123261330173594327241464835440146936913339350591140353723108830378692165949862688738242520054698419618860185760843410336316768578736949986322460681146850590384963848008843863647598335188985517803936805932989029877908949608513547944441941134614448485206712899941538654586121214770507336470740904396711907988060742067870802616366890843910332589568264805430833857721591871829454758785026851586496200163950607015069520598936416989792127325395404266038230268201059781586714429571137145662444441985184438422291542199724010555547328134244096705819285184577279145156566465637440801182604660879988761238514595111334945554686457772198135871904599318229980916772381827005982969055651782714489958935766725053325668037668606631190587604600071463874988418973042400724949244096749090364684034591224323163756177835956065479185635610668424718979889753887973948623410639422663988031672459839766150766423594097643493954897108650871985652645976224990044257643705268239772853009279662293936105142235338331992335211825416049384248475091597602561112804206312042541939133018215969879662336931114287509049368617009303282937401956930540956933254346389446376768328681716275718862018556097949782796085919307048259406499290428950783261762710218736850194894218364149391378563272818762493589272318112499778646311628907795091858233838596617145105244946580102445670711447596335643316440754402074702168998525775578302838794048444175142524400463276602898248312904856490798740125819004657510390672790209383204643442511498232171242458281793007619069649088683537411504302123691182706071723714421072167579527745239275149829830338031022765561543260673358615120689547771605286580071788629904763337148888533749373711335809618746902822465429290593120172745642733756090649701327403137948077009648692767100725090691126470939767411067064548479692695590106476816898855209554516461936128273028326442493704656961980200504246964863390126474438396014526959962332103743875581972072253375071437980014479543564594686338799836607609482683343007453674675918940702293943354275738484197507367245104561406307278254529837971718989305398372154782690221949263666900225733350792198480905188037408426008315442236522724362955657595615778422645273774551251287586906198176991848634740196248617995400034326805617709296551196511731800282006638425285037178583855023273773520200117706466639630421018121031610859580105170164213313070284644276775988383751960419254676931671174382317575282317408428638405950998192738614488202914116122547984828025683948187245183313014908318405896056210594682861636730901761254527806014310189660946421616337878568013230766042114487213980920117831251420492350101746374076015699307304539657670470452406888010261624681301127194132848318535551229719960930983038341701958648994865870750595190662380074621831086200999785511629595199281348510578076920771805753322851436079554648851390714965787436621632058960067468048031095801757176594142932726731987130368329895486160403582312274506079882519288234440783996864861436696284296830513689626189781354098979776534755786420391848964375200409388671734029959790142126342415344435509625468681609468546424981052929227292992424056286209905159629010731975500133498206412373573413963506904637031224414150318240587163761943130679832288530176169334556598432915738711814254224418986378840723551169698423869040194616060040741388667884568902510404655212578817809435397252134909929336892832889702197674263474809479976327133103714832833567507564210981971772392945391260710131779449031156925533083081813997376329548966133178176976506595239305151183137768339283062953366712540085516282802976781888765962581678912790092351930702243942717360496449130170704988443310244080792824632259409228760479334908545131013755343485380168581070268236311702839179667581837165644933104212732030298023016187443687880277292913928948983481188000840128549799770599560716685391136256886402646996444670677770660976614274362038816391274864941088370737186473615977707171908593592174611629403610048010031175340077962318800017050199423990767733932449605007649058407169575243967955364171031290366074567936840598941531173851337449882908050761365782841548054218676003914616096936343011916478853765407056211595099089856313850644249592564889712562739084166237068000555223660065132734618212625416447356478935051072314644764280270458173231002275027434383098723384515185825749506794486220157970201011362739983174772077032160046350969057064504395413381569152516426666648662300760025813245144159375499141320079977257976659499130394497298477579926313094384328489471248235583540189048567646647841020388112376385136256339933574863316372862806532662541747828592330312770649500780498193652617839008607666708325207566868954679861307408232257144097060765222788876678116188445126745473232624578872122596044951315042537852710705565640965855456142803532149459604232494675914120467648819145508626331575649641081621389363025692778599414279178397087090975226620572242873420844555927381044471928160673203105135334856138273579393424484536822702183066172656313540743967535378642939029189753358208418227427736267484496314721330145546547511287739550746081036749112769575107633875223613173960980292978630629250185452164924031201222553611457065598566806488267939054691230725576741519335623908787734317529163444910077533113105544936617180634586978926095037515114867393358422788020400802105297819493361716444385465746394150863257336363657730152562702860810847621303998616657104944495790537541998852237677599054818486344328662699875550141840944346217200602967280449746002277674165225551240608832622147860340977011622903829845941591425730237287088958577912769718802652585443388054843972526089582796297131971841001330022205929255009522023522019562502353216266182296110996417497697582198505579670711893497932857555395379167255317677707074170721392491995404883054235291677047761728631210678816645186293217918667190466056142223752343132490633003435454831170496391786021125413939190780387580600332418443224380156952824593091074716604424625425866107157755697627957945146642498067983905662117949256624452438088732771108960675864233643023200573950131161724502363989544564714782683829669175523914868141384226322076992398500151595322186527333525025729358549497269898448605820799061649639001157532349837108574628087753944950631938675961661789149403964176901346126552703106181225119438650822377123718578197071746485405871576104325580623583945858877701238837917816163475749555634606406209502758752138460091857311663882591863334691921313467985071501561190879037165602422046342864666661048569546573859237394394634707732751458913337479395433378404443338161729824288546375001437492736232727650043665806283811867808581460654898409311003041791326553072973340682383225355497460615345626401804854052379476914479901272034557287834592379356864269662125068510685757257765890329740806446366158130423751424119911541906456734223814099618324859913096245263364192042586906077521893549875614895745552442796194622943074440003940842700428795833310406123414483894138427433644158418660578557840706380247494627732609864279680179064434882243176672271204239352794350231142769059450359422034199303690967558818561056738595845509884151153742495778712392746826979174350384263602313055430535987009031003997248886662084723793268461852128005093794175995726645282445267603933990144808373567083833026057907091049105537159445344513958995353500360209287371609742842370497788584237365785492602316169393801797047290849204427032844647087168430239416778178403297983532717160691755211368581209084076300767207592999113422093963952979364357243787741296921700986372038575756719428425823171042694150971108322457027133379699013403451261906409622785007793325017634843046237666963371584911905178195525088114317743276938991515727912472106300713046560958099698191584992781721346967328440525788580794143538946757597191863050217602941092022087952567107593804893535725888503627496448765413151526052416636497950046827511249568079455656076011857878954095811101817431140960869422481153220967477292939130278882221845724470552010523628286290538812095709311240167553127669008163196800225802388429756833380224295377637162384842841719104818074489282703162240974630647006921410683765524500356693844220387701755866217341778461910353966932449359229548063765970236326056120821699844744493969890697725721720301561802026499513951894434569784380925218753611502572732055078534869053525141992911697474439099358133208363222754158215847093413340571955296655244049195103139957393831987247654980713539276178283569975094036747396916400493216783113899120565501582069111722828700696932073787056585706089861070648786101092588656297169576691063285645037885956642982354686313512791230615970438387710979724326235303504941219773796177712787516683725996808652613924235074320447975491808822585251872238215979367250856483472919079918305048854400166287845659959407572278787121960150731567788202780952423917064582233833272219501594382118091504393065194800238374269670982733008430541740598235333942444225335560411925916745567757113890310712617430806531626420452126795027628136875207042540195765840189738021030837630680655314808170653488293749628198622690192130516696865144790892657774501820287358346028467962454635393510921493255693061697448054616492390316900828643802995133254129600590897823127328774315065991253386447035103529823387705943562698429505930962772531151162991040758937286881843216139212232149236108005819854732266445189513400035122653336396871709923080030907902232776800300513251960908145731151519456631174126048157465677468628727482438506779111754166645175954360201945300739351052764134082582118402915587567366895958108643990678263819083722261857597576489383037381295949607795770454117095615013745964347267011724762876355532643523292345645590248123806376676065287676813065595621745137633941596758943555290925460634805133874722033813555095683730223782667395589603532899055009146708627881552549851974336618930913832231361625626803763696757725952609841936460399381883037436381904270243123790997535546652232227142798845384227679952701043545536482099633485830120360636538889035860321736556596467891758190972746444629472080001926798386985288690652671042301159385573966366110801394515308244531264953910030228006754872179109078417619857403009647668706243284553848404801465025682962973527021606917895499460316442273868288241607642912131591901765968485521801898656776202561166639298386499623699331251049265327820788541697497592797014769068428807738651710848878795633327546967817940163279669964618833562722095365994949897981815743264658240101252055290424559283559224673390738685110186784126381549814318650253188870706901546873431328817255042297539036951511091244791963846509405224939313107539952237300028738330187156780122577021857798882211755073439430439758647494852625348121460826242492631723709081022367048429112019672954044430470194936755029513062698400283840432407516981237804039531381062728022307533272628141407256327635144152601473776642156420835988873316070205983284228788211245775757805168321423587448511527147724950045932204410978469879355702641269061725571267393947143178524394176456336416044971806254748659809977010238564289208343556086392405455972267563087281999264963579969624848049675559246921374210998476444968178160635732064960158209108085749385334085155448094091917170338130446880452958414666044380360623652300407477977863915846486572181425390013119365756758524343735350465336923841894776793217112523793610600109995340982956144291622499943544192508110981628539108345739695093547307384490114622356483166242197877644987129543207144510561746479059645186696146338303162548520289913006302678979767653322960873282118276545821274084072653075231633557475737363792224495103236773303750422359477466218837401253572250159927288550754036269845990304125807375626304698167604009731041354230395260550807097739566480254208942137114915336971180300050372867262382188862946093683061526801953971440886957131049605302503854254013871240293955529447612921366991545223516635355077085706502703238137459958730065563544761666701718058616206923289754318332504732987244188964763048371617819690043701534395335853991806737269650102630151665488459458882499199605218721217448984276670515152773921634567649449032498656640891361412510886780249775534031614067905575959786411697081093106012832314533015355255524554329774998267720826518246180280530968471692138321548483903869402576421602361714727739866007960834501776368821112210328790478189728692706463989866560872662704681855890834385063649367453849249871222658042932507402287377347548115609396925648298808287223611549179819308383695734609431146019744419466908200274065641135316147368955299489598626642780267131794285885807573869225232198750210074103232498664785675620431429797312816278284891892715208035190793146919397331957038494591071177386991910088963231508736294752829571894142219448696473039602593414039866788171060326186574560583203816768671985839994278079770060520099978534488429927791832784424898499003015547249362006075801596823428214640800430888042597315160852280667756034346760712307958856136104566066924815639648960497978131748871393653325639234415475919155829191639462359651941756631290598540208600731644352406238339614867776958276688647223900427688712833844582072228746599789296285432906396360334167742411474135456391667309612268550372277214982379755121611476966787237693261519693795098763112721058098640952862846267272306211860249912305966972737318218322188316891475110104844353434712544138391317470018491172599877899215716831979521389709184385783214310825310735759410717701628927988692473071118245495877812125591153350024649093341582504135777026359774796830011867002878194259953736963175823155565521763262697798371459853634981304211175461077269064013017890276229109074975318182001377386753332214180978687580965832761353967021504112560219587934870430711193809993422238629655043150722044403666989546990503715029687085200344149601892134404896061575655069310842673819250055825035735517745549670319160836200717774082862242388507155393614300867538139330042216406205204101771628449342681199915427215100693312537553230981258757600895702272665046790269015582998028341960418865993743386748174914194869285456446507274709920764969339181791162377483007304740898036595895306738715988687973051951289634399819097003053655603657620595981928564554471983834434488300825758372159863294887644258750975091444480530443902392748017886374808273846136293807969497802247929038092674424910443344686664334285836848610365633276905533783125994836389194257007221136342089438288857115046035209403744489820309806641831936240232323725147731929745121117144484857538990262411192247351573150342472478358992957588573790078367945371261343288470382579902163652647065724127927330908548073989832321913508398929449779517157976747322240505452192061006446373896278895335344261019232873878707251353658086248539289439970860331008235346686536107450759093880543432066748018296984699224113137181203243172062368534568211029656732367066502981041390015888391260768945599663969073696268065241407097948236828030206048919466647487307741857223261081120931628292616145997718689917731156331905017798717929518388316017832296216139099478702568124364856982067132130685390348782632229984401798518909118055134394408069051658532659150164023171473281979125232375038053279423775268041996851508496089976332441421359034044933948058197286718129746024145266289811799394103701397825596134862864523462966060312432921153577339582626798765542074271316376350488827090307561460786132494036095761974934076508295861248884497649281187489487943062991591243308909502491299057071817208400985058893115946053538878815333468544288903407423808015955730921208694953003850558899465558000103532207357684633747686035929478269995437498525270963465988767502682617841181532682573884252030648952386989099683224110196907222787481417747865374977573933577292385628221827446381618225388102993184416967727700520644227559568016407670955119161027846655603549266735410308310096526471709805771093315960046954241089339461442908000364859444879237697156168934833619273260555051991136718883796381745881699558393701704066883134922560681997671599780965828546231686010302124463065534374653594060918119564849797323393073353786604019533485770868422707277258820176865667156991583909361709158802739929876771335038923864283706018756006527877699731846165752492241981466564091344885915269165056280690235060259251093863399028733650538672616218595992982399801682956916010356933985563728841060490792868745320865114148368369106686547310426555784637517182993919206963937827448086558233372917091415672323823465590994844106392546981198549888185200672238967322860554855146148397903570527025020347549493794984554302002119865497310625785236041671447189618933309539021097915882499955944986090071687778434918484020855268891404435240728595490854984340990752642796684921031628678071719761343003052630160288677091636239826907928266567057412650620275127499697416913132714922111774517029651462078817604527904890114408314298001132339820950522285233214106378759311708908797636904408539055739843856543247267124721618921859423968179898631389267616817551627354331335401474579987847194116281011810076435529896745710935166346340662646898925817741178809273376439844156680588871520749220041808956796938421937283738907895542890921540846186244549663992055808180181929461088406885757429739803852989722412917718078749484640349682878291337525622799648942119867311039470110541111773629497693581636266399142051981496601417677490386678531620136401776267104471128323136665023878488618716453815233917842541006695623638628877885377563033352217344727872230512363258630246635848179010061707407334402422223948830667699317754562503740373800844295767974459572372066596102064245312245027800047627952997422851957773978554055403769050182044106405255027641045082026061174546416184801103574354352409149639550430976617888843420192551542164320809160340446244704375854184659795063036780220356929887104175880981294008649871155639268426461123134460681655575895898726478526208465917555434729371277050744634460645011355573611256140173562567835339703399167249479947559262725704027628877412458585515592225676592835424474907923750433395682403714391741546647926993638724141174673475907645588373513531551252828669683043913537476450822303850854442703527675041566719281714417435022444056864498791553683696439384097039736911860000224156000251183045114610954987081797388374202325275629439045894330173044316509698336499427471726199822445733918363223013771996539486105753590691984615871932363189813881894235282642584539953180347150100372788282334615215871475512640126193512277433297431335899108088067571330368939025409284503205652753518202924447709745507533751168698119703700278260028650662799663585110026559737957378869034522599322708218649554323847352104018453089136209580719972560660109414937939567457336036212961421387568361310054806560840379871230295310400980689114132709213498683547848360233494387204998945329993109591801319433678547767335279720632950896734432307487347387275404318289787692951622435262666591205350973559143619548172456764284474183582303618697581361318325188809485394333996280186086726848634601334054281090045873413428678397447977950859890703403477402725874394195384872528917618852000659952563204827398178917897755477110310943758910320293103756533078994601862210823102531240866899382843570365687266697601429571893927876119352992875580477103583523963940995140784377330380197725742861331408170723844343878246791247582538245533675401470221309437025103897490064398488344837404213524209055208315796757598677011661898961919207547040747290401819388220886627334708886905928917990645943437516314524463843679422188831522605017119333911403275402867455121901169211514982156058825322449124569012521456361094541540068119237654876240482625253152818763015279745728956873072680262508393801733372547100853765935774259351124048665931210220150169339527580309327910591286564968883580850523185821518093735077564200775742678035947541043784426713869241793623161673049978787445562511271018256723147006024032761896081718708389658484472440610549109957298221576230517269440029362982786327162142720319860849664884686701270818678855938864521067562533326620893996037334530426703803785911763868627644546317597486930743291363132470013038517706289667596344275558997194740292963204957160516700938634007838223571009690082468251497121838476804155646149138880563754490299927440637386347941369720964026590571347804872080556661067743061056644229644320324914314265777483611454859356905750664258783471838203296331466019681910066553213258638365779670975967357497058751960254644354272506075122574069953902980291014766218191811598456415804501189354601621415247381131121898717686926101103430632135093485596191025123199209370359948344914085546704955293792732555213890521755033472152071397668594482577775973913464500153663342318855386231881361092401293559543255234364248711374747201506856265407369662467739383648259774619138708440697402996124321458166093876026956984973914994828592830637271806860345879539691242928522368191609850623386424687780949994904751141922534124711478059764482345600041002876570166730861864891820179168829164781752342478160683126536145125947223274987846365394347249055149856009516021873267351642986273480378613235764790124029717897268771029556540755300929749501129423183362650883751055994239764015637280278076711739469627043894957276024540984984951234273756903683027524024513694942868903565273212603636739888602948454422921445762225119598385407640723912741312431915114743072819323031281243908926041275200003263636021658994671158234582261027855940300232490929927836687048173406623557652947222846798387640767664271846120461712018676492996021586714615904301763723143916606779153840714105986312459794979816757429124468970902276800826366505368480129907384881787805100951783382117734316319475156743559769202283085346443389676489402520479277921800645263516434540671230995369185405677463651308061893905036698933775382058617233978824938124141940482344907311354556599454766130615401828780537764134495160961695634330673268026106243798522268159285421472669930835213756834284795977406200500706041340122283229044952890826953136032788863104104006554151140084439128034835130821896857803269838149885265936444948319544968888044219463309147590317629115281197064085562828132389889435425592708768044783821327086852702033438763862700428806915050444961682672548798482974550227163558955257006099130050809541111658791036862382741985571443222711031063184419316649422768348936281549656524963889860002452132517538865349881962382964622936444391240777238523012464401178244995557264966416880131672225467185192054192599972206113757240130814183547588625534085959162807455482877949736159446248818605644279355404343063894413210381249359362230852645191937230315766927524897017105516537229622523689454776286772114551780058001557143128070482121700867748398836015758495411242071111391272797164326576174581812052088459194016349757246766369709471508892290968970393666546464156974963959141089225630518525712671745611873245195260120972511142239381249039113147844261306541956238564666347511024115994608192678712883665943616108006278841606125040258502225537187383382112926418053434734633037685455578578248701424223555040606772434488153178396192451032851858958612084766688409748204555606500315998193925327852958667762947468886296367196896682484604558315197704378351509831304642280055195590832124011331797436222871922567143022639433475325175095699716016297797082788788472654459432227851322537252537132745636655978202216687172635189364939737732932556855384562665907606050695430630773756893523218534365848861954024650372974568966717251227307492003370135324353077854776607995749956283346086231937475301314604161278737233237062938330534863277732632593810622778284737138906059066639457714879583511631193078950303983440334962838273105310244686209742067243577100317167805479623678404844080461527160463761688855563217638744635821558351013143102970380788153825382096646262218242312168460735681191619830139711692412768601344810469688931949249387625704939544370292906393804701524130161278806746949758646324950244112346759387204678173688400591018872445636635803566230965721335976201746469964767492976499057161377400877379647140600898433026639926457558092134784600206310976513180861391389536602912422374625760201742378675663944638868497338429224934863349166057779027662298622795084692617410939396146266815102170858522025961747166738431665336532113817904120416947446894755590716975032674176562715446798222252939223461514245538923095338533737678466101862245026063952826564289387573502288525126997508602530450063633293742086954526896511766333767547428513397637518226758417168804595778615521607394835241458255043409653616139148213908491033500662395502529644929790883151464902217651669386688714154623217197603000196734150802983747655050551233500699422738648377610281522475714132074089602564986158329594425789631528285848974013527691836534429568509497062520190283424059503030462771824244418373031470715555737032572683388702312304361397827689394220828858090341771063263021649234066555137444238160241741726728233578613864844150411385593258837446330519178738363111554064718758599717698831125729767604510210488239200331634726512675477861446972305850064191331772002328476226123158795496932175165141295158958546364955221046758375584085456026897505186566111348093363873753362783281803405325389728035959198479250300990972828811896536214493929755152707299376479570511859013425012391305337500428889713410768478582276882487461977449113248321372962665788348477120007409305748910811718939763412722341216300966693394745305910106697167184694056406923283340941925634683186732968712889775323599701420625556103234825935044101667011200992092451078681802443937798551735579174475854308339789574572483528441095180274908108568722647224445127890511358380728607600605781518812654174786822589849406304536386303179981955165113540393715042224433626342601345417243172607078704031203208782125063978224238648852001144626019149816759854829291062298388190546882808274270707124234811181938114432334250663008107511962271693025502247266726104671666326575983843909442087313846317632680346134670189064223687199360294869431736103468943470055258084118573661155289503469999486258685599779841865687491229141333783609065192002661006563953184352778166031744476936990395272853711778560792864930773410774564143764825973813009819381106402871224173615995912819056088303649381285216952499719955888741353861697530323695565908941747795689729136053495762552967932795876300106538308872813298477338752864057218241867324738704074992908753501891208074462487479621107751315697907948139622794744987079916535204074791961768776431128745481385150142342590210243503510360661885634403651415917619120263004650637237529327390944568049033152034711747059101714469305258713780935544843615372220706975355276726436271140344110654996678812852857434578254036157264385629073685217544024170852199843800609541653386095002791784106759218019221743823872089873848159826813277201255240996337863885174168771886843184867741461761224904144595027386628543885429202900094757869122381691244707106270119090556575904899356229706862906297126743419410924843198626935653236473663881728354624868201089025246088842425092911215403021603766965560570931068171089455304909721527167275377528654640743073793735910468794967344001852308112470503905698665720277007262280479299580154439784040888157053208298445445829849531225104259083726638747431337464983168977909667206907718322830065883618550921494612231733281302184992325882329620213123483740047030226062608636919790345392021956379422699617400439750225374578986713392586120900549182613438409684747424132448861950125902358104671396685301760648438412769829551485883060743878102880098128959074395948299839439013631740893764557866452482640845476432733089055228847081022615042692821475368369489163312708200727674693775816848883538430954205497708003959098581750424099232316407356883364326319736749420049005287678646827728477708103596293519773170382254410496161416991751638222259331179845013467090032938402246777627964438026311073674344344146065518186583842891499696183809313990614550431950353956865363657511783209942940693673042252767222021647066185127591399880974796763660857117111550447652876143671282258951429680324923595261959283734974401642463188934658204628768049894576675795936416122238672277389922480305637096366233171465338610821985718628271560051729854547186210068197541697550576950917123095149669938149620863612003816937286423503719812149481994876832227277500281346435681605587799173437208510837522862570662562790949775142538205827375161794518382196186432606390169239097063798760906802871311337285981103636420241600941381916993978677467514065821439064633359912773709610624564703204127242196144117563084533349342506638070998896415438806256105104331035965811428181311861472092138178031255067057773704252199131471947999983394174692978149123349079444604998786069634915751910074324209118996221753775200770712478078897671903652137580564817119610257719716632922247016420323713914356866369234353918779083623204666110173403838896652257271213706772636213244536557911048192278678151124724498527818266618090116384248524357540087320414986463778464551569634349664212361609698269243392850218732767856116604415186800590914119940396450841578593559644823260538446264984211708663369906026035139950447654176035860276504733478126315599533280963857680334579995353801182149991835905476383811230940698932898443466098316774908893822842417120672979470745041182662840147516465121160339979891609255880325350204934080794515362995221411695119936791903315250355992862245941933244151253563239921028574063842848743167905231554470589852435214840812076201594546897079517047000272593446677507441321313543083129042956106828059887419321124836267381801781537291377458216972827038206950971206152508905468596087720993002123440759615544766357872287405724576784451178879056127041694126591912616775970838201726437184900497516158883456916970971121424642319113759872319232882013262635052559167334716278017998991588410257911410214420111271274196758473379619193317288425765832478090571378212876508356652999358280417824445820907049961785314938101916815178286552166215805344109071385887618833566831606062751026578931326648264184142820946521934223311849020968540761626814726881623338225632850246066414425947717016093296116295182708339634703532894762709402951791195749953973100579743488869763151269889769442208971855862299029884984834266903212240055055661185649695843069344131284016846806544990678970406820625407176001022482814312785371768369960107072928367205899894857609817467399704512424555137433013761590348637294737821551144050189941354432758954610962513199314480081908093633968315980905048125378021868174676412471433568789204636497030810068702603158758213710045299237079880821945723009381483193192257656842985871934501963824934064779322010718666947500332267263306238335757554648441247598101092244046821542135352472693329193412835691107131576904593472978648306633259513676724763757565539327029383698847934754948148148168252196005266528375404566419543799715151875444860000647870004974821695020004304240657371198479376777501763236742006327820573679565820990235623682837934185191675406709328195170851930012790280273293826472624053813089781917202729366696346106332167190037855530713197654273481031900566334228804665650534121870461581535472691789196231443655792193556005587693097440413496595366454367338958457162878894401573335614187220337946813497539780968287024583615690251238047012478828722932535968777542473130914140530590562896383870048939807522279235055371575567807539698143723355969281559117877404144616093579461782514434784249899377933025156617216252397056161887748148993649865598605484620433210964818510176298324777741290104618030988087056548076724304438145864317160711796276884870363305354119262131574801784498802282890846803069096437727874261456049369913069626600800054952282029767614009544691186832778789521700819120028849589125639894533774982207872279132269111798916318997818324372641854871965715508916973181028902684373311465911728989685213257160600642390115068173705842304894636624093753508982471097884351584295779970037923192053041182795677467883630463586357251267813861361888658208893888039064718372744135268601399586092960009543854896814015790176899413761995810700747487531152204573320423944124645745866703020217637067364811658220347544955336969838292582424652066900392664068936051850443578184517832265030428562393261954008454731184514493128506046344600327626458712763376858056178457760856079790796981323873279864579615830496514153637497518399306165719502331714413179507928629573990271525766005388636755728369518219603557983382950929294078916009775606452754136967167920681529685048815006964636892668156055347321843613598502077108859775014154212918964703778787106236670400746397127567891700394422932677194429913881738264833343562980104798500804352856411867115964257275629770608135073229498643294707307433457822606083002737098674479497989894749151398479640275941965728052891281638995775541440589171157452550832295072118684967616850734339903681352769373030640808200993884135074188449607497658244499729181082857716962744647194651774120619603186905855020909679487171380299407167502918936247983294778494498482491878879848500971470884220639768781928428873993070726686519976718755921306249603554005222121765454227333183103477023552605202940959226163544551014048058616538910850002455723252194874650042462293564952994841256178306390448701096578422364322263253367173646418717176674432983823516100450201369805793313997822996264314069707263411182459514431113528398946788225879053614128251685075418252326344470684092147348263592103693386303027771975170268889569424273778960915462278749218901914816805250353304891528882243072823475323280636338409863795498946226928460849001485941235949519014802944485707743671670588661859573313034731253967660110796196181451788493357578779463717197703187802304240888082401082553678409631634898305676141818347245840723279071229432548414618100009053365562928816549859483764380858307801113604036348511285321461112052787631398337560452111762501375298882830680602593588136602671937807812583596549394418745686336408986128093514994282900994325568483946213186498462493224210259062861656874113655551533536970127352603306030050086878726094379783091173812561917586936406928263585946244929301156238403792764107730232348675336662045012813118436272260915228077218028091299100208099320451694462704875295005138931334907233850129822221301674602152936206618291496584158444700263489377804575288335849765249996884372700682701393584883968593090300904647571916989963514675305383319159669989911239307816124801261141611150893628587466492086319310796161015683560513099229986202280522581250066295510808068047796094259961316413241968336661279838521565166364072510561002152570975487083061147208842419414256552581656980718527229772376083414066318187802105646969470845187464094410208619600728718877580052790448130171914877797398469397354063708955734704771533143618515202596420027535870371462561812676028299982908200807768904007160591616868042991258753855943854841166297296429100764626749840764016809005947906444244280524152600257345535376825496274348841562567677781627028915525742526514880305507789785134020173866386345928955470442924025057520897132834561168379707672674728707565903793040585839335951272806174167938454481293916129351454264438957244349847119841488664358503966229835989130800849781148883667521098406937328363440557867626482455807109270161207827860605597302292929750220531291660214565258696844226089495870891878523521700937827322806593229211086087298243855259877894321922290648313874484791894571019197188614129167119231523880042534633365008352649440093717325135496829471958095140643897547519910489899092609269306881106573355318911857387435737561332045778696916214657816139504103219879067091392888083739980298433553452228261232766836523158236283047879407848142011112282634429695582295289021219317852645760119784420802914635655697259351002131535763763939356460110731404854720814297565011141203899016825679955106585057537003545403069873699880153629126565941158736296605269891693352813194820536335223854385513691286971746040642536068481944714337141779299193920737606245592737934970698237373527316450084631285799427368041966784868563411439659504040792402636438049749063736342024000428302770505166286959620671659442671502489385376737721521969277745744523791850268497841218318581233447663771906207357430150761622115209986319260769638101245572004229746183349470117962079565583867153023895070877566374002665817491645085839504844968466389380304466713267545994302836620532941618842696455774197448011054767984086772974200824252603601765433379390242421658671211344364283366835295647244844858553422858566516807019803963058668386647519151227377338948486565147200778316485884874703987497880966988852807570838871609807703909179905765574270231707996278291904268790395301274838551961065288599507185455259440388606558588996336983655390687722121182818662111777349429134708221380160083433353122582999725178597986348396509498216985029820448255553088393391902157091335717162965461782543266734183222183682529239394500154336741514513122062693421087085579931088434694514609196630116048563373172205014752756748435990567207865881148081818548918141198395814272249187799263725386957761945012554325020624151990221021359074518933243323734490938548113276038671427468503124781276943420961712447250926558811165856056213379390016641961410623098432927646299287542069042702958416520478895380483702100663177212404366811947431448729941461426855486626271232847631072888042860424001111002955346184903205313991164694506197425416721964673826870318858213964120371323606505710361506984250671795741913560806738532459595229775894364788977633027571481733174739576717207927029298998865547392075290168514949913141620739988117260683295250193784847853524227483412694824553048522454821323930363841529480993390860975818586003630679375478242965855690198941757986587356155755130529495218540058426120707704480224766373071308655658645146661934677844181017968104528204304323159478775553701726080327400788786880381129678774639387719071019282515946016001612034699163080628371610534489520702745850004459487300578962366999959184238820661470148033488111976217913516938101708569417695303006110200873268055805336576931747373737710051449766244375695899404737665981889986541013388062214909552402379450173450511574458115732247089270982639138723927875784777307440891018540737073093202160160490943465131497946864613435769232129554050140036316022753705441458281546478562375048191034022632830467816530995199124276534154955836086250153743393537123144991618665170316962513507238226431009168990764093107905459404647938142524821080872595194597719601915887566629173852379495002703652246587894437272711424580652450231388016034898923279914187706268622385460868200118716054362737754456368418000941006108181235020329607891285176795008906958331975029176015713127999536258495962726358256033448373898819658274101021502963213160099748858653435328694169702276133773529220333620370322978304583813720981590713198460957627967851074826402823782735890733633883865087894860262167932140241363692351986521273185053273528972419318578399691607345800495061962629233359967510975409631653448789059565487559458763538676253298552838505721081627254516622771669782150259687139054699189871429825774425358273052409246539667890604545441951756578618297697468773708459175897599995192013952380104783283786516092200822941086734139160670375143176318011475616280424881860095581645435134808362600157508518018351341838285159458233138524832974039525053783555914898186962288410544728940233360181238696509872832458240287076699730361478423577208877952452050114245811740005154182007199499311394347464228494459334771339098763267146991326304479513661802784671483325552447749919309752998809407945639834911938566236913579394915539581606102435865299056011627792505868489938672234018180670154605032965226485741858456626698251910957047606395321292764300972573926106794770746691403173087402949640997560480300286935218055128698526084329442904609217916150035787063622671112649970757994191205513214790104011137699710098475350298682421782246852968033142398181493575596135333562132545685006871098285290452481703445289010973297698928315763860760369421350299284487771950510165622696907302639348186717586553972458626077338461812028385127425691766811247645280948573471262058942179333861858135010724637995041780861030247874145897269205923224259443646424355527973767509234561652279533125508726410387254717446141310317392558291061606888813391923162790179984915037012988975957754565582595879713241437872014772994102802017628281371777451220071468488688700984164501332356711422204495543910304019052110579048916355768481839101160863864514280661456559143851121581409251585256425547288040167595273401462814941766686591390890347158154192179799721370056626455908408719192595360361567118336195873889589165506325682960053147881652662901300702754693427906326543080474224599794858023456826854350787493540365852477604957549424662363101828866895502019869585518857976253640071486512136957541780593641391734361285633177994647505771595037169593380083690464647297072134002451420028195877913861579553424011314439176263895983022307436673388876538543438520062409085001682204451088024359998173074132275257760907527328391431239538088450949557486598984628766846620835876949303796432043333933798146622535433240195108005481869731727051659996093403164587076309155401950301826409108785554379466162806650810037510790535484383215824345548808834013810296412266450555737764925607723879764945965408131095893426097413999962018612701580146110729799772874821038790593767685709692585679559917184467213856976250475140983746399747777070449831281144181004947878617543611563184750011694151779702067950298728064884808787601266794164093135510664048415184208525824812784736180590840813695289805486458608727567202731215368581247361893484857821798330598403228770081530616981714979174950579258379009020608699226249547337173892416122519744341832972392966291676013513306054643799995001920373264721120926639774568053126910967758459360717631703396782912640203725556371607243738440358830599588984068046020307719417579042707279937167943356829617767968966556796990528177305837274179512101556984788888616506076945833412361105792524169500069195680005290101461833268848289932744237487886004160249055432242633786586157883224909653227504849909241804118583683063453935185060847667480516743746793807197354215227312082570947105803620932297430432013819043847666603644405210653224006380817447899573627451812399175920236605062269536555437278327996320901954323871751733438154260399424587871057199046963355532296739970274415948254666335425768696109423111744655741481035141759030036829868585391367316778874592934546111815137149169387928879686465426228155547323340000215797511090008922131839854142294620154281330263612336270173005483358874373105844412813344216312218460927015168486996239024538689531133881974353395505673719272550666292637193802551052598260166681480093610316763360794192971924945770438967972514246277890679195515849526313191649454728475031084347233591213151260436198337632423973924335103941317689252493831015973290883840236451319300352232325068977307956765830081320613590455157814073866481130841898283829195746453554084953397419787377926214644681160297063740328293815296315599489254887358863495011419880008965158891153310085785275302348629595218643098218516605957469994077865101908437993325994498492488236441497004624779253240161881694479205033858863440895105868122642533922888001675678313706462867087272495564578267463974266992294880666199789673066703639749652880815124771755986457949754374996618432511408349778657989793858987665615059101520049746354141620734990122251718462764594319961062630392457773504765439366935544061613538941012957714244251513795282090370755189898968485628482520452286484274507305378617358352213522036495491833689667193498268989647067538643661802618795825265129579392390502103533349371121671760275457066636365825635601954847500693916586179107062596566092863411058468661033099589097351525420851792500750036418085358940477894100613962505717775147659915626853264896007559632938795888988984188054911160138500900707614089172691912516326123071862612334602464766213403162880690398577991657179241121350000057865791683538623145668339460473601976793078098543262853298475819021778150491640227937039906040816743669525536982584831874446215682231084210574716471361408498247922033288660515136956812290653930986021873279562754255176437599872791257944113051684622239051574615805829898294462987701734770234391225327538880288337554054641864333822429019846906666538539300941145183056521885556110134000128964870446755523302431825403991066683474108893269192480756615672999697595289623453454845526690050171666275131704167759589062639196104409401353825016666524344783234058542361800322265338387312890555936758693794553364093610320344685751713935546130566710886529543818523203396709060861118043787258819448714425316081941410520678202730782636976391008031235066434952602061050063127879113596795024431727108093421688744188403628316971610895850769585447689816503276353441623820200232318068003722467185379745930618285757374508046622444574253069235332436653827548997710360167798736082737171233188715008956521719317482274341138551406770924066255578376722483563819072727236674768907657977690735250481844390534681483741534327885437414049062065244514300489594811913679157765882635936946768304856078731721551948163603172887723397138048828569947568938333282705446828618786610647734417805680093964433602984776492947572487681832563480110459954396870335240709578622631746056383747950196764009652689941763399356967144174457076164274172334817793173378514610963906751603586363413302031373273776581272018914954497617816549172289904289130357390956596721416225169864372276891993916008445801657867522080224444562385475238525211310504094947676331403825123448643567908172166799393269404377342852313630873977223181805033947268059859337707459844766682730989261051817215819223683640264760860870661627890194629810148336859443718264843230604292347681201382731041914016109824847292195628920494130613992238893724953337615798793129282813511894075545705830297082944929584970374590710804575715199343490921538740081402383630380922144988924379225026596954032483951221544635562658918054744447295795252714729640990790110309616113373767058659225985244162663558694643842446312777038494428073018162325405331925768890539240896687228551549117625544719344937908812978103872750108083706008921765068267703188973916391854365490122800464071303741830478733151288274179383169808007987805204557098288303750913229461561354462988254651831935321010549556883825181342055842787859090517903668873715527041837896282843169132947585058833822270769783517194047822995867418773180384465707286344469755957090143446816518915281167109975241319340353065600669140236391640770757562476882570543730120690627828378098002599948825495571676432090618152019801728513807851614750017457395981882670620066326003860290720955551037543637554460042937086962447399619906541741922764383095937286600024621307812955342327555150026042298439440254090640322840312718404063614460815035083164055015926191865118472313557835830337340664763048922443132843506419299450615349247227590976805422568537461449731449414543552223966955698372603459648070920688999419637202316479118981776828933168880206249599859855601074876279397972435411156447958658140309178848807113043096491494451258952117800670734788106170658215495723190503522050927901227300184713310384577490970887924447706249830930005950639668009004848061669146348204015837525273722752285858802568190219274892737183842978816495915089621766184852071595838207784862334035841215218985016220027108959829552294536259906040021380868376777415049756057845709648364567188542600700803650952038536328652015519574331000166162043362051967602597212478258460815629154673804272558498162493141815610737139179452051705111194504954997170879627562302906541340047465873039416571191616277005541586359992032854879494281588711628322357001995261927144532197258823973034733290381253309074819631924681160191326787627633469568851118826051696795139160446478139819561910814962020415979441650223852883257371117567143541702171351586357083503074300313127151375470887692502665065389137810997903708919100112706042866789147898607408062667560226197942317190618609891502465509230973554496957437712599487492235276934369320855461329152896064775905418327486329426289516612262282035725283860293975489859585229868058099545792693819448024195013497134303770922069815472899950239853591297512429237269275590286900368309216265104391335249032914214746058776489635091594917263263055061799816584766862986683399328032622352176803433570853558437699715632964580011243884993064272267820602390047222294727671850429435665094405822658750771636542356058084719579963104832386585313126495048255169413785743168501204039220750715232625982030054796696162914361662746191903349276772111012390702544205370336119145248525336092411352605937395223798734675060686616843106327813237821304821318697418387446062704721613925097624211189825602072222749959010484843722407851287893132400495658450554023621932422996814560014394890554145626677363122406220402510932880010073609405754947733202340411768907475507949574063770395592497297879762077899390753247672142134556564769763055435937837386197879897843397224504844054418059184046539543833013169113951740167784787036275600604331102545022504731193185031154555592621039246697064872678831486160513701073351759011151472564393031422494496512849504309166640896178958224524895112034742742262753551828392932249487399579835054565429759714561727169636330956467413543549728759996206102413495817767415993767957638531118478450710664017354731086213551013316480731939694097906600229768961402708431513057904803977665390445819739508576558095497525365651324989562824224470468990282375102601385210751073516381739728327394142799837212880539242303503586436231166196677319124075550968363790325616489912372536441502629785566176367261929743739206064352630842267780103687788443912253648028012777891415838806656176578378579849027211040185718050040162003154692553077975220216516545129866067994390643810441285123259082791394413316601674019701067503770151996936972199969603884832098212384170402327655600508649186859184520964393219950960410969815230117669718039736473521878936140546023794514728996729585126188266430485732722445718382405512144814181852692665770334425931061582758814328700657932666895960557751746138288022454309181829167528568944095943968604888070495166965510641824699855736603368066078147516566559954341597454377763078795045389462483532952347965002981909240048091546848755824865890502958666672546952258508601310453509236434508755422431576840078147074099300520949411742092690446526548890715906880158430488980859762280600671399548729280720908626326614877183921743836542190374729218257079483960954959397767555816813998558334343093765469661125145106968320622997302339096898701370165358091512003995492421069000658884755621297210313971866229697459872490235231633865669622189723763665910134518190495931554015557375468144176611294573832117008766000909025500837563218679188841347153459197484283010135806131718023663731467428046471667108015888725496464150818901248372359847836379895972615889974361479368472031092267902959720874353783369092221368523749417294031497271618631135514365696428444245915206933302949004337721338959675517734788415746175629626503894720486594447859586855896326003946485829448888698177856980339426190219471376969247509090751511492620763584532098579211995507655263522193571755640131118794995123778522173162482107704191314342230894264776618356102717713441907789028006441614648415302001723425943857359091284520112803180125960250385524495216697690415684033009077628365916842618889038831091797215652644615700246284275726064150219898647852997127142955620054690297913908820238536966652151221517335630208848449256438360962398574207351806146617254602802599485299450128244759011432272255727843756206583497291372796936661670044376605870987151422263382113608100876173625348141360162274545402518144456511311833911636091358488869009730611696684500063174221405097113805657311875731185873227408966342701715465697135070425645754965227999324641456076507870126926568591015961594897440041336689626516311145601431616222498944175952634964744739619300360087751699834299926074852357193145006417193848142956106719450977916311031798671459253434518435998327460848803923574349391173183658291141393746504498325090244506072486218958084198335869764016726567246488252177282294744391774808163927174309502366725505812414900301905538156901272710077031312227805091720724982111373698333346330309223809281263263265497764182754821071172479967545927746275098592742783469532072644478587554876763232836344381998395928718626953885098271898409880714307223812336426075168567788729554701544865197632258546090428786652301340347962577635110618804399288481158797199403043979154319700365966346900075071079512610787481128929856884123586869664083742055805837047847235814310550889578587683452273265787526739100592192250471190820767737869584044930598415066048134515591928912252705251560795522186195004493397673048855863756521474109188807022733525620635907597817213648899113476146489653094769270054954693896295451198323076238779723821440856537992230540159972358646325459045508175293888789409930046087829017626081280969442646757968387733642638100528812055126034776890858122140166757710273678100276055811753612640094187593175548577511687449764559979198583630947498922438374115201668035473922358171220283332596103031272529794913571847872834642391401225990847213527865057666496083569134823196527893285399924271509201462772425149774407471887222801023592316437875273359472118230635942437031680666220248197267673619583061465379382537911021383579902522241674024904377906653776839928261254317374897412199246440653702569681028510507098602241434923605008210137149329415010283257729669457616231063314405873704030048808571964263378621190636716884604386075196714047724527207198351827532624022727868353214715540479654853457890180128371163171321009323702046335841803255039515824766941068228323344516352537841832618578082043247770971683591660776329565727283052294728435477967465722147901005980487349521577908053935367353033532410226001146892680754232830500718182339713856998352990266218928997752214710277406106101643009773069834794808168674593907316377182860963926955520294767999626438392080237327492824612473665562831478628753121430984924779534613245952971948920574691565084992760048698462213698372271013331190742515651677533235734973873011388443673651846831096680850487887721660807632431332167764910570597403022959167512231994401761075242469983328664525956030528523466378322623289529712679492381267613892534586969369610842260885391295420410153205644010160210421541277132588377916140085588576861256850552504891747594153638185372057898702461761697189418055734907878781105150898053627062347112794392846807738425977072194409710309771617655174433051521608132127529994099669277471250757078769108587836461118206045021154937922924009648593938640306752091569797192954846903449392584473855137874814487959253554021241284022547160535365229058046164792390260878633529418080607898857653090980151954127502438848375027474119500352831705220088144347758807465923190045166111197561779231916101090764168791599683298330114412918536844047172619550972594296142572258014840579608569175381527068177394777786077623197181634543615858368084089702676106566674882207283768227903050435164020097563476109705236188031900438145296746270036201393420368390861723676465125940895778997776297949521283868847877431375163964243794884686490508035351677425038417749449186692902180810120771440173235803671825062967264513057832976694055100601041847571814980596326790683095662406160764457843394315222811889473445056968347125983581566287528606521581237877870944185022277787102384403841482623753149666944111849808605066840721393032162643893716431467008411485350219319556090323785637224090001397987640591236680468121271434746113857957078121762981533369368801392687997427512277976700743911599647143034055233974371730107709577652445286834472040779693413878231059926105387791821524785817092838457571256429440065497730235362630463689437068345072515305230993096762658868449343316152726851649333235957489739748405871484610276940608334823653133183248564681845067847767308942796771020885036682848345749254518269725904298665683317414841790555542552936125923062497800281251656568131239053808620816772208688006029250259727393157186504718130925124688701263268120097624382115016616939359431910318759362140801423498991059620060268541123475533878989121863664618695763231081509769941270299991705000944283080991871868035837615441786884405136908783518851853469631210951388406141583529301228265181152741303096389411130417863667013859314473746728768527918614505737924308316740872324953291933960101969359152995151417939850034606774034993195763317953509604960247000319426213459412004939298258807891028379380814602002811266215545218233382585448195094416528590660126054611389880365625421213279780461671743349869781144932350673369640113242670116710341579842080729648182421224848642699225098786136505877258414456114739746827968433988933442838808575158467620446949795412367719458556007278401950935810999488460177913342074242086237094509346277617871708053165900757120441485845472268283818550472472825221094520124979834562827347962221388019844343294741268074943523961370043052746141770709250545919162444423437983273128396042143542671670785327581096764487964577222925894068495631579093846820116011432352707157851655229543964876417649525743556706906867018983656774830028496959174839455151625281934983962845039700188067101052331446842801464112474668194000692382286632884160416096197097623509719450772120793159051095814425518626301549216355815159893762641938141608156462269437898657845832026158006410454383292502976719976681096705297674714218487069053475050961138056420872219021177337281080779819629475912909564777144079687363778191463561426436609039293629834666946366165967537950385819434960367452341891010249914172247318019882780270681908158375376786312465144428195994715621244618877587272353667936234295030175933798485625937306867691853179240484551972588518311588041935692981346404612573443250334636595348550469208370490331466075895683830905415454845736087786441495435004953192630428269476702143179412365789026785113332069266516695108286132607626074446419133767997310897317107103868737858369940779600900644281189093510295384821147656655019025646689386173126209796925536662464744812299437890301158581170420599854993121315530708715138861644853445914491581688711107547982581956693967066209418424665638313659600083098920278879350587355362235753512096788593247299109655383176201600027283311353956852904038190585927716141387557668988459695874402564058359533882014675857720132480493543988344483309855027968779365612418127721526143178880128438880455551169782206243814580172180805402189537336121884339403869581868959299173382683004963944705497887033281286544887427265757561153365169306209082913426904762678852909306707044062600904308270144608865484931739316702359805587226082834242194565036567626921733075016414043462831942262533158995562375909201141271027000421590736853026574504332794477676845709103760528252194510730852104893444361410609403670848198202888364603354774955491351100928651377956410509334813824929422787120001564633829954494466694646351006938701632595193498564350842718470917774242226824314652075569892821342360358316978335174406641154747548874288600584417480646609945332460588859713873294049946359055164003848159140058338917092859474763406916586976599991673594318907726240662171794144621017408605514812362670250530195695518427533692890171916089525857770080811400907096002416288575643148231509035990061847851587631710419727892433416951560138847559711664223073856344099925958293154816026356470650136043151894749023363041558452317446503666897895718876675550055125034878526645457245291830274666644929089132397163800881404213324863272319071812342998308962712625464350023300987189081286228993988586951811830729894209199244790206489293297806592622663878692382818078119192742832190409802697105314389655946529189922053429325258028832346661112493958267132202354785695569434735119722860491829325646705981873636113549008900973705330868419793976852858045963347472917855906239040159198104272335984353223417661601030876461255317641592413261595125301693645985902684254076956619814654262909680165058504740071871176098408859823140504829323558843378908942643484593702753643123274754760986772194694324469678725248681767097292692639610742085192120783968498805492194464873354786413493761504136841727967283356139382838112973854401165436169584559300900767391073696313517297806160579152402393886146043361174981516845360608199835773194528684336538175474715534555579627006323006490926162063465963107179363464553149013697429142171663159081359059318502325257502177233670375236799465755915686629414996662755194936371714783581266215281889566873197475811232648813436141747293194426736815780886604116272990355217976039202748366259457441727036553829423826590177350155110502883379609762410233398748269384814959910728150177946212164872374819334315751141910852308771966481143191124059177454213550523290357792061457620296600608311734794288107968625969594384209046367144726362251067834228882901196206465159179651260293952306332662248019095723332895171820822666145219427932706479004650924473253768866439077032290808043459858404638528541232761843400806212709847993785329084444503142155844011426447274900140730912958760557266383643168340931265322853595512834408935188959177735682786907339726937615796785074604591498320657367388720337938923431037708844292312636761584609704302810519799192414809253370718875283846149436970709183915539838650282042344733205240250565442900381536814052543732258618117845280244418096982385887410750355719420896730360353871767679210886036801467392407758425087640914477764017834503611578171691293982961245609894465305871214567317165880720926943283293355836650143138436553916458740410167229819764483277328493357833564073162884908081696566130908887555881610289596715542271656786833888098160578806978146605790300180211330765002864341623800771604234896347193501913875681875813904316359943773751413040961623524374727829220702924107288280707352582104459586218558497732109244386107641704255977702760585399215302056539510944351359035453126100380928462160580400714526627203171750428133445001607331664307838294611933694750330227095305914599706618622808340968922424193506519920104499182091844124669741531054811902198773237166872215427372397889863766514815786180336565725467668370656865454641788321150859385559850720737492878155011641644338045495542216284783569432093656810813934935987113248695060672447609736769866413646002229560565436320446545579657258224327886079886210552782543400080094570360332765917800658008182316361925411537347152489948733214538287702070663517595949157816934143036980004307382024012996199747663957642882345807177969791241971925366771194464457404057615385303980005807708784418551830529844437516065638385648061465984722320804114678033004852517355001347678593881492842910679237806431674349309445346860227593430871692228820344846323736041090076741760179615839666326722941255676301712540420546827667983241105893830557147351865413618364401083184952583465603630778838415264277606515608302775725626093522064817600058404578473177968537778385381987622733591427375128319601682110098591765395610907718527447292915403050609938107878531752761014507053169129825167075872233713878694023931165529260205088953232792744177767673663538262419746194336320182100711747809075823888529969711884211062118915924632534564318223106101996907532735351806714214695502211942390369521666879250489072285371519467842914420525418704206516400581258943742523139452554615627608264023425364646610409784766408926063247141219405401002600662021710553844498573652865730370683898146922524855707356022580972372098020315386964007488523087009027268985790114379647029523666627635700480854627584321044446260102048295919714185171540102933713084704962085418484905937871890923405342118674154282288489375747150076442237666231270948836830732845882539106427483070637829146538334924159303232670302914254105726567067417285995270920915631153033471225776962639299102581571665353196306948033553335065399678626766479948517655654025653570260303456282787646668796135774999699537354917503699292356814130596606775701032180582081192094250882362179478722479427937003829349017139403078452522238361919527284826489851349785263571148931311174522101562359242352918516942784987500677277315566971559871899506976387442148620400207253527444720139111536479785364743333592691267978094457673445672202183916697268651047015422735341287270709846610622844382914946521526600648596333252415758620677025457418676489834156570759060365289833159252428400005471096299938605809784483019368619537639476082114444338741075246043199333686315262674152911934322536108203242920553822281104113128967603293139081379733653922189170738681115237374476468866342264312926760745748479019536235841027552260829062056257282711049148350258767651199006506789992378033429073374612809259504627432388382676844789089015501269672699513708755468029023646951416496283967959772812009761814580782666376957246478010021411847990536588895535929991122255902239575323090350282477802976565960330753667443969149347988163267983918811146716739135753653117118574377609084401434890181543362265858047214048654258995520116960906978932361180247670237486491749648434587463802400497642159577248107749735090065973906015365867934227342030344962072262900003086278637548945192519821856709845731588980566343668892411426422612949077276088400874451657829234048940071696557422255006119327728443462622862593605874509976765872291001717691567371803691522946550004818419823301050104299297770315221849714837679260877302385577084544096505009790846019304175657987378946708342368852155529982680407024005464458072361949317665478007004603397080536783788495641791593596328790710622660639145558740996496315392692710785712668606836708403511607487225754133667075447166637358016378101540021787775877165046200433143708240958261608519184113406132206235430755556437703165268290946174303007113266099984186405589290847508185043414878161552034845499149449050736897911140811120087396965473183307413138606541131865194189626126352531958761321464181498196776212613780164710111832033472476510492372743793001098021958665286902946886263870169232963512580375354242937217461262670119903637354308999790306429654254279442581984305584059280670086251888841083770402767032503751094187507108599940134490992045132936523437601296776178679329067092310975824500448842907722713365796650778378743032013976485701392041671617461192990204194955457511948024390934833783681215726774385077044788536873860664731445018435385715898605710894002684750217487109620762090908148036062808021690836172429303537542309977752950036547470555828014106240819347500454454936848935660360612969000539986770709120514800955097960627988388019150950274595432361125226803259793506294430319605963743832257341984130285284524051164880560437283132817529180289986207523888426546411375561152381053300029916156578718028270347798939720075488612699334636259524821668530084825434014042786396113771867052004460735571406543202383163000363980026052173391332099434865278207288955892072006295085770392464785635480714315932468732931208013724968615637648525555176841719207528456952281143926324776543942969537625291971561994918322393264161587946378401781421964932677056366127164088543626794818219853454129437118867106996252117494382088325112189751112308234731052765855773116857893667601121501103272154583507576603917157685922764525051518271414296459504004369454570051093182113097651409378984555082726593374264848021697971678191263728042713622475499543407281160980127890198783153220018106946316662455611086598912032080128758982031157406795660267462442576172913769536420900566598333430009352707135115080822339071363513176154387197469650627743090996606316598174522761994620730144558457217821904318214098557851027950596723483713618396610724471688987956232664486019893369058318255552897462853810583117291292165405902640932623871034496397388859182328737252948830983690310132678025221596871242959193446744616369008011107436662944248394640455186499612741907709164739313533875142419901147276827927204469325361109034261719538274544115796380932248885670400003244809653011243313709469177493371465940298734543840955200179531638101270141841742437349386689488514578171656852941855357479349928624711698425004019725832394597446056490307895726092424006372442441843133642011688512838481021365773353825733666053009542083282497490730774212530591918184306033993100565813721870017545730993148403250575244144199066587279394672792500504267055035629255733211619729456268845670823119963884441573723286541122248061254898039957070594485519263988255977238000811992619150537188772615185006292676485960363956070417065916962310272096799650015293217945421021035646924958698306228256252895882370322455629888031742313738999083457730138200852498788044723342411310635023322123389236615550620577474279726222869877903785861441659183501735594626115670388908698332860457844346890498779065298783576977783200807792611475777421691204261519121171074482796902985724479844304105834534521343612884979056965972836462498231908266007897058161591343145553133124658635634779258427328713627724879143968854386341219581819050771136161494902318608876488245048240549179323912124189174934745490992992175586588459193291782591484484524940804585654261683569305911625459612244185584950654307502072631510094400872570759902149934539110555077344133139568526685893568401828067325737125386324046564715836102049558827364427141546847291515027855729496849036861687057599778646118940410421230906460265460002458045360029219842229796032435768515219856065042543113509019535115129025179900063420936831918673902054359795434307533541342121178124252006075156487650397505563646539709507324649787182327976544204738631864079192400445059608668459394686653119236935829098780989085867034452221596323117215572739595707270432049573675314476890599735012219202507221668036018317200187940782022260969326065056443888005732095330302137234341757264066424531718196060570390842051078855835541696189075714526890376974240954028509186514336655178519059608228042392578905535419058229143168561837549029211645514063502278515799797464267559023521226798347254420498045692197916078059002630363951394078931142229883900007349483378593922837963808352006950590496863616897778239151030162206708711756838261892782779463521344459401240382775967074496476668127433666627513383022513898537104711154172752312554581355145248894279315862582804018507862796296208803222881608573997726380461261929210277267063752739535669095233561210003613588757204356822971055026513116349886575982933778871272628618806775097910182860256092397680602175166003327167711828071260599940345219855829149709701491819440257896288496822018233475295961377647319223501329939125663470149846444253462730047069199097277347024623333703983910360212121874943654972240099268314059171865793555058368130620341571075245095350104916384593050780872615247599948467164942325891325050772569290920360508567232482880542055965243141446086484119605460590119145329488775307524323523214886175625927826198052596444562755659005639536135103670064815672529241471611335170968165651109638715648821008500570454874809130222454904135635145079978090542434569082208096220821475901145290201862860847149321500191181979074485123466244764933155471930037295954121296751219569067760417053017457519932612719568748660209875037225342411155950565544728591595723252148463337435718692642629610724701910530197568823514728927762607675833796239880950545666112932972247863290622135231968444409990030029792443147732857479692819869830655688232573764364027908002750446954472102842997906880841452024813312193041632707196656842174532721272842613772192993499553456708792066647095314433471676531842774954833790966618701697364157958198628659590792835407901029600302438310379560508734894673232046978144985234976297801798460752205416595330584801195440360242517478297806786691180892985018016293318244877685422652234392878607057052176402957393924943719600252567362671962953412692406846919652197005118438277566320560330429577868217214986872655446122619091266365394089993787392593998470248810944000761491731876905256121232980925069706381675774321759927691366052614961848611491611226342137664022928524038690672146908210648795992836329660737374421550870066269269196457862406145581186740143014218378412901738095581054223108648957779734304907137713984226141640468225023564521425445881034804337929864927571089386367694844462244141098501001943978651111064441129096954509532018516539885590555084386728661958418831552351308249953786106901657282260901029053700940762645699515767953609098964062754321743590763059374489204950008000952467455927320289955706800799713287283485132055464712101894066469262211493275940565714535991186504018075080326227339599866718977741656296349505076935436966244429557991944517020050338580591979853886357202223628833018962293865897429171018331418044713563754261535573375609404758293063196122437150926518194120636747569579465232234160543647990055223627015739679073094014951556046442636034834425752778027572730537257502364197432352491066915209371890647074822158713854866706465493029884817743837805758484751948699242497047555962178342571943345401880863578276536346718532959155013534344725318543360718087100814094391081959623834186743925727646598741281413307545611316265583593186498707113952189640096536315402102850924853812610863793201432010819912200991909482752242675426282526598342173306605402052483282805334399329590778825169004211277066730792227154600014532217410908280004254305913788839358996994432613537006655127945985901871606717084937208538082116552880886589442203988379462361495455241949203936963980009111493229022768860812151130202709339348251444235044709450960801015876852084495978058078927407940675350879501582893404901308268160899120151571979865444499321469930710886713399260040961671378128584375983594251976117700626054601141049489301304154888509626235701019606466535032455553662441121692650433240099599515365024382738034783399360212317434875772304284137412598035931589572796232867059307878284947333955696737194960854008859142755188500450418934688301028196518996827211055971005289068277617191096796997347520110564394836874766062060359422515374349852833533622963437634548909200346144156582200960396443448748756246917775412246817520191656186745171551154072240167057258120844458335388673887734831945548340457678291329882401094780040545967911892762038418889301844336236716402124496746076259843111829313120187043603422576134454549411206041427177831268203979765974098029181569995757788504908331435657988359242533893328632032315858302187265556449440928187407846712636683454742751554269815560643860993752276858361307234105423101650671061007077745558409619122309057724551922648316236451132364879323900187522989258476908304220748685952254409922747716612793024355183306265570340876947139240669081922119482777761951898343017338729158580898998527360588600808900997162129173857769599695513903866089658780093360913499289710661007919894143625374547061004154823213804578504204302516229330931684289133297553195694537790256234359238862311778107445222741724749506690354704460055244145530465278819474214483203977893671587590736160154469830153760660368475396100986121205524921661946052746964317859900416727396627736824150518480942853299487365427724365171527339898222235252177864044857807190411626348439470723455178539796359618433344558316705230808118960817924589048752492887408216975538313209799983087346174093757172927820380448126975646119263110912341751039690008543608386810718647217869632292970539758504767845043795881825651498198946087099284224936546660152235272921311969919333978394306019215465691067083015547621049203836747721233975368676898029771103466078412736220255108942416975028435966875435733119859917396409036005410855539151241708975457866806177908525869809955748097578613377834535263891906112622970664889647313693598382555674885941246855657291700150812220965850839710305252126079114719623376774118707782861349155192840606796708643696286553243076933752671044042423335804072249944430165208071574629092247424691316929528937497750973210686629331182204323428171060362104300149123388872479423005586841030628685091025387032109369210824448533657260512016588007019391073021371380932724934613861798338112343931839909868973808797036063151767317260666898458765242907907308646079643392261200935107220943841591775305272728362218932580989476332195848598222016508129173070231071740905693642229607179935707509454392428109833881339090737151144258770780508595338019459645535328174998904614447686928038425350167447918289118748743199721537347231275380576038221450030053562260781924617936992085114307254691510834583080371964977945533113925195693132062915466624433550388075833711160930508079147285352367125547595178228475181186461438418127233365501824001464200591528287363899415781382186951867600558340235746792386012751765950702709938697378379858977685764863344283798225432900438623578854625722853475620172835305005438446724950436217661348831041082045897585058849283693430157750196873512846251116082883690154493857854242446333372827988362974486423930727798528076925116078610129707917227352189260049817102040358089742487335605415468813852861128997667325097249329273359012449001676971850580213592002690657313090643063727244275282670987833328887691293968797895535641092001116795952693665850892729905704918073421389694416786293420740875365898632240391010931967665950816255800165791714429929987078544267756924161265264881761493404712640686672325995899082766934954398483434253767915271556392296555387942881824240464908744123611298991480746332672830634689944555741590087887387592925071442660188991265145458614842153844804707484794195040132570238149019520473968460182597400128985313802666116066440413021717670300279790087507174114316163690969955722198553912418708908445741784641862577405187918915505094327049269779107335564257983398775417421593372259851378962046829692328589824728479072776542878027942173382530580132605515410260839361564421807568537579798280633054055198187950214667136992788784103070089002071800909434799614671881312881108332500668356118836563046307099535695472910450307787915357851550895310879024861005899225908845437528254821296114504406621843759918333704239903747509374440301027948263499974876876676122006455680856404838252837985267152702859682089775489664427598710964683651846067881781771827467172750756716752054428730579149575168425709739057024781738108732851505178879913490481608786922143467345320178317481729239479423223240298216236760471807271942463423000916409306336052060399054711302561157186735992573460657785277906845550825060611343955478450798920327597112811884533522667580441530108484920579580020075171695982836398561110296809844803048185191044521702576417514697996987175461724086498651819085679508582362436957390077316927407951584285592090690400860919182222869128146513266357551586083704299595111825313212541100326417230513692650449548272909897259562812284148832399960186872979249538445324217130578928501385958218770889643673341316753890112578647504739178087976742090735686396700419806002198331003842540866038905098559801227840812775051274986730452151163327024424777257386430968328441327778432853919734641978571864968120777986120384206058759988075787153244974728433682456948640202216803192578900046933578292148041329258565629210286859478615213173371155460465572793790748424046826435008746170524289896805942584232874170701559949827069390524313616610139977788140929100045415720943543474836349601342881915367490334760028630994787759670251265378809587944290535082697685022384322553877154299478400927631954699551857745680413851920848132889045468391505994102396350680027602167502804530569356134978215973450978351476261508312170750767873914324190259113057769011279450034809058031053011413360450881870455550266722886825149279947954172217263034407748278923279217695487396824577295692849532907444404866217549650683376172272441836270599997435888091841966153479681274883579016067297044608346329467641947017741439085462481246806779765425855531648444288366616860874795381157350256214991345788742196552417944485496406344146365369690811719533505275214331040234391168917956077223534437897657418223320765680559972190673751810964195504836301259259674105579986344316593471167062387124466970477576909963669562896288950869093641782612485208539196579102716531240957264260230307660328634747258610030073759251234052967544938819982140070298642566804588127433868456891215481116507220642116575511534207046951778287962437337755734851531732087640507875762308099287951546946195757372275878826820486019813926531557523026573233557316686138312523325483156658651716233588792079117241826862033829187085884928686240632174002717986419965097702276907376415624869334417474698242189691798952600264557025368494375001423316080962871133044999601721572266059945888808107059547199244158749740412337433145595728302650736810859278848062424208335766222681508296425386857317118670921907568372719549915563728994116289319532355547188394267729817998829549407623147083131464281990352545170335250987276878368699254662871106688545780402748940485027325511428455324846807012575649549245254019199154706186441063998499101940974336680698934262683608014640744834190574408944140658659519346821702528878003859308955376775967170953255257720097611008256629523520772701880400603034632450011473412212891360169351641398749879088053669168302081233349944622629111311062072263009281289181163116517593787656814852777185418134727867875308466332513519426987637477503746018561442375201732072725767951426309633573111157015113914597953949815349951556379417931145071625452547832519455006243495607593313447391406403512043741609842711507387188326679234470681331039584713751163888894703303449041185610680074292155938616920983390976901832644079477192345396134019905977089287751604519523267639840733213974838788391807491701512696147537775032329121936252003174209323770850722847559594941747319183137373257529113879388595908254961241366689436338141774957590508550548330314005158883538405977436003257489421730037065193591799077229518876563951043712814702849342776184073187669780262740105156141467602937871054395674657035294707996874987565419545082047450915877603430312537415215886268661245082783234784520879366125606000303390905050040280959872397047305806287416196478907357111556107244669387820799989456002311877006725620021289056238434758790134781546730224690917586584274846163667039376862389897815209075009046995488614693026470194626620768535201930673869164706701381748729578753575185276926697868336845868680041425767104345254509908774155365194894080280370164930851173256728938505922473494504308420602517607905005687154608519843142290339192914781992844560522656721498325481736593153774090285261636099715419308823589716969883458862393172903411070631967543617689275355306874079059338646178685218042778469291917832111586403408534914257238938661661769394604759508594508860870602070576819083387652457212926746973458495252170558089682752802885966068825184305985044053102658657266914660876601373711226178018224523403052869866395289686311555865098511916128538749947297118142781695792311082950255837150039119497079533487150790744749361568381455949487640399553280467536827257663054868507741676122379093536947926436611214244790297659467719560472357836500218377729437754469751784844064192860896545592845715116813600815243991430655181157849799613444975450029790479400086885959924188084885156996852239025510857474747752120646367105041672237371659506638604760554988250966421625282270402954103908745727331767130283884234042599745515612582871839022952270748879943673062404910528151676047736712052286959138392962047583829111092824019935075282657545059613642859252012760245572692175789977319913960622981920649568763774102233328319573427089441404629253261540319575645254672445745508554490707817106856414291622073240013131861052391076480965733322158710469415115995255225867674698535628763541680439083552076255223823182847429443955035122370813815230937104957992330361391079573893513068028147078996592486332405257898795591617125638561833408685182567982668810104937619859413191025143350183693926397100945937212196810012182244908285538196376214378883305362917073718559967726393211831915707148468897532766022020212077014823748751575552027038065847896588642123499803408977213122803493300775373695657585420490225512328359871172727529172254597319621416229892263190487778461287734133912432998349971590837422935469614059816127463700011664665193126348055197091042177818650455683331234563851393249354727853844879497096061116978179777213442893514136878646607598999763231563148290165784579770858428379061411632681948841741579642322171333676489114770815751149562019101259707347957244694356048569933450966528995398945172346138473759413617384569267988916904020141090383818882335235759227241845892627482250184526159929945174555228742242184109739903296496694068790405696650584773581221325696581514702053791515627288879182395360297776067948119066599026759345881863526252265389818602460883839785402428207189125598136671837960850422823708155532871246018785954961528327195111440410193175689214952073612294305163424147259752161803785420360232192873382670873288014507286897901282000562930320960910929691936509037800649969458867384127326425201555821622563853468802064476685940799242054387754915956815260379434642383274859582384169177871241483212422059424740502005557908536711651507588818486414087847870855144042413348126570211742651753779753924083778338803240353927322125253885279438297417938639676259841926527735433869517398709706827130113565831709598811567926757753214243603136993704696300069416185737117457058338091888331007416281687941299710406881117606420254217677284088868947892364618262994621685189473935885035675198811963373811987422687195827462498539621926726087620579106889443951868561290179482169481361574491119875560147710736632738061530151769582601423919457423754011675611595726465771273576418782437067141944562612769207413146434185948880538939985891271365225503875272300849631248822721674461665882182049936876665168459431029488633950377296625724848279328570677204921146094303793562920436338291753418442795151611233075362949314247967461257410586019903814662917162547347269634736011431933380372075656001374165540534100863387244754241339323990746886024737216757674211600149636250507288003873244643417286793970226599145662741867901691209723178672230698164880023035460788484550946475745794293728292765751608836063122043445552644829462656978573918438682221183157167323333506449899207606120605959880069855755575317765423859841935622887254372677020319035053481072690240203539054105878278023182051301627443365089619026891132079433817306494009308989001392304905978127914645906843723732183170604406442424984663746789881907968243457097615026282755697133878959703018254501023905749924760020680820601688644448333224779109412185589507688955848797153803546780894556915645078224382499633624979126589971050836613743082528562268527001309881302246863423704380396276247228550513178337373478522459397206132424024734679693988755247725498773106511685905713775821672740946196476721572793933401809156155609504574975735010722987799240318710616354339878335072906390590208573822886371012970554719688345361197009908758169833953949387634123085156990069014460919833538449592638546113155187313209354586533206088846128706122158898146801752977863375001706456900202962890236075558534881174928441296387985047178625955815220347396139874805805037841320953683816965171131434810474229386811603599502198441490624207217160000724367518323064130474447685178846015254334003641016856740007670108059738121206944711016327957683962994370923779249267508666031517442744554635787679746931821917532732939129190994474280096207505539089842006222956215374916145889241156338198973498050726677346225735933480751275040745142073890943356184648890373364498623054780012507940386681524243168663788953904648604746456096775957376048977738916957148028106910797162483504384251555077660504581694934276800163960477511398135905521482975764825828231089387235621380180242785075539272986431126676352995391578778327505457134913355054092789501698295836863636702262974007579884482324699604358153745802804964071639819159656775955330397532709038309996476024727629472612296645407813529091093708642283818681768785777540269191917111510921433205116703722607268665479812497894733783356906317045899086090456636116013679239407135225555200986655467709572993294553251962564264428073454505178647712332022262410815111666732278230044970486845572745596030935666742062206173878231832961121126570288740200181220453578064309803461488787255302562370800129888562140980108187382761499620142482565466980290100067594679215892399393343861713800151245635006217678110867132983111552789677493543969820608880680794021570401050640907306798290605523028624335113041449674063195854642993632888565904784036796694480484887366776369429380111811638055309212052131574283716450393212420569368358643009657186629159510391688999387541995225322337735086491579578483290241183190140717106981169316504760518120684287208136896345870311944091913155279627375882962696428971322012668778800620727383014864503862670760714539300943679047849424837901102698648502576875564867866885522848137176318076380900493375631026473466442707394308381618132948745168461952639441023822623897586232476182293884447599125740936753967872503737760065788058769134126971102692264595754483763640143903295707210808389251560535189910806532722980232441483828958168619347549382111593008153935126181096943055840795134303901872936720736537877801952588736871811991063758152532497651841123125479031121993215791525714608742551872232330224980249055002785120986677692365908745933330423447508626322101407918394598761104893026105570402782377604317961981017142572968487613881910218500228607697002022846580215952950279331034544660885834729421810778352407532759663484924612080687348599751935094779550546842332253063027954271943150500749515143833828270733520665661432558722062631087265976655396220836485526478959507841033694465546313011173778776489062477730256562440086222742944116355545796579556254463535802895872202347145267060754993903664164116852960180347449255112701017743722716809987665437703349361852947068984867815899599791339068531676744128276784321610099366145029305091877380689447609124585485611492488490974300344283664214285404659795312669093602743769725098349287190156082043723682301293296122597101673575781208528699823855824240435521874609225927528458196940623650922666651640600952819455015568457778776844059627107434310177091739325963731171209752623301204168055648733728673219578883573544453560131731610573924412964389038469582915339336908768822049860799896131786044447801188819910625295695971256912882578231082683784693441260143150446559616810069840964142238294932003082728585795665356973933431353637356071115836709419234139155928414371326141058554786745862358889110874182332731606511070585288151803923237066785356844926005297090554730015326090746771931409900270742546024227654535469649199449716932072932152555685721903393172147803684052465398171471701327733269770504293607582044057214251062615935577217038550208456093537300645818064069899647946620487145493978554149852428924003630952997896562026741680131161146181990224308526989091387999340966352837437169256588799530635803635553386553220583765475780677918760470731793527497726637475738276238343885479687979649415397410632385169898783552520004074971931448791503106438238629718551364163693980412558163443241179483618911791521340708745741074575025472554208652199715564310637366118808367947170318891575152842680464532874415917959979114867344306305074563111897681133750226609546957279712599834150210011222338271938308820935881051847208318764076190241391247872699819547047428535373302404728171529979022165196244051739769574698210607214485956619889963898946264814362805277670592472349298664059701054102880738715226766025014099563495812249891281682597479185978279856625251590817102191115239102231564269609070336348578338227198564523598077469808900262180156015266111109724148380520592422531586329117611349492309101132804254001828040203728235417221575206152881638613657666330131873971003748347166945665982780313812637519467978278606676073701356043075792784800225268372372710494887396519643727013570256100450371838250693520688761183097161836928961622212426080637298264557923228008465848587322181025786098042008756439312890766135671391663755995633817087111650102557774877786275315923134195944462886778510149325437397392426678622249299625796787578239298433771571872313784367461987713296226742347116760136202944737375730811575790827855347765735725805186145638105765944742653312759953562957974504448668330902228419970015330722215592826000487935709760409727274798984417293832286581605432172893157883560832665694604051659857470917572840294914463724418497736523319225813907740740749594746784027283295828780003278418732263194418352076878973712203838429785469427582360641165499570768940013452514581756147507073758394200316588369525487523554594456800674700274727914629215278648856312659010675853876539542911276823884102180205718320552421773755101726706835038939832038580699745716348280749570544647928125578265947024011539009912288986250055853489438279962602926583968209295494939957171115014362582688904936590614284991395728012359790592461597811839068938778307572308633555492248540884757682211502783111931963828170354599820429345732854252815702329560918905565523699660631273917003681934672106682609369995531643650711030578168947211831953731805293364538759555281160295304080592153881571775918700528364622159046497168808074079675363679963155979158726419399157570114378973212027175544488146348343029303300325456311339926892402498432982565553088911205469630753733397822776996538042911373467420975378420618897303224070660515916053684410964903119970190959858277942944992585425316717100116532574117344557848306491247661003953669894110206049777887912552937936431045428423282173814596569613749858555775753769256166579341311012450434416045647633059107058421734260556572860996585617131625575501319269349640818891163214157477464200823971173355667145407459209034135613033415484725418948439408289705599514088780282531768939069001835426517679048484385032578138076642090992814697578688657149977425332908227097302895043515749497980761652183624996588262857252217137639822150627559518931785728834746576873181663823576840456692607126899611608258616839296796366014135212179583087826835678572089530460717406423952281844857335801567547459768394372539838789995658020688717007159184445076920928460361520465905510783027931789537750473934661792787806087224307440219379432393877483552902732683419937618003769034668680368677693744801791627940627681964799374262491732643784964028484454341907294024272010387575041553950513561622035553796190999725116397415230612779670840203278288137669223401538216246524764029262863035656502783747753248493311815210910388915014937272505578638700644911924482820266450179008868778216033809424733476578197257534768279318465723753611216015614447874181235807828149662895620648627523849831239778395388019354130055664085930126420058665692060260593526238323743019343221843233350382948158366171939240201894198482907433703532640554404923661342434868527317610135402444413050907223335264292179825081740936540966517531533265320531842181605512036173743103647386056233882166522951591758507673894102536871587302573782725501624051793293461805144805905359539527367337224435617441394710281048367574544862896582197107123642545510216570755097957221991266545399957063848227465731008558582579024613052341234070017762672843330313647348497773454189486126974713311608471807194767645921308358483530815430671679349893361071958309252261444048956358548407043182102905709165703751875052909751463411405013567712571802513264118954743280544062534007926502680339799482425651099093391078891307219267616705117715778143052836775974482745047509461652541964201765108330371317849585147645222147040965287770095622008829151849122911050110431424717508777483308833799983514066470523381575175274637581029432383945454188182780860305969495492555779292948880987976638339381774249556468770415123835354561023442084761777955217452824089855826616222915848141662952505066535859413756707457898167684326334696393056412246981665201591639532868571946227054691744329289330442074173653502812381295737521472705367877662958109561365551257413727439486335880968644378754887127222055393571672581278057241034252409560210949089952614943626804287623170829032699734164891670445396190617118520767026293890218001283603521755157901248392902900183076319139756882311367524505099012018661381851880538926022155189934774046043831241571524102525883718067943656386020182865193656580925477275588466973990307416054648632277715725325201170770495565635163452523405376347065400750259459639482346558630644079335669012546354265364139446590290533465414490777885092585605839763502656392098221901923657658769902397989745542423785995915616758173838986269695480661767740676556320967810475232946066568418240130408050692096877513288675745031647814601357004922968974938451494146029253765498838482268107455237423538627809050799375099787271276097013240775499652502095031302234588306814378914063811407880724731540961949672945750288818229412219813121914800858593132914757818506956799708855272880246129388442307585422367069313686021005333801719105206184556554647761197259247114731491069419970153525212594810989539882699672579218783418193337644461154826203881372011989211477599541518485842351560591701068775680731512408261300354574381010064631102747069862367833359570735258866732380750833882869101090792925436950215252336043594519888585748550980587979497900038511856879375166991221618215683443023665093486604363175930367411405068973979086768841037551696155787587625199285491036432054076963808699975652050872539242165536428558506514181154806178645701690916593962871524259582466544586808481735177388114159746409810008296088813847602236501504721793614715551200942364246399125544340049242981143891636928057304752997546339305820090934692737496140555638659350867586241482926073882084879844299775973537248781241980474313119022345513850356436789220429756180245984386320043144942369506350983599545690490831672127501283032674333090963153044674561666003599160435341900597465912848009164704587637784613873320726432920757516862741092521667994324959407796244642275454396842045235590215487945905078558692454058170385107941513166456769105175196785166229946844254341016668667375861377806115686371543844490853540742785180086431423847943137779956204349593635784856546356040154600174529560203622927210926794191257711354727399437595884931498682142180338462031809483544070120606826728665109608012370162396273691137930243150210776553676641738071180389795114010390489008460060232522989178372451246210882044233284172822075487246709385392718174079328584854822623641459088810291358364881934137169943578385206771396231883974756840709423652008685793526738723840843629445011712278667818914147314951211045466581139614629098943108871314694788611162790937620924000152119379589912618918434020087232863846270166815309972381675143115018718140416959828809621524543969245123803056158098109499655703677790024833523988143579504848372559395178576840072949519003370142885680816546985649667122514322615037015841636436215445186995770129870167994253636167807112975738326810528094299240208993036366477527629492966888902294690554442181070780197089555998370001991402397323182818663147540824553784005140481585014430352144175020867551152361448066905660157914926568302275149675435052609404503793037178785734996747152748773541588719329469253920477178184193631631975827389668084178585008841269938247663266986833035354063281454802190618308308858529191015183441730151566735295515641040165705833326639233548290277148338028170536623275117680820547541354023647972711420031873175251018238986667185917015734830278989488373550777654353195245989984778687503510975858559606799871084040636364064241191666486831519504148692473061984020088375433667799573772010359587719942896328518848815420131887157497863853006224752671586343097036404943653719293238235757231557480738158026644912518294686768503857528265142847579782477229103865062692596924301385919705026114851257778530252571877454909156868445439483667506067581501217034247521759169079835242496293593721101975800732961695299207950086044522255027218286395592658798355376065160620952439975007978458651745413785638268219817034804291681383283128714947972007465486427496978253448014105006183703319349391125409539242190877743153499441823732055232810410318540497952169861616183617212434111162156083328056961969689345756024056890727407713430979535608791191060165859906083180608956774033217416230432855325686946768745520126543895730218869069258865037322312048838970452308666048073138111983092617061613205133017169313266737037090910035087204459041241160488167863119403890019198565157918276976598489159376039724063255797739928398207350964570927406369659722122277353182619774974509203832190719123582824732748598012990076841704240834923972005876633342644340632547205438885585815590537690692234935290815016310723905209816889094254244259420196836375029798444743769686494373719049475897965676014322958369784711732304336907990531811956988412084027517745441159872509652720092861705305968944563245807790896288675332281601997363830981233491070538832922370770586482634303387566384826942770373377999222035531571507174240455494295386588501019315296874315479371618875949163491187998392846855618428723541050009373524655099658519476437936353766176369641633597973265214363084700371211038821074236914098677089385240391097368595445570590662602735328414430611911738793205648677092715909427153090782983658810842746525342461613662258929839826235717306386258885184950530924502923895445956706903981442424229510968696141110812095700718190218207868171543275968294152631453416219495999673119420576414030952396133041836323613763685253455777195650259806132891647536204997783258841581154665756243908370412244899722904304857726487966927285839683990097597865815794985377636449844122713910369070135764598316791386928062351518293377918367738173635221854328711083916711381808286810505479271831311910394013281003718746607427998931357204204848823989044684926856973316669565963726920697712061318166160832710467151605324712399768637054596282872494993836695572952432940568487929965468307019549547377828759771213819808661972518778459719301597231465525048959360919941740364506254089826420813088435125911575102424217141647420103977898586895907631079139433496718499521055497100572733349572346320677537056137673608208021069119738579323354455829252632813720787003142018702765389487443685504636842709388177756227813711121470441519073257020536236943774941644351853761001358676935055450663777629074778319799405577772583983990986382370990621179527392662164681598771446055621548484761810371475727542585047479988788579148180334888323993689579669506092680219644190505694881454189326950044467547828691271494513493636473713529458651981887271992618701009825888066556661206786235639368205518834627270158593037797105123159869416595698230404694320800562282022662537879503538688052470019170149223740447621367999350189797743732575712273433994668338042323676553255066165028410966511567636990232209154878437488877926988346959514345627563647309242558473574982794159609285279770217882385383507490640526640785289232789301761392252351989588629720261465991748928042924379744421290854361776386592050479951531087478107958023029458068861620706123351350068438654285632634739089211288693442966327693187337797714789363722261143346788957560745333700780799334679842947337276370300218034985759821582006812978081931217654244369151559311883835527916731019877121048049445084591836273738010898298549787823717428197021965570926110207812752178377083311178448312827424742110089972847261574578806319839070689289831779707454049221199617673642907261337485565316590999223273564346444157134691234755969501661708977830518456446688464084015509046348972352996561862524997575966037916388529166392472243743006278538254015737027853510997906687748408792496392807925062915814076588909196685962679673182028499312730358417942806415038222673069951824182070370199242237825406601365326109266089452112943710531867727968616833247788543950966523023844535112107676816691569005133994139336544486259478687171884289283396538974841548862776352855700372841147684916858977581626821477962692169938060970253775541275041530669352861885492987082556121979658288972591587424872945177267736470792953882692187130383256875569955407153373325777666664750768397878020169734047121953876340188262466477925221673502837001576260796772500025164692045023300840814844943646276994287914064282539231400026740115400963096815849705426281857949346739994643251460584320946860913398603492586579070741554276677697427186708494634893179039876993030133143498601556724122519777503831050686509881117551995701535948123791113153103785825500069690635071406639863915914325864022755648724720789980019675569640821468623478836630656289704698371085262588535328299155514217033364427265480183580748008149018771631715945169763094262320893155496153012662912541649439130150604665943421879224522458742904569534258313311650630005111232471452266312185062363369304789570290955878784471064445438056366589646492637866243120122201876612302071394901752762034718451016788991369185374275667601589071345174231933014021103793107861527479657422587079920692353998267819799251561779911305706016417456800599225922066870175264453860456843069152408620703107164685404189788187417854407555935781680547250252807437480031219253266356613132278998592213754880858784434470681633334518644954381104355076507391520120063332642253987336063371767366956276862203544835664006771105929436187070930657840095306707194664662364489246106025107850266363335265916751778383035606467277554709754200627445656424251117268395397419271128491560461424670581287024969514780659600500994105537903110878050517814294005371292305676123007837031460404584103124162852512807106994268807516445285252768126196396076680790311307880367288417042358802368556679997470883549277966110581504008162582253130350284256883146817461674589207523564126822649512772234619465400768998205741109457378184609113832183188694380812753434116119559235207836151061133025086784711081264072888898046032505979750013466522071526025428900859827279686776147166507743845942497303645242164478860471192351772148642574249264326534288259601930627346368145988055495089430035814942496413284755199041190356724193117777731587042177240095234297360795332114846438203310361805218593039733820766533617768369235282693457669144114909283890467609457399123411345152725456126032237967793502841668101865411608417610626945748936636813402579022386459686690286774468460075638443333319946323897114224932647386099428357675181944398026452887553321297029863743647140090535100560354548346148545414274870668657290390398161048709174394444106324102706681264325418517792601712713458939819260546672726474489365403461786560649578281533004301277990155142292353598179205848981683578212067214613143434267904531051457259207384707780281881757785431090407691152498233289315975197083046939955133317415469816366063709331714111432713777932793145357515018925472961127510356214896060232947407553774062942082701434885456686082834230095785884981730172256983740123687588267355644694287024677775505234284633207987929942732579554375060988508387193259517928492265310702529213405326693685303518121998589077556959954056595499919181914249547224727968379074962694164522874033937466712372093104968133475115829796761524776505708981241631274196046207302054077283223855879941552025666838160743597439202366182004672584153184820364561430262624497607843188349027616877727766973686454945392117275728355766682170901875351452238930310962106875675990098114624871227538986970910583482121781034070562352707983090421808162765165578368470539527294406733709179716245719924787349612533932620776001722671072608280292328986178807398686715887653892646509761961817076755273400449265360238108003265870434082034407232122918216890451487845093887603560368573001486354549625510233733118375727905764257217681543729358671011842104878071764783346945694889622869818393493320498963137435850150485452907904867232485303246988049052502392904813218170267249961679063032013459062228413690653032672481298586433516048098311214127711804393954174294775566389775031985029136729430139018099311072196143871732601851032478180386451758058164889047966541776413907748804228456223927678088603859960500103005457372304138832281048430146703272023465971719601647139254112040558933369733197350832501130026770399404674464478226278065172688220284574398974481167621812064197247752722483586024451508623397873374021202147364044191663873255163363400079193457331253244370471169949523292045936072792445510005526245422221892944252097630254468919070094287991579312317481026519315549225675022235388020487391093406785310681426704847752051446906401634645778862449314200527854657358527411494939308925927314243433972063686007598110398747445064779788555882943080729526387493528894372945250479740374095793839314864276553893587639064996455329760153030351052783131509451177190996045652205242897109776334439558407360696034050588151201206003418525726209779424625894900940054701561035624631494242447396797109245531138891407615707944609931778122474046810352305957189576179283487548601156658677413524482965560744093929880650540274181416954216830034094946622183822675557861835645811861878400947804670170186671401628700385073671054518888994885905113538948231125338377145312865868037152410553754828148931485984227696490861835594547096458065737654524117478555365667131125464035495476554107524652366810584346241619336343272046360662679820888423222874096465414563294789225573526120527447525135268066024233988080858212125499182385366510327856902508488310627140928114403643324004437158340091271361853573255781337233646406370270150416824907074674702669094593140536244169155207264248075700028349808563161631182754038991001350172862095919163899120853266893353582604365895598955810664083026314060729976031391145573660959008505843882297228455434133626495694045697949244560445098118370559911956708503629441654450628577864336836111349134489911128240526577426227155883840226107615982160664234017202195038026629733980829932351865265190680893817645956524440640911804200197351199068553215719940456322437862864778328011963359194125415784881418351274993424775255586822317359850044758237831194080713150664302664174924772750255150752323982251303581079901012065300599705183003551756070209788019836578660804439203256932763028170359088397188686176188843072517887479077535461960787592921079497653526161105834582414051016671688353996428328214667396316040135202313232661081774760719472408053642807223230629405767539264792142636755680848560689714913224990035129498076987661130052669565257773935604152428490284767295129195366089440527858268551564174601516697828646921155868673921489478993482250953599062742726290852867481568303518260334048253181885529246811344584962368618231184811058135925888420253443375153312915282351495926075158464492587918428222571045078601979497067861540800281186211186940063781210223445163741859760188946270485468739203503829380254435151675816709157456290398093509741521337078428830627076065078318359822137388273746468379715757621523540272556732362743214304224317199166125438452725670313129158600053127852998950886253999866179663189463064895667736841626972811987214514265660230987972860260550253621681161254302718944687404742719068551358207086890185888339566811708477600126076056542747299742783538914707938946888753902577507928502511683886544687158721710243602671237851054412231214246609998886659232074681231625200084396093656847487572553935658879700558485256335590038029530766052189913917775572923051892913069998390573315069843417141488261697583964190639150227261758202127830587110949579568633623525944063190679534872737467103357092667089483900179569202714658480513723090215967925623478329204740844686180426169302212616712557199060725751409482312699515693728129769830900480861632386463221842338695532725566974639156519875584241411833527779465325286936230746755245226432256390931917222608941548425032310074804478357987137092838709125177605914702701992214477721151604125100294555274402668513721833092851405141379324761305833663453030461084313373727864025857479952877928408329890016597808976179518704757680333003692276177006886447044826438930029247107918800661810552917425129447136955824981637163340730386815831764940082751033828806461827759307786209588307520761495771515596261770641441881889367503100509724585158173870970174534363375735348027478258505620982823418827154427775668210791696180910434205237812814817359878875976921444765307663554108494163275021716979555356746922826729999508046322327436668042692436992705347916826341404062878824917132513704917521196553847534165700804186471928309695736651711328687790478275838481072051173003228651076172138057600786441648542676689053594761699950038664994611047295274041025075736561603169220886425119047930062900714373460279688152922378690097894787536441964716788079113996177829480182342266911138237957070805380784928628310128780452378032940677875713253839513727674885576668548891500351431332458167745889018018799924142648349896756298721889634843030970891032528357340449247515482731588699532887183969586653852165041566576293956435989090110845263570559991706117811293073208468126562714571146929664237557461064343450509516972642975368267490065776690014367644782743758885894971391735178007565338903849017609425786892788914175336884268501279676250762620977870231494934796886261870820313546617520901994954806040105173133661811977406800667023928559391963875472636039017044499323548302690208790744342258246359409614549426092685635288448734683803056956362608976013792614426395874024394441447403184414985281094121204696726905460727332039152016751052077091831570821047496802402760100076614336526250288113995131572860181385057808685194240996140380487807933035045732876417942781352372735356055244429492300669812147322118145607028597837216876555854018450506493531871381141553283851764940239378839787043692780785270938187532918715095216744596323743104770328401521120807513252483707316816909769073526719251994814900520852622951636930077356804210883995544482936126935922904482952370024698334233462273659251207146255556334266786589757402862667359967271707578852750622385971808195973056898408115283869637627954143732015823276358241632354758682709718481103016949460007767141519057530653051857793418528224711351457176257503149387138698567395657376313057951041167056475177755392792483931311080177631800214761277804745925943658369533836686597440850820933618850501976717285749587518753702634487159643115391908675404510528113867136346631834009452696456114827279095733798723878948770308084639365706028594246271103096966899369197874114202796939265642558153992703796559804108096598843311661591005222769347853521394343998183217370424997326352277504668835358643439337327295867355961141617046242094392732455070913238317013048607460682723259257348584410600886399721673698651823003943047741361717711186864921071733102832776783438321691874899830373501607801953485918776549791381507166182290176914919491002588221845798863228224369523065374569106796960544234418439030444525593920621998893534250213179275944819340012395201393387845269826823757690167801264930351426233249725103953797788742735732562506256532285512777981026856799885777272445027926370574007634508232752295433975196857220336451274728729431245064394712147688004130384085337120234996334713328434464090478128112970894426986630872194366544394244490648449980185346132943349277680373858154551312305953319939439085926534111853726546450254128334207333686860214306145426641251612473162129940530897612991386155285586112140206338960072041833770716662551927787079548447265607911520603724290786222207757003280685568227156355978103396305596207894460784311912566479600889027648971224042965066973243633116824822054420201703960171091544480442467195314639394573951031089915069628940337234908644374973727419012422727150915470916248409434326361334342880293413436772434051501002700246301083195000980237122820560882588922413535113302017092257069780562836456716653644993755890919921752996344481688499261805414696883432687230569233063912192781105861734276165971108090551215928993408512748341114666043358334838494228495545788333371754003219437395632562178436362330050682967858846840368975298443242573508920404041291811978750645951581901869884847909113287892554191482067764000237486202026297152081638832439697958366257574720160915520960077696362472379426654625407597757907557294940217240522890670425101701966231377063082656723466480573593321039735996743406729427277825853938597607538929255009003016055565901502113555503456062454163972985826178192792220205167942197415100560438794861120766235885757114629874514878513183481408386851596749534564524094107373607495907368682719947979335459736046495484641248246817610639785387970032095773029516231104571315264647840749764211877605150126544599284998196199299987380382752147964912886079575234990034493662348464192718931709856899318658061461788074786734879025656516143395628696302817888727071852840726904902121926019438284014231722357134466835390517749696990560749565149473039357460419774139941189073605857039065898257948425634103727062315372772042634053159087872551736187611470770772233576328761348130582514712065892102956240765797647523532789560453097199409592710427086862580315967501328444091713988813172028984890768416118310013750706145061509432094218486037880435272624208227201946810816042066673079908243016466069771279505396051441137432464800474646335134415173648480944632580730901383483317264840943448360813972983049708508125808675980760019062611454434684963149671512129128690762795656858718006036328321285771551779572395624277920790091006711169290240481138331714902032783252586559485120751518507771020327723192363023665133099914617220427130391480140042681756710097197144540034560905118916879106974015239655486046128004695488714597632466095587684335333284390968020233576824995097671181052190031538507881934625599918528245543584491194762827675082900199774063778700652238672614234931955929744415969352204109698867939030143047871611299254971834144106872149887947294862905954875666109945253557287200297806632399472153695741568621142484096137614699103714694570590068161110819664815897462469621226415606207544426455488495194140034392717565017828746408347758658012961744519944581588702574015106926831592032490609263944135296376231169682396755675533383757485396717550223881060921633535313447807637053762364809245064803491915417216194771960864679159087730783402474473737832433864655714885671516261175274734266846554425292627616832074279804449647285371078674778034080213942922692680378584940966002615738227819598320783592805817135966492224354458546793143660947659262954764721547482995535123281784433345668576072729000809476893464247768091889812096334079181309091976582079209034073741064257411768187286632142931307292982961830674962422704998879147757198373480747460059079294617716160633719168895203297113734802447928955484167024580051637446065298139386713941864563556042839658054313983244181581974613735095050560372482193767239001340826521682326833094152045695080887892472328323787070771430229700562222417176962406441687001333087318188279759880447466843713809222751445308711166888522765729272067901059486171143711939917682019142250661582899936319760325777116990059591395884850109552310461061229709016645423712784458594819744194179775394393854174534289319113652057073345639564336591219441939350788511792544330483481642026735882648237127326318198288385058830404974283540605826487923536145059719378707718311402201593948186994409142316861920730563854826278233679325103359561002188159547295564431998029519593596172160144427750254669357471954085525095929846349445816043851583099475225190964294514275860053306647046163762035267572181438715286913151825330015543575660448428644145227825877222817916389330263830981254478495799141462091564075493601150064286007143925954695488445070967658556463826959721404415417137738520820203176027439930106933041843786280005471546748093147178257194841952794006455186034534383915783154609270482666947991910813726895703656732419689282674334669665104911610547445759962369080230135896815179355460638522792309240000405212037446922153889440983181492704823043526803260153003995748920519622021244703152923745405085350075485357469321578293257938720824712912508829112449521986227759388759496353709618807675581387900132944410695197473635930640186007623587719755210145720543563076081141809209689084449242004582179647459262976771730378702201521620943024910015467493694540395274031279802408137707480812515618898423214901788022064123569559108973997737410303434069342476685716769774029802397735833192226612477830626086376716955447872532143854435790530509230344237829085307186335811515219389809089920114990836587823786287871422386708601868001160657785508132394766811727293345203262975838066043328207470630283568512783645005108190420114743371195311668565807200059389947916513907616237797746935378681512508325270985290511819872341198872498902812096514600713993612284827805301652659692658722700790438078292890033947638256875336235443893165952394592914594165720635798722155938540657455772776937826946125835220256405733349775392823761918671382821655282164684921058343491665215086179534804949204589736139269657028892459854202728815543425318595558637195835060750167510122314226005299535958192245794720356693546382493401261356163657259027306511153688634359126251333288716194182803869273854101500473106308176777166579859489032798362638885452576356735661778715055118310595878291285819426240107510349114118042439509352464407765649300420934110131117459771313762095502521766923504037165103494831587010675945446302778362352448797157958934463095116162226873708595413793450490708818471241411283510878618126060713798611510058667858512917350420076918690585566812429435806772824781003707851778048459124408994235718357586159833972167307876401672922708264226762384042629075279079246873465000063619710546567769917681346292018065940550679361792318614086793233976565300047830468796111828163591285322817599963377933092658838695470234481164541543030250169782593378379890824606132103620263575906682384105489089220094575166835458003972614168324847007023306408825957341682964216747605975621526117209240894854852491690642542740241626823333351586355342195818009477636732970297954498511899122431053351305257767946918088351422820746128368654506086670193068009898728106022790569460065378718793189900967358520439870124734109489796647554164618033102157743715305544434868986789405555156662615652173197570099930759013706084690063170586951374319827479030054916969084607141510483945131926022206067332900433908707306323340137243792444134273018888433981781587263625747711290984746072987178803577759117915493744974736970241751975367355111180094450004723162853047448731507022535975522664434900352998561580501679256697845078235693007764564841229378037333863045012115056988182067408209525575356008754862292964334797924255708755204921715558800216778460980717422253096812724513518399505320027596635227102829517179327134744575541170971848202007877992943760278016699488662559896838388866653639540264647580063046101084228718290344400967253625941658781111125279391921263090344616213383537008366203977109793960630644061541340424310438208223570894120890786820640708184822414246586080024880826864676022806108052175011654105543527060814254185252419553618095490703411677110761825474685637322461342137229910927597971793713285945031989051538541776889639848750576753685006440431400879224185805996497470078813644373938776837456877502654270998344353504912732764022670190172971252485301819045483249737781821184845501784416787722893117486000490036335855162414124175789782951618727785408490381362198058044086858398526274874741183827243867146126416605382000537466746367650599408371931761574239053835814255057438108265821973718578295226196490300124685924607016137313895679662630974307361550073374363861301626257711422206532442479700689447646205581418903911679767902128837754279989304960426482728446681790755568243566979500521690040500363491524251387584097282802388626027272197005825078073616395858561833717489914224534946497475239348911292447368452854484235355326864566121384622494633329496301634821458054094991641910574424954349705739881266333117606029409139340301190587545800198853965575636354334746073091119359722943667387377670500514343683234489465069300838278319239904874096726143035096836274088424453676396939641224549488560298332021864392728353603153398150734489416200052056984776952383097909603764268438082096331746590568426822826712183613723982897245217903374841942945744567461178456160487767237889712001991948496980300309236369677206102562153891060182848760959354453217037788154127439699445046658567676449313261331892994862741201626048159491391770950407162715125376444734617654118453529813143117066069417220239144278196597218773397306920079840880762206920798609424527679419300083182123336709535931546343430172639580492874943428613180578668155488304569934055878639715599904908555951959271251104582992745783058820852191614419162523386119272440875515519147650636344846462956834132343775769813775505496728679409379304145935172579496152567272504813519379650148730653109100927822025490773535815014469814198884072529171735888507869450459352526300034607115437532095715330970462217794087636675449384227996207304972617323179204612752059316009400886456128435842162396150829408594927688355122849293870419704907138676591152129595703167670326894474410655440441888891497245328277313770742541946549146101896554252006057846238292483694442066049800086493524788247327678026521538938471579917735592485310767900443805554720056730029819384885566261038717985483903983573956508624104521456581513418935490577127564558839175607669498467268704298728449096759465077876632622489789839484467439846600117438699971194266513821550490564064395520561083251960769360260672261624052818220965036967296484200915603686721791508652623819398399289383517849404816383406364587832105283839844242422384920966568207254832920251919219660731081719221371168346561032647606739951599825338063553769166423296035826962894473605487439072972096199671892628903189430102481490110751497170116664079455118861150517149948078096461811169724922091787622992073329796270264424730746283073296512981816500250011596965709822018472698354184516663462108918588076123200339339515989354845297521241730538205895780545314348519290367708394739839468337919132405259787640206297148551516976085003846049932857302505170679923875624948350986289079030661824077647029588106569755856845289883089059428737226922716765177608109425420655616707356384256131961858674766843271808521487653810854834051370962820050441234477548586299750260869253586479096840462149873306608918510590773327845496090309412140470989195887217977073474204261944514836452178517923107196333137886902364512494421125013829183012712044934755201144511298219219963257519508407324445814524302501993960290279329648090305189611679964797544959036288622669466130874726505109780385302065958876143717250172377262536881585699095903998373338462883895290300017702182428934962680837942927728302445133814756486007352546981412781292517286475781483748086082358250688067463247081131974055334341123712960234520124289363669371631094639707303579538843461981162967076142658176793249529213877446516889804029895256500064180852478682275060352915033685371311526898563295993577114977423913996563068629193781366016043107904994808757539502463519168524485979106792436225458269455491467810811990907214273260783343105628658918133158606004192625647878646227407057995335866566328419014060308565703182343840355748590028660260202973616440094102893883193064385244313169321112644285934408879497568921239504533467853311835714337147896249644324844479781678632113206786929636006479906613462448216674209071484097161982794405658078805644461999474854051243614531751724415473864520534569343403322753387078548447809359648277212704745806014034853259717889525543675397855763912056405107142777382354177535968794543228270539113189357122230524642701353492146047638318844718816953792530004030437205969897335485284944587174466218599224826815365745400285734779129466060146100957511671356216896100850799593313966313232514747644424958298116831702584971027964124572581695072403246839678864101058859538581047929197909637822160879912364108657034769081309240165120846494662762116589902219528251888143837072989033151067703623567700399977331114806958529846041392614941530265444478560835647003017079598130622185519371275064185212038749464178207274142762191862652871264740041369531905141288550171952182415380244527495155257140750224745333627054617466479388187590321492093112521653032148374607685644480007452274042915481659248441871176020586775129243031177834642084450293226663803847483566682375434410447218537673314419923563477665184133877634087308716069982063945729882458079457464071247425058345724193145556214185663784103180442773477382997263734493356475832960998534390625427051717011981225265566533618428281466125123337400392472376361009037031337795524234876328463122872274592701950231361932173642332797588208454848864337177163297489837044673544112407735368909936795812932251435474444035579756537830180900356454883504533100129723137962618343339081995507974912377610007031471691599810569210228820473753216609106968455074342666722629253146020856915545262078696762036463267352782627269037998872614730589587057190659728891709238553033770433236526149950444658310650587033815650329007626293287267672395331921505199335774774560236071229433312010546335951089067532440047273883876312077438846781739578989403058609507170931411910154658733478858551529426718473355189988121710812653388995832822916027342396141471758412531663446939376378208368343548635199940335909851316569993370629983236124459777517444188330349301000550432312994676279698450581168021867110091713629261596791068725217557016811782682491139536347102150909470746640852042665038927831866914312502165837708985953713157052393097984182137785495435868161856276832676936141782375094876612429981835101023728402410422439009602662827306658887393507965125937385761055492023909582203103572777194130045287603935453340178449164127672626558240497645178937062896594853443848326470646065134558148742326861720897960193857037642081614155391718413182801401848815189005509227331739373496079324365337188557954875751620088456435565694004943850808525553007051760506974626392513967525412633155812231615072668537497342425212968647031801434580824227704658805347692988037911877430197220817183001218759995876794555105329372276108138140944520960112759916784802077827468485850127709018748416462679139420901808165507135251712878215333756240860707077163884620697030964050653594193646297156994522596415390127969822566538195936009687613088612925601782860548794998764671910677093906230559719540110464377062248424403234503829190131651362318450116500354385062017184000763623702005640489569966776575413272436842234061089517676394457688637745078688183927738801794249702687578612947389515750793360578378567223403666558319471781036744722858267488804771524713454881247140883486579873859477855295205916181757199194108154015252161637966496769689947214199762081498757164912282863984149924892665710340741393933092197422424277484922419595188391973621028878018835009455683444422300673310510768064875458249310159776021213496563519871397506484233616465368680933991235376704323643619180985764297204500698787068159960042055282636647755690164907214072682743448805954725624483555722107595801677173300922219535564112791991520384184438654985121834516451698569187382861213328503775822612130257495059876178246355863134058866257532772127866333372165177638142955439563703146325359521546478779635558595597033689079395329726139252053073636922406018438631038839833080198286036352330354154959005379166996736873587851037045751140408471490043268097998416127557548367801977352428507819117632432053106019676183492658099543126560108809630147992448708086116403355607905874537429008675735546648220396753462911364807512035171470428575410739496256097822488251023583443182385890752605882629598929465530346994483431864721365122306222299838953561485952537763566344773233293854580504502315785033553166679998564234648569725475553680813314186685230286263493519657422691682823194154844463507293497331534046207889213448043792518669455036020949580659470011439303102099762379133615328706509655572439821944930769368057265198710517994082785476966023180406541880625645449022343472077173271101333602024823543912357956984841190074494821904755553317733171634804122672583598054750400157585621557749938900452048717060199459327172109876087407194666734087835496307642521179659234865589577966497441497635620311114433918991939608908239374446795907034771465893161043142909524368956676652202304698834052396103731666924575092505516621325810963090757133827312619050166191938999278143593752154744907882193128788415380024057555973718309425281606008966455378421970850842290966684238703492031083630146449373734297447016779218929669800117125747037900049845822454084247187814257190012747997327782185587488196352679166276634761923649999247928405775505707012248637001743171963487619122856512599282485734695795087212966844159413829872662520906461793018760921726828320797098391142178892585433552474923016019314912371820941343516009496751509736652254845413581004160699606107408288863627295762240802297643470646620084600768267147971271844494707775263047598077015201464867291932432902770851628522561050444258774202233301046377360736057878055066448358228510806305293791728438802000887091112258594137279961463914205543417011749328008679668345320037861163392930119144954463413157461579285117356505484459098955111976881336708179295495277500123179036864958551818112100231420255402593080453432010921978751268947523034052348829454688168485446917880290911617481494047014950778934582507923398948224982332604087704836323156157012480457784116747425720556112308105922422508189024446242188487755903447667062947518464943502990606980716878918693027501006428830796599457433773422267818531589590163692452721464019279395083261185049408351775887304819232775214821771693322897113264348873657156713082148675928049187555080010966159403708713723554697941554993622066797630021438735599380867270560735187712140941564111650608364532296274765801597890116048659042288540541834663914087715487174371342328857864805270378665619265812244978471905475832951571551304307236601421044862222416730690845717308920422207273771321278272198873776037862294022426702827252503992933536687855221380692295356207329431843761963367161814310209575728523016000309688618163818743134111022933850730052185302654945990648921340736491166596656567887224558100761869484490062995987736919304964619241736717364782176880827764202552077086193299753399162172918998299533273286530305104920813910278349284435213465559108783363439874316924351646654828630268578159381409680341533838895203353299846952354926163417841104620996147661565609437410582052524376917326714064004976013123865251585050792185658031349585406599639431232900645145445700909965610114702629195533781363430632802769878216597315392345614660210135654554636320008343751615382989285773043534466734762243974388168302941276022169720132009830271943462347552525821403668576069151170673588648034636145630581892344851812532028383035408607157345600812121897906510480550435416426677969519039459623467291861767131916759000123625747446341091200646421209466384538647077894800410603124651528851376025525951432300770232892731514491639626233855394401056621305976403551390958751347417080519429834798495891463453150332637359219555256499485259752485046000903429005766093323345050014612938009557879472721974771584026551185802140489930999060222757164228238331729943570564561896199447464204090358838681571597991521854234782180400684326844013415723722344812980667257466575858894340766235144542610263988826165933151648525870678389099729541185618677602286075165840323098165097913409168573704482978070195446887853143281468514251992087322057014094794216503969650541780459995354335088667032731262781299497604163886208196224857291983607566378652055822263725655094356114607994747488512633181090584949551404405531306563110657968575598385664218657371526734234676931168047029965723102908469222786580176729414931870311909300601533869929994908988359387689707441921546893816023898590094967998774708733637723054997273345483580137903678829630652947813283915297550065221835835353725281834300837441978162459257630280691200957397602110802171040943920708968111804843628486094755697989838284279700209995319303679602192085896499158585756296204431961694041941949996574415580141544426846082587404956312444501177184590583429877036160430848995469354593693472555197782294256320777433716492442311443501268426114510708536686901021505500757833386683251218107463904367200206062516130479324163491773689586727005842288128051649491336161061957402938081155461883269163445345621694598561105828745714256344185136884907185636635295391085978591907913003701443896487265728697914003836972403464476163257846709899783246106410390261980421343873401795175426531382294497693510787736034307198321981763014863096786875374330715323810106042159481660611776238588146902416465876215578730697325227851539911031166489878290488099573836189213331276890222173101472666381203195754143783042110338577725137441329281268244874852965135851732231053444029263812038991607356309809121904527547880761688507682686716892645206930914358881173913255078731176953518198856198729575541312281887581557298562138382934373971008511973141427390518388317225762478231200646219914659983768736891351897285550528980841601141103225084659090475757414904274208809844212875419038789795162373626911840212534063314872815971288368272634293936631601693223780066480486732098753257261203116389014004137357206299916238743736747991144865664413739406344402399004634273928408134455484745690698088828804096019737861366769538533576145640516832871270542561136948515923051082169585788945600104676912521677157224486197944192626804001006074665009952448944688715876521092656554301138602606734554443789732209786711714202636126355779814594798158627259369665837694695224908378739070023690023841854109950565781932880234597149969657433232707801341065698057042929625546563865396723422035896085393245035401332252328253202838638085539835678735111691083336659287811524802918489059229181492697722443332311427780189718597252966150222595548330695666449571667516149302528602105286798238153378044272226705825893615323462393189508226612588697737860033157623749781309403859385424804870148104041415713972327769273819581826218973327020914799964297373418154856275871975411973114774897250313320131804288929072042767751806015935595014630116840790806969410207794447942449425759930057523804341274484700063817779025442069176442293774316860506359531436129303300919052693955039630132351007252408885442423298456363917028172026122160343563278962429442289274794011852847705664634616758342377011706115104682192564685265977474179404478390931998764715412038887041357663585900037410226946063244677856710917746414493560486500688335298526975022083918254832035491784439783590474297566467333381608555315903438432842631843550079937700329675402970337316842905708811386822399733168348407540276207075701223461576294611649295645182336053261908723364228452371137585387632487913971049280742968061535019343688840653899230008275655452072277452584577195021356261298531029672107642766996541294814200374386805259391316165773015483554372932018379278749949413696418206279155765128166459553491509502554829814942058905605118379003616061638118783597323475061172536344362039807872382440710405262250787519036323679249505647863397830927152476736849465138980467647364410902995995000985319615151376786581546529054475825581847337047191920757046825644251663919938355086176427431968948269484495977765996494727427441468919523178223782890004995897823823366215303496179752463777366593088330164465148519908611388874333010926334497885090674079529409288317131778634501432337843677415274809397644626047424925310841667096719135773725896226812266479278913759077176849211319906326180030650055131634124232394889506978524082686037786814899924043964077701193493384466371367638989958040054587887511371712935732573115277094895974901033564043282503783274051624597939391974756520897843753020256100892426246014485103214554190039089462280863235240349663349719629502940455747575336807802699794300760649116467868666594914886296805440037624527208614275936319216791616456873726648039123048292889437102525149305391273606993769539919460774829595427050494233107710262427653264032617132947043079735636147901780283133681196277046247842333460552500781845279160258214468272620472568793024677560378929051195759426300517942059407516811004438297506140870528443783964398242929380706127205695624972506941628072346268507800159423839477256595578074379481678030846966981054399095291701472373746941227138613393811539098507267831933148651016639708009894534069485381635551301357187304507668684355892311258551442449473416300630033421413386849683211286048223390528939786323340696524504703687331352809384135527031387097461953273599696170073050335256973206610730791580303131995962698070751367295510729894687086015046432701434321222538160357173054564764947034825577899403856008069956640153013526665096514462525960486632010131178936127215918870350551983162549038187707147647864296851256448867563463891718513479529399138282388299787610081305912455266642512442316144036551425022135965909774663083678489054555609363123733916632827244641524425525667836347091534263441397934376998013792065671331442944343049552492236538071780528016115451946426340429232354166478058191077083071013310246666353142371586971895711739299223859477989691715261855158888550246933177386101012668404343168677227418531532979718791354986921721574250251148673605838206735904548341191726462133329551740760698052986247680872173152394797428356937240903889188159775293815685441767067941183646353392936775714469623677795505884804941055499216908447359831055169283265503679307709745509628193163035936705096451297971354360088198528222659646053678598111900849885909025646663420422520610512632186170079377941446735804551663154071708770599889731367856391605563891629577086176095954561197962046860317620607304767323373259817224069351455930904385223703049454116233706526952021420398482624333162707429700917779880948802139770351902392404133062514121836527315571537280223239063851155971367507424168881452303790355687490599477183606158446853831308146323462952662466799953350533559521470938893363324496841424974089585281657780070061580824196934211351549604457858757257494067935601800296468788700851853961455587217961053183868882572553705998087781631594407350820062177295955629529101754836040689390249085876546589542773773313659692933883739222281535404153317697166427381062367145123380607363190478413045523690260607584783659492908086553721213939774375531104385875965522284876121333903797326744930607402910104284341714873383671409960430199447113576024608678144313337726888287701105576375264767780006031567975387642927261165945604181807599011617166818784932615906201129633123852049407030861465724137520572921597991201531182996850406982618693852386839447796969860734224914879289040609853857132395239510035554413371021973623333272452518242567163853241802424100436887345816555864514961088252845327203892590319600270751094367559906687277428245967594244985513503678565980175379665908741587152949650133723161149720671233655923217038291200578726699853698534269254722036047790346293328904996470129324308956527252481670719131657060628808143358960418360978840754799541967983466547506228112096690619103060216576658836309826931733369341162891219665785762429917954707407196097219370390173190163653475502527339541648133841279412989319700461090609225802119538056779646437454474018238491702908333020686297632435130309717905629644448164563573108056372046175138039768066667088183087366409543152262938368089869103970036603300868996190332463788067667541679277246641984990120708547752392382329576398592021759638551730926514170046386531076142354436173756982828800576921329552019173052772187256915675257157414586222467182930691406632727737035564460717594870689660444336794492870766527782556163509874404968177464876348056016146047369879738023509817561556627649576825776722370817335695063865936059933560943420555384039372698638466468530000023457668301983486003298672090092083122380100033370299969869779051967682198450654305654490033792578051826122817698581158732824563030279448061996921473763362665107081233115713893317880471917688739163891231954175340182080066031405957715632566722783807013493602069058565377691861915858772754754586558380985797994703663127195760393209856476362546961862525549432672534975949877971924045487582324809975589983724668911507810215318094038341136780820766317841252531507028688083694678751474818721158450215524059701888625207310552199302279138362296645068626820779908832982745559920388605350870524452536765933988253825967372924288864994429218886687155369271814323097825676550357024938436948278148132845858037461674744401768691210743107955092588237508980053352479335631900382702513425390243950773545990796050720493630264880452198712771539723986615668265905624697349170234827519703533408220383157374216970156740142837476667587606110614142977285155668765895921226802123681951825430085776452642981691911098266270348066174565300216894896679270445933789050936259665631572784809752745051502431921898855187140995289975765816220002921873929698377621252896954763800451685854220272886114153812539861391605060768214205841015418934754178771980619702207794828802577505370174917026448004703757266805364336430492937882151114074242992200949093704544688742307621609431574297072856864744757022965698110787252241479139022600260478474810737962812658904222473033455023169162442685677754849040729141122590564305127197303301695983188670283567276252157235339549420329388288908142575542657957761446758851615390535732137964626559953678281662290587309437932552059012941608305987619065359912286693264073713934187341524415394554061955891457361936569187123165725676733242374804084093778669654056645833632738456242316864671807308530906644727212827149382991179132943664437741753834128571878263416263835965949825095229358695809765251867858301766638963045296824328701000105990102032957697267905873747926124019109373606657207586917494183227607774505972254351280167998146699940227273900799778831212851688662053745572366894371649474062082805587919954886590278964532569966202900212477031995554145220759773493129006376681540708231582911962609606904567050939970677243046417058256759150543010073767865205088490938649228710259858090523886831175900682531756875846533333026459835811063539284857620158343765784103932187248595258976315001599871459514801420479818949579274035293839927677706636010203491282091864490413568190958034006563405970649632896190044867170501233679460793719203799950189931764729971186170303726674964234154021679496001245873677202479585361471120315330561901072269419948674213974256433935293439235231308979796393810274399238302065393635734028633350674515185991375594213815972453949750564094421504575473034088271092482073332395067124881802597287887586443574138575335244283786609647041930177846816530524700586518128651431379994721726973686201704867326917903398225616523786712065574840699267948720612327754714922377248619393972560269256629583921015758938925225806016423057776966322428222816037201968686502560438453088115150996151799381761730740222915972624669444360433900920102444307040929585668905645375618721769182840160360307634622020864461702908566713602919651751758506505964740857550377292797786506228561895157284703776903580521949738728010695367136384153044337636377802019775035734873936274228350871925543185416822675479830169621885052208431473687044419807890571847467669599096924574468926156457159778722157144996764919926267255940084708260658122710795577153597583296468920624880633655722420251451529405763040580257777064069855623936945741878422365520347777023643542169095150418302262292597145327102858686283458690816166345859600769555767589382595902089987627063514612895988214276765866448960481588147870293857096916526709548900494625299685221934280759855716908215301545888983644410007680109916297908980102265181529800691168079435830262253447085968712418817358837447786802228665278330931364184205316698195415824354724708580012743543852512611453271911166961604155462320557552220804972541771578769388014229371581483339413565183482794546791997961697012184162973564943868937100776663433960972466142853077879987621096250994391179412941295970428360921814760862386154095138032794554843528237295145780256717192292603462157007552824064700962710098671356292106062932559178686887914445625239904976983796067730947203162623974014404579206199955724817993110431397757627311764092919777931241681211238917438201689745874327360181559420589795108582442340272884572201675314197991454442879963690310569056319091965070154110836478873792942862792490022296016174482405555955241322170520958988175298122620982960919660757469964312539523588870557451740997410932907555749364884903659230853254974898506297098776252636238974202992560086034021661891760393015303715202709811258108422173497602149831997350081056888640492390247419001052859319400617163527847357349799110235704581885434797002139682960814182108748338349703988760852775495418090929735742318702971253756921792362597237792293181603980322263953486816427025912278123645388741694365415519034001381535669776700153238090111051320899791657720688182802118217446312145820035726582396142227025096493677581670809749713742491661686708068321121387247781479790091878197254365887122347854720077879102108714055929682675707695895670336487721524799928303958422858414639190674231182355772627317115464784930343135626026818126697129334678679246633582838500609476831087012900112932105873586505406255289525793588476743648834495061516701060996608389009893808443836617632714127769866895557611806224209816695491492062390356330665244990504658681297775979739369191195295167257945001372554519273067646619718386240670351697906390318056041633989570404197532397754658041156768591642857461496898326015810667920036609271031480404077178988585842050141234128832500097551631577204631524038508235191255883897580018277051948862368537828009282503974060321557215885769596329495774061196497608379080306185999858419296839964431974208418819862919185282976656483655226408431679524184943187473141414063327132551632004868544302775294319041076941564856463338512520934238193848232897343101065279811210519999010234583673905001573417739533374218558470987220406209476821675109477223462668692548510769609885157808142407785210425413723015421485426652149624973789083755099088413853442158698932177805788801581551963090715311600721509931917243604447780399227472819743021233729823284373315875771904554868798203769369844985208798656235419479399249989927007117993964795916156375706912901876591354859411814732064998917348225284644962452275178203952834182106443777000038634064749440095176559331768524357592964907095156712880809971095445387154712822939301619776198645880262927075184092701894584150998187178705028491646251480205566074024053898527531468212965141549286924819786242403064718653749221211023170894415556584194663742457378104452345711242370243196731911484557826082076360318708353035724493150328145413680025763385321617367530831296151842258736180985747072689986814810579174335572488889572351285127710255403727517219520437891529924103512262643204242341038686734097042095574832215448494871706704251927518998756975128955228204013022846291289123088653596384497710978774143308386835426628355747834642132452291189753585657141453240501208772906584053458804230673844565716456868579342108122363052621130362251176650344664665682553603815913645610300442554798997689935626475812248227134884963963514973159379785599451948111452117719441680877082986981151748366204995566652770702500136187531878751542548289460024902328055942714815734080178123962464841607856557661114212792349248616158049787378483297442665687923946670104587755658137264667082292170213331332872568694727259135015426723825251013356953043333535660135576445049844917902692333227491151315299357390788530386115729612319664783251756602347592766554438373998907809667035062815611113399088486810612997174226006889586932526833481810665930756084405163016454517924267620795853668008052216458099505579167168887470879004279304128891931574958352318190140553110226592673253176283018298090694021051426046929266916129789592367773823547871802002282031944544778550951404051761961186642760316666670560609553042306460879056572264013636892449198496527194043713960243975034166848076580869358244154613522624606044501790437500074304563026032377263177177142255820651367244904800866497261294689004898105845906673325408966376519814463772690313586336252598329125266154152861597773107521156585892163053725035465305739586197063650319817268000050162343805021598455076739480643591572828433924161330916128300334815143246146871652739215229738462793854788200273954948729165724270224335115425430253536552314661239491136777008096601895999824380099839849234995191328223873052937348977350599850809146038901643473298225826412385940158272780408513241733821326687139426759412951332085388195631917608553393428040638740772285803831970746079339715182759377240622677961152170141496115565206959376029756586208641126827709176130379582112780925854997495011242954638488909181735637855300808550816735202235971332172451378600047343212059137032612228186093089250430418419594738749371134119968773515688296242095996703233473444457438189617172828152655112389640628065822389486897146888871650652399506700820559232610751748109380262902955309156368229791098482281169200551703986416886029703247540341860646013178068458592977697390506508186367544078306287586178591722648940067294313643790382283009631093320672222816815793874032809281099073335731665629772464088173753642174520139610448159037414914151927729864373744015328293994696456054583104623958721049122955547853887849822256563259099620945046949465866730423503579551994150947623388638236506641271634073967205051078292370539979691265805382538372112998504543657038083695197767691431085862016051095143131624498557789046075335894204689664797990710440051426188636468452873655107010323226292431537296951447420013543509323580622562770743129639014170466960229321834312311924633986247618617674044992452511809515343458076922422365698964141333130250398108416730949388206922635920217606685468438628359335596887106099776774948088515519266488626988002206422739551001861872697207496732422309329135168175436102685607267034325285883472743010738263349159123690117005596407426640590657395623664700690666118116188282158405592871453423828834486244374325252485763848227399812546888636079798041984327619340883497028486501926953478667622976667071548880260801006473022630115197751105545036644458942809115145178211481336437153403439450581788598932351036642804356942776914771399582990749930816016716964854812006433499273940594273264035035680882675459156261011055855842225351692508067038194176468756932447637441026749891171882787489123383922216589935338311671530129473912914841015849931615855567068042802809765914021800091232379118931399908957680322628958326073709046055654960624663493893051568505346788986909852884539753095220817810189239691155323395892139899749617986116482582342767778260422204044191255415959676440658404378472995477281904277231642227900410374131013491301253812933029814531784119633388466340510897838935909079682172119332515225819501936582530902858898926544648363235236328879143986027073524522181820969231643460537706333678747267054872882893668182132819448031696266030713589473015590476330420981057967554092487933673243282471675458106464290224670692522361839018171378423153795409547667356139732155368435195345745932183498302203134131163352865759652314679071460642437395271026855700690196247450337656229681019501161324147786723845351673603132276658755134935559320727884870612012915079021056916187177702088960046489465173845059978928282714767484335965828266286860839624077470922380401925348886999029057551356204813393334269843639559649383709874627137396111842742630483800486796739322438764033512321091012290368057723929033205703128058022868863227750443584844453763881342872971638695089506433221763925573713858733836214164835168505943494838207888815861478336021531301879951896880312713473785581704547965178195651276557764192392428242715170745528698717782233321269587911521277593921920791821731380180216516765265855207995555441775142531054178310182434479695666587553264168013587746097739050452501766870563899316013979148013282642784544167986175972882917980840759764590725661986618722999202213670459422057601607939384298785718871568290406162660475246164536536767869589085596210364119536136938491923544224317110963576838208632338687631770652404872351958709057084440798855332648595624545733428034744369927145664542160927419019821482193993800454590393737878190984489549319763345082957572154422259772808880240701790151130388572784366922890542328769197202160801166769393311090006358201809063612531687248299756477238915542954356061841691964314230886632737303173380607000693270030499739892541783053942105646498220876186641862912190853164420535848544336686567933130967045254569704119329224040679068317448362472962074353136497159645010700962756530459658935659449357597941756670769793915694744908977005135782210017070761649517290176306706850637431450390142774977335994349313347407209685307716010379087399283753659559010019930669791233925517030776267431209240133427884079717674373679714606150973371676413477420642281093809228018434188763714848435761114842966360539523949745248768442260503040418577125703588728160393634420305113575818731604746822906314625605471275799475959757974342638940651407392350916137315497045376377930027763058267745578984499343826272126013621800873774769817744975031050481322318674772969819091347045868435118412281023078321571893521348101220632719363732895626648672508226080225353793816400342713584120348536186452911626400202114645259650908224746644893362669828518452097336686593647858432892557305186282200604197220987629166561559476698344522643962178932129459728610838327216264255316766959350069932813978283271606416148488176420062002883879161244035684210210277443784165859298972960043939195347532542374968362158662890233864241673154992034541804634061572410148058390016701239280557699898873840261043005061189181514580750019299365947946095936984384387947224300598981864603792099951419945138653133969636598744004350958166187712715958875912015534496541712944744118774102616732719630546663906212574695404360759279549444398837094466174437962217976623086879862057257820821644973635720579050310227958981107610968369633876656921941370146803296498758827149980595621126410427676028006375968011346257294938244357979683631305067740271274003994496263159195686485458693717186667156679308012444398102873711279286458436413351508648939495584710459013597876473939618852786127013334765880441851317458041207568396203659515589526727338518165740461740862287938266070324933062693262535117521712677204710537636419996396701878284568398102978519624345764823934792794431560512222749684166005013788934932328497320010215986115088063789917301743617965385678444796381658246413590803763785802365415704321947537757903598222635441289748478532360615967980574377163244508073696687741410430358751267107632833278431415712446749710674794201260598297818143566487021320600976290983641236997995006081709819329647031906673230479395798387545112637325700489142924660216233980976205791155206341494228447709702915556451639766402296805209934755702619006343490075807980975827160227778542610047445498538264240460857275920338435636791869474759805306846603297604454119037752422238753234660316889674101756288184128848131588421604975649864345742522541964901536969303024308086696925735078748327856655254521301183531862965558603863922967402384176629144380845438666116413156916011901015887631438800851721018355785953523692914196846756699956664922375774408398154901228573707521355805638680917139867119441836279703295225716158988428214490504773628876860590486278425604765640071588056031721569770385584200302137460353953229898869885890713835480715708329577775445444751043625131583252823456817288458271690842530383641214860592753095129208341669018022539871332108124909128558823611738474972713529191183272952052434912262663016176607712113261402311174319961317046640454895962692496883896429064418593026750310780800424748295948456611556904805008820197214554874496353758390407441553605918717729223631246138709825384148794235638708442681478437157142886230233809838787119957582441321568969115465026715481540525783387488330163535618345081889108229897855125709303600498426773503622827519384894466391839795415118426987425237769752863086506018409103723736205235980991880455279955645333574755620870286582453814565088584164535396266569735138396934836709850859080872732958452883585721428142735042246282248421703877868279340214392948145597979678001072289744264256245678928435542519452453609643452468978558709297121064118899107478071014484741834846081600979901568366471785446760754024035205189840593331280880450848787137488454061775512167441120499667871864632397098072902408460645782680105429344730406942650472805524582408600821408147841692756746898254431373430914165617928137054436098716862201040653009425536450154516660175676244060859573160559157740070880219090560833019721515538192573170769831563802679942136605204651730040882499754681131857272715292343433627434084234764308497941135540805486293581044372710101181816366038005040832332342959662782003371422141749957465810559885131536175706856292692384878495677533997185407213979442369696896472753923150899482919572023661413989972257892442065441610891844235976455332042081535668296734556290129122158447386899043262294049115536372387447148456650267716322284774672881795343517173128213053742686607357662836104635515277938704697290934754785727337247836451334797258689234582285421651646781695586550114214612559583089293220452525956978255459957571665893623925426933511348959202202544405452592986777537017445222855297930029278220410640848410481207718718585197522868359159947225330923615060874903256178125421835454141059468319615687509034239071859977908185936580572822393232917880248109534501071883743600616511876875077954802748678385028990821780752519586043101584615168136254619220637882930474841235781627925688818420277530251244546422425230746085194738261351303380937624655232351856836078909851299331435693558953124591347431192984646035129990756275781095243407151166162046843845194635471910949989460563177105154327213503365042775924733829881372054819278089899227451608318522449601219606084267848642175168868716904320722137441152307457972746091781952816663528908837099292032809021014446886206145143529752678698056448175234787450471321700487043492432806821741381351254154299145982218285236389443561625530503143417856193614282063294364417137357039078276421207142822915788986485846598651679820479514579940934224423667911429109475006386682371419260644326183374253753417071796841555210639702679209706457792326651491495504078555047297424384973561796394605817798978451086991428201879164821114257411246255573673408655392264157235998004327122703367947349518933455285772474479417561307476391447694283285705604727717570401292223027467738304568211466400389895163118857070376922201106771566411393122975237693353663553319508167277952812229066618379986801809526486974083587591624042972559780784621584639655726575389471398301678004834757179242724478738230656750166673056837896739558015487879562503353485626969032976722719661166915932407188662999645732696045330004998851470599517010264270056150120272770391941439348437679790618216233718517873053884149078742677998171171509052771870248595929714649178768251529318669911843103938371760563737041125268683056146845304208699315817066950237621901210900102755962413953858309541925931171122735423204012674758084500567407757272654801357478011419494458528017737225491471625369504294728452440373699883909912871616785662216962351089777832082946965461419323736940908893072051344453501253705459201873127443690865525189624677048305645435814969752324768511556295552143158709046057710898089961219756844036993406038559251320197466637235875051480692259904927569773472952896575110564470816191967484350083706775524705467837158742365012112335319281579861538366512629784069423777576302158492549484071456519965732839641299934846324509742795868755761711592403072817302873793657136602559030674984829885179476595046681230567310267456279230892828743200549761260515466906529959305973479863924910843691316607327402221153342329794583596543895754379966356457692949956851689880797926556408111749276064150764468727371544452497478981005299939094652764077412140761583613603385989081517808556741897806572089966667592243884838466980325508395793230183684388179258529220129560804447024918507477718119245607440932981880660302486059036840519416397503312556213145098330411177512439332449147479378628465024058053123423761195012669457906485352181312415571971990621232542653708991726102811796013830835672259112236893705266381905943682353520663720979295031750020550629936728961651684959295520696585780437384990962269830274190038248205234268654133604466034946506736356725015924376353651983052571772103265684274576595314732799138569113892332927800842607395777511724611436535335949521629053699706492233065411096894178089668441963208376117800389169072313053519452498271732052613625751470926253840659036732580861423058778238183346833221842678564893850395526939722962630138629879661467325469317855669253885869691976900147713892113734467272361243968072804746229294725601189828722175485869279562386536784364576655335478692397529279377463334347237419555661103278922376701380121397072819887340927345769767767676007935514267918890460346962132966839740420479289011545869769880225780759357239728268483783809773125439261928667375231561080646997054800325203609038740418974600374760653191098220282601178553643351700702272568437768205302578309951269026916558991619667203896674669390519455853595811655862467830947760675421128599457369880213095881262936985815170043664719239864232494276288681604341574174820157674874912508907960062263855572731207478257873282466489102014248292314038430353530339605870790136538567259998623713985549325557879126043883463087131845401015379117668903551568526883597090266427118910233989733336754031684661481549263129171416287264011009629647610280773376489476349396474347146695339400620250104788779349838693502557025193781675702735519860961581855775117581734953015115081468058367321689559457253418311900137807588271831481546603313848081549587655303090181345755779045928624436655839827310506666085753340496510059477508541631008263619191767821214301369160406462904768781909840529459205915938879805125098972320641523220499090768952865439961749910351816102783821216601424428994715977257127092379645165205007233493792045814435847329647082974915164160487188476481350927545324395165307387051126798865824004684700893604593866890608769967142218456048538123306614777051659039533745302478783928815678977135426390453665178178946654227210073173436510543311930165622718750614773091171661794441799074609728903261942950990583550095696429430420851075857476580277128778450492535996650500164050849475080755612440110711132205166038900859189714862821620175551171193629909086820583848962310777900534854821937299712099897695562525451084887838632005813010889740672935726963469180688775628037400923954947930089965459484258556153500916961025963174654129366307302344595200339113917529041516682378516222126117422140146962094243490930976770803270032777051711478818659958998555862164090214116691760378186752495308921292926853263900599393370989763833235463138218393671413997056862308252099855198605755414751600681990598416034849541310841271451910860550252472875392254380201478175397789508332659076249989744709520756287386815713256459387767105913209305764040813424286364378348481131882455860049637924360601690078002878485306545178279820954604070248983821682649210423354703828196202263708338663220008064668256280593392505322818186750602205440316197092903711737147009964268232494354750773888092614019615164349622860187992036076290490886533864618466164891456595866257295684210216450110812594055111409838041642203982291124461814314816451573634547993667048418050528455560651499088362220710184869728769377725168698647480343293758234501586995982374165836605720869761364563486197813199566237467037244580786977672946558888613883262233637051918438995383809743966796856962064885134747022568764013042103647083270070531904771069085662089508325027338005140033777944713296709844596384858062127894623326813094805734252058224328859103893320035223097061382285868861522201679373026206148729603056004270518142618766824548404849567952937871441307049046575371577706850895966704895291147575012164653585025183657116412671364499973858220406243635300639038110237896853506792017931222340900667428071991221759540582944707720747488060453009364440524874523649118636376256352086587941144006288430614331095156255455467416510712061408670153363144868338753916492591402722119667561953624809051582375293109822199399284736341774070415575137678325672850564424699918101316518106545702291300497809155751418606412142450412879049555921998860108789449355758187379093934790375383047728578055593624435413196206323989233598054813023028778654653229141791555070694881702226741635384078172285025018456431352760611633962441679869264846010172360541755548585052363202584874433259013433225655833082049951540796272991235173219959041051991250077297129659318922214454712432246596760442847654481014246251557211467296471425742839348165696769631788349922225403187459414217282937721744708014779852832729546441792922692923386863727499928881779881336898715890638150823841961784915951332892021960931423627298645287627543354290655651538202730645354602625985081203309213664449778474048659502934088551078842021036942683725697409184977501782532486453728879797922729243986773243961909095421963848418976140071333097638118638646541618277591551244606695108491355910228596205859366110044677683355262661442376520225739299996642212047726409586574537395632567088468946281320991429760527974529253980026991686490197530476155911641045791753715097174087576461488700743050714435088802267794660081062030795545264828365773559472536068176984845747804957308939631691918150867178730872211034058720925749851900772870335441188008696381692066547542865090023452702544803561621572170371785171438107674445821962236838796014197982632335817366793517994880488164667414857689416685808975450216306096534578968771798539637455220971191263606925543262053061187442108361326160206746425622510062096742218914574552176199379130072002827793901488651103079258747613326298737284969288569565451959374058225713603841321495713307077710036674864528455696124062852212128212725293184562548391749915699187577465739420537474103586654633021046863100969022634062694252416724856494641701467403055064067016985065463369437624543954060021443404177252789035059251994431036589178691483361711199201230242116239843752193815369094532963348051122013834373641300057778979239521633746272485756975489227265401530423072127053833998206944192345806848642576322633552605324639674328815054225657081480714864460304029372397366758920073951470483100065306227316167930388389780533723286883898103654328135777567660459380507332627455360434044946948567463616347895083270290782084416987068416814814502049921646070047827500265446156728136094748231127336031897816327205551576355215324860301980324306339129557915164236975861276599147419696925689343485328850428980720952982533194907723084605925636801644343021010340656061546285275699886086428618784167606891821073229123109013082545144554420005292834906478534808743201465395055561930040446925240980568465229581042709003977989321849943197211347574424642551852049563607872473096061503902464744747537350105460470172032298982559970328718810748252038595869607602067601606167813885836106594185168367734746881883048856359729151896499846508276658464583954300363903594523212942940474136213719320247820945401588638830494183795934456649873084036460240097721204594497875093242774083466907579167533170328371047724760499566534212285592637828510679727038820281686092334302075271272419054766485042126117280369264858337610687666838520292314522754592659389263755521063257970816505165841575012663136912670038391443492857705201710071116177738926350882357949063187836838468312540401483079143893756331150837135119615597079576129742090060382749931633992009426410330114453775837975245918773340810131457432144580300742153450192374645606082628107090670844330769689739329055854584051110100535916582056800717424407523663671039108120371271330588264289871261180490877736534205276394358322344350078556455301482780189566663987888811416818244380267516951741391754438131707111993995164123613130109079907392912391345585370565159575123255653258010057434795043257022074525763358232282745559448491340110562592764839822869118150451980944509037008770468571221312746567603581853760693502630364411268130754246398285695483379095137578680614819880576166386522821087310648258484491903844585752682499695929151897605746691174774463286146563671888160648199039407027688509838260810887296863667361502868478902762120827285981975057756469912563255531663687598257275705594792571756450277738622955587772044153337207203398477794798342917541344909862875053942033868732414802657759725097273062802024012635551621877766016781122465084928846159841046827227366553592063547122987898697113615751222797347944400456538329893741280099416693644539218046697611657953858315412215854424987450787689508867605431863382759125882766535585082155683350442286377185318223757827025948886979383172513626791819913695736672275418558878503471273629547998248053211230723671392732809297446893104820394365860962950575968776549386756233820960276391861569330975491430176081283211433884013810350158834715598793326482193236212524349382183715885826371634303075080953872556051034452015218524578488603526837814059333479501607233835080181015167684440692617223292545310750850589206755884423127829206010548389439778497403320117657299941122359338066843706771667012268633482509798289911486438453698099409276064449905438354070877193451687683751957387476051985782673844123896814459645073369605018656156867374650050777310295106167568973788955417919711647584069646089930158116559874325773258099723935656433361783684799888684629798137396847946263874464630591422811769433948093322787981292754420430637906463657363858846242938011075462995372806964252515147708733185860807142911026130124813148182526205593206691868581637872557285447059484269182995182729235894930963674093951630450518871202121566678999228858566528510647320340419137913767100206861784561787929104298440257863435556504193601110516849465986682465646144295270150089111649715382476805495171748712618073283122193171118719056269176666600951353677135309738486235792050061903469014109795821620616906824051323422781055038193455870340487795478343332884706103026273200928982241706788292832232394859010437999533522727215774823782762296595374147101470914812370741745700102551777863512761512929356154465282497184310118456952996355823886402888030786474237987354888790720384443633062862208067446667476006126749825716136248372975327869082225063336680702969944978939593795230221883073864033467457592145961777425043553994720423341378467420889016022052974528729852221032426156225277345285754240231659950157547805722387543553327903822506694472097683928310521746289272555589965269981511389573284318834717209501418674615658310719263386877538725580585563734146670756289691058503782094858694876303195893065536780879527106521818921125485861629846047611777907384918210174921982248590742986981837662129536105734875429570871337444319969081486041627646904545483385663331811966212134887271041497743752247640926914116436107138728151747638231945552602292847450071650902888750886636486191620809456123500701969083259731438831616610017630687188551382592684595022577860826019008089324389279475965720620631062485292282653164377554396148155202328919662134243778277235306764389115166204287180862482144223942558076325081099394993994976241873278009324790111710593580643456193592798836583899360924558817981415684459015640188091216120918678354093893496730352505982306149655832620123680655101006909390003284184980960002158940507265202133597311693502765873716337390348245850036977593506807774623339100880325937404120743670391516937650403247204742885831074596158834363251990878204900384385312634226105563382180288200976223636656525101233705722648645693726733888623775363773259905430828809362130510216229214147712340985660753248212827761382143526159136800345795442914460701787727973278864371154755145153945679650677315033182673365867488358113900081868832323394499789451578705696245548088839500529001465106877948666960880379651799339533434620812065011453008589490843924800789328150428343143300814281471518093562682089354696157493835818773154400986921831304417000098604955888573488130718795610160178200442141670497851085497585872516698010480166628397774820295788494650572631585141616484776433607876892893065386077572626813889190982062129605367113995170221889217053540553881119731269703550713425756987423146233716043112295664759651623230061995159898795280658108246290299522633988924237368383357675368719254105489589341910845135206948870287815443240054675521907829514050608980989409693484826772606980356480693575023565300975651487100255747399750022905159957255666369006255440234532665971932376760837569704955517982862638716479512468063168835085732371395460669428867547311505095817987778507661663118368571611357763972496180287290736802204022507254490545515054053311157972608686444784935553632170024457423506299514730609640190541990628537430248314501548968136956819123504067464973999154923252077840742663894974756922066888464315689758059360796986214183317128753204659400688238956384704937161173237836032344966069625664250995834396465446388392064752811356693518411414755588971467923153089552909705939282462486802691037170741691503331087393795837616734421004782955530759695619769252007708434318271462098387235141187187181018993417858386412201628209197837967749947658431743255636510287025049554098319312979157055142508978877450687892893736668115054802597055678308352861464057619436532089490785310905007879864121446855642639774921167770469246576238081810129798640444058940933581135355511700989627190498225353093599015130864964112726861350457189676108698843435897136564903864003931986710225260611353969125094539915301799093969319071438802750984621364589270950903394798926619806165548467220807474075265741275531674269164651388303759508862852996580657934186261304124706155563745336476115654032388790453656954817764598981803214407875071659044897774751916943731743545372247866252438430180140641966158360937083015446086938731200415612295351015186773040696456358435391410612995596638910903075129958895895094207433793444404713782339985256645228083515887119959084248400625865569269416275719585629687101150104057260359431663558532702019889010706566076691989595240823905172287978969584664585224918006675626508791620832643302381428245271361916866002262693911766878128265444475889834980437230985541998915855052025261127640568413840084624120160523373838709334023670789983788161556831057102982570284289327395362468296802351138227896802142527882906279876155885397288641746295039050263322869456409503752816413785118714290607470664862049493389166236733053498293502067662260700088170622914718817555437357047790356009872385175118885776727969784150835221365419084587380555073076408676941494675120887999706148602381655670846881721500800672453403760178748026721991051831063170890091020082428174248419860452195806673768519771232722722880618436141794567208925553526130128785803734158581733174095717290027562831448420686194474074551095049044757540734250329304578818787323547528112833762404013293410575559036579008789273658640920229606555242222535118194025575108944980756396003177960916585544027751055355451175282373532342365756727877582584408669808473458845610112695900355455606783004020094181033023049203970507972099452831519959598825560616572681703960936147740727614099279935174574113507367833265039130436618270361102812049056677215008950443790369366413900474439916531120703684882420004602780335562910810868997487513400247485364158484390672190825484201778687053420826615663666273390827697188367162540340463208904567619608782556268166776731431185881830479578045240792574807005505629051665268985640892016104893630083841834705210993448886694003657314454088292294343714478533252817729533477814178928318836770512320389332252384704699407236456849255380720306396927141270032040584733262294082506931825987391763124055866169625604923621313307809935293825772938019300771250375861047820037958001125883841106611166928129213526805147624333177839585074515861457678310650627117532318302790209696158423653061309463272062318603012443384714782271274888799220914836940219638557752560949302099802719361348103725697114173151835807905307535347937520578002379194954685057356379661724139633642714878416573756803387523464445283368812241619469027951259451664342664147822862440543067222056334640828346463901257164145031487443678863792927026003484719967383248401618909650315148747049526508510439477600108015166714905372923634666132167104131798267801348248280011678750248728063639538464875626322272126216171171615783746709104387435298579966402499124567110163882027592169208342924365273843637035446674929463729400827490679017028174614401546647575567886347751455741771364029563393492532097009049725190584468081283399289248042852349999303736539319268493824432309205395073241026075370087582929396573423537789195754005026602248859531603133986417256385446757257734917633004900187450621712005087037134432669037529029416911455904999670428014756869324281462983314915334653368875729727176144468093240869705539533867846156370684347000169044362421088445812310475391965736041835235465889722085864368115751190035000164648333141416700548228234298958800798478349302384202918992013580805426130728612199251312197138638357313336981031573537538316360264976921333870026349369378980947342152662724608273209017210648760037488140137097817338483810146536525250504064721871337471817755694136114829156872290209172385979101656107994674021605758330522940067927724323935875533543307920457273073732511422931418714387425855552326407781601475871345921240616569954947673747147210328331156609130615215348069877570817730510025239576570995482709782200156072970316454931796040350602451012625910466512015515829237952250524063964642541208670463624016132836364686069468301925617050464109007538289603352828933781888023322397194856679366075330664482937468905203003836041938833409383099216870580532134904612764192944562921552601965759168355911940296999937510309812729621697730596735699742017619653939171169238736484712831923920231317723123524133340338170691340068587367456154620620804546659684048220789683600254373373350156758480435071241002861891105846664393036829426328331246548849587389733873453699805273495020505159352875672685385570285480066797430952737342756910084172073074116951070561547976931279334775468145156801616975734010604754650438438532651640099113314043289500943186410881014397626318451229527691500524667799496024589463904162170743548045194010668844289537583335164852309120200289931037997837977335965501434753104582124524551532300399351332604954813465865768195670879216853141871399278071590621257114954173236854924042086138209293972293677956867704748975626838820451812355411789584709601121322793863674322552963871151478543328411355806864211860073545579181823051185209037871044936683253268303593139232642731020149149028899418563433839633540435481205911919556944723420919154634778910758307687066710164159010435206075102899515100397686846899668512974710803582671984705387393729090035589691772868564572440608484147438237651407481724475355023087463227585982987632886799389523175812839570356331303600601093787962046927596302726846533336102903964809423600630774655850452061634979004482256322688039516617961302241302334779176373209655719766028949899890585316251982294012055759270520901045666028354214719169094610011469236681471603364760930501157328069123750070809095728385338405822087207838453987112780279158401132178178969879205594788740612045892686351050810682551498398677460281598693707155681275698976882480328676791624268610018054258567055005128893092132764625730373518620965235848343961765241228776006669771488227091027853916142660909717158345563520936776052603099644757852476690349342867590166258855532550244887817117890487215786425663303785041709246451355808407519217744873660137010074284975345894746775022300185550021039721756081736304826503275611078337085463439154434273108053692672727822060136612208596042969492374733805997968165794374189923912186251154879291564119714329053655537241977681474572775020882349838229849198328282653748586918809183739251694814191555291827561252239961647631481850026317559346352867080053952927856729318830318405940882774921132381542402095681522295463815168305863680856459355310392573048192268682857357137216515753365574756556266151698859780744117076999802787673285122268897807006920580290797805042762579221447257016156309477107171055077195395033690259508357190029945390645611047467380567573183910130929650848683460485857477350689759661430685845520769801891828640068043701112261385965059002218066476371094450006352719854795353825948925317498001961512992805466330800417223090823467680115666347817863538105249694802982380768307460645447213495612702337407078609257713714147743098419244069295641055924609037656298341126988500667568426174627209860743555460343673886069621332137244248922982146885866703466514378088756794703705434331145008272494447490592296150688172335478347293491898729583764381242858581195839418475092627649458495301219623545372578723449365763098276682194370974387540324533647434654281490576787737082894865557066806725217555215619601773185530942486874990943198498044409176097616669624066630025340687706787308561745027603940400381449210518965855419792593100939236968133660112365588102391427571821575879599590096662883395730207748285249423278789943805173681762297768790757646831255042062866436070856852137139219541342514299330397298537010495055112610404812790798803879926890569634228755672509116867813203159774223939025550959841236762000586381621203306509658593521340765576266655051523475108550052615177992573598184745948735472085212191561307268167290232040555305499646289048753551685329277381682446377875503663921255850031711089340403743534665111909483395191237072373719160996757601777010362221037132578215267750340335918806199768741697504259908813656736471760225869521912806691030383577425812460566468025177022880358861002921566536383358286734813755355152231191205708849756337301092263611376032991795758419845063437839988441909650912189253789714551597152724190683801749369044675550622991962502509053247318377844381754152203626750338658933734125354700471053712838370745743930546744136496710394005640058520812532029792446247423743718929175016364854388183280435240017856266059005860240850764921349792318554042517706588916269189723962549766656728028018968527969347903210532702361880170073653438362655731285175645435856279985083742970945803359599462605149074892907458552691715299001707810729549391847890647993195350196295805693270276826966029699501422020293299940357128728256554550162601980162519496315685194686127554669918287691109473082596883308383500527999685086104222752013304281747710942124658810909314148906379198304433556640964491007912087306114067442968375154143745924566165698723139394051567879849591342753867122005493766078443174526685497697275159958825579399992141153919157258958387435304252799305891202822224756833847801058631608885257793394767235809450797281911817391352706861228720630038912915927821067562361616677521934839023912473589032322960453451447833284988644444197316287130567909880837757793916454226339762312621243219148849721557913391851432766030698185436685130221328262209838464862881439127345592333604644735923666824563016700244114383222986332362604507580294975529778664938305681794924428485850352408483161720671304629407732185252641055476566282821649467299017807050986449418002645397678487270135105456000379961032951448595333991666151230532379344176899018812227880958948578908854326911790725675549956979894552389777334260767776679128903591397536107619120001979648063855964321410151745440417056164217393216064649190302656938096301985901511051414927612459130017137751945235907606038980357661698211312481483721920423106283704255912683172189718991034688351098823569504134632410458317647677733948617037729167871183783064188066463178034641182854475118858739332985765128901064180066358298933871453714375877074818001161325722934992398694273573856190949287870334526384895550457915637519231018554005672221657945357689569031623832783773715915040316218849180190794768425688397390129600638635864935142577675700349492506424585622581421935809779527116258293938241997572534451548627155878258713955351065014349808241466963388509930596552725455915323370020033392641968844357544946164284673483827040525893280445373178999021724607152164434195043243808512165562777267168384635973705276463589400248955848421051312921451986961231668883507854624789510737882855029968866020012775175735340533598092981822260325292648519321227009686616862556492965804442568809188965570420110966503875622871449883493849723846621067906948987845739620975556673786835958195952447000493860522714282590828444755649716576272806279587388602427598984257785041662124430742307721391771483595013693414380324121321919802228832521494058724899425898580469572526688719884331056149822874224252327456069076325845570227265573914645524291348060777936959674321787120489688623193982569504351022670873759339230528714446706817723214847898309046411342535393674942896052440570815955528036631165517655853343604480973781691722899747062311633750967526768799874065543428179774083862752725317320016803370302271222096986695419802138558805703023040633125575862409524486792714698349280094622053401657765874529174037330746588338705683209390004307133682719656902232563133137512056563058803153147264697962652384101032557603716892867728084542311080596600744152297276416454437126396828943772749129473274441557748070205607619468759933288207532714125477190703299363961637230764140242003005589491915262675251769667025894162724408466705048251204093072404778769953949079010368036128265889267190505299892293538883953243162762010282748820094169625338770498607524397366384177354502599233839181579592633632321822657171806727909331816442555681859950391353503531346655340879984348214266131989106062678519004129571113020373970373421342842178404337751992458400510008320549164665815221731832806001815548986296317615215337389821936158857428558479925783061372956392505855893092920227810921219962195613537059311164349395125367880938516949319065822377905545598752952058771492078996439659084833871483688022772534867201389117918767927841682679541704808134163669150230875512032632204414594389376925640812778281997648727703299947587229135302440365549058774353662545746548415301249678105046698842739816590215827701330604614330633479275571082244642830188682110245339988772924637450170318387804134599337822568212250855003448794222688401181459207769821711469692700560325163280677670654444186735651520665313360239602299529616046107177704392051333566822771258933763436245793458373845531325033668608435186796949452650652614499744832508049748389105167962233737657649222394542465765327840642017763815296300865441661125872360541211905671125524702342888638787459334524514903812670099762613017333086591976275266613758930495428773032342544121577543631258503587486254822280136236639625060703995753802414091486738303213256171154926179306900649916747159023818642910906215044973285415480966730398251674726121823409945678647680497694970157839193933512895077626849879182462483437548647379216677711666981979902599775884787329484256549241409148173023715749273048490508793808295346533466534728691780115237707303151801942767404699759236716299618352460975614566452700179671666398402692494421426069162628772761925287799590272145226000769420001978185709732943939944446994859202608944789198605092999758008397226305128091569281050444416475771610263428363095548484875693600150442785720344836322659485823682841764822855349820588863734094221088527119292289039272965276035898225461884892946852948283698808231954679742573310029204891882252386414007316437844759732578259627068057287780941510195484101904292313364409206514381416734208089899864139692960069398799431943573890427195985154314043198432229028237338898139404331351784196770083363069894199168996450102167485348823172075178555915481416855711511067173862025270870243163872404944301586131399139553448238072245233948045862763942243278605830248727656607727940366616233457065839112326128599151304269184736327168008374611207367532907212981270586257152863153880297251680231221208155892153398956497505976368831539679041747611775371540464707850239532205963708548092718190199269615613137142993245417125213374904905046989374112572942523933185125813511194489417299736624739127616913203847603411748252646593450332589082076540736517849750884128711200566744367251457078606457013053696760385772781323069898137861375538100328899931046039107262821367974011499234454126779624723132967443618283198098750501552068048862684987440793209227213818224279870867116378506557955974751742593942978842298713182769310158136490548130697067031000003505468540791909077444912183994329298113830964135547360576235899636213955190057682774453772427799614100790916946363662677336710703679182119628204093844553478841425375887817700378245630692687665622341664004318831965035881366757975718354464316317964717987687209282117920775052127058486712964631360276954152419376154860096549040612591241197400462333148024186005924825376591748978677254602866625557234464443384354789127715111550423938927111832459876369620883502407267192589161951973242631799323164215400304797390119315336959502668865097186706350433459027861117763075247024837300158994055330458743168203240751863874189448136700423879097611813038918014218954464677545360363043843267605879707261247988978820629442614277145947384510546874192164094924951674078475753750729416033307238546179800177290703156485164465948853290292704929159694295729335391639065477574741134848925513072564301640856709701214550013270265989598883204241907832621843039137135246881953699609494029472547534593806926510572594592018550506009482379399557906037488782106294175697451012987062786139638105839810736336615493973991772228800328745586138252605523643906804161911482211236312000169478011601130935175791218255009487256630076524651690825033988149415780613539324236253845716261466497362243385584680845308338034485562195007582747885290473352457757234741475628071227776768924576696448242282379625238681065825374859392386806828078531128186071452534853809222862183558531042411607815042449858608942894249401879520126351400297130379765799674014088985582697423159624320792205486253100924411704884307942448243342842043774266923245482244112711421639976888508042344827647347583307040967239386471671028352582052340032803471468934550968287724017861156820119229421487530091089255720695878927369778153022036218680388462208263808984706385774699215094331521581078160372876157758194317361342068273869618881065834065542376739529564977536563804711982012439775494368169197840233936091975324566303869722834158665042819142810145182048450850382572071036309644318816528746423804781937443724071343688859618992245918512468496243733817634855023777036746122600499166018527159193218356141748094719520712568897602393970957237767345415123317959578277401123935973297329436188630643607775978543101575671163438216096767146350010915828841189055328330002157199166549540934405873113581906368114496843925700006146581492844871235883155212685651421002092487144031342462376422552246690949340764843922497131196614524938007080628358853906914782267731988465124978172074650647221156500852804354245220681996741814555563183316751463390249895302281050411743813448676804152002976145302819218896464634080660012163809797203571252204500217219362570744077336424714597552158406735435192397812070840765380266471524944273464876469601866422738765228769952419884378004894948460648810603164887556177051586822268046195785984724276881177159613850637379378506955278248001906242984720107061672252248207086596409354895351044429491573724019515229282541723208628567669001041075824130886745962572169608380694325496936376807728282501099811550455030445538787075013042336901485347726800279203037026005778950104425339703245970653469793378447496539516514225848452999435912888448205591030864813334559381098703449565650816782017122494239026747157555436838230826347060871796582853376811366405848688774134280060093963483591687382939531924179146220344647579823837422875099665758620159366652777911184692076111076003083737660315770250728480199762001667057799921013883823952774788728432251790991615775324682012395264420256713837727417382895411569608529452941777280938257118400951104196847017893747648905299644378524236661928571702976806439135345004118463319303043787656031891548792285929329917570345445830180028424112533066214597455324053373948124785743575251694649276106144793117958548213947134333157708503812672331194732616054255241449085947768970865531918348890580518400160624792033047025557928356334362630032459677161776072970488190199532599570318536669380583098696204653416562231472582592939665186975652024765886517581073488681647845349269022559282323849282090483599472116761552047337166022503084682722514691690853780771836235556783099858442908250991265200384644578881633407348487235530893963351110438496437067693484301389972545495621131935960212320011114554153650035817614605715802602117955019252420429027583996394403364019462207559104244289395470459127908749304871998160872407732395392063453346406439182214860558654564913703080534154809569604282134605359620791825934323046684185721081904947805403496929983006939045313375540432035647363633170545903314905487764198873498135373166001483298986378490995285558500005755872443703832127066719116937355553486249137184538483129967890523739307894020600429237886000321649032191937873316085055093329320481521623963928622918929594499840953700385780518550534625432479893514215835914907825901537060060544691915296424155008676720106205473132186835080461082522901888150672350966606732860165504842945755372635648219341797245068048953524783727044062031158828169975264834794444600919697193852321666312294503299487259903607178898758118266570979670706995785508387094066767606075133550899607562714709176487022913599468196917390597571592114336327032439017640466043688143204132692833894575569703981795004982760756445722945991915317514739052750113180904990861289101511434904476249471612917520851162263370287309106973860484863302324954392624333691011028145247769272354608276468135572329322378198936045948573815386030646374943433519513754953280578567737210412131477472291587328578541663556762065584859944260941117960380326845643910205643462120860447001135739577866464619953653961312383211554070104836655982618384450455902198271751112980563903286889736423518229535569059743129216996260490223782900864469617589971204004166466817105128795918513650896577993900679432759038250292078127368841391391828760741430765831009860286312353601861235160727289859345262871907641551109554515063680181409464496503063353661751733394001384739671249398789217487417012010901862219186085576371559398659679676401822249253994055033550762583289767505254295326504189876365616252831243753553856360478932903034204846844934919910242028573081351750605263681501256640032106230802705235285513461094586052443608998199542535411759409735949503384924614748690566219321092429159732175788775384860255938735720651787693217578306514683108019917818078753279676892573789287427500466887910840780215085715931436850008011216679702934793503975548445679540822643199535783476833530899353474879832582909459531351561911938692546601494232897898991895557219491018304549800408323809971120242051364989672626611887666949045767224721057729607550680056795910665257669235007597357696468117495520705360144638766128097633354330607649481512835356700183810303761086258462637717403649920566930800672638072958788312957161125631674861968654335300843021758077194220657040825079919752691842213813571564961243664305669863404675107178680416873574023415256657286762247421164473611540305631887732257250523029345578733350082080883955186883669549409074782831824839295043190865794175465183328699981218294919494374410119796644818608912025406177340825914640421337057779212587625122899257527303589285164348329723019757572508994580884344984551076555709133514528473850315732988970888645276895226297081749347132144257400590619016275787348700473286262885240397865979441484020187452334363652973226684421791351528457477322720794320525597280876041107043304720120997326262826840781107534362169238526760121939125669427375674465617805679996284142846882004620205538544418677295396875107098739115341237900036575115581011818626480963448660153290528656284492213143474624341175230767509501960967793218956079058261570183677725198803782863838148514845478211158407973156759123525956215031932970217638494390415801971630317361003585088310284694322944031863501548083121005479171369360965288656273789726251244842872337737289128347408074123317237481380957068891125451354301036126899094931975025916188922259813541279427965963596794344919638602937726526072312033378005561058087252001671623042536441535097798662652847847809375069150722983862115678926150770448372527402139206711626138423563772803804420745867692064219397526566491320505378027913486293095459725934830687102211627089009071104209847226958050610868835379011523714968879881354474074523453975868868048410998464782556422807773947741799849425616812132306516890974248444138224037495413590001509918231681430788360487310722165766244261769602317655906480618873923339802681527675721707931504479583444621781085289495790199689167077125117716547995165861557371670200701953211238428572888652047281103497526541140160133800880592561671786399739641299625624033020788542164618739640725833391286794964179498721466508854075823346553896859112841845332955451861389734191794318551418203019546557782573234516501107528649014231817115914145991780532718195816707105697889667697990122916071823279726408800409844353393992520702153380801807915520176806005547008417212054982513218685220009040346992644491090808197227680052755740112752260579776934104334641634982438124229220419790948745719033142229572652998626425237227274865171955876100746281437246396943907021688198406497142419860597751767424483515170672708783941887773383165732696554374273753766937494205621241462717001216214216714264589005219429486892302001895529129029224518932887136888231258539390677231355874213839378541045348876700629026775830946899867448521804042275625868940015218720983413401671718849340013164192857353772117023731406665692720363996231230072524345904899701362521594897904728326571349682803135387632683182462247546788196500224266750483431735561032457983441850766403262146685777693703747227524635061647267489727347819633387641800216198718948852080696504812147522368529661820225060939712453799873386929252781458909574105939295138020614292041210426288905580472636090826115819190055576684602069174266791831087514883836603088657100895658282406313186601005877061505437430852594848952097444802347344558520906043642315009781622484910180100035585200872345459668687195397630528061158537521356425056417408345575513596911461335940242152027860137564039321754972879162685758365855537910860674929287202705184244499713438679915348602493292502639749949321593201292333389270285442331403046808426372612975664463429113235030888520511573882035836572216938231316683892480897255930897864948673420846450619460626527538887267055055568930763492379921186636683237177530161515634942345065876086749598633245689129255641647511267213063872231203483075297000950220309530575914754382532999955648073493553410122693863685943632084801429453317191773437716314984900958472392466670082982272494214806462802424093767769360947856760054395107789348022058716020277041518092629824603842772289586489178649713027670247575179531250266827992765506436238629112088692128950033696469215281492061638637250050058688778187700541393294304561211810216083828036090714983968393740039965129678906358423507240251429321918098196377927409389340371927107181788925583353370234258878629818692402047104009966545655848413840332376496195823103407882543642082095275275488990374524335603554226555265984365317049178017441693248823201722526691430517958134680276468463926356286223467349049568526939660917073441317835096484753707138842090222422850335568823476245005309270292413448781100194479533204896566611164754656518250623569472803985793070142626919993600457063711994158094707412486511624109622781355263372514525985447272638216002858010679784110442547351504821662803346299444760171277968787172678157979024835940421289677269108791143728918222683379925975270480957408607235282846835357122929303150341117317482071454543524550545350072624400321847973833739250913503692422905140376141641353857846750119876987171364767650181081914773749044001143041788285572006926027953842992047401932362093511736931846728984162263369671198713053153704821975046815759558169198371070090733329413502915058623592829208157473103370421199235379910470206745116649500370476198813196324601406238939752643487922639570773176532633898220973015009525646544532801423675265266277276168095408178330370155323204435356286773889921606336260313125764628064555565506616927254185574330639949672372669759805457821674462423396628108651250684421199515812802302146582642509117207643649088456077435813338849364766345049209918158797898729778239893226418488287811062885043931126198568236726682434510552008981383613822961179858853613262534806061549228089759032982889086629827302954148917104913405116000769021883965383205516415210276042759244923950795578786125632905170635126872951519756831305734624015265120360040786300086142138521457818070445844703785636760828235335757712096648071241473580533154973055360385441246757774254758708262307343691677475126088227668406683305183903997473517190563752233380044677842245115319702970648080590931663402374931860458208585462160926827102588391606319765523026492737667745836601746347585369996483308654833424743289987557676204588533848367360690125826354769013363483821001205977909056180126410511771584759267105754972303549587884564202439866612547341781189090839890255927481602917331032386384330005962588566316428841511600686566490374716562271672890219119238908051737157771331071027301484784708698622754093257486394772542105187145454691617889616408646660817297034417883930933832191652807548197494011808509213359295585233882706687726917796473689985058887343282729187206831421184811567084756577241971496463905079732940947369693399314843308420421169472995911838885273777477717195124505247701977488050982000868153798353200322901480966811526364542480646274925477623295475263985628284486745539149649506698579170047925838826976348552551367359050518914830515684679469825558046251312009062231929052639434121608061301748937009815969682678504690450555411521392710088529058309028037629911599380965161530678235679480060576766051754991841004090374896785677103599024170141951067391200072814506418809396607203097773692698683532875810129230863511945805877764281364362148591764851446062248843632868324845091214783912290762634756306205962694638890881397307892211825860864578186289631147553052216707813748344133095785462915669281636569915713927505943642137396193386555674475400552721929035252417283125652604431148996821320096453791974615695308740746507522597088130767168407747182005723258384247097246363796934117818514479232623635171711987404816134326541505583163026245105254333401315055682628069018779426581330303718990135204589326838648316021318207600356162257259742542448552464271752576009534228761378848592563946903482988908488822753517576969653582884075751873658885918163685954356425518246979254990352980783620723571460328234963623853325183686960052166649135262659667873118177155002952814723454484303383959671169386072781656967253933086235155747998615742689364981037672996048509557650370411274912316234163981858456011402788099031852944867292832906656786152149586176610609951074199426479377502303944499697385883629637063468573542427074410597470552414031936425963319473572714018280592791634696667882971063960953704807647089035307682175550387748769504680152799191117852251834418051079217460792623602816855072737474159922382914613817203170703928862609718173793035220235479960353880600634917839137024029969359098063807628867123151325450818219782253542037580318335698226902856244079800245690531177164811493628077531852738402691974765608147231385420213432150395417064076004330519747495682867486581161940385012265432553057134921516092906918380440305940652771719730606872940318916827883859990452269715147732848143201398755740106703150236874825468945647900794572645808554054613738831670333929411170757821434615877110817552842216223766099787828147858038945818069237361803425590579077104605876163598504567355158476212500142346791583548969904348895218562010950040440753012299389318830268427004904338545950278946618680426352600654676201894887537585052952610838508304965085253815635475632038795798877618734768104007016733139605687753965840949894145048689382863509945820977863210172841745711492238263766989695714071788432527519231894678241370927445962387041337967978939147947794758075422741435566787352950889352341757309342923782811845775911366199400889276164883892585913975671639552885845739072456700451843181327521503124643691903985102059570810493682205718955321617075520968770025947420543693607738239151946266960798609699654027465841664050270959038607499452502732640075407054874802351434702365055203372191096145384048180339034577212737818583027887010903389925251941101584494357325892107992447222082446192088936403157595168226496315912374220899430561755439896023403391884236017726029417380803874480489410026001929348848834342436699497413763490694067697043353407218371881490458191440079287788889954385711878519537974829737240986295992705385531157273613941001705657023327287285863500076531237359059087161228686585488110408021966201829866432987024585030273556961237905755635904989278956092837524958087678939647895973103445269175898555627019658345859556190288345561196131804989645335216098445267509604928990040523222678319079223528613910273201807673076976953846011610000584022185239823177144927748512571921833364317346484341062260757202866114883335420130848886125116934328338886975537446113395754259611782508480100967958100539198722227157494357147288451289020246840835411107392624249686341974867319450731394498914302512169127873824099335642408743118291507382766408319483502199984755166079874643922071205512618400888652701542317610951104632262192533723004511266358036432478068297925359926136286931386459343892665190565713621385120837546182481358808937681878875273932498393130466353947217589142458807945550927414096586558278304387830961204568248124021916857728735227589884278224834550441445204714730141452277238739232938365657982997343458661745929871011612105373268145665841841136038277062175500746569090387356712662701652402523804095070920761301320989101096246407260857771689057003136184740409128181836198050299268821391290241619729569074959506294018293995852112467211001342109212264273293330016701131335715917432410508110241061225675447703115024214325944024119755354617696029477482274540519837594203835498787668810114049599017249347381807633656193518499413084291229051178579816390454399203963435128507140999304874308013430152462873157545860516383452674966477708365310553497919391331546563476523984752612264580586723584547677431510452301861818196150963440214843697493881079526221376495385879623538872620176608075982875905516342869581446002513864720311148897913663968518228805167152958494585651926337320084932197452087068106266207447227106333343235755791310260901054907048395311253854037725860888104131455576181023907433214122230180952081558682810954577784048681918724751107176516456203413030290965025606454592932870384699370382923970233291759657170995015713517652670532502983541262707671825330615020968840806221687578050982231392667210890629471728870439282508867464042486158574366148775052966907432077822311037808840710452817519219309528845977386778102309228999443590599709508003639515180824875599258594292056533071462232244050885638903024989011419510850532267957394234403956226129029950983456732619384979504556070977435199993230321916228643575820049412842037213019125384896883941139884859282087802301322426809808178267651368603287816535199259331646454652602840618448994753204220259108015823330375032845410211541561369578057524109906213715317218492760240716124553242293899127613819925849411981222325689826006420521188240265008731774084366332127637785167204669410147379380339712805728057605282240346582009964817567077552286486818914184507844704696561423093925762248206940191456283090594490734699813281148375619015724823958989588745453157368604775171270379177768622617031077591751395021640342336066841580810293905703430799703049719029830830423154472943093649173937857536009013110977389883587419119573645452540504221790707864429312260440967069753002459381524108402008095835790733489284391360542827729480142558948369265286638770086153645547372196944073312367549062197402607899018014608831110429091175212834998336745338007582714284364759271812589476182914828179463028650620139372527783581616626862778553284888782668978017956334084275274878843284107046646758273931049097690522165772385840027097906069448226630450987383660737549814535195701233665637063836214134084283319311326490786406277365288946692220988157137204702426682886849114836601485962880349136054423901757928723459593409246898510328607036399604119943584678814059172828763690353275605261056691485984074766443030575786489606400587360295709109910403945197903690038035814375245098580149153105014768676644026070169276732956330785905289228430781714812304332279649204091385866796027951910632710351356740449477708662655413687225424886743619835429342546523923370473693552520960308398578065631561506075438983878536685796491837028471081249710887143668953285087033802304320749701369054271601884408113707705341162078535134207498397838573139763033852894783203466891948193280114667284648043153731315989235700936542699944115115876584414525906080908732172786890952444184658848961332325756912024849970326873619860945318402153621544056301296425453334063702708408253406116983497212626866982882756005983980229161680289140676812692917024704085967494705837848871682452856019961844873722228651605584670454636011503864246595189402553525234140195767102018392133092987837751698400036267018897032571423101911357631219426952048087000427260522725457494307665570664627669755935283209048167334644653052849118406896548604705287856263908179835523632325823520028823909402506926290092400853516431459700862534299993680929560042729561126253311748359342972102694933227951755485724373762815307889094120082491965738823789575478987115191390097166017879722097435245377567683872370721313527995564935416308885075889722181078276827111232503646571882893670869132057010305125956660685446478400012443257615114806984394111396820781605075997656869552010991808398197152985799111550815736483565418397313112747828926844013310972011446853725366156520327657872232536507878320507413201330874014982428204705643532856535308134611496206248563870157797012050079083683688564686360817002821946437585714695792469199240796059725695824386741853825655072307795395277962861623998011816095848784171869710757020336265840727589435643184635220827408985532034706446385556306158967424701498143208752245168467066007972942275364200549217352048983470325262466228723050296146950410199050805024163434243115755970062242976736188756699950899722960663826769570525233113641958827635959587776936148875627724790333023370357077975234125550872342206957319919257056804385810900624044460014287672082632807490683246703778389467178976937624329110477590936313497912479605094536273464493557223562856894852743681797929888526176829569643537803477355011933726913507255520506935021281200560363591171791374987330659888003108303270395133984423284349256189846545413355561953502159993386428461465061200799837240219889446549532243044048612662792839444776110508621037475963830106987218761716092586451162467198272006199621719452036589632998621691145355158955484683827024552395657405189129599987948715816732733412541000318975711935750120653669096979174693318196483985795590580998455524701474742892414693308370111190592726360201971808548576935694292275682476201525575631925745059769271582040438928535829578156977247646644395622981606668112699440033389305313792391443719952609559149874816226470991682031016257764000088207767579190739578886440387540041997455092559596597557556449695534425975154548935812126409044950831506009661206711990485135705894442604637280249868854432978109714748073176487135455103067120408302848056742760137908122364724053184331712935092294867791018448312159042003609608551717665125584658263348070418419670840117213563005360202942312683552489084240885956832528832231617717520333267345829781624374593747695725752693617366025923547667610737737055280174410563657370488804344861780847581000745498907864562765801578408814319474015724060003160658159432432521407062935434159763981963726294351207620558535062127722661157504123344284569387844617029798019060738867061163203943371998015529628502324024139366416383176301744192289079588359451034888558915502037902820117398239685770726449833233864792908350355110025019081586808375936230127532519177913360213118520229834823929631111907550246789596655567489781441754689259724642416602121128995011688706884784860399017138407726411078858870653047050062471005193998780428085658620661854722604665991233607855212737754552402603704895365935456063028811730123109652267725721413520442842975802616201898894151284669097515230308194234825405957460788136689399815136021143541216906044937403547270212544729795249331924189955813474088995107740814393783472241600803617515392287795962200418632345992131730654135740038952322545521406584137501117261998356910628883086092778729825546027746082167606627662558334082192169053662756290435960969492244681176823754303290356401878413737153571491807775105224192951781521768488847430123383380786643291117048676308330263725978819301138735998436534234532861128147233140283298990892618524884107426606869778750251747383631859149258570420038192690410895891462953667810296090581327038818444272435590534209919556635963241231190858725147192251190563916886658558301343019873540319643009088263302772172750910608397305532766432921052939445186633216732820510779754261142861449180204155255358545402868162783718621571292533613432288691450157215862290181530666170535549739919554216872455099975925001444593154154533331424952869931318668033781909944874246594549616884426901550257147661719541622556999639797151523226844045969997444853555334482314474375547465642208274533141956557990712346558129421856446308386050336867164471172996584760058409920214544753380838439611858173204978905105404233596493975308122935727304252040271635125292746966661722862003095480948015078710972524015367432043747519218521829462601837713834240858407070393102221388586537912272690649187608723055613590869994046761360651061809931684062126229725587312261076124776928874191884908574162489326721241724328898640905871788033969274579456244318138874433833256109983820345212561527520525345165039622784836248284626768488059574273574545682878702407406521893931620244644149944853986640487074499433882416355537067361653617752486416473549828231127753952835787891115258076567422389724808478521393776533847837510611786374610605353750439686405094270264789093028396930044766292615829619973285750495181301845691565765042767314561158197325865299852750561741718242022984272752197855788100628596018785827654793540413657751956126625945749529399608130042811309796480236162453229886500027196435703325680159598375575378150721541675555150523086139817702914153730680481032126567269390243688485307300695874069570037721379275970338218478418949408053094666712850419820026313426758558681454756209472262382463654252285203827321940868900401062446961368914875413749399904486603450626669436699144256628275245469859843851363450100420155822339199132653180712351226304101661357156555979888937366480832535981521929673319491102195584825547001723289714211238285957528826632164539378842213260679082050927782308248946840294615383522627637605954785931323433945263164449549262207308543944097674572130892677940773939383366091890038988937105771025482320080196954004173028167900200145202284049110324062096265797259066913922013860049711891704636395284696629660910204040760401345853262012147468938461001807762453431094816404979588147428449387847377893038980773696326286629357772689868922187517367135251994162271620392315798374987725835999101133655098004329733610713813518214364354718022403905543493357448581654210839070190532138807624117189329636820518455116131489080787936152224148277205289401461075444760900746873148274996827393458795028422352585186284143849687615189513873014084188100016817002835468657521864563733541219978002764170487760464005571296258269828390291631864280048069999998967507497066359433262842228749378426681304172382786585573924190965192990397512144758899586281808567956271978841226203191602598339423255371357602842541394015199149373299451892592763748053911792363661431252065349885650344595062387801538444182111268541847261445866493387624794875879321330575423212769703561976930181620599682655192490297530801610717088283284644995883708053211851745957627155445770728181118310849193127353964762797232033184841523930435664924648969731900861040286130412367872242128200445356398350191329433127399865196090991259216372778959145610332979810755895570797518652556346775378717319486135817231878245154615242818698591242965794802177781775796645085911494327547738568988341456132352315321516018180097536127296598669259371639277024092199370630193338096446645025855307699645413968927557107763726718293166693916986222841001582279657723715874939862725557391349157621039778416092231143699730619863359151551894833964257140889729627429448661149417038158415814450473561791969746826650637519167070214481666819011686344628529451032997444832610011075945138516872152312891187576197349562492568311137248353562631154790034244314905954561147257583655641118417159517357892122190969970720565650700717219671790811708937955774080056143069517108272424614090962881892242046200524608264585999466550536375160305308044540089255722194885187589180488898204814175801130819151931774257437144944134829504294363416215379626553152434854652365076287484996146321397230499417289797825301794441861446413661200284715523221911101854802424501799675025623605363090853437274971027775914320963709491307270532388984498508174343996328648130628133263141689885091643764707982559090403546256622128632469146602354732425884285408701357102135146991994228248873454447914043230071501911275411716882740712116710559362283725225539402001248278518154851117023675162434029873993386434137682263449325854625996630798439588384401889793721625823789643363298945924833658908025654818038917229997819175830424078979086283191987595903827256006824188707582099492416224370532922181703115295110986670476751665783218035703688015972890398677192407623046052249905673827987688472439317689600573523887581476858503792887887430513696508822069988008580635623329362021296844459279430862535065257667346282054461783684773754985200881241131995932416206945022367120671656640256335060822438302602500791650827980567368697518475561769778211950895583192052631298793386688523726349938295879303066193499054158965371556952640140047804757689281000581067380314911096501766837086541857300437133975472036106964036267678410223511562873065529560710029563226248448831227668262882921182644024228108038568189019043344536554459103826517543839985229178680339453118677839270054890446390170934971153906714955795813901024102203421069201572892794059961104708496221948913986834529073095626583377263966842560309717440970155838945141643237358566612259000440041045477203589311912361125687290313092194779207822835039583951059845007772476468947181984193924390530176127754287667325051025294249203242163552316541689832351882693795361353245196149198891105647176832316542155458663356320434786077568539084166410005734520041346044638991210937932671488897638827242848112385552102911865996138819871060687015829903955033920425670560887910309167275570261417740139215308142754256979463565259800720535761585729767462752679906797059084811124669305215526029502026154964969002390928843550862954952090441611024580263160662555687761825225636791831700568840892536481471528760188727795770258779651931609910307479641673860649016513744675667554560784429157008022901940055542375094536256470356791432436704435211993015994881757086294550262878529334141834956642775893948398195731516328772171470831395452747749691905668135419402655988855607052632006992805217454158334572212704227941895753790263095353529317865834792946804592950003532899349400339034668567922674464905431634602074445956614097536248828803514035813451158399590394445397750523413435834982830104205070685819954031550612935533854315077715180094610287104021534095803220770471152225350660378720660106021583621115848275295298565807032635761772238426122750183037363769228180811595287176549050091412770472654692373425356886806142598143224264128348592805316806456426144951996664972065246392760854678282677213159534117880957713214642539130143562123435099610235407629166610610510257222868218559710851258262050663438374908519271640418010604471817313682450960343219014954789471822195331333983792175992384352752010275244610029366722639431867330647805296251300038324666769926407434960486550266067290429393153238341785512175906921974880003966870848078281319625628003328100107155790291181136099342875587584436485941831427348453224360478476010400033291176724953457485723673167603641251689893656591608871565359226731175990426065792716440187666834208037635899811656943698378414193341980010312711475727820526573557022432088051190698628556611811638313092954931037609933894248460546289934509114885468139497178457331260489592625373955707765047513288467770343855991188789306804470380495642532747562941605293211914962728549331640638124037823984579548386217933714650293822719984866842005986460629873942184249702544530930682850629386966312739724274544844308251353045253117589611712653303945546510567082854956307541596901445810347636243862184709644724259089332650132125716064493698716290152607074437089513670822043070318056303183242004500620429779356259995038250680740922901849707785868074410444352719917135963713631612861759780289146374361611456356380758235937754585887604153348790381760136922240801429768379535451276097616597097981788151435987542521770119019407177598584605036220864557306622302323858930995058448256753659489875835339183090000021985054422270696411771078057999180685690659956673242190848328213229696910836310855769855698365992344426067209202697491339536027257832175833562960276190890520120441042386631459115879383309621929272935346719416794956589334126986743731711646684217044983173565447208563741770757973907829236053870779553507835304595539104701869277562615757665694288177985624505932572221779356274850147404093222215878573222992935131342170938674849742431316151023336776802313358648499738236026330525243201100094626348331553699920797177362667396381023894163854163382898824335086108488796994189403796512975569509920310436372844207944911515828921802670333749951297883808874907319939304905840299602386105369983697958787144231640872721560786396873751685788225404348580575086778361373477030277051425546929320749822074172741001170555520824550211206112792955628933588197278840411461973722287820049877100166715145587470595709968504826451440385555065510105148399774067041876085256168438794201964363429193229078166151256419823025015587358268597389879890114154810503986868364047418117179171215689650628457251558531011494276524028598550333385827078335654239338387421655985522090702163984209376359860606052124765632694114845068545826363965049468315425275907284122715729466511155886534500005965270547239761712265846286812081985493711264863876803031710493632082961438949275260962243798969531147231033594631155933017190061021886988203860574961056604095868101772628033233182127659264729298128962241071348697661355131874490890310775393154870650764788351984636182746101179373692338491095368668552306454704510751261981598099769756033686525613599000544850338522487374435804162526543407962116160082002908083475665018770233803449143221118304688924654577336572536472388920000818423743931279539553772545207211052398278467804370819413934036676023742319577922797522942388991665936682249891152097244421509810721505706916720211399560958035624706038089349654242248731904765784388851163661313840477286379726384639368417984627951701985009163308782149283126839901773796861480005058962253234087584910855597915211939160013507362754828955493020675448429334015044010569823611234020628091266137868126059096556805321954448309193240716126899346328556055451553153310302957255276297438647163867844793927979137314326076602227035754550139555722483472774704624127963215027196720649906947856536012895455957368320354512391997244995890516201622858396201170571025279207857406963465067064339544040204252876293050257205649430774074760089335738263886498802552557939165017355303682149958160569100557635331436628112132174182194600653437168328965811302298795719419005940905595062842457961807338465964331520935310091647425199942391552471362751771569874836488902418344343267114206889594497766783655330766095978217801582994431161672642447417776453118213592384433215512995173591490829952798236987119525508360409803337883191103400016356371479487167732593573454282281767169594310053793882694303558561748942561684215152726246265353622603564871438088835726955108257148979226382719151262080959119450540381422636295166504477858664427052068361153151213966014896104806276909744559424089829469085420160773382107126135872897452903793685394997460197602507929872188216712296714752735650163527108238480327600078706583735715189922530861508706512391438828510120364002471689477129855399409814031768243485111613646248421626271926572745051029005333270681324534521090461228023730011042820568307931579574857141404611996204017687599092801733562597121544281069472414622939054275194256728419924078847316271198414334684559525950498774861798914658246553362513713168843697468636905341640351716697238659491013458138953323125566694969364407558442507349638101317295953511401133111591939917899955299124285405042840528033268008279019744933612854499960122041425810348761671472173914538442454424551477348933113734129415837279321689878753093409640485228445443783372401137116134027595310722212368779998722194583799796658374331111849813527679788416121723680374163258023715667056495902758427943221497845360007684411328326508062930178646934706957999125019172334636978089027985282553362178714739573244595895460795993458896394922531516672655214796098839721166798036292839482294863445098580839142989418537686491861883664249172198373364426590383025329526603799039588753120397665836296918590896505151429662518829944091615249532687425141070137429189504721710566797001155314593525364593179990846063952915884973720907865321159235202706028573925344635469074464679940635870891296774617075745316748824558690527586430341569702539696210186099041149463283112049400159693607800333683093635960626607898914674784912844341959874390194744560100049797561582847049540328969017775773962021322515278377691465263113485226155645588790225772127395705365512234443890119474765600593638846968297388510332393420184940359022123602698898912136386464572995385907183333842053754229792673011335449233717945024973766090822968550325528955478851242851000682861182060933169398409763976296085717087944872883320612399266269109155478707350664174234653840042452346523282171385233719739598476895054219363873121697032965733169742915319446983382820718007326379660801745982316336591435617796274186733114312987050978276008856190317039804016049646327608018244780858331841436358337485344408193848845582685735420920538946141993140729189605020985113640050388809289078694008207719806128474967173321302587704072670040303246051413666216557349196623119318053943241893741931806691090418071440228629018335679944845951914950404700010899636586122155716582663840468045618768497546393764823399921926927199394503842941334946730234364356844909767412948599819989352704136093749638721585203936222288338410133003670967570641001598386182595840850523042463918577470345296466556286195399445720559277492862588323249647653985242384783376634459728222861823859494559007490222104257874235928221251635422482198970244595626459824136821585712188432653927808276722155838391114442853438008776243757780152856858187785809701897561154208432082350409364103234773173082822225069277339901869057186533898627481619579589580423881370220102281977408181429120667742315388499039910334097929944073828980731329193988321475461820647291912457565530114223203131584662852969514635036422245927452192447766648501972414518202107246319903608405049364522274772282551628111576568233736557268157730372096450988100297075201644738935897027672923384266182707319893717319622102680664323129725712342292748054907226024225263239632017857687028027182271901338302099918502161208607596934377502248867162951401875810359048418420372543225498505086411099241453409167080718580557624086558824517202038248256835275339917472572118347141408368656362245700005682059373785257436005288501467305447306153712841319081244206935191477386164199941138168288820365418126785818213327222212652260541549824179289909145366836295909401889825202638907134749342172388160782162064911919856753799605559841212518699000503607500892086266706134896072849181514934373962004719225812952280068952501061628661830447322663165548444477533359233878090268254641023757557017198266821103495001872464853645898954877257287673104592082037039942853648922579110978009850030166186654997440929525801273571737055353529340150732084357897003708436854948639894072938234580153131658022136596207665134907757971312897713358019727232558057354309049093918428518253827472294549185431766590199438923005989899974360877747546964081886399862704260257549987219142072211730602020261661758211025455364199551089232452211347851202352794973448762775198051409581055468831314429843717105580709653492261459213309244401657214791964673451199956081800280908527591677670256210923244351283441537209640329707636371514943071745193297193560023800278023705242665946580711410413531877712268937413125164959345165967121497512568649153106528297978894473831840158596999468638806872913175177354849171364746376709157080230502120532676599897365626544978024450914465787474313080270414501866103155339353529042860284910747967811853398857634416135237000999933175993916111656163382224895224589054650417013134862679956408144423233477134170191276238308925316693533846107207461098913261790620270476637882993338938606117502909451196744162811289408657197119621270867523355755918659343499297757411931739454419328262963097292122773894506615501493219875390279935856569850086669603886644390860990061920666696821252248763195466266992660675081773346768046398385607660762643823649664926114069353969400455447479219576102820702757542675717930139566371620013553338670133104408074241193541892279509961016634422371174692535084695678909926668427016245624913862808813414792835733196054215163299097465141599092355001869799850184209520807384838583746131834076803308514860036216850100816190504519109210164318388091746034826963904378643897881155205224522648867855455502829144628833967191979375478114447272601684686026820866279533507369390063773333150407147378927252100977190659612552171481496180968676379925022967227764575482135190594866670619059214049798370262450892366473982857707610165431941978244470869714671250690503294808260079133754948790161776106060578856139610589260712961455776602914409585143155839651072405200604074499334596243204118410724846737113890408153717165365715677897599154327288792230439860383068727634998952086842880304409697550497497537668677245938506278960363668418442566476186704675312079564145087305897641015825888625205125311280392703790195362468852093525232889456148669788886521087756184633860101094221203990208197300411966742048143267550545467139589565318941076593490372893126897854887449598191737974913244998639753735253703995131832084290853490142739796607616616527483609862099291019078666377278528718830284720513875127068991247034578040025375507300374567987344221986681993345564304988407434535667061627078414404920947557293631679553282913954639275559763739123047505245858875856184344003391339870284443804179102141787859348530835860593244232653848123146036216779142163661556786819275278935639661613237639883109274967318433627237152155583260799194395071081228702827189061101326337807773592217637847425843880153173068524137287338330001708132770503278051604381941453482130036197205866427631129359768559151533011616001838682931772335867153631669291246882933774410459745867569025462314809780356065923424333529303485555763823798535175582377412687943573256177374676147461035327985461196387018030546487105469415250014368573867959273456307064361386179168708125128955553010715936855234071456374984570201950917710791302622888334978387284937413298564266790577337650103311428426517144793181426328825907222910067630862229208183666688035057170500516556966742418982055428354575608415921145133912728530251533225562396375348877049787528870261319491573802404255952031536594237990343598828140786929958030980507704710901119007961777517783911510882458437639496447101188139008654578795504512215990168689253481708614167428649580710235358105392219931821198425119125951292740557607994688577820573346245288642909308777140185964161607794016882131092279132231660773918594748891296542659610760802784991331659481204093970003230433537023466018688331526014408578495134553100550012087953373142486490198714940256737396480498902354513006880200915674514555915854377159099006554703010986164236697976862066032261696157509117253433075279873889427653402025817191991049134394017249684425306349028646314529839693489019064434996274697145921679396789348084365451774043852283098198517207464745262526539858073745542881453096997427305748364884751470854443602054679798602240263924827635793882016659097868320306191154881316327663016033793241830731989422940051904278091163723250058950627107180347716785640011185476397037784048337944681444675047768767448076898082450051135477412061934290495062797520122522252933911826703586596992066869257032073810635908813027500618472318479839377325752588571544203604736461656949465082065509489298084604720446623010416696200388943043658673256681767995398276216750567189526327143553691880877890534084035748844868391461940408642074423676624776978312330813068722935758083103740585514880421968009436097817637762478374512968697017030307061799512862054739986290628683999271457182653697224498462046350921332472518026170180979337126462942268921142036979708185402947914693809825518352010417012361955636758906907382130128010849380047694534017509207386312782080567977215990117140335622910800011040729944633721328798421997838068081669971582660401596526007319356179462284263215315950916709996940507219178627735020756614954619091155871142011822102680746508755070037132913245818451284694136421866940029690490766622348866503136900881853153153870668095104692895341492841902568184883570326621752597862761624781242456202157998270731477128262831128412490069895642175504237725276213043270871441893637298720078135813952472382048749774563860556221538721203889432750425439748384590497798459352140079300007887345150293335613615436111484485226214125493672238283668988012003965921058396273607499391449541188585768430863773422114322558359752094721451989808822584640368213635010545400548479842718540867738747537725745811036609666166680202780661564359693204279545356792393298937243043478902210818428142184642956370225142715500588417711170324337354428291519743757251185696920091567205098768384637093772890681355780753023564415370463801950574267477512039639078451050853221494330160399153088865212922238991532015183175814614306451767137450543877940200273782521540527030404777934176444353194162484384800488680872247118015319298491836318550605157051035610895277692059921437244629592077558610061927107424529297539908535300591139571108266673247337423931894060152753757888119721496414017495740118904226870938452585086095289715939993868150100659267320184762977834688696206947077017839289804883054145225483940535106094802232902679611012402868240816022051644025369600386288935121019922165377330966410295929605223302418734795534160030252601252622465908273004884107884743634936613721020518856447894569758682001803567405890220341433331402932849233447045323290768452382497828226104772577023511722741227968709685279771900206469496732474494501246084207448280478414958515608535693458206575139437199284665544553972214725434358824527846560141913476431020723155448442229225081784067748498817457334745522008895002859932443450220646215194347454088346786036420844138825038643762292695379141604585804331314885357655664334495352533579637063513401080541293701482020836113229021752420866168172034721315458850644138549640762272943254951142285259145452290200014355974389390496028414459455795167587770943499044465079742608836694652565663499179753602206326663340829476196310708390214492938184427321150939732019045879638474192792738997650157433502905126867257797580218574018662841702926266390859533166457755670663985730667721467227865127408843184570925882377361397749161273481334524825374447565375733458779743273322773259916853023274266665534825955440247985709506475083318183468983649270774386658327475123342835451400083235858409793015127733462750012180134229528365755924353823261955187917812374709476726984139758675423522760199537450122782638963226162971831107201569491195161071971294623559410296052347531484512425677653929057921496482804539866954402617064567586859307445863965386287513132192353355335693786797255056583500436190682671758338971559121763266209528357931562729465068717822426917965605248361324265546328774248057954977086819781146404452204001405290239537082342859450652404102315264999468010030973624150428360430381727573910135891660466018703524690503959940781951764827208130803537288696752937538515680371495490203138668422282241333122484129287710391304643741839661609772706580477344935189403187623485142231117225143993329649081448731688487983059168487740006931631617913268063966409005943064266840329743994824986116656677724132911005804042299471021222800743315375618744795688008788097128556366269366633726993583837720975839657014653418634227052223033752644317807953052464090170062033809830687762804627981488169404683908792739772184633194106660861886594961048767265805952629718168989733347197688626408607793553757029004378664069091175314647049611799230899190701917536181349737496756148389641289811866453508492858864090226343724439665785265747042859707106634218970762282814228261901452042296203136196649394383301213154241293243528024363232815615691192791545185728938421884397650322720741725302227562668347400257329779018207815124799616030355565759399497784351491874724608348506431438825107514144451833552813568674880612204542498219381655818820176101690714474920542174267755219152113992389612679921032323092731283930059813760674615536996339015100036956207154541528320344989244254659836454838725630108311745940100044129463024909255176701262483452330841615336051130608458203473959062513118043661260868318669153327523735927771320292840215804266125484591853982135029461472848946443528334940355015877388927677557655169039182359555949955740393922747547148042069262585155834726940380643714754538888565050484688314620571596844436052984513859405957872577705078852320430866530878492678136046098330744836604531577921390354663034414135619107697696535203848877037456698530055904736185904944644229952891051796739484847459026921688874448555525352364649050349402402221783396371031003074077245805807800594615836975679436927055819449884555912144999219407146933608680900921800473708206213271867677353851463189886711247175128225882279331811626081520812339019275311071265385979929993529311054339482948172651653502517787419927041724435526650537319143648287875985656174505969393116123613734114062835847579233524268217529552487579085448355719866012996334354117820352601828949984368812836646052836889003954488984723474231766977112968517218718550372417856570627789515414006464732725011467205002218093207816741509328013589456210417423286206288415021874168106733770540790583902552658879990915305480275768577397193375367963835965615664647254667610132683894326323340239200119847321030707292444703487399989368291464611537615480783002540740394485692272857403068690674694775455783741562750929284387172287055650090519270428445629469577724442185667866513751806821340596294591003570844933406734342109740744259463835960470323249868697412350230306233670097635910520550485102435226608184044842422014920891882102261558721412528695821017269396166392349414468325282169886801438145556283503812848948948773692897324058784255292710683495102763841715130728954308959585440161893480050351778785502248669226068313030525963745861516598241846333548161711332826171366859211707830508678397445829504840960333215918956949561809810611114542980251712527262227472514639934218770243542863003383827041867528881100481286395643183776683056293833942295378302699352304937312760105333249524408073084850136944095724872129037353813739019348272351719805096628391349121120017162891431668579191040448546677155042010978447933814019614761847071423324983795302924668937978105188172806862074966163154742138882916939066641001268880382081110740210659503128340472558399418794700731887070015189475890834561641835898952741078596500049332267443880743163012703011246272762352298660331464942972244770689154315391603199694276563752205632191352036825506158878333203116423509382399958406788421722128637924701571930891579408748075626727272457365849054192410144818600113009220475692536584305484726696130207441986246628753672836301071727318828280752514658192434315216166269696888729926180514597722289522488190720901661168978173502700480015221657533929976912587003735832543627500658501420873400230952877146914631202506915145503166141482130165191519666775013600150929338192650328854900087795704912777982023375713788064298081249566678942107625428265649965983406260276981084389608440452365811763357142622312130685587930381289328434684984396206300111427427051557115348743065309069458731656417022535392709885529714127892516774960724797619614737474627780786374877598281517646469491017430892295200817222572535253413547943671446777275958973972560229217244494399526831668651738471560501086013242397101629691777136010538984387482132102672931479298237496002530063144438526945019143090463610733610259379698405692465120056354772109091723102042257600843763584251597900544481634788498856932477367158383883539716278189816513673791259204887603913144057317459445655140019520439068840881888378549616145136802722882829986992072328313410296456169944018566566165344477186462994716139693842162749113946104536910748866186238603559831172242221089499125575180810224150886776212004859456242582013176593119103333438431926064097738778022971811407093583092872290362387691153373094207390468360269145358396207105856702594311470192063238453278496548488376230964750170001348239541273628150385335449927851605180348984770667341250838154214805748291308255777489490636380126710964305466279173910332573889096964515349290270416502262518203893102143376523320027417795372270382972582269337059045659831658557902010762539203214732418615214118165163651064219135991504119716434409039625841883616600664907130453273768386660440233861064244125346146172520912398814461237857588795707803870127008961449041006909208552978111531759523564521285003095316315769427242433794865041245773335355497983127040562049363014776367271264289148592233614221811836119612069012006269546739127637933506230997326808171607165366135568155431306442215340251202890661270617585346006391138719219031302490037667686416089848577763266561776396084869218508076405391929233174861766092333601971426269432617085074299067304644278610366119436065521292941415495462135947849176796679366847123159627813839209848513078002506034758837040762613468526113149538066273961504833592845807684111825877171000965299112707279745247507447373625214584201251246778715300624077421939198636397607253244470133889075890888317095830397862116404657017081067216150279490575810663796043402503841267186097614808423463042701819049673122409272466971371526397541744113378603611156249087975154699022748913966636358399841730905268498978630462398499769279746284227805596777207109686233573979252481307874706158455510190825006846493936585842713050260211560891413022065218039286231480867690220644493503589238250011834522495762976679118300123210203246809116312627218810821117697474818827650433289354854161393458805833074361122722240061148159722851769924654567674223449767516768900907299057022294439327426143831151183154045269601245932048306571961429242604665092209407122316158732587691320552119812869873536988799104587554393943852819756437840613695997884633617802921019700423792626154049993706751332534578494507184256559122343828651203762466794601610424468984311359280593218936824977233520294436033706897565871106936058188285018594443837017675186775709329551599308705103478780923899981903709494142304744359038722373826054798130192367494712259955774002100903648835459073652166536203165496981697947588623970384579469811370257599967026358271271717211875932124562511281864104474873995617061999162878709533575132759045194038713352057619645083271322684105375084910692753617908275514300791202984993675436197415861695839486376529362055372675197967849472923995958328427453503244380128423310310963456158972582290445942716566421335607489489425155964288047774752785019681892851835314358427130513519728174954282685619917355521389062456750420239475693292908715569965474318379274636845534410259372864958715788179913250705696753789072219507536439886449407216198642725484171783344528451947715006007957689644101616450405071043633607211632334661224348029245553330816575922120550855276129473701124790689769789352438680623027527221463386750026582662668717903472074256336574982408900463955527564988219201903669228330042123236681451444599896366423666037349889835656841646505181096365247161493569784187734465137290280123233417367218218655688533524466644278757681901224531728094537335085019928623283717590470767111732111739274992720142031597434468913638377497023348450633606904750490905921480283237622233642047599203256522309080843966926895835304802149862084716897587588652679855067876853813044440814877073919770814439932532219862089205573165335277884566490150812888664529677184336722195436267551493353221366560952768651622678505546075375470714768022606973503314711822869750022447094311842345156319173624846998701606142267435426964292925015449892541059723871067366428243962460747791560213704637484524003947639197073206590001963536699208581447433268983444639842367094106943024199505881227770540126291067562109767416418658308952904968328549385846355028914342029155709725198686245611743819084109043592321594360371155650923599413379725855043994724505230313563413164672448551750946405219487820590803041898330288098915443843188820087298980317346962374464902299120101655957136638639809778878299467947423937003195225464456926348868787603492134937748565868844105232214418856870468332509039946391083053419607996062761649670945919368728767780848475241963181796023561564391988548053745871379075227001514290038518945666099447639420104552576763573077124218018455744874848833115896304940142212887662786373890337910251775386252466197663144464376857103742844941174939403576158826169954067028121828915726583705083158978850055652524424721440975509569819976700054656202298522082698031851867032450607955937815129459423310079377975517547537365283609114864912444566677564603494846653814068590118606945253260951127938794582176396585296776214598622675978031750474930846425148246393582147361360727721707624281800345973185901365112707072930107176308873829029224130765538113566337272465677600291644863005652665414362654719460826464977553946617121058587523483410310410596887293933220104603347732902323870020773100918249436094277458521117111849346400521057841075811783968792750554523953719259932258511834114772188609425000013039172343311365065211693456006724156764307902935393749699160252443214003135409648322042184721159085290095112286910751965673919126093281999217109929127023448759607285149933366747516280349946610636201694247646217798404323389759089924644839124489110180776979481569430579772367615123734273435375860934578916225956686095724724828038026715322016466156580974427804003246704508867539886996775481628762510962492400122066617933688689432067702710574392775967165342946280632520727870463933235500367816218906469437411530394930316310107710158004926543800448878436242695441763974567146702808522135792352771701844614445639298618844417522388723753610248517412655316876235841821516710971501400236187033893392232718911640655524218727041090228273249467774141143713016844201885455748695833495312088543323516062151441128237544853444165993026057915332245409621021808032088704820185712301585628294911570450852979847151445518894096883048220967641761735474143703382086326039477967736577929737119115706229795933443686718508297933241619606830928936754878904025205843423448427510303550611351696548394887583631840701940789207224287158203270913278114721733275515212342900144430132819843346738021487502274527224759115662285079018320814087612636645191954698817418883740925208524582503289481526410683168197195338634813914786448292436082706141298046453303357618496577600449856890244992883240516225208228200621102328973052104860242023361012644913294403709975494604133668258916372758107910888272405996948839324010017628333667463666604777918738414081146281808920949303827759388105259675919940537551510078608828507186338209633797813032954606670238619921587050894871801773764431800498482715632828269620484844560452253598628092299585546466992638403627699071538474443278936877748967502514145686049301526821308838744381917601501012095445617228618635615018270611268028723087252221485289443769954012773658986532124909142800488434769234436862921569231786411515864064104148109785998334220812396669229191656267099581422627497263526027563937518349355135878429389204376206200157404770848294079677988006054382740376587708918163411569670201236797318633315027648032756477162894341399885946007909152601583807911986364386670474459551608015042166256774061071618779584750414682799783173857814619992396714125617147282863704911368122973402825632056091402646652628255772375277039089530182377450131508666671076236807109063394973896878157104505471775186552508264917874388533463909278556279270198594459328962347981299683207542111332137924856354083545316078288773864591487779020660497845878280833752669046229533498383769668786475816090030959115633292303051072591532475198085350325012823067507810394254327379437394596819557505679600778797907983938103691040836909799372687319518619549021433512816581794124157725584839887898233471467106532919266119889842815565380459144800667601987274559281666649175043258375254769700970840143396639770447334158220553652102498920571300161184435408828399952957247063484952590300267251959983537123657841152301509412221554781399590443955864264480567210855164951436085015731158534685491398059855499310468131502710220559847917353003306123956242833581501808369056544105740688091381676152687581234917394529123904744630223830466608115239867658565469851214840462563545626402212694667049011380500216102612421550901773239478011850740260960751361526832619548009425052246748574080074816339462588411184375264210466292641085369390794116643547364677017076078056676523457467165088892553339340172365868448231228384895787022235586621601196258393866769690795923174409540317614338219295731729475083337727083801873975576783289203752290706822908102248303491911030933065162829034312928746704897058650473160025455623743706374072073214533071293809769498379093566731739912300726022888593286773461178383095975628640821465241904447866978263514927207098024331364075087983757750528346170791012115255079589039186856699327408481072424770182160268158390383582005452428309671202859112775890428055898262716964444852274100908011455670541640556342160199762418083114644208900392309489584401646716466491505443166873515635970903339850633349813657605573310404325783288697835199051005743993437542120582597720936316495040633200968351177843148225771169566290979020612670266279706772428824437825770546384831838524185124697523015262660869567150942165257287344056752691176628143721340673543632395013860963521042078503565560962514157313705651908607945293966874070129565725807946602338315296471302759180819281473335894760220529017588053263122308320321710762936246772756242103921796874279590181827966677613480942316744538453235978892360506761578601515219449619319986993967778871582060199979148534883757306527585614951975752946310899263175984042235799265334042660702853841184312206179250597356335161209994581991928967412413094479220068104723382410171942842824005895463038620141518820766866307081855248150593105881669612946134824673733010830258628749560445081867871613100464545284829825743108653946997309499026044828711793298978482517940728866276537910539795079233645853121109494535553134521482884241822526656010602553705665789844942207964235600060176023032818942050215347754982556567811037998591758127283443517751949819534939799398392001751652884969117558032124383106983541892503732839296748608917354399300459549435854817191110794818798808258979124412448854479875853205051993819665594447838565530933309069652709991632803260530692821438670899328694830311305016640699358724239873258791028039787883952533931076475195789694709684315740933376626035652979622228914791152381692499855879302644218504237867844874437565947949189359757655365015991304166263993206530190100362410251452109566185422702060298977006544354384096622005159858741459754289183105122973249341199321367525710279224192300332073161358936541200700340084915256642370132592953351629486885742536713854144829183287931542519066560683134186536874998418164092219556817556143051720606484752424867628174764514287745618453778084701343555707938668109613960580925471527544010046009299536606270603436266347593452373996645486759238967954817162140552211953161102697192606402583423075358994844596854667939381211105597747820344707582703872528897200653048044798977944221679666243163086790649034546717000786299503837641026813602240330397819927943576621227186724155346348569755143781087170256548671314909258758802567906206680637218429598018438699916073437963829083287497391315484986058837167928598294693326835930306480892947590507781571088133150085562396538319081006613412975782191302283885304271896213442085403145544208201328339256348579633174804698571727882190891262016933519575756666953809048562221882736241163689730242215420555889468603553204022358138474434115018638909560418853222047564403807343814942053588907959664291979705946980933231813621435326610518229296873704772185595505196969207559684645907448258258105700136070005936602595052500071169597590356149940888311998054613027249481992771184600423833811606075991004350635710197082688053349707069234116006847237830065167927984644293638538903295934998835648310814339875019704044170014718603397586974350674650080333961232414364757235664937979914376442891371288114458586200024120372272149685375035033044558973472456014955289822378441441367311085382431768920946587643064143778324537040542340101246687950375043181121822001438089028235609438665036880220477462515210127671187211017705960522194408621099968083217848418688306906153900559417233774505097893255617216863340942446030760361085825647966467951423200435261523019733662253101700003252747605594453791636518112304415757057529740630707605306822311456912132202347816598623433066275158230140555498697113989111273890868022480705129990334227581571993125573387696517561444151564487430208010954543975088947336613895929028740252411137725591317985005466935093762153864752606095446852042779263359671079799382087895012759297850800714510636779951511714012754972057868783314004633555915334699183104353314170852167898810010769072477025009962594239832672508288984343395378650393860193613254237526639153691685093209859335067289369308902419807582594646122750357810721380514553551131068932438292209455133797771995835244726514587052481560144990095815229772011312376374616730929527785586969225858513435826225853189384586128370886661036447586363414469493019982251602961304168050284095763733680812064045919807852033210834874846334761290041726766154981839479876784300845275193659119950729043881280755834421680441077165607305421110724100681486167555529012358324041921347891880761293983633701285743577088535572819661556802724062155310914496049526821530518681234741481628231956529848326450525414172755171387232241768156202422431498606265881722868707360925262140885991252051936859976082635467282477007076676326063050508899193964083445683334535302351500099801919372131364015578671605420181921986239527806057388966909442101223780428677354885493783025171407221324196523333818209154633924146250735720844584374202736286791701849188216832340650440493643555605916259761384882938104737444645235129163513252507165795320035149746792676904717869723408044606901920279306907641392228380911677292822438148437240084431553109179099417104517477122551815628689371344621641279370724510451147332486390994930546892407284162685777318486592794042603764006011875527410325885753598078099831425969597174550730608524208064763915515760106390839985909553718740831070366088957174814578038725694552197129254276174291214960603102210289536813875373433762723544112445426845956500110069974599536664664915549558791486641867632858041574194292727099544616903342764860302602612254352000216472910284803669389684865392849549180664649162539529229180031108162802486724881183555127034141181877020355204576356899064559109820464922647730648611560986643803443224840493960467323104035444650930000949071994026509721035201210554280243350473449992353159456647734822766151424100215596168553106213952894717651599223008473196614002122780295398939225095782535241330522184513673676727483966149692360856557235869242267065789118376055762239036564755753489297464562871285310516756655123800010163246766081580300550620532185218223080857502051245295749455375780407226326622837795798107729602020144408656854034727773161998075804284689939517380592472620856303207585934401757970401808169271210972535112759421611380330821968673071389552310889787475649689729139226030114246355030993284428373571832285105741400057123638343990798525367697302348624848768161119577119260303179732697684258317902071933940354524034073661803647075863977494153351911335733919460702246325319416043128723511426217791862922472297002318556152821707584242466519327115682122741646279028106663880215932205213451957260700356006499287960043160109301538469186583433498428834696537618579173308266006715681228043357318706544733987324502717617021366808015525280328686859856185729113124069054629241913142761620565726924402734098790353282094444261974602089383228051013166346992888181249534132695436588383435193333083477449590012530259007826109947820654062860363513324445711422442206879224573332556491349349007406236020593012458535700005678682617015426676628994040927820192463314106356919365011566989627819437677510676558706612632442643940508796432719592736388167874298395594289973137958557074526195373273634524587109673742477481401906094481235323049575875592268790920621812873561991268415075337382248332856233879765868434805736197818947947034915497850927940724004844596233808275188288978883917015153537024704103897942613497810625812182097342869447251796405261600382948680400967452385250541944040758825110326075334159762828374708217813744183400134638544648539803668433838641224620617646407752097680095249855742942356784301294377300278590080796750264528910887067332811598038468052901181333518494782559693114571373861672646783352674902499984836360286226788108320927938609712195554456513224001686009604770232438251395973320110823606094042124056372467291163128290115525210815493344804157702619036879426649536301464280001213535954418472741543750108637049652654264636289864100270608744142284894264205286779946493448187293839901873522553303190661525945992170245466121998717946631288455820772011951448673619842228397803770873374820352906058352854503221595041592841177059917304585022072428316163447546496608156737686376424139523291858922382271080124547818476918605104848790059415999159079886702720657523646134589485828695588187433657081736297067160126474522411840267015998049093796123467173089319415057589774105056358206082901399174304074176858099970082313789936173368492137358280184215672261492573266159278512746288628151859423590319033854904672704439328895143149823385164243585740939739352798744087337748027650006718696824323624804255611227887469320484608994359532848511113269479313664720902790638926442082985359839165037662024116537213693397763185421476047338243540811582153751473577216109299664156518535396426494208700989499102193296690478630756460277203838197987682430087638196998837692620892655626370492165696938767814358338309472045997459972684859232492112723298865140125575589106924436671187812042437383415965788638292527166731251850470251196246422899875567521620623596608133870670721227986140206201870081691547537630182036142148506706397809905054035316752474314917224985890725031958415506534146550270354079235256083721466111391015557963451117202376965529344399990854828871279666378906845581784507032321399606418410793624657426445855705278451167920636487196312775976046361628344126532897564054674006137274911663109055081072976353280908001163583340294389185171880851696033664974137890872271022798631062936174668729085997692905905268153481249826993335295673488733944949075918264534471948592857851111562415124593435914900409546803466803620520564090395737669962776090157538193062694180559141942642906014830866116414632522108992882701628687086523650859419723534714772985581319193144710695488833311348767163489959571617139350822722721797805331741255412962775668380444996870093659564694352478638140813182656765833394902648816053787951295262504604681106551817973681865821356173194889821243674668888501084600037882857245168481835932016584416770076827275497983746884874625355086989681676385623827573727360059596237127391109603511878501037659976860041212381525374383242793643447129926605682510201142875394282105462144240793299779667820934855704807834084419592956357878484507816222987897849601391879078194152508157382250206709207840486685704132517273689352529778547400971724229924413947858846118155090764766848661568943256619521035694048514890676038841292437387002296265857930376585963793898913147323894270744320260249586001859877740215079630887894557122427754904513418921953051705148446451481897727779664229443254422785597432404510595989557992178721677010301949320015125930158352821649061972432747377206997774962764592300709805901639066500605275404476205843039466263802805030826824375863222710919805506387432665031773511408509420889724743048277371436389946356970980139241795360984746731733619317708422847538592061425501387438229844296046005719736115483680551743858597346917470128335356915716545123364281978745954428840658317030381743416252605666917983873258613190361959574993331270391492328560136073141824558224496984786056676355907328200505056246659009098603542721457616350178386792260622980444186107115921896638709455412876271208408791981129576712640349198216785518057808772187054981189388202221604215024484375238314143650423706363956446919884554077249407121138678653882308391204231843751019718523045413776467431195003439361219443419288611401668455715611037671386459479753407727565299300087996791646638216913831508209356593227923059554774548683827985777772562821458373747645757965389204496010656031748780051010667424342937666462308183148111159371860324055874439589564677539014194801965797459913872365810118891003853427654772884830505760669501540718855887636606501821355975802112716355828902088861568952439604764252343855615193793894388322348653274054300831948974971487383723791221771566126329408640085087229433807421675658269734936225052962826255097390385045492290167663916700661715237178204458046087568827325973838580986074705638412359015095606671440504418350295620788835336330452915057609636168047614524157517903636890583085995938048759566330652743470969910395051274935653585278035536415700713517263650138185251609890659430800723528307052921343414235052766112525733402643163187997911017091799548087921561529788726385212861406645914268321326058120214831293853679360263969967758883844135229521162419189018351995036663010655137365819365736121007573882672628210984521646938877688400571892397169860444640369931625402427028797348857965414715709793249189141596633184619221112960827843109702782133903957403285329867057801049723202984043932682670475343342162688416076724319725868338901923968326889845113957876329539024039697078181913758758846904802064603952520080890217893849843558509065239475787087866094501565417401658577689770455360546854785424423763110477176084563245010619814304688745447000990637782121229495199635230322717548675811904722322026756707557838312389442317860279338080272553498666743525964594844391774511230659570596478834267044379191983328431654817038457358604503493734314119295194910651075731077281353085505561618421300280433077665241652509382087151973416032788820266167020991112712789970800699137909179846933298624883814130307422270219405614778263891601245375023801198974172100571023867506323893108923316704692062064351975957672252686784883068974136178710735309994198815148065450156291518068509143251287847985020198624107482499955630311488130787728204621475114259177125130090006662514944687217924950736227725210889034333811028978785167615001597530053044195693994805219805401734373231617848101865856800162871874292334008597999379389048242071337518916783104191231890775993973172695556936149077672332111289035879261357478432393386034494325109817468201505181716532022179536660351857274402785931096064332032743632817940533318383962656600497908938770042122150247264846631045543376704284630006077045006730611138628818269382839215185101662171025969155943776857060866468891361246825625609737564897427316692577982029357169962366821623312027851893632798818803064718054640098745446564086407401688785429720211502403952768068834841053000539314004851594315894049720990456264495970359409265538966192212450149628014745128403786094575657190651042757624938428929902456790681514238327027209629228266592084596200609830131845403318646094409597730439349618564709196084230662785647755985189706054989015432608396458530440088995216102517382971336639457022989199117319553984992396673600857158311999924417485095077584562096644775744566258810295757040766013857474016262251127309428702231858139559857579540820778691267166569390869537763870649673724453097805182316592900692810639832009598818734665757737474948538668069354835212458149664485764045435228633217057577265610050144058741437991264612399891923820594943527095337081526653361260251951540013666290584044153985570458601235815397309380833139155452753209588015095481612144996969381585202035460211884745322794460511506724559501883270565980822688852775015153686963254908507279862727932099132016048746519196015348846767961917160286751923217501652620280978269613002046807347342453929346985424456642828623836288750765606587682720843327531439985228085044914860400131968791769854161919874609477068169732997957309344403982832457024605271967095966824791703097874308411074937734704214074358257717782670824341586019044498212920142580784138284954634894583086729344506925084410783824011145118148649321640978669882231567637393570367789683983158872780922632379411931101018909314061348381196738423263090764438412608454529240462632357921796204995382558116727648394871562055388339198471929452968462140337000345476234339954613409649545232203089533445812828241604071138583405349829940320732060025737307081454948666146705895019602581556132637266155703978539003868605837470273612369817716760805983452896600261111268386500296183366349667326846072056812232728376813498314315965524267625367855359179563231754997097854993176312667510827721973700541148114843876938426671555928534242409615664007867246395964314292645124727370669194735669336270493356499096838444382744519525322373592346206933840974151953231922179057954834202269542476919256621281064259098461045419460003417731152102988938821331595894503234261586387007913644056587729805576967882270206981899740862267121066988435979998438577706569670577657369950256720193386054735349224272322512777198632385133898648823853631966948906285965866062679688277120316467016323909795599673972396577016890470600648634440592011359897477619492306909907094324996558995622706294448887398833911484236929482468061915657972966911805289747866268681637255447902043647449440856288211464461636626475954678093535846380767812844781242776660620498149365908064863302615967202678040720991437051687948204000704636806383514845982719892801232085645321110889254079855074106848243431883003253512491370230150564007454661020384510113514183551355773229367777844040376188319556221407203089855426477740369840130398816009747059220715313630321753523780706037920811460636536313073687161047514251253359110559323297458221144161693601618108519889915325590377265350115607352707413067073549355107385937244602849780573711038853446543970543803746714755909549805667338632058061919425285355120190365001924687198301303691702573883024739204461422306428069934905673157823446734476581746982228732175892438148570488303160018079505410485882967953902110980645603003870627172274518490455331602856220772990204543528769201086858550817332503601111278218427578625265144481808714815003357770859440054206949913958555367148609312656142182611387309202611589538449826269501316959817422883779050306230466423692101816317477204157017541052886468499883361488077513413824551487192093926254162321301007640945871649700875393446268173345867581371920297375081743908442341592444261390824809983367161852304604357657008605169774318380856960235377694047497848217043390688834498501918553782363726132614489935536860884957305707954488900682569344533579756285934357460712012393962099671294026588416292785030430982819776124921951528649176105818846655740250149661848107935337640467479812491547938619818017285113806695888007797516444603785618345405512917383190823831553861683463453857102018698454782711637129044479908079139920233620266651719260954715294205044812896040715423304743324407035979798344019371900740140624963692571696678741001298039093133808538517673044835523872877630992208783806519166955804353250661544699332649009133029332506688677960753699174952495934501762086516041274488486142280447052196768830281970696586953451754789597458346001362500401594179856557345530038386715914513045027152953386684299277207136721213169044492686903062821196362377719493137784535833728390523002301900524967161368805301102124014654973339634480452031318325977454925957076892998115054607282127102259894623496360476471005473809090495911043581077141663060479466633919438235251456291807253524169723074708282170844308319262366146345064745772302502766438472918623078714413407688820049912094147422778550402161175978071465253162554732805537152728254923697345339172237178593575496635168485976718864773207668708539890846105067358580759634694036423556085128927506971462174694322754374184563134571987869728575010436105497606319513422224807121275024334230598321752585361445454256843341905534164429878713098604555348396936975434010191272079322105325835133456796589059380344208504147015884961189242833711464025194437111593033711148543310466167907715701812062043534438519007975093171863894466322726909491570745428957493810143488652501369204079154276824932361877217044404694272372172540049713633503931196251300280097798922950271844171266694161127105327111815029734657735019177389789669095298773323915203013979221404900040373022004534298818988049295204610591205874767347498243564172273885020542772619029520578656428202532753245093589686796736660224813846992709416356930382803944953417728870233628733255694057239709615185919910665836649389114434482217943225347697216914188722819156355524422893341959578281279936855366430178901538507095727939915305265160930374992557102960874518881772734477960237852379816902740998584439405436888407011031051155179519908553875223538204432324278458707658965444882953172564143457291223907236935618997257455466076801296231777017155921674235559100153473603452791956489028698344452613583945358787473187436388831406020681798700316786643745832198545445055354041971507192572487897595605229752978455964542031998285417173869066878800837497822047287198040194758393383776834172454826961018014944469755021831748216939989431587070398441955822967028848062887557222019136743072471453727186191792479584842874661498182924864190218417567130043820124149897375605024694055147474465467267284357221655346532618081713533296051521776704291223072635693834521361315049510617037883431473103367684109783215125790184755367920050667597808732014162001719677852188500257619698933072204187005653615322659246447840019309651311143919168615967590752783265433924921041380453294105107561326878755133868069814340792708796141035552289805520235684500281482954500393702357527503222074681139384184591759628601321756938297250235972600397837344024459136075209161083689388061222192446271076917529143705161770138075426542902045419444609088663843140008906850229144321827125176139709153377669140505718347713669200354246961481513452836353139095347928335932929463228165835194094522599143224502226498834467312150774579547533734016900517476361996362230947659832158495355917922627415870504422756292914620637157692066443292305650858477551109834583726789981844793300609241241427527541762621491539112222859447371285969544858829858094943201255475815407621564173451623172958583483841805979391497583250657622357470962227566684376340727526090484885039400496279371832923778788892118066940131248227889265489525735807605042429933169993875350125741649958781564338859600061950987163435890493239055183642715545086733261250920882122702211177685892399620207734835372369738943134863525835806950241569011403219634208830298497648217857128127102427306613950615968840579114684840624175530036361771900310787695153836126057543961889136393619846514196434495875658629294490545346433054521474507030876712689598025281690281555458555568866628429094414640976049426145392081001148119569085933710874804823506241150879251883530799232890287955517563827551609831968638759913391974724794968413224698864334967801969403302714951446996639713996973143344845223038305207362535015134519084368961527523731600777283521214298988148779560973338747314013929401743123935075751695115755998015174866305653933766188419661610263693157865362359713714618571770628294496356040033178753909730341241659975575517943243708116614011358304179914171650457493593601784206901570071804154802399725886064695682594954838498582396446512817377231290618175242714209004350180615823085500543720263914387346788626532890656030253545468339377317307402455223927508127227522510807898566528833708823406828436673352024847557451915409486626539222944476418264764820454032595324043619945210920671695384415421796977101391860210299067046041886209948004848948693366142373570090009916529404882569720607220799624743040806147359623168573638918073347598947345569874513509069200940137313800583540116693165651029881756252159869535993710432445763478850738716766580889134268244986892983668295448804921896810930120796744736925369350809731465306488641351337913454427119777622029212995536944701647350219296886461235406259495091017421762166872994745291998010711766462874745113031873793340923314626132616411451902312392902628585917590209875218519209205105758068334582307426742311126226347668190894018960976096317245924926072325259392539565419407389695538067661658576229482732104574073201323505589797456151619918908140614639911596517472188991458349694188186447926260051068961277837212690156606918066727442735648384682743165658910598312140600693492271836324312963780282410080147934042002674935264159075986744143521548200370835752837615419508365159349688885074141729989731455489912228135869427532138024527580230792341693026813449557203987664223847012246144735842818842237096380912986448924453879434034690901056566948646209355683471038371988673935315849415714588805028387377310150728862854646289296418079233838384076556247271929758975522487992297369003390517915376646576519112094622817812373667977138153860981410094165527549283733321404523094296397726364173539590814440243219149348593730599337994317866954529842400507741131586089999709505767640423484351376226102165384579240001965355017714082202495569961914428243239724882080691573746686204811634384523992625564860615665898804776151297522748515425754363361548633479817754814668589839949373632606355231620266469885170743904515573520841322873241556761168357181489341077422885512623958792157050343873566568912906898793693454457492816239193104336255504301373927120664501820416596412931623367638292458830183678027058495421940188794046322940278465490633277342742422300274319834578220113671708376162329092783608308138794251444812649548980610200871292158096196486366714567554203547744909048767783700731512589145528213059201329817441780207382557745949437348201716654274410360614132114763302494896504410651164652470218397989783678473277380949089709528701660105829442551396736533720380669225912966987398416974496323802921032233691433824899320399496908754185835372183187597714995670187440205072916754926694821812946774564093216531447007119430182998481414117156357292435458060763996686947425036822277879048612908970007087963158404026940154203726278759141605066656484005907883606763667632459710966004072543248093650325116957452938625544169689993479616568005050449583754174005104594318814270277074720469654561456630384341706408619945282639546195160980154961159019439802681924573216112953163944571175934091420186018383984894291315817632099641734684418581586142450642967603600232612803863188127194098578981646486730180334238440426557849815939790784510413766361089596174919178573720066278948522564006791930581699781135122761566747327858944583632622438551169233649343342414139092340883249643270588292517961384929285830286772532474165825217965894012890705863790662759838152147056658952171797314196018997792771897190052684737812824095130313245835979105805909704232896624609459789836959538903706048640608233774443312571203594400875681415419054958439170446344008060335491106024118284655015685324943740847034961790458542507189173177179745697360370891908704970947826766611716805342227087688650903712186193612039228038971314732725348479498702490256617863147121430752024647978978653600532033753284752927032510436171863304557275081506121064066249010076980600072433495653511992442553046658276703560878171941326069658751585209854592477991326649127609108666065105856172380695908808836664157646411849557862129079410853035810470126202711356636956587847418239931835456974627670435485864015587979142329483148498173144046323858874271944392969155395328321804544671605965980036407835204567785240504772253556453453651075944329332040716065603655301231940275586988212123425441841704847634302561382390557973478031148099317091996399135524867032196982797063426061654096377081616140920222155514741273489347855678936430627736263217139143087752408895472707716231984543378623913746739342441822012828635743410858553912877202325373588423002080479923264759297910580904238750802795145530444374601861666018089937555864346892752700984042141968317171231451550227851808106248782011748506331978206843245085287188569512541261294286137851426865029260184028000065532678481740627791977782652443318599893948941003860503433073173311846818540865732702413659486498953620257807468752934483111092108515964110383315575224030980621260761191589721974353489471052242707823851692273070602499982674923444506731675791580924189117644150064962601788695265495552861355204403951980679536889927227330499979783903181753218186752735471454392503014063580991693183685630966229695003501033140123150929863527809263596987027684429660641555344883536487830058382789739022969852902876254076517959383017394421768543812038704242499493564820916321293659716609462188576013558205329436864117312073527528695038668579327110312878526866317637833117946443355289512791713852585436602387294404031898725217321964819293398908383987547217148498463177560760266750180169572557672068326952697538570605388546918198291395730855162073323815466321007395644641416599249489560099812089693607211363620506394326897570278905392529257626731808743931583546594975566933040046272885531314182133124675344104736208038956423717359005750122018803650190685778788025352105806110923006936879934582579676498199631375868585369155036774194243129025960544746788837843358217673836506127771082911061942518864691997264840180341278327838701847878505437060539022888675112525247405604050514818131376602248904482777441040893202454239968607707100227306438600050177291683962514288861189257167173264447792877851064763981462825014550707254195181882951330531066450596248663049214476473241614385630402127344254620868802661941440495584090618451193944878236979346026236689936417796237276946279749748953185714778588059141001237611651910503555271112732781915879654729970715342771597435588859560179194312681377325393191075894160313771581820169098013265428133660721738717620026686419841907431794530306729103723857874130753230436181040427017996398257095964475596574549355927933996427179877057062769446908587833416996048768974309196317946393394145402499592286754409892248222752241500997486025998050634710972308189160519608071617946515161462865251220548952108407036560668697847689582782095521040886392079354337056740327743107343409131931963835145406105877307344531512416637728753264501104681422670043440162910124434058197279455524832323120705494987201568327615317238634477624333786312160653719109103264974683014394507801871860362119029905741143867414074635248726412230730504944220938470887765456156992592445911835004135673868122266514172637615219194509965047056559356153049727196127131242772934529282858134172577467970556133487384999991275347094945111635114275764979279659537505637939854592886131529042419353657083309954897770341563006207322432825591674339027872676630191691102918919443614148961487360546212539488222105192413013124715219586160124062969500677964891528972059041243536931655913789911725398880121191528983637626167647014840064323873013263528195800589679231728338409296585390611972986077254754496867255199502813044449501991083725126460658784249060419261813359672777294712851752097804123074391483821599851180235203660530430129278445349032205115988572895879719666965618170951486685781841629171342102218230986851729652432614257660485571094017913109248105922277591043108043772647882174687061758414130858708284803103144699929229448874811747643514039368340726989155349495491079120204295671236849311704944645007040880546393721411399600958799061613204949916588297267830561445537188810151006787858866108643509280448682773076448380642812535855057778914075427697210903790087132843099091258601007531526526212813921780373061398162242670047542304287400688957504390612774309791536042159707039170868897063087874782284247489387473565016257528373693714632739247806813007300092140806718045268915105624002096658228262925254030891653710256579189342047475901142666933244620797229312481192830045413961146811620767911079749229859568985037494591313499248745244885609860268434450945575390135418333543553755656721490974651196110562762336115278085694169245255898835748335048930422200847029214781767780969832563734694039024640029028290633949788259973490259032994182124823186456118432451740998919956303962427266248551141605910097019163394211869289005658211121571637463102396307596398690596868478347021440427659061918614735567264204064217232083037028106599650604383199456824124656190710377508588895537054090312589317508862788596585438962558577899028873520525383293655711452343634897457338152071295909879682924953968586274444426771804053275776392235819253154577728012492660470833619732161588993666778983846894903031459495130095810491695430977690840774438225748898540602225676855867026070043148806440524162483013819177240963292621807904484040906516296071194849130145278405298291714654741845743502495271124837029771899268114840085894512042486546270654519941456974554961775193530375451646642428101122686231033710015480465058099699530280359959426321410825903934361268777799724730874638968863051826503590713932579252776523435575127520124926335986739345946980374882351298595537262242632716753675845176251880271617377014317502210395628911059527528357276953359487486296497348425352656220694177168886538682762495235687054839840709085948594573704040471315209155382796855191030431180569146741564221488793151136340271159649127249084806079031944198498223610913069072323364371958895020517763275470355113578881239274054504388286056532347486294705621771335242043535019798467267858345761217898104311162062440364492176464845858269116943563829046353325518238917803015282680289078150107831955635043093002745448012168172880234068859653197547342737135952860287359732428651343558241042771459833095371507063916581045430747512294508891578705389347580602326651006145512283798587551208396547997779338625761474354330273541729957070911960273258229927074058846933588953173745671687035998176192546628781470589669465049631158108288618294074505105127611298954588141201061640137191091635770539380397280794408063055592238824855700408344940229971478904278913898410597462536384035711613885048642306819260809310115390876429950641727191356456141585137896005412982190578688452306515291118419268749679206445451506714470531344922911628322923454916550849220296440860570723834686465803382452550422796533575415058264960389601488018888724060758083126513554534945424561091110938440678513130322141630158178713173061300933334590813343111150383709770040251748322112474512726032055997296637375226817773123230743161852777090134319735659603108650849480398372225382894129254775855906135292093011110569685781637992421753191528686792968168272839094776613099722768992640289032171271315396950216070139736906015618993404981982469972155306631818817111592255790099939992830055730231427108740137068798909230737529255040428194252030629828326374957975085860723139458363605404949285206911191688413465265312272456424583160291194181774308984238101333395401190866749072306443890377459549953351606018723181284918585627169227478101750963575691950164428917430967776150081619326665268901917117014341661193136529166657302341192844494448325713437699081182475860483876397537364834168088201251514383382880621809650694551023395036698234749932535130742100594322231977406201555687132813387807379782269380096180551983997812820123125555970888755892986080001749412062054370727262546151522895811292129482628788881882973999527972368357304722094946424807431469815734752752196097529213861781922532367097309253616041986749024280999128196920927558778505130222008372894944688386329252867073926379000084123109343660565882321067035579483758063116245257138571199620139314298155829456541905968333737038765265413558707285560878877094427408057191215924353356355961908760663311541338554825328673636840832954617455618827183963036343494634200556443486712543999999805544517477513204478343540231887548243762004409153099633824201659087615709146586565263809476457818442270865119799099783703715736270675245060873348362867096592283045061874203222432819864442368023016883514343482180189921616405246208763289367098925825950784690917187494412034101657062162809691254155765349685864325941021801705053273125686461067462329496994875593559734100292733943299340831973203616061126851505335337716878630940310639853072723568768037157440654500994800109455880812414368672500419713391952654269295516075926710216096062259109596069309947188864546540893623621400109080877685099103414627435952490634492767057389102451723430914552733813685868100014593392735912406502556349890698161078455615442093083271029671410245313683209041324217143269333746673585627207074461911199897177189843198912715775126840587245247889364533352910807277107967261132162134826755664540749756056592549700033183012465064006692334885509686475795185396393486231758303485070818627563908116748467371254122328253610854741959416270679445006380483715154773992880421881502675406651904042693907859909030207035374125279900663361396978691226704333124798416988035436330015581363376601155371452824074488677879427109426199180472113102311499358684217486192499494106682511490395730930086739297457578739496806121987461161352866862475971849986675281275382418327271025600833182268479743122082416746934948532467487097824336188240060726613918037257775410791518942997753973189163126156047757642317269002454594380174544667155028398099234606386723979621315543111003882064325288447924409304317597496974767242959076803081644952954015602228780828005125308105037419112530098534890744343064772676116752150200532052659973828740621935210159918376582983772263164906903323980906993066193162997146879123382786726647265346242503554112547919205178883934045166184269513245935040325300316697303029209146687454013823809159613136239822213020425258293774305399092137151549107391807970859215789032216379199558855803166146394770663776713496710427916828550377746030260720970598025282539193660356551555171479750298709309566989929086939673845261833823901696805192111199537059140250786015644562278969050339097966720520019419963792707824209436140397867024755921419709985380390553132739251600636241682305407254862267646717155923886095864458740709239551643688565239860942311403670375684042049218630062171710231510116852385652017371474125849176853724129894806797674493146192206871294866993361994173979910788773110573058767321446661277393088175699800594961646561239380219632928536106656039110282798594865067822856893691310512318015041605129373173121516830072116299506238309503582792684274576055768850112785774238495885777305798602880979837587533638979625979172733901281520924272950500933601279702195037523375016489227507013194610166530632806818374432080261663595594141049254974368236662124005280803220686495144280198040720121979492878910263711791590803692822162874311654402537441439159291760537978152008034826871159237198876646134045530343047109094701545164199265907389254495573657020712843551552713844034040699498485597757897227016611409683779167590230943565169297852091718017746584820830819746862470281489293652190373235380544166941592810384420612309044227074124111279862544699839831402257101567677771021069186027358090604336254085757400737748018243411943709257170496298424363489503287615238975648004956894725789505206140590851274268569976587227626238005896962350309487824512199520768454781015904083290692514688008055347817259010579714833536796730089382410239310182926797061540463863318221648926692973956409628640955241014769180488928658183157843546070367351471587904658211398146397157396509216006251242326061849358844444011158207863350926469271946366554873712823118925712592658871727499583260166755962337175012025005938215461390129980720294696365260472895122583641152772108576215989968555363005877945340271320604681072093877539561383106381969843963088526829293722212243464547636441074619381806523551882209434273915208159570084842155800319753970254838162010543921067801166771442904028476007031797802311632522819914030418066304756320221149744638280182793466224364784729040278422767395334919517774776169413167317071395927432830191090890699258773376319195127150193428729083041981108829499955658629552149056859774482353975612338506233919734464423966761830440658347472510473925275121616922867607956076419770160123220655338903156935446575123739370841888111113125716925921817839958468462656072079140710487623307920862436058802542181026508108572330376024173790842545565805227313059280005846893889669109116754289436290862608212493902195503401778593436812745031421702255595367566887198011525057712287820352903767712996094846785968856176545701671515217983198183092839819733366884779137296920150274956455849794555792857456280180732128191920453798214496157082530246770127578915433466303081227576882607924137262249477471330310504290427615840599029864566765560328122141518974822704463886810164794041157815172114387475609805422876162836397817826355585161491714718318202361874724932712382204067465807427957401501204703536607285453974403805949183702950285486091142080469298804478775751688209638433257448205751248909206239067207088492659107069775006456427631174582236584296341824716142156411923177401087507797504124627055996621205658855296113620286547643989719010742725618056331041974055252454643697406446460909972813532416620892292276307504506032004266635541376339016108560591752747629541792514651126708773135607061373144057197420166050280234341020429250344650379295251676804465560272058817999030426179102475625454842997356507653082895662149997241726509340926829007985792549354375300849080586821930717682724827269334028287500182416554934036794694135481944294531761589773142009323122989561276340910608964855941656338166059302291936324445217192004822855129013998701770876786910048732647324996616048986878291453974560525368797362361540483245785871192177120200517561838641230599833952815845818871413458752736749848357465079974008026420577395749226935550244149616635859125376425480983021535730269674428522515850732720108085959591649745728799087871758785264540735603611336176347186546777611852095830170620174009885163446236174950760251395230902106765740673076996423662732743520938964661069140831338636677139637110739947335020707535800068376113708517814646969335616580885788310510485844648155475728298977600079680150115775339739906533820352692637469793988430252865778762249540874274623725862281042292564715120961563163319664713831525975980961534772730208158677624995580386805050805647635657026170415446204288583775137876716136909816604474760151973177193921380745936802977851309499190139875835080074146683462179715999019528900115949141027389606401779393986157950025801769702823838905312129579585495426142181869048968780966319869966605853228614292519241638024688379074421857316244818477911933740405304526210248947662265329797584166755054825477955988506050625255363270959233315175947438373845139941362827588153111223951954414762931690204251544283181826209612509468151814321585848849762206369521030841824707049909122113715750492771631603787368445434149398418571219674200807157922714355355933007691236289011999648918074399010946411250113068141520971689780773482474493975397704701234505831391019479119415710674647880859051557398478863218364108713123522365217045631776124239923949672024341447322690504572691334675058384074758242365263014340076337878361317606985202311631481209930385417969616117477588761836559377932038591710555789688455035097128015881249331998277662727090335944187870503533706277871916121221475869942652826177824034558244645326392875076789115273658943398245341402533487729910456970997011922865152231192878025947183826376365309647172762801441753927855952220978299965769762152869208724683141020200589809911448877442573383395812268469410911393422055900697002198032421686800206639612349594202553446404411410498388835215537421110740707144192116790322719076058669785560185689561591400895057794453087237831574664985584433850364694240461342985391116133616750898754500799958749470914392223577687779911167740560784912353334618490646494805640258478013974616192937012659969458115551175863591156471456353754054049399930330271978237593309592832373049684720458548940356106834207643022828399827699268190933991641604033596004026855878444511640568920213546855154605975604013266726657134116116906911083937119075346869643335547319044894692719603998384408619947669869856863495207758163547028751261692170896518933573886482611334985070798276178865732046271856130130706455389435902764839497828105063774824061787058995930248037629171693427401226226063532012261481792831305552576857022235718850433338746235861113065914845958005679312048197151991448148709046223256027112019686869408375204565154217405136517738646596321367328399708415272755520068780179775685273507027100564864083851699369023894250654014295528301652155996603809383015018872611308681193421645653196596769939297862692155562878933513465644438762423705932370393012650090466150243241373754043776075704346945553519047594681039754117108900738204053167627311155019002343712071415401558467787446891180270283262221378113347462470256511466546145999428555764918800672678528051990124177213467296092661020984894353051391377637212319009241418910015825220116439749465035933166019460486152159585129092555090679824162396833913339717283497432051493986238890050348327888355465642456489219809451097805791386843915574592886769063730231933966477911700970710055477008499038236322136526900202972254022545873549565453861374064794966431768029557744351278255678404780890538060473274263169877882525969563866667348795439800980717486318760393421022416212955028300012346259203908355266010867863258982077151329593478991039039040428732910355644872631904402434446479893536170256058079048334185446705164512728086361723036607709101080230631741598273719474381065608778224414742277593705341045517714965714631284753081129971157729143847644662054722352738519686915807960722040407115753531481482548082122156941636858280096427073539305725213713090405571846920173592873245180835860658732301591411516395780915959485537935876927902112425987808782739506156905531784319253975913444655102906381417540679896581537334885686099093876690233028629556016802903662831593374057931870955624192510442815430539781850133745304998736314473517547076153397420795810351072425066947857005013404347232323544483687857319710732619285498357868190420465593255215809009662955605304515446131819972174344300333800807282538264670615194454548644602213074570659976764104804711113636318095742399884178657944626970241447515827526540890958378375669720299006106472271594868000589754517845948831988837615491744216516179839656990493974034688671010237588730647673903826144266940210532640322068526714636556229099307926202898439720281588137041735270033477162720489246226269168697484772645834950127772733477903208655631355434494974574525715007866544138268694004716761608969939396669708938316348343513310561032769199489744501776061507306788429499756170835049137718813147898755199215902343714589487052734405021764964904331893863289796969776139201162755812163822807339115800173731370490800228243561904806965528044188359663638685917835827060918715698333156476931222636979114293731963840271110432948939031535467483547762931288337108727130280122144231679569588006503444248872418484756250356729781281057848321778852825839517488140739626482481981203852876895403759545466018765845296135516743336518471226919535342695423352894405096365265326900865308612846099119984714409998882225461680710800951509129381624129682719910443480329357944624458809724773969512751824691065680640901520823880540009336329701402395853352655879995131505986341983854103403545496237719747901581312867537890436196099176309084499118517514455528246151694987075361700855576612228865703650600014629242867597334830206818352730966064775222140558707666148042797280854674659207401698895672724803373233244100181476443465636330679436752850920688551929811377546937791593583180217187006130075533962605051059566763911470941934074330407138527404217234414144251249886891707408416920856400976166289354672902566994387482822843480331312662926325161551501369457504367517186607993841987203428467532618133172250905352906217485365921475419792536260473813986703075355006306188259152478060971948378463280674378586554319313793270533619139333285592108966333326689458382852334412437119108681974104804972824830890986088051606145782480710518602483553669234167549526518068715661657231325373728368591186656132687186967980605275921379168344771540745367838558726780297447455781341535627935073337833477498870849342533651156650017075134098863510427627840306657520979359536248569343120350801505270047986974649850455052844427841311273933436539276556514507847275823227369924094521149543370241935020940942193320261179865422801126164631156208244727454490913122832805137199433449153593150210377424478285119713278771861965742851833187398476838816993704462804746019349083154648619470187726260758506944591542793586140875128489913039276909904726957094199466504307655621722489919764996259029585799435848484406764947342486003556998179700017405939930822058133126681594803284660254366367478395281941944810519023446188921610562273277630372228898818592283922968538384917044468854163226102408629130681134697779516446937533398007805110868550847283704127819402289767201916708758622738416298824186391144400874735548050830847785355713809201957203605519952877479158813692499324133652419679820340445950245965224677107655025381828158012018620872462408836065447749523284851714437903700109526358148092958000759791202822890004194472925201492674950326764329283353482329957482983265980066735839053633285924907899659497373217288772075253607636423923069005667683561084383093767528003838499582793493636242196699987426598127564546310658560191664478116215344831292547462594227703995147656699128358578302070526362789470013124931871214883902776140384748798135949330825745947649668274900869088158548801153156033579897749113514707362611636215780383933984176997446041657190233797947166538054547844429873412974312135207597722805001639543101414038940679174415060716014849991445413409627506163866717012610319302030982627291328103979663920122726150445087842390113097321107122860111257234092964464769620870026294872636033258254489185030429274538559011540695264894687068499710087779040928433004554674410211615543556813797875973529406644445728868415051900130487374326032291878699968314732046891590952454806442589119604390727743811758767499919858566029490703548957325055890183511660104038918131269612119891994204031308145088041348671005691635456909026205145342467938269422627326866460831229941680689177554311380280515214563713694092245195581271519621085763532916987439131243777037844368815799055127817536041061349361043389432372803107072715962517342516407790321592266373661371392781419562828798964802266121301995077377565156783339261051059872420001658959160603779735966514609098402655043830481853321659711312745511575685935762982611679819611186016208471610349634686457384900072630698335144305454227535839137270076630444723359247414113038397449078772720756058679889917331925291562366730848230674966552172741219047495544207052573151951639180097839084963007096711305759765714577063623400694822828094162104836004555798295841297675056279961129955632346227726405946609278884473798194861235279268865397748192245252738370203650671710279803104860467264950046693606915892626835312169649387721508834785819796029290559857991707914295330614630588471796147466006377384078094216794623167652496454748781298564279818447679981422990411000749593970679424375462789184563468053910218667632948768848031337140507500082349418331309575981056120839629453579880118146580952249943729332551857511571152317275578068010007238136355601251662484618113828186867303184649071608553282792416727710186923984953554118382529749287594022262877622538829452027435434355474724286269312283881445020987141257727378608577884231003869111064461233078728837950212232055386834980872551982501559537632644491228390499753149179586839782797218667339982276467359385695775145962162678922170974273628424362547057220492873903824993112070334698823419904884659251196794973930137599886952090123110653789891690372224703175216741159386595609230988021556238258440502039939827489025592048381098524709733533444516380411867727846555652910854762578621416804151749411015029337717861740545106688418137766981160323336838061328307495637155463299143319742808165970964038493713146026786204424698660083274851867189402839704975852030446334683067127436082040767410408713722458459920401131033842642321481276765185458610789241997640008309676067851565635636370276343636159796431357844110405548904458330423158804008737525355089496248135146220631902198722503996686515318746628261159733014846165343542723992780870066956471187502994052329235956824282736638166324118941119955961346282407383352607044378963716241039378456137096536153389302432503414439454115026443467993694931233239301130532625335290077358858651727432779027647368588181648571968514266634540820604538909232493585881193238234421053270522554014232566714412516177545810156323424877544435040432663305992290201450990954149732926107436932420135733124783388531372414250505485164034786171212722483661810544330195817335349680545175872694971616824776702679113428863845984224368229416175007940571308338777710233320070616707617245525314477441865043784933341449991359392780624321546229154928312173544055193266462185686072704185766056435192582059546868560866169138547433418371982640771976456385303189934763792881654181350653982891029605207174056025970468644979709300842061824121054343436315695452577044826211882870881150234229853936513939797990130416237099085034093791772684127318567930647957527694068583197971721985388026622785277085246800176251798577073032704723089973903942151545566580123400262313170186694613397492582805968639938235538898677541902551241568057091972254371548188124385743871365830024489213205311579305909688273987255839956715473924556937107827315643618521031143480709950508400827272304603201970223743491616445725685134475439727070765376341281755527376269582969905432511850871784219693590750977068902652856382733916159233862621692335471788793208314473439527828547694211420044209231901357709312780805221149603158022567669273716135636074102848768648576381794025735410451959306519841511010536527510382327712391004251221114274016738710114510059078656722764805031580972783290785849081648087048811474018790792532770084749018368521712139984816623506534509863780468719284723336950449851166413907342660710936636403707003865362967742272385839097678405775540351073150511652426794872368958546951063166364090076463079018210629783576996290825413810631422290137570652004224314374928711083729750412937416677775018800986750343112716401186189008871190187060667709603593725078085528615329688045808454908212329478150432160142985156674090682292342603986213733292058115862227514327691056370593862510276568682565173061261978269112116248774951854023483648322402553385083175168913347904277529509216146083420303329641292884429903586868232990352448640435369781998008974787374852094826517624046454688137146343381137326828653284741158325887021654953914370136588091840474892369720334279728684096746380332609317039912859400043956001792647165436963314775477361002282102004454212724822954634956886817808075284144577493758740139282867410375340136771314699635745251340432225624079559426672190353019561293514480821751317106841568479926381065696290621169578291917458596605696432508069240584215716946284166393357262807060890522920829750294342560609587758988387414034728532669044806627036631237924351983661305659515574216025474385809231067190919298894852413175613607329262808380906739372123258358841905939581807314168358731811507118201096228482364690498255117838925063809905393407272889416853647715350365329170622384638002541598536045072875570444435706401290671613773086317801354202677260280327327003587539608894389222250872913040357950648516074281907007394495223502549145354359028148069277661082146296869719061433941390451464076856553125398662329889751588509244027869602591079829191951440381750006019135062195462546229855339838663320940630242539732354011589863695446997102633141574500912526639524691014505231428070761284613070095090677748297691237182212197760343911814335351476023341067042573961836323871606713793201144130986849906374399094915285555184988477192911337713389547296569010481751159978789817484995033853545532925001404310807346497465785902537492937060270663644693024765959122445201927531512372203493231109406964289083935980185629172342384413917699972159453099128156759652625320734638445119688006646046416793880121535239277242747953252233344414914358472620721053886581155250681186945041137317343257583130741356637055543276767630340932264383347157094202560253046719429947833284957880231665753784048694647400891044479893832756416746683907377201417887903348088511840466794797970201105398852466217205547588873288833977534599515804666075175381074419933254619852325298120238986342684503614649167385240360305445099747038943883515520157833624110383226433882450272068049642851099790500399715178682702550494858166985743450061813779133539392773593653804035464077095868399631786425334549381483628481227137219165226618734755153417482325938999963440406797364305845079241692191280623707554611468764126847735967115817837360689586607960638791672283009077237657450766616304710596521153340436306625304493924333581840867060594589829777532860741731455091175175459715838660959410124442048681726179533863860972663598253498935950166153519692278740455648235399640095153410912160328986935763490318271960216981416986416944879315811099414429952394292271966473875835825152949650600598800734572930828652455822201901593036156575290291228868718780466608864128528265252742388075434350535932453264904482950763053656670530340664521676354102229863977018782751980769599033514270763899793421945312513982819830367928516774268203797421784932760841478927209137595441416900538082399207999069634376548724072396027413740343616927172011103236727252091593128809744385232433417330113110428701815111115782609896083001755397574017285207875451036919234516492363594246043727338182474014197328349915989912754313421030972248784897723229434560976247637959329931466138994882676395618737846802452774178946379572650338105072065916075098255993980798976360522428498216476867429867208568903953141897560629719469876873621633062844359923242458999197047901532135648573337506254689263572058213061425506897742647311829359907776021311400808287216784753276864646413199755509169329674544147025623648929569676599973091218518631192408795734980948013931829314459180815648438323869366937631493198152866522089911354836224093577730980297110772979301892762370623940801106000994178356735664556583474682549794316206075272952370803029088757909975884974503786328738882141034594549490350185060791205928142421270100836964186316805304785764156565377406372303920155835601342748001637998003506290976353602953781837055725915255817386103008967569283217487472780018711811953095225929179576614137571167826541468885125409591904741612879431218408695793390825823648761763328845700689328447191023508047604559820366699242927454962028560980894050017326227655329668879784797083859366177653137044300809077915448315636382592380682980546462251240627279085371129300206635533863792655278769279621628591392070812281174844987677003642111602558742105988775892609529609173576407372968607627797601244443611207546777018261884975277318690258583759309827850720312852995187635315585965117117435504282566310905767025722326315743562631478937392266353825352143626019106049477096315281121397170890215731367092903139109212667125922553812071971551514602907337681536624763690043179362937829950312973704321698937260362377234987975563124183992493266863493148741605762823951933453152218087073631681473318239715158028050473502693136853880245138500736884285699450579418467193145564880832975523208987441918739282542258261246901299337105904335200883454804103190292961979227979163424941208984087792585531234273465638170789436991440830708876978116372103801486870276850763132105628075419462236158385089306480813836560183604501213098464016583790336186222433604626959394283766241015782105443895502939750458404452607556923592767580229086907258172060282586923602321933706387523225399908128128361933374101956410363386727618071550340932060503196900997553577717685583168860612242043522875848311513674287909373333524282964795114555184340851267997792830959054412380490456111095766082293493664563572326909185686610007236497133884046932140434627712343745833008500945082138089536464970521456005191264085866365624071327966797264306427108592407916365703569686826040921068060427697398012745984936511304017219195869019699545207687846949743084251074684248598457590184813132391036226956805091675132466761720381620003527482755015775740614993345471688111993808637649905286229096115075098481949301702414229243725864843392918191316431112690863779411472735955910992573406250739685667945540025167537255340735286406121967576593513683490413603991596037398473891459322742168690188082360403974914584641944522138183598006921121409625517278271384504200137623044035327690430591860989853869554228387939514785001692540190032124126927426271392808862943304581654887254698804397690204367362917696689118364989075515093863760289590127582690450532367716479012693409778152162178666646442187025908504020476768497194782375688459384036437651891740071385879924155788236086774555800630358560925252936258479020136264403953857557602156835239612667002175119183345763314799674754802996539495257809744292112789140769839072145097809653481271975812203712603229367219884445638880544409154474199644885676488140002724622144574921325883229902666207785863167477492330802398202128439725407238015663112576322433051113255213351279234412156209950727347270726375614223372227248827335660206533963810122438048989023022473667655878073078506693074607395652168032243815046127298413236773642587158581147565243901734826051292287819345424032910096783922986913170429343105759903157878025046493487117036752709746809042298920045209959951133439070179846552357950278258442977951831917289876773658115190556175865776242071883797124473108795122254951440709589464542597451882974190458233968222762280855518184106434752096451953126198784838450231872391119512111903211672229216115557000317527270871902378509446240578694800763353297319157189182040175193089970513487458398630139653215710898005257774243020894626596877650692202512079089759347461722032836110217951640384267181054173622039866446371128646888084667346309262386962928129068333305619486814360125818579670453770766914652513930130282088524711931593147616384242959334616237926727008855383911110914184973978441909909836943550969545030585095300904118393406549859520597011071035297128418895474248363994581521385008605543287212805695878437471440676521658580004957049042912421503389272842635960219143356249392683823493339426418200143688200988338836858263332136269382413591236128911741995763191995986779390147593107411665454479596149449841904882878170021716377903637650468324458558747865126321916842363087376970361409465867339079242600831626720425915322305497708421849189151803008527723585064909319968896232164691955635419054287910447226036662229890921091686722117052154292032801730509484262786382514586448052611328115031793914349555600270077925897212869873895190056119019247504665171216232620522215154674331598011916705810588880914803796452072780279415658940938996032689331135578150335220904722962340931320696906587280218096655229101836053673067812741754769755556110508254299955986982761035266730624382536284277151085918937814845284055977801566362412664909371706721722211643627106823517418613630631880045954562121507136150689131229243740712241380725564704560539117310510598847144287389481449722325564294823929878768852927258469104571671413625948392315230970567702840275410019013944407231627805261707569160873597184159651054938611631268696939246890583947561066501094264955582133685331188689579544826425243265889154372374728746896160048632046407372818442982091864714038898062839397704347305641297306865662083669192037094476269514478808019641719638950872189987803385503718043356491857648979757494390475648747435112479948537052640594505852790708783170103415696670865493918816001922683933206987298912442904987270581344213264628124015734569280322212446524777465555215870230212123991177044130928191483497955310474534345204994252478529410578551232852314733091288658832443715208198643372623819103032335364629377854102250690872925456882775557490841420352932630489258893858089599243096860118288311416957857835400330845561802921032072229474383806232237830401842645763137455014355030415927012950374950051837204312564282811243109561846307705923828841406167393538752118814058448168171324908437258873028952630639617508080699299150832659023281414860368492060986426128682654213749709659745721439018007244584064884208148490323216367627766976924502261737826383658233641916190776627749608579512858608528369770813033812559883006781489848432587851373786605607715217085678233810077332180087468920243846461970377908521516141900067549950552662169879714933583470155633957267352831121729300969484767007309843135802766396590409445247554714529841092562253016848362239172183171096174803170137774909872231467826903213250136265240554954542750174236665853256692866039481288512253704323973136312471043624773088968664885122289117726240147228231359666838646853049001455533637042907601692853436226645352150985317321529584068124687071797620969760396517997777729217450664913145634382872573938478306531948645185733451388271209680498818291306631786855876374903379730784674950397615648303514460842203608444617514798025909668317543643357295879126110459401592523805044699014552714193648905748656745278721265648254242643713094141916290972509542353919114562359707811590708877090219592222186700789014861917218931171388762601019806703760768946258424072435252942240658670895332877769069518342936959723831195193950589213412272358072021178349956256785007524943757186009276941747921368769764310347268829767156029263437107384444153309280082640489541891464693592045058051892937863803530031412208339175637912353695180503327954197892402768042695884116582204566783275652508016713032576985969414197599744048220297523216307158552675890646738852777769186788818090854577954421268358684943883238640162643049901985369177490275704850676026108773776787793950301427518090238054014386215248279125417771817988755630120406545402039603177156042676143717316765947104276260799577605527161375402357672270347407908113444258056460705412717395961623232204159807931175860137182108302346181032498342255107412312696666645997330240729392760561285768474650339004238250434771220258567061668735407640321220983568182448245984927908450617886658728046011313081759874641605806240875851782317523353463560248894655873685005282108348672343523927135980865424484764194701441154956179233795456699026599022500181639910044284931417129720456035364030603285884498323625723329767104351788281207935472216766724937264194800899276295967427374909810058907063083197052089389109945128155772842169983958927755518858818860841177451876549523753148777979867746597403858009501050673013306403823666966655665264857511226595927249300186898010187904778565533467208907074218523973792799847848582944274531941188897099421298622761414646953833688295036726907641037164404227477401525169630049933037460087118183672599393857116830887960321171425397618704671181321416249174784920233119078216361456904194458435398725196685930689001974597547140981453056520610089832809106106169518024621041827939801356658587360470001658288726288963034806509972343744887258248557364725175005393815338516046352814082876842659304952954203919246021497779727318197918501954827789836100319366550461346208355729102578454450301750427302525805303659156095503611491856211452126706477534954730242493409575342418514887144972300679611136766877272263517954243781545524701090168554314727955665512380987496686972870016183794034569462086044204327603921223932171294186269984403536454344836971013076418593542504150450085754329834138006355271783251808132902987875952723084224618795443025663579515754090758684785214129815657528724294466259658217713167099338357383398367542208761130726062984968309542955030435293547720856761439453494834860645443312083967516124151253757926318277811708751228674768152473067232989787071714548113772215305122864855391388039855960253058290418772855308742809295821026727137211148068868036034274657189078987276673840990663912126171171048352119063940974791478464559874237901746601035988483230145703080968803688157305593174799692647961966155478506815271127805881572407778093425648896780837753020337339021868885413064544013840109517260804460455310028911291785445454074134708827635164984108774950075180074827952120930689759755737654212279552147248622750389384056800200404591437980095271562661077930588511983759889893573246860549361547589788291048773964291393260827427225786709793437969115038120375336435576260293448695854188611962254737880299704381688440032340405126585350050156376509573269208624803371377627359272742617660014735382726678335090396795835177720348641204175142845071875724378191343223088747331970983932295914630737398599957449665664164292256330811587382243940501209875251767888395793771634748474307767337249422735364379482179637607525472930090513567010958525982771721156801291812973473460083291838285685702724845825934755970421253472607515477642296312578813045017183636209765194219778572871460124907648098377121343052498454067095346212251755215784632468697612676042821047449254786063377435966659128970216901144184294748529195393695578394176933039770806823235505314909262221917141613616239958152840316891668543353484203916558257968665732845394925345264741037485726854561302635826203734721988085844013549935307035105190326625262768697929765881929489018330558166386585229475244163500894064947141135735758379646435931159114834942069575747317055435738995229819809621234204515274069817973837824649726674523434251507431171450085834316345098805459216359311369667654726829980990409518524010082296635724570295192967774086461953302696317156679956593093350838114982565575063112927594754571827347891664774052962910583898975639318384900798632965245544580032856517938764823800576849556069300315932743084500585802982169682250263192812152848442166277273196874531195998557801467341020409218629802374129905187142300888623808272551666935357093988189553313677954680433763180214536468039657551415662914161795459965830412796409745901156720833030029643460092366025206318689777073880187354342486627616354782422088362446009483749296456212807368767316277537053311716070207253584892889635873068249588859012929424421704493602138920825368087530488312413780814549457123897047344977989200798434343243074855974616585129066080043765568968038705747534058240366476349916067428414010768413046240730531277819019338253078674457409966101803785280477202619735741018559320894619760863913408784579009170747850897153466874084347482484876968752542195840675620558314734940588028846937012117330620748736488612601850700680467578420363428176827704514995587406062009825427124042806429168387703840560811658922213651803258824931930451340947303494223292168420918546492810091173766740522602632026965496114258598616039411603443324861014965695004712278025003329335880302890917290961648073770595169309455356470493739874241002393817402769059500925044643687929185516610769494832357309741994902853481769449925624532084401767219409470790022707664756396524195992187084633854243941313432047837914927328129106694170708094970489638098897532343625839555455191307755003982088063032639895713103122122135041425743394743904337752651906758904021753470558744089317459891260547261473799657618260405358426781022192445694691855918040022719760157564561764147644790154590828066420150294786539676479239085679661262431237037504384469766801562700206637769408014749091334454446322631568501416334780188318648091968378546755077789889916479012639016420881932110407296106380432095663553281094372078663484970616094201358132350940497429804005812315811000699930982587383655758107579481660897552386406500492311711447850553927383142189222018062493038951080829461593554961652692176791961018439633790997875625861321139029084126842019149629496017025727967686192209210750855292781562448389849304385892646360440892704143120649899968172520749196815303369455746236637500800238996401104380934510586531936476658627903421099317487051558109879543808584396820010820404516796406689265734232500678333412987557245526436012218600120822504658516258704961009483809042397450848265583611744495760853071272046377945913526659960095109390234317145641478513473905097126407883063353515139086709657516324787025577464500121201936912630824301213358994116688148642450621893106448982329685187361356044919806524150678064312253531697337426899239123741214132958302126311346110230613203662975065710117446756867768775904787888691878071593653285997163785694677738294338991789906991702282404047795338106686658975694357206924464614400877190144171110685108053321914369580434207785123125328306312805205026475149115654647715593030394492296288513159369760996738198979937523547871881984145289243391771550975871236714958712385052619242537326614123325089750999644992358680351216156778244560641806097646057098243200193671889137065603357633314976001775135604507093996700853637515724903369641295466996511169754810204290274170947243028879653125499518042614530335559364230821107027728775280970441383500088518998390196334045947806229743450132480954605428629708536487096907312502770049510473016240131335846882796277098284359772176734518655013770722193758814210402698645370176659050292946565650872307779450701020034324404926166992544789978219932126885827368847968710186090526903748491425613772339011037710403926410697982564629674788649027476823954250084139466302342989720844545678150900145128285319129874282706729755550417685823378198900625674696410865655368829968142201826406723626406084084437639424345563431542465305303324842822265993393317800960518487166019824307904729808367897062649156115118095397701231168779821100134265476798502514918811853813080814095992307915005874427679555808150012284226419798435686562724519711385288951338072832084350752925503071445305777296215866262300820351034819461946418673930101010220447156819254333289949341519241232189063899041434142444011732185575407445292209573242980131887743049576163290606135645896960631849086046788318196554300205272689013198970171873629591713129656631874245449514360966656978396045888951138640379623513151311605635544398631591156283865094313944598547686973121967710635544697188805747577702040985190491445630085803725592680422862769031036284437961130541893507111860898298921321623325880880920859246652072690961600969705521936883968202090546502939344729487681296454970947986263583722679529147195215587572820053381355149653565345619900866265088581848371022887984276881948150098199496160910247594578312588727261075822890695460531888785320785572779761299963806499716937273602301107013789045719199379274271043850922611338570305087278798107901709206045889335748481672505351287520436460755392372121222996844369525327539296720739286301910335488350989759654679905492692789534684299781944617789948495215627575625744185918429934665550756928636788250807554658871842030234122787449588268216385885330044389433493337493979904353505463666887119808232128221706370704785349360103703152056526166840778070910944911349360814243847611190618520853556109380759992347293674244627677380278735986501123864749147970390309740391386903441345774712419842703134811866501345273126861353187101248243952089142510725836763346254172213740517613343944258399613255489216504289669825957464566283797318484759717471079950838926054601341944431336747919852515468941139979234391432514367715193854452657044893829195684526469384624921524970715373398818708497932549837088132264597756656342236011583556145895160868450946622971593835407919157430873481887571679202421588729255449568693104857697110081028274941458757406524274703701759044521727954336082433859837162034589151321040791127575876383934288654848303543964098162597249088427118423465375872054534337692085874461084961613300049384574986684050162940857616583778115551042949674880873998737494938896239373383120588454427684088847053448927074490240916113910724640437839938447670542247686196821324504841792172652071248253980745022017287650747275235235557820328784054381942198701806757868411307785137601947915792396479982021732717372536870260210743880987879858599769346362478686272875757561303908413677007758259283156533528512168512343733504577277740202072381198917827472097611457941763113686514974665622234479982963232595602128241960413973070365080156076729420592796869899262776662264605945749791792748986265007565280066310475295593337865581174660102820633851485087114619575385998768153112754733578762079091293686409613974059950324730851968819196606901909374587062315319552204131917148838942802272584696873678944574285591720640278393417882268627420285810824898830483656831879257773807959446539285839418241783856398249761874039813881154456733626269073680528084676366147728410744213067702698610651294738310907511347775768703878181573824295077386661680630099765718760476821041846982124184492910424829050027483341980105124416665265949596988431203185158778554070911668246983284530572746725812105372426709592401833078785476958161400045542663655977259094768250174097225869510082036167041894317967989653004413552573439845860580411212989226930641062612232197846620760640364229583492429829458800199491090340920412933091453781583252867235446099504193951319044468897601899589863038876656318828399457144538801321368843090197051570365573311220583492088976186182900835571175599286902647029740618098335364483238475526509093253231964549785595537821916521311027014204766144706577793135429025209992798791483076419595248417661144020936102428390519025333043032157357450702916428640142757766056348261707467382051281968093175424557518738102122910139592287354492170506855731294893481676817878300819376140665320644177674960695253792887284859904187753590479390318884682076546319712066092315394269690303036332160334147359451548132628012488434346100433089080880977325432114664431635807293193330869728261827154849016633827261393154199567670554975438246943502683603574144675613615959124805199613793161639164375634519100193981708403779119815684095648703072334687314252664534656910967425057240996672486182049560165589449415105198885032558192879929508921542924324330670647865594928235118336627149679411051715310057915682118052949031930468513987709032261973868168054414660630439937989148015885042062443393808623468836279710499048420341614659508764331006059747452085144329625862270868356865565270519515077196339712438360332834589464218635471623464444078165764550741058295649124532448858876627586984824869781661863050660195654581820829710993612632155334018030380723204820977156482624302449940180621578796366955856993464165903837041336441555973569775589278675054314620030165408668686256372361904340078678699241374760208037551229843149256842284240713004840437344767302230124074012482286684599024923682328295759751617552639352756159713795565051592842579513660633031493653340046099876541145225109372757205003201780322543061033472846584947934182271318342185318167490386867470999278860502773182926979162962380143682920942028949711685250060267264446141128953798332472560348011170605298006506020552345323699283786709832709678012740619183106417659244889071999769141835558998416106831269549580069782835026190525945129837925933375176222305571744087947801308069933105462360617087299871346194329185254760700700036905891451451514988521132935463399474194378607309563619244091991777496713872287284922171574172672466893566741192389538144938846595338789840629015733061431437414346519755952842172179306905963459686949146671865341355132010409717702954923579734517101968913387296295981171654579767346834738556800788214014841676541803498346899245169793126448213189223024963737307445110069092839899411116767149130447487890115846636303269593245330110328765186287156967154221355741957345982906914079215739455691067687689829742718924946217895457785270897070333658567889199695933840175561012507873390130158733915285429123726881334203202801149628531725281216832020323130829282508525155191044124353390019784808142169148277457310872877919444872709205735355618336403151827301419469724494382461795607312054763644586163784336346363873230218047511899717663056797131631024797606415008931808511592770031253722908087495724978451145493160738109656510826342986444113252373462702211172389729063119071338626407668576632148492237722657310249643398920985945120755108642825285469304033468804956233790113646966889451101608985661635564388816981343858295816912167144376890592924012525178291230439800873887726690079458519068017441861593328421420434542701813848204417679140205820498356058013040745598303274989962834207213790472793268431611524703222754789132545875110269799641180250380652398391411936256308460915494541300738712203752919210922034739950063529766976536882698077536432694589651048404301733253690027324317552353347593727550034554514812734121225434586505421305058684833196098610667725438601884161908006645155172914133521685354028158170242538471783945207976816660518052631356982665929631854284781282979872939034829494304065384415363802497515526815568150983308424227297769992325177136478235203050057172460738824261415756390885434096208014800098877616803596127079114521368628027241771005316407643263904468972897066435027122213021795866566459149718622818628177102005360059279658767460423055200972628625622079110313496844428393968161086021058540184877233641692703934178253622604354150164930293428465160100892192411209618987454198419418976842669830173244715529103040765381055390411390029535369768370499667520578899577331212447601198922747092366739604356498963707661389147699236624774008988855595941631586186779575011802453601684708586327231372215989775100157544320596005447338513403198807186792230343124214302812105385533292022183638407595586873235409602762565007395031050388347443583081783227275456404825769141495806007695502182061541105407050630695128638967003413192644673343740276595624970139266292923349266598811209082477717482488420617283437093752515173749239563005420437920208345547466164150979429708821677438614036253130833521488335309499330891197823060069882432893542812524037863084574673341241736282727791049736592680683930978002523213541904776449637902084005751736606430406459835385577686433477007070860071436111500591568610936637622869636551221181486670059475472204856730913168525781815100646646891081555325291712236601346768213639567903644802699181685638010246329856056549807874981021662617654877028501410633510480811889445887982943374915921598469863611907926894451268758294587802994273124580216596850254524819184587492666226803815518769201289452514344020268893645755018302889947191034353521080889553062472033059779043244938588013702119930223424892916986570350105603123436530242753289190980652957632548871446000943790506144103180245571474523159657321806022383033398594740849451858326990119723838520017417839803179641127523917853917011556866577338729461662099487193042507771736082912839125687522824247107126570252174507337132843295475865457180504131154517855167706208839298179765759098089316529378000243447959646016478799879265573705091691397378700635917955789067262879044613089158150847046801045241088213246722568171045181800796363552100845496248176536057223208554444673885952323160337094239330066716513250574312911082307379306658993277845344915533206997823917891247719228146230937755691689056669012777024486282860149545722972493268020303778542716805559093574574817480046035742211921924909653540026466552012115594752650356379917485308171586729166421499919396284427480983382848036965213157918153296740017427919899777011272165171172531107813082847799993289747373087019899679327994114007929213497271962296322666517407504250769419583567889923766565327456877359158397910340752675274631305016182906764385106384450146079501551944462281534227533522457325651080267823596425776540241668686902823874817151269035451638868359931646237287505038372736065255421427109143134414009408676940071103868664433595174102587785701048666227957275047138414025511901473367255818169986899224993235827962673965172372704589993395701531961289191668992122714981996823182203788679898389623032185784519813316859215838605152537202503698498181564648145513260176306306585820058615258426033672353072636420182266644366873528724776427404969234741390385099449227739174583024973573581662347028496808253249491011342021944299101254106366579371708827640261548688844402016273141882527187756731681794478001317811142669129572084850385697535096014905916635292288620841469967252593437061516082933419625933408000535552580706305482009867666100257420424693636735992450843502927974631998481046372863364722249802380328297214829518679574106375760986060225732552565949991008239710730061513767375486962998862009045016518360284647584303174389919373989846023953277752577370711366733014034732928371871917005983698175834206537001755189407295689543880786959686528023004775802405318093774401425482759996847549305630309665306708901562378055891421112560942294732205083930696994553016151879592275501663578979200324572085785392301357251377775387696034850929181564981368337597212614260053454325360246701570876957019621778973971011643006212904163233746180563212528122961765358062572075568688237473614515876165132920219214790289309824825196524156548262581940768720574917747086992259677435080843201631671669859585737002599365152461218289357277182338874652303739205538027227853833672521749292816544898913469146124956690629861018961334583640216470914441893942886036225978761597922680549731298872611004951233466783280937422657585005195905133477984600463539268112367811966114487932187836300862115195162355650054382822896035304534896493820642291075040048159783891350591445382756139115280628441326499824783360578963150399063639926045136868221906323289490237803177504650115116351300734542857606082741078427744101870820673692696087366370049457688237426510147202876971958207777650810846074313781567445109441436308105696801557317401081010014070514228097848017267874069104360694199104013239211231004319936785623334712676540575599556283781190781531936638911520109181376517922200500530947053935273452842809482641687066134710007668027774997250078723229466622106818856977209509881050741397340091691236240709426487923041606926774066809833906487475586093879844623883586366654994794045394153925097706296244708531707133571543239720075795088044739308647271628463568652900328883470237299951770346292086638661833105470819157340610808520502956803475095104695390889883569500117017252187119890531569352940311146276749226674119559995256296218161983273291899473402196920548475468905306074424955975788449919152207490838086536981573880802817892335987595850332540198307899316799767507580755213154604055826739336993601101153022446275589126730298233644379914916200598128921404438645239733112106885847382560335199172042673936543713196914309250499637199956117582503014481564210122720924840282444929319295489874629283843125761775051020314218966281467507888142512446572421457884931083200644410511911716073997613218359172139603863313909627365529322234979420543884940852297510689031522033538655799394487209525084026870276427977051057290359418071802917153782171680217094771485834222630432835209918492560855080527267074940277519916868481456354103770663192411709142013195976720743999463334368046813366841903838845504987713710373523541579744327760620259238955781963716583424136652485234051213762546291371304157612451376862751326205131924698702693285239668051100048759376378903965577020271998300843013186816600586704860565640406331449046725708061461260111788062052503401854780850458482237834738827409248406419886235126202276231447969116094470174015192492510088018908580005149542295926557305490304579226017162122136608154074969726044021876488105454959779933481803355272328068769896510284388128062720481972123703382596833259814949842736562060359822562884809470680444685416149975426968158784785414864747006937564039915353394354992479244867553310777044647147531704636819490658005733456868845975936906505719020538224766904777926693643265645234133664055332957502299479674368424664755281650921970142297420439446205067935490539415497521615313307764976704258448315149983500358588328858522869610733222874061189832290705855361828511645652725895716995003430860281916692865208522751335168823514773419641624866292783517918223605873138935768338503183768020310421944283881072315400324677961411326175439348329289310911697012749732792737083937687705489957056381079639316339447912179157244485105173741995801269299052511196354163147687819870399397035263118935697566144065090803565951161832654802898343101345780620309473014550595822326714689695092776185343486800634289534611852159928338245976316729155493495244538077135979574592198441915993727491947853081633641320753142411647879643954932762755103609448137042016630103635626293155978543861493062063083374127861884797012984329221678182948699912550229856694221796077011225316483677890304717911790533497499960736729076074607376570557422114087437476580972693355089391027719180923982144368670849413725062170663057119781840055632175732298928597672434122131002297759913480608124444463434373523149676809058110713621450205210557223847359472439946157391795108608660382281236688141846384319071517230145582772260364709421362181465438471088422917928802924481846766371287846708963545498054633331762780576522378512327312662836499935653503617966533420243595963752320445175842200322757035593750663157055636507227306237342770250995576630752568918301629338470887737981136019818863155762480097765969260371785963334273795579226803866906095216938486316976119871358005643262774546950538464823193621053314685220527215238170543984656571689543110852541933746144032078197212977411296548171692718085514352196613923200928841204045194626428431792643952449354800908336247454194387850222084217766120092626913612673963271362567425272828504654016797381421544269577585377300671798289560342271338784893464102556146524689265125912556204376559892499949087311070284215525783574664704171224483199210406644812305704031267229755496382266492988781237623424576991236182315915811977864021996207349579974387312538015275600179321811752633952194212996015769205910591761736251393106435459899670784864752325990729736571393889631917795081804944360153833449957247966983438811355558844858380559654837325259298541767506826248306262389262364713921119459405994290020974146936957745676552460101940538444413528495095150966300055574213089956754448168818485873984173905109827117211517087290296908466441937517187402556253102210291149583277897188131230769902477106137617061497310413698981407506502527488963622240858405366481307924754295603628667691911552033965458581647493689381469666104426481917094934769975127638962272794553703016000572510931894623346586208880085709702600195358245823211281554024077266433985044217898625852462684826809368359340886170373882035166761616662948297676870172216652041523846685585193208234501039005782628680938068381077399082901021301609393282531810512010993712816679348121717513498724963162758068748177197918854816918482641409724948439427407680030502673269356770415827164414802281052474231942312036730896201002500355802160845281448431653904388371259886551647108165747737417926333646087611607903415823328426063442163691379842625109134363636574464888898772328345303761793535959113509166211337699937472514354735277759526245139646393211127639847874637741160388770336678347154608958371661173597535563233971235060220764575891396944365284262762945587664769961797604584459072524606755678839579133047690876598946646842956894772640801800385729290098645209633895173282746418350213856750838117102200715808842546442802603461584368406699909843967525193385979326417135986175470890269893116165344384034351350645973698783047077022645186522802409276248134966902744801928047601865026577886287073361437247052493526062865560178490759113905784122676076123713430244547736421421854403849060226247554384447023111389103975347787670570680841061037394383383215334407931566083695522288500745508494685223813894730261060909158684163118014274921340498380217958301514427002127931922960095346187724487545607683414414670704480643154263309559732789411143062414317684287158174867299259081317519053863473058460678409403050869804790557059356330698839376428305966128232759085643598245454021939451801435692564791012861825637197634661117908685423880950658183481542420967966345404578625403991946108779649287202335123022232750760906319642506199875414524008562297430370225516054374479668261596960939469201239411418628066558366433763693636920799475711518077530232032320793818381380154859967918690785115409985911524937348818435331647439960233458079928519034683066972438381283745628932347165474101890318832398136912306412505057582389782969621661365349196833076897251483305892159286720561163936014547259171854702321409387662682991057812444534211473548686440162543187994448170067801425365167084336924077192856316762072976983272405121798983296769545189036935811557096734223202138230605052481160452116571312517328331283998477439165732235693883147337828412255035234650555949764979569211182849931239055165711112900905786168664500953625340994618517628107314730620343333504278763596882458803926526517732264361470464699311911771195757428425028229033817137424565282491789150711194519604854164552576685551731769900643431763370281254884670614849488013018806698074253533855427365829409905653023187117321516160047050313683752877603919316863953155190041321299950075825670148401203046023185468387274861022541171135708762701713841945708928343513774404296647238261210501375099883155392666690534213486438498938599371267689952342086365096832684537935111713392521366557776586593768686889105315739824182968769628236555588623868302349000803753333039767274842403595732235001781924770418114837873498085889439634123200585644010591500526485417189252242969378339437496349021331411195876649583928726754455381005891723688430730608763159567593529787201500386306590816231602503813556751996734955587520012308808258683375637446768995793418668716075181824657717447161915615992198742637131034546095288739200552941839304125065691778022339007253634528768840829208159236547446935426958011468638269403873668517174417749182868673003053532169650197836496336818004237853073022116556969124636919365932020156080581325150116473525843342087742256408676071804559242428097772859699507913345537039179860576422198259095578958494141700340751489648328486324811958725659652445135230165810195696391381073612020992267057293559888211192613417861920173464517167705557562611170741687349622615097548297783366818538588603569964756495081032739452828528135335533476178147408105685990319429097097143924750905551980214561700561112344215971305073379485031699919686637058233371519703243294758579155790113799216133716765055674457653252343374819317016408894544286572948128989809596427263002454491897023166130331743798728591332805667590134861387096776384439079335329287139713470373173358248547035913469609826721531750015265194812182973120386112144777493184676027262041915127414069795492900571449220436430782519062684085507796301790515074593773864749203329804759804685825931880274175667103817736735415177626674431637460938814357369987658939321972953122459790480977486581657414051359325788911137673661573120794961664952608377640431411820074939387744441488095168129408431994568653438017679084481477047235868286677734465284669700108010689540123653475317070293181502475754559415705697054455967520486108121380561706071905279566791156162420028527447495919613925126748605101966328566773646396200235298245539759794718034548434678690157059714238322555225565528375699633840297353137315505300093801065921334448400621240178844071320638914039994696199514320733315097430995191951512650136561050862023283294718014597003379271482485417582590520373252530080767009564109018889915443152804827491436681864359521018513774438920362610852655386147944038690936750835309313899133090201192101887102417628904512196733812555803137073887803388765437395006458136666903346324699123852934469324427150036435307610098318814387410620556027259182121490604555953438256164784109440239417892550636074745906349586056298788281044946187467273662408396088731957729559949924706543790562647888308465266696819362801242414538901503155865576762533610051290821530808742463597594747763372288433360911992151204056953705187129382964259261035968205504830640816743136310394034507543748807964357610726784950483984546332410776738556268178183132786036805678797876607385083874863104842380755314240570322126426004410537923431800286008226188967993776115510962537447690972431292180094600967986200718834438809906400894757496505180738043735189211245411916600116468941732414697713916236035081624435799209382969501153618607364900938722872858963440290581278976594920466613841114973857465211716832135299763444213179180679982792256849668112897896053968882884094070889100083255212013391730094030718940985199652046601906425002776413240035816625945385081778871925886824278971480698401190479338381016117579036635164413668754662690948608913063713222825342654846657867304503981507984317907267988926361421007098463553722633282370219137881429771970302252842922527113343933917309872356188277812265274230739007487969736175014921704508510060605017887575427690476563009333461505701639499766746722107414520533247776501297633684331454904734512217358498628643953702889364217524708023946085144846169306106991827770589446381272939688511207403460549916110953820756181089070246454487045988857005605427169040606067174655128782991297749050606149895988347783175699261179148399290314521541451257746322832265611533790357470599347845020610058730140065161254091897330432898388900202886106289473535774830777726768873506936659988775525650396972342741702182049540214128986505513755716285942938614234425041472909890595161999209936165786952729019349828416077097580692498629458288578514196943969336247360917642772814460011988951600745617868180537297838350890698484293218056442295403341915008420171876450956217541037783892859608765883106954690252417250659010913728078945754160022620281905013888950915552780763534162719188944025465874821655218583707462150076023041354130014480517220186929173648700887553048959924819655394347276500373801894426833084807935878761175051931769626298248984133467753544986485021731918033860611688187882853776982896540647055912399161297855831708537027459155228151751438445794644805490838538948671229799142185332732206178200684549867679216096930042888300963599589499956137900103637752914542768936059659805228340393160572253556471464854560339814262416284127382428504843666658028792766865635941890324595638670553486324886905373709553866157094857140438372163260249853840688582976790414827416166727866432632207479497742351377931170740603592597936150372883478331722800491016567114906587930335013019297559117148083446876946206565947986075355566408199159058762989165484686514831048109182323454389713076451690309684861833267624661576561824880162778288154790322747634875605420706495405225400801429789104168611311362570723325357902917871428338220310376158660953663238427360385658464257652228645428899734762172688239898069851985704336519935794399243188726801711241104726424688823895544182161264738011026199419301797064926533767335477397361233542316411829748461124690569690119945356816143487597146222175726959873701935425590482085964023934427114712462337966206588246625754231978399328913978620229602835266034765218425678341734961111696596326997436124411835635504462518399731324571785607514471217989142215221262236340085398418674519428002596964744034334762830551769509235189423051952433749439359657768414873130567815745277635189063952873362159298172646224055191780289735524979713221401604863684569710532282573416746506634305281584606178092863004000812755717785666300409311077960389375129014232375189258848911696147407377778312304131131567891788667619196010979329134099154048687844056334225540271416614632724425292603537211747471205936436551853363758257678894185255532453060246546922693690075209409705916291630340362040637077353154491670463533424904692467408972738105360476157311798622806128077645599608958156740108044228820643275433361095049233321801535653312681785991986115207916784548143083948966705837748617231754647454273698540396234096083294254868499871744762718690205888160392637754863564985662458791032328477680749045517602105596152111300997057476352744943970113663367182218644089372523334071296164605289586773642042631438748400609484197140880765448699685853810030162983680915301974987992176080430143723685674170692993919760256532030495500328934383449540070393782895037466842222982833053313353340221465580037307494454897835993877966622165152080365511568630457417616117817844580029640382189289178756206197269760584345285191107506105175271134548458427628954568738768712080300975580573762055790948869769123680993320111001539953144782907462409287766068348202020749260588061436349450331467981249361481419304687547830158666199445395925512493972388269155816546678319982296368580086373810040708555033690052919627760654954607701181695137440336371907978117018265051180370667875951280278641053239766451802110038135903785083490931851347309744300796228825554257255164509922942728168636928464964065755289180050585765571428677356650507936246719646438292955864020904567504108587743785625724012495720053346687145438438898671393770981510801357513308142116507337099644999876605497650448827801761075761144588653196131068522723924131362902269650034905873241526765562915102881463551877542823009817678438083257100017301691798402699759594785611076367892635997381158268771548608695595682252767641521586572037213690029716347973521630369040085554339485614577811278792975989131596957282293414106499622560933961842856494681311796104824068488533753638193396190384419569250478274772215259739419760339564734693633676419384763647010966562248522465399241894282547497605166054004264406010381484505286975449583588910899675063258946347822177412724999581189943595539484543374687776785171465217474616040954695722762900133889121265453392735275363788344801480985240871829962853984293006185950298663945735521065227521598411769907577328371958612463712244126949242632686602391247761674780748767812061864167861599429129798599059321011139246203786290390039756298147148738904763476076392238162860282187259561647463843599840528316845454524421728382637168117500684435240097931347482607627652170617956414323334517364036559245922903181166728756667530734406258010455136582158589031664012736007077197184826260960498959541869002813973580680121311358749737770002982171342874070208411308352964427157954153373000658141466285153740991648368079152435360715301252702037353170140788340474359496235721942983225272874511205451213232759046213525260496251477899436376185013257908626720847756517885953295729575157285854307531856122968274898241123329438068820096070010269115976651312170796847105525403271247297144111969602508080571594334500210296091653405250397291026507296054601959116605131712863580417014957778340916940759242242488626628764337460328874201709502379688652724833628737814354453260999979854067936602182183555232990442041204442932377836904986564669832979166622009835750938858356511122657098326738047091987450267755778539824296874841623836512465282234209580697840192786957345241210838277261036498791425655182616222397740357489669095905468525003212028368841690415277377772761761659294635870546777102817120485196906555631873875793737714181299020686359040011165249512716158832300873947488145986525705315594832926101429068165241948551018779479968983588583150512977948166540530369178213415877088185025061827042585592864355933665867345648412358408524160874244050282406413318649430703018615227769849195441119883513816413939736057035211391637831414318524651489386344539837428749567864959716151142833934681553562283226253241218365570128182911552382419052502122519064527952508980482960139002131983774079204786303220976654988208463645240739779255407257408030237550468782342525717141051531572782166401030634557371969661378773943835416066866980883067078929236261439370903971519720655837844728563799862216369722685612978997236406475689372151051829074384877209385874712668288498183286096374218667212314143484811161154604693425875960586375579557921064392789060141790133511979719387488148699489867995436811558163707245726191560666591578901353873684197887095007687528853310337945336389750290657644709358545945936667919825646430189276339317628958801398402023157139834206695121911800569504170447089322965402515485279483369225988389559133270837963079948343034805378506385095527179704166808392786693558045988370678674953978578547615959184723910138543191320668374265309348370824918495173358599071775819716513878887791934085010332054196607520116017278457622045318308832048526865198081558188346008039068635944410315862104411335332775791756300746634512359187200883677965324263254494109298113615825296580206499285514793455071471455316914618765414477113716578657008587291286305174845246549397258956526310912763565028856872711665276710875652295865637935780843410187287463884559274274938427817817857937426876993645555553120103440966874039390321929404226434582296727996459222687742694865200800329792243007501929584791356646636494040303511483594567475726956951541860525200976979358628411440552042050994257841018790410622710033028014571830235705868896636330098747075863036739382411297721614806047325935667578880628288718153276694647029854017440369217641574808169678875911678276967319138481695697476591818231596036726876753953355513685431575772118250502146459802603619756364275202907157024665641530283941960607465804800216619498585471099971413494491405116765842046304700933391490894621857162409791499846821039689665995650805342922888525059247537261229896807843734681883629559915255872880799082802284973648738674720566459553946334465317390897351104879103666643736467041852186580941911627157587944271143292719841414686576851480745952853252701174304884837517341669310786843143337551495087578505109952573913850507784847533051282713110719002965803408274653827992383302179172865117864099286160030982405599598776209670139838488874342649660297460839193568498357954629950421492066974608427799574116353475344471817330276967422150315971006764833232192595042470504376803477706963233687530865836396196971325559963228660066977926438604848924384082696216540023239449745857436263818063238125253550121036939966242399870823941827474589958350505019179385778604936794779562367099817064699619875645248145704670392467245558075588903656427203222885828662825042459262100821438136257441110758769203843034418549106178988314462680690952469098876770904775869610363026759233842288838733412394103983445237542991872026090725959648033182616880759277818089062232200630084335924957098555575647743284977080554830885259124291444863759911448290846355726133813408120727284387702043986905311845010081692049577549900845703079515214592513630803204769618601357057934032939315887028653134417205959255561210238553464218897637079631921327743161109048860183476353392204449339075572750675105333835539505262013286952211861617689271243446565732224010644235028085133411707931526768172171900639321037229845188142752343311270741294182524635401493559082533036446944072538960639179251302382388943560902940175931044982114106339373175136793692184032795024169248128703343921864430894462284087630982947243168510629760980187268079300578279027910422482735687400391191802264981529676695399978361453119979872771151969761506242149972713460125193972024153960435049568767434968042733947831049980932366089708818196093494117737924663294477375798728950221635121896194744429735338610736179780858143871823499509091396968213415551973901051683807370721303779548541677083535149642603817378362981440086192699745427131805434242578382185225059762171474285094673019726489166844674754499368477086026635857163372136343806259430295561393568068583351911863485278389451391302082249379314931936187222543388485412972031759965860777572221166704894441370488504465198260312543195211058112617249766254724375841096848502233374052699991830931700248503892074495524766018599290759814880580626916592214188262225220192878849274615592262460133946686083235974676926573070317871263751438309091334941828157783233571375549278026171659022894266701730755816792870048219871322010141381503819636996117369779338112601638893080727208029072601275637613744203653453191418972744900946257740369574950234941554905478758643659600426598824571262020437425948811532385445260307888603977152773294171863699981922689479656013068787461049932417299389498152528225891242971822555330952658564143209021319931084859464212178838418967656324769225316022811476063518671874920968403954405152326286186426196292232824634892615305125599666416573970513504717206430079150840705539230928947319891180274260592804917038361456898087932028279528194779857958426958413910737155259837642711426541281935900212957240116829320835940926920207124545393825493657564033950573035314730382742603849423976264272332007593329435522689307957136781824200464089352443630470203031674803954295396201232680369056150510900465188493558422368898784690549292318087167670072401103874362383009303672659948540162595134924444234124403581012763598790262636945762089353536918337254077262025682165132129542035705191722221726475979652375035167224831379265181235346703544946481647533028244391112341479585053515601227301318600669628413336761873516336282103731787638158416847780283801297959676270872507877403631904542207029662778047527644566734198727164595338198152410248861431134995605176050965284605361329238521919546104361092740095061047089970733933281844092235619500185295219045589261424594647420437965963632943591850754668040170006535444891501629077158378180737732897796656962692859535821614403707224257140438391393978548579846521711973745277189595929034896829265231480182424030631834322067580354596998757393660512793880388659252065956714218934532416863767145500166984105020899533242780219982802257642375478587173475798614039060923742549486960486375905719944841292287342459064036574733798715065942503632879758100819363144007798658565257916964057394623751410580269352154279891183923651685508018130364234831939765077726543920355847527732729170618389909443596508855847774686033780716434505364886195632995028473952736855773265642841752416163449210624475091186242220978801962116729539363775221714930948065194838716720717140770443421662737614371061585439309672420864163431173918244228125754508101604454776940607137069905575840225725372917827696832996082430157909404100120588980789137762154259208287635749967802857405119224859267207855767573416517439239448419445375560828470510746055767170063330381352403768488186168173364938532082602053504987231525691645375842179742788051512979796542498513067017224467779740512343177177357269348557162432099647874698256528457573123261763930388801910260221425787844166406280011041901406126286361188689119797918410918686586092867086504322618595871119619427801706620502252211872322681898422288198058484818418334649567741849759817968190796900987248957137708255023331700593323132223132762500550543174412261800456031575333057555904748466393197944534892452970295183387339050141930564463424968510890953776616641419111698700466628889161775902818956736909773938013499262077697914074501173070289124859971898479704299016294560946008326176051264921101975229662885193937991880303068085353648325120893489031934400409105116227713333464110618830123639221665973016956681724428477135580371161427072908699500573944707627125455201983179730488016822294562824844828588831109977560362309326167529644894679199204907696315237571494886813666926472741657207681010797026647852164983187689645736177707340068363333392716393606058364843808645985914764113262192087103572985389397408222335493417563101071988800374809784104563764800808758096098374837472858440576071930356935979227786601146866856098600713792062645266180895108030865217351488345264137329101973079993279244612757375400866226075332583953576773334335269929026469088709044872244417133985529504497226651587764792334485513734144297075452011669720460038925822283351264188177323538286785888063729885852575061525812104383616400737886116015143107698957879844368230445560666595357445098836160146413011526740857231778752482915780271916938807259638555089553303633560192603643638772279141018702183051152318386418214826569714913188688051550367608533037087748677574153408390918331700384178333074106871082887923369407986398181927807183807870338315745561929042200184482931995414892004405464855131225370816999016142748768326354270342969833588056243864873476860275562418355064500416848516684658813561787922829207414963907601600770445912497469467392140426424247589731326044898392170336113561463714629353411967064955582865193965806697786513592975593383696246113524451071922257106082414235020989426597656526267480991624946567684270769950876724507184838328319873837297993381061386783564741759564782547162412564213513672430231774629342717776126008883418613442755748367881994805078317781520871640445810052796837718870839142679790205464356723558683653370512281664362441730377449719872148581711026444615202332661404860411986536179673207831404381189835720798064151053009275067866320980155088334772606872056300610030464172335634705762393187150527252297136044945131526817850014155308997201231778581535940679556130683884983742132252509148428721519294118026764437641253961116599709359907157640415668301707400228111168507264585915719796639415263892420394507996112377182652024207546011631717778309074464537799641303438172143973721117800113828703812180853384083037305025419285495931512463021219658207350021481919402768058213083950307296489779156533127507047102438564074664588529504676365342700553381504515216241347469233671694854054251890345057748225105333847580671348756088338103615695085482301198992716603110641101632707462378219734795663465454252961517564695258712094849148848757922769836768372346205783129870393486600187572828027525020849655194760506519202366872016277497495473186494031977027541408352752186049347502073402579165325304303457542798728808997482471165603504431395931803919633929120880905216201636125131708375458954777029172512579012303839936135670624134169447279277810948002362413560949381877826825192738785920854132730046897647869574107781883128315273531283389601996861726295775617336039974657693666193358528001866745812149792685293545506855105034004972202818878383183702656264417841669821842928517681268894492032754675722652161872763544951500978196260638246635569536032290070720460396415803981868066715094598805637358627355755097489440497698886073531061290154009763416242342258388241780826173684060887908793467542040909916040591295616318084949639902491702657000516286964890303212693198656588768275288440789686541059578026951227321051579294015794203161294780525182166470193025695814159948155135895847711141402145089676405489204081323900089914422415194564539990034751161755773392785414957041824961882794847488060578202101841701667077530136032106573876056332190143319458206875162028710465064427375772326520807738205859277596972754474676069554084815868003084392705991221515969825040354259211101768804416760681784284711228446186177488497693514489811174867373214951252951876163379430076134066325280173037768355851909293305551077643293295271978562432360575173904826706223263974939329082715205220041725449442640751590455770074449500803773015706728634236440454242022930182391259381536232506387476984844891665040475018895114384256779675551133068363067910228001135362852052030040296549058815728462525597997375495787334045594407011380839118595866099507427642991608699391049502296078249828773132091527221474256987113023052349339072679930812537466936537172724761800904530576408926298755267731502276359841853890362689764203299315275235045640459237623464907285085908796193013826810791846092483785632616037136434856037199566253828385528156120349754470600388210373887214983732301843948196040010315896774059104048578649847897595983146482362187212685062100283564852973665628406614788423296807257383558794272813681760034873555289756550640257596304753110387033071516822487683836293540363361900428785305622785235448979569609798091709775146076386064906080050359344812862083302743511047437486398881215179623183783172187400823474544725235789093996594901975614750109769875194363287176479924825084871722300409428814130661479407604048410029315001373607260485337257925501724462160932933034458864438797979709001165472342083488130691094256251418803174256952156273981932694835337608289807241855281165590124078206386283603100180759595812210621989599493284437138413261604215940631284451731705424229028212867032016365445622845032091714791591681457237300495128744318776290135586194179432058715764308287933723748500183049003719726451944482307163647946318225422397146443016869588210167685863902543905070656426272953671426894851939844876601446234330334511698123710978325594200988245176841337353263355985997218404818299339092211329290221119364571861165684520853790185705677305807726195221000042952908468443748211103399634896613313929263619612958711649110580618246748786622531578905556972088042433964289237201772214090435827391248899369144138007657240598746997690786571196626521182562157085285072118220742501350655432646977667300143632514423907462772475829588456462779983766090108857691255815465347576346521319549146471546615677169223068754455344332623642798311240892134178449092138178427968783466231039198452036634891538350585468095314059356445233404267473145131056090052936676325624516663136174821701795154473149447003485940618891551743641480115490097458269563502155932699669126170437325284324062746768838262167183367464740721110019260002470792267781135651232887168721581520141996089999437724557837625239027492892432770685309895561473521872379761906451328992918282480415404927981132895828428899141016605461324294282692482263963009286332803953077253485022464044230073257229277480698703934740804116600328536445961047361085435156796410681555419330258966551486931455301189055073383881075644256080359624958052011156706104482686172251605441170798487248391177978993741687472506117042831692259899180717948314778382392173673816528060060873647775024908472900182880115292733442694646095623914784389727906846405774813136647258170997529175670712212593847281217362725968388178704728437359528108428369249411195034096570352103280252969298341616262296263277745658953921969499314098056852917128794694628936724414249576333297338147590622126595309208666880635336000351507183963396243780378906808392428350010515157425908614047599553459073300319897891238874485452028484604725233843158263825247831225806628110304370699743516877596381185726598442711253733487957511360533495294132931524391283599338966863156508959442353448508704975879370143696532260924303137660283480246675991251403718521304479644664229416958695304803442385013863248391979922906897949432288835377779604592979107496898552254076123517594014518503842674226200996474372891457938201194334823988094486699461119545685386706548717917184137108076961314481316689567639583535008397073358394661724473186315850053803701621358140205968737531157483105869053780040841125056786662692883507750341795752643688364474227845141692607575145699813919698328720804175160694870560013726660932010112618902908413307418791107250522097399062083381322585186950881445827727140139503860154851620816103551668728483417511307899533305376152897057223726001065244027498471139295747490843465408915926514104925070542211102646449346154176180704630539962034717141102261061919322694212783581348023451326840076683294241300262808204189468442937090699469593362505054003873761156831334601415215094704858014050005924163754310230055446406588021935268830111793304175932726261456914817078871555762306411929783630130473884721548750717165752076511635718888009124028889421046212234475447828283083530004099058245159115252021663297049264617860954885873148691903084005939557749322121466043036775218091009770062012286393654018529434295909334901299012106273975019042448451994756484982152871137442395773149793735546144066719888242520655447913023938054014662917956736168522229949746358117935460998944588094343116977480749170026436731240693907122698348453816172494809822428106671502419439815420625515434169522253520297624862855512909817588608505998726354121760580179446484613522923937828081895391179024669120142116775310888181373437214620388531587769137909273785312763520001774245342609275390023133995852317064441213291619016511709116276763592095587270989208576406674904141391960248963671095717116742285870320303496539623958184709402465874689019819122702333864552254949683118104477095072043197000281104374289254974270148645032574889935562358095431849454025254212567962931040379520779957781010405634795279068815993554527199787609221112739745427544321174886285101921325830986500708838305694736989936378333232285448687012460176652277604607218071753912326483315781115975780842933356233375548256377106777205708806023555851646900696347136937747777422772132137698183603963132825248463755093816567332707356257133587986237612745718864544150864731716177980564342840433207923957564301770334838027150825278024872865743285568843236968425967596417186691096771818563961673530531299353187640792583306592804325244604906939044746123287221349638309690423119475639772510077777431900394507996205394220683459845100059683518695882932246427065063294384895864101240959207267358708761876830118585686460036396376373490539141929056380077999097651967496330143613331554151786126687241775003089507141463937166111881376600823545810307495334339336161078563182140619606242872379724033907329968326237167181080456488437146075743438308152886054766286667694573731401608180733470073995480405252529831808008542927307880393125814766886225318582362247329813421127715195387048560597388731959005329330903475561771224474554969941508649017621977030896948856163518903034406173729340195624049031269831879336041146786672254185534219221344287403992406429165048148584885933552331409897536661996060410590548005009734261268292100628953173284004730704205577477817523110052016709765690670973946158880114895050135163236571706355996024252023984071726461359447066153330773715387378255109069709846613983264364097899773089857560992775657858932296849674152940326222823514807002159158309241021732375417324921364797572671598573229139088634840790757692346518193230625024423770689226485944674235056839778352439028811750176093223768086057693126738769162306977623368126275156743195801022390701187025208934542558857553195429045834848432876335871321227677404085353150460614111796870829188065014647933586189277929440371727077778717484485819260952760414869240190026195541358462766578201205164291375076012804742253958955653444109688621717654529771303764456342349064078690557993228819754888776073827239301963312605072477105957378161705946893046816242464756747663070297883427044313535651868903020273624436936113001361359054933414121857529079812911256934280716570946766399834285183361666697312828426231820600468231903600929363194346361751121685417187949603522354979561844842833072850513782512563650110261992332777518381837792060061647202678898599134702566232095867138639947280380704638556682149127867364235449028208474891241089179264667143571446882522998498766161035406257772101832255261508288685172082643389208145235487082962247469642728350024363650296908641664731795056487505666328277794868837712098572167203308211463970714392297782521136734225094205245878557220594871486895209503149600415575836011317668454241698215887917163636792115227642832687418732302842968751564515706856603014747761341199555823923384168564005603223101384755907549592870060565460973293810999546376580925022880249757244656666462657247928970790121726771758123094807817767442601861024401112354744768612128931025722428222607912495290518225579047575051439653435407879791667612287663945585353520073746340384623805548627893965091178866517262387201607600515666508888274186668371565173302083226788128201788267103776247591300825477959832423469215327449606667438284212165487850333123555820180314986177539452507197678630316143335813543479333311475072772607806583284013168512623213719425895482078280869076439020157905478678620989383294490426205567903793409729394666039692204314059854843068741730070722318412102533368308550760307084966161239412907757483993101230035323001439278225614522456981460625127120414015910618362443024790792495112483937846192797209024634846414553629142813194101090695125741521906554073105288399497560009683953430623677104953271891884351089492780577443945195485079131357798066412558410542078284535754637974876564345416098462213525047306373969097121237334502408244031415417946161161244694204848156941834849398118507907875671411671812068429288427662100265323322192520739241597148354151773996259483067116419150861272431505120591625367772636148031901908077874695902344273640165958784035674460276582918325267304732115134145466524448739759877857017203362860481992598171660918110619562279550517028642030350952195126087343677367404252113411626399566433279635230667600161663927583287052958943152599665804698167100243418591192500912554705597865836954979767469921473653401622804181131078096759494265461977314832802408705526545267444766385835354328270945937458095841501791255693477014127306103943013721561137357531940589573001604157614302018225116646593444696682429007177865348636768492948782583725846770392781187942203817402476439002919037356773646172315992750224125099401601047844671569589217417961385094107004894829472060876599191890499895222093805731162812141347149939133307552524667207437797103262685582584601208617744422509253469496390894704272247907629706996220385618620079026974047768235866027518051904823395423037558796423913394529873301788999148564156920718229030395479593205732559291340344632691112069327559142713706261760026659222384843394251403805001208051946014250528450004523468012720905146349700500511523863905533981716159073696262586564703661781078442876331079443171120253975498692381310101622813598938858186928433047708620818515768884940454221464620048992890155503370434343293478186089305684578639119592598412086684330406825265313501761369867569511421109211630580068674983742798299428325073407751810250719120084689840061944000295523801797245745038885842613450611476518287708035238986847266078632145451665723170869079038487980658136047904138155431066716262407248278364221266204860529191364639458277685668167240991264418517442216083640965256146528187673903863610635173156828097306296852053148501025851276609088122779564981411467660081638340054461848870333252896288641239860162235112203871036370279595690198670138313917943724836045509773188813989340509479657308414790466562771691137419718412025715025592912840577426518810725230779054063160501638386155533993976810949565024854442296951852177746729481831794484023244978929411351251117742344436395861501093264675069269863036202038354378526071613535496800306768258580866879368346729655045981316054891165871650406286952843895957391288782557924637571844017588713764151714812657492915363456488933617791958408717735175990378364623058663207604633592442014797955217267428858667446799105401509804163037049058141022520679334646055468598201645312778124654785247853645450886172076741014797461504641276399249124274228059166904014096012302034310894925251008261507830011151804549831440847983955910619658898077424101275402528695641467448580741162619581449146554622002221538581427258836619680221941695759881784161349917724280966658423452515145188043764835399787405613816611205005757155774375485363241097739379340011277847775610333251542432943928490252564086918098577408661755508965268921371776623471843181030607251436573650933171336928595802111731675498611710922391894684981396763605795440189154047878662833141112747971270993209950366777784620590739959953763865049153766237487409869906563859294635263985858568332577863228750733078740439105611344751392140348534336747203974576884962260318466546366649926843262704920219095753768364575823067493495219535002635750077799033271815603051325737356392689041767127465616426947272991619811963609019031208951660145374624360062926391589911872163416465086635619598803785946349227362255870507975174330913683193628766113559650968618356061134663081314576924133692496690671378125382562287838766196644672807413116196542921835325555827425239384676193916972942958611074630960067079297420463245411003740919421746639094996132526953823243784432393046527526478343659138952456455027929654691302590292540078130030215752241442591420178488521577395520167998692965040072280383327991003967287677640295773106609665507867799577504065605371509039867132859846292008971825783388999583614991094961737113274531167399132844091140445025633961065077430053272161146629899470629815406381393308995413969442804988962836380755319826407817859338824313610478868111244315357870787059211262317563324671381668929690715452742983699996496222747606503963065091365010007237860939866094962450823960562790634933735414630277429718009625799391014191651857641114625563877595913964707884395083761254906142555971904476685284406522606278823499179126770148805684626037858805306234353605422851325094291586068046380832950279863549567202793151064843556110974288088654866090045841197148120855503351692798414171570727613436660392126422018293384796915585223990310078547458815572503009580116482189952693490131697415878405720615633132077217340823450359209314334420989472755356419354843014708645856183229965549552382845635443066452202358196207566096170570788691422691178422981763998444524957560451007964686143322684772070606392012979074614075006043673140062772378219986868794023446308596872240418670683018165890949966080498412618548117471548989962372642926983692363683355932348237971413742989509896133408167322213780059223295851958883078659031443560209399400133939339491465086166422185918856826573106151234311823241088475115089257316390839612542171408136813253153691271299883558378634680655038566823644868271332298975426752206373735666201389039302524484346720400586495555347922857191110833454434492718760156422716566203456648330738599676543372659255853101432376818528389326480468353653346536763087942122451440005212650236512252019101105071299272029855733340885895418475188311986101670119258604596095253275931003756987086037186406554041242408253714308830276793472227841722706403321773041921864504296830531428490631170312873020266377630209320797971178957318858037705724293276367234716640106228181495704505882647932279414654228251348723350226611733834966208158285560868515905265924348522075700614519965148550290698222374710056881223917092616507264878144786203030642364033920600851006649502122968978582721298343648636178343077655928015019019315563954970741569238580642355357454569486246860769270286356370776036367598508366516691076235744541806655281972745206696408640627335788780138333171456264060040758035480013930869294920037752182165683351827273985380015656866671772366779833858559575976666199155217840107621297741561496599313751117765690404333102442694411309292940820349489948422175515005830146540661522646090861391271303971041287241584401443160916751398016021327271987706091879248340927175117835635829575974193434176236595464936317184453224129269440813167736259535915786164487831008280759238301674569595891732442638374306475896398988198654771180639040366453045432854347532163324979337662551673848529760019661238639326563901034315547682619792569911574360710639847365063541186373219907707916382673567923698136601197634251181512758732064409389514676504553722181436944305310673605450707205540420222084957052862807379870570329807808560814834059160536910130943166922882052900233062875827982614067117228244228620093866064648050401281971473807081384261769941255365059407407279150502370476783649761936467507616222200135750298650533559151713283387460839001530726685652330520879665730569139345589874164643768255484337143722852722538814034642555852683394870046584471243285271302698730953934835892701576985834494872523604947772492815177526436687713106983291986625305894444930383003495724589213447842378851847234817161061746847185871953471692420218956183303755944163013758156799723125742380057246079316558840379743614768530988854128094597011944659518953137467640309712346246172059277513521054512183302695154692044903203368111216952391585860203868275192417793381964761606696577046376839397972073057450701723103986056534190606435024482342858131819088868659394150328104944651699119460096082869212476365382290300696302611973851338779003521165385600804703987537425870647021465588918787854944645284701093456028661909728632823518673663501675865507297061602691006137144150893455135579351874304443096542570862816314020648624169470268831244197762797641731314738115807812945278769526245529387399004939460965797869083818694032405048218751077104894406613985011504477760687547105969352347420472373248868367509777852300153662268256027759678394887958598090192092504585348271994178313326052864567797292786146450638313532371578394082682928841072829490489472551693380410253497473913521399070518197518542542656217304348931194378253812410367366671994696422677644860768619529087668484122808249880600414426865076520180954812768295754577697261211088671337536191299279190211883617802857200805825544059465283178620523367123023049724440198227260940046231761817883620792270728851240161091334992136937618762105762961530468519497533541253104935653691553038641509081694570647395957378218037633991247658369623893025157000845935515545590681149404087853807569852018320249280985533468988823675900930639461299794559370957774184480910910164208508438508624046857762065634957985817794606300653155887344807021343465059303952463265718554709541874061156905091561065105129647223959058247633986133791296217409734287490418538654101188361860926685265301463782834659584783985624568907172886344117864056743292354513950389699992338159622157050565223761438255999998725412486903673306428658184193195624441954002069940014543820618323422471425848016036691468341630897848777816563485229540070026060866615352997057065563895014376920774686285454484763464321142113155503362593470301134814397489214288723740907871289237860206951295284092601836346569059832115293268789127022846384202026753895714334631078303452458313295036393674536868194478456222046039262220608267615258519884083659852770595276915929157597086274670342260066816098834280662445838818161253720822661104354092233715024104312662549571478591453990091583137174148615241224329401807095396887552462169773887928105320803758666790279130568061662151733747965259671314158838521046031693692737680479824924403864638774969301464480923161239684156738021590094010291471583192234651833959664191474514656960025235154629290259405872294752240290855911380368397482563912986678107117813609926341838692689067964346162863874037563868533271036113285433963150596390772822076417779025551384289784648614869760821897854939860149683160863569361412111520155701026126663067146057173069774778557023058224949345037568211561827849205537596069335965867652189184952731829278928086323152712651230258894421540787644583027210448849356704910059384151245657094649493587239317313501188395348859440730726934645078080604254341334408354529281683661787714726382173748864708018186295070061843521503233379826613012085778790450630139853522289612596569903877182480385014959978582760387047964358184958682557918472555463854588875655730500331626276127731951248285981322652838345214273915222397900272957785317722952228202223064679203881353365421651531986942254774105655732225729089694530888435770766699241915679512326528277064341647926813423188651667096063875468582166919092228703704771748112027681303964196885677039427271034514722859133359902582749738037950035593605262617080298646717635305101018353168937381018504322745598228069048318241781497055151722416438037698789460213950982694309463262165906481692880582228738199297707864634803434439262887864865007398473394097563704941824609429488852196734197667333476287297454407498258789085847114031307610828026328328272093148717383898804606749650853315099907253601521898021894836161921300196055836385309583268930752043101006480916813218012126044410416078781784238528764303628299194196735931951909239936211202739181986035950963104443929651020687670051011397860198134979737698550097241790186701531644117913853185827920820637469537727798214043454550979349679161048918193323332632878728451747344762887330989562643055879029261415327977365843244545748166360653807019179261026595572100414347811536735328673613256893796148469310359253101267985471475953775858543602003360893657986562161575808136733894323468874361163420110227302639359461418413728135748581916638658843056925661286791935082605811325215485520342346000780112916882545616898500771231869775059523296929527591607027172283759122703849530408029844817835232716476767534770763647679814074456735028974404362778908248297178197424554077782194125210432478961348116800065373668620307231578446122198416262056422641293581084722632858358735686435597982020472217135725972243071781829589559221552667413768197070781609528015431161648328915961487237359681038603246059208256773216994195287415261423296027995330626499245033953876568788197221224700525129760293632782073182639697483948643402609378990843050711448566537191688082470190196913561737120119177397722724588059978428962728846373218761543103793286395387952780267242647955595578050687277446722573320072965567382673716764512881003263016535015888283866928209035241202142595665477787656073026065998969549517843963609107676057582916194513519102604272887832591123878531802780156545598662202453325554263292668388307466698306282519856560692575567762247584949159134275725316131876881732923650334053253820162370177253152962381361994398500627769307953976836877595157234479999952727254120809160617762056275237589883308218150762267534619447014617224726288233631369998721856874850357111543735732497355337887145463105048082028833557830179411501292019480585683355030158049985524336909601768824638621671023211995029507409491948604586528013160991962174497734757749380022982355334961052453071181539914280871847387761102263469411253901867850011445368178998695029292925404817518330023265144478574297779211518292382273278510698078614388565382925269377144437071184911494424803229316273371259418040957122100769500940934839829428734396259881416706231185247606222651956560781097117256332457925114074788168408091732315854656277297435539047315730307418238408255775664168478485305919626017999114593196284647199654846670988164285005743204264096475134077249746090263020741089628256403910967880267247124373827795491530431833357144828111921928124391078264531921442742015800003028481107391507878329996768705640693554445270668564399215938718920384234185643923932332549760479726876679178367984481358122438435523626456457737632818384081602004990109376281439494815967220932627524308030421364515963251062826333363865010621796299922046559474608082950077827957532421271238621520510371012201583903266904276166605222762395818310387766775143816193681460160099190014604723837615209256580051845398537526692177621619083998546487393665542842692930367832367993172364675988474863307511582721369367781045246352717374212432511928384228081908273137624885977317475178260088157987820918584795253122210004864379691811213991643971564515074214692023278868549339201293267766325770076262537713389393648501475597646446066160968647903437178886171301111345491414576133427681082943741496047171559620728244832202859959637912160317657067605726567876607773371826918896016762592478381937719323446921830386141445979248882608205344526602948896276529353347390610316652056001386092100068818870272344255747057644662349912017477319590086936833965583563484014113813648122100638381709928163782195521736376730482004702242515002051762100011762254920985510335609432811934736382281374089219832591596740266764762543305736959835095165535173424744188497858864843496335358720502433974910964630812709460113492341604587951296864742443004770657934483247417026777279293045737225813437910763926945125151053107974928956134437474715049438458373180502683422289459947485431158790220221342749820656331317718297909334067581682551428043824492263849199512519903204876573640816578417281141382050063694816494167508048702403310993502083092778199821552388781088778116533686614678587566839157615250746936646500355200903566415317257967148815411386045297454038646764264665156265346681682428894809626124472491694518929553681195401782320851671209078190255875483378475282687277046914455268385156149599931377037101062640633977375687276295751128811686455349036214582392433086776760487854704985843112110946443466239321661249962411996610983958625235003363090333619067977871010530420415719291217239848326702299517454567366912986251784702478221977049746217774161333961540864563684987929479900330482320378530135796098855236669638913202756118015830622002981045758286723008993087880962426617517172154037342002882543508630386493595781859149429004757740662291860224512018746219580795425679893837727255407538060870753636507391719828828787383019079811099744237160084960498810384833917674720333683033831559184526178956944075469264961029913241079521234082687896047068085591027426380370479179095563544810698300508957659429257335524908832877415933367168803108033147987385597670372573755091303202978346580744584514758048067458883399544376899571779803926931377460588477740243185705664899914750522503282624323543239805730689725556257222002807077562072471752819774567433074236679592284928700436809652373333046194079764037426362708990243695207799885956555921833930801493791362487751953936621339033687501493722671189578713688042465451286729457558890944362664293806672985576415304585882918535679580156193511566083483615076610719477672859096275172953021693999819718792869978531415757904530888816677121625556242225827983245608544701789449821261068659994663076265086154971600489803711448309851200767121272465584201492633808536850314816354630251241321377604215142153262002919592325330057496630096977939300766324118996507967452812603242825773503952431859331987178971597327899457757397403821165110195681796595736676113767024621869105025255661956638917531561175785612246476036194424031966553711032845557620902921147921111694291089142086792551969248131848424792353940493402382703013113243969204918362507881812839239753495952830879603261525830592612600409034327324739101934337971761655190092147463504287267022399518116433173919985168382168254619206068570937440933543526134831698136921712647670207414167416360687216831183526570105833766196686245758322777011652612789161522628413528319595241056471079307747921752152528715465028923204593505484338760102281482528399367736965431178605745838725049734645054909729489996841333906421083624474283005912420414971836296430965586830539057555829177221083640006715844728844854082836066735417334044813319182975315034825421585469641042932929198949984319677167285912070511381764904005968212596743054401317118924776249622359903909633969077509185034468006245675350736354226574576549039469780398329092098743627585026200119055041911748959869717015744170746680176974031473587504556650648216196481809097515844576012298763875914683725939132793385119539572874397363079618726702617347657792661114765748632592570047345523786831436563573466187284073099574422832250001123748427704442884390245678608130874828896729175266268507277768941775388857558772293281690242647739705779445010545505396644783399563139092413311915005725952074865551699500081537496940037428312602266720884517277578195608018786158962908898953096526770279234303553349589785094630691785984583669651834928789827469659012977076338871344072959137440366439492125972829570254888440298899601764695340655287312993661483788243106619250696012001703165255506490634221621705398957241918626322767412120793332018935418308392385107204287935185504749463230720868262962015031977715753973563431276463514920678139000370662822798924445063197182378345835328102167132440165227602704644662305160608990462278040996535307549094585978967799599702596887579001881198818069080695974821222818737334202971825404202059862209078412160120998290671187256234343987831701951618296232909804353186730737402972747364449762297058985431218213425117243628043744102550781422577009503327750527093949054340623433597457684930865767984412705035508246177538834229223970468684393108490108529261136441602354831967635461927330673030235604060023965809417967247192738750764374406473820627276182499067528576093186591528008616258489763036485587183623238792603555346465095590246388885920215770999727128011743259391106498337286259491124915473251559967935655508556599525158051173291306377050853457145650604548480167498556956294658837033662699992962143948472804525764721198138834702903420116158018335475100004374819300709171580148978787177103218094491726345895982038826056574472957479300782063125910770101079553513130138520716026951387875450125136107277524331580615877829582797349876053318210240751956217035031959024239921939081886854904527797867442425262633798972485592620419866825903481709493600671677690465573269532439987996217553868108285960216082855382284230646971713656695590691377206327455437253671986271348782210430461605540109312746960623510923759836712046943719979587629116239837933920231238314161622512858084453893000278560631932090921308267193531398004944089475614945522325451621627261823225792339456312849843582231285902819295493304629408846251923134486140800488663342356502976826120197275243562534439849187971316212382949321127171603362671317184951970772331736968921328439583099720429089649374223217382979958476645827938191913897763442275719677146767553032738093548451373149584339111483069989035002295775984473241489934184802013024985501035834594514159605046239219504533187740693504792693798722117432305937145472991529966450027113246201737137163340471119502324283664587762531126095228422125597393195413461040034125639429847426053367911615659560821105480564251278415165032611438934094678808778357802265045234775746987082240739437857944862344008911910447960052075371591918913454687706244511566170120689589213442904882328130436336117126682049274254758043116381909093589860655511408567138362113334620636872585392636264578324035051570996704798162049209802516425606054799452039037561434165008063523852340006726548092921777897281599273252117759946476292933940665562927554886242452396572436304965275782587818276745957238345755781969750608759263237920452289466030369495386287468944181016547028666596711217796652212479344324478617639187200520290277480578453619741757376917587291660487701738706561592941636336307576755377825335616720305841143376081096469263642131894625621490755614031433046682727124899672930764058077012901836836502058191952296724699103768001517855053936353196039111128585369794247509238856364722920995307942577341083847801665955576560490630305870020499777940973288180766233984583843793598938441918780645820828289193463431364747441256086610905957031974397325189187285701013980188180952289716987557865502154360606538396249941103639035593694405255618317081546629032285046803035878553988923992932864489792380099022469996446985733359911346723684500969724268657782115252914472815987891785660824309643392240931070110748649484235625543337887412025515144418690499230999255269863803394564173867736343273370706742430228261396421818105423243656260523506417352940768358877645637133317568550825896514363436350988625307070091771340514293392921107866297188978943996155429699038310562419095536288962613295389225868296578148421492832190670283712771758470898579003807334863248030624072947818882663223274483804903762161447211690466726626207317832523893004823458890943582912273293483547507204784227658776854464689715918303797644981393994022600150773772448041227885259771851093356819821373516189470143338311405098425115160445128241322901663498222501591793932633270996831293580581531174095781037387551904299203094865054592590992421395694005254050520065883283274296181664901493219759916904188380741114565402328045089493959439020147785178093866060584759771587287606447674307848306747219197768672139020160876419855625341768918015560978661529261297684700215641781317283471277034998158984575228355162096174324681159774059534102358581682707576781671461287627860027372947712689299987326373376397617742077272825505746450275161314328266944761328503594968265605367514173119745414422547202300984153528730545590217929360355451052823593552521560271944301074252894424048483016680065894823334492042535325174574844825812918395263489267907416723310996963444053044730967975772990982259177668097792179615133383367936594754289670169240553591396672816064501062278599006172536774428995350623670532098951096935205618990678339327317860306357755763317373726189740071030819013324394168997594972594049397514192428045559111493968379953391743482177600678834557521866370453292226084672058666897689660138633558323053242954364081898162549194169375275078187184056295704835552969457035221131900624122070617332719724647322265698135789600627836486049375635746329552398702399248923399228151892702525744296968943857482732607222063096647351622263577494720428673712966278250589343397150494590391740481894873480849861429991453844836213938965936382495900582924424495731920954612950317385059100613709916906648841586801403781647627992599349447242358484149655099455955689617698229967406037356964124646358210441560146063576398758196400583585863396169649214562130409595797512640368105512656884718151052428950276931892261239841267101933765229246691754013489856090339244541515746555956079578167591517683046238845476179061195028055780341930208080423722773556043436292086770344878444123419463732421169255265126077907215059176365484622357473568872600734699667850589623960232510879665409660963359080437507479167871966486463644964258085977577137705971030449005701835909958789433586022856425623543503106055417655001598469614803995918409306312917049266833027376855908707918136299563732366853445897707417857002000738799506042568138461091336696731687952809887202327418059379074155055495436191765893488372271429740018950460830092275082053527546239819276253410024177332356630305201115246459770751849282927790835288044789778378925789890977936182126825116104784495579098656052366746819247231656186345268207036996071823897011139345551137985805751536403432010714470943411353125090714912910182505116154442760392320594766784970266327263076962791640194402396933432455110250823262596902679557072520618732529277702435543158450416440710980547744800782673435926100673412986314796135109004011971729012483723289449101466970969391988318769096518031142234890285554813427973583946052905644783699713511466799658830913926584434935690467446641923164029450117872596074209242893109153285912385112344937233757257811659007951877776371068383465814847243937647929733930496086601075372419328788471943722873367914367083628537076375030740707023247126131746453002755247151240125406318047492475508383606051215312186779485540948742976628694431480930044633849950456414543229290740343873947193487171212259443012738819546080333486670821140219460413807888627935647693177638604383053159491227217862694488741946710901669593350629968365312196537590397211158992230045016934202950485747476232957037732023659859804369336445525559365049598965470254944520077273871285825719152529706317700409647983722135376545926778504192791176531379716721824968470046828611588312639238222677142666534041893004354096165001116961883752378197291802937028795248192464109641088518494639268433120837571661431545160678067102818130106117280608878794751333953056246392634100482189842985272056065827572038853252653436116050205988539208553644292091253580991125470248129459325251577015416109492999239624595931731755155272016557077913240684881979810132055683552863047189214104147683839128602908623118181655639222562452004607903187957799184494778593749349503013389144059488871430407429698805671609086090935044391814837717301366945186450998528999001919219734733016320101936474617502667573182454642893110074707901039714231205743961052948315493794083481375021047532470481139841001557620890785114687782125138186478028789520649978907651698256956824310029354661151227572654807162776041309390115973402014407944663318595880189824612008730298461157086831343730198168711031889480888551830386511231274262567226380937320956625206076383996584440777354555600000912319067234379073848101526768331278468767686140184738047887184021780368678297341688544454242623114450649622313697730758535651109270614960047608486331324776429611310756065372274867902955036431059749016918800626717710301042310990272594231895400581718000864491898266520994825368709716263781496791587586037512453007507764135514220623043506537698648963569275976920209965394608268308136539485163834539968167417562703322344397999393372032330845715065204863230707119658614774913003192857793982591798593437191557053843083352089495011056954172118170921763614511378922317485838324216148631096392317307074509860258949049944537712141556775055666403685152010871075567981551920828753782858513558769287853947780375700284922011220335760404974589021060634451622282269278180586683588559952111453122533701063633167720616481523551437676328531389412882179298712826476897905421020504419088627880879854080120860904281578788406447751958927912524778450113879144906088512931631932288497911228617098555320139354714108866034188026003092321902365063321236775946141507062633078121367983349090425805997100797230644805872394312153916803378777456320741946792856843368455139879418852000397883053034285116920730765367291690483436280758714619358983253099828850501694281459476107130189608969120800216451504792687423942822176394345265091885643791124291576167288806786807473837653121997189743163101633065159289790488684280039885381768047500207723804443037241085210312437603722172744411445987415030654202322728607838431986687066583519499584354342602012856726669111279764209815617586412613078056184701560499525202034948320170766368652362749487696765683737412122153353431553667528074296772811715984936548236037371062024713642865294013556341802386878155992292825108802350659725063906601958689923413553536488342010110573654870835623768184600397921952262962776329799647159887449670462658213729225472616165023101937652742274675915684738158631206686981513464169858389173802589129570099176543483292756230750109804410406234713019303685578233174153886625421827922115841841938241002938757429107837340034367840458646560983457290511913100044200641009066178070351221566712908267056813987840800500177311817778191693198624633396620882912876763470394958592030830520046052778228798747690836974899737634173250078859072923566799082362019343706844372696733552702552606837773026392205530114725230723485424105878930689205761857800586149165698683362631903682840225755482872831326297952598759228591395204503428084116429612245094381819708035776006620735957568274123570544110213820281852184038176318706920631136951938262886282609878673069001607321747532947304149525255147684566440509808390370334531365088970284045088883205644633330134762706600663930601737086935558493430407173145615887345678328877195658498828371843956471493212714965424296545225124914181641280941621979461726407991607603541717426477675601853067126824893257720573695697302140462482968823834322663056317553513086324561686201177240189440034274158547751456156679855882630345620635254271268940472954365595652166137929102146572760729196511267056274863080011900033462542970152591011785189363116215907778870211897412028329862657791857037121987594251872801979412348466156098697226150005560219476844617973318049263676081029459489400253359656427866182445151051209095003162461405386876529982773367536228006661130021401339988271604864485021900969559222978860996365830787343579959635277020600948963146110640340823254661803367545944128404177579690000550361069273114160516013983478907060145290088969144042681067412288871269889178710525596472263402525149722957457227528673865761282218577995258469862154544208765428487073957932690789036082779873297430806917133576868840175608585482424095108510805255006840699121408485909019229487073592675238929961672103043222277977152794298865752636802536369567397075986445933708385016405646962329274125863501710972942933510843062078797372879514885961687557329731307256682791679794490360431494541935905683305779984661831601408885039717657619669888474573136619639538397026835767299649260047280144180495851853537908349763604855151311696010348177263203442846524398360346389915130477365960745101478863916742737396184664246931280687318490940126821332783952416360925603916572897499907688536539391801365856679356138653274664263527993204196792222093117047711246998170438374474387248534302649093058691831383055521293417201818771100553444542496958640743887572487977013307583544682298528147435455490193281187223643721993948399746710281208003234431986686640494093233627875885469304778072925341468872476876071750995531337566883460385977644168400172680945071729912096106078038993687412415661324634787967599992777132532941836052063261917445155187595002104346781900474133825180336594270792572873878050401457692532389684859872367310527351425126663537301762630857855141691458047051937593657603589446500363912768941236699229453770447364741359801147765809898802097219230058300452448445562645052658389402795083965163839584749671198327730801721374734539764695833173805142031498242512004747750415253460970717135551987579858072094645294677735856974872438009272018221535807802921408068123943485745967553076096843792213012389661376241853496316198286960060339887179028331882483337112702609935947046205136581132298149524035639365322618902084818676953139633131978939406920847849370845375255396063176132978838739720637961205678575061950419771391198265531354601282659365420409118153046622434657423295550237622587772318857968897955221663525756020665418340691090943633078112299602362292365040589986318275705381824260563014160971423801073402746186425782520262538290528227711414157183386955841257230723741483827092575334308765071279948396939009852097905366396472357725530467306172584472235110584830612107007689215914081032418939313453171233700139382234941597819260823978607512039669701706367927296444642056455900885714998682271192095136997696644187067799692676439393461151371584168222133327285427321305679158929510267526612898391988714321142738443838556088123187192178895388936415597234982483465756812679077277556089968974396816000266198965433361143031769879459326206013191887711670650336841351380439097440822487041564540649725315541964539560047940310258475004276589320872121677998373080432827133710344464188961028099306807293701487705533528530882967366724266833692255213162817437076691440474185181792501140404031142086627443419267939889152473705899751785812587488485243332258071459928057625877682022789771583648894641739875770314070914910626612103057852405337803709947389564651632761333501908233699727475161917952768672966346194312227525880733328401871514062526195486156470887351708892436933298734135647577658282239370287720016163301158798519016173683012846424604262087454346509238891943954248253250843113784996404264383644117100601987001323267667997461866873309411910554954904921687383784302177955643749282510601760615269164838991093224114663444444924336116154366899671505553529918047313038730549275495295844373189866916665552596624828064079681571990517478731868274515425681703667121871525192846287843963925048793532474503096895280736496322584197474966231263348066772233462855704734464909101287721195844313555659469794492091179607464304059564086029899259425444533066534250984302813354127736072821208594278015379073637837298534675267388754469637021767964869425744890860043039520233590281766146533767418204309616767447927776798886082903014016532445337443607919931190032141167008301223583396099169910026883159701509988917722519474335286481187415651368459732163826485078851047928569516182427775257507023246719736282064255177451926096124780932891365847573399359313960733504169734161708177694294612877631679267263341645382440582144553193196233966134450831741787970775187763557975243533375136637851787541814457371800434066144859541647491611470822005911034187943808795774035317420233517227412487837261067862068717022048965143661799308238031806224602010255467687636339448074934460992692676437374902122381724417888691456569671435335854244241102523548174736797788197721185965668306805451781011369346230866028351271483277403843399465600162122034789914709082000499543007882559641255210133473594010076668782483147577442700472708652933389161919035742199914876596863223921692469107607010447470360412349056818643553821747233511036199931745239632736370987780984317252412923580916745524935072887094478257325956119370631462479689289514518988918786123450270126562170341316726573336962694191676073959109346084212914075671029163358760880642204480319183635959148772843924111308859769414397702451435014758092952173775385557442622214021082508372165192375065239757053127938259544708130375759031029633346451927308990894919290389040766622895528956445769845039107355293419466061121899866860503801325778133984290100482867813017646682612261966728013345606180642649850154272045745682449505387886862218308619271610361110048039499588649303764904096221650675584315397066115914875922015698532176424096615788274511670332475173551347131981986038115507781007003215904856430699836359139456010840817400791362333553523904192761072813460992629047889033121316079313699888216884147744276250331792040049430552919574292997910658273867626464636135942998323169939840525662662964295123347524175149135719531603848279558523708718518099128046572946988613794054562190012457176804632860801110144871944884017796072086972650594125931457437720782527581779303339952451240281218368876047326231412776192919292168235922187864277459126968991800597350377260846963393931853946863468611665428775451891417807818347685659294139884830860583144706407635874072159938884362233074766429051920523568671235731206436086994559115815122772214568926112659440212986167051576033259729948176672395731164579407361905254056742534767544368623009787220283025508098414505015519006833134700350869536439699600345798273204550086690559203754773845699965755900253251275392512705085345304221528555500766109961457675538550069334051349405394997009124405877871522639952783617556228607040939204491647619816937582273532479717272773479858373896833637590891624283406948458672288652659238419219165139522264989247187064972605764403109271710086880596539574439033160324719661655293997720187319353981548002045736953993576524179712592873175724245919136159813326672226896024066132901273457375276471473638185389916888688308498618651453142193980112977242168337001382244627725544195731639229549176411504109936678049252131492715954904159316801748736941175573325109249864589018496005728623089063410526831066314790393816617819330181505802406114777273335864407623529650115277208973000424761671698231677817983958593623805563807103171107113513866212871816941158967872649094605942214571795077328087557918488164830449368279477274300757197282812675919054194157990270678390308227936493786337441175711237657584610664820035013723472674694361209604693433228369033073796468905240295983743681647381847681271580508770064855242036867056613930267568304573626705003037467876629294521541349308918277850317708438516332311160107079682970377389922784637906980679361501303423672118427127967338674518995338798711471723338265596498931064730933831404004498746701996748303770976981225745429206361206066972866031224429474907153018994610607374022076864655551088734497096815224520396863017943878020404808337431481199401101427690932836341845207769350014820491014117005756357912212834341678969806745622468026149700062016595141408191243502842907653068167193069537912710138875278745106430866190314002073453586121585605029358807719253027004164753828137780067541068561472736037293266656941087404156236739333758884327913640834900934154573789488338113274578600280021865496078005233383373440934420348380156802320515351208456252612942668738032416196538746847657897481720395452213887402814934588884689712797557645818422908083212381512470540971410958440346499902522933664690544034500260039699042669814966419917028495457568012337949943712024560305812756164855292026178124345825753956077056484828961045911751246469905232817864810056054057010061227613167929497569388947293724160859684726225015831448132796929472399932131814556432333284214804407309042366578939069770307059270796046377258204815898788277448356455059187275668627461592526839715063883358607826556620247489048371183912128074302486399394551692705434483300571088723246602671086657337134462163797649491944277815111025271252464027220540701966284624036925167656741449172761889019518656362038957754481297699664337781926602904820623840853681936115125872505443055531591787930018870569477760041497204738125910007542259976054678469074785170783182001009188025215877354485758286839396875787001334250283124287619636979057361302386458923336040848345339407277080106334141317058499143175487515139835994173347964357833210412170219801697314372321901939655931151269904276431801959761170128940734452072943296247272462300291945797994229026422803184040938809747695910179614379954726585567309424983012168200530983756596669784946087197412251265372620247723258835842055582357832155197944248149717188472202919044067363356509038511495486930766885467971941398326676438207625004859645681867461870973216962181106535028345207595210231346020179255651064951107221710840312801660319893327245273605631888265830348868142525048015785433081858844010996331671626709948663215465703525255036365191013429214697134750241030648772464715333050594705928913576031306521084540667316782819078065881694950955551755662984997574413024276319612375513344045117458596301686640997201564527801171567688424590544333966377640466267959172406954993518216268393356530752260999970719254818275602090460039829821936167858998482082678983647398242499825100146589982838455110520704168856514250899053449165379011883511298160396534629843808651637999623966604077303500068521109233536770927121974400327360108124041083519766683908580242693434155131033965647645333615493915343694229796850176727234287884799432255272424595263000165089662147031172432552716496773674920434330467406009976090847488677079628447977040233674389565950120067639797550288968393892525065499262095486700380631585329191866256439864463407064268101891136923141283038927108154245765116413162677318009540718318478991760034564282655085684551393223535863582958914843579117047238125463401215362693550636238448754036804647095853706236858503958021459520033785023956157158729777830289773717204339305678232173413011810579229009690061971356358862146136298843557266715736097372248085234753472610055890155354624544526421431040175823638390880771957455660726974326131027916462179664154615598090180931440241774808762344994130689293080316824492627960915452244618631565332793356308403355999077228196001202542805452543625542150572671770103011721012187668631069056873531972341057294791493276552890595834561333571067484677475972661233273926013329212414621918167815757061549311359467475724562638267982940911888056633789955036233212084704106403842391411485280665126850474640188333407424222843148490241825440209906804334432892784292780645262733081703462590585177717764608695165747373993242717512383744106169261339299501054823034552151036965831852256366663380063217726767831975829278565267621024947901193523842854681784078297279485010008856395523397415182698992637658687787571845823573162100145154853897389939746815434844961100078401283679789146468725411943708628711253108470639567550421922508685485658888829050138799070788046275578205316015688356381346766711049335116260444399085391850818250883638663204269914977264597016189839721546771088223445798115455779121780790962635333122510522412108179422739289611110004941801061438718712348173522072632312013083055761732464737207783611330315512333707169170031922685224926115456075787666850653356343623698319419219088469550167108362880228076736711410816597053012552158587324852928351955147214779348897810250816935139676561796539412510535149613825704358016213062242907732918999535407843444971655510028534974310672039632788580378346689866102010693937713517288184586018614357631044986696538848698735990068686625716231904219522158824251689323044737474266882725451332126066862744524849575407288590175441931998291035067525372976241723119201676319272228040163732211301667126303874624513499863892944863976010175049883408089932279511304413020694944579773835363662316106004519751613707954678753349425100343574393333438208073510515921903784390320162060508191117785717688572431662326540400281504387929163753927728219797534183745526071051323077929930419705489119718186255766366822791550968228108822330646594424235735005843331349353441450381443722230095598474192501024428323214021830621313403476029302130086461475092510752004388241413262042133401475342745050859347526018787198205016268681334448806074710537594758356028843685706092838004257791402169843798582035070451006693133378534052837687002953889012149845865097934564820885807177533020163190665726270269473538981727884232615967729410414383285581877310717174280030649981354385779910443738296330560625943302206745662637804502441154726878601161500865562387960663628878146369480306631553458760213564459666818213351384871740598539090500785635906704365322023858696617678105273658260689203210196888582115816222194166873624971878254612003352833230209074094192347203031436835288140018765080843089799655935795283853371943318327353378350058543808564841286070959049425500807143526253282506700003543391416416497190571225415525408149060407306703821308139875146528264878903440467359955588541319327104788567964322844577531082931583514384166810033276202577730776645452649969917022345320612276156232370132218396412312724123946448596855333373582221445150266097206706181927860578519803497828978955565183638126085939375787946560962262479839542898164925703755346432790314094358190182962583431275359476945270518372651124119340126374625203417652120926377862930098882612604634010337470375055068243279444969085395573427994584140911482454003894732644784445712902945500606259026573061936591346063072107024660440842987200519891458210870439060981251643609176695521379961769894681761947047905385262012690331987328985226673103908482286869229359663023794652712238233528244592063921195218434846626507922876771367142539719403558148588729931162456056891731897286875596292221131459612163741661864925244993880774157899312346522542647148444605280094433376281949415445832989508814665982043894693585950022338478041369055465907385650652747298017913352664358489700434457738018995127269010553468306137689680225432983980542916663619963489966185250185239913154780226587079007914866926870053877229358703221045478683423144288600546120963727254465257441312033883444774652723217608691794039216111331739358843321690869020420371774994597719055910695157828955030769273078660992061960849479875392073353546565246557280831377290449936823677346005018135102551171624474559121351377298283192817863630240043184349662402619625321829608959945991133932978434985504678125933440056085934843219916898330505255440028656049552329609806783861052722612058388856328450659304607928430049387680274414140057436119838370663100822528492791518946067163196737514885437628427051504654102245136400935150821725848001016044224785095329843151343261427176783841440425998732616378883721964411497879442548629549298290062903530653363504572104541479564923264993724692888305757277287515872695917647608812660515512945933054096588964384313327369632577667358971560748710483373035828270536323673708097274772336452152344484382538040433929638820392574041840800210527502510309493109629193734159716963673881175006052165093982705534456968293715698636418789529172992720518064060592657621472774017912560455949315866326938451496527993484486028750579224178831938618286981928874097566304298616201140277758215373971664740655714848985052165322938424765864953434051089423953137055519232158236964102035721685527010711431396716651169113105859980824749937045151686328291149686234546908192250683989331416992983790997972398519328815551158536613376295425065538472938988735280829238553397985675499163285625668798256153264056338113672852039787463131119129198557860279160814105209716251600927846011783933361360556911810086573823571962145974052048450327621456794730851110086199872847737327502756985167568329493840173464926903539702541411582395642966430344004424504153755639109098203509876677734495489231763355196045516775786131715413283729676994051130548431738975754291037167815206259754691216601473986598433619377982160039525450831458774628261836115796922979785191517641000164608870741803643865431275419258301113585536692645260862035131298606028377289304258076535363138536817292157203630277805206073811995587679043282718903846595723074494169738321427240133019712980155649738162891892797075434870091584388039493906486754489305013451971998431500433972076459362972423273531049632946305638670609311315372208430309832093885252291117963385946295344998135799097085989978494780310222552674928010533710028597341056534761063844758800724838000864591322981135195056597188143172430721069137663512460705280880727660457903150392777450375428173683181219678223930110544030641052738180495178906330726200453771214822392166998055354831448462436950930654452392085336326227309558475414468674945889791674534223291459650819439660773113341674062935169558101685478107771609190931077277634691484851493118500867843288422661737193673876398447607368915544828587633362133796549061751243574655826030991293770557453275676383779441705384919473579961710333786227555339855842020758971456635196547083108195904472491156489017122153956633545909034241413042866162697275134905876959167197821172349118490773461481089093734398760771519202013159619560322113156247590148308454940155896019100087010076705397520597141408260984325447204295919710432822737628757892868261805955098603833671415018485824894951300705814686496909106908948211100829989432209876197596694057565100901595497778343578863251378689483575581355281856502348827931442772379151038347344159359032853200244907739749889514739468648321925106467011713791256877021573204476674013401580579246264758112593454311874254940268600985822140016591431101818184949379286609222846525276149050738920484151590108941707381886950549000849000805509291815198146844533516952320586792862141306906270976093679772509276683083761703732110129735697999082951909770092593954869418230399071679586325335598172550216313248843339737544758637804631501138098037469980580212354949589432154514876395556832327609623116159231388636753300704876059252676625704477261108639562573246501312116616597709267366733632737541200543233179927736882585670787241663722718785441231239577105322071356919549906362226293175177044367659968994208929614604033912314953790764218368228542993943274135170116165806130442860130824630603268398536481066670667926018101070462312494792396963892101764364147806099161928637353704622277478476586459288326012168667489013055045426236142330935528844353010480701273421065307381338494790449697366132466348056576203331828460873955021564114236677761905342625481157033355421190353079029970140716052824672612633243963637479971119275849713563821219001385433801704763347365372209939085616157655869933454522376245648836570572827011020620937010175841747926581016909177566633025234831917316387853872075869878118986020338832739450640449835096800385988682590524180694586344916885912459380522808284717420817867589025601536796015406384658944928082840785296175096358820705854281997924582240866049943295390526546296592698173062134324330894624520361046178208397150899447897769742283092622418522351855554115472991262556985865477354065296440922513586043117356049039752271324768672352860188622981888426156065485185864872727673020309686012100386916167050412574320542747868142140263789689453696073053728935718297855600759244106702074188607438310668112781618988408709160990255470880978013677639873222143584664450668584524214769177176493532340271901774554021320432208162847603638362888166623195499499012726739160264550306608110640762316047154003832453228344163410996964392570722800403092871424151414179289725822148807511976978590191344526374539679855038939069159462060012514549374685655068872699680191519723910114284289985432829467795217017500046121125332447448115357176092666071760040180166855919870326143718837482705394132684784369592123425215278287473860336424975896453062227311510465946973162723477094696736158885673419455747520035473692712911425169946203008300576965991919667324473046376363353691038852716702239461875025959374232534876985414070714845790651119987529927508583299288781825996921160821917409947324286419383669444029330060643634367850788372910569955069795740036049142690431823655442779741772445422935745606785973343593688518396806661072467606410354344264946697289402446566832883441862538157268782523016738796391682156028034027634605942725805644738367700090959882744594770955160974635797424291814043076406032267722489921420596382759989624192924013869901069146288493974849347332601975749898270963900732774752799039031768059288042664986166265387960206643611158557093800539054550537426781366286629838135756993471274952455936829509568774181421180681895375581860710454455431941003172723130344372720930329420351137676702275299222646830572161698608820693999752624749719614041950843014893254141565288218500322264075325327367473258156133679672177299227003974017826943359496990159799252837248895950686376914941981570616951362939103227999613525683968527634125060811857021986644558393784773551344035957810845691037148046856076804978258119377642283359027021688305643961493743247865414410403734090621970541324538542202604371753446434928045196143731241054216934879104262182722677143466858067351365098357632965305858927254647718116722471775757425859425974515766396529486411243515832684157458196941891313492660411804423793020056915414815439106923825658382362041393214472422690408724998314404528039597028187905367815653058732017187111589225587659451435746007023848009732094300092085383277143295710197910849446417290997011799752984598585544924632236432786242273583768651538281294001884391166887970687299340448652881498332712137470859912090891168991104239325559970967722882688010066156533210622157822113345905676739025477793069593927561432930397140280179900083589745397557838568492057523456186939934689589175899646384109114610062508897440356702859417207871441353371042291215529371045014212374940705572194719538752761223218897774238380010666008337486699021022129872523875683578198425620535635947661405682473917492139085191276998944186801091399314664716211515264082019132345899109886001449016258944336765849165825042577953629981874520938926682646325138029532987056172247898760238899795488694682500698161484524185394762479281734604121524660421757952329903603149960793620972794832654195468027048490469500432778475412666724087970971202770764861470540080732752497315755040211054006471111643684577815963620982499269384458856943870465974585443190835367548512493835356587712337626940963734555769781829854434868015069384459805952097102400976016203275340610353354232053761191475661457809164757431974055546923356968770998197298656009197804812228629900395039778832509176312221454317731014904900806892297566696062624403002725122233331992661380884160067492367108676925162571957295762246771985597171856190769864631551853922461590675692918630579841946157403946574890367921557878993777983865922324470351584267849207557850048524839045325095543097859554355309737847384665144408332858101323968999061708691914124314216613386491753537286141149368966662390518910738784324603161210229594233672247439426058813907281277249331528079849790324635765929684275882675222754252357509885132092220448244913951673636956367112655845962978400340704558623181213823027163205389626044889337587102875338694289176558201931979063341630779147487976060253366743774417887493194851963030582802881370724892932842816888457868546131123649194966468981813587857097186450766482686318091159833253842396298114978795173775484230930943883197809235058306756186704834716386970576789536954087703822880921068239456346577837371164753960324152245058160384884466035329155306871710394036682130448824191941571955756162892935136461362325075103949951853319621393693276564333503236882208309175333636520267796735414533123446812886879492211474124807359969763301506959781306992100265116332218807791266942598467350360170390342353956597450578405913391078760228108590686903712525605917680971863587066935506949050698558270253014655432106046781972517659018655120863999395307069820137509531033627211941264241487918818603197899369680015134108756623926332923890362412779808728373807354251064969453523574166829906865981346277394457404586094491851209021975632093078748278472928960035064032123672535903551721361571787413015256329412241634305336815761729203590630668658071680172719541699102473159228294315781000906134846165402967733176129758425316691326053230329834475417176406924885083101511555240631420420380204657338612130012327412699171209175840608828643349838600371443761451773044816075180459760909296713810922360595274159872097187441252875484240393391755075679601005734414140310768262989159312520626154410539305683910532476914399531886968562670667578905816223458960834262943022488327626996057525599480927240770468734469051491189791984169314284790345725303417345616726482392954192125297585982270162807652878896615305395520013434235100523988981801871523070416244975940743661584440946371225971500078184335669855351143106823141826199336306358411992587913230190260676242921304506695207565574260310793763783830876576346070344416312935283982347768375465254032653430387229192020410959114245741539238298567830772345301930235965641692346505669865697390318706997025507475708822792093688131833541229009385437273297232470513496174289757501457433119955924983615642775812258949138634399365519100641027609929059249997610741320173733353168071695645012415334673256998716228261184763698337138618719024008984234010891618245824592229127194951977033022176644399589834481577279489761437691034702806176646520272461910905333863216633015036665808356319034160744950370536602205063315286726429577369658839719719399138609882799688085121353820245050164467935964219199599439198518127369970267225977185146256629444992734721354631731426910544360445031203892104849676617655829101422895609006871011157889583678984120488610558647834603239067453652894357837652253954982951560656156238491445650525687304216428627863370765001901341886324794949827754520674279901616193473471047012636304257867405877214046493645971662788220125650298774623983644113254070974412901649121036865724472221737393126211593231223702126367076907026342471938741570468882229628430777866153735716059486908476807171375812827485944470853623259773173056336467335669868332745241878411105286285875354156705864557926412246395962658778652303438016852504015979571598251479642584412480707333922323314244055162213766152231387394709527627097261652049626082182092505867349102807996180274707762237766186955452601155748809438017982513975317708618705699573725780771071641029615301057491441148549646903148524597999290756553299139566134260719614012224569394369303367493038854034811550718479797617697422327970261780884808431624521833258180280776177305934761733738483325705191223621753879139812311325050651465394904042731714772410212993195730129362674050056712280032622106682313159937971763521985153443062408457112681953961815655722990341818182974923074235735961746112223325473371709046607211825998483964089199897635112806920025064891841900337255978462730555147580610520934175801631584033632254275286202655647290850388056639462862956437291796947794403094920343213149894681985683356390833303222711081107993817046231274433934559804305140578144071001501041358748257979670410528553241374362960998020938482432480643706515325725848491257620388398536917343279194860215597132360835630886141828636338160407081918157184528645626569169434925393087031385909788918445683033144857616790912001688176921672565443359895969792529273861347052137081298155182534746824116242494834514155934148924706166001884251166122247593624396325144860190056485287728670144946695952790565983015308230368966010395190687270008936766087731931504614915955156506584814357768643584594873862175115604815647437394983805470577399817905582731610280066078528363862883914849303116732457353034957686452724094316602359047058581947425089593509938667110830029390308502907091885027752295202893462596535055069107083906236007803830618241205561311114005996655106494309112174155047139914822197479204864646732302651222442820911955477883690073556051697941664779149987250738563225618766313508071485226930979627975788092093628829219105521863500068202785008941797407196672818776608812576591459728572266992878304239266607030398142514052659482165996958726141146768156541985900859230188739065411768583585001978237003760304708671214939533912972083258226891184258082971730317862219846980701642745399493706671528007140121464540893705477000006754706538764643360101920958112208120173370562252752777300179826009749643681939708654969489771285072397100953741236468698376410514869634257256195526341837718427200979910270482323900670191870951807248513270569391818177124423014392868720672580603513063563022697191713066444347614216810617226352637015347538425190284857989838958869334288212395297358752241578488338529799463666691584431249235066876900145436526654824070868028923807537605771955046712070857487114449336903180346919780863571734562453018421369332177345398441371658615352307761461749217614631587058459518438441241506941907475056107100577719010032375515609876534718239488143590769058410467144467073350094793647784684297077499095441768498213188512965168651400637285430866341155402718544764610203312173217039485417038813183399483732211329168816626628987669737303788508583243879338608133201895460593124711978766872093591416104883239339241935578121198770468721485837322059974450639092454465725791146917163352305291760279910720108125528964676414631480317399313432771649845324893106939969106434943624095797354774527742086346211782338615073891211154675509391561924653785393420661402296033264583712945788627558307689094961425926552455071366975721127352954881648798647994863391992898224734795355885156178018733853243523758813761231404642416642318800989680128099298581014237667363984641941478669310379819083938362349000647593045814688735838069549627278097706978461690474085812472194891040302897219659540105625698372306527545711406944889547262295212010237039141061487281838728936091606399401180455033479367681080621752451583029476649946061660645960978983143456549772630765448885578487853321572403750555283737083381190928828620681113508726241157911802064123921734858548627934184876144202098326922401696599610610631666326512715624501405413513704381352584885152795728080208561888680384172499959439723723180593694526917143915397668058942021456275154452009291294738908699742177489965625926193390761329089234346048583028761069495462259381678640146843577335365493994614860252016543348530846860189179198446570353084715122778826633009260056604951346918888011038782588525079228833418375885541245167342935462665388298092042880174218576802329019665037898916278820810190418304686166891618012091823457254775440022461900950905451246888042175511995143728610282132639853411890850723576944532102760625883493829225486099512197694933148718697995011695291806469879625898429780694299630300833027958485493651925620520416985216453140351014262023986944525789841362500039964527591244660356650781661339791976613443573453563066585083678548209213811893469073763581070521482159923587329590734900899743291747570691419731605690396430220970931043546571349054316560141636763701321996645527498359227388863858469675716795211603375807659858951047749899278558069532567845757642887138963312604628713844492341758175699806419737471540900860705987377233871717834654134536100939723987702085718159632619898959551444138542298403531098012544714064950660939986234248455856439534104796154269143628131592805756650051217711152931917686783128079955474812615109015328349800679094437802412676650502617022784829236861494505273193172460442256640462403023548386842269992591467817840883610626761822724192917821220987245144038409347611846128950494464877850496558938238369136381914659143374192651835344249734260329386828873582406168342692401664554566506267711497096417620162981333552958580303084193311394812771780820391184275934879517161367988520451675463398969656297644032986256464852054591473056180616349739486836704896221695763560094040909051504166190771569219028990640410343174241219322152606494904747281495670248012281684924540965162421406834577202867791386202196432777669687131864300562892440858638808627162404753714590399859571531699881790892051259863599198480875362353706945940143279462083985573157092076736508543880558294705382216589880799329684950766869093004218701085935990185675309982429958122279216532496818138832718243587863328715296002182723317626691505382200666186266319302049607580320050189354854576758506624775512270661041646089150232431908383863601204351499819896147785076732990481120850765747199267092569946219856916727020712523760599680684322193808932442228658632973966569094720752811142719830672206707915442899002783757648804327910266743116772434057874184817664553806562520839224193106029088998439470715215875725436113526828522793108937237492512963692902572444471144033141748963848964792158889763283525271072258572695426809557744879528228508349788617279350176377708222300305688587920458793597312476477676049268199688959081023039447956111450051265690164835268387706981443517918864300889931028062867827568413092734605891889520421860683428279412683315765943267959052564085267988358329001724283716867615306362533800752554376376468485982949057842694411787626097258010168642551533200689633708201695780944317850745088533246149280799563667779328689168995807721733864185874368492731525643417167181223966053913228272646982524855367158743251522844828490798249309609684391201110227352308968434746297012653541189394744693017412131879706561721771314085909811867616935729800600687728300675903653084831016338142455009849871932854424385993377503869990002362952408611489531306352848224990266387673512714442848335054613361779516922910412225485273021070465215048039039717713732792980593725049325639560644642087631530093775010117181614027213771522675929010887744829007713035642218680191516329989986388207147758243087061240937400017376664619207197835975163426264721930972945626429347628410279481373923994136208293786048416691558621138802133652501902619805754849658951830921477038855219277611719023768583593863083274524678158704641543295472906384631537904588017387877241751914492929939306536756508193404784132870542223023178551206976897238423080624198894082856389481500719203479719784279854872564601729588732606876867637722373234861173561568411993142793579777826608749916668748089106933908881187246428166414322763093570401088552755469470863767952986905311210960989597252841370436427261080034310104621005579153120404181298169688448006454089162711716078107368120715856386634845599943911250262739752882623003699647618749594752709300448420949021629532157096786635000589735471885767882740921504626055551205004581268744342806436843595561246379881637909501469408382662598491666115856605679830742449077525096114007515740452876662649018748035886229365936465733046944344791278947487334591923763866256872488936091352918836708400025549782853692428945011025895940405804229691515075204286195743324761411116778719890960212961629571793026803687533555128258238458314019383451015998331448693296476726409292104355027230636395942099848928538246318278486230996739821088663327665019606881609953316000729109476024910042814623887328617977323779526224737360252385712058044411996522925107221914536866914671273457425551074273016284284118485484132689222414257678783027423697367899618845026088463960061642126281442366924013059463692213642018916575581538871923196791501430012173919092419665900055516622242645504949749983270320734558161928716489171011041814983393847614109668355835885252072604696613849888213459932559892588524332111066202811759856308447524872581107513379195900086985299553657008029865632243502988195404657834561163300879114245645391215343049495136676347301627112766614158512029796616009465602809848661312924618677404101569890736061125576694015572546828117489174820094338228457266725073971759410743711982037080104751830059374013302915999157421229725708984097624292370431872194367955667109381458650688422163200217728165349827589957705470627816840015465247303096362734789448273710810872500262732020995308056693364900130330783653925341356300841825826774938363394175639113350705959402004922275595816879983429217120653549258491055615319073703277405291815783462749650739067557103537206059246945463311401160930564807312928623872776155620532880688406758283030046663840510476593299760312213327389539539676322963873711179374041196361322069716094931525652676890415227943333788193067945609613147284175655313289499201624938493824735471032063521529897559956365168271859601702071450536801560225416744428126803482734432028432251597503309360295833881655233394976987037239245029073741353772926474321241088659824751048857123004997102484508262211370248527135055217030471629229371653006567608858305265352596775036459853176483694834176777076877220198226832250203263973537151209233976026026765430877286879821059217192960276448525963594358757272155671742017643962185680006967230619274239215386512890305511112348148703551203968740654261571804756700041673136142795445798888404343715952730819533536726075241805171468033989457121671078860703279060367914954720222487768107840341667357850693421009849667126039108673774211211000088887011126873681222310967702120653395841816121424162431465355153302929586000488815765314752736141359841525758745008119908898585484321897728317878623416397940629289897605186674846162337771557016814382344435840337453775136369176422169953353430821181046624589893572073682499208060626105910886912724602052126220181611576480260207540243472225912570800727854322452734372225273010817454491709257726029371243284748212665304348375169521829658014388970786422777825784069007679550171920504749803376420099581523119457887763337818569025216019485123278165760548819266047236954696443339650835762328812689206175022726560781566635825643721817359070515702016981418159393301944344384192904489331302924648387218887801496849769030356584990960325085727739682540199236151115289043694884144679936653172857121560610750141112807148055600644231710555341391219288956853690017122289283413957183579684071625460073494062479441712755489981838439975141204596940673477286197699381100215643134258947593063798018843183928869496812734516255422571766280374732026433471626884907516600227691033873012924944894998497329085352865415099039276481256503269259406467256595811540548557179953672460020907749511129008144590059039732908241522894015792076532972195931798897212165409399134297325090546940639534566123461472329328819602863970390505070631538539037009878986539097455562196526567743318098070459779171813058103133027271545195186676668137957919395154899033381723923623339112069747858351174982151368374153637456442766538648457780284753557294304681508099508040541944609217223322484120382491301734936224022112227875711397039525425703777025079616683208744284018182400431082151962875207699811229169402696828209244118199383110833935947511247477286762449814988210001772923927313124665410622131056617810538377426132959057269348602649149760451446778880703628831579160032573244676974458181531661368072847168504741340003576361022078487281819305523921423973881180671151693089317397941269875342624294702151461800849394731606276138876054797857982224441390051901400236648531668118696851021062850895383190191800889682275380199132617302645488987855003779188268988918895595774736353580994922587006956547189831681056576562962800855340634084462648655190826485305807545561391402681627127956069061413169071560057592799074356033862310119668098289360355148392398617570308523856969005795808090890118916269726057995970660071588160823371930835664632405145983297776001874096794413692037214062867249578317202995216407903035902364378946046436888113806457602974339216025472012332760025735410223283995767814665842994172563198456359022135682956263863862526109883366715029924809761794472793763812955717750179708884471882939405264520309994227708542847760361991387188012713851134536696610436614978698498404970573443799830590279091201044441666556055818428236766241903485804536636366546348642214263434115943038939665564657119635644572112962545213115996272850755393944715341601474831477814696162226044925040739552984623711603602288579211322427669909089858749253732631855268291438322225071632612369531604416762011479841766475628584793807425808765661077454005266729964825882267126082876621516895218063935138390791565138241421991787488994994278076067888413216250848897011394948012935894773087926799279612364322973208899191508884322021059581195338616683604088038389335852515876517115112890654601917007461214233555587649165860122518912396753967354876936289473195997215701751605161635204905220108662115722644890631858240873349522930976717466799032534083335317303248184854329251795464151778962568493048774497457007506379187256772765904139808800571854475102001345894376635107910951844125221731841946709062121607841581798790200429028515839389340857590732655065280793769824701004455197637418590295412775543757946170612228231783193945613872614445307255742651775907138178848704695657599928610294501864002938177607444462378918492584387278233390803512555064038500548205745029098639696981995246747650921468853445448355518760492293223575246072237410302961073743343697958098508222115043877502097273260426425937610315855076368982412972512512873718566888588736586302422359164073590724912330879628297524114539479655438733650084975010748403707761889589060182217558030537145477039308705901494652073649874003407286362955518508996566499313575611379634110370032371385729735182852649996322074992698413523896941110071309869569679546321122994955125360965860856700475677076252197094624966250890378415540142545470231292500253169675227222213305093802596254935435662237473522514687346373276289472921379983673399413767136079351623394679021721170456125153180542209098832088120620693733148743625052295805470900118549295695691671252487036579764547948612593847612621964501928928456862906491850865289524768590647990522229253234850428588154819018456388484058262847850432750160697031430580082371709056814060940851500779262465863142006775716039699155274172663348982911477833609738805724521018885976400879550925897953863977441096728686518308602475242112489628276891519008429522965122979716558309107948077147466015654277879533914098382490125048282941688929417792880564490487522759892840531166781321844620158675588320094091530311984918704811484883209097664451007407073148819155755578540329406072953283833244669265881513676736877258701762711668619465022487815693194341101422699995751446687602469386294366128242600771028744055602546016667324764606833588019172115641132266692644457891560666128521258541151593651741833544686333690123699180076877817287121237826403639251548270388918978135681753031681970077910049674839899812407526345387016550119095499825057306754222240977363264052640264440806258899909749087720606057455452545272346607339924239422493046715918144677505892118884728616169547015626307894394870482432379697665438920481862815462923223999514420121353190170423439857745962207980231031072343551942982605295985884258250489313227584077010028381506639972518950616560896064023670794592864543923266005216231669982722491946310919557026870421532768012573963370214635910113298682394548599093968789929364631375981323115719955508892443865276695478522088857104673858729394352435230881081543751167245803330156186881181289359927972082303942806132377325712994594491972212060004772349186475512168254560089723873234344495444603809099241348257935913804971449843954811428207273970630102726682249366457846843506220225142506955034208115133812321818855526401659578986265045316293112327555557403121355268935948189035035920397974561690137992967942951309102780208825740175201456471560248136319750332186717724943153743934564399491625962515926513053953704681911657387643904198855459893688624633339061781046118884692760409103973362790746148945811073859073495510265664755543105721825145437114580396555075191272276007987540580463255147794623610395412766803231626174003666816743756825371170893659710441202584100963878284271826365235147248034833506840797952027935573690240443437081141274590675457521775084193914103399441406417673280545137916922237905915113876814270933312624528730717226379905713310067199110355009049549447850438574849953669702383699614285497151978669580016267612040721868666106906188762210640169969635270460048643027642265778154697588290934730627182246186284394239741287199712397207144281230869234740073574803577362281503354175989115681663742332914162878027147153957840091247494405695963497394890483124682048146822381226742833162408244266100595909635694102937724895628212258419047326608257819561875570446613152102952586676865329900490249755170962045702106291759842679564010891845409666313870940698780573282777868477696654437598587724332847521755590797160218430080303594805684226990113113083978828923022041293946528212894330293765110008684965644292588536492956811164007354193897588440298611147074362152572446916572397476945926298621376918600408132278687545091723637072613051971855133554575307523747435811124295739019057080583789633913956348876586401835067854736304663844957884918214547435977377465856250843265352500744703983938116964704775687896319762726065472929938235701191934268303577160667990973184231782656861172649538851845035274446671429518441202606077684766002720561815239418250973827991100618129558768248996901816155769952109370635233300090195845226570947795638114521690096223710338861102255270983838376822037802164826326048394606773164667218343283943683276326856991313512288249769832262923370281408914676913279609018932932744866693694868256757216910723581472992262022806079247782654623789651524768305657573330345844490146495099459913090234703549541912952249365633380051781134193776778819963189918180053848553366502545358581441178385494524637493195919816704251342713903893360739033618239226851889795027026119795737391764521401385481084084113633836264596644929632665515670038236585131644509216418331432915193228056540881968331797857121248866882862080166130585386425295886854277086199452820374368536143161763507157589968842023068353890245306040380616144044430943710147845557500680838749004183740410375903751746953866468784427254369743685183318413451139509845574917018748587863436526231859880923433953430928612161350256811494191517378072834884616829356303309110241741933158288207436693335350660894356399200702429782175935341810584036838988343843241883545069767185547547646027954951226313145319748838111719242158331333923841923592294955639568664020003166967406633689004254433766677404268584561813782593233975337240719679985504293686222398976053747701243777351210666262121200245372430525928276264169134977049076761115776587836940545301285339662328950922568440830413591645943637888815373639704068384908994497522030876451817986824493040423486249892003652022827109050809838459829434594762697533080694058542877730089284110170710709525777583848222821068458533623839332519076540358911938019622614589342625760683390237721326348680935357334841238116709820899363795031870291064372474746043327888526358300660637524818465580699528494794211603605632623478126394021721503316964651257722336522897166164329250833867478007458427003033075837601070344871041200444453631206138225920269335667834947179976762973336496187592907296976809796596702275218880662416263154526259571479995790609763958673247502931945014554097743330247357736591279340126742339333124176583554880643686183035599124191827591602919571628161646811203804710939179296677589769429560201503286329977110614587471901348792396530031050818470074635887817572495888599036184106940188611162377304411881841054612847141645738975475338728061691340723477384434207580423106273396008404357518677779357324674513440400783355635351189443118933470690546030036129958417202068733496555929545030008924249404244840516945641857789970310181739328341162512447950583006430612746152703753342509224241868650839880480927122111125209202039881892500259773126477096034257005467966127750920791303267665123758430447995643679026346603303711876884266331138016133880769973668455772116038668156404532210050405808079384328238851808011528419353728830304387183937061311654860879441588848766114225353176736269586269632203909070542926008329179149441427564631692621208697709348406698908858604957292101141726555867049897746328784903238878513734175623507722280383956740741273063835234222406812538637929641070167244027443824361898226742611933669984079158482520781016837763079954171540702615846592793577060122634082234775108445058655735452358685922140224950600103768686561610860852158311979735437820734591096814644461051876339314025001439885030108607298798671333176736946352987360902209165843761175327456107885936144662256833318983258676915860960121641061627189220062143533075933122029435487914669437123392525492050566718874732592239268519413681716741370240925432591374207350539575630349507707260342300372507576557344312503129646689322903801749095888728414300027691012031208610612051553920498012005521045338725376159979630081382140692291763938833159578006481564291947745420872702021220160912283029842678826910462938812842070844300727551890546065585777168598729038008932095527315563088840931019391306841321291088045207526835208169419619865341106536799267293033109861908643339035592364688248934022113521370838482542534016796613813478814999619124277133972939851280533854817806765007831447096040758263573173747480662275577441704333591636975892684148214494411145405473890864083815717593356394732221681847727157124452689454723376025776937584722927956784018214137452097052642385052613651915273379936662276759722415797627600553115660954898376654847828612653603090524833838208940934833403996765513128359984514590174314141270635216910591600545911894614556523450949612421493674094392349112303739628864859499670680122866852962685703381546668567470033300498829354382926750443150720610315144403189570610639875031050129750052544280041997933394416745057206312659164219234047967659963070896056081855872568651363809161647803541391335750260449004567697799201964207017680896985205187909853798523754665015308701659873860665208168170827295358903006928433095019423088623646459300827346969017487556149519274828064196028173874912792531077043322755345829645938302143219316833493480693605559371685639579947109551204270092709863905052350560660087554270812622397807491190825876202675622640509568858589357781686648000190754125106298869607982866326041379973641822903734808466196496184437505933625619185922588826738072627934691954816864256604824528588254415714346282215124602587076657751897389895078048638225847725796358485347710399467313816359857962943127236997946576587408049967178252226360997313231566366303859606330068010580078659050790949249630686469746221019164120601298402005988891398965759030904721591172174870763965744881295862213880531543656761569687748427640273072711555320507267100874840497439932195038978852811176317606156505727117378677975140092323912991039175014667140577862952471422960932704410575165181501759027488551747388489469339765229741257067817504143458256582589719472921334965412722038255046269884122012453091929235945586501374496253262144465852963305296775973646569324076359912339523760086617639018728323853932462594898292934215693339627181785881202812296738692379168337548869257114688384354174539187140045164472295868475826671863542439320783408313522230838007327939943292185984753821319611963420380619831617545455879651022487509834652153103672593019703534248875017460843332206672626079108407407767431246316502359438857711798800039561037975334769505668798368838802139864558124337381483683749771906775638800738348528795949719689671838334406729067531349090993995461257027602583105562011552415426176626487976969447212472481877507412648904077399486680848424143792149722405864602486873157096198630970351873829137614520627033053852740726009368267560654380876357249008073281509411387063720482837664357052935644797784225345364222913408830223548883214560820466781531673130229473306729845269521216390539310989438459976008675648808729040727794110541307581251068233860297037404274955438480598436251204111863886953907020540266050427895849710901773874378283008270272581635841767082648491732222792361339120221894230338992321613566837215160026026272024523949795708447897552400797811293487122845335863354616192519792927505880132012010896453870787517033206055034083848055635492455468771643155734215468422497523492514992670354339676210518302403934534147855631332621456909332720018230190016350509528810724929823082974601341796251299949507792044570927317979753112530746672892812749783691294001092803174141170828484172078156135896368069859138324072252620488491607549045655488663705127771876853939852846322250270861789394193416927092710888348042365194577822539875462665175165393191674451315633767343174723307338721280603274932739168920284881053501156355188344038172831432995483112258574846832859175583437336101990010160745357601939012064611507663985150453420718229399595040742772822524595817710179114514639438437834842759331886039534405838117501623755515327174237995098263591953570184982017017463094580288374132029947389118339202570578005875899231649481306657505430804542482071823991852206901861524080234480732841017257692063205295395369628589432828506492013029684638927757074383733044215260323474927492254207602297287822778151149475105884372413505230709505731805424583916062458858163700967057760126910733202061237252873667806689295916965286373826597466464429697034886227552426896097722350115044699936507225552725733911525399726415295612271722543448961445978338806855674983896363846681066327311223072232619808687552069731703677902836093673990182448957467184778798679672186806638607556337252165149129921638332035154979067104656780363585106840832340247890088747761397894618482257818870017844728967692359798035583493857216231301827641997221045047933078283074290473983604732002131780714307281210187624406235864124019336346922647990332876614650938415560249518028506306060216264877886998493245256352401180354611036783177335503658499937670072462045556800966763032435637102198594657440906157657767816461035766789779283410711090396067504935275488834083797791478533404145490848693932398100099290551680175636077032048050523727672387723796596586715479933638469538658778228042486183898846365385612709578879563101964873148625198572327813356714165215898679175470363630177897122933488924106186345772432993041183766119706534206485748434901036601185313102567948799584062946325542064297450594183725066831096705531976466873680341667624885611746918825246455452855739380610193456232515009593561773978218510038449336833549321498402434495415193987484432044384908442698131302640974366707500573924734707125276408483708030182440017603266181080356657049021249216993820065823626967288946607197384903339083484607805784105773226338406818020413499496663488805699788856455692047472888248059021113825492528986442625508009732964598468302356690342003294818127286159075153531365940619584502732955337491410999681388683587661907785332994557208860979275166885547141409244047169688497988183130905878382101503545654968100787827483004810108728451499625615107371869730739512348571216121709075688384628610518083183020739325984384114383847836758735844169600982641871582566929105543636750575094375721797691858882184129483037369758871854554842784617205481718708193061982820211392433115798589899348945209597828188787917881921051754919983585664206079703897114919438838543118687507064342164748204322552104877665009139549640085668788554541119917914796895027552890692941604387306347155153751172104633261601368905489933768642136016669211944064126330980945120243360746820947715781281209038070653421868753810512823784710868490742078185026265292540060403483569634317853209945611790070329795368645321353361618948591562708270218820749999556854512135305654174255926036171107406722577424898059787805004236028988573268406566158123924252630505658873611526327780760734544102347382016828917423651220846558468620425640707347007504811523923987459261292153965828545297935970003896385373718845360904611069340011624198757951327141723589239485954586835162308773355895456770357798966733085435907998949636312890239367623357672567534019840118811901121827833134858502119826680218893484695844974834721522713944574537472227645576760609498551434369685383059592817687395065385920635750542671380127693086401567329523873343321522447025915080798611209792552248732659422808238715977674618149310921115976992878491237139471329020705786128805265481643785139951284511396297948883735211216265220575767156516686265550089935175454299400944764159550627481910278658698869411893958512828487982984047883731649768171983316026111132252447149136812990852619812766870887428091718723283952861374438209880016130339332699095991501051322645268953761718915997904574444136290673612183674901493293876023411721208453747535272333365029210923489380372837318319566589732503792874755301554409946904053930467554769705747589385193160894046736287279408849065702744147647827865655142187095305130311087874809843677373408069460396339115402607230601265062409049606432722386148471988773858169347755199161734717593159447146909440521816627033865909086287315071933495159957894931159663356470530665345862699607255045040753678372611281958242837257460343460870555145011215806029700755808751647078957885258861598723759146589111738285915998598033022106385561720308267010382598285417096391689714828925080205517159144533978357491832370623548915842884636789350370279662788985536783121475259735331418178431720083298697691927799961200021324879741207491848716463625898625112573516028178651369977381844034549993975559570129279206684297243316840587357397573349653074687691504647692622756992202337003902149535970369859004209204797053146819680313932523337654810413107824354588843267675899914421059921886724070475484939933288970332071527784789486421054684139547513432937507024082977275315813322417801045373415359650313176368963888145057598214896068795261871009573511643410286587590488116576370120453103338317643604403155997265961309062280821593335694474473531967541186515200893037991961113299008042462511579056411490097236282134085053169675421394079872313305351219885128006305872426245988339655557738542086300724751044424054517673668290386670569457013532484893269549523116932592971986496741185014464360486565058798279262196668978585198332318057523913741668918003003446196300354470158433581461227562677040122198302005954581909973848701964632705131497091167274036873706448024114328221929072933795172263860216677842668198471541798725778820725349621310486934749193562262959470578332607892476678058507956801175264863500037618349428492822262193398431724543248689348792337691352205880571544907448542028307831544655063057607192428655240498793347309913708281686970093125739398209139759298140908683056161897312797372590493299677899529753253040673181488703679188865098157700983446142412494772001659563002472608417149325543905755970422291104989285100985488198510854676223834285715299694384249043597750480073949474147499806111511801937970335716634577215345926495988965774177024898949862651343284177648731846917244093713427922070976970264643858638783780572953181812063030080187929983412665780648350962566007240858521893611025315418256223625896340797741349509288981160308104506837998470923762654198373651492631374953770709147159077666500551974327383022790831956426167007600898393236119914539967834138338636336406770414321083457313551965521346226211334195851268458465639316780946533217214806225927013174208997926739934503822078891803297693087098841308484673668453936813652163949284612744305914597599811934179936465301294560392615024469659811627538152554537377062787647318894614192651626733665934547247070280698695851602663615772264608453195783592051733987352068193246798060843953335429114391418498511612894746561047137916870136397056840805243671549545259421339620726593642667592777477863471290377806418846906619146365106404859792558239305942723935991116502407491118205535860548662794790945400456560866519027378904887161181035242007749510870725141674185768003573977883868801316367867620155433501481830663134159873842060089861350268559097515824401492869116854311320055763077701684623893894908815025929025536226547447289633494917576418080907356241006781065895612714019664346250198738418221523745496087991937571624916749800929667753216160184841465382811877380707516050652039113140163552092124893878334803745706913568265777794619985244690258245110382967928322877186576733842955134504367826476970255532783004822654239721858305259979888430093481069627181224586454289592458854629695780900221765322726104120114155314707033739314046648335237715361655739180832485343867106544107528904992559534650637606423182949915180176826720479696325563726590507898363814067173471047494335439866427776105496446369712285114319311022924338526590548668625127888709246842358594110811905191927671201507427449232937035013220430116021089574943217237936512211272197944478019352973528494592699956807994835767147639270059466417649944478010756820737728592664667031701045097966146318858104521531229386446333101351357081576484755072619121562047328316547723309953085879777955354229022906688035850802298761301101633476260236147002352222702908208908618320071200702612258549754993470514469105495446206403375128622254853908063349808248596821001476350552522290917787739700576807278154432676164997426156732447834713335734807250158599537173799161118173528145529586505394902807974278964923102057245119379126508025152306715946365788428050743382386052201071526200261082733898071053342358230168565178870324272579587081221115054412348191870315690970130908425216573661371864399139452079576267132382270165002844988518974850020352523291657297454327765438718009644312374365814265611915141006430555925656177463136973494232645613269719639141550675992321767634189914168465757702119466470321627659466391630099840325654319900140378523376892526577488611026321917923090296677320556147680836916143742539618378038377280102380179471688962134952379567036797584897705457755193224406316141006630386722693029580107641836999509514024224489930149687506169008249931907765728851216628387883105756948848143688451843102458707790866631868586981884522827066944398673029332489610854406888492750581187647931292436660738944699088348589517773857512115307048109543659877623972485174738972233675202473861652864798274679228305471202357353515468958365685764836925348397056800837544828162160894713330323747100015637467089769772275015834250741931746202283183399169748308047188536407733502686689285641067468442973412697744282402732633143062473661857407511710225649651875359663460951134060479951487735922536778280006013587507920120033790380426336238398101025365685663135734649820396241447493791912475101018199926993747304762342127247223678573497863045329886551753255700861665520066249662098616051708406153774568560157138885302000695299341109594965620034026069556769565479553471077675944294646125743872771808339549461952160925272456613548654486091098810839132109252788232826604723665073963629743104194134375437037420371789484865061075383318850694629069948663059368105657288607526947634600600431922975918659049063486248084821299259355431649758681771372720796174627950569860672820040201592445690741917398036226897530372855062935550453850670046076183454913264269668227055464275620179272883565671475756651182251098031573093623435396971850835388782852784662406231971236561583369889246620938669920738228557505706954676129613207905368882148348079020075738354894418475384053435483812404843064612673243578984096412461678756884437336337188084434748302805980571813310531426368496302107338126560115661264111777731337834561150144761992088658252159489428919036190092782089404787339409157478541772075006771492267259836623239925115878730888681658936195446981250968020387815402566025841460210455956220197419099587528529214147248911254828442583985863898604972439504303642771214569005225817375472872913281138963598136231601877245807711528024203889799982148215823016792576517882650916655815777788928147097629457873127402860462896616706246473870117452200011213941652287784279621444903274157959287139989340369363175291060711945449704062088658214471004221082261872115969984453124189470614423721865906715409770583779965391967078855910729828878478616800756634733867575981479901591372108382360220758031768938592771433943567251754514094048867958492116769123481474311267371810144995799991320277180106803835621861599980096123766544405048275583603018471125033294015641249434870646651581927513237547798135760378242659826723800359696838177975990256434206257070380693589262688265803429465047595656996627243235267532004125622956234276955329035721872504755690660576771447154357695781796706948040879665115339053882200331339651928806525920916363133013519176416070830060915499577292105080906892274070346672839103453370890897897733255297552837742442558718934076261094742004694139816724338977190913134149862878796736733937799926624897752610471351764698038769990916908365441469167573004947032454775798611668144589532236067013476103174802132645771152533768038206394005573084307730785301392796159490059153120996521461499598486266717107484530143615612901498141954325292229196380494148999237002539349016203604939958213863958948111333920192367228567186757649767208241613513183063328870047578769944214452827129289889610500234821778790550714811759058395417069000189764824657326092085961896221465762613216541136092469005161443856865538512515248370771338389017315386244897754104369575569484533255299021445302370406983368091912913349696379558735423188395494888820379779026990522934687598801189591788872714477432854091108217976327200504800411543992286384475240019680037412930972632340950909071460413594672057747903568092203196599340182264030961958824340651269428003326257914682434060326313019256929618031513991192624897961404220048474331313042591925662810272234520416301246028264211595392829528751411385327136013028448372295431269387407820392319262779626157333741637862771754667472468320924357519406831127119967234858921267850354241544217649564878481757830628436290875656690726281695971957575002696370286453385288268268757158795382389712740446306157864947713668085605293882338199751128011137394455150022377893896405124694192082875622845567651141455059932335561406376292831882298263346540800238620626055329971896602658817264419443104962221802218662125718318668930394499375292108383796795807619885803153659890308897135295685617644515993129710482244400713268524876801777619500072892146132271064453052758664368170995783588504639295345731409762641005615525114001826669088115082881429701869101923428396530800072713360271915439863162816461436282486093776431779263863743934439981908361682404940041520795800144752434389959088358835687129779706631584349970044500914727009027780462976052881544564645424886515971789286939687300389865085324405296581468983350654815431326107350848742648420956629034478552525427544627671142784570257609931633822295874112035631044530989848481621893450552110863791605782416715994346065710351170647990003339210999421743048522680728160938285333435215682985753169612511778980488627048635958494886463778876681567694918626543624076945254682881525667029332562954926006985783018571795565935015378680923477410937885986863734772847596762969889490887796184667480559793627305610574947717440282098057985861100830573646911043073198441370100782806472980438185198071906220529273902312057157219069486663787602137652041473433968889295585058853311284320627473484985605768818452201539094157126534375592960813729149738859636172719849377861970856529523718684875554128980105900314829190251934200109638499039008280777601565357360488136754587432624581917655363247171812083220145346585399161989736886369152655398300026745065316517982784619791688860595462452322385994605271352109326912316801066913015765364708747996647068194729343315450368196556103689638400002677475265070931668620355126847367162384858128636975772003969957743086669870319356663899696791885780070546858290351268904795810358075690939948627894539122383717625289927147577979258850470798017665140725016932561823580688924163437711489201977650238226441630601986576891302917825531787804120947380291618993587030132861738514745765852855450983700205034909262251169608815882692925763910299267895144090356769772864124706870742136003000338926007013335710873299188670144785538419617674203463261652044317954378842731111033010370697705972894273562611186038689101215818482705871405800427424685020382305274424549021192767433857846004411572369990771784948682085886196919462882965168532629227467653567593242182677604074271783625634197547254757687937105819759996671677757978044541240484374691450310778031760397527756096457804877861551317831177229473181687578565881005729154042781527535997949745823375758183797208538797862370807431499410691919910833216523832654502171810156258590397296278516116717809035996160512798251042072405728093926363860776337641525978700262431757766187120622398123289586947322852284773252540725225781397483820665229764611071723906705101222043570279585995109150840498981544739620640569270223202234652007357191570854129705298414623533696920850156453303507353349007483614973208755876989437372996460594700075977599360374492788950593341750143316843074522301284749017392242804212515761616649755221788160439530086802605196930752524014083591532861887697503429035845785780405721975104190234461021564195339699659632674741147315495472301496472557153971652942169398327185419485273787918736796029549840790573379493198416213720857196770843861863854835559576483011230702101807883138850018357647592815594768438510324682821249973296963272631183759835721273362293373284098018933150187425911635416504549138599793834143213494056267368456383706909461875567149686395569243695778955507692415486334138584405306691759893058210497700153087485199952592446310365805898048001383880593537237043827486560158084997354247843955959597723333621646922919666857781911946605665176111080026245904383907274188390731862437614217762122215604222630650540722551436078211906157694707013062997685710901537092520694756222179526838320502163022886679637156046942189684653619063871399944512828935940909702936561859592738626452890749334520921331182028877330878886947184337345289355266575278247060240592548392944298621902437812546469591045042569048872172269844501269425153852855499873283421900512916088416597561552911065541438367266642813177911226891184558509118832859268508723657986511027499053173854315430525378542833094454769378538394943807498124278345888919741167202805141153194505209190688203450621798408340050441638065797784455353937996962576058968743791248346030889302146496123321189264914449082109065373112074805726367937761898187981629206358091861825943392718291297699766967890172447105311769561076248741427788094642167289963415238154983583337187260043380025397617161162480390042398400939431445177138095638533343917366734062887387995423909253483231267449507915452975209853636010931252308204362755109164162580523005883670565128809951705775442710675326966304942544472318330746756478983729887091657542884646001785141053701317730486635526206663560558253842251002679598391615565226279853459623291037392786548562267729495376362623288234525944952826960841284254639143505507412247848265126905049654522506682245634114693149169376192736140445152485969136219727650171798071975330205568569622309508340712350263651160609998355232975746985263395662584026468358835135609111876981841503657314904922817754922509127657752700653771045343403827534374496744206323677764147349065284807172586653277373337798240955038978784709795872788240559987161816962922759666848271433465795684048553572601470670349737164921125324524651774641029998287420583902187699762983496951799661140099514421710574179688039595393820182636947321928687558339180437323407766923451396634612652108870284052984362286081017453424672571936531770712146764241400704039131110239698125932799252130560168314281064931948916214753057890131472610468345884046967050728180769570539535740096637001323341425565505826776893497741600821924277159642491528495839225929213668741729151942541531857681795061859422624707312713433193209150706138671375453016862887390707264526186447274946229056945183168440068629984695954134822664523531419462026259480639716723165968948759731832667603764647322976948419977609777316859362596247965379473898039765579782302930092983820187614169018660202305889248317200471137468722372455397000436841716636715346700303090976313120353345088889926302169139548289541608083428620734068949908133768285133967592073107003887582546532242582117479495018542594240590258959913074103571535403117582244501413672239235994985864927172895764837880054820565116079156142673076586290462029304516624159332155887712460888543986731003908496851084659783611500104349486875957482067324003907510687223811376680928405865346533650344397683768436560883975600215294930831502582443028628366567605949001913417345321510324509317647763055677181204205284229596693955019471942271611326650349564171315753008091595169789746976495132615558588746278370459793432591028984577794635488063544437449949075897321503577892638310498511045850780826575203830571585599163254465370478130849597457701928252812229913133048605906031548941704163355577709626711089786542721440882921417975660894670541423953352259030240222294877484100626519903043584988240518959448648118950447522556240866076910292926339386589143483829734238530049969530722854152018838442729275536915866042339729349517156997272227481482385041011744289026881046784442096300520701139010518775220905418804481751421685983688491509305549367963274629197297939352094225241297964805975575619660899502250330512322594502713471726752235553396303368854813082507809115103353786139972769361346326470565155243901333654322706039274404393425141413916420814465019309732111481958810375379110220171973447632764456645063209209377987161287310878074736953008220868142207783268188263455542047307711019559092880406776921886535193844357407411503952854713532875778562485663571450783458300910785011544012286033921239117803067636521701914634388467670869689268724825774365165348511641611034796931386605717424727526763492723273627463005638764181292537834304706020669417627007078562220053947976764463350337470726091025479383361952889616172052529949379532444506766961581998097754369828349704616579397608960641805506690313427944664833156845684493878837951870134784333982692369294382718773045456300524743555768656683334010540613851665438515283467865584347169825910247413103263554147929150628426442607359299287506715651463499778244260462380210629592264941260442485760300123934037073637118506271348350699474293256562717982684387324202005686782548557834914114105254469608953655880033920867851677266338760379268581879619691801556083549042388738307253734400052075385299434977620890634256955444776874074733725170783054430553795322574297553372937353828616489982151571190611697986768597680359130427420573699846450287429100855595441470366356930033736090167342300006387019659633830759554887662030409809546565321706356307531206507749242780619675407752909474731981926163481598552721798787194540245715817048445166801614103225325764894540653518935284035108686882140033843988733599965018259310101213322840372848401582516437741212276625484814883100491269393048347220027456038258121404779254607390701229856132752083091310861973192328076638767288145139757965323711627237343723655663293203245883492039207271152206241446582567524444082229792896578376511069626561865356137430377639209333673064927820485075066997597254090448162075674787077378424397538226886538358839324478206095057352547353592403808424249415324491307690091961933000770988146923236221592452543393314915966874900766433724761430606035378956056478371059388101009830466511632704450765145472215326293096844824708808764623959786404861226180022416734044564538168396543431225175401858993669359990228727901662934315043055675290399525477947373342864097684632771560288212698190950196699199439213181249588193826733563038635743569064753039507454979378557296890088290528532094993967161688561815381416311101178515930723386197291417390716116895885453183415830476469341303008894789250318735041601915766400389701761337669012386280446893847056177294311090424300976324607795134138291382607280695799576435367042029349511885055504584919740803170528677383177825591856637994767008013477377533391762261067290692817111684548136009740748676737496986390888029921738446417986394411141642429319932329427640568103460193404228794986537182413828293598254548884392474352162814151736897865591532777072956598059362690303842402685979412167079739098313323102040022399253563194619787463187006503050408239168076711350679544398257089352824068449758895536331466466852465083429534586144042544246093810300666632194471882750945040486737087282607739903506674032901381056676145204407108097908594738742517621716451412508248035531803499974314440220658454644003451189065946153697892110603959798069053202139444579924769547608934884666912569438717754578101549712349768384848508054354869895825316295001226931647810921915781641886926151099630665653085390323671745884917816490124656332794581835454789144344421429431527821540861991746771871075626114983179358383096786964821463268098832661806166057782595943996919209080550234273106268492630356872377294146350921985970676093062774379044671805348961543912923290022443059523520015090071532898311989085341534680517362694120548019754880658025436819565331492459050213211289280398482604614099524396610124911249886543464439633865176892080271316666024665657084821997444807225415396758864641310305432036581784305504464653006437377308702465827321193492840604576162399073488948788702534892772644178496758738991415896905442277786632769855639322746516591909205958029543528564477097045845269966919465722023614660542957013079180693218935357664552555198955813040715416176995673941362588321939844018590318766107742695505414744049739413127914085935583646791122146991157751752331317366817267990015403028004999627796736217804240002796440052734919850177290478541742441112481912767591015512641316106325138657967000532660162515478791304335431010997257989848289468018208251307302921395710406645724532872985060674444531102515761690571461064962296760076509601853219423136021471506533703930343523754283532042316174617348043478975908335492123184569646701566599560752268213772231077492998663909367314766488470354448040981241911862080085756556239291091282621720568565678033590458096633143778102035194844104228600975409764758286107728403684383799040351080818528481063644264557954906852872509074095985889441395212693580385913579425894527543717888356991373696887299532397230606831921918362669187099712382199045906758541190914733012974488261840597730612720373522112409068522905007447306245756420057826816718869263149701189968086482567636654749618117656597734902714997354184917887364449383769255653244836852295850755490110750490436230392043886707230337402417049690714906679234358266862006388422959938540096531250878820394206057543986253099229522073815733574183125851285094180064455719995101626261503772271511376797616051481654283711842434797987416777743150815758943864885902873111839077553944180360228637253261595290285430676824699616541069053526017810062248053231594486998676890583009092192552369114035551529430820005199591807689354668473248190808773501278501172040250593394707570852472258467998346493167105996186477626786862224633551164288509446206728640684991813336733221819699189036499177289213125236694477117739101435837315632939997626660073179882091480829586861949959021390545650801211748600906015794779824783499467873941878335686180072280887481424140325718916368555436999848759004708056646630306892194878619509064199148299845227725764772146081415161736461085013923208353311319905177974813186266067956571192107611571655840581234626620819454834831201102785071292094034013700972559938794094599047194131867254359420267868532415470190637589506014913505904053397452246317375763302503929305981821272139860223001493885288072999447645349009422137636397046043417166455198068415570363238016364469062563134083877999380711207473751429417648642438771548575560525480864584513178074047442682369977143568375143691035935554571217396377788162938299144677257087211442676338858883005821924313621029946050585386487151832464601473595293270523373213843070678721334176503912161017673713900499304821981552061742244350195535979799439620132350566977878765792388947640824443667887854274611797150664404112182026178546696144607697294551430571274234564683891161736544385716202922613564163678937688500390036896529990625788002255977959155589996025152746590756586121266775810797026552686920902434420028732842257889758026357145993916405066981015279528321574361559178979916335404402162635603259429278766986425725457401679659435255252544484804922606172672671946097324148060121135961130132547973790842342875383062982540309443045178130962394482654814635766208397602230321067981740773040676632149002819187080276014407461567467274658167688926838664391558494497905073474934784170151335517106011465700687344947821644157827291179512492508554595903148808583150723900961293873372790082196000326055379985700968631539427668493143680522032294867558056002304075979419513300343988340170683160788100362597562780877049449182493113075654737223526283073688460748818860816301522352016540364983652237316820362585690014605524682001832832231648077190447186215484998758079432614285179238804776441075476279014855273190279916303136390175852394849618793138690387327999337084113415188310044824599948766777223505692579011532878824040584809706312778156050048995759568200793957217776973636040304108162159793884159084268389925293499164174502959034448508719997138445309759250232716860209236088949032981971506933882152374349614874400046645294007167134280875022285300654349715596252935550515286832588191314734605932259173842945830968418739979037303571805029389658438815568451798642978501802509339931693590375275987453133029281353765069909995735129340487512701523256501817472437115671806291597009944635235068453237258949721822372811339511271578764363981553908136397622514679846018604114637233722353726676672609062387007811841422817291293800618652456586162512142015535885386516132948742264340617287628762605545484358293068774168978216115521034414870887372916748106027123675525860648001209983554011348479719689146219539729851140250762148622972163030589546202025770347229461150833248903970923276541613864657735998844509379539818536491087770024823581768146940219003777404344578669019989886449733733922542710018010798572854344159789067552559821350344999764144668020942822161990589228932595760204702390094628424701694245463888009344764366985461023756727130972113367369699825466245656730943592568341086950490405375915072696757042627470007199024428829848747571013734925676060428811999895562428762484261914125859939815967101862172274883975646886908558162309510032728573681943592762513225087699556882240580215296383715531502029079555057658711132349421041786554650546815000205898000135935531233727731273493362828833868335261880453131483831783506120188863154750890764327073214913909108732902945539678030213228446197078838150989643895830990461611989381912797916494851295883533802271692063765676610166368315823053222786336704259224410431012119049205393416384500208941258785358865990169480026576207387439848022292650084102849635468631084283402024786933531816660325234524971496462213489871134647092694359853293252425092158141187142439844120087462327542223422712281063916447494380297212316891297018734672777543413076814294797262059983960835079565142550819162558913083512250152640707543192753996624819238891247435736299260565165220791909021494909817708742937194899336169305938667175779104999174143953819381549559111725295574323649330633197211204212624363804425574784889124060890763425281911116356458978350737061388623819382929830091067416519209370080234359330945460222326188521967264377440522919672834895776588108476642570784448069951955975364036045954871995305855373614367904118646241775962451259662144513383956658525019867364609066836483574835606752460840417480707308839222353145984857096244168726930034311303247333167291702215790982282134654106067462493654097124988274608720454510215154625109669286710519507300877381604285347916877993103039685354201281798642287725033922115907927330565724583578498002101175395875803266651871110518872205967990828274285188748943102748427634748437079089567962577139823038320045279025210459884093675103668304659478665349841959706343850018674801630065931844247228204719472636145396836194424498764607174145741771332992576101092080027675193110073021811434716906949860028590717164854937902537988370047140112411983979802406141872503166953530593653678614385458520146927674453348961864516877740716632664421789732019388146627048047548109831538264712253576636257013236274885306745400702761397724336407095959715363841210922838762501638567015810975769590824407912321953743955602691510656293403087507555933753865254517365778637958612547261762486077719988341233559873597095580649425385156286673618874350276703011438324982429099632453214049295023082817688134154528679642631095918796351154025759371558298714144982230566582486246023369465485679090669443406269986815104396959479308650384175436357124384340404778854469029038458373617378700722643391526071994947164184247799678188670727759550216565519920369017558383118257982993191906979677011200629100565747516334057079487839045907873572438399740259150844689568949154018419178886601388542473578626266820119661198116751496723300562472409842676839421350104609284574120607567218145277183110323011074074815729737775049093390746589292527739284288211659639091281462207039602415675982757338874857827007106319075849248830540428933673093357405457851311785931390374749032965545913656782622791368005176785008872075832333178757445785438945048273107230166420855422963336179776685526118267783879880823156624429487593272535047638029210385262369258565102840466717378509095249759305200154355497379238005830504510398536689109482572581758863815711260591450252603104868642475558814068092358876361731292943586068242452690981561980684353112829680359236679266477411608850345511384199342363438457988137926516282033082973997485835928810468258032652527781846594999410967924521352365821434024389695178700763967572773703722300366986099395998931325669118822172779303176839220838045583835928823117793969759335483835009294242989421830009263222490782474020585083763083935684193366602898993357535955555726149772920957727350052810400095044856115560130876973988246746960790858705768696400173773182185566173193084837826924643344006790528112281037314072003989106967397493119525858116194266907723435516640899611089119358809063642116673162016568306133190764271700690555973901082562433754282494828801829546166621584690752518601193357416908173131472697217854477287296474607600760053142538464681723214552930689614249242946116178333441736498254187242186183867313315322021152798135228787096316208134167597338150811662048992898296298121657341086844484713902795855456149749319059723381153572705287842523649602620827913590201367329445833490655038541660641336218320234324550447879606509241592212574096580138585356207288086847383968235459066523118086739972883779488289291771152666715598517147636292044038137250686877890671863906156047298047068702166233010217140006340847890543428427986949927283733304108815724968723327831637818163830410665969629654101276353543378759662174528034699888372532548777388412155922464539163274305392446276063136500114726152291234108803638772340061150965386613911980537809903842930790847994867880977531356926186896240082262364802953686708508872039344856491776710924325765493201178896822965490455619214562728462318537473611646641787649966183870904026738563455658489600774449723862045073593440514220768156046306874759312044069573765385310213333359457264762430727793806045470929715319119166656462714550787782722056195225365620071330074393375597267734437861950174416245123289308650898511971333573968428609625682274009234990621754120487118683627654313879774748682310218521478416380721762840750639294071444634833092365695063182759954606466553310990202648888612739538668691863144231679885694047660194100073530514523105444526156603927223203086647836652348116985695683045416203486338485551673724405786287480217128607367290148768806749041005487754539796354456556807855739783579390069641575167033390042754809649745763965281641570597313523408173822216999549237612623114032713432192795753531530034830108321322074061262029245064849135758720102895461472019640304717437822402403530016926337510857008563079307543487461139780235901472216352939263159373512417999727564356545492908718897590120547316201237622925460778516320408962834291004170311623537334747568141075178007579096262940033978137387374260798195325197446264962411310938013594576382919573635111929082924075207941697974126438388158868728658927041225555782089952842338513032232195825684356388743600342454935561794565975295913776550453998435034983809287172848711822406478347371081528926749411289559323304275235139678200492354246247404528227927459306273068081082838801614272160127743576943107778729985783580948709637014072603102055973368134005211561183552237581760095154200744385729148330467738813499120078840355798116054709968127243436885354528959356388667339077069104112559074471933534858136099897538595438347617993741463015997736122557063558364040331822410612474248181541554872463252963511655982496374559598567837752090912037724033480161235373377112284821111477511415546187384774040413166287745338440295695722945367421144163961128921434824308602396984204604966882135412144933050644567791726063451580560456978170958301583666938325959845095240555901803067170599759654775413892952929489051112997159139491482284791421220718252953192921337510569016922368905466709805636584103809352152033421896606670592657691385307518356938297879925890722826772206225009840376777160312594843223363331792464560720143207578538798863951184422613200929544723606719740616881652316454807838116234895723869330814420564601743138755992008027340547984663020118750678026985409893157799364206349958828961185732692061331753858321050089060468303163411935248258670550632255302126825369917474740913147948985434036680631475215231204251222571504673479376288242167254903678410636609396637977184113199802437149938147847844625965759910957327543797005576537851745452705872939617679821634813302928503911483921759597377129996091117202651717305026316022070632270977773304822160095636653936689682022735236923866441622445395524299928828466030463263477345260501836757058854509102234985241697197243788139445609416060616030562218289367217579471660155180271568933826725942576800033545390395731378669458311524842705016637078400599412953357113666162831860247947840597604039992785397098275482346717307118437168982414037800411438673573696956642651344404267088346473846179820181918238214751301122994949479342105856458546076648313670257298092415888771843897652200795290594794998805273049078092126318338705378571503824152539838589769584045522488893510304745171114340764516941078021363695294436562118194149306948455032665151646609360534791554822540835837803697151642827702911497879447919700302379274630622592448058812300176988626718957807258480409443717111978816892972103410653051722941978892387198684760535470310692218680477579020670699163438525716569877960281403621600619479405189975312730790926141859250749943448950783240002324905347165249817881994590311621040530258665027018980032982283043789487383634930563984840000488807580711338086228618380592819697375747003437129749703856588437561017414693221953189115152727026044752452745250425881569618307362366160140712464085597171962938695563327798582771313312008821991276541396028910457775727136328568788627267746394775631007853751123585228204808798375614932452615999532078879372909504853011794139367082685427687749897573430706383265180580924601558653785040808380625098160763529786444605987589610798028495500272966839666731047113763966590171691863071439080715751542833919731620193623429765011934539016509676988715525107322521945842068648610624741819156083449641236772394302711775157744230183030109760212224115498297464319239072461943694926900932454904319927003926436151936934711592545523487038823945830133752139650710278594733058235956363535588241831044035764420239682993249008131711412146803456266684057190759474787928565066169708140767426442723160480566597331605325878479048716831855375692626035815020249250447501250778531349502084089824371008167830977387043785344018422822040972154801277257576682969832837440499661090003759129894280564728933553745997879716941485319428232153276546755689678976399292893601583317908056152665866315450954974405179737529380479934010174565169539187795515426565147346755035594720787086323350833839137966583444826827941645387810272041213287576745564017450682559234272306498971822508730277905219462717526266111108466671352288902859362447836991483631391063756659722712447437657586907001810661724873562849251627765451826205571839652923144748782775375018916605093330745936848804574064646259422781637532997211542686787979738355131675099272764633335640500470974310154967696543741688562585617099945644873339239843405971325206593190143869372636766181532147391332933208413778302016016941202765969437778274302819011583861096622202866875315180722698679365394233711027542527261342487484693434879889518943447957034963772480604161489241673852173813090811816566198891841627946483545345101127908291635749642542176395166934825926973461302329775012214065983024021199850647223559745241368191775126331390841204204194686980984344650927196884698281382355373569439284448954953240819644473005457429977923965628022871804876174408218011817329887087374910750361866471702955888798664988295823151419787971594336259390702605921178076402180099502128163893257318134226003255022932925063599678761472930038671392145991197693418293271664744270596129538037341010507228980969051201853774981438068386402331876928330501361295441968989677387661682486032610296654740872630829555889312976545696958618539450322534370893207065080521095522515426195570239183413885014242712438462167650709192403252718140112833528142699093662602566497018622321567063511836220586214560958186412401568103275626369605193967499431215866963452694379632399728661037306340960084987074916285446835624538805093823167047546572314865853974541893833749729619469144007734320427479212291716183254637239775307451309255677013791788990969679391707351355977885593216419251685600468522415865388576715098465759814569325832851128569362611177564781318383817871352291719890227238828140825145240098126472286951909066880674118646832890886244414289172560823745803466591731014175109858661192364479705598619113667032269700027738987702905769249263892250237082426479826119135772084887700204367770437393849761822527056325771908243031111566392802826379560977194940101497459585836752551047559201001788533440402528422380642493115205008357884853907089644849927861424532403972776541026347749451187010878295293302676064757641749687651970247762042781900345536607266376816095369635604835339668077303071090141836098576598550748812076291057381440215970041276140461386943072999625675063751010575447658290888358851705376032404211762380066122158363451106276911603912793509336649962875607204945449537440095371980130200301247887150857430935809932932045640223539382315942236399056514796112752580556594339363534733246377845880511586155677327188203000992055677281943970114362199162881042016567613884293906395697745178750392869362207678855517454931965650625921505444948337774088000456267829377804672155385270496028087926250652478660022866202657476360779136201821431290347729235237660919617526920901574700651472300851953998943410067021306629796819753957984627940607453156893883350133263751638860364154403925214987511300180905946030587018057285316652505885217012417308914734216010196235647410447690710773741272206128247094164619202761671787268806549943457107423707678708072594447105895989472131201317243518301556566363649277164497210362559588179952926539699562311517836944536233758507123169413126983483786616244533990022252233100578965543307235643051856046722746467042251134507480798286273775010607154881530305153378831751613783186423982815192308499711212677880227491687898159367727798632637272642755518729775880060075644299213671286466720546620301645230520937293937197678350493570791957044358488782841559267729894390679771639329173203315466380379538318397564596464525796512508972157301120360098004276699195354867522183604681977566786183453226517306813025038587312946700533134269635066960932034660160834885552224063318094107079948072856167360160247819867733499531822393249349957944357650302727061610417409450144053101616856040378828601906499511647164006518879447649021267940782851063861237066994549672310567316390541613193095453494403682128532210221339837409129154079031472488582985483227891751010758614177034927426578622891472648301290272391722805840571611777487337534038480544759526534456418713787967578925250588565331423055028710880447061696313700467350607129436585470851977379036369467961295078550992690301054910432800549219634617508650582243346137394875948293120561781797669993607437934756537929102649918521593388544140838814702198383650385774338769430423023560424567718450134199203782251764635069658255010115452452531776697542987339907435419662851344074876729946212338065754086301933230275937613526010979599744401165393650229899432234732320431041441279766512427443424901200515505702003466514250028611420394601796433308134382990152972779291683845767999501732119426459913083547840183896184253469800324201971213270935695486213842401929794079874498315613142904958258096221183240947834429606447906332090374198499505286530975801577807733570634423540874836918749245360480620178922696193218268738705541066821796781768969395342996523008283406309940213139746790517453793301177995776625505255277826816360510604514428551147659925334783087963309956325754248799740910426693792497252023594180147464243721729431744053239743569879166044645331011311956415137586070434973493515435085368830544281359857975804039816439662860426123153621154608813393840837711236250972665531689600396219494978134395320158241786445476849263978582112256433274379053665385755002474887733434326060512765534256029858955656357583459392832335548563288914984266812084066598719719000219647500139739747349522150302566656953389446266249477232402862021252788533689418368139856204894554099013502836914174099347540280707976130803802740398387974165417353687780819389368108124763287501046688482096816312977008317459921212915180846391998906932445349439738486314683313647825246885709139092982300027999966965705065836911222136189531503629885375520530409213448896947846685431533270041790654798085879188510600943345751998678375992084545317327318484607171783958951080130087566212816968218707783736381345777654224260877655101132039552892476856342124637293204331616336896011233695759100652465695256003827011749816509783159303335684612228376957753748447078886094761764591073298881263158856905149530865736751542983972852318492784345312077060422080022688202908184873798644297768479990040927578552849809799369542152762912513890671006663950016663033209334873166131026487584813721750559229209357483727332684608868799467085079072485448794434655384557877234554062489716491892539234756759229964391410225392601046415916880015208467560099910980648626259483407415011538737370258705565551977756537340661755041281848767952759797741324965158612878655464631783449117216354810904226375705374676335893986223981734388612643483391194452066155779475548952483072461977559747051839724462296885065044008978955501786087092142174477423303578766613489742702301477351811819560974994681986389275126465916221598124897958994843054826475250845111210254028085772617627806939652449596206133131357849625915925938761507334285053566300658195814801296495657989768691418647979398234113695935936379646303507299964816753852531309787939289181003324074357343290358481976657258672243530376329324781635389945467816866622104227865856305010187492708583356796978245993950092764334699732170908745688406247269550329913001534927542952820113673429954909552024014494817312508244011614365295977377579831608053306293320111196492671268139012890629258424926731034986279517900984872358807893576343877362888355376345710470505798209051030105084374531091934799063887727597562656068342687104518594091271379154616292044810809388611866103285543823658677045825820058658638319781516582918714815819756567011421697784002534756210176859442387131725376620356684740564391589083614675103617646910457602177811095839959126067396749123802108464637621805313495839108062566454448377782735630995412625074680867622346983630220050492089858603719813200235678765928193701407101186549657931644299661939179447765133357834662742987018786096248800536451937017874409941369839472341380609018613110005176495053685950791862788593066245037613615543235381416636747074270390942062735370296518289625921177233274983361724925320979731191770653669750286635307527042911470862571892579898866282470234151918802178549456066242501766024153340899719648012503142455417521638230238263249207738810085544303019773046524604361204185273351749771878651347232155741981487548941532558787410255749328198194547213392881388012125787408415901962610631539681900918599415569892242772130318407363904018922272354264262584881194190398327713199973721421621168323516626498125566506789321005442148964645087992373950212536203562186804483167436945637596422106699083113092513222362335003765351618888758649444202360424781838910591792904529399631633654218769685105352390046299965661666475349722518780729507816967371815472248906803404306345999303715155027697298458498752928879920501831613047656389466247677289664422763684192198303618743171687791272786268057377791058839144253941255817141339190182723099985155960489515266112149140280837470617428953275687255811800707349078501755996082402957350193629712669614348032951550988681541981784765471439679466763841148521789452461201834403537932713310668559787627542682120560687196927289789470891895590446130180287829013393297344893523773835213214411289513808787085902037694612841432531414830542677284327982037384533386925669775644381191144257751286843847320309128893682341598751122572068865874136796353000815930644217492032923967771024303638289379943663956553369743378041300952811908151181988813760474329326737822669432168579427159758747630131264275513081278621303697283984839928297906840186457798873858357950446937232239169458760826308771603218057550000630338330502028912315705880584679652389592426260479056723488765637861561260765965069639992212613027365047872206197775596937210155518638281154366866947514374258022909797580227333602050245672457925478208650721864208280633855881477965462761179682529101825860505091579941837576517068831876287337981458716106334726397410653584262089205023847261290854294270943211553151090201627450324600271697119417433400479797792993327169828480527406755381320476201976088518010674439564082232819500073778045130517944550412355211815311175183207751934077656104038567477057353349349057416908243057039700431252141042275506610429410895701915149556104898418157911814875286400760151930854729141710365032677447009834050581421554625536459084570673944236549985758996813007398661583413654813842185987888204589993983393649989240167879844740713709940318880558165230930437017124146066901858489386894816292601072161912294898132837604256344226489103008170644251424587877279124272567069779694425372931326166325044392706348361251252892389099652053155845168117094656862774524180415895194415324559452037243220704266746929305389414539028715054517806148386744753738372615106870255774502974900636535101708321192699299841517366626424750284242356607163827944224307656011497048635938290865305321365337043085524405115726942738008013254122239758299099967875839276816162978177514259896307967675899852930559702377841674633392736922733257978158584392104866567893005866211554622122404529093331355750224508413389172176439344615415143494966006145918149679603511285780636037586563595240303241794211160150548314352539748468455705175848471111329784693647382355909190846870865512256960067184131889531399831443819467096188254080180919386433539771066335156691606363796260543252277368924642641805776937499350778855591252409172609595401091558385695474468314969948140840444374583951303817044014211991686256572118377039661375810365706943978859000878972083327587654725467302086665129239366850402630439519941083766473209400514178058399231380779725855481961873589183564471349830663462518470623539457382337104041979808218146835034957368729976405667902198140646482012384416787286830966518038782585288323407834993874687675490449199357973068992657990366544271014837977296058487490096499883634645527669227637253910536882110558279363844025264931938709512534196616480002184276730565570341095608255370758576811968508669532586065049301153545625422802042621886733805617377239784459197691169860050321157322178681289551020105166774066867412274326580751526484363670405005795959432935882943342259370571122730001073672563412724369669483275402133806464556235942096237759080134572964256977551388401136486211742447007290453307327811873180243996867662837725949808245603082553906862916293655158559947807000466238369857640999992843569157121558731069567708019756727393190693526940187789407261718558121403878491492809515661574221756937223309906125218936530029839163202921938770885432713560524246961646514708491309609123231667954884605661540644661476081263848226944237062034161634275050837415970151119122942332282046446990521153134055471343430565522010127270094040112530524885635744615856294987596278164110789638301991419614975315258869172420540964310463056019334047762478251879145968364183540738511098390025507498246131627323043292329261221011529615905198242553574273955077543003947562076966989748175564320167811289778172436009011288763096325543901911031684027657071331655113749388496562739384370345929303184193340901899847774768654511953414412623722078478416344180155531110210487836785194946188518524203079090007802973568995832995854322088399091003910405168145901980306923096589809726788246485132243963886943585286055154536125716455581789466745224448809160541189096169589312974273821333378157721282239132230922396449958173610861970961391581465256888270935498065545783370219178217592712183264508247521686264250095555518567458214124094330899568588917893741964333294876483643377936664926451701920588225247060564234681604578262500967267142169430211952489639829510059572766875762367207058035921640868929134344347707838088544099790367235250490782726620451117835015699735217651375124269509854857584872790912080017536903064327279253325429327816716387726494053066838168783213525829892880550115816504079188883163452779102354728122472706861548760641300245495916253102101065021418976421303335598857539520506398482743458347919339894747555799661888391085484989050731618953700669366435198658496205948486342324525541593014002317561775549225050534609562547463755687845582021654876837001583680845859167144018158686735003871056634096831292967463765508660821131391608516444451692371216808700566149604325042957129418276497862204403080554590223971395520452749973619308520456119677444562227712946217745189406656715254050051168078801207180391345625127117455339053675055485889299398205046653592356582423779388387184415064347798484877863974246484410975317904855096097058864651615787363599387932589088394624518404111585647850462573539004551229572581688447141647319319607679764487134945914917440405694640820053671439457802528318636261405269503285423621138931306944870821574972622533752402251290837520444931843804297441683250966444371567516391592323939207202952207861925880942666480787215104995370544238664286128345828969295954490859848340913674444982953793176984330703460038741868317592316404339703438995223210536693478256830777863812518837300480090669179088526115592643675469133814587739878742401222559661793724755828666580626523718961274244955354416165389131147403527837623267193994917030300683063449352332432884910357858072717337078989476665914252899501468954107774224421681664309361741984246270513143783163391737245861342215741854520037533355456413551712171465393368631329272430313557565295930699314554360143229013434405567488898675609068522786595028709763359189377427398119591724694648124786191384073709230784605250823711065105363923971360885613135013354793757733042781448186220659125538159363582864193972512141024734463099410085209896618550135879793316338564820345778545586466180711604542879107623704787727431396790252516275486195195334091405075330040657580495550585113944080604087131957531449573850564000368733630971121518116787482191908376057560766580598768418615170314474261316409749993503807365828967506312524349969737615477460929130499898911747747710300104655793377990885577903005659883257626196357153002538832513519077601662064386408797248504357714724757588926730256556421538874831701460394261245605964384621192884608692721465600068113133483514057152469272093151859500346151219221647669009397038162368208449383136874657883661462749626976339546423518191851947833298071859313690888754235200452660968697984462422535255130167123578704710494938944905162250080896699585166345418179117068856191786752223078267850616307377607840595918202384126079913188473127764611274904801964538493855450045578586318213049795483816062247874211755406658545158617010681114625678551860414665781287716775695115258670105699738934570722740095106671536258473060614301471918211619561400781940372736769126543097549412983949670600840473734760519258212125159220976859543483447421045253143956138449104768671352976124956129441642711370274241080369575882120993164266728628249608411000882534543431123681736249398252761276617026462710390323544626158715932958761365721122219442650026618804895763945842100651630721667542468267567022590285970414520880131877154537023637217039233554531846704653476871120693314856784634769950685468979764882068977478848961258041273553167465856060273431406068968331661130549689978899439832498622971731313245507506518372259547384026706985272852279136431922491415838866253149171639857426699191621753387939074773942707281456555372928157372368542721081067724178894394007395019752083215426380986461678164876454223021663270805988975708276276805565663557105524088486973001913909511139121739538067485620628154554696034700993746122550880028273336532512236056527983339066758921153288124405225121288587507264583485753560838725625064186482779460313043030127518108767114695676846583258567603031848620817223127622233145350925939773869060455135824134429217212967015789123915044133706970068769129704065869005478728646174632745274253852723570834584050876528656753261752872439962744646374813563262719559555681448333546305830898532012301876147316187179923878693830223029544757226548225752992305031743768108694425293538057681203735353274764392037328405727183783400731074827452521948375928484166632610427753726235521303717037837391711472035694181482530199243464243683119590004502574021345104075768753357578907361682666659970049907941895161214176153328382720276650303040872571991042826446509557743432676057820817847711595261635879186527204917851820440875541931724454831077634733145104432399220935427264480569674138430932279353045023591783363711623083928480732232128341890826307390765097534163460307790008773135402955165746624853940028963892545425710662508580541542612589129857257734330647843259293813854918514565189263027956361904013433853659368648264563590153772053047506024581922523572259091695690734582752083998422474135932753002011931242366163983499506454658238683277145512959230923893948056265144556745262497303551448947175909941958354536454095620377252978146799248209433381894133088974499133277919876855243914816210664664911344382191668441645153008948039317567844169407821532639364886688227380459265977077268857144885855603558612854192692135599876289746841420034222022741339093494143501949668411325458730704548815306396627176355302647170105871550245441815394765562126181834211578759726206104946921168113471429752708588670125335918222324027127186822242976994886533422620354737855540824104410864679742777035313628224466016893829714367433590278535692580252493934129988722017307081657766145289233427468908819885532970047245733788878110364413734211097276754877245641655956296967311422861728398469549298927903659357504938526574925224493659759110669844915420312791233616669853976337100475921616976338478962175933893580418305643784471094845365823768663831776691605663416248178326415498585805784722670553558217954465731836361648155363623219001406300445988798269220967702103983126699234121139351588411162800995643375011020145690061542280002644669055893536001039654492136379282433367176108242080845337264905849950534282992705151957902454005663197528247844655964394825966492938863671297880875240211230940647401865417149461630215367487805881936234676442339499580021170361487178889717241755062073753344432403992984986018027565465215543454342029352101193878901982866097456881947789066343491661293762737877294488578482861468135114385502824502664440773846623928848730905437898337617125574283865958937145644230479052608213676475484531922023239868856074865766102321453187470648208899540482289094606340100708390298818541439582070357091508612062200078342813155593908009583068250432096622780977528193655451370657293035581957108413015772788708849584725861385202580608409036206176256330799877557146993216122254213437428708460673413635950211024506053704076214562022368415731835231211758613721259758357462852490983965184347034308469587671236756004941509649134863676514200839082597381268059001557779081088029536486914379639103790058304631394490660611370130771697108622326480353215053732263654006036225598031072326646237239592648054354753432262634901707334882085427105250843341884011743735132936010645002293666906212418796203979801751773232195836526332584947753774533336888522753321775851071362962212863141576086274477278956025263879634625348444690771882682596588833730003222724952453923012774472357999546990612882828002166868661998292450890444241686104335038123660023045870195729693731297113537629381227299543334322878503172064531979041092781958618732989359330896915966769322634553775379754750262297931766373869806683098340408788947023496761236281169972925040689710994097744930719403788087289631777386467783658165256958719387658221742540820823375619116196435694522921603969725033567512855903702167875514129609088506955412194111680284984850666163740158461185216209305998751946121766296112571478993747384733650144160060055908571550980748060267088091655821970952265858378193215320333681820113684786978378243065717180732102157957326468265392995386967612673678590934852691940397147959683704530004650862592116465977585535783744958230369927698897087406738443812569520990888300437098575613268745714975080356241645570457382978360176375558266176956102113761073489660435523317884187341916338620766774271853790275050989235539078836528025766667030855306286146983958411284190101520710123818056213641032431093055829347365162671729759253628238713906634170980707822328318178092423475518919761981288513089843168554228004950057537485123946566997433309209627424459930951457442274412342851714713864584782659966252697994160920086021730716686454662055095340619564278215669505184283337017954783890212468920643559289189611670434566635126292394584222680846644520882908651332752267619915682727660670945438473882321692733570241701202624687297876489768263604723481587395951518155004491036649593580699373080338669406882181437327171483669673024621086164565786280535825929114733038218429191318382951729108895912772513245592789963631737391682996088743862066063676383502361480067316164878607704078088319106410885492125294375475336839069443279131810220956076344352198010167807165340980537733924093759799474987172856954609355322491627899250057397754809352824957203861445136669532128636508763957843305467147852717961502648415365747374015413723285847496216610310799165514463677552913424868107476182633355634133460217138083490577026145123180406381946881126278926795214155792662635047322388960284131167482486472677107818036969041727667875312074177181880735516742190342335186554905033054197503017384359927523298579598379390892259499927457144819162604692149621057521992927938032184128166143377598383581107904984375064790724170335757547799501524556771709719442279791450585016361758385430490890257732376896453363298873002716529424015218670871172498191762770600188080915524344604082906342460620363174161895904294180948523672750487484001192966205575623847662806959839466362769369916360790297053601396438734228079370488299029812164794279454519732631580188881173322103611995788976957208110314216195465771243328507015392941833945687082856702381771994415011033726681562737969447527629688038147662751565280169917691058843414418096827288465223503759205904564366420192078590593834317960982381615526074120865323862374588867032892737230942716421230792256486497743443957709632277826517763494750444788119979150861017451809882242023783059892921777607274165139884357459107886908711569646551525011811988623050378756882348963322422029896171407435451361929901445916313700350545811245073085001819736573532730819686414681787153652478821031721636180288689075361421867332610442181546314836722404869885734323709753723998317574759620699651016344755250512445985621721326596702992468547356486661859654858216762403387780717037891015984244717606593733266321980975889437835706838689265081029718663662642267393814986136339125466925732090811361760608931502041094830282749994996010135896809799323514575581950858528414879337049013452564048844076667128699990437760969660828024289065383026148177936051843728555848970329542879259845573326177191785433701648922014596842649476990027707995120389034611587578008328973078885581874768947303983955113311422299121729816503174073064939496809865031626086238434592640275806291111122894421331678681697651185709114024975411114569130914238062804181035840219356307188493308985312217048399142647083750867980789047002096093238325396041440295683358960514705542708261695345345336285135206791101510409383964827339086521826691362216125142445301505322937630899040401045757947022609006653086408677226470044674564724668304051312251702773579157770893525214948688257804455221029334836641115026323300094777193510436950051571743281347175689915038229195455825586325953091318656971935212085755044559588390246068315487063978373823053724624827922311572667701986780342303962860929554409612751416648908803802191074647513418877093964321524562732718645088208631627776935084340547719801810671777354949420624951243237258400582589363027568240873632466858174641097970722768098167887404719853443815995028821646816409723403449659177230244913247807687985295759660779582795856515264259193051912315809127144309879395624421026113017027056015655251192313019277657449220121806001826618266962221947241344507981025273648443446257251838784701556248255664742993850409571252846364940957414217134397161601156343941975694799948756035485087570896673325089695256433703148789615318245202663930727081559480239586647689606330075235046940103321295683929280937274691596102637319875873218511716600658059655169001204997722395951025777854479798962748885561524920640941598638682399598843598318765035289600445755130807687374598340106138525732256697671852226905995278764249184132738250982872084005845757635602638893204706977376709305015805189270173379371916183289568173006170004381800474172342467346698071800317212451809038190274717037340596843528174524803733370487108896924847195497968224935813446733937466337096831719008924389652070774338996732787432914192083210769632025147021496293204262989881488543889389531258524976546795162842336518452160525340723720278825161171717250746961147857317598609468177273716439043185981116892605094560442755151326536778005287406186287318762948377776330764004829836554286084064283644817176516359209456758668767988583433523571388204994712767153552900906782968903338371061054259093413414706197729691214134045337596552248584891088693958949239526661881449166298651156571790331947560663140677861861949623354607003852249319209139492353415147964495673429967207493033627809551028536032733451682964749037282080063058654089850168766860504726349857134379261089964147441878327290085892589415202069077667276457421736092664252974032912729975798886014831650700304136591836879938148327134364327466509471765486844234154141430195163404220392775364368289719702754284617809284361226313819953615793591618154455262881388612408784229568867020844781218493740306495703112867081079959577877621103020843551114347559038651922333121794289295080631246803854872729297842856445433592826634497505590065098925412557554359939171376881014801513365368278169217461491862081210927054939600831117763783442522842744520800408806240761525772506058766797785164497315566295497854148924920109889991953795948926406051337473279178942585521120485277829735896979331785076328351885189029086057715654824875483546688307344214965459821382756613040460637571407625099757436072219036143558615251573191159410645742475222237283674075232102068245643706823175468620973411795191158000513652962683186242796202037428780736344099115452689765652803331098588370030837520917030205569558689943853648194492531117094427596359348407512490344777421444041901547301740356123181020968555714012182203342038062780153908965856022097505078296565091747072735856559481855978502508046031584013027850105627957018356951839255970859280405675878212404508053559284959891897150782485470915542072059295287001690454110366836715348106924892660664145470284380256974649693723166389370356469947553688501064556387052141796042648216178865640952952873473586614503684293055457922095112883400777440232123824101303645470815894535512181423233871542867197275467090398827555167165951095037000074847025021410161212771771177092992625887868797248322785595411513419341648518209224130845266498328105049439112050432990194774978914488007459352610195748964445525420903175843604437252757471080164632646731773898188290202891370271570803567149851324500703369152126287584227043284504245132776586734718701299386999077876025216992507790234060990359346879447300646341693847828752410054318682899779602412612374242111640033872310158059896116030640961350786046318709691100651785493662129758583257354223116121878230814528918028403802381389093586680127249585642604370254248507844290034864916422453287732799994035508045573160570483680780117110997233432751512093638355437465048221021590111797357083732594335380020034895875892704837394634754696846436257134872945953806833082737779706566479071386514382276593665716528734711881201963989573587734297827695565220047221321865813938368641783638104646715044719101947332081538143744902702995410055726606736754313710525052632532174719735047274600367317761600173545864276852276147313792580847959102213054259506457504917374694173141343105619669720721986480446362248254463071042299659170882112615050308148938084964793122592242602021042886354053893496167386424471673667002607712723105427450193667548520838078738545598015269018433833873465854782254683361353512239604986359499795902766974389528389753099043967572513255402285321594839222319473593002662218552898162972257357547867066655132905685813550367457947508760942468353103974746884804396565447683757506508873665746935192849933643572873309406567143347650905612050880027867115412501692533964098093842250864033169962199439060800239381356266137129042528036733718812949013136542247896309233595228089824599319395665387432430743563745447294400311545901386474322936139225983218527343950264575895302989948310162151502860021953878239284528670189918198569890789962027175378445549037314884626955127615617256157263149589025691477205670444399795322057130479378088330098463651615752361267993779300554630910075036186042063858434964324112631493085195197104612717939447247895240247637674046193537212998895207250643682196301227353476687616839163973943343009624773309352737240376268601943950613064685812759182733199461854072082747914406653780567257286849327936800532800620515663516097381232238118869652278816870433803482025341385782494367581372347011185155057467074207074107347706424898449319012526723762627390514608513716964027872315764108324049649685440321348512074361745296507341773211808104428446344131741359880048860171794234649472959769566225497177074251096047097944628929036131370332541667406926668333624993742808013121924442244622585973524865581964896003241827976623763187236551034521765016891512806104156133357802033101752393063977838793291803245849535684197304512829149388212940637289990068432906499847511754369840446661503231619493947402805935716893756222556616159882239284219751060006948808783249687025021491557116226772299938404449457239111890531999228046036700140191890753793110444982510223846224871282029700348231018743243323723470859162751818242619861968127096653260525809723672624364648909609258574973080140075235470947736582698993387171628370678317403569073028065574298022998567947295393200427885748452901552783859974054568925471377070400176985163293222716199050530284631493937894876522798503511422217579823196585187496167196832854065820179177182913547265181403101025267163664513509801940107580428865877353242632847079513716748439830609630808972628547248533918722240851579863325110005930111993346250980720700723343950326845763023651513288430256811766554897337340201495621067529225312713324297554087535099999763904345953253062047353336305539974305923879215276646997751027033078558886909381785812960529615654866264151567009389041194493598771195100217255459451918572900231330098267718891955791359071897785238648303942969513212765433898704000985164191816816295153981918485138053184836423087592691327872460334227685639819112655363834207402688678967371797180589901118484840849316969188251609793976345191070460889850536977947887102524912505468884704930952496978608752230421392299467072227558994486448578908136459611884841807365585077787130374408417178262258374667723385634198503295994586524992782416853054178598512406759315166059723672986318397305489622415269405400281684061464193632021784755378525819359254475319770466496204156160842660474055617453458326506729883640611926686238768304568158374512951470868385334647243025187916858072246306720594276279414114809465100616018664150177476806676863400336297132710263085007084987005459644722110560460884812957871207757136107549996225728952092334080915210692998367576880416101121379873636975155972602832111139927921878864758451433893711209082593093861488727929814541483235204597084171383964340086476841078658597989222957591587071322526449598050353900467051416463935822392406288628854092524754205561494021522632165038154602556758614195565550193207981400161317628153629127974933850522773420412848654067820405132136814395791735687218037708059475849136398736493163816467971443260367813472169925422633034724479819856804703641629495662825353438256944678713455444412157411884152948335538954221548814925792549324101238468100534590283824773516371997012380658117970416825223246878526904486005582435293588181072135570778943353662318497639034999228914120440243426208579050623778438490389090026047090498949161116703719714263405311508193389508341493231494304417232611702422283856804332145351749358999565436236610791725138637247004017364993439788365536031340308062687085164418387900716854465815266290651672603806122317746778318891378987853985292630843299661624126515293897719173797656306992025393208452814048772205280183780187553181115877301970973037306935449103320403853303328778937660627273806013870677570153214723914053905334413107662996897053240190989846838331767696658502470339063405584053267322139899573485196310997878195172051217812605149125773165315526230208802137239788090720183372306780562150818801961751117284237985218971213487584424490803522288673680041682973412353537132956402042105881620837450564854935802527209903691129227052858905738520143532910833843948975283544295806898630414940849996827406465788155687371755224265212393391008101187739130287417541040437109678713578307120569495409585891774305631671671070615512811365460621595704256728428068228552132587414722880573152928161838789510234574418231550350924596815022158517684973300607050510933341935780494595506935618501370959909622863524878852663631908820125716752022263693848971824588427684126200161065531513831800001254727397069199659073904379407813100907268059533947497872572077608782524676802798489576159011301709369719431155813104884044915570011197321434725269343817793776513042963663976233179462373963100854787885029890787422146659088681982973233509419259567734907648837727748777740963602922969151404783008822633335178806589220743796431531185483462847870300344387298426672648544611784745687810069791354882856914698941787399599444484954248055985213966299618688458978910643805519857671549988652496030372694746662755442330827278555986273636098344180986189632782112937113499160524233753305430863842423403006854690964818284820774456299282444913666663030537669286781305138768314187542336260688821246087690139847738352727048292184931898774850846895326426081106377308684877690342243515739968726983961975923087182073309204175596839613962843761457513737604514116311955864645329145964123557431363783535564366078975065618504947938189923410993310265512420435635970301631384736862946725130635354188271758358438522579126372545166917486697370394061649415378401363006734000805839414911900916264784954956831874545942797479608502451815729607302783444879755365035481603025177189893565413474587981005550114836432683301043295557410933070107256799609602509494046734939240684831503093006012446682581837971536658820911425042694457199638171033244321771823021808133881209289093495156107112637134719932055615703487009025594853002049515940691040003792512720609187839931328213572355511195923342297377083646870770972505476656287478837604384711481711076716087077516894880447392905667150178689829008956178021381074538421549926708544618937739029849596007133454042820236380782863484420372271704194767473185879895060483378393221524621439735656557387790723827588777489634490854976871424141881481172136498486085528022749629947680877384371949590226363352121914403127876552682430975282875154995732791310110225175150062806375045370724423714325197465904950761127059731169283869615938043089191844860530700643342349803346307015937539439838062624617578931900364090376713440653355112193924042773871986387268338367170966997794595400018946825440590343713946548211588440916610145543028052596295638094986783120286633981220352852557896715685577256356517502303879887325005892662128517242347469420446849396707297999799929785622378776732494665342329331083691271056918741589263369602586472307683207772517218402812606636989356644914974438960779621066700774112108880003409696009388441044323685236023108398143785366819104074836356279838972706533187517361382370169020663735129722507235223066963077204098065011955089325548190610965527087426217006429214002027449188589973551253675042318379112014966222351287603570550091641520689034960776025899171301005514888270093609539285451036854932646534611295149559125637255891426461276840314927762665688707047175029461053733095331340888834902528764706847368938906381737412966616375202222564734802772572419840995517566830809517033077731466381959317907440354764087180155229307291659010448146491676032775323559662936615275204321751125689836106813394899137266503520600102767353724282357297257343666100023905661165309010721983234320676593156308726878094430196578181374580480969940747924665536424683864061844207754794857275054127252412350546225199834623484709806274402950968018301138454158472110026882611181642874809634913516659025194786376437059041931220059547937120951035599354292082767384278156249992498279473924060491371303430778851886889493714006691494047918418622705137187566296906523252599239871562925506675215806901680618841138713962024906436096829241381420234589545120865076668967834918049960724378372526651397819776383170933834645638817332694639208350938019679080088002811912375665394035308856072848154045799740349279448604001522600971485595139412140341967156707988224676921380107591885074483641630620012138416574234129204714123878682697086785023441037933901758355228974945178154772533959663565603465814701296078507339236383754505914286212303922761427826458828407613943631815789645826458570531949458541432832595924546186673582620400018886893579074156948290118017860469215346648389668997418429480407570089266195031190045627249672989530439765185384042055896901215066950979594498779330458082173601723078138318002440731069960274501168885190865900957914822085297602576787352756884767960218192403869385636289231433597420014405654383306228098666981357215422227583502256548013808292298513708895306755574685294049926819518406700073728671604537894109736161784840244100032604752714074342569916329110370442504347146538550073926720221887993968554996727559620181275268521859521971414624924690487248394625157086863675747605172173811602522170262264028345923883089769301684917332557220879151726357865740938047448409489340140028663918959510177018901302495915402139065635719221994402504947798237438341277075481865517055347453281588242551336259494665976991144995172046808504146289405539605389312689743690289263964135593546376271921075704566358232850637120462550339905556977131375858867659281203809084565852368334674038959452931812346982306372858308447140650834449321446038108516363943707305518705849578133204764655920358623866067852701302112817915564774811622062381939077368999740705627366057627790550742852799630544590241831952075331103995349873149715653344640471228405895600952903772057225586899015415300077370028340085143351198969663652426938701930533346689363067430558482198891913666196619113268108354654905485409574489025682531729641038175648955185822959807810906942985270068283289251213897688057581375269776220292959852902146171138218598352836924081808888802151913916675834174889926510019745545226766487579271587924004737327923153805375655132274030674602595970491720232678310663430681982114459113592507006747153396539871737341130666389739085228123431445796156852798230853477693069390016796641172978455462597055095074842514647272148760716880079165542066813138363348163753736595276112736152710243176749879765148530950649481956095046687473144721374420583070591020181017017226587698018136934601882553959770458856540864371932138008368465449730947892718208306662312079496532379905759086815560575745180756137387371804098476250008548070537536148323477133797308300650942381731523511478715306308865903784127732306650393072095346410977188402346456041700805530634081035995299879572769813186584159604414403281423862032479850609514342694084714072145232594315775598897278616561589311856216428824754080867982519209371452712722685456149540498744016597444565742994648261382396202245895550647050114673333072421684630255175480815443301898507832805117155406201743271589235943904508599047713938532464969998692024294174522908225283399185345142111219906905741217201345092594911176117391201506870556987448301580107468549565007950830126496523083437053571953639466292267939391216073778735496367147397883885679487585017270365170275495197668055227158400609407408533917387346573989382489365041012013966090012503654805838990615207472488279948183212817990672765212784754708029603709626749401054652005336399736781311958361261710713572766680093223344223321689371454302477376758342229857655265890052442169779263875359171195493258423783332979341042749956078224084427433468059308789550244490525331732396016943598364681135849654506719981999119439945829898679528727918425997412021811926551420910191568121477472101529715293936108154952637138510259631200011651569065910949621911592672150885444045292400757992675761783843050649694175957116000807135178914749998103752974982512383816301070750313406379381414470408824413804446673273931880688173513485082094718848916664360640041414723688331253145877421349967778279084313713796749168272450321582170329725169045921830996326421549108395219890309403148247818727982917307243521310297880254375240897283076993214655647299231585113341529854409510523336546785838261059263929489750525694758850468488596303307741921471903829640873382074446444605319701698026690770437685211231289285447761168706121374960426337385887946775513555290230879195458627012920129254716798124720978031169600965048470827220457209700879505320087050231196428337503092861625927712749547791452240423183102988466541052399691882718079268154511464249732143660882554447459314540946952622043014262083232518813044381062073203399288827876539569677206431081302687486201838162465333185445191617460768496964303235718742664227974503978979473455406441654791083857721031341826552285685297668911404119461441440889301842007242783363994682393728778493760622335776473429840923773992476179962734855807338247683869042011626515868146644791167607090194739724232453297528983320016203364747030189909635980337298286753400760176565307614121647202222708508395641081886797068904397907624754122729514735365453436597973789551765506793214692562067868782129330797708108343292960263342980949141379692452738986440907691966334180926838927137815252261297871416922507486957981919572322900745364429686228405385438382605000540384796286650619809764933265321250163706941763628146389987810650721333122732462545446968366873989491613138864962889612639485628019154607835987274676408544582668442730354904315223533516966954023307638818416678975309953072913689269459242228321792955548905765901825949083801846180412755174185831097941628653111677633269694356718334536020319119444316721176477539107858658291883346851275983062595116315115411917640577883768606334069791382718497202229137963829150316601921182190069868852480954379560989948546889690805919543708854903007725647952785919435795985042206769150765958337933693668982854251873425788206807015117805552240400974474605293849240756815260724752535433436657292509939958798353464522875617173198885979277534567421461694898669849720077269167392918245955926940302852268899892164027507313973821878349065776856720439597382500765545515285268607211440014765470183300151015462547255663274645083863285818166845895666514752403956976029032599614165271793958011872353962938355149587124830712104923445228453860334892355820507420678231575083049408785054998343912995331508005591375900004003465929098059741906322847167564712768149471973382110431522060930175246204911001792964822473078553952409904714382056903925792367141882971386636421548374708568564687944141042443113906051937276031381666395078270950310488083914449759228491452491392592565503255116929624133032616593264516558866647602841449405778238934040433134857585958239669304759275009738100526210422826046268201922073159700466912246385672949079365974141651089688426479444459724652263833358884820537596884870031131123486885592087155632976163515335863759834173082354315329038360422364271163320665964601779104079227400201359765833370655938983118634142973020514892562048197295017075086452998138687298887123001684010686893585479572954830928351652916244209100393738396284453317608502864012741173167080391128437867859804129507247518514116782330802054336836407664019924937478500177652760060723882845563748462297091887572278562732097166529384694391985752223257476619425515541902272562902284797077740863725317974987112807939561461739206155948964333383941203608838503792220783037727481911985449477730131844897373520841050257734339602558169479055189140682358741427280814216840271923346953717654152399452299888465128697390104524591300761489544617897066281421014523198109205288056078532467310781172179829046139126431605134947326658995255187121216314391669882626366351065876607767712688596957062495126661284277871229021660661496107838702696090088179114085364124094266471106439158610778379221871871692162176287368254271321425704169634749216153300426849748520269229056447542244028231830876927554444867812033449138315851092257194963968892301647930837927484912624316706926181965809215805519367590458852526824346255186316007992186356392414939718016097320206885607996713534985021475312092940862107058458282665179232681078516200400310755058286114911968811834850039832713121668106649651121257053308946717847025920447692688125126735392261344277987677774438850209676358463999603529334165217841201482629867801251882087930941534863647340648981194269144019356182763945531471927371592766260742719127125078182601897061022456794981945631121004761995909951332898360882959191792867587778896658719124065623141536501173298218004177486402450314107526573211353433390274936206079818249775488462652073721830609697809329228434919919459194056981854422481963041530285061570276695425006061988884541789850373554047519624295595267722403012806484004281770764736936151062936339205339813486161849595643626109476726357615779264777681398306181657457467726768939925753488240154013922890274125338136897198698303873127273323036992457879032730376078570548341485244597564101814690238368925675673022541168072766380393985094142420104253557000094231342883518167814333927662419783387686304141948858588978083115557752986057470852714944024652619486471080563653572012515076155351991327138716183117252043954629858908769946469785400908921173241517769390228164350091926450148533246182365618566689169405948339642999412035855503946285880053983783679683541697518794818753615166503465700039730258360655694495641550792153134561217892231079874097429099132999763866489235850562146742905686066063151727345482648110382935843161936231932488390904076004501890665285209861675505052560699922945351768309258170976635089007625369915852889279636695267947524758205311766576817902701471266474182930679971017666981212699973773135712440949124509381135710415941552866705306037016673941399907058223580873444531253875845191985760807988690631043586958327918144486266959227463600973536635529409154326501954331360045701328957982940637284051551350787983596782684941542794359439915908734355734543495775897920617488795980537415870285056540955982376501817204968449150054020169275123460889672752994370451303700078049496854613907260074405638441879111829249212893016966401740171938845714124690264902357937970794358602907155544481217787081699183122957042726800301138401396959702865043696414718071021125976240815528392779735744270879464691646283351767388584374049651223326311010623787526314807106792813672318787970923523893526671698610057099862516516948292476010758971360671687391077699927811060151141972090604891851153399657704141475808205948746040451052448865587338764850404712949747238740266893516262879096207664831457847417433828341359858769721001254012909497150980103532313361822340687201303486179106926779565911612858088226019309011841293561821497551503089958211425669071938193692103794290324304801117025314380555156271069618860828706305472349983288292512972825319938813856227251756277171998765850068478629653188265377892116453514754806162288694490608399458806286065355068715643643733003041786228953297306906832030178707442073715043925035130578971719203586951811318575368945956753497071414443785353290499948095724339361314021230309208408130812390255771203458247552395890072534735225267789108324357009898019207739583805168380733220080761991116303603863087105770189891943375585899986426003466803640113754978159381799558290052447971028098825686864605684580542567496822051762135783981843587734996619542139538880005578847421869454032771768125637968234354249291458304193679497275456570750334638072299700391725219277502750559224734416427568200675091253607063534457210597401912519881784912999883769048078968998921595557198302602587977567016019683375482975786564568296403406543421598476274199665605989225322441179892109939669920304025549645169614388924438423292309766518085060153508944691413308858737843490075718003261956288796743763229094796715557249162068735313423295534944576982283506427789181145944686264802938539493797217123441988491979300717663979062312210178010215745490055875097738337577403205257201169672998764525848857963129344275240342145638417622430896035278309225936862787430953453329864489358545700824837386263100318162713126228775610210884171998299001271776607406293661300552100432197215504545747324597109225712755000628333140056397778495750504735621413351888860582121628843170298627131664710339306186943449199364169052343842139348633171338663827210577488126680914715787260136034371101313345528694968825477869569304920549056126829930087247848259006105366662678859131967410870660796729881897081345437391379520234259319696381054417696942745244324428505372946630350494800324484029435371829840544597247965547699657945311535823168667082851531543972572731876337460860950059153809683421006556121677328822677254143232833491860958422835149159489078805820695459131413656046354489359263684371570144778608468399982160482190446123376495393857291153226813677602532844814363571981895314532683702565887126482377021358476097064740169798963964470082142156926758028938494125593131631791544214311599493913853191964895892926046006408492812365779983785760466253391066926872427219703930502404741186396971325267486497158849510721176523859491415644595696192571027532085621893303679812054460301389567394253503521031287372359904902880005608553037444265929878952361941120733228054899651209960377319094328873853057550645934913816132574541634993704037302028223098187421656491099545186004547030831547691474901656510398162358603766915788190234908639251968185936847679350252749273191502556883297159063344739057589526341568494061378396974952825866749482325849619633551894160181290471046189603133112257098863446096385710533235039935837198222497919173579074436422691182522575205319260750338081725569016742163032145146427638233540547968315735194957660842277704822692014526588588894787443288025168804416196246647100847958532402261937551002298582632376973352671768306264550974976776520278263613039204415107443843206933801325056953558690071583527775861670367221953367115946255592870068576329039226431383882704833782849332425255056611172867367721139506217157246414306671716469662513431675220531813161432828236058192126212679831423548844239478593515219586409912351950124572977228853398197873931845671199967749109087723432213793865530408742116392455807721752628493725967950359743688566409102005718670462436269510085316466502288215729896815884025354277299058884263461860119616692426786776028085160503788584938986615540123881317139951920883480037888574837857427806421959940336691676667837475572887998832960800630682309112937191811232283483061381453383557259410474968002464552201059081750811388295441650272921995430607254755745359527199627264818207985990770544150975399825595695215655463880938964472316786707396052340316847916991410078673694904667146730538133707865820568903163769067936955328918472731126117718702957630062928642879619291723230069730686728481131276249121392219272868891652446324254088453396548753702080349481380007635909063230945030147461429847392179701231432371845871572404898605294981138049060089453824931211796567361452668075606975376515643186718837191724331636116527243546311365294977959413610327564232692947484789633405244791836152156931195689912164555100983718474591290938227535543096115570239031590614655334549331261345438834623559689367144899472371985765552675512002948586706211781991071600885479974460478852919438174103600494094520926593100718279690678203568765487864835512405608825469997864222771040369835506627653155486988130904973158295586848875507675853276463088816917546106775385738926576413155422451906781628549729407360021798500802314682749587057374049560042925986491540805970639577398453218011460846814282399834934967138051305543005278740911427603731845775625583364157157112793767639265375263325038175190977646513191608327705266460335352077743215985812927908365672615142443504677236024202163635615528057147105768031447824837687616262269278541039648009614041373127691431392153218007505492507156596759908281437529276873255045848606852040487951141027900281177434373969424614510312292515681455333437472259817038427808815031761477672173790090303915996223855043068354136576586840748545994653699454993746274184413488839169364729709741156907680993077391667616197036658947187716656856175551438839495814118161027687873116148598525257640119353111792556323343431108627680632604234056964720955390109520526147379169545103982923757234635521838257150134649190260948806864341203894151692806600300424458022561308639376926528423592053396969310459592338191616005475818117729842262602868397718477583523351564226338826536829400398586658425219090499104069330345648993868478082968860588509085316945854769404996147126411568349519305013511939185284347176366314709436768358828540439291042587077671382112851264985367659949092624364083779277724873031879107587230507542915868643537413815021208417406755811001867830213563536309724171791308621280975535226280691328919980558881114698158226400857513510449380959757937244481202761989650242167359997526888639315748692628341855729301039149262690205616468031977352198099400117263766047902796481831646166788400577090798289919996492393416382511968644718344427553853812279205415522220272379963205916024545263016347258147422906416138235825750126787310000787643128951446784396481147276733451269281487483717987822927124978231198387939365756873936053232068887131936970269897179117923864219290329766154004236523546572258045311063931499381658455838135432872007457279518974052386483448724173665272268392064326162057100389467447688285291582098989416366566549510392610994282610308389885123508354737851313579772823506707545885843848602011993265445433879270595974524009439298355498358329249242007121489251908353986912279553542436548198426436803397856101316677338411935466038587356966585645537108453134527197217957384108912458108829208862196412447210098941571756942874691469808519784732187853667426781307279120594228385441369011213262136666017832554990229046434940314981095235569310161911219576661098061736246339074054818219614980136866590910980356524722477349499075637404137041417228316880788686822572092661298335219233413631725618677367650780003180819175082105520913582166828988162455054906226919865669042732521415440419380422516411353371668881635677231880277488483686394549221754818431631098335791202137007036271780964595527320201297478874726042655193559463537686662795262084388998095946964934262363478852132259514282350189275948190417506072026490947995584801045627580341841044401121547630525127778177650358113675456462426596714256405385443128889532640003470811061801041031604056574476609810391622860467392192539326939808621988311382340107035150950530238738396123736812862085515299876844410726425402311757932603760915945793415365359332360822485904789935441870472422455085214191627682215680992810517807050422099670949305841878520083217387805241145437189269455201367645432721606491510675055992275222477386683563184447699700784013337812255174903391455924705236696640542294987951059726895369284786759573729577327285289580125200775446890241758380779690090739973443392365500790037955960986834476623286346667539270758862391669084162823155603436767204127972069666487222144590676235026605773243387146662644668975505670302283285473229220911353910323296704075220397309344648046946313268492462619037565748136077183370568618243337919406806231497602069642750743478658742318132708921229504038434882988489287716628534713814389868613866740432984990351510549202380058633140389630176929290631686593604688271038007041460718126196161379430666922858967508554862580973942336122643645144151879053946662352848532434119983239580056957527665919087923878414661332198891118777316490081954046070695632789020227505300071584558986572563885341868966321978312468994823894818561122901207617335763753220768660599189780830948220097826177365942927019442523564173200271917011238278748809786350845747366246449061630818906903135054056177726681409143592145586885604537542377969526144970572495566309879637061927604456099690852379060869092118620500086894544175038753389692167382729764989010647408427816885941255506936954933909865218798922460696758546804269779615463404704695254301546884750473401487408091487069485013841935436656027153818084107698351052602956552497564744257930250759345576465938149748275415319903507609556983650696133795163291516397681665594489800118412990454140244859253393791625398013782335310077059850032933940913860480897695538331436157257632119615396431921968781099836987032975726982925612517380924511515553887603711427545147579177171979828406809696398091212085012280563403906209101294859356902920567981563121597883622137413312272709171032583406009810269003937320922059810837822007273568563383114817546597901865875543334213404671950022480334062909718211843230193256241521642350954444451697662907193777377807781799726823152532789844387224452458139659352567457495767739902913123871373771592841144865691641020568234857001616278975733649352256639799504844502618720163361901904602183544363318432653298524062038709513594256925121050686698130127718334513525662797672783439657597285013954354846839246662309530554074600301932127019643266678173372056952236777901879791579139598675294690084997497057052893056778546535586300343879776624560813258963856024216752324771779408475491601374067362380553027509059959064902955301954648947369107985405275059276398916282519372336367562819723653572691044714362624251113195838862824849673779034014855919063296854855421488939406529151903812426296339650354265689056460954954317747630857324866427937534871868983426544977535150080072794148357934876206216688260185002078789992286752702547368773118560677975911124040323622211374860641961809859007414224249303936438251533478306165474008144050779357243961618078807108847213936936254795576538730675103401090230467365307641940967564062166734125321122451151191861649500741233115559943588240970845340550089149597831558252043126671713479056330654456920841292106012644464928159956702322683544968748117110798484798234870937509790209041754053954491342535798578433542035776368936132246954391414390245991990774876090551702461438044783380734801522124879060263360323125037595316231977835940428311041423598078303394466607886823246134194813017509075510196879242964091655608424225425095846714580429719708897427184186166781805839779559825033280971586432390159916823053123331721894548917577929660403931489810756943242216257932284375071375622564262215459520963106114405812992014882474598182403375696203999393370745114107924331799823893364337121829112107089472835887007302568470863490488229227753843794433390378113354142017424146773768061336434922223797137674907321105053585026106331352755009550524039673595923333864919734727512595232084658572673069128533273663277828956414758781138033970085025927457852202955005206412956967328877771217037654766709006455281039414914073794225914957877140672787291251913605354010261368028559374797508816256208837242395767646264702094223026057341382853228133047821019700071476288104847650939422337116951046379218456213891460174156072389281395693127877003980630316589041107698178623356753825347288486676746273251440013749573151249695559471241278735380516860981817383448513045026315431043310820746676062268629356812429555169680746895243843071696632122828266412950115741130633769825184805021888849564042770553729343750125030285955676301895843119993101456662333209622105343530483211228765935263992792206892205733268746722593670769242434686725125191946918078082030371322177785174840156196912897055245839000585724373693529205073189315052579897096501898803056021569957608506695733478178048244193197185247608143039954724526116024871896432433547723110161155675122516551806831179292642141469429359075510743940971933589728530116649897201316240379188278408427771714262547173954218146981975883782373163034103228404324744933074919813719380852429852869619649609559531581468937249078452291265120724271882623434171979079674270613847628874126207255450162335068548428789161809330419544732887941489751902920971563538746922889490712819799184974692160294856354167043184098505920515015773253994029542669201422676529832397038243770721973189011287242272795472674438499555064354765110810681802627643641389593417184795094830639290726132731223527870302387459583433977565066895993674986632185648686815593260820276142224824921808760142089129543208611577855800876311018410129444516751040214086711702868306125462145544358929418091150161844461327942019751059767913135910285877735007518144209769639968749727570896225636150358965248183011770761390101006205300755141780274557853090311259157100978671388246074924356818079963055937564909835583874591712398959440771586830415359975520824132220219626034331637683354505926445026474196988729598013174423805641186232450147612355627581031136843870825442246733360676675206844412989747136613685998094742279671329994518514216592031372117562496195267301550843244609464358550735302103349177455277776703138977428103789972228261247100341658709594702019987815942211308526346079842131465011549716474845890838493859514763100633314266285244059715549418674683091709727775369328207442275828728417765783958646487585564922246900182947488346262969839523722889873111606591958544171790008400633737137655733372106792207634783772687012190791360928379914871735775031613311077573238890298752551490302350006639669759667751808697629710785851646478401446966074859255442951539971682906354646488012429138408253893870523195614995192788379762268735740925105202364030071627935417165673321641778338679225808582525332428026601425367647031106260974655433546380401203970342423373984042547685143427256691201358133418610942869838204494475284071167613644508163689321197772330555263141358197749559435465802468390106301723477690540513689895695607708998289084276517965321275237099775136479342387741439290017347008901592966429596503318539328002944418196988006640598606655576054514633970913763679999058176599444854774254625994048123775604680679701151636632183924021063702917890383409690310763361635528568310635740107522255800745248678704420125116950276566667636621152090234128229792091699809662739037091620954689067493123738920791130803419845086976768197794278873785085015888015947786380919692545125737075055992007284893205776170267903342568431679906719956959326697398313037332686430702156098407191241241161920636051596236965535845930769677500793504170758645380046389633236802215102865904320488118137723677983567779186943210964230409675404200608433766148490078972254156182398130286812374453646350658479209526626567125227287008347371187300590420887068133817255761495689307004434951506552039688066828449000927975830921435739698331351898684813474125118230886777754140758893529929492796744085211459489894813998406844372348915194045457949846500496972133317504559239265978150602988833399741885480288649949278326627503950598494899180747046638942742654370959559136512374130886705798439141891099064621762526455310399016430019115543702870196979266084266025467094041249295365332216178631402762607879575461389348200759569172245893659918655710539408066544183176746996237781315761652011768894718630864864058926163311178101568141113624652972955884829860742605058739499364673605747635531555994169133940976546865674474561567942913365499619995540631968496840756972661571147280619375205684859394384687741224557180689286785185663116042664110475950622852104788055954248677154489046883137811306443523064270794373664333906798971419575577443937313919968663379905302429244820184747100425881008974003323875119263095841085572608303621499920111684679825288674473826878016495539492892510307101995883607473383720165935846873567728948459002956438919108046566260359844980929710325937364325724614472466761106483751820053502129320730162139161232739368502465344989147594214373355945960432476171204329489640206303957036679560362851697222236266158231446490790376985453827301546451356567092180000766743298744317740055842445907528544249104260151425197520765634975079245718271414240009818334268706330985131589654846523495184220994361923044072008178571474008507598164194363183664993507319360727069969450985565018913603607217412542999803112715868295048538252282553127558415926456674502480068662268562822378286448314434408106487051774059021341421997851363039055297999700817270948680025749236328588387917248588309926461354855544665051296994920215289673786850008990884861587212864342947651427330085311183926457053319641483976680304281985252802701790042219638362100000619073305484487003569381381035153721351781576025576383703568364310124455581652749671866949694979150801747201390000743197549597153828357047654722870979353801891609048975765452997120808069751237723258527558960960299063231234733222531427657725017246521346357614750005450448314864812113236004939547494718363286672927491805382942844773693328292527441902174758218102507044000144378132360963735276890315910072900021138602774826948592363902982306785055418515186230770420534227776866315461503587742248126042343930192984015780237763048563897621524614835557168756421623119759708366078981425479886147692459053554094528695201856242549371502572463788608431559753858741684088768221184282534052221972517963094313472246230013500650924319874205822176405192136535833697214627646465898402802177741193985505801893802430584693415755366159827679228022294271494466994189817726730458596424793766706104492938438206739131752114494486088601859974884012828949072591283660247268396455752039284144339316858786266026846261417913136061361864409176681745671995878770888046043568054386717101769191974996118488197528167689381960827389280413614121046653728904053614383274161379424638415266093241165781348985667327133058051417558400042833109296184734748760494664563323417566772835526579605460572679710571972136376980159803768017966625246795431146325976806341349128825845454147529336112023936549195902695931577317418586752165803168871584995718287704567293405895087407549208727697648058902139070357590845166798466449181812506259489046989509949856142829328116286125972670963226242747337431777881212226777156542676880853753507343927953056942232863472261965394600566008595591865828446044385239645361900091757168905499992164398799446842503267499877001269680073545083424664155038061926583823540268551316644934285455641758170898792453569823136327010841350223309967484862360314940700753571741356729367540410522199596143792357482979145945930764585515546207182634124722190173172759562429938453264996221054361854847341320979410351221898548501565328581848041682735186529986640336259976045547369115122410889008896469653129536963717212431563432066717823600201289057955606890178683767836998767872251793090755505554564313162249468448480381772232311338694415121406646627452185159670572739885033265710420201490622024799352626839389164478869702504962837781281872574025933395693876605775239816390958229040993714642089841652620291182567838431094487052689184418342899490930166640487385974564626155517518405304857178048904759703797779806678361464744010286863333323282381083422948824763737128853007208053338268455675327379650353599255562814404294847301038140820654764841274782872132824574955325855073126209199494055765324818151747059445200672042745248269884796865440639367274600951702442260705956395923436741165490105857650186253091866379753133725615732364036343323019827578687205032221663377859447332904082874915762654558826133526403673958501609608721265987205531629675714513138652709789474635013526397281001552236311305296899402813285063037390163414777647645586086947216408128437269855808235111386292284325382602127400312204622006056265493939152985642726761012598849256957591803953629455957398343255115127551267770028623566394517275183035482690444511752453136609554258218076619097337471125626508934241234158054781404272115368200176249653870324500916962491165510907533700447259937986260142601190934411594506817458618497840183894246314532846715629661438009367987578463275969817972739993169117404959141898484797430905039952734036378391829579477758149219165317726045146531348087078352491400318656096817823942145881547962706950515381000336870026037211033598275638131368050450942204212091994606171223811795509364419207175347932149169063418923513219859015809143810555579795938107288673416513409936897096145361922463423963425540873824148429503901944210637714510486457994464459975369596437855999759680801855730225807864299642469239973052545416535397057026380081321381205366481199340877446526325388593617669675602642487057466465351231004650466297346881363625242433816478977112360557627723949683189558480836771873275701252416953261204073893132002002661436249882453862956032410459462473543900971599938759186092781361270647098050642322237149718895791509401476841740459476016888334954783686382182695586474457695577331739458412740578302287569640628651098063822782291521783785947823373681677246148546589097120642297398638285210935769015623769564911168958600555377914461147831090605740826944175540452409899851133761661732188845529251239661135937863241998852905096314755744333973618259306828334496608171156892959351140084958463960088640106750785744641457386158322313807643829989492552302803428116905250495193474099468042244082774868943977771061479409620795508084035769328527113148213823840748436040161476077200561097583605467931094117928920600942910985480760188563219303933197648976980962324541145877398887833607831803259639363480636589987380747511638255918470778865125007591549714141546281818715316550888598788548562675352255343687289006986150495512193930554395984270952601141589970442219681578587596377925443500688274246164660787129291613763296606033180230259738952212739902082737053957361622873377952821955144374569732104870779578866795363899893855940855122959613780379831374645502857576650164311301054671867797940442597092329526380087398397323494411870300993194142282340390881334013123504516741435802156345270777153390239924139065169911096522474534626196541393084657381934143409736904935343772150869663950641378820171537108240131563295648974070191132381661375509373326023953526971350792309670277328405288882932361706424755972737883447091063478466460234352719491106701012787985916342491721281401970335307231759173017855869658008660328508625322021687904709924532015875068871095110999160070697313239072816093026739121656910919883955983645946659430138270833256335530597335764811201850126174293761086188824339523047276632442366444291941323695165863080549256833518340615541279697486512728261249441651287844409674360130298130070147832324285755654736983828854781422680992063904871360757674983743746741823985752872900018497101243822832835732910906779827913710399240145181374240161954762687109821303638126079265964247064753575386479202107391307122533798229549002805328207837222788949323061335232993213167981982475908006021323598124534784462264283325703038994182498073953515835936009768269472751027364925120225422632154430091362310534257688565547555185214357365380488948529688130968633828279095022670853434484912575943307717640125454439366449063401433311915309732113599477644921450871817033349545284101646867134855671069561519977455562680341962278781738648196862471093261177806252762041379394238537172494008513326472357961450855756141482282321183127443209893557957227865719768324795347422829270982204239291235489346666806281678374546354583573197326398975173947679300622117244898762258423103139391133903330564310978212206276354003762490409970064854349577087844649906228789510925379884538990430758307283936901455546944729680390583424481261403737746714062987963212688268061025124602935939058555020692044839645165097642391074804143061567602597254274949434928894560928584154407641387629185268678982235513338425298486010548760922895024641066391681683336700429245166426284303393949843990572925277707906509667854125604413495706189813010407169182019873793070684384827650219629018039979620302832126533418487883034532882140763932795571628887894409576821010173200574232940330718076348355718502961184597830037374022960008997834827912313954911563854995370117987562435940501387362101780763615998598278005191116163114575401301829955877647895535851354826555343833366750305034959527191417493213256252042523952275592332306607479490339281063193818431301962261551939337186944099508699975332387931570506082483260238053286860973134143049790258363815915018876560120084513230775568047721383497825893166313676017193622894724673088395605991595427516747546637758455266270393127990682321434379183516979900883572727030545506194874582171400836097921795118361002088700963605231241924893206608035175168412100234907360697102612642785384893193673159288147039949452795069263402450263766410724647620876583452908533078084634749460046158137221607745715782754936379149039035322785702566609787808725925828936870503816850503942425788495012360260132505939314009293327252586297644414952510824579774716257390844065779360060542509880137339830820646089549167615282517191495878049380155496691668169499786005141512193069245815948648018190809125785517364651999039790169787273484857179172088306399402339407849937762437291670334406611696167656986150504577625589115955783844701954364555252258213848818429526515736602910557307517792667540625896844557634480311431239242389780909605292422070567404652591430802638800579209564621253591233882601728997946020755381739105388198422638396091351586597891907293579600702501229630658444977360490443189840437159300132797081022143957357339047367520662364039967825202865433328099599569424271336128950194123303638563287951783565671727688638759526102644984541161279145498542340440554020793974468787515338224132649093817516873825481061984143256419944673359276558367246514447352292095104144490891595648277741435917964420735135288534511394688665547299329509432995726115204261595137278844153909093101631203693041502932931480891862019898494458369793276763703854882033948542951027647860689311941711189941867969563444464359344743201901072275632911034456788933469714579674567817746350688241681438438338909575624936032369566348995961959746786913407998549934671431132427944108056615791500932205094638650842900037765965974741706635703589372163096976713623243104293075296986736875948094673598006714926365084829544846003262058383644048935678582161183871212118632627750286658164036833253074820826224051376781909354705020612593832892205556248574662439788064216979945620309636906175740716196433358704904659569369318098509940700179611136296029847739482778720460973008836928088430195955265859920349546793246692201508346578844653701171990778901579258067303739508311614992467108824306356270866097834345247256945356821821969273297606632241626734806492442649038350686862343517237284872284307168581288938683693655594887794442646054494901525598369093519612002349061941562224453079230077095060863585593168619936317806551035612803203557794815564095887327561775099614076334898080993127382766660456349494650229949337448092994900298859322370922636945641538903883926684083163069108840943189440889474298184639946387255497942333714886238814655547654033124646058090864839175935660251491518692370215832295052097869758982364884510119577571091722108790801748357382726592689694245626970735322000773751465158846471952632495827416300234596923729627765630741676574836524444941231058373314894003420899493805200277032169610974132974298396563507744645720707472249699818121777561371546091520394106098578049427054750896232585542912112128573038707611564290197276674275780469161583029717558440177726840374581441393280698192933331721484661470602236139071560495495301887543115582457266009891172198662747492756420650002708084060963508115133475306985989483457529011970228911537373456186709933408012734667451933698494425417200671647665297475848568177299343334769738741726852124727969826865656794346763874828158467884958278520189820159801603197463421931873006914671402502825648465201791025517510323277722587727194244983490404424492036649844115215389139927428746612481223414088986373032073897235296257386240099796552253277241698281542410059043168283838535770369158920183943291921926803420708633186737765236930165235810181868490871007181737171287483829473537704010628601607613946380504490898154361569614810926455429098921124796632893388673385229054828665487979169767172301624028887238905028700036355492449336200623268643458357193227468623397800981719337880717716378919137672942350952319515806448049377543344026085002619348271496116181010110829110273352503675542994927229990640649349925099378495022119706081700536849524767457247765080106873080319456325083413744791895848946506331657526281542966606261344120266725603556044643118028323688946631554248662834790663127170352272322388246586733403024172930447267070502777465752770484183299370798546024061702496690400356758861019756070186838986567866486947949456448502006404895208970002778393095549816283062809389821983634099406619234047671659306714937046752869624159960346292274442326043957074522378906520644638341133053227605910099504609716389558069918281010986875255616919125717554597659923353408314050847437287557861748044072897550909982049547630556150550632323531488625654643237185135264269659940785735559274393693018660858050787104539228422629953129967625142966079269699445897916750445309222654797247546022447118052339849955870511541653619812287343799316561968684627734555929041618334416664698540326527981724230453802867967504234973592352210960333655864988166820022604814075741791710357645700896548819013130647761614692177154250323092187081140071533688440120793580524754281001240539360716917761761296260497702735283248740891916326342347848146622133153796597482455487206610362011013410424247693721171831160970681643515708942407517254128644919871686630705605613372681798174813704841690077324607978320852244193076218844132709714325209257261972397285797197787771230147424961283896376492721190447731781744823509235689617306874053607411399853260123205609048169337214969943074188224307726122630645795084770430814515675610139012946144407498813570907402151998312846294096965716443850444871530999536673538355717895695995292421864878703107425705059534337932680671751140726706409415567272401640107768781554585668061346051297706669364278758054848727875839496566912349137133387432060640749141376772337852207299369677208975234621627004399981838502711628980677377541441574003451299875360650395565650934729229831842306390073494004091251162855170968567256575280529674605174603340990219088981381763759246533641454677909962507965546872563265353158902063514104862997950708178223208037416878645621346530196995341533578087047947553673282629543086259447656211936471119707246792887098962340000669871232057772994266087186626566924280738995650959974695263886517695081673772643878923667566339340880729140589107063517230158172367234039241155253295246391535565218145773403810761518268642687778951473717076514284367615583297346476275351356748644066134046197033571815355108165570176222565560377332874597195084719230192083556105283278644756516435635235154866311880033592872235056628621904907251506679791474810006668226596278144810905014070680390026830057129400175632965900043812097804589435593505568873115790177881138420495283169573817890960316133598419373771167758109725585261545909070350870618374686355859904939851217725696775036134757407382559445427885233556969444753543395768773969066433972886007196590149719846407824655108186435196417910278944487544355387762335338835816888109861431514118677442047726258675805434106531055230581141782226968014815285881193970635164165077831509482697303379107044806866483536788861716409155812161155195278091973468084523145417271917858767363648119010321318854936797597256112360216959744736460830957949288497112872306228585242968331184584454610952957137236643578732621396756267502115468710127034757112939192673197913068578805484515011310904481910924383281074268797552269734101646853544379578221530680120012709499352452314434617143583263020417713653641087517682885421664871870486773603354191452609451190513075207440960894829794142079282896099826068210306866349644949153313041906730360007803209726950228846050818162213793551034785180996804100908227193725788136312450473509878044248538967685883835363340121106714410898851886476364419955523397304720723398851727865317221125438135309682885526115461677886250405043921373556929970026334219796341167604568693112030283677578002374007099996658691539382373326641811366424674177184194571944922520755368083713857897643055162042624569787331470672516476697900385535687736685194896066770511034795323070236888613337732773474811071531148248391052273773180594800570287958305572995086311720099675407682609540790199056119350819005102683915991067932780345964108026997525613998555179095404376825057337807653324228431035723257139966278566287253326057067846048453523242405533315123651326539646261855566908042329792572445757742023737549523855212195847186431289571161021919008600507128350048259187481310119203142079313986346783909130798228082210294282409782418450276280601136972709340973510194586317798352174158634352721814273033814366007816695249559470801185538605124855964628561350546431944058965301430706812734347148005064529112552754071050467885040992556249911934916355656103715100080146140351220017781591226410754368882094442846679766136552351824950285425541545079569298013565054199097527086615958409771957146781235751054107112664124931924412080237750120284813662181130471629020381404521085863531545949996509253666273784577388219288053290638849159811545944463256775709541055944929783699361887420838974009198382638608307114052217377735362039223857796719304847424046393952325583257269712184486601065317491473135092865296613586616879889042199958312605291930871815897010678204720147353936138487065558101271755984213837378317086912002945701212812146396811373824881464762014418423216984152440650969116509915526250468030790874419832435093742694785378267600874393344538247597229363309321723235916017072157584812213666957213074600911391774877055743258397776322794865411671265733865964144515818477639925984378997747416100271085340778817903154530548400607298236615172630735174500848789135750326849085914097729593742414955046651400116136712086355890844548387178126086454780381423053843967409476079837208400267732118562925916482411382601340540529849227861365451571609759429172407388673077140900628258445769660222876324755249767022085508292935231284076568425580112320567378832692437732464311247057781179341680983567693156446496403676480282520899928042147788697810675575722097593078127389063734565878438006156377372418423150780858096616098824873598718534116705601120985267652895516152934589280688835100903495194011056654166498695412748576529057173969638171481819285735928648195984679314381999032430933447403174402708641710393295586447166702855210495671629567614029240314799012621368006521501634253304659215432035348502248561264616207205918081981308842652596157258276587584013647896104400238339212848007728154275519478236990693486193883104615517093103101814748581312268272710765439960796075245955901018797864125468005173861740639272411690231619636135944790137666607086414448794076105490800084878616018303916299378706825801125356028319052685319014344823068748868871884315720051042102103871100109812841626515059506193384134947943384763325241102413347191226343847341852706859096051534447624311914221217371852367134540631496557945636645525017459217198764457447716531054221332610710691465002607687542711304171919105273002698808665721258637812990451281559134058438751554072893126333846935476277835003847778642838321231483870251273748655499591717842578611455721248019314940047015496975082311103085675925481101603133205893082459110075283706041623130206964514406395759239815078054343227830002387032746745585944543535107631273370611077652605272191228028469428450475553519034705389884875981310502572038296541793204106401497031151520080579803017215511268216644159038785941659598871391672115245361060731368266698519703770544289081494696264880699189442769814313697070541260851496466401100559399545647307927770717171664654484202454143225349214913188384644691397475658787729943918443425094438380673701771477975953441918089179573043033650481781024002263593269375013623301500073189243676246763995369035046222321937412504474526874090424335648502398757716166092922215221254818051322770990895985013854041951766826979950472543902004244925397812314703355772415170517808786854401839724973227430506653286947416342900267890567682338447858470527226855139161177052019018223365248929203747045997013217736067905868801983757363987279002969894010062547936017950315287715011278983511652325959454465543627280171925495198784941627103412705448674932446689444218107580424235706595808493215682379302549210025977276151711272044646847256675066151888573774508626820672225561626970822058854709650522503929799675492276575317709907257014077321491333081865722539124026546540236680429513310992249927666739610115555499475254032557647761505630414645288876048762336542181425181738805489794423970133706044223419081609901152656397517163551663176499445484245343730143004163528430104938332595610853567791855203087598401855102154259198152912801801955811781238293868231463787801964812462653166260327627793593131429201654202856965443719882921975332369606968994774172029326280043949192545408725536704521452802786048239881725430596591399024319063079613820220609531257685774419815858552412331144340590496030272192383934969971845989510889576479543384774451822735289981427131337355115804862642197330446047610192675879430651093102335730755772357000870325788937793986335527296333090360419707827730140178276698817418956940406085682677238604087839824831400223030466579779679420415714273233322433774212378813916961059986035168651139762918942106728017382714909694221253825462269728804050222855458720930636481262168408591364363022546202020784151614720331896815345919684849967992361347747107344666708577660495495017840350695265187855928430158208543821719465975867232979719077745432905963232074224708911531923515541288829537419558648045272765008223203411298793368852414357999247047209353139772587425333302599465366045353560189491667210591555976805426774807067732576265692743072114441278277602926257607883369700564206336939207865612351192391382410546336085531524629776727882582417534011962962731015553886973675242404204783020486277489723150909896810293381202036899845882897166570884430832479077573832682227126986268992751825351865727501555042104022990342322420771320732969514455256500114854569896431353472401994056599435129915218566565635704995020281750519092001399296887282895312693794885380928888063143653185820975958801156896415977917702435678349008924448365960584957487086923136869465283809725135272014462045562855272059684075441454062756329571882257625425465884528176240921229857659418155894278534784699233829206538861019203333497689048498814230914960533421901218876069158328917526589366036137112432896950478885140316594418541351604507304799939221520225858748858784018513851478967597078485723136393583229521737924281891826436044162396927229580435027469955428479279198657973312196442738593575789265694323889157514005961145193816762804483141222722453720129422860082268745592705464061615801217959354374914061768959453020178108844064370099945264409273345404780446695890105020771329342378179534776782089039452263629717725124316615644364716487880245138668461123555785741706216314412699463005340091169487815410712249439557500773105307650871230598001214071028773825791748911488443799443562709018629845736707989114140447138613969641041425219601234483457490568904343915488557478212436174385026259040906532940303691393455277797302968011624609551509354958492068645088668484268073151952588360090070587832534870961689398661179761430424283226096423580104140730382952304937305816306953231239149569153217063236328145376687086671953647390516696934720758429199452038374335648910876818944521801862665240529494932351464482837295875611475315905854547147029561459229179144914494764581997377575563026707693271702088668568019893570893068726021680138241975674290880477512096404263968490489183749187408668958660389545864340863489644844676473344305937757900447943315397913853814480418381125356706702998389807844814804732025015716843495187780218364442934756814312219601254286739179872063107679875658189915414720438904859968010561491702389939915935932274506383152940777833883335744704083841033858298697553283998623602311179097586547224127068379913534439011811708556961280003952545637866837591256548091279337740111038116440098063312953183423683019790344594453073956183181951201594234101300813149506401054098477241424476524212963893671201622199463635462769115644809600473907294714326106066125583158430133861909053302859716719577237282457240630007152041081808195278634285522412665313022881302827979504589685165037686627775902378692337698756915593885303079201764758957862978105093679852923512618765606336643679200293394377235599723973561305632633654229168016981176763033607977720837815143217218528889098353092516428172609776316596075680396166622804321864099702582942895970967540802410139523566815726830934629802497714084698475762664795961291028983146378415421418676728164716836755324942375795146635918127048412993893707296410272050470477094026982533930496185130580724654549796431541995231881627838922405024279573913321974879970767882453469702240972863906226457697183822607014306349545205329483068444727519267588750013468943038775976065132507958249807491035679809174488382277048077378481882574871957774404834694993921130754890100069665414627174257040975035901556286358588793162719299453721241651381321569176799408818356814693472758305368869056281583730787967821887446301696578401311683073922878141131167427129600309818313099606060493763998207621567054826314450905836671956353784393031339196644562534289391912178293964277187192751301077676775455339438655110417073390253248231445413471916656159214208371314035207126765772152711244212524586150737242527900497939086213978283929573459240114133394491920429077179195664289782970392142814353476540786837532904254407601220900267358364172409525020445994309540728383862256053035098503719004195090608061806547218501245250482829599741157042490810931488181067895271111724466319354232291597097190651847118565774644338048386503317500777171036739276507945872618016483054014895456390147100558400600878196710209509552202629459771816225106164698098035746299530305566326065676382273936422186907445198004841789340622448147522189405401659599270127315550742691357644167578338218654543426170641370694047620224865015220518749956168674614677478784719182509382018098559813597829750054428166749955134638956176591898534819932708798165630510856957099468344533068840989279886992439974107069941594193559555724789051462814334982655733883665303678360751423921383885789054839144991220506289729984354378293341306901797333531071756475641830168108399773958653270940838026862089827522588260191890362614137282929493954382717760704140572927921373824360180743696340756197082247314634363668458791800100627495337435770050234530423824378036854664661804394800613659510664764529243822098841281980153848607075585918974424451772062650615031348449322949068103999658134121676593111903565890218222731286810618388027000462004659471945667224158988004328311791911388115432542516676207417622301698263222297381673025771881846231394129217359287335520428677324987403982634558035803286873045315356552196367407047068175737282197403370546817997031116634917089856618898795052563686482221771856528182113172181297832294151031503387992001673181505995735560825752439592096247298740145751204338221110126919193873099685410114857775104828782757526202803630840465044893277892001614239853599498340703377418154683553817873383342507806292295877369569242869429016972981731210802151164667579828813935805575729552396125850278097333949740566965748369830964296238209497075002650261184031077625072567174203969587653552361565926546500684151517510782648216739083010033502085787865168226326949805063421296266092976393730555928528449263560767582911540290983575493189341707629194281283750731351165069546783048566899022595937094993189700132601858602150663346549720416570774023608565409254411169236546654286529845282441258952408277406748538247081713895951075003072214867486593998784915483020800764521102613936371590732816955166426100114550254791973642501262260168350457835996958517620462148717766134874261062181379904915533147871737906475964971142444287627210870376101057102493193682848844072026216106068940038266120707449464689941623865366262524773333969630524450371056011665518148321730569175073543911140396383299105419166554510066993097877554990963607758644316424484156721182178908331451667046000484032055290867613691245892598082479060585390386623994940829716824032946960836726450336195810835372510807167275621657128899192345294873088126777498325748637215345585113144854262123885878749878343996456599144589091946533117746861647431368274109972024201993103029428046417840161968688162047705653166238967113946253714157192053488202827067743991488410257986195318482965589196689857237486373579129650694619169900094039281185766550637874902522814412180238690910382861660663223761938900251823170797022452923008180613714412616421028236839276761753742670813881936742097127683689380004567057593249266574607423565253752435287413166590079559505791412251520444359448313442058284174230953926658101623298414550682388810494313591889565522553840567560308253772508047296614055059870566634770680574427498786207912244627247269629412550642935763469929315311674383220883593637470280338834674918979431706283843427202543017265884757089235421820215756752018265713620804432665099898551512640297803339293091335444270495269740466734942987248626406407191143891057535105141272057960195311128502615793499968279832137954461688121002787166965572515429426632972021866035444317477370411420257629371741221817766509623132459677044220779057415782313044052086560583251721192041904434336849632177237557832571269835170132995730742938222300899591079283715192492988046693745358245451489393732318176487491843085415804143261047904405957265087544406047826019727230334070203692279812693864983956829338550734073718812747997226609755902103919690305832533267459258015587853458993632241024709019550250696926376547036174538572378618690264616420701453965363406970437692535378129671816485894842844861600216780888104183720332882225825700611591388427090422131219241986845010809256395453484247063171178791965544661601969890088150557659581495297676592719087121627824140479026521357684842728320774611413715640380375999904293018690484218508249024662029871342060207464352013138191699714271082395931109939214376605057264963230157941705281212160490458367067195375049581684767704965387873747726350571621393500488882905885573204013092684218763133236500167983321585712107250984283302619398420311522528275598534816809517122044683962987715200572772921077203909048421583309718505720995491022325584342706701291989907311577124824674008585061397261787282233724403691307209268336871909702917269851834437680486085547102697991961395772356321308971216460246845488473835965430427683143186980552038860680165427286829893126746536285537781797131105780732199938391931145325043622444984941083102978781229692871358657480787573596819315630809956345143183051127332414036187699727106542563179261296518019417416121189434432510362008960039361364766825411685743702703808935274081079926233815587818390717045432520586320358559958673621328052716433105770376062532180705434235770592742720506130880451106666013967244087805625096584560969746794912104217333481773837775051439279643792239750090683029307500740789858171413442514949924959677831677224721073056841186076018472883459850904245840259130424249664967276151264612323304946012409197166931677931668120535358779328844757538377346096833233270060800153569102323375397223276700362994622572892365756044041335051755405947753893644280599299219706599454050705590004804669152792562318257155665098685231005608491848692476213102351776783134231727018527336855338445347450988454070368594646737517018797037331306707771752695889111641583976659790468891699051340587274131614481681564631363627760651662036606806130732491243224788212030838250071152789281752753343258960591113706087521506246943982778627903060186242941288725064191150789067815999069746682031922671886599027775538217482562533840088968590260023457852976854068541839941827725200398295871523521404680595818762648011330890552697084579936721993196656301994889800003320440304106466772863064760096533267361216614078918126793147310158002380736299260649326365157811024834037615521502589477409890848124135008572723327964404781626404624484654283758959907907213478690866080867695836320997150512903482914225409267925755668126207871181933107789286901306144503077014055144841914205519717422543083827057823050827625065356290632293220018696021512646409812535282770448353101566171607922106203116013931814884263792293794267291682409980046696465939072695816811486802353320421680692009813601250392512154295945367438296759130932687049747519867518363976689794973360467604284707657029796180612651822140611507509840487067019861712227780284901884195425660520862136627431998617496135745228362354564490655646715462842710865580442576855285369416119081645624993074069843047486119314751658486996829029028730312272052153454870000210434369739848624202274315123482297569144205236420730478164232862552139156726931886586692418300596761598869184837022018566061929450577885602438411459415114956033995492154955381173127411940818677569744123569095380697560754832643188773491491211592751641361572585386704078969059473717139058202921718143412259774973804675954916585133780363322226141545697213240851689622014816370791971503951589555317538668799658315117903188427438410252349509287902666153055573354919052072654512806730935661161161592844327448319702598658180937779463749681544160070858058684666252957132842930642922519452561181106240011972692361039015155522078639484493063082524308668336051560413861313239374090210465950499928921200128993318608616827997965849158795309732422409951457213357901894156318752153235529607884798478921281682891852279636029570893417098414569058826533907033642608317132818957928086184354138806614850971648049527142850789075138022552583413233518227960820066370859938876352744082663835441621081450577822319707896558326859610444896151548674376676970033736163174790644035632923014939608026671544505516000807359149164221181230225054991891837735870184102792924488379932693193839841433278791183792688293820439461476683086167460073354035413687872452678069815253357995628744081424899335795595873500793786373513120663729478344990682770395655339407645037196071516741413789698830458239971879222966530663073601764976527514798881418218465483130964870727189880924511421913603626892501904276136757716259712955803613210148725369021654656510045666762752144214433792905200008026787603207791594268605691658753351452463356487577581163700441172748237541271416794959729125720958570904652094580949409478976601788452750355635165940720183759955593497760593283943457938718715660138629789806429440847829004757527283538705181950726997840193855080909011011768027710491447194856198566278269151236594483283902559649778186830483648924025135642668876289842156186520483155988270375202104041010430415078362608234987403098494203758809629984599180890242923249561058341018285352630422402915742079324382092408205638476329527429560236952879016659724713006327513370695155667858041235476061206728319510859192328632402889410103414154988713065751766719638275781742674781043605530764305113711508711551370737561375754485311280648089749990952389511454311261315616411242764792440227274071562997004278534158755639774342646089333608887656513294057550623814850901315299733632188027815985798690790180649993254173568335853063052491665267470187401669565512016355324104168945209706277689075949858969569963693248157965183484944075410117148075778345779861836458316887672810358337811012866353359966809601967505770091455469072808530104106904998411142254880104289644963591793718384464146303551693875990534197298822901422686180269148122881547333123529359859334016698538366690193400061818623854550758782658452718439577296828524959573931026855172194839792297154140579089150981139783098770761125262340919980579661582816147459467847013857340779106465902493335929034895164994116885092037146528738769353822511972483187010841908513881149969330681458228644761734302412982430062077094286216413383762032712579846310302151353149488969201170871601595284303015996848903094056500903625307802952952016728059992685885017202974930332208360893618784733583460326975592249741013028048858057094681560048621019760699077930331810903154096503711955497659988493014567699828248081530234170586892650425556828256050390545862577059213267041662728387654708500011089643831653159205124999639238675953409663911234020148880410332161515491640342359085429268364271746721590086481117790502526271019316889947656200158683729285310911609179432718353304716384785359059052249324903141590271346869914978715713770053862031038737551456449747270794352455993924412018347641012975379178949320293013830510076367556751674925272715831346281109946805160700815939149863578316404027629776860387527552230591767770882763278972411712260825675409987372919783452893955320655889585761435163125144547219664238331592800735934944343459350447958755157737164383202939358752365678664241862594382253975799064314215818490044293726131284309526125280652557053819929961794633879538985648406507316332661856612242706604748832002116463566880671281874694603510204878748898243747501086817216715977546917543698723956899825092733873701059596512898237056352761857330342482930516862473012758102867234193554591982419716018546228160234764792363836395541324534870052036641011432296322843684574401788521039345290269078140891639647407400520938527004658212433082298131108182370098186860660176873366419011657060915908932825646201334970407124247519964689163386301314313184228474896910613555054297219173738415516488000672487103397313297903371338257928152404691786543501410988629693792656172468920762093674365322479874344508329579691302536957096279668706831961954690635138524172726627849021134750999502053845638491017930056943122732143148058948875915768506315634199647828909181826815040834562836964074957134551986674879402323275012605212573962277902393706726869588340907542907217351592493392832492652693571624017017646584998611541288309550675084474153716017565821831443836835972267984387601615976817765100426928999475471564997180708455500068255685868389986073382209478412897417184467691206506466640795061981548848266750553981517428025611096454688783774972506106651418702101869060104855406492120386795308443431093500570512552532491372350402009925584344070732581165397755792570934067946932768955699685674615654920292435899930096430612816756090605054243852068992032444326166937721886401512426070087330127619031533266705015167322116885725169337059457752809777116332693551221641449745022378511666092124901543999076689192186285028977956159499203470551673114330549291453554883378650444298694364320407536619575330079066586979743594994167176008247951768862772390407633285549531826572516648689582683640224231012673518900190715543096375542426631639671244076500340930194418440084692413026046574662925639691731099074090900815108672738031161008108241240296367828588090972412349693869138313661645112943460322585666996656848200811607900956525467421051104220463000199461739866960361763149507558469165973327808048106465768017235081312604734576527932631502238436055291105724186386633044406218034760231222127318763019891871324234089965145222013087628727742313041231076363731942451636234631098163128168057316869854116496907183016595213145892273650045856140294681753269034696166435164233039456024223996703253639548893277847009253423444978477285919455133620640140626562956552977308607484831008808076006574658106266404392158136296901185889377665759131744658767921877012901798721647949823429933476068092576148270495089929605739910549558867127607763264903007976800802084829443769815098758879784770086864817341469282727610047894101425677716961297201450406281343120652639805135445242805143248074736610948534808084599782231485284078191442662144964731683507883867527850067239087703831674500734286065697065169296132281106331418099497502356200105714467916032992264510209160334580457656643784554207521780471349110955321810527158351485338984807632541496992969788093822057862791021968049040598566291809796341177417320122849268513190592900476015705497455148176022808383953755915002233585463148133676952550677020371612441085082554639054520861589356122224229248532342996037110090589172308791903488217334718366576254633325152054414877575089913975467092383729632623320373947236883775267039061606300808865048832710941313478282571825788715018996414100292446585699793111109068756431298059732058317966688345669186401860037924586000927897502204102690497138358487433718853392272859963132874461570682185025401938824220231782941099793319783720986861371159384566949686144683415758075902734216839272259940811153494379437912025475992334268322239610482071710653378913615496963895538116836237718876579152535733619910071017353856175020383679748711260032704148593418859830762012992762005703073197926194563283645693759445581740214285121493855238982136587797733041439603729296438573537933583686403453487829226047033208735400108918502402980733340691589128731848596977387378322931455244219062847368271907854644110424807927716017837442111095789797612134787388119350565537467198426255291777011172409475391657894997959026607526777150633033699170977207093723947037087747455487291563965999919317707483213968301375629667632507119103189117808340643979238730002907236599977585361497362994828637872689308129641305184154439075359558674473465780449968457906160504762815124037283242205518534943059028378113743437590840834491630128380635672468134322377499530842722354089620155041215883973179378123499658895252745474648742840460716507800777355007344385160279521893458768270399278253806500488782444964764551084265661540204888526002802812733147289012842163152363887529526055630904104913264578758936322217096528178555714650030114724844240618592973553325580310553614988135513318877935499613998393546412114639987060367260949222037301580727620273689069410730522073869983841988483141349479078957981067677685803232913111721786511511709031283667351867972223057849093817731068049316761310544810926107798058967964800591583768102468278903966485952208100370299033422097723964792314302771416133863667348472376774094011046159986917753874825924742210924284498533791807305808010202634991992092247325570121715460022895735241838689216112733463849522135372198274379067979387604906857789568293624342738379219190555443228809307642787783220279851735231336273479214830299748064615531645770645547450964927560423554159213377479486603895853950875497427727306546288438399720966437855301926123954848414233501329093443836563222308893920798278538965897103079172963521066612618315989720724477512014472043535168454430132064703150430739565573303649001156406608591676824837955699906302175412524383370991015835936137994998447908156932386116746908914168372811051010080103354214270660875780907625697588313364373902661776610766163580342419544195488159294150179463152110756402714426060996918964929198656035499550365413949625241282991425339840831104214248920624670486674888693693452271900930634686107623783084400232115466188057525778517730620678599570715562474221988257798898677696600579624104362764216798437544554029317022570466731172489050915984245294162162437818684672038538080123384586843766181998108466572287335018680125020357247223407201237742239053045938109604428483206867231804174147734985212686763479318060194312556412821644440883117990467655136577854395008316925366470555432731917709486256766991473543260020142602908560698756987298402465446494170488527776656650099951285613323406295119016833119619745477985053694087902012428655126716166261850987881883537586925973600319067730736521343297177747800787785643138061779100381239187022840056960384547221558978887978203403995435154801408131727968523350521180213054493234856061742670863942981331174845374928667763463851282462943472937727278749553637923630492915047293446993780857509667133319323398979936377787261361446961594131327829989773818419974594240670472610705351569011427917504988273664303585665296734914430823474445175884652604178569075739466028136692292303820699286128476517955738150992075410343803519581679421857089145851084066760386700896375054442457983415006241123841412925624227887557966496815216202292956828502279065291765420833028510417833612779428662819946751812838373577592049439047512963102213339366648530145239725494593744774423112415795109450204074030120394807686893245209070150028020156520199074549015267681788123994546814813798770933798203747290412193765677762367941078792974494150254547634281469913121677322654028105698900334669892340763139180562791114151696290301096856624555921028792007155333836323185134487713227437998679363383781351229825055659226742420854122522520833568907922748764562268502137650771478614617195305365076231510048561125024209630223452571435203235682714260930038868240281853269822494249299699654248586626421720424720044611092528222429459512127496736330158966376310591025939851779655860613544479375500557886301563710381414564254821480980325384527383371634763663839092553406640638072872296203509457056400710284451973013464494650980559154546022376867731441250597006666281361912908170199115451129731692623380342967093043920977688782084447801830191730935531520781532698525750589401437672106836151825160226753718414796766633199618392068590155873348278852749029975434967751648253180554323342349922059230086260924948066830772065989418461081756337859090734073989500079352193195042021706064962738802102301669420484011135499695628726742302066954902329813732902782275470338697606638690629124988235105056488303076259910162479469615815464026568085568880252069327763047920659551629923871944530969315860092114876298040062245264333575022686698587527938870404889898800524637532170344313427926120820625706986138765056877060600923532294240205259344515645231648846389893824164299574388561923249267592724751061225099948526591631679047747908511984698562531197621859104740517070555562690532041461690999254168357903899699538130180796213150777628261224075272103190912971910049210386137500610741880477342596243084208204704082168181209553152863909166863743184853185257894110072843816829782012058634681234162563103807720813827562899120438835205160092873882038717289901806574753589596329929277223525802290977446481586602732410268715140933771137543036322030682035588389913936685557620637544052504512844813148225952744210690748969434123654700200910891760191205037176681593582858668891349730767572690015486563193840378335368415588756474467178999703660449928429556987777345752619690835249936375947277502487294198907444439255042405380714096621855591920512197773154907873635275742955717582769746262180202655221963170116657416182249427598758846340255312617809333586103450554870920539764883209795853764952734257892061707758106598570655183407586326207619191926118852064911203248317843192824703366038053287713754004737089375600866723329685473845034078953650076737141494118076085728729957443967492940743185208555768433953369554627251261743240993854322197961929276251486450329510117328890565615471944741743992550840898090148300161298217562795986062117205006276890740110110815186162855137433782794163087138336054102716495916081012967894713948512622970551030058950466300595241154047190735885211303009471079741201154385553600803088180029581562167424791260867650995117130550737987645820918160544067082702440030070143612865587272099591017123146467773392677587169191109755454882951997012494164503816275976369479427176014378928454480603636672234378620571386195232387743813677954165723736475772113467441463657672944912435262218851483756928517124374034652020299362707054318957867126393171037324107634533821244481619764507131583385960773178872860030376381942040992257874665590871374943814917781578251733502632979357599850479215727390298024537066657143573546957789749190749573077921537591961275732682655296126060115766813730115237709058704715631297839167309539860759953155951164823578109030898189153071430192001674213184817550214390504053654012429970938148522756952849744855951868828247693256428315056787736089712197261953487829867697592387963371394426179982992335554663732991956707318130733619716618559909016979518743734374137700344150051101565426732079147391565538730214362102886188493352469331943691794120409450273642633737172557295929890182789428328556789144866059330011505582195930356244306180685655834908977479823686053056056688729387440434321456253743556729848756909543093907985526791359854524352526729694792713997159660555544940477138934273363827042166560370378057469960001629857559836974556537273380831734498340143272386785789642927879568791928686282916518820408863163144533131571795702034570486812965911418084790527268748279504902971419488183014981637054916497531033734821239845869672528086129023651749408182354105470209778264222287434293386141464395755186991407601610985216870303092256478051682581845054892185484450885137109371658308033455472630302492630762389258354278961619606701941816290409403759793439855853695279273887733655371640166607878244932996185484920673007112845136065132472092564341357730979909450144311438475758138357477261852278501629769547206358398482827523501481662573833969870841376237404707311644930906649232232910110711107682412818834535251526215614779368544547299784557058114718194890118521560345151063315334739701220605686660065547621363738777337792439216935738544474666166831462044282682544171837886126080464306872606609709056225468014475219989977005827303442461687587821571940856810022728659181403272127997651441511014056941440473795444072592253298654684260061268318338904811084374628624368027081090186226594550545422029168778003802856017766781448763817874366468522931175874704566516541682578852813708587153070728082482801211528226130455607739477155122431584871445671370082760543309409684428610297298085076392505698620513071837236987964239885624680244517029227784241846025981028326055927364388066087625396389894971982775464946454649598949572045840258681998270123171875459456725090253244406347168965795435648988450906570517656188644124425357729299866946566754658834434950283901377832478233407477057864940690171605663044538616037573710092713394173116480083254618708554435099662523389803920965638121565191514358220028243224571476372492619876434417531258254864882776189901396670848224406768659207782463805129521936648791799601780467607782363357372655100092278296913526483489357863802921639279207959816186868505649513677508453628401829497664767609650098593280058488867235282096422707772223888195137190768956449959028357191332964604060193589698448261489025852439543381004445530832843569434327366229145057282670317559461710585134598466172651728556474130543290129718839720240006280159593808710573337430517664684528250372337519463226216150283810374398329166891939625133036096618099174773471267989706917153781557666421659393459061896790171584214862087397996118172918716293824465296457409176680060742169948153353334987665368938842739725956770997345379913887883174716242972746057396461522944329375576031696199716283404859833896574457708001699976345602688426171878583124412084351102019054507277617920015954901920750105284173639370281842806236598612620140830881189955759206751588710610177820280939993929343535977504658137836655679171980689841888377160289778276609597036476512858889771490195165942776503518870414377300715177879950435744310779350017899341803695809384390279211963218391401753075436634179020302830359499240851891621621929203863084091061080251838763940166800812505533691569348882266620958480088664246420346713696956237071967993363580143365536744665006695598557429450999136252981430673674514622860171657656314206147730757273137111901047432701485553302627255388087004918398935671189021133619411378603649410648747650504636540307394635864205873131840218918116305059765466050617852045967538649246986208637220925555517227412533082668843134445126767182030998707728638025181023330883250249887391448957081831679216961599237741305157650558220955411292096060443681672584484311300581806058613515252743001100481454549557734892350809962410786984366627287274388736126139352810141945770828209846659963340543919606282084809911948863325432512196929455091786497607820971432138277176978042249373099917739878249591715265314034536481148070191629973944886524917832601251049245666212851112594773506406325158554289805748338881719368474620369271018702168754572903268708695724079450287761058307786418604595675195141975265950183551788148932161567406640864719150903660189989439233181389269912614273036013158557391499842647397317437380173506418879036145478104967787661130239419182117621920885559233300107961274091594163425233463524236740996873942354165722715590199801461363594729400164678605229648258452764047481143861439165904246053817023594949832097466842803280739263766725030035746993812488553394782302991869196248125826618005036927181625464472496783970931482286915072369051040081663022212649064964336436385299090951655618763226736995018136981887624407278352328983650433162820916154744391531122465803178366546411482148905155819841152704153860881482818867865038121982238241986505894152316055830991886841302446035822145054435394977861800032662830549837151243849299594301828642309113310007298466078811496197386380173650147639752371708476132181039566802876626215577001842204626639460616887058658294878767628908146669755725414263868879275451542648101225398799120380376119494986551587785682834821826631044578751977984600306653753742557072377968774719528270253640563549050622027517718710134086425593451726516349014146119586340439584563894299222602668692242871881015388241338165217357257895411008127040484383512809143281447616011399446803967014348254069771425847543617933185894407554358112454029440467677678622045438011007297292191276602422476199736969621410537871494741972680581542449504246220300195103067779333703674642743897090036385605057467518963477649339817519787457523946086313733592427854632730026584457890134805826841535243121215177539222032279557577396424423617326658876236141569888471642610534677488273538175905721238848322708897308521402337453861831322578751489278446165151244946538322335637781424337580169868394560604066280071569194777163316623950934961506945647684096900606578202871241245101305338526892228356080675017079670260860515093652911250290834645614756097893837684013618090574794782482844573753548415829117970327790514682113556187428986675679160988987981603186844066072044509740226058527003904576711410394304164643497956479348683531492304323819966062556932042649406720835730644939098450903975698277625990660767640339169945206652294767056005602229474449929511318002825259954490347440922295540835702760034764468610757497097215776717428350385697755171668783997872373004857979992208429849224878031146746622347284194844608087838765209039966429119214747867741614271985321771476372494861087409308963077282763262139980411126840383333438752885401101912996448610117588425606839051381145557026720056353050976827009331287708722582922924744915238973771267309843000417982068186164318957499341100621610714833064338881814247332916175698875764512475732430340595108604358687973137990334433987658528098734309745354622526941791280908796687986358001186922417155477098628629266980358718073182016634838741285921550785910467912149919160759019826650814392234793863528437067761921889475556683498960613394409720625098121473466066303779573456743010611514771558006806730818585368806812647098664767875213208535468703437654945733281850152225080345528709405511546287839528647621003577840265780333943612162506913444901768467485484622535411533707227670249199217553380739013799549084055051688539738734415190176521709827482765573921048169320097591567963688688629279623204323545961394449046647797850552986957760369885951942150174025020000396593657002178664272692031158281529774871663228188687430687070487453007734665647654223005972600581498932829955576404710657461955398931648895210534467370049326771143267076349703967529498810070921228553348345944698513678588022880470236858507139463516458331969766313241285342502276406573964054309102029331338658832124836411567646325023511952007418731645329112574318939824018837851154909236668797059771699184431660707019781876836496376452485591702190386831996592667600690325733338903482117667803156572350636706880856628240581784497360885347018395095348235307605249737839058302729324289131356099296534201912050011328102255775946470267242865144953543846370132077103201628039562428491477811981626907109207420565508353363329113582907509997224492061319457573583801915445303676005620928025493377677011395567563195707587889733702992461108199438837914552348829109906467431930198375570512983619966237273872191613129032730229703718829779269207200787724383724829261107810009531970292956201635201002857370174954519896678399889851512863517946058276218256169603365032872864554231207552285639963251502040235021493020633606591783372767311207887661318285611441229537865081082268542341909861595250519962201966154252743691360274039462032806448132636840522486097897669375528026026796941941195010714181055775308428403437849889153152602358588456265841031447759108718706125103500484518560492702816299061371384182438745220576091577518659065107884162769323963132817034044153224145251829206871059492094331051326673963683845939017416166184862986626986671989687580587212635129852298136126733141102578893627165558908574634340269473672902324877534183073353213158133856544562042337319633847638369374324330795622651310724106831590933796301246094840113860551478680723957314976579350670408793900597697936911343714752278445466132108640611002612020810715832314295888752964515075253174077191083667569457926899226777723734756733508434453508307019378742954427806409994610206651605576089348411044740903439369538810375455728304680112910413291236068656498916702350446585835798447042352501646130621539954172780845743477114857053543966613892445824656274757094479549993817074254598965976053599534641241738538061678254470218000135633440646267657865487195616680317164603152495484869442994251296344329152876058447951355581996849601322523889461958026123931488374289785175076558968694192168592677584887495988356300776897090604963382996753287074905094968703332400707886339803381821061635442250435794754404875062487463611646893657961994578771007705232540030219552405645277670619863573098149762664337056955209076569208327738585400071379993699668845970027400420296171423107182991773096406851106879067706600149007323544126255170138755655889714024971921021001174351877955341720562401436162103261130672031526714954314832068895536684756409292993053711870254759412103443016829539257711263533200292398781093226924833834439403136892793124844937600382522193001361447898210509403157808244419551692519366137712415169933304026748358405793511240066809422798579121124233981037888833214397093163802578163135582071162650741326223193399637035185955995399959486545994956997053907525726232707185511105656861965101772259460595024491853494525952493496693790529589098331948090425758421787587203302509716175471454487626828880193935551142287207763850503948195204269458552652558346308490001901720456754853194004492437860168132143908959175960525802021290410721741256384691290775792734016973905142263440553158654843917808044181830871986209294398592948574534827775826702341714359731275693978914649381168023792849610867701132039211017181563647105223600843141805155245926656876067543657813953927005217689178197760457558997570327694706900710964452115586595291480667043584242356991980884094905735203696361803579886086587495741483853278062560857306694987921580740524267313066611946792155903693040627232391402097606394991879975305393624010094121409052323809300581561955745820087328173504711852037117116957025581113564901660078148873596854321694969943246614658386707849704485439334600056303783073523183659856886186422425853419596809232472092779246685100049268278202205821645989342837148720393305795958605928331629637674894831337814658048268713948968276305980200318810615369625517375707164520501309179751576229872794658746921847409144436100095127314704807980818004170165671871191511887280676009744144908976085801051586804514621821198121678819802355824470862100819058765934827874004473786842258447378621459387626423217394131390800973113361221748124988556650628971103482938814249822172479532715115583438865885349647976983021101466354696089012490443996221520782955542952765019631747667762608253628077887435970049941699887391360037728155156332645655712852796713125594603537965747745191935268567088449942957025636999209368771973229757016109023520043927285255889879342556240626881826121154855523366653515399566779962866251525897199973429607482212093126304236667433310247719631845859427505097585249313064015201459618590058918289538227532393913914420982678761234563288224512892953794313850517069952877313812027031298797813333996883995535318476269769270847003993298250859141664123627558513946545299129272433993442945575390693421969081328865270997299221067625825561185196486067311120852157336700679021785331841561792077469964008193176184020228311356143751609663780024218161796539176610452918569232551330864494059985078875212705743705617425265264881383669061295991093505575418290019119151125747130874430200579006692058321633909143356436662948429807127408437605709811275044022044100662293312199607968237711295541596002438717777440272156088941065958350100562876446983631471641666568167693298626255273751332715943463543500974206888798189162888948182672028033582685785546083049335835714092879910135795667588627288092840812627446879578393346795229775517066841860681446915354323090944137685896838327364233663655916687672372795999701986884569248481834659208325612344122876160905347480754482531421943445057867253955466401132790413531661444754795058166084877783915757260681149263883782626137814061348681191718490882844582101034677380728360716697889987961611514735537446833104199101942404769315952773474712622111414416671815669425810212913270846108839618548913629832453283092144606645589766424631365144758926240541564563858898191496166733945063184636600665738790448281765874814865147936203275913172145907435365178431744368126193916943992716193012670365774723977782546986938396538644457866872047162811632051820178146626968288377577153162083148337929068939781457126096709979316214472352912918185739927168063125122790370781147061077903412874912535859950527449073729752681656077956769308640992126914463107061650314397822606866576665911798111160701627682689940009607107684508013296878102769709032045960697610200791166350279455994820078951749551056874934395968902746819247767555510500950756844355698603386947211804715482260419798112226033065435895076401008192342089971024876923754814897203034051422225346509090062280406018821771131995877050351494927769800378001702583489714899726753679565537823000265088252989951394578739986379340247761081061071673116381377755495753341068818504270711567937497354850714552497743463012470248100879740097621798658832590560838121181693193533328236371461380776661569537722301361046543312958187928737335092036353318955490035608693753263294309178725068348567699735465501096758452082078353377548307376083977798521753558322833950570545983466780029878400730950233640492660806118451724208773271173942655093930062364258382367818858711829346381685505979193335889213259756345609325888030828528001732513651173475298894983426565991009501396998855158466281126436605303538582685729374590290801199799358370390322914529138645217677776104100841578606752627107295056381418623596801379716794623636005436702818210665383286478005054581165757436578770185577914350731869354796469540245900900252660214726953742439505718730976725956996908565235580225233214287309609112605155999647139674326296000235419828847528484373469231761469845166347319947851800392987137428768122182030636077074187330625561046770499102022972863858649562610459686983015708824652776373553505230152770103971348669485970077242890664754535237033053970309717449166229943613591999999933261351312058591915312142458342405069458455755428153313334341934617121178589364933861037967232261217657830051238335406967322028309452822522649221057533251624836607830114283866789423717569118705909650744465016692718446968171675640569404975048914999754330256532963585923513747085064593248183158435653915084210553584464982552492258206666212232633578962498497050314379424384682535148865720202446586073699644348314857563348412636060142423698701053461738216102775287732942954400694633307006457050496231408851951098260375792081747986135104224066016439480595198505468434034219332302414371435606938093599784096828103048176740325371266364741683071481454928142092617395826073708476302164276169413140960714421346961036381729139446108778076830917101799741769695181226614073873144352091965649292763925389661096036123141076722743098954034232305290101280839928185828525848822679541258844774036087777073265552048920508012043498453013261179802656176727348842436926823537227328971861822334026409692606188759071653375519382989290013403762679059511692244551642422320692019091645944407608002733081013233755415583562679320775976397520362997931545248539863660342858056889709608638921783235076681110799014458728806778236991453114830960451556039517198879590133617925573438811189804323867652504932764861238703558317703564424389096170459084020394127651604144081781355316017483385785105562832696014883383428014881928666898303434299509619682464174541115408909238224956070790014559141016901310909795528451800423336231164756952810904272574063940442252810142611723248563217599729463815119604868421262120635633273725605087334181889966516323786238330857836358186583581534350609374372135711053040467302367613696840984244154349888747434755356022628628767393199657489704358369763608132488629436436035392838214573554340256589078694611592392708409296386927846196698040991446725259677307302127719857934594367869694085190551549221074196185367190112860289507154760690275854495916569491495866832608603363004248862659455159326197164446904928027148926262700238786096062204245049314775633677037621922528977853002759770882846013274967361215690488406927275945021441947765211918612326052429162423895408961101663012569693255670626048549579412438807245057831773303129007211272413599423007241886072670746214289650868868557218252734317050407586383616633781729512786865765459320021843432357647044889956672963807826086803847975497933620002505577992841377161876794367028549020677995688002429447760867613277501031665137400026348577509262203721485502875380921487921695037662178479772689455093861001174471356496830298355794864556840363471236924188681620930314988181719533770932014251856425123267357958036466133655533046600881520247825293001450811786834470670137419779692512925393952099495459652025351378962790775068508783273191195923685071346275582967716835922493014378350609272491777808282483487071393387057279703098350911888393510021072896905263167164823863332771931783421254280577532743375713903522947598865688032517569204806294542201215505299936900893417972017320815644540711331417609979207923071650863596210436600097763487281914151267664599337058819129330841274610789166792330733523506037185058519530207557325777781663138092718720194532316734550063272746602299244093485386457866928920147772020293863549748553740714956351960717981887261477394859726302108282729027132864870425646558165617895285086518201726423581226662690892246385636992121090040972304610164231383294018200758021759175304171474315956321072726010319983182236875159236357365313952573239268842988354289047378814561035173020816914381468380632614161869041049285911407988988687849479984041313474154575831827151300954104772982856296345919927899832707129740978179372060283535107585467103469837871214144671879208205279599325265672590591881046545993011925835008475445591175272400287523531317620134645213862393631194527089161218621604863065486296062138578207579046101404867461705827601025702298945773124243256908991853224786385780980342678357497889381344626083251907208466302690888166792436000410644585691723730075305862638775405184029955811607030934212290183512369864622688676237450381900606558077246219604666656608468604600365021158188450643011228856678406115950009787931239796165200072586653143586558311973243198056367376556203445304175379553287509605259596523482325704118397035666808267400315444167506310700834625608765453619346000567061290431780598731565190972395905256749473160221335558585315609252100742092952192643878757545924717821557224938437465776204141307505556557653071669821038852344055729667431542844797299965337086383795997206242599413048165626212306157153820673922795313566876234058317398898292582684973852334320995692499092564041077185088998840701981008950813222060617589554919165011036347667643501391087261642979165555640013086654841169990133340796788079076856292359767709604578707947892578591197255788165297204860745649123965284490709948614024477528656343121708776733998749069767881955299650312857722723106676941178759457488998628794814810768316063729838837573775922149729713038415077816218883513740419936184849986099199098225515193441539678349351074916948019635940553731356966862035841215915159197197330825985814447130261921286441206669512987471082299859448742343309721719516505714586681925337113004387891393774900836200728576358337498643085244906685900797868320641545690945487389374110790648915087801504836028213534066445135994442151859473379938150935686072221696543157089256127188696290282581955727153103884585778198471127965295581549866403069269906839011412790899711479546705282449767735475199975573503531149664894108147550496831141653368093147491398916830507021511886387700106485456022055085716955607788685578629222896756623174025603889539059042828475362121506629841702578380256801847166335262667475081165844450434799027288971929934488797476016354667903862004538634805551452015765372438449706054990726636695200768736379038931654123503410375375947700090622581722313390007313325517635755318700381845937640309691071966625899996389879225461165979757842721100253698775096034364393455965560226851727662176613646360629305492022046182834288374543545138316155914119482173876649199676594511892224237997115932253956843435211044412186648793266415298833840035032998175485208817809615000661675202248092741919778187567604793322833603955693962403306802360322434272681647997196799056976407425750867427736925182679330095073391996659463628063906528182674635097898584686431200534576239116228870975725020003327472770126187860775873601013852385049982651862780229845394576146853725378109456638326346199084608164725228960864245676313589943420045210752467831689530660233070504186129580647702740113606647602372562006946236159741203543155555311999421938467854604594947552511246305683384722020727802599130711920961688494724392041978694700154005853777811912333226698610308331723649523930243182014732984848477362392362855400993749263845518314498462824251810484459461494270623258409129139760171022055086466662152893753018618748658544367098691285598918538945178336250775783599484046355356447076607645120484898611726730272398179292738659587768235982506529986429361362563534648776132414579420289721623365200015805814354070461711363805895518138923260882841604579328889439589816307301761171143985951812144182339490642452067003961577360745313415268682617137463689971617240384846288737986074967941837909501764305599014292779702106870761577990913343725149165517410851753653232212366279880370539678203981605030276355665553964342306910958560505985824650022583088880989604337229987383643007289919540019946026906534772033642871831888693683160346676977709098383864592686479414448849137747842899223059963286974029499614462667721733811593352188187072728125521462430413884179208749253387513795588253258673605168459934614939062184569444399500642838221333357950673873931008029110915735581750614336102445402029272970638019487802565712239190970700556141260914337116235528525027228045510868473638493543551085274243463699183849088229948898812692930657814801865586308961236273301904565320337724918830871694371817917187859942968096956050804320067290823059677973143107256287507285457521884318759460054061656348930081448139338480750096637849855638767842827890438489595629877636696602173250938946716429849056777401830087343391624063877849927673107241666218292278326340799864263341598348342296795770422951016373251802100181898803235025299971537264958382315057999199426386515340118661295006250604192818623988570765213419958938367427199049029962858817523647332383958230314613401515099792335763623114855432948678669922361525721482699197155503099635757058218615693476885571797619736555319529359725374268508638439682229358616385314389362873171610531104348074227893646207420558352966326270855443206695878722432100182176124775685673317107104427566738911134488876052458390289972106829330154048465793158257129853743260300499026368951932854199356991256238420720361672544186451911480647147092441134111925334821295769040426220959438776053823899333549706808766166516784984806733377671333542017286998792235582347725969539351318227519190897285462583838904266308760059076438120556133280520453017334457667634152363612720557726488874292224460375155332523964327460182925689341979195383471289770830119362548767734821642474866176018257154918377643028351051160517028635307860344157290979299047910397310415502935015697957000681708940491398111437276361450308727308063661850728659303385570999462865263236576849351689050340758637742454627224913143846981891086521300945878517358181133615093373126987093892298139850906591712069992535840995894777564881148386035157320494783826334242606817201824381752140322667115979908926794037094832943033696494704786213819900345085297578666009799776856053671268947200641191321980929687233520512516765791679854668551420918105997373414137840668798451650737665900523647247293126126747936490920115626996897107134688349705756086918615839435323577271674332538358033704131326831547711747836805983257209662178649717497912238603415504292311517451527142499240522518666972497535863190873987140486288611528993742179084547022162622646313482307706590310249718063985276306965611351342726205908166483968383303568383075738622618991232511152200998950251117208713998417403485832167239532682255060887362026086809158242843228689483662254157072861147152900135950711455304591440191117181362288208905684303925393943064600385589054590463332085474645309783099018604460655441709612101692835101608708756967227869297360070159067553652398254301398019848665051556147961919955049521322736204033620692220149941379082450627090895770023092000335713331854291251061521952311541723125156593410198159017113983962477311143934837559328391491521588828092115202603926832673192197326567552786584799421911867068534295944435874324676886437009193207504015661529750520973457550636914921090288969746024129272516880522170995683117317487381608042132474613821489994045246178354388054536546679420961881557210894091596220888767703137392750741627360701156258142448495699655477483971387285943532246538063987851230156836718909147557929633396362286430411726052608520928871516318257847958971129989150193459172056234921229864966274663480775377846373561334460188765857055058837712483271710079437908050049517442861493112252335644348813052640903335995252543463148865563126963383034810409186745338494496476152553005877034192937958629876018811952253094553704596358033469467778419380751926938195549992927060593369894450382529288570528985861697886317746398588821530313317047093405042187705958700562883415732169518080729517772845473679565863402060070353196727602134638979757974180740629982108901961027264543237061758302391652857113465710570968511274204971023596978308535460398211068672300491526934477087577613588652614522867108470157691198604134355736486614182233048351867146577030025332955422786526824302205933718149620944518060509058322779019486137602943863216393465243207205806642247722670074978443319427839827420870422278361358564298354852947435204223322250810754889663468117885715589255233169332630002474593226895160104796136272502542109680467095940507170247293230054471327499606749094414190785392082711317015608364718038060989441999505035225173364599697260888695111471591715424444909546651556566919037300120080637333711710233636279814551623682591465647316948994780066479732292290794415441781474961884271245941850233032785661258755410746645003889419204168518925144611787979281613282137772961285012376967307018656118392103453267608977749733429413626072150839246557846845443024803810966376376695600731593379695245445781650778493659827354613792725850363387927192568329610184090144571515983071123356347175511339745954539757727730501119425232497656971717296106079062785856879815138651027792494589059940104716697083478455904096501946390693086624154155673513516990742246923894227464745971616892550989378208110385460263589852703857148701435853357507831401215434524974951529753563833325537163501571574967698695885990312861505247248586798486228244764887086800693625789264744030433971122383240456815914247839899808137721794423482625418250119708349731692825038999281500648205043883761570294025878052893580948546109811409459638079828990747592766953236942412652117084238476915535604843621687652438703005982786722780584356354811591159325395927179262787697429376279209213352317945327966102759076422479670065767226366132726755733542113951701696133325784257686309114358411807313029695284006994305901379820210138798092330178318534059349723666994564070287984062230029429068445992309010623735118455779463387741391500235987251233183826302758897094772637899657749458102805073282377822123001062130805642064921554889368124407160745187170458751338311971255275418491093038382713437037307226568051750712944948662970423793564842740091816430091007898695653493276726161618254618611505356018347815816294531250046412769917869608458239245229406252591211799707304549075936608632480744670120906610091165960931754331122169215534369048127100748139036269674610789634451944888102383553450423051180549833765536125900334150001522599492077278180145159929688195165284170099837399375999809976215370334181767304684716775437233473595443231514108139587108847942720978350124076166698507590123929541031401786836695346277261336572907299430939479218524883420941961492435871520899931647094977371857714621395254062969553174370019072844109531994940644194854154735458138863256436262037047262665487897199186693902851150411358178659246444398226893231579148932669395376263334046288397899843665391352919938530021831470186150283467783271412199688336476914458610705866205096569791258104787084177626180636105525833290792255921857567123532972991696695324881801842949275785191251061375384894841172323037210942777906565454970382464635389610331038522333020410162217684515847317267654862517893385890555021803856835669406684815471103665112855085111607504162124585290649539277832736326221293797059463468083839381981517527916307353180287956366401669886845601411488190573653841291929787558064376240248978254001958145498379382127204248062874629875897760253761965993944097938861115166896595445632572179771244470189350235856733781421815482681732010668077077942145713889168597123848551856845681308578288107710010043635339144293032137852595600847511019625841358767883574075520185371191948866564240226485062480673051175657444554238408741221499055646604320528755854323046865273809631841431397568264207747191544086162543825433136603977017578596529394128648797921300044366594492768215971970841371043499016128463700815396896237072709363192239577194279909442444856566123940403768394435823634133912470674296850171346421328680038604769545308423092451150841362449182490458013167654110140870901666312318316111951642843808743385034146222412074333403683967539734385486357399898304216505634996750584387252833712697062457250878582457030502316241975516246026393596532461864755158743649918100410179739563740890514303416462665168454815918797488450246071309659939523562603857812171237583976953878977426066384085948310292765195618122156736312213830312900227366753460967804075631976931444725177120964111351337225194778703155280786009775641134310468819510102055265931597450349488212383083334898174764765894482764100159496940541341542010327290314671815831349637609833557882337045847867713451385708670883623392381796702120316167342969467742203235810705972543099714693025700207996677988304831869477964758749315114899213517329478572333530083984083552797479218203682117647013424180971728578427682148778088568754227022508729366537888087487803793370147048224775667615798887328053828402718216326352321131092096682587822695973697713318705440035245235992811915763300180714669097989105193373533037023097845766254887333072499638095893150775196070377287404295676629441931983734853212071804400259020415099261470590051638781452900351466651408389150513299203068559021002252794951553849438259726407017245149113792998424730402931781973067235540289946139442492956867750169349751959263450980386863450801117407615409197861454219710776452859374554085935636929035635446668443159373393861714288014566347460645385995989607819170431171082266778740761615345325107385646900357049275632775974877967331502804762494876222883640709040261188683794734330087538070046233801252138861896342081475895562410570223631140733649070396200526027676170013936586397829929022128578225531951011019101543878655517287415392192502845425577685866971957229022019063659237043552432605164113189839696279290987290377174226530186678915349172320722775542093195371227075997161978065910047939731175809505868984354916145048697629446736576962908427979875098321341439903591586667732732870011614510738018328189038689973796918124920439183407967854450932317191216342778416896792830870379959460868563950124101681152199277979988233483443679923367416698620468668441252775474654921078296585032490362524374912771995271849674290074496961942703398187760205708879288156275311800158623340294790110320016328264080076187029181879622284257124166780104512487354778920537614035461725645490619647902141681776167478727885461986812813798032076775696841750074706657638828996101673534141334075010876731490569876742860856580443006430157998747810367576300840286368636148092984021968722745608149350003541065416347322778607660085619120780008915400717183491488778969169387550379171886886045621767194989610852310844816506143683725603033225411348977870631298831127992385270682705936129303128313239179692901721408833634414043804835820160203210844830380870275094685943390424366726135814884889088598533800369579065793179270704996607341186070270293150494220334166302948004856438450603710272525426326488599440893877598379906293279803712317225338949007192040283449193640305249566159828469204842076148760780856865724037088747718822933156459417589270909583429983196946446345314748356669024793307596927678370735081289455489552017982462422008394562732052552133664371875053559885787370378777461506894033989717569625329807727946009313320417463922607134965091355985247200986881185340144420742871278363244378650955522765560965846854282805266193034459173935227987521416949497424727647607401868052123299202717362613996917076139315704028424278783047482032696839645004733068340403011396168953898086192442850224110940983338958909643560776704559371725589930038959820347513492117870098128984349457391291577952766300756622327346932969927679054447940407598210092744513316644110227340745725693746952200579971598496249425212897177926015347252748172170110951409058123534872154294926131884135768851221391126814480539267723267986446958595416191780721017889613528154543086971993384552889448573074592978456770187841870449145431107602118727700529138753432716617637725767237576157731440154080947487495294801885054279889067599424727683460782643811283899214688200605270625116481601869997924806259360091910552864125549625608805283000510685145465628178260336157874918571834510276371719215094455154352704069687210504522263291405282668292077679668214135438845152980453208725185644120915454802653311925952259199213514874358266843868533181375639234642255268078162768844740472514765789273129707963251283035077502357822985414970630424446183490088746192061471195177980919731047508843779371140001386624201046237494483960748806739165694644268959690157186773213001178795781672133997005784952506276947630997841035494351447598595287463500624670543168101198968971322144902580816702488993740919570387003899394326880917927871392179808688464680890188851694475826216827808928307063972116693687569118896811909675136133511372702213607361137060828766557518196372677718776720633891626774450128312196361861306925163613815882883881613627408441419227047741592415747453733381982047598789319478127298432948892200574290196433023277722091976634257358528126062279837158784841394692165920340462587518163226113968990967242876859460541438531782122774035872733095756449729777217740208322598450953435291988642168377156500366033488432482179435463221103141665297564900709949487623115580066576823256467580405828523147464391852197179932428660485557394998781279254662431704761044559085154070347256234719176041294811679900027389052387018951388050871026528721410191266543003525472235452883797825864332248373355395275195975460810593807011645446506978043582317857295278694528188756551074861952509704673496397132810868388674483451975449933453669687292046429911738228724980131506382115833445194125371800900228974387680553543078002421852317211582520212071357189247269333189701233866401377068386079201008244073984361062818537552683094271438633962597972409930531572861168733037671728037529577326734922673466472597179220573257715939202349535005206906774846958183519468982630531388223060773580491938572064576440534336541333790892535939399272773240204897427950646177549798287692774200078983460725524154810074583495253202864525089434261336875995824389791961971509113526032457981223215602646744975898984155667337561987249679135103459037270911622755088288423190627349677660953798189219723543776508159077002633118269123512205762745272976084410326023189163795589433780528202947927720289246259586705226043929398443777895429870977234539560768866384376978928831748515044801072671521664190180732926102039782731229762840831501920048288652140885806078115185703242368723563130675127535630099918401669806368221186392335104822305330516478538433325321540027491675353377696112837106932159519930651666300156525606084453330106943323552667771100962674793264955278373018371665219512976722521111738480677473046311583066984651322766400706449123749852905087407347873441288365572211529125578313513229750351531182051336727653246065215958186367824193399851735937272064984534636287429013362757801681382038778830182467902427789089924952326107100526622664784071611149927817233727786408245923321282382611773080260280859777440101915622633203706879836550550985627144080732412973406740436068123782831692755871849879594426918910419782889491859351543592096775398449533277221610750699803480513886373139500599279136712277852610920524840287275072134270765802941411457070666564846857110836310056256850253667566232842986020348441690587867026219880947501708180848196720906982725612102571632609826619835303158886877622447377673619535130415406056112633322603591768485371972321746125875507901217869770185086309508112170382302776002731381053572235256021228102456701304982595308501612561062838109106086854412023192897425889371847819588170741318106854619778259513337571535261672438514669953334141062768910250119959775330131520058707373159200929440381752564590028537288798321858444327728546060018032702072547607039131041383914272780917132446735312101498092508062323133982072506053797202690781589831716547022004136674712691299606930079370898168365155378072183158032137924571624382428613988936296485937160850262582818316222421881879406321137253672994334170003280565721075727810525261690651751045544031005914405584711842967695593021425647438077402696551186850672834778089043109780429408874312495974969045716318255333519485382041424782906135920810290597550797788086405603394102518551616522097189738501770206897981358923390638640910800020117183049539026573754779046734946984999919228133824436745008514130085613714136295994093171044551339963006985944699135524284167518272335511764074316024650847167015189501000626413080892502781567982360541592417156887920555699606013427207296182089724484596437400947035375519720479840614320795545227729180781185532001774116229341100623008186127159110744133449409584045044663254251999435322632003996828055330173858050341365306075332638832499522501989274408802102415314798734163743165023977715650814496085427219717580136930850929661532184294945555854990887821361197705160392698959111281369377730821509373410696053284537525060073241735471603991203118704467095051605858882644630787551276251971664195383920650247477451422250996810121131709368377925460710840924085450286920452143357773527512877230271417729253501117355807279957099436494713177995322759108691974257847455314799854036657463063193373558041303523844639710565411562576896904034751234725672709152568595232380299058197317828869583119220350385941553208413190870220493413700080555370306390412831013188595711132359688296538887755995691210843348669522138889725506690613761855421608274368946895175623558711691838219614677403386170419685155267720699068825331986442459610804742647816679200950545504369353435273877259738175412833911869176968155186506917081723126351619232356709044314107030540083098975484040643015145193160525843265200244620860515171266677736536148169538902301820463775841861411314658322364871746936468867961494779564941935709875037481878682776455967827546831073037455233399234645550259180059218696065784766070636680845748716932658716821452163374824305611037707976604618666687545200649549621866548366639330176333375389675060524282474399475527539322246598985272751702174179733872515495082056201196329737912728129247024455412596657151831727056085848157363087394428840940128694422352961604175199681520299971497137455456587739901693139112831992883079791404600297877755087281379127187123553755078232002628443146125710823424429323483017946827460968765768055627889787858837913634059925654571505702896801535921488165963247320252160065798722821328853784919626246812125648343572162542997297419975853346877089241573018658302648827477649163739515049697149300079264670026720880217052068374764289242585923630278726646896725099725296740509867812808276950945849294574259572866343124014904202942463360334801133903261707526534591030972771604184290948411907667363810464919453857992246174012819829026193900801846987267217740064268340079152681503701254130113754286411950399686298042263416957099145853134725626840091621817298994314458635867383682771691819501666551560274542166972149607114058913374242078754545777800653545614713530599216656317573805304045477935223307965551115368774729971045137122758774024651520631953112162424708394258958210999530645305601066448834175304496115890877548188420607542215773798107063044085776572076747767467584722055453490101569975429203502568975706591391218807003158044721282437814418203973171112965218995109433444880585055821392344624594053795909733288396080164883766802966459907873180798511835232961848502318427293748501526950071247040987075946633336443652940578960142986673304793931259172191804823878320411556598798265176947596460637318547277921430778084956353617285722996402674808440906897291060117945896273577025891085327186543541002434309521583698033289975066516184425393280274917875272349455576308903942033907508978282563155998508237699086201783898435222679200059476327166172655435333439173866977214901509411250618843846478778794537013624834915223691188278373724779874723794029427526904593070224799436387006219260286681317841761634570393056414296460752307080614615188327062296040127823097282197464153278184572007543756767101830069833276722316818726717790940467924262684230432187165703447371278524151434952868191419651542928053939783546982186458828081641177265101395036359521353609458911667264891011359464187454484149193510909386384918739650570631436235480507341573411911903675555126272698167566938017600995411818261236106606067599526921185409191388299128267718633467925539642827296765816491142678171176439046772976571442873518610346540943895065430685885048844900889720766842245246477064788372410472703541407029972256773825164057519496802334766674541755655922921305245597175753834986607799478850621979044965528686554888155376813488569922031117702013092096804673706888708785114192122925240432690292565345232653045540621217453542749899614827886896445237606867808942380508010770693447669719088381360807813981616317003547805627390038841271725929058208680708518262315914667372335441793645054285012388143668082370799508281585536817866264287199173856047797330187629146372553920332072074736037776739392601723912245889043111806840205281781177407933802631431681746831648692990721484774401189505348672637787570673923268495573796294520862804225906850561311199729533544727707157257109494880379641226711062470289287135367052561854962544980878278810590723800799735680521562918898658209213821236609176023772030597160526764770792447320757726103433713223420430055377635665952415057459531698873428296598626361438746282563239869243577450373580232193206104836163529090233624806977090354119160386032175747085848934709915672887406429578722006243702065833354849367701401795644512304893118417092940068970469583032154592849494030120346625039111339152745644513042194750536095318505087525160885800467036201438113067503341315302575842704784713152949926546699108692590520813382250225686185348201185541267661158779210242803306161578720966185281580354998167992344934226359543233767546888709500084337871964264918764404119565921140081554236992014055237129562638311401430823511121784547591739377246995549217567537785341126480133065844311674042354390082193672189335426773378723432574563358615956110796058566201162250761923499278212101782799565560431096882353316286159991944618052901988515610993653444853026441248111677047518056744967327164656987079593103615555542552343218235527719557354955881253980190727389493984072557499230296823791369049161756157075052882421193074079406473420419220484590011398290399963636036352771425812757449551275149871216227439697153088502854831860775737973289872665592224314998978096769034164679668788330365789123354576130761950462703421541378133428684807052100647296628833081800922259108847134749729672578732918506963690909870556283851389827113527335318916602765179395604055355430972739464403509066506644159680285444892020091024815761951283477689776303059997504097732434576294114649508093901474334497444235587821742417630663996150917960313387208981709926048275304987098646663577816801906897369260702073129840833700471213977261184078539832442605062170622668136015088354897175719136309486069590228043581037153503509229233926556236849567325045942591417279585025925032015947616293937013950645328798967541945575146919130778282951920938544269128167445791629693977377200900925382345460623198729680673267338807746586874572146172949815646062516130197788134821445078412667079713858077148519633888947352012684778572123067015066730987282053444357227909923189014464173798280879599069514234299767993675492526212631678864504579952484144620761897995510502431112919434260904021147195620782265165454926638136565601034850398308343483662338421519281503097780086443717151289070938322841386119789780025879027360986561159112299928066244135712360239367859163902457314346954225556518653257314625023773775300084756025961240226088520281915248221996735607107656294232170658457912809156263291946043955353390660577299709892504736880467293434623926995524917648754802884258264201051004940577944381059993300357492639178175653303551645045615991581111770725650235520051134639231717487246729003210566198168523313816501773597224650788711218239327466091470276376360806112861835524144860715291015699420343517817625090828993602901767597817438881868087283463583343308132530276635005932581566811989907357638418840750297787641585813675668737296173091841077864839004135844565433785124198458170998303545761039901664804693541777801129099277583420844511251556709968397304364222367339160747531402434660738172658049304119044277559648962264190119884982493288360986886868793874900873031730226171202478010662314775950910523480332208139529185047112122549662235788488172749009734537123815840110581737027353810526618387372552490212391788495461601559231256205076111428111968951626840907003439668639821261273533200932780286733462187576503022276217600602355538335278901723621553271822747820295951314633599285481125659235535022723722333991962473505691798068626165797402673599839966038117319600094563823298188604933274010092619579376360929180297774788952391482705708561147757056743160350105664625041862772819983422873899244685995059179811102512227118319247506202108873047351008977127877498579501986575660784266354309701902930545299652392647054331036042535811843071568278117395871558281011009896921676625948419445088624328588217235335166937301780196349998789123055379530863832599889182461294720333673535670518151795498724905834181947234428944720353370522732356437665872077531156003157064872194059348026721322854461008481074872240699919109847176737137797462322834571297788601666284690589977917474577495030085103074332494483489571176952609724563661572001714042693477781972271277922455744151099512710190143426040043160399552115279547992270346626537270926647393300598445688268391091354585602234989712662115587896267473037721866747172193265012369543995122157510188200681292039275731328076824895637255713146214842345721021416919056412182133478076622365809702243458108825022686517257473897902744039628427676764014831970400663856070110034422049893465220970464009610709176475769595264131086732863919568007565648308670335578789728366970886663418481983894798267434242351542128673813120595041824761875405524638627793817197324524960953967859160070149688224145114193646857771458644720590471432707183085735116295688115808256623733715053555121644733053693378918229382029500720293215395894785907306978471729107989777153265851461310128288085223889521932899675767358616570553329401795239968994983410591195571436680127965023668921467939733689029560114521539734184906407444879870287037114178981234581680772243582150203782872502969665703623866098534521546957089814717724973502716633580892164246320735176644222980404722528634220824625573781737152940984370452781246416754405081411649898114045472261297156530580413397165916117945430215617678798100429939960079676596054298528370008150964682577650133041623298516806049958970157546267738883652802052796429097647564495762438504808203213557536122997978113865372542532702472377838605556740089060057099694455242109408589719956401401358040776061564067404162150155529624002949611171855279000434152921795585881377012996274286595612471474285101466100621340736861067662567826238178539065646008473737290835863573693768862365080483882819174182422790185958695357787510560708240146471529749195127945610206206051639413226142753377404507168424418862275151273699087839356321970326314497251840659624637169000068935251384357128776116696116597674890230920190396209975497953206274336347401561599565305766344334391277772284316792843395512864487521497648043558520333529630804465143457916858968892863196037641314537669412501060152168389884001821843285092120207975725035142879988089842625096247514453735097299794379671875216323056468070992764206949061979055776730410610164585538659555730169437289852012640498919271465729146485249312545883648130925672058254073488861935729173311872105616054953050474996650898680713951249723999429861453127043622539423475829202878512909858728741359145114564760644742628381940001484614516846502142455241265728412287752127585921863767839375071301438723178697687062151076649041395374675664802733479529551542145432147294928635293012254895669399018721586568363881734097534031533611870601597630317467127385959128253685279923834915945341135167578620382129671171223023513430593449728587691067652903973870607751535500250777233237905863159024553066405598765648085583218673683413782956214155415111618615197518725082211099018194357035525627575879287572364507842879383769892960573000484568760913300911946597343082373357151050581240528184306689822753665471195778715095709392576632428106082078913544122021017455226735511063746658840792715882482995580368546375729410447148677728419534081279972469571381416228138855833173250438769418730619786716791707654004150912337099794968288470249752892241513756693627046160530114118337941500866547909712359240685612894585969000035224856426731125624310024006092139537875322915567380653607993430044098352677439878991453623240408861961728193610275399989963260735778446271903316083908247223083247916454387006512964126210376816249580055197293592449760941571545890046936602628541062033783912365293717096931760863724695721590226605704949148238711914861904056875620540754881502556647765607499763567308884886002178483299247761533958144254095749784308166956546605741912019938396361380336910237017634184660340445594366082047162616210537878047940883225145886670499597206268005191010520636996729355904149631959664494809053363629201617803901353994119201663448749227025884971385331403110251907818432159347797131522889005107745407330726494244357611588497140597198929498130787062019855558234515951067051380097705150210510281457913442470479262561992001803589258959161809964795216527152427216521668899307966528426129977405950608957849286233871196990666839715567150451195687941588075124537851652262857026836850382588348444759113539544759691302860577484248202933130272594323866732105568655894116982363184508918793707231826007668462046021613544487717072400004021637171143204308882035857047389696052573183161757009803849270761373209632815549377644699739342595017771664804713039007776781155911407499170357859710352463069290284699483736839922192162443279184566863672445550918060107950101583544561796159447508881353635705232112026438841575299943796971077866806834161883153031737125254080228729157147508985238133642111746404071125633212610338641572408812283149877728195271988752417434026133903531465106177599865769621088646843041762809525096325257283791851887684846292945140369610216118507014289482548085357896991327553421889141516182780240337609069827013270608675681881255421105944159290554465166047682980647787174524423897057140700038388256159470610448860853945492060670639749978902705812809747546973988071134698551333355298900317114201587089594722581800593384823783933971513337800139300897343908924654499626243260305159474909022736459349081379712278084698501829625795395016060159701787249616921070253107615083479903970564140096541135074394242074849725936369403062959190809429409475625271562880200103253518503473791571268971384679730385953797588983215262164730539424500567989470614607084056278312964881727514268967931800209488028223978748312278493809343699059858786452299078959829216338264294324265728115773776626631194487383952669798755071288948911637494719998747555971931932081414093831290986897687043855657081457213025020930403793175551649017897131440985571356885907313153212404748982728858763396487072262981877716263368984157250601692768816374230161505101227378919984189703384860597672795640616050301301136968566256853662952424472031992976157987229281137332588795274687728740541359971746005335964082865295677132336225253056458069630947817015878484458912241578469877514325703242373369372065450447938851028586077723372292670353838983047557589236672209133553419603054407779188990415186933968018993419394343742112710844275762710652565186986753660688926013223088307617852317953502904046967204657624600602740607411795650780242440372817490471791477999185408185123596404717490410385194960295802759141734801709744533543759067950077637148225957125869868545732551409899030211017051159737884104713044240248004731637691221070133514612789393214078940155202702945539021715120164889060979223252768653729046468305271917287260072617731633439436514389847333180422523889736818368993686254073694890445441128158134369328828088351131225354940421936989728496434311814955210574217605661637177466342594857073050544880483029309377953710028379406790756033266943605142847753066126715198394339792269957772569258352771040442878048913897724427824734056765980274747726959632292188054315717254416725279134191495808123816938618473327659754636648743862028647316719923275986190007469000197225793596777803766636858157557631670830231209920202523237661794424207432098559322640329129980385602537350613632187204186986177677256489587234426562931763904670122563369905752464330462048156222807798016550369372378421113980535513045561881923691350763980439226118317940047032484995272770615487469356245955058882960518442891887669384023457091203431695703097606857231518722912001658485621604223440155656549370916867661942428549367479865821706617990582341726197789371451836406882747959201276782839572221946908359956812392295377510022277485871350033102198585978670644346167842594113390660503897297261407304581247330244052850603426123584055894173021830617510418193616554338886656730790222184268299634146782063189018171623192071808213896941945723812248148721018077982527093815791213224966329603085677417029615065559533848517364901117541016644984450533073537043361467624201975801221093991716554627093776630816397095866588518235769548909176222933713809285942355537087453973556790097258130299699210306884809628423929071415119709095733994646608657076519053257964496239024342349748656611208731246512474552070465580770434567870881297226882982611456789238267487889262891586656109975000449631888823418076514006499039609144741436212193799314499962597030276334173714355088328660218389169342353419181981749201202660686788841819683249105618030571670835782268945346271484088238716493220667941310994636535654520094114968047530850206644799252736121560746192977894386257877813280579311998504388630475185336194442541429147859677032064371892419624846990098559791716291465665369435028453438616889668084160804705600451706309352762789753902443390494380861547317931799146937475943143676607131237641600342129880323448896767912574641231953457903098718415938668939201971669096569078163064547825837078393173905368428922034622228198044707060578546876510173557342622707434161624607115289142502332154157820840434578135255014416595405495612876373895621530068936725203113055210585971220582344534546637403069801888141884188048200681542114278552334216696643825899112153169867502223591060090562100371666300276470740895243157011652922797716882721080351149607755035417443173697060303777073497710944155394447222778564257429956612083597317787192514349698857627556664389440221811229803026843893911832120846355128401152468559055766054588517729634345170644540440931349536974907570647134001516065934941363310832068738931214491138410568453929633186939387824337062295061179171248877159870045141394622863629921667257591500153665418494893890498863288100032057642142557626602379958516759709869063021400878190390811394102819084061166720998634337164941130656193608778188287955963914667641097182946494455440521914221229221211233863975204282303195193653741225883890135905173539006560520776472984064552742767591132489581975604908978580039334430173470261215572446330001224890514608008428284018518547699588251567129163224636196605204545948062019753570974404835996406678131539242890770247084030070147683571243243010304507252398448024812919184475705147852423613263463784099034947637464803900068903573709960885753435135869117149774881870262368637805815963666302840033615190780552578364615082341604318900064255873692380793794890197337121919868601541388448580184826414355750524501448537433628859120359777666909843362799290567241045660382636049823692644722632287828179640982780104974393400285485735292242678730143878478694050045481709155595664763796609058436397821004521852720997060784412272286547785732701703069055297224680571519659996999268244477845441722048233885136515324023682659477856966557258186607883797342646147758446001036728583237906502118974074658308472910743928574894620574598278846891570920756430969597139516492531196299332361379646836953532868579849630567984549302937491231454295212064079798516092475392605616929647760841723961537730918743126077643944687415415665727112710552029189931127361494862650557711124028648104165211404999677066695892506220027515532451579514102529203274227590940443628022070116014628511089765207170967720327082259918691312184579140350573051340752650687037612367502373526457799737621396473378289110911832385555942470674074640202797731427131164290472998436678652009407142122153625973099399539865403437245920402301469640943415536105883829903351554684666014060719296008871540029901887793437216073881144333024878096880110949079831522542895328915747552011129431129425652461288210306627398490457307934855926311372333098865189997357455940611051228247126336532777487502008295584227184294006881450739655501790025810420346391696653660301769485076819900844749017020461762480870473927100803625058180463714789537615320025640826028291145638219549176352358858619208357488767246670563824003838585482885537088817035056841083158471464567380161534076485726339540593874943028846998371177562614675077307170095992866159265445608317285126580793034975392229760025893771495984070294793103116993704801514761169912729712650134638488455614082366798562923082417508805551440237740923857715123927671881386153595649822707446802754253726774162438645777293839424812165510104106820152001048080400838394940999097308271534331105313752697433584469765614237901128860444086844544461951011698072955757313424980875892032300147404175487033798632033488380408015330139313222163114207081950497204943233413353485494072890311246064383608203253912704140627157915392527500752229106442893579227409508642753552826339354237539648594649766937742590580583231145101875509585753025142523757648293326813133145651576888255746189423494664514718705343648097322922009131992406683443107669430242681065847811063018119039910129033250103697372036932114860305700717042857776025267442964895406751097823612647908689794694880577438625818097656544311354773474406244212812232141093656400279490644383612046741669717355449038823669543358632731645310671456587182291397807006619320033013434556643749175122137767110956456291380615332611801605267417645928870847516307999660806947164736828363546931741146084369589959095159937630505738986326571143251646744632301716261202689511379366329649825477091177843454813383515988828540570283088394410303327458640059431618069949984210179288988512937255590012512179326658341305459536981115943242463822654271776340922597974665376577579770247466591942851058198036827117212662586485653209214744751433937014905496871974112910678187413008862599353481623501215308589566513592611096837110683298430240849708120262503543276807578268647885602048871999698847828391327687492630275536815741532638736062275000178153136419028321070955066091943998442682447161010801121551847735158477042987127567778383422841521871481190902751945768967663153710525747686433966482077851558402443543825959149969091202263659712421405703805186126129829222425900226311636604237044392746017018787835974929032944727415335590103501249582965001818664289419237194812524164027882612723965431915740488495873438241436452557955376445466165083542843337724365223469960049898221254402645147918980557992594657838234587016949870452063625847993969274625546379952639414618985569485014779955954755139883717320708655141390798057718224119089907304448867622414771188914027511120712306899035742338093990561308082537753467568228947116012180663062405821130421654135191509077408424553179508293988487507524445013762888701346974714686322312260500047067933462560587799766597173560704996111378423566180329881067494248768700710388172500954896324126458683357220562776749502010363474109250467245052989809525021811668759729440586224511814755623224393130549884449526928853247353707824369590848634274099120268353410241896938737091232505485934594936887746713890164453688210350283481692437773203212521201912438461878809048495861046856411347988453969057321290190059489055792109868548718197623131442328084853329989400364142066346527207906289490901310412813577176100696082650793416483156237038676963084474680832483178857996542004073487962630632418315281603548365202933079871623819610707531076950372239307879093748158445301040549284995252555141718850959738514394889706175476129899804717561406692926690495816482852411428047524210198059301485450711124415135580036653755867262266700339146379888628952114451476643367310524572873076208600863262557646057632903061525505932927236622473694826767309252886129699261816935614583347317848605513805291511000962333186177399280627575024405611663012991637411947525597782901959160833320468870510933378112531513248332702392205755093781418489707955563282710160783989965842700606318129316705048181246524442403650838076195090328021714224242820260326121419044609137262830917715423566908989308770999142264638569572643578141174970291578240689168053336442181023707524974163929334502469989796553403886698617767639819664622962510222226909643617887931392214944865670793414876460779009596779736608740185010666146509131244895116195966470646650286130233069471265383263952069992377717566896778173378101003910872345782081130813155867777077831476188139961807095618060706811869282045692318670747217266288196080611238966203293789839087375214632875249216225286304790232650863171545364170794141641101343392566006500852448841790648748821989760257240971769727657453331141002071692268580093044742437936496494482006070813681854977275704390950821483289229804223776929456329470202651849050051910439653549870102744089566776957317956778091974872308578393272134193330679510003066140994144151776279814325462154539758642677716689853405446092204149594337043036364616777648597115431057177926201993829998344755524205381931784283031986909217419749384542384382775847480682625633885464304779406068682467008723489482959424857300210257589460185847842428021365345267086671854593895155146968918771454858025084964531071151092843494677066743430210270807097646570436499700742385180792059276150262075033857073860216380487450958941053817342606793714428634618006159396233343628899058492039098137899971939074268875762401709998894020893023209728298800781364295690326852574964210597479015787756231454767059724049339355888612260697365047014419530770820760814598661869190599576849869370187814871541570242499853347406160982679536485374405597709871499258246642054778961031535852359491742253731773598941999110562259535905126768458657316122501952814190060682467711531672593876907655757987333637420972987486004290155294912355197971604630389256093955084204580473269335801380980826121678050292141563563431372828662064363654842631838597146025983138516216562392187075225294870077407681601534435591229020069718902047633768157304401647655188674054073036476966614028336825223858087528465149145882148195925698399941111079774977532346074656206364520939251848829156283336858288679213273005155921316564919198309176697092159126001068267434496421754661276800447591552680665604807285166272675304417958199833629163719219687867839752442292615123602919444107008441236364697014711889005587527251052652336419001256621729043362706225697146903484180243513718775534069144004150831846703661218104829766572828845392591797606361699225413797316999119837615746926713348819426701235261613594750622513898355705532724043019512062168664646862320642518629060032913932004415474157441613217229391700470431796425932227362448723115677943082579719865076345824476891637342874500106469533223741240070134191215414605515224758746717403794596395038643363305979368517308629438023992613615870507207426760312745633465207243363107196875372563648878383332992056210729404292675446185248813091303681061002609521295056115757742991249588543496988617360167067697380003589056479214901616393299080767130234321161330626739618025986404943177240821987899878943955756609012840087146419733539152320890364365485145690785315029964899367906120932023446134396524019747581222644874198827619013323727453630346118978345067473691346165570927054442253443934814981776521640570760925222129676407183178004847723552595241443378996942924023435205418563256242164189076598869662850579264556840318036624683449514199865673058948668202278902422587662726646419839446984735420051469571707247618419358703805305100271179007501790827126937932966468887135037086726119259639424352929266646962878034358855753328489415365620812142252083629816173096165210774305603162703503523582471568506266965005219954986874233854163227629973574528192332567663137325830217134269041655445645348552326775046907376593220011455600302986440770770236585254686433504589851801119615736622264380769245083106997200405351691330292906295058709020853544264894227573137045022725467094812155604872661569719760022366874682472545400780054495099033308785178831920843761799696178599046438056639268681672758496921234699323610207275401352852636843487427640809294066357529607982429245983958004456548194539180298988944927078678637108968358208128691762382673064055032473245073977810667292434195572993233165936663054881091939723724271021531228168790864037130609581871604857124614746540281422389596385901463453139289220066818029106567245764182954864116047002260377833966400719673675676885107168512738175972549213389018859802190781895160979599884634945138067811475788376551547982628513191868554866521806865708803334842590855689767801257049960113500540921261751684019798009192260398325610611133313076421286923294035062326188686029871811679398789133449561887003036624963628810954604827339989164643491673709986142629808336926626055035789265678127574789546638619112967366127429600055428449919516640473335725856327924883524822799208964975979928704628466269391577861872169279419015306332825836854454016908811751406392241965610002842824161438690591219294355790378782155845082568235320259602050743542165002501309687003450875364200883206902808127116933313939811083395798565747535933623207032707224835226316333060160280829016474864217798593331171643486189745124928083382983964234077935805363815096451318672698688645202440990944544324378188039062330754149391764307519158312290012086482140169113816141595144104464716883314696984174608429816648598682956768967733598194039520804187518556392337966382703461173811629035405934255269324121897304836344223220962671733839807463446447926487611390240221125836772993960371451425464534650572431022497926013134717644600521476124512903236234720664349195943420973894053364112859788936619121256162061495938765770050992034094348007437847512381729666573329675652205423692907430781617866212359822451735792984621724870968233143459669307165823475083569308723883162799508609124727118628577009368172153113049582584703801205383220830214294124982258258360301072905068787697720977901575453096779599105251686789632035639530839815124460824675847177276572329003992114495357809632563666588666095437275244216201325145600155977471336531895929216174181133533277881956215296944992631171700415515998614208692129506634681460169991826470327919743632795143546746409760204970564436140280404632596980879095125451323147810570460992362715681866606836258491469079622880542593617668779888578110927636718666586189476569427867847196590453238192382059313731321287784710766465356428753445995537671949299057074326167281401973119434321692979175225991850027014923576618069259961659809544109719958614121626039750903406373338788563501090554824728499198569768212119881711943038978030172106279444999898153285145792504889009049208641528798709422220479268704907595283198645375021948544103414361726826406462252805001878787526403734703911595922840989691361873849544032758877798469111385458548479278693106999214753687155757110440289076683508095892676374926931688155555831936156610939467158714528474588915381216523661458049343432541378460423045916176285960269667501867333172528828556151134786632018516181003880736844362431424601230813739506177012787280536799759177205688354092607498664042131837600472768817227443520356522351175906991087365739448939588155546900690002375547954529207015435158369502267972930377343739548546599628952637778600278598019800335234531312621788141053979459776183026793723150948415786172945626863503771081072277640781754430784221288252667531751118766357890229634643109101068817287984871314989319458103401871835243004174209610821052164589051598647056573472617840901146801144574952275743867307508571871348351743402257037735443218487402280338948290777047852172689817820665400442167639945469111536043791459095875303825256121344877934290928827840135701838050389135572051810639310620712957926063319856798896314930204234507660368301783664283584294269520922018787826383028790890572329180863799894544516622558095858612871481354365067030417005408459504997898161317724216748044807630963755734226342390885362983020197846034666971880290237555419428706774661431641469074916806428500046116632567173050351745337647473066938459674513979466722878155544163276023211553699004768396689930603515565349357173391629163230250380654295861246407738590000370609109725904462434008312183074242307193595439139338977566698474412392877595982939652321638487938601368839440256897992800148707325291340343920590177451686121135551949152043744585756666099490783522348281079168605993863975253031544134756606743373791416807829507513292907218043184157099364148667297121740039535425011766591175939448123603921344443425431412905921072515342564712479411428472093040222117909079420911733722606614596748128733241059751417353830696669765219024107913919077819534828234750313051872374183346986163282724648179219814161366326672609362186927869615090152966038674388610812353653667367602458639971787155412225817295722177105756816192556980614192890043671884748780025808994698186588391105204871305143762396440142532447615365181266039227876069519983765140037069766035179278279346390046444282756476297355748664339847556389720935810112515494073088851423925077890547808403688540238832177700008398278259635237952296702500102882713159348558918567796720163189107299372545047152647386752442731165644796775493646544872295221025716028820510064787282729636211370116183943311093565638678769608706877886761863448693591599839748982073761327112394202463269840211703461485770890387689322572215599513920755611917481133178854541320461769254752359340073204928710162077517842899426928349032969936998865413157060189706214300013590699425315122430808013825972247589996210828654134401391404661424719805205374491514288688340995800838197397659019840767044772612775106693563476083542514714905676473883316248072090167879766558882643820668049364114876942656622258098202101010995858362401534624709047925567447528390159066700490606052313104467457517155940388341546392249725886228031563875033199935572572269547728698581361113004789346021012525805507157223579931368711231775914430284601636158948246378358346403725474783632830997633223430112158053400065163485422227187322703501111757459908826656246002555776866961757868365625534355247315095958580803732970863442594680241156132833615170079397310699843086197760743027066065894342816861232299143707397879119206989804248719205045955762808011996369947612271248873599715419182335489845579239718409886498241283420830020431110048087390423874980969027011267305138597572875725034617813508992839345642406112494487453736248487992791120029527368519253172257835387807963773784772062377968444327753848356089338532456301601095226587603435957944210199653559432718304552699453761790463402338189921846689520689043771388320821702733848741770689422112724862283781321583165532341305404137344359857945366412333943162964234002602494617199402501004530083755991615817725797345688852982418723507515091294214886709561897816414451165203452886956095620814056009807112820973045107629829491431807444234352008347114302392980766088392498455518102344277367669323389564671143133480678706453733800859133871733377643416243674250561658169890601507795621226198032039221925220007371537628840869085667428128063806744421889557376725236599704172093558418132147166013410949006445141297917858501129934825570571521166123135617990705044882052221484103495400276489192662375245552500063157874175231316187816191898977924244350139066132778404021068981312373875559263624206635578423112940788170283583998303496076672049532769215320393091749648155927558080117267000786120534890038081757101280868774476142920533009984347509417551405074602498426883987759076317603290277654385939008192170487181256605810527619404344791596672325275223816702700811544998078324786374698770822714391792951107565680115148828516720649683505971147573704756717458059431929975805929477477975086738293282459264462260601008382357032543713166472062752237459690764772001939460454310613065826814695893409167634992492075741731767609749681752405421572593169170070668735054789832084127536853225039011063223603843469688867724663899770626883707337658515782908958513947332400061221048334151980873779551689283945685051227088574101150011919470581874002958763506112891377128335622260824766932062018449063889689735071073759841822117094504605106146198279647545907573412196478768568887499592197864737476368550431604559429776799362840038090193338174388348982910763860314946402684036972184131863223904005170045986133563854141627177769340800389204478283774230817920912490013608894800886399195876580777034620850079878801884180191138229100400723842541932092774082769064551624870772925382063594600148329197807218188519974933163980350543239200576675891998966322543116787463240354236131294358901983200414829379521253599175709141624939978544180617680435769558132809762201623254865245889886614833946950764283910895859295852305275997246740143105531246724303578565918167522207806839275208678270116492435410714230142998773233813859769565185462210323314223947741745957204004092172991875375434733321549219425383307642329559140369730395418954027270387335491826595041649586708929505563373869006364072260528127764290769575457635167077311939438360744788904573116587869609417307657025258078899821206431785524069112425822571996620970577059161893293395007543299620798569948529930377273891409982780744451693687565136322501244490471099761635562639521392569431117331675913418726906976247659603774258763762585814390029937190047355022729763163029655940369926544080155867471796864715425464263123244395928193609502652344929252124161122055624837300098653838482103560924168496644746642036755898875033619853662350227311703646839473635352449566414244511278077726848904866093155019007896569664522990875471173056509537965296005746066922993692832188960854882018209851784668498096911918229362824288975687859374678250033097054380871945767674738117221873325352997747226210653810097892631465163167324485966940440107740085697492006391537711172877064502414034477949420520588134187819888685605863506425661353390522028033815029202908155630306361581945492959350585773175929074977668764590648530953906069203504421612267733582135008202521881764465453241841403076592440644170168914119384579939956478936164490832573781455146972500539475625857527806219531014908817063599374594581513105721002923504835785155429757555258404262099267187211772326705661902342796776527136805593625287615386766051548854271039131327050526016197002842426004298627699129482331959515848139172934294964894882747463400338468666390037462057495204383175369071847235286867211686443065036565063063612134470879088113632033059972258686732673583502835030723659562695975387722611480509237692879507650364797587194995160017388326724925493032563737391642570829001577802200993463016927512861627713309686086012836071259267469799911356985161975542070878344922346165206641686610654289984046506856897777823793539865108007281563740873001381597506491878581625287556325622774840883545585238389050270788229155872950915546267657131454000646684924323345266000587345730902555802440547236464789165401440327055938009458419758969721615643297023801848137934537584113487552203520676494849022301831084340007530508945583209258650467431600075961239156935394468722091884000330537956650867430212642771362525824732280512009547987608413302844016696091054796630594588307953811170997460115474649365598984094197536843921907619375009138167034801805959744036536314456591969690718088175406883084197130434096858232940805460725214711462084676284450452210692094472891915822790973124385518203416800193041640717073304081359064719769036417890688548230104129779613516475138917043241762481269833008412263435880898507470659125178797911065091649626126002983208770239453898163038179645746915126700959780459982555657361602694912076632936628243166571766306461954846948617594000582559985685774060553721845256608408521937954547308174185214579697804494031987513725261989019415474069672781570168828341952941202494139930183534176601705550104614321616354570562109720222047663119129759763918075953958379515545709848670075484680836951861842268193695636896311439183383932638466984420377338434005927702538359635738807259363496754663377554929334402693547027361573767799789247028255463762845342592086613227059621210725697851627653143844017043123070527726529039094694663719609693620411936459307970401221740111646435574763241915013632739984872076016469877304360593815623861456628210411368080046909791315524287708859057735972396213091491410471859224802168077984229168708479864801081512961238477682943153216306294328117403403945287687676848828571622516138270389473872962413458639747108693465262505508747727928104794294420307984535955234315513844230647373850441778058328472352888956747300593158240140838207564125875628518010247226860412302743819735884140266777876088762203542926807638317896694281232362415787452238481446092803408366360183815936047083075122430171681954458683389608286943240129036076054317384808288046057754895522928451187166968748207272617005445685167822907626617673732959598062983716855990649206271758151556524619348749087437064338246013194810030272076372460776713944208167254237246745846412106966140206641974508306789560052734825374408348171791180124554689823420549381262165344149380203894298855431980923411014092041728239112419418418579700410512566580394591909193405622836518008173130418972424608558322432962527509559633962104866875674159724060694785582042781030785218583803654781017253855852186430479510863980218064572874884477505647614373755558580160129413757762887791621850388340227754185965353845416445366190764680117424475850808852882019263356771959635307684547922521988649701989823169713310852050402538614221195979487754793290040968791351929322282943802665282780105332994216606013144977701314905777598562589134069692992966296656269662628670281695425139402620755656506311980173272108681583737795545475274967835230120328055195328764616480193916026859329232501166423242550732911404389469449170658966632549781863359448681610163356395746925226442112055124773213254727194281996784459368518163819313657601497886363347714573432354248835949376316190121033713881818692909809362344115393317207282238862293501519054450289379304107460276151410702493500044807283811985168046744383732303774953148960618037150172556243774124780905909837083742061033415196671156507086649852219432875415904909203494873008873368523058680468790905154844836523444389657470597311453144624992952540082356585153474791394587653151062114419800526282493430880412561918414479912660600445457993548708516686120412193929227715696655868742053284934182220415475281533428371166457821749242587766065613852619100030599363925326212514222155583932252746921406616219877475840142815774564602145152013598059760133466072084315219980791845557923958338599965205728767992487950004763703712052696052048852469782949868007329089044970144472444290850907287553852143146287198661624853227439589511248637199514154599182934929528391416646954087588444415777699385568940367141491196499923212478816458998242764136646008891995299688706690261704002217569712687334042255206476185640511285619322435796195602483798516943343975675538410307484375082908750138253810352111976354845256356088588353790285589044494187729087244240651631109051542662698155702396308350075101968280851584510019099972653653461045239273532092824563520283578289211247277039478235937363557927177674429402768517842193389923328343621075794673823034505709767923307057796596967199097747632223290074375988941135729183431910188352558887908518361198387006592406469928825714789149853598727111195018985126809423827661131957085175176226754737409028148157942940676211552537163014912114966950687757618557432286256261985543023199963845423511441858527135874365955684398923659822268998497883988751980905570230207208128688981970327331833128690702559615268297894316207954838392227926176914987884830763225602254319334988495268415502410708307349149871085404102011357058913602541439874169027901949710609847927704221669598737617492500560895536559408645774622714980794940230675824954722040628336593528912664696210838090020111326410504780421658452577880294728932007329598645956206836796228935307828378148235308358286005433461964737367735524410317651554567807474336564636503913669025331107827438602341114409053241747285847349299866370349572063511470103620668326154333321623812523306880299247606300700817213573090178593577776669120045445667749743697512152116112280370639958851058021631733760910338220608071351419209511100784581207044675145984582175283377594004937477835191524288716568681875016728383344193519571091765657388016927872607314635386932354745927316952028509675703305554298134847094490372386814300049396733991452714320879560755612732706154404291783128303422896529875330710155868387761592439706673937909440901923297288987835806602385936165314445366518812985982118168158775099161129457786165406369163245344615287154614965828838717909315999575941280387963191367183538310928825435270206434371585728086767226566945293838309441480609004181820415807052555752160304035853985196489320095009899348391452102520396755041085013651861077657464697625365736593641679651285936647752240683559361910937335075759475863136737087647043792629054447559635761775754527094322115589501004142376824576967588448035831030849334005023187072384143988967376006716233638691680296737571542127617286390880129909473760869327127185304854699421770527993511172245196146040488231847426272423150496600732345209479908636091038621217813900078262093083590961840504937091474864253829372314918951678384891117610254468307493277107056830130510380326007875763807131279092394885022893285661168049977103084246413190822856806935022845820571061721741304445385855970676034017474509222668435948796454404538331037186749202470957634167589337153308433534245118685034359648647460729133444886197367477831949795729104970517774435040566856847465979084519573537853220617447258181880155671856358363291175307673974038728607494398557651641824111825389379919838711076618248734171212410085494715883692279289752733711255465708036066394753788435045101492901832240706584896160550521632653955055393167824678238083077864001290394764905462988089599868138351235941397378104431150107950878045659099602334850553075068072426255104688373546516180082920084190766128473172682656286434699893795863307283459593846034274033422607719722746178866168882657027549958227377520937544951547188288133836388461048388309310806869127456271670688887813977143220799125077686400427729068710123274804808751257161467562492196263414587867351390250879575193266600601147020141048871376074616312469165186140535391262059477861825670765427058974770496669142475724941965090180961166239759244973768834330649566445584436927444067782723615713228061013211319282882069382935596288500152181945258103785311904815262732928929690652722887950635486090468786001914294055569497512337123924535502613712775145525337865273824167768554780800092931810749470741354300741625528314558192647573222254459171963551175804082102366054944795287891296338434104728142741711078703101579033985314312335717576099704214088451942303537744692720794370159958187361251566230817275221856942466522716607424018058919900811995549182126713933529513746627815560526425197421576146186751168407791846421424728487450850462443904725901200473093772354926168076236201198902121972808098703694665305620319555592413884344355885431917567830423192157363877767431520482988704684161995639495989186351161368661250283940755986057197734526600760262242290653930713385565858845760760058504391798040719366657662561161720990227739089892158407098718322114637768350995396949080794129854946534875565406977216305570194588049355341756653610762432406793651381426384713568103814408329617024223234212531974413991470134312000267549769184556659775708154701404396479874532253880358602232362073716852177287016349637997275567510475822436247533007066416562109191031623767721036444440158463731318742768016000647496666252510120148144484310611779570447643192058384221015150085133062251809254758167145687653633361801879408367403666436105940651821971308293585423520460992197968814577691409118610410177611611574465524467995104413401400441864493241034859127635894175322675943863528821799748976798757797027455946199959881512804759087633253417406787014577527678440627838775235045693434779093221077035481246673863739256905585978662490292829144756471530119422938191955833678293242520281010346683055536278377470141146741168055971437253048564929678506330856723330907329844963569293403614363984781561583732358448564799574079001481586547813432356986841629667455112506087293425351977285559198580551135129724886431763961383930367694981321707954562271039821097848836553857447394502758680335519403905129997005886899017625617433962839862269671315598395487297528622074802418363639901289111788561747089048046875393474804922097742907721022864943547079351450040167905909877137837176182354147554198229518448382129842272632129855138979118370995424191269232105308858289642389094365944916054396539813992888346233974713526745678303339562215091894318011189840054814300422892548789883839360233846996133197438568828052221706570999397507407127648485393555393554362391118297616637435241144482152233993031436811771302520363317652770685387012765800883826289060648251406197045647360604138262626699258497895468319943968049982581992158479762182647866547031996167607606008733551371714634110747110041892513236384229756757370552316637395521022801868507312695086809790504826669662629287313066683888028031050915812128647267452356982674850580342457496827873563326755664094902366649944079763419295521540337718936329838493384910813237272501693830452651712339648239268866477677915923962858307297678794838659500104370551656616065893025578460443027490071661782283082078520862089882533596805350949400096859291319695048429747300612846203736537127606233735870302167587789406981704327628158271205313355507118129808393133671851827074719668819869183648200472617251703582413927919842965732428145745038118717043991468116818640743648441579711941328399102110976896283630218771454797236698165394526912142090565917091535712109467928242188323847057851335777782162650257146616107827200081958630050320934334023973833652121263135084413181454750244613821363181053283388072395968037013635727095707140068515932407331980688505884162867194559106287244702540505883871155712348790782146202025554799109684441510061027308292368224793390660941689200149299879599165735393087098083167696232727962834450866880540806324250117527379303346579550464518000495489912984316680356640718859489543873259823039351334987941669059697565805392963231201697740705046146784362387104300141033409466534597740940474382907855384276434581811378943614905228312964400602647223651801969402469565349825922049879783099470233442643779294722758695312165168498505232030444937127904585958188255078926046061787513984741431735430492849931152785274957635923103848926724081704465426062083544166245846124470449634375312553519890792590631293245316035866218899754094015589825838183388314130877984236518537537120454225995253676387097475295403526753286964825671251109747939686626844433036111623036653727807201097507904601375109367134042868452439628947183948428227140435225623590201267150807077814257740203078651874437607198550856362659103499541596966534605262688839389110225594454085509716420533405050769127746333170915034332861960676143653362958250170160692979180849649370701745131152317215996439630321808645126988443659221072173117991699797646358144851436718165004790110447207611582613152178507999806679248014248163504383044603373287264886827998766373198080827105000498120691029086439985663977855292828894050080969039249282072401983601138119923050267176986024471846777176163367258588069216839781150622392194702522964899175830350639992502274410061334178373016461813762434953420981803984498205066670897955639184777097947140078346005070793594414832086339006030953005920548343977520939999313117392494864153736902570537151172760993237532939716249542139271119745041876108316304498408332893061474760327353608067774595199625608181442542627373778045873554955338302891823181376131715870726903154882841665726785770831161760988476785460762687726538193142760101385219098991607257786049707355383263176446071033495140897621472269978754010608880890444924627361471620909100756543550011642799636389858126448733927791650638670708907807627000273477423015729991817732916634330857684037224823058594159061021748919689064791452253345193775841638065717441626879150674570449649646259326970544880157274254165931930964962102682914103722994392195086714779559187661012972745068281151116516209747378098039678502706264782592058130640549287721279783253827305408505333761879588825301691384227247074121373110496324936134753826890920684665074346905660843287190353184395419774714442611848639714348192217271455438618195532036679072385542312069954412139829011892414684344701364383695468453524937550389402479409174278309838629503850585516988304609051107706993288756008079864443870717454423554245778765735878881680822386177484333730310174774555060142186097529233624503901324900083299114205431762087503623370038387932682272261426922518447539587109836693258909193310574495619870026643588292873003475090230870899806528378933011665390033377924219940565115168591569468063768814490894729107123058725082297703665392496251738620417085608539087392711418288069675167011763274662726180997378836051634588440853789462134578445802097122115204086667795112637961044749653812914083622914165097318118203792398425758158055026434120481106334714478896967950284268734393408930525176382418442127099434244323713586020850073979790388861328333519399110753774435308014382681904873390085003850217059476937043185639322226766833611650731900211942184188112634786923309386705993843476599680947084679865797199302815893080448936152027544955744093652968095321142105176788062720338464404958981917084246903221145877409243748395476152841229527377018560353732535579678560043341201005063423056774031510186423598955995975737880528940885646496407499146008923472617446391425843847985926460810064386391487075609757043752201217445089490626056317364882241442844059312100442833836959006187203982649506745938723400819980063098148594402454874791795303774580578090615089586585375247252966145410712323743218960492852767664941311427578084005132940523735553517085481050190369851102607719045463016886988294302830818161027177033047460732473901877564237614210149322370708917703115161176292000125532469111728498271212214714405595494962224320278841007987927347693180132215372023143647021161282313213199957333362002605553430707040528364821229772267206037542788041446507362461443716228020716184683548877525838969172883416293352536400965336765415113147669884524016811961343692955671169899476087167219062566185036407208715635262011354310485084168819715912626971243829455984721730122899475081523438755788723148147995311692526887040694753063016831292541283136227253639024218365968427342327446335791928075947537222124833804884164557267711173634365856010351024747072689843183065730312989311858351823318315011831587790306848792489689385663608879815958440458478369147982491859081200992611279025974627577918301713900126423198224165025367580069421253347036898342928186498797025317366918857298106545515212557124295319293466362544140910721736422668891291321403963891449625674766682181217553011823542709033054343533357974849403596290071303821601532939326246097562110969955218378797694435027611302716956463706681380865964829700192074461036384560157950410417003340785960912485675106665347474084749177280210875402343233999180202852836284988412651632102942101138160056692443526022387881343850403127849812523682348141214165106953870430598415403859780235782161362599554785953759203687788427529770870887309054880236088553115272981437219519507652250679407273056138408747870574156392488545087884695487265366979577461041521520632467357173187206197250573697708254273896633661754733950667622739048354715425044101777458304349945465709193074849487334491503475987127690087854734760764092774612944814861468338341071368967586647426025590938146345004216543169153123031973954374973339094616238139050141924123592620828581212672304022291883563835549428427763965785043438675391614420265255555085679684813335769517516238218979923317899651777688609901646471655073275025363227402520589398479975175481927663530260601783010074695463672634999142932044399874067009958730472914074313594476298017723384475815567601294588347277495470475285655316396339312826153137564049410468470532429426211124717283752388510819603390441201063814230316627195370285251123525371144682162312878336572639504026318338322714306919123366089287212708021663464508687372172433944922837416227148470331656507704336641521634914755862993165003187922362231265787431530517091243409433723737778839933425690354500958310529285110661437170844430762868430109485171299676006900856008473237344091339298539973947639711624908706746411545022623176668304494221386573611874412962035404921214048794137058195286831847873743644945816604720840565356763609607584212301159300741819433204130798587724552146997540978774345635634091675502155804275427470971932352449388183469779823252072048946303888499278903268443991845130806740486040673273081258608849013519875066213106211111826355608823885166492604808296321083807483752439349435108991788568282389240148403147844018124209141552892525437111214610133012366066548724295199192961444457115364237958341487222195319536330149014702109756271141686766147808242217099706425772050124340456298547268132526198616796344658208384205335483586832384997107563942875229807608871970889402163966850189784327746530205138393058497484412378063674097079826863983458189052154550702049971923512705206093191272648333021301153390693662129824242686388471535703098149028056887992086560048168707356432621409080856903336837882824634704501008536117480547899375102191671845615830430455067005523144917187750158341381667143644107910374916222797303111607230984127189769091737027363479942378784888969666655046098418056475795064726007535029728833872228394317030431941261307084566036633616965278472449267010288373816705970527856964768360546325935577336910717948177845798527810628177374777780187906226203480455417113654730606642849603990420390999511593414536381775214746093607028752486690967464713958131904693884420316511697361114019933926546173861054889654584283432537442841414996393769594188352957608952009772692665242197280897351997771331803584743977860882997109896900624754033448297398747228085925708515196683099715328740907592195581752650549224191288121645883253825139328566490046485027528812022312149066010924387760985357640279879840829341432839711457159016954538863565243755995779414457210301678742798420893563776640519663792676579267941995419643471985686353980997447705808462361844581592038615323544706124821084411961033441064943937503895413325570991340076320370023305660322271585435459315607221212219706317941149136728146733109817073182759374222706845097722781553787824857106013500471433609858440271231412677998971952549586680535193066566783856251254153649929833254172816063021622113086158317079413476227094672604665176944810476387703988926366160174355280955769226621752863079638600256148840792232761274679330077715445467132463213820675191046376137590895055767088816853096460448415356597233337225773053742338703325925115714923394803399233978466547002605403400398161566770526959174351371411075710367893096431810041770375693849188567412337971310094729101892778431297328870977880498591745210685364170814096327281739962821656493062831052331131767306436921325975177592695175705810049949368985498349341795521503178213927460280420169977225711130079183292832504622245551099834429727717380844246900603708499991237466674606006007575665622701871832136691690059023350365001575032464202825230303433885929705208679081263826737567419214882062101764520188437196234540303137783411120374471544582227645536264240610766772922001478456179526547610971769049461604599974722169977412005424342552834162935860584147820346918285861418922284560321652280846028171367761610162817004254103559288298611289255162272930076817923831208603440167529900346891478892608863700577585032586764112645768511414630646706778916027965010347283240598613098318070432362901462041691178269107275675965117677825804753365367485828604379572889657832035592023647389347403650084543008831449641676986968588735741469573584815326378632200832046691727745159718462704597973585245177765611155138509505210833052357756638987952652619460237126645426155893316832912178640127093465857964098751739028515633037043327419701476229344145338611063848019259727269830061132437062155028475418673538982873531743960180469834965436574583728453250976531006535729205497217480750414102582682849365942653472680167965329353897843273469783896770618925649348985361329234672304592770909440112230950091272016590822411239157384831482240414622095409405766458928736676895969733449602078909140038936357440098447225708189831956465250085246829001677446458412911747764000850013523583661114341998066376948413314467681501422409699109226632082963913437007463085631104332636507212855839257661023384387808466123363355779292408584772165491758624903428377933504704939292407667593030711271405897873753894656678751231582707961702217691421116514925103029911258337130058733201490235114145273836359465738226038776317979248195679741945781551520457990141867856800984689533851414976127891093049438273000115524346092330213789557090151271108925399358712799039621191485745010132010185083138176347498246350161276634192355387457546791069027890132083856118662612006744611697580163087804121451173961757699194954007753995982905664907572823090101709521215721184464130785804434767522487067326992943088241241792883231665271680215418361042353111096708794383946920348842526086418881606583076982153314558494349301891572905600571387854784761146811694087357592615544138935437421024422936749626573582116662355917584569572212901234068882637032782004465556282465308905549268717659705356453149706666817476360346192455578600988756759995519764686455335668377239366738220532217528520624174452440591981951166767720450229719962241327626992327084403737451532461108125708260583305598678180575469946765236002429414331279454479836064117037578050688854294229276812134041380157929822947733542577131540021379744373693377088879530945973404532107818299112006714982546369520349403172192414432091484891187659253226933362358907577411246278705817810398225779247369647326547175305705892315228044859239572488023554946658759849847622565076869082294551427858390567495182324943396088463371070707577468465127075707179381717379868314649233618764576731449546401109166994997250032989497963656492741283539776503504870718465480756116903823912391371532724238491638113360509939353206585930640685054500131524162882802377256576168017532972806272673830368258920046797882050547501025616554667360498764042558362299732717628664874586667343136493384797905530249253329848626268236762906980361380572615391319425268468776871775328787640685326373967777127760004878567013544155320773494467605583365142634230504376433699505107977198163329806582522097571841197308334805712696645648824611023161750984354642296700381844368060330985814955780677198400164608633875728033640625057612747034553410415518334766311772098704552405200139765736429358721263980017281547188341512380406800436928118661607650139097191106931257474256612042400828527268405418182838474946206833606723104489150447460426756501808993864045360400449617036323475499963843616154229965099658348782972871468901166877945618630726109127742681225061036528007902568491302992791707253326345707337343909026058550259727278771273937043024665478090227547127799953835450288945591034853752722003667421981130848884085467049165021249350002343302247662787491680232876050396366607968668551710298382879444525074303029643989986209287332268800668154796345099800763898874134884296744830729042652866627640382552829071298620941244769609623495131060392392195885372576229191063547081138363822985203659796367687247298930401395669627189704224818669249184795158209784209964862338934990056414619641305537307497308096560180337028970275352205063505780742339392277887328627049654745645456179146751445565555025707190953297696009857719348363960168895031285486194692738211176038447146976876287354583785548253976191648505085688924314615171200951249666694894588558905131669452313983093813398821737690866573641977373772769988465504985918477308778698766955406078038632660930409628937305092304619142930598261063950549493424723040557571568439267770334123886393692838488129663423528606298946777730085549374342565993814519998842198620982903449772401356847105321844852914005198678211675398937871510469016606440636101814601347324740422056671881125532454296564360597748636035317118354085910649301219841190468948575150396679510980733429905778638565972515696999174986019393417880223047824511319712717355737796778662867998243277516880370317019847273820611117512177956904384123247131066697767311219784999226128786085409594304936781799796826478376879258916601753346175497211726195257677462303327387299226564138516887981301791683083964277845283724585108605849546642743117220241970044220885343140183642665334010910291664289972517602226870858745152307415224757852059475593058308830188567719886355271863183970002216754201463644692075590790091967775823912663869783978428486874686431329197287701325164114549204421647921020277633049669062135339984364117946236964086288224345649831476201156665678729148607140980631811524615769651000812476802395532218595474840321868318304916211433089048080166269922728535870536615199422700485948597436860676401250173347458545822096048946264372646301715025341881836431122975082219814179315126583291893536675789866605081932097152560878130723081120715935877432704823210772733651448751084724612502926119472720981748354601475633626026814095049699483177827765661193251702942711805063072458981118613131836452817746370481622218457983711188855837727159134237815315811724332350467677277998539391432134737176763206155333205188112772620851878394461322783794351849994863695633456303209906203409124624450141322231305319058466359495611483015757970506578285616198581569893404951722982765228447260799385773527392939331861246507900144937996060690953965057054946642648764567437966007945300686517942534281874332965708993881697975106213232884263500432317059805656992508054982230148299871960859578965556383960301886495746617428409011488779936540495126698538730748979470604321748646799404395046017637617192662118634565320268740181504942216508772682448194693138451628662258902856783294823117174973643399888706085104729528797876208273807100060301112544770160261365212123702424847590077443347280223485253841086603676164223565109981650735617634403946716846676737586977505351702213766999512447951827674412337855775747386967060841726145202149862593962569311495714101123187271915464640025442062949933514527586239690174535516154614217596830691542418205331535157206345629068978182073119427031614717325375013974707582549477173676849389823106868956980079267332582416880537700168133007750731226899577945592392647676310861837539342291330243233546534432322964821911270211746601466598190713721753191883972669050679807852048813686606936288069715398204768932545604659492545418880977755031685853603569389175004510599857870239148941902389242490240239279448170666015411195862225350425809262035404569359599311698752329096316938258225713537954718790060816168926461205878012689511132732254028464266383711164930566065921054527162669430340787661100814005411621366335909026885434617136738763895182149540480161545577998826623585636665771342530416077623847880925486692311253629806984464097945265917313203823594018300190691449480821312450882816642368057408445260111007597856024216239587119772952508596708594804456038642970292143252778512420238473493381240854053954733332673989051654493690529101168049040537200151050895383881470104237414621248185268969717938121948143867583453092360431949833346918551964022821297785909256555278968718789542121793077657806059111274126955128810581171520578275382447913052497978360386618198429634777650302278023007573356707515721677170590417313890931293219564485614189375104943816219181407182772810667289938278121826989886525615170898380668053866795691410736811886871444196364007961416864614663378518839405269271818772751275993261836937867536214283639748742287605781816815577136339551284072068562877866958930769409328150796553644839249023025953762350240900418327628881182962731756229826180304109786668548114457528921525749382448209691250866786543162707006429550421688263987928697149990750004077042027849272350968265357250442453353678863140876742029546119681244587828141703780628415947962184171445257911928768107981512010147066971211190625371520118728895813636593971904911898557999032281568959471649161219616211951368648648551183333413248432465374147371931497595590364038937585045401201649545267071383287903326221300446579111522364659846242780819432205434426010639300412791237436068007518925123223429434623499548206416976650122623391486262079110331879153963391168493229633774658405288382635745684375790359914308799721154961564609731732959331102521332517714834489654011845046493973276176512517056434500023987021136510140059448074427657046336471375467541490440966750502303948362399054391742706165347089231353546812854066633739054514712494030611732914727808167086654154317234324845599742934268697708688973983985116730391001528954722733475894390943117438934401181204286807607502486639667661864481355881933256437635677978997627627729576587271137004622170979382449793845648672702925024661697778756449770059951889830386699834371462880019302882950270735886205047778610809530319583424986414367128899389357931317163077803272860010146193995725614678910521522476643736495084191142584777283020232787069911450571895157889302181105906059707867923619506963934615468201358851285520939198913682378042939271080764876815574350150230873337020815711232561988237951609791182144531225516808102391015119134584266546280562031191795860214381154633728870993028278480972998123957441581811352601855974534089627049222364056350715811995359741881079574603860974084482434314325490449413087380992055811649274090478482543446261171839044682923887588704713392269736318168895976709438459042313776872378213599519702870668329560145425314851210336230448116777418724364659803761858366001562564680607187396550983006660748565993720521709265081476190520719951455070818034763994979324330050788960737416738161696420938396787294604173019345399622148585986359431298877402134849589566894544046693104067030093321453830899483954890735435978127073075335816315893058303051417044062213011387031225917022255181674156302146156599810160117838219049839353848951702027146006889556855191553114986266803778177711100602508444973127760727525355687202465209363260946063876579410321451058708432529922185214400044544542997420101648918910770815051731924922401915163211688994783613961101482926290582078562090689504423178135570664047644426286662331737953087768806798854119561441008929462905895593829121443736570217371473305963312122104706218959350096638013209940085066850102656360774595129942474566419461907991403012439581526841883576791832491001373689886862154561353355042814436742304477855134670892493177849151658262902079751138072989854882831719746864387274544899583368875055271606142421747058063682848810793911765396997883689415980567503058110569982291523195400223225274901853492182741126395272686181098122320313615769353437314973170632526310651511183714870747950109614478243435715343395282109072403831312148876836528903276600019313694457434371797682631315326165635040495800077432124381574938559965687884456158923874758263138951991387635767678690624967118969444976593104560745148589886255462343421794576556849396068934490194937399147422951106219460219657711640489509882711147847276682180019653207894259102484472512325445219775830767241225946765085817164494289747531441175014738710625159406290759683845595032339250687875829817177134653500216582809970611098624936552530008854285376800591789161081286737522948329059619545694021928608975907173725249743807253505653899658615189956840757536445705113209169553976389553021721510865167715477325857615785372151005082488019941185702686182795040573175012942608523205129070030004155870349618931769646192585895474458189509250230322978261940894003014698052163469667052946595986086924157317615931861544521999117072373483516446451695458879430837792092467403896784867383054708186954569181114993645950881474156760189680792662201814097263227641028688237265515449900367292607292305020096313114953157179293942444035147968379641827754249961882310868292346836567784026049799810435599246898112888742809394145662287136172571387756618360855820879336473816370275081518276413328072492346265654581303908966648973073939276212970037638540840201745981904697757185519869110821486325034823050336095225287725174310831470508481137662928844222098763231105398212837260487406940682901810225026741344471039828839009562480468949603418925334678090333525418352412693975197129981354617293830372828082043665229548661177813600387874425487703924558987537529653510202191555046597544542500688776186187942183428755741924663116039488450868946376411240744174664928030107444086874838186220968455621362439239986693775527824884607212356090617082373160571075451689527956282456703578628529436929420105546171607813216528072267037937752118416140119977862018839981417115381435660276258339696648982249829660403211983232961698950146469679146973421098643837141549871670602775577269407897191637399560318161797858758391609380438705640984387764359588808696732315614442706408134448594410754643264703173745288036501741806348995557623330534964648084810540528185477461521739750738961425823692566926787548879207906597770973492157791242049403305239936424499535168039493263198869030876979603269210500394665569181376130901641703868716594027506414179739847178352533815526247843468726942005048711791121089382589657718257605341742495068808826219213753482727805191533784227390090529526622764318944855299473353111926961591085536432365549654737530915394288089355885839303007240529358772485061269906153067163765718491294861926888119881018869885093653340367560140455825557206087966580200426406709302987447248056501272454585703816376131706799321347828412599558524657405682694494610614531713112356521393417038688731825795866603641928912494221691481367108774511982111776321726870372162013048823851890554507144815393616612440890560480908600912487644435888233889618101424521589541309458487316203128974353357780031325989400966603510161078162388004950772334888806244338434084498942947452215363396792990053479910188467524436539744540650617090916948496944108342470842156036141156453335509847172508357547087125320963720035877448352932722144967494718720714407536568643484983677057387983177347437124105630260645687065082912976766417456758406017325892261633690361310547585655670711781978169585880695729332321338533553588880857084546142761452861609989624345461386062087099306176016421493631579855962953341838251021073046001153168617548298826703266487236019233040154730248798353035169000252630805625209334505545274800482078378652813654610690615351615275427961286717555728238462743226449487594118367112302375844878061547163424208496611887939096193874889926556405654684024370788478183476071442744732441654782782221318278995315182594988156639107044892687942552365561045579907468703429891480595512994856931930867228900767909594835524071631480930967012350754566029574789737493493151863664324942105300683173309692623089249984077902301765524275573336261959770467588070612898317979955522309719810188062639548016639363990510059126010321749969372108524138113921984095215421361595641088180025596387997395219131482710880664290394415222076027570136743188701762662531114442156230238190294177712414542759937737282384185162218611869585614040764271473980811233959319737335358986573840221067925826702196267920061634668931477993154687017091403307198549455833115354885819539285112562492279087236480848321094472903423622797889818680101159681294842434336994385010306458607038757593017025928474326117817478106771936595946066627959797071921117141250952670752965965978701630908166609598514911338103479802740080363004227329792565295198871058586805948709041226416042290037696493531756500613495758639139871047412803353542754905915357176581062144431009696000644562689685734611391493466624468230824637255584277189034151046125443762705436911890527306816298345006556680974395219699037210016328396215779456565193709783305165778500287950577241506490751419257124097853785578129584293999524997303027152229591430205423886033555939971294228970490521151609885979744813478859103702437458434778179668534600432830874716563704099639743214008608894512117715180168319398535423448845210424598168448370221684415559080980804340678049781536596252757147631605207505847957352123263664676404179262643184497188182170107054046502848445913328458396302819156584030122172936352553272691528297832610126758827842508714543958892057315060367633770905970361477097783114313278849430910306676708863502044314572386524634106836442202212021151292778423938567003898063972184659336445605356186844336080584582185714651772459469593380068215499097176356926176447968305976300532064198695535111321907477225352717762773156095147621953891200630842089798042909088517930946542645610642191060653234722250849063254154415745508603970644385846826095843208339038783846611558768792612176981974822566297079664186251014370003180399530826688581428580763062052785370274107121216222029227816808319452634669095370614750266851008774785883875816651660037586670250119216348770143008889895686130860893574648896056498411588087853556120063279473457746782480187701177756331288646845851612260597156339087025424508859726592311015437258486253375554339012862152190842201379563335785130263712984525678393018921642325779682159814572431722027089996968292776410626044239297763315528920699352495330561114276265341170606274172014898593313080185834894916927314621287661856771986673023138394567655143787366762501447502673618140779595844007498409166503447497390724692838095703099978367850187220522266432033549068950479811541582780074194746677302198766503735124318959048320676444975271416663839279743728583338527771976971978007334265054837086407971621280092626798103694015277743877220653742279581960443224874222671099106590420873893884090926594208331552674342879913903557030905936073659098919221103789732635346423496886009385161629342655528311425568124958648745437051430737575719761099390963746408746382950021432857793515177288310047120107573814781010362263883007677251235250688921763274696702596900570770253052043171103093644598988013764671718879265019539409987674488903601896465601000886798096202883557951423669372309370255338120669588896455142528596630459916435551015251514553055350976853617467796155218689496856343212932129996352438762811870037531176116601557749522875452872475103461907850502225673185131762045187602851247042940779673406710962517649131724509848490504952840007246998388454646984943487546714290630033365336102845906010490256440265479900762473005923666515254890682833408979852078695604445420945449534168353098119441427397540723206658498391556329296659581411500252080510831136945973010724950317098168072694832858324473390608834206704889115686335174209185096837239981047538037021895160947384574624601882592302622011908111853270305916253628756435164627828127968034288709496873882872611620213485574515327642301747819609801267227044868699537896082732314255012482609671228803082383802165318272910307535368057948638451604556234284103502127601617243110439802617494943938925100427905466066928555189589766645866048809985674614441291543091321357616225717493002172027274330991076322625369618844719882244671099929737952084774533989746328604554961418794901916067346455033412738922102791985243092098733857485204662409231765352324585322061984673392004804878448718504877215632872452748390453326047812343430445074361254964464076199906962328571749003781149736150207638445727595271878197958990011449736502656789187955525304061318796812138354702739954754627073006322910067677699078259609454111826980643469334413271112887818618684489934251993996830350192232376291258255408425502840289031298267746850910682465587993686752100283068180313984853225588665811758638599755125854052580148400852515598719041928171929517382984764853060803252408838762563929615201523144479898913563738685244052693347690851345103548891679842262193575081261037295343796882507657220562506447383229477768686810668376679886028467597849790067829708514731513640508885809937240963420288113454085315498926237796060271779516778825751893713325205485972478740794932955362814734680918677117652113823596363948898746647220652079600979819020197909158075878788072932383244829689527550589606115724913717405322962593697398900057461283461018817648046781018575048884714740467712348245229144051724602979621325710966751934983294231742138909411473090254632718052116527398421958737770714047711808201340187472633484435087782928195741765053811394353158643246911158110516333687519739518001846676794601808827409285481949694973603173645217494138842731014460077307880513692768806407501904452934429317441341437638414530293694483242733055637256186310916926324475067777890711594715392205155704468579161688994836936389917813907723302555542934552354295370852726740140266970621993363402802289096792441840255957377578237460794785273372106722129802177378815240278461560859211994932956484951655598823340538103042827557887755704743924584732663235404869765155285463688956698842616562459910587872910540510115229406106705063606188460948219274427265343630289730504736774895576158898837955704795514280246907928785483555900444472340249470953289963518891444690590214296202239546388731940723277028334328444902877730919874036638794497958257074044926795706834039459965447431994751216213147361271924368754086393647009647479704200539353453369490321229384450393677489489505897093387708185652824375069718791482017096104055138079491341641962448080306993823594484157904897163140602020024744616437557824704175484247397919558385160178584267144409010733461004895360117541072539577133644016445815762255318338946140154215635135445928002024211864904052876622658603198013666904559560740557551216374450626464860757346705298193793314750406346616602997807668656428384712768916724666365193845885338246867969428630858790914358466634296771738091662627412840735636863728805157954413546889526889858010647817359680677292761534503585965549857364379640676819049095017642582700775587749523326581229917261656937683909422326115660754447175284147320023260361057331318391618725362312554940213526358963665448689568584732577079952038573155131772673973299506193053569755145318825652632742603528975951831639715877447772559536588967359325209599753766049069651222215060395011165648259832126370180775769464815037178662971475407513788042109579865326417267517716826071456297710526010166014181002888561781384920848079627683893952899219974668759796679447185898099909665495046973220976605510451013480845293723137142299384313805610759688276574633346462494856438101610709205031061794141933078757292183713057530608344707562144480728574611293730021186867390901091744943674370916338472892881277284980583925100966204555983615159244870533065036842519666995718453426099044323076507020770801940238012213511854825748173411879763238775643069825736460207222439102860392183050515613884892496289600449801326367673380825053413829282009468785956628622639925544927643077450776566920846192234430932806621594928477117609787526441215076970085674630080106570703593003180291209122540809932312112346786431809121366645617323377835967900125889933563565458226825891351643383231919797557780241798006883274058724101127598542725193178256582708482309887251135912836871814069725519024947303547375220925341740116778084277619701370988823333647378307979858404923058101167946484300411288046667574648519441577931646460347352478945034877142776996978523060689430816088607968353552802916905288595958270620046714242196393411810146789329378582476394378965978899273468518738758859447828821257478441778880568163956360629700993558047006303101279469363238725148618646504365073240066969597900253715226999822625954859537171214096151212396108341896055689500419016405601366124614082078107403303603269395321589669418161915705835652795342315068440147282420634526120027585700833425450460257119028627531207940299369742811067911319308351502493720645756952994982083101254285421008777778237159614143621137726571759988862728726532831612118689668215485781472987535043857976256302670282320020264664081603854303514186421510570653359119900983473990485592127968186275257549586618410816085050112349838988210487982151942939155247406401015001400311349440461997602340814612404466488328654250135515242024814234659967639619830996189469769908435508881715742194573218038072784018802882424998691194486578248466043298772797702987197844906162087891403011598078835997677225502921940467816450055763152642922751400516673504214079264310417902676316044892376517768031142779267725350643231967108593534519540591932827451260662620012201428825596658547111753959753066363805405085908520496749857767918977680552858428752681799638238076604918037774603887208393023230549737336390528900000817930525697292514532356424313601639572324276928344026553469405430682473469049538738155346908877202696691647345908903757490195206250233750729869981136993373778893584976999505842446807656305407588472621181066435639947734260512568840383133870914152866590618606237028813491067329247403120018710704529037508268478808707702188992923781118209319583101151443711946316380047846380008136241184016995084349093058989417599717267319254777258192808302715960049429605251906994829582583259124878052205813813743873541664630651904932206662393544116635914951284105404104563454646843723728375184384963407457869375710602523069939884590137249263099727327656080432935237625505421338378786342868742633243533737534740083947871602415611207882536156416356860840320801806044417202303741343674205761389582840596707028450009595147865368061161207672852706317162358195552907712815395052418532598387525199421915918922307789471124001191131975652401648396335042675920740380116333703329725332646068929241673363424994702973202142361288905326835683229534218648770800343202297687046336586883755570612206706723775388704431537089202561811251466884897046105546663733174030540944866688676952851235522343919512281953707563261773320205459265017334186436739492295181534366824103794823826538554567495283441073817381027602493746663226382949417017889844999222270812417640116327069389539790294903717099830240820319624678415985075626301963561380450504119463509747553799120016138187621898644258188037593025286420140174519910023278874761997688393479668015003768986011938504212919358760685225695598789196687566507304760107789568003555477667583874155596272912425935581016499545630419992573717199575530453377484343176254807067461949524318485989179583254015529546423739728294190995924691108246287796925901041108365706370071303644659751116496023890659076041303975404247530621872716262065108018105535797080211491580254394376347046154947636768392001465551705405454001290993092656387705087200999897335073393591849450203519516721717769849423184585702029199370426313939069658419683187125335394433386257493565416203053482781868458781095142100707543003028822206536103026114134686602485073699394545614120783598886981654863168796692228246034772902843121492524647508889483969057592568872392299232702061370973212308557291055072464081853471906286040335014185315513265887423074472912442869633066950004715085129174648403174322479434911688601387421345275028688615050604293411331024267590293827774970002941477172945176826737897577153170685962584180604064543917692598340719169382598179520513164654463572697030289167599749814282795865124681687997835676877686191724997228609338267936754297542489126386920208933855113028943724173335559264864403132157772387679666147861084805639362593430751043314194273608861782011089515537525763782639389026536692405624898281810677360407691862974931748886629153577547879023347210279374490545572336549526851916132169418221821531144293822192306320590218109568481684017264788748571409210917830502476001331656045871729625714120041285969331623949800459181382310303250434034211241048869149476743224106717468340151651483640891815547601443047506882833678603550560409292440706559387089185086883651793098575938265287554719892084716577916622837642997343257021857577928961586077103053634248067711745137817428930939926370266341074981191931908648309814518960632784741103181969338546109831460956623600098965888478184527190847161359065074611868118173243262095707233693241641219493713725641675281706352835074106261790819959291787818015211863780092776906633024199805040832746965405994725338004057697453622088412664453174074290080665239996693446936251441070934746477998758079590287384989104954511349436592243964695928362962420501652858240696645623416308880653455871698870312736602544261711756862459372886290329912079680928236577615304783167315380926849520571767130495383518781230694311000160178316861263917211460394791346550855661519207876920833299273537520988751822549608733319122803878183173315058732633743492125551481616445424569050149487464604633146344057059394445789895870511828884805539469526019268742276079965427470075101518150533647977876741792142798564490990778722423619576098225076552404517365105217018796065345393250854465675041418633819291119367081268454526290642398583544903531986517531927196013739704534822364402900324564673157865281263696048452911055488990328582661540895603687050292585489085268754617906513886313400075869650492756339353606598451161135783738340069955407565215953292214459777414519803373084557171469867270922928926896486474504122952545073626101286965587411387289086141907310245611497733619529113213226938062391718767215153496751734817670527137861672923459407741283485479443214551787207072810691810882509998266203050771215631817572354983249770393180745380914224960898041657181890766951861777884516266412041841957163074588659791080234521360579518131205500917195491026372987179048659275964879301418389152595384046370414200938654316428924259862148205907179230459532159226176614969876111276345883306018064058045071254884567578960033869100881269485457329858191381756129388071060813484109085022115866101695815951378344629312738797784480600299563914563452649007497933605645951071187310982484983355646480138422822002509528974176438106608005548538675934972022874287943569220566583442347638371790096362216061838093098258747378114812177966318012775734761797175428663288499507978032569140888529088875482767189479122107481013172889716346441805647934990545804656787221981383629688234740571765343259730471521449330832801718344199742523512353711505292000643558815470211766547210230379661217604777974475759095742598059518112360444792889747670603259229576147535537394487277437456843193424712599577559443929858170573740899472791063317611714642392126108521604279278125951769445571273137192784851342854182393147914557141322599191727627815395262622253134607867269475633676291985213776226174144669960059091646190883850277793217719298773295696431966310284392341679321128113735764701120403722448931907415652504759213163860224407317462582667306568140477876558342160453179017597368709027685774568877933687254476443201500927103102263813281648036481957156271624634877789138103142679022992574140876166768912938214140790356225556364284156779170895529657487811746031652218763255397309261504027414096987620839627650009245213690306441830731733228528043255743259231099613358339343657408468339578667723994386286041748083483951377353207108042451348208190759167392761848205761051962772267197216225570196946916345371383235722897771661231574451668918449683508899623392676538687392856933066980153250100556879152510107915147334666443047684055672636092442834635344284786615767162188128569043500682354535778973311055034747872313893518268151983845755284744379064745553397621887596269125188566680033883671583255610122814495305424572529170559696574159382191866022798500540962247099903028427743694989768063662209939019471833971407227710379418380829568708706784871536223429013433820006113718452591427729358452566242406770704453878486063763481067620646613240165558155952702804879949059325392433388131818244838453529684362050704347251676291490090256135316070857173108155925673795492994871720336850366545498052621651567990121673192713952452156163118415730703902289914279276725425633891629597161634153655040471045587641896209700917027867857404047098546985849631229367592397919033232103017255044209051534644399951143338585612796673384486081846134707524748222012938438161482154925621768622895963598778727016717606623198975587615750902004478786958754025000966594710054489894342788895985802780916113090045795554434986639064595707722893591557166838387305651286841648697288615934114933782952785070169059547484860729513027581592073460606169862024207647723137747340143509996053622980346546759483831534786129154247317437789398819240340482856870054376892928069792040063109221865679133461736702632914339543301940707798048937087070743268426202274964467190519846357142098963602856714104270960468537794032475108286212581718532198629525892452936931009935649861058583987236618918715831173331477689773785286878019822624553265604881509332157481093234782584322118615209663126562115607897383676743319759394740247518206741045937994862489038534391909719560880955343249036167049373062680957208785761481714194762213060964951189477135245107372378477589575971959616902997566843296672589268472607491134459310519396122092384225671018993086843720162819636925843551231906883232039411729728948320453131491800923591781067133867943196105955798121372163371087321959654198556316159096160430195002256790708610074458646028377601178882875600528877924504876828800007901137628177841981898986190453944252103586502311683872161418671460617861883388761215846792434400830614829905918717603543783700275162684775785049112407083322995464804904644824515546675870745924094783149968468527444273774673902541585077359705417130301376780766703854675387929993422066197431347428201606213262863319739139338953933553757920264776128793735583093556737831495182341951412348585461775047355338064931533380674421912081556816488623405448028116515261984513155579372441976346997298876345495449196349748956135325784081296323995313549619160342543876157293706955248531266748205121656444463436190689183760942987962704394402214469540054234219986387558411091501862106556981497469772870644458828357849439567136581248407663459804477357211095130343357868033773691657995768180990618066791108950965996161591993408694986291633661321368647500744540009777928396799198408191439524805875159723583107213911963579844839665519997203382199591355014521876321639351954796287207713403544569091561651282369827486432825653860521746344985669672215897878778439203448127617978134263498316585775334753738818809807557303060157290207455641685425673236530076365057699755794599585530754292391086636815525420846274600920562768596097647612211940304039724358586742251928845711977335040174087828249622622218408941627459608867446244270208416042095393016135674204286177456292573874665466620660442382340647827725855204634642006377517103561823932520861410477041752492082435915348243434840936374676384876489560864720488583849492714206671013311486530831303167686853369079031213306726592293018399302681600784592313435699320691762073155558920381540323828094883342154298778348708161477264980477571467478623514965087024359752573123969311564988964167836140205695155825733192372445246159494671930197163611832490229423529725107872256853459204825651632140886357694321607051874518720414107224211421067060760193925746802398810508740429832372907496867514365038708130242366049985902547387958802942210019024369746503956723952631331344512851331628087947790223632923363508521660781111659572077556975879350124358750547050126786466524084525847094202520540792878007017316539645775379465257210126087525855945064475749261402700225819224428932886574262720265391425980944505078230127801370290468231222351658348211045495594121921380448576350310129837352344464194293281081027090729167912096309177713063316869979201608907221268705610814371996978322884681893026632134946037541908720675668516036640860745565467573481450709751256235893198142495034913437156196025866801801002512307387060920706855149848370100631652222821312724720090579085688522968447204574679787379495384626274182365038312468518516070684857058610556973195267751663778329677663139901889135559878213641239706631930580463760450577039934823297732073293621797862699084563235558470264907331059677762109038536547648793696365536124037453951600732637676360385289075571430068869840866806207177197037358618861151679142433233225710423093715080826947493005068346097882384665808354007727487712624265722365052380131166875474847094677260035930396331723887617219092997960717822746836359935067531316257387296915187787729765581527486569949999275385755755133827787292531380920831310383546976851818993052260013112925335460888704460365138093140076216752515666410803580368831680705714471529223220491475712317920625019883219863718954087891248238438435368981189404651749593745617320630642680883165130186077772589539597358212883288578833778842220492916843043643570461464710920819682844068591691430718909854103147302380304745777465160499708655388110198874847818691642115508041990276869942355528740202305161142759471930381163633308633754341923833559035540252501573623911354938006957398925061250754008508756734718152176793584492023217742382606443956993519130071001675221515560071635830792645417302877108214901405835915220909376164927396606985296220022676656985824167371280886367285786155580439358527946522627564757812979722816301820690347349724985429800377520790878559318272411764325600294508453831866156411639390355608194516784343876631022314693535333650300493055745037744930774791079896427128082555339628127589129858395927894661180295142308470754556253736918975281420977853664140271009746367625673371964919717235713538641873758594747807223630899829449719325896531459066653996448256396166602342431295742464111781227169109065182859136184229129440183952346979741702605272996759067176529423877986007217524538230986611403270064240328998066436239831199571604905864775339381521217426524138108501589111681881890392183060762125679936352842715302967593092591255598054547957495780259215484865162725637006195809254371841329454928363584664260294616644149765221082781844107571648918301695724510604655896148820243157156469963594430883732269465003645121950870895727309578826974657849132411949235502672587774332907336251750220440949735302198783370125220935045804002899605571434311639290616685725355513314209523203397022544622597332018871313367596024159374818973271840355967328773582691878586677046344331164197551178159372699326768497471094484176694621458855407902877536028773441214601596662247550665909787672451363041598051427071935237553126644949955389581766568914158339433679842614169043911498598560984386189642760864482319398891907749961898460467889475686233954460110531690337684162456354213179223223592377436671485818995920482490012734428885451563052440071378400903647623855571981676912156023371845267079988036767508303131068099935541925731208944730201251022159310470943567411170313297041634413577213564606166062768736488541059426638434794429029427117926738294236733858874107864212935259176527275140888553142677881946511847062325298062666628045459497416274633862926826953175727865174615809401595344623265477288510847179671483779847248943846603544774250317239154844601290040779130792354290745420623438101436982075188438304672763442145737347925855270967804567169426898407299617793742384946544296243351898104886130168018047579880886733208967447511205905312250772111117577989162969922952443135082013055250336282073184864090018598684804484012733222611436888985463140616746249925496286248774213969160879495749438719940140271422233695237153349127494178389234913363653942532417662217366029819707022483777503682629945927705027552020752490963539135921198665410646933763626125666997394676597349494142003509762828726749016634156479836949390828710625655542906835453993367477134728465431605239634063714910928277786222531866663879584874254635412580837769988149047125238823882281823077264605325178990969572492219274500425063605161162643595219960800744942571936111679967709204954330929580523076993387044434006311956350023488154225454207159561518878123224698130609418606798240267619134660044130673646197242295539208377264025899845237089526298616669073438241223651693651640687061149429086536457014456935962648683878637204346990363341369156209974503177132888911736298239889755298469729974994558989996465695740636203095844809085656417783544377849438660451301281967669263829220494197510522708845667640853095795296477015858722617819177140820310700498425752779687124474163024181597240734553281874672856837157660267716455696035211660333779608266534971744019581003695670507310296354268485981560301315082524784282154046025917795961965387106195329061921885383773730124341812706858523390363280969727896847559995895668250372280530056438813750693422042336468996418286710355386315998238254530013906736090361479555115653485032300607185436583408247434894391436530128577216918409284624347892038478962688745322797100332272636702889505707909795965018394104973601721103020885989873257339689086469813481117148997463989179962315789903394818545976512779126762281045984997358412690535196285863460873347251722926232720160415558214288452789669903737303260228947624620326738588587191473105219036693113994060116297507280002520098748482351561485896104884556866557352265047056904386194064322386737153136164944973679203872170924461583610119690746376906769644052673578452776048668802869196999252594137176419131977115455265547972933532923803991168009716277475249832102509287526892862529958726375065478528759934292353680511735820735323880576467972240002120232321043259055357144769122158170760408597639741590694391104390667262131699320721961823409367702408163495394532308626701467789588713124107709351868125470230196671649374556999522623798002876721115303048201220792715374195094834900465617100718259715245894555237379595530477546500045865832711537754285782520417170638452673975686708239826274190482153414597268962639353198336159547658101819392837117069986465518505560576564442190518558456204325021213301346574381018008151889962488901865942899641378157293563018287153627208574246609518819139213940271109832672202609712708097024934909970551721856175851991320374207000687508616214076904315428119428826669624009076331101540970485428912094220993697424319200522785789831802478096592596552719698319006839204380271309675768634235969341242554477404933849609707419154620907043883617642974426100131694896930903667477380676996051573963242907791797418213153188603549830885901759751378189577721701496637493047473316442026008801589958568299616870822713095574225243474927415809928572076794376075686796624344693717062918750691369916340232024413844364503200970279742649251993995249016208731687263212371811062613406545623757723919557139261035841069754735823721642713697473080341608397948262195860345600280670523108512049804448700119567616051124273445490278751099155588969666189613525491410997734423485416880222104197325128386724114133043218633307996051074563793273679135164966213174896305999360308182198738977104302801388943951210807676182764786855072118755600624172583542008614244078328378503564503580132649530501475829586112644130780680143191532253730956722530239609005970513282137521038651247354982434565173121358005672937128193410112302910825137958507995492323459404089536876071695295166988292593152024749074110266251998579955509957346949774816940173031756771067647078448867251615364274661238391975293021885467065740945223450462058832630298607619799103142860800873479141845505448073441186129409121809354906938741674429145075854746480211419152529016963556753411442167109314864370661039032098715655856317323460309829064561430807346068541757850088163214305030504432050300821180659845981238640813019064563047567153371083890534854840383034115202317819828207193440305745400429713086167693670385390342054627609513029487269790493239058237656263786785589146348204514078093815884268756680410810516243169142745089827398002146258258507571593571495906525618501969411496898830800671756618584871277778795827886921021060042129171043645952427618297646781565738875143349703415519715659275716240545840197050825732038786293864227444495364951693725417673393967403701147186908263329427471239361382220805200287817625309395130954877795510702269266088313518704570811332228990997352382314087413910179536442672169629551127673889923303589506205376985452706484996166229753641064209127638541062716692059735751451729910713374690381303922182158048372566423154812794875102303670947857242815949890877462138542364473333073985570641251209910762006190175049001578788305747464110585545575372318247760800448504253206075788242145429352737793593838213900658431031632866681320422024988248206191243739876361832777873134470297134895392004259394881514650560728270433713384905187255295821282598052513749849643017076932807176196630745591281864417521641598732493129292141178511033569597653431222740886227610878542569323400333009736348052344882682083478780325301927085237280620337408754201427340450871348425458013467025403831365570470724404056766316908823605251016716446486681861589772137414664650344526413542362653238084317063654696771486856229408928022964733399416264613273557594588158455126785172425951161899668480520511379353368530680373337528703109171358481945707664226385077531037712393944059294735070187556692120455648611893739575911781324482813955419725197540696854518553902444616443424335520587826212241268679158893947167955225313972524160052269852245062819916826425667473703708922133984078254511337234015357817077287059048761614765878147768651624967602773720812497898717854832305617215282731030298352276918024200785636862523122588276561349291850694471292786522443596650044297928846989986501586405416563010370597684580584549643398523011159902588076847886695516702904997641418799851013281958017053960582057252332472638835523738611394960496705545368741417902789181206707299863641167267196874115911423568464235433198355596153282558820446724372211073845015089562047882979672187979848246269387436515539802928771356955513096978958523703792403749076292863795023530481694355345933253340543538913219176664121944592666065727472338129889815266676974500221239661198102907804578245364606688784865312426323022746318804597491931189777504461376830988014711421586349892922737582610543993189704230468199123283471739721237692625713790910219599056614679606212436059142429534527871047118213622029224899649924053166538000369888095199728085906116951730713920387846647182529170120153762693891758569818643253401875842922547650783793463626419108854749044288193394196846772923234818888170363108692667721487526195905383281185387406177000403615949845799552332176014673117144249253878076088549374476837975053308736557858015181263131981976655255855810481849182249654832832856702952773426210879667562971938373749292646581247597080660475287310033853637262030415097551025219845097263178127143857233418856230461705230003813108415827960277256378821012120862801505317094459813670117150715569068623165944456765669681963315196205317490853749128093947885699534466649284965661913240882167440990645275325559295683428189722046892763887935269714414883281394744553137618368140257816472955547000344549549692479355469401584107342514000989419644309905463512589807722093302474629328307222324826226119628011557338359483233867430252046986342590434201184943274086357887903454400337072939873267806606941487246018509088757952407343251699796426569953357701882236224974482442112783507666681194346289414271156190953495513270710487346983191239132887461542707619199660016189538303218905924582703652898864880674661833457527983001393772472931517800481401380649401645965866146062777048372084155101397915409651260610698759874846565439923469162090833805434774032326921175284129132873461330763525400647509285091853566634943110327895436539142214781036770353501008723327341056883494965868071061363544315069021538912883308246334057627867810552437431508709544367341271838569240914281682411947699599499784920831787746633589705730179270163136248428220962870023190235443731035943265768892421460813526690744909388475908550689498972282355929651712790128222144673306117517167857291867774387235183079994967337478774433751885004679488396899087830038333626253835927790806531961769033606881962565142076609996629207497737701773017117967311978225868326772991925246637643768592568036709382629897918815616105200398228951866409808128243216577070869075756605460945886088479720192199488472198901086869328651389420243400806168452402310768450499242293862010445938843620901958801190073560748873155998756002037933592496781358859858326712837715250708984056839631989007574440163835328375169171775057480269940204841526145038124444476294821600143680768752134261942680988322853598122289685369625930250777157296716442988056578782690264107571190152780022611255887483609570982762304664549604779272980406351424769236340580776842397547601970136399066913639121332914470739396725715814054615084036906801370160587895862279724508238108306818547066155934607119864165304514365445239116928120113566203774120787440972950121634512001770456526954691343038022156985346304682830241696632441996251727950876688324086808804228643959501726191501268934287940750327821445160114769046702173649247736382328518882694511244377990958737139990416005865734003343758906452091891146894051630696260832582647136308631974342968445626159552163167693058279459026957121504824807693153719926832546945479667253585222012920295102491010834390634616404457807237177520837801420842992228866147318319067787837152064550680221486379186158460519337525602965521691878815059360876484920517903331695996881946398622107553221089530028020246549141492254459315743538619748941898189211941475129650245799231447480664840271843078107170293710590370575431446749488807759825387373004143590333369672926626464601723305431656747053227687116441734589004489286567199886606440542456347122053437815000269388526506917290258394713881333012852155195135410883006096311526607996135311229825354511397854528867178055403374826116811820832934431751718921470099430105729170830726020218496299479769513009987405615399493618758291820049403369411081746815471904836490069563709875944833038169465035926044214768333411659451579958089255752932273791421659730131798234395759360305678182050621313986131479725040936004301142173097673176828179888230733966839105386897174778569340911346522665476925835594101142539765147760615149671540849048740419016893421815923117624378113975466338598005416886324915709311323621118119364159516423454711914055492506362626104510225294501957794900690764774729134105407232554973896143810789414832784887250666646234816081933704385230582089295631486044304286558563981963007253091172112516235835811079478611189826486118034905205568510901594195341852724271395130356655485742444032969978448827951620810985013838681193985352913062027356716426710419500467694414220488536480483482619873775422211446369284869914218903690049628323053533511373536572994880870015643020608722699621249395113335601824520701858825827884905072967291900253251484236958323513665595963067013563505383562447689467653692244298250514978352329779300329395672814280985329350037646826757046105300249551888934842708272664841225727239853340696648052563025422289689475939340268868423220880759923721906936848054330198685112380241263228315322380741336479304965598349838373391676080577884420707697193156702837815979033400043414935168258397288307478903751632980033873947359836239445198407478901845071025508691067414591223985965470617772327159290005395070179997106182129871106989864593023186456897075148869865142154897532173059328104480620109461671765248575946661133855538669434667844683241581113097000320125086097087776681450102991503025567616924371563350485278103920840557415048576548789902204248123900789361398851646500627268813003710616659970557093388947275662806610083690038972913070807763465199354747956949072166438614703850273427024331090050467849602125091852767207744585432589926339211799939707421724172064688989694308380995271595903291083639852903812000887620824979197047671212329717101893909225995508076443890775553336927980257716536331704797729690555266056334635229561668643574825030945088276197869455850690710487205228528685044634989522852667321835219780172488957080200926473618362229862325002562614861267860302457988218525504612611692151874775785796583101882091570683369665839549910990800156552581084311163385897450506391410832954013584062580479133536737321654467743616916584527999872901583248370411395688858142130351739733369393608119253766578639797492510166462720430784932084628610432179007172524302625839788915082080955807632636713219071539173140084092750046404685212232185153065816984774393139921795034218037271798866945523602108989979425946684861563654978348772627662113071989004834281825334807108358770995397135725542757857155415931888724062737042044087515668906996251393189667361486464824859069986669749034955887593228342477935110664495296888519793560803900366774098981928414142096273367674920253219498578192265396120002637983149470175087864220486068863309984729242924274943122072296652003791592314909380568999177953056870582524363166086838759705345891910357402426987717159014676186528344269633282627039948024214323347059250281067477520931297951652295170061862129381864903235487647057153751685471999402874797077279968565192760365871706741720183240609973537827750574611624967679751127370384595782633169358085599096671239453308154052124812590248971162087134800699017343342749665883734729626368713615313032520526236549880661483043507334089283005560528288397290707090669051031280413714409949482319667359398993639442203403275081309776340141200765906783935068668634101599452718095427125040568436692244083374072023950840968283726279402550200559206563624951218045815204801445961578214893912146030670693329139712810369338021060549163989539465477679221545280042782310455848445455869833651690797172313235074812266028539709948529756583425708315425142771861808884398856381780635896512666781734149185279631523672543145243410657245925489407599920044896044666076247253540104275624778526440138191196931999481133519085348486130715847282931523817686706653561508106366301339690532863541030362007454000747011895238034515664478956935991461939194378240247548217041913364810223467652989305561098223169683321328134958490284484208978905018125138366195520408411381625108027365239000824229451850657713931207580437498089534649034117308849740008767492884247259610032230895909431390632429208942799606986449746536387793352858743403290518651639000127731042724648726265671852517888968888877683484669573874999654096117348608251936462704611905359691325004721312448115977638370733529974350832816267554374517887349547886589146408338070208741726289393715006974990230719017970115065150981664769483366543375703003174118277479542593187365585430637321369890843725769895928320523888398589539116274967454169049952689123957267866457615119917863004993466653635288416625672352144914881497369467576563236858328926516828231614265728423034447750557580979989609112257000517112681841966286826415638222236242005521523274518455139993360434137908725698866730305005193012507986193894342397311856167012684014431164455695447974578799824543267605736916035022127074051649961671917159491597893457354030779023335864779145461882063911345048848057176430105069643192940009146569002533379101954813148959909916735612864926175824707573498006834592892374788470440693404202260643890554867833599343916412345080648356401127366736229679921244900878325164306842574466262947202756591778984395266650809321559565387270559253311664770238930831480667384707527522086849703593337880619072346576943602072099734591494676834981936705604508287122461554793012780354575373335720028240695288329509134470816360769117979962569001479417992231736113622017978032189959770855022522195499419124572357657295635045786892656424470813435836313604787176484728348060262213043873977922263648629556587845647884393134602961585280301598060900243615707296093968926277249147031738694429144438664009517109886800071435558505344213781107166263761219982037767666757961643758813294967953445502507318072504610037523827674155794992502028922804417901632908886628091215501414189283799179238972888179884718731138343173538646809342165306769055752241846773877383748033969116770129484644531103340751831315648386739928346762292702095621872988499410183264295970383994510235823380608552231230936053466941268037159902456189621304111495137079054410053611404244529607572667753431102449920527990142200642511797272983449157920902294304735064698212935611140085363339002654420271903330833256399692184404171533775799759402789742302260969936759433581659715419331034931834216268188539964972062746015950209743150189330930842622355833323497984347990530653269995040137576592508844629780766860807331117968944764368511668247238059771872466210346695854085632694836372660385813072056749285561131152579002687571647645592248206639514089979931304613882133001497188047634343321201384987008724601374622590314560205577569388660279352420087488601026140137115193380089819878971986840252629136412834199848488064814545982516865276724644741871365807439059497756114480392385836329657967251196185056093426651283325491991133827389280054703788823252493419772573266240788344242528195193159364554302362570726985386723155380520207840413753929196355668266935177667381895896506063479053980244183548791785882040599289419001622196979746219196212581865779232475829295958728179704606884935788430276092178964600009019236723245039023736841601853815248395482246387003948806526569834270462377616566383190254580069905189541873830319166465906033372458742377422648047795155062570379978240995566730935742501517346886193460259714685015288114988276057560439430968821352469111684058249156581290923452836479549083246431963811331842402468330877960808124890650375897250730237769071299248212416678783824643452290862901363011520428188883830017040043065399301006652467161769570481695505015915634185984116834147549234893304580265919471709369693120049762227345250322693494083211433589165842952934176435667976013621799822960403408240471182155182174166751640448767844791537480009600457258717907399226417600080517293359402703013862492779952453775388427464172408922583173590139161533075621038651625705640955360380453561865761445855269906394555867316534005871241044680982689180429538301826309558082787310219945838420226697138556135607701218315469039952886826526039430646606579441549956924101612183407374230106121653263716005206306659784612767331220537229364161365966921059254856014597717659181414747973502394431671619457079328700377978624392789338478077950734499682084743252436760066889223371365708232114115803717680995886417322429544369624473279607492199540812618521209964744514710130651877748653303163217363789013764619411042159024184112024252820532400085198705828425640459786283363206281592061897689969343625232199115179608800895109556566785726186400575247510719923125600432719837228925759640097090409919971972527608090129145472154670753358165928442765616082748523767987939527306225765057384060159394714048489880052741958050760068324803311886222618785160969565954154245730502843599057139947953084258354816427181469944272247123372124249374076868139440543497365485522675208076451719863087073259398245280124160925180333969214357236969968678688812818171284722188529413665671775007649835705477070218510843220502945267421969172766506355585106311210865919384133785958337521543797076347572473485264196677002408875611908305651032120356339475362608845072013907225604111542084275637383582376511684903068434764717641475815485297610556308936681686501905878994564227291591431740228323721069396687159978996386007755492628373484275040944498745313154465333936241298595096655805382488443077057527934257327839220980623858179422834130411865844429535521778995591042622026460314579793129219657858115189855501052410051504905069235758286892206805247596912459581431460607608223088194993565940721174293368392833943849253180628073107334063817722637267457701862764735263045066478867467333553017074494961076424412677562792111723743284505976527080696395706268540037663966200724637245890428830882257992657580961541983061941280063021859377405521524840033852898524476933034053068782409207608919178850668050284572908017295020909185866290276243969377957841015732928426729414884319298076598742177605044177497221195718480449848359811098673503583037274860016063651030476729001802354889709430600654818816821926304751286712090623637467945293512717701433355851381511826337837485425439693998979196897373710807400113656698730161712689494183322680713026247356934719568747264668624309139363389609043729981911519140851425252347627024489379234787066878548254031063012983798871778141849912496865228064258312809942486209777363337633587395577014845449353777745982259589145428716318090677306734527698622279386940682895217992913916260294108327503669631508464387433600573799713639596889473485175837540359946922263973283130450577297611513541093408105549722073296628190301130173513300438750867804772799254674501946808238122833131486871737731622617257742415363721698634387189762383921668270856013177292928155330857145538861412443385795414556114221873015443449266691098581373124661593900419940197015007384218974862438743361821495085039947839788351816674699674556456334554327540064105435815839096481284267954585144297329762002590488229861620898574098028662296924496280133879376182096233772012613635704862552281735762511977663544183569886994679072008708684607096219361265595319643942461100510074007091393691424935207794400783494343197657209967349139238451850198456913112121803148462821872478730049013079825112484676856106182536105950940413028232040361812391809649111330727041948795118966485483686111652894314677301558427828384673678385290290809331237003419741984198154046636773720868160547341958969179521995048233473463023161363810428699255629017494497418208639675706962151097231979412364881172827027510494031025607771001476861082488737011453579015476827863093340624951556359641576713079412128212073436408502536749789884008918580346830159608031217658053189202530069211071340069241239440720335440451863785312019317619622908857521910317898488954199514516969278526540119854916545509258854422513817411133551134251637096828705901896555742989910592181882507999575558205519229297849336380583542320302481179164240831983681661423444568093453043060900096746272683441350067369541169563741517790455592339010372078217780458033700316965198660422443117020116003593819421490908084155698660232727562247987226510888035253994927409781045432730568830671821237884498571396852054243648255909760532598514554456396356372691072466047539197574644554473377709429618490277867720620446727362555252820086085422429569812983015996682057146997937395329638664592748157775864591425049160987571106853097359420975365073018348832592882193387455103081045989601554369193877848781036557250198542246439380548311420882995060929378383610907129855461868028337347399402732070100571083662952417511745204226371743100631388232563210832715355372897965074717088727224582207971519516944325759000353894369772869878588706730446967943087797001782859536756439643960869719047557710116584789395804968147495050249412635550661013389778530246577650749298989682699174644029830583105558177003963783412680251823376077146840482610877658778268989411470674592275414750883330769539854871235094918155716901706598466488859184741205618633553086631282845744340587027139235196502238512936036989099391158365919234343456160966533845256854676059797783253025630380137823673173950977617993231523427968963047642371180834427497000408218623033357024093541242208443746887003325228563377929850097615505134307235132747245934001034755356797699437442694201531805379789796238535357556292594301902383471303188377513174183262127519120274890380899444774385754562159793864106635645695116730917941405701142447701508962966433837838926910395329288209069372301089067007893830839371443846143366666531829633691821280482121607355203157695594483899336929329008086774917622199017659709713382454112367213840562735802803065423709488009956810345296031216486587541478781712199441726276373386655197512957673528394807357047575463941597589885810213909797193141449173481542607225535248655088019416319820260515212952943217295416400155885679037229882812446060656009840130626167523298351752979905683931745228458122361043055022042960721290787909327037062810957663441025568377480101177967962365151799842603334673167389604332490425242282439429849281847517200355136808273585470656496715367786716205782399601354575205325765328912002042692021106153424809991670391415664472146386863144599251559131247213375812704134850492705431731105531458357849867818047427453376996033147058111552665624651216611762074494942085010987166244204571226323214705105576009090644665757001820682132505023885043400248978665157152062612752847380611126957129284083454501060315255431565901196010448790015298262132859321515959333453506822383588361545627213316784193872398225084572929926833769537313671891488588971531915038366286037866173550320829252483129502967383047845262103136260824458898637176078604571649186655991345281790795459428585799525673504977515551086221634848536504029705608003699850596773643432187293799297158951919463675847528580080074517464066563921974534819805077709023543868871057736881171278440737438580314190528935365541774827001597274047483113207670744185852485647796004890244906887625685450211081428227369653706791383928713942200989093284744223563602361218295341959800271860029415251137998596541750303482347459533615263294157057617738416577320346717383097717552356398777524143432843193440294322312022898080008374388059225721939230658299052963097368787175727121173382179551003375963210613309582861367344732545225074097547894391751800416136903857511026835744378576757806963256945266664845968578431880935892859639633168178787501780435424328956346462305972490760252252649463257911942293496521484724552407962973640916512858149523322382535182551051111251289084171405731685059665633225857024336980531339959869665102818429056937129170107367564470785638372233842879663944233941095079965116059242597990066559199699707463611674019757563121258909623076752437405551353264670821700028039641483830911457354048363481361480246642861925269354431985576296742723262001207391067914917640475455021038190875611268710067014955747759642443405145733698792421513012309205962271846459382131529307900940423627812344606079290682606387962388732140053842299204105366461543369486060485579534251352740555048362704530750984068340838259186668513002998335542033696876320348765175288807183101877109532760251502726896107852952208103922276150103032377899819500567268769792869088460765539795467994374537126353715326458735571826381234622844614177946383798910425865422639230505920020682779552692251082907877150554633052876562275723429784493833739038324258278443760408397415906917700025439588247267696003427437876991586525696504821357952329362946938072766438357410331242509239798958022999680308455262748555241022690917664803860604386445754962293577410265849152458791933392657410674337988656810740624108050500386784141138155867703335665139485345748177600916500393201263011380556649406684036937743687994282559633085696089707844861745819550766232474470240703433674186405441869957381066917638805493986366983820165985902767714247172265442805911135561942059477941658887413962181766844290603051694438772551865509467124066856193139009326665708569715842777687785423190014544810840172420770338198422504994091731206134718942479873603796075678714102706084925754435418286170466844627539568851401358132998812129098812961123802462161134166336079151787678706004122011697923485084048646868108171175386911032556441176339841686913624312606957177003080281431502683381128861748850418120138637459474912556825094325160708674151930974712572127754121961161427290826043864221355994054912236646282549676901544954044609479138445230986370029775365916806461664519376076700105556230432495014459672600733840370269544353027350947890808450234369091650345030978019627558445111382200007964159221732340716327159891609427337337287942530013184093075406509068998096606939069608734649999582948536102209841811301644226748089202873045340526353654088465172380786972157429444957729298461737033941498853632777067775613197259785324305795400490313747619319122871374441788987813218075387934569780229562993111280059902377037576296344697499236115507185439017966084092490901991643079279497598310718300399964043607570787003256210786055918935117866889848930033029403363288016849686816810196456283237803592560017478223962998296204981047687865186675301881744328585696836757834887420039665864667163321765326527849866113731776053295590509039209120975054296931348345803510279972653186362549423586959921670465370113328965841220718878604284125943485586955513152796762986490654405154212466502479981562271473992473028445343995116945185087656062656682529593809078197245790634556326047550938516969232365459265876615041975650283230559969683677495155021969117170975662192856650059647455205160497635132312714250642409308271765250215356872854689436819500887178030503730896542789298996471020557118542900476295255021709657826752659985324304134946151779559915597675931375070395288368549921098699336083884924874473489837870462905557208618338615535616817313795703729618201655718114854422393833630100495202923605331196144785265857516637502496985745127374282669380742202409784480439553824687280975959366523797954076347822290747922146757748178823181238363028700213536948558238939081639711999596281698106263443800519947087281352907913281643708569987085278077934383096183809060188415682895808052067868365800951706338787390647177011169421054063661716086154217841630245129020872158646853769689586033444281422569161141085440576686228398112373765921703582481411458266708362545569913728409295797289355492421544418578379486614127707132938725649209619256718600864571241748678946858670682244071661950793603584182929589176929920910267083812001523030203323635797847053432878846816092559697152929148001673951284118181386386714944473851306064209562522146598774121816230250771082690699924463359680790644505909917270820702212984653826773321480905658002449173266763577682071375021083261710342336302871149578749616216190839829226787026073304874319331482598296213988722791257015395533966584334297564026258734917159872210715674853720869026831971830597740980590053226216706132477515783151164657841343339730592828682899319381976769515142114476177525910293914899085611102969211149090659244904457662774165155302918864734618852926744218089343284077701157048127922328746559329618232959191972918042806093896227579795603657260082651385664798878106903666614574222209305542073321353345752686865418926920932138285100929050698495098116522576261110464949143151602368500755081590404163412370056552302692239092602651459204047003854563560345287035628809100054358995083354388322940017631613467904912344865456353337991301409882953980007531355644115736968067646984702485751569367751987166824641154282309941016691835865667046070687885400762589421606963206606877349538235374699302463397919175070567697567422422508272282363380531348488910202808119822341803240445581144638180767522190556449850808817280924425385130986844040311471232993353455524052099440434379701820058493012660754817502899535331788382704266255782993928792076597521928855579761908025688926665986804860672387102715004477126378610289049568752990837376732389560160426561282613245584165726502186309354331421702833817460595544744609043328574559455862456208532117293509907812783557505618056089000439278795616394798135656784959592784712012491311118661784867673506522118889647701470729825864964213559517770634710627072900050689317568176289849285757656719486432315038536608337024407893250615209703369580453207746775069755489968353906517186948124424068158573780960114782165010087184330865780439947766601115556061031630058571907030427926592249737864481294621971831997391735714423257128410789291068555926681438497207485499267943943725767354393063638648242123390925897162089425827706820603579516970014663799695761651981306699999245801170274679446749698466149618433849249085892710373287965182946225181481191850112485700293036766327052702743078681969899005657860211041279261409838404728220888422930074327751121333796829112163577129867383616081942943039482076328070119388759017000663586871957602422432205842079533843637296978813400166480823798409865188633163117823060380010083931496160199222287769382677439597852176851624216071913048909405250134541716076185689787475130879009264268629857350056803710648355370937133318284620982060627044888418668917955300081697682970319172610631151332254918742434774182342272908686102711802657637279575365797773334241352027930268612086882435756349807797822426945125767519119597398262599865408608035375183642575770373077374296973837486238633193812644456953412224872307035884105838322411140027371571780731662023621296304355348928996526390440510054015607550316610692756832099734885694741821538716785211499048613092066182012522365146729162821237548596645306758723047338787124821394851318201108245528383092148756818343621443203474985101788827361334406426650045697286294191483030948671467139264467829677915122721900657371760200186081947139216713133162579428396013300525737520037585223429619493505849484489833831543160426030834105998907298140982134278999127771663218348803545253244801907385436316299172093154301229137637402352992934610740820625522588838788779006688345444997440395132213364811464914586356979569783842659457764312744186529452867293456289322248757621881598450554028599716938028570527458695918432361185898138047050625566590421175266516043040373174907054019566191033027390735396989566570179634205907670118270291613855796269853327097368204341088634825550301741914577750763631497436842056950428619354384794091074420210105134677800375767512656293528632168851927955883193815839875746655058730984927316764618012245874754587688865219039462287899284121899772978645376316598716350964523007703853565953736276404347954792496837068874399087551953819028738013762695721210616642929054207868042191775868739213855503359210798765889670509075697169864223963990511713187218892237263924106414942260829539349529637769253073666159261153228678933169107782916461296633342800876596744555880431598087984986446778786292470749416704676274977654183255942344764792992549875891715469244997419271689433808507017438838160376928804489128002908907022327093243614436393410987820284813575790802502396313638094877515163821672836098664212968839538078899475990087383588249132179769622646032972332480056352626097014353632012865325054273774556100264130686778323568637419992464402137426518742892457941472100753723469516901939447082272394371575983786973867408649041101722264783243504435066651220623940102396879429796249670240332064598486268388402994050103454290785272012320564965980487607415888416521333303639658262779241815161745600551958879403570612163573508713151717879350540764822667017471445433536566142437993044229278822346073247821938401696246522449116439129692532341873325835584077383345616280542014435256259695468601754561943589689879283688797421741200384796925512545182295154334182775931567864111739512940234291349960159564986994144974032369780221927311229607767226451041830024590006919503769159830255087373432567405037525646068623150927839066868755100072089904059713987647459617985441542654089404216267911641142179735728676374656969677884792526351362615686032277372430712043551854595736942234024549075189608709901555187372564138285406486741553589168976706709146249098995610691772903722392796493935981111735082464439520226967464610780685573019043133465565679953412217881276020659409839326410008788043161574333020606205138664240353673681324618343482216970421651654260482084705049408975859245228038222416665675620169318337405758472015452358459616304707342261480909263725137203523878553518336607649197984159054702488155359165156514986475699224197056162772435628924075921386537943759950778192051129072994291486541866995669737763776149261834329537319573036591207221117691277026845868209232039912415948342061821998815256302818089379671423180687259896790657632255917565088288201213354733043676181902067816615283037031541747239311671381602145094040359710603988661271909281822035024554089318560310947040113681473318247103234428477838533490922202992321057238445772579774062667224330930777652386730816088042993215609128669581947545293040227301438365522951318592537070103799315710236499199107540068752248217587853302493761814372847709363517899383908373231988104452873521525619769685673934846036866353064641333034010628691411708826201609577672709024386476159993582229069934102421133639486315744668252528047768636487111517904649585335074823172056760575433374659955392332834445049220001149416635117842322900661312991869206129417590839570725072044240705173202691587475052502462923665892933561708021255071737769947742163248095601797832509512894049241103440029155532349708332009589856726689432866720489638715628774941430157713256375696753172246547664727114480673518409033337315654819485969588516532986001156691756172453616252823830024948528666115969974705878320940313777183331915821004480714937942113573795866828564606194723661924046132347351472997932589246256255887377097418794496195414875106493040348388983143023975604873232541060165877006634758840161358925012676073454864269631129625515261570957517554568985431233080388474070945223538165201428390502143700925602650213252488952632264782531591697749403038849055303127033520984977668126375232102169966877942301235783494685892018825791698270379377309094754651916493361165523497165185574541678082538534828986825738717263995631370232776296983410239686084756257351246163281959915155046926281665471769566914895730598294391670528178770852394758931695111400820352488074733005419973478380172473198199075722802506909130223074227891366423329020640884201035122102950408527663745439537140420931108627899767826608051810489555280603783848947494838565050090688805931714801907451127659878568653561834826745460212855327200406535019950608041821436071138570894105120914808395009997185440137773482004347298050022603946169868377423302056450188019717374638553399355870706282244478842828333974426417227789620919429189383372710747146832871581156984003014572750604422553315299838115621439728976006386223389545248575373942317305559683229211573946638334548367703707399176791592460211315291268376250041643535469707748387404273701675372429381866127879007133594299178219890637435360904044518873444564846634418750848232006471942178497643679966714552549312757596199943214526029340314829530930309587799918854357529238382285645577044459971927012483572652297038881511595970002726258282071121090977195584379040998332980535909966745840109792027302373344669298344832021607043625219990985477774797836223616647593667369918950207398560803901666541765144807399117433696262332028592534897382574056890107906341689631321119184507490009760059766680533051992237848552117605306485230543870991978852323427982269783138484166591702985443654249646812419372536460093424851580566813360244301580351847932868174553699565461998886280936795627413796435477627641380407758724474764320339261874157126934906717625028707278082778384777805431544192354344174676297885067342583843815580773890472460832017554496473786891965366193132994685184631596830991168090058903508648309709255806799625965422926200889667855233416791414724641233810763727607590836328051097778903053886184780372551064699728627340056404389347608534586455477629354081830959876109698701531006825009081286898832418491145411394072187878540991981712460373984756411646137553282608444401258560007025009602258673124322756111326546054058204100980433211096943532218123158054109715445225496280139629531368663911936743287892214133860952210700257553865296726995830212979688633497478888558687584022219073665073502307730692822211710922099807588410074930120229878855494777204738541091642724438153929018377878672187985353957562521268345177447336530217669055317572413071217460759979143534172650281259327768025611365353779451753130101997349183200881457680399133964195692109472415629268309971194965625638165943010439312375363105432341607350834538718652097773906563037620472579240466930581342272377623202032069522784321952444789669148277901707518699560298590514074660107552227605370589181581703693413213465938274804282284517320030811004426812468541411605754636360648024079726241368706711703179122329586553010784549240192571956513758918313411492382267732608562193311999138064706745651131781740926160836897099495788484097507511996698011471767623159882960601722999482891701383895225136114391317463137012517068593206050550521362674337582683478331378120081614079397456887011681953195586369704379229580056358901184140987079719844552738643017780614623596833538158569700309069878826404022168724698933058601261330018098147945494809958814402532645588363044624409361643047219130439517840452108643519488285519649403939474634709923516468692651506900518797592361307817132920669318069166575450574327173804744573732197337204417157749680985930380988334795447783433009444348258042081568389894654778678319991205832760683209976962432708523205644152095493705484634074613628075401832809196170788564932848767304569499183507313218346964976821721935306554468341564877666553879568077706066321061899580850800873892305963745411203596428653724163447372958968513253582099226764275713502909243794066730345111660644050155035099050930720624287327929569630525940186750533310602059196831763025907070030170541590915596331498611129988901956397843544113116712882681149972905144158979303745220581375890193274795053924640443650278436236077843346590389811570577435472262826968940667662376186797037554679097058123578147212263366845198298272586372441262883513618192378246628588845245404011806766008559014994507113703646063486551388995527783337253643510614973800533046055107701578912339811083211947269222769170863147018688196268842110814611433844401816248470013189261656955124137636186111389327850706647829488782122080752813177561750055538668407419525554583685398748886931840700717663287197469889436236273692672687207857941563312679578352355034100654145255021174834988067316745924371885724630391223350722966499207382440195521860321919345490866005555684368121287560857047269669692567942201548513852662804763973412909188687659833984362981595847472839657553740069373166545912575123697538243323257760332935669074115687222750424394590020016298487993338757556102009923924937254520896418060522142246505302188226901225326195396483139870730740424170587706999077338394695165389017589512265700791846738085110164849621759381520833389809893884694930198467457323170754942995700119194910570005790117391134637160089013687930952188745152339151311420830183108496814819544689972801475011566207328560136188488826926221492388110396249879473277160797009680783826713452089365451167258229618695612868785063168699966487091662651985159475802015315020270345768461384461474896596078405961484442252735436211917462748665317163309664154946221072575933847563543665840498106510932793981300816702088142147128413703157871610531497081962319341995998263262934859458924550012926957116072631576106306456212437405742683529687767257091848706768774914456987857188714147014353948137448935714139034553238221971550338085903364151317579540407922833897809363935560638339913317488763051703030994759391402201709704343065687940481782356931382959229854208334693918782735529514067135027635720850262350726410077452772453028585771238848609114847283231716793757270208649066188343294403473761754736817541270913685658417451843273060326199064555836047832803719832471231839398143648959859955705696623650103182073446812217137190892715659562908549041245498150427197804211888374775323099912017383870815560110995526680478295281866193355789711541359034707254614876708040430437613138304806417421239317693402171221540765800689739991221906425788338153856036175892782965271521137065768334898931600230060669793618148334489435369376497520295764947488620052107723829952666496979186874400720923254470214460207081496507883805304095345789164888257725130568105419420930736051080110900713920929485757480836266468324746294523932439362129229596107014971948025886373229616110257627618359923509745226808042947723095020769272146431625852255055865003258873324976490650593812148525726846975211244846784731261910840835338008741128025080138319120255004938372444072095381064011799152843279953954869366567865891990558029899139854282005547586023834672471668196208019088629452433951298749349476857351375333671305625081759197938280717403671796169243118383452743411746345755024988793296198391559199487420677550303049599460364852755376115668353044554426876760486473292114010402688441664249110505036779663565304776333312696943527275724871801964796670433196810546382708928053458830554396826808685692792602789228445542838047621747985022169991765684546007207339532540186694378497102993300662844269299799481841562041470972150428723501829059916157030161236421975112034011133593223800325023018045989804074694566199651532323952414111894262154968795058124224207714901216923037322864735702425253800875163464992638301428561740753302548648892956471338318307217865722412722756219861043769554172897076433464709128021976990732001698997827706557656761734092339946608375202943696903364612828934510714386667114386997874944674345040314382224262551919235508647793930667785899142997090616701391885098544990598737583071128481641900158508304534929508866430090583761021584792311881484954410573924753030477378295384944339956312053348845582947174358953279639689369392719505654057949006408341327852122570196454436671728878169145309428173658532496673350470117927995548251084550648700847323919648240667093981909201328732777796668420111939922342720241445966621767755566741661657892448388576747415988874938715695690607853478751033808893634010489282583400101180543081941833917059945525398875865127745130720596383414483300933449030770696568357479947487085078905462192640249586720298418657300115992794635790042702244577172970766787241513098571329676502822034480185391444883166248231300545436842858879018992913991407678908125346837707125036750152496547486425554397243863295356177271995992856875253568467306983363450997966251394002458088071112395507839022251804580874347104177934436892168834048727036306000611856342436572128892510270766804177955896521424904680746606978786474281628092802049274861790208268228255005926700812692381614821715551575985078943599940813913291596215274074942531367843004167536686087060242764092080616445020987738134577842295356004112095073409873181498962557347297178917548757681541343080282074005156305313803478414361929127541977312780778531455298961303075116762882374026602881470730684922691570222165050627495016799994689836318240639698834540475512746029813855495884508609529626866183760481453393604497851304377561117134375940345491150257299419328717970040704044675542507075647979225254386257419585197699134808957501206410255568731701380717508668464525273199365248271717896009290232475887640610377318833254168936779597827645154960070994589013507481829841691375117921706479330359427980807530745316118311470364087780339689964872926273593062787056410829699194804258670633139935311854790755043176645539003204424825401654258573206632741439784717072952257488211318813308742018088084803146483728450647185741543582684686226282334617970303437370459569815879773257812449181384667111887727627740641510748881430493077641620674516661709036763052763542299966881387383475614137657011916309447342689293001578112486741935790711181016556848937163409919531934868702159515131078753952016463779749403453282134631818109270035605322102360588174916939685615852752750732104837133254437575029211745527984615643065562174720848849126849613375495164662537336449790748581801483043984014006152789401425256272428528961065638939708508965205584130249250342649421333788865530728888917771118140643749263685373869128228645500227094502772755576102131480895150485633740571309622721875784818105944228053000071462716298897861695331739766846581637234155844237932930378388977708867436013078713152868738806781258615474481511824244161177832345275590927350886290973999299570808940551280189312482159079283485444672165986738251967990854123830382363731046771375432373280199028114542334776551028393001163159639623819519805712427862732751894582916897146418714410289685657410360336718227562841894837985722286224826981854541417031730120968838709346453042285662802969845177800223390162422348176972504225448618717081672691628063995065575144688792512641340338535781888112727773736167390544257370295230153544693198899068728197894161177022700517611571114907482390714602441150234782379960149027364178323833680740196734709811897388122967580578403622814556176380656998433326343389038613647311720789746258871725703599954576408712717198511988876204031123451600212653004503712658941858315231124015455422690708677591481564369722006833221795282329698905922222620030050784582022702239234459514466100439048910599363174109017093022658505179399657859335039957430586720852754676079968147091167491549192444184270948647553954275560069217851807487118471769192639351242438264064032281140856888940699551868301270742410971684058839565374583895605916111562631066661401769922480253548625573034597387051067115109967289050164424737458608042578876177869220115852299151667876505820051991164224715732228434128533879276220127186705672560479650791870574292942327070067060549987047534568005260482295417230483443686898554233456543619353449889761800535450103543858033483323390091936349496754722875979076911166545669847974315552799343825464339904968442206971178674668483600251501783418088795385343380787971119318547467898454245434990656259806563789217048097761565180914518972382715176558733279845995377985038757409024248909778936602825952914291421235708597939625715385967630838121330483970950506013382644709912512078252791253743278707550413783575484658077210993607182799274849626951708398749066545093987198767984188673129053533453797384344655771205242846643716704196590878818114952271401458377852260345235634850728562875313867760437833087128358884153196277884159014846282201227756256395980682119620116593569334258056428067489124622404379337818513192495569026516889917294312813174940292713278578827477289323234296729868511520034096039340420921979402144259185995060690412995256161396205152398689512817008790467152109571197577025155129945837694476917086865058581205111122825070282981191400975485499890940824541153670834541496068724850478090582128736970253253162295555899898834073611402634087558866407480704943469959960202890222568351584961663030823695215939824940076598042422554901261269827717775949549185546524899923474350634362700629802976530359518111351519790700068468156159786101907091135407376250582362603676111721008619680775061644995790289443715816962888267109816493412793112978503469590602283463952693768669804953819882892690767306563351362156477861617614560930426537715406169567484845977999926498586592565166017483878929486851095057102830209749871783121990017027848368159991376284544041300792940564476399810145616823442076828386608307442213533841275935831115281959747607227586239195548977144531405296540678199002497213432836496629817656845079228876766394345508853200285050777941366397261652508909503043664196967982445032927619978259434718236480930236697486240420383203865420177111628338195997939310143798022460485662580155401104886402009345214837408870032223356875199412809137177599779615020690383301828580116675141921832916668235995595760129028501805485566086473247200349773201226420122948144348548450424047029032480483830779628208318775593366536345119511715934627633945502713840324953693705656878658771901241831091525094359232372007406554711662635163294645219900331175221689577591469570397616708630114656513923474281321542344240810328555452542558647526067254203706660216265295601435691979693053701791652125344995549870192664715890920156070690876616783592504805852323585382113773580129193548673536491659296293320807478965493761368006323363178154180785167939875735786353439939037058186182497316360662090053811208665774213556506927737848670001547056695436849532102502632566305890655111606369156980105752621793321420621061924352581570592668185090278181106523488668201115210298858649871984495608649167916530177027624218073838783992590837837394499869436568005112344297455238340190090318276504330933821104866209840042662495521946537127246598549360171494510741535806589614235327145449414270572262417005878901758534941380884170113528577830522738260857729546007279835142557966339521296192552648306538052265101461063690527020172877498313907161195890521591921857099253071646234090731765920226542276791782151857807505762076375226326939924572666752345645572017220578393294862742062889353066654157962838319451262396912560226533495367503955262922785174133502998422998855425425906124620623193438436703937595928426540496188977187623142757057387461295714608492633237089536309832322474014941719236170026505385004885068804007331083613215525405440308388413424439806679255371570495202857530863659017131417307173857352149897708734002879995294879314726989925582592469835677531776820379478083306404292931870711611730528574141969866910966139075552477696925610217745991783570805354633680284183295229680531771080851959426726010660376822498521494083187043666468834890653250107263809586041845642661948459255251456264729804041078495017390157961352921969237248164564244788976241594152895090596123655981959523204695213347993244824607959289457612542403555829289669089160923193255442997463089039115824563580661678109047551513804424050567085550505970842712849904021882837277049137631385685781750657651821269336444124171228219141868691676504243721928824478194048304798909522391087246505050185888615561954081078848601232761345624625170740230224906227595163791248841468433637290835866161198837851124003833638745307124562817696968570016074969897302396443589598150359331527429912796278590219268219037352638589291630476878257214339625408243934476810737834780983361703694627018067156087317103210917754248366338415789781019107224341821311371131279460453309572026691342049585147548372531107091031676161954250302315590920880307055305040112563773717363788184260174049015181045836316940354798240716824467375205589600150153615240130810024149302351961673158689242716304450363394352447185788140661489075540064636242049842351887564029677469608708169379940279577682740148163327866060250962210105195419087269915600559130685387741518843988544756892625059835303917262180412014472591003896186393518293635728061513667834818333797800009575012117450956901417977007680223079301276683243639543714749032254734200426045779768999449010201745170562075724760756832453420735952910976585285336059457502762272584444457965419416010880236913460707428967194655928487644822032308593875419563931073848597440905576700910830500597322975722677090204885001798923117769326811069899030372324578490982140537064770626971070850234683814291875633426324047029957674965195247523349549851296856784696595910297757887196533545611845266260668376830473412616472091920502402739768254052784537292381749910393296998926095353225961249478885157496282244176735353790336792914305971877930230354554612462628130682817899801424580745962409175857289871242073913819485788410938632117914146801580836721707080717742481040906138430972833710677601022134749595100753548072274678190885635079775026358396327395681458604813226666954331633729542042501098308696728138487146186152061857305804421731035672945652493445832356204598660933909865061909640552139807735643490272850611625485414818887960093955048810194107459987369425760282802847026228003887947117652620148279714884864680617532807927409860482141295868376362096894817222034374106274583831863613173264787774343624008771229457932565948608505589375946554241181923536104618787270454903359176528127973936783728734331003640585153181417043571892355760837524344130325816076862940787231180060457357918028132732258934996205298802899661702199348489750113546393877548481164207003100169513245503654359520200256986861306063238302622689264425795209911225351566671484251828994226347847689200932431141897712841536408085295558543511309585962754323093524678597881649208440787818460058249459611425995772869619489588019657837578874375921018644134316076544546864268389009752102649809541132090056140625656604119213449441429751530361461339109349303894016620349431018500111723924991628462298604366328762438682477765836731816646679639119559449730907139654166771417388425841643878143173761155787165330488580885988631139846656443464756758668260681553980773324251954855213988522821077227495844459899153463124152504401422516832761668976981277821134640384355031189374279594589845451774847467886738736579378707696537014926325190376502927763397299819601027934925758501228990006418221235683238903000984558711907812342736943630023325501943043779332306047583973904585283841337458676336587843663480079525741938883962068770838705969820134347107437834950185209332254288025524583188614097285475952211168056325783989292587234449237167750329028320301584435344785382084985055631781073462668997547216912332527297318352805870178149894843238667793905805388826825324283595331414711871494867225827667920652785392459502226578773665825148805996996318953230089631253883794783796990344092748281850761194416400826974213056261404252506418958610700404710362574816860356789086512942754762804838731249855308304384772144133483062155132358321954637428024032977141366650744957998671883915629635394834741856848133938216247575179594981502655649801694879620251772382394090669686559519336062465499680673185540622450051509348587381865476335920876433659860904567805279977183435932786845184699906551104778510995472021477353327561665578096563732446961114133129535713298555426501285516593973765149325542465994808900533003651595676979201707313539848577521828274917409032294888653193778728188932202117582899682845162894602637811085251040960725313147913273836023234631822584974043709058364911979468323497419927220377759621857331047863803712410832000072808615780996736973411802074619158518680468460000375827742487746752536790085610158431784800734614900071167183557611548405600667712945217694317613168341743791113297043019802570299480571244145177974878164623014847945990822399839473281291916626706166075317751527746873797760620813455887642303734147512465644259230147836835264111000005369335255595257706821125528887627402201329706213417659457559933346664732181746112870359997789253119535229808404101747804401838108692247696427831474055998127990912777290458672376409128969035288581542735527978614987027333268535636621239404267774916930542540229488899606665003352138738588031773483699511917569922185607094487019363209392423117685327564893727173989631249407623347630348696004959350619488352444444488568619729916089051347587508296403574692803518044022131053865643010810706313187849344549795319806487491611576340562718305153546733229210248856701346957811327809041115635829801757307287290847385119137458017948227365553511318489285512521093524911750655369162964949355071755325922696143526238072455794329601367897849746356642510865462012534164347498360967814699635148707090910957447251732765504513400625317913776484032757817489183185520149863065797934638360405947599275714589794222158874415570133375726302588093659977193276249302879545667231318984015224112037792587239642394024205844928620822468173936434420901777948791798669990933025874314739770012721197366537884899356190572144352743147589727962050746163360636896285770590409479467679852596205859814411137674237565106953293794340191743720368527658808978603833010020199494883676499218371999174305505858118009938793453863455530207567630547880201435303244830309687985445530025982435041984592942495835193051764346924218792680951670328898582259292843735367089766095418091564739903506847077725702455582498091598593546236963527096618385829795565999905983044252703978887456877088349564922018826140335484947757086438589464363485057100731525410941767903239499939189782334713035136015796551250075167220351730532120375420361841689177339595781117626898000379056167042236589212691797559017947721609533959711766586979384932226882512336261254538167501782067241553841964685282544627749722610351547343703880225849758633995508493425541502386403154686693264104760405013281382682910930532202254749199635295191986192142044459108841442595224550253392591182323542982337807500461713467356703250982531272716335876810146281868387054537591645070560290960270015511547298311134967643549539040981616618656796096169081123109333398843478678395683434253149581061750387012165506210902492800145107964635753731740202233661953011858024223866070924294829991620072238869233392774031056138907913035217954591805498368709708826856967056998230208113357510006485592959155136616393722269054553250658862074630580698953379880536647092211830726150211789332924734980718676925398627562968063302109424023064429153397116218150734147575795556715094641623998118697798896894000666639410452059191941833194937641463828762542769617238348713112790511879074380719072040367878266330419392264892356129086351852770756650466766475172007961752306813343530721392205878363782212051825466858707743391464707186124222657614665655299373372948985804117515468134607228603105035210816033545666747924038348556257235930574047478616050780635674664621518589377583306234923610289534297658105702912514894802777886741772973885823790174498205921614264181656013932987160932420251445802147506390496593469662875620049091229260642208388074654411136441003578766835563551242732040616628927348450454199751686907646039274930931822839346512857966182808610969404556704250271066253222986752507071188521067785790322616261285819911211375172675934360107335077359214220135337115312270651196217565592079838898030946911902263361341872481279949091574354533630763518092202167258172347816163281583313820336776979748683173108312494689798445445033333853367509728698450146334743835613008990076395369428782991907440063772529034792032567738886546786922753364754486881352948241986244895292526661677495660766958093835186204121961535018400631680382410680473683188244412319072720229008909938437553820544251949293335133343876638325508358245778112724250781643453807265028733850588532280883525696029782508058448587989566919246359431737437325890499656254270525794213540781820715592303311567547435687857029319181869044089126836313324484089999323827672943710236181264604421622492366606207080398336141590589628136974025699195513565622816519763109338497027302435678876396580316527472346467515788281048224786044023941782352244459833930978577963185870855400393756009082545577933720492166148911256191598104545268656202286487778716540513452383939278660890630431199967802974814664816425811512329069662914439524393108727996006541977332782561205406396947922324600112077767240684612405750154950826686738157470387553199169803157531060441137112436555481401756392531562374445175655081515415842327074237821479465124087511119502752166828467182051697689935962443392608616557367302211583925550701584367563613090208291835976816976913014502541316532097151517501414094631875468674075238456010568877826211043694631844825178363441927507390035790435108635505947007141246512342190321285751252932506650887574631634397967992442654082850187202952319002407262890089740629042293287828321843741179791865981790934811732986727836190826062585323314091519082691845597410399306626012709743018017555822350430593722251275981883538696245933848316135854821698365413983485475924144287200552469533547319680335186726155312379509046471835062202154571404539274287492085413706071775726134530894034039362455412126795347070816696802845467109462180709749138855700296156810416682133763403103209735342053175272381794482308043391416712752676543356705534430210732069116179198386786560943370718738664039821364536843567252116109747815096335399980809003090254157075403555023302946525983291256245506040931259453067285582472222033654577187686102325568477195684652580306605915477822847827697717555740373083190331065039018466872574025746947075056857348495187160341842708453327522200736680643785002296238688491996715978234600855797971659733177529834537400732630666685532346146162819507021881453925976666992354778755416663731465385530984541829872758413414450574196761936378752889581015031690501851937408283201427540099365686207716680006954859798748286289840316386270470805115944491312647276027809742971980552255560447348597798675046325396242875070758154485915033546259919883243543640131315775467156465570559102156335405662716971213607650827710413316054449569736021170358057489957401077063289609421131504594915231295126675052502179828157581320088628985533848054586794278496166375698480163589938102186145231288298234249168535148433576549492028250293253678031774026772217586468661366467760439186212702696481835021528793053715904156019712776090160177910970775696174265642340897845606276685454738667698988104808671297681139043507239292848009090675988206061614626995949437170251796110453965912384237866452114074435389552146020870858723428055472120603921334758694799039365797983726920363422029028714331194308638739727402859351611473838022103492116950846680228845560317233305798164764621676923717799802389061612128737306052351209885316780544261289746980911409097461832128117615273303905843306366172963361039677148216712050755188802332643850168524587498928190986365311062479329532586180471339665763224925634062681998845728933690586784123724446297436321935510595068145118337954931777145814532702114482016015613250726392827727654172410622161986536094610896780837195771320323964234209202434124923003217526570669439839388193344793930170097127451724600710236496644639961576798359173093658545994484677706023253531421279430266816804646079624611934868751828964553231795028896006476691813124640981773213947102268618399828423512853950429330542099757118712810872129316381481177155096927550828485268558960168441161586947624591517498952624347656858488495134556993868079970097034622220413124809494634938602953405141664995532899132661282176982512399944621741673532014454364203123034112721227342879925405718612201130986731741474122608088875290353161906490593949716525851911125668033696092119698853343282706016159748197757357925326649616621463228741450541711892026331438346883329096969392862939939536036398900723733217150044582137347556576550903788950106215495219668436054270758897042424270716735886239296224536286935653601050532694091401640934304690554030476883551024363518810782349949086769425588035843617668140469028427237434537684743166634040988876778013994335602662536441134893126881464928390877179035582952288750839905055886571868222961597983719262928698965407508881672181184368542661136358702107445976187080640268635122781780824522158956948180445594332203502170051756387389237606460473897645016112671000277608238914158055673608095828572893536974651258631845343092329745922447259544732108307236041190281891408175790586043662785815587769896288455834409893193300619841259355453308145801496984201467140641059870113875051859290980782610053714830098274113431452174520031088647190522738648205837425566317518069729989445235757092469489724055090694159730694481451541118966348912278719620323981008929402420488897063422688864066783590839042341799740194741133620516116941550034632964165019576708435532653162630221727585871909644194772017945257291109265931532489316128794262889131909559151616521823250093827495136600945886222031337237469762250264286490195017490456517883938272009685883013034236315545676455811901711177534916739370209586095078157001101111364401023916236276792351971107498161340120605261594582076097609648496693942528635050856984782494021670949885670546098259995998084273277115611261807793778128852876054187954394054614585996987917131266673547204807660660554118904466609480290013434572660699405773484740246046858088492540672238862584660259024565261652574542626625801132049341326009380795953777300895795044280354170132578953963641721807504538472748126885032068503915535588238591123125657235819113065898227659227289107468619328733608874980086186555980806458228664574545779629248877087601874054232394460724725755227726051659721823456614592943950933906211365703120937692757647580717684644584587428425410222368320043011629583482127728099873125075630111720390945477603623565549289316572113185560708630732368501530469734333836639650870911189213993607845717939330982981212290799538829692463714300347853524987878340267740099690103376588769939586056400885824432786791270162185814553346732144016403298668383190101276989391572283516012400830018683666518286001379519383304476407914998321159264228979982197024520666852453343963363411912561643749924047451970757582842676583527684673072218901760938388989979046274568280615814599808182590568238145615575047800816600462326102692534725412957772891060571417726312918479340459127969974771408652890892624709533988488311472286242431530562842390933283966523454051254164416044600708841629116263653787496299310937764264612027523699372121472499566251998792035086292045872470098931390159041551373975811339381078947910534887062923198012797743235202438129383662508709694972271047432718157867522291903380356820331947482361913672847628102120138959198396542454159759053365643238709594309251179459111115806594773615929070114656512266338711345893814669392814434348806673414684983672607876617736955450920051185053122321857897048381739208782162714431945427849921372481397849652627426265985685026131628622411310370118560412084673062750307660295153303432178493230748132548571580665415519327974924941268072301628486248604967963455876593428616790788641628495700092692867413634087587444134943363164812338863302135875520860204269091290676077735747805426634661067329882282490861296256350536522653135306146340931583087772661284870166226813577461020717808662195220391802166390983697573105567692163411062708850675296592728324631066113385284383255488902869855629352123528727938136978024967635702242143276812780497722256586193573730813729874859196525508985495272279238174506232741665539540134544634574300771534074096547297302265665816376574421960745281428988645778657515378867921620780731776652038402312380283771326814039973323636946742026816287302751317598624700936005499335845969256451975325367027566676270869531013095052931865187132599504199412907556921419834947686047186580578324150954978262822680740885184761493653108035033537354767677890495240342446896955129704636513038435923035843946161546892953787306746899046704724095510076446110617109806113069542861935045460021843314732970932461788184460775927460840494226915889056107061569049838213951474887971088002004897547965308503851150500566003297024521806179194700134256554411013188059801052000013162747891153250869902945121307452429969590680152285249080424153838146819605898547845226071472378808815196296239133459552750772495496928535088738938443794159146835211515299375642780697674999061412880165383722059174412821456157340966897015152536297933384290920494145203221585933596008508728582223176447851912599149276175019476038091364034225827330816267207480057763123344640791653842838328999887289939923211929199255302478972826949354081296968075270748250202084111794171148108586979567950349727633491022537866559081040461455107763703744586637191074696806864055352240071796423220429774565993799606520955983120137536406945437978179623635130413216095429534110727959687687965143083744350800568385444973572969231628916018324435978763691788732731221290356185039551923951778101048299261308451174492380490240946923501334655861628500743877690799990901246316836645296981554855179921786946424120858233513465507255236152644243193752757728163084211299052378878765679230751741237694972059421889213449204886149517765628217698919859089676941056448122982727742074002887331303305673088950855151706969021898335164573854633496837500864076289417822116391419878534321478358409720346504768532286185628375807071558535171021660226804879272571169305074196447489445090365678912550454189088514818920595332688762336043410722445805677023309861288211723777549978435801998676733486680987018493744357647522868429424351673548192905135893383641088109890436396295850796847350270942515299270029648975344160778247445502662564998758072625967459115200358398440589575660515244797912953226825783072262234056508780900865461457131966472541620145119421067713735784231386107103259748620935177194347020950748633089015867413217696136421503915572225300331700268482606892799094653758229939770734397187925548988735161468341566835742033187561856854153452912954801600539208326083992133121452796053445195897879825259079156799956402696329099624600666462882273163255368199311253364766254095181884040280841702035738160503597759296548997412902091063754664650169892315576101615911537541400576322722481894948781376957808553131819698197675401049417384156721709026921943088135922511747309761393618064014545780778844600759382394085934643908163177913630989851623155162072224624338860437413861338471918055737934760730413349408413366778765313999024525405746720042077706891938757801605743026302813132949096287990091700321121894692584704095941163387678275187560575975924702355159201097641082819171965704158583695102143740334165050316073076020058499307715647896851838821541118335675848742608369859670519265570463702343307971317161983458711368260330745335332116764547749036798262109059708242535056755874845565488695069018104263458399954072197550948768491654402296747636023263082099628034445183731670905178580450759533860648899083343011485020774628420789670524052482635343345499403003261849637143714868107322122095644064476311465580163278151623055236989763101644727029263356354757328875423948490450663620319008911934155915455137559276847765763612152614085626031512438867680282964213098652867748384043852136032562105089792618693501735037581535479333903003437967701516526760457759215754489983936943603087122099928862661378576031642132638125240909558997128083985720035431410220297756804649025960690582424523844861006850227388516911932685407967851098796251223466574263508819380353946879215275012750865446784906747591331060515800432553975996055717674773943967746447044867293818087615991737720059085510262728864445886572888072994811828881395401515944943327974781246083729909142618826214845295825820057438183188707708567416453733894236593124623692512893979562583248670664124873012879055510552611484233406116999350010826275069508710061816192824097225164198534541132717283928231538354736868621415918355711473014314474503838068770806650036808964149639213546202249934028318361561683555943651799294873687485551269992580044490364492209892526885845036076539803046008489370880963357142632131466236573096721675244875022654558342996364132681932450512563030453631927208210274846295889459858890338350130607479242921842788795756283807343702403591080280396484608739230842788547389087185170277102140385369676116971599357498153824084789501853074551474872412873529870341591139203066898997510705131875209557765338008172155803266865849337793487660146595235584238361140222274875459453352423846124452755453324058717967691074551203642143822954592844290619939146159876802886901252188859632696765395976292367706147686717284966594275166385791897248387830868483172338027038888350335933521558126901510176758568082690518613010705467374343027705010915055944264074891228002573675834198661484242540943819883213232524231829517903740355868256834300009906310198605049056458132355038747860991845932122745502573369842161816299305362108098804136951156807535050306878807407578035115030554673805798878525295357672513425338123421926493420515631537864698274251708688997902695236449613421176968404825690601941151500007825049659270058828622736987462385287549798159139632813055972084269379961812531436861531175812415311711563640579342881082040319425024973826160559439743009254816137686986634700628005372223158757796126830503024291885700570703097959021193400609527556684785790727059770619987868250299945733045617201050595287575052632777921439573442406865939872636933677222560996483975820897596615815312993760606188397773935880504632991430494766781541764715278639707661353242708675821076116708740064428866547696806816239531051044270927883166397531088122273425686799498511729130878012396804307450864179854661619627290241445466801872728756251464169320890907781802605335102941522392424426641111948781670802429887346879573510408985211002784337154562133695007681266490877366999046785258022227058868335105417058088370753190921865132990109340287006415206328410697252155193912770688247314283625128951165592113559177328119176421153130172694585606391744800134954741410375891336713255099696378299144399750933662332595818385945444154457742063658030423999745155749499530127375866255825871244548173249074402004321631662820049346168233192921027661101713448981384884605671301719301236639424551462494939122951507203062790970014202821852882086598869329629318173883650785714097981521078328120288741202867027943957096296518048320319540336865108406216084014609506820877775780253588327365599387923843349516616077675060688379974240166206271808602673982462227529479566279158287511879605235663882466602437151152656275613402784505995212795900138523054659372090816472448494519405422836214197393310908021723307462882156713856962713290813605892943264285604213538881452697888043954778671285875477192916318399232445554405954189158361433718022239522099356933973451113946982894136806399887732737648909801034319498536804581316769055916347726565370845513975238923238623827711677775051049903176538041499018731608866132138452343466287543512749885251360481145950378644073300005844604077123372544393277883137901786411392454705230981734699943875527714154769849297618636868561451725713611637122615012193698248950852205652303940821951727080035540291240642431285338762094641638906958563996541078385561531458533555048366585195571603235284057817342891264282258839776188341645598464630816550916720395352920436787929120564552528053778356365855251604042756129013994788749939025944659281391358828408921408068017937095351515424639629667600168277685800879278337314458122757014135270371287371151093019751725834532769128286088424951368880546022022238065162707176660166798349335866436546151334811249335500845201357647297151942440370443848683897824206529141332097558758410114167283276749063826228127513333137133504147919137581886429666458072783138031400440264694006520738032934766707100920610154746028741188631680738010634450092509842717721631715534288167025290709086791873575097787723617801349877940982278641899391331417292494131334932889550718642811531760312804205603920089776563864544390869746737601087014717187518049094346001262808322844552344345367635870287527771971232622341752170563395093408740751787675265665439286297217757676755800526205653713792441087564214085884256485820121358286325257595121104227659586022808797812722306750349753054121394916569984928223874125986101265151737065924366422957498146297928126698298251676914302827142304780393464993050261380331513421484287747971700808937119644981002953896750896078074549051297661110836063254255082261711335256215443038619939911484673135784238885879036233631086376398612023928495661442723053230710609918832192526630442376467667707705046313294093800179708191017499614676928518586920228728733355213260953410136914180556456000419328051466415426603568109769419042179443884991545572806240682812019132811821909235117725802622800805439653125176634268625037080913192184034416661679946445430723625800116344300995377356744239618236432564656181795592504761887255638628141655665727432145446377326972587537732430951155775325353643394988485855526844555911687722121683090414163007976380739828756463034806829856100842310336429569579638379386051553393318293645691240387284990354951166185022543351338784514215865782781066773289794841463733838298479204909421835243575882705127688504806624694153000442081003168264108486132068665078092822957391218700526884962641007976993329506881690821193961006888027137861559606632354549477807986302797450865538766369392098364731959522831533411221441585137905945618162054256394535961060758533874548827430449657267954135524527211241475832435322574253407614276689122683183785017431293956467865259727881573522669401192812427928250474974156707466323693383749622749911489550501459206810887442353701643836729885929016746945700066158279623988797853521466190236716993074356321937079205959656313938374062921418120677991091058573742965427840861886359002303647221149956902730445265491848647662565347661997837540086149852011966812521354754823820207094679365321045280622406243634138266617889365411727897470126654703776661919989739572433566291304550692249162350886432551733331633688928812328290061778523237590975097435232234649717381166728731659221711382669825975053622842677052068566859268659003590328852044563649744000741985542161733385675449735557368256013464460173847743855032136515536055083611903821609088231500321990901192602296146486631161766236735916325992851386817832988413243417291865721387416218613116806499001569553534381938186400732082461894607628625439786784869026163103062647441047449559347396314766832570319103228972592659850943105143246383075172448596582624351150920695754598596200716790652517411077867939212169837960063280088703821637675499886928104090661218837610457737359388799217922287477235833878401112418897249361947747049115819355560631808521732599194932385450426237396279926524592344028488710008308823527145996387891787043161321163644497548032854658848707180097458109603754512050809370350815288668154928002597425375366660917869894795487441144007090965164600137069791707487199180324229040556986599000879409987810645669604890463027885228519532077418134237185801043969542246380886002264331625063221106011365960712727009143338413343673967541850533689024169660437439891592346832333587959423880854029245114783126744037322787961121148621559578252763266244237394133877812232719842002256122223070314138125194850491145330046559303757627792713932997132550354928060224171172886462696325027529701513886913981331571910526358290412219993231620679834417532628562352746106186284275656120379176701992149784616306566263045450173767907265494085848465912684337554209495396946431432562957292056755028631782521358968958002796725674065050325865712870959072763886216600854829590352363813155270427289519343790290865528036802013114458326799792298270124617679087341557026306285450071521624607545808077266954239419825750308013510328800253005728480835722420900309537181019660635275473058976360088713722278099904546400944935719522893681866173790142484005956648717856446923432659026162989641317998044290409940588875513137563133213495995609934830978140519974035345372749259201224426346782537307062880280518395650112608723115894611390107057536270724077946271057234962072213823225918568684552473826331158330498362170345922320662135178079537854318378033454263836798139620310076467291668493773436935578443056169522879430208640954342865063238839779993106665782569646516483051903181651920768869656473929835376472316793095531196497087780070793461362782992691856473723410741832097931345119982830401638826895012057589210395804100978911408411706458776354152553524817825363513790159932148514908111764108394671647430351753023427848873088899684171063397845677192224307463786361894984844650876264512910934736152933286835058123701418688637014200548009755451098576595493130108193455633420701285376796939749228893187339289227103007597087273525987262758835110063720666162206089073695694358701284917764101154877596061194114220902097040135739679852119830634896095390852165375918251234495645487865316488342787526423315815739410135714481644069596585367066836021159526696537220782293420846957283338627581919784980321399937437910225957949006297803415240257495649269414513698820116983242714066887039632522423365907452627127135660959361454060911109999837153187221384691685637298285449832190204028990871562313154254869453035772794878571872201732265776056030546213525487861599184242267500835839885172677304240222455501297617937818479145356716409366753822099694125821508793019286559506962079818263606535387387541922361166608081293759982157351298399702096033704904371481605024713888447159866086698991325285874339263211260170227721376357220021552529454912083620094423264315719183953441818152387496746682326471753946615243416326322029188268581628430951501159073514654929817697125903086450049232018312329112915071650754934931826178195031802934872682439190120200806924974358358393771187450817907727904159883912124213334663283200702305894178452906370553048229559642354597914473008932352521872394281164060920937745087390054468369391941072877314100729757650644762957362177930435619878622415826469372984579099100452868162863581363076789830999286463583803470876949245031387567754598781469289394805945933421195611990635138861614469592213005817171882543193272694016643380900264910344987674139262531925360857147605729909570911489098624693383377012437858864059112045189552230670465497585359223629851530033514936927463427662581346287347113521748218975381186244434337176464479908442247166941854201610262437547408729687395915509929622070369922475709904812482173311052689274344966648304067275918214462846760152127766641172944422422489977748036814498077074369170634555554056391484969052663553562331723187879937670968319733912813803523841520177332351890416874029878135974714430524893555123708002435577415067760796751569590091030689511540372467404626808346832436660497628921899491258151578461619003018836306065402264952703230238845539024406292135551221915927915721617291302953007519614764896838991259989847658832247844612372113972431168173937338947683850795901847397484035412351481682432743385421216926225060354475265521728531744108487858745154542972779796443902916926286273987379908277759251080037381676581804269259001348417001006889754054780712911808356215185065706167741075556297383264189529451094468148247168836403937273395580228764686668943940337428345503097293108667012160995382204730540209070944186844971186278924233079089194937330840347134526907714976069282834517392835042728254133280239226443794999736778582851215846122250757331420559568556133982665744291631359052731124353922716613694702649236707673578732259938853638814549546147823752441993638303328487449021754781321240993604150917027916796553699661643632138273138855310701231074341137798886075095661390550567670470615916892987789055631188959251202029788404170165312369843573244806306401462904926214272677524372094485246868604499733245667401174101404446826390381532101750241946636120345932003015291576054427723879814575498426603906604634225721720621813568853398896651038481089067735482512402233633766647420115972239925003333967398013971243217074138071959696924453303610411188519903725707230194143704784489464887489958096735977086015879120156570118699224965346161790759309255284533021162337556369129167084566097321662830882623305009039956629985259228098615436620765151833521643076743106321921657234129739927517366489644417144771896112957109068269509419520227039367804193142257145689499109895658220108326114679374068185685036287242031409016539172888949985103417719795216125122119767890822438026903661852703989601766545917085466553505717553353083343423734186751565101404893158374363079415181922106640054311865271208785040658354781097947041020633982053558559963269703607004756013457247078580029398087281959182640668685686903825149252866465175288079200088160510264760864047066263505696306436093146269519995751567851245228762473083657479919008853658372921848321410312895359419173255202878861062485757900175575498622593018716142167371719747554165961828614867507250438607666834920638611237541333986110799696934199044261721978252705531202998689008318892150138800259143278337098281038778383902680991636591469828048443618905709930958828500554422330527772682336378117975041147601440938238727932839952924092245688208506098145383110313561148397983391424614492263957527530399726330683000036616196581090774233538722097353863917173303564555850535407919867612319741248213935571182097946933319224319236681613015437419061546071546484696933253271462490001465760259732985365172796017282755126825312484168354706712488416821727028148194472159905965387308045279390737987269042371645741124164040806766291033038462363595714307159724272889328883537281325271425415219888329548891131315418757930314003912231095974979560001190437614843144360474081227098974305157088873664710846061997952869324440354627102316925947856290098912945290713703232794309744206152375220974434375412548540594007241994240268420199034349840132287639997841604589508934357528874471831851386586663488803986108353003044727316386841827771751444248624702051479905453839560054062156033583442982449685383297200926420495598998250457487866652312630791530974570969209646551383821083041916547395302429840524252307506505982897689289225250288782819517064979974524984519926975396530986152762670183660533529660235765089844246580401518760912949681967435084817856225126761081214117506257532394749087394071064352149126880801863042783818341059305484174620255761375885002080633570122652343668687524319187091635719765338601588807129923433097896820291309151370723955108805179300412609383219988899742334196587679429061727455047936388780741238896334698952064757996401394303210868678730071364130586504435055300039759733867558448115803670084984620424861925224394917866045289800436633198488765142582070614773476096788796299739441420306534142012811017128501285379640026820363815895314571531063727658893492337876540692734611442427929681354612322007475421000020099719437560558995997322940772897320131935387530539182816869663289987131743982925844469046704153081471908285172878044651954353356866652407213170285332443668265746873516475235367728605327580665470439610888356496422772259362510434191165470984447396265155577179369034543252013166527809405014813780214893791569873759387149317399874979113753131895614193630071080717617763830237724001118216140880656694461162014164269370061210899989244557667873387455653083788297590033360197374576122257557116560314650507798955016430169461494715475690971017387777576098414662271061172834397043377342843505597594304658649595011139225805656466504352344059539507022471678767531870709656529815525407028636779702482545281580986556250864317412665895583287238450505073689735255870641788348760881108895817121944804802439959256743051439110782756107066329455334814731182842709319973092310801549607740145324649621024207085697376928737876447703875057594645245089327564203799642389019824016163775728719761856971660938337107032430112010741886652673011275636202702041498813497183575891132986916879435123227070546946469795586306937811323672097119359502882325599012948859819879099564699477689570596303679444651339877729144889615338762951722670627694697427025458856800255748208319506864613614408084011847404693039997603189264537393387714815637236482159325220702150080164688948495845551721944180227028386176049150059232009486996416573730806761715970656359676545051251830806265570774053259595583334685379001959335958338988686254550722997164889903708123904445512649689178147260597553796859627894137376838681283562559325941193528704576560102432178086905894245226483475639115618405009024297584144481662523977408462974458709486436114828870320551945240304672372570504019056264147149562055484065158685120171011901486295702724976176834289251393648195860607672540791900432021986797974313929043030447041247777364439944055777779908924934159154100148668191595835648891993251181231789324378446651451972755745621285368378984549711136040253819972763821832334247532674511667677051602108386885887131847895507105456744366469441532827524673368041451614166058463191408581162352253936696839951653903820549362097322853432010309838885670374032520725326156902764361838613499637344725896356121127084324908188636109157866629605337103813386676000953996909313314760175882578649758125359514985784464275143920582217388039447619091108643863381408340884412008998295115184609010413847123209014560070792303524404943257382453675061262836176638198610466931666966017613020004299691002278914717205273000348733741172055543892023758917753151317755080664875533177948330863553855301057805869310033470310007497496613787373207725106454953038908294471907070560080250187618354198887796788440599636134431187182339817053063724558558537662134397733391227504510352759937882536830178654221769769261895474488121624343758483214859810006993886491647047027948311652437517481983107260496468889332184759370354013950813008350031375032758779819203771263706321851614185788508510911643137893987973119299524779366986292858989919967153528060749873109143178465870687420743048438193324662287554150994189704637427930365360141536135253289671342006837834838900428116790081585460479740168392649141468304335800275101846523996070163344815370494312246225284863947665508447748541781062043597396649706263135417454545051512125857550562189449727459307533366019788957363259403574435225168577832810664263144599509779489158050625852156967180777597659263719322534501296267935212430059037003968574557223375921815136810735950813847751294226488883833206664608455170082178836054923244579986250646479747387760583559779762442292407009501113256628134091137013958516470355312465406607103425957924460077278246926174218951545469075648865310381651271090159694692879901819774419792431139850579793060067447412429492641627024677740237305280348563033866528082173585973231650270337735234815668159647315889330392446251297762991029886423841202575367364146166584518818079219839357740105265300357409750219567958535250087914041209494883364432761792509038034808577929401163637172175775050653763794149205022394844664783996548833709364608008163358889517791010500307193226297222761969106120977297462927264368446079668943559791217484832993978090164706207687888108037422568426282079104017565962075224658287887836626733106496829908684126860790047553428058153946456881360963849237268438993136297134019306278418170726105239951802246228263735662271975753790237708858879624015598628994482346406743797202343186193788463122497791843619492934044936443528115586502735368300527013628820094446906173373724968425486789678810084416289444218128589470333305603731476362496213052578601655879342040792533988316192107936362070216212903230135826138075896080655498046333195866546875357904591349436733763495519878938398631161490470818135676762400114702814732431290006963423986493694119569563426718063387981468257230958994679830154870731944427453011233168792852226781874711553244132070768046426720042177792696889503379956180082575531430996727226813142520409811536650274591054105883213191903713544264997364183214897992126331524657378571147433424404247861769129557863113119404045455587447441938764643576703066481183619586312809984658465227128613153865554445626825811457375524138542078728242129432821046817058865265604162205400798688166144919794908831678827407306039161527644179914182631247569713042352801942509478042568584885011843540972485685068313050519062951184332733853421196227564797262578543081650405370154295374505607540885217741547891323578049234528802964842100167228422941177826593348618674983883940075165983403471803332153121576298094241162243325740726879769032563129171018165200726634317437188946957282754810822175767067241067034567248733683725180732479253142468473240382960173805662373272831534332619202113871345078045917458143149069220954284837630192973410601870422208151070795670785635024275301467046948875184869775940938553637013519399193584494829565203179059171255230625584591595899922840115232568190332993509798621470781196535360639372845826219373220210621140774470780262877776568843818451127977974333298917889620525462744362739971103173793513080301659987589219635289924726514244114845974103956635416410203352856214340593827138610089421622805644209748367929663879428761645075785046464974333264880556062772523527227544767527542181376827988312393287393429245097621557680437671224245097179388267975807682917718403396726003914444538612781965912090635228674843089082956211636669614760719323291449859451541322925685479549339954070966235095324278326792666436499249603663754600191295193217761261572550797078569206886041114497857034448371412561966548755059139815960722637658832400586080387917771156002176416161605316334336654744874974369203615424810533123057482201208352087785575183101980329170001696271620375692146519944257346387542099294878321665960211301141677902965102804002194476983410486129992661632176151198341476131626463868133276890555938402484085976761932444558559899072807621547944026406954886296428841411197385592662385124110396450031025423008149891750003725873206040212305649916000957112003298977107719120887704150520883808986873777942133689243444722346134340049853384092721177313934274315568625555415631934508276361091828702725671192868588967894360301656689344104327466343502259552421957853122902201452707034949979490898672122343941217512872376971075857080231002663795059276892553779932348721225611332593175905863629967997239494096634572642736254487152565680519077395030450373229220941596036756490340614118606968468347964358589374068647869366117583383870886631590818406590478888519509174297579148145182508172421726858400158262600002709798691341206081211146564941746251190372702723922181955973593607462331848438765581759372671954102209440092483524122177460364911828236250107944369838737087072681041002761808429740079254693062837614450769289522505655767189841533820208791535135834924985516606515323117545915500687163465742849736878035101897325550974917076418200737869116853399216412176881356997177792605592865108390203018355801767639965326468568858799575736111830143844112486534958092580660157998544785180914864270225215490636802985327294564198569113933178399173441038606766966847617095849607811068532680333566084291890636600772679423308120496772370961893513272787775483204172115366959175029959656211201632628064016650753409884991223723442519539692169014647122629070670291224236365477479896407015861152806554464034168509957034218087889984572118734235487244330350269197881458615774961016906196389126608414498721329584370494475458748008112673556957759844409577615374738260635768692683214572101826033996394821054074203429157640867694159675598812995355187126925035652379825293784424073515925821064771568972075881243949858113492788233512737800838623140548381916937412985341406449191949616854117829024836133888963971554059258787384908709983321655952180920347959730222939351252057777899074281239037362500100615688333750482177027063264261854122434064640303916712305501425874922070212001120611727236723395281098753383208143819184683599334082595346424252690028616467775569384695286255561435483619658957541355560241827171309560105525101651836103036988227896804981846024061885251583609780992295791795933330361767229643377628527966943114888684052776640478203160448527874200925083845049866815407513221859822145975218185352860967557956413641310567403070162905267022059974200725846147067954567332885744729895711776643681493551506965186637464663926692997876307147043429415092453854263181287302491275757267568553903016192295626298590564622344925662912194412037377006458451660059362184498312792369939278624006352171677910579126639296190463401833832108699643642114511321108725428340145332990570204831047096564266009613982907236146778009987065205933686978278407821567389797167883736402868390032242889525803182447688431684850003031675570645321069779252865981075768166419533373603667189273047886193775982840061913981494077935109768651643516459938877640378452819738973639186987501736071739832495144175618537837080059174179700667531235233851231954359534883326328677591140382017450108442581594638162160510116016756895959134297688851484499998011711690734082615640482998232065115624330028870744301446798708484963537062804622520860317396426761537081195429882952455973054810115590872784550211231052919509675608991002927928645930903025086181257285671483063476550590231855110301034646016329455350844389590803502629114888984763475689917956516557065318432990942010755937170277657043058089666443050282198684490561301631866647499864570186945534040355687851945165123138092235304099084848622763837220654763095286399848216943531706888436287557375367416060403061644558778106639917143317238977348640366776487224015249062491566644330454188722725386631495100581155185802711867007079544870882010016155185835348880398459964512292324061918418884780793095096309729586929489613339565184001657807104646105030922267341392144126849451262947376500285540468408719268124427272677948275673692377627821446616208667869505981008487608157546820364283204588220791044703329607771104275650382021764534198581247635235400762432462124397631106125503856795874562512617433496115363729783815933619931728237894107034313818290868816646298723119189325885046550030415580187831187959491448698045435749487892251623055137765201986154256174037394198785939713661276807963433163028211756244150625855150978520661405655582138689774418382712664649188827650226493186675272730027586157503332687788003398548698652079043538123588347495115224048205808792817862553065596678397989146349470075389278017836403336138931067412059802999723693834704365462762433477427412289662955226206138479290340062293188459717974678764087502658672860486520180759405823030135579030344657406933237074447354897793440294611880222039524074892340298307844693353865817300802146975168795562932878943271463752879936047279031158032358993641066459219382704216015856485123833842537289308412321636532513694112901475905772784657038921200563576478638162668309059582540755264933778885453533003543780186217574794100897541911440113734174516420505877945937292177995916490482608368120230379424603687873447661611468677806812183816680143864729353598269800088398491322820943049328250190368434452877050852873115334487686858356818590675759073228879302030069582226739307297960944286731144491955741770687100175834649284903402397018922678308951788268459335098039679519840467291050977371282009788083290328905310943105862789031373968362008909973002028968979064333200490605732158037446117740392112331061701197440592239717194069619421290636764750570039143573946804360430577347827877468189501610951130363929206041250203689177734786948898977763529484853218295843090937018349525288970418276409791652437122981683918116516860126736548025687193899744598634505738451723544657370907782742135134503076020561070437896480639041294390341302973075270783660297147165798731720763016343844745794379855972015562529920868338464206524321498295109425261544861338972448590323220391146358943988904227171882974988502917434368224620253873780580008006287739745649115010978180305532814379159176784310712087283805638109940244354819421052532864283793893705234670890702896168302980155663471594420243389844872430546652345494961669619997024411727429981952502621943822090027200430553000144394454703602834674558263256249520613225121456991643665332155289918352669175184152928035953386722623187133652997134038566760283022303503552276665333073589713763453528673068336437771431777037468095143451081623623545997202388562429992175607899097651636962471118345599376462363052381803474314070542002423913847783675503354646262184224969666289654319408500452604607204362842410294267541376009753000945750211303900692129031124648900059139998184874037883525085290781041847774297267014173427658540488873230771369535158859669639046152837886929763030039745972652528675876974195238045233819327103481361854657689495048101872886117535481167973617470243972145003781670845371412465672455042409546161332408441632834974665143339345307264420812378509310289970824629509412057153367596683421466624735528883159755279933215134691474106976480775949316296039118153113152892844850982998671670223711857392650693828182652101741977404097109253069740318210431658075816658385703522185875619987153549331373815200365631087306848095551229176190922213705050747794045011501298159176500211468200997692590020303809752189833365218889869469563175654469403388992988368262225269963095118146972123813706316411977989110738699694685676454484692847698869374985902129766369919785490435507336234400403047355353034049607662928652115002810013512928908355113740614618357914635915721198054727556223782150945459745879898022385828705157793032287359661988442617154428495709843374713078023779331770895134130408654021399003012716188423739244753164771873964023722835905743738422661825052936140053718061868526830956441216878585745779097184866489335587866174772941755151921761232880261043180126754495232620670686539676523487669691390202143701890149891621165996970498729862898632580879548753056997866392492032153322594739895826468356363344504338375391494383834145032980891769200901205632926734497633238873750936099094484915302454905026393305655588068018447098013438960530946803545827047221132503014680671919648253072934496125766327674127985522025784311429262374355342750741404522823603764490861421941160539376649738496869872354294468357621830270756949582166253515241349483328759441755196715264029904409103037800270027320366946170507907463744914857803353577938081141798117596291189676711423011641151350497574554504191873065141661244841074564303997850494257107318554609275326289229174078341173221588804775357484693351033799084740874708907571484330985485824695747234718506095905623378352913066790690706050055442341714581349111034225376747583638725998385945886197072846214721752425426507436186816641829364078612882227755149128971101200947496878662981535812271801144350783806567157402194695191256977133998458307175581334995310894910595017127178835878702901118743191782938019857661924676925367178582007106449663432796564039643824714141773418636050363069007546658323573783128237699278270931097720949769631044107697649063595696041057819272271361187483162413286203341694488315090427888649892721861839062747591818452733938768194470782622807138590770333550816464340791569280519056791575876256260772117125737970513070202877066797665967580792258106899169557768636035211919291928309688574993699288509490193900424764962670568855563565553183494258990071471534583533125964551324496039979338881496549130828880639204172756062420972601656966062401327724901589237679271811256705431820119532369892071881926701092332130007422343953758914048293008669143146628233301912456006392342202394999783921208824299207999930012359407891915890377050363072496776120270831850140952730090110259404765204312996020537829165287507385690589266202948511613577166639703830433333471557167894513684739993784692041775431320687810683551675960913266396173914811727541862838355168293289437337746564847122096276073749368594373148102959231657248301417021282020795618954881386478008687092670086979071875707437337700662333518592013567374337659053078128222680424427422065032015147069589746107964103787356586727210308895839353223524624588513872128007143866583425771232796878089621269427773646860279294728321066435718957761830376607035405376426496137738256461610351632846253182009695066448600502082762676002459278520569211587964597989356124687303016769583062655225769912828462348588773625240709438613716896796291362008319954126509580790080950866388893975454964037195026137716509156707969138980149748802302376604218092466756918367396052785146700845397171603963084802249903989275014717573681486016529461904342906564373568917670409085426006684316095971049765230222314598580195033150720256693308929782440460539931145747235788135758070457347260440013270001755744209419109631837013817572367223059267567066175686789580483287261621404456823248345681471711847099037598232409633598662989816015843079169845720284809052332415587652265601880617916188905791509463371805788687532967165795869025495970398794152518778326320551520763036471410487411886217954599860368573415652729440276687125340952578622105789221760828872514523122587986952040924746071090250415960381960613053603181976826058922156968304791308379351773775185052117477444310793121646968592706564437775077049786057722490133501142878915518936016237939273783841716305007869740104662555382450480875459930658058958343729061626218829739079725884402914384938755995057903979462848594796181167098053031288282615735761682661214675925002730976076877955134332525861936816713685163967090628695123825870905941367381749612812840699841161908975493210509889995608542893280869930159507542880244417075575548909656311405247797972600028030193955924582481474107390023986334141634123764829096457651931448476542403101378645214835265468468473704069965143425292273400697277756588315277084146729805084051811091122223647838970940375814923784802626696825003403266372377112768725768487623362333438147448994477842681956629273738502474139187828256256589348016184038451871553616051093371553911810139696140033339841419856259559405873792826377715192270073126526627609464450766288153092610627377903265976245426371503051660494097277091451070750135561521115325384043971509006904362572887178225990440407710095017967219714834882594803280862599072396132250122623680245942610806502894280990906693144012838166157248742569670967658573767177758394421944448258883400691759622146419693467942645346367959480332764836146170724064631851943537541045085555447081351908607141762437902085963214815697069183936827847981140812550354374857410795599607551439326702796948153059455238551269650449258776312763064690373110050447353038054155424668101223012671493840246131494070448470013450969081512443944859906144344977974075432559493384663601564744148674250147473563659612616006749961935605119016947468814259667767717173640328458556096509151744292990324471071293408941958215795635926131482368076666192653668721205699759959298611163180572039698717182058503144252402811498122445144795734218262631106079369672231154645454358846829653097043713168751946631840272083531752356286848153981361551261209576158331247919851510777871950026683283848203029784161824377215519301322541738319279529155467577582034337493194806005503956670022272939505272053716948078824754906185795202957563647232919246541275190691196806207352517641652131000812834327132590731709951531163304510246876106642623835956109079586685645751654752276582475254634614201301582737717241022915753615630875368269909974037421484062261259881953193605237471708439235322342815870492213368628061576817330513870677507484749782431327081543947307210504525002837450835580233710999570807030281899728945192458613071847126368732976439462443630153971485560412937189315243667302217406229980599872751264438708420670504253230910812292840350978049464296883691817434067618988361469014188998376608329544967458010842313856650647497129380310997038175635460993685978873864506695715235502778113028085597642252825945591456001607905833002303249875815597445559633062523258183314875302560978738784279805740119212546631943106904580812823639082174839464459703231696205282859954638309033722402083392552558215059087062267772387793239641555828386964631303131464810455893612418571435158484381889693127029858889298481086031318593397143976062737941928162305431096706791653727574305452481366180451283309441329735737701922256076469109958704455854053838557462145151958675210358996947271080771249449971758835804516537191038795601788566614634665822659701658001994549659284706192799507059067978666537245128540848715822940331822495935948910904129168513218785858309106615869344124021052189591195807153907657337616980069247197111611144599748575503590775145731934962929909700446687069568947721899406957005539405412288557403698229958875266666647092023456661423792185765270641690504121218623974933694389386144351876922091410916099557772780099386161856684233603805882617092040335455947509304170653968006163473944404285715268940751854052652098615964587434411598710559698526392709919301924770827395930943795379868024007723908188267293173251004992192891672465111818656782170149321462161511299145064269056993202824805616326904122397884775882315595435531176941353448491969865278444056297853417334253212954881586495623780337924038572855315888196860680041866292313531078036839194022581231092807446267939720922091789954501071989518126660571378333774235085351606520695471377030236564069329319266640559964612114257002842238749445372123861579808427318444328612943874051270451189751203005315501130167738089139774737376368127604657742958315553950932635219290262676745849617044548471415583285950431275977667749965497961984142481251991134001237048569884685496940808300935497470836440503984091981549587848521166616722031426112023948693915152148946646378684336196633360246244763816223524805630620691681377575382683115987842259837997065275938718843030337145512063563048249724436207266307486063213372303881620341102032900550806207347349067674602698103121185673532095893699814245490912278196238466473820093131328212812861124135840476094081751957394148095344569807230224630321183916758208176651551628281034336782286799956219929757639827552159827272886852770439928560295146164633638981252794072202834104160439727540575918139281825845736252565147253278370679358860760871109994379366642081575419872563116605620100753576785728245680212752017460199408336043872204482816585573759605698983286214325190387012831900476684657082832911439056197220014546152129285376343288619893461484996913631116820056077173612607891371589866020501414665428540817111688408632845567346492326673805755566576026590014974060122172313715568620596632043498929189234673514605682454524030299776564445386194030443608593111314108730804005021441205850912609127572766002715180120686607486662379274371985474973092904503502590425353264903093509331828465248103820162790416719423596474938317641649081630207296160504028371739651485517388596600001051307458736315712654499555580264622920503454433533869119636825008601534564167892317602611472789873864286941245011615670039507180289821821955866647075883263509835134175695074931617472478027832779099450870588180841026121830021196456669809746584501609270873294490874216071734270456416154549723895719133139119635939885869601595732946962947919408473278170053403307901525679007996080620223784313908515715116972374098599955389520473499884495163365273270663412183797072906328349384844598521464552394788652321379988027709017970019430239781043775810227995733457629744367979550954581191938056832648579805555859994141473097992809606029569299806553100601523275505925078024751696940748021355560061092674729176751941950294233917951044136315337107036562553715656565721264165656707694815428827872180061883426086432703027760731991399449634532422632374409139957744169061505416577938913104198183216881112669200396938633438294038234642470673747649558398292062411274086014918043810098187727046637630237124671990559041694329035032322681986247871296564925467851339452577672176696837854593025311389172925294417053126265729634878752374778300651353910412527275883265423019331006299440424482388900149903635522498258841153641748914007760691819855007624856299506127464751719731816450412163775733305870357163257091542455720301564488177975449967743804038321808462060904914699536410467664137796499522726436990915086694003119732315862512329132403400979874815996872651754486631934960567717487585573150511273750224447935220409957413429114278002863841264591375569837912727055155488156502297818005532739405216857139558431620934974342484435892007613322988570016897621585569446088941281584460757293631216487155079069936213815952784823263912217038515846107153974419626571481109606145392002128571572576997888969104248219680659266364100097215502901732985806142725870676942302640403401528434193781381906606929182793265187479831582326195922108112069114876815840689774700246684401693856891339837977731366824254719612363713058291982338871228713941143615092275957558515029473534605132244304439873114762911277416057596704973535821193771757577203521146187436085813974148896359023009471974434500950281364959863216265252768128356519978283819788465164294438345691394997113791782983341326749881123872540166514689956668123667101333244314355589580603087823726985443332119816148656592203848661088976254330621797681872068455084787098635719683672050198893388768363370416294079431037267336352505610703541431618095260107294329848436871576203541276912014527894109510564573969282962738724086652345303080038477682520516926484706241243720259987338726297565212823490350495387575428972837742871983038852738996112354160911258026595850238131604964939466586906958344480101023928237181345973743207652202269981002281350641886585508470714900568553111829491969884910779255045609904571735377357856053941548839414822788879950013335662456373545599811637748355768334009241769490475513958791344631395653435906295156332852976214016633809070581144883970238485100728589902617089247827327613445072715502402000879625645962925790031344709556036625722913131702398007411727415158128548455289926845394869437371130764506629135997253146830376602374293002746254936777735654248259710473450066997867229792574148005796111874567938899341970657226919166263424400495955857924293633359777615508691348825898667658846456167516426948955618550635587778197724142744738943615178634711270552669280597884462394425288658295263930665434248061436070674055664214271074042009077014456073071278812587697641505908260139661192336070434576569409825024548243816783397337759465301776583020572812916981167618923149539569599164489416838472544314111312068282085166893563339180228102778107548341605546912397674790688691485265214664211117421051528726667525450947358621718896122315085682612070840428248257818655861411203595592320293751516011248717932960500894229532368246104288936480572847100412583844381022100983437533876263731334131840850311256141568071790354665301330735387373189326654632315819893159418255048095156903214488214738939381606188283743456298547545047746839247715831202880488603009054245151820717759366498635518320655184368788428098613526777333745692905213296494420537744930653005477252196999345233455618974355089299708745703772083970334175938827213814082013661151053892530330532672690321296480032966878577202078669841083137987748082886114583144288558712431337652584673764847536773158464490437552978785079673509075067370648363261064729805713888438762113760487550940193016187231297528450129820239070574888417300253448287048678765676924426704536206372701279338822891821072746696293816038141550113802884372501559560347865651159994123169178624221624668706753348750568057462609978898030338922821237881141380793741485797396256269546341312730545767951199869194474011287466837054397434590938553550244936626096951949921854781075207778619262612162376318577729680058522466136060189136268096544376788469038947139338338504817227874387615135445304150271532466587899003431725625339046425514170589967003492410090272453333183501756571559333656966905440257952386886578440058444530377601715247945383441653713601888416218731042066644760242540581266000725761478812177488635387036515640694258880953767875007088355686945507388463454021126924031641648418590494076204393275746242557192178045304372627085018082954306746691818199138651454749441537308072831100716904927988321199720763850749410184965944139185358558508051330450634635896511543114079733619565026190355627737120077568111890768806110628903239426898361262217379174070073128814613462139504491038074151657203562606858361999464817271979492984018435606421396818638474228958064183987134207500529392345423526446203984168330093530375953277447864461335572446593996187406303292626746730350593424020900499525442269767511609202990413474972804378583773498459515071294047661096976159107572161855880169951594818058331214943385642059827557703155361787462790371332330696010105889266156446638287997389571610457554682232714118183153901427195192484042235078503226908955265773774875608998302643038777770450138935799883821091556987304767608044627803669957511231294201667925087349745967979571678212940703237397375138960995426447320714636385884989354229939310703022372760623690266813120297006124300925947886992636536518040266040797405011822546375471591083096900780223356593662139408517564497229438000610256634222374757959360936647470381217025536969267877821951258217796147848337600399918850743397542950361136444236149698372641062530347243860001380461524199740569401113485594215273350047662098887909361992279003706568365306569368255462356168175083280626363944461919754575763788353197970302114020434755491572506390652675660569943616275440648237552654075621107904116177827938308693984016294848794395651952980821587414529927082394294968597267974355225192653750224868949876577583894250485771298215610153313857072586630828223828492681055131000468137078253404969553639316417194078398915045109605125380600235520928526356690186758466344088994194011022352958763766184362698366316277938389044166835052329027856093833752605422564839262896331530466278697980279407120190869822327453539801862186709279313148720038165451821064660717129400881809273812085283145626632169867749001096346772337514475697539115461606138989973706379479775485693864825350354200369134459821821808933834371216448720813748634903252848044964151466710883129003337644057264443237190467724299105915209511539428209588482633996017855468636935636438249270806229442314037746755695989116499710876502001926337844720877758159311968185923810010843796378470784605271540199959859737989696989863010763743061406111026482864454798990006976435059155630129872034466439427826485207423548520353187275842877675551308931674484882812479822334187743618801633772691654730416588474967325320818743839568816216150053195395546933450225233151862576913783971475251683344971303381180662527588903708513283721443051308777373799280335090971844390927543354004513263885638531490372656527766932196830765965307260918120609090524457669694012366770325301268921414069813568376373022861193207431602959956693103502780033608218113917165072579105760891612565056826019816308555955098220608003106349005051485998790103564448937783965440863148407882554064096153558629712838244276240623528639347040548339372473664582488440467214238816964490133664033773354168699189220693525978448010540953444079555607536792311531751968419537799061102643265308625776482025198137026075779091749089304293866668134346624259945840995556132602497225335570822340627278725930650537281491003003469139595109979904484952392416630432544026215465191420086235006365777697915867230359470821380805778806249932822920648391007907525988673477652266614597869434894132230813815322792965761323455760029215867898297561105067314990673182607866094408950651514764515283901754325915242431927145226755554611059254419547364377866880178038019931377914808187412209671203661728696144952502157779460689674235922078640240759219862329240628287744731378118900866274386064893717409460833665057332592015187398070294820682541205684411282406919801572384607913924900172015369744591704633987226631744896515117835079851930948562297497373774637675271591451872446908643729061552052752668325272624524859108344808900475019034348747324495271311754399841555450440106576272614153172955685247316718308721858627698622945073251017637286922547730896100908957456459453744779849552328833677397995949329108832134860632134089142172380978928207695179446605470413927395634932044274965675305344646994991876838384773819201961176742719636949904616686733319306305847460020880171149685485036363126996108290610448348792806000823397186507780269563092761879954469611222906593526993142863100922272358475527185736930439366692148001479652060042423711943478939315450215114741859146754318335462194693922481453601204850460593456083709676625610157707598518923491379483801295191765689870106140246435997977446719468720762217551920125195372348647263711258779837390134899284089364341591812818909644809407295536748678862853649472054611520782714449954601030101004185241884117006352418613979357539732836575950562658551884269787541666384539859945246233842437579315023922371475636799662937107014007260152119181365677723766344437396378814732999746196535344379061609459079679459915508609793077412039036339733883306878545965819167892057571824593451620489305625239376154836648732693769828474117368047789174679640900406121970021744420593327383876530282173867581621492801427284753510732599227322531142205452007100551192775946039215954857243139509298821304029388616863615306633669651971343101603012076154046237222606427468151766607351105132406327559763304987813864393076847505454948840291257369686212277234159873033345030521107417196926477167604114272557938511450876526413327666927601732775613488600595780684650889581499814477080671638430161386001910360833956458649504717126360974021982273962713823184385973127280706066874987169092870362720710715978946920990769439408559963759605225441801201702818654538715592959390511867004663393169058253666443756289691241811797462520544936601619468189924110989825737623663726085558959259074940442143152478879004016187472909348560800725584372524150746861008989166948942340843733442124724179082923803477921207899063375436933324897252064914857873900405461286232145928432824087190286174333575607967814567541982968133455518427832680009732208528695782691427867756895118035167618624362774611128324292897546336550172554877822833399150473867659240577658647383334469480908261607053278311771676648572449370388462039228015370911194951930322331769569683711793003681325119766803364276213161594081177943933039298356788705064720322278745122823860676376355007255885938599323537959145893340832669481777602946560503155596410261489664520451916121848051631397079325357033441367339276085016321356206619208237738700976575863476421858208834462718765237914252600254697676394610385655511910983750566873390567007941496528879574210361886628084764145706112766842171246654410220709452147152410236662308502955215626689865512175312197532452656752997137748154520416046518676765125576495064344399097469065457589326598685026174704143205463823582629424871230629162419829101204853339102977922647952543159448474108761000279712707933154559422862171869788368164928979531449738383247317881013470177949957038336584166733619542092994753588125901636684744381871972326968830379073024057124093014317537609728461074266144854173238634225161920897942592639928030161824273756871747777500851273977070072112415250320269804098199177471106257704197139839172007461617736445581944895340703990412567558424472837585450004996533314927674802973894631705887882784932419492997314711319797432371633498709720167350753815583898557999338292905867592630063047891378186656966386275141562617143460745411713574118445671945442248078294915458334659771463048598527834870313166896626737468421147071711523757985546774726038456251718280001114586300834905022348904745284595660663879753219483825469893333770959869179893798536184964986573977504059618615520386012166969328720685703620505834584269123132093730775494755486384743812438975125531299035105320604838174493317091173412387295770289438364335007161248158028168396029316670600353273899359970592370697858305605960998164687411172008891686097729104196500973153191946672558460720736439646315686769349129908105490057744467663168760138351874068110634209901002279077203030307080844171172079491281248712447766991244208751332580135153909790708656838208106609403307388309551069146891968242742315671903050321794742312118069610206182772705547714970829659661260137049673146117115939582267446492443478056711849853013114716167786996620813886374778451054020040297857453253062925011683811444124833961520683015110286003986158994156724335105510551178942250972023405941062545236078880834729491002256150052794157359092832269719859149254274976436374743509256750270633434600104554630640385489284286285279925800416621285992957852348690010475882061213723722910019744663287371753056941391874858733444612647768934523024388016527663176708508789475970862338667271792185404709744554587018151142066569480656487313169388531151006476058867688974685705306079290831806543376032017238704835751646400977062740088173949463008109080198599307423773800825415273166763811256714622671532248220448241933583391415855470748947944619775463816871474689623677144281070022104110562956251619290078651440396144697513725749898385257727460864922266449574965581971013492086290487397815324097015123870053604431721917068755337369958101579646932527354657464192195331041344945667123244797916252407803646478609735722726672780353848866630900955981756747695265553564676334167376232015390596486701315319278655873985793135112181261304283892206166281185985277734440349875744685514285252374228513668209913465179421282773898058070853872996242089564960202744014465563575131097148185450171222227587941186344752460550158704340448433379524390447463786508828865451427098146509696270484732862691176036143862831835959388583804018481573721715591219348235479768424724631164681913102736408021838135435666915427496549895493161681335545441353581576363920980694359191068917525015613955177938379384120388466961795765143630825190667961886379190336486425003085575478744669268152089576641001971259396444988156743072050651007693361831647088589062104977618000758183708165431501176219957012045700229288005423487370550779143645012794407431270890375894258671761279410885865816308174538273041605349999064890420771279445410610568471089239321454446425095816453235949483361799976335745187967816669038419792232591521731328978444626101143993819965839895046007031986882039099952291415193674871743653311358100644400292080986044890482033089389865552547609799821883903453337477065853894086426956091765557761632105683850087870044558267097109817902213916478201962343851937731083724740133151755846881689744263464654634538286952600357297760688318280782800614412148022838038761270275874040773690000524490100048337430186791887555742417154524107021226541767605098159935159411596869662183103499279110862108361828030931456087789710822429832824280156207848344872358622472328282653600874318019035409013274249364330949743209554203925449935836541890950777760704689486777239491370088971071749368845710193593469847886439251763805020279475456313055464394035798693809670551298777832519903190615341042326612171986839162577662824025684069631979861757753777858087292801712095334638439376749959796795864407482070291583093119109834185029161971528644711031483576702958307640288139131627511144456941832524313559868528224773135375716140948193005866983708931898781177569931916548428307425383275655916898643473726816233192185020884660942249224459587794013233098900867107779692382676714594400384795247571554742967537397635667716108531050062382550261818773930558116062177523760609677878756200219225470752176672757871174407588461908234922534609574235271593678861436834853435999093363758628529705557154915414222849273081729651002923553182154486817824812187408991013558368811763993821895903475396240881300455937561385107480194396020835144608053424921499297587617737100710273065188499984956653795839131773773516301130275415083130405818869945634560963594300404076491406885424519596600486192797899159918529807874584322312815306551449216811486881569513841250187914635337526675308165586164232017035413492227190972620864491804728783473728427870619849084142969556728194039809809160117863320479553442842986835947550256867164745991546526418628246485581459332544176121995833154168813047138885123876703417098831564930330593676801085834275478087822871388233359194579909801296784379959799296032375057994373632680100264945307891489192557042850565739558300740627365788611176694603141472297501894522090157668649021613749182064355032853368733415048435985235326353593083509052309116358234607156978643062495565587836411261832068837651927261433680721842829365624862651122258385350454449453117810374478884190663212761737805913911235460512242651864152113227161522410126529367664022043494463387875617456107689848149497623115036051969225962831467987178320505842596742612962827436528568219337658162047003815830495279891440794557672092097962542382758918068312540431866250495189832508390904982091888564149571158052499707178580778621231781065164406840960593236471122690526808082778472633806027624568222040542008833581471882342372160795869351982309342588100370766494608586067677408804215123728508760674432528150434728055372498730258606974857235054048921640466471588730545585676698037247331615780915455341219723396314935439213326644999011234488719826303984176278784560473595218266149755189569269251058458124854992498766158118262357923631339901223313622074326437339355934205608801992632292739485639417629327620493675822075675468657303843317793324675486131318372170740505310170286497322542285621520924310348940397932815175635512351623262135126896302236848989335603013849330656985772553101978462677656749876583023722078066026700365292436444242103168495132787805570379187869867159925804627802259826666827067599880783839730203058055687027712617026192938471951729811317028482770369638037136918735298677358216074487275416649724209769177247213511614870504780797225002894785952368197346519884828697201601821932933871786299601133089368491594239748942533712140096427709805850109140719239017826454047351174463924048142462315991279433842530851607517292273942891493916511351002963412050475641942851518254700472920494364753858067328172212682140952974913247183672910908026989272499301311948922225757802879592928278489118837724213997690687408221714909291110420699924928612384782998008891483712028943793697038081773015919791918327153745316457758601546140626840143476457135411150144374713481537296772381675402291052446736855601295543053075143888067143018752852818030799155641863955917511848908823143098719819991574120010697283029777274685420843099866426236545600430850438650348683931844257806622363525582227820218726402640290473091495208598280869581424528652407710544948362909346585555992701530377436993291479446271540266891575037154084139209769669779471104373407612634065652668722256549589575831870513422541842594151244111387642694562235254852900196601314827067083607857687373557971102749572298015572736073023217713858941432871663762684514331264825545722429445397281982924744881395160877533509054314046083723457725042270772253332730942192849547607416638226315506596492643883976866021699863186386483417497442153085470332948541749605341842831848396901919790745008648140602871110573219115960922074207808391875128732661144262402610906426026668080187179891369797647714408810366667563640377580627968990619802189609681774621330087531982277199016459746599068006398900510098864931315918354958003044084265290330132932457043481273188681931755077997912192537511937004048062475419866558722177477697062906665454840075054446718457821401062042558772033174677872401757824057747980589017394451298659321595799606060143405849993020925619095350671186866908809913539772663523978690813140640255338317808648014898862351771790722751074457586897615994948129237278748713741604956885125513302211491237450627506839311923369230759651755992337906860572167583233710134195762033626416840020029386127792861670086404986044718380294495295464108502893355453760394821151213490971438570255093711878960642321102083659994720121476495004380056187213074835427476864576052208246688416335975348515204204192946952295542657240648753218710149013312579048485043911752330928488226093542897824392844748514789801908154391956456114517706672776373598307003548589839058421841670057575516706407937398829510090572617196056981743239221690401262796011944143968157631889540183217549673325040648442462807841177849022606409544520006721059118039322920329508796525477165374194943601092410314497408556270651031942797006129031514492268700086102525845908164427281395760826543903743523643243945833870610321207067439750593567613752628695714372396560985813014263901083254011271415130108552607405840645235973468247989175904766589626408671839717994451011601775901527880524158827462356059209853964081544615899649347430957796765143394295948924777283384069483278935757587336336666731797585724505217114255530545513224099238558074033319030817906888592758584892941485814544874911636912927973291124897599455781200641277670471662126784345283128231300967983566395266237436043791936403304278801046692949479520647921597636864455725714830073342558152432950512842906455947159350414462813213712011677834562926756996499998653770310087334678302513570170918052050132046095072309837143298404538683652335368141428274738373355105605546276401632177122918035951110561934640078131793466646062259635270604289796074376575238879592132721239875620512057530155433340868045831978782067211399342956052617512399526595321350790279205266623019920459539661827664207746770051441906783636240700084398287656051261798669356070005168098505659410956723608845170643947149959309436117876906389700656924139645092798040946936649558944279965519981836240035415197795035544717967682847404436138853208886118049174542096241740159308927580028022510068323869877934061224024638515204855875058710017277954229014189705459093946856113255307429252955927221889143894886074736163936211720471892219258740537737585535396504703229067441909535083316910945658074798772321504662922947759332549772068299210197624007632103111220286372086357482615030616101301911234626073287804374264225304629392153825670484513990118766181276081290807241030032268559639866977200458968202464373765296902310772610675355481939815213362425404777435251417325415194899375503672154521393023868340536427246031236832011353856530166922650690602332271916734755249094736299999607762933963770313259626682844542282267649173158067407667177873205405318482764636475080798973616263242815173754088871272538200502648296113668663971404230515227762023307140419231805547442038426715175736310382124800947749154107018853228069131983430893459541270506450176086080360914195597321715521384812682243222224299554145589621627821573284133632434746853176779811711103295914814209808514535715977436435777857481349896522195250369724513871208883342097955838262007173444206252359109630784892927114990296041159748328279413990740413760428488567342211639134427673873873292977319186565464640176753543435872287026989847749188291986127733621687271346783578464915488411245186266652119122708005478367720068850515810368037462054287194336980032713722652813670577064839814371885403029162519057573781848918838656853232519191561461070969975714482352313461964069221061590321412932613304977169361944116657442213017104641628892776555348737655732912018514765670331314700093383577337914078299326603101070669643671848320056984592332746498320894426458518390531238826436653204601148948682923942233250417583089546333052990793404182722534408106122297398085230985404885939592820516479657740652949709699252281871133431680618955786322786674404739532738352225343071482203987990820697345537846921126359606684358467333316688679925175637478411046516320882592162780377232061556936676721210703346318529864403908975324346545784233580683066593493513806683321960992492719516298154787100804861165234513859254505146687564759874028167084193956069884400838378473937024056445380432796014549855184190179008684741265499910843304884650421587990962370494435425602213792876678897817600198898484186171980236689524548354059255593957123882474230033403051047518736039304002241115981679565151328312779695381289291952614221089495387321175569297924663708453525327284450899154688652083994730839135541461471654027750805182139100588702786575481414873431687751994007354371667879140947735049427530045655984613998755368105071605823150811467958559608978946136055879001037057742858628313536182847098584634347817461376870589550718397639348914567209736464046783425488571074506072802375553220703483603769424452779049145716101191717106029554685160701778401280393621207713439191480486740243960640268328527113289039036464871797377138766057676051599488590345857665677605144769027412235442203228418172721286334144259072926561767377174726147407604216919725889433258886304323551686293867809981950003927161407701655805217034615688640549303782773575164594502817374266276760251329723505456079786545044722887728025820694740070182059671233746476390183370960791191559628733863767041244979381813273439270948709139004924720262045719197564705511625702597366875886544538984917991966384039468871852841803232348680081731387763673561080769294331439710463566692811137623840879536713879615909951711323898527414002188664935648882848703936679890260043711330085355114733521774906971883690330070966413606858372352708408989786355648744337190254653673146833185867934662268954524314548654016862871191088988141183377248953758514122331236483622695846745006313173059796289096158371461770054346053209843891151351114790484830194173055935551844169461410943995104742510172060591145530509217681594556002184006279533299537387955959694650769035920518619524339067814073887423175095783562901258997635459479310594293671122922614505770588252157538294972906314210923848711985769358069916671811054941767671751545112804348766480248271004197342551663265447184145226359205659300010323834915779230804513439711270214560353120554298512590086440395046177075507014653280988250575401312697626093444274939635485584548871628899822646515215604095942768971031635376927372265987947895740639529983122842679129082272297420828295986362833820009772034841349491720238309608389744461014956223132205023130780435538229522571018677212635229059571036894915099733854049511404505508726471565270740156635521353577185560601633029878908345955244526363704755383767206263574035295644161720402601594815670430942820235930767467701817889291465966032244910959175712129566271953005704108820427002972209500406356095975342788403389829047789114022542091910272522913365849376046381605959297979944518909283930494386829087536887223882754002767691127814835099777933383699359324811492902872021139915467919376215250562449735425085502713687905049086450166083936914194002176931693269295833870340325641279216832627728048087942850221303940792752705116858216725826230453803233344874447891604310500666555926308719562595860565917159595913277610892242649931605838872926087389816270507732597232234241087715306178445608607593751812995558074150101243049075343749666305879417431113844513269149130453060266064208794018066952530088349727807181215177975582439700747988878416651652882812469009066127938613791165653690650957531998673655395546678579865666127006097117421043929440052674110635633225902888098366759587278877104052372601525125033466567382079770037095860879868574137347208637899774084661158904812080064176536388109159614215172090947642515540776011440926645695702118658806753680938566806938468653463137302296273623605373761246581740994815061915908332829288162404204108181731961726283194097702996891527031664344886032472537831929910634218672399150584789774213422987814827732942995645595779935223371075223236144411363644227484181048140846357155129438960398051554157012896614330597594834707293515105065979005157449442214010325908277136671706444222436600158594571109434581116080216620665988018834315269293575455811927241170430659378602434125731477368744453845174264673592452352813190580080988860551302158169249954273325166422447787124266436473712629653303771273766678920803131824607289137831591572324229992555280220223770102508079374116631102073920919333577140747853481038572062750290062423407067082178922998092120785658035445187481246669741999817749997950451024668091766909408963216177226568382791658284604027956016054399581572504475547692429837221921059851045571837762046313919839408866990985861314434223229200839493535607247911884629381651021536262305607466612768581383939306611874938543867194282644806801399806597686321898397763867812335714475871042968499411981176362730942169984984973206994703011941117736871938739405093742479603138068065259195809668147471959010442942914651999588887554344167232377621200255831716117734490033834521760697358540846390250781676547812802091704386792234532894311904731250870626005252198969553534306408236423695498451459467667634592732958816017152105189791065322538777749652884173764815571175118263329621085102890512649916456895385603311798768234515652905286943398965172166114884643571584407335228502968801429619624618055617940677910956182136550795153166080712823241629723500820040018556850309687733847018792084109910856595899371550531003041513579809045861529768665379848605690518538709635270064694086564945850589188538052724146309588866676048868116126311256494214098236701490483330357867096368722311231260217799635420507270061793158504471794123470757303553790789603327701077097309244102179865229041769249999530673496378594321444188165155657684265725529743406808394046831212461562647966753122402564035139826442693598359602003827251949681613146096875256607430097466816886560981918780746619433651771944288321114396673068303497697980608826549967277460823223490857171643744399971087731673633996538412542585333243012487929400472208364854669409208112260624867401282101065111420193558004260225997258757216739496520681572533968998930306972240097138292798946350823429607422375913072012242403338001300259472913250314127776448422014165088455298081373095050390714311597320116163861907454016200858962355744833537600778174816431833598580551855397033330560256281629224891260942216384844882108713822559495674742634347967124805107678437126558941522539507696442987393839455808108731623297345313310614144315937689891672666391103460674901690545828093045190480218365271300991599116758648661715097734545557846556793707459061985905770391182956590645268047173743092656324886818481415912426273651657124043581769415419208245620569069429164459574911449739083547891454443167474492209034813992479420450043617834804692821195902119872321233134646215149610928479651478406548960564285854993073683701111287264210439631578876853398426365465988061330796123605985174440691583442044499383891930597000125956903391795369111485174764948219428684626194602347934700742027524208107442919605836906866547048667959068214231099235791755116215192414395447009974288510287273670723299791808083871019677756808246511112132297306704564609795738626190381932570754035778695255605015901043568985985144628771873678300448168656664199842815826786943541340415463277609593437861042389405911958534240198197703803842026223916393918016668371772940065589567570955569942058093176365929877187325265101881163801029549412415361681713931330522919371231245348967883498375903708529099778704901318507767163119950663236123356887925219532149153847181151672173177149811582933174432161736264309284403112692844424182917201699838003870730808783743080240703917143507053034243276191599322525336859525222690828871401920730032033632956728738713035064222714658808128603297503467238583632556224464617944137094331452198576650968197207263292684758847781996031317087448323199905580074258606837394874235996127210747177182931959949960177381425933525814287193915224684780467968044091012932033407577466032101900772908817304001458724781115279082491930971771671192206281367098876384309872215018963192350537632812422023486716004674798028711438782995939762350032145158670411442090928388571095795917643547694576828522613675510131330952634452056090627402323573948636681149138245630125327373982082785545565312344452735105393243875693134664702695964278077286534217630594888238868271814368399287672565395979729102761300447612798682946363757214425370921386167468053231898009422057370594987002763015413847374956452929246327102727800450141399944072048515881236481624802540264185518476408252041762123651841099102785348886667368347038415768181316536948659889231426070961112769973589466075203749929151946011763136715479419771099186127957227108935488358711599945400694017562973825104941899384773318114055751975867005166208234193381897540785696652759357317266133341752374001830990398144680943995106277365760398390222823138010448252409210791020090750557827775188605289504428842533139323679701782535630138354535490927262743465888696190254388041374582496641626848965973549382696450366560764037323512262659536606009946646932816753060386915519933226504429472987848806095110875011749253093602006531772210767278686719853723303593654790397000856204349642042099887299207766567946420638585506871984034297701741213175716861691170330402426264186187180436995898129902964038885469396385946683901748402785735497521125436348659937196141278359109173137733542297859622785953446607069488738675236808598768676117200889849657102707557830362272446112030679628201873902690118696708563964626389003528447946795530795123769808193821090884560693906084827021573223685589805729727500816502365465921426401642845668539726256418141966190894748327480511106895534988356364920187382051374933391677639425958025298526283762368584733130960320680919154067804307860409865394013477294045283201892652853877426403768836486573493460657084708281305065558417577005414417060555245314557603650968808205555543394429199772412208686170813946191424877186178497964305958913702581687179897527511619275487355709837857609542705399369152146150078205249289470940181524312607282526783523701158672728822210957683812523601650551076467950443654610547778898595959964364129717098922060901992286959124492083000903652713546127554595926760933137650278568236190970457846646985071931129419297071532416527199686342566812407528718615883366458266305679775868015684360087611962340305143331215650901451706895797985094392029658685478708915040564073636291715612492664067905480454035580423670037145380469617056128282201461180130657592469610599039346268775863902838489325338559447684320555652016973192346072438716418316700833800372715992828135514940172331126221638756165906043283268440089159807536763974039662846268659551772731630970792786616301534997708891711142030703764301628306947444647575610749142450945964101777537179892231212251930554744563075780347560539509783750864112751925349391124425231865538085412517263559831473494061273621067510097905807836113751011309076010156750960097483225343165557845172649745568665563529092795836158912945118039541830119972581547649476701586862355961124875988847829185910937310720306663097504185245195980030479758255373287834088235978688359433780343050415247393664730234105332283049817648192373941040786865381836626397496456502505784978408810257401959776037293907507264344916610404202992599255098715428274158390375063769031313755140457672807369523205561646495574775788936871377638072085508035536195340722178904979012926697372374390669137916442695213315288215034727463956454879883758521042353918096417759837955027558478082128349191892508434116262760773177462104332923513946922356097329622789277435243935815556848830121836479178658275646531127743277586001077329009585244516845019665259508377318059212835168142772660515750270103108448980804185101645929546283319605325831527227554487894686639577175266446544816143166016712035355217377112563944601220050686394438594478348152727973144848594880090960369424216752643704088941340786028410788638030586641470772798291757756226297639609455357674048046083105139556399401523211191722015252013415775551088863241940593143283328769458290542291625493921419930759918382248714249986054793063264969896590138629465303626777158619902925327796145852204877287098969455706157500837732756977257260218996160910421883456306370625599362984950501379567834916252025775283484154558607749836766591852039132927767413064831227877888713606511547912312340686675324850551388074929182468126422346124330832394538188759361120880985314802409739129817313585745154042981996613364050336419335476090778291571987571351699526180698765528376781052821573529614428695439143450310959948388939092506217121403386050610490372242875731250477644480860892079258741758826660790873796335516054221030196227932491821821979178437325028508527872802698738686312825847650452283530691305903963989429136429529432234246254186184727314680622330245320542702048567007825431580323904233707811515494715306357107617020320718664403738263731452614318305237878291047545174052026933127577675604605160239025300191566946473367334235362817672509916751307714340119623210035681212379093510871894368697650102078406174313357321764822211642323160988020916300875089748122328773510987225437217232442064828821829262596287486852356310783525957684743453875899998738912795432759426487399713579904799145888328909236002411014614655357317761633153610924345920045069615831482552323162911079544527678553335789966800009980224123554035137942851278527403979675174042809912565092595773075027208854130166030809813518991917910021343605371354895721988157277174724018798066651587609898665896956926875605351052305055302744729240092660783696613098210779269570537602694126513918879612382704222992515145631175627433776192822025424382405845608733599263000828568565465428159537558141286165361124730886760690130458287292660478125794328331970684993486971759980469717633440094212398768827818392540029611998650595999917230487983080193829402691747794774307889210495613123289893601077274740374803719914137155227078032679615736322687093439390049701302105320572994480471773551367759633472910896298394409994239058259291695027053395068518110617946121147270891332255156852528486046922663273537064551612576474232702685715362248000232675823283693795955502153357836456594886432704969518225749399997880008747237826746186001466185597757601806474647499444779235594298573492028860207963905331337014099411165396138506802993298541968192121778474416694508504224415583341660060538499412619472274360203020992886156367827784515794063567306520532164045492322192314264275691970889287488477001233591366637057326876443436480475275927920819330769876172060762868628932632348117842349755694329988217147240842090712390832304802631331656370691690230159985345777033389154333376812717629376742990414282854805028448823110495824580586384491602025443773201351228784631986386388252806779748020512667895582114783269338007966811160537296580838894745354242943806967455730514472735950429171835906308606201011467419205937839760910778300758854357173413111410036268080935936547303933666415583936109355580643529530989505554897580492648129071894193905086060810742259764110190184309289405617323888663691305877872195171845781817207978289684034244841870452671444262643361042862607545325092475031053022232090267164945272467206351414362496265576609836781630621770026939016643550325055669709110061031150604764204123640420843880369099839739196265460022634688382832906524216434930812785219770876730548924816809484486309315266563397272700761258524632123733249102622579975811121411851001947276114917644529195523767599833655656443980859472640678700074801455266880883682918880132777585279122273741102827747170976026381848240561120288278196318727081649655404848778458267111825749178724490506370334795273790832110608558897416346611969359680946729901912621151008430046340717779845167353927584802591192588799684862860309444991836014240208172789744380647340557776755490834298412050658267042625130202601070143313560229536892404870208007672833907245370298013414675688017894564893460199949381166055101839818062159519416702157834091807402326657440534556648107377009154474345551833331584939045776005974192818782217680367793487099017488653795588082992254133611793780377468470187709324918744702005362639633818940162650914895154374385885502543385229293693096647108602375083074214921551579978830687938987436002787099013697493902527973614278902289498607677413512120932867682656199278558022746089581416229122808202115214195561423872559643397646274926182946849680784883871154399444633622051129920259867100438182970248422844605692649202059491303232620650715803934208808063126625878469303679901886308922549236687164009214120937838321651511417980751080181281311765176191942017680894187327104243262651626527419474739933872340723865129484091708599944143220455447921035571202431143514443724194352215377334623561914045764654750945758286660708840669936007413585404291787371405431873429335976473255287390618285102604351973993460413486268901952434829477340089220479539927473651064618595126621181643629855470595008836233013518853893293821235510260242537301864453768156224997430184043832362997102676986735040638214939692100458248990447829655891111333171004636238005386538890429315530895365186428327219107472560352530957882086354011053166605584378324098349293460491077687449095457723114569817264484557565677307786150057004839907186140600823356284532128023376341749743698913759915031804446200682871759077305146321998743847743736954961940275927484205998866397864110799920259499308832169892780975895084231030634991341835554976667956837552858243726523466526628587585339263141085751944772448206419005632846450647485686663123551012430170219586817883616259794700531336118034031633389563084375514447597351144208079497392064256783188958203848943263585358164140213600601666821789468202811974296188874029661540365035952653463617543711095479112359044019988792709484445892115437665543786053889370143012414756794561483544000884606765625237689040953665716073690303233735450525747999708118144467912538278182771385944377093561118986151232951497519788404412118271418948289654093332101124726631321454222475893885067905847936175431408492967223446690449139921342452669317063830416197369728606675185198406441033223336394697371428256350135382287083587581258345121324922345600305444556009586054931721212977863723866049905179449201979152782316993040818432024070135491651672641621503956412650224436528771078188432397738402088644710061660743096372182918352484678749854666749136848903344337045112825360042752300601465346775138261665565200703561835413331884409344542499885643197809376261518359936248919836565088810751406684220405749193235343992724613452372660373441704619477378327567514514612270568718402456794548360912202771275391536012170237169948545168557259275553884396198580557927903384840180222419175006934326241913378854327613211038162648167061155944211349545057440436131505071254614448252348426542348215483852206901507983706401955433650853096301019110804796421366734637934368477981420507262672207438082757427426552291480133862428584982897627770948034519310633765595330697079586004673284454622667951137597109026432622181098048706770363161929633491705757068310956468378212970263304993773731469447245322392048401993855676410313280828993613629243450206618019575738869123791048559078880874994522075473394915167059866354232233826385410719625529180070150374415527137488520379103112607890572111421981716680155419801522351531885105423005905022744715558787196325210953582131596729518594640946594980521236516852919465993890950714837992207374152268844145459364459071679300458531066204421699288607341093116358028778287258340418083118782545857640800423368262427176215772002540465686413616436812867427112507651045713846867006320987836421975256828159980825268854105143829600317384588529578721017824135135777844635966815957734412755574748956722966320992453989538478024981816141736665075975767045942632237904219018286992777407654800961195773100084094541181344738945325040530043271005052205159315355706029543727846999940059138154921014202100925071098285565013404809498332774634409507652290384783163222006452196909380074704163839452744047181093289905500431571148673575697145988112340094118586388970266662917504304347688186560840942671646926839131348796805286074143176475846333233192062405994380656856085834185627673564288424052106583883811120689515666650786849373509578600541490627746888150390346217592911807831742036463964796830222367356553871135904762366260786662924011334195388712598199132246864190538047433110225743432659741342501154776377116752574084649539454292485317795743474537331354697681754055318894867154712416642414547516039388921382744913342078703474206299329973092330384914143651481804921863084112441188518668390542048496849503566082951524627197547002829901742887086363751657641658228264268867408082603992272045988801692138887308357774628374104244043383981562966935117348553182590900621251192660647047265690374571116604138522403465778865113689560529169826514811531170836992506265576210220297838523453276000443335398395981604541976010850648749063910345539726292561279595239621422496819955627955913613825165348924898391398624912829921010703551606846620573148973997510405811355598223180319057973592943634205393723776957397478064117227569683656119627105477643092204354489663906519574243882512450876693835624380755581151331774310777243352627339553530250372405456578302599990952530396519492689419520933952011527202658308567816727837396427261806765875559391933675628025846421004784041182963688682696005980698914269016416556157485278143151135881897958928496327120546552667533732225462388660174897352144594518661965638189986231460034381233941611735217929928765525041282767903280116723437870733128361834561799151255216731826355279668435652152285316887578700900540794775998464828799287807208054276629620293694676166156724385590798364494176608303308741252185160280697531365235185817240832252766032800877671615088973229628502268060118743907027173251901995891329587455958017491673702542936367813396229710131631467138537256008306091430751859523118269812622502749261582741944156032012854189285838416545044829165042401380031486839684513298024424277493796125754397040119256434843382190823044942264751769241170002089757212716634138324500174358374174093927401091839532499572144102626750982931924704543181817684175010540364644431448849403635772756758857214889388495421049326630298413020616838720509752917419952294188627421994454097010883528106129117872148214113768758254536774872528611362213314349840095248826222742306510115709531943399193808122057569549402899380838502467654030532035310171568301037428418832296623533204641040278136651722463700238931048800529031136210675697516777061731781661600518593855117897760008479889698929702057522581823946049540225383422809707873817805895136224577592974450563552103090706053625055885785254946455187483395656263648242784045804469034985617166645343535761096230819181554768499833290136651911429916262874481343227454733459009689806087640684771769921547820511837888007376036387722496069536137195687051741802706523008754055438667735067478158260811339430454339742874017268113672477838142682162354383390883910125609907198780541772740988628289229017792352251922176785293839218771463531349095970666812385817519402448667908915910247546754276818215851307304611761277418627480043757588935783726681055167279464403539290429374449579112544521650288494075666291199435759491711663161265565512642009462742010628849979173290991186834340948004657679896753788829332683150642729976645799905273907240126567121030182153854774635631182951518720855578279833653234591747913514871861212276446471852873131938026731129081184514616412369381013158947439773454531978185466623184688650435958056188266422757701492728870352723176507119937607947920371067768988172951047296510743684645140503962872321107131344997105065628190229022399494786491337408815814569567703448967465235546001127528629238741483210289381259386503615374067907528535057636994936569587187765733904331899511680854880761042452805805234418751459563010437369571353175396570987638257806051430905076587433277000906800249104058353710484882050242227820048141154022840890787901895225441234187668529853530569033470741021580619575882293425007350680088230023217195281921991922484670082786024287579461627364736161573563474253234253679641187751393614840276143057364770900421897248418908866535070648798159753856565877915481238139161975496814791866992923708114441267821322952507974079267571762187709102037880832206004278531442235857293321600060325977302914305027146437214859818959660931205852621838774077913143596470127927339280973492081768630560472298166769167501504207961189061465836490079029586396035124877736720770944439788349351130974315494778444446330804305310084768645654565231819697402842254879154810140836294734876521454959437397012151228571502113712548400231039654998865683073964301239009484155754598788401812030879918781465117677709499959424845327856164181524535398110949752478614940831142938834183997567557769152095364018742388101538475512246904894814053320056535632489702953295400215481710025123201185140606378886218078141842098013119998182251589999527999579401441788233482289173361593268420649473684511979713557577487064459942615858873494190711367113055458277610966453966299227019118787653042284274228195220387322256096036545871119925900869926979394846268299951713305125998290581980335649004130954155251915175789797022984413856358614624504184745337132681045721997083250174867384804116999658322103939105664898981997275936612770657336829937168821972126763505450615271129609363144913479943084043034689433688448746164936014739716139710031105608884262824305403142332561054769677204501975096738222942831809172971926153482281780699707119851171966129825934812061168146475031065358609179417712834291626571735303837520284465054499834114723090838196309599916528181532272330426301120078105242481729516680184617244347716755526117326566977564982308543181489720073624274241918555755417332124627038853688564578513949987571768399559529118988907265232383294680800194184598504954171843463442357492395617601925207000820905612910001974089157099186831759386643249587753697114196052047942981250148019721638330398044156031115335234996899571208486483589609964520032000679178137516768444558926875590370135125966906478731143414673968475629902068303144948488908918238885758091040677282364976057948705978294166603096001667992554033846614387421033569043807671631614732757582125971430868635493406311690332214561637526168892958138741412748699926993964931334768482947868719751044053752457081265175787566051274266795469383111780490219286620146434658177910671720541258471387561845856239000298098852323941370253181662641233697694723029298528439976899869850112055521822115716485917695228581355313536017226059000309214377053610903066753577994518321241288806176234944687114666635522211018353596835844426884977038475113341932741031505846775660831059092356457361802154567830604682778737512848811053271716274389395962979969417202304790355039472556941156423588497009077795411074639437403395717380950733447229740477621697990602633082237427830695172776233217994880214454748084979063754943187390787090558670730256368975985563332707439924321566737238749685626301321211116688119785465361839095168135330292846185323892806337209433466165737857987162363500762030544571308220458795949872864707621293803576767623635829011428937696201816380682290356864786009142024536939796887640511125482468691095071071978053498379362423416488494324210000186917145161382890059561800763314846263480075249165261484641759572075959932659894517119427203100370783868491165272980524113614719461910568977355183550159877049860845597998154157606563248712291157249331555089319736480580519789115948643979140801628738013306327291352172914495230107551343461239853258371436123514101959840727964873485162024627298815511657057987731304577115010882319469844377820280496899862026903660732328719666175115575839268810507138135164047893614363834215797860866061676662721030128689759871739213799340351792639203565055437055557302897747916023348079331127160346431668455971354644436094486862094458649799142356944597992354058136476894217045910279263217789654542001302320078343023809918154674811595010728971587472165526618089005115260205068504200911424600886188554152119402863819861884032661598115518203633564371087282503625175459987435409706155359840475124634947999211679077179267246300185212378134111848254330460882274107820324776250929057074078996073596675579529654148256981550865686293666420650380114079792931280489491533593062382892521315873718310131821798916168638624311954464418009684890696959714577392183982357402095214646263401451128078339759964648149916047688394607258996412463647499361892115508240667390924675170498528656976149941717590549934350958540639463642529083441751231013957303355030857241298456542177067625272593147337106449549379250082318327308108030719723423336568081891433377755239538722025758843014745334447427480733670977349741965061009618854304342798820402406958870552927523451118290758582144174972624279757955017014415850704618990739754797487873153190453390856320934349554612314332347143454384164532294272683856453758872480932709025604057581221800647978201601084033450100803464833894429332713751402131081685421154145686956460582325130105869332739721109720387783426422050668751894940010418895360846508676403932390936323875561681202416014895710783942726250258135729576898375596666069130904974395155846990018756423995037961188833135236562812121947887704973383423489658824348282360176381241642145978618869783237975496455012876213821229469774039985377466406259341628857376797750398306204991966094991323026832215970151990423379896570743279996668204679463505496017360641781870760216594737920018948254539505621493874048353700127577097461838747995856582789773332580359891107808226919741831610459853179477003194706119960797545223740561163289329935755203875779769274317718169086072109141760311783179768593778561168178418923506686342074683788847282986564112803866175925693367010402223407768424230833230691823441506076330811554773864176786201891508794659667840245901117211521390047395134071778928199156825595647631494435678358608484204711668467611049261210108817812576118583107523841287936118737525892583631257382573925728094198328323827472017068417229030973919424157562672337215126406042596301512297815590944447169509740158032384179205679288625451890012391890443539759464819434874930126305693011467219290011352491705684095661540371741830748966756676491007021891706157509494443242860300135688275863047157413448006753853093931733699278983088211277798711726092788203700220228125927301590660791864835064257084516116310088414099553376045049142906373583642774494710713989097961699904492399916935845343368851709581233411234840656920697951474256674861830096744743466104831863039779982323872157836258651304820581304516953724973311647415719254354846422003189892714343991261534170373375976050835156947397837187619153193361079126546209278628743505951103532222154170189287302570926580237986414722218469332558008603802467989440039607268567548081969859944470916639590028512597261884104631756775517247778224770451044741009910431131355786266026900858324638412517504378194863070202990744064901168772675329629634124808776819327874020986788700862641889857567253902844286336028877164444248563862820522905111796756679898377995512336654513842246452575492073860092141287474525357129561043962279697787839708385103203947448063962175589082256938838141676046042694742092856724208698597405327659068645201331367752769352385147939721458973725925694012584395564656447916113416586231269255429788876162085926031781268868612115378869301661878212533792055966971089648105419570074233631360006428712248887878957778583892429315662880693080719410928438957020783423345628911091052701603630221680984662485651933096780473562584159117544524802116744644619753196857750316443803483193874601357643206077036673671586605852629296334773118298739149889412069058134028584873470242628733396705299339458771252582001224022365401182752708770495115970726531627824009506178989808132026677086188639724861456482540582875275940946632612490109075242206234650052838430240081037761136776111631681151840266638048669007544204189864863032997116278853507847148979882691562264837094111172016161633170692832644771863592058240396480387727679019525404555758487521245741720188324890054235762842631094765627459383205116974769463134973626416555841739963422563533857725228288888807736761040269536494718735714802763908181662107525137040930274483526493146360203608942654706581615787563001620675827660765491075004493113235144044008273363566001361054504935457614969924737968056598671655987687220697497201943581818447812904501085090544995529565784051021008792385144937249444413324349475309933807141515020438241314687103249916097918920309013806462271175663303308814562531729596647441438626488154502632013126806250151753710312687051143566720474347104754252086950209829714537496197652011769329176908009730127910625642791249479558367825253601241121350934284869228647115273304848084470316834205615872109183457625421609366454482510370772844392185856135141507405331009680621299190840763606275811486923732854634766441365068117233134968921817970861260897250259091428338085916339455009603557396197350032523864561510499699023453405315676007485960081194934778059100513649980820277007533218675556990171574400856236350199888838434147551670233011005975594021006160734685432984556699770002748419500080803917792022547473123282491674031419896827134507382489975524671077554841145090900336810151578769743881406998017831245119393778267812168964176551322919315672535018365338343539268712426324198743922619966229742532483707299592728954812046224046012683429580100718488441902261037759348612200535832167148384597278739257436211091721044216686849900503667910186514775393304665879617604150222191907979639579957721434946639953416886954549667609558071330803386862452676255099129848062303555092458785857235694015046020063145855370377946889260069699464665035718372269089801195796818360797919411522069348102302885807260923269934392625794197890849985016530472896191291494450058786689916735750271163328934580799234288679858719429519186707761487830096770625912902084569947972369810345366842221600566385006291434858195873553133274034645899577213936327059880056174483169550286628928132772135402823443770464204912055838255645675220592050732625767461892148719832542770252746743321709498110118290368491542209969322358424639541984748215116073335182036774622496786389410196561922492074297141016706763325010488747052754033995036154952300272942618953560085395711353518959789152196847478677997561167576719351954220622520477524813773134034667535071989656721110331920375542302112916902714983739723478412095687731649929669060641339387261419310470779891889155872218240040664085834860392226308948408084290289368372329050920416992190523086819172783554855727190402287699896281937703190892798911981253120948834421545818515462850533105598648048755053316739707714723893230601969397620787604005413057230119846566603096900037774694959935798987985638496895546943710748251417439719799747199314520636981642369614811733740364377727594590777442461011433233798081746333728205369652327376337496466214653942621128868093298992156345129690820807417708453307712554658688182974501228140508569631436232579139864412573887489105495526979316699996566059492315715520618813780544088254443971921955141379041697362276439562206986057902980720548015827210194847085908039888329393143911580283388691018073280287561978822186064684513110557418860783200113926608277287247437841522522794036033160334726517327597702307549490044971076446192641671640066111278908394465053918838988141913894593332479481893237534013593888761934594683306856370332459190234743369453325120280094971395751053344850629604861661865796822194577177695568072702523275778467890856910676691328272523451883312900992290813509578525093180378028787438251509743115796754724819964145489101879690745043040920558287248547715258741003169183748480111443997894756599767568343734688948372691531584621530312115565402195603918671954418687729996603987404417865399913765136879856848782165885802162821461283100728004647481337400345709700908409995263207343613703875537782671143543380825577872465527916633627267259542333027910694281631871178419240599655725333762834742551787263678221297764504987505351125516329326230214460381439073180005748091193140904564592063173080474703965596876273720370097023365048093151524921026373427216979921598094501548879510948069056838204741685972054229301985702619594285255767143376399697110512330316516376565660436426652066723084115420153026739534464317383157382230600380597637708359268879702991667034649604094377131432631196540790150384706733796449746790298545433297310126388089915052463422552784867486844416098750674261438945047581021351331388964603968505928102523467637260883614882701167951283666743773846164848023482430392767400257753756824228778825854028565946609155685594863202076503045366806341743177232256274165254244839624879706088491911218665636793817561545203948556894597906740402578147545386143070716269815655362041690755091561776937479719353651550317053890146958179450327033491621760838492174202866862841706280995189162886828063092303928732448018839484727449947798811035378426648085207568659925104652888708797046488214801033134288484579185431428901129904087570319877050636051320138862030446324273584735123891461622071142995532825050515345096895745560882417628793988255677347244560808839193421994599646583799704462554745194986644147830028154807770860501624173339922198986547192985451238484616972648573366587268179458378391096050833593684188619807935971594723012618722991589687992236834657244533207779729870759543177124175884330711808076284728742288492645269609972167066714351196848069880984232349113455156840474058995731287175817123033736704383770018054635648609265699144524110584051640169935751100730523057988272205117263817977118966388825807164687283981925238151117465024498976065705799326956181618474948732818416330647938006458243397096861071713837511960931199014013658621742716114306917503720200902594769685373717443017746506757770701551140164863602488816484659315020784022019919984751869655391032074191365694967758740096676152115903376674583958056320664730803238795078418004380206141376052496063885076879141931363699821876012101615602378887262227900703658362416050250899018005049738605784095528887901612317217037218535053345116631823577341981735198001751153224192698509572680042311781865044941315635287442571141863994015806564960228881484616007430494026303559396695299378952187976641797848290294777302464489483880437892294182867734388225020567462446720420969101109438141025327576405378472693258312539040490421247375506432296918244777459718875297374139456810414546179123063818167386312266630947125024151855330609806856892914366449808305343645064567086850301870928327508660596002659824346563496446201662571921185139389753348548220713089973779842391207878117321381975036959483959899414850957318368859081335501730417203597604952885221597415306233795620510445827846018380503983990879838007012486884957504947053969325981860977758230595155011627298540478205604729494180144447081895808939253944514974302792159797024075000550575893309727670005833412860448213698202456613109588372147638575692216293364075408103540939212671775965191833419152273923297322796192743281511933182180121665563080285290492095275856504137208577685567158841494339893065217135176063462181144221642367108011881888971626540471201852859652698973164875358115904740512359049234714672884923365041501901396832488867269851850556219222464159245188552522012757993097829639283102789903689487462324785059447106353052971994026711166823489175646052799247283558516562676298372924551687707043884479386159490094127365165839575723064247579694204632956275634013362652675961562012796721461504252913662884420458916388485270533540135368706491873067475822378739644057857339827354000961357368138453427455305848312210611175776560922843099551558745532800577884857945415360836473884116847985764466094489934496245510260868839158681362760195707370618264213780672950926277780466628749869718111593479669719290103214735354828315437984737521397481420937938169905988677685544699377907049614258877659519604418651061674516300219172839473601358027995396025987435070594317034820483435066172597255309451286416803258614638094833433935260298748365273037112609759431597526953454805680880764638410342862727881023491776037834556168070870535105956647406338952870294474592298758104617510738805998299778014462538849667271121134755197902502923601817882300828674417066880810597283278376079556279469210081621357387519242951167482300847156702424444333659679655682668200300153683547226541544288017447392220130197440584441490249981002759944701449542551935307820114074723063511293772874133653656829938711904051266496965962636114034886040121509439834605304670653608859090791259864033205610609584141844835871881109333707256750157948052416210913321875407625129678747785780133523130739144364782073551730643982581077775967116267702033328655665510255971684781298459302419189262838907852250991061567388028354280091111740990633468480530571434541168501455127588622526055274879556769989596973891371087733444380710405759313969235824174645435346308044890112136315125581938409390882215472545220442410851943914027319498022837296463377370611181860160457138253037484086384897554840269058993791189783047215947942865384310515756887599453662546295430953860875854997188508624714778738505867118401457092881587085021629771630853452496938508385230136001288653538032133948428246995563790397310382669314305963058459675049500322061407193155966394098076278155619351463910097040045325622058629896324285483883684766369653508379929400271673928302010336464525666391889333729105683221583575984382327301100415358674066198955009605649576980106375080964960623432367478965374363901401130215243606838842973598724528463326034212865271051381183529764769597613092869082311197057278027977735390729415974330121218820624109291518934705910483062090162549487884206638513994132304155968805035044712827912158158084371678540880357256801053825779479085654838063417308145664734631723799216769180046752892932988380136237029661945313768172250236009603826207038198957835420900828442081675812720446514695036771376000845224647805437636486624276014381056756505620034298846697451316150421934999202863721304860486702960248396546789160768912879139308768711988859875174336928917950934483999643457862086065640517020152961029498880678199144086425619154613909417537765472815617136051418681197264473822285126590021265948148932656216988785371481364565852894306138380142487092843291434307103772093346284113248696858682379300423413198189864875251857736665970164989974075565648893968251730422652338692793565324523962178745744554372987241875921322356741853914048267786859187088896518937717254720709582313168122533355250476328492461819749923428221330682024740170807444983391925075946127155844867551433100543533584252043672808854087689555667034579344442951090991044574913805329048231403419396651372758972704807085719258148848772075441422027030545680094836634877287053968141268141076015078362775843855043073661672142836492633751732161512128559809140063441677297283172523991073930591236529011085925949105674092770234768373585554101429452277103386522783297617017885714403603374758682536600217325432670162394978692492580662181373919709060939502864533249429942097420785462475473940144147832520353650714734561175472967729879233638027121053181519796138637020173709564608699124308238339161908426112605864842012586853948841875053728703702790790876282838061346027614571892892920290737956634532400708770712488330918658585617348147764068441855355544481457468481314078045380822329996966648086440935503793945459268497149809824978465600796421008981789761257474254994268885774008663040955510816717332878381553628678697665837496406197580596153108266943664807143383677175816333157383369559286006968602749074185843663114340851184137293493688122781887769934931026929499949242701240931046946802002929701774347515341769235454646948868033078537332649400967911184667706994652760305705278029519045164179525132947633988953831722927991951321603996992489814952432122782835783842689218530004741625961269403022160080979758754437462902015864358769855069100344168539932233735482530154469705337810118729208277119194113232765855515546602658016363626414521699299667021745757798524013671673766351111981531176708277177166461355377652478599101865788730612493470838140832469765018023937627139820600495119708400038562757364267863367783036764888049327672985679038171410763262590625021779645375458929084240134486857467750840897418430968920134732849870893404279127873731394686340120300372154815833046286750380671043155572276925553128539340683664183683519878651701870102078040357519181043576070504765812194748001699679860701351527204970742257698587510002004646468293438659434978182903162012012786642520556032485192960983641887092845230432235240857978709113914925645038862648315234948817791486763790514413972925004752770547806603207420949967209095877375731953210453016231008171732461313791156215567734535668268277098678157890925727719819637519964132906256465432610698533459447960756630093026265913648376344531068059671435586289046781421047110210329254983058594439657112972588330407604237381426608322087189156848047149654661220511384551828894084692975682094464371989904437389186647863761509973963105420650633508131090395014591471227978625730848025120632015028132686514188960956270276256638724276978880856277694195557195245471699101060148104515436485872406871584291308320969250346240132798589123665258145586682482548189566772609904198967377770599272905938216967049150573028592495506331701560989382069433328461689427315506065419079068423118873831929317133873545093274163263608326345593759317651629169331140314484621929698059438109732655666519749051315519547026575834249154352676385471452395123204491488652203773698924855802739245505128783737276697735127421241933393906434131954893882821552533701963703697438421873286821710997981935203531529535853786258567917744979829427023961543027415342196838856148591217655949534020673681429371505615121916569788972394705142087583279998772670200793260128548128093542855675178008643929065919806021039852959177899244851985662417746262020451226408008879634034077240584394597528357934462157994849112702750155837606850142993180053335968406806060790617154381066437776222425916631875857070675081620952614198956002780011176363902154396671870594658467333331762934570379948658886585514562789643250984664082903008003182532303492541915627942977334408429430141644725598080447445147683054851258479282494260961869643766679419528376020554244348925856709502413553641095689132194724452888364623592382632592944601769034331394702683846228729721256925051893865673709934088066473827389191858079775666351841094418759519662546770291544095896107022904317521421565693409787073700246802862433919649462744926678360158589712228832133002857873505249705007428420499750183836427648286616201477498526433760507122489422089992954756172854790398236495720190004095577863260148343049467806897209992349549945119905702149831849675474861033375103351390738489266632522007782973409538088079277801841772853306256216277847911735617781605918902648005311605562454424564555567012454668647656415612252529805042603698213844080709076941670663256542645274361224699263056477233845365142766708231513297958676264132842487532184626325523691358448617908873787565669608311136722688721573024527515082603180182705401786887758337675888185547302244580530651484947819620771596949165837744298533212364679609702602412000141883677117173304400463624143252975054334390087257212750395890144467815325605247187678166285333422390421203580647448513941450146124772553940002711553910182480293133919683489582972893404947868846204696849415740139415401468532156660195616184745751930557300460570214408370703030135513527185114991636146377114671694673667904877029466873880381036271012841442430477889401708146691473448290731195998122333804878722017947850167124122615397309720038984632883983948601488287163590351270322685623166259805628795834654545523858861195223331068286688409620111667712599456986681229828818976897925374437195657634707680849177977296280969733067110982628769391922767451560664488767806564058458765452350231559982219183684924785891758856339747296004446160933967349699074465826298294923297984276776212421993098086308109322129756305792006386117925979120142194309486662040839212685297841881805194190020642312936254282746016383324362663198674863370038102587210068689003035709995774757851340061403045319176672335496964717770500939263688640642462103762122157458208921801862830383671108719083960667215701255552159620334838961180495220141865031475896629180693901634711712782552330018540651247035304405624556706745375417384934968874644974107547001842270958658331889286278136810250717495444551019306772274058221948903695049576221145000587700752922771504885306011355212713859223069710835863257402387908169749909667758350897341497782248546380409759475933073535947746091091122130875859741233398411225047158480941680339546486338044075048556851614290002695883786969774558961327244971646048037787315848848939630095896122576646706972735034781771436965375394282789047052867981812746731065466159459682426510891028652499425445560164236128097616780374839733851942071963486152682903214287946288300589950284009810422180865203511889367423345458674094386221959255142263334685968325640057644059396390545857188617145732381850414235167944869779539525412229619908145945578731128329036106310722907823902294855979068385630172268353978354710896316578505266951285054055242769002864424437438853889492461681305592529679870919217600587179914477509623867942472247818625945147682519307879544918355955084391415844873100887197085268509382955572238465975821228004777674782922352119595628906173416321320639183558309823930920609312077215389006887023040552872630300341470467330986013130637451558406510978526842870067934478645426509827534037725877324040071530652413466123283620664923722292908371951850684748730445855454986427634205308767793082138413173033600154963320101252230970288207107465662488704383203751761145055820433933652487256142752780464111312802266041138786228172037934106351835464058880723144008009220238716847166171491212404539866595583877036722496386137400963403359848047985870324256937837300436300668605996019295832312578502984646228680920745823739539530169362742485612028034894213131930114277244147797300592651951030798249707849100944182318016164101010085451548403773212196555251553827183820139358346580832854750166953365322630822995900389164561791889916065370543825975830835794157470473359243908780849140252816685511990784551722157999509603801093688388570673226589891136186554938839491746086076998221345296645209620366095588442299649968332397948421129712655591003682392042804869949724686407812695312232375917515724645707501698068175358522699078973574814209897185284793602997464574026993208811303061198896570700911654677624606868744529083085244551334073608644368687140857025580014891511714600397375528141050531449559012419824306664195182115507058601888906234557284001544623602854943301541505121623061903425577079388243177421612706780018707647425521643046044801228089382994082976615919404240753386531670888604282813507999041850814625296629804784251287207783641769773129168121574353544213105758828552083996941427728368166321214876193458248249799337177132469664414678053056732442929383937084180173192837781024623477578291004593107936264549548722866105038684159700226118017797211060490918757205076119667682640079572629702300533351241513771460253483085615602351902508297416444858732611053851139508221550659439275493937298644415031994338733234220708051996309776268792402572455915618612610596381015650143407854895966306295530945649798207126042789659994773988948922800771546953332482426482417515469357213085476005564692323709977713431031253923150586841374249647155298526287067159911408573383451720764125753764920341891381757853488893906290096453666532200297765710859397284033051816773461685817892521103392471926015234349935853505213576483785972030541824128326267056761358871369520789856122182736196779535159496779345074064931851523142643898890670840025567439196460392866761771981501986230889845763239260519411524629743616457503182371181507561668173503051263974647022435472383818122513314199744182367107051468269940545653209607916206841817002198120587631917852324294859860883662246214293207647856546967563462737433840276485247422091091586250104976667977394105694289639668244792645758033504600582847577286618135163936153263877436791773993654685662897929374362934911732356600333342269550200968706784629519322480273024192643176953405109597071681416874936755529502220482124236058323940260514729212758189728746312581630514594181182051617833705444556800879580313091776972230023505103136477202104234601645564191902473275318642938459802629356699857347598020105696513160008063244886562157852333557526480868048201739472952303031868008450273190246443838971134995329591367840893130129977839249956985102714849950812389841561959028323919400937930544162761303728396223214830493516605646837451237490651378234843061860980796838799562359146628380953989682256844017366814839601699532917212544832511123537846167288119377989818720998655467931479195177559202007080699561417640713051212957927513595715999398684737672430173659293936342733796547082350759835458339941770406281649474330370867056584667297878930139547757741502714785265744308206186349369166558809484195993329502069332148461197489278899983496373668394936695906495311204682137102025815607133595090021626103662395575023043316704296117596549165050865396003931066154413087810645467197178953567544343874810808725423124351393192277999139846092997007071110237209371993618719004376023158063801113583146921255654964395612090635464706620639699360475340465389095403847003629047682354522750324554499378750706024792628342735673542280429642486987792547631937125387674394344244815424210702196491008604086206033255255712753261684746250041246135670871510897782912105897688200316120836610385057207713754439582160672968526052662026787535868952168321049426957372259748813981148982999669829105882083712413267550080939071015775465121014285095393952469665947162366705648594695171410917727230543583161053035015661044529780569411092821195234460688900889632709495307662867176997065595712973236334951419188295499884726252500042514884571208637123429999308070629284272294970527005104525281259336206084847169557747295521044449840882197336859537994335794776246728188291506951932513910939479869584098845392445339362002678657358049295931350152113799095861431295747439822338661792831790765880904070439345862320510237451726881738491130292153107566728408685300450549003542076246041140045797645416986355554156343766365826012701780057493367122266868950334287636208345870553573394773588654036993781219083920864695166675105231632642904758854318427721476170356350650079926686771299357683708987462840265474380593083266932467792182715393367019338584039449330289940446427918283802320457787442983528825460026436944736814955004398136603097286962618326421622922321741814636042265476484704128126053559042648978767747451052260071648665532886235971960334464142741799518303261540009311441535211387622246816275351549921665238283465616630566191814470645604461604954679780070525336098938321387872517665497638785578080493056604794667896001339528839817681772859538389303719171190883296993591028978525507344427367626200784762325665685186602015232655736004481713224379120266687839005764897248746000748941380228912615412892111690075836284949942650950683136525814569342250798550034183000413689157562445034849804143018247266521473501901933112314035287607633685194816553405376045165591349912578682772488825747872103098016446276942761373611351176953403760110457127015803753668470320601038212104434300866016116730455916603970456346643321533072947593193887578019769967860844052221182101735560761333910437876749278960721679309813340909224542568941931084651655586513357096150330219867512537220713130684792051556047753541583904467409011283366900221172526564805940932770860469593217750824137887309220635936194444064585743977376698832077042709064988038334547418098805358507215202370879981850099364395366063972018232017253584421890409074572217235062907844727667065090859130390540501364340928361515115272126354702431792410437954854565263913149685043232776450463245714325278976151357132561312608340508304044418147073095190528074164276462152488278364788602936256975970843897900945325825668002223349787178204273886543889080999861895310759501110964638297362010295021277011960493752572643698688540458169245239391507412579784733075636214835306465735128826447221693835265471384968277234039250554830168922500232396650888162102892269847830609455464005219732943737136325400618649684099701729971363707445900832440468022676126008238626881083842765166706389888509935618587613127365680839483970285765219951802199171768483424092910556577747195552015061865260892763776662513040838063660212560722842090852026823868368468114793275008286212233992665826626118422397440596084360461714787085321521518276631577236805171651851044287904226989211398562877144059744577921090683846552716377151822041534148572305503438369254911996884154249227631522190750041898706108096392061259988247597259108517982669468210203495645741687860012271283911984822619488884871263424906264104955338793011665928235641657783697369472311401223539412596041705911771826629106898188645949465588349045726083797130636160988259922730149867423569314179065832568239690739071182291812197800653744747405410241105145093995166576977690331058154429699549876527345515157661747161245109896372530884412961677227468929520816264823416070455788820980970921203254066248567077745878893058715328007257891476164941271434208408261032453969001492839209641742529803830745783010250362445600036012063927651309717468127788397148852633884620422231917160881795579175445059622856957599842580315311500945492866498538752117544534140521790999942258038804815237335628440828674704330643010705528021918404526189952364562661806588049628507300500953129997439806736322274881993160896825263178585650031916271535967567715927276984839103393915322613462461777522477537842002511887647958743453745419590070280858714869989718969793034045667402779716969247835207986793159356710582508723357264131097288651042574645687689632960618810426977485162541052439176473360743564735907584483894582851350136008923892131174371988481075337072196784149740223094443285733245967625996197413765111569574612008853076502913206443349281237863835762372555725059197542853695622209123502061065562854035050879153479920403665246857464863183687719751871186171562088649050484722312474115603902180599098693588170791837395516353875149711520247520103869604730692468301202263181933790831458541017021792706506607140059837874758196521378618034139227429090421086001977235136586357593457404853387609842167216212091547750100051820690027311595288634344421320451280056881847933160554027436830624446951979031635256433434149888451948505966360623993116100416609286744999878074887093890269589990120952142575875504720364370324149916246492030109779611719309547732487156398173691726364258682503994989829346548230899817942201512885206291809394614418682356312783179080098619680300522420372864766386081431206605282422273079416649918676924273702193965813011427193272334742611497122527046009567903996191522485083595782873362660896595756657411064318919812707398936909492498451215402827190606712768452795639874612787819292974565783276998193364651073436316133385806184506879966483751333654206745568787078833769705606903443138202838985611762661800358310666092042717671742954299861233227761846565886417559764394716515346183035960902697067127142468229734045896752742702009507951644496163399273176542139955281835298279309781487337525275360840491812741766578650322865932436337201581971590539758929388730450324360804090064475754215523381872883342626438911304227296153745609576719131150330280193024690082405932519824543754782696065527490278491213875396155395189382377594297537144167406949970541893846837531846903292359979145731291525777275206956463136487897468306629018623379656998791132815022380769829171650557227773786229448404794831838927706387659103316597853144887192382152572454018341628560542718001519603943996677288310741893019229897683010210071026068302346843617175345774601215502905885732997057699326518186442365302610284245928067714394536408649637007869590277931188588717463945938810328708718452543757629079638838616254025113806709863053714423273989547017661671407111988988920095052661547658464214452401860016855606588242848777173370559554131766240946336751041500565306445065235625168095741461495447441200781151764053506691343208017390524762985243379717261189232700536536088356142289311240964068605208391677832200198310166320041279912020126934865884114988610615464917815396864069643784098427716250410785095611608755132176789591537779943703327508398375216432667200560448617031555856723757018772512635827333840531063851213295087694185028910998928271927451486166814590788212264816020789878924508837142526966090679288491258165212249039744812051393693691398595776509742883593688217469703031633928367670125579360154653937813358463234036365686452115091828089743434427647459402376048668319069078834602517163420785530738720518741759164694850084792121432116004624381199370818578989259406074536314816923054824366930151333545055105552055815253621462301745076463670728174595982412168153716907935113956822243621096304811485907323394526317306203581422959816970533510666916053592601056718002234294935485997254285536095462404518173958193179986342827481699109683272456279021801005934371759972390778332434575067629682492597566203287381555469628382334702618723342161515073166587456392979275770630079284032246983359723240972245434695558608840053570541081520326926960128616056478194933857662882514783224449489112669072564034263844421167423551877836228802982743377093795194438249309964080537665588363921144971684459591447441837053120544357890990526890592503650114756410682788369603530551397506567870460900581904453840726412945623197677894138197219467556055264118201767788161887087397910105403830301502033770667374034333087521888087244406020011946670304929472184185569686917392812074130511862192455721704224429085170637134521656656263071923170360952995956291774594659588329487942708990695393658192378521719716904030301137435323463527912878429184628466686199788251271244371873845560130582285137096831198404766784440923111735712721096485083592812376910667601468104342755053423749742997615641247257105581285776314647735745540080775182672982278704135386634483006012182005718506047907146165177818458242822465204502641117934077404880443417058141722170351256522803812040757549133944880004036751306159572145155108442156429080513011386199565902127436663523006931958486171767414985003549074551954515934362521539069093694129903393552275652265258850622678880317461025860868285095906509101265399006357571242861566239639790930394795365879908763526613373528616971515141423272493688927844691553088277699074678586912771664429479687413693672797176887096192039591803090479195708464858496333511595781321717929507594148517194351719553630273789867734192072202849015444063192466456985140088597312319096018439707268676136542400317891304561917405867549218778187827697925591273647158919878155610489694333348983111987554614094510387549660893423113582511071008122114170851033553791711508469069336221367419657228137392362021877460503960824176035315976786448245382984436790347039639719950782600428644843126115757228106645423383722433020471837323713121650793369285108503862178601501956349509017400214213476058626700936860281582866080500028806809588816349018447467353105667504175757859223367306280514588713234889887900330511560379977528328825403485155675086344542898282265494802740583543021365084278344755629654448189080045096149634820333198546363263860173404539787643623385660923760193963442203288207376781197836712615171659601579800100714155320030965878509645991682818163096263848879405273978415530323871759694869782497161031777869155359628356916505837383041349436124359362070909962253451933551312086601731384027763861167422474821789965369563075496595888373705036694892724052476595415482421939640283715766218260960895938413838924884737238103883724194416226269178480867843001340411221276449909333334950056596665205054278200445667346779369387558462597968979707024336146658403615955076506043870882949393436415074287229379274453905265239858392118858644878824895327013366432733127149299851459261128798263207724765100773998590460595315665544025288685017511887646884674971746460111795438878362553020902630737555728717319802989612246437485522937467976217097237589636689586634706754904786467581104824061669475229825502246084110400506139150548687310000065117859577472051754647394373669935161562527796087871600431632517372336231090157237662914838176904431858264986056214522334567847631556925959720591409875154091441446292808367965943286846491535548364024872994600451839713508875928035845293856609567075780727653684219770267566053134984279947298688228151063401511964783300903242440199763050923026775552777630615915706384995597994184920405374096394849940605640019260051835507151454408434487257712038641267023696802146898362064973707315450581788308013057227013365605420658500452743156730747774955051003157877061846349175244674515832319900736729266514621730319915383668920308938161052969892975250511662788017859456218099386230214095988305267340299624309703009442396087550886317058668414453529113977275433372572332829376370528667378840377757413017211224216753236628747561125727135436501215107198064171713121394007612634660426912207530820068988338566848659058286458697054615415216376139949281206266487242193562514182052181442062487959016143097103856228974220397479373324091568742110489541674817662528503125451881968665255353058855178717211247676081863810332845942566799537628613632751489196813279139637285750167299140571040936018419711372837930716205788656144917801377010063397312529991786910167688629504760650029974518257414006499249243711994373710721552811160647231313373911814621824220326324876438830105933999105456184021944090920695278567534228740100114660629800330871133290869534902032293880835612688551874852366846419769477542101131617712763409957233175816204007519949138124359263611580136849455377917811502125977036379074861613944020134917643435381229517253451172431705240644149568772964428875147410387991667268178178084905972937756763587940113809449364015707578819789220757160052304824860221869438242863314478252872949972509151051901252570580389399919830333718628989216249326874261754345403012735351805536846703986344146656496109535849466940345909639632313702686443286903195268748954309575205395578928126221534563821593221056410023089974635371521309279053775790382634496186216524216569376904384329679012986110077919575912000621351987114814785968505796993327008218697127001099240145168481673692146945594467648783283463639464810158097936152538472805479158168497597286234434599466916759092476104421037707630254902827197967155715915695066229724152929094904724780222265725147602943723306909012981564159462226560331191716676417506201627119051125694435232630245431511285654874243836284748519873674590535369043047320720041090570038066507709590009518649599331064780706370753577386911474833995788987006132578343587055507093803574625804905088261389381675301703007363640375146678627213936053896854979802048604558251247561966674128030031162421774784020982872118589016004923695475120245814854605043617837484460048927794965761742242745404088984326279958261623092536928636881932793379481281056058033600336569588953828411994251453526007843855706677762659079547932103027678687729547849587470643136267884465350492872955595286811147165282764388832266029881486221369346698985287108807157669070323515640351339880877270527039021130474852895288354979579027287005077420922399819558486153018595688857111045239999348374058841497815672882042965404210693338384987311248479653158133406988812716271641911647634967909649509883362583414971353072088818845953946269426581427696756035807309825304613642692638434443154138027946242234085857014575334863817521007886701335904745962039668002274102258180380916171923630776127946464340604732855779453600957521545859370016112229931748994749645005162059099851721880201943419695196947545492121226150733466553161821821504490446759830809530703452026420518905562365950371509634709304085556323626986692690821167157112641457993918485338090211018977332478475246248033277010787517896596285501671375958660815976459509984710515654114689399683675603290337094203592944481626174582583492844727655364568014015401271422249280624913656746769741210261757946338261173746064986063663422440670368998304449820719457257060683958099598652777253259428251905696740712562064203780406576226375582685792922624951510189963949317833882696693167874520649694082760498435380910609989319616135303987881651340153553220401032977804878703820673254942626810349060661170610617020378723678091321528299300175273786252221060631587461360685770499069210211790833066383174273798223639141757590898896619715365853977167167197637178609165294324557227358201327087919882971350517795143520328325292348794431792194658474500867434386345336644043086981415893606001402628475165596866583240425750949461259596564877980072222335013155209920543756651768231572233661095415288612898697855113835932504443445616049803178743711205640105084093314727384656314024587569918199913352830486662197259299677531797920156335766286945752776776081549195967853583649046097740052400727516596781597159125002741039612629502762675322380290189088845654966837154711600419213117927535964518149981834775656137204260389481845992322872546192239373540095614324549921525831683642681163441575571548100169394658753682575735838420560065011245597990766004084231310978628037341924898858832798752895426505002422989627515025861946627238371423596277694761175587947677074709115181120060391947050522699089804057981339895682709983741563717618704261050654407865595162690831690499810190003932297460025293503845258168060931028807031296663794161977664717902752660996701627112314619045714128828853933705661308336495262391031211181280820243582454242191030855604077125917606416587709931333656108874393288018428717401963295409830106508407773716408858028693461138791224278834987667832095177406852407103654657065925404036479334610804931400392340974455606311376695029544987313843478183362504868524787787013824730277675843800520776008107109734565164872939943630228243395278432441314616324792192430100854211324398353228105117987330915566288728913429189500574061318625217695366164604137604133705754572408018694782153503820945755231726857451938129207281493105664754409293580624628407145639468470573600955855075387687592838686822600768795352125079250024343182269468235229282307260474639734545064752187863172269866756046829176387329040010792835233037520000897134439767648507679972354574225329671473231403234779124522158564969952153575668347147678965401971421095739029872987538762563490731665732163665465320803748512234542846924183469487503710586289146924122649686830743763030704815540134811555383042625869474531714119092855561314583986989022909030660474129725510769090237536780463974627619776923089883847590377960371769617562667499631814195047709791986641539239210733543081380956797418841166208766908498619557792519416089483364189049304640005564304021977399015949106987825712493389965022485490517132854478184668776757288065600904775178917076313633147934711305041915168767310127789885552642309036712402073333297661241168397036882919777888305502190467101615091800456000089876931746341167198291675480886740061815887429223108471185053495229844078623074149974320793909020699102857335194902591294804110246861152684876592334379787628316650413784952730376943501100071192419058969252103059101610028690383485900868821457197277533648086192963641627371629396311605071386046722977715490031891863772931106385728261665278686785255651663633747030765030819895927790894227606301706434345182993798012943643655637633342743158707043819408964826133941055994793324979853535267290337672028690319889269369767323435000211696307645139611426782915734477503387402271977636637359311257592055848401491411673505527919251747585863010404712061138375308804058462679608569943252727089821409917364167428578597614420535225331776563438037510752765029414417577395424550816409930200393354392075305040539551180577687396926471970970933099136487675376092216552375332962084274065801441070456952464161117322151910281323209509999822515986746902587780562936004018676740828690482314492001951304785064386335470108113655238394136786021737681086209961271310846293242111502055559958432749684023387113913652905036960643529311619117454282323078701870493931768799240852856327066337560212469068560915821468670051407956473402209367268180127664880717968453330605342563049294660134487298616239215546897391632826947705540484756217857163001041974983666833070915230302038489949404046771901051410463708502364721348610615619380711155322680358146789154139519764917077315864526567671090755157607659675585359949022613591450328886467359627773192685265336856968185584982617853445637190544667741429691643397857076839324988013226468550182513138394932618077204690141199953547605341313848997592900690573007007793096648132895587810668667039416083090072130945531879154246993898211150686785291391960224409879165804752577330106399449367230273509223852081989875192285913605748245512328778401385581151635400004731965567689615871140603937584992009860312756630006012646977439328250213729765533861845958218632215608213726713349228072717414652146685730624945862137803257002514943947529832340203436461127211239864184279462427950771092820123787449712437493496361733285645654534231393203875975735593037557135338137154688447806684142660784778334778865705166916492115355958717888251515970196734715771928238640708952688279211179195865369814234205202204189467185843838000709379075306747331049787121950766802298325049283892399618707654807694676332172779553435127917745799322235118687426549289972846955567081412147205989894066998362598684356441662791243861516025973352694882418011462647967997709923470464483815182333106819629473562067807567408347067236450615518161745846922988167485236257225273747334516127280895666573973387001803378981901847367955333446468253607787041012133286880373207195392739739167825822244495018402887684197392713061630237704221254995646996762461124190965720970946031347936934047864004880725696178422577065763095481478659661713823559195794554217401350414971985315153619555445829143364766301981662077064747349886930793958066362296707749914843088068073917404047725885198098977982956247792762529547001376521615282295574654148408131946243882421069859309553788960955740923998679881833184414664821381952971498936943999805213466796657131035070822975010350522335809463983325983748380216250118003636081921671284898721280614669212452967685943546718578598319784628389763382646630832543430010065293905035951441948178795536436959999324309018382101231655270501554580435889251748310599811931234968571749437383480756113619766564320809839458227033538168337194961044873337593826796289476809534985223461478638579800505871922701198616691596144017502519099279932643443266235229261514868177557956090537193108879018645138906465084158109224223265551046943843672345537846432857170139570127898809144671549611611374927381263856050463221224016978849615737143149430770683681112326951082532311853153748324141812209903249455446864566293755204236904935570504149861527058770915389663093977963329066973656206895478355213746550734617676693395726358503463441803896117460764213571421160088150380505687301386610898801687833290404155044548021649637506414333818898213357552371393630012694584113992016737603940468587990218630635949716829512001698071118693782588783649477071794669708764067665019884722559417941579560971847408017834833209828799110960864984422401826635358983457854622353570020554416344545309418031916212848467599517449069563307972183463287791387040270019657439041731489091499106534329115485443719279694431894189012387439903947485816670887668424735246716898373136449095609182414521022125627827730658342323181563883432476829361948164121504830742111353349660820533057433460912394445570066775297124289790995416598694099180623797770279707028016778931890466270236667314046871812171622327886043050841305375585154803177752142992681925304027695642388208525129540506862137662433734248844020368614396621221103143904134648305175779593878599301916694027112074754227371082341948044971317306083607290554742799779238477834406799652380485455146217274751878009757407235086884959491317497488651358688255196452816780027040302217216408268116664164770124970803104334026553887918187703090472230270720001105086280378931425024465978500020944786139497404342287832719565469610193307871075190171926525608249168985770033586721979829188431766361348449766349994884659720220955047838796521118307823424400001967447580094886465474201924037799441468471454529172763071875531255833443246932036467194267606976582652102381876654747060611675216548600736566523620161608319105272478031423795124422931817852884908584045385535449724501115100507540572133881467848466123608241126045529638320739693165227097564609180415721859068826960974175587190479763389367670418493400503847906365864190932266396368044350158290367278089668066948908085392799231369662398845719544889453596007586846338447328657286208440006422256449404313198682844287229424790266377713705276858676040978261569099572725761672131652100230993042089332346053528336048192319874179054976429438896012067958012658043589669636869224888070856860230080901248980688810692712096141676436054333815775575373103225272050394729537509364883849730182373093757434027403042088665648891916662614260709575382400748796395911391343444394593053258691866059631611486229366340760419625950024073141079550116541032510346221683988521401127159633592456234432365112400126218741359924299588558629818878613199637985507757608581412646667139329324452813546739298898053630723787927438568232073143433629196540909577248376858451194445225688905428885207901159124160962978056301283169586253722466778795209029987849256002152210477276283412132755325839600506195030269761788605630688980804604778783288814159970598168975276210359442585406716969029196096416744836098957631904398430817024977897592622181717474072504575384662056842180748009010594499089081135368016382757125488380713764874858750173545346558129452370686369537846869645248032035893603759725319032907794714841309981020969436494589583246552146581354962671832437650431571374675151925967429243077175031737106566995845376262486211268516473345568921760338299796497578541720792078265777956147648186608661511802511178885277980705744883647713383558160879059909401967108844955460503056984426788129576836234727923031407156487958545154235523084835246761486292308251530482302768961839489864152461135632014541016223770302282614896064898491149257665510354821127916490486747311455384520367650248730582637864711340346746849146832847343485459442633530454195648906214728486019293751014536603123664943186813693076178656787741680329840403282163755992345259398457697245247066104207161713895374364015228235260855682407958477708187292643471973780875754595374133254739588535431892404990021216097045669366623754637080639919274955713066092643125371745509508983098619958747918576150953775603092763842794340891213179906092335369828845860969573308375752612843935294168427662115530074001093850590938945644467344911853135413731344809671669064334599136759272111953529579838682402809446423599253558917754790936119318253951407050252530489860647022753603604211276774342751400710210174070765490820079019932933085897563922348766816469168751153184734010438773077897941600541494475995592491150126970825589373760947360095286809403228492082813827971403881147342919712015314284408979189804612005912696303496993994099054429190075206341102663784363185564150640811632724678148220038988563264656778829980213834352545146117117226283732848798759769331612098790320193495861155272251604446973663996130812556999229765350355521147130278126160308069764646703230078783633978255398935354301917290036722431983628698707940133678162229506913211590450015413241502982897530211831358327922663330749551058343176301757855213973729371576731943935221249265510189535398467598620411067468464494059899724388829920661403527757670116305524979299017283098727703739409514756067993740779084683310230882835446613466937634427700123026127301953223763188955951843480218659401594303284563728071914680517674844439173146289257762840622804131843919785378966851404388965487005374027252088844485932144078625243646898339469096459605581555363260736477922623625236607029036821849403272609861452929340606799427687807640996620370901180286518950957317965680049663316666953825272918980403577233649844033138668259442539290253080207804614428859279809701956189804007207467822440547405247065553953957962942929265165037878146754993437869760902913703275079207706654930286367799853932231942664381956184177011350199714907788938809184852567542927052916645957247095624159576265770461369638037745808559722126079261674543473263571785787943680714651278492935178979093523952043752813159522111760231571751805235258664739145389532701877447064808903705107391856186386238192990306987987164777220120780664505220742966943233390538442067148088636991540534953933755177903281809313091599148883561231527698938992041872441332351978804273485532376248045532090259519315617424457789933331046329745135929204889029727350419999295525429779180402308180310478031674209463305697729051242767087782661325512688388412254010302778025537757168174203066875425717775645689431601709797176570346929499990383423587110265709140934245404186658062950319143054465188280673221898222116531830013294533791183181629335598570319561315388520144579641277882259183145357788009950078425566502530253693208843542406625523451651356432133625807353951485621416346470153887996209424377481736521870879914018287190632155623246937744514956814077684522113459376726866101758412563790528447067511835305828878108476143079043684341057912545221767173881626641733436504622121020471708740927547972882958980071536766225635249542806615858258251546661849261167394465493369171466170758412762519891097727388543779909271142997664385698216306996585414595624357194832632740269160457058338684537081713489898357436577325199589238692304371028304597645485817124851435101940704196004600914674371688622880138034007706201352564403445877205997724685761805245022229385966577293409762298079620520075461503149052295253386740621656037689767858935346624075310391972069086351538867709789275889455854895063099497725878541168396168782024650955562566184191788906709639320788656129716696185103850925827946382583435139009568100069698753446289892995516245527178158442981231072065707115288627357150142768868338747406233263863920153102489448987109988641272517122485728754158157688173528692548704473831033998755715026668934636586866944062240272338123546307561744027177053237613973569607660601186018749177668704904226638091395644665523574774173258855198223554400043758551282440001703821135244741642710629272433184122135352558751573362066050579602289871646013731081541332253783922339681541497749309472623956055971237018771468307397740618191244314941691340603018165340153395959597436236466957186196605845710531005671267268882250763416977273060781114351086315278461078017771426933764969366938373040985590873816517109568685577030287737277144230087563905757473253892399748720191397785814478505119477790046114098460342334363304155645350897174468348024048581724674675753275020203774496964733288084983038839873283690344722562696982384714127242221440129854304607926291000062788078346559423225176064140094975551357170861604979617697089817217427603595689563963479755354298660241493034888774704940577142489925728696752138389914542402784646674260049216973251220973254473275740838941803786675539358903387280678429980800112056877720398841797790614315490255311096942569233209963759712429664663047167184270662046470132986107964827756072827159590085907382919797397751688319705797127097386221072200875680963489889989144742647006358518119684396662529629778675305606359936506332073688751529421453225841120165843560996942622297222437657851411789030862322606014566031352543220217235311618906924123499790252936406355030606863365725990388296035243340671105732879363166333559688460130046187198278609822537181420623221699971405602992864247642200396787501537090570638961470725910964392889876449289678989627210451045381085969525138421904323869406453393153314231035937500049091207065216170407928190552102556930520662268980495882084502472948639099121855986316511010096032810681623305107725404358620302093535825193889906070805095712055432928561269700002466539635925754436169724447429391040180277174960584124178518244009290824064134931749874459688296543614258928145484990798107895010888411080025157333208411455536076943057712073667643042956900839326369433336161348929564492381099275076649747360370524020350427998940621529474386867192982043203578749885333579195785186357912083285169010272716888000470705207183414412650302624434771610370129833473114372542630859595176853839672196543333732181292621887783394413111097695596144342189669923587086706261603401812055199181565294268757952012452882582755152143271684371543531452479666969556083552900811334397709069679134598513579716980359067148340573409886507187838943451716263350633944915478980894372906944693867052477035024054502807803286757208508943387598585478192247157951667982190544776950544041267067437178780215321511246973450942395674673013488469779277525041298179599888148324970859531398700893970049447840051027054264591865908300831388730946900558335179894823116259624097333815839196841424669000091289917361541901108307316621027078507161939515953990771973243688295194240832237863043792536573615970031354901612054080580643366731478523865369107201043152460485877902987926337563388931753741509393678318454660830575987108093668043814190238987547869406379921370833253464047121001869805656409954028566066877422800677627325419696500035799137081125898691926427821205656508607348423922076101990037132590090766723894075670393682231686512015745743716046584731180931416428612923387796478141360410853376170137587661149981572753195880558927509816764885810023509437819513182245098897482000705059601428103845154313355121888616939956473105133133085805834365050899742143358934533322582196459897220838298706250805030985339387919047654300277329062783637851196057178835236659028817913869549168175043880545573431753300931204565744120897279830631979354497886619440345984806505360057746223131075660973695905281354317567406116361148544561931789864909214139962601342571053781185795183480233216357409243718183467232588023609237067692900925693537524380834125646931915951448006144054381380562129131994064990699089841781487452569489175237245030348085574089510220889852637836181462975522073464017804338978230047853458160209463809895790173895037019073818042085058196386961992779113699962792363027579406341070189813984016981573173511089382932212946628847913140973963261447904537000651541093569193668345163605957784639497145748743239041212788927823952671922135010549291839319900052674257880609684239181104995687393052781766918952812656421373181584812111741537156907206626966826488569033414616690702345739299444331951064640559525367701914317050329320740453327230311763681289433236985853219967559266719540437629735249494649253081933889748186778302097014516670487089011641724755063444389530515324736293660842074862061716648207189737941186123694846216923981221691586112326555348640399287846900319440571557225343690286877359246416837696644457154131801183284767463142063055070917209021577592146298356858300974279997904951399402791839794849557347100965094787134631659780305241239245160171676896179498130072304546898012619152980677428521239506631108232481195037146477237836777130097748926163291126560427511633634439105088396379590613923114294812924349971230683487171939747642557322741340899736605056221963206805527701498706500076974149118486484246734291819548773236976406099281882298495780849059164157610137400859858642063662364396311104387125778103304094384632781930933751412906373747765293966606851202940651449685133474711328248041712075094208539226287263071817615003956299807262785448575469787312994093310406313442669193239380414995671234176821920597253497915204601542582509910161723098217156765275308818960640001804951071873977901439279367593857047972951108445263345544935618227587920436037342816138280075361426786232368812241101789585862984779535599095301303451653814929706537263034452546819075501629644216652321970598230715328210988665530937868624668474594083737187540185918271515623787172138594778696359132011752981334327693777883985359220218392256111349444021932382994806224398340771203305198534487371511637370561243386582034615015050937870666927776594935309401298719234199896059855668980437620090939248587622606538536055220911161863283000639880004893707320902251829796374415912797738706597945704228571929900265291744593859477272175350015500636654938639538579415933405046066363794055278188214519221600405165664872179856785702103158880561247665488399356094487808421713821622226982110186559818274951712632446592973418747452866531621671003146833749453601610425666253117931933595579126635016950276651762384379161972783587792034965942883419278974764593899802931499661312840757374125617913850487400148175206232346208663636872434499452196321366579615088150425984383499419764620581784633819397140969965424104073607522771981370824231852234329255869426275351825097228310177783839884564086147192150948579233163784461231004329246507540879382052523381055499014075072716467776026739187645815619032746731198707360342085058526367401392201943412457937388701030041055648438034748749979743300415523349598053481051951238332968286187392296598655239776796820605063175443275380964891567513668877369866777090690610856026300196245913138229492480149326479388318291268405391825876424184533020396276327071267728527246951108112158921750118338144553915942414115711476425830833865696812444992174777227941760316488180392597640113883519772408055744692198696134257000566611219009055860660242817011012708754951566683500711104493969362269565163856508243025543079004169515366348151347720129157879427315920892158408339531252875811256741306721010477552742255924983729197698986509589550137117799532106926069370133466631646521653475838044321268484643763392937042948095191893071040949502954967620418314759638648513431832233925454842679751415333803772097683029796194396016409010250924838296990044208106079527586510856746410042328744679904706647803479093781848241999038569709427791204173232572026462127288558414768894763795339200362540965722121269684564064924790374173758685966250444871277769876667597190606667583628139422386814723954481091129268350141129795879418558209180458767071479860321467394931561543894148280483024722478701178658084686255292162077654265515214953071994563760626291260364791005782194114915768956558066094372896933464760872666049369373611398237453112901277308081605878785177344817760291647431157708786546255069946658702666808224087856422420354219175939944705631571265996527950273778057551642756227697338575161320706889276753235466507282401938814121066643534229062202732061840382016183632690443363825882372731773237868335988355340792801115722848419008382643866632703324138162155859483720013774097097568415732003625033789353450307307698957257529503465571075001286291000633248145109617652983314626198298793929064689858611743677172543400372396474545851358951418116581514625597659413989187985534843080255006080080669185082413920332642531314588118022859677678353008049490082634913492374037709787883479885568663419998879917720670655801051870160876237656980507995995209076458671063828072902283462864956898220456066378777263292161972734521300966135237267419233333248943072637066613476394721654032193457841922809208111296221697164321884600657859578506006362033310004254183369316971336574827244565969586456777124408120257442147182074989315308932305047924628016985214787457887196787828072612321794300742843952862316930753543733930082630078947865025223424326845968897182032050717992957328212949958598940766014028749403216079512823838429552727719797560209201690943571950771685331414257334579488598476858110850512850053257444251406194966713177984452064305750611514593498021217778792907753481319289626676240922294900998568692606479588061463662870889699240539117569547784533580922757510901879512290190283799354552268764253636616259290783878906114486822385907738446560418596906144609660845603801515022714748509560348391516850988662280163769567371533467474131763557957073118350264367454170341643577856747686594663518890730738200714523605839254796084086613702262054816914362335728716758457543200505323552023373795838691211869586434950822673374671310585442470631888026921844178958735287792669591175915584077172964706501680239053289538503281775177898095656389248643991830135318252795448757043929685590322747805952369317107568691781604903586931957418441890919922341304484785234638253301101884219744137175382484399421005042794428493442745673619004226322452876976250542258981596922684777521573633907946177279857053391694483549397929617938386312302876587274098038627378891917364011567789538349296609440891531620875667934989891290045022254303517078646389478952236073403120051154969083714369515268123251546420939012018285302362981911362702993844910540590538975614898461875495208013321228050378922472094977994233677922975516705498180744248477941831796640094377053692700949197001994517224612351078016325309012588978493003568468695259066018167806111711587460646108209262010215271541464183392219236136238620198487603789691769592607531989887758440659670166139921542560948284237322413695209465877030703846609894920225323212891297617920087059114096640006756270515454704269883198157724250097897933493542908165769833089385735848029575870961253770019338833443128544465728499544138914494440836024201718421575578903689163307867755999059385683365022398505301174823017993273215603082268005607788556642549501091362448134162330644512990489542705850985573978632156147810070061102397506280982666975141879725629521773748285728192226537326662289100210571554717078228178850299178681535196284222719677209912545125611251321903346663549420389635566157652213684806534740588997536917650526092416907988425725278414118843241407464491252049665526170869776129668165530110476391785010465521630291081849171224558771976506413612738966907181714498885550273056339451084895400843287607049016171536990266849115613535144874485304540381664250651746557922060812693560649802332647734488686085477215513062456047642140343747963876914980786636358815930364958684662506312411066826705525124415480852254010571385711649778605083972480558487202374339082024087606615248171687106671232042895945681302500050641579451453166946913402117875700624578235362454994548533982909311237492436627045210449567436872571344397225184285803033444168711858292813065486424238885791146312249486257575707659110631982764677163478104395007250156365022355388627560101655325969668668800599264609570682932302412289839397670160882792521648066291246745788373633133368789619430359892642851008640297071405663170209662594211017703488515572655257776580603189323059502155054790094706188409454177021368934929845269741970334628617952512243045843456613691618255770826139513406511258137890452822500848275786485150786150335364349321946146991500994764097621836291027779447091379558389161894194004656228609887242229117367731803388608753562580085448822137785484509781828334396297873404539920169349117705808134016482387368694358591674655052389717709778279446217925830668608493903119773384277939888480784245769911340982583965366125574171506909882645324479784602659109428565267295902109091787493336561200205974288082160173551619641072948067038915858434096728544524192784303951928359977270342227377829502510253051313848373863014529032392912330909307650625493289690036448872002375980022319832985256438431255544773554808650215696261353913217691105292051250224176299955851477681876674877423371685314332093580252434146034257407791159146966919806203301167448922898237794277837956938759935095796149933031563914208400392178637843228001973438619085103334528961975812372492291369319728226086550950086343634997587429228961130187538413852205690155360280440951352894041153057330906017619916943046949509208181877474235539354237718915952051635026516458473495434379570540374068734216696077153573042082198527238193200270486987497987819237391416915228577450337342607470265503441717400044872064720932192188918933560910998931567298367341704770093432269697659646178155108973352898729900147617751753715687544358584471097762818678117124558974203572630485284087687924651393415688943155487129658659126953906528025869518650062267333896951986684861174813364054838957166180930480105469119067631902997313097343681134001889914055134460993434070561088402688971459416093329034476268320751474672185576009079233309531666733224820851060493525801308278105001479118734140551598100429377432110112655060489942629514711632170290236034461695651540982088477282284262962770825212494905911038141286414135567595767633746905299080840944664803863380186710512694494450874644286152706259489177694680581127171152365784255417014572803096198617817747494504788323625600464845540652034183013486307503875971869762595134148461563876772940016334044382665655862601768913632344470784377664812087848341573995361421686686447771732685108148941711856717084020108204863877488743138093896463447816182617476468874060268443836968288713793218546161333588079376133864601556505429621521915384539761019689507095513921065310287768727157201857066120452737887320739508025112897246920006380773239483631907408856117664110260096500154492596391276262626642838167131552607025168129118080391544772937768604888749992038286738251345504304637086831525401236228658321996473158398669773720090850312495604248587746407317230223959255965641983344304196369822764673056285267215727068053224871730645917990629117721535684937516669508947997308114900379482470545620898828120176205156263478253197011793551690132113068304257719464454414173000079580800880513991246388243970348700848825258560619749564580654317205316168661463841339827665602018353542366797959443059956664502297375287690839607484192963337216492558060770069691804557132350513328475635473220766086538916922105395017345153475301067833272505350127203374370258459582951195809121385231492915435522418595433573259119743937868334008978340348495125939763467475647406994533027257594471396208468560582569365341553515679482814423320938388349610339920433895506551872578756600110078846712853926631336065688104200632140809502519356057419208781070020957322074156242284177375905527301651038891662771876925808395136863781869061761899720879491695540644215401445700667547403061659219534435282937927403092861940090161026976970475261710414669741299508257529818284425439107455141115622414337878934683428137619085031334571597387212026238552001710434882542174798797278520422677457266147920847030783478635559148447183168610909037052222851843770655664325552980353536671597673817108280775122813320296265332954049972218379259892149936289718905053141711419846276923170725912602261211860988453162370471519718886135330896977463399414176535241369076383710585055508900207503924716095713922733176022241060180297546759950616333580453085543532679250819247289079894263847092447128799216456562653076692791016747418006291521966496443522388910760256706610763238073764180699755376873188362383730392837648199389898270479240446588848599964066362547865683115324229751900614602790620677179979059248844435927552660229180970726159062437626541804460783228296481954635305573041060804123389542920047072993762182926272161960746014638222470115679159629114601121400586717819538414459264398862521383075311911923384825491244449008012567896287466891090190329566127198705979029397010818698252204936570835691367071217867803616010311162038637509667828915923274286161052962028452373385213208632205154325306201199709540622372238260858593350882075065136228655832194613602737159956220049010232683068042606609345251315742407687780622214772442425892291764002079581155947403348873994932318612988268145291654888896995447451265830078780633817802007375692141169015842188125652437208596632821942643808420032342570919901398108897741700544137340249435253091678404286780010349909869384839652388135331918287758638081166833900939054391001710923803961747413809683813147213042458607008435143235237249595833185653051755687386969648017798625342808085626286788593342157219902081560538820391762736291978868205324422006920200919087557208436298786932804736887984181417673463108119146845043758147549089469727170005067495097051721127702306257494271800958393848292185745872253494532087410487438030612042268265132898046875117683208070154129898143617425608479329798164002112934286756403354422339750458117585324865986448938097943910817135372989453612112873390115143163720300173392327319127371555262296877271749444020587618798892658174183859506004925414302622371441169955733940093827697339295351411955515341546979792144307348790074192180347523965931374026005452865683768663924761236630969026647867484701006989862179539444414921930358721514902377817869375579051820885857470685692603066638950042714921142040242755065305841377756062482990922891575773249380351414588681684369478600459476441068547521022512041601866903996758008713715631182210168329495667057158051089186114584804509573781525415127054236796238987788112513208067547221857512433865373669439589926159733438042430951377814823500148739174326338037726551140377996617400755688347910803020266168454531548690833327871296438660568296965647522971820142477144459807234791281526516824381370478512258131050130249497066648077307925093221829939185596775376159029208704552297845840331777108790552642892647061757135081038982385277823528064813404322153812740578339657460070586037937089633863405016073783378293316555476189345397166628681090473127670925724406785716733529030124082431178384881782330594441744188959917809956316355612454283027840326531836319498329652761574913389845640755328024731519821514085976634359698186793110783167047113117283538495618572645811066712689379905967876964599582933800789053453805804553280444381532941537126227408299505104089227002010120641151710257465197577449380512745643619618223061611403826719349248991604090513147730777952246496477084995935569374799268740322026908051846549977511462700696565725131058170462877697109064394741458450955511614058921669939193041093456522495973441172616278761393092681242390356938165253095936476094396043486441191377215240242158047421888189632459524767747080317511634839738945157679749820122725452612208738807787634447331822992962761278086475360150352890969056276884456021311698669414218402902005690569046639948399780194143630250732968261040176895695574508930399831504738134884830985947183891625561477542455710896803737008045936991628093927372874993735950266269560756296467492051090703096612934489892053056519983265774214785615123865747058312044602958945512143411766605941024885286247115805848772853673946807457625682323029618745818331934333034080045527278112910381002151966673832194740923278976525392201779541336176912693735726000408919678045855134697042727694170910573279810814295749610145582608266653438503556972936015368958503791921139046811547870012250803900140638250917722914662694072268321088353433037785627059668890400657961567572047745659715978013190021721803242115897340780688858973562646759480911498953673289128231142224603274602342568442141557266123140486525746323546039131976237976346554932531309473781363833996347780960214765504321441937599885647921024956302650338107007532163758692743344933169507453043714117735295049805080616990049148206822849797369299312897472341958587267780989816886755443249988948095934966299593710819875252639335041238356206766254239769752277993531905950443972775126793509819191285376044507239351592824029603086504280925927988969399356184685116786079805186336307538630450258723258467562547552756708817822985679045921030593270464315067808517135004995539276605496781689574725043855364621949464246301546528429789791017634975842595929983736914195124251159591213262169007947196686470862654839325553205039134553601671483587215522540878208617727921778852946309363446214039402100114891362693337748252420889886923122590236710958535596862799044298689599674922569885376639824193392284818681772250553252982401142737197420636853260788346569216876261764595645311710186633016762477741393029520645385551611112650567221401289344181083783081538539505409853310624576752990081070819501615606453302235097088244038533109862824898253639582007885673858844734069875794171659855520517278750062850034561031937532972259788322264931656749362425050074472226691609335090327448353041399945353273450284367751178041594676720432830178090656340737607868408048132593920091431797101865973884868914591115931507270370117165060313691300033081164620025394307192395693878552539280697010283765251531095944790519293463695362266447687106685304267918612525808421830382069079882977272923629642538639371311559608635276941946148836606798167406545589578592241159296882025166711288900478998124389721011627975453043678273318152476993164785299237055849057073963614348075135743168819594930395919763764795708355636786877060176115373279970690186453961336167348127914372856769332735091711642512463514078696890448184599505567046993902975311568860921927823388695337039574044284042286012287680131882433806231672181002780799297712126219864380849610406815863610543077200889766097715157303710625435911236580037520525302781295173348374209640353773719179284033506420657406068130417596833713907632252548832223163626244063940460576580194152857674398929368512302100966550979783423223779579476843755620131361004952082837423871164181575470937481786558475315719884552599624365354379826876747215729914394108906972446090860491391035519174830228222432202567452848595706515460673335725001925337990735397293100669691143176415851773305119714833000013957777835359577829196663704844739789635403122396632664566968879681276140186544610432860938361743862339291265716048768488713770470420969002340630476980504570625847793672290783716867663611829129310259746676264680528469238888543057432011491596843441743837118475221781904993526657312031803174534420156226233830322707573962610405972691623252088434160154973246047072361240525428588121403494210759324045870288160932516589616655468261613099413766398347827768419459340767118766183968365703554121568667261517686723439449041650097578248796478181607925192861016853496213706432615915409641125419837073575390460110416934005597093247141622740528161859614214154852449145016035883955839950694220675059678499210892577255904885234897012923299584978202435808131759175646700199705118399114768942764049467320808837010236559695551475969091385899361631289427600799688872349652896752826664537777002262259850444642776865581118233499240356529793933544701495793857969329277452665455262054007072111859104625375391008423521248365461387798347919051840124817216582619222763179026879375979245910522755880448526285488515500563385827845593470668771697871564444439975208070311266016140949378830657123333872259739404364223676337931156072647158732558177507525220486469927649462075134650248161956603244373148511357001979702522575409794682099393704915152311346147579761322590107505970885771377351506874615583827326821963775983086969629872445709320704623620785959052869049872999043807959987712090436472476190728439920435521781596672877778780703937915446288641373016748109565592323777546750222926597802700656341948307986635805271799475354918439186782265386153385918817006062027440083854141660156537405116054225377345186705777427241655623465378777974577213482370493623500460726534868117442658558306617856461756656944333717741291933179062912934770558827675393907345363836234304629065831003215141791854279404152252347838263050861257990382343452637153785599801669569397982063220605576381277404523515901953469627989273484266247227985345773962372090532818119040833307240879929945048097273116931604625554454916783675551762009899707633662072416828212175912146199789207895556858126141266471454398986445824641720568060451959446284068068635194513131295896229265262351388565659794998591854710553914790966786102336659566244009021051997434946699902885416672158977192503174714078875593500281962385341265857152113671325359010428278251596474894860898147729556586276777985430562587368446034047250481897800275700370181245666131190684610543397193425572223821290287820877427278475667672607744673534499092716711666716912092015435440478034482327515860980025782913801700744335922132927804438385439115414570440988456698041745475324680629244830480356091063213244408482944061116252176491163033740889494967706250161988713559751239666800109811839191708660709783222177839655803571342440069555088860746834429084178452691002463010173882504178721709992612635051717599594062854161564980281530704177158950011393281344119964716034622299686930879433908363782779395382773578582680139698052855677867887644027714224788456325729522663675412744877727382991334255283426190442676127490614004868359351093720009020908731012455917129579964662160720975683837116837942564589390865677352999300375459730246916294415878086807882285732752182991986203598171855899180787619647024376787525782176201835648925403247490554110036993209970387104412098539332770095726655764355042202378327905750722820672076019337106886988211238037087906900307551880478785538945755825656167472560772057357472622361153698582035782896590030166532191116755672903380031462713872004622773316821171938683149498676127291278585510955986533595550662831739120547539886326753439325692569376609568971527031810131183723749925724716269283699268820554760660279217427070375373463456357438293237711002029759614136996167653332742040207457209236447924851427032955081504465716393935940414575564739695440373029905423673731870675767082953588705388429587190164578739897481792729758377011900978220370944608379574244878611515672284642987450269361485875423176864654233856074667247785475317423161976873979492736348746639439373926164068756445905561290088263573483145288410190203756191388989624613645794823221700246182629146730934101172417975258964885511947166352751780078153131917156251624249511674866513419110672961379749351591701240340191070549405752452292187712689482899736568360252915443132571523391397201780877895865471317008370442166910491211269154114705571877722172489590007471778552773558440005710602442036542088954590315662227659468180623372702472385485776333174045424643835807521950234444001908695154362160443789077662494481101150194798471923074394283044119158637487184308019779318242372264461756876758731570507806737347647595964785868882734107143847008244584255589886842333390215256908103983655203142301816102586933581688504328110352664462106276774858522779935303822000530246502680624993535931698658909242648525580618528713163675217849985093934572822180500601619289884627685699243199917033007114129188535461626693030499968182022811865807012694605827781357259714319796028386437136544942126142920314512134855412066252809007117405137485093654022677218346305795759890348061114886464897396735209199720472631762608275171130023497601985935759657410797370206901800203729737252446950232688787391142236080323312305007810394812448469671392493637446005087723858173408674934288650921472126806390934569935259368277248354090891985448747201507111675227043122874179961381914693783429627263117515732136885444712897018634226206880001887393564272036625453385996289640253130920643325708463997814675385429752993119171627284788836896630900807345325072475368380178773553810002033305567012724553001985985215868119685393483955125859385004002660598062793738147549397452022153555615232828502384280437773662377580001158933002773218969891415761199224917118333077786884264043308243259331118569852089115554318912972820161495027530329219749768037392418874816936847188946698900102945278700101885714595446291829146864155281175733674958115817544473898135251790924298714168015853934094738292750860890643123707123982248003027226338354912804762837194636034285379847778182992876295178590101195689902020980235027402237634928351915298558428465451762249702072031091235761901067420324717181574158067959014186913487229733672310301420304148267228566601257293987704737246370452712526957638270588663691034387321191154276232031556165200791272524592687563612330132013590011171290245225915615861531094806477861146905666256571713018582514668777814600792957766822059426848899487771011146267871032078590457532857987075512767909312275192096047107053641150496796497541595839311965399250818348359393996299244814454505864572858453678405744591072882281459073680903357808001114700230714268969207483923925002997247006115620991300440105259868410214392390745409375068514368085418214374601618531009151622690041620404510328267980255250131643416891618978865130288428958070997246833362718888717794042650801280996405691959321883788572642007925881613095901547879984319171986175501235605129752510246867307547102960170324091278376123537044827396490216628406205485503442185672033188433756372683569513039149771522712778036364955927411207433790718952115990088206960949624226331770836525832236640772018856496482280080363075092072471555742996835841106460438776149862952710129616889808381308585917670198744706456731679525312833005405106542819284590881459015550912152122237198878770951163028745586567210631309583643984243320129262093181930858740964206353265988618097756688048358651595301939735992212172313689450086210829473920371103038654561636046052024001073210001821239749033614827159862790573397873328590229739140342047349310644684460609699368923052144877482520084619136833043598081047118546862965631866063004196737858173355675824800422035009201834567558171389767759054279599424978085358068696247096640657384554970403423323894123292374952350101790927896504940718998418124213111141354794882892982377626534647631403828149753866005073301320398848006958738320977227249888589129746216045998691710753282027678137628044147746470147617274141273748290870488845522310910126980595719217381722722231622383601637473845494727089682966343539963266908238714207802752271112098025538570442681970751806604575586267144374918056045854981519307521559441385953564947156681378118766008980921599312020255566400342237861806992709107505291825006194708031774412540824581611703150100829850792238911426937345558330522666243835578513964289211840460894657451287766449409909892230262447356845247464334805404659749126258799797164213943284502396203571408715054146669163670581892355670519700342471539885236259692456426683296851707841968258296922835243882780733262714108572970945710467284658854153439646054888007905934627505617394984821085608280544173335526866499160427141936636261677519249179337573016011138494346545189279493931604212400951673840794352044822688428042131968985730100242597809314514265753881628431461257548423438248315287185951776451586117288400736812690239393164210901762978923914018104958846132490369661044138975576437335506998250051282973051682780933965697590152207028398857929552353265564909854382545882324082680858296645592714846558404839136514856992724212170108222245614372329849954187784690184398058199894730192072575007996393843576581221226252993386470606601190688664910824877790300738235202715665613465308698355727132101723404408362811504667772964726057898514298522674427729066213688351103760436127849750668006479443127638381243490843245413232495641932451324057865205910227451077603964150856005695796712693212612365354479094295044655449993691301457887827691843805292808376583824162924566126992219250037191864156792857734459606257631717782733293043494944604465670669492132443002490657475527145152145463845400662321197268999092768910605762518133247753182016940100573746823313651462243214254847061959226031260663654402724561407336380744678726746616135735717664635190348865627128758541280935955510834830099561049264302905424780721633753198663788073467626791843852918263741737909134119500053001421469110320787883827943661234040068364589805411922142605872274552344713192876517455989108946236037851196091601696680364317601985750137087385194676818279586954836539135989836985586254061970129636154737373174123225413588566666677428094439633336298578113601696881512926932726706000107255070198898624776992642940067695529856768739865270338098837086843418153987179025996582342737035802652177659086042262216195958134587223095129169242442394325281926259132503157446984083275933983830345007712799728301906799071853667512345099973131421636698310651013385136907686433534042653720064094280714820424534986124561073448745075388556006939979720454815223288810257348670892153682654458829621221423593966497862870561662813939413249030542430262118933874364061662469754390247626856516363742104076614683220518071885183413717990781284914303523214626281243533465914321748589226528795072649825925822150279905959582272719554166539655997792093407528242198181092131280110747084404579028613188702081086133346220146932896529118113809666681706643057675387991289466179068239302948831617531005340582218781239451491300313490822028727747649072857403274734459849940645978083062304098450369223129012894452279325281826057555658488357486590094424023610631833518314520904888790008193405765334024934091675742254006430326958715284070094979677537762786042556119878255941999089985603131089995662389807670920346393546296562765877746787823759682680404534308443131485256202257934559367907940536957614862288665670328143811504323224247892791476163379183912862051519979536178433771495008867516336551066298488787057330844632790248046752152221827272924885157861223907317833203815117858210507711580835056368841862477668200048694103665855923449246675070524613282927126697725483359855743272120781851412028706688489030490686649073136415480499099328515445521207799112039331849905981698400451280360766860236595729543631471324794305887315765877404688989927765168284742584547468680237772781146765850470395205440695440454888152907245958801701951546150776149429764298780661011199932283329552062897462829189472791989794340899856412138510194698068582592007642131241632176933970197573524722605619194347049565073507579349050551521942829632973421465864589606300649725854691401652439733016192877292870503227657274565534680229878082275152269079184969044676176597616439666434687168471526880152609601427780972888805340319400207785928095542949696771785377305140741127744767516425998178158949077650338544617708828783098300359858876001324322045507046348306203422147389569228088586020187448825758773000967968419242130160347831498106858473188166210797721239269818998340638103362108203180071491570207542090896259258005873724069845127963163071914679185578993317484830040004735632886177007995459102391223461263025865909540301415904574684354074238427626227205595491188773589919754307560459015634432086475474790275355706193795612011764800338728363041943063560519400326914032576412985625468312818434464159500962677563986415869732568427198099044766859053886968138685516732230818712467204826895220009233067099667189678928953500819310699087088287013584083547686462215329433180515517687048498395676540507703895633339902819241226290201430461779768240641116530227402723887454341770621777672946892982082423804560115585880083513904983665281270271293485271043319930010028433825266746618797091335387342032093158010411351131933065870617769662000238961061333796386812830874255481515328087631415823894078211393296596907197955637699078675838816435538441286992532316053452247479104872089932561781820680549868455685530848413117622372327603689666353968266951866172401616572066113535635727565795533759234104584750245120262863322995762051674306239128123132495832470963091738098494595066236635737510042130407273791709955949054280050662798562413064975797047212882072479742328094600527760061472873319717430093982261927827735102925467930301958190599868853111202532342331974844431484596655747553737743796995906992398495753311214700509509220195758596463897820612535984437565339454730272047550315862066572550373197846114681785894642841274076051008174213682646733468954023951642668799158012491743709136427054545082733755612449209081156852970118333021642272537846850503589464582673506236616537984477970875440447713035815489401220083116543105278640601318313646301731665279623202329738326871413341213602590304724408786976831822324186639264274769927637192739129575455629719552224090082443067574359085150421830114549563279884868333957346287440507678918929342302297473302646191740336802533664347130936235340585189898566088276749179416579109405896278936917441181263339830464323705175146669060943167829303078968437171443529490023180194782425544949935656415649517850288541253466576355271839703632558229616749263601968597208363719248405603949534725998528408766256794465408169282446355888775201370788107196225560753494403005485597390223137719967471734108565716631211427966321648140425031830577683281024054965081295368186662114925408322043741030078898001762566550081973300452781443255522606162517704006396412344792645341583862534908514130029592821042933252372844121153837847480670462118185819047668150359604773691124713277895208037051944615852686531155386092091842428447329092581115108833734126361688812801872979313149392077932834321441583930896644320666108902131730972805205633622018230308241843990377642467805008012082251639731406041025700876086952964558189148565143238857396790430891252096138803273546863249052912354820592632310630433288860725927987422450330349366186307751647635665032787648950663347928278365486308653829770257369037472971197394430836530259823996359576910645729645528333803720453628706776337727951175807468412539959090303666448011307954146375518060958183554462570309298722197548245869233948957571794108935622067338126928057770513084757471379569644519387736697715843137085876863817338208989612294857408532437613380089678346240350465420053672527210553321398125541885434852505363952427384135615753126735582599888311025162240251877464681189252596622479365231499798305349359470687291298181914840470232660297385395966327085817152528471024475753391717238673091835213155933366051429617974401710140200302824045901882179721343411935287156819085238193158715362462649259866378304387732476512409408469006887728747966840618693553918784618204124963526247814620519290278151218062900032129947702834267630590687338272403235149754064709652802072949902495797381292567380659560924457390257924036955078841621663632084806510974853340171818368662361058309595093087470676149912751041745070870697955900189867783277589620199292302414522187599466534102280423107111884649660787787613262267186148072555734545333203660227075398508570978485686380818247025946768270714651198133027092249806592095154986294884178653480548197775828691091336776049304696783501782988560402131890685704561740394566135504104356897427461930887745985441621334645763170988829877279468728880041019255418405079769763133411020957813230791075010405016892633576448314590742954082636001905631864925381064090687661820524436444066973441966627281730341174742225942222694924111816688476970202819331173799033399002507614764684284906475020084236878590704519628953287588615428855371078414342512987750207922481857642571358741880370961260285184632720321342998712486154046900446971946440966415023050686806718396961878077068273695129370173637638981638378606418530839592340178864453407442243155063722777799726860486101459096869152137690695935689720263357115247470968060834279344898693423617221857417221866449046354840692802299328249111041587754639991867575928532598586315485235576496792208846247642413707535344312630013088791842962424282448657476490207864298877462335287372736449860491576085350440813063298707553723573038907296075589465244184752793817018552501887927386997511481600857911758656012666040670224966638745085770373095741703403702442894281690246094064260217619751477085282204597324210984598616653759014961486545426558803330888472334309979079612694911781860364591291371650444529411159070008639448144363521376370574213366741028975223749368671692435066270757454463582552705397791072982349015498222302428586232129726304190813334480827140037991148732043966756794266508669695144520041046215207908862086858991446752282390688474591121314128747810769866231933283126563284990392408628708438415085300628932086692813408702227013105739773220498352900346300612364860332426166281309615177060431863310075717650263010752579139158536476852410652440809410407044674975257991395915301348420700419578939753492418116858413630626116921772037517219084325491721865837325011992668618215640182337538584581229522506079764774292802829985095745082627140786491209076665371605453798095118894033837336704224740349715436847309855156620099225995722529501220224913644342643961568462930029486176318097486670787913850493463658176921996327834319898852324720916804885683720058892305139275675431156584208439967284053658946898638062068867464031931267365226728046902945347247402136452257049377397526725458429996984895027285094478480720870262835980727490522028122395287986323618052897869688493949887802686928825103468690436503963836884291687274582528171998532324983784930936144024781498420680088169030790004813721638523183813535138626935761378432839655444821902689777562952386610975513529792547138101249623697224726914330180937755664378374705576470230714999515473554601354290097523919866186707115009690995339947450531750793746440775633559530710318060590745662353631528280076980239451483222412700745383088416177531753803187280570930407156696751750476808986042987780907147787354910942930108185445502592628500286339232843968477233776416734915633471655983351487449199270109163545017667283155637931111771776992812099067859939229233223294274971535605484305043484444988782875191375014790387244791763455105333976205077919466649144520997693006856053591273049344138650739541152808920958631502211754310289554698213665446802873106927279238208727140959019846813804158579100680788976852559982900457280822682075572719422914792457341012341775223830550740476348730070419729203520217650648964654962795044037704594617100267211216369227163948307383463853293678566312785677701485634945292454025058703941802327915246299906699404496627177100436807107998978997224122911022773357045248601779474982676636085307607680257409163818711133230442934561869121540254621599687379944724028890513622343188714758661612278179244278429827550766927506109495576903781245591529674552072665545926102824544542906129966305073273899352188665093453226174600668679552049106331513068970334238289140085282705780844917687955309161024209288917950978240484914088782552679280208151323269796409018559906612073016095128823579216554624189269693404342319378019297551436742026212204541200764288338165671537947237624003281901724100656811694923796228020426287661150812094370028840388940188216751827742876095511711124762060525493900150947183294161998584644594157389863751606132838652587902459253067825421010566505455707978753988530801982107231811261641435609352570460632963201610654405402945294092538608237335919513120470284143290776218025423533416425474923545776970602018982110323817613763602247813180727753294307049714319696287147277748947976394189707437175733285075809992830732451910349473483673735289943977045331516605921517819210899541041409145900801000904051189350768678395572908867990976008245309381671616670104212157799980608709518527716083713947104794234770478971332188261036434707083005342945810971709481612222416950034119026910849913527619798241052528820989381758621279433239818830000213079632112355454599337592735220504348464283073531753402872989865438910084138698411429830720795927457503531662236740222570355053670802564096670724081434055868903147534635986396007094565783639789255454737482942106814525948061736184701253937858032228151898469620038756113271733375707780042307660403683175582076462777341705758033375906799926942583648416479007096665770094346073554394775074931701666669364320317289084306791502597179065389845285150952616859577190612536867435677332963106507858935622645074345183996164004358563933068381274376235254178400475141393640035694926335923326543724568126908702596351293140831738507066247736904319133922295778161131050323028445174582403583186395867280072590480244964130466165437347208990206093477085826773784087830452223146302250829525449591779581697291000071795830101728834919798953105047529504577588896869246784647814471120084339480675522816234860675292486138616696897610403439675562126144760921347219499451557328503843550281091976471891877727793916598212978944457617370879218529541147789501734567919678140477722855041713316921097717236569095497369628091502125624914999960747995156270191115723679692872077695830780399655985543299741309558079401054372532001574777866897617017540717240833270886870676412546161637258708755886110090776491432192840820861056756809249879107878969814799137388678883270193410819062456643131905860484364605832388713590595516308549204310771374928109094664420379753929030259319965407310641130334380918118765041207801493033385526745021904842195570910446335950789382660541881936320762604655142509595938325932022344631962602503136554813583725370653530251517847691085562429913867887828007846811850499905008124574906890545219062413010689246598807115178215111551710301285311691583108237241205131896716407364492183121543912155429163920785018746164898263894392580094910444622142237886880822236288298552287392595070664198013999175914630764651132620623727585985628988584174818331671019035502393709548731083875465550048091049252391340686740785133825879940430502473770759493692070867429082004589081038966777086302102370757748168999458479321338611412499266798114196979701515666350864220891519975368933348491614158627559383482468384297171949452941989543570849425589955827998124409889577846933399468516071500775184252987418789548631685695620686932577554232449137764295583294737245439025488880903421495499492215125481478370921265347286350520272723002248256255014392969888346011178192195217400283974234053387994814190752888918989002870434571017946631113789834271875055387163726015163652058795806976840403636483579083696807766001723797984360757601883385509485796756372962773336136660952713370760456531608049741625528736174866026437913985021903012796626973424975876733554362625557174117747120410120969701132135024910388291246594998033776631615476739565085486443651940907054304581463452230392381692481636745013374705114062012933573269539251465412326104466318683114183185202718905362063093329257367745285576251973972309810214776664850441963592527312101209235466148925005510820914882961010051025150374342109123234793111391221398418358465884720150602112332056374922602590734773559957972933000105179976039044054003851658706582390887730109964786690316616235573422426232272927402984939820815040751741239915082111826100002781538157118719549636497821861008283476754387359608109929479467303913225867912868675964584908039020198499978051272600719035558652322667648537919268195448981633913722430804485002851428790414828765173724897521380486317131662676327363516928627020373960357290717766222762646156948990352772322557729174341249661207535852329570125530065711559193869161439571003952425171805432070507942952470813413325791049617373782200071651249371306887904069670266576298858956483799159589098509102854642884151525436229932644413011304940125494242346205883544406269477953875458173939237933957857654174808665534548535106810399238806058593593195963082183121359366953123632189833697011422817685341336553166022771883283057369208273757205707318940093779012648455129768780007426493390116191575437159388250208974364884702290082492392895417356825463883765409298904029091379693302372226075361923962286147042703456292242411898867057388146581961824926139345582226891657651575805504447996747651522574134364206466333467325280469634262755119251647322823460807985677697692160536688420856174662248958690814352774309820292421383403218233333281955484226494440794650747439579208728424315871469609637422074015835920265175178143873531130977861048997330167900437318523127304390003168250805325266560992430618180266048079632714067692769522613684607912488323018842410872198466652988064687799486214556285749575679708452584639682362947918544671535789168739260334521500025107476971486952665217532195817628482537709850529927375258220181925444345059183646044034550370461802721538452452080428226859056509678465335299294888657150905771252562301699046070145370721689459080131530399205629805557658596346432227323863904745921218538571753004607683041189762460202529740125201892141395882911672601799923993299727536189893847925035579922311941541061387539158236130325727975113356492292433974283969696315617072944202470653166543442084198640373250183742927409607621443351173249811251095255634484267803942614800033865203540378953665918048887361727660995088082795415964278946091448957264085497583744424769016531709752183528857968527622915101513731225496802299874208031662728037835432504705762859345917215865612680491794995283018094268619238758782707043564106556459425592201260869344133828901742377287780058946314485932191008444125693312690581553332284957508054331007416047491295941614428390616358537010507661031960769999296056979056037342803443885711811846390167074134533785979656952502917787781887450706702370983310736409988989338860197377476517070872542546767477844610327169314184779926569321997904273168003551532677181990297912123229411234491582927077052978387733134996173992374226225147001034865266034482190337227503304800379296995998929726562708234630221240665255026182001076590063687926181062775535794957696701016230281623206710866369794111078185273157014385720039745740785823985791484363268951601328567206174933955031169879236071008684494903103927678790601154570147950005596434753039157723534586162960133345125918791814190275793114463841850693944162432015439143861177094220218350279568074394814102608874837467916122153965961151236513175659626998863698563584603675730247231553292541154609882417665476580859176237222147057279305245731877258557845403644058817459627621874610779019949575364065325569775998504057098462874426011772338747318646398788847404903258933747695945822726277968339824738552242815122972220718529668750823848765845709534016939737781318335828659619881291410449144312766258895946333557275059579833727719340065488909272894132227745755840269980719337164661183649584381212064435365761658861977227258918337489189646580749001564757138237317380360464563582962852791635841723708545055975117787655933215256137289562510984582455571299103541582341127916566241938695498844660959412115014102455292715560117130243360365647069177830517425183515510107690964190169004206546423042962408791963808251395633933588112624389297047789901550735617095541201701708098610357405625891294299471660351518500087000939971511361099704162880288926881785296730204218081028098123793603475237850719977348548331021677329399453486837192732250003828580309958566605122980076913420757180971359468233281566380948467354992186519779624827996588574963352650517796294554227573391462404882053725427074299445582965791964056893584017778648692481814799760124602806949632398758513906384586307518411097697572494831370929520839261630928253460473163599529299947323228387783667461081439186654401445105808427387736184484502766214457738943997239366119157022542604213202865862171180814391476585412120325821499779505083448008945063307415313042033298715235615995238155960655068293830288140568846705673989233293305950287998408074599842072795885743406910366586565761246420664454267358347028309262867217979250442631525438021274399259959008375200623248665997530891945924748291864233582606249779058710667875969026649169285370979796534499653384808610155631139755469793490238437577289994372135129443628979327763428131425123964048871301327146531892729169341866843693737568298899956494458087017635703177492075645371226537767655628761332177880499822473280317248244025044719960761602042389980579893716575902576673914376025088597680767749699136614149878206213430760812122099370753881005202468039471979927304182390567380523606335716070642193403866029153370164904177735088310262944582470245903701408526346811569606614082445232157618108170342166708054049446523426650516893548010945851501557808900156998523017257109506464222644971863002435659791149595613710491511709308377135228298916898410780250970270554321414869417922028442419239203420788240740316144848116763094090231903857834963874695803584352965876419695665438125186357976565667806367130536061907298593161243800566246274866656050609848264525593690406945160764435459580532764698168332454803848176664872086357763591206063354755833801905480996518257587865094722171885046475304552495926656667854083421652388066636463525898242195612945171871558887679892711182813100692070204734848957243820034785248551883031454863749979000071699890028065058050911852027925196345891905676933798013148426138463669744173461450664700857206764146311235453770498714766429071891113224083883577144803348052526919370907772543484772815005766313201236804602385056264730450897960928686810059321513377585572927049623675803173398894540510289609351864730744826545697149066334930773035860662376676811410372999581743443770511052361859975662820934449246009668485951438989672834184551009271984968666657200935578536618297425803395346584292870099751198648364600573999006187646087424655874276624651755615900558610913834767230398837827936965994036027783321947863959748683541273852637813272392865555221487419297441324607439193775516187146644057719498807541582736504873553855152664300985023743083485874296114035209332279572092143354778460597655190887086499604205692278675859851014946900325204451749934438479685637126911796982473914188177331846683187936346003827964296211712441787679305453079702509660851511266106003279614650965864117518761698019160593390699755311167834153015650468670048021169924197307378472052467096279734730402093132046119231026657137015563243584285909697878424124416952500889585672931320851015409359069933185077340894422425687446529889161354514949862105226268403346650671962386636568018192949670346745126819171545955313155827940195336352044009488583941128064465013936235230184761246630202699859460034956356722371397956292027318346632319999747967847187589473626292527175377991044522980603263624327153543254169707754222649171725763834031114331952567971715752749031539937659187940170565744194338060461309599084089953257187566167577096208537823117334453182041914609107031249522011615432735550632718500064159755194782482381601726007059704571439510268802479845806700094323178834191255625695175338097398395815184170216622199031388314293300828579800451529510484210428998479145729466746493653689932918401171222592410007186915743893161121177435340156696843781638463921508583165889073742531059188186345293705129657866282596510302435668783959890222702553734143493029498036599236554320788630846222113440161461619286876842281063151647887791266147519705877943892764317908233057726532843932331623017256562876507913024611708892041128327801673559051917142974639522549569627420740501060728472051013795506776893195690044663645619684562238168481059747726634976139414760458630931796969749699229638373647177425924321644550163853253308466931439559158550907081575975792542068102044615300934253939926986520947000550124359255812393963587805769097490271209097321143904741034845855382532393286653044334168761283449218510820095507283369594309995484670758611179443932469453389535589825203284974211603312937858373175588221948260904790658483012674809261481589502626706308571808145629989680499494769683781110737743692570145944851271051691740150461441554438436394458001038228925635456876888684090849115215236584377126868735801586697278929478792291824137737531207588294824448262061972191816421345112542262687380700685628723589236908089517752735775058124422812131504028524129096335643903789385761036405347495213458971802341541814951266988437225489789894127600312882391595242393385053822657558188347315615069880528051404455727387028334259354355282330370409785794340073718457771279255147095533104998503517849500941144619987285769410436468725165111602268211099717545795162401456161608364011671820316960683774559851915776413547004564326830179770188187003123331736089005136485033324063499948055425704882152868372460824544388256912743180202350251571798248951973258487971956888918088939626125193000166809961294801139148370226247940736852465764883307289908599107776719633825556454963896331491942394459808353499716732292619201793505419880093566386005748542544432922842542625704785560938222633834777879587533630943734193015884878338100292840003000186612572886364767436358224711510711129505946056810934222722735771848422827649950241558047458663272689315402550795570232142882926244268868195873843934689103884094653487435759225520651901175034322911284028466769086655221877616915425114297983047215988741666029338546269897764155742179250143010865883952260018301042675536597756099287848298602072298237742120287665111308675534703697497450853548005879969122166020555476253356735797072884947428988932564493738852913445621308638688609868188449650232630114825915930745309244433972123460076483168244690709953879700118943376400088413694901098020224489197132272655278226609073033853595573802448338685785682547769734339702076988714453974461068563241346375991001775888356695598901475151625158260352824024130282363892715939206438585495828730091355444739613857657456597775604653258354873977920916869293734618410525509881210501348951417695173901611335210424526725323895517348013333847578252769724499105396496026448923005110331865010388980968252894120344574122314048375364528305166379702437914226588445611821257717494411804344643655950795091298196076186068907734893469199224260554714185324458510779146424968360993035698277937788946437067194065767271065906435314201092224059291867569660198695636275124266369747762577584002611380470232509490899962236156837043058422144611498111296066381770732479187368755899493016158141620176695941348995980904560217280152875166069439600521193138601372196014654721813517459473660268449132600520377145357627093589901407720624626098935806278087840300327101140260623323001783150250990642376951940639567523160699708879861317199724951382801295514105129247437893267340274424894680338319431416940739779943433297158809633142457063406601626275621461474746158014464892429735854451634293285975703514276894219334395288410826739151139408735002327544669088050777716721659781065676625313388275246414823966162278830931885671316789434191359017525881186237607282057863225446115505495299753194488791755608341026014868013303367818877142442967527125984239597722696962639030113863963330894377580792577035459515612564361137757850124386235618380374591064044940022485283649665629667289910905495455484016827030517843733035086123900108352377866352392909744381379423433400633302651195632652764826660101345056483792568241001008059786949358508928421392885153461412320899804204765223962468316919972433073979522786553155060347234094477951327912621596793385622113966587747627518019722686570245539268685297118815838192778508514711735335853599245851456663777201400490726868623144487902268770553985677407279054957413112471224057045558567090625268912956488864298840245912298868400051476703251423936854539904061693875261226042532806901432883903602041749301383561196206291989211884743141912496701097860829157592454217485462369520533753004341303048044390971568844968952732423552071950610561136143779926789688247615986720886622371331803078302470883643478174115643419074815132224805088788559497056160758818111097449933241767774528012892874575469992989849332735528820738027812691059348526149251141938600954113757143137621721548180824296104821806042320263046241683417438671170009563120673157774911062246587448943326913839943303524142462419964094697664789695943748779959606069400765887704872476653059609945505119107234557901565158026425615003620663103553766265023048728235537943165989176693584871449763645951174746505544093358080202708560950688750552855749262052600395199145584904964681673358404004688917368607634185879850321470199376738187760202576282660793139662098117243176068607843524861204219504570049287253291495418656448988563802536852118489881673233004464446704560332468122242127658782177801804579257461516140119907706518497625440354686978140666344618431238964237126954148588046697032771782561345364795806316847996087715783831875505794160558203420403664194948296224585598455294170333691663839399752247865388531584106274616788140821216433357464081334713437437119634767906631686471690251010488743823937433202690598202435182221072267225315570084035613435702274293935440075359637560060522795545454686537231983373002860517334289356004010191974604749903195793444385294851823549268009174267162236627794254561042592707613675761469587974065465896256110929179163732696517376326175183589684079138928918331230122467095868795514496603293674140612133707289704920558719951819689335690157645836356961311147994235113653641845609703200954269253101126231972500054212951012567245976399128116598734348986172972622999113914620035217389741275641588662482261075100750268502566183881180885826649214061771323924972280934528736670307779149335358087256408068373076102925830748639767239184194734943540408880365528509559455255045218086978999877089405958593592597932919357454895022381440766370780835398036592617970579787010093184779315460158799007473732517337371938458145177229847149782923234053453508057602467549818229823907868974455518384725523410028713026089366841994419718642886719406865336941116929886433658072865977451397677046929130643414559909288116227847648758683889477434148261347690726376811710391267968031126973637852573184345307875146778577524209574007472275882029326128177248927345862819032610380182072152772912731240207291488975532354260806319470843077777838264078985876673351149472005570346087146729390468162606296268955875744040354579479750208125643781211627674667255056113232288763572136040125229650852316155091614622387571893441114870515932569912440248369656706587927423711901754127337957021218619758214620791408094826383732255716872865805709501744233650390895405191860038593745110579715074281326399902655910439980309506226497172198451678442026808113122233600133792755277239008838682674524797890691440009245392992122212463234587282199942219846045935611018854217223746476140309334703827329705302754210176170007136727594198475409852832248497522221599021081127863427395157999338015806848627366788923976833699104014172753669711589884986207458114822744408187307548085353221566552111781330422137855489698090028756688864875638204144262102213860402009061527905050921412859358054765151313489051120546439712554953194381388602312366501254915878894917964900677216591791033568673933390267967084378042270966217629799749133192068830265715929627184471552961632610289134589851983219484708035765927651072602021798985983359765272808474297531318817882316712226762362474483272828608792109032899056783903633669246827223736655784011302554571357032390912555375614387334297098904840250086356377677301810604525676065407924923169552605779096533116898263981260630675059850152140878729353509189012079817256357164710597587011032369104187935441115800819316701016328524745637046115858693868328443399022297905812273311150190083350226178855179276727587217607962073294652345931176746733602661641939151495325045306852392076330867306997596896279895254815879605953380100133485865292015293169432490272486594685730113922672218930148342585792329290976080253239881554131571879216596196558878567179878005120620641932863012082055656152875880740331986656410959954435367712861314454393207300320150592305357472691809035421944892209518405823903980351819040242800758259661090412196464301625854569930803445143665475015430637095911302598195642053936987803294096042502469819638393426530513058418181032208787068967912862276043219085780684654579363074002140730912664350240375694875195572334435256131290665472901594549098085670632829081169097640959174745709735363444370301001501021452943471040527480036432584436952878986105082672023434052157243041221472551001908966320322038342577364414959340407275108249154348163965893223238911674724092814992179015836178305468722936888077244658122145251375469974245700539455336421018305987446988947295423195119109833864146084189507660361072037196250863744037973787344361616261520204910564571147409976222416364503801666047717654810272939112985843527250638526555392310053378138549099635434878372923472475570830582838728141785232188781338481575749961053674615464419777463236539515949522221996636971237633940700072453248706341745175481296034110653157012045611753426690608321511051350204137244194034713348693726308542010487736119675298660817635873035801551876977345785420267485246387807282344537484895219593561401756293934419564423967552330983806783958230250320644801600007036933047994327445116300914234101044532118726510402397404814282339950407520582143536432592645304785166547505799037469642196824021195030075130944505877520359901199606567866434271988699048498846915115757078009409188496159402605033132048609585780031262061073282174504317196300291121665077129847488822516039471201249424781653017351839904604479873248559956139874987201009671091654000000591013403462366024177218050541973900612178619155330839973536511016525247860192940654190125307630262143655825422816942923351654140163186620207288429458619617262559793162967333727761657158510008021569420872763105816796917069337795190820089079549562429078459016848186010559626851105768406015227063702339172666961271589765660636731912184147088640396024606545555485201942840968251480812144278245835787006848943328986727248152372645242220055214227308303248304286995640468108387345327143231428827566723672271235937045511646202722925573616683259731587865452033934282574976509983753931095196117394438906602869481962823257981743794499873469367925384049919409493988161474553423693986433937471771782123425823991743749618319359609388715086110076366634235418122438476626413231445992010620893336491864441680949786211970281711594284647843469689283868948538729370417210384742163042872028879362585051147723485880754020813965669008857599540543526345760656198052626473081878662005905214301299491152963651156068853296448231745580382154143334558036444488418540145105857085486947252527793029296938107259238646689310094821860303520662678613168995054767247981291551344936891996333192593972169937469756843838948149440298487226445472946760591107811553853872496248549934929914146044509734693877030016380343779730267446332495277485069087820894576992169221621874992607979849864193169132166357194643761335613716994462870484073870304296011993987993895676237645339971445078457851923190454711165676605761795854960712116974442451344409074567998063495227099799158793518009002041218723306437521521874775917176593636877222247346619880801537880518009151247687544283125816817047723015780618727959327672624626678589654994925326628489621542199521778842188098223606226157368697796017957721896347125619476833898958019362738020635564567198206412001790709569350060205149537924820814776201811787760619137233135472530810791022673028000688656772618292945554915833943220041859150060056034025104959019050183646990738706598514790726331954013782246395725871839605272340499604021076267852743169366349351512686507937724253330891105788783040994707448043380145913661236580192565337288276757823295335314801855213747561098848099625658276766457708598202336839610149145524813093209867021636189832439107719486256904989526299749166249568502145675101246777166268556034913495301737370971950699771693754777573447318040120847609031354701696441730011053162470185618025943169566707204877684017481925419989906434713661464446296524640275659934840108053635619447281223375118694274339869694394303372230408054687165651404647627414791165818207612376447565825622066203706441816181267449939183768039525566338601057296580769344841117934578179046964754060593723298051582281571110031655746160774464055165654569120304389812721293922960458538858510738337046092811674294731773402925901862309661430455676319318464740832758692897991753503874344122242263014556778651182463380856217175173758035086938598324155003880630938703623784992081590129406549721200306622595449631672505320422429197398968164884351043165058504903495057690348518526379016098608101265556994490500438269990232248942362324611686958391761715397945100617668738127741161033462223713983621800895222512910232765009419418498043207611767331926235410787073631931505773701723483436327627063339683544619491622532962290095574007557294401753237874762134129701340834227524671092406200530432362463070574988974607947768138201675575198381435614926035579856865341674233925744479996204723738891800078100620962801357845156927956944679018241514845779123947782749940007799350742390182644829926924000912401160702207730671998426449456000792101359675616605028800626193303163533714612643059362875039299452491564815917562928100694508904850998798561537750483786331305233993791959910474101192467356731569997099817699929190363690544026712975227987916217741863308839689130681946165010887653048683519004742822932047580881110695321519281233621275160023741784766749904065340908413963254132198034766840221764171046510969402744787849017768530209248978486641657538268141937660521706567529715987314860937844065201907107573757057728818676321767450935045297705423616881380598999727109344103570673864805896516677138244708603735818761084072012607839351315633965558741621846710495882585004824623760066180163988368837493657582567118677361894321851550044190818582561831393056002205228071043578905727456395763728266106468416582500826349171613557201651220989866946227210191351163365675805171097218717906270881732611534000729723776295664532157032810139191796163413666181064275711806949268093134739118483924776315170660742638609815252110631207224372604058733677817332266719612651820690874067744273779067289826500500539664642579528563508766313805684866808058611901392746397676227463317957151751676664613112053168407196478641601854604168279243373588994769165315044750698563673226007022497632445074469427822679658928136154755474212898916898106343237975754773639958602262978002204833774998205755297905508860718801306124866386758825916935598536530062829635234523676269156202480012328921410533272606396061815755440605971651937644647445803319231673086587859219699642411357074560688267660296312762022496708076101522001122695403157918820660714785405865086256759760371895241131765699283936980695358764992610443839365420799914328366471026900604631666782682146941205877003150719478275294557056054792329671371235232560120480749516680187652710206779223836718434854509724537950733661277474287065617120096008420921534487682449461170729782212500765955879578305790574771632463039612327110534238703226271161472277340695820833447880600175073905832379660588871701266882170032344773025294088958381383779153598859233408443603324642998958034775819943864335315435465122957421334000776861695073715980040914426826881887565958576327711554490218936217549254979371782681627899934399921167617744840846256681135292121103393749853929065837668133721839077753524206879213700247560970795750588536614735151319320363583720467249959899793730689086862732086001487224430503219922355601930233918271902452319391054458607853734574764311235632343647854099199838134218600652895194379825085451551919822669129766082591788778958033657382176066096965332297493504249822033103694073542866832304055802884806387358998772521887204547945061887668981494296898690981552416693019207059092670950386889279843151325655487776945556767044300279191171160190835198995657647144432576941442229656612707598749091979936655739342951933058398312921932758278801590844568041716446113228307511980215803248008464871030266066615555006137061603423932849082903788003618087753069961591357342924259459073716098743150762229422653617482769430351895280414350169142128912952569429008375247579902525890370163261217714768092013752255186660457201151993804959665768579656193354747939158540081917504309452703789539317461161846608938526700143033092568512387709477092029373361329366513590759619070336290776117780244559537465648951709585506077743780348114769537438033746549604042900487476618554853416727566077299712735478317391827661702327638349381215776526834973179558852310311127886648317332128769525929293003392749524678440944049461465195738147986590857164364533746469321591745846040996783668817995008623864248565414421742038756638977235942175700796703333276211309867923762538244890737518571929244154479685625336190858849427846040164793104669723078066982445414318786533271881136422667072955834045292135716850285248040889366171778270957755843125607796809439685215044193208589591682177071549245349544498882410698306982669913039718436089914098375921024853735989617564455820867636004496906862920059249620721977397282601779653335000938386394116397447074824359845331480541484033356390065444185852293051800391028286389640492936798754783493582177960575318042031112299969740119677805424853701345407081755971059524763362070765957401432728715612636056623102541765929966435379175064048019900889835633841966921207207154868544227510509540390900331627577008204950225115420537184890943413122920737302857973071285575120286788266430548521045557553592969951722773380610827660238861209558030294189359870853849674020965122464162047684245816941821934288516553696218689970200579534332130860678923993728875841564564621718082957474582133345858486732051508183197136086370350414176848675315663888187408274562440128347567039252487722171414602199736556467452342205436319743088509749071422383218597885544557449399571752452656294045194788622462830656747571860866327400218906624779440025212421920544580618490647989225582595972644230899155108432024098115647628586738764796380367974996355997867700208288816716826061898626850655858232652644620932071160746130787557131286148220443058768984526666396553017571396323045174342503659795489664805893948226057723139973811309093706445815967907628345955249020144571092834722159531583541270688642910226732575394503441750728190993627579955764830482182615751934932867031304209387011075265993279346835947409276064398552475237408487374880589744396961537641505116873269650122495441711832405742779934344281582312913720891565268018763118256290109878393965482808683412002008447118905877120399928713896536675252182880291412950737440370980676101868451089038489338733679769379355146141156681184197308134557141020563994652483897110475664754203369190868739298560424134570028345281661895036243375141355536000147913158283035506773149999827514601030197042482161351867733542237574805574780947787291653987771365713969319844821129703860477910178809936209332073993742707470215959941727083439028171788976072406625936245729660571647378096090409291319929171334794519585647606898131522239691753310907119387459214841674160686112409455977136848411594333103746405692965738795147692428367412046785290404063106181287199620049272160958461276392363888647899778021778566539167135484986667786057175206761461422616343680389490243336558163876173351323329047255578292321087246636281701875854781471559126911686134021462602639676299380680144219699264183206575401240236105322821571293290375776312831554910367727970894525132692524333907203486624196097157704071461335511729558832473238079147860432573864680196241104921658646292024755617258952390497222099542341253145642043793892126278697656827827972938071972399033450220479626479086015410708598413622473587410290430620533368340122883873255863095169981509888065755071802745774367916659084772062293119833128861522656652349424663328645040183093772757736529922572121345423963687094517416616555194309253180661353335554546503410993977626338570656358764471449341689004887183857204637212659605235249797785038476917433717100993822999830699153397076329785207797893788200251285407414364500445615946868207930446583940110259602338150993421276785888146074123923798200603845699039950659030720996301376576026293404368362670923158316327806879701021353966608764920357811842462235670632608756697023124012046258045802725194981871363688318914851154104364489738035581684272703839879651284607880865388237215248991919365154108730642973329750707221087069252614296587616682112731064500563551024496176771113558489109457862326929029638824429871373514539752854753290404963403120238834726289487572149840397497950412832870665974687409145586040988230372681691146485747745970145821656708474662633995257758127430961535586509621725051432524387418415138053857311728461387597288659968725536143770736824799045277917098861206936875979088948529880896750969974597929873714330054090937965298547380703976371556589490783061730796857578495744437952847120064702675171614351560780856322447315918501635957586127971660877698195826739156903974484244251427839650673545263582314698475482047878866415868207198729869142065236989497524465415212569149550498308079257828896248398095788831093617950183468658411430995624992886310711896721298286545829365131343182300080630120073269484774764503349203713544937585575586136324032158931774200945274189943272366078883459068863969554447581329473781245997478966417305456518960673370777893088133526692649872209530849130031447528371915894622425376447981401570959286007982491346229539945730718910571782450523609143252076079387049081712079908582780137299971488698993512415482688472379848394856835109406184528008116724474277937925935699459612936170788442808013920318436864392138055201457643090734092880787199862778844714805745958657193181363456328414289848767998199571694195409471401204803893660911117838215567675864230853258762283278649681926902402102355628697610931529730660083109729998731081569872229759847490284928608322369867378696085207473659264713251615003519619359571289504541213940843168721055370398813793686893069392090828582272851085385585271580250329359049080223421177081203571215620408696191302345023356570744773381792522748928327755660553904735835243912672162511779293262119076172684878836863998443176805076658791400539620776699254610968990165171941546774838492595846554505660187480243590285829081681964612141241781029275644458337688330330552328867386396326862841859578378052734378104237597020966084779593952468619844972854598618746599260083277794191726125148627566900627828625671096482311102402758508137210848986386998179266745111528733262124783271856517016811878296286485292964321494363061374108078025849837197092582948659424049626244149052457748328322049340692017346885985601335109326319747600983136248839457632888628408698863675110884693369412482460023011346931697626645381558208840431471797113245419856608471161919619366605313129684174367701989881899391902920720128282951676578584044584514927617177262153969854073162076466359974294693785491137729774186952911393597785763973031161700652764793313748826135804379317478303460429840567353774354494238315314295660803317239751487815102447650802575525477004558735709679072781158860501035261169512754987110271584328303585466933147344330250599324706336903460258174361471759748772272463820886859163690289452431651053963332886150630596286601663339477439319437111117683410775473325897097235126309068801810976328229251841449447916780900517315329024675830162277599600379652027152068636158526712365267780236271281260803781024750603129692922722253479951275354704634612861835803662140482704278109859132631457359641954617208496529739307692231565507715495555154302964024823963651003425480558828839110322743009206204856209756390263693690683976230101306662867287302396589242263985368326418580841516150664780364429339005239498704301227638941179042138865421953528541051776926406155385869624007351135711594359915355522220454374443774697458541223385425955800632579179485665212048563082022884349838535581558537961004090914889973300434165353671553936208351954983732543131123079042845446120045544817997013715482779335862723594713576589450340041337892999539622322022796731689568133952502158850180139307055138453044410904291401569399020732228682586338547569193309464533060797271579046018461878164570786549443745934344844193742841382142135413418920299573295716954906094539626416623521026915540762626415041918880753377240548902414904370223749656974753869872473478427865263569871861737804833056035791252583860482968794084321218172108090414048701300645821788288482791286264178736540956661487201561980344542369067746835467943643378988247083486709275177080390559352252492594521621380165383626586634660042422766838997439907754269736893949752189513097572477839383278635903222815307768615522529251459601121018298616608877416835493108038777960988289328525480865196950047661397635505495555950159965480630589084716202590020443920447484966911757473476985917565398101999797370820795772570103716021304042693658948092610644527404538840619319574065766661479124823231195595470068486941095844286545506577757644668413393671154983834427767823972581710425213722892316530145270868504331724425047072110441334787324466768997093262572543252723373094292048981322862171466959906672861211426121275711839959019487280759763631504273425593357005712916806985772176573435637377446113320009880992996767396301867824547583424546988141121223524487397904817502213087611259275902547986113430904683517742569100211941662422652782794532303062527067968615272233817698210213981072978635320546073357964062823478003665040532843159605791291633289438539540922812342590175034607484169034947221466825815932528705705666284305159461748253005683110581436144012274289759020536551259485350942151157745897685356820180864324036640831995492999137322615948794671509435113826306853026120368283155062818930951813631959071687238885795275316998855135850421139702542639394329292666619658578255374389629129516591185654497937188102490165014020992824605253996291365438243642078607121250939444469631192248703304460619752194468845408489504072255735746961330101276060206435039948549889373336624856531079654670289589581665271621583884106543165033495348466903852010977056494989675665222100089307990100329499266685329297892356836292338924821063874532844412644632939796177822545653060906119449850031327039970995197549698938008992646310213401865537685987370317452428966434029091670063002776772258568651492668129260276757481522643813862841102056334793942106751370159251935549603620352394040246848320249375723907334621885457799922633442955452237476330405740304435504418098168397486871669442702692561648388311150693790483014577362966003393191229374273079269309150533562056232302004669537181374049338754520328201538833733167983888371166804760055011101631627630540461368375488697443227015178312932184640014308112096217976046862057567099496888912018359130730098336549863444509636183899396907888118361156363486399208460897789189982066622831704913237169186953077851073273730275670434497531426973831899381349973889701650677531972404953686970227999811312068319052745991738770518762060010526362422962928699671615624120339540690390465271089393830689937997052426895849240757980024779077595303143099235314650429599541764380991252883760829100656665786750067733202658856822777869761201918735289312354229512418843403477621344869627177241515276250435491916454004533545812230698726086037665601059390909657198205521103831300958518161053584996853683576193634285115664887497776155090859217242655568711924720820140587234720224872152647897625081888865942735388232659702460743392898035232984387265539058986328562446670733271046472269219449722143507519595773101553766525772472537014684915540347435751434424110416436136751529865244032859311688625824099445376579168423374098629490835751657017099953970237810556148711595240958969783373175829688231337739424580708655510245215358285699599708625984772659435784339953642822802106646534753504977903273887236425005843713767426764262665936507723493010441218500187940219140996765171406157646904583110389759108678534341379189275260537477805538605354363485942871314374495229410401860740637697460251636639853718676725626454658046344532956556603963113651625106183719812788391181967047126419397549428356448063767138922566905200658949214214411123792899432360478679032386859515665170087103319858521940393914855091503092462977871346498162688951988376535852689133057165095097453119809092889467184192921974813707231512913026732431125213942377296570215926270375021669080689006209500840493873113765510187506742927286952789828621345721539428819166745828601179551597666445733671237528594359663621023262981213970464425183583037326674472116112272911210950438511527765533940985560608132411393884172455354673397013109731972282527114987723793984377212183380405987975608296285476435706851685170516056807825418528318621346572120153057070085838081204595472124818335338208827942226459173523750507747395056941745617717108184283943585315756435124029308066571616420791493389361872906199096591402762604170984593487809255389982040358748491463855217466233852788456600323600696256652720649254177550109591713324275562285845173743450225567940983716556372674188724099279016952245530514599922493944542867794701515582407258209018303133710914277660269829477562532515876184437128329890624146418503381363375218972064626859176367407623860285859860462636596408190929183920422060472443290816304762734313767799576390647095780897413141792565530226219276228400331266275428097615836488312159669286602052734460030124642380364830260971002438486228237851668649699208018883145660507979958951421150044993071187921878610500083848022396890795280349426760672312773964467761969134829175474119735244122855120703295894101489273918872455426051181806854841419613026280932834748654831979311807512113833220051172755239359200518501418358231231857811395662578218662943805027299852855259348097599244423116421250603095192734165843190493608981947902449385623803354936583435983463864665473498593020577821780843537348605519332554423760217766535356922099355240023019878412151639449983121031182260350744730003670223901502378581507705842041140356353651947702613165870359795150099775613773816252119106914900610234055352889413536361377960842763945331750288739802689316174336127777128938887588380923448222777451315917883725911627111192813465626572837632143983104161600796194109908394006983696794771088526286131895323864026270785404522948725643796613076856822437532653771162022927835531685841657175046060155963802694984479981914089963634735849871692479949292647617683105110806860245539083143349984760347557389825669778509559150630445033730891793090841412933551716714788942496357735125804654576847446252416706098016588552735900931719705421379489482197972467303893330590617108321205828869424949150766905361002294040011389642529029886193039683931211391937661134336821856028025209766171433978784258689236429888627721365902030390400240986416179415279003359631817224564148849462115638943234801165261683803142445373592994563474183728173610830395623185091494634435240053961310356694763770836206708813184885912134608285087298543972790341397486709826292052614753792968403319562018197183891182166585081838290893518621643046933854224799872075303761923815456871702331303291733209990369139862325125738683367723636433870774325731824460613665642408784979541855790609557146441983852942427475021807123706862854896002053624014698825702519197683181038708533091004878886294200247957670365224683279636263079709878165087221003302386568137115359691028656424317836164279914577723547728555040083979618201082910635719221451260626645263620933084272471893574929479903096847338747603118103435344685884053153667447123783825372329125073889662847751752794371009154564256850988411258616988960490797562668710612887721462489338164651118856743211634340976745939526996921955969220186886359729611058869774864136511101105655773632304935046222090557279646335290102141509846840433531342962862005910092198921297408029374785317051823283285660201612369420894684822599490627406377032202708627596872652435089016046733757185504986367163393058650585697149488434561850277947498085717104473715097055057604346953306641415499912540456144890740800229426724898927045801827386420664367707623168173780174893747563058438411190199442547744147356841000811899540925041117382764122631696122062225781325234479311303719218831990190620338472569683809443410669722053290383289375192228366293938710776579921626939100459297671667644064544518561766609422527477351799881997953392470235648506880692614622983147535235884565521570751528873515441391378810366647747009748446661614166991516763465589737959959540214852390086510798326228761714359887955504659798151902577425364692187085478361657920869112791555389156432421423173115216756355317256607173968925952980920302222764715231771574789750489018392169184932690044799669773589076812581989858614029997968525768327956834485978403023971817371979087979717474953317629080509877181281397272537751869484301364853992196774343839545213392938506010446377462748486891156306359041092625773414797143326249569886703718613118687796973394368943596051874224764967169699671809441202862053701087501052013717707109197818603965621893300244049800179964475474196020466413058743054583785912628580723579127353445500449960694989638327931799582385223072618512578932154117741613373045025673817860833763161476697850130819329911195025220524754501979982930635543543959215517701115206532625062708151024633884052573240193886676472688686924790870044444324023458623621453319656724050110912309703597991628774551386036212637830159464565376903691699485868502813119665731815087239258132690563259652128337903858279622549373164459746790998540237313397346402637993774447283579021304851730545995188511374139888762986265455145640899128903888396612379242534734852431068650589696085703184289801551229291884450708144971373707461091622427600949314383077063910266145213277641088680784241504299160508910044185842393809245153708792227840951188668488989252827763925755700730406238634839883552063994653351531401906587033826566892658728271460573759242126288950302114469899839559358505037172603347456817437555293351015910824864126808172261276476183774662287186458439988013493192670233774715647846771192938124996752840076618535916225417659935821266503885481902738149083409986946860763342357808916324292296398404134325579314077863252819423710677192380762599468128848105901452800350345197449174147624212287517832346515408188052675439811118472551863762962416641304114446697593393388005004302216223189479136465885213782112299756606566434286220896986315632759087485125673043981462673495569004097484830029604564888540677242046776421301572257292068491867996229216894283965998202331512296651371995356619249731502880094603315648303369359510160484331917537898078814692232725552099981922510119186325771437122765475373617658878298090244131037146006667942189406131951249887186545498056389393117562875222094060304720208574384645081454094902956199070428898074712154581518387130931229810921552187819284538278549028112261083518660261201929581258840383231094913937233793861824286202708090712984656371150170745923883084348056248652875448692757229361804872147298203024890697692858671878739444688785443590504538483703870485254492627099237292752326094699493352277053293930596973255833870483798308769020319892942269034638698455721328763959698578525298447494850395692150975798475807247954241261103797848360882961049792544461680226506420579172308634698789014649985055640269049772162963403147350266259931472251534151149546465402516646769672064854839811448781779132152902019180175180167479207512478479407705066386871707633125784421482220261047068048991581663631147970612738080196930658556794515185689171220569426233069839617926895926878874776733121382250854068981051699399217285134241683014614038432156675658334731626365573633893805648597428477213450711984813981616645737181998805566561175683117774603241733211724840075531126715248338494125555977457084714400776444601697302437359146972486894046408325204343598332706829179949559040610681715064691900906779968962215208665421286395556180231820417004777825004792465745023616088445035142786494037319107955231848012779573147513895577600175573317278556499229503687930179119930648493369077912539281762767969931169038817805492705197561481757695623259082759132569067616142221414586273104597104421792475609294684885910381057178895989542470692055841490543499358044675423775661490291082830834916206706468974705970296509185609693202040709293316541450362218448024869446273862084566698000430697859226139971914672245247506110501827435633226765046381452495482375636346230656196961933922459290011846404340120721491302759599908499138125917283202518395614271802265709884901368344479104391202968776444557359978324282866287576801618539806178008073979265129619042642901226080370847703774024448435973976844881865071700548588106105307265187199383781895034205817867302522823816952709798972534706246386048742655495562818596204923838906410267964894007595817936347400318031508941445992423122248650652099678741520736789414753081123233078045407963407107812154136302777640833515926261085094327925523959493342926491526157348236951599397620976889273516955582558815087718529700445673086932958134027428261255599543838702842091589621013512737309533937853007800174068318653716497795911592530361718805971472645369200788594097771856917355716894736709609056701324733194179964965108621586354330260061829972048868335383078157205771692586279339500074814246890600782668858739636958053767608824208063475178909389736998049806491923750932415445232538153815687792434278552971769184251473175567876241622512682356096308622529908934402386774927433376369792505808929942394762097843338278327992131186115452490123185123554331849018292319911944257242035350152045206243321594979412482014019459065129654945847534694011107128338068317409241978553452498965649936984668254216035721572268840516034292843428527246567372989055180157799940719377846837552230675983484622536309225002808142707591259855729202906300383417353686890323291519993584471062394234157312100060469996338674146791103322998868692722461912149080539281583497694029101090606145692055288876214694697867844751584580630254346138222275473787116215475632345943344631097510747412977349403511948526697569983489174734478911047029987823572276150783490043499904428739818119192135486220685661172871471501789186217317958391135526464097467417352536861914786522333974541341586125644973945619708296925564293253524033310419147842144513784589326050910092797502763990410127827740276519046454957081041507603733257203189412432148015621081903154085980043922469539373384576084112630467610800132269063338803649394213419114053504156814603367332859230396523717577785324205980656642676205498832388827277800798907038101271781946896695932321385919610916185198301336210416847995243537696806855574315434616169286806778281843199091283646991096089635453168739290564687338592242606466521092782858564637269195445183380479583555586140930965094878218794878239511458365662767147060531376068926093949989388920001718244948768346728063679237004411019768418632918994453383642803817403526117896989937627521733331997277001603322526321270411744116404281576854000778645479161023727975593001810341896023635768932782675794572343566867279237115689769645220642053038491436109707734928141498397169850587062858301888030446087546759887137693595166780518408695664897174778517037403947918831044488533607016214456470832789387065226729231716034028069159914775239247312837811066960670220593381158281178018495094718039229405646671720752583346247419105179557265574076256049014146832732065193133824217824955108967799756076850439270100770821076799752545554122131282414819613536671308029023454622573353934689526535110769479165682544015776491703200887657768414094131642559153062279421929099053436207357052715176406692093863304808633996104107397953269552887070896688266888268483098318109165971425263910455162319755952193120673251887012985516210981237393696902147593524375054854457598449849471607339735059033251967849988307624794671787180613457428827176451475986435415711291965309317782638982494994935933929688604031577647573883443969208423143905763492716595568476453435968713516925293856699152955232893408907825978301132645949341510275508969548087322127627934786135209978313300495876265377124310242474511229115156849742551051586115183391008590683402060595382306460584475087208762800230248715663156666144657302643197064785727152137271961847838400502480047865674598181975703575650263486712396535415528686667543856987259385166886387437285522483004956520162856656981713880516845456542511194749872083395107840534131334641047911526946675131077875936803934754997384281791409476428782563293576124393303627652768372463682913467191265439907097281501692868030350384666395922342323708907505506613021146070979249001680040666948505884934164817135346625732619579990473631240663721976248888399143428044880000622144209829350330779022484090038661267351480171117957754997866851573843383055101661546586633523679843829882537991456182928170604753859276414888364376349712794925484485049391146281287283825959227927258757505674592524400914880156850345646013371273060431653105987044318074896422714024583725706088770044158401220644333932761137512906568022598601068475198853301179647169316608692731437397741855053861377941266697607456134593373937458365623980871633794418574904566565283945183547887133182496366868693692093789757312204507152105273096289666926038946227531609572243629565462161973156786353599235931268843504325449834092299089379948026108621753960270765017984756859461925275951131557967904532167531805882172626043638315108765857710091807916894908789814499528863500601159483424081515829708693834346726038235961431195306945880655075787404884149751195748731120683999119667652283616124581406904137862473322025800780581009288678256439265205190730272380062267093910175191228611548308914320856517874872458542822519969905482410735076903464487493411921138343051217403750346522440525990183452664428471706135774313456975609049423760601719874590908755255779737664940610683143951864757585911734352193631817922077767428248332091107787723426264820648852017935011880107040557922574426843054534914717158052042700630008993913246725392643337478720449527140724952161108048547632186221276447786295333837846721523636915576809963875020132386064296181811037972648591857567510283274666222385947724987548901439446745878546235676180055458035146197397154187290917114863889140887277450560009853241862002342009207869343393931167059018208742089138029141430719260212491967445369719510538742419488535735892270196307713926230117614309459297480007002213363217228121421399154221489759677551922070240970512654208728133956786055548502458350837117720888297951371427631340299634774836193924978775242743717886664603516893113555065555155517865125745621283620487090869432041397995158179153825579616937473302124923457361853150035638998578076033935280084834143709332746267111610633642087485582664372298812845673212510768077794417165892300294200184347608809591227238311146862544441423736906954044124979642252263659051387970316182633465036115180874524983964554280750116821094043193065636173626192781485265635652813856439493227419081647702623575876810077837907379078673608209640387722081587118481768888337527158894460948301983152880228779102847382568040627783800246261193406379998432515997269470859943889921808463672423391451103043790842790020567880671605411508248754396300247749600372731706313899587052645540440819552318749892603947601645664825832313674959021042245804861173928786655088457751496533017188301049164292053851464701165866112497564506898544658360073714508345720312409354257264565676695664985829668642639422664120570606284973630349953672932508436309805122457792482665938254252723799834005414314178095166369488109580458453367284576010158726553352676745763738053145739182242234828573650266646204744953451152736981348795092163019935609430776359632646534326802992197220650432419237806498621795866182247786382816656228956649417568687156607537135605618670537405241229322599811695876454532964762316335418594554840840217739016672763216490583891988969337836730468793091354724831107611743767719303602480751213933735380129042068344465320175004653777201705367340506573781955407335539946989852916214922039731809215659720709648086100506852728216899209692764963023558521201185675024839818384124098619208564359826464473899552964556209695126366052364587392162846822506361883959197599273054468843539916587076095862074583448354423654493898673776090484691469037350919314129938103967986127782909481028493644138398741665064344250514519001901155610966692502539804047057966702319457633704452693443464735292673591354169519916498785586591167865343128186696186982268020080197452246851235916418151761657197887025989688667334822004437049863976312827890516984418668122125508261931298268165334788299561072946398404872027299173596209301170046159272558885515696087081340057488187006255649274382860879285184090629374837064668184310758673150634586648192398061218027666655280771429816465701698284719852649872941916688958163869384055931046980383305202221948434688964905562678864989571868604945735912749064430565591270613308804558337510619285664424818282535595629248937681379171805613054737000284847750202466553671382905469967567689398659218102377629845877636971000345702731384369141842726178288362450017359267487866923661090841872009636866559426740444932365713813102835943839497660491796309425922605404902585926224170706375553773482036290879712635253213188562579978785135921302856701623369767576692541446670254722379777225847938834649367383983645208205763326920487761808963876371173959086199569752292127868467449757205412877215528098668317636875477714023813934561474023693184733836158032449234393450036472751356296973781722825709126816441945176127377618116729185936379634796799179508446026678929585653600827750164291607610435157706620543233812010337444641909089894402386063297558630223672514817080167135956483325118664459558799307986258807344564546500260413563332413723221126496420237425261786491911379651391143368863250452432443151052508426192865707695285475351296818583055390970828327811429909436220267544928522353714256816201993403896608494337956790671780235100090278531370050394987012250542404980595216933789824020410708268539192991844083644699249106485091677186041776085587437998264446528629760556661478457005743051791278031516452410393398665941303618438433910796903327393300498371263007789662019464028682294796445467985742541933307059835985232132304108356807484912038382515870108661615704010599023957507623358135686635914591021696420079067887847653977218460781545227490507621693433869717104107454102990668814287925967481801425667381933742979313002743790850448850164981944754182351556308277996604751474267356135117734053439498203414196756192804484677255946601154499731017044546100955501532568637460134159737327935863840276459204490936281735687345927148993648697162923366192201380900009192936298369320873379985368442205346738657635016206060921448491656017656184278092091870135069897702960359776523393744599838504673176627645043925002728069335557649136630907223792766934591909340443763535677364729998502483532294471755226493109704285350159192078729229123901383156653769778938714459266304462116047739273618928167841374222510754848447813047617005204371181336563378228592066358473855514523494154814035704884931487102893413363841866413762398545451393193624758881586146988843536585465155019193722158410118947695005582251979327009753715047418432007607570242902624701248565003825231838495465664937214997246533191901628032496070673535619932171068722037881939432277635676409357404170389889479540244296047821809501012959539053099432207402065114332397230052603231766163577839568841952086835759355372914108549228588609812941415459307133411352189728377696399298586652042519636238059114211451887892367353024350619938483845083895980045909753754942407952270322366730896421599022504193391564727399922308731818403442514016482522176275530911955892929383162344698898938223965113378551420669042471535141783294927037538780952021302547114543328852874878170494500748771965802230179094368294155897851779763553843518319410954616403283001168043970872355899278100034633174658331657677981231159343247306640788409723160908412928942966650842658521445462620543696091935110287868394420507365034574719471511263027864546321876484223852228538166188575034578537226994428683408030620267210328687803702244649923783658161414087672339199213599042887825943808278915577145419754476601096361252031087761450971369757224455871412709919588352406733986356561942283015998305060387309915175959860016401797509782991966069464619479603706054241966496947466189870017794668373852754938049325829175718515573393336137020030480834002636312639340600295580221107119175552793681183650130178821264780585519310927390602025816698016112263599407582673875671412794427364523674729015214956062040781620009915597235307424689082919365953736108436895519130355055780377315019310974250345467426215230694184744752820430831204497540302295184890161989044470473168002151933026563779640709235059634227335688726563330191259162328496839774688329759480804791194612328932671662569480585929478901280957374065373477410547175213689975604683307518748832203600427093026982610443823990896392494323788001813699955498309849810390680835833395497726172217095900914109122399288697909896310524541619382806895156613341284264679673822283974562853281213664974724906751950076827828456464599573145791601902684939125694161350096026661691272664475839421944352191308832740365827477282148786058911192125174829133738488316635489518043720751369967013366289488092026149219843290380594745447983784224966429289182539165579652170710864086429875779938728630428244406641056624840974323870082277681812371171949515947371613851047608276328351907460428772802526295288577040356792275815924094616556483135499595954902639045704848103609036712927756159210505341365081683690578599522820664571471254755169167490344348938753550166868890002107524454734441338714146683653907347124350751949416774844760288423537027767718078980230602856025631081556293446848691575929287199130687590352401441495456644482333322032652766338596842855831124117268251013229428433079849202058184396642827043279142018511471590626036094066000025468489731564344707533446720722052221803989107960228068188765846663881271719744258605060839906970524973380581376384175052597916818612301298789568813313360094014719067332648294074022408628542052630638609117434844559354762486786476262810019852578697561446050399541433678898413955000946208860689123849778556681542208676507231219398986611267036903315533341150586794339771608242208374025108632900591152352009854101515034953320249339408229288672641173014261579377549282285365249101487780160302675402386702541409351076101665863123133773783040471818849367324332748629753444580277504457494681828346642810967619667629135969748408862445175869018185911824545244353154331153955166211057811680465079690236306546832738310937411528317752454746218461768950177664520937354776495742229236978691372699542803693179840746425017100590502607721180979796874769631041375472001135462530618790430990824149030212467473788234642694319250212850884134887102761021016168790280130083487978596267195824373471649496120991071091188803881425457772829019893436624329872021357720264865747972435116281297728925210343231271507523421374999863345126930736950425923847543672721482452908991388185270962787012094041622767208629390599173516256843362540388998486311311689918818785123794525891691733702898374723249027848417420750079670352207546466714606529501594174326576658017967719636370045619876768665530351954126632352584947048563352817155352908713344652352447574505406115879471240339935615956484643065012107089716193638047893449388209383925024434620729592178918194274347970980275465036518689567927406378004079742110791906274187232055821107258670723613747088677648938225907543384214242070328472994410983185909209358722852370654271664716322423498084785964504061443261655862053580374465880639734939017712315452349155295365956546407724398784379533690561495759065007457060504832095824819095220073310111185668459529517727847559570038264146469083160323488440434883605651357596653197109291779620924249856324850831564366719039338165712525344082640478789611077606969536284350696162140891185454495611740820601771148710648836412448279548616516993315162509024766251461209311872196059499850754648310733492507147520196004266525853652981332155747854508196793975747567652683444235306772434078007886242019487517288216014072484428183426342364053482169464202413825961347487824543624396186128809499007353913376267136123744452507841544316021922375479420593443173581770568467894253065304916585760814384408493996209812275976182313490869350381651910661050800247929903451871874639545758874091140055279934381764848900303906192550474191663226672982693147343222169613890419449266034414549523931099059363554453701270130338664368346041709973189620041545677928328863883054986159512248197546733746724578702105218490156500017115599389297695871083292790529829166659686099879572136239340252590237156526264541260561966247538543065342372029966849468788380432303415605330772863487544066913241879495739646809980920249202110656124070765821321333865306890259133793801945190542303588423865949868527324169448716152719095241449160816579506356111442503218282477762065522156898493378342496106455466745205469629377226980354735938073777805683282683700796629059317644611046004128235703052622683648257061760458277793281443377750330427334728548113614346211654449499601190625568901590412996763183357828113507540456592700123230197102575216514114735260266561071160043216798282305661264553109347591217667465032424909210242842931941691824536723989126562307534392877920776638971364742399409149234499015868071205175585260480702709592494215862811665526941697796724020738719909269186176894325395986918677440987196202898377185291991342307759155931695269185221922189931930793035968441280830242546697494787409371189209340683161642365647682378476836399081576842488487377293290883232308704423518152599950023632907266674434247927322598596865378726478424372199913476874110332707338479843405560235699213304121946643756512075681616866201304433249379837677228390907167568539892473463390510863160335101220573492421806920123063273690905161672713244784148941837581331396535281481016959224417997595737848653346072203528303451307680544531739597705497394180960452332396305619365606560730201709640646388287164688917292701515523589090218794219996889794988037245393693416495415054528961242229553297192235220832911963286481588455213440489777480942283028775085174367684935741669214999705827906847840044230483774839525994181747541210326182350014597860847964394512677534024909730530336636629014285014341931140757342785699361771214172542743857418532259846975498843625500224176221714094149851649989672849885916394593558911512629121386829301755890373261903034966545088280700735969922557033865821915789386588046911246744752840691286756952609611106526561752937298107366000008664718925033828714470371137246459847305479525334941380864765851325285676163602187795615053224922373057441793431929696699696328743842062866920094440045886188419550809203895174367440082912037266499333184976267882118674807534422750917828172878831772704148001060307224426202730061572742641032147413900097238401989769262259138649807392793113580722788030268156782521395987234964094995448745006139787794470834640084163556901477213246795673689093913415185231336944231145406944554808955172414996678450074630449836932760952850051796090985674390426700642094323925661433767767721268361503709355885256160842030546398572688313188955308346922873776778644898226403135698792926584807876001166120442641870129632216254388525657045786429748623553411885149856830195145933698387086450574964589096992806082990126283828209858438060153602896201252928742220156458994731696179569660312650467436671857967048211438690748319318318329364446459114612150027824937443641730044420137383339390167714274827103900532349786836244161865458292346041558415498980297466516690687002341652037654730413937791777329823319270142345629867817656876470955272621794057501419537690982895350540273367360506685707619120183178192166789159076861232423237492962043609875785498830636096011197419176428961273218066348662679024115139923189114612489894940455451762915947561763429544256918264963125348846667045762463892987340899974110914301718868487789637588335753955070004765775031979350458877965119093045282809277466486226240364511784045959383286291277801837876374979763224354415438055185942949716786782534707536846699001969205030365838962401810269161586207406163102618751618478025454811831913357020618220404900343675488211623159095560381099640495808832590158555817356380912803520146719965272363745346634175471883909546891861017734076817939589139801979829682939015838911917145800441835862847693724181302373376083070299627912676343590153182226388734075365306900742230513390392644942675858898579643739565539089977382309028262579130548041811895979548060589132804554637971750285167417367276843238396983495503095351808767397311532083398199589368267550118844016256499918710232425964092768931247509848801188515613490643116285136656345375218008400749411796509766136741704722575959707227851645506318524509685060065759478827723397137411067678303489733024930594674270635816121259231837981216669704120041026533384703151867005570203214219837414028485502454189155214331017185945442801696504448554816845984565485686817654973595953012154738818944550224369569323535086683128824877117545512087977342628155661035012723188472002888116504388625707214670494877320356335607049592774609219094522960309303065181683599725558579909362589722400154226975288387404004345893670793974361108331089513157192169953738994409288196738931367778576806509285122172251096601941423117723810168576192972583550622724309140190909021850580388651799997183265443192312015319417708070890892972517678272775263919007285736601674228823414939865349419549777860392788184376868771496300565529380629502114455945413559681265546603797824431964877170083889187942195475475723823974206009001190889900115325200433397660035697624566396434289240604648665309770281436527433593349494404454154390166539769395644447004353145431144247852772152256037453014467406592860201891422862229707545934640364617706326269933960531314253568365056663699658152288062560325183626791786214649403136650688758359523590769086394088903955424945113417798681884334014042158128856944676203048592520799034600180201863117193797360382604844629698563363402239272013161249042763845766586988032118420985752439490330314561233889785427544603769658125986824206535437551257355540441732661644068660626449480512549987037950343235330072687723917496473029060838298338468611285645523588777487091985363219705584290554767324564889461714509374516439625120840690311014942422590400006110814876585480566926309326084855413949583777359301690508211161331897831219924303452433140461245043118118141244338977520404539674634874498555369053596082234281952766272159127050515272048336098662811441315367369800785393680642836463349764428401134753476732782175272302056317449339066122399801778524621723729260182081218868382127245456652228722798108508225412166860848949523345855047046674567599124403946284478868236988552314252677497664295172524033440820548787480167985971836028359130174197476729142738510734212532878793977469550397153846008583778281256274802389969331759084306870693975501850006011797436459778430110693062428503002953126127597785248775634648271279975263781145509662115899982120793206647701512268399056384065576788344185970754292119561597998182404054946457514453229777056602752248439709221789663834782372593093980515859007541474693672818681867730986926878183825285084775090361654075912526082945473225887964228995901507562844738325328768616700189103792918643286313431723397231764334749152501113779155288104529177149284765774342380404136293581510368408445807482474021424128730600454277558022129323230233363609174136246999695881426847552935798611943043863649747466685072356665666895903117625778694479776104450846818455964498176532289631950710289763433365315600474020422968048478209052718675709630869992608723277626347846225537200870050371612835153047476931881760067437464578002934221676321474665497304982661379768018732228053040015987398530318760328203188893666514059374944600606124555476318492582023282886866639061960971271682989261050597974074925561789681165453471315074744835594758251184868037221851215065252930840294443508538917893955292746625268350199667999479459669418864706988583918663018888181903637124272770404039447262819163652950315774751300585892010227752949919913842250663715910176333082717710672234947207879238004024699799338690759385356947701951221095092100729958229679054541033127037272237286510403014163186680561808583739255192320006776321282365457715429868580634212276785510008564868903840689666779130883153645598634684369161683685359049696242426910277935720437869301723770129571729919945328550574894594665706671152722884207075274727837705064856083966501301459547351475284542206100966521250370293815432502818501948932944832463765695321319158045687042580159161349333719581850563343232377901634421486495574996939364059402303465193049089913275043572299322884219615227515162196814095476539360493248988032402991456743516078793863014343413165313918941178060788399993088154311215547151620138049044003510864795959385590265027800062099339498647220192464897115593746345104942763075588361554369023516873479572496237260723921965916056934098676365984310224763102214142512483461824692034227147264864853845233486051191383388500903308776615419281116974091143958682236812205178638157248130394703255191817717346083034185382347673718815335819783508080469499586777990680403855134570167255742014461431072960135526225918468943925293168524586137601496777627341480174303760575791341496919362328990698285030575329827709033033085426228190224958174943121875724789012572301932578650063017456921179034448501598812822227488619733680082549016818979787618673363432981206401363777247568175451977096530909625662430912488905290413299253844322561502776511792818897603786727126841055363822595753484041614943454175117926497866932487844303230495720649466018467477406452184636936347419484100100411908834533813168830578512069303311100212147049397272473107317265240847505757660932614682606544735608973220601354213885284362812595231047955157620766669040067847704468096786386735376853733704630673553201381170031827272450228688694893231956190744235230350111136283907015567055013811925879764884953725677572882762438947813968432055449590604396433022957935049170641181897681344776009653688493876462890701583872951900420277979243096985574661631434325072065721523790319084736072535731762292699383246231347301637316970825352029954356419206389850716271292980497766002077429749313715533184984482990064309590899185507109338624595949158985362535982991186500775786452908993368104262017489373737815989223246748389951561837541418231284338807151809981621395799725170043520495234448245873144295150201440801101762223093957305535996786250012512800210572843021958175318039713041373549189435045214158359106629326623527003984583669679157695454600390722754714773182925421290869692220103265659306642824474701338356905335586918609287644621054685023181944527338975619294213262288719717710099569513227571348036634000904418231925850298431299449291404355012659106131625691301184923520584499225015713993886832840806478433089489305173400817555215969886319037442512951367612323989396740811477635457347299855109759188905584958945960523604735901848818122551633040664352401589838650889596671674701934666351442137617268014890643824780783631773082561190721975398583705759734677284412370625328155380935259818253890403834812848249369252103467734670874242318658976406682015932923157277894951615663362232213373960441405827263793644563138781129927701590668751648321533373954261413720568802239606863692433599373890934169561326599971086718894078857226542518439678763683959623876807606575364267953074680070058445955783363231220354778124626428485738800100066642322089170873751280335435691291178120108091015309029503283673805341937682840059308260700064394111463461196065624246271004927199168085358743711612529430256295549481647308286776879370946357239386816187903581489982949158740754372020875513771899937829476853016539194026971817164152498560565814156834882781435778777815278131553854207464228934888777316028915780506573075093837512582621706710286204054056762616884929939525252631336811559978817375432498847573177257951349480515750379492200466735305055414511809808049988217899252682736855030767789988808912003378610423613569744441980518332571732461413295091034438853709293098136832618864388128213797796970525463375272874699396975083303686743252285083815746611838098782598340788637014216735414827196658909888333121747799758653812990415318837709622770985331459467136292895637517001520031060654042965506732149583318944057978605169522191600292379105479047299385349969817677923855168999660439338297928649241284008526016419331280417519863102712689302457145112387418984588739949042618457095939550764334138858524034509937750048396981652579316818762925037553714532817438634496089416697073551465607978189608692144547469047047674695439785005910931454039478631523944866319819926065642471137387040673246470359817567821245912116278960848158417330640526392782439963104212286969473807888337886797032159703898817459458199815938647837278600056839942050920661665480733282202750589636430454324179287587861495375830965875875494995437082561808682253796322110891790886882713637756497922927521117364372431546539752592691824985940281494540526086869450667745841753769035152485695026902336912970764281145517346646662024370967483424433404753161034984731601146318250760678149598038143197407805156303702690505252505333982531757257270189213134414861117201014821322145865081988530967278731827560889302080732599450068055350817826129657765467617664116863395297479339875353694069420916103131153675472416291922816139987159793358419499846909392993669009557734742494553579760323340784534711776949450523826971712304224510362199010915705401733054324089468698141527860887002723974929771058078226303581900753834499347413138788197301186009923464490440673762366087328038311945620668269361535508677631025485006147441312601638667650833376714945834125765079048514152105695496821803728785941086885687491087626059622307980172079789138107513615994753734875223041731944472125338940358097214743386159667371192933936218504905402665783667419875282747352018372821781307955170080775939925200718211639516059422843664370099761119906276140679671798572327306128670777848971353976939592890880591798083118741652036019959966782339840397999419928269848626828583136014433608448976376799128395856708701139649046764558133088637696410785864335289841447603294266227131983851955711211341221631776305375445651911424209470163742589439268606236184830815167042575453468167827055878333834703156410159736038376009141193282652687300066040311110759447242292301705443561526358008690042902729714576228046515210231513677976563641094220125747585796359426056822094733830185157743695887481316200067399557169458314071251707702637444645949654299410608181865468057864534497704993208817856600634298139292858082042586990814274195201122440451166082966484895465308585522721001054259452503861081522313444715197043260153159436057288148421077807850337875701578443941944154520753591227236140628746822613415544587912162082795943977944001162540348076374866682535410689186609339555989305110200884344944438025255078488114015444364964541443668104028897622882608930789755867169235679136591837506789888918150821604798033104511036341557840487625917017410455703924278524515913202816718536061538851077034108185313406467462708517422329052442376284444503968867972005317957401924413740148712349558986037483648463941810552932932087564882008556936468195226797103372471683795877892986495157931171105441855743444381022312145479831122885988932934136725483327585586302824747615488721486469203026882768991881699854096016267422617744660303645485456942527095766075777243302609246085359203190167795445646357105025070723658645093402721380493869181361842040632149688710465669380561751789365838071386405169485647121457993868235909354284589219686875182889371975016390473945628907140430318462492871751637537066239854041955852464417053064424270600296575604824546711691418470965697957853106372350189843270725103580702269298075457080199993455550287421958584769703461012214408325751257240350335605581902919442976979167476915934494740092312474637210133002918934822848905629511666649878496092831396568333188843925047927785816927236996387849860163155059999789187548015439954056532552234791212048801222176056684697039484153125978196176190663347483419922376337589636200303400654596168959499675103816938125270867272742812947317291143617818997992854513567841516928352809654563373186934984582940250657406556328382938125547276073357537276083113553371102863628664118520599944370294632049271355929738213952491320413139415355383439926114122330448736430206866929181805559862163453089965456993896208470283180945474668521922376652826235835657187637757186038377666504282772471325886628044041033773995267073510301255692535084202584519678293649306841968812845292058043157002898512681036948835232993649651206946272790165873505053462324549474960036636114761358213099892871175300712264131356488582283690589451849430602499635932380078264922811107336062300544646004680167916916095952723872945236898085394266321002069400662496476177809595648253028899864713684202011009195700437266434307554704888298362635968200222908911701366174702370524032481719182961139134616068853663686496149517297610774631254671910199214183133651754151197011518586784346123433649110400164047886599376378859475368668888542940630037964389100577451909635469760619068779166271238694917387585703825178133779211959668962213529049893318970274546912449375332535550166075656738583678790878830090644705935379770178615194185131866963255978481520369270176358312142223403327230477320643626490052913022516803599356618887917974911100388992901950047436003326884632991877635314740288948320392657163773445328718627735101925856987312920524160459441979196967285177884236909342639201583826672083073149215862446638048351892019191921252279681848585892465776576949059184942307177868426886673935394687972125998243814450472528669655548175736869968727107498357700532553562875558513532401496959702222082765879265708367139787376757603137787078462577907836002439207665377821564564431188421842218109677323878201604350553962000787423944613395873069309674782413273184698461801681280338449137723753834435794243041786338130989696365028412562867875582616254707866447883254440815914643189409258672267759203954688784000263275995883877562733771815484328320811978847655165855833377654853828927261084693832260148346204734743403390625517708721643564997501617105453952626705583080068225091929895821120464668963372888823236830159019494467791471938057148713462210466690236327129298337161352494394251238711917251445023784200532022582830662832838731067405916222104179316830897649455998531839913663270760527499560895189413058899127288121455520468430732598726213429284477596496015500167559695460535399693871224391494993477439156631288510863452057412728569779351416709719599573684571513450729598011633312100015540897202252138900023967527608552950977639128317461548902184938851433716387264720825368198128607908067995217825878636316759352985664477128512395086613501147620975007755075098973083050280568190589336622505798643844977944898326005783868828746359917332824762093526981102295599602113523788918393667038585423397334219514222886895374478184642995518155090669701409358136110803873200863008009947865859875508622918957434433002157663616058101876485026709675109330913554466618213494688962441124589984716292823879650335249413599243725410224888060591719118856622320037586887672525832341194127228828176474256386782910881918068209323459360837089514643794161006412166311691608304254020663934374361028755056775575318896962049977718181241675702189848661381925647751440596844682373814979321665028780329157382012364594461281814359959852202549296990417535357849595121458269006574605663839057255720930050258554067587618226298250601655951345079387814236232490466781316003984334735312195025860072273919454392758576467106515451877823012332559073471155866803713905749724677130313839356873812172691357936564033920678312022571106023096285828421906272644835105647503796879276375319843688213367305379199040874758620618580710893897819448134181010904298317548582781954519321251138670639384082354939260696804336664001450591186438075640501634036663083607411699304267200354146716835458380275856975721429167571823296156822705946782672276751377910350439465229121839425532624470448422665803324050232668056407065797375669237722977887859552997511244574519454164515172122701048092195465952070334757904335320325619760576424113883740476590298249413031823518272676518007921409568834590539295062797846127487261045655497025371017190789020721118031714356546403565857689983499669331918155095215798003358137926059960966481334964175325104455202963902098879679348502640769057174753596243842562744001162976989454782460156976254237193415255305728827978194602120181339885723176308479217976247124713353001199556444272791328730867733014323219088037696830099032689713810073750511480246774117243855239846316474233948410269260436326901581112505260365980846866998583849134486980807400142653084232537750469073908150002620248596113276392120437634997778102340462855816059140507167171240419309953506812174377230237723341156815281259276327138304548891302375508371985062760339312855282713062874615587340380752223189123929217275615809670984446781573444351197463986134559598681464819227122770902321926207895560342562142477437474792658764257782635207260891553292428623037150602370755571416612217644332440929204857845755385753130087747163872643861522269949824460461562791556220426518830717559748431835952332090699241750198485055932408759510227472896419454660120085610821484308666911192477060837782408547202579645056660696152305755041714360410357548596119469866441089319313650040409173000656993740558265204450633955652239388075385837464696206698771199991216567295083336006715170769914421485588332259249112199745245628269468274573698973776789124639143409075487027300896007046520914461008224937004483076941875899635562173229892561212619947584954441414538827952705922993613888281571234311315637740464909932611652971917261597384055562314910451932699730858507853048915410838608111732387848477503425053652731117126586650242259528541741887601130015186919197717852052408607668748535059858363387330507789363081531982962218022006304803643913173451577174854543769430498989066897198460253071574547008647870755048493161538374465916123965758006015529167990717265594553061218910482703875324081841878702663959455915636252261737227092911021949329021790602031142364800871074762057656804755243861106944553928334586853956623623499238460423951789329406782008589690796117547740104669871447381087093086224531930871283652034843668383735329569957192711117702836523111999685537670313368646801773049739073404802022604470225595566651807886016216262036835006774396231330538748170977233621937410752117756700895815444869502035452084784538850967844231939223668545416258516803972794032328763255181958343364583525252468416996369115715423696944821073643478524127239374351254305918824894910108945758567143780336697875214554411173242336116844710306491299739418746841893394506391409367946638006652512278697816507897183167760047736953968518428649658495229744322877174375641646267442334170859035569422322989392641923188946579602499641245091455246690525427293946249367510978307909655109452876788859159548945799530183814581129898266301505875465246702612848798151366433261805520736672830174080253412684585270334512739293243387549103813126585656686648036493733620069932575189426804897232047451001418353657797010595346099558657375682166825898995512269705207144428043711348246138292665146981790388679468474708978876196276988231703310531678744069629653826950224201830321988661077666675981330115644075596266060011440133265949931397576857717415598089664180620703944330310949816162394794919556866383476081647614947668446013757629193308149893690679937454231652274572919619450562548397743387093304426788840163567078533104715408859032892636157876433131802309691370885883052145938100438459484288161682337739503018988096221309002396179592578571701676221034478771595252294491273552962460441402614205305394074940738839762857864506660384611833094015906056871491344527116814595459766024364685647175333274857220776011694178548541512162082558492436215201511866929636480445651541329666086219697611389950828636810877025852464014846898222360954638492398165939882291961012018366023544117197029417147697624142070849432516954044192957079161334312114091919854035895942407340646575117120254390853524036267856035199640812999674541463615864628077589242851627387338994070395671790419140025427874192208442375215979424379880348907611540025387821992515842092140107384480069547381588325382549758449820579865700155759066262983727425144977933212207877898984158239256811621433312674298591141734665856085824701612584054090910616153412668038212730922448544575538410303195540135593691144648849902120931220306152950020587364641541588576062642782624250508066449318220362902384653050747666515216415593946577586230327673657023868419038734553911322286068316743269685723907326687538679126750032338526738751980361544312429643788692628130978309638633609084030618391862831971915648114440109866261178086382363612534586976386219843015637228138839608503683282910557632018369704366513029904663683081299550260020442606131626057761996320464418850426261383853793837223425953807416063568094989271800046760472213027312711334020677881271369090370563414523269181432709180133944552971223280470729139756754250227171341065552183672685377154563335630078572555658237239175969251861881030103659315012157777226691464682045341976258369511697428071520890292994196037185081812811627312750590348564895219825262060000423538831050161985986627721867468661663278683557224807671316190361143621043036137380127815382639273765346989349532313884629851825769081885904876030437477135308276835189158083341848141078851672390462417608556334903134412830502845470206805328002200492850311851863762117557839660273592482520855767975930446794843340345025551732468534718026408755142544393479730507944632610254588814101216633574123815377155222190833385671708579211828520915201585071639318752622364674192895597497133511174559943538570064367537350865966806904247263388859238669172129291277995287448129701496396009889830409613256927900571496498650259159058108035301293158996083328104505452314956465884097453438577912304089615241603254193040588505160329755557760551081637565210934059773771726202858425614158010665073477717570032922238562074969914528431251316911057537753046478671024642367323758648018480992604444855776962920500624787580017099905342503948163333917603817564981552589564833960947017567568780747986038177007906307898307612432423599757544892843550371930419114726476289325235268652038987938469297613351759163131497363924992481035283620423914013224777490456533250501923713336516199463124067823612162973744434328173899899895705011514067996561653766828070526503872618503076112769030616323536141341399923054442071929884452386613292141327420070552882988583884123549304086234280404707434680956870706499237749587805295343060496952052559935131362101179764599896986732669483659565920353995776140361440263125992509231643530448208271424020183373052754329514909166199165404183864672001698815625769167102487232778724298337291418284852013283255773620386900334704072845872022917138198267511673678373055071076007111288858335602141770058890685057271560193157763820067991592065341933447919502038229413169989605731687786612229330249080429573384939401217925018596814492238768997817011300787612299720101229489516856923366281217773213620216941273621164074536864140850733458648560776932925093308266367325532292724624522911481498011389176299297371229545487874644439108066220772558508106668619098922800920483254627212660428836404066053653727010589598890328446103270590257714464164985951803616711797750425819911529089840352469106986287561166529594767803889251522433233603697740548147115904209756139531173418225844900300090681459408080521538527265643867829802476244665702744579155107595998291648948317649430586151435098081437404196892619687619744747637929777444080199003497135449322913912583817609868698694728424320668521008230152708810585042586257493545953756174650099743594202430888296817569853891234541056096300071542048688335860093041385939104446068192768358959534310522776077358652640774921610780516565449293858534508036549693061517023027902270279401945983718361819451760013434242676006644174638845344493621314292894322453178200067799735369963007116769430631778992030593936388745595385259942313070059057291391192236305145289716700516000190025627735866896552829525140847375722299780884331042437915666981767931855337055948349150684509698893928918253383254365190354132390275001556885092320181839243101282026342617829709889652589624241741399476473503498160341621982263392286252204700754468728952903784277842768787854052529028517537360612675655489896065601071448784949899911288700263510652667506546875389408229032047564227846804752120572782145374099767001364189944686295650569390656874270937623983773580582085049767288828529121249546540026234917717868116142442859780523881231232569415354425906478381238409829074129500472961091148613624218179975779377968572215085815657186684204513595587700325336565695245117896121268638315445185815018905470124369790699627477994549048564993627289257123489007513525594449712133639237723478357949024977888308912286251280410047390369045442936634277321154113933626821797745253322241039712069965130461967372497228674492242928175655800287963015273665255165008438032825570287206596954088593112214724633735718011546794076227709765782012165786997831199920725712115992293173474461984136908086203346792772426366088919902434259715182516507336610839199065589184007314178109265718774800264168693263526867076261304705675405098357840493739256924269631107675376541065224541368090257090671055899860279149014208232013023216316544788897885795351716983294778308361717357686823428776573316957575164643819955145869117796404586748981042611982229652747078891289463662963917646341538482592760449569754839846274282745795119196814859897060046517749121661627706675119499821962695893173480060383070471916259671182104967540426585383000059500812647529812747238041201286785709870160193338518811189209776157739796064360419431509537619404228295281697869770694757608305913320209049470636659924381425121547511320651125187496878985515335652541052472725585126686523749537405430396146404336507689765275058216920043781937481928045763469372984712451486061935461388042887322592354116798200279977103468095286383858911046237893625969170269991950734206269282611495683776220173411301016292762980464327895536849122466134590440500206849165101027822098435362860187112519287707396219852244987915468078030808501679179946397649280524238164600332831130661944575133977504249337718195779257033737228672154070997052554899323983962014402317012602793362345537641263887954160214681322357768933878740857311886999112969217365605072574794931010884667418424722739771919711286927635788083687663121048932394101224859714388867355077696108616569486912074718664921738796009867923716238626481387822302351929378335696633411898895458523343224864196145720897374973403527253635361944662620996729512982307920434904763993755812114328116861404605580615397909376154752713309048083338724848173572954674136018473756131926290043623168748537391084828730390012350054313330526597205284239112122267535912255599730056224231604109791871264981903917764523217704214256424478568436933772192135347376522089205546547272884710629179679271273579342334808934438486691930906008340465518570536243372506732372871123017830425501686192477418934633246854209563301850956621767733340886556524153434914249374696250006304258525189929111155628817072581068517582322453422083238610238805822338270884137293657855929072935991119851820121908837984860326296300720638843361798818532826785114892291821540784811828444283476322898473771220985274106172882271048749165338331956683958421522078765947553643072374153883933351555505056309681474351412444567090640619666074819703098523291769648323954213601333626354298403760458424827391870628998197259511247119049883986287336188355101375067161034363712342055339318912398691107268734016569626553532274039212908688103748404597766357534970866837402693437098670996857140495551743712794606541934826067145948140620299906573316858841682773391720151318221388187197911394097958186518285831418465472217166994213169525883065257123563157825328024993475880772850101152085162080149954870873562969373199562378260876994034358831284387449589533295072863198439071935053871420165327290073460526453890436640498647519117127474619439042899575563828753733765715401079384730781547267600474617776607392526125392030712449397431201127563897290289716483301514383778421506503596321662687963798919176920603109417703737712385885392805893734716551414417055401996308999665689720772746905621272999219887505246446279652242545238004907823799295460643794814757001513738918671174636714453467715316633842637956646156520914213903810634015701767211264920999562324340483270265257694600628306041957239400851367144374766472507813223158271012124447722974253667791683275157633725285751258046664620780501411639780118628225736519580402450391508504355923813570780258761943728368164898171276842308404372522770291528827985698876286460722927024327851259666579518681892757544732163733062132319962044013311851666615858178347222814192992906483936640616011660080650748446940330342895748256835466788529578914156750405429397095324908763001794602267550871675399374929589869508792583019488420105248951700087042857695701267168500339459050166644296106206146829073086065524731749298140043907153433419088056945831569874354663435245058413190380159671219689841860930971407215631822912520443350541120511712134390475708389404130273642171302315974577531722748351142472602708082277884970512220915420930600821650101924573051503775095325727292402892691105055091279673640740112217185543478911662260522541189983074086088050587752512055669603102870555301465737971340588683260954621784700778318190492776617304731045298918588350127797377642623189156689732134619318696958438054069498370412798987932550043959180511179906238993285324402100273125186141104883843481530381991566454952996326973662865990564571911605157097860534399184180521641196708312027567505254563147788439354203483087563785220289513044110392812489885156198380975067075150859094362784666239613468745479779909540618498902798500187800432434050443022184721682132341355518385071207313886565234263123446324537227449919938304516176116523160248508606293096449228027697699842443907126657511900570097772951236957897487682377676498634755116661585474978911428847875840800604623070807612701046193906937472596061527810207076819535166069170584012650503645795264120394632221091214505007320186320688086574072742138413215483947388848998427336961202090332988509931154226219811386743732608730724479749727253530352495626939427484429313404593287522782474886759228609921203987587756030940372286797948510025867820423901964045315653654971285504086242224244396028088196007047134915941857240190960860146805092707653153673603699700246281243520279371101309975048179205807651012072134914369167318637742682483745661634622634566021658068843650415209043412105392480175822925718712258326086750228843431457291053641750365508664031589701660526638630220553130220633612999445725068870449253295273133981700113142297914803358266842079552951776366136943898101559829057915961711352534354904659461587305697185028166911516762780548785348197451339655496224195123840659166800199099135092637946178414233543351861355268365340972918833133066427085174164972719521384142662645620362329490353759728009804375718299314384409938646959910186272196821009991119567674006877274321911692694936608047230664777854086582100852629491735796808577587576395551013688347673590623270886116231045184888285856411282203719595212557690286620636405109091890415397576416173188030223092163826608866670515357094449254412518496011413737158128686406331341300744253046121065579004664380777261051839822830545953842057368011955882554987829774235059935536601844652285990827019530445085701198159513488790423806984101534487039523616636574539716648233875938201920630266315993245353200857920256143700174601231215389208334094447794703947782883606003206893025451567767185795393451231665173519271709077804778496936103330223449673899812428639454022434209635912636416257798228925678550519678607484042866016060389035241635231046297144056890613078136264259155093879691345167390627859493443416071667753403998878081070054470958800958844857493219301501367556367933617463202317603057667272428426756247531447101955529813245536054965208818724167236341607583053947782807499195659526673220684367193031511961879793511427849115989564837840874594681917375732873933355436768710167082871023745208886602836032031781883953126382581620773281933591121912327199511942582011950651706988755005100833593736263776630662777562663109919251457138939638566302214413279994190933316192568817706614238771159155884265525055128587095745694698791493624279216083974298620722814275310204426326100413057968478019299601322424979623745383846145661362834338669858361699073144310755467158676221068408248630617330028851670869897862489796935551170030824318529851031723771398722834436197420220515931575201735624814457470373187302012299720493556375631649185603381534138827048696980231382331731015947818506870234102335071556478487652730511717978004486931897484686741206514899605468059627616984817588013560055071617996742475088609981685660013587551245816951016118890056101634793135543258092449638263191951183113563275506450836709286154717257583483058166258248785034046825407335362707985473782604368535651922926383336094261924218299860923776722248707427094473541993369278362819041324858446170436326221495475986833843656826444534318180659734596774407784407002984894761924349147662540801451931235094506896978447829969388118954071658177567322494657745827952782838462290389084666858478678809235185163350009726942586219657573613664681067172640923583077815192945502255691451606952193919942377488915325644221530408970242065539556572318489877454754929724864771031222784835238735213580829005514723781271010116899220625959579692183148730571686307470246707638935003010870655372880798783958143030421387366228832456993866783221695038695620644775445740271249638149566220468114471481562206371550634454478802863621920935652217020299012192083859635109422231396796974973753649040095590917204472200169483925024028284303005897904303840823404245854330466572843512562117763632153123790374163209433550640175776573092165740813838516918286236101103397207812190585078026725243418418392981960922939048939262956845535231939250300587729884885525252977738582016378839826566608985800274893245315883209465789622352350062951379166801451822778891858617573725619710645096485903487133514096683191277940189481647953297542956369266190939668229861275445229191800593754203511008316722514345500543112535537765687235685878038659505330669445964774391123608242022040923532214274370919098955728682690853290016959066616519114630292527994262428422646325490522091900882475941888218674290175801912318109451032819123128472109603829888638095408340800480522323318670992161961046249081380572085729516298189013728518559004446605832293951201206991742139527666850021635502847571816430162942093072788714258224481491636554092911026598991561182091328936899942528757382442310077156201081734171314323809320935853381310574717766745445775545456175416671327173585828704613019830152109732186661714929017453138917843116837695249268948340656566708815715318089711157391594498270308589068068743440902643149201265021002583024821701624203418887684172254471031374118218516095369668368065188736586398192529640944828281417938949262782976235040280129974836328652129957101538163984714684131315482713430401102579572339626239386550539074350705232840792498794657809219451850608592784068329154383369457084516877960470254504944465308272179256703826756908911424673586782450275090627601186121159044031134884218564460275185246185306999678213385177227581440136455956311066960145255789087277024327656820685190620093216000535454536342308036508167832542704701206899885464414212395444441136435058647996850594605426272615367959877123857425589292623021734593123297557990270780123774885904611080160941815464631775342199558461850518626567608131608425188390681223096896587858620181382718943698059786147723036628804466782441599729556840197788995980075453236326593109724314421650502622740682515625469787754303291439702163531933078526487308289056906303671446364763958663309185603993124913588007085326969450884931370739550143931993143505633371250575375646637168254556068232387113591347867403303784709347705136017032534995372201195284208162961932991668619214563577903600948201336223622997967580703629024539940381227324656080045624990590680593872367471640451435357031195701839003313544283035140879773246616139359806476282541946556670188132655386142789199615173842143479311110929679353711496168376612726859728324537033608390903870482768407799307003734273762792521471020957142039268885175430460951602625776797120801549084323265113350018137899956182286177209527832086402224459012837756967858316060923531161795649599367748724812971119329208472256884648329188755459874846563896537696362403723874406112203531191900271113866204510185681535047122646864133975798389370789211956452781161537920603667101524752698435051218244785349157147189136143974183684249998992305504512888689406020220173332931749517246826765168553760820269385993418345570382226462113914390135868891929616581916307739912262229556617627662617585758357234152865472886300920634036743477829238528387040814658093459763990360529038354903099059826786443530497468363074928044340576013605747030181398220670023449758799654571224958485547056315959843139742269122151528586113711137002332261423212665865648704774335468694583869586168626766474344059996110661460480302803188034260590832094456747505610972020233349521325427646888895142447907580020417224929818480751706210126766748551777459655602703634111504379292236897153380769848337425981727076007292556206748488852278086388632046559859315877279694970090985650766551683365068302356357361093897920735767711710993614447163444889574992442352174501398210766125373335136729010692704428537778929527118151996816627507351403347257758085619940115339407387997246511511818641608830920872487608678889933523919698483674033068782391289029943242145007645594341234148604381154511905670186518226256950911156770544344440164292700021190165957652733863350893547857406858615362362569385607834277274484403342269943687398548103248575236933449028818164012754343148383350593839156261535093119670219819862521729405005920702604797508295481864422452038972998644876750101992773418787891517498147890341553203940937864330996741072159317116931421532701616985420981432925866498102510019395890181782325164605301967688654829746779127473603278891104483201894200505622205970577298359643746587922089619608204038708823200999135278117085968587950900340465834789234552153473555687086006223791972031921076984362906347612424257922180450235347198710886575459078362137399724272718738870380940127335327955470889513388454575721851231893315185946161276906783728091326973830940000657997717689210741283450175323675240205027567659569910857073956523851686857334152913842682400226627971187624782199907598991267473400551231101872188606880696447809752208738689148325027971276184187237407833936823001059533072715603641602442039032677925642069074828861073078610802136048704806234282726963780997537698649589654382916460852562454317093155264149309565816857637726958281770965012156453259209716350189921334623781362334833199550600299335680730816650362999146906832346298707564398131583212757348336814253952094358511278782136491962501001640638129781350272556838433221456337080330301662993034249001407479582975318763291077037023857989506001090489401762777113758889672729742299495761057774263079564782210027343287167873993422111344166262571076016634981840333451586344109438809678645695621599881991094471940500814094425437198984984198206023446482658290697004683020318590250191591488392760422197816998579896986472192046509625279968555616077460229268111813125221284285900783500614316126979270505043040044653164388982196386687865973659762606819408353772746509433430912093525520750047349186066440388075650522148546412203656110552071036098457671117181889975853828022714051965229196757085469698681163789088536678273282178194935761266905517233625077265161347651980075499634976163803916310204675732783474566162763240688574166611818118728480805745354543607579702564330560214644355075030734865629320951102458038554552929432634766746968802869200642122478822516370202336369178426725823181776228789872286546968238828076581861568892657153293332352769571268093674262530983768231165002967892174436655128795465781227385818826024594323249902624150355210493176604734849103755307648683301399071919825733780888002272571554089016416617140258873310016007177637912241669896200242517048448814670110663117284117759692978959493708483557130669532553439527920043699699587927156930131010275891610469079591430645526129546304313538535267946668118404259095227883349957523391298774415018142665459370426274514199433753599291918968768510351601384201348728281059774377249239034251860885538131046462563671782741540846250287419498091444624598095658009030297583946910397269571509240426434468442276170217506205340289767059057504601558099573443323419665566535269207961698865689293741675033303918685746942004157417057638252932973690596162380395493214530636358811420707731030658019590775146422072828062216865858301541069917443161179972868712856198015700072867690983325821451287148345145092303631464543416989352951572427170235176118065353851426250447903756384882102101608472061690640273267972224508043195538850406468497293381133576544765754356192765991266651424636780521351596884242241587615448315614478805864175167902949378107798053835468906002954167494050647706431407115602034506274087148265711347377260880922044481422977457827882818503361503621220813259779337000835274170555950739174380922372818936861318608800614938097335487785266996122828879210884842855091484440240276283179433413746047497824229386574271864870848723664731530301996566087426355322003874044762177833913314455798063234064230367660284448728824216556269731648777009231218346204410133084350850709406065780114868753753040974922863779214136694399081542764363471970320298654838995462467040842329230014222895535987788085623773199274028957961146251482710812690171250611601264929613718428645043842653453343485716070140001059525597260418141503377958921938009697501516848189799584347832148467157607990108724667918531192908977262721705186851894410586387087689258747780808974437333831720558819816508495891442450640934355492875385880838315956473617671323264990675254181964180971992213925087362352279678571227121854847159187978756744992622616821227629863492589335970557080754709219260222468091069836288564564502654114705581815721121116484644078286223875512564586444769562296898908713176573148914283124816607063206293564525095932486488932072723185938743613476971874627156289743258118155384031601181397922638940786281386724684187380558978403598538987601875162585614528024092665971456772817743538427947867972221494248412270355320350827235984797617469295475964888573868475195557788804641771746905457721747194299261820694162853409504834479564204391336766315048230093166676357138724163771066567987289709797533739913960740886875868386657915147028722849456878846474478226043967803458286422610749527591012807749744721125277133249614810384097467386785628514309778385848913373504008644354228770392259821004293029726692896947429341553793518037657012824112485691127822901538905603476313039441290887573372154267099619568902821737513276824629859939317008329086192849230092183657488238963388876202812552428794921663867523309367870621661486881972605235713153194373089415051658109906799582487435505739096143140243632715193897519024986733775370637990346825392799357148790564627534651983644886400501848188785315162229164718902087062311935684588679039149911332925512195253395855434704780998525799553310755771774263260412535720619281221470823376518947274743812187673573451575306433051621380135818507118515330715001446152109249006424095452009365675210095108567196584993284649766864630769531282090476001789117618525592760163320383134890814997165663858503798731123083367195421097821378332710007694401062633653946499859919844234276151387646787896106372717134714143039450508233413635505339423730279201132336374377707165819487820067391365835065517284314970251986620865982715763679526638520985051936471854363406991173407288017037948550027549955922577465392219588217957329188756202810106613788038780624050051741350926398610411937933995295183991241416206642778026031246601133456358360783689734633440520446308208685813613354306321711175931223860654917129925633036110446724850196261638810645588183699389646194429176848820640806260266196052304327168776486987100146861074518441195325482703408574382585255985333860589227586275925226291292036064566716270668233250496475512425504553479151622558408510420744726777532604767915817474548630587106552031737649261848733661455581440636466596767285260487152836752804879472537531148371283694340494146299048023210096702568151592666029208375354422894808769111749239645398917626806125397535514241263865400788204418556269047618912078806438805887832160070724264008309019797653199397466635890933915260931949865031213592153093570953629139358247119816023809948333860446508621373505094078261522914442693385295661272416043719836310596176142682658956518162249106621474236111785390282337573555212792802791236440827393891471574371762680210420757436262446464739339325281991026103049235788808469838121867303045098970306879394442166504630536464632208500036800182422438557200652204303675072375061653853392492530421500704951876598675665574328611081451456212694677321689226867255205111362170138494084445962182152961099067182419420312066806846593571595508209123619102312039078287294737033334133449141169100276384761242289048624024557146650998912488697094583504175137435214033472194859025134290636733010767228756421323055032561074573314114823513742031624814483604809023108840021636900747379279039304457271802349246986388047199319481407127669055623629990986440402009909403775238381220400621458690636044181321006058421324608488445936382290526083762439149025375828734005768420108366960912304414124068780396195819278485894839079972855067064118148066567116275601521058153352884518222132062344839056489751786777644359429586653686565589958135969640189096482007516893801618999601410347136701874520051489520915342370264574501874159009556883085188227294023794306239442150447288317308230120268580880177151070912907952158648191621207192180282645720419307524909763277380831632270706261805401708477324963662315281933599138312918889932511580211075483108220750173571700131253893568008844542993716800028300227705652524400338280569066842475414476518135849455392453237649047313712019823396720637072781359405911507848473246617058124712465153781248513215906320427343832333993051577261810310217505786708583160654763225833425536203137352003653432718814684083296182631932628962575485720252175122190263962112704751483396650246281812746418998997902495701133996559207557082867017100985457536444639051907101548583394006080185687197479172963662909178060871168326897400932733907511152910289811498266429395140815700280666546479444465446388426435282805075553003584927484100488178653803362366824392789975531483692787091276761373222241465203719983575038500769569584616767128149272297080054040699481387585052148992361379538233122455031699542533822391137746129671955567041269367901332381855314930101256097129217674117509325460954170906330823417266991088279419863919275216031157498847914714564746496702783844061441217691849188892358902050955392677541772836230910334544517167077657546849616864641067630519738071664063197061939920666961769048576545216887749005550680572389445335980292324562642931663939185737971392367218196746630383620429775430652733773078337579782481095786119917569687511757249597464485931163350556933532585854618267232876253904494959785751619839589718107456898882881524329185388075234977101673520366535026012365592473590358988752276349172869810818848262638707098638980072294481258741530157381496336096401109987949745963811747987417347867347549353136566568907529474396912289162490732673760894247426914919103614090857207186896491451484912126168541916909400365641627759526231512709512516557429574197227576377008128333550756262014437820444410608961492678704019362042980863803149124039900071453692662111584585624945609723342479853717459541836266319338460219235001171822857949210650956522743375714468154746100761846059676440061047589903190886543956888643169976165154523553250091406078240862938834513428560342721660307131305568765305593877915921747430683199422545987024001927899344182442664948937206024957818987940615514947213965993088984460125517243461683302275454319245700351595749556994005727368166277153861705133725297817539817430453271550819179383088521951834765437073382248666160011012985973707253077086558679696093570989071427927712766788662176939103216386902304546382331929838036637725731080806806984008431395658324995885527169329990775931302935911622696052110425533322714255126149406336615311438866339641209496109978877657996229012171702338829959995425556847309243748812531576264654638609322588247086686432873349442967793647736195443332394693699082735574129033534911750927600126288462075160746749171420933538558848930712107357264073702914801688825833216864064395075591757122310242480294200099685237470626866004706660029482570450891195701276511158703257978592484450646614595698798095508748158869519769140191866714144900466994457170823783135667791005711926034266211778793847567621360377453814953299993412560243284286625131889480237812630164872847227379456548509959122841466779600776107785352794584909590943745867421584653484751558462033845104680392108545111405297084787790656012575587016160197150548249658263400288210080657611863841048540053072002148408642677361640416644337252424733793377688936331200076691658394282686095055510474811073815450146611478765757292897093809709959711440794693898928736430454428552926670722478770601485657866867364097417800733284588948582094378533574538653089539333582004799040296055487027828998894788889911357398610507851201352836797470917996431739079014440632765405052731679647443172137895036784973899822937215823540510357245612224216178504637656973420616092183938310035613747641034710724309787719623196583679372121301995446771737537454828333850656842001492013510672484667844915320005258998251895484750189008291821297882682823374704972345402041695763898063781739056047251680092486903307330935153718937885076726356192725142096109424693737677193360145881373067925902097871836271157932288024264598873866052484064909082976964582563306809026000366303484722522686611883064875329334091836102216525386793315791625204568630734351584558521090762136423636765783513520831064093277593365447730759430506438690988831834906822397371143363719345722473241600053547065122405267831182844172240763295384673278677130492831599853616147681956224270096381907342218743419673662648523512994939955012049732334604528783062865068639780106639042691124338591094397894400261212793899792892888445096508853073417369854479361890284901953551634886525786669452565291790793706931231114975797000444390575395998999861250863566636619207574383052047047225438893422794866142422206505310933395118724250266522315347417752168332436859793489857471115459071950703455812017946050791427969587696513742160587930867614010697895932903465410841056983650074190617559067550233599106069176128964837373788404189884564637931445028016060521694475888128348615369797088950892090786751486335269413725943717419498388636313018652951033350004101934331208113816722989292579298537798419828272490874813749189539289528238251639062987287833105637889613755283776477171142093883749253965770948076720513322326507036923294158907752611485622005221236293262136706178498727722856364489375380172299217322616149688711640612270112252967993750359434852254349731871092711731321252234875848862831090310940795209481120476687158858691513026659392195620959192865955361748553746582472225417208986419667207652237883401755133486430437110311465895487961456216508619782316538838240868998167829667758094634481560116976264668325063556594431540492870775238747769492017445032630611888564568152703838751677354855944037626877167364160217638216484880592549830643813687976984026820293023395117171854665635283676504793556138899910354252292078061769174404956532771424008100484586512923733809196683473148255085139906216239413042441627913795053533936372795069723894086672953760357604388356155016540425129387487156574066401675124344288166504213180988500430614512309230348952113132966720969470032780784809854928383973101575212782601475512504547917585982973974153711810007451961799039294376301217245440371374513150553581114506722913152081538038945136770595853925949625716852256642975658706607883986374458097660720630245769611881065698507446723521879824216733472584370826029854150093696377705237336883611975050898214400428828496939372393112821602630825417016165049364313363396589308199416974723512906331841302843122254200032326572080303902007922740557002211616657664889386977259072442844652968131141838213385281379054019372865688704220867901721815670461439957193314118190624594403372055062459939488630975638962834415101107195305756309481181300081778575356047010039693888039195931599635307765853954430464006946465423357354808289277404213408506493369601821519935620455366720977321273090103956109619778501329240480118131608894742211612746923115615551339582051241214536794731446398636162477580266347554548177362283669541229049270213280527951651316527973730893196408137615531363453223533317166663898139487144459610673401437181143144906224487116007023093823185194350264524865462648030421083401517862440264029387220340990782690945639330068397810357757333542986753214152611315622200607699746338537114196426817913772504896196234693671679226892751538287528079467874940568892637715900677919695900324618319001295907894299280053222928275113089818399577231319912897549171718252117164025940115413080652643180102127327180711682233615047158913513965775007187108909703791236526724529019508452500186693446180151193477575074451961804830476898030406960032446430436192148487693339027125353089761069641933751667868164504711841772611439785329712937840727364303840559427581839865946013491636897740946472340634564430388559655341230812643606658878412189894152037023583136724710181097442884774755581958080326282327155975017464567288910597394758881738462631684163659750667482429068911499451868593108366715952077540084977827988354371195187082632486686255643689014092313630223836995979033803426962636427134712159152751104831167272649857273943060830057974482084217422205638211197942837843414788953124851843426784773595819827707672289480224740170033317835984307832476377096877821531020397233453692754755892977264421433742707404173816481042376416416895426724035024870307023627975309663837353718674960542908932797686164655178894126203792787327481058104236785685727598574067702475267553355152759747312758145200720339975886708098189063325053338205178181287909158823809427794310284983832708930431354837936242901226933174843521611846868451105938806139757495529601416965864662055415312209657733946664219857388119569904078259038464170392884738928043310502553412967864308853060567738323893209602079865692833611258255180388500935624358337547470395109283621785478653690511734761185279214443407643555835595504278514008203098387742865479962598170105595950559990334065957650695409301130742539268792283563891131928425359744147491606913378191007699169288271208246638802018263349001277883352219148032582234731162900092526361664340904880795779685240337248064327615728271617315671545085033511568894134506301114815624618194125444227639102488091435213589833701411340019823552116956239820791158110702436114663527259664754902715153762396239585478412990415403875298867464589585239266566801475366543918290519301977814741014405643796393542984210356182772318232498714293644785551515084445614346272324653827675958117914344329934586078750873463795244124456770145590854631618569947324064903878682019307015447834713865490855048346337619269012865617898609993126568428703546256979070471352397517383326152185500524980945428807285814341702488685773677218500980542737887505311111644409183294087868660188309174455966867720933983019585654444529935445776719088272222486334874600224124287243053057932098803150180789191260138278178411617418017100392742647699605485298414264258591497785522342390935569210142367068190950414985362579072578919758592314946226931110711018282843607088401750272173135659404718388221541390867353425357245283191947646928947405993222465285270008321384586479818731367782407863611374211162048965871323032732590206286886315010677363068102422253533712643913853804693591093579127125946255641515932835789735841061979812567067885914174497122240021605304142426935125323192843609470713210691955253595306294854320401121762223902749668098130577974049330881662624865540343224987409642656893989550774306903918947693380370911977717853589656265459458774391795079929455453226826993932228906527229344268433509937915531362432035742125186597203198975978605811189979040557197422534201310063368569884422516711751610641809767493728663504168519423864989331551056567444474847482803102511884739750641744624593021036194143527217530346096798062066347014507026332851491321634860498283297695171750836374365047929379612206144408226593733100681177955549146183410743837810372553940686022465666592881061587968916564711991803167820967984010126408219934651922892041586346295437309435134501580531680518495143221995249566186453304635553170383356177499569399615704049400704132203131282693065630436213277921754187648999792002963498221749197694272081489284968298413684826611627818568285548359272189170067223803477829498367614581587806653751835349261506779781450451320608603869353949201847367152042620186169479419699176864246643074660536662731773592897978452935192254625032738674644284046532121358324154751386622860873367192073778614627036443378943299614183025719361167102197612981030819013338289792891737491591478270358815639739283017906594275748227643088063263666307059781579762713119202501136775791143332500127636130975378660515023990038192648479609478244582664510314220133781888366925819818255290134827168223442381386497530165829073048550760192599529284106059810207285047593640358048586287903462270863600934127076147685998669799582721618541581809908294316994518359819604040140903653857776243574091414414068130580337140926044834972477884582888304471751706225915348119712095189359884780173304946976550422856942105258612005947357200657664661460299515849692686242284374511514570020926232476694949475396135817562330196594912986691398550387075859220107701790468304926406264288519429934760746489852953849928531255789272119303708343717589886105858928065193051458110751243656338563403612035160006912862538941263807532580538742508064025508504063749988832968135278008996968097742506172024069636562671246477200027474087517090903900691702078997139695861941755371362783675196101092107601641808682230067089622621671523459910118142321667904922376454516343477118772213306224422768960717668658000177761656654337061905519248576995037660865320580653652455310065153394840527009542306156305516717133327049216150303474259322597648721739961500036692993245594608403371865086174677869235889901733299923261512454411163369112043901866378609064536700798498643209083441547542260573745878444466483938944199131589025359295719359099311785106494289005609188041190570413694691194006341680411921423297519789003058828855386349967989419611668044395043575914507199039166047152822254060675774922906955327910976429011223412956467282143404165110478028359911034064443768807483032069809422561666815756284311257352860846306136085782750852515728829182777039656534581351251287995307670569056238774618800130300768021002655278958815797401803946532633521120231114197976909175903763275964010335969270307663916950210237160589437911875143125691113795509562414457040003041818192693763982918976131705706013033896284914442742230548560326588448771646538609524647384723071540280105494113569264731658458024654930043108687711912124348494736576458596347583190458938691763725144233242293249485599668935773271613938603232000942828316433370687190482969029084705289840318946514426514252635620420569437691553240593518852082739811611101296671699133260129402049096776676538680190087546997370158079746619904362083687354409182351103983619361207512790849362190064541921812910818772523280568089984936406487092555377121431486128330640584208593646373149761884194126991784458873349693928739986077502898821013325107721570969819518226038038273517058479104815742402835497979932792023567350688004017947854860370628893103483294436195658480002468607414950124701073032960735578898367918374696302453728895478387273014322709998927199187372126986610938502857921709166741353963880817737721211170836541818049356028078845187004944282603985179200754171968265306470487197062694155583571844760979235775406233455774621966095154669612266663188590486477911514070370340562816657791890346897588977091518479165926009280525718233306901204595009482629884128737082135501759236496879986787349813845281082095707428195007715942772623567613955239230037916977913400016777845221157100192267445306879912201169763962737399814294594577062318994030025856248505027015593102549264475112140421220289452445986411096468239521944082990453179902169680755168978645304098944583502552812706930485564254768745973338790274635751122010679827976390359906582158844605606705974162136030789089643096776010644296801491764309471482226771496365623990139149225786264454758336062386832323667642126807115050212906986940740085856083840194231172705564936134950711853167732548811029876569118221163041604748808658094714513177865971374351064009368738951460328508305080990987361356488199723679095512296798868236793159543518553409162405947159985937317970563620983446988574459807978064459989860452601225357204710345217353145824852280427227631854931169068366760823147238823422689354197709969405939757637675947407660462539821070469045400302600244527305563576151536278193627538508272765515239863782819075668184484315935507396828054987385274959731719980880833652549387795478266125382121742833213918671394958765180847507857729321656674469437458379487709336290655688508272998173606861039756970580833370893141153295063692285741318981099119845608319899667428480887937011465367975820006605518421685856052663413692274915011837770561385980243280443797076291362490307538444988503807352105550212440353197641615184751787635104370689332415957820141765297355304721246886516757886932185812588387296920565519653625806718783200931749093983116745694544599055957490828809616246392979840444254988793877815286141700997011238724158061697925152491893044501687392463387130599752370353462696805809952177531529018594852172503518936687895662362392924381710721589312280752728052391866372234899192561079030915108753748755955541590598313396764052514482056519587311221417730014102446142371337540317231463840793899424794441714745924334089511141899377264756211257702744625539328583324136759217391677657782911193197420635272482647003616692364492967625232510035457489435695372542804812781342684091937583932493505291759658253821954620532989091012721744716220390887625217688756021752939934514270427645953824621496708590895387380131664294354378594542953978165314702255946308209904075704762717559212197082907620083504902900182534672395522632660502546791509312405422186800105087316212964782026242887277708528481165292298866427041367909906547725742318140091030768784071472799564388141442676496335260611357260184091093317853424434790525895345997148792285047398657894901206755537144323777518536556862812198515839697906629536811718457100795599803794701252581005035519951779623853375348201832528913500537761698267915979924994324074041237128737494654360764109037168471099625278716610732611524945649531957331574445844230517995260087152340537560398355146539619701705851762501617027897260215670706632477470568971014079257322950311099550887822234224487121089393211182126781573070784496733746392002356590542014609340640990216671264610119821781298701324379826051875903346895174067947113099511119206600496446743249996931403169761355183415251420813755963326908914568194118492665776783377161053520203632696833582593702096626605148396486948787043696204463539828300585478016697365508836517576689116004739479508447884880637112295350105562498221197126850510163190068086387898020174899584976651423210870338472763688041177929715464457057003875510089158727419286183962703007350423046980047709684634431513982743743412931198015349765182763189360485245587813128686816357596880230184639305528639988643613502736878708000080372119243016101817272039589609370541236902669691392485309342932670340432122749887150643350297401107611033691201766355757203491667797850836187455327222646630638223194571483523315684667543310114695786202284335589982139848056142458360778290338948671296846913943084656038792284674547241303238363807290051002248747180779772720998435693543223374715292650606451577879442225944443531227537129053295800196890969911026867204285492215035230407829800048330757233813598433526564521916781429454447032839977012930373764480336407070921166683752554770935314172413106559800283389330252699085069188855738724742586802605896090228922350158184505249332284526962542257721670165144221377276123031544885453398896442719797281914434376278655394285236206438355728485969332000195485604381985511994761016904052909577889293515379590615088531575616330974409811287147376062836166411461199055136178430455071656026610801562677481783351501685049658605798681582543926750456112228970050385117388424783260539510381985975356140824694592628664787695083602801390948029166130923513698110736009868446681009007309241241860490391272521751727860100273988170832793803564338160551306846540425713133003226182396715966946950413065875425207824871554185697478934092064578787762653140816465859633287619668655235580470911311682972045907886053059026108385583913631555739113884523009491122207434335396237166521010467189124517103280801015416256451748719551103264118833768538708955352463496020728988886033787565316856115868110491591550289184376277229310969737369551037897612091103522793090465441709062420743612098378598078257223296901288100517176066666780001869587718565599786093449593947276668833773038105343463923694466885116425372408322194604775797441633077402432345876474959240809918310667315308482076345469815764190097670012333003961532171188596605684589627357461212124526997510550263405620952761502897756855170803000020058151186335021867759863001894875151647342957634502411393359069573710839243663366636378180693785125536717117711152877810359939333658381704067522026702520008051761367877309320120865134597842855329403571093404541220017381690303069449182011074903743409491405767318465166010417421670746071279692878077110726889599581850503198358981851390827680952473983111558307055468473792875014427512553453246798596478042330939151493261039589850760993301510015952629137248709989564888389614415193995605923742173135503167538502492254322083008889055244468416517879122542564383365216926217479973196852655773468399144873736464275989718952574503765608522073525133523975042474748446619562523798791078302162744448644809669280389256771897245558148591175408470776087860840992792604742581890101985483095815114871203312034083181917360167397829456808149471299253571726092125273809124637758834443682231279471029305998470370082821177427368765004206667991459565280592004738799004240903709895299086148249629031250307559016683228110840459063489406478598833963151345998970865537296730387347939273060406571018613797926541114847410592106637349287956278438633573452739380126691992486724898868143548493405427303022204634234783618134842816121186027803322337308277612690129612769764351795167081924772472157867655538576160300528563974383995158979330681352446697191845469573495333624985968328964407332354286530645760764357228955848607547566258407246803591011079683446783002158007865346841473792994421533340328293931258130959927862110189139884599454765645919402516769647594525412216562231556430231341143998577364655843593691482692907520893888755230631618406631925398653978906116999099196202299977873931489353924551216126617739027736269033294294184492208022111237759448812607784358651086503138633480533350907594889818881305175483870006536618973422361553994287085033992974312207286632999255464868366507735914010243870740508237442531470845986609630151151235862264399264880773941248232541921855991460952005219428969925164884893957011422994019451200703969486590344107695651238973316474055849008280345042805693079634964535042123620647663029648888772170093887438224025651698105912568702979137465117962137973820533028910479439768122965648009946850326283992006735813996142963742616696791239777716193150447477599829822506063440374664774609959699447250560213942416950479332739015614579407069239522817477672642888972080895140564662615555202230353649070717455313711306978810437321480693594043054978053598398974317890154786305507994512360137676376673214168502383245412993184199813892730384544622303664218942074213626579318926754300496316140546681965786361383549657875106312509731554029123109443083738578448612266960475051062679043028473297468747889415408909588044273811604194416143706421896488208020454636799207022079656271080312041009759843433555108928877416861956093928942543647108470051509946604203374642742025897277360297428278385487998638076174500236704152004644104455329272571815032544096298136311463598801174741320773272520720151670442319435916316760671819115140661337333174051687873246763494041905373747660807525874368254764741253948793429632541943999555235432066833749207435590940759085040097483634572131480238419175754057110389209578120630509697500281246723076529927837743078619700589507512418568289927143289447557620223656668198620334577548142054908932721907359377685316145402144163007904528577061995609045149224291435233506248557273264714887801330806657525411106576780075786525595309272836723237029144153779024866126362259859783392986189934962314676291174225773668302528902706060427009729100476917369040555425341120228622278926454468388619958217349968212356582651750552444087687251988980609708867990522358684290998399821104546526323297189383462823519994706998521671808430920679327826695992763833718780716458579382428810082217263546143818478779205635097824562897854409006495119015554132011466673856812458827715878598852700906700325829155419083050340413062740609220779371178874162153888376125711286318500567535556259588297451573432936935798922300439910006091606636245873361325792624931606283363569304142217164400124583172582385840672050437462540960272847159126040397068486554622489499939960951695043903165476890127631898697914245148875481242237485538131138952706649354271995974049397795651986464861573626235471890274768284124454659694600349988103195572124963195482260902512455901610259698845154255546751559074292462661448860066738774745399233288568073060511856318365244791530691970531423287124984856191947645819897167737074620585911138589173476171308079363634432057603172550664567288577256333067191459747995201587465483330829163147666644755635928966174589701051835715699852581002213947990885265246157857699522976760827526213006513586882484553901149781498765395030577187662642146879939207344082570256556574831302543313290200312406156551563002342811153972773096264754636249697326344123874351262280885399305816749268592931670348687625365833765432852465901402708453777048960554536259040167861169674590669588498972169452994451356611452713021251068426208457823381457024761748423903790355884417666782838098671367047690746869561821087225435183666760643121822810484214731606257574311455160664128066051851252230567183100134327352162450265541245209106218964991341178229255617815653688755033180838570183390341708285577744224130635331780746497040125829803073157210313532564513871635210394532636979417692242378836620296746584878137813130995618571745841078195632195496784859785275022740630728021821475231198964704268172790059542879879256312871789653972777446367530445026963295587495476570563987889063975103473558893088580236089250037696932663251124198224753242273350350292776528957585612417263675669042269197838381181673195267226350808467615336332707864759881422957542581592933212485695913446943541717311311221305881577567172234878716974012166841204332352268029619059188829031930749004644653981326457983218728930655486404243063024672840245607696044442953833757471752306413089373124996882789613561349002547112137276938489915813064737272610198091045614087524753518187330326406285739622088857295338821305443230404160599005712569228312678645750096195160073971401895672235841098542091577389736111309593639480467178533761508230371584597877971556595676528643730040783022700136180793940980356015491765646933575337364590114935695171078035492998260320999477836040216135126072358715475552008843200861235551818622200716774983549435639558782541835967386425916456061102550282615788703713764730161572083290990575992435244149022513920144929986811127864396315685223412376376083108493323743283873425204212942494039991551108596011261049897235157562814963758874834259498666986972434767632292381555977313182406694387913521539325559786439429689805812258644814449348906030755103551059231138588992393074521427817484088517922942855293744881796525814019676914464034688305344227764040060204665967183626185786576989722334573706574990386535068412755527751071620983098367553750967387696130509279752397215324214286766201542990390934096161084783769830604209020585056918745588089000961464015392771572887590085242543808684403829527657131939193586437022899137608693516686267744890880397014866688432158190460726643206131835982509035196420352607939880074246300489584403553281395131608853124167602422259788611980434157800124952453044397873429911992522987056897108159385026684700391428542640474359322775274317904824074403350712879136120673851252390872024950222548573843484595718927605449733136437996320893304254374095024156555881436672344221471332238483927964998875052780570540725446806629211634807891024961107775172666059794706424911373254708018313880466052762034464474389706625772659049475960953667695908129572940120408564901632241875207245476369822082209472493540296792303192431759481442929890174060610399293362814447151214552660064858721916924277808146996624424122832963885195978871917787040734228224454343307315124453383931708094355302039399920898187926151035319939343354747400944938860941706432121714831335785869882482595768540958099356497355905997850707051642741775578988389588398653418806536778982131302383570751525528779148161631071719612698535783850232707015309409092816192417612638628345590414805930019166380176825597389286886433856595207229160484892429696698982426756595072695113928632238848013204016643315353525552033193537145164393144586546726146736294749731126006490922215544667152203945480779037589015467462455469748211683133599156065891693995141059056756906823174728737113590008872063188347979706141511641303151392623545670271269044254633632543459985457767967077811048399652072171768451320895922387075063100381916310609951348171273031947626449660771671808038172157535127306949047231350700224258963842019720514899251306841815775541453414022438972479241453862331577220171833129066905924022806059675928194521538441799627768620124143896577951509465411125472918141251460738820783353734228007820034230470680970383758687891340307693151292097414523721075938226007028683535267138618528751253167111355086075954328126159438405894619257240067425940981323339607120728127448934213184945310420431805710082825655839964220449951815909459660332670897296200317800376151659529006541520073933937683996241556737440987435697076546517939650191836474287717712617187470122654299011959453391756041224065840516025446246358014060679335691056864453985080963868133834457060833261850568048104779664500350366979381729718056954118092838298442221788291194515552159804305210892188731353517292611831559544225484670801996035445838915733319918171893594527335893695529316425122898737071977068654238342337726208683080935867499425944036679815702968195298638927038891839550645940154533965998249074495947753893104186729309605936262701910312750112762586771530243536059622532661139117528293925981445494554878169281042603283411955159115601669675243435331473493522710010314076647742617543305915176752952622878611521506885690911949703335842097772539962935868710385715929653527999822493067542148087850084825649788737695900599164847698447593758328995094984183922270923900967360230218797851649545930596258408670503688900597804142996948387150098315210631072255131782206257757417961926083543417489413058803076630497663055507894542518717106974916733205139166729237744745656026385400716338004061498196371721456149500578700595899677139269695594202993345362429613528451610767889572021549076388739831769111889830231646216295873774569236253797606664861463202747109532810579067269821651485803867259975039439164580390313389611864298054772364236218563378810137507990212996265476271427833996220996869901242000433313517540089105173140519767499024935348563433860754178529510180022682353952433600702972426962798298341772214173904199517012406551523449788211803414056462274911976431701171366887949378831919432675357400504170772793920656385330164132754053191411753705508386161290039478975298919885088726330375544797530331467347919580414414125542178297218131940852158466678782655036148203054321460745945045717668260787568037430687629965391946970618602890934912743508911516497683332796679431117232387535427753022342911071367867722570616050670792707479935391887793628975319676647381918224756873133204229664289597346849935177408507411510299734207666244750518117725589862318226535751894343227170301894875241714089137976843751624516286804210152330593603284542104367334674778148357040534487344104752966780310688229146033283419758815948973744110593003756043317391357919551850292042858870217063427797820016749892686060212785513168179832560254770687650450836823318000808407818984075828584890064333899672131563391585493705841990643427146664285264102871136925759459376568570279256607627245872924310239785116285686569771722969336706576180254042057436043950143926552273513717635665655676918089659063823529553716497777285389125528989334554444381683237228002500263902402425532860152417678400564174440269097996693278761583561093108122297114594109205052356890637217426618846255172497592105371214290111674864387729798567508626462408125525618673722815329487052717598253990421489457164255294686387699628851889715434732640304389223516203186612518362392558020589688017397864949468677094697900963874559391829998789662736432131426978091075751370461326073380903292035924360528235785208894766547151872242070148905689890898566837468793811815777472020463692914208537790869579672294432459608410456966457619213363489569422577836545630255621912492489838771698544874529492342158459541788007944001551056150609277525678426322915693182834924376272971847693593465697908590850346013611172739134570433477941944463696358814968692217130878690523769144242764039756674241767161321943210007803470758133411806006229645679856151448254247863913445629897840351477763938438935885901272641111349362516427197203408186224061740817593783855327380399250836573014828524088707228797063372481325624486325230042436813721891665686971006791402130714132304816658441863040596379908397079053395060192213880976773236564669411282511886639281212635435117194200405000412672549658104278482771634685709210646553856357983383823470282119748728580241979241096517051062577174992544034997594153884978343346856010360897483581527307080024056391914020759768993593397542801280290175416884730756693542590972467470347150353779233896441159645069770941753389471417934275985709723106260261755067821677716672925209252807490891192567401495725176180770499628125297407614482474138597689571628074637224016582504187977427158840079122646831448680905214165416058483730369574344869531032629667372438654048788789955544651563833846168905317275451566490846133192548594555163766709127133813460317451784641194263148424714961065958699905641811694121201059835665947645653899368787399095116008417942472154677983316203357871733009137285054147731476092571310907928344106958470262623357013394075826298267025942894177992400662790570574593236478436803115311275164689393691524948487140329023518017561721247219847278380370970906413400186422065208305733655147434101485482876684975952879541408929600297605254297313130249449841418427036086811609420179139147413530903439848388398238140780679374157160447523387851487878594688891077963817739521246732154261255972359706342248658656421763045154058626118696943932419269673379516382397770743941685053343239079892651259256549222164196164501061755801162358659287685534221983984333257032900265218210374032071726738469332274327716159923849226317083554351596574048331960093787792125017577945230563000489311709002097821414680021458523615358976881409341834203566981136977641322326893128801287727832067983929629188620073346757862585663158653555942011447333734755183350978902451420523719531507255705094869915593176801657173169211259576158888755665184055293577443159207642787597708019106190243499820835511499402741472661334929469884284332497797315308071110019283593949825446511381762917177769135061030100905498713624308505162639447111181191273624917964028415239616523216662039903045590589569117060487153939353966588151801063568225178171421290944309098109523507899122752767475479732629160553659195505763841751927232358876299973511176010390875902228863752729505793110228347791849308902828348797013499398218642171452975184227771687159202828446091625103113640748686091105593269942361906431111065466197778551671702292473080092267134134955790249820646418536742744307124481570992157731214854898107248075566109445083225281929310587626285847711969067875166604875732065119411842640286574668088410708264320585908765721088700597947027046881958063900276475261575347869296618388304704611673778000033301837149640247935183947984762559535510617283318428952114288089977487647954223499124239118347020248984669154542767579459583260929401516471708290233071556470996873777270091778203387752079601568078560846515171710192993752900979258349398760895862389347649189328370983444546611708923620133623250043522903957222239918219063153993713470759345738765577150353320629875077075888651199911784940502609453404962154318265020588134725451922863400290983026836141299151488586314467428617131680960122134820721303510086568121899639290684253501319012621866727489902391557629504497426169087322202571565974341043375681196053129974201914697663415513973365811258003311889049516784253957472062671846256590105746161892325816717233357867986369720329903552139140735579071292736455084858907783877513025730343722927493783096855497515128181468866745333842384351094814804022472020649729157827463802930796779970668645763348799591904840749120535689422167365710301669984905912768790413027545489963814196531199273712920030900267455333606928296606404917200734313897881336627736724426719923015230636503624680350286891523810040335626595094437861582187670738943718500735565067771167800448415797421806053469313950699515955523416092887416180529098129720815430290445962814562705638095834687441107936051441954586649427761645646150517223419349259451465414650118347996926021533894417684243859112029691857000939877228223628582345894979086893858303801796041205657046038206211455746351612662414233767345988982436281670660289922965849181993643763331782038497163567181802670958213001264882063354347859440000572323386262257817530698411572962772803401248294285152956604657634380429511596758910169234406028034159975897497209623161184104321560332661310543976198513434244936563515631083304409919894459192174668987646618697257991120124535225223648527965501106091624093526917260509911820044436112112485685016863969311443466593258640673004901518845121760394232832655260417340068864383372416172699912317328627786561445833621907491194675824318105665728458534536973664316875623531731059187568058792239215477575469687792227884221428814074973166041616361906090339271129414512290454150688276353052024589455458892638200676135721780259141517697623523775980689227528101469494384680275910192600125295044128593363156556844432288142369765812159376858672788761031464361019678339693684748873777982280514113156098523972949917152324723675969464848201776684856661450949555724830811329241078380390217918042053348108035314445268713298970494447650198800697805201935737302111672158234145348621350645321223393406120752877154840828630062020619310052356075876688866067109726358844419315322035968658554530607316648356456587297059214874867615317397368782752045082212829544349793808222650060788328104843643101966077417494475342768098490616401872360059364666287416246162461626638248601474061075494836752869760261742036244098628748547306045783997833917755707622185549906388914679023379980234794362466932747877282854722719898155224507242371131222105447459683119789509136226811801988572788727887750078346587203681643865432939677763575806759763971190626271952288138025225647962018288405893595005163973922635709732755153473736007606077458358601694218819973183672264184761041172871070906441199043908896770599253703120772925642758161673919415649784408040509023838236498880268298640867268237544417601033895456955505179091247480746044907622257521484583214424664001904024827522531633155308094197148089650174952578182722194095038300504082451251953530145895682347215351747335016869794906003471079558354240671719719745641496146482637420454197880683889260557324773957849521246704425269975240289395674528386288676762436670154843993714348031242350171386492581878641893135213814985538891713074126487024867320832756281556495533234483567709997235185352867931567705764552350820711310778273325504970491773685525253687427525523913472990858973792461178745132325697359866108919448419584516367567660965598913090006611830907573845997041615733350845514444689170661194903661097146907999759272735449368200300755399728991518993336421417108131070114925507146715837233757598066499820749009356266926623408898210076260607543690949064117795127502789758479638023069855911915333323976985141377800992493704126064966684913109325779469141843165825392450312816837448265492731834766961300383168012602335775976488102018481398913930706868390975978936358285031332828125271241470086461306029905820536751372497380006728969348215511621976060094405079165677092335407266862236030847106420102972575090574913692425458453111473278902269112093678108452774876929094506352930657504852552292944316595259556667213409736302919793367614910672857615395221650736109263498405294455593360618110913444726374953675061881185145669121496273538432968868389254887999180066442056162386971255255455124139894943347822099887280585357273194957614570574190195579302109781807930493485737819545777600689446827542976174430122479724099150486571316384276808782404876580185993497982013279007093293392471036548042240353222004483275413362595543012692457604983387171745941140334674153527563552142144756700882101515853854395849402631473618370976053902302964814115124867061651658542587271175875237356175990340134969044492902169140609932327676419062764065314001056178237610909514311858783739455131673998729304931098217732263253397586539729812689686506076992976015331310246504047858578159690146244949444769047398003361187400470739962729873274951042235147323512161076602025537129105805925434857967636999155113235867362655329380000428251414798337148340217091173048828936478821881961553896781525029227843933966074075044286338444485978571774831392616509545108624100576178931731501328725827668305466345838639650553055950611582367822745796072561956190153105662694702028558077494626311338653797096454605267445554584456571516252204851826292394230722349046059403502577559777631629402361392091290680476691392373574766913966629148429813516238099971621125512552118143737848391058826101517020777137775114885087795374488352488840261173307437011034172386739409068381899367876341172219776679049894520595960060978946223427990731199910322291587884495450053707816284504065651038521863086234304254783555483353682015216805093660756473796487656674083199177173448329727985892259366971977921658179306245237865589860879447007001892707644960018292281690800725143060176506923180417420514307303471094003847515920227244261390605636933504805598589356216875378158960890282092494711318594698602453648522663375428047001278013170561451131529537217516924143082186727322019422118718751160675714466790950746382026903510191541515193843748019153285849259482705048830809815583082541116222792240966941986948179675271907894283519298656369377716843315353841025612954293515518304832374790242411199391887153664143528728831441971119338696041374832781931207297515446937951681821558516138505180000419019520182973683954460124083951837195639271501330695843790815930536594029561475614688210362545934060499299351927841898412010437758180880811713354971246424616539200924800708576843958545790509121533897256758532372095551076675270248488390360010125876824477766779309989719417537014602421049901098194097753166555570431325686136192933160497537867705581086621756789759483434937568177095454859473465989709390902072180765091098098404523995808562408474624443038154679871798529104316102669309607754814505087094011270477320312905021916089927601966600667529655040604626561980932640909535794305051132161820062481861532865723449147061947796069355705159593245242480298509014425049681046410427410578119196549790818992167914818961195288106311070176519689753350898707260678764282045101080579831749986117579009863066135527890451777227024809578085459061468152952010009546547113075717052928538700426274978433074927863029847344415111206013655607105463150302255717571938976874044539680389433240719727063002168256231262409872637749427191131885167055754690913258599434659036266198621800480946621727951156796866555369201616167348620703164881929510427516907591120818907342980574351882184636861035398690806747182101145208924867150174061898733877411983953983903774814067877302626875361509482253997526749858017815139200068199206270733356707944076731155491621845994677317753870447052590909481839388936251041334657396297206134912319761493712578669692092693958488901682247382658120950143634472253218661390516749410465321723450705432228487185964336478354647819042380851033556084430169187803011823642818234118599587489920338479517456394144406357659307984739622411662661986501692899980296190540931643293221297121622654894107157247587705765109673159331388593421940180137296898105407678724874850359333224504366868666264230465443373978485367419584089073388410126489894899214490399674962080804624519063881892635874771988363246157977467561538857808233734733821022160258335064006780793466418960419677834312774458070816163247418190481256340133992997388877502265682695400119359542789305101108934377885452606046324568069566894127569554817147438423515786281609869743929679981085907005860448832735048445161045372611328415601706348989061275254360773917384891991727848322195804774908253680854183273477840760456475379249695810373879530535199029064578255524967030622333184619868067461013243534383238319794257266959715919954234015405740719754095102038875027218691065994799747885036945586966230088208418663222319075296060346559323590920703138711880414140184547749384838422036831744738327364901659143233517339593260561828632121436418329819900017023924493642131017151006515641084918438742248618954893413185742241353173330823765832580167489174581935582649520472392873740369230991364454729545754021285519050242954848430858959273292370891975317781586491199759555026008376361092572212341501081961688402055688255633718400534536933663482889789029210302310263910702808149755388914162788916519727481523727793564084826943744600262130017310768795985203892152933768597207905251826054952952802691203699651821656294255196215627476963569989529142289169799055579708567570356091574626293877137445310968208390485723664688667478286178913422956940595380854757408750583581624693116111454457622245606420064772304953078972410300115438282135540317542737101204595746907257126122159933716343711283652800551465534803980401723306815116951848390471640372677197419462952608514359780092630673525996413075016828025313641242477825308654208369069846603424259427758863515827984211642546043974872964384456610624601038096520269826504669856070663423772126739636230152303737379645000341247172482179836443959248993593958607616273050669763765242871977924246304587952698297965758978657616560589138506269879959473399944721589867203822204818641281620985409874048377413382817807158780425780856920126263181192705277622352254052426630562556405533922808064011626060643231180155151713723023706471532656425341991158675442230411556329613726983646291475200775588588720515702374340231765810266727525287517545428594409721450181047781136407443736927670177241944738745927675590128062170576053208554826385299186399141020408277039746129277945813131039856444611788891431539682488701554357475236987106808783324827965079567657952035462497718695234147470882814440685896513840521343945889511116995440985699979954093519194138297272940646276891439229462417680262824125690252395291034642657713217605356517437816238747792123316398316656446166351030137223872567923425248013987632363927266984951550406714208809607004543911208284358451818125140720971952445819261617059310487305436741330486909802989483446009142928120636042533404697347275393653360841287055055802432575609654867373128715598305322988639233206497635740848765738047430496042992976675573459770459205995730045160643260027815573484972616897163914983241868956532213810149048504707159046457459719251342639036019137779321232975508047033320824221861842979156923909382859262128368954660040390426561690447871062807192138394395696217694466228062689977043679189137083297865572241327172356496345966425455103551830604774600820952488242366506713555080849867550341374835225256962301482854415941309087128729739825400717774569755315760221725963838362414140173487498567270412239221215942946848291363309123324358874533791421284742266065337366953991744608393816928137610396432910824919679308872103482207749559752921838969949835354851809904608339173374495140734128437904308647392771490015972000637136184851870855773292524798185958915640397669867338188435554034937927040415510471984213725038098640809731137087815786099912656482391965806332339923849376086718176604741429025830097506747748890490065133523925807541870725912745701658504914946089177264312603436026869154531160796484783085958613871019867027955334762451354593662157215495572950533682179734653430384325422094530660256344187996705926036177161283238120349750652708188210410206520209041465979901653290302347249156224479597067390352292535121717302209023265125714660659284189864243750496014799790807879538333818698105172797631888793085178106184981965403710125571674767308643734492949529632557045407092220258253338236367176156005893667498914439417929917628419293381409677686144137723184009289137020633009406501637504123850828176793649805582682866283796603529485910697233060323815792012297420439667601542755505225511102939433929724931854177021723901775744610686155659176503765214629883439385227993871647971874330426533197316697942954001006334636944437505100939682749278690439750319506977320809004720271449132987007083395226516496192012222467684863998353891835083489974682276115828469831855179969595252356787773365417833902882903412535740345282971005288429746098939177841498424138101684469055765784951518425468407508733920125743064923336600173935484528747329443621193073860453147919066843451689313097913418767802304462510568482136969799786606720713461148889991709688617562489437484184137481453329482207617444524874559777172252507272193335511134237618566151857527517654663867517836196963217953904919726115606147677979860783009525512377098953968618839351384075454378942200548158143624637490815386175571149765147694496864225263246009676323320300840405267917656984222136617088490800587710248703249978589581451833664344985967491570021865451149487922915266195583195038785248938794820332324909873460536860073119850048584219175135830046280189249077350414190123846086416028035631271363746671267405252993906796981211824925732162669563909176383355702637617496264592375645525068850020377939774395869932035890298622391509585304756309311800641691021149913789911570412992945206921159297875927344323712855812508308167580841460412056424436084107146160629589794890636183217171641280509458851339306748960714127719666108219102933682058246190387928635190595229824630479612832678838542229407030754070234129640249279234061566262613412267948794804421439577815611258988824648746474149607514072595045174141829885742762529604350780624173345656643493224257615908728544822496757403149242577470070836370353693488185990445555059371837868758464480387242472254096201182377571840179094896968401475229851887993239195236041334074611756613939864507108827805619068784487537984833816794144582075545374838942878869383665564378559871654297514923937141500928366171835848035681334471286098972845306635848510265541396749270515295349415564980531152674378878838485359363714504234096292003808016527327398612083496805575841455583034651398940501591204900975552792083175628396780146262046083186595507873433639081571033121483983299343831717140137804191350872968232801443551336479105599918914228178307828619997066041432325240631673394565389418174522746580774065938094400788746008550591393026078554394417845918497669745987579206324549762627636615709804378262755100634481369678920454068267602890359236341810770940346630457658682332241638599277823878709124976236068999328274946947511103072123051016938159625530316319083647231465771546308404618448112693710755877505699138318099102803873392393130664389527729586822312361287978974908014410489888827370703136586353794715545634617507393898414834315236546919352546604566249926803767300367288292856694764559125258961981228467169648258210438550520029202381188248196751743828939615430550935014811191891062144653523792161099919778535258644877614830907853494957335957136811165419853104947055820623557738933882011974258605891871309179538483740656737600399443246348412017905701011042246368542148595008540876175804209871654832120861662355705288031648173655997278537567625328327403160965340075647193063798863580835564269230104519458521487619705135079641469157078751861563905665004150110967295343592228132557293601855709700691234985117698519062771841899800115550110365780487649889125403118128863499652879984926898693125262328971581980317543325872009618340331277437084900534034335426856707369919209774142185501459373263195443692388157309492072655918699325962050365504406081884370099819419176197078930182848481878550583245650675637954439737741916237402866231418591754012325415685618573366498608863865832580544242316187003299278283527611199014228756646861426485954945855264259276017599959844281055008082716515026165519203754084398215492627525966626206868204306610812662300653544221557539609371590791850968822294589562327052371216888279082868046069338744572771388623424880251344219194556669524676067266193863764245200233761133795267499956976761991228300914484408012827197909983853804480822614581807674694006042770256782690990443734899390738707109687155092105768562111623282200939677036030319818656283821176481229849399009801894695040742599508784743616675450840500154718492740572414476338348384967808521701070240012738622672975560052495076651642475303145942312557119383887276367223809538512733425923610566003110275194538859987751969191513999179105265061124529856123640703389746882151428966449089706425644551250160579993940462068470759702506527015314168717821466490368541671647418103451727925159378686252471483866790330288936710838670604769862668167821777563160259397508639951047211402173366224335304007208476591705130760625088999491477363074666684212926587857019538215997458675355048037752597698160297355403939633212136965957191285541822310887212055756306951379673737522889561048806482004274960486549444190088143731330999571409258264727624945136767490142495455263225398887068581585782674391872106029886823319980791218622871999064495655838661001612928752996916602704240766653547367271169229160108379470716313251904136718021860022598112335172402028966646931478853283749826541199150397515570716482688983433147287259129027143063079622254692305997481243466632881169046754138194966568110912168265189001730835845220212592008797724619143065112288012833339391114996693925086810425044697511361394439968016060302988534396209077157715517928940410655242639192596200291159243364771203127061756027853987449463524530069056029274712742798077753460127248755054659835868009893665935829637756114211559815565480036544984661205715523100083908310507914768265044876912985442447120980832957991897022430794191623790473976281981008536064777877462779663677285309029413308231226763935189783691811113188077304657804700337014048356455050069127734003491198377557774529848140443724196220959804717678553935493061129855932247563309381856410582116534963348858711770672903039109863576709624250504958481155604398277935732207971471222004067325856182399133059588653794583625466587100721587244006318693104620634885343145425560528335938622162457025653368102175522982224513301265305154707602924269158964383080012057697517898645814724413440585796908577690662663437886522234773358401835443815115025333647502196216610024724964620096410726376110202659581287697186429492773412377087657826978481967208366445074617952423100303716066309476860381272112857247299241292351075134085569380609327481583887375719433784345810674534615097630667196504449612270885500844303362124793579453820568529628779324842552948406995960345507952351358503502253170133090643891562975443996234796580030640709325908268835511190235329909995209872451135895433737485779908120402107666789499434408046825578715991887940755816961733378609514852095021724487596710919308001315817613105482397126124703528594315223652963938984966508564344811527174862950415718040472719189292455393016680103817904130761021903201076182714729577916295178662051467381502892035761679269964422011385672205133111699498977260456189990956639211080863299866924897327744521358928146854829097687074737893972236854621699752350276409642682760431777369991985608893895285839546036253511210811338096007691338707320429561303092828110356388365934706188104905555260497218540181266232607842012164530428030606508585447098228155477450097418757385735466797134358205020293143820356716245348628527760787076862706039737180244159732522817976556128582025520310531762908255816404159164587814070975862527807914049067544383786573516808558899879222656085514669313442141376676188170017026550238801082428324633822723788702629577802296799251418821438853470852318118358448016720006965941664860326289070257888734639709600199250881952999126438869753497391549987434874304608543965155246759840690368286035534958689806879394647528887776520924816891690756765148625387497699176274863007632625446300256143760378073234276136391036062739383356147626352459997287225511512296148120070803684768981083526475827622488300733626778925182538515654686128859140930447389305280537121681966904511985309128048140343471796588095747611327882230013038578853010031543085824266501174521687716254409042711948397830784157744001302248049303059190512350729001418480184299078897914224300341993794111924362814695609241779592611024362549712394764358468175645898061178319228690420933748546287661682971556453247081688041174803472180525965615046519375594980068761873544132107026514741815025338396368260342825592909103960800408189177014841536994038846417430145813475459398143802885434171623791101601558948817457066503894572922474072012452425694453719506410615205970251960659023138054670360210711303762439980272792432076509746458083392872352430041913745241518936063560949938983132941724520366033721187357774051117692272187584962340448763045578081612000858382312698737944789784049172070589618093370934928979161423464232193711039417657553127226835565508996493898130820961844973005910468424060544386150343977266943880956217283908132078324792613540057807931821672943550264212020143705675157530740358893509393190336109678296063008733132008154678938261494361348848220716973217883963181155397665245420755229924702217814417476345988147872458049728152146588712283475946787154958977319461934991790844432742565087272271583607233422531700973677832550146304584468098409052161437023733577517291112292381630767713315124414100955764729195378072087884672324016523214210757992734392730319611428430011210951442302978953960952150270888259909146676615593055373835664136445189358565413030934313881963258818953153706026038566705473016235955400207890793238419229729032719365703355374488677189164483087647367249760119345608944608591095676574334431747163309296080411085670179238159640289173862991809831206194532489119544083275408143035311130438051118468521472202778731634775035404833986168499446803678276407724640520317543139515909137011180604438772855406085714537084772370874512284422206258760141072255915077111778619463663088473120262543306590715678404740101062723825462085144600538015446290941290380852878789023711474977525620096173160115532048013709871093495131730088155209222067717294335332868270313725936968938407873191041295302302252487976572009186397713024889402794453872066734618053782988699577896765302998876717988075199096814462636185356020208293368802695722950667392272923774014959524874659902891118522223374599134729380359224523987621059512816897962379298393022530237614167925022978183655761948859806316335746471790330582124948513401271523230565403625382755608692753950310476911401416980335222582509818711779924232363899795369321341767335932571365256518257614981129314717767063831714811333906375996967128970134875570081385244375032476796409755465312325407471612159882909216897688855554512387140808340787383577285153168010096783703828269895910017988094275249153653345992011601934511138410284816410553012992616994496965848292763329119425919050212172453448710601099468289328002050485670499179920147021877963507538410888035779450656994768638619685482964931633598787901054319179926734204464240954454507978236439473822388181089641134739819980993185100910805238770329934140557479482936484967136271715073321934093443380439611588248732990778448785731099214004311089526564054601999455604417991940192507534053770496786220940805172467305718806101061781622345996980681990990685941844515843286302330838220449893418444620585778711506462086268138381103236435726866132542376464974649960197858814218623192977344766693608004586326543123195017459926787086286554082371913992236597833215015209256703338106098981414046287479745202408052944655325973248804898700347937085654466615466675506941766205484948195197187029370479853177033124638745312854043986757861589202723066066465766984081475737068909158942934084085610956593318044620759588868806155577711342305875789439890700896239283871858495399843671515570286237588843705434036829987675783766981190965088995483271036237869522296832403727203728971659081283619739026431671829172247496794328585948930115692127066545189924001358084818395665929668240768012527072741903652294929080476604544916564502187659052423955377083222210759970047174192438450356478658281992830331752035111713327591311316397354399587080173183329710106317753188972346053476034082438068314977439224702626668738373157092205254132554121038546151891405766213865778895720588792537754222510909083544216287637606056503643288701966924063139552622237159129418983487854895150757597864293649431498391585992929832280545099412963474367270336347212546252379747452712836785829336629522945592241805162298124430928963289699231655783229004426128686143977986487467162157556431368710676259915690933742415007545415918111642207745804110561204091715835750030646031513149481992224102044104951479301881498230540705689682038107084258450920583818982696964462208535351955105121649784121941416450236436619924748065641360630509974514115318749661655712092949572922970060587466740303547432236413139482518658857921123928127386705225257786437430000749672965710391760013062491625897027407711784138353899960891793038818009142232257310902438501215236498307314798748012310604802048982631587374248061883082744964267038314903450192560832761591453958097816577098025873660678312219619238585771695937927278604595858853124021160674492107039879481693693208455159954307909216239068853576007449885603907255643736274111777032815622099494944669042645532252637686412369185803317136226752415780678083922639425881193185366113537312031381253397763487644362197199596200832007506594222393830299513446513815035597120700690774341165136776437202672138191080892759206892360341029751917952779490148894900354718339847126419646761589501291754412117401693249895436244114621173499042174940411668175215181698439665449583796926913356576718096021540409162419614319009935982952528829402901003273572948378673978053596613262119738740527084466548057195855338146086944632445497370844609118055037863766014894788152426065759383393427183465572559648430004394493548208518225291143166981044170556332271089818170283203676547573183871639686955236576142264285827707207883173307655939039308757285120162072101904680346239351756503576825308834224967618673758822386314103162572488851070611923859374900971967359310789581439941953183478463311661231113599824887640479316964305429064472153772618361647597701332526074636639329020406539764867541923748224508818131604184454059824175519632280733046538843139655610177159927600310322419797494245865619774081776262531501399155585002249326215203320482891173119027603745683412028683702916182185649398398356990095761094739199994922962933830494302894659286234290808102544224423979881826307118738767517565554792806778611612380057001998195742162276518109986260876686557410087428877675214285516418463252059978689236488680686412150977670072002343122702191729222282738129557919452603652654063661720549130687416102479634969571161319960287594370807282596104977892873314295527776639936515210561919026748816179040802848841410898380901540394609329496894305886107726441277296326826798034897903865478730916111806303690567514367651867919714104873209394074551101397868720893901022752282668413824848717723967522730485829695800829924311490962634972046828137450240634327471196549378999162344864998072386823075200147491441406037156061751580133446473993995331331434922216681631465270614254505116469591028964392507691349782457254813895295713387775327210326245290187453022392842513578958912727820093967489156865040227726428082129735525744162206512507530895887686518928811474055079083937021643239568700487068919198122790108951358673206975915563142795741723497867863960830289005819029464285983572879576312125254297331056067633097143544963570129958530267763071932637383958245234515334093925862320869034097061052824954624534360547425906311133433559506061206388668792244233979740755676985099758341269383507843715267242252389837405339456569207568722025398483095810107167577412724645979548144443180080441118563288855861400739796958452044018620288464171926950401847262456932177072563996676093152084960234833949593604711250806278931277170536899110256690294558988243233657550193731749958493424396822412523636268386857281196280582143348589654754520193319116197028985386262095890296808078123580391698541602613101677303654831916884606396361423196780480726665563962160042036593129647500226969708354966263065964138750420874409681122069727329080107630547885684644623884005262909365352651952938033280921125385342950552873595513845710240663942747475995293728145175470775689410508217735329487235802961830973319655387078782672072110357097700639223268146986949712941097349278067849446630470630965830671396009503030835093833217683929552367002888625464233090116190602090017865682718539438073510084645535121288567214033733856169480217580577048563840880703721538491534566970252008908648442435071624819216389873209499205972272558691925560511556935880582066286216925671052135568619695397826831935988491758051022005146611999787012071175901880808478711900392591609765118895562704921047539491415445155825030844941127472514796956350254983454522773905909826238846792723009704057665002632485554944579325682773026369130955742565748803048864531470926199026543192861942223693034988884054412007880861421756746979897018826110506685028470651414129840250868968110794687970115600404329231422479311082515653888302623805419874933098294256689386996481980684606556654592356568715305864360767975974400347054450236962826945094187331999980756704599667770597726724983965952106352966071216608495091628593209419153859137543922153135562721922156816892914102911857948247153799190072479706790921494709167335579117012122163303724978551951629351292347932466899626758723561689358267681530312460844007141314181983076109509493392652024555350202182877424123605868846288434097690496946498114084193303496605576367625144972864312990252909596809036217595979336315143403882196215685516119677112521838520570018763053151918267237845512110923285801859585887624792638006480587791673023248689427952124134152172785593962789036971626874132032632920436724943170882908094380073949284507580908096863436936236603341023797015568410982464162958068348078729329584522116257012146651490690151718446892337289426244765959870173219041836066430787525812916775457296354864795624517751520041805415390219601014135212310772843531503075132286234870578736778945346612800597106342681450068630960876169719900631227221724329428303568971673184797855675859540419584923843369310560423298304361725894084175225479438406141075266013346254623054924029762932354739186920738204593719675046479066051813691591107574021904987707764164198002953066200270072369724529124995852337826273656547215931418151014532426935539572110695984200882013924696762308145131228332755167802984071072225790667784936419909982272040597297364945915760045507585390293982869265379306798734534803694424144927419258507369291586556109372591483667587801738180428357225473806445371318730820959400105625289510320807072823760289300230963837154545674757482109328596751217722583052797107722154361928012732252166713219942149255261127993735352464205186645903947060779082682042867674983807022035796322953043981741423309707229891611088599927124094106649527193557207859971754458803894819152012318721960209733617094443152836640226505026886329313381146182570860971610186043753357960278917819481311494851869451034767199663675114897533181799711844194708599284658012557819639030658799779829097020152588953255079850710485347050054493134912495328033778760420256332138276409698313014927685403312039004626761668455234944872886598442992982858168437166404824072654591496633583741264596358281613673418383887493167808595227265422085947304738260794526593586268139259844294305928498623174779226290744573653633644226809251407135167107841374861182670609962578710209005942805152595844853902863907149467108529908120805082772341257228046367649529641083003919064625554813851146810118310735217325836985228266916973261270528319693455781534182727114652145438976899274477339529902108598342580088204905989937722901301760017912941264739957011248810831450055307694648326942490108591236406891588369829308043441662721464014249396982206812575057916248720588738766054791016088676959246180090104681800757535793452560973916270905591012627865776557178867260925044121230263290844820740762444437410546919100265733632574199428142173479873625326533195882797796636844181988860867836305499081708321381623311429382518647570123764658821601599715623422176122203408994388639708597411537728671028190114850633491839226678375538624019983480605617172817185027054703564326000439068646747347447950832530533082047731891996712793313794299094513463648939490303726936752855788587557620399195047346744115883845320288598271785821695083771134734048149147980203699220565039253988475130601745813944549327837226993303863348961827713760729812185340625120545277893765793668559592374978123574258337973648918629843544969283140601834304128656506927884205547854637040775651729939302803373645462841046904831757335983960715222279641562395734198953876044472492021882294350448665680032770144423675594311089083525041381051738664539495356722111065446751308975254262432142998555600608610706821717728927235290587154858633230172878662532306425230572515918230896906797927406063211969726996196589699465897873759902603217779759345536779494049241973531005794391023046190347667987166751476744613116658165781747803305441791320833671113011954137126153382643363264387781594064233021735447199012939835551300348007341222907074336490023905267965769130261261930217050806894417492130921110707314330066183310147154064890727134671211693857151598587655655862876417083089886936987437830121624181569856803436486047598915831635763233358372699389269076433594683927243404900125119505848194470186330725933169672803904402007089901409376431165041266292806145499671286479284383918877544424762023840677103981861748809963453860969699856310852449036379713810629947601599520071766918652048179454471317157106549249519033449797673302173000138015160776934185216331436053794838083723529917290184782067517238605541836771182042434731379046510993758263418861155662705960441115245349920358214441688367188153026059288789495920271426275754871409719409187443138639490186852841572279580755903767958662314075081278564413001284478736816325266668355394183768360601953776015412773643923995951954766776859370953611062378890843306793349773653065354619430440564843798614991463070768895983978853760632719786699684267610115329683396527141498653586066939966344236035355131334404727872040659288088929134705626126703959326278264422700150610297968312381008917670791899726178125043519469305744314097405945660353898553185313122091547227369047795527111979384240772460210614905944308911522320061131666909691471699067935774598310811152901057666462161193712455768493242126149310433552396089603192690924634267929280999957074995073163964866845551453287810738039651733257204559602056222387818866030452757141500991203794102141304007589511688791997972308505921490669889331313369348876504534135411996533507099587149851112042944855321309683207278439310532981152547736150331581912438672938335338845098773869067489943441745741737419590148440516119721292077518792389348361943351275641718548844550007620105854894498982698598995578861901934453041427646630509352047726112191468837982976901094293033020080910624690417370948131664822964885062419034099662957511387538599440346802892968592179707747029849056816891000504414029051615489479542668600743989474537319531792633627404013763140058908644853722826795138351825945869193847098271417445472864688825741425443799055024820605589884592542750769043554730128910418263643985498904363065080975607232592793880382153594761390461687306493163940556861372814965251091095556550036734321577321035234783962459199290659985334746167802717770412463511074477141459798098956126824056721455209773478737062051349923200411830615670691436197978996097402395563200964102233585955835938200224253824040016034059658628304638484694491080656297757267915437065362613815084972411281961028895873905934354479760284095288762872800057465670819586516706498608583516010811235850474524535752755479009249034998596102060205184384522056812495004756440190928491546639700121728172886022907982054827002767614403059058045723912202224825842618293736026600120696979895762868150749436815971930092065525252680773288124368728968755072451804111223375931137770888796311423075253776794729042971961769241587318216425605512856327681303258363550756672732757221070430029166065156131624048187900332070366344810815250201393508707130152872951902887469172584799621597291293520996154097928900614804446377443327538645204421689382401082101829604649976361762462419773153158986547753547286940591006492946030744966778453185334875859110746187297273980090379245415875597338853394429567569626017622389227863683455287729705750171847532495722767730186308789107485740376441888615805958263695565444375943461914210626737371639519017092802443112360635100496451973829321752602293774073094610421630796746167711883142201108588292406467656516032684259621102951702783774202064553072575696600249882789088886298655701762470426638754006606554291970838680591228281767239565627653407123749150906567272737646504774282998248812221740291681357310481161499324466984195616568467572399414252923005646091014747819773930798014025898322172691405206892718018354389365885916375558662407706855008631122501051040521872950668348702008315177989645102014301508977786977736588411421621466373376138889092117395237290809786915934945288960780428511961748592464002862629473204088138622171011385780224085906090714876325847557706726492935154897195057757457988626593162042445907446058356402605699004189994202152514526564024752110347160692464168632927362324038345873655724823083550875949340820226798838058370359407518026567412066454682577884544160013344167615789308035996392306113259207333822261434841111988515161076020688359085312778598010744082983323745998839320798625253016267809212310999342716612184731054286058341823372256320262065691927961183747503772883385502020874495034394428843600992592453933520509975718331631975802824158655367999429303610146856104300758854666627761526783672301633129081185092574058921249477068712464880070424527906924587568369122247948271254260453712560531330647351748465376060832204945744161082323147328499272069117674635359223685702466226042275994740626770522872852736629682962399386777284707974449122051273205193766265490862350385536657626919211647906739918022573843569923252787213146392859681449004700075905250505586404202262882869320041089336155058185090814830678138357365107042480623867522012899162654778446059129915565495138963181281103854965177558243540863203644613708222338184660504336603986004517633112502751981739852957428252708907258494044107579882956326840901208046084684181648912147179871471811426372727621580090025228680296131490904435398137412891231967990987318426233954242395568967378704456483690566375500270118070278034363607308578841503984065093183562020403707029978421281582205542778944087028722247440750420544499307825799666117611544664142320374660328804420472665806771557673286173025428647194469361187179968301198454524825573153284785029433961592035688908205736830947526847455759961985488992618536508865960407754576960283675242062944984895055819642094724588923937921877126653638579310700788933521309159253806339921321486426428529669546030205764071830068817691932444523164722413245440670490022326523847220712628636366918755323333021512584669965758652679978485130691999026994996996268595207716410679151734625762208443179340755970327520996393205042334549199627644369655506512162436835256036112411387283516195810026472612726812977099026899635966683624191118457174928936437628649198540943680962666058543675414999838044639376312204945527817187685150585077261620895518643194499678315824712156571112745074461231894219684257791016516820014404763602810722402374462222222755467194868798676198944787891155927282509181647157836056588216018749898183138590543101077019606496834174282065032642764494725806658695141633146977831535785705459462306705575750802259965511292092795979717249404240921804072276709248228010687129837564999897436523515419438306702239495896785142399006513953250623878662193319533232521061012510516819634638311775452688509861924934300719952315989181612320174865714582382070265640438565039440380736897223174442029474200089115737476620438652921914191349620516416797489463995201399162943582391919843912090535803620288658964286299787348809650635353632373773020907672187103101204124631448810223454952830670146863571929397766735428084489522633857888472123994222069682240802463462667200774410224629998935789477240062023198894965948035801152524729625343302768587721718957814883946997553106244626117208668160590756373430829689683879165221143375974119248453244293792087914725768124686310553009897945446160540666871397305571131856290891793990969411724097774260284193349196122372376906135698277658083500176298117034568720788434906603547729630809582083157227871622423844645468254490231363689519332395125194079622429161084736216267232413433374802404980633349505236673326538533957873365912237470991455519435316500747945371343964263982120390377138093827083078868415939815144582532213408908722780017584524457242103758582814300575210489293309792055818585923623259665867681437652831947058947463472794192950151301349556549903314928143274341019120912151941952074999116205903994055700705595669631785950761687689922327093439257779263568234912020128769304638908362947023028966644305967807315411649688381429442401782306287914348867273560850579345151789600463888759090788776447741312870495108194351918874509881762507771204644402819913660545710225046344906880684130022457853619765880004701447864649393214947966057531675706789473715279759466474515919883212188629662134221936371168418823298563684501865772835262096290135815297003015404517006650511698885261005384348487271710334032967234076825897456663182140299409031218374030082033707172030711414659302073435277239174981239410683198091130583057441084701409789956726595590664373610026216546694696083086824892752285610789547406055971922803623564275126312572833700266542596588607970849073106528367557429516323857911215663992887701183514575309113488680236479354224913094060729350230997788038578798331646864361663969970349588169911242087782291738154117143812557077565356673995185071487173439050751320427823412504910075577064408129373326132693246355245313494813466561744221065681214682157382976434497703936143129644728620361661452848250368819337708347304904599114792490837410175432007355625759983165310195800986765197285426192836809687135468429643858375456187582130008149857801170784689795699502106728923023423312643728685818114319535207114915190647105443476937650034731947067448832743939019614896751807883109370618996082668867133368535616816071536569553098790695527101115418252507414283741029375027496816046446880882955049272897919640001656535362746487014990009509945019224942697907447616151437443970769551461134750119190513340422386081422363199975863670518752900070567045402589265066981195370040395571529171218796251040486930453553749231825840373549182357817759628192956082041963239100535217905667766471162974928206072044584589081803368639081017136115447199392880636446565729055253498123927159860018109690942719176172673241358711206075424709042633446597241812544251991045761584114213804075007427779797953846849135756567771532854328477484048123798642423928075928132769848445794261241872306240828913424699111509550151569851923058129520418169084576056309943327340859375148932858313221156085525001294954882151039967176950471951096923197847482958833600612494698603979614461696912820464961514115728107670208522006757199514358512808807986509453347193747212560066000962799299998441312995412914305542801062769245625194787113214861398791573946925179327245638713871810639189572779624575634808286784095318745775124279530439026175122864659950893298836578824370869550681016994896285875058877203755925786252625347402102852952265231296948620826629583015252405149550329656465835779645276212829734100858828311226397442165099527516822856253570697966747916937423244560479142437105607826063902824614245316168706952673294799403620583048169015711180790627575882256279719470822044973490268673241793821978223392566224748092012028757432651297828161291805076369129392382785949050001853854953595554125619103009397889640155500335197221243878378732689209002211924194045345269709909467962664176500862338668175528312820573827957375443962333034325203939798354155049252669440301704871436303255131673891863109479767746165979060036613161785566925581736361685928808347921023241437963378329887719907453635172806916507679626536667069024025798731170796405493778503034433622708457660432181021590290537763296311688165004486552339215463009302865910775195589831643886439989800150737903528237949875676113682057858820239179384061855179509278635682416812275360490658669171614843539303637127648611488162658999862480530415555026598943005152797577066367743597757886870809243974456851873571483838998332920162095976322284504605151557014748952950157421457459283032206164112979474727969705475844879835111987286893392780443791634091394621543099101270740409097712629766931086114997811048674215556163502091497014760070553593603594098577409116510793472198710843318537864127789692138119894661699128826478519081287205420470960317446025232150505379662790945630995598198125089559204540580448390290974165096206874357082401038826794769776791307869655022783400056828322692135964954640225174169091835237039129176352806498402213435555787943390326392668701303067036445123698964080147732489730774727902204540048905292259293801302406924367650980290482524619013175838405296008146826023794839066513742358035255643412537087495140507138108023500657426640440093045420163238008340904389720919359388994443768091324935431524023327932762297895274455645946674396522002285821623653857336254384698821597542821028837461366261927476374085930259240000553823127057528367195208990280204310312425477694680353608680663624004189226786772216035196249438010110416827894313889273145734466763428730090768757234604627765109682635190413883169208152035004564924262317092586418777678049895544210344397294882848835581023319392383685290623840935420513544299094912189669025431466400891981379396359043483811319201393386230986256594255602343063227863030156386330565911443238300949400836591806996265022160949813286932622693045888293848136660766837714622808180330935951920072972602744775149956030316121295468132921082180656986484037992872745056668864368460096689646466973510970301461308491337126069849924549749475811598637320808906282575064447140212855663179958035111931799035627890064690599511422247893861362311356124698822700981382164919625791662142061175930701916683038571487834025049506218608460040480041479183538483875861083280944001843198910674836071017273727227510943131322019993969188989939909647839383818161951927487449564392903728184720951805159106252820387723676801584094618738164515400289314054305498915091020791141065004795467839899306275776846933474004429912058292128905658202275630888746566701183130805839574122540414602258879703840233446416872073935664181083679725508809353465169041646085097122733653088425572090750872807428465481624837725146446701238466232504380780553503224133358852793927907786029059494527258616101635260521819400905723417523372288657021911494018812681966980118383787266830889423080642984811899048720931303242381272096329959546933743724837843159327769710530443005587351877279044665498920786630209755885012317304054903718379361142287801116901503993581076252895664464241067705721886965050987597201926053208477853338434604955686250300930928800196533429756667659623400295368493768378697387530792785085462162438756124612643469615504757114041623637945579821974849132459669437598837181292562144709496817567943665723933404435637719214802737388880770544392088228681691283215141316642321485254499479512377363115516813050983026917995788574153653527993112169300986555281244530826522525771703893560384535800638508215959498504672420800705095103345740973663434757699874136760589144093380607107620805994110103333881096897727570823339980344089250743658766587764745883508871408418441102954259921820104051317382317061413036274324464491616389100067303434554384308262408672530360444177943611358541042719626091230910664954182294309254809422756088490381013372723794251239792722080368223393644549665538854818197021599920949471929211418059048919566551332838946587901233669097593573151569194376549640741948766397988510725800645733365179792823089443331146006852854294407959472911350702369942614778810480952284901072716780685398109616881704649336612369480592871384991421027556080397719593920498155460905897830842404720088917652558985655065770522538550668767775332842469470236962494362704019683040298543283757556981687473557555895173185393780539736985612096011398997740546188035690087122282433753028199561066163840583258217922090158841121410447534064024128558585889107345390877413954727546118960448138700774950209283387378271780638671060898768101459620284631036549452625865657878728159452069898847423392871873954158568324065547502430911238631088540320648345660147781250033252945653505982494324993974962920455163205238007130473411021659366119555165158688354991322241953600877182620618079565176768268948727537704360408434734007537963868904948130214540447950075030198110731268135951297758306600599016355762527600227597521792692167308437933831879274076383979542263659087620169830616473167816669365468267761559301376234369528878501109192084491668500430702926483438222577193968500759716005567234476365293389077040841322443446881291772128171918250025672763144876148468552244664189545982914766373442319528303130524550083006391305647449394841399810798198829523931976989973907768553241377073799893524755011973618806133556135286917172470229618244346451112288608432021441374665372852030665080712456556054306956248852899224324832868751525866491991132177114469385634726608940181891251703501444413732257967723715783539649660561430613501039706585265955031873689529533589513553064883541504622831696345542009332572425110088637259013546242161919052693880654106731073801183671073774680013742506075089928257559249022530901956478148574083065589647030224500040407351692064622491277667776157660814406279662471168145379919659261438130359995202950748098128538555216894167871631849715293740221064728425625823236071998564992899093010491030347084039624178537730992173080096041185081167785024318037394963057956230218637908622910993037695631649952951507033830414456694505106114642677266725623548101403426398788406842686907711700220405356587948144465644969747925316141228365695919324395651389046235896268348413730311040367246486285645747982512821031470431575084586500102742230118972998586057162971134108617490959119933311362933761628326217885076575093610273188306850135261700996677799087241879726775089031563677220560864334493102668988697925791857125473123623900308402536984120292365359361936956742741985482803960006172057993952700954554118770825375064011792176397206640653193078487701632724544965373121157437766048594197660737800660543626327289840681744514362442227637161449199591406165118998976062914177276236885837181472273807199866017184516412216178799451892371912731535363471626153417102464650267390259264384512613144574072722468228042289736787533366405657775760028695309620301518363308492657503274888135791826139590066199821487644186455888230811216171541156252932895948190708126799445265707073391955171531906792857229980169697188696340658275914681490760659500611762508285780995602717095494638993315748998825577533454701916825343044770797009861966763186768467337915824829388344559558025073517427769730477146542189353329753453148726974067278040802891416622078953657361934615336875241037182078827997187664147806431129484912315654674580080623737584705169872276211626954899023461092440971217299950613325043379044838393931350872748435761297827483834818613383250656090527773394351396445434446688022808425723134168199369359303030714580422135150672315267692256727505728200706448793302480901053682362498097067954171947954046069101052005036000746096625735198024478474169109102598119412479243638642994911266601522090933602702484520916658506527746251776624222663399659762099315616947851517142355624996302462222802296143988498157088863391647117913524123921095788975897175951463910803165137501530553282530099150068434383158919042151759760580124324538073281759109502539159585781283454175227133667863958801745505418172552055023381025163345139409675101658017187710450397164375296553614736310067162703501360419645031698211991790023720012497336510900114285085001015687194647832366056863993231780903523147794016056035879049770996571707407923269402487135408918635926624503240708831474856319944704607461859003896727399993080927372322637524369997494510771741059777707988098251061811698612646862229185323848084715752749920596366676925358969491209727236583836474995283041997465984892672219453746620638123446259806141709641027426072482039108291779944810953998291857624813158089571306942365451588571585630704143668765213292763047860203812715665298705944522845415568307240732834811453480153027499526760571746811304367709625652287666128549942598369104997215210050466117939591043344230561079822273201871151320799997946703179490645452498513033916664091218346976971509108930714081056293382030953602156642567892807223815237503224344040907215654344051340453924802855617411844785882609516170247001470673626910420856861043760709946182622080298415093583234365504972649722483631946339068262570381191417210278689602827265929090885362274263779484764536339314738497390847160925121900349207391547508168782428580232820792954146951243380952675801912701056885278317052353542273633759379314069023627787034476753968524071121881866564849261703461710367137681953766125204701512232277486701496645135259700222568497472291002107922008991229371997449531104467826820376133461836474496904649856330626340948870818268346066430498844385023052271937672319139921598082039711284663718158772111393732015516455933742624641368511335691355832602237186699950930193000132159142965974867418025252209857180314131008360030825756773864107760963717606005678890863897319154594117537827007506823674162157049409617920339883505232343812653765627121133358686995785831334752348585105214738476847845675070172785988841842110226583039413420079820981463458691479662997693209186232810475004008735707055676317506738323036663055216973174794578566365248033843033185447407758266676087813021846629019579695993537161874707801591332711874467248722946405764914542283668159797982400433644622470352017833593238456827213597155966100425419773414034548711486510551160218787954680746875165717425212478255412636138434535787702247024158215278047067093805689564202916871900874339933779439020167166172147790201847363812655788919627649091034123337491924047958428743948515130474341875897753793132706172238925382611308936603815900061290736296799815110351347697781579351714280783803939349983429948943875686975113362215829472299705189937685832395062215683157051549739556608615346338076441201498905440136247116713089217956129209774712858871274614333493108480550324003585491731791231749630086604157289948215956490489006674792084266813390975894174246502544250968666273142561844674998570288459458026819999238219387470027599146601923935871021483979241887794785597153503659295563674238529795598619575044983500149175914722612857695163078581729657619830888977343025057329970942310103514373226164010283552525561133561925536948075755491797409613778260335673437769202022452815697188560297259236332644312304775590671116583863755029955441783264429358380035306366118270506978382561097464334087271185288861391899435323793373730696269068974358714083179655863311938753114259663945234614290447914287068725012420213900672657488600685114386676521798181533461612036809987476001112780471474995550282306693528009941997429021551476430291134616114044421681942692227131844368994102977246086575136757181486811178629289009807652455478792109811558003280960011003335517476081487695088012265289206593208082198221856209666110747785055721720386575180468554754872365550491139077256345677222360236204615054492412240692901723312485200157600628951426851853727392305172903709188557024913557798859419808244196163189224277802896264086625589639285968848820119405897942020159621182714249964937498084279219734028981026080626958441907360762663953653366963032870258882309002222744280257035852078170093453054448920833713767098819850078593202117130410031356987934948471266822237443712923597478766617941033101167120142444231487334278828786955012302330592056549389366167714430883269008867150827833937692638691925525272305224710027535985801048932107080751447764984615838227552722369082074405904863541238034987826745954012300059531939152802784138371391810039436727176221736893069727175684114006539571480883497328989282880722798786500887823381337530021792175944377332511947079183149342946724436836357246148927977622010704755293836965884410172099278713039515624977363905688079592826507541480768691140221249570559162930690568249772453224599717389387131013264609617518554507715011290924793811500243248495192093814799152164623503601194886966918516559671279901805644417789330976738687829726418923564906853978233385925425057573760880637607558938249525043487444710685636321080224451275973883635571104001794468993476097648699518780769490411468744114652321205639111298515643553704704890297357787445925003427240181276452398934167506012689083169152085964978946403198177055142470764091272501159891436810452352935685170939170379948538870818277255277540154323063886594920791783189649591290360586653735710815638598069194140686334358568293334916898040699771255194429403647470041957783715051043888256417710675442199970001258455001677906603213571802495701134119094331622036237249091880281855855788474246325762811483126343106470634176983889736406740218028581250825877391982961859397257186377016524404692502587102319111961836676061410822949300848192889094694240728001625769873591093178186127130594931095687378496590289885399886797043188244790591986829654440225792369424534883675948912149945629319942263031482837746794054250498505547795068900361449143146574576837964012893914276221522683519975778758112617968215606807002504761255516587748314963891885214706349844232074980766878761541320365253136708635912187351264009351935804722849721870902856023964453376611639867704405121875995445841810593471108844596778099030940721351740183272649006519508166983876588655912371443629821911349150246148575971963212422540468096514030678100804237789496038613351285605765061875005181668207631488258430396042442991263752110715140077879628676289974193245804962142677236964974747620203104181069550546904186620458061805084206975893078934052725077750382186664060219247993369426376978175309121186578450872799542171981370069406010576190403420466776138886901264521609665559539972902691477569321113802037664395878104978847924968436051586151220076334882274173430376552539597749607151440196075524331023750080202224112798499227447043785502581319517881069896190245897162570129288976302411761589890816795049765113408846007757432399889388747393747230437368624743857148351465259915195834362341196955354717850253862982103430767200999199449273795816890895477779381475625521682331663124408965644435889158862316994426222372992624755661435658630721293798283777493073223398397702260681785732768824091856127443654644283261345484358492019378542340137861478523045197713724516939499120361275164835705310311771019717355885961270138709962034769208403341064537289765199527955500035785655806817201470111128077811212848465612215561839424710906617415598403779669019253713104921325600979431198906149872215607829161332633886892021296861289426568079124479671241862835417649874858408860697232057542036816025951254839768322970598027474751816616188207479681160188278168936051513696393050751024306722790249907896491730503465825023872284943637391969488075124287514246358510350014896168261084525299136553626882441632499275333181398292233148817243449129089948118843059898606114293825218827677173885545541090678515422551688171534817420449051593630357901762601751524900082582503651155756255001901800897936032417355030732751462264848491854958219753973140301623220458730709886971439984372158950071494188990826305658118843721378887250887675169430290666427716560029837228063312033203364314105510615876207536394361690992405205636342779773563589841950856892070026462386809951558286979076451090481044445108126424487643555075383843070702017926197267983059822658438783201889509457880296704936312685829308572240554265462976760302487642610311470397695124515599108763218091592130978747066030086577537283502277263494341480959557777279162232026603100668844056133075090131138065892612879692730364127918236057755445341675635812012328358889536595691663626038338660073842641533460084310760091501918591307289890063296645406619607989610895803456935075455342799010204992755593194512765347346888247791503125760384854916169633396041405582152681095832483684977974734285980792928457702346952349915269098899736078549448178835978967525927176141616120279375693104975564915681225932689241744299596406206664938060757737776919177403047800207328664387719943823310248418328156689987539959509525644503398225020887916941338382691981641888189215064321326209538532594439608333366161176769831874950197907924997041989519487868802556736416459618767685397645882185206307458570622674347360867974074741192444103361492388544854108384390418461169778933236192074294413411445304424948067294452912467694556940513687151923471312824784022565185764237228399725528992303834194959728278699938463940045722866116743810079393662375078866778011896641284078035446620470623534845639319239956631149573408219970269325352784502077797462900875515778449008493110665580407674255524505655010905053052240922171277096875614934215406663956865637277710947270096295383581000986290094985870122915899782889229123124478560986518844192593240426864051406999998185368692200202883974276394016547453275027689412240273032730940676276184566302423041587005986293443769472781351263867713802981482751989841457154635295130774048008033720931262853795167289146606452026489017624360108849478715196909614845670337901285724637291870275560878934019251510788202122517746703535483080722189829949252126268723290601018447895806450182292359245474436865811302257545362049292358307782358776698885264666229166061430434557151904474356525716628581379270535884936060271416477788967203298796446196944875012540696645990298602873068371292207945764847112952683904391714463221893877189265016918482473684124966884982625309773210824665708387043442260652570656410917071750263046642981067885827749038379068211680505983548980031933337690341114813764193580196015642613836507967051418697293094495236663146238879383062713003147145910865551895123382281228404765803904442441565928336855701627998156716406249717279830897364935229794496079787152048131508243189077821909165947646503283294574695230122079564938510681914049720709092776136591146971893237605805822919004831015080385603443251807046948772982744223833713743483696301792170430595479229344280203368646153525017730822094605094813187850848815795913706775153515701775822785081156213800373226854037834775122861488871576102560483398123684798564349256600693038427652823791755723624596372578627197346581135535257631108371435713305253936465344570147455154284755509058313742313264638302720624597515281785287319440216983022371206762690046192302530317634616029551916756583011008875823477874212707682243881213148448448242164543806579629887073895723795447236352727213257395131217926700608219167906661886012284693389607751025722547146662257990307768691810956797017604076585528069411697964799449101555458109193773194917088588474953607492577287154176760380933790330454959366406632493247264901603976597288461773528495616037567839706773419169096953209890090318173976919608868283324466538754712178719033655635747964719486803146389537831191908810598111485428164540153957508680407530574028194974065414775739754283313732816685333417036965609757746908561331711320054746540120417749352912291887131442946629934135676231446096609930246895327988745780076612575714073989119627371114853387548597409322930308619261885901847787241007951945839574186841425532299669739627945997274330797041509075891169368137689333619641451116521926869556040272226716587510156506926407327025353865556362908052104552429854352727124362758282152363566585750342439455104613021965578820644953961951976169003287520525522294759011102368902864726700910925433473342020390388246801713843705984921587112086520971280129965619631800896360185647672722715283050229179363978375712192431471407927140261308464396616940510381456929043176111398450441498047634449454386798464290940128529731955748714722265755915524307663535043751041398608108366922041219173301767669239767208251673868785189288095133061320860671057002727745733256791136295714964853237886655519186458070816339494063637672035977650986451113131860113139970691001354647551902571251554172638295977747966357096028634160971026018062059535271279048991335028947917201912760739636665389792479989088268644499131721238289321499777332191564510633994474053818243933179202314600581058908322743815226564608278519574242215864608991196584765321561617163318210094261051187181391656448827455552603123122272162279487832870576985612427744172061699915032589707181980181140811609457228389042584343613146245841071593687293038668234428154577986100663107375747603509125557362802477022781889038542925247910988184469954928384386049219698771515218473225692039297923491953573684770801093941028309474960611658360806100113545592720793751120858231543948758986334308634695422948465556590667769527054547823236231168734979235254387755047864007027061452103814009456597794531834427857870358102921757878384264263889322202751796124766038114146951329904709432928441177147728695457995723876434780690727571013636120097852920396544163111611938772338386777372762069543824515855787126481239065278255834857529912540781314900253201859108593719182162639305118361506824444138282633823378750370952436750569402769161037667309106105296464602343636562227766090061288375133074823852713467401008108121488552406063165352247661880452915331242030566788301651048620466122987782600391392642370329971231048688984369547634673721071416959571873147180492204157388258671906627167301105216835765494906448866317917653160909173747253610522415822198308257574695398593931166769320206896586627042752629803000318703644736282825973442542949527757387890093748509070613019838332680792172833668428573705832860948709788555224616623101078599376905093512501308172783228617000040982248675884561615760084264873663394770360523029106974727287588874793676973040725293718419329555400160800746731764253529827659623781651775764570024492369820990513990327910372862677068894723240820553762284829325333500533074123394363242462361865470855786082619900566936898788806733252715583966255126209225010586885792879165184820632400786006109124261682825113542626341508301369653909914118513595297139363594219811692968339595869112899785369721411682149819033401618218922742010363109830054197162217264345995409291989921007309282136584866742187908679121404934706475797691399498539304990728468227037090585297469694541292990753946776073119260523514691006274243542861309028543399912680978072322465645654163526544199642001356299281562214284857339183692989616679931629085895047041074861767835717892641025300327214071641992016200714982132328369075846352439543641212004101159313464540490678726969476059177322844826604720898816231375616794697479566892989112354932865456759127480176026717421340425028435985554855982220431698453989520881067066420373535037551671287822923063620238324556586453988663076423564816333316330895754852798335551736258778589505526755934564387479558158451494234075369132168193155771524180283462885066902471989913778863922702673512187356516867944322259212020617066632006485646310518278622623591156426431287054860964806927787453051949182380722678496700716660687834814460374200096143578698712011910675736007461663469050422965578491239581349040174168041048182602047876502298308023052564360365857920950898369570826103497377831069161225577273037233202238718827609480346082439364880831838071135194011344075337318904926747015352682733153809245307635641618642252662881647947368906479870840924780487111015972395799224744607152036091977102094104969883868761872527112190253194563215818617799129371011294586953746159237586253723706129680581832493069474338373710369838953946599338009846827362568974551452691674481092852525787529585111495904745856404921439766653372327428274943663339249151192716148981893911329534454054675958129293727815042909671193155057811816003784208073627709684258860441942286126357250907208837265017763965642093600073092366210348832840649508787295277543089425907406637942617661687520188383855690214350671281889527623196311920388405328518084866760688101298944837732607186610315103092938527090908928816161935470113537607638077913922329724377360641959097349321035003280552482446720036381940210587662574051269625392249699206109763038416717798885082688984322538201900090134921197627049655189707877376430080621953919942805436450586506129286058558190253949361403072636967249639824717176901736905745879799575414549754609253998179700180745415039534158173536588693546967039956091197101694525265117993983503986779832426810318980128912258118783170931624613777512700550714161183190764362143247785051237950531414587399730653511653247509146770189585181712261502385570254857316085090091212705788858890496263282857717250312328326652010131005340359461891924286180698054499786475234606452804389177575465201912257719204633638332906635300016740475044438467950396399020483531391331159498616567893552330263667894367332302485049893102049578253155413718910074835610372218020804164366360344304979493216184506514781735868345755232843531878751062063118610036294931730547171463563844744430220766581502319288171119762928564134777000102401022432593054904354240072416985319549176413527825738712153945008793438281281727138558859424213069707153156853453148458431157369494122804432130954532600453912598765034444728763134253908375341715093064188509182763919504283277384238512099994343662402717158959191233139503053682023013884592726895938360359359428178218705660133413132918458570941602817960903000055953717999375260369573312088279678679599489935534439389829045132837106754751702615749013465971951153307220510006914930960707922612425827992290376915133431065225239205091326340902788500123744507961821700771800374906092992622663782901473462963932772612835737468004981190923605757591803652504250446679558275033555191499158318233426928322085644295600034091046795759896255850838415507678128358473368915680492651081101002278653598043862818521141778414104631329951612606549706665467862210570212478713392268601262604761069583588366015261338406487890406679398393892313456655566525253644629973004401965793300983689099089298992830329089252638516631708778515399784813898147504282550463279412511563939369139598175777075875695546207037491732473422706164601953614827214484220945678016219064948164852708184211684279022297603602319644440972265173485662028833884948649882212351708612885680278940731146934710894232057773129604702857190961534861050317797016736378509523245502295296632484256570101864585923407471164910398681240157065249476582438489470905421181305944821598566304319762059706019191991144123464836783150440065682988512472798593404289038625960297438942643497832152258622733967547665843527610119184851236601836958524609546546583355906339193831707909004136426020800462653947669782835795521436839762060410433542576995095345108188062743109648338725500766372174646408872846687144129132387492152812095824598789388380992693418491145672645098370921634475640412286145270254115633942625138636764096622588748561542273256664643662246502070367831730630996631145482459773205318273666806478397173724233881102490125832322653508209967876519378181436906632000739433195513902965986799650391182708393261151414124433257866999899175458141560192592544920155987722542965046134452804487619514958396948424442569912617034626864323154972907364396418010132257942522071705790160816563825448875950753715175845027076997349064080200508531468817854821081060659734533722451470941815697233742503311633448474283255750412107620622998741093587230125944109998155700095747178122564659889499119350756242287599477986992593317246668461187746682300732883431007271679366034139937558681914802865690424290902585469753509397238782193333754759611851972109806696814886332329658381717696442291733144368523119066527640080706426173101422695748304554150503291179425147830931677517415399102676664654752495773579801818084179305361841846564617765488150902199235514435268643722290302162393707536269629816551633332874827324905884711556653963078486909006530108215454173904432265307673913702936389958040101968279104359225176742487666200320455857646660920354980457115055515052210188051413401932576869015888169456149670322234933749335371360403782493235964314162744350551416335798059806785488141845472485363998589415636152307386517647053263643587662196374507928845157848203872710423348197973128748696942122662234260368562860124624278663268221298755062893093414827528396966769940542787278253865292580139648241911448561347280329081965038335652995961180915254404184471160933248297266399567823985215397008519911995590417999260915917361917163787547441685202543542304623650149594904203251568699318350216604131666316665144482787429374174416782539437084104639419333163703831214295171623614160719052924699817239838816793452994392543401557200444970074441697378696660673330998083196003598446595701445080542181199701274623243736559182040443204092848726344634770743905201353209233736280589504260633475790780414265240011976548391234156177177398525950903068121307927509848382542481689687387948341683008070549607116348145219235531573371778619864072068623600399563489184207850476476723071352341271027012102109918049239468472817357278791216167346093001000294509650371599303949460351709266310573561869077245323676647143768999549999818081903592526146229164909881217405519506294475887193522327865592240322210109049846603168523416779047638693914560492455033220547078177503577602058598480964419147838572860000552877186200381006105387196703572998842409164546988671534938575999368244769474260709204162406040844335505321139594040624912245617122773968314611098440357161692750707932972227218240846450235555021182875594316173931862908385083562304361420588120021194898434031232481945601802238955411238541431144079166067442622315751694478023951691049870907713943891683824997282434423936694273512524908139866744932986212527366209504775902698325219651017587707487912676240640890097318909335123916797567705532617976668182623975946060299906398603678403718327850687073939789812554670743261014788966657183508001682141120617041964072065283821680966674828265872616925526898065233125279459353375542682556868087152948996874144241314704659389155657944734751718929741819260302609379265706239801380108535777626179919638976624256233263697430872959626117398529327958092185042954514683166884973646287291697322752169366996675296500676943287039347841196105378713170091321859769398304650806676179499095200542719174798883904236996047694210610660116576060500306862920582274347236060956796989400801634004393429993545718002399806191733972107049971554648769129162273182959624933832915199075650809427553121730032104143526928666832565106097757347596090917765471090619682205379205552055660351378144695955811530230011826321542755289424069957889109560624547738350099935166751530916962368715576103898768728419730683679735811809006066705421773965310489482781964378056621911434920806089498574787743988094898336521221331388349947937339740520552570191434014468613322494624064004982042377223225404922971575345922730351994313900396750023871740771825527156270690719750514341060625251159253229193153879503478950452846165982005431482472288244799624769829557214505309452892186290110114132356702366443882314735290516030065586396413426265638936506396829404090533149028303942621380931483536775795841243409300485222209222349921283995075627687550836149141486001539477928548085835878352411342709117908388200858283561897284130074605783138228440532742312706082350657699741574896869715623992989930380090392286273164662393516917525900238216890033384628912848847605072132004910131838046146095250151443805558488426672463507487908705294812435828873661897015297321817321133012899297429915757884063657847029458335093524009508797191311420846833351563456048570905447197425873973173113006372453355516278165429929946192456080181187448078225740456168684788747618912784517505898917851247408396438971923596428208676416344727077504775645573120052523002047014160407462679803788554203765062902835868839382837565109719979032818812582513632062770423207926429005616689850333588761930431791600780957118690291740128008826384920246295536402854207808176166090028058571616350879022863995495299105272638250229608378989410847721542995992081421585425825344761136660946049597872787942571566031749113803338888737721385008889036195105411894349992601956489989159521043941046057322749144827993187259990970925074454175882059493423258989226388410636639601955755939480181949915625889060297515123712629463584959823237168098318336530336200267346283803757733215726192570100227079476907304913881057467761411474779056348398242965940748646010835340052620833355794836226196719221096824541179301623379952056881964117999615122127070347896142897894698405368405384346340093768944246944493038606247297722837524818892327670684633260622872061603739614936516377664909959929364646368884958058203143881528816327966290145186865845429909205361096348202724171317918595663537960619843079091538487737113538950950707809582192937883540859662089904074189872899669917560427540897369831289239363058671718341286155191952324040026077102138255708208399092154030587816565066152523001161162369430922505708405682571092233741001123495254875753020183773572616221974938241041275767109276880608987989778169398011490688069506657804775174191132343005487905416151806936789356220405396691438739435954348287152158642302625309604292523080571058353153418724687035067532209466682282980010195225716782831817889493708647999491641811928930299390982670475220995401908678188028262850225728459882531149709152268310585860965186279179743543593798963517878844860803848937913765493279507561629036919562041603326050001778947933637556166871424905604642859911273473140196997637933182908888150863707421614375256395965867748740294032571580945872778621299161958251168997401555031373509856280373193819169929162262258934063123031610013658440567925346091940086424523636417933576362630887296158171853726726461182322734904319396885406183120422038886042997322914757958000220001278748550798420970221606717502994122022778974879030850067182067575122189027965243375584431806865330422808169006327556812051464663245317932348844073984850692399540518523591242057075823814488167322245762413212851776193235225498963071980659237936656168021431566901556838539469141436869945079654265294440771920344589141172976282301728745772784952641872551561271816260141399858757965346065293957201566940300738914553254231136486754823852856504092701012071851461900507548316781029109164212930144582887047297385625676196359158511167630242912503194780691830467629806687071725143815769555811236072893978675736679972167298878815461834897107825333797539134265174723957603480730430163758004088269715171156528554818970031035957350562896193352206754830279823054591476504960978670710201740438404169418344481515890054227205344998787356224528741263702754009580418402786561163036485927965336254336738076332011323169595985166987863941655249240280911191001472338138483381538069891978544054077463831394388245628986247261302632826970357522798031602332135670997794583223385907818595370929367085112177687695027534564153069171605849305003767818586849965671780093608894986817807261233368981245550575441858917426697925756873621148315067466670454278149098632410834278096083974094603024257989909615895917069134503710519097839995050463767456453774482908801384291778944245810941181572806765797974884269394272172815560410698940587926177671272792217888063497799811059588910807863575249482833430391769448114280840435648299876028243325676579912668840064005327791473735186165780874282806676730696640341166946301390031308088070197302269949009456581516904325027059416182619756640928090209772994563879831948892789274388450509014414706101976296674145321951855101343969526347992510165483809267395986579976179623997903510950667637027421343030273436009485485782793446070184083471566294190691470840812342700328958792971512236424402563383602098901095212979939164353349686988552334380505358093080789730102561959986427048673045363717020655534149812112769503696465095790969326489442489986695280543676706426151521898652426282195353070927489949883285260612904609674143344141541151118797475482524203732358634750488359968350064544453167396420193191429625923624318026975879844243945014721301032931592994128881205166850031846360870275848844546802684904838005677064599382222180381159224784635752657687150320059856547071909349155790981925794760464002909412255526605817132166862981549861361608982558145914346097726149098583505881376828131119819964484779746921251527843180869494552806803123761282134803121924151128651228053514184936859186255186059079005419957307509971393014537943526288064851469166436675049773949685055862008726300232491064230112017037553010944052506977488739572088653735832243993979972523086533694846950262691355488219510208592297370741251716461365551638524540190340755983976258667500540789034720956605938939521828975354369802237866648032945260064804956799379609055436504218295135348297561228270459738043190638876912383155985875023894310607848988200707032588116144602601279202974792608110111252607710334642074131817513688339909440642001052529466620429047148719856915112210659663388573982645382396599622643227861011706788810058518772562533951466556657634667100096061688181438179660578236763927563975038756315563485210730967944049923532797687590738707630053870066877569868716293223847649040127146809915761009225524401166159513865894791634107331250411226385115553324903521511207586403627161100321209032841827534124559124639517317148857603645979210445656535471487770101846660588053775787377173932857314283828750403610624792509539262153370821793845386902279775313696757534753035528285920557055550508302308065220190894487100656163255006961281058647556690319853541080274431117485311672073122507267436732009213539811978695238713485749645775596949464145198096725321340754834730106017027332131562961839482547655217740102643140555586206615434648837614294972501452439500200767835733470365266903618907426583661309167021524178916153528711834918485187544326505149681833233322009413552059471082549199153388978538439556505964744610158417296927297798667005887939127707476055800721655085863548772670037321631748088024215680940901322617094043579732453106375369429519019667523724685435300234551345674530578581151274017765611139293623004352260962750672611983274307411741004582712812329326803665584489711072097368339609184578750596004898818384325395922384112642747284400439674366554681322777208091345836187814827368428751332719855899011906278970881806461772404161698210680581587260602718372154815349495471381765607717287742002747979778210859287340180529928636631720070470554633470344075520152033436194837974181795203122257581626063884707432368152947609189702413618491104461343590776862264620608194794740599342505681539844241688104193776618192555532647001164930125981973006397706200174107597827474432542621460331423039265878999098162298641339332915496583334871459295063524216508740184692531708771879341629679801117957576638264611299361987741061733804889230956586379073583852866122594497492643051777211878038410906843272316384283427044009143253206279620863786733884636061336574736497593965449306571064113101045024424416105519045754491350192698732849098180505858591707435167086161096326575578802159407034240579305176329347556790400620017371704305534570935935310362966076614736818983929274162797609861346499882735216073845989126871550458461547286658532419452496367110118489950520921610614653298319251421909355842864039257133698607528413135387246282885708266431583188098892023452623937160526712589443098092727087076496596086223919468525459948215004716433328950427647405162264452403803602269685487867208948934929491267487096291588120972519973835365148998659720277012242389502227588846442163268218436671441696572157547399311006224946288500083562469829181679023296029397676603996611282658456142582542058999324767244305502771592983288283071761246189397829157494109805265944949997328797938732906929785634071836936763197839350396270315494037450069907505470644243370888026936535302837741615294170728358588916749248815082113210311789361698241346458696577865034184647418883605750016639473242410397825567219595426232561310728129324146138080391645250256049597700802153992909518748553129263932785919949677450057739066217768722201233905852505325197017113011173395862483497038822860775333542213210437573600325696758523384157119346941344765160057889651533682879756096672554556717766462388602585665663033538648141489806227670975372684423453366407507726966920327747658557649996168643733246469399281400736601407886955845177643859857552786017551381262789178862784176512894253602284902016956079107250065291378696129513005327316106048382979201181475779234279947368264317905592587030035216508143607199801202963986161890186501547350725736262323048934711433205398443640290918966814326280440353123476793038127728616450138661050582852043673084317157680092484345068560814947154091770222326813009824976283819236027080641813450278444675686343303678231492308902454303855456863217484833428748603327088736264357591838559206873241453677963511643595989892272951165640115707425930310396452909920260795944527801935007784177850211165261271334348104302496415568994900377299304287676597846334747408663731248935209878252860618019499559814298052359764391676723418929689354130934738777154045867653602983297127012067107349972957237231965478637755590340770503158028416634762016738493687257140973253393996341760883001909261357096894238330197862072927621783251795278835349056951108799839221644593694785008317842777066501939274686880984088038097100609264716703928124608157876577485014794929313038646476404027574576899874944702907974629663598571452682897033583309802056867477064734956886136299213006033918796289144290147873454722682539617793681691938615909774672045182425947072182340683979955831506361030761538058219056575343323821409367496410214603820963596003763510084802012797501737041823423301511179581743572807710069881604838289740325216349607744857919217001379253157931296240731185756774404666249790506800194070848420494056126758821100622694449980447993530324384850841391579785187463730440810006885121228101177955836759945664283945968658767910981795885924060631833050178288686401847764032239617488321089749818996195969279419648637498416314179448985231719972970930894889309866814685032904324152208849378957148829594228554154485998664363971895425087157433457746706926899898898130913822126247774230019145778046766028961749919351966929721257566220537735756321924083134430062942699630749518200652377338567853880532429805953420617955593742258637518496325186410876561912430691939782163295295736810268732022150437342014733741061969178971475545117081539404979036477218042693274469816710239637493817202367327395758175358817802217309093570155559309974662549878892346572312624805238987783207689605730320606636946363916028818927408741114129603128578271186500992643210738355000191900269979530362822788225470907762474519862226919255508042637657489998315886797733491702046239852549149809066388570555978860693770111855381069830972651897168017701178413339747422098477373077970112181585319465417223233044266737619989381527322961135142128641082731457348546244517110770168093146671228638444288645847991928916947866282306664510624375415406275244883732286675598705969651846810915553445655743222155128622156963727319409502891832946401612456311832526984897940807888668985024817068659880082965877467458770402046324208659059484969526092323044024181299004918593601932355771936910502109211714447074905228104105934170468822645554978713133183329872976410122122319639686827839339229109895485472215380805071493964073600151476840851521849815935468754111787958971058125499785049485689219371034174244960291154530060275839595498888800386037371467136468691061986455151229015043315551254945783169757546436848658733351943482093544877460859921493316126236331222253919344661793377360945950798899710060221376576561683496460172821701575500155875136531087574915309693397481178756508228034752828994270085316437340366390248596045159840954928059209467807685060693207005657165099060101681706386803151382952534084484325257794229734581082009197074717879262002133583901730384821355943264863026875038515226780006474545349050166984936816310757184538904991986387753544583185265082219982980872428106810058873995425515657585020825804616654366394035157930972590206642778738415814014977706447647420068486619301708826181509782343866445865646166329666682467904764703949434931862638256211097419553135795545434858025802089538291890679667035304308996665072818485485706293402529083076065489506008293697988132331453180341509895533446289992347167722307441456102130330887897293025270009701780916548161212745210978352567962245532772120966685278025003394498993995958184824313382083390290173649822666543371393361995716443829449347807148419137896749340150132890941247047359083515016304612830374943971729225451468770625265630179754134137931955826147692689869807659641019975862815609753843939679298194779591668458167084158886097447279030856537312330461146258223469366188978184209706486818811457579764969483928995065045293005372809931331185629476221493300249166492428780840069239019866214062409972615672414313082849218152552502043299082595160246428565575337006763279119598161995356133757780398567549833556529732096672412478830270006249848084298284527125083365210814459974885867530326679316677356092647270315476081153120836085044870565354014259598567549016555470637244481245853622652744134241093565562997581669168963441216311051176177666758586488816513305288913386109848183358054440737822866433851069639612296143506196227448156074161219299314242992632361025508804636273117008230880431555138541449451935213224359059762407948662145938408333455779815760199117428172927158056292832218769036691335340013597470728509253149846132119317164395273958782782625760128565232174674176232093890115264663682493068952253408140032824085590831211565001456083392171775449136171645562285923264731186806170788851035608020034666457940366672900297156612098695210749824112468658522699082206657679280517425066862729260073907936282748035783448728460921434175093658595520494414743497093711776207902475189136379560355426973973745247160467617663347650530859260964434106986528292834289426194714199002520428174976272705987976875000304072659710905388863602048199840139299894491689750298490187421157368806769964662522292656026803219896832010391253386522795056410642900438672851333487921364779959963308478323155107344462316013549194075276755102992589236896537522924471825945461909885707677388267435917661138416120292939045347951497318051751414813486505712605984752220864119062388801281116417205431648043721242402432048214735990722859907110025354575432112829020589160508285418653485715539241212863709880959353969256484266048114566099707702084056349099160408224160465755808867528142923868944446033897618240607411372625359323139447451928094953463840375241170775037574501008730367544681926518121759332383659400548344371486030078718022966319669910424821385938350505900806354851699474606865215742921931551040158682709397878049555576793563712265129417192867159572080728946005096895832921444599943763564925602772868323300353321758123393404827340389470732385577348237824904604607760226813121919309857322269599444184205555422434970191501977379198501225774088113642239673726920112743091349198574808840217681138685003958241455083085347904171806779584402640208270521073381722128844453829310632734164095456228779731838689133790139067948824390624706749249270809572881327303734333299168427840766106449269846285695818400192636698993556218831078595141120464695888376369268028743623998930509575097577372278932735255283773654433546977421156110499244923091442718372166798164559591708875623898909101389748981102907419921801935116396749043917693800134647652380732430380976045058247701917620767844400386037855241063480040615102946218779378709047168036240927310440852062296638861447930596094533637923218684127878746979803668292961125835608921453781290123742857750001775763787471893272737649939730476281604025287125197618312324354832261098345230969232727723162180662349864443354497347449886649957883117543093116913141541897304806540444277401657826277160770511269430981847696221450981305083183595472891115623551541651137168105459274785232472485128285583290490390224361145167295990899565369501776248549472636059899984497393655663965401921736852320832577283833464674915160039683924107372214072611402859265716740442415744351362378594546055855451427530099310988361067970581153420878499484413046823214266829998475087206130684577986113170004708678550894571148404934159985050451422106149325580915804366500868488663893684950785707556181600351449556675084456268932274190377090230464352428193677447878102668782295459396457260202947147769150392698001782763060873755255491321505113027372018069248541896369204371761099306776129308489971172156720001761630137091493165172517343721554760822322037857458733803246153486644324829308956565900743224783666613019145863322588410579430337183948636884995978645554821178706219131780898222655337442360058615893748640936284010609791339718289284469867080382663934473160408320747260057978336353713377835032946700964364914718678665622960840105833553533294382239145233848768790145303659288777065103292455896297921036393402387904339271208923085372660447069998516017331422606087833795070300249783777078166202589097908500966725724616797061502951509568701560028124486427047497270674968275190351377931780669493792708713510903885825792185682606976445833384181054745974962045666877192579022424359823920873853118782839849444874888825845790827346374432191069066830472014373102218053088020215515652877227085421169801869773294416093388971617359860939306656326651628535287093779334776271379365580686923554781109219807774708999908271121525231346266424850126495554940059339109807215515422054522153130715988206371313026807836190404325511336236023670279913486379689497092070343426988850373020314646221908838928551140398524333648046943120206680987948949906620367189859567096696133308470081006658013985970709854712714805344376217101615087243535241188249170415236877741874998764214979129168233437237974369389078352493619411127277622676998109594865541551028620962669614600102813264167453788070191434890180401479890760760724897595807485409114668950116506640345352982598679598240873181546858965594022058591317548705773794047504526095257227402711626437245249672504996136453034387492494679690608876376444744386610059323784994505012820699173980018972455978284284765969477637443264088542982401454841296546053298865441256994813149667981956005413002942355105119633222163193412541370188610826380135994855633868623535187294781707820936514229978532707608709157639099467663121094400645111940501778827738052637159760374213337508899258424718863623765044041002972114093168119109552136262309693109700252832775610003231009786382877047795799031591421106647369765364770650522621354041055987901022516997843392856820184816387643667909964770506404730539520938316006142202465321380724998642501436424500825013118129958852014098902592290260256175225520475865526423603968812334537785660002750171841505905425750569374268191139721326796066104676323039827980666500810635490137726423313281791027231623874254643847684874120371502796099291245379284769342261255800432912846290026841448177296777528315721886690723085865230832206548651689897599586876351601144384283361861743525672096284374232913020585229401924740825403456214829719210055603384237216921716137681626251123087808068909809845081496160965860052814337566367136858119418495078671596014323767769505188408668513821247530529334220146141556436077425817360473868096464189954863259202671608494533266943618706252116681085105389877827044877558787122268319077132650280962765971461749739309674095450294973528985089407394947734838546227881636432549680870707860712131963347901053503182349947421099402030622452234956287308918182555244539926176739849702960696729485182410451441325198988049689176248966286120244628084265129125567185802324425878978976785027810362540058630696635240962400562749015385880612337938713026104147175475768536313123362443496890693368353321175898855579415949089738501180188114160324198385375501167582405956266396223146575176807157160868868295648893943626811819685226208751602773850468578795433896882324660345360646046245458966271069888327779606316083329236652398846961563147485925739341630865413359619203032405663208369525854940241237636162677685044946734109238686078662762380030782287308972464486692706817304905724827249822719563616154176319047031308762102677170583936778855243702022118004937497081942218972049843216722074398753125228757047168805214429675695616768719821881005379962087067985890505717708725758339061554220457005361004057679881742791806590900482373532925771710373857604565215896746996411947615220494033522654570742163371911458912623372961781292089219429402274266603910989982478070154786485719520599510424011563255404848146021910824629546442414107869955895867622293869542449090023100181801721640033288493784433093676123499899230608337915233668516732749971107173704118744297886228439422703598687387534458340844691611787437771427274159577915859266463954464948960299765122272080365747989567415662893984545158514486348985457170990653727490492498613470298928054560554386396232892524332795613187123383561799599587332731206227853082135487402689951658440540665278064237546022360088716195303008673980695478437944003209094338846563394059092962908892759514718742105871828183193218461545222449413340287654583836182350989324076555723110329354657888364790278323161944976956988579741257278804032149320569765094094012935666517037227436330326253787281729638090576494876576683986515023233131900178822654989617194629985407746028647453360059107632048390983629773616165522241667218496917792147831011023872357063824877500402027382566511089384749057039347075966836452311502075353493592914427762051235742132789306735348021225266244509737257416585186191304557498342060292825544799690442417216660080068820038805933869942868719738954674940938752244624451463305998826557574164367662525212001763575181311721754657517004266880538933636849070320956880555965660955933651281306623375575720601606901226372405979016846288261887557995890477132707223344386901338358332958713744300595631206554947939675391839089911692723958060477427786426183235807627734437464021093546699140941561658377505115592011068786060497883824857012770621769215616974594459805282888894739720112131500108748837110511337112050331433726465671574413478389334221439402010781347190509194790752522150106318814912089616857651422311058406401861611751619709374092307589486734569957752499696083349509859411268714223711985020756613414836000822353144018774608313740009455516591162074034585471459608043291689292021774448791891446342243227719254190153619784407998794118004553900617326846666462036977400692788233920675629424269861459216677165570332064497933943237630281588468662571036713018203240269120486015518114801867085929678489696378658027867887887006234024574071671070132598494171770703104546374878401432616054036821933943421164192988767602656470752542506551984118693104916027728846294569675361353314234517715449120068784029642279124388835340974709783539252981054590773357240253069875785940741672017536372868817150090038331831979561706103966800469807876410127153481646368667949069865969866577452736054763334678990693119999822363002103551220592690950101741487697893377563968559496371221714811313319762457493774315136454798141422129026038177701039619299584998178379610734377176355504687610421224085388270836159301230036565018774155626854813777222420426310739106783589037971238613962099832587737126038180460482958850938574664776337060915970122445025946705384551474818891239392506624644599445394865611944739988186419366862710145285623939266300019924087527665269502040835624405631454004017360154149394811204075680984967342323741717168663921985511017541518859605499239789581452801352490354580107699966008458121490045843015010456930984394874711895322467387404927920936887654179054996768166791958674780358467689031512846617780745464677902178247199663282199394465220090738883565745643605816192998685176791968353357485723898829979905188419588199440648534923433782944007284555666023562094968492249643900048826004788521212854873448843777488477254830714076685565700448163393424736655148769405251461356854791450993139980169671190216297213356062204577258625110402492061896889541724057331854287813744504337518421003055062799387538537808177223714166595037478528148040541642804592651145030021468048438270787782546613226337487558929291995192677510685609918087367862826178394357123834079997833539742780861787625256611582018381639960210142215881707371559757152345311333402468883962961420761419594439582056805413199131935721826355072089114551106359116109288123861170501739326424632529927581472706289794675914926318549258392726542730098178106164098031523707961710414331457267535403870470432218065142891224779686558631963259670104632629280705674180974757746997232566762582408892917211555173590270086909648631744238305307907151333854098381716449955001675372230039981915615155296030476626747488122901309930329720706924606060258775312116604366848020576810810026876652416402225985327655351630167586566604405806190449719949924591370079365227060878741147838941750257247975445231737509932581672300915613178725839937251261610312395337158576692107092997125039235267488496564285894841474644184717775704599778878807391031235438563317467661590709883163255709834362640093086733824120153756244449963055335155377114154716129087704687879141109105368680465226969640584135845980283103146939035522240330273251505620554594149288763689671666278292779520621220193766952512543082548803687146778844195625031811524814690898788383427014878614809047350433158243681986825610820213731733051779472939097450595464090486447898909302378800339858561458962566465746407929247332769625670396931521820710947516981425001173829387474929858095182287884370036108359549345470450326324356305425074024389708807113618412928111162954115987657448993961693179624776140625674976685934403977417009215283864877066082830711791425112660294827438366431985567155821184147837433205574134562207807977425955702708281720613834571824144068703235579123303577166170102102993827913790035978045233320414015626793924414880619708566323513022342017574306965289274539614962057959757442073563042950960922695150720177767815740001862178577057406252112981072564358844513638782582207867562472072472753929183617468541217021358915717576107524942110174738275884406583257203536313054978937176334907970461137058806982482460641004932014062422064210938829426748776371519479171823095121076378856840256978614300160927898666297449582740687628992440093193167785398461128930620774993252451804932103805956719722285627784500269864353708463185061820754801314617916569359592686090673751018756909651907778156323661968601410124087120091235383541097970777421287536463876801218945664422101147315480841175999094435252334639682374715976161161703001789513215895979709163668712516481773538785736788396754063086584344707406625791754860352840701609315042855783240689804340530651206506090415721405800050036437285893135587468064154344436477653144717823641247330757361734806314822867365286637372302005780513998672522079414506496604053763024729622330450946666631048714389539388127753283864438179845450693779583682008620990594610703236164362002471883048016905637509381948378136670589467721500039819440819979489451208647274237902061304984918028840326843673005901646992894379607116072662087606105420682094878837277419764258022134235518174714787443253928835978063651744913411973224687354243727542680137881890047513468105306389339248411041565458053680628059998457755873329908775106525396952725886370261374837776393565678016084079643203512414596270560357890307816370680692488485057923389655214440011397409923760115929671621045674790084673002734700271480689378825567090147353316864400157558286413803534193724340844338114486392400305739446072155626413533880898615194065188809484399805461189653206599000884643300533200613466253821852964516661472377293249181243711476048889078080751306890035956486135553677567380056627127563988762520132400238173357948109510470421147197332618856323335179072441823666114542421722998198003110644431992493875378917189825013871353317647254776953808074909713833490906268744004462537146193905608570638019293785325947606906018434806342164550863502985162022045086543128630979681137479755693176040927005969560932190532766702251134990314604890695647889832673827080198875079038590421857480579334661374309092795130718472936930819265284695056161553103394238963338138196908867260533209912099160969415489213793811511515160938355034992231280967957113647061663339953502679706892608910606337096585971738283912963907842098246407593018066629713397362726346712938406679130802000335677821966835047023916457710303749402368809236743471433831986809189015260535786140477215019317194740368892593023966733394826988275884247430231330335346415034672447690441842701749754436323644699050625237776143938902307285027914227911714870739594931580083690729540651980912572433014225079437631183274473202404850062448525996406748293511683378598039849239812294332165480072559144172032053082981060117053351937080364481050503735372450924280218184675090013009025930901282943292194524314322141280026143015051912685046847852700209618536338254518501963647821764010678197455611884233719668485515532265622688159384327867063763507715725018113852809016741811053346460984662758254093241501888476026362562392122992308215399443369840802186310853966601619060909492983276941025167695344312338451931356319524666953393273571759895078501981468741373364166838040247405950014515355968049901323924150926674421624595641722821657978512714650822932161635231367256895907740923597579553639976524768541248300476518584087249992992620165588817672797692749583557138630308438969942003174144741510051214409182789110242684406426099956383638626004708641424564874937424893915633210730388244554972061358693677167205840201196784099377675122573029461710160593517286878625431653755092411541650444274758650728014913952293852107345561658813009310655414491837728998272184153532875737181944924830706741373696827998021684255696630587509122304647008021114126532822413976907205492134953685257704661010651499273622145771906871217126198138691888402281999880094655097575383338704983227746107303533737520310214686073410532088047200647195624051087972409536770639471392098906334623323221614865051907861921978815652873659562008739084756779319506166740038323194233413462206147629502587379845718845602307165920622693092560416049532661550412997309427285691181569811131616251441081978864009761678764938168656687798514200761576920040398154243284993725572253610817403751572479511397506413152447298943511180710122833384542716200283006412154958513956072742694440163351326355791659373805580577500373319942221733841778412426767558142327506097882083939416968940287192629709289905990866560735054262264394603752688397064280337675291211419108185889604126608584086014672728384465808935051882017659727372765343341604534035268887141324749728442684331354144717053991275473961142762225351656579847800203984658240622093641175457711284323293459181660307921288697572497772096618998951090838734116322910324588134057472445010097948401341536349057375954517938108327805461450151727314897814134886991392240989131198267989253955542455864625782337572964759505749098922640803062773197534026224209769448125867246225133152829762715052418844558280187098579234520943283104673762496986183676547662241834819801996118135690769080506533932245881873548777772911125383520492489703459838972042545830373129797627451085762503577936760210532192496486068056241405052537263029842957961845619440521652442042330360603732733272305100865563280414548390644994738986935642823515013064567889263073795757087901626143037806543514713348264393570800341925716186407706885059429869231731290716760600488872058320758096057608334591984426149062110087204794660880946605528065979763705059068352774398212341862777762878778390947414978438587466165431696020508227580489658389975893970886322763751332870181891911350662853519180863507068925134544293972193743678209243505621306834853221227509591425473432728606563294193163552079403726702481669277745511437483708036630125347023419364730694397723512259836537923056278574074648448204052853949844974733063104396026614552236539090829394648239774428550853622576980152786005102655983779105389425141812901270956273987365353784820006241331910911726721222439424130863899498013439016209871958312057122974456279426763805515969498608110323628970391578053352492501219437248705413232879180802501683929386685435592565455106724600244958895410354230653443466970938417617684230724639977269763856526590787245882951394075065724854022643064230164334836366227717520696073154276149631732414063717363318331654621789852606934704633181110001860850384644764060984913636378873094004254563136596967800194922882445036628770673274190898051702053998577301630529977698919142011366302683300170941999312264969940915473200286423772002648344401048895628411818140230637004250675452930279234963683847564575292415461715685084121345069127014069761770611999124569692091560456821861461133213600848180328397459352549570503122985753070879616985120531166343963893706993926790701245351101678108993372092497316682075314776692414873014201055955060225897406092624970992583926679713537621109182925593798537698968437947971354001136171159985221851690502207648176583113602914149824537761794103015079349000677516537285100041039732006632458489887363243786368852816162023965436490286704091304775318953491059753720628508398159769110933682605226513867529793134047693591208554608717371621986188560812760113885958579208109781594380843672066038183803575266189827766833138797353423003414968369977625378787957859092426336088337850014420731667067086584121975354434644845432513846442970105686682238063713969731022387473057978451056764514587509398235569399152008852927947705707020899099882699623033618507892529595153130102558839567133154787995779420606338788031498913510455612205755736148365329585896161390539045104767101549849575548646951251699816387064336024047484119936162901836826895908624718678358795632478033753872312323101944262849717972116484173162394961963977842617323302980777287519506517548425740523646302412440525304966742317730382707554120745448959324080518930883578914366931454365478683676036657015027661055817865080246249918049354370616476817451059154523853701968309255988082520662403809373128077306081671750639156791869101968908977967146845166871587222142503154664194406639290875551374495043134013288828594670829556428486756177671128197056722336915057270566943103418948375724255486184340379943859952245579334698493869807206811930851720291532691178366582198096244818488441636088181029827518146766877215799141376395068981598850878228778227933334260879498730433846605405700511861037003131655364259590963308595354818310437494335315364597806484272702423004050221896916154823592078019389215411589115143944599227268831553133562459465138451242690977737510567942708423459050594260477910469679042130110351414135603259280853560629577684064689303569436462328560112077125082063230642142553439335055009200119389013085268907645305956441619436983183581850136310224350765128965461814585640988415648186974522205858900021630523949773700490413260833335136919513809696484955564692975821913435036513721080039300928881476783373175776359035980326459743838699399309436135466614580593726895616759364370239155768750662729288863711679863838154200749128261931667297898612415005171362726913565585073052935142121857610995085652207104880439446380537867858217646333972789799003661777156795026563884407686134086419129977032296341128412324421572673151577049898764133921377997711437691116519969641556732312722067563845398064859435283921523653876866984464137397374347180927325411312749750434580101166731636802164507154991564344744399108298706734225579732275570639340593252169472206278274923115577720150456064918450647139965290671592117571362440673672327807281958074669949567542532426495243213779613823085786192784021488070514664738174039782027370513404981110438024105169707193950464834863890898741577958010389713526713959106938048310136663206438722909441663615934382202096390595957336276090722444958210497136603895703738582033418993423013712209050948224441714617681049032342249063329527013532626555903125308572285561638698871840128789344653440908374163489020522866203613378707068440643459022377616285202528807911336558505123686121464022889777542005395308588997107010035795350918288530439976342906434439934586512214301504679286144056715485859014184132201135969717051005386990658706113656410854984280490405480435483769690323802813447951239936777766157113421890822980514934324768454670224608692184422876281888461607623770721172501221781876278490656722914348665574212008655532892103237715238158916758784998650212620045284506052188148609513073545035146400248911560586299329743251694823975111476229485974717265096324857804200130556345244759647304843017882948163263532115748108467553113046465272098985489381367377868592930306856421341416835556769487191976715806382888664658481306914630145912112895956207717640696806433593701461658488297439422025895123504602490281328583338875744780126122330337190754169193066951215256902510096963910562214619389171852481824489995448410057958462532183073621435890915639521533449184445259394053948959392125526911786230257024232083677836749276493733484942692984582798452964204412035341163869989645465684341249943155911360275885338247649204294270165955051229626429333169647454598387790122365648986893438291041965239337370398214091529435542458154124682312924695091925444670283610588079448359296757714103090669049406942585890602928695073374140598472757659126087084990636935228947736184966589295028427130107830955415976661954012009506929845579884897319006233591273737449130788374084228302823429186375042999740566934945056209831230823920285116080479477035559489169664281152615756587774510846962392818137933607551263635168686751540962621847078805811100134161250211862505577424699132336612398137465619371087587028180639156658068888337368480329409497471322812026256845664269202150402139927822857028839556404391604662078750299172542277778089610898927669293585020755206983432971306988768147397973259040075847747561551282323013494528151560576490973138784369946768102533970689776689711161721947234712045602082137159805355876853828291593945520346440987532466653214679444420857124899652620329639127779664475662444346968852098103015632039879427019210525072634293625809127654606129450624736769734112827176734827429809180989308834668771232478966325739794708400957867655740767316626634648840254456724933882467197928619228617168798613639080919740564721341149624526189275439301819991621027542685354921548166715391082832630285763358539285906142682013818988709195412118292379193252114457451012525060912767498148184453803183843801877223105318050914190575580043314036810123969507447681606272131898800394117363662076142981217323055028090803502777635504660770324532327974024784771055894967685739413785878381320362079760498016477361384668022587317560437763197396555507068741454831965657549235152348490603409138331147247142591979027129716943902651282075063491399584211118799292831341687173028205055807081105139748208452939917185716617258966542145477927631148727013121226572412876578190411491546999193686254777299750733814164946918626683320468765825151252627865731965592720398908818171229635818043887626682678799960272683748865024861600317215813831996147692640132245404614944435210719144513701106088723503235979999337450236897124379905742775608860634026949518604238054427417720061076498522616238127182820005408462447432944330629528796600184180507797440153922106350628901983327044432092893882202381666108441926879867486295579207454941540773215547183487726418536215200037702241263242082700987036640777298711564206745111539867162891187275047269621707544095952249539631109966231913281178651915420069427714224755660459192081509508738487421720359261772614685107013725617867355952020772759855399642348205736649994938599969272261193332951676785868714456607800011971053789864064499550615720031497254284708724172786084847446635374691421749847725210453943402266555217683179153841975824665996213405418551121953986208949385738174010919478867173715403297891961449743527486092451263602352482917317555979113795451656804437324371797187566533426273563423947202435059474710984999715424403877959062887092302914522919198348661533724861400523908961670951263893739029827884874808263448082057921624984007442633604950332301645570994658192650419879767076280577645417059109152316834611200680077869501130955498880567563250737276720926993268725795228703298919432219673661302484067857431603961409429370460463141855792787033259427531547755038690106018213711590891396320247069099131614716947867516568598999463829633504394013841813939582841501557491422321632999211309141956650148883860199992819863485609167861693789461111900959472374650392398294191785656052651210704479832871401152086167329839812228007963102256784883153400425924202460455637780315967465959126412955443693054161376155046385098878964150530160941273952830403863386467299602648541848043634672715113168061075520995346070093541036856851653168528133768810729826986960765053162696484987639533913814108951212712182612576550887762445811108503485700935354908549558004999979413255832529871777787090709352740679761777796789141661055093006977442915499888909057854218182129865708006723481215589991178142825788996979159956403418052822293413194109950652628277921158150128621908239007682585624539240141718210933209835613095068754411976907028125104501549125940422927068288374635898647311567118058121069115475440304185588284678835521210117742860245407504451745235857415941510799193947455240009788317451111547681119212898787266046353874536809154551886904913431046047567411912263639982380996364158645218773960162076250898645348311978751774314547783885004026505377981445605460033477231599422331642627388277570219464895157811706418898961850413601453243713225640537818518533652579725611911579050095938922758453179844498831611644012323669315102217844277044580623267627118029171935937107234876232780980113235909834263937800546784524280997319041757237876438460075861986169248696725963105438679626597191091720354927145837032916333208209502710740020987556458693930621626974571325680602350408520130007809694229695376566435503385356383862380026576351394466236590386357155979629914351025159508297004255467529364011617347425187080001981902295053591593556357668069736879977198791957583705540916908520806849000312427122629840666216025509332487655315903607578132199622172346011986842028430070652061855872563354530433965943419352376511670336251513681853667736184633165756695681079281199964893081876240501237716144224057340222722482606794974788034741587066836781444169988297510677944123495284096764907983545681178070967568955201994496994173557876348424784192921448030927342473451778236951997493337602114494860878177838071836912286031055091140842546440341680409007963532263082337407683646194100970361274034667345052877819773874797685004554240811139920878382117878054340641155315466076241268216571681964959953985042981822765297954821372710000633088674448538214821391095769957058804921984360317923153717853423665699188135549196095238040596896766330939593711673044648573582375705902869139486940088148841908899379247921507342002409645038489057136398197646178071489698161861231532112988924594040468612417681131657421676129089402944830014649481288585635568191839053414518914924983066326835439702274289645289211769946585091501601740935916014314600875094481761483625993550156400386774155006768707278366152053388875643905356066293828440083454001584141644652871552726922717548723304281278693313420868538958418187671086651254689348986015367473233867186580917066732847968578721767754518819162842053792682503529338134979461507480168420878149161902590858005953215039735857777032630143855226440500754707270609142445649974666064637970846604482887274087583057161179928539686892778928059751141352181209940990109966442187047616760747762372150077388855099529395554640333418392410941563820453070126918135448592312318229869118441351300663550039285985275231022722189619459331982951026431214976932730034648804756907032930530642075606772823661906115165300940360392060247691391214526788715226067336247826692762829344525951370807109518942246395035447440533321510715626778459100332016921061114956174689636263753133689323666358814800555523516977817134236335595616555383553880819920386689570433116921121631168424119930490925719832810191776268737524874978743135573359980655889088862626426695969622715150049225895913736551466122739369374532881226023554587614132063401788722269919489640739298608585299363336473569306667749238316060590001330936619834422397905802999424601124241941484337641159093078237047980411327487022153600551805954605078689305116294257539471285882135208413662840632853011115912311010207727937374485955423076176079669267693716342289097456671465212605034299173550882454329722024268292530119587518135361868828564992724500163809387895062122661042548690148156634672800576476387090252415925830143844362576867065596516968961062425711184220384604081891162278997931223796808462507447865236123901452099083403627952823596501301417774876740175093548159587890684440438047802831057919183750566910979819293343104091667490618758673076052470669189101814918652206036473381646581476724363389900362118245727198758026388304186940093090816997727228669444520830993753766497822936851017869486037025652037017024161121774103622109968554450260081083863796034711863263799153641321227571332325622994110777850009793256273276173489449950120122331706969292823472997871539568726171453511161981440178791616933998662045858796981277914428886063349177776988753343972209334053785764331301788813300130754257351404200927022296838034372251401111432175892022581465365793844948067205260397473251189976907835351160002465313597969211966925259012075567324187650741348385304751623995035858010543731128837221885695433239501210782440123396053001530273330251141842309998718110547728855913401038133596391890961227630621132091693027824487516446163301366003975394060795937473922801348528954568340585491907627488477563556050773156774746733921844857606401931560507322156957603496667903658039440170630336615587302913161676565146660909194914260369102481911841314928358603173284676525344734569423085224924415379907729764240586035071937922631455753955882970609679434834420431106675720174436775612780128980432329634257222803275465398856046393971434831682103311856278455993000176567180015719976516347185697298004680966466782246337069793234109450305189910497771375009081274465935108913589228792527338475379506009201943663432420556651315993031752473539095561051986371313123107325357069507542506888727674459615122290368663751382160103426779883312777609399827552408422107167846892291610930278462790938166274277528044263734524036994190116502926115368942628945020889405786600716501481380064871353351630887952517114862263429125550942004254569314915311721152479341047812155522651579068345911946148299303775920513843415472589867184881001480025560874334100040740123269028966823223327780387752927963837734714934845679802204422793459496849328209248933403295183902514883295206452935790403696773595643187696731196184802213561652910448522315028738734762297786324516041321543633773180898032703401809953174149350983803655057231780291558776423712130753499404386843356371463514446146829602338370321274438996652163005458043729931312324910133359979766092421697015938173488270078347963651315766703961914848801958919310682870172634362539430128417808543813187007812971272799011390674465095710323115821390094812648581362235653676422568373614789872662844605245348750704817825570137517553912301289026551422355328440123998493704842390155963518334048355808376033109309990112744555598612003421272146002408426726311424471618995153597415682328944982787274460341506090561781592127948634053419123662629924801406138473831081720281652031766160116652516730652033520515404198110190455829589901910481836410260774346713169729115540982173949592713955175068255239135554816527973060252338964022796189896358925156540064332776192272817495327224902086298810309383917898715790863940808104123898044393866879695191719036757923677395239066215084153217874883184930970550590159472424287829126793909093316386847436421704270677791538284293461765512488455802817407544200627236069720665778688735505792725090978955879829192759977732540003238652028569826250114088981344850281306180562187243810784120296276449492155190988653267872535749950562640221598753028152529192534526873578443138049691856686537260459886359318707798753792961407133942363457514133050227380641693887127346939922876590719145599158173168836205262271721224399848307857166437337587097803623577502000273818111533742402239038336426233899513408553225955191748106864876863618932897126523352095513982164460580846137323311818808651859852182571342581575424463979625914348093115216455114435263012178405176824914294576493620489412040902703751181688813026874607704645397370731785769929248324488242471257537361578880649592730081057900024973422309793975361721186220974460752535796388798073712098373483098382819156793338733169736029842997678964318904616250841189843794633801338214518299287770274450847531052015041705675026851662286883784440135487181074750703794314683768444680009735437759858185241212977064321905320649521490098020635185781099334154260602187743862127735324024658344497571165169108128361067339391775802611063015151788543681954921143456219914794505850909734926263263145241411770696571443687373022008587919483542123557954806958457452986319972539232094945491454060765133864620132527420818580433939770257761297076462260862474263933139123954111162802806524127183007140570025027936839842442920458084071182828843432222097734325858093998048034392398912276779313869387815745910544840884894339550833386684026105352681353904725327731465510122278181582992356770723106722833240916376468329068378590434633315788345663715602506933210630975938246095046208496750931771512246412253316347279194506973664326571500630325102396582802082907777200474788472921318278632518176263064952947296924086089919008216211988770942377023200526805371733715742959017399035576780000919753657295849244573018168237534308782790928778827640274846829904662851061910090034035799565466010224215636285163717714122251356253498165584285811316644702005747240198724986224080700532018377337337008928533792156336198721011836752679472778250498788227592209366454216445052487027908058899480334984895803265727877342864378564731144038522595645855150692467570101781888331194363110809393285381832389736031808218680720680927785499275791064742916390674146430755598803890423806115301185555894707163314114203186277933533211546708303137195678355979984297818860911398186543825592895935848036958161809305370771196792205428690246243964267871521839797549540600482845374402955334663002974207642881223770167208867373737711304288564261772836558042461781756071763072096106417407843467751453092645321273983397434554998670034105942825392720171919516509083222341036744596870510273977374148636866160648297023181438228791722369818446305938077995307271525517513756285888427649309077497437557008721920707148554854763581497528937376046028610940056625880377001354464656272346000614979925020823985010802249244573965811890604970610864732703499363522167187289540936609706625240074675579920140057722089629024999950620771958487124886328557817798779463871700955280223167620104070140679561212711480200194957328458809461552455114827641103603450153447130911013704564296416629835590776460726830815301399213822423113958307117658932751408874593013019205072073973332106679892551942313109398366764846468139067312099442292769023563648378338118273146139141194365454527260105534325232955776510296397003358187766065972386858081102374901246269674601111330408024205897462633758284334340814577030058646653479947411130487501810397327094715691806514651023812598724341661521800365790275045152534835409845124924167153386114639583437973835602576845012593999291834593338340359446756905533156056225463334397712650222069132228966631234876385296908112820164117743540609616722012762997227344978272223399526913294358290515464110717065029101402782704220336511605634390848059177723257421157168793130227104023985461940318874706577358312660141634825222736675564988562818931802087460767406394174042289308730469575911981666532142132974675355663263676957824909219678160663963693711328024823424548414161158505876199976503713974673925610988786809623232719332157098481657330407855881017982044253683709803065764887045271346184604431363892922981804813626465559270216208994608495571199045074956675999385154676784184245411622626235959825362292687985633756311570140201343644768302121436257352467128305271764416001823708274064288477075489052938109838150203061350926268309380664200869011919261518992469983033215632406568269962239745419863434587231102396143908815996655871168238158993708355383123390862926052102850017674896061537950301981238852809680680505537317460476597591916102217582709518225424491877152246331611715651216830429438503024089069034820884995411053387067693414923239072439243362132337486259600943345635603883657418686499405423153228784892007898520993707320295131785325144054962556855099831999644386633707632768207431890331365525685094047891447605971828693950547271567148434696438234487153649806244783369510624717239606814709429441125626112424139475132195625794873924057550815551604274977324297716303045934583069359801640081092874242730882113908130363732356442744230180041495580672562981817408242587163153792658570208357380324584524274754076086810727806518863450497974712431372068259192275909869823381849310278898980081674195840700231370536280684603084135467156822302347058215352689247936454806965447701135751062934014409469821221429922693049907989815757028468231728616181170666273673966894867691588848970977461497477457922455885742830529621665880120879150108413946625085408250502818365589927941847993285574764826554893101709004829144688201636572355407560859985885719125578032205853781321827547488075199050897981251848542639163282112711898275579981331437608044040080788595309702430298162915092621984891991875948479368737820517261126726883090708365836075416933493262271063297181006736519436285933478815354388322753924986285175097082144928783405658395698669679525252453237330365753474817260480148417592020886975581977849194075176920548969112222104410351974345418992400303240880140687540587842203202873626456253684528688410442489149557882277012920783076136727173815050925132326820468570180145776755939177679539934651998657020679539362469874238216867665265597121143211077683950978083394748435766446779670112810935395359890097116729193332694816477400530195159691435147388492688933718076419713478623282030496678955917840780808104770870059426068127060646493735689210050629501384718527112051053251993458066457961821287150398747687179792340325653397167868289071568756935468344091874532838276223576582550469791965895581562943446397542322357309831264995142171496535021478135381079850943053867352208816420220853520829717617482268465838229815574381995259284123838902981966733031522033954228480713103525574125472420797320167038377497148117064545884527443876880133902966859813240022027590228595422166933142865988359060381958357367459706311072077341126138702442303382208741010052374097610649947644834767078046583044005058052635432545810728059855435890196791932384776278571059604820739902757843840037388361202227138609744471450445708746546181275676711671009905913232845241097753711421975124072751622021719877856984712356276702418133030839573709488553006593130854567522895330525862101814659252430353926401834916273668501039490774243005812076518537594327100708623178320765055365708350915590303177049632670918466471904992856077489153913852365087302080229582648927598060421771919378450697631810195149245792196128000967128263772944593009636204340721333247183155110944741106293620059981116788427892092544465267633150666964037834413271026834524919933042483219309085433191234131842820597814741849194864608395477984694771786578009489941828528329575062394112503012528400906124052595706994132353819384263328364100800341084230781556359147428904661707788846295744695968437526348073446543537077254886399343075857308753212763276273911210314220200617085810952657674863891049560672541410291311218468175909852766214063207611280361736999936834422811682286766580312845980705199226630980816862350323083293827315154928510107848935011750138563506053755446756469240693702670996936910615413679090181176785045791963392461177716729037817244482731941707294402759263715845158858120291569767098984633845668643351965716785060433796816994539714819004747213362141357671926413654109737495740602066772734467525837093306879822537804712067233573005051376768017438964133833349719769094757401394631651040671698615095846796793088402989228391154876487401337902414276608537659910366817004533587930085350732146997456228335623849477846585899812296714679969861179398878535729009795571509323070798159759310313476030206343602388208015795134133373454507476081530663842009498408355201138159820775189817001539297790918659526434349547645148775587848353336574539477502150724591192995292142264973710241713729266305461435628954785272216123187845448312115848909480510998044545095516148139605025382787900461377461704674226218233073313072460528448960132635749091352007440781064142244225262154926787599963667904394228171183098262643005246392002246713728510944696944671344661346852431459353556561963911229301877170857661072434056286369903017279913609312985309023052384838084357754963526706535655162220223297904263357314487234674908803718456344384735657194907170203458928485281590800161076481319348124168284275641925444869654101483630777681444984875547589767120774648728238763798677289373545076240829030517540118705447824055325049239331646422366251712382716204562315651610616952901821555356873478689495116344984267744936308443069235519844376214450356829642069244357848171951464737306297898778894889356783548119559311545415940289776223260670137615436473921748772133208790326706711738912924617604368914393323146243718552626996407699503097317696288080313731984076161030389054945876012421305731138468569401453231901026621563366545095864367700512031124282712266843637069318105836827600568437866822223862551106299736438354773634961788783400177813464755543450399693963946251475138496335446070368842194422542026530999999776321058097802151802409283654188255351185300841986672647658297023138919317244382715364575188953531149865824036351592806143862957284790696792117911264543466829322233331713135840713867547913710154913812565099832716287010605080769633679029550070037865017640575277604645330835629531420555531813398912021767162955495776875985001131163360893272727871877427607094166934046937055895853269636733826231179404687503532874949337854355845425498884446457640860068361331902564506816283323719889448183299400459368711863212679425700477704027457502348825341133633893164673185870742064515173589307089837290398692324041466330386690700192302553838458112302003514450169993248351178760144527234845479633478789632519815606687301434029408214203076349742156586725907697991018992617434972886270513786070886712850494145401859672471365109449561085748301999524148145424334921670424026935904963798621885797242240624079552993204203091314563759061363355757907256878595192166850602990841380277784400163009427314221706679518283174085059283125024718571679316673131073977234554702279873563726554035376662875449716231433131746954592830763774297097658705491346923202307513593056661162098981254592715319545257750015693435580506000841948147728822179532608183435000533865180000803491550831530007252757764720227775447430368701145409674937196520569062963248053855939911768069910882817358522125210333626722618742982391009888110740145772271374386261162041278911805798838476547739848575837383766308708517780854716385267922823922101179818922065489944848429564862664087864662619469639139181680577503528206577795094690303940635682395805118490396317511640926802060680560083365603152776484431192311228188171470897277000940038876566253325674364441941517540188635847650405737935519826393981029944249841831761705566138528380756476850382459261860739689708374157899060343263193367546512959259596087173446632108431299435771997270076318336983744653890535716840847066115257968293726630540696324537188663751776325529476634890709237183727875971495578345950556573323879992620157907704236567558947232033109080471378856918351163483596351877912081492561998788007214943135058119176049482300908122618513214248359695523544908773277119855878209595667157823867372720800664256204218757879959004748141944786742883380219037724570447138429876769357867194562399529201466443705089019047084174361687564146436659991021088419101826183777522657366675696858173554345320949028698365456821911375566605115044027357486400011362347821389822085986331053314943944623235429666843358705418883441293206359973281101316763959702579266133334004589904895311407299534906816786444560093791612719552926635012237372306026300599259912893722455508459406116797193371221151866240193042256376118681281943023026686549614162877098393812928586826872330767705938271198872968199381221319746465811776099859344331764267652630595066185347584879015168333207179336263964718790939090309473084508856856207078235968827529554368938311534179374744389638743727235506573955490540719257549508331973245721256694159348967266413344444021380170681266627034862632909665514808613856042236684656106554334994531228308099838134559802219643248074755591527015531234650471296516829118896758863269476578596202845484789786791272050512528474796232028181853740148820816907734827208197279669787252142043037396004658727676986354754378922529284051481010471478359304110583768059617802837509116853271058845261606839196809215466776883261953695090939427314157833226703510420920423623394400094834061770029787674647422009319324572639443963364345364293521201913168337511294209821450702175647702041574983213878660339903292242265725606711140405155036993855127489719546682358798158190225630435856915670650839437499383991933597108887272853732130231824664891204762157860099599306623247099392801988514301664718868705837465162271600278052172166185924239335790107137090223763786766506989001223263794077380967708224748643360569117921339046415414515005708195308847343677903614821454196064032454159524937049302298838017650838782062641332979445658547044350862886266980512329872387129902313922584116248005651494102211291970818504535262599842100715795505530681125169029471567272247891895466738131522167716982109534636522396050558419895710657920899979673737839532507820465575337771384068409994500150695493564313894425521497728791520997814720413251672907934560067165409184591893057940979218530174150063915427886971277789588665022172993439384260000507043790201352017258333371885650069931731541375907601174039887914954802554921265891635608972881770023317791903724143027596412625025154931877387302715355454442299303877014153138376064096818848454045664055731500142044311052792353230311915280883066070550831900175420206247113247943307030168191283574354964065444011498299776359620708553176888833948398937716192076624766996507305204960266719637259461803846680804878852413590228013210402853022422114935983826863648246710713495083011243333583821109943158897590351460522250432769637703505372101796526704965973341436687777498253401906181643974320093313053591918192155854240698581043729915135647695379947085327156728046943880864956957655433266815871291203725041603885528768618696281442017712353325327069578897814407582552203164853296922214456461935656630251018721690203788511343949536178141791461212887817495712367622663281458563074735569224796560502861365801404235426142537365215259568083904280175941812070376059664942252102632471797491416360976388588547822815713042262689069915316854732736835219306738077727126337793928413218925961459078849856559892550405682316565887528690566159111629530192826984262577263326039198681896839160111724579122971067982904176221446217959979142261041196549010230319854231635808124632836019688331608412029068537229640935513735481290037180023414974647392958750363177509608061701316786677608178739054106315518096621488996571749548326010930430441897464683300585926753074133406445802506186109181692068890745267192780798854717418344443039876135175721704942802317777411133419546869788937963853024055528995284561815370484524042253319739312397639838292366736132834114167027166149073945335592155305203551524875839715183387045479172459962626915661333162565660166174174481326720850414977657881017504094317322980569963153295101885352351527783439670599700892292626708466977989084338199115070071291343866916818642279705510946097223581642376878531005841088087304028629433580104808152174083188167442267135706651345214034105524302959162529730776217174690467315879022843174897007363290965102068995867164210313671766519385690466304685907164681566337041509352419106407129502477978130521800037353070715527076967038882445118523083510961832613876048515961148709480471695421896629499398293623485839944896809111853097806599082373592431472421303075659263756329661472964743330787543674165440537444985827464481614630649936554893102339001821272953001591673601422111402388973066948897025018220481953760519192480263533409507171907422668826700115616935961979404677731839623710762499553153522410814959505095188643703128080362246562584248283093379087578380977721359352014361405116780191615214225474087409683809934634970946547114614365493094261859564556994412044492774805224580365627569351731693099148194468174191837653365814589537971707063343557116425236169540383467289369058650699938195030955886493708036075914881175004596056775404699475367753223209046754393347646689459334421103951443675838893775062444574122121949784538211248028863731883026430155931910366672083596958060444853813995698086764214981749687092710038241695728417966752975662729170416766738075253171867721321251610224558841749110219247500576851209120474534863744993302106495242192783480607485698345247118390783056464505481233011126880969850001725379787528857814033557895711342563203008161590659701018631234181795428139401957623325121754314759643411140233575837308762107706661286104648983646608688636571485022144602463149425684037880659266101798314624098071693770695343908346762428013317632737523525977366396462675741104178296908477945244937902896462045289375047616990293296813251858536731559370438632224640782716034880312611920029975135523501344820385046500108340722282432986468530382474959117348038354635876912530498137460460335700798321159331353166745412408892183118345067598952204828983300146537892794460131947876543784168567732354584438417844450601713304266988820846802647410528297355197068988617953353023480205398663665491531304845668399042549007719841219347989226209738942792091458722750693384586880226343048669225834758394413323702428998268159612012368649237568637743128650258108895520995260941266202049736225943722345569826889270523106784794371930539069688465754722548721994216949721222979669892552999738938436594728049492080787206442864245849392969583901823053566653267715613936430432610042743365672756186868390164509875049808366357474095187933556522353901559766160329781836600407162358814510871493666968610535776985196095263540252145735337857280642660682260197649982856641106675482859316298726029463995180389623578832219730575642030968279551982264198106946925870715996440665741335217854877973059044535710123090875996775292501860931365401925889280923586544032339555908416039626548660665900417590264183071301939728180104645553666609790642563005255916762868616113545029671752901535832770715333145630760309073642468483699266190711044361979271058043730008068828841310511440086374606713738203700042424587543410953133911590981845789398218337699821800395903807298044354321856659495955521184331768009189152013886062818200720292411653337089421991788860604961052335128891668975377937094124914635428878560766886999416360330500505947486079384752371788959844383477469217718971357182231565489542135970492415828367288079441261397317157944519566313252288097129737067769287667009797862489856017397511726147204282689952925283482570091307269021100548422141021050767569257558434097164409048046781929725579413759112299776676384488546677866740679444599206097272310448738104078597214995107258690437723394284177626446371914635450729515917888468452430811442822250540248289549599636502719283840599691109104845309177216499573859494807241280877439554777749146500682524613944475813441647310409660856007821462829758345329541278006362347123315603843020430148010072766552719701305429950592458015706490182097847072328049860938100804227237013494513841312431382933520924650966492829514641439421787978382915308280962557259144970759979097138568075479665466544518538285843502162782426749288047657295495047544400200698157069988641588058616447199425902656123157561284981823904980746191911884822557756583964084855954046115232683711001533442143914809369117732372592102798748677466636998812801500621169459616324888365951020906428710998355645987039242734049134515534638313732312614838403422876990291706783956038433428633588389177019486272843070968457359430194667540763789374485414702736375583736691121951673468643172912603697668670126976018147455430447498326080173166525837737826942492636354485958168540964150733429338656186876501914149859666051720534142131284609147477842631837351893218329354291955092181868048655367186523464625393172179708151696655379703214714130594561593927859790564149523795502415654826572323087987094008712303092653208237840439571150027020070633512808615835486856848838213073216519305036477511783227910688691691680458775207385122844337821559815979440466809740399358727495039493839741655385447279094353024892258406004961379241533760502598134592280891959840869885729218295713796921354559912910388707885207816763551773100702885913824218460325793804359092232302914857923543861770686894692151419039413953012959234241666622643777429187326603609666850257512455664581439251394169613065583705492458573820127661403700385070393271104513075193770917011955790246096626267144390553551033845433610700934250170881353690645470575441438094154654239610429241763076349124780457818803406326100113084321017262954213659923853977397393614717085577821365684393116032991781284910500969042953599943334121711140236626184054546889367715799101101090087132193094433559568734660257167756060221836477777997303428256136219806755108261746639338264570642085110061483794351963130512990812585328708668043745326022501192534105310941521373118266826180907657642603848849750372723681369895701317810931867204174968350519294022857370447055740373486946677667457642580279655879956215783643834331961468141801707237240300504617485344483745430371407009912435169075542621189550074893803556737885108403880203137828242749770288516865137710345291198420828646474180010539420534856260990998755275644295131512376381432071796514531610693605904600464680790206644628940308753598605709019325475160950705780980467195527563691150012895241444309253140409263249369718662924899986915234119626077663983103635880273810533601961493880851538229348517105203546367534520407593189853109859176816354524987025801182121676509348231865764530065302743978064300936649915104658360271703063430553872861067975967694416378089222763961070680350783439144426538288901290468551222426384723731154457746251455211611085889810665199162217022583543320700890032272954603725153126515378929056610707088296663012634060202123157836445510883693828402969943404098132775818002933407849156968630892359967373704923256204644555011864893387960512781226686525091401458074734143910112025646357928199580168424491292874233160146866123994454212542712356952139822002098355274638029236866421648467429630823078459168544511868525156556277593660735150987807505289787981902079750070120821163574619913793420621088812264013568531822811768964718061107251775045214243123840233279382785997273362959140702611170486502907834462728962691077525592107774674298273240654005119227282907273469724205257631866273689898118981957905208305179077819401282771281137796835112514443355347549038425577974533561783423952955695226042775557397207335061641843560528813416887619015959269001636462878243823269090697300729789583114108935865079098990052971646059725345410935513134738835056121623746094728003925700077526035866392484624127992244303725568970229720643071085617481370025885956795100162048508181830326667069956362903813338504852795414064713735568535446353072887843088361626812779120321384186820480356939885659239737478866965949401068507988256896184843441510368888179823748170897307864651777090976747683205835944311525018626602200899352979974095864322779287401715991459097812240788724772986339207600072070344341887916584932716838705009329074643038870736843527625225589480943490594702217415044658668908257272410784008340165152517987374758790289351407470163317366700476890781161621297534734761641836485960979909189045245852664755583247095329698846155824372186887121641324456047652159034745479243037214206190776639061603848987780222774852476759698661249720631971322794607362266073320301578921152981689472494831044489372591212032527258679835399710329482040572219001855830316426316829631940930589114086684645640924810677356595958400937293225402212560465661540102553240147992498570722609263599285403900723170894691969244452791144032318292060113731135532428236344969585372066744404857519315253904288044542638097799812606685370893258583844038846622881985669691321228529270054189226442197697925392897317541729609469125613805330339661640375444381929194141648639387812048101265390215446690249085477889023893767779416583121506298455429137296796372219565122153322117053172860617967311049359057695770483848071334546383189451991903198189715931853160012712588018416862687315379328026909495228902124049598980098602376271637216600973358567558197264245115574470521997693756913409147489141899849318892668598452541196069833322850977176432871889601635962753716882421361093123925230131415219429912493889493883069413237897619655874792859188450183634553131486036106044565561416431604499619062098012303535149743585879606488512684867611728810801910659968265009630285765506910042814191301955019635435078337554699311995530099072919500765822788117726627271989629374001100871190995707286726006756723658165182952850085383620946501470052936141612453599248058251665518094566547090331780868287045320340722399886972693935491603256759958609501991675589530232896884622041764379820905586133275110209303826878825708355229175753669549458257977583695228969585534335402586134175675438969549594119819629314384203390218243420081553965598681292133953192438454907463438969945358791527442015962326168668283128446241525345835157316770870270640154539770851596245023076914526456065142002290838621340585358498643395652562952392624380511701111760423156895128762430268163324918699793109378000374933759125549447669867247978721166446750135465247367727723476781179598753434888098943266926383384223809640959633712127080215440777884876778687985089824099617238555824125667251394194106590176874005237555712145276690884406218462378522992120235242050604458071393010245982434863420606477404211704837780200750299757258605209285581021429945532203341903809325223632322980527144211760497122835248676729015308823590974831501350580539754085330170186546885827064881881106569595704990355386219707999466896664558747143374298965991262626771519830994732502492122512586745560390196249976311533017634559883282379071090807030486176845742631547484517510243359651224379768008887478283911731188536669939565104251614926669844623951884734997296794931534488376723504485080788545090324060831725567377442562060157215332528426201897250640230081077589335521291794081323059811785055022641176338185890917844749509852037137762225843361716039670143093809353012939616468697438518607675064944048571634246500599360197189418309598239634788802357118796361634209507473892156563361227936863913952985002694830965712008894559088879070600179096166658498128519640602944187052017657689424865251478411029243523917505592295448461130325072831938124440515162245987497440701942907118327889940318593171454739246966602641482251929822358595092737533833013260165991711188064498538030222443992706492024929422973065920822067566304756549122114040853896996210442200045568358952237622721935388509765897404739151394785983591922628058671288614396969916072040785159329877604567334803251106966533756564229709960494429266296535500493983871166381243958763119779664263657032514828290541639807565863240032621337681586755466177046825796867062551355250497502286068176935526854181108545100356692149710000572989039412507256441881855238969937736714432393958755655631304048434388880387255851476188580615105286667000260190498933575537370371050287483668571270298128253218060997846891307698432329644670453737127703523023909032352541973091781902554506068135750248693420617161715804661333121377667272632579366781708412145912000977137028925921952651144802786167680026411630254833815469169344543094531852722052618250183120375201644312414579044270968691623937296495409055186649763012347924345986180955232449299555597495695169204507933606977788130211730062925153815903773949694410715557112261050428582820340297297991694993209411529118246636291565625613224293600536463526925800947479704133756513456872672962151501784782922934344906193807050861397150676251376747155392960873215222784599505539459425874405550210955082141928183367342021500373230179406551745535379534287810017587416791146332912143201147348280657774618413880515004325124332543036708745402335741187302698384321346635867745934636553485189014338615625759441398332485525405548390328537058093833110252697646885629241348383002071805422179536098458486814586131862694619113581191292169379207344911664940213089348646322762129989598604146755970091755390930475564889571392822431076102382127052273543606692303364339653412711293012464575212847829375161172716937138841969007713050401969804137098635284821803860206898598839355815378334977148527980491006582577433145290564942256778711712490626176545973514011742019702759377733556244575875320398667439770031278383635879597941297035378347043798495241682376325597646920131526864701364632706097189519620439181577218442850817867280053016647183669806735556462509437363816811090930216856797282121622637405771363689393579830208734590596689213053326494019379852252338366950474590974022736050466405219480880076592344539905884466118983914704093162239469289655257193818166170149137753265681843537067702281024737357813623995209806983425772484046540653402278997029285843918834550881992515362519385250351295735970885811947517989177123482896162993718521320118806976129158365792863550358327460324848319714277543268644787606925845407362029650448465024844668787691114091869329891352814483823855810237089048657750706610364277804988789545138156576876949942705221220262155313054653802115219075243668772504658851107632327946015347852515171338194123996592191354179325049044713781500828778689278325013635637615517505080270622579432581441374689927314409200603053468485311687209513966413264534616108313464618802236454266879359868593742131262994670774469341064110772310798059219506850463414334487921071789520917963019871498601408699502852571693624728899788117120859711882806641255800385143891839465596736183611021214441755343842986264125249159700860852998270694501660562343433999241688149257825267683450791509241742136085303902414842928393540547152912702199772483592931231635844062194232227372528350190600504979795747024823889815040180368160132032403692600661026668145126847282812780478075738928214669041687784246770912230449001878767298064564797057927627645205663136013567248316101237803225825967559812521441954499398877973488597903576295853833707613779759450010471882366397696758625472834941619929886418928938035896274942611181319445290172802755979729777185822494397830743287066144122742090501211861199509042510295233018073403077968566651028541868359262420388713604890637189144878960201142452289379295303614243277685153941881191315889109712832116806303335309448153646773430011916994583458968256783457713743832393603108431439627872411433554471945343294337339978199923202855028431485144540251122953466124025679933310583299054442866407515313638077620639361586856391295384364540010330002467252381038431966090305658790969150982226588341475290801941242624561827099733896271160715404445561853546705640539078378728202029710639087230886457258393700859363272565806833566560564106892204708030177334877078504703769889883785100825049284344728470975574233791542152864838697407215816946664830087337785336966013355408278479151198467602104431388679668670036449404412879780270680174162168860962561908356271586998515608944069319760642682586731238099585265874822416148819779406340992098952179587709203738254487893830496271353237505781515128075042610768171490502155422089851389974843517488496807542891176601974074220049490629365561923530133257048320271425082278903673898993354915066313413078136294239570757900627160308834840398469538878435162770489327159475884985561245264893646449607612915412340310292678451490621003425977895424275571700508434276760406076480009446958546727767159510812041242957807350516285672144888417025346145402910401454338550959954774674974395507922385961873489197561959744588971964939728854073003704121169097776661814480013023450455553827679294269906737444150534815316690118989798401194418210214675241714923475694454644005528435481987483025056844402385078287399738552018129167912340589777721147194849829651507877920149942720233809036141907346589505963230239405215907399729682828466438050283304986415605650981836926073388999829084569127567612356360182023216746234936574373978140255209342524022813446494926608113054527312052326823494523970916261955535154470222455074951006376810707501944228464853700966498081636514340755601147103834759301607822970763332591965835778695862088883158795294931711144976731276228616991744474407801701164826538168851197452663737030046428747813254777314302301662164473692294720660555895256296412102769247342339112703334197017925719788133230760817731457410666509776332408376452796180399390668724769420676553737809357800801811453895808830256846296129088059481852753109183245483694345705831737872963767516947630916989067618882449860928835401078090377840868090004498159855460578273474067664815366237358697588407327591251474010118563400804922242367752695803867525852775515428866645614275544680253354942817756447843521908567565645665973896450769247529606394817256595121011128003861480415029742626272235634142147715140530296424077667242676974317606595187050356659346212794721865808473903407648518219986544186930051881082745622745752431762501084503370450269266096788863301365511176054349485380819991717373895770355710752070965637208651693320622155043664246112540079861558387133823154708157110753147644754892792434629760348190316547044329414371310779025671820703794394999557003065236725091560036704468638098879343555706697483269399518756172860338942146867669236199622857211576212111581146687595367673920916826784560849252705250881820533274961734500073101013522390343528319875376279198288763049149709549737375092874362813576704068263933035937725979717091098114944555088415554807921211489888765344953849267474961982020264827300386457932738458659433357052282734667499567342998286473282894984169461656182590833014550207150491309012690568630840349893718667892744407221546166003962620175723537443492613731851558518754276253265944659127014515444095630941051846703216893224783961434503844271983088271841162619354832741647479901102910832779984641333677476653403841152896306538771235239077992678964877371797836045978924234653281034135581408055682349300825690834759518651188105782696147578566092132086734825686377404696010877975609358189556685294859059188940998942224877725233509607807965028243071778098552287410788989008781079015696240444122711013954867581120578526950007177519833784169456875650666934718840643361064020745636095700812199499671996041434191306177171816823788522684090839841986317518254356497290677943421690876638930950495526755023680939343158264636658455901034955508139129849986763594965268942857243459067879272013105516165531813793969943461174103051565559944362787139246880606271151774947978815393088277423942949411688694725219571604432044662194596941849370499655277652478249685574907934845894369588599834603006994895242483634672744668292895613689202484605770889263472082732052589372528901675472846458068749011843301505599956585079698767019202694140089396075879007315932868482267250714185288244778139054656699295646823916066188284559267397772432175111905571125772722481699825260085734874001267548559314365232751363238567324004196828420744947401019572172061469033314972354083174930199471593760765529734138396445456328879341002356798271090694094682104116114924002609378952050187789805970265810055373119213798035983140120523510417246357213118926513946990428082456041148669509800347833900905847435731947325068456695428803971340394983570389770275615852484865354755842006944127777398946409852015333188634119747786050269851509655937349323776349266510254983139305005651437534245391691029910196507180581625525029807140440488834517642296787514644474231364269732682208083997858741068324441141481905403397995158121364474371455988742016782864961998098372465880195663144873109990484746553570547132104275415405479003178081584612439371988656731174292739110827589346546384744565475440795700356208639146415826194903893899174468081203061948046064196792649415211128786226177678641910457056942841443701778535217890389481125927661256872876014856819554563405320861693779970181728791348116146132854399975982838369002674953224965944272191824556938218400576694149226279028035667269065877911776350872075407977173490873195241470139447087071575144261204261135509878881109043558650577237174437940541704029157844793193265568046779805650659786995594720198738829248737576368480344649936906337745301374187802285487850506957302588341968007415342714902819675146639947513548986055029058452643800860558503147673537379223284880649074567101569233697985265562761564385325647644201587879532732889396019528600706161194167929146865309686175908952407500652130945055407677883597709067494301944715166782335468735225082019912208211145964639835989612857078668391260469155904350034401892170502904697001111190074636710442065705753950950127351587595631703325856821531276864150701364892763817972831038704872890010023145146648730964628090298180358398668458520413434289074253018269685815030843733305536147788585633804177675793586499487355336833422869182365038901869099133074603634900273536048253183348498071471221953762628873070375280146272380203065996598048187837548565874030382735261327428551953607141025506008006995831556797758703318028075710206996811024688348117113591292300301765323140554415870090217230295622370169403733033440378162484330687567130811068784910653987349169822076730982954867007767562771279117466852927594258864655569970022914264886204892073256669444138239519025878167428063600457318433697219188246218691091361079678802142341976797809095427154213784325223578011916449059731442422357728388571877185903315641226843746205079374578002301938385531930137176575768780882906611470968218568809405557392092316535680087431946601873890474832828893773230755136911664035185238165240314176835921542813696544570777278953866569976276415571737926434199909827585066518723881301118502391584839571470750886143525405110584722160866487492239757378158876445892225771823528110717207912910761663001587497016779931705172745340505010952119452592548153547057947543947314516932950139326646820662329769779591374991824634705793024986358553429104573077933192759168554516210788320602148847045680688898845517786364740150328838345915230027654280550782966999121951188693185380085687986107404253901403141727312964630061630113698114112943636737263411886193618417526325363000308401930747883721952702886978666612878075558228440340619357825572867016926540171394011522181386387656821523581967145436891431435766336286374332566207605777288936302352988504081576879413392067530744468747021476828088062349835150669224855795141458250940076324954823998227486865823453049243180717296428394591102556102690515105337066601819233481503375877364137732160535346203984833586838527835648343826051895934054428266038921647430373675396950552392505044880344402014868405805165014829079462679927206099763545719117787436483884475205524795374636628866569987779446998668336757053859242831716626388891818995947025557813780765125440579772063401198159915732067502432616551358028726650677613926667670659964210195145282656775926198109680969570799777946789579451752184628174133004958302902438490609274641789119815183842832886422853922678999935173041151472339019574519661835254446250498247502387786350031384158345525095101796034296154841221779960329672949563123817752409826317157348118969012894515686107069458404657434060228497472826974574359152474199824651582064416071490230982398862099813868328026096650527600229372468189698553941614049805728792655393434945112815375818744593931086465209717380409228707011871796416913507038174397552057108318644226442617694389656459798122929837811553654175698369714596910823517598705472225204964944094704009050650446946436757012305017450022720502729199994126833198900229557269444660976618004315320187580513329053822467718669049725324258718961611827968050495207049149986265262283500318240590788350673594074557072462313017222803773876257133793059123302179679644040522624439319538980681668381252218946523623893853298188708557665037552967341638608466295829358317103238075730929876796171268986536485808167152083926570217249052815107622542662817222324601953513326551257732597369560027904381472122662543466983376897865338135080733306926297344686801188317179612999357311255107534189327201050441300853201918613653909319801727799691060095446212521648391748990768996279436109673155630026267881957709018630838153234944324849026544827592366004666505637173623345225887687247157654423202801968045062882906083801231706098210206897881016410138978447237480930017741587303564679183736433493648049444639738803133355585148837609929707806104367913941133929502795329844002938163326872791078284226940113570782881125736302121695298446010282845630518232038572802232145013475261013015296127762235974238216143284619597219153426710753328331328838063973334010976474849080306891888269316053656496385236563522984904323506890991757225686303406478818257421538887053672645670861404368376357794748745964363419295149851718346584765985110720865260753491560763899369608269497020775425920951382839176067401809841614050248328373227458119915702180647055361073636241065451666642621717409459995664572972762196287073948856550197500130037565878607862260225141245140719637101780256468196361176511148040456465530000144853720623422769060605183943772424593713839191118238452038648830851130139812825920104052336596707337032367113477559505660043671355333761510837008657793087150428687234734601125659294522884737888082509662484562588241298018445737163186667191714315014922337233287583981720552423240004157706785639690316204716876426889956329141270964382562619655780509044638848690286617430881218475558015743843636441175025747532749486147892060984239610841748617551300972153035010460800119290825335242385967918590501185662881559374461247881921329003816805366568032694690233720424556589541002845377248566386470435938306291486793532500366407150252763071701290227045672984408182638731939107155487603356992658068307953490813513880186129733535033423222861278259203772259946078008870487968182252427518417872874488922544879805336287766737828936614862578269556874398316159315500507110113539258965134857686040421448783257396232841047411401016284819119511645008303278052447364134309968910350582657314018724112253064345347489730480110689426770338904361559699067636014755347828084007947302884481655509494924929187921597679905193657222915305198605409073278366645580383819191158214602792055281472678352478409404804939053131190408224162810309216446168205093074122204200229502537627869865196108884690916167014411010891056215958791551840535431454830271818923911578166893622869924313455309140881929445255966753468702228264757974309803906435340846995694388753797399787213498225971024411334335081285813377124730470333583922151471780798116121885417817143519874838407527226000545872813672339223237156455009181494261417373122506101298462670239988608265736476599657923561392281952621857823691528397294503980746681014379273521693297322978847614990466590738033269990638056686582052518798355113357385841325763757443406969852993032419674290531985372131153938921854158969078821483868669569804994096778410179390816338121229642394547283903921468782261904592530922610585374846384127141595261302108397312700797990466942193074740779798237807302052912670831344286520271731283937207463983825818786724546894467564147223365512367120231565454101538478794016127156470039943314608953383971542344456201806486039501510644747435411143198853475946000150234093706412790420196457877027102266334817065598322566151488839525515727435274527669193954368683318123111136351249132188692803399878792315182307262820954706723501358558462647645815335879701614850148644727932562797825448430922801393682158579522096653361877325702407271743013372041667222915081619911510866346925119283688352862737872802056082519117953403400883148794728575262272020296105694774310408571330032654355639213818518393925457433010343852883397036438362871112238272316340675081745599683389430243141237708607959773341199267879728874783526533514441987915437618440544478823338268829530007969199457699701557160995352310778613477454294077015169788361423793252805327278939856757119198705148676393658189765059368799169185016362560553645655971557966159766253851661074476541995867584203171551692868215569100823731152317445513040479112006899350139740837310012977504883112733666964643444501791275194429763998756911942633398921271618677135821737932408144751668143646718795916033199182984546137823788516029740822624662264507766012924618170985475609974211567961972694506922010245229105337316828430211294775842753791842405132786514610801495517636526325109469938973860264216271362911998440362028943819147712385101174570780736334864029011811026675649093431752233733649897225001771045198683706621843021317132407446809810600987750345602730977566485505924732756450110272277744907709447689766103436058009317392564355191709868606900136286264726792174236381156170936611723798660747655820617286095307162876058832865777397922907178641435664325846120123893090320576862540258895365271623975735114500973784987654377405588886203148732710309179766819251488369937596537543958804892348809774429090262179986999303063484068702842656040221841878380123314770463768045884303013283133443850983697868408017552848249751163268891683006454356428143356528923148474283369135222778567434385799081119970845508211816313027343265297366875998641477227127526204885983793307397934026486522980320495441031536903511747338087234877131792250519224159679633212717851250640069609981945708014178594285173649074537018979879725115484079797149861045528021678722167915461138527335516105304324734754537328202903924083747448389057465409782130995592810348333334869017986468426813902788444652935752665819005552508514564636190829688517077308775002854837253586278513072114863686656215589125459627083442737241057471568691231590833310690027135513660038116530954992799214442408577733814496964726100915755802446043184651725708228094459702389579076441349100285803360441131292715550733366406764271593250641626224817204180704878114219087961734764506860419775645386440305553482078815527334862607612119450345809205961165921216609738049673453528231651022114916076274476877592093060891235207225120200418019963321678731939413784194901466613662098715180176444496104486940790500019052537125448065162957982780727819253260017179678724437270787765092907046693139093692798500420677449536796972237384895531069351852867775338781653785553113725358793053907200465932323748831384515192739873546016184726505010590914043569458074121699699074976655866874478751573417293026617403127319299782844261023620775642574369752978483246045232084511305637571215920542379380375165410846804411662495007724213139250988512521575132305345383498860539716305262419654035375869123708698087061556807849107554632269733136953889123846489921863390435558545404360040028372403835446127978034553346877870352656050128473919502558703332557925821258879809590492191123495820994642412673910087909737374435791743536423303775727953127942772535922257840739894636778971219562517156645106192117611716460601158852146718368421105006566728660611525321397091271417016280255898523997738025856286273234493680397608441536047898127189832308977704571030464947554626461841978471122008677120132160548532425984903761517447373674241315615617179628832112184261051500979860431731200009410001067906682127610914754300644383437404747708295412120662409239050501652153280747243127533072834137271867151573782250383076079286911913464657933053144765841983390593574555374847731260449415249701195480230255676644098382934459178505807527781753228585000146715463513732593158877696700499070098989010550350209620809828121317127125886429975011684948516226745067136606579553526762951309359804906787871003119360960873695110719780919020448792956679627206551778627819223197526561627938101940520741920856922426946729855772828054204226432453641183264155424777720463966155748777816894850715051855094678725321413402559829824124779998822392946725076018609794758205628874898758500741014196936759145114897232108394029917708533060545333162744159923210006402006765604718812966364027381742828691694088048173907520130032033143683127775812437429433280678806753663603306913284544105017054207040857991513282227375560453771205207043932531155795757831875953323910791068967079572010854544047643313840458540529965548817630678277154984916827258937850441085863323558379196093559250037924945303167064968697499608363708490487268999300459722285315230689652797627522051454805173537024678013250268851969283302956047944971495586924006822932039701093581029597742699162466931876386598413313791105847859197952486281939620157843196491368038605095403633758902751608779725541103760337903198010102885457493354698499903386905316196999624720772828917928886770085841018931929287522965966250147797272907051397288659750591350814831075504838156943324299033933185508163336988141337009075053642300781948237558213643273536233305831622595484230993572877781518662327408262335609875938570564490964819854790499994253398555386177512309732336905383216071787221781042900372357463318469272887528524475977939672350620181917300597661455824833952533468110553735044415749590360978108626237345074944919122829632846503441565796898220498425109301989645438446051403229864310392046155558976815560685832507442633420257702211939314933995065675771170751962840498776764200599625479382739589096514982976343686286033390155647699457938835403061138605659156045079011911165378029381122926401313082333579741426536042500473303139730756497536146854307883744345875566409012116198239696094455182628927755696314996722837167107939254526188864061078330410488036749218604878081517474770310539417704491994428434793208466059055638472829700347064762074515661833777307470228911668359313486024092988206668939904532192219635926856617187008594436103576722171394815149811904102079521055198633290415465927277663228357767094562356056235866316705963777950252383747489800514243077882619001035935970502707976844674691841398153918992830418482951755002716035082376329502236783178006136557698507201188133599200020407138380660454130550343063475658327149060657094960005276200923212838650893415838623828379000520791645323990617218535321090012025163485110554794898704998746498254182463110760430019860107686919960691834087653771030309920483536080231558266919639865328353759223709577931371144903918433697696603673851462394608410886872381825564159473335344110834706975625108881901456297764143182575961008034912099889845105231088810486316632013356871034500605290906472396871881677672762271269870081100776620824733274812377686760002022852649444903704636922494083208174981391187292428068115348666195458345799793584869642472573959913052535724501498598427154071209022523556335145643732815022311433464071436914826123178016839978250878680372359966954219447277759883457984729618798107246842213914155905015982519685360234246825000916046674685636419085146066539855778085286324518770038197432273532980596007610738868510085158201578775670122309295486140226957682660867008608358352366079831723474621583337127762429270566625989611764347381786361705399930190192276249800299955564386477129762018763329662189127621854614935549996264002281137267696379571971522223957766993488443626429166879412015184489930451405162692407694691327701528603176429857902175034143469111132178782370353415030576269358600317773350787663697577894235866095647673217148505987218060686289355973649490947084547402822618905402751095908708680163238511676011101009177115931439008277924720394624584618039970632005990491642629582241153059850731388290848520750980796808370523953073744127641747226298027628809891385207036997958535801306548639929565057701675249222303230457708179603460434355219589677241219076194235989871628283245843865894917392968175707487028350819436836484365815658912831000399667266903117641566294934206803820380926862640704872627927895095306678291104794178401885634907503558750672707376130521725446465465862583349967398162727443266666203281950831353175111250402912896703729561085692981372790362520673577128073630697781466276471624166662921235976604463957761076989587052059153504956043840262789845446575634422598011463226881752454604769308630842060878165700214688955187596056722929212293687541724404301992123736141402034405905114483894825519581703278328008790476258189119704222061149482534196378259366103678929714195626104429043197478271248421231256866388229806590288752445412637920530486510180301102672271784440170184214187334245241547655373923726991516156352553449386477192954216294755208896724873026614791464848662856843473147266960629408666077272335532962257231696942713013325351808532743297057432770606740155048330538147629321702499113326470045805622516337477394909543948658181097448606563589723259533734449953860975275284687676740070445312654827092368302826134303914678380768587039032980263611601727531206360256161552935529961463089346142574119149977740904303102304861012359699995341669192553103708803922254772184954879911810395032466502772933389385927232640737740637346886773094409586056627990742511172993092374746306840867941699535076316987050963945824244991031013532501547196364909154109389996657354490543716319512448987238034792914688015230091962636027028186290860379890803197431107292679392505644552792775888093202246116926254767937591011988147339851493021966267811184504903885971980837068340430223879300882187151440607794408462212986444082942899738346941895964246168622157817090945209574308350404008602903653714874614931261512710249200020267897399253943362216034387889668862408030540662952823637060537656360790946428965702646304209227081065112245355060843905076870739954613812931882892626125337203529079396201945345552445467382465486829729855706455067174073740699103572084689818619611372052874964685719316395434992333854680335052665466686646015069418842056797336636193400225342814366293838895327587017616782278869639530733729689154858853967533092909540012850037389293814361723006284325265901432468995153124612192631332060296915917298745847493648085117682591225540419099007836745766736700794731103709330664767728970143285622143043958331695835387181080781383173592157528402777523528019111940705523150734065002131669296035435625385888359334693582033117073965516006842751199682290850729666762966269681095721631551752873967584119476722382096178118160715953169391183533657262301909516122420253887862732235466992403565098392316576643017964744239105698695391942713544978295409051213379664237963732696743906374208062161853992397538695837822992510751624560557674299687382195149311829669075589210740885225320828832440068646378294374779685579881635876620397986934744479811296928019392203327617017258198330394380619313757190611435845650025602510095638005312882513563384856385068704092317646230853415686812421822471087069184824905746995738520972659717280278403367075557539138669016583459932705088761477967527134050211686020786807557136018868062935851052443123780986824494136173507083847577739172071972827881627418513205147611552027996305973865145628754926379734565160914751145802950609579698827067285284676598293480622875491944390810062840761160911548305905985194616979083509338900899459988312048313169469790369102203106632994732851645704896975584671918516826805088793705035048307376042480090562121486886001447011812986076900041411973349456291394422977719570222966303300673265209651431511815986622572581277166679745325159472935612092391979617653470857012689674433099045289270076613417598961769711503405647560858640269976998377191430713994820498752849319876476457694763919074012599787014116891208778422032215143438535129293388186620275961823920890735003665395975848296251079782547729642472216875039510896868402696638262315023288201927614410152703635024258449546059479551131963935902525430729643980709108652312296290217092290762856404085778272558125188950753829516176765777900007228957387874279126702688358714860134998336854340605511138428244416389404690181325967235511469663794695347797108211625794711503109425427519661370603761637969663416499416058299215113678006532011283382083264378887729954763963635545676025844933212466909758100117786585501172710043706528968702883570329350476217063270284716459721202111671841822249423933557950608222206856524357694630199490048670158052569508510079101011698127052898766892713416828273342325904325461047766687516475910940617817872936236051558413870225075404606799811744551519074626199806730667686663786405848481762092713290178014263347496004405889029196132261200684726115745666807906307121292424393518935554406568348122664426745329457894300812859880832412295649382220503115972948739625490561354733041306004350905790646546384994943264207239316168242863933993323238458230656435179901470912168348463731065953096507920895573224327006826046689118494013184237387407611022657102212365559080669019929149206758011241258290415917228095156899437453990922977433936657566419163303449831938485758468922162048144407008140996697184487928669024465110168122633186902010849533156138252687946626436236996133147277550489302604918319121054400692266976697948259875402387886869792891145728929494686926700947117462804737399828858291178363449638958030157796384885988861982903765847116520928368254994951823223757626834059153948738182261095947030009038246664336815426370509011219825597220368623217994427717496464083931337772438842891674176572154124174758288756902987016483716898763080893475898695847827634832265670410586540507734591813273275086268635594449036490893388500561675436654864410770010688882977560982019198568097488515329507509543646031880362984913290031611958983958405574751079272693085194523775867523696292179509051268103701872737452095847483118313347447433688061240824122531924844646461938597879849892209390464307648181651430896733068319247514666831258667252939974279567051367137907267064631495203486604555306791853768935792416876829676249426184203719414251997945327355147561146892911667357306817462587272637405361786532795936412600214867156852790722163998371705464656095950725839847758933698611864480806898064962914732928978276071757543292879973458188741932242093833178462574031669636692035702540229338483961232726085052309762147801933494544845222112319432096822288958936516200306878729898878799700742135324237872458772471276191847553500300077370635602010657450155385383437975205427876734857017081676267006199740711995660651527649780541694414227889302228542316661198614421375210504783053958142395870141494963052589574064105167267184019284728404011839222005769470687267940919651954975050295841074958560412969102004947343985113650655368699319116556535364381171530747769571465059309562686229204386930197995180472406801835080157489666865495964795015134934725369542350549739686009892125467234909052806272771305190987055825998193000903171854369467187068584338156130925796211216005073363429581616180394168927811310770198276369078690750679028003305081609989385853517572492684459658750396299593273835169311017432617272618513862131406844039960052564921481753959990447369914404493369570494770034851433688920499764522944614497186459032199932408013017354500808681177545548485930719225795708798143426067392966389920720644528979824715279849401459267443014655211872415051265160467775826009046971855021728038436175422651906621518592410086339229283565576560000050562936839144313445832696081699471274824492661983795663618302362557000969280930951545241274498435053734702526046548031282282275751059191515040786610458047322439904736540812495504145405902395147683531346665468438318487636644156460650264522354139081117926934787390422323443520477266950125084622241106248954633766977825468855125326190440848895953204406929629624256258299907969349481302936218762530739851876737092850431576783141934377775247121492701435902170110542481117172555995210398119727689213124647412943213963395705686693073432413029534592198592999797299474216967072479300623211488027892782852659075017766186022090260425968798309472917948585884842524614421102612465882565367348674887294249130628900283737713545483934008678366723262947558639248993176600159699333086430945079778069290784968024034568836929439065599600097163123022725049423114476708516925563546828001027218020675363664448374319723196367453384954573302023733525304501071661103395908084630155652054833048122937084810639863399196024292174027227282068067283475620918234425432054470107031761114372008424640311673032848752519290044280274035835235281092967552883412958078754086980404051438949609133921225616114536110565777758274934033736089328155811575415887346214943532051922117661197635001152377052534279723265854384648597921343537856336686426303533549524971160219918572311529227199988457224621214126905830375658013242858561018442517194690058619889988913678855538406569078896239894056010470966963206363137376941009063548934113989099530478613730198549212117624591091352629784198423832190781375250476146875391004328718124900882203349459354066866753695190641786138882029650145524070498052278939895309099949751772269095615085333005961373919476095097093277408995461190336472271295010519200356605707052536740477444135430751151853873474737661548624818013611244236185543265407157017074853667585555614208649128271413321614403399916631142029381212693296097048011394744591886848506547878239230906412244726285344322142237138775591622747819925328853301876350543871267932950332635159416483259779711810562864615255374674289631719208822829113293454279352509086287232953361836568507442755499724280497565422435695925693533520492404924726845970127824729227783276970439474405336307769353405151287702114262052288351836223975354185683693140386408752465731727254382102788855875158776628040750643836494886619963991125583614096755368726949867854795117807130805576083360385888445418721605420039900862493442940034574283917542952628064073621127706066995357478756212917249392258738253084628962264827412748420877797990895793811324555451000755481726067066768899460126196609655311968048561481058585440665454269350688532820001190586022645813394244736830839726057942995013455583883849402707203222521913616282064806191213103921724326622791204552308204937546671882435388774806814929225428220501673025316227700448396291000801903359967026896233862854654968912341502601132145989317076385724394418899512651291438617558620425100844607387950490513945746995598508071589269485264960972015125391792622229965683227114061414327718315292044438516342221612609591372851884417464457804251123573800210868477441928870076425440466778582612119747153334870509081943490142722248183064218524689653801015206751032051482818626284690352589672121108474635830314204954719046341403972100405924137865815049249049404796467995483236162318034185639005289891537808851688245059605706403219887182332829638116316169803148956851804393883204382951519460936184837479805928122083443079556401737933207193801046675378499056748052675201062040699832880733512566995642669396309686120768036213286347834101422254890701322640396178767922403449667136105346050886542023819579669660472403945691928552464403721249273421324039769261944449528308820244402746401942958434795686154777603053247971027230220064695895762789567859433349013894924979442527445840297247761028165000919690742449770977992937530872898008563613482766907254201294268798480512185180450724350905247347692670813884392032986028472065194542995159783358334708505301795658510032140058843015728012309139449009437429473758221975220323202991490659803459237297025880969512251081755394661850095737213809285604492848776212156048488787414527579760554161826998575568027416268493478851296261375104383428176998092159745201685088916979951310840930829319522574957043943808332943485448512197813674747047803639186117553875517375818990600475555441342608054747939789273684915438303316940984139169062071352244126714446806700774134965655925608819362851987803771119531907497237553289248199891927545434261165537591955783484301876271830745689416417019027991961747142756403454111262232390647754932000477451636082870951992035804595673837191991621637073039761038338773679044203566572572215743158032058521788798288226420671179519947375009980730550356342757338126501295948281613663938837076035231303318954754162419196754252613059306687410364552993632340645810986645755094111039181067486828789362937065869872683723973779011537878256356683566841873095611998525674469838366823316767092726851770246609218636790768473398103745836730243159827059439353519929282639124942018517025299361633908929602213752417136450067013322142093013184278545221070016550449722331539077586690296843102774322629734028121347108952920753530881622036636716129693320540616362653007490550845769215178880443364893828133366233681512556807862215672259874099761876888282706688111892539821116355551812466597421792666306431214808256258101261725833477971885418967303308555903535094807440125808010751678862806529006207446783760199579368598215245282342220754216614383389466891527327919564865893567088786652003752390540267042697408226218266148973954791286953946078263365266606392375692370164276120655068252500871204520955856479986713494148634287232629184977324910708035988213601763918953380537609415031710676245770580503246162304588042047275729840672569839496740884480148843824888318832833404687483636991753673537881834655231658739839942295566969758773592086459286554873767535019323239527407175266538465323403678542230906215224574811214800016004661211864699044889433348257080135455470133995138841521016597173078524870791682216452303272415847893000505615615477715918675158356508295472137657542752557546428367651847537567150019837533860142638416592432841578750487892900636661599005984409150517419932694163812933415576528827710285104608123758930941580222344062909165004602758021875858352992843385649816008764627280344398107236890974225259349051499973887058060142224645633913441779667933611343243250996552799879854020808707766182223186552520903942149517910583688108876836356670585683373639369263893542980810925473919097298630197453553265920996365110552738731499600374125561578270384815321646704605251901208704377628110050065548211685968753640682085752185495577305071613295440551838794075351372650065217862022703123868195317165929833169297625170832829019426253806489969674230308511408968689758082565665786207157232794679585945606743030584761663370089837267787238315315132891574523940290207298363020053210647024575303257135697162786780496798556691248967656782684675210094785080589920205462563322879550847593170702740220113037527589886672420800644182194720606367464120745577488984958877388466302944670500906318836199217523678669933755386925978917743235874761676152975300288702610658190728253504045974497884198977034371067422481174042712401250702974429569985830670478908904826340181580552465727421739925294913921932539856329683612529349574596430837488194390514697225425347558489741329267121755078292331740079008590041714839522114647188280050101818920153810078282245772691333165494070162519942900646712593835391751793226467123414207609573085051994964376728821595015548498203585557315891895273112993229988417504414439592914982734310081269156201630277005767848519963607935639453222169540156000014376273923237847948888680078348184577289030270535748315208907040751519703725514726005931711518074482450754895180260344190593396015297123673112355889595003129882543775520768351172432364616807500422751735165878749246746276526517814261881746053759949664856529656058682289789452031380995236958250465604516508252884395782080192527298804495353064936168742131676034657468884417568489616528984026058657309675177491294195470885994750417178880191339445615148025202977091275222850320079283162814921408574109924950052526995452256198050967676150258294847435259189808796346618676561111550148149432274419084483281203006831934421646195356404209274017126696821971733472120154886870928640396469300241038418305881969769532412811681296053376280909240802351147241864641505471441969271780657845620642320210800402920966425705408011147937637889141560290629867982096419333608657328398833251816705210578083337175244814732939033963708068070985692323327604966324449950818944504706476042563384441557005734893562231677841703768744357143282118689422483071706016847684544549451377468339813831710803917274374265874033451260516961882121762332240915687323592336061265850328662056409246467230901269792446265565300938231936767283500134348759663555801968291342863391858485707854998451465950059514901574013568589122750342087852898494787165946634986894324858915341223800205848103164575527598110803137377927274051041371515273177959831719151853386228997524918932163680161406645817518632924132185654993582239454471449428828059403144001397771504658607488097708636045756691007211115159990761646806985788688361914727024994430588868442872903288627525309291185496418273423262155547884166876180995041285306174606327747686060055326292546490235626966351289977929733016625559886131370406296104851018552503819160466005988093619976167572166357598880474968982344335242096532672151635968591405402486687072573245222943037562232971340859366283171945385738731694936888379173699576417744047802083478912438815737249819519215401532370733246677617583810754720451330986090363669853688984479974934263685359928816509808595115514637687147583505115759495102742386469967503104710659174892761076033773072966717927907220383565970906494924554327919415563142562262634990535827238892428403417064342569624954620800108440145727571472047998188028383710407683941923639221071894349377825930802916184641417589598026858211263973565385213245748734369737761651343816301727014609157302441403376167093340155159232303618431285081609533872105745140087635674758656409016304793087421775146107235813000706737620576143392940731333809405990440082439656612700925082023692841290498611285575416933285486815738549704822262079440115726071286076182480443948161060918469429285981040980275521499368612875714855527417462051069184659396634025304084945034472848503835551525313861757031682141269503119685706505415066482630134963905158552540458962769923139780546180476184535482318879596696697120866926617878675957494509251764868978815093243517821366978857673777387684799282769218893417402720474869118065476024160091140584475112580701328175261503928562302564736500849187946510901031207346652172508522388355737708639807812391237651613170601549846837824704969427466258003964290011035691143117748443509381141330251041130267286890545620789128640350397834441899049734084481735519936511290304366068668229197199099192410039736718887728734385658735629488294618949995269535669883458179042767239141957239196003825966296624428685025169376557812636859891851873663088891550046453479624670465114231966355306271586617027857344558278248229740690224067060968136799742080336068318232224394742292391315882846822806552442299551615143470696096470307040381424418308217464987405251664139373050341472262657503735980080485893402723374643280860821845228280294737577821595864726613653932702870609275590549583750646231206285674185440888971594489471116945173535737236662883645120778769020764265405339839903250721497308299344626561055448071559461655726126255554440177915540962992042134413964099805291596875787287177675197765368254862789732360381996576303061558174776149523218527858459215746838738053325547664560351292405196794455370119691876586832674129844388270715785676712552824994864071323463088673404139690814248794175140779016600382019220885897261408294746119291605280531839815572336703250150854499862662669172041297067701645211432928743838253339654911361877974427549898416596342822812905323013452498820270909377299438107040773889146223792073385926545931620879770225909257567820272959073381835937368185130168860152751608074323894923572334158065763738934052132077533987337258370370734814619684249072610889203552163369284661364175063912229366466711740263279822210653470380889037837416064432884764710302043238859059866679536010178748254710167537982380013121373251937843290992345998075084968450770555361845800488209142612843126008019677365032381434728900422658742648159356148993108090633498909418434876474944689287118323154412729496774079281152045435319093851797682780338227549694806749324291128545526557400492026011137572224029189112992143444985970568356772973711795473983843604864826255457125587452949465485732074255147183441724661569999696657018474966361416635590194061262128185051031747758809984844005757615244764237044083433684926467714336460169062285119382548272538289130454763959337503770272347136932984583452790341650159241559470462528918858130901846164458785803567347847947403464812214563931409910337135037713204924104132125210034544204776533656935315587314774102649685163257676171706928288131996839977261188993301116303740811549457055696207362232227114402081263919271488374591216490303801039971145416268681798223767320008816539866322798243042647315539143687179250263445229894525692554737334025810411332873089726730750188242630060250106791597375700024350261800140376849324286074158694293573138987765992194449047944178697557960128666923321368035262841393828234292462558103687105097116828431544003597433215054970606929171822031573341952811324258084168840723543933283960898658982647149895138040404180001912048373091189740876652690556688966521134202425300740593534481575535380212802276407929147101049733687753128349214925527967867494724318563340501523046972784891103897442628723594870600960707371255789342071586999773724640626155495640671678765405541565720192892701023266587157085091703842585063379101518309085486205100111242015500059797392633212899224366505469494495364404541873621806373473954470547404542169641469054441438279777998538557033180846465673374534233177126521006274874952858920995521530111266980570859355748974398956863076502919591720510462107896334761438040113349822128936618587652053268874223272619384826274000451532172445978869674927594544426035202561752487926865637642128358622561318010471896840143047020086855833481491488832265018633178114463651752454220739564076946323092545338428947687989222292333925990264486088413316940945629308828598891245665215165688114144808358293033694463617268308079088983241446838428738942121869079431407452694044421863002633323682997306089105192916781611509499017853054377723947259983115854990067649447891999566603423812940927178728071263751983517144585927978769340090159594818240935432409140617116342032393878179933281420501268542431525868170872489727560249616079064185812038402526451773194991525241823434395269837115842739170118763033092408219233892239151146551655149688191837734162587298641776666315972101243217906372765502874549702745641317867408765590265748467874930893987418721016770187705496715355218171129859280039936825851902556311154368795069080433921355316714305136860670578876702394072537654474695319395814366212072104996453876706789950304000715021073855900266152704966819847747499515577149934503168564137512520328167412121266529312347427472392494769237276713094972110795381856861300776112214207259831876125226112832070073141422049982642107431241235783182885108855350766934039481101846377889305652993848789622327570439680393765259829923494609760363531353473609916444013442524088471458645331794623080613374530519606820539004135872437296852510840641812416547691993771439335921758316417756165833511463052190992076072781212062549770727482124680674233194448932193746941971460893568272108951241889791674365154229904877291349557451236949883727427638062698335738552957379228562554653098781981140929666029281179729981649037521490090855585524547521057011322163525047383415716261181547448676864340248501638142082681999268921092558174169181228818088438481980945509064359574754893714308126515857019443630564975435228415143067585757212219071001216387180879623899283188414110038158394900177462815779904855888270934996451044437312244277687525376116629568446835526284903439981194323752058742658831499143658494061765676237271503033270107733384314456119181662992426734793950404653236034285751115727049630192397463226123271585040168188041399760301242524275967910592288755194875327911923266336883225522755742165838951068611324959679074614090419582790921609406021570099889208219042043237851468218660553946285257628069867855695683090855242272551816762266130204156933972642241271161700837682130339805468471172343276501807689040328246873504995202076294041044544117231483381196063132665820194601106445748136519236535436474810477411329346736907973830802991829693489051365011573730226418845341909963500934487951668874355068694128839998959511651661790708198777602016604382851458650424737556154582473662708300699521430793375693211092044019206478613891339397020680961894728566659255603841122462316440939369679599532521933590547722905490902066156502313613904985434710963969179105977179720145260135913420448901554409944109098672259222878743041048549051782782849397891909361441205521831194626078243648110611369495862542828632506106326378054953308270001903114221302397731702839498659394070947603801369461902035556086872562768560819196310855101327262081761956428440381687975037897112256595278188291923466754039751345717067399588172669975913001934997094027260792075038611844057371521291762815983010466387535790482766019436938562540954895760902604278266091265321393201181507325305237373845513557178081231526586240011454344228679930978411078237668997102214218556340045609101502736934202170844985938673025320310651195674215388672103515262289775502384497826387284492467150207707324441882869084943155654714526890501460022381123140569739941378449039297533868754027117150243025378418012296785949902404872619730828750981194981140285988539342030990705632980992256459214258401912172626443740441213466359553364978288482341411751713656911619535449521444081092024411647343026311019427699621494312648445606249507306077743300994947792518799479830120328345270298410212100604759566177979261062815372043118007855476570649913184876770171744724739643481474876389171130232453217164480878913817743746605253965757310026782755756428675827807869850282481657076639048096209443294050581974320453720416205845042549194709624514531314684830771663152966307255679697872442811498190122266752129492611120081948596083003443970347453524049622835327195180259091145292529952472956396398164423612305046626124701903457899830111420213888483997937735159209432559579975300143637029161460765496031137593096364271397022094078882346025225433769517803077929713759782644753810639616857837308284508043720900538432604098429978680646252023430429942405677928502293131088650753141091309306251191144674253581658183225583082521641388523162170227593736060848495472950558599742063628309554864148258216303836689288659302264532537491170034698782322058138225810023268175997331923103814541515951789097860231048911406630859058403405710667213234573453173880570095292855945393511016182705980078529518338573796922089955654371778683431686667397129635679298591995403439984226587966155264180255753157122937463781825383951692985480435447075550543754388105997720980487742334924767266914305620572725829298939689987584852233688445096571857254762202806988359087980358710527620265811194617082970654400261695456416995213358233487701712253202231278239025232877860103854975701912214490895562754506610038751875654473172290610305466320925341099242112650914562458486986537536129255703313786507719002932072441965163509785151285693468252776966885484831892721357530033514375284332623729350345094628853150203109133554225631548572768745408684266897912086818914077957209527548950807124323853406718301197457269021953936542413874851160901758853186139363041740680920452067718030745479329015287204807224192219979500519041910624794494475896388784187070045112881877911393437057199870798370562560514175945835881924190614514988715429803723488249399525969836765080785762693145554213967055197336320600581745932021589108397695358946960914591901560367778642461791526665436206763689394892148456022069883897458451700308093303479406797143376941665943328829180900888425745747505873475834425512613033117913670267478897465195657725028012361879519950709723824368313132329683685103101708983809075950591103570338084334873513783494948743892671659634146971535869956314413813821023581883876834262962829491522881609957701242385045270388331278561390717194924832449857762012009269703031566825726131534699152373525708236642737286989234115688562239985761380053414265635231988159051100537066369670420878578589402864703395801073685605681454974184269070090711839291644681736290695045544440475379248480672364567869635709602006415383998633802721698221950032951409342459438042082427493740273563660011215878143692382737448518783379856684769745797375944552267187810743838769044170884477174928193485110907992860255970519521699039328578186444355099879937461383811731890028586190458931047413081512676836134637766473627231419519107673390924423054585914276394989142751690206764269084670115471645929129676640299888100381430885155432067545564667941089433981995866566859305388657287156931939387074162229031984206146016771642369386503574967600526863534859332946713440663699723517916770661098813468287225248280599936599003709654585990480906817375466713053436131978812484710287167630287696850912689421909789743834401121701525395492575906961550614415134657447457563645776426919899246774244245503148513187747431463358692171187181552853039561796201551198644737452055185970734995394046325629790076689986348032113573677824307384741068201627016969547488480211700780939782352010675687285244957955793108510088885011762440137488175239032677540862180508366826927162166479833845803029664599208233064722475605235825737550737575816287216285062318657643035729552267892064253877954879154537667492157942627614974082528131131539727442909182286445945762886777041416084230472176461565911455277933453248330382222750225230757186029833057375969537845605216918120618475521327466546888233543526733769592604763717754118059905890171466355729324920116727534524939253118770357878873922993074732654477951189702263488518198554822190056691253538093245977620273675838524111411359231137438229331296842795828409191096316613039131214685438456018556425281021534909328926009210251421234793284551951045343035056688392953822158382872774735106836869450778432816186289697899690667810540403878609063383156639744367005960067836023076341432689265617203462243437627383934298236089861978975323317883929371376718994850355472082212803443948350740223850332098220922734065440947095721695631505063345914291054096023464499090779773160873398168859072237947927570549489649089453554592529596642240572301322585063074445295455123861136852490643456593295787436954991552427723720986043880631100921898085128686803451381421664591941455939066593476936322154364086936480810553860154491373554398383871644132255236340622248710968310018769222925094382486610118839198369493059545473693426286520510504667109017528730490101253121660642097703183206094932251245890073695228181321213752995502256596443568102882009018706103836852363217193271263091234378730468883979590559418415300177592790058252916435855676441199031480002649221981604050445047194116864709126753697785615937447515622580812252260780053894197918553400472683460653408700524874548222270621611738868088261101910087435604313221570325981914517507321374562322328630032031940125233377529556201279325181857798257111300317867379177521440388321036154129383786188438388893610343592917362076920767840916577332269397013944220147774481263679684811201769564190535895286449335605423719461271920736576739683822120277918816304418762244455345590782473064817811337268110643171200144001035985076810511894883009597185542871194053199813157034051012560591478151622562984404963008045842330503460866536510638001320061139001330057003274918621767786749495426526858393640685159992609199617054152365286574780075968491658130902918043825375798942691655979201946437316943533618187244015111428116983697626498085684912551751843853863402368338619373481306537874180968977113192182664536726544630570406846480300330342934385696612499803197753168570207737089293088945388141383340423200743388794859731722488143378685366933859900675750978060698051646086710990106959829896957920224316838929891608846486135933465188752346761503315179877482112183630130761703094546266988184658075231150484372307589068016888072187336592826058511356968388043831411527106595083244316915822460270743826013968258776314446844918600941726597222546277416293540224498049563052218991741069685230139337077895398838463071365587742580801176086061531783209748221548197402856752909961140507601229435619809610201965161222793542953414881858043448987292980679442205813906741397400729430692836003342201337780369775382101951214225069020109560554148747189956346609541181797930779332581979583111448165855316285684273167263201000174408023618948693971089396479566188410111710052471773745355869662670083932448419132019009107191462414475623436262747372088045463510844528087926450162353565629601458187992505132207637079325044313090638524597505937813658772338444082919555441027514219944909362462517634223817733595655328985682459496283255922801220219746709425313274104144234296240637841026216107755723455687169713755189575632677699646479948950342714724294714442847129227553257581513851549134747347941514486501651516300821574920522639252996729814099736771150344118219958545199591345474683977007874837049109379782324442021944753565747638585687379165601838449349291205997763460968921386505559259422014125419825089313700694002104380471029510587469912922924873241403932349636950718854467779129911598680124069810836051628705917975796003130031524644435632001881417738187727223843087629412028777018554853887902605083747582774991201964218917406051750855067574655240571141478535576196882216077572416539614724550643380437327733899646648484116957465015786381511900556051888127243129908609024196117717778944055805275515800562429188508660953400569519535649977370479086102245737458980592060342019597326053468108349715768023907028462224179461873389071577305094338555575313844168991643341616435239518554322557570525475128823748711924729740749971237414336216386392709826969807209581212164490445805784525276745628564837858887681886533721173002823479144563904178715338659938534952443986451652426277612884125598313102224986399744616777360971099525080920056837656943086924393865439780126823619858930124610395299433037933360284055449943535379330824403366777546103276507214633284856696890778526326432617251126851355623469819390217848106260360207841056731094098950898880079141357344116233860476617501966508859808797048191749454569385319364722011323198026030677043500285263515524856068191868782284952209159132272157434804229442514501743710700283882700351286170243219519336609765688438988159955553489792371292189368848940813483691932658838038160860793510132365327688390698791297279960553204746564205538683440398667922349722873814105503665598096331459272190007591172909463800868591339095832632730655478318562694425972227586561624023657468855997563390948350193970226396860008271227537467763874712457911343415947262359555982692904571924799570293601383938310013927866586044293898220845166055744190670727400371394666095141444931199297554250118623797785948529561177368077150425348385289536801695795104631633205478944947010142844462661144423257019139736800221998312334429557625191054720388393776434072614690103057914495056171789425774985711439189479435011317867472709144135462344425690395080502250647704780763473504664582513544709277036966022839831197405523331101980119752583589872445780553367074985761580922564991232836159478024962350894440498035412621757675932998488832427747049105745545304233954167809367986446854895000682199929147079916433874311434699817420495464558689771732681478488900236145870804448317618590591040118557019693534581718727654785616466832101927581061222887593010638385859639727768121082287221676380929993646727423059154337512302652646993295832265537052356619233965319598229883976280832830967223374675290855306872896021264822060715633097891629322959778552039961263701337756719068118681860402857057888301543497641516790207435649108219071577325245185516514484068740927326572330424690792443890848074488338481571454949852987534701756097869223355947721832462202893554209510055398468320270019773693850129726257601529543588701767595974323576895988131036786309293372674065317930090358993317809503318558586222143973385703805544601086478947835636043805538093145180589283332451417451641574913519052463884572511676739361711073489023670745544553347180336254665901566461612810318213671709807993008461965224915634750611202813613403040779683968843425471457997273186787968284742926479591953117048101599412587743736238904513278121348225559682527742712394080763203476624654352335484063612469973918859762125134263903229835690797268165964486508614869847623152662271480043987212556718492826222377803929358371563751319284590423630665848133066132354178356085399760983057824909805676474387141187075206453452595102668825248931000765304054938294104548676800711305551763257056104883838193607827690506658357447266428618127424683923192636863976912833632582621722145604437391164995774032327021674624797629644042682523135208591976702269536199591891776023804594233136066741298435035283635813299578449702192512892608548856043188512304953048924201812679865857741930060549566389934456913973232456842089228462353272558319723516152236993190329931158628975244955696722058778857498297857288856184364757840186884875413994615313000025077052995243680470286105565225228675560243991125165556603213163012593498330143459619276319199975686446680235621985567565069960960932401193818067925195464646621152074624733360498059436480797206546311913669907666750537294138659732657016597416664414161820343351588007878934040446709042730654646430659409043486567166806690767517415502428828919074939415971942227615081871363334211757631097843035300891864809929172736278663779053565652613874415054131952069412132589025616555632029355303817760660533006941633315193987018247185511134541231626968145406188132378883282369649873715580748727984760030493212214652559017530279423370624678594219307027812908208453428458561703083546772442135284653222672934985725958653063061521085716495889684319676818995354893854103607969908275776335215878825759342572371509719814234314013404552621039973404089758299450173067892884383977477112398842905627766486985490047130628750770689384962345294303159349207169412765973232364432733940535717454538807683448224750672372668510645568034956445241601618965663033664664567430103155163119077589476121954423196378568646065594168664235543864358089712432016148191816920111783269178354135464068385827335640506806761856112207917388829603547141143845527649340836638503468949447692138680117027226323766693903374649874776062367112584086856299790606146985125106610572286238481983241344622019816996775414255354116254106308443421670175189225730858253943741946265834822251096674268924802279329375287726654179651396564784116775389437891599124310865576646504947949001295411068716575473871296560987557021804667533708247516323958113905256073563121326720306017777363691790848872962485833293333050466148364517072913754938844633503931387651095312802655386439497218113503925314331302254095965532768564629185100305602797065969562491858146463751935438952681657203990384529728906124944174445690163850004989446552848977534992692246862478761574567060981959737784274429684443939006294237607215175038991088709671034826564720732514607171444942400567451384465765917236060041538341060370086115985310749382514265837617332462008913486385259654946901679559753933840875293077244370779978466018691319120058935195575593004476916835707380727779171082665733765958752169685634378095526474421995170118495055847010980048682355958002076633704206794107296594188486648653737752745545575514533030503020581375062588939013298382024830958923366837572726551012426304126506708856791634757728229329384694403901618343324987618394446193169094104183686550452158252794963267967357534421299210261028629228101354296757569503840179773350969415670880820995994951701286064998986831512022359586969481107897198873646856747600823064682788692944454351755717957074527793436441593659398227089129693273933008287061649670281699832091379365093608094701654289139254419573132972891838050096955879733125996893925972575071412071348363578195090683684261811779799437404716323458341527562259268875466692544712086120100448529407192473131689387015782832037675159957256822342600113399924622496301051746367897084220474477825614071820928048329187395603815071258873797905104542072863772857230881902023834296108258837583028367422863703714555660096500088476017848866049831953062966313451643912920518922124590138455825272311877029590772309813254792115453872893882465491226807238878836427091770033373033275749173915888914808756146650507739934502214415523811230639634716239290047469144336488161882283912766764763585136820090078635882609398125554939953070108692730029173055659502035331218144769716037726683534035174172253520655070007946160021935758662768865030571396596820333075299253504612585381857517373233462561481133353206860237791005662344460472432474997639462549197812552836012134327118307400393334791544030396392181485962311225705690869648469293792983207418840177615710383047239664643604747945054387820439961191572637328504338556652139626036248577998939922618254575616403293774071113252105489027039500909664931003750052328558937645721233480829016383498021278318825890330169954872043263704511143003396794387000315442128240692871359278300314195046014634568689502647825207315371127884915862671023190176030115313132888774244112130329107799594937207063622469518430004838948269057422253781844358886493140563007585767577573338009316876553230679618036893908418091554514221364526827572730461675108810234882042307987572247222892304805438499003770804353123513931284502099000259433627906821404371156370961778315581603971677713665000330470976207957510750754292843901984499486862961096628254029386439643074356627577631522813372291669199756441635025096781945863702559634195135191100596602608468073787647811814998990707624554891885387460356197113607627283208374843390300554542469134004570444045370241536826278946246207476027750859428833665318492263287117983857382060451815861105657619727473221021038564468350261272213071261344391823467121894305855484794555320296152178117310967078061062348679129697253055846364820544498744846778869798760946720563814805177449255875266584276734085914075315884132083510441935659313889375161767801710405688087342111852375762495886880877826646224772442478365450883687437676968939334653749335700931082098461487567586815537812566692225394928705436839811634549288424601934995950322372868746597616445521889483986062820839742161379076151182395677674138908298059187324354951728357870722934838605956998186945235755664079667489721341199056857557809674018008921410557222651948606878813456035610661958971841033731089149193202239123859048452874448326289307782283974682015518745404329361443977495339499540707115633761229573380946070990465978622675636952383994251977143231026608208807650900903976520520671120801819989109686580277542963237820837092026366725032498307657856540542192896333627963600397804208883160127479299844455359692442829575626698340298761696906496124779220388934906508409832336841671534902976860794756460280262118431043402174249473055750107169927530983928052666258584429773025457324374962379821850902726380444636019141498110176497595722854440356640879438320940313984172528043641149885629245533769594291677420650432735517538091561044258450940654164334328951459266271908289040893514189455494864141768250101883974844408402381774504539159809065090839340774416757395789037295989736022162345365416103768155519902751384956163730431405077255135649541040409524097616819800773497051085889057844441683877496935017491686751697944520208076187340481410119322662628314005939347304765954524681735951016488362657619039753384282282753277784499359307195348717977454443485333602144255169295637887138907755388719108925854959476210943087203884869625585631649400158634930697631417134102292127501398319588968270328377066874522106966320550081532110644229042532171796332192479977061868737624044793884103036775958191407516372215378233133089374580120747262991980669484803956005898606649564013431821290926468979631310516893153457942363296804294941308957676874705681735374399978305621200621658786076309601861411293743969030111719636573220691956918953059931782515833521739021096210955867136386073199214370382184907432287698989856316388138843553337950459692379766340773354202454662448610630350400453864807925880749128174397258729598261459896445315788978560196313228849797818379305401850095187350323988309055917079323946928752947568256096097451826784427227560377306689141814448800158790164087383668298973019224788891300758669427930726310336938370939446090700548290892956684987652035373364920463715058021243219439015972256094296134556803166155627953989061178005949548241239647360933048355601692104973642407564235998314186610924724357442545422033704087472509098479651576089232048480021406651463741773666618603434301289761470470214499971617893499288126992857968483801845126161739451638694295270907492687138051309532247837395305169303822504816149131353378606788644169001036467135999956937707018960984359210503115550154748071670369345422809430553722352464673966473901670068076248989935694692085781650569945523644160336177556742844975523213684766842515258799578398047131227888108245027080548952365227530185546661738008794646783991011928196156894803614035583803236294683753781714617665210177200163758228829337533198294718888421999152511498044654119324281315098517823609465958646485070673450396733680940822491883053897005940031249251867057792228840757870626459227410115788076432357520022911297575505272985706562798398630147684426664319419110349080183983253625353905898602016651641296220712856335539754261563529690745689277762914419204235670217546969819125854218011642788503775432390515922685995591572944597377008817718045122147866702497988762188137862307247973392154975034286270006835452553283719859086089772292850150937954603300063219576026488667078109339048305732465014634640828730367335042650051349457395968339929971097996551393944307497435241802227486305902899382053467660538257418457685094039729106056980853227277173328572296013965068593594023538340977160529289237088923556313335931113062582861490973143399128439942443775136900964764786934012804396370951739290623575282190978003562889056271435895811616252705594535363255442473300873685700302701034267666837445693334609649417058507979661059603489236511308487336841864532642936430878348503278365700908327579454582431560479609824949433487322907321147341897425230391327050837725311570385370124410478558381190429962940868959313809506693425194808214702271974616830985330192676135447258867108205446009677241419788543695886217411327864855484895927451919889122665655078429265642378800038478274929576230775779709689752682810362246883571578811600803573405605073288783419329695670350137793616480196419438829228694085342210256415851626282181943185706004328396566011553491162635978355163855204976112143806294013558678476422655971410709153084801716471395312382002281959356989476136527971143973650934226801394428071086988592356813685979065391261090415683055948649752491386228406984153372884511628488121453109218886526347506210074953157093536584883372692743063844132961777522167411788134385765598684188357155934920978960893135172644903726966929137089043971269501396302148775915623823828423478670552240534646394387229241487878839747288286796049040383849565294669074151481025322066126414549562505893369308586301053848579572977107010818809244697849428841014781934888699412853906863783305222459800688426533116452636284746657684631247140345582971160845172959626841676229153173051435652516153702948147384163363456618504997090681891111957482827667244429921204817878333751482380068236867358850478855821918621626953002118835716267478799197876560187983423987868646454756574841779320444943965949946469266243800267308991904265146528068065060151430982478994507615471078362934163424176283157274266253600200979342189948091166490408341300790616470850652367759939083952198536063511366360235326267065023924933394050392897198604569082726745874526425237682983718312982392741197910153518252556443209165161534346391068379054637166801086705507215899516332954784420395815169135131915108111564494800916008984392877119949099098903819843666564661638699014591117065073335922353508512769226756175674272001431307440518779909516048074065647472918582437956964743606581094718181273535183800644293568296613429496980511479872987415487051426719924032783032556444451312999514432190305292222156292656429303614174475069462894969698300449626579415900429238270883764842730503648667188813556300146084205271662612481409801487536990491650239005255843574182050564275483365649308441677059829113489603168132815243211543204270470503940905478246807561793027067861099674288646173355154790391069917703435144566530151271527479500523543690837574771033264270252154363067769622912303942000237251994359349996193851530054003963448535007032197235607946838032964874416576026321844378119419791530510964580890458273879548895198123092049939688083556116182776737082282232972791984264918670236003192323238985172285922108065468676628057053951108272232332371829814746531967108452502080139776767981800524935879146022656775916445905527519061251703972402111385352961003979874235836002309394932948766815791596686091129858897734473192055303852947416940630596444644922694064198147742890307615893991057787984146575111173134241236150541045116681563359974356332882513343859869367902158400529104758385532615343070937246670429792534100049343296887519184497047430711463832528787543204951844797383907150146039240151701418824952919675275704769723174122967262332967280574061279967429387156680636064934518316015787159641935128923189662925271045625227742652088882695658000473277073394904807633967765488204746935482668334415007496091933570265449403370189501972139700188716588559080777929322746735042061119086980837232754909429973001651391994710168675628291919890046603229593250021718862958997103076569154730029466215824309683067799919776102159990362728331964942728270251967910300264583016006137209574326684547401825057248464684028521000832632740000261527342277388973876939841951524616048382234154582772209042575058461707858743436044294553773968475425595327880083468666858628265569069963092188213079251289137658004157988352542102785334398692411363400884712963191798503771053111032683225644876703330979586053519172240678187063127076480067491569664548627450319421931265997714087150898928835270811390639311149249757463975834865758763963940859844793657303543586192211301970496783351151455536938703337810495148763939037485684847916239292432822121042402911484074358729923404963862894644975433874631178055915940853431641500558014056544723100769304852734849167387867561056365313667122426432040154814291311765547374766944425236799329878452846398600428844531103615657054252383473563968923085443406181543376037034267266450849701982307150363838018069515556520369065569587518660952488612472118614380627377784428880637020004002817390901569110202983906373488266203674227730580699244432189350354924449642321633118386392446366367173032336537373455160171630216419419880550551763118893087431924078243909663634241877661271522372646189420278565406246095593112330643742667342751813465713554198468269682143496500276556362482788852681586211014917120992779573836627332193668702388442875950026218481901716831758621902429617649401194351687755422858019249110682102177679492739965352954414524919151912752802474682850500083882620581360978030352796685858709074304310791661427183864423803292168600877054871792620369125059087804068529386115647199440476899845260665395783035587498334989907957834651241956535751664328726593099627443094876259361360787481572676347593947140060515051360570815330018232436530051617116587573084348949617410837180424085604447703632638325727118431626875836004473973972042102979718976305979000032458148358271613033007160745379623367707203870907552238366590359134901087684083490557026192850440259627218328957710575267088895789460647283728008015812179934662496603844807416204164891620755880492202579845203113238008622596235059571880794838971868555986405086241672033566441457860131369566615785729148495387658532622670928425607485776511402238070189911450439374501284068016981995693101742754974907493748945839317185396040766563749670271259595508130172604592974017318390398706446598081740255398811515091988496835994472849386590610605661746163632193312306404780614715367170060635891432211754231462194707783436727753742028182995379468767980635251150682076153021523176376343878052620723212048941802024978206666029355087125990268886859542166441899933558513545165247087480672633594667943541572043312150444971880137924240298161591762116853497650196541453859802248341581576283101190044219455655091683974352895224964712315428245548305350400895324481286432309054457577314812662958056217558878472538777338202676250391771842727938888137404047926523565680135107871361494043985989992740614770776479628560185737811447927560490448641477128192998351835542053771245578454745016735455386884829958306139602523164680367377148870835288552574886909108850167327072699693010143187500235184731317342540567974126447668905689878875107195076703063471290370320649996143579018310861121916575079349447702085085572474569944295998186218729783860297661623204504406334414627541547599526717923736777593651149851895358873483013198439780367001731015782252212198782219002752569922261898649791481754871752737619510295512810189539745118950313747249342497734898209635003952884156337042760386545523358695336532792521608365628517802392677523592840567784151619963421132782233067632780840836867430566825597781306288084393298049953620407625036474092183399604792835853489745438235962323064306965934220163196722683994489924725774757455540148145112808663731266980208129462990373653751037951961693536657973104683190947055862813035698561687434067734506262130258679863655064014695887814512639848120303513624539670062489086678286454007013110441905530681957562467193750441301454007333202010096577804827705502931820658798122813334280395606634049183225331594379490726572253812748762890140993749301844461674522945119499680126075829239347162367666299746698364912619780372538421533744621675532444832648843440915423617317742599732718602843215211310243999162001835042989766034974620202849622517974125428127072612068504384927727136824858927005907700417831307718608323519496127023964668476731314801041706943153854362524714046888725244147794262105150260930231442895950164034778639563043895515163272459903083062590684468159449415641970097905112900084507297485970766446048334748911736108155095480673232378610579111927988362737468290201059388112333019513291843906854388561429429379983016806036856108492976197376946059227522483896778413703153953432138944265571199891113330340947800719637157024343677169256782170116247828126430522499515580044519678571424146181144626377150234136594068178299582514163795108422232312260144923836856270454568127248615041318682741600302867417003706497092740075817518292487907996849155338233001700974500182333267839368868731592160217581280997021832815531869349012093845012149400653761848914969128418055957021396009920999037900456086602775696347599991380675463837308201893897641106290456207900846546959774971713815185601985316328987262886677329101876669038433783913331891318633004414916640040295658057218580933566346754825690120047368293043844358926543533890693969408256821556058941311517281901833063652485231661442037878357680612291187612932457062979480057243323974351151218766782688536078780556897101050950635908741873442751775973328581427990640553066190253752545836189031805779176834938407267716574005126763968111209040639638255116786177332273310787980257037126450314536777597565071447570056651668749297078864109356063525458566852967409805488852973962357606784524151671141909270587402289576384367488051625650331396404993375294395237065463456074339209054994616211058640450420085301675576692743669148173401042691136856946156237173599245123258065099002337025871316582439884892402778298504214983392510019512938023424199872725153217621052322586063852647810447408381507792423114466968978117282728377388706636011196123142691406169258202131242769450287528584807457473187965327727611759658348590907017601098256496979430643351047606916773490084863475751879084065059913370233014183252584637816910601300131690999670978507001344477242097912645000975053615200783786909293152531598026624948200479364289272320969728176068617094948801634685839958035213005371868574229578604651793744086292836068087090056456017525825673303891216324579148791174298180153887992300992664186471454567878798935485634573101144951683761520967778351902982761039855197621128107359029470177842738490908660156579554803318622528889936230896372823104341509123057525583872658572607728832131992370183730233504363803325398464700675199979522491710167790119971220016106609022397864632383292743179478871490902768577530686692167649372132211868519602712255640633892751394861118482398311857063954021958390606303168719565601076279130924862571531145315333711180635511249197854633774855888510595226998519545495128902422837067767898052520293149378962328430448948148768731262784803371265431971875093965580328506942413315020516163905828823514399740028166751372207236306775360756871117744242987180039292983380788807131538561962778515061400240707530300239046659184049793322007295352153315151998393296677030215540498906681618691698769639336615491769553738247047798925758897797004783680984471490966256002920928592735567253656036067626208219028061594439778566300276827750468960898607114892447503519149443735154994050154456981104806294686086330224993192665166504871392988703170362686565894960981929626678457823138671749999681125584587657706318202861356059282975308374549324824954787612048802517562049750826472019712177186734760359223079208471766251718718875619442558142830288216048440310777677151814312076499337096597421120525968998489902766142754829690663648809962068322747210532100552914136509582966838710841179457142084449871115387587826112126953573670628560210958966111483350983034120704922414042172042408526958357599284259091189584706845030025059029450563094177207710271216407438917092444734903037238326496575890294544181729234345610229789918712778209115582969132402694401965656458061616735911235652867225439494981682218967737616682236878388400753682825575336950495707328383817721804229238350758833145335303429228612269900953217374409280090377809005264314482482520094724290659720722718914018192360337582057728417774135488675778433523394560608593413963895444706697229234812233696417861995101665479759063666457828313273788687583563672025687644004849953860604474269686132941403438338789736000953754878866448866632925917215411635438562692950891304074544456397550615033728930492106835865969945812755612928998249043248654099415561957227329683703889042047235549761246620506059529217670140322480146128143785191876697316657212962637108427601895330993454588755205751459941306220626334015311427968372562713174165691107040813553453028127208699905438599771802172497742193953363413093780539857191501412289156102722530789512714485832326663090865311302845952303087714096542596335671333066500349095929384626631317085437198453043249496759996820818469824509045372765672778786505760386315684807235064510776785627546561726968233504609481371912648916875636866777708824712669205466238036834093278347759501209154531507030834266808611728734545079233831404224055503846751798452003908684377402293645010016962829390598481753330649200091028596996878191601215419971506117851930517103655150059168032905765614678364608746920995618232263219832817057177597291010608729608496620395509893976830066426665334654033280427220054088708727156941254482491571502647257093833936608448939335901320750214472450989592016638309639984590740438159980755955648898658939471905767315901579751455197558281105991507368791261926979717261927172232168389460231032964351289858272789582719606021185152421152216752608846245078909367797310940252577101416715423654147343616139658026199419330278930582788729339059627796186986766063377974239433432497864854983087298194773007825795921131552847788715212662338064718818901399536362296717140289071428376983062626626539408551395757791742018115850259339628109967709226038686337170120729825129323945500035147516626633203463223375302810411859483255889259483574800720408948647695029640085738256506755733682831831721425708444947722320795618705144977327798969685472585265963012162673226690982515325618340694466818616094396501064617629240491930485376480620103777417865011244435510926146589898395612858359800514395617372980649599457903543030262529568664697148101889402274436933416895118871996784531660904044121303091062008055246509930949300807927759305046739403980332050225655366883542552593864599957021561401106239860927644955398292312690737639612134405238649456361855251182627036282039527765011448025175993115725626874342739130300407415202336717793037324780082444308686006960228603340816386362838078098509420580405255542938342444587912346141617019132540611766698015969936056552927149451119834555370384213411598940660526134785340546576135215292607475063471322486224247499284722718964262077907939989829383397042297454642075786051670496507466669316984675466411799505787261665734870320821974069723125638457199057369554221364775442104785304786553671791508299129538210312101409806221348799937634778314276294363911194689503304667211505110127374265668116184072762414025320102697194979542559564012449706361686122227011914589322542291497578137610469304318117482231614423579567781108073086949026230704698870434872383026707403396508307915261337078071028079685986391890763533040907508089729348082240892043475962191114376515711625806267272587088245406965112026814016955916732210028441022017750564340034662664803784759006710098421645631592840271679676364890719976859639518031923339837077027209438151331180507015652266016586874477415977848376984137941827179257883301311159030503216561501204939594757930965496481645197802795392304516652498751190354796856800815406597441447042395679186913904510516863211546931648593793539877689902500801907850633908205334099494700916777376923440286962272365782027288246717286254168492309532524546676260053825943007910754190924375981935116121460568138047582064499930024116237668287651577330095035034768433062128104895459322265620335722996745994751471847369863300913740908631189250269101114855035072882707761274124299649318578537967664437602913833315249165432806493787978316824934158464070902684948306013523233164581989393330994640249851829321349435262964298602643201401317096276794463142495512363209736097811000360250034756801296041447066386738258237676219488520776240343797325410095538223983059999260778491613270523689099467917584869950304117319502766012772096136148493289491262088634758988175743248210020477263830587809396419975063113221813727491203482779741987947687010509633911351570278056772118737267114343820670977546459885207154356724022109863301724215773457098804056451397576288648157453763743951624536852512680359062742677118544391041978239757366574272570690725690062069650605099679727197704286855291331430022855230939269752624935292174628000746257956681741449878053848976491969467588782928602666518421019062096183590986067745120439041445354442515116775847383816164542530411774897373691987418298623060739323380480033695671125120058592918730257830203701435994912965307619706765043879544968480181191172206325843412920818861318984828258817595897487454386884910504678561142457544754737997808189565733629122340552478309378050292429315865776333943705901059534346040393818567018117778745688966252011354414699875072067532728661759489761979136151329082347287829222216161940594937138577343110101911788745229513753648800889197251739856606912069421245181011997411701074787102660297003893955335360429511175956916268234510410448557563450015515134084557169788601353535302744050774324525370878496167708981105226195513629320055439189752485839221873179780947221484686780301109699679388722812836052623749871174781580975724620877813970042262990283304146748582379600919600228437038531623200906472500841675540830621687775539633626421519404722811832353513279154718683935255331503601149884506423402336303203813182388615472205932910280412062949329349083005875394226316752903090332524840860376719865167783738407987944975057067756608150266303741569566361120099628719300439186528756929364180701940238573307014373129475838709208911091122541737621280821861598727132599029864716694067124599105066803782446059953024879173749891083780390086671857867417665091803540955378321676166338254379295461542707265858791120533204714565376056847290167040661793592435920168069525630873315431111033954806476858830215608776110609869653058796337348569897142032925708559676203920653473563580669227802232805111764735104005050849399160009774734340155730227624389524867173398740033401411613494233056729779909499568796639922523420269398762840917829808983144252343376731027498697484619493734407441640491972532284848969677350785609024283983203118084976891263772743781597459562753759342660096773816698337679191061379615102599491687401840315747636161121618939926118426230131217492477413106965532539108763859614553765375543258644233903384477329598050851719392116051209534845712800545972185622349226745401369892583937294154210327638716828704398792843649924528384567895322727746668943092322394346572020070833837942244078311690984456867548892422239604513797366695418402758387567566347079180024563618040058757368715219255375042848283485066242632459750725540125933469517211465349589727831924803933873233793579705050714751638770973852709991117408293075652868192518335539300619888777066249572249333692838218262833940251392586882191619633288912415984889033076151455906007804754477949281733513958566123338300395957109726130496965018269492557809221489532829695646038753919276115352912418096430900750792797579688901326238581967714125861317867026201934019797081280467926364900394551772220384724839824319231989371402530716712130539559201621633047982938073814729123637640801011008173128001076659765645430006751046197883741232271565628379510339195984941703550624350103709052995771223484917148741442639385780176665903299680375515754772994112666832341239300595417063421718091898863465580383395110556690911875099285857296844562855421249968054796040301323531000985472936280587500470674558523999475087445588846164952512576317128872447843561159943102410569551220791562135224203926747332594835061230390922063696631975679146004441480324866666055730245061047354490595058758704490711483777985794650571178296537282496857615288467119410462773993855263271816994471415589417544641381360290493229334819729852081845716952274806975794963564753899016408089394623070101831545695261379498596434609832037988336117893800888909302117426215337509132021361032952266876342663522289044217197321937544256889923716078962039108319590598759045916526882756326234898544895005101606816727582783361510268165347333607421563540000956717238820748619613151061358457605700539702929503954399760818207506874751567009755598985035467653868876406594017688024034892378462498637010988128421484592198336142290817107095460799072743499106250439116882875314379509222680850695147146759237175875285207493154589841778013537896873717408931232758373782221560930509568000659776704302343423899866530269031827456940474317086529841373218887360365255691187744407692717868982243332275373807598320176054941218636184533210730519191240042729164608418099810553895352410464245721789237961712043887846158322461458822157961252007543913763372136266728488678324828684153445056050437329435171056960756908851264090764260188752803445763136585677339715353313228070766637860450905389361662891201323118553244654221043674932803312687554846042424177039132822225223595560779872599125985071630432798609267917221014723348130972564650063741853713640118550488895240492155381392282892769574604115161211692032993345370035562051360945079094901393111977693403136850844941989798122735961247344699283720528421850936475839363012961562087596353640897524929060447296287879645267541453579001676496499939063588008582553037721300313818651160256528864701406418845256610294257453030150435886595023718394079372309990457413301778208643662952109276256477308584626936732104185008618846974202964755917540844459447680053845795617186877740839846844941401058618055214875685935802125896610565086141784518008615175087264866401052542928425217982486447670734655111335778693841867198179347753794712295368420293464977987910370379067327639765544410180431581848667736653963071955533117217613495359198743002877236451153006355068593589867589243216784997916144534426508594898247923576890675299499741529884027700497851641108081540309469353169135364367365649624789896143585992112937667228382409120667181879699661557384394969849519239174492307080034473000986187908696497850579209207540041443892447994683487953639725263388038059530896295323760582617207872912483678464409302489406738056502074428228170958934940673140857341422302691679145022347035303146811514339139817804613551493368441471734047563184723041288931384815489867061139365726789518664454060003871520363485463085994783075056722489418788554853716086989563104300288448114519621318483067014405935287938503497609371688082053681418698291750920122012373381031187663718889065828633041246206504831132808937598167659971034877586207501811800201371621600543270142650339662593044941470402490435640846668770437542289855583561311633759736246582147082298086936243918811589019092399363056849399379790956204733562590410274569055299962844728632212621761753955523453658086527809709583657979139370215425706165408599666820116784934553045862807082416637354545461542641796308601271670509654111492702593828381686985705569859290707252267124891160557260762887798761597504305741423122351315691714823035067498660702958029517450873076124347403434618673567466780991882300170874856522850268279162312717527195294464968817263221191079767118789156208377522564178888392516126217823310180232049695218528041840304299296413353070208618023217143578158312795335964447629784922021405827038784130567280451356058976776706462748764358564169115595765535697753383746565639462247317445813092986356755554810812409494361245888706646832298700193716944342743155749537862085366644891928414325751959993198504740741358978654493472986182604113119717802713303864282349850240538344524283239332215235141926556205222677133839936052922236021489350517416410049024045812628340152820467965183013618937773316235512118713187038398042668266103872411376930961678311681775209904249336128549119435519542718816481173952533688784980004947495541471181879765249982175701162856581168790027431347913230022317679336273828611834137225660390189030049511881282068255207157930308566958066296145706389569104062528222776039295613729255427699560845479990039449481046824992434887159919434543099354369764207377098170514649341560356196810508275095772300247461133343295311083754996457165249533933210307780846168395239921048149809297443733636834998696047502542211338648977253485069032223265565231862691756274580272198904507014494633759733877065459042304330569827172089228832692137354236078291563054600266736224372694136649215713633580603155795690699469148987472302321729192802687406613763164810569269452781226219022371947011331147772606494317659372199707093337378466561331047290694695471418115790500312006159344420489704290106517694740261929686133994220667841683509640089610363001302697482900391397596018589710324394696689798752841818810504879238853862045735750211563868792659628204707721176182319654645166466626589472872601496138095373275117210151895468931176496625018382932257014638497075799721807006048782174220387233973280590959369970233175434715397488925111465119812092064960247729051253111214663136315095335188343029775701361649904849450844744387681935329558124966573556379044135707975697473320532927273564017707739253428323835364683902671765192775815435706939871157974629439232917557423165821173975679947112124234558672982212842311723209901805805330439453930478214830125667523986767047345817780066856148013049408059963052677609908877205399546721842081702749219281299305832570451121429196378235907023507830974954037564371197229576073277394748382811602919172469986414766412322956187320405477705783155652496696474527673759524167307807759832030958169679615212713066209575895499084797580545230385122278755790322275947743145595234055895392455405578865586151817401538741653534456814664191022744275720614035521155442803161405870798556840942644026781048787982270789874128737757551789699090638796754505337906207492207878396564923120508378401218290819048700673470292619212709822088707489120469047240048140712528048248598565198247165515713207613599117544708005934080578550321669938563236903414325771034345226620903684876800149103199634943525037033519465057410178940620347982758657333352736187385597723853744617447209428450109813756455802641476382785244494395805194425695730458853703182641667513927018744901642283284584734837020858128482156888761382418989095133746887824781498409732064813969012216281925232825720328975626454921338297189479793701269032817347142242629279003063827612851659798515321396163776521301427777395031955467705146318286220879493619015268955238587276076285787205066063308343525435758005186421764011738646283136449251203678310176389386291553707603288568118802605151094753533540175043720401241851633864120102959281798967901426027766891476749908073128691499099624961323627001317110280683553794582551826073666760121454842551875275895452063781902932294307951998131999162301170228838890603106806293289523311985929445820434277005212144180641224478396025194504112392752476749149657111224075084493847985872404329086066585604201627196872234441948294275687285557947699617709892798228880993504168002108001436225777783652621100989938906966182794249606256421567945714459680257617323267269401791511568374340842048696017330850521645856619985688575753582204995222675600375531806770489674855807160902298721757289420405667121357317751682640844011272251603008761564436199763481766252498004599491176802918290693211262605993489928366795933460254172383646190152096689945683144015069496633076538559038657711531887804073320062777097521828842797664362541214144267055864988375754911537180695136262114342128327533877977224580027197653496478896477274514364385587997249402661954916796913445094340519871383760906475202110316844045208519674250828274877140461188445874852635780262793429010729748725693832720168835182283542909608814602598321345739784680476796280062666107275546312693434629966546345673654990551234420149915151086575635652981623171419279742352172903731356168618891814813975451626760364203367311875742326534087019432061966528465281540027360194338016296449752414549012175192433181211447018752778658656093886221284567603446495477819874397314600759180113299634452647069442293918453700725678138119402823917873755744220163571515532231877339549309173066224171438825455344288174544996269844389896269989793721375950981787866443403173171513156239656048967309778842249838515678230539009797368953109800294095129099820062141112610872554558722816178410074194184272237319789822957929514584263448094236909680505266854449046012893550215540262525656719413465808719511190509179887924443685432651879377543217466625664772261825992714162902472953083522263259523792088486609863100221989904369200018170835203074484132563712442236266026637661164949970413485274749828186904009302732890227897884469212494998070957204142287782458052837388076478748244676588590346777812945393791687987960946093214968949385693548396613543146859249535027821848473469909844143690177245022965367228202899449403016213968523537090961332309481033696515914922787536451093708936814694476847425304108750761749251199369343949079051599249304134227070683205590563997136330984505566754342998679919294559883076686595928243734283772079588622767924709540957334392369319928155157040720025876975487024151707445792387325104610653993845822248981418939005713339175177777394485203790775410751017928864533045073123314892419548711004182624282448401683879367779807198099942645080383593330237790750355261019947809464220217133608727364813168287103391172589244069521982339715679687896538236271611247071520616740492643017735338643703629338033347520989818793948104481457031926009771419292629895931245428685327920107223332297206349371721217520007872203765522604277581156526002057714311199186529627862892091566679369314045386342005011738653983641106367639443402207310365312468627949033962133605647074527659834346654243180285711541672727448897069285642367742965197386375878335371667594730534986010170089972325194949174009716327925231830874163630485141791568461121489947663275521496221798074035864387787870180285831273779336193923461188634593932433789392557332757224188679237736747383493262740953417800934441817528268687479042921309032286669569050716536682393945340460655508441115842743189294364276588008330119445784817471219104283651153267762017687345980237030111046528078910049953243638664819833823742155570933585545106470988505704263865611054929721600337524076459810150331009788734276403158052621452200609548410904276478474214027813336378159878139343399994474300230823288363548992451885557334911148467662474857923384581810136726780170079178734161509540910881446153742437143197005150308367482054396034511255054416545526573793424548153837409192880020539326410958571873979242273602374835513535292565868950728932563539042476776571009525829290211019838710372478262114076535402980175096820694298796034885049761080534323145740719795208193626042220923885285267977522680451761711556614779425756233104171337186142329554271403089730646761398334636288109847664997747886334026799291479981813698443544976611356338386671579163747215439423152303450418770628331839556994941614963644088445718520106923394630134373789403153876670323260611605999778365780778478550583761631420923396967196908758583174368780567280302766172637015052190322695261841280011794118610134166828341509989801410106930368824240047024819170742122873286284700952362403949634912581830074045531863708621541248099159056454562300502655584609444715592231641343574307448330210284975908365285010040589020846467321649362649427367317720299062210248249328245350701350270722602049698058159730924622972507079116994574326934702411637711222163200859712138622179912537493160221234986347988425890232388516627961129602454598161978188757475459214448282584470415503831368689253137736549199307695681190405981196328275083406027623042923870684442903775552509177836985339628261619567314143877805321649805339977316958986107801230670887571762127322084285150437634160928052412175367328181002853169766402255574058755715573037369544716257178539585925100693592144489203049319012980419483517265759238577702692057738960664312455806534103364770156379892726295186818578245819159398181984915711224526100025695499717035978239406755567375242979528236540040534592559011413566558301113321015994281948545800537796029089789809435958403593785819616230830615178840640076311655347369725142235380131645622587170915457669912787993090159137902861892655552638818276615822696552379097954142537421713200642446800567760904286234452848420046590785013459288331581620921401615226785403805950846109943415039268939738594024880025140922796820131471148661406265572684017981279151526061132874998099071810049936191298613730739555985517445123510526863183460510404312778081680398992915137911695327716217622628624156358419979891114565748167426671740347684167941012019131290637576209889363551482908250848820545904400621866512418788988298801110740557247187662507618792014173376463464780535479666897051325533021409383525821410283387214603245647399174467879010249456706690449855431814333426610646127487575188759471945355177018828600121772039067264826086335198798921507264675324924223680091965711860492168263393275008402779432268156728543669224658633020887169410467646443355088781662555749156327844327270518148211615784124400894064483659793045566575536772173700928680882638930704480611681260591426755518175883036757373876208577015220110677862525379440369038191668058269682197255592701172818791936962380224746762764721375203075104286121667984800623293090250151140477666799050716422627616417674357510754493819625522577990142428427788436643341469590335823164905475790410870722980313615080371581516643340754386478983442320776065707786831620629989629812715850005359488495003361487885783665380571485952480820263673156597642495710615729814837460454983330085160075814733958980905615829639316276355802105818462530719502375350415209876805515226187193001398772244257238130217088118982827099092282737022594491757480573821610319102532637414752882230032742155996628179216402438281487542960352265226111422744545204738635699938359832707772065141873850091482619486559804604998319700677532599265552654887086348450232838742505354779335891197187378789413416450261241576428044220996754805685710780476763093781362687520618403739422623129071458932298194225778915715875703896779162272035561066761831246496274606630429451058462412256289860072350697471208034127668718538719622884135228293536558580338136674618011735971886624294197862808216132296607327128227400468861546121009738200942319405757280326896306977785775280495259075270518915111803688224545120178760684920983449761592198627406739120475323563673379845262201900476177675427383951265878137943271657296465666708375214640345408109631318912349285229758967028355256123277368154620182075314640831713866119209798774242780261839387796182913550270149399371682611560004903543302378488910483216493557772651859460183061570428145511655005335533603458221647656982510037859917870434900051356629070963542095770065604078632204307576595766015711679404433949468693718499350690926687641048428009096834921224374248112901282789493479287798452488556904776078212614033340082119710070892374643899493316585813228120743286461165761540588123995985818273067603787998347769053703092164112723843467255086634667936663520065904753050276924361035182416979789699161202971750158950629831456846111408951224939107346546101847366360664869031953818543208982102129861384708302142697818078238265862296925733294446929039517813890745941329404173176217473288931340656654459459701435901079525213124027667526840327017252834740033399879613407998380549917495065542898569513446861985332257636941634981324196947385413500263651550843877476283639957081713887610252025870392828207059712488524623813339611523546008243847376836085612676474185546229271894110366070929436131776222902199830909500490596868180705544431786923629476718296325964367167004299992240917988431638843920293407182832037353036181029711850467800366013939038380712360020569920508777981197393769051778038956658844023124544273917261370383039680124068958541028012722911081642809182365041285760256794272635367936751870170723203203415337673066807685189988730354264154980754464235735388744476955578825852652392209926214382239429601657929464952758961233461312204203210631391258279087881500124771971419509458621334055374646700932638697481242740685743155575283376026982555390262956649148359863226762846352572625742857936496228728711068842015248748768160593075166208834657690714266185556525073525131878829433480022202967761065444085854902176875154167130849795812238292234795212300742638279419286479088349262607824871350068367433831170530205673451379986376425087793395506442047870688668298924422721258202858107747972144532845760839704489272124657751888721832024517009894320391046626671977620042478080367620463700072409251193780391343242889253953646007327246579724287490675029107395929971445696399232376243292601417494328545222707223222087396559827393983049062222722132845044597537584009457210929833077234889542434876981348631611969432061408459114012913369682546152502848001382018914914384923006879586684045902502463154699313462567797299064712037455416138864174116729745460657695605899385193089567685852178452637401527362773774543486739677457998637024721919349182782719345581990279247031503852634382173146930684922852657005711902896489901446467351832756078303657479302231884104191210575211799389469399961628037663651953680882431093412742500917123581409767712171271714809795277963630115813709782010166037767994348669025681074857199649632602333756801942468426131784435550573612954307790855017201233823834481081813205987960883284875796838598805029392429473536660151794463818104067594462593009076645629757207476462256537065048841176509667710609851367515495176527033872902661950103746519286751582115126272076544901444858011490982214349554294315748003707108175452668408408389860687370034001071534217295844365607886831115973730862649730126061946171045963168407615073105809287997362066226224235615056991664771356538734482795328627371843761907125321871375312455624486117173909456540669540045290096463177395754400400469476293497149166507358790585065001781607009609357152109805173492077818855102429485831775981703997487156718792744144372131420885401541060969801529056795673368824690452778119253647460695097261181329540827271867161520431180235302720195615489163781457676840166813651540232362163690494883590891316240179347632395360716501445217208444083465535290694913528717176369813382285245513572119301948477369412920279611130144294243026502444149212742116720909301602579873601114746100613939909424955734556132803268852080491114766506095819967580374203734638008905972519461193883496495908666023952469434956915873399017494536707184798129074293303020479985973301741174172585954860579073803477244407810200237694736215339895397453211608903292888957609836391965774733195516568507262935229234453097389527494940423551243345185775414464071244369673405872935990268277863552801500333031485798430924150321746139284057761738649728181984458885018239184024695019209055454954588265529574537605063016158401070424984299901992978216244626627922115864920287496359793153573957712633378081543861914248012516300703028647787933238022704138696537392205840449691932099126987171316705260825799329927200664551699020578286168362147155914422054937330810583662579626524939915377872477328578605216347667410082144707940202088012364986038916617153223688070442652914946004663116245615106373813098160715178351040404785953057600885695989848976396940021415412799939902373837787374053532418198387975636169323795476507112014262042223266287736288524554186284732930231019877855718578129709846573685969069874670324624660322009975966682123769490790238030402147861808999717994684116427266014300171497908783072781423616096879104787202754266095156187816879606262857291887008218810127102658610395067883627022643444952035524852315346978373296996188050573536210748958647559412624284640883223930611623297031962842183135230623152997724850592003888038560650100159605975336900986657343943843144820183928214159475414944481032610216689563140184144111119270857339788178692488552228210039743298320812964847219223775284454003407324262234032967477060231580299183630229807880969414356082922087636799341013433042633964621874766679102525641522123131917544748009039864021612198348848027835718597909068957972267788021314165691106844290821693040761795484325488036191428267050523738708824103876357357818312460475701298793651322394253475478205237087006009653784808587496562159287682981005335789100172448905784839191452841115581629453816465802173950710758592162233676317338580104856211410471440688418874214722393099306048925847881967222714550919247056154594255940377126341442779315416680116055912631894616655322193669780096426252872544407315562482223441704265024858781188773540201570075146925012241697285380653941557809450129173205366077197828431055860945235388412725750009813022513803674695225454649997471339395355827881029963388344667463364471699711504493106951807965288150735792338672918465155036303251539840714535715033720478108533395098905573706955002334179443496196683113055704087299703378776563145378852998164027270755118240803363464630754136857641120191646143356724114774563888125216877618120666056876002110715155826689234653704071290499017193801559243219198706111357677675070609949965332379977835437645248682869412634936260892519932583481746552904391374475347463386488745112861339745797614304550367435765190439308366365710377164370799201223044074530730306939926727805812774789886589157819023734713794520248340731791859568706433767165784543264543456307333104144118450184811558955751546338811994855422798722606556766452711216952278597297135637866176381303207745156738629374595407430101944281483062850904267865104738457650672433909113455600062247685038207362212094328280274772924964556309366241284848788444635133902571672254350933382280169098535823089183236494411196058557870486138716212333763101822310709464048188013458799184312862324187218593329066147405890514859623561971799320915161735438247767975743755419497784610211585017663488789997426123538879391628172141194788518383965607171674945893487757488544496438537077840684453511695230707011470695875826774497735916162889981161791239984212991534733688869691988107173734745157262813762904814816396986876109200926065805071861061234074474521763753956137466918977580662347253230490968843314671604935926090706384542796595051813434846645695815092962855601248109334012176396594546480191099911171575772013974048352230159902952659616502530975292626321385816805564168224857740676521170746535090782800380602921071870168480185847098613406207871451480538109577348737204856648914483581030605250743010196809234752558764281308609977967673319821874284512763863590383004805273853508591688570503951027526530642435892095647547526854660829670028485968117241660048094855656766621282322820017283953563578070409908646500632542080657344537927142133981351321162801270211318600294640640441629932295271976417554613515671544025463226829465499416402228747600913563777484392071270070789358929430966103772322929414236568906615703024142389490387148779317290859300683361048708388938200769052330038143715808085420658754315706979395650754051587074369171240410046961139894904924711577268110822977104446074181516229493719496831658682405687941322738977909884746136978231960811200405450660308542832279582679095768510624868945017568951814803506346578722545383020290060573209788921022546329900152420830742675561871087904730201211664541314614975140669521164616874785658779895035828835132986616548494796195862693567924071516482876022391205275347731389412777650272260534966690278346816332005133102436937956285017928151063082237446456926610848788935411850769353314366761767975137362278493640826532635268392655924667398547896050576194312225765890046984187221981172525172236381012485346261728352024810484292167823322867373797213074645896427459647001861481030497495425082910259096521744519699687884668350969323212445122536224742070159360981312185364484517546546782949586107560839783175170803125985644290213194740672944209733231359331689889811139329533534707200606281235095700148593345547912958179350569529896412231930125352396516690346889865765977956819998924874075889535820963420288342921420773979081477192100194662221705045730866480652321846937605918800202665003837704215497097942416035464672728461212182633105765354009984560917040295584798256667102749726138429317816209823528401895889803258076837671664573100582364088240504389854506750907795757001721766285698048351040312882340639621927103036732594303441169246634155066727008660677144485845230762786209758252319247517274215661040389384754447979985815948047052590168358427862267944622400107683169519834374147834215551793329341557959593273656678891893048401335435938415608266638431976960818377413686483483915636149540184105113086465040135530742956245762223037735974256386316882152138849545336040027385950828797262027325324463166549485009466282892571649798453384297843754634522524177401744180835078168347490661620449765748963953733414471403935671158929944717351427680020835766563383960774586688278417427261428964154853602732292701161086133512599840948203035423801834636699480546999291529146627892353856837546877195647063749202928260165143459272712451171831688835461966784452984431581309963503911203809243289147710687080842783309076720556580157498919440849396459127878600141332266711214082326458348719534081818672311650617606361842368578818549431478414580818408854624791985095021998017677938622467696629058437485371989829230371411107038886053644655741649734492582463980288325281395371208823596950241951888738592332560385203381607323069126342787448190634575614701169943235179576811211817258856655769275907367501056995143838233850674271541291798145729857338514206212784896938342662007677684755458018165837352942352398330683789126986111806696302527534705804378325484318920644321148588957229635856875899185501929368679215705427699280388234292486548295218542277169593971681907315117255259739339482674954448971665336919233451427804998297524833815489014043750341340169262850911116802925028797419110243770257099636654169667232156511814674791308579189726620175612503808948283858099698364477153822916813595390870104244428293133744573595811117792491826024914434358062463449720944884473176120419935252217080902098915564219720225467241012889209217200023255134172588290318809628392839727560219314323995034630865093403754675805971968293571763577613133020469961112728152809042624843740681393933580046725323744697413326485060828347010645065958261251605637022425920496369766385725165296553521447607139954538557846146449897468386312150171340406403161073614886980502963686032652133470088553255592105073134886485813763203319597776531994926900195222715633999620360489640591621578904346647081704944747893313747658358035805309808793657969454470190409310477972785018750944490354284224220839210731213640131681290221367378512747458856079649631246518331654227096284124452151621256171021190510417784717551561819030829669278588017013658893505220750830655523980912743488832992468207203187973862959857744445772272001069753937844558712152713364954957804778375540366445161755558129631927588139470126054305062825309789020723360142315129139295677502295862289860330244039376080195181527202365199181909304059702622247242321919551831563783699285723393936950814581004968916177464823986785691164946912448978153960110563187658328133626324816578549827360895380479792531695038938978959305058476346766234966867898095235715060311668530018701245636153998164993805201008454629877658680224950274365763112938620117868332386948580251527474601778800171578006802242139990312088986465880805812973759867070340812474779456949346166668974608833547032486100542969237783026130815647574574209075933226928615574039046968990276959613968853563907419665747818026360710098126350794040521252700932629853762180078595881099460196843422579119113554384259549119005996786307042974667007703218712001810820952791622345883042005824654488895650678769357874247987769693545174610609402711292676695523114257897883350860291662597994598137858310009074684779079666991499449486457684044731986533522285705085243785968992391806371586867890263645569334569781590042229012082851695689963434553595199495815870561079979825853511172899909947442452261495482517068265418684331905414282842358630862579946557839146246128470004348336674570827632455139621180952520814820629073982134014758928009524663883216968970644534612337183906427242570105541729198465147194443493346893052252935294755775858029373224104474247526378623313807217722319459695460712142062670476714077923297699200099944212269030905827565570233093865246429865941105053080396437414378677805933324531534845785811650703840526158614305301798245026164968039105349378194558411238600444073895098432916523691708714455979334673620865495713883005130494455494352775496037604162854440431169430730504713482959854454234148215518142619442116947235692990635191033476148461814063230645212221884228715691686837467611493659141836267181030731706567783581930091843853894936758308359147537955254857270581773921373099398922971059087726366250394690173826412954765773511043340613464629592364493434090604981839386451129872937930711802915652094544270638823310061384873304038989439025477795108044840967249002760620624214233701167808913862103536598281160121440063659907645426211700277204445934715089388793726128929678036986788475556799310443385116648641620050502276928929350079607036199547471280015393274029845587302600016071333161939905931578223636979857817787419039053840379001565786846691441818002720431965328812408629804587299675556783051639034073984117820677824176375082740818163229491132278754570733615684461880512394728604377278403352061117452189400233858622056408713549776962760544428938863996595403225477839785865900690845056903931028067041912737384898700743418633119627366226403924314158665462765259015712631165228054577224812114012009528114348615498298422788731878817445305958681848467990212805201816741832145018662734842376992807489930092557780679406517680846051748613262775383076897336794838509737762213997620632723171409468719555722002347979732275351714654482511897399634004239789421725535071849598661461289754768229643891546182107138891556583048959801022239407589563963331364314091672013495946167452410467015952072778127406089525658888564090037574600722870177111923547512270797049875739435469697038857967768570450887002609149833826529464391873750492644640322201914494025208287198542131770690763172641000106026141354558037457731877176805725845823147113284093313290210251161765499625265400409411731180711656526425446232642317700248101010537328652078975590853728649255295372157422224081177459392418906664298107572666675158827774410861338351056938823561158385590340806555146177769956458224843364425840044020834823154912456302014113600220470611787907717662101693116300273699188900281874506194004582537364141998309429185892220337465143563184071144101855637568746678932276353368668176958037968287790903066251374217306876868000703669996573962630584186146005260646910811993724205820201286779793762543496844516705183855477447887547330459685434525543784532173230258011918626059285844918839048685731913490699720337941047506781857888546762750758510149042113333290636443826066043205595786127239401684458488993529557250357599199889308952875388327480134372824601308144124337527548424518527541360822423771448506370456047387807381967205860436643005295548014732929340136855320510385838829047358805948977717705317009839351346265106983674892220007819319479690346125586083237447035693605433638493100446169696359192152045971078290235659850052116199888986957501134510879477333915867009687110768498425354755179904146871265324551508491250830676278843050540597471705333154802435924947238420626277656694972880380113675110777100552179583630814287091714136670199629197515437314045423119404154456499662085158839062196969394551291656722449694591584334812881637186909337128259006907814650754248253651495413842104683260004180048795403823880487565662425953283404694170061034624170716468867739172407828339357315285857264633711329921915380728815049428064821849105099965886716278565539632652347295765028083336545524524357386643247772216335145070063375607117624580205692559684565258390462452601156636825818864134281223116219377112761529129968135620226178415683336104634593403524297796357431484316439322570617055054815699763519364618377267912962423572418255879922353758599574982070635807403470443008658331628190295958976452754516859808594284449103628383184919669694788867454083454963459533682869235214152118080072137044634807078964853221759146063262204714063726111015834486069015749213209232599857414564066572946425140869615388765721488169138817916485504494705752327629026235352915991648583769114123944499460724219267785774611174304440242555066807699970772881220869794268703480657604138012796376122125107652154881798113430063336665611526749632422558950169223457850428481319462675923147916835481251805001870080255667070013661484606041654600720239579303575585894515319041219972286321011624270302337971496680142069578555986126260738807294388419577968569796001130097478615269153683726973951862527436299913302263301032097994847390037832647293229801025261082780796460559629150854790438065060676951198908556069209262518184605825101153321638732843154956295072683319136056241048630788948328175254148583301223521072082827607445155281195811711006220552734986305421054802517919456243934455540842066742032043016101851137779240889902563150457573578928294117903958251213069051104418559324908929041720862566965828724716673918257522099662007839457269451636793728952480007701072117086471579729022355760277326741400593416036603334850134367459690518534508379262493809146775807566389192684498048073717891082742109323616153021555668512929690251683652939433017000173100082532023964569615753547395253222819935896783257567488124802444753355533028400448106286618835132731262907923003984613846447624104815502865609915717342079367343748892736341142588209879020161630466631421220298850037307247913313274527022392851989119526887996506256919839368986482569549362393482922014442238939512580302886729085399866699578989401479012031771222584344083013775573758682811847829131660358257883784443682394161759070905848235189838700775695048864168605729393081190501321837067624451650987976824649644046969653941097271829531403986088780849989185174242033556056185828408176963626555965431248586243241544738485210984983879108396577026591034555194525580358203594362259873684568471138223032107901820665322402454896442249351997774816910738403909665406441624280740380652601243947877868706955080269784497630653113468434231437335370555294297656764807485736553847735172068934023439850802121492108934565414847204381714898734798870932546103345612213749834329119579702578230692033681707593093008613788071973885819693684166700838763496040040205779519973334447128183619042363643279436969624416608004007907914206094647697526580098272862382078698213384562966744047216678993412789188715706809327415531329689687765414766765904825714364306413523064753513981475717462093655663941453984285332552228966980663764363618726510454109109779778024122675082419954127970777008773171314637202876392080095258575000010442237084518220825196714557806473614054584988853697686635981041625649958949300737531737219255965752663221227923156242434957520580625407540243437174697811637067366314309836404153892584751140261686138368948838852872405098910307394154289802250457657504178605379802915220311303321322034417964887537549313197035546810072573432624917055872015489866196682464848181931878091832121598567399954180766365502707133238718317211922919705124988592832685679587753977749337156146780565067924898314538509813548130825135653914246679761173682191400337263973438906607822711253234153231388096102849319471566905616910219291891181970318376139658433460991877805102597293333957256248747616117266152717698783054497581359290148561284765354762050661622960627632289566295739348093454052767201442862386933486061279514646532768739281915589897519676115367878927759242788214304045472048609293229036755485768251682915483981108346231922829187251712840745397339948119779071761507479912354837747129185154697373942193172625775103022581473225811971754872031205362733002078536339807502088803347079992526355387504162451751784198294169982522512371339243850998685035940741001215186908058966589809269624606758721503882550324541225590626388154061100962454206000720964736471090321231856686149062009857271872172056451328844750039019397796582624555490767062114362611922720695648954761615154158006487141720988094157741363975664656246612430130714595025429540078433066737252095587720120009118919722142519387480242943760930553320399975259349152315969486490161338626840645539552769488169031567178525938854248000567531005379396497883247904795741775373816450000232076162469978008541987225810107235794722563994256067174322378978223023132196041670253046244205826864552652541540647390484011330556531564447374539259212076266627207235726356647518566405388932906968258180704292554384699718857007906259713935763291232109035757992249473830506039107798714314689693797156269403520445643013662634038213264169512136146948354390613971637930569844377402055930668245347658828760417759358578611846449873975914209714485858647112095875732483736065605625577019741735350742381046080519096514964525501026446076025032896579154658555123485102921804891899337570244104451575815142583756118366100928848401487320865524261724823457321125232402465339191430629779265801137816272679574377997061368855594909232578639922255764324303953489480045705150270007234711945275453055545113080593339818848627331302793601890472970311706142771184667197494070148750006867701127291815228961223698568490972923207633869346006350206997506963146166330581755528019431187720139467404657876975902813208471898049693217421821890784969356180523111059711866884588601470029866554262172047578819410047890193361414987292553106902404645477954752416936227636108462067145594772244645556420305394626298142286948787960254938603544295030900065103675554543548691624181322049589378633989468808702971360930354248337810771727658876624419160018490996667680353686891317363452457957726264076694090309100852134922618096388245271770631963548715381516983899789822315130822810922395673056230261243196479517065340970570086861317347796569563669805922784781409592680435301704296812617216625898250651587454598758733422057911765087375023697247712702318299332771792188742471329315199418669622242283895860538559599022121136481075783713739326413462396773457205065481887926769178124328329424187704443674796835639870757168300318577478407514590729204320548654823636347473071576771129393273180035667270687242028751894730311158039157438170915008688550926475782675428270252297626837620043511896170818087682807034184914959957728745399204315213236454955163421367352782895837236216931596640698854570711047408852206695813381009475838416301184838773103437707102411712498057713526897045453804731334280431288004270406096928878290949268711228653130050633195592532883204351850343959889870248386214182473412735977568560638214278892990803124289465259600246406681726012944922609731639578198085403995768808342248196940009690003645225484774175263924987394938943215840301440697173646541358790404155451941099080317255849637762821670722535318626236601571213387069810922895265998977199930557970316363294373291463355507955022093980362178222097947630219686638046921054904377703351367387014765223373555632373786169728658395087552149193528345593831472168472607101865809549872124511930756010097575126135815457745348591186216749993043952154691126034527806579429423011235159063499684447842416744612823815506847154206807934036771540972881662493616273314888595106038012189685291546307388841867159016997967427173595946902313862430702737134922576581703892276727049316124278613089701496951384880063099028022589630869254474602980266827345700128690026838839681976928404481906701781412483646278047130830630944394753680730079032330329805434171439849349368907700532410256127418411695004046640417156455282325669083229494540105162037485521723566130840655539892155510877488192770060412477458823376326267237126891765909884962157495952540254053715238470775695385514610046259817925895307902209514133177920906821166570188816986563030974003784533663571293608165994924635793111338764669276736489875349769833649363051670744094151106390455216442477580778816229004359433067683623559076906291077621079222714763043170979224460831263017564353725792645828287440441310045608598208182186303940575125814624951879303234297446754817065838719154383939236649438767038398091820953007978505280303054930404330265121855744068251825917950141551400869542866209449309428066280291378451151222019190660419821823314613700166742375333497127858971028793813108916405702994943763506657701693391454439489288660710364710741842984534935175204254513628839393482209677527486584305099921175849405396514630087694011957087289778512371688811119483853435410274893342590348524049364955084226016194551143297430541832047494037608285419658532738377667400784025599977525602128456008745249018240989372015534001956668386439948900078871516360195376247216279183919267520134318454748148861511039667437042716923254716970606914593391042164139605872183412819375767614804661902351960609326823096399610012924548663724185567286396302985900881329540030139258399375843699585070034918632680560126803452719145234874931527818131009036405341606712676008591139851594996704065640671249879724788150457858051131042425403657202890680153624641906720300189762194399474372196502704896605528468506295533827869885685011066584181582655018865990576525467690714569395060741203726301715669166069293745080716467091529674253951849187887099092623650189566850553911782930695396403604851312803961046356218480545116196386492181454301266463170701062232965606754331640382483482615451005684383519883133249106484936438825307406564068380055656533965069935759849769773041196535599562085523204317956984522946139615908191648798563337007992950801915961583150546222094658839267716394574225438807402080393482069659610318811075479223593608995426968640146825454583643704142607260113034567379481499418532910180204126725584691829023214232797280121066582257800433152396937443172429715169238975591151260987357683566541511409130384274553287816828818527229665181628343596229935882093345451188719622559596680034346293100527547335069360866839147131319734813057042646474033168601469098974497739207415185046258253475315365529750836408001881970467291226953194110037318701768057359250091686446593380090981563618804152005789870683092033395118053248219807084384270800731153440554860252576927124002020204837849630055537224087287986482799668466784703980428454472325544506327557551496638854901296760628090923361161435887840777062729776978026502936526385849361354707012007905422347575890391828255703783645709257167633812964434433195702691649773020215696455997014058027608557338379363388152335317448961646139102105070688862827978232072931023264154721887858982726530163484685293335335605485555713534758718341182026382626016196924741782590815454300022539715639230992041354298847855415734682469416247466009433061398889314620052446027893458771574987448089960777870758591674322613211155836361633646120228213349002465678465746404205268599174102712327168072937590516750313829628990942780422716147020989162064929049014248859256371856664612069708089274187632742190063243512202851012987886500854341831826599188092949747436777611925291761876674425627262643738997684955429590250666715256035158541202126166229137836700298820297423957572920718655848443631997151719421804836223612860319738434683826827121135613399418768436320009339365382069554300814496108294442911610972782598848318151450807781658773533823991909771947693317520707032213963812431578389705789712182567427333739759630783825098325069891637459821360281156812362474489111234192720833340324005949494269678260228597111800815389245220484658350622680399731105558983665282424559823775584552640270532547692197464958544133502734431991756824016320683649790040394671379204228736685872382038302733221499286406263275259825344712690883139828690608854530402098794645846172469162615616258118380408042189198815510014922206462047911234443825551875475844950917593228742977142710098154858950270158790511639094433148162221356510494778068609425885766869946858952506528643091720137282286301736278793370740766807558610815849217518138532428493582199436247608864197444280312847438817197681902353147729167176007962749612473745816446759384629449445831349400898292421297287993441205155883858320091307663075897935030647068764395799420932339056365129670676072421287167104964790916650183834257328068093817360818615235278686909735024260752896969657452507155285824059440115889757298156170915239559520228300648528745498156717394708226301709307045450315465026679110609544391937769217923346084960380371825751703241079015206068567060339380578714982602778732212672985015653736949827980496341317747721556045765033022516360398557716080193923618134786656249031633750706219673212639712502876122560892279484004161723077368880086806716059270690740493266334043118950205727306131719741818564632524783824751399974960883900115559579272613860492787662480448165580548544507434894324884424419943734867033036179005302216876832236158851217924885546783097089806680800915106477680882804427899105877359903204779302824673321350726355154568760311491560744851160732673791690359076348517945163906352697589323701658191689406786462356489963955779755570957093462874605167815136702463560033437266798084063303250335256025222145671585195739336134579835863125871551846555263858827892453646259751522223667924892487399769563330402943924627323572943040516107577047684990385310000945125448272551433970306050392295172364426597110471787682173253647495050922988526903076461407852521431732596206060313253273095731487101908928791574636809472939836987712559934738466014469545021367836859459925924799503915984583351098285892988168948759722483041536266820728227303475408403276830492597358869749596364513766761161696343069053743245503599619341219605215943128145807997070292112272799555478184032489000153694871947340217945593173336357103146071509054139619915189613668480446084692148497224427817509945754015599372144553450420850776562810202203882159404594514433912722907541806512607687124247218341277086831962501610674906670408200556963615185196872292469804269808202446018311531083751255826850052285778682630991764674469327086893327609262074909945379212291596948709823970514815163115856847669026931969648342600361008892296315129191994196444488890749840270032764756459543130652273588325157678802921317615635076300760389361114516384772291801107214954584244817671590846904677536795699872049716800593000251656132584290031306039596408820162666096407907225221437444556783962210472726591114421422217940611373949106472298660580917731396293205267889515901172507839247259866313205019005389039836501804028309864927161905754236948327579653687861294128593689625710198607673002385402710743354651808549499942440782540526466159760193336902144622075431101159362735965763487439504163875129672717300021945421838614595662648298907061536200156328565529195809072991883646834088446028278265704669347932584868727383470852918735139305634964189387112036193049705223132648016010867449562655694200565760780236421551314353907390764731773900212114425700732129736900197700456990634119490636226248891811396204231788058412014138178587760589406766088643511358868175972512859842420895541676523937025758912018108832622224505629249585358857399783392397307212954336976875629170528867217100204545907253408931879312497483765694495458227207290900068942493695143188746381869151935440724571266846592333800991989282562099690341864177404004178190476815314368812031204119561885794656953777640382058944875882321864207398676217327255675413110387284370182146628576262310996213121682343648285774353581205638175661343170250227009532990223106038277637243548682976183583540031505717654368204023717509592192698240527123296582399465431357480796444259896819296814079540732557246779268710361412660473524742704629848113458983038433140409838778587846632037937141839645409499475151382161673475703186537960238929032352897558501021632534504544758695161067008791512429683920893607778506877588000097222449001769189420464284797632640092422785873383480489953260649745146593277097650758974393484760693540975794292558966381932238308811549614511572488377559122929957198696620074861268895420340120948697371490359465673764534240694754693258071414042231170653277735853437516808843841191792222810542772427461556583136054006725382590372807668388456376185645410180007658863915954673322936618733186379731263700052088277621142363843518328791326417677752768581307099006584322749400937086663140356844179675547024358612770476418704524587019693453746757298915371548159663892730995606697726238876543499002857995962899171674817616647314376683036538353345669279732375286223628920805561685750394179445724337203242219440200996699360855922112526069391742998487463995689345174702947330676010844119652793118994818495813416260956700666501768656232386495265946320922384455085490641379427953248434030968506686544783155407815400519118949928769495103638881928471543896835360726262364501009340271553081777655210562553685401284044861645980201188002016627305166818351518529190369966556523278845151689276709772003318355835620830515281554576210174899935479373252833314570479524253804388333636072668030632056975499879297357595934524248126270812544885513304775086162783537114470990758187021574289917077152037522342165694165298159176940692089057209570862321434485714625584196584022648369356204273015294955873478680034786457627099946451139580677636748453810212028222408777197682434686618129596369356949036331225526050009448878456269184271660993855905397523377245838292397720632700844177317987784574941156876842459131504821559798106979277175918230168206145486730600481434748812314042723405551622034162485010886536959760629659449872680919546722508391725012628505354186446658221815808979373017248207170546834710201497025026807630938001260963500675469047562678544920092471338717399086520221328263686142998789503244575900626423567611930211183826063466355715543313515116017348685703835586986883856119619688352895796430768450567519332289664593748859342400099632019499838940087065040653879461266631037419713952087144671509177149640255396338782394763195851771906430639401311112689172855302553069073871720009261036288311643887401765177406196526082592983150220591778353518866763625350095475234414832148616725026042318897100007210429712599508812224980018928427286823523929936889717348438487774558169938616904556614430591684329291483101889262563863388131778377001489391375090621785361301938698897269726274144123955324766100350623250778105191734496390337540189903155208045349199854826753849478215394691017715833056786683751081808617674468124490542228527154221993911756233605465675474502239069856572949519147762008222391908452439391680386607077206593210045904157539318646071518999561290558263859532826031024873814788897519372856650162775502581810032502310152517616543464043502103702298370525252536702750769129124194731379128857736838960399952014651591153151212573723238884378745184914539408655439604696273406815428038881303319755288084237885788942381765267095004684035103323622957346378508791632215440404920238206535063474894702778120533496704766023146451812911721434768804413083548389219259080828317781579118926322557397449841341223918701459673373982890220674239875181562095883432963671769261703040466915057035582842785758540101501566223192452418419007107986035115095019560844673518805263278102208079084338918943272246052989642846217834164257609294727409471023633344208341864662532016725204665943908046535657799811590695395039259004171992802258579860836280121497618946370291849844962358883949423070954842542683511083316158885827253576284240771170097761020372533231493202102746338057057542488239517460222612678866562934822035447538411632167814374517688913209111087639884640248959620563844093153806988991051024957458988827222566876319556522336750641333363693289333522686762171972606581787225983837061890844369354582197042038409601476737904237694167197943430285148509138003452330946875040585158565618124388495759819322463431765176178839717228868499633092638274665988890302377199021470670308068191885755256136167701812614395422219057393782077653168504586300148602899801940164707384046108302146033464946171768195746974691915256592887124568698086611212341845906235636879831097574804659680948496419113469725864670209697230204585000330906561067452115403445316980186658623094041097862093800710053398593417672809043684486521064284600383861861260123358163666345320225637544632755691979177042258659304037741068055044079937647443914306446434159406605049400382236541681949928991118941688504577067341758459718565207243431764227514671076263965509788833567313461543654374344257888063505137050585384951292243205231647081103847878326722989613800228714852154808694330407140009121055772869995671548658959141370917558008081374130553194124049379214875310394604915035282891634085370905284159234576983747878592900110220311341944798816845668595023492740476290595918406987749162495729606258159649695720745046257112265077816597573290792273024342475693471076739007644183351849815674146731302889356062241020673399079287075738476041361088382102947624236153633283667214640145436031818656028475772762083258973477528797742095267912190282967639030068996340867969792246726620670234857776556424668793931600691465114536233930713352998201790440900213948415753138980978382616431718219970717358006150803951467467015123062489411892860305517344639888456886588073235957973685934865966004082834052108779695300569925050049040443666453117252724678754793287766807486135329554547727469471624854847292275464028578255782758030961367528238397545972991185702896185588077637512509081411613155948547934560776128177958853087608875885775779795586836289035651361780295456006887280707282584118078186452399874327714503670837036970860020823878499998164225045804518713586597057320443842602380288475067978937195745888882714923557575796039772992929366103465195646483899514869635213880032698232309975268608871834834081137134842059884932850605165132981830279195616020763062456977273448416123753501695229326004950721859077646735865696082853925628094653893149883699409434274235849780751824584588746104576148062315569138685202116584384703957007114159057654403834302986337485331289870067905387975362269551648497264239672017018452711949930442322995041962487024778346876696944803199105321021414712888500085245328494407715301155091214727130049758460103529375336220941444474759453857423437726305579586543953991325925908321817081178697644539196189881561644092712411376387335510690798557847958115889385886480891426782858067486429920026334250207993977589742491935310103118525714898725323536475501468443593863167451994961772953354335122098935936773488223326977206283877305590587268969346655630737468648243918224380995699523158629339704887149622833968459272588130761711658529970468387983290251220215385982595710917730370329361659020104529619038303350099622197236371784729595079937621598882829500148418813177173618526482384997520350811899966064723394275143717427133253736065896407282971513186696030746576755901152273712355560351669023447850551192449766474262269689430343554148717409287308930729574998778782745405749765728684285253525290996637379258487308955573063125934870784917620137876874802726930022949244774877686048178534669970144753111621788696505548635469109059801134836449581636701373251792913871921763298686418459942051810739698064240329755214867341775208068374077277862634130497528080003378338367087616398413769644744969160375504636102966665680381907150070444216698434186834088348886635576627592906084327655279313780529785294177431480789150209128384627770289411924610775840378742419034341529679417908226472567545821026213860823158206905212080617238109214316026074055010263412634460077925551690821116713061323806823092966462607335470467367944096078652370512451037255520495680273127111026408161839491527936116170456274694922103158801295234574975494356695307086116967049171434241321547031269959350539926076375788412468398235772545940936371769917593490838633778610552163466247057385216350781226574264854919541135161684273584541722042042174089607220830053774270503109090164819506708588129922126711483683163296967663116655006969805223013573615285740956012876988849619191309315578870066713449502543702347864001839183518719758341557529470122947579692187761312939428796475819385236947868878109778431072336171265769011345031550699840828805747659489920371062312674705661291024529695890225511372646505361468858746205633130171896277624310055300490609410003980060185852744056579973580446569691756500132313715997057899224965476341066125893297351686595044045888655584413638900355005745083816307262853769205617306509129735948270069780238179166387086400306064635429006023227387979041368418662640842090354623470386423978316357274404399145901623535094716162029223595207302606228979870062276630844259633543435791135673873212076926813759860608255904519953606570117864945850664410988248569639588796213749547408922873851717974914733949662193765653871886870154260793547196752140799336997216712286169811872818621200227274044833972243290983826264910284267954964374284063593408707805326391961787206634800110149666280029303140005070516405266940591440719443783470992067038800863464622618213113841722836441669501997445951775505113589773458722632572645036503962005484740547824721400431045672544796978850604006744107048444133893484572672423706104934204669443236089164217588322947610492451032563534305640254894385918075312262803848207450550336352376682619820962795049345781570348530513056055511602986514082051314166563527385372333986430912533140073354597974842615239045406760773308827148204936988058458641124801937327971480880983383263216752833826523850194572848631080942375383692822731763179889721590059220507681601112884206225955766823277218727663336187888012103666066655533167118910757119379668844749893677217759673610317730713189689127768036752695937938444104924192612373322775715043792539165829788453322795295990025436769516614425717534434017410039243373319803810037656275660041557181225958262713236258145315903365060632186030884973744896708665585990608520533383383041718237120524235447543419869437872436554428366417072997992987700052086061309103430396821873558824783609123472054717312078515399780657802161838617485737362413253887419803106938350319362242290749617002566647192828559092048155322829837809079437697720120420871568824863123106858228338521569298097239199013792251079032335501606627713681532890358582836675288070586831414151853755402969925021305732618299358611822856187814691409727069602818414590114636196147732745746046616010895519239159667929685679808244101634686758749469771934649363010491401397115628513133779408093031737342947059146429228185848062670103051691020188489678166248182962342100404996892334006946266523320996777386838385987445918085646076112014205363947992158043646970018775653707800257614443394401485348267378959500562005012282082783089522039951922925803072529198689524327076321344107636529242549134104176456507755785997995937131376899270570304096156635591082464756365449725016245727549515689674854555677222695291995537231636713612131459472749248767196466581619406795711184380894219833225772589065253377867495993623259025439866608334850886820137828700284184502066403999720031226260164629321694852161198719985236196407405424101570586738676381376973564291051917145852036466708218472592360941916107489854155489348648445008700755750906951030472917026996487912670480671137353812014229257501215942602624908144827907185430987277564053603727304905864344826059806762607736474056676466820236470320629088658440308811979086198990545537298121821519464194839813067501370272358380581611963956994567941647410279194889319935808999153552930561082317971552223979921841517764865250668316464407084671345412258836363007908806313996867327284683986836093967358990326973136763030798760458650505189003156485371119491509527664146577676591021952915056817185810206667073229741911230510720678184188327920633994109122581132834938921760133429413128252813418292644482181389629906794623494848501344138029831109196534265521879447470754670520204312589207525744782745845473803623066245442089638657497297972505555138003960621095856908741513367061145667526111511266569294555827548521998919931585414991057634545668584305913507551208496568061837991324090484320495993132191746003452111981936322678662371923526468386901380831831963644760948462442002016577271559062725351241338578533366427353628948886622896203083253866299484406265971138348021354775684948081818159501190273853455541107328797729401897247042702276291223284008757959232995424411110691703217335694034129727984131939264565439615345424292963567414706768708575732114459579771595150884780620259815613672505301466317198241582813695758283220527165894822603951384779608831293295989639198459024971606177276753751125363834264739275648914481079090186498205452333514517031825147649399239718947184042125095014497719456627639058653586938168103805832861652462726758770463517046365235216972161778196486164866433071958157839505392808426023062530917778719194104042614567813151575868607649969209780477716341761287868873254826242547653160771594043161292986333667454452991916963307430808409555749375741918012071038905836508141509136577469778137140464236679840207289204937964919565877505273987715386160916707212483626115735370370221835423251216645693951001823800001778293186311227974730261269895119048092349274947416411659514073105072772293896339303869618570309398703043603386759718977532983925165873661504994125038715804162826375256273037198817034717712669824425174849604328951065295449314921402801155553593099796082423618743345498373024833332078526579652954009791973017804723367555766218914175496989303662261416694011335851400009003596553330829735363997580550265319071094631238090392867228666632193659696706969637617390388487608815361783164453931526639631849513803575866648351656155212428847018137000242810286912005028560046364280976557692970080815647419441733377078033489920915529349597484875999322886543808167417751724647491232615672032491771677289218915887117084560102206287936249473349639640239855824609908970702277443219942236522597053784210899477180653386215746314934915494736800220498299742476406317595826748477369325970791281299676247197974275825091468573182486862539147746489000639458091811453166279838063729029718741407898625161080609960400489468671255434110087207784883058382203070193730363099556748637907074305356504181741586494323908300681460113710447229745411958501261125057013682375836981050340537995982727496475737864718012144331151482619518577967787076286309594005748771808451990277827658361916935032298692626991977977423149419054493008098631407836771939769170797064683013767324672987016372752731289624642703389940979614554139557099479888786466559896527440556158064454149136123651450657836786459369112834983833159562026614790314323429310705861818628802114469586654466475692848668329115119773411267830351966575366324668874812561230335664597831349729145721109881350893818169416281246485316721782793566763884669951441485709559070441714014031941322379078723253641268979468871714577222991752876492543623336374149980438472399929131540838740526438363541658061382371636725508217976502669624637480353806059109851328014619338144600203134564489783289091730697406752271704097963141741532601228182749609156700247786654169560280610241454318209093883759190216905053058349722027355542088058955793139479458245881980716672543673660250385827324163575256500830816210262999798416890563253634555730127786175698644871710745116830039797247063471863375931344994857775844789409829449116809221177357268993181528945658503569241302320656994284749182661255290863396534629657475613882795335512541690023244424345177551029542143876844579672330898277872911192683506512472780519851371137120849601130912839846707929289584272309911830940447424727980869067058704329946812046592383781297785327902057947204988256659566347630592189315089729137937001059785035887954361134308057231698289159173367674968158399601487794867476327800448193836800034490826147855952674761931566416837965419578501497473525274697215113642446930170781595171127216282650900038998600657711416141766003167549800561860349223745384533949892189620583932008866952687557907378771577777795442784591062531473134197548068272253451125970210297800732921046793979143966550834854065309156889265880877332739855792014269326228323612085011244784466875644016300039701320492836032279009389329494392073421098762957152770520725790054124358575652450941436564102795823522273401617249264932372247226266391585283200175322323228252277041286828893695282344894426057394116518000845513685916533217734074169138246750427028716679833065357146025460842045462152983319820694348730566015575538721829768722684414329135505938258959288060888398749954999563737167336868308862830129378075753223774677590709678613347535485899513858884289594636745683158867336754719821114101533994115137228515726869153917294748111822010773419055463614625217220973301077817752940120702793641624422303600919315949225170793113262015073314710423760608755874792346898465347351888673956422474447302197280080932105590013182533688833918277107409617039988326013774066502423190525786130690231951224406085466606475297650188286301950408291248751870924609529942174820996116402170251177770608255004780806973140468789061951270757271730243607850933803909552476417107700743422224568208162646976058021221063962236210965962194427241109950847350247365571587705337291364174849353794429941228867836862663778878256332808044101098204764569717470889501935995004899315101232979405321782455903953475458600496921013996905570452875536885849786547198181350988829206575585649606080415771181204856475464178628325523629563325858104147182579141319866120350888472518050250646273857501141203911036919892324614145883129915936725512711769815642649913976203575150041057514322068018770237897971250804054273868347802070680265889579292823258781920821656278140303068393577082068811235719158487914734235180478495107777545411629066888220309432428485573394026918302062836331562495316188124745962165229533213356318261447195610372899290654225688103861218446410720849642848402000586766351272235939999891832459045441407821515781639310047775643991393144721043380498305275621064722511663451023798763731537403116446624644868728384643435204466400444503518264476444220394524676298625787424647940843735221683198480775210870077865744849202475326499106789684095983186475171125501055097494503320016738486685452470273003442154302689603174339726957035960387805262439617080466304001088945656052933502489505996026188172769625153253704156113799645999948641738488983335128316354131733699003593271222514094524850162579428393129404386397551000051618701036475117472770134582391342592524655998026932723405763937481047780761378572862021204454160199538350182350455551356239646960464557085925798555847843111025542090853854599103214315990255481709335237703983058859415224830415223741894719798115630105001154598692843521061063594395268341653139736523232492467301677477784312974200944654154743503729979843091094896803951227941899339814511925126275840499807566083570996126509757818788487659497928708314613363503982371386063436101210481218459318353186009043414418058417919634556629448337875273295533160740176760130700328360340504751022652841026986321428393810360638951245510868355752010115824834360697599299615162285355522680155571859101299952884960481611560291255136717614242315731285898737963628596456808951412019425996771404871068004025517631823211141891737855565845714226225032375529740795472596376365367525654211702650027709710181953824918301905474152799040994288651779755836740358234125286023896299415840202625458764596427074888907278052150305194768770591726391731800377063105488049636320540782092610879772976079477927321232573554217683397342952483225508753483551161398571930744315796027867026392567121644760461364631634113544121885090532681507564527853743259533461692428692974390693504152517877473485263561635302676397205141614419857699911755841743204558751479684506241871551372374644976429774693371366418535215186655659004971350865971354180601544577730239434233960629129572967336684260957266910516350408062737259621718978140407838917277950772321560435404746741720336536698759549888493181071190307246556087261080208396689326372280177341865800158001088661930737604348877997656333786079040314102167994480988715201386850540420781472230798298020716691040453277793667678997065889110802594080330447360387611043425838601802476093564876743957285962613781303354136350161333359163147840002179188770443487922060969003934952739220863820291270735306046008986323386424370830143647399725286760163448956262974581428150883551218946989734342389452883455386504678783634260121275140294896579039640458032932379254650306749760418551541305729026878553030451674986884225479691238513109751476773036878287427816936499488516388053314269113320888040399326808032159109997086838426337912036997146728308313265783862611770126174726982069868901825525540250931171826279886760175090014758545531619741006314709515874005083608278557963951373799591768899989167254263713790868423793210152251941479373744913544521895779937497093665062075027101618841145284633773585347754791152962473779125780470983311153857249407060707023711772946554090269772700491090515975355918812978339916426936187055769610100082792672343307225874460268654496131186083051158073617713283950532516498432808495875084934858092644754480924912554905523466050492551994992667354147889877929399620550009438775303572451224578500015245548637259592383476342795666874237501702925138522400830899950007536376407829919758402094042910996174827137972440107098327780075101775255294328221131797291691708096402414381612808425170257428988733783158318248051847418992284413236410521699805656647335072757145273547334504117590108647031680966085983624446812177313960791788865555794597543359545440699668754956743816348301516702455898634494243989742773615816462722578184713418146186047963416503990659270792101359072858446569385258432934383807724144579616421986140699028795373871903645271534642078297530828464213998290182229515178086684597875925046912572211071924854468286884862844581272245995647456805372979819138551971328250623416827301998056534071388200477169882047691020456956791320937471781671736152408800393005243018583073635628955146820894226873433994091872476940362130905315555193075410833972747463985582761486908558562062789767802346673889383348256605279697334154772883175357223027285399499331951729445158266225071395085615300302478398148748797302881127323339472519180887570680083400553736333508993683295316800247898731585172108543239944359229377176752228174587178869863277853062115916757258862168211878003090277702462736763240685400395661320644890508198913347023501129249954249620413914694365152721340445948353317644939731543546728602880800912277096131297076540155764967789473173960931416514898146349094079998120425074779538751843204950474108114204822289542197704203680925473744236332954674341806894307786161643192806123098310501616265061961419458981572628950239378139276745084677400312064508896449061904242821417425042742775676840381638908826661964815912070050585979003138804168900720049514543863642682156411583424266429863746491936393525395287245104176272983807710204599005835662350758271903485341928593430726084583101492769731088078320275674560751376003192787667067211146692725936104847401314927392872576502450971220246099623508309407105697467159820724845440412998138295823378462535148079290657156140425769912148063986647279764913799683378047684775815898320418921246328456801383080755471860673687285946914039519645278038493557773529470144508844002085354278885881922804609971090120633071622836295192509448413612994426711575494720657186525846613871537354207898088193325882228662506621670564232852402731283906521533548017635811713919100110093975433545345244371192475706951650688754699040818218355387799897024628824340095140342900800671508331723288602879723978383172206944187326733273437108245984521186036103403007913671407960269210936419487380650084098526160870444818809121295970198406618166423759714153498836018923567127478810537918586453287485729979450622931526375373773933545778606867327002577456550058739355336183323697281367755865843449816671148256564371216359969655283743661026697328292582824362352981187272165619952203054702730704298803903565200198006627806417716307104672158337970714673818708253887816000901503771921867455584577093587506806716062274025289179972593363579623707649812142580950674438966373599132724709818496143730591691641429169297535565699084764207063633929888354420689059155532388873305449585945877919101936484917419134588402000142847462128503309671638411096425726946259698064780977210665822921382643562580921102685946047018800481823333436759085233456889822634573643287964972613274066066878964529950791231533235767794572362836257663621540320471136176031849820280937953783972534416977765651517435287047326590733979404027782617908625291507586279149958179750506524903217638975200681676209293629602917180609554074710150835365767054483998226754674689943614280898578441246513157913359146138564175019315527298995142478297652405182301473835975479987650597627803701482394578712062259015428156341863500100029234273869407809344396183744633777121724651269080509335184619601746239218015662063648643852410195689114335169383938977668903678579432206988224329134451912015978682340846983308390617960677922643074731416442131053438986648762816069037249504806348540134614336316246727981712854249131552296553074539960359857911883583106533749176522841493776850603315803001153703715620015147039147148911067109229159846951962415524468347099259532751767047957333534900352037804135290840532248048296272977868278861041217431131021548109119135723191644753298837046078590118569060239544324456088997009946577519648251856461813234006768176790024670571994478896412372835532508627813167932000344955401561716115497733696940318165044082320995392852813954469036410491774319342233685942918132343928146854925176208542954280193473518339908097641399879938638045079358754160127382067955914787891591356776255588925327717690074754367527478325348809540104411768667050558196101651717293575681486660664474508598945980281092907487769694575837737416184360375447359697834345234726374171660669404725414234704651193899196598852875769513220740992004563126481918329428262962520510850939060151999044383865326902164425831755872122615734228150531736942527216124635643631291343472677073787351460838328424687146274309331246236999120790756315940254612518886071276857277453587370098007343688124508909757047161386126955156019551717549559234455608384171521390886988152682780082806792677644665644949154134868975443278582921489819748565306152741130400431108353135287014430143075953510580809603010982150601679122302030160169831499133230323917891137193576163307199025823908402979365578215481430683411970027228827669207473175165663211249909033228934594579971317754962227301872599727302918664283450558090178764925714721896377507467939973884786752597408205369482917465110405969597988687498590550174168306963894216113921153391925904090981717046857851461844679277558163018663757193375443537783238010542986107410811749997158227267953993319093572188420223359104230291130133457899798735206934847300791506333947220142020801342552726222621989195657348944393756025683537206704778153390242869484869477428347413308374673928570767890051594579928128734512412658055980903875690274691567680743543105505359650224551810801920445011603067041275533822832871876905537006086456460537945182050441925726812387712644665133486148555464001973596928574899976921853500860248164249010577878065573118540185209376250537962977938011290471700063883098966484271502316764635646577844485306587187383077360492118325863322747804377728173348239973788143918990543076778612639364363419096645897648784352415451104964780875730951974117120213138183659982021352053368034271445331341163317734587476754385644824706331644191053278455595605800753231436429352457821311626157515624053174122825651373026163879047191905720242950746336569127808243962740833227595306021613078551811663900604188526605392959966875786628647414306083343001617856111021067388433861279755362006306677073959463022876904987794112914193432686290234103802558716374888931274084216133754870437455897152086214545450307410520367297928331271647113193655343177226709206097208002477324507788166578601407393065641331484787451313787856162351783431835775570006888345866125537815150261002387113342486353145887865452444845974120170606561508679301799702429068329145013614633404230502493514499232441966569159261674941458879687127206624284732065199085463551820778908018835808194994188688660967572083764218920331841932924838744915957790265134511101699015898565338780787341576050196433927340926807305646414116185346262322880087618229721616731472746812557242450681934931768409715307439056764815817380048229066376530482257493948462129711835537659589815820804747971141826498776390554149039813510125666432748205447342532441238224813237932033751245078828087423237909545541652639803914983150350503071934467154336985894276904254672748927095994013646503507579475683192860711142598687222529766591165256243614263746778273606194322790629135102245286003515859581909610216840359107980920743795092305501161998579019350601788468787155501313765679915917433665357459917153505702078899680941051707300542415994059869138245841475788215618221022169139897401791338941767843766370952174633964415687450917112818936527551991603054767533090924679119824071302057325930732227897781602435545826245391133334435096443747510060075300205462226855401730846482177008328214729625455954815354089431802300969660754630828185610130235168732164864552213929658582718349974124355960139272787156765911220335319311869258590676986865584392308993429511149929662249596323171984483333575462386298644061419384855659214166958510039332824379521366098689419840464413451451860465528963701116079060370634339186070594182788475148514845146148561585714760937657329893480167407468806983113961423914447808376025029300749243026382297207347707868660829841371891663554573364283668602971153228412925330341466823397609893043748699267057368172249251577082928514164071415697312436625378896300689702570731695294321517663606777149250263556016858387718962916545579450279984706740041450785157082362371589175528491574228680324449617255247055923656702049083785062878709083003406475948114229787023547616360184175963972058808229891032337616050272179586150912227281839509126176432563869334871616843542301483760407456916226893703419431834670444833117617361412186295039770068580538013576392185658406494227798256636943596519710404434173660895246736419696891388156369818448039842400420625679079874994665916462374076677074097289643960469021113176387155912968626033293683670149211091281098138435492842406962854594535340178782505572603819156577803026190757520955744296667994894390662933696811212163724331434782545476075906313405269087350904890479222630645191715062225978779134968688947937317984686937584522224974902191612339094591516662155683162668379347816726980508618364768604665809624000364770477742828918185636445135298562608987464871769158546292544852575051746913297879892595421249153012673634215763204936584125822720019260047672199272559489728211275130722505084768672825131157456904984912626344424448991630772017875222233313643107700185700810154372059434511293434454856415504138392253544435878246826261158139570929290183025801971638255991555742479867360527212233593109783779086983178328729115977161103887931168828777192591825059632606489436178074081372187212414682842453819130915376702262315463234220381933024539776905859289242980110313380275248458919449712934490057588318782832416778138540239211365686617030842450926660692922230678269470387689849964809072989594699205462494159329285532078454163721317627984085286321665303557272056005442133059261468128408164758526070620044286955137869788315576418419392235770030744426439276028495905724486015025535667115420507664638693488633170167118177907217376607810577096131736215733576482401007375937565063669982362036546303299820571485823481834889543821197538874599102450947277006338238740819318732461425907009191091968273252008490759540684739113392923201059488757923844894477299628344787679300883371487432259986536293605993669414505187346337312091480403911262233795931621872004925262379351654046078134260863056142491565927754536668110100448278130205430677447734138425114094397885524541446458817211490444358947376552945327711691106845748619806731698454106736829131013116204600624543255201115204825179604145946501989951367590044197128414370082533805705229450113895804097002321050913892911881892556737249719543548469161311919344594580654103334250599829332813896776483814913502533351522388543820612921574197764214090233672828991420835116066530655522879001606545779549391100019122695922486594890864824821933994131597305768282336872180606033896853267609507983322398837860518654032104439134299774225497232678971436136761748009336862008136544469339939566975425229255570093459012125398098651437771191637049687322641194215180713403862201425831503777204703187157628203196461373419894837453049641130760033796874660679107354045996029460181186482351775936264110783324739129974723959006032284395257831293035065298466142496017864650161086449152609803363191787915694437393284561815472564538238798238598289022804794932657711796974491269542931158257722876249293789485266385526058189953407449939680971169370791626623739251033417613798009217255464521490305680101656641867661800523402680827842276237616937040211701628611594572731842175675228627301317035790147921147627694151484672417767292482595969065963078999281758719278996942675150354035559051340958349599198323803799097088350155856957385904192178993858359462938500682253494161801580591323673157777509125933414398963320839496818007335501897267417984139781739458759099541815155692304226091886939039371888904274709403434907753551177427749787352349874013754429370513785641695578416441062232231926757039411074566543535699678167255730671405140486033745753411803280053078734139454071861531063521103034026669456897120253539626496267565925600536206443107115923327357739553387728192267080207053713671488671132499668065204395426610784908248704362145653088297749250944246421589629520742938440738147662521583805271013640013760863632338172066052558806467370251175556999687601162007235978565196736944807104841635300934523357965526701749829616052247630277648397061056171182481268933995507031214712012673145991907118228155897174518644927614849756293526753988116078142670008852339820833002592148144106084190315028792886053366911097967031995251659917854506275443599742270529783578924278291872421397313921471183483528182811114697476013757932807236627552273351836167102955623388454444601004358426798790585158580135163161833917016226994093689995082564733060479900627158890923153610742157657919050460693360667885411820539227379596792446319653146464824330112229924926393134729943446139915681234951126159624235108302351527079531740878380422346400938944011463381284212708919021724442385511736535045769387023627325154083714788801513365425896611915901183033414738679366363591307928119251683129157263340568854549417225684506612194857636168935950181498156381808402861347708205610369324361628798972016883163567171824266301641480329215042252099427105230614465772554689353679622175680711623429091256467186973400603299505966930503680051506795091722675526749617556710505521371073872790628346182673617979771627367979314604552142358023008788608524238642488202588357557351653705715755624548508267387967711158679542177878179351237267949133401082512875451569239547188937284471288151744996354836347928504080426787342023257664516972408849607790984311965490620256079182244686587136598490368781031031594864746831591414252021679000313822643976082305282161864558183194661095189699425969872928107606089434124822264918769233253928974932673268385780872498424511570014510611390807177013355602315383589825858160975261466150786216638145651088482910155171675543837286309965296234864931148495258906048848191102254511705399156783527411361616323002216676301908461277826381066815868675794754161720722170184914591963917205727408127667372126401144687749723583476155381131191780509336186873499073780068944352819955397890457430723740389976772862116588411722430948034029236124936985326590917741442978624662514554501748669247455676553215945525533044391130687933196515098611827972227228497697782956534982359510404895677845341273697056477861055509380709418366930604770678323911892026876208493476381518376235303621969404451166296865448371727853530624183949173294220771251340088865369068108807661123689914309863306463048207138906951317569129400723639645110215819552824642176995572831826967785131623536322414053605584591257202340052853119150706619351637856893253439964094606823477252458133132102172706411753278938336725313603533545402872085476991512095898858216444547287971980616648812273247412547032223350876894655468887459615564305149215923858107739828590530701958132245764622125344005316510755313857561612978519123593029564843286757340102966184130462782222301765810311612182663611460105582045850715607101626171240205553952394979697816782719783184481963076369283701772957987860122448726817359383230707197128014811659558452889189198104302709309866782775074490862903312623129580278130665900130295942381095001056531766671611544639658355212687196387047172405082311654594029749349898834404317143338801625453658744696032164726275877795426976722060971201415111554987149930470509854158031421476691253292998368307303691024981436364676969249669507516128407465289629092542193051171116090647484277352169617337859174533497251586486720130208904466246475448119433323478251057934917600506014300423793421805371749190547456373398005303386813114290358760835687019933189316072364336161824305139967785023750989040582217109160133848187098420888626338458395922532103574607548395829903177661469862620442863147889462600850303842335917225312182195218376973414409652976950794402828836272811922250331627524533202372446612727569515914464634180560324501513341904880609796333493471567088125908238586718634879788225505077743414786605173784411639928863417375819234928942261208422732861347101168846396727984196311225461021518943665242831223459807872508636940637311639196210825533280684306040908302709888593023161035811974874425697890528082824148623447881092116037222679725736925838597430682893343841152888591890061343343725970585932811527740003520333632729980792413357592293055278186259476311400134008312922393441662317173839964803348927835685961265194919483200949136263983692097021962737692530586388716395457436699838573983010064845318905679366826884921110009316943499549116968063607218496351204675557832870471702493855448566895232013340947339029683120838607438600831140444700414485537032891459436293802744404362460750308695323313635799707045714351713505132405905271148086000098609082727662612382430297420674269799605542203758905159806459512508196744268382343440631866739304815653455503810794127455460133759473532771071916963293963850758642423258705291244149803749423016886100364162846140580023839698787870087707747636327382171447806388715719777595301685227008745343688588996263351993061017072242621616987312575966721206719677634240945956660567213372927173107277563590201394792773756989458615763914881976533403812069421544915178486501596940904793377885061687885159704377816435202226843484452928327488080510104814014555770246449436883696427139691014995886051127818399078502849979768021288447905885967417132834096941030057424132783740847050035377349103459769155570826259671689087957894448747581422584181905965650723490452916865579394824950107151933158518656127271916888642584635122203206863030403899945154114313810408050352709031883497884691434079901012876809997468932962429171123822405020421764973546242830486334984511016834083228247968836022195815924180001252194286772435707232054770226870500018953604407665386253991749595792789453270819682035305419822400555493148855508897291475264287293848429580446164972014075730848853554599956601149961661671368306783158657161991061625456949366114256343310158134428509110773668476195264854668763054593213479142877171856166199753527259602652268435712481629598982187213004301477622274369291379199794689123702160526842323067643972119715935707293816847178235169930716440424700477816200448967865948181620049677823864248629169582919664521678476564491562089323964852755791071845168204529251491861681567367680021961474064402691000997719601848415972803983582132118386115353080392061382183906618428329413495072196852935136475175015107596482434932677285604832457903219011917769146115483069145999957543381653148509065993680753111868934698760237646639695577528965697328424720052373408863346197635128724227471566052835425494931249113023200196039931933090742775093402355590834098472771770133416380547676603542811586490893926687961928541812303394227841496699710469031855316645202755158681702212363180650183007022871084681554921766852784135817739233695559012387913107094198280303957565870055053804141671867335634853396557255351174522172253437410134745439907897073486192843469966151857424139424410439005292187335258921611152603649862627902546987543941978935661386631766663807501345954117599578606499674150926048512178897144933291040444744576237848052146062677399798164282026492627768176311442084791584083462630567040766628202415836868709605529319440342785890904763878078511267215651436543228789348542536197257265958213978110101449918501970042918276349624773412508927707110647762209961994444015041133073956414463300259436082097677997847575435302331580164350413747435147279157513490170205192361448196882961469410377424611463723802320829973968147550222794157928401846291092849183945786221245811936641956012891335879552243607464110822777452707225701441451943808261792464081291061517852815945226263846565610232880522928730249945208664623047587329757285948556935765355358466431477620942445544592403790751740189008883165833920280161879293378606014859131312043111121046269463541022787219416164202623071032149073284917626698412436816628255242380070701970466603944217460637773590573091615194007077768961760069496147899250501165037664645168678212635401598361573151285279046368385153402438924059541392032315432790849001515387919412038805540317080252577998712391149091417642300083761500178803059944293584478445431443320586012361763715011367682483331755332549446492017936960337947736319620327754397995183039183578798887119858019358464540846315662785900923297098294148003870762996800130362533275283526452082721578663830329591987087666044409460291506953023163092648275930269147874525826183964880245845612070706296176082605747843351068049643797975201851181208317737502665198010072043430365584317092064584723472022292037146617945920618163227962366800878993066905563064966340359680268983532090395293133261351751924868419216482714035658286135482535989862363598015879436620402123906858675442438718608246072428310983094210295988915771317441666889568091946493539824887247432505153300046713230270301753829608048595144058291055251353238102427605897164984958507939310653689384918736375680486617773040673386226325473209280475648153745369784864082694618150402896220608308529696830675035146938903630085855996307848157417773410208897302217031408291868742454679381874928742754071458478791397071742017124389257846138535568648941466718823606064541401580306064480474389416425707582625288014776923380956429264517778570679068224981684233590296004329227381598285474691821674359086750413734115512698762836615146374945533490760378101476254199441210292417322866238187762250215898418362964957131213686429267167741618256028876781010299800860198301109934735387871014580525994015462163284046989030103310022751924853035268128088411348192059394200471241983873595106231195289357518304309864670411185100595622142774543453969064869066946243061493421694837056371580194572099533691999796210390141800737387696394153914406120099154629023021102983373689677414388439057686667034820695188356766073146004778798063112482887687689139705530704226788756226709516990665659634988448908383413619949294430187805637662550097513427413834783317785433910254826022299765098974193814541028549524766359597660922827427426156716676008019751887236264516857229523574694207529013534463839544350354418561084064813940994264182624668271369082165199538097093391959609535428037619348640858428542125490624489485133220849212738287884599957569261932196050930848326997381998257238966640008029286058598042814085166950665144761759222208047179053247721715504387489794593149714602775079619548064330337182537874616292444067761299829678544590132474852446632026883453502548069171272344626235634201797738438358920773578985687697004070647062133936287033493718003231240244800622281136103334911412053132619976158936022920140241068703966256816581805308852030120992446575408821396074729982956797407567321698997461559227469383886738101439508510988227515698159891929882081273753025626681593432922329273756283524107810123029128999603944010876424931438637012378507675649790445773582159697216683597432486336449673813850798542426024456097368686967042102065262773612692033088447718488845014820376039014007737210961827909781487699053649477905385334744215821622664367020559692131035456590970395981912307313889149008319300190933760298290773882325984829138073233348484007144357175492609943342307354733307581124846893056402069376345266509737536081004261370462072149423982286741443907286229800123431293925407829279887215029888109621745704005063066905113624801999965473247572996414852269991345509762676190898433970531397805775468886391005538308042849368638718689064039386400981433465864564378318873968842932447872053171674598751636623011690849700191630950398868504141783509768534246472730289725807787859130248727735922049283361681383318091735235786273360143080797338284235131903756533935164386751453119018314104221239018714905140701013719778969537102686872400512363839775172938618747630173406209769484086066830876943812171335223699500125156748083452419397503665923092319187738129068462874135768035771737298784969270803411678399628846338956626616966378646846241021916514358288179718494180163484155555391250152243039469051343000859606314088580739483482772606808150352450212908743914413446253388210369707684844223098670418365911909622100812429568013351855429116530924361178130992075000661160535781238553000801209205087845545152057436896918013366223203143537895561268236893501019663080370714417679681011754663878881346740999599339041141724090440510809402536043539702838952961548663573346736808437959172158981819421042124317070729337522304771913710412982455620810363515486376782174692943401189815841474072950608151942201397434220000381505267108809066991911162924696672193961209760784841782402269460312765932468670796033379759238559532272754072688640839637846015654157647305603430170538428966446358301321174716989217886693058328242729864049116719263438177892442064104996917924242699120374108166332320531364804040687970054865768304774240140183578810471533376443103055535874860709983428821268531147424182458116999108311573995853004271848584681246764227866882252388987858203160333501737578395480633004754303204095928210998923169936761521179915836569091290517319353353283799995135247005369080043268621622174980776483839772402317696470287514829316530644157714444825288998826259425186783461955368880493491920725918347947310300865442849694784489959674057885116680934771225701477408199102467509369742181002094150794350059889083987433842703575122841494989737614344622207032031218253607336290684554504709747819397541636148093271651388821818521671095258922195963494288281287567276932256116358799269409654585753694151876781599818323028655328309561381830552449120999640845382149470847843524411859017596567016028797224754557185055813134438420150881969537466375518060864045470856987225003477259555369918811950005866576939820354618541082287640721781396209809816566724917202557729941104914638404323698312218310775994554567081928571687884338495386864445786886113199661550565574992002743110663908884909043601016216522538183110599910660452190002448249005184967591281600873685446505031807039019114449626571437219755974982980704991993402858209610632795696164558729332738467915076983189918600156707969628142558712716407745094506963179242233317842733534714224885343791526054949238306845855162882079573306569924415642704267487267865860925906730489856879124147608750009762231685144739630572550603858767090846924677371816343714919265194048727715231772589752110623327416855080985738217230895870982277655503295537758726379194976697527117327275655627257666730627211040167224188981506352653169557842512839370966260721984195827903364570521439324131799177846388754869863090401774836610022806491010031818930884711151944982931078686380433096059498086599274918402003806175236567225860095623752032811911031220448893305502565875861000062571868783110647892076954239172158409164659441701851858971384885448700799987500509726989457655122979526805513266760303773357020768346143938176802359034548164834318223125811148006406629403032672559740367251169436780314350683609641703167002433457517649871889052258054849291698000599806627443101138965540520855996431224467888460086488728974791148924686899243716099785966293430872781324607416898523447501678448608568875676505794760070007522517847823663513681015241851228256902214960449618281007383542668321531478745761369196756535126049681065319171864149623461455944485873790019360747372401664481422441910938998219539412240784125008876494450438945234512432742905952645277042121304502213825432337721565836299545470941253581036180852530303310312424260310342946513973302536020503364827076093000447554152820404085197284215274886119487662465375002406044584640170649380963929523789219692279451693161213392672354917916617949808305480991657126854127717972829710534893565638725785499780989010438299667471739350495063126003336122156500605718344902666551749268701092099769056916233158332955916981231621042706867472568153531645409157147289546810081498272605717378511829206332792040499513603394599071545333106745959178856283832375159937948578274977299377387671065853336691621816215018942727126827114100914635523055509813266564089682952655319177965068180855532430663463539606920932764311873465872151446205036722888902681439708206060368145293883875133319035661378062803508423074939029421898157714047504248101300327168790763986145565723259859702281438592325521363582307908955752647791698494785820281667308175168141372623259224520150849956401170453515816690679211858156120728499966356873145603425783041929422286576554095942895957302608758610801902045241133537353789199634855293932259569273185958845747618724940138273870562564020549841865660562045814068848100864565104672917294315558588774198293017483791067706565500238542680742790221064792015110849260017977635703640079440167955616297273004399380180186372962936346329345112563515308457271345760753369210219318983537667426454328083129714534148306981110032363225052295012979539686797577728121179130477194273432318342813153325046679461083805061202316816839444397452089622659281732069450533610226808641404956698929438145114297205798964189678286781637727531898058542186586810066595514535023971740381432551053579345393969403551727231137243015968201150241258838631693672950834549518222871718097991567946194225269796045209541258717339959713370683939642216695878793282511788810002357713494837363164828650601370182441254819647056066306900412281569394135289344285851529075996167743773200998722560538832333466373457827669975338787337274895353399584534064483607232268838035620031799437452238200665632060808908648120846015356372822554985220129841035129222285218670835097172207356488034336284317721417324157743774592547972043893575834582143957296725846885840197255558051359212513319214191207975634916120300178961451832523616867369506551142854263012413889206939554612797257031588604526016594914581895948607725888486039030435223286427857622719239406269164503126134805968082720964322335979371428533875055073555872797537909788286955187316516280378644396121579405258753045111647699322848577106069401232730745056205234545530045701793181026653124339353648066164145038899523907798799424842178634223803788250892515278081467054362598670055633256184890484953911951573796153012581808397018213063016318710523444595010637128034568333906046172300868904181780089193919810198554848787103180231640679831593603584900764940973970550678053930611932520088297536120244198848203282012051307649117211930133216848234821858760010689402098019072013711315503658395461183883544423417097711023741244092429839208162014659323882070049980521820384776967996618706299566870283181170576433569561567918863247752679007580233667133110743583413145889209660893034229078584625296502701467393442869276924739276162314196824551838542218012015196524798798776115247287028586757612568895578626647924390679543277117916125401005422511831294596128467536249218250346589962862662412504357142469436250827771665739543995400187620741108495417606453224908546467426891332759562719141929702881785207382843280434545904491484268093554190281791304066550543172755320491009367010474416086637737455517023846513767061460322279049657309307336060703720387809755602181911628167130513482820400162044064275108092942539050448299475745051256128575558470268539942029567919760715020368421878936768291532674887717221249274752108504005895304863828711825665509797297548042572713812219289199229362275848651618741814310955825581773535237466933592364235012507108517315977560882861406405799811782417089327006970119212260352354595364407053405154917252176456410832704892812176857331104549261166451670932003811579381150513944686000472666729241056642918072160094334521173367123933992373478441952152314113737489296409655165927909181922297459882078080039064007143688570818747851427049872149971030578211048775720427006406405435735440808484775364168686439705297047922846276062307986844362256978209676367517708234170753530055838123119526072656285701681165094734891038074456533266372822891768274399719054750425821625950381456332739324765582997388995704578464274712110568456252044271614456894054715458119801045695432674653154141493772974224053619893081082439220654050255660608653996906855441990200014830481441486935702457475527707580679603667710503030202964989388789177531146041230476789033979547153634136355943920836826937623009932112946362347588577319195984484563867630237862223012431789836476727860391989654166761404904777973052572279517155029759430155205494787248237094358298911478702143644164726834217565018056799498174045250086976049228691360808185233221903149863838809770516615138951435334727807749080455452029295062234609937188755527765539989430863343834950744146657361595194491060952366896998017503942793246760078945491551616217493434627569901357748588750175780756180443520466097890387236133175924220031447763077947054848668666741365297788854274411654195432746784816438891566032190333492763780402304624785796760894772170750086064600940457798600633201819230930933164967879309296854980480156126180132587693279637457749924105843476406035235231708013116019446436599838065745725521124658848262474364082945567623781078909624761831337282305752369909968844132374002567364177041903031858960163216863181425415871158181281569065521895287395195539478892587657494556239716735321991179216155392521412021146193972804674424063799799784774991210145630362029096560538004740409922055023927873590706669782254080560775621114936715316006605811445758092863144327076929166692920877595852654953684729319381989343587305380725383549121381777030456244850788398378269528455579541116895491475646266116407208805316676030988257429981594065187370575045930801745742553110794403628837828527452815735347298339396432193315159827130987334733695722181261027819277531873337142774437740418857832724230391272529319562203078095461864641290749211263756261548101788234069499193397059503488289760689053377703036189630937518761185538313219475694675286249834037252817287903274849406751255340757382962012409976599038098838150799164136464600914225204332024147000023325936243053410228077917116716736927832213221830272860586982020760842627088297807110150999071947734558117267308270395392816674191338686761249786166506477260636952796947904315261657742984468534472292070174563889844917128826238151098028944427342479561709777372138982099694911477084566823732693790487774676176329244223540968009734463398071993149983737190728073130954234343260886236475037133350791864413195280625281839981856528138040897015481205979002579207868621193177358096352699223350858940088628282263533702746587731571566670146971608646053202410781383466237456371807871142501309235001562656512564848732510236785463505936655884093602376868596598475752011694049037429929555848155591697168312498386834683934084407706254444511641204329055309214507497843739826688513884259399315059102735563957521476772400407426009701402895747176829865479247494581625617542695446401878520429951053461339221937097796271496592558746236554222354702546038956474068186929639063770374757765409463719208176642639843659112952691523419540798755968157682370664288787080639557087047070484726341988414893609058304400830922985335032735176435708187255934062418593057033071073777788323721630285163250506452043725024571632055079421787490083628275137872519367632646361049679220061584632002741899924060147322856109777892050863772485956400317369402205506209325030218458020185807524061856751482845343245953331651783565851060227171355223888458943149050421286538771125330563441511738673397083574672949100838701579021920649875196364201501169159931374850747946448558217113146670112713410150777021783315568415504720038902978578097705280389093558858816972692943532796830912588576283575054562535693890371677629727498238752289000525562108142766258064562216749140680394808663312435637039750128947811649982319866207538063917995548468320037618903576315328520403344911392929023199302183258178340728266295366327840998468266478018850221018698990023391431709847445524510723089275949593954209842425612868976951817525889994308043177687135832085938204966337112289481655876762228072712743968746377899390469949095566229312317970886015911170317001683226479492647670381317962670646006764177806288794779330839256130950441168263749909783860795263393847039331501645508731919828988444599850400235401353494480308644051103649091770587307315787178120093255933746428182946363605136556460881269414150292561098547840485447211714522543920096677041429548809411759975789900035919037971845439611165107112858566479464510758449516668056640528453386048690503260332561810113153372537308657670304282061490503461192882445617954080804297392960200984444152141972743130609015190044342905293773326117511724531786468689458082396621110666240144534978661907502019375392161251281076760156883860908826380763757821786458862720987462567825439538889270894360101535619060448917890929491423547864530378933123338498241707071036569131085204991453982560714785916117919378059470794166655535814692499817230829321540917540348873451589297506513480216410449269706315670868247977632953793391325756742680054140111777407372721833734930985343102800056275490947056266023022123572558875605034871487107709206405990142320799573559824747928058398412545631384925042820116557472114197004241557936070142853656705877122050393397163456411053491855080216935100203573141352371989417608527081293690926188462216153107572998137629202430949891046991005641786561306346082907138327255398862094416284906926000135520528550751402262633407937201157392114066238376846372658358383022833093088210697458959733063817364516657613533037608561306177565312231797732806325697500463474714843497842754603226575600597791552745038610222049782404410145334519640435406576802600261358701147869840388954545122209274444311805155042976207438284904425401997834491705963982766854575145682948734218312645063309269791358708288996045237838910043647970974539724652949954489866705701493059897246542074811419327366291415298385809555408428446012645304052457416795062289743657231433212886794924445328936766128160983501522201398058004799576629634430828962363050874143790137394566848468050837259491453877784197574070490518553945117146235822018109229395867557180654839951474117628086050635881129390968038345338136939170219876988156344467968611874093705119524163967706083039211795448734540570841956008218607101437671592962027094886714371885482849976354268014467277019603717836551569948942357875402011231599805141282465263709887631430688338390367077544086464209132893092790531050838254464865454444348056067908219250161089471852063639997876546254549926391723573204672051850157832518377691934012259857091056177576065658052128933528726890205829995520729348275005298198864703085641357995732953743985318856218293069728050513666077722721045688494967681360529623464140973766691631647939200141571405851241890001842389088416866255843525526690770089677761284322051923519098479679272915169192988963626194128011762612619690394160529473759475772907477108116936490721402145030394898152320864546744487390616312924950775189734366871834761792414000907424465719738383315748937438439052707725583896696604631058888387359164612622455355002316549027563142646494925893129826326717686758785790069625045197353484580367224499734572509252064779619338136446196092389587936744653531011457162601454903353316517710177030985323927933356829926621654475541445815444451399217518774503107163240780202561251749592569442763991604631486847463593324279581249501078047619846017247551091462747916546227770990364764072362589402110859750472334024540932606024402546858078542198361597101435320561011755976791696975319831965094529653934582459898962981036937857570974434094512323564755449751627612321310741891056602245967914025936847424531380089964869901893056033407907390818952878366902068465381276364828081835526354841441401818442858248399044571131982206798476090561295411297992221622173016988661346148356997587114565352073426964222371224658189485080179228298043754917495263623548239806448702553320644702119021004197050534619772355522402978381732208817713235583950083134992298877056788811776396483887488210689437200592672026015460619715018394712850881986036494754058335746877535885872541302442580749835721250992842387270608314752474421327127621002041650043010233084085451916699346114482285634995134599682230960504374483176213328543684282979881780366780923519160181494535682031172476759595300299996936441860706236742399450388196545158287716936804982293632052826688563252833691666395979472593789730734978253194418531156569620899355309016608558435654067653936160933810521075123942077794800658027851364398695487270630169282239141908652515283046108956166591592991558333693352928089924794373815794119137998949433600245067748713627756399228069167437773709128298047261032303370483983083927409722455629359594601004063437127891137233075135231693235086685122040358703016989882605801901534828189646618431973339245709497956993400444694892686080163040473826384938194882904063782769498529839131674915943935395260792713222478631815625125764433407013553711198370810427414458835633110863799915319492760797861399753807409971972394448165309288631654757510657803631417494596801584376746500431410894058663917033786416658648413262185795981841569095744349417907615841608450279925093494705327791341510823801594363758314308313934903404596013552817625847578434699434768412383535178415362299982975173374710026323936752643797005461254320627336061014774568745212164919655483527622028713786853697102755024745193344657239738527106837674325184861263366894390888318499470929247922028656100663946282259539742051540302223355704082367259840357680003522028632515761993138727241604438061455396012742231223451873459282219586328335401106352927465037939585771513316353805012315387853558781709186593660402510863662565217987158890443672546743156679726684492318047916085358899457385267281725152684626482677877243338191651808740305910869476143729037750129653547250162653787824565136901992901049101629813367126252118938425337695795133984460329055769466427747203641498876847324591742037457743597649563730804691235935751152276529348137603010117575564084070014575747464357208277405125891153029419957436848984316185516767208087960391629645824774197164846938636849967681953778987529104495968507744992556219991553617334533191765325288820602052367662783081379315274302571816342999089176568306292188918720066751483395249947536245414790924811844055967507294649187773147119530275566194948750667432406189177040284022755261833974029943873381592310546114794628474975474876201692011089831127483752523801583107254081387706451158704368649208638730058886238623770025321876084109772181870357819808612753054601808975301993623883305651932665974868685449470317615638252198813414843593001861120210625330717906241848405741503362168340912070351979278017929577732069428580101120894856381170183936901404894588363389365073763684122856516816627989496429683958387412302091486382937498135328635898096456653755539045258037940554704313894824423733810656628908154584342344699215016915764249336341221434961057138192762962618156582459090122433725757277147012561177388758665946785947514686955089972800873928058409316471852520092286415554548843773391103538635300767652777118045179076802220563321260515606316448891476063553154687731282692877952862371586428813098377781277038087697622950591929270496720816412468504564590194467217457318011156300503914987140105168178690738178698638053967555723131130703083500937124650550187306312275386590172207197449061376203682365295924497728305323749149844875159802949788008051607300597990501424894808000605333564097106515955398935006834628218376302900091211090575727771831558584486147752022286315176395568839413597476725564915407269342784280384191022714853384792441739630985708136228651238893118875178711917054098367367725473802704814925744537503975095649476341287761876740806933712399209840314804784586486437031683623632438003124879096612849395955393216633603965745222799329772265953068945587132977516634420082606108875464283815474932065151904118099884111432740820005353402807706317901141462566031006130738263115467413192665838202903183140387510594278904383071493972210807296806512352409034440767796009910730097868620746591522563206209524841958656810099912501917527400812246743485194326160799111549108484779053967744775993994368160300251492257570092720359222502720567220713644974480655891133496100183227551169936461087531980362946578361471990424074775204049513481382925468713522955561369504496473078217703367920293766946376922157200362563198471449799005692288211555562037828635314348386470235048388251160850695844276616114080455195961769958866207835949135710811765604787778138834528685696874672046234223991527685645770572094846666678571762856439847137748006157730951681061041565357004321798357204573022347418350037905624704723328604544638213855305282546108888521969381121975541933205288476247293567044822868680404979553293933528334300531964341040055871678553563956758563885575618465623479896219233231503681739410130465874326861745920395570533542458814375245643585729642544427102245163895008742820844801139499190637300417407886450510600992909110894148625815904519424095946950298477206149344622418985086799481140977483430437452255131635531130915020585564627940632203247855750205943323256985910453793586599448058625221286104270885446864305160850488625304275194569134121957769317900649443824347037580962118662697320655871067741330892505551543904792256222096095497306787242803553150872797192880221850346707683615516067804334374565559659611992859404045574610054891184866231166168125523748456690790589138851337172069490807511004792340251093510121671745025420813521668344660299650563870112731131068808209728068826484881369377269621067324443324297560712680241771423616213873142609348242686399303671004485934717547287713300299592668628313943311732151998139499142593718732569033058218444653471068308271972236634772944333485663091197295684197851632327526059660665267325682196440872602139512071010648700806035577340434244188908881769010884226931934931191813233730455085631330677472710866480442886180960592882046939606898137519453870384047957392009372756051795734077906140975607311028192494264394546347740961892753786093762532892613613076515630759726940489511906750367753190304303861038046705713535861070699406139843656596621754382323087461693566232898420731795869819189353704530987349806074560322410484914612535566716955368775578960433901985633224939432340803009961430644072811696706619600113039195001870399800532873513170406909470435192654876727574113965793088698915131073052776903284060527660649672179761523947402233035979349047908747546390517510759045150939511755685739636409275886274142090129763064130193748962536815832137778526807737070446957701215431506935866769996799416775593369800183733891279201615717281725048298979394546747467283915656261920441095050176506270243083289221743873554627955983438104259649855230332198322845728842128648556482973913412219133997689723097080109799200660756555704360316691831694115716727632653521529572041911995474718773392815747457729164802380892560823947618168636120765410623012756738873698079504644171916581322007696492675205451539521679352894555703446265618772222911521640968921654796391943030090487240913645605232794760043238267674487575107568419584728518674993184732157849398038095358675670897802448462472702897799270217441504101522272315375665444158641152000975701512844725307661936097460361037425595226720006909635556485824672868559538606866279278222183008878470867388706988106745040846951240339806394908573528585669879671931985303255540669308149482556904558392818704917321941563343122283470788794054815478922799075852718683190731246268978685160103534406501599770329650245386978584793541650879508512461445152167177040474455826430789019957722775040188281911038203928112378405945273944592851983754954852982700522725302865824936933273780002280280896268787253874376797504093904761551212535168684695739195847961291621621995875869000833089850030631084367722426737552914208318084706326068581497802471003393468130693287413109320739030211651431145691732616366760435597594242258827972070642334209504175651726701998647737189245260745701981600717113505661144837384678682726116359863337188326393898891163421087158719262822322670342231292790742946706061264681256270079636484380612937211269702093495261087200241602993347532761521021795190177740143264152075294044602490546918014818556674045188494795736978811068953585891161636858847899777218239522581301163894042875805241410992934448615959154394277705835749597305929667968026211122577315904892205456374076548491693389096373035142067897280630007625133494166650514592268744591829829679298147608482539367925774591561130983066041162483812038612290983876051722632977400734012429784615127133347012659767420914745902167306112566671170172364098910325258413952869332066683017834679963530531205280437953872830875102899797641941965384885641286954578813251313890035781422766318091262134691829192435887596847783416615202853438719353670411655862184887357190422840516841721094631568044055162904799513234436921541636511571923927758531880699878675838642914744807113706727348834174212986996548435224230787283375133580547263869899942923096048301413769913178663683948460967164325683026854069026156372820255784357661955297589264492918048022067112640007526645495160676159879504245558452112947186450805711103468740127447525356874655537198859345434545020862247675021466723394631915406858883411600239387356520357203581906999198239960016333351800542386065795367676779807660941176701615165813667576135530919187591546877374202318677275808504698538253056592950686073239363547590523036686965524805928585231550891439183168159265460532889382975501284652380736425632254979407145618818357251677723310719615013453259890750408223208962192508539650079745819074500108155869670914549315404022003039417147995554952781656845596448719625904607169711768674253640606550632663078435569366266598136566410144414596601715117707624694391068838446932966135080698701553855466849910556874958128754639828938576351767876115564403991863526336893141343091119877566133454111516035535090526063163975768789896602973189597371070385603300864546733424545553770766905172387697686137192750685290296625357681330757683382274101621320392990721093658335721461871521646235545404191319374532830110053579231824959837586543601069118603411879186385502377788027640056835606119027436031591313373142956515373998963934784436835471444375155796148082687252516969423362885744289253005153050732094930331340988743603320028901489241381553620037251234712762550070631300908118085102519892454519638263279503185802252693612186927679887629467256824968590939546306431690647345131295200177043486222599344783178465795071653322952586284912389273560399502174387848427999164912594140379312032303412663366816976924011627408365199340577093798855060811857757036812746144489714798204924459409033711579713250126250375544818769446000602267248252042428301195051473284702999696954546831074108481480291039333482962687367076991173937298814507677174767632626314726448970295802486347363222633090391173493540824679141623851838377626804473798875232728869840996252477357245713468503054387287938272424257805341823176804593072808210814421659881339077782438764514613261242392165691726901391890343880492767094857074094720817245660717735309341645049272506788245557055302491901610473543437006765066862236700948822882688022377835658956938147787968258012320188086480700021668109479704070376060173970454503755462517613265517910128118742271958354696148575661356793293761412788897009575615764286168667575444739416245261656015763756693725949843845148619266140718474944847413905343206834280897593690908820839373668325930677233982937236561968042699126436596152593269268623153418077199397350192159825314544457982281999389987514008693322896547816610169597063962223338720775179554179758593181441059125910358553294725898632061676206903862267765341173929037127962789684206318139273901321023784966541107140950120167627665206088615435509416268912896945682399215121962668629845333782749806552160797462712118827549614283542091369238666016932946661012297862501344751848301427429892309466658436963979602486774580874036344865551764356050927649148182331677750868005095616337994049782286980310083569926430615512350586737629286550519344930523654549383272701904889011988477834337368390922837708982543005811552134795137380882905473113548806417107889462363095748572581098258071497327001715338224759144285666980377631844418062365435401042707059567266184499463652214723595030005760648755878936283841158107105081403428154705669251732462082460104432831997403744805634344822108815161060604958198420098899291079426563870865081239601780693630433609735264176712049190887392589983032286118820345109961306019201655379483225550371923867278992673634282385806658262951051284533852387665489743824208582939927143342720923337971517809869829244854587319469683493606391001987106201264027032120763226669540779923388467686526083724026794701145192908747993261356308904248857762186321825391514800470976899926814665824382802452966115670332367970811107426641278038389354038750262122703998491338419611390484991600481356084380489749036060916725772318858236701931372453566720933749036276501988799428859440559444042434666889648863622290659486152712984547581782007502091796470153680030241575459571359205635555518604899288866204634868634447996337511378614048771412648572470887379817639654853383994073839077646439653613772691014807681717071921438537986015248457173261997813467849439429528369404044419396815897349037309724269031722659524669291319280535838396532205547914415189810537761953097912524846609791877853353498889144315058244912666202819717677750879416517511852143260606827475313501363514769849435976994803680239967330460404828463462540505180380175210252681044219804408375299838556104769992958525975090983103011461392726132066549832742791749952007281627333135054299653702869618774781606181749075927374360927508649503887612184229227811694445460414475434437313729168219534064190096544824816273678283377320254675707610012582486860694437766788871534646207619774959903299332359247627701940348174220695135142299429086844804522333591498383340378541101467108127992171705231289707323208114732940084478018643705788084251867239438306406643243077179029709995222944167305737962877546574403960440802616731778417157835240588473721536252220386574237146217091642159137413754688748055656138461381766139268010912960276151169006252805049340874113842523425071930646586529158136342182555326498346995892108336788253441669205975092135997429185599206936344652249815367612834941027993471257731665867907539984739608086768009250729513464369870112497531877409427622999587459683342596323106918619480542124229239528228157619784645545089265196815565398372400618683400587254550524304513052795138285281061886644036067945046846662077024527127575928443042852906542161594741458273135421158220464886055804931459043848212132039103638171407509971955285164486926458470316125431826018315688461255979037141954477128528627051591209620374571538572002204516540775301942876252178656072802929603362211355552774004605881657110615843153179928507103977005696286949619704438642198490476245318527247642780610608321257953152377131717765370732640893533311505728611216397584939463041304896952070223110814605924630543229943492759882662146816722383759550552675306223528231341703663204283890102052007097492191184023485925809512587523133572837027290235765379187725670289236491693564255622426870582510780971257122513906784031018348907545000389993327885877398586707292472348143469685529872428373461317507023028857231854263246329646986030335325295473535684951795049700456024717851449345438837841832286056055268537759130185405462881418684134746785982246424335010593086952460489570205774744130065570751386352164453151972714274584610709619770816065609370635928770485333526169843034889713227164743426318227933366253224832970187126520456362846429474750286443718492820159601741482213796101508806848912119201356178067519718947866368207885302406287740515131416387401578162366861618058228116491253560999708335411641840661408300544936552665611972522914069196353925266139767276776740274972747943497893550850813328530485661025987826091898511333478384763417518475983116103043183210671570839747079697404374324060349564554585317773004934037842682225480543473312910938753118288071532919902526102394961497022219058262734086635797776926340803980477078243234505559991740407916466710528385593702622420291828570726905940447967709373442807260244558430537408392875671743747352799992511090039791422995643218866955295190131104504821829009147813100642971333412342226297087125261238864598738822736086977663809463494607434675342255106369649739679526011416236494151971567383051800111594790426199473705477521650836662857460150257669970275222808415531135936347700472927191760697506870612514465873880657163499716320378116588398487135939957157197955698704349343810510100934343929550254646972240309869525108715877193397960365100967484718581771328061208220430942769478344212336425117340873062306641131810579572618867043075638002000567074028290884876236707002833597835807017425029676912351588641375905902173624650326008613804181352519536328183833111184341186591865092623651777821929099230160943035695675970525162573936983295715959541057551831335236372584895712355960102080205020532842215251779124931173582147062849174640453945800110551352921226391811253931719923952125129381803269161033089431531116746883977719534921887132499440249346725743082324391142242398718921479399514223363550775791208163151180954860351203184198642753248109963381978657947702234499042884077495946052288278252719632270642626463514028913185549644261969253387742170025595688470135941529548086584393776306197810247381868720519277474686934678038528676554289912326772604205672897714497349187149314981902979196538694938050925828556244314786149834245235303765273915405311752224258456236867104101085882696566581274145681227615887272177001334010588411489377183940539851812716000933351584823157834861971837682869457583408566038812343164703341829392639430647980081547675509511783310572511775068677558423074524576711279993650239181597560640509954111380784220823196645161393258596282278331845634385301264002143082756653067854876694239666969901462643280484319735960380468193651542266638345018309542640827587999497627034332185093733139124065333316379526015195267851247027973308630567190159054444745667711711289350234959446632072832970372756768921779758623805561882918592098597306006566609762027495827067228041542089817368818100064045098861039293323426433828310049123596027614106067666235435944822872061179436871448456549424653072355563758214692222133119059503856492697298961521957470678225866613888119903712058929248181931842766395489342518255450787790841308141102099636029444604379085630276250182419754020451365688698729725193040725100011071228520837197605054008434459975394328571122365237363947839922868892072547408139706524725508048838970433570850524105462805487503739113414075818871250337153238716434562842387767805705179743992935911128466727482324860985725717245688364793346351404288801119481993627071875105227721786015673719216828726090165095125270484944754482065367049949393253166777153585895798123090376204677804261233917380724048504510375739143304674926816759946137732215928633500513601520860594128421304760207794122256927184106435489511149344140870262248005628140725866535360377762418613478573932882047534341212654567662584943729546052983276464339222665281755224465030655231413836850843923654895965027402083444500707982640131878400797573692509926237597224331651789438074380843545749281129264711975767568220209227409088221939981110138927026778215183282578405264920557451384926922927472865528002816760538000745252038518755425541617694394888052084517827846748256969382536054712620586679634918916299511936213716228509101739203806951055491897687972450390422352907745324645883230521825308541170780493476061501677906735902714657274702921317673602490544321401017039355947596838128244788832880670671015624721396399692431528561608370173355775377770752559040578949584136115124487415458326946474330506837856777924746428317602339431286831570648221439537254172077275018263221421871641905082207274090051945176668898126252446808306793508559355426445644916999061341442410013066646523560184177675051755437442381955927631193053299870971050138032577500048615798763411464450153961594174828709982992797474145207624733319864017681177741966281873443759469457524183761151878365501837707242093232091134980383143585379271243644943122475194766835399792113523754713909155182576629303233588946628054682439817903273546666301365568363057100399370853202721956385791619716850389837407757186292067815223093748778311338835538118190402943450060244408055701767833437744915858334410859281273009398722061971119750463310635796153452648475138659950124143837557164352344180525273012452829811138348932143144655367812404889601623340463190772883968260653153154600457046394836254405313670470316572371061067520048311905348313279987110725072136298006239694341737236137326005009088653268236801105709716947194335112645009041282324228194957236220158776652482811715924043346784994843774730769497191881552662888678303859975570178036987006637375338094683765896686392270611996592321914691849328055524230668262712584897857157859557306769731735955646491606269480878297723073922978546112421719307417855989903007364495192033805056989467504722059835154146911769729201186967080020265168174412496507029702791145089884806458506464421101255398651174478683039577775369455498530002485678354049448510813496149197841645858734842585074013480857276308697028036823779830954330339424690751302887208147753058460048777558093070383010013754454425103251144084652835224793210827330901087884600848215247074738239993161002317364606337443680304607039385938489585325068966818661495938713240509095283249279283312832367976180210349862010259635860407697554323044505587986459843886402009445050726125181611600577670975830854446478899772199243402578077893892170951834101722234988124441148603314814111943855603180060385323090302599361665148650683650887018878048619690090080761432794664918361603392497216736877802083746410095245654908538010378442258794189079032350154356418296179920800515523433100653768724041628146666297928520838384246067185363099177585784679619136502445396735415973330067089354921080267770067976401691307227716399176651119697966600836033007308289290867190034643342372465013361753992594099494796346980370255166902320188085563459514478049914251491371041624388665332342243385059312793374214394656852027244767357808072273514924336131223813738974283110157642807779585174329666624294859611738321135976829181480811781664281764781419211554871442554138641261122562623482664100907139881323069364357580668314901842594947229831555816173913604717504301196473782957138778790009674689861223199508280803965535040579724857757141409839069508846312765458522414589934561551256735775830421431998454270189350837379141633336394179359856696659075155067466241923223947398076122981265208173857862640307933654666754546746834519015494558405320389434591613316133498357367456333715504898174741971029619219144801274006622009069464449727476749485034382277258607890699355259509987386158707482683075831412939688301090036535024165822366165214130743579699513016655060732817365008520075380228453338184556792017716875565963598316150066503240947088037163499932823805973349379183143183723146265906753622063606540261167981761855866497690738946372932853708445249516019932586074306764271279232210309461689491134229914962964732208506018324476644088946248602444257205288956152221047792725489933432226662979649664411708667991510637945811013501770632849963011980208012702466810094155764712498482527146472149926435249016940920994872518103985573192018275267932812182907904374369054350091785894295866524823531250536734519043406980254263745600453413514199344753714202553527484213680526668787085778854333114377191309113482267636592933592017511200900394781384113421867291536624397982016575012379650833929199191643471312670235467536837636676229313967040624794057258864934128810810582150428710151475220997172983118675242040788424701171774047296864153898814642269795694147405050443543490798670461435201831508248290861341964955073445875165304067731140445238922951733178419903033431209064494593727624460944042101634195950578472945038764507109104397233996227225567181529091930705362320837346355916916395746932865357516582734213345218269901366957913778764008353271745776209188939812059614620595959488833216340935100077551432134290855472979393620127466042526234575536172942982836059389091972015915737285892084092270745293918703942730576788727375112711196294776346021207931448562292779574817535403587768198683960392817541781892159329251085883194377588345596430277708962904261433860214989023028453582308839131887599975076006688691115831211021201241257510611956273476428968700131937606860656086526178399758796755200238006904306392703288080542877633559766435211816145155421748318876801286811427528966270233810117046105001479402901375912048664944584006228088361520794810056329204268576815241323598031454064218425032510465882376735691483979671865885722060518000538890728915328766488508288131838373972122180993996163540669969969853169870559657004752383056237128776789702115325785610958703077820880222124783746282240442184530437284569795901324403499842945792897602640536713153203246051999881337817710092990203140978526544094884783436642339779008086087686659355156875909700910320888553622685351718316098670538029702466924022166911984298193128609191790862856562064775474406310053658439907235335854633345824401654393784841691134007035241439798258012977314722881393717999621262128207924196249342482809876517878083529881530240481738490591944066073989415750169157222010312781114863618892037869561683088657749370024862913984505297166565208435632635937852434179519063509413015184194665347346278969604217902233550891469905618277128937223133131248375129497910893703142631522941242038371117647391841733683841641102114617930987807285445001275605803188327547260222421387262830494335974903900893097686986814778993395561379050658965642785616818303252030759150424274654424110842782434423663770711591305410897194064235777584124536509785449901815537465050091348437461032654299685078720679811228619002894449210266721975727811934571130972806026046226598646695422549906407745056718000034744826162221836731228240569847695095649356872896312520926717555103244042217484953525315593902948286120112205662195308130938724115248000036415056964278853817341598655705990649237019272475742717898622357188810269403946823864856578691924773627632894887414120547128967215843318583680373553911524129785558508748165837590617273704748709571139284052543401842799900478306317137512628222428060776166663819371445660428572379557959229726733899664789002997310451654309043275320046728781501115990689247842362601040137917848052172535050042417661418143651788097772068622743684210500579617732300285833080484236962967860909094978838944681022743718361340098984125890610585114314522208441335222828005140951452167004416202717990587319950614568241474073490871989988891677609777585653470214142404347156841340917480386783042816537559290029211116697038223457418752097191792175809805554906841021927379976844900524845257220700744433392085936590311405993167348892695860748461792042278139904330773460338581948869861614248882286856553686250778134777907479765041520400136828748071307455154615291883029155130138687631342339247888127225953720615453600123908207465334627914806984553522240405919999214173241493387930898253839437678523020689298586352278241457253593843540352941332402591091656160027218880748887603965556569746627434095382386477091012555019579841830513699157137290261550763368281900749186748658596399860305123649336830279575017299152296390368144342081129476020494128634789656105044104056072402035197243933161100184749956262738697033556650997769755034984197716226123693422201675605131729920494541908058114422727528260570820174784785538417796092372902432584673030486396807952755689879824627283505974149596625479556168801495084608737685039252200256037059722670142584602265110382204472598494524332872059279715714167799250579015661369708637085637633960968676016222220278808412204679911690606769587898938111199940104670446045306336174333105564072082536971351657696028625679688201059679749026933604330621607162094549395211355012046844258508940415140946911825231039136945042856321023362223202923749719890016741401709343107285281906518722428059427330834580053527567535254553894626773135400586689015943403111897237279514851187785678881263296956048093384946961427586869699014734770188818342608229181283633553786213698955858373855675957553925359410339015704532164621808740046871177054774184256453885669736762602060088592930519470505942186008701596589116865265587272163559807163251826619724399087240491750992523017034686758117320491296698779111355813969901839041968437864286090395511499439693723312456101930893444576322586236353899211818693735077223198198475402219408543584540624218749081237472385700380283669580774878130345035436644186246355454397872827660338090694102267900115084077265260493609435753749030431978159387766902273996917647018297073701898851079488589055444603849372945455040929828263586896899435359521990737754564777433349938268503647314851078429683118789021514684798299501711021300613236470977192423090012869467523572771743915415012910758491694848680628201199362673619021923230912711281573028261750341235585818189561176074784625423907568578021971030568449181380527800601274966499434621732522948546341168929668241097430581936730551161945473528506608223242594075213465335946925378666163820418015532795166211118817798214306712333331565626158448959303034592573886568578598079801593669441293008163227799118723704636629553521698553896458922406767223207163316635594422100342566815901994261294467845829901097474926075085215096278732341941086757569617041603228265342616637283269398314683380210666741530661596494793400761822511191302378437051627621621926798216511352461941945145652839812723790923446965877728701038216824552346522675727326630004952806731882275415374207480450985328398522202073504646720266913703940173807311711611117398453746978902729738495191086235112747303606534533180675444208170462152113703228721101694772633918339320371059711832699954607265100512081764491933783344707829868474009131862203055108327994750301200914929853095158558428381362203431871669631885213317327327851637263087712357836561777760257776062577226450357241878630582766850959659215868078580133452420782745399182300000741800925925525069632553943479807442717070632891200640464379468060237699947334098581264271502361600481542085410446209915588318821054958507815152850899261045465713617169005881144262452486128863213201104622123115007555305079632235473988462714926148005675120354312102571755281961809818158607441109149919903360188421526943803712596609776675704811412145011175106500296683724706117227944789119759270858328524817145986748110919033011194491792030811890651933856788204701535309534596635924871212641162260968808334175803720264166044324945073619941042339845935011922394054608904665021737711692521567799788882634452696319859704723647191867714532965910392266280279732610951132565746382384552755999275738620247427991822101780800384834868917615002849830903591834573192917068050201555869275783725558913979742654685158526532131452216911894510044004351872859903800040549354562122263930780939633379449779769844537867751845522022238275390163148743387093140116250777293453451316279576603506274783239358931834064615709911756798199239337948212318636328249766292425673587432522189521497887964342532510229716976770070855015613900635191797981035570937483639818902489968518924517258762382484329092089640321756133184864131201844279948560988513444828293442230434632829318655484339125429182692771919302908106668021347677303010648162253568688167967109496317477439580488322933341316983609265567795991628147618569302627670750852542996401618698545607358828298799289829025631064676355290111013247463916449048404929896774927093226116290087114659571938740367053697863394098825151656082151350974047512083598720465327206248601707060844037559350274416227198491681151953463731988502048916235816854327840636658097641401723473542467063103072554009796502088604842380179935773412176031338393445919604620107939771996366076360902067208022102480520365642313748492482389463343592505468973016836917312088616310786797018077169762464170709253003838699206652098829225070909214010737379433505056708208245836341393006005444224056400882862007823424863632519384767859794685403415268933873175666213778030052231624569322756411621955765269410207129239884991566767180404018310456707835229243545604680992920888398902101082353643516817234921234743754681656946646838793878890152157147040703236394007810485085945750885197304061141297975475614477774093309690994280524578824127984316343299428046444071664949522201118176726103029793856747970476803972521582952752702062183557729366618706710504121595360090506048584780478130758621210809192710487721392914667398473969575961198237636870886577584163728774985069614134002349225394129089482333623276459662532606259337188094340132138084618442808385957813682752517219514271639151803628936281379438561461000431062581850469608770051056761914762994908464131127762130304704913704130362077376454402677000388530833054032118334472840093394220468428289774529163154780031469923472867292700576299455979893576384425825898524907694533434358492883419081331123507713422908193993136456685027824449183784081505913954986522980862282900847114580482002660070569651271448399622111044220508446999878127942083538254309359393835375561285644792651627872868041643552238559815611416903401949844160361202850898124520347197325070199610885471016235471152331286694969277883876214064041889482867990342310932714123292874917287635108135735078173730032611777217166382436789928883338656511768328338107494558508988485337067035321296340186846156328637528493671252290563575594649038697249194933104926280467479091296429717699572228210236051733423784496547496170031980139236322308908542723704003500451156534944814549005850582305424493733510667086793968376043213354367231704338620517404109530222804210833049792568831915260580082010356633695580713783195998742574828854918530445000583049585861940108080964365708810574847458559198052016215800602064080401137280826812533771641841269688787305385151714896138011552665410367896138000953477915696726213495109671039769146599864991965081159258088191552973653107354061369673933186134845045550523210352933649700274994339431318797505549138043790440314638943140255971865771302576333948565128484393744914972136406426831596575477641304055663744427298858187689941857860774986671404446288692198780609740997255145999934466200733209964168954623997517057808303215303212908472328121887267935067635410824765003590233218040178857439660603167324936324301136399239194436169331445246661445067253237320928606842510452563879426361228140565928542525934339657930500569873216637605144945980699085914706918754114937535876158447652730066520011354893782711580432938234967684049002059329509948938732027508025950697730851229924093504251556505050469476420708665451790685674664638864977402245946644794249362642894120439045263739540642571967159478043455262808379793540512017927090251759661025875535021705933311619509322784621932648923915322219321601379603436039598755402933865555808625758779470764221363987612271036195032347162774830095379498114609556556475280071399792245114255289933859523366163084224139752598371900869343864396816834154031133040723241680500766050431460368158079158030482611534015143399271191773146173272956738451356645873153267200210659808327380153397346255919643733767186186470863152858012682719893999919713295524502672962954954800921165701950193261198113371954507280927065606308988811623357012750786060973214660854501326173094771444312533482205592455988856571494577639023086550514503177328942875795680767816363461677867909631920834849303102047756839576268966061179262422120942583079179836096527355487443082633398378580789368495679646787101984506299876069760683311944643246650503105161903056295961024991621829064908854603994671807270480038484676096433013874901628408316821232854457255559885287311838534528061176658437872912789819726692081848323889269324473628843639572705770930110733379357582104199181704246654013899794319739864232899607252842906584460748205013252005964747640726934872019793732419907224893033527849539412171736845540151472819493653486167964499120600477952989567378232003641186375502255220407527176607078949557248096048159022954007323422965218556041541980528709375386264631739648598908184319545484033835425385256824655227975598813177271546883760379091016402887297839945042107673992396894157706563153440990372660713233792142767122152947818937632255079248200557781668719360168197556438012821327497454557844070605529300475226094039453235423561243874045537950198426353609381609586240397033635743796703672361905370689574494445563158890112442808024586296140773145868251944343598227742565287643124139490888777267895725560973390405425275705002548564189452297230231260476813571749148320808450258185141996560553084049495111671657380629344369978805025477832448469383805360465776469717208547406251558369463532228801220928416596834815751660384199888970016780367211572766096668710105780739338543186519247626983696536258366447947872619332921663521309400732752156133477947740992895880118765375230306460476800235236386487975263464109513610906826954823910287787793209605414376896249327031124932430212714483906839265375400997609199845905882751660137505647960857134524060130021009725302395402645823204970900335088125584924670255545409349134988814036747709127581372594370505055300495979081620393443922813221614600429429555224704282192265243035757866599667933404005865752455169300294076343030327064194959063017457580319431262218597461631322280375506572844500811590083087938602475439929703151331994855873063393363893412479842551515873343101670316852258114114805471937885488466265084840003137446830799277601570543172370024012441070587334550080897878247156859419655320459699767198260102551067357588199741927368073731083292990553252177716339951291902070412965002202584976909453298297720050747446033085371506173700779827980114456002084885774413003009426349968128968131262507173458194180884652181226662142961224290523495580665218402055944170854045294667398869540244223909973276871939207597464453272201061233811168831034333736585964817618643408122787123725353384153220848490079069751439467288928542284423918235880022338384437231705220212075749782291527917162957516559626574267199697680677820907592515961202061881131501149337886190867418057609136969408553298150138679015014758604600828060127993683620053021010451210277355300341574478622143262264025945215653721335570482006628127656395951235959673793202986080605432247204885843026010860925954212375293843550103509594679425679926052828974436560042084076150923051491327724794749509944806320076215356298259245310586438376661938545651617947017286907345048883677081637577153828897852151055360332095147710766233844606962842117116903377037287362540767083799026018258117075265426585656435660512075093893617871252504251517222976354240940614045608947233165966875988433999932486746439220074727049254200524036677146842414814405213977578960276889957434919351292464896398335441830173774607514384085248935045002713789797811547202161435522932252943805706603789383801057782683324120022279507937157269418149415930171931497324853990030586485019032118455717017613599670502399117046499408304367338411677285145954386621418581695472649388019355449267493707756132294357402444877919639091748116162725358745752456762069517508323966877457806303747029812868009070530730163251071260407113052831420027296165255094590793966620114278704732147562842236579945830209378504696663657100097432792594063607854752092911900787649539394425049273328223085476390824955459330100627333641730173039571222731267695887885862643719120947370876126451756230923806108117408482914993622584868176878901682200153431300185514380768558513314404351423940638038781231535948613429021108316099656084587829774432936468586169438578845086604417018614049462410379849752280631005245909793772732733298796487163777705617621016423236143146817083751733724317316445075589995208524201061354826460510348646932701951005289222733447405685742786775689231248476730663979543392341508560411986443014339688510643121100384000844106010632988990340346549492287710230851181956127620968255329127231197770803813658477052124471818940161981010415779586851014765408263332647007570754381146255290260365886782092400728355780909306267764476297629636528448405287475769999323198818447712271318596232679247900759728593569781663122636207543514128748875836974054221022058860760915373115171535436331263943439680008159068741420776253936962386817139533772512057903066450210961821299908411541936379085806202597344098107426528965421527814393917421465602174274715645984775091565375712529040579212201768309324596157041358101062130872863354830537954465503563114971135044860656396415040145229789052185670437021559078462425514778925280119828871513552351353056383105314235306207474166291850000539741057851580116938103625450293562112259370115436409760840683716647638116335129990660602957735594169762230515637528489266697151844010838827059775051981008423972303169407206585623499530158875920757451246396759014829777900941510259790013561252431970635464998671543010424513826553054880754599620247992295132019855095728896179725227685446663412891151355012393966652162970947240738439079731288560297788771004269310696865745261483175779456050347897465771870602363974605230398842423551456816307693102950224792570137522863566748924951601764184059547885274911400353330402312124613463086833611108001573980076228642026479636181578619616170143603655439771752713973914535817034097947354084019185976174539904847587717351178507648305582204947582305440078468235204516769093584561806996358918407802062843551394501758172341377963470367356796763864408406336850217866090245156463725362462835272189041250874302683788734944455803491554991512223198111872552599959337697427012096355346357165193767719265232435415676473103587475323118002611656674077692728666920286868912847260516532860106821587735695144755998055038221191593200540674748502672868583387631063732624942395606283956766974623138328389303572318075385172374057527848772445725774171700434474178439317918726160714067770383854809414480457120502159311699160005785375142662657667420656052451057180823390502186860261003568282607358136820743404195952067399150275213637700142385431720771184751619805340486170388615676048704219573342367591380017968046825782656406078262046304653412275514493703136035736147189697048810717957768102465875493738220548787730094400059030409392832181723944301061969971854719549041907167864616705829888979836885749683056527547397692188357669573374424027180968764359516416215910037989630635102366697171277623797131908955624683867679263364032867192951680964407110074407827741626624222211699373984107170719719817882372010589016293492290052184631961526749161915974932866476393900817188781482037678480678455147074818243796365270395479447492775130294640612318193137713142527059611053922673573511193509032379982326679455440141154393395541691213436850062187289411694209806931212509809500361127898309394432090846627337426982278812075875374928173781522899102487196265960213760076089709920453527927892684497693871059546119415768301427865616017635568850606397739789185764437021578470158407833063860376458168051488549594749869747628473543309035879819923286885943141015127281718858921212504476351632859080054078988451245793918300961755995605033961610518664667506672933711081834214148261230121857889208856332601175844581479994694415422852141036862678364097691464267868362260404992128159459120591118062772775109063227854579891907091394967970176106621777981606623928145348417237961438158306031397233934877709679536568625903301510152323008949715176866027119565863952534283161855183464355553515910995508098607473186003264621485131422497121129312991102751653825067148249053487969407456729793165593297547607257705526905693460959726075901048774794938108440905822771865700221229915150900673532698358575312658302245789845796069740344987227051487490017475462090713320283669330069350088082253505283301746113345267867676391168382779857186973124491096177041578044282606053517383275423566042717541298945101017500901256178507287556676538031933864301831683555918795849229712906029186050699004981908565109116862475028474627400577081933347890143705391516686330416604680151835748499487761765886419200088329844496735093566693806540934267817489801496017041359703097606305461016619678284673349986887394015271720278676723902031398888082954094962973475241900532628291474863923721652590642141004388571476944467104605093947220200376532631119576471563928874256944797406514024860922645019278144051014404932466518456550148975609903417908263343992893164023654977493939640863995833138246225297932697229410429724287109618187476634126613554229953594351928799450967484621190683545770761082409089147218411075677373806316765841471447886079306083766538087178233824658083638498241069095299595093872480898939241109343452532644876460632031489038066597643613758034875688921531854389096153234763539020070876737927718464384603807509244607163461604119933235269719924602545215247056333114402743856971569286300232049434255552758003743658849063901350215497553232101988324593017274887630213588916330717702292765828924372576233775810914357640947344451871475354599481680198439394460528920397770879499508529668446728051308953806320338471758151695211038989774348694490561141807390882914579967040722534095532021020218337858451852634229721559579232212551370347527710847401210693977923162144682598929466315936438079988088793127682481567132911326313913807329658402190942210122234097457005982396740161830039145093641823980504136151968485713003321242478328829005328539366571178410200166359621307668114214459807624443392111933631578190494120479134584936392340338920933892507354653344395747074848096684205632684252768034930043055081353159285586299562717529554248839189551024487979456749589901510278743727817604301360876796422067893455717436919804948580106325706615077993197832091739364107681552184487436629796133333787226197531358211142000809852657969498812833196937773907718810712639075022805384078975255552404923173036862401128886358280900725441444176308520341140255814334007195438925560576945321080407895883584331804688214924280644529973897560706569580282900379655854548492335193232456682965091655575704618124135742715335911133706010404637522315939313865779921040931934031533835682992599589656579773879749422032302590434360822267734917651510471430274575255935310661440003349141841817088072789552373831170489211038746922949779874939212480736511187807636308104805915900951531189739372170840746586520265247082010045643811504042252771977132755161508261861509869490722321559867334632157742368553252232884876779154733977671714500304692608128622819289072282154452424456912928507406826371309459349285972132981573061613399141956300005402285012484111036487684123346276711096193143627279051385959514332979952563114632956230810139184914633325377044246931320261857017092133187320291010993187889257980214284136809213726595357961528605707193407594828068114806554043010915088614170862499243218690478196235253604395408668851421287175924257339201838909215621943695665529561919527112557353247452675552890528637569487638401702202384800606390532588547122119520022552387401182855509810462705998885166892640415075283248162721269032546979376334430204066328961318447332126536264140474300173340498777358857451813528232571999042307171046018640240572174754105022568557915084926416759958926523517035549464566310390679169815774259406662823758060884340814353910260575040437696221487947963012799441937004328733627381093336873355038431641505910993123456363527852146369089308825110049624975438606398594085916652458378004657029332509595194038279310124086581776675674798300754002646062489441974844271162014711854368330187433799411563063810960025667801710001379486882586925417642194065706596127416932026327183021196100440072866075760427378944678435003583118894698135625681165277754762782131700170120931738057051425535659414439147428493448531539846316353347719532883717008053392150456010983017322670879598777201553856535667724198523661685368260997410020257680751459640706789864801633676812626567264187986050469574862426549921634466917970083107654069902199078019893765889894814490626556027394640725185897916250779872735001820451416738812522215144900011246461205505431026888925212291069969711239008736411558176516036336541604015712429545420660394141701904469782918640842656657946134140248504387074891010504002118533259899647226966598159530716723655750266080010010814851182289151964976280308195856523671256753356594264243402768327852305380839407110138539259300707680150832871439836448670300553830859086720940333867724865052077261985380685801320999805203053453950487778242534421923162404221206993291658874184322440056643603643310633550872928727719136305829709114662180563256386777619811441190986915452867214174062343827199891690380733609782386876176419333975202917105465103762612943829126756862515371333672356032187260616048744752278323571603530846871932108530864100604069333963962525096623002633105203301670806538761849098630702279000058404623698482956663733168351010670479596585090721609250429236487409284860066880057016974624341480192819683765149675790034685579549449980858174108319047032453561931166254923983799155090617366942409106317865265568448448293220671949970077010825039626022782857772133572339722667888763680917691572581049422532568712682724951691074031240960014682578704294842169258674488004596393982773023347667010756118831646539237712998752297032900897699706763890192244906109539942465120602412266099911146065171842945797633555295699712691225482249849435546175201032555922257669566538482110286228003557084687290668057882132282443753611450390366857074525206710009820217689670920215103787795968170289205479443818841074334983530642259434001786023706558948965482170188289824409766457248779563638682395246758671952063004049548586641219804920919529638214845802569726624894348435880812089731305211856953729167537294177795729593446371427561745667376751733867983071175672713197511630625344372683878659369594483104625915976926120456850586855030618137447792676807562643606109701166683742301052719414486415741231388296598750388857528895701907129575133798574590203171652465457045798651619429752621640263604373873666179895333385016561583551710623651605671283233818727248429342103957653118487098677948816106251261372330231342369649342389398079187684753836300664322040774837054021209044444930708660767079903743608179148459978942021799865055544435326912472928987586567971330645002157898517788775083701857143251113478214842169003765146094619910455786495373793601694864336555043288017277547293461838043542437490205168261854772671032549576605805694420440488311245176759142012203642732356141963407632333168522696377411583753856085488482203668640154566836122521215228997282536602745448203352704989129106344061883041156754327013022959115761288033623869110591760016253143921560729187720835570492204436210287216482534238464577411434833173956554414880976489488264318513469067239753936650066765235640471823858373101355113151068684361142406679153584416523098121215107255290287998502547074908791566802972499458420043701072144553014404096375327340282347445287882985777708611307934504544582871526898887869014190431999408042069034177196310202701958687286952897258100001313213219973476584390570673810153774623635714155828771303260184656733743959153830765941952220987745667472260436160636142931355572744689060924873319622649912910926551411428131543887377057600580858503114691491995427432417008992409527684993448448155106090025387796104541183968076161264153148320112172435982367851964187630458405693122391225882830571459088973020870246378121679841700514959128923549640839055413181834958154322714128855680865763014373576365068934535189431316225412427926500096394157715736378163724256078245858341740360131332612357059316076455254390906131935012193840961478034186353167193875236740768967654735259063849531870855905999655071493887672187787109418473992225685988491026990840254871919232938831281716102239568910305580521918970380650580265181472243273906427454837942902382976843100912830366728390075072509860281205721575769512522208755398949663495213927006903055029795053108574991114758213273569826526081031200495511338766927643850799891745852233835198215927783522127297407120018714718986446898564568975419077702829279139837895927969660387612427752185895049762577969065801424010537991626195784369095172748779452896705499591493383143381419486447862007324064843618491979469185269362627134369611662547293571039956594632820881815953949187583942222903241865042152834356103059531687440468784827949345549080242435074755506671398691740995458816206776629739954372468408926853548890304967869540192298966192636014171008966248168658647222552877436775306095483821175873546048771967891853931367766231210108849975051968623463826630577982006385363493858680833214145136717852664633600357049047626527443210048381127457887105233288828276192940934440604864580771114170196003671622644223181854777014420881116382778633231825167368666287053439512718262583232507427849569686586233587555539113118692921606851357589083901743810292553594863655417503197583748641779166579609370068691290725210413632334793154331957179012059890682140620323914702544392768964713382099615417318370383102880567390219128743802600180168700885819610921859030519599146020266547948362358437467982270203107895856917872044944188364233972729154046371163410044161817576194327627126214305441307111978848770089596543947001939019609122289434608766013509195638632630356182184058581044452369988989969227013902490272167970892024131717960336900414724071015016612909489431606105648183526888237983949173715166887923587654753274286924561815513448178964629179978846897968650297823993427838858662979930375092158912715544858094711086905946120430298980395305709844897683003317407399845294832859260523011452138292745015404580702010677550309274381753365641044280831139629530658957116671702671511925791737041695168702463126621644911796459100154722379883186946319573619350145912152201894151431158977597167325337400259928066980037358849009580356676192168649550898545534326629749925462935861518022804330090862263665028528717607789504695518086261959982244018014029362914264429400336965861588549702082572837013551692376636909293236124244180291730967306346595337891885883028400247034032038550206699048420956670748785496595494467083385197687113131220568724481708183191662756045008226520442218816235106555919475272144767620489699666449134106091956739497725558813271792342751372607184822055437134501619998348098851140241393751841053881936591663209184272168500003315504477875423530218745479957807435058276203049315393142988493779717178618263853057479024606183124683403396841256781891170340579420853257323741221147918004273935491942771553319978561313419185429981087004893770960948494632954577069357177373612411649949384047392983131532395014287784024586629050964903346130101746894995713550179824922887676984316574298909899745664647661793559272469050255243902801935886833454329812900155762461486001479969739001506720232831136735914380802425427588765842621822559587557126089062429630764014999786020680343362895870655508532631624095674974517989653103819163005936658476325607749065156317648128235349390740918646530199368769436210468601760105044127219902542890653783453697693749412204514119744216503103882682386809859308422644779841347518501641983524819620210441214442114912194830632309501401117970601579398294719731438932818611399131966502322247210290316090141708769769141771304656038936807308332127079545728219054110847258573383236762823870892909756790766631450464008860365705539342882209487276633283161944648899682051189249003643028622263879859320350455615252336904863814239108558072570920319098781525311664704963499695590630191776170906655250327016128058747085040737356759698828786168193869788917649297233571182629497344263324120067582378903789052112828617885125240657068036230506006000329441984138908307306346232910763762646459799583445029458598814467653368730586951549335208031001509884865843409008957610911061031848703915818865964227752670489230118422747601851265634471740802846367021749319161956262150907813335811571750058338865726036661400243895587363777497460246198673672257130642766215930359744074454814813148975389708043583860849822221982250114914858362060428880147496133595919995512145952394022986709578828650808315031301948352836677939351259663343873006127171504325678351518852233050147262998838383625483787366498505682753882373731913445652607427418136433757043577315314057715032953054709297658296728081015663678103183281018602332767260745486615887582357047309530786964061712297575391671952578088560796686119282451443232975173256163977335879187945338592314515819927507482575030405115980902258539945261163081688116427579860801101739943809820080940597237621350426617321067294748960071993837100546438583557066094680177069956421628781133141997957777544050158840578145691812924075948999006588036968822028926671011575994657574238928018438376051577358551458760013328081200127099270359932246830343123635442600258634197073471424941552265718746541860154421148399292157807572674019366981515386975199875109982381774723218802040266878687475275507741619810229795174226825409386532626907299332946099269073824549041392353167758749533327516576629253814558233349886578204278045443715274452086523539239001545663098608255728242552856726950341069322190439046560707045054149344923912669206361441857234820005136519344516006418770844082821770378468805755987507491850515048304323242286053917350606472977178547465998211972834883725044212503638240221553523956030072649739227647489563672225593286760207181010282487967846546319534999638323110524086385062324332817474419573230949668566958413164725386714645729192299587688245571466361384980865612767526011354431967639717025663788981564168950226750725871869853384073818431213845079526008729448301884981356575382452162784921508506954274049933111084512544410805354814431540898411057361131113497166196942623828822574027554636987394585313764641205635631840570344741767673669920642471329846370458295777970539516355479906140417978092886561875394903741833976892270152334437473516938365835967915450820733409564822093070861656263398036024087167514438475693127592039044942676058578566737096189301729103684986770664950953656572569748556044028596573471059605203930750868536345445139878735773830314405959978992078414017887026128133493294963541164630079986595490974042245927027855280934498725556152904921484233732561973160823255648131182036035422902780199093704148447695080494556304239457925773399447511701284745715721882801673873549044602077299028978866640299020016935428415621614655138718745305108739216586479268250422417044865007501958848171723721160852855069029170476059108541363375591359050290826944445128775523713911691939752047138711717583964363487852596302805892673157123598802512999182491740818497999711991175676421831798958276395286681185980260806723468188553315488401603959453351009733909910400194486036188348318862935588177782097860795321822454886276482929587720188938967217335167442786475373462677852695981002233240706250443749456501280530513665435181292937118279710465477608257711111802242528050330451461766114644019208235927611391688310242909848742602593606407019430019614243786252510775391435437078123384310998104705113073867242140662095740242807940937039385853442353996919791747286704032416025590370922446117478849181038431613886743138597489051699756744978327188956431517070569978535954396142799994426198070953879244604568936358324457695894756778969004120610572922094146080909176865137808950164044509738871368542810524288468858742423770191599175802140673946810089097090860608601835694168008700127813530086401932480891447100256274255862801317710327923862005617118044590105959158139750388436127784275906567623915239564194108398338281628492526941809401734063514847283077625428962754378157566339397911162508470398091500238053565694901456469308441176816037276908503512935516102689647610014585258681265635548391202653323941878054056506080020450164867343801429309694613788595084990982019017422671314568088230822838869647110604224076134188665405845699440729626068639201766187160502435970565786248942347444655323604435504110904896520955149887644535791488463727038222203995676477151944183814146178851625390548672940138370250130050851930033067587711609497013510148508767679068012341839865127693892055091257013434585391870269459616342411731784697170773939759986964388338594628215644165148882626309465604801856453266990538985025750923060866915646942237226983419728260457156883625573200035080984089490185503652950670278354212981164245967359909884784491754809550505585656220979016555886462799572920417842596320464965851457997978895491171073589102126473694201852237630573165786645518068404073220230668071400801991607325851365055886312509068061422070081094727721216879932913717281408712915056752982172033776893454403665343773331467571795868617897057161534467145395912868048057630597046674084389595304701924632922792851082764375402111827238402457081862625113995818989495838119867842900700623684282885691991259396741681022664108322587064532911515816015707403140857877053275558911555454815479954238959338541619219538413934937625671206214490985941948785167585270544961657177950431745312531618783379635561038190226085300645667861413817947021403484421573281487568269655488652907463640102224557808707060183456170527983520629597169304375676936944278867285050438930202150090386927568181468412117896234459836668411386602992357162587571333471157665341929440524987889171470465734729225211193276738015553978275536101906580851183161216963463875109966646403848779406624537182304253867787141717563793868260676767117836943289076635380875386016191106507384315666928721109436764610913273901799550799904563699901785579232433123784653551382401755776827526016029241027416156792776345157830142568695410209817851145801596891975972552484959882467249032943053641614037197571163985798471426497258835668116427400399245822229344555064747659253157549285589794831246883493758346345426818758799661222948919448930689089920920698214815312771393117420969664970019866456837816961588608391001575023362728870880952979797545453552446668141640484076893325494642724899051227274151472133310635344565484119098649116109365639475745138625026228808290646419194581882985486193218420297120651368211864074884653113568752297632694893187706156854337264143794702457184299580041733361450431413438258047404595212205254293350331028983415512738147287110812509957720286228477586292263692957719557594411200503072616613348644768254152406554000214705047493892540441150559333967456825328703383109162188710457837215415861784891534781121157186239688634227414200140441924755686924673025911968588328271395245474609510995111287242799695198421758186126728555812829215738642053747414081357225691893735629281923816979575034043810472955214326286096865668831868979860400697855860058203112951181698506751532244543217825273188511358405027289814360756794529117396428348236316783525672143616395182350688626738919193657893083391060436232629452973861707362538659873997410716667992769043744253274899521561639179702240269487058716133332577956422792339386520074133877566467405879862878503269055963786834880744656647444764147314242361918363017490868557395178156920208159174547100895554670563759692547128534833081150864065804846539057677267854522167298251137041805433688677624356423499190575818463080315089914774894419003845026446985429030648189483326158654717916959269691963757132946341835427287200673528179840744372332376617371496218449802496867301547671163671449938954950747072666284020766628471641690154773698144459956416119763381148760774411436363425483779411209724140802706489156664724492337781337189150978511688234293043107227693387880914379924259898641630797159564012269919655991112061748465076758091414953584411478481588791528437850323132180164922927942998881966605535425291420888247021370455072141183312132492752486949280889386590387984973511654696264474905584788213825647949279516585790637616319919393808699643671122962146678732466026382779067104672646587353593141076850053397006947943054930948367637146212539719458180376672285607736414485313319049218178684187894348337816829494257885208689133757218381648988009431556541571827613958181213330400873809822512501633740194754770337246461632454206731862904035264674476110598412187055043309943673447636292547833203164133501285862348112381677349030359183535767944496431715255633837776909580325244148374560999571579010027739489332206717408647295621268725420746786796123690245713911863603267977647022506791074133520037243631766495007676640618874425831488885198412485167753814841387924654853840046750369617356527643743668980945835991845594126913376168861267728846034538197410111017152841612660808901836644830348465138416618268140378963710975784796481197789488727781409245270813018207569976646882997508584791883842097038575149868073448636745270261623040909012718180008645448412593690097318589418965247910750425437224472619396054456205958701801526507946176072366528683727817677171781784682536007060425637326301118265700551487782885731499008005243264585239193036544923633492289683613337101237405090240165214119749667582678297574595311592790857297679578056551360063441764640520875222922693018430856508404306524833405863420537076608775451447330999947413256750805977644836469646935319775418988751081710793375354720150766651474208391208616027394644134577061836658206661688708630625842450101424349221818278619028728744540726230707908873721691863142291628928100987504725716111889555620460416188398658259782202026142955035119123431019371826548786129212217015214271957705552329637348903348197745170419943065452005415142470271057710967943267697243048578185088738475825273646181191047785874952918898550333080088178939601428165197908717197148631941548661686809041262693266716842772985469716057834322991889256998686471306967481857793847626145512227717275930189477824182315562746722355117015821701745995489751742590042576178081719560144531702541915084838783011906082747693559280783424543159694112594259602429522386025332153720968605533500354440386241844882576727717349523160636326575202171685359007775228894276408096415903619412590829802412027865988983865685381198494419668285989687226449635414999130065516385740528079776005417701273516373108930636339499567883791656181337131580999726907135969549750738782660049623100589302471838550587498359596453179962063548614580249650029863149390780720481696010893424069511601154877989989889358805374821281312728449614646544192625203664780515575796862668930764788265931766393314794654004660873910165785431570451665303821221007325678496386234556372334904552930791671520407622302948298820964426917150369054653585472887995608163922765011884911681221703542784913902397934039637269005063000586305271831069619007392196097805537580780262759402429939311917065763884374439039151905168714943652081186167042238419515467613963475602003963935886342719866082235893119590594124533867534246782019807603388080420277672489623260813103334921621674700564826506943613476136227130283751026172103320346417571907744668840678433852990533150283030278766267908492246878308230270119357485257877553920224395702421925747162573026720712457692881192077209187363642759449325116662866740823867250215955176143765646555530777149795294454339739048243542304753362548729810007305394547661881444166248402204228239160483269682249780512799692572947823194521418108292892097636045868061393592799588845645951482194957219958342568863391304439327569378520767468105600564317959139941448918126350780669753515440501134522117019889367669630031209713066066534149352075323701176877327146201301087480454842177697497129970815680399248863164971964682026177513805170952180180752149278128743418164753598586059332353109179497317533330997491115606765871756301107643433729987370659036676883568392567016856091077189392526649877143106690120830102683137035054592535470553650124755500743203255072692449066299340444157027312909183364678634015019925563236095125595160817757682054539250738623177495066897061436354849940238902366314934162101609717089217181309290900125701547855829380233656474443783909657595415300471088211398862830186180263313620131543801471225777333599847149866298567328283746882372578308918733160362828436557946395372244435175330551502061507910429449361033031797245535482575932341503702118857751560742522234912317606961377957419727108109650301404361801623952829140979865884907695229408372207737989339755227829380502222256216501796456460758580434379319663893190528785050264961682246793396421495921669343757387982051921621219820556120401043750953004620177567019708770295659797404465631847202092719422425282371954793760163071347021045791750917184929417215228940837976729309203591950952577004803824036106663307485183838297216296697915724021944598210459135051229264990844390825501318538423610750959222038982906138948484007290233539958807803516877702502683193880531989050195782078443166139426587911629698566653042958008177093277262652617372527530803486538892387787714547279929070943142592596065170070623387177904836334148265958868724337887120876101628423340696919105798117216325645898918603449477328782690430362204996921824891285740220811882268770890794367933381943278408930646974754990152130039288183424037237921703772095823069756862896053501076733938077132842548665440018291679800820952000604450866273651727964090866592896281565055399486977809817834518590198489313759639532186404953676010053067205287694626436723484698832479571748933522421064113834807062577454561015805674335216412020702334444161956111539856952609387151829074630228346337436266112505383655187432627229676106996592351379659521323480129631145953728168652382063559553236580801503471423046976340832121367431698384442283388826007012590203342955819264391587055459715475316118120426070403434308094765914896529881952163429427639606747371102126768965180862302344652681242408282465392241352087863044673606293824599222292369291441824991578092612544011543560099243257916374664954085507656902044129381561605265987548525526530438893331348039956188284131782611675279335712955491738586706914611374987993955185677135847524241866057718957897535637019359115107520615934496446693525335752007633968774985654699240526962840511344343461057728316275352513400213267713474035586522382752918047009547094976557299848144377234066423681466032705818476075056689333973499007604443089394295008764468322908900081400779726641369916217791123619726686911905711800144868047215402215871138914056872512503692350370377348860625493024598119025304162327044916055445217348976471929103941843191874560702863529716530838537717225379641087267333556171696485522382033223893421270578937109049658615894885491897425913072397022829603342914477028422643106069409791150267029531920119790188452279241153386042418977768498304374358903741551048282473947358312951886240552030326864737400736999660771255486260432586745132611668735496402066287241515262430649749734025281376305294396571530117057537837803129272452182827061143562723204954496131762441203986649239878450833138675045232023641419249988198842273158767646509665270133174974946280781790860403155426528613875863338064770447550357359267830565732494948439143186267570650190486051629336427714215562360719631736524289545127002209378909854539531690309326931648632588313325793225307070336533441201303905652045568050845941097879671561515815083728811052594831359176442765437204454125166496049519482155114099480678197983314245063631355980083458763231970445864302968390540496020244926560823722023836228117860441669031768401031613652495383192024860374261888274359091424275638075835867922175852240137052086872709471495013621132123312504720754021649824730874931892618948495947919947327133861171516002443319344784643823470834787052945030777385143918837171586963006515818319551422292028805471895675633195300304284739039264947475641595125993253023595927094496433521868755371103238005808321101095051463000134610248942312250036396896062260653385561114189842871295891275315844772302860029098050866533947298177497204364868181880691176842318480502872605724439190131860559684448114172101539958648567100286215090902069234873895061290383054975018784806534884351770438413839576398588879299091392242431646601047453371025859207542835428490614963153624814467143545758857877422279118439316457596315159959484136958480017135560875386133405150331580774473584389996388345863949375123721209080066253041592784799744502456254863346765596599766540211886492837140740979270375754296135172563308761406063547435443081270280187422785944596098842308084265224006659416532365120089209513356774252361658355074479875488201497218528895766622950243541095407457952005981224977593726259629836116238295523010482417366936955978937183312535326069075783387380178644559809379389226235211312144546960648551242422699531935858113086690405090435454424248198059146798251311068269757602277461623093884860822691460062274583237868067730634682138996901185699861218090679830157515733934928685287361815852069136990174962845180986723578666055280424654328363468475007100456389456501212466007026010312973439981915897623571309295024316798637972137968761499983469375295426306601098348755266494909860193862182659636157276528669526488912329483181715880005680008973525211581959072290598488785712997365324326099990301301654332422756930432520503513839908203617816661577685561253087045350895451638625628068367621123628141173888967295528525833043386841745410073870967003749664665459127661638055401283758814350203416412809132619079911580628205446914397912096965812434976764624265344901116214675705437140472728965216324286598210809100691804610156843051818942117521709259822903651867948797916278741526227196155665324098689952229284830873647782676396729369631384041381325869863543008757265122501187168758218684339706484013120073053788951623663741550312778247871926561881337701835194113748133706962935264504354139191186536473267822648245207402086583668595697052999734236945986005144514701093587995325175416148040828316504440588853572236888582779823159166094330836880982357007079416871554392606084458177446277086042135498539221029616019794773455210052031809867867749398704897637509160602805322090796667271761105299155236947734126896620449509515157541446221294371496321689148660393210663618031183770422299388887283707655574397009026160606317815408639283761755354437058534061923396472474290978697235048402842333860594291612825852662882433916331575923729781132116114261205175130810485006456808274325005646776188090010670784020136627989231673115336509205955222852705114504149582557203904908538135399538595938715772866080249813522582526242967954381285116924558522853936565421495582814127315309248942519189497359938406414926291600990885654415078841265377571145236626810102889145774428359775913430223935663395251518438335996132229694321024989885591300972434786654364176806016008571792528684935448082089109844063367285286737979407845555760626495899441362631622271407178725152414784923111821217793386797166526422038041435284375007891681112173748328076836714262710639484155943917120731563589301001792602140773179903099128821407257097297431028614671517535105039025483764960838402952246285917448385253800035033847205901235157024965941740412663519087455401919296706223559643830967073714287321159847494366138140990463273304776276088332173499277396938163435531839324877174354622984319870150804674533786946314930731585561787433358850565696170823698326438856821630469911384422792340266698975202636929812219115127537813106331121636262055040342567732805811924358584575738045383051863005583704769296266651578316404616067648999639696241273888720996768980773116896533399835863689731963776977977368361275838186038151436781805721486222880918037356980427847205546361186541586013794336755605758235949893213157615410380979799739336301843572825169624872309329426340107929640757453485704729387781186662928542777082776616563085710455637280516053150992742040975051262535970707150422600754444614981312506030071710865833501025986850080468925078617576135507052936726923517499676648969166420962241886983976870675556932032317706875470043008213300462756556670429025820663487419646795391143207567462226190954734803804097500081262211152545780182446628412842657537415877508123252645194235113659931010622781447682521133755182903054923955080233826703063317419804539645741891735905375483009686040029667536300705263234398536814534099475514491057119195487354725569251798361713566269599314180758000588393105778055522737737679746531684037601227001531653454051350994533358417708435208203473799276717801312782469724066104293577734817675595624230957480917791809443629238586896141378627867729613186672262106233229493622610777733118988765925869762248245822318440970462208049759861157805198802786668638388481818324312090657534725177190369168603840945036682352534595401268528386221609693406824457056810426191309092934703200882775995318885116895203742195246510040528718829218347545297722731817903588016193328348085982289188733671341122395605847301778741816780087069505144832006836021159284901944739708013758779616731986086187362297833720267839721321743715557349972798709717322652393443237553834358578552396515657253719777677780142008285646335941050882043384935498147773862802105640590700917547792486599304059697786828690399559912316516822756342663160607891375663146949356382306880666230227091755987038556313098688400640918308094637986491959731338478123176139889051495181400852796240386060239748064903543423182526823695012374513191359025918966383314174200659620935803141893664418183491596842348676109756651321098990816716677643032729518813765721395828849916650833386494293419863912112982023445850817701060419129195679411522687631029394359997857979098263686183559433647982769829935189578322406593424271070029620977633224688458734634034495485617326163801752813948767111599392564925198344966746407432736203635791168151553271522204605618890886508791215903734840449432749235274551378414240369118320657277374490542075100748615488014764864995781807251681250990999915999282600529409806401536974842344967147968702693271093922107368931394852566507300850801918332727501603851175026115143589991495716821842051584432638972534151822163207810397231886180124963716008984602076097236076142395691777276170759883220661796397693068300757671223003579246148154251226119322539059097501696940928084498987922582122219527999911116087711575024014208758145505233654231196506989201044920072056817899510251923467826371014889601411939788364842637987777126327424479373090303719078779895716471761545550154400598063599104098360035388714932049666993957161854305809201681648821027360281385111889494196979226833879281478928133783746627613633140622364368073359284856238280719158945547466145488417930898774188298533458665213922998278384370122816255636316379638636541919975497575931592147030170968383561152196896309005417907192395663036660412504977875926614868197325256794262927589826290087868133516846515807483967480540938592858061045657056325683098686459529628706148403346190446184839447369524101684673827347516707491840265098255996344195071592911723805247749384136700629804621903428280522247305140382995742145078755092351861146161096255551802325375187124443256581321863296374432800099629490714086730464162846008858119611543699465288471154554003436483308533779316710706122399689016139548000364057040063309439594104328459206880832279652454590441105404117897853462917353007303968289308044082739428090667107973485619536270195365993046090287793124923271435586419097244383621922460330914744705952084286518518580275488443716415803662804301546113452773313547560754172289803139905939193516271902578735707955091939450027280397206682576130850781070325183692893765906544845042254560543840649529621189097185057683277953747545377014755194276422451272370656178896162205875963602068947703559744257655577700061911644758540864051775411422400477573210450898129431143497319948502957533481771982585710201193728668491423407444997083685572568596999629119151260952411241972385966722088391091152413659487209724421777768963991442872159000580414604001267851481342583676775726138669106779807381728394087207028532914051970895986601493600605196945611894865801436464979615757209114964357669121261211252537012803992826134406995746598853601785051700937842234144675249940646653806360559798077492682845256331436388910809547177040914806523686526810182801445621887017580576791669244868717272742526132620892295630620005167439641852762504873801691549364961805796694113481414999495566197141540348813203379699378412176237679900183008781070426387288404989457678334023356059565572427746606691781706781929151210428243000057138235875801030913931318698165918217668039010265870501739434648856431110453857021720807648930348426767583199872823339416114449117018053567635885406433008064491232982210384176799758448389034337872095063171300102057424591958410503840284990888161457147437573867801453181249000583920381144085576249459798413513980582838906910243746421011979057020189436618759271675301150247281297348907632867031509194370628127783054885712977190997326524543475864100690868877635191737956419581847706505978824257975644412537530215181204791284657861331232073444145431297403652098838594929458701252905559755788464316406986625274946283137370782300531899870811675046444862211434635320620520967080816059815606366503349489978020899970010083215932674577771440458564229032539415652946632185057451315350543265837658741582012622914301310517067145954108976107919145703925208507456072873246725225241179379068001937872886012605133073416947101033005039044112378132481268796727617791832539882720771835183697569984382623785103391776219147280114415356868111355684100100161650343454321799918331370005342275849510640654744939700108539470990088657461052659230928788424010226366689024365323303938666429722620620817850687761281376450096185458427207803918740057224344708036206535601270142652310926992550944720208203415243380535609957811853045191959711934766944280508079559503640611739999313680238186051515406061146525595732703877355118742403307426447366715520888777659698095038021936438205237948828212210903623037453854992904607108753491647476283263289599107367062138409662985485254416731372857819459469438719338230771854843634581822425345908477104415411404315000836390945818939720934320668179363800709036331757746209458179324292089318419605204620175480612778619333224437364255281620224004747929285225680095236488542393922902076878618168295915725633818719674310221727361403056859392420399915764825802434976100268505063247947085348328288211563551012053528316037057144893672757684126786478610755275867396582134378729313981391744582803127981678821359367031509555764018586801048896306835538646389461648604955705134340551396734364561223408169471325411320836671824805057319980009189295473661764077471529523644776715597635176139524655668515118233364890241266724816916572430795479944419503429027531047999287777770317526882473407124053920428903645309378993002515015169406550543035161496702932710726156589007518350997119537981084533857648009080773487037937068278682246532772231626927245028799448070363496248721848225915067034377775323883959684876378877342039890467305635345303110657431653660499385995960910185207410788136586815896542147023508991555635685504564056216475845479517333591891933304351996541131648812509878812808272520174524052457078293368980440064324855409321038639765734639844411072183077984808529805027385705686790267071959250020866866406744851084342751758928289411547941932967262780107359412665237663427714399467190179944221742390021510748491421275768469808712921004827527077971998444430962891814995723823891661061868968262467929974719922241449472337441570636084775022528896739968172568432908275654927708245199068491685349790192590650962875342531524333574465592845133667473904653915922764022561022956061343713071973232734491539160357007144292046059129911065202308568997411460735018327079729884635658609652908571264600445113526627616259771789357801815230468389001471527179689578556528139316357731105721092748409386049384205788380257437651330589589344260948654470602995046317756947056212697040034165275557318015583855817162553045579901778758182104017779859844894890053698417767500350069014314430937409486866517853833154028675643301172605379486862184837478382847792805388236758607538707452972438197714554445391022611869950886188703703833946133999593434343677843743214706914508322491034109420818876086299890225558191030838763346538483872014960293991143902612853040724137723571809023005750580532433802817337967202135277316379079176487707532986172647232632992124020107896777808749357556158246205080176742937108132794496239911309505011438311106518908316739989072840608076380670034472454143871240620085327421711132024273766651057593009915790080421049913436054869101324874429374383501788979032926014341508499348767802954434431180731079346980590356058524954918565683747416076031416427504849881317537453290995983861316154679876731394249845588800143486336879990965525611456520889969339184561273038306392823574619779743328331190689424592879352867145010858499533812768047229831227209461704945734167803828609646918155922263490834998871072478933444560414150669933870309149073924161832877220147623780687842267351463040917903403397482098410584524236925506946441271710748265342676922935151966225098626033973306194125151239942444923419841040162257257392405246925095854488548982408172411585596166109580135839126051771469547718503370118765780569169665678379230135739186452113476163018888010234033209223694400683430845050308253123981703160571406120152127366699233876113980693663138409470926956367823605139518294158535865845744161578944136090480066854450116466370179340599804674830726436039429233589566324021154773054401062482916068743313781201201382717620979413811033979404026644838328012841977671124455538269700903752492223090419938365367250641657205360675213947720802625069937800716383614560050104729748162918955039043577602757106102133124482109740656125835118219268437366493468863088696919986241719702530245233337592693312635649407318324687656187710436668350970935974499389840632571126519991096735633659211716622764659108758189104562532598677345529809267701028901544398273058709209057575711473356405470023358229017460169370400258471480909742319734444628098353115522660645132839385713266247015985796952547970607086850334895640954753573528416260302000390588915051777834876636504672112775682704910299010386472159873218776315164922740408028373933348299683699959362501038146815566981747393712685569195888582074887467049308649448038044593262725771456397278765431307451047749946015603187862145867357620516384653422853520029028278331257186726885704029664589700968193298118279892006566278280096967275793237551726962847950933256714284382361429379252750405739591090986603000984970619372625598929781384717722434487185209737438890804123761608952287434274325852493942990419754345116369872949920222333748630529427883815212076952547777665507045208070155135455460704149695884709380013811538218057915252490246703591427758832104140636792925802277852958549125892094544974567806343112512213995651138311144692415657731271114525963325938420912425903627924180963755133975507670416254907672856749084585066501780294654495520924109551794433785820325355205890494197211699500372114773806357783724534989761494472299039491062213461890465455612961917510531108768707070914924168515254819582541006733244453401144498775866226469383948704728870142524249139670216865953314786667373490022867734790295607113622047185320014334746772341137820926922507621914558312401901905473560658932312811777326019782238176007334080973801492401599289900243894441146254768733700898179128383741487936115036683344451933509523326898791676199317581084426567499081240400868459278122978094014798993473203136450801850335032785390112970334216486256810883073240143259319029527173551633900080037131131252525379226686149532897663151773143535991268480982828652404882142443160572415592565309817692511776835085722626478449476065548032440059873090203186747245091763779975450996004409065430677632706819125154116393420173852815764107934446531778319922815427966292126530088267987789395143201410396852300998033645942181290588811029990214366258346536943864796875792493026503334615100774654881650113678918443035866546339260265893433191835268800513813477078512904045273092812086609660921978768495101232111811427065316080816084794189387189705423639178455083234065806711115794536033470863337591412337045640768215045795495655232683122985939196759321640862725943589610677495864475412415495334222982568193921143962838721537421277747620433617582324778601559219494009386653195626134530094735163995988113949901033388971209776192657824260713492911178904341529953714156856847064170390890156713842041025270750463155267984116085636356535274116564285561532786239092482683565477611465628097363394803294075982171503904329398848757758456972514324286469547843027276092840773148252687621001153999705176372233254614934732924947226000096976293997351011311209740211967711642741407994941518752163887409002431891233842791917344177010197109220018967761703860565800552769956595999917459738958009105994248314460946372693439844433652279126547368501748381316436087390209859340799731910969176770810493341455578511972806549640066924355941159366382583045900768968392156720517519689633975295025275023933439590954512785148910247416136764722956864459210943311250419329071786278487053288957135857354906703532251403488761023787454707385345439578088741529461334854211356660677170798026248648310815683579764262512453286492637164914638708965370151149925183557857145076349930963821091951985581833424779725076918428386399757708124008036346092148399450411382093777219112923550729163692515094926144699868458574994631683345128214299699224029099704044702750016216659545635804801337853623601945883165656174787565750454242566724051555355044200189130101982612576818436859873254341966221832804258823835341761210730693252941638953528466295308706359870768563021851605128416396182070504430775669536708352968015378916275121473852358540910183165006121876797623337467309072802648117316404118837555336639578205344966721421834220103142873310757924711228359242362644131023412228777086303389326902435244368221803398912537362952134178514792946963653583796905314779006605472807892794278601137061353611936526602151663586372805185905043526921527696798373648685269318528924144807612393198077630394739255765482639638255139751693014708612946045047726835258523935417483250135770270297539387078299537861360354412634869252433760591479785132997457355288283965012348656339976307994322561644179353570294950271052395362469066330510479517655100211533384117050853576118466603784037112636352040211193401340541739039477439592465523908049604959196737072233723458019793752584650056315197946661223896133845268112895359584850917626925257621293920328875975191117528116834919415891616642489035730759500113155667299888790718890972184643604988089346797616668776500821201561634167655893888360579229400183242586165125538011512176665296646402516010788041603550001790371884309833446234000731758597011485921070838486633776232977612279244338871235119279311082785093286433974021527081368918820506148206250304230709787236470679116676820921777192470878220770505734563329398619327776911066486048066795559949608196317786839460625578593152537728418483147982364542711189814437603367641708438608732139681085463068759113590750579959934401390162135622725563750388280020886442075065925752395561236145078726814274870469048363539112100833448733623935414077934784641539492809528013605613244589387776561372848251590070255351022173640196914464288344162759843372115373720975042198222937665494359066589238179326718231117208368080731623255445624763242184199573059825740901770001664438166122212453293793982368614128442659564589174275063840103487238751077312503447742276106389594117848399431761780634737473560853644974942909053382344687837147577107739341447549675636564597832224194680677680092703041744228759511995461695851705782180229690150152417514393227453991272947841945585572075382646225678002095070026560317915126580802197141169938514726024833977079304388014598109172282862450272427483793213163667056287758257982218791839071202818347185773092880850535001887171730746606348831008364056260421267447133920574543921418249451416779960053110466681755470334389043004644950286096815571668165403889148427372796313082275674043302262338986070883107229749271474745545286031034575053516733439028102807190675089348129872373011799050787121868691059475430955608155042798609012744999198624202208100666393679470266310513848733616760968441040271077228829843058052182099089036348191942838087463644982041206542284938525402217524743232142337801809846007405413027319752445437811827605463759082889638214338467694409231171405381196934508469707158101690908870562844104119311530328997300110582082745658606366357726535237259892664074245706625300108798585141798210509252931725427262967804944102016457503868387704772642166235685882767261797701121580779147849519677821175483982559637693137359286944083269784827058411649157655946484786236213680211623965001469946747270011470413025662396923574606001746730952395785961434650568622998842607400096169964398894334196152318663181220108545384460967054336371688814085332927552541334479650774272844777106106916004804123891274379137735369644187549388162912697037266966373038378464939613623674201874695877144079109164335044744749542313180241042704755515804062555366345562139269019675565375878271893812400267589717080369120887339751831693197246822765601982748931688568531853934285103929344511069781446934510748162692727305680381012741997377202624128028662673519364621141419601752504773313535802987248479860518906150258311610882812895795982870799185431730607852622111413949459554677333541487727908780085160936728052192168025725885196995456207568658450878020725378918149223911613533263031294319899082800300950028183515221255770659210361792010372746327576251399218258490869527126329079822408310489324296699899551067826443899214880799036201843030654994338721547997864956314867154010046433341235181294943545769991047125511623792738747270228172213598144738161654736325073060714663735498119115671260840933186292836110463999599358120455048604997445267300691857200524970625167072973208784455670272493157443180402566440430767334238057516338344581915943079264320464402734520898179953847171010008813680766445827388311341301758032427554186123485701634710874756048759992075972926502156205967065642071992463590060585554936769406016870161014396740439452123316578750906583243176819120584798249774693469907256750908309049305977923496243530683691054128473704973055298486556571411549398875150999395428733906458183478841127859488618262551492034343872918457044948042621397837273707094917059102117049254408586916823893511552284322757904101324174624545734769965414868939767934858525198790991194415988374541939454167084882130618623235963718201875865120048983716714302759642975135736382715079251437001939923911557971100025185454725950179091025882028120859024476535493021393148933214643470241955923874031596187210086297872586874328696700817932132932830756357047048039811888393857918804511855312445406434729442957421789141383095687905273536265635211827280799073601169942205159641451010744704139267308960216208597252392176986110702263102455734125655179489998400693059928725682303163840510240706648374518817259438316964172029202497795627726617379787814205816405568045761593695606363034024211411039661575470035410635353956195547332146642728344192611626193041084051284848553411522599648186720318820170013118850361374547100770387946909296869002242299801743521070730617672894614650859271622672283011348206613611148638951333776981140533151048846387652343015429931028724497839352953107140642878581840991594185219750516723426936885779032250257755224080858691552655723773156031942111985656572752857092622554069400981886734166137297490434187199959090201651374712470017512663473805500307947333177116223576606659568920510007149349416912089323811424950595506772556054495663686770627268659273527395015887234946065104787396637928209978152546292198277902953057349241902367612923642055495265386941705451937861573006052490011625196572001074454435631992896501251191440925974622022125586621281894673675068602912003751437115037988162767325771987633677601679087530312390264940618472785723595579586665992422109954550859599209577122857167204859371957257583534286367186244491482327273619484619686720629978202927350259394573307627876817890033183320529114541786169962426214402169067357102932897518392640481712531042824014611297908358298949932657525545319512913522306260713506023073172849028506805471783655910971214634032310392929662537385821849918429960546686780061473972308247766479726244565353797128522210920371921666780998939630121340215130450703707784590777297663048955238046054410643444024203456628510101354593156593074909202024475810084960169423542314364494551020016282727989245243631340350631012845947679092318428699375431781648568292540243835332965604886464344139796566640206022761693902662455161076985298820197935030909744899901849388206534367597724119654793749055319876087567922700858518491415627382007139031012458857493202797347637492750875158656436616728589382490403168148285044066402720975227217643663223487462314588661827483000658546596824522579049595853251506686340699640967947686311564795715789108695701036062865302289981783734348672179858492712360184327248167107143424180819582035844572702800235454370786633987949996438155152336881982181716269096576061893434041687837819323046138517474093915648755028073692767015580122715091466397720832090381804892080500478461306238802726042629745246636637416500742491672403814616287617501811030674908227768853727263190394828133533458129194110410705804319164358489154209720809313641714098211842944796725894354398984103322313322541152948376732340264689657172115567386516903584339163543093450773728020921052897969295079565912060249709515253903004006147688453510820122830240571848406178781216629812097251138457690186769694368815650283027512690943478058068186743117144398903816719747316677542855846390087305679823794452095657997751950412703576440586297575089204939723670742576881986352981331819400018031233166413960424565269470105287372153373548618759004522597836500334658392586582658530343037192088594785471776833667445786083356899604757931182931591248041410247995091429542260220423276026685384744103078862975467617873622546653915437914921514871303753381788155294655737935943421574207376898069730548620315768036678784843759301478463641441857977626110349572143101139999414826234981824773096780341004635507955947232572711799803840365960425628081314944442125684940652347947224205974094810066057445768783293729522229903206085548934199166825211204216615865691205988845242419893713475571258741375734685916792788268672010255731851983924721158091577091931892078085892175452544245297024406697123591272630139728417601069672709081237458954021049177797763935949603936310530068710038155160705918366409397167955374089510637714823624073257405932640301762115038870003317925680910573739317787674405151273359571904809283515231971243567201648718624258991153519725299892166824383882233268195798914598077434816818185563372908899069534449162803570076922921201597349623129305034765170288868382336121341042335997454323327132543640185866573451481964587834941485819980423785620861163237996849039714502675094226065045865678598639289495934952899923595826316792737612649528261445200160875988146211531578084494773800838260845083487890179012258997916674139254662846146124980305494457608115076352233490180552690685765595752846618966272254645030211926505645719753481475380152546270794235095847073214069295364419104833289888883173977309181393079340627672751437651393726061018170453005561488156342249692740809689335033721266270894241793037474841993886299322648476068349651923042979283395691024426430667325160004803454248114767427384472564164868341246591008050759528451873817805074651192209967592205723559885229766360488167633094985284938467831502801846042019101497556150913047136612328182879530166476279644112178319882055821570356057865843493859632921873652259827744377787805922030833741870869266064300554688674096700728585382358086275143878251400021641978830860387651086637632065354860799596934503629561710702795315137700011613031680789682738289663778959123237957707861376273911242298050738588826153180296835257158558682769794369186725500587628868838574414284910088470082406663198457553862919154044564391591717341502314626585604221538346138563071073716700997271554849857357094613489429627769938163790186919520548175035266941080960551559085895006830598942972295105822885391362749003406458309526447302029520340732655991886452629550944480267081089897847053972226592327853855619484233085038685357653329169836378653440648945781773904406108753894054726701528985719254094190863097473642620153243957464281457702111566762025030720936565326246785144422475696273031570401981174293803574490575451856201838919585310425539034794749287694100919702519556610137907537992422831054258531672393265791381332484477307098392423142193578131788407649359327836904224782727751001233574822657655929096140028273208465579319127136457492016071305826938582950150012984297215913268328839553682860877065119088533081678035300831708327197964625772994608229753397957251252662271582326001748348121108549032211522841944453938068519597221976542701147774908724719502279135809009148868543404737005755329750691397826080139935518289984354622695641049723769810479165556692004535886666126664823723389512263969839393370612476955285997666833256239655400963240755586895850123551453111945031934842667495933254993413127348402300017669090439110683610527724858130133071285525029998569399928597739223011461698980882701223192047103134023837391307056650134967839998629568572041688319790599942442880857292623554246372669600167174958032196879079113803273236357443710509583229199937491478842395427589176508736657015374964137203800076262481742777094000619356570124447873062871473601007513433444926343245118333620861384377727336041615657851307973317312441459560223001427037964311446797916581003946980571411730715355755751676467883198790963573688194394824163512472667206205882197222528572530379230311985197408405715157527576642609630948784211843458846279866701845279543323832220198210443808633404097044703980940635632038116271292267219266581816444498556971103286622659025873824138260940682058285965176243347161890870703836285042877791908151083101029711614428270942389098791888574760253036533589865654799434812283600932623300171910531927577743023379143218514953322192115995103880439153457516449202584032296909712112710983103303880740743601240987245371801740033028487586377731604188679135409354074446105160168807884063375281759061213784219677838301672423366554647509756555793991756437992875559661890941123489172169420359620569319384654826022717938193459584387388770304363445324691219856916059998829100033255704594358703262124966322698040317868484527548021261863045829612169297128605486027682172327583136881659351672313934733902170194525676002132305025820255147937899127550133269358174293994406878916422025082811363603668893799680175856812514007996456890280102768498005170931592864364133706227279923450614557500863387794397736064760808700295261672680000705385617178498167604830281408661820211617049805155372591116733079078968933035918344040903504709927913271473788359362321271804287986684178545137018593774868366001113815746936062565674951175117695312489630561143056100593841710090962690306864833301614247397878872129785540367963674298608595058567539226628985524430089691977677659026598594466567087478535865377772870343295740755144843631003419195629269816366833630199431404950187572864339290188556310706500478228156672602901162946228959455179221979046916147715440229689169191434321669368707336031908813433798881267699640956508695652326543885808266670909240815702112026857378662744791940552327475036997015282802122974629144219405764985796841656401059460019975728417194000602647526787965872747985164545659634703374798596722868114851225003842389344815869810776653163117235269900508657470509459429477631363930221110994616604917219783351352276961692250622100133751520266216633920550385014207569008564408638996048427692102551867389642519095561389656097971503114468971070432240625077429715598529050302714484143381415688542875244851381600362176640277192110617214097573331379952213980840547655194102054463518014453374310863937986049111260875051922790222009181724705677131790832515653366317524786260051544320077911547851576129960249706316038999343271620882307964633626594860933916623739882678092058055157699805908026460838331984572435884109902112437302716619182085192620937916553467139064080076588637834692186083348416407651757130230974237555990020084790063218306738040675537164016939768885122038099496899294726830807739026693035985915108415263868883003743469503482206101360311602677219435237382317622198955467545076812469143466474511748565790880425023288437975722265292239195603619333029761912228476459119160601653717504776922551611824513263060890454195840022121198981584446283226084609218637456998326585683683852505947873929007344051589421659767435549065209311481523017308156246301646375685431551203819624650789224126324039939174037081031924224662802858910436081687463199108748018407194486176874974348699644331074438086958563980765786668565303941404234848029942419215471911450024696543735805650305763774280580735913439959285385949810858079349975331448656816553392452759438024678190017002955043711784181367005827049207918690000862606866272175886137028594205388272709709052125027789749047296660883057999855518806204870512318054675864565506021067197880700101222294449614536611179110068388018085815471154570981709264903060846413601649119921115592142288920832988241570019753839829561008520063416344864942709820837250027492020713082580666979174766697424229296226640758328118225681539297495648895615358147177621063062865589915244665271730731566023083485656025062996462708905669357338252975595347958304368129985389035593412542762661838569199063901901124618404039079081693935839826308378476747941283906809005622450648398660893279015133054934568380241942580869025872087510600837359661710856379852393601066578710250357715770237341661158393110573088554956188620823746247312153745711816416695145497928628732137998621118428690683561870864945702132504302626491087674049748640979685091597667423274024672551176391328074942865942169389193854284921287960641386912926388057753505611404066283824389129910878143021246257117908628595748836550161560259766885521434159732831349539508269072272801224775572430479542025509263999507211040860332801887097604706186478463617578979987443942505735800621462444550690174425735760723105750679434402243848083871656647271514699438068437312057599366493582322814366898632968971802006629251958571427560609480878857314728606710481476155355708012610539900509707178292493387453251792392405139735278883529913095929381931774725159310351370660450713490985477888411785874981802449195920166670001792288768252637627196670445423750901581594353784894030874118354886809418522855657172949887521291007776215931085792625516905522363686813890489770644590712555453881209080262529668693790444951119171258851123095100449264088879632479546518822822961017350122533130429020064611873444824024001235702709730373754003234090403076272732025671011549771938092252798185141169797357266725691371647062122489812049596433937799035766322958858208377252855836545212698244611526410057836279035295241532417108101062463614659174519222044720337702568103117461481246160037939336601510609835567011234655203379128514155315797045374660992534184291095553710470625744765207081927994049282775008959440183702243459875684804524630570927556793848482545609592254385941574967656111890593294070088545313165650054666169679219459706819136751110960918783162888825329731880115223895102340873926239778153595399044284253903309075925706726473506486435813782951043957070833358424887931000563709013804890995063541891521825561230211885856193884022385026193716741038498063482891062888164707257510406620708631154240946963547258727708627885573372068331562077277567145005632840083900934561693014733367795605214937947492782391881300308764228434678656468319570305427764633342633010305877523148162160885275514299137106920487437358251757293275864440192809866083646953077172322788791807626515299864199213443887002729494054734263703371425738952204106223445349741656511512279779658456090664198085279266137359615046052320586089492605374608552146919650345472856045173281075589928504535852415709612070764229660930315443256723645444187204232921596966966696871753829722009865913808481287207497146157244996115740995461942710075258391869543778461598415689326683224582369236885786168487017443905288952518484021511515588603714675022214448105283421862331478647769590809997656758397572592929248775264664288484940873794067170521062993290118567280132048650670621542843500367523375919667435898279379010028841614143552319581428009767182678710664172455099096182185372498659628105896108094205648443582036339298546355095009093048815846391648049630285247167695241969220415965704835803513894085247407245092714891607081433724703040771476465640631661236412129433809450262249555766219621172110174104506584318742459232681135899221742565218479217037479450990049702066913946136078826595700199654825161516918917102133326806710137221707602492551988878718495380758820955188924926470713705951338474041461924456131185835827544952991047522337842411206290540005473294591542459387784485184991577347726862502451445497953671256633779634375288406139304699991100832872980972242463636548417458580555391602452977463631506385739619691471083668572368655932080057193219094918581396441022538154092171746010089792789422713389681123147069066132934556623513707161029303250858627565001334249164285468820089079661233917195064382748942412394537634017011617410050917709153720765015801390584557467073340874739136842434035722535147109516084322669309898228452826888403404654268010111126066108599341358438064136282667338810271663989965955452090851319929272586251246362749275573313395268737497078826621149498719198121642577994140978725743782105366558040059914087245094858360137135978195035833327297480770935995088315659994383027293377063818453171064219024867208990083549630827049540167506959539658839159937322668879459684322588378946313925457623399088492155789147504925857369796437055903379153870649750778170744434021163569785338391117626232100555586489641436050638716183463432452135931900922368805247536686222226977557897696731689366849878723662455325998822920006928344170424655267977511177387425810879356550393624961576534706077816412805083059631942755885310891784645954685852829300873348103248083767193637656135371488962223169658860025562637163874076109673536672242023067052850067639427372370920800783016195659733132517123727339537916437750796481587888242603192139584405641031610008379635332375929313911470944693020827357797205510296139901814572950122645680998471989850865905528619594908858738815606021116478076272458395159760220317134173587196156525960046679537486575163880515938523653280688295262803440716410814468706570738452694990549769344548071018582746237663403415153128521669440279730724951911007162209770893630877704006051948556043784951445290963529223602468865904780215972672556861203047524208392933652499701719749855371119070840831952719104834101237999806504927023300095011255246587468861347098333210600079710140529609491093244691894882651875498627058934544314146608711746767824249028066244706892520245155825188715987836185864093159820772100216427038309210484359980559156750944076137412639688931592732928709838986380791639486098444260642689753780132732621811814349296155768919095056121839384810422703702192785390678259550889743138015545468490410470175723091641154735198172830538576808484023022156527681101437630950986822584443228800290759204215872027488270062414564323243859300538207620889480822109923326139554938838158329230884304152845457740706491685606040839533184582689307487122421731417786439680426629533470211193133015041708851366392966437717869539180933017556487632163466695103855844337738985369380664709722690718122141517526016968432635256545389399041336524785079135732756647771360377067348287702803267771834169422037531036601666618026575283350048587376533552232996090904100612224168541454308932535074853527233136115521915883010281625697606255840295290842981573367027545685388094563205039626314904422917680917338767493737461929655877568105463585470662477666957666212033772198042350703877767208068448429018915234196897191585678569842131665638483884342630054314005015308678580029870048495074613813349422737062069506083457178271952871669809457053689785723910036310385781243547548362791033634199255447144733359536996234688264830462292909700154914864624101343812927764353882754145565751699151247131089321006204497867870294637854450764564203890969278292141128241109116641389970950365432824566059276099523725980438061583372796393485820036201416210505909261157411044371012507858625091842825002220851026055192660700397954537544845453391304445714193856493453125147955705538189128278350008517778589934287886877513343316741413757825504135632765704462355652570175285269281299146068355025457502608095901360294431530740274671288423783920104323384888412658073891142498989898990479524762187449089622215300702018482020265564040091898859223326748594036353301673288921333490489776039753185899835720138549636717984452913415870084987266145521118864619775205144996286831058683588889358584353084594229167783074995323890068485029472268916400497328367867335625917677807402590723443227468642107098345321984161339699959340727392522360815385877183869430857210149256589208874372876463949082853577185960726045121577777466157900697016270117631963784867393426666710147767040971413543787295047834472894304714566713310615454976193340289278913972535281132678789107205408908499970281501614733389447557438573818206219032125862918849449904169180009935015342202839544731918539127719517830101137105066613440345642244273034463784891382450618012433707040474449858056428719607641657549798884760958423578680094399671568849297606021700942923410813173362535425975249225877582553052789769623557620526659037197442313818124439477897129576960053440324992722651689286719027207094487228467821722307173144537163013754760546204575437068065155847295054748117286376086801646784067812267433156854837550011079568777341356295087818203633895554559321934626026729461907713337364991797154331299047547365164156451092177671611853631622215593909039872254847636043628630511826002870593934861304690787163426320816265176686414661034881647557660940730434077025104576565318652248402980519475085220881175350429790483824324911853618785136706847097425553629003767647985845623217075188892398014427767381267875912562090873866226985547699246801151476020791020699513576834692410873171022889417313247212414397622103162138854432673705478227273467580768954139919915146292761245087130395589406256206979296390855832543718185640092318994205018294776590272555873075415929111203531038507718181947863112068753251419185841866937847334931493243923561438129222256768543902023196809423257785956018183023901292653028039581169867902461832414347142511782048630573035798805112599382515524350964368574965344028368461743983018056230656076243344315868652180406934443580330126478291344471230324152087513432243809814870274054340403733265026736225242315278841209195135300632488808451143502008191648083144058224484866787606371484752304553899354433695440856460827760069091866219875052053727958730282434106745970650760051235728424362082757417216878840611598947867934394820296483263466305127988315772063250418661096686405062153339567842711266705044347837809151117652104814340603342258060989022369083320501155381764462245848259026628661213660789841619722935757066982668254160985812618948808881441881293714581862653176702610650988918206045290268948723524890756543350689349353915561247255995740677410188589147781893035417329286554306101270428575990630161940767685567038502899005888892416245267653996091306027195238424148865965602973705882459697991189291808609240401544009048603341497870002673414503178387996577414560924637689588306205216114844306345527506816319357619152521421204257130280276104817871134316773341352849455317169288772961375945704638875355012953603465003589954088074719372358677440194643152613948090800956722534268709141479857355424989970956971195460166630613920853837327476772367205929075741792648027331291854064646437668452574295119174877425445766734691548744993058896509140264813825892733307351531406830829142911704602516135265071959789966634057402730872287593156559495329960561305872973851194755325095578133437140009250445804925407641020916002206530205513807091154613757137392977144655956078524935445647119744592005783928617716932042913949366115964658378221016462333205848110025871904565413073724519048076521456983965346956583036203247149138901294868011690078929891673313820284028742782192898144835180176477709660819329501749675207908472552189748999164017916875839376963735703292160661310603933615936513603297671333139140337231681912857460679031689820313989898946772033830646217051036802967342686082134645001964806910846842738654416568959762951153941671277458029977444211592603979831770835911656900308513929011375091265141955619874777114727923387649173309596280468009705849423707477502680039451180765730750252666437395141434161742151586581937854233890413164513244615357500755076755976991999687134457728738839364386754929808151392906670551552097118759818439154919407922006665541912570838102957921966097225076724696895880015937806889423284314668123477241274877743950627399151047041564204438089665453714845369064846939481437806923371471361901718977652450838048177644132728851621517900157663049115348886820052235293404035940063508409243192814528968424299368001665667756890316651267806596093777543338172078007680977289872742584624333695682133135180128176289814966096691441229480834709759510664588942073132010695705116390763783488925404642599598534742644979015217408373281328110302394145641887384987127889435746790289841167613004281819994117350917211619087359083964337473526311449839261594424494669163233121290372448539361055731658719662688079098013052936364286446317361700908005659920338468125015957908089660547702849696866842665103495007354823945189948398211610251830740969528268412357497056317345208384567079597481072574966522841548012438771360768567650571855073064725813091634979428720770512443514565223839384480444707274871102618365062244971158880253975508033095290579279041103976874396541491958277870501272171225144760365244588788821800299062073135236028287823608992426636207684432624297804758287253053718212972124361165643140332334352982121905238720863766607570479400405257111222337871432477388404403948077985017797595149133014205324323199982546673190836551077029357857767253036561443897958787974699384157187209258601763271214709478751238192859320012850005635596910195006643102400977223983715407830906601518529223247951987224908299647631078093360121603033356403761028380966888891823996227148307431695581106699184335432893560561488067444406484511697894303778509761584657782995110558713050202666638536401136403420683053996390001663245532006689140800285564543567071190907675663836457541023804379066351760056814896259755789261324524565913946603013758616779101692763860212942269378136270413767853371757122004815629645109306873579663387288817680722799551601769956480557219459896390770952421611746712322102172297221604748119250112077036313985522311879152207181575308555601664112077201569381625130763351593358781963540298663934601510222251118220576322743419759814529740374741461347249254760441817920151767404679541940790854833132064568785470308187522852123305308784729261508971276926425922013514703589893226956845796976937026959237848005883067683464869646412773837353729152438302870299392937052756455305536067508392700054399796566982163520070512178999056533791922216838088385182954441511873059509571950266423104184632324814307743332393541103651146030153735012328525635218924118557135630852886302179347221327997396098800614661399083496220496940729686283038060499927320241193772196779353908466944346516364944600043096455875646956493232707396179081623833113659646109397580409274438888602182005561638877254034961893508193040003335843426663468745732272704306982116235826020485824727591193163020668747523589728066474744613227039712019238015097392425315488994046729521069132247430591697683199047695971411122569632856306989651042999894014008613068773387688285917073968491428646527867679621299368792379854029484043161856800630456014350976624447521176228441247262191447975540204872545192954671317294751412514967130319594862302361929988901406598882939560180629622911048665799794413736100147201897963684205470917467302449423969828398868163893094932088727280995077508152560438977405542077741479010807505520788407504276404485500233686393983073774427681533150607013407888953343561411854891585097676655926243226219993269591854710943503714372126429376586361708892726714498497769441716492440625972635105544201517956857690959987792330329506793114181426999457288675385587545862345364212422778548023367730367953158310229323820398211993340558699299065525885520884833321362971151830156833665656299783423355794982991565321367016929751370232585240953047805285674779871200197443365790239193584131674724249089296996197917958428257367250771532987548254087582768373276167048662451848997795686897766532827971277359971962393067410632447761623578870095132258232251771151796643904247998748341057757889415308527614924656267112998330461920856727112132373885815576588647744555846245563326650342328319697485974418935873944722737974878473672829413510729618721245965358758858409036763900728404783633092411951582971825878389603069330960049804933081112985705936271966338699329425027113681877036876510796518561916897074097236973925306518697527654086075237252926430123627105174630498258670529483655624591326823147905829113068666773095155184749841407022063538935926739268988730317866844093256075926956485223588024152537461764697160964854651014922973932715711931232848474046790825023062139097280568681737897691062370535264215877640673436640658237361991880377145811084266252638309934517888901874570640928476250038678439208859334792485694765976533187869158355983734328325409790814913415394877471690693069633179290564137452278193558270897814167967804686639273309444573681413139910484941499432674288969139847108376533815588143412389259874795547576579606699339983869848617017891578087800046818573741979826082798332725047125778058952878597137098914202436240780406764960001803788376878502578508499522577875314504783772097552647427046510147504739328156210793150380999138108090000696744351292660781229661719966837686404638562137612890114336779676877661894270936724763663131414942765618284187190049523548684705960920935943827086013939275354893685672997023019219006720393897606136963443438951812989243958717300148882507515152735657905736536283441831211864419044462199349173757106832333793989932019331294709535124543662290427202975051579116208829825780658525227411727205820824520378887680473242774676458923031574311555054202182827804282105279096035111950331213235090934854319706995775350151219819956061309521499884862798593849884304462482763981922434030000850282177739095154702216795546991736354914103243229489947939590969343675212498140799601763943305884043980393190910822809465629237771023582381550525488074616437998741684029700842825969075324710438763198267005554226473942710508905727469143207564990585208644264441121121459178050849695557105689963923917477294124468174326786468099958285785991029258447712656163181852657048985897445439703100106378019066450258170246292381036135976453059849241292653408281901368156899497303517260983259645181906485160017547843470117167225277258729361638203378959895238718716678810284162157681249849421514433521400914543692201126158123418689364001692673644183913006284123466285954878895824433871649678702983144659610346015080042742297296379415832043880743448989761088754830799725074223381089573335553225196393836751939030252590239037922517375868481660766558781913271147226767961421033725301698707802592771928983914730681458245487997064317061916681510158986878878980628708494943821712687339799905923877144971618666149190931485225587711121800938082056029310927960785605867118068100508840203478962654427584660053387562376761270649518109154084585738477336439022163746605557197338572778117091150006854568683365211784200302225334183986416533438212019135227851911507943650764462759930248448376563070383264071801895500662243454491446433684497719401967558992232281746169222499273528542420085051618271281626195632280880805819550204825864012833785139183272600859400966343440855737431873496752782289028410682515747313867819292405159280176651475032740967767961562662421010096460131370303168826957826606998904307045723470478668242782281946923679590394755210637707270703928158008568419969364798700342482711921983387976728401765042334447587826385163787759710040675613702148313182682638127393482235039273017149548756568471995016209965623817516859601889996876309601481688749511055174336187094777414398315389308318358455564912060729927499140272184944061850252350411793270242093459269890618412819228350281925528071021093018337913488751651982726708951997422376299214093139405796731407685405330183682584873018757188831308169177810136441686311658034663069650229142833639073169299087564607203237902469979251952159418458303115014526210864482953210838908451948426153848616359886281641819654824241918834953447351989600073048286924200336837821150962798760010846888182038164724818330610320713418290438548273551037363333362744440039133498158652722714650677160126070780985804889008198142572351383461313849664100230229055233628991711059474978221053168394327985629766169538065101792412359432579284149046839309002885278362861093199484244269689944309623091459305901406690199858641137882333830681747840078546359262464865040984063393121017912576532961163163358308226744144643112178680358536280059932780191699810040495452324109298765346909266523757376166427176529672346779627673092043139951048159681613893342269003896103774949706203282622144441396790607572656409879069397014318567739854453617965996193889278533887966948019872600410048323033574063568726747470076483788221276942407184310367977451991463906407984832996056280596228129201644867481919756741605103957367890845997424065769416115796514631535273271998243753834798088416216578066026866940466670211476427282816560433736420211795029505878201530136639573146497324185974188641464600615591916558788029347283645068725315111402050487087005106882708579468140456657647596021937805258851097611475038631582304962123924861665597618886423356518730529181909729956768338134610846464758330104919925671577112904136822284715432842339972612491173119885762721337610433765879762853125825649187366468845844576723625663105361764712785611809816186835842431867610637658592617241781301656339605067858431152691604583706170023334479160680206797804337815613309706455352413863059258732208635375036128876543196807469298004935945671586945670414758256877817038943026736360273571025325844408526763106108702049391169117197775770896226814845508537193714526265207410253907930345008335480828396796182281899786071863273548108944126536531732671508773179887306528910788163353115843018616890775838158264561676089618035942622985125202375146251724976467338273928664961690198925083377546027414975116708796422615154047692939236698533438922089114872168296832063281157705718737530507591588013293191897995437580670701820259807987918242609357926764867370513821841820361480135978903159719627032441236713799898660140696869373026977346065582882040256918441925207335831295536770852034050627657564697302977994659092950734009912784587148559425142337395063876929543220334318875285995851600486591034753465066452049905777881094859276032431556561118936283834524181223088658552266495727187716440931477082434357943525129641311693597250667441310189790372411904617706700831234354631693365270063642671320598357782701728723368533284308894897565302655936847490861035839906473292080784591986646871430649257372988691281156660845522633887509522417867812163790825309296197455691430598927444867121557537849204211508347568445136427573807249674831157847975689296059647079015084311233960933137621420635714315614287566321163792818319666745031688242543823801997302564441335582751536373378819795548152851785707804089110793077934052805815570247022986696241126804086529014592356852478688051800710830638555168725606514407328284692766199653389040215161752204115366266365071122525714494943154341094658831066352419691505870679911552113105012606692201505116306816916631598679778668581161087399988232009854021446307872922883866954225895247517660378661972473258362419267135666051188258447520488971401152693157516436420553383612774696848669856017099668984201418974624474514828841876324813013945524885930005602427101084393844114376918291214394649401235427044508801455635430824423878461275091522467248014770469073087374608903567457664525715522890814652270719746407974965413988483319877075825112529210895349219269538779823295480152139419733516094189651046559168444611988664261748333750286194842816961855491595251778392601886720791020096614914928998784456220720572419169040463412402411470431324374371702437319002616041490152770852143381630892733046603619646331067941477704139914343246789253242840012878640605161184754907029280402664832131017254985720584092369166007671052355837232294904422222708560913806342358111588286522158935100928992019023876633467411344003134155508587449505701449026076587293736147004071407823130977683070831177964694563167400593937256278228277160297467549605690114911221917634221392934100945082697846799374196884919436814870445624381976339415270973000807398387942573255586954824239198434109504392174404032442331338012776480900132221459611129818144997473003295069357452298668705803444367058479287959396038842032589999550337352249640957888972299810114774843733593602280768805249369005866350771588947302695277017713077445626885443471726251978010641884334194196754820627026681088638724328065364667658257432999929132109959657609677662835299472857798682987975215581961073660168276303084740171506255535805636864672146949620836730233844152025242115118860222163385130665841654596720708736335014461429990695926157201900827629929038873166393292653653966195550013676884361946046040695128558741928917969210124271567055062017662890499263543515270018546243348056719528233833532933521372892419403690376126036014122288445211893566035217507764675236833396338124418095102179252952548098036049091741143577326206129499592385787706507267263532793720690470087354736051272570181602717434680874518829225022925864856273857227268276727334051824855873534906138524793323350577387331820835262864042936081408529280481917056072651560368670255290386092220118124421593246628952613825373703838515349323128101683417036410585921126381612881523687324183599756784875300324171542943721267914858701755582784522940543902971864797580249642776720384223382935404657988219945050790119950775372492604999588983463009924368130149937540376402475108697639849802990658664599776669479496402671776429401030019530590448957841793040290645779792788722871963356263352428595290288852310990702026650829080443343110872507526257173072347364328598883953418584111587315879430184444561041848897269432108444486530686309689814048228650648526323059027922102364323728442390727309386325899632137337697889510861069963786952879660689149126440978549680205540769104608441101385908815985427863374978921370771589553904513300656431712743915632134991708520088200681042671601050864060945781082538796010747066019114393137517865269086881037735958953492103677484700289348429056549245138397010650325533750311965553326342613493811604309282318583556093823855136481191148049300477365639584438906701918108139402233821188323666640359231870222748314622201996530705685284585410565262497408135178557215404458196667921282256921326684538445733866347525384703469629972976114144504388219762906594208146223159801578122287556777683621906243470151447125878779220563522228309644854755701359986632061608272490618929216607207149433058868913517935766455280191399743259373473918521634835465977222820586231490225010892657421188749634505118481081646925459793588770344506464085308534817870312339547210034682205189961889948164899142640056665054509015174757555749496113013965746996747696362335347209918036535531915716129989067546555913082837896067581392897171403605135687535046450782013470413162360483441732812401132591882551955451784119454812315024070559175169307158273498824123584592549928671682938468298767889423888953388217138756167247960944661040765637879014439683155769308804342334005641460937085763329244168695578903010776977639634843556747034355748795558708328504878597997768279914144547566357567059383087630687548467846985082630361629883546638366238752970433345823248419399599027361508898428027291034333737172678393387896399291058805763644013580149029416287191161928011573967698818555663192857422859273158875129831175758909615401790725918144079086353504940439651724439260403763095676085514761838864183966179143111798565971525925070577488662957216092319750929736121432095090222802050475523257292816639965124724800059602799980886694856956325234409010943651120410221948924788491546603573871666017301273047777265121523712230345018693107030056634159775193307133099583915758567002475566240829975741520142040406132949226336619274854238235280514269409026452963744851589511720311569778571875424268411404220325333661002192167187536935492390237116401458740932054708554830573947762965364298648713019594320590428220500452051701122128454950639387081748733503908689651555554930890143772272078544532013104377892531377893466777026641947109854792623606168410418835648790083068384835450078379362531147106763734507109204134405135723686538217808177991955413155610832270387884444525309619615715527789740159193855210633991600902333594907720610577608772848122154160843474515226249744102695013802515282220838957624667450901360160504405693125357328751260799618162333165981889915245224789201811723745168554208636396826545245564510699479369233743567768630760507175913963881882394075709937710834655298656193835413004698123123239833576333576702200724717958521962269041113318381378014925711231610214807924419465899803070843193137267335612108408032109451978759076528074832068936021383494642555231526622042503944235686584153555515385958623830953054994625588708503049494308590881117626459783989888329999515841802381279113017548336961970703536483359137012839307444197301685491750531007941309441569722294497640778138243716141735088643785494142260506539649205180067713824023607473444641733834962233898003853815168902028149676062012725233009683163877598250834468279740269971314220084634125263958669101516389157094638151387828572343749366920953627940469532484039550205884549831477687063246981322189398534747106878514669614824614827262513590922980393023386698481778602626881985366175037409280566738112938984527107030173787497603253041376757017161163674053267945986238429160249880520940055263075481411672437770443103949732904249011499256737898889503032230026154244971038084982944816147078837594268703286946747035421485026022593326960136613998493553168070989610408810739233025798446430848281312876582538127211223931960122700716757942511548478220660773791056219919974897947376272278428435507924934871260356653604778254025381218739206577684814552815783186818073764639084833016292831382205135056782449265865984783918041574635177515947676058032255448846576023824499397471784221031896827391887127138591974259584601554078038967168521647575356068426512425636396999584683097843500288627793162967089869207771757290202359719256892193238730412316531557675139195217058984040686515532684111565880107299379013035077898376044145632202473693283376591649389332308647339370143728766120396926047174979573767779388901542118226538675185574544207587180634995776651999156992624554159626643888378174492082044343621032054871092000881193295970125102451984988683468666058034545275323199535832047030707111075201354830992724336681565082789019289615191696964158258476572416702857613701095753819274544006589323852786630047666339987836560203131382848851341178107294580306945631304152016089303171568410918012506213429921511123295573337715456781098742283325773551927795210887235593625699846601399833714756879451449317762943833105387656911910992794709326367927447483645403597830678279031083148225358231903843006391961251723270959996026013801529882231161665420350739787626568391896107892301853629627263946301487771445002007200969722755013412765341316918609322728374628939129534720312140272899822985026587526810293855304651555267837330228655646078797459857484720301293180291453073345659426381352859509146723013288233720665936253470481026941703645395813251543423690255090591000283448687721581241258832389363795689264246743122401794333615211461258102047081125785526857421345093460628260361621542235388104104591696757147863053799834369767356718135015841451645617010124122432575338194326387438352311733508237386690697154999961758592573294883782181587750904960899910771059243068573442040762636598831039534093922040053652779622517935114585000430949074312817614646027153963067079934750259087521792963974953388398187505135170397199834327065703030942885748578694251724501398776095383595324818402131916178367013257859427623557565715025002386411940730622546248886153069173556334142917701958201405983164647858191025089093206916374256257791884191733022629404367302046925466385244356146094057794638184347027141795470936050326448979477183570755832344801147548677049144913711307909944746357808645288143441578211154734678252331700648814424043962712430492696690094756816761700457898000421641141076567612860726974531319566084668537799063690950860916126218803185098814823359748002813983439832692699528859707067412299264127222090109334837597319109542697202529800739791664230911460171016828271243985333620775646225182960307434877533008398935980488769709167781722235298423535578379130954793192473378546957116181003015117970912159650623800141166488320206930511928872149357466098900596839347574349119958367478400809921396783183189800655463805221365484590598941558855397034666547901576240399216288207778081000448198964170084520354456192715213501938122294529370614537026648716891113174685066473092259494876560123987530714166931875002790141348232936659302702603859167478325699776109486442037268885333267573908320685132114867830082594238586810207336376036707717061201431649691827683284991539999464031930395536683682044065702832643926745451632330940782168782511149298993999041679307771084999380082820614653950171859289024230863744883246010622577278317401889952377620945032989423198594133607011663428568202711486404553328016224276322768918615673225172491796263662394392975389884788432783632206647851288177949272279869520050344885217010087194582510882223649025567394166998884809900286849005837480405811477788190399110950087568124091206094186616992843293426485177767977160681548622902270753291285852994554100693984055329001033830794222525222143841504668482290880714305799917187148557926751105010707091712709273326086902852227715343880543764044067812477126293203336102393949972847517341923223967536929853882941153924674372494771907139139088859947513460052377349764772101584888858793542468514964751694054182749343491753446053010609485760482233810199507876421146995692623287926918576274642941207136227198892577456521864558140815091745670649212338756655563625758292918124182831760334163031321013276756018363352333679196891111927592444507855821373762115731040840672545981403213697158068302579303050260056435741425446471967756960313270405988282426484671029238169672664239819508808063211571913286806816985869223345494206763214387047205719384398785922467661274405914653909719783506649838071423750290385919842811708731148604305629484976265415754174520984835421970513232579344276963637243515016361293862922099900035427431854695966276570350849561245651858349966370410001870890208487110980454279245507097077384105641651081853671326269713843788117809111849827166744505516628058193547189786777993753626608275151826798520340289437906179605266422117171507208130926182769937749304092287601695256526149884636237289618398022964523984362089525391021810130393044742248206393479425463016321696243017850103449462717160789906286428841114993170915867898507819677066402413135334575405445312686682036103301616273040858594635869785682742866366055971104406470055388146301755733840952510118778922488325925122496924156676231329003708568559760331658410173553866034861822702245019797020549826037870216448204554399187175407178874611776431657578621797605322185245805647934625324052082985057286566772718866733699929315668837527602346574864946086741458054428704606673942365537436549084115284443125298204971448292781850638641747919107821053130792045489458817227574781926955366755248499783459836032967313817373688588356883208220408739054968757222167355205237716360550409569470365767168437498738057863043381445215138909285115794301095378750282667330269053871775255638595792451603857758938682769548441689840332491588912132506096585450250825128380004885420006429331486647889405383143426727232342308086472760614089631908353160702340198012387413648226144041363138412293981126843741895251920640774786071473587537993706208708734452749245313930685495268769982172287714492383119813610309966921210641386217610556106562378757628409333652623186853410917346984363760884395060441865519852700874390871306675213343002174895226159304885455819738730182453786919395111720417839794904403828053736469911070072770216199141061907049845311651704232683100410826609945817213515264268010371366808369168367297703090956160158358961363090461009480640818182164857760766243867321900831067831426712198027202526015916558200865294189457743479318821947063574562850531993745314316258862085535348481718883062985268700134504992118510262192502248062116938814952095993980866472976947261607403630763948219362792241748915474754635881906164593507396170695464058150476206185704233786300370854720407897703426744509496606131889562930849152121792914792579656988866706401465144138762966795035311452587685162675741834811446176987069958236561639475359631845091535578879563555369828566259476066856822328544559360523434073184698795619556607553861323361090319774928866492786553833068377542571458271047040752306572110744073857248780090648984500310481444703751514913120250185990248754014348684216362250644932705833195049647600033041625289308042822251310136826992157471643930883693155907394176256610084612984601146282709742494119849336802084353774983180013186729005638064118653575181198752232317031915300518934971825312912963940730932272552104468059311435920599079080304612588193713260503078019563017106620068518009091860931090749129200364557385204973983023572835091119163935063698411809869614315070506486000110754578464130891321271441876886671673708546047496074701641248776711233353388779772933567212021035722690147569317520870308483370879346079248446051887793915458301365969623550081560591668475274642940950086861873320256184621613254267621732682768746185664134848824021489604936528737683526288917039856628945759961077920568814211341396171876470574928535276073784864921255629512400278915429316975024610998991525025846668928475921808391586399420496323052133564815463283269077379293711450105934634055484430962160633416040722502001631616299462747715708149642225306691943138322008197626798698484887092486530770341043374540898522606283923265700734677599815609826102893638617929496950297994297711807090985720830103624716881162342958475640754176854857719772668621935074351609384872595748235194764289587658803141892569097403774191193208077924227428722624567277962846658316187990008185508949715702347906039494755197639340530080065445355393107501864263992216078235393996296529777598846472863593671176578314138878396149816835346665841560960988516340440400894575930488093620086703588206022031974059719148503949800639591401218029429398047105746228444093081044234807468422958180337086061683798097111876284362062079926956098779327964922154018776131204401495974989019215144891143394767696368942103775680892708620335682896396771120228014552906458585758222464645798990350223809785525759649177821277864888047826257272687184097768063406650595010459462266120774917379557609580011842741724133782592006310557200293460572326889561091993290768275086589995588184619491078933915700271570503469411976079964855124660327459756616600539660340715763723887758239150456689771458970391026697432873306951437428265179983686009526716884331322728226793944233065648576539342870962048495763147646131117442544653717651633383831154762836896241379793554855575957137734140977247544064014388932052310010375175025442103275857583577890131885074670000649541223614450832443371711889969540034522037576294103223925303862483207970805175966728516498329985176684278871119426222987678779591603171680788713831934329410366923126196098293087471787808140501541108877749625800020440238538275576872732632104515640803939724825556640007226261437824635664660143717877423181843845025509595042741208227617131214672145728776050469031268288470376985974703460886768040202985980020677724871318996602048580485281259382494089586067875504098855717240458193677966712444550511666452724496949994785058875044514194271122695000166117187260156222460526953333506035994464829644055044683923012645991805804076364206644834327896869851333398434929221874480705409832919129683718647391856103612777088743757098156324907804633202636905148903956120761748006420406306247432168497861878389850513429334946448297221180577922940625391013997111170284450747114325421301254407540691855377068470546678564509585811789968359193458164007420161883230868818781728692242303030411154314827927439773122387942944706125174121297919431237711600525252945338771571657476764495431511247509546033538710693819296427228778623612511643559678853408227002342254089498925097209476806560190784955345668406138566006963373233766316471707355702927341619663379450274678750390306521121607450727259967052434837039969172281042632736356615554664344600198490659965447044763734904894992727174404044799730479471183171375742060688349457003964998369236828218871198916390488789681429862071428953495279727069540685019718510972703761045477131537107784118337220468750929893075743538954439685628979021140509432131235501760533643204419462713803607637262384053561392263082575978385272758811117074818903082878132241309928613547307849159652843830207469000418931708671169635108119762353395812626050788266991917542328741049498216684886083215153812768362874969550677222027482865052274005889176934990506271208727791091535202378442703364320720633395299399732740046207422172736636155449867000789310989258301078623499721286310625695269562970813911392210209300627207874433554755968486951305678439419269947932311251370068137301297838128543035608841483766499122647228086642364552734702754913976526756667326129238984854692385319929052310138214821139811736373517625655659207712101619431631093527714123390404977297406520837695396980887878341299440040844419938470192338413067592550540579733477165321607189383018495879044469023639527817722067246775622349681413916244910957900039026716434427305497852732573060753326947331092049202266867021678266006615811090562764901701928311821357859256627075366726976158283139913358428855819428982585831607660632755117849346468826091708259131722763511067424785906744944628039967857167517553991918419145476252103468053964291313054169180734898407947339035919352026710959058721431905663298100224180743347446269002782750779601532610450654682057617067748159256001773267932700234300037796576729229360889896203522435105508484505152254716887408422681880734042293116369675674137903893078554562315149370771827526592830601871978659923408172896891865422612029468442182109108582631990744650867565249007759495818478774985128647486720415326947657159237267536992572201782081261119141376923043533202876798728041994279220117950582270739777342999173098070356750041390187963612121816463376926882437979931093883829108347616335858388021860481124617428166321923993917204862310315097211074011646729820771926564947909082306120620428312495354303070351055153512822351044156434345187342236562777421957142106238172764158611954832924765124500770918954859122693458062051233966240673991540342577194773943121807686912010178352812222671670674335949568682315662444584187362613525504685220823871465848387484446552292337994531410808904441123589563927794575336861113887887278532092896773875142211327013451501717239609723635088524658319459280204517732447449948420336772244467582284624655520129068414202099853250152510518565134670298854185587302375456899444885414094695510324847862268786601579843614766569582074106887234922908291313178294108531807208288980697516986906071888654502450600577629166469439540166353525106017653512887083093880601756627408407224644916619121967756388566278786418360869238734997107954090406802662813661526191073798678881958228295936756652106166044434073918077342952930655712162867106286522079215863818763995152617873548637941685216429220489202855222496203213054351180946879500312906590128798054709194522894391273986402669082428727514245599781435428127238732087737236735072064627757641486215270899322159908078704312622345513366401541677577282624922622868921968049155315438678689866020528998940592471626932290498027830568058904888945072074203097282116836053333464961859147585817009570334184495425312138530599509666716989851929125104344590211128376135929953291899021149233140459592545191216081616296367778206883216760316333776398952166701017770104584872588146335578445670171340313731270317542875331287914763546879420856324743367535681775856800873153276946247864436836029053978603157315248927945330395765333185830442619480048466634764984222332418757695460398598203959642695414354351394855538962484551609534701799577699992343145604292494720566992986340638222828368759668800071529140264672881070679351390860440026332341257567972939763614798563125029552678229869276461123902842162477895838737448547567082602165731206438970530850327470979917658889669895369025212213387077987896150371323549017805832839326575689746304289653475675700089510602951627029301787334594295380300061879794493449507564279420183918068381362942655337049589471583202644207777709777018941396580133460402780598919369930667159794927404379003319021649681408183101187055432192455258468571258281293089526640370121065681408383632157620357327206378707059312350184667997697356460540562147787753019703999438110671371866647429371244374691815653376534602823589724312138994000050749876978546753038661929511336105700633093445043663159689561938985277537898046424418407314052920761369995183644697437579135325224316772712832918117705474661962059649703477426654407746423251261020348914605864044409167874408359352205129856846779974479385166171797552914745681011020758102194457184028840478862428831993844808103001467293458871516944639686956296858763590718756804090691567577842452742050411365794283123248843455467199514800197582541447251115855919080999346584038168759389041849506342430803860013496160030307068628349447920018472721781772428265496441799174511800546011895119633376533557980448580872347526464042413251924951030261387993162865541829951566491527172256255890535124746889864090659756933959612596302172265635936979029270141126321518154224257373612921591998725800143181361551484052788526974871591035103808386968020440630335337015550167871587683152303316085585353261775130423939002356043814069671768087091076687860087802855340833256265107794718849334216942587134408057640941384865503925752113445943438330250689353158674614804908836547449312959041056054157358393309816687705942591481597317096881393027386006811716971685440225891956077384429493368230784287015386134178359024508147122768653752721012427194784596276710237027415207346591017350322443430753621124458632979009729752308430020430160792514956795435245120408425043970903051064135840314865024655879383446332593210898076900751709425999249303152989288488000215816986640722711475734535444638668581273620379607940740501847914323107390776572116691057743062357194623838351550499058787604795762963586767656162185667312322226433238019873825304556929299785166210871011694565097880430507213856151461076003129649184257722388002906184178058029844786122250823944710439002138211578001192294311978875454873760299360375823877199395744067012774675861151832913532117968610108062771633513848774820007883555339688297021954897598229016444214036914304412973359870871019555456874651935921469577270474096150752861550477174681363455837886799510901256959009094471104661318533386400644727104493805577338356883624788803881383069910399865247266214955219957875137135794416665704095615348910477536162159593457537329814525575193298228086663223748348352477622677160896872456414120726152924715732555734934281948747010795373988014114069531518100717276448839433877953518465996107288943569768884722667282569155080205783055728589270818406392918952710040067604235939653291282538803308686323732235566948963471287561134448752377747677037214682906573250601414999483551345745050275446493397800480528070728586271173091753911796541337792506135419426489852054458754695650087952440980792548679963516550815824935043984462159477441484875001571610817380026461849187791840684130931374856678374782678151494797187009003715673085610826710501463791998742247355075500431255838327765348570073370388742132737306348234937723258923529375932926442317278970025496451755201172838889872354642410722607488066707989569897447337249085742642365453144172944810236263231439420150086509490516625007925762192207242500258843210717655360936530797978504993111417879724189469711219350134165268421297186444369352286365619625717379221179760829040659169814880222610429313478334780843530440896142028014725698395663335121620855151680193431247466584852992539144545918822034015912179110224304119081110039359796309535802882677712683862828569288819804412503634486087990027376107277815819064912724691892185961510936264164815847537422415148018733359817900264429117443571946069308807582048900868927795837499631768925235069922339535305113189293180467958758754006804321271400944433724310659319815965640542730802208094124203034521895059161690876185877518015523044033767203700904937820250250919705481739669043439488474485698580442450543554959364155947550864432047886970683380366817449996782326370598548918415448422112304660827981766225159030562029045504011884365920715227620328057858108455012683189691413942525489407564271833389881239845396608956307765110368291428056502270631439471741188222491846114237739822176163674678619580396108500776510218223588053581556602103891748477403210858701866592986166188596352245453989784436333505576246893398168148666957508086829994983461224095702049039716409117295550186781159802395097318537941472364916742597122174338424165885401675095192097132100354989490981169429824140932775553013680666274972385533734195246483825708737797187618039825457270227108691142579927656918915529958067967005287584882409883830110678212422953911813508387052123112702664347389761981984453878534506919234667676163975259753490463482745322883691239911649506473072945520126224420398550758072168139307619411706412531635691673246574782545566368932674736471473229420950232008527210340311981660083686296859899849815418557394872284253248504159484983320551388699106228054078293309411583895195824053693213403363822049870645273481780066377809179126613754381550459711384618153163677830244601212082278288447550939001330183976201004560430156443710652202942259902158428482252214309980234654386889785424993445134636501891035633052158978682575706533353320325677484351116131795637488439154105538459807610282935258823279780686678131514184437115657655617918115613502743074329664356024471829261191049099918129884383097946396104790769413850635172677321947641493921472712664463839100809546187507005650575855985678009008903827511956560807922795515931488327451883652335418486130214087494485061488572584239532040048512944075881074449022397719214709839316913712028829578173515574268229346559202287800247951851900939027358733123472762463559371024119899125121399763261341523870992809948265512596650613340179066192863357834085417738000558340336105429304525297622183776799038286154366258043515861650443862398260585437997833384248505367693407207231847278408730790093480149906044168528766087422215793427466505715469810080355316156789692837314225113918475367853523145667824763342879032134066169754956363320798924449903119622858667248811132501260557607426909101754312614921411462758930686054042308575477329086989426965106250179804796311375015481908224134304718168859668526976233016440320522868139447450883063538941221377650029155898516058886520236795784969250274212445894420107279603880073446369467632528911445637466358026470039225758402735129988317902559101309595288881302197757815786042122045108152632448864338226663221039833914335234181860637674332187981122572583094944494084779609432176244943716476915052544443622794370735482257261357816905284332886483526164798925898705089810095501698894974022885995364802562099977379917864301741293704374165831710806158631251044544317512800886503782674832352387135553452676517468664656893179056259865876212055542862723331236289743846273978266885586552382748985552641076805853713324500267400660019379084625520604310961071452938333691230929434793280067580504664408739983959480121639632324879795358234219110548342031092410899391141446534595392829313302618818437249550294282406991641598845327288026741094349985391184436663680366921732123229413587337190979662089419832564393444946956736050942842181921844099212818383777757711930821661658999663528813367663285555378947675430079107210768057425608715064174618195321872615257773913010864259469599067248831484615682021096691000803495865281943465645762672356713672687733662153618262232770888899660586269144019762522448898215233514847986789236102053801262800319406822082310399195495437895711408071507311692452506442295447911130244419755161535047616905463311236602436306490567128600705897945983313551991268783058713729719642268034694282095728781781375861397270559542019058520201512765097212504349793718411898808621383500798842205070194881078150955250726392155501668941369581229563468752687142210237138474776628169874956500284053571030658138098522933679342968734992077825414463164745912085898333949019363343224273507019609957020390579131034820318534892484813595173677744285360902295174821138912105368611100240816630399947353124876616958013492911953302657485701249059290787364203521521747761193438641972498754611316576862359851143890037452675750383821436848812143484289822682277591412072812021851412928113832501082074359992104155351227394705894596668583792315693229250684106416613003946605575258114417666827507061926636722194651873395941820413405543268959418331982054128159374364301206192066318821350152998523386607691609077125286644250298195061928380442993304293854802078200282279270555761868219339954609539328164058131718549138494091132547074621742019064697802877196890415424265477172687032688912977096186734948102420047729252380816958299530590603377121995642697522233106078735621527502069191611876475685950700887066814525671032700687473148034224443346769947861955130123356310757619238687955730067422321953471855329960829260368720995456339181679062740630968277321081926232865380423390891115870193044712357926253980331653337922544704257843697290353654358910978234902691779645190841974063588289887134026997757937213993615524668195357369333090682378879664398811843842789196913624799368204051153149683885715783532001086935445811492348038069408619231873151392532383060517351056222930165932189446627908357454742189586575310872101320271110904813393778559556555792495200207162597141384685120531581118504513219372272889203261366242976594439824484860004499682802235095167668228436217134423678434909219356848976192459656107671726128979614141255418583744713923706215765627234410460126082806736421678771523781444539735986983866131145286247696360678603421937451830775826760433809069035447730293742103460656449854750849392671832318906803522401067120781823578134339957071018718181524715295836324829513922855769309405881565753670266684619003194518896989485315884060124021870704822308209181131741536296743870870309196845170664017061502321512479294651607702038987299690589165385346570657773390743192476756632345754213693679642314373362356819545675951456197286852507562264333834107857584170294797318272940391233640484427528018936032340439845689664051905393972601570726726648821413609266916573657963533831371953693165208294688424416159274469947136217345938958958367976519879768517936231337735146821113740451019949924200018799765921276273430523051832930594971527818572573649216924644558888185005184260206745694218776966695846528838837011362931253043212523844841012098358093513413846714873866143765257819566220471576497864167835484754180147871143058835398991697442197976842502010738654581512274596132851896654164701608431519076825014784588708793820411515072315321254350121050364383674098873314138349381140413203038371582889455362804363055187844407417799822848208176923254503068022393499377622313012849098806412391112489986377235152936614110693160428449501819577718067585571436154036684503204147092429302589703391181165869561664346228730624178802147350598278072952001640192884268412054202302040609802484667375904775156478723373602512420840002701254276668097702825640803998239876875041684068957450795408427398515933689671644576631990170400326268330220833273792274327062730913554831032643341075492174888184813192760929113278682869758313705998509137894186136620254397475567857989420959128134972971770820245058753458958047023024667115762255379126828296188139044903622923276347660878226691296937960246395557683037061399210018891275273156669250895643082011395036588511774985993376340673742697513207782576515611579954332681329046363849408396835065545168937487733399348917861020235844712453489701698040007258948733499967300293991787955054548238796529776238789279981081703405081886317787587552713971959213941102057673948172657330884460510136772144420618640424176009239161905094430675959961684405720173749803717433926531747052264354019594616100885388473946518557398910011432685959116147005908325927050883354645070681062948104309652847349977841174221399830625994591860042835580821238892767237211848084709594896702444025052031149548688673094151679461587829868538211059831972821823945454421675876728183635260683796667086634172344894170710069283020143485807563971823036633106138004714409662847719639967825295787643391046848292038290138867840200288040744894027633423212113729701945965895877022417441013975611452836844042623703301202195397050838548207238456764075588073659879131987259507518195676554482502473118358586093784216296649256097177384467755637556025542701180544773008085335855279115923246852992052454099589581341022545882614069667171407386998283651665112808034559534996964054642033731960123515176042185333826700052520370001073389859360646102946818731820623691130150902016108883343872620994052462435320834689887476301691971047510089140097328628759689489755489221779342422001773920225387558440637276787190885590529414271513264629051604129218215680899660692506325341839133490553496222233401715444424141844906854289168993125021598689044726913356023480456480053233459163159834385190620791530358676958833882000354639007490795020162895396886679898732425868208659949399210974547952507137076084223610717688302535043521608335199716177428280132821027115799671015918540911787546375863219513376726800348711002858553306223494985370263392075014900218727655981418960884508489816806892583907578087404166264088145778068457814385967593984455004655204141696301674136643459230920528754474448439623346516372881223166824556783475699285537404688817736716396698163136839064429567338658660546155292868801447308643861117893367493786937058852699938818673635163319815238025983999443069509034470843693017275952455369370693821245608793400457031177928302651974717879564592984649377716361783801079653916409068679543228674409736609690505268322712038686213201234828577637613833561037269984681282390051458445733546314120656828863764725949916296472799042979338543625220854826042955340801789061796761762145498526491502878994151839131174688551890062787018071117245374604891625056463698006312448686548290145599595252728974257142644788288808313421862039383081433254371776296441302471196383650914011928170633277183638915284839481187939992905828087289468692029643970992134002739629095146722714568344729465514190385567187888341748046764427444829864226531789114105873343594343404873002279400588233650392992249331808700493430590172131061190098756614561534868756635922548335704013563790229385896317056992252379395234551956640177658453454545580882959732514811434354537412644700654040943573782822635692369630468814315438773815722081663156054084507799341785885140894307762585880525384106018466361550068194562661906614249348172196615396767288770343645117412617807207332030187222310503334404121789153828152604686940902701753389490648299936287857985193865511823156078648516387307500273471339513502074130815901103377646521994102964431350614300489518403570993841003821143718755208816634380051767206543054491139261828803091409263307725680571279044934792242476529882359484829378996009283160116153882444066646979834027840286732310796343131657177983341509006035447591289597380509639588109054622422338128458019505792102930431403567609773430837811980074333840212305366286732319953917914794216367468547811222098087788206110522172935372917836898407545942961659768911966033773797361639901198368342169163742202011810937610626647879265336284095688439004925164713134669342100079003854815445377573410110804822195861778902970189370179454419493287521149383770792994923963832743720357336765317554868101282956971722592597140418977552952159317924335083955175206529334397163890522156735704928018345165998565435248341124799952254792445631837779016754048352742561396451062097336092764388986818906385594780524074395986656134441596923903337618426319187000872706303589539271595506539896998712865964859272359841815439494081263812884835355415924218231667974233364394126759458680085403149235481397320197250875920453165214005263704314199879705174336731665085162898544451222699677533897943915592383668956268975573212470701828889543678830946125739281372107723839968704255640581029576029658992900034202934688136914608872038828292571651224896889797260714783566999295985436017823540695551634304017530407473743915396669507977196907549171362845671591276149849869315908199155836101062431712877226956962789541149469471161511491467583680565644883785296707267725690773108817052350375614097047258131208843985666883422870951100040551610235616509854464292988984133361929019116198840663222743859771412596621379626830589755091348733057494559420656517676203534707957730928900453540583943984061440389384900208230917815105845913787645365555351227574502182037903278262185946988808911893573924761046090491812882577545957116099640568991332074326473374453596674230831029102939937768111324731822859910967949524006153854466183028517889853675779421535386227887713257098247386994143365360986647624672440751655007819539160176707222978003412639453102526763380248142808065710473959524042248582541315700291098427767905992152825468687414379552549472056754436059980326730839461077108221944402741917139371323788990546013940412933167998907856569883715504280756993208184734603017559199529563222204481337317266409818080152178875039761843339359718397743323913966089152642576221768756280421308703089132993800403784904867859057574389274734449237644309973957620439195980696535012930198046051242492043176968363600470890604438457261497448822333757494744835764150428630002984607239261435916723100490936486670631416997909630865168363169537149084230726908359722294197297634386109465914302461048694419968459229411886232261789676181225404589960030494880413978134180277552313941739217524218148943167857810735651203117069988408054303050913348735650811366793407824085738867203894112823066003384477494739537579416904960654734494079751214394494296949228402276482371459744474731854955415469491077580945220025046883044159527106487368055549104039137287072842914808318390626454594082641100642432802069708880866862350797070095118820140343586430958113905526342036880467616813121687224113458451360557973977211027882613571381848222367557947104524652665917280958324484916518478930339082946255390117919365936295907632614008786263501194734381556265967009654010577013533930683209670859469330127419191544772829176474241072609701829222302353683163566232835036399670342259634700047078310923513810312919174950359261376845509567223509224960012450612478692988608603715546482114288784010909385377836096838178845258589984016483180150757905678897684463190332679136759237883064219020390653446861685523859837527921527288853524733113736091944640611316736058795979402975959627357301789540011255753134614379259409459266538992405217219121045689017293005393257608553870007333643702108637309061109705427021499681299160134440803672903648891707081237020894103756969825557233836100173883230879819788206341177715589924419113055731224119221585354939238934640603185108693881414015229864107160668097805568021745820947958330246692593302043674994423910953352354469354662844196452612716906886163496258319374247915438958440795457269693278580416670465880000362782240022685491710298008531482789239464544835017963503292777164575713105012809611286116902983958438929351941044468290624816239070459833540103327278577588861314914369755608055968385375370938929737119676201465092322069227835195521498264231696927239081782427887243000145763387124161876040742405536710114759704965440325696322465142211054281393121764516372111369085029335278634224772056051788404833642926201227130061753592823952152976626141776147624196831378663845525563261564340941772411246253113784323333873014432762887115866082642700010863135136998157056674718942069458063830630115365339768039062639523168475294552408561474326652786248964494927363527480771301118906075391294929129744904906627493051926175022062657684442946709255024436705197740801129658873319380395595156732886806850489846341344850371898019813074268526039018314602512438850146782924513400564778921608062643166544440081112208427036391598680495128881631593325977919788053978566916000115370803634036344897797749759413530935078141891358201409778123460699762603303653258703031707548819162073194138106045282821490450410707944551127833347226435947119817898793759671350991964464397917054450656320915216414787190877949658564423440096165488737044776452790832684869927257481090120471535391933785177800094297011639281199465585796604112362747435256711033819571749536144392659581664510837457353464714012249772072265756553288331972669408810483257449304187753392958806701222905554137677108436853428853809412266212635750473070493471269185182939042421061693752488878492990916992286259008512648417088480591528821968389487807332054543971904936462328199457374554777734247863723404650301762127262100736285936772804240026951329306397110122730900777400110186697172919236622451929532869649248585771689547873349107175002300957833139645983646862084591532332684194997345751729107371549244310316937423718231745431305747435581510652297288225986970643943183778640998532282710032729415711527080907635852227399436714999482296413564465490769233650683813090639808281509843001020269905685516387524898576747336977608729502018590318588625897924465007194403993807005416873949065510783389912374982942092401319260584567325079559882100331429661586715685341502914557644531586873633944827002949293236499497649248082123942432813611538387674070734363320384599166769934654974470540934535211548177267774575034272969850730738231495979553472210512139517828965741118667190036932520724216531396276217472000360223841964992842756253800381030648333342415185356721147641596620745306264355729085260739625787338284322489598685974162883133019454308365228585042219002551940998930247031348347509874734216989301212623762319496614540483332880758964751935201880137713494443487642317036664714084085546600333759998562867011416862551031263059103673220748914866822465541647387338878924702444039661378007295208373313743555065294240167430342210554438787514612261676587112209512934412881033254822279916235238266697388257596542899721814144035854157566042397256679054885908807732375061967158487896437467193012464255819837735381980023482303108269223990437894581409512811827935506898132671687539632347306599506566676679238124198793710548887875822153372419977650279479406798392788195147038438536683768538597129698104536927480799587673176040013809200024230600437445546439816986580795932854553403593776532518143674865313765740205203995499224650660923001978201285028317347984720940235657037659028193837479590370067174885523147795039927317433021614891788105873962065293858312174437855614522045078495010608290320906481821303066644425287646975150450760321584176631032669487281135203237464889789903758008410704853178472755090051220742803882312085958098349119704395089614790561273224294992614624394805924784667264358366827673608629421368933344850249653869192659380975288977954662080567328587404553844660211034396101964136227166381646342734890074470465164858075020877086292420954170852659148246559072329373323187555896916825702926563531732074762968776738684511628094184857006991851268772593466829881234126226882329562411572940544497307083625831991244968668654834589416041826306382801308612663739798036563830978333123983619913494879950955467027336679753006464352075219924980755868383788709679543933941867829339273784422067939657225361863691087360239934492753556264533900455471647326807086359917193832793819431287680276029065443933122374539772008995212141804408369770111760357420377458587151478784412786955555692463438830692687608559646119794826011458226784051648067058552753987855997227766343805930267072086222644340315163954473501658576401869110451667706485694670562885467459608784771824704553807049369606994598417312645151082406923352476518308436948338289108543683444082061263502833370892942852860749872190184289827595431698521157631748335580503334039729497156421764268778765121973071374871215138139379589935761158781809936209213981575978182438036532577289277191404908517444268736814211243000924705292669421371797374259289582120082274947791422508319610472123107899113319240877434939074690221248870787068099222662179563716607373116392672102748800705351993911495092204451177951771701847882184081226238565658372147431568097036732129547960900658610707063115536070623291092592606157317034969284845473631383794158196767941219323431644361760783784862248658511575607917461786264388974051970034603110216833467106200788391775233374339628008102994514725435612789474835674712030297085173482317474487375685806823095955628504369708848268560959311480910368044804066335828180704736407482786563963888597213575538544328133691904875191851874389275777576571087767306440967587059942715367650783361132915465286436592524891052648817665277466823255049767942215341032425449642198945870007597761861985730492458811433091204456114656923383574489009647291405392027811552001944221405582701736903706503201890653477209292527576870214996171455232531148752289877876960965741890552309686945754005712759440917341119790497360660762577089800898761510029949686547902900312127162389776026766834492843738864063203408387178674281748422604574028420028431973739938602615245880453074960335216386121645688922401494920836960097026779165836390763897289092251163251407369580593042333459416213950398061582077823625748355453305580657126925169476836021897298024497697327642345548695306713902829195138792934509047489308616958306850397708617607769775185316649653728539852390514950608365424087867610467091412458508840321156765086487230117517491267999473109106215468314653377090176837042267828977783560438579197906478320830522586156416668877301049653417919038483367106197522418656587808601561572649657816903575879923722782446116465963351090927679382570142274685234632381998958227321624873104393452182913508898341790747276897283738285881405055907281290855813422430955942967392657137460316109307814913871148613922659905492063112087058638858747410680143058269086581564716056022054560258700712201364659238183990796319714723813217794912240389624491388128387878790274589519518268108485476717547968259223284586825043304007528889353962400010631099556018901249320900243459002916086081965495555414201486188896240944837727129144516627328913108903047047766849422750535751490458571370999706607903067481821199953513015761888352628386574379229566463511215521699032747200249213090424336393025423672148372980748695324681474476700763088933829405930469256862350030274748774115851372554275429078552670644451502086785044800038092860431896631694856321164067950236019100792901686155010142966803727651193644288574287995287833645611105377179425162864138448959070575077514675612373224812275547931408655641807775132992819784197347236237189900654245100243662780774070514733514947620968844400768543310096385273646204136729173089907280391589312716799636618230895283465636261535128437925320719689195443989558196606509095390981327489711354283277119561674239247040303746058485715306570739568174868851627568232200125823489809889421834093322170739957311687727601841096162979361108175659681602472226632511358171498759370678479861193816493582070119877794306956390528983824797131885036623911002791559518720979517717146170885075957053851188484368467676929738553980155012278484925313213446582013323392413558149360590126069207087884026911569217384762035093471402940925520865961408303040404049743043242081070335321019149494722699412174895912517570647320987010637697982596215363612060278462435955442756578682245197769462472629005221001208735099777433313639481346750277809785234447649694656966886169382713727333456773230191316043936651119991200222872535930244794497628392712633103789352775614474551881267630139378279174660455726321116491735133294944106084072016307432508375718399612723521392842338444712247793896769890737609545754503304521186197070018359023585894221163217410590186766299286850934513036228052519160682536808897778996276376164887755220425184215387737384197796172301491015380399325342344992949683554441837095261078873302443893893405951018819105806119025145293205141216666613565872210510442890282579106678187725321757023016859569918881883717648190078488318914050684357344395198273810227110647708833790174580138043066942772162257728332716294729462382682376563339424943020393672366698592406462354113916369464660830600156167313290365007648735397161441594465467076973892825774734467801434041020872707139121513801367592091215121407307252208670663084153673956484501091016174781614032932088199846031129839617468330122502314247632776841975700700192428520921360479496274266031570924490382994812779090297960649745181996759558213160123851964605162868130589282240045332907147148670313204554182391034146189285134497731573175324386244181995531938300538658919788131564766637299087249906355853836348052937651246450335886077022175690845714604235536358037586889190744933637278175274261735821513429971350268771540553209174775837022271925056121049671426618757468423079926231311649463404617386623845634189835675684074705368151979541682599282256096228097974667372653493888129883593862280741350115130472400931206171677190628945002339500374149343662877369695104160109378051410392194529022032288286324564198573540280574510086185342462871190581768254052238607398454868282904737559291881605012072287345718734149453458105656435665102749351722929087611865422976143825685214115403372467505616174012816804402276672618033950263836444634335417100931374993799192259385253539681873757269220829649518690689572556476187616005077995784103547541041427798731625280816180301018114075108136019293740638123261350266935102652299142446664022293230808017857182640293264422811507544595837825042980980704192895088757711288729871914685594581538563651623682696891266027235886282455324007193634402999650086172049499051114043960090903776625790948245792097485269645593071141814083607577126772701360654244540349000503436598453707762941967939492971883931362718576300936215360517219308299872678035798798755001372860432046634705651486744213140429755583241471829363323603062299240473494934768387106084677152857732451502841441004893268293301820890089462345444859145770716586434565934042044672015400949585602277167495475691667580434185280146776287726467234376243330592856154120928837720211065396536336408069356342371510967785639942157678789621046353966429342077024943432532937915698405235750140533378172054304543132121822684035971838843711252454201607516990701837724648172285654719681467660204236277262001217259355277250013465100790624087774760008532063016797104264277941510981431122179460851110096978400400467562639281247120846704297967091162132023152629491000304481062311279564766640047741838746623824114145652314291824250190075093552540369963373976659761225750827264848120088665170470614745770409573614225872760891719241087149012797643679173329356552790112954484246367942059370228063201027503618386983005269716331230865395804176963594063044545399377482863573059558544419698922091449424021984290565211962610109520855267002300325685720045947762292923730763990490417188552290429409579813298431256935824107302547343283053736974544786289542923852951386668230616825595109649958752234328286967754433723790287845059101029886572217643459313941370814821618624756906936730029105180514496456879903141195062920771271038804668542521684641130211221143545961378653421506251340393198441154520281550769195944845369525150371403671305506223727109481073609644518793524416644565655052418196555203551085728164948181761357169879168959140834480602949619092184085926956423796362132654920553409217879107521407401111832495906229881374836472474255800117320071791709301978523540817979847902740695942811085537271998646361343178633261127498567812071919082268674414739805737686697771715902550385923919823882769669377990722130949195626655473264372380681809679135573550898381438567508332923024498649643959996100335444155920265233311794235411443147748399741797347414165709017341933061965233482717926280372343012064777407430402353220777570865002608022771330350322355662337954560669192452394974968970074820145725815972933607237688093967384936660539792476038112912420201146371590241222118388816471291238045260112064895376563389750993657943181165832651004374023205809231068036765338272528127744525853464380506483318782292235883266710436930992058709978575281022874620398145383621105616520696084177770343279205962783609846546819470683424597324941919035892887221370295773683790339408906395756382741635616952945830942510694389894376994792406879597562699230091487343466316146857610376032627247211058566265657563955144231354234890717966903275617242467172546231886478849348295003846623872950289521943451326242295948527991895826198785308829407608105468393952325993764513283169714027463549538462691240009170945240907679296634542366383676609745306180413021667059790289435308665596761613684360233953807377493775913865142097491454119729081475142424223076918986539714858285172306443212708772674900169026444250738093244465252719375684597642130131468412419570163952955097737768450166936173411936704550806265612080053578938496472291721520557296874054765021739276513280641444605476330346808564027630722501719645759430597031442187223264394691579023554742281552509240270460487984626238307771424281155096516772901403950799753812596106129484646079460894474508182022329143119374715110730971325968092297880592404787998450978006479298555852603928999899357762774670289701389011228717946303930982338361759027410687942539463905847228363083974311140449743369396463052032019107293009995311121246590399106325623004080049778044457042517854004584157433969731490679920339855334508606419719279233964108946133243519161926939804645791965422896135999158285549656782440892515639154717939387406356049531929902957214701269780518632853517134511475313764314418893117471287844186221302553121686902278056613755677631348610188979249781994510944962575761828619594380682681615919050240403016806098500940161621070948296135726368536890509186980822285433974526012890300477554797353322388952356511122117708209342496688071809154218146081104093151170652340700014338770687819884534889263883024894406766735834750719746790060009820747783187898367269397955274275539905883215389813937947778260601324935803369778466003295775897310988455762175620901494686316991390045992246627044382853329749535544557500622677634461749786077374349066114057979222344967651183564052544773673827301517006409251402915699974059882722719730278152506476415231379806070722135151883342301169929323311878294354802805928870575226029331145207310543956823019277658031636823412129450155571430465291575323359480954233821827006750396709324831661583075790568682936094600677553892859371641261422034712968636757963211616307701227178493440038739647185584121592697927159749881227801674928892285578051674210180302924918582471491243542888149186572344580794690740892452767002166783869052045889171249645533248720909443601744406848524868900529053509752547063452620187945894093995856125524441924226082442364449578413602384996282990390598840936815707760353507623733597853754471606878214474261360897450236749626548125477189946687233751138033500273193139851044427175306481678368566935805079845107278846337794903440914176417831933078311830396543028115431051415566087776885903490137193526378676291024407006860894635637707469746843382485279875301150520928533038086461430360908866861868687076727319514664429134004014201697322810122513371735197564771526001520474787463973245085632593850816035411114556126675561968751443825056274405058864936289007248732501044435574412692257986697027483093825056573689056467032802896764650469595540845559049772950380720944759458314764593821902561055299392350775933642129899260383871815366985224508881725370854654919637971757988131732798755951482448229135451733418343729570693043070319092760306759411370807550417904022689708601698652338097807781665481907648104664522111172762705991165958520117460191276484211527745826203703025621224119857126191810939860317790038667577811152782266427072860460646886778309553946246486816492183427628480142897710075928546740609616847630082004160438681354853149587679851793344364205362681695331931351834490188798109043108162582546431854576749273476536616063331259350937566884210916569685783898559771605006586320835212706077733897049793863682060491463754767003753867663135301989437564423452891560324130927106920313821065331905477963134921763666306079844488808707323414001911355693053969342615158868338240055141843652917920356508420785235592420829582864516858478878217032168445464411661699250857982076684010315553066897415741409013637774560583001328565406449863418297162210246907913103829081632377085653445875595591006855036795656980469318994717736973003262302450554462525274479906724561331236273397071635740385154390454108734049019204169657852847292633594377227980596829507444455321572072974475787395037264626443295402627638108498412279579002501291311625932012703013442141160937692868283117650954370457493452720971980319787654496015461159278536525395046007976219501716435208308739537564667798863761965181801701356993028628150969097652136065167252510145087061017634524052673656812850891768850851833522095877585628033099913455190128475840239548150279642500200286409235609798256840963023074284898913468546273892572256723837273980865702491424836048102806194141345257263147495948155973661723647022187903458807833921766322681893631630072827446673457678083969334890208912352823314167227268720612598527335710640761504611104000262335433852211627765207147985245425455247499569337215157014220002923889519784115618823051275611790264546412470180211832255225890897453232149040012959795171196796595325176039336327562033356594677424948066103683478051553498728163972825682391955349010941417574973603175264219043395357298106501280739324884163151912104862298724703661058200002057305490900562937428612933836938170821654657482735491518823059715949456661196545577728013630805477911974460134708143703074463301394146083943370058785591174393168492102468455193841359888587843989979213903543227430800175806924895428408501765790962498323483944504721086811524533946102325465890487168358424095681643120102718109731884563144631324391957550848429238796099870351366921161759890497730148788265163610775618082365481627139076099674114876264906014496035616143687188158935476903971113628054645494036392804634856205535414224325153456496760003342290874289309835495360948116919199370930845761265732979837132694371238096910919657690934991386363943333426501347360743893506469892099080242249807254751843608717447516252703218446297097609796047836176315010258515895492488701768173589874870028088801806973763002347502901123554489953111507380358106074843393671515714112134292746868274091703168272927121424324960183354114776594128097384738840053858071196960046801516549614799922213144700729516267298104963692582166574381309169949194145614125832045412056345162689174609395990647380334709655497961490506930779492940445514404351333684732065707527096057973651029231054621563037263192618999770037957692794254162095538170544627424323559297901145347900742006216641678629316556811127962907348281712935718852363665062280038712537100996196757442975983333016094597369216707698229498715592643207530384128432073177674683621973667474177413275749131117406381354291140891180151585373951709202217891674336517692824090057132707735975731797873982855190152517420774114648555205885876757471644779615520907349696881577796308994637114062215815203220980381497860132149747456849055175502400781823604450280909162800314768380790549387930754247854960088291849604000853558809164973369722446416970715069714244063132315168606974255753045801472021052505206709472221879083223794828693710473770264873622878794347894152842450203256089595299439787285130865964905359552031861357662658055406740996678700119560534604945674632621782930848950527040182130341290027569439888686272585494147070227647478916825775694122258292390171506254058805999228648067146352657494697187463421513633709558948782430796050756393478815571088286374257119335389158320454852801461043135077956914366966577989456140954622643624006190878076945227910861062172507972957617395567788555172868760108017030255255046622951994193220354849525650817240317035180069547767053646434834093481437751397015641176998537388182774925069585259628821909616700625368858510333447869836423068054574169109803832103830899302579598719975217060907424055171836229093733018520574790406034514587780286484713619605414643789547009640798977983482568604622128271835979589221420373687330239621734726398320649974430164397835184254007551263846307567300463437936367620360418065729592978944694604546965998063093992105976569887969459867818137000557792148457698602507705211866058898890954532651343311353166028169051017161906140749732504213666977839421311065607447789633569978417804066394439361285153424463632623805775139472253694796607936186959461980522071249506108074551336660970003042285400508529962088796057660361511050195349586254694588002445255926140911528249954791732395241052240646166609418472329142707645299801160150581562011586880567286722295808297604777586572262199033088579740530563475256475467897268281254400449891887930717619217909444935670056248024901572172566599465126798294690814316250175264057288999927191796711728914003706236964383767462348633788797944032127520942022203528105322068929595048371024372903540620241678861712639308596058385913003767180520751049449445897406457536336541538090373236668341885934961836574840747471197876278289268386155164383336341149039714740633918865896292434612214332985252606156367179244266953122187621776138497259576817711507806143096960930991161031199005042288365318266336494411562803778822918426101720138593537866588806175552513234052815869287333728478776841902847546894136819605323507374650051860619766816439968939695200361779979110183508767718073389690616309720518031421782822555660857611748375258749568432826422782455290258995929171888982320845572026827111679824303929911766667594444479015278971821239150978272568983699675204257621471172290603333345394797844732431693843708132507862530377420254975707366522599827940178059032095262016594154576268482437433673831552958025071651433913638359850073818377255505582464900652419756854519540315073792809756298921011430052011252568687022187707198446011946395436198771256652443937460585268588402429320622655437365613570755794490874913728188214351392210501881085302693337163713722819027400213650704116985087107945017109995845500402001390462772734806361266905750514971345256955816401527109017069610737623823583321286120096192486319008896074290947615159268299570984292788248805793223767141213117103401277340215765403614366491242941792191791891930796066139716727848976635947890243955006380520380161108485297270286377324027293300490117619399972419090210052510994652357256015580279444678709915685983420444488105956014590714233487940525904709916267935066100912797555063851859126133962902391776766595395281247583121436880744781319048732002763801081994952529792242440502121478899159592403785884142681130817312129817093138846762907426713699097273912970391386676592704015416439670016206509865069287186105842277404113246448320715102282830906851179257373241929153935037681494892456825882944444254335123760206452325958933787695490157328913196153007301101722534482729818687553362330146073251752000439566834303487703808478604536067733810552325880143439924250252744085388128731613693205798427150510992534058314403409537756790716521110776456430437138452469347660705081526032719885960344229891791508215110480772621264816937209489100835985768632434989663348591150130707020019046261430599174910017860851944693897525468187067490448215120915730511917471346011340046739116356268755079849978610617810024877048704745337390548892066949644642285101459633465033168904480395924718049649720421011262194723182957125592921068260073019118607395350549601827350411436520867206952365000951816305177797317606161046588375520940488891066150362892329848012977498667490076415394697850001572505868078528914788610294859833006051894798753372069080530866562572564736092787070405440399762385422206876014406249156657056869915635758679266604346544194265304880623975520978486486348616037279056554827122558544617166517917283474170137651513579004569277949160421572897782333856282943388525029283840218307260382288380798199227826123972397711420159186673735469267224276883656085548569496866848095653158058634223917938687792495902204573465770032816345720202699270217402610419461624268222346415590903640620371487657140154311278769976578130334704688863938593683678587085721243538182118038847325804644384432016708136441833233663778633069970363649950813129912804824570066205529827949176010832956715506733525266392656091769438637361872848050828378202880805523660656491213229191487910892971543556569580183976308190361078325581710298950935071516404529868583055699464726365854350838260199835390920348073613043583417032768101266221843987507824477170616565243223917774997294803697707661540067457427102757781668123723281726417118711902399380325431409023438210171313884824142338096549883196726761993504492698447011299982838517947471356203370168603421378723866487250721091915631086884126286595053918197248601289014055301824359225829951007775343908034979621423443145695686501146914369276539978974046794573682562247976465360429388088726432402969032309327418043837278972416121910197539238056111896985880177770227493922785931862370799796537620690713056432952763244996300196194321880433794818772692254972957478230337103260938874211201568105376592023160367235909393862975881290694289052618086823257008771307021803010751864312391147170933600987517551752909643167436608815486304674246783470960697609947250308659127001401908591635643734069519436026310284383320044290113098507078837932246181841881199985772180140900636155507528688341055658965649689584668000496534874742918235613208872318641725076704212959760697679377837494184452651496377476673686530444001750520631736513116498749072472287410994888520769716780780698844755895858894173358960510044103787867200262291863270269440684043962569493304124563123250174531888241638210090418915437892322876163278868204117911684649317098616092203651688472745853480177941124689134697663040194510161947060259255522912691039128870038397502257471256796459333900650201555153496219729551530896853009536604811646154319804205655204388739193631863579772552554062044636635824061160376517277720095533717568982158939804910300932769113918315688994993556083362557955606797518258075989204732107601499499190309453061251649089998868891026078566411003136829411963662593352826857889649463294811437018423412415718320091027349986858221983440725122890346633812827610783648206686885490365805770963001548425914866527058449761852430551970166570931114313124320244829629742662886213989614669367094788735170580659658791361277880676768063482011817142234108158400124087130733412059136576509273465249305104284467196370586165388751388970524792304849890264307023649327997215730432383728089697634392697949182323147843353074947763827852367652159321914162465684217876833998443933612955556211610911150779519230748490445802562237349750323557038704592715987523341409082317341079990512413200127581623396659872590484824844245629605477190697350625568152019340385140937473341708376745600563725445058873389529722981377806941537361856671230849211202328741252872151309331090149322855630177160306058043084690458315016294043077176042398342001482629349845898029692557919884896301507307356307045244124229716726796301470015658850672152733324733658198183691488027639553699813926552872517059821202161049601068050151101663341257612456854377168149351429281885882138945375059646848714254527861251540936876999552698808861094390536345253927157179552949939139014069720452015951030930482802921767274752301687232298065584245556956754654180988454102511400982302531539451419152072635417681089825830125298035781736632166967342090508319042287328753380979963164427760873367386360596397975210036289810414843950312474027388240628426283845680405947557913001099546035858836746272464071467276203821681121679023653622230286240766502189667621102393148862054052459960396507100894938268773184057512760639362953651778293227983629258788841997162975777385148060223029665738629340794097510526042738544512593126660611647489590892059746864822284160698981715677757301053596002602838696623907723378393669915988400502491580897780149948046326635977925664455870220264432137835074876693875965310661093249816906202992936650633895344618896656556029658602394761700466664091783583563731641645668627885782536945590660486581772981250975643324704019689785239240912033101051890551916363816824421419441583594278815779713449073266816535916461125607381611871966812098490343532178393142199441562771030476129235072301703859858630915911558786369770600597301524320096200802683815260347542960437148536816277091366382350516787921455799163649438391213694485380184551572592130507716972367616957085646866255372268048380460027383873343284070027151347526885024350855068855866203928281505810785352097191462671977195321354347797529563838684015120644848902127057595892445004148968178090618219385032330829770684951858392201864393706227537627826794054755179162345837347307097236110730474652033269533476673105852947919796716730284476210037138070210261762801359908074937236180367700025176757683398725141096214267557203521769198045414324936731612503020253555629171808949058561056387172995831501459748529944854089711944258630951320643288487308950421892233560050584736058514758279645297558184551297343419743884480610771332560960968253011264453538415385329291869656949144496018593329390573765493493465544103443336346028410777727460472199636917051309571980478652768435636667425852979079522958776073258633328013266108820652709592196466341983212387549489103379878786644353136207134510483574986858334141652147631079231673004440117937111466055026797272278160884916732439395172937834225279590742494978720851067048273875559998558170663890866997486545135901484195417093132181127910236692674489994972414626933831427309515076955732382809724726798232299853697032144837825697096709245620465153006049354852688705174822053879370866979690540448650643560795594065565560566581423316441058549384941906748563357246449291791408476482063121452816139578881367638318421150905046036484417188206613818180929471775292350537442988153271167592105615301086770139019195560281216890731953201411924857423999705678767219910259693572555065576728421337302866603007025463105688890053947438255923319253582708727325165789698116421264000126991825541825861973324818415023779794725997201093382875975837415214708475279240568569704350481075418470634114538717255013861637027116122091370236858406198626927545941672355964628076901736783628794678922544304737223572337625691163382480686773619573809739333945640235422251647764269064992901273475575785258690407196722136258561800771056763762846091996759049779926180782153534127611117660162302112103358722377488741771487807249258800621507358599824130021132038324449186164798073784074316691475577007023230649934317129290533291332615617665037047874877759428932721644472125338411224830373163172231043367062065750021311046322000382018015075731698344376831790284160358960336487574003119979555370656694596737571699450444455237943607619839365501371496117174098248770271947745329240636808054259311048870429664057082912105948928648330040187950201015710957553364270653262365715984118335414443950481316892256836729196341461410511418685369258070647515322906768996796438284369772999471270436081639723171751238687605311922041593604184815299207601042324734934646566462699029039295683903684179795308788534412556435278011983735103795989512941478145586992259756512807836536859473346061966645034512740655438917856901796667323482737766640371478407769409768355745595478632331397241017944541802775780577782623129742001063927448092704873892737921393082369921512086901076342710743899500310162320495528706151942758410019141804764410358019519586542943893239401094451686916127750282738645018222552548608210228119880705945796353628786491977643357897191013536873615854213534916564053588940835993101810833436938921443404684862391511753885614387840009859609285623375090324000136999008320373539323197534173683406535620349729546464473779810074266568686301583006619120596174247809525620272776760696956124584236081692587132999919577301774549603797409608446275378298235285495118814681341779921217189478210299110231556198855726947483712985315713463930363724801076611462207207929381253316402030030730718514821080483265078670319574426173421066246741565672474145626839878436373763253760248512247845164816230962809532920187905523158456356178390779638559345420908317561077431850225690582571909089413105890245503477124715367244294618023445326462785056815684559364656656172032565401755207980880777055446563651274815182706394733302138290044222261547640197516041482112575520510876412097377293184356182951266543646909952495319923257804056555239948474302557362169995810187628977059838787821548782281180698495689834911894996464380036713019052813329103927487529641592361491074790208474884604225242504176946834459382450492249046259297526719630900302075059686102544780402775613763032990169737967878238904771482289378267680293420342861088985816416947119599475596184649044242892512720839744078884583395613432044009262282822898985398211294131969306444363361259567503431058856213124882579638863005003450606055899734379318583227102322618033222347596953694489044760050949438495770177189616471293443382707600910502311286179687087513813334736069923390470620391900545099344907620213685478666927031109952468319060739095106743401691759092647897226102280456570730654341713660205122182213445158536540112116745102302825004451192469919271976059269857514891883418366881974625986634685310070289696099026251022943179259742478479829529811205839784465453767285364683443582112750755133869829542007608951248437541292488731612797238635913344259472133554490498576864056805731470144982419134710360604887679790891946936852227617525581511943885438449010654885064658598913564789593655637704817818119832477426587755036085061927468910728805084786519052010742235157833475990948325688996021729890034170390154044447415028188162643494847111049174384331194340521775317212623365663078625538297132677689555527586094431574105346614801216706811675015464460645052772840849630949099883543068597812587169753086399806866250700485457098364307284450942649994998547112639331282880114824771045542524172013118948102497200530505446117907772299330396737334547602304749036610587684070235374188347890796295543485323561924444466531009494862411753099767772870985157349194881398795761637465751607668996823338877030025424531189437738635343091820207141376213922854841796950816499607144311501544084038342586245633349176294169906847665324841204847922822576843792944724350785586901547984132536911200684501535481441248653904464138258275123211820138983645235850885534892419169599749189870735027697184009759684035840556327288249656343475951965160490293628711337979179037380327691819489622052626245527376063775040190447224514004908566430123311655377760690117631113522817626136867693910729073125981101964488750189538562866639772936746184575945382958409482495306078965932648010780692452806007277324867687449035070474747092468344953663786339171842554942076061354837040706418312812350314147672910615849057983543193489967004465508847264837546292743861076102733708046186284158720457251350726771272075501830436743161766385244794431458733009262303102583761694193338103090435716572594740988354482447667905765976985919193997596751002515478812310662239941385506278766272303740419315027191291064369961362818993484497805460866491591817528177405351347766451016351060421944190329874163723286720879357260889740770160317883993613562161032049224879332466846480975732866609426169528312710323348467042475713336129313435462732880371907665584388310821320247819925338796981462672206547555825407297023205119270975706596159326411316250998637881214661094087808059799048732032227100350742543601755942310235908280363514754390005513739272712605098113890530107602344198031392572916871784520966760317864270843882680804582834425101580816094521618110717009999791320368130499735313889657511362064265531486504035284020468347982954897591216921173434561970636753206988930689142702896108388314452402144118249276153098613878507897368040798094061356857275870346066382656827382807131219628172318441266865396909118971734488530292568751852102904557438183405579739377249256637770391980880691854809798160517250977601970721405854950041246506521832019217865063695516504245442331251858901147026016013269039994561998103111503143146884764381455226432731838991618774861255140508529300637731854204084013973395481845554151656641765694716748262872219081892356392846816627442720342954976597940412056626321441484346916252163743026705436050268542406042574601616056917890198603939709902684355238868337618375032929362997312419314141673903114461422321299273122631871406940846624514754719250880904892250492920765814697649462823318581781219880692279204467898338420042705700330177037457171778942999051241394314086845994219810589564302085440363563086279628807965648716460967791751175113002515424819831541466603851514236731288817444299225250288459511878142243804293071662525931428488279681525317785960154518624132206539059955285883987866437044926831877551057984694651604882371544774608652477413169437349621990928357709223842822785088786961339292854629886398549923872290734584342673788647204503679741108884431019387391993465607519444407010691377109363214393896147809467344287470102682665241514505470782342014400606945394394696879805734244690613379891869320802075911300599606526736596096356498731563885774961954626999581803876158597268687714402098274281730841905140057127820934871062866686794701057829438895259358847980328240526967393049134198163717138645511173328355576774427719065745931783653226297666300208999079275958724290971720728200923959489212761260495831211650834831727091139286177887082841227491126084955274609155901577501944342286998280821019551128771349970916768896913366901052462280238915006295506196122074427527846031174309651480749428655730280148343266088215489718518190104894688153885912564785590590226855619427550366191838780436191346490378336226620711824317631041658701390238114520850534534593246713370625334686686452113661858683128831238090774730226957880235088976389028887773155740574493652310815959350985853338713973975860986669619885728167585553976581338773542080586511365700678866707071908668482989703226861795286448359519244843813502192361357956393757385462637133388827676101197238525539425715827219012954619864843388912655255499934767358355344571241418201057244127119601052308986640962554192219215260811895314047822672057887671889431806832295608484055642602515554578646445803660262577972148761300148079069602159610948411484908220857192415968193049181824986796076638497929831794615467350202944751859496438428009983061318216008860065264675851820529418328617232404346687439987189018571724310213640958899416222756200608510454523287784304049414689805940396085270227188438081906159931665107582750030790411641671076054355997580782819788910340007259349917925637882014605867884414302720152183585330644474433909878193649400810629466999476799873624907598007877094616044649617931056884138043080050219819553114615981012343814421095770079331304447268707090234206559843887701928420339106087740983731057728301251666084327866674481227510461067235577713031090264847911076284511131137961622776188936744636212772125550029702808794433602634858746143951707763043611053758845713971719703832468294718850295959513875482010662868711458852701669554260626889021471186029734169553423311982767016986778278080684635698588800493363675351643242604579635848347917482486223232952095266275313894134861394199789953390584625093708477577281256754077488338605361330853309239721329867315798073528808828079078659662272827892602157039667808439056576504303846493746163352071507119656003071962752782594966807180916573608151983023920623392645648129205286015592711903066220857858762814993760178192446698804529665199995467295224092092663234322518769425784165923631648536313783449412337566002711476793117559161523203416729191366004478979082296185404871909529864394195916192469264958573539053087879063436713330152469608558106927015708344969072986257927893530124820721908456840435120024834083990751809474632880019343831616975624991176507116745845950158619523461293492778343108795931423042141550382730425675067810851643157177495268543526430358628385810500830771864461918168135224205717427583825952756778851211882252461459194512127245583744990033015045619348538086608955865558428478221227700930200868516189228004831888359126345554640895370960411024133968974917954590101056784670162197015821808445622021503035198243949185338465537740660561427358753811476174003897622888336849689079729176602905925037055433630993125898494421486737714035424828011468896009792013114770284900347637795308799791545011437854303046399238622240161428767705051968421967369616791968625224438318544420280091595361470896945749560734158578032750287332373248921510560500710740199889155416689308560256278038871266672606320640666347952953477533171762772839881587552852636413631401873115724515763230455911443225139423286211304873738000061098431492277271870073826838128906748229810348185084633973607048545891582630003511239190037907365140536251730893048989127395839561224471929559518332001472294063062404566571398994894149184282200020093274306337987000117304830772430120912440507572982890288672112440680460603326684264953916292341118705021002928216180707094143383392626734014253707773654372048807225627273241745852541392177487092124721005223232671893584767213948737933101539356073912577594648065542390821871477804095139990826989555142937640445291839870637487639376160337113390150248478043601006688323835741796731883168147704598386603352924478088772042947272462777336431926365502681112314608927741148396204308528536990401942983532827760844023362426230843551639498036424039648991363036529860509997497872449523743730354148631030519886616450264147719121786503527155306751990353230601855075621571058508231865148902147546658894578729021788851563370217049034925495882891119883892189885784593008136654231704714460976857564010593817771714854685917122634469987340382855643681747565209556514662311836616431991256093807473477096698941579168317051684386990030930851142282601995685537614319862250545721525556107768900274790011544956877370039971936776894411315421772633672468254998088669066676436373383092800837864983857535634605711196837438428394635259120169729283319196636571654321490954395667788873931138609310038540620643816330407031845260680416908770024244510238371274981101232081752894355695191772287717168655080065344793641514184367298759861600312684145483301034623231636524377656490544691453930237187701416577760168383453786271214429458689432124716053355127678943233937288805266746700034560707118433875748495894648044740807445464709273655870145940745075182430621700209015764041366717661720690678995574530916501442636601762457885155617445359519238108413147112778048419373811614857029383443223967328057626864862855421624067660043783217545524582695525648410398661033175973339469922971557256293238572956173381891273825897837896471259521183951558811651421894264671082906194072483299992297980581614990444290608163335894997301822008012878766109145135915270895397428119587375485834527506994962057981264211032512278082001109437930650284874600679991061746690259626961652518626660884903329135592523462245289902520448271107488566379058594206303135043351372039060209763966117857059203821896537671927739763711323088450479750775682203736927384613312437738575942637846345367650783767104998951713726818461502851021528612404493800547625122098516405325635475194455277475952286902990979369794583011645412963026927228182291102407216453639237459547646758551274260156530360089875596203087369155950971941623035855471475773626150520175347294772271444699005494462207205025328225458733849353513091551842194079465367193611233356704363103137840324429154700751844334923534690495129227038843233888587629599271917616935147247429826752594997541006515865599679934388191090039148447570774579364209267409625749674788264616599691863484201784974086336118092344731923556412618406586838645974907529921073959797362256557903643777165733538991024312276807476789276484641552577812866134746317093423946770352050428843030497142683278836063946545597114781145981995713376141090260118308215452522840475899629463011617875651206101077985398890409513524908905235556219652083260786226139537097117635590253761804234780128630273861176637731223449050712627898113392758412540370810679536433147901113867219376990051943499384653439420167794685872498591622074163576620030727682869598868505336082414496104603802850683947378568903154326667182458206353375396618416964666651514281496484510899072338342101598160108763843869223306250443390556616607342474562014475759006610193845579766295450707703683392245442480530297646930968497338674033255492088182334848506937494020024638614662196453245042727001053444552495151432164128638247171564058236986271233516346894369369138580671909675610894072641505811421790863188081705781551457109695672555647839291035614590848586235161673682129922540959094102009756255299716749682770242355761042716933185211989772972455408001649018907757934931873143202724983994497528001250939622574120128953102172148012322809053398356267042444801180713992655997788782777935788508347084623686484031650740905202563299025685305831441930268794211103621694307711287370005738982327704108820905707015732166507144879404583578694752722742268207815723818146010967710850093300340988003352256988444203139759081839451820051827584915771944696261121133783735541086093087040899541902842925026038090899628979816210989670186075035529694756771841748990166612066044392218915964399555559032381799168813698059442169050760338933064011754204723101756002942933567654393690541021711200257152401114149757141831668587139251406668495567246396167142840494969897876994192520971366534879745545274713893800738801427409308333933069353550646537882123486235388208637844763257369577593294107496333713884780691177553448684009672641140072995225386444443877553507457069154692455188293385858571909609933994184471953975466500561306795980073129690475917478492617387487721835950922404269476769738620263622711269929809323730240224087346588338137616430351546008983453266556241853810803061757883623135159974529320387403318721512324884564586968048181455014262202057293013490784791461787910466868035032273820824840461063979624556399377966113860968239946113659723618143642795273298174704641478318123875920656338399327324695234793948531649572239384488002979481206205438439432275178669169363501660657787322175806925766835233916933830303327902857416046659719934783046054600495464500567922521540808217765981247261084824219281633998273445825136631106414185384984646880657760961264289058717094527275035998413377082628098221932173460557401651591981748486940990246184553184788369313745830351350463555109108849012569799674116245676384635430363469434385477933859523488354350668520201047797445171751607420565276872723215359877653038195456294763627804496123755396930687200345894411874062159465771459998030541931606133000343040469638576820728622019406892678115076248338532875936293876332404551942856891804295878642762274227900849968001081854183101729110816483830843542623707639778109656328342854271250566831804726294288771386709697360224617651728903967383277915716873797578598967082326084483822523022417233820445691493864456690573513410007677264647253261778492499859517819056717755419749824571261347162375927612090358250115294344100366743846732387825223892972377661566483605823671309325644989669797784112532591874218808495746779636441802758906513609468059070067730253420026548128594630028983868521125116202762685698341764126523868342027957128147625216731173627230494732499043739046141975468140424761582945633903782805698948930333836207698054676917728511027301548917823002312347669279057999492516272671629529124120624214446543058360150153266256377091912496331916390232539422314772333939980262399950817723497862648133532025710575725843447214252243631836438546336948002973897723077766205255484571772479440468586473090094494875615470002827741074177018250777244625270788428475684576515251022167227843339141071669201795329308666394052526344403544798763954074914051881951021689571276423763157120313350332010216077575918632235288677476847574982770791373544118824489567621995195670298131564467136212426936077134287739119819282832444204313567786360566873986833091563643315650329733996054938269839158754234562435245478489001362919511345249070286519467236912960059314392990782004020086464660896624343880421789528648928152032430974557280320453587263482724667037072030247618495558270429731643880147243598051995620123662934779342352765050644367470957433533087324310007550304177477225231887766554434636661017936296064390962982323558707710748026057303045394409187690629619206951891694443682983227159715809009427451261812503268640812831311297494334945786790113299691837039082318286133170548037239810915446024349005261228633783260569559919217770821377316470354857617918544377462163835787526702038977790544199207864453286625337292748978643590535014835040842976229317954807179002899236088364958464232392216434500766213498610294589629816607422306894966949954731398020307838707052825611636099680531821446243927709596246132404808416033640904548927067542926387187941194601041785282577687445322238677519735617005001694967057289007972188336257030256268614338018974057068998777447969403859936995240136654506266977068800356416688106907382892740163744068013735590101993814107866608892966480812567373135077588102756742633465929314048698897738237149409578573597439188998331015969306042157655423313630810616209860767721512086623056287619037940255361963275070033548853105245114125879164920579511875956427544750386857484789396495740244993049338601087856788725197748066856508770204936358070885191675877285738369104186795662851698136121268165778868999578864743130332691578008718307135621808763998453722233338431363615682386088414189816138683053261021664747381361414472773214610536802799561850100123450345203163205733238137725228343084901721417329633445360611029299306606382903267931330673053984247566492689075295674452902548409508590684004447540231765349449471069859943015081765413525703627539224732950746395715372279876116950323238416765708565420629440308143191588408809674141625755843306995036571807376285452251811157219428599516710503876873856686511190071248213372967278647494868435207700602128885495491138634086724453371689381958073631427300903769096610159281265996840941394059991953843722302387833321432822797309114914287838971010492347696533001892998078486121151269552644572874532909505380853193681661313734132187654998919313609827824453209912177748948233308519379803204711631874363166292995321177451126428243259906857904357104047624511619286561805929420463332141641939674407079069802344206990486070049382382718833445866387968540747289702661173240362576092721039217949082131980493632585836087010095456805101441887830672465532356774482081071539723820490219078111520067590129475865940429920131832566336882827431113992326991175587738132926018787940195767351389345101242734628838937991222701593154535478941017676990191581329897258537096681043619033176939408855575392244875460581916329648410331261993624313834717096595627883745276372251280616580987037231006400135752024344487206910590489949491175879072274086372191460411849580785842586097413488688118147412820293419368392247076665985818115562545215582569112537313115124934504147627838968623197437195638714000676718351255754077448660805715013534639121729634745349059853633729794117451272610841547271691944260278467012796803908847055279250387482451434995708546935707416414887788354084544497486306850137731110745116804430007395036222234736936966363479640636257350743253436516151448513170403176653788821096738373601375271924779907975081456136639764129088997317554492340480179758272423336766803579257226704564508157616686054264238356102510079070628308821696033938260763978902841619078032435299859447374048612676049990856425161750962159918250726446325677611084517849487106847485121722411715066052950605457959725612212164866415039083391089184241936791307812739120316544661709408754373969090207872453055859874628028479240030467320310374378366510463792479474871425226141987577991730714911212673648287094171812756881135095839189714920132094469374338944680016609890976969483186389529677742100072821273757182609268064160270642351932551599666896937643952522715368470836872131957754354707281966298991313155015190163351800206127146224838520976300125123859509198092462118407139444959277848285230489311287652756932633220883041070442761291332245798861718548269113927631908069629816807008914947358508926025144014539956413075380726058794795194325273185868583451800186013874405114985232728165429687385156664886237905587621272393231350351839620810468734468912072000134949574679737762232365154900979459311719109427487516243212346960012400762930759160725828876363108289200340679076651813969756653689335182111480365305044362263691486838374353430429724723787097881203308494914311675929569611763674312018021773695899745951144837736483247644902603718117617479626271112331226644029277943808108226453809566930244960230066864445640180205656725936039765832291650127500707605728100291470569619203476587688742916022927227031120777465005739877835659100913257689129598470885943801003947781357423288853472219452059566635377163489080852839783675307543902558805958027117841133713354228390288509788443876748249630792893733345434398473941777004842663856148980005197080554813260551840204302496232246810770891004130142855854163446063971839999262516888858240583982620623183081411726468930982892529682802126753833437387943237275851559794511912695067082283275606192467982496699342911765548060260810937028739195585728877183143882704542941655882687617843475718851569581860690255116789664796845824745466838104997250071169680309713380129643590172187941016100929369555966435356513340511955815698340278348126017485297640459316319473786625315363889395871047705055596352026116988117475570261981614250432898548961796600980215520024805937724670170168034742244747451929937809335218573635841857337730475541334685053763161934862475867019474795619347786718843789636450736812588424067797171456289768087694478245476367724853008499359642746198719765641942085306166659473765938904456067277182493332912104311838968886563939858923496708899318303351012210780222822338146051239686961029000063044091686126265888869256331580473620142882451844678521180198352155076186895400529551218489151345537011953742735835243827150479090030291927139412927599446571819258710153754793224354434456768647904019786000168178020559013235514372247256071589006502599989307268083668319072773325095545487977607964742533990069942930349440340318730340762283820088883325254466862487468887820644283313034148616366955914198898555701969118715198306194350356399574316772027594346813617225285801258646546909254131767512945390255591820054324894114282650325489556111722777287930615977835041379647892317018293958425267672885814074337991572916958133036112043713936402844742852529988491916628233474151647602504875833827913624716570924234732686301084646689286505032354116127993832141957476152486572936189713121241939400618486468586636885664638887807351579295212703903361441461242635340203329192440929150883600987254323559167774073857583845710761336442437739757183835344065291467875496319649640773492691415809728927604240627862458808808329357333875162019161191545070849825232229223566747925531804016339271630237796010524760316554579553231057475944184918519381858419725640206952748682018324230072640681089559489107456843899675177385543091489738223355487066721815160274596615277841346903083228667118230298403439437272628038370814246028062690282883591128611733806146852248074917520506627998964519820062867829597106414488139125131595499474172384923171659697819541816006146809361915435780076668685702650920805228732393322506531635892334161136662630824153305719022463506796051868348051575333459143058555594083738689639837114741496569445645895853947041627587554844601096700191671659588409074472600303901390640469814186816781300665596247470201463823549233095273933941123711526253975177198225743074511104686532136739702209230981394456714176681993472608629589668732586891931813917287136497290337724877035682415769168924655523819153477203841581046744235703148926920853836959384431498290948340195362381764930725956130249002188634768762507437346823365981433544944525609993956906114676036461410611791814625209236149972096329269342019861367698507581489120564332865464049030476725940996327413491944797333149679982641146343089831464826476880604157700103125178566254654927000423237362823816171461591111133669799728697005974631234358366327804302751477192782394623814880033463914320564208131154734420369955961695280931107639187362106509056346530752061264142965238992305804126199884893327498250338066630802886557530148564705223048493783920207264070544765302497520682581522714653868107436946057241734971113508035850179862386098461888598271152136828522095293548809078729131929874593668305273284748850630351708108777957787966979680758867253614102985184472229401276126324138601076050730677148949125651003024378361339410053635963990877443812388323505687497932074113641908178861036166261372445867681798664738263587079070986159115613238956289696562976921026964879827241975588266885984970655437762053637415194158627037796865562695008781124867979563617659430508890672905533137413876283208818765129466564560472618259247811052980632207550469478459319281254845466332412314845897592345205420740178899249431317283573968460470776350608164503755517089891171539526188542352882565064165488643312923023499347395218951551258855948578069487242680512033020309132645910794406902733843349538457503494783946949678071449332211091872108830652925649960260633928796502485200255834704841098912849612029151469614621254753124241900080796611625831018486998471736039947910124946915455084821405933711677233569182486707984385832316869619329233221787542349299141448558520514381445375160071555335151903578611273376995477965650063694362077265784966739690049957863542791204950938193729041834077452116377119041762264307813833341752918609039624905684340350674869021878630440495731102174531908608269082305011628694901479837025276624672578423417080542450535808158232802011395078135409221959322584195333792837480581088971240591652991158104802056971017157343202528664788142081333000104702073999796861695856725657695453616533466027543887430669484049533978027823358058739772701614998666181831809341845157978849398231902426748883888878028439835015380996423512855521299660610288658964571942275928948520566144135435242388971444446819725445138575555696839619791376354066740692571309257058998060625634798599389950276065476933403953825584395808965271817862723462266332154955955554929572925188796346468962011201591157570323373959313976966432123211343393610506640411039612555193742818283452884315130134932584439733894784877767268133114179630412164679388404984402003435241198064446418813546601563323384723533680806568588050919636256398996343454021671508055188609577292953841022195814799873383389895045105789630992354140862260434619575799565983705069818312269924731175106902323323107297479889743734912040008257334672698758872913925551080161116901226071998036129956526790017658207790663780880810794568946193177758405588033893308839723542398337466441201132228195866839483465771325236004422161813234873949370168846621707204689440047833714092627599014415147181359995683640671252513730548832961733462576575902065045745808678811861622920419866432360592442344806610574033831196115340547952925860282386946587564621073197742046410367184041685617138565106710534342761938505241075066814075449937933625692120325693929128665371523693041711965842002495288596856401491945174106985447918953912964605958123801151598523003800962328313524695738359932738020645557436020327851456986741092106827019998200995051096064636413344890147849830187475502557604958223664905718573573331520088584521460388534689181392046970928423658515494456745574272411818624221467696088440896143211545196957620588224960353398479781825943435990325896545344829665374453919153957125675020661778539452822903222807582839939442933611360813607389870645733918450983407047374986977019173372030576383828686471005195814875551936255238764995944466625745599780390481138853454872777535488869330200619038714030367046984526619071960581590334655287799341069334336674266561060651501838049503681448610099995036166574644273557394357889145421204712524818788130317830542422329386612018771944075027329167531913717054124600030270094825090763031470742734520243395258283352422743908010046614778181917126009746886916380475915303107520925212093375735342614482257253893368663488408152536875586241460659352818030349711728336490829204247637163808726020982095842855518551291483859159327436261602390579034067665718122851407817137993536660374198258846248070713779606428918694357206168752817623287833865665760588514172405538241520549204843892597655621153383373591188483375045787055792525044786736558238200682921184171930658572944408211212229209999546686409889558693523407123826781464485708937706023818804590952964430213181527752730015633492495015486455696232507732634225827736979776288373190346544596416036579597318926476027895592239564195354345076582981047939159740653568620355550869323088774719728633128008152081092265799276171846868665707496997433805275350145410615955785753121423306320042638831834238301935106901819012076979949912758659349750255125723989326969917148802784738073356165785147686983526394572913647445720969147741637735977415757617470476822980780478688443202660805396022738714884449379980201452799162435711060610694720267234508407286136379799452530116022144239109953930240913216169779233930414605740164103339361087915221579003294666102836970341912460034128954093751433361309944310001014304650487656021428659368010001319683532614460204994428117912362990493055487460918136145035593741105461462506384879188583963921768249676492077043819102297041165727090398340428431499027692205649108743649143025752230087234122729885124314450458013305789206283048869627694560500605430634926324941123856083209163595161680902763348810376428859409303492618564468365463811666923255350458990651188299969182257358085207516473624604358515090699705540462383895095679718125513983262344029452329489888907153259897624530106949612569572653506660242893880215379393456424742485524962523596959952500807622344760647316084367762813923648112288495937376383456969899572471660124785965041964247864933020225112899684066441682047634240625796738129772836417473730023599086935412959066727619388295394965424962573375808004125020021476029493157828719302442050986754587671790111465292651762964320974248282007637005642175688124565772828133715623883415220430635820289913917365627267454300207455405214854316142919004731475293480330394105635002389472605715606145992797752698195927098986313533436321300281488647604101765318250718511415202102889311847893535825105270872844005865544745245592722170666040950228651033313842576354597216503036026889876220312679317735172326238952836486135197556761102173999113080523505716157776616644134164173149278182085597308163459013448694210787500805523785254540608149003375278598197075961952348563976181728085034542856964182458296016124448660254317922675851952310231976879672840818040034291089833624517520049233534299080882859459277579663567386396300157577957873013860016265216031072843734218333281777844974569454794786874044320076655650845319465767886513590609296295165979686273858097089266417052401176838995000968836922917094745811193735231998932660694803867577154240904975393829887073531079866511073199839937606302226310995495280863064532494347798614983952840830497574812463031419231419769249055318232587214560564025425117923381003080849847055528647404687624169744032182658364999117187672731616514997076180724754696205220146423502022267895582958323584854865804096984445473044199077610686786102130116911470404976886998932764803005768568372883349979410031570938508899886635823496663353414514207242016281532009771201693039607742124736468526535636186354015874396448592630660903022645204181817221199116616274898340938576468438071195398300277211980217765100055691070543958936201699669377728551298297023564701807455835205574206704638592773471465528338707892841377409405451406221820457828482866838120449918121170263602237965288658815166941270830464397853636679958954262209646323282510487744344650223331534439485085465329689160199532476314709168878274508951929162011430353863008392490374960725489131010807236475171408759359767347197761823384783254320866695953898712060685593580455414570553134715030537398432780444368989641787091178749446634686706764736118264100038416916666384034407782664398094384264731413171262996906932361461147165943605987205170574115711388153934015117668861650370264609131376772176653769097976350781500370427639021804319561998362731843528988114920675622296207024842147754018067309709433883695298389217848284155680089432994942414081822258089113060632462126161491175742965683741777183971923066940925894887798748336292383766270807480222624939552048838658759866068534887137591808905989938514657908891511781289800713568290623111722249502603727343716870620690195978135312368926362653131061130017377541268576329469487864869760243514764418239111019708470314480223158548096243752818892255551410136245877502872013363593687442340577237253040224264928110205778728025076474150312210778873590263604844244592998428370916967186989901643184827374254942534614574890940199971886894267286570436978581206488489071175608781412165138738251492994991666467696251954981624177978083895508744887281861590066848696064800410533348068853702086590233352061891870206020666173609812543930827734545216568237658347501257880579547978012166254022343733485184417001850058678014477989680390519210529296029656014225054261927546870006917770464853360049434466060103023609483310402467209926472064268966703905157125974818497544665157847813521297134039645719407365260888163516180964965518804227186334060265260405983797851915721145116299514600980165928715994983388062131348105889404364514522632813972030143703245376969998029862921282808636900868138810508217556344557234300977342219469613447838936008244351722199280392139811105294554178280893393825186004754340468117901569259391951027699892760753652729888815866433118138979604409245412043604809627253930872540735912436624786217590161054028560446419268956355939296143723953799102010572577904719650918281440570436996863174647420609630632528114671583104437951947085280125401924357270563682885996966386511977544272929910911987043806162970704494785085948935878354741988789592048588370226754548269091742276652314896346514900214097810653096675479038214725453912846155263196515993762427508300281642513766254090827646174787235575353333074515494256094522425592638228224735989579460077748627526628723945963694543293974850679679751296624864538530881986052264027262368720170444798023285698598127752660258240929036078506722777415184006574103761318703158290290159655209264156658174822278022091680337877665622229251263797569780144047884467589982133757584846984460394654413480879282795937490199877833917165523824131224628400955253091534784109793865461043651393615486879590155292166067263708118216370023750968222956391070646903770048386120528598056234193848126453950814314876015200426656803715380330884471680098723190501341563419117097072565275063207171683596996258029083904809437806158696845221269209001522890534632921329342741144721918796975753934524100919803941525750515035878890672246554713681933551450645746923226252568222176718996190046193630717293142117847036858593499564351655595816190051427629136867720993420026012431571950359967513326179432729033707647943316687166847261160602762170023709300159484580229385878995369107018194148303077463989858443358872764268932601119754992499137548067441754516967057314446806576574252505556768370343754109845152499572490192576798551429690061327594221221250379142791322878423010034617747011886870435791143451278498704475001889359535906512558249187655552234401134467120080206443018691362460896172090432645103428134668394738788028871575520489516690992567799905392682656355739967977462521265140461783240214364869080749825251574600829548119185312093853897132763451404484842174451004650947108199289016712891695786227934445764478240865500101851386610783439229186743972250186266028907283398848915940278488659910143668199397161979248482050372465151502044869127327134651497840971321164176272375827719631133056824783079176893571808156857735816605513552355113398453609294783992562344219618459500809039977071329924892921238914460729384814908053077427314389491250643659664693173189371062919852814936395270389500083148922408391903628756227793158291174349805348379409917095582943596103453049962299808569298351930549714051557521453140646462384459967460939424073421234483926706114525053077448234931732840948417305145355405613709501579232703873135534489336965546332541407207972749276861622979998445133633751149446124209898257059562408325613320603075110982321257876393889594418769670996271951087995380760447164541076830960404062368749477313947436268887212409314251570220995297115835880318407599428482661070041758494366943880554306925226763225818827830572774926201032301516020311141927376394700171198895323406093012797920875717243633416065350182418869181148414090912654476594658566266266599857373057981426878148930117092706343459548103360554019467801728245043744336841152110423935117973116511053188213320615985425877248830721844665757415789354106045619072876787371498980053421227565272032138499148139245993414772064988465986483030003691716548487062096728433046699758527601808099109491110855939566195355611489734531545685750733250548138325721117340179455898610529545705318506916675963307997903222927637878821935000599880705846346272248632203925456025415160562494694301022575566904145588543209382998016359070689633705013286556133015288237322559392916081006154398161732084414045101669953196066642171844323448065919414168897189495379127809810508034318336384866144465029617807588037467589678704072521824169687432606441624000458970373514705666736633709414296303663434743844519140917210687603311946061576977115888219261043244092981129343815242985337751896015220876393955472576089662497429722496228897378480950422080269998288806100087013625624628947578752809731271239297835706920604464781865548095315357751913643301401242114186286959960353799634286997751776127591221355081752100847545687482030365845784029662701269133622067273590923416291732844732521110535966308707597452750819696081484594754596027804755200197563216906297420234432589404279270476005182760152929373585232380504196368805242941630218869926281384436323280979856358736622850292873893753203555826080985101991601919754652275290036353383862727908193895291727822380393136130951403185520820139131166836534256515532611578926607566763034209149202802585963989489424455284427258236081193571769911545705384331292739926122379907916284800129195868173439721567965819403961371986866377044479281696319655534803944814693878624793715365194453720702921582454530650825100280165130077195049601780560040818575383531531655933571883465865220232442450045849618596856830918851976453977823871704734335264898311837339990140859532449333742179835835214390464983987682548632665159283745714284030730711262770392451143048297289478911407231382887078413790534832863695715809105553226174141816951494286339264801903740494944934601423334463491811676009357862243913419069532185351137120542587616929808890473833252889001254701659778030748477635256496572274053836105488819656496480378294839890903262367328647683273789100460490502005868204034406707481554648227065682533782800599383663580418259344279792639492832372620766665338344955869078690520834929855539195743095703021780241610374799668569506749393512332773448329355285778569026249117834352544809215106071218419360117945340742492574795521767592563433045155899006834331239730149712654674096734063678548149038878590803373744694078706785166601434172891775881971278158774640351040088291472861388812520795443039118617114088979150508484052151677834354416676503786465912333461758964543543348330773698805494435882474617907427458563672214177253293023480147702951428281965742060249880349386703379876548527929573049243623986362409521274943977963583783567746424042864295774970510972700729480400193275972158757695072146681614866622319610832384381625548464175932466488876315479740892727879314980842907057685287878757220308775492739033556899843179247862747505299324706429327695113128871343460279501490214151033116507801073644354132451225562874535716583854899831787399230667791990649050522170873363879903737695018952578067409365498932626318321982339109462790731079385423086122329755270577309173884152508165220826475311687942875865176771291290148474210459137222512481019828965719833956276117205419862232436795868534347695158545365385695860222220262927746626164616120016135018975456430223819798327609388614975030317679404645083430525605800515067589639553433024832623197671198450279776837507362144994373295959879388870090789274833275192334878840562063153924711319184993266508254833877157613812205401646091853083946918603257240372964199195105736467085041077430988251639444083785382460058985287702957777790785937958102649233045720604220663891010669641675321982301350481641214844168709297478138707756287338842816357608260312003150063286477215818940663574604810155739347033217409226857714417044606897590523350671247111772950409365322982474980076808649622173390324011245487708438127672787727414704552047341118087970332421167001722088227643538708541181208556409971584978654178826517766450902233267293290026443512143140198468945558263826104077820384568068232906579346212142114092592074563883470474827124419331787959687400275185896767413589682471014679324024347840443039915246501505103336956759988170588055164998055884732664678901671784737882373172521666480482815187934194035446824567642643228540618331957557772368836525297373114711063992900480787082193334307555370038757065694145162785516526607841407078972061984036424715319729223868833377224917784362647610497598801268593028564765659838276766111730124168073127722711369849099248215849768810097337671906574657140628089979198700213048289764358468961669190985565463919966446811970100606380891565481720190093124968221419385563020636326900209683021173019813590175071674599282494797529985691553265879266872039809799000293813217261735951424146114782233872050685185941690368159419113711271995800485501005911043326248191168418829658337183228057760656287511792308800113507031463786914551003544621058494834817881464597919955813974023696325688495557421281119785941297287857111097031667509416064400319923139869240599956101197254497268870278275736341940548526093908082784447200697397347698918785034238514624584395897102020400126578705564748013083127292391963652272673385840964350823934695293086547309907459550648753140385194042633543353225774872976190270837821762776167202799476765442264742136028617618572801813662232199114485643703107650084505072672372959950844807823697236481937586394211594603743545540179819406877207019166279174436755559754922286098575918061178938946571792899475529954470603779360433797568318802120799683233637676794404723320224450433451514103317097078296741108307878749814790836967298442935966864634342058425943587551982957901161913649262590999853438885637126483858583942045473230911294427972398515482718612533851853231298245534564632687487757181678045245850529423208985902242767040427215662640542427109092132671446135619319315862775786572549992066438247368575184648451839750890279166018346436819857470635623511002281489017892641768099756077381936843616497731786516333051129416227658602872910126675224545802520293622561647990986998382200338996782978856906247335953066891295576513301159855040749802774489770067103382071018275056735637316676368516721673512680077500346976337796187941242648392122544936028629967597097544472001573302191960005404423678907731078633895476498385366592599953990390117847561243541203537392297642091759540564810011276548770980198004914616463674281987137082632893013167565781151121324612381739776509140471301248028593579121974817682847337570439054248559757407211399911583790929053636883393935285325712368048171794730937318010324642036022625446234920824561227215254032482985846278354503892301949754687604581992672747116880795696533425152451217496821055413944593813839548918349598263364986586292048082005287934743397096576608515492076296100446813096168546806393186592279911780550348638995358956318530986382296884253041023236333548067312347706797317144857864567346783552241428083109423430618914564061120493125296801184154746998409962411074503127525487268918071391147182838625625015658730344686290911007165044859132183582712202935591427519510678156242224913969338883612893540770986128268593277450890730364112976344869678990717729840582762420721813841307842829265429894986999243002862264112746340106211278594071798610487349020517452710602954003223817053473985582638446484003527131076121508810761602202109253745679930891489290823073168666215857985232070637896947131168754638403325126270162962331142009240125863959350823487250023068576265947844824343895733828070487769917344614897229337477146060665225492731528460988399756783394093156294032544314940893415688333386087447039777636254406003835943574425300096997610025070420420033602161062862191825010041157375992646987139704883245103992208147743916664143375666649359246241087748437533824486686880984245862704218962541792542956826643256021944478660692963714332033239970123407326347427025802449803235673744620082401981949579031309647681256443609398396525980674584964196885812054613540451288076707906410719307772714434533535535409183037068767657952716767226844166054133517754374304362063430058983061649563531449946624390873470096976976700305430436733884631045679721951435530516931066978615755471746693096834030171045165658125809366157605091071826865689023253770911430912986958550691815522611786903344828871538344491473629119225445416791455810358721968772538233507952451905282507950159885581874145280047308298668273485902804550603994887550725242961730211685335799456983560162185388462659125218338396033373266917122034349759298302217529176630994074888463736824605091345204027734786474194087318136857410171009904422506184113579526817491213760513923533447801794394711331360084443586300773059097230937044385226168646691682566449742083505752539662456238311853439426682465420670779152581274937794519715726953013787169371633543207185115758690715820661520977829240121071589186699499894422251058998327540295228072937682863800037079820243601811920598106746386677226218736548348085552908793047991858387035595696142147250159844442129134878306509308605296836976541303949341578371294533338142453567439654636034990617463626967016352746141629480319004354831214195028081939985365899234855009124856843755113049626639771602098250547371943953352214384820306167113087615577802677159684259033137707902122410148748816491464955546404289436039849709766956563631625907447017355887571923462324061953857640718931035059295150563922144615206256610068563979848506218324027262007467822746628421995177143132437965996773969582269478605000073982946064982382070045492155296938802067098343428338068695525998014075566749933108739687057534297798264336507853253515271489555694139759583241511542889798927999722244946543644751994772422655096970401822138456110029177218924707097223610757081961471112970750561103995639044220511371477204069081291786618661656594497177259064066397989939822062362855109199692843551341931075750792882138078953817464860252456655308655962612608135715269265411198363355352476103245221240955477038555861202854465725241187526724532985039793133706876471648164008467473488885304487261221248209195803993340117647675558135496642591533050691869831166653089144664392488757832381008518132575836638224730873746475010741488998128654412800899140271417505554487900501577735065115353382801244894521650865917295097108963900525216910979879956291927609107263032299049449950899379664875758978957140979196308561891104415732701959712563518322826319729382370599034955845806281542098987099924931300670962010924574226035846237489921881472341304764885668653088710675749879143003354846468856412689699032949997599423807935155903598558604647605542123033207399954278020843296955368754513548156504542587968143232904433929064711391051450066153743644877591922313982058969196850878091001044254524040981452036157067112187810973439133800162230804028378827931086853535825631576953443898252862371304437351241199391342132257732998161839117272017119063190981409203352004416622081941184337640492366058666704645813808938382178628477136826080652187372687280448150289929490734047030320598366024657732517936588664349623148109907483685354062017994636381661973613217703470826241339820322549518680127494639620876299820240752305488929354815490452096616234104042173934084699967000486892532011515085716190866153126857628903328984897944560083646405428067053049094297739544222968400168074033324916391025266746252596215908487004685729978974227115176408245163208609295509863338421955404093836179895262224841536308788435713083210407602085913323551246404520965895703709329041250221226828894269935133812474063888822634031772635678069832689901765998199701732951127828355964314506239542747909719534437469643072391297841561298052179067171915436860990571194266864728228229023981866824798143578542921422534227651220026066305757940310531582715235779470354330264529022100788880211411460656938818059147842107560966907411039059139190116903817414030028235682373906104723304540711533592953684413846313523203771538848652298227422820174260152224965295346087134463385646233201167019219083752451333745264450138499028077604950000587366807838421103412374893364686786354890399559605923031700735083343922302691507897242093498535167553806533566296145271619634042503952912249228953017728793413503737466463565569010774979141059344847800601477224204306968340807624077671812516375746438406338040645352801005477611005481856278290807391518854706735196949086649866541762177127494699971874745737139716282066328240241789384401245582333586896262083278343509471639206467525594265697947982053464030051167700021644908422040889780151890029420279746581285288369306359238553122184718757080776941763382203701346901447389924621683189221165787906720442737729895879161141349148963109984036382867332281293332710842659549887459274198752338212962037765426649475085223545189867101928355289568175651185043369842671508276580190028523032399523202487634438497027430821460273976275562062826876021413404914331241718631402951910963948759195507225295015734085776968502102086043375715228934645610104844639960040267236480166381557147190314191882098486597478768107778946611487002953598601081961492420524289233792437593477419998208252483375778017549179845678686435842858706841914970663067066001579177618768930436581985455488519096610327831390307995109511338981728582323509233740568989874834861371185634732815654668870906381133836073705760455717853426435403632640676708914198980394748257930914955624306222761034617692615340212052766246595855233924309452577473175235959360870465110537855608871164405036280906482303797215486306439831102809871392129002063233409576284025977907328334612458816480204915043001440867324713352631420417820040152873646983731097599060240592759573464674955244681118915242009663246977276587693284051344038632789243065202802288497772682641143023346074080759020394646867909666465318216860974851842966227280179211272795534685450566083595393908171310558794691912983152689660210507848928444419291863837715046358156479245584494535012173198807548571022510738556644413646023023534789050434302126167769406076974360722517347925464846469860925875576685967041423707296069037522544850354724594153208971910476388393544451550462428499668592251221048990204118408480262008064322481990467063575492752972831793144670911855375880688579360640446457815636420163206612664356179272112149847376951987072554067644555494505661676803786188181742268036627483959196750935685181547207882331383860532650873706234211547610839624242875841443223409408026024878672137699767990298305425138565710779189370559293854379347693646096909426982312802277335809855596473563723134814372497945575546862709576404082368686865343755855932838651765044241295859164384998445682215442935468960495005536839372250480921539437167009659912155578917887044330208046108015672691207653048055059998767536989986394096892031492644935793222160293136127694606137074785455137935432081810614318625659705264374255239895960511223883827997029353908144111023733625619962444461499228241545684158839836033020960159754889897800088451843765069989640870339936428628086941798831343509901047489927198361503169885476899055902976257441992859429182234778756037951909485606969797979695725600983377511013469819305277128814921064708802898299134349180322608720489559771284870877069533050986682806868053662432803351237819997503500708109789113415587512035868344212624959919130254367644882033248585067299926790236060280959039987920761836087098000943434051147441427666480742824449609875642216355624748221909849222631543197336595657627564295531975801502155124499443278234474119668755926064220298284766788632950685358269445773895134137879517663312027658635278858877659584741057041904651727386604556459153814059437902065810053309331155896219476445345017164979854525905761604907755462447903190569169931331397098912206257332274350304228366018559567947312241349508379648667943067979396686408614365203625075143367492181429479557776178339038779352365489799707887608378702690580172706512520751609610520653427235185189149138061351961578077491395272406226529184566143246975813575473630604328323251697846693972596707409185812832149933162685325679152804090820568087650023135185297871129412854528661739129286872847956098361606847659014941131740742734310005485326054670523768591009213725672238878784377421614079634313597978480349406037610183229726732540352111679502872970634674319191550322931136342701725671529851613349018819963833076781652889296812353667914386455819312739894118472483978582284520564888337521284159470205824222588424455869299157097778323953174390562428895338240836301305510579465269232068039978738089387443624053535323285885657139211568976076604232356875188814390533955733906245767069772625234011895766241734383871175904782046173894139676698167434102118386915416265394123930938574716865711087213640063005223095805330357892837310869611902262109555984447784588453203093715732940056982124141130543682756207362115167745723046111425876169311462693614442803025059989107463478449625223968303915666711158902287758736150332931902196038757830456276771395444287363384834256387987970280895731034776379445046975911285575112685794315381295992711108132401731163331793423231924615111694035780049492685051221160578487885390953436260477403552999683763485790491962183623794196055024248391232036000691896792394958598366963023652190132933779924766401474139925820593033048736829832801669833813706463307537931438136798591564976518998962746012225911062312551829688579635055053681719333496373075685664199408376245571976807586476470208395376918190463952725755124095492698952225248728341547540103693088635561203994460772737639122171699973804648896752787174671911363605970957302368163524293958850814918675807154428512359484346088020514645326499355239744501020985480366224587280813906020849759360899551518116746226379663330030071094908020883163445499630922119210644645261483818063423799465014764058447782512415458570793034425232643182455223289083181799385531087266817323591335473222877868673647549387630536248487597293297677057890517930663844548719348002885453573314228172554054287058772527855764814880493481047316449303631951994186108567848470245391229500989748365373805133575220732983067639530215377176867519775905274659067012602457788460628333507350518065142105582779731081250787204880185381306327624836833011561876872418079266257825500924247977664239587320141667906592005315413090541791720420279244983325002065351767990496381816457829414456633892927748143178505762391340688471020008426054271505411586026163553106920144471719912752417788287366822302157529838958980573212366476645463197161482417856776596614920818123135970194678776414742083854199021952234497798323552159686444985370974885289749965356612384390488739577236450252916932444861217057928761153363438979624456602974127314921525040705494042841389852235605803984631811095065136302977079858124850731198138824461364077861418617517602450630242954466338736575437435947623827914967142692250553041998531102819046214383487750704315588186761708815507330860253395134237539177766495799369561382393113121836676079503015276836365646849514658622652306850942256539044131531781878915430479435969011734173593907302699153348109763384945986400612106805533061210854543631522895749923907131178653849622532071587810446054957818558939356869128743605537587503855843181205799000339867051289096604636551682234050991127203682275351372355776324493660895922116181215905134015020913372986444546089703434330410889098164507446962013421022798890295241253615604731836399990404442149728268662543355032703669771711865352879215224599465007292992840289987249535268434116953954387600826812653193787623537314986058835137751103113534036265416867717795979337925291142155096794415899209982370645098079217590152682105250390478664250265137256980212770875487709076582019492502147421474549357958646813713566359301570231539526109340827868196829006926004612028165028012721363204982829630797602287521153886413696896676824153723442536305371748220376312192428871467093472468931658773830418572132968822510348455744648333413038201963485865266935376868650507765063138037633423427647316233445935006306409844731210244682626019293623011257968575288908763550569550990979669833912803117491772828486087117142123960774192481986226846429981095448420454159825955237007914578823389328077796343633034667120137019101822629871184984202110651170181498976595608673498165065527157010175500965013024918448690787252974012916429822603826305354179426116065019193071509358768853766081955840540876984925032557987631845238870683661890387544311110300892741057601845966521782687533883402328703235327477466211226624202043690814891648330272328688240065690311295573702456462150235352175941220695634816588238386518354662751217516624143319376535523041466583853068892866374612617801872891388649259779062164443576410635105999348639599847016013698512661780715886391220397356557229047158552200875177210729308585870418691807429456467127097314557708833415223939138613655528586688067791828782354832096528383734042616544043600689858944763675265813267818631624674956996334910828967742457114862587685072432935487800791577660155258479010446187697579273117214782334327834824600283881152318271094961903965213218890132619889651026843481562917473884695665796691352810959255325246491989588483189728452813381795852270882940258960723651867701364765101107865017957589534820364307073464691804325760248848472466703027218349141631188467281711369510350037731477131675203506472968945595937220349624334382723277963585236662245077601902725671267256086899977463028982698886383658311187678149103647802116937500775159834883423676105158453751388724923241858746779045274728764972419646625246154660657964473827889954613425492723369227852113288951287977007712191531921634989896979283711090096083498121075408355000674542572015507342053979557551567188709468668132018455464857344220569024863244470188245806757046435976025803307374843575087130607434842874256782959475360392991681564706581745204122626430063473483389525225423591736619996324100917685830914480134213366492840226199285391142919525336418600035581490147515869465183555907771287726500505763305405968343305266476444643030212249531061745283190780357284357635651787158229627034785881784098878526309219422001955407015936801313669140147328512475205375019752174016611362077712420844183546933187694658264826051166868758994811769889050142945375461738694045255315715930563375295806375564048409748069919731422349617926588188464522332753563656590337523762879538684852918023870339773432863419612801332769215268224417416527879516232225988676706759821955756637872042475307476091956165705699019738441817727745462744551928119640985108485839871507707326319304502688160401949705702491887794588151331261273741719389562646688890633387112611211343281953784043925433613980354835422932221982458105874614079646681540764184827363030318403887157824899732201253837355947669528037228769016148122528920852246233911961197242175896780867457695014493626833410421229651356809849990511397602422297080420541270105514051762432260996120861365454173273631327368521105157298931675520683658663316215214075639206488474995749117811155921815023374943656093257334983798611095768362936667800559643374470078914377445331432893637503709333666664253869586983446178560536632010245490489532826467061869869784357577851163923001696142450125666112487605257222371966631630944586425935032288475153398618539664366363368244675442325068250513704220987447311682446623810158249225846904351657251967577532611907523505474810316702787252091142205717294907339006637465385006683994003112135648647241603104903180439713918736209964067617132993343280927622211092650808907247922480657955179056721989339442444139199753720447551179967358895218726660375746457910376158576677653298299053847662809052629139497548596763049936604421074003212440019346911411249878496310900316742751998184962927196009255858860856984352113719446459436312980644714013041940962864130809084644390661647603176746035775690479532897276505308102243567060168618726358911454053940372256058885244410132874686026429049555061718078735568755435835950480350382038267229100426399249584153523347668831860471463479616439699199044816688305353304726034300521539696905809632339930828890225864562447145632905023589364519927575454418717140567452140825068166556129227716189407684172092618742452687135006446611561775244566069542331991660103034052185463845256940407351949261236821460062994273260455351919739498179000135816616346065302851050477689071401863147251086938798597019049811499988845821111016358751205539772647249046839324163097182919933568547639560041308169901813121356771659065759813559633575800279129011138812883997843156894692889886025289907406644673345082223182142281087818567189348607988732332613500117423484441778778443285922239822741584599361239518777787617378655861538758692602058799734782456780198401955147613270089821005892027231719634264222347390101631803866859317463831201593362079676779854931927732529855408952788558887742244245908194926110374497122634957557689877714907533607182937490149597040217997932847246336546677445785089169319780884746389689301967353330182447317861113938375472829413965614496856174449681060392303254755942953967000185839564554656867490271284751352593908862185884341966044034988301710009688670040277607829888793436878670760515456650539199299909377133676113058766509993156767485306417508971481603075964997834787474842362561307428144652785681648697128018815750480059804437333092414174743853794464521793444742435562939270068344952179823340832787573809206769650885748236335790372911489193100097525690840655189038354042418855443831927342062609460928881070478234712806036918216648212546923758933045318954098830712550708275516675748048710878632942914349147029223729349228022333601121311283248521354174136578021172570997540079163725169409318036011029277354567072274077296447189815583206229068818199412085288355239977375280813908480510567152013769422338257534554245789281970623321764028887839909582497847014888853218145645583226514578449560561154376000079513410530323861322774337415813058799587031751192244628935002558894748653509835551890964911707059861497586349423341167786317323533407530533219421087291495095382714151487406441533393318507482843831196029629791560852036141238760126107621023026096724475857065363275313354379460720722273493227310000454110125533883172083517163599731437638503133780332218509571581825892700405820083148957030289290165948730393202854000441850890015560892533195761919467030569338163092902170954985936674339204317839973739223109583293028027386707840689678181721450932441579019375929931675640751071229997041580341492369786644612941468112893950803795541914265335241429254409740177672531346189938859629061066010504125795958065056102215486724791192152222516811319826543873810769662053081204663628445941804719555939460738706540056749322138383024630740534626551801489872418296822283251585283360410942118689638281448376728811093843293563601285223753371338716999788029228398277771481819734584159742068187644186642300546786982028865633850028911279354013327949332470036764696457667868261463301815969430534912909142458217286557555955144869756809132711246933936316191276186360576545226953679638594153890034643469687731103997550341837663537419777791014156222683415225846427730501240165973586303843092579915120457305983331637390080544845256566797435145163851406272476339727284433353458525369440274250204545180102238429468262201199991215561134046183665308385819244154011708764907463916672759732654491610869848235464461364034610394690434291773631478014564766469132813258898673110685572532674098585165065373554782542200013944803150240009721618083069520761871909446427731620260908058406253952846100228187114574781275714929862710585231295800458730932569392146617150703716687783979564070913703637312521785680707065319094094148540015903863119143864587491689339411167760794726644451344684011705670605311837645966090874778123976431435514296175139175310790611547348775682412625310868569019513416364282654558925531721694869072227849269344365052904299823424924927746088915478831334077681724620103294605554170324107573677626800345790671828073906700765696033733203415264762720762234584412472385931945430712767138781291518052506508150423355959630522434688255725864912059787362264436785913956766838481995241025269713265370636753288328449721821824716851609536842816029554503026761799426881377166864227263985739395795322603045036291924191012237461420078173218201418939745708888141733234841459718514931583144420131807014445833931309534796672182020524970933186092785225594064322353880665912604518258186215129089804447514652394395274607102730490173520238036610768443373330365099572891491262799129954171337094712320780994864476026864787154596762653659134169343891672722327440213757391006993709954656148716351416089140997787270004992453031623450132515994709575289129009595370535501007835592183198858967233704541942775037606461822663616028690697868584634684562281911243204004932650306194045126888287454634104938216547804395924596275473691504499239511404676916920120383510040736580918868111952502448324244008690321816026002554976281650545861463201568341306187678368180785124327359734440598182131175051394492187345506534753468708522927478828912896753108098235664881366161291687613883050525096265801781716612074829986394137165233959597285655283900187128158532688997821066352388481765699274673766420652266992110517519825310918891802350740993157615720557266082915135010580185607305596826240238490648703275448540749990879189895182964512694284032913613662393582256712667017172169620966770693370461128233210512876419642793658179379580011698889059048260078866008705325522411801147282450042560379559759144308512067994493877112363729021780948680104033800439721622473708650688011337306034783747374040497296423681710989110673048165436862307149912628365203808658443100930315992198359284881795728482903181703749753207412697703680800745187828719055682976761285031355266339621253592872007383318828443279258584344024855356631568223756686161909162846116272791427734831776824658013137536640724247684990653932962442534078334173324934900506476585152711917000376733561560949148300202611644086859259823545727350796667035769556552453425687628722372619938575309456320090154764857787499329701446498245136760174867183659656907153720885855115193922663650623490813090853692220711357826741803742766272571077010116428723749711402749763832449633963881759653639346376718715017147390026142800184932441053755733060907446344478279645165242607893819273941915326842210993686892877654223777898206162013359893021655830172255493067578489055149335340687881902773337263910853092240846527266748856032800903536889001795026702894618700773669472556601128812241737565761839687956815603785850926559733307888629848994648126031323856667059629293812570236998253269340940323325708054102919505741616635999237095764977187303604977752702300930291115678637871379785960869071587069676789435563087665872195361610080000523784565110028305316828700280960980095534945577946078300809491001065161186271128363850720153436504199712659357729194880429899423833339675439930761748349386374465256210708045670646519492798733671622103058405102648900694970223140249019441724622058349923357352070028633233179997762794150437765491572423293446019029995775406104351846728931704110796731742736757231818669737838316358872051125406098966338259905988807493358718658880048373895808183586797368359995424569911545095175713978210823572737121075978550771945360878459240391920842472869848873036768073095312120267678734729863912956867800985477190860141649417781966515111631500397515542674030571596012226402051584971317558892270146404728500110347738583297799319839153049390258038440097155443251655477214907908378778010304513709405255850153355930148506710702944438230433883963097614250891618024653049295181214450834373778459685920211074148915055675455026672615037604664943048631065299803009770433015703790685108280941746577573992806049102119718261448474800231053590989790905180787641202979995963557274379976072900815883895191323302469210123619732221880788365266151325267010125915463265182713939430949391040253640839348631881502514905513778567545259938133337929008369381266958193582379011183861512981714884055483002776038380413743933900390650799584309992507346133615417102627772234588348702280855531941578205901859529787633054215560683004860775967115357707171862877822588316879796796888570970479488720687179729054660586232568684024198483280757716015662687068652145042113815855440366837960522546311571191619201360907204812207538565509830508303440927746921156634715430104986346449708156811520980379569458996494669720984123738534673767272806303519517779022534665896371258549043200475706906765473965980655886150153588836053387448854523693966400906959681777280631173625711566640694729798515879244298299942553157738357289422446156900397453588419634076635791668323449998294686802894207318346265235898288217859710535712326368653476326965366698189097961294141484950930090146090196264857229149110630224150131319405415361594924003313491385385280003433332064080919303137760853621921166275349329106802262945097148817505097844543139843701673145147035700298696851843141393572054193699875747096816976005706051279137927922721471422963484435081724779007784047180549215233067995510609900244965852564785834508819417863410565585968554121218053483619574559184893904869196789033480549341717748318437031868820495634179959218779243349479690774648079586672231168951421697970274569312379189757723235225099897932675791098234238043243212481825183207771538254117966593733542943283615922606565274441557146951667822821949205590969984827939345597085751306759282242691324241938108479309266417914769714912609735075541952612182594686914512044972674818698590280851880989377873987455295406570703252024961410424941374319190117402040682942375694381184279668306472892076669405626596780797786357947252024162301147605138945770841680000964387838361023257168152290393176797518951922859278369136969674277077414862263403771268510777433575945067253623109195719315777658216618298771525547075275187853784334678852901902654578001372719954388732263772527353729428164474961476392036967952442065456789562160580971007583830286290115380394946849901131849624249491967483275702278150860551571995740398669384804676128292060631571080205191828736778001591395219546344106500290914759995636671831028393410983814626192178056748876621629500621276869764610400037244513192857720994686407668955136378536329613941160116027862609098035301525625061457805033782137833470998417725985683563823159209381595544493327460028089420486946989444254615155865685615387816457661331001633998194982820289046807142224063439914116964566435064249337453931356584137577883310505604137702790974763974920700514623258837469598383900802379688983905348694695438217864096721382996552240031953196489784051789014990484897063766099782472696473624698247323990367107707828991016505276714558022143793898025047651752904740222454364928859747869606962206015687162886582635051080090010822247306017242371504655807570268401646357906472993099436077662588019586500175043673841910911443046175501735826877529063244194860324829018796502543138396620100715298352292844713329202111093380853197652554074640285204167748354858893915613712715359245179578391487853988559140333061280171998140714662171273882647063401308206874098482250945093567008792072922142733634207904411903598195222651873511380989709325031199307024829199162447882451428169480374094679845343654947416449296147007738771250362543626812456021978741288846738757721719795630349402067193188157018668465399949715870648079217799053192936297648086149476294937960802030660007207964729744559176319088844039978225150982401701940180411516527676161999328899178540152614369726644029921764693932009471011257721506060788691614874372855683895401797397746960421304010897330621474381665073113660193713404261933099070867278129962881517095604266510287974227199582763170276033212398349830962735489508685506296356232504066859075138350247839319507626743339798549684546358863814642432859019638272798410940975856724063800320375181226402753197834840974238411579191353898679431368316114339691023837997184215638969466377119229480816658247922124058430929101657240273466904281411066745546933685668292691449968105360132460705751722205417855704501839673009113663525550575880357281536950286127553261676483396356770150683527364636304774706824694350635795025166013924239669845548771917013111343935038168913853496590905364576226169890822001004117312124472943507261199502574072063070217333122949173152047062543614361074339019534288777705403067539820188629076546518981020090944036461266216626625737215759402249457837177568244846251503939726282276311840149495564773876799509108705856617419545236859347601184761749701122480439114482377179415373532158231348922969425167622492067012577213228416034963226584815040352207021355440713856329696713448982007172274114155417767487734996409994582710954633781158266137380318231865450403087365906384215384497095901897033383957916702714207226215868903925183847767575792292711431182976458090974816781422839802485442719232905753440620765665437478472135024253797510744666134624127939555315405725958437626482553993015640179414320270972825724477408898701424495026579154581004440715566850673344756909045496013568401814772388678439329013305927955263479822309158034281045882299189622688954999477440033732824147037572355080398974250920361888633575649947567611462084576610077740143637697227841402140550328824638151107239373205622379452465142962264157238161599906169472653083421600216413982192003528938200356759707229284318239442318407958396251623004210817463811575630701668493121969800145325408596791321304294774441465496518108424716912434697095716786134875724809185994702271311668735312667379352093759219058436181765211570985681434870111473319164237185597955739663216598551800717873321067598703059651391091662877927992440559795317563710237086050001149900752642263134990647093179300899355369144941485616965876326540923446213154656810208109175618330526556971650737744789346884026383207214665710375112720816537265210974494649955258160921281663867806802963543505479444493046188296855078504089748778416264424501421364207310716542316710155522114265072182899262219080061324592742346942152334720059474356959786489509159928061967210352355184917182931060147990995125421922896348800006293841978141121923331879668508557700774101925028940028947943665137684391806890543358436542537300735169009438023728994543353288819706989884402973174372967098048648763525931530798080880710569705939306908271971321749953711272236825666333497853754215306630243633385843539873052646467206734553380962322076585948178120189247593380827747802601227558321450854141365698457084851127972547100139798577896340510008604890478906041670424053622836203141345408299954853470558615100937181564393477866819206616318566565674347571276247932774295358235432106905976827859219777619727717707784332110122804406342295081912207175538556444032544938473126802394046102208218515116404149261602999649624719032657336977176506427189725178402361112532091236074911241757839632847001872742503579595188077873424477472522525892116818649157577227807594237616894886583659942393828756511656285806009321729017415937745915708971024631202621772189755122255680645851489419754447695830707412503660467003243064621064961053208249516915381772695340135180552183666604059498403861313348912757888575296582649853112577103807350843277822486661097965737599302077557375871989701938233033576684401739002153467642297746377197390306263261645729342023614068615079409495042050585313262063746762486739783437103038241364656810550668281149376334943192251060709698284225408258491422868798882895809915346412033947900528554687245514598730260413072005927911508847651177662426819766440527016671627255912522605306324444094803744013808565086218895592370615011148693885091579276377346879121797961722973298098515741239778609356441417489892776161288871938696340762359175747249048816630787597545089932387963747563535600462897217670694478646899081412041284931139363796367615049966390356285385120772700166598623557091217515074250496491092764929693662134707932564867810720312213475801098275147166846682660879860243765587315597356379501062867143987544217624919069023403312826451896487451281687146685359392126013535505420233853997189142024973572852700901625684918058572604649180277253666359714713489021354123543302826975491638393703198723676765849232699792628619092653555546118156431034164840666864829105257113308729568599207870773609150986469823853987775624681670065985796413761690804725514685584619114857995075495018957939273716437841841532925904852584720054096921941545393495532459619472871354883819053378838455201640573859449156606473712220686588659230119706554782699274134825501366610515995213251204535974583568477499500238620942802965306232232614146942764706203637429346060156706124638020138223076202106595371724298422140988167111399841920517339831340684044721327684741254896041477959931813519913355223845160319136039420923003773935669337666957843528911138711328999285778290121979253313957427592116240516693114705086798440508814733351495518874974548348604884011536922129971808329955174001261693724015423849467245837545936114787423877566197109840774640487887011940898385136271815362312012776948474091458241424217562401550453576378482581664313879358376203005732454719493002261515508175014563892044992888726097716903618237355573203047467214520214991712818820222059771459673624264620509027789366050720151929598455774526033755502689720803442701623752049360854064391727985422342673050194200981205363947469657449586582092177569717900460346171581279162051773732903539838048340343315448977463081802373187088887654208840247321671538119644842881936392386766032926659598496630732936165953943436481307232329299254601938495897921728377585581041221858574961094035744988516103222908402761856220762797304508162708494741093355169177450851540414175176604495072502186725938086032475420176914611923958465775882415204429617300360667773351761153744607954129658217762179362718294467592198516782353442531980731002535200838335660872512703352048764398212246653456500994812629154451179288074607595667761439145572551628163117974573787405329767865658740053070413784035596101371210568246840175064235724203262018012936888220362363486171183743054234979846179396566146798397973561237091066467875819793946783426792567962111163891199426830602801263054569589886536210716825095096326301152448572170562815532399806544122715045556117727324925320099210002307582779644716153591310195933217038708971789290249051351298676940395255475877648181397226937686016384972347805342638806611430357348364918833583723040569773204226957117870613134634186865687121844056665125175784427838621001298719852032498532096916098271039398230949168095239964673722548671564962056360322540263268717929042939870669819683116215933581928876917808963255196656385431151354523023246137958944454303179033305437104336485578313199309034440487514131867362460922298277473866846552753025843186951194132224260534582128410647970491499134325398074753906918410603404260178057235516887968005829578920662249472498927898992160077003026943541244112043050633998381674468519383270657759499300925228941149008092271643909615710005717088009552021743522318246605736932944585513897922146308824062271850192832608007393209826632575349327183009138564149375534401293563487214552763563317417304931548907436415395907928166282225080467967916277552518902515072802058322335654238945826359124791069356333505021863883583756999904707236008354265467380070200854101700035323928426624418508869539940808150772806241012169986071507771697984454285964440153915892829791310008746663125971270290678690944765413835020610549665643609766927899561902993431858582404467575981509095593027120869881460110235986713405128199468497355200816543439855301495197527055457233838997372336466940689621202167927014335390548353511779081632456234372675289912128150237635735313821245913881507611932253146500154060500384479095231649973252015413894537631706676053357587780705348645762755396246720181814972816448373801422165088703520893720906325604626265419063419390198702390412299325662453578076138985557043780942712525845861537221266395207636269715111981080050631086525806778505207710805808081867972095196081032860391303482580435653660345914399558693283095016977763699791636451644845323976227876649190154288385767218050157065118071373961749682804137123142973579264338064585674455156711660619888983228149660119331877097635945546195977920389352365031562046533143830747450695527669720088501309390932227759470944951128278402810595878202981912200626181277804992794708815680043010278225568845646554044770937568237675272488063339719981318690802327233948158337028097621985360872680577628503317687541891715608193771328264980075388831560875712244749716699913625654427002626132350443392514997232584353985301367543410516880827295091013564309788350381137460777507798145743905876519607057802052572221451793025433684877280412110589178506229894301095313756627459568109349622467622655896972710953342785308894339359357061040417858930209941683884722775887837173513419237289104346235790872504619734025031445031576775099641240149855536501060887105076678935075542585146211697760217543278513358645788454744148183389546776279252166848617847713808167520947719235254988080182939881847197354407755936883945695018827631657077257053530510052937609634612487795880309784163292465150987113394727401282996248939721196322239055463204724600232890910527993206125945786688421580734647276021763412024969491362900540171791044561456810165345911851794387703074979043977001366863469349867417229997946740267860969516283579245447819695358869375079286898700672354674893410318338298738519360683413096601502121672830947043218989202713107127264012404238420892093767177457830194554142809644216811946611717495553424935918878477394720558709761060178577060729016258783862840079853984345616432229391768900396269247926266540656166583648990569682838784916135343724746587228912310438933822026252199195431632117427636811280873053988321025048564734187287544331037678033655119863761787199674311461574494539112322901842959129073285507072875614840939891763874377890090450196486709078241739655466659431786869033548005179935022664791508332327051424365373149766989785623480969585228283675159105711960076780993710532945099596639721317872691827512350368395667247642983247495405088641327190428439649317672820372940142668160968430300795926078072520325867798596844219335288778717680908346309993523305159111237304637728493921901328432099543819256129339027935870059094041343228760325794304767155210330069977139797593007403744393595669999097509754101723407189289960469288207458478015188315185382262154336498906257940656553786567432035443878096518251938403673323857678953360394844204403780111823655263282106935058154516173870350840400500324932641424359669740121083655584075515467279886250039915950195223980074970443367449502019185661468562185382564108869736718521651212587109352536312552937275001792417491729698864426845221698069518792962837942086231967638714586000867692730413547565224962582986095893125124248759845188023242321945971683269079892277944549596338741081319343215829106318936752399709350416747541759351738785279974004232060452125517854456480572761812779155570824635430313243072247542744802884164765919230947767991428401742703717868908832379250355874586514111249498908681855275296856816312667104050936534460092315314247829092515216326087151686613399930033319593360257332875326791774095858780532725470035689539394655429569961839314599731987552499957184242425381781032241498537819254965593557513069208282466055757612502455854046036602964175802044635357180170801588742182576804836024462266536385128474731380848865718442746386543673503696914721815004404331345207225727903911863328679685020037815873102488073354133901314554737637838034863160120123115460164567553851211003405931704819210033496389627322289685273037987032280249273170056755287523000652708249195480115380826369136111432783964580897979094536886633182597382291493653857575733829289725636294875870067847938791460959184651352051278105438777848557831871087873689466258739648385283719478020601608509259017180105763036023022788453525684181400304500256290303875442553512521157532379869988604855953085073336181297937647628481536056270000107801362100700762913650305478537754217438389382501009391607382838343106928962110900118661171129728950426642436142092151169470207933901230904767170081599518773825944286965612807364073158430912364928717915246521942284308289774237526871127637231242924881324135459940675848344380303998363012129287267319827418029588670385501339734632909598847050937916271625654668001818018931761518215125789870472646230671752777493586223712798993658574732281282182502820004609630832745144316265942464765152968328621388338627107330275249086891871793930332290092474747414295487168836463107315835958481361607482123846324243424803801273175878650122813754720932075798221843726815136066310682109393090441748996720469458509869612256147709072722932844144807244625186698036943043188503046219609196479566466595299539123609739048938295124892909321497377540745526309386401752595969425736891095223305389784261965330329767966142135669438685853264997558425240658968605407231199702422077022928235828238275031756055243004736472547908501514475640934158348765320806922280399181826037825681784620523446654692328594635883878230345253234813333667247231934560755274081277264530720839404443335507352892730737905244885109265031862802019516743802667818607860080901455263805577861627984645222086230901431832646889241418223454508938600254123450339859817285197157981224341149462972296735355854948597535411534413610477420244794138802218789588950459246326760131947475043076490837529312341465781454615398506336729649110277079530953151132634807179654156135499367280476069048719968556176380255962674790386690945504762256292029837742558669254374605143328252834957799815555111398224392538481540894083392937401115324034527100950636638877399065901591044827444248226491773374762899501081870042957177670631207340320114956149252640366167210411113569913007010785416554929419124714582813321628059729065678162885086717333315428102842459294211746339743668275636589036371161640876890849169000130773327099271652873611550309069451896783094322806515967269940056204862471236761348270307005074456157430552056718999134703492185832897774652013695364434299162959975560697503788066780592782796432641069253368572952357988896954179488007286615630002369412312064536275381502814844089839510022484811633289832320324769428393081955407260286909000731369809290774325069530517877419985017432357172070688197614697828563389115641504692884523185476872310395250937947859515302603601416708414719439943864167147213833168660721451861754533406485094617427717526941913511830905424909171978624767407199520323389013690899484983418558309923071311404181703680130392014798605295438680858360000975275014706719601357728329310782499508887257621801233701171412723352164114010655674356957164784420772237345436430947981349584883838284437316102191868280825391282648634657417265739107315438650893847774214760959139432516356268412673809940144446708199064481687666573344554227525936181525521452681389559831513973035077556551391235588789303515908629944364875196495707132854301245238091457710409898029997034336337759403796689075978515192325889911825201757580134213566045502432959281837893936067776813510210804742133193496957782100011098024777744899436761475822748657912534840568346969971046914942220645670172738210636280049000879303801568046832125476930381677442310496398928844715009131761192201125744729924250458737633196584277790407028734832085699500181863788189239014033576022615815646625190712727195595080108415318875318736449066306925515834248133883615499200032830930220697240004718172931691997630195158458314480509112540281776960871110520928529044090114294225725550928509409224968670698003926106413116509299566804986285670321864741506008364791395943156895685991052914470237450183323850062336524707707262864759196313839983532231197312879359724076618605338245790181278211506302232085449727125802500715795816997198739963980614102353630182989626985197200500968425306637064026748783263447658165788007004744175090963863812712608109126782784252530609048128905109049937828267939102666880891153898753036387051126271913691214341200107494789054601534474426372198544862609475740620414828441926487356889594459127907699084675587318081447040735410846921624516020027944527572504732110649158362093599894421710841426267757756856797967255603120891307057729612381923361424840867388438559485268944193931384017296151659624221385108950258003004265089928228073881076428907666676906532628430458704640175661434878973575756285278334185593021860516317497737946235434959954251650273434355121646581182575267319810379926296006215627701578720447904211945022104298405615437539042169714246613826470145737347268611844624297225020757592363473270926800550089860707452822190296690246835450598433536489448599500020860675226009496640229433384499476621734990759019211521213720253900952914250153700858903024848405492240063440809248223121629304487218754037839412645766581111107046600407666341116800549090056752157979823580100489943750466190448952209721850943840402724457916539153758239059327483495057820588201531829645836418115204844545627303445599403312872956317992358005886812522666692167800582808207951459865864937445538859484350267193845558446307417710330943416969428557332684669502207071740339183759122361846358604341229200759459553577011209185031107731505304033125335150363351313614429378393122137686850940424803545783032486401723348866600582257615232969761763053363782613253073201496844428874215631419297396100703631561848833797323715533857302572302609165913013690168367893251182542355600269261922081421287187873872874731841015999592680458304681357264708967795235688325015938325809273723163242830496836085361148555699368651527818776301243367128276301386480390008455202330516443522575827963484793170606736607831390792101649902490577299156658285477711259421065529462718990662518984656202082838003391326150781120487963526626426449663488296080932715697758489748001545553126925123362759572031059054585658108434632341574117627309435798959862101024304879693023494698484815894785734693327629460470315421872353281567574378178544832502395532978748236516928250843900264460204745190546576768992883038964594838249317621501517992703419925951020046657534555082255581221711882967391774509995487470418419883811359346541383049136427692083438915560922944139765831245478142190296024268373686084538858390454406011351857835911818787402759158424354689992215767258006495083440356737586059135683923491162056991576509372632252027544822751314757586837042566500096976551419004657298081686074701952768891528655366372395525001393176504372535872692110458993839514547125378241702867353744409025744813223761383657299016596539494756202195441049894467212643625856879887697340866072579839976469685981491110654088171506200079775821639524555174692967974854126548583924571614014395431323944249135564820390368441655593869922087768682638484135069510056871389601968851908957900943534264254542966988061028304203447636600389381113970540935742958285853682323169686244575355697283236496091693434769220487232619670732518806050415725465794153601849579368420054643247329932509826713416826431497220691068886789943027376424181947938785861426121079390511720349597956072629955632659470952982114663974464066429782749644765723920346266508704550943678979448689869989328335239991320120427241473957015894537823359521701018455078541072499305649414298456452455562223465805932343743466632266734269163703465529627563700494745882209004643930624018285462776145901537552901029673222537729513486946963595473824185143061273649715935077029336169395079763177402192886185425408407439199265000603112325435731000224177427334453161382160659826013470530857884246007683919792476563932390641503770531664554693815408709706697040631009313914516997501609554879869386206636849419833824317119649516844323012907213499813809434641560962210284893956876220050351583550273147689719092853004698617737697797937949548805036974547954167080970570895803201848682140709085963806931775989532563151143328698737737312467348296947063119410331759683323778312270025282725431314735670870275977361969783772279657937878594986430486587843875946767192011414122021068186505212125051695543416006796908045852660298788133431372412661995207316278561548206310739641530884933978155892540268597562453281968635705691990154301616879352185920868083251143830864377595181361782405480377042982831105089417882402082291337604529166340339373982911095100355130819429297466567503449850195982498686269602933099953966274867551500352587996489579520035591807991443627083835692179011517549427103232918851589790346783810135792243763023404149734230829868831758741974934248316661463298156815128128192926072211037945927004751713749243061198093773055126365770400677969140313402867781757092828639206537397699908946535347813427906775583091235179362625856842635629893880805590319618710765035573738994435781904468553318391393647649051511638723973568379670603873678081895354086789201872024424481626637971715748028357036807756314948756352605421740807159087160660180347557746995754938896217354749704377897284785310932350073869070908080845244658806991810765886870935789181273564018740358156913201779077594189340707401302502017034920484813341164273948529567859744324210701218774713070192456039298740347562391386219727955296657385809663671520488631785689443824762000611655125089442862329052379387464725063747049231385197220425030635348471281223358993463937464917064136751843206712646676711986831326321094943968998445186035942629300430810893019075409382820144348675892558347193541448305907571002326809454172521427935813686901847752059696805494427786239411829756363580766169538890925393549481545535063194406748267033099923325020470906082924697643597712838173514222684594507781111084183896024157313325123330167615654757306943184274714775176833398977877610109839624544086755129775424447597017478712034452679045343054252710379673630444193408866641297778015627018501252260051813503860138003020221900853101788889741748466109922210337922264514156327813487644680772819940036613378558814798756419624554020190253331486748301173097158748323850523524579181487638325892103748848954327531121525881055534525954451271158364903857031062667365447321214035204306400383246050612749796511977763937056163512242225381044372471162790329418727033558240465699720170331446673930147043685751740008291092858168606505265474042321253563907995728892543778739760071638323895817017243811205619981432464581236780990617573388029002246996861531028287824266676661295687418285042673560376610274382644564739982140209102201957805246109245436634356186079954393906853202962500263026234612535078661061706349363243841433824521843902285175103884506541672548684447193360407103105070020141503939136641189737241412301973701672797109076529228221868873607179253645813108370257329088175569241591273016161470829779907680810075745324113665521984974397953993219635556765625004389883789429709231703901493936217639717662433753974860613898774471228022081622526151754012249777275930515945498926217150512325398894440763605200494317102877626047430462468533184941930767348126517879919513835407096879505375494043393240135698366502787065701244403733620750964824317016278286369460005937560022213730493749900163538882812960667942419159925719381365469719004024598316337258179146483654086092453719932176179948056414688268428264155770726002516125531073120592816825924451793085612227853878111714817602002682889093614477662965969817056227273523252850867771354877956322143396372147075954213286602898091611964580507949649120618840933733563575735652958145384602716364817916521694227046254072547578193658555169879405923519046665427975098538019557373058158703555100106311736382343293180342275081587300615038135573044009243061947014253922139337150290525556346859731191229060319085554641128649134238930000452856047025318676925434223759560294693790328254099145010482366716119627505316000388407371249820218583377105868315102174961493130325946090913660044172156688422534910483744832155539217186060744782042059847952054377082937851865111406607489655063654254005283362658840587926411730055829943671381581979574279042889321813767845019953945986183639706838830061715732014168042127438097456857789591592602594830078023724936203185846163314279040097268201387373514494895918155436734525957663752441374817098383144819719493344730441628731159549512721953837101587032738776653867705792538628588263805399655712519835777944864074293359398871306117533918943772909144231055030360579139120447070123159815745196028426211095237040469730232135680087331520381923001693812016745265270156195669423024420773530305009584643045963197361061874416820499688239343863941884051908018232992248788373098841816961033686869172408027425652286119350688242663855786241255441742160964926804917143112517961300190610963217215601097887355190269432622763047847771299696669864423568287868355326835040717193418738568215656808028877624909595262825762307262769584099323150841328852277351926655037021173465460535835334783459871940811191738283580701690737315669911606353542670668873624397668857807460375078229877289997782321694111647959790479746264379650686973907177872766701092001874502971647382370521221146055558590616349705444170848828776165568674640727983572566830504728782368765060023752945250153493396983897148520930375317906529414628998082137996109610385988136495723290414401754126769939180270516243310257645654869792098800705274990380582887262411783574408267488929096108538495906882022429095429131751810927062804736739202259629668648319829395944774252349350464854205821321160302911652816079213289544764550523125133553669387566996239093367564440512086942042491421719907585740745195984861099635468803508694578188475571194828372889890028605339879857526314465734257253524162497733209365887496676095949356583389369927163958157737624521438354619638193098656454007292961097485473869077843209296511563482643311817377652456334907990054087412997749072744056925523461554638765278181475179830558444246035649397968385084027831864115043111218276776418352774649963074632332167747627979180487389231201191751320372273300174035189836977497908544067376486857788143371611952560548063178441579274986769744274254254599492868436636718763504868448672968178072166115605529682410438014371466399393690422830880010247706778596340080820591708499015711734155798923929981075637145407548236809035765625250765517548636391818190659233024188966075364308990982173636355445641697348280239829231228785990257960954655697661831861290743070779204460355084545234232960997128548102905891921022083505526729083362508515518893248469168366068031857604505574786618687668028017348234481242332486381523952784421200015755213217274236809354729100523164167150578450446734660749250054533353534627142265142083915313394504279558459945613628377366859587885059269239038616000595409986129206182457998275909692977049717804824814914863677757964846681227041386630068726000509927578034694064646276360465503738972367106511077060243072615528262459442062875600977481564999824429689958775455774885600351037392556132642806251533215144440078834244198447881588189636542573024488963869514928403984339727224632218551391862262086697776687003723223111895574569041360319208282126124571431338276419791518879948978494129926539997275371979684137354120327662772997351333241186869168624521877175341516860994046299716120270834720949767439085992097399439422106942714181997299025553088937502047849406460627428979399450083054795560871370559934797462692490091063967226168740040773593632108061055258166470876500863746144578427432454977409563921245063341645669048501388417271927841889705227825897091227378143524063253737078929559935587447408212825396034314673212154279410629090451494014688910794026176770480892955406781747210220622259738332677983107820948862001070626967100161446286280873756209361068029487449571864672514638027515260887097626861377617966128764924722461895445321035844211896441324820697334966853227091182837914138409190093916150825493191586765848677102952930184104798309435646967206291556538606543425741987703026101775680967846578391247949761900312734747332833371655868553395531830900615127311936157761337432315450849708491379936175757885549840768706720285679361693984221425884838059855747327099130330719394703450118344095706561172888710247100463955541670866816782709632777663408192882276629300246354141457222604266838822207210477028329249998787725039343165557237625623209527149737809555436708851088969362429258541247258028166865019604512870109480622551081254040436240668875034691233017572125667568922132478992305293093672812011387958179678730527119899986651884869019271015199240053305097907765824447601817265174507652000980994492988922111755073168485458229290348548396714984634958366163352285441905070217482479247715761903988083632831701365579380207036677142175105825215936071669271789850740559500011412192217292513934560471487304781070689357487353295863568972285419685298556165641510534718572697616791293340860444245264089837639644820375549564269382192990604265681062379345415848145417213489840338748021807447584042827273033065024411786270743713426695610513414533709838514835395574362732412145994488113845987198167838347266505563289567952785065571695421608895878437665083401423066324585978223019927371027311058026798494144731071572292393236123450159400988502733507008853877542647840722179742767834031094175799732254337063660928310191841396456073340394943174780922332828020975597645488199004486227517056853937366314802714667182713813989585803311026237312348554039650961543208193426769043438349229916940121416164546451184165749885077088814145220144141453810178476022941996195411630922674753500362622146705644595153524128828333134754901155863341628061087703650937449580827273952338838864173370536857455270166136017849767075546916412854547429379646273683160483242534783040778264261455191309448752371918274002771744352794156550093832631616731394087617107728788702485752787596962293843284638988439325542773173946662790746876329420935876260991008010275935189377758795124995878569227918750235577801606567469834429302986728682923244902426694526663136820339882296696583307369637924639912821973025539876791314199192352047818566478237752968749328602437309145640599948874999897508936747694872739683895713411765008161489957508812653581744436756546147709086350577191625170874948372830340966470142656583414556034815230316140679802385859876387061728759811974432479808676059573413366099553281975730933335209283193290332208338032493143711734200182849904014863061194543716293085474775229209113286079424061840894932596038198202938738102000122886135731883729914975124505129528387883962908619556284329633932247320600485052702648501014742323160191027359652494574126646373059435694324586718311114371441127268019370812672286433819444896888081257607990505113477948769203473556837268650211709662422405408488924986160232003346157187378430097028543786032367876803248804201836519910546646505498889550940081493841280812586423429796473928316690373395244752189969436541638442419725790232809772900244597679738490625937265147797870269543695749090681334118820066207115138055837402418831965320932158261846167907608794205833633452689050139823982065126865830367583088379824088193483997663881153734546286277877596852164673003052811205558188367402287587797820419632956737419558811374822713473662047563282939283038643789189630458876811390382892323681125318402744498678173806278747380463568361829221761456861813399622369745304966534534451053178957119933765909151034165877189436105126872759785388444496942917783386168714290475680049972868229943684137055974093389032304984174200701273162395219179062779496977268535362311664580979015624998276965541948016452170557002514963659708737436493137849873025650183204236953800306505368084235218193548315839955521978319836073273318180358502713994862950321921903138671704444836952382349851311997553308190039564003618914231525679479684708177207053235836675290300075056545129604849433721767362122108568071425634865262701928666678997349608541702784314883429562837069531478518147982269581619852766271943919678486635693816022388093506846052802478304798855511020269151541464477712242064699970998790761858488496436103082509936076856455531065114539564629452085347759843580732550168931892736605777773415925245399765774314482113054160525804347921085876465517421324931217847621250075567782557246071206388303367255161250398513928440456704024137206685393543734499217834519567611802488797285106015390501934540439424796970746669193230612304179185780341121917662116237921692492877305744625995957650321250602719164234490844109100661358612194068992075079505163328699781902184910245604878319286264538447518510179875916528752368075494974228176708878944300261628211184900020717633394536516904259079277833421360485044142764721647353923775758717514686628549345617522601907244302236640913714546620884999308298203148788050209398954403652558882968168431469742747628195673910793395145049115186588688763660123221500173773003607469196031066119379097158918001214099167963517917253304532851152728984011892690933582083701698778634278469262044069549464672747149762634866949356095471884774690840929378092593331474707816596108747631961806283975464872793307076364432263784675195632911095501074314773543075590979094633266462779114674310799166477548587358657774227716366406469945814329600515004602520210546034022552308800864049382803159506959546515737401677020201812399384451563633409447552669978550730717651071174533986419189971203595999711745958006754025631915737167740276580425443599748109997509858905648218064422503427785583657148333864305291491873608726476291984664505804191472725809279117464825104379396084943552405741612719151099777387447964343959096841458484242975445578289870766053888022706183951204254254323914573815405979015221861205008973685669516696793695214091455073742004890249500352560790450868195174179102242828188367134869617061477974457625357881978231754450968987848540770933670576769078086080090178048533054083128062617898773807346801585133387309168345110587899106833201553713279149205233918189005378050897550810372707912918534573014122238112372298761745872535128260292092224118284260795316030670095601388185931982027406853436610435395085694586873487994453878027859794714588793703569893572482889339654589397926927785686126563561871412122792841021966436324835394921794670476694882364148272676779181518213833187227177779000788955683145491360795751085364697571925411369567731272395867436526417162116738873575305652224614058723097720863730219778515996884947815104524666483513750390949188946815096898374194610934484009602025433137466315659342907127192465400268888113307362287924665042984404325174282380806345791400907957723483445261458475627580493720171803869336602289810115640120868837847603313843739304411881921553818126132901384287043423969920335358204427207218993644828890745101856432710481315097923380322848611285733291151221500168331973948385962017460717583260076436511449081825161138687316447367087401842972758676300953553886443449917313818963173407771140116174000633672973754463734960844660431382359312091158271724512346623428325872576468860753179738586459272980468695887565499558235843952042670473915947480353273983083716624878155476536334690020389459856118180640623569586796225254345424767787246553147643334293868709593003682006766254865311944699123713810219339924446285230881998791855127160799830638319833371440409861239857842223614920887316254364384119011329678250799446972736722125900155868493346232918725024049822537865698467581720150569064946348654481085950115104334552558047379451945830408117434251392788629184982989769028228139850646516769771404408769547992993637114349834735323557355577633937673308261635764156705194265322847816766878096135311167603920972955410382663313854006718730707603960064931326585230642751534207950722035382399739072267074296602954450566730878030972496905687427731123265007954144902043185487107464977962793751558337125450712288804868451234826003162617059732476514789775160263450658327698425152063316612081151553864392906907243264797758432372095680586493574007864111106799940011201618833215744466455711965427658518938529435725498160296153989750341263888815049167975297288023059435125170356943333364830191871217667153708799115054178347063774937331534176960957601595837721382929861558194891023201948966086115781812352660309409925497211380234775047554971345938231228959800696091409089348070631381676245054509894108902415646493493513179163844493019586124386044427310876609792756051776859343040969887917722144982647998346131385045446973247020609387703578539614020540331119055075747473984213106247053653949847225274016037873108307737977449791824062497369954000432275939353350857544983141095944622913487196588487808349901171952584801899304272832796562385776378059005251260084916409353425882829037904956516274449238906839957457979542247163004574887733679704244342195210020291587298509446325135760025279544648747155771104854693897698497007090507287053243576495654225326015349923382279230815492993963819616469511233063965751624689236212916039314740769875622784207380447016616323864378472610310939246588812488932865310708718706142421311369311185090275145194456448895942945916437912405567793053135366232934183901170284813528752278485936917251260703545191496160737908594878522692426402773156026738895841246727937811873608498401078684129393142252779661620595035341411341637406166463715058088148924728949874017993999526652420523366512364982316024037008013762269582386511145266482314396734118375424603284647795714044401032595774248001420169962481098129534585528678013033278590400979950085021228951785644880659072330048251081169691350790515336946556412838259370204598688289517580466521937822589890156679272929533461628848259035235876251003597237295241445014764182654565221696825091428129462436741427294982380343774981710168004853145899771165550295283613537378910083857004937875934810424590595387850076818550638972984414230317989813778549060336996299710142020137481235653961348948740750798358762028242175409415148676255666818587285791208612879994039022281348110558639443538598716150604120026989880008807795657265330438558395647402746252175373874360230751142845798714646733555091358774378697434345115970080041239518746843444116887039062097326984219593014960290842286685095377149609815957011285407910785834369711847345897723822056979842623641643850854831793628745303446732497193845775147014574188322675177559857594822948646635129579919077514973510325888771674487250554486271499796059774247487581457562678690658518751832470001601134957263378517574495789808603796805478413226750204050497682299285281642684687834275530244932758591069834125430441899605379516666667787784823961214001766877811509291541327466888058675022911592405917674688501669184237173915467126059225850398279218288621288191390926381271621185336148079119439949018724665165292867773937377319512714264432669081646671196622927237091852885880723027241825178387068779081402921241987720311284097165886539480953379480953115591407399094880702605428845427269956908818755116514864986747465789635644525208844813477778823646769446825108826952022848326806716793588727605596062863179921482638627268281764830304935370034506525428596456391078288042013743113215813532495774012232871764631876450187978759441052141388697265081188787981613385785210483948634348398869178897828188607022945282105161465374755333938742385900644683996075438501088694950096407648778763378187722582845966649294405979014360249458445997847774845772973001958368446185836891405374064221068709044915753544988444349396672267458104875716060210358059695438071079088983186920162290662661507967162758740570336668764467896214698534157145024395685456140739762375892154534174724534315320694100485025892207489150665096764626920196696032153969537081779055481692361425804538150024914625332665319397289563247574019161532251985003461590378583438601464305905294904060379859206386284943654190823695133260002636929780751616201298380402892259295854782126839985392397805218816166376444408535015016441270797572883119274565089847961362244610555846014615788179164590964281099394073457471580917067033539766021231206595153328779773392856978571000524397207064125310914674574146986198075509759284521541932585662807806393965573307612207245593795948821214285231841862398912953785939034802346117128993589796270406740693900741047194635705084706408555436910419497014545126039071919817840835921287764287030212966559946014068090595568088199781914760832990581129246299093660975044784379614103520446655138969567784887380163305767379730927918645612745390618181987621921510746868525358746257503132785455610971378511734679734590101216613672546257990664662608985671436850369584353593100310671813288004085940696330513254563897672489540148588593695804468324559303189259667171421848906719014700821850168451445777297320795137682575560060839950402850639673281575461756779474742791566916911908855255208467787726500047489718302069628678918394506102627460050091779023665613565662205465818340623773476573631392463577900952084873875153782899012738184099087090959385731846391999671418332492196910910291428363376356351908064101124050894566130308092573596433335964375486537695575915851014498813075346608089237198082299378002380925628968542703411054416570076776868007308590655389647238874327451818486267254508820626875734844954561971750468804747403326349274154137900461394918976385092008209314700281444063639627560159730748416701810538343656665807392723960473396544582305687542634809986161358939610503217365224818660200219428128526299819304357183082202227958507802444409659769210603288607329273866045422643507151371360996388480407354419426654087866841154875344210768614565862669757892457765018626652277898929427050878536378020354779350100467306971029031682903560930798961148786290632656367223855495646827715558772588623251006616020012711313146322280964795727119702480245698296214165605152925087031057370724134929668597270777334992493062953301886032899997881039663732677115336805135996486938220692507810439731278872223662602364439182344144807683142207427417439785478205046654611954654601358402232200097021550154556880053740343900565150459924893972877374886137346091462716017863490225618647994806346832486724311281097629932072890124287186226233495924190287470004141068186387800536304602145863009494038067755450707206864030182086262179036860946866891843416965828355592134581346990509669669273300669209524154742029861470778568013973878769349042621966778334306633253709451888697015967856671274558176378029659856613490063418441261361284590962548790010195338861508663646843333443664501733589436192283804039498299730270893903541217841919268258901461836829713049780736662489106346867719782922189989387560862358278093018873775813117368875514178313574866706762335075478769874467466030058914409503265959927865614890068395425329845002897352512770215559011888407253076959477220993796937119379161884503507177888018389214925490885461159772002549472550716944343014626716595090666038821239286859370302538825095911931293532083951157002411998768952339110476305710656393537888453208178840484593403201048029130107454240581059136077120570396592270008646771722347763315758783590595679136672717566535755744506731006690208527787198129102827891278427073641734628832208689547255487043484800296356870820021259090072909792717891487125017820169393566333453275344356076306048488269204618569989177979097197160827109297268268822542040098101488741505369577597488744656328215614108764122948543756560858799993097608077930099204900122865744928869194176733407000469554326709067525964584109775661914223106406337287895697988925160719634991730653676916738650309278791654914184638481979651165602603173248160280967079114667758919181415895395098334945053551444328945095877004806916317702728751425593912735611532246312311657723209517876455046749828458764911996402064485469156658361706708099314180237120046722904345399560323775576691251244501206758064979318488199295393283272832542879593105062118518123714468586428449086772957846857200650677981643021925636303759416819421286463414547758593451542653129593615403980690297278818455624472361060481680985339272353198177060429838194135814162171483582676274397331147596952267373025334141786304092314099491517341374666061586689016932550328127891205737498942068568562626254980844526100258682244976289178214784512011719682384331856482596784428653374872550488773815898487804027486528128465594128770365294806891329198348474538039051619988763137967030427668808793786679929041175809317247485426044679481416386798518937424779517865963866731927516796309300153845317009051158416766310374822845604953779783005516717949446512665999043753758997296847841669939680594181115413571903506873277117011127652164038119320901393226687339192132772241087541332137614780720747746770286194210746920046147240293093201321842664310749054809702303568418349512608106771273918019881582313791315778334939476830121729197795178841205230444279029530316362807165675391266695395132970298771502225368466052865369800164093086849319612981680311924224575502241859801397016059618354371002901116087185128358254370043670371634005856669631926340714111903246207684661635196909713962811517961845834678024208956299556225301815194903592459168720984236061231206240607909058869554781160127522371797433133051330745403545158594412111859858628085546013062413706688258416619116821666538402266697643256802595055285929888672158695167750656541979301804436352711743073596446309157160274628752759638942224703713780993919406067980834189772781595609681471294989928166933187512168758061678095309353227495814853614832388315976614617608243947148754447034896583309456863117589897899351937775983874722067421545510978279977956180433914948817079955353095032938311441342848982862322959035199901089122385883407977472566290129548940659653702967949877914652174865574597582714596969647317551941578354252397618911785598451703137684801207358262919680119188733061479051013927515715322312440796923090850214491053874683996603441622851876440354444773485763284695110689490431149156347790034603378976041880281041233788597651251756081092244338967143029166850868109865800707988112491509399376956638035835924254655466055031204962840561976527850291950182206514931971685085457162077998881850513499714242199107114834216535201689769454250847475745642100445635678977298389236553888090928441645593194877641015143174060970893415158046778065520975755144130152350245308422538846761644383471421829174981723082370019474199076344942836245846447089286355097879516954785312871863418440725470968832637217983479028390537729424579488515503420168657869360302387659422567887776670279315604638684637862232913878358867546298587788955431445065937545764445278397996182990835039717221998128755212794453598942614979781136131572694202816851512024247514222344500513624282605746033573818351198326543350956816339116247415320187495460424516826034202502589321175023529241505064283228718183652698241099777395393232244458887574406597627744623434116382174425513667621316861057369041833807104858940070498595901948768802282180125715022578819192068211347079903798072277431475019005472777807170611855815072305996917261162153480455814536487462483332693042389578307686190174015144259884120647424310032838399023874063470346675736401263222951828996689562890946651006191347683487565688487043479336985807677462308348277508464878402374564577973620186213993100721119426802548679683428584413553813538943200763775751374203342196124063545412521137809323087064240802659533634750516382032157528274044115286232082777349859777560916654969749577534879971029340658001814165217790461344056530276974145570503267677245838440593025367160306866463555034746001838203521964695001206220210332534777009574847577438404638181536937896015480087243742676600095999043987674768240493706031626214747580421985851824814271236122215382280878847393552678258376952238487450086516144360474817974914444145487747289778156265909326192359971391711248100832417695847516278386588624921809452272080698186063898494689192226580077375638617230956839154717840479073249995485658893286104902451108263397422977367008147394479579154975761367179699729025719515271603896602925218744353047153786363658542827160843665862808689657015000920091207380497609658879531985516754262784292568273722354046910046658885816210094395698622553714681704836469541946574390315750961741380663534874690473214168753930359884761150296125845355611578646844039254592846636176466064976304690528481708304626512205801191250526887450216807802428361474104203919898081989372439062172922265271455148966223536961257069738041204287576168617113672309671044975401824228368436947591074671703906008540436775325167407384299812455903420129171117978489057373739841862927899614236143579725103150521263515174569501920353473629296111766835491116190376591566758604257455928223775638998696985365658187248260916362889999569776700705973398448201190986256848932536165820093263590767621874128321395663291700190687327993497778483740539426746301294461732509906139874810317334736598864830571528053894809438110758840869717487388041575372374748077417333910128216430328399388034292411014178871766276412871102846174804088717745672661984349692734961234762350145753023081963484583417745712211472631312686296717840113420071529308406443183964401839177049589434354764560463583299579440915512257944274402969568933915338064643158302866985226507540057602899784187172175071155368889014864844426162575266782024696762994827662135891703079034311872275249163833039127353305063097117235894452311996689757344911806110484779246224058208905393417174216860388195434212642887058568950477809213779379973867382422635028536578118811898607292911855484158587581461834956773584065162975949902057489118227597228390708918393041161810503449745169317204847748312350754994347713918163756556275123395645165726630805000512318660624463412847307595378483399540972112183632211529396371937613083786446055325365790042880264399654320253060671335370886966572945637256249012818404868333452988674310312032432003168851448561398104809604040342772935155011836819838428444661804281264562642188067332217870435395961469728063154606023265727778684149183742155675052171358191318214634877760117701585817204670807236298991305766773750313465073819416520936756799657172069924773945883296407312862105841687769778048458514043774424628195920187540245014482069677266723851529140228899466197409848171664523787718863800491662664408779825518996087684494376411939108354246698701226252903488595589696986974319615989601043145777661758434433412171157682103734912152591853175237980060379830874634906803258030769568362470136551289945063418741642343554402373913879505153735104422550059183002743907894987830594173671036236459198028037237032835365025563020006437699241995317156852643937684360130624206070113731297889882751164260414032522137594794766174828272389375152540082109189381435305616618779361777162310552061099258402588555740714831172855397785892735911007613024002356536076626267323168475327523287483430421378222877958252356754410676370484922544633832091264464625111911222564324181970408915160835097927142127855354287106742635661978133487174158008829191477106221279329338028425162943506784760896410762825847581771046467109449237979415857007094599660751139093597284598141039176173059393087751526473605755680311943977029707905028329926190021239601595388502051980584706011300917288658303810704099364129312132157240123302381368906881327406919815330490847390298633046835394702294826286864520926792974237326496820238446011475044571475217926162620379811066995156028480831753570649246360891772575522011245036574549868649654440114596827865814296979246944710859379423296699884450200302359895743059719985931144744256499424329452447399828871330727811863342064947841606909462427943357824742421638776770821235162949269608954042989390093599287018190924231738686378232263646744839290418294170834480383656153498460149065711789335766451240970406826973779899191367511649009833943501236210187351829522230045435164143341870642778040344305342836467790034461524789216933505739266711373309743245129022863394825042417018248504521304689759741286485441356070394224756147486519549818861981125470991975933696237524635322819389954111377743672587444917307787251542665240179253606126648872400368652413668041738024413489422045416886702184114518216775624655857840506242974065466880187340476852667727109385421724329825391284029271159096099170415616132327739018730122150220766276197866164368245513118668273795139894095548724367291480653455471033787832755904164763468248458907095867208530613913910233855244610473360071843724485378737537698886538336409518700883084139440587067122113955815723891529776633378927685398012334669773625567852440713859811733577038942858810382546403944021609399835023897106456895806971706346030274831107058627911523955732957805365345636562009172837082145086968799124830005455527637445798577394563787197144546931983044673403339081663768979867959986280576171921266170615603951827562548714860606041494598116984180451721574047663660776985692532656811968789893184283735361031584504365013006786260725152682587038065792679064720278301004748522947284161497065309312040873853380154157163482658353911195222337282806406138792481120379858690268628484456411618197154505168002464566200426088381784221791547038780490979972862373264578223548423782225209355275885447807368712375615459451461777389632888027163050280358053697089311944587600254199764573483734042922952971068436553262712021656066469752352541808579594421032072389510643538764980369166840571192976893687935153237152892239607807509858068321015785882917027565475494293274798693431632922869991644350302153400710080888467945040472309703877305460537583933000493233148497759105542620973920738344804489966991793915813299624638468453220303178950898607849426467170364264409966408185794408610065208284753025095239530965888915252962507989609164750258255327546890234707582802099768392556709322147348615671122650569434088915902690512315878815102687752794600495547004392746326662295344377992427442277354179977716605390799163566875338501228122692619820046304574927930025042369343620459607602350936649536625179431344268040728511717448466737861881168150377713397449944028848442311611729224753510617339970547518528012914489162562334135857012599709641596047154000380196126338430059093558432347655429595125425309000797010779061146389245650131360934100566682450757987545220604514903774341952215157951201283550153829867781149760223260266168623386321375974825453948953518976321834649140633606385652049314339529077980030216135601991846277286928203137618994975878716896133463957397083660094518289894064659402305766393023782791177325490011770907510724801017491787102091920153722064526412290962670803671786142328648584388050293312764128942334056199405794833668618163264460582545690419845936091085651698363522200549320078485754090588035263450275029437960121206633492761237454698309586339642518784071427807377805709565377548493638227185670842140818301832401324431313429134385638213295804866009127343706275593303284702740502079984650767874269248955024474770423389545549790126940138499311408706980784200127272290559781105016072824463208389635302202652634332658841451986454333083050390556359755260084196036383850291472062790227064032522892631777478183129507863569913047032798028578312365604135217359729087678283791410724866605389741944162534760327072795504104814973049506313401145121950917926519659440882352708411179107313310553168555322468861557173301268389985559472493617077748107781420047065818057660924033969533579026472406736808197466184561122457772716365955738267370730224873259540749570645137299828704923368604992436342947558789703817420910017817777167669686859115964392853962256368279050530377317798288902411037778824041561565206115870428411826070577430697616270245566907090087569767931596582232396243604120396413272519897750824070992749733398243510704398847902608161145561152989880052551319720938762438061183987061648024999668252800295151873326772980619383144512403664576407423724789814049911607065756363254820625438166394858127918363485134020695225710197568320420523242546574323735997203462031626714275565853121124368017485609823865559994278498645655787385017401005293903729438196392859624337968077495460823913462479060769467643504006289967130918439653096140659003395169757871554296292350100580128709172782202499823652128957565971598437955410150200613030160350531877648502335744604437659939837919341746378041324647047267447042664617300336622768157525783666789722130815232407017781658295972596602611297537356083289905596385707774916346928473777116801833030422661749430507874430538985295226752237822838826003449927919904898924140273534002070058027568230857127597288084907332658816427773534796832286834141037222003700051588478177885156036632149611423742620594608954873620708330280719714356897801907109221986710295017397458608551719946233170607736344891990221141334088881247387984721104472154101600380600032304894526736274149723736184944320495186033829185592405368255811331585432105316167758950950289612942020898265749101261672136653103863371704816958631739738797288927086963062349380340000373395504660715836865853512072414112140786188751982299316924526374127223480266147500236085937461341262173611754696937145577016241235241595817401011486338918355987073240162287123532862091799958846247656572834117660422793438599069163758352777528489183235778671283371684630012810549517243457064043523247713729843682817224122542547869532842615132733566509627394849930116261511019002833396112427797285703145536327588364326329724706259736712910345753442845525488128524895756244891792791393989734866941322589180255563997269519013653383948467007338314551281075627668369751701966413648890494457448448712004152334468502244417775396981755939114460941517360639711261211234344660359005542680336080927905341832947533140477803385709539646253476920041694377106628273733200866765478114342024302976717856130745330846603390116659595999394120452950974995867659237379124138854185825983688532615274332196255416116975254313053876019108655318478489839118736105096986749444164119646440772138624781421197570831657594771393266597597767226600499139047125953270788917865450601087332330625835054724153856715379167178183581080226176797988046791880307718827114348428989725367773935478877133416268256476086532188881906529324863981235066793507017642208192402351475177573089970359350995730066205586110506190812498953693143768662446235616966213454003988032965483429268302034535502361205761071542280388124203390074966906224382887337871625909439926250498052389926653921637630737590632119231423367844435996656987697211026855938685616676429060607465057957085607378388776089147222552021558409351913536463189477535271051540142517139115868939563423824364114777556143997829477020966134086424642221051067785266222045110414572914399567748744420255852479140217306325599427314058743675022939577099476666652672435793978812759741263707607222268151869013037393676331081280285553462920610688430424571255497093995135629618954397076381950425311458362500016471960678817787100068285239821719571801521762432699329643093547884196327730301469237266643837660509631336279714104781001562703393214083945123404377525129677953421649442119732151102191440939073087729584934239788646432700792047474637424492278506576097702946529037311162887376718389201491523020660817861208479633520342061568941723624180112833376204285745182242134832510940948172370110682655231685380889296119961961492468819552395619482665085841591685076305410021793351083526903291744624057780641936312768726857828205288022999313451893522230635046605073693164429790371731122843687461625507143390296016972714742470581644130310681360335911149673276780911287627350500985212431180889331349393416580343096650525748846213974165960852662702892047224259693381514591787319966322028859920539219798249313544532991777819526310298442435151191258210610402997198570085019340742270603746146409878643506576571708456267299915888120618486231164939329680272937634181665294468859489901578790252266712600247888713317366641419648570356249659679803894366132430104256213797872381767505612326255634497383922887837694880547140010076403146486505462184523982598887580217529957646025429117202834768603637249010105832331591830677796812995710669854886995568722743217539324641826110618176822632607167667782796184462221188907022810053616758719321768263613784636910570738103455087950204432946050912659291600560832873107108739861411675994492441263976097126882533787669674433643781307359444567784528201391514133209585105876611877033088674642022432790600441890782437110958872077236705077505345684580900289813051102962431011094230982640089943091736848333223055421120090699311268738575158127749650771244780952186469473898200073071280724680633515545787063870339473496061503192018062162711963885820240162692092451714847128603547904593380881337550228142930347116628709199071585846253111735986283122387450894414664327524599480037796532460363285705620867075160553918199547297832346384690600973365639336421166548064577728576331979704060620263383256731260103308747400885157455803673993046551019147232062046024107494342012257525014747342219980918985030394477329490699346065878074986919992736264845723073598719899277860258188484860978597451962316763316870475408090414508862067718315975713074468636379042060653317898841688795643537505553884637789138293099145826730755038208619894766330291110155681325960957082363369294896534867511918527614533551903707312292030651777082319078563874006543053966496022076229825386877923338245782728981726835907073072748072639379360006817467555580209541783798898202909084861236823048912367514229130534908641502875530410399735244248936905523860063714582990973867773577685089392924808923210703436717196294760223228384130892002403437243937805664232693241967330275314836146949593661376762158803499277629287595250863510982349474435486451449170132528990440409567411427379682247966669265193036760106560775935476524510738675723641423222931397726707803935092788135367354780926829743200360423920511641420540319644279829824814069470046959003051469818917258225439007738754251496515985178561475082522954263889357972941314644838943015786435878706933318082157299328584536100022905157561222538193532797082867824311688982998919459086752551627715678820381625118135012335252280021521797925976395512291825902225772630240772379488369362002222383482776061696083415395608620102559444310993232690251263083888598798835390412752931888832692143038781407676568626652562062482331814900124398258674690850897313742384890829608697148801537303430157159283014532022427752632736106300960169923158288892059782080690492266109588823195599649217618213785423164296826256091234795997838008852054048664784491633075543260209274020736487632349606072107929241329675594756250818255294003558904190519612206029414127669473397246635288869077690847482912196371589334937000308155618409767988778148387221294598498040706048288211423867560994272285399685359414337012989945216233874481740047222901238374817551117108837913773826567021842837726151967532509124569197027418077350334852974560756495039774381672990016088141716502227052062992493345739195017525450548246392162603853306672207778750323403177809306954797741654725994896801716225816063145877072058973214982506536363750015675048469144234445236967823534103614198189993637926572820587099800827137532987334412131074454246999812916018118800376567825418279372070843934024542768280130924396556249761706360632704400459274214378757998749405958615494105224293450875449990793672095903221866000285111593586077291892411361503579178935341705049417944397375749306425551212707749647214923280914676349377319378410250898237586525881383733783713535879546091568060464492051761944276125890166802957361686089911503655133939641995087979819623735904750258886210618245607280689867927715092891913061667226607829091777634595740538997309151961652024187427491808688729545670941181273264274307633119221195414608586973724842429296533046931114807582348772921052304668563698388038504007110839374810850921943578491481703973111352590293352408539099585196959111838099877302669626049563523007770311404431170884814905592896397756270147456096504502307911865355770673517039029078338814100819832384830134431078989227174422064715564991215014397369487633860352664974082763625117514105681706788503778845130180347817469423798759937046209659377039700963299278781191381900874284099817028742237340260078381361961834464383837797577613999762273840960297041117773614049551607905005812158152162543240489502504497310736948044363207975810327426783304782391364027173952199815507566251942815055448542518978441722864231124587427059334414773487186119381435371420448594723743374481837177623602362141036110117485706885896877943866182964439691263080070483265128096949194025177585584421314294008607173451326677584122724482737757195399463824023200247522424945437004276224989308377650379794914336230536070262828355679282746758539545121514522143021402481227284030242659161572105102772629538398784809697763481522707748801203637151108927748741757719024725740900540103454888795304806170918291745069182711040638047853637465227884300472765768022651253226194214449584583025564060923737511733350422571053201042019835451219119984665996526757770680427285436554545689708621966546485822554445896063268594318914966350459151460913125026289970492750921539967339124352207897838733620888915845490594497514090287887677059171793629694154262688016556255360678877504146264066778192100722396273284819429988162021237745162957742852500575582366559908232004858152619911391468616239775679922662483013726191392466481649686804765528582292235559310880355143383775078378258274149854374635078692818612171237189692298479465908365954682417280552749890477802875298978618786846014689738180358680732461677805332404646256400940176889837639933537900090864041364311851086826707379271929656011069537656114745071715631260472541558266720909712622146731345124798604614144508846322322330187857156432719342102364400825073099726058904618038237921992285414545766434711782577346442954370573340366002404173574422686644030861760619312145760775701465262375261860724672078405652607597639416248175355272245174675557399346689363727009296748189795732198318034370959769877651477411860537163787734242009146915580608728547356158971331547769838124206897212470782999933152952649642117723994727862615130235381164208126390134147433992105192548819775065140506323815608309884445049901507746996318390364827829490365669158752420331843147548317852289126873763419996578185611334233989360398077989615533982067056821867351923935155905809804939401083266803314725082084201798405125712423925813800173548235972594256571934743060677252853632701544274851683735243599060687896388061532730285959146154426152057820882933851355899598914342991749916324783454976870398919899875394092520141449024486902928493555888888514399949925692806822676195870946808201939020994865852909123906392706972979262608759055458656089708854681791397907180319671980504968404396534233115318619829847597412709050466982601696434448788688676634532067042534212469285101005909765767470477159194251963405459592878775403590727485642249138241477877042120912629723472353128487482175280987885140631333499728149330460729830150601610838489538618212918488323434018376868176617446791285434940929755699399961111733731112511666467214146281365366224307250046005479164570646701668009602556749569373240947641185475865217015130299491084413379432165742427236176658692466585950057135519973699478033803721530138449241602499339474547915525778411209853810098601118803712287128807108130168223710431519254959888492095533166871946155125284336466730979609759919174927081988131831244680476779701572508281493187515017637501787955172733243229399890053154253024348598005325516825872517833369893357998356582684690017218436475480788764536806453298338510937138012928532703900412488237216982682348769520642539887631439813310635222865452120851598317202625975400347743800608831828968878964325372521351921428224868253988723573078395607913943602752156545589327111819450871551829358900718649071567607669635444087200012370918407376729717203088383071397484923611902811445061754814205856735540996385583508751991071923819213159447869663051211447729867524030923060491042213497037298179348066482857136081209464784813997694548492014328441573990229862664865024604450599154985934457173757477060854148952397284455843788785262442486401438832361653821217331557998553948853109757415070940376340897239109107320964524431428448300580479030208499704797690887612633724727992378325743280641819930616445775977883148536846196632141289917062167152238288611337442639244806076033932825544093654044012246360177460632965320221334674416725653448732529364669860404821570734737414185643076180821180457931942826925161436625450780558499586433499553243080456851586052170242880479595959826149021121979880065079932377169176216545929260695244490210163310568850225422343700648893850315690919158071099282559140550404735952432574825674170817501803050783706531518720208639668585221412037190975948263449383078006772941021017445072241876371664453746232302220394246516833966242071256922766467104965863763918768021837787485491147075143995641050144184814999960610982609607216011541807328224289445117118093042659775489122206249161331955995722657656130924629327952138643277398310722961697628296592783763089827662896167282851776934452479915237943918965963524002792291948864202489659290022085657202496927176039353694362780270856107457686799984425806526802317048193068961024614740950132827998917755686550354357875026530338900346831081655207732898146280574160473569580920231081280552829938106410120578959836132394065558810760177263196722733729362076583504785437386245220512435618942907244075490858602276267989872529625122967753304973701449151639470404124930437010298952188456586385279948465406675362345988633541804418048055439022534484335338146212379801871936970182476921918898941493419242442953222788893267050312216058271506206852770341370503451624041964243853117700235809032943570665115229837557031089653586310070727878394991643169071280034460398935380634136790132405615437578088588107340455681718675661260010803135169788549466822978622649047087380162557195162669077135461581062777537238799085919777517866646187707478563657274720685662666823691821509743601449123229478008943904606995893225006480275504897316583029056926664383998176062995983725465890368374098086008321870285824114122066151432362991316580369782872993705095545969822505571730417024202506955639272761241906475663292661637669085599798229380670958737536632800850298013891339648078686707200852940363600499284400548673005458126305933026066249513784704880130684266789738396346243578826155383448180851019840648980347414657413230271528110033527004168692259581195097831422619816159631697541357952439973553238507219349494973006142360598142843244021760566073094180360012966680488089487609818089359451643812419913168121608192700465668353015525669580045301235931015577332451610065166953918769312456539954714211018152056127938581433432981335440471364683378959741785890057859008783977155973645626387482577165738026404154666597962765651633815887225622943399547850952409150956526827333633970426955796567926771803522241240733339853695828448956605192908540083982642491383752592126092905127700467803227077027394622273474383534238629367061028168672693689006818469584136617987774785091838463273916470644779456902984290881955626624670458150459393690688504501644952337960306998759436089429760088887453634066391760752890279111475240057288335133273257261744708192764222872773437655015874118768782428596758690799729477669849323070049469711779433507820342452565634015354987846058842088975609415378391988506927785394974461560361518089588104704684647843021450430696331474806464981326913288870469976922028744581571775182847907356394249230478582418033569143024427104425462262410340916430949272165896340141969605147467321997490001469100068699747212661302642692792040262064981858963736708269295399316402224927050985955852127576317801619037681408881896968060050457303036471905538004546556127177637575152017142502102740496014033360532307298415311608538795092673119100472275984563608526224646991756217002259123707072714218058841789487330873395747367349362281465766212109375204736677894532052146655712694043911125661652297583541450366032213740193425861933166175953399806712264318966778051218500478567509332281346593508580674583042969268846749454832370405690813506161778984757773839203794669052300634152659753443026016572605296482821052349182514379925041794325912177633514153098878827511866293316750792290993227889761702789788142365254317005536980390424627725909023264584747362333924634650599675781300652705073064956434984004674834617783136351606951157129561870044433265651201135612323078572850874435429476167856448377523680000225012437304762078602666630031985312814478698745974319337234907752004758823668870643053916974048152908385678040206189841786466814159833152005147221622490995021235974696454546744900994911639288064897586545860704323896043161944493751902653069572817987697912432821823104114973353451488416026234137687092504937518353648770491412062847066008982928015107975747992877737815672302616557576347495433772456337239933029764910004374607974719059805105609745265966450814087598394159508262244267849333032441712824635713961033317069724085241621953136609077480735673322971606612491603378512339987007592662004717678129112860831340358908181715751741231128613394052893860578457103999513129281827682382091989792830577494155590048845130862164122353920856545809139386519017080969054880512200920691750327761371947861633187517254244022621978593622324429607842795983899374891792756123250791182362445202713823588831364405746645328232034405609809097968378283582770919796941020954900994394125602704492855215979781493711227129227442157406899518505996179150027479554500778272782780905649360978599292017964146136839282132179465787517060091367534530091045580463082143729521774621986102007975672540269924208091693738817484927052689302055332388688092873850413439987560659603963369993402143328653975084218368913285013297047367140008577097091728644819141209647558649723944916982416097616682509574229974938720451303903581566489106057946221813108674963250549485666416268304170274918777850830491738268674897886879188753891837246294789483763468826887033884459245288520151485760690025512374384824705911027115328299863022943169373112539379838755822283329214375714429094054336336125984010966148503468791037467269714204578451409010338361348376674372777769885816891300995604427841946902267608630838407384908138940487649442998838690858256818572054275563306706430704105999238404533636741158647701057994480660959591441962359127019955704219061943193837914868921038462454826429141740100777997325966706825910831801403779976817748385964745605477003160260008954343904252977883926957877141229039979509343957907725712916093945197082474021158285615014566632644559341675173535426066677992699451961393196625311490244422220740438254291696171561413670496059694063378631761191969166379260523660529498602833290593917339324059043921573974623216312552355850739335785566113064365440277517809181993472267802574338066666959270623979533481071083193722083177788711659260199168456705143183077322805651594706830438031090236440838347566728031866702815784614170227745990625382385972565374322848881427541873018017987106417447194795052275232098386510756976109751672923881666795158781522857594882071117712821382633680683488627701686494885689120578789829334826503448632746137433277426042937537142727608590194724036694605081759323414712702162935563601345239842923153713838125383503903447660962397704872450729256018840442972971224445781275009369477172541737158544128213701342172429442506670284332955132321818586639326395610419688378703802967100335058431601349839226523118558265931535046827014306974284321831026938053144076787213985152173144056536897752056296127894178650777680045884893341126608362952494142574648579598960527506499300875955149690813626124394737235761130794392946269740009978574703673332139896981444889018731051152442529599342814724785428389620853787087088131544754947057143713259533483210912099373902667960045676270440567147169555283228087865703499279171622795855539581729570825545982139720605345940286056474622626393846344229466303469194705859544516132204462653666927624621799875577860732760133006460075653138640671632085596111475245689109695653877177323525965056011735007198137140586522897923771313178583905946384537991153450685517258560802153002401757348535776997322311337127695012916688892502661242673551921217315424998902193443942819597272600797036378554829578063567025050692107019010793574675436416205504949929147500325089838643430304845232332917926607161298715083036414864431951109812491783340847086309263136014502838118379368545234642482157065847825553910518264035446784798038735770018711511850285395516703021105921361245739922944979179897517520203363620435745305944296903774998801417541033232508986883704234692786781813357817421030892675979884718865849156822273033984857013150846033747584215108988274049759656250327275488486304002389298945854141040865485163036065834048176023589867940739029086906285671408853897347451891437767968379478690970232370669581599025591796325722601389071901293169370128833152838558445264329621576756504236927388030471596164283357535299519330384955678175078156387435036424501740469534944068939987449848799580066281820472372290452700989405224591128967376025453220667703644053067234657711385846452670285722188685951429472760752270775982437276023501158970476174592675734614677066405467871191726270852174629297682146507796287943188765170803008507859119668930120722695035122128311835452749244529777352846565916279622836599837714276354681475749231232078655614487437535699676760191683153363228172228922495053208899889576078329655543917727379749626970639233490927944975574921640852575418031723648077005267667281825573223986208002876273587911671073097652777906674483768564060337283286594096253620571163841004127874316645523131290326430576938219620306294075872927272351148246182464476185468121478284224605041857317535461928792006969486233772612077133445240335557110484231738985626533421926535522319931382507323010312881664540583728534489273763072114846128675280283243814889594318177590308498119548242228686339143326237789713440553888975172175973218290005667197308448922360879004535829593696157700837083616351405544191154017060850091984406461000290095567943289634993305442331250760964850275934449277999834145157898261194589937637019530991615740841124279158269055971037050643622834926353848304615278223265965658918788561429406691674776940585206213591879935517024609290575140015779071815842651279416112470124933544228975535862992115498231656352212278656932661296262073462631218189669612117586386940414270437723858613626382309218886896353692425984452835092351607555408932043797449571615373938036983912052690603224419503766486930871102034475689545269402847488640353185057369251938054138911995967502241268540066971113547918093963734395524892551585364077705858132229419016560103391941731581715318245669338318652192688200563911264686959992198609534292318147286583290944415371400914764668184511076018564287690146990931798020995149177641409216438980471354809481860806812375151415990073154285010993549576625354101543588750768617583524899595632723340315203235357338913570082262500885013207933860923962641419079722034479520036533934142528769748446993333476560711547330228914419469333481048898405039822874198189973982942785327325574360223503431692563180165029589922426726985930072001350794548313622617313833547030104147039678406590517999128830893392319669537799829532178234798816881175880443665534982823182797611367918902145346049860674273809699566442663922787118250077856994861556978585826494732981354025255665055875876642582159960713863129546815860582683087906073853342653992330423414523738574313813540230900173050490488678736028225942808801683926403888163418179521334426215124454963104725321114484194959850406109800821313952210761288692333497035962309527878533642826773120689720705181440792272422961282483000436092087491430867744297733345616567088784960023724761254681672477866032379642069216970674822728137278372174551739652882779596848368625376436560157190586286383426133735088534906347300145898732130877296843042125409644659966944516229922432744014202312399966264494042937776175657314982975897762715090307800536781680398837522787593736357110115693989965965639416284763460498303336908911514480015120549909902131669686115841590306185058555125110804935625045201426317181656451997479474023043127439091900893304722149281693603713053180829992992923406445555946874078299660909416111784704390898261522914861453875381670364787355505055272587193051420767009748582042993699526500445540299310692214698425738468489351616107791412331120993008137315910468148122087180294357736886795847844901450120205131558343159767562109185650152678166413218211992897355376610601258017841952939947992130744356253586608261572003886087697706345438255202591121519362435966646589498375995187999680752312341197228210324807606161239730010645673373094165835150609357444890103400813042490288580014171477083290158784934879934650303871636541665122267625186083245677473788539355757691727788998823601122055415288417096370374915104794609300912415415237747721409574867479095136204819673104037044776159113634866326646511535321447648775602126319314687500614307304876323322374117673030992529314289717745182042817410893561051505074118965098324106524565848673248506501582919610257140474232762658499535836383639288123988885884141536071650260924234692606597202264919535620477224973750584950332864583344104219214508167689413268510681201172787793449243362247781817520657773223051512164097180838292556956428970840710716244270158335390194949847631551916933618465231017981253229591079059783908819853380779552349489598060739683321403700674729826991997231434514441901679844151658889285037832026017012191112142799680737133916851830691704747226963599629213460681830646728485068344685279396148437871634759105318018485273406390325365102908098676687924151516820563680816551670409289031740069348267993194129437821229075472944038008507090899940331892850349945917111446306099515100347124215683378458311653990255692217027183374862107484824064229857109022142153965948953177519789541076850183615394609507118068035593570634629188062209745842632670982244371572618010881977375347828075536564730361898930863066351869254527050294325864149725141254941965584131383131271596407479497754101666519170805828356415796635718263578305917535683784878427875205593677516913135884753269484814605572358649886384745963494023893201636441029654510807367745485946392289112426483688758875896213398257171930461072409928304097146957911393806729171828769487953419075003770534699444991900891585151539402615273642934748328575784743354313828442386592952212468167118777069450685123600455146442097237175131693405167345747290733664536495622024454973925204892999015745819765325530786740696227986914203925292938887848817236566067795383786793348415040776564003517095566228361359904313381397672749762014474548224323076928664808300891539213841790006079007133173970461681851993227745474410547066971852506119356035284431668400781381540624965040219656532239951758906413716461310028259014551777303011516836833170342623901089570304293821282800667305201987002460768255953291596315844026136891820002949859951263284776475687280256637052029533151440497713137466729599392020993077309765846305587376337420876626256059696707815564723399477486389211186948234142165994252058460822134717334283044627112752970621354226943194974802258852280366336798480984925388006497911020469004637662161827135568382338150892032288883578859044934225703108613171364400842850510993910470503165821084248381640466787562457121795638221512010599027211233217831830534733103206753356293008804358442680122509761929465029353617937587784262154510245772672932699497766744404312740325448062344720474307545380530799139451977011882472676087923585798089911007359285309997121988640044882519434962831020817542226845046026859342714849745191060537910505865600554062781412868621259076361814185371392511080876105896657062534025393331186043256799559996777146727419829409748993822244060301339719080080496620473306968765057100611805055186167659345767310729722544163288877339717921918943558701540291328741376271113827027542668101932850232660505192018749946703529308414305938482365272166796642315496611276352910220546543244016351606819220219058667874838185636716043889922706946601927139395397811394095506124370910004323559909007010594293731219379918842618496082968321636653818572865036610563457689486035874067745086466191152757815996459020771071982241999261399458228553219796456520364511255317897942670100875716120074316165995142639560779178008677070237552149648995267597425273413950020001577251450983066767728814591097445158570379283706811745229996276163360784854404467171960963946864634432420685645021390520695335044899325082019789464415582191324238416220515785037443545699274930573223979444887750998128172909137389907022129062137847569470607208169234203675841127599309598501405534805413087935990330488189505968914851628006432282575881645229408836658183560604656449937588265911933860314403565590987040140281193509291473740373418635591714585512494250646236012266636193152526700539400569757797560136820093543532301033836333247214779957126540434030492228342730100903747572334478965574434414841615559559554997595904618873286367302878047450135509526857686326084959864985971792117658143827181271275566152084818171466765885549752334935084360680101467092364529433539164409477284010826402853274737598625501390490141275171461091751359987556948863408064545509782763342911031639037834821199999603117215673727678998213624135834351367661231256078883182895561880551081074885214054860200507782860420964235133177947052064888004828218766897453068223899485284370421610323195050017463776268431278139880274763039034535618613519423661159906770800150559433246406864114556385688838013281119533841376122654381111121606485559108999424943109670210668781813357282668761680073358742633966041890101003035404520926324496372157791370057161040453640366576609429967138722243154706175402655524851506474433159916235796583772010829743778552174800127443524616518140650280024943029414841503641082182579674888696484791827129505998020869486437559881594848298256107709370961991491862962381609901520046115604375502289526609466161936491645356541631741319025295264282281942665822250091177666715836701791882329824128044019371873041187780198754661170613775316411230793551328178976732744792457906098758972352596570148450492515959119734002419831678901207162397363596692616233555446583451834590175268329542408829028781071842206532079124549248037997321879599772726892098981103440847820465875306526506162019582089349345747932556925478823010315401116588628778524937695125819661888189850490675966637914444474824797243564742753423007660453883914242753734560994363968265096083218664645804494382039127913728050393002152433858095693957108321236608609635435930944783408724249136309594517240418461518456983910058212418137723071225910745854741182750919101897254885469582548135584682604203040403883932958396743776429292492734976522680200872040724781143733663945877827996540621526026025555929968351583047397395941799921865080709377266853466144969459231457003747759653953632498977232208200962913028035996924386899768269248234531795770010812476714051927049167175493880621481943084854427112833264867471710426500394523733218265810014400078960676723374579624394797243796241631640607352883361303605519502249124697256922942483591127163374117080496913593725412298898196335400749979386456125872492996040673461220673269357100552323374002727562184438746088766614039895541838073047126042061159714487723695988327798883690995732981339946873595375763966322109106528591952916801746133420686391118447577771499504761665666663814209056393593893591680145186066400230313728954157973743841813635678904935965910218546789317307544327468876609591751466686551529481382417668749113492744819764648004690999160376448661828903513530192935003132492795592094009487166537498397382421646400902320075847940703554982217984728392799087809403746123465446552707785673274392925951362208632318764042624644673810576956944608145813658800649465854622246246892158193447899179913104071744485559905866802419999706761653820618282009388391991653880854653563837822712533857806116038616468608996113277887504072767055143282665426499714143937189641209755555147454059023866499518919767242141844886858491933784002903681402847386694614826887263231187464152198806625162205574060168427430940589472972587846471240549478258864087280711004626422350470576731521604727265797984796366423572273953559297243733060046539871802458049105236833804555142337322834048062347934828904640777193431288243895196691728875407729950613679160378251671801098371351290809442877001693038815365905306973966193354802327808723709788506337282953283718841055832160061567000822856387332331898042082759048822971840292319459539763148267889789153644621771391729049317194406188542269268986668080852926509607267619728333944242634631525792626829324216250084000141098724841176460632378054078631650751714960951406347410134856710536534102118276601783713369942541176705944051488976188595883841146621685713531051378372153675648353262086125298745248685118724437842471803120534531192709944172683616605861859443538773574195556870434345886256947580906234266312738675541073526109492417891286129730955992515044832688630716065435910515243069924422583184108970245484516547389355224374047258598317958098593715735102228151930759354061524072330044911797634493061805136851688455384288795237801652469495620362348357135249271119911429809762296960772170657659409856230734423544082526540150065287740023332405929240285632671123762159244346591328919310209979764316353488317530101858392323037979521671533214393024663922626363010327786870323360853907487000908696998302909219214708707840781088085620775798358267619524547395695701401279921697867785815923842255759331808873330181089409105563958161894557966014129148136375648757578409787750399524327796598087700163507642039621255943743474228601696766711887823251792922782785123559314289673970866872078476310210596501513974562569686091887540444855644969744948499000923196682440955042885005298610881683141575664439145763110890703708855341992015660704471534835914745763709061736309909036719269776462781655782228858959951416418678520170037047240151057628975677470631829726404344434558712702842968450597591868544086832376051628691327575255550646858685911034841785998681157232802318464625495145320689563159365782441243149110657981653129335859875749360484725916152300005662236901002753645317760146690029439774291817173814349135213523791683425287253820575541725521376362017596270450254645778715222751140184292584390494490734639414434661141787841372579397957017777084386606708009238925952568046260745245463235481163552480425308995766707033771367408340773942654616571874857020975301634987227950385765285060657170089167046202112147304881843517802916343891807160680523060596130819802243972057087532405474126862380956378148039796224346486491243907581806545886116691520479598459642622711977126078071691066222646777478810234912592016818045723598091132296526283294598874289226208762065727595679421312022561544038979148482604791073393920162051975293163790299185615314407309542336765346394085796949180596326681942201375067357228835111885474967864245996888714174250779455847859250995804637066145630958017094154396297131153306218389128478274969288066637081399474865334082719728886267282056839245301283166875167181084202693190969813773313926639728125687809948517423427798849975226519464993145366061014320076105585769420796804621350142657201712228752777504604131853869004682177001416538530823478121439992445094285383428856990103368065612668647566027042769338992680180652018056003762017331579399597606838362627375379123966953702008951258949948678282240566467090785790441473559700299899051164083395436976103487170979764306845237349827988389365150040020470873862314742239561396256570681472489076616162977484641531743802814147118235859249026882528988067299195812919921634627893757192097111354151371177040407663942250422959099297669040904398938498747555173219802470441426000693932479348404820864999435932281729903269558918586046256874856048848902680315906519732086867199902453243358559444140376880121563979975232566844225963813769781932270411887618094414424696182192178680784434322223897543859467814639014778696093944831329792475210365790099794537962483377339906848961434431825458810066491988118968141539706446844565606486713067134821991940258974392672011580794168635880913083147344827918653689590296385445646077477559338579401937585810195816944942952890880676169027818174812539226273458948117425267116005136054234514271628038024515325958490481258552404364293736334066182613037128777240974680649838572994772802666465654639413473998829745501085758714631186240112491396636424936785503077473034227987304014689918395426037080461455825565790060308068995116647620413765546109777367463768478974641654187556001176715404791465057551025514527830840554042887834953438814197394495156426290593377720028601903898326244270908834908009043421708398104421496824309770156268579524625788883421836870019245261265085906119552171958635560092181751372189263421814901999430215260909667748520477866259721972867599483074805424461133724711996290417390505735574485079686192185847354811858602821519709525120224252461558343227184325685816751010778163237201821530408510075256677387615052685864600173005633784011606210693515964456130256396333180007060659497335739449293452017895602189567702915609203338899979089591019693120188714486471312065467165127060484124061353979271203617825834970319848462632232687349908072882504954634428385296307616547218533355646638031660054946344911104313342280236261823975546259874289480521654051232261541669000683187391950906922739065313702442845607554726906617689832630529690964887827903663994651387787083757587032920293856463568743424518189626094723473296881440047895241036139745652142648064061464988148156548414594637662997767381705870433228008901120078873045133363129410209528827476077834343718119112112488843493693289845615144080140311540868152885353828792050862689394030410021031336041738001877835728582400338359123577789749584344638344977663977139543081943804065734736779693900670910128308066740129731232446552787337385422017979777240998611805324700630917687293253062833930255951184193196578547829220070036709795781294578179378741551897421417271593742542880425486899384562586894939988098323988692085442133175125688603210234536623140736187397376939913554577439391452199406408423603131293884282357359347745541388333510559313033051353544669398507727051987140558960995931477331119782837316846087979766709637411401076832741401284676334121973342035098733242549048635658330695424303547117834102075660358582614394039133947800733642631068412031294171264751238110540558012906156566360493840309801030988919794894544132372183419242481013704616849285613941465507054125324479924196701241701376836206359441258138983284454584894610774265772432257033827926889722088587886235075179378406181709646717845992525274996057134933718555980662228758232104549572831677719059669407321313823408910588726482786223971218300010229787778816286230243972964372462645677742869296369054762065318617448672065111813270251564580919693512971446232983799987248414837769043122444445711142197091027688776315812453480000723761986207946779714200470108072570709763676855672892329766397720314367705089794299246018604624128893366658276363387083474269441150004894589550381529271268432947160605683197927934539188113874988439782764554190194222923758862046961243472747374090019668063456244724736665675341265130401945750189660449837368608503178500611902296158154604364253293105083332177471422647207565442554196126647102520402628680678131602901140055931973293284415116026827669947771444247036946441662830604964348733480072754925485597402454782062797648328173421577728631096468206054369743629371258330204573745168995130772550545025605726407159953021363215906728585647895467622050809546675004325117420099002162444768035927253291966835207139303046591244067822919928517753756104012611983964869257784168157341147012093767245827821011486477706144637255821478112874414217509384926518802485089190050777710950223333915300624837806003250814946548901977813699967235878846939542309300777573282200715030799580544683092916959838799094507871393451226590001637755196442655968291631925307398622497890848755940072843473026239923345405180780437939212939854922319290015152620974235411060988017156494485504554965545217951996770988540140855448317598504158605444644999238169302562925119217116642228431767109940428863025124530211210201456208669503221015338026048990052849406607884850661737902661576983859717994998943522693720863522182264449277865516521860774821800635814793437309704493830018190617985520869869545446016536384071256686433808184569803033154867864163309849165205169712688314775855845439488511138838830523894357877333562918597952122145483709478771204477261091674739623381977977718760575974160548728006733827464392092088610930540273292326254472082601748370540727641003451974922811870572003026097870456047161641231646655117303996510533818069701921070442270756518489298609338367195000203415575509059537140121074240444898464145221815035649158394961554991981471298309577218634175223845568647987657794631508116251170376080722915445552699324249163839189779058838466590342013244851649023073727400206885272129119316016407724555408911314692576886728104822483767028140309167688286789092518418019598572599724417771309424542211721481605520938412623387995140486231762947844924837540977158184825839936792205868190501980319474683505630817605688288891335960741244808218325620400243171774226213264475131252357033012916430205881035364516105444311687768997978708716927202786618161119613035861757208370594755617526871546268478342265450019427055771658220568486143119461813850545680200240262286319897928993762495891109319641721852761146024535153060039237507243893503805666775652288544931625054359011290477574620718813391524064426717736884210479949509248445961505193870520587674074844131018364240003324203856437779071464486471729536589812223200210972136046037706735160040433275312759648411947910579601731434123821893299736503590010567337999845144639842105108786778016256697305955813026071530812350943057850074555022631029919915325230261671939970246065204045949052837696570825244820402939185289974066457217704743536793132846513159064375319791418722104475276241088573536682723500818960107096361096483882803229458989257119884619856407939083121713798704659398235726007767420676634589064884108221685898050960919638769739232959180441686432882427489473160269807496435024777012412335200904603561513701338182358421669321243636429425509966525531033102805708501501212392835809691602346729228198093907655875525567517802276899470922533603424934870196315451274177223839160847072648841504796519359837144763846425498045097112098023394613641931776177339021988916220807124095270358393409402876823922763929191159369148032490357244184522535876783805319701200880697419728291928991229988158867819531951585592319058224494081916329413641101586535525453225058791380010514877521989040717946696620608385407158899468050431515988984670923240941214556546922625694959257613716434350332025442164387426778375341971565191173216465897173951150759903806592198746297852102104708123802964809133263729289804524335696774102000976403109963497688347421466405732406572255936705772178529567564705205882237790685522418555351572816855067272838185245394336825635337999175155509150271600585341586609686355137340358541329561045849179465419078603702654649017179766669568545940269290234617238837280578321881385577794837918086275880489262290443229535885300399423321340029721622074693432979569679984153839615387845738299238293096653280431670276896236463947040415918052890071928749601646697653428779449750245226950150174926209995854930854967396302203026700107011837558242247312620520239316864694190536404738763408478842121304423382019905393316845075499378776278531581059864938146302834356075790837539361299820961262278927057937486107543075575668637306142245434092037228379342506503164616315046389677382860261162450145746870665644460721729244572675642928516242783779966997619738694697453998718583442300371320677184488592887514896399856618217444322988054428153930663954932468033373981470361890376162220807310344639477345372699037148062423193811217596761150020421756670425589069751860501044230446582765028219882106659502116354636629097860612538262894921449620632023168232124215146427067410034067796875944781983416690871704853534828614301392778820909565426206222398910049559915381652184907780291388483801233064064332955561818181605074942139674485925676608733600732963788772190264906276092435507241385078550234962292975697439971964489384434579801231400132267824552421492854517895850284893556484692405679174464110051670275891779644263733461698088552052071857824991839455991360441352716322799627303398230230610018522996087679943831866199480331898135854229645756354460767152886046954865288498936455438169537228640704163336476350217609593127945461128868358062877546921689434119586461931269969886754244189958210557975630990456454696044841018475099228501537136322745218333778699818525930502596612940738966862956121108068297881272859125229314038922713896662130441262948346720714081886302456729464960588923784534945896456741459680781593128266106557070237571392672110089078630243907599807372310930070327605183209020182343894750425867379457404667423463745669114446857108007855900417914900655223678909332440204986744901198518536447550614110330977241636605775454458249410245511638748682703125865079415606715311682310785703079443438606604572536627817483647317737550812066826915485867703922574764497101287518005891290019165526092588741640285349744021843275481535723527100021640685356352328927662040931222934464879730212114039848791027750614947879017938345877058192386237511146339046417344595048818911426488492347416015889129611930266857779641993889172782549841580046706391493844687808243270339016875583775200264500755512694894469822695233728029764397127719674289468449900973711996930034302850737168314505237909747561339307568760233838389494696253980716139409656254127094654722501708040964939742731760936016821570570118372306104993097504051564352082405989583241637426600916386018513605296829315186706587237825580144445747192557738298831699391885073064752570609937042377408005839978474379249997957697237309617918794943860600232075136421593844275466638463425584843440845329368161953418298254724758363835532213524431378286710510973347568487239982829484368245617834535450178133180118985971091436005189475995908760085419063092449213327369444315730741383549858458459056810398700010757563482505081951994357645903805142470435284256822941502860139692359761218138085409918346643565903923965208633363231392172355575314530612992679299728587359112132259559257089194308448062222368573648523050724039751307561418663313036323508433064854070862740489813024841872530874314112758499501426163798824243979809120718245904941440977575259089397509722774601494973557329578543366302876872091769628523997610522608751422894972796189202292138251119324187059646387744187660596282395123806456824611345185720811328827007576221044334382611996333561347852882149095155300810330342976668607910481592165644127091774387595704328614799110362712738919186219270466940656275931843454861864333084517771789303527762518855634766581724041726557702488699978539820907828351822262261406934563972277919768965239917223200735552870554423098792026650238843760951441424317377950178724468104217907569345872697020774387261696210255738799384335793940504933468729520235338513202334309989981225903462657780894019642408479757049868938120884910551614605276786381750848904580278622090349705939300953932098607280836477446475627900340611714493084208446162487775513672729041688635888647887240138861651048141124269586753058428434138418546967076638813415322676395497379159500043009116774916809265098105077389822963655714698869845455481230159429450428802399141534900751108625458163225599276063059886100394006546572775806409233095677806887385208617151488496303807308157130581600184898211736512819487889314672335123797138225729865492117827624147888296721718501039435194647092401417808146058573221427186053896501918631960471752204193966756123085650233927708328670943015973243187826605092281530719027214352549052778111827977109192008834340126301712303315158547068867237309584671637375834498339449885379621165607606167979942978337087856550419958007419232124622476185384399105600811922720963657365102478718419790363218120731414164983832751334244450465253005852788042688429038527934706472313070812671479899676450495947038082761516898483364088036897638956660588299025282071174733856082047263691480589644470774873067240715395486926161867435812951167553781855036462983643666467488172596172877575474304106261512093939818110120039878215252201485860970133483474137755379147349583982016036774020572811569772879901823976759910046719502641738128088941038229780985222255422001063411539831981801997889802484247562343174813037604766998578027760937738467043751376656018358819452338247369854122228897381163170946858297706050264755734232081160508000730262719204347937133503454554065248003878340267116546975035688474353098552748368048616392637440346188065447169354257386630789832255153741944146426696739903493756900103746967513596519530350027637013556045107189203603071317364242923698545041492817724240338622727526099178680220329122510047583183955219313292576148362329655724423521259291397693902427207407941716252190638815869730289183450315668886103987274419794749267260018193691145969578310589175469124706919936097671844640014472467760000348965907994854963270487308369402515666826200055617257642667804238050370604752333563335344443495054585715621902411513740455548373460800562263178003993318071019005005654486018052142700304693556594748666154252610779125491700154087926677849627367852205947377188097207080614399173140971539065143324927735862727234918880007083540125094496158752612975622142067948339177910619809074577813421963930582759141605703264277968166325331263784354976211398856639019074012104869023262611840779097097462072731488648917846983647828385340155353759563895810302592295081420597661901649101616086101959213507202051716289903076556345644683312916300823932543994656433625775610676366781387547320599192422139715331606296904287636254354371413597442034036712538729389337681162756205645001084327089204916765008213396684036495002553867005068098166584233750433375836440032434274533134497422907295047594957277730598168128115893696203370576840981306876743068680226763924579539156581614599812489938364187380588800182412455322891402284460549199209899692298143836722456299195388274181147491406241808894656908685152370356227469876725596582662331899267338985411730365062570091555171661744130982699312643800569898833552459460913898430753047591162048436479460850039641341417942274142003864061626818224106586889916100208084891378720903644319219761308006869118178085702932185737173662169445195639004689587534965755670474091182010334403992896844091028253609742022630530199731518559444286769272219162546017442808288424840730364257166213940943038307322096251789490677305885143333883806729726607039080465608244909466635699281428865513095367634760312918003247564689257781931932294983823172937061963536507290781223002103184438527542983313458184836287937058436218061185696394196846658905823799453328096287273262046804978368591594125838632634398609819364050252176328686887741798361478389567469695773819221405301774547177728573791054203513120512136968145182181973697664997064693030522260925300461324087710654908601804440804845982085411370801751728240729826577305829848097158578787687624398364077109157503545266750130088355359151085051707189136289983898413934771975887330489820563093979709217669445466625869948966355904225657992440853750040177473173491421220571030050199067379205546927786091610579019088088431783543657041909294485323861127734337997908866124802417557279473656443102761460673425961591722591133005766746617930358814045727245773615202984801340231940434451818746518482542841815514427982874076264518897164602077581696986396154282444990538712751597235379793970051183046281738756428581525495332847431752036548304137252156880308211684289396533510413388022467343462568903442381217318419650970347187999354682046039114003724160175380936702765599043439811396862169055636559031765163649678991457650400415982207870452948847519621921882211894346085300135550082384638164272084652521255545390075110291017752578641825732086761174971449013892699673574833370708224022987624504162976770976749635459268002298651473348496901371240367224550267527575355771901291184785323080049653658848340673349934572181796051542941915623435180834559182848209867029378264612723863865458634212461245677407652721006744942274568562031990359687674951811607002164769599665313382152427305646364244953688838464413902199515537808422829458297582034889772143827590970309985159275553251459117542608400682131827621726868259755571423457358364284464019979890736785339107160019753936595972418407868564226574592021171804699078199712237902488420532585622421811042196380636073138583082616698941026125001183717436077493535770762200146437350290242023583095762708854345371841242801145666424293014109819570335536299344415254471371049859718124811926837085457713322962403176972335309107993105230803966415273882504446383286602814488624107697778318759606941681964419929931144583255780564551157106479099896872866025635517546434773979959383502894425270689555608384523849733001514062159960826300021632967843009785844419569963027637264786322164314464025516798920076381998828953860534423962782065242512479085423314282804739002172832520457667248250424215468141048123521760702834051024127268401639870770728136073491711143655445699737868460953613048198295104647048742322368049527531844443947025553458331347314719952205194105893366629903267868017516813715026066364419736339257224433507681408828704722242867889503119838350877955855059802049682478005468769801248948926171626377514815273775968280224337447186242653584800570438327707182260399295735682974062973086097765523393933975238668038018217195852573065420967893417369141355373138675569801682440472816981413785502365213458786025060214004378226820864569446712747147875840939414473551859050096253430584336497349552718781850951447095173129363420016566422412909228312405016202452396354762547813290033516557929874394049125228052648292766736078256792469417700916735842106736942279250690548085102201550277988639085777826654086879186348491768623746193312769777821112300248000564902023249781574950828442231984527627894933963235374460979104149555005453952459733607364931257962507141361962747449223575576245473447201015675707983099575259119398541857503757713943985512081740861395209726822831968522415781972087715951770542123169207210942883418284202520571177741348689802967308337304649415208017679611179536248178415298850324897201510345456299032364126260350507169076039097895682785911924659750958380962305017068720021162341342729990792155256664736531881648956628786175979086753372329245113223460772951505049832703315803967502861059778119244418907655032831766176772894555011151461167812576701195124447550052034166602797059375907579006973969700046881339474423038186313638561924016238268481140191014189396099220996969322836847022119114250478093605427190927664997987705312428399578624869341826183995218191135036609704057409850419430165344270926184934245896468708162891407900561472882815801251103412474986046640654954623246319187661166270956005447725086639487068659876535738741351046164231388362612175107580946931912462208211386917092949446770273104074624599081121423546198808637078952345828701858983236019273278075622673033667395033466453303519329575844827080097520133887697576785605531587632453714530746831391780632121429512048787436486902337012596484518737877939714480178223915915610554128759672740303869400834466031004603828964947891027107606787210866411519629902822059499610590004645177872585887436526084610624083641109574444318999217183858102725408226688082241925420125485515721284309321641344703600216408358019999486642790396588776732516688176030113047584708818195674522695275749977585836606017011514673382708731422810291420775420897618892968766169349665730501856678399080735785823529151889317235019417036623363070367419006561449124273617772520545618948805499795362602600127006299287167433917526002019245510321744748210197689565738529782787625852598883034266184342932361658849281290353805721249825996949446649786855232792619735207927157747935536264583084877677266138356872269056671426666703422331445376835433863208946528892187432036793384970143511597540275869287238013420910568471646311330571172012273534280535547427874183352504380447028971228977548240773105201026534833249959695368350224574927699330925665158100924168825040861065975975168554095338223318681530870572199885255233667201539637519704584604855587391933155512437339242173878352496460226445978009614934780777362971449630631249382765609685771727186690090464037476750660386130683688268417884688475584628507998514743652987696216045240120861316906316574715623885861110660702711030531912682521658613013864134855939910098102083438759208180658545513483876468599509851204467059705390361145215779292467421289750522183475747044609633849491539447083526513739111741421788187934561123698269497591167229326044223044031985771832912184364610065551906434836230478510764369041404881904398173765678981837265404154135709650815657298238940212333579502333743657060949982476119500458976736610841324489268453037048915867537523636809926718819805597638952462561303376841711126034817735393729961196261522638908958559828042433587117524373973983157323237999928698984262284050453888875516626114714165209738755247329321094222669054163622547332569880946962476010945043966551930362596730224912479556891791631710954362414140669262881079776729770466905358785732516764026751907258233706583804637757653474526129949508572413978703446989098926110128786426255965722922812931724935821702658917833402226745025169218785476545355125994081492867947268861866742102383051924735145908968269255327870751805538845903377192156518867244785053911157869881355265560210980198677860774124050059355465478652631164494581421841594941864524755998496282851111957025784602443490545423894505519567110857912457684918242392477781845219223479878030428307232496500730009072651991265679714998244439198585232147373041596466121173401647407551213276683677390257585440600479176745153351358407965416770950055097995921338355703362758453234845111908482106813433340688934573375900818971138995635956052824440746916099009019892817913481691025164756932952025812582938506613773553363904675970477490021345028864267763153862090716709898756289992139663623939063451408287262161443037137234109420645918603031508667473127406373006060213398762668547711756975048975127275398085436823534551802599431608448809663241838357407166628201834332747730673269282102635534655159839683848666225797471680448253927438873858541360575516131627157016044627311060910953342952191658478080253956188029967378006101743010497445770196251237490079037432063205746252008836405177367241862663680538355103542567666574231843497769460184038099922848495268756499620450956280638094064934303715213790413237749081351624189443003430714711510271511875989140060676578173102780363381742224309298104662370404156028123669573629400484080510813248532729146776720022636316584325637187893619477183702009780802089164817701950232692644608353066105677707595296595191090386749476799369346988971088531126247782453360105528911845802914107485787237173105584974572270410604136270142443184063825371542914869042441438335524590079682371167723383223283575739443579799677458569285261653990821345737820202868722677589144247256257128170889779854020627572142688543034882241981122767650773933020076933540687862537681850831487197239916617659707701016346314704510728302270330884070238733693901982950231306136194885345319691491691128128576909950639857813985706468574317617044384715085204516116357590400639343926816992176477739602796923988676733798989189108157571392573605018826975505705779505907646079056427341649498551197981642748811815839982926404844120604446651071062195771280649685805073099489914084475236494433897197671151238661227536810688729766530961256790832733480194823100364216877413924086474925380350573638564645423183527737059033613895043382756197749275398629551112694896774954739187902847981394884631997275855617821151816324414450418257672981793089005578077396558782030956095035988112028206116465819259360453212879512643206213924929333128856655962640290312522330810339034908859795588661983158747305269121821317219306399586985170942845765396948776977539155327068899552750673868376430040871965139579018144024475806321375627777360636029499090918612823736204863000760349408137729727964469124691140338563782424039816300090319595183664236277487508470738387527486011264341335457434004660133615156767556157878245726816517302116844094691812184415490763274895639315789456575309350803306087276896859776030579087293593210930613367746765862452293074664228086846372815479815909999807479511904209650903190538374729190098553801179079749275305330969028241285477186285316473455812371293473790605213805089801676131190281602817119820197441547950432365461126133569252874359014487879853144943938939235077692681438680693805670671045631693111044548312036516971632524397229166630714216100869784781994482534473614558919267479745322301054582297599694863259677038670497752567771363369507715526349451207281451563831206426343465377349622294884768314316545674402810576105169135076948586697834529196983015710469222160636258087662518577905195614521312885984843260378616579334858423518792570103555804943176151682469658513876765322290475804915891473223429849462802235475141088358562407167475040885615393992674162692368693889456399672139013333426065301447210339348633451393260509357812161614471622280922385723794061176144824989576738619900404355096543884220823714476437764291935017206311707340000606537289480344941274930280019076191132384120408655324663532683565442152682178592720991572025263086797989286491310877514547610854331658302146639739785458024069026791483387273182772162427834277344377797314752797081056704175288087287117117785076040221926206459032650347839671238048713108027543488764974284791018653111024693641936867338361959464953362770779514941498621085693122239546550042787303885351813908182577364333542590721334833798397955645024562803805100608461351545933418916715838621561076597361961930469773827820314246627624908244164804805427874836397731860818110022466758815763869549413748655264888752822089464255620559669287139658683658005146228200989320439187705407858092533525471100423413118335490487691618146939647294633859362923152877562877272991633337821150164336893008693500542838195339574660681754896316780261094701872328264409387608102851144835432499444198290388053068694694869870746994689171760050582077931263413175764884778661820550868933556438503529054949338976881409062411163006152243976326593406175525951372386571650882944726734391505697703953561951833791682134738610791464087193430235972572209660072590062152226066409889181606844058023477418160724307886987637934342354926442733088255717176779599361861234096254580977021795607851408955131204607277737741278994280351628627819520799498498251137742632258327780778877506552283866112329237579947894172084983884216399633231122323817642210074498599965136067549001793623681971127680824222591202081153700692739813354437660310075322428827654858622575040082081927945629649276694989694212573274516988366961024709811471964852461107424724377229084926529718171540157199642806647510956146080052507960580807413586222935824328353327209544820215712560495761682232505882604001321477096501594411192276406258508711067040053271666608511165479621173765388392168469387666646648062088251969271715887084552250145419009069909580483525650563085685383824775221782996890120435339471100754235147307974109890972044073370312164744400551231704747671857373240333641649850350271532080223741646023910705075997554665578147445935829034173372935593734471050613457274790212485260831743756206913732143039286582426521457969446103598300852788169027120368195558394980194785169146988442753034028566642939992524668250387321118072299557777889693272406878795267585529521056093870478303777318396166222195487359623808596941514332277145481026080812069568353130585569237857535726011442438656550812451005773855242469594147552349530628976870640799160605928566568945551560211650758409500123029791303293419222686421586378807727697575065991211875358537071173245258887583490132390169719395393943396591820740370907232546010548958549933043162329486723402771028121700312959478252065573012729958018002578058526284850640408957290080915391831032841739669472468763553834620002748766509793772555938193496931835651925258318546291972399672260705568090459456052343643501659343152840779632213914778261598828492764456188985402806078974298432612893680039510099927973356462314096922848019714619023080356825406798019146392218682297394343743959270387367553016873535817058188824232247340000405040856321251878932540673246122037132114523846120602261536639322949443017593965304414161893977656455754976440781579230263856964482535764237905132998844639290568479518935380663282953316867337929984671730706402774943046052438380916036362441601459765534371282329469444116121083192636011101327332805045830673573168761724258444058650753216119735690141951595537611268979721594130132311498046731797452257358562318443154981191638402048103963511013785246230680431544606147416273917927434238772839977944242686025160218823839129048372059050178440005460395606368183017739599507130664781395255935839282214073035984016987714187469537644515951453943379940385379829646908429901145771690317709686043505060563825384916125796065655002292827106677963770376502968375659733352105933538092317910114767486864407501960945818962630244277877634595910502950259376657329489344931314988216010380021798496301856017853107358500799126604509379115735725121326694317363354260390939075704327246975211309090659281722451379781675219041735308048694952138326571544860471728806558790107431598944872793659182701047282621798998363864274623175796796280264187680279192329445021769772492652772868117809039641624678006632093752654619382152289135039094717309237292962994564813758627213860134893320198479300222365694310694082012619082314114293179770681397246931429115929406125002070439122488823206873848583744649495259450064523130908575229545362346997916627858782369342667422126165901119821569430037378412032466880499395371381361033197429743384441151264245219318790521093298585054287649998351150334138993073425123542074991863686137129634348452422632073087588729404841289565709008366058862444747377007674940422486814602798797534957521191245899003310532995651084335955409594746595464685815756015522325551813652809694453957781352843372027149726815128238723472618399846809610008485404758251779705211039787596240931643496509679597479941077933564208391959127561967327050347031001272285179196880863717249858828828765214196506562206716384287054848496543613038336707227983463360606992898992231726014071013079796267667043737557208824393750155584743784575905422578670695780480137287120484155788426213033801081304430539559470680519768287187182541632207234715674464538196695141674512317084591344485944585269171159098359086794952893971442404810156596683430205244343172470973999681786529700437284257474927193844139385539840864649938675830927279968090348481506668273129276861064026209843792398230253602238663254549460835807786904251987810334022806203074951439989376159808975509016250006503646015818242521263925530444783900330124008852302283003527022836208427688681272886669935757850542595444858716001003624211879640810850550024246881292455395029599860254282157199001070914019284642504564158659347211439141935574706192532405746079864793858670165014040080055131812274038659527692975347101756765909450173940940098580830406689014893045358319119038086191109648870809306851250228539010211453185380503119979942424735126332457053300242482261980587767981983286731617591527542328744462430297023710014646852339229371236446256421470780120677555628533662332887161349926730920749723308497827521033244010057493325406510495636106824981941600167295596736107087021130762455971989840758299634924804959730068615134388735636200948235503841562365888914570244389497213417634892206510612396330531472138031044708377870144959339114518844431839616017517772978137918240902840210169983920636980374520795269884220969818272917140516419595457937763084747333123627148710922115227203381844239535646306023861946879890954018690999570728716877864463671190977607738135622524426660302143128060092304534544332496775839394517679952294554029214688278732583579817901880545754429303253920051865385084963676563334430463281535878348692416583677152070896346703525868359666577683564729062628017440280376375932501015634297670573984019146118718681457703690687175063943987679321589378766301104413973282700351215830466008000614858098398055897073780428453802582693186615030755285570752407181916740362816412294953841779704767403766461140107102721415063737892486188921136332292751837802493737203703623643576127402481746469178000107436022271455836307874908215367786727385194536799857689576152930952039761771624936647876168613521440097251660276928797043840630801030035476309907903160211907607051810187261609674674758288321022063090680658190825745496435556293201858505091053900093469624479467332831874003050780110073015562956495142370084404858298328053205613022685818889430212174232505801027195311633612661932842821119075246769578569466483125506945343460573893622813681738926237193455199336936736758109849943976891735016448202065413287418401509402821890612420298557135340722131035988703498716944699824378531437920865957716304028377423630267638289813641448384829187176176074607452293929414272610298245834846098658990014141523108711769710121462845688526092758426311683649705225359216211136036467646695295201244784741054739106321306944752353847818761175140478238107589005373958066841428600906107885719128194015729608807073247136769781545606929139904658533552178808725589536362789080593506715313653050321938420082692018010737450647968915637280557993447489625660460458153893436944576221840785975341889027143475098835559958192160133076969557631810548330795111659958737547373260454586170120304735589207614173592279983306883806843307102651331649012890364780905965359334966758715171648367990645493312020506048588714347502443239079592251955180452869525211792799941977254384158504220726455489237287788359219750123421791020382661676236228091178912738474646997298528567944239531240309617474134012117142660704446731009264473134173353370009684117340522030448465271760921501093523146312660153599120044986601665689583193610867747677004322862918349532619365502884943004175433665487528691744428630741230664900835675357123633851212454904036242765976306908730790426315518033405805948459604365742648597450563661207151231817217880588913267614518467863090659206337206408624168259423637489299863717964211586282805245460549080325194024599855992468605369519211858648719987563680173127631974211146261571453217998979150245877713214053658911073319280847621525813418692622988187060434280925991144106606347120923865346475270991924416659814135164685055444720735973613590003145252054580110421831107218162559982952180793383414351645732586046873701425062310168182508492285813086452480111633725958858282906348721781284316446605750452709211157628514570411272785197021354256336532847856430375239448283168811031049453648413601769741929204395747616461799399205362700430995328404920840729652359323121988706510385432184400267006118766956367067032092046788098759063333454470704521089271622342351774679671433415494333122383277789247458738991489500598623420731124633838661614938366296258268351274193461195560841536048442144814281763378796485022808567958798759284303639944438135045354670248128286806564948331655374027271326091285520867379447848441284615162346314638053581163049884096451746581098279456600458390594218941193061316967564494324370029236917620685479517386164441999935521182655574634188693631499473187025319302080966013723140840751957249482239559485003733654887800693975178405168145560513465483532950741905777771356461906838619158883036199956516162561808194602661877773843489346753333467557542359828052334777688410970947443180130760550055384580854013339294291326228944927919448671062969709481102351735093460099705646733438367625013104824479410426583378999932805665569170221420726045042666934487300355883956543650153944498754688243775904134099583668310234004241680517634394581842470658333230511358943658632301950054001869921320871839600147319854996125614794562078067347529993879103026783380990329167870606101175433653438897844664052676992805901404963465642653916784691710377867639494386533957787097731945202009978952356656711382154624792938394750686349182557946534361490652164836054536558602731165333109160243050069283909187370462754170273177225063657807571390210315918600704035662462089324428168572210385302489027803285926517664318597817286678214337358146726547000301134560696223375972202785779681214404328989314549035366240129506126988407404800752816691757375952173619124875351502700943796472688261932007140311719441335846744741077443146129065964948038007042578725595869262614047372168822527960139245539367775163299999407458905829847510633559021532850750665701722953062779653646666464766270542915861977303734557094016694571144617694225308458495900818099109629798232439468900500963940470455385092423954431822739644073481610444203435225510455246291399374007913699133386144183945087866577867116806061172525500174350144850162235354713365577496687772302384264091324077772305980600983905423539601952451082057255969688503268220002044249857101522789642125980063384958727339454715218273773680372419295863984344632803136054599440011052625023618265678582290328778004728725678751909978924897244853829596605455960347984870762316186620656074636121358344983713154013160605229749230607554462152092081314634603810796917999731331977265760383521639952366665017254357094611985274202187247232350691928255090811082787649871687112278535916432373505423210393693846363388320567412467843148091554919294945378729798568077353357760567277970665317441599662258246669319861366441590722812934898814674161267553450182935761335260413754593694010038563575630771380303316407715965336271137542623025715323872721871324180024343242595870148106167106214490559546502404402904076610160394023455388055280823101799445318489561822150900900581811328122315290834730330786710213429143214554292079134442480073159104509688233932506993082966808421447779064103461268186202296697862604493299407390099531741267387954908044097964504142700891567185672129792933876759635742909555617200936578899714917075777402192594057508766634065819492187657735582496790506495439705965513066492566591216306072103348280456049955378225614223686833436631121279591357645358954364226915452080136475304231605205176120163147985389043161863418375041283736481818306982504411709246157081056334745981686010096940115529510145800627085217981471691600355231835940974743195675204565645506201183096805098695273448877528642910549142661283748582994233421173127683440956673892031383140467833555861810173501538307155039993514318574421187970334505062485560834364889247817804543054958065681365703347351380519045968255233069792288453605841586744685123986660325284096197354580075663695411156935409142002593517930778795549622761862400488713205460244071292991294303153072517363331002436324471195731730765920454061317990552388831709252280453771221433109071130890222604607432826732641974384296764262798305842359338526067676798294284580982232684397398104270719652184917112826581774774694543848956084506632268912854351195490485072136779620553210704550990441699642852945059658930786773673725238522648277431989407618684764156310254215365093651469521562105651512682670058477712705771362441756925736031901256426089723398934880930295684097203623580756986207898415696877803636959422609185135692909481309545334109971534103002394850711866592661375691980466948298461966218889994498622378448579114660079406217794618698317602260772042931440070513886333639973577561502978958407751274443327517798056446209513522892324924392757868233913009863942880158418619315204365285498032235125249132471445509108913875575487532069680056799513687266408317185283478539661101463495534370720863331535550364262174356034934164465826642744295252390417125427342355895390340184255346763462377687078435950535302854773205162394327828048395836446945261795031054017262938591857952532015524690126564567810446772649118391862623587841460972508891069297799948263878885169682289916196875363886675445572034683088261211524844969699798169702602670274659195704468680429385129095888711704563452612431175010299052561362109952750732545490742537152938399463592001628450807421888766378628319461966742351215685386120407777545369912827772838037870541081905897864588494501785119635695762656565853476742732738228267770531679128449097183204612280525252251009751201560532114548062398729513692469196713419910460982621303637520369754957740607661516307123681217209759877944083023935153976764100909461634394093104665452651419632239980402068385589049558350167957590548086162835296346292476928036921630207974247585727182698910786177912821572606321639893900106059896655216291314344598831878492509783586115315064457651854420319237258326163643859700589255957137222817866974111438858617344566901252491017245642176514736104145786066133663315122040179942602445900886097365955128129281859933046259734104190808694197082553242807585791695148222183052923130636903073026529887486320884537885980206673340396180855890462047925501314545235599141763371670310543992557331780291832275212038257553989623888458744757126787365937439986105696942155988622191168596524861125954083196585264966083237675863849532472672080280872583103771953408659584301016473610957514097259641018260554288913555103705790356887672275251676014919728347121345552770035610196427341154819497238698496182485118894550836020258239762574830126184744842810443329651163697164169467881913828507955304891213706089776854125263308736577071370437442035883987798617731821864071728223007711189774256939736705123843080461517262909284391861959669757918972769125797871897354280309002266653571992895465349470566565060456336364746109395751115209051073144433884947782432147213317569631613729922030918657939210410067255098291111397997919980510099764425844652001723758991096876580789789842014810816671795174382504036034767205335523821740702293492441095679253305206224296794841785968985671820604222388693368687385281290504427650202859455171774038861725295304908422438118573779875089811510404934494412506923956451082950030416205089499756828250595672271930193365586223497742510875050314127884650218857863920444398546375852621446598884105243560142876845598843831828072883578913795559241122086513158537860438184162430659564385260939114247995903020645928558825691802146126976208016069475031030699821561872463868248649827018712544643258123913176706568072409974540933521327887187086114503485389320089705605157868758305419807561869945509129535777821046967712330291634079070602004997504605407262633643554618912504152037931652719198698758141477014570259549274399121285494690901248747805030153516886961234636640264328017189166230930555752002987867363821116162943869038737391733528863305754706885639715469858842618578660472808583045760832504627408250043232046075790384088630262587543693697636867057891010973641817806175186740610473645882748261597128641200963176152738488468964636752740113281532713219699354653403933628091366088582205296850057374860715289737714442069740169601808456630926927085342857708128484905346029622232273447108324505654688042094715529610227901558324260205057189305324899849844923503136897039246625957412529585985827502949337676400788030121329707088367936609454796494125382408244907238813406939944764323989331007342271292779032687426710538948216795018723193023862477809836070100172685425053347380084379768869873614318347805910178579888475086486539632004414719257793061622172369473586821102642418220267450695479203439374162040884486733854949127647868263734197703717026077732961093045602723759973476291000293744601123705425757733353088060569182725701291340232204535360124574233499181280504749500060489836956035273398443118383730185936126782682387747791616977938638656023753224335961431930034027021105634642937445953020748805481010085986675211146068412640267005963820116460468581943413916798284644765747265362710090542670597803972143097935948604306151254198171471937028052866122710206398534285319534117320856924367855039595519291801129392562197725234922770517597726782937762657306947057497812070552537779539690828621135540034439586292454988172377800593868725960055748428047981835483722585841616343893133747524521637562485983738611859306596631163599406488350975344172452881344539291918103971066212528144737251424643595581121901576077592703935379183366259270581740067414106743522031825041342575049072948764100405156499922219796976469373759139464563149686480329965416754922546844879209783227133552036997611388918269916651882050014311704841386200790824034346421713831991142364599787438266407770080381779306863023311441061602740188611807630158731528379762193171127035325954188623178820693833067688106537119000898957637967152279314886391258176458671118798561969410166854679742695187611142372989065633732024401597240445636238496242688805123051773806193040897779912488701009312958711637344961005530429030869570380702994869677878327298682281668410776173423919060853526959309261359001264326047859851535138789299903496434186730865260573241008043576624706166264462667810416170354929920884773206038059989371844802711904702821222720142076479032370208111162117422828959845851535927729603495236724738307376791224890374391935911901276745258757585784880148202773545817765251423345042343725465902065645654425367824430122217652930049030749257115853101067850824510911201793635471014225033015696878306898718528197671867216337330547340427746768684632595725410826842989564512146250720809872874600219177063224081298818987780417680653697224813601830454941362050542524156550127043087351266998487867448953122325869466298006707205041560432798218847908242344514063795178071110202482199447670386144120828281229018050314666838614281646213181493968629229139894458335495768450481734004618670602529351087272265497376213801142393814470604929399679723656951861971029132034656832281520106766909931632935412973406656292815870543434069701333250713066061578194551650434000092726636443750076138094293903259113574317492075013731455284783341275955742826039282794476102923002164250625119936283430634461004786083903803253996908129811560943976857197664318530676375891356911319483200356514347105878693782397600845325564763495333184317018368200448777465667296186470481705483988482174468949838324390130347966032958752520711671024022749776441991546940342946928299787556265018872977915088508096640007976015266101363202399827501483400001562804339441262236556515699375831050608997057447235286149208911814670942622763300422190983397602454282321192325204738962279942591535459907154873304013554273366138698855518786218230260696189994560518998478556398294536573249906788978694462839781345776648318859317763337530212607673095797816020756857017393863084891759221718837523948204847787674587739597808395049507136887179673558317751140557644304716094627823027238935951010519929766273238525457285789606381620198721321395093858999887074591166919747370571803593747841115818694704805160474666940171031983514600460094575883703268258455046655655846896941291399193179120335719407959084838125626995935478839951890471626826126530310174354674732004162132986420010371015215967974782706281455644026258885203123068749602250426082128416659235848780000136784288963918963513103817700092343076728270623434357708551164332884674339314450493434792812094958323222016557593941443236238501352931180550575235263769657599635621787445115753756925915772568343878878785842356411067252880989788861303103524582077346422448657331410778614522870106067433420071992330875894448782063027141654323288404552730396774788501446871480196043519426417732558360114895497462407899464243845258408476833928223075348222351824578893634051184668571746119833836139972428611490144113268732050104272695591013538200182616483232316712797369002246631523267254707893623153448125118281548579604765533467746192940517720031616594588614879077078860628152776245083596843729010726525964213118005988922254745082863932138686799926238121287500160870754280060503945296698569778567902632129728342301894873806774781284671056076258858177791759395091918703465780945377118761938961903526383407742502665708949623013013820914118183713019164367131489726956561359386895551705869348668439581596237433972865322490817426022983438617251830854603448549364070169699923353818990945422414042145576534225085294665313768847008871785246963185612062450144059641265601599190475916278013207873666819988824565848482475793808277531338612751962739360663567583029391157435854331569532439103815770543940839484362139891068953181563605348846856312903548169140153115724440423099071679227071958035317484398875649106505697971861304590627867259489038746440084437943283127378833651695383311066197017397912930005150111691597889830447367801512248765178299834745099125042834564632098942770136738252704398231767035007047470684235084842118261637667976995376998947738222421504845428248501689222061957322662516731755715791448098631141823519513243241425010075825806497968268416571389919517240967915934376954424599921647676360154207945277683570414015779237287544398423602919181793315304101270312732243858596694058957786384529968000185304211414183051531716369238037181626871752481498933820768992966338756924618379280615950621385480126078020927374375140618974493861933027564750528623843801352202625106490037291638262098515412329562117395857113506697716581661881442894056585956099027743244888591035628781291263697502063912216926757471255825594124446892845010291416177669840326375185593551891126304278934838638265932818380856438852996124431668728341482993033360028188683027119118324003682973123093271477683886473446833586890968476398059245468734560232201932500219167112840263558342952348753697649218700378438984507906493180625943214220179596273792027424304710043328862243825047687191996689384090291205258167158304295981583254104782249863592140867176484743928033473592546568917200312483156513546934660456565258550045517192811711780408671817538069950734205834799875404203056130125110191910345473757266692686097010072773777940808912532330653609561379742244482144631482225702988413935788639465503054898557433201659722949723755933115833629805096288165493044607939582050049838486316355135033187153543946422575785448780890206768233597796682991385834100111052031069352020597436247872003446054164829263360220531827948392579651020463611353772269151650379724036727430927703153140584861294408877874627834343242624116298774429882071348906709843899428458987330543877221063368270159809997090435450134341342804280704401370783086926865500830660210766018939366294348378765647944454907886056563225280910899693775016445268134625171246096313284550590556651725472860908028234063641131216530523574442209217190587263435996445388631816244749964510340297152004476260562564680947371718810600187031179679774524820867433421220330884556780984707332409414172641478062559847451610729616008016339262707373118379634708983639836011172441789008991185423095079498479293065250370099931456570285303174758382409845681814880384594053107595640498347335600716104252337407393431824732205724379495617031985091146795847637324861206342872594901626760956457600747304913405253130145899512545577079222891757617555087974725560853478023954277607868603381955112789049488558299955744243856196841538983393187280432009329919186929043905696818338863220841903155642331888126083645677255354488796487051304801220285277200283725150638726883142400319033541850539905581330064608681737813232087649944363254666913657019253457619533325098607380809924333506423399956709107447307569528497001130569428692287229189703523131369665867861071047727612493610293544719948544288318959945631113988568712219628970847459936592394555630849293376366758618412005803094407817892019189832502180057950119109017159080522173244010499308977951043565842814324352628587781564343907715097276980645995666179447732329601829099382408056348190829953292351007414809530558692984707461565833584654784198876075000383354480861768809207971522529986832359460983738392131344394398972379669853455342342983906645399585172266474690534427396101037036138499459335059772067729658601104954785293052195953137958670596788997730933164539423597118337483801456544560282436363878286036869992448395287550041179929626942546743621603793468420763308923915874320520775547707380853805092482314986267658207028986907432434426883404199642775625502449687059332850046834444177493493651725325723004517963871137746397154608876073597939667953085634194461498947626107973743782328287872071065015031290188355106715251153788232709957701321435474703254233788889119744620903710497989195192050439050228246105725867854734258133198711436037880521302276475200522828258490927488559958431008778160059444652307581000421676227941158158006196245656963617392762964089946096588907305049966502849253114663411566526190280314317174219316530924824584482239453550855465595436314566793103191401841601690865943775970395404053707419098289176560467636758629081169630657635110103849679830321377572854626377119231882141012269707599852533474653917411548520663402353096003978627662807976853483689823348736513409310688761387645979972422511723268477144070682269738557008814500771260178896713942658478333606584746949629955421969296141090427587757243738283548745622271941503811489974548929407608675516833760133154840633003651524879228846480230105642636358453579861682167686495145931516711580644543107324447245510916233895056973639567459571627356421105012494691825075000699301924778831101037976603271898155493520404660401540093684386543818018838778078342766859396196169005513701325733317393941193345197532366920266589542930639096350472233043162372699420776233243460712486423266604802392216623852952084537126354694726489098731103815718545907539035366874353602609423379318571910291240717012130294058687327309343045245528230699961465365226135465837680178734045025702593148199496902954126960096096102350905598610280684731335307953554755089740248587081343435643915078013591121045408826761667433820195164450372193840773016713653274853561087983186263354622641443695423376274178213629659135575375376839896940363467899801670976333825787544766982497634422336489427531083599550599507178514308766395034351806506912146045899876382245932401582429253627753873867393060049942564024504192980801484638324887591159286477525497369751836193978725732033286459058687008823879955148953489487070871062195632047067588847855714397149570286567524053931006409845596135822583926598704487559456308365812028248496737707279623880615850298713916955493728392724993507679457458224542711557279514040989607892945268336855351944936995351130941508008318181426210090288984243691185537644106743995418070228462662685182112758334202347387290864125488890603542373097664460212788177970525427191572562304382379710550354961028782917899952878949355148647906715881393080166447511244603510199543594876965050582600618357585217508318863750194174898070307708222290768827669225016147762578945257357794540289867174515711355705885068654681663847407683440471311938980388429354004636237425603702926316076176766760364882832414906186364010247542041805339041572542684651207751073711949940388469741989788865353400416989830684915932326412920620534648569261161279798990499712420987411326311266166737937166916444659447148183248038609080241946298533320015094343627578182214156687014057667507663105837435302877818459921338408163832421026777272221811283752507242263702301928061200114112404560336248881155941075945476891622300827409781759636393200243800104431147993348950443950791614326612760192595506233055942071273590144991375111581021270985039340170689975792753868932475707008674874953269207211960467980468346589614537441653269752010677911497312427953486777552746535693034614955161257021233083178605149320860610213883178138800213723871902256623615896167007855844539227242539229722264729496176767297705556434079071578331806768717603504900217438388856092848952689880249082750998896124463422276170495897198295299862238303150193993749289701686612984993535599270244071997108676025793371915807611251101196011928016295020799288149949810789133924539045736127130140697054018571169897838415020425345160959704764520743308382573352121204002461263191723735022076607751489922006202816627501441025875020935132226382550529302567807927542493882378097813409103926073717416925963243376321782405787305900086551149676778904505580217787437365281415861741855037495060001900498870474194049990074101613546817715506636255034052004209108365045064327103653011056037379402598494040436584458490199833499041635039849346476509236321997491095006811041872205990181818488001519952234575135683694779262926106912544671309853850207430399681665740207092543208080460347089573180000815571610457788773415050126986620100216312482859696567692957115983325140628683486429488502889102680253750497619890860640901140361016060701092370497407904521794467365349127345679420790905074945451109463693917174158629434512164627387221035722438677711690191377502322032679691798789871020824731916626039185415842519503522206071381795003027019765917596422888594576278424591990682233949320875078512065633803908719061330131159021734512195442657072773862887650762838413623993578665160024374548645473233486672667520564025395037645224581850891779645840968820584328686389316280872656573739933112154828463943003086085390317222126158097601102025476890527948936887810268977686917579977452189475971863583233448926626029707402588466134484497824699399269616485396273659558410628340590773383891270865736681085825198949256482115019636696197902637415670438412218971773675847082919585764359990171216698513296577229129486361488038557470727586624171985500261247412810504453586033898603602173778145067808146576245876561325403728924207229224796760895694074693324595837515155393388923888823546593295552466741611897814189748132490266216952813940772268850251556351657631605822391671610154873990827831991480734594004645543776855418454751604996705670163855538831446653580478285476794484234166936645758620026738260792870291162293669339593031454419991768120634013124931478614837315144462796324248181002826225272091110332403704571998368158522062001162883380680575624695073722013291431044837333435463962194920451713912834177040689588967316436193631730976242494537619537305110141579870569812645320062859979928701297130784100696476694053303608046227492256027742851742984917785362891284110901226473114297313195546014611927907493669883472714455776064928825222673326848131573915377823008929102190091211221348760645604807958270322314086396529995000858669361046268714510370859900650457199581269143558052699881471206131394023382143908241753970032519889022584181353051106335924140979307988977172460309475583946549695643723709892908173256963626282150575906246711519826713591691433342038074691650374539132227179943494577889003367001591718288003241812657354397316719619968324867654281498195641379148569557002530805606728955196943712771286005156359717877088293567701069025418935895496142080587942905196393299268167952550348719136118830084455547497676287446754086389067796299319956922295770902030156525115861043244093632330030896654248961385739134719119524553408172816408191077882682948204684779802690235835417890461338444076097806576972926978519053568088961573812825442956808500182262420522800618381825183814473251883351865267388139427642570029984492922751758042431834282910846631706480939686375423652298405350178876588742988899728884732814035053192289058464388476213735765480705410714175771630286417543697710213298187893362457030887134493002682450585950197902961520493556503100907473343796276215500784880707774873270690057189501470266551142175438576857152361465231279155736475677365175088717309966419428767432049377847914843412712985554901912784629737294656407723915049691291917530107208808872795096054880667484636529227185926072228450920347411750942154417533811285196742432662672508414337255942486043161984841947014059302492979383047584617583059881855512055088729901967690820138929575861878714905419901233143545801732492498487017106866537530889715086509036861554453335488547185442419452564877174422825611221991253746616892245854920491674570981418671755266944579534656504265085197467393401334267313837484567007848157765300952480081859114986197360092912649657557197115571518859969058104950231870153494072101977666773933025277350877738181459276266064577863559311896199169542544498985001882909792712346721620144073068188305808445351202430951094180910196864164704275075435312304155947575098414131483695928418589261963733902464186503300057914411129555653357119351155023327146379546141531652392466790536688177376634961310884531697629878154307369191060790582378616073685393813184488864647051519188671215151927220113058450928958810672996498601152089048276963746835188149461180466654857768358330563846432057292473594798023802705271611330491577497092977197602240228156427024567255872903031797566694369035441886995313407879852625901701529198485146271140504452687464296036589136143363990907633042476492981041646724219385808223545156285909090321267356621830808348530735387926729023657332317605297888647689663207913592372685692142765424297672047423983927655856772733239898797378613909062530021178624254796042793529651527567109125343587581560898833960093449699401980949758727309905990539411233408751035325528689430567496399587571261341446397367598963034231428955837277344639766032489894029269189564227446903368486790113945042772625128127122377460287695494245050384843622678413934175568128238428426680342896893978779124332628278219069198938500070850770191128926865440206811894960791253911903028557542536733687254332823279105436106440876471820881400362421205049924366644035168971003881333644132588822481553516915765980608694020761292556367485082828375994358165082329749479478356761436726033757365418216814778554196052248048842077936359083670142074416696676940338188454615375462574494667382814078450691319807077464979218582964110086952928223638683664068540160300453510574779966949248304915378755376416631894614259147922202430668237962253491601377752254983636840273253413460378847143278340761367165973570937644141975675335729214815608301593972001859690794991610818987270133618822222433253794409646783188504898416488608231325454731484702394028970755184770647198308856099232070785229208790810373744452361627817213994608741820728882884998983156381885590930376428634238710684371893240757983367009981044997976891357114365604557989651587243341184370950011609423329464975351414493975574408263747251003629670130042978256587916676295031543691049074712085153166993302007468009797395392958084802327177523243639252107431008418808831904882464409415428074717034537850782956997823744041367576408055895156481295960220107705173204159462443023817421171812431620870963040817413732160794693546996832960717485118138300675005906550084399624240340296462077736625905451111130456108955166332067705912970610619836515063194022797239325896330542587370842436107585509239850251784777296024245002856185549843952671052485340374304471767010540949012274646280411042669489191480126391546005592975620798102068643652115335115537543220289431070103079564906025133619908937214742556813618346349319712621027735588940543106302942120903432353098408372345448229820931461208538550701691069604888088839979039466436391207268525979113461170550635969004313456679908480471788216641682885490611086245672098490265659605259267616965007038883336744773619816273381411739368948627862233075929795501518515031937599764890271468144558531746291427061849655961825048426205938699901772587172391192908245120298687314876261638942797019090425985247331059777162775675769943604543471172179625118834950756396020720641294339803315440373702142494691839335904363943283524989010400129361850788706342403720353326784401424260486947541714541345252677660716482866468708378394795525751494455868316174879631079864364751742290990733821858841323032430350680600430260401832172821279311136636016670957496943318772588817106881299834455785059227530498231713459654125186055005021306130227984364026608780230318223257643909859582544068668694986593053872645209433360411733547447802328936481085988548627509820990093069886512621296187081707951076814749727788921895592032919064396703000505526495755340602593065813199795736121371201783774929288043651470698964729954079828642996138275630762346156010194287500209330943136960198752107584584835592763053488626248900612807247252508419526304367066516192567095469421308584473812289383123218480447425247721595186003401525093608061616276142326455157918293048403606071078710627617431354147365351181791188196038047384899779206162843609564462332042514001910808820060824488529968220174675581528630056828669265180783580496946965887109087676299929334497594841048907476013054589529060975291581157370081983718139554073061987822035731878756468730531057756261364590052655521949560130840762455924856888225712175405506965221057967573217391351839579718766030408104114791609066704149577055819644499457020180751591653612353755520193581236233160324018842097163481197544105114472294245804369057044098973950173000782328191590995765944461155847997363886337104333873267452008872513629494384070087832792040502912374996133943181281488593780117409596574420347064774889130511674723169391297749794670260552359801096536947397828863262568105139783503822704682035078842866167847635336439939799391843906278520537134043705593222999048627590803268440630564016291073102316589317930653120738461648892511868344239969722062285411121007119180389410206434760138454897333456378549832616600561168758436190461961971779690292083102974816680487768271390942061464810839915131147422307180417041580906736949270630787993051978835255677638452326541538705928224901093469590141713550952994537565104073070569884509495626557834482439180957545355796274806113100902786521941583395081912989764572596429460345283829986654857256582313491374821239715439177494002084292948907221386213642868548789106710949216480603574685204800280183432087865098627608739603249318216286745829771807848559994340833165626388066305143836206650162978075545006971245413346861181625351334475328645447951543890409021330514107659762991810677365119896417299601696106696862266595744889265478837075873166956318236466586623959954832979057060533395143712829092371146693910290084554834651920319979978186371891826797131339038217990486132849456696882412581684388479362928520236294898668809063547538816378846119744369799104775178585958379283064072063047716721725914574846636702096740500645818540751117520295671998443558334922336962931819711580264696395780219337293097469290940540168185198256871598444882094510353761374977954293879430595202883752917871151127567453022387433153475479289100548521702507478073366561373988993042513827017897615730792776965734594898781458640886637577786649781098230954472733890036255455660159858747755434862591208375282344079288232627809027502125359237162482157189118518832706720406409969656514345176091545093123549437630364023128717784996111415857317249534004514661781568474366009444721253394144782689618465152478112403410216381923873374733382492426277074378562720556677397864901851886084721108491989370534185392347949992632481532551881731098752806515471455391136008309193785912032745221265455737664175798223834436079155351769821136257988207552843077199397559713416216967707221423262918335227693186680134312241191042134125200511883803718530741289972638485417481490148032984244656305042475988860950660025689033817811817845498161249107233032347802612147630131361879964671188726099577929298262162502921608171427921763808912898915657085009064658575387347629495028914988312869613059170403743566963609012437338250495462604735536455455108373783037777845885743761531788425289572425780844409912103798973718294163850003663642530653787659147750333267812145329733076156423297209738438154769340727547652991291567572118591778637554829010597633537209463715386085490620575914807009804709432907426334892681176925164545653197328521524159655122648321181168576954103346864984648891477850891394428730819114938267992044217587354574958048049881275691459216719063711769199422210986513039484632092271778284004763961204353448903720554058849476736438577971100614745896777518185427036140440877540243740135180271569974947414238545131067141880282676310543033616194643675976796222061293496324865168801901879556315557974536281951363497977983203454618644629287298266578675732675468973847915838935550186068001261771598250668345249153673563859529641837639475542219388486633951961867883309031626218724476928858760525183909856495006522002462084432857670114002478572675324625204267564016125867472452725118327351764850524584411774770734910154254166037267222153050929347821952895274390296417589820008840199883638625998862335443097613264860313405217153877058990414244188289998430273497667469015637017633487802898341001845283325040642561875811891062013053503780680734954740156679804853022779271655778937882092337923404279893952183307762300086447073031567596772320822656581610901694467780332225647878326840890481631596874772091241341914604828488426615804725603021315961260303375576200294438190296233671002173309379211285643741019929449724314368494287999113153488488843711794870647328429160939832971829637766355272179921669501880523676431163356933406732024719744974416165234782853434453319912201597994391403119875040558752792734404460016802070656553750987432299845216275651881742059055948378534924041740993901196850967632917360685176131287324197034556379058488454167844198358506937092069978179264095985717169312128742163184311298454245013085752627186135757237354364490362063101096891988943641747866961292521202526992130722785061587886423063974313650933965514928533270362728782675761525848477378776728849770001276909467588708660926717364455049219257016131321960156996092556086509404751084803384560898588338082181776835396415861491192451455953070070342319685364184661462602638293335083890066207135484307428382837278254490912690587780298587688275488230250298483752337497852832931342278042817873210545141841712061488455952102532820483015476910020181753423469155892030467205024914717604834111420786714693241300951027518496253649274839350208164952073300024535192613422341432171860076859630265458328170138284778126534378497797212096650790874304329139191378013274523489565838474656678796174863726010436626789212667914326557339375280961670521279056916591174637576620444004472929051692976559516737643321657130042995435789913507012828441620890974346449730855949977309989094863218783411138496861361357837227351535276306546602642300043520586433588174249783622731864523012374605902844480157919998967453448180374385409830331788524768186623210045934963758797165931892004124079323554192210095168487073694845178768343307906918277610973456068493879955737446730574730403949808538881565451437503526140576722531440560198101080237567972377504449925104950244557887615224448337566362179321986977627002770609048011929465507575721491942809177672369275757231038084090549823618909593168654209245623571785772167618646833330171770731081657205925738353199735796020886808956726480493251452722025272001045952387656692925093171537167917197973311647759984076938605542832310858220597693028716821450127340674989387583077131084282577712593832105948124126627867179507203763285653548977157679973920758501905174549570597153078130253007873238525643502848989316716141096467596611230832580365229694572774100131204317711054296842711834122493022764951892681976355226886528936499965614215287743774237720143547878231996867679767491714644171789344384426125534236525237632241771102346058942110438322172511301497495778284798645557937076358779508018862881573280293673041890992637781285962627254575337754771285518643748176144415376349348520634571759711495171971029508864623312409821133928942697894053438310783969631738722298786898866384113875250080842407759564103406790944763860655118571412976566097963144454905473346992177148924746436003697159861126695687155756082170692655547832111196629406938401123280294965340404931277323990026280117147709099275399160378582596022024817473946822181416005999039721564795962093999820106719192822224749636805514202590878423502560735120438692766445426320528614148126158740915699822179630929054426169992125866659827728801976282481780646342554132896776422451448320102731605046007569346138883583873676428642684978544392248252455304815459507203043534661332473869678339253736701008850077939646515411606746994983923342601831942138008823301227994293340683724053332583449205393818391441035860711219938896609018179994299843960739367456423246073790002662404924218297397030654734287429310607571868059759384027937085731057003026529180819134895230335012434224405909884320613029337723573811486496061762746238695315081905729322636761611491287744697670041837113639177095364123872610374046710028721687084447639961313597992584174496882659873417323226229897749325509755425203255214648272906074894333096152455315308846377925645025243289805380860531261029043909526194598109945271375728655305806697777261204700531125651210421995711797681714439324148653242701956571799900579082283857472778645931671573125937287113615957422425243209312463808276932813695749072304470584778573624918139082223728495249630421009844123877052761083953174506386646835318618050854349249615820988720950851340394665836190182561627240351581031634816719351905845563152759847342014599667911657277569467658202123202572100468016909813258881600741468128724367810441686089640658902933584119257573084380722286031558022623894383237747660608772465097940634110180899712209034297681183460918460409190053717955522938346045950343569674324621702267028500562026125200377962880210826415629906655860304924893122417348120269498779194575610407997869698978768303008371473219948975581116923267300183722191193208520974434932953736296051361043670340753114082844095826066952318332719019011003368405635225807296946977084201713442065864610754733064430509928689864780301427161032043384763787260113637038036689169825744250225075116194080674407130598811341352017822536697739877954899025419635406125714634203838641619963753018896731444746932150686808279439038171949993842492480653676374987041722310872945148451949096732869808784194146616725170491226041635343158191824140788241232843108368127538253682454804397406122023907955407555324987126981151754147121593547284287532513800733235095172844443755541195369963787140365955945441459909829752635042358672391900814416355396793204658451775331266948228289022195721048174662664043455079626076683840640146886005090194242773100835669852245427597234666217455349640913471756074656158221451323712487341267106324587153279797618945172977933450141049511122069853683402264255892987278476830585565765041718872490297709675981983663159103660371645062250156836928757344696235367693411374753114247433342855224765156991340276121601776035351186817947761414907402726473140430246075497974840407066283981216395309931503225511027029400360443348393595666515674234157523087000282321581487153593414387384903626791244795488587182810301493354252408596799094164940250722052093892479406821878573270105311705994382882597088345474765385103582421273567209387095620713614071380753418809344928441677926879037854344232579583013639084610461787279343247643186331476708500578487348627432006532865550017899103982535918822332136026917891034530809044107102629021178582041621961980870329342438556286937935025946949082643574339896118737644745035513923319588483772208569432753807649183416919582672667281338701241095786124958098457235619737777846254053935316598066105510362425092450168086455586332045944592149283318206904885422204950084638631842549334253522393073688457351223859232045910352238368813935639523566894803218847855311505633650949614818393916221653627605326892419647264184629798185621421728786469385317744179055415065803700979044197394728752655628444288416000367962035468245543110715921420705332245112373402784288242311936517821897847337445438603293774498310325045281896006323934196361680723678666855014262394502811216310163849594680643537338175547595951958357779961057206510883771592511681686261914659794044362534761154192027021097868985705503370161517862484621790169581446488861889313084924467447261671964393799861547556501470690473573098826108463560391268325331507079099122132302388881146482093624825085871501967220953080594392930010667420937734155313478998800328148824503165424096298418173608091189541592539613410767824825817939454798132241333085242701597947510213211553805188730264199301195507000180032896988267208650791571028319467589780632180502929888859813494017058242920439048435003820341262052214787757397393151134306864637529395251699541133466328042168514527935440361974620940415539129521678976957182389250734743549759701420859829909245644414713744187567435923249440286921785162258802269516308695177102545204809432169196662556593487719511279512502080803759900695471446016864497686518225438689353414023316539577799243304974954821487587590123363341382576693851322251824656674089180565121044212619681805767347342641924820175128123258069547295564718706192050395718193094953151564102483050737605939245351189340463965916780280344041192389821232283258114081265219042726378716256938048188489930506923987748099069852388106586405074726810440684217310718665024583748994842301611127748983538544542053904992238934231260529995264411293156558701620181451460616623391210611376062366198559151609112728455101530199959045422001719586680556437482849694459802393933732639050728785529621251448971654051882747006563333176636614430010895017085009374744806064260624571546363150851971747430052954541701012988779367546479615197137319343098255648831316898401700549739614453096683175517893238258198050844865801853895800011207849772580729191945268386304645457648899072902574980138712240324152967155650656113713271403636608149809767906772648813404987550704369039599260199129040082953219288901197868676600351132573809111836314053566875885145730014757860647223765158708255056952544914944299022310138908797615251214956235931458809499595002573013353481463209082786342234581412540944138742377602427829305526616096940199603414381103948147930922388762403675718876560462782759765870180758157511125801404756440168927233410405635761266046062032354608338432438084254387442540851006256359895684201010853280401307269368310905723019338713646455299057449497379994977292971658476418019581128333466094475933246781489434770537903125471096007089309793549457120988946319376385679252168903342865298677151521055663235541558412201352695495567256345238195823030285697057325734790279264335031681938255384050652038153246580307116967654675055357105472365730572509920600486585478566919058161363022751027255036251498255059487382580841012056163168479436153595357234724903117805600738058176133456218256517967242096647057762901187260649844919993446837894925199404020047328498384763849457850920253215771093480227630693416252680704391719187625156742397287982402603193776195981399529332626671894687566317059310647347679504786380103854849001726309974984387957385936515776683955570778502544451669208976939915512276906948990335020422876212603343662819023917394173531140727257292188899302397547162648920460600865492594098397417046239365907723810771836661244821056733339968050777722306636696852641489987767065056940436085758525988590564290864575785296386363254119409922494391723226645181818164077081121754362853866232610831189330534939914664628366721200820236575096006039834787731854041947384367536562387042553820666881586228847931115725095687656115046347296935132132384247328528474943473546118965430674332245590982969992869034035860540680554428457448834755501225930191974074580432997533224046223400602293896173654179896407009265733407696228761388479575780039558016029538568896351829640596458498442529809267800773968538603719473880506880195190221578740842533234949854364688414235163594919490067235529662831202466638021322178560839009483301533040824673061191032661880791473924788039236219444417684323614139245643051400768228379360484318792249463768970171109159868558318771457102360176693427500448043436187184702165757560381786188889083891904674435729364367054206143818593345167807271784853738387890440111528455014600636169324092116546641500697518428967453781038733954778862340201189757104292418268134935482055487650966299005030222001960797121827964277527909496047143034874688118508117271236733563564683424715153146119245088483235669039524131878478139813864876394470906849858113704988003615891009081357877510664791217982980890919478137201361405207553505374532189618172137215073943469147577541302696305750999137394557503662929763406410050391931173552995239416806131455768343668411957253254435123148512635308297756217595984693907723976096927944218147166762159447588462450696810276444461667575915913220297413894651602767432033152133976517383499195134653837756323623498349437537104177109169205043778776402026882398894671817169403130244539479332568788191457588301061734578910910560732789756140430121702682848378367967134658168894856685922052321755117392251599251296415136307550440286580533860882215869490904066875352489962436661716991886778702668811632872387931661877118517989236533586474576345901258367260988271749855866501446341305823179244418409973141626736438682487219675732530002090791821874169575757162973268910686781029865620981207807717040454975152314815794717596809540038794369627381799975015201998648122970771641520899261786126276648291795198498355348760376873284912328357604471226954637239735459658640095155684339842358972703627817230755149163868683447163558215602476994547135106428414092432112024434673210043743898309469705604215604884163722978649918955654261259310960405185389951956332692778207746235850430056377836136135752253686770117055850563076480753366810603928498491199081367061315576029727254477211759781315284411703193981984608026707049842626680832354192172851189106882127418987745463074757062160708510429894036848601458714168123345408984563750333915089126633980151888621713118341649349772413044854998353547385561062787109448554290281527823936644605657606041273983673967723435076418429841810532883986274748104813725086878838082621458884545295538543121758203793965537638120802386523978253927780529329029951132497552365708926598655452872759425527588715716657437793362132645557866412042259855124751586344113944175284779986473196285928402217774549786800346428202933070235729638989277318538871450146563059090816518846406461612252323699138304800504192984470946403514299569780366192390195267028381369255906086116391126106657062228025004733148174332997572743902141580404345891493969920155119552484916765779762360000283077249017750970973824595211803132407558073967200917486530997085507288971509349714583736461024349651579282922510281378613271434821028849040138163190095382002772636443364461294791402495226327660356940964108319254403652894572882851850506359514716624739080607804366642410427123048536210219575680329473361884591899767817679022138560276104781174703386669863335404693713005113953534418972395524936216919390035402396952221439228473518576806009437424731130287211403612276543981603580711225593124919359218942509347614229792185143471835316943878353418947365895335594088460787139110929991287383845481689344971593699190625325688877391079866805066515790863494910857598945033228767936600936591987015271234270413512190699580065829101491102727248203318971879955188117482966353345015025774983689665734054893698532647468226791994323991810499405175764627495045396472237319740200363767598861726702857820011287082956964113786740862610618833781272669759437960063679933858104372698217930576478991671400530177764107773420461889880920572372916702491600035662919902010912758606129790443530439425356473142118199999862548887482959014586726994690665371958976851511599928661248303867542784085660491253244443176010577673685981153656797166945592714534083966266496661551939319856781364230160859801024033000567452826762709832140950468700365786184578063856110253676956590314077131208819485856103947528934922758990831082671344066875676275104768993652599087652819988084426531981297277615845259806857601592122836810762145896593863265032858181602705808105564715076415596580426244410668407261732840553578988707897172023941883065025015183487043421677549125086958002395102999694783330971665609284381871865382407136268066872954255342780868612362178875126780227851072076779663336643008512667434753618652285437618573476241913283446432507661781296403891838703032169606423101144142990585473743463115192548746011765023964336305136166726869102674676506738815855978107522141332215782812398782253420608637236546639362431276760125274499363480536405484768596509538610306414946114099242142467910672645962126592144880009424172544743156460480600234870707270897862963484557619936529766429391625131992884783196820658986616691587932563175064636392659222714599785078389174518474400357467680703583263476844560764125102002112612681132042640087991232598835268077889069441437904757629754644162365797866476517944560263258097785123443464756952248842305055598085976511717525715708196672848593292607286437317610384839432457947452582351800640071698811817947779861980737241184573868778525922492501184825124567750364309044081668687336187981499984540271994900692786485570415852771339761265229914300495921278698205766260028614358394240376036067030312973102198741070042096201359296173220472221865744089675127081746058759624769405644608966928967635933323189300755587776069992056546381185402321125256190617233715921562392394052647053977685450528115901955176405544515685220211838222918397865624548613437029624286532545452897723319554280074163099537154098623620264338233237902107345280931242469227793602323032868475928467737194636989667315901158014392759325888982322605613697433211825394728950722026485760181578305415412587721288789398299468571545489157755689620243031454829197292207756086756510319243196718635326833838255958039014974904506752393222633401189153289063179565184648836715013475985898030225245677848287840988270300684179418861400261781799540185035670992712518004339069803166739833807822635885194208507830535791828986896852376936911471261427135478192135786547939043382932990023328312975756689708223596574430087539318273164000390224365753154466110077607791307729790085470188661852084343321922022486610525926141424405503915438131743908411336693739204775789382639428436049888489145052156471927178096188562764704063257970433653919737099982855163011708152584864639067257839623866132743458737070830507042230129838718828980105673488258697878488204753002419807496514089572924698865328971031567381037159443209978785670200968212357854780301332763762722346687559237120590236156775699106112627378474207918074409994069694302265184470877871731254673069463288216447326490305430973419935582526633590140747074018402854153605281861734451382423271336705144038875774042253144085453879640934232375641211169860184462687156272222266573001395692944388806696527623129383786261090697870254358927590500741052065869158183376661872948953979683776916239657754402514102608302177926781002459547888138609180164291824398546868248380786739431266812641220224192805394251822091915575787109145386530620306687584398276226283974375517435312281115892498770350510278275112952230728870911179043093397435731996556772209165467399653408154300030834985349792845743130199576329434101687476777994339041929658996511184857185566465527906653480603397505537436743798753609865823223387352820295670828034806795170459891486273212399505826533909137963749424426918371648877705756264652323861565174237389604654836646321023963351226438575176119359098482288491387075087999720457495621334759546612694475527391690883350905221590086344039061931796682368307699779840705160294364531900044347692411145771352797914064453685105989378350933727401007053796874968827291350125792764442580090175319343953355479910741692384203578251105978549812871749899940229838907693381334701202321480835173397967382304049631020315204933359089437278975170634116139076807890629994977368903121438494979754285854969431153318298135991667400844490425630929450327413296255456252170159411879675311520169326051568406406479951169087771222466319787966564409976054145524643390077446296762008979710687423240503300983176980922220269943828530629688619603023599150371378802477873647951152826854702111393528369950121562862169879985956894826887611425849681335209113644824610055634087691506701014421931026227424940112086710632507486083820686843949282410029234449452513414256480384436589551507127116529298576888785641213051379307862797912594646773899546023310083658863043867444111294712129812653139934756686234134074772674855680207706623579380443296974901676866570419514776647010251515115809911775143681959629745175832817188506295650159252009154699452211327724054940443998144897142105627949348655037331934714815513278170145610236230682018869202294280295727897796961049870022880661560440694378212289254391979278968320623681800334565821997691827974627442601745827626997934651398409714369369086889394987236509665803412924465627930127728491732808295241066881597387826946869720910407164599444985341789333969143527590139897051156945724585196624764147028517005469534883851032119269966062494992351903757717165842017000868642389195767111537253504726365869628958574319655675294892774870833330832410346458448773458622715097786228914589879078243869505044573456902639413805703052254151923232084783142658953012326199359333406078539409964382238817314781074060939522418994916335041932333626693505715624260348077262048716495706444305495781372341269896799530309690894434870684327303277406257260092091074887021324989920591333208008351777656661006612941772972311490284571383202617740348292832051990102800359624604203941306266504600385321591756525261613065133403998267205634508535501780879594330572982448038547752245298296872432870415589358184736658213644018566075890079604829400671656835024824850123383243275055793576365349319488978307188609259328026182808764977944909108909497213591181610613952488964158369087051135058557308931353017066372971200779418807864778458939099609503032436117289345290172649981487054844939861880663468180844275495460741456412795754942496119019109639043952017157894497792184249303021393198270154542838331114886795289841562253862047286291850359988251742639478956940310855544780757693583829609856696058763111389965550389253664654473718480662916991957629599272982690456476950913488547246095458964369913051885638399405656302581001166613214879692567220387457122641260052033357039934084244025139068148557515664371984507895870315872731004459775105286408777279613209244535623312688258626916293664174562271842074727555064435790028534553206494387340189856128306839846096329095430871483265747954230931479802366524443775846644480946572727022381960204541463346972491626683023664991662738819437621533041258243210340924576447518027706055999430039935678043572941174787054364211811727302641066125104336204129904170296699070018452266313097021192907886310118986835731584051957820367523093584076789842071701889592879531911397380998387001935680761246365165671841854434339839731668834239917227519032045085247424733245259563279406417637426430718448455053769437557118785199327082237308496614157901703335952099524375873079386931320373600238447586183585379920387435925526425961143806963030347649940322539902628544680081890553553129219392864871059966836359874953106890525366521103788558292588588935574706011169150832362318930463459121412521884478463786398187771022090197944147907070542612234281588846529157341241415979669860804579218210751252406151527561864495034305675292786331423660279758426751233885885253213649478958426595579653827162219420952771533201896601749686796477076497350520473874323766884756394807266179706619995240869829285605213551065196498794232046505891407003802500834746634863739083374235311433823245899278757348621345415227097712572655768459870391006977460140194407952012671306231422004111626160302202301612600399350767012633167514965212481180292910218476311035363435326951222242872121254704133397794452696540266917135064251703931795490523048212819404359440246564319124744074033104668784477704835610445945667813185300006303163773316387960243423177811260566226552136782713740886697436535243183754442422631137390515267259326392182728683298742462696978195756568928370874653680236146059629632801411136224777990994010227139826657284216428163170517159950512269272480073163835878740437019983330712103099370733291569987486163551275656237853507665058216858683028617049049382501068064911732655070424655523516914000445405578985918012017643670152951108568310557181049398632815999174100263845920910698404737975089208574719181397225514307340178445859929147536827711855428240650284998862932984837069301102702064348058172219936057989797878639469694435714195780158143251171644365621737973262357443022637151988455587468222574116220231319038429315013890388262283021515007374346833289240842762022141198393694946629286758833224266339213181665256536240880642860057458340633062536372554894657451954268429273045531157428777625041142232915092215938850799732464718322081111670444190429745905059874082611168356776235889195785968917330019031845351021092146152051157212992413378538846354068873884724048458878948900817353067130620548220302410761119730297846966476769093535031623892561147431125285199081289171493633725338785389230774270425860572662367589642903246298905480226692800602510394230440957036571616006551720345231869170191270269429676249123521230830343457599954809277541017157329599334209129818732022726391450783791910645348938180337922803343038773571494909317999897706450753092274673767454267796693616783732572638067126651120953676125970430546565172378867089258597813581890849555447797106617363955499840496394719513829999305207122993672425317998478259337310666677075466964745561879395421357661148721919680764332657304515106860995726455469549689741099872940057382184425137743790444495813289783571835493388222008543837789041852931603125270317350043577422630595102458404229787729377570704338051628549595042131153468583547147004927351911426413465215886220933126946622625858380803160293930070457625923199516312853108907158584514788694385326239553397246949873987872433716130242496986201933542493285592146851830623435590564311277062060238267803554727379868729415312011003344052069763845951967711188236625189871645201075859284872147747048069845442119821881607949960190709573056778490156820030688975152443421492955877654825881902067833643718060359337937290331910206358289457793735524841998915874203778581590104143246922753098184593376774742449292947359551913039728263188402557824905987863909370026180608335877866957410464603137499666569611112653879688788769665212138006361182250500861258111464726636219910946917867836791179607606960868743116943323202446221397001992047089116118203883216076164903019822565236168461135460113078148224894572378031900618641272877952706560294162564338671967992876292732148867173241729117426805890027350014437496555820184753158327671575356210317553102166463011397399932621138282210262628107007276241309390842207214943817685240294577592521908577304635906047263971857529524547777724197550563329079299821220676138419489601235645845887622749716907320352556173172476821027788273275150144703625908730495606391918816951057380368679985251543630414997712736518655635511658038171301106910802078591618098372005389187739207913218961686563772730614161279835022793837151523191178387942595897928107239179498533734505669142008132378466763443312447374128229059360510337653171927507233262198239910900054733925600606387556776816898428344364316478457507643210701508451236768338972785324788415921286161557942309539580215365562008029346387668697075617642532471956996962430141460855265833610757314355320838018528863829683791349592877437624366830628113339986738851274303126532353050262286038473875481315664985835504542365710004914522177550059800401060518508651243526063039078017492452005760193400053472089314588896470606662461164837979245485455292895254555340478262806200384043491505045157816765799822377701647854936115594382096844753898416305747208630889543836919545697394097020214394735071008890310753136980230166479218028431461737779394963017818358615496641350961004591961013365173680133388249847677881472050100454494800242334363776344529583872330913358153147451022479224113831040463036138087233870555307007709177896112503796552730278092782575505685732052761857406311575640227789257624276775205546893825235530908462160344780504976597948295900937129324089736963197795851987375168509398520634169669377554093972204032003707729867872001120503645853382753985431788589348075466688218724264032235561496386190208743433594939216659030408784397795416928888794890936543232083783250885084532227762811346439046574425860628658480682222809868032756397881174795801870453219773761522367572191460073838737536919222818960245575227901100269760893408317638186391904211106604618027126286552032044697266604989938483700711264377931120471899872756872191831308766281792221435181378611586541179605617803658214080577667174804398126625619264325806528450740403132801801039462009159569946500954045176957026344150149284971085091807132186775999597008302131161247880659137344962715551285126795997623459793678999047136007015266038793842302711720931435830493672273402150691310632867341304420080529578381282713330235110984468527645262689130255503300148948946459786679211296119920635200167552932218109483663087707916029140468321028438190428437119353033083078432640412314221155495405998751590112750027317354222007639456481366507917453339882675816609849467634124630563223788791354561058778770476983979868978973589367569317134557392323714661486093165849251012523430393156228627479135120286030521697126236639802548692481313507608538675749668841582174846752014684580706187306659630880725532874976613664664417622981786182204105571093869259547820043911549745296125131887230012332488508128849845667674223288480384354587518844539903319807582968441958142873516310447743418459509003696645949124683471130755979732505803893823829820017675611107116818877346979490012923563759123325102205270244980917605479376625298326468441527351315694457796620178175137477360020065869723393157787659012301273718754272213385448716758374794263426915355300277342156985255456602419256291959001302571753442570280098249990786995515468094499436975437845847560385067580319993392921618319349604106590761699799684035146322705113699663231517796140265935699246285359146038797234911603564112861843645488532566377089789768154202234837518889424254706258886530033427218493011486076755773389285363313127114366356988544883204254111736589213989491357981957308605861010307926049205141896122305339683392653705948701321997943905893976484827185116573785695954154851380966102311500633526717788639505241865405752254595406131716492093625489819824323372644190411572877528601017105253021826823438996785277282475315247128335394337080086121488620503113771979910967267115209923729593725657332027325937741711734297581426201332482375908577896480029073777938767436719908690957966334669930965796948520086356393694690667934518323390740014924568873421854152888169292534230712033758829128694013353681794674014947872943702800539325143844929973195874090959228551389615139270971993203547249836780288578469925726939136809478616935719790905768094716637126452352195361010001369599366473304976848063359761993197323956568938817380680838823635168157430817082853898319999493099621991042039487615137258147160375279852802294192926523510570387404585071624039365251220543541155254756749554481382166767097194819324467671724058614706169147297479474509676186699822475218856291457138114985275446119387703084634126737091340417112224343386615604961540447273462390143934619852680255391829427907941306849077845074627785687883612145886104315051013132848217844816675195706541505141362623510143976616037407732414835953832688524826068695529735734629371618984627672776771948120372378608007113764162279534311421530734233092938965482091162151070915277940765288549743943946922203102327258150071515389430999541400747736394845652478592812396686421963836710924078010763632924478825647541174912987185217688137046137053968418824449682341902542649639558655180262228182896657349356221630663034316663871018157164273952567898291443546797068249817171944182360716726129899820179376863745409974924229026053160440430858060755361967843226714312510217263679809559415490216366035982884860507879613128970333553363505436962147858710043873595328429774295656217883708972584217084908556228133399859191263151099182824260684651081607474860784127205152317401556275646709521773066982634309982389186130358225432908266811589775797474589949373262115353162419342690549225480067079569041643867151774440750153505811453139442232883853732618965121734052124618867390663406885829003140847051434574699109140641884294961896062592995372582832419930325359218830961027881715345844225154900099333271032344632864179111839147386015560331074426823780893504337130960383839726137907152984317778227434390260308125728171924973480535096122006131768844697742836796931456288753215303044520325242762211069572583320751568395228300692538633953176585390370496879285841073993730207870545454819570755121781503052951943021066719826880890764323770195774835252735696094065462735456608707000779427590168949880567749423314681992954334017317389298350731260965987463460016339348928220550026922351453529906677547817016616965380881217748530720151848126394142999385980953474598840420565474658080086003171211619061879524075626536514123577157935865059805793551393979187887167725716890932876376013723376701092141397337142256149875118635586027980360635084226892071979240515782817668054525806432760018448511671852859522277013421859565994733703936130689580629283958586316494716908051818321627571465854522497936844135868401515958873520554505342728005775670650231716538016906654935337750814493739320505369160178828657291205931800575335822222652151619769779368365523130035712743466143734256157422279729732635081937208801081739379978745791767605848280816913585581629502598321670315256124808652579762626483710420302777056178776805234259999591279991263774911007684191327204807218369313863673053534502865571928798733919409539780771553199980793971469268646383967459565152629273004839071987967929261179413498928866176660156529549877552955637212936613278147863510418757236597412673148728429505880001026790075301829161555914991590213380572394937197410596040475988505042433394571355354624814852332958894192645486260265150482060534974909412445126681310519059819977116748381787293033075548249225458485546994837041540979036376119864127928724305419160861028829005212013941869731835818612150396489379885758917889217310431261546743613942724677498101905620431622659065543105042077172496841882857839516463368712740701200800567269150638948639706911251127841699375658585969687334204576446067684619545443499209241741865501738939193129946167240358391132661940849361397982783530258089093623286958106793862954053548486016541372054800759991028737951902248703011962997623421180281411544145131998611729488573884126625953902288116036769484375363192430056917869528876073874495151834828539229227812781557906970552753100272699445307703759414038269659839323241684098724705175261323784139333142334432474440420383103284320616086130219830844000661298198560669128317535741382494839015962770023909067572522211790340694347440624460765696841068168053660005565608304537627582768658226239877313455074517264022974223344827780355550876427188440592792388806682805717840053317618088259264244776820228921795136314398045765743972111114405036237907996792410670346661631966908531230365757906385333244969957998722077591471153024198029376004619607579107724056441927484507693497036349688100262541980475303715488361812934897168440264821472028815532485169525852973906286715451484360662473265554034347909979064413189163755544257272591178795406936188459534894237552790974329008047970256987304603880268538497435615593628450522528368778497827136876368181590528708579508301412799743560489634556443202505196944602614265348973050797642386944790290058309267560490781141958667832155079570658757740423086926637551102912813368109568560190637015613183657576286673126074367749804208780277195915160857932624177474395443278523717867169726440747309792069659188976020508513685815116062235797252691783854782068531404570086008120226658043713761751867014221761175591229413795573584671010474093992973962489099956150537350816856798242995361416440644203052447836966871426547900942903218896942131661411134167469400955737540704944560250261428055358188208094811597632608226088886195544058889866621980785251744091357115078905679704258588721634117147827790793488095320942016835171615480787888241176413123498154148364151046644520603483786223720661698780856464479810472046588700172312878332527511617131127209813232415405018202549496279904694074933994083983041136530339245231746672726667620039873420395836698001198939848995936328362496469250413320232056894357774836782184179122574444633435623903294045469479837866329392251781455388143896723171328599016490067757721778230786186723405227478501889919792550760851371839122687074868225985057274135961695484002908048217828610567293965035661018998189173259169844970764072553590490415667022846459398510338449642637486851538808442821644235552603185160142469841132177826988336378730541681219943108893483844386111548603469112514485419839288876192851978553960686826196243797090232348892230507104525668708012333286379999979032542109505790086599665981991878977799097385843433901099561303355667334574507609581528409109171576208764267285194948642543183472174313062096748985280236684821295330813162159883111477015956691318961292790276623494308218201572856121538406024710768873985826666586834359409482791154929063140508831160677484258821139638165281638463114087627053179013231457890868665541984400431223874851942514787449615039835251841966762233969535900938309480915602198912630618807931323446710250451025901874061375368221769933787807681025783197189811534042532667264089926499912078911468102229029209080048738701400432411745739894552474798129755868976004360480176003485992548912307861085243494400420772857945321153685545911879142147450158432526669470908706961057431335130877218063919503766700147241918338758568985267395119924892881525902683180907414513552147373883909721549319586807599945249788548942085505851604731790750134278956665688491349045397543876739393100530336890039272860512600932357890000955869902584827900310765577701578372419793896351777347115940514978971058000652036663436346885001779812020160308883469626666514410131275757353205380359256393730431946777388286533269540179014938024055669314725276953719992292028101803780568564909771355716163362909177967948571408011554974688250279361612879463646760210823506270528814735895106868057036027135371799632740697021826738859494222815217823559682432856699042882665188404060057144262695643743479785445364838183395361566560180643459691040117085025094310938549914410132111853077148694977113390636641906399704956391758260749325341600064701461949892991463613458941494408854111975430877282827367545795818304630116847116824132324113533141344648889537454571997319023163325278836968617625135551845913396540863076153013069533906773495979723305042012110893949335020222777342671801233983199972736369511715636382718511359260499235571344498806806628449098614607809250648569700113770154786117527804009901858136175080056409619660953460360331355021348069419483720371718138405141158154542521661924678465760022555902916384293268796310718103848406374806523727689080071523568331535290945474846062873957916941496782487397219279909399623623696603089179693672953725531545886075770259504175832123000153032974649868121218468953905302528489425198340718169365122925012512479912507925715197931247551997882323270469810313581557868187987362470748503534254552926872031971376844932500251035153522050682351432941546887152264669940759332778305444954933625846383364625343525414277680094370694072335653038352054132029310175486622733869093023449542572477971386603575334749287178687804831760991719438135891172218427481424887271199301466998553107230136852400664320263618135206816683901669197011518809888717151013527889778826520051025512346158999555809767272938359906899181001819423572883860191813286678553989164198946857890198877519380738102618749653732726978925071599401314451966988663932623336634081686697622459504472213656693485509987544627438591207214748033468697535393907989795220861524208533013945398135375629748250107267834785087458353815959972949760984650358266536551665167733807672955468374173757186843620533910947071827377520098023465955196452983320536160374937011370265027518967676914268629557359886620404514645860475201198549565737054828557889146306562556267351896101880359612918971338967343791935894981013511402894990719582518499218586741293279371323613815334078374029240302771174365305623294700893099150097860987527643931922740020015472028007758258203900574332897867684062331802831010007390137464721075268701774031841102915137550359717830898669997799120185961288027235066752410205010061872466401965915049119668886246486003400935089536259557517625525322987724379871227555843295610964249229596651740375709439604923416076216733880782562650936473526427920125820914338620242465622153230651875500917773643762138325777209594365552033841561174398808551017113526375349418984519190488769137301584993114707505299664181166491505075617965337970549400335381219073790526885949538684757912865464035043835602952202915917216623239800564483080109973687458428372730234377625965722662422244928682168796179089844139117870029565273620073984328519531388619682867563856793113497763045325027072116926468193349929053249743448727878261374696027341177271597021427191831623203064193144436212363097839380787044426122842024154543425687444010904868380242272541860002706590384978762322035483761931888684960756593848237465557216430023964148303058480131601042495027570239804662980024819080344108338207596414654260718188857892693022524523966822736534453165005126218419789659258970581808884466987755847410381564138915752520764988106505868625516762837860527534653548383309451955882144929085515355702567572208397831659256165557506831748303547077941339576446622325140942398428524994588904146703754018793633755407477274642114671530599985184731344504346373414551494554952908590175396135624940156956327344621465220264225605865549645981387758615797368759032515910338572908907810297375420547955774543749835962869552279042223535163154021725121888960486735119417162104450748833428622954464037650603735021571876951421709822399299712603032625394217424987205888302916285031650637714978009531826347705029017991147942736009897167658430399579077457411488325751816588989250990576854699922846512922314019929351721899741109716155270862366471671104804899185916444564503973093531719196915475647675222857306125427475070832220238696854895357129661999189702924960354870545400884035824960528360628022264664241554084703075311674170293253343437836048575463807041516679763496080996526097347298164496058345936358316275136908872209608463686416042999807797975084966173360963619648137990992745763634869242977473436990721823772307457328973770443638690350616795010992825610077309018052263101087095613690521709869003991853810046929915272034225278815568327695362878771542702537959130736077572805884606172384524966997842303102845757605546270299044963914301178099001536918718875122033559043610070081301279178209191128886813212059460357459459666634692821751262310674139857632495880604326451510289407232068233666074042625023300168166967395703811909347301177968704792658743906822889599136200293482525253610976075799295840542374374705142290319045628727971758767098188415760092694392863494588640160782308921002135471489396967256295715177243935498533940386968420140970533124571053757060395293924789765530981764398675471186304059101143090449260648441694859545384805869005692601859888589032608968588504470286901676162107147117828196885421527064618657246340308817812321788412198428116545161223873832222623266230999683292139281208415161931693287450026758020898394710918826697439481674805001396378383923014505329505208945975269690971347120208675468668139153926609924607821655526027940897085951044682126942058579103172724839957078216944644184933646012574152315531909565121397149012790446178744296538471355781037443050394646045303240070327748032199934133280252112143215738873948241701316584871057540433979475762275191286556299731089799335602292986642091098515559087199705178729357142099364538965049680672312677664491859487442355732175308493637254524430115081831461942740461496464373438357484800469296526358208917178443076661282160328785038819164917790749607521625188352254682140879083045025481790330156335559041249815845561147424082990500633631975739110517126355798634193920213826043615460681021643469687954628603252673211429574804513342064088097905061594755538536807104359483809540556781147474663591321217285687591955447970110205769222491009890486087344438428767506440483084568437975869214303579506454152526648645717727709389943640481255698276219405357744855470216014515219725840458361848639020282236222434374896564366244221951703893462589066683705996779627562955989592710462761202925822142255024300503093747743064224039922931542417458617772573362505275077943379618664451387493029484809984427370467651429641738385322686887742775374464786107661590975420297655692862411221960179997605640084099745784965297047989585066463466852907993987391341459942187467609089605027053358575719807406124697207827875206600904786761215139430288310710387727386847238865687231458469468352787282552281998946549571581325507509830908314560369093396416277909858079140653205838135955552326365236457987948363385403871649187173457551946259318858891679160479803578267676015117386740709467142521565375716127450237978905256625843817236098898845348565671862921542634598770536030057970377361814083837392790077404837415645527828971454109716920909187685739998880578652412530707238073866002766577038842912810614934244278613010880961220458808751163284203390637953456690954416546292687865426596565522560240917966080434300539895325836495511883643166790100411999374955653726806343896112205068040511553954028372503931905487474944730267634738111331097634723179560653355481377233982355380043751872462328559052937762675330601052747137987944260024705266222449554377324090070869406204580245479759299465349768373042967363092632574630986900424210939662806305985441946075221328398621023593177571812440420268049804842862765342945845147020903700061678868247031824526168170589788416620408008260130512015049558226474654941182005541176554687788013686495057821179289201386038905787244136465247009679000051855071067624427330405853093826333175055518461158015157682945459601422492134504868688211213796076636229323963100870529451562818139817627794077998327515678033466237051046537733315031660264947216110141768935592627195259246481892648495106301881624312354077166688262647292208632722315913537674378300594209446126950470170239897342793124783961538301418481575985607539109881952415525118128740519486999891594527911573107976075963604511728155774596612066070501480780353203749250908645325812713589083060325453267363006675803752185019842566665775240889915464160361218164905573659867758759969389576213265026289678707598556430970260012182181813801980732371480873763455281386099524237621205124318066376926983090193387804840413751478455600834107194825186565496760112855297692721247204763286526422495086221161836488988667871834013697316192294937597919613521115782563850827949619473964939132347638359921793225916724547245289306350787435691500507613693635539524835513159639270716368546491150364836344223915045387402124405822380227021493202946330790058789524613273687003611979599206624440968614412267520517930051129228545390978088759888320232952323057421233457837502081701867924173834579184713255476633813980364053187493127685299938463750065451211522913989543612655998927615105631545733366181413334922189666004150717395866618586179736635374739226812984525908498924026750584162855799024628234041058056145324834943287799519406434083026665405406938136888949493411881045493108532089747724859759702650390861696580539274040573469638284942098184655610877165784224650513366530962682244170516852664997898728547794174735078648156303298531206399434219933301080266384240951606073224170639443236937878115171963094887077653710536948760552280621694885611941551228087746041314042907702489883937646327401587733283162448148587996009202850791418723231679646379448524479909046159346768660602795616063392847446010449033863969774379591949392171213791267195635023327448594153978460307716241344468830971578106495521221841087412105426562911968679942735707715305277234045910497132159405152797722568230895912528590622977093522733231678473872525266036111809819802270915135428842111090005143565506177408037034143972141206739090705870190240020030807145659095471469182637619064746169434277041828030661988416351506290574955443804037625496166828211361324726499999749844647503956141303159635991397131858672206991473205380219018835769238522101465660755021828541584417833358402755102609895516380853337792871887321622353396068647218180034437970836893455972457911543674708839110747630273008019102166622173415524216543631210731076484474428861651151482475381252959056034031304477562312514490350661374974778611617465828133709460934445288997815562649481362881165482802778293613196039465350351886092213733609977352927953439018797480505567511064092384004079171978946770114570995818332049937905596592753633246003322612443541721138702203577688035166536086532875633078045858063875416704321094937856544593321985250660367849358311467774445562080919749428199888177564815484177535926111213232354729700165535589585617276467598694047937915218799572063033850530089639862535909568953087805756999565227213441082973305921862372914197573572713860794688488814096466557336166302045845254372568619204847964794068088359231880443157260849145881813850559130153458551253708927469766738585362844140083596893704736929591087342896943919060959906170907702614219458178725607912570043484616684207411569539917607661783600717279729210308805364645314233399618505390729798855949073172430057696358997377325029296204687696005447150537749945036512890104432065189009690598976985424741593861245700339826769097166753417700576466878170803824296437991238480477943654613618800387362573588135199629213603374604108586826090498275361673559121765734074119023009225979981001970634776797862917827263978195902425433533847483819616609656465368774227482158945958217364151222385487538822872235915143751779435295080730814427702529885009114976746919454832473826580105853209250825448920700272136637274204129320839428931239106583795546799388723332147612561220879566938570366036928417371574890868093920260018331948673107084829167115683208817720738906362022643153028087529642759773174179206053894121236153037353388781647368753690037505265234415333948545798695926487830233514890029270096812594993667222147348755696209342593960727287541524929634968032113534051586362484139322546973329557207597545604745315850954802957236670227765654177394502520615224007957023953935568005765294700639125532542683280758952369958794445212280744728333049255581538456349211751788623797621544675977439803875214183058645362816314613835528416395936783012087292467840613721423895100417746260192016016595319927471166257935632432714501191780513119192957291656309011246286128436665910291373416247022913662535618826225424843788490981478246864721929410841050663326352722435863815725682189851692117804142302348162775490116280689783821493995097258771998629832377073104971575778505934238469446995600539893519887377978821503252260996453933436269180839821943908256303871877699613015168563915612906152444904768616594463205692646800363619400397054099500496065326536258957322982007420369680000710334329930893687316897419031969896374337118593385515788180061433727622524492300375945724497752264627670335090143366301139824549577665355839296021792364583226877009681683420391499074304403333049720937103059789488711218831287492452351144046948715787123745511749769903447829229956878329419055472879399360895427043423375374928069191855296625467135816657639156718348935897602049966299958175193833635766083965367663632163555338822436141026386900570444537733009088961364201637572570686386258980614006361938523818885574323616270544127201119712555473932920857663792622158544737121321160173509239602272947979841344756494586277425096175397132752395011118670162468504276256753198054171179840294617389158372100581587789985120979073731624589194964868457759843994434065068982109470147779412228387670809818550820221889927379292622484749166367419021511861303020669192958564056564056682727880455580458781216786752953879389864129260960878413554030757563264128831538030917481459635073550679251514110411887015394561999367112705577076001241727034115006614339099213371066677454644725342115404866434853749000114893563816098696764051657134653876045839655865421772425692694904100367288996778779599333967335440628377257710533558216561265290527710797542761948546700376850163285387752605477459750731626907180933352485782879436005823994051659682378306121963782194479579445836600505335586950914202494544352456674099586491984795981888861148805251139035734546260077058374072655131310975920876937982584091424497669448546807493520036641709656074732523400613869658095959220306943812235161560713099665919626557588113061245539719501272777346963460020343214006160029269500680991688306451350254778070559406195506604847235353596573355596128753392799604347099581492656310378832575999640957406836573575388866711438397355036951370821235412103219048756777872166061453361372567048105801530610559651223300647258716499478170186936789591230306624549206179274049185975835124837864646747275491886108171485017123482117126984270457708679250686238761063243651533915824665377460775911547804830501093320965397706961703790298715354703211539064841878368311594086601170341691264281020933690138686182694888682675858078835969029767672680308593148136029198294266415067402561475903446519906367372248785241491962203233905254165172800115079087992801319919461728543589785641304782630543518562331318140694546001551128569854228308066341974471667306821036939424092114309143494051063890834114949163591958853583253965866834930640111361850166119069439768968830607907340016296397857002253111796141298678907693621557861171628397078237723055473571856698071092120883120432650999781503800553682205295400280718687884538139615059003078775197898873923633312699526178922174052533742494689176745252833435738288994556749609649481520278355342316244607136590227782264817425560999258569191945194711430403697702534710208489556408939153249059881666399035577061791187383181747252200854078847554857864780500989989688856785523657675858599104595991623571967957838672442584827181527758564526219074956847355022036832668908402119504215458344693379712274639920710061161506634798811192662517765961064103370654557835488067387322066187292095458227059992999192845637705950750365144936177144685848905219179035468190410499209778566754316825555908890259022317998340107157416822788181958777511171589911957217393425001828151544412621776227597756253886293778444073364153206811816227852059711276137951124455998722325272000742594543086677475680109230513701416924515724108547124447430028045327865460395327651819332045796617291945059410612885233092926524912239005012174427758832667005316050318214349243713605417831961253867369897218365795113300614103787945516141439322282984629390568699018630584308641754015201512380157926090279170546219145276833779784778156288257098621476132074865335772701506038770448802838070892202085068373752623060821058284026873104227056929466766379357548937060652419618233498018270718250036375894137786616887097060459255343247695409087457090716579469849573987745628203901555024791395116612309861408275272900388548542999150654251654416294176372729929763388564740803796674001395633843476356903326170096514446924496846554515554797168041806607821273719918195317744515086267823378266136698422290746681911649920308852115036918315383822057148349125003402874050418058629418180664130108805232157251536656396217964403667979221089087243440708084246570312346253015423018784129623159749637544412956846037896439231270743323568745913522557520826015454929118102678498117453070875295737458140348452107615956889976047686678129174729434259756503886270805871498708796376680539873453981834073652901608428392245385031128648670990554893174656721011348987154649249160618847624391535380039406380225597276043680931192351637205415044790659545349731459636248335478538107013644491190670659331673982465410861931372119265483877238613619061495424506981437995297333783027931814339253478876462177490770912351868349688007525406654605235450473567239739643207733279844266553234343480138645389604210749448116204871214558917265856461172619426629472528808212385221960017473462608424897152885859620816725828550241115036970106193757446327305053758082050885567654764854779714489397215114313375179892522357245303318793673994967086625220198454839737575357408717721100543996401931702657700212898959253932730740078153679691996866567677959515588515994410486054753816996824217745231096276832864357912797309025149452122831321673206487816715385556940829502239289192139663832758163232496264825487577058135640747078793408233072250565758027600770333263845203009914925935806655213467913782211481089559017298767922932289322671659473952937410324316723580009254590454098480074196769027632938203179460722786452977954858690060973466181663501987689265899265855900164757717231160750245825354225964331295371727884378848099270141720765866090655686775849513454616608483763330805547450712833593485196035734353784092622618958119971777067917426510685669205339413881255417242572171967130535880173254537393074107720363001523907824486225989012771922850027901648716637184637400174390406694994826497356606790457053592173530085743885833086344246289414669938191246600510753585943560697909416315911917804077835478071564725005683739761168042693217097602963400017781437301171033096359711916329493794923145146250708514990647971529407527044576961756584130226530571383852699812529224526832387047368919030802206557340513873623344663813142425069643639011681791440913302017760912445488162679910285830036625211698798283818633877579588568594725216092099827314259787922515836190998386164235377336038888371776171382708456777423898430306869857753604394987028222589776688340314976059414991184778641374503960065528083307913705703401787219301393384944346919317596330460533200461560858792753564125183883820637926912199194435689177439990006110617799532367203322930974253438277248255462736604680740626439677165008840147111252358368402108047671857919962905597697330268596855626712531533124424880692290936676790267137889202014746856298002509121031188054813751230025159787777275075386262159646924146631059507789435073127089469575958050570860570693382772570635470202226022514817664699492582074921158898480857082729491239805851573691638813167782808913236584429000037886904650269417487397321794901819253557249466537619332231680134559107683484141649456276617613783058603576992151699605087824149374312376311994878808295123286213582785928123731739652497198788622824535334396563717951989895765537043731524376865681920995577699794779424664548029293317332957616570931546950769975021696618073956568934137205151061505048381098262335129687253380619825245955350189225771703653568979029048719675258592267857458495681054716254504614461200970896344449466693377766978335228085424305420545046558767730249219063642264394124764218629513337570512954591403948732998018684183964669182334419985134735068990738777412530430046734892007629297073030773718598822691523415387918290528263962827413390799401638728772757910710051993744508517041153414874308647231414214379558310746109059163774750101818445825738683857418154111629998887787189401952678141194227480858485052048057680791696755390827585069452778952718217322767979913484268833560754526876236883388100951452995764807274215178282255093569052769917154403503349883781136884741271142291355555303338139992485278195347533655601874390971810299863124080008004519694810408890149658336962262724478832617637063195853953379914885638586148160801006918029611168936893164881814432156665608519778639807069444614827869703211943814522722030121739818656600708929599037941393791562304682083860845371179854334065616576884888650985865945506878251624715818033795704074226060736306672515914687628935093474826204719165865640755055528540483807206327307658698663214262535084885697256399517894592483125710807552839893388841296915112231666933524037562244404148641950881000881834674847628291384568161446006182666460650143426597512965960569369047437402597233508423320472307982942881933781492447348274783577714878390233732717184638173487021045360251666977275859177507532039568738202509266130513139689750318163751392445874112442384500511655189763633603437010627580478053339257838510328945811418038369617182663181668103248369828273343651688987906121592916050708601000100392584430890597735526565343293412155361447468213244948774178245805134494459676078503587530063853550100237833939666806889663307807162664584998549306185510860496070794630401329144164534795723345630673869721470640864151830464769738230941516623411154934405671778034762172268169924851735443696204204951333040196094566727151016616649663519283091573150680888531076328655949243692344219358851854174542081684305821755162074639408445608189420592949923046662728175290414488698386120167154312051320284574969833291180411371532327321971529927614045705503913670404951451802387757879462577353920126377705985021630295991811708078297296339310503012764253351365340350355587922052435144615934562107363551298212700424920636806113979232231065813099957840311323839825148333678926465760360240062039545911224260195922028721255391574237876383082886534778844489450692619408000404572663990316598348785392776295173474451628300024671849921413303228974937700604642205184721319781144543587747448546928977104233854616830977914521324749651563624597931070607744880533232583659331433840917268695634957782300797790571728171240039576714939362917465683446282121449847193589585261749627647013826243092711434579815215263616145248273348336274970299065986261920805538348336712165144539578520626728012884720585431779615869151245030738055712557597720302191575079956846425016692111511960418682440532043512211997913976941211160265265798381526086095974574986489978428707141808388184210674254921377827601998357157840406324607304455414136912337311128201411567188117632888297475843793345691231684312534103772124168562160934861738457040407706121893809523663214682307710292062727867876833067312901571996235562261707870583865525513555419276665638859543972497919757885353170402322735411794116180899687382782676315155979450843308758581045197478083038312523979608622223220903439654009260549305943438435148815643082992266883607677671673078661917889598636056212404068735842507156224835298191050316958151530463238656322618164952688419577186330174081144671812702591032152684903076126440354850943469925150366183102431779217788601403307791031628203344598768775327533335412192228102197191850896923739030981686446633667832031289909555009235847010262376405550022019154190568810569045749352018031784616522250103317916662001886900037525425001289573945917027605143105226821182598974306677050192743317816133373015931625922611829989400445562333866921517279386451642071808341695385778826131689576723708869122154126137623891947488895989095114472374847894551863791490296903079549125240460052149245573201923652391335173440018603781148193322342801272380657408209493180918277354587911433717956799413903043478841748524740189982005117255615159987291316796017793616847218223666183122049681676580526930829041679114487225789516577929506081645682814094616515422624702934605798837675680182811951415834608161284861628503640779684029848630410238243261211037078545445005764204310899827118867291176008699569731245346525664276018105767514606706783144100290636296498586000155896778323757117268484016885375654798167887248215896130880540602812048493240139675236070495708938868656069476758480454580530399455473143913529590248045733706313796899294315324453995794379156692221778312449895768024244121911080257299115591237318624771870152388603800423862154033652314115122682741979208086347681542853603421172237003421646413779306836220775644896017527862226427525387882275528019070889288833466122714464335802188494599043800303295990466630155533817146327216794269643446047030170969230365181580582144269200833798953334944898253096889277193551595635474108366929741092080095987619156284538587353803550732018530828875302998513030133728597932521847924557348919273654801430938297196117422988534183958387822987226786921382407601251852968416398703041878714518788534668059670198747935934687105244808762552387431036857473550144422162881489053562840736295355710180761800122688162090962925825164933050244780846955481179039625132809768627964446674843884810463762466296724093433994406734174217585657094884464275379701554880450008635140862884601790475021159339540831692396197493068964276657991543838717332009154457515218651650864723251552402035913607644623134477080715013630215374632508645162129646583787623036917094449243901934889585354335062754455127909564792656483881147332855691466844518427932873089080583603653929142298061880402219009383371831777732094465753282694835088697040237593693407600921175320186757314859289732186458272247463229165366094425402726245993108736672132367190883100429529319000311235395692219627566893657505682190191691613287665637801747212263515958789089656635730941549668906607947595038790645780915466896090890815585444985466009039728775513248808123092811564098112890533980690528899543744918124695645268711711513146622761816478670612535448596816181691380592690665945886099804830523816034428256371572449122942271272589075784273868800426577383782712985355043228409815809273275795641403954176910060719610702653156524858929992750879745631267142500791282651684091212859914856034810616982788974783164291982395946726504094312593143146239451683262834560753012930037732805717441150199951255644337121755955116675111926336728493771530218701260307875233203390356191068946477514873056446271847204704535810703289696756194140754844854355430582639041875257306686084920891198462712918245422895965914003679857983681529156866223095591099073028355912961815239942318014365993635054450842530465014251252795360715938608806011943864155147970237617532528144939962211241771470900338903887698040054537838111921361732608977779644746771044112412613949382422662843435589944867725840654448918620302364419914099806587543546126158757277385341409877407437235278675414608875860567016513328774245484806580603168879127690069289321903685917622735174920165429590863106889004689685266864020554641286918269448460176544912822197388677079336101047118774418835564319592914676958757529197829255360654226957038130558244904967991996388829519190008230235800944288096169319120583331525081246169741188215624133802445490277301104134371247212300466099963369540628762064314501089869808163684631514335544004210327399967265701382025376571756927517809040535993229034161318737648464440513441190885470340772496884990535515794951891279102107363360490332510665017368258755809829725577561463812413358798657200644553739122614988254453284466715444296356359626717314532234207187817950915545655034680788752591772855359669292797294886867297419479908423689399897715971077498724939925474136220893587237319847236968214627109492420807639270983841686732277501539506851071975086042598066359643020693608295516134314503272858858161507251984087025883458608368575592434339903927966414332223640999753513294840251631276051903272945470264161756039967332045489099539628343611179038503871363970256361679667967963623912838865537202220679529948694467205855057287353742726130913949324408423173601073343252537933814172476948723889409434261415443759468482481560376989194140301010903058585323581355125977651940845194732197211752617208150699845728356300059040218382649506777343812834595603486169860974841713818336527068830200501493633162688384059198502196896170223269974130196596357949399369816691227161985298815301806387127255817540739759235752888596469626855501339525587061970242462523708444413317384657624695826979615858797794284677556943136919969056452789735108233525885905591339717250788657622332536368778604906232456064409115888429010046458252074486293225988496704685162905042748580287047415852895844374727023286370221649300521531135066840189497703604227014190584046391999840691799935086061940655416637113347241541841688091517101526849949251410447248623971390531265902013547660280852795164755784134711119428714082384899611534290213659145553360540094096720676660768013507099952220492568286068418556526514440107947372139894113696810741310780572939221002964606034264824795787293913438133190393214266729521040470539954636714700203209758222332206650188240385205468955446394695103197717390838411395192676082006853946993651310034188009460802178352728541136995381615827963373703192495014409494244714799565893199075193742553785085844395972775715318479569467245984205468369470803714804132315700928050848493239470901589205856511830841428831870523600220515885697715152976373712112600706356580249256942620619558540575639514320524950360042624319297469831987528544198906957149248294741914173870723019121873686708758269877659574668933527847968685402163235177823606242272911511268217489473251998082741103346139930811494941651603232911888008059425859280148836457304575133406535843234989517611258874422906209627285893093890277884442809357751902232675235802543040871216765284404637069883846982294432047665019371643918097632718038212195612357095156128697523597260806528546686785468629812486711631518822190039804988067587419252868083478595375943110076018251638252996184409710673113136860627262154896274472844856431629543857748741226196350732404621506301819973576442920546836944353531456996952265924523735522920366240494286884341152875419214017089278236024201493177406716562598879038500117261751412626164110019317189448999865571632514137114892044182942213103022636546174297720907487902953712951382959005107498007455641246931505646458639374404765230788957352903975513226545798087823232341868214953282548718309147744819974681813917599595975286246562070415915721496888374273604670296225941052693993410800865230558503233571332769169447809287634637253786683501414905330232354942551656807317896186204582314913721813793349737055260402937873406979356744197672262260685037925308339817264714332951463668001051843528010319131816199729755037125128412132647364405772202377036040297228517683794662405259387001615547812189896749558012307655757852382921255792673648593587267022386521691805156337049047748904395798855019175622674582434207668536269317438116058301870851087370299874194233582368547502932401408872651571824705126240993128298199971782473909199977787929502113327543452474957000804989894674832110287038685133107202474309193742898022274727484497480719979723377674781706823906274652123666433666431606828880796447049163799957355782964875984586307150216205230434876772033785373185569913536498666381650264397017370069768868910042595288356656989008464303783337525603849440255761184931945736587207082204192944078208681561895154664427447205014242380169154667450624353570487131306818962099065320722166888403266492086657800808575605669401647576021501263732364342920248635445677950882890366838877127623524502124662998788473634705802899184386414703409354888744012739859133820008892639688810288714464989160412419959939871698504168008955790644090197852974795413202050567815047122595762554647929267401649612844639508998471348552070493618002894992590450249565581148639871154980927061964074531476713497166780725050059881175578376069426599287926248944150450638681809058023247557078655117797444883280628585797739173150960623357185361868171475681838824933427604268802640132665785624573708296240183243751511573076291012149466667774903364050061164162059636547125992506333808162263614936419249908737886422332416456169563467121690449316992997686337701351343706160298278583967703147648923270054448960861852201012855658704057102081309425529050348632522018251381957406395022813477383203638420618571852388401817890739111125061228781538189644329939242073323779632157940077540798786244857880197840435033514664859154948780470403999900823043989176691214536543935579906511127306228650086880348298346270304710375527504625767598897121216590185586158732984386553652966713023099099561409159258510344370997880147059032812223832034566318549439702269646143449062307680049021841915827613944212678429886732967934392027196285894293384015776472373303765961395739877628247330759008792159096296512250361356663552491846968821888096624280858595449723592417935333957066268295712388202448608128520703756293405220296477083101788008821056245235691205125283043932638092766101783839116363013012130179557955973276041136098457767881410378143053428418103566134532868852913438904345258655906736148140285506269924729915111732096984926603867211081046788760784606778466752744818029227073855992501619353960301552896750539375926384507138957038464129978673911065687571698185465857439933027942391464324088757631977591907240006616723214900384780259526455732876135486270855850197728933714262439361146512181059333976356155784985825628325798582243921591714134627017983202392576342886947891934212808488776097589735395360557862969850453724220746090636227061055520193697709987175711449412055027541964342783433323188050188092363635125930193501007733126889001729913630532586521471292573611665109914947691585742493042656565888867847608621518719509288437244336831144936846516922449642298975170968160710452563425026401680064844428957046161373818291565037255712151186434183078071684746125691671291241917389338931766038376565318596351342425073380570897932381800153136371964447894417664386826159849196680418363846232256065433020006181339408118066712272737172520909480636370842674789230625329397698803973349929727284913039619724464025765982244237982459094729746643442627871385091898315213228335065636804609253544615596325635223226623749611054888094932939796206066302229100628871772067906274363338488863530292609748613017727929918951039548408322446493550476635026718388969441295613121935836306576491825893908797010732942876518433970240808018613773593087363102589006831692409945297002900100987773090805605760946791407131704289989481553164199765166880491436567233912201883670143959871126143289219436638960540085777257658975050860545611289748804935409124920648497338463594811945495179076840591121710516238377242372659829911149526701387673811491467854866355504107466424612013316715834152014462487158590967187186282779027262119266196328575376127439950453367922651080235693626500569148358942659483451902920213875909948175424259831242305267864789621262446038215820577888731433829651396711515626430870433118499468299947729237388863598641518168940190318493323942007884084568987470858515933794535733617299780555003321259586656173638476299914655359861131305111523345716018000545925684907294219490324565166104931011448843094055153209640085768497841529316084053329840115648614145057262917605317778839370949995705015663135527052214538889525053663640666669591011446470566901188166527839780314414247383889513802495510015292275953674626776907498285832328281056533406524043424323540468222909878434488286309319672259632629506276112854264433964189646560740982237028711411187486777232346428202703689181006688496876878528817305820262889644991386341683761782416287211924407244844892767993413597859305401382629434165476919039726960674065294906179218625303565577656192099570645558321459316715558492897935966524403012983190388924242217077448619300591295446337294498131361213628175925167519416023140844856893836845523590172717999181376000990937880755548539876313677303582157209788862013489750591895526325685663866708287936091858354688105381125286675586659070431219122366620145651488603455983551622563050977706463044353720415598468608682804593492656227402050331006230715375489012292209570086882218896432453898763337616420323073979590342777571842669509804337817389678568338584766441805314156027070636296432167252389925837941954309191639003167812249284205895603720411034222432624921500757279161100721203014240495259346165037807999846007072852345739942581029530093030222223432440974245673321880869424240314698374739240390045125651547276931986323492784460271802020552331978098051376038095212431074801314036395576947109461912765125103596186047980727608159655199423256348329381906524649985063006157283644230406615039750058773352428470687166471940092209970338773060380932561409901790383998563027506883782101889507584348846199405881470591801932000195722686443859552637650001817598489884463755344618708810088224776818523166287077381329985701331976004418720048609311080228991569824649020817361415111553570526976264660345741587879414439277625056778632733260587929108145655332951057029582322003279043735514925280938356902962207748832333290683406022670575374818114424799514538926127971586864071539347007591571945990889516376770914393670168252635684266902470861810231016385823240973080759097209364591032191101764321066584912053327020928302002113998360933646534845705446771122272828835536277276924194600782622111517863259752717391585017305166382575823584105339420016439985095816758807499185746345926043594697440198756107516456012131753189414619813530906230815693620468897562656495612631323867306558662829995727389876673731586490168246029279699636393709210658942320128798787876399467140592715556768851369237032825107920869812221630735849817063363135366457917015982036434987073172599568923876360217323045562681966637775827725071705553083822800872133909654712523588735146389759212461812785657567356160692434729484792583089721175469129168789018714123879467530402563764656319900303362219408136594359192028546086362914290628170986848050035867437403813683583202101266829119650333380193727822195155455825795127398344728798663104355015261306821452258226073197150727889027774616519337842414489314724318679119405630267333782741978691146800935955835726594340829094694674848407966801219622585283687870059400208878150757827709913947830682227584450543705927579378211006280979110252207716820335710767208923308643965788887573848459768774696002444109661603453762847381930326552929285543145536220179961917756734548431032518773286199561893530625701481494196720197581196642488938581928956856037760523964621369988817960903935532638921242627994531191176797138190867416044282267996115629491606904342226450392720783946660757750790123546547620049648638258621083131016263913941906667995555639382988039215175859929929411877642915668245088591336060643080782665614282413276370050432556538938546765025978943240685073228826498603286872497170062899277800859987473526642165361098941835721843197020888757615956867206258410404532239091057475330359684747605953089262298047247854241184814031925253127318829001060608886557045111076700133805505415163578024004072835520956151378816729069193705973805741250708477804621209808625324961631566634488166953993097391333945163024212537624389800884381107232062062728047910365388816809429395069544501573200003998246807796241469329691942259231178731245384691548958823154228630471785642142960808133148080503304355244384637135612271932461116920884506997552625549607527268727739991708150679133335750283251649306751615559118026870919582995780922161026420326347277556048237600661005874003325188982652552571459226936761056802768878770018238659300331317925593049274108994290791225950676299120115618003635567323996230997445739656833375490286408241436056356839082996900740447778217945823060782884539903368926276066361661144231356516829371372669904243140402092925439019157892662201301316876957284326816816887407473122543809745661499335526923784896179489603675690967142563492398974839755326560176816796720873938449147100554356212788388794781752889909582727833578357642114841725090997114900890909143670933558380185656061778321133840230606935982957355552159398116544795282880140758108831140135412854518467230877282143025146543839865293502867167791226995700067134905368885997654728264030017106923330176947786623378323928068027872965306141398824036776236056720595544818475617696252785488359994848947999647677514527485769484444526358828260939136614044254838118989189708233215306240006496976784561426589479125808483584154539098404812022101189940648081200604052843714003129260003795632389601979007575104867128130186954956217415469397928180313614288096493988454929601186928065710583520375250187407901004947064036551907876305777704838917429695900187144507169503235750005135480181173978744691357361064032869898840210226445795847316841313410700078687617098252651784350669557430642595345850909867526501864323393387770156712094445261779763792798407453839322319832913514576089062718621095398470229514937585536457700845725123565316817681292243709741794327608313344436491417092912977181140570444812612994321039033595425646107824653705271955509370493094167985131370320814897696869138730377942615728995848728284782896230570455447978467041821789967107054816817171402708268837876582251677697241710544021154316881751777496661467555703427641344429167382513010837536476428283512414658357195898912175267249741128448665362080271298120186124649458220997218376254516491500913412883852239917891422654322015882305831344761068633172299132751564777923247259493930038979958547112079203870770373836039394117630004574831547312791522012445738696228752950949335779649184946428612116253051410323139965960711327840990746735927217570759403298313951800926861493532163967068828385383112184776942314366737247677102131800154168650054004629100496986323753946557200629915838455723775695616685460419771242035191433148008514404400008030698693393274356873823680543313102870811133465192600943698183251577593350057679773862043777442170519905151610886612648488240718204601642162104087539957658937545727561275932436429587694545544509363961210897483205752976145415184906466780742314453859469560932665461181723299962820957355292456312437280520540915429184356706478647808427472567538524176842758068443689731780287533187682366288476243008222330716270727908696991424142422222929740757035065705478573425085987722855606024860447273014725946589041631869859234119134641484333477827426280878503023371293407392892276708178174068298857179604471285980859583193709626945970510964028233989282139933356248827222876798302049545048048136039366457238346553438267338208988366219888890662954434940442154978871774044631606478977854751093282630189238491579775124388407375560903778278933984977638680572244268913978632034880240551026259144587409100006849942450007618787554210885574509335906726548399502235061705383625506354358388483418510340504020441639672039487122169951562179786732029985430708654395614845730681271765222393599685160967412436580858532766176589537194809650135770647197269807651913823995209851157335322456768065333106220135945781889301438671059278681886570255722319714249976626560333541455938904133796651906551646975703614362318094091832607784350686872005879607093796531984657524242023667501748726877180683164713380504497581868485445109489723776576901881794686317604875953467136720038956305784433885117143572879895798277130117163935662790901159107142427547838298239418557006151397635303989600082204487531036720705482936697991454071030923457685537836086168900172571597343559197054495833111353396693940501464640405254236829060784414219250184381406344559887564148985651330996438250860093545351018120590949619262221315739684063040853887101483470613958820307328834752351455649303265639735377669006134909685249565480199822847857335102817429619882901323457637720897374162687946603919688253793871790753685758972259812758338793032497240163797539213806079547640128818309043197278556385013383485893406089795984429642679903835424375695151742196755286998608273699846381214617018136923335474931632735883943363715861247888164636537870643399676180833223433482365896539619929986554133242629895859909171692236033922148393585460843864431720536888808657042463190724531444072236038049084331605001587993190772435459891869173891870458066910609271091547795193585397800618886191445161595415032447585688049085451660871553023666091968691849509379374564538657115060774070240904716362448627403666966792859974062970172870237773563415688921789705922481514695136578428675669982516758483772713721018326144540830284146369717937112608448809257857950099937486993459786583427070692759310480563173704990973769036809516589460874912867276019617224006310089028093020558724816503852716404142062990453367364000430479675828435646388641983670543836058509193358521690945270092798088249895798043014799890684880626587652364206054463549405007553728329318826220066689385614747451500337170536489513466869153291996257715938225171594178328018628934392141140425085347274250505454384017392299736420371754297388134812812981921420424608590262578516589727075199680056004849993405944716882683403123607590989191766903784788020063164579101187746014763466550460584344644471019473938979649684081260753827571268237025116313284131425747441280212297197237663608580425623577997089782332254271559492329105573897977480873799580110867132128711446280601485947226834466998362256319005948881904953058511719915476958236092096414260028752936146850457007680704773459113203059293490629035545239503933400352490013887443946898031532217000854460989601584045548301648608489425089650275886554314165345687011389597208897982832332300851126524150059471509345345399662594069489613124902065211210103903218795150681720314409993062625107353509503710892348587681673560997304338818985453006885524668184154369141190930145162872698619119919262545185294865548868845049197184988821072688273814194719017225855841294359994829755844759691922217929518992447744746317573099014773406927061960695154612580300296799746897185618038098633187664190958602905174621481186479125131657021702727254568293405538234419357503030903770748948187131444418246283385983630729961244401190752666983329483243710972438441856599769588770913793726563757318522850944427742327107135287028833777618227717588177881434984294327654798569373898675084619366336633873431782346981642736873968212458645854423243684402368844341952079002208471794656270922974429574296484728661206148731063632963373149165077202091384959739622546954742492783860938316555004647371224813408595350843253472966228193817132314117787842137353209545117569021538076399959111643206736571697597684005633617132057861321145791661174213892936838458207212815057004984868902541251627487622252591236318600432168500300263248858740441840070216993681052757008164213990909683415521176482333805038357989006873069053860869646055595046170070305675587225843096612447240816324403600273152061668649830897088214537223986584020996275790364872650227524222576660591658970238269241583286442065248485603508038235445368568071470575413012940519098278636135648945129341802692320379640589082912355301622653375419790365114664231718694315939738384774727012094142086837446038969264163286899941553392738619814520759076813999596633200987810822183576698410062929607326425748039237899832725196056751624752636870155019343558635496168659624090820780528473551935572692735175685093316239685441353456020954023037523099680484727578388631101804296038818684937425212686772273358904856483728340021556027572322524552274686685877919190341255936922230109185905952276437297894720225192356142022315191776873527958500956998258605645440228790369350565591303502375888945570033119339896634545645289063254883564202901610203683124105695717764916701660183216689466447927095175276534873013089078860543557975288702364402674711133507819348207628053563346872187790676001913154405110516700523669619939459199337335737033882532794248042746252994920615954119245697422160782796419075053468175510467129779053980952235453003608971027725682386304745370411182937286992166000283188220044009529743233309153269519845622232484594128389621837232629784635580208451665686043426452040111520216770150189023968132313734471284979727839582890488569486537860849201875216276603059919777408467275150768720988825488937907183414839111459248862716386278748771747023127305039564111229078343160836399489525671565405942215228049968776347926969396703287409591044316603574998335754546471842859475789811101605748338284134709183634492923489778139527789099618003879351368742494664494948418444152295191349172329007359174608525182413629922094551277034275321117262347658969441270265273838478104951469322329381869863780992240901562495972636071739935924076903030263122533274632128338341592579409669566488119956928781997003365050349426702857123935412596000709386402836645707135580038126560283886200164026989789787818571321808208820652814916671546625131990750639209678654562893141855502427044169783009939495137894027713274201878023075770055295143790326983824791038847381999392373219010255118734617244296978690761213649113144184339839798985628137995152313701786182913609380862243449934600598897793342309546887591744211906075652244381767572253726075163327223957664626510801600176397382958461459514368661120705087009379669132341594080156142497313577369416729760061302222383017890849496536798295988093092506144230831474870086656150037701007451322932839397087424660935739916346517457295875985502191881729409939382481447093702509575193397606127896074978360368598249756054970377582062054365959690325178399204933610460532273220549788864299586850801597885701207974696874531521061198860744192672662104050502192672893533450607935201969612669497903629053023637053390306580428118164497555121267061355730435795493838836176527870415686012468967575797271499325768463056502802552019944070685424459052067999651184137809698836911404332211550961912809175561289544390266742638522683321581057684923212619029889947310231838317602042846172227959258166574534977838353477868775821513310516702996866827678422989061373052508652192092718416637679323060273865831252573269656516034273971656781247482887843416251782639697949122446826962608146459551231431469259017619374823294717335016130711059454390026796979126090333833769637133861159245004506240530539085752229780620777706853980805833660444025804736490417572237558268642831724988635925806613127066466297727807922729885372247404887707566874896046444297617602967815965793588818824629246813415434659617670482541572998675660628301121098252380904103914505218422517644909293175809786400219885754906560288877553720256278113310072170393190191556823508033969294807495470268901962973387339157391746325239103798413288362113509628861911142468950725043978421389122256390774985709763010615752936516231198434490839847973698942506089312383007327806925675073821692376681942205991934899035204698220520713720446112681870748980397074535973054682318490438502579672498311976753189218447939072885906979369807909538850964615527564496321393860095751873912284794160668179774402733177255509892396624569081765949656242378492840812675940729703194596172675519419255496052296547859211649886494496616473260633628356176034165725077101399372563592481684398757956970354979564194337194216870732297877870600291713622781189100396599796135044582390737766261217116600026318376901159206789813310696180566265210356334745311194505270074635524141872347841027681033610190518124144241117941328716833744350142856369606579876304187019077353355482696766245995344268207328772964576503412210313635566047004857309784873052952559046623425042252896965141294199344930551378951417419979237782789378481290838440683922182936256020826512975889672907054631413341014494891288317427667279063132946030171127915599168220124043670867871564699851457380288315753344360824315157787932457575238586074789871912768134721004391767038474794032131755763502588476169639753581196376099938243946340509769554142105951586425845026974373459294434270682573728820845393482611529489216838397910556416260091491753192939243891404235341893339393089216278007264950040138961595262871133582495237524253035714076431557058803388862245356335532620915747065787168064747793512451655776186304365990391855216267798451256308305318250286181071855465146167736007803721436069788065102491660034895546629785171323618769093347263385509379162719113373585025783974008263653302887309610614707055413459827855052901618751642633645238660891558251411594412589163292789089044131500420096995787735139150943734082709288857739751108506064840251432022093349774034081414046776907595957311924366495720411322153807401308342747424121353912202314787341479528819476433047318915628693847529502246865354955494805671954619589406943012603410497404395434073954899031663383072497716015340537774007358298214796966918587100735609207208171964980026035702874170950599201339316390321517573484625833230512024343228831586859078686810195107528592193997678404044695146305322975859338996743730682830641049012543678515676407630136099703427095260032345804236028309796531774388004002633175169535147012230251897229955823295577060588339313963245115356986503030268511066832319157624824958557662588254057200243960179032958595033525700014661194286850710413718006732681767119309206750355891278168228065634989908345779925702561331974394756985608486071266364099705540272822253204460840910004722640955929038630678385682941000703735795914434359018700128147464925011299370676576601965235802475125561416168637561589121699116977709813211339388664559445518635234037833209865954450735632896979291006907666919251261123061432030059091417762229805836290180597091920470303350923669787041016396207339002358480623776374828509292001596109262196338804804322686779136315498211562994148633091049597536679898838507533929117550525448539601298086339838637598212677272808545930785781649318519508863943231542324935080188208482352174448094956108403875358571023030849734760387906716963361429287961363018400248136667446817405558734970308026897594974056823286866457976701215564794372485176211406461029856081814523155143357038974944347536945197087918481878446778100307625611757886226569915647663630493796545687193858836332374206556113296209275814498450657059832389387362500570777874274083627030888013241165296497660781966152259567230236415722514905789551471323389966427254941306908609934420249284454855541977486248280708346267879905749515921167939366295036514593785506405396127273411006814869549628973991470070682800718261865320825237024006512461999115071170794854894408033883965679952657143997168089375035382907242727185750081622750878524271633882926529184140207760950369849277470070580322308098022011688040985541795693661484034097871032500168315739786489465083440646320821951163043981971742562751340124729985860937376914965864766660626376228927603873190731665272975477863462275206783067606325998368296817839206116124752079628632794690398155008506194475945078415006445895259750319800631039333653290925276075693343209278967710361926159167195136880888864533376859787439820224867449157735091750449797225424589037957185890436381809072637360417179689071432799418976658307123002824085924412672427380061595890108569400123752031786637587745888848206851215762847332433482578390123753323868746213071452693273795854726594109599835943824021390280180595078766136623726019204942935333196720524415017000976230749933641956648461934587504469344954952068613422918512563155024432455783125287569645879827489389377673538375475326181321516720617215991700732343474194509991049701078510283398804793038509994614371264385273865786808068044264839787620565228434821978316558550036077901145737453181683734743975103754582847591469407034983938910768614627979966599552550395428664910600271405340191860878284557732913786292135381194987531462511319147298264319433539918533468206166696680752228852179651165241916380410805396156348159695619946660424579474385540137222777981779523293163829305980643583255340003840361666048141827950434841661341712593143221146768736526498668953220695487499201230847157114787950524606435519346640866110769736402819235129087618906816678719957046246219751105058973694724946295605826152064213553590025718136721932045812782878063512378440829207871921959267056606737531664073881753659066784328298451594684527681927684947920114367130826743833474365077109192174063030255024536998356424126913378186418318751642604136780232547043984765900220394278851095093158767078816780167798995076264251652916646972164986954169052086008327409072292993438375608557296946744232030291472266447167301022388283203571967956357053537175264267057161148398952129733704200678537815904741011563219440985357569806536400813144536845681347234172230315696622442394937560127347351864532256516851127378502259583943109451416608156763339486531512469409179534610793784111594629769681263544358830661685765743871048125976373033367285376166727008101785884451547748615590173645038478872316849463706291042617396974004225613091780988466469966594396601811108387732141022940776096185136834377101232407196468955260664365939969756513160424700810955114201068312701290069883412970770355154999889840876719215356260267569884222066056094908617332323416170249470354819917631037431842306961937308769140684176742629887449609011271309260494432703373403432093626566189753042963354696318354952335552549718777917229170359957275224118342913070661387764858810747883290819421556066960420861105477210151766883769322508490971004633408793428855705622289643886546127081621923804460862713428170295946937865644790656903187857415104988541918180560221066079864096273525029212965186755767363926063733191873183396235764172471997520966880267578064846292907302701107234505326023115615582528891667014981188915412329468508857737907444756724004169487194029396156944116387102245365999908305668590815864060398232913629190065603863889911494527920743300391502263369033135661182771516080548177264746849297826147850027712600828572199066975067490434132977136871957604176000201572358478736241473545631960031055152234706109275722294393123391697779476452606641543761589622948738583319470182776508303992243508420418912020373302337143477446253750460703560816556593906533695379728003267112749894111659284026220921759804141606280961959028710072193310820910943338600373245852772346030092214739616901953757341393791024052522348227477308174339464034532348841987397477984791159994998763921048351342240597327357019002465329814280466648810156213803428751871981150093356177857728103261657053750254714895603688205691658415226625817609635618557354561436183159084610186845148207592261123817651131007840381009659736106930794506352986802248505528280140544484559046953112770965627511881431559898109452952300250184318212368910307118949521706813449139495033186637651047624178579673336983830335603449892724343309735466733529631842088328464780575531617400179450874100683358088844938828558725098919081917435639272825530716696015580580957008360613666857191663616234257450400358538563917303297659812486029439016548269477641046762817287060613141411502217414674509438309306228172901931498550916323502465966682934129507997549341400429384408280657324310975625676176652113675589937546124001208495087580587739156077675641249179489042322477340584223927292426194565774987627148143490772232866253579638212162245302464671607915318446703022989132269899084574634605654408579604852905100180070541604198788393607127202672358773712171637293380456046003500258531998415767255783260453742767074175983692908730603274992493080080290280678241936736526701488188822177216895379290503923321242748113798977303499220776331055904634726726049828075829428212573837075366928803555264125121491874429028377083355303292155265871827197542497623299918713440897723636946461830646236240292564499858251779845458502401855943603422315554969566270167474629848054616396533883759970685008515771322207780715574444396912667905053200325337675916188137893856702176467843621282890721369001736125592981154052907903157224658427453659399711874421278701067890592391102759720431818218444083123555665728976127260223907001225082847879163359917491553158286924152061406979108507582638582111710655379144886443117669866619254570784017230231919302155711341545485480098308580981573994932424533690715036655767073580056603898450442913606080428653229278855876891576466851926436406072048175219042244801019829688836915086681061585007135792675960302242920629821879913082304492590312301860123117139252348237450166855807455731766243579149362165346500529195656288762252365815680506719305955997588035567203686101350976906902361274772186956931874021597032218497566603443499817326466598192288843611885758153679401726123029690785297940896330744606959513097259911326170387503352306435650525855430510470663510080224435002908581775414749253398213714444102687755439655958138516636594878451364200137104188526804814094370429905718218741659007791938057387317746027512954077962644889133007703815454632246695858132733669795063407724956998431986697175519971000853454537494131870312009351600144158063087690686403170183087680469694644624503288501179190922592046638005582919547235667332621193877404911142475568854758204791096861923035418638630702622447885559352592349649901400297135364159491459307422324348525192868598428756332229576374356450629703892938535435424459095404296377565490737856072163548003961151406981609627367776349293059368868202977770726558162060034636763492339795560627928516639068665305514924732179322666052615895714350359849572137648521048437396579374147991064619943917125729038306011076600785857607411933604522034428593398762868998511204629326363555752963399420753118663373918517897979562534613001765117783792290400315280066004964035125732848310643836272057496196512668996075095969402945078805894404379487216580320874260901004242532202130300907429829142180109958865180836069721084927269174811358415383670848940290287605809101404197254765053690986769952150368133095055488718028851967146815475109784000896107541022998490012184891284662867840620440932088714734897684446101583096886719002067304511920549375033260832353442630686009713591572873904411027441785479329888017836630437714269165821004137859431065114296344273324463313575296356242041237718019063484620933642974658448178975038780620783606525369851326448285031356114228549310161529086078585637560184862264759597302678071153312952988912923977337642053621840501597948892174817953077378488481164352619668759396851931663566323823859337234536525769553755375282189038576258374733634751872261111471253891476491708149959128798962780957131495969698216698436916269124910971936426242683187225134387229160845092016221040892046997300004572331052742227302206195672673513590968957186903568389962214713970523104922074526669134206646969016520290571251509549962913500088364996929115335042257206726795718202135562536915928779008480766654711730539954283401141514668243434836301900671364578895780288548113551602640679627937260702263970826307012337009030800537468980205623175694922364171401387548804730421479235660140311656321113531422790688430692414938112144028846716750013539523985474090710021008796048082194113910907835236514865349416846771554789112146717839044223402277151993163453750829298751546978827134467224440141450424215263380810248373831445036029590522356306459316826469026214816528405597755558668188280260746903572867084500357789608104062375992745259367486828281614379000966221424183515633460632492563557511974582362510023277274088466041664295732076607789237967855242444298046639449850690236505771540041906243513964351063430189610526739148404692012464494201755117534740874505111651913126667829967733560723591950828881654579472087379205018611337518085730603824970915237762665062536953768682482422439478119348971773686044627164300374802250575453305167954419390146777826214082367281091981287268078755681948884532645373234948281729371970394609670406975893140074372143385422282354968084792600591989422418783467398819861893269021802549437305434356142830966573641727939782196619186801084662444008314723425094542349257715647635957997355919707465241035611960647638926759903085482715358659076846359250089366122486475554074933276763043531491782033030188785685445314201559883955374724285843604191198283502945770904243951744669217798476902054509430964241446594975703131242457950994974416230541192044857757519615451024036053246869585080788770238480819629758566723943389541979375443750749655480218722547679561576613836929739443574519063395999961237800837672576681289737255800792646029548302229445166674838789566684536572097258040938804251198180737103017003795803321532330477987137812122811440007449718132760702528791206784858635703500227980555524969876530900721407532552761340284238468270551401661504522480143201968272033827583544374516081154723340962128254612470572632521174177382025985058356578858356196160057053879629662488301727737580623805208903811598618524770070089562545220852386518105808361227964219132079068542909492560023386385111099378391612023094610834142217989331451675743598634503829583772879695280228429898020454456259632951754190257370818560072495103334056753195721885436018853089400940573648784150103400826118987252228046284458058443211500557042086466825184632195786170312733881668844403665718923945385151612205381006728672803010998147459233617817660062427134229208442289502110904376069085609901083425133986737921692516164261888445586919145617585199599705327652892389831660712384031859992336626876184784062959416806153606957330884834670304501743361489814697322674173373691509193420245554957154665521723522533215552472125874593507165116039702087994398109574225244804121537223932681752455087652305993473863066066062269435826139413118028265625519093812459107256703190056694020808346487994551956348864140018196869775103657687553629163513886214462702624812065423591267300776053561316456677870797027534640724362631204847793846001361016855644933445884939276799911480496426627403482252841664143361463931048410830357087967248534590754265807370176779911249672443653216514865642880139887418877384721979149785126423771627559665081357674872371273417833825018818315256788886264518220547484125298312637340791209046438609754533384129418700002134952043527801654408865083879410812623648016689292284958454344390212843661489644705026404681373686596031228770640741971709575696708434788510912701310248576784818752053360456210808428761657380348534908928993649632299835114673424105884829449894689471280426373052921487519115382102598096885068298280154142081248777610436454715630581012836834936777475634870683257028802785405993613027706452019444804286876066948603904337292831118979759608585164064538694725435732539844567430706218478010504273777075064235804613111893932910635801207653015362078479554986385511755636289785111432328057533764146260761664907050756854704955014645204543423845484449563365131944061605920815397753051555935849047265068096102501195295838930968415265024504385088688006679912984698462556382887551245890506910875927973201763466809504080228569410426135566233216692633921894962060612744748252602390439472334938038656514553433641360173619118863363451333329207177560661246883371604659440717315491879825458600090865248067575639086129906185034351055327130314428312284502953792410789126691732035398903727661591682622737733965865700646586539433335093328298884715462527861886737563458582058663510124560886725467913094437091856700296573417371564973120828650510924148905476853297026362372001471191706420206095758413825888513376145728493905290996508873710923496015485698084419553953460359405044081257560442156795595989843467074648245766217169794109132238162552533064968277046362103498497486642876165727241421317644008499788531411152263012701192766248980205260115528592703900138929918280195481729199739891514412228350929868240648097604082616882104956278462090173791327278001681182170150757196117440329273689604785590767133840758250628894695925680144738019630914347550507938138347320187226395114969846379072571859237285862612655824804519940474356338210555389956401764270102597284818728662168104276633690554956161620143809925718237526365781320350901633022005495810643578227140215483648465102014953639108193314649169236481021680850151685934890073954337337960251182264059491608497537176508195717290295415562821423928781864132080790753641467718222438300518014189330353653558271799850834274644939050005557529822708960842339382944847014845857422059363562876759367643905590361995600130402338074939057000215290413907127387664157645741759174842262147635691433498052757684496479341311187327548841351668325734777127607038938950038220592596140550346102509648078382758931686220678281324317447923117869462408730753258674436013747213975716058772007636770950326844516667967775859395781411978506812072956195331205824380238319851709981365798478422445320311607021177297457999613904405512171930939481564318397853649335176005324283195499257465212043264394942699326468150324507779974471212384489931612149961083327024543917583737207484180627438120048139432224374961984302068898321262955712023591905470915547014519647227958287910371410715015228123112648460854760752679973670260889505912360958830122375768439049522323881829058309112664590283428506426017220808653838474339794592266499792737163953534502954424580561640932887232899529909879938456702710922096316215980515337782348972480390453664867960456041710214106603254223228526004129822971816745236935764855700772025803303916892336008097178682595261776885892464632235068159298979592166891565703896245567782633047098449445020445147755909728531212624152710535690036160936168640822471216869818931415009490738555223224102763228657900464731110604275556462542817810788216180296044935872144466455631913059572800973908484222179721898355331965393154628754295185469900719191769079695422626277534180503206917386199036518604611577544471136136081311714390745632530955584263753533298268309654513728234762695671796772804766835970244052681024325648759004819841176682568848354348972039676997409505286379831570005278372937877661899931110661656345310035551190030338135035143744606508415120863146782807595956439230673110435597289132562759116124467289511267724236412321308567800422868440178702004139718307625503490032150190667372795796179628190576122182217426844650723771759549297637163915531408233688363130079623966047210238289526148148970781784456952332979145614832902486051764194409391018198161251637497011312994223977939285529235055131349516868851790407375048110084173461322936198173501889446197552268751957320256828807497703595112318653841370218404017888009602189179730797519359365010663936453449062368565029833857653267725608458142883251583135532508553263313013392205207430145297764577429619218244842505377880946319926180203245467145980969619438832346814961297823263329389078003245851156959666709778009856098338068360093482715799315558869305711345323252989567954445757513438824843077430784878508333105118094527224465292274659330467295344620178547619767091435554082543389897004595409136669977575226544950439396554412407750162999754497300374046620540599284572912631376766782307306995986749627425733951375699867614270661748244158449079865929768941817876587694080964067931149089795288917054619691236940450642964157206997185606358350707722722826931363780986621672100469072277480034839021815783935416020177695401111561632215692290266270161025976707333774588830217335276649424474269348707691538032219839200376264080784924768106614133404346682015182453668347425837386100883969094181221719709099783881654567122586101172491297794510074418597295564025845820248747501588881547134710340465731560064608749691556905168511094767937576722676711045662405593473709680937246005569813052200267746699646203991956092877289419318755199012500494662170176901064443492086212174474397619652805750852413703534368874279104370098299120317506800135279501484768600456434090511010166229844131954138516348654708682935616532662769510990082226686617452988357504195903749500804466754516051164825651932209813096897411936109702718035736109626375495195435181988670737083869340877131494554464956251531327008550808136966249750443198176245460084791081606612471991084444216284803883329410338875805096619840373139509014757051777033148346084849915896494297188380317631952109122092788050141035047979194951581198800162733907844822905314684194003948436353884089581919861472521817315907578595318838977882397923047023248671480377074205953863778327261577843976443920728432860261491877582285331663763656380739467317957580739517301307597555563946039603593992507197753615242348243492858149948365833385769442642775469821326150585722872481460110305739793396686518954142445255888615613791995776897370827393849463969998708616641224408543261118834070784838570314968775977442631475962149719046521991326213504214796319320314080707282233862852440758378466378045626737780671330041634026323749645262442113516246311442579288565138266921815748825471390335518522774445660354048516120304230575224749574836008115295642034280496677359949201025603075229588073821593924752277275019409648128544655477862378717552333619132251978399745848249044229216139868272400940415536044733568046046754446369733647817356483431793170251915199028073451891004295695578749555825617769468893112523813709492182495603892789774755578779550985735904986475223325143000648000326009933817486713918371647409238707596080764328077326109181572728123891532340946106634561162109973917227079992559677939708240298759732601901608257069168751684930997016078740895396000126261788962110309114297149767967171074680078615766587442399206622374106294573956487866902780754213729151909240721874134698050697381616601665221982358395971272190686427044127286305742254907860633368353216393973626877243668887295376498045909130011218085154264578736322103794548395195826299405019785007008049582983312930578683541809250592433147549993320394511923515794378656901963490170679152620880860991407023142073220100291266360847034771938587460828877078850726382864150825976775945563952263179078073800856725717751065374498312865449593705997148945295567169199973299397747464197096339950541740007954463957508991944571097067481228490680547055613931324054065751880021151893705728488621055381518970612354281613333061999332225227214926914704764463193629108742915175464040718413171983961509033937967930034699024215695537977614750545179862273070698413962369832103850510272597610960744587730156299758536980838027886129696507289370735282546254453526018736877596735185834600579622013895839354488420213298196509980413328515488713368889931746116864090677211169746313694916949009678388530417308124237711503533950502049745777512217389396053087433589646663035841116403641469170626589548803542926300372606288446414258189559822632754856768456668568299821208777313350173593615986572924547978650739509179567070511267558328700962978035671708603782914158628192062514192271191622639842628641859957900625569580996535468154186704337328542595247133441482125407888500286031604040037742472773433296131620589312731244453536857248187981771832456623127511050190432774067705756748292805241495606837543604895380796284310331534221655851268198657051430157899986701740006880712487353277425744357930721292173152170085457011241827623182132417020972630267055955709815817439118880260842828795511975595932689004833952234520055239603606220792833737984890584007055590310635776352175626583718436295502033944308107126694339477572514724421615959110423661358052396867480256877130444891831100996987875367176909465909720255390352037038497401648114538398575625788135353202490875522339310608070071585389994434992312245941149364893592041291123273357721055226964129000006552681606223594330596698960283532622876291512353105465834280716709327826295586870936126568404810600273359713005317564241670630971474266511205659808587579685579085957158269317576084108105905436575432047252793555512668726583431819707061468277635480756262979653827288409080918474559622295094956065309409357637300525202801973701694591107810998569492454949746542912413400533831359338665867101041823981697943154685337905897354904630027397161318455067974042401008570967330533985987511904848962909028873406922792382003911486335726937111958149729550875510504811146261900716120596883268702654645865550642481895877682566943443795756235838937658298635527007009005295915448836036079661945854613449612296414408436731258210013586952798620362128546768556096171377071683200312910633203848258538748706821801817774284067688485061014514376845004390801452649856676535558667372248183749941019432866025200649684966869491328024784332458601390257031983019804082958995127655018730951044261575642256555839758168364411170890107597719168259546533414762417810993249455227664561611834479731573499153093101814212151440648677106999812909410292768431952367947564365929404100874780146916689806841196641725319681180140704816071955874565288998387896624002849276808269667309574190486010702615304691903924819551359096484647308210707882884336598832866615422486382105764538315744535523070046345355737569740610563708158744749319065817321136079076567375720023698657947604871050756545304926034855313620929430184767198520027381444197612498921101366985086836794040384990653056709125569540973943329631546212374038800853235071412446898290529309934856612809502864728429276054851633017679979168949977744429351263262064509324302248561811880220471899786123773585912207616332860594598256014408840273563413654011014341832684623308077531590383465992331560479014363122529323114303758828492249060073232452228990602031459533845204182576936364550883846806031802975054210553770020057757944477665446684152115139260045696120818883398600414454048741169213994398758485597929868465828146099968557023309631038146352905562199829042836573106577235722629465168621655147856425220182569928400932529214348299947692050626908104951070498344597893141863571297960905237924417217262593087112382052115493884650464698431153107939884786736789365696387846415284915358698977487037060528775887238955925847357396860063139004682538658628927697099854715688056689323092966271824999508890777616942024976895439330233523874336049623028412799699181407494816615548515842171436256818924351435930685547214458224763415960562677508529291306118633489178435737517653881622691857302534266243379766537892320284600552818229871297084361915577074259926647175109538780161908659615049178379960490405891220564897264672229474188293010888705337559754379130163141332293332666631392853631182418025723203723616103358338530336115029346308246420848778998830171919795514550976018227101768352235138871356272832417951206771787135469773234681519456216800899286756808137189464002117938793452649873203713086313754671145857433840091449871134222654965537314442637009402660714538085867102102420097011153863008500461324978790187487946091861660617337383077734117847911582926194113069266170231988460135698204439122307676784181307544739369502704610683136380100147602816903845156612608476212557916286287211535458024838127357111797634447904675012253395924390120322116740458758197884572891417578820082168240642527031435686371083058045778091309641597385233895206790259828572810485037059916432469366144249939910830509413521247673170338089196982914061644172494333456222885873053881448874660911285635152637411149248370668916729650623133110546716201736275917439002691396615877698016943482210547305922333907030371681336441915827180405723693236539757611612562589536799869349918340042031939599348864140026008671630447498580429877696566059546545819168618722119314349833305868555093972957147137557467998287192366107915455554369841847655614341125915129155031501393290019682804510098018996050764564701301682914720544990038521930772465765573051921353449762072604874999089451479363929831453944154777745076667786583942888836227968204558608692156750076079754075943722461394117738127830653079310631030284586470893509864226562967709462269373436203299966016624635556476591944361072109419116721448104919786727337663769894936497100149727837919903379353702617571147812738024360093677227457041103942531257243484176271001509058102703498208032365745596616554178184311746152633234269087983669373284659954949308183643813511287530752766491434840025658013007996040139985791747153769998353639313007950156553364096404086863107428403735558440500062501003946940485250875201549889802039473421937867891280158235255113485273248961539279699078481710929189558348431795238601875739768099218106578459970513082397074614612370530116677232838395549461812137514910621351200171451854430060414618815585040791064816871375711686409195820127930846403649653242571838706719033323717442618747965256169530640739256943352992068974117455677366388182287753657558976976669873983529833836367749937548930052570799066701072917606929850766761590589169244003422396586352098052615947700351008245441073128999102033559422812872962939999246880879559566672633284404774570729595984321253604870198620033940374955910822720772734871220474117424615138885308656900875956797534105109424349786532126415513029771275318398751660075475219875471086436608381631556213409168213513782818235452899416934502580837905044028997174112936253744009517288712479377350978901557914681993606466056045425188938893742370625539049259495480349365867824537402876885277555982516468288220407914943271664462110390641340569501120505348956620381737656783756315199131970335163488395384892593296570609487583226797637967692636894721068457649791520361091583302749680394213368423962791287513406354684884515012636512786853611659729696454335507282570273034581263255528645525908659901119747588546218564068949311546360906202083760722350130044322143875171325637362524804340162445192716295334960035224316900525091258582232118301064811830696322929892903117493330904837419496488345134751259278145021695221837441639063008237318717714180040609372623912124402870523222095287019144850465222656182643912989849350720268093742895723351963776649703190200261665000340493357580650762401444706229033822926108727094327502063972433019493762468386979896828611376321071271411913694861899350536719383221253510967877256618183909825800797935809423640037160423588970736840918776836784207106967729599219879931044394314248073234364161120512004944075502880085236623128325770937770851210826327624971259461152899944911542909923287482228967082032096611228735376569309474109465560613250869512205481776134405262188682544370481573442370597355578541991415793363342341975722952455681717847680862620466489640819568347070586602806681636058055548306697543473104763324526898263025656399501272474904159051381273156146889766180766446401227229340021637254786326884658265354009986474171340838313066671471174539085886684401626644031090211868080374315626695039164583616391372734082038609901565974340904957374375483159393243162969060465312968976553584560562205311123864464120819815969660310746765871354889561155156635988741109798392371375189631944496455366822665428003037790285511760377047881144451664530331128130108070937633342361051877376633663799351091055945261742785109924540061825371160513716646340257045877587819939747304813277482472070183183099404855939519240763636494901736896754856526297756698148315785935965170002663896639160164920186514886583314505914578681685590210733252979378368017651127607593090799331080772892580578826841848283181548503032033825229635269042508197445607422544766313886239202515484695831461246332895567619906136781768720332112372207374807611200512427776231479711329294228113014423802563471223436069528882236509106453464207842810475796322508064908351616413599753904115695107449232480133458822274776670497383755019440367161578671786794013834563977371580828737775287069274135617869188968812283135311795072702581744396452248960457055446389017592954977260200807642869224172617741991386763371746064833628783908588965355906535806536389015685726478770404668232053556187911267368636493641668214988777059790758086320461835409962282088120697000288916440933972800036200223719162159278458760095315126432704633811760697825471563886412172748339136332703260448979048064834554185623883990948234848029841266210534280892159920901797132887305923931561004809281612602075830509367453981365793836490828651199990830027197016041442333766235889415466323077019539769714900633064796212834347106181430407860388708278085734162046660454607602501811765873933602998630501928559388020980270651767017378340943425952345092461708416747537371035184359533002591802875395627241251438258868672139011882691228737842663676531198206426800517358358665669522750653605358619220912393998106773008689794861735455689980028700294209673801030880595945519367645594224330068457691601809300125939500992529511736606896774686985686108618948947710548503780435924347552559931442854783731476599362677802838596065143867912868192925064890874382195208812483207465939029620548858860178689624552106739534329024840184654442833964117172747288001557490415039056171749900619339526916626345119758229984325852114379046568579877307447870327623682629871870278033402030122579276573594541168396870138176689507494285544885074357915769220584495679642014127311514794587113052796675820363925157325277721778685558534676449955639258656345622532303675397666193403483808770626950483587995028833467748815737841867119531502779755106460351592918346435531391923029901684282603469470571858867843132350079826589021299134787032555920787665542723811466842274913226107373060299012591132573228864700813956568794232713510211991362625184290806620037037971500626320420645174309014732660479517089189307245484195874150895205523954463036678293865341430974720961792546282028885446791348103294106722591585967537873901168785966098932321168137952870156683417089511566370313322398307789933057477564932389686985241397960317514536670623425312845811578004514852516988588364386582951127723078427643903287173426446208924671304069001642432287035064955376096095080082942083437149681668834569435751247531227782902451241016412855401851927622213096576129959979546082618448968628794853177158281054299185225469299192006721364981107352775324873936697796473990851739820560280183485419133356844752650834029832953453914758952883847256551531145045254574836560016832564266616690638871977232272323649418923659229727199345893941539472873041762321630508645975745841285662429718850506290259005556848648356688633572381866135706577644136973207579398765313380057903755277994454199593703570815566483491610254361177807911261121619015900930589751171799367100142472833318011888035400733152421274928454377237361329325342392653848195184163547247743846703874500845815210129213504602005131125756101392536729475448531758291920480528002084484454279666011925350761419572412501161639911330628772514335105571497790230797009423343861889872674062921485527975139313763988949418130977815842103996153925223307377661454888396871952470271971606529518803033174137015096865969144570397073665794239318382850087078248588610967388207875317715770295240026409737304725666932827503228301784132648041016434004949082529153339333597024426085921127955923132238946081536428947227111821422643045859210825970276153421285799876164796717997091742559959426607953197310554281822423633160256621603173384431239519855423784575143004174021223626677124763776120138643092566795969081036538312041937098063419780275363461591527985030737771874233021986242147936885107601751614736713243747244254559830466331401973835832986795116563925356856295213727427146527078713020322713565599503550548333642762230958140481286079858030247806067156507401442335598655486111348691786238865599280814009424749860854442077252755057900041699779175105011919871213796397274234617631008726290450453225514762996579717692952876961652392409459629872501280489384962921637429360891291584489428569578807847898175028665903390345630640679655246068786779657530137974003015582013589373436637682676675433178262437703669003850336842823072320929734481125271130099170158594829094411581518992861246216660689132823511785026252193360022256398396124898840074426884226612676893130019331169063643501349066327080777577410163917315512193868903069844582997072748270894482985930654962389824272207512270177194481758400589204456804193236274010242245709257032485796288891469347186917321671507278614152493589102234256656051431536120892992857088516275388985486084549001683468114008184956999002142643235494797418189845288470830519697929673538458646727203769678545950213779111862892710683243133121380568611803717414708820441790204038979620275545135313747836728832762909869769511772141653915498711469563659942794517379918038532140515719595598238512222425426036324533956301025657686916162817859578240602819121278039314385417644531811827611402529926248848978273668366233377435733111976975073412263360840724282347528721176671061663655822990572268488059967568483020212454627880309109961844571045763068820059330062207160310715496004803707779499014802295103031115367166629789067479921030413291421135689645651535952589899511065611009738267487185160534223089159560577122854678974402539713599522796364666294437409166569261989103232612825013712743758041740719034978764676587941735356790321159534321313924552606539294181296510437914433991669738138006415011263370780942198251764957573355022979184697523239028925702862492852937319651765830188216487362452112374263896347006623927231610238544611858517944762814439196719963036036972132137342626639990131271988581428961732849446309037616881666306397523990750983807305219161320915305225691238926805514522867866738281506029943116379791931341282847953252067156247706346826019853632167792747100202748562971814443699869232205529210378697456778857462487396176122106500354336783928857853288312167824792531945015518020786302515717531851822342748317587960807377912359052952196173105622880745496453291977217831001172655062310226958457930707066604980839183080729589159722820979712259405329760216073340147921641279617688828372218566362230407243138355641991096826720508660729828416914624606179879307490041042446466860891014132240028952471963490517676095510918875873223019807068097681182928090403936855885568238992105482532683675960502830805226677891529936445659551552929200491442650733720895700938832532166636974140085115593778256997699275115351079701390622524380953156472177808225633587834062287106160272416629993351429987863814906965469728868562946731179555107886881700291458385370531566475145307772160983987895500375044205440230464483596593055195237346936650515992526335200078277718023798900599321602791359861902168254793190781953250021718734293057114565542426730913299250621568731750685974380375720133985099315464119335720001586154369818176311429793494850347008260065882821895264979194134041133108211795245471390093268769919578648984651831735070975428946730116475811890135465388573791873375547699534381005270677309893480952411462331881146209856310791286547581997359637293770441669849673401370102006753957801122270593382288307240718615058884806224340441256252251112145049574449434321842848568677298994180618938747047810094288245897358193298185248803489093028462120000014761879505934201575611103732219125559533849939166991467161764668229996615386354212254113248753463229368294819560365535433666167105646064518202480894270970858906308437733974781647979470761452662307504991551292148762657786519034298483967424280652478451519115682944749165366742965473866750050163621286332245355834539247081012490327216388994212247918449959743118806620185889769030245527656437181034396560244654075833997262507055404731774447553664663182641758098938893502625787243629451375884419657941756352690650246255555488350490762889449068778170788343186175293673269007894642491845509685155970476338148824600370133720148302243260752520913798917273041963926663433165158415247538013786638861831882447901435226147071500463232905359014601376711144727542946021892471742865455167922334080180142491005224062693437151035258841870965738749106950775202089980850744140029939577803696202224620961277047664736474561382351622614333502942767839266227833856220106803149498689196749350368924699160282329092205419149935433691191315099148842232818861520879107431783985876308993025516248610624110049570181680137291176666140323832624338893297164478835688782355708305282696349054732641270655176921243532030779729250178400817578728748192463412740315261846836512933425036047208387235396982729655015656534545858120730468590123429032957778963549594420834888855285474838999306517235145134708838900330567110232478842004200132815371991735602174387684356524341742059647183277669084547711917635066709193457731906643344425304551090797671092967631221185795393087307436840964810075934295410772930821200268325190829805957478512714406831196821928038906255587934263626380282400988503150139563992907032642181170285120822412485155199396541162277924588699816435084644452246398878741966386196239756355010491527355412044349977866238650949355923627017194640953355525572290886473394531684562473030467497044338877492575464056850413656081467333350826102997500654894008220548548982148361406849612727401747309955242595023023905923618364002960003659755048060662580570080847383858787828134975362586604708778258077718545959681301649002255762238539763213543496927605411139811688663459626944571607732192124445605242840818441839400210503613356728761286331197377002559646854465283572998033479695213771076227642862457268077027200718318969753036854541063707138813130150388424811190236500104357529788225474321221578159065589058089915532293157817649717059892694139974867053605282279951405986224831416300228400775919740571196816395790322863827492263854821905731845602590269724142917389171729471064548576175597672291121492560345808695860404888419119714541469785020605996506981145029782606062301173339949690497827940160923184379144481587192417767114787318652929037649238534771509613508546161439336361221334941838034839267424244726185429090753344287519601590451837525004330322836431261843865475675623560344646231925367047296494520669084527542643900483221997330435381309683075568097087380043425045264115272339995361313514090864524774421058559663425987630129144250787765166717414228872613056771851887428460148975749481165787291498324261246463314003076716930022253463044244218211043526423556389158018172387214434778247673757269465569336876373301319701730156146033549255153720373717080783281502229545086116304321053823249259948577688118924391862025486485524988494430713368311150928698582412191112486798741251903889004594302048958073218139536095354663902157242380283695958032646195647206825389122856760579447742126638314311873247800681756648356136095344620205494178936259409615314570623796621128700603457987802806758280551605469010416048037224307913561584204631984595477944703358699119771981863854658634691431257730379720624441505098934929204285086550322852508522127254207668125184973342450267372588185826798726348146996507403844811365660159758056042625776901692395791174134820819227465922350714044462734132659179501664246761215407901063957732482272710444920866907920480883640942526198981847671733830713093561406161842111918844491070611888545309591378439606070959992940593617910049072384304922536403765320597955324989458891821540733795727409134878034383594541781991880570889310283495850582018628708250271842968607692495605356399667354474285221535898177706667586732567461773687197422859542110193095185010484805429445173808985237968866268627176066404494136511894296816755442982585449036323844213332179300342206299383395325351593917146107556724260630794780448600731728549169947257802704656905903891498229129822903548498807430576744521180446603620194093075176325983164720541695281224323053337205514330570193912745851022430153941935354683580451836730915484833997308375773250380761405234604477653444257897722593507980548723560400771216730591088319520313924199528863564932565869733122246372906573265700355981392813881756487737579809163551619316409877856174726106599214802296539087823206110575710749383458310332560005199441943628930738480993087489026728042120135701375592842844838785290773212144456830861591505275123692630770320437914569509761564408874481942534990699404993948041014093813949136137117058118480028727859423149630332813384825038482412211919615815923500871118945317105239681643746474907301755313427666683990003242865152508301731296607819568779532246631542290338054005199845972633412646187885023561568319477599329183933250613166094045669513274618873134169427987588799648883446872765046585391651109375134789943846700683458932954829053243592484865986735686808903470696924500943065782909565977404666407723997693736849674573594896393919409517554188261219070481142822967379470529767555489002434623286195509869756360782820971831489596792875257411864385146889224730223653138373850238999895732361505321984467706011193557823823302296989403594639619521206622671783064219733547362263151598989405249219354807443022273501340569022427428078003707199408040572649692679611816924796463382178928917493049425485911158957477566596479152212535820026827642935113414568145313030057639535655312482663193876830049967660434069123759563002499551515845949206950914303158213005553390033047290309632178471736674616923668150307737159463947610511860139455190161166933903657866364286146399332675345161771875027611763019467983375422975291502740689549712074365825263772076761789796624547899469275098278236721863178067006119631726117336016168636337244470585981710789673505044974000335802614035491865366434627793000181174451936574353585263257688501614134158433252964716456773100698361801722080659125846775304551659040592719358881466405123417308001765044928484281519807184836617495861995248841902179171269355699894681583721435590594873614534069797539078699257963756350656469610734354888021406221216722182851664718988855920832441285215008829236283087120505460498921394781927840831817465903727667917488486490528197894422543846103086543050166023461615849860837351718882897164257308921421337572936168030071430879566396952001581758814170173423587442605017506948679302115586388341798628694987898881192137463466597568455390432401789604871324534542189754990965603861870459746679165767261299344936895337808450307054811137352183363744278469037110290131576638545161050997033212020852726908212399314753381218250897913657084566604305051373790397241220376108588058609402190722144580840331814379042231356487101765401457629946474700655563772152260729467056758251164111310087615670774153322009873065719398791774921765957922345167599781701521670077495837427715876231855837536440470634148360835215885531548740329583755938038630930697452677690507148469539487670133516340990085409757599842251175290131201007661719322882822890522628447237538912209241524719469908332288243701109275949893676863615549582491708676216342442883087066223189231129130687842872883266234047327632391817644964512646097585699083684513683266941968703559678773210430866662833647434446488878103819880807854415980057807150183921069177048893452022691128330412409001054771347828098766607220115902372235374189301166203597687685178759007665246355979678520178455341061849289443442686950748233546280306170070689910230563905987986589679587693466971456853875996484201105945990761154608832616570068080296439592212136113663390434133894892156760514535935059755426760137559773799930935147103121121671178471699809303354399476593249335257277402839230556850569537388807432729839666264565661828161742733564696201025167888489693834217517004870661278023048956701690811810561437927798550755417444596880897034683481861881103241434589937804425047297051072087125553511429530982299285594586829282881809135133450967715488462117676205258468693250636180728746931447556047041079901912141002906023545593095050101048516796271003693680424701920114586292023074391506311951815450946750535090757994821313056178408441039494702405861929194379897404767831146979626852890097934981396035322482838806043073080044985019023449494689689897450249958517959870164243248902308887074464729664557213970691575410102860298831394541662069469539981509764994857398069862394793182059870381170750822648417648803096180878187344633310482890082762590171743038246187164166417674051326448455534125643803659177437025962176625485843014833024146406988924616225496881306277035300533806190349543915017000040161220931470882534362245830557042019034813652633548634176901963428203971894215794236290880175210701460158834568289872647015044834987095356589560642354099229330126881075474615329102691502798071637054689812639133198473409785426180713580918908166022540440344194285605347390891638427909838724625026521907545016431040966676602474440165928170727749969266320154316809252801407884041213400524297441355698551093688567432640886413570253876788715144666066296131309005284713208998686727304160534675802706269735133042425629960703638252465752960821781968368495803041637669099801679889379212890637865514497633695519464462153955091712679993810479787006576820166614827666493201481952485631259702525133081896219061841590599914725880308349863691819326375094337323476220807794987471248888241699130475111027210099108870620532428616289836908256445836239449860206147698517415302477663549556087671760808323768301957635523429645627880460458781249521404675064348685475311313635129884798012786943637231537089019203934506739664145914883754796960404624586869415032795604399603047271959532279168088601560042022987120437216932633584271954531184287789672380226691030994827086007900493319149823873671893238457416155361694792556146738522578221925688367881870736582085678443778886464440811642218061048426680525914042998168117842307375361671291458582444840715503736028548609797858854362079891594237043669037548196623272263069807246724706307943678346981127842779577472543981625566900552023816340969456230905739563290098357686790770619336661241202515343252368551034636048422083712939824119882396187460971639383131223532196277657123894437320693449179607409872887284046171504662003685097724844159641816802909071168152008941180935725020320573378781653162907341435116687426817421620772247706994561359630012723737392880300224135145491138780005723559249207579604264172463385623767018059962821191834159865623881420618620510307120941571390796828119104272640495832490789448325483482400399210526702093052495237275281849894158350644287564345896571941125080257529941959938045783877072820311824023395892912930157162179545974749420653703520788256751931838810048319327609623011885847628754959457490647410514753849603167997247082337384463337128998752940906505195721328386856904452058272753334611661589321725676210343710780270360880402829303376640968203827105789227397679424170167566441236825147468769450056728626702791396699142659099004112944366935476377839834393953868912598259141030157574736101541675039680201073876441967840334439167114613518785943027724464862282380771066322230076236879280246381920283243471247586324365452035482577051719360066863714861647229301283805037012578124105043024188776576450058109526707500929342871193583042588302382703054362487117040875464230201118786604572597144295507403034086497457876421276622737133917132077533526070587907810952982967968305020008388142313913072952861808463672867058823710069103558152755129100976834705521028276400639233506153935682204337345364715010054083777039179931489605102852118388370974608488968683873409129423625299183011686428165843296330475742436852559593757329720934562448363692113095808242495074070757829953489406791741167030384091592212331070718396721774585588764836535137401998384352112764978079079618555180267119085027767840617757794527817745485393745325366777625286204018387272549438427850838999520961179673497386664189224217859099615085049247876050923256023730556307057058708009063758371733026244125024075967200996984851805070926448470642797860485612319617983882808794384709272722570779622188878345315585152854506457470088578219063062648142399453068300330788846294789640425965902863828439440419946334384962201330373268804699968881583197591237408681623560274401707639035039730875886722359094814841784213156211477275074029934807440593983315395009795494123933047900454837822781751932550005465901845073338475864323350125878448853050785663483295020854408781170093405424351751055725084131922817552357987595750262979124750630616896313649801093489065796181258933881127094998974026431290337942282868183977091919462676063153063150152419265976188761007102737691993711540124427508540843112788120100362926732130300078778651616588171903033047970944601233889467915285752617130473302368149832455248268521116491068074488946638282747905429668792079136907919943709999264705650064748739884681418708466945865010166051415696036622859721046927047214769054763219110521761218825389589109461959730401551461969077348001786881475047740597065030393845272015041017844004991426984540445620327929375288018164315761095841805583844911403761051564706196714043713081673438432856589682301370932913356817827752268502694593546265040224051855776591313107963405994703395398228801343831609184651208317319465227764399391314473973359071751032178716763445298477314124078942719254090077229921636406682172391212318951219744575476426195295879090468391963488933272228153674345292369857532679879089316298598884106544064048255836338926032246113225127384290847890043326627908901706143517050051320467070340937617695809689829982348069539775219015531796860516465373881096559819695360390115960796922354803545266078991315070793297909078733260816683703857196988689130166242279739733882643365800712135025091060604425599147507616433273571355216113942992935848135030761248994908060035551579222328237970363358743149995770166691845084699860990122897851375206038464824470518986751650499663389298847584050177684463712622147314354832906253678698183103877178506474709501122004385342791965597332685998673228890222436465313233664913271007488972547966891060464905142051531019159289381253204743970479711358258564092793337799001996770497743865353219418558037971047039553882473657806163972147815736913641269352582713849276968153740656829583236134781833601149801474721543794537564998128924772374565426686430388776358297668982469717342162142464052432590234235482244731792885423357208051123113710869392644332217385878673420659762422309118737094785491560685372425702834726019155585623007710290933635183903993654763913417294304773579882372320181392838970431718819094386845337336123863478890401625467001624436010787149419091174919372236411948208124881463443902507352900927248513846642109260711904208090655639660142275740254671957008258938625102979132801482407178349369194189179501923209925589582692941143798951139070421225094152402501089572802460685222883233541347815915697608773843138140688722248654384072899570732393061169052732704704639762529547764331017872830218456789226462605722158154291961428350175620072775589092706921348426519695775278689129205283901695546382419504093739031203873643880408425357001818328241428020997581187052626590425021679232689639459784182026373789653706849591300922583954872298342621561553591521321465688454363976003354224322645399795300372905301996975875668873914171916215581461674811539049447253882175241362712255285123409974136075825975882247843011105805806356426778848029113654963786033767596338373799981611923708441688807970045999720878592961750225490905731047771397756516542823797917177490359907762199406176924031555960360237624318641063781069757114450589959121154049834650175086696583772271138221399699021227087985967817402603712061189743888411703328788327137001950115137497296877834876373641483347728252227283863597916931581754944983216202229850518415417104184330907419886935105826025832476917184778246746361747202225645101505178422198938779740271440732681949257646157682464146432714869955309121115796359036890058870031237635941649243595383219363588330860846146929456080616480349830673950361490655855832058501382144523252051370808731731707531141863063916890196689973339222280388288236679915548762602078102302266087672852057105871100581798826192493086991087102002290821794552621838206583530838209388069948262061752171791035410603738947290818578119833567211450671748203712518593281006947224804681535162964303142234076806929234843785410580018790938218038060329724434060679977667698603583394499702529915132333846011988059446866417506534504048982597027621554804768456487179482458243352090127865858337678298277550648237211347798346428571234903021168414914199407808996962012636147392673523678313427663431026353597088183487679926032827920066659899512905456518399574178741899680910561105317231271326952575225179601253179815718626666919497491768567136445105399722133836157276742945810170958278209327767838790679767554932293805257220467914803421245692870801380497934660867694661443913086719642727987848658155988236335402918015348911308272858976550165893925250047672163170033533688830454324404873063298417779404565321552106481433198736564694837823894632875292638344256093641575471776947416719500022009522403733110180756164893940753693124211893368526744975521286322239082022812829105059629833586518173833952083782384145811660510150705745238744970341146301093950543226338897601147462639445793602680030895125518251927934745822081903919212157335078320591637602730631281473820504854028778110063293500075137346430097404983495468346303999863149398349647702846529257388829209157665278717835808491859248661613189769124204004826718747830438721875688455449713196884248188160445176146439019336371106803537469622825524902306013726128633731262733466943101448467532281539632239047997854117153090027066218415486974693551204043084695181310130102766570008851086592836754932995503328410162554611013710382532867287063223094076338647034167413352786674855168207467381832396314521661931208732557800491782313412059359663264357968709885908662404963787417166864937746062079156429004303752743877914712373654501528463367772150502441457747451332164335274571739770204309439259807823332341209702252546357788311194607446537451718026448850420822199632185480654659664714397020110419743262319664371588041275320852665478945072579393639339778787004854842338869181753670589789533946241280083473834072449010636537656877659242829397680118647757137584336724979789957253722885758741114186946138088469945161268309317365124552311107766001237631935985035296573030478761088612864614802741150722882955740325352251628412596277159838742551332869306789800646536387317572450066479640797601084015389842071871866422868665593279664343057658506018395571592811152472775099820622156374970572345180778451724992666071412191503096702867309279182685371246646272734860922818478433391035915400121023408324284686319123551459759241762107800390249893418755987734877925277814978959009280586337221479816341524819034089112570057639408919313525522412127316370774297906849436147577262431616032941833940495136461065403164235760520669656401158338298967850754666023372667887447394263825150795961858583647617590273709895916675427282975353512281466122645331911518112817064230773171865758462624664663264081599767024383987841725003702881517503996062237634496489147881778278681207446211094145741524422544779040711239267266136385023700427367469997395376483092827571776051006962124643604440585705476356868237545363626888607495510318724382523924083313437260670319675794357592458501434544334556452266310292309176732842294228960555021137134908338358054509840240570932918051145202942675684202692411128568521039600996597068064246960086987681406692523566889065635982192870849306882189823789701050251007884895278023358742431735585943796194020319991146177346103790063196516977787561716658975324745107925636612690825294380818504759118544031301680718367565603724649292532560312636351831067740076301933221037452609391036681915114076195565010901397241907432635533379279525619221166164793464889624748208019210017937933695339750410153071613673734501008498211496149418363991196222437216303108410076459857332237048215563306624997953034428026326354476743305142490820022974985906262822563757271320516466914911500878624708887283818873558517122629739486762413974415175499851962564779075094318906312859505937963254271681801014863410606388447302742997266933445490114006461362462224410442288450874836416675930087791443313074578450176638997847155228662509744271206624586550590881557226489991155564695505884248890653018720819552725185480386857905221760214483160629799427010785013692484129852627168829609620398371913556956701431025412070038961488884903826678071526565614596645320318136881069251122845172632482687985011575251934994097744539015666789340671122567002394678277472469665004394253226440102913237009496186872250453895768156608421197475216773855170067598625999898206720006660313493060089371875110264955043397888705906836642006003508177498798825614677075600413970935979817535514141242147824368025152380236741909444782083290312945865750681502090134108183111236855549767367431869809546862091508653929640529030116549367349826527688969888017576090505048005655100317346806113486713512217482602258715316913599686151764654438514770681738673071722182905783767300275836719966316203518359386157974845030364843898040223266583216279632080753357741954847517220932935396117462405140651669774335595523790732028069724688610365123733832270041564399080000453997851523408890214480933798416241455447164512030880648331488429997358367895204407769942932706258670415659266800469631792436358956946693916294767352236132434764306479103664742342178138977615422694298217151623433486217523893216005602786582139180296449216099835493711742909131654164792819232275035747758942296383949168174193480876527137175286711126181430729410358944587937919909278453334188068255327864799712899475866656481794964900431129405995917477009851687691423603005205642442757351400230396502037396904036814013115022410266337083642017295664216351890548695555084277746994340396475616967354554982880634219184982823229333172771125355171240355797825980606630379569728699707765203883161652315447776455538927672120669998866976468521803739234260353040625443308857734415334040947291461583767171440898506600747913012606661617061741154392972380503266014360510567543855310077643317911754993275181779716952920338857935291313638314005795381328046990833075731767994668879089945274986439846677192186235928685723968234585200537452391555228300460572307018398156392463417590210844192090115766204485116953631698042316489862475155420681547774050688936122876173554841486350822293425632423397167292427860897097423219473314161746079156586528225685003915309712654488904967224230209246067094816269885132910941975706929000279854809156979702506534335032088581172732556992213160352539650930842139021546714500263274868239223860983245807566881735844039059365186917285767880482592429215448032049892483510544865303498830509322106702020334141111181350614682969406360463978395845723944805148884393899975185680265558234828931838991372709307484680911407143890138648549534998360111989862530744456735460219115547211060646225112279651046737530914990464936246576877514491387039621006417103463781149054266744011722966217446017229131187054639639263929432550211009572857945725406668541332607871012885617977545020661152268452275031950022397835902035709964730219974753005265764495683329735259562641186717061831838952845827507670176303431511876164369501356369393487301148416941253228916005311802881027959760240355538562820162317863761043972219993968204333735350871300226803818113519092188382849031406057934300405969144508242476048646855819519334932695723850991641642918631504002087882108760289955872822884868420660401071514375785765196314139137931117752954347829677584187982035588737754623383827019242224028366674167381395226771837320658002411076955810472929464906155991430013522556410248098880612037032444994078897135828369500588293713552413697840425582936161059457583641653368586002954458818560550676496253697388891031344916539913978120034568223432235579607341377535831926281371310319989747815776415482558712842083910384561550003565360708421104213284717389724751327564124769155492634432059275871645553390942889527293546950837325245373585695442047074276334635319554702208472872125272199845085782224304772211125480132350876955136550304730156271479177351304865398253399483620864737273473585496995808485089323174082753766934297616773403727836352338031402911781678893843614807567316767893507569994807758073974377893531282656321156627462811247558032307092185141943925325986793207958118782641904393140727740878506183367216721497779531551929915257311476785758840199173615055449419207865123498668562355335005674479282746388541472606705912575344492756349132593376507741527983409182041989667246274426027339473306100725912844042840730910542843491779527923567520097848480029920518371697559489711596137921434074020260862756975992132588819464280634207166557100364652633365504068115651930184167843389955448062495170681570784123080844505632436385824676434050153913227437212078380567154019367011291364435257810759822603367028475787618730732649980805821163742126025777542291838433897488631092266886903422151198815527027825902684560361409320827259843560701253228685436821406895120349139964150302098290684885311662196332319243414915607714856944909016665240093874218224507306876104911578115869276778086514521930983767643420830706661358921905781380710736921349007308649557142205281512620364516509970186789714867971947176337588118832281233570557630056107465384894370081312264758290277720645603760741928693579795460188045354872588656741501072322202395116942396218299178247053471133999243684462180697157772427174693970530536695875851072358291022017540465312484958266606797683937659600438949607674008977780737999048052369552189057449291139789154447497632626711887989946423144550689787932703040430168432585088644815860758813300136756033832679036245025315394164222560327173443907106739142558242200384705684206740053473350279218060001756566468151160147033322395085476073724978763189333556516533208851948464315470383342131262208634132802809417217895923658767601553006728573972117298096174486654866474046430992861667722829957972393218925357574116685593005117760005852664976725653668395780959123610824937031410390033833892374989731053040235885507552418906667439366705328610969023501703462986370844372289661193264410087395979888284811136947974204673767622952951274762362441973780153160292103139591553901571163817312932067342714896440612195845311998052158760083178532203747160333035928009859599061670327486130912142713417489158754358633838599667584236078923583500580208710323503196537386950610855475436356313911132373700916717922386924353587355889657682345602986443999080449758193608963014420134107891374919656017395781921572884215894952297139743769331768049432895343179156546612160917724659767394171612072253620635097580426128362063736801404923172393570021162955219723084519795888365570692062894119011558290566090254231516334458730810799704573950333636988629701577307288420194978783186024275826884000435629614666876679123653032051149092734934529589190432233521825863588691620547521402237524733196672685951357339261540450265037931755722851622566842432642468095099756479975363736024452233303731305402485551477705303009968302306412708075710147352744589060877114008521086535743462631022948814783250295791921186710777340453575860857863944335415934497524969277745447958610625777319662859015655647546804830540659311244447049255015717121324496995499455422601453564888884758834331291874983054322295787975847068374401154604461382325723338771445233770546962606406997963251860342595646309867374191637525577392450322686198795724457588039768081243814449630022752519210743814592789317423306362174762293348214830944017540184038144120996812944897512888773221409454325736995874236559835101847440577046029308531592038592404899630627039239325257083994630120669713486907837310751594025263885060933740277666957603001297540944348697256054806910573944078032650890041802851083172228457844548260854925090475861471930359190892512951267067087372655851051819733719415623897474254316213208765304920798755292899823259965078977406628473196697996188066382965899261520931999655578151737862776224701895851777121203726374807148431303001272417188500912936227530041602977978946615588815461781416731376038751848622475420919121335556150391749394563542452243179767729185276727358756562769651765469345144555125703096712799502581790747646465117854610225069008193026200989314885477702606924938637826626164967287526999817256049350634977581396949205249735640092326075255091345699543318630335334361400202429260982100519897290256650058245832868437781332951926898922698116457121269378417687625733791164914129721095200529199685042713819329525827830534857510146385068305862989898959123546415457850108730551104969652223182343540957996896312961356610838914869637399648208208863877401299800969940733192442972968448567580594129036931136541407236551395833217460783734724303836588373329960895587757157575546203736626798728129017501982210199971925510479602473807426625031101774174658230611383798746731418296662601408298767128146111656126583064343910709577351280570187466207437045100661588899959805561212212129131238154208961671748957499423689645985510875317376387924434094174382260665479860554003173022417795395100626309633348453532002063315594168967620929591177068553500670815728939994251019109232045329624118068744313625353997093865923393363096965073818092632407247161904425854570443442142206610242566059923902328594325479585582525609091522033492306541018076330593957793055838418577160064571710321383675720978091132867245759133527872897878950154559727263933675620067911244579590422875901357501439168316350388903013222595573311295306350894928700809115957897306914690190572187135750667549815962714597326985952043868762870249393414325771079555788633191863049816405841138188455210954254725872936961441511678115311953937776769733992876323142985530929609011042544628886314238949908202603744819589304278673177737901885849547120822670539120756383238437531654614519413514762623097822546106213909809462306031593085075087704999681987514627304409356130745715193149264663844378590884608932741033981156349398566699717812819649014518785642385651107785055243075698574830272422361515986220635539665153170924952045297644077254062328591715122144120445733463390358360219885589136964444555509465491226339433616011271081612149108080595922296430870770305971164961054201598269273030934605619988053900915961780739250865464924812837317775083352806106642573637050424715673538082358482147750481136097962707565681914863483559563029382069990033330130319741573348625405876945948261939085132398484551488348070873481740201131599471482057408696908397991937435528868463322074199526657768480013617309890840286101106800367805706974541911760943331767284434710049817788572466602333954613665504690495371594393960345387909037293838974394398946821701485298982778420729894245512190464210051887951456625630407630437913277252560932242996272921663205616656565848956718202132149703863794170302547885230142286183275757011705886638376230329040206127471189515242860085006133325422855474040571961478021383427790759034041815136924680819065237112733885977734945986122138025066565587582105808724329841101269346512540813842292555706152871991624466195466085589508675063933351608062032892892527403699704165838178839039627855819875001246048477499409131588953914846234339981607820289430810570652449314513145016566468991551197826047594467792992240504697617886338465231007252444441355436477067425619422940716013437237571713616545636926089192531009453683336745826900181990028039562894255450002478757823572299928469425854621840903855257078584488683083077984050433448197215714541996594521138543137507886120638244489519531590010850628820282202130529787449690615090339295437752753456912037041132908440375991282773979499031704867511822322886033665940814893494352698725109545614520306163878434263023645775552790766932560517137129601887965250137637172110617813510754968111177764023049073039506210115056783374652507300151351047035000252164204855340468870737892601577691726663672212300450679228937248660253348161289933553736542985628249051314397949593749583131460776056959935169195757300930301590892311091137027547971534582095618375963396363702630323011396617527730683027214793078530132969290156581180454898880473091980688029980077459994601134163832921816142923518137724679239051632164457564950658214139242577047213102787566981175413600519792625156023360746314124604068257980366106450389704887206213654497271620513172824021785404943112048285069458966108798577579652557907040031502217626646166639582551697254865087442060960057509512552232012091172445850334451895487176029287591871828100732616207294893043389235523541880309556454514950199446574945031738992905529014889859629147907612763485967304750785437965883721203237737880694224008844527992333104005052455940001300217506653679957127792493261471527691976561364739869896272530386678981894744296118468916793407147953251498757108477188403135404253501681126394840865209433734146694970460809784455600690069281616920969460516572352968412193659969363249556639875664979898092642446847749803453803003440660458271587011147054494120929409396748646644847804269135746251916610094094669008723421138171832434904160469194967265516419375514584819737214072829305388606446109762538337833944057034799106205853511026063703840853869599597811588478761142111749765736328278201882818153244641234505031855078381934518478903573819716000232657341324978444914706063736600361438349496263947542396542358211105987464553009248707745462722598157902922894701124410452361441303126644988656906057588798671561407023027320077349935004434469721418621486068285549808352861333319283086384707451022595216510866851857930780395466401359344378724885888438541946244799803370840849880060769717154748753022904159388375112411039882393532971486967805931176493434007009038467234797233247454231770227002230872781831196476951445927446000309960895171769258109251177887406665797031294070069841781230904007569032718896190491137729878213298418238395734862698784304860295873634740985535624922178298691025463338670745777648203883374885061525291205906584924352240906218870573610531021627926363400311287295501740420444810365241584724807874373781792152940893981988515968431739700579493622487634221200371903525877404784270582804328518234217243306423182237345062538806553060537421702403158948776287518382254287155350753043744092012248907803945102822418621443653816639181707989511499557393277981082513352041105349676229625421662647657012074865050627525598613659500345296862507896561905299540468771001491073536512515710070201833126413073336328174949558211446270266698683573482349038601519886493913654494210322383676195599629690271982355956417399374794144490821231494368400335758466149097834779199783248929772559956208344104518121033982049403382337589190729310272102907754940301220737275518283726922015547962925136984842365826874424142954909403420363267756320411836711023185915374906265723417802678346499654845627829416141518897059765468424393678238694195880767537930789961197229849934010443335247213082549286327464712196497634900130237042169691508354657608032798026554091040390696672943267631991554609516792599686762586096068603810157286545957793725783628901370364034811905521820588766139743994614747107288258961313579567780212503664178427384583819091554313524574635990886690170874085498157085922149647409279898754746197922598066878968444095194787590032759407710696107898864841181816782053691627116495442803905426105333335057743845609425013139576683605059691978958039126401681898862395022932172171356563831931946851106668208410635979098752396160356913804455464305809908974383662580212514320570254335267365611254911134487911289300804870909948813804279155075976466443406995875310632657934373564298196634003338454510061725725149379005556326333849519274193917818409767136641142263991578117634612159635682626654517921927721118276981309096649520315365179185072626268549772572790547487896611971688927797649316863194942396310338905423939356305602860868610634646790236829570206053556950403079436100041513200912111056539595871960546430081210600827430524338133028594843483598100696323809299958993983992304219680332153665302448400336215110129154603559401549559526590081538003391269133324193382584021639352827589551418861776081182655808030301667988210191461804225240120649364959678024474806352430173478567644799474232750830054699869294387995153892196098218650084925931951511552249430816418326511207478173097427564671323108271048175054050806338646252019498027383006877437734562843187059292684425505689782577044503369744334377212932487202033204578119417173019466591208391183134263607027267787552666315205666303336742362453779270404381823108068503421406181692336029440986940192027108033238177240375879046064748659047824004730727309448102251854171351401221936125332064466131854691605941732761328361782082902837148764655560326871563336207223292992438800964228990091587401209848780502784381832420290121752559971581529310924722648803840863474347798399248498900769734620324165497044138447687533351795530756628452425520465866499917515689630650234936686940299745436454502951248749697952708724970562015827154122418299787582438893350172225299766789510822500481327521762035107880529493480061598118398795155753908779191790988284417482791098769503517484036223895574708141916665580932188592993117340435551249259465064800842483660181806541738085866624545782836640709988045539838754880760904604447669142273026447113468135623993228387773132056654910937583772906894948196014027457729511065674029618558325633706316177327702591030756756900088854174088761992916302387865603406784880129535114568837693506905294399695248648097793338076049974372139164345701851991852199835960907863411951624403576699292072362280046252862027959917668786367538873209469149771882649694173713156500349158604442634468284481179240931358443917016941190825162458809619378565366499865946686488160579509942891509710695725964340175397526780528401414529147967028528493338459738459028068424968322897866978212744783152332553808694069968477381894649925310545031903177507705906684298278063380122311796666488483972988188871533477664832862235580985819522497459308110121810273077332771868776983254358686111520927907574487611046423251136443615186628778625940729261561830596859756113466228655488290622659017244174878969934368556507079905803402950079447095131220785321327858512026220167068221536252453053915434013754237068715939950733230763729246299286940114351082461384215523975901100746620365539416774840262256307157860004656408915063183768042476770455481872543353663508621377830318073682689394229107288034815611384750993217872447352303542277060629635760536903936250262906718796198751813118384005112458675996876359546833839340656472915589775069621780191585061313649557778277978721449318115626436192068850590419447148559131064242076331340586550550061651517109417945485774836660768449748115811427258940522819927224210978108504989946796363417144402876105284390519945963010700122261572979222151497043813017809776356727188660798257024529263708427336808632745529550361021997724018523517907635604674961893024701260453595618542532968095467851376506687997272934596591442566739243454639498122050884948452285699488177133423262705253659181018311425211419302493983932492865383618990004011600271961683616819193552929724997773234833432939374006791421651146584506946793511817749169349996651092546936864409504203895472516144173295236374878092399910588438522643349738942944838376049791630854411720713050348957756238418942295131690043563164335353039209513201634221852129169717182137900596618941126152460452852739314959121643994035292006483589990188935107003666001922285410911009413993483341445620456876981738622074775238440008488409852954692262583776360944421656883358399001168882020467120651129192544609392166506298634567852737821083299132331053722015823760167299373869767887610923629599359310944197088830538232452449443988813601361506549194830265234397782964572641729750561228170579978497407205535250841848036051312041766523640683790139478107274873603288770670585801108391555072871995190199409513691004376517389288915008367398510140361527661662255109547959681538191679014282820489629767008382915305600331856708786854112796245417927172720327658680691936211241423978469919870180630753346927617969492609656394921958174086031722532900264958361191996633882805096033429606320556706969079637020723674199824744103431318139597048733427438870997835057627621964630245447331213564328000607226627424658859102487618985573665897216901807850858412399192051136701954879444557775192710029317606647570037005518039983598962925882171795111596716261555559102912559295853162367047785021367693291369517917498278983641321952566300665572985195596016636736466182635351935080066532423397218894483874432830469224570443215106961589475616847864210645155147603247565297082335648340557967743005582549543507771732282024764820825240840654113929944170190838159822424728515594696742476461234855803230279173077133694439491736250137641680741928137216806802839092079328065234163627192013630584221742825814875838182075709363584864233376306592931890327254595709599771064450551113581811716767881378148438086192335376678994073367273815704759371596240999951388781068252614654400897487586179188188111192438786180674808896970867339910779946318739430545788468159494347716887811431195499949818723255305092458694708868653555675427779594367740534432456763379422373444348505497487856203219395976838891985992806876024015405256226293690609859548447538819012474832011576737358192252633312087474856186008617409700590185047087930213196334471645624257940567244980189171597299309645292349131105311046736826318795868331495161361590034037728422256338546072086493409453767097525986774487330528523963635271377772884642219739838044213520138507381064285607504268878343998972673043523084785513798540717052737573722647262204298616328456439596816270254521646438549328947821563953347199365841919251512633676769161209767527358267903783004831430692244713470919708510676095935203807772981174888574512309027436191172896415242777688256955983833239874468149928655477286739782956097895831772565594690188046974508648795029885153800149756753235047241037110618978083933383381257819006023400689406301605792064545562100851683361138439870797739475027088319353697647956707631278122471823178057863779542764869509901055084648887672248318751603031499584253319435130793445861649436434811058713623966675757464550200815236524828082561692271076486162813769520669474362677074518652421504830716342622246427818734056066123971260419988052577135438116260176748172568526684285115560269048182798005605775572149184449534313541307043100026533277784454137305750012608497846467071310998289987164351664571104004318073705126259434591685854096670233731897070671973347411343475421079577638944940439963225726927236239649060085063444426644842104949514326731370172775635242144347250916503938962265716959489257694601058239350069301292189328551247084802377934838428244989619286559885228423747313736325078319108377211442827339438638016943843668887192007031406190818037806637115084027720744784681050357031443157684676504887433091162320481649575882917172030760380318980218374418337274928944896871599758846310000464463314051844085432572660380376713434092469152814311932227709095332728435208342845086409656607098659402086284234883999815724839875537265214171798882394133502712024097451607831907615496999672843613586605094162766208053941313174152257890199627440484776240421280003132734566405295315310657824995567747309556872420929846757087416641896258697568011572061436376981297447016672873120143240763769968236245299317900516045410058883323297834599659193835621730639698976910836136432984460367030644013906909286841900890699950869889522754844603506579118770727445572378414644051864815433988861168575534207501844733624843397165639617242238577752751864555777640018848982796449812756706813406103965013608660150883001673245893877321322711176816175273016175092757701029369016857989925170578542304116429863607166600575966011426373945103124704374203639046102631517305517379443864685305089098610304271625956888857464006462470156487810351071070779953011780327042076081273474604884826215475542041649637256845385545969862483349881238045180645104917077307316902626320824270021811358121012794385688148360088145309390342330860151831760001691585923325123254747758895998746180888527367581874242098078846274323319172722830761180483060237147734705311573840587322217354326859010289621703294139283374375545220623720037142886373428500349892665510152285740486558486433671878564597918659852840588410818481482533543793543233288832161280062403497122536576063907243256972239982869282341530250653520048693630279368060938684522158077941617365325218964547465521065182012262110376525782259190808462760569296600840757272487839883738496423366678922190112450229746592601192660335932831146210340389071217502440339414786478282867286074611680025190206822166619157041164469737925674285702251488529142810806087961659588862847727852481861487719284795663080833566447364865298672508950359106296789122564883725440954614479720403900730867031577793159295948443389016196547247557082414234024522871343138214287120110348843755234282496304994142724846595946331830474779769893054730920431957633153208889058026155495623937921410705504787435084576699193507401535301116393324276044881558450275648193391514289676694110855012849796391954787322862504757987806448498433814121898600531666721030907055950112861241562927879386147944816400680047381425096533801670643114499603118641677727776862172103004878845804572887613934359999520224055051836133274394858567685057971938585416431307942985778617641574649103192041488921124836302872415534999688493637616318895448599660818297432498013711859917795999683122308034481471498566069709550366875222807369546774343781800522098871444107847173545585439934543155209713401057084032479504392636327633145715577158231467866212979082266558249483288482553100565440782607246162603125895371743433794803808025767970653540613360472291411746963269349955643454471100670723762876193319622902485403023355771925469046000655165889138448905206501523102022441023545064719645519067325850937871138855344678517181353203285759732835817947918949551748684177589545808085135294449902809342755930743664113564163404492164578682214172205679203984937866305245533979318782671618464970396627877506773830733987020363229023199804243348927901444845370563157621615705210265071078894623648535019453540967646525269248096893662800855348089094499116869906273002289171287499644241089155277533353731899432933891030321899491611539733172792568306332161843491214636942918441646958609691229254077633076510156232728825224632007239604784806864474994239200116563778737743313653004314699388309230354984688385576660830176904336966059991393910534085619549036588963464079419597759555820954340971180982544211264452023112668311089943589939478404281707431943047063098162301460690266383168562931944808313007056603033377955820065394478078306811719787098354379705612763478758425133286025209626062998869387529530493534104501399840102594805566600061515674378459287693929693473364763028524189901401890035215479613380583390813641948557621129807488143556532457468272107746084417845324037161440302063270182778801666150835772307606658564671951384083904457291796092652140050270400650392715304675832049142443177624290494756547939486452688530087150044270973626064667475358317079556812296982198890143855450955326885552340393594928331426588749923551743140428792559890985155968860434271535715048655987943173165199225166018153867176977055119348525591341244553520797157360522299344909003829361207720225401803894336627421723789098468979587411348756007213591539301640402720170291547903617023356181714675590091990716031654111795616190841287111628898076881179410453900879894871922277026373205106735323478552452897530150725694056863683005105158252607562190588982893710312312654768342599258987442779684821157954874498940055123884649178560111286446455841115758078129413682594375643844137649182849069981576806509649701913517373044327081679930888491028540060356494019908636182912636067856158025233171650334107972186222572124309682527633277749305416914079222333205454197196922025160830018645842004684089097608817257181106230716820536709999183144517380896700308035939017096077937855469471893322721119850050931778410813983818576846967688137646902335612454977287579748203850941256381633948130490509468514712492647255879165173943406359487077367390389332740296229954159094318265478837480271465185118118716147796968101658621763506475344719597651695864522114502214244821748980619580175182933044003749418374261888316279375079788115193087589049286001584308795027552053356534308869653664446277701067195078569372767426792628919074994276675520106957778728516169119909238830514140522944210225013134732579980580351867363635250075695092105517733603270667640976200264341425152063267667222906614138003438066854126592496448101236935429734799224757399184020887217120676309679135600993546075062823616709474413386287927724143005942873390896580017990811161914954744037170915864630031750819131968275320536007633872355906917023741088630079138159814764377039755385950631047346591455366586429435630343432131563438195258424367351335811572461824373875928723482226576911556538344541106682684501570286915215012634386942024116717450149802364446750278719876667343710814997656655698978794350103069092576794487061967402445379448922107678238382824039109099067664871988817616483060260885962468060906574449112314394978938742264281817913031293919638069139621054355953792754196614809168630577620265836403315412480602055802588775288338332289866315364554464405920295779170349853249424117226401468864270764363087093769944036595097180162834769736519227978585260072648459407839292389053465018927408400483806886400443201191100837669722433638213998164732638439347151705141390664074637631671972588243224495790701849729807179758597959852201023457527207878688977870613865069713861575111003259939196873672146575550626091721362148237672624239871713445273761819570515420090326969748705477199991415084529218661896062784623879269580098487216906154574869308486911148465112105049806922810754132767684164534964912286215626492538580759067518219366311769872501354048406828010486028333755935276671157445462899839107895679825098995083524510804974374557680527940498720590951446449003033639405566829282962561167234225044865020864237507902663891261762578488359303436509233702385275514600584690450360235286865503008732668113782330737916529398144474717223386132997157722082923042590484684527876683862465728938226100233150562988333216508504731057349228904423999242019233029286531996017868765495793342006429103680285495806476007573526846883817134231848211226218366754944854896903500829091879440554045649925294719401123625346871768844496384422980844667290004983363032517212774317044228935431994722830382639680382647752030529307579780330284439073055545646422260987633241394630373684139457214594294029883464238580282607693953875899324993501650693496175509063632518175684712799058265472539615224104578911841575943249860005941151942785027157243178783381216562090181152148395099207326959863533501608564772990163265301244656694598565324011531338147898021943561013824475489348863566966699827086828169307770372611447681667513605284685848484599370617252729706240729276739044835332457807902183847157274185652874710055078445578181227113143615149565844372007651350330631254209939923371749222407252041327255651221974803166042375977874438741823778268032932080696380830417202805076475950179998934754080793585980590654586816139086763955047062306744638281666222007728206304022928096702226789811595757116396456802005178251001378674773460077363004246732347634600550145894892366137872613373203449792845764976982730357687110371351055417361151838988456124888352746858666287274920420237125430153918135630779396255363562934146015409598463842227733148933755926828927883574956508600223416555126835124999095471207510115348035535783697887141681021448131701528121060838994114623375060275983683435302079663275722718222493484292302719492603934404839290949018233761760392268663823437702291339533415451838306816888414282715938904178719446453761290417566726494784296455892044462129432827601844312959775398504683614052156820720260705724145711939276600008423238294754567430503180775859929408172653090414591489834124406408615843151928125306868841047287695638617676179020143977690134486321528258679560355976141421457450980352707588434324947520927891052598235502402995064020746513976330692643146527317911087996656243076092327954035483467282812141990919952575855633420012156870131008300450459147117803445414947199959982356084165864081435335706136341205479278864512246108084893640465749580385951913242761713258603467300022157215596890479281911001990354288706500122305315255023712047426307821237707666849641663081216614772439849668171425664904468931936027518274255300816631303812868775413675913514284429993556213834449747408221043303802978715566848201923536232702968950111899001710920857301378922358167393746087240612904564191568956540914668749888383372527861909016985248763014764580367330418285289282956241243949177771274399530570030055443739184309116996783609972360717913751261182239669782422283023703362071905803960433441329950634801971505898156720506016485791515711409405966664313904485719526798388107497771842604291133201091227024654921643995148620428683298644505598555039147687229737489884606214375048961586016960596813792564056578739988571038753933692008364537873335410980024717143869869981967894381063886873854340138600297072700054219836376809862491294740668276913651092154798599745391293788946809734044011322598236462884008859797410641110509062559965915227486987761854566180897243933321088501936885104327245947167003511960235776883615386289153582435039159379586999525286113920493303027974609685008481821838542567695242969492419211693768801029374666024027838864730705744727500877179840375602209945684020816511036924541929493863810950300226271956866373337550234005904193480103589310964870115819179988920509805839719278304549014962820147151733771030553999689791960291430707004746373254881112715276906568568174775969897153945981312958282056331909865848343454200542618812400518629932640042590735507559923459864329564600733467109261801171244956286535298271812879234803357961413589870365357374340487270101920770919155689882703160235683346546698572781052351031906286681049746970350172717658630960523544092453524683989608179152732093673925149865512021415249059638860958528977599498018114859748269654961988286656079728952956391120630161011108267446684996479726613049226632327436925374376736942309112433061488267591078215661170358200372564565372114748383711902301186654940982526109960629770636698559649447668843992978590814468255830586729468213815307004840355362195822451063491798829603585328662251993098999458021526519291558825803071144009225660956388780211803562068781341520352960688546187987067427090638380901234196612794985612538436876179022481315120506414081658082891746407554017948171213959406912227124933772498260905985616569407690020388622836792176416313094183644588011318272830274842528055097039533754019166385792008045636600586082654920718885056950513645866780174741383128587391748556701612632998634526188561289254016858041979508197358298564377734147862792382410370608264451635059485587191655631407871445188439886138609669015731123427626098785026223007953805119930912697619859586034838875792508229615532702840313493731861477078251344367232354444424138420238510270505511688240770575532014842864873811147619964592207920305996094224216255849620769181793303842385112204105249131521225121594655508974063632093365631024436279017071629076873760740790364459696576809883674096848303098105419157115754338293548769588536544643820638580988103146139755747643855081994441986134581847238720410173782404480030381518193468365442802487790536197731258815291651461473760374939087928437542817068749413264381038268960214633579152146495769331674082615097453909873540225802087642012840701043645819346085071491418179660452959931706504468515501582973489376671549649432467584572726512968848126496910817091292186566869865954534213980681416628210079682427300654261268133004232490964715067876522303346485264475565775977907925810733311471218158538163548952290204418419293955343902621349250773330131903540610380076948030417651463644871255877333269089055767416496062086134769389157615927202154437667940192200884163839313685439175084045234166021385557017251912248209215123188455363441847400594032355448282829509481471003612309421733488522456314310822619116673755666936036484287681013481224961056148992134402347227590918255983437820599006983651931858652866320097750282126441897722345717964612600824028027627091363533360694737156485826166267160595771665661790415160963294764661696524368333997823262187033006384787147316300684170131037391999967962692066555143082017484100573574343568372107297297946124905497128822187344843691072859141589307096184683405583998055757554371703084305569130466862270490657188793652683496327187440985313481704093551758043286490810868381611422595285342861434348599882598817029027788198910100551968618408950083069819289167087640580611126667417115088654170276033763388057769259353282200136777568502321137047823979101388779348452891250301998005163844693295497160807370694778082943937954900646380637940546350191022932543142035074488791813288185071353373428112924494609731234589964169507619731590781857001135687039235649690841690037544906629884505367250395025121404761241304977148005143871986281830309170203669207070159899823394558860580862550228936288036739927092743988159693459109226399299564045893800872334334279188884328659543575986635333658053154195395833437562816113724213447841628862632767685407087131370296843530656122504758253279281169522300233959349382451408507225007452144169188740521345161682825395935462020473690246422946913590901909214386475133183597293043326632670819052826083522354751104110400181393977781762146326451381233038290538128476192745783179688637384950432344489913626386175657643984273951414955158644639137279670901065356301545396835436507436796418024462308614244562268307481246905808074238236767202121067881654442951374240813785605850962046499860687614261941135963243008076974104291725396771915297415000546299792903051947818755871376979944900434254400606507518936447836890300277861968539826995176243792726452491830059806120479622694940318043476540186744378467903234398985900062176247713464838073995143871095109560106809645941476794042126908388988030318718399825281979054367288765663464597146943798720905602556152041286183126224679700581466686231727372114501282619820807189520823147195568182918935667641574748159546300373323709934945281861056296643421768298098040149524260266472102958750103822065400244666344276882599417276867426053644323834550614433863265540377346602521699921897404995731437515764879314988829953654641709529696741628341962581272445642001655152198833021633408238555300812338633118649763780948914115980374674069012513473030113724125426397014171966474494307601441796985221999752944437705880429465966809620581781860381699461089665742684932249422999041496269553087776490679432151930262776338853317142805221079944350130106948862826282267025365351970645861188983714390067418034339535876250639389198503460177185792906139681132985980776454172641543027579074535097332642408449478349896745359190746774717896585102588907750544847874301454784710757342666612983232350770477542417819112299017676338550197149354960380082990942609655769290120533373946063861628712826500895459969348464566837635664264606374260122630559291887161829282591918125150768043536941869296756544012719718084842658382673672691174008727658239414464842550424257429159287173225193745382489219402382298895984834347602343270635727325695187647301822338728262036718883388032779617640047269237854546906186217423199094767868592717859229354406659186268923856035296074078056571046623857343560526104298538768537395381690445276873573553881161566030041562781005781478595606765230779937449466468986421597993027889844454331230398103328282161229837712138655748542228644117559204005811354276495448648469678459809278370728333478692195068494491960927830978483938722202716563716375931179662377015059870312026673715357920882112656000999734035853770091124488395382695497624543744283345192019214658031283056357803601401208241156486954354793402277827038092341893479835050038198032276869768620371145080908948210903086820228192071782908222906119607474103795209784883472317279114935938193814190065718173711727851057168852019503877897560040424120457813598996618963223971857994808714554351191810208841590134490815253171120136233413413988481736549890837710560004829530217854390190813231554236528517487026463036009940933896288983865712792951354911963134649241355734424344744859776461588505553243935003383063910194685405930458707802704875502586351620646002345072848294434280118308954548526857525377200036632199661556000454937666061154298870023266653128420084937947022446463466770167961396008541493078881048081799262543418479746018800777046546494894212009781725898686986617911789450444125728179616028098124111752702757550543937858218116320120492648223679340302905181541903326562817639157944950336012466871858834931366609985991456875444226873677875594844303018268499308194283059851538208166227609136641740761991114556044566570897316934585468911192133992530017973835195011319025649856490395653683330052990592058244206337120325895887629953712030693239410807943484835503445763405454215097276698533174227246736234696952516593761302102504229762735224453706429157362809291471359869997971584496128590162528755132066199375889562892310091730658079725036861940116471480601688687452832610780486076801141313606967558073026822356738227230743696508092731142602913085883531362763588591807618233280839834238220946748938790192184168234014796946576483308548645700049974452986620307910668914483822470479609538334920636036418208333784945261408262044445931625776733347762432277579564777043360621881644354353419844797986869179378726190862924946070398509085081909479590603505631520525132388107984261039451970652564390817587088105081460687141815818446981624258826020371420710961592343228171985407757955277309649045560718907852106272281529984756576162709344544823468617862779980962933614562264459915245119775203230005967257109327080552519041670756572825118449397428553175452339394534616607029265933388808786053955748883446883168599766428455416191747663855988366827013730564188443611388095541502494919925348943799027222020715759807510017495852765904061032235161439955659426814606835310478770317662180375610175309024665196082408972496349124076613803195270938965651220012514007892993130750758921899309178409138211912902062979471614714263476107003809094726884922882869189989005506971457558907022839476432459551427983117919834650395429792351427358280650880501559911621653126426490379201377892362170972015583493321807745632273541809617715936312200025519805011742748714755660295313617963187523427495378764048780331609220086027953540772708787057585387067769352715273165538679494770522903741438855922044893532083090910950826641578912378035308009235155140976948010992493068699035228431276461784119924101476957684654133575999643264502971739146283433077496962594447137699207824213369887312528696387349558304606336270151735553560112968747653068132677181233958707054854072506366783544699879175123250073191243518436674630065894110757526173279803742958509091863186876170062260709350750903437326297629574553740771258103124322695419808086017554061007419604585880609189938355599200574949770725387516160173436723288247394925795198890646094038468474002578780050776270311195338469998733160319555935587947598860468862815951419085582094751048255940715237279870587605386582508551363895193850616143558958491490047582330657138152914801133058185353306151393693010416954626220546071342076804238871398854099315120759122037031169945931490931227387124697780960168246315570345338004082039977588418134602905027029903142938282182785471204657233655750076481094627893835640446733684513855435073457903274867140199620740263721853208708561976049231588055240406866029560731352129693868247555609589280377459523871414537057130150662193250665948279867478273493223024453871028742769325521885283975309209160367774070320043267650718165630226624211873872436345949734559285789599266419704128978393603757462000522845836957998308416879090839267289870471374803035148753847282122406754390514113317841729580309290885182340544846229394392634054622025185850819168454137499337310360249999885674097190864001210539577237368190370896742314078029748938540350333090974711110032973518066717197623268729901981679476413528433042681283768325350143009491722007166191239129137014442923563490730176387946954983813589957831796716627343491475439050421074143199915752406620333655027813081876713081899740888456252156811821969950648290180786630939925997595937862085475227482291852699179210528205438255193170631103992998523335258805654286124185147460428359471269606396614654706200053759024186723344802807509323322786503444837304182970910021846386252761506993758232681944101333290662136048181160374906203197536886870417508471296256504534386222781788106529796863068214724170563941435867404124250600421336862900585970130715031788577216357993383987273672917452596052674235983662874103299069865994306742661959681904666585554456561032914912531884967075208271480245532682303962464084213465887783126809360616850626494514756575248770658885357037901480669940809554358036658732142772641366612424885043976876411620279368478624561919043273506410782906041839446670148428106821935380537576537212202397550457526807831380854523073807290437007579007357930261089147649056279548565348573794480368348226853574951995551937546101158917029428819681948038739798182308598057328880245682468656809571018190146039406215274916704342873872088528531930211359487802366854374081420067710774729874357098594041109744831982757922599363991191094540986386166269855188806262841883128085237973380584676664314021444514428232461064863073027278929332940667567357767822457660686739229143856733391466986715375614927742666799154229142163515699263342231240435511751603357784098338184272672135186337618675033923031178456061859555048853023688621560662445655528590011166496682583688520079254905420817538669700628546498931369765076012948996892705651615656036692474442260688175918341255896705656832629799066415743583856163709277507578685684048923063837113371993669157259556813359144176926653490237389724048743283386037417749006074172800038366342779035439859941767099847847343624258955958246587386598814391905765351033674403262070056805707184364861917833727886101445819537998683864487059188880751617627393167174134772240885502058254435975099727195682119291201764201719268424296458233029228211105894423488344501937218217625270071503712199186609565911291245370573973899050049796792455423822534501541011540890388561977835479354990747097322640642576532633797677675061674448078164780041778268892255299116018947340255931931190894248736402771187705210098970606176235568926846917881745507894565696206806701599059971827375196028920098387442572110111537657627824106506152300687621675186865951044452737602483593688561471114756630281833617881580784714151034997878847804893893167932562915061421175577470407749620353235823481318708478196981060229589968411062403996749383392735709469047783094830325050170842376167393353085964845845106750851069053214079704234716554472759089924615262820186475236674483427972951348382151471809384722435091962474446086531442631682374170730752698803640897417936330054859929643689742484059368743353034923669235320118470457589742897314409271899251988240322501725257020785136123490605190204593633712304380419045073074883131780497000016788703959443874311238051614978369348290673296938411583578196041162999866308546830359546297642019346207744263637057543677108450870041573513669685658836380901734057817671054947057020249321054079859070588500520429515001947924001499995499726181285841179083489093386654621613736447684352157829878042401216809884046649375588488597855017266269660579025571633128753459085201225536924349793062280543685225018220366680519261088214018731251678330194136878731954462224769400889992535136398599270903213374254373310160681903988327152540320382082639221975616087700857798705749981707407617490472289019551515172928346656835903370192880303225362221171953368488776626286510963388896583098522032552671174475504944348123472483693285201725158143820689813704048756891600871518208702539510100591286812069512683981486682790446027214208396591477088330554144932865376268793611592715706199678728796322966769608997712985441173921352243020802277466319015703539733115648139678480356832143001459071096956819764239862398596797378746051684377113478322135868389097921745818249359308109076944804321068166084386810501807178745753859546402680541584477835680164822490101681719744264049166989992385400572188171459198190449424332626109789828644545002285072671344003350393434856556796812752212517060214235907454640715843958143238786642645295697161471528676299027992423729491800168850595245683909113728223255416450971401415966817094133252937459504054353976745413875931882303328863705877679188916940593533653356443710054881156810223333678292940080138762057544069269290308911053553604929364712824939544671852435793464534783201520502532617858864942466758367435664284375538367056715538134265170079086823350089408089940660609872299093658051430023331095638705028673776386657835083500112055521617547982450301459744644508689209593661220007764119680243642441931753699107674956085824977678453135251936388816827809761403014985187125412139806344002926931138263410743355454759610136378367979158139899259358191630694390945892271229139380011215900255674666766680508298832930632335793536920208167652004761054034251739332633030184556632835416836316185340605083910374221394810174181355054051939822646724443421556440042567110958120555585065986283436864596729947957422448670668787720437318499154908781431593012949531536672450510784971149832921626263056027307836074448021189496964481258879376554636962620703593614146688258933278625582632668921648874151282718081713597655784998835729353764523004031397168432825292310629055294659306223949814771727727082019076216739932878501852584332006795225938380754707420110373231408155818174864955269383596242667997924379090569671985828959195662281416906402949705212790133199009323025511772499897524281606996527364346758944522310549983785944012999405249324527388309397727403713649540606929494529497297934398192181781238286564134567680240394107257181597483065334188149116231193918010649240188465785051581446142908353473413135270256341767486569159503571782840385390363771586156243658004903360956330576050742485937789877293563087750693560353572139393704789783200101204504651037830876093722802817761782976078496792962562428928764866981119930144161607692788494671753814609995310993590037156766806312660785270356596126821935231447665894681936953840657133407631701939589794997415528902231595441780466853342872872401800539401475750224711427502470656732558239864801206598646294311252784972933048038372678919951692953660180781016331978440461825193306038900797920853390795647204669803639544112441746397078747748243700404930231630245902906526543578730297010308066928575314555958185242054698812862102318397167582983458362348777425880621364989241531474124885511735412094084763846105743434283723299278223042314188646722207545698298240988024492190933808683360548764160957053297426460777312765737953441233524533011140990967000417756324548228555737500296332350868106780329811346444083387049261188836024460934097206083274989810710646879216972852031413829056089487030438418028074473961523463502249594023586901771652560205235280905348354947622825618125409149880813726403499475403653480387697226243018124272958342503702680360725756282013621483213795838168779356370087009961852177121071283674287707131234060183660488616552584079935673524922768447216790470659228195200762021419905083286636565850256991140674545054111754715639775735200455256321927154628287994701737159592721856416981647224924952925232033943248386475316323111554087449453476574943188958966382341573106622583795513712071629435706306467275109288381879876297380156393415919061868469196531206098048265822041482144570034101312733511573464533911089544488348563035528395069679765465254151728705354505894426070203246712642630936624566752921342623696445973898931177261888456755717576816211187535047325001803574518631971926455889571467934638401698123958704898442881723286391536300868830087517402841764519571337566821972425913099188931344708926163374450180096473067685382422366999064009451415771656222796489709159784230136319613819255636301962548277093450833187430415149065184201492864664864490214687571342074504391443477918434256145970933712552984053854811395195098303005751515805192141882950957720769447331029900404292524119458624450719391473298826405716043399654932267215838458648088606839404670397359548822086155665415748423998169246234288779317560827080138385687628732840502444316154693012184817689491949126951317109230063215769384837754226019032514767044440261910028372844075948211222716083398783197376005595759938746830632408114531405136277670140785288430607378566772053371650752040355552150550808341521678143127285826939069911779954640249969039976125499610739752210017628940713047805215944961538813392548039709201893534241925240490681766320999239493840357874572423754965562430454362741944171117127045226615100237455448128657460964573149935960621650320516836489363534831749240368709742600310323839009451937090783162621603959477155714288383927378551398359254475963781262046060564917111203436269703287109928685340204099027667767544255207851831420341392082253346972902480977460969968891125583599604669362578796286543150194045401682179731704925055711636241653043493962143297391756187342095901879509623605608691431512761640132411652870927758982464073694255707320342122795493940435299338378573641512276276693448317399936215059314672673803993141020554377851441019221473138787899527640378995110010913187792570925923129821227012148600509109984634521014761000488075458853952121926002962414915307162932109125318082040171648738468490228621958114224683199217909290968102005473359540874460792143014818368685039934330279269922490704610737985120364802552789130366962322388079946920545956490077791237665009944876153977635111041854939917753361495003317476565888777912502705135173321445391485133222226515279784221572355463791597736762935626112324645034963215779946933237062308542908149463778048471552865935775320261232514585359121151486226808185388494501707206695342687965366988478007084000418660629716265328008164752220307102224209484780707128276460759660776233507025798801535382934012042883820531945528621089213217340953868060349601198093236690840180312026406249579370635048758044152130761575994020651463898467284231082630523472839319651171452971267175526703403734016506736911914732300242902084107540367502639403904240394171342119025674199911785725244237795968290392240439400414409952976931362184162628223237226796680123678507172672557590553853238392178911938950100127516267873992138022395765933003156222792372540008754501472763829069060751313695040934113729245257397053132016188678782875498270245078611455893251100332264445198931471565409276274215109003842258690303800881710725734001424015240102220298197339448100799109579347272669951843840678541651600324903079402584425554308080651539922772136723420698680191588823775545153950029210835325608307241681930789618227136771070800002693899572611007258098268363104416919040877785873617684108310411960343877043248948582619239046377109758894988031453816607652204636377773142781519028229303983178391589998067185613311230471870898274218037970563131804075521422393925809251057961807603974754556137136889799243083420567470984555259117169736590318310403841185485240943627638614871436474383285214379539605423794625099221460682068096503194707369537755001976336978326096768436123748484762109187561870025758076842817898309828138051178329650638756713012821256158123083997161330187884091713389014621307656919016114345095440202148337259142926244921747251250340278842240647920705523133411846024478250073208658584424528764888343763376932294820378270153148454427270976515913172004889968737626543326180234703959848056057666660978043823956202600589261968314413142837437373176399909379797925811865596540244350087927836861761745857190831590740299492660599309283991133022556347050359478361802928226634659836361240870609138967799940994854654344081454825567745772457542107676003432431334114598590515938423544706800196582038195800788919346489359794836849180771223930074264384869763851550451664221404032583070732871762580484228389910297384327008702571819803699573439915012464694014598421837812649227602030922042860725603630120858699071540705986195736356103200582613244891501865887748159474013541904982898014336526032856904648675667630179465852177499610771453539789961757379077808027045851131381829806847270802019746405193994133704567612030904584984062931098883457623101747461775026260434705879547040798274133493451293837857700318368340058168577766351383219887609607836192065420400752153492957039314880837869135340232896519401862309018849469512775910238647808923131263317659295722292039952467757566613090401631591901955078595587736093813572869528303119287061050580356711335281304619853415417673455262172994414157259174066193217219068070774344013043875320271352084755006191953467798657460929092231852254530324730958826619465810436394022770229313521260420867322985545118742347218285804674332027885287573951469486164890218968213094962710153226627443018399031313896229734961733290547024578571834190045462944290100896388280852779768215714831244336800585542414871488176115801824702782530938422114631249243889108382186280603037206202121437545787839314240339039033645033398673730434140017724367863238791593682136613259719580682585306919942971098045944935662845211369160222902740229400437209336289736044152956080012903265053452250369527266944374814788455820261677069549011541805506102060341719185104061295068050438407595296120556465260174304441141494057876430896075011081709240329019554231586517785318905598748810602486623695909824978110575791994776066511370459509995646873411591194074700202708188305384032684420840321190183317933008158189046490680139489590917276186592058108533708746815852775611161452863498877945974747452153372662441906160355191111725027074525514931034278358849119863284712933106351005022201712514859599343568563667555476704227666138871930109924019493083662024512429816110031779106270001814322153817225418884466292519260622756413266252813473582719512972769842612152005706308916903555379358709605296928239612094563968959385043153949644772980566145184298174368212633466878988665534641536061480188559496502249301447832119428139854494960766782763120412259371163604288324997057733991899242214146849787504870982408732603819063835089972930458777872623918266466579474878423586487939685344209306612840131392021523025295533514805031087347731540388855100270081864344430964317630501426831708494229463045005270301375081171287027537334436468968893090482915125441257358313751422990464206934124435222121336866244553786640894095780420828465726394124961459776029294524492580922696891186200857960392262141030483426949650628568421893055611991619434033008462613947818227260540436160129861112287734366372970528684866648898010199696529212642530547720651236396459570012599305527310314465372890352591319814220681141582125683317139049910014992561439690831598640730545210304928696148209491699299050636433873956972939522698853989309815995150179540903894848059752496137477119686208201377637866893797066154544454326266825998943317530166409869467035973833478589068778869638311122010674585892899094741958815253702009292299211034377902980831530909494322681032968202824985923497950729699481950524757456727346870129294333433200471054863234639269492512409488858973364601669180437429796485354799632382123694400679365077094734738179002244096083704012350738101601589508973408527343157192970165593872814400429083829160181050166422067011610199226365827231705346980267641072318612651888439362354144325945839109431930405756267445920186248091661672543963242794593790178903789223659634966152511677206029875741336966676872038777995164856875414900479345908440343395870662005975595929479245662259827393416848908559230543354727317502400856906016123973166935109079136389577113607277802666222348926613690386175042318637533088551858216465979677605546156332378215287409997411352613252049223808665664898299178889938207262045924969921110577506769142802549518242095317479695250981064934016723968129143571681317955365741385794409709613324039762615702209344107351236304121396192076998228836424475317125221826746050392580585778315206775317954249820461220143683802284608798382038646666528372622830579072953009611437523106202906846151973082577996755093351758541367765815670332974733854756805438182475796995751235610134001459845201981457776848057893079413581101172997716323329843569415684591685372413351313299868938085908617787114279431853369604600779328599378459839375077185396234175693168668411417329207393638954603854945840078794058939004807875645893180070514775161597066357349217726712249978563681967466876084681516149576150614326069321922764281772749718352963649935352322537825856891738990400600258147024774610033462267010348154531919440525190394094732168573592693549890405694730063216008088424876733967348368172276012317165983890797521103261160826565788796378566172245911325204099920242182139402725440872134077513381396659376361440935254875066412449427052435329207487921730273788034631843790051685299925654778322016259279793005700952358582413233899681345610024379249878308081100491380396354525644000069278177777229638079989564677521060797283738074846865630739332078067619573871042468810837507283550250131013445133214592672353508942729173082268412753972433140349282263244298163945396620357132963690775802233288238782962322578509361529138528856967097888805756871566325120513435321075918828416564582233337971713160275274692143917645925094304973584298063270528663666121786039426338990873900796707644579609558291994799277785694733263701822176265666317693024411412115216085010748971907957956415067802746421195382463699253798696873823887704722061570221430610467399587331955503186913975799689533773587233067535998572173983132592243305411126371450215769199335715697293277167507131654293409716046411087469448131381084575690815681542652108721927777579808690113205064430624557117540690963925500878387864084343772125931380740145073843899970659702000471595922031071551538432788251606495017212645444911875487798974591177629803458823222360695304356500631102653433897680542600781297557941036025402071009428079560557902631244157564378999137558932007803913552869413725221893969260674698308824774771610993313598780872037918270682754092855369144011996135985476856352272003462973392384662681365579213661137957621404364590995425240846221299391644118056232444966315115837649445674766078798337342667885402293102779550239083993975011328559431427234292047718365115332592462720912512103336883550386796076148243831867961496453821485532551578051900384616188109955683510587833934283476204082594705240387025506331351934354461057661085582437783868485367308956370901618584147022338578819402518660091093288930832276276563729295967163632741510437531073064229152594686408469118653503182845983488572354268924245585912644042493932565818038455475326860113414821105930333099588211330585557748705681737573382792218620421197000732298306214006154624127850270152779949827600885375383188213878436491483040828129663176846574403042452692677967776421494821372055602457872203421413035793526631343888236817869569258441382001457902411509690671067646487985525708460274946102032595940857519329235903605039710137987822317518108615120587324828121890118137302702334967770761550088923691213628092380648065353150082139705453212932252275950369137724183594891723733295231268981914645935180320122236626269144843180071986762217354146715624048524256253474895406383560105187192009043619793280513093798048839939132397820484589075838624981938019176396857473549489778324324104763302309150204960757682447700254058893433741875317880977666708468150435967025498238447004239585729625834082355684075012140485972724672732564751093430309814132416329454615054585643472901817899497759220197293946049179641080645617394131148167126857173211490975429929703443952411189750453686267072700484554294527000296988560966672704645960137428552198115499192611578605346770314445056943003701746497009655395796374428079994672063668752615461780142372065321232381380085911251854462345877824629678515346736361214311953216161034694246473875304077185492230541046513012263691069283768378259708544188452476570645047578433808816112023499310053087515514640577938788209973987331584492822794402585920096435670804325695743139743004142635050996134536440948914668493269393582847389838795896352393306661008022806739807196118595291254606863818612008350363923436271589792956330254223196869266428998050391906981233547639970341147022167451413477624255720657342415334350852580362075403959163797352146129148003231221126814526909658929963435025791219321734684411790621851107712860627185183551058407306781416090089101018321464866034679455309872130605210820464421897306038301730881325585067225012815516892360304745636634809122333065664045326369999629750945961048650866157022027202297027774274673131736603680834648402214309943500310834380289472337654504903173950890974167592771651012498100263154287925798510956211880288330119819464408696238612732928632590894762495964270764347938487032916104844479688686088695519653562555477128998562428361161743238917755566370102836134401795176326370142830290079935944212297107488719934101719108614955839602298391470221056024413999814761716084459713990885738085469224042838970427839511776923331436071022781952301099458194504443188716929415955578010265456042161643680628192465586248765488329506730308369484325204468339608588686304893924297438678642128550203475064210007769848407186433225883916261581247688215005882377848471128815300855162865715990232746484217919812427153280725525835700571571227127269355579583579895633480812473775659400237311510672524979175909338233381372834682590664259108401783717750219462677961265944274475823310836245277842361679467518144969402675016979530763759162170153703043503835202033314562649341071864877859305850626596394675054345577170517822269934415880727580132175122368505441140111957927322699316450048446989494474839077545646007585825440697295211155892566873586281035694122665430790153160028295107716305066198834368519172283365538926039995030004689912438786599232148363308076464825256427680262201228871680977095779476504789419678253412398024560568161183090762838450988151717112101633883610641339003707201348049880777787590359065479754400067159883032955089349325755948480000329967991399127877239271991071619855574412371774116249304162438633172531906583757525170660179246790099654942564097139098772460675278336721866636685296652830382637989779121468526347917971309316676309920227274959507212459401625573263434859458498948393715013981687590894564690538330634415938679306288710656854691602030829653738478312249889505849444274639742300049213619370701017609201503686744557402697377784185553155671813946886911845729243516971890914721212724179195946177777578603704131682690181049656009001793785898406172774756044318160360803278971153035355220617245974886423147707175881499845451355734291414077977483151176598724631932922462199249823819075895250797133111276606908294620443339866915339749718066780611217076526204661832321368091010687213682497073134262918561400509110593749583530920067847951715838887302225962480840474832574795686061105010163314770119500952305557744015369501742315434962247822941516768563424203432353926267318414517563312820282337789079675324961371241792817355315299475627706661244914190922008071410837215142903821031499171226404571639009507916238116273245673692390332099159542682334317495503365992413767126439641239423024336567163376700845759426233789158209892284255932510317477369235010634792961532685862205362502861424202386324766808203940883960642192273949268599103835715636500490638784460387805730724945765439530246448771093950735417683929933852502843163853885843951952859105045682032807335201969779500536814252594726961327678533764026841760668479544836564874246269568834896510221390400694049674962063038150372491300373420926022867408939123153517209134373371646071905722848043624262889723668629800950406781664642698078952665699151403876025865339433809027660801169657503168462152196439794364212999828192846014433914902245712658229844799474944688047282986421118596284069168895069021630256575724631281677172767135457975437014365516797145077386299983370796725175698472570558132285095692127614509334785518851864228228771043767509365827545868707259067364478911338994708243481547336524577947679910990593793366300298395164330885798269993756425872940684882091603038833344423513744579791703950421948710782865415546592496628711485101319597740948834768759655759188979410063968546187283330216934091527607323514385707486281866855294942596861530251004490137412630479045752239209584010153386048424581377339573196245804295525270511182524644577630960910240633367862491146456307536926706641182381701414594441774626718308741938555381308751626236000950489243599434897457274212498064031920625133618143920346385804887313270837677034599261470377612354307250848238217204262145486512086369947887154217414315456073778447836135625357378740271121643500982598517198886301425133050852057964684493608226273362613310819372919431984860544455038068514918786437831852131322078027178761828303035497811850626738358890402878453585141415420070975776539557089607956008324216157749292761863792092283109355333515655734796495118734380668957595513944213058040821748065822635478336372117602526570172966570437841962920574030172456091107998092750996204893611828140211879561104984613457367820803047335690982337351534961278998312900674704391835894294663458316254941748998452900954831459605554206847347923084434125415450668269337934212506176323452728842826506567289502323978332624591322535669247489135540820210849920685619934381021141366255962592122981530798870804445568227903394451209108813854875186818852960474348273957343132594471256841742252690878699760419228657562895021126272755260575365903939621342641050648210660409046012150286357149392596402087289547736987481798445455526631724628126076556997272189337324856562254826580843371878483705220715732728571815684710818057065298024387558574045539713460211251566466733981602318027850960549437463125974604775954726999191721883141033030909463052761121244917575562810760972339984419073208491073084297537307317146707091659632777334045377283272218961681888514590358291092261597631464529272854871381663230229666536426883731451826872758521981957800031039815506869195373023876494525713205957884239402014512399864380997229846212408701768648314298923300817918194489826224078004141407065249427783672257018065003087542820904124868090634718383275797144758449889181047574410732402185721682217638441290510035885041004746676684181199110273977003265486202798530722913202501993986631779973205760252271171059977027395336904907398380053126216686407955581146106364357747189794812302695589531490038355874481833634342711381075131066753920755986368933335982788358415934231622712904934483199617696448478551144876425064712962990287180980241107959815897131795950087647663927833159183460209873936206268296527815021703826397272400507471761523700729232749457132832298252543820874526708534349258035583631401567366480196355742613273281649331267386846383929963303283074395687272180297471693455331222284317244902078091780334382216041784781949602571402766425899630155530058109576408897677367694177703159591309526098518383387954573766778300023850252505429217049512045399472237666258273054307296835337063269147572410524312075703388390432288860605105962402394758202573880514268494729729495898875534267288503480519340150874095509220814961632671083565006911529588305533346557408293625902353897163927561721442313300812856865860698110404819380750350863531899238554881144757658919598303751251202147169526809675457774955670866015929462571347910896883790729864809181552183118122693516331497665322103664017437408673553041186422762006206251375209234676824070501948100746837857283698608956618408641240668498960531884586422187839009468984498048957852090653866418213767781703464421221121516833017274227294803652935582356759506721316861185293810726835687051561867759265116372318033528129478417143463833558404764020693717973469588667300574357849488800030985024194529345904912988718477839512408272039853240589281586047596637350610914283301880472868068901723837903716919768791785921723535636303284016170801652381985617987471691175581556393727942332735611267071977621753372826334045734963657180704571441376105375749340189417910076881521265601747801400204317274404909694025410088471725157684159378337738980577869532809803436475411700233053963278721812973010935228048434119334619575824421532903323542642780140794517916967093121159056665224360602191480648220810907954632288008831602699905570199824426576251561717126943658048805252648598391880734357270995549354495957492012848638496710751931545571640666288051804065728126088597619481398122914814788250792819064713451238767824852787811150088805441781327228441112208611564684722615032183266110600749073002164730511350076295042605492076353924773706773397951697055503586422115335603426403109286046902937497553314445408663571929053395387716526076234889882945112560297022258490715386454257305797288120464711708798850138585685813821481136762510352261189555678130388302523040128845266880275373408701489455388476564919753735678138081902434543217707381932854214694117891746398898077576084265353139214516434062095075052903655666264487623909022184911420824149223480424463989866469577341334452929606212150413523636479905458113816119291441925870982991230926517380161526084640727119226597381248394035387041364733648411700108076494167053634475355013703842210726270059428577753259683185919514410847645835627548501023917701168540479653550819313474463407631553704698271313924674383643043856489142832330046826955631846858073960679483752858052807003481906740829556428342101448921184978206525977559322773178582406136843102322719819877051185860901542047880765060423281045385245878400886046386044582973195262651640678636100693046088850950664723721024675529047373825722777352043734289530210896055126244528883992011810655025891792739863127107222274901813082846724975003025090905157524809515366837081594803332866122859525017993907782550249884580686745474771796651027795247676474962622514459036972692305886484508995127360572511294440035482186870311976323629098044610743046276705438063759633105147660813605528747596916262949217832070665273734913104783153991515195083664922036530521104919707090459752247223765546041815413431311229413229746104498420817377269470296713165903176762544006223861943554611394012899055918244818220240269670022628762090995071610133164904751218356154433075084070892935706761445503379654541560761055049670642278169881328666309413923941171079071676965357594115731907988687653031505738246251758525887275777278913313642272099772108307509622630003540609011822766800377446606026270155619373126025705049870425471454146424996589026711736102373278521926809806188544941902530645710548423982650826747302760094317869139105198375294594613343815142688840742637685524966055411240006514701183292169425022347561528416304930025198102291578190549001817542370833751992949025294352136651983591560772798616672459605470547882327613457415094314080604823874949742964057493066139943814794554937703821553773047494987530883885012773767242445662088156269483327209206106404754369728000535885951554652325158958663820256278091197544522048363010756877273237588621993241471735692106287233755924793231085702308385998126169406218113522424827352660168713400152087145757936981871278730923295143727529848626628692381981152341473226975486464813455677540263837513561705658679501924966822975496933994595270708878777798483568002871309964903122866668159878690055645559048637558267277972067285903793001812309594631636150752322666143475040578025945311319400906447081358659544681112142607953619578579260548503618402327349609815345080537084534785032857184727918418080886940040235704689545857025431815732619894194862267447774197710801395349592455279392698891161245459238557324627651712174537365891735810586327069392619466683184371829120556529661690620704301376489587341547851759192325907858564379358428937249731176433973580541441166974513697987197697747088281119579174180596438461646474966916788916786302756916254195508788837277808887507609811176395347751258374801340625165770861492189659352246490043457534096457181938601951072704353469626218231916649959358415980089783733007542480370293534697649745168412384467254420677038724685726358393751027118336027269960520404552238357610659096447218757865131843474302035434010608535207076257977766443332212007468683595661110348430986767912852543284607459584058027429494398764834792798387157895110174235578737081257879976521954655062863904518762639013257339373814291689047041507086684272937792837964631596562233695413064801518534433987095599538753053727196089957266936658983446286169041131060260108105738209851724026450962384066393508508799127161787180451762440593050244055853951569215706739129528986030111719231492370802781039292318796200836483649150511861166028032430460386339718101028411458372066421167829654381557116143998188881767246548476610354979448036682944102492459016660907415853653422848433272257163087198897276506750988868716232251465211569236971902359365090345658562187046755846170130355170817145971110943813929155341003421830305278974147108953532536034599233894643756637357132760118842428067864766471935559924909451884267402937707421615124134798952981412048699505599948195600873292092182336214109309494736633663832523194552625546877648536336389244809848509126026652405097703549680693299506482988868370989318299591536425328231400373075134308616293903693233070872993867281386465973952520760606257336929035793299148034501920630940408530884229025070763650586249951062269632372853427719730868248342550872516694142877355849710025409538009501823201084297472923251262200436825335315463993995317056418473648941959370573551316482705458972071212735320859773315409648883217662422103783411904771603765265524507267770415162434198369507365564215664617326911718768668836799552858492746429063250180331794048447055038164810315132611671903023243915862726704981232237822525640619112079226365838456779179934233537713112898100116224081890265963482272902046270380647400268791291380065792803148401407350215659511952652492647070722808258977860556004800251499977533280238788914027004396824941565065456019418485562865982598563769141523186646857777142879256528986855974820603306173708710417873282807953525784283624591308364248716104396832581650661053147285271073576827125383858345264822740367637262308153790761433745817840049300334260802858891003751853875527335912761918840240413317432505221372884524567512236108021109515183274947714843889083792798959135897607728399510217557375487170667586996381676429793177980173401422495402973202117208186532810618453779784381081092168194287967386369768761177184080608023400655669907069267940901107755313309788576237026682170241134618729184505748467739853345582560706789381021024560237574032399264139694230952604019765866975941740643480344318201987191875432619635330217284089046546441422074715828671715665382243079747825023343121226566879607531778903966488057953521007942399738222505604103605369121421859770658315058034614619107066336043390766898147102767376791868643484560115206824658852926792325073490578180926542564826168466218325393191376704133673177071704039208054593640673591151830571184544303253811416054005774029455453518557148248958557617938200128911901709093234655790262564903147827552748648618774475338791703304936952707061707975465177498976689413077341415928057190745631088353313621962206511707228755635716320918280334643417447537963214809060512137483878804111088665307245492886632047111234115368907134181564743681420515826695211272121271469262937177553927155794317764684218816190222440746182316486668203912202011999123876424882367019591694310153241261313225141482890794220014494934717144674836957213226976526010331229803193630396294715655864007031833480993745291377047550086886580240527359546840143997395288870152797283111228330082015099236999936918216691775860430434150803835854739979074878215244041191445366050911810068102104104401343433317372282113329553578468681266699825427563842502321341457063956728038287485147668417104971677498009621321785142012520383499888258666187365651411054453243950393772711277528292745194815394650809279995582970697084158337602922679286772076448580215030452992204234485331420766768700304327050808919356571478033542605382084144398073309188782999821813017666413263867216637837796852390006015554581527697264175030880385231371602615547873552458756422141502730515455058393824617036063995356414830547878618837610056576039378235832530942331423543349897290158633955697366384945821213626277088011606710158159300646736450049635737310860971146441345333120420005388070613260151964254719601601799266109114336739846458595901900551202782975983241527112935650561899996464141119291914417958903293698796882180069079917781588974364062783036219909757332176450116024843541555409654296998918930342970222574687750084990998556062622546142277003306458572603999566283100904175477062357960242881638336381000481430808206725023395648230488457001986504224119644760334513019898413893817892395616683721927931039961341160964667388516479195779786982174961554343655490305367832462715905925636538245246789438749790872489867413081548875171916122117958418242553058835293182210861753647443315879854396562247308043809417212569523134387532874227722572020753979808765298278880985481293712489584583299253728479960214673426849579834302334405319807276643976581179968100370551059899092556847562198271189200390558247070356967328190124905585246306097430701171679760556793854066036605025361651638282540617681321321034498691465502860246052244051113873060403901832985735511509687774780371831077392731852610703474197274101876657698485228070968434366081372406504617699711281820560286763218902398665033212084510342802887680856717285960874905772350576114256578334533946161596658180718740376947172811748155385178576835071386582696081310559257706681705273947528295037828899250065743923891964748378559051583751794047128074230234716280410638898953069417701205203826268315931505931993247610159226690945730066356336441585497944271156399326463785277554769948738172136257725846922511589337860775267202862932411629243417203717016381227437533536949561814563693298737019045377711991865990520811012141328148755676213539104286298003973735278116307557115572903690820302665121894250632833839464374474016980612909725101890944358489381359084809291852903767243346007757302084507465555590408536463689009498408623613622406725653112493627353952537599883827844790355219216426311662580394666978224175466034915811937763394603181122265801933208982567390103525508383834693668139187629719235650004500882299176110462776467759063977759466652897783254315410710633645118446649928144992651218194321015544047090548214410553811303093616327365548601767375463205847796354366268072684877209199356788959633660935060255499337131476145995483268559056965551062171330531826127127756148076937497129132451805139338816718371959418402797400178568542775273274729493770527310545936576847996180979283584088545203655497878493035972217312229008025009747584550624381829710835107007579291654701082302815986709503598649114861600532765684930733822736973879605995757859188803822105788194370735338507676332479734396598781159814359778658516754646164107195094881214176767418233416397321112988114129744062574869735787595883860668382537315809876506349584483673166689402198884490801893726522101255299201316643491603215763247542041932043238562379208607570482883623009101188827558746409526446486423452542623628632982979936742491683963472368951944839369076964395614564552210747355550336277268204004311525373463854790321583318067338424250908201396326301507300647333699698131156640801102251440824984854799774062486845749482086020861067662195968024792152882168345944560300604598257112681108802663444077121036468383021168503547248069981228919979998026244249932894874278374710554267793581078085867346991699077479924787940992916759273829727037632438866644183989473512160635588010682969269067130455034935866796908890315429589648448052868046509857015362445718478662953705511697977608878044486089684828100712707793842528818514204274347071704815725536639641809724859653949945821762574019418266360206968988838531078839334516970684130030928532424942953766835055482073867442408283930726195599439984728926322621609005750060585164841717226897385445717251316594702420279721317376208472287297781912772460671804752426638923954527268456629747722756014107434465477900975998859387298409492907151808651543809925293865953325014523247934409743952729789188449167496035308642586660117456428685237665922814401523480234155310532739243270628972454297420761705171454137001627276177249057766692397879967513881790277800263567054529494088946787081177517812024453744384096361247058185429529500852711425457952535166750301854344350456739986407011182142378495926911646408001692485394439720558585818038480748121492894386189389727038810461083541776913164637561278420613887956567799016638774942747895911460893204811363290119073138964198557197740418125714383877815910846577475403933830949253209033928552310871285404446421410518218998514685267018282862749949663449668996239627731084917911076088295936436574659581841128245112039705346669093627001918298299106918157242362462772569398720369727185490996615176648743207190278716737734985053094678908281663959453255634255611390573631363835433744089054156357543071746212888570057665820195789186217775190194501667627271803204467496821320251508013306997621199450526021487213864698911271669694160385631696897369925519921654932884554384175082020886412931196649510836871085822028208952368284083684581587319863290509808793601768235152517752767505143682381136353606760398710964353151197079429446839900963541260437903373888667827502435528918652698701324305874198314171919697928705879275799345383345964533825241498934080436102940820376437420306206084416097464021770451836586879701858922428452224614980360026439262360970733478785324215317747666508967466298111984272034452642195474563210049345063297514710259210572263176785689432744458417943048935603701574191024442736146980293389138045497558947965604281567020653909652870567922479384270426156587903222150065999652808090919454546118972675944295776276139781299295192121013952821621420732886973753103572792234049925907285809053179121778898075422540477014490410958436951591444761496721268453578818299427940063899451349680872798754013546037637043636311050458952898101423059766029102842034099497723425094226597894157246584023928185377196376160154839838544381076572875216370561626636670429396944119633956082857909072133086869712880807445108926033908046363350671217616873757820975926930955762846085544885489820805320550118277803716817233853663116860362780787313182573050324182460050813062356283639881488114863735236397954330225006880753642091122251715978635976221152618941945851147462252626121920223435056921453681674361540587494160968102617792503060396085295823114721673975429607441102755973082538498758653174267265355159636072750427883069170708401089396793788031970352142788133232996835550242916669673727662908678046125140177015620486777834877093181802789712038101385908007617424758435229432268229043025714252770666338806484569616712882243100501197401541810956052607460751307960676985259086344919529226481162694653556708414899169229253189285703068902786222576795709236932860212173788535128998555192553241880584736856637145901339488919592715436974532410209139303108719334895206092784153918022985251743041757006849259443928428447217804333662224164427568846942369381027797299664791234460013437992823866743827039923718672739955101573132834611499811260028014386480480983882147576122443111214000927691752606600189724061197025182087978499494014176044923870479245674089650514827319043318252919308702218485832284502444743166702544465875367360067649523081021556302328548353196601749069998739882776598889985131156952697719994721143749665377692235765914418600330353778356567876406947488950994712637516288295080282009743219765385733849027545798785294884582220970825856175583514009418382243501137656133057055753643310758205728443255390051926703716745097414920938978684278219708615296989209710945208222834077230313018284516799090468574013761066492046274975631729192363402558561884825605214888866809734715184529189501534261943232144144066402599485867734252657142224620197210672301881273163944739465619745186794783117952595221590078029001129125671186893579500620824354162574057840261743812022124159463191426355380198618842501619025364177167609540853593085004833375023340134722170494992144404753231884754140677820104477838538800624125488640537787225284382156224768362552077825036472998672748282850236765703253556118078186700374691786414427268135351949465497170673967355647135991059387641118789254411989035517920635114261407211347766449436431451508221143317555192042290192908210860075694454147106534340607416923225375496911088349707698002569283475953160492093762665289099401620588170096410236641434657714196758638645411153218581490010190697061160159685865366278547002362922570375298044581971468000115000393252183799479179960578244711923864449830622243822930898529877047308767835835929891779479591613291593598694220805770557060187144072643546191611112506785655071729627918907980013444065621036287309799633021037104136829589804950363206348499677287227098275098235890170107272958241450096639274796569668756860800494194178723118451067771768774105648991223737112575013450505843362304899350405061073602273434742746744705410671225086140094234974351870098954474911573515975793488356986729119129557941909945363552385475422294170812599453833334770761077350626070077985518221267409425533917020170702864738049529288108500738531166367496470825448339369042053114522494373033747395407143197317232580517688405592673794425366527997423987560986392795741238314203908907601960418935041017673076531391850181468615652617158762635225151670352431120255552026500894324261217569323384621477264963345554202277013931078174579360764197912374535343277617509674034916489397356295906496020082840314626426999487911848375258905520977421010920494012514765984212011885678968236966674132841285556055285639171050556346696599370471937559142729783782966476887590210044391190929306879072381353762972502059845560503999926101494052730028702413619271076636966441093049128850197480596738060238987261476294059554317196209271992833489558850569455222386806695879859783892390513012564122373102699356943229027684923296418681394210256041088839220107885390436404058960181680306509573721881100378305917814181841229008288755533886261474096567735844997162002046998174077044374326082627351623323584040573609263535411320165358868731628838760171166303901580397583487587689702890038931245605003557323418282965973822122478285556220835996886065436962139060719847753975562867021827461522659023678020065517291015757282903148310090556213486182824394465720302964743559312195789632541176769576730805602047454214303341417587370735883837372397600927259883140017609043900629857697706168877854999157796010531675018770367647025979016670914408640791637236265724662721576921817919695572485637183932081188421517404106367818487359881915978991442616303057769439113864254383519981988136731488777277532400394070654850027780097379549089183420881772683196056791913682407115624268502880511927176802679172799780668587622307564884490396072223063523445035419669278935224811814432279870247505457956196180292631201170668134361862156811503502731469528105221564752311402993978864121719757484118058400239392443861196613815915267929444460292630811413596155938200178922392587332471324847521632621691840233864203328382382784858099466051361342645555215806322676743674188194731990304028540179039351451673483524363082835075661201058073654799352403789143034933655607833607970532730787884549311597354420214486019359020290418788618996586690945897559446381033904233630328719148679590598558041515081711885777981101322575755155348028894444297591372331051691874960357277529990078572408861617041329931452267631946880735541277542581858624634847986759671101240459433656245354945592292832718689482276936152085346653241217701242249063428556190627694739393264457544877573542886976220815590724490418643750572916935782807707744536998851273526541538506028011198743284668656683052545498522094675488024120290853444129865142857378127541941329123196929572070038536142943588703322029802116032166694035837494049466787974030950336831538413318671490778748961979547504844618635875001053320921078042772285304386001532089192994553534171977619615017170436489885655504068872623301401533189307074896368688407637562193237659377419009608793020458326022620851201659635622385529314759359568484083151530347781961618279587067651423176383990756246566376506208269574784812869892403680954839115670538605901545729906607260218628339273653711291500989510872035952630111823376673428956076087856833882838828039601261345932485039328467344304481202243610038110524298990899135519737189010628055045522743026579178106207138593851993360780374144938034581608096327600158677854625553303551660305105519342117806745707588314769817499070725977236860722829891425219318484229562620909243793254346585129243613478266492537258426845715142365629317685965629848080731480018315331887799488307464321376782120861933388718778151646223525673715905631674100199041761181263400142803938779005351756055502388725328203276283707976580019533082743150863243099707638731148531170003920581542170332246424269779111263705725952821370640999184177739630522899270938549939209753086002442299934247488768608247815266051960581141907002548811416589227598731076503663346647278950621869920476934426573295932021529319053081167708061087046033227247779317602383267520212891576104261513395915472076565374645153618895158859710083055771161405460001211531450376284359082553662162260504522579383497106159213344904613154435045314188223415691540740123994655834356948352704561063681165006979521869791820311452944329883901647759298369274577083981003905466243782410534377528164144196988883359639901766578192370248930640048785165083963888321937860589867430874145756389872246366415388986791724347646843540163529768099372388687551128007047658420619143903915633211205181509877719942218226747953167313964060355333133242128076673603777377866842064525172013094940020956491133909088486746007402519500519513907337851251348844532887041556955323986299450525161404336112468830045114265976663908039591480994211728046654188895611353106246580101375049473819121226234223076992094132151703115697226812568187201872377873258800067816391682888353482966312773243058361373548640416212539277548891017279360414600595861122117308074747984748531808016214658387718062534017332146353659900895422129399644307321701302382333208744026573007467183580722604702896080609923270728007408204050198897674731670789508007273467801556575951872716839042821847815003948520307950047247339677043186250526721374893014621982307940233940559095952327654712984416702732146197056757299095999290971988537636274146443615069570599481423883132133745817269525668750866484610720556095842788043129643465033330180268136578806176456982900949598827122205612807600329407383581194876872171038140783658457093793652261463954208131135881590016713754117412282607598683522910852270098870164848028918473816911933036551562499079767570223479355255119214315642326437079439119583268042774667105257767127724938214667639352936519052716880123030866762330155554914820051385230882782212154453949063228845223089049222504265276387242518680399417207027814339505290873545600021570735835129999368866544993138974523091854169679726392225466495031948268535798171956203931793775200004724833622305720261561164126522711661551149780443962064622543534021391789495221446230718963156936902153969694369587124963247102443109580142065952277976738064036517407344099551148046612427169269778424020464524944720977658581634968394110644721221723859572334994846316449669102931573247747198937879016803781119197807075855797307135112571036806265128885869224936176755892170479541598833466174400125697451543402792843760374248295267323538816723438356288167031686814018418435519187113708411116830635558924429631104423915170493989555975487051420279192216955063482366451205299247292439444680593187916903199866286174770262730989569725861282966726853332990613855475419790589163337555932394986468130659831807689246135648879191031398081754659063760081607121783819079973191813601224058558232344228677738806697030379638493182065749143290223498820274407102530272615905526145469619189829312685901197222839627824290906937883041183489769605309187854213998348953550584427854199918387384511129794069113278670327734276234211925240120798546869533138779912304879719494205699300722429557496927352391930336333592623002958929219720319719327546532379270454443986976705774904652118490855417361967869751751074694758411454864745989368788846414365017884851572017284504468357136416635092302681392450354096889402693379260936186985509897968743147329040693520137040488478992493774219777547975893820661316305986966106626024188270870165231021746997122865190800929429796728944127978668343814304659822499616764353482259021703249224846505082116692963759416487747355642675507819455452917212489471099373604495294021934933419607262496163193203873648396078675544498930698286955993886480982626890142713828185411887501067214086127618595230956718873264505791097244173706677490413509585411261934597281170741051702880488140889117781411302795150968429150006958275248687503314604029719840641546832841086725243027919916533582763458228372229824045594465607442803014557744122148546578542140802742882376536444673150070817832202653847810781262098168717237298927859734684944899234091017652220324546890311508802034338345526517753996182661050454602823925750197908921404727439281691839771339766058830827259333741979927103997790319790491005553183898119218664525661158604989606048096761614526892892501003508143195826254651105074880682820018876386937114556562359678723719002866537311326069909173082201912195644186199231226983726155231982522909166651634761526071363190540274962363250079133906044580756415330501260773566621531895426259967891840763375747162499951968039985995443190749439568608211991970615650638876893612318533563005613690048057401180426997983070796490630201412004944478207445871311937017114168150499417505192126267616324074669363803979943998396267527892214455783882656736133600606367271507195369699964540857505918587526455310532294295282152549818649374802569659030942338845970163583973222293906686580952048280956298550694821179206809210667195191347813189465521439355963543549227056063070363262812057458674209720515338315820750082240526112392798769940569179494440291363277152208834072205642265174808090419362617706901892881446094338562849388801454761261754912959507632460265701258592605610132768659011346003925683672388808641712175795812078072050616191345630305537168639169795349236365818427709557373499972072289828357455835941711064769540337732774092146443824997422957279190836952988541261022543092038512976635946356042562550131185393029082799906880440165209460150005746070301154931610248617214941016358543836270079330601261359178396574814349416771859453803503533565589727704678541496990904066842070318173321591479944426696397394394420736404802601917851680670697626207509445196867453861293063833051863069289725996202695406247876268057873308990588661187208979325690022665268743923190049724843230224008710045899180018286890544972986050696834339031185696493038927013357262253565307767995865616793569433570058191273682832406797817447276664221917171158279075540379218984241424505539382451659306021563037157931137540921798248064075347520643518998889470436795876326051544541660408492692810961295605027559352397803666838252442017644285461979647822217277229042681421712829764311529241100565978133363110637852585859947460227194836808841969254927213504557736211791694513116659618437571109420340088862736331534091697643483803967744580637597080354264600142900482507702202781807707445321553533387198370965065481825273947291629693167080363040365519978268923446627418980984093063839712965687338669193795301321157254665251397265379399967176126800591581875788695270833137206661626998084608165351725593697650450596644839259314912224042018030303302486510037244940406642315739193424095741380500796575692453689559001596934538648182507851910381219192520541213474346150310517816486910192240069499252851781477782080155393336037121567463174658799779730191217877395892020906594020578259270646899012436124960888370367468061492062754457939493079309228467293955343932954004489971421074473771335512040665616152579865279772532430752173462554406441158234682105859454159565507262994059898023306157677758665818742069824192790419628389493578776599535176056294800252651401068231110156023240718644114412871929215083291830227993931083583753225640268067348336644256945832155665802027700825048415040742842148707045686716348699544325652068881695756972161827926508948572447482891598208473502293708124202224855782049976211786509104146538331179868017558967565817009613809801628266321302896457294578388042934064740774578926248865509913958355361061942667025215471924303464545122634880798917656301112525443756092954895918358632407967486640307479818885552878742035838825676159504724672654051622682476137057019019568997810938389122201271141248617174507726622501382895758906724746605369265436227881223153531875578079175078004029752477642165311686282936983662700566971223166642063026640836482318108070796852847281545805703300829277816103744758797170769045954858138019025900528313458649534107045457938643354708171581567064112483334113901414699212450480826534057133765160644520535896835458360415824024721717611282204648620930234623252699595080417601785144343073644991817053406388978786746796938717467402843468463567849559446141910461277980060633536030397870110766712092208893779742484845667109287112070560374563919191356600714598196583378581953898221405660417002250428422227889495695161672119461805149622703317812433967711890187959723577090831104381457193910782717044819546963971910558665300248957857483845377043225785988542351992676457433122635380697133951625901506021029184613354234677444677249110360052006743378305656447011129632678737092512585458290949766159054254789337082245009796871418994996261746219378960791850678694185625812323554384394773498118772592176579414592086787712974008379864175248125864046871052427703681851078517468459881205955055049084202623469758938634890070672642174879409559505358963204628216326907189158998132341287900424130609570659852261644455576653547682477195624131367861871124075107453133295257933783601669871754543682371276279180895184326121384113843353910041985879289790275780204727594945136027447845280089805345823043393117890722462542701677950363865954444355012764576699730971968269461983753027764760731769781693893357814819974268412799501296722762479402553015161367858572947407730365390073676423743595844630596967426302744211832609744024641999309317014196264209027345787566239870410615925005614261520382762225805732579411927584093014313694386284049211849064558889371008207416653634486649762048165586351630067251426677424146302167080241883324962211258950949686405070690029579225722793182446740663775840424145695220077977277285558443966727829229128948844062009588995769802870574593448507093642068865128933308278307944618052795432030950052872749346244269600213876500036196604381427324129243644076940536642746448293472112199273611086809377158295389195480620018731445653783941760566849975362315805417015176812902401647008884800695080332529127722474622861707570763655924292471952373572822477996757174720779148118480900452517679851111807566670855583158867034148713159062425297325244175878134899427752196366081537665979498864856799000639089063783119280716586235873233826628195307685046078569631287163194299490985141336419977481565168857274866222567133718424806067483969154346834598217712575748829471877645347309822912730407749400614050483998279727245898606079306889634518452785853351249574991041591202018799174480209239915661428204495310047061423972418191947483339877159939189914815052463506640184981876643951190984470798166955381802676478561335469112570921413738390166319632765081232211006786324750932158045099115783139442522653552503243539430026102499547509304394669771656425039858050101617192865818463205965022239734043999383184421127830741288551865275595169164636910926066685794795794437327952412232729485081829724558240009677102685545882641174286879538865586362087982219108913613463204468828864798738404274183887344954989634570752380815537220793475937567142221111279851005808429090730883834851752320917102365458164713338955674967460389991759665433085816625353837787550881554414113503082100414021567494393677431161490572758073043073087755244245561932422452872517065471611706083591059440877360292456214319213248028655721432205001806762032522857566432242731275972214656737771629308229306812056267148051143917675659101325724733006477804526273997736375715105011289250935914586998183944518461577991934814802149737522354314996194755092914978820470844339429025876172678618339121752962229696869255343333454884949167093673994559979054193292882153288436613750195321002190943345129685419278355726236903363013638746247400170142130802900618110309570020352058741488035325180234006124210400919479181405546271095892834460395832032244345012052746115155845243199044468251751053370562108079914180789094171932515359152745510705214566891691709060711547185773299701402538829150055747927597690994942233047379469005315129741812634499522062914919905174249555674693601118685347473424176867464659265875287728725865082908547733957182200614639059734834829993009803061632893390244002711869189042683659448070426597841106697872145546349046086053246242626308318850590827077707080012678488228581900617705828378355132030705031951395963099309366637731066565648103918230029047183180903528255564709371073721401194486169006130608041353836069540626633465298692417044240606757667657560997930112581421911015024225948786420150356249671781715295637865415099305844549680233432101868101979212115742694999090973629768748321807731484493822318572624202494637433292354481664065800234055871913051937693344962115676818538793114043918983731525018094646091762103894377639328239625120927928913922555411226744975464615793936318427252645597642258257240501133057110248749401692058056174641273562052665716119239928433796985455552499758790096554626343778132386048359676597954482621807756834922998613214126319669402937556247953068279196030160338382359257790226561316045941474639014456778002031188240880456380266099442072032206225591270617342365256502005982463162119009202295411985650837910890294013962188766109804657908704690133405881127246174185410144970531141972384557391441390613336063026172270267075009656580992149361089341378952425725476795474125190936505982145220261931326107137633971657441807880241404021192754149632080813519099272655124512768777745781137129990644914718105512565105512569289982316327292582347839847328757667255414981760203336272616331858478769010875028760098305959671004613640969521661295478665669851041224932529269386256082657864555024199387155460760762750866856573195484611819287162700524966204499547308284003426884944694755906730483837311405835377261596710578903080165632980215674521801759972628622140722984919788928637238084116520105798452726754884546923118545871865305336167074593988030940804296739642872319496251151271918428505186278031866593079496152721954977379725417028089664764624711167076029084753485922553779018181387221888260047137913221679840807983864174863856593556015130355957462479067369458192964945157023270395376925458102362330611881227933394843326681189011765451915353963057314554483956159143275814097585238874720996127073702491783915350074962989213812622066702014074788833635814401463492237710865715417427137080651455993342331238994767389364082504218732453355079309690500505480381481271403695201340531343343014810799440558217089840070128178413555979610071330098478523095314026960036693421807932544083511117861141541959131216629274962172267967007222973161411070144959534329212537764466454269160822601096179803639642535379071138193476800398678813158162610078495449701152018037413966161376991100802709004938305805510949303037617382315265497565398195438675816333452622671557650029237771098573882778098353158993914372466950995540604851029767548030621474720572857768100474457343973670699744514678132150777776025834474725919057539022394055008064287281723712303157744048672234657155196264032626616632736195130135753576174190496602060692279583502142891862788771979396753659109309671875706475794713278242153869980078559240809720668344796381630683678374250307736219981327678365388985359794843077096926928842792546014740940598295498153816730295914241417546211704607993035871520146360017467118596092781897454366314748494044753614165173057192491145517947378735976500850507718224286760322681267614750311098271410624290208458828477206727100999436057467502036687773718289663770752291988184913583291475532217612081122130582175864320311728878348890997758528366946741004260495854522248854198147462674198227473964258801861674739045819178380855101069043560974579287007772781285165517976127014848654336928356512913773910143232508340319145028697328284739874003474769183744427541461133081731441771191294603120063101303751047038100678378098055312099898070523435076711446038303036187766180880890968677562694833369124908918473754784521912096336866387397143936663566459802130761681011761083572306222384610011891978587471611560772225346231932624848416039707705501357318628378208119515652840007674472666527941037660539147579698263503725497621427481448409142451182323735524718931003111420737167721211192908515796647810061019260989181916139135552693276145632414115402444973424189093515005010642443629860748741580129350910124549587699844604100338498244567041164124958650875202557899728577531188677537926203134354858473096828013183099054629991400112623811137365645986528234430764656355045313935166879806322868353459907249908845804939879387249673309147612903011280741204056291711611836871313640143165837781789407445851972838632913291188703360850164566983304201962807684966070144949283773156038679082402944878177624241327692708196078495903234124774720651982356844869237127124403922540128204469436551964670366816570175293135561387891644016271003886795252953014956326891836848217483271046722543401424427132218237904656206851681131609286100035394530458557565159851593930796713835780453810808759416971804133271079620485552588598399463710669375200164289992747429572420912641055430159986175663221569513335716655700152710102543682660671551545221843173181781147464290848154022532661224704629227519556192393360086249568131349923153943619530940991894027903781696505386368403496008770195716801503958622252707906344709445061837234388755706042552025523392772892974092792928470099920023347241727033939116672453519918153585413941517149869935506148085722837596336129700042303786145855063375428812677221728165568121352225353162306422697970262238861990266741837881407805899043664748892869362477514177557278534138087257028211797068965506148828670022057317115802477557607516671524353199848889047175141536478205601774413510876810245919755434326520552607070093012579796111868383810997308762161433335140021065498759607334931828726844285228517554251563868446742860764554084531168461363861886444773352710118579884194691317961102151044517215824755709702242218026592079056368463652446914644751422078152674212979561240184054436934341816998569825939634972863395206755223582436787906747117555674825239916334448129300457406553037512160902959350735153846908734992708876755822423984235674184598571783643881055622505496807053301840401848030718735711349531268418246047911584144741894215240887047842745669731142942522879987328686747597683611091831879956967040561951031373200469477052252433103360443499287099940774166852419912811200170677206828514123537380713593139690815105960598370355627555610432068661384918108880488485435639823322890604113440264624547761557585953081547461165218863406969318849935628511857320053227360247630591840066368684668052397700734146439993190475823228745804233144574136846353601735657934684914906925785602100798868347471986988130569435480939690646915971112644967849404593174653124265646859560894694399562642110219603766468495174152074118020151625752969830402967848405228791356697618634588336727647548573270968426710609158948674538076162804719290279114896548281985812104183964466977242457444719525503062599653594440620321930055261243855397837005944185318879467129247563858225978459000924231595087487179964310860297407685668576591578912811691571884022645348696305018258933456935192602850159265844676637124089181225445677386920019944791546419736093029604040167242950265583845145118367209502976443558092126663518866140499768556050575490353039590974314955814063908645892684449897114214083456823756576152031257370480122511448969769610340944750992826108845160557472018353147965495528842930700044029260841032266405937545137563521466921701833443928849868859915893010839499012642178083949390174879928753431328484824983300390240580638309146511350127790514111553411948724290475101846341907939368230242534234757266568368278763694331035494421341322586320835482750469349144051077002635052985034981761017683301024352200175184704372442777715067055880346558525325378193024905510113686588362231287572004438228827113394765948877046161788881011713052642330458296803037071360251045784077990762427851499149917604036097734627754504795484374317633416915046916440980903446587707316090928429457705182116464369965362595291991396048311535111382108747334265496233733032710732527872672899274432123681386305350816047660795872449517135294353986097831331640988833617195479243335680547032189827963408748429487564142064335069107781340534450305655623460729897004118019666860606290008654068875439660730485269813148121483885212831748398221456143893474064918222844691436250553177762759020477665729441992955362551799629998978577848248117370939883708262419343323369802415671690030451016810480919960131840462123867345247096995010960024554933527233309828070757336882243317864156010223291896642931363443917788494481344590262214538131050544572341123437049543487641090435445141977543749631549129914946373789380684732082886143638505836106334763219165280988261611795696978756355171835156910301104250498071006515253450728656504517478964079490278516608292211316198841173708935128065434521850255586799843446817424363716616884917262919415115651997235606355082186351598096732491080119223619416279748069951442352167974336109575175974275861665172525889330011726722792677339845768813282205086112445958724025665609561121775189594398463483023823516941508317110755519055760889670556619743025359908270101356939292254046832846968717515818689644562094725784069660961747584985525649162414431692963892443169595438508460168088769355527224766879190623071658299515909710849233409837585368912097855641131616686456584162777727204644341031627627735182741687494036624350007864983428213529449236252404911824601998647291374274566055500830852408266844877253337187104532485284539470898728124320066915122218468361829935811822990104348199600015020515647403324374273741690862875583685314221332230973416364230721364475499109564629766760308289229812615293074814481307668990937508907282577059456678175606167316030332906237584054714662727383121675115910803148894953482891567990633512800741881844785021953921846366894073231891851851209857744960497061905161823578249616923815111526717606938073218812831301675567270087258091569888854549778304968936530033076199549658498182236553544338995872668287874400948590990952749734117985421306375896076461234628237556276234895900645141830762617439528521123824681107966764350696910570660874784250005770896097740907098698495843354472123429233177793209942673626730870496820580361815446332698207456932445613506905643791384322328725181190108913184342711769946558950157496563922479231897782246800939555864575421887490070252237586992594368329688254056443181390811387262771846823540643639570305754284067704600440829222672731801989953240680091915639056538117764486241187455002921076026829073593366966851711451605948489017063940784714011128585512815286956795734879449120765877547073209977155405288244689169328993433456664786899405868856364914022148530033120418908933554879381815137587765927754171691262564414598124247184315573963533546198411024016574431249527600326885812414834748308753445269966667688668095542715378622529690344166277694927854631982790773908350175735982136308110358294428286922837583595445952814538530594951028796871633966794610710344876652172558733176889342189908525301455506923541429058779543419733144058043471498193393242052474924974581959850188958090435801611023824733099248489135029415023371430269463606203751171802154495860262539956535017292117732711900781058771882498183770704227071459388831636544973522747571771799421111986368780994420858283971606136064318920676265281663099056903785008131462894867146071746696654225148956079607991097610881599048513833457091492850386742986494564538101422392855965656019673423851857464382213196452231397908028362254102668139726621268577579798827437615936956344657941790096367169475962694907937971076664096477628360064323911165890076208200455619138623642986874564237145234273938842734972200296266703583919523123523993943968091200087583669653114398117558879055215271756146313132782931324866934283153978403171771363774302822720257998879425470364569871588322032804570158240203652688738999224686135213531367178459638247138648436203151346359167394641020817150152668974428868502076159431166774201360912371648320007242202065939553550905712699515278111794793136275609784499416388186239760313829066630006576350801299234701411328124824016993018585547844794949156097292064843780097291807274537159486375234675299567419668946300315315055422011208168632216051758105705131329475004891903000012811178103668259632218899294909732618642352966425004814007004413906010632430564234220786029050735011167835820214911067013581261590700453547224928353358977540390256978377297997818251909069294415289652788364898648032773579230615671251745162181546174908883192045498916966954723359096754170088082062098083979447594304209458529679298244290690975618347978436431616529189511887338962656434879856208938562038256727781365512363956714243680083507999874800728503974740970689797508874074881003418483739121707999091681188745104255405796603372908819195221862440950971848959090806514322945076036709926407212038342858238343896111140592377250116961648370911945178659579644441684872441338254798422596382428659181825752349044726315478246172366922710222847149359024191750281727550855248811228508925009894124414496161072452985308497071713338463654062406340653566455790256753642095525398194409772801762822837602018490042385301303252112675412529793734684351766528326031398787682209984120149137416525309626679502838825215359714450547786849077276602052471737488516722336920857183380672645383930349821663327678005076406215030442768273508351934679746426860096181519077786558405501458748071884136491081212293091015067056848752232823038274170080053757013298957772112565284217949032102262146501303236301510131029630719207871480150215236155889909181188545791860168738071673817517287621563510498218939619743967823045749231251510678596825087947120911659270498786110959714172657875756202620586849753518408784391987367697213972900434948791183860954873994192990372308274245257638654273845639374071691048358185433839570226877858793469253012379509738487154393024199717405102959984670348436200449903048977352195040115620528842964138420157732712472888141791826285491678553200892772517804484350831666598116734432068818155667317921718411823412990648412949614796676220100222872342763998288356816555908968378437618058415582262106165220773738886185180563731137778643856859157766450710781128675161202555941135427234860785481572480952333265927955391519400466740422140045184107445664324732513736759814483906432743643103077788555908332033468651424738055557698593860142337313310181193801378538233377639961548569862609433814170336076963331196037541790254482667896028538876291241318933045262003724485824256540012083357483791940302833596374286555883602314644093757081517943280270633047090574508540317256471120575540363624876103692749228557670302746323015622307929044693549223286356777340119698719629014261938676222872160173003510985251516053958139154988621394497160789342552414686742343972771465261682209698829518991714231431674547654936860188641369894146005165172105050045720337821028305868982407797065676356769594268810387435226758324198289143864090731805826328747882054745675014909879563019296280724068157665099307852283671521714127827987749417846201893997728635190020154664671437690107784331261345947879822421680179465893954233064999550228847666023925911244053196890626459660339567005130089722927534288980958014608318704265086815693394463410410260589456746625041274072302991380688016480491185277289070645379675936385887409865207905410118390004176266110673865374397627112390261912974851007737534543592097780851141338177851840935656724060999105134206107695938503000014754654314108625157946587748334124086552704411179659824214715736276644245651556336857774773634151679242084260874662538392458303585202085533997374288482193798811428667577368302776742822450420118605177435435810885045660939594123993623217741989101421027727730538404548115160771299808502738880885847850646540578634786282834088705765310313796708518364083762174424401175673102013660492486578972864814441755289315614750837004673745883187171305796149454564713161534248047188080376405936853253196069315775566852521105535883080829341345123418822238522515586849292575421054059978818241157092153322213909135795503362957326737686953518722045281592725282320512620102183782378886550833558899677919076357001686859640690448793835740827695311073132806123909073296448845624977446463343071245372162625458481791258040214333583559828124873631415654615278683895349486947765670648075166886246563497060713744751206931565247966925992676740504492002100264508362947441011530217901913108572038428241192017362563520244519277602650946411090425594043473681320729338398717488008674487972710429053212770410669125843653100118197255790682274616741885043507264420057948129763355305141170610778455126740809895482517174199855434634990207485507015297198538776367636743780742342712710789736116948056174030902084009497746698761891176961288936571802612438642538694474583086012575440332457892810629442369089117831166458190624567591469254926788883108346463535484238485974626003431029601188782038164698266618525680246739501719390041034299384736118318708567651490556240114252751498539540487359743746406600728170404808602594928190102839823020523821161208160019923461813711178396877950616532576316603892444907299603958568087728971666081036963334141903622797236902764207053445247956505259119761657806104955997703557689263633767622159345689765734042420247827103942758557942690956781949487962785592494032665574939407685220006297769519542256553004556622909644319989503531734065764428984453310000799223372839893440509638434664900320350673135790233081544685043721052196285736013955922072952903552270899115332402062813567151242216366609940498497178464443557156826164778110427994018023844052274087417779782745052272156428382762636682215719064726370388941210988320672161330909631465799663936648916290940874223558248596970214520618336052656390015046558814167485220819488270336606656045788864564113296404350821546470992692418058735545203482963235389658504061760841677651406573552215848597188152011085965193093712547229914672083464668475378784113179707403652176057658523744223240997865877980408390608779524976202709555795343813882495059257795712359522862062691282377037205122966326287841263959219872006618811656976203506257365226495939823209213852814718441496928005176075174193631029354103915939706092768495005154403640397109254086695077805478043063724063857810790669099805645522665871887709570167575549841284658290999370220367300978983572927381965822093129890971993970615682271008945984321975791225744652007361673927051867126062266222300339626331247274669613630976883310680034382544522030594448329769675293842215640369075779632896171245719854546280523073417105340276499464055539050688879951617202411915595804636956019382912958434267441125935712777614838314330934434313440851071497243924813713706675537301058340482846351823109957281553404364227763698417434322890206434356340964355877528522633636311199281467295891702456099753157322883419718427947673631142136537138402290187663720212835052749068262450158829611291664334947692995213645507740968152885777138212532200129676689912756981365015411743619933602391930409582946796960489121788038753625753248018597712239308897868681873540954625610643017237652561836568675174495011858551519808365230723820732353753947725339390014712007775608558381641950215974465534926131986261373436780347374091163105312897235562015856542802593065553699466964847229560792445136220046065167858213800771314995773186849319724883308523979810030810014721856985793147566709829217075144313297284383306094662324551964453632569819139193179882354130123260647341148157310779455752893412634172553816355221716468727745499305748570158770518717913664353543465784432162380797982428725618159411077898854557545657220731604148711678779101272353256095416919322129718546272339004028055535723361092655533514963282728364797227367707408913294206741261666249221801497973407372476566494469556092143864092406695535140098187210457223116763696012487658773487094780517572402137777148313408153342761718025527819658063143815295521677758906230034185176079095524126576661116480506280021250290088383783503001383401821767564024878539089837575786273884483322052953605046619135429633161764074829362357309196559600708047810717771084297533445172626683007356760142572096903735774127294642035660969830281367115659125613500579490380139316641900181758109129742234278371818060782599296347709854668765609994986994361226321995381512543219004751791753457339440839834672777866519574246374356850139011592656748063382936965909893027369138395621726400037229328851149085506922766246398955199516034671433602438843563333205843308785406115780978392063262355954606918051692553378018390597113423737488241244104712691149054356391823602327823622805684936130882612895972878254194318537650767684288946114835294381409240428256526987382735028720081722927658579982848249286331055656122588071799404522576916863064434370376633269695136449243138739739022729323537802662263288108606857616222354830238515357569361385234721583177422363481354458587715397463625910321583902781814275509971381510169933520764429556794157321232703652779538802303199295607497817450236120614388208539129306904655216757549552388460604176825279376057014463603461234318968167886768719022060900357800533936947633995021912400861398052771480247742701096100511567787720270638842899716584622185840456332203207721438136021744089547447633275754710310600992511712209325039514157276513604294788652161844592002872363781070146235349695203816563654175894968756593239909150042350970966828134874096890553138534610110302991826739107909536080906510935810571118538272154283508350423244814821592745569892578418305792506727069872746275598749738758940290125831996042429579452794000756898634320014973148041943079735449048956952414303846287905029809048101768756180383510856273714972120090990832039845109890716723704485354864244577373171185793514019093421955326548299193461468989377176498445812513490582301245695867126894438332488534439126143828623426262003055161775552840681257233533988121407149597020106337532957741622700819910678017185415809842155361415978713468501000671360903399234564290568802169342392174729969458581832418467504726767084316075266219704671783591435765820520304165319668301045553491041093199080841760252494950097489531145043743252139545416207148110579884738181457165417141109076045564640302575857904982754640514933790884004128807033303024626309626131503137255409187027823153439486019475496495575156371031531130978965855090765841689634307576284204149473598429379087493891034918391585732030286715804446854278030130934456147090768700135354149119172174979621581764825329505523040262939687377121213728480224529032071830696240561151801770285285610274553955019448869234793786398388866840831060686491789554458654013154842668793180851972739868939167160544456105383239202475376649705936365373864642672337477709810781449317793908781824499644596211720331018966670530701122807313792043554567982438189403157670990974948081776853799062193029580131291169485892690596225470051919125065506035414252089090185872933794652257055995566604476898897762707756700114492714806165319818190186053969209969359896761110371722603792180981235959368945279869538365021197935300991569296136465934719961818952502809440134684385565575224087392585647481386402660300446291796382289822766479670652727995713043672186197227581576072619260025312514280321415814463069075824648093584406609942455394173787925724422889852011614792479136251798444198295467846374061197985100352276581872207377932499724964330004775811340465346649170120410284429511969832354465111072620176049707739942204539313336777781806170304403377951101141913675242854858450343787273442220871868152479708073693825638213530154266325201706150960242997221235952263079409491045649745188833885853207103126858382616431151792514142933063960950470538883912576840702800440001486165071970976539253893741953178595216579263334146476180335388413003150296937137471545184804961822739446609331426139262941075253096196625562587237409754687569783301987922247880621671021751165119298462930208051270682046357459215740634059092110260572465148141794628612742312569139653991600555928788263625980442918036765740598087445909523737566357003936570554463841317377151243620292250149633542118300097596409565253074647357313465547694087273778991568439851262709542398055574578591858917909877134069934961942238339122285632896563349138090801062218301666344962863632742660007114861146837613789810295991751796389214381534378352627260076146234514131613730309869689814973805286047106778028242526293065497962082776248948016519365154677840957666681460216651527613475777264511746011027593485082928307669094025209671979776927917576335297361102967000327866902566874772537122087188885869409002070012670498156969815436813689738414152211066875758145977991632016680950889892091340960251287723881939721926348988991819676941744275093034610414226158335231060033499969266575227508268633066206566641722229480833362426207503133674207679534764523491912758376201834744684614315570947462577463763658778456193676697309205403639125823288266884073084491563370660749015288034726333955404061808212854467595137374703687677852411886199213656637919702333638630277246828830397905230652188049340596036276427490251676583251886986008432403223198576494823927059103465910624731831662197206359826914610504889585119415360801675289587517422542389647670066763317536326581031368215842501515940295534053879288816597794797561933485877354643025870944657290586057066405107145677053653036871092934361399180228660137022577319343974694279605410677171454213822758136812154977845277633977660105742215563214666044220389615801434843826383810840331659707578473563881254956360223193547372383825985031202709203147436501007043148303019264728908691512978531248473128147940145703743018602339711259774223226494058108942591320534727167221022640962679637467768611038958710959667536133073539911435830707351456274043475214983937093199192569528269369058553137922369133835120419036718173092421889111358050705333429931205587389100041936481773816684128422037147454172246193983113699574355601174460811336909059116430521618722910416621573851175460712624369352887600614305171336192063317457945184718602737501306158576442650499025118753915232942237004810350649628909845004953526973527408095573911956076091361442556174621802252880283133914609870072867432382018780267627600332661490015224384587264633861096731817561064753146177382828058112558414218535584465070963832591512993641551210662852222645303144713074375894557087927937524593371931771294444674688415658991152518630965465140624110798962340112809050567865325979897376736421147334139530700249985423255674809835045242849406075015488445721899736610292289268941552099593690764924376504487395243059396064895888495524188623327433214927973205742024035280127203821805937859543979170657202501774140710052653284531893819101192018908863780498944173181129975570982425004998995026284017877475750723073656093915526171782182665856242333654082218212062749712919567751915147314373024489559785531358260562063477518355930122024701530279625803089830589455518667242649702822155791546250102274168933347853314907531035476311802511834319102470002094621777279078125433427402043768352693635393036354999055956243211330168925494471447099806991254647353486799605952656959276100974452388692741523849263626868769589034014972216590722417831802722772827609359812408872590946913469676733839070791427704935667229878897196554960264450535523170148786855799366340354060984087419811431923958294973101410062308252723043536352122362083514287940341157050187424339895456817511993389671978834875996500161828764235417359452312263395637538187481494654269071135113199615145978640603893667791464336561725178386835195146036080161140487906886345546951824318029621118485338292917748001831616503356585802775109798135774351117087195226869355543361273657686053876853812463114811564518847311143471130828289661933947040459476819096311784013523131275776933769491071601429298759309628714668392111638244319109243299131424955985571070964295930540814813726774882730965054535614368913876844951909589176750758551615827287533599534948969826503120268527436724832276147527350405586702473646340348740848375270332608999289899479190651807090954431883143315390339033082613986356597543089238435351421937584314001845621037274238750394568372889577780651524297912229247434196947833377047457795364218500062997373990545375965928423126447756032985736258969109553815497613843165369775263754276339880873150753060584742545664312480326541991107698419368286638840893787466023824374575207795630135415280841821965737659337665462970523429458587604577802546148684077426523295664362190064884317863333523345097458406769481733834441756079819324854918563420652125904914400021879440097841908384357038584679975676848535139401643363287375662951518700327224919907079812113236134022716297810131900689376610051291103842916629537162389451803955861924480895013459758999326848262594932790115897589536287800218579072364354895014526495956081646594205663226781282226021282687536179882186024281740412323777854156169276542003028706958559298727554209455371946830415075893774487200399034900654050815352387430399871591733067724191337178300234115435158660474313779691318918525602943135238878069519252567565477152907390361059614417955038865383248696298964276177364284452231195073576820636219553022797513128231484989315377711443231710539486202042708793981555680375724506312435987150275059517783206955622505816483211471798733735346213788195125982491280119419771721281427049825556584763741887138684554623840165252620583176201167551348341590331050843366147371032765376534033228707866113527645394635483425798086506073965199982042672599374659115026668752523006455295808440488887393411663467930296093465664568481969976718500213866534958353034158853355464272384805269203876565852731260467611478795117605252252619620948503607696813715729768063396092825519398537943685338032534230252326070758157175778131152099841793167580322651263343714137113041521593909113581266362867079737414347689806803043625243052947585894391331738311758495891331366098705279755086167543745442999802895615711451312281559146515550291117148919835412597459579769342765772736428429240814086997020158065381776796608904439462367370076761254138468716510893696830279519404733158077092778550040259159624722713662991239806699114587093569388240493604738021173104148468752862395521115222986113455057251331537521963740168936486322147647721759406384231344406286802551071168729063985532017070189969441379025798228049435698387419492674732203280660893500778615993924735222983803605809849129832002502117152366027505702750922519681831264263403986151051084987799600384894418478361927786766705289051190443013517467216621163240644829880752393339036173988652996004658979832808222419777806385345168804341468403524175632398433240752359438534625311379528333253451978253793871237579833046151176663576773889168417161159841007161101812240274820573747296914418976625353896584077541225107656296991241766557619314022822892333024861232304379319981455246164805860022399582127415602392064118962037968096108540288863407116773293491032041129663544615854104709071558503946103167905338203481754428512689851569051858039697593562899222656264735193815465639851439238685642555365513871143628035699507127594722124582997269090966775182775638803598492253541260183145222816604486733491272890497363612658343891930878796745189045982114869804523257053090366138584200327105429376314338802566783904303571020647830083896911389661217752171017882326745745157722511478378407628283819917700882058718471660636568375290398642514038157290022635011345144209814060937344258084760292713502323020687606236695688551460394654698414497899873653473510914976105196879763862852480753287444696874366861788091105558185919545137124985567677422857860643823374419287661852376530261466135176712401469033913917090661651973341861058139165941284193534837410826169796136236642152355604512388519126917978466374348651292125923847173565204021650399191398471291714384571571338689653167475571527372940785976108420610576560383103946009627916921568068957298033936994548017129936138724906581757078928848865981639088018033336076394724650923588338429153181620355316927435828847452574509227821074986953212538330293889053042755012657797926617017501934994529870017355075713463798643391911541458865335838469699357858112519084610321907934087926999450715148992636798420491060549058107033289363574007710283741005904091599248412302840537799537726199295883495704694859226427397843662294042546316134877832954174628900178235596841474123161135632544701545937144105504781987843743763200357807392617977849778858735509384717430649722516737571823806258361126355705786361209177117288307895131762825858741142314433024969638375594627997032637868754959180008501596629814252560473475721519154638097298182344177148590423427271773486760617876652085430654709126278994573132283430083419112410519961252636712822526793201180833884593418023633367616953318422692337479027839413267711085633989557819793672037342258262322457223612986207521083771892912733387944508117237484494736169200280205304769224526709416087935786198264382881806089601760319190674904268404081636000545115060738005740768829329274941113718609037319476821205141107057886955686798708308759816077452703857761034525362707728000048488447595649421983587572791666769748645999095697080511202494708312951778311087439866746555470964434728807040502412883140387168685755346270656810939615791566810997805431862449204497267440871236650732801292322087788912462022437706320646662643135522990760525600754783570344773893884221824912605118208279201075407821002113328939016573564608039381940896034726446249739403963201443654970736995092054836943607527081060895833455193696810794221347581545498860618717426149004671022482926305990241280450728617608814359771236760798247727872839995550047599892129069337098742700226825180057717396298221209589422244380943203972669532901048028314037809001924915067851155146933674137197602762441012525032655980096830261513714198359121573165051326035824523446616694738965582564315363361145092744769016761874127176286950103951786378051938451318074924733973484113522176825514878288157207318337413304903913753002346545798885202483383462861844290777722256014621630381002424983319667766908649913567645225043930907279186598060697896882552082580520739173234943636513823178307963027835387941519143287606780171876378510335335170587409716108174212022357430009316511079348906794447172356901941755059719267480076915451572864457526568073237759086362061650701408349537716201391154889111972968542412190541175815099738238929728899438190979459701016634195691220992274440305078365188881928122513182989047741392444230741319563288209738528933233225468539748737235579053179064595746771738482208249035547210855499683123163409024169315002466907357953790652947122345262726252840905926634796072106689301965119778840941868715637023396406225299220064280861433612171030275230835789194188642600360079432079523202771478844789531811892105053958451306627961927004243389546667694547202759866795091146764466300008425761988699691486048298173668250252075437284742593114816945066633950877985202368634168206184213145139184588580378731412988421229323391284563264151088073406228025841315191597058408388002500122944102973876021067494071836417865475139596157108305226732241731120167670422414873649542750759232782730834140998759655384789917030133810938005057567052547073139684600866649172664657966595638198676320354801021723707015776334447895773984230975899558083828155790147907732995064896754248208370769127742591986072577116652560145625999940330523947515503482476277217860713162185780903927493016324034605475350233824765207143933714624225831104242050290380978179539221898691469663533698769725840658334501649851623303508642391595641954307683603081111370362948317003831962493432070310708311774991172101361732764485269009861955765834132459132278864361667060018287349376551571155341286379432174976444371131309449206754505988737464998582536809837665996500387013199419382824248684144494959010358665218151151343057137564261801420412660374679125111369412915474230369747959394109687496946845186817457217331047777619016521606936553194076198577220396199962462387129060777189300701606029843749233804860792374726988106807114453895614856909490661176429250686590990128065630424578818598328982367345288839409581096892333034972831009816295172797496341678898694228708571130357302668642109674320496606000231061015548522746761475224734008482356585902764254682406234680423899151823492546517305549730493876283108693700427001019135106686221751927886516020936748396733194078672951075674317431874227265587383463042037209273171818780645811263128118148285591741401810966123165414350909651803191133745820216119701595063775064479157516151696449907905217918573965667527556998540314245870458026525285720762953877527124162062026697745885038320982164608420458885502545707660566069265133187695152283513695252236596113695251483648428713002576037737934992952598868230512392250288743711436068089149442183755658500347240708407381255981803908452888683590782024033902300005897181981428469353640982686747148623350996637784860239832972602995293810093484402466922161613292776229029418525835620020807466609109794290190516955930625911910269152042955127289905247997565966596773508205679862643034529321975757956964973568630979305392282015135976233870619564018388714954680641332247179958897368030266836590702868751436561016180626290578276181912567912936032313204217012229903308555566305090162861284980872296182158797745811231316578353961363227437692502167639238701872403948188766948518140247266938736757596278002653904654725945176098781855748578926043813615044711378242445682194419680427020869247328566765870877183347443148921564405546803133350756395985550910170022189633375007393153593639789920974530921745307868593042105891582490114388335692659920095919721750592880621239533406575684930497694949335622320279266516383389789038476178424327980261850838958149258464733959623124662782044187271482844085016677293641051713798960620271432555002269053152422684692386239041209869332635922186496828320496526683746573989466314074518265814815329920462837943139914034128150543740684299380903530678165138426767761690273910849029101887847248440005073221242476808231005436875273318690997501607243934126837303907709250641598244040596242875627509970443072782967972752156245773026054607299385791766693115148111514911986857358637715782153720923308638195838964080436223933499350767916070661916998113427191015971101557890188368199913229472907155077177079452828523628430053529658951443003489662803760241260733500010338056554935459800142208304242971884860758931969867313461351473246310943518405123605706082584089229316184336983003470386940407035210073875342997726817437805943717144097124815412604323634882914211386583719902966200874165311210172679188990612572554634874800204807657955803756031076393131396850305737213128227498986615973665672385839646177654217067965564684135552192196393193337145010633092936658552797989616789971382007192647429342802829302491014606163794936178017584318922794619054496082769944116991689115642043310328551556662906894347447221746177418872547938422750967383291283288161829234919436350062902160057723525407467354503405410621657535947813398327307432676177302595234896943688921719571034608229375053337635590577359143853957638716004139464943382057051604434018563899570837972042559916571599817845305502541900874864072757861042188255546240223359189688235912230418768441847893449078698127941999412710628477389672314354735048015492920392460671666423227068562606829365521950124500515198108028202117677945522747255489242580886566111347729877597403830444967845772768639650644898985552042695334869666494539223178815794381598236572895875624901692041634210680245383923339970655935625670981292146356682507541553134763633561221815409084167014869136055025828748052491223361142936014588720084560992628957368322755850000473395708170114900543031794989417382376839385072141187371051155241352359477111235200266523957414137958256052066142602483789249566628070572513754679289066902185205910090872501840204307240145354598730877988509314631914976153624691999816566640357080529034785566493669306010692113857768568486506788686569252866778821924915063327008311104134404276860339029527580153905784207297541116644335644116764635522063111357172064356557029255282581036178908988929948852838943100433611735858952920020317111935965858404158830459872861405243053812560994946281166847466953286949330124441291196466477466750692414417684478407028099272332762547120112925885844061062804107228797269678369171435675395359204690475597112573606951921894294150900762869591793714193291207737905718421180406201567800586949829471248468682371993263216248208509617560998874092949375268271840607760935534732812424530795199051011723548526962615800683423180536495698965604840727108844307827093515348037008312671165091901727717900853986263739976005614340475615717322401976676887449075997427091294143138526656878366590195096889579185150619695202002333203344862988271436907881221540295264867420220142617680727533817412819852757745561281109648423966319567022205358776666451669435879867188769415327637255710405888972556878700015644712094501114218077432052739194059574877583794693505098896613457321511754555986299489119594343360837027857694328798463571662151627032980604395371082729887997950655417459558989401719966253496561970718553654527019466783429446497525007108239515077318806255731631993507401534629198777600978835576784046548168485057567131049410868157046995216944313383176479135479294753252500658389763216753710929555358983500534637995955314253046933120760216615181361704438072523601076673211262950047617804844492298973958675162672986942253347289254722502948167140838108802322966446887285565438310312290029832146449916467373636950206880777684169330215877179060793202235518173679015650608895718595152394957052377988093169974956300581352069052825267457317583247265730043318408394897570784631521221041902044221732470952580364559582232317147457219675581448024216453630690256932119348459861527542124920778759276396780783199313338242702948247441015931597373443984205074108355683172768246853192989900633250333171800826542340492345657480371284128680761023906254931947150787094628899650204214024104897065263159857913754332129037712943777001470876979248765730950100253834743259615073951804588924345549427722892391606910681875958472851500328380479785064129075923586187694496468909299874050963408686165041196579532685832225563811833574169463142798311116454567883166040093021970113103340887979300424346775140227557573177900364606607623502302829641738983467386348874002072748291766194096201314389783078178767086941282070923565730011971470576045702459931857208743650060889172249860750728231495504787410522127217562203961536756333670344482890722442100318299744502498607218589119724066394179387442858233900364254494550083872117858954488124804000824241022634205739567867836597196842764904285069572374942483969148822042355478489837305719649704284845824014916473400916058421671723613774269726350316992233274261373324520778860482854398392248665044543453576339196419450122527438900966361185435161134499311246994388841422165039267094057712394545079692051133076844048460327827220994176472218096739929283617881610879237005195358762123792296519750305090529416510319466197203261898933546942755618021411932829144705755667754595350306156548394403623453458659118218107413914454320159878510065005287730126782722800047318236430577075391478848453549782377502587549188595132775159921246012903193153893728941623032842999540421782029574404925794845663515110207732424328446560971080385697842482753594954207964479281649200431075921105205850072067198543988999150176554211294348672548219592114173219727422792759901160643276671561603139883184956674202031650489339903625169699916625010741967737429123205188268486062454512286575048697051031759204438818088963676511349262077636357436046071958310318361394799311855096625306086802440313089374307461291638228606147462302652735573767206595952085507737673600754351569719100054468924287172395805856605183047471452305904660085413692483406981785621724481216406271645852532647587093897963091403249879486761309844186148181038792651626277474289869141726933415852981837511671164932213167379709741855496152015483841908610894327672007326455886845751002832864697868086937333898308643963582412443720226870529845151584719533049713081715579420135057695934464284291410915845758314729184766268653890210756443695916195967432466857019285498056571143667920408967317079588062030064307248575695415319009793589999182117917648952911761247160285593780223980416728678275860110418738310782260014556142835421547677142414386727961711312810544273233662449123107772844064838634940654419913965607367480581993389497610211650029340806277527509509891968033955968898041732347081510771732581114004922315421403457456333209458277239123168650989849083735941499037408022206271078038275704992126305125322339207808672349314647571565991105921509559212107716905609750941195645303241652711743065738216260899896930022600944931854881542151646153558403544837391286365045442451368184487104567688347564025375975533424010961977663711664326567876353452565075705985610062957277149059374300905174991563832380270578236148227474053512719370450483592204335555841949859670848238729084091502542830588363262415936888761686684631114677853271431516107070608600639761071938559034567927534373669629553824670822002809147048984816372094577430657607103149340940443282894729295425150920821511320451268845579568997711014119870831379253598068500582617089693259561094178426284664315566093452478960716828663785869958197791266631068582670056332057033002758206767129120585720350004675708317446863370823238845137941602207969854828523061127568580659392610918259675805265247183198588890171548052366528152700273946886232765647522528984970869586683194845563903258214424195164373058707565883924394237453594629274734573622840363394260795415325532235441609248676947640373981590922896410700205625575079350247449305177074236652624194798236466873460109201977247063879566150252449702007204784800634523333150035068223053561328855680042075345765631691441241120116948456562478421870172080491171390594092679765098560306938350619539017920652294874127176766783180740463523006606777407196044567801383651191359032024996635268838701283375087882437417973083292310030320727765036560240236555263630821014482168584464171407104653063774017811925627935149969461064930933691104157594861546547778516414780637613884402509602537824268547030408952556315532152381505175071288151691934846098800601552504843032819765958413584585320096297475448895060631280709366054134602973948745991205598652453654595552784512846094767256049522275336644669345694063738334365989274943532396104398612663614181272638799780872648658866138283393803369902929045679160235937506962962231746272506201163379448936770331842223504472385829347268976329648575829625822600874962417594384751793784554509864659551984114469095305157287745566888372076059493314548479825946348285709080593785937199874120604223208855029267360594700291592751752665212685690371982013837404637093244777460594912701980000283563124234763747805745598703008880085347836991938950238877756041041292558600482777570098621850723402238539336775439723217023761151021977703255055105839870818934551287149189924079422029502703535908644916902292045067458291825129240509707741669897160627606683528741976016889782251540021431355155077242350962252183087860924277487473310645883831635161833289978086964143917326724115049345889300945377262894320605531502624859885287907193836879930172752679701990328177053011308504703934809778422898841218583479502240022920480846664249171208707808119191927915296976773522233578650527746860655715888263371234630824770228686356618329404728927485104383103713154718831084408557904558889452166006057330508444505457684059605722904843758193334983435838851232720820181738050360168673380376598883872660953006886327399623428949491809101295398770700260271487111878848013187515792869088953202990505156250573199530479689326589681744598170549135941133664706178146012932681152521969882537843091204014423713201416756530982654742154324535315076850589993778786636939230376475379617885277687423552929796302090082231565420968166440885365949565958347019835623665632260013025042108520996849152821240184740149743561169201490814015619228507762504859042719143269507706269388773309914682748702335626521017300195897585138639918739763123633333739193502769537703373535221796879076512518293678244769793274245517155020849196384796570299019788095475416120887842725924328780287739742746145305579971156188450390211784934156007135301963534755359986112849979234464327063963081477825767508452579254121282277873526252789728168597133221495533585345431721119512046974667165041433815743901020238739350939755742816077984220747203833725508483582857389876720691614067985572913126846217484298209573176127470585188297228872793697812563555069953825721301125019459086749325585750446279844218760823544239752566902085548610245793508478661080646061217093845332530649498611722342023212469853900666763015004905783248624469909241677208517990108132929965222230271663892416285414573227519819316151739537346548443129186954263218300924601159526747810406379182596726709781318494536457695192421861217086183001448750387771911176522328566937280285083568716148253953363376392184755060518523247944401153214790713524751440714594970964916655869564526944810804242922000239064066947615045481609260657873339032802810639438031465460717321239670701106909311468643494904621576519791851772769920211651203736557645488774131738086300059891676689960469355698859033408818125739511033480183774988283904545616057874399596619100784748882002248237381991264435156384310593697418132557098257321369103687171066747903752958788841091290046986449718245761521474916438395823373843467900507512287519875517433634479605171911608432741322551118819449623389962928574809571783803146547368745651200342870704289601064042284585837567921980896488658569341790075886516124379121976431418577133818614661094457144952058593930755136988583991566763667497526672495864897691088084053749528508489565000997752653254717525266214148113880632192583625169992382519715314382027923101226161632212347075952335013592767668810853692327083813521739968228540845310913549253121088886640912533287374918054214891068385467013148792214119027552899326041016956505801366278026507560693331089408499232323949738515860930328060553952670443105199186703164733393891186898223184114601407025267143620827302333665469752460064747181893258540087487871958596199775486085773297761488190794786848866844357176745221993704430334180332879282986095612429841306572093054284830091641957691452838496554652490600443478459853027216559936606447903743203508760562199710392546008208834264093707803162835281857913808526298857750196935000745779786862312777616468257940203684422932734879958229681287874078717631876979843872688573021804764010415060447800968511594677256201262102966946943819940514980724637076642188528252240235144768411478730251080707304772004048122671348189809321455807722223407056241495506903492550941244922637446563254704742048116029022154521668149774632802600280386713357311009850962644111119900472878647749147418075945898041294353480246321188569169750735301681315405837498276365453486305531523573788914701838736060415252147049982652124260510341615756379093427203226822667053513903310876266419064805961218227716744192876005005329660711714412600604741707522570848380714590964255404463174224871424169399308966571415526340858361264301918435880627771677631027147491903987513929984742692403883400388058436407861571859245970964957960232529547414659506981876502632848639691820477505067296136505752218718685342714049769035918578126365199901568514568971536862057969990913767002860074056997675818811255376746059106296188414307453984171137960036909904714828140472103745372985816423508846372772381004800432540210061891999129622564134335541412828203173980207921493669250023062090305491824698791854213711367967067310694798313668663891823726888109807421753651988130129453494565352118434919965731497653901395773433907708713662630582927693877844543110724444171675481540394686812980835219841678147730603105002529444352379730243836785126540125676537909039345715703662229464328691365965177881570297810443998813491433643692903254543243789184816969180366843587985100330112155186762415623523254971447486863525506006892199319277184034722927147597698255510237631441214157811887538813777648423446449950035122389583600050037187896869857450245115644373366627271718656438589029076573642436006862298485035067449920417717533148460995468855759799827218091829718470031222651971877242142598592386157254976026327969662900973015303955912878615341960756514044560517886298993240112120217268476666319810055576206152540998469418839560869093169143517506982065976262791071179666682347708103507343857208197808475364594855347094514157492345747007412031814311810193631631382552662298356391711044811320287257307084659185770044167463481040408464291272688899699972470541195497145001033447170071207892016057555763763026709153942079677551659525087196319389074868809263219877731799290523065964882827446912360055899587153595305741745643791025913061485713284868596047090211260246700463609413972066661835196793189127990822028435671377151598825523478997823787936785143050517333138103397935009020926124343883895253808789053189441375805385937941202963935770776200252038643336613702898813527374572628822962323756320994780260824634929325243795377228134847535408099658077224255044321314115046861014606384371832794739800482443761534503911939144122849951802172002099862001196811811963757691877467674795336475185209516083976976266832760662804737365277096719550684263233805089293280140173132926095307709889482879302421056678772860299737291026841079379160280804006696698336105342353577847097474747969463707584918653080776412814904233996822729713457806932843175968052785285138971500102313773720299167137565922493186953721975889985263291802017158962477729374434252074875124320476707521937393712023341377451665847215203843526178889128657903776420271007064174625902699771708355928361071331833927675622829980612272766319911275422314432302457822689269555861767418849311736396643512086853272533894018840492473135002255914313508191507136490567432054465455473049512890464895701376740325179414027252379286084580037893377007909037944350862524457401717822320011002304742617032200178202989867189746612748205911981369172381566858628613524539933994220005757618294762618973202582655913582857697681691679356786373587151736167110312155970810173301812589013453441005416181703526342100603931458069309720904405185080656055574788535133632456553452509955326952104506281654861978233814678857967740196788858153146090853367510910333882232202682546307629952372947592982907122631835087941566384749722570244769866614020139460515895875405355905292650868208392946725703953515477003220632611905268430784253883853046084293646848860818075633541048895777980015099950266498166955076292564017208655504717294509440090241650399592837235877739014493906406255032670955994923130503956476472134698180427714379092459559561010765162487834322025034918123861222403241290389943966759620059185409165947719913477557925926536912784242410244076330452720614378109403150689347679957439523356405660844486194104954512340579157486991363424309066853368217223743894846416212080464060536336403408828214214439853915599455397515607830998159421505907934876536468649377761482205072482509612649745693029044218878776000282755303502753169529154322303542561677707970064996737199515716840180875349401147184185885648632675949122108084559180909811424600483523379460192234397929764425289905430425115411535401315337410716892805164540353471568343159420153959524334743114959581501502616484373726903729398407357046171622045173978188182332763726142860480039600399550814558006172766184013785783963374363223439289253712121228605331793999549358084135276409323262791381924933096147513455518407350512850887961408149533965836338192190985980084781584570000389234114776818842953276277545185332675440326494630405104268700531228294593551926426136595369250317184394224184534380415209090848189957476692863203571878752741035840518260065554892106189276421503228169065653844600511033683814304239277508579674937615034886933751688616347467045548282219341731366119859425272672096506340603486811406160830454818345848604881706833016166576938783176809085775368536618710764175218516423857559552837356593741403148604232634927977997920398391070560590726089475499697896012569319241755349879448304717205829777941986635097403494161284400183637781999087085626663184639968454207365202360961625281458587203591973110330612565910925338027687802080962232243549726919420429006365760876492430537603289317816727543827157648475056343430810702853062933005476785115594522312587450880662580407512716588473554580856772863733504719536133529846818537490322625767188215762799183241012218847534272635782459397880657807989578254266193025707703528432390604546676093301752664443285539768667716367929202839426250411243998301642945608419002929748386557592582675323976421455173876580077391356250099781487666253142678802427104313170823206228994304004479553027806487772983807868567956507894923047336414478934135465147710206469667256818351360241782441629907748835175091721891984539016827713313393732726412206258140805107864738806224777373456271494950940925136874988584978765058481849084302263049634789314261297966272603021684113589778774632326398510943446460576445240622140169080655945908708738660808747067968386041803697725614008503446726965282703282490729125740736673955086015372284278545827908672166038960877324083964917634393957074272663491250384278436675515393460096025938244801373810740187970637996645370243076498918256869465919522914075724542488828690119020250737715146174313076763954458522001210907442387040273020096347805999951101995228839996799231594668614438861576759197307619704138232850022023139445449816499981230563155958744910697900942636992457837704327701912446646132326073088962825883382638878807321631948592346244554208726485935906579181179339267196886157772018757805620459024791329047083655975474492670553499022618508569983609086451763639160166651631522843084634902376845104853518278092292052762441446183407889372941300923342041860828728971682950619565314303530388036101035922350969534751790987934043049401074519050395365806378046108415972316223459808597162839413452145213580214645390706580112467279430151031245451962357650937030231197049761461456896258822015407275760501001550270515433774157124984234270975738697433020732816685326263170334655477366622211943494506530774795736173257473288563706938759878115334213411855496518445178425960492512742827420933516683719645483184662135930068345970986809908556398952268926458852522683296965395401915838813780479542788376156666898127987038466117955099927195437609552795380451167084326399036490063134132226245690327910692298071228901515587124023637707845346691498453211164408755721937599341817325001256024575423987398228561376620523521371371433616409627179608428021524721859917875358479858050083613320910483278325862232287530643721910856380722544812532106960847919530732400987080147719143952975718158080131299494583857204549318145085598359158553666454891647543644551570983148277038708570510107880213694769528039871124881602066141375859135204593182587687571586325807397692676056256046688736258490383158595578961213401908016852911605243766248424552471129049986612444562447032836044657107571256825171485143018615236504342853788082796654039237918513497372863446812177300679991645869973220713086780032078985529379485818205075699331943169970494325155547801557638405151314553483615303582991990152828396160112379399218760701390073030649987704226840045480141450274059422519153925390086067770879552081845816567659323090992676930259981500983921562152237013780846606497103574528718932131475774049142078129973495788769241171847387258643838870331205428816553321719458104839235945601577722107496413911879127361246699750536038675377019608536985708999346874892694548650883058651943330730780201692076104391740821755348818521545333991551116658264785760949533907214740308613239632546704862879338699637454766686434053445417552801868556584025018169102568197479575279214752731494693342296338668910137192557492934579077704910857881390594394633962745077594809831693244519291546113893235919550172709742505349298068912354650009185249051407957305049909354647185203595114477573429078452454774312187106969311985089149053444344669436657781246551752555042993516076300878003845713946568338347662817635375208952665399842571308086807876213175625956723193218587768049014456817442838270997994665548929869975245581359045801724368050880092624644241710626465710951489542655515032797831421192989444681656591463657725506004571564989847324281660213287389473237050703735145391685167361814268495089692643029010016955811671744153522982306595756653035352152493110443833521196682802611759563483233610132858920404106821355926690323962002903664663713457444514164664389400060668722592052113289540290550798601019909739876811494454742089408897257931001904643329475368513422621480654737001756217215278550226195223142187328989946397327649038668130766362189388332396514545830802529150432301670630077141692478995068988999182438809259872915719584473566875261823961366124811412293547414273575389144464661960786469960781587808338765796613633300885711348619812218238746604950026521123822309314162756911935225486866205046279395537783469134987164245499713606699571008688636338884467904267024244578878948333174591740323125046472832062308058735049420657371578343389114626002015769814843073294614965323303980677377748166253390143392124868397908406353514675747588486793477867759968571656687934923506975134093173775972535096094506436998299013891555673439758222586748738841150712365213922040281159112728025661506315563569275319202140243736670273208348365897199254689239423756009935530294082894067317744226504076145674466981342109564413862110754728384459463336122342889789118208775082172882389698365805708095887795190742096019219896489408813877519161222533835543937728183008144210107881838526904940685971683688819275078190232938368160508194518167914526803275761463195096845905166246815494358044287162766300957008761863759682464715928542215321757179231786266781313109067241818783998463378867335289400373532236879737062285798164728461996979143918134031500525804488591051635472704576654189161947140074676804663435572245294043697834383024504580422954746679657209239935528482790836689172649033645593713027694562746071610527549410162649286273933467706185914469486827270465635462016772343542201944283134365239211139302714622390348403896705074012487392247649247100487034237163651667110251089148400207369962268951074553637703351711631006118751470166876027471482581467142865228858425507399538308349544008312747043053555856417676641599364385715226011023340692416869578188487160565994701649051900120664560919257236025586314810242263560618977087442413775624802408219067513196803065344023338425736309704991116648481394816395035346716415886556650001850925122000120054883099687451403786027571350710292587645575811203323236460583775474260945213068994671045699602559083890861516503758576035703970970347309941507143086391486559538011287497870851329924955089153613386977917893923613081619782700375287649752752149267026159490843817660805683356426092722517995379761359944933337934802672317796632919198914607499152544953338519790275650477673616671072196251715428132165233858841203863863273265665919801763451631483382170120080082051514855695556841810953244258582082653988902094293309014801158989700009931367106148579534248639850977303999206760210340666646872114124144085595259685398629646045695725042978258359226653490309261481192502721598818200837315496109964112666147611799941268961224544137348570124388462654225740491735494626264256665194479556869730533554254692268991296073263867156400257622433205574907984144276943557501564732092657997709147101232084714307015301474801527591860733851798764053756472842268537684095721981317030624992982767915908458436510349695555518377821049788510829382205386709488518040635164118868981882956355580605237670464661935297815849897065254817860147476290872310876665112566290407775093152356593903444723041415782454562940005842564581636910548206403523885159928478856144971843485925018841775997984330514562539930126324566057161358758407692648076601846350912094763258098221363321679971674216494578695597304623111579419746521261630875182983553071913242895983060894978230304894264343154792317678221566251821147775077889639210237644657883815402580489764119116942633364951362278017068061058528197939992837584961019699756055104517832843394179846194927142100796043519359375926053139956564516845349466007909435605957321366866935721686246135532925317155508080836835686651730354801201286433228774902219946417453576956514270655085796322744498566307499468383241544133170558783561619375906149080333608664220927284225292611949863963299359889589928707531215262520298628608838487413982164870352101606310784536089571895538039892763876417595515974788996517780829024120719078776306748810822617484363580001641467664666766890336830573310218653457673707793431044979586552002586141638045787409256439747931909783593655043595481201771211771330915281589591237873533562958174914404487922112258669700840682469938784664212453876850982443366701725461901820988850449331188651838848644040139359404314427070494890451786667892953558131189393793734785190491930985547635321731123166988584392751518524195412087130258384920565657809414395955724777969899428037318528376927183113000195454068851594252950064615646583937296409876066555228150531008249283059813079737715630625350712155448764631017046406585846277600561445384795989615210486736226359974377238327710688352478817503530991768651298247222616507813786410310291836620365062709415443974871630857774838348821608857140819826385928023947143159914788636384757271588480662660531901730818559325777761170949270137632443650921902730259024820449422770017530212596035630530658487314639297437314911916926491907288341702157346247148493763351948873030842412789186554047060639756873361523165321219558102719254368910030980806731145030371238230592040727649720542049709449008927920831868311302415597686776579602129458604237958882317298179131791126968363112373601752792305082306734829255107770818588806711694668397049899299644069051500066353543884477966371902682034925252977546072193681250333724083043677713800657552599370204548069291768419088414810133731790263191154823929488152311066594104264825193563180108169098221957429085365297806261210206869710171232311329101895580892370758215294397542179444350635167793520410832377668820656000463866962398243901900453815516966591865572767368361223999461289411943767081054340237827500073216070343053783922082513441240703553356444804089035518654659078220636351359821612584167044981077928034247395508248179798330953768716524761426720471594639084448178745049282855295133275808559623890865113261439171812848644686538834061661449175148114206580911015896012152293111171913014657877741777423311895985617278949159221274181765948438455808053626191191248440422452620351382194810928834412427217613306837980365368606753369485536766589064379043547408960943404880742974026218761422079681010179120864381814232385855306753710969882467430117508456085559530986194846240335237063367092545168567394061343243817643386709842979714110108585005264911149821519760699879106825059140364116105346089001876306316869141465628789049498807277098663643704126528175494713256877837207719437055966472318956301396563777259339005555558727260565535215120438009795002295643246184336574050293942733678040103208636280977865837476993602203491845837311603323081143522862002317966465269773494410036076979901861146996492145049700971598655734562239937516214610286915360634073059597905740971350815719394590573094436456718020683230347340941010073428073420902116311393925750796820933309415322921779997370443305992802397588864139588251451234650066986165974454475332076071632743479607605169629262324480425865123725412408644219903370318624151200145357351910040689789640688446361622756298982876009879654914652358400964716121365492455769623003998184285874225996098807219037077518316023006465884693107715682582506420990825992045306455344987924832473181710402208264234243699987231477289397400199369581784270203604927273922809316749943668393927789263122191450138513043839314516773016840803631805185129126946868900463492300796639766132870344056212036452134269065640318012125020249400005785124047960618630553506932558781386255541614010616898735608129744116560571025548592899452591780196494648889254314399151615265425920864872258884282811091287822671186400746261928873678794301647267773128295268211207300584751873465116424833568156796415807275408379277738163597677031918258751326419006966433633028046234921848606403675370713124018371148384901405758204505663783379277992258940728672714533113265373198519614486831360245074164131102884186842975672048625542331653251186466374161494557356890223981734088114311817119522468295276532766449090624193664122059907707171762683073251077385756530925455537767232624286362722924887570792637515935160478837885213358334165430496666787600589061611651635385051607990936533304334171373187200713237855671791670135188735143563828690467596283109646468269952959839247735560564925129676446658120617281275782637697615497069812700381978327463098604928573018729123785910822664244738368821330482925327138244722864900782290922625733695397080836963855389349367011535031152398060763784210055284764277014157722118449811706560302684768384603065967436345109039987695097704166480954536297601714799605161876122228260081466177249820306476544111282780418203032501662643798728705799470061295379746080719933094931138449327949830029796518977164236913711795466437599012700996239183205204352583322191652651634512797350397101652241566336739029408179666832427297809825430036844024293018709218103924551061513244321201915609721318668484309749512460734238120442142109033879938987254495702175789893743719134446235959195689716493785208355522629892260970859076035433780535362537432842774386249302443056184766206757257852202285236476163271099918111646132698117681693479460916149770821872977197621839702554605358233232537233387028513474130036887574923035006666205348518503528979374576424736646774807310781999160188151531069440905433305065480125145798872205221787660912575321270133629983256788132664274299603060780275032496004306536329063113235490018294945905487655568189279960595835757729866388467745969270193773678336802320830063664857484656355564956697505474618416843423359070856269307016859293994431763337794452903805445282087791026157685076295975128559574789409059280230945512499859591971026297990418173153590781239486898369381961540305049482674569658098289934063539726323564002793082592318011538957199904855141235655454539643986705285686693835260292434414041853289356061395561682265895043732869802351273717920982300025808799498204580575054118928186747958710889979878863542951059822103512661718069264844568043208162303656857461869685739734681472200524303795013042941836647316259654053877235605738380348441177101424064090928520265630126657550861368821062471509417267579043500281233091194159507551836813799473669578476678362677640609061083786709429468393997928825082614598777958117964999872780004823085959131717547656682694946657547131369405070863481091736552100003999547676993485089348112678616338387716131274811654965386049462150731163951286947153290735227760115643428544026173454841537748150040069952677294849337078633401041404256432374947574591023488406607180216667379191897518194311395585833981711565123614089744232427274439042960159477471525210562821616833762953038619836462634252183915666719142779219989939456687957566613655557325796583795219630400869738745111474794955308110694048011644733573509909333813623709319850192133768411669189185658118844628466695737908320118199599758778460421370283077534199828443476100475446425488341172834725656902429333800516432008025854215248785296601979483926686808666512404156872991815478979484918171857483887642265891917400146319949421699726068288039227470800515034374713788791887047850332886932769997828754245089629045437114572616039785557854497753937281124130331394285399199316263492689633523623586306290855506166952748985991061470214895775457562714833688676595359650105376924327756699101210934202664411616771804038776303027693252980034459007689867798108321509294978069738567255906272528823189145939407423565956240618027302127490370063796518181069953532500880689183234436262349535384325443542079273255788426086904835513255965194982060533004777923227467469349150893803063329051378771233513035757143071097459599259815293209556372061776483692691467424860221016197827817397834783479204384667425885477740222403336991705156863353944825631807090209221565810644461187503523326086159343749817321121466728948262231263973080376163108265085189275676913376878771801755324878487099720028140788723445525945103864778075726329486807858571387101337765127703034417677860414843437341981221454360375206552331522526679642578469964926160442984395679406002608850401219896739619289357320429025932757998226433856130853553331634685217388574382719780859111901428058921297078830708690448571385229044249427673142703687125168960808606034662447772727816113157873566555800674931587782153519312752013493445679862258706337142245873997774716038262431249350267794748505736303821829320899248851565866781138340902218652206924423739543925992597708167965387885608424077735105800699452987709830073006610015585553184745098201737635910536313719667087077858328624090026845374133705912716404460425568138604491250742571923114938951720761031594708102586144917918238317105200550819453224945561232108159809717131685863940969732998781295275980644106698911858672187337871774741384985847677839046529919448129872093800511679522930640568137116725065938965700274452533576786286023364419675393248967660148158944752935654349368566474032778308894450307924456384216956982477642148089658513269398353704101648778751835831581705871478471915351274855983839026246908645322205821133696547160204443700995355953615647397519846347436741683945108205461735850170419995146016125266174141903031548644283726792882605924471303642534609790733299968157648319610971771933856426888126549734596121442556143319074737379695465952880744369143255449951372016353885520404752826510627198321022915353319419522488996970309393785706420531778075620744164934437417791611716164167032874419458481375834955246164460788092856958357686106190019031809534657673098622758954498491876781042278545017320805688613289965586262877312152073593621351501005303798689013171917995906485275262402145604083254753533827482179834017140306423474384175984153556354025279639625723520225553168666248943928445636301537436470014427983548700604142197858457071117760232265568268116935096436962355260163400300492405391530339077621228697731546122730492304932514902836188675256528519511113625154765934341660463617552978986448717835369366598069951771173200688654873166683294436678945038663913873755004697073943106835798647036413077714916096403154246881720632645805123757249284532678540475587791564753216514740100942424805853487833919337957812200112976348228766544319392803731133880936864464498501641937853503872870055708912493054760441522491350294481952109553577119137053985747673856519143405364319533635574278955016455591746667746474672726802274516958898286306421895304281739444391443767597135292168118037201622203763905664431394248402271219259402558218169280072767259058453236755636293459258004731697214579217230190333511065420921711281923016544520686480722456185824698407460781469628101522758637418044788050605328802406401169840736476614723474028077268130564133398779769890871643257370243982741080506159504747056546700014311746645665387674207878811186833277592476484798071565607928767496527907225662222606422903908875051655603537190952219553832366384992173308891739361902016458453750513194997141333603053390481428154100852258522991729123467179780296084256785171350821781740404430301272383786739897411429724252580034878399195907405289374802569902875276143385253138176472180608514550736654154026652572500123500552204009620740815290060906762619967803216105592024594038184775275959717134280629703924302178694267702665906061107207405911245584097073252845386734457137933766853881862126989605751263890135501990749610249043361271909670539098793409823618396348136958936856395810052367168224253692221963320403730399977661846101813940822541578067858454335494744434162227210015140835793121789748745061703298980707183901156417689749031595442774228693321519368121697488310668572702940161780315174077389549696791546318492387634739475119173552997096973897026560382209980164376439541668123938195016378874602025866360510161478648541188547286337423972787151268353384646771999153083009457178916855283188281675937491751197938921031935049760483129908975415230873997291785469665241742304625676363140784804932300760347266960435608258908041314992575200843917096268389055854132287354054085703359390134301797607423042224009587047699438231635594880875134209485070345717092173404241305359222977853234434703809614781821462706326174590494268410585168769973351416603815081814282340752767787495185992360278739551992839290950749376603895107420989918747028444404177291059169069590546228562663863133298911482196498240523076573452827728158604865293358510824269540661847806075858776729733174803815377836354968691462497948689404579884831957377038796371492523596745544988481999180866881879074967022204579723172358394810149647054821231201180627930998060821833576010055936073027220821817026999181445638935780168912099719666447464399418137927529320844831157480716490463566818765274482360167041549829466318717977931901082902201594055653110103334342571699347479962302057094484790403480271123811730593054968990975508022642884463822440738499983859350068941769082689182000890248130871327014509493307830070831188516083559053949980938521636461351192722314460882262477527681016649366459382152143473072690580064914140619832145494215921245156928662935855741293617039194958142988396800579215220965557633038442725583822940420178164768045587595836615720848370905258190043131697207313005322631987277829828117409516646057970266022109189518401022814483495181108793052678830532358227322558678969360701365784609220584506530729190693815385291469974762997900317182958283914406478745916798604101639331134158702809141042117219242894433311391089404381386559942507476956458894481775921029725032757377325944245587506988711147137306710871890477573313747999462293432850128534456672947842602296149004539436380606389215546897641080888340120090073275917721425158984447542064090106500121862647353208069716059173438905985669532992221873949931732496877222540778247928129753940495824146061854479391890962164270234517489221364793096420139850194882584108235070718690462315224397939891240423562827468619425188336023227157176162699123102343283667890886689772957274556354162750954954232833968202536006763746001515164854863985236863647362274510280745557999639326752664263380129783406637827082257574936423842571794594686721055657044071406780486382872118874062973675486416678752099311092309283617304249641470292494673649372438763267845830512661695356949626259955424142867714142393992592257839361213710585093020612218499991579531816746870569612033146862228420148667379773005078278632800742124960648641998278437891441810694017426632433193957770877372341975395917501360785467781396640226079935262450461455013049063865327478204202414428077495103043921651204246953133278701844644265631374027413336532119055345593565092938370813587118968048792497559846855983312114473234797642346855421164767407245765797828720952455984713131139490048355803159247408095484438000389864257776725799559374493671097390469480380950601474805553112428802409054019993327146823552621613582327309837874235441633722187833377174921960745953496458087146919283709306573150306631593506906757887594222085432352846114694816731248893566933687658092466492445713669551382111414590677671537589354630295745649397327472121595625333727959603862509577802242607622098351130010287293609776977306736832367632287699401302432512352608920909684277317545486482667481837655955768841390711818300607853406985099862791177609166509453032910407105280196067517673412520238958171754340784736350555738868906515402651892778440340653606072991157215137043733623352816059591040037334599068915054464219093990830263008643403687776891868580901065665935590818254311350755994755463413393573005927885020332414580594779574279947670918531540806276611040344747031358345992660099232363098750206756533200750387014428664541309962890644203955677241646483183895006763615054529227326224965132480273158298688572542111625732173361329293090285043613025157509816007872860498410204090692340262748750952111296560140421509379587969418986547259094369932293053892302304563551381044644440468955090974477199886149637715361921205111303137822589943376603979184812622234081107395545986981328505558415865132924527686065535612237551265411569516949556483905275133524014586587310859369756182235592537556206129124534643129551787842915097962529209485864712287201496003403165264595166800378875820243648820947610483951155983020408911068530528123691893293178597031900248877642897018728356500677579560133368447281495701021832698127805031002883215381108505264675740236430682125932581360121901941992728569505190061592174103674070055241840256299457895474660966640321820021244423520077799049032637006938314973125913881973446769463334578423217874886200945282126516593078926795872169787995648236668100468608108112923726704679378268228606140401542609121721672748937516322392182866628349784221730326270239108947330610590765981536430464154316978535960676958178254151299424933246737177604895575778456616172526532942663691434106394761934500577625349894674953705466664501745658544612412418610019916221700899624480432586364055106727951368255184064785512670586932296372563467205701000096054641135192646025485091480241978688187700881559019793878577455112177494804267905330946106826811721746027412484358493729129290321003193290265214230900803920942325599445288367317896188069878483775759941668064622065894473487943008692437759388181574762427318535166181899450169900914127897738322894773467456339828084610467180158393924588299351567251501130898357658859161231021912559686548113160035606893207322255529472303292234765616154524361364095813611216816916200879325129323574473484156286824158821691809159660908929733111562286242359878702084979503960860139686645255158152904879114823092842494959720600400693704681286923435555861096495602475857286408381713214511021706341541612695730794820135155549360689671011731633755061112299500377736047568432553568647886465649251112860892107718020378766390672607123448776317976712622646961774909556670311654511745020547212732440337704205236132573046920426929221837519480507519504893451035728766965823750937251709520741020526054601236124588114914463814463229995428857096898083410916878471683804277420801941051619421605130098655487904405639337345969299594206343080290581777405460325286059713108504227371964665728165139087133021650713076521091413997596378316476404667357822239217625554531932570705058156962373678055246298680713614809932641057727945830730188044307983023881038776116754612006315526305304867786710408401981959966239667781766755052561819698759012689068444447933918795961078207188923862236539859908362800127797214884220824294030447903846583955991810002620688996357306378019376713719029087355010282132317001863111015184952469389885083521623330372247295468859172473901959625991394950282706596443443671007519529358301293764612419653405990457481655903273516108223189667110943055746609937243486644183276494398128359972122178741776634776946079065943958471845404329743407655518961256971320263178672642449275084511934933317063239194261460764261921851335325713151976842266528982094286684639734825948823908138676565013947846626475697957792350478385110033933153004259990281744984224503023213529899438071361300304104304857070542794421047879619174359289007522584162153936780054423147585600738916608591907153472144883929597922238594994637707155960142360846982712886345181534106915787146302661821253641530955827760992658491087576821124059195263549015428075810671804067238238423305131921290362080103009460297817660595791276910770439691268342693752596577251551875593907907557524087087531703131129239933304997791822112559624918093508928039674478809288262857856080899165077864531648548047181383679451110170937903580755077925453066790941109370065616683437188299149423013259455402876791906990761535597661343664500042863679253322578840646823364428031724780288682304131738097440660731160069640406736061552445454673877549771890090375999771406174763530812159134797625469302326192072767836481520122376715745878570465276885875732413376150979923528905047566312949857995420342863092988011459180798339555012986697974580565205409234727383932818072857172089618490432963850603126023085948632751391451835275754593988126565554763192247347245970326708706754634986366055331671243561964788800460606028620133927720446171273320385899559723956806556598356091686577805670150433376641381427757612249669821848096956632012437206654865709921005313710534773418026193798604898187881501832847323382751578655488252708780556333529099733566975430034726571246970236785303132302780658165294053185567343119113578703672166510180422221866335823413510318863114247682701824201290420860497566543452915393084927857151527635844704446281220431043828959257726381793021166263884894340314007804395440109335298164332510431777688648190636749418902142597630491655216815130381854304620263836813438830253708199103133601149702514306988731488699392612448728753887007083440213715097844026869841327589066831079160900422265340845546330719501094655656118153991611865083573798516931832462169260511008693121984860684874471124669970307062792331124943351300992408841643240199994753746803442540974140242355701842963445923303779049117181539155145958214614545699107283420805577578407083375066905121466682109616280242346272686418921674323028213143639392155263761365832290141637692514415128064795529860651359962001059419300782058005029645640087144839363815166255560282691777589803301871790805055806536027743031878943875096582699149335686460105152985544105453087866896334048016242580531562720339564960773859772734852864040761836762642831263568586706825914446290594974248414000842511201770567330841708051054209308468983165285988122171580141251140250035470370480922359158683308497496737185795058002256759789203662104870055023711906149244276828759848281733518390669615550730350437692450724427915358688022282198598259654744076300123932390596885742225837248492173917491423964938666345800847088565744903415167129188604243070531177779586451740759311728752138762258845853457314533077871118688991316129689680941919444846448877319057868360212804003098024534952499240534807584232816395318230829860607013754445693318358234345219783405437423786491462357471432924098900631443652597323837879189032785734574182419331156236722125739933464244178559077561847752385636936486549029080253647330435755921482292108034274784828097132702420991783120372953022627549957221328324040224032302634552634795959549649114425208642213318104816903293396829119315644451537811428783947812715742238828159191459958602129535843199890033589750415262377839888552242394997714050343288153334746861753976549239117745027349626652367209809532630809494012517267896396782590148728484625215013306330573695104615692601013601904497350753765107539523089072321690082812712426041792466181431201121985038361477160949544114540425495262786500142373202666559989692764683109311630064295950686963660440324375855315264170877446143753606672492223989834141718655911241646640556520952403282673082022864219634270982585580533083650022724544220569195673231589147272029967424956948338343156553109468471994754303807130627456129627787995982961058205276154823174558574638698836836699500466306139739868946807376930689433465889600660917947120604407682768267018138961176907441850654064452212029205062491135811386218956465857068430559395931237023089118022701250780873276138877095168345601198487847858362347345230837615205200128204825160021432102045432131262672275717300462381947818127112966875058698439948174483153799587827722311469352833511501339161022218281652281535113356757040220548864345126072160820762556986425711471068811349854370192167441281687177203609564621272271779340599927742369825218770729347282420677592942721502872335988761099864357337842270951059304756854104017193451461127121208257110410378569633645245733644421654109822421896669256808282763677812954312571692565096260769934090096190030287867477498790374162625665429355580182310095754000636739782709944007390088962733910394245599373602224275485561143663841821373547674632577139782349969059111744931379471012933960313933518417776966446169673740665340245946080365128997011636647749379852809456034493874541016195160989670047067699936753148677718378334786463825070284685188474174464950239753909302118207924775794958857394114879860034449085539416804157214677474370904957808772635683402029512228419670789219882327773649445873216916312144537907810647870739714353179434882137902110900417705052213326401540252351067295577319909276374468320566510384987401849999156381181266017084384132827318421039049817568680422748766543186112681267732888629584680738792752723810039716924332544862785269585463287803018088839255431878902750336055789620264505787989006377256104557114922244712940860424133253081676187853218416736962667216870633765552251086807758250386839321556899502240302848408714660855440586105292392459636223101380614106699259356936184466878229048937259520900562325676717147244179201956871847775571947768244745115983993635441401466527587317653707121973137629964463278547848796712989444835638517269927271085935314216484283946443593762196801739734575625554027466271458058570266488572936284844285047966542467772378854044240563777649724784595999289684550614239065724401291962471465450496630988155009257597251647631377563418265038136573374621654440635116243123812865412792615511892681910019928039963136659312810422829970642470586528591074735103854600391792449635623960977126459250371015297452124438874674955846351377104993987787494905318749982490985559489714285411569865015910484130007391626462291422442659135490986561386345129407776317992714785411384652919006630098576970472230027813425211182841987695159046842610375236493193074992537857356004486482876445489527085211095262060465576442278257100641612589840894931412150955795567243971744099019840993406985217644958767675519635934488646526154283956989920056754518296931287262569652345628198047013600541528786650054294874323713635838759043932568746380060610859810760446660438484234582978188166028155790032033030062328929588648112762683843148274186082189354078124213346263192725232545334004483267486428828828394851716932452438489310770340121001497760765977311665921461975567489401009107086446009766029394461581110920584667325637569052280909158491886859439161274668219615689782163452840996083124354956984076005864859919150908830527809535848697786968392617466725386047150170592223671454002482734772435874670431052847112521495686902528631109371516348550875994402286715593313681482825006034071375803842454131767768037470535120445973739211594181118847565941358386513255702680860782318071108956784248152108262121941836439088249103294901833417371474100335648607676240083798581804231216617223244223021222456936403629533211201186122730699349910234980940534081008188720620746478901668564773080069547328111845412016136538951575698541645247726452767756881791466740437871319623274252230948496710547554084598464041771045826961609126293095500024968274010876129036523107896150605376298086128446671687028556308665412032859863209626182365212133215593928011386672652075714642301200058165936025789938464584202925836532536725534168892013436154036597304717864927989026034429840244675752237104282758621270033362552696458698164651328831587824668892375980255056774679003645244772058963742783823066176063734135810645955848238816684993882678502720807885179366210128319482688011375312373676558381748423990064723826405632000309128755217418984084145814115629132948445482166333833926681809368613890439390341266457021316258058390770844859034982633513265136593193502053476956645846984149658611702581659921247670471988485845075862757960196252187452284391589113765209094514927471194295821727862163495963207290934148678811433148701236515068840615626962449708821202808608116164914606954905453711519425978691028697544867246039047880977063808099800103659815298637019849126711854178060471718222462051665490552942905927140669252012357768309664650621066962429373338452775323072018658488841321398858515339165869294926909665105800500246551025608884956210968357408958797999159171037506765462612671173370139375369064758666797453878055783480381300890767594473292358826291606976684956500626781290156394095783707230197170722526007412264734666704782806229326079874619824571045749754351514375226245272905305906275474014979543272244806965142400884479234777034910819558737455722937475532004564270437144696821339544949299764859395456058781781833703671163027055716160328988197149844865738225213881919035251317254087119966891410499851008479336694991233527132144486961593138244223698702641538192452696352239249565655750975060987011674781695134873178391328645197025201246645400200943912393479574326828963268916601041256017999517521625540980395479994373418797932734142292003034868779726447786314820065057208830874943471920413159305764040760182989237253559332855322846560050577192210079814301716984301967137894098172248997591051549713812612991434086034228203251165111513039313879513836929032626230610789907518082003568303635116139931815867468352166012694322866897112107407623993025224121340483879873710097907458573352659051660060392342840864645417796983650167847010270632715588135671805744544268657974394799264504126937896710006843420637072348043297462273545769325505922571317431375668060588934425171659142237992526816861273814011711450260700544326082917884242959642654753390351311399433526723099378063060469642214625108857458487566772992226816943883257893223297315588149631285612938230866711818355890990489485777313757025782642461932703995884438805891138029358957173727350176825583773075118972617332863721850727486851419033493594418794109833515479032772927705955788842986461319576827718537913916650286528032686750621180110896628108236857248050143680504873159964387070007863176523182440731099396369488040884209703535398357129417331129692773911802025482635857092234748279605939597254328939618578156620956820945413087600582079733799080816005469872223593609166358444029513933885137883018392791349758859910357162279390074408797076217237390371181860777041368332005805766941835253038438417721243778028579432763866239884513550293280066857219984330811689785251499710495703846523699039573124087204777931608525939995823342643525966063592530083676070045324389819306120094231781467042266243187465399933994336378127305473538005006111280632140646040290300395188434762140074432132929548590301319029026420547258856788737962736783620945500588871858502669586014255447056452527734693543259735847079815257050590087773675591722580457784947523927388224942259403553176374512411572079484250649177668833946066259393556127970941699202751631808840997458895369256247488027080868264555968312202356378058815460236683807055604766978323931686956964654975508064684075478428894575252936815797033737398193301511175755514904040286710401709849773891516431818673876493963495317860174489595520444636495073093024105107453802764119942333615903136877314488289031720610566829317951526233079893514733546050159176250029685438442236271145374302528677168824894655845562918883848473208679796424017373344031413192510670449585239914853468771583266257612697873034333862347649345030532196181084620301930602118417199659145780448957106353964796499482965957829020781874826136389854230837235354124119080985285893189355780921339792496074091127361141288823965027625555529579848179172515337186643320977137411702271330581451423064978379024045830490310565923074420689673251550900092946488705208205075882672757213113734886829949489607096322313253873709856136230732250286754668291566277116111608367097660237577359607615673586348609398720430057533988621128456477997592731913830212977752650672907891111602684184544254830331615314296784068550773180646049969231452293579497680863637687400263886831689560733454034249316388099049534696895694867570415512186465675973902899852727182112966227082156409972462334355108167818160721782247426800112638227460344114798720466231556373564976810044426379179886914611218172738782712149643128632362864793629631240286215873416549099314466643571340531235926271240402299929898968126729372871397437135873140476925563182715111364045776270489884348402586612610429701811362316368580946581766918991376556235369306389358437561862033566024593687161886301829969847447751067494436462951103523593404413265919699867857894536832405475761665601782354714907857623925774373319132326412421397021617845679066505991734168175329247430573550718664042724936012372145048208064689195290613640231834046952039348590136916781651558915823165438774207636407651488769923168444946243020900272579779239904653199389967598994557366187333576443640015214785100747043886991398249970715361524423595143437139138546360930049955615728939447446476130811237423936617177300359919349822917051130364635800147914305468052468435763313792223918049495678552546096275693021616770341428725950003164506179599623122179698914757692543010123141098605270473009113018599001391241884438141583484452602835254376261273950593808516560780712131697114784730761432556099537493880201607491490016329680449918106190580144884694761657468922226983995953707655407451517104265514654671664988631729755788294609166939794853210963851574464068400213255387906840788818358816644899741218552378907104660367748125272024609268361332622618045167758159846779622697897549713622791378407851872387664151941773239330886707941031791583782992703537970389620846570078270744036944687371211411836794474658586087585975396188826841563884386361484907743280512335272661133233352951747424532076770944510652719783608896616118149084497306081940593007157243484657547202764476907495585061112215293641806458026614770376936640587036947429639917866234812070640514238297877842556634195723765471809236353080196509199825538423339446655372319480326923267190729885362333203001912195573768330242260705879823551652776420383308667287710129640642182687312841850085592462481435726068126700394738152952243394322396644962301170074259572359024458002311060547175085380565174122106412249922218377369218712158796953733390230256873251469875606812501568318854128283899847759368731705313689666171686427837008790125557328057338434770191942247885491198979626568442971256542685060135915465649194569600749862417547749314570261358773099843082125408081686751548127002926735801911979865104588446605671677052833325556405011383568860177750037521240988007806421894928067053950779633379790762012953328517799845709180438096179544838250124881624600486152132784914616831865910596465517843403251109791962547190484237672696698473806469394408818431361807450740446067373647882176641199258587641736058893080310777580380584529279986911711459512101869810610330001425283007613837839304227440719803785672428677242573440543543096198635632328699513923539994347010686462270810820012085933879066151864411560922055885885621375994022082491902486659523750645937908974321102936842188554570301245405069455126534752421738065757066369250951689159471291196290007470984309483753149843790600594263446670517661075089952286361409510168890429615635305124722538427181661882678124888948894545795564584925184525882473268940487201963119398482038146874907151682163063297729107126157156006148500835558869808691445454900155114506875005604192265838594689379573604716491396757026565342391291451731034572157398144548448018902560212154123121494512259043652762420299992972376976196212336103216269831107606593037343071266529170639508737329327814238882694492384369993775885146014852778391661023392540560383584039288910285101677618977231520065509764013656009522113021886503880962200482655496964582305279541869640315160618461664776396372974777803026835968043960580518597267759667527610600169565152782844841539315446356242911857112371264196252941743942007575201395653313081702665170277334694072017445048680680944401576486363338941182197860319641519816731473693356656228628847179453096127593322197557990385353081179234920645429334999754754829977322142562501542656743187704825038612645193929117893494617128010240897949455496939373309570385946638485792572358460845648439938721265253934387096567163359961576509812183210301670904269177149223256997294919875651707294116765415614752687099912817159145848585789869785917901713349801735334796367554682756566028049740094963757438101309902161023786179316132932949108070407213201952600555149828931905777549425758521314596540850839018304467337154219322241314696031419901161892551116335333584849768459222841907560492366084391440897384015184694262007743888850033590737446257387613343667355276127814139325889104209482020359382639572398375994377876009813732834047815797444521560201599933847849791537621752664157642146518951946237396643910001493068851935360976857744807679106501024544275384946071021016245413903330810608730214471102063121904235486872533612877038001572963187556953117507087625973557145949911376649246342828409659289897123212381126567810530955983365611874372455300798492398942438671187010411702098719416586889764982941950406513853255776279369188024155613705921324695263590583737779276699104086014131377774941662461028060072209118837928941979531354571970500992713299987212691957355462352524208871487503385429775548769903936713995689028134420176319875517900134039000975048726894470227651345274949522745108776095016349448276200057426475510725145615646095440370982344426576626290349225173887923455036515015977482889476718077173542955395314010711173537789377418523187496119905903924406716734722420747299155411179144630740591099187069875425529392660358597555946516896629035112265415837610004465540738597288206373172971927283373120378552890301373740109684001489339536671136943031949713055236312047469535074409330237488244090290079367469830234178972532736172333763476180835613588453149002607107467647880615453459888865096167332060595259203859237641318114720803013665651923320640459075698818208001758026822421313203417963314619415578816082740123055327426568533213694816091693039935114002511242441671485252205463875372398679851113046818912812579900423999135419803287363045928516596617206091374208384424297520779677417577624576502335074001856073329113015009295587469100400085551602294174485882953570379188151858082898706857981505483408546436428997530960694317370273259194565715842097156142460880764000095841588192520530748377302683213339066979751860343951036251223915570600256950714313134172681855755462234177743231787385281041888283178068287739266468716763065551643491604643838411016134886856769201652611094871946753466397505465889174259679220509714661754715852330508652120640372303222978944254470077571922649055052486626569656627404390780055656597084315875468207974587632175406233261776353540402401484479987904533905604719132712186778358594581414614391839796115351019538593802169288623698155713243687568803625740903331986210864483506682487350566222194891351939458468336581160807812834322075640907363058796345166076742532436385563758153093124481608201483309660181754706156431600378152445194617558712641997313402060001541181732453711942691992083685333085642106034656302663020102071948904937296577298760790501824470218250937986971384650545931703062770978830452348525588100725219526442604686826630942533024876796136590634976386398601657014493778018829042155854362246876773849252613021141733831019810547281095134188647895501269114180356658100754404923084706061565797883336364740315152285911014738780041632747693899660899388949153453376221561789962587664284754072260169715586756627733889583956659230135233536887686367513559807689063209398986015520202474063124435985162312113965377327817961868636115177980976044627970172335419142687872256311254964258599281969212481124647955967339621594909146525990555738635659379677785710035637725591561871621643056974106681304404178096238566288192165095432149301483408004571187498200329072464413798793519342958026019268635137066733014955480963652069500109973564751562137534750327482087924525154208567993742543751719246778425133776552822655859904245254383580815468505347947115767013983267386825467568361520571182938546009488536863706956192153612003709922749005722714569198802775930851159231473402980694979917072370450461048734156577337465219490539272476008838060886368665730251701264929201933746404787963814160559775064464093112795512663610151158917598686795243529963502507730714728200417828955502453546256908779008804262026109811574924223579326655547273621101524881923303096428020534562921093900820868271422783256039187201320424981789922734800534152465070781797751331213805036230845036844291442320330883389791616327119220918430915568256116848467068227080690416756476628672437644391696345247921789957338195513122760542296684746232578090067585687503723809382745657343267200204977261232510698073002351697195572887968406937923153978681310186633361144383723512643324826710019054499545832896452386776882119335337491331453282428459859400924705637201866051995795515551630208926749414115954194829558052535908123465552337828658157476452409797235521718460812930902068806616966760156743589233563457946458278679423874262231754046852751190532929881133289749774218524961344000355652603249357995478217790109353555725136253658100553187473149429250518696485029927807310197061263906928929349368303368812225004009069981686105404035296100407653753652780474873760518508933436795036799786171531200741062266439864490262027084209263952444476984573908294057678046835579300047098113096560198635996482803622312137914724568178417428076963757650772760052478958652825985702321756459772576143970330872546322364015740574939898241495133220296384020323171207142504643928420457526768689520693340588857767770465032912648567937077035533255711492849720175385042186932203595210238914015355678129878961956310288725529067236322165079950972909095466884369851911561117965079068997638884860333243030147414645318819218921358836884500724108452358069145505769039484528316349485858280502145645210149648330814040542301971274959565068827111168425891911101181907123567940322036132689078643036192402223987697577816866084407883969634965558745515030123949980597868224520172347063284456524041606523334280350643570679585150502194015327546152208812009612291319288560611116388371125230584169452774288826716041722921707142543849830322279119154278219048772630144975676983872387701935569310722832750391031097676027250206892925989085178367538457305280573995052976093642602138389813996995519487236185809713555573031235885758464220508858912629195699112994504815468408662327667069463554003987467579012852563134596165070476638614581431632342034332386293546679473451899274311358396422086434918330587780870949501393035291515081658759709766580165051081088584079340191858562594720338383903855897727866303367144904483677614195902252017224400232845766245800701645139322081069411921369020592773835438880423839415612995887296466445754047368758752277661414174905868248889989839642476180010257123412953908458097247045011465958893194058627389502535580533026237547002935853408822971429866412964953013077540570552278253066369249311985884202513359606497472689697997520879305543903054821522344315279225899793042862648094879497588670961972531025635699518913185338109252327403858776258659621799798763359937578586187468628729712403394545240150593984251346129736132422553194131839018099635035776410283413809658143010541252945851800983419880731282271246147409281218394088833566895373484672596536299858743174585263980160564986366423465864229209599142095212463684772949321929595481971104783321474865716714707334023480849926212662228286904954884121712833514970765959619573597206433091267233140183335333966960873908145740001496727606280072871662926735432682579993904178387620547627799016225282648945435992620833624965914093110681979485747811027497756770902629369856606721859891547777300420948630833285178869661299027376889227947100960241025275582613124707230639824842259308957077995902697083848650845198128593019917160298175241795638136027142029874177721828509539752337039719029995484378097115774016693837470015905414526439729615255516048052436568532214544519670194888632727069638645387052485124756456237272042091700372953238149412569898015938832993067962117675762562534069668453698369611565476177517461678118016303203128582930311122121602589385096071860884753832175279250817195633365517767800657174335407552433943324632516190580558750594535139340587073070805290911928291680883048624717670991595104885419256981951168674008207820700489496755606458034276864468009953702683608739447874352842030578096469074216680298201974511960738025547255764803785357876978854038342279392442397008569653157495532651468323756884861891704202589081382636217827547668324200890715621396080559630884052910259509527722210387311629758237478042007751457212945246271953948742737392275147705353157239343336506308840773284267568452952249214251258337902091553707729482025146484773756482236139872207789428074585661832631075095177895725932101168468062774082983025477230102630774902465021331576053680356617512805926297623641553201911098986082222979921435372804345176494025971393487438435677840341227115592503583063468270767845729051490060167284863215848588758269168134379041327910527922568295055243931610997119853350258605550449679930027471371349682051344261941845429361891728574507316445720608840542103301076000948431387344241783876388117243460428485729431302900440643734855176827215865429658031867693282366171380681991397086631409429519699382143548422741540218668650248024410300995152860363997467597756478876101543428535964228273069414396995606963436459156901822401640867659921368664918725138794544547290899443620849584361167078033645393164214439862171769428533413234882602957612165833194586927762713604488126772135402233989229749903958203493409839708016125918684482906665754357705960867193633463394596775617709102795186692542022234084075647287745281953251369475211845777697893676820156596508209318671302504505229791635529012954205890633858682338005133066696828527078511169456376685510127584633404810190248605611934144845975210632584167950237278532965664690211372461419438903685654971488377620579458575796770732471801807434256133671748072454720024864355946498341952372299993667893982556141764748897687427612617448649453358124287319491560106794422628321032378137230599909165344153099307865866456745834056032304983173755988979697427399614786371197269318628254671709248584172909842461207324151150531245997149460242175604175257133391727219169640691254840820392053270155456629601935848963956205090126181859640812639885607900793866787081059169696546958528506349008534826962002678237371721729952460994892440859530508772704714924483094518456265721391396513215182786594580629188602182580556004532308794545347258566014778203463064356432856025762693278657978694926293330184178568634959849455629045762375032734322264146183411850557529692711096578125779205458740570523170402167543941772189383672019667281714540220168600370678653469032793044946863529019949452168893172836763787465176737646561297488194267747632335776827734265095764367672978783116592692958964358289893343099302780271945231237318302565351855765721590655490571694395717969459447403724977536698146757190915281357702794890924501505576899605718673605355290608583960483908478997914721096314920140365821251202598503609785718217145604008851841251367125944298139019538125231781558572713599533532611370310655685245994711990866637414022219850801124582515196062138998290231954071411748502476955097928664023691504294454174451671166864845190149907759983380997573870265921569778397575626056374023648989034764698567104185216849063968305071486830289818249757510029572961048516350959360923454664369011049817434211690495796697845458620915865652968597403010233397464434595042577593459903168871445665867971021222574726018731007828255895705093201087127134138139060809343310561071149641549849624311507727495213634199578331741911028230600316353396088026927577859098536274367616146643786344314555836985528393667598644585599115944048109457646864379563223828999556884349289874189305457707540712414101240872561305276168809836073036503109865696502167582350211633356458478245824905757575941096523081520942713895447961385172757933080102240400969465756170320188183026068775843729536083222869105720858534928368718359559971928232705704045955667659046513770670954936686032363634268630702968574998702948905103718577179080987932752969482490124724852164077208613473617411978048884358835611915641798181616131972940782772697526353702251375746664536782851299270912508503478464529630340629615012990654378023923668339598505091325418563148560836350348761252318061846081479722039748592294764648569622066650392680243201885451558214859196429526407916526156118252081330500892720299720586151139024572850493523331329989008972179426398608406091318404485427095074284062457774431130506481894332004443442237763137873081997012717551401851306299514567596223082575006185223838624212153466487807574702759897033876049350323129499170207936687044762100767729741175575208579208226889738767148677431008756661375104014086816438495002454754789542238156924877947133114016216368520031653211516202816249109982396035779586273816082237932942561410648054266752848587267936780915018276929536300951421154696274085490516174824959792332329947064014013174867792299286407890594227564278903411950873689606260513265292774824397270577746188753549931104950283284196993043768102820063534514777157019016794475792817869046570413831052980309425462552169171736871527212506815633604443205543620247720286532661996919049033547483187146698221713274871667449589729688987233096239480998437077089368452461532311942423381238491282284764902099117239781469138824862164965324515428644786947899885010374048940831389263172567659133886298218766213833690940644610456490831691469385140146048264424060556608510826340872489174621249728577139257621341989721137179631411914479368581455471527545928963443267498441533460288383165822668018345372553804956129103540758759694060777753432283862240611670896193349090252274760323652428876514577549644186616537446342345559373749449256540368837772150759103744436590350193298487974317696108851441923035264619639053864492351989798105277708551415150989071680599196208987234976248485244411444174677052895196400626945084427436519782701439326590630773726612568012860309454482804014345008279536052253932989062140687002514315840879116239312254350904243320213950084513826201669754856073904335226285132858519183489166016221762602052343019161638051497983587720948355066106657387531755718788374366977762466574525973054689044624493977602867031263462488197013372210344705722105397732570541371703367999541303189117300565851096006160605742869596428880983888536123490626798929224952186240227881335955770859677083687748286112910673814771168056983267177564880185749882916955651602383211303566867685413414546874488190737711391246324265657057585241716443385960322379847092440233454364193030469947252252523176010678648547025975020037144204001403407512523606751086533684353381471864330693483821875169602105947987093367172254049781352298058894960409988532037794232796265778752911686679276415263258460765469805623499789889028773556274943425885221277235595124783928627022461372542848411695686376631506796017619842277868595930179184902885126865440726023129556690484001853998133306786210542695883704955649933573402450451153736381891208958500601718439366165365105655915092906678132106806585528499504818894433308045277524829598534250259075668894928135165585948759721703213930280536329358546753787583569455726058843068474825013165524076969921871145950115311526137306791552115726720646327292724644754447014726810086544326409552761751901329271860832349895150258649153074164563329989761575594303259095635150603953912638805242160044127039554898120990173736732982153237128512538756612303951382794111831194021182875854901100947388008941174770080656840919170513364712031763161730867874897415328066919343480551727682371828709582924159399033317894493180343602370248862902688421151483519262714793683188193993981029187484876370421176872943038397268590848279535237636329310976479537558374735612602213764185099931051110855591367258399580175054968313166770792290785477086249060152049345497771995135081266169562002628882047110501049741444523587915879668901062184967189017918551699210621441815596787324128310410621738787805291442178050567779185468893814708429715584935698949650485611784515882965215433670779586774460118037834385790860551775414917637558566069783457784093047106359881753712312874719643035989513309482119521757441786493888493773081510977225076370304738950657822159197681841556420244095102751918665489350648511476197863930055706633908323183497922377975891834043511493647211767495959158409951069083489369758077277471415000328646668975444913587902132861112118935983799708449847379842673165785886621732305329747696131731743473720208378193491654478023333217565658947383175058642462852593782662771479654743713643811180578915601233330788093180296311910329381777852695408958709531538651121302811961483284801549299237378104871507699604587643047006888359580420469511076198146319527621062830063967216227369515579119167780261117917800477746063102387929218653978521591111202492065995690634236986808751679084667502123852185787046713046260101923721064698209649804783686737738496381920172993341181246114243009473302190895730822282058951264769641233998092921577934649769753255419389719601589949086832506644052698055600456471516818699941643387635604997631304781714258946224944123819120362393839233710251497245207767610937627134843095461504468645533483623080892496894894407783633489951339099046620306145256218397966004185476606657230951844744161858649926091775358479186392876657168198362425188259118791094338019049865085996594037786619534211581905524465840742822953886570511768852549923222251125046384405921513137312156918728939498618110058406341781864974006902940870871151542380755327826903287158227606996852996643257616438627351248550865261116943942368711884384686122609790257469456535422138301827763310965256034450953661178488182547223509455540606407317105821255346752917647906280867297491521298497052308132230824258962046475198380851451151327233670551342315049534803097556268775356335784002501184118048971190810726294646631429980155368601982032004874099161901930323500156765727163177646338878046355021730594447027127771750288001657618997726007388276249123430918292066882543703118322862625208503661507407726976882308221395642039530991486245898926242270324018019131537317958653584147542382930572162231824086547255443608535529488441727111566797820934669284526457659546603778218029386593592654225680921529553860030938373131178777216203122047820177478443926291637914192436816909818916454958189194401495089096037445581923283497997913334722911927733562283103901419250927424469588609246353383347097710636813926822535376175562040132337436039054675450536830403172377349552991490728144011626642931660051128196731073553715249164736232758825123270201373848635570757674116154863971214063620696800170031259400115502507524184089014144215354129361435054264102164674889068493039385385763168846395997321036793540065692347217018595952685817437549727525218574117191799901385203389603273805116152335073645823529155740656683401480729620814257840333367018483440110544304596653879855790439263048230862872039931263682511516783563688427776808125002891987945013190740713554295230802276103687337021306432402826519232716698510031939859935446741445778319178508304856611740019839591320998139323330756827612138318501467872719038289302077289341122086415770372365744738526095212070875546414898878476973251918270811881681137664365113846731587161386096838486878398239130971138353837950385646672552896708321320498429546143282733784597051547176368760951633998488864744169614403653159050271527802440241250512620216799830050835333573018126631697799417162698127538159806734536259217678785013348920820234168949032324137419521422580861995590138540002521879771208532776938817214051240281059709948908752127142718552272658316641319226010033167516762354280821875831888137332079903168957215020350562310644731646547804633775392133051234965927563748104948201893156510495111211945076969198172219432865709830014044765865305947445172501535729682296849563787492802873386897936931833258249734145643078937765667671187462536689858486502738439879037133516634208608845258270138074494977308553000959604833904299738995129837051803161089036136397805161614735887633836293778693649374336055950383542544072615396950906889894935509779544362909583430320533564394888908370611996332754042205667512513055139053040457978137908448211668568956393595569943338827028599706767542231290874222094016000570021900642555257972347277262196036070300671385719492194936719862846585377999973156848793640409572433863481637766347293684655898248777393343118400261942449658974761513786457932769953385716722179568788581151411702757626125432819824574028813292561285744393950711345628567730370578195586194367908379095249520552673709328549502909248184042181740962000746407443972905621404774161006511981961968125383304577044897891428017235523460589994315950469846450433710611986588006372204170582734783601857290222019475048905049675582733319038765195619120948943969509790983452872522813146549549439056751989531298278165888451799887682731742585635292169440515032434443573685518101112203737193247476748635190547380808334747619961846059369108692032004185732947412346348579195383178068027949346652372066105286890603833810066035385902063561282094969950715341887809501134812981928241579620080566164847523005593512605185379583148936966860147682477500822909208521871437848472172097096021662069674328465610860542264739685469404104925055045861740467793186541767808477578108223534497526398052911532985504179855074467790593571629187810228950284728914899793489495402474293506615615611166669731929909986995357088502376447862106278278876154292842477771759642449713907560114108300478198970806393962322777084458535872995808733731335759413422582696890209300656600544785168402872569280194864740762741959559240106784388899917367900726651909537169836020398122457147461259338133215987044046474647665089669651735225091418435892618655033000789781102121471295316655578431771133374514141194212479378951406631110959196650518507178522673946287832971838331878941012793252336200222126701550175620371033153768825365900639202870831789713171255620938658011836575173205643647468358941403831201622186263151002169632773662999217620894721341945477683238048517532802899336263664108303202847928577477943435188916133851310088413172589235442234093646411337492680786668531892256163023205303162131359059421450185881078426801505033830054069685704686428493073213880786080008674577986529779480279235420889869576506624054316212978663272103580463577510816666395863335996845162373221603267425175765425452037160191850333748008421583366405338558980661345345059203451590738380283857636594928323780998375130979794456091073083132893493772892279213952704074093897187078791176002643080235739510584101807296610219613687123630646046099471347327782006674407727907748676100081163822811409760903871200592105789069849202103996939111407069458328107460989492238854215123661934385507753610841482985079659496168991234138785216035363622245887950951682481596135292828170591490830281207273118849155747479601083217045422266282833100750160475545691132068616880263931006753316711572766676880262172891799274189505053289913177768220262644243401591934444054157603882092626838389036924426228108928535500898062474564027081964189137534445399024348687530994894211586864024667031890287182298979436972978487726966851863471903367686277015404729159578452595139186221578995085438299699359816210608898551603165554119426907516190641858101653320192422041516505363401345349064857171775743905951863638324049130183986132051692340545665957409916246901354523177520649805408231717186348785835471342943692459332654353663375642763273358704586008814778265400993325682424654269901482609398282979880696424095120368951017079114369632722594316964078153428454475169822789912181604029069440407299872845273845243028268409412461988607173137092877518166970685333510437117022017732698533409692060690317463486866955771420691396079996218163803390777317894112862006620150755444834706655580057468647460071796078628887822860121530540651219263290190016141518341436197639663246741754958960704762408529841079240501968674229923231955608118527868229960417696761322510645316454164109652710215259219601552802609618218075644615169726083454925726603897350430077942224926348213509047826167008093844198749617697527919810928357360890470623110250822516917570386175675014799321568179614589834218698379001818729025191898451532330755774505908283013698331600583320382009819100641694919861330693054672871008801219712719244038313709539374043825442831448276941284040880113709464077966631381457029002857800877161884959491706274640743214218885959963493257928075767484667186882021919763867977385047440324712072357919322580512042580138844674800768749242302108671414450750750530064506268313538114597381778660354544009369354442406753180270690297735983662952937191890885468153077516644170136083245657597025126005935398036543849016819896866403894250079370812666284096610419237485163541897676120575330837118586188965376322528213160047008996483433349330629579593714423008025092672788375709078604507637893608256104502708915987917056386926709526666084601332880232069302691606486922393472047600850474502548740672259954731226353883163056682162883902585719676140777856539038341501960648197583378030169246787434772142134755602517410325814184615416569125504811923367553112393366399679511607231131354208744452806675903230587060217007416665871598571838263794243464799639851332919719223385787605540680279168068826660789634599453847622864246972748181296400494683614359520351924315991921057987099248742112235593035542876988980454165592572743242783175245940275886399394846169704838855671318157922089552529797892589114001345180079821185066560137593291998520224461873780975930934453598279600448761285394470985468326764268864397319895281433820482759912633292436484323997968902562230687105216102587069761049797163720310820396702806504634538158341629981404364407512262840310201657514491731312610152324347311741856367068464692831292499236302240886994695388938585069586896101765214634056442240770332071706364227106122089181836149837488330013504214166190497448451477834893931527848175495087891742318923087753891550403022109543493442721814608793810643047902937116584926377577346525283779038491867237912390914525175293750522336799304264195868739634183830297550457396189045680080588140569851567333495611377261416284284111261366083565034928261792991194875248513428085694860348978564768615913281259400061209576978025782505815983401924575265156626584382055092817979255421752426624623724309544700801924158061624178689467324310822758678961225329027039159733606485423270324693073481957820834987788157699849949312759531019049413648210424682497546171227233837007361378314617265973068977198910199750283845511866677117059396876425046426645337547555519339149092650536561198953550271738267440786255077824220495924179297539630271169818844036229759071016728405842228289269789135877259223328007749639220612113627238960552433000815232357581860319527122856650808584467728765573400042206309130027820212455093853779593285017762890248057767519889011297972894569816562793252952861963718864085040531331205367661008206757692132498291258259075307026129392075339839780883912910159595536404738195321382392946662180691989787523258530298084640127732999839323365585655804738256491630820293433650748641705149900141886157765489163470554276377748586801685628422163170607274184439212931801892603415445421630730358472082471862497854697234767830528014758941430516205665660884038653098059723585287248671587119874887462749451027833995636002511167266693306581040697821550960779870845380366367414404213378621702302143339809355024535789019942765875702660538600599881137733650696427410666614632951103394355377213245067241440114726377776814424005568698143107397253595744810242314180963680084953742970821972392593919288986290592894080429065899502888632914244603499731751456594515165172617143867548952241313692189857568213408300798761205570770584566207292905003128220461052044717598674648163213065809781860514212262649197581858714879268234050251261952596307170556703948183546760136899608382884605431951730488869859939645937290211230149530592935576389116682472674855732779126216389183218378759920073790867957355445829160625656444078175722163325921750032563440361830387086833811526484235760393776641802731002345536703979531123658921654687225590024083535402597025501445049660827857537081210103213691378525421019031979540303308529443924552577570153184876563958185737706339639221200057358698189576132933569627049717138867576991221910994039165486147481503881871504584355399568304296025901839652831681387057446861069641647932001063474978135491186863518181703616458609857373811415155814267103437209069247266635982381669283844992023732610999153395699111935786249516067369201443183216870465281448745141674995796409797411385746332255813375773513595595016841215507604421460135038379060841133184787747867686854131461232162196716706731600018653174118139970463967420400752971571464803415785424973051106118643761138721758429072750183157321227668857093050926362161327441236228487721890340508472712596271884613777213235106358504669253113525383420682766675626996932682205278924756724171295154621118065866568229694105737305796601477448702271860703041654931449129529989169930272541383223848945775161897775224638949357435469802190946902439175273116410947059338130090495467568018731981880814071544506460568933794934078949530586235355108798749785522290802621017402712639215072849436080824464332778337762096629644405207204504998859581823288110379215257790670824862681071830934646044811781543131647553907336584425943350127732617315910036296246810610767944925859194439668783042422891518099600066503794178300890765795485782231172318741197314323935563957764796945423445357372664784534522235642470996996336604413336552045948800482651570507843256253907277307808391936807936579455349312809773376728599711431713902326253829448277329943552883870367281548500618421950547749129585132328853025288989784972093556094547897154162744456837253515712574746130906970656105308221968713579632396934854933059224851447446903606832235992485390922603241021138586096849251783519335587868509586971459216843125942950099461865347736345508559687198101515143484109046047086708425412575674616814647521783863228567158275991913695958261832718075535129436039326710539023943140954207049464405073576825322041962508384198190973157590095479836726714730968405872281037240143734852360926564076728848011423976658418461729294316326223676006021465850251139268290212866374683321664689867734063864167303455981185682856941643859674529219837048131350773824768062616356856645507547392528891603067265124522412277470218107124863586016366506580483869515295996196181506468512830178874415706462753014715992077219255232575681349513332007213736560471447242870170574834896064194742126074179304325336339936025919706878092873856097711169019465337948839100205229074631877606326548381901525106183489597641393855081485788758939617635340068771587107537463320964763633340944153359361981444893836405016930325208938319512393759627712433732999627172214122237573222349244611849070913949980884958740878765518469601418669694636593055212888469726175225978048782844224313207098671906898427826919343011280756568037379387308351521087187157192948456105387368206725507838532369720257139947519644622472979098684656337613826179892314686026228846897839931233699031170274637036726132876643407185814009627453830195347261685530004505785272664990789950177204808788936299877835667504093629215312497741643259695386939312238788695818057286542206111587046007117791750232834014217864671128355321778683112309690355959651246793977515367678236269822562833310259805516532634009410846752567471800181037701229186668464598170198735544750682887337870857425757788451275650252744677207437134387451002912234841615577335377936184435079651374349954321991960123554792762466078465486513996482222494801856751037008170240069308010070054510280845029128203879378206198547528530565283557608491488950155424834926112458528736612248416569317999570917433807188425531421572927249427486783229667687402824182270808973643222172203659309098598857430783569648672012154357368985560938324146104950918243698619883606282359141775734284793809433238805446382481791565166025495601071155414025589998718766081419780507140415866219314812738920687166758463565269622546693187528506855351473922050242891195612219603766171845695756528624105958387183458456804412806314406995676442560712249152382887180443469024117727439163037944904297418395592710039516997154934334708462785197274162477115915851860538452435006955181099013170441230512789496076350034241039708345873751762953517682069766411487376247541614501487965482141272064876113428694885592052705911784939007785865167039763712790353044816819742660242405332572386754851480372874760979614523665999061342868873982937977555259334300854958868757640306302465859380462786479076847217644396085708389510855108402738943633359654296213770181548868460319210320693780251939465476360957629721416681842171943245162223057590569693116628938648806579493474843412342607177789424076822896695470322459142814180280339630706436025742256846745714140105420118085516946841941729766721264875957032348131906077956435056063164480984865347980260054150568859720541795267227117743052651478554793698273038688796680788131595534893170358563516373325956578726546389557839285551300856369698137702667445105957112604854488942627743864107526164450712678688897788846428822774069284663764718959093722260593116861853105876245699812292099465869545362458226113657049457829187640167262417333207468671191116654452277817262168210910379184574242918513999025262759802825987214615635505565529803767476979739288498235798212923701267697965139747224058933253197527785853599520797802417969708974960581295991989450264697187855310475939140663937458041080613705863939154297596283022861463728545005676154889121670026372595425102241770077921536916949201098171421818141996697785682710976565887328904676669518964673880565173019952740462999143679028483761126687225991613454378483240178277842082560591733212064165407752040879497037299927051437547946689835856661515219777717558571252881911944845230046372684289656457020024095022988399036746281143698543628839617300574827137582305596749635602131819621900115660825215386513986596141722990693074590507935497366305970412564653987531004095399413020940042067885942681383999126250961508333333381906158189659561384616156762281054049509071634019011536325978361503229121840474090145954336299689067665451149871981297506527196326044819653934529487425756136641777856489234350393852706436322374213388589214714912064252225997003367198980036173704097432058602863662554604370338565525838256719288389506150101133277414901216637783652121882545530281429326492707056684578873581641325729137961234233680311249347779662477690772882206705864036302113489238314396111460835021802636374623334856504455856048493936310940832035579836229920572850103251486065883680922968144778116387466909136786837261482803851077183552174792905133577691055733814334163556276058781928848633726317405959082052525992670756040508917219485940314498334773348850726140889238780441925308970703045915998151051541363873499703515119613694707181216227787029949402997727212725387057510316838313772517693383949595258333419426667870534704629329583958799669566509376972862300120799004363468266824626496403204254216702636323345633062806523835351685843392735634787606807694039518865315194279411813901878001833840921065898278030530976189437430625527424487175075031395613584141982680983248820600206293891382753383530260653029348964534890306280645444776805368667596622556347659579253848556953735969118974378338888744952191519786395550320860471860530886446064854491539314222963623410672919745780496339436254682217381474860334281622147434327858413088422180911738346463577454356554108573313052309372739811916114601140106613754845482364169740537269575546414821478110153361244856288933061152314377347881768957702598511724220677085623388580025889799932391120900595585433565917878872047297438439064290340557068580015739389639273753616691916526122005106515259958516692626499230021365561279564623368203596207670979361256615695994221736773857343126895731163964358543791010222616436579329302458272663194052761122681165293588733515409088280129979511408132243209129393325873653332865834168816272371094411986212975556073601594553853785080556761368648921234618133184365747753788652050141732817640935839977471972967564547717324207281171633527204286718308303546874789789360623748137591347106609303281013872625056478674463119518885106731998797398978520639658021255254940787102300151667703763458485251155905642511694718571241079188602108816513546706274135654658251158762299592110731385821641028344691222218667063501373210697031198452091711892290692351762749535362078671828610411252296827800371978257399920852716244696106027185467612955164597467216400349870552781112174990162245579455466614531845270858375126198772293463267791702186913611228565252393784207226973541384527719798140370370286232022670024208301620675589025583350754286802746951056122987078997907299961708203240765474476359857677578254523060205888184937584033462554101572584667353795186873627276957924137302283553585006086251355716402148339656626925593566656281269440506421282304412006788356359755118314097251516126573716158849671066895635684759635129627651718410464588509150622484667563191885913777079826521163312405975914332256593049429240031438267190481413002938701802764248969671453407181377620630239795711640233601146341068505021323765872586894185449791853621637518831931888260727482040501269396216765301658923204120196697923484318540955577390820816766809235275989582420748393707522733340728038529392726849610014474963306828424603626500038821185191596207169084055863945433169201378940528097457712824152944891010283949363745508354043193597423951590532402412469970903710377898469222408638592098142324902472599520060914289545407576086822118319194543017097445650301234881788628180463017937283270792997735970228932071970462920646706800533620149093374258314999513384016518623392361773265920938762840488884880280004685152439538827158587628138860386530783698020000647120464188492495056183531619363173358366473199409100755202226085966258339749113945336690923489563844655650389862744960550581780600389529904639562824009073425634140730493990155557333474497654954545742034608376116676409090989151859381007934439942323156762433607634664337234576277954427182597976163163864019955263057004583538586543210129385885559082115123505271514321847878167357238374764367581957209037396226869255506353804052077895504109350775287163432744972879982001814805876240060672421877333280851014226552382467620584076664593763150546818487880282623087402197267585528955304981654869736469773915085591971089909150051766507185080400045597073877518487634031059253761072698836204998037459766717696060519318328206134636929789638558912260323177170160300059416080982206297599012295708044517431686759754030075982231286930965323064115088286324830070383153342319185398392806614296659665424859521376021466339629554546350160262239418020625404438021842576924185751897111081268673185896034147288850316131687537080824994612287009791991101251909577045156941675144359152048580295241728211530012182214769140538327328413212440614833159724996471333098184625358622829398037209161735608578682236488134345740077600053906230278850489375846594171674053564258318576994478341933967025023063084600260826625155673439446282538313072577773116733893993265466054003231551086138675097432710877860355710612397355429189422019576937085677632225682705480892347262672194756499914433543964459588664818788190614736494357384797079299952560002005393977510928118470237185392982293278360993610178015043243082253752513865373155102177417816098040705751425442372315173933740266181473979144758525739318840434601506057349485850232825272596853920659933255700191110612119409277825152689037296723846023536869885321928206687165915808942688678219170082401515010417797570298690002201830718816476510392352494084306699501249755641491298900208051096587086305488065312327473682080067055646767580731225746920693467223257356598021883522082471518246174735101625827464764811280695018049883773052142773786291803914962103625014500098117494019692642259447592080130872589024080370213356692968464943698809993945730006087181185459065906945275308269851802635437772925805043955169066252103847846531542289424261331424339273558280911912951375942774087697262917642769360740608274400978605639964511126662723392448439774759842250588706976728752719576745162998040204515394020282266048794744659650188874422010140019304536177648210987245421032962079277965855850204635926661054877557963076762436511896896520081022880548305771827836845282959816626030995596877707993541281460933728828449697350375914051171756822953250032914514448624206205141461973986523552149613244194147513201265499809289863092216648864871358820539948477710012172833300255039629532346772819663646413912457503877523555536048854069419082331474313961140264047188449720619620622013729435109939459797185500254216793529829226382025541452576911036432567533838755980631864543515785599459694521028778279373806648228811648018014757772587489900210994310299764064209981244162728577085290229661954287976417530005514624677581405586174628732896817672071987645965314149200455876980827438707134671329209628862051922277113830963838368462790673110284768735219697926468699885732361367003960068775702220070844258465419384881298411886663747192125568653191252002246477783614877105645735006171381829208948511802870067307374979835022083959811387332904388554582078470663440605236601326426744401522821893583190036317942155150326464701901775165174540507783796885781499010252394535574870708383967489846803676433022604551016870307726094951258418061195716631313115696282478148548682175724650322390540595400984416770074845494020454580875655245814738170423632110877922970341065315266965655376050913815490010034462377654628473657986859187286083236734014872568897815975485673779866814983572422462539548881982164353764507687543991794604102965221452685333086464431035390728438731393670696877781505669802781318958855837198914445972820095724901371451549892579578770447372180079410492682984578793428064157557227368534901424769068534497007007016071523039975380678041209904656166260867726724301733017600429403693983915552452508704166699819859856436345811558615985379925283648782679511343373727880868030103525577992293966345768121112097014580651040976637506538284627753019728296115092961396881712999465419614105510666966965568945910230551140680994370334726385023480161716905621956341098568430313105880660864880574829218179430573070741033607787120279994445843255589072138497731472259206049699504078459905287380334188893063499842334727267024768063712775668300827003449172963070064809412343826180513126928273763615084178788020741202700757655014613570051683034269835644541172787831942676515591471284467382070102819405115660477826762034866396411057880482514799574650925586138074701721942211196443097854018935099547540042559039642806624604940714178662585943284693662316308395714329186203441327403958518808812402625560486827408301435055315523576003500235915002090219130745480130870971520010620566535477481187181825779436633727033066450753488703202607702427626328176367765539510895925116536175427796208469169940532209855535429688949220413311323495432522223426624427732878604630883306504048374344490341399478931201268064934565490010013615639705660538077270292068386343082686796843559558582579154939063014040375607237246814444837672763814977335662200664410541491750821349238239661191106012588602610741127446212035775542354587076551356109255559569431108145049334563269041009959126837750288318159843589477237074287973700664611439985089286712679816453232648510126813031040368270031550290867761605914057633718238447956716956158317973439480493216901170499563469098424111570048435162189273127608527336958930687641313366001617686936142354488578694368523570943029381549294312840428069770628865451323423362294564447100897398789173841437664858453811894493578072013942347277704792181247349256327559445681818224204827689237920525852507254624377070259978786666342572310587630531597346202631646778520135550000402773685243343121763400500862464442266036474831934651722412992159239999352245568087020148244730987111060999047525634585545881648291377248131776063596492495260418391702522727953384756706131462724550569990440399348910992328742233565764986974881978404230600794782834957141386221870899901945833073778161566625060324672112377818665285531684871321966144001292618037096681050810697618986660227885974585944418121548260352853817826457722535855919020125221507164929015332112409268984984966839508229715479972920426694410551066017779927365094684016188617574843294967203346216499297081809978201912696344392126574933202460322700914124846496190203838275829478428904489454725853258100034524986712935059211422361527379099372677558234725145080288455673574358728241157115740989314705593008230203169762511206938743339203058217506865081375573060281121558651730298658056132238083736921821469346576366235209050328814536928055964302534447922913149093271466419856305754606322700743297226764591712626164941182958369706086251332753857391452877842218284838393057914797916951008891844677406880324048980608876949162061385497427984273830439484979006714130557492237639101850694684350745545293264213858783550567456917588710539524663896131101395469105130743463424581909018198509746181651636468236569727262541649293102994647946664942095661426148410430047408757793056688817507759666673566230808556585992365019635385638882694891796291163000246891076583275979840878562417009470572067260368086047906782527327418432858948558689147945646121357902919038055336115938659862756351894335373348463443387781803637021600531103446929059412573160614926926116026306654929957240704435917664663572613202023524190731313153273305702934568657523032807732509735825603482344855809246965552394810869896719534310258733049717048084780988813646776214865140074363756157889828380599788382319819463227047836456152301103488442658853033930375606505227471698764961594716276198728483092560040987879552745617803439671756424820069892699874174726793350822877021506883846824078094093439969392301612487214135881155435403462329850728762855811856960285149680003720834639805445105790575789014496309859174763191678528940955144703148364026585434160627228689432817209401961756311738354399870557951033194101565356961747290080773373162341766646787269610491073463176557144144155731876661586372248582467905098757058042053033753562152247650627308682617602370050595958053419432575205625609042893496092713848000884171059190390477026074722880292277850650247725317275813592614689930584419532463260688721086923730221439021553058136374641699022031015908369858513538815386914428565743940819643924393902067259574513079690593052068256386503410106713453295415562445349104175810270817577117994792536336705982813517862582972455123897567550098618135040852045586934050024207857405126260337364366298243258564020023085503077031836319573195527281569596722974660272344935148651434161858197087851683922649055663075662218075476242775372209193152474447954666539259842240159853982761603825956481760803229165017074074602282516521881861925885098745123508887952397486971917429139604549647692614739044317103241240903567761433746869421113240223628319204110586693058588873697880721144480687156226326946664705499578132516508635659213905487192047014423189814936703141254664835592002070506342814426285773714777569573255041229707394164451615274977455581377210438226261540020387196898814999048462817895737868074540142128213369084718433381704189652227463314680850284344857441458676905558170474417982714730554351259510426982047848286886149132465910358430537234897968206383433260776060043532730871708343151317506794962696044430608958777237701606975781441454058728613862952233849868584383454209138462142028388591333627156432754018376590477797120950470913754775125424050424604102612402669711860732822659116427951851764584605982278191573043749720292252575899318035167511580024327989070203209443538438616684009100805700764559279527891661848016997943788693787253368738880534584264678275272233008917922417798138510514053206392978170378935546322054016167632823528004441561519514943727947377543261643304789516367951079268903415290998147934823046632496122763124433278797321773290367385941368687589026086625417116095225639987225790892655578493785273179366972147660929703940464844253637411698825171457318884486098873316208231593845507543835369997239840027726741982181981624482911017814353439786946979512651263918452854701740477851484824857517211094799066789247717276109998627152789164348063010551563866400989054904022493027593521225569408886011361716948364702960739992176077366334752857724893603808938586594760648061865244734203776171665655037399045927475522200679055720954216671633801665979022501158118727079164243525253992335787567247559930425075911376746853760944207054944245762736875362255059571081571111428732113123867497291804555395664093968826391795754028909225161936159785277363958837767045825700554333895919908628147701993122882407823412634772964623029402401270540098000204838488429789461681720697737273771069116384139730690303154162770294282692736429213676182839910793462734041686381280483394952861348600148719525659391414979710651254524541593162273346188434016804061814874530956418079770610457380652357884265450599602311530259799759755323563607999338117710445045165265367412553835873553001345910298337740305811098486982190879061801936723343494902464405209056223635901529443264549434014713973761445098573735799219074436279820437942530520677153687139858366017925718910037245953881602409312579444468874792636962915257921260451718159701127368500495055553693415281391407102925260770606997409806822197881235779473336880252017268276299159136131218682154612748064004471585824348213485510627433896115276398338980811801780184670062315496709072069011474559065047059668192573239299444592795386461608427190667468366484028315179719531211441751115197161715089361037822112475816533296178961526999762382693598455241562004111517253846119074571956217197885234489270214697480614139388493763381822898661613116116450852491298544262541080840837850433781598605900801090324477410566571276612031290344836288325360756178729997836557301904228143343875083224388226876772667234082247092460343929814952186126646255785936877752308396730294158802449488518212069569107137887284425814036814193120006671417194815117119066358937539362161445913122013273391699966666627729424970033273195526080308158496940565497471792124886182708837059810924664280833146171965611271048198715636707260995348458412687300879934816689343910355602887168222183120009480235379076681069231083523754427744199390850433412611958967660168303213312586372445621287438374006641150583621507318992750453784186832336042872884095544415052771763722648319495602449067495015318792677628078832831396288632086606709300968257139787420324858240236924636646773037856924117288162282306542692975595923273599831933680321633887865454198988471880852859709332509045436107891827555462228553028298754343162017302675255487527862843067033094582218836904491281889848552017881216975509122538344648679574691248148226304938035252147966449130563812712583050194115904631309894414288140992504440778287472041987083096841637163094874010728353257048773506385679741352205700274346839106733736258319367077658447365595896212465861348240268637503506782073927247622750749484147442374954723497139488850187875582270293413578426577032938373895920038087312289860746413457691863756110765408912613732352594975635399460621200788178162513824103216414791415616464723308498774313635192190034110994889734928492973022353305381329695673732846277826402411960235613968562914847862609709526174135627240627423770479880082232716842203877418639777617456469485149193071756980039949671607501632624868532500579304166835005346373449128845371388627505651465385261397885778832470987386298827401210332666830820483566956091356428216331936322310806674165928703666069744051499209383926005004547297835062976237017697262023323443545213569985615886574504789289334415985643080451943758787057772026814205196887656035810431832255125745232367309335351216310146202338146121894119312859227910313370245175227906376587441138813294584813859219132855760357412426510275164627246679749714223347745110740163495162268335849730242798689355031723540921451380543689470881372836667134414427625327027525759238880152526846473335909937630970366538471215377133189911115689518620592934810992049491237746702629440110723560767539159629239449443212356656612996808554452218529811360916225026337253481550175508566372788207554797268866874630100230567506202060970427918147745244458619000763484683943399216521716122725737783282488975811649628544787996947952559198731830756984774026874477386781133678531544771787218418646006443568538089303148947951850506787889844453812046374517479788761112893610561336513290628298323247030721364401462695927107868938938732220829518913260023134103492546287782382379615847464103673384153875048143723668472379237798925782071161561719894227738007699360869342034771059636326905644762016824396561270756172440190890150716496710363116661546871601937668317742019750211234005367360728457023060594486790327319700540187996259153424364468654969657788386459874445478176018276868474616004984415760750187302014181032127175709310586088624680194543819883446766466991577701584586284050673376353644036904391864453565650552284065173958207225930389510255187401046044323546641355875341021781359653018639244498620334909717821795803038196255951100036726269589977268652930090993862950122400137808669917439011072669592448244685595717552319199597032743812943628284576750885473128272544265314276386235333026558677683222152646084686189048448519399801019731107475588084350527358099311243763457240000871062006500649394876097691976231918106695287314003351162682756054477964533824994639746953051761684542558079627850651857467505404999597531774663341986896011844576618073686901048041558342829937080225136390089216769520577853424177677420382886580901150474381952440550811530677065764595478341227351897758995748934092451507735557361194336009497879192509298923839258509746617188524650235650209690580392464193719607585128372394541928886336867142645961108753060485575095772945848403895825060245156185894627667252997544238536627923875421903139965903795926749990222436382117215404456309487327270872657368960295485604661918117195441321416972047831228515281523323638143795353526963029634234200040054327293678109838606853915955218673550254175367273722116429049877137207177901637978548322133142675797084552536202670180895901830611277474036198942256626961257865913608241481430417462404986970198539182514890951860351030674676026402100148593381894502840491339312806258740063764977362772814985668378069977872558666289003367843062185796174004989641175430505967474546578659200245882236845510800105550000850068845134993931411042501457101126390958936352142384637312217099899298607891528184077194676910353679066338034488273529818835098945973688221796499566966366402210485200172156330471268844205778685268102866993133614242830604228943619328109054725121453445296176532190189382606952303629651916334585765872015426229005107983931559628248625377158767100470811665540522716092445594841466184123381587522562902592117444017402881446093162880285368892049375188860576866803312204641083327257815024202260594153142881036184364045289607467493986751981444622170506763726279526376221267414141710704999460861100268131123633618508149005350445638425303502261415856683947120767560775616284070554547658717745081657682402806567211460075716144827081434775987065973714407668488091460742697942859022663845455983576563720279558329542453189920560087773736885001015428687388616338688876569519428086703532007526702484598982802283518893352973222738715156959032732929883145605481436794776978338465354661670216930093830596672385657793132291321145414025160000219286006947387142320601879033892930299621384912727191805328032958536124498062593075573046768299502908194645529047443074077232339838706752279173917090822914420397898563530072972350223073490794070778249819306311295684883288340453962855811096342757738828946824344276057607601015855097945064476322852557252294464951789353364390017523135761566110966817510727870175215610183224860278425644051723528805592651577933859049255934844961212776771834650043419604531034652990002339505692089478109190728053017649734524783508597923011777302188513691131811028182660815998862189005395264218513341266315906765527755477813578371852016934486963298075164808655598809954911228771327794586683775058627241053480073168636322541780392344999486265578189109519140026609522863980757212365803501876694589119612566868416881260746048103401081364704633388295595962153794859130078116690217048993519100868107940299969449134608630585379814820402382384335343874269462991303492888254156818286450403803216772019059514364872804840995195043127977092604340419890719698683805014244278542476050817949902550896711447921193691020964987390238276924900034288938503025563552991483942729895032440680517718912703801292855176045834224047513735578548950802094686278673858098523280350327768723140000885959886443508850554829034106219229104436421461069712843461145274036387583039860736706214997362360870591376116249679893237443333594755655238224307344801133627409905435708147810241597009201747488281256295591459120846512387000553835092569631785214796860166488829505762460988785669521334584913809665854417141575728079806789086763997435277368085661784935107244879128644741815599817050646433664077400717945323772671586678049190990339236491293655221277312589000299543523190924836063225364789704890712428269812843276570830807897846727762896422415432185005361989871908220590703117486054115277408271004521992070348712353945058937830402401511640388639138887564249300079489474102290555257876521164374332465058729356317366255989267779805209243115213321592418448524657622062090336406428921102277964759518428067945524285209366297452951022749268266629850842992251294848999811780393071064032083221140659522688989779847916379543662094299010288655095110153055092466681058372087430107869343629038629570991042445682285961432754996357942366089643517349469220458474094466232158733403937608877694466850139630607234867844266166200120582220060911855223084347258155085467657629314300071072287575053270666789653043969340007990596594975488433791618621911740199373185864062345324433048270271787605615878930502535247569601441890537116968972344924243621017551807690668951154575869344737401011768896525634360349246823620258249518579769290414260586745608622303236344335851018851226896366368471221098267136956812697412480727224992560103418074994196557898419800261879840922951884111884372343499229903547767662157246466927646682924079861685200263830277472001576357621147100106235543213253076242556877877622275966517975502503209021526978699502512353631512974634519269365202517420689763522389917017616423536419542670535450214047658721708095679943560595646215253132121674310239161653216427137860545254980769092900278247582393934636999517049919685766776321941645815837382769863664411964024539040430059371244535947075983335417349454259970564080042858864702730514384262653010761691494466120372895912065103302153771294151687265191763959724418345712341504035397620258044380291333727475838337680858136072323974302616280099729404947746722283033872083637666137848515515707645921832531168388495140834609180658278260526724442238361433934289404540693546366493278518090323223004197802956864571458050294234715607763846409864694938166963486979082982805912136914688693643339082826906164522428684958796223736721873429659803625125192114173853137450488842036505589637139963952229329999174070194660967215697506559278818912841700002250457454401445320220452352378091498821552462187116133916502446391455928163088537054779779138625541179381795272053214956444863405867553049782448757337173746949867361060716234073642517034668506189362156368587910922745330194603182037777368031894283805400611980904705239441161352043275500083510614795821326873094008676063630906185570277030423180421052678993127675775887755033110073001919772949893620523217085122661102723660413977541810977422486800021494544855844494323361397974723005518003107077367151304095426942144669795283783109721329845138615517605771001134014341006077410221276068726310459806277740962514344564632557043236511243691953982198020769578856245979735033891643343953435741607207101510640410597526535315683405143337602725884613944917097939228967141604104129080450246154915641940178478090528008163557263182255149302326853966678574177330473954742349516076853128214099726721228317601094137618005285953409253535754819932446545787690908680940080154507368975026292169133446506360211650135082160125052199066941135110134391542628099097738101343714182939767999407156246506526366356513548198965495481847330082893032047357242643116669126113722319422949635491663474118523423700365352871837144589248690424349060475553450741550029463463930492877441020307812774277899811424838422514744535797900437257818515801114590067357552196944487563402238980758231353819857895726337570341638068588100886921817816512532991667958196944888905534506465470552847998388399846825422741228815635610803024380149740126719180089119507942566783622526218614643362419347544786087210530949488004408307592907388360153675356785727271376775366078673405314284750542786875760687686920345010173249174022584915291727827306282729893483033283449424480853115092729535373785992993018289100138125379097005299999982436407444762254901782802813783883721168265769837969322544507639790684163381918786570646384605718430202165261772546488469302273435290572376975632430481256864126054723362079713571779113285626756692323585893380805433726234791166247736072898650927062085742356186911029916567712475799401705983712871860579785716064777595497320603440440308247079238456620947254871878802785962535691624572198489524555935139754381333011045471640651597685721721924945543713200500164566577872745188564762833424716445549286777955130507891925058200728140719756191136876252270616892571085619644746424353310966936801725025509726401435265926142328253782906089877777641395927307546218447139032105625290652674837374987412495615430280691449490467455189833467976799303685795774738814478896357703666559134239692029240506918847001372821846549601581633280077393504028086137147603730440561105597669865326038080159540580004556884183664773355185014909290710342610932335370644748810109016205857283910688463284384734832081827403273086391394577416241006581562265404745373358808446406828152910037523532338575567746141140336605349324924635427309251080971985858915062096363215006928334439623103655457175455734637975398763213226809176791099765522827755046443723373437989411624856335583531845496625677137648107459362633429167575461565743288492933089030398854404213460012001381023171609809621498456751964388984161950433899668664286075609461482533358508362592928912437384802189942863479711749770730036743524506972551785047341413717222521233505856161436912123496517839731480017861851588653659052208510059968830219001472952632912273559234228994220682676556931796636691076845698670578988958997035765298436142007296175983607251222555159863698166923019337811339978113455909885538763852212343361457661881445671639138117193418857573850979208056200146911844529896637699421872337003536287769709843260067505121992443190440219332953008906760170198910196435401930346678739760620045419823209381357627563513388606429115000022799894983723871939898709869056644609618739219681827611215286875540475889593725908789656812156985494183946046190712624706238187121470252908038975851441977774969164570855034058775264889510981876433377677782118413080877148892241225449459754699253516364669689659110167001024707329737783539879451721961399063322983632548369843266330274202620375679487947960879699844077630236829309429730252574841276727816676160479188960646510551451368499763530847378407960116713986326312924434676849316978288730769986210495739613286403988738161748099874767214963243829731436279713231795873503355324520470437660826891103917118955246240810245669423755072573543354635635472720893971495076479699959964427264304966369261025898959163841268089711098979713152056894271454129032848963452432593088442288634057638834098541739053411165619198293153518761913143993693111252225572560848544046300045558674866921921265317811432848013276461251733464159210340244754422305171558071550451315880207535218834367649612210795578961487581537754803513056466644582354820888139555917645903140379715970661417220302222357385243884226125751315176121742246742213385223239620798486844237327591133128571950441640541833982918427832640594053783311309448505196501523266290829272105495712139462016785698312412672453091756108624622798062339565599520286606908416466663564606184310844701195557519937222084875297530269026595676485176516485466933171298315122273880881485369636341013654558373084912914261859374575210039583923704164443865575768487035284606695812956173636197312611720533345392671841052254310535292358673290416501922538475509800813832331510392406984627560817254414918616783019270345603839547896812432380359022049443780690625758849625807203796986145681673913645483027213218505166369033966263715567346200031837311112281623492341181275675563498413759810236856909617230380039815424875127770872151085229369563476011359943491827268021271294135015006973803090741800196287438867493844332528428914833125473108712152898035293617803832208055179957934496489322858627171831646646302069961969746799133495046215609195646968617868321802743333702454442342942432997770153112004300832070521667019725837473221057160685593899539587338237811208439378000135580143154338946564355324027853479490067771156292383031207958956161202548683242982954001868787510039225587287804255896046285833961403855384342776613163180698517342946805728375293521269288563753319198087404437264464713864282679813629673453101303185927917280311753215391440358579832016922729820328644144882379710430244258861630314529533519149219364102763014330993021505003946476710561940936937524240401574565240764866802467603129637875754103661962433053398778669247964281141944690962177795041786389170165079844907133783770889354897937689972246993440978220244508329487116550186671925246081577353652065268145055864220305241103737302443061449968403366281918838297212596386611240417913218612913342986697911945491321578606552328179048765960434478767066658806395366610837411804775567206222969899850846187294525177138610774751126630872529365299894240857660764552182384851923834493061965622712926190218995741292482290445223801652063250938876830655276988023521538940864599310651200912701660113284812184679612019278241595425606401066499030780851931352168594211616011103488426347475245297381204888017299462276470979268460604587325399988313098395609040958724660347927589252632619673127480432794386134575977425602668196418418495775097563001183727224711933165291710176603722080709231785707477283178227369169641963042972025536662951956831124090737537344058729350585605504099365162875718021891418984476892431651944142318956219464089351655115094963569121888777050676782104852110192297886403485263425376921168414516748463263411054703979756664693191083959964297549556647036611640808196882139998567526288127545300164811999199663611465914818579675427343785074722018504665816828685083497511091996034389189528188347854547494248081052934946690013276151130115632558041752413057798659228812000096137339237481439910863752201622169052959335885702476289752191567231990795930976699611360587967257586507998916560328809536147689275243791214493060213480824175990751825112904353771656482074125618619458899152510808938549028782070235513533737031565943295115913810179135896839749789369874189819326747683631894573135789718157329066872452606079096192809459056917024200688025875753585462940384292502170907492035928600356482346771117228137998021086554132776653949686865484940849444330577100483000962154908468543225386571188456351843244513860109414955247524136317309116215764345319190281357974784895952243379800846011095656083203746464556971481971583424958565522245452190445987502544149090859152628057379162988723301903165064250752162124759685536118069888544222855687314065215189644590135436883709867348231186721762347530135396592534489246591563032085013946328221266645215702885880318100778421850583854085827169396691822655555719648220339497588383109650942549270349730829372790477293049335274670553803667306279923852379611401899905360239121645863371362596590760855138199250132550065647569048355025553675901544092288635614061320599635582931796303842270694315903208394439388920130090555078519155855823656049195817794212911744470475454136243234762165038247883717048685125410647461557092726046943860209210636422537315960818141574445406530592477906113862548190140539722575092047371736529095363768452043119764136818523517237112125577859840639200904596146394261351299869477722917378086246120717669431256324403018917032841257483271003520862903836631382000487126781399336432142322874042197825757670675420462806793408613294131092775281934132284664385430417238203280839570952803939030083754305577778495602695307408745822198979933544431010077265425781047663440101789678069646348708773536219422050783003675021067204857328543588994112294359369015165337005252524503978012794908458942574410309895536435652582803552592595766985225366446589792588273040097642862654494352515945354579877864798248589769650515760351036887681616186749004258051612979528544315562079968843894608908591980115193720839413679500266033867960949887015268642000945991640182866780529122355441775787022488652904928948392766424013400161972623517197505089309913968013414996569738447493258727484779633963714139176198243562282688663128231615457738316219296631213735589776542711949104124882539596124261737236409599658442688127910054326468944213779469223476688394791981776626387305764786575102665904075402008527831120261938463988752763839492991559687530155594707261407212468236050227747606837290672052814171984599203693825502096173374001892834743008170194480676860896373625311859156758874526749900974349939552155607467200747040757888031116113628354900868062554751570780454217495501004348899754136171002901402243388296865758160241212895651778284006953411663893761781381076784912542846993449716408816314632355418548177980384160893437270085182176116313980383911638652566458795950761768608750910343907150704417870808439413705298604771450379962032223913486490028294402213216558092318938484075259760473458507841960609137955097775787748156253519144017576424317726166765814216365762494803837193031450868073194073646488948857191486888084697426539467878457906700776626955027973922358755893419736706826479165390429220087327813385161482657217625130082572339570581327468962767648226985625133336048080324529413194881441586233494899657457112843662337330156561552910742593767174748724446063350086539869728527188105488869988636057025426092904614682601239091658124354461116170589187581839612694727251732699921960092434584321296812183025670328062568959257677460600967880761689960008474353893684469649752736027488427627720937561452488209759337033506639234427860262104392152491198164747411032360287250279927796002458871775961073805265381018186405238022543437876305171928023361968951425842812964639684220412880630544471301150725037025514608029019565588659956513123444740249626619976997699646754044515734428161878018153231657441643317035349789708964346934144495519955695706149325992810230066587416784591471159690969496797363125377544468233507569141155787128713550605936134596374140303875834716705823150012743113708666347273595080485325193911891299532512561071797647902567508999993165930590552802511779686950508146401466066289613625842381674566790697502853590784034277891081534836993055318134933110363172829227470264583699602182903660119456855759254677533581733401212522302378802822961723675330935702798305256215698000157970376825875139924883543837163688168154434683782666684027264232482483155005854766439372216667617986769122214349169194232392258745062285425962859156909036003600390419212117583814573879221029808381126660424600616393873737393174196709538743531345113932326254754800797141388109611249335100144610835474124871571185196549042458321611080055453319046053191532503885814289742115754570812840250469271944991552356476152023312528521936479893171455061062992209500520315293036108470718903246513868143914735604875806935335858171144994091761579227551831397792288904697256600229755214865231758601468250563245198306084638580066029819649489016019191868586012976562587762017496900639688642999218546438690020615009957170577581594339268350723320411286209603801766745565861532788375176619622887083316265654286352094801537817954580035380282642462279732437520915748641014116929558604328047030070982978842785411286302789066949664605908358949365851515046609582180435309865302679838773056367761431125569788774847299167967825295159899725287316905455815107805478878373308204714423099633393222545455010048884571867568833578935963491061327943314624997232996657493002394280779925829327652213596076925519207157239227870747164497744004238509402690950720472689912193646882807307827210655986186141545537285010570836962280820653589292843904231864964931668019620958401421283032626656973612333370241617619367196971585245519451708535179814257323014010159411968427229964090451578807151000770675664295606487360745241098635979624031273243869863609314414539345567379023690510588713480398308859162476163467481968719991978310631353399651437589103181414134216009873125123733616714391980229867185119825425934688561248839356210389039159532832908152254029031393075394935339400714397342132231661931839374855961399474841310754507304669603161378924587548873437904380801891111779262686685451903904198024948097611181330444764032052549031793568738198094646409715061946953852399599808861053493975528799865209389690435836746535189538244875017076580330370462115410549718241832023755789234835908382993678283000417561286149431941999777402911899872174422987448081330164359626911391015191759382517982446336065629491633963348336852015071262502389053369368211216790436977283062731004323240958122599870203787210526231885142524201981338422626861525290337007778144022066351453492983005553510848760156198103022421264708374482881926207321103283810555651177952804879676009503504365811545910015213918123513876887957101721129530064519687670349503793921674048991647034089796099333228625303768771080787761982516558597838727032926201436026831895711617289160298092451545883009331406431447003085301969961635078619208630002797537208867922676460065679350504128819293821009230728178631610512273811969374725112015426872281960016678470323813684459520884415929948728778512745017869526201633786512201252278699646337385692290793243449491911659721613921589020789125934728326417240056065995246152136793716100221610075179657315932055479596439036485573473155645140498194483284576106169242463155983240154829264932885869053648706890407814808454020963228398118813469222706915949451898971804051743998784361127283079570765573309513397514274469976979359199164234377777140586102360138010113046581511905282040854220457485658638080131551642649288205141826347578991721747419812118928047376612172110460718193395823000917882110647308564731159059326669304440378027773539538672422691766290081318857884966923407915027333109058086315773625215130928206033352447309775229812671691635925443514849210620938572932005954297341548759327365283615078712216153442508156040513623586277940043637131899725934659781822074356510844425010066019304735391329355162210869558706775087491191861450328084762437475456233661075422836907901481053832493831562817813040373928420506656269334734002820006409891910072757638680390956422603857697663374816659278635256514257881499878619017170377221202719903840845794911560053608574913225067804740609254496750159169746807121226798510544604976320510420061743134248279564550080045688543387547829182800572045262003881947902918423844348342216337033081590736467284906281794436282368399519791272399490173715098688992576273701951603268345551905131597661173858561763208158721397689434317050968862094804509484244497845491090543819020997824072772862453487809171332553559125477914403329090077434859517647603151959227039747050953182845747988659194719773646260553988753857295896611096453884514445104428274506412588694139822972949999204272497235071345850160746197052275184281538622682818698790071478750202602658141843494706525408455463560249988248501461923454866352062454458251989111612825862410243556438064721656454376943556142513158120903323286963197454320392048564197362886950561949553378500566719818490612357503318097738452933097433883088601918394230561520421381167016677193645836570651680416952736603084773630448865012402143582356200629797520054428767849842461203455092333039630939436982125474569099754324091077773429172870747977462241673366773586352178393496243505952165855878647202934277599438422803525427092332931693953078447430756190892512121459943720891434404406504707318121780677607458579944757853162703431250066364380491562994047931971322399526112261115072302395616770454331445908947693309583921931679192145808232248547837123554674747114797813594981035482484071952268238113204836205882219707168102390116154611001660592734406688529069954948471862025366099278541745050095848385973621429045926857493012302261257033704615606283503912197103120872987496878521211396769992884735509865985718174358807906722061932456895753982237350839417642325345764093510810005617975934566148064174631190425361338203898868179399937678379058136443372115410395309080454994142155767633810066630965893426886627095869549553564437576025513986539016953255854736738350686333168600703403704179637065969595227090568597859279158041799885089817016287282292052027297324399961512601778943372643036427609800243157018226396659760352991551056252979119352443010760935918372999818249906334444264075468477438086713021718134992545309237603456211586592124996275002248265082797346718568882919427344603780804749421304825083659169704644978304382552205232587497129842495361757752954522445624283708509233409433057121216556185481220336033698824102289367669497485877498588196025131124387026001100561804374300657027069008880322543387686520611147457798481872781896440341389879003477159186444681400044950935955638031232149349211759172196198580710838535457350229528505567731487566815720635673634898536417084913073111930070574159927475738691341748987820801402284696268752593065907424407510089576219989147240585000786715089720759956483867076739734267480713885150432686765159733068484310456263584069468848024383148919745044372719064423341669519681290102841982930530771625729742611934574898514711198714815372113066844424865175984701222679608204404662462875260910978502909967221841355827750162438369115958035191483483236635955747746275151383280168671148959216891693425662386130714162686944631803398940889654574771400683365224618896787506816715450731346264257057334665885533516980096000826563305780102026931615751072610047581527848896427113090340653008302230429254220747680807661649001514143489047747593097783147797063137734244760364407239716522286209099820452846818120257489260520898653736654926425482387943261646750017168643573462084148668662059842299476878464037892723307525255489533714709513002844120405383289023476990671179026201566570382406201097564892720888378669964867819056542585371384774026024742661434988451407643953722348206244026070884745034517030038976137905591957518852655972509646668388449212497792051687956195382541761552819241117959581873142077457412409537831688417025792843416836775492622612762691513882796262166380599576005556577966051298422071756550135405476019604573177856484286601008413560836726517913730473288766154417447729943949048487869340561760908238480877551650460411575752624385258378872624384616260790334657559319274164026164222750666802958135974080257286502572072642139577674888462238485847903511393011014940142624106908473090356108324717469757114332715188950957052650643561446518517949983470277085937221229244812753983459460573010194076667541106527570427781755178780674842375581604689569955238978571298996732164606992037130529867738675091534779263411866556919840141521369865441830046885888024427694849478921893399295000116248971151588665058395591253611620611364127224347609103728351496782445272458831857169868176393251114542336014758428277766009125803084871845787074132942636082956145010945304785849399329129995002648578328360186015502171590287353669406370298754554224177538094377373095881402050273115928932870607655509541194349125009307664515149110093915432171384250767991295414279613693227645156060043985051277710785402315063751954406254508186293490228086746296243381386342131870878596052151156412384264510612522054499874937272525534613209096419122578449713670015676236084366127980328261920599512991594730659005992992229746255034464449251013254492639276028170046874339529159747663217235383138409951870247880552811112987966744624187650682431235187380881182973587669724380434595085399739072798418569694618554123629406224689584430265934594617950595248324310991248577692391074968322571161228419537588145417826596008965917602251348828525673934591627866401260118582666143117860696474970621189276955750627306848086161450018454221076122649607714931624717852037900689132901637903947821628134516499373911804840979770373084122428902732562921658290959384801351848058656657066844954911268168061030518030010663985040377327428512202714713905108058623817953382086483185313543892201638515168809520988380984696549932844969056502326356563856924770031500286714136285130427396098560111565868653241083737190821419022496957485408990158659701075808179930919757300349085428229661412592239091219196189277245863327106532899469073191110031628166672640165785880999639971953386952540540999292153703275379659804563590350901594568508702530372569892035825278109381590688369826948652573500590865250507138114514517406188065747902974536623587774763794137012338605229268511942537512192782730630291349618456110236239260753772584069428766646884386590354204151717835320110664986319133288196738884347801391949942702453128654385194537613882825956231491362936319397266715230735842519669142520850119377918171241720289756923453065970180870566691190188547548861533746981252818303045502486595376784356973411749985784595665761121070389123928161367802443511859633105694622844986545336197199574786824380019533584594905222790196645506821433848790319811256438263950008328481155824820212303244624694050316997482743513693004231543499394870447161595391465758293908806501350980926431642567149066494418123903554748689127634278754974915908105631220190520019835090891429688115930424526964805130742817758763995951626143409210222993615759279142346643418953354228273173027808537342023867427740142245222769692794880361344452816334377847552893605877785107839463194580179462843884911743201942262783934337344982496629022129678199855135974482493287029814943393230142236547412811575368877444673942902095729812493758261519788818414935456087940482805662051203945418110935706081740866051369290039447318191530894998068236418745978386163644876654046193882349062530884033569365970758959802392437743943927432962861935607396140914317880257181521229136980969268486349908827457801664041658492516320437303891408835013048458805174848159330126003104375008755958392556291721638404906814800628051184493965268314190200012624610610932665205412394434149918913581430797365140070736037581219001158229370345997656901482869625404730205002391124727995024071600601476948071897232544542387727656948634026137010615346109871444690553461739172284635197575035164496615773167186673106170531718644644237623958160123356812603272378783821787788633165253916497380747361592803220185592162196727380792682315731193887858596301248602761158097926687155368715722833482487893257967539426135883830506305103480942087765774879378296796186627662639432101891086961848324579256691228396694267770775918027471866919901766450553378481772246542956523030457528912773094397425721028053815173485136628157929956910438477476303023502843779825824498865012889024415623156793423408491212431733007879853565199211647587688263988498146019846300274636289508558021924374262929266314432218399293781625848080768825927065172276247258533371470043621132315722589795280071018998789330076688938788720167966745471352435621162124002975787747965772804622094458201172885186703896247371090264617734288051714147692573320998109948938260681121683563099110060289383361659104409842287886568625874683661082028277502085079088787970360073000669244539871054079241277972981132274007681790331196980425412299942934614727007092835025044941585779088146767257550497390252499193483890256629700132263351808753950112651789293285610958133242947344956258723479490074699805151223880159971893372371253772249628649862362831546556059471200402923635945397196684630255906574306363282482038903806482582156384607654075667324875054184782323674855252180634684626175888089533965599188335689148482397316635273219838322372692095059017494887236830866522376319801503367947156106282358984099778432690582490790878039759920445726080648591689538934964729164819311765296023341920991839039613690395922610941685179013570471907847034746434619927154561278343951722654702107664714423730808764777164728727004378106179428819927197762424085143706759947311458295446088002181652593068178494028372605289216015400944068845078670577341952338624499722588822287781327252060101754090540453191413926981322414615605035707467593746543272145033174322978028834162349358079011415169876913227287285221299680304266797441971709308631559427069229423243316331469723856974613380986314124712996509263206018917294644883882645101918097562466681397311420964750418801830078811830913248759071120648482580436122617400359263197093628004303558363760969420206541389779527918811802796533564001793915534037461586840700492195012105265193115448969522959628636272995018315364938205437071301140187315101593764453441489081676829564614262836279564643055967748064858371402363258268642910088505921340609601800331547734213684068409191913088828963757659321835237811825047836897646582754174169882476897412609210643053159023781531717974884715053478768916228362764685576845968336862597084066291441411594784924892508796321780933420637547405358535244769620068279115590201739949110054426228233416488013957147708432899558074752453412166817339372372797918037565228959013084849292459057223563034189806541700108206833012929008323167300689916896939384783405499451310705019810885108342644546842939358412783432867689681263214099777240764869101047176379347341813610378742298446842598285726896285752417929344836559689968447795398994286698947110437313258649630430238916181149818883020032684648122458423202934442628143382091700690453637427683629398109707286171956548567743101003132195908112769950226954794366752948465077665195177131627902807853247341665016858860734546605467922461261356151376683423631795429319916510196187051062313513721403668837268821363132294710277061283269652427772413244774529473425765555822597436392509852516213259175070824669409695388158236567787316672346017072870097266478958582560161566396116697170643618728810539708702698953247249737616434929656345788164197994362343310911075169615456981472018830228390707862585815492104824282527669334338854417117343128789905656030903276669228893747043274796928912689057252508572769475575183433810258819769945431224738335604636123074879619423814268450529999448808762798834804021979041962344647145815333206044134799615327164468536090730752057130043820816077631718964863435205107646672077235392342534274460352259030229552504264892829817350648683193734538576137226206199453383475991449602046931667348603289754383882272960507390879793123983642132697654419636282412187449530825405379963421729215039645826153752215389061863539520152449036944044679581022090609469224691333458729355323506860435850196669542454777820149440964505594898539713915972533098793007938614894211182363035787162757770983134092460439473770881268579764451297938690158566592732305718530981823371726411214523931178456788156042939218612880452562443191398660387109293880132474314235508878659339169234312840879606851100427691496070474544816975232573917738538885424905613594125665668658347006266417638737947051192746494940411321443214398899293039890619191119969409015520901550919324942237966772489919305578420192724021579515777578995743877180259968175309121061255327793811663941807660055515416626118355418744236682010771230377687829401128178280711126312385843183157264740451560144146518038894987889247749830390812121460483335429707052626618352558745992026107254295646917631852015432800087923678141836387212431503041231280673234204711596495750254092388929671440391066864246181995549645797337137677592712283114380690666037943411520110685059096585367058165579475047927222514970587391013762845223431802462031790592034044808778144779130568091803490699428788022812710170863611202872271600316336616896358645323653336668406529036503358913143554087907188940562764619205345722476456419297692413550648132615373126076183388180879891897069028090316780504541570821333485766567928335961453361221912258253200864351379334295275698437250607737222277662419728993766827003656732459190863536242035861625674638558950128079626158363825962208946767509682693060742506847890887789207417451931405396934927084830931097668901890270159077871352013426622917224840755084227360568892072375525604666767637271326486960616702979775073151582778468060307269859597705235109468347181945830689514027170269999699365069281725839354088397063607762316049593282313806528043917801731722504849479662025087966443792269425060389225031198113275381326398421541766299203385383209982761109662819197693597400052796742125742488180903008432116432239315715990420340212721364659029335662445690952385225238747494480279317110559926122115498392955523950332497137429046864760127219291360658062280064435879909002403050497495029998889888761887756676243547472136200601775533073691646898221967898597484406376669421375471282473380773744503384026875332285016903646979545728784282826685076443205337531802351857938506479273338308522202541133031030955501275154203370561761063914355501057009966910149493919080701741338767867185367148322774047301536216299185588063179777247174463590743011498319208314672309394369344030594034097221381581570310188322712727575841803976004258315883757867413064559207964651544533987078177847354479629124167474284502579027733185520633046253605707920875304954273930613802673648122193349053765857795400284891292289800620998927588258513593005423503643975309244184195844989955350529921073874235178233950915245964733826280177702877255873136250164050666328593405160066277390634197481969402118490248896768571022657033400994399559433935001582049528017920687531746319817603540271027957908540831202397574984881333500300261253289225503683832415535420609525393295596828228521572489562102486920513934135392748025221584814676074077587306657626368618939013745086325508931738620872086647540170828523883460996195440750329531530376927303143831586537702591222510368842293137883226313294001874013760895927639332660788147880355376546369925920135588270467429717804951807316462392941675832513532886998593820758448134060748172370273288750576737532823528112545844599017050856006565580868783820405036473580127098301449010533228109115301294125509793160054894956843203008856165921743698270556591740845299745623520189144516684667770020959491710268174671873008527874459596120145854015387438876452674979471140442630763809584476865541776404613455227048093254973903014235636533938916677174197520161371355374027306958402267799609722248681245440220225898828836370992934434767318147110795546165230957300283006054226528953014041337039892238851049214559374165702241552208418705070634841242232534884735139360243585893145152310249536157085054775388053657319890736328137631874288096541209726041586503893485418306090604345914517964417990290962341197366819950288170143962039304936940711506655405203906111394101300689517941577341448502654856909009557141475590900840667496550985898729098435087250690759018639996590459875808825305035960041595579374828722049304781688629771698808245499351023603403720612677883498167003564966521550126498694185111293900132297006912437199732536049261243181418139242149369687208055275659308748750290309876601080557522144347619486875135319406717900927592422889338393197793298032545720737088823966166964520094276689166669890745833926768632288567522167408783909299039281422514775612874367623929923508922144248632467114656436353722463656069646589358130830602394129994443048163137125304463897978200799388913004307136900010155164129778664007250625563003595718430402158963956485991497933190364816462636253743569503884894827554132189498596739682940746274197556560084722300462459192520889674879993160038391626285825586927941648724334932253459059316797145639506698719676930113400069372369938949880360292836768799481496125257493879215399332256384233633892513792397749432001187534798113119720850190584631837374102465117102463091225901882730571067631851639147526287985306648412108395315952560834326412021987221139166019096871015284742937699583711203841397790467281263601204304289146845125122472887203915413983427729804913870146348867667427545822876722707664617481134182400904049162083417297165847522442494166706750129163211035649047175137024040369630374681262905416723011166478847123115650155006673021730179200212150428279332652604265034030713021322451479434337361738172062354766551144782516642816098267007840194769243748519558777281175819226955141548204389616531964033675291552762647836636640202360150624336864786401764748316355145615772723512617960303142214123176622120851370246957568907901605350365948111694716052484241729542947791144905931702691295082404598723881433205437231594715665362253520862724274412827106306048683930490465956558129272621999336952920022862249658711129713728772939348979446173890814894804610171442365999483600403604486058819901974479762267370736668803296894664571576585301168668002019609798996949761962165529525824402125283559716394599967200993904954339646675317077224198188305655269554523897837507197860139325424482471306219121683456972669460088841327222895767639465095540515615178382448935499927777460924615589465438487665367656093439171629617404724057891856683263045195628919242118736426111000671855952949907952036374739761518511820505266022298107480264217938183405776960818346930823286000509500774846726620589498838091168161310159256072021052340323503151538079475658400655781817153397656129290933395100452431197770687190900722007096516714401790976201609149743998690891952401632072149186290973215548682140716953870208483889266361693059386826092116889261231605700920898235526400541736309658501901321315361074642411929924096094997084085037407257095523241850608727201404268882183555901414466983289291365852357337667596656062351794807188681081291189437447516098601780110976762976528207109297920883535347428065746870437486932950913899762660563605260361556000866460647841741995056673471722508537248151705245542455279202194300447576898361652585640233434590273161336579780859111769231628169285613016375811175626206862280981286147237463765889644259191408566378610304710745084417025597742158712118216239030126517890922487134755458140897887500258259154813467548281295030533271564216874074144155481542758784266757434599368962916182348170200771071010795850276723087568487952305330769392015369716001261197906746008206872083006989684792160265215482442130226890055606077069837372246826137159150563105955521706312325754799916703928777255760463061985556926145440141241128825446751803418375572606422108189695269029992910261983481677265679420720835567289974114873814740886723766798157095612142865477068434290630684279131958071751409154015010656136076981256173973955418157367493771070668212864372534958071599848839464254115912593880302175004012878348878180921580127782484028272907027142834786140082525332856052522409266230299079752388032857933624978542582685144128137430229167463795015290207168728324269245193072698524114356034801479813844827842426234560529392042694856553183762955306492685414781181966763253327517736172302815339217207296342660562951530132526426558009936641826215673047912947048599549159262819911795957376757305984409818171905682200330624159711477506427329367511052626467861990757281985681595890326267306882047386221929288142858807817590801643149589797073503303351542538406079457924396669863363116872367089700334994736349334832411790036390350374782307424555593244971057183071457059032094733143448337866107322683494654221857554296408545041049828342495121260753863686052404918703120668277667835482140331757649538732866695962886895965820082126625796000328604176140669062007477086300927321189866728440748522485375946420372079112195452893078002522495922537430555678849187648571021807808053804119067511602946325971925538161616783509775580873892708464937804707199770940241711995458811813932374197050451715187520287781602728316454614999264753005517096491602888567948153199233403397400928204621596736673767961275417874114909032411809148655565002051814587701265402129064978520145368340926723344867940764112655377046455388582644305949653971358861299325555749076582837631356500205978389360680141988930758377127787378590084780386357161413373842792714071177827177793904886390734880530624572276538814177681821133305351517196370671225268180603267258185756147428312381636725747198356218173720740854468277409054017799190261456215901734079448081686998290566172929044761509547834327786040596684792672217738654666481957746009847674497079516964040834402534275631735457801921674122563220324933899833557142690834936803929285503879480654643572080550920508175400210950790313455099487543189107457920181340912201977088705938297696632880336750129816468135316685130211664064991090189216756280986817633108602010250137050938991961700635503314874789403423171975118634684549566158981067296105126519829750688679650363523313231348928206403300538305567925430583196854559808202418592148229263202386896969722908051176919648721059642773901973108148707453353912635253876256049091062989837630164633456210810126686553391702735465769762816428847995204876649731804896274214395095678820523474299731335556396712559552343841162856690289435121759098013112583067793659007810973862063697215190539546200039944512413224711685494465424805313639669123133598498930306631615903567118934407174245529112537516339631869272876907681008224387731778604692276496971658311138809746412990617828944553388422142520961609374656508655251245021524083288561688221008257298523463367635342675198932717861377714404308671065721441223788540444356203007318009672432648889166753513979206975658494169959013061460885409423843718049571256045617090780633369036454648653608580640392769984910953465559101720708711919554444408745163718536157669104001457644386431090250379916295480427590871060700638155214877980150039499738900339365758131568328983619499807558889030326391783840542758097154977142579557719920905212542311044408318479191550258651790311935203257289010171179510622378303019107436841505611098823419129782005334858188615811856811866123561481239699505142237672922660253132083944500520123404069586029889466252882291673766118510510989106041256441969175151318430100316188938482413718322607798039725797555944853634730436991630109048460518526053592868647312194455880397189397933003073440920479885930832778869413244909004137382886744623901907762094122602444289538446398521611508913033976418712201710139143062868098950706725578315242972693060731838623497223309737371746150417707148686652181410467033760352767257362715849854294948532418166911723665093786824733526432384336807311434419335962361646479278170429168728099611054061294207113341341134090836561299588245045345917694612383853269975699194072024736101892095553720768515047279792487528914510503399634579822874457399802781679405501166994339851076284438811238153889701026768822394708854227188415310999477440386744691897182083833323094159056673002327364375027617399763111907457248472402911982939189687673382371034018296876451704850163307761302678185868744365538115342790400632845312784652550230347416461471837254395055491889746928178279203001308288884673346662674956711778789005012829864022591798375470606170028729728772596916844629437587967035081915828018615959891905375994706229791035407301953429310429767543284312905665210896393867619275456851606029274913753441677748274783529675932162929820115630618263386071870099302570668626478076533335966562646335018538649803888361215199800765196121962694395998142571875861764304687281954192313747650264857159509286198664148633668234510936218661398313221698593190578651178392096499238085923363209402231595385412295366618499474231747269828051351952623837598497926845699933946541813031074111052280869378821862179053613022191538621955549890626249528218014016545320092095390431556283369736874252435630508640844543252635648119444159221075471195081014775017527739540809159570571254953616902328936351250408337564188886522084289623121811697719890903269290603478412793204860644403274324821376527742373992089626977572554679257774206067248598110219420426358431553205388172442055092292189198084944044049508157364992118329327958317037263698478215040786917011983440255873157823065963908604224852675180825012152559381414050045165520654392558737304408615599094143521132232041719140293133091177012883819120050411516219276835312507360959484186764764725655451314583980091434513753490284147854759944912753621525883382085056335136743744636701241720037331486845474800637384169017073649829641032324227607367912371960338860589987904833040130230736479116626819610394951063521187849917340896338829953830902613179883844735073080380752104201408717032185930235051350948796777498629890098388329654403237454672147923501924691873150592087198733721633661785197755856124135216721099785364547109455630080541976540666387177348055431034132494254645922492642850672766719741508168294010144378104524045729566356581670210928207714076675516282272531000660386107964385685266017741787496323486166635144601581289436569818906840500023005749900107201426409012315438716289817375303080798886501525664900586374159463755017689496500542971220058637962115702834677129618998595700577745979008437567160449949129479506105665235093510246426462242754952069341686144605433642984602568018622317535427578482936919947927347399582038581293691568901135271772109515146861806270760734534869178821667620724504394424785746111644724907156953894342831443118504203876597724261104843493171878782816930955345082229790551376615037185220278349932720042154485624598821043039995339035960159719423901822424199503483572980665748314267660986907871976062018025078761046176340532472794385538716403374151333306555178814673762580235713274101856639968619883586300031166464847574492272643390581938914497407641193133623252767885191838821319353286512489584257790143916509480584831602175658835701368573902807644534228743044444375630051153809203751403032365833509530167006745411111714197547925245165841635648120416833188404190084184749507530107290337070317592196983838537698695100859325105722387938143402009483665401637269682567436913080497976536003645670938231274387023179956629121433784268697958820869763417199600772121544065420812888238904232542879237039203185909902335702382173279210685782838551240033417950279835766963254247189180529226789932619357869186654679293031026286111606319865002875353600913928683886231088152044757584413722048029778726626102104324217343248098774182867602393467101802231861639075011733313285984060891846777648762296385435538375234445777406198058952247169351812117884504544892309282454483708401440420619959558780921503939108820047718665007572912458515834671328928948062925009022526502772190331811440736683173157035719161068449467123240747511479229672593111949999297118983722860519561367047685178505025923879117440219248494521020407798505639501809414214909100607171589537461893207202923327525299848038635761623366060514087676354360085940687458309541820852166670393066466186732971639856624460942193005989878828808649654520813647687517095165952358800131369376880158458809162617555513612709617251915187241483744130486154171802897649187900824929866929832429325376814756499020414977550841309931378700307045066049152965529964839179722879208775369024959687180765964785173167108174485217461261823352621647792603175196212658913665922219388711186789689059693539224088526092214807507123460029652070000046745182104574445304140584535170698130486508690457456135550953313991834439648213847406421550315176311014368416180966096669180485431492870007551474690167612268871725389619513828038263007171607316304548297102842648903262175387010865650396521354244740047636418618365675614097166707558982394198699478435240733887127233501015812660397053262937428586330365971685633406696173870948565546135300137537431327750738019285179603545230591422970029067580617252884356799843239765350643721182316221023026139536035617811881935340428278910178140393905262918591203533774663097324931831743179915981702850321442167004179034562689034435316568067583928802338774559721995247190511568291520463143928569366131445728798898994172476488242635969036323122874863513451356548309829813413463322349011108519677921975600957503853685428609863020576844768799105050264208066183725217379085078579475966720794488314826765454013278329648804936466932119428032099029854372475554079547659000709403326521021961532833196675578852797497681215947538991517328174082162064642322877639904479569689304708990585732150207449356665850597865477020785269233692350456998299660379432802595916155320977668962331846209651066616692987567600949245012692511360272075155109390617070757075584101688731472102194896667310029565955258334654548074047716166087875169629251497334418531765276593386565970324872155365019027490470510821001492463947795004026371672628502362552555981365178763511494005829176082179743981719610271233617633940468728558978452193526181076004250575216405627734298298127059094658556253815860438921523997416475512800396602699338147934996016402052048784287752918381895526421167397921805351218939686977394265633744234529271871468841474790862977486361322736177675678370821747045165923798495120439755215210925949836286531373911947604149914081696892419050819306211732409151520180688895551682152244636220952492137499096055798614059772512399366182958390391899481032422665177738064843085569466369949637391072029106965795517011714952061762884652500968855410287432485717482405897144672350783846531329089612488667749023280484327690195034144472199349110576404768049193929430830829158403950399888068326406006053308484918462224180988979025966362093600876126516480194834222042323751885594918430667571884327381456248602603246510174660731348334469208600702490225410123733067017071100231701545089830320161878053330394301451537310313036142956762006530159340017402775960278539501991393103937267504552667162900243195424069743445537348724312997726042496874180489757677544890670436241480661411959295668109319961771793714182718932706695655483186006634191371685387069748274468288154847245357027094491377489865458687939670591910463301062668216650471077097471716544503797042085197597075194634650742994577978123766334658671065230892358776894638640144841157231321098277293539271948145939081940134609459232123261550375202306372575779499129322709523434918109784740374826055562489075562297457413496043387591570148546092977716998706611615712462973100558618228139967898562135529318933593320408970679560660069949086215226536402356458575401132119477614222059696121690666797532137118248517870902848210470008528189150069934486755792533194500630001341614543924077366727204337383076286008175106811024965933872775120131013103961839567957868786748115256354004282802732924554373139056550009771240188235347311944384831155587243255183089595998296697246556353831389452003365113785452287157007399162123039023124750121164559487883372586375292299774385656463148997450392129325266872967130845609462360698236567089391288327655527640848453063975833068765070612460527233997521132952045299998169025503619698549463079087320127599542868099784642152449626009409341747952783082860792975366146776186941241795632299244184158231484877580826829770211023500444566176669608551249124886770418788685505785824872244825136008592310095670544963654673332793342255678799703476966707481867439534699385078902364637329669412294883944901432511762386962333260514184025926924572085868263329048495308643514019308075994377763512984946216373615447673804224909608836765961296488043659637263687512587229474974945839139653128382545396971025721520002719608710518996072379507201014994414268504682140439177674659055586780320195050810103770716624961605849318901084158327533823562540281489722271607005919665088451766157693537745857176519721796011702661287808127334019064385288850106885676571964868903455404132174876024139487714202024575522102540830893397279836558361541051059942764147174034309649493565652290679983379103929829912596833409012935351292563688106284867034968761945749494621943258028808150757659323548172925126190011967239776014305499752248202107395237188571363958676997006821045649565413925641183709814298630089676278873297251524768670245608237095115074723472265011932324042280878939059202273016914157969626491963355239979509087247832543782808657266630685098657158885901525676367507794078394743368632017459142885235173720171736839845274955163037547585668029643267476515844111833281578403792788701454292134749059948384013286133483156865537609324260842299375513409790978857391911422476164315284845187906586879343030649741315004060354134908553907530817252615435720358008168784955036018070887150166305521715456427138714186483465460650347865050304188844031882834503477125996569374169171615968701352268756300989073624068234305729485420479562112768629843590435281341226043681426388705671230345211211824710991191812110723161344150748302932636506465990795668718999347441264327813547607763279642772131301066028964142835122697488691480231083900560618911770307639149176304344069406165983970745244684099241797964494521963252604288076207345499420668750076471167106941392061025662160059044520697283761578527834762906618220859682622410255010386539956739273221595426934753579484381199988070018383385224378028721103829925473212734557067617977709576707738321902276104042879030807459305290176026721505839525276294689963713547163191727046900856418604978023154960359477585368010203399095485072261850162684739996657163855427856794006781669088251935522136562318300789000252510585151144627762485122265492456135699204262538242049098493964804669990158253783385878867823653492129773544606983941984138279780834180986284819909365415961924648127885026622749526061597068485858378595499285448795904084765116121596183750085828922674517388028671292158104390638007147302970075389410829006641699445128700598508469291188225498763946842666431524688397294310073768681380538318683151574861822156382454515622650528904141620157559857831379232345839613786767202663161704745560695717842601476450899544643625987448192381936522346175096142602329894079054688644170194337876631675155282647521615152811885165291871582422393661976032054203855711366931805721942897606015634543806192355557143540650414304764363254651866082199443981960414878855066301593476670473875556519458113854211599788315042347577230052651913698556222890463510774526782205424211524735851057923451845546569217919524782942356661946149826950262888278606038787381506010652864254389526799846384910796709335764033284646220237911076409348214562140989685318861721678384278347433082048615179193356169181228123034739475130918460431014372580449872177936424573984349201140292540401935148165285662532046243988095926351407271081450702238554276445166854111297375044339443359239407612507240698868499973650577878976249042512979163086144851144286100892310931177979536296503028454528962929778380743032892501345427208734642103249267335029631314659181116847641869001444440202425694401783135234106904648883985402634159963093493858244262540859494238972221401140053549950778178712667486306909641439881723495610040986875342070988123887578685730498297395796225967043491341457162352864049775239597109869438547577711640011726542350647973386026614392397986684809957837343830309682696378840888017730948716938150389152115104034488025426795519628576740480201912338186508647905172037137164240829655030080429574695217369173411574721979930892442908122992910822710743209107556259836856121621956496985404114192815037193789080596542129973760791270454031396893110481084631260855425363508897368245678254639352517433505741013092004065431221729938956998058675115689622505177105107165435160911241696326582278720639616289184665322772788688585479147079338729418337312205709144246083589798235245691850233934070681908911987514913371000975715797136885220551253053977612072064925505829670765257874652323582198249759359061558642633522964257890817973481662338364365967746747141438016157484479814147942227040316504097195681632743268238819991961509569496880083225882060793248162899648449443319985540124384849668054138300856259257967370120076633545688969151893161213850892305880892630629207709891748198744091173171832092656930199433646101057632764975260209218625945320840013675396651399518554999092907017108836065758063149597883753324830002821511067880750143740515246361706855746026414991713662294206217878619778712347555579202588563672066495013068824399122807434424478606633922284741437352936946921881388465227530278650294537192450135740758471230182830148198781532068135616974024209762308373287719245220247348253514127565976308925438185124710669434253865270067676580956121923028120199361738494574240973441893146674472765052674289613006817860440968411174264482410479824161055134551483043915378511856221515375364244139759098517789743674226443505296701626360724474269955091955614369984383495913508035847823707121372031425626583488161804200159766592277380214085390754950784136976600895451498704438815053406661951830942727832288562801570457329668521822480273274465244631975103467508826465984756967937221060751099901303200387929332424292184286772810686682821202785688689886768558309575465303568876405187747900460473009568078010563683076988742809614720050846674119882952953558440942296967196749944634925908689261635093172152023932635482418632860847664062846878850717462914981788102673047620900983236878388884804167941260936334341221857434411667072989182609911448355549422676831092606586834602251571221357067314901292924282902967115373900311148748018758072290509605266614201051300673265768348657742392378310860139166666902276367738791560616351183048843298389377659462089901494903459375974679783528840225911778960469462069194364887613445141274323707267286485876843110101403172099521576126028797327705000792140731839227852847062481435012908354721006598240571526005012051860691190465555679843660849182007683069914606522589943018096237965654583352412745279113211562290202686537361554772769805863999384378045470622160254217004413429972591390647206746158678798741629554425181708864859649687570294295551791324094268957322733871743319377252591464839496473699681187476326256402172613826648562737003883410101399890826857112609261222714912292905817861119803083989225514450662558704952220188555061085265389906031769718953975103530860071705721199751982909104473892677618441191343827632127138108845889988522012229716313764144380028517626592984176097071610209057985362934342462323773280589769794850829836161134368862232777917671437670235361189963807914647634811439355388757479879720789636058631844240382080724741475591004849618386321228454400342002776492165015732520418581982017801441403941128463184051002209920261349547208241628562612113805882079009314291110903845567350273948201161613109598092453323222534259327328199738791969794237626254179946146608566910317588832764300480302494694348544347869493066637504047683302139482230378976730042723594356707325458743656173573978665605098493011107125627085286989801882058481078891648221027695893819028404161353146040455267840106980295110253417952553862924668657415335961972334637444900773816288486299688266458760091409882051952737291876796574540278569951086267297362648933435602983599732457939003070239385329771523491177893293697802392615453759820630163497992267067687791017795953313085852148975384963306860290465330699825295383417339398151671819072702491005633040213277712041651709621658529804347204328845051093732443035162329087684972968669572791397164585980168108742500639507023908561300879079657077943286227733079244386210327083248881196115744364059196634394266819813081161312748982737088710307332245308179919771220764968255253275824069130337519943156491144055446907993629749351851026483136511393330510974866851924633761230482929316031667041837112545036155702556900765208740452926060473620619081658936960852184186994993375705702259254648939723130633121108863620542896669394983524510467837422929451247658157726625180150362805828095546851656352059395604985384690380301912390234347889513057178516171538558527467604299225087160736457792231307553951054216507394447268120053489732692261597262221308047568644160646705226842990735291572096751470707434326111757824069838908181735798955723878542434414937689349358123115496384682667172254771314207719982879197895105635426824840504243867301424496950809514438396232984401376113593399388390406639406162336639427568452171327068326658488228204827642475063646544088093768494881337861737330860806881635780713940794909903637998460896745736549631162757368585923801209314469353618614569941874289688781021008779952575275854602433434290655685534624428953923229660435921029688095708757154703080429405773086093993102292301180913128299612562154076498565831240332687304414982914004072955519671974616116210964188450157244206410262194646286269423112624896201328828523523801360369929417596460023482296256973266093381286445515484933728701896636962090963980706134374950003822937237583368868520495121040324402397970894561779183138150442785150282263815315335772984684201966023281107932548656360928776157743143997813287731490386614559486544093350681406326621856123609929201620528667204489938835053889506074668140270892181931548934427262371811182386198486797887514500181349565735836049826472736920885654366269569254181646257968249200757240103549520425040659370194949227762914548918371446225993458651262910733377845549022791329931586651309882486451498193535961022583130122314417452468914945058557880996550342598006299351153819634845110658096183864960311949466717792616702165320960860649351193819095171110701699649583658331433920689904661908180123129670777380074575477468109725617309341440543513441185902005372431019948536643236344797971226169587542616754038042973382711594075598439483263811954909287356154418481989392605906417498360423447151229383462245852483393232876118719606043770521259622093618436021987054790794397227512706832849315658731346434258230596763608992050793487066199841228169792527106552747085244117848531267803565877001001383331163113314030971089716592489939636130625409552456297600425466147366807257540302255649825012133616899334442567532897844940703791602069637930721593166127730875117598065714959234997237999667394599276259027669364599518887229761800523592021473195066491850272789585300691868438965895370596976984960927079296713102962176001043149206490126370620085763946133427635770776028237214933723469254579379415600465945994725182949595560324231375253638151342459065600884907545163497385178382248111195883622378360123398512504847730860183357470172429615153315609649096978821462435772164011024526629303522182546903830960356136413113520932422535890766031952978042660455329692977455308372274880969150695728393642984262279321306559846666417033249971260380605762340750832240018917310165098180572145358283362509805251164869354581328313453988437947027655230173579346095456581141577951936914837484614075074149363514103668355696779223241864099281847919527531020158225035685782330898311123759135860893900670453537609094668137746736910623276492058101179001780440291284250640918950430141242527312854313443695319214259615658986778354183780862255896661783351212181339506928536741892345840450399140196049613744839190886858225736742089780610634377085823604753865886223538319568740794283826397032117630367845678785319566360129118027523943430728949471906913285797133292480950582664859482609762986820395010097146290218873067428509806069287051432031804872271844212284831156259119584811798490090281050575717883048549262506875967863427316682224482481703728594198921564614241889605358241859646726364945531840664225046762854699045377816960940996887928202121971114113698606628281547262544916448827694707547393809005099210105227073521515428522243707820146029829544370524836547550801961999729861593934275188253050995662070612357731220524456604520482493371924070704394904693496179189899552154838993914874877390023105258412149603657511022690643680528363288049464834676619238675777941267379375108741207976394102498364919897988115288297614335010449613740972770605002595509193875675567101674395741398222242252155403249846207074730743308859550210720760932276218444213018363872612759535360084112047489410482942248924839873360065440464886987881949598721671293392270645862306752702694484013616391252373089338555808605027133578487916580130345808616013576355192176173274946439800240473791209426215437329002620655477935205953935984555514049813688067018206204422805132812352054641616032404160728533960784636576611972139877391059405217361720589213890450567780404064819930349989343174386563395345667800220285144163160637774272820350471974325534860525783592620317142341521366202568342658652293061367879246283642164364800702185125683564292068359236062931189843416277833375053349742914118757562913510175844059893142292340754684115699030525711774883719649092044740143772567854712315993855472852542958012249599137840589978671005535592812695834027842576414423524524782676698915433823967437008826121363288854996932447103620526488717705199550012629055235867761227291763995462332560688090080730161469132549924190292405394012495191247242377458098401773140381700287594950247947764346681141469187687015414833449874988491491533963401676799631328494089461621831289169876729688022717386881372638019962377646008100765105484985757498550137333276921837882981342862316005138312169989910454443064271887301541336663932922552909508692399118662485161591151443068516591540879085001154622746026351352697718173990029823192538655143854097400015193626127504230638994936130356614937804763406455634135085729377900712993956800684290147626357448808631385789379383959558039791151388892534546584770538461418810590948946752889629680993515099207740082069656234793006890952185810993158921365124051396752348209863183650032938749569695971160305486951786027640638463989253009170328421428567192098634508805833804783795382098828909069362588671487802376620790633396920373855310282962589397796317208752770303183827878098102963396743387637878147550522762529808733558923651616767397041090168214212520337074729943663714667034688009540020972956481455370045247470050620390469156779519111318059240678398321082423832147447040766160926394459479966316542289884078867355534732472741502961177888798179317856843625393173490141312689342518743601477535683115586964383313774123454043752716371651935189434179186925724149163019552041329372644343461740411160991807960365537334142936970588945683168613556520824999134935773850459183629666923083024542934733863025250670800815017290225938860347340471259282617325573344791204468553582475244726501474083289218665029091417149424119819921177342395889163222146082649797025065167038114875196511458108480844770890470506049232027915169502278889448520651218468154461416622959570020541543957570442218813493916036012310471221715323892561253074548770221105229456727687229810269502954103606706052221034645031502303051153270090195807204971752208566326363366590373325298045140835644355824614714038046200567879452133661748446601495933698851222885156343783191884173845505642411406773444344623842358056897231206790066190972475916528296302979153115965756309946725183733170568964888381077971604998930813144791037906266106072606533177252494645077266133177229190367999609132113579164153414926151532978465141909814871704357566708150065665290780349700292757358747608578882134356617433156354732881562523725747791108404519661392309846492193089922075015084088670350299571983569852549059925047997907569287743641697100472172550768246876708195613555908117846854870724084367575492813243180251232054875682449020454659375674867455941956146630429836788155050947201925314419889814519262200230964007565327084614785516877461928042066663282547874231745599062654054163803826822505543681917698923878994238742898296923313895395283360554720160954578709535554754267722607786679579890719865671368210445295256219315054750257993806061498170082349553414826329337781885259153974239505688456526135663418524187960884785391886100277739512409833551802396599863640230802852050574461733628854606851619968014246349942558920591482746456295223918432401326528494002723367330849086746575516366264595232876467663353446325919262187692462251860496888107379001097031785991510162806046564029956909329621930950295954678883844417322096329691752521270512302429413537983685503308159142284366919432104529537778605505580374310318647967330896720252585405091415666209378800633588825031039804322595546314797198879421767626227561531159938305193119231289765169341045954074675448250392307748608333931945837812081207286843346896378975430659039501286421078105400939534938993615689616996103013277564555317628274278545321984374499573618076294837468977023336525725499588565180229446822104969435808407892329949661808412659764108645636755126715406041145795221356877875896792923326604783694008889328730412183232521545013141913002963496609029533670515074334342730014080901139570054767852983794417084030778948687299757634973672118744949191734234781151651604487014882376515145210724307477843685584574127547460255350578552222511806717766623952841865349012868086838638931679750252667883536466579209102765205529105320182261088133565328080254655366236450686000798587937275401861994773689476637989602295961310697656967449857872534678468979314049192966567446557506184099480316315844257080636284933089494229925647121468205687579666337369352691832000608699177530484213475317859347102440431068934070621887116554645550576363494839163195196199434686430022454381294584969272757468100808041724842579317038095927870824282112956814924395219717241684957176268943898168751387076899450623482115950150132269350555102025315338899770048236965526236962385522907897502877173932392411246358887681528370231654677140363518462085373627050575405449447602832978434366253826800287876610712134489079594946160575202052335066017319697670939694708252148049200734288830219771333907084295584967362536839746994028320486709483295818220424936628982300393555121292482901488501818406694298481998686576047793847329463656775162235745851976429103508827392100528431933872675831413138087678394423126619725724075295395688331012564258297679898066287112616524321184351536634749819573263675466075371304838139273092961630553254695374973923933732772559695708470444500793633049586616747182594595684972439886266591973030603769712238987104833982385410696365745353245006598292718919963994158048435831399444515038905336646377468167494902203156267210797521717774159992772705514217412871681516674578118710633149567156584411575156956981848060789305733271505434071803277694771771746813159546658535820100789872317008795671239664078200178069440486847281125960426442526392231646627407798731754959759946194811481583281128834936216107328618987907288260059800348796336850902409057887328864424663107638136166493311874344160944982830478336801654622722818998218186947400347048695369107906856127973074760113141769917409264312916107367609145176992857813706058539926015296206348085914543128583332301899316934968235482792239832579555932087509944574679345299320634982584924817498132174181737586223351864864179587299890481636252067181470061472691758374126408899091261406849685360405242206599100278313244369620207529927394797308107606834894511295382590471998235728537860601798037077506323268297645394688285529639161486002578608527533649823197169157357927589565906365583715169093345437751871889631536698064249562215145785042710329344146460467433605850805946366163794152348716851188183437444190084886541696051501199510177228955667243932025319002065180121112799529970951717599955796764971994121062715998840806374935535857157389411257776497697557510268698577777798143055161389597745008842328998531034188548669988225253793076460465555409603180326594954416285546434798119303943987477748138525661539537746790023073280521739043715729766791819915414908703942957235186031903199370625211147680687148962545381028206008026635994162786278242389484943152549245523230677271585924899986300582385850708776484991251820111769836637304183998881310183513151493090065513534139081063057929006247190088848823420393332187297688601785940746864500934107126247121988323556242865890152156358211073975492579518698059046461224599206344734195922396695121644732870720368163576478729376396353313469153732302680643834358987335039930270669106490002108213902711843214478364293543302101540906082202795297426182470986728568550452052127870532421186947609818164550746545883079051170690840769818000111265550145601412798390194495157138575751848205707090549455078551222926430365006056092564952815187850524534632044781204764125228934398050830240393768812257473913478992845730764033943318443447741177539144361051796009720278582950141206408324525348443913816786985465926737177947002212568287094610476626345291691667089174134139712776659433597614556467287238501238303468657515586484029325038048758331123751867202468871116405859298358975331439245440221442985402515656266110182971833529334545738434115057667291241989656980276527843280054150347394689013666530176236030035234751070263099933784275601372723951777283477399549474740036774297059414396168389312792991892976787722665142203161245794994169976210139513228595991805997027816188270019951790569017552196313917502280846326834816802465210745337215209449850040118380038504145252338243672509393216727768532027079892450749375644700344129610799279522981626710281085809302132232778925588761174949568989674874526241952424192651989084841000998010090603757399368043720834789226226797582206570067013219348412087511362874308867400420403551739303550868525295091538259448454094059688974264862093564965690529673304212077742800701421327686336677013692650828169015243138306296753064036644208956403680458860365093875226277918933539478022248897041045816515055484806457716680696753057338075203320653321147371377221864822486622370358236394552879572029946060937114260837433728925965105078918404702788781105598028686252214876355154419379058576615499908905529520582573547517683067761065639622256474590667544441267995165680015370675919469409922675343547206577753640426170620798274692721981266708808311855581176246576571855935513864709453024076973738871036906829616170207079138451645821578968894331455664097048893969844325142714542950987283013145422532907954733225250075324432477319181928522538730334715272014028064074590962275469786472997035922014527366317499901543811798497249530861617391977887474163612390298338711516840556461653834322774597301480876982499753160043781027682244682010812354737956998662662871191038421872683740663064828857405341443649667508294320814697855908031952028577196089400901112740026256253784937402112967070577463163042817050485634640559001626910776147290041425109606782408495690457246763738423253680313898291016904159704005555631079315982447009435683893754411552611748380131362727339307793899316565418203966216663146591652660449142034987729026170828344034107008272034898183146221474685245601386881430000968208134015197584442579712940784437639577620672804045784957774116342761227618648502984082767486234007262073344466425746882788137778728364660222374565396408431391698444760778345802326186306633958679093117822660299458161374896833688675311877117508797114850381808835097608450677593142586049650193066313661711440058964896693246327943805288832142402056767508479616305500603853547983703153946111846759251173680640990405391121558948725571881264899691641336920861063654674471176437452724460406606864894937596023291000108813628602537732937362356473663063284750575019759426574076241911356730216615252778315092617145792436963476319213145571205935376550348882125954367452776590217433725419029721556357468598577556903178974387538149854874647775033719933646068208511522688980093467858989805736092014663943849433700562449913411571512913891657069341823807827086240513598943423769523143652534807239507346728613616637016590556409558277293517378429456882632660901879413996206251609451702796308965166801494694493618687560971568204835231333160546742532386647831048541722474230240048081671413624700337557170714783478668175960601129135103974188670031302059042943666428053689331742260772988097553221761823141351077477812752508500616345200360548194442232198147922169689001200196626323931929216466594101718510495803810483061031941496787988293598952489027427528239579989928734481674234451130057283467505686435394789402653741335679586489867744387154658951201841014385892130764830145184654878089397840787613558330625796487281242170742825645092460893687712494775772464702789645134247104168292836809443801274280076936012979637365090802646022450879309265404769265586907116768051490201946271840469175793985006172704422716982882712794651879055358306641121420992727466700871216782886375855029643219750128115138123843828093056896863698041454913136301434501647076452120108014379661818065749398707327454928684557453373721882890085815817894876788134421257382518910810824375081425976502548572777876186814185127754270240498944827667840485777559874803172819072207910294447839725282472960144626763084284155863308581511842327299470243365982657943023704634792769528785450861439229169515650531813911152853323245790149538178918911560544177908474348205342136358986619679981186291058509267441750037156203086496407323424266562541567103169923304691111270793386920695892484359632291357121633573650358989568731287246030836280783886769068383377492625806923844503364213350796048459575543999748973313839244734430404366436890505792356232449839431664434479660167161333911335740222720112839511719664667124133568033513894525503859532243047918390049437691579627065146439139056059474897438225659434378348155823147271249142663357877424443384650127510899042544314360672271666419166518086198595327073787652913452610619652631254677266660480004335523778886020817926888772082905662962950751096741626826385593065255190195428863397906989735255519774494195664968275791777016296802069971532977362657470314710600002990494708137483630215685664247552209714246850096849196453096647021036421230717988169790610381982141330581697831791554367502012787690278143632002516361415190021313586620218138847482605325021023465300391185841497780483088951099606946121847456921029722257508585657374380866024761289581516011844296555482805121784247642788671607747306976296938537739853118619400054505702753729828481822285808001322084098422801142960220302462493483760666596937225950400651289490803014366013693813515914023619868639371347932165541369782995568949165600912997829083784972445350969873651654176317615046733551663038804200212924133757574437396312655234080593398520663302497134752638237567709129173382588006340023762030628810412194327796232680125075902460904037806960127200635630259702857569779505161814971542761321917405755914651694259069604834389988001435168533697618060428441619915749508060998693041177267705533851075597437286355991557641916132407250819483206462341767176870120137723648266179178272883318235416951206295348082023025145892418923631071742872904111319213047277514229779835761395573413352185438408448780023210258972484250261188342587963770320443803097972897179440882816678391048971396654744033142030875281481180080324608264735424238973150880104349553617650898969386896826206107221339578339434891098384597421609271517316736040330567765862616128058454040125079818295589115250422666897757586542265828864648091909023441110704914131056574434678261725643128797942160698336128698375926499799754154575674542770268588624596139136933541917936445855214473648146677323706380821596658787801438980777106533758485027802531208091974704196457004001592863179414159029072773836044496982419897798477286182341505430212929388831742864759316398248599123556424390403648886371373413600777236977726230341621019136431963191617238743326447938532612517733749035938936356411365281726204670533070103100109774119824574190714933940652898418210533833991814932574351816105945526550926877986865026940799121668530212656246217951455254379359421237865860275381805513863356627913900937611715026562099214947724783085307642852914396386585148262425298557556118865758732434186638402284741077414338659684668324179970949553625739673839223633324085178602294594786038274735526474928282701821509730448667732403691392911640746069949301541197941159178381712176009646949646707442657787146702214997019077040525245060956826868586621702038655356317467158073029783313008877057896847394627428867145174886307411645520235415246954017559936854163019660862779469618388445910052895155514367739621516868102059252841987256360262171059695628511862545081764778066519680233335437137745921916205257233764766323431550026558163044031646762241127840241957085902452959836293163891387101123005550425429832754241961597241985018532952150201374142502231804426007085389095824209439022877237302004867825395022170264361810095065259960207772031625139357697277554444325950955505289700171916178976704828342749243500492004040464644125594248476045164097838943167784310363071614614278007511060630901899570666542183094043029764603871575555516120711333643911046237861959910435416043124718412207616323336097498301068029261437003149069224510570036365551868228604682566833315736627045328897517115590410487743821421179751135368750742409709122776129203184323741374349429188148964557473755959623251558583767557928919665902522096154161821879578046002019250180654884942524999740384553066394111881092873563680368500858126018934116863716742386105647450572772508218565635230910279690681832714649239042277110402473565013454438783127582539360059172226902100775827649408386368260115866100230306392788003339930002638635914371549007948232326927337320143972913143503773202149842111259763549370513615361616237193861649596055918425297675107221868380968613179276454950957361458004431575254695182946005332479565110378589152411357042906251411370684026087585736328148452505162088374859946078067005040869593529348340866006983570937218903318662855960868360287967257814688746295331660352452069367915852299447144255166944918190954078579840994408308784289978259486513103486941646410421123503000062311385972760076917774099688460691054679797407953286554158810985105607467570107114759724482776688053065841523341925808504095952867976505720541894519558740960058432181730046126738990809238438064403476240700316401217173469737314350474599227487401118982512469978952516831994701740376061778398285240199119513954315096005555416532776277421381400394804652541812960803026416290683753859437035920173695960841244460501352028893216788153560796248985946855943978002138329138217051511334175237710856833305786309739620991464594826324728565298925075882387097724167745752476109002829349277732953175998778126779588371619141156911774830765521066774174618555985117327992659356634647727740341020146621480206615048982845265239488244279925819383554015544796442692543657626262920620018859985585910253074451501035274473127019043603847769483815720742635272381904390341075451952708206071845752506540527198303053326289428072115015107836586938386258826623881433849650075476034002310571376251146976255970081136653667275557269886846540217204414514137772191973121553813290912552212968111557488317056473249453605409347693023039529575657404546828038353748552827183261252423391890035519389517238803796951554135887835413117235093016219094282439566852983481447098439075141015744795109405139199438234391434675980051875188484024154471357524620248929309149647399387775845199464875680111448152384801564392821970251373942006313792199447416061351417778535388009128285060106931429489645534803963821508816312284759904004720198764404223594397451233142648534927075123379190118294268233636604617667964538657658695695096267666471479811680237915107663363472269313517274303247101291682665349365877810601529055156852036688798808782828594439763739415899457050493681633294286629187986817665753866358476227360350160322220082782559247882817012080887654803426523434100921608579704889630625314674495503458699291314934027049618898042540926868962058041153173495059930345924693134034685613535732615650006198187322471660488412036540362077214222390928593097001219410256859960341177010378397337879971866738891835574240236976824870257436185664724513739727221560222985011184255359349745470148625729816711199407559600370032243321329058298119506948722549450673133751706049845226594231639148224771316546836894251417654196140174589014335759549835346127118466572807584965179344134394971905510659622696592905901541491380082321309439315826333747444528270905838438469225679025094668940965737631861376966154033867584052949463815617092565289560314039600123314120478852396488148532928994242216476100394878722917603734571867923808918652933629549573250395877409750896872933891993811939792178233100905373858993915862197086565893231996491143479763737459542185274106774065098743157341918210204317465439354281401788198874863221927414075279370750854275049013120705487220104893252543067745860124406478722973073605936612017978197416132945530590290390001481634024181959661466411393596363773439191936311042875051744395828610884752640001202792737673801892855453350305421549505812636713755271731020281449425762173442258996619239702034852152013323610961609554313079681800910771240764307665090480032849437032142176709060577358696216838577788753474717937540993220528378854227984779749392045406599942964216538327437513944684234581761611146699344729207653319571744944216822979519405869302907213354193082093246742081178704567845899193347041168572077319318253403664464746771727172073276674979688842505058355324042069197583101988040595378200736927638837209638786803912027379288361101995775568186018625689125003616711656800997261648136479659505290416134086137301267828742160570040385540693829702848557337580107637495419483671306545678380891228217938291014736016739158944402758986115051527312504500420033612205368962428403627219008668124107478918247060225685022330936585106232965370486347854977949017159655766068632834541792280131740212055544747476677243555001971523714002204851022413890572069697807907185120839556973050053736724087390612441289052528359050417468627751559131141251151017879039484589012147498475022597676025125451637027636170587978556362641928947646566793985376025914976296217371232284225349464653048364181944754375096857248535907342414184330994080362162548144558950817559539878578106944153373248125058206917616268634415210407157007914091714341210644681691011269999989571759979073497206440465300025253528947319676078030277132673055734733897979133125045625802875543023921207221892498412103997536366838464379627327597344339110559890226445424327727954098720410653133637929362698385826171009212393126784030357262542056323506897827397570445695187324142005319262075205387683402663822051617443592110164946246182853277900963400509495667131937223891707389860978133751291842554442748034692754649015937814349260944380286848947251266622465386312040031869610907786100862228181940321098758181856634437841923806298280053239863742826924998962884290878382596051747216025114126799118484590061218856332077574534033144606482770187925132753736028694060917864896401638684530475521024056058955415369067307864875330272943142394532434905937885839445256360664265148485161792604823747514995053652198553732029477314403987383921684357059568095228635923704583747951806473327207483770176311844473220813334797355484032599808729605675314860363908050992260421266988624153885588939477127375431757268473445957518240640231521042118424049294930039859717344989828891872419308269488619228228944365825172327240584491251329639905839024193969753192667986097638952171114531821576205023343740937122633452366103791446343011168930823108669333951166751910235780376806165662680820022088369939141230076530890890258719534640934294114443867986001175790187261834527392857325881319274459612930443364792035170862362639268322339445927482108959171115738990576078562936555255692340674548410249871090468988349935549761945552379287528938997244146107688958874673430865100294589227577805807223580339519268870625124040941407282848086060279036408451489375088683957344426334786777934592973587407189983303022543777066662760774430821701973351735670134558160440374100076146612593471898127677499851690826745977742006176767516229410569593996553184278279621194172671969385016488279533278504738285624654656219765757950711027476903499663868313507471540538344285098381703320746940187878142640328747990244632714052642000396470261881806379192833950223202027553182723385014819623232623718737462244515575759017871930339726558012505437821023816676280373317348968525148535165613486913134473614327318785948970976828603390453989612725194432228857879628622269718900079699898617585674868140105656125117539594110649365327958227520119785309695844444790219576290147416639620093995892801653473013642548133284094580891082034188982126499334684141561310910348114129292570192668228219036505062700542772386474376384938675170247962283395424725240646746522956046241713302346899056405090335410018920438653967251101944772216143607923465781214508103327879431972755962426574004498446678232359001520420576475391678820191075782422350181717170428869606343419073922485162572516888283530495182514226567152510907515636460181012403633839748300121178869062186311945661501818893395926284637995008028825896978804958625861166936806160799118821666738366246497603119830010760403274612279544802190015442791410956950793891953114782948636726824773228783216557332313173617046547415377746551246936883550262611130098837638412692052804265505828898727531366553858186462182708983107424672737936047666404031702739549674672524252705593204579901888340840449283328136634808918349496756327474111760632819328192545458352485401459284600076512824009893410674146113769067679287912312170517320011014561689422554842771460740494131759533126832834726660210734031483084093166421891366135801510430904980573208566295419975352703490240950138427724525397059365887979069665218368538904770245997732685403315954237839110325100731252214342834718130583313097702825841024389061892562763121884161284085601378674986410411903125431812225843756858885070651592821940466562083496169572215746906776244425689975632906409033804481869413540603682391748458726200306725268289920056114340180753222327417743501018051685505440767809862299393549621353084399299645256104376225812710487038958829020997094698228267618102949865487477542855133749381083868064290799505575817717645380604418780068721436612973018547818379405304343595362111070603011297585709634756106323530960300422807004335614907337138885995250982802883876819649756702645419469007866795327184565642850604004376906910552279746673768173755614978677501711422538037626852303542206410792315892374092151177685398253838469002732704624951744016278748907145734672198828260207265683250396163711623565038092107355599581073663150623051062311062149848716098337519334660939864426358390041897398676865097360911354059491253970835429867845829169145777262299233188647614788561085311365402490707084253478640094427068634665127896541324811716171414050214820954163296468226529828332973862678005513406507087694802099257806485540604344596069957291121130272779056255766947013119124270415743608230785563579475982986249049663061089193715636949438751736978903973788156833371936558755879331065350632532004951099142042704064582243623749663708472624478329503112294919266234921516811479010741721700969591334982140107733643130378391040035608341637060667449595175794948031904258608466940219184542833028997676445611627515971104468901414604665149811292528233345544564320455167250507132364584776128146355750916069682284620316331314346546069720727937569145944682169054366247219990558189953959360533451997395861269562588526721192655031503886698686282709382192687733160988020712228073115114481783176357182663015483742249760029877738809554870020667554643069274762394630732439340539866910537316264725449574185640702779577762993049960051696037664562124757716474507253812552807396900855252798999548012493467960779131983891075604737404889472322557803691832094205884045672927529448483976478502031876866901590759904354038906893876073548251381256809171433376044171018491468161962021099810323929383082169035814818416627817401115265090362526296058470870277543280268234546303454498941532952931813679264155946350557327751432916504234355356724348017445019004298340725970907339494547583892085923009479337185702507634561735606987828490062566673508945568446835443082035351305033904086796091804615344096155308733500522628608125876097806339124057789292419629514906188645234125100753138474841481395277787933164783032833302469162611238680042194873119653651553795774319783286477828466689691197708372942329275942595716269909356938546468138292133051367368382176462689445662496459745785371636469178262287329613416405492758124668008836384217682354744442253494733000122006677925646355571120370495152872005893927620369480859737651759732989106370782166601460245214139781366569178156263681337539018917217869198592393817029626997133002139192212293361862109750488088338736395152615480797781866301081300122500387614620005208562246451345501723666290777264438713661428943903045690628222005881907168170856905096226513551078429614748246225706024479374980644008785095184072295322014854288306751411199849363992468426181443523708968745686258202915544745152222862502755986859957165120423290053964411085563336850139358084218692904786887974888840263794966047936152769946412323107771197806889003360737514241127029622651643507474530690046175320020025585450419064716440222314244453595959957510177289248703967019455808123441735184219600080246971240580395798877067954163536644132344716840415597810807481965859445097383161121672847006153313547687563922336170330394217615612387873955176077864516170403809937079365460020315034346046050058504264417070192232291016430863952161375240939069189465333261946536647218541665287948248359290239977655664823715607453447731729967734827407564408789791872357948317923353370735303673632332192127291683504852285006451055859601932942324972044579677598445383808623047719361108592818861886733246245800507770810431840947000650727325546105877471207940611919362083087589992413813348149882770829679695620397970812608568661186068741560745196661049068365534475201381770574773568171648483504496535062457126955348789749754561021616686048899145543700573556681700669039315726530545649049310933700628976309321720729422292566291437876089121891362058065184097381282381775317011218128327929644932451720619030169013174011374145030449351594244905499807902256006238456752066681613594069021861831128896489312235970499530193598168991448529965461464549668373171309180989836371791120001448486448371301125084314891539942027833785264337518152066896151542672805744731622662625858314068772380787563398728152398669365671216440028468390286204329861407691303740022869478194222522740817740334712605546086299563269549735199739628717755402232195776266376520537623379098247426295965692935534868022782425816235858132346256385047137410124941699799861547164446381672920427066016841509148204592909356007925170651788450038978021502462673340668778236801803049690316308431900599032621056371115324732910170804343818468706220185177793462251041675338616974652518413604451182926717905009071363199061753887766659420458851814461121596171071834194401593381611404099041210426149935031246954804462477955727458576968928745352904596247086309774633362815348134217593880773530157169203821792484139983481578886912090471000341365495828868038458299299750870957612167293381556805801006791803981547203629882028028804274723551223087657232658745143468726653054906806771162670146772285593989938929424826768244738760161158040438267445519279595591774085185951859155352680264322261934082173137080816867174901797211921497033550275117536890034202114591562707753404468457574551163672681496372057998549462483213785084050380154653521594395592104377355775360835869561186417124044866882181925076908226933372561908276353376205031159703354909043444335008144276533412043968604119347897999824905477200098491425632175154524968959961787096017564556891462513016117218640516762140259255831162146355458999271501950608638093328739468593672698306074009718769512020864043992664938864975448817254207725624292512231151205751299309022190082387812139786498388293133318119340356848923694969298286643457549262536282714089365829355632876794217327458156850262214786164828575491540925003419963249985445184696711851175127603440582768229366395516713210982766557841741819830649170358954608607813789118531819109965430940239954306823760407987997575313795120759284003733068770229645950662303415926117853353700116869818119015650029332619475137050677700877734095118177201632319977407301057151543388876435156700009389522800348556327623217854183583191450151583031646278059565878879400951732729359836988983049068367185416602285218038714102360103510692675427391886494592419138461813549786770159718127548099467020884290141661880942095203848144153725053435671721632640704740044770599523440453125025423783562971314743498512260596837989125999218343470703713839212600227574630138929811758288896901253680042722597220536902617449454403952349553700637133871893594041332655864437672053069130322931937604067512621016047023888740606330421442342851788950566397101698696683745365832044385509211029679295716591627550995452482584168492040223565872993286504915236121251145012182349011055910917386918335529665071019699098254158838687021933878524518198710297164222333225535224593247085048837976013385808897752398597911816766487853140008858019808590447930094107700112510292609244456479017281781299021975628228512005963427061747874864619632934204547732164575653708765020211425953412301001335482052367915102595320805217032193791285176524837768351958882803947753040002373500900076521338340148757789887883775662694490126366055279258980865320054200861832212235735380423814546924356736800240702335809382079239279502529026680831605882908943970629707784413465348087982268065927635533948877737265395578590158821142185741664926131655967360596461519188928021777353362618970643177144970562988568219352058754044861832889498622707845190293411651158681325378462163291053315361141819317197750554390961152624165045197517198304778575168237670122793357219647365069565140634590322517190182585339559172209838608166198763887163794977388705823983117150475322019217108534255053853279838202846771964579430219586556741030197515606882782900566001449396640554514233095457027951936567474549762475495570537863388709742433064196733696329159198574849282207521613791373189091919914994287839561131629362003144612892202300796231553643941769359924622667789138551549328361250600425605007135781371053925505081075873747146551958134115026777522986186647537155347382903904046294714643678995855933661437534686103959002200529763683961128094920371831699268085109768192038708250282146413286080041036236631959900142126992496674290487399070112893858550072090514070084764112204161054976247625738240096101872199174198919611561416689471262375899842579366513832330552102944593859707858479020571855003019610135997853285270896558200833346664019170212508404193425693111733870459928195185308979346579950581060010838908692252606036626728975047630316533360360255937204100345931920941516257792367556689425817326733971949489518850897230351759796236733963971044847825833532412781497869432100191560180739669682814174375016254052849076873657542453853202853410660515214970469272275230658896936968795888263416361207582653796345624043766494793539169843633199545262091081845636955861329655398820876349476065356043922004446320094009003737334416041856362961921298550007696644179403781954093428600068918216732601178136600180932976970187332650769808232033560772489151118720945898982057827682499056421166169813060975631649095503317677738200252473162408387970986721164459656180369906961408279245477002017250960836911412179146652150725577949937964951980367342253689561654956146486336964042763713867577899715725440124608690640269561794228775494785469713309194160789863547248459279921280720697996158298960066780408457651435159171912715240384327439526132492795502107337339297133785341548067534596072013062573008472041597851513223150316818820397764268890464454992671439159720875465400783101693990515181000182203290226831869745012868923462721264567450499802274664141415486570073428060488194382334178951396692028526975504391188731143598212234606340298372851364997731008299039705449276415681315824700172960960444323900978781266639433044087989022498821736988668764967336434925799041349155742324920467065230293900081558484507733189906106084217401235568736022899865201645124560231487826739362701857498045359407770609208632746187232533398835233778499284942403660898548213015728256407093014686438477455929336363474202110782673121594064495080449129598585564884288598414892548005626846700472103561569148998661729215641968011681180714663489939442204711855013481344427837993631723672657100007658198319987310402072768705389313464335572245485927395000417978938658765215908160008077194211670633347600347272621693423735703495170866153220068559379736250793581778359160084068128188633781853863200161547799225491309233642367296187072511373919911138543542053134393887470342307436628431228842801241645432768445674119949586929074617844117612991163066490474384582945749180879656755497270865433003476666681760421856879977871595812329011296049488950637272647192174026583824071470421495277817420609498388680057079891277003402968457852583244485786827601150042425189557022574566472967170207493132897746857736169950824025572054809672059684305373536210557487873932841074584188766888546169851306376309184557047717563446341398164731133813334106563661395773171709482179304266949332516587196053064986153073372343063046355041360942499048450929743797587350009156013526372161283362275712754553202359071606602977706406738059534732361819784669440478003087453574572363184868839927020356662185122986587240572458627863890626882538951654542756778160787628573421885097447743329225542283625124141710869643431303732143067792742855275501473975783661480849744118733099275905405306250226541502756491079432408831286751911854784625121490927028791271747963490689090011109413599096416300777625082264643170104792079811609725000827657423620577702990103949179177308943811463709088669600926832440429277500618583213748301324596782834445150142956357004401853677858101959889352904027223088194110933540363741947294894488064434279769445253313607663311504202313679955556283702918960498416090584915457379410128010281730291905743758652354891450162989168007554867800077709489522506420802840443227710040281667502096742267390289867474263785341610034700872893459916743534979786009652052483210746229149856639098580768881763177685067700078529555294653874057807030560745819323296236162166653300681183054137725395707800323754283630580921931294165789021534594201667839337484753517680556097135186897194556137395823394257164059858924523668807203389646677560842903545220678611633692185176610051984427065216438793323192603596528483133988611482042189000122839570170067309004884520314436877196521921867406685266209453075487297482662102389102781746140379435245493466141223086778186799635881877122942878999278649057863381541589238051793862290460227203137056972275920073183973301762236685790314163774540372997576029342304834596313856715590832741626096525129934494092656021968275874731399959775024180061634141225350907814932878543821052245508118645928222467278339359954224042028441952674185382477683523143734188404756305891489549689390183015659335934816293393656926710375461012588613037326296223715958525054287233121535116611939637390850497524410529661397796524817296568500263406790109792023476495109255839243795959777246161936318583616325336626474781962266139412202580681431752584893565825987300488447340193754048064686230981106243409234314785585547894930712914060327227505184707538220988499013751215213839762311379646891095063308630062340522402346779929018588700798054704323609911192507635106147587018473823415410265825388547156132140767660797025670096647177354520112868279551384583278293714146719911703921765225781638897729651023752602793657821670994035561224869681420646387814561114043351245064575242083170668507351833947060671800156365200840938552385212691758636042907420642176704513732907907457782136489671423502701643755195563876483994825132181118918900302720111494911723873648311928137055329231324932421514893739589117583226529545703922333279841107591672580376739080658974758258636479233404689082094290949284449524356995419260177713302219397896191792169157829889915777766701582978078178881823521660137934757044027732781147990602245993059269234957948680311387395826370843698783024442054512960987003490174650711636544432198148306545583064886166153161472749779956111835805797239671988220073726805664214093521639409329633135106374183488226786610548562839590800851378608897945102123096994636930232644720874267970243610740170776746746252705393943653034549240113923504421599891619817037423013664079758059114466737504183540302521472134440159089057956619292304256067808676536298765355449438020941721528154300226702143492352915327611889079933551079231746887421152124170250441244952024179347996643461603307928300330472319530125872739413836117737379329238536962633143687901963803093249578082250596825468036704003807613136158729534020545915650829196910839452374462974290633634452825745840453435587396349193310500617068052969825605237065654053708213730699617291189500316395125388362466681773880965063331177212034423113268299175916118118417488874658749964541260673139955576161724708546077268059247580225299686246671818386902493917198755005548835373548257809378980323491691343766188095900687252378506487482580595989861098452966868652085454720932579656948660041621584575135428050308295664414453575922813958445763823152911328515671944304114033516533773736194454976677047691028360742436572627660863229611902035262655745405618975466064450846371735545688816524461209824399857143940639187359602414814386122168445332747843614095570296542835676614504638212128125911405093518503256935014274120834585362250465729154554596414619128801150396009521687251721158378330365848960013862180122216329885457280191597071759515390131491071636493942715569393947592048623901321678681706191587594287881808892521589115460226163564849883802391779471131732368173572369273564917386486398040142342612401641468331607617844199950703443573993895297189064584869641920956029964712582874819559100901210256212510427345173348632087599195049886982963105544645543183392441728037026729780736788360693086673632838527576691583723287644482020496474244089847232148101239318483125510123500453955887982249168361003881515069251258869565444747941948803682188299011519040713466343763069604535670230403716378553994313050141626660084854437116499071930277999685111221479460749087537735450489908501418605234009788256411654321452892953168625626549154166437674639251260760540041852725636421379239230651115534979612228241002014528667918303126017823203914029548286646846248162471560926643484040651552075006980551204886103126988107659524249373719460122686588859563175517504669648369832172908331735091042566077553533432577312965001557888087956530356971305918277458425847694952949875078676536452694446835627132632029917233219935104793076696866035346486130457561306136409922960894310960330888194389210286324954464363572931957783750702504004981780881080287645917726132360894440823481671685349062642681355170428945110184656691043865221655114767722323716266156975386100494830999298158305243793159262674651071124114806320011656705690930704161169498971468053017602333318365279129602464329572249014467817158808541962523174304838468619115054298069719508552431653911862968253726550686741948578097469513806279924388962122841594705403833967784090784715274144537373547254982243535440213269429897021927814965020153168617413991099673915001061069474947056422139838604342869982368694861271679672565653834272473731206057034211236968905532904376806386396575933061227230439667895326976702708990295155257290139567607946734774322713044652871358640241423315203697966701986185137812356153055491474379991918170353252297933159323631972488776821502292376441979995240255170749546073494993620774526241742060001416465747366850006502096407898932187235964978116285929314037787353834309785282940011962011825769074679569494212883178444597083860127732292416767486985476728097700300688855559448404226965836474689252890042625922546023316592372502166626682752904386573295184012085844288688619587290656863893043354601403797433811613924687834983224451979213048585882845370237737977379914137568280379090651393340865846723428944334347574206226987109213637480061364375036762753330667476194411242520606337985992599777028831024298807200348564612053377376015147372777232602228244285143817291802641606823305769084416764593992821616706837704276309093736934641778938081856689833374952674365789097727031317202200406042166472719427242021598296068647782865870735312060652451150835886149397949998568489509885033744602760453841147461663740824302904889680506568066288373407099723661331732776100529254435606341317872147349954605270887749677147160810559116528358117724385999088521635870478496504751061358141592671770034667635517046752525503011492712631712953273851326081202230858258707270759910751687015243960905426706491616534366249058230294662158782188101589949559338103247929752037009958372211846302977464723080752653619922803610115260414818387463501909401645878489944938710246491322837986750798470221241886470540919612411413623037199262914501270754214075161354912056309177338644976292338085988804136926040310575879741089192547029281272962589670871835130958063292501278011273514730924506092650584094065913398738953870069526208400776171254362289793683025632151802877783048124045784569860791700950502746129014161691700507367320502142003913993302847716358998430916485712770333326456894927651224887873214614348083890786432891758472567137708936547862721857662458384961047007251820530383459886260514154522971856119592230174568319761938148754078142119242147218883256312575395455693612914563422508269990208597655377363281500577543275868454394065438205142628104560122923943552645767560040268766551623691468703083161833496343365237951158664380809000897837214176970826330954614447901865603649387053978508596918453576025353078900986666265081813542790060338735347263291218662785965158315976951642614675629842816778071160994508716924314681209304703305071665835289167559604660220364963747706754497134591439135818089472626043723325669181127297961021872783168516324832901091227224122768926008821477974301792295145198529217783390330063301126687134007420225072522406646185545244589257987148431418242093140451543777736550551148600741568707330577432864257664674549654691769240300154583537036485675582337963462370935001656321658944417296752014937792493026433293327640279938913576014286104533839700025340139277170958530457544579966820490428686797993101292320670261493224234871860346916315161901216852069687176759483344903804476787120560397779991092662735912796459645560656825249415974615889443810118152963359645428893493035521566490912673083510172985132834798240866243470345685508428725405666393928329177240234490359996523807654179436033679318487143858857915708899109051235430767066140936089442183828637445288550811211846084056837309679424524090344410512740260086127547057310603431392315034054127846079391040106164906250488445530049373641212170225306865425744266911748080361343115631032123338212834571062924296332942806424850344919981103025900449530259506013409300048667194493010739304764132021654739591444180611647500969732642779066906291693154980760178464421579219972461211909821758822819169347156993787661162116598162540367706859756352410172727634622440021438986379238983410544010140001698535967291096219151566181498602008273461522870398932368102606926632894406981411186866859467028561709140929428759968446948489292819783756531623302858499980814746579110502159035571407006607024737031557140172330253360451305110583824040684424373147222513069056124836629787698927841775908884930225886577236132285774801129462542520072120348669154710245896458643229471640784770420307320972582476425456503505563826853312848320454610395529639014399361096378012700877098114722197377328229290373688229870279995879844925945860442844839928210015300112878292688874184321004497697276371485836419678256802424403414968838226526345357103337396108316802250945982831286060044829241784806088710312483009891017586005916451320657746745461175863005329130674701156107331822191321272271732356719403346367297590867946413588951511137571182844882156590754327075860614583893906588581646523175699345597360933962913307077191121440108544339974970405972775208890965113638250622316793593528921877690870606523554820408386356526284497084877497796787185730346584149610917114933092370451644044303630194278609900280932225492332455517278554992221366123017693359671375629829446370572063716389992778460358579202023537423133312305842109208068022399478052064676797473197110573209584858846638367153071867845989462950495708480272728994096424735759255589780972850062030116275023551724360540204452170283494407069277821812836825143327288828267994024462699630333072661785979544835388765876247016955662598570334552976899376133858110903653700973438591677096622727895314605231430149783895857957925306256285430383590171032032359549236629240515798397009618072860457994485070112711634323025695767134210763305933708647752066564610460897806259352862963581238638449314242742263856779882489551357690044586069408523755024969712294118714392896204845170717761409705451481061061600553997121533859641946293524125744791124030354146790608776706871417617390569688870560065953550937332284346522736803032458703776710548098413779392269452834975716134282537316933084225471027799008278885479603475013132755013975043725741292953296411714076825775679243363730855457375433236053867208378433720408770385805697844889168081744201733285207322263876703042755714457553745282841639147613501496374896158479254043077799403673862255608987490140076197581796552178999670773929983419985882162437502299970435362396733700867977062332812192434589192674539764299193336689069863032775719202198222719564471331004998945026280691851013738483189666361543784549430680189616185703826279039286505264033048104466695813037466494341337094009689624355107277879357968393042167768618393109383776726279219488689810410676270253444624482775792357321120271670355111219731750214813336265393862857633593542988188240913738901684320274043916402759134586847924831466414492895965879035910819428910248881438806794824458618947762176319389167692500577390963834096255144818840162895057500549028971396386175339676238247198631699661117272695310199599971307142667596170941118755390256961883657549357313345769362007690415961573693227949618145827411439349320295992272223317038850502137823454203105929498810016701769662442221338938350365250807235273055778487762133309715903543117376839371493892053024680785176943315240304965395135135111083985389872720443776525941772668455514598570997045635295137797626725667490745095193868415029850226062967399866918831470311624405083598810685593770018784940343879051403016281656882572482615294790663781038955925063692132050068877377964836158481426464534386142651801517058274683940402832201680055459552715351568036472443689974530082863348020173899926263257788667558840730521644299438368460076810154441958490138072356406736896285430307101856294198694236379551558462963190175694966988825377840458366511394536681635185681847166723416842532003169174249136277207651056628774031753778992426380524133150744596440977691947048970099320266550269781901928747413493573326398421473232852318166220851942894501990813515696619398133669035471345185600310956809644027116514120211835217334059136651977275150446291293814657003787713306007582407750208339474803234179088331527638836315376303690536522502417085369527865912728917575167239213423593804739292091569913075387736240870595445470588484405851072991856724780700891945687245815233421695967743804456730711615362693516163920796049095835334759202417343488025609677002054735454857270320245830529269352182332545844898959026190190988791182835437763683739713388013331036711729790557172516335463049002897977691892728282286041907470226487372992034278793067899630929319411067716445346902619955217909702948955415618057410263107806482951903221856844857527943337963939089463403990288872752588952481400190438225454922668550859017079092285165731505378185612337558436469313358491911569158516537921388114914201010066738953380724145707315240828580539287876288812551753701603459706619871430360623577885497671553856763207582633139302130655211600084558299852872330855934577273474639630549996768511555267383389263871982599764987534418018896972566065180571553978260128048203820438578612259949118752687010007559989129709964947124190878087029028886191733235943398374991716361778345565429681299415968925948735416233707749504747933108531684263480209875979313502582338682488913810492243533538625145602448120136924171963410842477255714365181090767831882436814653116277065264005688029964609654592602748578074472567406378188868004986607215355512231340693848623725258391108216205855394888558383188798088505464772973529334865855981470594996615943104482408710913831843830122155400961308924039083136993011841219713421300625836365106430590776412660140660616818264544755373389158800030179112195839871738736294904211726208279535941548412822831659673064229905412065260838237009257743463772277115114366727483871144315740418963389215076750787395638642986364410904247028218367299945190790237979028160186022682891908026906843835428111856443222336144220913707399490282072020045398155103957197078482901809715681238630510706635870102866136810449407336346492819714083252552977225695319728197511427270115256689361420041315508903892632926988527145150563937587463162961303524055044389324954143482668004122850561005025685362950509276678810485614179784018065574376568959420603920158477885364647213094046018097710998496611610228699917059520351032686666174018340086727476814248994658158780635293686542810899053699088405469001270267709499575892613919857725218827175578880903551818759967254866346807414036281895655556609215858537400709111954295755330785512891409166431343017098945754077264928546549429479865333918988071726151554892741620943539510413468345120814706957203513520013001485237831580017497541867318628221194616579281767023602742833022274674992168438402293306816435164850837742856130740181971697501940327615100063481329189925306421003897409679023294246740609607962101970098240488383886740451760901552446756291587326264505531872559664196840240284787346595967486771992063127613775318043303281943155159777390019623664011598238524642198930362385950717700743460230002371613125498652719592041176476134836275146940940463832680982699680845058310397331595818370088091360628142928422294370432009402386764486028408601981154937488679675814150803779498709813211649488080381746795867200714235999462157838683522754190326308515330388696232237962563204897312817414985059673886975614590508781123311323009618264451731967176158297886403088173682578646319099190983072112536697598429160096029862825907564650926037349945027795278583470556145080982330023219676475925866588540397826737001955260818511555464655170376480724413252097330022080018525128715317292073123820680197590759564428092274095932575330333329473512554431681151422223907198820900415695678462556436432824386222348110317088747704082608421555988379905156514898903508297987025412182086039105033928439039771365202705090669495161866150054716174296113380616099692875933935841571948815876773842376372757794040675577906692773636722338374093394373066391829453748798223921592839500760362290246580382985291051231747346731561193361154970461802294132751380670661660666851848249902002553338291173737309745198444701578436334652466353115566698873213328490135537343892075661086554842843493265412130599880414421874040511445705577749735219986498843194849874048065697301439925511813594540532589231009797375212580299343804029527035292587977012343747021170085665927282827345195174313224640452056781321363379856726555154980469326264638037665007233930923209154514983201728167551967843894304405771269413546970547233365921894354215878189717438760906272152590538939467337665079976798312642500108233888848431911121497606770164527582459831980181015513650451194449850422926153604683374858260730029907944343549688034295419157086635308295505839300060702304481991343464082081366492776523545559977881610640689053660079284399350225915765275876261113395201585173034748085334504925534676614457644172224710921751924999824792475686669872356189490379744983066252269240580386969377036342458844794078973828058922154430961365211707969821073490921291456080557728142950954168957809520770968918765103731673208034101804207397626625115156548302519453928531486165797603417499631551062385201433030034538368929310858245141762669134326562416242111236095783690791900446615535307593467686640869388370456563206234924683402964022764527857436475625611305249291876050109719359419028005346788284209633590287311381633964516578017852181715236707118372016932810650322379676884066241640421185174633744151954964096822584937548552907298831089516432862107871567767757170736724326040494136670608921891010973328238662015003050154258505929053871352153723382405899253884145305604607209088619570473964247603892392154546278195615568225250909416496209665019980749660146401152968031395032710384855680512073158521854408254395552722631591779364037759468140915923581204110436835781076888627175815773033339405104856065228022260053565969596739501619834673509650477939710917872484281429747833754620116979747165353351367256013458045211777651258500119674776531406850596780925459673042992443307667987938744277339741004075928880781300569358461227157251340582814353121027616277167251039580150798812363492962749811921451994781041604354384133410563830083866802014057910985789124878633248809429165612231680682697487371524713654089215901806181332269249866805911711876930015688777347886793637577798306939244863583184007445153655323654833213129870204347846388401421917359586339538562084170196834220198881512790227365756872749135659556956725870923728229265789834157783489859860281063907940248328334978333287616160748165023824670081352092652538773097643178352672302132194180062170128157887946757349365616216995085234467576903646792805324574612754107676326749571163547645605675739798367400773086709584475760204952012963514194021236016794893487875172493778133368326325484307161816649934969601408472696040051482988456367065916302661772579969988911998528654475582154789355344065992631416490172896522989716298593028141368134733843484184328240346178969832741864379368470421848817611459093800698350921418552862159051075144492700459031872231734192768943773643867682438964295872091996025318880589454132074470401247039607932942571057890262014753018768363136419965292672966260717302710182118809810119339657862739012124757095865621400408227421565522629004430513017662130313392378261844212329978338552965626002648486192646050196930979661371674837038654875231719124710920412939707769974553024163340545600368049991690147129393511574451749489658530579483255098346316058194038973711765617417355828441865547376414221444823593802893239303648176560879186240639278909249804081081887426816054819400738113494369817904983413027514862246749700156717905488083980204529590992397598825949845935461260511621710870767312686931656333556859560691168502953877025534223142736250149801932923832950407928679482518074989323649012504182198361859073482744528155172594199176041543440317552587916481030618560302539835241186028804099359114613894864142328796959805749223745056476376509702399229052234139130586926600933194927077940578927313963966975557909480821652583707783093619089900126900451265175311577211408087587126563021472549457411284321154870188486520235348397467743758120633382570072143804525734167632026885201306998208244467964239971795615993864306061487665363876394440280721136591602853402204589501290773322922688441770123551116311992105447947495638302266516851426815045062107514222770040904891407468623526811507525854440251807148539832394438822146861403123991931359078588164025833544477579315684792015142040960227240025653409774237765429169497481599291046298670631750263792337446376594115450217247175687127248502843442131459252607482205114306125670157784205698269550443355381779745972713347454126876690808674937217882427227792789958031681342088963572798686035938959976814783477882386831263284333628519937707035058474592016238545987648981229112612544785434690183746392238752299602089824529479110136824770905256415674404547077248054048880857277487557571389331934709574527605656799218272708603129092196430275219981644397543222684964162051661788387345855413807781360095620563497112189064509019815565820897079170552502249555224505819582434180567752607638807856362894988696196247201572347229311015011380015303927560085403442577326836929340152019654375618182904425584934192983900103890877866134621165712856669257056518199834989720221904731938239989939580261363919321658470581368269525451608934386329303462365476605937449703689106175706730640593681026239978030940263492943963322172209746384036417529587102784832261961017794438518240992328919711123106347050488049176310320680688582685355562109722369034953920803441424713664969354993028114532370395682962403240774495665176940855443723795679096519868033978530152633675820711830125255991958813559454743983698408703220503238602813923607043605546316102967259005464877985238635096883311745672601194055844227996849424865355170776808043175685084117127735805494690228481282791975001595791364765255741396864369972172708046026086478434592035434196781265765793091273188712283711087419869634567872982239341584084830484565701077315057552633458164027595237915115487827124677012579668190601783575173649261657319175777626536331754091088896771063129220443693364186528368808811352008532841479915681981081563263323659189689784929431408278672741872642767510037148882462403864452809461698432529488523728009161892483974557796437447190386609712725998794883386011981849236806619889872622361536608386412227980396042153667445271347657901806608861513014664668751249205431085967675409947001406599454162890149977781128282715692371835258639051004325630674089665490546400472440368580581116183821049290483368076615836781392837182431326711029954077885184937953936482170489684980332615130866063001421336154365057759413989463687958936922823956414866275469831531881937364493916394177350957498120328275026186850321094907687865759075560244239496514304969276830549096204487381136942939874511556939110476005722112739279002931075250527965965826561385446935726973304572542714558171856867726446283140619263780375245108413521876975138675607528120249394584650140833819441991606867762283032919578593066772977735761278399800948262198222113053551011217130945664786130005243199477145632466171366085328056108903620377698633690235606246635665116781914633321210781307149422951786688512247426783283848426302539629281329388864061039503530575825017380106166334070221809277244558953273578527493976882840323303881857437789879114217188811543077258382860638919403101147175851184273430553315957636022900091002304324449022516669300072275805139738687862528773209858945048612597726637370189732424341553542090783388600577502163103318046397497228604509153031000901323327506194901746380467815807889893702202690598116272443699002356458416334866585752504106982970779956179230824487963847043736996702048387974859339407811262506415007619704079452219318988703587741515619253210561888092901505677768373394181277475233737667672035450419852056922140024633576197792388936922321703993093329224363633514915733004742841023724783457634850476452307526421154390952440301229334903536383271092181800476361635489797994904121710580327640433156544017107148908477774557675474648255955527711396186881698612620703412180256667293740231926826440799108470125767853716202128575036971321634727021726797013235918366971720371155994577500460533141470787769400408442789482687957823531824677804871639635795944816296060883205956279263608999622966147847944012960770396522173364765243602697453258149407130554805380270582309068520809103790235345999971088229962840277384666912281691974396356398119234555255834003878831518318148468092011194425643429448039883332556056687090359624866945591366888322985406214197664103255758383033771703073828168973474094117720648952817680673410882687387984159762000992804662159817371319853411093486364124503764685792630879494957570150530782583610959119361988850141628530853756971656453658208929021865075164059494767445904304542163082339463178856880687836478881807710646791370546407627067066330997289759730690251034021833481569068909755468327217923155106622189150195151927355741085389075001275574695601006608984440237535215837444427034215208545947585906604246428561629274279004772435326025753096369553464793720460174140808604299016385205991991151641789052778389548165133200408048394135498648869621615023509740532577227948783077134359441115229005085573401315525192313222725736446949996763845071460360996934110249540737000131730374303545874634299841080331534341984089766007355925022970998342911277728134326385396982152870548025919417486449086732371302534020541879633093507139895848260277423382707589639763613762004817076497294244092250683476636695598648768256458361384756418158363920955239845111592165184292403761699111988070074559957492738119758051991356644638778433180041749405755680445073227519414747885761326720012260833054747553509812497798834534584180697659661899127201796171993108329596892829915555927789053451066027286738749074458155909279859009936757275140246899424327372592272063109484358964875757359936441057431059024098550179740142733453897636531985920704756186068504576549388975438331943359387773625399487028799292699300007509908863146202674543569080353338991284484230672375484318772311425343714147952515223417417610562093014559083373413415846275036347902229934428706639107279133698342102850837395435925708579607298058382546715872872700696428349241361490088439280776120574770700775323936333086426212979035613684879656166555173335399822222030699773170418331475928432860485465545327476558944162319358965960724696030953972518156993787356878192696849502650764534402651546770312336793596241419989947785495972212770333558447397539729358599569223236988266917112430164349410999956357918061424363584842880952274288330218906028880307786195063705367244596117908590205544155376501057265442912231702741279255287820390349277983872131796226194210448337105970216377473999627072302561411456806236525041725695237751383619130224147980150688706414582895041827876374963666692305976984974790936889645044663860900541722550444314012260162395979740337531393176619422238171835642071212728108605943178702719780472117900398993882230836557466553688895044108695779629046022289669620936671880554281751739531036060258312513470420058651254043819419275355202163449278792256642975983629617048603201630394264760660491666953256456595449049136927135782071329186583058130268259050744796750031156422060247947519929058975625230132206507439635645929067533484567720159040978847099109321147447822771308701382563485599955078251736869477785686772542503740439767655912878253749474782990602397779358682863969836493603383625902537107540266754189993645095453029461448108466640329821752626178896663224378336766340009652517635069238682142882589899774128701274372352468149080021107150223448470361559321904304591252192070875237127740385694134972457963297590163080704902947899902936860510965454724299549544802214675318319226183046269095464507506803440809811984180921536250303764314419598181710976042406694959419505223415193550241578654440882394850817162924753248005512086605824771059210492224046628359438731665100091767218495059519410537539414057452251240223278690239185308029993616656388543636069368018668911660406846771879248489054281892231100849596843899167306884781522966791731496225364449596507333405453930050848542768177899861165335084875185603894929345562322251883170650990151700158304766308344408074076202240286825754808255610614618764788721610303744905637257396008947321944188860077976179683675712644477754334020276021837314814064445845865661207900522822994432572442952334391221282586345248075519696996999177897540513507585544321303172142950319574590905606539409219523342733338242327006581133069005573549032773468160537437081329125638036494375424417463356270076363932738048766306438588059763983051428388965850802460265739506571333589128733329898320242992277722404615426179983450928716951202296058777309979306220047766498168246803696618151201754301252029566054600589665959367149028951265770460029955912895187374392070390764093157873346089327437115975099889484332158030559511060652385430469192600178275956404208278390937057085110302691876604976635950788571085897593528750687743984170992117399363479260704332855411711101615268173028746133431055138935758709122548175207832784744659994176482669280510066895086495144069713155454572348368899470030680747907137886182800602543985830588777569929825216303936806024716247043338777001553047254800499881785337869271443536624341652183276102490486047599200141445406647808594392346339087738722650208180962990421607651570208530773421020510766282876169370899317029596917841518004437180604119128158808271448734387398001259463871370959822369226318466882659796687989914407607670387803153399407716872369272738738649861613827558464661488542547781637431624234088354688258057558033311971514731543719127070598954152054339723437232244656754747846741576975587061559887108907427254631515812123322324879309992935542696029747795261717103363658331460434677311251026892020460469865334071569785380057066654677275816546837031825923611251071468736197725858225791632879813257431782884348285576313173885812594111333168113709968381828718659143912159233736847585258600122890518829118780030460145065408439469331138318804429107882914859610564755632485484033894583414273587396512821361944150123379246817025472174347380125532041253268376604359057911706673451113241575141340898466022736024947032969653555624742130583348670949579495776811627926370740156935397188494649851533654630272578349119796283111258229563721980149858685911346745561860463418327742351506716709324106374907798159379258694904752674958696906366326677822009456551256072044288551875047459189901403079990094471824018697415124803305291700953395291556378622259101249256939948603702366223450744119705628059034207598676707281678334707093613855458497981198420839176563415307940015054642334468295845277912139869928950987074389128266270163987855124086664554334226665376885414185130917203314414714219981459775448158775555594444240623061880482121930277474877535878002675654621592871563975050815606247276590406082553716579684901059412055976544476591993604775767599797541051374050880288321728858292124023889245267658346350781399491638102662831596643686209401008457787133347028121153883987711148416335605504670310853114805232316868124449082374242300464856285763732355433543079906111231048813419031422578612207505138033416387832367614356874539381184815909274397567176342842066271664163509594008116988787151371311911573095477473361633787600813079513024407222335917641215544867593372860369073924538093087454970696756946795620646934504808394325124937698423117200697064840704029206837791255447842644084872480640389931452074181273235226961027225880303368389657020018310951160639638852000728155318271375555047293655866299339509702775752409932903885763674573686062224117697692385156000899853080446920520963235772675718144721351166092529965196402536041548745478688519134414037090787771275423131926933197003215423546128838472898448491548695512230330426042023798066373735175234207762069989771806218142447025627886822213736078692342851564729285560829699035359660342059615027699433927704068262256910957269503489573239331872701188093005195693686383425359076152396558268760025123014619221057518014844697414244202923329467225455795184894391516947699012806033829281009249183451909932192312828980589912434921142889100045724507433346568530215988347628896310187343641778546995917301145328760853637925765836027590312581703678961449546597739558042431395294398329632504048415873644807144788331210448495795564362943954918480311695425955153125541945809185708947458456560306497488898945273700752695834160481740125262808749735418980355085184617077187002012479790594588432965518731476038821391006111846517973548932777833282817721644403382973690263673084646399803052949512853569479428347366525697172540375559312893537619955348654869070361022470384558865030217067649497181684009955760557590370436116866306076385877630529565756989512833540472488351580669687369451967268420317474113423337780092129416734601637918860248138623872976901035742453292244133904521767089978824517118832928559092493152630121267250624974917426736824263461846984697206890014274675538079252087245685934828216851264119754778729792553145584181390503555395181653164456142483279249597946463404310854528374219922632158598648319009558244330715957767414771897017391031768157790582734365113719540120909651451083226437500996158609409570617919618846854827547821873373096517051784673085057070941443051930753136183527253352864308604599115444079217171292620428045867578473048139739363002670031420395756433826969765388650901622837802725279809557692530204220878795535659517050037925846569971606865631028657301121041125707314298176715899721694782653936666355308446792437244082478449609470729351966180368498926935927168293464742177202026710549007292127601932782671733991009986554108603753941258327019415384103993300282564493233339097429891566151842750533110238251731662774227293639396492481475751435305972739097894188585116903850064657016066112680175130466129218249979878930992368932145092487147831200524523013372048810892597194982392522769131460429128457296742211420819852545052222329555917623519145526847248289631941376867873374925227460772039128397484747684406462095324219590941785691475505300937535744725731117972201647447076144485068898101519509865031113202869503556597282968135639499786693547744178098787876164846224964656635519587424093415997055963630164719627489212170626767964010308349812893967363764686007403970714711941661550637171084964565975606657206644528401691633883826343783987857278668918490674522465615617511950949349378518439947635646307201294639539945799156125173527431491685634675319702187289324787683715169305938885558303171789327220142003647954382219296643097497682998865649977251535579005510889645690845724027114612814097870427270840259949659459456712804747058482310727874595520073330348777363600655111309201301297497843009319131428254942372790374757713541302414760044143236629980897587984859187625405831179825563064872582077019221554101845756179511204986516201400275622168602717092747591075722859761452016152571393567400794017216270725309282525801130121604679990462839646736348248122381061718594246123050158026734869495967670110557500757349683243035821973216741100916012447342238838946685797409295792553595179845181821817855605230735005179605821397497647238084525178058599594658525854157402418246161764845921653970552862214595887619021272804514075122636707740218349344789769124930693204185343057234886466594246827509587444572045463976444835004593953057824497084653670934953709082143915593686349867536390499111763154942750189965347437183927035245348517054819610245838744346633680431781907261984531455138236138263343053876175272016102023605892031892998571134107458281938067754659984694896663008430827868281027586894444660770171161500951977854746364471882717683147569605333614085032367395174758062333490235579276310203841199465036342080658429497427417480642794060570689449783784313386817747391778160560129086219057581895106784255686059099107104505931132985078873375895472875670632918132943682607665986875189080336774323532573341686694606429202054507500649993892800510754735541885661212465904125958801160671616306910769075592501081823329360248639639430956538251124455640538105009426479662092298325345700894160412582781606883973687933300351643284987174421112712634805655384345703241544852989833105867910622584373668266677101360487827604428677499752894639066238047275107762574926644457253203114843659671892161774752132776563524873075860032904206255280739352347165561283909518238808310350056590798815254270867868232379103435624229066894043633532630909656314005841858969721960850860443775568857506103939379843859930897198419782690021538148089901673538952167835640417395070136510890728711293666598147670865147432612595882097178143258061983080603281036060887016833014472017990242417606691729621684293000298775905800037755588500555095740790411433835121989809459907834852735165604515635001016608124914699951321582289373892811583999680138124088127610741901776993592209610588896939662824064830089931136925046386286104256164259396693598527466536000086529487029290901856244754189190618576554566643068116302317251830902526249508949592840455693152065792124503461380751140769800064823497840541926850407001284094807565237350953687558429890694201490903286499812043211489956511745295563157140093893069720410085237082943355113456404593783082094025169198133652647035216810801618407176135978933187749593082374954666991175573684946835456068323591444045541894009978762392430631339697014464136039951957487438587169697251031137248001477623453482072210295924795779636144098540580732735719266725624296088246053917362738188301071199518426258399174789162063381027511529239789634093759380275872067040754201122912106359881588360483131719291328443096859995140396486000077944704657098687724720210094094654178491381176408092576557974631624681718303565429167518623981097819822044660257622872774815893713324220562149270147533469895170791845911420740900239993007816180443412159986023513177538946082507700911247589539092551099789151039563987427411596775120860689362370339971765913489312648048308388292477382769332185115432880169432241857616976441179546596587159207699999048216692956992935831710500520940548365879569799037205989417295573567196535819086604613947316635206473789183964605212331108214244934167669411743937352417044803923410648038655697945731337504904349070493328233622683411767409117025181185411459274156379934695860276746136956147133261888501230408532849492768464953036583804190312347691358652556767569012952301972376702043562599285990779852974678723654443092562629319514756239152715261565620109403833917914955537299884990644095889051384648798606338663645740522536842303193093680664535320733008558704064222425444455765812521672946215553139155055649878341230087718377831462623560992532717639110602879490509447521401405105247175322776885520405933818394109844905200639931392789027134339502936958511069565733320954175780798812467790657526940448937832558952559703676792429394521424304261535330224552927078751645424264039619915369959312957605949287336359832929004556598014826767657918072702778470805228402698352963163371020186754414064524726837887594453578645356501248352485579332462814151362944697935577767463038475871132588479194911010164214510914375313288956904859175545003566815967706993123791749892178745093827575647709071604794922445254124318719965023945517852485190670869675618889538794786195773368933429261203012712176926656411814521976634909134575161427244735974136257702224605789195789448341016444491719530321471666488873763716086412654988104453384691212605264246162096439916915551788718187763649564462763012907064381594160946377731601590742175910072252672245330191046687193204889728388075186777830768029019057770291855606228429878271023599251031192421260318928088173667656950246294823910221634987240357551439422549669997097806383339941794004444918168475607031259746335111467219473419507854819458110690633821130136247658081731490458276197479108632494822604629928883014928651767509671878563602458542195160274188234275331084302482696623660566293566434450106306699951842795539114751724541216624447012712724486910424454298315149535671995936648998093145588243158098291332931502805676123621454271142836064848867714990157364768230552903609759104881783237251998662145516623706403933377556899771322336307852579021424222408100762981588772138646773732339240850073130486662763212868125537438738788003634687912571892366220222787712146499390132882545838717126462292839267675639806128994696994310975039392772131641105211641152700757645855318908535813823474096337229129273818950202204952921823607662027124104055808977441745121775468429501893787055844676086894217323642968993184259437030330458907446261054846897206569827635800919952357632088024491269391806634941775163914980248383262839075265605444645772895511064226465962736374421931426677744381655302103194481071049821278127211523665806222237414627698671962316645051788979922346462548981593337378959878971947986221196756423755858768364125912270086563588369301647537030400922218549262424688725721585231632815853232132993031942271940104133317067853571877174191164085918288553691737512078046812743098636410183111318680078993839469356407979566146407874556251994858867131613536181462993167701925364756011642547493746013016301868620966904436627526391436846955607759974924106747494225712047566505845895820641075519837149703528619389966668960280294706887613892827511928570583002850044815919140325576436314499952391538220904469982962649294495933454359328823968039942155065614205301165545003782028673563932966389300907336529616482203592963529840483129702505525667210270036468872500039049647947575926215043966053054940372223827641529910288500747203998046459140513003911940721338633816987976984381933427790979103970094461195906021312493344467062920815907834984848573081545030333607664622151160710965400748386731254940933462129027062219438945492465332909214732168406763080326159105054672776370524998940104055028484663920400972994821659859388952984025208915370989047211118073852333355008973091417147860881737714805506177768961553185758967787765523952268448364850775182225845543511783061562131722477336313732577374024463529169372909634275195737576311674398042211788200549488655036189282182361665666102308853916659221216480297738317910542240659595799256566772378963674425399664281355313676854641443288879892156210625386847113495505106560191313693509568836382731308114663883932734110472183520654514823586807231194249462581443504943525913283130862533359329441512553696595896060787421789382715005693158761518565710852274822269102607940523110984646660007990431893373990528309028706304026052173073569574689639221047776996157157695780341812571187238428271292641100185877855415566072643988914650935394585070802108039625040356983510752472985456199767825057903739523067375105641328262668294684694438322635550852446391338608121482064532579237488844283228528854093840021772915613912153108223423295001691713686002797536806065007934428010384847989956189415514430705152064397961294865067393583306469179534205194873918777669216954145021567780508022587754788654576160321964312932625420823386451837888650975959055587245887637373026994388906242869688343799495400065400601311367508846797547026835693387371646228862464054074259059501840383091790374651028542021283894540664348518432749816395656423734292940950360646559653175926515492168127437274816523960638000062836749629695563125314498077074312865296895582197057360788048478996606700337267567645620633818095868249565117456609995854849071830126716843837901082220592226803469896515921763036570949564360728995825499250285479129468165690169170860476682411575866933521029180980194470613660426648452707864313091763222759053671360046969287801511115166470592117604868235965685762816044431779329815826493014782291504680439155474700895105401341002860647259922664128040246845007563491173017145683303242988950605979574937064478358432612085506121920134442169876880471681452766406758999083042481339739528515074072888593353933926556144231173003098678865048943761060180640697188926506318976625622791133214037411321866423969890440061783024582801962021464762632256401711744584340273297446379711499048609581748732228337708907921990549521314527333976396527900443881253829725073732740161672558827334895447452407173451548025787744098369710052197476600435763862393649737066800115355694072162640785468626693541130810746319518393209619799555443276680130023023111845510641997849468194582103366510289920521838718528691497178520083531660338592919601678456958394713124794631400107790719823173441907762325478570520933088147599004222046690701954433682300063795389589030681205882661157037317310583864132692854767906869105309646267212365597479443195051400874486523875963417286857475830307272194975269236887618023883405434163712352842931957316327664915253564280706291461621113147361041762939373509177939130876894378366408789624061278090818462034312954795431386457373070783407087369777412504680540306547817989997019395325827004465875635405081318916969073957630654941536307245951964210277321242513592475324915488054199829278927038408182233715271698905645378972212307258338526815986866127180309539422243756963080434642345520182979269051780700069196795933813923673332688070043235371741846706438280263931764743174731470551477680706388539674718734681650431633253774425364875720223219249511591451343350707138155174245163485445830741563297829956067768157371972008802448594761097081037069239153140317362486177255823551960134806707773357619333926437311945569819504118618881358521548022843393979902120404276054001613679724539389673999373411722149372170552843156894395558734496265819086323639053372528723190005848311471546952258188007123158610724162219244661753940587335685207667425420578618989820015552932464128388593493643277724928226964321695220006388673939786573854929822380620971564421742309595408941662159499722965554983623843339736880028298934372760397665610957284676904449419001232453009807381960304584167602263955954893834392586121900774510403966073612558017636236279294000142451623103473756841740381349221292714159057588707037394573199276340047074927201338047433087176614608181556931567335464769240457130060466476789648624526002003714984350138946755221063844288053453733877126674491371433534217068464988332270196446813117730376174565030360122076786531535298363277349654419190340132403264944309392695651720165603298240187115371445536675149923957994738624400833957640111159136621502119152766833529806981813869707204836563247632857085411362468885663323659279334518469500177972044731992620927385859546565880666501789326389512170131280741019706672036141295330085122445397633871978964038538998881667848192815316693361952496647745907351220723918486255133057597269048650471467499910260480661701844049040743057909464342360013151373806006908564592027023309287945721487892392420069468329705141179898030275694241676975912743031446154614330993117618332453944751810693734223508532752564671928366898137391189401238231239916105556536055592988383196529906864520779506900417971712408375464105285132389038970607701845893719738947589236705115525155483466991739411691118151659295362962666726465449046307037367848834858763885224339343321357725891968096070469177221628915254965853760324692393542336474086945501183484815492002619960672639051859945486131655295987801199397268934504301904891845302800047589232891860872752406300754992089365669034182342532555574389903499835073914945342505996427127535694381958758056718322294363622709438751501361387015694846400770888248853669374710194097849693443918422070445332253383079229084608117162697672443325746631280103366032291756564824121173133618255687853820295941321435145656469350607723986708827819769865472271088458258713717378159405462561205850860145814713848092150352325161206661585391392470601466503995812616718489014795113426338173516010416106794304258709210532338528916509709210224543743691279109983418899398713664689075842424067083972100154271194221879699268010418976885664544840661639825198419120025493153746932969758708253854030317060832969134469378886457605330963262523305731538218677111897176940154066383923585654534332006712271587940922942994238311574144859755214686900877514507635630804137896467273835612860937977155526566572842955044356174472576701956828093788143212429661457736742732221686793042517800984611495576967890464082966681809324933358540131164207302079060775608952993988292170529861343573783269054785399889847608366445091226339797653707109897335680307409209964034827597455409796557033945136382673232589656819297945227644353775370910879618702948594693906674075860165437207336955546052403066012262248041822325634472528781885521611929374610412535123216041709862607331334944601438762364072026721107023413756638112733297793414475021626708924587979804036773946045779270954112795513412741237778664765881680462340328900501203585307887230238653149893398113193451112524615926654302174166001519640717891522994264307928639170491555485676733162575001628095235567071744045412886967464827397256291290616725424875440160283224573360772481692024262839060784436235618531811941977593501895511948125248324009061499535535504673455943394835669214216256853167227172732175148962031223420938570741683443846426621833325745642629451674218540910275886301823274707668347070898585560383503438976020222857068802980566455577920957436379837061636483572125315031615123786711304567142357779858117626161677940845114502367185044149307447156819594957938125254532104496224664760894761318867223774336301841505872853450375376122468959921958271431129525449059930498905969223590770694561856439985950930698344338858821305643436123296520381531968109379790860025044071178525973615522819926045849114843308932951603993974660362919118389332138832761219712627955605048585361722075479578734060183238873379094794062664456805166554117639792213354171694404249845219532158066580768235532255965304702821242131592249109133656813795201965739652747473928219631595953362234046484738072364408265016491297579572200291868776487437797175842992380185194568655765528461301512619603327332650577104558628529930563316327474554441355651128788494963687270159903810142579315847529057636414254209599990821110357801173377184256321229928873498096010491610747606199616107429511331715758339288368312632443788694224118806294931681168544406939802514910785457596451217775723931479478331164840810290779706796451657531533295183751877984092736407309164376198038710920864785182739581846481236402592622327492272571636761679519194824511454399452699546231428555919799276689853538476797426459039866511059118824456491152861502702857371631291184113125191374649589913653646249608987238656793004723778339612163951469727656195964455896391983851640058592691073053752231955655327446034806714033808167687278422537339724714487188382566663726466209609867282367564657737372410119764572287039037977048206618243610611775526170757793143565679070925311775093092463738132705881229202060461311936675937444536025426384026429945416482637402703455820671647081638463475242151944618364444790715369244361114947741271195376069168443178796972897954315924262941480204008226449186477036944325714960342104956719136244371962377059616880804816990727253182174241591076372787588671201055587818477171391728759544181908365336257993505428645082093580741785235299888615934795574834437633915662541112745366115533154570740478085552601260159536517688652000672930312585324684983318413716080906482942601593018832846181046803461575558136550756587381793796561232621035719223228808374375294460464158407311606199431447644881462674437454589462215417163480488014448089914541828979107605769033586845095329917966649292917314628687452257128441419010237338440149394039878925004023473222584769996220165056116735608383547705751369376994486463666419037489241726178893174522716236105903774804966952908232359162837749067090689289860584030023150976303147460963165917739182758794418609205157668891407209617469161576109055520997855175080480252266914891378491974203973816289864544719839024787735468286118554184649696054550000571217212051329308722916927903807349305643566804559876027762750604567715001414572981928230945609913520821343288589182446907618436105119038995180500762846925524333445798761644884656957199814805716046517119044555592615954833174268044295919718821545016557657991002052597627683009142977150286215178790112190587398803329247693240508067089324899787085955251735329125551385530255892869757223476279143749494401317051206763538542191246708400536643751896757789798497200675278062297988224088951014344979589899182821468236942058924816435498172391153149974318331590357118559441962028861134805266116167196829019149022667873000208068750063421907858297044580084940652277918834692937036222130418506378317957745036806399085226281275038071627415022638555814554465775257057675839204129661490241291047281837782717161251002131115663389101872279293938163887493020903877365044890756782457332547127018149904574114500800258639307887095742295042199226282589615713624077821183146776783978298674959115083240303694806162456460556398009830679510444962852278497860960084294929864606362282829297551014172791380819832021867380346204264565541309436119083599171182567954590765852709593224462672252279393069302703064947832181084667807011021804312111207819247508003701562149739781336720520109680230188000787034320055236438762392065751154504001400788096532652652522413863835111206243641426406387299597145026206609532257835894759938568874043133260687321084643436610115930852118619455003190067834724099491995960487529845806335685338998643832793102126972988423382553607749441496182451403832138017490971411513693160108980024404525294145055320762831974191094000732241089487622944698391927556707475587411609776757826616899037403842820060472276039043537117726281427983182841196423898684833406642605323418738930177474670586510039639663573844363482029220851746973163837798458409816859560310510768916304684331289811203437938849023992159925168831943156334868107653051312985796962594262756724807150795450243173913917232241610661580837230344012250166289829357062303329293595303329397733024564667979668786523293293923869052181300860719604765760882856894939121348589115986019597848567797986217858082982914590030426215572504734098429672687928064869509766076678891692219095890809754775742460149305142839329884318835696079263132190560087713107344146553664371107640432733037811206143644496580867422137785189485508361183283004011092169767367913244571874872050285016865787831805728621498623466896335540274387086900261890417431319030486032053161603472388645116205792775665862044855908187821913540592755444898936605346057671446566660133369323774976310894629323539502624983219358709364414112074462486150076716581231144480215651195195220348773606933328774645430379051995559462781938028291864838892158336148479496427412297355342657202435865825972852400797644045291569624062469818133273953807651422662937378384885755601639896982491442644256453787486384417104646362995893001655870423625346083397532507200601748209962734383345557668029390508354471474544983312604979915765270277630184890410446038044093667272742569643715360075754845178944605097770740084738454777338215592867883320684176669632382182707479913298040046875445073001888605065016795709399359768784794953866493924893924836925891918807779913315482919228897708448632140906501016462758784476273940126977320980257969655980790986197058297273269780931142417921338992545377001344189724371638467335886450758994789983098172606085291683797818717681446617318864485216060667837251826986229399287539749183762332800766820111983954680012193524436366249245807561765431147158562459040290824388571457882705650636006016328221764196046589844954800567723121668607075204772408476595080167808883552951049318516104213279829947996506321106236707726732965200257709957032806969435375036939730172060607860639534227796296516666337612840942903363685141786494517454392514265036166485352754499815666820645301993235543761568339265061754931764720160784356039645897772595387840422578036059809536189288357166455936074342705779536074689394734481316271857134876032642881177827171214685746927481383896973957001137085507558553641986610058826866612309049880752911378536430405633692523467611339289451561261604603791984670925805469539929564289263286409478284540465692286892659713820952994314260716338571410805626357507729504009219027262846901237814378562628539823683232061632135708784875568209790819554122700411845921185303778280444476664104604034132162910832742901215526776366496754208791699891844614265402969189643858063655121302991327704989912769110002891563285169428269221633364413512123488275111574109611886434096303858931067317752707399759576982244667388704123128854624897722366912702876222555358197272159989596975607829698826566580610631967569844064817258010329224894351083033291228216902997939367592996703534082707502252459488810509324832761649751299971054852249821530991838669952669659567832402577282995469351723902533199140423224952852493778783018793577456841232801654779322175770940204642159127516463574369245661856664140603218466089881628498515396794662336249164429728209965919378993981669923934416406040984803555446569191325312269948455940928798035964849063640884976279705916433858718767617000281748414558977675700047670128481859165608359140223665833376915845473326615318241476546094903481912634510717648362941114173562876247657838933938884436836400793047760219469181526085272281115037840645933937430008375600618563173101189750965500172692517681651816066843510975631540422939905393694638041821339077769377502619986854055008544488782982838504443319693544749078853597223349649785786877551019991413842300936819084625030467177494254874587440972396051978290167160879535581736259978394910535380492457193141274075715970236064450103965366104026764541845032304682584425515762819699467366991056570111500722106593542078337752016089202185370862818684418444284768256372568502512621556143877521979995722184948106261064141330986641431137330411277802976201082363780629424401237666379930812545678747982192136061917317732914976851395509638199309739722619417079348333859957199028545883453153573557772067496342142234461105841154079469092944620208924131958791014387275645660631099888865545116656627169527118318744308332239919024670721527237828720769945620066501209830148179231710334980067334639204979427677193955267031304384457382329339598472823624474507794655758538614836559415530282573494861025756681264482967238929147780671756978279534737566963748718478843150759588345330992513385727915891864862589929305191546290373747334849306676880117250443428220494398505015929788598398427925711600447467485596678575072172503237792630972975448500039390963147315738013084130271434100348885782100652674871959766083358100097820781607756810813589419536170538933166167895805403918491692854713154689213509147108468959460942400727224781190122450742898306886581056119795085045718664757978394462901634863893054298183346102035478279359499360570752195851915215740499843731656173730165966656282474075807310945184964436767246801589606079228716848604859982825666113914678624745764879002765425397882133733823586528283787609688328835177608594471591801698558915354156495180560785503786914186706010024894195268762922191149400684019357919825246673855613134023214889558233116036583637501143283251142630907322346618367054127363642781778080420524867881631753858126131060061649049110612566779777192117200139918968166306496950823296689366507227539314911857084623427827522292236291361912937051659588311377451680256632792062855548674866661601213928259244588630669420544140713112754454534678724418247431821572057709845547563991285639411075230675898336510273979236815774727008122164091514444875927825926823114536700399855212476662626800401862259737781168025744973188181466668859384347756755272834704365290465181212522157004589788983898784275905121043263490660962053184129746424379722198200453034338708206391920038547465428760387486180069796531787609473081766206620899664688617420587653080555539307623832811221699026048722248864637478223748569306217719446118757481750217544240949086168650180022377429420541281088269613819360000677830007493268509910435314810613295012342448688868855896422349607903724421609788454325740448693292374246936861072145740267218256186209080967851316578577346721185648743385788106492673591471282811357069568733310941103558206944656249097267703232066942532817819549872466594113605263897323041075963431227453270739009690300701886168674950342746530743848243812578241286020516149116899147172901611772277697572982648638194198638909460285719551374360724288494194665642275410870610927187060148152181081630062223009297571262299630204015300174638979328759907357543033773644489228628711744239067505194810525503406515820356231764630587820641579671425416181328388104059591833311355835363641432180604018711028982831694459582394635853922574592632023843132179730905832070554566650453097148097682599313085699582602593383015060013233212550935910655258385625439753577598134889366292249700681590902870207074789645412873591633390887721292368996101589101496874750054214551979119614198065834136544803382645293816280607697214191182270441446714442338358507999773807488829078488569321890650913375247481042071274163807839559681295595021998341777013756555253082346435981667483700250432715028893423987918911623187458764022627885141141926966709925599663685706062093805386779906961602884103745781043709846524296801912000188608430882877525202207102902538271087043435164033649786431957183499804822331053898382172650100588130030414197629651752280090958114776874877894391766937400566597598408232212403327763207080673580493302506944065876399072831872762370501099867312312876726830885398839548205907161548391687548014729289297001011007929252594711884545027929404458862321451632929588377481990462480881819766978782376714664542568559559528417315038858996657118014126969886657742575435758345865505851336864936814950457529404786208138014606423313673105731325370170462792968524276758223183209218750711417109999891235170949747863403051528727855774777508878984896778566771769677365469282610366248012194336421238768620582738235163526358987392520590821012234377922201689157219729869819923000550677152816056518318674762981448606530175954465085185766128646311122312411193868980551418946799829288455509993845490511294951724914458202550001385931302651131134559324348773449640616974367596096105737103448380762841810424539096368234219682060672701382828827831515246462691364865633306677255870267078082818124434226527561795921327617231307117365768707623254140171487506079978305018065186213765001823916402694922528102960114077346278768007192065959481013031679250523290690795755678443249606225805287102808757020474151311182620973438102886289120406937782325953927146816567223756554658173222025467679997391187438651910824324634802565081253879591784893012545725477314476114723571699142488050780359803104954702054374326000923832311321786439809575405851837196597621550249376581125569424593942797050202413941237182410247092544588216612937789313141151402504492971589317958239491138803292027653508176729482433803901990563119942366980284008729238063640707911542031400337339325731641250575569172380565519757046504776632837989006922687272577830648634659929191049044294557500667880599587743272140504964677548723167679798924805565065870974893006674999390682572893229149211227224058159837183370389795951633935737096837205045707692803013975155332687803835415193096439873023411957068419082345672946434745185984198463594408324817824934277061378010254281693391931531227998319177032580409656408075906603405092772609530665026222885602137371937300472111360145511455720046718644231298694331098303344792154394209794563190129691463178016679880663199304886498169030474014857576125288542975826357887305464169416721973116916557775047290879479032500771122371400375560400301479990736635496933420295135142711496599981562758890514767603906345298844228068174009753676960562620632632017359300866202457802850685325997288832673381338833132361642556612730060291472941711900127346149684969520137321423997239445653357226212957308706713177015762988637749326807124798403743550291324633827191060089931985819798747237160454719311888699482712626996983487886153722878380869879836773209779651782147424067166073588001119900631739259742894091928004468386378781785854071472308853478826683701470478195035555415816954878120248535027900358771021159057096819541642256725742270950924810881902161990730740930687122353926488237977456525170133492541754370687873101243916204931054280180316071953158407084439672420709954365016021406160377939844618727109644656560938637955393417237098436321550437117304040097645805459165848749088917640152367573686601784904700524181071236188207436191593776943366254719416793901740634737910401063627826510544792808968317265887184061117586618422096166719844470137802772724332430354154411011377877912102938073463026286168283431570885197224806128019317893873986391565596638067053232956104714726635569644739904281320063691093304714556050776145805076818537789353639597634256877681915909450327283511117078961663390853078243701449799428158159523708963797245843074293767894624145964276457970729903996481254632615889705961951817806671402577972209665410223988853631599717759827343888764117996928901887366116870981889352438440108129874567569666385252480350766876464619763381036493041199554624907104269089403247684210731671723155400446574172856461196157136485937438470927880394348878133931876616149255556971676230472423407825886237066534328984666202399941484691428356747180776568614073595196000434625042119870669171858648715875769950581890717171243929911028283718125420391061707176823304454501977053379590193362968411388667373834408997938280026196936901684329653390814681096093739310169735446306428914849820007878559217520540013644570329228757988486742053693463885834985666052158834039515364161784890859945539447630087394363022993390704290805513720288285636661777132669170501520976568536478573708571983628383147916742124176049043740558510987694318519908685466785868662790748972301471092195185620056217139151247285348818854225888292163687927429472390069372332615834309922753067568752057597565861587461718861084996474669620054078441912549146864196114839934020201906435651635420371259183299912766148748088103774023587584061352315530732647606913855079902072572826377668979002300290602144244297704752078033620381181141831989761544747024995902795933747544592060943982198012590468952572807936841150810749745805244658720765201700998129755592880646203304453146232085093676526090658533859081313697188509779959201075154323435848203757709769913239578853393597232512491902178746001508028477395641250281664447371286149432711644654991454808744496322086889629720584197386018082642266397595912803491580665546329481462592643713434995789378763474120943702808799078598278644243942409800080702615814932700943951315605569170253572637706453188025887576771768259337240445271696905179277493307269675231953647465609186435531626587823718704047995597912479089438092401160674045236982953291021450143423819840132877643487367620141951177494874063532210364404204098536173077095412483219742613966468439816096386011860485967716806689824954842685030254250631287176720251271465505375029265115648210822796031382887349227924246750845902137669376582689719327645865827566307611166893815038439267724843235937509287002416674913545771881291006949146326990718594569161319757191221621380976653736619691856313882686376296202741575282093807618021380580904653142059632701853224100457165206660632885449164396793884210306583254271911070838420319825703248110422290082945844460197650919329641701292504780479633791580474718659969016919777021792064626892296419018474456126409948842354271240749146104070591168129272774909203703351876902424100763473708462046724749085518650374887904347410707881372618334633457451601925117741462901308286789307571406010521437457596061838991581769876361574286660699455698928632918939934851116717927472464763409084956954707531472839722827535319201485692834125389347493099127444389242972203378801144785163068448071233578164934242542413690214018750125907053770916339764872757438025435822928002347610713655106471911430244908078286634953633102140045173030601825444771091393133069048844521419903466546213612762004512665932057855893904379333422662213166727985726431331755847645736053316207239124958593873120983739936513079463126381190544315372805752516113193201974181666525330277142207761460539687660054584766700610753298620509030728952416881631047087582786590660931993362882537861752693159991972895600452998096988569705091923560760542797951212267428838997265069566212362361075853657880617733980004084627857928659847879432026522141222386764165610904352780456964302939173452934662073394423647024561409038499577636625927318003225809184532990895614611479647942296739001177287420300723095838181587177423564117684793403241819135859526219425079384899825532797465424760698752842818028567433582427003702276780402295251268396680745011045736143338526783394112834401791083340328117584101252196268152804792208222566550377119146972036248946632098608520697481482908025991835185085771757567487993320925310394206554366409734744497911307955577235531346506892439225455438494964355845305155149749112337202456797049707789167745596762169016653762356946250205211901460931771455612831412418036183101178735032439116418926668053063246847422876471167019796953994880855730921852680491000853550479418065569288390354839696090755272152263223103134080046601267155544213786374444608901069323535788457343368816206342179126116389506310186596536757582716432339238781038428625205014057212552981443846847919238042498424254648375178294520490451914060978455408066036314707936031126016179989228462709533554889034813076831785394950542547346521926375494443198262001302677917678868064642686662744536396612730137879921459313190596671482477777234625468193115210175850401526337450815725964404907262747346561711281253338853600763624631696888277880189579768813556468897704014218382235596416795342106828016190956394975850836864746153907189455135297433764697843525090711391322325084126300104697766902550603845045612015552563028064871458034794487119118195865571917706245384161820391526448092253839623633601154897483881470470737995110709128757807315903637404867372876576388198085362098445299359236734148192656801662473092733418328157102921626988610033766760145222143189270445305704160104095450079478167660453261492239572826386846720993279355488041901686617730281757868853890911282545979154744647242056207930595099931042822829891858073406220305140679809623238082124239987386441883253020087370567795673704332191064570903750520231224179234094999723099993192729287853876428903402283323808850173055846452308550668059261060183635748730084799975605338632030266889917395815639573113413589408740739962997348487113188684051678458632894130389340917300391286663813769131990886202530232696866814781643387574718598628341175062689390547488858212608496777160515661996981165650964337548368894263797641198094647184291477443503489971607897178199673486785269485344243507329776589896018412520202624299361803609909290634030124516250371656482130104284749613485513672628782800498212901209147882049941871960497799645929816637235338504443952313211703110161284552009596441926201196631479967764650251803667383284207269129033879193168424250835057977049903720195842396561954080012526333622446930178048449618988066992869161409467090116170129173074110733939387601539730910664861710244994582467617280673723592247688158056443378387689919464016862311250392480720123963634650603066398618918727353543890393376829480174801113256423003157601873062678776960368289494573034910770547938256017283166915687373580231081428035999495374227644224094230622794734654011430024517020919468717734851016443110569427751556414605011351632289289387455211827275292809062692882702721077583737898517988711710338526532553095931046513799495916069365510182387886717595118353999346871279945663417266664705208372968334787845945180094648618524005654740300393409083987954314658335479520398757163409182918858104353262635146812530039151914084767752761497947981056770690667864209987767852834697901345877807458232305502280023266403706457817646380055017530363527086752252111752925686182956202366248843080815553617617321938126280199681661493970364309717378175549326400030608978960164495655567173874246349068012996375926293488443961124885760428119908221791641123894318843128902212459431786474992848991162962775585634064098612190896010872612795616988716820935116715055130698513068273611579659354118167513795210251431776512868675616515480784090180325346803327581711285342063184846581513745002396151588073605014317723841985034975187592819694023951150680259467192825957184170120368284250648374572693530517715613050485857484985299374218135710202901627987283714525934782815426872996075401284854402631619386607736119284056389261951201594967757363616504226648053957645783363501812412024371277613615987706372394464264252386240080600727951142698324203525643931657357397729234947379510065685501405352777532553958904330639788378119686593405309383619837723748479543224078812593529597153976717718242666645314383766031419043250471701371336937407360690879705994388716313395866879289758335569354904961622573335175655176318773300724587291955475679349071708324482022225926700682119763366837367487307539810863634062594935321981686891442353455934757042615984150466146610916531548130529988950792648747495224041961903492609037930600667119192784015404386671230841980600975863551629018977646804918599973991596591619486314493444675235827995278148876517977999730212226406338290144212551415572003488903479256537905623247394728072400402057704322170758136245920650858548667851631782727433200665668910423531134313217115036806242511820197671506152599177194649896857845290533798878792135137888498558966118729529703163586368760115252421831526054228676952224570007211493780038518332492163193268902479626598698390266275310196949988000017591237384677608293077956597423603508563200231914896364197527501894647321492369433472503363777839456166873550093155776413392156031721568698793592183554190965211131125442799795823121630849820939264295526335669540677632413294963562957107778615574800819909321127657662079901111446325340614990060554138490847690000407722404639677992899534014398429214251829533492789461170885489962394862347019931381796161678734211245167170346332104575860195144228385970579062235763241766761103047364889465296298989871609711768670239164659179755275207888542483341597865665832192868271649478545848462752513133239102657640385285022530630827924964651376054871216089881794609984721461703571890513371480627932894811133977392798115663427442652184700633430229026123681028114974263723323116368638007938836882353702522247477171399294776649602529760269796230008080560876665225856405400645970090925882076680887430635362688242249487705009978355262659550677434001560894771769689706414930277715376735206947437263049644067499349087425961469164247239473069111976265028589618369665738915446411116207176773510412637336534801788233935659055806584518863003886460006904288247676988276659576306429848582564435371867123071925513028318321438824899181200852920759304156430209669350139242334428471696794417637899962441661315075727431468618209992504077246535670193800109824764514045550324947944294528241953850006497823796733307470638335765893170808985665584483091386651788727277709915055856398100762669298238318888419012008257432308899424292407456988653336073579213487000233198014251858073481789650827031354013433581747310644404264902694393910505976184966665478709984266865505599376341248464159628324313355982415662212805826257792144295884601164891605410992848596134838180707473788744241504371366673938720493142039665426088473182289928912953428128224711702925861806089305193991908806929872110896993696495374859870713790677854919419960785180849288805838642242602077017304831794057699243862040412039490764427327367408521265874364533328743735599857443863639809980155916506876829433472042325702287157783159227895650488283618414212575147184853800004686318855856895813335943079367365619729345192832955327972566132302001497724999906759571648749416208170888366081444722266596132104494452394534974840225751086402636713592465178384084305749411029382014746982208176845647430563357095337985443712024560560017567929862952604420434016478215643578509713097250486653273150014590939203998540525245623174344636099124911467999587482500764673120276460064688989107481997832989130466126155381133261561656493043541052036812771832097837954212062857658946945002548814169687062218397444533764711438249434850485518583766393494850497407336247046485706567044203289837435577902551670353054571379061312138939277238178317241635045262512990691702037506996601078044968120693782462717916707009088451245802490252571580274215901859787510271729683955529483126484172471312091546438511577740793904048191193322011527359502372904575637108332984287312868092678297763092539012650625584290507350328910322929797348012359168578881131207720243995347130022230001587060738511155913335956680396570294561838977847623083710253786523323092804446602796758478630988048024027147636790040111961385895062099007384282073680121598400769872468324502201348271111231683234871530283883461285612512738113409595233278981565380325062747151826784971647261133081896821833823356821502507483117790724339345116603691419451216865200920024633183692921906476920900983558241736978699417769305516306664594850211483607570173825728796646313468832409380593935111684285204738827697856108296723818120032710110637723692886570392093320326582321762387758023541388483033774943313890413454956859405959189696211930410763974983291900994286329838494577236402875152231513921379094666716813709065462993886612072307627909115752221879322267291747516332137325064686897871360337146098396407791186630574980798018517130749571972407340778263096997310050897784501478986520579834946962096649153926991444683992201293702177790435440329080191436258197073931824512704296949577709603147888272130833158411987277213676372581221400343234077187401533076118715141536556255701434569270525372376995108203041648775223687489323508338250227343375236946684111320413211185110335680688785461977464564182190742056935096657880297041436380873201051958794548882047670767807567329568193760364305251803708764342079531870616073844946251891021386822362941979993602469450631489724414203566423741073438512034838501495494425232632550566527538744264986343377360701729828969432968842164673591200739761837695969104469774637906616855792741723305910605244674420563724762961387171236996330832081699665667716326890466567351150326951815468547864500187773566016501694653508522395267574274679127200957152375282356465389879228106444699972305653827282151616230105297961488859751583324696811154720998561014072180398931041235666791687173963234366867103767087957219347481176773353003009772156026757147563701670174231939021826283572607404861417477393060062435884374146376481274062753997173188058577406254582709991262594740812615323986660446767270973157899810136776076796204000925260365304695007755491649069613861757517055722510836942799385870876916024061650022763009456671155806203528858318841368559424681613654218347464116045960965129071319177856416556770250692824345519286745970331367124760336691523135906893686212260743268608499905663278366486935751516961645390946394967101284800182271914183813069917825970461858203539663519740091204761524917808997210657377985696055142797653473349890878334517621390042695914268465833489520230607737137071505073598837611399888453070515858708032056079782070442126536792654645000469090438198630295377871109441851346622530367602306374466590698192326913479265073881307745893977821786600772042587092923224667055027071182954639617457680073260535376619243065741387712502861738605484468839858765651939946681777338786935944519011033275206473842133492697207927797135875712370428883939275165807619767301285235808302623802113542395398012472664148774979963473226411795429596561524660629823406018306102953780455088799497491218345435143298458924708247014780750971335252377883788626497665008231019774791686592604742377738611329455131258295624268302617922449044085593859975853043199741260159111902308578429608887911924229945449138068383624493322502689176760100826487307594150650613050812385093828410888920067100424463529106151140140653748750732922396722724930159460239538255106017547852452801149279524540086651776723208433846579751822777863182743412515838299252445989132958843572076405701081101253547481479869753995073677782175743662504944533685776433291381216905845949971761948717474328071210071857034903663743936834713588536012282294947737003929238061404378285003287442926723523969093536862757050342171044431357324449429620456491651296507807401330329667150104713640145749440485515443161539731242983486794520574086082606685789391225024300811386075233293613774258646576270719050178045552999536814787151120630099673722822460957447660676505697810378948966097395865940009646668587386438535078775025328158831036093683635649080375078269311105180573862095113988782314141680293569456984938276551123532038527305112627479153434404176325074262785872958281195314749212764891608741898532793306511037115912049877978667302035768988527867079784820394048878310637061278405318909549206911195634630620455645396213255646478492702852199565478071674485925605649644946021709980589952939011725177756464287089972643087461623089186884958265246141065648304875815727893664644446680574051307478071394115888232758735323945493989913739486305610492591076080540612993440039806572082209889292761739225312737341117865579580348415401670729372525732385141821186075897020911242017913368642759458086009166520335111684596278151556486433849268295123219907642907908247374956466006708373877450731386856308897866446896575728014631938312939538955306901579412677183677442000847618335800442973763534267185819712690832165722604216540325782663569322266688411824832392013773373307502149737707705238968609961606360522674890991385460502947975816067870047989821606640089793228531912861690400674107402571607315222743093943616467305020939412344575638157949679958816062355156483326282976984070157550488020226016118696941308603058480183928949471150799256179548997346187160777374943124844593485649815194714080598652223506440240938190252160334628490995118566046504843933857583495999469581000774733683850238330802133958342273859287125392998658124665373839307533592104418798735367107528199020644370667251662631348398130128140249501561594791298379598372620440704903900579178045757629195058072348804048835401806555811178342135057266150430752765982909703514812273315029930261311791735295854925166502587979413208856474185753610271581532052213987792298344743760430195940697796044148594910149613025550410138116393615554189658011830710978178268834547863202366938751376977010737485300955422042605502953182736165507463581346140601285138583445691115563634127601636946093757598736578968089917369574707239131942180901317054300529221087139030226639402612276478575838470126154254649899748531553789185573093369921881997931279735225388540580797619665275359348286208424882282808528874500596190262352394730446348818141186794666188611685314818313894499936225983424584988460935821408738989686335093581966807033144273663405317521961212481272381807445181734844113138813236193866599582107302826558081479583464456731201189533224271114751303713117056973218271150143287559530388405734474825886057738945061967403131642076491678369713637648956275745011314607074184517895822311860829708147774603894715871744587798248186615941273825699498086409923762563058870997296066127274560234905415188745459029254825520555711413461115685727131746188544042285190163598045497413870727220387481334617020634664465014835349892984187561635011912778952758881162864989875011913047659274199848439720672573379098408263080468879300009890988014031626327669297411228877642634674979118372684774911542659118738574261370951444654669386226421755970959087108319873044622485721475863013281647775648725876446097198144641442977535400513595131322887124091089195111632781667341298709485071221320419779664369485052886129066687495267167938259316023082888759125207742133963915624701150488390540439541432230828072015211294808358966952325037796185267986739875995667061692169523275896883056146584158471591020947338660409665325434301478497380572271876764107378528924368694922518279522004120546099052651819120968063511770855161820488141011911663450409364101626839739543743373124498384678672968706389374617661544286174864312527592871779862201693829534458580817693282234789864511078385963971663008406257165557909723848638916950402818340043405656689602586341752004383842324402713490571274755093114038298657082150320414749562795672210393649019010626918503537480630013648686981128449857873678141316287062026415274681996786947360662106203346619236554740683055677751388555234808980348607503921343257125581587294658191096951188670913717793933472925981731200325251049114447411971067682762685728455014916594647270580232378314827782271480265368720696877764620166767675635200246723212792154187038305829881131376909315797188558152804358482029206888224690945569667322099159906711531834591124563916685623461025274285540247509524778223332819888503093729856017257573642968314584907219742839259071223102798092849133752215516681296794209814188284178278395010307339641541421847386417822337260309713119050848509170588528009235092793719583314222393839145747904502295408524242719280918314090266992964788741077048494730392439532882875597302243131626398145021572526874056283941083795592108169894947264318609176698293086588102566953193066062870689660965617738080736731945885115804059540587928208197509521954659934683760533167243451012787576910335463144351649927467323644268502609160839982090311232443658418131588678468314611918933137639748994048142117542039245513691789055823874620194098499863646955988623951350804917792152489144778854253142508555833279173889465311175523636740929365432788011433720035299111841689637041901917382571982042258796432702659150322335473557036786442178736389436333339566784786104371514102186815225376737668891501226676872995758576758896714296775620102233899879341807345703737262343028814337073834141655978453345723662299275240426220127660882792717580711426187346377203165501459887116453688419017801445374408343448939183723772352124843815716681898121531095762701418529668644210207981010301151789441236436030244185868668350392350209159012430797528694509075421373027822483196739041000396191296384239815908781404003271992343455360288089752880008728839934110731540366461580610178734686024779834480764764759131279806263353375117555639427300772036100233215665123958157856582339096573325868783867404337033622786917373197804182709888199832121219833838465140518639913789989674838387364773236014943519748712970374893453834959673449536985542460625214299695544190376309386529428931260940735172829105301717739209343028293545076283005139671696499122311901692550337075137781657488580287035029825957641459338513995619176048678842199062488798978348780104420004142873159213596820846149310573356312211138374947192934506886421196945262453468796905474292272401322821673667111716042133552470709534600940402855591130286314147908614565015573610548600317749664561969008691493709492911505759435010662508085936504228389742554764837343804561961308661709111788684844850570349890434714570452663884114511944714278873593347903163564400976483844441933504423983048555804647405952958300198911957678927078582123115553052214859897901924988792698585182398022018550519129208113519314989430036278945703582730412192488467626508445547696104066466554025313454660736068564027735488333226074492516198257879118717055042358729039435239030710719205119639621614381324069760927657556213889337157552908329523765625947926952150266560248071822255451946233895661977320015859347079332246831206842067619157531367278409898991258578316500546626675097959141330267818706415013004627468870923889597354719591954221099482598315945894840679747203001317792079114392339690611256780672440158997204465753831881893372736861136337840597760781262156479350766350504615727906674958357796975965002487383872709751201062908110981851523143848884223861440828798372441504857425513950363315409143224087696315541413640028457557032392915726660949886501914805641315852391601590558274266952229320725328631458473005866140950655584796697905900685125905231039458084823681432231254436727158411764784487955075514812898493432355646437196076013704167260555535894530386866715857811535068012583071954316110408311313052098471888592690366982659763699785385408827686612352349345691514753444013903242704114841246303418949231023478506415171294208136734909358936185237565515124864296264960928214981348865700430206029378752766464079650074434551332201759879748173712109238618220869577377403979827418330730280273703548822573471211346954295857180157857516634200707559775281570249967608875650992955586901312282513546532494670478234308183013662854178795369795657159521995112822098114166591094800789235617180250275124424664917709852709497310596285036262396014183496125701961520354394821528352114153111137125906100803975975531017773703728523263198029887337198473703738110726362256382788698053131672264397603073603475112015610871579700360670624068582057150504252091624184996098710699496664999540189872509611204054115798811931221935958505087892472590523958833226345587192499166657994128331295865152675631564158058791487717295717527914314628017676493979975783459063292312620855829021269187206048467389159107729185216159965556305506696754061004920058603259500415904340993449754237023123825998073315590350035143077691932007090654629079422131264814687076705534153504170853787546521452451374247808258831329263391709409205964957310697585525481748108442117041727411721689550477688706814670269463865543244029959535028366456480241636438408756993383688161026816016597640088481264601643202711746309906891184912127098761545693987982346544117409361094832308392197862187082334470390425544056039432443659182431313646356516970662634338985736547909306262304271199763544691570688027330100115298523608542456682239461621139957675444910187739594778398474416904814022273244628944589238383713688673880507906895980493320553297254898719279722051934398296467990867462700177119619623834452147302827376810350584619241494987272923283595088026406064001066883663611157815656630047505844093498797724721274369518128358058210673783138515966773326698763355524431061211000283415558975441910762409362340108780029899882749797020150531305801704066194642652347577410712681162006031322794121347232999909305190749024568120526535153006409988626090194685686607823079771584000730420373148482310371388009382322967148840998553313666087540336681864219754450195691862377574457106694389588602778154850469607989953601028421057975061645987234484820901911080729330452088323852638506117985059040151956057268548319971427857913642239642209026333756160753391222388416652041760921976339860203942573906504045608479901443098787538855885019037908725390925741083970627501164434792006000491167921690380588834552659065005993134770895364349597759981091499080610354148513800016242556730959389427833443306974865430038061502487552849762194352155526015160305874819917749916797835691141997403320333236001269742690740214359952589738834415124343430569827733937594172430356834003275459965856680071274099109578717507159001293732024796603087828364048763531852969439451996391283001572191880548006898634218363768387720497182171548116275497157944997892973265438904908703890608513414754653475423464405625283845656639604788548462891621259777407631326176279505732476193912635837406608119621302503687963876980361919510772977161942616520962392046061888014664722265961104612051703709929914255626282441138057365020582625445188144608029832054493821931107633400722841875680014898754859569826369256950653855659837520405348464124302337527161655492948797821474059348836803523177893094419823094726595210473728493437700905626954269289829214509448418879265893389773175723664116520873486220620996340752756928421806951998033183342685762849098039537269358608052779716210364852651478241488238211219340136632065816213880280675520239990029681363706283099611635350060932032375402402083120818857110366652188616869702219903945793521643352853311713871960679492499012732566577915589950168227841888983070385164407840407274814023639412713093690070761732821414425684770109881876012959847214714414088204294765045509201579803288166818731088966580953394141668002881137292630296892833283567591702389979812081043884869019763982950043974182410450392996336552886941935077735092904041543542582347685610487290119511861687839465090311486873261974962965756586918666332078824374431710894379125574450239266539827307108398281004033271776359942835090858111959605444185657667846410820852485565983313909703077624484189858593895465512031383627371251256673337456168510468620260327089890470021190713619120144164398507769082783689285214196087035071391896093189945401479079320414285351420952119103278486820262137715340521780454071854790296743945249559081345996083542040223092634695161440126344395040409864054750495997808264416946686346311553104786275966634159485178472947653923590158625897207760871548358770647604985294216983835974976129522354438538108339051968697689624983795834502935087637960266998722832568246334557991438104303711586529561323356461300711719711002928148748126096586336402289681337548721043844539407300581091106093451587120384863678027327083507956072768643697778959656586852398776636580929637716153994536004485121035989652384078536079248065814846258111260363080585356955316265214363841374843977872758494911093730183853979493849206487953811544919965762569467094764824261413821620642255373646222238923669952842358657878025167682475846446897433467338449826224226596265323184847921838306899009772033859341043969040764339903425610789655866596957329114571354396906102481155325393847413691457359142983241610655839097731370413098338073490818267141751497467082537824138582516996413744838774945073583888280675119737923067373238188148716175664225934292719529773976397603725210389609930239938112976834003084551883792622638184771369559448672739485216587698118119579224669885080579527293291319634450987878882136180241410268135689009833808591412441777945810291643523777563192269351630392735641477007019854921622166122506326372492953140623338583023389505969342169712163404813207229487871552816052559381433878933747781617549902007719390997826914753068146569119081335225537287660411690799165455424220006298755132989073137768221751320748150161845164248561620766496864472869459751721383357847263034109378682410082267383464180250874906772228278963202036826243013767842000377566369963867398907773065781803807359750835006851615052792607290661539099392922217567291570446072113347094344301387311970123524133146319576670880949793899017641631239318283826965391721231773488950342693855178399932050423666856192164312797653524978772462095065993193662486364315842182610586514402391685682790716452562026160410743493046901258546686156613966013907172514607138848493262078280105870665847501811787718376257680748718614150400602510254122894416853840261768188433473307074354783888293337796703742787846603012080990002776111600896502273857378198991817705796257604515442585324886725875434761433780493353337335727042966899560295351707792376878710055320422310902683541148034533243776811332192529601544517321453061113667185196764629457086315894622967500020844901516253841439932922364852586377370515300175667275594188145539207198825912648012313663209829433448075666818351525646680568554260709966938506534019063782790758033368537359204364134790900974970651156678289763811235352972763938420205490692780769545766658696759098694049840435024975393688753139176305539850268161949119584655342099479252022699304910749925514243772609182448680136090720189188108815522157681486205905490765474377689108451509550257657326797097293822774313064451768040338681718807668337316553979900882228397605302743663148292720921907304178981245747331162180986254994731298194359540866004041726793088471254924167931972254607445947725573809244905517468391927395351087598430061022364053754297336029412724837459814342803928236266451905793349109508817201581538140911531938766684782238450220843319920639421115557325413077260504104908926548444716140551142907566711447472869982123685903173026638467117718691731592167710117750582615281330895106074744772086012297783975375421668998045952437241404999398473482821105142293974955635913451958764758016019834667574429816659683277220644763570880764640188587790061994658073567616347914748830208243294586068535720501361876381182661396353968362630433133135796523475641558643941409498590815870031371883821098884400216194796390478889013748535685127691957236213587834892810123865042987966012644599775407643490976568362353511079525887639275797612331082294393407093447199077004818992829363045375501633066354680762530380726227144102909821481314544634719844993064820663273396081348249978052429742740959742398521660777667372582438244072379861511771017838203438021048578083643184978223017678478495079271943528306351073752058624146340977417804728141894017344888882838515088047195687238875989104443183831233964060888985705993556892962750090616186225292988466115380323079824011887252439258834166680519914474004642251310501348959869564558130476291367912646404764083733168765261548944413839633445028404193997180505571287246033953336273379451497092581023688678005745155605569372957026181312170030874121549895918926724606781828445011923792839618989999089650900268640825781590851353290615760284880697445863584189467579762015199018158381246835313493966976960809700203563854124874701115793587712819096826918956819534763241211613119851565864947376218522001480522350125869940913823410629857898706062766227492117032246810910001577674679291584615881675730356246915861750398242808617082585932528454552868533774337615116618279096779630180747257258218348899967490484490523858431524238865218804350318719902215755870110647919053185924862778844684956896900522923429558193956957471439095250406370410405176346667133192148925068450658269292647178446591954929054589796424875609322900483814686306064120706008518016697394609435725513369163753005966950153318844452364854592730530773194653077521341260531456617860845981598007508269703946436628150921382787353638252029443048452505982976169058661742012898218185395123321431868882841941487525172769144066760109301274780813191978355895601787015680598495330633574763380074854896797015664110419268379806746019981784107247611898590647578997356004717534361006934185607942774952501930328424432784734831203299145383537454542141649026794204434173325933132255231519121846876562467760058109645026358041185921354829750259237233990943693090901307192900195285392017789015378149778142671861660679149590870771105293475860069504426414163782467157414870885432074188148056546308228510398748913774906747707304186103036414411994289055722465728827517674729817371958371918640680737483174674620334135142222117535121557873662746352398445544740048426923795878832438461052327563294737417462805498547701144610095736283703898366473766248236361644498075900131392072046583619009058990922750237076639055147818281851129979093277083591865919198182851538440702835397652206723828031412415208323102722736529988532300967449970278340677840946190796191086422614738488228461457015504708811736069723544549849985618163448800342389500470732269801356496626610699150352869233030507677771627541228263503774152045236983296677911503379276150702628471391370650165124653374888458317785155209881342396475199414773766327560526812831165349164560532935865135026902925565509987450079383327728669729941852495368415384771187172656106198248238474916805234389966321690592765410585903450022530883878816507412613971272151960248619083934734123681152598892679167231946056147463258679529349222474720217015483176245986053884434166365849287316545682753275920849716075217710171087893604961066863110362742540992781535519340034516138679627942443356814700200692935276061203959534396920803543897419128048912664492900930762808871634967379455092363089905263543051955385812564171200692619376934427638547532790465946564544787281635004979805252052060362319386327941483649481194969911406756596726084286199458102397144450665321597660192799245915137654553126289806302958179569968040038528953779162418773791960180944206655565896464109512792656432590865652675744742872858336529512453901466447128160374072616559265836017987930081738021238431676354651992411919096222414571491182124998235553867187725864355310942971945713453584023284537968067545959941628911470462313206096655068471755352395321365978699377434691445458004067538841594604246388481092881825262108487633150447182107488401199302961699572018171649409034108603200228810402135436321006165558996233370644205562078779197684024617742043995221530826742251219324346756064076481829968212514945920107408958985309628878931039146177364617128655517834984996749112153886496148172528088236332295034648082843265723896669043770314589194907699185690692258398833650156170892453376229785609384965935783652220158747180664706114957059886249503270362384303896509692257923702092769004008200727651316514278114580595478164720900796069101298822204545703258639975884581090510327722679558965273614303712182074063762965354744356642227312824831209129873072923792493758605589887719808217978812366825270968113207600726919843045372206135020070796622940763462915055499202842203217049991684886721452774727796864121519800529995000720300821336801324829167928419381782962963585080635049018086401720290438122940240638525575594578297961045644009828442284343622652272452513413453765942040809827641535701130349017593645403566403260664077001143680856403851716110428145455041830142968578220977790158832784870919296314996828225413177181696951615022154546609035277110332137225980333214555110253684820594297265694923839758407204583215391919404337288442045770578147307210862837097049237958685202849623700668735317124354957590995058342881560142299385138854085948019390478034304415636215542424936973455978013717965025772915069779824054094532269726585513437828426609721369149673688093598340066436839097626579477527444524638385586764926898393216900455151291072667297123300937323214558952363144762032708130091403411254182016747831628517584761051013801696341391899221632447871131665492485653247154253516004862219356232465016934796050309187894342321509325838926682236487513518323499834429665012837564762703114549193819436423560648643272858031987987562600760278202616146476056884655192862228456855999307524047745911301415270376296499974875621668753224819190677921521042197705035340080359263312561054992152507498466831777033385837524879766955847101383160843418840236303250846475301478108379284365506182826760399134770067344055483838280550629338204984586609049721580870601556336284705950366305048296512693230578824885784220284141918588589331912987152431781937131784632815224935820544996309883130228125890417518818571150262392827045764798637627971723659454125162286284136691184319082602223771704442923226815735631691829157281390504711870747099737201551417374533926713880938270617596488612911139463435120117930496188716818014697388803819167387158530215744462502485171057932071842158711792678274033137124159354963580053931718381213582277446613308545086167352923903574277029834756275426171572947872486690043752820100427822933104121555399175644814062196097010749380214694976939962732380070803381849797521488385436375382764732691944279807536483742702714783146533996636993037439880504721194317320104549327981924061647747879469668207434500537021146286151746976423533116275967970703089415818935293327559969752062150930890149924021810897204280215431128540688194828247229139787554241616700145132219779870055956323091653985560171139402784099329828063489971255552940027802912848242986225522220388868053559954473027668401019276160269367579618015997509421581912388498411649632242642175507412318712414696870029117958550771087421371200013500261818310035513193227706989432941670038709054541443670147308136739006255473321082648969902047572785875740327306832335800235351417125293082299299578030122893979262452808029534683561322470104738331950715909636922222977175493386235415912548779085228634758697426813405807452267727759923306926245545465189993202130974368806338558338514770777549103977398535016909150129280702559884771760300688428381164806757332982988175893390319460091156277779978363689569365117031521420929806903965823198181281583187273306502308147480188778060656838966485508633148029545651535656776641554369003147753193562288826659282416834265300162899841892414985887554706930990154350134076575261272460953187516817329160838627910496604165662753400547134563621323427665692506677250492621827919563647228876720600607776133306720097063988585546301122186063311271319997911339375524834720537188282190919588764951896731345856409944359513561821214950163246156638522066193946180208481857333554543109758835544408850803809074492322314417958190865519634118473865312148127490457017217865019439708829378613009248306437987191373988876010141073385174655383057484117498637630143727969884664996603183273148884122373444517136657302168218683739961878423906652280452909762789865603756134028109050072871860864207094896854129115444398605938023045380816058852817192359347150716750826267873899549893921700444291425341032122551965079300079230108247483286807462394333874620514191786156326074546180573192390464830747320364246242801995631819587557930675372975264107995053355748789221859775866220179535874843154679275052989948060793567434092002757900068932557133132901703006717193682056305137085073565781514592325709915334907019377450127894268976882056981319349323374540316810501843219104686406589573451904730255554422789994643276329409140683434231403349065230790919603229230506888443003556994178559432544455351897151160526777222017855013642789936792961910497849237409269699496145752904475373391316687304792483593387710390630437722652003739356881557823963796676110063358995659273777419160908914681731256260581759606151863503831911177706888878729266512436487754337476506954403085371978735416379869199133838588957327941922467922082421536572634301788671449782343336185877297915541711669212111508546889325692300418157610448815517361546735887591995189221154544535404378574304393432907967389800472626574046090202611093140716366459032123817272950659920201521849830525979594883155176852932242882728468783110361401695178379194110053888195532704327675446928428800841678438900358686694648305098737609708315601736643664194767733673087457398096648209009759300924019918745466559721896638861113816218034280822430025148787419521274291172146276666650808458191601307150766793327946138215403206847435827241582625745383927945867664823713956638122654029838891401231202629852986415606677522119316804805759734955448549822180742464443713930599760595013066741694028603447859485805633034662400390698757268716101503396026728205846056576721495836052497704481553830090583025866296108586716541724467117085127995521334094115034611089366315121813880144050252392422286386217284990817656180816469556029492618300253451305078949092375438716077902301872824681568282883964663747124955216630677422646855403284665600776385165136083269779156687126297278048816928003555005602452805135433793783415500341895792428280872657694272185152048908577650930626212503580686214030298732742913191861567798564978883057650885036361075567907619640896628902731173680231220683455669610381170456901273690722665346502247518666369588818680309470457685377077426060865318627963408100170488369874479467928488316464167376058441892358287358936672748609495030020105150761019999206716752356020055416896289084952479767966965726150938594033043383476713740947902395353935516304466441686528380446026980096813346736083389477170673721064728765434133138605367764240135799752541963637948179619166195563434188268710481951243334281326033098818853951077388290815207026952447326779176569209726840735090372585128551065721530275171695504918167694227264591578963935265468932669923265612775659800787914773191532590900645327582092485261745344581256018555595194655860081541786531571633997845551684516236799772600554504887056856240020874043741093380201290151863112398565146076301486334741593676818585056258984161523904043800135826994497887608469160486540831159488777942849494280439590848778429964331620444217592757284702567994408208895357609003179232558441308914394511440240262442556155810806205912204410149789614807192352884666879425762283841434348429016422171807859413876761552456972971577138007363578715613229600981592269212941674364307047642601304232673141994668769449931819933927685154291309388050812651369630484211259206726959771553249645917336186073011945470954773723735548410814209972532247803580187458597338305757630415129980794033463714585140474645735307782241520797937885572971539581272826291239663637895533259329149140762896694783566951617995342356626974587032050335914605258266440187352674739649228619913514476279738072924404584256018015473438844140320554605869692284716377786960911891679509161625575184434709185720062714258437534752914317636190097042239580619110883664683806311447004757666475504392797225629787927513336870617177495747411016854699248674574647735297792693783382200822398811323787346164826615940145243678512197276298230332793623735794683918114179468557986222291276615288256067668804427471659222835791353618215579401018222531598661016822783023972217428031965879358123533427202882172180319043229272397363251013047567470711380923595188047431414053380009210465261288254748602013291182709276595750366243878821735047140595885093602299449448887505292238768473746620138240426390273160046418588581167060185824663142087388211376029844136993887779389722048571776949476860560984538564589306657770277698287611148625740565896925470058124110149437680525647796385112717855541683844405025607881809651283187980071742644927275677095527441160761642596958083860733733585365299144297237052500845182354226523101900879348199351824517534120328851396937524908660679047011187720956415593448359244946907675256330546222723276154983756168531350447936095219811321858391464787145093764086220587410072707462036075105983299966278761276740115317837984748070731360007216764257380860138021499157732916538083488462212950651342383199720164417493094269118244967402693183263078279781927894942253681455687585735972721089881881340188129448736742599208546064247151590518021991683956745009598174785005921719311891347826541810344760112103133799699411345331274992424072322985912406749485929986377785704879313630765440841512605690377518605474623970366347452841544125449372620488945802448453662984130561098503430355545849387250898423486480677332808700357194493474454827131622389021234424131771286557508706096511650338377596656110510391559949581628814349582635475118192999588433486000815259347938825811192149302888709742091264849050447043845444804016681927318348377666771893654830080029016709223954697002455356453421528682745251466730454885127155462178125528511760869470263142531914954070304363932832466413595808325894778662682927310099192135373645552866998799745912929237908087853755692622162476449773486962099458646606334999577771344891802303912525926638352799119863053921160696326100990553957624271806849474175176607741751606996871140738919034815741198032231769650335016280007579362083736839851587097807019685449170887033334484498761414598489615818313811040304314191373484913589223551486328037254507939987195346452654117732634452861754349670621012477279902769945693418102695197188725174107492736355882416895711994271605497189697201267180680329864547938857281985647361374155320420643941316856217381906632272285905792741593595741737195294812927540094114479121078579573004978205522932536397602312767753724402968223073222771493665055505903804805866171336525097139654854218741073780172482634793310862835651741227121250838855060866539673064995681941738225028529699439848065386521819006842285197285612332248753624384652647239936389742385570727727216513369753608183530645263305470745559499780394163943983520098281398723328124869609926856457488414269260246832375214844173963722838362213812524540412654992116816657798293708205138074594073326091115523834168402891732931053732702561632757192766328044894423612162073494679933562536564321528631739990691317558228202079916466126661306670055743592202084202099542046516590402723602431924015299047751177442692338451469763039664068740751083076840893720965056335749500625368132928033141881201831821348990801383904035855421461770567469984810254509548453087557022699284744132370617671929384317495597499650955704168291366848525684604206265985738021483637212823280629760675978452064448759203893996821789354486093142981396890271149400886674501865407586643804613445198968749932377257562798554680974265421182620856138995301171448329783241396031964935273119061627897972678936236256661911602176432663014641270658907361461223397903443902725613535929468767351414083442605070433357285318683760121367089335306807199418953211878341962943298017455471020966743124214312107553768266430731293257218497987859732528502107038439347358319254067427062392075422879585045550055225836597212705004951563940218415598759151526430208387913505184115161840952850309779122621786609122781169552876454127032047929084794450601910384564103974519850660706650053035601290613982236483768457152764542611643173564390226423421064805436404063113934571978340751961822832303889164819932320483255739675751609687552030757133099603433226676074993009402499764432920492350977798490388054437140658414130654218804267229315910672564163133872242878331790020306397227707377968464073919635533153572943451011408178394069981635873336886863180920815199618534383529102842361885568982297600035029073127703092199890367572827945524878246647924901784376497747536330925631607272809682595017810777769972930205694990882938111038130157366544336849160838011723716922171572467255321668953557040990007102801423175394560287044114502171735989696555850616950398988576313107973988101214543131887356034177181043204848978491843967582937268968846126321153989607946883097493498916436645954222105227460030065819703503880122964573010091440641285530715472530240937415580553265886139850891099256545951013985091657412726730202530415160433346892365115484810818194658067773292110893498778819022806931721736739975338572825929192498509674577117549020107323400437129798037981531927408071086600034519135536265208100968514405770915606640153668933358538754480386564700599741575193644270091381916810399632884508659238309946030062029208429352900965820924567338889395206135501956642856756065197362265210651559363336586879553514882005509140660675326819719801344894989252261914910530442028392343278496464951679979117967466260743474410607941018083170909174060688518443897868111084325028677112540052850922695159404082113026404112561589997460424082198465305630131824286948594155823887142891587569777335631222989191202507407855354386253571788827592709145380027912145163068301947392753782177989877061713520358270071492217001350519470653034571558011508255115581055343916915613596455620488345426715197811999087008291787285005037406340845072778630474393623011973129726873494734920722714922314567502724565662747586869970136057768135706514196122520937895875627213785282321869676998697981336990009204248777817889314052019113765213100633995971437380196607964285658672778264121955579193471585089567787157129405413773878524377975699192529355355289454421616888818535795953861871542611561107756263293550874077272163281222586866922163387820709875982783976758913068526168015146926630589805604995514305875273378558376573038348591216492795171360770210608359598321343727558929636811337462134574730001570433132616463430750124472807987931667906612392471939114426108372729037901952717268882192636808889705990217860204136638019968175784425409377541436959697352684591227373979560916993647636192206914967129760988140802429406784454011727305615922825008242082048478410741772169859231367086086823165075453211691617643476256590733338294082257877711674299813717430605059665335786276146921575913209385965653694934579520106110669358948195264065866094387504120354796143964831221808246730237844536323252205055699254941222715473812734879084781087105396009921232454690916188582110336238715588054475475347037804200117519319356529465598329405882793165996172226340575682397842239251457228048983994361729882205177908695229754812027099096670619856564656018827027024208546277361878846082241687760260938087177048841735169661189657271460833129344775033559483600672847421028467843942261469746639366415481414597249547592358147585066565727120525156984200581465351526752094954759118178364492981485399482252460922198203453698692498701965643730886737557835359765668373787878110316326201747871112079225021092689643006483566120285095343469885141661176784943554145245663775523839330620931989488537607981638117990442785841767834025945467286138573595537915987832896403889875491921349133020800465000698310814366855069057942285679000679860760967195834066666779993370349703767364961144261191075135044792848239693457977441195394346019065249187268038524435423171736084466739351765492351750259195756069137826142161980993463918275456782584360924504792600027223669302889540709776397709790631405949370947361321141587449628778926781150280535101046222985443942346410124784877549931740527944871836128654203509121605589398867628773243605595921317614967589102792420772575724503116780824802895114788734418616653113882498273723226639522815219934752335907647714168396509945317617102943485398464371517702872469753508997423300596001411094987249505027154979156268921196862234389224768370923569916943080175223532769035503310766682385108458467572480603243288062663837878632615616065291172165149976883303710473357766821246144032336301045038299141754778096631795260863056136562990198195889278514083949892587483931013686457383644881644537790007411308324977765644072608586673443627656828419395934369104919997791445640329135835211096005650086493554182795223553525384136679517766941571502256843767457906582069495702589317264740670371789609925677617851856223354626579220383845863724684706690996134278691968469235299518213930917849222256917946958578083770914293769752023442040955113426523191656569992779697392195171668871956597905520558662439873872915611925578159799036251351699232721359059540680461866155879501367789051900824680083992584941428211772604607373687202863697883595411033883348640425232031877038813316663311252808086130009513838796678595461175167250618556831467215885050891887916938326960565192553688692932973275069610844250261892321019747454560464120199166649933323271196122183494365707855581839910647896451066294137783246275576938549185399261434535469752979341106556025633048255127573159032276530333824512728872594026966338933863651858964184345961158605318570976871962624097191341282140163986436676552904909546147733358340567333665783053260192388472442935127214577563857233199527501278657819575042445800496272272145138342112791323258774758129353815858171944494191797754164397482202691761139271228980050654986754979185860260595393646135753213959620651911266562318552903593477025448886337832068650146779043610223824357238056845683332907532360940794693607464668165444255808766558088966551489648129501879420389349126429901677711716785366863344574317068597661246534746988026858940954994137233938373546767544808436239905207672773658954185808183681746834438319397583589615315510872083059043281015450428261629529862539257488899320269654111742783960119501910136510725628158071643450868240074998000770076805579564636194764552537522695767957879191038129182650851077221442151241465991509466512543577139657307365363152912837682871918661982840807834646551459852747489613282759541722062976923977541686724500950066583764078637449128472166141049611620055625375608916520689743125839368020860893402526368984959618020917197909169992095904892312625401311933621859363159407311927456622370105012625895538648226314913376784212035475895437030218677817472663402287404886224154268974511642887472619736213675517354417466963623368068234273353831748782680056523162582715953210775349110580006217311284119077241453512506000718758274287987264408069290066492689147712264558908322222489851041991026616632668627747997465760058951581248513065948650878078989083876428660887678278540889989490475344997911849380922932858001998055617813867838207234092683547901843229069655928298373096457399469142816841604964280888296256263475362640257568135972148881735378636933828800649585975698012606737629288832010394749087461192783477191527305328826583549345499443717733649072269680354630144745710389610230782475392161302284538268310357069813122098100717839970639516581336867693030074417077517719347094441052595970772520326108033817864265791088442269206949803368047928276977915295740204871761915084673760770400588000257164316959837972846437240479130406182888223653924396069362189093835530161671380773469458820260931666135696339885673266355561770191905798247167658093115368206513049349588928645797965101162204537135690780602547058970801332624432374906443454334854198994817443098399776187487058122782411105403308041681126697712316593072511572618754192753819325668988754200923915185492845048966530790813791137545984169042163373551420915308668787795710837287909547372219859720825472532631696671914277306676477048307557666187110862742778211092501268460697025445210381147113121925212978783186031959391935939028835873485563808707535499506216088887451819436801850056685395938676683015908192589775968056353800897323246295589720555854029247491206121947197502780321605222492465294101611141809657976645757700923155786230260284226359096945470205266464041493251768714732717302905326402632266600608249082388518677785032368875492655792941357663760396949542781861468845241342798866069284964648792731446956811719025721138768660934146473101670699585447103196734601268742401848966414874706961267594116444397508022743805081636626051636996499810971236652991417322211684868121742975305795542460018574121242207008249340654868197339831911696476757440494655185816666896803472031246782534774598758988821086628751990585141395127237515330671497292225191376121076855485398665009547052284845161518872151214401489681533305228241425487278392203265844284244233185946131266737447275674310025992371606691497808617941944256705496833603941180988361556950023177101114543704851163876964688864327191761362599698035050130379267050733386553349998461608832813149206327095663999678861891622050056399674529795120094680276996068366674252977761023508105093162316800845041066257679537877869870362145199808588666119890010310006742191951461295934221275145304759413107843640532320358680669271914790542744441828718087255268536495734909845769724372553589871845402262918016753940214720217796488476120194500475560767128992395780326627807932379306146030708467982662017684769691290719291777151847835315094702855035077372320026215341722033803777223005486362668562849122808796123422914087448022399268442600026838298100216183146414627933785183403972802458844152498240970372208426309333145515676339375901893111023204483855859760503397795780740473940915643946724998443196798798151701726538306729658729480299907893984635200814157962684802923061401591772867955970020489301823986322812685304494169153531670968315312718554769879249604291222424796288485243676890049802099968357166003764027875467644254812944923972607014657466082240780809886690746493456756960361149579106386166437999159057109829483391629946866789377606243825317032733236811602678883521646659058279515476522625224263842494441483738292867760651505409785678810799926964415762147325469238152343209993650925668580143944321610949081467462263079639923321985418557394907608301404821148551309089037496110803558975050469791561978853093196815388769195113803700650772638675616696583664005477749882174398339071432424936044895349850439360182020704494222165142584318310399496377053243125988185582947102800586771397462721018122514099740627766035412019128587672595122948229343169942161300092948485667852796297662165235408492400723547552423662873204139435681338673494472925535450908411340629910255533842408835996468789363030306625276827196969012668682076716545104356434472097840314381304627932947674000829721784954359551190406084291597467536790091396850685529820522850917839192184172360472566284210297502982961446419005284241767449494817382955476668215422866241301979098365483339290802338315097209188147011609739280431238124249727273171428194855010156597127580532243657939013801147297912212113387891450680404058123150837814644222618537521371713384465079226318435210423003117324447597671808899556311934643764381822339484700680710556047177746916071744610177043318268960233154481598446028056517596324049071782698372788108442467679078195263977670636535645832287778443478239177659033672380469481910926433693431355857902546805377573980573353061924903098289218436065850735440984486898232905928589735969030382563141693828143133464259143642921930255769617657798032910143668720723496053435714132150910797920252674158746929830610165365768726951966900172437536777784326635900700604120473652301840794300081364200634977640477892662277491182697459965705425616424608984609520028924029517299931326545525836007082231725970202333546826310481605776780097510189269642692091649078216102978739420204272470174494891792571412725833010175506975930094387630294348399090093171242026386674686075763699804818559507041624489185619072743838706599472187533334474249798638893676954374284050779694942209700951144398433755465831369915828240753937758128333230486856147609654413597640063250591390688364762557812749941474575427852742520181703364117864434271515765359146557815299934341726307778076524330479201300037851213398877422537322767659427451791088556486850624672056843718493983752351729179542852158848908954698414965977009087202025472606736105968489814718564387382632968268679861845284489940965365379361435201183150046893622457283366851435523788563827670576333750598628272871649507590311688134662952191537285466653681967537706783846759428439136238870545428667162175053610599032021950355686858444749766311617128169089368570842603468205662036710075207101772790375126495096973210944568004622638433028368646364379644397138255843085563308939406703204972132918356326585239350565922390643517085862556856688083237135268843163443657106183384012170941030061588428440221819512807271655111285093244611048119043344317335641400306126305844524752643929871773692745924221673227195486155347309765757292244901197812057504990827719413615097986610771115645269827421230390145469244557013958165242203355288799359901330783058527823048705201083956903510185777705859712278782815729035672769976629393897160411713525772243395957542894262542695929673496721432155935201929509030866165698214535499801591459404925546736488050646031318014283957860614751364377601391402569729240407917870210417721890356877043643431850760489197154349428234259501105443263644958702108228502650106154434219696343621152763398850422119867587204551116194829613474106605104439844130899331508180825144259519990394706780764374206840735541632713996579720018911975217227957908594898908703568024742982074318871883066201250041664393776897087719671872993380756819003816503596699261370352448068759362843716909200260983292274475569427507214076289238661279922834034648105426580949439888030396563124308861279352595708718121845194567366924816537749695412508460428831255291637274835948581766085918144662408190942212979787920086943540184117522670931357301382294712807684370380684876950933783770758992915942057780687057597318653685766601135356882910936917054548361960090260148180046122572110827401369025674687176209156429454035746171009127183906918213905905756638799439595886729121927724589865354883195123103034975896107774380176699042569580487589795394901280372604888536520647265240668892391698748540054507319468719746128323991236868598162928639986132658210616165334287387497763893794943142185793995597982339527422005907698901579192938762466436777928271559915532495993284024339771442086450797924352905891024527283668777425652087031637479177915737162132214648128687523498621110529875070134389315212939765046919385469674164497957979696019048888386741173414291298946025533235123519200172344988325848992923935360574949847190063931430623902613070995463763580390447169396756359313752577698182176517920233730744207095852708437098541840658345963912159839373471019866395486560091148203356818609350088637886320495948999128486397695939816276615500720547831775115137739897351698545697313573531618481559410230448632105551433083918025496007220679818718686854299357009274461119290126525196457709379158003879662285291351773686645898383344544796732723489977074187724824392345468779695970580007188365936227727050911419869285569420558138294594715789686548818996619660695734606230281068407292252816471910812367100632810465535322001151839022125296984329006175234497012005358398242362528307156658530753919348662429665319200392041949393605535610997256758120159761072955044806232786651448087946998964711742596787927105512510088597845812517930008272810032146369495423993063290305956378154784769245997899456373240185753297341448277681885550309146975356189296764626123451161046694044115381338403875241189682995562671449315582397020325957418887469931596573094445604380729678816194334457361093677098261638563498354612706626267089103788868347302407899715731775955107326039904010660363155254876353695728254718184551881371576482451510417962272763010745484442782576765412845510718175375562859787573566578583993113087345686869100390046561208772646364493388933252561348836543960650132549252423588760634352095590155091303175766318603627953084534750426299647415073464109749767066477623344522868295586851933245040876335835697808880006519087449199412206953292628263821351676160773303148554934480075414819932708791730137290300198090960851700644375487310498619273419872115816617875681802443431562295217684398725174440881573383426427196494209835211741785499587042851316202265960036732369496351336262341018489854772810419340473075986936274810379691044197809769646006776705016677777833689216231089909840509167014025157169428877450592096103021235183703374832746763536184090614326449468211806649463641804295226065109331431104782543184257911684194754502863596194065796052014038231228420675391548645366842072739569098410208050378777588460076571631472439582920302601721349896784835537495831070477037943555578520594276603132471797530169435904335396583855236491305660949194075446646834516420427386998348340915941867897322587872582881604405450163372579365573658792357558344014507725480344878057986110457517737969312430004031610534674621363602655963385359971811867328977168745105563974248482615035432269598395237927937953928403959453624392998659104859576817599150219850637660025679529083838137194414201154147456013785262181953238202812828516155333248176692551896063166866986222999236828885698207315298274166899542243015644730098911424328278663436207004423129512244074573189459260754316956621324852203092733009801888997500773859159344667125218639550036729233539142723505939427278199400238590440467272289101281353471190773837471356492625669088938970135449150565379853228530436190504163747897433156922737647974395223644993278395835279547084890919141890003941327433772480295011277607627764245461843277249266960236841884022874952625286444106083213105072784752700534269367949461070015512044040441179805478387929817203190080195474722215271601200745762057544257913631805262660150811775408907294081030024857697247300404615855499315143966508649268808979919975592428501741203411388116611403529500948335487283995089154283691189328792204122969623029980798550586454075382618302045517519598912414077935814001584860189763124241798845067587153263303781229440024018449110986600111746665220505265865640051321344759209267215717969928819208439293107893249838905622046298146763992222593982423165819072996040755143588062039176392679970071717234768212298917233977956800589058453325329203510591637051603487937547827294189481584898623549313592977029185298017105001559755465492725080566844715238230939642552602811826657198722139282930393611167369774601917416482133593257910601339742223201794518028783738649549959035941920441161371351220908282996926772045441801843648482477579530711228317537966948165701969196437458124109220016953109652264317428858102805204802699561402794569244041087338429880868578286854683721068238069879599475386646296615066097332049954906996448239827557959086333799692406084120062684660491365285482201996934176545392724956774050642800271065072519517940879595524148575317885045322712128345338826929834402268203092125113114765604679706153481769583718720419286998441107191595802883047819524449433766561059071923958470595871632927413594424808826859076933845831275532434379984925093817963394594858408285340943593177718896283322349695044392482098674611406419142232776391948648294549255575911986389267066205991915432180155623105663475327956202483566559313265171590509375291415727949825872532647089467486995494423475573067168250143718809704617865241745747856852342355172348863711312976204496853509292113514755109083529995223038628161805688799803959626373096092160794936312907929266779764791857731015087885388843748347593699088645977229703674974078646784521737936446778194108624484744525162291182000791670923885794215418203946254533509822871401844861498920194729036948228996735560785502824335836346155778736226788939107332508792362438777088269478468297272061990570351728247938099201739536987343035499284592759666833773555885156386543499014081797515977878461851057296910388493835707646266584502915190525785610640169335118093216249093126944594302264075436888156196313438468959017481119823450168116908245480344075909676374234095841857174140003848831788386734850087297638626929800357475878323751221889056687864733106482284093822344081664905172399380937657721735688674183431415372812328758108317699460367026347866155241631213484202039667672630127754535067580007708576159635261377858590616399479931089318758478116630563490708457184273661476915980247044159596165730222900631660529333010434023165740729430317537658619462439153279121337068157310013135582189733523197164856403574166555376125570172661358685238024797861715331994304496777118920509521811399692061471456735288218456332619748228115439211195515805577366058917695352030932228675059006925635933198133195899112797378109495680494958123536159352326643313557342807485191208970059840940590349307579797126361534400914717954108368992224752683686593700787914927385712773840754983983411310672551272224611708546226930385767345803077394807941597766118167425186263523610216779464228675353985041617191872883333062948403618603191668564808424307842847639888966746678873576829620655055392569244864464677925932532646621033122765267287767808847744831263450793764401456188578920233536344667787297744514673240437452669645956025999385085260084919914937358303719800830207792819419730049235554607374433869719528569823761498508556199081454654746143418649024828718530470533398677515719488064163828851982463706711980729943752716220732307444400976926278370431292585453159821865714501047155685519573718040406400383045963470808886015772042707201279233553462519509439919434681014947062857911172577954357619154287772940654088761034760188785480423684047957364379012300041130214405774109680492243276345275151708381378729490043125048768461482691028619669372462895208378390507999627728488387479930756666798505308704455554306753262158187361811194798954549588475061204070390030049079736837486619690428939307757131056048593488879886127801989047995318599713987167299970349535844083171979882537834717671921246909742786389138714665046479159127840476708986172500863699308051665002685658607633308713533372772576012035442057947963509410012565559664042434122991726932415035476069738400942123225279395629924667346232902778383361048554229431591567241507300591692188334060888879577471719444364904680259912125039486739598160341350097537218428636453532105641203111442497143463236803036230145724272911305030047280648375171154882395176558012468459962047496866119703911452278735924928701188938137425653276513433441701969876601763452703665533493640591548666797297442490971171629322173927320898280345672904510366882623941775904570797869591721072022465773919933161818727916775980503088047133664182305330929584712241968501751191751679885589795614236747259276262421392582357884981987795133869891880206062713481733607869745870651989354051772631900352397647429136445116775523557654330106984786725578687105790055658501055637226113209634135626433473753612703996771553271115310641110685751745333171283972122703504994881390532107106964278984574356147410784988086667581260373402820130180292333900560610290400774280107880452026179291038331006483779622969150854899717966012232910591084082837766082557847909560171352332956749116367662350336086406812292680823100914295235200785446188502550327561987911549085130700778198343996603740041487003979165013395419553001828791307340600741558032136708145245195408323923424248727131074063054135237865863474535845910936818305564618919013292990695727442118890098045685593272348628640215650034304270774486884551509185110727956416594735980967159024859792287972227320789688797722680459593083581189787645603862247289371368126875822172238736195666077621992672720772294699873146721312338273899535283086339089447254267277923787253605083136008586444285997970083758424157226909222822073532036950868657594491318277476118199659958097076394030613987149038020302497211686347682694823480292578485881031266418612969359708500017800414854214066781457140696063297190579287666910116967878079640971585719775869616476068055493789654682613208993094001202966876816882840887017740866850521113330163600526269668818251981167024906064708642861051471477179914325891669328220237690302050380781405518600932219271490194668608263719299153733960536050283879076882234854492660417047050421754584281334500703443288608562194452589010274089642217482359384273781779463194200430008781470986544856381506359087038280599883397574969222319947042887557690064642648529986671772817557194992610762024093349109182819548820334899080753737172801143156839756005309813038936674666502920552920324229998982786569542278139630203695687165909655343076534268983704794039829665920797129773092427060312768603193332966261747975414822286281569041056763617699368837756968156210118060197302804856864703261422939626084770919173928446708059556733254484225516685024970714980427660406982815644118044869737578469447219217020376380172051268974104058658170388613584095542600991099630828771111313421360397252879775066198757091339698002083919002201157240378312512274234832590205509701623022640128514240857739276570846363791880461057742834256404284902011806829025349669276698876265252385495456572031985599283198512155992536159271354516534067060377450173141926041480255600136438443314029124292455715020159370552871320560855349834662093569179025227255459695411297544152671040328345333654669170464175510676621641187309985896385468810207015323058843509905433283958846785351219918652849354561309701754463476832880207241068937543544831994144292072460899646680417355009397921901391126106953554080096181463196499580518574306350282932655594670665033291068644046901559518372302143615187366759914081740990829613659714885524077652055642453047530639006162105041739008111405798819197225649270060785907721251142518578040537900549530660155179353434133583561705115683785894011246138511418713129454192013531573227995743958793410074435986710130938774795460592538809113305900364408610197692445976492542393511157399058355090784802158419989749495338775447808981029414810731767818535168287478310499764972011034933313701237553720109096723130324545088281946726392722554750763991248125073595931446053515373600312914801943168640384282040311424843495303543189249878063687996376914094537127300316485909356911840888540436859189926792894883013296917611026194913179253838398032518965217017052104582031052482365724316442161420098088591643386013959617180151342021037838025771013650759879369644833430405705390464906555853817192144679727843363086301676111089158289088630551010621605615818497663571719584896258783112515254853389591660676055351708470204845248830997012984003552670451534948582266896695224755263409650411039909201426099037614336404710288311005539713032628165681456929783276563406928551004562920889665406961101775130305597133968396390015028957902643184634175360442642625840195019481258807426544909357298832032225470407535854155124697390624662560373363198640052302145052998945470092597278887359087645622234121453522399468075292519712129256844526525913183766173833764960515105016513425620167453530401585006498896506317817280209302239661026499372644009769165915051844494207672104009464545081676922624210025524252622524844560326305034220224427294354428740961661453134832822180631545429419828952399161058451472322525394506448789479903936025775145028672312584953857755004941093452718376045280384627379743079743561606731858925657163771716196384969079404644973809298222206698423144189498625273838883813638772388907602846598874266458982390030719810453223439127033571750087928326937357889767253442981135506110156501816957368130597360976485341372234595870136319274601841937539218512035535304239655968056564583428776472232186857045973447525766768899350792064827186692214463490200669309637918835554995231240654501927700922462915412353704975904087943846830975675181839392082357867689876102477363558619848657062706796879076711567884403568676446218943960140450854952220237104306209745846148722489839437374449704234444215973594762177780732334431845173506352689393304600220463773109322984078423611147206021549788608285333231650599002111780055939195234689900849739891118936880262276594572965091976555780588203822231857945027968751192134750632589972042644618359328153556713736585593798931079521193762823215951533385403169784438605703544270131937056743495525591809591896115230005406965958878933492108192744167302922679080830933064281076706976932554272225799348109441594450373674237002436934075581399433354078546150885245996778420013376463410180623062655625802143476602828999809608789377374257838023278675653868556452205963587022460445872103139175281081432017667138536974122959904030767125585756031656652853509519723304844672639223278144615600020753697174064102646567959832950726627378249307657200720394599991234889480349874938114333472939568342677350570129426713841448347324883488927966150107209253365284363285721911514952479433919305219839584965232196854429546866479540110416487613306051414512202266682585593000105669544962740356684456261408254713945237309259440927092150461679988309671341509022457437210435243862702837836084307815360215266285162956253237530184961381314420460077447431603254645712748661027589248138749540842436626773557264568299893579082202983329186801679651669068907162550041328687504941571616492394247773281093042785581040048725235044083523958616360395026048998581191502237015759210231370741561117890855503130525111625706192587118405681544528500788960650924822544498013661104834972243372414518688951413937964571300246399812723326109435202335085535641287127738456308764892609326207989069881964421955619824148591563366845970380477660333471447789035380609660727385854418424105804812393008493995209275134771545201713452619637150793930231391818653348169629339523755307176787534821511570217791121609764398399643549334889807930783980285158023569000753783564586315194248014959893850597851136227850739970750373599156958394087182765789226217161414129756019522963757344996009523946977957856090771849010203134895192334085794863244935383512752884903526283565784319673138070263026023692196036540386694984253677557774961040469062872535391001062626322440229741679031634848667873992843881659257296588393807403645101797272419588519375105884855566917818481308526420595657430089822448714407276466590287883297569406972554534017476367096386410086952965193887249771494044300668033893735990830517416757605208098217007893537211205010555818566345556237070461813465194670248415004160705859660148457724027740024073257803444994141900454033098837388442470961094752574433458438091952101853347926462064840015554264497639549978487740821403789161126651525685301452959214940023311098769229758511610994575544057463635913261340508826135752257201867980418746576555782131661478917666165030101593197456950910158077914657228518904936320003670156886833888705055943210993474305749529608424934531301220625071971677624765502726567990734021354450235166267874951274243842580488409427341371016375140437126388173279938311665753123051965026540364297173835647387538327869644578891108902192357742113278793642595397307220769470875792034404866386143215229088814033778765026034157744599339194907049117883293690779875412111368632781016092094822901750121819724477389325247742187608744942310105218497203886254319304036304999533980914323300694364957455425020251909793849932994358413843372981302581626041760551093331429248353968984899557442829095902964964078449579768423983358852300900749532657656884392101282053685018860543096238857422106516490637430153584227634232194289458237010629385257170972062485369149319010458234062884925909627902539539236412927551907355430693030754881627924034632652280850782787080795221753066335322183291837105527391559750928345628356085270462435423645990259092356724754212894613106593080340709573295555356911398986108058674444877321583686579908855162428676767058779189905257709445278964464406433171429843882819615291945263797925076729575800690968225882021900554560701461639229520758183107627266260069931649992744764460986423887715818014195669812081621147162102551629414900439168492204187673072732353784812707924898155888517459845949545039766466429190938291319054520138319045461030368631587179307841713139972648757524841266826890669709831875249630485037315906496750541449067129015845918872325989088801510551919584022028824539105337838097171680143121938116361438494887461268228558693905038291432244418836449299764705744971391354158145074319874717322332349406636712516579684450938634309807957949838479020275305521565353475097694291061937527872025936705889681185980598394702747435785700514305582589955004442470332710671428544262818347034784725928430350190188247266909788516753451925685112937723179733369435898668070434385196962403718768976372243871442652550845476596176987689120586682189821459554516078475839593117481805166106634496001257133234490096325176846861431166958066538200123690224402415053916417327889375032593636623873110378641631412649093815574668587592907005433586128437819860885879474660222111139549317663130409238220872672372024950433173331355314480585562605165666907971314679624454888002082635329703649922156260602537137923624195462315137657462171189202562181346201523742176370807935359798934996072951345889710327440022505923454322284280531186936043315422952866946997829482213438988947223271796686562179579636007848335827022805687827545995606092219976486296396186764221245645987609781215306541271105781957362476520710930351498853990349969618636137152942291310597421832418607336132574321487158696807740609004034576548086986702243940174387089977056396711222723271871938369425224459217044115401669136920457551750991271672045108679863152041755541048130977938598288525840111915141642915301089050449465898972599017816887358975029004814967564316770547729963134227787149859758941052371784640594946664508231606290282882624070988568970048058006951100568137487049265910602955822401972178023915249689144665567490901600385037086025831656102659875822794780502778177753457613848697653914367187499892421696177234639742122217447350662284459842902935382261789546943385241219171091667396298060020960831028969031271123499205765322414371849097204075446037289174259192801684321128280263997389158116449299237397394042329455130761800572342305089614215352555954680205149129479269606944680820163473512122220233864919933272662689254699183856487930772647185205770536494850401907453525101291452052673051307606126940103917096194140540503369806739872598886725916647577227537104658010029932062984147217861557961784292040153793290149167923570465255513358774076572410020597696557885742114013653714889141859547347922996691490901342926750023042428483583318713322791214399117867975304332242507101483816640688355805316882507174794702774012186057267332135362187701624389736921218750974130007991772963830698271273557024315464893028264049572145268106785530675426119182535434026185831119565372659029265755310743355032802142178121551242230636483059201670404611155324324396991496707871019813202264609245119673389018708792608208153629652208912192584815354392506822094561186922854644178133704689977580261786541328436725942691285734335507471198751199236059632861966636858888625876348820462126444660392297519221021114411217920667888968543480279997088514851922785075156982079117999627924025314085975444306475462895021708988808585769278179132330530952792489791451802269220768930861353442140709170314878522717638212048018010750506173646946505919199117201911433871508681265099802831396011285617742811749314499954565889461700467278689382712945407117816585938670999503604509273242558093124511813053951790575610800204745594867631256362339046096790445553148901740965841016626243024916593899241218208227965194880030014195636837946743566048684533331754226357849897460121001809665455170871686763762421065226194608336053461926073966599022663059085928528258255445905906295603136751760628581420011609105059994074770587883813843207684443545248908820993652286790699294353895214352335919212780836628433995464045412295099806261264501804341665459105806307889875725279570973144983099194002877928555144750019105419785201100679652543879421721381974154095476178450425907340306924472065407145137810876411351349049570003197039293172596024013236743798877824551147232312516999108423631974620245768367248880995619339856348586845411912336721046016649242882014741151354237901457417373044421309132608958618437045797523532047644251327028295859518057126602078687442559831829473631943192189913801989009537345885924950359135017567186649592676455686745408704970631091780859725630061458031236177466774023138663069711532403106028275316202664948069930354481805079417624244315780389576611543175492674903102281390550470306344038261796351273923072858556878887874195596742416936041752580039811127501406202349678513461596943367394152633426861965125599607820350997366689295979254285962359323918600872595365045333453675209125999679102904497646560081950204960067144065970913769484365716992713301270494072241430884529656729662850299006204055617633359525191480741462052576066975048170431339678274038356034544841250660037513105170766411959840245482772830785237708638063438159812937465330224073796841931948782173632140257721848117241291575390727940403791058391351258506076509402164023977901849422275255835762967424869820043175812959682833166463630692152862438091984055133014224542441965634041740593936848107544058363714597369387846122211481271856842025847747198502908633705922632139371178333706981131903541690435512209505455009219620346827682100913120883412377729110715149624753560849261793808646853157537450337253215298295621336950417877277505973505868853414436613507385783067232191402727310621813563714478810342193078681554940017007311692773843582354243676439408661406629522588296098348238051693529568567064725406786582694411334123916440570258467399900643197008182127309941881719997429429874640870296428695607780867241006571142180910314395826754013809641787436024186948621753763029693938242355047088002664637317705632419466789220654924378792825780823415621350168829137643883067003189517685775291726778605918824995802496390922981446827970887427890708090200219482658194672309069002133300148293815296689032226365404718248769219341939963256452006249511931052701893771340063659043999531432211551657013641970153388442671758657058053497159262697804308518712881765262081599547872902354124889841310380348760567260019730970596761672463889138665476012595098774464953778729585694230518706047747858184521253526195397028137566024965306750628239171100840661444118940466393878860288689600398323302648739945171227818290638449604808161801967018829397139837986846575915213840515557828373708963844788914132030382308435015156859187966955637975691551415467288528658302332632844591093469810280588422422053780215005919058338107991106697220706758581267591793420537712583332193295638453742528864240371390794275584915177063469821544256861221971163578080680780512876906290003262665109453057423370600678038165927073616597909241564197390847409759887431975896300672437057659567432107407874843486172616157001016484640078487076053501239000831952889484986141363445087158305463689875311722589326721257973062478580889575563800226396841004585845102998607305093485518152745306483591313315468940647519754659308331501573267303026966209137871333331066652309870625137583492274163420597076515487375917566034107682386441267424449836342063041278817403323945948452316835978717203993860428650313512793830076654728728414568563093923170071243675937089289868017796781791909303349115988396727825589291909433233445863417998705251045437669100704357478971055125991164735590124111486675357260818817186235767494625305055338730658678289724977385613291358124333957183255125857103561428207962542497646358598747513394565024457931755834604414306974773434391911498941696782527016410315081678927384516243711916219050984381835196672830429270002846888773903039259727599439883037137498708732428242502556570636656169025363079924318250244905279908191210075484217686050471467933697136349080151910530434024545415345758646443665911527068278040719812114717478462477408674338161062218280251007821116413392296625271667519151083419317691994344135980888743475995368824472924712995346176767446359592238297715086605681328894379749356420464973420785359313159802117670139545801405529485015360813812494454375392581973397807903176626180212341508340707156625185410557556963779687604110041474552721513699681611234856167537540021927661061024405538489431083082117179539524720752661038252406131207544929833153731510076025899234397262245471205689037162705807016817168445523678801272539169372202655415944941811476003879323643777604862839125326684983714645176953494096838182004565401096582158165714995833804276824327629420560382438855558119465901697749218452850458585654367488493979516541986165132857879224210325786173692678153649382765221562110012365435684142363147769335623112776501309614641147264444699531496079409697170419013007083838341087883904850504369152282548386668412787579251214610915370497102162272696075709248723727081781319237434444155423880238810610934948537750828769042783819862879221092047181968219485448491126366828927626373974111588060284123088931033671933165092461119487414619187642670946316762990671737397097380218458566086761177808163392884704258754195953806499289633666635114816970358519693754783985983280875934270779312971931100309121634565213178829673945133280506593867399656944716345795610177069307502926875581646397211032929207872663809144000704094472207677051452635644234098928204606476780980258768379165264337405757607916847488248209339688829361705596906326808826281064746928933793073240409645319898978255796120929587829336784819047087278211376417454361341212741882488322016881741688396022464277398839109088523549940607900756191919152090508136419336594019034663728701338983925809564888378664594890585057813128048551952484630977296638437361473880406591396322765759552664453313730807475858062038781636685710920866778291124579014059126653097652765304553329105188021179142175546365942966775466779338689376604800105673145064582487384557675372352517013263726217758297585610134526862844876394490260250283978471300692946449176710375024894725908603021824265506643815211278352584511664436745177846359051203907895802082148169644992665798149026452950841935874798412159115588467276028581455732366874020229448331512252813469875701756457213904841749710254585284619579678094522483476114175220404362025406294400133612100389317323285048442249839088768721813774802972770344890225957203188977593986713847726844532463349078583298313924183443473826622907195706478592401133383116802164417793668664422071529504822076475042582734299276372545071449059120816538567729118273694461336267710299052817255299756179257685556443718781058345049586533326448494826486166622992412317376655570556816356870494037796151832236333597254485716305931358410894718594699514189310596497488259647916040272942652515702696958360321815439167407303613448466017630260995542002880746527872551271385224824426009323887917285882068588575866640011388975333422762391128545254762674838435729799533525743515722523754499775140983571234289862953089670136283343874743332327507322125498579425768644998129137587875377741033038771905795257169682946115022365257392588539504630276315731666849761899053354234464456259826349419488562349636178259151340991308562586608600626075825070839350090139171464755586704125908543868239507867603811310941770324021573285893434369874092472774033397519731430118173739290575225552440295007310207218895276212413361046176193446322251529698688527683798783874932508955037953710630814233459040100805078637893498908371856665864933098971098999156919130598325091676328747575002135903519691175113717964911581472343997316343380469940328235425666362175853671937371899965834745793524842140343871004519923931040720262325107979227490849956231239327203452288336519664587980257691608103015775950324808788367768797204686951198294382755999001482438293367696211694826646852335625637930151449763682968810873258436053421347545108672305303535360050044022378367996154343659979505765849189573050870082460199662261436521401703213985890791111990609195096807698341441831429180456949778277906788592304017486597841932911726699704368848289672392812083780894891668390870468980699028785034177843314895305165723163046130951140277003152090177288977454414347270420930904819774895235836396391461010199096441077184563505696593791785614735687616331995320697668331592133156687993232872646890176180407770516885911964266409590734698739647441761455352582395608614619662245772327100578560918279540087424927489078487329003961162146709301919983833199045140172341567739649513865474130063926033097416642923214934786578744130214277538799045781461233674563686730700610738600669447873636636291273676450744121376559166025128859402082110016950402619923759659904167750093205891170969224975094769280657005849145411939222755169277415240143122368082971256416557179452460661565328277777576104358569451439479924347510625752346154754758793920293983627896778117093786098370631712681447166608493548590738609494947082742318665029850130312939321758438510836766034942269232265982428828149641323348523797954754641102505049380274216130765773326347849324792875848220087364892615026723247166303209144084961121805048094945229345645710328700141429240817325351100050119881606604301321003943698735891712917110409070466736851051676110813259837896715610608376705132829517054001873515569231253272329720283319845822721398828548165616972797910604414114812965460780410605198609940812503649611669765054832420437233955324953061763782925273565239669088428032060616057081155206253905762546920413041320772851639691235471366855076841787381526451439485769775270601021152010224356939461897058481849649934293634518188494445312919710403145230345477681558277479283565240000843585799036732463395048840320392924792160473274182716706293768186015299799395744337098749546838820636459837103703576069896637963220553188361971964719718786315088743230045163745565569257342391112770814976952027785420214624615401624879522476921736724742036155568410328834880957208885921454958721591392311114585406105162223401870247510703113377762233753918633008571972613006536763760028070396533052855993361858024153548920736516245399268641267018805514892934067773502188962983156932025414036111715230355094231149175580843560356152778389359796432255493405301473915624969217189416110717281518992730513397606377661659083110501391382003173697895682276629253396056556913391197746781375986339024687412466999028737650099673256850367678520237233842261100132618529189948795166527408761459129093447941569399276754732908227557668796832188773882248702891132279456459114650709978014122570146187131607174086271858373826434677058079211159921324586365592023911985383638355028780994849302229434712496886865390026112550316356664083983474187628117542127126207796607707870238141857580638825061882388269758377388996746020041575037843383632196462410179834216420715308991774632885238177030295100619121318709453041988612443407582460884891473525548387008042959175485356927207734345150531395422321169091098092163169263628940190672551296880219845586495052909065152456004885307511522009809206725019196057871793615967460638800536214358474606061902697629849710226505773742614304286582538832928103325499468866711526630859572791756171714740089406251004541225023515812074159831831934588525419487904569374632724007986265658305109241934857720775187232225314627069861528499377834576887051948505003872730971601000058162954875315507771798811950178947046813525721396907792497889657128500814094302843908888073562293256473164714475486787627931238423260767000049910808843251268286221755587592415529457722630623853800834398994081995646543155137191854820498432951832160581852274620118481776069921129673331620946864384417381119735906919491960013883684257385146333158945370686475761232367971355132913955923623136828721838536050749338207290987196845555769894049979186821735250389278668687863075708380307384445490543622216060311492875026133114094324128051924064772332184492125741240527052503305711880713836546786257026337580156992965394527771605134008494966686407250862277375743038238188697899814490149634407178792319250744945577132450055189037786328044056489830605452151833979054652300236696610977293570183687696507696797778943834072194040368516814214171113513608864697283099525736345320095846718426300783652846126911370637749388272849332882832141121339383154611536943345304703932899209659320508819390319244628925875448669226197676377838047750802590668645442439534565813408449527573677911054781266821575092881680817820404649686149009322595750090372910273051081327850606693812618007306602697909363566963126670391501211954493907829733798438539145626096199622346123198241097003947822138580246837546263164103543063244161112348318415511733353810688634497779590799240308276467130326585050309243910356364774060465563483106919110047244371271902248603165827049185392007986102198684375538373141260462751713750766296958173978457316051943905658441349133098072330802979235981020407337577677654733454830571120626854010583260806689941789169569091512869495662307106451441972588702937014544709452143655548815764524513750572126772970351989110066950781455477254310186625268037495698219108036980749768362979906211316987201060330709473078562922249798338415824862186391010327723300152448969397349258390527390767009090077831654293583421985676169300990988246148986904739540241237670986913963638233559635103871475736791667377282948920695345454921496969944379808081724719564854986889386231487760146081349565559600768601817444028782627651977646009422464691174869201270078379408887790621272713847083866659150262826359444578467834555849996742018067198232139678074573594844101809324766335735553912241243693103441406638888983944981886355602026827040842070366359616758368351891690920315508112528709314893825848218628389208895637889751063236750012765568655302931816069638864487508450941625432097998181245867964329222527701335439192944355265111977134199523917735442291357141700626153423485151953470079689469878538832463602182088433944852405355210985034694694478562106916816374711958310185091224770282239418759856260320864460214365703734714416272678473575427967319874311557161143610880282335361523879605592477955076113639679490777077920860983931559247765663665218414045071069237162694129972721058843742338200368953426499492228802848601397098158434485132594301654092556540816253903374778535521022934585956416956839137047999045759298880684631117595830996593595602729264241498445375198811750303580098678999036052567671716262033570904525922419211390201326595414871047477917737951428191986180912894504156447338733047081623337755418185284818068840918677174187665168777800751121280991525416263201762902836586112198716997975571271462262688172474506610448478990868292086178753537264554117354931875012488881721267968649667988696791871278355261569009056591571756411541958618404219403410962273521919040039855453341965645931555937033437127532582646467309481274378895595707421160153326220174664098437346457203024229161349702422162218990975359730261367415205049072229774878629461152797322489136734269040963679751901449631970074605668762538181663350331210094201854427601636396558850441588345120310378709193591419909158110510747318229708634768936935238353049949111962484324183880871474910580771620509793016772755178083293683204572582201134769398568526366987288540116140514694652995703365320702098764848431225381936697400070797659203716293465716921896259650066117399459273739539636857559006860109535940521149182497411034333254667004435360096659206943767225491839438732404516658680050607373299015262721639860657858273761672131529675983815740500817669871933141379364565391275550545158590554533671513121972068119168922551568946069141210694971159037216842732145970540882513556818974893796779613590890541135671704970855540572668442667440272920573503898248867013726842056174593978742061306000124442365129643488162387491707550638113353087598188073294303203256774707068660304926529843697574833639618878791631305378719972097629912735416612110024813109530436582747718788784817030779732334255927226927452124106265364564216090249259785866698784562710695172511341550643272347428009834525068570470953771939360032281774125945985487352568926863347408538854620469934913533101361633477516984089657924569496082796591766410768551398382687784677382626958087687667266847698573519695205630809209465127376369897139718759469315491454288620242864593595886048114173635764603334426000224793180402368634143194134100620153564190650631981809741060726727839275367343905958743216981845509990095995390091837571402663710346798332263905034264993148811304814310557417988168233532172016223177043998685879103290698247172259895652695520045219929959281091073959161552164650799470185389435796731337323527044637248226329853086155978050361941193202404348780571442528856051592334708159019180429647736337213453433128785806617970162395165972820779956590395628867595078373971438435182897785785071814021034495506996423867207742123680993752664710099682601871294305059177105591810374549809763021153417656149775535015276362384787264564673557382792337012314289801532711126448210579335952724183461849095859860917186151316609188918081546550968182877717868288325787623575427439421562756168843480077300784878418513490698976766175828158304254580432932495552347795175164046565097575905056828379295558736589357933914387684381852214934959156153213955748982297196119471659201938296661319563641907388135477059651877119867149468890863422287329291272656999772283656495616218242591019123022778563959236769883740819977603908094231467460283279019586111763415107964504010099251417964861009133732643246437663019104167387306586229824084857785603011668415573810033313069947241388403371848036742598116288587143111145242103906873020919365573805862508096658397795363936284825114308181304502352423643506423146885606793792453665675787385216711434592778587486183689193415415800944190993225929246836479194904976808371837135175813491643175167175084446924419989458007218506385906573254170929964736630595665355354474975566670010008363055280787190090274213142829940653965965088559196178762822065752590988121154589776992960158247781938278628107721895931475171236452265796285693782043117434979072862517908445592416535870430540280900801129116119729287393780669853780070042288504102767839061179691179904988302235679769309688593174944481594678410189152689677649867741695141695931548345086316788243151075380555816432816449211118452948038720508898001592797099348682727161505168941609236437487891635739915472389039360294518681815284885299145268453937119739310342397001481260161291337782668198923341685880917066967865051310059702068823450256658993414788886663518040657938925630535510423955568240777872250459147149403248148722460950502779326142055935256343841091884208252681826392265787789260930857869109746909543055348313487670233938234889366211149912314458524201738895901496784482857021533686396355414761486739295463982093070129137022383319010352183735893165665042615805848499500184169130483124797872953454888672441718764979020879771306920478881277914091338313214926483935725171046512657391183875312080333649492139398085620840150049523956579121990234381989481852110832959530557801767399909601651841505310153003580448149820259315965384743981376604955050830449352871034254711930569931779866352163612978893451276199180840467654838009797618318803128238120512023263022343588700333508541891701246670644376335937001921595435662056443523281125824221270413800325627551297375056678238103669592746272937275111405295328205723280473414594692533788336842758181987029316320825640055224552503170432398260618059102508750185515512775315049968624087990342785707055596513117784000772900235922795933581740274082644639660729089530834817846417930828732754315043901007254823288075643861878916704972604038304382797558845033381513256777368601012340551100066505169242638449325030554686928425387740583277842241099210461359725082130337076757127331321057572329906638429296140362988395652033270753791022229222947469895568231060339641986788516124644902043342026917038904212385817696334044040729773353968633931282347982176440165756180343959752873211327811538550569110789314079316371235308724163624897353064931032750352816577157547629984570063705681685292091105143740553845585478854949781634002587464661545234348688657962915208213441807558316470965442396746846575059560237312915601335356761088245139013428794950687632675320492120519225049663727584172380381267366993739197599057170801767224299680652820017184734761262336414638544292260765720545301130844894490428851961609813113504478334218493327993672062857079610293441284272344116305967511682670145979506751751136072463909772168008979099056699051903693575511933809888691914574904428275301326778605395006169087141360653552557263366087936660537972816077200343652460075323846412511757418510336724605216938636345804689235864341672836257406698518473812172668724867146418573112583414669251737748351727561745913203527367529910043603067280550144966466130472675974810006052151745501399660183087708340318883176984539161596677581744369658957130180188600000412433207280750711964351392623248793169097817681668703974942685736575400242298400266275258425157857741651911328084510295171001433305296977778640393133201206667648249199405316346728524551472993147062687866508992461315349981342728572884250771525314326270870752230947335606748073434413549419089513702302075614800928218692884677722851690497618726467276606558825177428006081019293489119253135320671161116875239996587353279109345030027772232325037271941652357533526416208984634058298644739283675705221107123902717788010867411353842638172237392712792316646658367746013289782182072712725862845903001516442053031246427668070673583746272026225079528988425815960152331791857533577400846067319379920675239124691879222904321900672825270427459368903065624969514941604992383022924271115405145167568381000809761220587091539228531111576889054701528981266651793491971773698353383760623750292168497861068204036785704081019677260822039657894681316380814524315009037623220706475564057069791423949433220700299842905494242596323448926310531209213819492134489895084320206051505770534777122130502521562352714795525106478934540169095606303945190980009584151168771694643372309624105926004568155195533324203548450465614725626824018559391435159700673642789739209125466469967135939303218286058697572166730761552738619561532583033875340422620273615931115847164199820942148315263812679988253954172298883438223062282236334995674279012516733868416628983737067395696437280389257656448213296466030260964058501419029346470726104822224176467274817344815643097143816695654812018931899536905556526692047169586749088727550402616010036859070615629622243863294779006331543854554862114567597678438330073648926192417780538816935322386496037361134350759605084455297702210431461782401010241213334654876318727177361728956189234323374476957350160619311439962928033228506326013883619622587629351486496559580127121919499082198800194541544497289721872827681056902294074607121223928335551566662775031203913337157656127403403982226651109083635972667539013579406258955548447023102754422617029413001905972775386044264883524518430854120852739381748359337538281172039381606671131648095955808425661816802332053236807315306255179106677069151893484943932020225744406172662664747154802805769485491313530061278572473439820376762850660114567852927251041351408341795490953844520896079132926869730128056712443116309782064227910921981746009176821196702437613538912650869514220557537961207262984543308376406182926512456751731143198085982185109024340959381157476383880029900941632254204129613552152117451421291129938553849148638607681559346821816431831466129069483043054357981673787737640624926974176208780366485330349265614928603460307724580399726456568879050301848695369226588413390948366880892393320741850212836822074336819261992372804831065257988166194213464407478455111299352194826825348647075408121175428506614262224415055802766979876526597208670626809397314124575001616960321443404421622171407474026555153172422025935623032640775580986554166957465173248574070382585201750642177914037891665103461518554390625291853134573894395622452532601247462762005105150643463346792882056509817924430180292641225654810873833732241742965025615541204255179437206086917304359951435950725789319695690553982821600163866266913354846588819431499612834157938830652065517805993516183308046305236421063978512546602400934800658940458089649232302168046601223546581166040736559814046304020877457629139806945610686318926610725195026766787559992893445410644934393250737717598381041802027404715457270122254543283520505842338596894197057822518463738547623688681960094998199431091260576216144555994408990565051990932296338576130819641482151482569521575362890742070654199770892961308511669074419346667183795578386262535499353754272475734859750297209225794843171908069888048834263601925323883259722415660614650317325978169187561154131799130842970698584524086671571354583818349691229580021195125370923994413162106600657643465132992564640478182432992576161949076861357594465267183603177671093959683871583646936469360971618497027108053614332094950069361270713271324209049402715934642968096768407303952360693794679477585763686324714192055320095887846186391818687852931295139101903560886379089697223795136874783111877369525399894651109849542113675495784334508102140543261812859136155475169435980041237596875828873021005133884482827810163488860599573563375633345911733359665778267936803679223439564505370142641892479297778460664244544261416299468532472161234015433329809376054280099199926882598036983177662885020126979463100396384308301417296526128734599064178376285330968192610600916490853419049041047443552361014538837533172690826621635211123040564225281005151604127067378492411455696315904872606427722538160017457006809583128772660182561501797478572079868347296668787778341489103796758141987414193590536463659458711066901238692202559499143000566026676427624228457830541807844041018526552523675204920588191534836263243536198977325209571455529391082482700759998234546578548735410529110070532693617880425262395620638098953052901602148772731047037427230378582148968440626693551426090587661125422733297751666003258191014554036419975374892471076699692373094297135017304792053367182824533970914286044565149308304062490978659408737350000617986470988581409901293644904170754308343477050080378910812533985245562691722213745078799907726050942614243898277031597093743651330728834480696180454599582638880128339701232753198303049773897700444315993675598440568150367845386779170635059079065951585370323962403305066662324840127553931284553963812671794379449062624263153106513412333987305736822913743267360105182800698215563475122349080519058378320217134942258566106670059673504525502349887634985263073720541402906616345903099618938240959976141554508573815625938534326088302899493754960751060874906284957888460707801485662874642965187993134456625947356061173309711625563727197482481899738937402927758443135857808959845290991855134061439039962920396362397378636746189931030735743727352489347284624754967736532331828184605898698822532368958591311117611915985162464417114380257980895141873907238860790987155744329672939055806666857630206152928081104423029874459097143502939144695685879029151704666661820868203626270530603145416052987545984473170847152831113044936014379072696569919049978625013363340369415375180361604985746753899053886692097933260291828941983758863103263417041029706161426230077395212456355873351442924182371958939889376449850501523072147633937599129487547178822501449483335937859395896312701981522375969864805159849546788452749654060860906643184286081762577505926702841113926864509101881583899837366493378539265035379224050612001581068755540471966459497115750973039632539004519786823384318932981169300667834817502326442565869297572631729822011001467624885865798564126045546856457917769717420215743382267965894846419956401223594075294346887255686631421263862185740710048600251454442145041940906725140374047644861496996141300640551525269670825376292677951614052124598832660091731865005596109630521825930211787110961778637189290278539757683122123195250940006823344300117463754350164373087248665245913768776444147282626250994222018690216013760368454324756223368752980573763450363491118826634429214639120200421851617279773922797605323055097302365081485393713419183126348814759841208202487075012646356147203447737413061939438836161604063127520230962139349528965701343282557933097412166724135388717907127396003302643831363776277323036682315672702705875226089340898942989078785948519711205404647968482060276512840620612914557131821480190714184942463307328751780569506841443597493376151489704823378202873542241586964958279834213130159578485670785874777942739407976411331615357416139965349736336108168898127849850089923993934310390987221618672020359053495805311605814435097190765622847651864420470573595398829439862946835978210457675930215339010127364201472054685618286211154898143638362140051403385721498066359626167204808746720097780718407824597670039096469254610319714422020061492639614945408473279601952745939441675201817815755008963906594269286774893826819242965951144290684300674800181288438498074830516497862990191181949445619707703506241199652583049986053460348565305124683619005825048673685884603829419739903268813029041367494899523420943893750841421327803933362507603723970603197162793594058871002318515380487988276288490965556432977002035560467262423398758688816270731329538298181389911603503062587300266893256998477963125464436968830094840926606902391863933460471725095178500585008883812370773591600352178145425517943291823831901248699010489751986340159883601890533077700753478471554551223554055981620081572871704192714594354113732036588273390627246294829429885404075355633391036476070448408169042012248956804323200904443295778505909134805326550599492814271572858827999896940218487983408011378054266884246020201271034144579642791129750688245472137213150466405817708243767840620139705608937837600491152334755003342275383009897031081899754456897793146712230085734037084704302616756628929637363023867999086351323654977294397582082906847186562974968205674003878010045553673672769518110396291234290559813605714509138173703971249096511409036995347892939987843603131410231338869715515667508684904801860369277106397029893715808547954878352767944516355400367684799601106840892608789239454938334524823241842288178963427341957905344929323478470620926355449408468773417739653416703609190148309307735393783648043698980684313678825145082974087137674025227308819865706490462249181296705821512776560553614805286604513306945677083394199885303473425016816051500069474549708495787766688845163471194229876440169606746516727448822439558090422104928747609169074219454721998398804615920383883375341757126515942056758550802863846893209522846398315023180702658969923237770119472638479059658249877732005241433401018112437551962057290920766056164959866346638525706932865083493395632402038032414677769848965492260281848546348791949344438471429455574860830737157383993847946455248081979253803413669755014095859544588758756729647239224525756809251338879294435736049766715159577595923751855514872758366650449651235161408218858831491982681399547776638369126466397863175438994437925958008399185519786405865664054389751320626190998044887829572481785142781202442400156440682148033884837252118703860117045072705834528077993697510419956766505084951355140900392155437967465582176977578370851765382785275321209273122209292694471309801535046528384920016472408613446765016290045918207961091299594889475443702493440371424399730122249038691437666758074358817301761620196482006633699740398630605810870512363583745547081425312177420827014510491914633861505576657158207840135905794503661303022245861338757736858534568117217392611219014465730498395399445046602414903235636952230743767526847181591171581440052210916872441896083774519838617611297190816960810879578761179046524216066334448921596196662964480209268144306382067729001387391700643310493786067041828103897651344279064212119228805666840846426589833797826931345442878506421104099187378842250687429911664739046455096256913871260875400669566270424949746232065887015025861742093285350300256959759686429988117783154626761094640315393720685869499071649526829809933406855734846445388468142573145402305234940870175878362589586777476011848781143621342559056195022770781388020794228832214792827812249427958949094875082766737944526503190842620210992523747558624431616534282738722714693833375520800767793210073629331665524263032426756765120114747258822326053405117353070927680175160738700168398359118913586276459626838437925510959129970440700798286784117394266852800224121727699328939207299921617524771744185894584489248196683195527872618833305994251115023836687737549386223990518442619686381737696213515132370835585407815186551342855280059625960050587467528475094758905180647962485988663322417440159064220402051959429884394634146621761715535582069630205774758951507728677878843474664487485883964613037443386317837240971159490025361667666740080202793023661083234264291489993839859537166061061674013651839056113718613983103185106761680729169978170086155814961562758252714593729931459995560238394080258439974849738441723588110188082718171955429673072731633069038005807608877585099864180817298753322494266064881136147583930001477054014385621458952532098644656673814995111164590988243507190530494909995882468717477630328596902592040228466840767176291488950213371034957402156703970080664534203412706436589512769084245558449283383342299363545642487808789473082915390068373573845541106662720736402905724277301926714557328784928189597734275242553607121964200465445373563641309982766953135190968258219241159967260895477236461538335631653095755940658387929583446523702982584718394474462210596313226230686989676191272495203703627190419786186196858521776797193101235650832327473372747683147641201726855862256858040380751563466258553705019717842007870034999344266869995136282407095721187931945387519845890617603812991283307665567629852431908956946437796320881494860437972681526122630840140789651719846911571570324873416567974061318562109411605516598577594033195587141478780335078138488901586179831626662370780123370785567553893154266049069049939475132620828068317181439052152946445853010136356080967915012676270519021525741452461827307304707588746409978543842574781704496004666201720471179815818936614398664362185003755014361973334068443345945994537181302910932015861676059396948100915788629085879041796693784313894790810893705212451231515044270088915140753587910020194578393701720564276465814842275720778208842156196184187149206571519898406269494951458162039257321216039862077389176960971467641281631609430365445713472076482156730156726680449853319546332263197894739024236277690881884252533803283096193667819906039734807417139016716989043474841189846564855187252709546501940829243274382714808988827580892528699355114446617462583823495403452653073297139489950768026509051361321073422617930026752843024740168371183697049735116989304856126479530641494118936788565767730232239321243310356009135951209768180447129346572405847365671661442139515348730825390309009085827006326986042301871323517108854764761061651851987665652302647762464392917444404389575606338630337438908781272705163779652415773416586254993821354309617272618545910936736606096078566150259477256377767560753605555021933800961788865960986982382498973278428313331783986764487982553227071286221636466150194097844355357363836196068851935479551699804153564046969122824514187771584726859678266115911732329373023830028932822551588528560356765457581375289669667626382191801602995773243951456366340001881687555546970180854713654089769136899612929381571475286495413504447857000827368106915274185480148378439594856165563591337032691070524096071761130557600532244234303412907813279434588487333871066692501051497937263665587010292244248924148525995498644872057658111746247945525106628950800997226862775190115522713423125987911659513588829526650125836704119187655395332155572944044765560525125933297482089849284593102264786283559797409630202187646369160659937945284920820069651112052198530701175243017745997560421750700314270815155617076086932468789832400643662307543703620903258467481786576970198327310136179458679581144244073927399273587775478446454410876619266956972802875984456704846743919851812500810067021297559294936275739540905375583388338635228702219338623786527135188608541499214880313534403406406553285133239494143693956458675531496348357383216004490295811441854888246049519125130057148183426673507066871496441014988564912905067846562654903424203045935444865451162359875588530624796500760228150460644927278679379248051203543543473337050357984050341524738359118246683187184473907442765641356425485175405857792067728894735951993867264950889309576445013721126334528660305801426562997966723689115774025667900268270661060083906988254346961182401782011073207725592421039080183525223180778891078429647883628357754286926350159891720678448699325372707922748328186183324884090482935437026099360528738531268194075886837257666733092534122415677022981417363925722701466135966729864630845924707017873115848283062288098885479783375947544710923111520898719265741856808496757723531767144522662783459572189141024160425526631010007077246018514471803552290934806830818513392228340676786185788199575195293504591561723861325040542251196609424664229278892388442692832068308511253447259058423292515503368755596652261097925621378687283999219436237070742856609587315697296114977054480178383867056399547949040935573944997006197009837334610602073500750479353376103592360487255471988725241971046322924642435178271445672827212349697831078889289363055060235023271811337786819868556764863177249581089731713523394144070218739463131292473695139481371203017098221607066379212485756713264744072862432569478939178800961072385086971097058382379069413155730709582897359044592586327954389841639664295767349626635456549060347932954400061771524768871583295251874168305895361919886105834407041625215347442970169813723605497000268849178292683103282743511774057361980814406339712127603805633286116769496504401878974027714055948641940991334913771521499344475383674212697838116240425303236641420464708777144592917867418853757373020175065571508224652809339698323830351618075495156300786993956806050725431914482872676700237435952648771857705840786082847788716354025174470347410813628093491242498407679438531000184271388554465979225587146107261103251291347431676427874916447576782954899064802543423407182489258501889242119077466323201565140782132502289356192377403110926049115840834853123971421675026680020484164424075576970456869472643486645512278513852083469098441419497255741972638833454670661053094288264060500231686593589021043174055992869844008508494964868538368479224917530297039666574628990336675586520417629138426388189421990241943595626575742925617516850326508987075326581798639163537602759054594628850234060578227384590071704071110365608322677136358381798073047582731752624526702536495729279504364431781209169098503169466468454723869019596288315288615332894164566357756643626655620183985635559875038443622674204476693745227010778429281928548188788424179692454166730520371316769074582518787479363770881803366564108878137941261733708692573596471493199673790153421917099939483593214926012327293605176957290066291500501707162126919448035816122724659988950008190490165484897592573296224470703801497753690832704923932864678363143369397819397670733340178103274489452906942614236517177976931788009080108771761435935898898021233948388668176212615579499313355453455794481654528884350293179074066400794324075234607744231844133652097759142383329098160136981888049908916769540003746985920102662488855026882677189772454047893788059320625995886643472424072191425626667268866815708107523615965676995931755336633587389966281772865615923492447335583707369698064920136549659917709135501033949994215535493881247329354584402469801664059719475456750160213936062717343096806872702178134783791954491080854685866914578243729434094782523256691603070017310658956895411960374374443086415755390317497933259354303246197201102493563145477424664037542072046352245522056179605916152682737694561587306261443737711917848961959620346254673411475358930240419312090069564075968689382529804194761583300677079858703863328752059545875841877952192728159836578852889008030102835652367446131454736827639096801151145377285263108064765377295276517852802027920726989911254781169889261910525060632676793702852433323267958980563806806226059252966961469574057737424314378308794893317701337263553705281033554006576928707899713991446527432134726430748420511970043503646512228818722656816418930862053170612675915319214439902169312887028578510582153797288446054416659845567291243400741687813304239061803649072114081572632767581666380505474009445778419194474503163830586693571560104804831520584996082778823380656557168379312649259172013124313284640391925809298540401434114258277822804196647317470236001169817948010718336658846645276524768336726456352630936267992380664102476494482305375254349968907579685096351620821838988555867051600924168051183926349557423230916811336812836583229684847772545229544494985809346890673055463407730507920836506157267346867473438723364885831826678863296109388279393145462349154825047955182161167416869329746017366779638847689206613466196955020414516873183017653626904714570091619635170007966473791040270102174422094452960115645490048567986281620353052477143842970668534790413159096122989463670160580449189632097103588704577394929012995406902173469658395983221723255847095937971241541856352886691455158617971725859852428251981133436102404599207179818434942322175245662122044160485719645273077770083119544659109360622549840562601069350956414205201302579834662830517474646648268515937182400031188578513946183423433021256881397990807236607811102272097700958187260539459146440774535382386342529395101930361921723302278543143918360761505185194517581403390153523011359319836239378605522895307439217378226870415319815957939751097685300634847397773603573560154729848778798945439838165903978061589221330499173205407071843285870644459558542342462541000950931210125354750067685108295314647859666571128316930706965940861700963253710194747794987890396043063970225521279757369003103586871040163872671501926332459267892361043524970833064897705435034261182420425028884662435362348519537166713006632939489486460851315793019201704857022193339961670817421965271817619046075414731302891006807754728526433207755726058365718793566415623170244259932426571462135286702581914845512428631052334198575137034558460542979514169825119530390349009844674060486088246980510615629095104614826726372502582068482756074305140351251567322128135539279042966562990407876254279806692136857082927696393156800617495674217091683650810552852490667346205136882173511934355662821549304409021494881612622058067187445427372341400771872844117710744248230111252247654499858980278842323846633384442015734408389246418527500289611006937727639886450342954633771702963835088093612984577651855493303386084388896233662562430000077123106548850976799150618689839875734050588015717613620465134918305765893568836035080081250229952626371654683308280314362817044802515818403153680540409566520658418171456791387765230590384517843875673165344179425227649362338956503346993078055287774841593497174824111492456160780417713426923150288444683955061715113180308099119818435018324963873517150798908641588112160408533671971324099049319072437265579790679711288232329282047379695921630796917487888435297528585538698888051933893336456988086326128810189662240124482639347712727350395436773218053813381147767348697418700308632742502327084882309733398000412142450959713107378048898285910514529092865667956162593599952807331970412022512841334569624700798891273354513590373705622736547390341013202374623230823236122591798695780682024703864341226596798322660003306466233123387668974009769880254102409248474079056973092662409563898083963654974365828230271188951882382370959509267043193345231844073632990210601529195530575612854437257271982819685768550448355482324767407112077743964549282611440189901042549529683973279635356083430461346882181154716837915949642837479776729912140192339196557965578775819201237855080761202812992433618469603769058691610740244579241703775932597885424844696917532597682687809294452314346894785214724630832118596950972438098091538715932464501604265355098644156444858122516505910718011926695823963114316563508564882802212713878741879802330478064800649177465316319321925573879356484693752638438807178935859773296756623943225933126349349157481915385728530552597369112595855697865827003952330714781602729831373008063098680926267360881536053080595587786582000679245906211413754976460805663789101939998802305210128799694580498771693049453906354757504660824165414890508216589104468881856985873848074977664764854146996510186630336975939609919768471593566531294563410483573125511046483415129299669666859061584678268795933056051852678747225553890795377657179927332498045637637250582400416267505450474791033322950565035717215725266039123239909454400110002930549673872861882928863258093861988724205464266069792493643821886056068925789524652589104511073196981052145048568897304502097779467557678423797095572071608779959837522295186794581799130240796525211949131332086791053845557476339116243409854103935594797507250437741581089552802324307631768888652170529444149431127391330260205142134972364233559493921988409970690610609705003110709142712470876211554190470785838078666630077278793023659224208049980519610182940813258236611592962541727223251591556704375569529335302897506489670913631757028209487182233105679191712802745729805431333418795621298551351497078851277929813708552629129056399275618619090578927183685437296889393444447155128274650365095151817699578060407997571314558698790610509683490224027931670038469388078562535637845910215708516096747248769512914897248498140690232722736832501080556353301127183403682174984759024408977478498572312080053517439861253521862022107329508171257849253463765328664712324797470603858715390299741362038264918014308700867000320948439266288373535866146195990748928490568766981616052563994289639823022600445807779410385225779924139244620547652314807264983148595994454630766462795175228248844266528053305642355495267812290523099255566761633964071668415647640973329787469026167331905483247163839723598780821796205976362445591564122700429658201994592535316415221523131761089283921021116794062563884946154892222487421954179876135871715671673618744111999809326663430083322002333597875725541717339668682453376657771955559757780589360444742568684454078804053465544154913053744553135654742056942289932884475503266552186297936650962342077591854100108177501396178697655023086776938952823384751219281250767123915833816442692989735135045659946164782426858311588573398976328835295666582679448787209166118599129078899857075481802555448098591981566401308881785607131607843196216643881477017451088314306238864157123720512271057325859997288358334286421076094704528998660423027974725301661273464246299885277062372943612714494453295213649272255965532661133634936122352227823807468719099552849061739977070672249697162379536063497507826224046950973608095662370144927503657137938665048616538521708639494844213765161676743842151945984961911402049977597465251133856848599388781803588052192469367819045391885077370414128910027153584663664660371163583720014577415339006365129049672931635977803930081368462603027744340341393614379414622035256132056672239885988012633747280651073183292273511549045041388610871884563009394753309382479467443985127275595276063720893742002645118617177142972271071884549585425328479296611120716513804052463129220677116807763195092221574843068083486553374719539080138267032777064805358333118811960377472933275946965279275487613057588181796037702884740418043387767683180537681876750116350136347005140682856207636577472661265548963457929705834769603356424656055546940519097044111052138833938828045580489940683255697808597522506610295196489078938034355632257358680405954105544145653347970932853579122828306455162407761034137870015667320911196532015691729712396628354528641720765979268471353407868315188327874881505494317961779480413855098317626713223699709515188156960665773120941999749502833248763732558192130523726193312138646167582898477121988930126881135159326892028057677193149393544938182996609186593664442386721898617321844972494867477941594196285885267005075387053761996524353719981890573782410503542343736156648050466501525930849068076378608260245202955921868118425172270286261281173616298728812678198544629440974441392117282431970147024712812278137119021774499751973593159086403483701049014394266429848469249453963279694035314054514516615245734592170404330650405672864800714682091169717069167193274497379382866794323765865758719081406927113956260054299102181783240062721708771817229108006396943044012733099014895628379766234792145242988806327472937744145995317388073784947223953856399337319641580752138445421938308323827539316447317151938466821279669073728828934871543808661832117590029882109986194168168395039818051179953857452974061375984920302077511407433154446066129882667113844763696229863173287119106839926356780010696350804025561078420229944113101105027403005027894885135685175641057976611477034306521759712826387847405335665764317535410115373049618044135187884474227023784317495154201148178628592610831761034217759358263936263532234902253538935597251323427452196861093253843763256486570855241443273822869572558966939841629236022320646443078745906494889906566477226118979995745118024147881928862721868982645664725710662701254685693166799393407277366694469576373555390285296709573717683847630486603004923046812147443886375204461934349590588286116739820598539787845011221188166596513028013827751911664571232303827532961826096255720730172027839007355000678852939215713283297424164700220951504529827469069027988087530433394249359002164350289587378132170753331609245765762259717390896771149984246604815094093385275053024309579590007273809793173610636738174425096254197810477103332058852324663596219054436926610567847465004989760489000326596204979122419898592124278612506147479762393483286737168636469369839740860903866244450208305245262325039439890603285853195835158976622700930813760013608830106186745529538639116111588537752778062285582304096918060540843008548971344630637578883181856010549895339145742449133727584875796034651831904538867626725154430208176007397552844386471383361758841043931411995581440309260369661715271797221645981716733880864496256548275475791905103319090931070926317203459695442936401804711897556299709116664545289060530022824015284049895576393209286301697211452740992364544875289141054040431103170568158173343599837564711953942652993963751477297867324579219437137132989098902700574617178566109570404149999970368977605750166719892277165700596166167068015692932718092430278887125539239475289585989479802142739626562561657555155595833027429512012299057172965908933167169521510547864522891137173949685560508352366238474812767675562216011783392349701531971079811454112053457632214854221915592857056385664659303052780564688247705360861538975760650558856924515080120863419619772204653840506363554135442659116760907870280940353605063871530968858415452014255004780856769176048153648849352632522504848863029834127871775154638559118883007699182782511212321040066030142956902018614104757848773972155964683978073862617493236654947172151255523476213051873260242184214007239020132619029613286576984522865521767290961721965632160852446979306733212978039040596687965421212589828873596322514320063128285256162089185269558280161413723571019685490231128885913072118182284760671578502076947315221744201304774788645440351534018845271187561893179390161988885095972828720611038001628242077754377303671174070842717125415235696773240026448561931964180479945951730475982335418098724249180587682098298446057716224330441959124930251875493643417945376749380641832309063631334214428580565652226494604125527402413240289308204913056291181646428364037008827156404772638809966684510773610570329782265335102322433396704504534485533327650786982357159154003395796119035576896061660017053809302721658260829420613177097896426741931322297907136688838966731181954037476910032406052242524117960290166412884851487308725896558372812806242503297835514806606498711328067261710726970166949651750489606313775720437491747800405930140959307274135512837715534155430905040621608483167167167817410217022705403651438962958517030572214760489695121286195591124247923662748286024468551163280435321651890061876658695399463982099099895712264781423749585589117600625653109500718811300722558936447477718911278090004980140220325228690176373117914137257314808362201042788461312674419879927785709301681391074196492879338875897244569985146640983635008875602899640556869711974529149593216320358787804628227287839599707386352134006502504643088305839215475297341489509994479228498336959773631695939680755408385495377977608633237137382193838077349482939480518020735171381445054756834073560896649569755858176591303086660311546028223019147235261768555658680823734347673039651381426861211007524158599173210052935480607768735394398128857253764067573359121529116476288739148025300177854489879879506484146963465098790634960333441626601045139448878517788935134300115703045117560462414822028964605346738195924616477809602029464523239327693591993582010129764748872034074396510939973865220529918284911235330622539585090650271945377007692015348365138757493160470968223816619427619841021388495885134660428317276178555974873737887902387163592899563182698580896901430673626466782451002589208845440001605307962801372639400856180056807450911275348803566802254825668542435495681030518915236718517435090357001281076191553844188013899567063112270354003141636337211909431305045749662792170079873349202481094451962613094036518634546887283291120972305110316955948983018354610887522615717814986390662504923586971508952465096097002526736899688472234666949530287541864573203009099096565201347912002360958977242513106781331293693501597619232143438133997279738824954719614417652538940946154300333804157390040676137643932687402713523198766899858504190185769225146585361191994969054004100258485598502685966813443069325035264849398631738259285903726903204425643332999606927993260679529900076608017086207086621798831387603034636246045313613698152321354096875064495018293492597795605434273712372889601446469345660760719351698101709771711542584398997364841231541844461710121569292890405372667122446715477768498510128471221972121105480642689732832439156399491051681475061858008578661634486467725361878689054888426197223251656512656115847324139473939548819875663695491808405412728087041462378807254507025743043832955852199922289497441210722565056319853832227597333769345135478158820342384039881133284926682492620269264728123100803563427757617518942234508434532330582547858281566158923914565748005470977988688793667141834150730937352025905523526726093529399011010527578581629356056456015370266583618027187185230246386723270870117525394912294177597311609527600838148602133103323689843522080690076604527316651246549709825873785101983019292427993490517987509516459527053183977667433579926725856275759866513437201867873983092454176552132137786995399423491837246976458658406090469638775441805842866582372390253738421701310719851871893738472523804623945482024333729466179418569016037440768088723148386073336446647993424154124841783340312672718150636319674179474553743851345790189023463591368962710334102938126384351121080308014048431045445709378349715041901101890490063026246510360757954734721950652679812791361239617222243659608150028013389702725427836044056659664928746740662299755491074342597257972295029254000668346606178616895119099433749215676247523423545793432815712134151583353088388853126185391246989357895069187439306924693449289017868467811372866869058066147976156673677386726450662774314849970967169264361024051230311196943242706538545567978144068831262314196074072792208819832796587102364089492284287077025590265391816011094414441618283460528278079045491670022265494869232031148446067295259152219628972038435801199110272371383484037830940779634223241174012388975605370679332002828487354801120217376775012608960767336000262371511760761011430028707054688329199123027007796284232886967153334681549359822416990189787924244032035837633536123175908550990745928070165379476931838603314757532257684364833215832157531574585286794410985382687144303234213920051531790055290352379294416947145702819310710396823960470756013612603499824892521296333709299733884038827892010353000361608802128358429929464744827032510268020399245524193710807007899192319205032253938005331140340614942481126384963410920575422973085766217031234155453244621823917943430526994514008299176695280713625873784453794494972663501799645847427745956735162846524486751783542642458293546430567902466170718913504854358388535998910177161895759336177703490054475783185538962324587199812699265391557303638685611000823655553705435188320940504722024999615888267939902975808643128841878093851579722883700956606139791073271629306855298863669010423845899110489701645046348160024481660161504805818372037549003841488972641500296537974607488907735141396875414722227213120419288230272765186695243815709628156821163612449883704460979731382836234830002099351683642586031630326572519041211048740483696013923778073016306967218240184089589109480755577543950279472691221289745014702597057334434777916001605273974553682414714726990683702970474011000434852604569487648469097020160056122218528112475869481185057264425367991934601369143899389618198674328057183742632172805341531774739918494681979862362702246147513767781960582208254196233890737753138868539639015582597719461092357275610269210916113088152409561420422909375311526590836631051280703744491596607106373242908960040964956014810402376813179010829400919653488332314138888456977700851772286095475305051171249733097616602547699175698295164467058031686170439398301438812537680705283982336851777885077618558766928093719152792966974385335134872027131071307883787966501924648915840427691454515112669018958425368866305907611108754508212547695415081796481143442997457913410612907737409859092356624744819772789751868506403226886583939176756386227562214496786688028278535551153209620618650107848230516725598729970411993844382476773726738645306443105538323185594102304100991255217907389035381961554485495588746264472059051187925531154237307814253816790126988300553568858980000053139973722165490654849665360700268222902822208614135454408722914759974650085596937655864428267892422534205182819701319675311282042807369904212783264980086852254741930319503773537862664474849770187394684522418167546944315795704521332631544187742097731082093647225416097757560533988342816835295598598497808665901364394247515463336795288191031214906446345056599034428863919426323034494848645272137569590499988226652466867335087214542664787094321725226593103065880957384473344616082657766803973448688459290864619284194254741570170160871616467983994291907205895032165318621790406709808476300952701122540359741435249310777796363252757216155054244360118615391121171814242129178225548652671106059634782404512923606735015548324848913211437731320964054116427468584961562608755133160248104720529347482291156727179291299718318317227542305710140937167959927767932526122169742377210647799169711706168789190014776401152399984850550732789245372824347155499425654274658352345547603293558651777942392503203457531128598240201349307733125453397153603327185156535543567729238160371609780223478771821561510420427490583257070823924290526912991754609786333531711336942011983718881236873713237012302544328848153942891164512969599644314896422606634183247998836639032041055276110431022626251452474828903470766791022504149116470985798151471088468914021786840070515932010066861957267200552438966496704275840859913774316943811863944049159368271974095796895031339637245180810711433264718190071326665912954544424618968900605769622739215212087703885435151223530123226450694612389968863129390039149838535601197947223589604226733485899884777252314139706208665546922747702255440263254154123433979723306307092897989813574228126860775452749678533961376535820358514532687518671431552600918101697076022469400472239977271562186217097224228790723816889494233750752777603729534137475484862925307146654446457426148017598229608686950564932705201105381661378585696345248627513653048582736872387326001531824927491429556575136643276757497670689683413075731214356628287030528988015784514380534229497549795903301062214956793068169869385215153965653617015980351367069344776140069438545002626297174492336600641832773682783543850645635756522452414413913516648637701529111729380890718904665103935722491424260984555407425104054286279459705625564794378777526910594031455395833377368251887123402944980481758890308761007777644086773129299416065756674009568625892722320389022941445545346665494915357461521453718125829020575898278277754513199349655823123124108681943212278294454637916376712136314676437911950955817338325316731512792391945411068259906254937937372530697959249025899269304850914510409659807379622629674867578257888724054017437091527735775683820792776110201452271235576668850683337523378424618769357930349740433598174327356960204155526447907960720021582917313113758171694989976367893182971015541971637824660839448559929535730644496579313602662204959686303823242632520442984511668174654340322400696951466844521668310119717616189595118813201021178138957874742951083103658371290359269780597492403697504345289493953109383047645947708494862897449921167336726805628841605904896076562116501432942006276347441681264836720917238545183971626649425893108970913379716886574736096640886042742106597050353833767603142698836235053283105289996502257996390906312748839377361886379000936042947725832932167799248679301619658726666014765093884450576682820308361074340733812761835698151680976599754675356379189983037886755777735678493343926177242816211096919320667449271129833463110068161978063136015812596270515560372303691540173340572051965617010316232936864237153046387468320950178414916877293807037571872656054036044058242319663596597720207822396596833603530879126143393253642731610625813334520829987224982358640643169052440273171033102546686349796215673208181014734641968058293555234034325326441857842309342169438570738818509962059076088115611714136411842171360651691136318623171612381691595692991559269056247623119959391104843137456929309369700603996771091798710735636448116473352748369633089875484790977119798927555224789102846451482507310145910106145142002232105631075559061120657531659107371140070336036599567115860038903164096101543398462749540103808178392775449682713968969756394469610492719027146170611749440785003334178748878218308798755995673868370929549889293901261820222437097442469250154036686924516182601739890813672591923343460188216150233013579536731655895398264156515593800310990231540517845238531621934858307091466133373962926668259904494543535635367075757136438623452772954970304281166158141666166330744637131917097942684564054826230488086478359606300556427497634469797369815180781644887031710046264562881483659620911086114597345456698805868449216325669780326768166339911281828142892567802165823426148821835516973019650643099816675247032412760788313933639159112688013065022073669576374812733525888557927072482588723855585646248469277071093182759325617989540093564187351680938854978334954078341962475058099536162017619509699092411576071774063601339090876773807653813041942651200253495443542926844309235503244503192145096823392334792962028728366115389345766147676018059871661874349797553010112228301455803479473946693193914351242519548037749741357424008417327057849923184098811020226895379281160144919011326830903137179653615459312379381733524164192459963005397011625958096874561269888701955417263670931323420023549798275705278661651065279198771363283141651994624908884565919961161546022971072333326410719166537218635938732319556402625458817652558673862054568066452498291402762518107401528834276091558135502052820737740311654298327637466257773946888868842559489654003993947057523605058356860711769529678584487262500706005248451959427705104706487991530260864965469410897332484918109739548161188767121449324590091873222965887053802509629321013478927314950333855347634198417108183976110377062476738951476879660476957192690836911842631832790351292133723261487324157669039696436483209495541654896777431816006394425276643075793402450377249480978652890255137647350873610494950036866541479167620183486422044138088250553654589735531403646460259369784256974833966113422242144577781988637125454860704962745528170223046332143144317095420471078893354883431701516430234246885107641804218237219626670950386564912578265423462824865070490179031288639989797080645019873076372915597350405811586415677024428770966357630338240154947200332602171137017702266487099247297490067264846350409395392346805106755927083077542405101598496027024626255756057619405183341311546067887951916804168948497076897399994687902898724259272583832009278398020760027412579267978210099291942927610257304612990609376751477132415160026683822749095762219830749426377064425240064143667854408224785917780714461936537336974209439544653844406950237409756168320460231367829264185737029538262354673900052811990592016920985300293695033654252086504923000509176104203746387454125150713389417775066638461092564883051131681283585307858724228182114753252983094423060380242299053611882083706175508791452413411500344702518112722375841289024805220182651434614941351546705690644328077328495724958799454759865988891175797746021224965995394506189164352977091625687674702849029569919603112055674655272499803991754434597604850601121064925038745802317278738183367903078275166950508216643766092232535828040892145960857812860803764714597213197600480337673024375512677233671685565074763677451024446537359713840457796510469983481978614570813777842748808412578916276865352086848769647014044020220191684946256239759950522797361653467972530200274507176730770171160737089508773255179017013450494468875945355385334535064063182602173398481360029499680056206050063550354017531573739016164576533221437715985163102726408171604900124332598395811818313911882333891288949944665735123428217686377810909580842305640803743741248307507700147444086269753060441903491589507931061990651358038398714749432995011873818562003778895879883979405581280020112031230530293621021689113635678020616152972338568620472536041998625297326371951165478500450651378871569885470622704998746307326317892879840104247363724080074404610985863556624599301334083335489006565559004826324928485333726636524704390037620266597851325217079312832315731878774813096173630966289089706374471876546142392461016967328130457464495246651841036510761385166157989067199298486662459551124102089757549536689356862377007017980892962636383112702072795133848393206830170051929354501597105384616000858582121750362370914330511648437944402578035218830508900825689033445507242943174057609018065175217130487063397966483659351771753824552829697466802492084092373589960620670594675007604963975763299349925511575494087658941268772138977765806747134556634614615854488718959348039966916470015300501938128923263281361256920181443070075469753580306251135272232068092821945367562755955749831417448758328457825796516318163778896448874951394011116642796562758452005274348071166152146357764496920410494012235078499510589301678748371981376534113683695651364893652503304685978237225404925903669319397833562407445369913953067626873393648116101320602773496997479862151135630461255917088981983499214933609663913678083813293600978912726505111697816748210998406409298749854920541441490139634697368699697561595060895677364273751928868607754436961633720644284368956653459798900219735540873916416464270551731031661690034937890946573169394637160150905572808125162328655591587600852583617672726442538178926528095114900257808239200328920979512020968526775717034326844673270430834428163762204630406846218623918036290714080622617493616406572297635093076165975241664497223506244415618068892343930615694882673136235697355138806140378636445215252825041053611235853017049405268233648515442546655850479453108532817968934738767833171959490501250815456649068991510141320754669695415545908812452469226611622695087557330055779618969526075727760401034931694702276919916944869543725534699415499305056271710927789856031661499425760559916304644474468403642894649486163279508053538999846712659319559642948466598767292970763505929610021307347477153249272223793756069024654401807348503918636537957558386995546795618173185082417600186783764959506144340714569345267896474737131776885914904957579127308517003830268248655828730629489040321597256609444199508496916683915144782053027274775130025543033689692392530855169417808130885245253677443725906502581827712376580351743957383808897198175419378832637280368795467506690426115146661534839985044962880782444471412919246858103907828064489766968979559655465349843883009883933209640768882866258702751617049843899467461361608186753061956107477160372886467275179770915814573916475228738848388166107099832565903751263469757271468341321694368983967941096748475151896838916424838702082808477288657671872905058935484344768964525095453502631365071797845229211189528526786534287603182057669086521973239315084819400529821259765030243097204955446074159152045516471640100163848343555907978903419741593929823841343330072234700676423722198470523794362424342115734419226470673928792988198491130332636816233818774430623430175346925500901600031350113062318006676594458983674186559874991986886023785747311585136356396563622444036513662462714095161016445669083597319364620775614953408550145557644244276758974871192377648827843267038029423125063324295591948867388938535997698974924632859417947200014550967553313136301105134328914585517738788672369658488346043919071644587512659468131619601965440700303967608485184198107828783439003949484581863772915631866482383975771401048596609658422298688916059601170248604524939528450411832003569797604987187582767250708725495693681135360320050759462025993522459023302188057204566620338914175811441440061774725871301687354805579675326382636673123213446077114179900567050726459452740535619134817700186295856212013478103519354859712633400647243688277012321710678148362340748186698403009283349567656634238654269921842422525816992681990336376251252276130187073486681766913717858991877099799399163078354402770799650791653221673508787209059968143800489164807096282422382245340155597567267249069630396004350189907867641930221359829210638060887961711287612042206124449612128506477967987513930847063541826592027652661497771662711736617681981054807007457999536925644083563945502246758937885120364784599511545315548748475828528146396571748829954411620063855912562031987009389798589672964012614478987095226758372623295934005670500291307699819337222299613747693146818445273546587672935523913882463071427383748611519858999428431678001745963359624889407272219000786275801397748658114505660292823336722499629008295532024477430944253295319961128433753518709577043350219588531852709732551144928905052778366769876372051811945272953767495177070666107280829803792619805505890919182632179693141905868717774102135501004287484398758650648071796318662363873422771845524007375342986068650415922325722964329649874934785812648305615732565371100799417208177602710413149451060499934295862981359363217586412228608671613212611972747326520992536309157967095921846750165378822598459086888068863715116127631759461681485774906846647636507988637912052425321788793133303509143066199312348681027334924277163528973816569749149393738496791494490929267015377776980967073485691598291631704625348210581144183931049066667509302084919057548239912424887472169910332090016648336103917745370003720371190497872120864213999675728574401298721544761431743630696311017881800719686303614043636158202151857155507000442438916117392544851009383591164424450875443571771924174142146487991920989207522449055246321411766108505488766519415345840193632531828651840250745878579451583680894330607922097102740694970973425834256303889060530166292936524833335850333832484997781308691115189745196585017565766929179041394262427821682458725021806405389302350765993797704761210373212882670119887971946505055218259201791877581849258727862628497824591650592630773981200512345882940166845537488113307703107083980134986680932645524439228425743937462012456321311691722351728009889477616933676940160447066405185281208776521619168994542468555070296504138043652410930839668913080488288309328211951895185876364587439726895392213099023277792143998415863269217653043229846204920575979012487462637100805930393517685853365613868357025623190677812216893370928047918955911758208692670143396394632996794474289632346930311436190603843721987592176833617991759318270288888851775628628426237447271126351174513013666195872035039509919390333628350639618365788180470723629376478363509908612250147109564710696573294177158982980398356734948543645053008577468473377777010592832660713974123838611070239204877446736306561729923390746763936780290573687529158032528048727408284898660033241133237907426898792472251541096734166966621368998129399081887833683582346238852756715743698193424013686173681987068660235195191532534918920813786285196767632233586930839651337098485288843421707360296597825665002624609937203354242843504442648056264547148060547161098601913453418160171106074388777824267780878696885036642646869646621110748851554792630430612051229599381414057345333002198468671950887577651916513945398994639178418444933299940698015401170612860250555707224896325955693909896795014857529899022360117108966658664748587437944416914483805093548789920483823577220729102514929082801019883484358078555716084546450559841381102860565456072066836255204059971970784446951354066473808075709649614484147757087699235939897951242402204525930679874117902934447871444842177576088815732188729499248765340856865539010912949384429298224996404023618437523862809051546427424036385084289864638070175928860500270741370029123149997657942614488083782006255007136196329126847586757474660001278385002626197380202725743122128102967656987077790293707756626735948245812173055998126964488425564982205982936141720726625048466412899972016762787875594179541175586400065870890558890288654117197349682277893396378660280633709608499560440655300898283545159125602981011964201657889853047926506777559070830402039830517924097560814037818902697233257181986155484782561738184561686676524265126906496149208262044176327870335422147560914756577346901088751882719748984250385141242785323965021002424973176875981868879874748366134279678637670207668323167905128087198573083162062678787637807240227845272405129821166149713370341702034146477797937097106114078411977943883812449097533901604855475561002600733228234199348068314905907261366784329275929739961390587269398108555324067510617885383974703506639207022393111894098868418930227948144298238127222828560409705422373804767137412449594382928869407566130949238639801298850071427922028286761288023012824931146642427559073805869312420932702654684349603191576221776108404328168152772479419633373623689122465155040049211427349556806307849665095611160222783540589127919186880678939266629944447818554319648874424277826564441570034541697305634618248936508708635940800427834959246769202406381452404007801660416790251422065597627392199421683361155594042675905729442010562102834423252763809563260937304121026622325346823900448171710654967416960819003934205291512818183075805954709679504893858229473923472980057017782645884011435283333788280618068833042729163735280274325119624485861529363177601583819303338906593368447515908999788650716715217938522652349338965127133724097037042787764276944577396289472738764664401233588804866440935558720493501317850756377447314669180761261679998789708456681416696119979498748061003949605122852465752714668809712218889201103183259142198754005972616435725718156512489146297659217197877856070000088143321157086801926651411764471972299986188649962536060540371129873742069515224559863953633655688432619283447310184023457809416926371676934673630606135313627609856035466753219619084408006499110142546746815355109509102945880427597556552732853983191764682258911196933862538047174018421014777830691545238665414667533773364123479319090293084915308876616221687609894378662894830197844963464131303608675988974454062573676091565022355454799970291174892794295982909475740657347479386743699941570188910615914193182329493498745772179937087445501818768195423437404090576025972225527661046596682028655107714258350528449013916182131111454089343653547063457208420972232561587036868977983386050281782386585242829451157951532520457704891143897613341211613388556027156580135160356393002035242346488546371826899115278521240360481399908395371528407829710148793402687881942382444634309921331109835389424469867005014604249220532176246174186647257396768538640233642434394135583795597064716059056196563405164480926078628410311228572216974882016603007302203958289427407491489484904429363289039623078656783137043483448282835750115547018021189536734593128919567422198485543648144343549060841480688730879312577602365311499251559639026633623670617502498452232689220950179405099353653531590243953346152652412886312405658902012486200349573605509084131529326912749511493969332631367247256432131728049974380762004741037633908391869560893658766665242032968128111879557092016071060647953688282925361647180676238553314044425596920634313771555696897915261726571688465875971682086716814647438950755718350404116231011341897812025435224600007635362668399092049094952083715265377024014400492978374259887859890131105922370739506798409546775283553759329026928565425647575660330326730282927940809753646881589166936686213677983675219279877395398075736248746686536702190066656751104360792603483364933091596776712907754932541956234697011050599138006208266222065276199726210796099049134674373861056305743383986148523438783397473796007429923472304380924334994927207991676282753542251226127619244863779809422961030242977032664261879471332956569374145919659951312849657052963076076208043267461672685163162371056118308108019540057341416375262012508689396201147192867559510812784680514301789254148421106105352798446111406678636908837783613064793280676005135744626279912532778268595277051055924635570630058414763439995691592810620323386314455124679872796150430929226715512385519536254496561285055430265358982616203755381059093179594507664506392439777060168376804610454824636736381413453363388165445597128056122568979086274142260557229352360721001429012677571012977020223298497098268992593113674528848997404700237438181921089025830115274111838286733865079208696061507088644601854739023590159932244548978095657899876141749241694968877420360905779315036259176016079920727689718298361519953211657264701489246281118835625883100539389164741625654038686311363363869752247698775703428190734861547683608036712254894271411050164901543724269178009653891760143738407269511764826737538979731980798299631055879729973116564018987621757989836335940302360385757922351192921520842273162207067346769837950971605529527853004923191678371401132236369506197273233467083935556649060531828090576153741970589952251006031052299173210625556652529163814670204600222962189076959807155545767112096840817118385658835526514571125046463582558647550358582224680246582480975838160046846938490636312224915255155989647671993009847041601744974785231850660409448535521450253424715008325904295120702273255873113086439294470512712029646496097318065804403821636418272031818797257461714514194842482446195419537767526080311968578201046908337435896317019098369099665570873982281782744683219604601416042475137434620973109503778069843654865196970106209836388094659988348585394064060391380931086676313128037695763381329183299875247578550182199640832219579408324815539166110614352250901516085434663492394959160241060555255816940818698513736420513991469514305262563741072620939961300939463302653786554017799260122312073496519713799274373675926498123712505665359948285291500323644434940956845044064143270756376193784439561938647122586648570276058244359204188283692650750316166902604443079158836050797170992381554456777369628824155185134170478764712125884749941146782170199949579649172920760195033239800630247104001163417158639634747265050190072788492037769478105339394226149727174789464035459841837078525232173320548530388372130577410585823607150712308641730469807491446419390978092449542889803284679330818162717025872988979953132538223612478000101104909722296220472002558188006562343996387136031935962248355919664798330685320347799080291549903850451540528610872344306751818224974025681693710352321613353976606947423083815282085406645075985755139501746271107233939423231228841758168186353448101405307394281665968498780273675566389631998416188241621458716627515776097464527270222792140132861669189063919507588840382558544683809425308297962701973061973416257604633083423234865799564281042705299718696843736269499670195344343365251805649701288450827292109610578257288259784759933116453214856449353547095337795981595629524661358881876339629827213928663100323000488178134707206356654988449639933126562654523280467245993747526840194516316004938420756447199249856594115391937747882846368819242299952180394779676860667554353452405427294870228708934032868142463191746020050208766399288542769731253085128091866646203074007479137322975647469922656444974892892403170089251932368305555982137464326350961645607107294857922674288084347494877557525469882176676264827634536513513807855029861464019618367608650145055678608731834690891416454790209234117157819557577187135845909673450766006168842600615554983492304289316876843441997705873544862785975085895458686968195170377588667461270890377494168282645853461722288181458952628923118969850459371623137137542234007767779327660212865130689701781770333071801123672699141744385700624904527738921182459962522106582382461960034778091775643971458240234954543875540219894293303196329520163973135684781884565743911652716375596744847438311716217139821838881591457765949784439065563441037371547805084435827463403001882688984576850881056651580891268781967578729681376284066838097413617165036945302310357382125717545315262224327857737651150272100159301145723439565205312978785451688637255623596710523790558862968241390567178477056268489887910330073873929516551511462692772309910350010136828284074622765947828886192778562933619868956680672189493087037954096648600172924643361504822759477450504545613661216037769708384027428980199054527795397570177707257394543382238412381890850798925849938474116549791551588133760357791158627657700166745131558888793176006927385064235413337380764564342891783284897166086379629256138472184772493727112082834148264982997618861638422389963720811513209509996751736589302450055644205547022753523177549781157691402642194386490839055601138123159151430218965616841074203510925175401556125716612099344725010952576850542410392911017562765087858231861924744729612875206012668823807009198692785598249278256324628741311058386839974992985943786177170223468762484523183771325860094901135401704955195459087856222559970818184080999036781359263977247046619945792597949314196200380948018325975921172839980579960146717285298291141403427433934828192542444651678862024054216376052195433248703809028489102066412962418988412698822362814228578218171845033126273977286193457613085404822078155602940955429449219997712530644462370221553700887709445689484700346900398211715936056059295553682329996184080632082159795491131919733854790130043697320153482176206022418283482233447283243392647402538496920665023568770604985319133124273625001703927782086462598190048680847399143619498309945929582510212553218441183798807193615515918044162910676509272228843111978857564189418242375865353358432699205472689603212413479808317653810359809459708836780751788000248190098329696885270083065130292512790158816555361192266067296858925395204953384174867799548732849935940155194252999929156124577750043008310790455523731856207356083816316648787499550177298408803057802055484535863672214422594103131600527023325249383873756311784808229634647923220936898882095556404521626238502252401056177583678086667011443811190984144095718226768041047333586070918686047904816057364956120702226156946043385544735767169766165975162657658407500988346342892961086936614683486803198087252713132515031812264968591526243211335694936115442555341589543047008351059208444201549008283251457523725902113674952834557245006014129820506882644950289182157773160138725356481283892868361075945850690648205266160420032076620932209593147919659067978423345817767672821024025250386444278029161173646523504333922297085519091490777935137490845364396074058041702486361572280620502981190974519692625875587794231725028786826427787797922949201007562067341372127510401237573503862761837329607962226885168256783665295168808859329701126724897116104300010625698029299653343985741498984970798960488373549974356607804729999991261105693812436350513619441973888522468470019366039842982384646255517247680914780374242505709259206880611057780279161370396578459029593385705952540832529752001236158002752428368410114456549597699060379414197901588840640712705241646358421682641380976014943292617320971468696567398699267470638259509485618375364878094863785279996479968693626597411265611093322636553900959400414302196213371479194616008811664761303020517846345784954317015955989670414271657803018352883774226897773697379723946750137465056863895174528956640396081079767906722613098855511395377069790932564626936602186020216560459297875653729141925143937141110527460324959645819476629548034950362910590919417159266965064626885691846455722058474963659651502838933442966614888488141153056189712520328540302393258566080783956438309159364444089716279270308087230374998745498415327412105422333048549645062554788397831714043500269033276521474352967182276312609759694635274983818446808155780112806198966718605735404223014502754751933301930533090009473346623230033672634728564662741614075195266421067245618853968940318819534087879055707737887841334121058585584797510327625064413285591025649565617974859793742218910326500310633070449760031356589910999267206237537727594098450692732395238332750643556066250703878152266375496681003661375618220005850115017427375431016770355332048304403950999963306068344255822478494254286400333382383361237599403690189457853524609042213554519399175673646121526445479142006335801911102618237240110899339013169709366334225526162822651871668378355223039575144554762050237632224306568610775767104639190499693198550544359244437573733646074344297337980140538014692381573096849685296576874417532347613736640777570012598158548909731628932009500182460422790873098167209153584500637422776991630469194159068490586575746342638063124740890411448248200704955374520524041235286908982529814314672439033818644303801933822051708129794542015956188360169779415096744159147484794941017661494628341696330298388679422915393679233338341527339429170032591476612004384004714414013081576790499533987705249188529499414397212083314016949176497872541815754790445049398326455060585832901935325228173024584146465440724076114778014655026864820797402062959428357386867678959944844656723543515553056136116687362320310454586178365476428897789704349227075877588066513515415157381077535705390539986385263853840221936658614479215856282714279904203969056457613581417572500804606190044011951748957024225877211015230375090426308203844598365708521067317721621417018704395262004629421259507402817845705563579384246660334496134281182184973130658802678070624953425803621419807983325740979607008910468683247119374555613422368789072606910398275084367880900957241605242774466722975926416278514976820455235980605672624494350419845368387082201115099369066342370393545208613351207212958635906876834746343766611937749917940245393374470728467060883009470629506189618427256478933564207122068136466823254952072066712862600659354575771199283836807823377730714530715295087400199883519922380282707035836090073940161651910365040182353785560671891767665896851747216519440635359992547545963164615163871994917867380710647042360124672803903935451131931004511580135905859250019899356563110108050021041986065651580242089713971097165156073340356767484683956863751770670464181099453387233153825177893701175383627496421779034428039572991388625664227280465068942199808895730643698085621738459938225610778499607780505830044351060298087053759289547329995406501115515021337821518157649968799927336152578639995191151917261666577547184275000948333824233306023203815264824630754921503841010139916265273635631617091483181901507116899068585444720338751962174824153682097955514516455666262308534440003012770734738430272603585210123793615295901771147963842747000086455716267990566108688474216919365531450596096374673623457434636839053428750607115973783677244082103568996655020957771649027756032752861490105822397510038584987812969909673235028375692831013905318134358269463604353791649486519732188382554610542330852248344789517354224663762195247457478850875772780140229176050078270601905030974875260003232212154165806444030089549651505787532620646696334559361622255731430312072514035274048145263975635133910896036052876544824061589303784585736188107832326913839283021815089921691171710136671734430478762004051686187975229403377564150168541673875707204236525522007526059451402694227465712301184117576057418065864921232747749764681211628209614819404872363203573287653764158439908722080703208865711576100582430227990082472158334687216025925637873947519461563084288549917323051991261352790530557430667046108250663349081250492057898316025457984333140711684668495607768600573326040517488372098957712339920492176592813167254196656383894533310141578410110184059598873161948776724117928603006808622429128901734502220207730952579982921241387203803204740855930070281376862604245759186167573826134743537734302998046423204146523075843338024000737418243080819879728960826814721557195076462457411166219816793554390018223450273397061419845386296411767436979338985419399213187377760141691870616179202911460583028248979438840045118631793493028953369389536100374102365659535340802854634437926660903080632513340691131444275730312806235613201307447098963377162020841797648645977143577289998716138073311895416482578711310541043815219771656724554948594246882349872225157233989204149612507876062332976180321485362238266835953789557609203800562502025235020068479536725302737645058136016088643831632628533739196776646992740362665645432174604473163114892757669968351605018654954973010841418255537985971230936275041905247908788728665263618006363399202636899892344998090859778765236783226618090990161033355965962347713246180692931870934227883289351538450286492127492380190379503508427057226212933445085477486151875426661976036640983884086542327424215237624762074416990150262809238572171950235102698623361951837928896238448817618714954419801416761881564895376022045588681920089958282816728374881701862898815649790373235805039775820752222422297858590268284618073075221695272563954984922575125852390418158481426117541509683631372164937581075885316124986432500708890288932042687216962418004291383722352044981123124259346136735567047011772013934022828077396769421438503369003737151443761941968578895218641632666977382889992101325789793725079823890244940400551224474335876621023171056980174618312900408579438231775915361959648454045932070910908904402535060060930744355264559315167643443783785891922377309685863356397236711432739440675748149619627381429702665544351021586894126976799693836702889320148337819953910411217672691201527596794567995216828713296368892492246426051629145940523706334234763951251106228040984960364059953738500187733479334613772205280353939196658137408341306820107629967282380046756493879052369425826731799622387998828364390774107812073104677465258522162711188113438295294896833933866737190697009301952968288021937440637259973089979859714616917876209988500239459767862689151183082519344673021964568534860762695202840244181607707800412756687388288611741483827584576132250272083999701407142433033306862079622378204146971218494081134180390867701119655681205994277588794104346252544875755971733166029132747802352122051843814852050487523434648212699052034979166601108495929821470736585369139332899012996456028024805136535496248664963767754645198495232165270146461297811156858097455915051238260233182303521077166749936387251086910111501744787738936530648848978876778461192037477197314594301456497263504802334969104169534995540577419837813786103438075338214259375452319621441548226491965121278606289922831536780668505861929517803556447965744110045058639027588523147590286046267721713102729153651338590466491029713572482431233431792886792415785499963984225209900273047185228341159640484272434089916322841585404648052007068716582626773686537127780068900242672525425345551905290990812667516211085950076749768121898674531761172014832356231458593873827612526037503321615361201439053269732614665167443465739443768487879709434661307605798896008336046716652233930949085873114994391716402906790811228020705253629183212093997518564752574858172563487134167831443652401790387703103577455220710275073385734098485956593278375329835091948717701450924278843715657766654460120287938677949097848052115774590816812206561087358602413496820153480311194712537237076866982445960952554379814773795554231718191774555866407103726899544622217534828957460821034258862770363429750780491423556132475578806089759012530222744381837316334478385648290236426763504234224258280620579387677559481004238380365770100827446889916488596141607527126360845966779869858891911980190682639418696473884031381037146090356418142038103068160952752791240211333430636422374855649778544405987892398101630401096595381962221054664164427975197925934505715478110301175210477496595416226074160383608668988533695527412144055633491479211180457373867281956233793686635195786901747073688320679058915190330246569699056909251421717151925764944822057824150079393622020575384448423529258369442374400379803527674710775557168886548234580762018921578272774152761109043479868674749875612953930351252938783808927042969356769145552671353485275864962929582714039504764015616162550363600454485838762221769547200673881895630899853179700318867637642190186154836783770944739429343861294544693734179569917952686098553146122281888900075380530220781992149152193245289084098291546423917313641649053319687048867605819401211986853665685596673415507623056981661530549449627960952307746544336014696454769721072307813819017807146777874141105484834940271029408791901656863461114931882971629129456997945447968835397403162091757206574589364354931584598255047944391698383430026370601858838228997380086915960637123105072412971775872625904543337833472827928512810453513381987046841009993663357981180002993099688588370751886094669648787733728050030645470157758601208707556468658107138800418155619138631312954707544147188069448315413118366961025885175463112434956071268146673461229054108318545200762108109857565852722564830130465309346263789439807323531326039044435475849933998870872568364602741465999611782161230464246911947049167607870214502965982547229224709293223434178253000125888879561043318382556390877458856276528312118077110470192541653738560160194093419943949349384496733553772423306317831138753653466080279484315359079185149303297501032490480875199822841046052685857435104047020777107038786934260048686899213972225367302278691280898254830959294324173978900031066149015645592151480801551088893050107347539355902458900940697876073053311217080053617741267431877034889375211501308929161128683654654037568530785683410091148174449580705322761557280244757805297743594588305510340833620365749686254164099895649999155641278364570496212659139724147456648863843503789360570152350445672872698764856418802171138614383916337787582199946739836492070706145078045432533415007684573744804382962157233146115542511785091962921620702217237461322938629068733840122649882950075184068709986277041573721629909963109033269933510773014004166888709893192086785025528726437779336528498125797138631376150561639278592904500418446674437319056321785657692055554987406298070741926818376268292215122641720364889158942908182859136633033904494211486554421842094013149044643321013161943279147551600251783760742090647130230337032301070366013452880233014169183558134339165089275045780473259223994724605672336431444619207319340610463754598748361303826992856852639910851025668159051791025720865466179183861682643301941794570148001080775682463004428023751419401715993619009049185814342228196054634608658593874761063869712894369483578948455486205971645778234422706532030410476187395621585974666390690580587304624546986776777790974271037320023058820730318515239936462279879378843990687238402199867495153063907246315797988426704791961669238740418357533817894559181835948673221856470519842987328853485091788393518452284169324555440149000180352237618908536313638826092267341937629687367723542551463078347385752717403315966545887159762543966268954486801329622747577485001881840347051626876370743051297685122240746132810572880720536765966854483260843881302181271860821209575505050135519305870451676264734770254446200439158319601224187242125528554565320838711987782192474798220849594785554043439174122732439531528709099342667380763345005739679156789247618208772215638408331832904146349341629118388816538937217443885696502337426019096090556942318043384762398202643158182557431489717245594649465088476772831909242857656593503555985381233242735006947963265671339833259227310068296233203907180691070054408928840754582553697754249939829069970781663434106972708076712209429584888752491821370810777739456241650210970606887350501426384622555757793950254339386521913653764364732784675332884820155841934779465393947286769575594846575080436806330248945338334174106383062817202590862413990581285237038225768137837442317379572047312501338561575280619835893044594419005102414202854682873548946487609239053338956852659644556476003711809408222068354387481914755999947768476702336740891985337760630333178371495152338909598950470451638236002875649532103205833524868802832445655589577494404239948876883765436275439824976358263171115194372729398077040041951047604906716995174520942232894769731622364405134505873151664293094187965729994843470239139815363272534332314774883443849529901880331697175462868794463990347925989810440686735383436363791765646390611260819390041481027870213110767759168076224878765810729224688226658583394832095510260106518033772470618618157716221335510583910706549662600504721299851415210328247952850112147094157093628326700119642581858467896970553898663514746554837501415805601246060779966161052594753994078422890343614347281054213365351500880424422839186395217416442037369347962299959437571494832910957709998053895073282870555075417815186616929544275220283778395816806170705975517286468532003237071421722106538145089294308526205241662795176019600546158525137480008532292443299936814827612633422339652989235820328586336410877304541702246540386911907956690170717061389751169566711648618901197885715474348452420964975836314893161973143952807671529181694907706101546665877755726647780660647725619365181624854275234392970609111914866195488303199234083516262175396312261542070319352493706718219456456646213186671719993278690925336895022736463124799105510809794439146569253435069466621428347404123790377838689999387831762121786682352618060920768533171909860136015183340241784378766324614569274107164210609398807464746965036267530107031087359651663435691381870565540324207323303890547574481495288841144264454990776414430249268608115673119772775315378320720724473900569245018242574051248283493005285480545027698427589543231170950939698211559805907449076763046884977414684740096598290709938699049399354293949501877771504801511584231301346620511912431041207870668649438448025995149819691607517825956267079143448806690416163473925685084439908562696866870371137135194098486111233129513523568696413435097454905704254093033170885504132826778865277555486597268051976683676256407276791097212995525621241106050064233688835015022757532424025315565854116590685941244356407408489278699667253583972275452152278809176701890074941966033149203141908148602611266694527534064155135364376109693200432366141320809358231035542565242457579947492730597711482158535853047675460343230515089581485999815964137342674508200851252319815600213334645789837975722958362027235274255676185854631960418216114317760935302237733420935618370020731064459468719883757808853552871635386536549440326990943269730779981054170980736130088517348985132455306895481674671007480627846906895100019373503353207070813744320048758016025206966856282323222132780945370705276895402403519887269306188388847760143669744019880828789306361021673783522030085963766408765880974858009530259957923617236240199371748219070080685327664953619245908603945570739456007933559376172428794042047668515460817572358265889955935646870532113428700027172446026766961181213089706249545061789073059828222547242710411219199792952870072284004626885020951574204120576427481108038283099172649792593408952217132069031153030477797891370625843332787589521545504501753317545969543550980626732276626753906161713393862159510394630063609108782322310933305268788607511444229928317588919409338432986346023734294652217586793583490308361608069871709836094958244362830897895464389839703253358676431615765518570596548508836566415196228573376068181101693450423952516535390378886141618947474107693220090664173942992691168630255425252039183172795923936777368338722573826004182490957100169868135931796422023774428830525963920997033093147626463495376362651249510847053772709728584891944190614748821686052475164427416071509468879500675953811314917381324123806338113245738526967903527030132798932500988188234534320567234190276704886167824202966975761513747468341197900496891868931109832116962623963111214092380223891218421464690782901909325660243234157286225814741592228369183242180376057856287030899694879743921082192175107522072354403835901878620230710068930724072050497498317454657673850744312919537114895828973592157185032437051866968517698428940374664501560314719845009638542163987096733910487392765893640275961235254480174223300145469972353234521448507065028947332604107048169583889253568075185335931394293279603133157915627094747951340742679885207203314940312959734838425397953574046996632650982028537466572887732448620870750176857444302471203119429771029911078686787653359644753446086213576009778671661164908480165888124715481721938286604028449319388207076536334733479370476053520764776369472592886381165218716857907303847071275717661361486727807321836393041682571297806057589256760405865046428568587143560173976077997196491782972011144615207158801078891044681313911434250672207848857996332591443244301424053767416180064392751773716292179151803180100067228824200907959001133155860181118910261428354808230699742980889144607155219291222558932440403765832329633314583851103039815810862323419222148018613392977195303672707389407285247916039409915725639333968426276648596134101480581617784876563925959044999934059976901948243763382975910107461589790966485729511646613315804772796262205769766369767381661234635375558106896355948863340640673203316984311238770642364373237128269714537875784410595541737158331187073923189964394322873022502766866696882423237628686739754898529752237970360714025202697049917124520254120768138065186825624474892671124869143157875627764920410219043657482113612833313119244962818583647215053082112778172903718993545598161296148770128572476554950958589639514086392037328671334608861136299444754424435417513515443306373187597029866808163318474780713545204922001669539963107490451875562411781011571859527779673822551574137090861692747893233350899578834386518193772496326490079802222188882579982005776227113737382562051741288514794817021504166331575619664541840655340294668676657867415871756496876622655175693753389605455228521467906200816641553351517889333067286620333107174031070667897836218986356633063451024813173824695472492006766483155311887840244918312667450347139526366213693713708464338043243017171414678960386329663078010682287760806199638991181474333052654500159390273144178288567595496772462549035271855102050905265303245398536925944082728201823926780412419457672767312981111782695405997553489557280334180570389339200783826742790052275255263465521673161264577672539744896145948325388559088509742146313674270006402613219470225785778196580290420668527331935244332890247920403946044559726545657795403196690495975796766925634421499869416340655466382875799165194371615334949185187124854685718040679996776499800472196877473835283163676734027095938610703672071247870034099319166031312395940176125540574688582371790129506126685453638174665722657500080392510946876344439260065449711851044337057487360839853912479078011806009376286699888216825485968101540063354749898106371719860354820418766924074054321497002668353773056213428319436511199066844176831794515539669354935863582359755399332299483727430346573014827702519134760168181704756632529422713199218431218527905658519213516278229413297712606245410566406696658633651625547376247828318218045035289121636956460142015420418212243945850823829954920555183171544786741043710064037996870403183893405313594951767292947009792609431119464657416718589864881575369508449829787999535845458708777679200054562540648741124017593878055278870173914057208692681692536634223642515304603140292707372949650830146984400364972472451089140646078414667911983276285593774513736575504911707914600962733792211259860915230446539531357142511555296220320078334465566426439670909225973275907357860222677819284923373945722601337198678695401379267437136802425910561260185489272070297281253033339316352726684513605442150214997966993854575790357442245342348063122188597315422649165690793278600216444594061054095806548128819173042257389854995127818117769316680496125917198074036683535801152757308605250108634567562301183873265548147923229920233980475916307638328973987729434994907313957889298859814892384573762602694332207385285246255707203991048529168446011883319356742449887395794489326472228699246541973684455461602092193570419474667776969565382019913866751784303081638082769899250858041787779433255790547719189647016709147171426974174296139814501792338559055990445025094672488000346130627806664218049263321439168700457459158429556850447651344042458216690304940219263486600244649572992747224780029812803373284955791971324433095020413895719187074421707590786058384099822847275062283415123587448168725420022369798370353844666752268459574556336908893858538468480570636914884295960405786922664922379730576915222545082974206284855055742478279234950474391845145328208828424103948931327109129929250185080365254865843282801278741471619122646201502674843644582383214696887613438007471660556331633391286498769149290503768361744164933172296944699134859592333550029476810902161828586414223834673434043670714457677453843232375337567201187931914266534906894026692773123736992806730369999082765246189415490289552405446364286589218258524581918331132803226780434515739462985629410507724291423045713072181860151924064904952401647677826342964685415870200245149735912688795640439381814150630686365362275098839498101952785100098177755121598581176461425126098605099777704485402819092168985148691724676970867473027810235526217282005491360262927886807866635794851724561458200889392915719540766875192070881339851355377917267048163557555608728076092123396239447275016978644590629250629611514416061891707305059695750170156694316756702855044397853162366693468218797009730174334762527461599551001927623322061079066799643210828584445645259749509016338886117933788673053866516932312538452878108983339416530158141443955864320093803310444988683465936036922008815306403356857194913075598630059509157959010823584585891456135065763187558968060573591571394989082494690295389180938306713519295936259184355495601787591636155541705763436949851525790942514372333230582081721552228380524110679081353191366553429701452194818437229544034991151830541287074195899287411075996185917537568420122254175372990902651436235177236487741262014634395306004606169004865904823056210803206789874171175926210114090379439879058570912214802651649818740015805357004288626553321894116634858306468483840195708202846617005604496479397115379970847214761501535985958480535433339415579853141788680904609702432426753029724279425929757154816674496763518947830910463469704850602715832439565963927042054868788760857978564719566111466268573552802414204500672247144634218866533079181959641016235850627389711633272117244180581948901702554855649830238894868138669462419695266545595056505264409116382022049155299922709206116618492450690979186617741417790435515237062309424838173308740621972991790048375665190532903621219539436174345817472370075226299360774415199286281947407678056450942856749778043440272824691734863499284346233112886667966864194677481790725061598352383685857402584807813902891512404976224299612495431454709933433545955801694229378394904030462414428052304187917524874454818427992350260940100298262014418780604093761445589280895171204576585909779902627281354483896420353609881498414744736466950862740696955519143608869855931455855853218096386630592081756956704214924521887062181431651968902686972208714755266821716008710753413480096726391679168551495981316366186844827255700283417128486739701684003920218638793983747958493446312244334807365450013012895604583931612697896463421576716547071493418356628572479079734344493886998141701556013408434435435059293605397688177235787466958860077917563867612083347169709613231079224505218434060530669232010645703176012265292824260995174369479736887261219902366625962839392624178848050668961369988754719604589335294022152981317514734024859866256147236296357844255461446248681413550012984295003432477081378190967553842886769574758147709302164816228679129945294254650961859364584290215259450635571609603579560881876121582584058768679498425242519308943714676585900483264710363669014335306336062766582896553544546130408057138321153234894813625335588071724876858304743149393040325509729261166934967001322340303685196427759313234819190811741151398040584467610200389493828028071646419380531227064061166709216691604621065482591199689273454970465808657143752173228747514162117694597402642473764356936510060436428530796638320270441695637085251274018744889896193176514192316705817991755748347356450378903763035796409179551131546429014686199529729133141858284700171909818311509585597774693201539319570589939447058620671970169678048965489730023243763573251421633145875580171098781240359246535729259866452044639180662860318351714756285132314072511284210737401467585538566400064402516835877358899811678879710358687178307897472071588982520667932365773243715325180623784688024858653957470817624566535646385355664256437823849389105238962623231328430862809254418526176701715398530951650844866870924196063191817806026548673969724153391782549800765246596102073197560636291440883264536097190641641424953387920208983508838366143468681955101930085741684772871409010298940097722800646321307713700621553251440955091026837563190554434479154089673614622327205145078005941558017934953351548578080200419895992665841670681622753373213751415394347617834352717389652763024652009344488363217144013873767272353994534231664163686162192614681414064352504040329211686385681899415845565282606116747454442471593285218684690656812934212448374998202030521361448690630074324929368946153612985783334388180492860243417837429476960694328104316140760957855234458685387451683670192224714674078720338441381850572288660389928168143823556536977065194666278731390146869646742514062680420764635655596665644997044997378174583661641899946705004663513606231115354014243439201321146480588622415407224724956461182967722886153327239317441448211998287858787349844591968624545978457197429248902540447922946766618159399406028214756850965167567186271289798678309348474898199232891285030585350873428022352715898460301077563937798041739529894958020705869757788539318622125586994175615751532097558712294582804317696507867444130763995120715307686933158779993555651792995910239662379241646594383733660252646508147419568055624378052466172940710564658230346150344869396730378518732505514522952634182954244438201626530294541450578157349178093008345116618670157582980952121602992164110957695962807261721838935833478988707442705253674151481090495275909499618586243845801965809137452301916980895423670253029705672352397662829280485106012116532055465001883233666070245833408919583077987329465075389590490918780813430799693743029578990226292736770947329731044377350339800637054465685692697628906692532532765606746950434312993221240649285218917275528004974746006776752368021164415930318068169020465725131945891108556589407412562227177506817318565462103998870386256606657867898569742030266546536372718123816833817630467253260738926775715855159362892800247127003225858812431997620789748512812211476633411871978215036813376315083454445527302902715040745703162960308811790389284919546168649505645193068325310720924710920757107814911749934796159765708074071489655239321985535883876647090112764934510672181010916023916321769507711230978560173262231199732130225650573804189745045976792794564703281673673749603236118234179229254165031613367192149076995173664886357512225296194274379886709301919992853283344601721598513004601213274256222108787304566522622510465123815619717342834899327351498486409282892359684005400121023237202400419751671035522270188773579537570184533107744311373171250983386843122070060036745509586909878604528433618707503573527233604297414763346397491868879830264180893217626696445304702428465808240936124089765952420232243970045419361658127680968915303856958595289206695664455116387605329271314178538663454752185124463960672828999483864913543435270689039655522646797726782410003972639126685305563759565974852724001508037429527159176555341154959455558165363224635989975469342141632343409205163282085027237190589951360353521026385982144941909777730384734266463954662756075849682556746422318389259152663500887260788326735684925938782637220800178756493677068354862165614758325552983961620458895108425223655207920933575953844495244919656797727175862610162860074549644277084560357197437105808920488998133018137213244004436248050693295221186516926931279093610335224987210741940094838887491687236943220498152233827155498248051538595710121131984241511537668114061737831888333139541558651012691088377373385830456153783906249642837039308733775160352763538111356669043575389836700680326692910338400541787143431842866069021480320178728142669812566891682635399941638262089721301726567226867796758408767597197543094606475165165390499117328413672124110838738139308716626120285110238111138975331512830258011845271339493425212146719207946588973859201154159106836583633390136205826004023077756247845184261795688024853505152966549028379018570484429109267866496515475174460049532559737182900277162379455330065454732954172329495466154828026693928980841944752348991485169658841338294646859720416943872117087367949146095198619934354634482573894345516702909499282761489970403168961239497518957902694203256539359412381722407355198003487036409447514770604243265669434033930332865652428052326774121407725695287977105123781832973187866710247119223918196666289361746853135892283364701664028368819761820588464360012340449705618666775822750366272982765393416379575353322916471067559132512698927720393217578657417744900426228177011764637431286817510208499898285224818041744725862029425518825850538816377174407329713537658394107702881721969512492652925961991145526507979720861107797829275906246415009865881416649276224967353322375217481684136500344634538669638026897210102542519080605503010053037211672785994596763675720133872559424127524639912693975504960819645342007479321708677652068820987824956739583539354162005538607615210143179323348511502085935625866945399688648706777824251802855712322822281786426042750564813132171444220018879684416539348520130475835228886579635558831540501851986242072634464259080216355954259170911873561873412572099759623107812436103230506380612954183626724022989433507756265433111296553900538780747278473708373866440851427691074177971904181305930590971724815065460438145495443538788128701430890550952838254582968578912936299654642066378658492862077066170083254549958442780727425063392084506067473544176796627267354613185174926463752858568710344851541670180660951919212661315389633312338899839937923166256895651025075347870497112296771671892725669523706577019404167078925843932557215347908534938281507225552855360748215658318636647936194329313310783406177787344237091518916638339571988445073471117018272018472743039717095892249187950880824654540632727462574039871863974377043323337821943432664198199058816937348478420824185839248678750897663310576039747056557609920104647443580156245263742781082057176571378504803352609744167141738039661750734296287044994342282867111198171490682851624188781047036810284895117764985001868346738689843712352641724223570735256096125624295253464884525137223424238874190229369253963303175686025100299204072593237928593045570440401918994353019355021327154476427696986233435497090954636467178328496864885697708988159688216001939411464551440600060200520921074309498552685500191762413189036298391789299634490136227769909929336426704594352675731121104230850981155123385792851182395532217924441525644707545424483008825960173616898163884599938952634447216150420521481308002354776498734113026155507512689724370846196027791885448583941388226361758763713314921971016919069483847305677938362896146503805956254835359783159524745798830971707241165628238189978519993942435446516393411153784482367623216316411905180621138701231772565307606939323107021589074920900577383801388403890917997301663157369105054270389360140162955843101484691660608192697557269055323699274850916173162318300716244763649946730064904559925740146610944995442102439841142433580361708664154242982113809953320534721979273114355826102514692648476166921766192098277532361492132403630914047611181663887887909418224838796664234226613278903259806585872040608823598308975680000700825973094647871016688905537841953359743614253740529910836975618009205563017665646686466660537641788491816856846947178028007106242954555769135179156576312336893854597915397576650748654844351393754140870589004107577517518915733410918935441722484124430275013087110604447229886275822868557974367646284505155361788838663981913273440809925596997605713661826500258233075978886572938817639287127306943030680681042257096219245251190564163597869321418202968164867479428035290899405702042775822652526847634191395446410050422190310882457100351631157053440109236765406394673704202784216516369729263149200411467983987355136906909356535697615546571096364822726542129195158586272039368551705682878653313457010243992621950471936113576758506501088428497967728204535988649169095612017512855495561919799296602638888584379896744916760018056776552261462464543684826317030845407433816867521280151085065856467695748090586128072599977261600990511378457286555572183542958008662256276261480120373906790435115449232710831933153728356994919425961525356327672458568504788555258373038698281162876229631704296170830467610930509868690650944150141166764790862857611846086587438574595034445194714930109083313423710876989961082934152958318624503094510851027103422324225466819444927529755640522869913578406610703809968895482782013932415870992204493547259820629621187610230338839198346700732267247080545679362813044802910573530614541088972403407970132443294464531946472262948650120701376911900115173476657198046807407305335151675025840430159681319647208220941381119415533032625346542910014613724667821384129311879356159183238753010524085890749694640302655020585488252630109910437939734882514526963150715294217738401051058868231557764315254134626944913619649171496389048388308116102591004935794604985858174143571337490836485294115786844498029017501936571842193508434071361518698021381862352158968810226097095773908490215146468680022131219104173398080096542226476128782815707835675492665299491791850379440535871554216410888315651810218557643475207041464014842982733944162974595210872517365532962600284659590797765488264126613813671832018439498430280756400657255424445983512239796941925729399544537723844273812472641854096365940321499153225599447212360648791286435503415401718774186355896613623693113413012961235465258916534269206225000080301267072781981742517849598450224857032063563826907512711795892276831444597151717175840396687171076604020916425585711156773251217576817939892573996568666561114641159992794523018489983549263245091108009726723959556896267584918751986577076271499531369127466110143626011398536792495824669541488720555017079891290232343780267717004571307153072949102089139543328170460561483080850878311258074500767259976165219672845783687102899731488093678949116278435775004824426923733668028304406341106960962264234834754993593186205958088659869991005374921475165317865946748006405907484329050171159982505879181374069562954112546821095350486094698233779611379103312301557595423003868507512453789218366461948659888794340163704840573799834229846714185190372459477473309943713846906832297248899993423704197462765417629410970359707211149398054134272815121881063893535040027032973185981350272470763727329089064196793746333354827384976672197500782947949878333004890902911385408701844762870765979413902161294144580608528668858992496621841689628276253604423649664818639841350013837094847215958176103749989210378735054413302858863130568249532364420377099345698923374562711496316963391614533413941911713839760285130956465455922007407613647476326140448072988506939461409036977716418120827850754268071383640576004295423708230468025482793419148454577488000563162130364164411601383936364242996821210546900495810526092506905130737867162592685327514509369429754043827074485760223849959134487204764869863207770764105517640702481935573076215030131591923007093774294962739749263958367504189719138733363854217787912314545109886931291719650068063440833833711642621233546648142646905195141919049049155556029302063576283514208996078711393471369962745055142851575622758767975500541757840869555327407057879080982039659009067264173390670918753920958223076850167946247872460246809498487507323195388569588158758658482675881791049609722845913659806768744308467954764274567824829689486432991999385892606955035821364423797030467128799876097547225461111897608695807466676982933005494182899214153020235309888384075916891267421159541227356812022890278512406789988006232459371894172172736622617252304422095001916331840377696386001493176032728894421953080960754594189741941456588139529740315881894752367869544675785803454755795228959188907412123042908861926388664518525958142604036655776278801055740642957352041944027136884878228469610515908783936912103260228468741535525496154200619603603030542224421013212306516999417749522041324885444080444815578409228894719429448044858892456827216640884487560797502281296382233986553135487434354722496642008016641301710223087222129373047017426631609321909438645564464196048130830294800327611178525978446432711584376052795696965023350572500735302684006990430726217290643289475330084865134580423416689973690978337262894862069375845826512943704130524989704018993364129640261157343240399277680282463291839811593068656391885236159715151615963048887315646010133208722953208029561008668567557267297419237472198128429915294386844960260761566183015928371518209258771198560801049905925086624457801638960410118322640677919400878765835905241475298384898329928138296348309691819911215218734196198191893441749457977987145477805650970742331029488502459746822107741728756865299202129551982403487292447827415478303505966284055222840008514566674986920737791214209798586203050538149022316680188617332620432098873667029200122612093193158243708625639900064371396460698450338170631113740872575249998063614926004314537225873942029555799413358695281701637701302709729574256556129944705375846854964802818872150018410138847823490503986706866364859789550470116456612024308423898339835927500081788812466500099892655804766254858182903486946910099836645409122940969498148722845741506805173337435321409933553819983634028477764411673311607938161204777431437495575051484403022197323678792085316357375569616220936355791758597111500385854189258005717071899516102644933003114090986802117152643350033097225490158167042985944507122882077023033324297863240240081026917954793984296358684404127461577497250718021442201028152847156956240794165665486771627030821381829995125212935842422060201153121337090975330435748414836927054796869012253877221980535554185650813907703611012704329621931612154697803514445415173452689781353740341339154696751408248250488000709336623012453849574979365225238654601038939836485585408972290299593516853633025594349006216748782095391521399702469094243240961275209420930762722226803876860834330663942172343113215939608946624873374181412250615084926982596470839229713768307901946773193894580182670637198210871007971853795663922556835831388536234926694601684282486624719419299651076081181289335569019038385388708060518623923849199438485838978836959430900760686605474403616830623619756712795678312329544722409954087074120492058667583144038726136888088420596820180684547284025578521966891081485441017063607674899327472617848968793438794124655603235876020412581126154514281799135539296427288182615443519143523769479515644897019502839590457145278454345153326990275958649041749133160378036369548934805735307070245162031037835180149129821788763461741148296554980727791351960199928581182872185197605954400708072084215880455013374057827610139002087450843245914694923697505442555246209441052114646138786032270518436143421060690925716506611403701955466655219532834529737641613760601229210803954353482826628422786260928126974866543514821333920407092363997134631676158294088648744837242982495958159797836155506244880774629819688325240688161681000073133759184769184298303730831996234488202290887357063258562804051680000381399072928239571661447441910954524887108378775854675291808763959853799197674551096738215506161274071993123506080817209628036136919193407299199063689930743170312142277880084449035772672179996853440115930737215383566602849411421563472300429713008779622053013735317596486567485779093845658783888525358803292440057246908595698347498340812529117920578315915258007878692209162732012593478622731517557284132646267880434342458957556286013717333938461365742981378331858011705202680579030300993428895343982159882114271018223686623151337188141631886820214430431748685374941971565737528374397156024625919948538375323882511581164124389236821877660155763250246105244013361544607203129561237349650308620148931495301767667848505910028358936934386867599284134207028418387657566973792368321326933775782886640358936733829999560057488665001944775243062886274465079951683380409204934679238377200211609311445085271799941524361956023936069026190943086291787823940689495704780642237414083851974117077806492463154543131223732639830422591756607098364341239530012143048019628139004985935222289746652205103560125133836614317455233176142788548294537473895064032413931271064701611061899133231400070043974459354210862863298812788054879635558453904902998356956592304251034446727053063575322863095710450967016468370177692047120547467038048739712016716507485139462319364585163333961085252022081047644087164085207470190192435597980236459833851277863016442545221832146745331901742954044742737150982585942062049660273764687901819588649948239211148587783278854026427508020229225351736188465324528565195758539199916882454925497146171872957777407319417278376273424978315379604409958652807828802973546512663761724462998971973431854801000637927859684335138846500335859608444635610737744280855003105508815544742350652619520151419537166797941517595108588549736232416427039478557139399922860408636637328197880087973200176346880493708673955007772610128276308826218999991075194256670865233207537500508074684848180831816475373779146615875517364611532262882450135440610914787916570801456433242235213606457580630721989445064322227623350719344364531956422776522849363312948823729650755854135853885336589332184717603575669468770919519542309118850185018428550656157070187000437264015859566325192003234839441349518151384018298745114414481124626869166756530920943561765084074957835939294729345751867905987795095787279834594837639632293182138843494805862474268803220294466878848350723429102750339040963800324167485229930311448126952568949991656364336367623179736115559005365366771372075465134435132544662072353494903461588939464709742609835990293869287929489797790099541245470860353755817549239074580197461361372325027533115931357316096536181843516421164055543102770402019494687967350827431118313765539367769886034511453201425033957213804992745947515474423885966513950017874030626859417960832305850502179994767085884039185412574641942739327549165109897423671364313770559721466420973914392215951052991480110769588534493691139207717315810434236582410961324804963787997660187490276962314518693641104642859031374321630635153769521417982395147813726025043010724689624509721311867814269952376749498825388139874834539469146157884166454176219964770811087306254269881810319668841752618766615898798756767760327037748112725892818469283168422089239616561644421672564396053030247658070761137735153323054616649687696556754057143474260609452875093669445097362656234374543382489480546060756475832435936585660787610358928132868735191984077313761291653515585281227325375400588325327501025565839472943329593630784925816168283859081049123452487145752333457018827751989806978439394251376000060957532095013997032814136140173558143690805157807491407658414503742670628276599108881394369937123197367244552976799654219452186321237231975309409660917803730762906430897061427857711035355883482714051136806609205022567738633865311623932199759926582754830582747232015391699408508666610021447503783053060579429076797114959687253109597179531649904235988731068619503814262241059602696295477176763976473575773857194848673850968061171407467310498773044441984353292693380329024964240461962584554004920858539870183604786034135493413139260065261922058005424903006854631902786266287720978420601350757769502158906065528364740007717803730512311550950034312492671946030740802497072113118330328295195336208293364668522675921422239388127358151603299375302322473847230946627625438216764984776429737137817203570331846410246633007035751231599440842850058536443708321981503215895192005405740695790193251260646554158560532402283839170122996348365418388749914075648075281902043215897322633315942297717947043124926547251885589147152056025414455937353344782554194154595358872810800727477165261228059928943803311961402436839537556643468130729928751598152954300907865578965461377115833565018697369296232015082412200476128572500996345115556086877616867736480582535178030184163848890992701678003874468242259255011532722254291813680238564049363373141650297100632511453016807112522984419233126852803782380806886387586641686542653874456654487466457586565202860769717660563236686194111122127372580591637189659189973145110682539545699097099763908620577289209508793813099479874074161748960312345614804704808969345335484732293075679051179196021615525254041272131545294526143498846467362536710428421378496148627419405970708275363274568116533185954431030139290758645333028971038094732446466856958970411281377776382074406533846418149826205117298376396099824892635780300366903472900730819310880286404557426389024736050933246976675137089889292645746328207897685618472471408742666004675850932524535331062288865654994181725530992327376202755715827554463176653752545170422842346782550876282090060447774330060163389391297286772687300690365662534723124450179279145544039677810063467365530051402575876662899655459576348593505897878085983277956247958048903473996962536541854594479626497024696463550785016450496338130630114934694094289656403352764776714776598567017104851608529173739525274337151017114895319514538917914177510124607967792075037331930339588145382237277038612737444476243628625714185904491119624128507158036711002541003827579488044543175162956791362690198939623252061430786390853434639624810191336479314856143883294279760182552023797559638325707717156398966102497417837599984817582082691121475835492331970528995655147058469445187035557468501275364703704720284370372808478901614772285376811661602791174074184744339153134617856134544439351029329672003043787869449268226682154820758253031767768564548535149897091041039305670329204146760693716524414057835943902106828157570536005373188367018002077772109866203136865609770715713761050092839675261718638841973455397877623298046635509118238908133283864134895232389970215803441827520083637093051138178554028343448389916408232462718331225631990509002132387324167822497293566052768959518248072062505199874012581315842137074278324010627488426547618467783792207129744831166931529196239232395152649444526719138892060665263758714657114362718067091963298176971193239513013768377309783551037308331414880153708231111971024282904590802045548122137877182154236759014464127588265845277584475859367121832542779501085107848606108456938648703256914853862683960155451869753971241517251753129347741689400212144485831293189231539050993214442910080048944128446209281966869643071196232759349204703569309750384439227645901688965040754420039229994680043626366035318577106299556801029917681214451612269673809491457701825625537032378914297494074896274161012242255540910957010266969775904127306644619444353398212415316228731936814825186291091195762708255293582605912630935055627803690571779170774783244433905685995788041563465018741220992541135590670744702002146677768299495095852364709964509066757746555416530215848464937537482199975271834286024891385484513596891425703217918284245018195286548561625208377297874546807121343880442120752107643236221193648195600653263208231941008279072617710014393383544238492874689942181613914457903409260944930385496838124023303601120939259490299039637149654318271337464547587610734332603262333108256383488394027441664279436852339071589186173888059547564218800118497663979980185336277954906344094196377646704145284472704094283531713553130614502057339324696300736201829996423770725372032048960628816002515846165845787932830501389207139278436608833505904673491315435285377840395607309503979800540661923765309976108461343362504225955899984851126927993914342442114491833514661903039410866984936205122134904331756423817162819048018094930501790354504830461495085190462138610106008758519903182885464093293118590581590179754713484940750089740963421720691873927180225431738995155780060400702303239818691303660229940236249708260181975448290057616220187577801922145511561867596830737146750935447406013003480740676398494699367973977520301687343679440181693913479739422946123689724817557729140631691444168157238415169880027135916099300910003715836957283388172646042401700044744147023395258366786158412843461481269541291370582452573204188385687056902862173405875052648292144744271518070469934841495730748844746818726833798390558773941378521973029688641749866471486761724886330827389133935533281977872630740739731250193016245138499185041262847941501020351824176533697201717112061352231261370157374198559317620909192481041441811875938022410915956443982255254677978797546757571415921361678237868153540390046218840911731935979926700035480770084015589879729291653083012653518968369532110919994324454500364885574382044882674635639000098686900359644976150426462579939784037029158578526846968749950600137043504240184860378124789862554062602238166237404097594924293909162967548216042789963469461365600966032549512592342455567009461139190636618679830117876165889409497538125948149344252273578438243693849742459274878719718186758698596300366359813506663461425639246280038055061774276561229823000851100228924804769549092269776259565132171302931823978404760167260361080137925598980209776476804369364727395566111981556002348922188871315116343064926023316847144472326733348777440910206595702260202532809705659826170528090649583479429554473936620069954984431480167732176739283313887549457286425141698037859121912724974785389819458284512904869312217445745089750725997018298617555050373599298626845818046380930981837503324054920496834409954845266730940185757829941822670200811807141514858662459761240834921484415758160921387639727927398144810059157252346517266365641053525050198899968240195907230489087548469972578598760406859330362328858840464779617527959047737777929829100780399320693571099147624602633118816738631587110609220452265196515713742116054097800127803578386073865878234757600241229050879349687361110982953606259853671027492401580670362925144917489974889163335725317150509557454177868653735443946034908541307884767647435380128082631238493324712991834922484372461844968839414755874257471195313753913585352515788544547010494395334511461694013703926244003117251154252645171939298101303481421827342895481807590133992924934432794058158668417992321858671325364903034208041463525075236343136304517254990172031634972016708617604450162242694677802158335165982098452617031237581457897978361350258415423264987372253580281582448180046116090923434455358278425135049052391555831741959288034074904580659114022457814560011739849078763777671619423048892867291054372415047404057964410865004702965264778239248101756698250687803512066438025492951140952192285928767626675131283106076859491457568896328901476866051394161505413377001724374263737801041870801532010007021070874764207036376196390095657934982118364832796736335327944755300407338927339776530929117194235701395766481941016018995843165983312925824324142022673031534268899719827598659244833709969210809027754705910943795706490788777568585469050253234979620701747704388808175579474357798267825944768230555659595697161058668645654443461185921064600689741395336881051725493367932248595939954174299868369222983139221405028639861161994313269927632247913346522970737986324064642085710998290477496487685914492245377566625511076686863220555439490794283707507214801020989759140525547558776827046814716188485300809897749417759158434454426596788339328077757231450350817953589129336592693075382772736892732453152263227899743667829386705015762791191383812027552591143765439820187760000345974746230702706943554733820701752071134329521381304743417323196217568147926064829456566859101552376272702561212012304122596397930897725399231768316194849969410750407778400096977701479341957730815247856346911003279887821418141286001269392474969962793557733099340841357651701988624405093147259314407852409799642346935642041832673200123386581080114525682156203500265768433098439748817509677497724386734517637592315563167641130851228578726323009281606950218475920733635486873580015603822289849514716707229595196211962539649352762579224041312677770296217415221671357040860137552462840288774663704311432037248182470635714630498215394758667205713658716635456585799215433551973317365853118690686979123017972578106928780626650775990552820832860431539347583659174008009871211514211223294479153114838802095158554334367868675256199823958905512401900484701930679151386932140308438563776021233290869096280065818915854727032369772826125944854639717398200348735094851458040559769637333622354543855888920644352216114549758198299693608652851279288827745051552160347586269239580987989000688612532006755672149436850356034320121669593099475676066161206803831394399421394563024271716549653987343023973289432359067626304402861647647315980926665033263579295336086580238061636096328585874370222445034545825245190950223946424850603250596697790164667294043020723290796104324778204998068878320624354885568907365758509294067711736613779228251434311440715607713066817192644764811800250490677165325019420043317790802021672165614101762731959605668083399796448240903337883116026904736568909738530773487805936711235261134899942692626728596691823033483871453550512664417356353610049583084096177837498249734766117010914932642682801930264505595378119140732523173334731042141084911266752016875027097169314614218130343570991835255841010295775928080145576991389899867962292913564458392950510650846869085630930207258676641803988102685553927755793989671261264202121827908992712494899902329657247936171763718492482300591662042074503424466101724979799614055948739719492191888887126019089709024911354724953612202387804883932752308683922551864051466723761272176957827227171450396329502511779704959603920084088571955598684302266263967226791744886511403586516091462179235314993383535194193645366170512335491229851468367922377168605371848859647789321645556756846145567793434218772297255867917394412160642246345794251323862829284379038069060457695318575327981194691509760997947400663958707371954123187983707760844953959920933234211706096020694232304762295194911938632417366788044121523640839408797377551770248027597673180417506791835681541046117691540053477716913159759314368590518261542006346549720185019427522147584694432408249564048026359381942840051052017824550561141357195619431399561222906770702721752151544779995939772389725318033827772262502262435617646806397591238010682754855214160154354254135761455571335432835596283019669192578692178085893640633802017178495033696210113163916476875160279061016619630607945095250586670081767511578684487265998934031227094100754643488633116358166710250814103180977672261774570475951669672816858303041365633583372255051065658702205520563955466249252496701313952221880249645266025267469953033791205683982880984114677925875916192656602131657314549310132162747881738853409755527715386898687626005479046641995709435709993247100454379507484918607955503818412357920968183045547967126841937581070891350227521295488262228270001996003836657595841784822018060134638136890744268468191121285446072379980780737780084722382004607813543306228268569877287704517216506941884514730574778024114296884116144135483612534380717840056778632885738522079688261971704144621163770593482705188948720989492243367877320063350272786787946657489291953413460240504404663498003775793875963180310831423313148508999019153209798806807619545326532405280459779101751546216852169218194673354683817559542864723544318346107640399946375272468267077180956664207382158049997947139538281490117128036639953915700726703857344340447314652138938698043212644755030455649299425589583032370527004073944727343244887880163772807151448643305108678855201012634054536637366419546713494465843646610664170620550099657758060148300750208469693916781323203876698422462890868977910042650891067808475882905217775254423440730718608101555739557240571350965715188332314633984685613718571881571729346256570411297468660158317920304770701830859688341789332174378768955395220552639551621804950021000564779090476038706604675806340969274618994185115786571897547936198941493804142056110522821025189954346529875710775413504823003713305673298426277018428135731950027407732885627460046568412157809883619516263495287028741272953368188317831424281342260910490518296857944403777987893351437713891466838580805946496463216164979811686407232757445122804110834005471659273195285222966877985235657839537394142203680048692151475125603438992937988967380986383600724010209343561376845540517084491248460581910854516946395848599578560489043825171529378708781466142130669379747083401101378444507596389906432744913797968308043446542626458643235825337824059928597026257962318226470351159132562924637439770913679725312126218882657268823984669977925361366004945006566661830657635364023492747188236873740191325633633428544516303437584792505213284773070305295492030559174250015448374990672032904930025812673205227339342058724064299295983470524196324953499612664354090642740721298143945561474892164175026844259437950713989280655881092658214096953868552741792300009260192209797640066214753042766776647054231185166501383400930703709763308847851027764046611445139429039324468218325739610759498795430973533943055604037205484923653636366888400178645688901326482542821940217195652159751330853287104133049678501744304900487206260798097089591073407132638350242221031380700169274192696606116127027728317443909783029422727673742013854326886396437347501815319875863200281003811522646604518637536916638180181058756872791592452654769034912974768983315702133733390975623575406558325289243125638806778080061435543531790482686590733527245388121017646081766941867266584733902788255736113757814302344155565059756766060859280391979984869106442515736672415433296323091224228918768636563266298632226060798830642149373363382398816295160207825020258039106509047824100960185877003293891989631908531599427891266551548373126520513371042269383442799551205814377340086608503193223575844323912517744039069324790029835978050326776123498472952798399590586624746775810405092607946571318688588267819129333526403965325364644665273996269063024777540749205774378899725288225090480563639654339224841474374176851515612623261290450435064825538312776313109616418360395695603492392045765785283520540570628606466649152200914164639377749375268649561691638554591040707473029973089064702144970201042730788862251853378995049440604567730836720329702551196243863708084761568932339564778015930666231843978582102081271722694313256976774840327548324356854948492428329433069013384102396709817085653113022907135827165569626102669857532808842401479122439688431544609126820943599311237957668194250508597792399992079869645959720193908435795565866940410760663074033201278025219669817241433992978779593527565899781003443714117859047019550045980932586287581076627081934503411117575270042550252505323154743763293239803666685565723651386395605982583215183108940749346710817086075006529136973997837200833604470122226166136449919358856443569214675045650952697395114451478664764589588798086722496200284734501847257465213340658035880454436645950415105093238171602513289535283169801442203755855483025816443724711765886357087968513728983291510174450267522978628677536859975630759371968861347984981510850899196875319295081081763496528309664397625736177697830420048258626982142008639309043123624981259435417400682432127561369740190725575818117024822226821624318764896621535034168997647873698119265928421621826277024565294147446508882357420927412297890025916343751312131814939593523964689614858973241762517912134853804665569086027382544540728635215981526769687476679551185474044580655824712773240127320242736297824685992828969908454476911106240968372456530756773032844628258121478098332313529642006628093444881070798389583088391772100230383744048537879932462892007294581126283861723766310643978599029314302019310576065501334522453969805736719358918175923192703444268971415445495249462340383117151926620630716953262908993692290513916859009064555973695522693529940388737642143219816217786905384218991097469366619001472328950802260459799629813373419148645453577917764347900378924371958686214922484197658325794130594674759436195576890882045141169410344703370002601207810830351742583400786144151208538227428017252506175047095132569357677057568902642660036534932278610758807733543576809188388983195278954414505674439809468422872448989774216748527544759831761607440940205481999245065316713423189898694684435288326542197803388230827196067164538727282734065418633995512230313516912645402200143083725895949775445368408069212853685209348165456342383514403417478479039023202812356589757578017049392229410431725675055643584088100345116602794750976126905538289893281094677050674096764537184863628674393597026144151109343807916660746676697856120416913805555989294999346090727002029519728535141402445292732694331149372414349328549748405686847943634526236670064502764735648327692788993186448648149384542602827363650711905871356646256106978967460459926488880174398411722915170636757370272340575099563281159509657638446210917191376213958933126863627436232201964289194060673971822919293813439638913820875498359828177232628162728850727769355300100071075522397609734282550095717049471093368604522675578838999066208741556873586256417589431668934327585765294706720493943857098199534676583389103710573748756858998640887367329828498247909234211977320132705531446514079723406539112174793035445013211401196135192125521054074557177400954398191612747343229471678243852756438891161991280173895662177046883530475441232923031206394579489640881435391563893632846991373035867167797517543010095367145294423465511468661722633824224383113220662068990828267696247762922513300138367739162069801606250991905469480102368010874095049760987188736806167913120760028786004094287025474768966462527845933501753040336423321179466455275851103202556524449292092192145548620814640313518138373643934585765154178084061395830047027933232612433696739743399855244822286007563179837096944023759711343705529444899513320629733768981648040854395688811865633236104056582595022893278175792748039656850405391488019731523369893640155782776651031500055413398062264321021324850474465469587652889607073483135310382011584905686899405180661283232610641626057178744510040045169819820754192719335202904139133890062301204700948947630277067931758911269579063035842036962352692974664409469142804939242669721405679128097459853458924207908924173083155569520393332459193203844788247217179484845875951362712219617635362233088967166215627106826248743053715588159308226127409775387488499474869107731272152103754325806209027453880309429431237232007869361817871480369473697737713404218182574917192617062713640163074916046773239779065795309117129128091294036762518653789085133281215377453649275283655808012717754260363507768498055474538981454247599728208237290221129238219436082728761382798003168735219770651123843683422579423690410945984283515095505765244097167858728071342375946638204471083703767870411548545654134940568237679363565095999634785305909597516826385761831884416135974582510775399470894864066984777926397388280194768497446018790064406693894148390456134905626808325841965216104536377165785786730762618691126974470083204697849735600290189036829856360297410357490622108088256031251491452912346464328703870464541816996680920293646243876834805105724089271209359881376923523768708970526591830306649827208508756844695412160269924336917969719665840525638417857638783188089101854743381195456813995332509551469420951629874759696695811410767011603176908860255992468394062944830279753700883522948528482451339688585496785978221962798603107899800896439009405861211086132666094444769535659853488940165153769535619348057687684744730941471172541718162662104279697888201706864637266226150733935492184056337612982173171242551501254722003650293559776870450052881405955036575676027249892908076164051921910406218583405695573284341353255470731495933509663813074709277782915035754944871747784611454926278160220995602977861350313854175914257508382861007944799200007821276730129055406205611308861624500897918169473733129965064033909573622914641401282334254560167055391876019822480580772593857736627962304279595142882651089924524363313249449819759906029901553560251021248996242069456254157248885947396793750917664325698771421913529922925260837961918918529980509707683983932619048625433636139010499054872911408595163973443395872498589227079290880028191738629899991001871558692392066227170934429114902823693609853750800529488208763140196087057198910712073083389571166127738422197806637914609043710317064283233663462400020030087218005408911626502218111243283351047726476378586213557152739821981835926173664108493285162425791482779430814121347363033615836896787461251318923157335039188814447133350854620059434919614756849686697835488057807153444640574072784620216785539474402848873165410898428961248098321910453150940682001218836716773113325548352172554179536024104492319395891023546411497830022953496952914128235227295367148979425893369383914483609759677500879306562238661398749636210972577433173744755593989741422449093127174675602582966173245913927308713089375661820535191695524730247469202155886588950399567628755594829484945944181781464163150537625849114286789735516054200598864187090576910750776347763575287287692324629503042694474730638936251638702823861088214953121141808335465689666446703588656084963389609344080110264324822684652984137944263611876493587511969109451156335789417999881892455912869625970944915738774315542146696438508263524781367609742984311788257643541109847960052316759384314389458483019500889276256595360556183664078748759355628745641044599392953521548887448150945337719857787813161251001774977807195178358302945855150652624833341625386290161115834330565180228110733691135395078552921704519670440957251175439377599390526260766517887051504726591553902214269924131940286987951903015935323488945294634266218030512658497749943945311454329210647432653088623266570033382952499552082550923058116321965225793215289248133978555786274152662798280105099248911511925952854994219524357879864981558544243822959651154597035087519532195517541467370974055013468358746236261993820834763183765992035233740101465775514936327993135145558261903513850451434855041855278069591055039130305163027464927493764567213901107714306711409431836346795715323773282256580383452409484371223628692498279740927917278814721039828962611197812361960649888166942576726267957962547416232728861036531065063320423754926950418425652491952791814952162152655658197645651330913796676254005296460684437795407464918546015335201750403900844357731781426859374612139070459953253784137278071906547630691033254335298987566255692796070657820692158957517842211627509322067079894185699351768171446116957651342283357992166004963740051712576349426604991980295001155061316018077077108944296725701973179997184674296227192256872750153968819124227737570642521593868129988556206491908880146824300800105327221105377247316105580183751072476042766499926878933292889421361051120336965948564825792169332735800196368974662101223038393693020173215891016444799027807699870315124149900287871871608082119170412726206903561379086472151707549329856224736161590788589634535917760556047619419709471989082710845341103870050020585887399784345683883380171702516838862195286488433224252410145265288857225744251102279668445661863087204597053554659795329838933722608985245698403626826030059859160576964808765769656407917242456442091660507065928337649249899485056105018030462903202967530930679068288432788061746932577279011739586362063974519737789487887360937710087897234836490686139929136740771098667938121536165554935036477181864732342680859623576926834388430310984025748367399879164309011219030689856239507322274403350118596749359962160562199228251515011831258004978517136807417772489433765035150424285804344953304289241701689216617928314332475780498938406711512113815289826262572820559677987351357441563150677916037004428041447265697093955742334043605952504269435310288158075775402294737529614986003341853420895171400520656572987438157284559010485724320517535001822587295992822164990583275647906474246638949062160048484022687723838620502361905971975687439084562811622954798241293667409328782851742410312006615703307778393783174146851067412679651022739688920985804941265837966311995659918861265421622368051232097195703303039463950449237801503290690030025579449745783781294665231480811278734478936096750367928695834017857557411610319253724195854898494156271135679485002140245291930113024673440618008919852779566655844518070903039628390911071851678521743508488756060374618555056771128348081572083443336210846875012876890135589214861646922486224902573089903019672722393999198782159574301786427459677002718276439035369312157252497536167322219257660290609935902909431076603904077807401134296465722646476341492814942880317367959587949016157951356437654720444058131582708726218887617972221663776033547762952401439599230456318877626313359880939629369859983931245805021951119306785711204836758151788090371786377883569763328939546882917523064157338867044233731107825519759180765244520156621063309713928903211858593129558023487560988918121210018074087715585548258261191724831797891962887457384297821079464941796889355946741268124986743587021129649255739693666170424288386662587251375992647999337550321724856577901056143901504125864685305361177865838494593758932376797070881788819284046161444893922746639467837803675022515259048474352153729436073932748375191880729404910049781792087547894601619582991586708158752411947549439313417717051949100131657637472951544935694011741427508698962073994954724805554128390718654595273500060507234428528986651230953856798502106547435937474549368222926060456331742809019108977402155158958092810917777050207432669121741584082605890944429076734879831388010662832743717411607153791408768797749155792114687120629097600836755850756263943521956039094121132306190623457098035647294815344592147699834119397128506218508811954879905815522785041416045598608617927793683817877465576245614763115755790395942579581610557021745869831726210298442553631470485156721943787027005475900009536323868161012535586333886593566502947301109867888799878581373790446535075051187742415690064801353794306589259220068628106484544860761882179007781797554323885657059081501193282518569851428284850666809684379233527478074519949429688954516543888702738942147536102112808628363737835566199022111680631481398812133160310155442244927981608573639350593173857523899251064193924081611733072879662669571759753052653483942753333033709618962351552489429187619937579642615371811792083254014202941271476982538626373489845749820044133928548945261099275139065928886295446378556689676625422518813977446607386864892314256725018962557230050599595639022576104505044492254610831317481042177474709619305961679255638292557956073824882239553218541795310750423842581281172666219061729070393589986235171658237826618328944090622882152998616890954845691057543998240803695104722702862387894742305847325639113018450805444376493991220181182370259375993973958875820669745683564289051949897886307686373790978827709783641600909917394236032267147387590383343714666332972099766339547658668392311826366780354457541836407497185142912103289844240013626597910980331298020035029416357301891442149144560465661819063536669518621185854097255075532228682091148109094391989494671658559704383698958761422148028479664729937970870525236644643959989050583593809612317423944372093864492552746302030566484179742145742482868835248876115232042913022714787598458738696826567664817900778200699317257409122917090099565115579461784553230639250530210744683170633206021229841378718861893826893261941409535510211113962355002936720245617392087470625325027225769284347558340890375000983812228968633775725604616422627159886207672205600124544991956197179261387633864541664009387597856851414362462163796996327933429081928750233823191874805324760472594509906334256268553918175410135886807732641498322903365270352192639349416928784989400952684797824701525067511921301400163546413678597036124353084764291250025096104641298065503890683362306615791199506198899798940879345934280018320764143078728629262662534439756917243473482446547360856135002336798420978852220420809426409558887639389002506249419055813209778289484661448255180474959391388563383833130941942677625803017556340243242157411781331654723740658962502726126357347965797899481041918087406449155927935362675710188691757175765719994723483201492073564112469515097898686877676207774732855083811121231678936634396852727698589909702130614070462410174371666064732596547026093568603783611055365529367860627454107818043306384095619012248335633950877214265482598992748155140396975012597322746122944698376614311999348486025380521997025545784722677071292869504546835154529207365475319959521120695120872323649561348911361870444664591975455114651470334339504227851371667559308559846750904128075193970742812157595714489658726321000756439636111248254063233769936605001361486305633307625509189465695145364665680429867544805396892179070456954679312024409804138814957876382709989653618976909802261755504250578226392727480300956235032837538545854655928517866351875249549910448876136650813310837256515042335882585715199876978265967420614631136931478040636146240447548877916949340950377579972803202767180108860578931902104527940168636463249193442306255267567745331129572146719272061625266235392663814093114783026457588965872114347365873164317901904743475832478884489255935825478608096405518577374487484659937219636605308961922313871161814156275508902972048057780214333119272573598046748878381578823646834562237459924399712965609709321157670660192954860018686968268878099028786057295306072504102907280730752251051878640567599732009311384127688691857119885570981980751831034044845601785995691123756395566074687994579405131553892310863825704498760632902455760388687805325858874168399743287826407549243926764699526403825018615819715495308716901474995212947732870250880149089024895613712446524595416013188312305097217902151912445758942423380787056140369575953683482629884166382720907168564976491324007755357429927892774182239719428159592361428261702626129528351433490326603764929496526289954696009054804635353985452588652955921931088636214288505011870077564570817309564019598703493530530440041910904466280994917866282406706299541419730166069103772690912757773927243766545813228777721007312716309717717434128940189116718755795266670738187814242643984735787933687345986024130932439884743756740300324059847594104400981857452364425015901987305566945291605573097481778582182918871114626218932352808910115857803215464090901902502318257141012969261506523471429830612630903574752611141246642517032569728462549100415590416488579453822166200211215670088730171721241607591796801622078804997762324797357279332249685999840723674555219033658354826746067896044265210296029306306375000868092786488731824718072722214718685330411823345138858686093886942048867391914006768223603499090056915792892917196373869410485749302365989976380868115337601925097939315793473338309626865697636085845024744071328403002976596763109475964588923399327020949982498942825206346623907790520355942575615156069038221420614698461952163055786206623047814584913168114449275215770058510463527248831240140968840347171214755735501123713969956172547439895726983782615744842794298885984829053220854845677335811216943693844493948595777196712060855555788000615252589302960890908695900862316325567934623987715805935181009577890614169780213467081730444803793192618822376557293145593691243800654663809902078897968885601732030134193819165361721052285611781524744357208657226360791735103994393226300947719017164696040016889298012518049690360352373071936448421213120636302086386419873570441132894031541410804788397922710230553859811855435451252476477563303808881742761852678372717654293806989817796824639257859053181891863705583942780221883965973180277300372710633528522712397993001829436285517069563040771285480869787240594361491744009796453229932886165986419372436120928319513111575955323915445843477955472590000741308371946721231162746439206039067541029687134078826852185064138664750192926055373208906139133975657320919938121664038292637576542326550579196863733272447132357571326096101826221414874467948097772769521092119791514979933645129055059612897689399183808096422989747880215802334491042944894108789150278785781334616889742381595699535201573645294556952141502293271321680293984436738526057615474364439078017548030231282190599316200704268476304693264992892104737298735434394854006038578646386451318156540661940587175575071321976532232606690308089836789763917199361270513216765174903295496836581449309605589219848917661043099370184212017305052636843090460868989954941830433978937407491339551011089014657281451905601914712224860110669769821745178446577110327272077271024636252196013186490703902961566503357395650222303178803489617786062519123387985728295290306476924811430260490187645279220319895392793679673710704545086606762927849251229975202750594234649941306504467712133197468080774667430333799162978149955040605571486480724449371448891358270202902037024695573256803749680962839898511003356299275759987273144510079525962677328795794817869663050137678086274805361583119312906166457733782754990756902100024917050419878290426309318281741870348961039919366737059821004418026699616542192213304242005605571282957591508669986316878864420531791700429130744061968177058155274819059946315356572923309187594893516379778719401770323455710699109626787717120272703300303279510983820030520731836921355516981319763923825178348318556462744826307573824980556650960295869512777250254676287109635115976475741517133089179675285301002845227107787016835109183536225900960211442088041328470325865707007713126900864666899178061887393795775771876536326874651047325537710351593388215752962204636174348296707490384010584311639040250047868548887045238419040363722584127300052136638403014777433433729270875757973979979990473038115550633622758523864439930433635420093969992457180088371685460826732201595269009773227028764816593763632461439591611146853382129848116032861278029650051799902307809347534248747756155864566914167310496939291980701889301574906075348215566267298330716789852154198139968868972037968343342344543140611940161883792574508642808541890545975622433397225002986603654892389531129761947060545800774917917958337716535243071484863766409886888025382377795786420490095326342360686891421893189159712940294583386355710248099773135676535438605547237841531103472667519014645210414397351222583734229664129913011288919445710490733164907127392596107114054454369115081381142681395900829058246645642239264709140587574524992385207536633268002769837820994754504501513443938474557483045585649812281278511665580337473251077405981471999526991021406501549399625857150603979385567452349589814261370946539847222049545960268836884000620702614020303559770260442420535903385698390906062506885773415873711134825674633687299758146960992214579427446000318048420386179664400949485576378468973193124880253175355464524693970413012091216571460897067910003515190943800801799523810682430302428870801620860823476405168114813266466486751646454548194702991790453042471952737914527003113931090576739503069756181021569020953544540349636253861976000239534568539574227804047366948015726573935330181675391049643607374053791017884190525564257123911513031050007052246389767620715226543164542838335782983839034679331646242226865810691457858828629332369798686886204871198673781658219835683256061865207175789149702909999022469530447291379495356527315788251418367408107536889154202760703136041919875006126402109076055206630233414649746837821345157735699481482862253396015626869508339783307471985847433179867633665187043770081019471892615297504035924807372685921831593657816844418174341696383545205766693292104096494171598072769973087883357756299141416247397474357587249186829410889872325605398641942495141862128565367884054227867606177719226580082712239448705920713342621885373901540945915545464276417695916692263578331385736466557814742597424729672599902262864633389174572427547286064541859101538533920111901386531887973421993178058571351867887781445490936723759557597388046952830168100155593585856327961125365056471305217248268175696079416880866270005724097033600100041710070902600014303449481418020877400508019228937499862278231947994982077962636152095493843355632174440794560335857442779476541662460179918596133534072661587097874635745690587022478640331403190575145485434920615526766209650720151461460899056956469846510273670861641863927259159020012255471405378303207206812704652980855012860653384631471582401784532313639669852349907317124841777281829128040522302255639199009924571931914232562337385457235257158933802977774792563379588048417521935686741809592723648562934904102698076728361323414889228926116788498969862606366499329519160973424485258653824080668243814156851039871528971300324074858868524635295756798858421927709144742301488185209979691703468517911384102343557472294276323679617262271657409887779348772993824031674181611561851050326039292898624536297724116717995871133764251076319834459803564522239205040247365124811405578169161996638454001852491979777917313290150188450225528213572535847244557873152343694869781580671100442803803058222395638418966953015302776243277325249441044587076542558471061585182192373710633549237091095832233364270680219413534703770679365110777916006021348716503297195505137177835338228991144766634284875083562241952004935502789880056813250480825326617683239870282729308766539939977706302848577002056002170594497398806008274360312201705247336571652661726230136844783937146571531925893731780142528936933774608786546278507224816005678644624130264441952374070034004762986453779416946904933684659527676433089963798972832613144130789416513277547471932873150992282085862067003460480520566347788326946620934459979401831301086876719874890979831872890746038944393132981919053721963442892858764004787379415697839832378972888880011407386636190784678642512218951970974084207426609053318883498449382076721325331584267862745534773683376101085455202249663132553036752683539790266939474311607294114266322187783807445546125913505335095385598328579488617441486347669203434467142447349190932710306482838968553767611983678204096719407218084286640046383859706613704135199088462445651490803372197349456233469948398877989784660758545949198532073304239349798362587688924820815875015577641439902307787332912620071932260912602082384824717970566533832271785425500513966019116633314889560403518155546806234512324005891364920557839833808314655408579745913358578862400123238842495516980164697387511083578476105064979815931815755890884927699805385587641609871837628142481225627196530604467338161169986278625350859473063430036447956625699922554582462766341034488178978947882710472846235513094281021185555900408184411353540093855310147504930783692730284194910626365467847786781884862179679972332242251835724132654072752856269882612978568347899233246643696458062351839512500241613387752436758966120011286073709597924641811984586272220826784671153151159298105047127327528955039303210854936720505373356215062321039107294770859647796301259321373392638756899758388389619401930981018850487083585901898359759181799422275501206107592984552471367229446417854659083013472532106612302018973837266162346270254881178351071741842501031105695211215082078845252145509452546616023588256224716964792041498112136260352015882160568396598301006281139263101327221126367045575445709562158545323236641178746624428415527321422032547378180203247094301979618215227640669773896558834900847187544121210464807443767835911351165578190919323055622735670408256323104777347078673884195900245654549041648458552438165859756340078301878295949933989675421637308141252976276390018387807107158809733973997208782458782361035178519012920933869995315741564845874907089796907134482540595683728002565201026571279558070541882646611016331010430711534020560891694897181092103599869027643559151878570903750539474097665117060213536527155492468703001589675142806410411390714739767183893699417347269274939532832723076265114581815681494861299357059770269720931609308183704887993513737543935221920095763419562463944081893534957576926016978360235531055324236338137251861922863910354251674207958864102007989819599794077809751443103684947531964866287307604289612879409801575999211322991255608751085402217394391087427499178414126109949410161881033308862258567174308678819765298674614689310938144753225314138450208843380251651137311553503535242713829996392756610847912208874973832386888223656155303970543303707343564900211652961548053569876443191039285425219626594563474622907246912628683953138252466305533615364928035999208281220302767727651213010832085858668397940260516520648555825570219281078951408425005489282075497088647357398691853446554772109952470853104316639097108268824362164244364203456499579603422804458760442429787218509444252968422079489036582906528109297853534875415641764126059125832854061349833041839914871095349128714661384330180246126465846880927226838652043234185429633890580630880560377983103906598022343926284096218033170423648900161399620918642899179280269391870048337036378374934205355063509616277788452864865744087207094172291256972200978023143563079579875708910190359939338592187774814669310768606652397545457227143193296116484599637818953365524179367717731689059511706606771778121215706452677866155118614765489739827191898569755606755718313310827889389659943845324590733400074435398693467682922049483310695845375167041172064604678273586305347908086802056415617384333481979219525478064076587942252458430595554224473780133766603774626037184995673178389886549441698531247232915129479174576601242891163974006900525787165173105304313025920453207016753172265358556867593992619237120771530762536381463867053845371015220510994726134059425283953778106466253069822561365942136617271410326358105606100113303300974962781324519905418991324207979803203249480694243070580823430218139440747512686316357659553138192984336333421841916650073378699995620640007704088985385753963995094354250698182946992050756233278860669189708014413499285614668816928490470473779459069432799320794921658651164456156935259104021466428448513671766370354099168740184026580183022913176811835090207679667871947603926115926573364058966932994511871880569665343830472109181096675170594525294269145981619389387776711192303465167554187876147315123423269908927614189128260982101001531081180984809931136205924260363675294076732073199974708469952505191920725229578358831884147569611615378450499099952866841744377289251630097417462136174009078357623070950964620848454138714773177616823814763872348792797124956043894555485910832874097413764048247195719391961709597765259922708587122997498021754383379516837531065335278127785633770101905279737551636485112105457913168872579241511750587694361152538320654760204273635269720516094435758840004576842788675357124644369043636666834441014868492718192278541916138889862771987636029828433166906104079776503840665520363651618911830047333815572638586394989729170276309656200714147233706438575508586125099611173249891678093609822476254239773256218437930482872532876931117916672677434064805189781589604567673777734816542928503366997954344530061099417715510344494123837178127934500969242820883382673698698642284112728684263739761831779414931550023830231127973248751423051067285329601451321363706216826949857593004551168393445104794243466676495929153924155117520980919922460591489295028217514664927316949831122904724748252315874038857064526075828756389318319548733623237520503005627889253245566592448258921373516451986170396751497770123626722009261516656197527072249580274853021666627582892184387022534521162897023404907469682338774098710927195520185015737080487079470981374304591814151256491914208951665213981749267201487284095168413943408063038758977520498862908288354240439846083570951671630839559484054298378598615168001352236484623718617688675918123305795816650743556857879127753573342801279171683957171583144477811589792957019857793510926134741022363127590698751647544921467303361207150033455176714936626190934688443412165418195209613907381056397958111206206087390827163339882841073192117412640133675911813047273068105257722636009860369634655203948332685713329337996458958518653604619248539904893923856042120156457983821434950529241094111946532601770642805339080723429671792891044498086987377765712909861624122707710632141696464174904520694062460870172133562386867594212243515969727883958490045415905280734539125457769537730114477388107724771608173139066223059636098596573422636837778072308694734289833237910746749501508647092076529602051352915175170567184408730550263402317906587090006980496199829229401585380292251192732545931198339563921507455448525730935470810472868281465899486800286193403429589413695291515780509356983159186930276898108874100791158885725478243765985161486808615128537147856874955222078154375874815003540829333019956236523599503206917621038324807075387304868469863098016919855756946119898170073791108637597903590062941004797816523122502646243691769921789422550935926232077345016286732389322754286970558854228203441664529974968091620270201516706255180540787982073199597384862340104124568966436192927345056870934227868190217439270907785776154663481280688302886020714076990417625603800940091815298683888987204829467549643793586173672204567650622669530811919480733970145307292466673187916336478147412410959534760974331814322837287493406589888232875027171931988779013977247275771149437096739249961589504257902540644464879073231913563811719587683813249884091542575245376510779193630589352234978075097164487852347651283759988664681468251745922054403858236274932201734150829403199323490609864437358644724271248542253307785221708429216817260458416958410761892236279486453535633698237607873246406593831680665684035159713041991699137738626581708478318576163331437318743344252952043686646463216020311842012501112903863243352454258446356318500310734440576358750108172245059041133209595294957544289627798511399836856311915130557237360953110208274605120598967113136295001016148207358977811311485727022204762625872153548490159082128955768812295076854225337419679247678089978430040867615763247288149097082335102588748323214386157854632041081160597686028131377975211756581588313441006198694940071447686101706599683101923857706049447996733783476355149965547563913262757938582645374206392840107513477935466025100665579766325204438568724210305381869239995918008437172538979042079788270047519399671995099512551779708912208696431754842464725900737442529777227630363170019815348591484296152757822672477791784051890098852926078983169102601843100869458463171542371784232217194699958784330286070120058478424854221899649737054911397268911615560325523150327844981275857591263628367636454163585982336966031086748936109162266559490496325169686917139526515879690236396170196160732755556027013637099998206806731774031684119206130103170005700514125822636476933591870751362557639348865349767905547612393150813844646562554842558046021964656727468745664241254752612570816310727666449815025143619150827961263234058167201062303084384508287831851770346540188726701401576013425081855778051992408355955649606069057410767621592696848980418629596023815044011734908148219078619151049372997267017161137421121937940049605849931293760720863322540899290096314516211559132392772100783232116009592870034609155019232957474529892540761224384304259035329879694400437836790043741270368015310320535977467636441070932287681345499325549022179519658768631841267951815587210271742364555398926112350297925563432913495216126556913174073713099328643340272064019465864866943945448487020949605723679725605040237835408570947940763126961773555113778359408199798353073712900615534735000681443955845716193709848847166274547928901146320982946164003433038761106285283446085791969792315580183648101094047057581829726379820513329897258280225296016989150873556964342380626089011367122289472641663578727266278808586959088117100023866964333321018874434183219246246184448380770575489057451095722999709447926241345547629392013890348839210956200181704437624581044507242968428394595101189221187982633569846671405460655061754716601353959830270636149104336750383577472365203826577543105895994944967864224408855093723492816410679119381946292150560554689703746329384005368290253307888207662714131073284323183743074175129592628119882654211807151933137899796766942778136184236476202681801541706410910003056238509849980102391967476519278918738998117032897090055113154634744375836569778462637350660711585725317073706994540566294445615997241206046831709438119079068502443987222690331101717507404099121255650876439770725474656349100257083928489383138770149982532999111136478650974559233110181060920560557011968445341969737624877080627837788216497068244268251477737000607485270410594552182724696057866891206407261480685130807698848414573721688457426853952500206281052402884220203451209473175911944184470829158426037486806924907376171430740554864856110095870632116392145429458835721708608254631141923079555806898156559008121968136785309161318680441954538709562603365516661350604908570149577959124990999715471707118757686400016686801302486332941958270598662789578267767722866655321492114377610469466088138542305213253186957263456997055312743723913112415271995910782554991624554585859610702522374584753367164347447673496545164817763230981723550890062991419068477050784978207512636156502144391254415711239131272748815428262304911835796799688620489318886546608484087568406714220073849838029093787671084996423470642130578751894086685480903543892367804270840492320089074192614392152358055139178897717956661275270008171118617797828836165538301851168294638302870347843833911703335563669143066586167041155315479924202276109365677162413882313317014330697739295702829359565947462784193785881740201647367715806945436342459506805953521552515796195964523934419742934427368258222693439355808691595243680095903048025553873981138922046769422189987649844433954344683386469620731487676330743555511028748550242233324375316397437169129249930890509575669573985405776196639427304505430109195155994361840945033782128548739118336667034227043157894122404913062256162362391335594239425217804167154103861385324139294446388212565921723952176017011964375713777551332859350672949926483948082611956209410655043791266588941259871544259727270662747270544452044042053266792629298609976959301011838873343824982368693450297293910388396422884853563130970099863890007254252900242512520039251056747513033536616746342691143176306870561183473030026055925427510154664013702013872224308816832181767666599666060694451593565655305534651028773570695883026807671104672094834940965463978051858156261857992157394261963257563563980120516675695689855676187452884161894164690284163120147245834423194368210496207837096300532676362827020664930257762492794938405318932645355470464999755195165440068459288697366726484933013026379103626232382942422003476063585611232990209912232989442402255830894747447008646764588066932463073405680056368903915750995454906889612067077273357300318914557235007635036176834882516711537721749009066649068334853143497626014964581371012370109484078816499162211148101435372741164305683328954554098336288658628382168065110164418178451317988527971529963819898850373032731020969807773492157341804733774707132135572757798670910779565657112074739474341957847318420726154643463057486671318639904777161206285393629607934726421438565184594089054906149147099355808836996487342950178074613072232119988192206471865536478702655350240649474289645589827944844426028076160092306844364344973568087666268315339728050851765942489784021554593689570233117563104904550852859251617351142746948520266052390976552528194889059591639265504401282711628068649939730901452919742196267754933353144399752982351103217717705045610027379722431791021465880673021803057436279168094236471005021922841797024035128040164386714355984573898720418206865911113969365653685865883537800299532727012710941603935125344733918301997306028232665807060171374622885662724624811404080289787266709021229888685086622319713077246856496487906762183751529150706996870247830783834836450702250946763507965703556431514536318910340472963298637461160571479269609271970698589368809658611827481083913457528992100730501475281697433455855185413599171084269633610304800198616090621736770351075142553814075325416035178069066500783608557089596476045353985468064460544270675583888052446803562340579299174613223576058745864622760108381534943341216640076896235896453280620931048340326509125208422984308234939110208668855559886503582677095533940833293569922506210974050583206852913880489764348602836806045594417644218580365440504202899417844081793259706301621236311640121594785680183807734566070711656930947692032356360049289232887658696856537843196681108169554328607724959839268321663495796891466470947477977926493967060679712535581144795090266147701543080649145078157108733044349853031813795491914650062844631765972499366668296711286292910962903851173043477005910754611320804061389814953194002052747685411505737193654897963378546236374444993996825812810208524374256509484450176444138214105537512409511305771951421555333823140519494237801288722302536620778374102539113025485236378240503700274444367891868611261189435355336675591353591139934774566726696172133477760727568393594634607180405217363573923335616952337940936750214192059406474648631479127408423824664639972090328645576439096796586099322165421072787371045427911342049763115882238286035679988266498205732597323355979123510317077335250955264394516700786236546964903034412506702968257536934148598477572336967693707080223804223655087262578962915690775347842429666178270657163501214427049368825205070055671561269225888352978139139512418355436378705012028545247879994881323541914424017551266055563003105829825334496292094452324144824303037030784259658966605018297023300854120975368829072715102073719626816636545168154097103561078341985870234676408213145937188423257864988049836233237355763429538326781036568364674545401079258040394531260299866499648773096761142641220428789461592968970694016812175587727200004660015946186714121715795595209007861460115063080587552709106962587350498147701865922380318842414934494203605224171144713503170726625780143831737330457711811611571765865743385552291756434846742754570111492117049426204294902371727404867590846068231068214249649885691663004978573308227220487213913679261392216883943636830007563418268089884080310420397520265064001431774327629157151642404377516857663462208548006357169748404772324762304104268007078339436587096776217758462012086467394511596414076843226556756873383271476981982004261167346140542319282880008089436727263881855248383451078562688016417466985076148531494197505518122576441506822022915448483924581543499320293956625379630341231353746899039663553728653912247984402506017738415152531009174105851635348661706542497903230156797093684508468872893249981293373947667764409849263653158348037490705356879425648169289988402136749656616012584660444353026853939029654278891206857775129739776165562742136368599225995419372084868489856413347572790015617364043908919156030420405933609149598639736191289219014572876673742758555619236741435174914015081629454552190529645702747329517078358259878884690403769472488198209464905392627797159997039654878768646298780427225273081748843446624623597208170022868547134368884503099689303934117635200846213441781819060165237533299795919682194732162916428885358923342542723875443571923786914033592340460049496673661447289500723945428023972232861894771594934244368826377725877118385618402190701060669811433160858551874241700808133217954697402589027724589575784071321016572488079041347861277473297338473669124904652908583942501570207816435352157081572178993415862436333534174670098936267401925783991281698078494588442302471396538129944870209137144856168990593311306606870755427974486980199882944321777326335410891873024304724802883031370449546649088293491243422601530278207052554313236216879302686646049875938805340402288633137024542913411426079821091996183540642284156651521926111065993087099551637125553363453620438355046076298502495939788710173835869728652770635242873750956287636930789005905528211055969069292420164168187735640125583196755659001758155596001170185654972664747679912097425418109180464200607933108497733445007059554502533223190912196269475780700702730669678482523432927501599443311600183332767504868744638820213178646205466760695208428059336878066834092506456721757296283809236202674667497101248506131248968019238857013306231295188198500338437837036237768891355553818489123261294947058467481445597152418765951359076127472346466881342930028585230313531469984455230756017057423750966039357413945416291604210664648241438769801408046197284899561837298065665219613559321632565311146602366525360952355866452274008755052386398845895756281551400030312044049581473237484987067168979281561853840312633877691770892167748851000553505699280829290652679524180986201674776856899658959286962623416059828690478068895324753295892299756154282450165444640936724922758181706174781042888859147924535225435424447353907004410322285135421929782257655094123341677333038930145551829648681600693707669434776308768684793350700288450419224186706339328459479705185599538937543900926236238032004967975041202839896258196383445979254001397812771053189138069650455539648384761866403285206851492466564355508325595921836215826257818757486593265563998338972924066382037326444435511016489916740196305356946240354670989698436313693318693613914145706055115717034245329049334523411913402102839242807337367352496591199897916229537067570793289685356505758064435441411727745289337026930267979311339981982045110129175854697297088432068716741610626991659232776952537726714551248596974792253464931956359712349846882604634579269823372103104916730715969566579254761611183488307589708626061592248355780391639249976802670183849156954879302452450336811190113944700560730037921776306547465889771317964814307260855545264947371773231003768186450894659011976736893458816574130374115779045918775609902024004532340699076297176204102065385578101308439566045706845124769186467733331003264076300925539724675828092753001119909955896302152952884589124804071995086524522542436309416357425915071810893289592335892449323899994040446492187310274235930081715002312793573974322335445982771206124903892096463433970523174312744110606908176933467942794556495734003895020738934856083117085414556261299181958613688915227657736096503949974909388297895063466846074754212651327703289639133419909734948833320983326340260063866221465684969383409710139559732707339944070786782419166317820617391937891524724230944380808925575809427519740197942693643700289113197231443066219498989295663947175896257590938709346087880461804481841595300061624162738691356138149246010413532581295180401530367104513765514367039438845029383975700330387537651608703271731730920244585983971297816685779772961468174367406205252330367505525348484743131738191775260541673377599199112695322645322021014994700087627613125527630357334364172540876854647269460135391171341119540480074765360784053478584935546729153486034016412232310796312111917431088742867011615275958960939127967149862198851542884311705562402993041318427756810828012471506593165261065304850175190811322469169130184037427239979593385950324456497946304796029289959935833429832261622068659271523035987941208395465424955018543938655638731655910012892486882350222760571918938795480137322164233876900512409820831642710053690218482561291823775818703708650159208097649921550151668224074879796073539195499216060301718652698754632689917934044630283634573312571309880028472737976439595845659794743924215152712334264271004421078051337830046666216224611571952734862794204284587800951300060488419461797945728143014114614945108476453939483870442232947348456961324320758667170301505511619090720492738341768940370634009836558112207673304863344882449482122937114203881788944908316711599151168557222305257226651577691672593429694740273277347442343266875189420125899266813891007382356686474270444316177194094467466412100426439412099276710115136435508306602474397039879199396102760972162520897481717999346924536456332011157700985174099562122613123750078192762079778447064471090344711918368250875782535401060242202102025550266869978463801586690735028496594182271027936684570321701370495478247740974845467493841833245347128748160282870296980109653425436357077991172652783359476123864081928973798283848820739332828780516653497101502172289285501067357088658424059301425829879371321021676156020302883803295411153607405301525334612523470679780638685840323731196792085509608668131803602995510107109837078353258045874773760262240420578497033001273485450706374276549108589483060061309399498943870830629603084012422791226660542562344548867335319707661193139108559521873185070359452665136460944110764651428625359453822401613658487710614703855715078168812259199881883035087964767960088870853062828668781654306637717370997856970852144216427653714728502310938037647721168158244420542705185051893516712045347571862744898344944371854825525281681274370356377615946519502616071919870391537123890745393308989275184804565316796823593879422424305742317927326749334915243951006562292891964972048028620477716970999933308949580416205609111913458707891863538360697349351778901664273715837391365363012567890652339732095374041237040468896110693472530843830289438441142013526865340647099943774393807289066348146578689201246813902941758250694669574219566659235192121625576393338571476018125195342351310795463906865193991352409674699577234426539149729872355265930091303687189252096809548878610320608698220897852590774559222208229216207268945439151752892065596371201128250947763500515595963071317579023834782636954278729893521617044451049071350271901185358091646837467409307679790346396293826983505444343573471819229185738886700667959520806205215003257735229234694251315956187549887555483334247176516270378115302367391838501945325015208956505453947067903447930668187957492552020249708252253009477840362961932061613877523345015366586053862704369283420770888942254081967617815142844394635012946689407337753181303429679446746351481118431893158299523306631742599228710201184158863615246577688914664040506793064830748656723482488810730896853023638116098134373589129472833661284011488305375551212018172967190549701445801496585197704642604191516058368363163115396091337333963440621608827112554569126284441143705734863163076964159011217951968736178628055449979185234920443909596637570471151099735339905925550773477038965046524444447668180479154232952489314199375795021549463694903597954998382916146511250613253090375043023761850620375701665754942416205104312645771576619540061226754304061298849349575197248437014293223718969361006347441054278687577055739720022915533449558435995652402866005203314550566325980972266055141855034305439736058548195619435184697059488660451065675021762473857187421268425065346403584637405040295086686346868609953836190329028194324162218413334090771117378872178113597732587727636969805974434803321485136694443927099795506859797052901063864806655760544397636389559928029964777269614980684948556739316160303276687694758181075232603547999656166487689043256110335458715998882483754664274609294455023495938420788177398162889390830160372614389697085689550390592741082645022428075277971859711006494148597364562105834529181419136215431404518263306291132000546522821123646446170940381296082779204655648531183588819266265239491936925909750987297287349538398925273718381126103091272958901458622224299935405815488130330398909542443204774236893652425972727061917882641079179861729182415911169502747411817562484381199414139140428585799446183863880050586052552825581976718725111790840046810143244950929059916427692789772395790545159619815353949328852647301467963087131694005549922484502222696698957929880253892718792185430639971183991235796513553543099313711928296218120114717578710904115171436286729569891730354230778622208938980465144505930420063485635772471888665846480884889915762662359670511949555030786138505580110161967993341994854919956807136143858286575875723567842493427448287700561776903766293487717888612065835563157904135875973518170800134937202152891970158387614296447387964424548036812735281015746183515142770565520975923892748981393602737010936593599317544160671447265403447732366924523897934736226653424831163720770675163062450517418783115123063021810325331229499561908330732615015407269549749479733221274032726899666851046969245537038042047329593984982767366232414404812286667913750418707896345580901242319271616553375045910066512749573797290346446008754582357624469299791808554342916883916108551442345805168028468119206105244917799513476512612457414594116192072843300804608368361394923853874019841741594870279829990958782736714737115053467108339405550356675699774567936641932956904162550941610411754124795463459080113654970954197629369022940364657583613486402682229063288660364290047877421301469924059641975189594759291924540135140177486143713378009678472547433506093472381639426880942369585450828858796384481503321234334079950683483629638992214513657367562449698438049937290062975040685868249630958055174614393482119429895015092589289662367376507680316453507631291635912245349329866084246710694569897891528665231229774402265772272710852522274285766954352692055021099081788301628362308316092346949702743299597345418795014391249545471719675269640560061324015756609825958059728198296354307484998841935149633537850955384970817437634399854877389972781764279062722507365534774503410591471633690595582521485028763162488345426230680201815285958618327795229487500445779998374570830908499812915590162343317023441223986455753387266654725765898454994995861420298475152820026870784988185836860319979454169451710473147426498654283229636374137079080533475216172954955335718909801890918659881111862588554498504224682760067263186839346913939259164537699885254057517771662854275633810448533182732549502296300258295663976416220432322238506848822349330167720727765334369826163513654484191537341848970596375397819137898355604238492728628053219541541843627678189503291263408482870653030536573211176769609550832411274464778804529395641274104272113912037878852864070608108393037913223816525271614705310502221609680620357764913641281037053421728311811001531991529959729444808830872741395346271353691551797801153155599430930573223623443678505603275786548590775275016881007811381166888229189677659725440152780860086068442614346677035082289519374768581090622731559153324831879155283204105981424546555952142558727479485691694344089298490990040119046817537668397255421598199706286519633328454382902782247579198860216088068317235198424318644009589685658644140008023753716793498301111000491963477356071953304171494113164785206660577355387829969792959268463825250087485463763222180380209803239507799911694126912552703206634086613249283440556467847244816819112433026965598828283874145257932336290403687640812922835063002858229471896606935650056918794553456657153943176070046281480465576969261646910023425533487749098070405741543777800808892215347733858136243718872577101506864989204489227271617930582571537805509676315060988024578972115912603916359260523059117910437801379164791660404692522307076568430516773710516311951506650561353048942961786231983925079376604772163181481333929489995443011885131905472320478355719752138266593721696476925421458326773231940735500034070536506016348968254377466642648293603381398357553337872652719172018900157580402988386355455691217459608908142367874554663993269237440121476348304253604012864976645097925626764940299202169488087434552518372639565223533430442374541078696426245783098654005637407564280897749191983647713138500473461292629830711612748905882089859570072469417872664807385060521366296046575709828745825803256003284426055165454819733963363106675950733684363422513698203574083582114887021956473308963647588625980030339329307132884896801333984280735105074957422043872953662285096319582654452452522154386720260135151800095373832238338684326881147217430403872594630387055543393600374471927664291632950396537972878784984216312262945059514139504896011519991331799263022806005747979405348195922346369492043393759472288519910725457994754252724386123271819685582648185941135409036947109575512992818632251432141502656948918378023264542718087206088048058750679896069965932819239380582097031573685035191016612804088539562745731168990168680494927496050450405130779564953963733206996495970100045352784637878350718429442241944898819398903571192041256042164202023621425995437251279736249116054751112557620140297294541437729049286455315749609286539471833063778143738382366835114034571942717900241539777729626828099322221359980559303630107027468741085783823071232082579696389165105424928982725236727125466050620932862428017795913842568794106027814063784650305629126837426281617550377206755695424921157958097759518591065962896389732695244732842398812952999597136622806968605423702340397017623595130854841906603828075561038337262476168750231796567837501714972450502928698130856540865747611960769805072880821180413230633881587556124401321559838248677497570237551486616063503159281969085626069570755871770426413542449162494234421339577886586135358493748297410532237259894974064522636909527347893254165340707735260412430211357013930544143116785546334786789753952557453400740654521579794807875366581615869302730315158041638900096775775680412735624125996035942712690231856985922915679149198021552525148213006415437805202781738104778579792606091494093325886064332560932057569819901332172838834127411277189447043914240741919199243784621383136858522625685265087593613849128560581824440651456734525221547851211282714806361187626415646364743360618432651219346078141757467237178798700595457138111572913756198997863604427726990499461882702667524401838406217353557953866068428790140086963707510703530562569182550938920556924098222644742526353815343547893102271682691467199640354562553219680534673692835652044175208765531721078934119518239691374345685448572677930706522223796008790794172862258200356693397135423394433343528609852236937152543652064447759961418263929019832921955163938845065090002741957006816143089915151051034354418554503642968136990811110370791470587050057612962320135481253044139356845020928511455455420710269128777527503227602970522121559849405470465719047554812577602886917038323277394459138765575588996508693393416671408821293748666961323375046994906106703254503806255019924660873841236868578578464685532164975289215822169887749910751365067627292728268308918169582823818252075328890897903472173643650869189812038997539467434495360819983947190283131775358979060323063695384539066255663505642613242097175372870436227480820192275501251221581382940184773065500462934053704426305029562058388448667107659113498069152785092669034285426170172268720221854824867210940972702575532555095726311143193916487485512815895936443954352762549451896995471798526198121132459458580918923703598217753613021123691712787299958575147980011396375955642801234917040199230570684954802018059485091112354719215654826865892152709141208654245898377518793856907011142030623863240539593551147694463424622971083192719309742105777238836670199625945648933032716094989943238780535933321261910317773001703598064646830192553805502055374768162096012545535224450632647176860055074053417862113626994245565767934156985752656368813692469280867680203497917598266844212980862839186685377203766839589810702487358988561534914294929138480492569954574317296547917560909273026264916749836931840615612654193323750365128353924602173175706235917979444168161759834711966868474619091638743612105124595548556892422316722879847322355417551124287418395555219700471542765539830403260968455501499759044709968788149711421032085671314142460533546353175923962624393186617720747613827454662575962454533397226469467786625715950856038955949650068647449254020548494103474274441187687845740941253435422637315940010425577379077611990091915448421410077736351901387696205763302864630564138255099645028612380167754576999989106610188512905874958135267821542562851355380634734471313493920596207505920022122280046586182073093955405936161078457702945342639552229048538355974527521101515966731651099549579940169279958529275646574832269013142439073548135114756314760404219778405837130797252642347798856698925471776877835224569899738932095261592689807527278020558010053659394502118211187587103456714407134102194601753145767658318693049230738623101519520040292677305273718526960398136827369780015582496998828474307949825038370821165736119217276940593365667985228367356709695387756936093511980913953211337779073342261614898452186275917162287545277672876877740137332582803602350489397281450283966569655729889349991200358863034361952133330121021367185716887005245115362679648319215468923516087872115805456273281260483461371384966235142235762673441370563158791052085309794366190161983933685830492622669421350935028198565546400522896825824165261653881686838537405682475130403873121013777493427921391539334390068562286915056773175870421030185645477894358056075654835015153252912771597341540690164286688012689422136660800936536113735449351963007683343232928871426208887019159063208371512209613921154318405775842473789214705000679968188353101730592988157425350755835688343316240069054296076079415070015251968687449078332105363555167464438456879930465318247756861922971944436874978951880917994072750760222109405557418994404639352330938084672831451489916515556037652588517439228845433362321954388323335404699718058221406621108901641188920259440693416855342285909665985758600969159913131917368583909610782298027485383441340278514545092098218105398737237533868974687725148496121988486012548838893480154974343941322204821471023202928969265499359424469262059672644779779491075125697343343331547647302132286267165854262811253137512123558712313964029635985536467338110877306589719921353929974962276488605393277432093148572784882384990698124646381931861355493059764414963952783011111732745015910534530021052523557491557920397352157024865762671897545334174702273461285294386323654788880379862382647507433537880352232711436186640335862770567702769708118714483866446594465446010188972193026836226154532034092415312161946662932749603170524178736044034161462576028824110147795357948879219168397273985599395268696713196472557106846289507535341909265007620593356294428885662761964829164791419052405246285124534311339017729168574659936760113900775211180705071766718395042948597061206959266825836925874168151650150037754143852546638789507287178355818764923816721089270204994231825992924344207270104075263257764769377790308418648876280678244290694936994173796435728864406166360919480613702076617702362068057800105946428237731768968472117818725326478199197885215910008294852866373532432555510725682609256655477957839586497541306772296572401575370707023388885402293187292288624424522879817925394402283537722640305984790274667447324156909792748280696842997947328845029263920037798580206623317852878177150380282470072692991268873979589136569997845809950883248305680781747170305231817867695594496213885797415536997485559330748385256285845497536126519401897440070978725968143964827775340127010749293011853559461285833043842915781573733777786115341616869351763548408896370746814345549682928733274131459935121939017570717329670623569862131068150347269279056068977977296648886600461233892435212859106037237422988130160586163251847770558335125913933273599623512332646909993866700607412513257331416504504473970476802456883845759622678910651344088145343291955997767495495128772829875196120435814976386353334172711845207204878178164232502234849564135375759031829470985305356059859338950449038781601307537674672400573337009257385596588930394665911642334846698694165694704421651048773754918701643399576931795556858392202513631342500432396409610835993328769221693961733029614063433363554252069019497581024530197340299562947973454529695356811348147246577197968629956813450113067267674694111138379986804303397713032091657829489486569321101155244186807739261319192582832933607118319101894400459507034750026767182398295219407443551201984587206966105456219218201472714915493954818936641216305191179756156786217158381996624603834740111849353394810375595369879469060589722046208838209566460490379670824657561132833589295569282963491140115528356162853344175137774619301815069182474888070264524241838147782315573451734558489308707500989713358641716956467542232091897643038288424715027315589577919074206366164927099454987684243686859634800919721848808471021547660825224773742712853126374945797160855189802302715018097463755990365066550370102465560822219883927206090774816450803504235937241350908121842257200950606957163277328238716440236738536719067412638298970552218462315922477330958072066788449068223613967195421724028791786504580556508113242751432182414272046592888379216347521086364832165508985516807498353231709357295737392900506191956345769630764656030892351421132360664819507447846003165287593101785054714535734744510642576991716871186339943337661502429824116117043934207961657824634100868924194155109667418151068212701110668791164616444593430780748292944175702886147778022347931843736356879583165247420534581447936881901154492635732836290922074865570095370721514380339079271293905033907170421913241665717461220674600774196281500762456252811302125222114666670726867710115853677630095960218725660625599149674972314688023722864062815859042810394298269022543624239210929722562543075433137498695141327019810342946693510355588706385905261257416074282002886104160598725585274263634556968554990262449005211718560314353498024654202095201105087436574655335194189890784690608929736269917947285389367750471452438818584003968977575291451210315690921981681638523709872900339852568314960481838747526722873774258653369095263140463115006731253373120044786645746260741080371784067032734363508492344433860694408067529940495734394025231716896270035024156224234252668419030081231351111878946776017415730233886798479064643410238205215737576602724824479165996644031017424220878456852097005989669567374610439462452726988789392432054703497577586004352556069839795733077150572297726527153809939941689137694075966153287872280886253645923752574427680345965187453126600893220582726307112249124324995634010504917968983337841808455624877224846972115256299615470544777919896001606676163393990806732975806884285104468881380593222301766792180960780961136498232404676172658772077484846033288430052396867803469200939492636866656740031546124502340117901798721611166535014539606982566795036354633957679550287013005425276655696071252859390689720327204415389251227890609864417407029584300462361951662847598628657013460951727251418508021394843691125678700248082296083184227765201384952791840885277701546947646815663172483156685469225884583214149318137101691645063022122324876248817156021912038314482707929535023334791509307751594379786107215581594736847366199897946601452658862617710010757982671128826495293660027947131494103835644939086171811686746497889407569989981051126628161394669911619200470335247582380391382696413891073893971459501435233194389805190180385054068495923654907016145719174246840552707943177418238035787446472982801444652986110953165795518039596914935905273885410969123740739272031574013773370589115459721252499804579642037195371848369039912306987554733230290182588049334878254741792196034785227970672435047160562773997394168408845106053611653351731579250982526262205085468721164979437017828115465654872978136283473240736299139220674103453987582968934164569964123438342583613444206214642679448834808963419026799291378793911971234548624478646591499372251271145472767012040132790114247620104892960441608956969768981864070139321222275260290935229377243370587341806757628019252047807048095522869098263610759092579538117068530946609428738317183253039281757482583447495611633418622031371091844795762424336729570914546778280019829700821198600850873708589426972587683137942449235469004284564714185229316180775487586229926106844049885240676624792812598626433282332674160646535117701803830479711892402786931775453762532252046885493961640006206086477410087874243048083852860718968214651995474987098981577687008075792437802859816890988902857332482913359471118531958677010361445071762529970685450814452052720512230306628541890100458005276636794574454307930189794879273589141918681874753442372950146161441616847957080140149451596971357477981149638169467680340811183165953168474231507913049928284840621276521976135552302215805671451594789680626817297277849990220327144029555093142598920991756968227836518653491404392054610669667364878281118846705087582581887926880137269163670303613834163036527026191540607618003817806130032592503735558994924489262611414270746521415490945891271379020401554716628595698214269852807392333453276822524803705772533494978232096767525074687633985918509214901459802584506505677821150550835669544566542918897599353353159507032339060042803539693680224812297041902459361778405822826600510788140910725588174064972119321981522796537142054784962987217704849996924210256553893251672561446871557211449060227015100962295969173865502259190670266663140342299190769719941461210840733463336969250215974212638536331665520908572849588129999289025970057469161096944248902934939384501933378233683531805153416120994638431016568143106223393025982443515787152824941347948713466285426922793969356090410260307902309019940159926556911759209089951923020550010769183958584884394154003616019911689320159585789953871486059861811963912180322329958363448971985920119549031805491020663649463094567609029771428778842546091121552400484038556568504031584151656300339435659997281529765319173012272579749265402471082020142492948719744689722168582210391486147376541319707328471964259015110119051760111986838909421891524378807584165693671019524933947330838126520893292971917641693425997450226510455912522530539122010340874704737867286865271564716217889080128647172797095943831468485864950347157314025793717171613113525468139365503211569846566591097046608979137240279052827844080098279335004282465799555075631067310085602589361349368933903763634657101102712552592618356136892069552205818021178409597030849165128707606697480222393518409161368134540939180085195347843611560564331182358790436048023354045551544568035577138370267879104817080179575314532535731186262139152482995836584180533552361111331774030453934774716295492638821550214028344998827286654478250340173046792110096495397241011608889050667181626288156910980840262424078629669268840180985840312614169662804693480736491226255943619454333242100973653910366116738405689753698345354264721388918178243869711413935004785686478397373502634555194883484354906611313272218520897696792921450228502545166512289401755672561308037088405071653515934223826518744048960478446853089906936414918810200723563141353343834642464954033561509387045553684196875907691447273640514729656008091629320657867612142074570874577762033954826701414576675795268375690640804637749780945848077565502103527601175214878728868410391455426172058847707085251630357091344388661083076210934740413320359949694917187611994275296410615453597460227285925592228995265273657771503193824283268039006999817613465194333366318839434434919024105241251569876409664857696069079085770483460195403126350202445773047369571647964411916745586254019848995136121308444380727781978305153606747037049030882771893836409153206044962121031522602257970280008375660789212346565154043983438494467673175987888824051463687584214228302177124070242130935102222293218815304192503864688612003652185365021812051937909087758274405080410816366948938411585995968501973184637956028199717241487757923475505772601180042368131778654039099596911358515796454117251700190885647695569432394823554940314800579160474379726570000949542565103179330743943983018853642102332965082518999909632551635626046940494937687166449146420705356268585022462189190776189637461615183372057703714756820178693550190382083556381093068878822326595496983711567212948141121721661182241342214746660145294075116872859644684608263005528918433128778525266380777801858341383969634951799548912951145478284297579850671260352017263410569807249691271695511143031711734138802616936438759104025340151245185383374040191817978282886758743038289344588760453477838361967701424615601536570383732917899576888408590104161975264829585929602374834283775479418442720920203580229026420407807582985113282249406328217044429444235787330830248629012433805503217020256176384122953227571193015389368222116241764699013274199341403384352718440550136041491313590416523167616808628599375538787432770831485560764371712354650381370238234703728845292329826963852233167343100172174762814185701751493068525685641756958884196612884924085500207278200219643009350003726275626479690913677091845673666054149187450267025129247514891052445206793888966968665742674226081057320970033004028660612514345194627603077788119889505648677994455192549128633452511131772350466033689225728783184132903117382035150031910544369368201893607993008225818738946605999707093739316600983040042076621608693857892930478952651935495077730980989059461061391490429204368984561615751964434976606825157627564910099492964166304699275602869027173094683018586260812028467498702936925512875320672853479799413840955818482800880017093115861222347615676505830285656874591845681253143829771433512382238433785511934051396381625228737492360807539937503215120895237915419537828101741370024952664010775126468460993253371362217552420949810736906571185841134084614535421893734972403453452823607242795204956079829231412693318890126263803207630657030275324142557486126183775126183368312855829261637904214457028819944196620629633237357111492297632842001542997665207751252514625405681214694107026675840997290509195460601402575924062475754098614715270431146975888247566165167137909980447049769018313528712486674805064644638738144206844773826400017966420983062474156636102809931940655730095336580815307160898241371677736601269630034186641790850517686989398435171615851955530385709215373660213468881694685058415870537170174529699180673865883478367661570931606825489275704604236743832481933080083323408465915790010982735404433059569868240405898223638530344588259269060780398141637566059328813116561737622694456989647676879161389000792936931066386054324552431832307699263221255737206893322644067923060642409686496280827962156916525113846532808974873584358381342663844699940671442731810561172898981889950870451143798371336992754019357004625236033444774377307454894032734633601967599882005340526499030774502993345451409168868224677288223232173864366587314437882969286726018133365496489283470801606997442896424679642232491675691617340026334886948272530205387793105421948663099244586226785984695112992756167066810771193420266501659994119657233055974530464285487498540451060382118836301809109813396094466999496419939314336242142709143393215389088162848382407535730661604677845230687066231552067091191955502195325491559327989465140671838121500798653767440180698765786430011810537879393155122975061415938048948310088003081009062629268715154253717147172497817344782455702013058540513229688771332060178700588136392547293655611394058811127434996047457484345808155832935067969488426996131184862242911570687849835578716497057418021062509597799628830863131493767401940765259651179957180616153188867817160544705978534043492171311069452410120857470657098137996633118583309432589914283954874890311351811664533459474305138551715808048708213536908265730835089338753786338823922689364052336614328428557316758179844799384917106064085683070130773648223849627946427864215423095363981563871731576037531476289161376369852647890058071264462416286829790198853379419912529735141392741836241462829885410427498434078365901262503860242157596779504594692793210253554853538759708109536935086162716388826686473968075989389009498289123014528386980367570650258222446866093566677711491901973954472613959726874844155635476593332381198815798283152457542851716630719635566333630180631521727074226934641910069479094762634268761031246835192089573536872818826134207146423318184483671539550169024973300485357737950832194157654887080413629151375893951088504459262955214616913362842110448937305172283147731284494507100652095078517600519483344516966251382338805248556767376525723550206396847667222666292006197500955428381850869621005378567149523259547038772461324972899211681044687122106468482124215599443881139229081934338778128383415357449604565664027996233811256558133059600696769576245948593473151573473989420270584598874276370593372309414686526659263798029363648453972900036177950587091383109224500394524788264405997118334916491164468013547832858704549031495619189840446186541050786143414739647155712765954988944107422598996626106830215610053289575027780158160476666101636662488301002521233375088573148168661556484229289837630961678394596041943177835242708762100688992272208278041953439613808726183692632861716822469909269362032093009896473828538866156715647777574858110458810157554634800790300753402685303452193482578823847143709844503266607640743933909909820606506900716967474177820554603584810154194285840682629591065791110328140591896337563904670808630347716521728938665375422393995664353358613862490891380331227225872858213767949563371717652586107366565679613878961452976409910334299465459137526183701117210465918753514193591413248444006548945085824030061797658170908724974227815177839683688421087753319662167852963739642484228568703167218605852948299422897141831424166984874952011010227977406239070228022703627594712109365677276464539092846400058444197914975218815718600926150406902149265448631977728771956834568239041040316400052531601643002809414267227993364661382338086382340217691409766403326635992609279267770976943066920454388738452444293902970900181831418817931576739784424736117136840015872168321451561974075142386028098217341775321347835898524229259399767402802398531817062960126474297514732495118053821015165306789903725000675543909417115024578935546518265159840168852536951921803928783952624975719316053943955166895487279647914984790195824550338182805117609239620819410938633365198483535173406613712599431216564620039579532231722924926851817389343272028944487562940819274671797866262558166128381725100159084503663551848582389210128035502059343507080991282955303727658830341170346297097179189520895747007192935320289762527627131643513105594831609196732214892795576810695102382260175045062767220632809600212634549706757058935830301629839753860718097380347919985134311669243985028800394603072994757231472615040885397197581123846104783018094583795010081557940030004078130346774192160896397205471718964507629572709353014833460591126329235396457151929154623435804071521879026232760264799113745406227148244155605626621757103377500868760384217551473755821494947005391541356931983569945007609430302826725257756108884367548245229391948600844494341159247835322183792260505840229051633855378201907210332705208516221367780244612588449612218777812560001859097464448424495050676994779743616194408885086717201715174474485789402054368984604941819495632183882202378524686028818695823784503794097433568300120602151813981532700320566734448717872977468328933192053927718745065946870714648649278385984346823589316626833347668778506707896299879762103313059051887311477333975760913777752024590934329069859959404129649635076533637103361878935773010102797640850012452325624907107555698327204335095391785961991226478088021569350194976400879999071077909156764789735058407662204747947130988330734416996455618188793017109951586722006793003696037694751244829356911778860532587341824967134788786079814835252630578692512466794877099036611546909661668965540617744760748693161120674123229792984255193560075796352410637546028051764224112250493303608380194955667726870234766871307825350461549041624996674027799215090629955544383423048798501719138252577300691966184167424264392852821624623315688153186279311407188417769565859297421568948260147045346227815584836031210092705166335304120455995209582194636272037481089581520590051758060986179158038710436658031395970774751986387504939024743271958982248352874368825656866521553520009922659231298583140198218378380534076242501382419631040397594372027177436108044346119679960626791907486444861838429452782275346759583780987157724187968433322284532851801969875445064847221600855979651869734758200339094805521518276806772462405778788696992026487605096492530973548562027452863418144359394131404282971992942117173122269007574825050928587395130989888935377401044477028088070311981569017161589529299353696083350953812260987666662058208433543036945674529589411063891801614423981236917966291209837778804819663867007277572963984375593704958244638286673459932895345525120326169590410277132303998733596287306538401551413242831030408723555582929107634404306294363044556460116881030570091677239114334152829593540327509930189995767143082109926369555527896491920280632983839932791840093330856842469633546328256806597761470640604587907317679008643191042736971221105297891304387074548961667969140097185708501043520679506180917717047831791940376600937155960767949488572910448865413029677936529178068483268587979114191688674602683557974965210165303667505613099611826821553188527972706708714674152354378357348978798954030298896042897543713555130854344948106483788938137557279884094086423979879431053689554956397840299471073751386226161065772337965376428863898868690907236861818466882004561303689963708804077664507160797366385115688718456657985978513272778492939955353361475242905356763752403864256225153559037991278668948410341029721824429700005123151354899768122541537025901274306341792417468269191071522068116549379735644743182194434885039813358162328076810773057015456655812000726585974156441044775076356907328270622645087333210445102936606012167536801996484394620297444834979003427747396403383092806897810486496179217726664049795639523700783117851895863744805567798932845295323080619420866296986028892491196255259376714267055022798529009909422135472833313683086587536477176274363146843563578118690488976614062525534757534967402165487367919492102667140852816219922727595312404884196833977311552319288137894918120821195941370974527454014127153312040755548754669753359345760840147478569739545277474491991706227871551360476034323754155546597679626349384854319532137071474076888962942443569889959245671728375090959298132871218281433589618856735180217957455244805525857672938761940768281234422672628659806082245592044268436885141564179222500222347916610058651439689347787233786368990892629044508410279484133659199856493905340537327401993129415945001056587552075838643028168074729446601996983511480479697607384414599178847208070093059087528062596386141776997522748184442984678510070030815334121983079762440402150701466491885776886246859658679144277464610531951872257508604993600216615329289008638210693215630627745325998990819007438182536989815314899709161072399677715048751913179046746573724225052968825152478869523611070795166953755277003921227510064749559889973250833650491563764238791120089438086088534005666602720407577032995665842914792150381597059391135070797825847841612598609401900249903814290306654139489532313496173822797889882807608285614468437313874748694674014599596151848762710976055030444066590427490499117736939036097302888799286761028063521781360886120166147225590939065184185604005918734572798795516769239799967101506259531675219578619350750317267142684623252944079317779457472362297648335868111716473451333132152594119317329854795444321556606102701656388407874700849174172786794003941237490271020330225620722604976047015008752974090156866198585737523558115434165864812623140748347078140970251639047408343774094507486128315500178122729686441513811723648288630856363915532285052993487279033445641157323066318820450987485794779229089115377173776522222792810497597255781622135004430790555872707718434220300622479322088197918353130614776454459368717112399039651345383045460730607593600267891975110271958412392116324254738698165725489269254602824499877615379764628772857628282548396475989926745803367146767695124694184020642504495226932573194270985748366491860700550031495676751197188933243326645515100591718773078490621216934725071338901275692693248428356536517773308619895758884561401282747129253569729992297129299715827388439369975722157041417796502777153422901087236184038334032332556385639342651607749546418717678136679557921859543535885274391411908240555134350518755535786736704176757837908014120297312592086043187222870576795869670720946476409864969704989170770096901887990529059161661050781049851769830930143058006896745544689497516614887991248248040949501721201951628812991118353012058156280034017810071092888725713223332899432802578806366823627222871454741181896592895734867159633877433297124215466900964696782980022182239753454231583453619981008633724574031497720155371423966608586045454455561406317949112287706504408510718710658455937763508296732766450660301802299890154921434167880008909768155082884714178866142104182563971780618900401835374161625491972899351258620401066401236670962409188687507328926294109215271598856025853740704753554578036328370847121744413525136724807695574880160529401041381104379336077594942183903109616712084912793008385667490032958711454965903282583246738727268263355497239098865103141481659186785008873023110229644712184389788153074079740816166815853778410543963816679672922248119577129507895276138892852567572379083914817808583041304843050005572281461958220865236727009736010486958069011712754809928505661137502299445957883218705009292448093591490345196223728393090610043324078751036915042360678139045448461979057426790568157203178146463601491417844142350243006468493973237929367647742082293489423646131219926313284467399834876295494472929552713771364196141809707463398555696748561032725086357772691348402722578758473840974085104512987081265962236530930875310561256641309907221530875534417452197327945754036621415010744629874015644483090384506335826694001408704723753885777495243592594486095395887226778198077272090309574065589283018297743712184957575815246147181667606164043332419993848594115845197241711571249265537510874263692507032535926045200048445098561986618244524705898988885357761888352772542414472268052950049461712756105489171119098116982291350723452851436850814566805879290568611163078088365544578897570032501587831918342811823790249808159338495815417844602251406667739700556450362708270907520450230309187622666631975023809012643127860618009437396867404689401293252159091979739204593190000016748159545798858916833652914244369400215371734083948752094707952197258455701401872455704472795830255322512885380940036378560150046241922901912397805465956672568328049427242456053072759974153222076370326982326824568335085264125657084175683743693146467385368114699470422968596788957107690475445270518968604480967022797846522090038615029610842019133203672817832450355029389181336420355991878662202520542965254339531467885173167614712444272773112544113998278015431294138235571769584597509408033748264950686668117562488584956092382195542025895388492209361144682084864121195131818029760502701275901347061965852039347025165396276559865160589835349584940106501741980235967694341414069048586163759121061701323024210171405680012519048274685950910965925720604533656363362043888534624405363118792505522169865012700681248000461132405399028639937612851478665202964369140948088284329788031087063753342326761981979758525261182929533037096843719723889320356568495459733870498369339916843225390576655583238539440556085324192034465353686661899943943421264249979042084166072673890599047315182235250738287802134150218844587212161474186286792879231714516008947748013615050687276925968225624497621634638918360512440061493988140447642488465206501030630656970633074729691852554148724476643056750984253693800617948045760436765590231171971791812206099099046936064850383866614140279811472224512945474150793840792031203843119715802335969202772022414046726232475074551812509720781640110021157754668340544167325754184470541485834464920371657807036575255570934543838699487608046526872903602250763412462270761378856846864569772940838046351061780785917414261008313726946886288267703290747975363701676099999690624767932120213684380093665735198186969604939066980707064444532256758176454182801922829581818732883126435644958681818502209694511585358785105725598623741617598126004421618519422818446372780027180187099251813825945849167804659120013235378667565302695257825945349438488518059315410863477177503246513425776159118958839262156344483897876140516407154882095342816068638182076773976591923369301872205575357348667042448268389740477134248619970328906600455108209571073963010792099360576541386740988079534790139326862979987017782165435038587825817610436938649758385076817439308642649146029719166651977777853325344333572802672905024567279028991033415745057713553827321249761697177387082473006169951737329851708862700925419498637474475543187980504297472018038353113476439607680184816588285145720787491818704695842824144965941346910479451902757724688516720398147641786814871893395033628240239665072222402638858831126502104654765398251921917167649828947023577617872673709092922953375607402483690285289156157310759838915060446458867317477809936144810140957396596208983671249217194825459335076744500585569755389810429561595407275494203740097881698418747331702967136753385035407854453336745817689783207863938368662550460075622719524701817161199909200134716301609166692214533411030278435567323920061162590785429594833421754720286215719950481101568913120446148092821224588270057987172034540541310671848280342438018670558102491534331695410262006430031304454266944627002652456675805022248116463229161837435770887491059518106433831519194056387647256119918024505915414979227318395990346703645704102937115218295058623508680636736296882647050370525564229939977458526335089205553020593843861822513771409540998954433516185124350036494337623471789140930526124578675648854252051795614470796911705243287733325978513436573161277291669983979022142749972696407850389340754275117341500363129615219946019050665650563154656976439285365490279753597862300077053516417441901643893699064963437703395449260998190579589842609162575123165650375887393554604305332526944695134738881566905850102515438157926102485189316480925514298518281510143448660957985158707392707568075997061585118909251544638149677692228595458054301709627670000794421462432495992234764048887101260378702876589131394069257431564538441720022205348294302488204799770056273202716239326275985968658016834067819453924684470626816487801622006837283116559733818793798405490047156711376873960447576400121124115996722787041594739454686106904170823713866612303849413400834520820677340495628655662629249538236369578195072345895531872250282114626596733704812909677160452497035715810892247792529773659248265986802411703251219077939270164973571211678487853871083840760648632546215800255682069304092151183316768052419210307625512687034225212606042633234046836848305712350761837231873340976470535232745127211631167566733246601405181015348207725935444582593063859823950084403933884449250253422930973849258481085420603079432795492277709192142713398811125189697828766006366162134231671261325339402597294571025152746447002629652311556638005531940039215506077174116832918322282514750793797326048925647494988530316865603369748467199596473116869249715111337496938128312755585283987279631014412925421848721656522185809255494389344439376610796808037480743377693975516462716014190788940778700066944313055163243131074295334869214274898944918611498384052803280165612333876802602311165493607692363533854684215241733709302156613849665468628579736277899045577908597380190458620326269875940729667528464033840574468777407376313382665855981416342132710590123558154743603745696996716350827258963280827961806054921989917259667305242244326639688891865374093758355905200450530355810624332174444981063521582471453447790681895182656671577780767451651304847055491543370395475147480418352566783766759206524195426642677387269941729791424284037901163066093334651502026969698601686199573791447902712091399019109628101626145280480625328350186826031624400376530095326155363452154485758727373502726488056665288325325220679355099452831404911786471232011324048865311071133147937838803558396264636437599535362732208394223256410120374528683677866273700768783529326383614008269056639826241998742698699375382662409618337216243161236544316271728619606679004686605065134777380635842740374765803445849103785051936950721010043445567977762922297993128159139265093569282540205411123611996164828988419365103605858583715145701998178963747239794445943968730712949345343671326855291589247680418785454265260445696368414544850339202295769754409272160171427586781432418832916455576511134282594284674391174766321135003584426645834937043642619026293302071461937347694733271966507371723837536242157705279512244560630575674199321724059372198949470778145610026206261478748909697724477692436565355735276244005251690347656333498575372856044426066121619936824578275727179359085706100070544872152079573586221475590132924697127003730415037892867417363320359489341954606367214586420586568677110643433542039238035572926033480595640600162270337906229905368821535350714783426377815814278997951560448674661840851380260539794769498416428536319193508871667628684659210983604379119491837206077947423053535747798714128813602463141786376955708856636117914485943769458435552504892333174638726967692264833720341707420925961197053655910502548038420544929988946051327691440171305237509233687409260885554792640530827017120407728815251664494355871621169511324112546597328742280305219198143158817367341112669956104491336772706567854151284427092869933063472343823113652311227597656275586446509430676530817123123013919315557204991414861060006611780054266927272621861836013889378741776581223833737644367418888745061161434993056105402844043200669483368031064944209672104553608599501143479883509233655864279744400241204943992222586627730387988704421536148646295522074866615276752764451675315598306404186799531030352641681767749638162483753360044568155990207884706884343169548497568837876893426673399554542863741969617432248205512266293100938428662619157571999769365849039590170783735420545756971264058837974012735683391337303138058925174678662382596236559878892772531029580076942685302291083280824927078771564856327571636882412036449061075655214822832085055603752578409768478982532734794255220303687992293479088886099451005128154864394048808128593836987827548607023540453788940347383565381921903751445012475404458979114058122406894602197544260832728088847622279412601899435860482657384852370559241834454149262210386421483387266701293079493083234013466241343384316256438553159357889488627011205231938744467320999781927171519794973867495850772779881022581930606344614153094772539272684323257818777750780999973173119006531929427189194388441542087762423838047179070711845519070496509427849435063912644594293647895740190164787598636219782142458817121303570329083942089969717598484340798291625493623332234456429662497732399336329998036502879131466096217060709501967305491952067924810812852862655464468499299372841208571737723138741627360894964129072216564744083590756646339888852255949891620665346571857481968371171136779386393931654838650980641478790079418951690941005345139823450860781770392022990559981035242147673765358369055744865981323956078386820995207152178309014015525677788553503542642966435755037586484803121993562117214863767371423828326767513462247740868763344294737305458150519148398263309856666587036084684239118466314273716417266215652075423712957518924359081406587380889031598122963583117735727756129822330379225518427478337721598680234610557424488856393718565356830188856347764066874265385997294924089953063570730632362744402931813694730846179743517887477067691818162805711508776541171969441734569607081403287029130813582634706231318186671495789424811132242539171399013898063772502618655691420976652664877308022807077518467865985809844075962088675908348398550312663040681945906269935405120532248094573827868114866870359684375402828450876968554099244012919003046593754242763038983494608870671682878949917285469169837720842794650126834639389541617784501313199143588748279499044470658272219602852300066494201748032436829302878479196412719902667848522745891407418767998152617541982419387517909175581405451170781675998877828527238176743154911355537964251061501587129759178023535778636294918689421745901525423665323568813172584541313576077242668137455841655819543352791011902639001832402724480794724177702535935481270270008690160833047760216153197663136089319879390667718556755052185239792013876216893540830007479671698303996699604202466768816233005858479416081095125673932564493070425671517016223721874508918656831761295569373952425265339065037727729815715846131016405488872860944637248937044255131790238531454387732933643095492107999546569342493466692350313615457992836743696484017855109109479740913797968701424046502092933422380675431953906077397076696126612347727124432892966915320801497389698147846918199627189446499690443585678984032378436347878940428593326077097998838926103558828622493840163176479928389495378425098712104999757833336253932218980415634710450030061234885700064321286702692016050103347534756871461519292228038027900329254010799291202103751311698737868841280602966596779036982598343030456172218990464256628913228117103894215533296896756720781844155070199716709759903527438780751990839307898420818186890098683614346155594149190997898087830449038485221389176927782836132793456072593581554227206595035628990334323322698106073823887697528266165088889007233999563088787696191996216373098843173442143694559495026539352518937358610768812152472920816923400908760999554260819713898138718263739376660496180206234566146719026108568030410997846298092228372829975164977040055498558145979946614900479476945275061842448619035313978496606129675203649342432033360186034819793128574761169981189430742230683320101913068440304174674632057907829896143214440113539985108482059352080831295307142791806436945491176161713012082528011528810288107444260336788340926358507372080284672948517846866814730210974729348027091756976944227887308452752872323788577655226566952542519487910746874434850146800509930913265269195353249698293953484843103129771478969119206783972956832035644287393408378509849246970675114601393609891733266814742455989549427686506953077038451337848590701902607584064046969454675797748500820477564070359116782146978165833401109529514968766006412241256114630807496344886094440038508789024319940935967660328073200110235079655119974844316593446791220927297736775527500574037081584172298958585509002193377312958417794313765241938321472538639667903821907192793229706916247190163902856071621947153998792020626368787401863440831238877212746871978604026477280333429599763531101568592468387467900497535988724457792759714398693610988389379656139326535189657686958550620297182729591568654954844987951934862021699613343726705376129915844798667815589618273521545789934731112376263242411208279294653946901968776959585948304083137230013437647214269089874386651070296007160517467362972921636048899768214190741964345924777468148849175213726573353854801061786552720556619946035735216553526954095888846616576815246682523521744825466832666989083084854612864808103844044941847153426897139604716097936551555452687587235223879223257303640278626866306568314482599711057116196621040109267612470514193408211875887759238279493298449550018569933259238627569832366692788312765175880322999090413903577397471421196514369584374858088608308870903549602299777704653715820072258676525995993437404514131065378618429768552342170554016563027572898948223149956751520323516938504786530186503606564302717392308206355542491163927210419293566323946577698060263666844318021288077147863319857056773288104441853493787441517529834614800179678842994737839878238788812368594455733906484710862338403896436457418300537432615785458232441790538871747226347237881082080472146967387383304036058534072426371185593793750295203834194926244404449262812095872656462366604911828637695973278616232887446387204181313732573725190236542734596693555070646964787408458779817262693472880613480374377201511438071329432654527213947721324457913445631626664750075130619132412575019929032492431568833080908632628102562493347853411040987747119047000812338865627778982315135252283776473141219704426449815419037928082404276614754905231867792083189081143356938128635379555994032203713420868022239241523658843089233722617488277618025586614056812674416250511529143656351214997487093798496957198201618775269089238259880469692975325724102629544234574999904136395020149086900030628328187075727820916945583736758115030238558694400478721946078748858191453354786592053205360063208411162055787760877202279095857802881299181141101183010145140942606580643137023143241183956488525328659719932156676854038978435786887642826440378693779179761787442404233120034009254857117715807868528552856448506199171649577206722973329655886260755266245096173498909942643409833055411995429080339393176783911041863336724070510742277732818484065344722654736500272728736055198872884090907677650823816153832157895083883743271096232901809173239069250870527254715732470866975843450170497112813514096249479595324621615184419188569790407493216477821329144700349627718105390140153013301256985788307633646032222309624978325533131466060119336100707189825048139489362582778782020291721424391242811605599947775907987836038055249206402063735515300835244509059099989606218195658926491194674756069664961225158750518791845868177032099461303650099189114450984063263476626480758750471688132007984783590243229474160550198533471928996801876857720963280726698126518667257312625964702063081640910296431991283707338687943790790134372370358582528807311880852047221581902506656394005679649461540192317790871653621074811634625791146669094883849435381518706845123579338796569949438051818340250987334594142940176463773179387524521751256526898205480641095923982850239428542160198140092609004136744547747768011612568602160958739079428597980033107421219749737950966233345316151939466043603668364957112418256061256393627661436993133063330289527188260821099139390893327884567521346029391868786783802155593869031689974305883565496622710269512854558887245876056454610634359830194996217690708665386609238259309575860980143972657332706251986161752738526418553954833917740162111744408768759159956163662669250199082730312419597081315003301687342417417308773084196308370691889251170543454123306557261400374059456288994591897037723453940842868361641669143227281422772822382393349245263000964079120580247439954841457708559139220448116226230315109278364894978221210574498568479642883877969309092298880373302251964080501015749460673675657355449278048192712470498194088169024030692088205904937636019814078176983233855307801770875241135939055119258977542430361718645140043028581425267815766156718636583235851210281266801743707637695116358789904680019401897547739746851541883349711627136978985679813266454287952496452717940188009052769071197859611338462957006223839350685851725076001004607119317999060528521794198470631754681504707538572597936182784091144515242628605637112937591103422948347851929010657087086331515943383707164525940428374368234452321878382974058234351818475967741662225857571048041159504699810428558797313579996153446092237713098494666857044455465918682290366906797357640920370481989226131167425466675071613802802262266402324036495012271539074952659486537665076420533354934119173690991382054246773746734484166931094273014319551463278964618445333273911046565101728824551475998649317362114110140575361208930502835741700771716439854789583026321398129539572925895898249606949803974087672970213061632038181430907141014949246260278444639544767337044542578338548875509796285642016284801732660662816610951452030184253283353469338243689549686750885423398445476134434958614463178483254633468752927178239134884836390133370358338156174388053527476539314099485079178025587742479674645203809244077273728418560220292363811166614887121261780303655860582129544688601845161240235941496619188232005120145783549582766109483146117556336697571471544022368443961043648646185761242928168762765913006761731634655285818359764314659653322577389180797510825153839181075776409372128645662244995196724798011101316499619602627547466206010710718968972181155959067898823356456950790758060693786621976329561528954413460351914904706091052414383228664451964516714351207579919537389711969088290902043983007134417063106701839377658441517215678195582480938736163874722244087127819120589686467262149761443595647016984356232122615114633758768771497267822088578701778160664675191651141427663202105047723740636685276645335297405735069812957377117390917371359646564536394242554194984216820076616948383099061862709576351994143382952717686378049009624123620706461965822140308856859469954981589273070596998475959909895500053768196313075639970057652346798185831145664474007112808828805767394123582683904408667988349566627529960755727326454408635682203325153438893240591069935977384032352171428341687501639872317692274181066979393800585583870643355485329494758722751864454499398904230420182747133314325422462002542272307255858101049816306672033367409286664537415420906932785062811315358718898304410464881810888786726677807756048931587911529910602315230592227307483306280531817763409737216894634255797095123532423529431049816112968730478883012562738307705534278903608459354041558702474340483056641519123397590245387908363249391523238061195734607448988424904716844579081766696590022136528688465103910803326689110594067562147469245355134857845512729150574732970372673443704755254148947989924458966732852104833313078242989420133072873996059952031909301846601575983356427871871912318302339804113629269893193092540287577099013599596233708601276066955301088842120481907896345778179042912318381637072125105217977974440187398309406467255137841237317678395989129700517322175443220339833932094924921468245515101328698907505689226655846293519579086274129000988388790350753613986707886424412883196876581533254500499883815466260675088688001473835949388853669363478774217252516325936262325910611647741073832612694282850508828525290782207254553406168039793773615804670442784861751651634836366504510672532198659625623155591004106021398556809304645900858488252014821009843499122381172600952555870182974304336098982513962295114358147154750142528060891402624505028718907742055054310890927191384214256259938894616092085419559235681195515280485834212181212005979875140305810111037598927585914988429304986509231543058428463714558428715649899993801369843644536724827617268923333676683675516101222556839417582658671186829527721265369174945051737002166035583948055710203896674931228941216367784179891257919136663291848434282744717923651229036762518704657679438297723523662109490138633987474742181406786380308450090801373520828812023049046533309762514434669271167585594166895734510621989656447664916291378932054600866231673308050693841179849773246834843240467683696598843939065360317742466785019015504837199579372186819468929981456022250602318142951983419854092157533729457586355824754532089439461480710616750055211697531433387724157848806318216605869998044809831435908352327337021355657676037880732786255303967428691073329874141074118856682554779614017037930496297632903789447045478335155726388122606462364436090473404489561487226358806361938502156332472748580628870750841351245233973472001182942030151290667778115921335556310759307415431341176913111942922826959517880323017534955378757701801633367868923479280637852258493929164253532203030616571665448849969200130404366157221439743133475623015438528137754079379470290002497221962122249385178910859275430521184864104860747479779330495089486160959260828793948201239619038226892076310812244919740489097555430763503368917939236409447284237533443795528606861510621722279933030058506512424622928404218790236946353531864718174504109944652323382325477266525492816950900044839098607238446208460319464847603462423084594791178417055179841060373608457058174749715002181313948455954429047163358661199197108971721343703306803970757341602956161329366424180901581757480304190169255495615087822852655652554616631972176950092240338895724395056795836914542533296792931398009143209465098036522388313515963154730529043678601258121805256961491355485546329858412909706599707143302178733897226347566481906426916497023989455065106694791365046884815425046893239883244850726031303744993519433736297340828080427067027177818345190157811007275955482657032413975040385777751861691909871423972427513638905104029458449436220196768643855237120774972701163537837104926173751329142741277636971611105463006237433882563035817720591579456983255345333250265701896963461568499530020890965651749849835431067367295697578581561034350296674236455822023384679804132685371109110641713098215455106579189655992676067411827048134715557725477277358334485305154816602262535607235809943637616925055681014923628539213584941687317882973229043326833300242834343285743102151618663460861042315221875848943670897227030127754583667082559211781220984723077336057057536872422261978411902658448465805925796832316560759669000566717197993759395147678724810862536528155036152618196762356459251843412317625269161154701166213516919508902124505261156621775100765010531287015341963920388718238519439232316667157493438690808098829120307082389670277336365674463522372678101989438671804504565382252506606676158270191982742613766622935819822120471096695166248990351322091445636468879404109807731534634658408323473112315294801879324227035225382047328461978134293949842799418415634544774741518943987470407017965753382798686907600573806968865302774257789513995634106394085601960859013593971886843523917517621059353437755365222007184884381615902421297765920681849966382607945715741929001401348312834651474953271862332875464921971316872442873745493532072368770189382886856682312172572581471525446489545140396113443692357644257770909253899538866481656677579588975886980659670865238381046693845989686980193841069480916190885152527882052838335140149209993225260264700680391712434220132023996835609733852611143931810602483714507552197016076785753171371506486296380334941806838620373350895624893165136945699570891169002850400456071572958735487365224027570798808595785007815200520063802035059872402138034664367658649472723818767860897496681670390141842401177789924132443340787045495408862421980725736393127582889590845741831437473817608522970779808028249287069241212591211757398080255486755529307807997518165408783690018308778397602130603605328313457601967969416528698034783087794648045024677806057932008741311076282931734014151527113908098553882418584318417340306101227623394956440548679168704897433098903749856172840057026292011506517627666368940668652748901196009724206969721135349823398907304654781295946697142652280177360028545382051660679061879044222705118653250698369517590278689261556691810208777297572635622824929529270497792292051428070232829499393975658356955815353632872603569918234229320336754204697104055764647652965767406292731021434728705773773725301867048905407765326107769740183082207400173565863859249639909298340652385587127165344830892429655795485940585500595742060929715462255046438786326488574665534548120459023347179664940496313831946411756242341798798679743618707434405973297237102099666598566880887799167688545375211530934569465956851250797039349920153682886453146728637165531664960225501495864884387949792406851170714411556140017977256464586635684792849029366008845370154627475844066724090733768211730351454537682292640908938529237950464166302387982947248947219362698220125284725520944716310545853626346949196420641224038940287391834109492993810184840895602877022249604487484367916851135847934118817332624144754134663911198934348672565318194030271053315212063831288698798748888465851480606310207518963563972158305798414890595618121194258049977443584210866351465841997944727107057775896914374769908136680338911380880814957073561983940573807722505849963891753789052095447456453834534682370448301861022570054413514380520399763153639020565888643161762716408132177968137358762003848629280340190792539791360858074512328935550943420943656489318638116702133866396082236137264657802771581411771146652912216735446723217758677275417157384138499448170317667158471705819632676072332898727878452163589015227252407643549642406542484888847192988772643439344894289231213220596615559607063194091254752924667165915208625827202187021210761506199717149824696776470790301234770134302766306845587272340810430927693546893421554900068524061334659163445469229644480721307213954835680189368531031854839171079737509578003032871445658244862616143358199466975889136432860698613833440668782958626523827210352608528576831726717769846249141011865833320388384570460076811482935467584701937352221553140000301237719416564572430058907954096585123452170015337399660711541511442363824441010407872594496471867478645893935158327382635320066095984737316314685142141315472486527175940132943017594873889146769819823468419839174939382790288957547390878100003254187215653432292596401224135573873819605234725078748740545985258233346156849703054737565207423972282591599369526062710280915796589474516545926678735980033057315587415707177140603453190949414117086061590617010255203734226066995239096325821548862291739736668088364167735653677900450970409870404982597970659006140478806472609295220292932181678397580983579260918345606778742252998084541158586366222642697207227960526061077769545189291029189012971847166672322258732573254991432385451882045692029799990666671701382962746501010288938822688432911578912182586597147011177138708736345111883866573717419866151118150433735833568223968690028874521369479410183145834580507973299494560971979118323927638226573933450406418289882041461819259383936880782146356304422974179949440059214841321081129953735325220703766895035672112788832639617548687039301392920073576978322078154049474902379916812116235657053641411199635914190916555599514396475058185495713146019573271719243510664528794918772800068141502441548625793923463081163743390981456084659225419073861237007182773549510353160951107828631328100661352252566323737385495895764611537990126271320429871196866814500500761627471712577734753140771315335572460496186909950418380279176783731178351700622673164676512239162246374551810999477949782446595247936309580008757520196548268899883307174249115405218174978783632753547579880955774569127529634678143554025892013268976480909437131789205512410907064811959031381431073178535475689117904726335442654690608547987113758835702911487949624552278655179397996142003468955884127242357985917879314981442930005533222878295431534810351976011434568098647909741510859512383939364560455212238777833633018393201830072158893738648930150101443361645227213374242117038247185535876182594186514950113331227238749018468953112974019682739752381242696393978722680663735626594381092899772830096202558546231122506848995359811965938555475315601790790470983747194782250636421659044340498780965321737948025781321343330602224983668508658530720077558959445334812504194782898884269529825013930642770859709741254383390093840346275457784342476123040755421971534184804191310026374067392944189866487502940101606617627082209872853195883552493852381766986214849689335220104744943327717003045688229848129949284613630391982789755464038619822167056719435299168585883503139641431340322845083082137234673650564185618722698977606623998884104252021939641504097713521644981914597795573821730846633490262082197167713692083985002909203066237930040435021240618854093498650748710856020093304337420356066521836793403976166784248111074859147831265772692801776278646251270832079505330774794316524415997541146253880207449201225507600854598487254049652496237210345472637784215407601898082889910429301093489375135822049398579758853188925241408696496869356284819028829221708599661084892671582093793119938103662553969268870168166185064563457264880939099799838864761275299292469705080071332654012916671957506476383990169401494143520739071821862357033269117425148521800390303872902424517063829739958840585541556151612801319846269896230704489653004580919044374876289595110904510134296773244640096300477350124480143132192193917408620631658420776183028736509305130415818822694156360119268265429460344326271857745465976659987583784906550434936238109551777992117732115466319641938744504015367329636641811040373339394935826533605225200326728596527812715032534808342934400216385559395514250736105270516872018147514540775503746380608729259129642973992265395804054506154122666007433686867637095327210291223570769962129754343481506906400572173397937722973147721871963755042934760325836779030270872006642815333930722491379775988494013281756863824629970401593023768432641145946868910164659208292150439252722607662053170070890662185497608757043147494371895123415074623937073918878831625512101088055218868885778374460989957478044153947432340104184213085227129633122903568939160351962463070823159806670095801374133959592950448916568791584321113978099629154742164800252086174345531585406432442048439041714853509493767270544667531732113602980204601906562879285019358459615587141668509363756119108494150477816518861235224834846898522886854715272997047165422535262810828402598708883525118458079706739805230323914830733390409876835736555545797475929452920244047678399127527975727686634794762127653171267293145636560796106645954256290803084217344240023741893006952808848463846835142509766331734688789935307381656381849784137240032696178712535173720785397905310472649889215151772807400854306829641795310748527660035255586225829827807205770701454257080348921982689887487828086812378068497840574488314198402296405333781585812265997037606262337507311143735072694629478760808998969943470534647039903791229453848582390988009317102714952158254227272555100210470113391643877252379714457570960142673528500868079125801754905110302025158253243545001745395060959754882438483415872702927844630423004031825394349808104390690744758911413181943644429344483532102858803100951432876065719446952948901464848933741308022556529834595798797871383595614422263624195444275112768014255865418956088898075924067765360593644681445796587599054101222204770326255778613277801194637921300153744816416465977038179725005384757633402445308131152571094100862654797766726513607689973363245445071947428414613124616252938209777598448167526920110988607143272413752810548631055732808562317702389347431492542555963208058598893604696192556780919841134332566813666180891407445269971793386023434818425599243442987101544827835783887976678025496755587206507511669102976841075589099068111736899684475264080769747331114540590101586375544264903566195192275604337309282106137339271954776127978477663373262161429389007360174996871926153503903479407740803294090665959527799257849638047586649978005436628787192542459774011476946770877286353659147650242858351655246246732192241822509430217432706959783441437621240927030696564869294304324088166506093803671860546368152579991016039903802191682655287261825352432964695216567604747815553971214183960543859498152193509736114355004736087295081439139419658060287284691644995760639221997527161848762014449800582185424150473081310766569748793701859668554707009507950604995664937346233452302336606502635690852454188519715256101744771565686696128662264770587582518585996677427276574206141574474149953497078488170037063222321916145426775223165845629193965461413040014732728907614711193697083845543611088344220145256547051415387218177778425098279234401974192178927809169408552814483365303909740579077413592697423814954426666199733398676212229180655499196014724120480240329575660681936864559741898048567551081278927609869599518100490706583228677709066234486909988199415476854833129475468874035481302436452670461167514090001725365965996036863008670817336344036665438332030230654173538394692042128203099163944172420489948928185396939027233978993720946873133424859304315008125268585512171484127261531716895373921668742953819248706376801458617009748635564253194065988168458064680163253890526130212973573011657292544095781996191464941548639798178839460580753380070849207515149362783808363172398848666990050460283934201025287120822301256861822381160079297673436178899299109309803243864190635187320837031213301774020042718100924482979648796890710102696302052328324957862334308140291567247590560796531339840552626439822216747934482637061852210459465266912082387705593657261580309019865452435520369806907206847680838875834771723341625407310892018861565741459506955797481360241895657141185252234774068119195923318275729593965882653155195932401624105734273370587103157331250085742504186015731822020498581555259753727469500992124261935178258258471845688759578782315212245202951514733047931797943086755685217796231643301054213600859168495617653186653022794229086115250454936616396030745724684126391595675667540039747381673578880463329846364023755595045774967272048949567968733020205323833389779855856580591844051792286744943900271848229903744123995052235817773444541855012718729930625013125558179620594241519687844910276121931464837610419997803178232315126645363923736834786592051784898696396580211998021398591517750436449890054657578197682795912602081852670676737908684237905750320145925738957388872008462514550705323147762363495421055131096573561901368624361139626198720828328970910701385357291742297330664888612794801960389971311224257209934261446533299521148905541930437326056880461933011462897282964825006903993288934604105844825744519595975835387295083172043742414640134708175285163283566597740432294286834373262035984774908392499865145553018323518458473286277181529619696862585918232910826490155941605082675464605310215426171266661850374129919956951502610422726413872032620924359646268686500517208379440865368197041807781298933135359493115578340601653866457705739984017273067487247410175736771712619823802651308195670223987108520283906354177713337214221899707249135720395917440263849816883011637102765412999044811046304460272728277647978354617609577814488675633658475202068274960240054425632798196048296902742896084336509246090188569128502751921482780475024552950848322313360435443149499326276815931305818182967690067866440190421133953438601360977382193832966309363602187321278026282163012169651839179539227273702557994155857712779829392094835370621259450755046898416712697313782927045333785583336293635662246074615710120686237948330558252121239156089888458795192813050482161542919997876290543076061011673311234013282344151015228754724971605114354084509979906559331485095538051484854507862072157942318449266922324921270120438491914844102862163672159510984659481847240605964296073172118092065864534729562066121009623174860851967718875908082609453232589490089045908520850040102418038537165459670805609551068276932666278907709536808333468838070039150341689764731409217980883928447244996172836896883438468352451022739555172512418677261312449324077131741968177128685389418692188149164447819944396600553948396323490167891378916481959868437520347857050895760189712799621315114953593800805768159972420472191026612171515699862575430713730860761033497689054589949125077406489812698352777813502795426769005143737391336861099566965249431717318021726009617752934393202580502248771403313500881921380548144846847662988592761681609415887281841451011067963701433354599435126097826623681768137919818214363922859328590492127302402417971844020213701909659608778465818988526758062469219280909045142414283755582678995262068841610220731736347610325315159210038580513823567914388132947743810437361266834676763617192832533772362636786794711081182119345245233374803340549064663507697890233900397897990608274480349316925478761544464578911070912600662980027330498284864087564098073417711698959876766211094066257498715378862781708978384971285141232148223610319911333774851808327260005781250233292639147022962699044457787978781909238907505070361647022006717333802416741353552626363136614047636839558118675984614447747670934522163375421687196489635826461869789009853147432272603404242555360432752391162678193807987069104013279179304298764225066472006373940646631506563169353202105380329392856118980971026943383016699879796017798724231305280192236790187868203061770864853018733041596344694995081783007744621364517728031773789777488598335730319793859680432449036137416084039748925605139735952269371415168532634172283359613025869297718941979104069406948816078050097637490786593138013739170654808299812655605797990865729193173810976540809383180672936025503464934407823131558650943938191203632552937982249002872034955883534258912696814433227526862374813030422328680548792334901792502683171302084444116533265932388255853525910409466342745614704040258589686823997087037382964344086304784118907416115317177969777218555266333171733092639239857774352363994639575729838658495104493990326172193560837735779913788502520365806541616821466721631148827447752813474527329307024098733479817373869677152246035810979602212256179011386704538326212678330202531605108717557067020111037239231153225136840640987577811471392087307586581688954652147734695217273964957866329112212461347233000522004094746307126949438254969982528944640130064653177604933215072675884689146534493120708089991521856714265212052398642992188031641511333677705903618468145079252098595955909338769802522756760052442509096790604123859253659652200778460872994338340509413872778521962686179632945422919470637899400048558852594703666287257698176715354747102636507451698687007370316103431884569769124224507338127190086266216022593943902723945194626114453341943174267242444822080629799535659220608115288503107714260473079869560234980761999770307206744362287092680127900241784606980846966790610633366845963390554961448080149856538197367700080028852903092271988698802842421086329483280687454974144126224060853396332971369309031300153362717011522070856714178667197541276401430532303538698780949260008314152935320251673620222569046010626344642166171031260140089948581645032063836908265137000424848187166298360832055093527046404174941369788707713404218218490545510298213515457836146614958169649552182267305931632642069637710362679426662085399658209147338251184803979948802787504159693954344374191566245427520706951515586593281168165102634353358743368395860471293221986772448345039299259254677792037424895222325433677092854040995865013540792816257448695004893938732663093299111643678128764924030413263853979419067705616437250280602842966181861446400806865774990849339615593794225399594193864964636571471811643012621877877976238750381834781283546060889705836142855361515224629005972987341257132917316739455942461381693787054933927037889640759601907686793016581405443374723455949887536973234387033818632549955965237683364125319548236552722033381838996178698361988375042293384242540614882197626356980584904992861530080731266073908523033114333875136558236402574421527795235298041920915679670754470963757188637962682205277978070769734297537634009909142882942893443124731669529014064900998559442419343303363870578872866688183562820391488958340514887848609034666954319190313626111940940483243016320644679901543343485373018362799101524959620785319856394871299050560671110613654956690454974388799821894668113732077881934817254902804022631880414454408549575897819515353684463095484222326190363607354652855437767376674013275874378366278173223697937693537409777537472118293672314482690261868295397798617760326165854304802773995490869888855521515432632295125512984421839699494530207317845313559543613553107625099649566605006251004004576093601544367350314385160894110092838540149571296247992460971082104922953911722606988718737626113254727334557813491936770729102190332928166976422720380417799202489768096414122359235388334313789425857683421699313566426081291382262121583339937088068672534201128196057639550420592663956612523435904506149401904459592540316323621089646375713305368013672661939767016058913655721982762684343003063116350664902319316523905134605203249339494212491520160293038447761858701281362018244507707037911031786551895227353428771580615791028933404121701717920815823262834306984325824892294153244784863442799488872203411018903198282360236511979683552973555145058931166997615350417334586390297678288361616766025724306675267705893227944512036530924052576253392783867899611288445122137723472276128499569325342639564542076233275261202976480025635103713672199643501039157080123490382166747835330219320188672776405491963388763077147089739666802034226954257260266223107570703112945026656400164598483929611944288449695716636699261639633944753097592653226243806163759889800490843858513459122226884786915376170550879268386653569869643899670866243351400547416637940667903756931353601025146240362995271120551775370080201491992408356459287765474876455191120415180619813704934901645114025651823755594420723905963036546267899351900235380464943864827472959391732527216867114280781587331967715870001889523006892439392931027965320334791224717748955441180207344299330097783292249508511648414220638436647019791638474613960875677190956306408151668815769873376986208289338570857045166061744083541751627121230618641651920466890825862880300218347132015342252839337452751185020124127741582679242919950827568644162413369247180961291545149303500950975366700055616665773556578880256218068457526663926094732932587972800809137957365760024087002777110227123951192044449948132383030044661282806275721275120089714935994102627079069001041845468736382445985978339465688658237291779424499624646779529128715180654046141500423481941112047363027654846819672746075808209134355203339120763039145562350396121674402826690145620884132070413284780396432983562679490641122264226080543630594817088837067322087812157847146253272353524280836867000535627900087868675212815359296268313271741723235177989636245026541513903107063463824443203508872862684735620847186360781337588868847982781553773354448201714728231103274546271522019225350650680353092189005125330979202221667689151303411163373607616310171624283851575542855403012678156388670864129882713028452750298708736851768631699393041785317474781507122104824526372824137554889094284105980839478160746330917337446719231076798636167618230559034444469442020535045148350408203033387413407561380300400415467677148548365363673623637610905890394901730458340657228070764445445618440332861971461696818964206026586919499886729389265294139057081722378166988141059499492663302060848707227533495733163808880267192135924946932006058757227929873376686193073954187775002983167734865356224465106822495235835446397016501355115446198993784770076490607041958564919695833282521580469298265605279398963858377821831776729870288354646540251881898909323516880147132673097152865579631530692181738209980895467587552259980975556591886809004941334678619456361487331283185291533816365988541513448044415628912464478568856003794952354996134721364042378085817574708155248188049858939038832901965907811476767930749200089892650674579887172997591332857117915004977248212749652966216979916022414162263777083038259147252022513743236926302715406100224386271082786442928503139213459389673032086489990949526815482464983913098333584373672483253874708109131049159700736700101383166422543063699922060215921060360572724172270104265872429289703770093555891579740849533174070599007556193581212409123503534800144504619361147188989459186994037873537031752379989753715497394063156551185810023798000553179458586941511641949015898369808963684043739659846708035489693037361260097633908126421973257136245683514177042487948810766760015797848985340347574134441410422757696929087582602457196871881339487285671898134009855088303115615309278760528453752203686955708553108195903963717578261557779847235207973718911898876242693795009403524122250939052366486902991261934009931051596062768961346808192916635659706797412239894125030597937018848111394087701161998211223784542745080474811445762762081443346934246351876596552652512935462400119893592040876792889852020840449395539692244369846577481466219537448099772900529685168059287711870192022695681208236015109951483512108299596232792413082448159969442333472081690560800800385200840819243002223023410160559155455455146653606423461703056932058523534781151418956728511726244222318171268909316475003279579107425660253063079875313570206951375522971643994885031449624715928957893697359765763463833826998689247979969130119726231451793007003983143701303388298094243132405255087802363245937669364894615333933785419088268498109637470890748466581309237769009779226940236287528241806778179140959390944671314095396466663330681907487638149236003484870549220606078892182583011169057532755021686684938031682270861977228081774693785587988127009036699206175162753208854686929257246125047916783858668379991013726621359204054264683904346958385231335185655342822052609874505715859483603434344327101873010522406152022228320419559812407081960047912961269397688577271168818945309999337372536658121531331916348705489372686799793942946136938367421328868462313988287340213864492266007005799390834612163618024094104450337097291098830184002364716318105608005438374209452034390029019497385814413213527042791893188606915058545777471752365733170527489620072853918637892637053125633260576289596759724982369215887609029863602944740786325395893843055142586426271324593655631937965665117253380026648017833469365117050574816994942748900088073305087200993451239608987498219652168956713110824855327859306989959586928085104987749156265727598559356124064314305254881055175744031372010089902371662426488591592319055744098036386440573869177228398904744571310166474004297112683409767721825373160456883650276656592810448445980099439173157230871966189214850332610477436771924925051062878490703639726732326912909151800217924118514495075631775300032245400726646066751602596066536804891758503220422839570804265148210850429322234490911812216142880137946169573729814038207739510260261071164623926810465130091356714278532440312465533819300956516219925089769127045746287316852026040052297626191142113436796129068113781248597290414958083002056115459625963511691269652417664817411658812254001487517673098034721193700563722007348905094870345949840997857590394764580756680475932491303498957527272966075931755316748576654056459294182846965470623275654220661090504249081236968773630297020451834521904195136831851200252859539426970489052961254949649115881170355828488068585982758965906891050591095682619213957622827395856639022892300336175355024765197730010514685641694885770114095641942383715125378295251860255402164779865366945276788362707784703785305009268656529449535035652599448231543186098486443382067260752721022329487246431062474076267954491669609411585108737585413672863189793219171407513326994599732551971707457300911609302010087870562123194411562835030168001250647947366362664330973443232397225147460442579294323163135488980066878511557745840978835056618596691441900477629938973815347094830323914144109602052188004154602373743806651483019278705070328567987768505651854592113384517321435568247513348618810807059605393320619075687727911176398584796915385087200785455193272574222156326368942789233669743999324944355947582181225904216757149628904622590947901457948090380953915037515633732255820075034673238722991903074760428939595928941210191414831795580145632059462280673825196224393876513550928569087758546071813836558935982413956871386974812657144280563190486651317433940041812279040452421581274248865980823447964532180146877634532857114009665179882729559003709621818112726431755863961530603977440812680004010692983023983293590009993410464043664844309603973586277060009613276214521365128154498081151242899187604433590749981474887518463416075227862569536679565492407872348237759158820163653021017917479716715754846339806595753716124891678534802086593040119845312584456187505547486909968126442873427670888326203143625578664795779607519573932697350337121326225873328877756299598736111447311221888433692794332734612999318769899309378148119016571494468916761398543160260205150541502239317301560644764198117229930713270533180303332569364166481173364722771975522524831366368581373526063092604039349143350673148017910096167124298785937923202202937708105001392403821091979053446162987045528062284992010155219516910796440386028079439270764951739474493992711643875584046190198823114521494339043721615969244201768605833740421753084654094232795954445453181827451829368959068439415203381241594120862694252235668677090063835640546991684309925512194598183883517495118950770402530069536647079085885311223737778193461323187728062335022239808400238771628192078243072412516818509073882926934251813251592445024985682452861423420379567522406767180732172810828197338108927980893159803074364134980196764688754054980870047038568227061609194131156648919666282257614531529244701729185069791386338878059482099925486729122818781455351143718031636563475165239515813961133283549639813580959779961174625898773487226574084596187109683985075218875004003005432333675356048057759484112945121597218225425751912743814050388692824351931516317316320826926787862792569556366556621247441679167726244690896604900009230422931181264935189430996496854514635645475483664306574743952734206682011280007604743044867979754230494000452354369339902618163746264962596935598879187822583272665675977821441745275572098874335531191817675436037282665480484416247716125505811466404394688799385638250028237182144969623946445751035590054766883108410757501984239253069630750310363401505546692373960829449903755098248128561921682706679229620939321090332020258279863913457847574508425469072635879539732701724274300362486065431187050947389151910801003451700191800754189237039791229370218423017069715434631330014111594490683758569345299328819944200832123644969255601413959650648577449806736015128728886038193883319278248721140156615337810243344174476145103874380111889928061174190595544912860756447461313854972441822252202044922003446201476175261940025751863577786870753286057357408115012015307484911702986078605828622193722600628278280525851154578450714450933484458828573402001371599139101107349292016405343940840338630091040614042050551371554170880804359201861248419992794920877111408613378408765856089499835549892344385106498343699144013109659152187409143366688522838495831994240020809883745899735908736564830937249158421346611613055217563960989865439732953063421501561648889715797942920110369036006246074066931406388410818348573090467025724280496789629470197573140350849008897804611555490123341156837767605851834818926191804031573455624674341686907487910855092557184075981465487124313890631325954023526341018230021321727967859511966159926066517834134627903311198480829723346961339404958363392040682898503736411603560399556405242599022364885789086722228308187442182488026960439361772188108693512817082635097535876073622806549818933158944729628591005774569303766539662703399086098749473724127907807056190886667962886322626637282614971518826919901342838014342967094695266130113533271846524296535753751165188059352039503166654908801795778681923965116710552469663553457712776464480567066184580901685453544412810742715668833621189874208119069775487799553683411373223176760537890057831413118292933288777745546368101422267633611832552616522717299073966544474078392590039943588837777249921907374791553395978369588924111507568445644205038477924936337318478124797243378304925909826841251331440845461896763150128601840512920412018645630031566443760507501121441744441566260932338312126171077831636535906128893060703469763229468534168663068883750930362010529076537186517789734212340951761075155208608580963877601337995099172987540111230697144084298879670661742729942338960534652646385691574383691175440873663340492548028251187483284460918298515272278804077417294472424901925390766580520445631590075106760237756221173500671449243331280973881821092088481599641524641394483516732398895976946500456652930583226368106900002778435387397175195506631319808533110650945157309387422811265221295528089768929914978804362422158229621143065794601378161992178728155581418959362766888205669151154664123849145560565239158152353065274878700592835266085643469985687901190787980730837120480744403997015411182412756638342680257498656214510337583864417190001110660959870324169717499541665567156357716416284943278716309349135552623559546814595715880890330403503367355224843804447693287993354109019352764856666390413690186286079347458417690456147256557814430994987280772192363034703754348130369364647592868280202532145892916560487529477896945568843351263118984427016550594850957211976990931591759528852719115159242740195077621864049834958862301298346928051683654841255365037005871853867012893967487712304356160347228566444352209454386323477687035590056148144468336753085650158746450665765267203793706513231858322080248876320927413422990048303075842376759726008670401088148470214871889994484497602658226952183189565369853759083580078605966750967334361484327247470411127483953451279602871001064380524549968459406053548306204795593789114690327669098740094077612613519604763361256770759094247205037170110211593420911323528527622079691933817928750554365706319287371204114730358923782516337177591670140638153427787548757180847209063685047465468391329443591732515421705641370824520411176064648899501804583860752202623228178167310736011270682917016189368626391626573644410666765872652956133326486296736033921034308959633323787271561130540279208017298252118685084104165539101839225115548745541527198225394103294149600809749112594589948255472436374120123933161752338649622978716836459146174031943751228605940889603957380831147850378190216495292093870279352011915214002054229511035590417969312002168111770729811445486336225708021252448174629697308584264934882619247444877165792202024980224013072546638601763189377338211427394646294488617650062659780500951363524467779506939052967373797204893211657306632156062887679778130418943721264639359559168935865578674491582401918525613969808505386612528493938276855974083581450644031954763173447724323611102849885651393846130418113374183519906763973178642625436304168000198940485684295804848134974891117374453465041522394465251874723033534213921323705411807573208250983266761866986526106658220396659413416184029840249738878103928286842935651717841881041344551495112995201995564564933521108926653543369898096083668651435452359672509749079773097713575777449135727969073948974483977185339262290249818004806021881877029723092668462023951492010996441069686939335454385490802135822744527370251807548231603737832720704286939396016051747392325881557458693550026797856630183489150045470054896631660557552519536041014734882923926966888062815903483563764726494749360216882816980976511226917085900206539066760717583237180615698314270335254693578433937474761862536556513027019115138744230078451239464658710473747677100078032731264938859251625061408772565331121112553175279666480194388560833491012268070517311393178315962784825844098808830274776613816538637160268116497154875135655742973763093959255365403489648731092963179170095845141038463281320167240886582664440919786797802281433037205705781787669991550892834524436799371928670248701359892395379157338266492639512926654522412131874929868758420324893344633377836526195300026316272614051155191267282313069667239501391820715964880820497499748686700090426854999086387000115586699562722722824446447536799394966221185644978300239917986305056304049682594447204034524383874245109010751653728025423942600953204637336312172442993915842051929724635564839742787083100810350879856270180256687139054309019106628002761445808848215917975719620151999934503373102509453072158469662651248437893189742309421724809346600945896803464555813025089417207867988827604448240147675525477389665388883677897123832670506912637174435717434144782114633597556029878193446994318588619259897029801520270234193211804679683508795100092083551156691224363084419385970438867291913786914084457002650830152131281410879563984268870422004421178567599287593797131317511516833430040958944608583254768492223398745403411396866675829538884098000100898618139277287010262522536243884095575080983686695757993028338995629992803376728927552879174229966595330836808263659897980554301682650834384022353685783174747546273236487692935635544735318882303477115293537237270474136214407465104105422283650928521177685293480828178809710090477750803899213670681548590501311228440923354638199476335766498627243194443137362710258140165095590607318920027506270793107540529460225362543992406953619822774283938377541339416598672408255331894006099058027975974686781818044294525827773472504455733396884449830461631677147486002222980494493290730400098223962934761181958168565634795594835340150179747003963439061016303270784076157973341039558828294986794465943387889262118903778146937354056682436584725109625587158537940890240954006295279383607696612847324430054032876743723619485822770320638343748180037250508825074521707113933291035996517777092592949591829653817776780389733168269392637850650185497666581279539032934715745871526529627996719985807574004007956643756795489559483891787477620224172519189533023086981901421542475493897705453262189296068736341567011318013309386314560020501397863438961911006779410588456885211169617082449687025443400181374604998653290884385870673221289900559843131051401044255318123848354749709032323440044517312774888724015687710467227459360357032833593249879923211188598497856236905749431017701545539153910100086076952880800638540191833618733824789849898437018073634171332683407726960218141261195802971085927998385001356478602749925868455565201626955389085696212179192296491177043805800141842716502683198771808417785596727057533962804512899327696474113651568252685958772523811289388233656865449220689797076154472357857391611088369583391510843972077358947056330033967264115180098498911514982475690254609495031764929201259401818825707944725252998935788069139523517424087270537878478117829629405157931555227458893390491312425041350956773566676645321935932230573719018715037487166981454428115358230304803475673552126147750792751018315129493111008851476206042733527047822892097586267821520805382503233111837514057252491659679108318702291097112158433354350557529286560394256025847210701088856778435778663682766251462822152293867010868704513443897442789596098853568777231529308095359712508802822430486753013139602038165799875452926123790865377257267294684460338499505188112046552448708430042208541422277956333488478162692555753351650524884162538905115916325783161593816610799951096670066270732709348703645684906340542023423166189141945701038849345567985143440093550024935984760558136738114760654118039363176682618630502470031066824305320384889078537358730272580588321062543140429252446632026198946816845197152779491867721271389419212869670599360665361639986216770322233617909880128534781950944111966908450205151358705814766868114221661356867193288177857278834784141134195540578092444187569335490619657245230019266985286148847348845699843609409807905137141151207437471532382950161463470727212932175245516691942367097630047271549161215596713531393777927325206507876091740096736774577872949750919064273922641719015142466000613442391903758937493043005891032372173479122739054566702611558251555458016395567564386077344702594855002425929166633324144597134443555807602709069986537826776209258105215810815230029421813468795712254812802249363399711407071148231323453728732034756804545661281218953699752972681985975796896253055349153391209654378941895378983416340030410288137915905408853163423726352012213734504404201231186070725437769389431261505293357069624502720472854271857762472102997651212040279458282043600025210632671501362430386793029387894782235155619014897368737048884180811693553464637060083144012572910991621863288919872796494859752244963766844014109670569639426187392803109070864908627697495044370089202630626285410149765172357447327404809859874732431461330302663111785666765128420640636082071661432546198944733677676363045885960929510722012801139984799842944857780041121490058163019630377782245595903203816405152367700820839529352000413733821692020264521986714776363155906899552778136328153867716802945116574245899590875198919613345459513880432160653646069457419745378995146029080445619743650805067594355836249995771840175574631126177997848491997916389965221871303197043108811192846275461450219755410331221500401642980546149699773359252672181348485245178605153324075331620151850223071038275741003721494302391253895537527349503280768127349140778413141336828088262479897412227623852653700504260147339440657755577890081750010898836657232149642005909621292972834150021254016232601068402153025844531984499254315099434633213828356272239254020833582699829222852460994052417496267680976137300203967032135989542226701162673544313188386979319649218615509816923469994914603471252851785816920572442471665222776942037382153216608200875578062598693305881806544165488298870250629602650079548399087399411948151748506366105367337111671103466519027130913094845164224220336215600320699945395570158655031500612612514900598633263300074881857453633029834811530144585614770052791301944272887266155419336231111777172546157986794515706393181634459148414619297377242026725775804039063172600588233801109147770371328585245031342659074397912237992098271092183275833667352296156513293276928342709243686507278670422192069809669126956791155233556252374365882091186531926420199714853133391492520650843032262915206276963796348059116535138231460698222733671868023006039060509448763751701516089685424286257732502845295633993184549208606133658270449683570913336749730179761300172651526336928466588098546890401699697225505987695221798662508922752876208289248501815021864793967833534530937225366930719815960421051643389913808443458073372154947913946763395219577172552552247421777533990089772681250681901509953174524585492217367277398059440262187302659891165052204110014383135729912902291399186528995498059236423940133254530197618612471186770030341482469153035785033812858798711460523620243575286674936527425833250766417016161097632812194625839524777740638738353022374784422224931268704108331523648969467419222556057762621759285086933949369542059929130386030075793143640032759069543368913790522574318307708835684631716056015795267753243554216470480784127345849952020959997571395181238481926915945689390427729129539612966554901401353137161692292937262848189703725718698865194900271204135318823465514659396876866465258774485709146697954667703362618961308592830835978062077906336689936437042171993238373400286910311514973788882435136826519998195336724938830187168332092846510623752831595249866458476220490974310579810687680223614161032265037407264472757129670573819395246649909103537872514645055983743653324469802976301901111674476432000770176665715850017514265591548672373818512093740294266458789659625613688420483864836665862877114878828937602286917059427234934898556434233567904373455514695564378406123868320388821384242157297665028778181329637560637882235174193955573241950063423213390012961161756143773827882026676794633634623867226730578393107397700463345801018606486902374767500176664924393704301842043947333518779275248060528976315089065754581060780406359319120998572030415378663081469675404001039051768343019123539497905319595266811660218354421574711630264163418549121845177282847739018392937717157634930375378535797549200768230177550808294027169243239439223954990410823636195699035039800773641245154022908786767718911568709376490619544484309397056246803684971348078808805758437656104855156199229470849462461217704082031806889401620612249169020875513861324509246536776607916161222072000329345260341317905448615618676985588871797273773398774344584106901009646569127566439792085134653270177065053890504066209926934893174268836190755538620773129637372371686269767536273591083195562251551327969366254693489028411272402441538748937148132768947753470351506320164521424267004957523398132210196828780018123319908785761777065359757155915222102452940443472336386410408164363783963846855158402126101307981806802899154462913237259061900978484145260598983709730929398458564370553935434969900210904068710755129624471457823990322062928140627889045409136589432506561646151372144799838788012929229614692636854748273104633449760625579413575511368161159962606893392129816893235586520215843068841543488836832399985175629764161680471928125387173279044355597986417364207336803812928295743569331925572457041755249146663844936263975455598226589777985072058497653065592342480769374822214903238793325457542866298348062190953804085760260038957109606743738059198945800787116716421258559903141536854322908045052659114307250760494021450636267816279665612682956015615257655495162966843319080599075941942147004952184027758813743085563551802795001597263067059893467968442495850352828671198501618442088759376813928433939173806752023922820872076792118130439910076938555057013542854863419263601301237125769485061302520595451959700828776586632129693858888236414703852993432079318341716927336926449961929980174288465295852311145690829760923191646173063778844697580006998412479936571210458491426792066784754519507739176409688085581975114802489462379098106502905052042576280882983170545840297018595778082198113773194917440263460876347287728954917979381270630836845076791196617346564238180561676870973617079107090022291256064270860580765989414658051168727130697214695637213662529147307880455255795608158020639747356376122492548614236532189405830447693268932909881132708926922694837061825108320384317678874627877389482450104879695774542637811571474673603542622477939901834902530173422589647781367385849635732103254016946167132248022453689811428663744421305406945389595103804496218885695981568059688093084729244870968194180879585562514814267591047736631970039667621039740267196392214830318094934534203747099996890973239609813213575002099166972743961828640183736777909198095123220839959046109280301534521795250082498483582876150142440130277375674519923576080261709713367617266827768823697357129729589715011272028517564507820776408708090287043461395357256575252326457260681182545045937563895702550179816072941916376965889740697348738811320764304065838377169811544332131473997649842442211592279080741832569217413986585807846147572116647117533729284774911982325620615123862277133581753242915983276640708918818864085279615629830155170528779918619334969337956138053958404543328320626205216534571519456473476544151249268703261121298773416706701623293533454347383219424400718396234933693905307163055616347024439411892837319950886439876100834363507142240527592280460683343419923166309659275791442591608555271073398237681532840025756668778247453197291150612024372258150337392701863893770239029879002642889822898476662636443790821852514141441682588903101377605080875146378425329726694646822413069471623880614642130153520787727859369713824041510695197893098088831303262922476481324472010998214906767412372257566312637405362714713719626273759469313600785197045414106909547279198263234094502461335332141619981912163165518676119642612512500401258312934845111182009679909624559100460462551522672340363963216296234927489326126181415989583262498072046976797308001789076639950942640055562165512339423942693593028138147074208690690298400494697358587220584490714262675348986226507219129158420917225028479287351453729928582464593890761440002333647615493756880504228974010629192818163003188333577826138549439500470581967138175197066427317499629273947005891525410643864945657565130414728082458627003094334123112401597943569737087027324871304648149524838112447763437754804135057371476342120004101266711387144904694797463775881985009490526523581179762297139802162864390183799435822984042137503377025943278050512585281258418481644236467226050990542634130376605447571619253332060745479485152787471491773094625638481168983047480142893782665632063678696837608266660684196161942017754026620912828872672002171844719852780788715495120972611642904834774164095746496527764900642184503323960592056489454028468180895866748540613636265814555439020473993944530603727367752840033978720663318411791991939019659846906909114603446652086014896796076906679583232527093773468349904218174238127327708708740656667910873462836603771352226543833155542622581979886664396111097257781769452214197838890913035046227788925377051732238150310597602919385421705522451851413912500791879297348854839635851075507770940573157224044900395630762792648044797234359598847379206306339388094018986606575133319930159505591084263545272432478524562730314348409542810498681117896630476610797489830088636680598965495658560357198851961937747672844199025440827211800061106236402062758999051638860436710478306058905021636174647315738893541962146329910608477018770652829898158022166452781717632293259631591376028868378514853138384416876826104686173254803986427101105982356187577886292276313686007451776245137242408748502239615359681147162516791410988012564005496121560494443036554907760307344150592657963575065480806199055818457036352372654530307668688258091245334120661700611171108866748486563924505986940526377621094996167314191669969833547103851266800264906538039192426879630976495475170579426291727715263727694334053595808018826332395290766640449854549745718736359653437116796838074937129941339397335427954502534949682756140188988702170221869632128178406926181062979018940795967891315070157787313588733783358836946815493550809229286697968103333464619276754879448687873060260268507223623128257751029557946189411951679912273698219430003536746518840541578407892594268826199313849606104907932389131676380402746705333071520894681999997282845014369663280166917299872094952913195601263157422258208039298194898304674646091996390801807539640355129344537665978637653536027391742893921312450472732991477858571618261383244879570866823275628370846782514452440720007100496250117523379761076235636729584125825391494729478691155263413518728000222161058922689736616694336201999755635513990869079045775903475001317096190730336923318062144860958476588020309917972742789796696038676163013271606830638953571915472892429093711098629536630399131869667423339523253708832530138053767298133948392314932370269125179820330349687087629352798380625677721703754143766411844881162774885706686834816128451576151676016354919875261430732589096912389924717360155778762813661041629249931218233592492030020556800274783227575472781574632728664832944496175805082735886695020191947433535725719353416459887304117456258458101984950888159195598643024330624104358651961727291764525328872896407841792637791327255044902343804272966661737499526926899433867718557608721578723757220386541532476127589759913797402731676170947223050181681932133996506819661467804883236095967038060121213854686063022390394185238033170086387642373227771549753626016944879680027233394580613368054177129034823036577061516760100931384678496440203617233231514753381052080480805490066598231526909386856525934620259155893129867389425269168759445941263130487797358895022223600626687345419999309165561785272302831136067400814638417232387818365917637097977311074979229435159199955905338280286258288430333025437423429913710297164040020370653834388550507006841404260546755507980184068611406767106938191839658397835358850186472888307533535979357273845463137581508856945747332505113143709452561905218215569674219148853484895762066032085330660027248454218453361090042560507094017163995240545013592421552483276138707869597729657688275751157939500738458525154677191871082936208758311435209204235716341917601168637254784327544450321956367524282552928853084138866538266548579706531360089022965816477140862489746095080906622594088909332181494926994896707035894954592020619596379194806943560167060688508779940163082693629146697536784537298040588241776190320380532518391684424404598154416222789778380789653574509697306135917356108134036579430571684190010165070157482511154352170035476712783971797063290953318820974985617396751265707349740160584975948002124231754492178045133772032799919239191136454707414598132103366356569600444330139964788005939753429698195372344474731105042424230168156929213469532397900364088160963900101096106051134043964971595245533270840572464160172986501940835019452303254857075392503971501262150149627936322160779600032129707931319379617767117027877620892189145454257804201442234986761313455499308944783712949881311352582139567443990791781854364861086840929496765688688429091302781112798752170739332986657052499781396629478697926506829485841249075258648621446351554942958806900658788589359395649010876982827138697084667215184286725212477806309034670069798668216905419175151011622588210303118590875151230085262404189940774073032720587575965597173730543408757936559318444338795172169224295715769488884969872515638423191963482314157022503957944132848654185328849321302329633439883480133221816664075490150823316706623316222648191922426961456685158029768244114080968906988118701032866334858000706173442171337741868769266580185054801808696541594721536096950265787426095056175913576873179555531744143900525553837306882080012933374540552578546907087732514228518452719035014261194965766202348534563277244626524263808364983845045437820885616064127949235211024238206059134056894263958352718647389249364737447963363134173745593803473537375447892229904361712018607396718620090320555940459166586535002281364274552156343976567240599147204705310133929488974884827539424531826273124119392215448344419242250929997947640099940608426607093879910573912100110561114436248580730961873286903422665410859260660221180875246430585982908035067886745330030042916168000402168670121674334758299607188923075466136393306599651534658065748884829041087319944940838278489935130593499188583014239036443040852996969010050529766488269274215607877752860084335315731296740731766092565605738499265827198111730048032127282145889995656639774047192143129156091406085343009484495229407172328034459642711164102180705922771930019610392578924906832454188927614535670775106708800236284725870023438993140865652658952364346222247325114533295236090407646909045442979906495552222613613686935246697825562708236522493542058951923634842728048567543078697980682483926275320952103975918631750746854943877023526942129968086848538611587869165142534426229564622101294133612516960775483659940473186210974344773309451451078272909543743468732950235964726789505209121501190351968904009574058695544927133173158869966990436176967858803112096743019914319718530717428726541482709293326485748533625401747245679702138724972067039075729262219897490245416320158083023041093329478442754691921268728664461714535858028303609658891218754031979791702263248290850309687633882040038980356136625139004100432001696790199032210464056997010248828463258136402253879362887931929424514927268584051936668964453808338965286469162323157097138773596375195980514770742683081947027899581570922530908083609385821748798718167164863049716702273402366189340289138083983136434156243779763874870927693447236346804676068916810396177546295778946271648858069766497970986759381238970183357522191159940240792270238379202102102560777331810007346484727138247749295600131892102467819647140029102985488624920536839540918279809863015288685837394436584099990731419156985751969142623521504935450898328707913905309437197476732257600248239473135050821559022967580524472616101126656397365633617190031759016913951354371082232668683123589420049295758056895786723510061555156942857119757829309113898077538778295101773349592108462313069338253840970745396439528787509900659692372140665438795852820209700956560229376437575198164581136327692547505791683990702489596347397023069447090664446141969290888970792807462824401584710887547524777218399599819084343080147341043820111903195197457523006490046876901087160583861989207518757143452188312543555838407300695985365135680174329602826908021004775787651485031929797027080055681048259567685432672977833046137697698124616339750051084620620821162879499348242112830258684397581956994105225190174914845472207304850610208347836094841843001670975617638819059324288446853037695906517393448326584062284100007638976872480327433993006091893721812869996051307149390913285153362690783593342374341935900931273721134079158847643568526242869285770234558613016911519785362401014950446380539507277106372407980541939195554427063265269912885561691394171600448216499005005844975465124562893847335108114912841020801471860137864385348679470332399468952711816004550813983151621311629334120476479797072441797007884312149468066053110199689304499363032363400230063485900086023722444534827923276312781974230358636160023514015998153024939492633101742413213040703251000074964280533315921857146526192247566980316517653135327343360135868710071962905932762286948982572543290261069162105751429234737043689911227135251501312998718790671333557754991316289048648574443185414587714074880564167731709519093854855005107990967033989092296147195641817466219408421136769576601483647856937291191094024026821464896142505043903839260897874377812057226235615546653686767806065955284020906426493382167761912436311703325514947022370220822766241350778788236318904416929642148286891281944273408520492491156580191135727640810230653868706568655623073793107604238478665690376832882889405652271202099891102896759232952623923121707660973036260707805842498406974040066426016531376052004332243885783509507847551307052250158006802235493706872179127583328256323598988246493939574540354924708532675629456947694773166748255938741410804808819345232401674556777724181771493545761081616993015109577148346433040092128381797428444885539867213797541198504677389164736633195728677245967999707637540897269266032955370321465258444599273268533412456501279673996516108815021494846922551370506851829157216795742410416338677321792282448608251674840600253308317136806233074529277586042767107565785038238685437463322992104839401720379090519336713125269062199148861947941617129308015538961492991506805341395575661849523186968828976593773662522629438342156399849661794368678279540722513080295222869204873088479018373314504240902092802556682433285544251151956481722660660647445345641946926975799662541155895793737148726812970037200004992866365061170257530006146844918147800499643619231825284585222468284762380164439522418577624267171615232613924095313489297261984662759178202250625436947479299643195331526143048763553454729644762817217680958249105662493835867957350940042519611061594288125515368949758252777930717948174835727031924281837501859620977023713729746524190397035424845488540388092673843385341362859624308135505404633001912332058626459350584504358612956587697345632107421404442334139510122064935047248550979961923071926577025662830056374871231252931851714138119901411630810050028076522421143561552134426939969222224573127883365882589189821309160228573766362302670768097626424732770299842872732796783506089561888790664718587303241871735086837734016556070204313992360678387840644323216271109504367711705454119039276904763622542865412300228313411249211359577528005253241380890743489380157854396415238060752652060798166184079800237394835355029686642554225232614820741351677419900644577265773468511306692971066588018905823512654128754780664209341262769351314634472230994874085007319876014250627176965482083391894048037766856322068228704657889727964517774523712642240952066080503497854709351241971142152161781936190517521110679121436979429701744291688786187467010492534151100145865049861605831730701476437240394505864773487702506395170300700428564852117598066727457508051524874626939860229543807588812230454300294205190833634830571236103195646862187805903552001941068860614262426388504438749358204747859515544196875723660228624045587766223882230332563879296678331416351153929858411533507491925107304694386253963637773846240174182299508283998609558489299263262328213515478455936840629677238276361570411849712875379184344389891355360280304988691826533488145881058475918421227111351025024268822823664575833113973337491285286702153398098947774060475425707509624040792477614140168859577617261606663977556224717057674458072448227829473384397041889147174170872543114733703053433153895521099177345839454844328742818895770949782003896861938807944713379225606697839215916756265832653938960333117438321085453687615217130620841385566722204045457077204972278495911140630308408547245098095160348658255167998918300144838136400766392492239036902841459162334357520490578207516336350982578461101406544209786667500629540566721950090338506029603721269757634203249250870511437476504693701774544012031314397531879916358340757433615136100249375055343805479910811097718294758973603091826264939773713384492974458423321548160159227102109871190666218916762586001014384522577497791586006534197843995045349233147379811245289830674722704357629888318875237758037349396871025078915790771752353613946507656591275759298940262963664177416374578949234087304619134682772356194898020246489633547780128639361728410199973405637243851624330940255293553837258501827274037100229951743025643524375731757719464423626081153905691049556121152489652097754081122508729257818391083647152637933661859611176614798559708410810251702345414993478138140251744528546455286075759646811883531337852012797392762073393690063946753759784594778516820197026640196121009488406472258494518230643127394170912633013321055924473281173153153573953664876620624071136158601161979795828460101745495387532852199288796428353473040939781413761834189131582238223302706150728494064421464321810391576977567869883251566414748154667102487207904137701842534710567519896707955403354206882871518873062550335280058228231183885764968267538513110384281158237473220468765315357058373770802093802016459784220053815926959511038794555634752878276270374122608314183619490779086296096370498433764061910590515111318135464160889177303460976810320776455501535703710231817532164311105898381048921863255106784068477356976348515763194269101893519258323359272695505375698459539563753636693921018308884830858171377109387637977080038160984672635287230440904758848202908349557090352710406456189904743908432378472551038811728867505898736486094893602614148114798528044551084731501908520489458942380398573392256845773984794034050108965084149707415518471136610190348705754295887965603054631553217446244518187624166016935732763021392326597612176603627080161073840132613037820003867039650927483542890687478236665256429587245392628301976190022591960094051193577926639331531149382134004875332523676327227569505858825504583580212135749820265304793978448454661263333420673371464741422710166869363065193991362817442249631345688300799171578214981202105952378539173618540714261938239476124658594517167110287128124928322550197159420815566339568934068101820087740485264206491488957696149759142451908201792843890332262967115465558760422897660464245031993646566709187659143178412419576089809922292245740122546044595033437251994098505068925890105017801036213857451826797004679264287615710882401430626949317091186295343360543653782563367601874804037160977699969088244274745403825370730983969379242301724201177708945063663346012171901349478414199991001648289059254676874637908502166569532464667918619318661428836456459228521180353622165639288442116785538373956502873698315480268152012722048150297255663023265981500866957666052821969102690860025266077403899699516503755659653353608675335917227433715810592907763792018197973210497327043808377282583646383839679447079796915277372003094483887805784604985859589428439211815124977831407886384378152337956264650469168645582019084233468612501042087871922446612396058912705941584943144962644080056212168656153783538711672524283353739547057532684612039335863865778963120232218096788704331173574929668233654282148251319975805215121084810954013485866275329464013252341220235230203517961332139291220204102612835960714114406543949705569063256467669887054782382485938571367569043648741296239981935024589507491931715497099466585700582041314863017252597292370993816926465510645125958558082875538376269573454940888580992000349932782294003717600456968821651103216029808033658691840180902740182013133562493700932019637308073860872593154247184223731640182631977976210486902354035586593438121533673449576611625355056526194976349419406440138840855402066487059396572217436289513250436357448353226264401068699068972809002090112136575839802134424612297086913278929020763574282080497187794718464926893949532331665042785863461551456328992193946056219496282877311186442464429261069980898864754967661086865898695606976293171673065851116045891134555823340469712648961424406783317524844364406802033587484830826352490318234147646787798654989596419259835290980936718833780010758796128064307489084964664727919019216386931238241569490416795976144702284522590429755877734934829242325834568257299069969228859006994935179621831922675069312176506320283433550083167987525132704749404252955443501121508245622130191549982704542379251435279428761263184214958129045929855753155665593876072614559638792643782969570235854055721469364377555115318757851978937338411058972943564980570922399046268106171170943090092360032397244419423042384854980607615265619670965887062585830485772389363703970958592484336147960165364639380040346091026650967051255898591039025005894972354538190341478928568303941466402671528499806372923905619141871205448660648497671052946836235514656170295190228131222423308098711327479518039195546388902508431296650388595615274615677805211382018192581332141243839521375935564898050118872285687560993154408965855032380760435480302458840763257665214643596382127499297977298231265535077122690122601981077485979338789504834878181260508130983939689190591770948384480842843083927823157945446376166492448214218212458626496928076821651501836699775720238327137690314888830410658959469247038432115069882317411828711365464105056696365603609943695043936754588908795723796166303067187283365836977668395671342989881265067679997446536009042780596260292472624931108074224286417724475208421933384034139737008292892057678256195304115276887941876411547190388109011705123904274417335328837222838785275212940391533188356135684648617417960454284940195202145609932959324127817069273416802459935666652674600739262573586006679031147138774891166138540942342803278015525275469627676873953174515832365173172294159850049103319012240924767214503951595563186689530374766317577943654596247667907149075541582264921476518990482818610241399484284163521770714453857593712808714937653400241034668531592836491575532676007221052814478966709386192940155732848722807387581203650202588825109897165516645733985133065670561383364944692754197541076565539211232871702520840098612256177827864954643460077684766931118743716047192203349428027443928154559281558398471575018457347684568841839608639038694843093075569584987951500193179569918176630435362701390915499932637457446926960972814277460548954480786995056443632443424942078188720926671846497024909230257122434223250739811275505310250156679051855739327772016175151600947527755558145406078097608564355484039671478845753297189018265626207414217900141901615688610073454111182472295497351733056567446428540825559746462864173360083927578408598914116124114527363041028297581411382118604150461094346648827665412962511498534564134806438371363035592913763500089702454387018786625268452312566136043349532459003816621393242191846284519146085039869204887716999035252089803195791487734041768577348528040955970477620912091175326931151168957671170593655278655390564149448622516393090146003126336517028124369892645420575527034019078955082843610108870775457482834717589596104278785043736740160497138309163091873710402115734842058826550551352939140779735336323360717035026375083408243815262451811017095144285036093835233917373370500906509002474225571466843371076564865330783208441469528544823621840521788995155773063699980199319511372063982502911547957930570959640241869399215932329839636187500550109786860373360797078854969315018476770452412199285267482766618745324983856097879353685527640597935068162337108394604582144217954536590857035324434684230582701252994172727842818009581198381497511590343793111560372739053296450477606408769161545491834011844953702188753124817796543834147941037175455512112500128645222098405761080867019121098946405685666619203219361931467631252605827117593827735676655484595414350619333474088543700331856423701844854555077445097791506009316682364120468008936763918833953574927115654877348948960257217818800222916179077581406277927797027286368705384613628617567454027891786283421926172335425521600829444416603834157786026323186782345409340054628124809786591506319514472540705524957363308752267865782573333683711339660610396959906774568845546576931472261411467019208935930061712731080872433110572150800699755410778889707188879045557374282081331458680910820643146696609007963229022846142947436168949166969428121965890652829130207389514935763108909971160550957800863417997636180073340847927261512263004690176556105117194524599051856290043601230309051462644124718974806103441075350129337513146397616476267692132863880221937461608226102590221328312182570252808142888969824360401706040566682351072806993605671254803019750160404341798351259373669029130046838410555989353275466176466560189389568133887877751729242099065688490953631712184416465076301326273668993861261028102568583103147222344108420114488840121774231966978189944191656275893601117844829204147439136757124976666744992970784956629524221760046046517372954021525389976189514456358602856175575309771988987630965057811031045800050846748524984249265127322196408985514485124983540902563007985597710774831182113685452487064113153902565874686330168348332627762101315283193234169127364921855875213488868105483798898063823379944994228357005181694970487047628183724739747639351776185737474532521752133719054485599196791231748033498164435715701625643278247753913819169049750214238464263360652547810393762024154949296445156015036190165901748539562404689230812524329609897404901203469550318666239601012979092842537607975364088240416156166170420187386862485658653662622369016939538805049261291082909618196224581197442502115727978670991752647899710861288128293947588921994817353073320430071985432579169883635788846674958224459194723450796736078764625488323546462319251207483915823578205081970973083661699822208938468938261706529140956434204503562164583794750258149622620867933659491001782022268689176685751072039067183943229159949648392691654345191044272495233332780656855558620847692066724801085785136725142113302179185651963592323278220584505745268093578828235192963723874770580042949635425395435249186276968293532675125134703122728973262125679555827646617816091496998661632044034064906470799883075814822382863004289216893806809926751903902496933570625003352769510418195779018612950090321136192704054456058037458426909498490244619567027266550806780545633414805011639194388989600186110641136081495273965461822574755111877556239419059932974040721868257609573080612718543032876347467834184209489853782036911248037494287953493621749367384206432351780028602598424516135266666803494239542881992878970484203996074089375728220434172834062420467335202903653251641708631613656059098628015261996912850297560700501611410445211079698537869473611848637108539418555906777478733257773074442795094780226646874459652478163419688561704484701255011720486088503576080668032239791911645447012341471968228631685827408949044291642272906316663729253976995269987954187195258470286332091964788511721740380268650019374367969755567991587598298788171201350767378740658912888197406212185564326810983295257946880820038038493921776367113959516252775802033827186958315315252786168999947171912969466656779104548089902842524730318914769944572082505215357834703025702376989295201876181251936547190452900375072324512876646912844902590969047885495075766914332767199036697981123169243606021228914504718388815408664413766525885999824785062146921053343134261477168245984476108536293594930530521869326215315975384971135838483676748307773900654257904338246204255807763844537651999829196128774276280857870348787308398700290184274437174612753324674534003594284713160519320956784464702429361390105864524583084733164928768141614305205357053621317653549525429939849159246899044809584823066966460510061958473197520439810808834429433674529448940236871067425167683048608097758838217594615942747183093738442428961688225337402650369003962051527258329793446883675185261047145751205520466124010506886455236783834315201588367266250310063086707915288654435471543300398847174867700238786869427965184493936122941194842653706344362421589532565939087535410119268326473078700043434394345019535595352361543765448427840333306199703982610045553443563378323008383793499054312566824083379987887487143327330351857344709144830421682508282484378964383773610225800267989780805634435876169063500739969373328209774598971821076812058474427038134406900180545494374496955474843877157779115618795644850055487112671496914206898861196385385460750614633904994079585489560439163131000440422639904761519026164122562830345620727355841778687545437334704164014720921555794563350840852436876578170986264845132053015514260089553817143115592698078249690482391830184248248675170186004077777099113332493420084838343486236486858482863729219192321556810702236678290962411711193835273522840928282123461986867188422808691704544591238099551348391344802190140188951793667568997035632120061486970402421615157057577629413737701860841487574142643263587057533456851458727785752305465032813974329390193477980340564315169419111493711914678945621307583788516239167591032308553070497341684185021296963131219979639067662663635527895317819047824970931255970994315898818286103589935574173715132729602942363859514819369498039755962569841373541446125291897111741374234263478727840444152053387581691475503272864052436423640063484680914727567365088425650746839836965943865289977970411413159452610663520852450271808560051097545364131954960751028908196952363640316483684056162382269886358419926922753445639678416485474032597420011277940225292604923302259198642654929634055732861206493403685681615714966185927968443352769309906083597752870008979213220090582176181597905215260112265252379472811285962273259563303438819972402612443806045144152464881842625956889087398782553147324239565513835661423846331304320022361020862996313305912332100823917832094502812679162213682223181443149977376962946906278391005559063318408932643927771047584842169986006672764887883832998320867633042665100518727722827903044754042942875168064685488104230439993379019741459970033318792878031913349953086767863033041903622602497536840865066819508101744943391918305987151804614868950973548064771350518094610960927762731793245372354264690974781387689969071512539732919345793400874979525345289837066990079971209540165042686890487420477086364917529339249841142605404111406016484527347201741350079289072033610229794525925069139124246964905637507193456163211730344052523134438529702299531113998806720091756478276324873239463267951604243229574867050379058163854861388875755213968294281807215278800728611682934614162510576844183103679265797315632758236318166470670953515605876213453938921270435536469977917482232819222919419510991137298993942964043674426971357833289244945078620764850761961113440959425009666793746796900232356387926715890169908938234344689550939979035333861323066161512005710167716052018407983405464114260517856888401988371134763095608567013185928020496765534320662794310385886940378624862397544462551293506460616469846637488146879517172632609181260476397472637585246223835029741398428986122743413758222504637294079552013712250699794886461434919549703276244484081919643410452612521065037341961421482638199560094339423237764165059002881935757829725207196899863955075623043301145648933353009916230887742425599436355791889373135618272966034314307560436395017421040831859398347688992106758833969974796312264805597178472882146618037345593485721234164129385572447496225576524300360393364740815524058043144562982043436547773613843861016338838392218635412859742727258530717999285713284785375052174624276796179253884158521400820437452202746898360785895230616920221332962521756050634730574897370785133357531603123082865710180991878919680546746015768774209244739949555915202595424981823399614379271119592003957069878884750877383212522756321439326507204187099633422679307388002453865187478664965667354666905665116889868641629774345509691721003683282796514430170823751076885128704314155421640326998105785940646003534681936968819486554616158881056183395365160653322913868170294681644730086592615501548571010606772290356722229899741764892337254148726388474459927262512532520363340859759360296063888392417505022632688564173031123120967456919049925864131052481559920562933628613306067947619355513173868245968333749883179874747790124258857662467018434003994847469763293719473540091377750383924045649754734944852446893840014825432626156814452580967846331545699801636157414829049798952792126841435896977311121513960708201480547382105728816498846319766763898762074577120106361103993509647737447596842877913250373707981271599644367104192533079974381054195493083469372820670934231952855230672327340222662703363827145033215357505805257516830362194051455012086250356086628025805935512139929089427362269166398355668102941481514184739810787665509337881300032954032239125052608227202302217970426242941372780329191612679450773517126066489733085715585977193695808929430062488255476110488000678799466913455067121938563947283466513274107614994385247419750357168630174512389597239260719550780724774564140685753944787726840750311825996557136181514938673562705502024509131924453572129050092488147855246203234818801426356811475481982119281591357772498636119152065315396129896442389363885166990636220045807979205724236041030473322953766102525759630522457541367390415707620918536689412685380372319165217771715256276606060588668772338466368107548727081486445248421006864244247040197502311423387463823877075359326841450867710157392206117950059922981347048857043901193306803197394840909805236278555850940995598305054207672458853941319290978341601046986997226342851049226051977234498457687615445655783504716143859133683511414113690678992602551678285263496987400567147942521372144086583708977822425129101190731599639626759181298529148222528643262683013203227921112174279444871712526432300422605845296067455870023036469779746352486074325661396004276197508922927121869618402323956824790035496132870919201730007484181044435168092671550254543238780361043896185075011584549229949806745851646913411276594405376236949225604305021501903154419192756045296355350907162362991802775100578259600649873835530967249129500655935512099069955129141677084679455844041435669706956659098432447248050152770745811330816985173508423616591653713215500578564853096326076518002841567644550257528671733494930607388724021278496096846221445291412528649227054999467439158798928034470935858533748087793600486194782485472006793031773020501627706455667401149341591514548291702575742415327514844437691121602965838520632777845239227567856543683321296287620415498067358979210143582045458644572469586475501706805114817943675935219169725160340637240848752342591909915600011688395958855669917073805279975087923109855619591784716931397507522254961857404745359960809818568438163741934828396955377439049987101372413274465178478150750243282040658333077391838142127934770165261252224295471432476238150809326964826396851609312789187934567586292721856443327497968066896437574290301278139386555752652761549138087736097128640286933108145188181038924228940377284319046263820208289014056997235112697663323439229810383429143123499382219015932867040567588266347585039743719496334767333447673565512188035114912208486033321211793759859406635717239251881130800439365008517984343710611949025537177517136668545709030610235587920976148472341302011523037502264710914091351495776011727220137335323678224126634479659208666652525230794142686222470361752795295976894981492617863385463279647487171673950426758401817386046911935285742576883050636564014074457720510424898655221357013530534330355524762126551328052056774555025459583933309058046518580310945950345559443075316232450601425753865092035709751478422250720402755228428606107020239449737240172638301571810972916361606430546357478351648485731060661680392329964415271016261895103097463378327173240535166191494011945660047834376443719591505778344797176813961236225266835044398956901941264421819727792264885637794423210825044931106679395880162871319350775923096296545014657219642848157894197830313115100381310446093505570575563429857881622951743688623463863690715739183677185784235715361153522495881185558932425551926482993819902315771854001983010210720847182764939841361384352037134059531429836401461061406179067263465269412091732094489139063592462962540788013625777541960004320014623863524822388253907650042122526964623694592186037320544402727599625954494551152335024742431906628570455165084829747146567607075209580783221899141272805739988661879496152544555903243135967078106597756943645870430212229056379123785749581734846454765169746847767360898290804916547556201786824840532333557503575551741806590659617583316164877900815762811881127368927021005552874403173594739499372655259278382195883577077929573346080327599027716794624821941787004393850662502904278169605745205638192824753752227438758756580652394939681166871343865011775739516078114343934645928157389096905429622142417104835107253621432835793326439116858425127655634361666914826998108344206690812077950287904719333254647049055983822619827603145253344325482518902372732589500764862124716892936661526881175770072376324247882447439253355854349312454818947589478258500006314671907665166306713768688090219918879915961240693488443603178297624894363912715737904093735085830390804162903250864166946295928878476177540522498567359161123595235382947144074186416707135922724622838726451502897665712277973031823749310714273154678002368460274189037962112346519614472568618159974143683052747745939171470524774257420686276182716686092542333517528660412162568355002055453379585747544432102619512648501436817658659774096683586492731834011999816076156900580599746128000915825945067252741914894021990132205819261274183150387866794668093169846919518943360804185812750610231198745159253976558683162628322918531874602633383287344575297750426192448895567178913072807142080529889189626832725469573884835667441010487928110439194406018380935852335031715355747268918855456951094433366283190107258779706174708777043863002201866271523594646145772271042387764586807682797453419997760109486513229954889295197753705439703834393721454950037059786256742002907384464584641885054495240548282845194441382476311901524231725700536015246608611756014950550307462477494584026320560477301660386006772777637054993166050642578386799043068045814251821466813953653198443943436619852606457381290726106079947812370065305088457064864461903695552005696956111825000666643010267471553792435122837438598726071899142391931427734482052072004392472910500637716724144771771962849997857605545911943704521210743087285055198583394285526588621542797818970352532028392811888335250635994198278826291471532952167849863290136633147676356396280188587645025413014508464325214018368254272885579601486926595786007340576450622126686817543735297574270584211617096676103125795553452474236948441968256871043646853541284426648349846471018571326593769155508133015835687737029382300773104403008921266055115142853626769987882426243817929984088589828899339381074178155082671176991940975801820228781062352879641853478536462364269873111418287458933486886882271407013357502703852816068341066273529059298296621595173032225968259331941592556627959822676960416974645920123605413738048500717616156634071015579812371443325953751748327568566899035734764833964533746519147663091640071449905809570648623404843648173414089737237042408384396950143975025016212812613864491590780517549537592852556853364940968737527316622706375879365978710632807318722901986642856098011895458867263827184225785861066519124210676079377098665081879045993970266130486192099434985142289173108139854890212370366158409822651981374383363574814409490652863421891048086772106504306980550451232640500998744782100569362897366092030976338112665279403011155695436960248014676042407909103909968939649083093885046896256239755503805286753462401848807740303558019727181293280917563117222183315017097878347021250249788544359244890290227472461910308676621931332559611663372072973286612088243358139563317587206848864548654389305553361953099990249458505634114347607506070345074054551312047696064496830997886654483641720681181386705606393126915919800143649671901136415302647930450439354429462155001140064794281177357643199738259545603901351589942462757343064366945470649398999991680577851390147839031759154814484620695571709935456702071276022046300226454193135218917960978778212074213107862352092610148515996699580961050797310765640354028100111333102306131687245314359978057370691375723500757235498353780873915582787057364840065175070143389093926718678985505211758557026680512662852775490036531174997705563989700434633912136326934705603291294170771176859253111613122572560285444935799211633401943469984663598715330824646807462000442899007180593930504873398134811015725371760785407735019473139563879613213554215100271178281074446947587367136797942683898399362538424331266866188057123496671309551987661481666328810445707212422830045229244539167561271901823191260746788464075188107041363321564951391736391108904134658659518805863825587293272849119573222216802069269925258084906738178389688003016629179157696473781763524732695045055462765208138967430875652637911413585377045208741087972228789401524095130820300848763495563011304500283570399377341760674362641767891710009375289518212807345052012995568203840820624317962031567537546005930105453931482178150517339806050511582271364534828373966390686760619194899425807291847864493565719539743490617791771902844524469196915983014795571166834919529021914674561362230831898398985627055196544456754577322837005417910831038106030268989895740172993623336704533495221414422975760241241537804577476729307944491606095280487607818260357700225059261133958757946038994812615673064289672746747703838797950153601214455979545872648051429817731050809101592455793258230737975583405127564711637270857014726058549176960607553325889766816288429602027765144771359384901404172147689427688932187066819562507995328263786028226132308420591931142568033757132338364717980579344091795655319140892203818619542914872775728722893021011928008889454808127426229056539081251681811702609104484931030485643791349918591463466411415390029303470730172582030930367028893653488488291674173878446187784037927647229686718326843996883446465853096290485442372485881883933111907140722611568547594765135127516658182335383362646529879518239071369655106681033365783976592753597971218347306199307576554298153723261014593491229509447137187864496971306682895769911486710150678579232856325624069236880778618323720719181296742239324543369641127193216440310568272806324887747572591341997597146402987793026880941266757650858882794701905488733825988807421107497991294975601867030495604637093150586022785801807662577534720776048600186547997113171574234312311585617845606570526282648899119289730370860929590800997040707947199588942625898781988348019567376801296637989702869283816364456788487185594268742585462808939323403325747960480769472180678762232428753604959308806014919617158727936976424108799429875924862480478833411368562119837507242449067680147302998442097799016815279810189027385283943391106440397415232448748414227961341434884379934662371567770904141135825185504231621429054102398455869078194080044976977938839293710249261312251872221076959621183876819587934000267865830377367968614672760439024568987452127684126027926653920965111035017374977526554154308734379970180666224986983889334830511738205165385247304076912998745295989467851171838561089234292743462415906220572252223513354816209400248062002879306935559102490301364243836015314673808325748830246709789163744191513677634277954309048725926325039434287326246215514826787031129031536184079517249677188750119230307604084202477008908230582303990722232832801088353840145455057882107455757342684173371045206688013583649188544160087373285667342943795655557335240628563269028029348097755077756312787654813327467135551258492203481693441886770740621080947203520664145765202912698779298693516272177835303110763203615833703967698143284272215361545052227435885028004017443774067908465962051337906907423956946917401645299502946941977395885983597579726504993921968656475124870788341575092350351275682116177672905512629934221260392212386622892636913904199672242563471543681642372131277036632533257524265405034065169650697331088797435008493710074427282481265067375458252081409164582810817453550345811751855971934862250512721850528143172026518550610015256487335517619985516032454167111535501035183221973896188725253455951600519917662300062788357330980917344615398960905033362922152746161122369458516697154390650071902759161046329682837962635402909132569077973959947889074888384081441666569589119269393136744399365913391496232795429168876175768901985246406491663789996648201536624394714803824984743121620877898399266781125461443401965152754911553799936645655556698534041847364067883621991094378580515698193393613785627128752387952615410162864438830704030073228599147826984904331326916113730782702937975319162837630066882306833462840270024437410251386846362714345413848467649838115102541563610446233859441402830043050576918155839660834598717149569337598080709797650437903705337004021813972890985350513900437641090651371633115249768590069552055482901035137022208572769964019670109057230514750284135632787901431378227566176898922210538567956020831553836250904266425699992639677335371767825369487507949098389091725867863039716760083678785336807725644539418175784406399014803378858433121112632807329261147147667718168348621680356783927990594306183098944144947634314555205135744895868297586858144707653077905447809914472683829760439525554662163374969858793471469569253826384358884491181685257494578656628503594151205410021964876329798344210431883859383216582044390946205360019260231738795291960699524107549651259332599938669514994345440028731037470495743181920880459597165187542601498388615958661167994715190715439848959932202826093225505409910117684815158248296213444160059213322263776857680132841886572485027635089928356643344833076392890885985358196897319537943312453603046782693899775643963262247267056942870674846623764737111146419535336153123614647023451951333949777398754928012426893434853628473055124639049082726607803076103542487341661976687887219554393259890637446727855070084965830582519013322265710098039768001511898629531641204814490252427262965653976624397498968662072742861880782322979276775788364930969855095429994377939997546757494393584340213589616801033529085629945996578313410470100016574926661885297172808612645584962647728086248945832897944682756531051419023216108332297116234372067860794965525843010021520258572761452526509897580340767975006958178786711547219534334932594361788080972305979841258847123074400168596807501412232145081112556338236993300621713848555277361538306063143387477401133214908695396558330366363217159613128418310819863771863238976914955380117015916882924410020031974797181478269106283772476502732178133290303532083819605039664662698201380528676859776706100693558297503070517851174863729497428246681071205391363960043582750712971303824979946472599757377592128867185040280478776697674104999078708371288595660958303156564292323899020107358563497710741616123400043725898958846095645077022684154411789611768189701649894634548963619905421701098153015550920477754653600715665098892918249311985092901121574897975027735434016853297751710500999622068778741109776101757633928042107956478221687923232931387715574914082395547117865927277310959583533217886213191795642379171449624237281190410737716175097889003713138184426290306463109038552914190512394191576023059258260326643689850111383564711353857414604953469235040400276583996493817370347823934796403216966298710665665584175206793742973900039715007250893483096010409865815315349012502286446617032460575851270691129716435539224310795130343283399273413787885058608009813225600238866516881534756947412338562410779011531176847126863339991607494411117807726229768755154444246817756617897771645467367034364268426891370182593771670439695016031436699267768286006600198765733393317006660310149839432622825882946062948279343459516772575149672556480459150912123246636541428087741458169010673017495494346780739166939540628197153978675542675593034808838362388475002027429823141563222712293302087049405658823413281699726886840886541831414740434193453968747000052973273152503484172628700036795363682631621364626257615666030984240842639966759929356355763650981068144229135719881468237186599566008623300985922498554443151020550918404119076460163840845080180165301948066529793423266733646219131619066197711110505137059422508305465830436129640172157962204236487699288724907319803998119590834096442215158292855694067048078860538197809830277639046142734145697717757743454658780137840825578104824270386060376936856933411266201583067926409874234957895752245943622297856893159948544931769222115233958561671792089417014133689013946778434104108006224961077678646604697441608365156781795608768459995329593681458968932146824744460780409238104762678005535833524982264079207094213872462289848571025907826960633010744029461409092966388145985693629607456361336788155061220525861406932512620112786696266804329189494476041666499876282732440607722210008359827341348367511747980933215564604453972568883804227343878027246835552772795603661712751643924630449483541396787271269371376127004036299396947583803815669865729368243460934565324344602056088021992941884960522967197577780106561951458636412432096732432644303971408840232499172423555744300584423039824009664631649543063731659116166460437982576398694227939380589422610026001639006589463613898349256834959700878582323607519168302547452682618383135020934997198637448186767958021694627161487439768608885255560387955513295394255189162296277909369019150625489690713739117723677248415562629304542118517293790873447464762170565442700595321140309498124856493223365575620274770720833571044683875484184021199040053491482253414266585512913422378540306150180137645097331679367465367522041415227281366354616641690209764304588090360219896135284125119127761897755282804489822862655776799149224742288076164757283104018639404105283491692837032132432002748555162665901896046289061050224273192000809241143064975856708776611749937031777091856954154226677780456271173983766491543846398612169995746089295972372631978348219968256088462254834607999277831242693120591495693908630574826896631490944678107597485715061480076869850097103320661392333446577128312483345763067187176655309628852144678957486760191852584253731370443233883488082732597201264102800285243903445879489119535092117774407317949241990905069363902600659916588111480408797283132371226960079188137174489915368030020097593169423781807588324059474921240040768478313436230599215162740839026889709177623637271671407695927210840744685081926529487404677700874737308243538425554697578766711939582082197807363527621229465632106090945223947646473913285305513741275843419953460580460358105182610767434082332081700088826565663800717343182314588931887921926569333642140521929387580688684275023290954035114336753839874773415163064350119052936200342254432943459693122472674675502031996782125480028577881258255307634855312631995918466703477224476953446974062588150999320621492520637634824411702221033603939202238264747187617730191149529986181991522094420098545442918218449490564998744568339046888695412584278559876006210019261363978508664125687762762315509309405430031831067137986700477041421976232195551506474036124433145393869321111146648681908877916914494183157574667908616744343657657950025314585023453326788047409032624132049090449214378306890246901386745132223456704229044165032776471621560018062453358717096538789179247784230284999027480859424324432839581518213048725982494860864450315842269186678583871786554863134812761169063197954918694769232908595542105540619820316414922470314261516554956206007076049871060404115121663683735378952125875911246479223968615157916596881817962851880502765474647470056497284241920443361913221288131170748314695310722410544397086021283943430638817705417620974768914078750026554044182058877213342301297492542244718984616291472576641849450995015325999647167140453219006478351990347844999635902226217816909873164399779327120131604839499301121156501497352438148838766122984162418365395428058918698994596233904752483580621615385822638825057006789315280752181370300049374025850767602681471123255033472073246723763356912038347917927822870830972029598222770466683631115223788102136882249462927255437797757231727855192530114259870639280063205695570597841168016184480555007776258645702306687396420195292105155006158937369379865085040866341880546006105561106468337654721019231708673654568693019302174406804153582865784922545246779787634365352883491905551841619080266180911066005871463320777900453199961392192758292879486106890324572490893243627901968978556708432950605296939033982663237725639794114566446718348553400217900941033928708752250129337544326133956578321140434433159548702952799846724025081930145981589580420863991811201256123867953093508793660949582869169453929653203087200992161572602941984327045881606151926797975969469706406554082051117689797621094700583585387341570863902207600782873255892897111483742313791153515956140907069300780927366994871041127447499347096619411721731358890304828782719266404081031573205860838454092281493294760648089620760058718520468330331791547062382350957858739155298087810312679012396626420793758414456801798998480684202701656287019999625619836972236512011181718846310527867132849904509260514951010895855732215237769713039148124491922804013053103599737637200837161214823395265331393983489157731305957101850832053692497733504814928089712460163541812178581885058643737421086618184891582619342375679267099376880583484111255812528643168731623943540054177243723387770811856838231870563295472801037095709024479057980054472922427692643617488606657568959490318166246362044483920982916547816943888993963607853356610992220251429266124000146132037962750295670326124909679152054142783734442676465115670293477788539994871171722705426482921590280024235899868118436420951593170926229798503338166587623559376139428608822890617819046072232097808615546302131773035100678207388593641968431814801184332823110066452366022736051493638621809240672057141403953982630779608758034434978349290198595151363045440425098930521668834215091917240580013068627233628822431517220714111294222014591120921447051757073504463805412553973425913845013090379895327660784248837544299285524854961371738283914193817029059564524901721608150283536272801921061355034417382690434266097398796933797583706800246932060237574407974375331994515627433067266692341820630952896709235283795661854349025629791270556057430152330217813057404906620958743806786989678727751383544667399710285114573233314434284952749643501924518739933150489237477036732682229906273033063809854359718705853051529049072078044177507810081484318231359053382242493484673657456512299170018517065514463264203726035635242690339719576454676477685829587091773265825596827627337628908838207533726086580784656363583062907203673746178780846154708326083468236011231755144173143913183291398521868919995859135237426595297144956545498346946061376092724815350842647762273019185878319477786238057214894690794099639276233695284239062172396778136291276454997173711199431636163099056737090749982876286358147429254495799464563732527941795452823984693720651856983249684315202322112580673808216060991881626723657978359703714384943067156603524065120646061088332808850350684181842225590950970669161886895962845445601294745215753979520711983016899232853183056704655025855457427325933204733565774334540811593598628749767104891871091561740211257651527876052054789808668258993452392461837233026238468480258489474201584970470255825813861116673122334697741194220473324120148975421278906522587344047679633805043358703754835104082761756514223393534413056663861408089782434160084929291535720838673163553994732958848909519658951270368323701339374078355589286850764617593094627466444834015260552487134342204512823805573916434333173783928504141685067291903053494633380007194468701339159805114267546890233901964366233924976866026402053328184290759399554805821653240601938663229936768520588248372031980052293969112345493908188283236053560464358156040189421837989082580659592486837425506286841590175103238123522630573710401777704570615050660940241789532570512350688699249976185094885237767168218237774110142530216614167664601052013224741345781575273922219982229725247338416226260457830052327755840382440148114981441081493510811055796892748862031914573891382552328634630538337394758891384591079904573455795590303287185263875266479411460892086345924806579909974077153534356000188683558442018134187780330520912682058060472768806344218693955688915949086226136122119733898866768572875785623736078532189662455237927206233664688620710228452229718568205456862200969749552312186347450080200446413357579016718781030038372171583718782032025638581068437332320903379332113609095271781074436913059221321493274895494336101227951391689098919382315998989214933159127487733297563943621301491840144878823424266187536581421489555409640593173554541825949677766623303491625631040363568627154536029646537473651796522739298157678592107142055112845840753820543199136993712923838361871777129040807034476537037201873885993534578716576616971685394848904611875608450103113239674162285279201512689709124467214023534845613955534175233796574736763059072769707794056982004490118167313796057730533569898193006631173855398597042383174966631920397424022482639118971106689581612833860025994326380784990658094547100917462319928087651033181816829357447929812354732486046124527385133094788372777492771551250859262622228596658760851984653002239730416984391317160941445497317337655142135481298238745855257404905396253074067256396139544629505526688483123545930170805826647359173066897718308553640620693381642677973638471553738454913302812514465309500328005822123685880790736065498943750643122746132347856171610876386973553183319119963103504001240427453442820817888016150565674687665334818907785723676936452129769311498556972753724059779455200698534160177563527152348432566130940478717064182996191767757119977671766823576482450253011268004355017993715448745470075825252852504070116918251950474719937252871742514352651161847407924601571766173416882404295101467964826854210946793868483419995728663089863366240847784823194751644127115158812773686623652624643472737795779857023999053163271468474119176942474396695241067020730291470862833796045792174307617813733692124782401162495095291344839585296862424232587466347740303363798813275491442469435667683243859430570780431391657572194973989732231755105662233675653820397182594565324944230841552814905523038784269290555255557979463905112428581295985794399852641583571638307449299017802301857692579466116944020337569307132439541564272365148799296398548506197223704265333530293650894332196980006499597878929658654248967624785781695848794855410702612655103800457559217839913871587735526480714341680265299797761673028625796510738444580427440087429704985963479434622269154002776353819375163614534576393401393373129658163082012231104925599615749924471487392713940371241917677841497453718983402852596828264575602914412717947737096954413721891836608439588276181767389645193859365178560361752253277619394574587335708290576239009609576282585695610825365828758614767145578768648585749954919194491078245630782588665848340334387585704617459196055554665895267683257737874590506257935764844608353690766857736247302197303651100239173110515534977399489728908252052403451917852481022826555299916974114301098580388121894955725401213625296477117229592254040815493608544165413938551214280402944470663912138723766584598175934406609078195419840966909082259936909343536678832534679336154418745887810963321063130834161415980363914314808306056442010632237528063790731795840537978668220713990159757040506381478966267630930902998824034100970412774498519279121577820022802628783755230119273511501894284244240206302401753291915180675611076333670692979806062228180943108173625588153462738849974259668672331382098503961447942810279736358820770433434507350902702290703965991960877510334854249824971696926894479886743873529942827138891306736908393188623431158646787900519400798752845675195327701120934483980265441563939770339264996749459313358472002223873109956035926483242876667687045626720214013913780873628231252597569496861919434243195394972198387124566139225686682290085276159936257952699991270724074844425501182905532713442763119084394065369240663421635175628386710050198370881384712411240405204168661726264248052316547641060043094977468657172934993773118985787869658970587497257020159163427591234583436463905080372705754497441771846279683323591500452301469446684951880066843012813760753714284992133171831321176698675708117670260108506447268992889130326332835695661644699119399134055404281693640379877692446745152031386631338273744158188760206638963285740588570246354257628926175950580015182528015424530756362732882803285057312997305904752511374340072276945881241708089555325979675585284317309243545785646115733901338285992243362751130182511312667437799825536086636935865317648312319051815111448443984988516059466451552845246775009348824188573628675806663992803275751781527663291056185507890061656892477500564564908737005100219311096464774068131852952579701059633781598590840787513053668122196455077908822248978674075558926342655805250438989301405776723195986175907157872990168915830444528586615771809390722648239106461098737973669500529224046055280166234834648401675924369675831144625730378292611619888489394955546345771430601671227116071443921456245216143574661131401347368366937676980797499980005418281445069644926806421607352361425934610876649850960546163093581378143234280370708128511830232640628353704330801105615575468571300472998419685261799489664114307951101883641544069531878655933533935361998976647445426686774760324204052577562405353114082288539491385611448990834064732935749399561714372091072092992721707624674921149477857526976074819232099403114209623022570502490320060391809672792866958827404984930881272329389347569719509862871802324010467476750826283673435400929265071734393176657539662659867987852866050282455594224171045402403173906830618961821066702408714097251423702006516582267340229478118981945007730968430828775371244510404786741420687717151785740062519978801348371802463125321191546341568357475323378742986459650816828248444729875600195135955652612924246512020460282782475576622579834920320135162290766595828169506004961006573854038438288965028008525975328487265584444841909452896973968783748192911434687772548713260673962565638915323610512016979081822430949538704924868135190029177168273217136911111878544589005346945337869895606139939569804187799397139002051081950240624863115508271396010393532992711599501149143787970878368347372696845265398924383256442671185965688330782842781736539143114609061980956616860421536549461294027779873628047661268103928932947394193276261259527396144319629891915057478144708140446306597411659461567844942788165562048328652020278897731803991055364831209355438424558125698201440102881759626231486689063153563027159114967757181535041241628229601664720188799628926156478494206561147430300512720539998404328943982651803881129100764856354583074123779606401774818404770696583470033272748621701089298664432267060360974444589783338780964267393154035603710638653041519936357185155300242852228362012075650636455876524953773406731097690265991863095453999100737484808527492253017397261860552143811495879270659238968366743674952117876188273467273428898684974885046908277971400063825896655616253178638069287409161057754027822435012918248182279478193627938707250874553801356315686395638531215747466748143242792518617044774586699496441240848363645429571741822181512830949153064916760163258812355562026305753638938638525475954608240220652214308748165941917745962830135829193449844091273987155937540919802586985188516803538145920341620093859485956869671206071604071627083952890797066057622583183884192550466746687265967061135179650221245222264845602539091293835948032657905345968345219085274586458443501354884627734008508956927352772234768787282429426114189246805330192473093114062197997002837319910810743618634677368876783958392404240423123903389908563376978968833255437887936553720391417274421474349781999293504201535767860376272445544825189377771129514260790637572095027172367814736486981432601901717302842268371709899821834692634534950380017350996586755345204024291925904774567407359058766330790286031038356675232989844046469792384642930719110206484954050468135451096438052850072262922559928998943123504755968430026381156951150906689711935533293542830509411671463692346202069854670089400567560878661677422254034507565082672913981952687138293981848696181256052946796595460198626543780273551667793788806681074877019889819344723269144040192512347189455444360422777418282013326695109434867284657937512321996294111693296815754570386901205864890119254859561109894077968331801273896087344351035079514935671405246085106166310461048175082880138720964216824038811282289074681854278374111665860734499586728816923341096663513161811169064613165051825647091026710843336088892595654466525789152619192256354629966543934234347231597830215207862942289522881585746988032437766223887962728895885574170675616960511952278702281621214265864633590874337295459272479768300334655376572982113970854887089238334974184035499693170153046220162644326009619274842531788977939185994397857314922429294374053678277530964334958084188479218510123629829217404278999923227332318482461387346068493024539891018819036549600648460432336904196814461083723711919439109718075542616730807647093024146426863723896901400441385888388495747809443715265702642181410139933104791324391140973007688725773093204780367629757474324809531295020852091984393474170814524029846666618866403540463329277609945121394098468693548111231901024799237381713201623219056994509689813868786943080624975689383475341087007266321114086976338881415422365208183995482479938751900170043260654792033390934761753256482607247962074162772134553655462773622323120367184772258767940061740610851307169366925688231399105681619744708390543455820456865548784764676618301583333422911985999496739159994068716422967358979981889627343444220404197110701600199322939534051309089401764086533320368738028219322286888105804563612305316490425904960666935121370043902549079444626092912215830058443993867335877638957421316873252250602779610808855708872231943376431206064331098705456010402681695676677578337573091883021461667785026480540803147677331072175605851849098762174454296505944712159502371943176693028920943333051447956767767941822712634729786187752993997684394308858870435282472230304141005722609094828063676702775972647181173157076727121454542502255913566684052094330512982070702976824171015099958338046187370755553918664479433683688988751196161719379499805647143346700784243351422689836109154459346024681069950222748705923814497117316039672538456005348275221716113166543990922141307442477148645657832404387934978418840676729078364324778920663219131174543089941613170921202309069155940186389962127681232558414313131610452666008702226823083128822655156317235157695457393319591391747813716683723158288274519026734477180008446644683093084266338014351777275723040147469445226869238056157718011864213193087327732729911760630808328356154213351289896494870157339126850863011421924746429487111976203503192378479376573206089482946578453651423202733935127673743448358664798010520995210192815806437165099604651250263825454968871894843557138147366605060572824155549384844307292746816508820141555401815712657343979238415518411217095363019656130372858632257265216346003835068339856249036232175906913367895985201767370904546601627378161607558706432028718804092416044918328430340315618135413601507470660031954369433660610779583075331708622155278577833835414878430285814486604280092857017086397206970389111677215727901065151334192177439209789547715782208866193309038965719372605241008939528198869316305869558975427772901652665018076201108409615442479626533372800451121784881658037102628034875463192150010338315279717039613503811523351472841695765886575334685229122584987877407805342743875313614148518729908104720868549755132235910803868000844164632864778074200020292119665878569962374442529839286443017825566233579529995556397427748238384267007542248804951969335899717672765332527511176563984722847918043700280498083784518914025850067524111104802063051038947781668438214643614628128906784173580632867041144635850707187490583274911445114755531350005581709329391823022795925711252756351146590413957332893039257943620610415432651271785307233482165164679227688907021689438609375012168400067369789856641986545976768381537489614995036485400226613408155444716898199589334486565571746392684249252108085459987665794447700209656499350558789191558954301212547884902767661367092438675100429684797966115920972090314722029953234688109281241310984566791210968921868944460249235005543518913187998962516016727517225293239434405375085837977745464850325901754714037393548761331126337215112464222614887906192870977481745531954330336715992571329811066488008816497789668918499227408089937427817943160199554388953633072041491627889953777452577610077425143536824952665787190446565809055957460648301847771972109110445422908759724578680430940179131958109131365293047914246020381335542815106221770835088302056285199283178233194324731152826142087680090126515865241577219711100908719207299334504723692922583931876783858754777029798210423573737478114173678730454657108154546687265766812567116741522546001981563912355428058694360082065938700322969243552801074773953100315755308220704668716345304737981477056713953305267481235279409565168867316015104548364645809827312031016979754194843301019369953774564837268356054603725717508704585956346173045693801001197834296131522045843365706601556220575968811826518398205859024853931451986889545645048812495827699620010942336041501061495644016803277443922514131368429258871087308091078092415607224283066849501205206928675799376276221561465373360045895743438761935748244560498611646527448639553799800305617493425432964856459424272731401547335673108042210731561931694965408141235915606412134675299096158257630646624614713530415871639016035213975494548155760512379570211884111974297607442377867941605289984272217193831530233114631222350583150124472906789583351736931260132058452411087602742576279312974768036271487211873674550570173896139086759092690139654162410706431945804908794171498032890570525207622468104888773274278342561433583912875819436168828242238453700456946590687637200414409517414764752823782470876377880086634101245318961776236194251535460476964663841338154112359695920318343918032289454554690174402883085079418348108792454498326632491612915939177460912946665099577857012706257741712888488170221283297079261680296182960567718662074794850398339808010224056237012133064960285267035882492741159899753324139881076509466321628457594722450121501267532194332446123535442671796709190837785147519082533740634260420896116782924196596091568648647735773341115238065647146663447085690892576730303496297029083178925992488778536591034879368309445480917668900964148063384351510576285640938620309396533717993288499718627057186906907689834300051987357947757653672679529508447532499276375316799143524022132166052200157957614485293043727254135728560415629935150485057284383507154042568375680597935625667660683889287753844187220844138852230239460635022121328137552304147987548119362130937336365284958624408785349713160429235825440284994784425391528371259534939846384658424651550420655698384512275212472028601542683027981084748241285301940088493335185099141908857053471815580889028702396523961604611574020662145032053890904673375187502509054173878088636621699086776476312461203885651770586212363473884818615270622070661291510398885222244309196302703941300800496836609094769906360005741260263073939688401547135470164167566877488370390603881379918127865258090887507583888942819762260041668919356342593029297943046698024210309940148875218908957035464394544370146133348588178597881002432123437465024188939272618633612946924405574644859989638722318904558809485033989564938216149730766519228722166623388123583279269153704645860275192726870085808170839938788548888197980329293195119440299998644392817153305665783575058432916272614265144341926165089604369339314017423048770273146426315485726146352827099687321045234144146773112924836378136100174101535112139310782711674565981273101471371090580247297864710104769693689891398510930213940644623618187889890211346437156852112159733747375800253952231787111515326425824965389754091908798312199403111137057582052155862454809281472281810940740399914392705685972105674181440578585115399848372176350110961642737906165313345232242085729665433925567189266049464755939317226527404740855747433390459093418421081613358593833159543633950783642558306275280921789097961596113021238532463597533210898935307948693595318995629898588460300306286663660829389782749235907390234560475609000646918195923553007720194440892310623400391304347978266777180186598197562335407696884506678888028615630859655017978932563846729882572213795033164300042394037299007651844996210201295834701561085048366944816975833245943089420420070674229806773692400212056612247442983973009949652707224676536781050036425661586888362020488017140459773896029795867735995302645448003795861027529888732604266664423148998781694101671906867723054362514234527575068317066659537191670380739149566691725416109203775710495932118745238915220635981005500103885357814479366675844356446639637983608001389568974649291335745882030992593563047656484442519278614637142362491992434085406481864573624357755581492889896016373815646080907876543855725068394600755939941370224774631387903802085582415457112350688293360166157900502027420726061601184932847893307112468126068583880111497228067023818391598240833877817583898351671649951809750380127007070036321938320115633479600652625449534582791848675923181156399540972262081651637244536572084666738171724662470892946576614286841909986500911268879918557246349985392651308518993973686826778914497464450231903287823225228917859321595317079500833706431572202933780076384836838045449448136648718848086399963557662015455728569285115650532085703751091742210110881727975507538985843623241716682416997977174279972925989591404510697665030617557311757003148941657599770311057500686668333205975954239280268790011455388560151046553365904453178561504075404354690939550242256313568427820590649375580757310342931580481395989778739029208284563806949455812019502819600791392287948333583849780677307616733504842274913503902600463747455890256026453907026216758824059561883909569384979082392609595309446827101818214109683955357027390353847022195974617789727102874476373903107108794583470397857117642565732999743789760404212384763843194800362063275127855912774068371411896320576570064691537178642305690947612522450540460996282023477091368473216773642673310254798358231939737612175758266839367001326960623663595444053824269258025452061672420410303046040069956007651637884797610111990031106075239655000751832967003465075616769691062491448100695698357943314254795333403846867084676507002371459280079718856485503836108311511743266575165469609187733369052979492756544517170350417789913015443615758053666481585413444395459220661788878744404431412462176218628505265755088300483747680444760407812980591099362122442238933718353781995425383060406072001216200304221750195605057701333639410607977446176878172293258789404293986439413219645167535838313225377409711767747297819043860777171546454913639403925310360899047054078194379646234626207657968350565265853891900148425843723858893843269465641628265196981197453128152274538452028812271580144923135202676078901022141572424542238298506467017519025242111850654165873757383304502996865774233165236727868409878832035933040171956551363360733281573398150493564103605277916630837327160356434681015508183150566421244382934441841290216776189366617100193450588516227095222495768071688686191576829827302509117841800261209528521827875439251356482165255770054382539525119712058057474684887802019537041670674549991969038212045416187718501207912452127761740669827254058673358243147686893227196670153428195467006761841300094041215385846341409243231017155099005205311172373080187186110624078942364268149985073105731761078207473862720323260961697509845561021902809961299906370956057196438730469227641100911176096361968086959470765742320009022333692138690269571766921058171931529797068505298905384778686457101395887759418614575511699306317155483397464286697705520067387627750007167548930738399937648424301611737004833355243895193520310247284632598589172961206578601335150416709418881333984010478577698791565737178804842400724159572484664483421708610664714673548545829700400054346030104004538513925821231648303677628131465040365358909966452886301154834601780932161671642320730341032444751003697856269599867800157153234368020743334766764874458103977287711189179065641107032791989489594316121375478240236307651570400906323412577348277808534551523148132796116108107852065063930723809918361999107450839393265048177044339628888828977601783330340594399056877606853867505347594759875813596771007230508159624318142974816125358773492057289032010821363690757440091370864861176555406449919740869459437030603553313433873545212125282230974340332250310441829124025807123929786560932908665293944384478695223465989300970852274192894082158141372803894656645102999059917631862112277361304831419893158061108802682202031216119019124894507486429129051435950358873480626727081729996464745079271785966625970815851005846074685623833519999670837138282237658900816231381925315198936110293398131451454732396081214301772816789552371656854751035670453611933185993746343202036586606833384845435754632953170295180433788374074871480732562153747549999199606007036775672231373299951281455360528056953602487483890177890052275025681624674007649817641813727469662305502752541091795708830028847878792925927215169742700910770694004575998085997940352659150340153421179585456594182316060854099331078041790884167772299632395343727553361843445605060817219585269170719797104138931971203632697626650386223080355971761432929484783989002133716727817057245350207865204899575101873665248675475337202314654380533191842258723874594989406133735416739853819788681412468986257551224754514502701700004532305626344446458700591116534362468539271977963491119533411065982429874118474906809602636653863417044999335110232277688040089846572509323489099787397486355841523490076873355873979923867887785523000541116123283336312955322344177793595341198559890486080200956269237108142505668665113419825477937835953964553924572176102190672715172929520655691899308331061084330033981749909070475865270620440834538576491401523320960867583140927389379364178721613281280621738395059185791405917717607386630847215389510981653166868819747557311513844069917341707851197052534354055016660141062393222866568508765794976891939700195419756278227726303498546402982407407884536354060728457881887552387413396055561488034941705152156507222797010734342667793347887393524418966834313455922695982949340976862383477491667288525563002204603364477552718755704622498799565849835173039299105529889760159437725139898990380476106837789632120985209036689606443274785136689073306443900853370281167531707501451840095762765779976147491236670781352390624656352481017111501908123751443099864439719740616888388762547876781908555488020341490069495084099476804496916185420641432698893149013255887085339721689929985002519954403324325164450544452318821267059640722673367585999680649457172670676134626948211909942302672044957847834860194781817962002311541349752740840050147672569479885656932788001985341890377374959579379890965936297628141810525022747962619754175730285955385181085997029542065275951833585525907533233302943886503696387775361287861115002076156082164037112949593075454422801570925453559720297841738762248341560353369391607987303370023666992397678816640898564868966962008976216374388295487654980525177285771181280761426601037771445995727178511793983076859581780221498418213185341272469778470923113409556106410407621312285816662876460317999943436748655107307953847207160677146735835502558178634497241620542036752345916751833247233097356855701735332751589708422019079953344394215080204173994077380126330269728386639124487055815098737817240476526446290809296885652590686336751143829775606223968746341787222403745806259890966942430824661362354737803756201360259505098569125516783494939190281311484887022938551282439927541498007858036279872616028497977008846162565119003238269454423426839990379821315198861412849942006744118442928221205242637047889427053032948982666238290582752919493353269490753923572588439094899341485345542951649790273577733690911822444704815095293556289560065379931009555318054943123533340874614168604343777078152449319822655337552285558930612186713126011462769508012277462003311466760635863799289735753085038003169954302217338313265201949774040591668154981363582013861644517181484352733992872414227192848879020042491057622660061583006988697933145262722292442726641759498003076389967655581583121591225239810320917928325807674398403389261337435654847538844869985403787728497305509246602601871772596625703237893392233925776490421520604377883323558564109100176980866153225706425832970783254799521241240443108409762958497225744213287326245060191330824711984441394439206013228029446683873055163719115446231171190846721229093386957924861697677576781330174944397137441330208053444427107216897714599861838788248700070849826299173748770911722001013680466506445333047291819539127319744609408766074286637762472415531967009232204502841955649002480394370467592735471357796953302058307353401602646593600797978536707130071518425278299822059937869283560809969681024791442086615910253065608718834401436579166006711979724537585161556976349558005292185719770437259179163672883883826037079297613852433115926957966298550779465115946194812065964488500830734541540118329356045202022911342879013515882556492676410780315934332636606968420257312843863804191816813326605616951694373295246912287213365642724968188575612055213701674753490322239446984837195275355717747708608121110384728735986678353074781056001098764652203987993316389781479720749819103415334932046154276746281122374557194071255784885234799280142456648524335186665427744937371876086144803416639383783045268411701908814640078870360868476658683665864793616810788130799519277437407787535969736020394273465462349028168684903516688692999895478917051427537361305554865669669035014461983207347727005578961839229677334668451126793783812769158172062293282561273500037747923216665616216423913948072005016905721708157440512469538170398378905677702304746674148825439222710796759021180467330096214056670988186002829377507796521491979479941794839378925195439376715288851045255090594672646076926979358317237542711957471292323779488139742712698437485297367016499867387726130589466825113311748756543383708655191711903956230435583325359713039583148722693055260242932515191236138567106896250016668773783443429962495411572031542339415892620975061230160764589086996399451749625739222564989433256795607248873586452772428385373662695475034049509881003562321001326595724129990702126732282965564540087842637791306928608944967393981417917245932685976399052875979686595399505257355917728219332576757017145941558871336926444179408158088791412650006663769909246887963815314966763198329356619165052587648285993840801301430109005654428067333461738669766955672044008921926441643507111581272968681575636099597349713311734274620149920580412840620857840368810876917342692209708470780434380076099690324245999300948896825681132050143198307565078450925800116538649508189544468394459880612421297279761283454571075012594190263637371942721582305743815003342735199105763546101711940837027027936079901793842593313627510586488015623409936358515849812321338308760485470465964259589506437050431969604354505116930756190339055376179059280797724346657329561931595857827000850926235221972556625132726931178787006795802604439240300307637079123200904383469412377907513417257916932069289641880796135032367839233375127735696458457517818076271822719098387502605163398092749645981189974030901955160339288372615497308014052245230157734633794574733164620341739893132430432521077978437675347918611764785073359920047157980987658387374007153330572783926232890462288894006173527705175497085296245949826549227902056788713511770193227679423315624692645607783623836384869380843482841245558148485325252798158184472881385259098519062678245426995257974775310492153646868150371024454613807944193572347353796518009387059896454226612777123400684000966449362175172475595260932899756150906375261593499057479914590992846311634231363958636205397590358985265986120270633445008908007452589722230586147293334064864504589303631740323910863313958490013392125853399217953899620088547554736149167950825665903904287148547431536027624589022175413933878430619276140410295164540195193911566487888309471415348106010128271870330681686622977567236297910824677453462068473697967169415292482765496969462644723611583789772601479488614759356658990965736781948661093585239293639713101324024653585522973985616097720063537377199085015019872046184892452669440705067792339898424094347548945441577240464889589458322574866491996507066009737027529077296275685419256927519921277469681851746571902444767031553252356531496881584374922882173090529748996512593622525564562012643676687892269925233586734485138901741043545079142058075511764249366304948068996505409533332690481958065973575007251180608676310439302784600566945167219477761572560403514525734610923514302166633220893953121339311932257379637777352590272967637944915370678756761325986698082640458689110426354718639749552546997112732581312935727544460106765955310542620459500599861614325443866377414503708043449122784895451658223226414086582083726515297097671078365361807014394757745347793669369158922053782838671856091376036377058733478720482020038170599547106688800986223763877606268816371881216127340976022931107891805594280941038539766653629388372600224282758230918152580699838444108716062169834333179002790711613773795903084930708840587474960322140647230710776015024194050264097915933547465037601760496795272967524796600317748400830070698848361787270083595885963473059745023486141595442017118691570115081511491615604291490315070550999548235246618100483299927952522383791150369507366488392267519824802097094998866457319184156744916074089441040560919376645637718963623863931659348474124613433469401103390205083947459789509378889663984922534011845686158022546674520338888594556419921407466221773985460292962014655095716902143466059677040901153184832724394523838848848082876758311790933073326570626588467841719825175700253762504753471316622522997363617300702721273528867918491830575547071797441240908189078299040184546327809009011621898817382859668426941218310323512537918502709020749405247636982303269594446612865790337159004150182526261419949336344015043237232026847698720519407930251548963264401737217111539476320595535126391493067697534049436563795372888059042594081372727705450642655755801051813880978101710694860253722785500405321869742175795918968429760253509390008837706108941203393493503841705105166429969196558807298669452543328299820084060261401425448282877726639562144427262768907722038860685594840269029150583298575068286573808582295692190451204588879988290752390877496263045036330442568425961849314302576454205923230436047440642918954394930339802238777790533173562294393008953811519742770866895401571239004621343296703132634341621841843849086842726702456069188888469580724973971950264402290838225418086352410088238156033007737697814279486914838539546805027218426211954919837380913651279517087997863233894073060773046230030397281388959745479882512431724374768893024266684766042326644743135900421471856640586727795115817682113011791770831807201869103762975276909281209641895576148532508457599202210052974682344974264302487753234136155415504380967154194079459643314382504974623428972859313247623175661536458024014037625702553219282141924056440574670864177710890881841275094367713659701460389396776261076745845526125542287212310115537636475347025967429379864145804601319845233841498322842469676984971271634356083379495354591299027196794794570906324186146698110789836149341839040068307031743340467894528004769888877943579896398962306356751498460560080583995207522137907801637248928450853142833697842156353611726647605571772947997184802846324174407300893276177330137168926733000895611186122063347902792859980174363178177033293493126161712699056819729944925520131542665161276228867503329122805888856585310778309306743450433400729898272729337284348080557036991065259174039527493542562533982035520033923025028355186136910914563159792344292449897056717523542936027810770051397593145842445061639255779588841341872577269591091511927677377498392059692172769134659884026076915616038541740971952136445402755719524598433818648908307863160969994371213847911164637119378905406260015962668785199674765355461944776356810279112432990711746230924700268771584474610752800898028953481721698785587339152655272951188258793422851380364766625263670776195217147434870905081822633458748152015213339741447145011448994784917957732639836895896656222097453127493584700624326755971245443485659918324219941769833292633689390965774949483652412331000503941275125803881008171295990964467862697870084171353851303493865936916432328627764858018882875410751569031789713587949722922088693914048186762207841812945601933402447690509649264348300233544673967526499310172931823105876759715889486219442014320830660338026583226293528265741347290219133248077147737153873883341546555929479273230061802412025242432494311176395563711078347738325305687271435607287131722049401509660013393540420810679480121167193194268582837029544476710853047837202305541932592227696016050817911190436385205829862218078277433252378453413865721795657946309927792170832842893886757674341464507752493411162077229644588524669407304404970684356458517066776984787632808594182494365231638231712478555431533080756702842741646261288711217545453027202479579119538549559294871926307025688497461251867510539738281510643720981518851054625143169227960439759061482176871395249222469065848584916227448225743062944747574334174339201780452155494655186219217532140461942788601316729554190313352489760065060641858112662431898783355041215293645398806869957147437839999420720695785898085836582669082293857117302646155683593676777503614483500393413033792935495169230068255655027315374522705941248334361339937749455665033493111408053108873518210809849551122380664093377311941962054891277449170364974829392085497386252841302744129758020248046057081972650083106578626600804736296658053916730782963769816248783130705953393457592840861413686738369985317061833101040870442445636957109899721703075905780315946479901432130878387714764503516733792778081598397906037628304232423710084611857430723984817895694997191468827547787518708606411007688015088499346701394932323580288981715774425135976971183509344422976485066635984190192028264754382762113492805353250555503979703229592785715610386672093472322074552269674842722125479737174720013045126298483303795776107236156005740906828692851878864787347306682969153476377458314941133927557299974226779094157741495913221497007644610750551865481881953859817399682647746911431140072433615959478842560651854490916153561643546826435158697891166290363701338311710437022591159465913732999372136040439233963616748680526529022602456289575349999771101917872599426922157834905993904445635208287922634065840155920946353220036003036311873640350864021931766203512225769472224079506535300602961735343417001623134777209533909266468137823713204076769166279392759288969595629940685870884347431135921388542635026698909740779570667639608049938397553510408458919964702570003006471916874503013128711095185788898615682219574665315008029704305374632118306900209418200789477706883730841008955651505380699833498119748359127395644697496080019379851272575723707911465471929774854308835369844038478326462063427595608997287103743088671150644789726250387015990164288489198023114012452934804295799974129124723130304577376132095659159995612632940396850288401427769271027672037382394926629289073905099751136283458455977953120615644668472442969055714156955917236506251776534404703540321978067095676130741005868364569143883359191924431825995171748127501734181163933281237860525826048234278702366237378151104091094396273587195323502327539855735463368568077162433328624954307814446144237083044549789068509572840767526518299277592477990270533222484753271315880301014715839788258414496393074367400727479183908664022369949130196546111902450994013891872469250612588646274080530523396065738538976583235713699476186321009203510087714087755236447757639833586711870377064925521176831333761407124347247846079835460671450561309043822986005490737224642864170994245569696247633049818072732234695610380780547300638892518084995959432954941811470167703056563916515310118324993854407025576871992510308559978992160089285240304302837599911683922927560437164877584309426116953411418177099311680844683293814513113867377902944745848397076998480292989522629891187497652220368620774666481807347492837962401122910195243147884242769816233412583825168500953160640137802621053738554481171063419193755144890279876687354071624227171684247528813072674696374696459836549797941588471462064565970340687130112468390156874172166441013009119062502114573101589876019397226270531597203534701921673957888058719595170841202604370866870355629048636724551745833977992147493019828247791501382565212686049427373271579382935466788304586061678575104273968396452507157433620645792117528684148112220922675101187361834493275780637001784719594219476783478171011332961094794800831679026778656949140723910454281186935638984578870251821992362378954000675283859695140146953273310058604383951543312278873631059717123998422973096612323798460579776906221163768388710472199019166413424063827571573685583358589132334756890519371297099068740236358066783551923900228193665140598812329090198773842603360381110020261777480339443495439057219399824886900216079360980673891237338575787199713086251833775946301616879596265148102023110504385391408364025389978625251905419659755178859178522720677804516290021182688037421719764340461694839472118472606554767447073922028593167114001666720419238722174969109054446016630434768507219651504051545512021867309182203558773619168944252945325793970250042537597546478041472830524987429165814158949779297939750667018163872582200354748642227225217568923800547275729017684646286894313705969564853931414360364838592915016859145432375973078205269723369384159458961439030327736874720110051028153394145266283215552060600483884029872322155440059455506038936488505672257253564579889561851325836520923958805287946468784100203324537635048260164790863206035692358109852108447605616424612558533546588578644261840801539860849478577489193734144567019585320347295069258497387141832965456726963277069589656632094938989545887337209592044911385342692225036892260106967069307770789675123273322153095489178135484075126756929500612500235587904795501581947563607924026048647516783278177723244683290289089152338219151994089538169463225951946244083270990126651948334756797805216022631284095300847103686204335536989589415197062956000912023902163893552794636959857636205264429249131449723367292473003500657023613396105142112429235302108024592885940170648490473256966893090173345513600296937939048246338639661102847068667839569196297879099792285591490501871378242077827880344919805022481478580323456980466310313705130588420918549986791592285694743687603552310154297866738665790742238748639911590882048049535999417163395455240376133465502493486151716591323110402220637753416278615635961962786783798029704487700599287924269952596924669440166817123183796175630976931942141117743044389108990564882228958299808914388280910729362353794764884587654070628439565116832191441374718043032391509203317692400898907044493133272305520527677145065722232428890327097091592824808636702244175293529499513778624336304900846327663245787880909614092779690183752226777773222815908899585377302480511360587835466472917492206951390849187120068831343580983668588393283632582396915001986221247782092849817583896327844855862701235609921404679662536861035583144621056830433283276940959139029766422629911356815925408247829153179793275859820776403772155885982572697722221882747612748153160809194257983457023604523400526175867964337478709766031612874709081272879942637540225677092104343647488409662665063848065476963489722285099844242825736466788867156706205318149588892956719493047872208318817941572668831948182552570418413100128251433774826425606628808388895560087654014690747935453821365437522033429140308277361728208843306323955533212878052339537673367238438975192894454531500855006353907473855784577576524414670509811990688617987513705707798621765265423923523329831755736238468052920071321819008605672434785990521612170918246247918454016673933677108936736993223075947194539366348829853803191836783432177810797815170672949524296393830265242694278271345986556611051103590744659997604749596471252907970841609460337543433409250161512938629462970630143902783043388102760831381515457908286841601744468361776243690512769970959600073390056267254082255395917762584207714967723049638836528246656709189259085600978106787359588142729410649936101544649573789587580263868937899095156093513461647903523560518584818468399254475717336508179359979280559984324849030347970651714527495860128927465098880760822174096772812555668789296971386359006913904593095289866042925676106911741180497654777679099467971824294668242463757810883126249234414226002542577778652091305137777174233123273787419543375190950894090045093061039614842233198081586920227800848379441107980974070901755162825364880362426718730782897173794190299763455713741369719816166662299603300524192141208635233914186267677770160989248527933884768771739114450747848360039992598486299648853949541233167536625469796450858920807037841077883922043548911572055783057682805435820698329612733320581529517836782599395486512919204819780481553480380307505427834492212781398282105033412432612122692491037417120521260838085945913427743085438743024773152152656902872684651135527761464233856335681564838870148015662339825927100759498120660002495650152529019773201568897365384008185733821102192664563496799566013432880400215895417684616058431796545313667205311683776310211616401071508523162330156000336338318367955150696432924997703107480839937499050641895775047675135333627955822266991104175504903458621209087762265411308785721871325010559013968268958303298373573836390746739796933362215554134874512490974241561255483657643503720372334793130633261298401267398167729075391464949540777066494926461343477925742984891239726845623550317287875850179214909288659945699998696603249053916162431947684342907777045914146612185117812253901022224263101302954193250512139785937537568414919034777062367202772786175522017435233677325928029107017491787820802072966047996180196996257454002655478223887755474401239318351507570527332750642022268792512674222203730481847693843281937811396848775499351266296398037211600132849328588480752645683618932078338470910278060952027334270938182367328936098909170965595134249368071668265161778985561618860836995512949637789589157004380774950318953605422136605274014899334630844607547616028682692389088194311080000238166464251659450158228214737537792165759323022783922670266888772397849955415447548160998995714116335536741043780013086022240846935946342127306693636244347211977369273712231470245773471422467400451751238358515588575769784856379866964508222042486421915839525352947515252820902115843493390996300495310772091330243626013200001352635888179650012034666420641435551537051090433012072388813948883149843673360992517864431360613843819318523705133192854170038913532601168000697228236474623319657803568144267185865663847454613512000992705496692751157845489255539958016770131243459372345607981703022853064235376966100484000344508285155885351917788030255811892369045704308709161794405813131280780166756349633621145975778525806922414375386613563898741208499975126025422733636263746800619710778803558844703413680837963635257958573327028721260125611889473081409637014876667947490457498475596036496660105357294356073730196498894993506495938233675137649261461456290720268944413159341244423566309958703671047456524315683090112044850121916253440866804110832770697453583139568991546111583137027852680207015555647871369458067916888509824531184872927447589685058927795258633889392816350156910174631929239311434869918801250236408866283663665616954152239304005857361007551616804203267612293519933170604237646014156338851976311345883787065004474552263351386496727155910847015792606014834916585339117922347581616059786969798700482137057785079439324051226358818627103201248456702238178709201168353548417115833628063469651553557537634776662618106522088581967730605111920412259594686345136215480317766805675757449237580602023675136433341425439847067866472800792072485034716609720149993627503251042218074610096966677196029930235820096996551826393802388774330969505526552547898033478711199526834801574921251713505754761835477962225980690568625251350147226099688187593484419603790326770329292817157217237000980475980460695127825466712027720506672171123034920350132244897819847900402209990222544144101897240826481550978629629321038269765445166765250626238343610612469507350004011881144884069946540398063115990999090002825977125894197529479066777302579038932282476898546095594384404454183864825044786659394670468186259530714937729869177578604540200409382446914671652314378391834744123762334318875225039401330747325005340037561061805199461307039459368449914596835045817548983168978540592600873998729355304739926262693566457517842212557025297319015035023534783047517200608931487881284261869430242295737570604079567145859880408501623868129792142524121142636863687984513984742609108107526134131495366912063513221150420676391958609850047739868106735895983652634328830020168613480202091511632255340538605936210850751869323837963971766772481282505136947534358340716338671429222047529437068591882554040121865389581803932451933591974081508250447586399315788397226261532897688546532700265547781990534068930411986179397353555526890461198641228230757477659204269291290374614688496712947585477635934609125208071676190362220637677316482270817593348487561876036655511075289259135078263222114293023585270332992433357551270694677853428583803883439126704702257748391003162079191002900250890938729724078196137893649044953561720431463732222203515811129770580617887082202714575577387924282323623906974701855333939433284145806083316667075839912045601148958619696750859835250183259082138098703786219154157508930046533931833167118649691618634825915556046906126884131099338784726695907231069345688399361981977428022947679017982473133229830245906191583866602062714363039675838732299664725725410480516914679195694628610765360465434075161140105755177541256996121280959207855199443895341094232110273081711906976668697144312482515685357410987047318356148029854558075257527463531669686120256355262237241619128033314185860814759567360693824404471176730290961555374832562502144163513363568786649209919909197038832073999502110758569282305907775762028445832633488844002068594331222010408837421683545849044681342461987429524229773680878321588779381126216058307106621452609622074015611224539128882981695760591133254895366360685239531601305665448609284829341327128965163778316265988709641951522935939442594673680085747445854569632524044638674939558659978578908999965826835177180567503792527011706490457486727206039345994224078204690272525628157653940234845850405146650146897118086429988785172512587125847724344483088152145120341593879829012716930907607085908045994300000894797225548919234778662081634322717966349515270635955860635783143948666229663539335553981898504016044114128065820440483802833775055205770447068213020470178695097129250977716307693770416130591616854627460117643274622002646882128025659940219291766070731069856906396477626093427033316256044399167269202127792737371921028073268659830410598785062392053341545522842321002076237635588170039045256847160725285096088948050325036524767321453491269399206949124476498727171658414591655237054534018439571657503910755003900171194170782603712990295639117045064426026310919013411017101187198488323430101333936185319402072199951134656584973442484762823159020052896258784468032808902786773982042112216467921663409709827022817780031663925750074512369176433638314759017969409444091240704227144121179700887338151033552746579335413077514227547340668126631406799255726564232582935330672094203654790781670571637084036531851653632656421750573620827893969813117630611056395897456436649373627453213608717397612301641209901906961549789800870560893454523982397981533379693356180102841628933862554201353443863499178643761777206852465585453350264705534850251966764754536005376568214043060479656586676558357428251799529579076817497302655143659272440231156190610347601990699555335165454870816159815775947025407579169539652475914571391358426741355632938147612789481833507602317498104808109974665792099183881337979281213331275023254577650507799211448567623055727502809707468229034857307822984063338006998544539392766528306615493434719704094000188149884303935471334469990684379032619218504487630196597314087351207533277865610402835629819963687523209676331174305634431736777034827929349312462635338740271199604470707904030527702533467151480897056660673466233560378552188718737495368154849433599979933312502122565414660829255485427045669158415406253543884115563947330204013700685233512880469936782961596298327583511752385351747109954035605474809841669919521224226036663534878272567612823468661205827203993825795142027032875137052584702540917150230776295405565614824486275190986922901080855898907127137697752547066633966379965574344760054688316553080959020501733279148944142427657732304772066864203001334231966918583126505311621016400141118913570454071680678585020264280045671844311525557934314674313181209142382541293745185820603693238313187038025948179285089522595311265875214821829223924913735725276993027980648642319055193841154782252723914956915744496777654117790153326432025012333933896510582177781220940783094053502528674934312091629420859068758460216056711324389117494072084309875730272030960140238548448443757334607465062013061455710709971026751829336801764661850931145523914493407791866871318219752364678168025680745960470062055912773687884337583302790593351542703806921155778859767620548745099999684262129076424257406147888278093137886069228084557028713563316081808554521211167441251085166728023819262601590914212720867382999020731029068390374600058915558084202265545116432899972838350976161955450065151464455110579745349304628659900758370319491535077980175590012756923419479719098502446711271850034788534607353996733083875046865713121101989119900837403746871283983263169020144265345292051826233702812645702542762000679239730239693855020778646638932210942878721005933926982244084145353478521095085090775590169275005578764716696946371048890775875557036057239764645406471025700811303488509899085036919266765405652342972262742449117101704767631367252674849375882833656400913423090805374181217973907334081986609574012151123865487733850303344707891332793022874413805669555368049193201282714697170451905612954341332045641152378791808887176784664606532356858525355535818900524472129894503254155340551330773025045195226458271148239342725720364546707691172739232940024912620128446029870956223474298386826677671802580749932866429523365650892843100964362253254045662986324082143813167447506443951417266870834315021948798016065504334704222464726269024841749167560646654067685627104866349152535292956424934491110986877098370570415151838322341220718298476610295743201276280058234759715816034883491520232382487534487222124585202997221972661808406896183391960254408332951575142435788259075076392595260144828754678116376308782650614911570707191955581611886763081937573043280584597593177946375773096942533742869285766113144105637117463012780462091186994202003406424631543176996259581047855073929930380091457803257276636510286919419171664470828010869733680969217880235490223734931230298425930618998431457466451868244227413974464139928092152463263125954551280439546749943458381880892090316008932596496805320782164067303243202685820362716935983828928132933777367538216781064136110960807899090079885016700973207681138395315228572974757002681661447153372253778223428681100209515924778771983358425308006083018059084190708745529360924746637715370926103029793627894498413594972745122738992708141067533686975005829353021691718937389822784378081874072273717854207629180430060771718722543710532786641907310321327317525455553505874414037130322130277040599746553774475802492050518245675621681561721998514831849947255487611836837155486980287943407831102564870835851854696572095004583219740344084157168621808003630782319390733010426813261641658283907599183307491175729717280526721499430296607135335151389751967137263379959342280835171165545162751269228345110971358046747678457925355748203071514412875539547378482037209383355447272492429150272992862972721673034468845275081793652587965605833581699596435592927115709330303080344731397496113115757710622323423476868912975189749516647957212151745756166928625881092223372888127917234852692181056765897109119071481366007773922958234539184820374662373386705616911354174510329971107912727293928715451893795230982670282644465564350041039324448050575992473749770080603314861250283017131525808167798485267051678268474485989499869741936162774530961623515134532821035838548528487299107061237082824281250077141646177741078639551189439124052899525175826412177813693240619364431245471876946801226219493512723095763251968798620590546096205999729245066353610453886595278529022918798852320257828746073766221467468492312064966164883777514422699105638438335796456444920547051392540249249722230339389364294876573787722704067610595920134536887042095707650744893301571810443924030935330754975648300370177982103029176362225994889566822636390554276298876674038286192856292277166126894837053421797858035900770706064097240041144419259634298581945163342885153570932063259801541365423350508330773072050075120698787217242292748638563175748269183830293802306228832813105217254357893440914109220242164322706040202951693308908001100404453046826680536033292597000309020129529626799556170522022584989864934312205249718132872507011826264415957838731629934452592544660407753205228580157848573520544400354690827698352148246991870354310071608984228836431921436634677231033148947504129347654941613798784701833343629114900540579754526462302601711867921888888248849684364796377774148950561468933456217049233170318239520604876281979669320686569567154845557912734575823499414109350293323730447398118292264891900698986121462677326339596602094135930784838121999535299179327170497479097106851913821162647517999546854340769709702734506186493150285354710459529258124928340836520554412224231373547755165047973354480508667896855894147711336215397075395157924265657231920963933959104139117579660379801251462293236905716131249451781618132807941819467901271641553848888229142376798572826365256903039685992457743527011274076727821131566334108341806659403312158472188767169976821802732772543269311057549162817286540119418712420290982856842051302717637531413638496237917591090698721404688014418025190041975259684516771054009165483640716074823524958304221137183443348056244959324211785096147810030377258747949425195652763820135328920529222902927772209431646951862113953774034131086555506845935462665140089769859849830589926465411476630189068541618903414531826914055918035656508034651410258531485775084799338638147152899613807643460042445402268585383372699278853113131923495112889244407377896218973894293431794292283015273730766343901418429646617599526580731242524522721536756765238581085767783474878575386556009632628831158128206095509224159236247696548661978515721464838500547539230940129140663683419649944932202127850263040642482019700641812236871422161892340738571820867375279677116185676864736626524192154134850585095599634335394323784953412126349648201655039792800261957348764223350325249018312949358281308790767473850375493707453938454897316643062397067885763674050271299269111316340622448166349893964212692261642726076711682254360484643480617038258271601580578139776444472076571824800898742525632607965667898712110638918516888346880915368734743965799098132981188295457540572055088808775409866451050763823293382496229224144591702470989312625725423006313207480668514738337521381037495338320175205776810424184576115794022260718048949394004276104972919009035868834098852835356096692328505780638645157011915710978153980598644764337825305447884901344775869987125242517304629496972946700369019982545092767648533635117601206438954283780649303219026487751299052235157967031330146748966429394589098937934118178730424576950995744634453792551377774872070428741127797583316450430761046772116335094172667195691117799520032918776443919284991514119089926625402467936695692185194157654229883491653274522671347456578810644778889302975650750674368170526280210466516853822527622295067792937504399577784857500887265913901482953655228172818568420576776473470635516825211340868669213579983551418428720005853931157411663016014400629642539695849759185854061137322618957863235764361374487876713141189319278396973485321465229855962998562879390458078327249433242689147570235549611014585649610433308360379843719127994092471300648408149784924784619376728899272684859740600687693015581136768712056638045597311191367728283675266922621182650919152096720045941096984052389323449225797690746286042741945831299844775250351486165865055515795348229826571693165614845204892278394125902085053403654625886297297419244814704359572240678684252328747199444341620519254683183499211937274545539658569631007721039580180493162995251149285825845499465665689790473443049138532377302045584881577333935131749883617481718126422577724304010358303840535212516598649382066106344994962574982238966477094953209591573711411313502753137933346991720035634934596902115251295830637823027512882569204570726001641781074950610810594178426863350909575577021521605385201793654119872188968243048548306491652951103039895464779679004824686566809379065686670995557557407402337924089717396553050855195792578691564219024697369309841188774971144190210589429808357491539867872954263463140245840461823078225569865489684960060672700650845391684666471677469471678357152151506253587267345261615976350579040457553492252032321938249908125788925672926733269494488802892572570117904313558898793131005414348744979283989146364952634066255827625412628072776059395601650056638461366310313702542619050503295528953602011659598906151101397459261375041598456457055945013466138602069154523957018517988462224645135345069470477634796108942985995375993786304078749286387267222822989045206407220201826850596947943293125418321176861155102012527487905865652415672997978498378047867904823210580781399153079080845410636423075771388042528710004870978688673078969151338734127182237971430699130768581183166530414739160634486032995969605182121814053072056898673401574877824209489120213316839561126864678297054834479319994329915735927185071244007201996375496017509893426108689375707735718756626310622287776444236008851755129436854584717390326800379833703710380442365280160986384297340808539566718038252506702139292092540935277139783599494983072575205756783268974958173243399722322460723479210323532461854982032023831911562946164780655391715657144266591428776055115667940281808731076784378218843269420687990960303831930818374745528328037794901824038983843059790550590765444395164535468189167921707399422884225048083754453644467914209470201289292353540475221413573500425108239448934445891644669213984479334387750879755219993493047392165857404049073852929664633122314830057277757275716781408084456796858801765476541264502955329624798169622251119964032885921544117486524795700901842204225471034942682352041526646076037480575516979388181669441282948387926619314752196353795933258459024966681396889886012181295060443772407933821384491039277897678383114805153771233465857070486911893243143032254490775857091232061099602601607134518669926759430397748037512679284196365566338132564388313414476869893990048318168439957753553989517358678103384749704117536489879604692804536988990965470200617009495392725292689322282296829179505036258443394710620851419552685020959159929468279840474995453180185817635406587015250076063829343320852648057502452467477491593694863202095656105229930365849587151423498078879292940616477378047604695777399836355266510886742387102923713684560877690013624444326176817046144587572022257418835115852404417892931558487944613296006246031140119019555859579650243077673535370802674763068282374913717033835313311090323421302534336912658020904214026112438128432807930569335211655969864130972542405902998592425862423685001710344835784940515672503788508780106258706382385354410440838380019114023223944420674299514370608769113623997164349140057133769357705451216754950603411484033492213538988276910478475447596658021603814259906216604336851834809454706802573777356373902621185264894530878989054284609536723139143234601701924511961408832952853393665187444578016944005199498808471010616887704723851242798936711140733674811359321134335385640690560992003029842659327847387300934526294812904990793944928489205013415416112853364679595523247009933361484493468952903082281954155779692755830386754559410577691503854829625061300695752598310010830967242404274684742412808221827967579089944885715555537209657271716155363603081844285494891595423865995099733552761196701217519746195874585588717666481811193826476913443830302961531288262530240649629830347349463658164452346063578664559503054309078491558355827528082401634910065447748436843801968121254093445651544862922678955217030730671124548164404937827245747379126687085045725380544053749195985320490014663388002317942700823501809251340285899312933754253531438576186141531237436419770089167793259517082063580578018555402226949128725576623328389253948272146658791883568294903688972500070785654518582573643595320818865181197797588605348356070648181534319663371261856398209251487247297771006965493548283611961786729304636839995401123788003946954805457658087136467251029287692071808607755163885746665470427307329942876700631445913240898361490991835885438191131823155430413798545705195224536574880142216230436738787825415936079232933644479612874228058487384321020381276602846332849902679073499761213276887404137601613148744857550688585892386450457126850474881708514468189532730314860341104132568346999676638479827257108656437371937254707626461499181532766594248253810850123237338145059374676722363882981821259684044282012688279656451659292011473085131038887151399477583286264531885351795956894145426713751519047271163802512241633814502979243494763379603745072885841941364718616020461778066459237382986923432965996501879158974808091424259246693499938439680688615369358921749351858791654549760756285302372231896243663728272161597266565492218907967929720495142842513598180030779012306432672231937901241755506003542525830139876254992783833898513288486499795782952614914621164447168955329611099088578716850278729296907205257884201685933202628085028102474590459892721042072460253615411459662070891400825187282015578818705978366069121144494949496006289352961168856447112912327613689107226690928324801712019619375621705096147014735461579993858810797472803235767843934733796059138530077951567845101677431622575488416616082473584087057957688434673373669143398098710316073055612813475470148080488954017927851847437837549201743085081008722176558748128353611578723184675612372732253829674269136146283661736350511310252858845540342023494343800880607316216451633009960818926788388894252827102110760294767615298159292136495804887652455621587674461540960184831102006507811335523003744834771329245415480808246766628325258499288379166763401313249853757974322944467851446419756573503481528194300730163714192957533580091675433731680686558625170213775995360020305593156571825486783588110684397867093572563607813685246047874246987034150325216538681037475434681469234809450875976946026805520744465105480010917692706975893530079935712832904851876795674437941230264770692497740424090983575591447257451755496118948249351412466680617523121444390703882194306868117341344177929383180659352090709978766508484212590477883225351876506998647905523125004418587164755604398697376627022819676147672530333631218153504298234006132755994357516013298803312727197976154620488316558973890776201597773214122057760903202891048162879947088674670096041512552903481833333920255390038311962592482723613586159453156243527678023893463531337123208967588128632005964962901545743107482428350486727597103368954459382235815292530213362764660743378420002030699966906048990546017530919052446509477802720463400018314648125605589161444845864732531418451422291956561117532658996733053695853691119937412149142535727641803222280029578337887667297239186769553439846270721120120689828075518360057766849979161985860917029006409698767716783517398113945801250335571448074731658080901076703064689714978997937096099419874601045513717876328022107348128868060984821462305735645620519098759834776740330040843104749005091296459214933003751851417783280174025479580357235257838921040839344855202134164015844348667739069819790402826760256199945579509063313707551111443529757175149706304977249551632823230941958993687834224432137428551613416847904255514233692925352858857088561447095818621173772359928115117592406430371133468678669543161460525364585241709053640480358270191590384366759266212450424399742312600730558840001392264611694507161961604242547936652131291491320130182260889965134053686764625141761287016142102028833560881198002654927406263622594551432183575743584025362896322092450186730361820090779317600006022224183681239398928598527019239989886280648016251483067752097788678969605417673739380175364885891630661172251245388248970179126224484070236822908994721147142669073823924969179106387791150265508886235832983714602016032213787058668729567654489090628255470234765906787336077768815680364543857810418655505816756589735260853372315869820822854209896127637130615016623949535440802722607821220897671232672194545271728036581639368133469807513535742304480023999369404669829090499415200065639079474745953050460822154087105063360799440561761955763497296845734135435575083558260708247855699877306106015855967099140479172634883860269014616216206610589871937403073405968698390545347920204650746859169648291145640273782658193968242400051196278213913143447257385137465841889876307245806544803191677741363480196856245712201840942923882505105025174648520616835947221643388917438681038712576418432398959617901340452913193951497094822404411081380377907111566917320121836870046113916233317973764130571098828926637266366026640386258534718863608614686352610320432598920762308035834521029264227357597554704365953482193750584338374824522063855547922091282701712461695336386357091981287830233937641957925087134633210227822235720643240736717163933339550484527909591597288999204061835833687206647723487893279432800235615292126703276801209650299691590576551656449368892379207417723440570140959890823857098622690314643334133227079411803972209856902710665241741303290236237178699624025645095952714055848425748588589031142779046570973258346558921845189379581354344360446682648321911568655888791723492752031274661187472748376452450278264538098012417916101509883296136237535223170910012697475559878092810630533161981481661590885091521593262452058020550155768565118956551248691119063117132547310643904648534309998217627902119107599383800970057422669365969080865135389318420215592999491184056207059253245228290676435853404864582880781558189577403894985720398123385961565812732954912544758547892478097496036019853929734507375234198797713042110872458528122907768570920258868636659404484925617318340920038398636846682337875933166227765994241848063696350488661245746828911911323306035813322485779842466957303470427207829297934389560490888604319739525412018726234502791665256732702509119264731205334393032481043926749652359053830281560687642845755065137297550693219554158262665015473546631480199048030085702968439390117837948739267476014739469513941304399465499052823501277253724046800472819591310169232720040189484262024936847373384301417959044115769588186253030522143374470420847663097615202451333210260481592610003258012832297975155519705726132392664936037336993407989208096123189055479580286691904667152367476964981160006587653682341393963543817974657516315212784876438634038427815855244910482545235932026266712754667914544342927458976670501467572872614686913380561008494156316869317115901924270291159384750070303544321363992131580694531663067823538855806844459220058866926128117912861960122032841611858645663958236253378386979672503770360294155594131981025350476233518752594002359605045731784647618557425630031547213448114129515141876381161678100915657040691793455279863194458112311836914780017374979668287111272414806335894157816726151561327667811437125317077744611209061397966871111183798804858934210839876746371157846627290648216399777879917704660021692259743595194009875244442029275994789555157266870350858501222783477071982301808210206363227497820790761612967902974669887745900721663661672616690346164822282447616385904243062590243242169489687123545788275561759591928299667462729218781312283315261053633277616904684769082948611080807629350284844306041955522060032651174977624325134082643683113328586306478110545659429593679403702106822194255821146918716432457978118806754125762101226801517698272675129625857766719728162866456508346307769074781173991335826959944723665820902319307846274907057089879916733572315672434688464079967453444013528746162546404716528050800063063429094691390167354647405625626286433432887526024951535976946158358031324230868357826383554557062339332068781426951032584494147720782952750445344589943102598542891642522759559128616422722109589456613744058144059978942464916860369630185274981801699557001170547575263149969986660318620422681726750915608681190423921875103486505419321959356200975301522480204148461298533915365588377896592645939835288234078896191514115442687796807244917945164039138898971443457108724897569842335115530272545402903241731754860424941750298650392392212026190431234674502283910613146893645143617533030877306893356501845937994564466644729556638067408221652804777351420942755053247812010107193207296966078455606245516009443680842662803341411574908041136762719781478538056558805617711408836541217562060541264789598747969463441804421108051377816196537616970137314322890932697248368819029267393953823147174760283319426597598200919322637254098030780105515512811853925187058468580844597027691929364013879553351945313375236929233625064375345441942939831356404416068626495108640163782708856584012521100682840860267714369989341726343115192635722391468339227413561436428765060381255271835693019249567928816182158784969016697623050953332586530795292834712566589760627628167234436229345145169891331959088479668661954320272293799226883158091209497649439557150468095453359721519654428290784896206548688007764982150340585384990645494765441765607338378076357462260709517146835665618854904634472064880993647558002923843660858006533565273982126648749502396672041075862532572532593773402133233777663352167354535810547083761739411061338101511204322374696478617389701519830677962949182915316326925625373524619820218045830582645311308922267701216348817034778719510307766082625012179985329249557082542020925495340037590635165928962297058640639725022829598617716538813520351915990649618012514137171393262290399931604645964291299335765361164345825425280006744857143079547087362280689992091583514140692405628536408169150905964817636100756861027217175201395011029503798268667908682170842672749901490289845628422763536888287549438209744148597233780265309139463496774162758027486350065237914824210698976695611367002177035830049064207366918174938359382638855731631058055267354087800769202908853465182755200163689919450992788363093581230973243159364451941750116593160480574841560455613356607188476684936544021483367014905857242434972149535120505626246535491569534378848067133409830493686221610906763953326623449419941134455941232748409214895408865480729692250904234918953309375112608173484069002824210850480139818438885439215614067035027026229921411232340567538474086127957559425762541264840126047125484673248328729763424696573248525223889362450381902228616202097419612983938037273803469259682725923269893989515476454004690027979146022284166122368663680360133466054543554271221944951468104265345818195051306107561145911124657300116519829979055402297317433453240997122297263674202731977722361940979721793866478822886640679612031524961051688898085207368324620290835483285083048397453264614878628528084380888065090639388162360578938191571656489652809442969781158461831036437671230597246332225477077936750643184971401069863293314470758015978341577851337905167154932727802494078318006807093210904635434335298917059343598762616171910920458216769599185108791194072029166708780714777820515695060586743829136753313663140771660346425379390147747124959907280512317422819371221715020971635311039014081231554079642989675256459198446833013989283811760092940908623814514368201255191406513550921087661033308683459862577626933363812558424805729378353297464611271545841704626323377549608341807611875941230207636204700847066294217603981975310416902629236474206610574837244132844559449447337497455202897699884321235040573183719391606455905687385015625838033585613430944286200561430655260757757326422097222999190506602367776812384908457814161328077311145251591725914385438802070184913622065830155208387848973220697026976576225060553142978304309195612521515027522530124734721767105055495903548961277871480407883898795115037245960758531683033592001707692834043465232523603492637779226140695309869150923772021786259747488866852377515939089958690875831335544368127783067807357382756818347807847604223477146760412145315538404259504604667092566597281048906145102754884308920047105495138422680639454088107632120387025172041738309601667430537070930346110497337623662870620931551690260626647489512565246241969455937174320440308446331658111471375359900813642900792992973487675184892538019582017589590736523679413268782993762498916008370992392041490679299345995343037358465384829580385483974192451062789277259136536462899169471398529095553290555452465438945668669639747835154117345929337536482566355144328693890748914957243370387329576664551863024525824818242409432109458031986845601885175610421922683574702229851917086486966435259309827961130684154096691351389841171534997329219908567236478116403022271816888755788464061612328173891441587261811927256435281746504692101264724808427559029848376563410301143058002068198501088141210131864634924504993883919634912124263376155438499598183659694846874433070332498140239005867828611491822185223811981390009952791641430027679722298785005388045286174087834203546139941515882307293873919921616926433843965866638208226847439643033523177372110392890092139770893352811977240135167374627568854586196782948800943932302443578407612026227615900209155703569135109454580649632701017130873072944664242042305868524995711898378426878455129529702419875608818217727562886531296467732461567252376945340722328057452389308883603963941481562656297419422637688603919838899271942484342749662487112563618970465049822015769354496391755267010158651609166782193710717688329159400732298778334317224582993783515298609053543078718498141901251245415488904882755256919037726933580133720751345586988755784441999425215952185418155003538888267831292838402608391458360483262459232588958207411491931343045635153534112907769657721992579887317852310963406537949590574940537497529885591983174245822482611076503492773868502001934543470569847173416369140049399262367168317601581000807874324365174871972793554389261960494872758437531113509107383478090600495759168262970407364474046044830999127768914684370245459043896014927887767456503688816349935190364463427594992684672893530005986808354547705221042808982460252616797475169140392961094352143431088475113503503069157309084177175724136444859804620648343861876577288546886941688317324698193193803422817386010090120043790638358760950319700131799067660318152632338191679513106587291801040875298558889770110154099067605946975761642663336197328057510098525682497201753043008601122198041052956668158445030762012833692081860518836433538615134702958603557921153393820222675309623856749517678071524952859013395546785774853454858149097079058121523333801219105257533292882299831014316480199521494660144209436033268189019791699723684525258176289093807984989425685823304691388866950548732807229649434264542486695469739625463875039326871957868039735793454892523496658840649757063715574293898737587902173926153716706604153964586554181026119375399309571213447559944402627265643211299296499834955753148027760790619971278085647049216816576393131503684622868113012746439261186174222272102661014703001559478582106952333751874215315932362187099559070367556983560068697206732059959525328863204602653724607879392892439302205545109482982052720696427390057816866711923169223389225563886421830535558558869605267492457589646502317051236648981301840821757265883302600977551205617663480755470718368934436737702436266428873210768011693436136482086061182232180006419252637278118991976878812599008351832050965767756170491093673497662257890032206320836482231316555473412047867995197332459178496551616069439531237695726970401186250552556637607058459631689178339691162963471750157898235233398710370858412597923989534326088969842159939512014260837360990051722744565009144245429378690132626737658425106981439636701714878722003264021357932446709222149227207237416570485908827072887362339886763696995286454097061118651154264392049274285905116453983113954083114956595126667296906688225439224946880960462414773713320820588027572886476687508926628296678653174004319690521752312638637435631516796717081290406110412960047397400138837628809951765755831029311926879621357586203911440818762957008883726500952305364480550575185619867916040823677492728737139506455639761330027920520335288725104635849534761108177218398419324959660932324097319586254196723075777218533099659107282521426324028392705590979299246700741017935734347433161316023457160437051266208199114979335952625048147234181730544963331822885721578425613339429199544262872524344396300984647364799450804304167387648022487038051757213499811291617213443379801877446180135593615253095872900542773232551280755095663609826496407388288877607731399139993901459575836202713716259231117227494935463190701055801155846968506474346147775716735650384015947767287460788690925068047450459403459550160817921808002418237318225408654499561047258273355967901220085138898140794740775119742934533920948572535846559949184519783359631276874591693381895724880410973870622082859526495908325728257988249100962926928319361919474995522557019034214393007335137567016658671366853389082632444844122939081515143410556208988820216553742521015391504904850710987570768960781447463295697611737949187072381174539729574032457150160048134744918773201820152291071412820634264262224093525793912654277124525425208425344047929965029780574762221830913207326738947728856563976816227208062817176969653898121063128007261809302630821025017138511388186831052469735529732037588502386549693722603509460866803666078609044131426630339114662689281479526077091309115357499142902600686236743005302855500424536074995583205604360571146108323337740817802579011206420784605007056094982980130928543596679764789784835357196554327783134177004267759814510980632863610527887204996817123754675319251947473393185291637863968933569352104332914491648186685203131322607419238408396929955282927924760951880756499503293771280900729399554973143989871208817910030291930421625303133165360085532298034306535066987331870740673433780473992350542106641635256247216299911217084982219360802136561554973092451258262752210672153957435654806620801490668455337789222865459985583291577458749440225314969150227766962172653168139405252336867637615578981243088075436062174964166736407314401035406348756837824000869211879219472682555678258996214425543993503472955036326811453103843012458385129806211148157504979808252210817816853226411086985257385016727479599642812268029344549616558092642548792030556399982350453480998400531330915946801749420397707885295838992689706944820715507870027179951234845255295480406417695278266675634740824689465288640605118615006349193518705517746260779716393829552336214881946040638035371860469026835016041569767387767315446502364434049296326579187881852085621240766934294190936806052149753356724402582670392014657572448186979522250956798471220085666983831997588840628748777598731755079801588864753701622709001762721962867022089363679935642921406294590607768248764471245651649141749159241429918931639903321046651549178031803988709268124764572711298025655317479943096808278324008649570199220487056662595097974242006576505007287646982433513096452156641276693066835927916285288765880378435928190072367514964795916067602453909126391417435584013650235933839289615570692927259921105990700401579934117710841563120593610694081619802926080628204566550468711153486671051336463123082341431657415738736349835065559177279764775669976177413449093252955568833903485809350597416427484367195929150540769489267760715856845646495096029478145521597555783724041906637785990005707520574411221224603131040726975512125233547517507115206769405018796323439073835210688125351297445918036119201730623990890479301689387997309113608819793163493057990090252662609712052613730703352191136410536831000947093767919524166173075644050968694571742026479539381767028544755464607505115959046002258115717358141232724643691676827043819150854886710605947654259987434885165595952011835714558730367901973295005380479780306757111813758338497689783103976861046985228590410774878432246813419524777947377900347256355257732180316601063979728528742645411590234186681151016009564848661681664067749389598932558723447274216143706858489665934182315951529586739890160366208750966597334595828447967540199301021667832449443699553852407488945947460917733155860409363826883844031292947267287006032401590150895433502443065030941702131333009675799539929901797443123346152646510252991148464264480609008481061012697145069174282784663312291728137656098685383917821666030979466327389822137286769951999220672811264471931315492959457688273222830092829843431931446727756552442521845458259078300583158291966704777019251854930813225544263353952467563175030487528260029631421999740255953209256673770487429925201091410817881487443250421511899567885744677551883059141718469129930115784428891418312837200519519809090927824669935317217859306149036850195120010624818578127847395435955857157300058961495850171312390512866982857787365208454274508786606166774380352061093449048367300769626310368398830130189693787980489134169478752505297161453751831960666832834354026265821439362232353876545542231525224852137742610216911298773030131755652819046366610037077373768726168937790748677637473370227258990959476019150275167942546340487154897601054525264892419729288712597542319274652106879030635834407750389726866107233893742065732069792874689096045872710628558564776996784145358964639104870391983675790817025733796366703600693651666873283738701169119231819442411787945706333976119331980050672244322439206248751015577661355814819597691864733527212432889393408415158592036115234388701952211934266289534087752665166048877748413021938413802117998139107640907688894877157089713942507290378761711767825961458879123218157241602715449645371399305234556121862759338327095846929247714172171970376073791071747232197762959986261961046756044381984980101983029195510751011126309597970799889762616234164135566497347906081206140910050245497799020726476026973572881132366505228253692847326969708705188863832507579525701136288015222552261070914908319478795369881151618514348279976470123570356102668145117897714002063914573406024213561074228633732735063228547652881647539247520301139855679434205020669728971710966087651110720713045985204694646753131276307680037869137093993505712727094400708048950130445014334990929304390473943105461609984752582447250742165181472407714442995684487089780102386961685169133709852203482738497595387341491137910947871935846657517120734247807307224561840459203602501484655744165698446171604262106108601372050972599657240600146800002205770538709956247214651183701162340827806225076290921351270649026871387076107516151964157770535612675720547789744588387631000882767317664403102689058186600733903432873589293703608621933358786049529009769402803144748384090264872078869333277556388412573396333218540484689308651202598559412071881760706648711703274627773772348608919604144252988939008792995990605576055947816326716673540941756159167565686557091973879528062577008945769525543356642173475893523125193372256517753242521859453729398838357953698280102704289926140407002274271644564111869898702522733829436547523101584340489990386605017657997752859203979805653190668417484844038169958166955832411385830175326859217339770703315539120339636534200073217083502237128791749739816036944732861434023149209969779379036030118738841206633448057583279238130312649978929820423994302982816278176630797375506825209437528906215731107143929739896835345806669853260358205382860499000961113235837531643482949750180822056713593253398443350112748482697199876420649740508266418566055506649846908411647297030211377985368315466622266890476576651853132736306228402873504736370347096936497928752965209302293012013192771380863169260062479890597313071051429158299211102408981945046481395856299152923953550777297326599635165349523506520952220307957379644339786197408281028478340574578152220586092822250108043239061750597505149712944388888192579885537272761943313962489669688617897800549071617933313621196904109703876916450315793101447665745250437021813181476786140789271976995322242300743507670648011797696783277224198779710158244913591539300188531720398120783621932678409387220247750565178004641594951570708291433755695762559905768146654500265240956399393958864073442922636947095544398926892017309831709596112506306597517589181141026150222570300082124117705440793807917270798792950940633682694562905899173751328119799527948748874407902144174420764944346429531754299329096294150969677880266808390673868219806090512296495302236230646928048411452934086969285739660123077016891502205273922469093099726051152755470120138339468366660294602555834541405841159173941175680339240511880378286517721650438643463939697993414151823573112564524035559457288034554620849634001987908069115511782528552786359560895317068693438808133771064220713092394351098889406267806604976873980084967443919738499024314639873622355151027262480800271356936021119504638255579975295733329526628484899005040985150287366812101630676397431918391550109160926216071783070259136010451118337754685012541200228664776711302891631228790220701386286812044674599625572897967176306826308349142317072828676094278045635689106399067996089059296425574609156019815997268396744980048444998257300925347654584737369077834353249717229291062558592022403655238372988781651157666408514793640832073347950840917335123195522171261681080453144850087242180394549637335602142516645790209530188937390913229169078656621604008961891556370194411000717684359289662531354298417835461063425979500820585450204901844946732455930786853011177681572257852844934499789858964120059720970773933123811182773691261811642405337606483452855209806726855517998971740407569310016307827840352267606293749752835941514884275014093237558839366660776607311870682958497253345081905187587271047078102813643246871893984140081779142861358513727357123637894773768990679211331978505486991997119369670149337643337406002754545623829026750408993853372440675324046704992574136026781719877823256900964326212208894960935572898172825419320590446588598839196303938248853571926535333075325943908787161058823694202565006641377864105133683773357532056595267443298206264729677039634246632536684659726365616398052250712408652998859438857228855838662191989882804464559066933574610240100228126892062201174015934662198116464059736504409887951828870440449484150564621854913979660610244486807253587187110883066196871752285791088296216412192520509575688260377486198316872633150060837481601901597963086307072304201156293250646846689417430717596858698302212428487720611180447445401184685192030861443138915285918657972912059345506150817692549646263451187276555830359259695786474865553268333415380333048151984248099790610562581158134457071425680467386480891444739992287200509479391810386813387130682499316213445395423920431797251649192297309356357724781647213911317605325743329085473028636971689581573038541511556590170087720706712541235241094936567683916725521810913351025823208270591852545239714842490247465281873735735831251987647300875194893128180595939318268223491220945922631192055331541592320982714749684614534110991150518250070131443222250576032881438310431449364273573065469375316464319268042022988451208756151653889711630256521406748385220763193172784637148325727401101522865808007882414146759974382346039847586063440668670965238432277086540851835719210315548076016523168199632340936624027153484314262252079839294336596008589634564262893232100503088762793061686921258750891183388029953357208581428253889004744089546554782523162260195871458435451380804934199534665480304773901097992162485773204771703510462312289234961718692302053555711978591007811189359018109353294721187914392380955087485066754409556435226225553109930330861971259068890130365576880590936916561616806252280165743165526040199349413021361188296252909042940245472662006368367200457822364869493629970076126230704809264961594786358870470568988484590204208988105913255139548002616159942113337922875811429377172444853664249839780069307514323038190176855528532231974180650964573893943910545427649709925064284727177614569982966268173309482119006439498721356796237821658482017158801228590612308497923244920294515687684849766644899184838700892239461394112289760846501234539530393062707856382836199822161099690513433138804310517861418898032675941117596375808119061497323073274946414181625029566176688679583349153121213397759587174481557271038419100921934575928928148964085047340276865866721522699695722827371156313766537083825592258936313921443432412268549753763910691782155261112274533606750275322657260250785052685073928620867287386882641734105232362043147442056893956232056230646585935147928903149514919520006975601227808551570173828926547747624483548599571516513512210281786908189731532183140371460041014450460550980395341699344839981198658701994396566430724225027357740701418696930240642239628704734153068167916013412850103585293292935622984135615886849534563212509620018324814598178767779204411245842650196844361291451296072650612956506771877260578715520147841654080595191985469150954149974310074465921030117770721881007082877829024627682775784020859238473333365947487132766494982339215021544165122325846363124180088283197354386648667060664537328188086107468939284717652007126159126723350576442309228738292548881809170087671591073859747768184432177700605591412017762840220278626239483344079113709478110264876572437446430479197664027220086121863435467503708904864240972203836527021192409437991003812201638020492418135540050086761001922638463508393557685042190090097007005166039859452536485479679420047246492285358736593285814728320621787430474778310846027244121115343663401487341538028553098834174825349813340163603482149947800444977805915450494988503793710654496501951081715058838510892493447003826849568117007699395151976703892448902151114015854419982156295111468654191974839748334505873598527731582618763894965569376301905076919657010706158547609796780935286437835716781902055601430100143064779062635802771055830961775946691485481938185935831949091895127259724743312442027389183661912653551128060789092317672844143981723541525537387164068549483911546684255908634961286236501507707964986448174589135638252950282248099055244167485924985737504855164582066212721360457017289689283565763387250329171155955908996898637671776093053071917450326861296148536807894777408096909649101720269188983602461410397837126608590577365955731845409824995363173361969127406729878576548991512396361974096112072455315448273582005836878724837380722486540526484045360594310925299196596474438202899536027032957101244778800183953011929708203608765654312172348174598507232429169178182983378497274467414146938091325099787615155917339155815993379979324431562133185622489886390201035492596795070016552160489483435830748319378954701751372145215390526330400365363825534151854943971060963318501912409577820217331178940289551647193422675059794110398233153924072056909666716726159811186960848966582534375756888629034301148551218180653526973974248144907774930258588668885299035734634758388452106349656549286635007311975735620183276736054926028529651142063687911665243441038060833989571242801998438766186332869981785820445561783080424201348501206855014873019926118138327280244436606096562063683641484721749381371110351186214511925659250303014003382401331978456066093547172324122533884098719182126462439633262327971426522036071412621684304112146914007272974523585494943004647800872834957815172509858978219097259188493890410931429593302082686490248638671035465289132222155427602500251594260792585041438310062164692973727679437323030527160563064071839494473496264681201897124858767514633123250366161462280795209920833876472433283010551090429675871350771684703570850350958987264371975775196026959265350702810653083851335246128449872774672094034276748044727291735896993641614878157740237915424258323630206548942607428754075573291372799871935114960870635822505599851010248520801014182107996638141043469195367369639884304485703546607999710093077244081276264462484498012946558945582243959132150238718416051004443950308375861158758936328191151084566560885181016235189895451727021713092212968253188689823256689481760097589524557778432163066486526598332014240143337166050699911602885260132521010013885250021159366708524065098829338039164462270112968218327062088605948640445414287641876582648769715142918727628562682699583794148941259894691961949784493084857686439669882373573739229745738223115647538842967160754848931261227309898947090791777503645662700754403845054644802409925966342653749441820171512418814037020198734018432786993485084109896360450786102687003323347330659116724798596243917301177890299970322265696623202898956969138111413535401117851660028846449171758158898080312511217968978409359171688324049567066017979951654768614338944105234108737586026760790379037544116637028043176186491747054481672604958521334044237060371363522062947807009998601353542941383549177950316374760145465041783754586675325158875520776642772707952401306042641867871773888640920558910677297767584770670857482308841216342526329392355643998493327866762146513937325972378138766053492639424824551302595413183264271315769941702460651140199335511194511822236114387362362570397649032500109437568780718290669454912989756461462043574148272197303322514153980300763684634296427893933815723827171713420493560101410424523564826702025884930844516254257015324035331978703323450048219988657295778803289210557100193178851416235554899596189783297263204932439403821208073702859416134488477480287793041648924181827132572638646704654079316088846349560502047207205892143708879472173047312686054130453566833280134881026601158499331140849590572388526364720852141598065208162922193049008049489051152607613488918231483073727464899639380737792155366989726386882587237479603546780943766340020812017959021741027131884774703881793982274282883879492268296440029694710748650729269687516145289034403801981420289171954452313552969303267265984124103163705914716600892704611581666411635586450197870241619265571497598660578108879221032882197810114595339534301816150445949064052509294862349202187604475512242278926411592481401136698925767747704450565305542128805329862787018610728149166960724512525707517529184656138539511545190042715758855871180853530710875076342616264478794181929511323254158939281641489989838676585274922996825783216177181538108470651655970520041061600374946607238140720615737239879414839451162432547655321219378787031260802720291667886452814305847818982039071963577713969152518902870760203046762224630031714928703660414324923147374823768076327544451965277979605927506811265307204947253260000325562348342415487566167792306545701299269365080055461480993009241236751932821728703473461408108732410157076963546031908618165398280813084720151420058098510408942687870888170116693685727732303237829134878306686777464151901061914282492870324383903019971259038624078757013761044680698536447947923572960429200851041191924739876871346577096918465023377557873551255684961672581016228247853617090079311828101470211048658572254197273629779044269662781585276859727627002662760557396954033832964127376316184716230954664415503971604608103132036656275544496138049680673700376454150796375547600534180141381110666952983118336766958050062646889544206831042527267138553118437622374560684787447217194351396208466653566154358596580529298224404619754911702952195091932955386385646093846967288373633260587283698827061763018855413635471194440858411077149689186277759158968828004959335857929025212069094046950723987668566317206528975113775887240291203829372202532652867479021754777951014953335652438502542500019162700882478188673677299854870509055853042122217675474942987186845266422233059158226462431816389937982236020997822859129484971497990510537746781115148957913208795306831695803864800669682524917129770181655715363382584322544160163582304931910485555232699598596512880778988957746631795698107353460421473175819308231737660900924586761897874428983007691973131993970610700745581643097916421602419522713198039442172339453962722019115833960713452785463057413149302966007465835863932045695211836189773504169575109626427098446433434990861377524254981352049191170361352081301205816142057894798655886760641733991555393959671082415798561884176602814156614387784348273519900397129724390328865936564513382954424137734768717534088664879912175458432211056921974142768247934435216289811585854590545981580202083992503219899589042679104007875473957796701313254082316873798489334964747952111198099892433892855038815399052084249846908695049996492740078196487845927022196725710601370657035276584443092892846458177690776213546466531151347238009134440667813823992663148795058151161753954994247662795906935176872521907178377336505093197991899588109056156714675758784149150014474719790830570194814674236879636866552100421540059511179095357752781947463812653128912156798984151304488673424240613511996156896100864901628833555690055588879357868291256925765396988331292822871452130008558647046872411431179753525105749058414147424019859845543197547323232556651529810569852113927314170429787186497910019762804868071956929729340854873271630194176364840636502871744774447245458366462982745589402379201641727296423079754217652260395080250199042477504132098357052464197771327204751572481722795279523070690031706932764013827545819067856041129112716761864131105912700997176940767598002994681085146495947299857675933174623736143331430157217244899778820053918652826972827862125689840303281275286323006902913098255963354584921333720755622563362445114477050791849107730115490559145699608585819484813939747526971926411506828702568085375062018137567571348170125367892603857164606467984442200706117519727653962346053706809851419924265475616725447724839943454092014954564802345597840468402567086685473437248699929013050827464045379251135708951895875403676285280914586031320363973988063697707810909335034705866404409400095995623294673395157935725612705427831617649426592138286243349787624494270904572238719420801377293808679859535530821314148875582156464300362788184707561976580109988129159024358643167518834820590538054476425329846161359145497614844915552125673480286053683939177006413432547879117603267292349954206137180805165760557193398285353848828193367661364188475445893654505250467615352767089145949176277227930957669213756795060739332374622789730390131309917533300195582965575551821414903039550828109434662821574087447364762580028614177332710308383158192798708148132542037435307682817202601436567377758354071070832118548242322499007420805194596414040567614882145792073589781722750710133808871029684486473330116371730902490521950767208037675400975270660311134609128872530720491261454753836201800943808234956053772639022131325395816997633637792465945622524557830538731459267997201805352742689788218632747377737959967315314479589481794687324460189783560066687128156684486764859859472755344954128399737919049272201980209821718955925801394567654648706153860750213305393325069271645919041442064308411831371039543972193255085518067680684823401578516126806632643568615587205650913368263872262258193633993278633447447895908129961098616329792572455674621162559994483875778683211668953549113262031600520845665096235882143278337652741481428420203499553548191237370518752084932215145590771101509681962994267076784239452951683823554135950826496692035796827887946439331984181109204833495852190524488877818597007604276672813508557225511770159746347849031267696160845318212073638006274469896375729983197131518957190139208060539629125496556541026355626122266231649745090074333560349645780760779116230381532411244812756063920473270180707733935086468516407157599161665814419384776647436810025387675827989027567600082248507618868166408803019137672415090844439397048327200780769213106849166331767723990779525290982410915719907694891970846809888683611906981405077625903656836816047933755199081678539901637303343908396121064205361608140194612297454262222373620031293139616748615923118211217418483693524395543687573515075579699612519185849453645893050253932451802557359688686130012393830785823332270110331307337299604049509104848544734222535401511098372900764260081584887167509581692021246262835124569425137401419650197769480279969939884175421375241355522900600397794229419133505263313697779976212938440794254550703975504810914738607862258190844277731536271627514892175001836877794848618228710711430665500314644471340098281135805059629225641509879374533705030479138274699770015951633955773296494306908039191748390830226251473733031964712765980438029861826080933961159372301783518837905156118386786092844688451300386452803826077514420302172657859997304883221849544051839927385474295352637246319155357473378690231639687281286357205131240287829410025127136083221454717492480333186961591103334799627347775876190035630612152313613865230424945205622468072625552915407729812679394122459990855774305159792073385659329310122837187153243954460322146474518701948493410661347408671558179197605402461145777577373498927034224651756822438393972023392464963643392714412611072211297339933589768843877040072098648835856347192762510673198403073680547111671861498290786201428013354775282997288813925346907839792515201038859722282894530907865258928709804089642918852967284102243392462500299988994305035706664339564109561454820663367421734169340460287165086583973311569888562026521148785049157226134941708910913610326771641782218417258895720385774946055405561804215008406336023253414853730542016912975754993161498036017663993074852217552434860268888671035405184320790506960155416199053743406336901633625133922795013770496480115288476189513112677736266706582836586143206460992938660933393057963579327806799790412487394793191459959750589519707303768421272311123583230445703173705906537153619215960829028053548655993334962609962705525764786487636975297784139451092366422103454793056324959919222126565173117580381599624175118889585706008147797216081412386870939232102586184514001939616132310987524182376015873110028831272729141040850962806446453199548647553914514433833059176311957118052159312961755936900197361478142685276855870227713793989135603994884794607877905235238717567659327527963686377670110311826135809580677560602950000860761264753564719420505627705593454202121809861647515960087037677769615698499659758174838140444798147967829970423449922732676541290174572846741310253859974405336823648204021521257237289859419818117090416810931026619122345744759665587086154334096963903186468131571037213314576486823454980902542114785588392046991882954218688524364303840094184037065861218738584202442513947876858648002370475578322640724491774771939738105733653937015404910728581952916067560306520641967084226858187640160098537409250661498368133204349566363097055185276557102724832562357922354801293087274361843126367977682256928128324119625508936146786197578972826213915193410112695267419203338170066310234759824337025732851267393343288293865823875196344419900057708866866170377426625700266031215809421985016502673505266236697196834309805417301382118056152207989514158713024663099804681829724668525525935923792482792358578958274619601981141370902213257503228746143632438810006978274056698035795175611645123358251309334798909199880356638044144931852727094626981416412264684197361817969796816469960081062313484498918268729937565561123961016499784961538412828530078529512223966986678781871197543439754918781644058348859533170744523791710363224656320369231013868784524064387668723776416663593610720350064799602641609959882488873451353145359824899957373648307647802311711096672408769118283710693387136488717078975057307035706335168238600866580739186781632762874892767333049606693732583809519017313219550061818034153916623334836069985762710063125080248322458875771423779974830351118651027899901306602735753331827187905939510675252309672644214146232504236165595057783290299239711449434669510409588530278255190714661786853737070898478612064115054663142509942185821938284929821007072730065083655096017947874799114283012132241657453412271497981317302978822733135594668269451040251419494831209627447221584645898790164802964430079954595745174660055833361516131281829557110725358521081121244356396868666103874755763384778928967959141671339262757573474333507473051580444131627937202387621230915028986121919632331606241147576142893286600097483011633670848863347438223838926393967090961266180649591308394409161711994674244577699016895392693596518503223563960726361017818331043612200314651973434513415928325612576362689625640390287895955146752466834764700435352620134695723924251134122039808545927528673054089273949312431928820251921685250454959412553742079824604576919356876925114126205532417680583293152244650433472573785303582841593664941659859385910638388206488327402993352905157237940970982922086736750926955360859019174081201032440318415922918914724703210326471265758432759890488997926089744280884932053499693224546043980483080324017241709627221101860148397037654649887835235872380761011852646648886807492922172715467358438311923266862976837182151604910405061436628647284775275114144544576369650686826560449982875021780002557068214543648976643763402460902978610732114508963812407156669289435911590513603174240544850511053611058584664978133715817519882075263235128673137015558823590005942465526123251671983853118111774792219668066684951207208348418959230672298303887255226725927989680983210041781574196970356332317731610878725450882249627762249403792833063313879743240555377070145892881040806150126071396025382218949372410146297452088175034711910447324650873661435920301644653287854717699775724145643603808816607890547291585149464407727469510482967171178786622900561492363147006448982610983681701762566036154161182473564123545467288846005288114939340398451717857437404748147436993570536050905822749644021963608087996507631538132006389776101473067063476123384447390585221183299701759041365095981338292263744079109568015417266437268832244515942845217753340984756362116915884025204239536986473462164900355600786811029572268781464662802825905065846858779817616790775692088798008163528111465096430702903804168139137781630364156469157181608721286523466018887008556811104108608609624586847908703689594122183666012108934111504845311307467192587233456865266705344944255211802347770168943148716161245329886241280845304710919141188213023815652676648252315975488440656235724465225436618791351844535332715082988682481684292354897333561820380205177106806246769735015882887924996580019872163223388665945312653933604381481594306042918672970918530966055001460971081304449665265836056255168214146614576301872479351461985357566649433231820035649268490905222640656447187258725268599020208538555790621738359473647450382390706386914347934215172955026817357602140416367664547228207680275373652753947008805226997922227383028256869738438786937586880166985161556243889392194053370671336742650002052966622189432753770912505950637865310991734964853393596487368036004122231146578919751780761145921260457089190819880972454005435431699570602834732403098191973464101596663451798917158025929970457362362737138500451543240423481967962002267761680956147651256225517407341533736994066413130647631926081369562754789058164844713278458736713801113061822442012950153872139618985918561662413587645607176490610303683446011326626938304867759162556284412626010838014345367469846804131218981002910076466925355377472527095314128542177752566191421292148875945105492777483879421808977416983289344850003973030212176916502040182360590869823381905245040420491874281524183248835265251866510090798828427044931708962338558889970522029480626173645998124812059623616922679814361010325217162028248120687938886385506388674374048011394697616641697329311886944168748670160123786678337301793834191582647758950327236127038523397087543947044672963632280125092275589683513614180474658263980627360488107102664832521743322589089885588482398954737335251944922703514524939755574598456918016322479722086437040428850965927215360064874390117558719189041418228232317707264956012663548478008436280616152774520140659357861097242544855435419465279261295785983489826785216704463034379760936897303845618726618875444100233277403505820204418216102556180002155467898675681294640164102336727454966900819359805182819441348387066367597846873196846429332610699452484162929121095636073766615695798420487028706849680535139560434699847276042061569563162965228090344146734896204078091967737309721017915387222437325114627440339065659149056097235749636498265862254472375952054358700523665436656279762968124911529920509578374342231737394067636290625630952946737800806593271767460386316625002373757579669735283785123599019906075144104812705856477440166564226792454583901067629506126485030208802223934630672592012228119507587900157809676381019369103663131994478712912733474349911987211195028402110362482535757641764812521610148036569004962471116568297698718133652403127180000874313435829420329251413886681174894264117365547362480710155386501813107364896900400548085908897484069960988699278194895884504810002003276040393975694307263333440612269060345094195550972677511537355761900054305761537807076356140582766074659736745076476390472283993222170533268708172125359741355489264378496715887160210931474602500826089824427816985099519417705011898573069088238644869312672602089789273096590980220698683433993442527748097748418471003477164385028253780453980982783429265517749095400273225654067134961896696750808940421804887075951171434915895211334560087414131819042688824663799159544121711454427855177662275389407556805826450025555025776273121643569873012775269214223255543304139406862976492774077444511162754787482854266718880843662450622846176162546853573554078266872757969486176638224325824563253451639660631360745644710773106432668060487507185714856576404152018450486986612352701620180645881432791032742542946555191249617833670117731459153631879747085098005899120650060476100036925143677959295507783178719424758813274658879192997569010395018004501269535360704647058131530936582819830127563226637708951172793940842903489299617493080297806854385056542982504467890471444285055889462091370809605377846458164759931313727085804271817639772021919167889510640729425529613753055902801580749789082489172831576059976653701171321393886608096362485988658135091670713878772056693437185906230053584566251233469282722190171464065448140272764566013193861879432711991172488192853211379637011013571846410252036886724473884243897182429624095158402263725078627819339934396903645769977534832802533913108014157709425952783405997784133315376098514080893439942998186900197306222097260038194910480192378908345701529536538680241126095074983812179491747655476895569760684403898991500728756508511118431270331092408910809520590982886718054192544734067987918589203360994201507726321012067471632645052703466781643885624465086725851887603404348816038300166097941079186946678602694991189902424204093291695206991554229161882736575191863636656156685640580549539877487674676534011505213399617321341102286077977918391807429002868610856618945817522819460487791497756964141807492314823191075042498956448322220957817505667937900046983044236069524755816932133831593066187048812246377446195930289663836610762987812125527423444246969573131849554144734699353187335456493292160045788841104379909149600418773844127074106998062077335440856847166776059038080130438628742841294438334015947557750469686497794124028174208861271866925845468877198097177979789384711800168783495044518326942259332114420301527684691353445706296006627106655060331727357469424137157424215550660942597175090624581876509320800894837613436601750753827381746052713417957361755552152803280310079880323267975730181176060392712957922559910643147620096214766228658737187571036828374218276864391090453596682733281885453892465842867496456446669011306078452223230788376238830588969050568772980449502362066675859734188054922000515118497293173929273559609023985095293796573265200072411100490023840932129373761376930534443749570024730011908708315355744189116867174235454663945729434336716507319883228494688692454063609747553118425650401491367318634012155134464686660496437589936925160751269096859726721734960528509721784573798740223795914723214329273514597056389292564071625649459850634257616772873541219234128932613982830245352458935450617376921259044451273654429161468704305472527442232544396337356922900540634373519657842833390997466645530949929432524681776728772009435172543608553016459850713434624287552321817303822858217580575686013308102240960754444319164330023038001242087914860474003333252426625049932812892632141602072887505931332382905879217156229296187352568583739124349281803043246681836433015538252941180893666065219011854816328702935282147910361828915270992404393853758260270341660109948805772744910780581521321713507842387108100469883888945156530683171981926909885706346789632750521349374441713748378284387735388293151358538159399239099389379999407265005499854474016328796917145432696131703223574205824804015782801611878469752538040219392135994135289167568479373006592562070510438904705107763586621678703659350881208430695092227927198175190415973030775479760832194195170758407078185896239947212777689269979467492731703271063362876271490427283581232247500179290123648885711904842259296703401687200423824045367741474811695320209465346981610387754661938303633064745615895391745748816181424422110139960400564364672443958503665007143175885855185520127323297824170703382747943590707247943601170545537648737046669938286640535045934885684123717605135565785598899978860588618494153044823790023573871615474067210428053050047137215336298503918755599234973744275152115921586695077133350548315316916881617140336189919190860644816180991634784345144087060422345221903598644905351584882212131717548322068847675035215042206470777907610765128037763393985599878882206654881341802292115240972080232024160201120756122096920693513802287999551421717966323235726917966044211560970385546395228484144835157120850109078086512341091418317983866487126174503641472057923137174511227089632752637839938291744824718908311795643134477365567961786884171332515832891479725622411112558558507345922896675578430284047621316806520604849786137718053807189082289020546488102216064484295816738542581036067558191749920823861948424354158684884292874115202468143513805223456067758263007889057563727129736387093757471455984637568176169887492738102777141653366233293502770775641199514708908569973124667650826687667813998417314042525430989336354432793707119543093008295499971667306040109270951929982229576302193453220901438802959424611636886280853061847447670614058370543547321121744385805125318443230897138736213731003171694422313495873685368975269836578489368178320050760844779808678138512390262661083921052212947336512570303860286385144186469484528294996078742457916197653539472144783899973214369622586511415339810972467391519429507332993519338667321365000836598090733282887093153096916151291118070206797860781839861284981180628296883164608301943633884456684748543183418244981553216898528515830596544994719557343123771881850759919602045460648070750935741255465237592083477651438268682818186940680577589374672004965912791720037728957423058971532328871712935759430831576970645191684069159953736632942962609598668106118490473299636187541236634033693758582184292028391299106210971770330251862729568502861511700498122499752271941118819964931510081434776176548832977796558244367581618013843502181447029481674242521908611048273683672778125594428167077379738629261871920944196273427281758656873389070239666450561153035905857193135257496605518236173040423851581189671085399110138831671956481972586886098585375315008854241919394318661231933754927150825935196806732291390446943277411222292259647064818795012942375137013885620004248232289708668139649188273908054583250659810306639245147030235673708432675020093463096353210403346411625713474743537225600320330918538370087050927853880075895418127799177520868782248784576435189477051988977541398735701140910572574911123868091241139112518674321004369195962469467589951196289934714477375760345159966764833701396297804863972222893065806522366906425966894949944694460879932983928770806819126647042564342290053434318957372152759627818422035280418835381417472270542789947929557680484382470392124275330072520917994328177399201177692159200538518138946408571225516553667070526975191993719069240154942833783595189497563574515362096017139879489145061704402373587579015521456557039870718089379649452756344300601057943941321590869918504213105467955726523223281909349319413329628212999973104000003432488069888382795728354617052706744253758169926545482897797662423101369493528456438647607975914361998046180943198918311065398493158763593858550666784442531986824288651117510133314567640107712306353046982675474810602254039722061934646922462509397158159630543800616076173112573455599106579159494451017999048287937731235562118827578639152696896567264572158382054058219640721516633693640317072315258837477099243092192633835495696921529298445778588637421210451255388567908725979630996583787100449774626591946436077008851420653552897864816176066805076390825343617126220415785815516333166187215369493737956973524727606856657379882290191674270857996937652483673931396346341912689171287318000042645033932043339535480194464425224819584493905760395926572735232165511643236639883105280928790194017226951258651169124420587407895161759666510552472199797507689899417574549721835748989375929958488394623619036050106409833816862845753776449326244668450083867005094122377600565920330594091663551851086002304744978770269955774462072146559574726806159415499019248909831832830721869535999081397544052501004418618211839213733962046113165304349331091553474639499706148295089788836389765159549890200257902041514269353265501500097894116295250583302805009541595457409978400892145272705209978981890557273200441481695623635162467957534399888902213045695571081815191174897659348984453998052961176777465564870408727126203461367580190906380541543286148434218702491039878676506731619760952115993456819979402978103694524609536381721847225076535788247048493560413271390970094936416281426686918647368533133655861319166413939865845763087845188893362966838133532363785192419397449830392736180745709151067215204756268976112010920003135370477270580027875805760888969853137923833230784389667243487636209040477724528284518980588103252448260459178012690086070316077681894535856374978307066283308502947352023658932018527658472364956857040797674822415175059238122773366357149026873042528195745540142758222174527825732098854406869053005352790041145593400052820069045437222998610651686001643325935217833881542668329366521548387516779205279492309925834708120723179601654284903426068876398068757964743014506687827058326778901346617480650747724134221425431399087693917602409646534680721874605021234422158404547907906359814523644944717391406965940683252260665314618559525036264009597010865226444171022990886369800079992440825252629511135484204344750051965673860920395150900308099068173753914791329813001329101616738180140523470735119610185529386416345981461936283349796531551615709602697521950009251539781394703312442095558913805461650193719252064187803876359370507023907565854248749843102969931878120387188404570512023116247649675437874545143599292071160456748696259968595542972981498901427716063516133928134426174206788787259530327027180144363786753900536683888936351250915450497700170948990036270247292304936518640266946294902907509139508523753069552213888491207538347063299486380279209883017837240965651732064724771920911414142157485978235658105950847631284913974214875611798240038918748895784738817887904855096845199594287136339768390235241934123695660403243886269712617930614342298410049193510402135189916786892974035486712100442232296574176116490508044057967562701846034889423413178314188019600740957826669589435672834152239067013037031635179195177484338135607820595690430244366514819797676043867926857111135883195814786563593967684904791178248220638680016293398623659058004938095431312043556664314205372314793245619364606580391470896303213582383531747182441377149306066801024930406626521056800363222691735279713953763018124260992055675516798030994453933560691343547597108822868136188428786645679784906885437762501935063687057934957549526022176348447402523926118458159482441980859301563459143713514555453502744803275550074123509883134819308644261787581853311041979102777340483850742974329345124704503157623580808156459657773333836116236733688117869844804059075797233573776428093204560549268497487939914121634791104048621113733018839050361297935327340757358999928139946491414244324712288496026417249906405822713026137847032366329167283888274269524555296049412918488532588486046286474841761554461456880346203059421826446505819250422327338687107720639466533264236741951657050086318505964089540466041839361835993533086533638860705287667413979415980341476287046386294467276252749348841437515984646684466094123480904705407611744759064151089723875860641024342817401445722588350904821872233283940867176220535045733347016823506158259384933225939399232297077772635686187030224071696742891729123004273866757750190466501878853390586256994115891026226030071345109810860776669957310141020651427222731856773662940991452749593426875095068580872220039573478966549319337357332062738278742477602487951934873431379544317503900451931746419420465315330870094241359326753296020304123197104446447837347510137059398206051559727806453948262739114870132712925039451092151011245623073938627386076594646370871779868147179410702516093608200116736873392268273678706016614183193130234515636683626823147056239114894588196705510881757192954981147113737525426310846949662723908315797742405700835359193067193265088718258121229688284408764277469737128132027133527927164879329561315898368663669604022613578267556322851989364270948251266275044618035078084394044130275432477985398346273261204543191499211606655837548691825044413039468169277503000902114949655025460949548386373248308196029792582845354496682155625081209700984501767264542437558216250769046663835520105293255403616144004278448929534755934661933136548010587798395654675570697014095458749823991941030360272006029215195896620698877285306396089552907664223698750898473069759829676625165246891346753385618988798750153638998508809971270031750074530886812264835223907213390260569508236551564508221592504256625336014670741121631859240993293572045030485660631632698520539198777345410993216296008746081480273966374293221608723090377161106685626798517063092135889995883874497121392803308683329155256757123714469013909405483675773664227693284688639271383796692364038188734951562219507366693002605486030680140003284857322020469789093140568592616409873428793193365444413346943713566435070479283266761356234421550998453677348605826908602347107196367378094164402879366196209871093861366858842489569463379020539963690011762513904408482753200168312221929854849674525143615382133838545684886388712473409216297733522995613617951693005536772798597282822145056918636199536941935264132817348724908804874726701746875445441456928577178740562107011179350480587545664915080750675857911468407296933306036248126660114867203868280566343208687833709707555125788931603217018669726496446825166952751182910304579644707018437259393792205807826247949844936481090269577572548978465874351888075595541317209403104547829944024813466549372972718677465621986627904762080790412017175218078854372712981514050069359333783632655314664898194958423763223670404707599079228328999847095703779346391994216381945718831013016436089058437758173128328522798654197815237162530452646078244714435086838323475861584593016567318635933717961305107267699540243440860471126499765209710776284831856333047181613342670838427536598707712675530485346443190942361018513502955476525309417019043381893172989436980055118931988880017458244687996803164927142058144596741973752225807198571166578647276520697361714482795005988890979633383096184005135560681078158486483513274708440661523808126099037183703578256510864850513546426535385436482699914763692867613885638351708768758686165115740404693845495042031270153295870849951486165987424898624333952221802420561626456621050150185149162391850393316903148434580288288444557816039087805328187725810836667205170855890021803021632088138708750936772295150017484645577769613287883785053980123657466077911751027782886255947889933971531804509045672398942423545057172507100834113494774439729777587981558817997288743154939368177115051590994055600284098792435263768453615962072003624295402383052008202286041458386972113291577180047719461703625735763399547282382977643569580143762598529500542471355532868401552307848191983407220358218644654896085116644199615347984943240009890041207058141283586865648596804455668292454956101100661730653413785442333833677796227106950999969555408147856497923898307442979889036782632531667947429513583979943465450166767363125837940643780906801648998039687833930074154244542580679854649396708815374133723951140269352838398320540590894888328928292993555986437709467215198135579576663352877116545376239327536694712814382383933655259615248131995163086607882395265291303839513964017009575855347928914781863201826051295588199334887388161009013180645457752034759495522119710758919783946351342552259650078842054337333238636926318319002577680703541155179897124641512415363709301130529610129711643261716252738934242471767891172298677256201078416946386810185114402089148481149325995645056527577077341102996362261893545549827795517375648458916999911472030187734397823989326196100602793551404484235458290695424606043901652312915164265949880679549245016291072211529758175853592044931208780456760916332980852882704985079869978704826676280088253438966782867837278765192041480350577725308343118104136465575387177530786628350406343508749043971874261016476236910421077509422125197184651676406723290252348880622559544842202249327986854301215686518967879007229365736891346301817504256947176552751329817152416655907791534024448086665487296309170048631976643979884126729047195295893374667841524668008970937298098206678852578982457403076916029031455766007507130129787853816997286952558650385538039414758980769296230590423572323232202822492933258077018960001682709712026977885588987337662118046833647568249417246428321745205365698016695070073723783958813751693710842269859324175204647414543188566449529821679074951844756127833980442873822112778087953187502973541195906629543273757921524481016458213402245669580596983865774860870368985039731350245625494720164019590849951076731678583745863367908788678717624785691105556870771383461398671283747922265697248298110600569501274231303972530620179322468716084144220817871670623444180954614232666285444699201713018192990778809416731734879317226457196127682466573905619837141175108872385354729128111943427713609398121888279004569843472958549323028878995663126998284687806770579570875277978353505238337713949438239974767068048899882145291072145366570952461229006146265855908763873453667668291840322487074969052097692826941477810610055551540778546235543883043411357966962400008260633182512738327065737939472534337522893908475352059468052158857217685014394172320458527278444475801513403272031667578850809404893049888157085274846690267796093200085971417512718479846108474452080834216399837490425474824757280104076869955271551366739633697604734157857926320314075736465475169716994853320693676988746038450701730686288322584195684229369968013603329738662499476055832696833824169741369628833078890903242241810293916028159158386487239842068259078531927690353825994513417473396700875775147342749623287938177327485618841529502231839848962072543522860532181588738394473880182074706345818527356836595839624334317277831993401711566857486066604622893067076473986748423757810177005202990392992412659581568220614979906878520357144900723030544362268338847737780996076302670615393048060167122865897031112961854875690241395557742788915486447842437447882213452538858062945869651055537109203582561941137439852343175389455524304851665307935444767204441411128103388085150604380622876222276994696846556505223016574673379884561086455815217133221232335120699369524767829590807019370809440853348305610330566869461001671475479206123251590745351459286741843183460947538071880938272516101870051990287798532257768029511231730295632172910057283968309751905947478943327058372661037350019959576518315816960170745927342608885265982948314864926111696627002970379998463358988624094685565292082583142574921821401927616874741704124720115788787622809137444852041227328160965482966741427872415340951636954086296669500685717108109437991805073285667551733156810186869081402239228088381656595337292760334055176490795590075794198800120079256435504748756686879703489323611883519912223174566624939492147548634041832840051839977893243726464694510617199675607243861908280628869631263192125471578103915984030459710571008405698467967629141205045374391470658525714676377872486791762603895653809727589622939523697131699090795074745349533521734197425003125860456238701805439127431758177956578755806544381340078634928272830210254929264558472151726862073674844975803852907366840362035357218923496737765745073752744361029324216535158183205727232966151635706723332814764961485787464318642051331887471449091737596936668269197403980458984262589374328692824533351835122926345088668642600932326340648867569692709640691602348108319769934509204563694356613992238858473355241113749890465937704233303659082066013703066405465691349945776621412913429319621405407494754976545853263481778391520507402797379349594654704910792505633804690257142985400246986367760083324490688247771993861777646044682726556515137204523568280560894494889828548011262597846609160637832005335367839107203959396734184652173697331663842064300615496411514599610455502725733910168294539411105372488884408930628999911785264191237802610284197263863113195524132852277578018920331563595628364361831425930353620666230720023522773582255178529839359212402483129027813101034820243044771800010972721695584692015192424509634067749612946365188398479231270374386568679799591498623567284371709839611086061874325997488114853713590402491232945765707394764778956997033500468744657013039634413599291478267378162332446085885590854015614651525083230499806754243318107022924302894367845476282689761648526709964558224577646535732282379716924207912731972409805800427877736915175848005513408894961095286264929745404535183565314456782431267778164545599109589789105463133073369989524497608125767610609603852992048336907770630694014905138557406429187941856546447653046887516688066611507177050597295593013917851137863511265068024483387120183754277579384315344205635534967952028376238953693799923448640160064811133638494575326178546529828373423092885015003687386416863803348721942014192760736857698403416899829620113089740992937876246143893757930836947093244053362240384587912004884279300180298133499584823075018551532344980295672738802172825910116047102236708591473475936029303356402978245572451175157468586401237723475011284562862110580673437892279060093886891954326830467851095698268943630210027911629121119370903467862084492752079408710606695641986098908736528580814714740525642332292958114473887196187124050105048821737467439104940669668133260390676386123722323991914525891501911558940390428433702816732258375038288358822708025557641592520943244259801287719954288285312496796158347743083279751031868621157726182963172566816627895293975949771553009122451092288299245844356558384405356662293710253990438341883056986574474769159292612665069122513381413815036333957755566542717152464948330421533010167555229901180799591841947247739564438688015350458255862190572295829098354709493269649679932268275206179799717751870976143994627724871668431372670014979885083466131640119344263499951949329219306046723754221206813435697361044970147897586270586301555421553666752319794684945917651116979851748370792936820561625372979352827077311115434021123912976881546412157104636910182414420269523896275318155647156599912575052795412396828627995764007156677117139144007186016668529709749427424018812712065414256677143712259099581345609147861056253296185035234571216919865774028213698509670476394291469574194153021423992853682637139951701646909377391875113214596910604330081647146009609173649591025808723073031669479043124744170932559912669256066938940081474387344111722305743345528757137644350550592430048411706613684734340587713164610952075692272471431536106204182655709763946218461873959123778603217530467278811089019851119102792538638138193025038192781358380279841667072174804333851692353314784284994043615551718984689863719479856465090091681761996223027224679882803448279946832872373191854583253129610196932184431144950465087721919579947841713474464094775855039680075798230477244963583065430001342702767211381682439481692332908063603326317681425835809221654291240398068741593212678447248858601533240370186378899587244672472609097292762745004926058545857122079970555213779574108347890900214067642996633785873933776407723868239339917769690873428369116292321181884613331875105115296383600889416182106262613615139385852664755727227674256323937205405020198781329461872065354155984303801782961945010969373953625798899288759791319417867805968099215675387992228202823685121399853575273581569663855732176717214456446531561679887891164814903172844953159550246709073876570342285225553419819249292224249149119783460780739074743135259238042351051512301030452097816015132131371839699371677200165137238200491905718722600075317513634184174307705127385037092370585847790194118230465346714798227526433841164516351184026449591269711636273977462764564807604651354675747025087529370960497482610596098721663517662155886325318631362918053784368226963604993279602153784414030775683196942202899971004463800067552673769145638615770116680110922244104292007295217707638031917757763082958296805017550513671765796258741776639462083208806322609082678320258499305906390936993157398317746984726723032569076683555038816634467015832572760125936088859709276690067038537541778309210317538354222622720698460289898365154397986458920996688635250956226603093360462006545356296397798209253850262391611602394536134488531424872748610278248888531203569155121362080141119595109095846833210497050030837326892545653427025835813387598707399635148085096573817049404496023600910033442884959156396062278000242254212908489108953619167501794179885086017475818258132716627606128740410299558191931528314045986104367570568583181005736228312106016101136144434782182218394420873125315826416158785547661358123542981447276977503916360389034642316458307328908525891867338634079168761159555253312137489876374878531172391380092168511254996652180084177570396283314728892983102711314370604018469220271308798590648640094212212635262514193285688661981632254975388227045681578332319624664948595226689651757250924131208833927460850362774153177239769115075625833534072706558326357476419050140340914368991481504050468993700750437332664828164117502970654386632975242428262872227211841771819546233286270123559455210699126782266176482754384386029597554939632733072851638631353590153126102548189046459904919626346914546806650671441447637824714032100435762794144503370455810661015208092400391318767376839107743250403880296058174381798003162669295160503991271382305368772363364198301671708332445811823531126813312298828503165062237455186888785596642381594334522738214136116401682840065707241099334367083803844964742195932238278851718428625494857169056471600339159045778442323859484197296012211001995819625836609350687424831527921033281534270820535088911240877541740299143047394169530279588022810416347138537402259285123804170946884783814630853954494040996698595678141205306773735076354438463763318227660511395229040602895782160286296931332322666008388074779628263635189767296034626238928154422540067633904904999867965025894134933505481453178386942183667347836877309729533586074308126072740601802142145694592420903212566487655379877017713936017855400642703749951677489941378987212840335249889343125870984359301165737809003570137967308479262814017303442024710323481767208928390705838561941822941779949333672858154637650598656096080042303269144460143573465145237916122476135498023902539551386003294003417820009744481705874116207313377715743500848657927334095775369471856975623654137273779443588818750424443305950828441861689321577319154405954740630765023536843723541585919570978995177130679237972867535025931889266607898556816149607707392406481327436326732034946668400139788443638948905922331037170246592952678698903090530765727343628349597362541755834885246174433069051222905176271836010742810509007671164214656584260379267868357884028375199299696264766897263620592418038249368491744920355985037560471392632874521997543920291437334826673952723558780753233877686739164767376389076220618250610551449300250129961636712656178901380396374681047791367633567729978987721488292772517975675596478282675132229962362171653642553085417367437815120763287068138749767527710989759381246633473593144019694276344220034223062036695040385514053308747738847520240769879079200589272986730909029220376309021499291122678094234118614502619251425872117477290187584927819620101773093357458021480293418844821063537078946073778616658643506009583201637006215571903627751801725109855086899172018346254992892081638010589779601792051940443622950771617406618656236528954930722552781160078918501027400100857261573275768820962860462565517791781345048255473545817318573342123839319496100132853141208737296369381544072201550130954303844396384631629667327079442000999766865590394939410244671334014052294982035015181520157924017221677226290438285237457491846053741425356548911820737805782937373325475183411405950450810102279494639731479613930434605701704784829492767295456470241969651785426696752410277094707213117876266107311693934607574251427349214109472215435839646494992334952951103377445626039383808254851775168068088252261858221851634349749749541619270763142304821853398692732362081885258426226117545273615527568273442771443452441679255591649307604326982025645552238721450698279092650573676149621737562519319297046563044894065171153095841487614752962341458065458804742836472026416836107712302068194234268820781071962614128915474110964385188056864456364313124409233639997427498953681229339232945727773075126837684794642741353697448334799218966390405749840764854365694749047652407076894545895457058668638517075037707082196311794072215502647642269256112842667519657629204426654724354574366405380732657258944075435894674252060753848597962529478494177828240074208120273796214153977272766460737369310437743271714979681487179819372157325062493208609422402462673970793704548701883626687751908176300019900148076602480662613122335613816967923843943591519348177226897837036165430339140886006665143097096932359270460755481603215889808751968305773210907932706622437095062360240135394544712856093817200459894625627680498562978440234836815347619240174941264635119206853882117961597209502404806210972102031462936620844545783955745901158721194613788210564701145128505251559851414902589132868227605228880608529326656603026188557031209767995129407999416020729814990470180095801480579996462785612839729001366464968942383322076079227736269997373481979983062876666361264494217731153281112345083755382612041465178499898605238000771951584612068444112812409407283245407843631963032953805671442597301393660924793275790462189196237477802330384423467477800897595942803821965151348241086301790431602100720233702653348717565702731070358282618880659494721587410148665749775154843786296447676170135070520796913615382915892099992725396448962661174980396388578704397943529229782191847966013913203282563358480027485596426464905824847527707323338227256556315028752967375467089762012246726419844522195531856155070574836556906024181573034315367111069709481649410085261228347697547837430515611090765613791601609632619215790529780106714140716637276808380640078421586990706638588063438463940553042964238627129441924989654782938445995673069095803512435982231924721590544342558394516349969038620919379855431293083501078397880007743030916203584365185093883377065695537993844114160064867284985599525666725503529019722999913585439240222902631527192155453827026713193671468232870748959295055327657304243191143868420907742149340996609371291919104527548583135107192863855128908240396887854641175269020929167268137735972053247823756249958196828831770793610794298625713134063453195883177689495991335156969808327060231232807636798128685636232374308053983239114748163991910956274045541012209998354079951208950458164385469252053458119417507862434074158574438455381580606308684350737195866594160919881736828094332827604899361297603936024301890428695692502087279878734926646830008712366527253164293058823930788993007357635445352563918282078744686631828993432386541279072541920489330160770642619794263906591993943402288935534423095078491177547983319422730372782135560884549546420785023235658482997161730668322450246808312687673508975564732957588545110986890938861315099727249168462265432758603524883162565938010236605294753416760982290019986481357904413956693765313010435111609458874914850518329521302123268037251327267694933116604905060337190801748570958388490291272246893771705026440658094672390164345760981664148038627378930785735410766247433538299368494505224914756820524468431432521544781702839926430110128444999628630432157685044685042842458257099217987754062055459125894704711634240384715951872961411049597581070888172375021107230622871004359625653473921643120515140056374534810335678404583220707581065160337630270269066545486438536216964649721367017807430506100985662717339524182076358574091380774212630983356624970352465155528682046143197618853103085477817829491794260543197383923610293085053483350850409676777454356507268928169146678703246865372346949205526167973796077341661084607691553293545197573549684672136567302033617866388755032416320628710862735312989346003050909361354272785649626749078233111299305043362113067167312478848927654242688413172340720049575129833599217517398058779790506839282434580861689748841583570098312245683826716243069618488094544092010576913741004796310554795917871180642149046251570536884204351150533164173145021263806444519065102190861012656756812362924539942849641297701967235823959259190113469986955528451882962110200032495514631283794607582641662664447544126018418214916758742917230225438094476977295046280018357451622054577487843335408570037582972370197392011337312275530161705555996452710285489652279450363770990454157161930572880253446814570808143538577757649973081721002282979090378436245291317085560925187037267551463799674519883237682923933385507516293540227910327896387304093758673667002060642263093207522397063846966967620694363559769605549821364356402691204397388003124775152666378125805588551498099697532107004555223225963397013592021339053562853970365100074220876388793967837657734575126464944447091648165414397606764510323155536302246402700063829935397106254209813848826628107480495536544793433408695055261041098465789215670407752344167110549477646356089025550856660088433065899478743137840578406576157756121037149976843227007769085889616500169887468104795147168433454919985795711011988188169033714735582595157098629694139756140465462048135988813381970737161827817574566966156435378431519250234733242673530316235332424182822350681856130330801692459557266027769652942047773593166254915499544366783291236435827099124240321175032935345581265585524713492878921746536700748240339640855252120224145239247371273450318570080226859880428389999933762986453794863407976904854390667023406761964503196391773979700343853912676919279967526055980978824702740866518221109007533276363378683611211258647909193449189172379368977721725066292420675045078593814104299646597900349800889406417780428208387506607657132152811117321736408332260013134709096524807250735714496374524643149328123839363525993750907628851724019456829178998194432257694431474180159050827907424753205854239694877770741894707604321358696213725415471448230656094035087526108374004340062006617815040626184311095207983180455910574659304152982399891908819063259838057994648513109693479550775472665828820320067685709831398307558441967861882606199570171256008056347012011763389545561393223933103151261262741545054535990623566152500602934096695405917204365237977925439653848445888320983744154825568242006955647986465130735693337378775490233302548339737379835676890088039679853559466077749442042117648294175435195563390515641578695285181560300572800051009660421699523484632502996633922445679946550909633013816242806037153798456852353523919816031908574519945067736933649695380946016259280593820778512063356077818267852558012038476427213008401681501241971093589379940487510961007279770420350422620585206881964219981032468802575773329868959010604527997967486877695596354081513484584571427092739540727986011365062996578818239529132064543904735930470043934963960846021757196309443359745475706681015873986353350789459260062274550225859844351183798056846809128764377366404668017077885450298847771150284015878904661403894820975782633009474235472875642056194686319343814382300973815584641068216691018487058269172309089052338902878842288457060711293290886621537103076922440811254556794436809704372378693499717374718577647052176050165874863768718488937754370549603667407344176770508758250448149040164183292920016660500355527602940959116845881415831679503109978755517937640932359508765705873163083176616724029007891623964910606075618898171583665853059203173223094283561521825022736931791452440080987232250385722530391927148593332029279832233372317243015229860864943983876700548891416871451642480993534815179210639150810534316084697760124411732198662319997921894532938281850843628295489823002181527133459999142592008255198322380270511178527812158764737230260789560376786146974454024796976739261637203970946819743003070587729078352133526709396452363207080975912727728086134620982976724935827166954638238478253842670040717613311198755230081360277018130419149757289567733244841516318795241312780259819355558754150334953275588776989414587634576531959803082693656674520784734146957252491770288075820215826959193585442167178861163701311768836011251418728252370378032646381138866507842873243901069026797350164080279361008750366489969757770001990985707908524891567272189365034142525834931574194194961544010948251015780749183169298838284962355928158060632741041736668004968855019973971710239084880754053705813298275408879539335931794073724622690489559276119663244370168197118697770201167392807343481695190923466202128281174405159599650524000394733528890260856522588761485361858054976531160648542027032806207137320737011794424411641322609035058072478035262616976585794900053508973233898254294520165192887388628716326497264097992540342358902657811827749639449473125527925659898239640134689025678081640991782461820028752674020028729023571122924928943847487265398872850023665448492023463504030269648567600705483295004810326237369615173761349795140173038527484659361626097115447227480864990639632783928298385012794982043575110162368483227775390313207447650108086740879698892035064366550807674188471587807205655757288639128412867572701330149458634421895636661194185094943679351546790250403173162610827967059679572522042594017019383490401787259660239461768739852327479853506720162063446676806578372029419823214974456388193396498245179254250596161512293542438753732643363201922060267474538263301149262991159562209383539387513529642339949501479221806661321835971622881872788815228783602412109781183558472771195795404038715978778884043798043702526163903753964226163912449379090382476852898888741510203717736469080247517118087466351547389337718140839362622784572482203749232287097840581921390334091432000023516597454616937995689519895396290359324685544578564374140269548915115228054841630775532153235980672119176754318845095676556602389734468825776645544369388768813378484253753921408084067471469061507238728356686270134744376835097473469478429314037028189973119586333900217364051589224388052723460624928986111162474805570803177511196720869993342158820616744100755405742873929961220807866748468356118134180445288282263192303231896404133418935342925439162959877932789520587149126947920810239870421163395498235695617211739792388317864958810509750578273458305535034027460626554050909092234598324597799684481756241642674159957693026111905204180400440751200434545597786903301516725935149077445894515587348745880463189743770355971888949002090393395161044929860924210106382550646976972270645083749805880890103429215757215271668024638717017721323095371481274389150229140151958096315131981640614602331644438189122835523928418143241563193560344717957363922786961287396513221911499316940152935996544645136506968340880221737607220398437728359879435323870992446332383515721269076586830982517127171710769977748984469495634250278214856324247410843246454817923480544554483809158588196770582440184873850329294724549543042084848285558703059641427270767589714587219064852357485450708270554722456066636325824374507309940911327774995195081998407033424487665371252148120018957698861908781510932382364296437191470125889118688137720504348544869710281198588203477759386270660153747023955155416018858620663370424694543666458380891159580253544277681001417050702239763374387504694374558211999308387648000016858994104864259677738330532178224023739336561377132100962735169070750615225515994656643240363996661257252686118528335204712013091737045702273521356402240776797889688170155047369128242260522661417495819178702416748694915715069338999938202832472604182758417793415790970267161858288175298789777381095169526284829869924493219495521615817909383704203585176012294848401510390133111066277511684230453523762912552863662955412395513697175901570909101605333119289620112462538263443558869615412554899603790217669479215538355642657618208212695367874931954537187524079704638872091999261992931000671925836982138344254551378002119567374595559060567366557590520414013058259988991889941319229920965294693146312077411780909147358283815919236283350901001378603907490978933444056571262006542291095275443404665456640619687134603307755834445523373975912940267000892558517896600596973279460527012894970060925710303122854227362614723793097987242331468577486972871841841330557267026201390013580165361092273240770098534851375863873916867778724398230477871034123295614923536728753678958641674496128851017481430570137678495814677188057652500587674831579494530675601610894112542891078749837388134168650122426882591424022462633813239797099321484262750760463136740118477322953080918995764145379393034510912138180733444570042374178370809275445997449198268089463711786221739283035431010968364709735660652873492168289547937848444883303481150056913533343701332218801743174051961391751202611715882464105324866523562775303612079849121876445582673861036910884524803486829924989947560181074349964731849593648216080167586556912043084941220131398474077584306025024103154435711466463526761548938635165085191335569429990244262212362207326606384851679122661199278802816834170148531274824656879832426447056164925088529513589826048274583812798150330917950402674287910348793486264897240256167493829898258728069298641043931723367851137464302575462491976728520676186462312114571126028457771095244080668770318374378991237664730207112332228427174134411445140381429913516533429779392544898113017756595434466296685195989226822324822411088899497851646935576833948669842084930432872682599161913942859217637160751491422198103226103702354452045859077046577984178416137177123076179509421203627058683226969615922218154179697805414301135732085184730413443738166297134518910387909981631663100862523148917297860215586135033220629490902470578687627555774435017485086458932998429392849643240608611608101577572043770342733480281221871585384405428360160163399013384242646095372237269052702391618228286397917834153861330849050277132703021334015972005710332021951915005237540698738519863283075455542054026689788899491173422841155796031371041130577176370708299864031274946862696728149952541802478441924354459674297799119392158271123993659924216961099422486036415385545574887748426689914811886484877072946637900260299185645195675187892362182544535028932349045848283248882862097507800421520135214781137180394832979548072045922808013614756740174659998277427683095664686250953835090573715364989388955363358047152361519959192898620189544790784998182028084710519211963728806384003119685949726636148194016985773122821703550474524259510874004174251445907592835210125057542726437963494364700566270190921175118250349335518005060919547482155027818893061159788974859931069374004236631662789490213881273189769683980284308568774193457871207495291953095880628411818612693170112005342174043698904209290490782467180899978725930406531355587112174905364539845758909944498686528346338826808087440603445520140891214945203223678848801928336995260725014756115337354646305845818019713926023587865238142394987910821968435625769977593019417712067253254029108500951312178213853084171847946275152744630741242513231726375412926007312512987549106373798169329827012753498266068536976025129606362015733688843211701180965386246341925055458124394064013089118992986360959765871877380961973063654985104695762789558627141637908399968251285137124941747631990925794162228921939471724879078882252344788908865722765789191585562997342059351588448162659242128702894044444338137348198540429117488227005867371522147756979862257695405195867521030006949814031130289663251249254149752536991976932271025366039252260006276544290862385696568349751994614008450850665122896944563271658286670367624576111389260859691646936141036640999199167144962302860764216109282866881202122701484223753696802175853061028304214521484730468540170213864969760009262712091394694944593558125502794583286353628254871006964038541212721090366857651485984685504280905577836486157734890742536370693955571698787123172375252991604570820073303591990695483732369365771880714314053839699281958378265655555444561270388908684878914929622336177308011699043126633626390635312253581864610108976949682532712203972629468048893633126803727135337631752082963182336991605469945780465689455406870857522981529440662181248216919099976811141576609397303606498206385490116891442897280824089412251675152124542201283263571291420744780045155623532193150211149592926838935189175629072207174798392048986120289189462440354187613594058533118715365205025200469587127378408608946974033566901549407916562518919932055772427637107915284495603710814229088613601752994659541793841201610137192130626632111554828104331146155789998053296672141868315485643477012508362165071864205663623563717213288831522110618489713303249139283018182774487146206174131683628790475994448476993136804640756213340999173380593857712226893971695613390081823183976699863389493665075324828218961871176668418495181901151448285355809048023604102324085788693161698736340678703901985483693879354274750095703689175883173918010214742455020085863563152070398510520138808125502873386420034756434375065722386485232934025904408594577623386244584558764099246911783592064060797839409484893707462493315168349400544402000418950010684181262010129464692031450025730734214703349155581992458282834425612609546146874637754988614418459057024853385963271468059825759158455979319586032845950960300660693868291959644251496644693865319587240978278655794987391569066498076728542773808069179862526872810385716889700087059248164125272101911259133858370989926455665349185237437466848016816424478969064100047081757209891624619949013128337556643623295973828731815814015339798229894040979444510143320499335350331608597162687621398005927987384779498054655982858229140020124997260825718672582298099673183471647481062425555949080878716502814495276506835749044702706203142479222739677956450657454505554957028682578285265179163000794076274981593440402547438235141044640345308960610411398497094907212537546179147361746615368403562805008901550328485427432608274915054964535733875027742572191758384496067909108753804339347041685188425271084033253287464902644753505746467128681463162935078203200075048832009533189901127863367204922031310752577371398964865934357877292826196475146900281214616017652968419877913383285208503824390481764578490801954088707400882768203469950912229343447923519627450821283472172484036218176374066556370889075914377571669311971317689452939266224971334599143614067200517845118030301885836759186605098289001669558391811544986407666490309894515299037514283537910903513480859229680788854500165275363091043448405041577867952759676155285589504611155615941325203319474632540564716632194507143414530430521070369526019175805872618201153523654189995791756679641271160109898226920595444837969465968845447234005145659927802986079024796632319985033144033888531082416996220537450402784245598910823794615061728400204989597387400823635753431248453602340501434909444198645477281981877259317594407386171824183061218583846170672814044423088861772993948910879912657436312591729703590245857080044336176845032298413344041545726650548675824796558340967317371397655699110936887071639049181470265632969203394494268576427037692211434353223163889900017853388312870075455992475576128467326706680861143272981208486363581447479955301666130687793808888005513140389098599412735654025066663421697509123604151983454908510154909103776114200389030937317747454035912863892226826705312118188491666111706765002049884141711387499091908340171219353943862091763914207832408231545103013465336534491957187886527873754689410980823040187456918026055320090076047943084231116594856598816425520063329247089858777221606697268926910018413530363378808002705420702304208697286970467897525338814523917682219937999801787490549948638670061825848442184641035356016768519289946000705175612711213822664837154457385289835811101910181264163676926396513416924094667789386843060708732060080829485806529612998699880717545921409783463677918398998997721829835983832558933878497610974093322169642966047359645597111559563767357249339670797209151342790914304679072909763625442656993375748880899535386648327633100032475513417734183470538414311605003234608958760802068684032363248991117717057959165650574188914908920776031170611340469359835438037918464443022496189412932802245242498829658739632332948363043468041281193197751349378809677548575329943826247235046223866741066208357841636968852684562945079018281348397620131122267326147182025298254445925001013732147794819062593834440917849076195320303961447083733604641240363919131399397211055532490621498348561178454784400324704659597377104454657872328828447385048992716362354970746476335158200206350972135913349258923161359376243486453397461327740221317695509836956262020669579802396612341707572395172329614384403656673710552399080078601737658690850436791338986336468837121248358970813123000738077387780443088105323559189632014210517066301939203204118034525158458394831834118908337864117851797520845357285720628935293680876744327756287342989055925381638197341074541041312037939705953751326118093657839497359978735479333132314631887697607853370758107987806179364409632779435073789799843850267191102711552732397614683122045637761652813436949810741639786251448893785420891409098501987955241121286361714385135300710530252793382023715956782763033654648773216311300470887239802624786619092888513316874311676344931735844010843676148704648242539511600852044023768140015734244906985411402717535675593278561035561376919742389612464306495121556695887339963913310695857018566955061719205521073117888520809838392010946992843497442291119868510318348327531014817377799902030815739978972389799175780861057274647572562066770776323854110134375639936615926369466950490626048638582945257750232752406632706625970710285800224735123169875396065216079555559370512956787056509750925322404762043091851525909326644069167839427115764403233971223494258983631394889939796614767986626647635999882003032316101733811954230349438462720373454820339951560905210838857419590512152843700967826647352806953678517047504127996670584143602197643363644077702997800509100109909757867997109503569753260789307020230579277268459734915759645718908841044035702020283205154215793845986067067613114994596204007668067585922114027368783790643993234999181978628886321413840671198507412589443947423475816071919320909310258180253729720459334333045688398276139026846245909404525088694656867563747234189761454512379665200853856345807403100642854963562688823806249157179886797846192588996531961109884316569687680139828897978589813762519832722166146749271705611566113540361871185173607263109846206082708096609891489790054315372633553275142664308493154555997617768454160499348642107743002684845536040165495273562228251217797712168248694649574692477489962618119813104476941595905105262412089521389691451513948104216608620909256087128597110590968298415824106161318842931513099302849872049950253714889567298925390690723696740809049610259460816087895861103954740638570620765931628554896111952216569188602336657949961209977044683387628803957178023010561342640534914926242439649215760149524782658675934839350647335300493014803264755326681174145265964580483403101039014573215378901090577531226470673940147358923718662242687927596953136214651195269600995164230957998781121466816871361243706449901041317680822892977164656348887805749699753261813665707392260820713991367089118815836646472604845499523540991714112784620380267552845857759943053599433858397983525324855173676194517524812840774331502475403961651267154859448818587915384636218885495581308520742298006529581789318138015567850036339427105133807647287823622729321172529022645594703983463966373352991409537028981537813515816020735083613410141785546301475290350306450508161588703503390188353626544776154648429775408751924676567930568869932935325608702210880444966354787879995307093518607186758221792961895968412263335481208906943002129881273874657728500948724951424799756102872408658018368923029994297625954125771370666405750832644476820555901238560678506457154867232806843468515790359567548722399445438717835788797878893573320316323744940185188333932032013911174345278571330286667400320570566409183489230881226915953458278892197264609924452942995861715055583715886133523563791601796469328918363430410175460432357642484960869354230502881519908426476850147180434020383811536569410810476557637042777404328696069299155949427621873461020046789107524901588310563798399907053613090290753773502581515902447218796924285174203107512237872483885153699235115464202869972213560512710971888880290708362156895837104411155275116956084349991952599172720783871653998201518308487365449008163870354620600702377627620335354828694668726045284825755453689456178139137801877432172911259350828001097077415568015740591247310952938816305521030498012736337527159986421064397157683374875392782399484203966536121955209339126550416700130418279588333764470264877170094642071722380888388840643090205805734381693699471770800813956030021099478848469111667657178028393791521321360514304880103298800993410420408434342448185147211259105035085621923406582333201935530741678428856827327891594926904365159549582288314283218673491763560913439221085370314214914272792371971325846003013163447786930603498234087206675710932472374860459809733241678448130835176235623645071112679685998107392819889310507117676088337670641583693058149574594680743658299127155460459468327260439844951112586159054417999106624643297635948615397900212972269419276430403464488697015061779876807788635071085832392781418292330006509722003687831999522408296676205977656541335156657241314409318522137523779065105698773739507405715888415004949170188819457544311484050759521458638050491963789273792305276371313734023678410983188005530811437695315495321207718411142072138585832527390294926466806946685127278289130488788407787892107487212348785795052358650412307129419407970182643995222214269070552473185388502354007410783277595465819114403138822573716055954027896727180030943185357759428425852010276151271054884610754016273585789457569554985581835498795974270292020245063091690242320990601903633967478853060875639442650803781443237074665395178860217258870111368568106119952807332754319165613008816557529916884078819667199476217774026899701215580974169986888749623434851479040452811367869696049639721011311025489568360497747097825872117210664972476845541537962426372444677438273079217149042419817584436620482803488140798926344639588965525210322437275341887064544753283073854846500598007410685696530659101861163633689031331961899551477721709138957052099230412123293502345870594178200428014846809874727175674200304144630000740273091300304150405605021524463819045021121575325202738092775301196605057209305930886288122587058746913413385923001230667897314399461711135429131221228004744453846934602203029212831112461374402941896769446218071602122098737064890042248575549710928566831152952407025160818328002304660945613802312409061160090370310579020897780975965166767352523683812130727242546486673254039461999037055042680097778291774228779004449829634346429619770443543473491266547303386766684422957672862245219288568513541281458478557442252050630559799851847237680107554556665871368959896589449654816278284243266259340774690190999054423084934749564277645504445252264074622670298003613613269057871482938889831065892189897771487459182102850691462462483100845334494501213176977355464607082751900462181374122265074630427064969323675872842945208016223608326499561739654257870573490457328689688515686664357373314225468325434203591834395319656334151299991063683198146518173295620975638984076108707711217360099545654634991113761460854790480379405341630939728075746749269838713221732867062102349362333656088835202880193177068969793977278126219651857646799926043598562443464049216632342839269893141882557146753435288394652190781589124522391378016136534509020771905984038241867309969591420732666682406576250651353738460502985366307765576985600205217467774588526485152034238892789541783827553798327650835201045848243560521711452900530163486863545885602969214603089972192245941788257168479346027779830343144920171018478453584086200977213780271522405343199636720661941754129456979907541104669385817039974201906152266766589374138605020924765144979496157675352469555791746520132689493318496050117758998522812683885918096589694719759167355123079114446410623548957323320329536312970915406784007168552016261600040050030148764213703952611169288168981706820721887072353702890282562535017940828645437400193339518742429589380928372614334010766581916073995898665820585415630483509426992566896489727388678762528632622673885744941507984240404539926321301691035459509160712262076020017079295057763277187421869707096171250907985611548542876508688810824326268375416274401186524750343340559918653513512460107996958402752061287379784998986218437084020215114005023898612130775535411062751396843713699011911163621456471529316648658982929392117291857722370637883886463818614461808574216142525437663989702188246925713313636148914081606014018459005105008476564401008191633009010370199975452747197347349746618153717249994342894297860319368932349315205483491769550599930470966140207319720691423624930209722171138157574937453127377541720178099683018205904838253938058031370758153036341056647713835385281231529441804898719059424139322599411069531202582166743447038365224189281703079624148627639190653988017542653534031454006893409280663855024817376825132843533243211532297966414348565918055882436073743757183938093485935748118717172302499478002511525682379106864109761570394192120876284197683391439954313133374108799718324002972801028887605277035057256250404572299758400913324836171967541894681707857956488464485094593852021810403315508809383090835130721223001083067297914994581546819288280030631545255148631649699090762589318282232080173487997676158273393053932890767315434939803011372884581943912947257272777694706856507486145529813963085139567614984220098539238252668976831382559940005913763159705751843695396675531844188114866832015975594349169943392192080690460911418367444722631357464772692696446050174691846323722209830485112658428029038911019990375361367521844168012724186540926434358723010967670630121992663668558844890212106736317266038847633571353461098885991545892733419400523278747689130426284307956933328370545201545043667722855722656410530686989339433599327793201865127136739468206577474105494995094585164660277000464770787876251824077081722776827629861828776510963254791214873028364186048865148377059239447162954785443654570274805366337087794899697053819944044473352125988214497374836774551624064044856091527783370898563556840975634114453100435860736058097830901170507699245766915633867966581360279052175390069048717658295693994925062540856736850085560294327553092181939346952137089093102613021503399036761744862059459501913253108975419744555025841764509809443665444904168598951378060196223204799210607867693897364022158567253791996548424175051808033713255643759613290681974356224710652224253590074019040512634517070074716115739276680037130901909154717770081555608800285080073185334715001948129132400709635230943405010228570837318731915188983539435232879499339906015435701192810832055942024988141563914837360840775194283528605669753760059681311737302697080430896710529419870067016486054424463664039989150905954723960214555922328968577066421348794717385712238762538409477367144732950686431206568324770865861556188371514823406441471389729657332732027838402788320988468409443499672082456656220483771188435483747000075465113266083312161377220550028852970861711835642368399457730302934192028263548553128334997995816144938253181454891239027997324589206071684740585574771952085785764296631886420696023400287592435599057384284469186075671834393483039943909451358335557660572729849280501572131869886527607192607200737199170777343626363957251132591691236932270683138925154709682811021276131192544708718697782429068369756445415762925319697318564675829560278419812784769643215761779012548110077000618469438512684933658534248353878221645790562086998283715152629182117226831881215570831874127076661749985833586701661869398035509574021107715807301865062629369592449538666356531874604462957173976131597867279965799872202172700371298945652767077790002068514195681532189842482874439008923399282827071309796221193270000500127687242169831983030795933509194885050428011520864378030597508873536589684692919085383953177898746540349015348519923349825321831450015017276374849554657624005383563576328442400729855887424727473086158178819376838936509111486627655806304380085987231741132139930667766851546454628464667614805695772799595108344897932170437595949054362050538403861606427252869396449722029149136250879527092609630985312525516104495259565467056062427389440449202322064631836686567471226997787095494382005506865946768590723285491394688101352611081372745038279666827873037756604862658120713297185013335524808783366330823895504568316833759036954713166478898328427318227120954711303840992039201536488373105563466508480932963013227351806279506172094216078432118059493700403553725470642983263017411448762320499473580911706631406755177221494902743930534900153483720188267973437056340380294649200414738597087399878452491796579753613376872872375765519522069235025561794968580908847756363357556080549066369451031341718858790992012049202668929125002648856427061649668165872621369006044690804814938440255849139958137146751588163741478117577966164487811144510171475178944581078146553918996641369396830466734771878922875636369194637143701142003496042977939604026140800358266986240509272343711011080214171859719741413005258057391892278765713729178721763357390711677308108315663703563876803100716012552909391386816200966648505787919514949743623430252141708354872391799895413174070197672477475315131584326069349849361049664251056277886856291156555287826826600579722270657010810684836105962806511351572892518848534126530640125120711350462030120986619294185557540286190404315262651385472713873433386364367870993679310660661117560179260857309415035830052958792827979116823783286063802101561087960335014698534259316894959092007488550419071588538916674941159539921855749587862224818488536787298565054387314576628323134204894854850674698747390571906049229549813947725948979807992957200088561160033967838670119006669362501442074615645501988713663566703029837772291477428279602725935401889906370372066857826356347798138254674052000388873413829643819494753230638944769836981595763554022374412021552787519375901463768611414281680196123691476885164812716981421457649551080920237132969747704816218764004495877865610817774590860754558116028687608005970038234451285201326758526625731142753311645550769255882116482654664455973050170547792842828651885538083262513421463621109034982127652297304930899285825662435080164234320619011291630284119415171495590896666973096890493230452014538267990724649765147785738059000697225321286913545308765611840515109771939765617172596693486683458498151301185094868867362641286999593864063568337943949966819889752398457320977615387840625811164231277512325688218329063907982081737079694922689982540756590281109580777045655364998574942186513410859060591901254667056491553985728849548146163379210365148830456816753646001493012666176933701252712495603285475338028234754551952916843649092416079276731714677137203785248434463705948597129730294008912409698747824206327434964101674015306827499790555615545399175634616644419799556537502887381791091794617379718526603925787425440880783037214061944925549316875097058069412369457884902030928888937237162653166372117345232151614140187440053889186345416382770914074982898869000874235649206951140809646047866091984372345912038332623470374884075882268150280285002513183047839665841129300355259042041027282901315210194021204218254994540816297533064064022310355788692755738081258992743904620979699319601605230643935207611112591073153782230801795119387762338123681099320737499139355153947032394251051569212188372296961490715680500231525177921474013505217842287228476023673591006380926953597785085793085944753281674958602412065821388863150546421160872723090122747587732686509498149391796722210816941073864461384039132764380024143124729097786425464301496868417728362697755817554002254034777662903192943803818030087735993320542721328232687514261558452729176913815102417721953661016822612523409749670560003917544860994430499679327287833798095852136186419222982869916677064386832736590744592253740631067281172758429607140911112925565219824539444628065383823240281366169316975449848842489455088215554694304232272318501457830312021156214039923800304978329465852966555589425810721363715948578879447488885212612034901273698429142694842045176768115621389564581793786712852214087041531074760694021133259067291738052916670756684065103503632414904542469494038860736597981291864849307063712359784467802478700644823227512145757895685963234321350966519600399037537257818679187174884565972384668272182546627957970806886044185221672866914959542765220602695344142894412960295033664099332729075800530776482415472071961144082012353313748134142924925746233783505807130614865475144990303276286690196744429867044495722601862488725858529780990388556486355955238084052540434521630548886743394021811831250687441292371256584697707593832399477275005506826470535609104442240622807858074026143413969838280764193802239759020112921648133797104929778038955080750507361716011417280778988129922454680517769784646947438510857238936425707888503377049601825326289812045810482541859239569284766988704608716689667419863994995966786153868439898313324081457702178971938377652295900622040741482123351465201372782985367264583777799333833213057579459700128250741419991461836240269361885307490876288950033852827911790298680148132816282008440204614642971495206078520654585079936913841364747781928309756589035883632143802359961788036491222420218417085682927886960261538526792849359865285736796019283008616420229664425893965632205726781359060935245111623034161395261326597047393301213952101758045051031524941224610454111950826127642920826381229567202679464015667783999850809262150371667458315239770420827660925348184206675991442492559440495791354012042278122273527436735103119367153410890591716112422153900270571353539099621536510577438851560916914329286382033231830570552827138344096146766463299942196038230576244718632201721952772799149741203631557873128468051671771485075608411297828586122631515987629446031915465249782964700986492384327195912991718738566216581292346657301326136106277017137847513218250679215709702320805102030286777831832611332762065437257896356552174038441383968534946242021766612162246525289606496340720511214657065056328725609408930995850875397721793570858075617070156589186918010646267253585892175664731060101369461815700994217109765582877438633957303449625417577041828143001621066087325042281671192380629687000200934639045328661322886862209276228279936343449850464057103920868750593227029972524966893790115370593945650598487756701134555450538523519990203781186229041559360652191527408044576275288281385356296817629351618536006430390182484009778136115932725477019453563034705325585495926581497456426933713516775229185098287450201292415065861344352637637624579662741523896061874250397351032248286569386490358734454818319335698001863815134924134963440498821842566361186809645629817080653814398728297922039195842438448921027244341698697523752755500484519814925505289953104114802862248863971532489088054423487505953424167292543043993733121084228146088055370643835617985311013866678320676443933686121835636089891860708999329614514066226962995425807474318245655056802585526883454814451792521105732440368791018577050720590554463439918929543503321437991115243707903747807569683261427082912231407782401255917975567344498318723723021206950692588211148172759740421645524822912256644466231758411415007053817183373024042555214664116122429802205524769436196552504911233448877922975678903119197280562539574868799877357443141764402884340309587668914484265884333152064732917126649176164545663266496257199068158722406461971233364347688908006842631958377138446194735922620902498848829582842543898188444377671631351511331661043169867303390657485568063197815356692762872346074275476759614894335895910114630203224278866211002554568330463042996886929807112495040994269279322846202820316634298589422000911468868746085765201087565901863613129438901509670127961388807110009074299015887328588296067507263248812790559310798278545145280011836657805734990651476675963898127636982845900362290266321616781724919126286681758159383581057124600739793093579401496505929254762918305024151530332081052078084713335935149357404951263944623276216417758603352882734216935607830839492362961072303001853018715606644299604043892261036311210221078247716286919499482098493440184055358962842434738293420433775793864242743312311378340299094697781483606124295269925929862230994144766770511208335340888221241041122806611266218984629101622009971337079244642292481432632518369290790542698068064982627435990717714864357645325676519291835025831184279799055951077664513944547996036855095014318904013871177746755106404961919665047919377893893355272192796153412104470740146308903144156191837351303265433883298153803442699880091141232582818531135420461741300480507280000237191853430348915824138499571882328346943674188160086229409144414714845861646370678274781543610228105015493420092974253586149691329444474131674321369446248764855589574293849504815591806051030035700491740367185289769881204184260917794399619351447334987223360341506934128804536107850093189566837183199312446963061883240129011175244987397971208917232668662787354749492551582959348932270805555811558738663808905062441261614890968192989409457649758319592921438048639757173464391542444213521704831885500515985652879396832126660950243959570742947615190652160385192703099381122879757405503522947923745293888692228119575878014258621553819459459226640365768761038891963085659587885572386405406331143174241701904664360744149120477474933373445928060316232325492910822674484146734016056606655206077916400467083153882977625229155728890424099202506661279498068549843360028194772773836543618069670105466725068567878347457945907883621067979192057828498480946254635980710251698237200125802142932553342416329896395488223840335439733516596602304171409810731542360009641646189239962443138628558607395761938098763516511503332925634336311340333606056421455504834749368255776022012696825502867025624836185091261627909919225513522983688462101889167242741390118249420943556136315602461495307413675401550546044025040737379259078183441097687565318719924086222694202528026766048451255633481722405986033818202730049644956045624855675928581367072042204146875938904035710743179054405823240137445061294677788935718483502023446856678783768792246690526048420376370461775215393253997434273122714843185804739678180351481583841546396207438989544721609657868068694061883161029446028424282844274539205996337053679236367828466685396481015008988814905687288569938441569498005489433073357252227191010469890785652198967826132384386925748708671875699106132536518755837008923069415086929121954107451461339696606880461271416138945626985548960157655968311007827880118613742741886828954032640828266856015670311266768727711380429596471542310528621958903824614937487461331683179184400529363393279638060042953762716652695609869669067100341999872649092822074269166069976959797941886174261308132869859593953617266103091136384647125655065561937071273032408665858912853780844015392069252248371996265764694761611344705708980328935871707996345184940869487077600246158110893633164176595248003247056202677774581332633766656074687954407005574153365432485149177191332321142530810460765596014342687603661464041899283560065092146653848590776618673086127255355528272981145595703985269562117207706972252425776104164560577558741469304614856220100067185270193145317431452995839755251975224352724693554449360090141235401375059997788380702450367353213216689236651844935036204597985237024477509323177268049011832975582896656960763800862290048845727551379372991131896359480306129075948109022205951596280992632705938766467680127455748050314190699579677267452314732913515812553600164015009118967464166448075062487777446856682242188069448726585934649267096197841853280601538902726194264213849482990618317529059829154691494132447101302326771117897281837175608102010839203573865626042622570806221514366691327274226535450738866910223297338049417383597836587505695364379336325700818620310817268665205545637718736256152587274496852137595829708628126770103842351903761362421846084693315208141616518667093122533324717403287845648603066363630772323968063987319951984765604378755232927103237954963033065182700255193696664664007437600561170610250779589244432503225718402663249955571975538166267096051476588097272298597717261389893833628584872996023531919065465320553962728339432511345447499997169275096547085048323638653435391893287017989457880072528675659212384791958299771715458165023536625183369844057488396300503702351949438531702430878794412786082553104321814374817301172916511742485312483831958108752556265686060330618534168847082625060289533295944197170072431083596750761969078588714592947121102542433854487173472410638393438398593670373192476167234973560551020219927008536562261146450571192833125109297829162432819752257333933933224720401152863556157728477826412712088002424817415878639089806481523307642968103869841585099694721322004402445167499689155138788130057993965618281316558732849179558756104482996215503513720241585467713870680012007960537360308260460892636998181139728917470104018131051881760644892279304926211220227247146109812902503619131386683312493394929782108283825037763191060337451504297625942301858130323713270173278323703802358317241683113888480769299666825784204883921185952413357423459176017846305127847803655683866386191974243073921001913002112271029709931873220708780181735289358808088129421031563779744971653618490854925013911662299428006220203133834025888407762836849845871350221516590271896116803573105849704021685765561381831761594680824093837707191070121564403594283321812136208389481841620493423817905369435360632251478413380670625260068178104269562958290469587601814538968184990365532301715269298358601973941324628953999319708318703433353597223065753613552961477765771837673729856743927794114031958593799040637578398371725127757968960475771905645621043771551654414286162981815468505763013632890612738072346281076003337491566499098644128616222743691357640640218375743667430640266516307357846057425757266048556554319921300358245694586042744680580929385690665021872372397307434022383702224010900849591519625365106000066508119133283768805567470205833529215737024219661796654240862562072322059698617662484794987457689588893825989464211451258577904167475141062740808766124563345204155165020707187833923528919094832141097172737942714495112876036983500344097484499692690506002877672598435703566215787133942702400759874880046595100533800126023233589107694332170058918716926058186683804564880402147437511562895944032342270330965246566157773408904939976300026145158735172393301607917973355824385125645792255600918949840147067686346804263421300508465249585724025944327280461010785869014483829688654409508700169578845084344906816740770621974606847336570340039304820326278800543520810716649447822876521435584186577366623719115578702063704079616817409086361500301127564409188495910231719418277328887829504200235346038121019460316719616499427640716088055258986150647326453704651422859374805264114420260073700258132327678674794103510013313379225547047934108569452811022664754577662032674521162696920347883110771383857553284814261137625480329845063866580051838178049115930564471405415096574244820343872059491846207871561650449106047737650043965350848228147883008572189555953417118624171766483505498480421577267463966278374819411454705553295607490692157631647316339774808588304108650491204047741429742188932510839128316068722188259692293214381057708255609274183207859152613087393718588630487302567000021981128703703709624486181781098346067778255109574257278475787667411398294189295469121731193654206250297951192688627969962702033055029011427054781555779001995348395762374379928143905960622996653118018445331214553377835443422324242748087838853974315044542296457221273470897106130131669191388227354557064901255808922579497033922146120151038353715792709042540169920144905580033493817438463054194887423467219740518067870098973101859537006921247259173629582523588826484511972814655249656777568834359404488881744397407156926984397328931949001477498448463540915525179245005294415544979838039760963820982580798289200299368039708654344114124654561129701776093410955215186506830232830791089825908809674063503770323597897837946617383080812117562701833307327769347150240885761487031610285769438018633332521420298307412332369090952441318257094091938285666336982340379735691566630479043275100816137437300510010500760299325572715621194079061783579864777512559059748876018335231875606051767550158384532906071896909294330491758911064920657151917848148011954209110015819292937191114943637239618136838100366334538520707066708171252950036793372662339201376959898920724758866223097164832400769526004231138283580371133829882764026922547420776793820324722271395793400000694138101544095151145753163111632197011605803744984579266518714442063655141293453501995908243244572088214682795155040161662936523327228118641533856456458180202085946286897175807360195579259889953432600408458834375931488538721921420836424577823500775274919003681904475742057308319156193306382789567148101704477097721453767243038177996015605069318614075426404865332756463781097858849662750468233823056905968632776737145734638062619380821779848741035913526487021180852515175455380827794340358021454149058664012577464088511561050641507174962835178379260766808907473879356145082902164294956309420912205714465612055272204859734161728034024343741028448422015793241917293808631526906865769171512129184536765963867453815364146136949879367412768792713652187263313418716893559174235687749772701873010549549006413798666866874689858290031442741573461651856756304537573827610656323557570663707612436715546260381572146067789596439158605668427260557923615068790188979730373543318066177883997765957159403734929675291536703612046565717484699371025326623978443349157986274596246114296474522759461953795816968524343558744321382391923133915175549959410566179246243091706978793522621980660442033404227514484519836701028612996010006323739970923844719935807305815186302445143750609227810353117655193739241025480656525173127686116768039849683564030083236593068116743889359103298716924094309086008178250969488703788258385415554044776693444462863908679982768648490045150929974501020047386557789471316278030220782672298799556232667428739422715185977968825399417550583672278016121716163189174206605550609510271798506154962798120602145415654071613866482025588583656152099563712284884765632846357934727229083274862483962951911481626739460191118276004847356050291548727760209291585240378124594347077291344824204926929334567390429594760546874341417601581017257852192675423506830933741158663777947428444728593758460887426643543899194965455709978021098179803786275650564952094113759197925454088644932911986785966827000196237190356345947354743817279813682279612949080124404814203077333274987757352639036464776393832028958244160925236802530775363897649520096928424550402265155578822626067769851112745831963172143701111961243484033876871769696941429502869782048071397172320342265694487468652684793114271091712680456640924219120454474275373135134011505692197766392294223716403341841322835987410724280872961570933837559431753168857573478276536767797262160697751956514887767542731402116286260100834333143056604646562207655784328847156223462497994593818972446989881624832074520883982263246990735691269313252101774848609595319490307292189996422955896286405818996913726665214563946223851719640502660631861091300276562468013484486689329058519623297844125449053955146207036609068257096068009720912036995533570466592714495974641959218639338467589964025788562257310757583473686990917900277451925996331916869654211824925777293952433959735925832263697167071467234605636420003879707896873153853213110375485761758112482774736681934541524467671148342233610004982688723354296772508773149330676624680904518978778942770380994423288593712536483449719485618439969430107816015761093501200635605484939529785251871446312280224845238886684376911972591836229360087194558444646698961310991416519788782563597107596799565753173670825534091185459088529798790911275091477340234717470257362495227682977853820724258305591379831947857287156898076461717361076588891913883391208616886385815683103631788350792634273530614608653501115191573124581948012713352955352440591925663902311144091552007623890194207756407498863999391015094691813018169014800370238786740037014862546536759698812744217509312378105829770522773019729638467955048521802004237755229291993607205059162524338536553899279928419536344858265934086763286186768397598899656556976833715791852446720342538604373379494719874011217250562573151455646107959007131272114524930933073609129624116874557121548718670040570900900019987108505042900027131214323224109579010915662999093427228807798072505722003519946526967228397797700055757313611015180569562165722680687193583794634576760523844442523498600188182154589544664683167890905563694349192469365444517291026519534743597397311019719597532444149570355599751898985953257265097046667321345676808864913496482679839722719169017775373097282864543742263203966385800795668889594065663179280693127565443872767582144713480153186204363107219986792012126201847911455409991128872728145073618595182976416411785345288922243139454952284158019966733807486117433895990822738578287960821942595161070601303381790142466126722406432950125499357210749185176545531769017699382323946269980213766723999140492291692928624237782932118060637619415253732250562205258389920806900878707363018695835715976971009448234717099866956029610689724026834990350117124611811615622853993333653559106672744086157802693590026845692831384334876403884471881579038936406782029321839420541856021111412726546847536193140981446773090413134617907079273417353027273420394468598358067476999878999576608756119527525844101202371415920198676403473753011054411151431192203783677736390312321861308482735199717108903466172330025173785817481499588333888335545138879378365897093467214832540537904896135582961107806172929555248241411796758517700901664213272714352158397184804742666292748416006430424104732121447349756334973578401761661444977110950422593187072339317988042932073327827555237844681919066761921144260660147853284825653754267502724776346628205659715261201459364539080777545850341156196280125554737622903289811448164582644675939320565754588387806575928534066998686496031206023369593138590511481501385571277778334181438392793307665542038763821189559272256439299399884429423742548844269815203884878606107430300781573193064431177317503104599811922342130295191825442821968857132801125881167609793554512836128718215889752983594815306902452634462326455795090478888058803399911752083975581030020246651077969080184900498188152281854482534273364829401954341270032480753719835999166895102680719990117792568832581847801332094852296685452132813829456986338382232277398000989040493845947919205442443670302809595948082241814747792899811704483346635620699013500445695021753942650029833973134167042160775869725670506182812810035337807058138101408064503838106183576353770497587083847242973799037461962771022487011516393668732048385653602905151824228890759120437133557440980735493576595643239654119886157932702434003726508040107022611420275315696735921383207891638761590596222994752567372499547032828884036845728516931642207795111778195656231878768992110486063409083577708162920770026420333848611633864853420718160584197273809934078642485315548931157891355691378153767793826488231947345763488712083225934386800923776507449034621713547941264351953437752235637020965078374630015916520297371739033682433038868139508353576780219592781679320299451249631504018040036076538907740859394038934686323760805759249334296669335112331895176053393459075028207431332744403686727726635263396469217612189723816787073617815037897524474253800489312797113485416326236528745538141869283406789159681328712780887910832641417511710017968765645493749578003195587003487374702338877348156027907849034590161988669689908587628442116029807510530018169733873906958634750853013951307175618870335247700789517047724246829441779950331670774884015799633876934501430118881725222832981047622193591958236677170227768355336208191339687829685989562018319825857934592996119404337062190584866411125284792867716392756509942219835988722503090437604991124553172015614129129049563368716089148435429196136010707284759177861624313833038760717979421854067034823525511126790065332707151572626752729036920113959416550145825938065427157569335560264998254614396854337712164542346807176135620841801958612095296906213504466562937015297187251127602413607104203681143057067128501895446192350943292382714049749272606831503670784249401459176725774707010320747616148158370174554333867450382018487272746532234904698066265841648456654085621231247709982759477997342882512114196423838011017241517328836083182083897111462544887107981361564770072546427650820910341427898714457888314989628560333209663219212049879685950803507762062098272868273822124146066300198164809071850960679351996379922513159835017679345735085237592766071379968701630129638280537753175019538746409356689658656532829761889142290363536342284193884005583371420175571883269495415090575319310759729385337032274447655032738126206981010178819599003341117060814412369220965268623306704428808512010985281703722520329741951864988440074601357595277209716328611511867486310012154278973126106758239734860026948878865186610289276873788656278214413753510285656362880418173408648157276543887819557380762270942304341686357699692576942750007073321709012356644086325567917195761581583919128172680098406155026963050687596621539255666462484567204602350717499927519014741465898377469693213556711929775880395782272352353827039966918710643677888680454255116128931581526643168949807858175584311585897414318269069076966976270892912581762535635094517453646081628544483105567173653717774344214683163848072953271172643862782595750958458548706990579742582144060965965900216185908580739826913222290600783640769847415388785488405389127852682372943072664057286069494573772519800600059425298464460461087519858801790695823271937880931401877983464435541887744440462386952594291180458130662289557374861513153385063471850881080675100095832326511206542990840050837641493456707811528964573630915049272539624842788394287980408848659178729083916997694676761816646023644541583570138466163928816558198290884590258591495296722419161827210174620407109725987517198389599129553087646538213636962120400587565879968421352113605042139904874048352584457645584693236579604522036139600953400459766973574497806239377525620906410752267430299634931720561771660940400072686738541514183973989638703832428999586318563157339154508630633790939390701254449402309882597315418933065199146433981637605082542561070169161123799300185873693226973477107484110536568928877212945136458360850585374881350166492652468140502703141703449727009984397056652300583491560848203562867151007409497585547792589447015628028193757790717698567368731990464585510442638526343971492728988705954227581956497272757257573694765278968622810459961174773552255913568815966450431784749957782939699129657421181064844368676310740171413123573994354406833537553188231358352119828126521524050261904758042229427088815313719845281947877913667295854048272538680859614325459727397060259972548601506611727809309361000016281643095403148475096949907384749090572121248885884314591060299701292401956052161413031175168719163578221691461256480911510701621077612193519808390673819593002667033785574351119203358661844584764156669547688006024726496642458797811325060160896845924258565167609113095803581638611751517723169513327686480345217465168594179811384266196180027846958648638135618163001974169556055274515281973010417253653270220234980022358572641508316055604884677340341069628793829326054998854284236302106830405416314269263943554342694792605656127308758304029044372497991732711405827706497576987381470112634486194065844566416800511806444284212060882122402517798871332416202248106457234775828363920520821675493230446231782997564604768644852928817165759737339716863897502086698010107843459460163894585068158909942262575855706238063522226118725994834120261791909337539896927101718586798611316906934511285120571544394979195645319163200982216061166360999713176855780814968266560848588588388649011055480634625570634577227266782841430737729571766254081802292711479536362866546001015303657387416743665656117487659754929895812101942584875178826146064872685996185170217701534475506439304876942607192854458393656259200999242225318209536184293851077801511590344125741093642995423279070456152969348501303990578608942953698913544016659452918183049109849635449388192230800547810621195263077021571943905428475766042753327716190115954084986271247204963414191173032726769646159065951515918496720255712946867201124662193848273683399507145636275903900185364840469692038930529535961114294122083218617895160394614209715255734659213607099234732627000478686309841336204581491778692328885531597287000111008400424756398146464281216327447217256899772547673131693778010877553638267720425888934777412798245618875023942028642552637178075033317800474164425566523263786027993200768532242636500005868852829892201333699475607375100104116041334544101406238041118062957676676128626545376071187401104380160894844041183525592856579575218378318118510783874768036744514683964296031534691098974259334865583914156092107437169000151781347481351299426929661535600391301971597553663867951663776367984801501500345472018378397357485995760803365490108447562040008235314054255288087134776363956099847883005694656068232063670278236053363674424285434307046901224537311166368428322517049674649764750320749785677314605027646624645678296724311471676396583550878793698549446169350511889643593307101650953230169955910301385962225337521938748769493500319386626292754433464891854176955644058148713864731615772237749937399689920737613332754649289383424149927562025860080688093431595572634257480069456772403678241675474631928386620485472667485022850180649683779258887115836946157155664672873965702094352058274231856283691623743868687903346755911220002723174704427156813764660963154347600501624919936233324900817997749718174339383062391732024103455481060116972565713712148386065883136593844394466159041301955047956199800000853879009274911334928684682633117826743826958441854224291316991187111124287564903673111317303372145020737354693343680941651198696127689353233787914897977281716041802471945979602374509043179726967175474321427062441686752075065852925716003650635858186112710704790077499472022417346641077795319166809737427338421823280053322354639193719855598039234799368106006269322850965861551197413979671870489611113014792348585795687354433729909285174907715836670771888159868115172881198382452866833715184466873286104688462532073913353227017753286934167517493648461154716981426179554901248166463453602810973495061878313963359691935666636737656652403579758883937210781135235992251308228310467979590405399010189602874114058209666686237349926056422877326209101004932871785763207597729837373165320013070217008057449609687085944461485785619453381324578771411688908324551287268541641295461088690891604047685623288457004194214623113273618337453856644989743410290508376335319564348467875925423940217930100764795585041484192287694506858202142266700722333385247312339817368994748595891404392833334739003748088141462607127061519038816570428383186081653262763797547843092557578989041801264240397854843772714452487382605490981697306992258154015641100287858945091843065753498095682525409386408368427607501059147001989013291839750998453699081608124708769513736699366024424441855362786070272730351305819332465892396130534565341535382665692892443131106330817228380792197084109423375229527437015631466317651002722917536766557195833326722401791824202625945787319296549043014892845214298523294034639565160365053357207827519008311223364392833607274132229777799464710372696311726736146579993952024781816145654582676867357295272286833065687145225151268022763677198918306327459829528921661309666356022336897624053590356759993688353968157671334208595276672761006875658901943406841863878831410992400334214704759189061009324029603421688684609061233342216230577852284510908875055890966356053706640978049654949401177516797597451835910493062234707234060862825066740774602840398590037645366579901735935065682983537087938310770456071687947388534309098463814311894273823778574015170236226456454236092402986272027178147746702786932823134507887484536772257750999457407557361840642356214639500421978957995402617562892301067813955384244263987900460167497977264339844194345158376636951415498001957132942540717229789051341437434767756024553380421514377018089235774638093158796990360204433364120661826531276310964509980080922858250409403606158505698274465595249313704027017302512010842143822274624813382010958234793646498947761548924100773442353826197683082080739818668883476908574351511656127108664761714431287785056211912039592467790142266944057760461198116233466610188716932322879014489489255097297678910265355447677284431984499959303299556632594119936425541218626570616673649287610155203093658952222753345414792855414810068616775572705869575424236532763568466835310201403084342600626426175909416167981902830301020982292307029757437624007116773634238634387429115128393440278678768331796407251444108654289576926851870337942217681008048950520747598878339575382396644597265287169468747315900774372378351709380125027594336104002962478939365413291831778093266272288559011285054815882646617397086992877275688233400436637813431131035075096394296218242527914323989395739222999288927423268018872996860262167495464420648575824328418074088232026433240112427390572241755135830643877234374412360931294197622391420030786872865318049981900844229290296571794926036764544144239972038381362182551903587093563997995032947410538390790042239570925403901541307911832838490132886114539945057498028190642484372099040259270347763279898062984036138185320790859707932720080417369904935374615151584998334012578442529997379324889906232961614068941364276650693533203228836082552667824290073377616870961529994572188080591944279542791307159378600558422924997982829267798157394599174100318225836313502783083608168723912202801684610938282037666094831882504408240122740416513080725189379313392688705189982923848313378240898475752682628888678572113715562708052622504320046769616189091179298120651958200117398184537471247575766878143071709992370782950369938629394406813926046837655391632996330331246741853639645766305213292794742250886038879454694852023049193442521120337855603965482364908889257671331918504136865233963751899031034129406833775717354277083237441259164515810365871093319599160226862730051327639080194569114196217337372570307631912166138670289084212079237203695371639391934238235812013613128141889246591566056194689923114059066807543130109689741025582887017743676229912783535545553025813536121907595286825812679821025051291590200184776096289140910854599587853911810236295214065401652808059967925788640628500516129360132378736575790644662155575672720233683591736380837445870684322804355660852057357107630574440639188056764487837323876925093628364608448823095488071765973794267162574611600929895191105794102911941362335533841094144421890019077608580892456261921786002966284745349111137755473681753554556992909416321236353960007802729327697182169818926040863520892213922401617277576605737148417541425393952493543546417490204755749930236067186491981544707493606007948426511580189589827846370816435894194975507097638093751022542991495997000913566238664126628101996752652490838202908052593727695574290610292567182294540894467928944954595004616640570648210855315535695897289960746405466861252888624817620683239370397537334166935541031257513486426213506035746415633298637206628972673388014141556302886084988497539703069526606730288154052952353783599412073013251529890621150699963383650033454367482977403294842303930159150515124056078341113622118637669863326518297887350589621393368437548455476008746509022433227896770314011372524504026177863441929807341706014892020905135879392511343328003056776712658120046941052699679421206602519777696378446181999083797554303092202484084181107327943862897051190179040509049570585790549287677908637156406076439083599824972794100024782982589155878899670050402078321148988449635322051716369687720668970962150272471040947819361206597722827780682952622896953072800574271431767859462627658237574284775948428847941273346524107921924421932043548447847570746932642944008031347395036191231403401066999655177580319440241303315994537507320664389430277401142727761335826519730709072674226492195159100880751179115059284567249841926209143402980228139062516126513145594870705395084238196498961858777814003667280249066061933960708114111791282323414336795956647918952334829315103535244578797256007662150163178689385437632993645776052832323255014368741339602947849024905654510356975127671754309311833532286828079223158472910152814894679538153581483318977531285922068377606219360663271272197570379625676464732543763311459280265392892997078688166697396883053653763392616047038614942565826345436990047287726818385573692783865897948885599623234462980159677338272075718013979923608147279907999590533211521375759558469779644163419535352471964031223233971848769319058573548872908151632970560665978302091696532896179290080879033706220560778503936150395687426239060485989810179541974007253501876580670404712094805457415967355618036673551001052576608911922365999975343064124196092309391181343224503704650102892633536065130790982607574031261006569662751819998274750727278430660740608747876942462587311685743653523781907481941971033478786728015119253182173655292900884477498297883064170274368131243929694456333357917984799408089962999906043834715521106604044234167507767523984127517003289351772734483373090099138377543618779252381982924287362143331359546174378601699525161878357749292579842087547487988607297524123867649169014610298785091394682950127084638093516174243258607015868148184680572943756556270284607630501047629474503939602446905220615863105503097276694485807889366911763194688960937725580232420292253178525851456245564342252380604870624063360115458693616462781324605403359850596354721938339503468058967482972041804341737838031223169469844216121689036930732834738138740660195851497028327174128816776799618963501127092603811434830824268309784696872849254662146836546506757818190435746933195025948240873578337599810445682514830265301606754916946870527397800554814116474492037715159609286588477059083193449737924029372334608173132937695593600594791082882080089394808493593888355826271886179138267393344174962232374624085290912624621673184027839999508015533212767974926775116008215313624723507475514502298759265288546615962287729581026123795598292236336237760488931610855210864591581519251426489636771430112044941690490356773024912013072213538762068798372656808817467393696470865190458533843852766909633174362087151653057885343370005998214100079375409892568635384759137346306542970858722702253381784493037238417062653620795391910317623989132772710671814638441428471936828671960585403006544384647678386910867951994659666216752938696931943985057361457903442954916100292355139780620527912802091620634673985469233845646891663351243274088284037543876929915791656634866364978349305546507732533827860891986605412847923825245703731903221055078714138794352694624478683272855827250771536768703840707927384349564941119332369205217366846199601190150834870000642193452053305996868362508102885722457982093077099742813074019463045961231136383975122564081142249237828863281440691340792790746796871364774794281313938182326106116773634295565598212966734575741163443468336201580014488939522079558127277391055402199166801133734203817427487912462359045232355229703086592964078471490157255824496358336382585430372665982173940968034314243031961142444686666181524863581116877163273724929137574714319453552819384850911788840199176287624817152890670115961271553934491629056043211313781598304509812534480101309576267328247920177288978152649169990490425382213496726695166191604949459198635262155024989755098720393926434801879267477554535795180064758662579996421777548497947461885061135551764921435529442079802350405067859653328566803523424977354390878281322155041455082341570936214842052317602624278233600589178897077275968073228295088828603378264845956106848705594922642025510060013417906384510295376820950930855281335821517347084006147465125232146292896517999020796130672870032701649954470334448740528593447466014421199235073061001220649125807417353004654967175473289954917654776189559264180379010285134997912297834059417293924351783191748178792533696462920842122451146015138772698057344896677771819675353463740255120338866402637898755742310460864597818408462857781462922684095716758400939023359308929717828136523657229310863081662527636558307298262227630193711373581233745105716528820683832781285627297827499551905869803299850238778407061910938747008289745674798184959941378634672621230251136814449592503872720320863437896819634897755762693816685382373468554123957780769971999577712722485399377704439771546310677471727899212516480216914662675929951003061638834694414040240464165219513420374963329730449883569703200934533658038976122713336335388515925846192934344430781367047993822252750530236471807460973982985334218608545203941015288582994077572874201631156378547006770093851730557872757820737792738675043561994326943023653058884991473880223473245319719917169007620230130795495481289094501588877615779174647815767515875635689050275962952614198084938633179497270495589745101326803135135781523686161781757424562771277984678057981388824228706388454119577979924456351238370198929864163352161581130237338870901306832477996808347988488571591338956104058490660209440082305256070227533275485752507638483440614833864172038302490313186102768373337372361189988061457842270160779563840552799957030383730062466065842439909760076056369572017724600414798844316438239668953411043721936481596334224553439382019486012127963352981419365115785012607617481708558682355285331101741763136827668907229935760603753723075596381857798223565058811115641503885761700988573714331123424615523295195165295323296679048262832282875324561301976747738722192007886260510178178660999003420858151607948143405773872788068150034934838920048567794233000482031905524033565754564370564912866999152536684318150496123537972450265491454905189674005783553123383861972105459901441143579351328976888971268999654462629399450766813353785975085844378229300131644544229801316080934816778022634885772474655893673795387320387416964430959229648093702661966534662932699969659151587293737804304745843205299296927807239186269890929426518153704304496513930176566751243252093481573638797122519196305434501906547077810827950940368327822013364776245464979467550035968531757245375825149583660747831214902720713327475243750168810734621467805206183638764128283452019240316975333664115166232182627706447086464799998423566967956478448427360902951635470711661319277468289362705320005560405121132610919305022990726574489424815853590521525817413160678069599123209545258639175723531742986831372661067137243604686766809639901403595109471834554142267727205245387379743002542638981911340256807848305278870224572946661155478210743732349460237320295638648485020274424479406768581184755977751827278383471600914001806809624342321030190353412884761883429697186509850058101951559690847683864526826766421900490144286757094661843407154058209541447867574962132850652874889859521297340729596038132177140236549425824126918144332364421304404331947753226211683068676394756512451979102026156804546699423424601254695250862038663642392849634708378841273738664454058001663595824303647302354464058724800120231838473028275277193221298474082649526327729000139105196513552231594358079721146692174442381031133719313493243560813983289398859760212325390552015169891497373668340327048860047453630048291385715444130765502532590436256277746042965869246083045986143164337758360780278311662877849733520925155419426690165603134209263350721170882595053920456591739928420277620414153016897706757091139991621866787946660827958205782478536233503206200654132634836651623540849768098240639648285501608910940306028007787244079028286362933527928833583175039107512798028925776074349251180167288571880695204966588790225744598129389329811026056119459565665548291622934920458037066420929509606380136221803026540489949988491676748310530550453397252537457020695782982729632725650721861454582755290984477134881399269423934462791713898306399547626509879834387070563625741242013568821613509662646091068669632392104188601595544903895834998994256985295317738577761886580483232459730138938972042334134938418896489867355314072303327493045149211514786406109853234582787172606067244025597521982270975758563369818654850807726141670879730332488610891881985521741361552966271200407823045999625282573894726152051127451054579065933720095773235430741803260102306167589562126115836129940584860099705558111819526832342811057539590833654594751871555796268250518681888170710001473750911912139313917294274845747180062491419871115890276963626717469996042562342269729893153946977925174312595699425262916716426238186239231755099188438195255479683208858916946437993540652589988236344992989152863932573198218513818597000305826488789813764816597579389006723029978154463348096668971616010412934737304761466154210479094000172726868629941936705778148070881842742861670423410678635563885023226917796402958384134629965304130915116340384276329229816409359141832557817359631542605688023987782941226078763481073110836673862991225059097865221666207027881101905959654241002388809768720157650168422079412931801178200001674038756570658612537648633626371884133564428370577888350567135827556953949263046104767288045446975136018755678031992249073822620154330707166405199368426841953756049685346414452799215588713824133570574779930115823608543094975512960961363931742306371186845498741711283159587303456195412278266280086163266905078752574215239848574414990793361731151589955223779597812602098737005010856674981602614806232659151432742882184448572286091750575774061302851729159079774823842266605170414975448653369539146769615737971799226615611699119304015586471859023899687860894668793821805465537063213910744844658529395201814889684422389514692052326842457220623031052735004224134679453603691234700518729253441352718891976611538401979328312674411321105249219356203721809442656221083112170626763759005910761872630487602152981176236700629755734092441385569080523633913793180006360241640195004858622671935672534873820758695522716960336085539768122349460072459686323774105823487230939672728174097833336363068146570344235788123489405594503117994492067709066367816283832092819944992988493625623052030651363049018846313886959522487838965097593604333616132450842340049120712517323566494803101540498291903973066889523372267818733843434462833314123058114011728184593905582561651870182125485598515376569053940413306531406389287062194185464397294410519751011736964378416513683538517755845144992095341290988877011868848936779059051799791868227712997089132386380669579664329397705052095411063755573969927796515529995684937058387952864718112893669409508865986387837438039927898487702752128693769970512150545714300858783912196364616492251060648311814753347197164063506254180781693426494703795161218647793070267196689658969749771459356202523411470292397116210360551725203901839214214518240898148653582323293689720333736179488408657194429449363774659225049643785301573166807784212508517488834857514604602451826199981816669680719048547752433593972800512572103505265898765848807290633643709119763169331558132671352656016307863529568964622594534047574142385977929045711837870344565184918693346254063638813743572247734807314277554818686536832138943041743323455653679757003004929347448541378453201730623481011362351110888305608363684873651435560947575249311278178546937711916169486263565507947936485528398106878773631078306233415527240567539487385407045406127405893167933129417649830119496131873336345147919708759061518734654674007621841041198637597976731652122282987905398671031548545055623846151034373631463039034938952743675127577639074821547438670147915056199153791882236088091845795087419875607047023878759612525128269684790690330927906663593636602445938444169074364374007540335919069357471536058792971863643375639855252656148169639679520906461135793968375358655771617369414573906420089633457198933626183652398670528719095751230978173442716947596663034635263737682287199096572768753176863766580479750527971037757761725284053160184427214198399494151145836544947884881437328018614069046284149503225412220953957422778763216353875107095834031145319440478254672206748979164423836395201395815121636259890247603864438571771544189320029131617429222408038905963180787168000874856812030992636449620316513353925242512231367618832567795782464947740286187576371004114726835448169808081156270821720855251307430462275688554366090173698656858700523955095858542693344764008236043804473949193847766755315962923117817073665357783451050982800382047658396773123543812442169790973878654133905618525516680417512591375901386792872311715496477108415252354868830642448314724381400999268103231201845287704361902396791789489628871859577653479107160967691642620368832964469843157387231722532510292671975484937191960847109823157285985508080574450396059664425258086402708558012027017384936944613657578411273580970300129808288857208998286506523985658824741844475210370377644523981538848364194481099514731252882923154451061198782963605708239417030046377228977727477225697881542193795293230068643858877370739965295934807096376519051957726198732345892529738781645208544509414174956276795691903951443208786958509336129379771489261458293374492780598957449303322448862397774962204021202638456811907768218433698847949843093662126690766066303794227363548965361544375877368838583414902468676792421788438430817959633725102837648427198088649302818054225413867973224051998545519958042107240740918776611874051778016561693104109618959878244518812142055455238500759283621519172281130942974374208705805777367934055188854434419076512972323356638730218190501582562968320815275624880918812230225944422841541340987979520213890194864685979985010057199534038615506013788184252425743084932338932634780265680149606686155729699441309711799456425291145977738373380384660049461168297692371739751127451136188784709974395295264224750283612539294568304657459210234567663048652484397523322886617949238310933059494062606835964555903479792266494591067583796945663041252299489950649096748491915674573235473284579930103688105415198687330057932247439714406941929889215089173419820898450782000531429623864391420045265640663474461643389033722634166573004316564967638615304480276740898449957242410387478011916772989706545109919505908526999577327521031873749188525112208504823459178196257672458502147102963178193144359756954517349347004864348019847189047698021024179543291223590825050472717767581704895531682766716514293693482698486654555048571737378133374082188526399978138843646846641495469556645065769495141409419510099160114400276488702510472936750294256499333493046290717423734810004231219656756226453454678181437923502028470959637060293963922386841773606911785217940496390828351643786045938701884857973396367565358572863343773439381479521541833324956961535582693770010630265163215457022487822420258274465001172726319570324130361994909471760980099370992100454972427773348705775426869114678747138135628364439838533911283266476690674047309584251918733018730534701886133879729854436503463230920238207892164947148543664810139406389790950655824614509801080715470011680875175311710320157823668580000764770662823660433667822555531627374213661270255729653387449885763826783375126033854529475363285864466059523518346177101651529916073989123841184971491565197403002761802539360178214179012562199175645765387306927226162476162883518436758074097083512308999588414537775268048844578920999218151383997466614442087187498189295510770780138200124589367003019698890754045817239128558361436302342537023103285040648910830215853427299376836230181125784698938250810462782813891101514900250637535634161581391111594796304676961143644315922118258459108537583837185543936515293759972293327081684515320692036435235150808209057398046862681245308328019299211602328355839406044531476488377624908396497800346609933289436221528941374311792425843249931462438248393657963761911198221403712049209527975767328135360784508832032437866796280482905868560674223602092747380176207053168573646282060184166815912578096427834098589651980120645116873599187297893560494410098714739524452623263238412561833564308955705924974132666095875643538988244719081452172717570935290704257112034271882707719972450475990968343767561684549530764683327572063137298702245399651822761169708385407220232347168479981123009840950215289051171001326751277683926140692970282318549152362623774973172179461281140049474105619853812215221930854462150309361072808761085875144746690229201938588715548883474975956076211127330586954394079106138758746968880200235609954407642022329350641474653182766879609301576423641638059059620597132064442720802213756975347695307092202652315600048977311117367528550143179343271744111127527144210218038093123194049049147054347097065872740204509149043220514809491682804963133653250212037410345512217025196975597936156660850291035844618893228604385464066414449988587108660749112480781540113977006449563119513268561626927889460762074116862473337102756112257055151717736775064889031477787576256866797107177000106409642093147080305972791700414234159731020541671919783938926002920676081849448081487452909757185077115309131782015880333339286600886572873382240310823295141257163064957259837725376210134557350368703032454956165922373718790830473819175094284731633058082222510137732916894961631735333498995274170763616781768644833873816891907895074303716292026051308992008497344170337636928023651753410213206943758277410714725473592866546528196455748216374844456270846918550151576504168540549676459475056264019780900619806152093804746007989346533939731712618331917492015761226539754715869390898407348734325356777676716102111411635850317695173656465143197621716445557470622156240929874879909325664972842616313684449611008932838315504791923034661234838318013476608185544460978486936090980707508056403426781132861702380087923521861634893257394336801562184953860829550992416885065695464050683986285395901095927288749046165394279554907784998897899571381572429792563339904435167542938485907404782002003434585374291863143078722940541143786907455434429941834311177961721822834120887986434544698955425978398063383478939390410370547942174778618950098122892170211798850961543103925373511653639155818994550887428340375689116726125636328175941023262107643202383861147199121637630486563545189208718697689911208702795258188118601355648836811017721936105192276125804719427680655888362399894664460335456492336462134758173160830087570330921478942846682572132141927109943115733436056354640025943374002209466728092964824315059092048061936007491012253333914581207663300994642421840252143132942271546427769462086345617111674631117658845604980548870560916468523068303889837134196495522560283511554290894101451255374154545075464680504176993847667159382819162011300223847385582881865334822728537098160935763922724261282326798152682791157525601993177351490512125838894764078901487067641096153641253593520057740683310772983985066338296690018303207514863871335116088052672460248972780036469597425373692785868622084810213872532924836704342381336462830097624133743213341403587501242239151601331534214929270214563695298302498786869088837551514266576564509594148702611532227567181436480949062874451538630740307653706975510113803841281926864244862448899833758789322731847438546144585582825884265354197196015977408212016289268676342059044072406950883877969467630716141552596802623061749933447735343465945878696227957589575884601756433546420045129997992748097592988175965159260641506317908313450677040156486564641477404101881464385422509939758068363354096266717872454962471053628433310164768089952438557752139503826678038973084794379651432079172363663154770063553382351753589425398570079401872315892570093978642218582002021208874292888225710843413041037948291994103185747389711790438374693310755552538076621787175825098316536550337929473051006031597536498356714268034729477365732325808572995305867420261415128849753958067922227414827069541302104857219733381172986201001405744758978784363390207072849713052161401460764985644014159501692561160561539247364334840600019659335437864104721407811435775804677486114911747268322111093339385803815199721088017863687050164192971019061755767622361268127039220890853444990087209003781553593396332076106635359993765151253316582993745844022101657102714727208709352368795576180992693561971121412100859534959456045033186444508490951456382951764286744096271426970289797221607145245964526367727016472988250046278110506105255669726201361837927522003119714144443932440293616916720353862295673998256502115299823299096696387124012736270019031418242707347179312620068230078145677027443750847069582264285826233246703593396780320788511816846470260059599106028419942610859860625825945005345724599488091924675444390805725508742219316809172844358013635543886870321355660162864990092454510812160247504798255481212163145649489494798660287036356504001245939522045595302072939251478296880097249689560667262511773014585862278012870846360246138239446546953773089943523200905383617644445228984832890664203441643994533881708132900493059153817857956146514721290059149995687617681368048898934250102329394385832853730919958706726621023013039451713633599405032892466091251763358383314511573126809610139424214687546960992655213227208266727140129400227898427516246411997279749765548947433914185608338941634389781755953801306786007892503564253505340346362791664722659835090208110798894077496716213793825901674995930438178646191484240010630739712628995123957560110018240953710555753878916532603397132146200559610174129572002690615718060825724484269871164109769248543208985329041396714591979851586791148235118729809647337913253487481800539841242933093392706990412825298061445597237758379636612642109124660312587936895841233458755702564539587792708665587684550633484475394733530725525758521421937324328621876319441392349734383487195166866386680181410042161731530762990480350976056067906787732731274095282761926972943546101947325631270883090355728144836040343077783729453199510690917980963754119582122470035885366984357678568764725824391245388727009599088279190183058476180842120346715041360938006478465450303129874113307430211778751035316636622725617810315860475674209226002426738227216863645337944219801562677744116236829916241079798411372198932001431608278945579610997112772527009834228219846255013974255307529784720596058322288271396870882331751608441690600040459436768362097295262564258715408505014492814538447293401272326100804360348779647346215200578386611428343395229354947208082835632785089141808194250251246473197656065150542289323504506244399925284466530438530693792342111766327424685897196648851513746327709207085040176859151514232433888915857978154470976809374558921205306756417982278547200212274849671765277063076009927467650791762189623392453102107317376622771132163813688120609336428973955237719344596445347669619328907841945637549918229473022471146958322041325034067550008396320311945097141328985756770710582299858386041464936595771010620813613439745327211460621021476861801362545296782647759662221380564635913478032054663884714627358918453565586669794802070303468731353535014333779742541896764084845648853730138366051609412558117010868325352749950151556828766941215207421022138424415911423047393543137205344437101465063348537128378713025465407396015442836446627025432809266128451243337047995713536792936542561522232389609117154805993865279668118952256026148721529216128964423621534379136450289482537414014692858096788853849345126959043834958813545798379217450287416734860849928451854985086152043677583612649270677684835534606787296947824049904279365220973270527809402290787758779629677377504116007676766862596590898842905689781332462123358111757752085596171920516028989069869902037934446721804324124001250306884625438943382168998155570707171819140938791960860998570009511047400286142095009443046503166480863510163191092321910649297919343472770312229627907010194943724535826751439337563743172090769301591844135024946729097576158713937884649748898442909685871671993270169682243442173522313459617945397572854178210669344553454923651629000613433252487066502364333185988648591034298261700397679238121217678670785940584102873027228427926817808572846170947371624371601853072174576821487513882547925217547381779696512108562649572731555951258079096401258453166593580858206343775998986215655622204622112783660166652313156801792221161110880911857747015274525318857873984365556705076891615878117647448256703574715873692968792247913642065548366042391717589428086051178605868772608676346177677938535500789328066910990256947798064804055503241637830048931642967231554441966410602354951489987719979746189974717607495929610522823940113004120648226632797713815151557672162063886261048049356320717874686054395771092819798769812376514053989452416598364272706674057654555520588750902391044359935340385381739909932781591720935918788201260518652291056643518900987069797984767852051857890107476976119892907021818727075737761722158212056670962512842224104716781740971026363062316541459876667925151751209567766852007474573958546467146773855800654030903329462028450360127347248380727616154523569039422567595634290803829898074230960425539437008980467313068781381837984152226151142075097382899906509022826620844349254461210588081649648313055145584791387168276486070242004964149714024805195369697967556370843864958997938942512255656005778234110438534680585207005722894146362260146015316451479506891324178374008094830727762642049124939232712476901908335194048614135057682911019641999098837460322970804448274556430404415141179013701317242085587400833169245254915493788389624810404753124802193895518857080257178895713617868247453268662024894421545003328990456856193807609594861993566106709651398573514203773910139841355437238963849450881293575464758777186288967473995436773052202152612673076500688744645242202918895076282646274288370716557567428702404226839245397481549781321062519267602308444045051884865232576469970857611130603667727533165092820844414692410403217898824856374287533405048040909926146489081230278314856824034885622109457275535568244412318014565106989878737168069443394850778002481146780585834390309523418817654866473146710083348648628552081546561436388765880554557017969899114453627012515252751927057082128186728654882477884234610051848682663527856321308346774008641505251541125164516832382464852257859839404235170583594084566240321027935804737385078110666640583378671974290013454736180675232271541411436059365914453225721733122916149847404306882089407774026408855154111198395584970814368578237059189991550441990142324527449274326227153299475878889183690236603884539204517764069270386275785262167624219218930841575926333115078682850510657189176659067743175646123458517437961564691616998940515993384218728175709930702102153027387728086497901756428721235658082185628209416936358883204607720589240016247856239948120461930916993168545743218815419693516317660270523234748054642420463594411454586876522884589585743958448225214403153104215657263754972410835419675537061810328700098316481857260221922395324144506610324416757871193418431795151675075137603695074641342013717499549280665837605991166594634616073961818238595108023213332449529773993514263978028902047741340194331253174721927693155985897144234207479501005845850335548956240494871050047428578149347457505813763604791294868564233746931281294571680059367495285669484242621197273736010376651670359700838472186674926039854333885798842421983770404069150113779937714258151513452193494267651443126054714833999927574879778802211145022688117726214038504185063770411783435096977956518518955972554957701538330586580589086372938856861217779179773932947880893521701266495630238260361778611570953903595018328450026654125326503145991401131975011296892031083527490095007659153910617763473086685112071248172485961522610005485924511255865081793020573164773062526889528931819408170214302342001810683532022680258339486272246501804519002046928185431761409958764268707267490641887809551315674556834315826648511834085569897197126770524265357609626385128750020407836535374132575782588377322075345722535940423760919551080904954870304511041901475836340661267908840499786540691150341166778978888660920526532289427883235898015237632420299908190549869474934925610530452113682284141936849782054086803328389832354938832392521231024564729690879414544837759618618203918996553303254320657190272099230109892470334820851757057497445566176663315503632970977185962352603205748399480481726040091267233449206187564720313831313319965950730917689994077209608713940750016467516742662876314601575623495252561126897000726978005776482761172316041453670529585589234979391417523405103368209672297828153765994444419132707487768347890396291177952079565787752078554012303638292518688066937200553525232873317784863808569921878972662759530983123133497571291061406523241044444508260010643108363487698035630177895793556651743209828760768168722470729612334036383801382096892618180402416765803310603413609649709305410752310753518864115962959637758049525153500265233617425300430105562197978315533360627425522607269804931051366614825378027603998205433222009547294948981975986219516218458785507142270426234622028880431522463265377034736534394644962261049573585150460491339230233835107688391385500661318505977857251412432319710552290347124070565291208549222291505389073339474240486343703340155931153564396396753742128608548524273447869851120241403052603180105340137049436914369278433111534954844534793182177818701877844841953272918534288120650783162213199351197066691254876922300766435987193077442797670759498259087139850693063898190141972966750370065312038654385645898969398766548968650713343059260927572680357355589524961903233292537740573910985647106925808806246537105860438981678702936410998025444125418606969791337237546205381306900922532904544440267698044035693267777337715242764800173287922806186277765993541850346425063251491640022111153052934682453572692111497446866548291515608956488998077114564443887067921793805584791556844386281902375769569889611842290773759739853971612238495876198779969145670993909187107264359201521073998322794279746220594701180976708909256436838382679532350816715622527694779352222925973415130407533027702593855555065294567642931259223219576098788184532706084056659257550147339035367510117470324939625441745016720392900921079730513765646655675503192449298976379475959910003284861710485654283237853852969593655673372578020944944330965296777841197713118325827360769800381214836704712589799114154107579303471102732297468526460182624556013667778509168850471730840051255312995454690708272643136667311947152051452159983640726524299639214535370662652504160419098590057924906759798139611294306591988855771166348395243295826942799084239703235957556980177619703113737141785152232310550892948336109660674071152722239026138387242973737455178605290815479725575890791066580583127297937519591035106418795897377992437844107725357805809812141579801409105805911732177342711007407187628036198837017609992181228646541245358473517234740527796360955783685034805166320418249911035967066258044131439119385332526452177585833627881080161570611984986365767528697728133423652577938574300862271603180493491612408945801392924650377563186307960327041117845212373955217057330917082540055701139739887771034458506161670703891206344273838674970668360500291654403515200184271224908744610202214091794349778452592888557262605291366117277206003040951622071666078568853181026594771762004943695549832864537197992548435994349408013833688861989739605130616172785875142575958656978960952912694803225660235647637727525317460259643923715606441997570279799281202105547531570464369857805150284518611790821659816753285633904540453894003066875556887443955327806931636524427179780821794359417818668711410730991678911559010405642130360213662507665128576078965334113968604805714115526144338527694606957790420321239270420358403452352786567417780251794960994410397525134278788628315373213782669763205540699621092019188446583408498581015357117628788684056075556980695699751665068044401371153626899668596224931832598584116380160991407084178628140689456906768286414046342620836923102848745350804577357403454471313442154900659020341191803870442171091414311844033767222061053384350475456704089871681906424543262990384875414616840711779007102597815845023755531799401564438899449179029154647090948936334134007751767618879896042957498392379766556481802686350260425990594412666560057081574489818898559082418207089092102018450713301536526024929149066121491217900360925348940392768192782481810300104150716933109950951766929320339911811415388912005232986331921588435546006860339744548564139447410450884916056644891462624851630470434526238195997599032410950103251204427234764780044308592774355010918277937290955321763259119850154855428415539053301604550393344377449783194739868711358419929551598315077877518555134964310596677248716471752306761494497972313657037536478963465273499015798715828305451902633275839983545473758828260125635570712981434306990758708802698157399857081454792758120326219309479037994624288786958744722305698373256273530330584314037175804137425107032458926287917422885501105788885436517011740006697324162238032581171091401825288307475510343872066486571336339916087680132018763333130181877469183398924761977733567559237188962458381009648728101270546245745269477059218037606205857324803285044064815667328632245240872531518667553852085366393425932594439173231825350333674703115959921717715824869992900710919130595152846812359247512284792772066813489773532452593421634622164041412637865679232783075452974567647109338939043613762841831253339083145426737928848330971999139660334959287238746877946591125428680891199226905033095692692278072263782090403239002243427066272190236979615294921185923400619254903620701061907494846443467187857175549201765970682835176496343887523024797241582097569920897773800704567719560110469449993782522839101404859317659126758941524391688742825863665132297251638706813031537672158742632213029053661321880733806529174420598937722387892813457114337652662277582962118326637813002642060499321802834963244503457023853405331316543527764054189015225584900832334193617350989830023498290462924367631188778018477777738090632797233100059480017752821656635734854536229348714582883577525073637987394050424877471695777317351613819146604591942141289866086826548769705078030063319068097672373272113154032882274948897207402996765166279705129513941736299414970344682732990041449150192044470959884001146553765573611711758490519694376930544909820544483879780085210900493209138471865051987584091996389896152227152965498975004365123162140987369687501494226259692190955696782169124435477712642504205586051172284452953507274231093997006923420121066059391040901794132314174416307228627580938411906585469062410097319795427942789274746050204273748287816782345802473679388471910156291527814577327854285683159021819673988471362902337551022050316242121406250835345363504885395497596391533372600279904027216193735065952713716027421240895580000198827919306667763018024075300100343842967584324646551500496743394575065372254875475813154976815102804057258199534730074208552729822801906363715304714812281947851576896852408002181932311951938275673615794502279790686803337800575498232745588988958900091383943620625034450314233354427969057142779654973772622296943875929934297387544751302202140810829257917477565340969104363074452911652579787446748901312341018527446225150142031217108594445700480673357814352418013211565184493646511251606262702999867009419767272554236306782317564576313625890919252397608532317739954972839366469220003418848728343253563808774104946636937318074645441240101128182173183459929145218671344719036170738874217282078527381069272527857671880313403867076701227901208420367083122247478176544450976258753417348157857222411492532961748579838239671169879778688126185888458133058364956824576585359581086995539670245030424455084321834884466401391006784031319168224073769741934954900512953428543025296338054145551667886596922556663253234146417446013767089607293092977446485892519691540482759315245533970062438275991710882854030223142963355589332826448257321770566828727238871147831483621879774896415401874678854790798192615025115403144301618346132599557088567773837216590428562178659023867842552376166661557577346056924126721700626301463363233640260240712081559033281201494969014647839428348798584854015671609255283654569726364657726348314285647413596688809632004788472503713639348412210170975071640858460851420277046095874501124081929090222524193908207140056328438655448398513559665789429606311185069475770854816752885907791175041043814672259852759959235204946324368184191670317050464789258450462350273262536434880473830628939315769063066287045703924653363495794953008507201936883476918055383177305976433918027078952722816560114397496297578290079828763130542265705032827871031673422277332194276834447564688229338064001292153175915325169667035665889020440925788413580021945821584465846765782021204645560227295910071619180717647330655749445657888789699789356873179128294073778787123668353277798160959259288799264537001246177769226320145008184719034327612144544350734861684381860152213866851552131589651030944344409923963528235084322163964479793380673430943420965998441332746395561540111549937439385113069430727447783943034885220161171104413014418468908807247716545165061401371961497562717273268577636277964436114861692997981338651441582849583631786290950169958284330454073588030833630454040704078292991556426710811552135748697611254302992142264733063908094216800238208207341700069710687883676201510826093538984760464466348574059180697694734631539724245835268643960474478879535765881420715805190043871305284675727451085704568027832382065106137427726386108252241102702232851262500694327514701982216921416938990520922862374835090249841787047758761847364465253575351216761103934305600700088315114256222186278818011870832879946906365557262451473492358462900709752917540711722925437485247056574537865089170014045178407293081534736588476052498076351820289850146308934547813607297514695022348773303891889858031472402832849487140565652913155985402385376984160585071090409578114647932927671236034067493872965511841966217294334334873510471323265601698593812300419717442020029691072737321190624823471520766520844021758763547616001599636903266032727479151397533404482404803704103932941187478847075650879240821060887890630818239312159099120588758172670000128483876025095921098542709392909211141853285138636473561157146704835964569915632422589811072378574063245411185960692964645492224058677434150689304352873357757724252084252137396268590628934537204136610725641172272626557388115901966659792320583473146973141030279609032182512048969859301149345335955767055698073884605770170020274902454059344693971127902083635785405090207014919700534715845845147036755408464240594205852475384140876085144236248749605487399914984464149310244318307041232313848879301913714384561846686858675643858062656307940297212592722320425378236464517463326008570149128497586011916130050002282524099752183977558724408881095512679697124996391513019535568662241275589893737412980906724307175584926554458560570549619520022724764143939931377272696795990273965676756853294215114237325415201158579222730356073060802246669661331109401954875788893200726680879537314463836769646529419016972952677735247497667658816187448423896093284500809821367560736347330581062220121931968718882009062709921396310197083940818171197220882915144206707988703309889820125211573163723764689140109872962995377385196747133692171178278597456069426461561220349117105339716677330023010599520771045381382909498354169956716236856498375388722773729906869137379605641190519146056689245513582748415849307273502339292060397889493291280663752212421255999876946199880677301077013100609732135580063324041040284898750131362479964927145958851429099553726241970894242203118454417225589285866078186192109960804141328070463868174120260827118038200916582432094205981457376562676776899659531507847326466695679729625415119888738651883552317544588393744371572381780695428711115822268515749824202451916084165975857190132230674626471862096414710807842986236676166388658421030738331968814053099022389357607236321599289072968329645546392792710372665019243290770994265884694232163500086226638712741255015137840327345442807970949033029870499271941975835372810723515349861512912955379780607286161909274525367367870293233673568724092233074034331221857180762724927415378437445788398804549549749732312288165757389527948388453866923558860536613826138549391006729093768995998312705150516592320623496465771429598277296892143844390163272084676582319795493455815718311119098188469092833595473240292094078340172366029996131728602788512273673492174047466897222082863818146714080493493527415982565326803456895767465853693524552337747966507262059412822803762496053447268676793412070024887333205247212583179617094544268156016525129054922544330769144810745197849320843919400819003301956336085740990522718510430205063027743919579231977320622713535301713039600653219260627881728791244230650762949541095003069444902623721743864829935148985043959095703749870251353402864033243473561551856105197133177937841996008847043147192806233969169230650106999981964037461534617403927754827407341195331536084449008747835245275164465497971745216409742631172831734682755057702441299754916174612694769027208108803790782593361807297147322831342867053439285736288322644621890402124855075648125799045546823668862460941805502619880436614704880508059263567187843287992047931054967677562106012730060039659444099632490806358258559046507306511694663088117243043286008084891110742739394448182162954768387712088724627954983923747929909772417675056527301932954909062557992259005317343417357396259870678645524328457256981614349901366028055925917119638721326968523825324677981787457170149321703842933467001194387176591659315097235131719071753478690048911308033530226828174461986696552709935659682086314410661131569387909169486992437471004060129215879384354548137367842669039725057034893331254003649563369244326645221966745387956928096909918636757145936457183717152321534456544530635866057499190110207564593934578937400177682678461539905688424567081923487657149149322844811527871742155788916354217978911562294123680687476505432673875990142988044051976143397632397893036010748158093229721265350165517956504125468898121235709755147463294707316856958353183262358994927025799265712739035917782574805695635353476037709495681510118993095026499743046158271178663528302797661223772127239175161987684481353478834168776161894745594230183344027773868632377736390745445747594634581070213548811838694772539677484450663342041095102603748075789342335015094679876828184901308626196174133187998381704609059045912338867175402499814074877002622929084473579271534980990885158047207505758025918792963836869915139191821884155594605632155993856105341417751338192818570708324836367504777938474625740326395699367472748059630591713556518962267423303362068258445010078425268670865113939188839606063808954580777781356936603312490677619379306146701452995899080887275406192216652626709848396309683055602115334328033484508375222452419795884548336744655946346269456431282931932973892523594042378948073452485114480818474979358451940210507894271090486801224169865610952770713924644036536030779883193841864468465079717847000213458586354476493917439895634791290847421779695644437588851207412132478478042575528320210229968161067301011355558506459944718306800700393987207052188537323630088996093274553996351549182455588284590334965688617941900152117740735715788487621922382472106991110599810722993689606773110279356583920292574040742407877265472824608043664032384887257307108411017319888726388032697897066012421728788360274262038445974691464381420262609152246804461619887750077572367163067539913962043720545704204954871268980982035673739095254920304374087505773783792378459659115335930805108724114081641766021289779480764972412467261348740184110361612293366033258157477576393472455795725754181411583561259169789901580797223373538725806814943784703321681791157124010412193903258943346076973656701854496472524350055110039325782087584087530764068786109884686193523676237269395699536985062596927106009943455733174765877855640085034216570587381089334279149516858838059795281454879431665375921913271738691932100910941649032779231791120557188028179980323904928575463668943849842515595796667210335573519760816662278732858819372701266726526872199110170210222381204481823953183949313997932638980627605073658434991511575446054019131057686430130679622965334464900392344824590186398468185132191328814796226089421925292368690768748923624711701801496313001707342520557305278074897776681341560458821151362271588731550400649976925295857133742365942033687827061095688827084643060501857073346410964246121181669599235635151883381284728086866889655817452860618368729803838436989124753053016021697575660394534021945038764809632855803761355992369308058123020021059617986529261567481110009061577542512198790217070800858747060216454734870756238821225246161407081106545254824241399394411989834945731475904148739482366550599822144591105561292355610083426056672397608241145095773472879938055053386883771450842148605877456773324965530465304080030932853637818088000679848605552741861420175530314744234847428111694428767695482503526470393821660475334932782627741260328636997111372021283850533552610516748060681721071751418174524358421083547662152985574372689718736370734635680294867421433443776842073019252800182469107592606660446346682361636971811595154480139644645799765957393352341625441761524188140142515713291903101019451280298955791663255300243178669987145125177007875494418417467878577697910739208394517165162020024140846374614642556944686786171737480647865717892990908189236405719943463383459181400139059096087945681959853763064562790867038329429800421755181821048076259360758727354467825762751451543564648499040142291974247024504056595337562571305001930325087202976112110807358478598896785598385572833729599991736204845302913720718657906867558611553572982225898647077375548565755511248160677193538256435665274409969650519368464157426845788908287432193775468975732769407528163515211565024342525683355118508606981516685886459652277850732826107954818087787083505439256699049888522914343454046751314575856205855055494291812582864760599013592793895436911853007922511670510651508025558332468765514328349311083038404730619659851252670145327882930838934957990943642073665820067769571353140468057313161776277571944741213261377381427594697048873226962715360254864024812557970852899377577823910622595411590089577195906971061438645718577587922083857856978690846432000615940689455434038935508052274018845471237147832616385295532665001730366843727711992980269923717845384051597484024401022965991613512165980212604134880803068562982535691935207565492013562680100188674977312627520259593158110771321684854062892182663068887952266807929412028900495742337982022911881419849423589179112840055013714349805395188585677562301058066810015821249309157717385149060818097726169062119977981094621478793777463090350542392017715293760155754143432740508834831102033375391716980993958904430883019704820128655687654863260901675888839316061509903650002144173766186878325968907495552210803183211825587115516303642625317423915313497470175453430661668208903435473393826086287290421124350143660927236629134985072179920835259095502864871660799673663349313781748718664355619617935057442599355467560830748216666591966773350694890293434347035074439420456267257876047885160610598915766021141943553809202459292212912306216675691021289608329972111153579222716150385474753372943129859089822800278853306920737129633039262839147494175300052041626143040030255170356279911478373602308811954408789315806735185089124886495995375471557030732342017682774885979963271962277299056022494866978791900936499603015265385448689321410439214941202941189771815355274717125126097187197498518656451989710566848122454826011942072582260674385993284142111142350967000781435932942646968182040344277477020725935570376755084432696368515922044689987262155591489204494232439871725294451376025211246153242959815921845266630284527099890972398448051147722100976993856081479024746031555219852784525488489611686211442059872987456904808051016002301250863254010694554814735680348933751226122639076587329773568263575646940227365365577790792933267763652030286305493962671955135749435753164926138101884077887347846433534883478724520174122011144472688142051880912417458629078281450452089823313702948668080419546141138608665537879549939805954740060403635832694388978153470224967747231023763813473801867109778919390078143460895348493803035656812773079277145113214261384509622427630480038084568294721387082280528471582947280634452061407506868192037748314889614633346380520488242883581850388384650935645840213179375543687975523011165882424581672704455273713436018078547931982364085542943189438298003973869753119899724810140811153287966529906382749808546116781632317480672651238670148521120689718471180514083316098695284266828716446329806294214626959271720514166679151261911032988624505710618388045440769259721973520607291305984166896771221320039696703861428169262629707918337961495834475357307373310904802011499091548571701051853330914731752113377544091298358751850688326374183892263647115220438146539018467932327648720069015860850816612869869770078984260002191480992714951156565202185006991693080329194962195966884396599378358261595617406046474478762644037658805431132438808752289260039698190844338351758588378498765762446183635953880286046302056174085216103542369883321411659646092095363130778273820097443300152187713278616627044148905141134625283490833793668323982019353183409041851925674040612972713193951666331230953747059738085114859161015498022775585831994404217755132945352611668226155808773549383221867427089747796139728960216532559612094348580085265032263003237551610636745078322265502264569668527286994043351765792980122578875368945699250601221978172861834578540762092964196467639202426356098722718823012081132240819569471563705901835254591496473235186227645623772320409855725115959182231151180354835233806819031510540566730996993459957410571892604494496030540330565093081060808333439556422441721230623179028071976065745561389456352006841025071492517561704425883523454451229757723844639923781644110805506414777089359745747766060438486073712779043251946409832872920190122672107250452835565350325026942037242047057263612122266006027033834112104488320304703903344527619862083053656616745253667957648605968645567027963811739095722235778608019400758256394192359119424399043515878747275594808016506281717750854824223465029990694108448131010200905939594492478136111251824704812014000767695679053317426809084489523041401834442384407089438565726360225865239857020069716308826138899269339149100194624868525195076660398582379958898670695710630504995275767334344946341670885733750545396789580232580155681889194250875348502675720318394556533941243963793222561266644167067608353395281927837348356230994473694414443294032356945435315888452918904141054513325909792458058736861006832059755611640255351257325012193696532249728574187681708941904168972479178776077102791692692286061796189316475773874954288374219393135192891616422062244452610289025727995965027926492562112895030531510803120999414600170077562976075480063036875587715792660719212468449701131688334190861290963485640830978522206027448114525881463945591032183826437300256906884235689845994161704586486698416031403075145119999189034799482819197171726602727969848119195161091767474222953865489961866375936933839359801871474992397608792568547745915144056173000081910877511170314606104941633391249005797604827095134717903314817308681890121889218170292154035246908818049802133783858614906803089779424690834783571206149941212435962272812010668115550350922880781534249894805165703586315478036923485113232790659116621469377051461294201850124661956714586549804931035461563544376591248763278399442070882445287624682789757673407955851146423878660278119114962716322240969012717235446864357931133729646643384068824174011609418065813824639047802085130755339222801640590712082990929607078521953655911833701869939326398438387336612331334672503679522293218368586046455119688919695027426660598097834071180183519236694144767712837392984166262734581892711006966939693116439861615118569537719570013775444652236317951612613519354426113102905884092226110617740319814075623208525868252519535470451916115794426550804787842553458466178821837078737001480924797915517564562211491593987258102793796070562298607987834048863222678826605835530021838766447429508281102182642079565840887443129088588145420396005358658553572687298656409294643079817125302110109009066614227260176107863537329953846182058311529987450270589450407061883988647932613005010962125208354933306377545606562973272927041717080890799432898989497211170980092119008575936734311623118712559684790622772205393491618464739255054102272789946052616704373823488062033375150964983842159456117529240154296772822364738458415801550085280931554389205547970794861223625117596628808971991760880395551774555218613516932701545192679169029497165429636070100307996247619149452776294962768310464673097482788590140020117759591244972602429392904691698769186657410916785408776625114579415954369147595985032432951465440664110760523131010359598145403508382151650091816237751798409936921192305606418764823472316232336341646841410570677856951163898017710645976482513848700954709931593934537520731418523762440656347769696289476300673620653262009533381119676247543046352836337673381055869698113902878761572049149623387006421279378154525638983706003023770866427083076498164779068659286032772699778199915764413037017075528662676759706952566258037792237462462769390616608917713351302059803430670443121692617466647472095509155038709754170256141222831871214827394840522167417959888973381154840928507173150021091782407749226538104904547859816232292690437637322680311387229013590124118832767875096663383223690540152187779415798266544239707437892960855068720211714289791782526190014790869631012410521102820331662332709004887208826534018789646671521337610562976628110841481984424422652666895587983780746380300414373992085213950090357680210947541052554038176011182219897996456165915445471035086630065540290365328109960394188175778969661803172074729523661826479698348856057991573702118217802875219064216031674199553514352508089814561988668851370749731043118450656382453927545045383450587003413348479034980058621360038782285526300700822273509863611910163463453177197444894836606604372339160952142656617793084711727499659795822720888876770178789792265574882755097549439317235115404617874022519226099541372320525487198288806265406771322778644149629843943767668790141525397752187408201273656422811586472952722769392569917295609145880603007291136690133417040560979100304750544591393188348671917652537453954153041773698275791798449582218730553815289901122034486096517474311635584483786513386958450183380441382769242545508345230436370707150750513605114969312767506962579035486390401677808970585545626598013052862034714212105027966566091741235923876847597822760707385975981528930060201756253959627500651067744504995683046746095726105382554867518630212741208869755941892221509529533672806443510758515151708872280249249632359391278465530138203623941908542860472021562114778351167375636853913134601491124550747838357574745912500202443987315474191190438129949507946921386649430809686115715274620207178618220661156246379341701133361854322713160658276587963445103858065035601943977182503909542704093573088750221887061473455932130959840417230653229009638507339928818734477084698900986178045192563042064055093524638186627666360157019692678144057216068839394115973139451039415439602723717291150177813551606521027927894801282023775394809980723557139705375134626822647690630853654311069466071269482733294823890194474563639451855674589363494497593669872156167461788673788330337259427638490375941010869279496754001388575448428325001363897763419720226627435445070377705307216137392589532616863883478369130304749309574474462929587593989072300050558519390814640506597416388900323497117209532714528847833086167094962063121066501911416827399706093806562147715102455723478617732784889514530065863285663272444274883875645195624375758619592828860283725496008799860942770607734297196545997579051379152935476772640063688651953803618750505012634215007253824045162061566086755436796621720311147826478267824359496524955044259953736867470454340524119940218860322068700543387970273555112638640184845742125223699187896303490848158275894912380057809834520315214043461019235542648517128198372957886543493607879872296455928417302161778572774830213468397252717049715441204182666301284569920950257347124595411205020343493280436767311488952317700131329543336701877172323189675432355569632477659555264182901093106521165887334885760036944797121371982633899545773888834922596294836699830524201908487560280419989521097296907341251301006721915053470580527603287512648546671427578841190533437592151184584680650562575330261684443565839680224965023039693030475065114159570259764255920794409698566100444919851302995585049472286731124478772517321259083748485693049891208159583104272015469988963326250850750807572705333479257343985868116771095797138630806316963717253022728808545757298015442725884617356192578395742753931968865698806910296641289310099334104561865499232215459255689423445163611956907127183970099950108522757132180991237449725845566886105600339086050497401729422606762232108189747191685949967313675209274435353621242504194106347891354510701531637608868319843652063173426952121671290046031266862375265966454413799990541689213374713251566114747010122092029139525186659423459071569359237836163158352709741223237026074017793957872658651933406819565914808304893333901335486438992845467427724975523684210040992647797637704745042334950826147716906405983730891574583236704516417706119687866394023744249542314335510619834592141100786226871994227063873441345729996132731200446185624494003543721904350220960035309926397084881095934754417230319790394974612004655576925565785946822196311078560912202175939523315515166478910202571549673809446949171198337000812424900176461322438350805414305503649835922736233236521087528849173601242098990634321294001528662460908160067478034654183347638347494773748447709659769239410778441616889359865253009256771194084823476627060531166978707253887732693695305628814306046396084122288633103464807974382073647112613084395107972139286563825707015158942366173236823946760476792640477347145384370951168200826325377781628143294396100402592160344035157795116790514338827781397437893371483192599797826497502502979493647521520362710121747721848274712718839753736410600206792006686463693981386662444442418432027008012693249962016542547690137453488387309375521793305016251700007428959769934561611742251310031006219066994458706406819331708854174156978017839401975814615386806657627194266632186957502668581440454607816915201450674716145148605985218888484388394866873773130515761077390242119156025338555798501133339393796243498563500694307726374495231456405333787151610290278899266856218054374338668292214921680134147612892353014320944001663196320744980480260027238222183539692849977558767184807712402984569810018738177883465789033423987469546380593440291310496442811568370763554547352478839990090604320392877162849228581997986665621308924200006995014764098762973914268878819299360001112089531338306773295748969001757961390760026494253599763452005340561899983887407675495148508769964784614341480113913360583510539824293139261464444811840467029600409330260782399375107400180986058907746087125160253026381871559128383906105030296209459522303277407051484017964631891066474772134671451282893806318977460382540385292829458566566743232001859723492180405242832478741704572506980210097823058453645982839405793695453243707581656289552314235080529902084704668852198633753042552307725719231014586322728883178555733960320692225281323576191685478889264958794302699379381894557454564864277803208233327526180452130835549865755023349098872337889322491339212567831199018532182730597635009521019432632321731770873275416492701831056877076116666027505419391208039902584714301383052064279496304656454717445338109403890331721003687792387217761414338570905411944105465924024747879049479834945677009862421069870494901845459892799654511495710926434575054427365436868768225522079197972166499576627753739609077775476264269603278196511397508399773155938378326007787880997743111784772253996293608308252113628942934813784980196833527576544586294403678136495868943823650514377914957856753386937296405401151821591918198891426128857975684455509736581042042201625494493290489625604669416410304045569949880192762513435118379098775388580472355588868836357892680277892634814792951828775541472496704634852091318243964700964851568733961687252797479649010241209962977880867310323476211167765163316932387391437907641655156528302454278569297978253405430636296763849673877560112729135045775049904104543007657055366187420363194340032637332632755524881949475049628004348386454911770215140722745684520914709474152045310940744411176256447672147803423670990859377515203548225936229480597560519093517257699560235084226451037398501520637624470961046834490343631770512353163125701154662802546749973964306549303659881334313174355365327569290818284598241724418780856331699661387019750485554370384712996718994552690275462001976757682276863608501682522195463801363869469362941899286039492670065204205596246433337063726112748189739734350160992519508830156839962238577763074309344501052317706679738634127327181344202382685556667810784405757410329788744318656912029442511490869719274102878875751247700957601170089321528693204446505246590838423643786424604730645837360598369083681073374149904957992301321163323390911801059744293707901772169021686715999982409227810578214140157682984295690382709398110559693888818314047998894175561424256289823235693518991386764287839240059938042423150261103388501889196621425980856825227255546666617015550215068366427064047363795529035320860698324230605005762986803735881417014548626926662321593215918399084801641747066193693418195604150389846792217074274298844752148118681980845215557750340393342328520723567696990202427181827205451766957512186662126428964824822279564126315492481169625339149770940570463108858030468041212338904535435598631944621669577574815084616969831992343751938654578173484442619170366600194657412822398618528803089596760788366117018992130793387430777435412061523119029937027696422990325613317724184705506989268401155172417586065637587548069686888484750350212156876326101381506674619012038500527401526505852906717890253862140585297419844209664728842547530877468513104450326819299122552892261116756420651052511173668421603742246553028396477162662714343483209686529038403601979659275003832005625711984030579247500149811045001716601381577647948396883095831680845729558805915056091325075905581211129134644619631702081061240015374096087056467769136845933559035687103778096720003331617657876418601688098609931216303876546321225973037268237850181107031540745232272418592611074132167063910792571268451943943263507259862458949315738698045101845153508137424344118879054271366331018233275471549783454648700920397219298257040705702750743694593114694494430412988054433232040888771464320971350687762803857792491621189410557121227157803058376488445384010325606914801545716440745419797545319704811175920873634003049662284589336977634000025064799241769249292839586474954208896511559792067574900215720005412816204360100785794847383077179889237629896141564878229494057107464828965708169489951031340865246797917169139256018292313819848148142592558736433260717633725399793795311018129026839426179356314251952716393623637794174336048880721009105104189551060928487953572984130691116020651218222670117358434190146651339791276894548501310097567924583434489976246662798070169407055343497431888805384210137344114399371751814537724229393441962628641514243068883646396023321656227800894717734664683287116804805048067555590440448533109297335939980230435321485148856281985268146017836805257464197870903402563288701745598559910598954093586763893869928239349263446136732274016184689805263884654880891217535196183162873025496259154554169564193857980962399471627051289450401304073256123507703624430801747180750890939214175402407207085612652030022559764861762867830762709494734618573223618071425676907872049895939650911687560012957850857923059022027904279433865927187691786969173904960778977079212200656574501564726233203117432285667748399595517482653098723898638852259303917288313792093689201304966133715123047829380144710167630510535626020664846965713083231742122224750555604910115904381675381221601379730584333319238838369816770283457168250499860813182089912207061775262055741644897674380330345182336311533331173429169407621862975913213587530973027891094433313303430011167332890658755413919560995252820010653109683265285908813166238764611731117249161643550127298646438626029017423865150750462842893510954412464151353854350591411749397466826603478046848323086287616593358794399929479136514142118202683649084552174158019830939971074919688168292729355907188925438908000139708870547356939664143360494167058766122044206526012615767218888057679229852390029082059929047959465836546225910664595568035651808178231726514661978044245669825917808754293020164271386709596831215896158251036350261324788322535862122391847818273503173228680235065652104548292907809057418846949130989557394560033751594261844032616566726015250046010309044101014472027789158609427811995832322847486952007584601959601925398942883805173952618620952023875856041476626406983369886002657601951072563472887164654216652714810966916880398012401945419719364574931076074419838200935239455530839388012767031307942572095933273189185053369015667973968335954803993453990786982634091151040894526368044686427349147571803191466491285859500844972518556698485127620121547370990332812386606515198533082335850187681250898198174820447652162276996931331861696185219724483744716024588848304018297041234525790814826606914902349534561644975514512973677132449878316762694809274718929466737199849537081461779314957426303745350120720784779510274040152532833414796598581106642502330504527383691837457851187226582713724992772698778580856001442524561046287189920043710232459858565067914917324922847789322972296353360753643051293211334707791771437849132630396285431769492849074741813112763104118173336845965095713288637548360709387978680655550492403412883431782151744073045065364222347928937129257728930600218252133179595997976701224368147499093125946823560651208110367809215669670558065759191267825329274115556010164150214368705360279475360678274018579387429391242277596723946825382432493263498198436389967677893589178672678274387986698166436503734609242834871228042203020802192517130529408752923010677400322685494848940365649491261186248386307829337134431068942928086057129415822812711833318244372193132899905321066392877135761497341350937445829802303865372974696356669826774578818799066597362304960582761632024781556223902474087812175382850676296197070858047605984279584242461619123618144145425690852636951576083280190177093668451520937229845393951240235117912642035399745092793429584275455727252557529062869414140824931514794101469053522131313324063129756452945327464148730245745397295370540148335823690819791467656167282718184866904621810431010691321736754651781365098968085089542206238808953859518255246113974661712649179956203182258869612658540857623664036441544938874685095581242931193241097605474394772889291873173655431718287555340051840283908253641950685421246143338988683905160726737630870933325692619053304980545884167684462525272036622113725321300215137736369009860279590383117378845352255605066258115900394244235166409593514688394675763483370978494828027280117870041230777474555973214835058930406432607991142688397008311631140592110617436014347312123775938055509961662695746847655078771890309436529152244024366847651060498967154719172856073607077406359647152230531863397391619820647553874147253816329068567937483474470212036912640506760581849750026662357816467112842226893303078250480158432830092805037353391240101834878944355726041673705657956186574347282166652309484234871211109003246405493867426419463332596591750161605700577571033084349184575459777190219978700330354041081891177395370314070088686667048169183647276511414417370230098187867876139930612371911301328159097979591780242278261421700018999871541262144466320297484129636086094477633058156962320675526483873745843132985245026621406860131672633609568444475835510929020404173474506057030514077114615399638353770591605164032533580224149382580474378539158220154807563130279296242150777357126098540654168601097516396163211017808855985028118317198058382999978272526182377247712780619693389520142422615783568523830155016284787413718899569357144322297910600612651629603522134907005744821508543384141563301395223458131058802077950279740738347471153683797726570294150217538860670396532445708360014567964886685469880501400659856568484615233912507669873959638262211287220702991487631868717669589041022820850227005812991826483551079822177362789292973587448014955996348513150272966995269524147785991874703587422618153535515222518749865715100902225646948627924642081295636785746051236770410017325043405720810962767747493329824588657340865743079589355403379742412837274283889516159833995813058080684301236245040537973101621315694754415537614994032585930204425130327980535838204912189638692318386975458778265859783633808723666510282787048343435701795559100362296918243726112156293099768027348763628811591021723665923989925810100182872636012305008434247733292533018075417616219750389281458723081787149838705380032040698703899336602822348449707117092568111141446592553969444015354818626001497972395678065379487813837703660166697504331087173149651099064095907194100578832785116657822333563593311460221161777051582853789825575777456902833720375246218607276227388978647881594758921912772742408831361786685707933927400548218915762863737538590172100081186880074397690503145185478394385622332044867130297211340492019324651883611079374226089501709642167399977378836633914530836236048269381712692097173754984591072125462879826946424716075992112844827570480894414048207052466275463558491079645323595263062043181372427352133318845424151618786411196199899614682112160690121287723973266293937451188166118581564254088551517442618727632685931479866983518972773052963158698374520038696442971475933994822427808166217461174121128283456802906855904563099504531039365627798533399113544182341440371155381564874657754671638214748863427589677858635215446090230247332732712047698458884003582723562172535578872219531987560635135023782660381250460581019469286466955520745766565530598830118565560841611570721531173671087807181387680551265699961301618067329281683814321542605897452582852937106896320707136342459319526423646823050868941699202711888748009713905159599553255180709734308903091251779972165704976988540006264758487992931559286473480222433524624348285755050809438755244103158419835941198786926049715947441884974995830032559086141520753074005154601833991980480157734948428839116723499211428176411523510977046307531208352035650369906802183289741930661995687092676266692626914901923080652088400562294020821454984739648022819553514337226901176175673069998251698833355104025341871936184356008241013888452650277962199866797742877531194692615958138560446526324788420007278256583919544925802514415145152691777559382739584762344376130508398715001788033926769597522065470545737739788143660931015456327669998413087958081641926901716384406849622493818788692472563784812304855696918619358734869972178300038318099455112784249472784496605169012436415660482980608890632391499394220169571809506010019988592935904981620564513424157451757443387112585061346751649192177168481046884887889244433285708763454381638746064935770770045868758758158435287956451501009750580450050644747106174207639379424949329640518236938020501959076307507637115347734796729025883709221505552067373519807837209606514708952546725066423317641705594521958475089347521228725705216919307171313276443562606191716047477337459400162347748238851153948383712945532646827790376014649390678607119353315866011347724041265588331011973445511655874257011026697473085569593936312953924192549306441628567410738300072581098182666687772575054155545236325566922566055504560320874091375435528044262423025583280938494283077344145094552263715955671632545689041655513284378567375198790925260410948102825712886342229828842609536899286928072705830911222053943962495294071955983046177467297586913501840845571291371660318309376708065883121530301713136960799958830089086777183837225786552484518468644186725774692809204208694988576578445971411926823044192063409159689483798048854745932511482369644880827082113031994622259537295100553071977296913734824182445293489415828127950922617341436259678426338952215868677411570005975943312707518686681312382340684313801942208307620238101074648745339523637350266454175465559131753399185026124092018767871100776005407825204441010592530394285696689604945323231155613674959972467694547948326763756130188182799057010435408505988493370376008299009974488884152732692297952291683048232255342743012220511348551576867608981748818130300475372067793664575097347010213189808667893524106088319214903916222974684375309210155150646021807560373623127997844178263957684218187528913395612441894160783714576738542508452723358481257458613494326868211578511438757641822802551176456718921869095938822376249133263669206971250930531569128331650719423604722073447487573072722906541118082086664120481670313147065587346874449919342069228291629145790296932738211618602082098766223670590594503183682696182104840150594312784299472876744895769802826698106392153263576289199946303925067247647361583956591720138623421601937585761510173716846391147480518724161671851792512457681845626301650956260855082380301100014883260072923120218931922882462279238955032180024112353821457039731220175770770026412709809909151668867524337362369180818028167854533727198209702261559981640057981896450714204907464603459519259736200502721365714261740892561888517046027489205755593613621115275734011412741626028535773000607950126694506528271470256345387648676058508459243742067800850929677055889401602103999427964808548765519229592078423875440629951986460715596671722264892689452651384813023069793294219658269901437344279895180984612820591530609787546709321955978503332577092551096765078996180694487437338068309106058812547130474770977792852995019181180572045035043649476786072669831827438418174885527025484243533918639797340659839833399699028118210940584415394411918697345163751506035715644563474421558747538746098415046994038078739304556055305583850534424005062885940650831147935384620684067847370438090919850745221955676264613666657233647665957974828871786503946000033033125627216428146066753462526281705612452414194664658504742234569369638468543070622458979446910820808131414234388653066783427521502263879795459065276936758087279815954059913845256462209255372680067976923828055419276204914434467341851122518360771975411601075132887711997371691617167128266860093732082992547518148658278674743352010967977882332544053727832277626493826948565443171243265522030629938655078765795450614047609878902528326533527256474127671238792859790092033068798751069017428654212501250238764267573844816760015402152248106748679726079698501488963934645613506335561701601942142375208775063373331903780777454501730537046376083226869164450947394872290443497212290380847920075124080375375105306122788690658987840507569300646426988032931710091300431307737423830795887842457257224892858648884784083189551793025678359666724937094331877038298118407464587876261971045205564494476684050602714914009343307548925797858606797527545045283352603134302949615408362358145888725091555841621554027231025721798732399937725072744230949172997572474246714076280436829921456254212852287207425990051187757274472794759651645271791116466619221093156547291703689339848310551467122213723835335308449816569617964008251837494945257451802596236979386399221363109105617229219629796812507527070082890146063704496354824603230792530171598912060326285248141318484452362815009859005796058443326746150952385631161468789490057274102848878694101553203955279040716764774643175745152427952061976397126344666861051465177548819897253554400822709768423471191888577408890821724941446567916729233026974240622359562416370977607333217032724403661286988767792985696556870956589316785509189095478490825843673601821514190803929360271425392886652314303128315826715620949492191290278688782492432830232903801433969118979544954366079849261596479358312192143661970396883488020412991860662580745297573498984198065105722233998656749753243940379872670157498216825378422531246909110327068122389994851135523058502143507371177414872123220883850708648222629751648479049969901294278481398294160016263455414973201423176454076448412943402347263643042767135415788359521841087029660362443394755518668235231919676255194274733327961529635340419141260338052356005759564737017544305282007556726510116350482094304608266550048402311287258735414752199146062077938107390379276594180779344158905890322703269187076833976852274925633876879232357927112981151849986727669338501074747275317981012020321976929739591773377193089249271627137920579130278941799347460016070961248876497981303124202575463532242396671203066597130909797622979011289214927675149211426834099252102733675205465699621636712629390447848621788394600387561173619117578675262679957470370554367477458221213671261447518808880992993528139818957917185266111127712559445367299739723263655729407707316577722559313657743991888447569303845314229667035088738182293742301623529662631609628197727297870346746651148480179047900657202157786517054950695735039252747635261430570390342181589066432709323599629486364903792014621012737728921365809598582337968605049214463184700198774822519848043007254118041790211148877107147999817128586035299824205319444579351360226545302905416529934486828220395771528545385220102658862250757110044302845192613678614976098548823067336393858446672146510280012642439517283925161963410824731793069681861524331618434606180388717236552917788090784897721313796515832009216873829065174658512276309610387639864464544219730129420439559808783614139203148282342623703498299889787612077971443810564969215793043692036451144628996607124620868030747139499748526923729049275132143780147351867271980980921567759897556527641340123095731240157779875012449743680887096467339507916021561972408057185495712071291311053645637953083563964623845960514960410073825684150145709585853139130296176935864095707050268569531955493239862493333388296909265125230032134342032771190387521124365429075138877628083933037011679167169213199081960670005127009772105748737360683755716312168421689901102124278956602821361854173468796315356927257512845250144058425948750567181595304294532438750632879517809021617583829699934296986554921760296222653034425042220636355555821837667590270316440027707311363401564400610299525980449511409737253323182631815850158383744700084896898256691008734428540319742907256191875423177790503789755705448281475665717055809717665072180994896643330206087068619410343325315796534759866370955755461347421437919948390619308583270485612615543856834868459467130199756840991245489159207276105353636880984688155307309681702013393873471602159167896167612605113029582655612711260320664033357871857714226521805823031823101521555789987312409941098040575504175668394881410874281834642817862712839076383397924297853206035946844834289435294485424559877926982999260080704383330539012635870494085756090914796496233161724471181266494098786675543484499856366997448261789697419145223428524338768158484256612003390864138496804145140942320906282967555026714698305081929459733317788174929458765924058101892452646481601915188654302615413736328073049980607891411145316469303692589962528352281945221764618740524983152288317569530071162590552870227670713454579102762328391302169519419660511759285643783181482668908031298651976300651194078816296941589275526748401008663492054701474253077388295257492228906042875563348789246475190778769861189108674628698887285193350819473917425144930595610228260863425389768087135394987003239065420602737312519153807707041864233033732400520068582601312400859261777788425166413609593396061167947431392769694059927197517798966608321332308612682366376762446071680308211980624491279666961899601386721950014978893476722860826015787159116543885438668282239710652458898312524872857080273473502493082477270599853289400203906636565582589860127461885998774059040290778614170022521131176301941587671080103354448320770514762514097530370323147781907201054863911250581111273647461857572156697765839487357028949302204309610901484795021562941717246628105202225435832982701335445857638650691630827902260420687286731803496922436117236796758567721278634099453087467517468300306029854532843304466779545025727495300403141318471183210009879587441279773970797974217965374041624505650760549408968524259312996143044641617672210308782176039498229422787577251493009080853510250769903820170393665938654472965804940421322126666118920161289598822335048215117992762329084207801386803497755293134853281190859305052357979053807854828978705308051039156015501728043410059175714818747594239035485631770246791251070580572592982736262142644546462022656908853669672313785005533110193227204660310111734653756580634646298710453755918977494674221120558858826551744474138526771309829083317108232877603367990500620733564594071228961580681192971246160610898184616313173148876384138730547734341071620516063726036062995416408196076570620061403463976556077222463943618540036904611647444228753640796911957037921845075411111525990712151821912963737820328533283883130420459759108031450563931610558251632788739627956809320133628458458107220243089323618923852119833190804596783502528568993062232730215292883776002729558128157807382708348524427727833783035937107211775517271708634051814329483054974396117992872651946994681337787507647552918678572275521797225807871137959817780906131350277828693479365809465300005269028807393293454396555533974312493663623845600027185550837697129471976976243217594029170647918307538363854274227648160654978803566306996666243599517671345851237709340093669042125881440945003748610637061655965643539478465090691518442529482758171836086259819085903282782506097053140023269680684714751013742672550938544217367772960475129901652128231185950235473096731173885735905064223221102480343871126069674498879608747311966066506690087716719320183676599712998437308089272689313972781550589252737244524363850491682969356181448357772316459910291617716651590877551312646505695548136547974670674594714359598926963130961896032854874783565075998705391867170529537651713895843829491428179491325204356681103149779738240577061838876235344187327979350474901948568823209511638467723252911814568874807175831259295512033145337382346578661680332811357725224865869242833700998393468368853911810761052284131016802137154880694198360320332054186152170249521634840820125942519427885312423634405347701203966843123728304229467552197948687670440186440567827234103692160069587066772435834940146279746394175281362347869613676274629387445021828502120460209452108312167093409423522724583848691909002915382498415599374842858720977416482442434614498752882638519553579643754174774672351278002004552796519119541575332873172727278417324682040987208412687070310370880412869694765674194461736331674554197899563529684597329581525725945139117111434175325957216171434353402728228424109078025013278740228941852068750407277001571735000776078290413730649607096142205449096647897378308545673964675825568537671635906840157243887189783810392212010150319364014055777737626104061919375065604095826565443752905718752486613266790707728998748422314299298433220658668167423026865886121575752409725317393584084605412083474044973981202167413280281327884894619440263221158394144599713985078153564457197443543958401075505280282729756657766801724875577975298501223895445773552445920745462392400370283982740384335226578260659270380564650703656496391149623150318883132360159200632851340114324559985420106862938263017844521016043444339995190125243328220509028945252430317971429084109071189759511672989113809988287404281192579429713189186897454557154358287266541770340145392888402806110209513258891920393284107804469398580690401520323209553892512848355457216373110523764332172962941729636435956302623596096825890368143126002629039867439785371110759186460873280291317812033264722058963177516418903120804015118031887958021113103711968044882848403913123137095555721051802616817022144761271890283767915787769345992945278109777371967693498295087216746164873671927813774189582002800111268255589557618184299552519780785485275451565402821490827858824234774869505814172184115223476805735597830142362374839540267887079272902515869285143395340424635335563778331401220363175453186414468564645083134890138219275934110228474418444552779869631151155676991377862752661985015319880167188730580190716876841296648520006975357535060401075690822906377115567714660558758673708001086464278047766067593950708917031142053124816939816508527802824897874565967634893953434310971303424963532067582984398648409140682213391767406677481257659873599903622810851594492069811651645770642547180633784947633611757663532624430903108163141346220454262975407718693486094470737276366363289592980509498463973702398120767850257113627294755972715948211549605367575659859646774572556287940023005257933664744296074913748891393364307333891180461680951140226130738629234938108359377805130037392606964339801113430692413878302721229373117724885722839544063563107542781943795278389759492957808905849461570835329610536607600257366891265648330396053659860392011042917037129325467238099291373302247115244073660847909049242793179195931787515669559545387179026948669816205941774309810987229211403931319069977265975550510887994411428174384075020038001484208058509763354186259180058918656315757986705822404206859642402079142279385061896251451719512723481122437293636389567375031312147816519674439177610637615460643685079255693807075517012204087290025143960902979132264471194859976214456991386440895888040468999719807592315517884533708443403879750564592111221233593061529872881923425548891788268359772359731774795633305261820466085042409475689914265890414967194925799751770495933868494462162192783696875669476608512190688231039834979336953291159044404182743888342161550447756867657614235025139030319245460195791429420376460026479088046430379580342780737170036549256350606034946439965522940939012592518274180726053071680589837477793966644408490268395179809949191953766574446469707551059724003407320711689368168371223097974118513596604214545812470192533721604360526262948591553682229102072609654764072586085021367217601847603092599131003643586615825481580360386753913791105472575596819717113786360888452574440224813411558578513552362808941079940948789146830741560858435906607296600921965563765104508261507995244184300770895120130515653431281528450903605426542152404285999455062166381535946912588569829579801278274229863341047113446738084871715376377619167130767239427128386900273746066146167782465021255165576624941553145459242526228171932766826208126647495767520922696569061665444794754163096637879051842312829774546233767314507832660923272219456874999393555348046183369382272511637517363738454604544296230809526896307441209642002597231726253264784747126869784284496698296961090194524719453590494820036773465222421749784799113140854367337786788521532271700250642615174448219902159415750859984109137401620947463993438759911597032141847115696225666830862597075413956593204253511778974491728403097817946744102671946486510273085018368459392319490229335980747646668923387281049215113712805049876629236312241651866211024592656376368114768776621077615737874773648826562666727823020636041005837199810731442068939711173931560634404912201884539271213328320670624180421418718314558424470811480638057744754333453774115851713589181724724582445435052192868138202509807140230446157443881324527198389552154300706799066847489523226790966833604484779866475052542643254540221024860103162264444134334930649313766119457863514165677055233332262143385209314795790648907737214188860834831352037146276729501552255300850137454947482935185998096694799316388035790136957464109647410982254866746306477560622585080095786636280018596649688618703707854210041600566771217661584354888723819001057713357863204863631886216430299279073434001332040505765074700745016958816199604423211237748773055632403804509977417689918477995093649025241274126280513114352997555766962076360552130796054037060048615539116170390500621996786402382571643126929538215790468124396460240294773784386935214938109136584485251266608962383545698601977518268200226420749739975475361414649207027488190482087952804977784195008352958564388872714632670384088718464876667943724604779407844887353706422592135827886009270777201678859623655411251627125818132356354493211443842245532165057292847449134180870683876563569485897369545109069363702496921451591372326110435408185848694191998877461662504652559264143385722191962158485807842492257676772599393086361292916129723298778761374872453012980544151183547980102130639867308443574430918829109790864974851368716801329511150685105923229839135668224804635792175924738771000755932478694556534774471943988069910773702734049414199386841379142088399604102050287897372342470235853245571558646941112805354052976597256618009230414495596296332144999183733778186107900773511891330036385535842261636712888782173338890645843138431661428565427433406749454773211874848820294840147772052205280658755041081887712543356419281720509942326751579256520928419686601905483886335499420233112855473452829230707625265490422628117559399586750421497627561516106512382910833758211241982358581622623851937067491438903167251096164553520860041733731402000239054833013790096538089983172019212923040213166033580874521856306521721833567408259907551635843243244535839038685964799934013412157465956540418561347164806068643607178133773531452809583760067155662720495928699772380691320855290660871407920221707233278395252821041881256224567942357378333436190509636418777379560178853132340756555327266996843543165630450952937512158952992336574620215471155484592596777361627091652522736669595099333371500931419845375099675034019212587353858085030279869417126778718500701394113860041633265033323267001383128541541663141481866474717438046193783237902016571088333110876081809842247888531064631283578036552154801142197888427528966377425177866159161902452094758744721802445607304086935011522831955478615735713673105192419542027448418946757784000681048453753736182312636993059886807380779528927112594817342050949845292357363189633119415102199212074223785686366530965472502325864687276550224397964023311158101172813976612382821358987943079202888935489579271072928268652400170524243521645473281129990880287938250364629750609817617549406761422535737805305192359166026867690925429160873995738950259578095358674085182629465152188762298419918364862470217538064908657751200396539374286623077154830858058702677343553985035227016738835897031628089828849338536215436151246411949061529929765539805248475587718917993022063359636568141141692290202902025056863565730511854298645266284750473193700739500686126126664092823714641761035995886370128320838722090401851937956335219278842329138072465850224603370830575750163215972314822956779156916049089094841630727793281524746092280882185158281621182047437268283463001966311413935990029120013944458594162989742476096187374828060346760016531399540913321021986269250141066274786314103196917908090694574113030794368170849340899289035176765546255420200836926615689605427795300892431566626513259421453636335953758240067484736222922199234191208918441862018534695529284936345807134587981563199295582543482453338014101684450079563090927552480628476150833476126830185359279886239448766973138459402384737351841933384482889348453843267684880619615254811384201432906971171681704136691713460005068852603143149009884838298199358484949408323366201573609944260928757010456222563267513293009004051898656780833545858429536867554620605808990170813536574093548179132032769408707621393654249198234589283802062272767917937506270084500689480311201362248515039098358613334893501980784832784435676749810682370588818857853770370267367453465663050264212667138469460807037403265793708625502825088661673174617546996440744363480652134335629447661358780306522026705531636453109623696208138459937032766054458522467383465523009755084642034070293451149707227575333794318263374288697766428765293674766602099405934837038918696016476049830741443450680592669742357286473729342866617068966082760937018658536247144766243781756191388857720654188452464910353923307512057442975243794735357784488621793970319122315204389766195913437876935991156371704018956323683184090055376289791165698986028065458546169293310387591300476030675532860759086318293271267141505652276492324167516964108199564636862346491160797703633792234047825472816544293463880959672455395406078651467949086717076712414741341984290922414905988744513226476566744300957512169460816814948556672042462042618064959507057514535218776412343400355025957376744260333789485189455654918833554589297881584876726746697224491040511848538812496469230363262540628121718586654263372429259448584045567671169817631783250643555167229076996772509435897771257596279515215916339648881777682163486492769957461979351778880167736426644631792848699481395396367200506278126350891416408735634870897968122030849900238235486731832252871573239308091214868041929293132036857548428589365499934951663818919758112217117865442729828104785175930332958129465508950681040308782468047203339804964784123719990204040701852624436370798178185147677109014064441698853857603695399837140124208134605409129759814418477019004976088791285453976290440702841500111407233348873784439362263192070072646207179729467644317313499523131471443953289329925216080622307526391172477358724525110806373927139487096953819017549397812210566771624824150733610383081779751922601072949517114043487407870685074970582547185356290494473006659231650772632476106026740612299646990075095962960787838719812213738264605449718666617615268781928165026293459215597780175612091768293228498561213909407911574161693165815515027208982744077364459060125595825953201191589481232772198572962484170992842822480284280629129525240470257679200979449546928378410652443064173044975835108956046128482178836648287200927705410356188583331980833003267838042577343085276135329159772273923709913457068708417253164650015018717054744714483814225271144034069719972901806939188894953826907608150276717955366372766135387277050787582285762027453403099424798992405893786267416794311031055430645319321981573809558742509693071600153302733347631365387133447980825464442585704178836386631108946401177998219278842027391891316875624968689078361810854987831295773560746872272626490924109679245261855438654703985772325920447176107317486921138250076178701362260952064396479143912153384291989337259830222802489583659502770188652607192267617787730290462821997942038344060644046704147286474166555778438814368515625957793507082347846140812925787550901396713742753332724680994236194346442770809271080789265484416730300435793871291848404949214585885027118798649811149442983045097802469382902264270157178412495521680838163641220503722965112016958671946282500376308684158435464711951118871969695304707756600057904990534749202971542837373678853931492250067877746919989964849404961482738853751013192803744580851285674468263292111118939871929097298323038931126109774717200933306803936310548530065352240605138360390174663987135343207246732819662966411799480899157110528831683278147327426470771694094197584567946574812614869260038592916537446375985631983534259860851259397927192484114803178950486477032294462523874801056550898097980146026770035420883275363460650212887720291072570928415760764210921442407743926949567616883462484569834340812612083038893471793772788067376666798653717802763006073701264580150243991715744966713953073962941516853330103728002849392763675283245016941749937099381828635865944706793814820271937710996259192819418141195827938546060642598219328972416117952129952697191731822625797451569634887997129324233046714461613870989656427837601310805033764126672993645339674256928282550292517629389169380201323818717265383991186249999303223752844039980425933300835023003622385361233971556869529470483559639861211050689772007902643043031184784623843314302257944429887199470804784163425622339608398919696351818407461037012635482183769143339013452870609783692996238199081970669252981598422012370378830946035639710534192499734741754493356428933878357037783099870177981013831801362002687254270116532166980153462966193321616714096078435526676340953324638195891318685627443231390257949783239212928967290714820349302548158534790121701035279525867399691299856717918308854714217598751825250108259558851896499125468825094900945230442575617298007967409398641853116696281187900985346709956555113756910960571521403625042594592825685533027358338604196042072900845441850463240823993594403654085064777479646632636236979928173509386000183516571542481882536514858282163958158947431322296126937753728403766067268389560121453966471967760272332513837152007595287801495720619762300335956263235293177576164118889931729940414964172226196252451192414582167981237011215444230051829778386805982962213330864665132673771341094591619187850376678768012916718554449371789753941892452799753890517343527080871030780048814789523227405616909964774565345310477713707594287946022687400979626713830775328699263080695393433262868471876770178311333426224371433543461394958662646598117925515636945833323271665554219310878671648283059337124040896714688163638778366784192125268288586162368519749246780233219526279266403769826309422491757502330829817007294635764206885828762397219891295232134947187542495186168177731239267219008088610227046958738652866381774526733690049373517965995636473351194825584571786424770106562365722674390467446068317991330411345378970178320932592210642260747815047679520669657520540114858709206593003701804862910479755869990040035059341492868890032070351358443805019473467370330816694487537051705539344157034913256405435548046282199698259825669307683262172419019803133539092217906064229717860595715815353603266294618314922979519574523333543812379115767565739334049269272131812223015650426844705423925893204075415130755431914554280622610647744554514637204284236079068789635068965109212727586171614505235600875667707925639708176214287072530540993150636692091247776515240683928529587313569010881935143153771367288015785226797917454150506873329316305189197096405605136058624301810910694447061580189696700449289339778145267295689597028352298394282033550307664423863305942265174066488316040930909737165434988390395850091016661044188013427091733721355468681518685935046013259417174268380632087872735262728105928730471530445826529197210237749681662598904275240854818044073702993986686457953784529083175163695087309648854741116429850152263343409408334510679778906119787185231070272049201807413661959813315151108195622676045875488823288334650976730984731599109108696792258259078623817319900177696723893697698568128785811382713276197031091032425243395414927841154801526579604186286751262589792311619706012206889307713050517841640859930607849696823998569320704183623982673732697076551238537643916243230984918676048926944833973668953010903882127522118835507278820556307968775221952922845459727680048670160970983044797861021998255900408548083502864673557326590758055624010325034587498226437943455720907588364683721130235049456298131553968952729940950024807958514887804244586799300935083357071293750365596650624786237192150494635358394772828847462047947815716615725772332488539966948018352641391689235522073790284572121427113473157359724897478097195722793116004784420470792298898865884630058847396207551132640239705067707057874042059621698432338161901364916637056696151351869797659655177542712454139006533635980360592139832114516319335586601380789110461873577740476807963077425189233395770610324734920980033251326794801296723422945010643459688429520756395434466207282775443659545515853287164542137838955354025925431864441254237445605513012137779240661479194804696574574996141540447640411034032738633048790456586859216456183258794254752115721603465386462644743869383163911563377681821231592972212504579621785979197359769359008123167376940174422349410124638569011500863091963967370172557784232295652897366720227706121878973552775379289420725607963694648501173221047018973820511786223809575689908768792206921418831062107184526683396723733673387703135551949838392952604196833733331027147052618433318880728363317833392370469344394285376995679599545099445530963907785382623371210170025287110558687116213359795334684215870066291269497138479530032950747231867413837990769387842999658137484002482175548162004982416884453055164762502278325973694919893079172958107522888530957638494920390701469448957621435306792070465303744384742699792398613882924415494352381263818485626094831848779906858457720430774268253711624730310601374885588911705911049607769068897165663926864347915315056711336428877335433831351965046270432007132913749989487040170204805578750208839148028152128155418792777345337852368728796885816665602954659736550517686261892044142990703403568126408646148082208192568693686163934112738071281757109245702691437658611676320240831528125891860298621629892306788968276739393150959683387449168674926633261990814911956366722687565313613447106616997921626687400037953600154291929737709826875126814444528952801971386065375299496387456944313911968402494456741383491799923131661257635415866443458652619231735565899560167938810326896754357027525516009881385368094635990343855940453712882156863332402394187806788643681025789854071337286244130885410263595478221682260481514860482885408232668928807253281310258687864941598004377665263179823370480408780280751589125086456772089208224221381400216263635210333599735963690347727136227772652972855680802981407503131690920773733480669203684955668756234713196684707485732052182152434129101032646538751603720042100199157817294501176448918417201301952621090296926663979350772795680098926829014763889961967612345555395630209608430273826066269869016739335305930357673037091287140860266254277903007121105241917222941942786574144654514681625523288983776356953322152617759206667151390658058514752736895657855064501302103154203121865475274024450774730435954395238067844374334129740555704833619830279821182806851177468586979861393768573891644072384692656801575058837057163236720958538870344730224225884910909776185884957873422510668743317575713046201413069802884568416569655922229606572094317483337623813063797769003520921601582543095297384927216444952041162857278022654779672991269438259067508267258733435544045611942101289835183071616796960534425186300199801195805543937081204501872626845743176886676625413651924775377523293218389481598981637091115641926532364723626839861122661473482591316911766153366757610931415247787900530272699070770959959883501495118780208143959626124347844488956336629703984014691446953403273691019114844095768574532905710517438028705006091676231319217614201533362704730202802001332317427952201638592901090872324323213518110855341074115423818911517689737687827570017182518868110187360267739126195054561351255090754052465607516599680167575827405917803113497051523350406975277558331606578235980180358745378300413115825895221171965217667775978753099851529045444138628937103053538371082473843678153919264729435319824657030534011135038574223065063071899415951664501609992768899424775503295493987805100449643539724779002426104705828364420239910546784699525606703882467300623314920455784330561173836075378085225266151624923098946539516169883376926218108201439744872865133789435317869994054550316060218443199145997233907742311988652248776909580811197466363308597188717644823902360150799117104852787254506667575870244368388179786373757706278931202455718862850934662625603295336523736097118830528510947210534804222801996039643952738076615463480167484076336380321113784485595993125851648622594533839533570660342329597626996619794766819909659148446469127731977062554215622794661770844867168397226187935275867113181843218185742536881492408617040575570512151900226086327583389635042417538404517090467803573584101030161166993326495914760615224156001783712022635443997025180106253171737978978281358871599186888647690495348738254935526209360275318303439055105504292906610707101660558356855512324758873735394984638397412498572096721977282394718323027866285672732300902881918828514231811889705508567540446871494408106808484084134178428026643706531117506586690075264798141825839343725788872332724951502725026730180904336044705819419187692392646559090243661623804834106583701026798072876661382880975589963380525290131011708694242688615193712029461937214910716988881549791376289260754079035612726210862241121106571253796604098507898746173933209007841489120983092252832811418821615584468438572253518810989050052967991323655647581731657041846570457224770209468306059103971109505344595762985991111172762330879159191074916777478517362901409309001417895349379460893407253348731221211995762023349729893629942725466193494964035614589915360916929734647027338633055547301231840498330640589371385010576073376885302635632041816651073274687494908002844708154011236168911935336274995085413418652225723199332033353249688401105474948952640571961020944874145653037100234330667190492180456550264723808892661932938587400934651796976654013981793346478988158814574071624236178408715076530941993114970900836433697071051613329531038721605326998040870952068896218763921960273480915792739650680888273036250670702564749372232240116274393471302935467647530110105390187255568655266936747164311724446242036688228066426757763972497411039833406448097515067075883778406634508926268928129942537110411478436640886461247175339057682431085872030937923923639508906017091129446789132852377794290746000994229921980774555335094585249955993252151934662602801175076893409103524091190308496231724970828138986462728726898770945535592573542270749360990904620584335163926714872130815661134301526282655711024667413884738974173986241635206857125077652849515899515337134126900895427620039198581940596616594417297858358535878268367436881926803593509360980238196558459250335115850204706636022979009134859833236183332868281312402872382399258088358652913582094062846837328988887014229407409084877738129500851149002435880466872478176722564218208071014346170904108625807690480742961242984350597112850338176012509744587621116506479852680180332248118590846751173141284216823109977589887987844332259061059259013592963809493481523130642155398580220569630976384599962467878208296866003418678518242211945170404819886819393859438018822622154177652267141980310748318989680218454165679596613188254939672699910279412579829537966457170587317624182804371403591718259377571382714661375122127303216665891644212040246026797961725654718639887003720454110516449351232296715586973420820852345408128961580725141592328219352540002063838488738900302901969628505811421313457061893563560416474428633536642585167430012501421912952124679609247836946600127061288196676559184974535463044195126651591477624179777401052175880909503459950052935728715026755284417084882062595613324806915175162732517731432768372358196822745163378457941141648632032688816913778276915784912486051224887040341358060342361560809516509559574748538495634175739589062914594438646194563899495344569576293474409134697752132937135332404717479250794401051432259436253636245426194436406540679979007172602248212423970534525155122453436062768841611692622350919928919630601952077138990767288622602527083530998251724010711616321363838442312309750499443441120386369420668767118303021151996167092377795500374031692822841965192535491206575802095116493298498422484262193036245011555890667589882310883595418338043486109542983180174700819738743339336716376753168907371167229441191557227665014978386861791408085914306474670257196182808007153381864271458400045718894217539935414819102015931762148670454252806910469569668582157579085335206745244815910726827343911274529262303635237762627945685760861566977752329708355269904797711001514310284784985217169957792166468982732475868465588220607151711720708396531177676088500558704762834479242403988327087843248328749074801643558969756040514066359569985124934769076919598316376218444014052391720369484010795874344071250023154534308536854863735575726038727019884375887957688925068995388303662014646808966455881744726286945935879248304577334354907195272130363993051049047861419918244979673932547636857801350196979630421800844024766469505587836434160492317466131747971906203806425791094695411889717960081430767810169624007386364919441861829168473294527487332288279718402856929251077880576797695567893178314161663711107232402180480145499105055395279285800308348393020420668810651437360990553794489631459903345250979331585457026992053579451675245668101026055622642056261800639180356659915306071601255540362831890927640585129742198028244273666579560607306379530441566819380822774155022187198963470842176012717400332830711311187481373277572684957445153845286075194244586121580126688180613267924031174376310046578365826222055295141003749214300221264828446419417815914482481761568088332965670535486089481429474674125659508952638957353057684289465953563288366302885082610983965406534379712901391920943612264042426450892592427431049351269058892349453911694517706059610337247086998626143944870027264507638531606651079845721018647479942018683975370016068457762062611861674274643505803977480991541197521990488250928027756625594266184116154809221537337064320729620417745790480491648188430971867831514323030534305438076441802790244070286851434057696394998184504627082460952310517856714371993009340252231571257184551502214594777034171003556285416196243213868994910755070804730176646884210804093225704957718551239407689297206688828450895555719895180581756669281841238889651605008501592317171168240103618508834479671080527676696512675407649735905374121120898674135453970222764489508549648446524300081044182058060038947225793015382392194906178855385139332682813360300902152262200301614019006151573589643565785682582414785588352248098154170844635646471292624067725543099173188123888795184853725977306802371705594565695234998150176133826515815622856274648193566304722749866515191351921135470828756561877496792096434991220757676893377209704337689963610667455019207914938792639094083899867898721890386685437014836847683290491206054318558499081001894471154402361544934289292970474600063368647508997532023240110544522813428202528744298428994603928630518846438491713678899103455318853765106152347685845398734026696373039113743074639551875192186495859866299886436269646498291479009053254210477437386914906395912981455412738982707761577595634743858514634216556237450593635948308798382451131541345355011306454073921467868815418440602007463981210178320540861617421733197809070245469723442653230200123090647009297426922075600821682941582615105985300299600040663266456675053616337681862908820862008770104613735119674147262351674160558172961075712398866958838471647966639654435156483210998007238999680486811523786097706472251310224826007489653808985176339652449960091415929347093006024192740099477837113277387640476951218127764919944261142140680019424184877192768197627784597089699798985766733541578668317938589896710854294229125816527770457336327406706757456145278172419972021425304118404002400123361012164804904719622373342682667452921538526781022669150672987590929326616777702214821150254768291250459737444547602230099625613262286045081825707891862934826155583137768499685159653429335841012509347327279769364277272548002893638774505473220802825835568639699844667860919126620951430823725286179964025468782826603624480626403771684152996634675768611514852671317312697156381507490111755321988939945547456445418791085654178658402225508714284764578979673069002471591214892224866134862707027240529244064074372750872608589923815916231275604578597987717424171115321627820931288129294726120251852727083935565368444541563949824866387718266920623049110273278442248421349475068590327709952075723791586988180877185915660563404765221905490300700820995887523430737805616893137646774438259139672011416269655469455425373253081359749478491458062096519769585741719714416611097215349344397821261142167289034911621033322706081868260637331158281788593237412393806706520329288503509021157109754890671507796001468667892555230731637775050581745297356228189180345560982276484208907975510345566851252650513014350978008535622968626192218757720696261081549951311369402966234402725075788850020324821581378623212601857793053163201261431178666391836962412491562628045685566334699896727292997969356454947170701924112245309956639297004964862382926634901284462907890172078313445054911822429500605999211392822897558394800416206947408737729701397468304524335909415516811833684902259990759901661247908040477572293746869973405752932333167689394563502045396493739987938387726562734646807275564659871793780772444874391923901393448392220605229788987646967917272659053069173003699456868152208259507656986543551272174531081810791161968688032222404382265026460398165654419216800586555981228989720807422337431065790155930092129599838485446229818088551032476434022821263263524393562499221175371225475779459076215118295719059852676346763952583490331640006196205014552410723557290933395207128542073126757179598628387721460811886991723047358394597592829574466589446443188979895811486226143887570857478286370330311719950205436262769393004970237968409292846368030464230572098966069509474913310389001131259459552849470249602403109725313910069053412724403139654365794274993347322730605442037846517275594248118904603831936365691166995946663047269773473552690846440003812297013748348492781891253030789491894969728990510704737216957952285608415155055066592931842045406816734077966391456995983998676725249221682498663056038841887186925004408674355832317685134976054690302570089737966232867726810350207011303406878989579213850172202117346196008780305960344683338586030056631697348741645043508483445264927408118837235265320823616898445133231881055477681334327142298130123715719794409152595850908229184601721208526810271526272650840695962072001580801658506108485391231897540188623144235440869425012564502400701712134451032561564089146362038513778391505591441717658755796280303614646713151385011568016446272366214882856252435371701926033018674357526799800079126189198839037766959176601092130573731270977963620612971104768168059877897308372497493435806059850792320751383700906865595873995984245197981086229859834645419951248477748912381021555881991734594271056114218480698950546990719134937913517903775760224465666454263851112747910135101204568650262281037469350962208594303224736618580634769154239567191728162873098201479219070891195061875698014228923113958235118372059222755239974089580944346170240039281565189278728130054407085968042024039814563333143958907835944820049687070222547765781846742007770800956752385946268248094638744735496570619976030906111465609897604896543926416115518704584252769107683009489781643572918343444268123974193121836950252328754625446335414663750157381279846899397663385509318889221451760979761461798803616041307152220707629977527057067348734354917215822028571859594313455149297766501664725840069240713804412743392266827199208918106917819160584147986153279477063309843048634080377015879532851536652507706376248655484013803845640323645734426119442528278858265029500001454684454285724536635884500375549473517195308370889904939933004712704665289886157565714306973994502057573238042421805221033008472872418236114582477549940215778489746564240574561193813892340351895600511774696815668846821431759611498815272291416498476575521869893154538388181980008717556211842469402272318042408851367848978746806720537476147003584320221669301037932048491845620018015568695482940345148445028125748669419646044658551783317130913875051270737272991252723703085432140556984215312508676641499329306313394482326043832256388227674363733902088479912582154392751923873548735494127702856724215291382120012288077232636622468972499157641115938550757338742412955432636648461560259537981905872401661835504702116119862162583223939992530519314920482777844712675726777878363087614975144050904634731397211066958002244804486296967172382956245062698122090902276059655915051552506035829243286161025810640514620918680832403460668955521896970285296189614343444371981359360914473208856068602310985317241345163786849428509909033632361771376787156014693037809043395980842370347666746594836294343341192233301439177232448564360912168690980752989963860109488438838858764945809013977240271624931831526066533091940972287609635729040461408890529494940638697063423192183704946705745888881717527445448626867544325094608450775694133166313478400975617182405891290960471345895699178222142916941896562723266840076781597359307302066976258290019744269638469552337676212566598566715002711302535309487786367607358917283645057896709162890041644467559773280812796412282128515406761696891594070532322370790051755945362364502600800201821632355557253605638537671140183856659331976153259230965906638512666397650403928480883636079645802404411117625287905367234999635301472437267399292845894743365799675641091606288561539106904535515613388655238213890435937698346063966470124844363306832830280524785037425816473599600021909046038602924969782897801334993688399632626480302691315333886639596628302399142468739665276980079239629775291568265790239149306301637826284555488914921788601677390351681039842210017052753762888621420805433469951717016489301370095286234162824672766280213791461863875026183086139887148314133644048809609502767321282264178498552373795195873610056440303742243201671414817750102336200865209696803674271332920034764224972315994573090370887335033704122752807233908088424662666741709479104522678760320051155972138005380297938924480700105639924303800447567350605424448775637829100255285858454112615243470958353563290533330081831572052081341676264085883910817741512442714907258855401325926106904598020022649122145062991006584965015713260678976351180579174882695244042869674703320515821160633254146980259500948584533521732796517417677278013130045295402954320357810077497329327828385326766412121074607823161795500784376384516597157039868746829595355145590588248201190366546899965041899934346194373547490186907355844848337487585793361106924878333913589092978796873209334628787903586215482877188266771893267663339981126716989293788896186859950896975691963335814177151170327573677151165917538830262250110414423776003209627983356026046117718928448547483708130058763801994747199671141834886676447833347543309872138601091806057531905225185032048029028206995158666378445449637800147624568945819327711548865621482102310465213849928030163749773631470302693730779922541199206390859193666719910878474955089058027967245383046244929774741387275259805235636546216740861712703633723265555140963725045366859607489884990603061979772087687168794445887075088498942891914328616380782006870987396638524245701875642877698492073473612488225858861713321407387731553522283949066597162947623000400257135928761488987621954727761346366997876049450055401673180009820497317066499828741426508673918519155514256551064343037589816876763078729268449933082827035660122153908265949834353521025711954075741183529595197286617458101349868470563354278017715881985780012557059844415068614687534396864346583905982396646162421162322894868318201227043472829161666765386753575602780129056063528673459614249871537362098248499693646594433185852173289001331731691524686508521242255317668002621457202934481275609670960881481984335196546073830761453845731390292596381480415905100502913762121625833350275188732253611557241540659598826331287061799152130430584945606970764660385405879164755400629132709711719034652173611744389673402545888208455695144251370763568619172348449476528016336599745755945578457377236349673637791249857502983613304202894707328404073090689930111095773369995964387992166063482394331479850463095417452750216299509585440228008643700551849465602783133586193957047846885534951936842636398084811176348215148217363791150358884896079162772856591058833835259525974898000935911948348770221963137848376577258087326271278012669862330434148214112442008483237621142987846252295477052713954815924691440096337668024504016845862614528373851836110196859290382989120397534330902056772462050602273044266551637017188918011636599498782630508923541525808995357206813124404466168560446455479141542346851744346310530522604138527542170953824893755675260956863252502030520583895893035010866548335883458735093914144498860991995742350572848662785275797129145012117616660585562905183334223185121697278942573766422336118645308879552952503521493504316475060179382463900659015752558854568434551980023207366754816610808896382745142103869631893601828987686356347803565659022568613190243534033205197897893425820377232516009575589168079814859021421380373911848793828913738092905669490473597009317605631974099618608839387750798439512215636585805604565259257536827720875569403444344555938495398476551536527977539149519276133471861485540661706848105328381775192698062278160462017428128775941474646310965945594633941251443852081959160716828844291378009975591106628570781362677652319942864093681096257351642903611228733677539122746696389561629585290995578779947908201852191560975627641394928698957093414902286371209351089733359719611221100067403367686669710639216427155860706470128335084855417532176025809249667011735868450103574183364834929916137277684212884549902258883589489567651856198465927176103073818456505120366053019258702040141088237127680476223690510597049245552365633095846255611042450203793932605944358623154306165893190273594570053714542788978700563474377910126117586424215022254393415196581303170637079954073817675044811418842385483398500974024967517582280280382157787211194114869331360083748732132315356006799956471696018532272941462872201348896901461202729863346033639284556400259304440677229470762987613502162271056958338414142410646828133963699656000226495089903604513171406287762286715439141071436558802417771243875696681087850454682973296080522679031529943106213993281483639655764983168538526403839214174973550046764777699333283606160300220279289544927656230728285655502315235445775843625816306983303928757010862705819962710702605395790807903082034155824243887138129247396912155362337037506839211512253166174505013311330588734010609924411494733334629072056332252819247105369669927427001141063249813168179150030646623152611603295942763229863537838453141452518481388165651568008728041621613718315878516543897156003612660678153979168290857828625532050726672751748387874220724444575752430378589081088161773419582685949180416256675971701103779043243730841248092293564372177619196930582154967204809811660983720926633719088845570332788608853783104537239068984826732616196772818972617301654297470638076994642122147011680303353458495480018662882488523043248922023654420931759193525104239763873569714163682869436327795438864143681360909276087824119938542036893765170724755691079522446211300596445025584867677461251347068065520497673745704435350907741964019128508337473728981187257889108792651166084317333640338282278145278774305211304050938516349533075831934152960471723903518721507298185964982768080186248232660200932807381743159858779679299977707991609035951586976024083757512633831069121787680922021744030179729340898238484706180987871012968819370545208268901405402041776923210524272901677590956184708371955358378804544164733306801198127473410074456166185151787328955499750888020422526430614730781789059287202383745919797537424496490517132931244262956716437893830427201388678981459448400076166099368696466805680206067486515946283874389617835120986682340053658709772762646536395049233076311483112551855513802787425446538839190590724874319556958057102521706879361403993752964069360893821293734751371161205872705801382608048740920030369537525062951149827410784340442099601390932439527116323754002028503583572996182837602273288964094061914616446374690908016172018679223065067380121147316498358946049217995003563271280996082174009163984283385708373798796218120860793355192824616273449310109453483354890001830574418056123627055586681296632577553220853315755107509449268591563711596004983285592695410226828879406711360832645908194255963570222147827105176255259010211835344946052460162892800231413323292951302291349854831458681877287279911163403169212158682463232963249871686461115839730837827717826845094107210111933635418051744624148737267594531496292183434515909963881478073058240440985121837084724714893027463279069594437938741332581679050784062818893900544655341265131285515360317334182548225267354648406663768533794403996513555282609971393963547940905648145218818938050198340923712659115873490371376207911506483983565164984615831933748744995019092203328433363433076317160683339208760516622637334469786422308324115720702611667473594452934430674125935745065035190320356173090763017837396982640718983494101809887740590115515149052393169599914311890572922626044587396620663225304503688925105332023572184494289074426121920409013242311083920868524740244077857620393339139728106252867014959379362692604892295521722445975869750080615862868203838521698653289161945277741834963880936522427519207368179783017765796799451551859330062350505687995317345438668065921001960639345419275983277313995637831258942056861472706225552826573541526658609150576145754933507128714327513557630204411923471394260084793465253005475834343795108623146330230028196417964331700997909640829333453217801551672080121270511929309954853072673615930422503830036330626924264988635272162844697709129032017064144282750565994351362170377324062493322404283814341043892667657415216090430818832676581058778382677104560839911463018753057977671140197028211129281887309756086373204205376602379350120070179083636831552009573349104248383024467357500231709506516939928241062621951801383581493836250737333928386838468010344206012199652751082198177772283761210854219712617421070179491755534550020401966359686117481656745826415931121273957760554884211069934603210099750242299980606799649765572253710705835336200720623164865841592643472076048610401692908586821961412042093329717266614246651317373992236566858566985204926611675339729275515435659436994323673321727550175262466972442419663525812849232533180157568651374298834760205364833233837295009184885535413204232173371872725875866807979372024983026808186551936003702522966182530565612615624334595947578144589204323051012477542833211330927044182645938096513750330472087854443407351387922771662099324432046380861558914952165076494265480452629120676398590517125159455187054012489711731898327071212536271265628413966704868885311183906290682239968267283368954195883002138661397598205681100328345664997873903330956440099690539496364697173731259651848050998436372212297309996233471349667164521443088510862775406917637529819661565941431351960519058462699736282648870440671389019530297980584427795215571881401325468471884065258420597792187673733907386439393575175722239353432309399268683784782386987847419931197013511761420986533985613730934214108859594313962171673740557774536678317097642129237317032971804607517674532194795238711716050681027672875099500057452203740009246734646061543768598281138458708311991184222613179991440922599938065132794969234344344585662002054294300558528214949814370317317685924011413585874741874416039135090167870772577596995789430259803441304734438354940138978091818649096550554916765910097578946041884051030893866957450206487865517336684535469596302558098309446352164705896231326103153363979253771663759803523135521239306892618512409725475215530080915260643107982781118781898342949522539485974141404332847342733641242785381245281164223770783998674998585361810579187570713487145796455526529612766433004070088166302334791507545802647208052777619258555742277365659599327234952072613324766759300306652325561087463295522028583150630436819311434079080226237528155064239850310777104799296520610268664862600857484267423241953104468251332910089769469601323528820667756495543349960278500430309489972512027870699291335643897402509209012760098506878511387124390912535461174735999686038148686274393616435383291394505780781870481609551095795132214489935620887048452604947620000547162417002363414103053404015384265518847197000488963116854784393335121966718985859637613022433335096612666784097187081375748399727350882712867209295302063075646435766385818749912251143212652834985914349051354228089474840846623221432552013324506433347417265181490777134618101203409383004806826746740920940591108002728036931468752022541544338368164949586576137260083563144167549135948877035756115941203307547721377518148548001158640235615263659762058651614316216960313413063931758313092381005352587741890174596852674498250915358138471616553926950380407558418629980327691504524484906483446602853081013535258033631133839952170009204174017029223996698347359609594636072990800591958427319137626616140825689425965520594181843503472151942961504996185943854634376362364532806630009926430955888129310634151345067231278608585175305001384947794803659323707647770871133895970340309728117348389635893447092788352039056823718333855235854757219303408442663204033309429049850608117421349284666371179274942079519734182071920651962716227486846788359688107934611399810878138689858475640266781378358687024966912424477902339928264531231220373909467179870537856785503480841268296126735407155378590174014201662719456058264491240830987943002835177349125328620082804067774195554292645265746948974557326978756793996989806816739589627915776008454117666171321926004103442712097518109437702691172246908738585947247402287929227204664169067329480398264108339012457333106550578605688754713088443928873617020035060129982875707741572887502559593340570975107759098562337398652860166658062305089864349929826539625441540417933990250149724272644375850309028486955892772832378899070952872048578547966923798260741307819244665983649922040049650053071054330284864831661765860948395639275260137044492147910099351293139475812984276650648192944596705825751237351143291448548851504452803461607251811061279806041591507861756851570918836085624678431182551669572690069195108741394100021216504629894512468709135255880493204508424705960364020762081715660472891127915404674833768487443369708790825267962437378557836345138732571533885612778054758695864649447004702477015355767995047557565904048622016857325307792869123287994957659415061262314332622168664484597311236506856944321797607086895108946724866733029515622854932691334899992964160157190337172229949993034011852352403378247841332087457730085795205943524007246717277460758038600105654540074952788666588487348761804131800667941779404567947624464996809147307755971825608984575275075921720619138847096297805693303134133955545069583255912998793083496912966900884875354040723968427836242997160505272641429271179079761997529611994121579910830069368841884266061356731032881438301787118986686045895609898392190656367850008202391439162796778625189302504479813305738783916132664554757782889659560018129308099082941869464884901836362779741689362300359504201391308474568298400672024666414644181394769135430012657694652729391397457484629784442580986692977193802839562991722076210424782710117444489993026019601922251070674229774613366798565457368784856480024502120981129887045067824264613454501358425198100104029522185841407771945615220337639129407455325431929844771861900180006340049861041407126634457545322948230119291789625722439438662703449660480322553997301995861113465834467518913724999841645655956092531425292456420358288502995108113704183053862202103018324149669213495057097201134843748653418119894194876167942693168340584066203200814536071331216734876686892639633161697378242900901238709868976548027620582263834917385535053461414069477531717358139792302555481255903276154534690131042160714136340439120228905820095748633011590366856578406719801436776136533546987234027384622338398035266509333420815550102419931047795453264249551663694141755980361412075171953843303016097649606299677627291098457261865621949289483869082946021862383725391182018485068318620291072305778542003628247050504740295898048421571164780571940605641716457511068061712537579052486915945135303800760021410006960269234957629734355547837785993385327810708023777312628679346671544730960419458571222730482041176422235348604494722924378491973888045466404443203796615341656850276424486895701282297843883511807502704528136458952060879553337532775026601181140408834720983789940910387598586005371958247010217209286337543454531777778668708064290821829313216288790681419473056707222938466032618306534927714551283848530597870045745471864881435452351839159383867036858261414561725419844043666730989996757248823262331333014858036404030924692793500262311771559841754786803838514172132729801096445048487750253198293717165923947298304350499761070270860704856711834527059032842913010897023878484721346206962939632968851391584438461114946701887165685998983106440511647453409570111737254604416471405555103105193002310144494703543499884013232419889670177672898140266197352076869314572515628745551009634368620366475176000785127771282692440634117283166819032270038477189819658787410825284294324342801743744944709213247082571051153237402967373672223738536101358319273422437392878550796165231468885899442283450671930184059094814477875962717911905589566731523881931730657032613338353448229558513861791405684493146889942781879529025998776057737895258588061416813230552164429226160038181041680534945684955312096907767947909462676486717086473039330018525889162671959314220732568847432914384858724414399522363083260034641579497744001907915511548313781225010612105262241661169649615029334501848775680620088076888532530157837625574286437262396180033451393369234190154143630268341619444462076953537074545751006240830539782131423447004170442412257226674491353835351532355110811876723672680967888026595779333612579302203748861253637258093152336225427968758406238087774341915322610796318315824318126022132388181408719223641006294029952294811541327658854136836493913552814322108195340373638881237994291088652409773121655390772228280968864654379941271134666550657833410009171657517111378822497094349587301494303276209902610779133047403454337728283314913902170974037217569568217622959343719451456694281327181523367680148930304478226883293477220284993853580965133691696991709940838621994227224178727179457788173810564816768586624753359462110372430225868731562445297151994166543921086454812920640045207872146906127215804213340138884710071606211243751215349971540895626137834194068008424116751128409281803253279446148708212859737139545937795828198739301749876246912402591419124863063224719895425043772077643237850053893638258385741177460918871226929687912858415856734168532330302479691769534788362249814049917086970748062410978745974268277510208315874895993742204592253691318603717444053170127050611440737183814368847559052787534669136512157501669446647514379083327928149297111091712007371659284490595397445575428047607043598798986248245328759747057321200106612208574691507652449580297130533383262777581581570188310685484475236519319271214621263097131790894475920716881791155002421277554811301124137612421466520125126580128579077507194728981455512529002093925891988035606437011189458401155622449628091997482310227481422856915706516891973336391229389295356784051267509506715577179839078605484280007646079160352323461538289081754346351072786001203192328119819855729130589517958862625642203035012463423853809497334478715233641255104088346628486907038979565865735243319536326508774356845136183616925999150318929479760682414597535555880260054802669548317714839913234615141691709197921985599903024017019926479554871393844987942211614532799706071834857954322326821445984014358188852336983910662840831942405106725951657686522480935552759794616575922007357264603111239698846128184755134581629942733231095551436697447943606172082304396434292198063433358551016993331843046973453223038078287986276962004007089535933704486749567839475133069966812798827569426151279634355081202608533506460780398351833532321020345610683878854047113239029002563206966439440607461496494521134392826019774149484118483834453966323471997557271264349153038656525450107622806395497216289493018994878662209428679172387774221516286249202738650510135578196525064879438012504842810803738814219834661227279083633474195390854091782716962691258547971166401274130935050866526039029294279255387820014058914874035757332808486656647944523885335675223994004543835966799206257513473207631186176616567332545195504082073696645169416522826125987137473788041656812297404140808355141499161614988063745211806143185730980980426512399100425688605430606505347441953121955049934121330915626732251093089701073990041631589750539328149813403073124334574088534322226170850268799642188988043927623739607034086252629228563463588755908362528992151433255713326522472770563484090907893543384829308143119789814248428686637454774026996509790199290542637954225020725780936985560630998938209185293259842559886781259690098035347342550753501184821535375205743571088141238225338897704173756861599640759656474576724759631446183382106974286832816364326953699866551882316266282131740817226010317058695582140228370514479623060447431164245646984798719403798928970450947658783789003226771635399692329696970935996308621973391050132200858166901207274545483003774411417520534333147516764543543672320272918947875953761731803593516873636308140469402280613418703904371978825072830288975008136299562035758895341109548975179369406785183588545358194626203082979741520280252764994544233961990557639289419618805352368354419975693595747415629468906779974115756834978879451125914531101740786232566842234701360160847156624277917331176535986560071545372033511795918975537813667382216022277303046346617977686147243568017532247490239732179465926761134095675043727173620347198134102719364501910940436116194974524272491930654398098906546131542006268127236216997740006098723397335992648659034534850245546700425801327150915241105993860378018757378644631879395804657477686293616181417860807801040900171804035915250779224289099681631891495235896410548636125761379080370937450924213922750525210743061123565408862736911829591343678566918669379522675959585970708173204745936372123864161267069690841123614660674148512994447349420479906512054090366815368481324930285963568886571849175398059516414438131671999546486100817915726251150800178044763785464354126290094047431814406119711892677069631296130518829453819922318239023611000334049287411299101100899551789078735995207948548381093846595732877266146798386656501746970016304770735050289820408206719679646705904600458911008264777554090191161524193586305058803354706005386445776453711867842619464681698263971054152536931430114976388994604180864463825673608717047531879266056169380376152727253734173220042823944079789189288155532639292346570380173667970912086196843355300118548846591592603291278237280609286062766865103078057002333152508536817032998036601162695785914527962551844635979334689617325644117682664571604719243854134814352997526555643365103281229151678886765108599357320148360891981377725042842117248081018065596657729496305240892515165252505634992533174192746957852612246963277060301253647726933240867156055786016890823555451887017540125522567343722810181962227550676807420727673901293710850890566664425112211449620542945651108744234519356676470430714468945012896314100039096697907756245813037822883663579770781007696918686836285477273789171230423339600841985490143268009769830834983803860453483019947409049174447879262694718113845630147896400249103980912996856422671438265995859012674544860761391171320313042975330200085813882592215567448605410188624518098013196367225114105986183099426392016313241051021879966539758599868183528757806526309353000125674091812760397503470307591340351134578698842812043505137945142290143318846382939362998266097747583528019740054321676116009344642937328637615542633549441653926385332447349722586704168250497170740605345290895481256132002679893399837314773230117046737000025899305097522467915590981327372005352709803168361985367948599378595675201252897863796855778850966957645935527392421031175658104607186046119077575445628634749481352252630603360927487793857333821181833160991927684869339149783509545028003259018468947286055893513115966309835583948877013878302469618407346319508548958033424012274788153542815031017982674146780133215248878073498639467219152349300553579045475943107026822712517810266186088276197051747878974807568967268664571454236474880320293592415657172188087679244127704568706301277436685834251273435907581721406770338286783991921278834058328443767223934106683115696855078057763030461575649319142539175415173306326669512228982745721720990426229506634079682863816749661186272797760857455843045757585444383269322792605562513711208195489028410707731369847929446722850577820796883582776642165303928115689386059331692754923620805145581475634205513049242661738186642933613656135037429556557992065852558860485453452777192567952193322729044107813268870199913774544181860970334011420712079750064766701750723832460726597235637644425863139962660248163965090656671219842163538399314304991979875238108232667693271352905878665004700450740463588301894682363465431249727083921588320440877455893393246475578041240407123403765391636961510949715295134653589580052716048564941424706072023166497624630171056062340118344253907932891099563520817911343125231208575943822410536431960684280060712604175281168380797145044595409609855510047078155537462946396643124978212809179510623995287136440818138116316469856191689807735450775130114416197965758355006901938333755325865388156355109165476449586564713022074785925879990886992147056260071742105180851128743472971093180696542891035401014102345556216661163287901829840013062389733298200027993541471675628155164314565935795904267201528324488268852215307588001298035045723589205186640040826338254679481788742886160312316722413378210651590591532011751674298981514194904378148641381340045789850652325231590757473768645593619645595574389706157304479258890988005567604950443535208679369370067001687884984788278504983989823487393414980881891500540008119808023309682057576276121736464421166127354409432485769553316753191736144707922012202604592481561636794869892547475841493112699843087947560156690626909649408747387506060108680877716260493657859806064479845991871611548959173809155777454463794700665150289806978165504037594385098628444105777396282300239487047499517853884260294713914726622688374158260151712598600722619097868939725491449932635640903339473034382616575103090991875577144442154645426419167037854306618716509197496168542745631430974659269158065032926772238033760152476411955621683140371386499617382584754332983606230078356300823741898528239565758602568810094693375914358910367636742113756476912383539186838438659493336431086739196725241532594095898427679221488331384282122784170787183617304114343358107086111159778915094620543441495056477659454508711927309583489666687865873330978060321177139753316459448439077798817363753313024107066614739901685722655204809472227529342414977525562251931016605663389182191298088520097527874373942079242787815407256185004574844630532944379319829927017971225705895810028569126716912633597439674312680328165318858094703333995302445930911163172822844299293361054508340186537486558612872406119276008958571602951026542561501080533615433670881943121453564126162732263120056531152470571937705301228175677796889936322372274609479466014901020276033389646591583336730162475526304460057384029573781343169344851839620843843476059272891402382366889809601797674989836844873469790745719617473236198828719436695554479730054827207477629006576592951030856352602619978359068282710676937122460625226476733123642188777950183579153293072329445073748415708172438652824179938960059213338845291900119933702780554423940381647437252570107929916976932092382813963268359801249896127716352054003846526244656791200983052593151163681342180543455406522052315789171948483735243178407649442080604624574840822955860390884824351913358138190456343209643145554069309550883728370413865150422517983594336442567462755326862562553858119470153566096841563855204490396002923149203593432670075718376298617433573242653226975900121371346338133142662474953713428879489901521739640984071385433997719208928588663760592529610693913088872392839393392789159112366270261003404779920130770723628445042614335222861016667096996694307197010279407436772147118261489995874607273369146770098241825796200247284510822208907777648258603724561859803287544962139169453792817364766347286021347333309164078592432975744747437061069544747494294340695688534524545569645851124630254190246061864855262794018525601954660558123672815460888700081126622229054827806393052832133983208680108532822151487222190088727544968927444311133977791950727715670434517029342941843554343348253566259920744165949165624604411889658314870207448710463225740633849410249560477265984207970003754206828006966625134180217055599601140306320861731629442119158517267458605077881985300705658809623332466437571190803688426017100656823072939379318376131265786591103323099094834023923412638490324299933955517805873641891949878144032866808024656124282414620268828265803700974761685676436649613617341819919288619637171774271418807514739843578626627288223028113543421813613261800007083892596146834454100708872490202841564508800264386109889265116885776120723054589859297606628607312368522037860725293471216840432096947453511595637233736292852762111595852346264406178861895656892436996097476341897501531388993857902465505555514350886651266818751267752044398558502234408094911010517307867474736335647750700092665391626209024906423888994193546549929490885541132154072680846917480481163208626314186684224412971732116749163573272447319692047990892043955615803365860603506278867054878825662479918631518776664667356871559271762005286596917807079344268664308551055695514494998834830908076563863697261577818847983125877595494895404198990082409270199711171938027318825678554120876576500365418434477813694946354942380999291110798686449234743204088879511840163262010222859180001224186705898072967949771268348837739679589691774664866489024502794962841500194493908193865919264072526737638772233510856899586965546529278940539164798739866458186083548462888371942165604276633271975908573485903107332554558895382566666948347160916865450245761193966518544034877071575890565855594406401842569931075827180231704337724195782455397380887236506239001628590603212678206818605114407960183756960421317957013745679371321912866787220739737922966524220403542702922139657954856171832349535656872134847993540635164474860503470211216605695737226498385864936791133199213257846400274358338846446033381397060264379473922600968446889253547155124044821622062533648937503302641565663415229672502240575339985913330479434476307640120931539767927172579068002326541909462359020691586567625991705906272717987902737796607935313375244889298591413283226164085605907003121887414839769400155253792798043609190254907600107714384736789349856499420993072387126649550055917891667406314757915897143734264086761435534896223858483152395631582513348028452469124257067629004587107121727330138302561365565793969341775932896603561010687402570725894749355400629027626663166364888026199623467997748064147635768100992409009991267774872974590671805323192866204350679745392808253144641048279176934422859814506542891210099934646402906949328684192156474938227112728599858776314717944242154603736975909441213424446979358265582789730184263169530024676496839407211703065000145230163662103548258243483880478545338213045136267793814686132149651804889274027663933599384459466109017039717117488127043606780254031089643879681425769880307806746110786315512481084703637776285388783384876547526271795503607334244538286247314201830770077258939131294257615264018786104559558423173514408691682939475979995291520327633224985646643678559012575346835140531967046549232565321288062102099220692972489393865471011367415209738677525516431669033028854473339746933037271326082133058568967533881635385654941246938509793521379315265071253846208602805968299626934380587913966379168616026529941242585187316866750137816214236018458440903367471193833602671030799612144022974613970761233341037596401018939117499535161623899140650363799486578797004100793391737439559928457805482974875721611251228279294895327521465681468582269900291233346115690089465902880911664291013570614188814193737343781398801269463477767832202370317266725237088520206333418126897976609345857837508854845876359102401778923995172610837473536772482089619045518352538755291905012707484781235204769307837783470769331639444616307084911484163812190038404414604568935482327224696805309486716649636776098916346811943616692690445679398622972301853055277713672077647971152259138746970919640889317399861583725288832357421203433157115049892376736279449268182182492490322051944852353665538394694408025719621038347243339622440364595158970398912377508858556725637354923487815449490166713488671341572795414895805339272175563959238148033994666039090631156843665172736186711331215896521284864514684035139056570952358165066137956831582310138146893832713433031170565601485025212433976244284361748820074986989370913339388552714388638072574173859219474009404394765381061167912580801748772188520098648221792334087598692960452777921491318265363244740242830989709651100136149372315680318604751905741798966389350279799653074008021762120178586193281928620532155961905186550888906863978627516740010711426518981677063735794959611195122470294736239768042040947083546508468479500799697867131331801370754814225215363883205251653434624364728323873353879875166300527899942529871866743117810317534310250427567063853598329455618497640375317864165827493846013601056956152934999579729455155422353124625668648891185928793850167534771390407735824010007150480806376694504750374438378016657776303139693913948711634623094295797978363282466346784636904971931163141510426568570466515046008319686933457583690431318435386576876098275865706627117173938089749715966300667388337002492734057633974870810215778115194061034479577589710200568125375024774537431244596927167262576969598407955834667316705093649622114707106250206222006166938091589561705155989720019531495941400733413859270759514639551514249208102277241245078017606812480951697965906170404907800599941486184468988261748227700621029399422970811183448291803950201489743510279261593707935274721237914087639144528867087243021851220475467007969227085994491125893238351686686408397987548119073252805279452843760286535184742523944308255334017598555893420137367749044558570372367596804404907757570875749881873056652920442208341761415458598817526061673738284772854010856443730327604759556024700600088953237692158052953660546145379964132693897875207591640459297422603708396329767555282046665056134599683171553264477355066663265800553031009163692443813391010616611712672110190647051810637369761426884144664254238808116708813998413135913605124523390368390373980487003048404387765033877963294627450331733142949787288545980586643188903283062693266189112785834230623752320927195299615599660359713224436114006850388778143632987788200734992203236625185683780617136565421017318240794406809214143836297639615029523511835808071554090715546099984629133080400845523100120393930945025672001057796692629893948168695994948855699950189475058423639467651750197768103369239911067257550182058676678244559853306594014689860059347029477124728069305429437009613869356749257000261001150003995939506335576638987362795338163495627383043265880992954865324985739688079535504994055644421350056814945556927224931987045524102820668970947527679896185410832918912726993417905761784710444886986982490422205486278953040938476706836399231257641391528427405121030954178573558275285711658536039680329838977881656179885330617125329426848396587292826380905296066014202710244771842058677176593483454776019502375920806703831529621965588112424982086801163024344982686032149194333008568706802874846877783265176531254333804701798714029191408658461251977308297717402512406468217396076724005396080920233742847950314399040890536810135667170321201119298440005868721235602610270449991869938166724547995979713384775001040365461862631872628869397622750543927817670497361582146338354301883061778513257220224900829745468222593716122976905173616356387990082128762535531209659964982031192393414610599968949891957414556001132762033842200785035783625406074006570645054452564231527205776415094298324700147692620350689609380161896781422209270861284593888622386552663145465354227330460175977157898517951532635584804574128662371121861441131916718456363654341408601643054613966482681238296764392769591222432118450492054085267492459526550930540580276881101810424580007217479757527806588999630280358946169536224863305039447956383117123785209315675617155883596520995139272806807089321854186696307835904567829315945611496427742424682572164384023351163134907300843946630272373869616501175913592530886752123691810262725733636975326634781970060206082173448663656432115731392455215435372481445231109047205037532057566986312412215432146446018692620303024869790683851401151771914451583139139942358902655069179047640069853563709786584324149768387300115853460832759922029212783629079697779991647195269213933876293597293249927315769398328145560742433077933357775526996356551777864707151900372681075100318110588733627005919356809376193498662814037798088334831432374882333992771314763677571053518363508248833234993099150398063182150806529359062259764690219892260298033465128335295213373570141590682741101340491001245490505459176883457876471261240356618288918759080363035841591068488808562078951976611988812876904460927027395930625200930995255181769889733395421599073156924763393816699206369703254015044929970118433593199400294286867946856767490612213944495906767763176457138211080112192666333573592620966246100805007960315635435948865651211741193564260887550599834641155017480253655470509767096500713517625732168091914873604617248500848086583489977147123438764653068871343386083582538045955201779949070001874210169307976453530040716972728449698576621123629342004077730640982698003247160582452163022720889588946867826420469711102310729232309975365205788613099647149985708424092529267810319853396665972133756543375919677822974831104932804391428896224642486222123909741070471962093307880023404634148221358612516143141697928940345098260910963581025841395357210046150127026035161771842030869526291035767059814882705831507913037048792243280680471759006715024386813821246968229328360174037950862948453126107603711283818499513833978940334533210709789020949304535627716731581030227152524853368667792544041174832689049433193508031022187238596272199533508506660081225330379457358019954846290589001949193049351692673481837822210274120032725585563418348990523983255451516592674325573717756312128137726070356194809044571835820866543814747705057515175396955802786884132203181594539157107968768198818955899575899287911323537786570547849207894096403153754901616444793798937660829890314778023758756851813364060313712311423083616792484978988625525883157367993869370538105506293253118039111476243832277778236295933708132168713514492421790525645996987427752862718893085970389199755227634020487671343940299034672681473264717855886839020163206589304412763917431078676394343514066596410824536591314607974116314834304598778458343212812240340753191927797022939490871545332526566213676825276194459735212829228395404603960566817064936303348040918376938410700277745888781821121802748614923443149781170049980096126065070896644760463239627946385316701716288689073355001270571329564672999554603823946023318995163014600105840400252872178210064662238182369807708614616007505901663867356872122201697181101124297855188850899089805254522358819791861206969880367268702070314446167109402575249736022496002715079676760637768126825083981125280336506855385872716200285255182805227621211735921811074730225949210145011241998009692679988371553989400297518620386437574382647855354006326363598552508827347016457309247207580478146198656347737487916306670858911072986947034712179555334530358730928694488773529302107017289893729386169543448798954225455267607683861639111015184228386487336243524246732557060577215643421753353763535534621316424151207149019435631642232728209181626875313595082469251526384647615725768069206050843740970632430382437673765757998587517554599389681093649509022865072104229258936244890683516892380653362561443860562562010289825135399699294975989320075683465910245352073430537361556691207494387278764166688695863297436206141347807393854928344593743915277175727215596800106740530455054937918981600665322465628948521392075514491549196817604939740577615764077959900501488725636264414580085293946601749503310780601492287794544434804502549829939183397346469297878635666605514188547821854537015721220645801692704558766322152877450518150479378677487628072780865565241440000270646882717881035733780127734174683765740929997069891810345428891607667870710663452705628324128243022789194683382924423983974259023044324503346486738757037759098951632814801028515505156067554003623330797176103951187104535520535200241679512488821473213805250602803489549249356565423319493570727964182904175041618961485813634040300885769304292780995528546054582576614064335471567226849235377582200622401741640451889660045730074566410470656029418091419392408816096330311656259603644237142235659768646582308204866873696337385763437600295703709958922164310161580754462136547838183643303969390679206021491295220326330146930679156157783515738125981345979864835546847405448570929147321675234258362279523493828403908230861385405382848331526222928639888237343492527231071034594005059313138309330219021279576170345661063337333204057266939304286876709640410576151744684568919985016581375537187248515255977690672378484561316030318929297070402265683495643585901031661733350936528818902204175144057426341535361175787175831948390083112466644157805947148769179315415866256404637522406857308961046087122197001855614017027117367205539158691404557087917234101565308054159215447523268996525781462720656981028781153042180076517992753640593511217558746304327301552767179993780094841790059626378509160730277253106952206183934740747623574299333954126978523209216585742766344817591701157353506145555593743945578857974699117860136370521359150275897985385976585707841287677200406601111478586342749260932148766056003025918107811889485270310869500140973222471359289823662113603536114788576342932835253319111380186611188337528515860831820347699957013634256194168821449392101934230323320608278531154990206828776675229623335925519631574904943691693269559400905596675397406550219983973088030828771362013180875598893652173139576550905377979006968348134380637806372682508196290158836045165628064648417775067232057436939495162973038355624009885253496144900045850902900997033124935073671549793651390265944607271186490583962973040836623990203370164556886562884916505208077148569737821499962311090754219373333676291474421326414168496634745928131227132403844051487232471315414176676437143514062074781100561580820556878082683204675515983020724566650950825320622029073165650941926231048395595744756009228842048757446773168898603236421835062450880275357650058552949040125575920982547975889436035651049680544029079007108935763065056577252059589077846429819531498708963205202377870913410265205249423923474895499761002813170401668761333581410258649943771007306305707414853555831002575440166808770504924149606757939404566902489470141892667062417964777990868279757165698309674964791736340416181952040877795955553465706624678580741679355051267666315671763778068191831885296667838708712389327049168022711303643746199508997204826918823536707484292845746555067696754418841018938256928377800351885194666265557616574970023109488345108508815742945963878710427921225788219494521149409142564382597370461138223804896443126283533590937040078821238137246831014783648073534535189213960125202502513018310683059411648339020012952204304392942134864664241112754853649480715075197159861043176126744561095079653180123194059863359679852962913284704265007353065953215656077037407305173872098327988152274179488977976853636242219550793851891528552964135620661124826593108749882254609560023572524355390290593546120668880062545398066573410143970068967076108824248552438455590179216203623934866752340757341342139415645745102571977446436647452715199678979517619775263809201083152822099549089297693516707611813689859445595107180796126383760032953786042968338263367240861345376164923685935517267872205871980828692532656127416040754978158751920231662671184251036884464100389052762419427566719293537146859077799147580620751934703766602804064948755235154462545592607151855556190611604876896034622679896251081596594838599263611172824983876102908911611333480753684615171242968444444202735323132427669320538139336903829632481558864257738248352736723474648035823275421114489796029212981763099201951191534604784480754277775412970599447473058682657481963809320778669090892315474222109095185037831005238040890812434064040934514300748329287834677023685863483854661963046514576965976086474093143235237413001628199256605855269268804043313012336453701514952135571192712935474058954594245206873666384267444218355231241940544252426237723804870012751008979709315882498793661945913671210769853933989778618864780646511907379296445888045860444790828218673613249822003764661129537723087767960238095625501937214810595155614187989470123943158035136857806176335793306953648598214958804240973012334965871323677580051719395348641299531091921141989074796576278540881325760633801505436939576148450725512217642568044482549343217565343347305913726865987460833409311934567435425156883679480034857252699465717337024070400416386710850540068893974048192961221731753213060665259256341567477408249826874330219071605219249132606479558518110982980603975671122507085175215355257197523768979812882104376796957003090206488329822703870863291131153402544065727260583617699465057032359235814432171344294314560313442098147482088321739988790079039885675027631908601047571679208375644615130319184457414093352425987492284643352321876667281845466514477794308647735138690153959193934003899244564204276789189529593826602000729171578484246691904041382431680134813721183192397217376450189376086895497144792292626817376414461756282805141788542029726794726867611210476656693859443502800369861481106258420670214593248811751156117559050822864091529184638840166719437580044054115034194543179666001822540871984689329882591804132082077856818451080112091720789667711005743741811410822328314433896597126186033633925555546605072293969239654171584361025859298856953557057003595967374081348306111770713039916638813706964884104386930291825759982089153960838408323970706079146107908570910186245560582585823076604647691855423683549039043616281907230871967255127127815901607405591916177496979780088990075242156010282490726410492407291845619378994203144095013355988240976287840562023855825772345988230767226390548112655362852044678814946760564957773844250844831100533567319009723871285765664726224527409847097134113165487268538964161698392577386028425937382933232856234037327483972866306905467968456678757777416321815967313508283552835019067633196327434061056088108964948748957546700506389560982180125838718058204515691170771271440010478711546725398847823096971660966736777381657709237272290014139769854492239886502188915564985107010793236900931730049832982637231243679683731122708163687142727040569353468432617565702112000451744581175129542750162712823230329103340660992302469377174942864117755500370032964911687921564099908690564451294040121400143713591260990375142022262020898246190345282371429569158124807491082096688006381156906588008427175077499508270489577530084641109951162182568019463241024420180535478321418396704275597765162723356400951857504225583087110194803024758667231752699924553595470937079793465035690174966437273743561751257599733050450630956472153442786708275466170998267768315022190862608448661970883988252201030459370393905728145084153002864514203326912775740095788119414924580447188420875870678892620409462161975175373816157703196350857609540836795160829693206735180551753599246833490056656360690417751142698286838614620782120005500315911467367965508219351842118515222991127618150783550266862809841428965587465190710450360775434838690899883549255609780862384080395974337739438219486870666728465418424923079267332640912318016665691850001613421229891007455164213260286679240564262074315896396085276175547071234871730382842382882584570720231833469836442682278066313910568153494953971066731630576320237839910789996597402436044958066072221246032897105323922397164142155080009749759008866416718017168879895458728766173241918882884389755939775800185861189005986885705107366793172896933718837988318149570326612409909062082423255602767771006287798263326525875811573917058141041382639495058598917767728470350285275248802531678050568034055070074872641580918407494948210453996230224762839407609126789543730399646376614343946411152706697552560234217009469203638759091341083932630221756634201172053897109568568565270548205875058045758871340468246069739820782327126895386861130703506701155910179042273466786609474525026910490275108823862010655378077760347274265852808066327648718035112920586517693353902520426212212259377598257168416171702104641236616853099481331232359662516834834932127593734567499035608848510164529335094941592954490070903254179834792570791388949883719676716244759531238168177129773279620722198871283961072034923825647957421613118792482851887883595226388062936279845795326306562070991740347127659772231301115140457074324980174090898260763619349997362869408117190347644837613448058723022707902411106530284914171342057184340373531472008913921355637666751953352282531671288248985971753997029522905232732258485823301356001924328852600210724124633140175296727641257358295330386841355270812365552375869705349249075033389665925310208179890709927255544911513901806666638028734524305963876477768190565399214094421790919435041374216494119466653490365750386293328339431251183363040549240610619643499080459183046950664963737004430889281126103730514769928921273572546910882012965685878858860821829666366686237391253452012802186424262947905588896352452657538362171408986916111499118387173842478124365319213441530827917818638853777882810977661491537978944378698502734077499762807805450694151088933879231104598848196928664996822898982953296820347188452389679243600257074283506353306537912198778729931280112975845428061266213278527853602711244177338559044506306853433257226925998694298411987559798725530049699949843567953222062793081424439914378569350015301775196696564701878725933324778180830008531134856893600147140074849664680162857988521686064510652310705957574479239093771504889558124402902848595025205513496864167424312756213817633939477245537658186611420753706850519143680750990661906689610011902875187556281828841186652839735251328444492307699963397710217493382897172716164221227182767734460113691109851271367265094896210540989073143198486128397353712527982154546959293028182442106691033683213442165021798731925503862196766414147633853528527282046840312250636379213252147327422003087454511382292573104580512229487458089027610420150444415298908366450490933874247861487247280822117146106980742609051863469310470069814408130877985189130892817494185946323677387295944150580513727586486470590934985724594593921639319114819264326473543520719045747866907054239308004728582927860448090362831797683096864302132557428913777245895509917281693139196666360365332645478848391420578295343493752806140107365273534378008912182964758028534060162444261037654900767351135508868207292254104222136439339072406948857950479065463107669550564958649117054414158300383320026188320306187811685668624760188484641610533606098916117154524587567536379826237439946156397011099298220090272143796833342717828174075744676336360086047025002807383819001827799296129048410067681460028832148126023754988362700070634138511698376802792353659518511771298776831741399225221036718032764776247935640550636187102516652059178339374006805811247270903316307566011971676715701751701864262983187010839700557702058971688912273666065464539963524584076472031965373851754513353158561800508827485332584670978867170028112382347316744073969051926310413002198949485229742287018165483719371695972926980642006031391031026782476862667293300003150243931130414700445177283179366403526718709397994387643529941645374704165762262404419148648086864446405623779256299113111885981593030286630864554507606403924847611779398171983093368484886004943301139702028548275108323834003614466326076224982508143620504552421934403630916610613722969481842112547099227539304547266187034152183539376018032320970617620673093413762978316764901020332285558276678635434473480014020994207955452792984431630953323600790230819840007365706213779981189267907715291435616745398502910065133915007353746212538233437526441551110312572506703247413136702162238077003865525370370813246853024891570653964820574898813952400517928116161630526185201557083532012755645270284401057755016586605655990540525391008728029171605357532886195003003042999171285427957550675509715327892491507817096002656282613808774926725341520798453945280313080478199041360862283294627665467068622858516534241682942993193015813831631309772976631037799197039849694686601210735983893781050868082419624916788572281347994345578306623188681133689969507972536568099569688459965257776517859151102503023784983904915499262994268860379850820019740327982373438536985378790259436303204145390688065464749540873382767798366494527515591381965009241392882881315653890374938738569767483539085220436220291202052392311028679316563970427906273364499891776094603572795069412133355594305421673298628757832815470033191444307653651166355259310900105881893412063697917225908783871018539402643319526039051900368459703537500276695344438673002332202772066994646055577557415324907327749621243407748841114149318874522503611977621304709221301002770419213280491747803437548146098717678349603418408771325960942724244641545577695345904384658091786930730148121257677447091396126757112225281395995529094255428952777799103600828112475354324955318214494132483819592261889388893290353324245208931730087138939817363976633318545956039628034357939210096851689411862800615950683737324241517794702239392864335801601492033724528692737559669372163055051758801397051411457096578509818913133210046571093112435695199979299640267777809378696517087167677512118292012297296642007665870790478900407045687328488677461359451175046452896226603300996527068356953747305247520114247409018957902604127807725529773790128343603568694635793970322328081842759410349861281706253506807405563261920820456266602628078198483913746396752018628707732008861842108668420298986874581682943732094259905206963083543002439514371419581906679507993110982933590458799458832633879787902403535565067673438630922307313320270647710538723848537803323013453884927342346354205090539263192234473732138139981129002497830787921394251223588356940726217372795809396399114280036081837518185426044466620898211618800192521157292985521111255845467232616134320871763144092700996023957018973511740103580768075076056439668523282678259999444121787358554003064628149032794984125231007418591103498392836548997562058262494200440166216423873467470032613038563964771974799148779853939114055533324192640428804224805862564296077994046513083152245493254857498238932188280383787426054912007480850654832415339792204202077272166916686410515317541370849562291446413737335906769956284110201571193100144591318663269200467557240451251162100294914032116879753361213605553814823241437501223389521445159626926764751727217807505433728981088686775372185060932237869786123941277226755852351087863323953985360774451084654465095518701233237143297058107583970919807161984355817991187641952236346642352690451355725309064439769043748954862420867229630734778311627176507702202316126252582277939646724996641004663397577740805785888214127439637413005063149791297958833627474407811914957820554818759047018918627195030995265359226073840055948112876067015173129978812188112841481636237047206563269783152983622863431650126442053108209500215439665563037267663663599581363121299328284591251853568086518883692207724626451427699019975562174382088109151213921086912660155415572511825209311284133800657713800495965048790659903733494802301638727338281233926427431887810862763713267056309466388838943898590219156399536832059679617064459229193281663155354913613168469936586488447733292151681085987900128121836372363487601011793876363827860863768763494454653727308991238063001691320905624838914971369790769196886308075442460909241888263640199355207835373263831371267821854323759973925956656054416875930247918667899818892578335684467672746308107933164665571977289384489044683172558479334794536382904022687296843541617156726485815587462166739600237106394393842786219842055395803921562823716944778613506819784042535283791345879572455749349206554401563685513432500378889428872778502587343871941120465033838103829584411852264643479574613825341118319163694871632574078044719535327632245711488160323036035455901668727268687206547119051110938540337350074966676643010147365864413912832941740640623676032989091761268209100195096415612793167317092162456271934964573357856331633316818117619574977994191319598134937595118885006795907178411933069033432993768221017309003405501465005248953287041894876731263473750253953197786504795087865098891244153691382749203155110565635141874899239496662355831155922541164656368735070439775057322568855426546840864553267347948784898665578705060086422475936160669015841552031306146658935330559744143206752579331711556204998217177551570708186932350993837941473995945082982502916588597078465876206084342487277315884572245836447357452065365755460241557960170484917248911369109118151400855987616243609315504263226909649504312799088492598688658692369096115509083658500401532228229114991232591992573286451488192167132836339293002817257122941397461120297433364505659437588325966027720790354261731019129694964182257858143487143425874951876549455334631863518973208749215948239969085393836247101939730075665591324339327665999159265042068870634651342102556551582479887747948137870061646190826238493521626683479440058807805353480300205291154690278496083010717807376829329224722639096090371156832584701225771012565157400786830407286227720536337958425770970428474349892651051215445269144622460008174993162668559499949332697306026965676461761238842606000978324921517137012460244573296549120444171800340094699751051268503906053170453539632868394558866978907158086102861760636518731900635192035181654559870162357875919071940189856300364946023238807443724835201978387086523270415669261356922234238342284974516356578409664368862374619993923844175059539272002774676732992214672109087254880456412463563113864378702251511335579287015533329156685717751365550837191517693176721353865157485115836906846683142742982175012076131326576942343766622203301405284556275828019859173486599233942886417115362847493095142085960834026013522735129398898237144048477520956695161303447890702593752994153997306332826077967290003938242813292360210916954175944741773034501867001685124876982313131581104084443006481938505084046564336907819258182250491243519332692016507596373785626114953229686553654604432012622581435941750268248192020929298702143608416059979758524584006149777593683985135575990779445530595951217258206396705989132118527826084881133075427000007630201038548049461227503832229395484398792014850280334081841036682878524582774310702402563106033369429831195062184513480885229862924525642432093568702133854300831702725073371052432969941075027020651466082906101251768260972713185502896130717844000869513260679570384717042735473466544411859482627634668596456180473148784960517802389913925764445074795580767980633727644635907315183305347060529747093993872911781552813397307076241164734901122462998028335129793226066464175906113262614064978471945626761240262155691129065667392744891554612823965409180862383271486652829951885652356818789547078874696851959536368431964875452933243092183902687478160378758231211941474550858055222759763398985250749181743291237673371782220667110868734567013549237441393559309397934596509660639627733208824230990146591032638274140793394449605658981822806606003422741944556006589739024295507389305102423713152361123607976633707959687451368021538309393717471745347936246215437338012934487224341049764415853916790044048455020353610823108475301455814700273163534005923022788563375308621336406306402903987024356798104745378258702649871547763121142246094595933793975682763664331784995088658413556626014880233969286968669995218501895215437357610349332068826918676114674859677362107325839099712855894046578696141644562326571150111384253540379042006122447325953289844703543849236693741347123644439516826638867961494330265582773698729636900201470746530482540686354375266639399622606295538504462442983948705622138317850450695997419709730764814434179415402964672455606513479882271487928634604328000296853517855265438974783398807163554382016860764776909164425028302267281889089721965933078328401216399734295835024718600923737486894236940617264840150293819792957834580606700853544428726552536355391610512044457777634142412216573844171391316199570478944423480076670613333471145131323646954265493671090440619870322067208884471134418461019907493620598184756990529673094288186378195923753545241764981500421535679180127061578774735212967255471036215538437046793527950735816682439755430275904459403509502119505983016868906537962946288847486498826578276764629276810154621148757851713750053443763396036731614371407395132141158843452514370169038383156758170359578847530733535467752431666645865009759953237540278130497205356297438709765009352320363536445520282830876931446685262203089115841975448071322530878792771661710993869514283771259545698078725809127763726065159467613149401227794392659517546530791246125165114795225482596316757596891997772260284600549064996945212503060187450463269041270976191494959171051881271465556768808786465656492420295546888633701991984816862828845634174292544969427836027741074797575980296601224933504981325292995374499998544182324995377318353199235484350992520008505113072504097119018093710807879463205377192951192404713733237966071804546584296529012945123621724666988363523344117669158231844854150252684441884327228291418492144704830849866874169610341299953652790603061763187258927608562988111935226828755435462379588530535574465903994247258770235570090988147286886212929833959595177132975640091356611176984962574633512167185692308306987398105970030669857543309574851983771301653384963856427367230676137366473282728364918899248219669911007173226608652715633360203145470454388256883220194905160325245958702509526739998514522511413061960088555035297640908995385266029473140883229516273229791734933793807336311875145791808786124070322317705226718732483846117928527821991870940746848954108135650296811618103473374514936959148289346976529508666878709253983912339908947237674619059709843441084380350058926155710973425280354718726153133222915963622176775115971352270856837124200343824384175209584606867836178164012769844296936594113087722281543941733942101847392801463621050474807360410117863670355637387948612685547479688221706465553724676112539489350803326929338573128047559770008247006859436904932146495284565282038623238219581605424693547500379453879784442076169084839400459682482053215678752019138415980712912638822288838201965863819793643953868767707965055153973302138061692275713342798298637585946165968669252751830267639342250155029485492470315467277355073384004183277429560350496724330326960364456471118360163063093455568684275977827649597587650860567026397789337515531443237890724504799612788011930928379249112281748824112134166306226017542099722684353233578572082017479016138884839401740051510497486960228758080721773965018316501980894177234992292223285188709309813757917411039819845668457103715820258190309356350457152771508849297071147793000632722933198231749614185914522718782232075893310260698107584590291815694134286018925962389230354653438685320043543032231280022957303511771153353924363647455650660282793889127711686051302612054652777399042559280894795338961973262658006332927612154370773433549589956296820647114399933358385631691678103053533745508987838342682632980569492305833737670663469130526855277768829294234457718052775434515268630298021163378526377520880778523844270294948739625239594215878569291978482482428831458184765744358522464016165919305725441257770125040915149384235022120926861924977437598119717538095180656358699284044143261241801370280481218738103767307991326243302798593690759987590009459364832307342102891314677683504180397328135402907119076932756850414968110650862636811072396802227185510753837898660041724225940582473555229350057732116204717338381918868659521887497533100560705434607590554103461307004680054083954336134738419362645153481428847426994421209543054252765784095242901796750589043650749454260362734974947976231362031851550326190785034123551939450008682525412807098705983583570521472334009142249124337202277662431437140233226427831943728419550581175534609811492343615278651895667889679207866535229810118719602733191241884953056530043884587107613961999041028391578877870407680415996561281272052306840638641506848694917190724124707921442682150756953939141910021892357679817140750774388879873677360049682418757426724483975112103709108844795769544246481034104308626714892891513685498235412751607263183993389103575951616233260516998679209584897934237362199283994888119096342567200606516191606079588827541828811606028302364105737148028412141748007870652582679466231092663401021813038215695195233975453556164472477023464689016836090557351607628643608545101132909647025796830327667128552081052880296660445950571802401629903422569671399189674781307075328799650548163068517570236701579434794879690796069226619945240429755886022151372968345277944554687308950649398568321613052107621757732909117511598163275229922465667696279419255070818355874273767103308122665054529167781607469363262233547683970353562402216799596923126805031312693310084127560564805509706285282708593359222605707548105609939396800402316137990717229138787059681083515544287632106004491260416736948488585661668986767590409868146709554050319792682638431611607646342762213662378737529357011206221808484368271441610775699435106665670351780590592331789795510748438154252174136179881309171561925694243236756402868620689914041332912799081002068206996914094811714183332746684656556706623566092255903817589234493778331698198307187132017067496098058981660153516682731939383350657646909400486323604786750229149100673178688849275807956990627160125219355049190281712363514663782151999352905552843629147158996213028487195628183485724856112841738918756278766412312267482435521922543905474473312500923845693104607873909709038898407272424803270275172226858145783421506004427110268046201263585334197767191331300260780712009995975918702926716698913171626000996472969637333744760454202423699381666436859654477367253689023806655190962317890302919488981869570080860159082834595758503593959661176462687013974855353108164063122589544967122537257610071281565969946709325597465540266390615830678988365843348896198671942021894967812314233837363907674639679271048983873628036104188686798541545659938804997239077140198079098247078324472439199262413670911790019901900516216251002600503407052341971326805776102985691141230959077812998894555813811236356974949035823770606184968105955666755331020288511324663677839647623364487491120523760194678631036629330222926730553992772012669119707974409516151268332022087573395921266789873576170115236914793406579030416321066048454272930180447968964850077720159711233214755788795228156303098835996437770599432477034568729035821690939938108243642232968229105808187485036446108353757262998622313629019540658385185962278712892075140501856009569992469773388714429594872970649704085672818839645327329691529454930105216402131522801577203159745904158889380285451408053764200825112398506656695841092320482585617404358786753159703422775801486757584566218020342789898620566902810109485670916887022279697662877472990378242620605623552398821762148801945375777606889297580146360743754065691370753161244209961975250843918024126842615693186238121556828798116812013235883736207535847493036467230446293856030004473437059575545888314872531998716886981117159606670578823246531702613906300056204589845675621986587391084748696655362372876516368689358714191514765628443468892662010687032571185924095470079738872031802675546467496437417803478416566038555705627757954088558954529491080608302309020751941815870227756838577211691346704467570083018542272523576744434820916906043089327086202404100373030576787010970857395401960423730197381872929575260171048120322110261912887813843587042743542014395535433689690311053778900671914100752640318910098915104832065366775792028063526163750367632283454327754559289324482974947672642716197744250404995583876328512395165613707328492593848517132494710397161684909462528793142258478194210834907860761149971851301860683044235340868610399153663087666027954034133278739585107851408434383349883199444092356071678015051793134631258804182181119372943414730962332319423322691314443134928220474523250618465768880683024011710522843039315525539824868527976878715777461365951128280837711603311328429488756856120844048224525897414701892726774632165660049649231135900884630265316492119052701386819857141997900705792236298209432043653936160044083210931887305406004064721485188069451883636739330843699680468407700065038589422739837252412123219420063223062038803905946023061527786432427863414243789731844365206012837938297979941307572886184361981337599057603418403678006986471901243876998260801824083762556219921182829402047784823087486335082352146186107118233333705877174311612137513792216854533951488130487587198271766937886561598054828790406088797930497445151100581225352921812532042571472189282479387330312368438819507733169512735243719166286709262606774506012130132626682841148339519425413309905571190441546033370737235724278992341485574571182845013131145523607544213153611748883998596927224136439579034751770270434617418631485822074153839564534078080995863911842701490681246595024898590181792168704112573330700831929572916706304086012541083398870118475196487826188842158869136848974061624928682937925033084900913570517247324483409079434860156707783754898359985933272076720440129012346216845211178462699881231537247547810899638541601033994613158076361451735305207141475835899958882583816550546198701072847524062085226228394402419875900525051167875199632905795924424307288889509166670561442109603691965937872934261007099199201671153265603770382800015426603144002017142629546154511076766822710339708462933030496206867508525217563500995892097682220830231754237692710938804482649441483726816015874128721008533298965385984117753035086848382851911433639619414731844675226785560364735807029076636918987454990591443611244351718600499750431024745452467496144832878667430290982693915931076373610063042770975367489630618982322696176725229601216379820198317286605673840042917146553224207032082373861004816308488773142312379094252407508305871636593348175132640054223507241186176149665328974903725825076922053624820851121423685645131584644329086726550500202218856069958139600936399061138380463267316544889789169341810933002270892760599859375394878990646212883223443046228911280794650347636634917394997387065016620219166604181092052645977308552465050420019989925578825217341929385018692256809729446709645108736991445331882193994982674812188844837676764980327928865994038057069743911658571605199312364493264659391632146956616821125978169457102044651153256846988729521730146923943730483947672581892284854676118290326939187712620985191888701778210436266250963854173136640994155956299106262761435366794905098592546856552959398502390281177792808205614377005476381338752874265710124465333128818203516598906684654113481373268909977707705446608417715283082035697083144704654688257868503167081063152560231752192978502163947950848453257640019586727713582293651807564594296438977315372821714892336465346178904700194575826552555486507810756249416650654413621836802652355701251759813844693369213036744084029229439528580216176304179175548691003387547721864047439648501819743983512651941502981047246914272539694386696714237629770793269868668291483231817482495305215053880327161697473364294302681262067051971716855104393859413080699263139609257791012026356408230884148379501719303187541346459987103742543607960853756534898001284840091485795379816245050523439196618844044062877052522879265505402685076592518074358883849286584789385253867056462145972945371593584690520400639933823382219339210694924067758197834414661452449536462505027781721062640341935796319121039453550997154138300718763576842020076794453833734160393169107752087649384364901862548830186577331858705640945917481447524247708980165391034355715320679121677728116065194483837115202133586046149173997238799033676491273305690010501241638152501483575775329397168267726221547581819160218124483535831970545165375037011930263001897566990879499781084305475294734851396368821828798458047664614049798835757566633314521662859240500172213803292818272643128437006388208438097902965566614700259706632137654046217693861893232051375726411897743435148714989333268662491572002599816246731814936888425334898147664602566389936728157557209646111700215356005090015661254683201267805097122283264142112691624515024774202895873378905324437144074460612151049968257902400317289446484310388539942142239038322541998886293716648293739784141200790026958067524177264900717350241827618366619917012712885492766819617676942823911859585268999230186693944134498682290849459863687987420856312072239992361647601464972120052093605173088070119189471558044065906703088132977808144156692751548528404387703492544845078456365168470181923042860760319379422427117034843066823441369871438966571752621512473798771695277974549663031335564255209483665312288444469495636226556648028467847707567263896816272274759150239044630276904086005406207634749282503272936961206630178269342166353939906428636731232201876658786274571519648443528566339662314676418900670836346296692827591360397808833286227130718427603983356587971603519145459776366248576357005440445932598640916823778805116100991797637547282597337866259846900739867857291600473292918748815294372863028396973466198513594252122948600734210802452244094043330034768990998338971657869770879613428537039814186121065218103107291018322614614316267296768127519146968173935997631505961951268149068046511887141706526685328897018562839966299075580667467920342735920962521570188797614860545495156408229958378897284605915489986414225938772539643191679859083881788386692854683359964469063404070697864260602226530552064807237163916056291288832611030935956563410088331661479933120954023009896477889005853393818537542020826062617634601389407295598749712684359376016083365201881210181692483279667460729780902220428226282918533735960762864654434515056301704239430202591127823776113642103736628635199953411501444760833082826539924035297729409016363656331220764906663038462269985622857241882280596697987871281159391984239275851766788630939978599700269720092161487102112411326360012721260712877147395521512016595377579574162852729472161367892076189430222772841751494301907678846616822083944951087071299069879250331630877232651146007961029377181744651988796879451372561541386091110127481697685697345738773169350238229966186400611192590010210296516255993007173402192483719813246308680190469706284705129698668242968282433836548103709784528809301754277344015673186534574373620684381829348155908202725459159686788188756779300222624749422387616511801290585655142295903645186089020118089144790083439650450449654761879710068382775581082829402048380702504821018709851100415829508032881568340176694455043251233454766773691252730805747983325644858565411238694212874097468432834557105350475830701529893840845224545713714001073456672304634677648511603347959769814213937209456383782626771966266308093741963183771393449917463191245484620599334210623345676976455065573497341821385696538548359826667402069550357358704650556133300071428751431015413868988832250526379263301767637671089556038771876933751958668510747801112429885996528126388827224611324345993718168307645323133368346989461607483700818364035796964733023707757428259718273445060891051439378989150302853574839097288231159873050314726937086818339311357949737640575565829413797840967193956392706498204524527302981294451156007333482657973078196677224980594310850991422644699241104874967828444201919213191067205160686687339857385843167612275329823947844409661141377905842415192723212291639601734638190173317961628429576442151025673721970748279065489230524453061427602302626545757862245371025351194933172628005932742417464299041791466149598420426763594877070446552563259357735905377573280392411500679937736423657929412150043565226760512485999025307917471897326274908346877847962070324770612836179579032390884140949840052789654698573332618258210524751997426102095396786396367456467530277418533659624856685117331321392338501318896607029344956075474908527355975905722648860819230508433495994101409064526853804460377253629635109461144549573074606994224212382316120052288351863094412560741432134178278025750730463439104636186313694178293166883303941227225378198078115073150939362270498963481762432439644034340991287308273430298606288918953051302330994510684480020874163552350200316862904856961922797404195712831327997694395732806100130967622740041282182756178484128933125302585543941771151188248738106044876007116049504670911023662663853926371912372725664236505324150144612882396112607896463088021105569602646554101048213679342347341463774749462230018951690692541723015639360999521555840944654218460903017528884515198482940955809256095401263375784833152838226422234120358814051608257052622050313208132954966374524458519278079425340913879227072506766252813517305128255769761253146967239425361472830434150895224490381775449035256483068148803214095865892785965339205032048307005881630789402579943562020268647071582974070982382194360045989129164122182708772568063609351388554149068381307078007069166146013158307831764416803839797560260164620768258210122882917723243780916077678804663622155531552626260633015272878981268741500048700021706319251781091598197857177310596220723987744342891379535192010128991780022136958417449599044104299836650644439157154217322474221783500696778551933064281303109744333109508455331653278684415452297610147824163640232095532372570167174413601513170222851535909973900068979409851607711279037791636551781921385924022268009676535592307912726854816173040658655453965829304184972678781705089941477036237623327286769394395502059447411888860204227956272690593700530802504256402607360791659919068676432968751391905133137426642962553943074972161333804914041855787386790341135166425404992947109946531103108691801534678201545459405216585733213182572465552641547184666580704584138697354222680369099404283930085045728648681561875234657812810659609590251406195690873883189877688692209914931937324095419619952842838360435874751730135605265170644501567204169317287588484771392707169234178135472534223194650278642067000740175680655115748714364003438458083012378617970190773369697492141136248513277590054589980960910660066218889648808233024157003524526826408244106493989765199902662421898107069007199672074209514378102555948925862157074492867981990084695724507124289327661431420074286123344612957010012366442051833279318728664581457563592188132266727974713084648080760837474422712380995454710685317113628761401832211258965586446342413580119181376932657708756330743678311505863754529394488132443053448155373549586105202551011860510225310051183775598633443396488220316794312473333324423306564423641929090310249755165052208516976136559307616717855919857497838592660906764381472594137299371622585804159661088185292326311058521371409852242484787435600520520846109474008937010823416876416351486440243074219207129525259650649147349745016286589195088867139257504989611005378330717108991065210214373356636541669490303396512100745115429331433241065078848164223969099547339941598236298893297402154775346960962347842661181240023962731330404035594160643421159744870453725871927228038564537409374830288610758028184762026538731345968154524263919475217607253100110176408117204968611294436095667901297850681322604452260705106567021809384947222214146503633827244901919001042700464893065537125779592955360422724442214025870845761911813946203905485051049510281773984007856119919249687661103708727421188472957007816680931362207306386209250467731046234107948071602419637739193964728196605255510916533367708727175507705422508970238519644998229599267423594596757680343049672667364438923987880121315878484684055618962376245546869626874035487998239573848635762966064792227097903301276119785696678116476996272189274413665120584006763564304995478654335723578622023996833326268700108340712553366163345070678544697634764150359667300118632880285305869358088366834344387621956453410528525847595549704551161543224022186074604210784416602943092761012005040356654610026087646021331652139517832552966669569119952042675358701681579429573016309065211734617194012604099878666606704431674464519707242355815011843395694878226396851250791338407158931678164895834127120588329995263830483932116041049257427340044880993218334519402276727476111498457476616183487403969804330914618082951916363321422265463624731800575131579014971842952218172387997143269801687590807990815819989755993307663661776277224266953110829375548191690096763625935350117497994718256090391404590787468802078132935728177242924183608463375569509087810672139306258668648826879496690687048521279633590670523956108567110896169058090496248648264309965012993088476211443191381580824445124161426818709701263189083578865873293577335226739197413060960735339991926705919483232217820820021854351448695314275203590035972813644844041011057010912258314505596374978911732835166025445033075789586933975384621228250194788551431070262091700082465468334054290300666290853222093938047710762811844982765560694907090036453575476100509681308374827893540891387687389746711907473270384577590988798065537376459770149839734625762248090078941732881875967904574871978855512824265370186075578024833971362784523271992723244119436424849973967413091587160082795119672889253081620923058746482646320996298773918098535384048825421052637511049721672965630952213119970294228800348436362072564099785314801740124151218201179906953213284939355092331297148834991186177091852656963199572465705555624892430983904331875436535002962488290822081387502804620963581098544940378180676748442293028279071525510460032951759213731661696131157023457375905302712240890713470809287719340237085169778139305449135739216479114974174257291263016063704160376238625019988801803553319475067939621775728687270907658975255552980955758205444738647254743571345662326108318455632889772865419003411302259203071579644533326154539005422916821240643716218431600216570185562058465626148022763101490224001410656226403317431016208893214417615489631142053785351334569352384975889401112156566535238911846082025006626854582464197669912009180533419029361279839117073388110830598853327152266476145521135764527440579509750349741445800188544851312193740000858266823434802787369933824638322574530366391955258780861780888968836027305875828074430638977951884044709214703731787193081380665906425267288784218012291233500621371521917665991593088094239645501037595507856052735408376081158994235159189481312010916572845001456975037675071509903150159822383289515287931873738739104463741928707649448943761430217124181499904131643628603676371842202749724005490663451103171211966171361085461057399260258104252435594948421668281613925431521815887571943895596855829092954812346669924018634852519340946311863002632639394154610166508340620880783496331782666744720669751836701605106330873246825415989590021439660330718828762313319385212095714109753636505478754874851653257407847740811356489437853082920885220596284075675252598132342280420811332971477040667294099234677739623015479004291841714454319177978395571030739935480379978310740407861106928076207836526392579872277373442521100515335440898133201944306653528610032365160622645205363522288332699795404251372243192925001634254808169310353293507355584699346138952618696730270101372358980053128977581962009756308241242817642512406274421562460927964911434067156339389785801492832167500073301805879055402941103208247419729132392220406776339776381053223787312957710709417437536160377477663619889506737701996524535365014072375885580338091125106803839734563737512981247630681161484012272824200507598855250037427061099674233950356219637224167263786069226162996594107044592389476051010809008394793242646834810723747731845439479762607161834881414915643557467159979064862048060358388185193044335424524039238876571462421111883037276292216855861722536997993879264286625105308465703126058831650236866127002706830205788488310828780720372251200020245419127264636156846623859968226190832539193756489692096718790457810608977145977939721261893091761288127799881973015143227355911489096507121791835421650736141860014403874414347244142077111027974255152184683127093512869916306477587826115573336487499974061563468509374940297504770512460499319357439042710203053932892256230757827991249017643868392714503293218055426533681317604760329197944545901519191343273462521576575290653644092655287214743448479440915884915085344188906706680807939572491757243615083744884430613314327949196566799363213614251961035278063545301246748299238185818694115515479161615035921154965502361017902192753631576495791383828417433252032325611114486291235821633146388453034515353847078784101571667967418072934334972761673482476491833587251128847398643577749529978381150904141597936621116165787941670240960705718064135280211054244729630479031719896886324860166335304806827841613484635391980220977325346140823404991171195687828330091425118289013455671387144922091006660190646189330845187778215830836503969833775135500373650510741290452585778015204873016000241064628337363430179126043499108345492125765035673418741357731331016721711222718679407925623128518142973201418956612851216594290016986572210948233561134145602938029024199339018755346996715537965234994856556871691115538499514582532429290646314305491901975342010054484697684027410033541430892927334238016795284352730274920890114285436265471117780378342577353016669088820730611900985283986556083352321150426504895625617957400155606322948943084162849961664705486780239370159281282409936545018165833578794664858448187465205695063442362319560529362082429288511744849024201612110233975165557366474506623103489779449672385097978952112210483471914763675098846449316704471356096287975728677268354671429966758412530508452452221583082309432572849933503938851920192201918759833722211126589900897587238989676980918334944687177487467489085381816134591961706164546768171057577434901103516801374866685587209864977463423113379212008523760946978452201063426613959799581303035576524393822026236857331884794544107421733632131230864839832524409995847860976898974102877943143035315881722112706890693531505931876672842925524328908197115582424709586353895454063156553756765842608970280205516906189466030565425446052935837846911117239351210888151708130482985709819836729604247084292618647171657969377403159467730679315942686919665585818048384044390898916653546506255908181284393113840846335426275508690904083633415838035630562497389743307062292813576949499862568899665986277648831547027455848051250742571292350666813793178730097279690456619593887218360689029860837567908751284886756275310105160971522029363423880124804772826689127030053323004415263059586319392141068662294062558088072254827123161173601157062101410191879761048380244451886035011281919978426261955913670899057340745218501533686408085093421752828217624259047229327496469354628120613114070364401134901881709237947883008006458831069389023229928119118757804578216615887468479414644250773514396700166121127935276470304045518086612958279024787111638411882473352188067678240329114851874063440223814656202901213033043944623319703669741673380447237026091256364279540536059955897112668140504762127783119481977568950758112926207400476332388899237038204569561064415685358901568463250090252479152491924849395305672972915004925442159087264211517239527901050276724630745838191413610255706395212219921035436628938589891446576867474269615133852795629412457598566065513639419441421102050427314014316821916671850881876949250999092331447791541065607399741477856399530197325346087257835718865600130907706023700567420390919781328898120100737711860413173850400058447732708111770609868539128636777044170148759401553260104861490034001540908523598834481728678253086460964130564554489840492241324908621939403708807156115226721526295402623220573049975281546167469969771253206584498973723806293909172294662451027541291014328553127967787031321094301683188074254727558227226817510345724967572709526648556815779275394071103640817776472619459210195848448081115127392608347220578241875096566715939413548364386811182563273284400183762115664046696828708814499898424395576228962626450100883624824486283583982796944247511776131526583136846449492932306560888792370877254180299384660779883849489801657860668970430510287559227688134707956328755132565335988757943937435475098625871912081560134448504510221853744003401043705315020168524530636579210429985577224027321145775587748402879377546562728526281940546456036784986030716927386211074315072925926056195797769203209418230262501759485943540310363686839206785504934737259004524231205254424127705028830047712316024966221024496079504140670542161301805261399997169923180512684922240958542933397289131771399695931000576335057334559564333947969624611927777586447292370433117100459834084187538847397562792482283548179359883112348309747444571781252674317756668640088409064616307797532561633284946350688667492744300099617592757857716045920605360443515605742214370330164092841811094047066208722190877900686192408108058782229066309364406744199930803074359524685605119678402197832652314100602181809484165300028695617783164380472297621112700252598440116732376662427806611367349071286701474266751271261911969648013837185219008943661266430428068050865275096278917033753645115189290088853830394651261496902476033765662971026922524467117721702637646449556750531138768197780448268397858449394942389968314453595528711922468886148697173338689151279278051465023044363707487080091002583571824046708805559836429754304785941798829558885195297422230278653672513990199361267813460384828462843266021839352538787050371848960717313003288630311084772350555750417265362982014721058972013063100027769147292864978268377961143086274503376252851881180979249347419316222142418724505085153311197902500372127535316067312053945014875681259617229390044517853474693459744520489546930258051613249633913001547733336038994919960731218716828257795751635607630339848070761662830380288802622884214729034570176750351027465865810308671586988404955292962116871787700091656596377281448913874694814581178718454233919838184316257108624910330822879740032629404118832136388452180203311861053562589604004516481485067655377112732595695657827543752551114408403138452825258787590178643231943152214793486965260031614817761167625565138787130636031865051355227093787981185274352502563942888764070705441330215213856714488871682604550323717320065024893001680433461528055197656961141586826654746356369278145648028675049267566083969104266645550151125790366585442178822798922784762949284994091646961607600187971492839341858513088481149263791618912572764704923989344907608403717452359589786119775485029822661535330753700013710314844614488071731496645231216788147034318770323002998444798618881899263071546503332630817609651950394334021889623360447365256327321300409600789146179771729311539831088937005901267366476636340075463660299354109141909278614106721313327334937932783449043107349554529416491476660806103560108943981460708564934542956952195622660530466773790864721157591680544215325661108530930384441966001619944691741819940122447886833219512566053573363012486156361921128779265159540752738003858536748616597589548162567607311999952727213055767114017401510122390775803802863184565901110465117367229982611429434882327124678330016939034219952594453563185014506778127521309313005841125493054091405378196171316698238306873811063494324638816518409463083693164501477146259119827133859450846154824497930778665164007652446915166311116422744593001023335836620570448270349834666278052799204626341122664820439044096036089282251721863104223350458382802650087454775033396269468056117594328940098686095675820059429182275530867074422545289570710660227475363279451384858725871892857888854189465574729833451891857337953949717921010834328785763767234959429202966979703814194104413822951900734634535164312888578560128905925935289841763614316562829529854934863998746719276102671924482160742814989234967101504883665810062824638051572589386430382263568668396514983229012623453790501849900328322665051622305765532308727877206262517764837811953527337779769228506453303825179783508640322298243727159738824377006980114803441688843316342375530914689515205865998468632903775137233199615537915423488234650162221858208313030993920715393426465400669169897824455091848183545169032338111117922756567110768761826170105623257951965332804314840157561629668894304550429438851474761257753508243504700183895286200515141006703465879271244227930157568487533842062679768507804974592519482014290871354014877678478198108565694600230366262958415742525722476569800575801182488691520481000407866615134260121464675011043099226513591835862980099846150322328180296899414239961007282877924576347859395657700613365480093959933757306798227714433983221290012191996509769629259823588145771004319861555742419191088135110696180841612041544493754767422569420421162180813351084250007357954956199108627418578481482826634377754780875728693882736468813470756260176478261837710551549465171762908797808624401862832759956482100400671081101767611527440705280320353607778698943571950557260691411718165099190173998291436396022092894440776788275580066038054658501694697513557387814859728324751293849682833821357020070459338340421901651693536480727355756003006172695619955957389999443864078052228586575484848892747844288241763707977633519846521910272449237177686432260555898725852322188476145538655621928500991872438807261168269031740756287125373029447019572996120084293784859119828684931553898143618780490239311408578652764155301264171533957071767225693766922801469553934973725518586691098403934077890295121426892000247700603569256714411948640261543936167218507027754612556550410056080979499734122514701139303713085334479497359788831187502559061179689656821766390291148807539342504161838673414198896228003075707614542153946872064455821821290659847221512705993288768896862994168345444671273947346770067362980620104439247511248854204025751478767241268709703890339938557509180813113032457622858892431560471183641157289072060357056598852100356821971046073270480210573629667914785940988191165387057986288316160387628638996132091180097797181479676901803114933419541966472873887792293363315320989964705178886382335773282403904666628085172665254781763592731265659501317546644168961184268787347906994618568509298894654878233915398077216825069617593439736212425416053105033671692206688973925258997631719315130638898870958233134052450364029927538777117713084719120274617106177466062048582375846631015485895174777639683188073434465547662427061295232591232076072336026562738632708493088111028478925824361855976434544820706324142190043463939633521788153098984411127557386122090475188938579649692264343555758681247894695758941335701538507638778337684639871327736048565679273439902266407113804829564216033007002499065198438954467969161302607381441440878293005367176498087742811508514139955065687314824264420058153792649668637767246444822799019504411116726594539508110360731275215726155486921576387133820041645988253362637999177359938422904402445965009944922064769523679269691339637607634230971278275410630139324802918488892373528043614654033743654634809380785291556192312369441495455073748539075866810248134116110396276271021686198164503930507628387868098363147065926865560639179431892131137917266660297178158276290910053261074636259804083379861570318219577447450936669607566548010626426713550728209386294914012774392281457327837870952505602316961306688268665515817169263684168026837664261295964134150326165784445618791519059742064875934219677838561784030882920702842745568140163975979101943116892528964457211389877299781563006070181809210650360755285878638996705471551593272671739600763543283583952120303144155911266126857602894912449818512873576681525026496205070227775039492541306210204520938557551733916380982159588349216898245895198333914750791068909396157020440116540901781830665526185060511975410001212074618936545928717444771717439543634146480338771132944399440352695416034949642412713385507795668996894684030349120801801330402657519612183320408730016441579629005465280341002337786610129483753754756990814468119522338291873555343319823728991325525177123036140901406640268760677623713481539104270360653164058768893568941157377824770854418785252712917066712426603845791532822187132408075897279244600250055471988929883252382195662380479356219992465376800466134842882908102408541409794009077636397075156834245726646886729608195303419651372030756283349335014625402931367515685559502779474519637679044809522239471053891176753941170840677485318305621204868241316709774680713063250736020961541457503339954542736414254077028561802859227028853346351708227083684261995689655456488751884038722108474410064476819130400202115813946732222348055859243247470809988306596200338394783887837841698854540895784923638787715804056992441678346603886736747207404129158333697801542328273323846537968696833339788564034650480154373717941955480646461326825199586632988813009430635887661236406332394787250964789665669366761066366247813372344691655771869562107735254212968962575373158215243447673697993238389976279340055325553203691809446261557943334273893995049252096757835705661674721212073540101432152594712749918413688256419466496532946315319193645795813695083651165604502446624422836234898435390385157119977198202763075749850481433418194033592912326131180673790608489505935180787660862693635188757121572055560232897455195045066313770388885794733218305544748358998808328370996710033876027684060881913007450514924025525232334534151454973505032113524863000099187173752283035866271767927065636388305687504702992435575717236594207049828422545886208476015665781500741959356374253841581319743526536252224712580870092774854496163427431582386622326213617430351017650700078512515498780541224177557866277207822143737976650730378222434965322885290131017719774241901014330794398780495495919995817465707401621785211095290106476751545345115829436072241877161389809948415993394944989364826580316588947722551086603556627343926516697207213970601173666350335649066186411462755071698175250673806706090005956449755750162938285622321140009369254787969681628513744811604402976842669183982918263842285351876356937800553052670059068749415174967916157129416042354474032029841122994502658706749925682680039284506163846868027618923922405242277550227842858967779370733669606915136969065797750171792976507541598789963676356829074619589216907459811477137220539688649762925323617502497742732290392356857001543498810010844040131347040930960692314904687151996433227472447384983224452333254976445299588887738961014207356187859052480974595306644854265811345167518201788202104063557751395075935682663611036850334657778155080095376333053746730903418621725437308562958586859346043796599652260950808493080005883418941527962099102146454209146242176072077308689262157904120433792584323216809887584643087911022427111295647766753085979998835872209427471724351168244789163002167573843057559277547889471477345093255528974032340467243383675763247241065955957209004355292581016232383822781147731130406190654821838348568179462066183972777983224045761697531736127196768275419884776249840538919105118323361837305758367036584495643267050781790967080143697075752834538140539875684597665591788825195114598939603560171231493498913955244702115553774234158308171877227903901226336971584469083207959813562305081688996801160653229755423697985404761174083548196468031083966668803083438754532215351883085181526572474756839591608158684968603602795480170419415768858563325204051017961031261006469356030815450421946877946164757620001732796019874163178349256350412986862872118445240148002199405261526375256948551440669946692553352712711813353173739108664066881696793906070234707122786937314992973153919731982669435754642901923162083264530900349214972703005816533873954939770953043341819785335594479085034990979845405217587846752378607389937913910883903933481415601293444110699972047860598501388679824938492658707321485863764244154073607797743185707385323812001013874305272127751484203096899629306362063170833212819266913601801710706664829151803213717072522722802968361060431406741623144103845606218325833260516826939002507353190842465446790123343464782127580740265579534004808316218392018361893299619528144011854987504767894093166879482880182433600025621861413512714797259796809139706362467032659289627069226085700832598475231433582693423215301258994750137386567246371189220981719424014629988767590857942695903291024254706920763303539247270928774000010744203907413580752971573775330171504457919152320260912676436128748492339170786911561796217659421035585768720060657059304742478184270882669322423486147054241721783971343845416358134606653474461681022103802923611895522930100243169344473756806289204072758556800976161056431779749960688148968547290247476610998078865135887772159061858627796144162500420108319309426429474783581573151127777162200871000614593709382239593799659710095305899745368887788080334263774226916230575347998448964585726244554973870403174339687066390180661844574693608219637418240149326292816673807474253779771016540105960129743977971241069060491237799092567813597844337183801217314959591172280206598469665452241413699534459992146568616480165362248695367280775732030364583372665925183114929300444725076618378714492830960030913145012486386153803675339046898059435496818752899433580185300157161193376108233520655349378671750413479472052321899833612624540488315055645498029698180569487529481532154595445175006489981143468119878526943117322559880063880417463622266127891607381740705148290694062722645531025786091432786440273805960313389938688193045891598417720424612711113554274188103819171495910510222126019435749246891797744628693417203892287409246399416472521873366150765873149770565186042293325748904844842385976474677460611590932816522979554447976084692683933779201149641813466795765360240901243896429686114296987029648025706695565193497578177755808153382286571338831667569435373558634956454540426150815040366411231494375380077762585067523514195528068998121807010861023838278375385749534134385753189925833000673731678566030058217809015638005665605580228032927286004243550759183783397367692964768187139261398249309867272239612587683999563485536601718285277811390677837334855242808864352687353490405508366860809604529600155042774821441714331644460879433278765690656321530580062085557620139462870061159097473942628955992641844860808456635370655862466575745999839609914510928284353434512660864720449493416738988153305538974031548913082306013089833030876253569547845990493359934979428397810590156615300415764992128816677024431076176184363481222597556125154706790457135317960619743525522723454936646147957424174607753869236385389202908222641781214621053322328265893449148747147909007825838048595319412165390935624911008330054739594481775190313772320144065490206845541362501101339521889444179223857036591907894434356219528074573194686535351615698274030970836717578362502044683061219418726741777975017703357442841309291788058108782946590958836473865686904531864636628732847132833115598392710337781463558071922995928381895187757995260926555168499833626001184992017910204726174519263044214494120185942060725823451457732556254917621013805667190640296571799864765369116380985769988277256345646746696233592387420826970609563681384107082545931852685245274731430074053129908958464468844164791346191928151492940571426660326063353324294573987922033133689930267492500582332843508705534032167553879458889581920077735469759512679084745313407770984020577052810733192010415276534903849381213520143047025802702637106551125012970803601719468294967040808432275448602075090747900748071576486061589564897999081408138767185111651820994812283490934990449058254378581591516509371797606707877435833707676223718936021572824212060410020166280848845201816208145800728322093112781240438552712757912132413339890360004700971777119279109489201505909053159908545040088138371065341499076050543946916955832375425137369139500341429675074687820770261807798248820389919437312067861678315786786740237037009726220133817316066623717711488539579253227496141538262511620046688579252738586774870668821781651297607252276533889976073598169011541713779823513836774514839961262484856331869413388764713340827673285913135287352760810012499305387225291670396791551619357129685356706882256591592910869308437866549546130609600802423917073908871429759229603291221763058468389010644200565369056938822892081106401978018335730415570135851917610839282857033804683212104790847081953638886980128676494506540049463247545250066012968600718446811568440866524493014121810711753570923690953693987705463721092763878095141688953941791060968097330560498396045119670698873264675389365005562115482328970934672920991404454628701114316683300227194371223338902671259693849532486631890238762110095650062061290967540407576961277105842488755163970971886564327004740813993608199440056287190324203977818322467569794760445913714878913265063980607276464373400152238022769437198256376756604749302799112664019039990660301826064960552386946210402836199103015087287269765922557022911609298371077991788256960889227713658310516043285543514325337476892309227145732007262677604156434438074484843592193242497825278480098640992496077085316681354879873475844309897221039617418094770568090705087212165233181657487919895470876022109024340581047542367723111329186250701143283446621318945296101937034892014776578528531250474922582795091051275960111927084836420180009709140184880101014930088709885585819119047965060703129707202314810549388264617577757058869076903252329436228851855108170207530345570901583310615381805453041180301072168513854826492856128666648067748849398476139656778393525375660884126935864750246865774132419671125551944611756473606062069676325880137276567911385473891286671898511803482385582805849470722812650852725380396472478915390667993080630622142616528371597142865740011081880095401344689536549418594314511162637314178921185606777911846442503142683405551316596671267426006282289676633329145583221950194027742820415113135146605563317990617492919854850905542316773613655309618860541515823367460147179208831356997131300305458338052752987209126141843899827290932112304887541281444750718172483687309281559344192550353609892392238818195997521675380403976228463861702663617859466620141195330850152841356833309852076797170142649964427700492953900261586257660737538400863559268149711823987976838768048907451372408942923561373140026500866535166752496872650240759111352504266681269552011665751468489642473488182998252097715039332548952099228176888096120222924752163776407601408428588502111583083217090469099998343178342518618294338266755134668319613996681452551892044022885581963633797421801599149338581665960205629592703037402035001790846271444317710667735376123119173847631541137654395371222249288692127233568766924748153804853719859620254680098800923940143127535054717775799902531783132148561192805710859772913095342256509573182102005607597908092578715698820382892259004087127135561610884347463436932510507003963049946232236577299187922128111292080420396614448476686452941678833122749092455868662243637435829931730094918442095259495283384301736667478395120421565969712804277784843311821954089518172533125212050039113596003776251074417180298049696019342014952475169412211660096261062361351843034119033780959312359702465877890584868683845872349419653886993107525087715049439452627295782788217669300853215272691076020913331089879995190019830702897475721851612767345442334647330118655204805304736675733710065545116091112544065548972438816955735513025795286078832562618088313055724784764039831672996546388528470011602584818790602007695223349457202496438161318496134810704261387788610378802769879460100596934257889188437759883460640398936475306032213589200357128417810017862178112152822327262724822151447359024783177089605356011855315691279095895729167035607297862745642419088794347561562286260791327992595333865261072801056155281881799327386257882251697601595427936935464549933472682377905131577777367411112298234082793577203612855034358270740129828420802578165306070720203151857552569944968689749510080664217450501528325818431079426823913648451323154770967545610943354248496662964282376081108746049821124062725413536795114383914219495137333211199039058465581070776533940403395434089107174905345412290376387842933629041661230757702993754657798331090662804632223691122240342290487924322674790838797646693715445322524404651321528400104589837993295955325507208355237309044961838900099629072250147216026239440467375672207098352690942247722456935674188353723658644419187250223148138897286701428386182608718455923415778897674583825305733367429100620012619251555054201176121421973245452683088006046141589214139854877486315589085138516397185375099377506716014394668906361189423096876859501236123060676548901916934380798703631158322107356597448150757753523737671009078159769167092020435955576646963416913156086808738793578633321157289778861190147329692580397167749656727874625898732994076741027984216648863900206666169011538778018488946392671994165392144751770434472002265857130073465783123289639931417116934405826521581976120081521723097462427275179781362092164926048831187258750618373683877912096003570772112714641229281302413867744329138165877560764702109698821994851364221788019594498523743574272011517542955811178457962567130194924363124993187717241302619853146937098679316151164186258439125569640402848435781222731018911563899753278376304837552414577782896701258200926771312552312788864118016204528004086630627140626747495253481509520121830310720914943611429547325800481779627937502106426034044525226520949856027485192834212961226674028729093700728154391839464080633092944593232180356026254757332555533224506339268011690624255968289836567858966852198516348422330666008225714947164093865443425069180114278951197166414371297122767797021016519147115361481166934725093821771282822249123101602158821055888021061417285753742143344485746825838547512745249610228904924769000304745584546976209902141701648967708940915404781429839112231595789009297146271804264996685574815471062380754772016877952176351374028705131265750260541689133236078082005191209630140018250150197486104118950338444482631470567772711610159198427933949153393347559212668266119725349906656623394001391248616571415306480717955621560049877504542376257420869770185575028563855785578483435977823794926896548895462259899190342143028180946017679645733770929774837244438600997100909516937801625470821452301039240087655420946095977305500702429835310705176644358982281584852887869055995131079169869963024956476448134243403172650638207024488969740041688086927940281467867976618573490754602542180155338021439595806395242256248876286788112680322555294735988695808598587169292846306691345147399983370064356501050672190440921798049734128529587994778357416119784383886847543947047895465116539624024973076702821852969395214574444932424078035042670888049192897445494461187072616255553014559808610344061783770181221955533481015927578631829911861648514500175334653724251859621148863831455565415979575207155433473601984246097712409249607006251456807482550989220811910263822370354851492107291770698180814469157064403471578040712134659218259581148002060201820750685598632250387033251348506645151303913585834015403094938403558773933938773693077279571592797818733106639276832749332215903881085026414628964493096996609666419899605068930547122499094042732279789415656239686293358084549363185977149192758299069596861325096455399941514229044640854611971382250029550567904105000070872375853595974749395124470543924107824272566371032818187958103809219195219453314537496590494799198043467414141728634059217902746604822615425885224606881990040499177436106811275978944271116484377755868486289396656918354172293400863433098504923470078762861246956485631314022286390675828680912180289867434984350483036992944343530340646553886629290642421947939530657158248401025340817698079425115995027771803294999472207063819005620403082996629533545573572852025103901348245255678338728421622881442467820755307052662150467534515451474843642702074355596756343404517795434701982698852595489866556265300663363436326159942774673076441878911243149443248365150645275250311071767636509557702874663311907364172149077103111694221490308164102809694155827445531291259627810749618295252945628962536985747717716683551420978446625453187257447875424775609717362832528702747219843063679272317357474610652002349017030373462667645349887540400344076397407094636380280329877441884856900361481544211685501204121235280515771611317507066853269926512977282587067716036539006600779196164258356172707984817659138750859360197303279201030671594519351332751467757437689042861916469980310560626170735833781659504423807801896386277277360703462642949147813700144574462720372810755122225585328063480832105409868261812508295584591275611588973510900664964550997803659197638888608386622359433849287067163480196875037418665392584227107692811520560048637335559285025580408344007332348172392928188317910311135379907048164561395967051872696863694264913658814689503169275897118670266117977900187873054759616929617680663987113662378593347479203602600290240929092932714535856006323761160608070519354029593781500419798022024706309943301757463962396471275815308974457902628431695785393591066735382710566974376457283468180145778120338386047515241892217031918669315081347432749888567907732604089789745733231713927051471440897794278546946695700090515642085227872118170448051830548846545003014189709134565526512697747809804166416527157025224472713822702025295788776317358446728576174298914681208015551441751716879276034976198200785804993912636514005282696072219492057673000563583866011876418064763222801270064797091937610224738033633293071772293060311031469506440662268423405868333820864103013720173643214671441005384415986408061561172791668145588666242080599023574109406369039692243153626069477285460250548994166337197180538498791549886861539043215407149001038982765865142573730314635806447534349103117518337709416745964698395024724336583153165982239790501917937936077002542082944343147311914572367094591875415252220993255461539240072724264671529286818594599286031478557180368541534023183016402649277434446514502144862538169330402599080531900515631922200372198287718874139067514794633385091477087978670521736286000332491816766259348665951304375564889203692434584086508702367514092786301671901098454067734012495422013253967356751250451178882936384588896345910058685725223679576713788595665743515777156455891536875090169577297933128901951908796049033194112030081267990174257351282696161852775453965169710827735253870041787014204991688549671749921112803352090250484812540672511267158673357254322605810867415475920076865301152823560752468259161215816464588432181298743619919764021661857634431452256534010155197545379639462924362061494544218754550750804078295063660741509843645688349541537561722454881583602397943587261112932761356855201080853415914314322847868847698997303403896988586577365714787062429158150750889091830240349237143814865413940327530973726583309865763937273808305820167676285597594746308699075910429227646239971904077037913917616686876003927065894279928908606073128242438098491516091981060963602431491402797036568165279513035381440864497234898544671107316878400603703065863011729152205573159013102954593866296281513811602604152351760235660193801824257472073850628306092438568386679033617350817983955014769113743624574967520189699408494269309154540167803168043725395458117526030479870558175547464531468151267782807621691275539643811991813922779171365735219999255906514922605539629887145544128593174970962837470306308938300986998906562737231291853731274564255567333576616267159776850109372288486086751963350575613021576161170854652812323753385923922900391249318969157913563192252312343978013887100422902011826400121726744183669169232337397884257767898350802877980077974393785008519482970491338945921261816505989433357748179272636014200529140907416425968917629128909336219719029156933049394220990721209747195797567903248370510153721515642589682663176426938158942162149265215969467202889732214355840548009611990842609400856608326207834349510607056907766885945949208770543541922091722438284899598336096854320348794538240762250515737021845612179898635779991628104891095659410870511960814439393037881475416112855402691080370326833356348326564187512866504218052021254073310955519693805631028115878989824158604266840064873688203571951400139830333481513033202768383351314934541327995054912635816443428647281061145052737741381648767260131700170577558623163731296200830260015280852534015794555448311021322579516274877977096933478881284639725964615758750857257258202742141657901113748161008558420866906659366260093180108453134267555697368898622303790129644334881106718196188800884472725922717105947037491849321812822056237197949621455673374821329532921368670781855807600291401447415354496274465283857504064852064836506027058975372477731790514849290579876426376332564151926829802574352274104700958714749588365424002429121165431548746705675174825096255161634823888589068578402862327473453525915285136937677278365795561181668391590861262181278557093203170903762617138668726602819781922913252073266202207064668474836597485212050092826947858191294628737805034216010275264141235627260162501768997183770822006631803847475035081854999474433184774012612942813808282252280936911365051195761384587591172518945381096243095451126438004014158272431575290049750708220924905308318357936094614498510607916054947435503467285581735262595023770471865663567464730238828882472463114137055118874463533746917994929478015635346983501223530033462495411616175946836797454192999599823585739864614751367263850607189080206772082727333442924128486505712367769567291327989629271853041793639329608598301961660203091016539935677039523451370150400911339920587208272426716929429155079069524630390202793755863893735092519455655499717363859039416653347517195363187549229500814563437253262454811897399072545199840720806714063121311051412784495115938970350680690041284050711268989150611381628303169406712436762227037694873354871713614259264273612013331301517972176583074245778527054204519695165725605354384651456731736260916974342322275803484138321491009933168048743035138871507662088477693174220721711502591583444880330656727376492397840136463121944772778275408891112161424460911477589326655107288827575992132595532112851633369846278942637419245983616482645921364669796264253902729859701326921445026673890521113279883274738047738526823375251839060735823877583470674960177612362864021596165792024676482690597806904267432408377783693197245993435782631199323002599453237900036793801594539021792609052037663954977576530908706845850703524464545349324678057895641025311606340965661267317176349886573153101192061331607104139263180650375840902797443038585177455177268440598332474691741600993850171655550376234585026111836947668980031803285825403914617017890257270447757380866488481052243029606179965182005350031066469505314272406244176295566705901772699044162807845446564619610157191704783117205120983498034758870234392557367873950414144363293590933990611397641810249299046219814075219794967604116833262946480384489240153968141679286479710050161249234586293270540570850008711949555813273893275081979682771874292691198052355995675918251028201675124371051917263788510477040872995153152197799336185014473913385819229415077186880356972104672417100233413704217967586556966664961683557183955088576038549050672142267100761595221097194930905186036571106995105935906132925508187454197230079708673259375747289266797174983340389244749515135298499438703377207603937031323354124325783738491916796731831709363779527435195071021807127430161367266535986085317810163374371729628215113544059490362035303565919660714151531347391806781055333290495443420500440978708065273083773726253306875007886128349683275879795103421751684065009679902839021118472988168020193199150887613485262648500450105812501028511559132807113973153855768666878768244834839767830155350370457807257458977859407314265681251436595370634438058784175981675398016175764453330591341048104707976312235607149994935602366090623470692600651790472534176835637800942285202526386239289361892487979997698816097552667233229356955572351478056523256471652888802826618354287062644919602736943573724890108772825694194909923472537397436517629788594653935288439725910362561756496522542891147125027786741662917456565930230786951102086022854216167356788652161909379623168289276705848023403011068765055562040017678962592001608274613076688762741113594116087687865135948569760195938712255791136954719090922831266007395825665420496548802414015151758039916872422260046401953930471459334150646205623617463067330644425054514168589220402019362576503112273575519404812787255891581996097108711994609244733038411419608239536550969936231391192646958174066014214036903696917407336692027604285730659604380730584755649441115974517124451657160243059711744882749192744597956487016025818888560665651889180060486109805198608836489855111025155508929850184698410695741679433917535965751140962778250742123258059901106917597815998437804144564979806927667816268809959356239361797054302544826033544057872250871564044675931526085449933450073994036159125439955752830015039369379027865201264616573992041298659681621624497646967825086989746989044240936904039239154052327743275379517176719748107226860300793270776582700948326309669226424429583471168188818625769251002755652406775011876717355013858518157497467814661568511859350052302073072968292774122783391409836173715450369352898696997169163562852233938472714741756520413281288058944130362618693638517596520213535035829821670365312192564412059191031919693419577179159985348544671806229653310774380332820093823555960487059170136864058736764021451966254375951608815952250639448576444892005329540838532439450670212546495105318156344574832069869342841034825106306190472882289944079329470146383247597126188439661203566752857497103486054096501164203538329376059036568179430270874967317557363833381302078030359644142995524682907831938974128772218128950006459474785860269479577634004260740282731331170026647771845632184773505753263273739679376302331995988970323075700971641339292306585199697832319914055347351418936605211124126593084288193957041182568430203847435189353185860649051369918189178263744010162873925703255114230660364882186445700824580429705104338974730638629586908816252291894530371852315795297701164445741745572528110724600455633031870862076933283875175312886942075973546668857622177278341848077027603995748001398988136479714151183954717158545388378971979616993356395175079725710506243673666683240023135126342171748146511301689680782563597842564121264817554388502549815018888263036843638239862579630456844642702987949837193893792377682742117170558497618280937787306819528442000701580860498217883654819407947102742660240285980769036384625321127215793589732102882746543704275374822323666150658117837550544867319656858999994508452706623199947817073667275869972159730390701928946654391328508417752208604154443582178284638209593951602562294983566842478945596588685150799429639515491784125881697951035280388136070160234666251395035420209811001553450899531449481539096203728016173935305130925165236923022526584172440643970012774474956865009406259771628761036505399558832439387359661891214354098217424763557945615479210526102921249457143375882443419346624229995960887225101098908073341653689961784121132995450812016874641742772688408211284971961228996085624728755479077807799642081801756677837172804416158026823601122115566956557545973431045175112778656822255100203962136093138359673508592522218386165651080092299957212719435029247024007210201308783231988256213084088776978624695208052823232017967652036776977160744962680132707320428320298802102713039441515903550288889740419766965120551253042635493761492438227165106430900270149526762954466592410833813415679620347143936059987548177654013520778568508556398908640890242516464061875927461491730998487225184895225485098893622140456744328121399576178113311233797343809885778820480667169409900005755396637442189571710957671556589134904729102957112012705656130480550564056793592592764983258724690584811730743079577185323504124999236893590480927537101204598010922029673551146475611669289616618677134191575180087373541782284286686939189886568520888680591224623885947764635060372756622865471019510582491505586100102306691216637454657209308362881947331561187921707155334557653035885811575629092701101631011917296335894344944908463482386819197814592863018731479793338390768851795138196970146580178873150040060520525673652926489497292621594302936255439933999864898306418986989885681780749732416586871348488073430973543254822861375477484743542673017834783531262976801612684515634511804394229402600022049522163867374165319036724457554319278665808855214869453156462523035342391802757504664351856784293785664632490572948780771662555806423186220917875566594129034128005458096394067885352922399766020298665276529098151151136686740201868497554200163981405832557655530843249872174766931004432692244409456715547295346804755997263656259901950172768165646679692443909395307398676700092104263742723994716874826019964392614836884176017997261700245404808991281577029530742162161094456604532503087780141097443242196545411085103915480004655274024525077249413373048002633652595003442757946899573899256633411037083735913641916674823134987096145364235868195726469163593671692324307888186570572888945275517258581302152656124709352447678162954293007444059721641483291046079156222681185997765119994661983050544112224078726370829788866344738038747478279326371647609666742314201317515673085723912555723479881388731097436497249649722098045004258085051206598914908698348123235546340493525877063720257960987894879266690485375896995139872050351203253050607146766769919262044076241387438661869029503211296655044132077973173932962259572162295739182631294372182755045196400376237771908397192973563075535501601021875834908727250992455356285256946411477113322822703789025094950474845540786250267417413761818349603283493477017956982424222429573141297154253436841847014983902597754085968955053065906848953768496943214702362365494972714807942377532980394643764008799848367823976383211072347908678613687211790438477437685558331379089358564406493085229150823517683182703337631873351993850328402726797628921801561169881993636965760505544960933010842530919321916573900083769924724708592103409595000022115443440349924044735847550950284836181714284065769112606549791177478769352127226308632642508721695750678136850088672258952865283936901617295453850016633137515598624450922679040884533494119301421808188988456852149012114174508713882239725368599735191986425733064042332762481106386244861206633195624039894844313147602293977049544042873824735986529063846949914734778899591386219798207880212173978174557289637934280941105851357276920127357531134971911043073240696711582951783108940955009984902283882448196954352167536690316204287403057740020761926154250344903000862529806845688524270026185952241908127096521762326924312614752495736439540669329957610918643144389171693553930875230559520652389699678522465647597585916712551819801148283160776819954372590585575887074401450266986757971954923758957557065378077814435093384086995697041543226071960598365202632800196543036622814451131660148316937572373957964251778941532685395957305092993791704014125207030525118271634527485524108882054541983415359694779918121636451202736180690569622729355993613542310382537868038128918957017819893111822649578021453149560345490314872437373941462297463689787702575863493022101997419817833311779570194807719021000573518758982549755604125350116403012438110631227487237189574747939613419033957127795974636877220659873451980339654660436838131340152157039906485611765599790436166326566977195162500054214525639329578164627134603254057813355748764243221459356488493752889736641265800137555258920994255942914335496507299881719063919378155217971456272806558145369467013255406091631296420858295814371791944587454198501369112279751743818509790220276650276806297102323266353114933876551066922515408718327684083449920767517907429238654704273368658325027156492883224056232361910127543841570033289949601841809932501267164389161669348178201845279647646816640077134057532657596496462599884176049057268347709025023361939844290879679856027034985241946927252211127446340922838223902211216886720305621258752175933919155709659390360715211647340368601810029377414440355004675327663544743386524051872279678109278728126148354559252781650805076278161055493193842688693155959796516773721734078755835488261187942784935564811237446631348008513894322711933472445497465301733820947928511500346858298627212416492135578803310297892459622305744545195592452474476026294093299939201993659018491252168068342080164640174571401624725855137138768431286543144605134291712689088658235566729397374127830879176012409592825740361222867331506486418909217235093354477616458089434564479594736721722352014555135667966873013000805895444301887102261679163166118288863620914194422567117313712080853423775794045326143383869522206115245747987926688064446763772318798069338715599077755954925617253232039365036799278787228937578491404939854286748031363661488741834540122708280882562717463989725315464247508302936684104243629370575096446419341548185439945874556240261093124374877769427878825609232871718448198837298156841403230110464519521867107643417017326082320811005167069923278316342251435827148334296827270474329464033175747406649758941774923518435531475971486136686629968385672559621682811177628685695612640248154548459207913036343811491310971128894285110223501984229399374385851623505384085658779111280915695572585953541927662954995796505785870373819594281950153466063547529824037445826943196334433752341983468598666655454868863142071179711758327139213396040470161866419867328516970816059414716806264410614249897573425344143906428141055739344672505222371849622078207964039239571452309728451807390783038021287733713611146232405385377826648488259249426862367278235970838023457486989706181009278938250793568495674206994467703991982931801097166196462208033036154441783815174882801429976325193548102410773420540194850925552964570428676283462046992012886187671697866445429698049953287189536018821372406520177627393804357010362340185785659595071338106264901238117830074120587520673121868098637058614095661952637649689951413455507264973479493371295778196896174305036952194249583339349346456531267271364951778240945196624464699461573032981703880754815346753843762859883708670083052487052292576692947405545780288416110759515104582446591444707518911363944042017276699386213397655125677741642312356649349255307171856568947984670979592698465861815824129208735312445397894998704919338282990655465200628124690567040085238125828868713354630957638657809095071752526494256266699727204944278957552089057709499221295345418269609419321395240093618319117763098221386751776597508552127281816335918190977754730341745385364811779958591052747454129650052603736816510525637077118191825657699066337183217877341459076118660662040627988363328188307542628736195269900504364340750455311303930633187855946825854234875223265516374941535058999339402315954381322510434113145333497273305716791737740481639890643351093030649330669868717362037941802254786823602092766001287969809897048428356897724786411119883115149476817578104640584377635310425763642160712000024803648341895969729991213223506221237974005464367955113441130144328303231459566557577786210790237471532482576749482597268926827533206321972082700050134471440480799862790842928088372765127683819194271077516323290074324329973100003792461816932826049235639198229700000014790271585295406569213197769636310970755504216989599776401753837340040997679279591978914938892414789190660487881568095743057355076994987168642190920110264522800476242426739549819060148573341222941566931153781710912849636548969070255128758316707891709324646492331825373530727697409853579565403881780611119781756925179423829924171993447703229263519400327083443773995338265457652876860795469717159811133154272242725836876129459327293698184117927216492726050555337151182604976660783657975455022383506614377382807059054375783639355490384829163019758725046637992667337163918927605515521306446566338978037762747455343888269129473259847138864298230241168752792121882892525808004085920757108856821838266264818539894378751919807586218008218602467956386989440398649169577558013443378658114017038515727233862994817431903055786168603912381948479656617973372505915168417482717248637547406618944618433574821553197671238194480663980804676935472847353471433084197203908581054787665829207605561383698251349368947924046517510696833177830235629840009327092932806857796893591239615756297565356630461999175997411713092970846779181843064935516550945394390482769079226480605729689435993063314365638675311119162369635919990248960621661413229005975029758655756372131553066880133140666245454695234785302178472048687816460799257489667072119696346593866693496705193864671027266325398431770742280592021408216512271292341139382062580749125244080240643400660459927203957045814877268205385775505409561287521791244310227561009895113408032365473208662108982859050885523723543303986771131415614206303839712115924446154684384348047381750828595509388566894398907990062914556253103459012037615229679444908155950969756931353528194125927068431281787788821879260849085391092742346463584462637323916848750895867406384866034667876338529202981812281068486145245370339886435977933065760406955487067598364143304934330448455371490906745205689990495941063256289320236312957361928503439904282701025717592020173856001133813420176638160781753467642589192830511149075156568013079918365561679303515493982624680644059526966346145696412715172269316490298909019053435249744727830139144992591533079409767513637351322159497685806090324191776492862878342777986119223653203079010143169049581571466618962255222502228988727583197442359405860257971878667889999343997279793766330466014212101887981757182066148028816768062424550826326710283919596754458591763189572757387242323493553478326087825240354068198187312070571320523209461788221537532617198286261095777671308291890285214225287847535432988913859923887319257671049925017285767575509370853614322701968094206057659033305962690386637357385984552524111426401065414190796973316062563239596377095143593938624068757840684189510122874509484899177915152887596776785764743394374934414415537306513826513171637083226426117663621256481517430956533818023554286924058920323323266355148600497008483576578686344810904183051508836768373784785634939618802817506952979842068091798136172514190046598659622751264751140761493566490332378120580410472135112823242614533189712637787324854362951821210785452829823049380605550601824771033155025880376277006326722010146447444601180195336837739908335759382943084254215745133287618939134824861266805008873579850333545542696836231389648224482908269224247669542118969234753475262773563726045770055310880261876216749388859196308260000939958554042247951867607750372349019016183561211269788357878816565752761534513858939892442044768962995487087812609433190774919457606518136742979528584608403386434414990349956421097743555231888326131089290482758940679415717628969612631369293033195702291719031590619586589015564993426938978285502836824850744783769415374114132435118427743714726922528284326049436038728502713420767901037005129452255732441723992361842397256423593883714216344807770497439633926820290974002159040141141544419072973026582236242476905994658218390743385841567341753263600364849963431905383433046616640669722143216085296550205944327076034400965001908984822871956817750490204434392388120876108802166172612398799541526701680416284830383304747751721429731204726079008708663079800269339171118969142095714062357491217518001687800956415618580671349551881951350732885821021577083742308009434250729401060466587608577957917636947914353580508182594360027572868925902550572738192158838076778812866637130293892513715760943880051186151953678797015861493678635337753711150844089298163724853603494152739432246122132461267997510605784180925132536826651230395360283387354107595769172296069981546388953989009703589087912127259447766284779165578247718326175101778607767302304380918472872682333718054802826557132576654715471020664495986079872159423374284936083533965344897155823732833007649133401134103813336687565104521175517194572180833436068531830579997601558017035119456408694388932557383799591846648660768774823185755286182680735069115957346410833350580376635566808639484452695014150404665105167370547781508570040590925729932194680795951704555868104027041187570645197095923690778629024557965333353959912252742624523405481258904163311076998713800547612318011822763303963002092815631799512422347915054206617202185586987401624037294264536254738078968738986400870462715602154266640620939940079148432734916847940738971452334631402816664321372615984215156179479711715462780563016688200496673407365158428666524780578739340541984664420627627966891206622386643934054952194261130366349618907894074026627586667098071240321803761230720315203931414515721750873991476135271550770614966014773848003481415380960431635397697809812642040564218327626253098949038900244138153715725084884079942090139066954955722701745191837738002348687648417687411638603036606859788229202717579956943085952099977472365736181773149382197548636054876613788216668404356007160817464727896606824112683562890654177430315705616313348904214513548171007415883246907044968338879728830411783615167074715973942493238877003807430960059541950551364380518708773211451351124641640403631519766493658896923953738408929202777638869288631766069220092133866577956885413206431015606231126743126639253168298611235965329687890199717331567297476444604569858391827752102802684707160735596253653089120151655229672452357589223589771930413402433855071089437377367891897343477112015003216540120530211123296663848141913074765810099396233345850624276272176570661868493040279699721878198399864459743314435691637268299958202506521915426211040651230084524154841986091075210897911428547124227550273989908536649712224368086699081214514506045959371396240468759649486433931730751343385823943055344765478474572021863981778298405907652112327328498447541705699420725622463848356419659153038053810233842931126637621542660614772700952005289081897727708112698425450995555081419985959688123397372105047296146015663507783941507899760012145993134651082668730682316336423979781557137556176475176522047789582859822494062612439931447940604855394772963736714149636869964775928148753389047457863946602684604519400581654934596116881398490004623350788929663656383201695772594623384346737158617641104061760119640886431769829100440986633440992936959375694132977948616933108198398774051418348742803793650104007134305090731091107023067105063972409643296173445537263349917845490512646052458481364595644829203028061178387991541760993068117940293789927673727819964422203280319359760065081704413552939746053840814540447862179891893330268585646365318760789666223065308465161522017639767292240063633576788047686570435488447982079750044272531898603151872240061039791468694475945910855252362173108707289390257490144220630499283970975967384656892620701028506605855820119771762478084622192131819552584997617744826484511704729240410657730977950371681888244120461797944264763623292567992549417373686245760399141528222439817646242638544422259350764930259497309306135379372554225385890889144838905645773768198853461974223156528974241741538389750853279817679591463498125358255373993811738995261448143326336355708204024784003808057503522882083414999256539640049894689636502501192910428125143894705082113747149629797113229569056688160262347460020244421844656617419232025514119224460643840969174793065893202736360366229749127389822608800709689418007825466348492918100124068829232052118414212130349263202015406965313267065388365852850057820843744666092679119235714634944484908187364846503428463620103200611887379245797884970721755789291089203667329804630634541595101634753106702590758911572562161153185589169020236698729385282311202581331385508611724080028569435019981888763929438761704129122654379273183935653112740141376585238939285753188565028067544640145374760739891280135886380520783747319263923766682833562407081810939070585561076097553481700860880200799591778278427924401993978208568037904871085791379440579303838952233768680043147726029998608292036943423874538705004976893887550318519228200952153039519796035586805349345703553900053525592691777548494883439891444174360108245809183306824955398836761047627497753596415530496686900588832736803960760859270710910985165647672939153795730507892692497133392393506485892961600000654299140949409071513583722906790199878102466002007900366002125752415528361897054942797361077847470866000348745808757615072024610571660809844460912370632576129069939320875508096035546846585259043047721434175951605626819344742467273240799283129077416999215707722185569035913884764107679897594510009611625658122655485888445078643533432916367051638607942738412234558435954935421873462684815459654205868727341094016370804759490435284159410453809661808738547306274669930995613608563612067823393096393905047420010175793283184106523094214063233880943070859982057556145666415652621539366199046441202242020667254123106506052366635982512684648288063520101923111146349760858687198664691011407688570219342902503585225356717676645922523531906408792134749817848894443672032311366541444413055607606822279349013122841182517954892778744216970576765820346709256921947781810199843717120228240985907889080744258997041223424766507633517461203454591409711748820934107013382935902876558500790640522411655507692270818541551766094258219287077241757094099927538275884510690360106915316484977543079345647711509441510401981076024651323342184224801518013032698734766910553956096402389025871652777990569988564846309192730949088539596130910907535718059041266049586670669274038505183520039646662983365466801625811349184149299613060430862446726235150919617023058689006219662386952893014652126952537790120046985488330765196776216473088018171276273640743602251906125630552677295472922928816187876272945456966381070802202498062177848374564060854239741070304917770660760897503079960055830652128709456541539431595842398038018721541901887396330818064029424397864390770040162383197062537339280244396891507899491054522681099693704973015308468503092447544040705984270484957631977687268250811958005569321588996464884321450346715215531273292245588178425251185719955898565793429837363383900774797282204935722670661805039229734787754340785828263878759964539827337278867064799583504233489464581975682695497872651034800265048929965237804590249198334317123210749422056966947650796351477948874749426548974571970380708285601906307654221965551908887480286445708672047473695158527880529514217505035889585737057133248710308747916021379954326254441902931013509006620982622580773571663904527931366396946305406953441967452916139497212788540637101283600806106618414636034352163125127805661573750506739396270766855039890098934152227689836147917268040002550442297209084547156169848556402837713063404242999998315493946421054682246359556774254419503251892664893470098066931115233164648501791991397485419930563647173643543045945240727728501410030949625567549950734073860831301858153563222795667536377024910243420378551107286097981887932485633362178990444692607350848853507380214622877914978699939315894356631465020497415059871364198665882316829805894793504729829160953577618292763793517577400010964684702131071660624206745465789471679228082473570708522630375132765082705088861249119285594851545133323286495698643773890805191385365202776629935748940321276190592722753991128886188905164798583511948958485519836108818773179273150214590913365670848218911511711049217259569108969128563905045363993396659764014490438689650668609117919472601554012909472768914519987548868858368224010518378604480033949646997929578520562432733578298101119966897977370343582777201834486092394014189944725381823251925532585954536611776651237619801325381739642046054032080393121556072186861074219062284556442588801320683745759276046619256803103462170284213130445902660045253399930569498910310636689944884584474723146151913578369281893962538993659608180890290791207588300581230186246744557913253587713463475906679859833348189165544711709632706508230894791187658249987600179589886293382928582202535318867424636739615750057045054362672781952970213888558480595404807575347012715641137814905444299537477716099160857905196851015123935796425977676002048896827248021624938588904382199653949492463454955778091812270361365535725813391587098391872349491386457650474417749963871712284659723320872759813973457545762559476790050896310429252858646983509620997924349736713125958667564729477237450992207386852522309985983747027212099738123829034188320382216162234355313773945068295036948833185856915130144834434362249890036843555564785317824601666426081426542993571569446804887663536427484956066408349299974710961870287507393836901422112135453236482790389600860969758610420671725951813115969142230399131852272225434043469532444618287039095592211193624268760815675543217263901726785468819501655060023752178255972484704142391811136123403388560802445063714280712895654482980395276017747339311014663450576659921896219421971850938348202091205176237372333561936955740061697444247570880593096363959066306979816308402444762768215528652820141309258609472064207937226196674772404958125449983135617606906217802191480510036660979836317610737576229408083992407616770563549166516341864103829257427203635138617462967205046572890477760139967327590011098501492343628446670860837814999988676812712309030250018043334390328333337817361967699033226050866901520838234026266050834987848975268111178979074794192483477728670034877579760197347119404293302303320199599625198122677247519410756225750972716916206920841184248209260757453491380806000045938388084524717480418488521522257438914566785221135180593653503416353856025463347690121976421821269499664972746189606028410871658480293154920138612673648235275578836682894139095573177373725697095580013156685134926830644833210386903490908168026469130575567502473168878893563364170327426112497525214940017885466786251864605955098229298463314891746225714281225604975838714401755588380225886199674700213878488845218647008181471439271245830461847655066329992513415779504739821785305640536903811138456585712469289698757704507194034550012485088584001686296906581154807486396480768478927188661734775771531886760473207572845503978737505044002290758260230995266116324736761184556627289428703249754455886699540590174526226193443055931842833534408723492675118944780448359617755994009620918694045625337372715232959673199714430920303462128438137663330910604874883624311249456626065614152643633933494871470693569745679395912651419848372881550738036051351006005607444455943962279395991818947759812662837095352191298597672023533961659176952159140660438012251235861805832766590146162794106944196189422171194760464209642390758864944157183303793080144300859899654006196659236969906657516540922610053734358544386005131960995903927213237178213091893148437110235600532077577498645917161690837332853067245589196191106315786326808933660582869860407189263797239032614233372320231353850774462816465396418082577664406997324360080456638957190331434659947668384173330685704962755448977496449006728457380332829757343778283709206389037492258941799372959624216239334809003866819347338516554672139378205022833686519824441028963642398684338178736983824602361678637700629165597622032682945763737375533667000930030289391314254287045578951609757769829055088983747539442701133423948483960772653748487481248536005752413427203162989122606788164223925976333885188200971705399699695235180680646630953161055082960898517524936784114015272525564131259279983518859982430584574104047757937266302027636274310742088621913537614792943201474164480814332980943579287023056065488288856309244101564089014414294546982180995805956388769643463968135455634748391252286353845477263198406503848422226852015593521628991638472043614179057747798464236125311444812123252437533265810146813236575621710837967471086150713285118516664409303038192391150031976251708400333564209113524744241969315947004386210927005115711140370514789899111240366032658141825460610679896645555660479889436684052483842999444352773656633286047301430794982556615202762226691511389372815260020687896202846725454667920168003001964586361922572422322600051221649420408421884770475036578602989746488501496982323767754882103649577892244908126583290004272343657100096930279829072048108100046578510628499297556111612103167445199681050426517741846877088880112267424162868201415468229432275493135954893028761809524404056248973320574702087440731921441043285810853846916590170502019468276348304179997692254148085347803212035376686580592966976325231864342927836902041452463120229851560521853515970802406533703827820048300955712627556305048323729400709050559633914822477313429600505031542398543642001352557256584031273562219708026315171918874728441321361098246426361251110907066716140055030116589932831007891284053409139997221763294046308271249851293081702202011839691811300595493968565634374944665265638778945170176992649314460154251743576480930526442099175274965448128987833579294382419235808109942045016989184600983046740675489311798616838369818141461219529807997060265876525749094131496487582525362470026803249006163305858538301137539243921793587894236175855229719777448838146327321505361833340688784753445388601449929285337487429358407854277996673271756859914388036455820026476772684807302417710303384017156520021669149227822963178718716580563825147828336730866132079962512372819440620626668038122341190017659300106153861943436594960022461964066307630059975071968455150536607929473633665840005544732808597328329197725634171092662938392636531873243193564135385626449293440421575132116272421996719470312754652855551896159643835772706862282962192133818989178732257370037998598611369743917842503648833360859514247498409470448417286220511073697232524855617805997830803491145282648442145437505613740347805058322009781408224392049852684469852813073812814785341963743412126454243488737618352738550207047172325256478231348125803185639607949705777234648386019784054508196649367070371692684774958005778601403076793731474503410071171119799780466494555678082065761809412003616570777101899524070507610835927033853803525871114627164920129102020760911668812276071375591849523916942583156133783196596838362271043156168964438551056683338765249260497392677957586971911640691022928299966119621806376741480861434785206778855495893011051436847742117043136998656291269629391216278569501466086892314352278897196058281903327451798512179984052658066413134466405511637424152900903992332402762084037159982833169834563015664628277279202138117217543125582784027339030445942448540169110485087428951483727200020649158968689966414709076946361863021557128223259323034856111244758620902895156320919977070684819421064250026460666545801352354702422969232875341832130656752055786545357083033186451575076491792992941104095833317540772048919341762788845275568382157259575649520210874449019126395936823002359411939612791441192077307023976584902001192372647653729628356732870440875967407890907755118265943002049967343855293192830444261443606937037421076856592476160924693692292204495169921701190520348277412988735223028241974784605305336523738888171269703038701660908394092870101572962397164160336766842250480451533682796205250439635972405217916098983419577939250972054330334678827201117323070864574898041507883246802694628877453837078421318881619440179187459920998057656055695918333291739222938955264631135133593424210964412680646834873443025153474189064563999954280599073336189276901839219853059405323467465630850602200020452192017461600388594089149870847697582494842594503360095918359361150584574324953047850874758736542626116617565413686760106887661309322946838499435330361152452561782663937408515402672585390947254638736793448064181656521275599596517008381851997460721113216009393631962738430781549161510535084791225000120596048003742593442934006775870251769796495220671019800536070823741790383445395174395453818057546636192022133757590455229151751191904389731698920372179840834616824946025182013498041252098671350249539169650969195614123283911802986171633870578331783939953677207653806907866125627510418069437719793590540589364719194723933654495223217570969478994750123098977059170238106742035288940946957941459806733290149489773301906009947836550115370927704301841055642431315228692136406312732029816110106673105168968073248413247482730560120925655881361011165825115877601703510409085988297258921573753933589485579930137596630275394793370639198001062801233509961169360869204863009692020704131840157025573026586612300370262159809529185209699228409344161528652543178723386241335927174098133255803143462715694896570949497721419939694116136678692864828724397891490535539118346486391343377192195601748073571525702365161863375837375581221937857268892900423414944825707991633289872477410735988300922314827652284113699620992939207387860129684567725436919668629387414709900017235706173466973040610738913037751754604364098432476305128754490610769405955825836891472991658163902685070405968065221659078952413544801550677032806430461753796831961587241904465346707464295856658507409872732240747591852201258419531923603361808855117494813492025264020619744395160033550563754599895542664395517471776190570737534087203200441847358968715394076339053038529158315689309877830817752645487823551822493948239557008291796228635674747086867647775714105122319818642686440565892656120067414999096508170173801966053772615860467280760971530276978493506961662840332858626725353379514858332668760028898949556798668448946843362720768124041318531611273361295311961553965081982174150604681077021390589231248458718354744916445849035689646290521805384097669702163534497722409683867622118514345797524246224953323718766926609922642044382790822567973044537434003722894779048400926939339043098201522197646620129808352771506695761424448907390106549599587292211977896097519056707368051586402069802978380733807579587105350061084287279115611656432632564837712261798036050466922689646602152503229481103256163468848184787372239501618510622677391429059993607145758561448380474046279646848204357023422298078840297329730720293702024045721140177248352618683954037707392448106556558465329125421073084750702422607987645164145553505898629491574217980246407840777432112961058013700167032481343577226934154400439579574594288804862553087161676093623299683014015555211853060105663209981907420583387189717161925640768163334879909491810191693180082723568002425646012178033615825849158201662960929007866061826545963022806698073722530513653609802661917881302381975380527320919437099594192374603046348355267740159861896166329800940463299584781796366489818786266705202837146338850919485443726751132336268398368384786400718175785946432768198774869676066458358571259256215095794893333747167605114370060535554772542558226547039821024117986493316893479488185989314186940015990572460620050805082543782240787911346704300996311897929222026543058526348357941388029239486149795637938673939379151402199569848854942405170932488385829425130140478195882213134152163462596075099522233674814000663394286001539040792774250277491314091607067994237896973657047948318276157404707003972229515618819021351030236561912811056665730701085482343362385702780377277768664677878445498889681261363368013144671122468489389604305908236721931189834941364525277516457447958399819018562592766714631902088217590118366113681550746147030963668875345653024577307018132243605377267220707092658536101776121261360434184249660460270708433260582439360608098790885823181126640598669838779374126517215527253156277750190023861900134975868280218113015156914731277722029074509777367896214141562417550824533768496466964240432366113940988836125582337851241373855019273352385914322951262329413215389610541977740548786704229231224070863201310271066310434461730476309210253581376313566062396962872054384725159853202859255485252912269671476571430271862859558902093208516084239844519088252554502600546220433746594598101928578529832279224971421459125496481486988018828614333803151230294527839338275715601122512281964632154235019091455797473224806564498892259636676156843505564549138736692956901090127141979478843770884914155510216623097806343292496514194700035652620400600262545057446062183347869504318790114140586240463162551249922421135554228425561029963942412670658949988534322571688020800375306318497990834267619546057694170898122544935635427748054787217274736218504372372544557779939683416358823038174572397258287914799987174692553316215037585555400524898128596498576879449002996623886922841015013986980195593437773358603339893098110746988886557129337485407375233993088985701881497007787844577613819376796379200859513965705232021863878427540916922750717141729878145895123390447020278387903153781053607590518278543040576379736326248525559388407956687642305583693606593402620642798627541172928009907882827391274452277872167554699799634941595051166508956008754765803829715906191279730305267554013221960819907681748288912775702561298486970737932781762299945239104752552416106292492634723673119782287318286109130778272413934856307729045313821126719522096611078233361931837150754564971360442117708590861797353496385521092346749311358997479748188535689531141769254056854511529077316664921136586148681855197860927001906466918839270812466620268190206489562702500623474280988578815527406035198166539522354696421103478450629498685296082482043216648473761522442969402318078326974814966200774806572408706309366781042464429886790258855567147091896286587443313849050785755784849925998782740825231071346879915609100939221781005082301978610512169555903158716155259903920342815379032017981819573691934845236422425711327646321857495153357796848170716771337295162137340014564626041120419559883646486793810103934480037468510699371806720488155174232866081530403971517048977648230681925168043998466025261219834144037465434828205745678354765258223816387732533983694258799265365687795479409600349484572584806139706280089463070362323001989474437798907591236430991322193877622501304114102211137556252481003567716257994713908788801907963418806459117448928513267497409406739297525042317565700458352459865564171206953588663621651340750229433140761617885249328289161901342590788744216934170034387564512969556018651196629060490582279024472232898102603867770983209681865226804332541999640913301461472735197242233582398424075982264980679459259141224883360148315910431226616660474350524350267426037949339000846663550655482128595432730145835330068993370149472449445131687939515967190655392129706586903364961521609892983820198219395864572791403122600456988441271682731873161123816983608094105681990772213163146206357878532909471390432324865641586031422569336873675604940252879541397598247492336718757611027799782976638424849830155666820201036131902400556793816650658575603058603692400114796403904415521082013222996954737962199576207261749277282268168660446284145138525641356969512232803941843702845308356542193551955456568060781267061413101410692708659771314493250598900950037230717501045841624208710152664135128946897643742612495888029321913813217261856067907364334093409078525303193306270646631227237726464465174666311314602575158530393928612710954432637730561002300942563198367084658971959326047698801914218793766083934912883883999132391787138084270684106846179842922248990633222882256024587602735595944847101267578870926838512860215123255114517859203731261895099939637177998950247882702809666537653382127696056039058679407577730543336137175138500139680477115423780280320292936112046291038998864945371159156057037759425738179477493232117325520397674322170941586302898417461623605052137367482668003718040863791009163293992359686580279891605952457746681107298323119157065061388801610746785804919884982378141745496745370129234849121161825771844469474118946740428502758285298718780431134823959312758232525027166077369915455311999948817012938986248900627845396418007853412959370372962140391295059018225308748232309524416066899766006860369335933891580086760564706791280782969220582654416725992312886450628757130945395561209882311948030083323566295867517088077483168876528489014795269966610571090158365003146577384220189214365482757141347245733460461879430745125659113544792925214978317172559634538038041658869542778384197435657715269334253331845219051244665392651888829947971319606693224081430922647772017413741922077129249479875041141815229504268727508589596091226684315123537327053102589031719201165646049345139229793129306266401835892723650045363101516064347167731406311160232206711145700407797165321477846038841055037834540213629853372951699029494386217372568650998664718219034428860693206138909605153653702851662206218483754696421587030232134881934136986421305776952877679702554567362603088570200416152319815016713245769338279365733980994798338133955350024494151033781186526714304285566283683237272608981293030589504513629033198697291703786548896886796624117444285723335570618610034001298228428873544819688113422317981321990720891056479111751787361464844106554228230380037087110591661302818275916026647535988705928475186845363801049493641006808085409496258503524447856279431000985625052544910170612917727325447280255992104854023090264923901378199860161016753105962446030028465767533214376482124134298965231485204080396398163662649578557508117043793727109056409040772032818512790169036442251165787452809978447090630048936403154632185716292547241763611448692150074000713013267538791487631547940894138252877276902291042577454261245978644056231113306627965964501049898108462110058469037146496649607749593228625044344105454504693080149520597415343498598134393737197022386197745084249513930133195754194726184009577011629679219134922693557872159097551221205251801122279337164700207776975036196018717454888268778289039096467889123588752295191646640417503338921026642092752050997094470353158110393459523061363352682509913195829901465857573987749648487597351883626369334289989327841771267693846024019880809930988122365306163539933040595356609710731870236170029457469710230957443308380327071935047424799777019207666352964045585715574559015347178469282560437618479007755006005810109128028676415771462995766181944043650166587270984627908515130076627537791771168789124915225479983782356791271718858093244213426886810038868067039346391617720034241482066829527480220199633387380510504400867098197504523749187037394658353429655948391448984081883426264308938673604331684868331325087046800436717902790249679938364512561002673529907383948095791176404016375356473421422411356942998993108911232459813577766563888298192410367228141384152238475353750108374593490713382258145177614962397103883749025356207485384362405696028447787520531288128441806182799259753053771115996895689599437409968593844667568733127437438956153877300851272551171618847438983571563861100801981182474439116028307623429602847085293168858081289345036890359055346426109790423927036330195804278113381000032952703842008331362916706653276080765812908530787718425672955398552640572795186403093252596924780815517645487845463118424989701676798683817537834096572332689301991732384445619632654253439600039718864828295037564093982818188955521521205933836915217693721151902378834348469684342041631250662067009582549443916093574626373433749396380396301882252058450061268110369914229468093886858746975196782775579557954998513794805814149563695024701734425696494066495486145959888379160934434567521203572565491957181622438709831845466950787838138897086886983580990443541165583999630929861123481647921767247038934025404317468647433871735782199988863601318389562885055923878143314430951208299977959769096329605318928352069855493014761856847667221227721700846028208690223365852564425264376268319990468627849505209753819626366695662145592019884323880639315682713850984889179741048670873775476998762250989874445461692088215170154123715836078736429170395234701318202212671146469969794143134316542823104404363201875783431429600809586211433548939901071213326586264978162248172453516082840752207860315690013434629798744552745069923323797590974154751283872022260674096053941451564422634854910613583059290584750919975950227425536097137469442530247518792448195010034439652690514045761749137462115365917794804886340881649251526600730913259643991600790705950805925480798523030678978642545665535388927952846078986928354353343326385653888147331672972299556066028533999035847326728369940677727157833752613778461424408287012314271098897082658456946460472286087611933107984107703961565214541585843213830617863823189539440221966341987808578241373001546728918762955359920164949060526879755256269560522276796950554886642301550841389976601043675509216564928243814009059279287186021871563278754415422418633046277682933189523888747102811090096094899370391752925591263966196973350635260579693151008052354183214524149920154795183463019571220241570880077432591840770312709943632460973625729565032368991628926329761709065562678018556898518790765499962200404290970325732740997111724723607873159962964224109598835693136462987160413269839748858230798734245795399948886704987738645908750861950498382457556481325385363261821430768173925543866675263838531866320804158354146619116606201309270847994214336323620191153755801360915288171945604514526994042090790725212941460157887800982956755229322692132580674435513211750841749078075215942593925499577182660540460223761654692866488611646385711739020019648710536989387133159274593578496238693289510806505024561981140105579365144902330602317449198675402923932460137045545967609066561612373312858686973217051486688726149342658768741743062524328767010049852063264638256184066844499129756988907435780777089280641585495329017496852226970863623160592126186280088579201846947119117170652329130980733784719925642768017317135399543504316243853590516651192594857178257865763698965916939490286840505681066041359203041402604431091708372481891623822773706156260703897473009602880634755908811842727182881137287784890222305186787534072890556923679798782597779977711976973190003935465771985829403224095433335860593986136529910523713155032781939307319439479739798169959123330662793179675828586848660845719292206233214393193575170944674949953693440573485203943176722419449520074952290652389051321086359661680639455867639561336614793930773085489388098732241245670045125271207560666601894257659598702885421298041849796301869588379539556153238481539480289709698848838009818970776350709524747439384986636458861287253482254906278803068885094187561705220659542454947927767237958619933038461746540244440864829111667206354466883408845172044089384739042790330705307160473502254686242306004145182604334801975869667630100588160076126453790609306395255301841998045519159114432060380997263125617193479401287830641999684906482590105696327024364698046414840147707242571284958913509886179263906120404441078573336362529600030906044142163129784369738118016446323684466020840768063312448853871568283785230585559730170863386359495767912591768693449609362929485245393223268116281962330188766116921151151602920546100260603108926974165635239448041906701520714685865822645470706066065707970551396335760622761635384433304096479935677276978192737077047451012241556848855934903298486970424401359840141829278180352856088689888861923788017396709489642234045461801950581891961493332855546329419441428301162416933772104507934848215896254470901303588263458877854759071616836304411827717861038898994281710347866665773237875361971857787823190293349827964578888131809533097277323703359590925028156361664659403324467182517754889323378107691790913882315048015816575392471328400291939258847612215954267990027730990542007359275957183198346094959752216002463944962897478196122693719315996817413639768367042298547013188661908317434048520778188189057103850621164029435125020668983147985641581553184207973454079969642586413052853768056173939903086072241511370970704533865786055279590561857528034898030328220519650906333978640035172420116561794347643938187480612622290357791777178242480064727876342994084601589237665193550413136925753086488821889976272526722911002069309751897795193970488359006969286363163706846773544832070259545990222924412665751858113521114091205256541460932146450014393614364391185249708638018703284411019749890965176649075937006852893966195239109850739527377269900403915599988145254679939367123760262249766141826494490985369473323627772563179104461370647279216820139637988248923600131099825320052571831233322792756444788019497337863830256691527779480600637468508788648376005466758028690622949838440378267357883953758889943498784879109346603399017162720535227978204235334676721204867786807261393817904416466128938703220220579196986370426438012317800617549885435450052067009524489488727818683694358344931398305430482560863818120831321151158685787879615275596705092805728919407973969728569735978606428315468631006231087123780344696183085872382965717860800733020932866750952278321800676802882429493760040858067540047504944513508098747328856189723384667847510510628493566204757399999009304414430756322523988612209796330384327121408877358588352694978252533945906563036946031590883960229533491540087704631220058709198314433398449866439033635382490090541846940449342591390421171081252618880434297718790701429172249420297398912202582221933411065840400218287644132063905520702291058621147420814684402155529819147442549398617303242404174813361779989400073685795041638768220812356545280218124217936822238956061335566273080156080376897291345681147515109114577372131503143624583901403963668234249287015424281427989308549020210349886444537015169381324243149391850832962956269426657474308186093785017970904378764255761939614464373469284841294868533586467267990580369207419363807266767639505012857898887702748259989477798635846964963525773637825761924960318232887744427307267608877965343069923484769693021943766140945859374188988158269009058869661449254414720779129823792306874119570074363738532446686481294229936956887477002262831934698034979370505261037746622146279988587862154409355739851065623986333339200238288342848202695774378017640413492984060631268617609169859004427427028160341460502146339623238586828986361515343318120044504228003006321234078386759218172926570418473191380971433461212812365735106050779157510419334129568019316900189057915329249392894331178713043364308922596322062120658256031033637378290377806135928819161435692708478500632339236449357105252739949841004106203536092743853779620349807429945424896239504146113728138532563507506333951020319210824107746797252150481986447663169413598547581968273761159592418920646442999083807568901287847296439676972489547424229702964728910513149266395253698015910582622654543482217993430504964440735949181758532765119909626221487933608293941991295316335137307259489204732717705511836171372714640860291289547337608674943868370220931368364662297902832860600082966467341855741895602169973576523197674780667442392868923184462449221265561113380181573619422723280815843537442956524579778403832511267807124111854122595784661609036979844027621868479129224917169407642487576039521474586858579985416213461883293104928601487086631520341376526142014199348775550126388649964149897623735104781210626748996058085425552923566585333946984825997766141827720751937490482746209891596884921034067086900355447804137191004359179889418281027759235301354506237342149437976224202638660263492954686533097254407340895459182739944525596978761005101808137314901739924462908533608445457685937607037610124720360346719004074636181451571212106444124346486157512746279191335792144542002995216268640727786040155408086579997142057496163879983219765870586377148317938476763368163286665718849980799228394312107215970459674285093978446128591859588445380000832453539954856400036475394843322270846465233831387381552293454785908071693745718139444223844985130199654843225147748637171903328699734027405971890047910225363565980002982022358992284879082873911624780812227663957806449259020718892624767616675723060471074663457782302746461230019842603387645144723819967413642074281356470813241644653486656109714973356207244529890616665497853210304188660197814849690166310554045975367365057881940477512982042975563724563202752890456043711035281395925823586575276712124598228683119857895697898411640510055470458729415452921557291255620338233321995339856542272922063176679888977961495850856908528646580609264756061848600164137357535097552173311920647276607997201583359204826623962043493090903943506063889056100727141676696308234582144424146040905598176175105566790583602940852313841337881507499028746915604847585453974238108660025328136144969232885968336189983426044908688689826958430714778246353316090695454308296180426432151980002576513709976933423070990374020418695015215160855967909617963738003502824724067196930645850306509729735984642132398099689911364256821809257613108821327671101171157066108910582846612621433420667113989489877922356745681226145553875337849795554218155711264695882061627700900601258535991597789900947757120520432595114904323625762302494137548912257283600547044740770837436652783059704348384181511746803624419385684563118732407155819791771487067598442185605064894803439232783334258266163213490174282201858303415312622728258635208068473606139170460320219129890617225760579817226982976550708864240858948941686057417716463140237223254430560353297453501664568795389119177644987143510586319682906263575632234739693476818112835583114312152944332621730076371023294249649213488466158586266376168906034759937582903780805520100280744585959778365251442860288811548351458181413953623087036481858455799465396732680991688221182527286159195260120201237148100299863059422824150368525193666520298248888320445854557837103658443072294539348686184666995715274856067461387012961291870571892508253228654024458462127550147267927501055487245187321735715597473227952711072315703019325929122137415442779908054047859947471175964180247628473651963615836320996412488962128836010012114191346881659040323179571233503678756913845116462029610395144170618122446802527461446731063126960717761311331091860880890472782244954645446271313325645129315381208347353910576900740867781345514038864584988941278151549949521131218174452802930207005145926115883241494190755157915443268725632587168914116313217628145837364991798867806596027947368964203175959534857399166915896486119659799881083810558313221652675712378395512162465666525408595280182504964259513681849366297923811560273025249555859176786347416822496674093684148819644156514490357120226158707539501496239652742791159568880007446860425227500411543912917998331404881783598983928142122304015366860245779589330623610079711376706248003855903544809578519243149841392400403778377800591402640515662718511008566862946405113265463623300129400200518053439994104320141251941472151059976524333086295345246558329534685712496249340044365171580917553564163865098243295525812992345259262728544355393597794825858514272337929747055914871443469423871308656069894109389075209151620289772550355787690933966629068472180072803074292779080586314740426891111277514738007214026852168324165383691751938267428129483095046788798903630508694951263305355460521630622964698000206284287056346099539528604564536775485037985761868596274007349142108127627825204216978435508813518765292213759037294691349440509016496992528682742018584992460975400688661865072491794680000709807919198641176951254381746853678349199756538956442504147169479234739961635796094808761440679391978884688312551698674519128356584525866191537136395163511087033500609885300123101313524577964695957402207949764814102624410228511383013400405259269377055368497148538827748952445131816550882910004673417658774771662163252709232741776533885937281106444368028101468340655661740972674397973553736903332516640337429378482776355420537208805848941328523909357001202380604244949842837256540834649293225166647303315075167564508839320276542175868468830718705398130147696169977755653001707226661318681741223560981086642422776447236677687941454681188808577873724075241130556874926219650381665080615841537643668217749342380066483521564210090536317872047274585039045837285013255793445585598172486763340584729019113190944354048948806041546637660775591487754509408180324041722106761785692208074177752809559158747788240804699659214739763095035189837246113812540366117813617828761540317590822338678903700921798820566965588412992383588845966057343961645493620295441339039794817915019974288702648823125757365761465088713453601746873748765162392980712308308550892300149033951375451000327428194409544647221322254068689715133798356619297003834743872723347720309939798978825961126908207014340660871415929723730219766653217556984202953053841794207796058522763974537984752481776752793671250664911785078650307929544223918198063416072307655095670752011184467353929908376109578462261574062669870385836858594057720969949819145632848736031894349501276034055719092004722726781990688608992251680374735840907444585966400106768122313158098890823976982507257210360380766235182282690761309699533044393431830076516310674494604051727945835548189201747076458410462710457027154367051658715465605128064092033818973927958813651951812806393702770212430818449992694357651017538907898073395978885464344247048713602744098904869656919772006419525495699694970343022213653666426654139644190518899749048604750585232005400966630558407907768076907909811505554361547350686689905371890972155933370160180091578410952545514585299837539417775988676363225241148274193655739712013173070113931847176974448075557121810167976524287432311260827827055556647716098383211665938824572098620377196829121884507123121380645826084762629047243298001006725719430082348598686297014348530211725760619015269647164519407663872630041647075735002071807309720878054637011989331698716172866350745562354742600589436501210563013195551165472924822353687803426156145280513185538919647681842166640923068752518855989681014144807085914482285124571233358605495609909568004017252044979350435072887403853225537281402529471042486206086670682958865443149265625097255921992001599888490090172710837069561095392949052924184551175335302186282660455008793361386394215980658291800244406395304916468322789174145585452631470545887601627877968046021503212342383539303316197193017136607856813703775161120492499201299923078169251411270793865102100745292022060319140565663572261832883307444060645022120633890762550363672271903404657891876267189291959643984837706787573546433600034279047171828715552380431787654279183351491081006997746546698318615665016335092510597266208692925697270993053030367097881617509979976262662123131188011836325884544837149707656861854604406089502353930972722128017945518449145930058795053731883994774155728536700400382014763803711702892024257406239470267170856916267272819945222499882553945913372972841772305406450532350148169507009189027332499446087189943702450873797845424893350602974538123066792275939614798977614140583696794662417642286700914902842752669798017185079473709803671492854012125213523338283844612636797692519058632586605239486017079734530518744082066023979672417623419519943787453640087815519536135422632644689873603794865594956822780023788295849561534131467002803665977103844323326847219717295442116101538057646170978442059578879958235535074859111752719711339149996444882646281614752065078163440108622355877950908712442789513726482796917311184442982697970927629156858696579739709778657202407904752396432599414872373768672217246089811157883893270116996649072025511132944199163630933738716904456288989047306400394410435826506303303224192997223226506578748000741439633075342117497513724212236696689730043173815059591368257085425579816370667229750168931272085108768286555914897594008813101247562509508305248487991050530563585360471583364651531658631994571916676519144935135416670346765612892454323235327558954285882236812987841938694775850700560170025525756974128521692339817518611872940364410830661606715790848848022913660419217083393987196663436432610095083274006953248860108067426362675149889908448436093261849644560269410788402873704770921141584970594369743198240423406017144084014404372029398160390963671571925032358108873046790982818300380303289253543579476858148422859310151973783347067904698437355447579326202566018830719493455986082053104752392026020928251587269388740983339849257071891947712528618801546646229825460372873459021958258076511978254230082608835463188065553480011980474076391429351528363723734277441499867629431302718048409609326453854101317002846412185117301037210461019117451011283911722103473687220532514607570505638037050134135528355748401964317135831864638727766377735801157776338106544519739096498562110752590502968516869378112481161528692128815706891230635714623071182865518114066918129795276807790224913245186874367592133927462576881662291127354490129901850903749267816272223212490784158837987413589442560624170106966582596381880760378182473442542297851936903421950525305681035816711019488709296686380575808067111942622733055594678106994883890711586902584520884565137203757160063466998708082453854345080194035014623705299012209444519516815031286949056982118101811137678201781152382183280708557771760836435420020568495283463199667864982280678188418090669103146302282207328631940131632283343611691310644043035421824858344489403933194332217687476455460711854317114376473652683547892257739055315853201761275017703996934399589636589917732209676561159605433358586754273003544287132705032944374679791488543813368481226524817846605899586174214287107494132310369510028797996934217043843488522025471281705419267817325206268797812006766381712389112919276738999272367362009067687732051680969523098539646720104942091616203698237983246846883700391740856933141778223401830452743794289104440973883954273814791079464923264562794252039261669969714607465812928829411005916718499227415500108405378247664923852526305383807923796919858662574245949788491977491485256637362674372854443023511312710194681560386088086965522095126703846556405393890227116416596196901284769730876240327709874793527833760902934457713567542762566441208034880362852806164183507806641722402784069033103832551146083897344473212524804241500058919330272456559773225035251608376123522878690942341346635895409581980093257947498386219294725944907418616676452703436336084915767204664711672000623398609403874957479429237909559553952987836144251808988454294907386832904784453111341656849721409339319806665780601692475525292369527482658332504565753965861355383225170266297449150559315611121758138401498179306522883141594287328787047280889125877036618352994491235878682301931630949512513963017154838653210433697302744148352935123418716186983041531496971421211453183692148853754700034776824336027932243653147029378104495614139667843241566756679668057359111486911321325087857878136800758247227580246150894754040974256632616907788380132265592296822272576291110875471714706844491068982305704795901004525222746506623049737665081693205429574635641812947493104642999736953951915116641706299326464855722575933035766649314017198047327488577689529256280273704308959068158911976307334370776606317380226560720378634039181902908760361915258122330614653720908240327921319648111627567978947941735132651684772125718913139064126010497643214012677103760257003576685003423846485173836992138659484895719981457452507956679445060415799780991492910293544458536608683911449297743570616059654476244338574521907183741480102376237725847312818048255599090455938330428615838802314411883651861651970353105501356678741906041756306531090450832624492327853026928231869368304213008200619486249330215821416838371872474043674864489189356947114260680235984220802154739994475498900379212344124069142165661117565900261443300555644165000810669975463930987820276163800314727811591094316857272180427260267261088024010303521658674158861755866950497772376649994709475776571149482022412722359722928284304662885482333542426004634773885495610630689131454523641457899878912958875191146737926975465409956349361695382782960217335786611550626149671082126547943213408737008646026124232266498345503483841363465506248633604535128226203250092332833087432505122210450657874601234884378594780934164741283596627606082493328518356760643766905399411870755874389042026372799524720292197563272227504085679886508754227488794418844983825081997413442903673481159202929867903802609516102251717991618507992179155993069931507747995133779790911123335466274832271325206752853268057712959458020495734472837957242730450981362656535014247180304660975079651787229973553892349332802991184408974380850194388999660923401150252756720930170920528726230922167830982426681998946388337080170149807867716751497594433706711157768736401265653529355761634433754522795777966335704116462283589773317199987490521662886680194495835818856478573909706274841571549720926269623645349254413801066586713598772338735488790424717167842919104529322723570984226455548044951600440270683017845219079612769419134679728540900236594670478168891229031860441603145451661948646578202833905463279584098860783037557483240376165916565912351841661655054831500557749821254524740168628905863041604487781189783315818063237519389953543885005677387675779895432195129233380898287660128912009400538500719042953961904246094139456774528307657125221429160955807719683525181196861750607329685300735707608535388939287371202532367447992297703736312870339174920510314371253961495308182248642305382043092414384821338838359422979667757415991257670272541723601809803976012978177282580096547788436380298946596944085401654745311401802978156414194698478612389641775393436459097265281053464545837035654168936514224900259762853931865819894099821838678733269155628567819273531096344656654041139971671345751820209093927711362450214175607835294919806149779314930023835356978497489635484407613520949350075273503541001305932630397347090242628317466109657536319626531806411860441374637531347147686944189482721584289329487779140835617291101375841070000464860431215670142811201792410566609846629730272689270976700196778185022443909969608817521467589619271804424301827287726662824876809502131452995655637012286223852924549690577091284393210547401018560224459973608484143156102425343614574387579740775533267384960645454184064585021479748389973616400437790482745250992645663219684547333413576745135641297304685399000704630191515091891695282351544245453951651325659110001695238624007830404968252143011281834827106820116128391062063299066431117129396175072416304892475768339127278226864367829068349789684509582389506789775665618265825284023751388723217894360104137771047980072616675174790334941890321486786424556009747576826861511263968520359976484945866395193099197139834149191011515121845717195984152363480172724782783855880892716541403756296885002911382138721543396128417733178877328050992099020590676093089657905300969668820538833625013449099001186809081924814721172270113260360761518949969178214126697145383364777881581652131088208377019296772636530014699574726576382234122815429520164365152409352775821061703955296047080616124115614410839335437670779283943768240461754221413933025741439949287814624626205746584132364000048709820517986839373906171043175088383507743290707882470275708493718938323465485263649729038650715355567635014271105317186757776674410400451638488237815173979498998481705048217842131790276593750368323546070009776427066172191899658468532852252879856698846053777065233324681314499679112683577420711964809970925608869589564324413607310190246545239599286076419841001974823578413684599876390217063424711924805171314164144402341307056200867728244042316725293705052559586752273978686259688893039502639082020047502375328105730984227891824971671815542117225600552358828568526787082788453339664994506282305029258584082431738547654975223551471228883057361157795479421893973198058817049067962641779114796106603924167850629252212004986632684323816700413838881364487772225714367682301968672020466553610691585068893204502722408190921177038946868863561298394945561625010129568108715898221985348804781970877327714258389028637787228302095373593063118106294324544743090273472417499721741995250772161206030532941008528675548596029784470615147669451269963823522393644228281724888029245893609908252039306537526210095762999429360777141015419554498814011914744032297057111039400388240503399299665098046895959920390126960415141197801787086338788549611831014495355703875577954748825424075011239826045269426914602211285671065476918251868437371910406530893522826987733171194774889788826828158940952987974100979606272994136797294937838564662564362110469743152546681853052094793812625226976384878450775401666133188737740330544015622990808497769569621320113501286866260872255392291389332053129761185493907810268043749510798752706760745896542035458700883404136266440943403592303636232156777394508406006933551271006407822151855278215277877690103769182449162234100364967614103820812873432593513499163237605042256553504610880596875312968296379314718136987235876872860481434075753340374814392079064762098912864024243827853614360194370026486370190970562830930626146356899319296420086739178053130768619318490230217943422271916860004515921442956502935343451425132004003452816546180741793886009333195054678752048557102884094784127411690130117526886267661093429438038509837472726273891267035425054936734374017896617669590400616697832049485475317844192715580630311722966915250661319560529917835077008917914102322934465400997086941901672648367872613103475087029497289599587770540878074150863045787221202419301510558554871121929609597079307823762549243510585526644294127966523214525446784858086011269700601473191142046696061844244135528004407590844268246463826178755769656194852959955557483365855367471400343506814528153786104013945767012172635061309750993562065976922662510175778696741378566630868624580625218004059683028672068293391103304585032987680189248755148657536183633261358007951694177617338658641040241372139100755562695722696468996555962913339395708810776302138278703009291709959247835743898029183604340111223693634602629848052444558217872217917883508040983064968280638204401351567854713282938501368788494181106130957017016964121286335971477094906062533726398219480323871058872004636098953469991004159238491848446137140844190440770378149360333767830969301617329906204447164691102760217470398562480673279236785434213173497617849772560192625136340485517179873380663647166482652275725087292991296551081739037586344820190724052400717928101899223880951551373009987932795668035356190836139703025761818360364523114796766188628562210043621115633839866894116748921643360224655924655892719232301264957897518493082781073609741342871409782646184285212752646459666660698516708719079381984777758530850447711690468352815470202763808435657622304468303299454735651012670723377712159533057838956431595479931431132841443186018320776417520113744801924798386126990668712630359132864744538460332492319113340123477322759167392819040203000303353023163416685394154093019487382390095762233390758754160919247677448666229303089219079190399127494164728368816604698427247054031133940481356426634481563551582417452836056331495672931604352929593734799938688527970315897574768732794024199274218609819184912647016847919134705504296507179616407279454459466909286183796015766560732824491030161202103079110570797434440731822218485014206635525278912941544684527881452878126730160414265089963012335969185687570882655663569063803908206121950769406607040260770611281422552130509661629634373959432470957000149867159614635128813046331400055512663166782329218681320524890062779970741315219996846941920566917404941718204367006354990691409808470698364526782764545490049689472425376721803864457856763613218978492511867890051646151896042432984743040310566119423519489465367144207453643882060660382604733036380881071012679079411871328051934527276207985373208001202423775519457712639258212919968966285374316836535505389969085291467975377629824014178959707627402026283156282767049505729784799944018301096224706345300839222481174925156593151583790221161429374871001116217424092051907548760847146809684051664071105113827547403009593619363855906207719240081460846631325141728703323712297668983676210337106994096641956943687257213393420081564895378753784477427973716724816875093581704585422169160725280708788086117213837740641974628120222764647897696463669754871250912684406541885453326606725173109283537037867003135478656231343079013323697391246483692881471382714873195380414476940924063712471958537076668338599969434738568429537018285596666025391037390714590297263581562450168972342335463484862725829079717295627038229204765016075045373456719676059378000473356305569868678068410665682239630060197218011912235236215758471772225205867341961520081399980362260637595645975073740509549121998885421199322291190056368551428274467681244080736146596415772223506322260115039115051623585480625865032635795563764541260146952910053759291161086713073223551372017495804583029229043207204188681686008515664660638093199231540279082884512711811048960813488496029376259853324171100295065556146431385170974754097077170155165346574376405132284136424106188899761570063521902486715200273122967992502147272115490318095218316603966643582961388350513906082161946155733562575031330881919709267081119873573815698180611282350384781860340179747192477094500458436477776559779200937365628398235761869307101172124482386126244460618674661679975539080170816853169639537697862564300757586731789790514793093717995981899752255561930913155125806531114425474152928477055935436050962139428683032320730062653424220445297833404197724234588100800694757753958612672847816183280725248568251684946610955893316817926167270616701778050882268322952589476279106756336651618045098614451004089541000300349338902135245232044480967172049481760341175232043822057749340169443796620980716648339600743016052128735840866896067541190332095691246879442545955170009689443284029045551345672884185410281210660289166166164103370700721027245089074920480529536834499528829578015718453728127267024450726798841446220656846775003176916694111808698217827834689578856611939906132142612010298873058761400265992207313384761799382623086407088608883342816570191768772474061796051262187821308832490015084643180811446421836277173544682661924936979348185587262222745219825744458172454619329108863829576656362044706841107402737618549182434387740296657331144302494998770490437949786425443298216882445883871721074150407894781570891241452686005104663937213118764575862891193690144418162463705681638689405193841627493005247810011590560830440321816050591135682073780689032350142962122704988820435294372859979877479008213886637099400855184397482341898358275971882832459059538464453368927491295497527447850271356657407799709790652423525119092956659635395266321652009114712224511513008579114747529280064970248264624435832824769396631165766628230572795077302333048950459789123841825469244774625667808767705409570961497519124456544310048925029943718428816660728749242960530535368637138175150832223340938009178045408822310537426219737270639131826257189563959735924038706596904113727674398911624639396335959247685100556464302791774057417448046836522635107071694037455770813941929987673762701622817353900544881731247597930653259737304751212202608023577017996719096448064073033212799376360984916174372054250365996122399904388452483380082842470253950791789551524735254952015953728203677341743052501814143516856552803229116699842169708745282831152208509526816245258845975608256329504873838449219517370180059904159394263847416784243128369274853860257656297708248057913038802780524322685989655142275109649669803513871143518031941850287003120268751822703688296914963029081968549178299549409373636141870976735570016527825166217825446041852706352543876618766957528353793166032406576672705650015711578776905127937513314073985509025782785459522542000901634376632804690443900448034326403754372557786628102769880715237317562139220770335649187688289948272146773302689629544154668258944216902594956967149896703893576319876875362867612368418596956408556802115810152276091128514990763139104009808384217126986570311739457445209848894610742282977004501036099876497313880121707791499515840742562941254049700508417075839465866792972946438236954505003204337538510048882608389316814225201886291687376620517650127316773097421175216980640781193013027445945718294965721810952243218386801300740891529463794584007333654728593186314502295554466585084371452141946598697578821020661154146847487877981660095571562019839064532109233266164485544268813486994569923101219023389111602278981531503235031787410571325059336531532739396092595459391300002629190502634776854406429902016855082745261455169433643681161994799143545424692686467550597762105483959828026735737990398166986790895796458854251394869828116707743094109149955026689701252772572658680967856604488626357009317179497471777759705586399881554076087022366629888253699112125838433820550510397224161388653359845833115761265218890051235910890260410231745278895650638546890365317495342247030041315815146360387773701582827174121369098055776970790270586476111045792403185512030512714452432326023704097132762781052368786472239428472575101543142127666108816820771997772573705707688039099001058462798106561930447709527866715605435034149679912641880972060065415459755194461598060685884694876142922351574432148941278969749866895874795513258146568538058647319861959763531982868816473208063688537231797465850280395033628975465236877917372690736710680103855726972026117906099448408194911548491831128184688058821413181149802088116076186979279429982359003311545283554168202196190225133799070410983813275953805925369670709946168310528459408957488019032056327296098993450817220479391783938996867100844157124360908586053168404119779819263814692573772990753299683312834221104536700174487450832814460238661063399574097690188777037713873821507797044698120647775370156046749304522930070793050970418026632319293375648505268837369159214170313912354027426910899317981082065437702077086453750212857216010552039644896310754663382785031660454617858718241670540845427512377307523662682969965183392504587731713572457246320118504972150044516721861111220495236226175873009839982637355455778813551106900515369996309986755172349461676546279944102558412206995240927760759139937684798614921044460584373098826804836054252835611820420915503564935913017455584542752731906892492500421112790865969552906319395117880420530643524663552547900024584113391390738735499739805307263771004791015799500884407578010699071024621366077658246247059590442148534002210279747011404429021376731972677921589351078862081608827306185456578923893818332731122894926352239526290075547167032330977379195768429316214186519877922681154336147769835482761649826526379850482497041547204916737272316195638859792500119937578305856532733378277336789002581304634967316289792042265904025908569349057397829275467938077866585690591680771019588198568393963013060642082837468597784464584541163670796446637531177708624426186840700592084404692454351278412517197001149353060226747616851475736133281915838830828382084959981523532483258607804295488897862008009452013813344444239718448653542002432253007058413239859520209194265912066258717204135680096477663264391190146952938303767268518809392249032329099573779157625387733400399995421279422340014671855334043092425700647300810594641687166198199391324292128945822799892194257773657187304166292962204222678207330442222856451899034411360544881257341168797667090765604287678399224616916892002742033669387810883742598702986287063590904472870906018246263065293752359740905025085105431209161452431298359982534632234750840166614133710446917383562834354729356557669290295380244740794931000137578742906215773242675759188492736975002226278061067783386276764157948467477357710252658868714752453843541085430540475438963720095757243554507777230807988064219609623545374962131503529834985641519843314612165377798589120895517877471226072402691437664061427485707196707926581674828941204060706470952139003336135653212406541024808212296255586486477532747581398517811728311838002600762074520683434449686729227536312878304428699272077489351692968832784043252980085339134475212058753756747363344194201539854475971102333708067451771009718273857692925771386346918019012106938478360757288863339202193665454802614801286119062027790461824643500649558565269229932857203160652553334872129962804807339492270511299986735061426276005424370808986526084421348215343386650429032220801943199529696118697811996061350602881302237697121525495679577875556197540596162522005558604057075891849262282513671293939052030330367122762354250494636652692509465954797445081101262936168152651632330310140982383695236054472961780328379920989741918891372349146517998789974105866608624068542674845162847173302356269261183290428875413658469749058041108905417195326641177458785606489113967337773608236014962971918987467363172269562757843486730944376979569262198332214367163111553458029103285870568056964651995167699472682772378111720383351081376502072289876701681982335880673299633208052908950332662146776087667439371494273560946039225610599553530094768184930566846587559839212811197770380539118062971867561548265872023623239739642010917151181714017206785709759350052762687136481391745508150540806588091513836382278056278208144565019395058169677244609685568434827853838215454198862823002738806880137411730489072904837784249051744052268523815774682590599326293265396705504610222022471611213994442371198320058888154170132198271896402800686709366867975334379749860620553272785205838195093664676007872888106840285276534642113143860498859996951669937977505296660897552067838051405696498364964920182637408486082505049322562088065518360025132369487130303431809764982477509345064534061389964066755630115440700201099766245666160898761385523039980491996539165708635975509275750738555125140921719187938129007519187438791162919879237446289903530163385082929475686644104852423655825990224259183450708697034122479217231921149131865692081413418822296701393995076547830742397679847655204004785130878003195111060298079028787398391195259946587375511798430532126214730583802352913533421217437729075008619305309358347069257847367083271469381659032619710081831519989216442236098318676508276517477856628679873178841979116561378947066720865212944990559427806463551158633850027472612665933065794208927367131679665506974433774042137145229412979501602368269813636489823392616112882480255260204444704052615465000954530999231702074821190883208900498971238714550685033697006120340850922416982171912178856203289539236129078687641728998640155354388380557880774288295960747111004736677186517380418196928820211452618840898220925505304179428625562160011727065421837890940037242663262517447469062046545161813561441780195023162127476381353587204366693730666484500191952717520159432093337474861304592741062381490860547169043664706637893372740672750979254082024380488625910856622159191959171115671338906905307244592638922802094173759418697643076856477357381997433544055362659389862135867084130110618906508880124412532009019925335223629573319617597231535432444950282339119169388037650163659557929276713888072075503824765559130755144728146231772117265958792525992900789425605816190600479008675132861539268418217944303714072420122660011151871109168980527378405490604660544958463903080194351916074861767939678697999057536094214243786871530580741636503934760119242222483974342128098082155723510180856493265061799106463729152384894632333428829207408875412074647314817997474109658521191638365917650166623050098593827383798333214798171003170794855546514755134298765511055794763729725061484202811328928309241299100611629472710638827673042676140886174313310552334605486837175764639502577265651386212890243871495011245204572828938197102753032248270991944634803150997751987681156732681831932030453657681911394590766950483080601483545981744704218101337485528321919425945137109799826417224316077755132451354429085276507029517288719751870751921187292483231061353956451759839834657284954122456030564011526477193190780072607406102607571416522691722355035232061377512162847688406369685519819614409723640254497283776786778596352146134709199891446978466065132260997545521924423909074099804309870588260592874927551173951468662326578761075534075198572544100831082150037040571281876736968420112121405131020344998535677323260875210003797959364844149580546544076490281099813497312786946771465979978764824176416235895735172310676762149708868190426818979341909046851977476725714385136150290388625545013225560341704477560981656464930511044729778876080914773505900124092944331730503056536630145485493487336182835897468893218532445728618906527590364618162709241395392155435084383378939539881630533955943171376925878193288415690355266820573428645578743772203385188375174499066838579506371846180764790154106903113958250718052853995238081872393212256332013239480443915470732014380107206447818045287485801237153392299690254668550014204443200722674133945914032966369162018528937600478158666477735569524547205310838816985174735150277709848035724760962091579452184928789259410062788020618792937569990454584580875772745809441774305949900448551418840361163038024091289979370614048840920543515080618544919893477688486238339735283502624428697987575549812801600502546096135552515223011469667755112280439360768842475604770262265158200766837588856724508664997565445510845157319979246471424442125489601655500784082396240554954935809734632431967024853228857643018517600493844304264371908271620952254026727792098360646339439111820871987328070259255627244462603081150911757600256405223086146948083827966149736575329868699206908394911679591287009034491011368559431391972748890792210031130160858750661070147776522863613077579871383489247109135602464220407778710789009422037362176226814333605349808781529704271030991891568997823907833268523757047303040778550123749473848940576584314043647971936173521324671062577704530749569524306386639972428303294670415956339502380474147606611311272620858784775937006843535765233327007727660187220714782045941817535811078941287543031203234690231114553840488149898246881263005827171273849758011238339885597303997706393567978291755268749996563214242735054548716717212098872715007262129847002137890532170187519380681137674454635831460391404112134873883809185339896586325455508677131607712976945971057762528528099310628751252042732062953800030483711642599752329613451739090293727363159045343201164199093148611756179518432896668017255046724748616009192593112573726637547573599459774356521168442214089439706590706969879194722147184954824154828254292847717508730369866936737776301372434832837639818059923837523556008451526981892505947433366641730556954868991741565448812159124784508735942393955702892846575533715668320593441318217345316795324247750909289058581197395014258387766776009288839706887759674934171039052509829010206166186583687923211338391474206401758293777388954806157631355632496123179712872917388725374249754042771564173017550048807801210709713611346851854903350655175383185996099259762851065089629758718634574958325064426204053469838187337585979834803053148100630553555180002904430944900762678055936980684657533587424649663154079099942404034905765104616053627820987431797878508091025406878944135951548425273277873700055667770777416602461387960805369242517695976010019578931852968425984330423685346753422475919142658765292559204745403698947231196747678060353280527737883470227007970897411289553512873724890854422889633967896610350962034288230945522981201954884459574042939392709127323937048680147430153705500702502862588240531391181817849967540516203214830805688727373627286283348920743882292496557945598154777066980547463559036692171710384013722520506636301634509778699783017230609886949087837449657248335400452155632080972778767847349646496628128052963172932552543156461858428027912857354227271941549730352870805347357465419285447557983813947198533362203870811733120122151715006933477941602538770108057086188663297127788210767158585895169800716980877978472758312373312587701029310164718342381141208415552689850418556036037379723579523566964474718499449180919333973175721419394924583563648073538405118724170639759871986749469937006904760758111208884909328439209134232284457878697752825423273497748479120241405414021676818305718732972187211813857979743976172827918194449427460546343944596707779469502725105123311434970077685008143263817433939556470563884637761011474045210909248441047680186791872998289784215684643235306255750848299207639474990473185795900325688744124367805470382844584819154548822700696812307174947322093333529426154828556586881185964993763018526752231113729517848124309758313565181851591392259519601599745117708939033772777272388778610843611641609065339038786137877499610066526131422840068692212873672950417228331233422636555736765616348808673264770801908639148966990725441766735702675825400658597332960999048292119791162576575989687803339965792401188052204227938282663014141940013857928029085403905494849869806958883522827947360765943061988987542815209053573536665336957817970703372416576719396908785545661417574458069388879278369582378798573700163803274398575650714229927132953531317202600013807180638325506172556106720192941618397751451413536134964722050533737451610050595805142683055299086262838319249331652119211209337405112257652079972065350728074211834604595338335578597558630958281224270408650963476414206340903841830232271519204573732430546278827899382892821665300184672494832596662714915841455999849481269404142304137892198059470093471399309052498143078760103684122130653798783186519500058994701968473851349607686920443754188394674985919746290377690072335284832392893198635423095739217539427560981317658574143347393086991899721454766564253424442512538006233140868784355491052885202836563848134491741032572609116891643899584995135813184283292309757807808163657099773298301136486572752049537383903307250965515709642740384481360250739391727700220869731227119232521451227273018819411912326343282677057223807784120705579380933528590172944224824158647528904428103357195785726733271673717176878004578221440471338587351410803343802549169824787788431894482256720105047064500918511273101674503292950098607945042948113118924824595078722802286642211570607436557071062997778211417653359714378424445185356396620659931921073693324956634883946959600264142729361871106209450631800911464321013775278540876246016543046468044854781569143740642138405282366262054877976310838110123520306952959393240054469103639268470101463404267017754162295697701237852627163495538952034633274938238780761146136925464951499688886538214746405764694989321801965841350075523102517145128363845534008901702905880246108971629267073832680948997252858109741560044331937063400782941541096084563798270139465150458039073240201854324697481570763327475769856416672783799034215761021062952284147523108218992415392224451971869531477136330993210475860656525587144425631091145924634991115408468813990635837455131836806489633715922461282782730569711158892907777081357841591447072395595567534254771285300113179713237712742097982836025788410477602430398525855096980742673308497560083652830650200757845027576673694564687792230017282766550143958850062267071060382015012630653870705654029606588968098261993641638337885897914348149111787260192037867262808733124281906659134971614562450846237272834069315265327657644193540081074865584444381902231535889600673850628243413756951888911447612366919072108824837139582279674644020425932635032738876164139769062991635910968545399103601710714061041942542053073377214748360004427816359464122554308458199650196948969959481076142699994147766611515351450328268225833833697693174712867048737566939477704102213754311187733031531597878190303243939047377337930544549747938655769737994734468228834537559830296396622615127287088714620982985750334138081860892116550884006961496916719847454819263511159580781248234801195157198090152337978957126836078212106551400606757699791104447098903274274296871899501397828228739518691300905468983034088064583196498317912166614285430582762135680021759178456623430160749334424572641549592473210463219528398918032068201531898490642082861264863750362521280949300633806402472056974284150594923108500222753938173171158348888372796919945577479740015654492743242009385917109273545962626593490088859440449490756369980672639091604864751011138250172447794194984631111418876996583359226446080181583288179214332875822621363782442123043352110256730981644909676292853807982179749908026220956298603537623944114150077391672890324248043357174589245352990880386735961681236271602782590047847724700937185433943086976682433211809075745961065897279550964934201677926503470702898636508299703136733994986729778469209680470871401440671458022861890277435315541724847811704512742926873698503581409495605614693288931511986281113075275136531926132154341342693491186476243301272807913656528244033598445012405549891016245748182104302484931759353557342774440845588480156324753886900513509244584131067692510152241974646591332466018908660325745790402127489545740701319583549883990479964062509662872800312978417619976908326787299138644835791417766211196236345712281308405942002241863665109608872790287675774561622783965402220975262724601096095792246678193720892065447195776961138134863694552473145356455775563097713484798216229615091416775780198833281031233951690751887722957366646981841785476016192621575692772114287318977028817703388690471884750577823930309235944515073628002553277459909432373540089658073232757944791130972412850418955552108869608746638159462688964324116876700041870569419306710206906857097387305648974751798401644911525655734189882748188869164184908666528133891000546721085840631713633092327457675689274608105013838387263969548086408408587228325981428094051939480891617071442356299867972699834483930351542598066835514249872445709707835535831050037074976574995660219865323602451252466058645582792256127281425335836723967495830416745663788983440100913163847075666875426058216544374605597786809144850480951025630538330206754240431266945391214394947305460918775659410147051838872830706785455744513056217522758687388853110376016951609250936674960312277902061491116303031226100854268757552470732415176631700569276948169162958707060576916285904290550618788240773095578957859670272459594609026039858035807587621498768325805328316135560159880813405750046380347830008368929537762927041316817530464385189999565592102283142240712912450082621698861914480612061432019365846146389937310074401153379752897386099848450404037566233029459773357256836031715746302307626784480641018497536449244329276664055882645823797657593730892017499688990937331929269465532942414612553970617343758756623844977034686588322486525158359462785293191833620726105784745721451770031782354713034679275965586235744360002624634681867545668892637288491374882667036949501338119794435424222905654912778590230045990160930993538431308719421807211505426949595382169214804633939574351946633404860903900335760360541501948448028315606884230597421782761211058920711043118269832400495733281291949498318422563482064223648298359166873550913644167955237298622161456061622157916842936332075982836000195789710844727038149480654500815315715006772328956174608130457731425359901707828280538566351820571304396220253821942785253422304790714912669383006572464955049916925783965497338557105035699252378601411973575325558619103208521974557107096096134584720279409172321208875211732537553957597808488629579611121841610284945181072124460437476415914141457194351911141941806595731443944958776856683583355298029820347092666640905910167525011492080216243314521998726951701986166652467465696906980307731818540554035986067605321196528189665579687165939397387480443438078498563722961424574936432024637227296284452119631782608905067306099098385536256704379584134261801589782581266435868367980526032964153320303829806551063618676149644217331534538460969745506234056658742944074656286141684117868681324655581128994283841419508249978531642204144745369120886055168110242132851211691428600073045887836422091648231615330536508709298870289283444237687536901944417551540170217394114078819112024174489404004261732490275773101069103940661416761970388442139009459464081727654417208206377699823028308628585948288754199183153801764376028780048332342412194367269944628931610921553218637560628486016458066505684966169421643640480392198842506926210648131730434180991693796900293414772632732586759127074171845833805344967891623591661911853943600319388078153228400071954510897896785131369330706641516767653868836241952247757757821471472345574138943091249138968698344277133871012296175385436066475085786562907938237540821978873752682049335755566861645260198883175111467014456171354737234290244674701346846065749974431400150600776416704562296082101833132021250560875331776303043187222763898696350396796271972845236109223714259036879519703264900143783224825082615347857314124716511667830345031566493245358486099395600731502150778977377046755219586539208835853199967494595386672945885936573731386522668963036616851238782450345595542735824412406643195050474007373922535049593246122748110484034195405401958966568296221554880750952342004162019009992620667310011295524687670820848280078498131454663245788924107396317963508104762688520568101156394003750912808962656290601388245235973061047101310303970195158315701495455370011027362947191852117247200688199969829413558802637867244246324773371575704476154649812394778679991440757884155121965249246266426135715797859066286628941276551167154503930653271711103157779699324959224025784472454336270322303887618956419542627466829773103592060836323227980103602213821599236328794430828280803228370118704836855347510850058533549824056489606078046205264967685988034511861171452072283506244034395954313464025477583998884172962616351876610984942723565508504819493162186856906917749449237426529808876454433628548273456532275353139970487019550116382550025983582508032128669283865837857250450208998441350538024014125966266958698153336413140665118037461772255100084130448181088507709702727460999491202413100060624903883443046345109972162793286559431740111689859019562903383026433458583626957185119555976261309044764786518489637041301738283815354355366829536247115204321057286491144926076566627802271149804958678107784255912452399694607204478167448403732151011730638147056199939263369763599258073465466466533476465006918189344225719590375762667037417151256150038883560870345052392495991586277132548772136978814353234380642064881672330511192072068074796039123954163429141019817812852063644242602661403582958683126273976258213000551545114593528298772326335183081070559304748238078089818856285307974445446678846235864123521041277941520416035485454167819248918183265388206955736132190439620984324333157106528284111845606811645087355044676580351122749779595381798387022358201962281424222652401362720474108648383213242537489068373110989720503477689266577014328783770583252153269097694483765891278160568372324606387091944469353569308696553133867929371997331932129003471167719018867891072499595216924124061215006085398881014999769560028412908668963643282434566181988893602105291068584301753370122873798860997246056634222569910983392976792197038772807281913761343083018959108729145819011628965356999370145337237532174499694798010052302734934339760930966425182173329398290650796804037107866143650359578002833621069751983044630043677030427221110578713265891634292131781865237801702272033305918511522710476364563298791122428902220330533084962969982802799935911587799960754126957366268652033651110744120467212696893825547079937727518577166691501602855096479384157502939114418232616595742635681677932440113511418447063411173865772276476648323657330158711376424345189341688846396609361577113987291112827238592102917823360247500724563591544564376777353109447369255728541802709854992999044059401831558018463345992908484744116511445489750693130709001998346026582008529046478133831907562224142752090661780621512299451611765592151776961621945909423387266968433750103973358474909872601419049106447220865877884049344270798605811843767255336475902670154610474600751849805830170672977427130594780019231011838032543490895187215661294153538760225489633618403266745376730163818077926561812550507983614052527516759887597963485472946447796920204060293306331983626369060557445197223867797842331099919060879845063211200837607379805929266333213525810209187684611724825349122642190930160097635087736683792478745672337589364259571912691130788410978054702587073146646733797068709928620422855146837073054269350690706664696612464082134794095054229965383861289507017180992265342174711269294077687231746744537592989412586411037029813623323686377532241564376580879451608448887176582529241848912221151736123094165562942331534872213853776159975886970158200173366382406733492493449626560519349479697090136109407399341805264357645873317885052187619441028417920748520044044476421913839479317109096752864930082425795045190405789519022930280060903630523265337001566705645845525295997535690020013504231974312798181369967541113853311219151522117843828682056594940497122484247299346063604617336191862884359734483329532307120110473055897060317246757657797950834195720796751483782182968312701312443898746090362692404250016831414180726881558212505255807407289592230844690049548229733163433385763634951352476432075230324399664030001448381207420524852096283459361937247875276448987840157262665891553469070926572462880040921166134559196835422835282909307160375684461480403056492058934150712231289152521455443271161452219845911105723185784305019313614130209731879948581359782429352260821561377282218712509579419537109975439870994024496102810292306244106363922001819032720163357071132842271964161086502915602431212054746733334189113470537341860103924688234340220667604113443421684347869834867761907480326122911729205725731159479109682342717055883785732834984004720597065735723817148890089329876931762297621481213204754685522681132662057491370595907319168038946282904748152488947339143446100625785311257176098650341655678852234108388861435493849023461375615187730000161241459046085899840466363230457664884389925775327693665209528330215424363395349896102853927831475326775341869402785704429678905316418131332410732362491544311836449226168317954313959406713453227208744137938779476271792109842784088540613353684370033597260130342955498294443010179087531429295745390983999318487885934273310113591955269668226549372099851682473850300891319496016200149297225040695730600560993829861063018951111617346986818814369069875381777607966985862690116390086393096114639170097119026804803902787823734529177728496718725646078098881704910789577241161046995193294114660296752784788159564558187233145290531186086604767651159496953119950659230692954754702726741318827674433523874451589014073770714551561402251686075862131733806168017704514507306844821868896690177869673811000735936445878417576290916764207916777540419573011472461473333134564347625033059692343359806465214185818800868122048085908955135671185673593238643597494352009876238550778214879821717777126927069342615757628669292806104771105350092392756691604650245148746052100999423207121547373103853754848850119046779354770958925040045517201535448990629141378612286859532502997407119755183309399949180093430365357378694869901745454190723680730719562063904414238331936335418137189087518363942403853117351016313625404776287515563291677986596415263462517873737060272705980380586421091937003496759195496572130753699271001274103338099940231405553939086055775937889684745488729169787013170578861987196774747603138889736559710228592699549321727416742282657861881451617766656260250637167210856804205098744923008109375065343617772067086756691947449634545570608855580082577955657832172255208879545351394712902479340495219970638794638811795158847059043420426003039633150877217800517331088479987147809200279491324354113285095632331202509993477993296387512626334143320485905112586174182401978152548639000762799586612019364877696365745769238608987177947237152510372374198398503309526253478268308944783545038593803014107024577441631437985368251257473134395037933199743162893270242457454364277140956410974629845039155257439879533786343683676868338120008312265494463325432167850521352336760512699013377975768508634984557807032736333457933974832003823792577640436132171467782508939507891580188605185514482989606930338958793146166655742533794474761646985871512175276427570713998460576138656261691126829808232684433913808825141553563295851186872673684377281963506435856693889295699115047746403063166515886596131543764931314029942566405252993484261413253067640898746560153863074632187148765257637320628305930411765735553975822064913269714773042948325656735113256141756979344831842732889823000115982236267993980490945888112905952266229826317956757756461791487081932630190215003026534521516636009522091390296649306499535397291002271282334810348460696587026928541593121481593131272550863845895546123580446635795251739520203133877422468792431148125158803282389371059319774765382891986384543651419054510957374984980179409766362017573876911569500516815123881345792550836592178396948401122620523750785659188899769088595357555668959837912528402993536556317632779550035718759074884873528584626757336457329255065023380975895623662383377963987297514155531736996488638422214003923208909448641533894572324831858494553104841910488964839907884835644363323665816215514513706244405942246063023347923619787853569864237280448808558668849723216242826667465665129367598161873719739250685614606013862197957406964478157501663691574950468662773309822911479804206723625702071495329881398008151410562087612356866773176081658794146792711807594052325308086573633989944089818150324484072417762232678102280012364592039078800256057633179494971499346867967944395080959844033391783518211069835789515499499241145876712530275324027527586870877546609312515577016631264016699703484504900982580950563840273364046467848103111678333473678276031951047845907299671637860825304261810761213047784801873336730313227538231059101494346968422134245828905223821671399527343269435154989354923458651251194770386327095267423628925755214840448611787710830595741562161139658660736866272298515715206543453684105186900836598785674577605699267918710277376466577822105183338613371681488459931221523931882703556031387495215085534976030772823778356604973271352442297727129048255026812738151076863388143023248648836729884397291607931028714443812602878629408695680050614943872673789506182773252854895377017667227591054163683089827924485531438565109104410181552015256473109015080051597177668083255391640995454912304038354411469328081013851934827448775858554614151565853108265687709510074945810137455236338044231977698443895538260535645643469059468727139521128075733834214705116217292299870848273072199261611320194752231354136913760942140191948398184926622049181156023410285165812169068142623628729946139146425474485175219614994136008215372096939823540605864294115597591168496099474425588409519798912511706846414996615200725939186194530115648360328936314620002594368780963149616960465354768850787199551472164613576700928309868666098776068468435083521925451150644854829626455957013457240643469254841156684028703294390391752514192295095220814147134085337081307441658394598214344213690631732784867732530810766547120813652333945014904971016052665288938658192294903166508330490678153625225060263629026371000933479249251551192159827855313189407497786582325658616402351672575414168099926205865309354842526352846277972146951245586268987454396113566181409926589295404399369494755564042084629185156201098562778044745761666307496260962483845953727944047483060687168273982183115106105827318270986540911173967412714895594416776946121568898091197187739019026326001737708942117212335879094102639673507156088975591743281875812037576817023127454784456915702121879757205369764951125957439494707671238972387681863839995558931856612900044302837079943557874389992536863274052329135259360525434496768004361916974867598930915234833514902799902375693351297906078388849554816894904939989800283598413596232950859595791897442111281301217651627322993759897674885141439643899168591418966110122103713161911096685516377435580159603755977330396157733535137197215945216051647590186118323021214119843778110662509060950969302279375042571718559683169770582758592201645254949711730985904863608247299726451505440458486689440443329612148968307722356347923872029050420151055098541457319662885252801140264382325390877963178664512874538690786301353726864865556492637905219977508263005878029554136094466494596200284797619970732841780818506684351851089435148036247299819718398554955768205237570266088551209267334565109609716058491656157269147015179417054821105295098268884749923175332684728512836226795047661121786412126190893177299571064910467584901460051135339877662630248374025783724835833434204414141841216644109559032318070884996258280646466393671492746991955168724671349444551275857046815612627466058790306515987730371840634239582863927085728766819122728252793291477470429740139760222624709847996415697313452303449928955897969406117473144912846410541311366869617654956026935609524990792712060010418821768493393938107155003405703463807183700102685735614978013989347074873633026800989527846285265334133329833990497978218992905511208900256608034944529095981655559333565434307367244900775509251810606492226237085821503913986580684385335792312025359592468488826719426951044299767896394579680317127353314584204322114781389110342224614065462678923508800912045576312776877373602106971180411014460949264374508522669710814848445103446969906187940351474410548366062771122683113752642647663980646319444525516378762977480223555003319007661399882188325809123539508582584449704864524551988170591642422705341268083777010326818582340204765647641421478268919760622101170936943336478275011756920451219454231186353357257291437811964892209719445672938796444419070319591713329327617618947549563288930743921371472718727149189395369529552676852908859968737713398848500306753110192923204105320007092725690834387673759102586080765417174126030382264972282388325337711868934323212337627454731989380341566890426841525869901316816401066023586964743962929726646859174083726952707941213243997118620875989642066193932969087694022918848545208551022191299637334790586563532989480039278424394404621553221780346793343731502627865735622583231903419569907081985741657210734744575556157617352693422980722422016093827072279601541175211784734706215018233300445805807050131803102393806539760085399702967234199998307973487265868764819421758117169608840311060924737482148787599882244877553905579270741222765974848798863467889010561393014445306504867176188065767376315780112964948704662906505153001970441919367080919921621290863964162031168306187812693943080846099146497895678834949516468311019377026774755671216065807442505418409422944629781915878632365659682857793568234727573448568519108729718519671065862722801306973550552527804572059357150965970956253658467595846080267497654517529324339627907863746783910033333614434647525818276540217470692777912432454060106915889670775751656862106541504217238114090051806236864598937622228341977840674825326807172537596340761218401825885756602166018335315147615064001027644891430024608344354047455933224417713142309279114863985152716559812574121747640209520825566355579451490140301682309639227738389329865832053061441734901751130527435146735251567701765168886982398336433616797099775728463528561163399411569976246606227724864994036236165573323483438901317454535896551766027798134899527688020180017985595073407602782782543714198921079118814646504895872828028720265120185756188151658151257041206207950911215310720050494704347100701634021195841382024715450336811142941831901461875433634556176604057467729567643681432553741999949033665903013722234085849392942087830022841363278073401033373667271246452276957484755525594832827816002249976344042843121887731465574400880027169249199730854227841191138908933648750013075455486506241634615900317208944100330654217276131019373910601407868492173929680729877682534172011568402380182341959119520922861465856957809930069318994372941628035208699541696879792162153440568195406738221460642351823771349499844031090716569639322587748289276808772595800282317918986530456567823575112238714517632033939611719659345026331503872953523499059798171755455501334287000103188324897172452535939917907731439641868955711904747790613677911750588653872865744313641199607642207314894455631617215772619186252285929489464965384105861973876090694294651752563300822389044057575482133219789518248722627435587778692399918817281929897589670299669645424572071369049983170189516727848437072524828078034223608158674901577211172515832130163738297457143118455437032478888451132310876596428445768207671792664526342130004605347121197207282311711272013713085962876712791659748163572178440448906952165596987130159771107999744643157734917410915671540924541633813885959665423873665206204112528795872923021774163346644619958519403286284091131870217900648424128336305098404663180020790834821874048164346901820655363712287478547100626555053393168089263809319781575363033739463563975296738108011721726135327516456470371374894949392330456608039786084427718463699996641221812506564255219964725889776962573460329746519076886618735868156978180143596722405203951843470981443209560489203326858598087651801199309862794127729469086593354342463942263922131963849286774319034449459610598230158600059025399095076413745469617586888921402332005614115222963549117587499365830012914771918545561730701758151829124039839969856632287051931790877978299283789044920628120980592927900324026994747493214597194687878467163496574541408200583647698547374369211042404874984444090002532173769080264869366417444063716310797737287310836864501167157978288434544444063762719903132253787930389608173689012747186906733965838589241162208696884699025156778874968781641301657782066588764526647143652102552446027912060714031360961923605918569759481052964701395849832289135412906424395540550650643003173783907928066722601777167746043618074107151150333858344765432442869420582634845139953375874390233861242876793955017564045276137603437661304001819309601573364693151707872574682730653335875766127020389734683897317584532079108097850632923202478924684277941574623730769381516214657736139759524387153067291920278819330902576969034790285060968459986766251187890785209863308721268179228713097764331225280973610761316934035261735197612241108738950946855914733037313161578827638958520892176288079700821282374346644398759237402690272318038463346934019402118448251024819334680829357431483344226255930943526107291663803475340270766537642521857099092470379670761865431274971295767913221089315577465129024999589974865085742936031471832881567445633280169473735157274278199425783359938077292213498120067911024616046373930150912549707280725531647792069225249724462352867304390376899976816414604257900980810484857447809237620712437301308604530375852264951940608014115310710608981795054844269092739909603146306559341429039017843934582839338039863888554246991238527491971979151204294458521991787339547555436482400939057175351755399191887507444975857353354653146616242220142763835591623527250352738483306666165013618071779953044776486793612032798161926099350101837703098888872883827193418124364931232168552929925740181888184858287779593056678831907357990722719831463657569135662909574244564719284991135542179029595516918904134646681751767178668418667665605366788858257288368550671703233434847918993029675981729133405443607357430033644817164517223318135813836572396611243519097084091524757467490576199208449808587237359768682507911183053464594323835409595982902865904284531026144495831892724996939528634448640398250487373672994889152929829932113366861417050358929139607425430132413965004220499486094839481176485319964948108359041177230542078943885053939885235119947826248331086738106768316025574759541322142117195900112651003499099969156443847113936300507710470707152649859200362992266135546710672653100062039808057689824311844710243252491789749653347212271935463153515452526803650980702400883184651304156869891143463481806446148132154207249326414949189517488367252799095555923440000359416034367999174853327290036545196678768395070076827508532963837093974376920862326689217638298628562626473189909746549047499927043539583153506893517953539412419858161170847013900810576038820314167903398840354859670552471399230636353167445033788233650284372908984158727437771463351472108500635960257186348689110559901489478947221176910741882529520072468135765645776225188907725499618957964211955040772838607354018905707107653204397569562542748938032504828374164110575675113579171688106589729924174154362398648123381122170509831079937831748404280327754985838471329983928316205230124159990157913252137751565510021194274477660512507686689372690646192431516701610545955739875237680594712141226729878094973787724206217853709414643898819769750940984494508464599751017403620840746719997837850131307918868104071721903373679210362307651591267363459503942810907110101000014019479259442676498567231014722557466357403906359262148383314276474026940256233512571631338581548792611587974337265098718820144198282419784622074202709577689936299263560227446432548130922980392119564138593656762515495888657867004554028760626243156334001326258726990552907140782113317065601932040060679982350156309576371787143211837215757226558338568885200331905859347931442693865268386209614341529506165220282114378476468407814719081548440299206865880230890513547441121887935338037988846860051328292455447881669920438666497527069866408177745530165804902254478565799069496696777534581843518164009967884088135486326996457413385894991876898258953209706053593434745616837677909776794303871590109099227570410077588966658312212147894384378911265932528109663045776127948425724671462305987973865554177199371330947888391238109307816595758841039788411756613594898713438777006584320006038887014517401063767811549703206411076584189326223613251904110883942407852803085472026791876724153996112088089578208078352414083008470998519416884977787174672358473207295867041331965038767719857669645896259198412221963926596656394205090494908381896986961799013373180703524375305231467670675027158991263445140846770727941009061893821124096939249029347781369307693265321524979560856859442839513846909001983041629912537199093597831963547790059793511890552133078785948464750490506560687010523482442316297508947633782361816217247958757114353132794849566698699117700562025373747245441591910650916093214597831583780844452193677667706024133302265018061721238873567927157747522362541103560344323992638375233360559865707060379152451033913986524146463366135478802528646420184227396301423584758492133332024487919505524842365889720287169794366550015205984779416166754244256916555299269443084859199919361411383402129771130224263638054553586905744851524650298524726609342296985487536298767777923427145703279168552057875839952254063587226187468265875869847843372759170968490217983737639660037044454929667209703502928213831228778368576791565861308040828216723856798938478910179512657870989404592333912246016676962468008493483158370172818235578766193947474580475648492595062638873776115907222797718680343589334699468671268167633974141865423204773324596923425734080746739042185338184187945165287628180079210631555344109469624740753040851435092119158618111950923524906615457806663670386618970440025555306774789481649042296392009481492828723897039335635714803044223463173046597549786210384767667336390852699949700684699442301133482922165874162556131104336932060802613022749151429752252828318503067578762921640148552890512403534664318399607912375559498809824778550220201841114296495728373496728597388601521329007501353730793138197230663753810011542729747401276999089354830723511527917666836098286428999806915989085523648677520175047508785830197104662988509099481398498729348476050461119532878528300775745847494831562036458476905315775488155413184906221349935613308084414107746331310607287576944463584546533364677359852496012066229525982487296076353054330854972611469811004656970485883404628876120777005301777978115455615518916318856425870966103754568283515456456027734772031734260892451563460706200136027423655971186039749824152756909449050951043917565895589095150069968821465322568561074883139611606553175297437710778282506714985500574206887525152565123871146601162020246506779265091925925077151666912810251420045994806273814831655578494975016006441772315682244238079286188854013865057778746560713355754351034102669681575341931921356748839572522770549701695759881795248414240794040186336101304410206915524016076632946401124676778617466849506963213890129513438137054419100067030637426998035603289441952483855971522308329942878396347761320228255416287240023705068110683584887220491723949973162993206478777517777093097413752912141191179964970238788872566821267138753482297021209651730875219189963880226552264420710749011049692068873500341324696771165287799499156137895351221106738361150835225653727657662661368290503605266774596324693795048914142486553890677172918840893886480050995095977928519130325299170531036969887415985479630964659105283005314399505154074134325239063659647735742413637415314513332178650388657757010213601540358724644782760616395561517945070865796736114688829865113412229969909237946726646420616570073669029783275798384602720343993285914658704066638693679283149989203961790873397061527010478781994396784830296803782544103628063524887263655618837796083538740488132769993276797312978112985852747846946055294536710813926284692828480104579949315788437875210941652105542595343795271846665982158253148783208417606487591627980800830955067635601199245670525346339242590280864923204684424502879882427115889640124916676630127958869639434251207385053798048217145993631974213107773673849331680996436701522824304257862692810439077544602628224041698268620738487928586437694905743118903677188707734432305196508246629028474587067957309302371464179977663815002196589179002331975158186283777168151579863639618214432120103865545183005274040766700373599766378821168807005200516039489502986708326441615046539244808748193274225309889017225868609101066762595788338760505327428959171461701195153092956080696144898751366619630852966532864211331774837985847196042711415558628926347782743336282418686184930179122737301501871225727454203239928021338046093088198352762035668155269395972917419308576894526421658354319748745298184562746934581724774468219055227771927780944706422262519738434091120186286984238310110026268977337638832540216874075942298094207745868312216282006987712368406189617107046350076539480797271456217115629681005742156837147058906223685667202650091572400230111389572788757810339564776160770953570809059879414962863603724527403472976190449714922500060703511725756252484082939547002072012501182133456354875537990588291056958768192461203626200001102733668626246478938818626024853705371555384386210275601108208736124061766300440157435478064937306064365424000321548824844388175703048584522123142389766338942379097764683337072047701503652772997693388089318692214372075011106319543603477404139198380451076724376114324249738981969547979376343440016576488697078690906009395774028347888560717932268452328302414521004197867803342252806762450975730154385375419598080238082631342786531084480097002033548229321277426904931257727918467753422639171970922330346645135843168647105247829734908595664619640800007370389465365866145409923113253167184980658394975860483279550984412902309384580229737724642582412900201381263753685539347858035276166627503444443193650776302586829111811221640738583134145014332006161095885087243915917121468626900397807844457141032553395139535683460890991324500360676467141885417632273403233804807718626592568012575921412176322799856797337508069038781827228438744147597872801069475853276600013929244743660755976936961225669735829828682637465626311499482966955782796474808231431228776739299075551005551263226846342057289533683754778847865437871159696885610323255189264119792743703923603736795981783771176642662028811399146102661988612218134187786290222913846171052233479266637782232859606464374324165395197558616184402382960742404188514826324929941675850467215467623300166106877110086771970060201103258103771505349047306751012265112605413990165824845533097593816744601298058226692487344446506981135673265049564146772322730360920443394913006757764864699918824924871378089734416923315065975211648344305945480076355039612699493578139265505251452904494907741958544306695747099531660864754783034264722184826687212775135576802653367952671570425581911800180846633818944652161859147768328802947898089978860521563421537771115374339866010764182789453980340012464514571647594442479358825107381889752083646172632052592632357014751591040545748859933574007099481934634308302662840362587847498937583159984048790401264328344525343771878674327757124403104490926462371995844123300740434329456157050829396183928143992135427575955865827599270652714862043785968046838442933960615850361874068772916259152421705763741627451334732259621770291676839526836114684131794862904461676866168212692938050065591146374579007380445946473873909692337803119303984871555702300361500158455481231103196721352375524929081033950800618860204083400619237185310605044381045951986258856973742490206364323088489190303434986025659760269453107809317895025469402729925599804242424903666140226755465974107057443089397011867144826360058143790575922439165318179795869859929705343946799252859471161564547870756789986097809291721143743227306437926185899302838170360034695589579870897653580879026556371035938339826871405778621477983514684329825422665534927988148170292215030080572722448723325458678586593775045953201364136084510738329091123891165206356286812416566846069785037552221141299015870199728910021931531917526659985887755242370987559964242275934423094921656833446827766881478968302377162036907662532898072431981310246960710285621896086324737520004983286911503906750903586584466681960277792621073009245873425678288776409892036920259679852448482276743993653942832851334818471138544670722894891121946568654451252930845047083308651318980644774236226667597549137080126288916135754476628505046030988332409175499219621127415589625498682787735014219943488304200702786959614861717481536933210269540894233436254975884595023929453361275659753059971670664513330184432200288927098502996806686907179412847998636853422722046705576946900407850599702278682102543387582253921312181898268344483574915360722208489686519853998940054459726378713112077997459830376744111655033869024553496951172566110195553700352695216172822964083106886172964663048571821047172189206214953903309293849537187638532323697553332147854747635226337235677869527275467016213911501959600142775031419938997480856754376953137367062992596255681396258193146987743733231717625917913201641672876475403143812108098189324297932209178606674146485032180810767026037810211051216548850851087759726621808509110461950930736600373453541710508223883375245341146748838824596501812353066868529645292512363461068313367470771078915767988715832809856900029861690063223109419964094323314331731947013369292459348417684057081671292145515886308371539413473069950918774304281496877420525882226258430274674552384861705872202545124372898782012693889840542038239139530707802175782531612291612739040027163241775181536132758223019802663815782773515163406009981948344928857079312461749501845424842368411980260000760534632267230903625221093349176893723158211941428766901859413184605667258527359308532423148286065389031142137269614271969611696891370965151971449654951383060534161126595469907006689728934487785199154154745199952166284652566223136588399041932734030586966311429572222632300897789924973040242267844273066354373994198245123375287313109862019315522931488273302326181060673416745681133354043623359584829786667764585264035423727423694816143451068623342765287117099516141077420106013399303367106742223071049855066166552062868246731874615159395751118863149296234934108635707224790860212169785840291072826602146704482712809363731257710418467955043443993368532461439739980003042883752090757464999023878450901900778954843508766060747501986212371333287244342884770906430968217239140589527259179990237770893875224664894823770611284917863649160881877015121341405452163241392270931549481548710579213562334646582998750172040079265977958633407185247560626602828969017932202048637043010846555118182077022443383905110959369395545618935558431136067306256283005530028155051599514729890846591304710605875080387981185008381676580104183744211195965434004266617158496213428497706982978016081355550534200769062076519270731965598030819926091932219173757497768186618484132282651347279376406494766326575245832273276261194418083148457470813659091355277861697364285422669840936672002138237040695886745699871991587791925058188491409055712513735183983383778070378082807629211611517316172001217951566550902954160190263187184944020250596390998426593468692327855810101484870122760342571832088287818609301167843964375400224806076529939095677808785623662072223326888917163193639062159941913360609195489495830357304760366813506531989708857680637671821618900053092153049886379982209607520194990096688298019415747914304891941149704435388935713796785689041203513913210886700884848181641539733932614104657492689221643154914891668627996064194543557948125822533522773838993571788083380958145350796790580412744223386531134916286601579669448015435102154700488671401370907625630152341845072358307338330967825800480688097872598624722247654938751327620120273335447722206362429470108201964725572979471472959353210245778855254366630240100271198193178241316840327695653680192900225555953135720021619957611480040636535860144048411580292778311947260852895121223061059137285487795060223629039886750676062465305786980820088215908341444021957262958319367343406769481609425088901477300619434331681302326872464798678585577031075590671123043692221028416804638413857738499200101866733311737224952568269036872175686365043757728579268741508534696379776325759179478122045494021069522508865593032194215296924043363318546074130263691100894494744436474297557241303897985724312452532248083437036790879762162222164691619370761058532853648118795369806416655192825561644050561162392396184840277846076700833812054053474380120004478155425957651233697881083224439193904224047526331821173984347514337216828771742783994998614051559225566685860399837565329542024268345783508732158003244658857016169642583147719751348822645526275725278040939826216465445322546520240747999156903573695874584904752744740257736522161515762529337757326137088686343126010244819832549251256896059516267554590937320589403505962230573291931164089159847268614240226896421332516913399017873825058244968923341629823732872461103351805796496710271142687517648558849011701482590590816562211752906993872091238731709882944185192925741298777617633264583911100047626337009659000765977049138248965868280963867874012119289461315919397890451722122284495284952633707442349937021988073282728325172711647250942042109248393248674663595362411717045592183208243137339943641091450358314255658387915144053897766338424251677843504179488486978812597997072537994290630944525571558429098499025982060289482348746095559412462630892027245969101259803849360823170492513587437842702621736240492192008938338782743416747370963818364272032309848799034163440525138950612227948881129219925245469260647990216105763602421402616157508553190719991049630405497814001899809981193529533042830832893831526424837395337825050687053735992674265411646064377287706017454841844550724563584628020027041171321110509029011881934360436002502327442207853281732740083719271912870801523605354312565752728060594282451235264319067982301888676351495769691383970119119869681925887609174335914328948443123958382473274087647251679855041824357728142190567562760770024014033412660103864260043176673505027360847734436878842959792405688164656467148998591813540969340877876938776847383442322642232236750717964931637757943416969076409335436845258386531462326859975806425414371833077232404831980888796108484990224400673986240310773237113531689781776396408611047860531592418815684806441848824647990973620280063285576283713879237588272621612828566772791843309189573448495388335344237437535322478362010387049756170073859883478932029286341429044060753034201822670815912841346429568906776706491772279917475875022218666778334187002251451887680064079604257114370188798342644395112256766537343190201758392301404785911747732984146385325318919143988377715311465433576295170136859071078611212243885412691277676245373265229900626966200843116484044877889903729787640019309957548395706418735269885022532024480103906742644369504792898913153759660840912131817578040655957099274043984104165142868632733649526287295147408845372863480172069640607572096201781885509463538889503723910107353619313991665301635692350536928788320048437095296410436289583143589734177010511661734891740854766433469264453341412932792996968085544587136163607681772882361691668615031578654299648060779240559977621725237626523237258438697833400202432563826177628489196284883084437553906553172126013470060979805544612879409169941913175976223072201813455488879944666716999667129909734638782924289685616737555486126416523089373241243928324170042899778468776534709185516955959591648638352506164890471840159604804683124356395471063230702137275421469837437408455242644839676146118516784731542114950129562732921981315162580586620055469186893886536624901787092786696968647040611913697451988723553391009680931760033663336681912460493067266625325687201885130450179449774848224612095201431664073854083115040816287411315087527033788693952201352802247675460919799687961467487139171482891680173090097250138836852106680212467604347378122488678341600838758951575363007436111985908771815737404636666182344250915826768116460315086505552594078430085748526504670813331605060630687071625080540460187829075384526163849865038486942948549759517167138453492391174304966530952200476704732288040440415498398238587726139097901860744218163511064407504784390038569474898174958514969630454092601635254183509465432759033541753631253921137458839973013577351749930661052696259263763313704216531982290938130725069467911603571796476696584910661569400454215697375531811195933626929828228859271275746129624146788876549908429586091928276303258968572078944585100366893354268587350232400703586518372085928754682843551785169798627137609240423774581174795566851587666997058539041396890997062887179418475603567017429781526753704049402276596696617147802724945160567561910475631244787020277071006216935157439225876559371190198086712349695135379364914471033480232148967113451086689846811321374801784624608076742922478020650277914978893988492317659777429213374459009648867451460590674752429879858944241833654828357845261023875386827960834780935898512030934266486982553988321529931010306537524903551271192675987245883412751768227981018006857831113768641028057272026297877047502026521566122397160823031500412894196072266692998748542325585012682186434747079953111011830689155541668320663938602590590075047983857014450695619113875081043013146361367149060145459464369810766302363928455595848047201347561328561594244869135646169941431275008571818202502971314442573412941478599668888226789866490262004050607607283259203113781918736730261057127675612663883377596043003138523071995698821850359539097392095163729275433611789689306909670983972664084612001662817054410167813548758942891885210722870415360103743171218612801045463550771015829526765437804738043368227557975253696415100375747089661668902639760538134015954607091130070116288973657810758494409480638758661320592207638439163184768695827294651370638323607160340174434089552119719430865481348734846124796667180281510046906381389382329446667315643224819542016320832019056111250604017560712548770384427330613048102609272384342887578284652473513375519213225082057059475852375370821379195772421766287265160096396431444447921905855954581581155350190762507275058434501724054213527136342776810121087154059499944771683423303366089546367496739518788801734582366122206735090119694237391142386366195580576177331686402058022711104577145940663488129438004983508980175490776720093485993421843533051264700943544711710774077201330547806550514694360844383063568586908239972165392315739905666901484750203062895855298244489267891192600935603897725590750659319942749028495469090993341591852042198791811795972561404053626631251287408829146612867564744706739286824390624420403261600558284132447685969687240481643291842211803563873597191648700081675096474257672834580663839046897481599574335645245277671363839293193170176968802655582376035344441167687110316657814185794180696173521682860238399567263975656366307056145032960751771794779834371077983475825666204405607177182865987526075930443210897641132648398882792575009237215879381397076412179650347750756216375129015278491371584588542231870629653069219754738998321613003870211842808168360998126942972191588104060067645099524649795405120638925104029548029662496801072772479168234824478564437205924209285564184142797542658717900451799222020649123626933721001516785193112588025525323697965377449235182689422084080536353470191464860311991151784764525676959567350032138717902189675411644541732795596514652442207189087186701766882422361025744197948863269790971354618683929540320111639000780501928808031805954132729661336294684606314689139529743760940467599526913934187061234258823816892792439074257066686142410735213352833421314891718497090380565039752381179828376318880408785012073818563373994443065268911217790506697064763230454729354990071792042371766182080375423548991110125299924114520885764261983322512345340187566453515673447734983689983406707804731167567315988839153085683043503174774026909489442493299598936266211277538073265136637317689865734600736617227214290892360606414346711553239483212304746575326298333871320028573898078209751451882903418622967785634093830057371893889701393355974873875401729971157252805231881225475202344837447783513574443700523148030167379977466716018743649634026967556810294214886148986736526556529745271583175031159050158172980308786144811925131720409558003081533943155494209122457496614048027833863339453947595123443965412193165986819308347970286866008146634535120519243745878537990603298347227157166865789730618960245343129057710732690180367465393734012256005789036444423612082329383624977049976591239574167242666940683106091443956033985204483100331487570444563650013810865137116109729593742480213220275556742623911309680354848115726058705384221721668840505935837782582066105404132091096646820966209123808182170841650372667404648552280968870209698040949558913314785837485743591690043471474935612184175141558303015258844837598647802422116657853254246106989938001345380807230656843807406609560575527096759993566742101288453400598989241150284802833786036081247548574296674138189915651020715687624321490689968229869685287394694517681699558169072326230467161026869102861381195619876631030531636940371164633848116195980254916262266386154419403493717934118820171219589880482574637971578742543905408659418026043752397783980789242832861248650226593322106105099306904537870403792397660106415852196869522783346515905428938108351402544346761138022006646885926983677958098847865152457221092369351554161308183654408190347510440475346379963755510758590150324760615180458652509105322734545484726960437491041857259482859370762861893450352627979710071234478697116034589816482950207579693861031562558355126807160928651828544128608860498628044207583263018649183403866722322137670367422590228567635351533889616692688052161809368366342524761237789569198402409285261936954130252409177659339225378577866836891600223616198584905401337082485385155098588829576379932029907363132559570249995544685933132219110520756295169152065654307170501472898716585365083705004068803184769593084406665931764026462335556027898206338126338560475466980133902175177281783035068865835185168886755467517986706184563740555536168871174090962241899385499439320593338832888107912129669181164861766690917832674776706347335968613518898528975056630948882563760598399683874082390676026988455893080119918352653809269083774885318609177236289720516520933888851199363990097761840191293589666830522429953537336132312940256522586035206764400425392350921706137891775724808300910920100117201764923242290944596756248387658445945879684204306458295984157689211636739111542903944978520187587572358426140041983477423946597694024624171662956659808306643996031899524701882355740895977140586070431724077970046006842952835152849757322562205755817035083185909835947106871674232598479962020917453597190285555749944476038892270282368886968561934938104486859070750860460545036034881532274767455138530025004633645883723244181859865500310521394143022205124079287294611261743674420963259371353435536147944128497898313839126829693211459028062332390063243347862399785243693804294887194927907851213699783943743919267216281184969044262066821884253642463893126149566361274289770792608846713805554497816931115567840821789433260769193465329119303852601242458405685454943704103545312523933293361851824097879540142331260393094074506158941246524955795618505954393468331875074874102705438192826396162222857790624520581738191800885428940398472453864057611389728342851315724701268422042626383648175517785453904587354401315679920085079831998284168939512434233863200692146096124481886107141619276810578443414210251685431628683227910343289385410231637466473819114168293288271233220979836118658905001426969490978230553100382779592994212474644334037969427725830491272827907609537398335917846939368386384038711099313166422036312240054135628245270812549002285775995431896757077627277263500428886785535656731256995081969322634394105877926630147837096774530686575461176713920323589788045151898147730339560407791534116171825638468467395058437691436509324913902837606819646683508043092415387349278932965257194068886518620612441130558044199557215539116653177334205032020026450988010849964636165262822801764021394835418540802512912294874739729217969901355827011343097504490184951946513191803114392637047675165176786042261038175656745517045541762675503554680482157118500287157643203665982675497830759353113927046238179232639390926681460802850389806253559104436025437608843543024690146263261853999623555246790214087943591059624597575196649117910983343564985423946905796973751588475749300692608771437991946874215791760747571756597314772414331923558050269145235731044272800107901753798565042956428795205222245448376729081845418246485408227414188756751733638915261763628362892681916822936520822395569069531018165018603566721072813975257575498944432134776317368603471970163815088741341749455890391262103583504621769007674512297603520993694374500316110422647251438484535488622227030612750059582296311582772007822524286300920956183971466117937382402870912075557946460922699056420445896244067520217326955613433481104642483482378401972272907645827507361468917421229280217776834093701002224173315706728792824367405524251063184174859253579913448314279839864996075403481779800528978852846671785735216273406691691272026974413683897469975793371288297725343711710288699471329735103745821291101408004286848343665841809537847173577132079554737459113937640061503016560872591036575105088389776968695224783215967936378945636090354742394958823323948788407040477942084577860067556539327165068666384971390238987002510544268731371881221642947022582213792124864755447649769502444587344712949066411203816125867942619097862878528503973268149014789501892579798159066365925614119690238475929213234092185575103399492719194521386126964663964172408076132952799553982782331007084413778941090260729189082798476827027541624960383578540947709345372811900887547015991789260361027690925483404711952736615894559718963089407373034081508437709632210033364851463770224500259442814146227014493502559717026331051529638397682267629162166047630174117268381321772601791761350720639238957547216106565044095038644380168251060872858898246470260998099181191056790184778446478665525882275732263262469165195344459075256218047511146803366913076439484284569100509529692805904458931184964177257908195122346738321297659095281223029414589348441433108612068811407562974704215799256957099874653380890949312265916954609080592757211692922510466563643131401797851632524332156274566580169530007394402695829666498793677881983356448455645494925556376501637496867485485624513524637743871243444911248619476332062873803527076631369177671041266828065871644618655177231325921951078296041233348743504310885229734013220470196231490933607008900749698422492161835712571548229322911276990719217123771609263872638326763894866643015595463021699692688650075115446907552976938745086405950205717549108910015675067392101192707815412966021401007084102451383822249967266042415967344572294050955969034923757730562233394667640583877671427541339226375987983674534271595623943921887155968729745939327072729372318154147080944959638094580103703016652989944451890533910563499980345444164811181152124800297224355426505352802268217558461264644431031642107942352329035685972719295464695025521872436309572636960453462939562457513447808097702724718607170461804885389994095403309396569494399729517728190174045684417011723674937492051136735053819831909615050380517103560850509779853171694239455668497096334190593735132499412913704057343968608094479244334786750119671445485995615350674690079192601662655900763874077951048282874562970072510495402775961780501522898676454027222500503804767069991603193207050870514879745440621611849499792777840138406758452670023205588180058464884412926292115142441215142175653680840271857208061468418532815096039638340635835158656211712886342970205921108364311406500296712619044075257404816960617765350755766282479735221762628256544975842248326282799275993620731278269371546661649689083051885204565846835902984073911568968387821211042654335656518374112782974925510446442834829865492492100310654155334286981835589693786807005548077907304189873160117819514904302416441995799205537389848503839854055259355667928528678101215491309189735587461071030985350568287905637334698456931716552635010514046962711078694270011852412175792739282758867132870658467480336256814617153478337944821237992785725668535348733759848822829432062007906825921318930147161414735506527335677378070492678049341618158665613126211861783054723258647127108000874960170815271076661794825607298997365985601294254044954528029060800048757498411020067436003381542914030655570054096861142689297065833617758843458857337821518710422059705927799548474643076142307856803271289632326235699838440565329768942845821384589331284723792351018458094353362351730114939660266584386349948725333371170557188914934224945644531881985410609090289526040412289994701644204076009510577074798085521000512498800576495587708081137205948575220163837228909174442491892404248240183033091329906796973677812133442635093462305253130346024047153322009985956717442326382704327198167939708712676019314246853918451799819031316260869165489789693940477198896690896351535375385331043656024210354390643801097210215313053605566922976601624009558203594680102553029481947149018606002015660970682565467098260746046018932608116009534959129320557264072682056523877183490707328421659059621037847536729349441235297026397409020084030110451104996538994796577460768542243940692816771272003655056967784546980693558259761095005918996536685473171971857391016405372442716364497466770034556009468207816043691476450414978577085107565078923238524464380444154847520352437650556628182074174835213545958581510191351296193885157750596143215967557425874216128489216856708316719354307093293035339923385698058582980529127963824472319899731734600427663697090659106310781833036128138471518431373319820151345863437021286758659209031711637503693824401576091465490175205025489800606893768767038958098694249433882457802473911385515813461351249582935546586341143588524439329173765752670441003050122454481421106545748119189043910866939317647192552030058978959596995476601395078118448191156100540324723473400498796375003142474299335540499245365949838391618611634420322797488645210835004069203359525325857960764544979552361728142557965585497722517314992799049548454019804262731125699234463582815255072629532602356222425649546436768019049126004933719535866377415418686671087665173088439506173207258799746559739841022377303047953669854604069511765010766453243392403849991743293763804191368794211741912391537250884920909492006182436924810714854800992963199927014643298436222763579300572377658063395917576029568285359444357949163081064452536388422431763246206160733753807436082403539265067985658432574644099630981689878948569079358281424454280963858342915659107818843476276184643227671127604636409862228352496971255777022760082434635367054253408868868997729421291939653990529354770692712169604274740867514098134525434370945147719126857677734336007729597302100092072012479771504523247123728137308239440773245492088784791729854397869464689647217767758442605099689235274713087608684566073047377121040586758518447467172375934190378251924263294519344502380960425689734871351732607910849132242313030126209335525206341306939964902968174437501414391280338545243682402514006097541200240914648641904761798850743193568487834096953207210450776687737724804996149242412288454442070158192035182966344126185762301841389572117096325434584862993756894206551075667168050504540169503779459144307798146909359869869780625414082657124158495413211542650027021656339045807155250937260480789106249304338607844791301185781137687525748302799181617728801475349007072609028764897124642517742315388594829575143961242378051525495383451140707597818515079780252061076297700576438212136493571791412219847799929499366371499255789251476551037055553872621356540627711212530043134838647978820520585385050452785628339653105205780650224202146861182022416594470244610467680108530690392012818002505920679767695689424680504912601520895261403331812299789958262989385058291235863095189337491584184477264951808369666465729472669064017094761421445936980052846179315159074143762490789487895053482907669586397023195568740860546039379083380857368503442994730416255781659660038196118925844923180107225082774490362398500445926908802633779362256606800429877867823619230618468884061327494822375325807597693058336113905377792506909360271726583395420229321811817231874041341940360185762894551936037660957550862183551927635462254100277812111049307179178899794890954259836399698532480604438208165106656841176406496020486465509646972334751194276004312587413384881585501625574139504121140037273882979471211175615767458072925372441738022269687945491064401706896975379479598759227148524914953589015977625246618163237906512353256222509139187516762648531477601839991676432498038743841525387712799535050951058103735352107177759338556707186296267163192826013917357848212730970457256858412212529736534117927356406295371062612654688984875421961515775352049386028512177357360613387460082127829966842284843282245025504513925289058539550216194753611591124619574603165271672877514299408855387302777947744647403117835016200188221515694379592277618377266114693278125799837426513045263113208401411302909713103058841100166292019150711449356774216516289419616248117645766037032920326168624889200462879653621003309914577026498142790205901927722338473636606109691998041784299651166555429038916878219798433024092840180176501682733897365287069468307206610368743886307326686396800194002534138034380506205187293775888485364430138830251567749936854377531171886127624196741335635819200359316870758289319683877149731300519024947825286320865355546115051764955596493752384084976399888998603328987637891690213432679355736170158053029679914598975270722059439432564411828318802960363383966048308579870783169155353578023368015312317489582713175157521917797361920212880952114802740411769664972566956900822214995666182088327189412377882167644168962211946048514699142617048751020859458493615666907686909111489213466468264471652798710710253106699485432077195893025812803728646548771423605711824959895204067202903253313827117088731099635609469625400560563151531422570206468827514573798669797109975415375246633787302076061094562495025132301635278994126669568354788607979950519392101983138939084370379068149325988541455409991907830194239270839634791484560298924713854726378248795727921113302903095392341041468043612372499281207012977797191362783462173919737098999796995811906516769836123424387654982193361364889647194926502094468714818110951337552598110809565844325292769935511259747638725098942308823925554202570050306242785734111562690048915894141779708341700062498466895688416737700012785801470761814564269470578532233002704766522285708254430792795764898892368088533361043826724086145787665915199422020876581328911485625769786681299354741913076186708385283122366523104981921057009115896881527752987941097424323319867504137659879339948885484023902735645543976143493263527713280694953554698625597354374713897630237404232563542033218946867645139822418518101797611857648879514715260517287135336730825495529262136830102504309640455955245978309863966632580862598613462212877886459112311098744495139018995204679058307580934860739681986096394566941336242443473476006017951102049661672857813608273786100134822009808254833114674366228019725266218873970621211325841277110499391123494643189234333941910307978109458914756050454600544558160313474184517547063051465530477834355506054625696983203450106576260047452866219736962401284702502662407356061765845602362875403308107519440594856147407211678047942324154901277069921596501006036320072673047152005443068113733132846500725604805123563481990590923097906773688312600585200288147235933703963189207149719342726752864907196251388975349547468377754625747617419702892697703669298964563529259819871355925268893199689342497693014988933342448323423613108797447479975001016569410284878621694763269212929994816528983907508026762588986628626897501075987296004843675143600089262243666281258311104160783264759750825764866275264938818341013453626813530167525175644822829002194557810742276981319050473923471322905539401940560382686325088062883639545155683814482502030448914536876686193220327111592256387613104848676048990742793220038397917880216149133963728045354669559716203867124060810007456567166133522741694848884738789093101506807369409963518257794221262348990646100242421532990059891967731566008141365169739021290469166094859996442587045640436870591427875092493178439644011204373815027867499605558782238108522452816856592712403453953418615174697676118141449368359580374664338322962793941504793656846155834293662042403098425370166902367445627946669498670793227848819486365112044056289566950631236558864538959616892619056330588785707605366237720939820206330325191554056831960302270548578958738340715903461124991877025223848546139433601191045941739661172605645304370527422733181038844662383709198058063328855224953801331794601334411644862984554868963287317278630442117958580322043034148724666839972355217196847177024648606326249182902202012912124680733183863860777359928128439350278663701546220033053746060774518107814402559475386882946141154345012711821746453797758140836053150389153268063826096576462318495351018866003519626393396786679718101010165697360816785073319495396680562217081949394045386622837957351072626781193354218393467715308611380913753323083907345260252379202494735294551813135691587241835062316339892485424810358564044975589361013263643515978875583691607184936875893767324007767229500151368090538862316663548182973174747847119033522034605256055417914339407654812002385703599281773509996739839053142008829145428640914140109945455031325990380095156781631516131075083808285706415940548505343386275747073022079604669518594668194991803849902267797474116984902961807951880928459420826792375228394986454043670923782504927834627653734467671081930797082185357356994127696557191350528303187784140684365105609869677836665976177378174460417720121945126974171114840747443762025140618200601884692334567279208877660936770065791205257757829147106105811853118462102051510287189614471200784176314075303281554721314852782671602272542781080264876057074318235322223824962705699542430535584381589264427009091673940198134641221511112495633624687940590057445000435774167609630558239848424494926284434215736533135063880929091806983607330473213114210695858950743285928814449540043909755667144392354518244626967358617116465393250719721999583142054830463470560301446249290388000913814444913857823562334135459401435303385784638448973198859757813156809892560715414138475224209321008920910148208542879499784033981226575728470854221410733821788458330915503119786209824819816496400430787374816945622147520909299047752774815411493096753556267598522577695276262509553618484308715427667952051160302781477680420633964742449913028576230854881865471176890188259612656933779027140683419792601027751746986412868778300401364942750569600872803670200968622146688421148871065754699853100722475729892277409288438688479102337564089882619239093195455028292841185435957828495540048566678186272777818535713716428330788954169210624485477918930236975183675913801833462437580031422841424157237924063765147606612582740754180130177892048467037057611513336634425303872616526869354976819975915311917076928820546836951291613058811767659619383266845615753459616452654535733458016688778481698135077810956630992167540959129167487817230271365046665026579782041065092844905438093899766651526523879667935303629321806013216446693421485343807138473292968738062990007601091470196969088098985412329206672392565600641052858363057218100659322787840815645457703581432742499043962959056152986428595167812986065459515719112156166864200379924045200404347441793177894503574432155030108048827952651656926625472461413926890354239878059907650144345169087422946292710059594205007368942165247599091773650389437797839876851153162674156046372425861065375073084951557134916987394250783367520516788520368694315004157504817593462193819771989382998533750801681038959960869789685469779179673530701894531160245437944621816734228200789550438034616596611614013141971116310195993649376888958877361027965362372037756488445915096470863843876110192036340476908364998612615647901635553200037501735204287183477972322908156773475556947004531109082946043718029419485801916567452839400640479420850525532075037765129409125847888050426230742504015631521581852886037233116422384467552445496667583558057200729094657563561267220224956842793353495674226355245950357240566782775792549499323835923823950205153902245276236683261238703733475997557366650573196341319175640103047735687621086821014838444016931895299364006028670412034006346066331122649892561957164756084633622535405980436024980709633626729370552340772470015892138805549751193447223430467198315529539034150096558166462753753558461491532509817502208111205023115021856777426390094699411786200729492256284042849210102092766042661300860450856397218209876096444889449662322014441944826366328771837264427005847993916104046928601361483205071010567372634640305465192476245241944463392081337587802263862766512933827693441697416246259306880332378140080068469984554969847744393095496457766027860356835439310989288643292388827181063395374845357704739230842581375344441784450011414365210570569167588193239158684537661404246194678972043237240493306443428567222286158221148585097284761876998918521690232472840190444258084647052311283109778718391345660611435788022716829159400184986912338150261555126636100933972154872891563979489150324085093369119057526682257130232467221140783144332807072916222320126749392367586833188894987275117475689964882329038908496357362219976859029696250789262907455272064423392950533202874893717499024597731624783054783167446507886602216697084702234648096767819951055377498894615480585006055220414251151025615972350856586747454208257943875533807759037610842896234556747346992369361394545271096128918498650329009937753885876447627267231487937985088685105978520073848999119943789583313369948744856981740051485737588294963437478184787279296338938281238164389558469593675210644642964386477332212590300127866348817055278310445511445687069058812036266512608635272048845362361762021713588649922445735675105403790430973436137520977748707339666404346785949930983409463435698365120287163422592926820774440060836402555159423383597167326595417519854607043108784142539670288830414966914352711240650822597722082410760223271002537026009176226346492778043131006260884026749507319538257895279659381896355497328590157295437521738264315356347455419134645199316111397075833686894942471517231031129020036360631104888903677074202482531450766909883528974333040815158980444890677890191962285000780008331338614218521030733221534314968096533929676309936476213161688862222405463550949138763846439508106568049035716819618021533590515437743220215388889910174383269535121391395103260033582274021405261287046360874869542136107876778052992092809413924542611918220940550904424580676381203627303375524350300383303030705504117284560191066081891081223170505709372575166383085726761689018846182879226029138889433131554880177804658530357739727698065490799043308462197629164903843974612704290095725926187218597274686177416711867516718856823033860055232872338923387779545820280081209165072442270455225952637170733668108375679525105311697872695710236549573044096902501487123287988709501360852088509484825416398219243985346484596066839773901350400533432543978300911701276012817194919300191720977116724502429300997313693747638480933662351074665295396203737509453000398581522458430950629152803052881500008775458285038983021109521791448033804405647203185597274273128816866894032692786604965783257696945320784281851253915120736514264793366871881267505699446295359060128108382162527574897226747133687058109061111778882293259215214285449581114091129643402133636918276306119125913939885107605676950847977512431087447378214698718979139764190546328246566570292416894311359180394202079870319931351419685467688954348251756150760139269143961529157085464190279637650636439038135008698321138723020691528002593898136041059254524600901065030578793814955583922786170720292407464749714147599099156487296216785361870293879658510713189194337570875268226175499255959654399277027864128878313858964005400779079889359752581270447000874458916874267346059706384371091137636772961746413808910040093988252488663109992144935626746902276989507827231117717917646823651610452223090162319161666119347472633673759560440698589223537329727057188219370724548664020117174058280244715888575756645486674519111001005674632420630807835817108127794329210145065523167931645618625623368344750724716947370790511736699123897838571846760626599728831373523532437151496241512552820899011521551095131852568593551487539185696150877501992057051516264625963124300415915924596698948856043318736206645474564767560209852498087320222053419089477966369666799439056032726271945526382485819550860481913840166307144148190216919723694500480262847891853783149366159267974611619024512091630899104026372122188815472892194739912713372065094676260054340529457007222806445611087625857806632355367605587095118422029510145105169993622661738512250691931298183054604673512705225991481975244672662317478851427453446813077766107658347717348862699152584711410479062046683545110741547334834345267381876192388957926196842924183669754164321195086345687259239710661665592237384080942371708917514224439984363679326658360340951366817333077746925523980321485983194972800485110347093697727176699857098776176602833855508829135325190615815538526489119470864797275617879741624225395317351846033284485454372053393944225490447403961262377021178721896597475768946145541356220512258412712731665944478545597527470239656159255343310957900435624718246745445726765275040544437976983532578954299135445943063203250725200419070196110194675387910665941070116011659861491340010767248394830131115106034575860936161102409835391679892109193437570429002156546744805687898444464256397820071740734749903432948187109615896186394059726246094404993055225887224637082432840303204637768510676121581834342430421199618967011440263238678052505724732079057861943389646166148250057544567805390929130267503090366161313814254595058379174218287788111078760904364148233363550265177917912688867146392075754895676617204093313321618575820450748185382098980881989168044828582219828027690870036122339557798319188780325278470195026741425056904217855728344071410714514127810346583701154618573875755690368697908493723444911607767356331065921527490987527934074264709935267742572910582182341593648903274946119390448816452785687079259641878643855284868047009864203252759029314894357986577286822522034204952314783128335013846344940054742705375229411630675526973284143719739976743089008067151186843595702048435462882895928343867844101450740529526532329967316187100142492438320315055791508976472252910863926285795322327234370920559848388774283807106386696300503643988238985717121374037500182999403749712710392331444166161432232920571100087855796466311403196344684508207569101912644486376285632160527986540882496219875801441117146642856407290340376906417172509353213362143765433547577574722720420077041538759315063696722184282868061797695068628447095737842391017944447317928067649598191718582719389590154061778187262586793063173878931516701295423771113321886999441063036131320027669162263746950496372888524487192299427417854016702962620744864028507184833324162744928148226203832386541889824750132978050413943199665046564544979804742775933861089971648302940690003490029876917114694649273625885913285254399618478211594216633599679275727535589074773114979601095072688578032000324579782648270378368199631331847440360314493063883316611654800086582808166654463803955538814672886702345984824188246633170018165711923312087397449065136418761878983574131594021794932722730460493209404707499004227064370263335114636039935244601686396393913233237672474293946343619148150836178911658812654647597367824052289963291297208562264916454091071198964458419986781890000949702420017582791288985887574347076946028263040753615069889835613492653006234795412331870388781237832623549196207486923209302209655202113018151038599238978345699748716599600890184824718464309545744913148228707614345255410352166209255054656534752641370839927710869704741651260490224003047472020237093803553116893490109222084842971597675742950373667357071504185537385093432033469774764313411392214582626316332247504019053723281487025148779339850373231924504913895893930024610722693792309335388411996875180419729092943361689780667961718484695934069187735959030625759031072648759543315575431346968783494075781347432035245417101677637183948134482162984486945508064932838251325604083348715110650677463495659444977913482804634110850253553308528799133472912590318043693172476484857289077046690057876930228038014208013732107031097279782304419014415243953908632450756165743079210075851002355582235994621091381383279671839430553580502626858386331989653465028492273054949450757514653566171370590425042744161853902974301148440950423294479086497520183320358380287393023256034928087188000971980400889434032069924011613692354080470071651170322143617039927655885773390671017569980152375414214419697086350845199287301672091691817881420316245147816912373387181172563978877802793935387618874271711256999749649264426008747996339508113784926068637677029816855879799313906739501968172278516073527022849249613602988759553663154186255410895685329702232257138224787139425732617268826714072019665841768404888714994051605491621901265715486484192292095398643182767399142852639444397014667396141707393324939395720836321915447539390424082599786708265086792286457706064770613112930890039537426657638121732996341367961170972949663559261458293632969675794674677011556902222126376558786141105954206161301641343647821726602977722502568219850487139167205488188702952710851121575781400053659985111186279419800410882315829580803237796568798049100190698171020235322980843918122396726488308242687819913492727132267127244968741788009576096360604341999371956164587814235962847587862400105609147999227020115070682470114474895376203880102798614261008208920458194655617602610281381951769830450381161469601727314560594888703133201862736054583273250181196345766430694480229777685584155922032221396378739674441695200013575785897051399776915055924421085549219166858191452926915749603088363974260215919233219587832562525170731976775587583022244426447535015941344450069183075228159794204030211400259361991165827930146143532657251435087320794809025942180777384853926153120152062521681370032999884005063645139439389146119423012197679169906515745057505368110803881198705771362618306496815842197127742336496664702307009794676237271879813880133161514198791616090884233686000482738332397316868020700026687871717279625782401734834426813568663912493104441463058826257698990586309447145369792001121422758223550219862784483429719308876086608619524514993592364136828780827937571328804963659040388908701985517978222209054374601908557089402795365596724490840606686630020092485308543100746048870320129743546329885003008274612621658289784041364350104469076081530058780660512717818929323780685896489042299138497828002482639369561035495246154906542767476181404514457122687348289079852252231667139647881655343509325847672531307949600689737461415472670646706838220176499945220458611537498679968500499090590901556593426457118506853441256501870251935070347173780594750879833608155936459874698343990235362370701372924331369393323665349996012720539503628592730128237930637904638589961445390980652705940966468907624659410270079844407563689333353858365309725589804349594218985475511299887616780408924549988205474495904330661633677454569539575227959913049413659048728082244485924553192741356978692043422725796371756829089836271089357325921571266341705521056051139920207637048095567552260900225960593511914389693842343183318149723904141491215691320931238078594025737716277219291156094493076188594985549246283755538421715527898796246972052617048860299590853500636701947049736212454631542504797497906287794615342250463053416265991194420166432982574945143825531400033850280951378463046883744787435035118934350842285298431009762728097724639792147256607585606091114986236716940933049044431822792993384711120228559207812374337385065750718752497229920259121794945980471728914857499082793967504729189762513578965050430471843197544535946826958751546315103766039349538984512831786113689829070464013004766178231511890821126510345618961252835904737243575578785109362081562096046675769013048138595072488065432074022796944671424636761053313434436326279591423920745377379582019080812326349696043418214061930495816808699161294504495066945335186974710311648697548714078690574520972720964658125393343118238840913276305851869998727915812825986264238440607504898478370623649097406436813348119122916657901028401781037636351007770146943431696837737844518241277641263911940628959443188389944310400829794368106891603455182488351070800315972164004633824888750937271168003876097133103711540135444326442374560664988495864351980423244622149073457472317268449424622943001092188922877305278014221731801980849030093558358960333025050705538504857888263531030957254461147093159904196931136485124985939232245770036855995737453343876430369507036531591108255059643424808357826474958975733589417161715791298485647036284123652764129875143431989682118614156705515997707582687436686996506607102538322751194564618712566061051595697620033180359939152615588394634041243136188048787950656174056959610898841353874648743908531955149610492234792914091069825343063209333813654802379356474517962651506489863997195726977403163598913481657029883900011402227280338088831702490286369782758056895114748221833872568506884195127431600723256592968302257520509561902548478272387269653563178834879560715131582737585962423013783828255342383750875849602659852233610411574399291828853531119498974096285246723559515343860701640300122242987609491813202151454026346974885785799319773777021606709448934923552193853164116600559675983005227780234206791990728286221178887720141786105597797484097457112019226329203903972452931190124500051681748530069915443673914050238821078246515952033985383707509001270298377457480362319486670904778580685044264190553334266725349795067158860231035820859505283672734416177490841384229447382961287314254524110965566211090047112818071541407225369162435988546294754818941322494192364415910239005078139400086755056226945423432373450180738560227431112633844052246326437880968197693558454032938865166918518872203825269354435786111988283717534558245560837210166470382123514956948412195918402603364606039751245126888207056668264719653245366705144742003775237965690862389855428673655288910323968070194668280266767828054146332154285271019271551081103744205875986858682094480349528459891244751028492331476786777525296829819352750395231662473171726505866968125897480508971253425046289708704541554152267020891116035802264409002148165384998536543334323453731786197647953122470711303936648725180644424027486597076197155198620406078404062818018030818428366396166668504450519693726705556260480004281836505932847871661003098245298460637480695047456855123223262465880222348310388081902502553999314444307968783823552940945972559184907537083623195853845315178700049970576838349130686612687663969830726717252195340456411893923835277413575223979672700531681469390416100116255513276637169465032403367828884786851491369385019202966197782210312211613045789793841792730465521351366352437984151698772288246221246375179472143759309565105555307375903665489002524284970086275664082257413320025399366849429903524885762511524675165284855458894986971386159451026050839472868211276775117157810646128931743377967773497002228547054254969430268382282808370182755764750205502701534354450084344995671666102406333825165883173064417848494355454704867434954021944671967362686195400684821359210067343089622648445870971314745016014189716157421518547211881345136661997904427485415178964827178511012249206752199555958115758271002643675742098138942452792530414816893579900906370467584282577683507745624738166238536006003710043831613220991212496768401464589277410155678753003974019462702393662297980941186378566205942952848256930714838572020837123644923269938466612792957870780651426646709676723906457349035723559602155725438325729989206272152153030195616058774350477897392342884869340584012477371465567655502542390140525424236213421841554003387351099440819307903338536950880076620034747429170204848474404783112734383981649204558821646233624633091058965009473940245364723946588587508971118053351664427992341582169881336465134444243208302339287576643076286503186017643584940467035406164360818769656846635969549176750961102301001972607129246763959058773369441231595638606024802704299571968168807863558103477817715194397169479229799851976153954016839790517859940062263423114958783168858444944609246254129965271813365669783753046278649821599851771595669959776291399414396085454403337765447112103311233024500377323980618380030405292622369522717570936434514049697136406432828125513304247437867567225940705510452851378064488756104682749663241822278095973973712043476017120486508675553429204680432950382536628302586519345078082345409415980681916580872275674007242450391106498805599649201025078580737856527127824203687083903997829005074683360517280862612383753531480899236454111258715223158008029932000334081888910054042712385716009321360722532653540639588656525689975873990343897778751124093987271114564530795252156444597935872422814102080195162089830225484857789735460429577393775749389115002951148562165640822329862499098473728438163760531430305271562590037535682541558869792521932595233066804100126613496549804726104483972668773041948592417835246855015449491027366111983435715215071548520356101667108381609886702806352802514109287811220191548258085258386913389612358810663304563150823390375680405373159984658232384875989011161398293988185572933787322998290279523861533544407185969700713525916453879723297762958105911920620768109580502332716563901814642808350307580693410365324040165533894012965512386496831735934812049950431234849534175918044140227178782725163017046458668136537871100787177598352272683977401620559250715490648552701592718728300557571441318577588863500033880919504969906871458921041313708253446815414961248550848911189034440942828316411269233754698899600653914819013153200036761713854637617385715002159694119619017758297489006204555546578567659148074911692395186207377915588402259977347649464982815098571665128657565982616191775708144794745742435298742842336507521084505356517779310903505169842129316166112112710784511573961464499779769920897151596148540554323894292312254719789637075488958315923776244899161753166179414899127651261688097243216218044987441879520434964355460151270498811393403865845432180013583826025735488487166566938571711953584807337666384626797740673148046733588821316410820652821261808876771331247036764232329778445471769055932026160141374783962727466872678043560925402948525074405427483764207994040186119636347886417468316353789552414462892776608098696147323382294288890480234385452171369353333237848576091630835874444381564719835142334670519003965365582725605279035827348256971371399891971085983381914272731349783749322637889921446581936581735519388117112791060533670442106941695265288539280581316251862405480710879092013407321077763302029366093507806681495438629789312930359043556869307357460555391605691615557112332910190652056202621669012639127375191689510373740607127170080303664795547122254555147172181646783098765635766144861958902186737005774422034799981553628953067175839726244445838654027589908347126469312106998495446384983853709054470157566642353507426020967656159063260289894544927435090277642392784492275374604159797389010789853695371533184210950053997441203216917659619526239598115013182739303901452871874502637775057387662037465241293353929094160763599389196478984916497868258863359333954051323424410839573984612018497241013715924995568727953614947808870004642324824651590112114049809799355268235801484455657867098680288771953083048808337973205161884982672612927659069305206815979310324601558573769311090004676071525591497878263790275917134602670367127970060192753013410360281885450181274700600650255808334811251985817130648489118949047138848486199755783562125177159600572722275945946808849968616530002531851581283427773166664662278247705851663277289334389018136509069005802323854448348909928540842680134001892316375860338244151723003275683363875234589713706301836306838263826537204585769137629516445643749839935589166517844399054226968080826039420569601245902340201275174551314938718855604621316817252540231970484120001098886278323709216946999814532267405322463063992764405253786687573208119582871305024042863231954527433766200440862264142290232326969510410523798926539835420411130815166716719308324259652944779514975276442186361208752329360884746234518840067040958474144050161059318117986183295931277088886822300491152061211272150382582444595106283199134581163267198008190141974522689511828939416267869666317673753722101359509650300381466681267118106487839832714793312079893176466422295764111885369919030562546769826450911202134338325654433762017080112449882624617724407654157770389166080980856643459927126089495553865902751486914483547364590440773509968659940149304921815480043671520177760010753638330334101256176536104543748652346091115168107641630169267099026463945077272971858596884615886579784273481274260243405896883682449694883519162229779435577337950210473171617850399244781698894726898897498252074720622700514778403623761311277866620973699955869461479072450025832765844010730627076266546942941808582433180694001427910770668904436111760935981352827984675050297917284598740208452440022688411158083373079632080293279839065926540534091382567605269092680723414158597172814254360255051462213515084148615546616622328206647042072211985692811354120899656540081500886052523768095792109237174363921507761595694692027452293518243994103974263957510706374037273987308187278974570259285766023768414859412199053795456641478872263198878242379565998624414080372280665193575821792117958234152994726566754606122205258055743421092647424709235029136603362697363111240181415863333931834088497536965030989150045645083560568965919955416973424657933113630526229848430491897319111286467208709184119422980619748734094933571515397803262174172958082652961585785195817290090272869642810062945787143008122391858316333137379237313577883414225763599618104630046345490906936046493637695263277467267540122373690785432569604900412015201646032020678409124218855067417905536448598153513264324851737871075503383784587135934526479730243285094792727710356898544355057362421162857554717485600800668877520019877267106342391010217391427033822177819215151680064753768880148827823455375900701747039721072325089296845900985203321880083949344776199963883052237919581787224237416739192093323829405178887571357927531569032601648391573808728695563178528844210227601512975012335026585267678126472385014543053299770443634784839646067767889763477185638959950576410166958087823647319426560665000262052635803063940172383282389225570542880632102950081845027329996083669623953565369107464070511141206091199347410728955113115927422833363508030520420525398363796555032864076020762793439347599928880139819890115289230624572888707709804988921836832911070832052340175552593635768277682432864905536561159395097102708794966762072451696035712703889633572974306476757234929375841895689006803829813230755299554244339739643471019836584822851132629268672803614924140558659356832929349707575106922845788859088248293109145723718444425090111157664410813422210656422346895743303624285460658639387845619684706514140055364631877812096509884803175685141509227815774102679308226482552831725611809176047039072630076739738977156092076824494813325814045794044449455767071369181136571983943284742768773926339997459541995730786426117658939778860596487283096268566643060645498288714127722366998524870440197429446390303642601950685001913365485835082728483714513002813913468713910299932347321510192112595473222025408546673592685175565617487432975667692429154361452208164673146797041983997797375495984516631282038881873603281964862293561243043118984671166453976081838075427858081870764337455650533990709894443764720244958776218103501890733812669385108549814940138313681754001888566989074661164831026387277922918872252715185121082087391580069097062274109222928731820958251642941749587133818335280734506060530356275721895002759708000221572008864625223806982186752008052422108617768730751411783332383422527949997698338426634898506937437555008283793420751179468155496413521739444040038276404291174450688586783523557535970791699241737856428999547711231564410670791755569271862235388674780040180616630497292709187901362354702851615603915497465060355045692863112031311651491750246627203292658989268792767411302990179740470169869329309332255879379944033389095430089646817273619870958313605326546766628101678850027169784307375297503735946675170263723910079153651878559111602582100978794159953936432508086947810209232451542347318006532964724948385169471745758119617154613280968477253764925888865243705563302505722169087262965217032115645722813902077943570619750347811544383998553766363964138618155320955948344539941219355880796293876537732414656445085774756727527721576969501373965063867451205612185634318822461789966074503038650490421809996729508875478235436689165402938798224651706571657300418337972123840546559157668787985132989368985344875312578228865928867936863306281546928884042914573910112162992133322398172136719409984027490400748556452871042981413952297124892158528987545362516208728474764983855139209503505362749231299545648182643483351324446162247589870469207349209818499702855934913107204492802608482102927132283201012465967113794257794372530599679216183118323274744146598479574229958544247999630654865888747030316604501056028695750064054799100686716995588364913374154697102195295049758070876012050914939404529046517885015305615923708416510421292632790359383001658480101848625252952992808923418423493209719859611388085003978846583967050767372202279093418969469723943094852805092992761715219170376913924524471420596346613198137727226213513789598220647173676446330191665587207908492248312626420515908780928948592402217934758179974991310863605221676915477692025316551470903981799142002726644738515501080317516041555140015600947391478482358475581872959349099228398033273808743641267949252298284924941278727038662811566520423071974257874868498859054932684319337284424569239970227029577534150642047028331872825295919084134372530646636176737303344863585839896995276816456801746098845818614307420733682943364528150251936042208048303162920132349387802967948464543259290471053850477623419613791127774527847392353513186300647963481832501855790635729810408336237102224423766807482922092048747358765922072151888381780757226774399972084097216548794201425672257200065209620570647435432292212876203199220811794170019136981461665400254047158195512612338217388753125893926771237660273511861366958013546587039695894769495326812270912147861281000587400093553806861094955347339364382393428181262976909532949469890956416428292142604065802923685190463679323994600847924015629938320159382314561703797875766163438286587819412133677648948442441101855953547553066777757030931397017867402932308316990473480463081361673248718977416787366618324315994147793413504876344592379955001079544839159471134728531754861696524980941391541852499051267628140056374707332049704896596268518631381815202011351890305234706720323262985886838858592863097941161442065761480203737635061544420830229433104134920394333772474815419965669080236894338499406932743483902557675199788542602829834863140331091625384192565640404744608117386102816873918251291334242627534154273214804960006188484877684749178650842231973615960704146060279003717860294981139432443057412229381456508656722397185637346609053993106478113935733632248512352606307167186605247991457090367810625928973091979771550973785671170464682797023684589578921845788830058235492585181742851473048581337805030450423116458807350338710950324326059969301776016205994305802627928337027153268886556359931387507083266891514570878732650315082891433002464095731234317220401752916888107766050118592358847810397060762045585601121084661152535848548010918662900155814076532758805861352412078801690212938854755797064766261024575367380539649421020692009127369337958139662341906127290447213109781849321197029812902305077422670457061937820298721914037010909128990714571079698225252426676984256459995261175085904293947803209099478109282138093365659933426156919088113310401950031984863211015430093025857129119364840489892407892167654629500741430034442079289745600097643420463339371276472358555241168004136232264664111324082621541648383783087670393619825426268105362097781507062261140204726393487294410406372334363412165926254894732950929441471240105745757200846277287134727860879827975709931514623301119046452421477475782005574311580830737382277759240225355122768325067156608714211363724095189402632221797061502848832310720579168253732505269258958736153551479408288026013946437255775295400883501918264011688997662971262279435218951400084379528324398025547840508625917241348502214581595610541284182715129551313246522404214054484425553643258105250679379223334950261897333437689271333076526790403078743014245669553995029273228386261283331055629465755303156155486940617679733958405540951789569403679404149184064756499205812902265217912812460307579516692189801973799318657712600516372134173582172475357850136712483240698963571948642304440589479365010099798576960700029417713880345897825972330495806124750258257858885031122400700771314569937184148454972592838608174872546376121190920783623408393697676425287494456283181194592080259553501577390733761824683570708681970020047679972677494039699765264672514073928916479041208189802566015755062429051188626286681961013367337119118367854999678225386706350839966934577936756668509677599742833480359041795843094414075393476180287641901292335902710956658357054397564169540871117273998941379820568582519676217311815203390079872159893627909936634677600461791751797069893636248522380772546584217321542443157306126973935139843861408736771225488752598612039634668198455563585032156317279719723276648562790278573516460858032017539532989093160546526182049444756819935187038049152395658770323935503320965899798715856453001002312814402475346993826878105379932294512600081858095466774048870231950378463251388679411297496271918980516536424298715474544433762626161604146751755938132039598551936653394268941791231972076871917749390685478900603409127889124791189561408397437971341609255021211175911648423901128557842641691305985684079107473758361280616277268483492667419374735280426248191903845783913773306411590806167579357226476486912010250995556928333366922143344897834837280174475891658142016662343867028839587546467378091734720923326300087998931995260592252695708876013213509777721314737046312806945716268915202756691798591100511295589060428126359945959858446704538606025978596330693705932716870462137155170628709990211981255176660801005092119138076270498126531214712109256763602257153465975585840198357877167479845068461477259574580971630468804184112674149250255038497834920193482868058812072354062184086560438890056629885196839334674716504941998765250278145052535083361260858128129815010942640145518754231764923437455274950943226715895999589914866246243521573007967465790538090404086525012053869190200156397851822186962988782578669949272362363993273161427407990999899069703696278043250384545999647642390051710628179570845214940071557517222845240541368666482851317134383411703340585286364933111492648449142802176395159895792136066055543750156340012780513978617821619185705456864192597744073418923367239397999491966292761219736870003189569314259241457510937618424075162288126024977785517306468372324847573738347060117724647046300475586233614932904057338017018833095922829980762921632109510745513744347875074733169913529694861767124532396180250118317349377444594434349507886060609625033131055552255591077298367839852619243849496278368182871437497003125853120586921816833247353269284774057424079345373817060046716046140208703417049231441159617240414533547260574535134971514031870928386133401905519600092507038991503432983391906346594759450230986913293539354246664322729258630792176898276279558321104817812117801461919309459621160762525399697265042163153029337450619849604042365333789384405389453286862317628179367409704867750261008122770402349524531944286183821217858294164665736349362429079820420375761658062495276335463093685325490179059533258953701047946546170107327255055997852971892451406837069573160577803721431691179567201969665378837894828898299550567652149332557887389930108156388381123204884045147467437855320583458199877608366032445282275822801009898527084872939977772144714985235600785222317687003799003390572386261022793780995699937685135205446510689691066290831813250404727707294204768746941245993986288978210578564338895616934669856885863967248076820881164217709858884408127442378274848367978105334006067228250269809747671990958483718756227937856619031267322075481388954008885607493669673143851122120359840201455916475240004184061923312174903645218335766033365432857120286999259167144644065369286949501628377438790003676139355481263543787237457255998629712416828561800329669458503069430748215246599775873408606437575154819091761417047842391173367327716333371438522517333832597683924038029525342291934940673736786422792941848260654410251253344491896085966151409399091867312540683884573934581300712927673496691948146229805097767482565258824461674348474080765656089248070647785013565575850324469152406775243939521426785594795303025379799911191426223783346689734873649739350832656423944388850405831782023289041784728349600940875241868438613627307181583446157945534720315483696613706166211381032089654367865655702724173452769922769477863039589600217449474711888883221281230168048571779238581993701561299545792182833972509526971834634510766952110333822373911481500713350900087000289817990307383776775153681291500271192543008291418800993470951649715397419903674969763956762308496899038756369378524638295597330235606405035232579641634161910052067596458100549048089909326742258008342846169142611900609283055545041646605466105839131451461884902177291395597202496334578547145691726983597003013504548449655465245038491187286320324256412507608385551549094693824306956699644866791679496933095290230302262473834753892556079239073581161101899742855381142120908115917812719612691744899846030503100669787426320851655338036595643257762032230591087500230880010659663672959670968206817459778585357176025503788520710577754718380046491002914117570754196229557244325541565029373455021832325641526137185805616074623153569197776444953522692042670525117927637399523308560870036541162585224208528022069369047946406840319116723076534382242045940275935149547400571735659038047609933373325412279154787076454312470220557779080258857281274631873579921543629222976269318603289980251280108616406918329194613018889327084262501962561394333535283914171261406321585774784610510652860700609925538806134625151215239665721020977896943527892353260129805802255558542570666308914664496515175322478119451151262572988163203469070223052054826172295260473525778360906188717448160406796288395968147600973558833276880631033933043019175281883432520875198504489439516591572091576607000197626496147885900084704238343550606912760728302240564056252050107630851792061964760400124116179773427917650626781381119250401831931841566709014405993122355823356537436936414343403158300685549563443415414663410449730506281937765879658236473450236698138073972452061076456635135419534580145118194706363841497730736132072170568152810206811889633473911287103579904168905324418013714802288925501143877437935482629687184081994079627977093032984377105712503374589108587264029460005742287922653713357928017412770605040975927487649484498118420498952776347155440967302799069014732956655462797685388866800502530890739590963173951897430393876655393394686081911602240946970908288753038787705835126240964470053790633158756706226336186316819570605326466951062161406617211246417055331448143844255486956792398669612691728884324267723971309453947772507126091002948266515607963384162078911679180480871832525979202530912908927244796777446729924728029797083198832750238490711879298205973433760093760309636647297406217647567549347773552547808530882821040594974548937975508841595616172864252179291447279989160509803234625821820582688541719566386978699777103385395090735129807564958072080234104681614771403329352570999312707957563459717103210919682050078834296580033710930259864685202860372755232554718283996378988834598127875197693758406362044391564128885772501349335605776595780890619325343035150842666994662823222130677627456384602526619406403374696374559360317897704976958514456759355148696487749196913144095086208190829259442204713279787141349199264028099716079302586631336745421998031491068614878682688560022208045197186799406650212796125534083233986734583157757868292490553653968798277219932962432337447406480883803565656774558013779085295714757148465518103152266146831365275500222377141839182755707501067058224015611448775215490693170887214824085706494693451248486183421156286401575383094094900752906451320469006870272876243948889399527291613618728031715709017571527093809792911991985423477174168628181190217995920461545765577352890445331002637785731008496016027186198035098180668686521280466482859859318389644409529005501131622573547136601373039665475145180375211227856579649050026082973330493589698043136604744976978313090671762964300373792013501375981375794133592347940389456038142646882477096274315077841366792670046651737910384899325713998464345643877777168205273080520210072970745560616676738982804808930108993753276936274078045100921207144526165913161673320752968334047305120949990018467333039011414271041502260303164622716519271776781442442312105179093335965772165032417179677208433363949897320883855728711109061870241944977165080916476364757609887464381135533149136797727775264775858659185410159357226121846469509967126097416931528919318580959820911603185814652203758973742077286445161505316262045905848918419281415647129021651711364739311227221764432708053955180943964856220798417174248981954286924568628013142443697148325704161388270211106251680759122131386383644757820658214598104555652711823036996337239478469751948217275379416515131714994587781954610662059503956323075678886012407786763731349047845843713959378665788007417275085722751239811353670116570519894301946165989165876601648004641144098116508259581923026820694997637822189176870810729641843820473869849820567065601366703483390005636857519357553171179364319824958293268195230179822044469654545700288339322872841836557096661270178061160210023077034419066656809666065511130403291381687369301787117715849548078661093935598152900680318996562893856684156434239176463701167794924195100909978732869047197318830040076692009517569691717127394009565928332574399802019481918248423393897851048743644487541679889227664414744287070414610368196515174509300492298075029775827942263126085564662556772085742421982953462653374466600253748994456129854510218147743330075553640598023381140652251214335843683976100089316407026850246325255470766490919861649411977686408744464725726721165364001171500895508693662026236437786950483955539260325035814863050062338751686267700797196372724349947945670958563721579594853030531341757994076649567771527317971801271671487873571080559878819595150709782449992229530080570887563098869063338928993826025571310769646391317358473068939152093811397133236758618114801365690795318163345685348924083121641808014766477420031020299292269585776815915416841050942442744120603603552062734559339999547283177902200822044714676227473000073865575673460163069718550873200700457413449624752972372813559792707453630344009124837568289568527457225930750445407732917977567762506194730491449968387653996032723142885252326287498751506749147919165064436299530942172275210787604249557470356289537522386001474686681132400988367897980895112258425439028013061461673991680877634219638468427912774402849291454214707800808078196437641790744263262836594083013638608614888414602486293299488012315447277183412646428466199645824460310667769169033299176421417244677798581851951758636990201307177939677490698474085029096608975771882300114476612539765727681361027158367242859129500502287372932653790213235805019428298975720344832329042270791588867752960240314567473310827657989199701702700759350011447569881724237845775009149070492263623491360115125828946908487006518554677421984269820107312956663811387642937963090200571885078941676517780829033739261050648764011521625784518490505041438493963534275478202452853601823412100084532867567443087328568181497814344169991734636599031931742678458477775788710405839397682135689805920625342623336821051842028305944370569953154443830090130715912903736689997943391435539519687669920184455647624939534380925442015833390727525211471207696563479921519248245368734258827347283343207872146703018833462716797836769548372476637659978863081105977101118703551494634828710386438244421664897495613520243457622139389091733679766397349849468543722381111441407257070945919210690565311942552055934491068792524252509304453079477917395135332636483872704379071105879175644587887546295953091142243862304779218361559055148117984021072591646631547126096292522867192437060401839916756413291137285583053316494148089759436211370358698385446909048797988384118397740301799220903973043943129213221538425208909866871401719066808665004960447861065622942425706066543142297937772304068792979432136920058012561235398243421440256505100392569360388309393679555584188395181724849709165886958924204181459639220063834925817930673507412565762603263424567299622926126493184967160009495745689728265699644260998247559174634912709152197409265460213289478481872435533755992491312789280379140204633725781305315548711248936611769178468554059954346542241152454609833499351844746834062497301739486878900568181146909466583476244207778795387305258550850844604122700881255863546062390027218918545647613499166052524407876406438216258027565091471893662350024411444763571474667170350553940042875875176923152529507888352076753988220189404966405932194747329372614180068533887991271083267783445640689899488259370170422997867329960643060361785233912374776599940777532441255820514796141328852864263692440180791432769004840117832299515628457371463342204813795609551267833638458970853306211472851015749278979998620509384817311367592588975089243170559202904559301200185866710868455786150502600485715240053651474183499363995832657863494484905495181259083737492812141268753816604263264359266501480873872010655798982353534373518000610504385225172183979262176121018047433427624583225164938966758237912680265996849790001640549859083853028471830144289470456069468688744375060003468702695523625670406255454752299998165593737150219007030732631427505021944183780577601956144714109986364687795544210774968526231936365785652228154224342460431291640468463938982553395062143560854575705117144493102110498906525916440179169982123415978322306505040705614903533826948063237119688355063595728064832184756731932638133415805899744528108300030337977398437591169658262851163533699877841016510398017016314518154527513303682792819805353248334064387735277784312715038698184410179240594661964793981366063797065434325900896425082490444109932842585520823817157225511602567344138284334456661572955769161599959618807225001495801597515452013627661270281902180466865040523057080591149523308719393562070334667081903610714302826179337316299800560591200654632263036568287395447578931135677758670098622394933454026749014334471995175930090408204126203722136230626079645165538100588497568971180555269842463456856121792188347826221456825031578923193690394691008108658057008289426484820752171189753386128991923201016169139982076959378058793003247907885576832018121043253505747838697954221603607251854260359374940105736517250460929417245552740399309528132545006777705303987928853777717221963978779192552443350887840623051431434645675238169721384869100808770740582413693063281326271103782754982653557137183646387936716474598862374740197010125331508938505481357382221885378689765036474571720106014531136597793521095956892805975791466761385352801928704980032081321280801661663478676908478895347316557145067014272223633023401941714924558657117534526697616966100690847064380288714524269112276707778708287423853400896576686592982597720850306536107991069235802551581902594579824511393827097163179640809314568055175649544048785623779912959759999313632069000863745210194731855999770388079589429674659680222667210230821801510719446893985771364515867204841739279981049099397503344728624108289366311273456377033749343022706681292618085675823303312289004516734257550509157349945293469842640072208098188226621419532243891464808618189653296206508311051165416783890856036677317486411358141178929561321606189710647542152709683259362838970293154314707900232985003890356377581007266781366396588153680329101058536533155974645579745253594401079322986865534565641314313158798291873395953188151829116843611273303412177392853201203257065393440760831225633353001253896470501518348701198417322505511243340836337288533323447957621437312166164017514114281588991507434244897680936104516389058341193706339036041124977874518470979047653497631464013276646993761686286728823973939342781225646934606254939997828112654893683545798237432792262232337231784053745786319609584370831321752084225761113169638258551173169296669891099108791888198587857705305171311617982148751611903251493071350602546923508129240274528108202334317722673584346916304920432304652704601184814894135308578290917306522629501804231521592760828404145977394420659923073720359888953312468456845306106821754485904651526603721277747280489913417325399435373319630810418834322826948162168364560293485281324717751792447020893712840822673513173447402743610866531840818015454148620821615253244828899268601704056704557206517478006162287622943119725583729968880892145286441100754033391019615465096601404406932798797536106452325733043295258939691731562886247131008806739596638815281457149694577665547760989916975273650632617114017266575195793298739310663951379051635491060669781234828516051897776953143359403010176418172066857328442770896865851859925314813551379057225992356698109862898765990425782996445209459189136813955155995902255909072836359762161566506532430554418129499086056860045401215038351563722283463271413873707522228089185011054513708228054889044910188379131387404757521428974121694289141685971569031890657213571489605189772119685594160388524548268430008680047003146539058889803534175648084021514234512646470914195266540721304164584316921060568765291492939614414628028162922775212000297228797450543269172150584209998548388379888132537986708878489856024144480764450838202315446173899162670847915631686903650198754579617812747968720022304804645832905108894049733645046437103003437714866823810520570376362383128922722878430849237634283594615230188380612372036356948681833736440960499161449513482148017023024249364777029061684067072143727405299988721652955097565687776129908903156973360718219805879616868436712615295663502087826699848970457098477396632994252631470280282177328037134683061450130796714986501487171944524234353405167657892240474468862713225049963265709575861653989581623583689797850515555557662506168611574476381649093132800297822354969790847705565882186566829618476281907638024374593194926642104910582212610099884943229668049379291254673240759995360848074786178417909481501745821613778947848242044324380937076013938158922398537795133774693253708359229693446643219248873931805585095528952837073108498170699865930860767975499227000169744207231166611247346022942431801761883798880288613084394772166106625234726275238044336518606606881802002670014115777331422534841769485879641269655066257519681490305360218181122203888717279092160732467687296422216849411638228073338203043554724302452868471594864412844630249380953518653106876762370584717823660290547809161233590962276458608350953772160397038892789001612583800600834465733527042509527794722501004600767257583947370879507814878190056218354030151190385914004839893990880039901963922853690974743764596666581184277442953720799621462451406465315892270416836035290809579144004381967354808815826648997401303735226555951982702205629719716453517452444840816124915621346794793173186839131831618526837195544206334392899960319648249312209854770862633980595397074244593476386396904046125625267928078835938649420153979739882922052747490806109605883394491450814362809109940006876797444616107588804591000479007503056721811205146032320371832197452788537742716592670058131847849547253045734408699702528880832361533385601120096614448733627564183029452620727690055599653639916051361022862705137671244991122660368202218320928742796972811150294768046780581624279183659363950515348522880807354915341179311224050399694668930003172044685399687365795107617834776355188681251427368886735521999412585507727755519934629971795716242528618825008674755932442369951240124711428980492806567646192015155778596727201070662718240999903504568773668265056302610778604380855266331089940594636439436825230468649811021751601712196087035450746904587255221815097013885041895432097866207809738404948973841241370913204228725247424782491626629086107061893593037965399369384606605388212594838245309312421698611774708195256807327605703012858622014615545863037491406687674274524323784522707374775577325164376439309777579201327752394584652169547550781206350830229499360100621909982571038159238387817373248329402806574917167313613847162890776744774775805557962004243527075722856471044191920133893089296891244167775959292789680265088480332729050313953176158151782764461319803233231502865287802878982890922562281343648588185894904829792568072932154825633404113268190201063268463725952911006958378679697782449111020785494663799120495826549006957304779691913822922839621511278166909763198790464432673239078182957547627468615036392412768776103982384294563395804650925012210863772875630999465966560620914121879491919691199774039873361033045791329719484671801526367300880592325767582429822499548455583731498696926099023639782143426376181462340384867742642817168901698130044506511217825135024929199982212182032766751594124585829829586187762871986003496752532227275648226677384329715825120609992972770563551261566960594469886930119050180165781905214130675173538101375256295848957066584929247309143042426497718642715675543666669633257151065765601825845999787681303681566343257043160614548605580531050224981635143281819835904745187453978950161419561920320370910092473941671890953166346641698331139014251769028758260100391131403221508566253989420296834003467406254184200855784041559779487115713379976196043735595683212596974290625252046449424809304603086763478258609736955503943555659305560529174632777466192325478066404563957610169696848440685494211595108010959588993537090490433791236323539955442024743248932103905578131590622491795957014135984406233279028987986651522923950495346729933535560508791180790948544699932512625902096439352907984681847593831136134572179363096754029062213078650961637343192860639847613385430982562996045357838687470462751443414099096670031067485899446637943926294385491875579111981863076361521706602222380029437225125189668291396616042662733709936987698680488287580530899858041246560138123885610959261300641793125591641481436965347663792992822090542962332790866790371934144168784732320371441327733595297873639137741018660925023507773864694110694911113944950659093847851630511763054622694955936285419500877921425705072094134663027157570160433951033259640715406763144275616631938810556985817075109839194486778783624261960559359548565628589863616334209215238657590638847383887172615270081206375907349181290881176242803959398909262701534593996115107828653092937703534404319741463164238520352772074907979363921388285347166909664035784896873592571481277281452793976710315199104109037857781630066590629228532288727044585983191120947273775847865503936203673990890713490757106680033072477142422291319529224093087266152153264354879919806415359694747896802803101499695295612568148473062840012344985637017894872638622463969169145226299028013501089978932315469581588924489230618842980390745523202873308125847847045982023275593521032692206474552593029184006268099205887758805455035532502316396932423419982245030682768142104172312297293087580353341237565809038807972964050543224089829494960832141375055010424619639191366975025292281273122395653087929317077210282371035254670311716303504311149022892665133719730791295905401529667392637264587510121588055254458341953760099564110065990051535672393056239426440473927543109587836998295087663143547313571981765778693718457422317315017237438832307157168560602394252057653278194402457746470222831736825762808796955174294794495057142340177542630817227504549439076126037686799352114649905668333402323029762542179970401083997755845787218347899135033789250606173776513530744602784915895146536598991556096652248627903411387697914093059816839310851249210189339099106097758414640219262295711287855295050270024423753840823206121886050288527446531238138824287129069756154690678529339169977169463834893340017830595086578739648429448920995003785434210062591564485847216331871506297655225281286487597689661515727202779630051175061185829744437477956497459720603582982268154275153048902873890515598241867217346145158353943417403875445801947013547683551296072042637515693097783807355976642559549037763646477001359738126534511442198002599732798671598822165977219157557042340517975826943224128430368025917119697325742397670104823698670247727663045919412189558613405027034947741640853629970739083646667341326763208015082612519870689632053289668575157872830977762652964792206678991007680669084641931558160270962305079756488493444695836474022976268880458588330759243706278706062687264824411794807044650173957065461899272163703641556896602399246614620286567992141680635853939733098556135201486769582299915995593721789013728186686762446812197951920610210609326690721864324610111635380125606644407863642583287027228781388758885897240986268302486756723648116670167886314024027656650527147394217180130053797451313081380411125667801441135146409630003359890810663939686543612574104978926665381930616750562395891106002663312366085262365531707139690844486098224921970014419947106739451259479025562286860827916174088876052923261748097995065110770105542009448898490160263017157621430697067745650187314515659391587676934052215229483220453952463255068820040679803934099281907379247761144676926577172590128268903427165969712209206995147770815452665628608923573717696394329987154829958267752011795338759820104784830193073498450935911544542520793127813679236532143052439739719719920427371596161588149451138393570277283216012621022888212024927081158080860953965745250450403986032458944833397932561305424710956017966646046392460376412429454568014079889313292929908184113238296657629992568072416155153666208728897249275610946749145361139940542249152161191662661621933425257518558770713300355773880080254109311991328085381531645936065630373338644202807639684630778606954921382974028263017133640533419187597544307411308799945947159536936941265659405899157114177894216928414194446111122258220161539583464602453060391130740781425704912243561483913249110964938083001818066359287247035355868412169389048989690178280315044725219193053883612527368126146222086452613085537867459899974226953598232150067346640673588414764739033935254333495589242718936547435529467615724349814653988345831615045580716258004492944161189157486330681681652945198118050747109878502972874678212608133809028786922476245824755332402814469084773529227468060754537867603422244363562422908813385376999965843560209041124107214541329441462134418312870906129326510148248032346181372168745968373010720288042117256855304580669310000809477478133516973188090080709539891265961730698554512342951690973690276994255155006084896417945050330694805730396706225805233476776417900519178741111233008419431702163090387493146971668671961396339399422694140114433330082463661647265274013634890720196965826289720448419105366035345713929815550906128763355738133260713064817185827127784081493727959465531281360068183670840205703580452621300910166604145383451654837733345081899470587817060545819024311147223735879651203471896155584808380637142363815121000047537029939216634060128420472097783898445802903123371933454583852069769654518889719978075962991708387662335494561256977299277960966919628530703224031326411611954580135984701542358737738552898198805033899344510569896980410891214175852695333442719963386930101603424838214177088607432803000505831353256871068604161339792790293042472912139695819570970157162348392993720625630280658597396553300241314371296544520537225955897890234334915382505083900933880916235996979559295504142949165132856768953976754690953243791359658360553387739651767147041352516256678191133118694689161022368517165367906324095276332065428618140846384162032022864412203439559461667380043769502184806612159146280624630211241376624896762316939843184580378992477382141209723996283209626489506861548278770812572575101562756254904868909570645081350688821944203702261319996246182888534450544391657964640451212488965702776070038171624988527847666342252158713746767449414844546939743500967763486967576266745744763082388636000667133215999602361278520717339501736345733458450111139285294194944455323727170301043153932355218681743142118156317142092082094422376064366009741406663204102316283367460200736578383654198618782241724870906561964730451451877097710848700769851590172209164740696439196040008734083957847246886748979874317990729148409412335465954927020312443674358177675037955222576802881257464879483131591744454188235667195966643502944075017143498480218038499521940998182303577081626818091079095465550833020939183931639054684873357471943374867041904417636231077765808298302007319207465925570474357186017442575701889289579389960104714756124056514171706524457939096091080369710842013821714403504811882048170289790341274955230381566980429616370559114097571415656243432681991479695570266968348154543407232479561776706267473072075179442171406361751910371734204879995071461127278024196649075819775064083532622121736197521890965208372218645233618145431790638018435792531477905430964537980853866767081696875271807757264837887986698812420093297525283058487922342741444622794297139901439257231333793611334346718270568312309309073510751723618891896356450227493476897530429221044533426291082324329988670066638195958907662676496618766524905905064758688450525177455928083466827398821621201154575451365944911339426745053492993222682857141146028796154670934951595835281176156324875380794276486447870739342709680781314388901332086094407653931804459545568162459045643614320374849852618489831416925816182956347118667487622087328445074844091611054182794332676285114631144209586293160776347004671547881771198854939045493317454581748146772812779246575591715374706977919269759653426111173417688007152558691058971592212529383354057302698718978748677295132293332329713829150151452512727596372665299991568963666221208800198985576491837577402513574985104892369852275609306047705260470872823376014827346566517262171699286575042838054273398662501640583497683913694483944613478540406482489003458110202002459453714043989834680542740323367943778168225017875300493980160928214070866125405779007646399201957413578575746916164308506032024437779096087598865094641981718359314166175824822782808445045154790682591089758688698287816131253304048756833145128129697902863442441141363372044521272309754544838422171890063334235777453680012615022714908748534181756107000017629182884282728874219168258642606074510630433617724572159682430281710689779815008213051813127231292642274759356573411457284756263522790856332804563734117399002661849826384034327164128228893935756358503521819604003943565457687883027435792323274781054547345615534401935536712563391507414250649994290242021411418897773143206956483550224778147661091927823438302934643317748740900650802171803616882454859281105204808287312829813895788966691606960039773522502317773867659151362775824466203588249056005594781181341174285615274364264474963885473939492030085295494911259296844397045186707457245660567176130255312670801601972096400643603366754379968953421125181940523954897681269193850907070161201370285859074454596709178399949240989981678569732021081822208126601789292463300142924801781325669409877060888652927899008877128812372883147054196811163095411668721922981728299961039847650460998636146017241003294802544941885937474105161473874893092475127294254249517791950575626882132704308213088147324157558876932644405096614631933046133868950365256843419342176963244807633128759661587859551921768495904765459086414666739750388631660481998592956202625926573769088144360153613794442995272136984677729000377307459263805193451189915324763756212146112023886901783892881463598185285737880692594237454228540101268783175497615311230048789757954747064655226121853841819513154470861748708486685066379369963991031049013414451868606441608064155243217263264255043374641197671710380335586105774383548916446272372168068148839436885109469235825713383208159292614100010588072246725089431473855089018854613623152721677408557874717064159008380157038076870191271103854963898441564553773007329164351841072029270884363351942008972078481382625736509330734176030016123824804746793188748390822000414579621722488188935417155980978448326166053725804991230514884913224928412843128354004018175552158685167906577608961951566287536604936443358690938766965142872832120025664827522205211352622603421311711610716988689626668423312630956409872654158249971377796004262048568683184494668761109961559881171583005296969635468625381819798306520509661032412237628234634929300968280132789497907813393885221752758265926780516305299784626148426209713470816429132142143882945916451011417119469123939606218515425393507276329881958418847365678020366122436350726753728633836673254590902081443019067282784937821593625436870538128897274944878748767683644270150732805066320398312598864196326222429640467273156478528187098454058840650190734561080878713035826840777229412954005219926487146950137431955060083816942650079963934008002136899179669280592455569473570436079760745918209652998016334296041622878861022336334126041676520876289541005048271150751839766284844892578489478050750419435393967437332750790081635842873918959522772331835304990966214843894175988192859712937616471337527047010396706251047441500045501444924237596588274529303618541632287169338125160226597748510106717007103647039082530022986110948391955569042964777402653251512236454849027436705180934007880226212196190289254276453657671690845646122234662617479960390733883340446211856097884826255795311686741460868932138815643489817248200060289107842398680111143625021376404220332496868100640753474225555165677227074985512730818176446897824172272266089518374772318615073174714290207620849887552385584386488229287851389561330367934572198260642544952962201496170660074860904903589169218769553269973359711272717351231208325297294420844035877573158275339204878063182581473743771970146212604344712243410050672737720135623799385219323979912749108750773929820443623254915962334999471978354136226902162727801644183956142643518745545611287586690218033583879898008280590547969208715778948797170853027588058407929288796496397454586389380301762485335785419746978504280223288340827998620171981677531906793787546554489051888856634133572884332763831125965619797121757610862545849607714503617001507219325610779977944157874982088987323534590100439037543117336179969384770758550649712548690172955901521943588325709142555136268242658918712826638572942433827484510705656949653509006248306276827199811449913860787156221059454852025568218538066960489312419244036566033279140609773706960521906938010244257550189475623558987642420758478456343454278442132884779070043167362395225042947341962262863693776672299392068343595461293390436701654224702729905259789249805642066211802729109439849215259104762294208854929536775863176738178529003518528066358711472774041916707627399419804799583658757862969367563639888121207227194640027570536734729229582557865984571188617172453745386277848794131602029618365386031156974139861560109490851818687628424851184055022556908332224853600748385836538703952033904165849463758953072178245479611892864433726342912457101307322588772259118656508171906254814810434357036588920239092679129882115964167683512353201035214221135990836670334818121948237687387257743928946815662504168052835865378300752325926536086926578297636383212451219361464390137429094633497230474830245501195568993226052172641163904281778079216304235196979878144925743401899101954171965222170756912957065016340161482547403840474652742056530249696459970493968867481231271934415598881109733875726815142898206860942784150494305417807603826363482279968485036646803467478451195211559339705191552183686481737590572858250870121430900436647021061239595128523418024779273745892474243072038282893003618686098759888348049548030284987090509726820394906012710134496677898561447341628799372849080549053288105654836983427568981117561271102767727851716903218281422533907933789681195082987458130058134768934513209044031448051782294268350082662186081136536878069627417793303412153044347763576228376360699859232138742971715206501776525125793957051062430153458881933775493153187900455209827541136588991697824407004823104422280343754303633665214823778845704124821341175291910466544410821890665108503346871778622026782902667277900228513599073447190058745682805693370979655572288395931546022502486331661899153340385102305827622258387876204888200765860383470807479930815146938551573535031759127249366450056940361086225270356420400389063334428250774424791090989930967763993753769946576536335439398312717465077881482952396803813643439345792087263311045777740709047303621005327914306341964274167024923779268789006983886668692302920964862560004949988071361086738254998275721708834634282135503535250104489927998317418314294657041978626301854483450576321215310744672627305673617046338575823112228289939443535578500913504677495215923859996264015645018671461312483671062398248513641193709105897865963264627905273201495050435485344563168170986668089314732655530314246456664549257346347538359388960958197895215701490016855679599370496598413737893205933503902874819969127605798884014639582555738185320241200211052601896793012691050238897452593172480589843741197757681056457378374229015010580282565568855451739157712324855638659077347785135626320229800463916982219873432413549874269166715288894581288674583958096575541275959731201562437494724474498603354551095700390950514259455035265759595169022803278921678860962826590143970598615574588223616822906384839044728279424626821444500881538554841844351047459038260955083750648628720069652062084438548386249237951926355619291578362557681353640623249982267767976259794475439263759116515382931907998643151588280317681200728239876586496844454709023939267360263118497507519602528947230114646607553836548524061625216772115758689027150205798938297715296138892608687177813909693643027754968465428795727887427722680546614619844864353358197699654540860233021481626658394563731406534153432086559175364915388466392734477367337940320175261492350176009653565492726416554647188827381939313768046108915259201743080990250667459773427453569946481020019940956276349808668324011259335450676451257771852695048888897974571246473771662947994461328933077560375942368965857759518685944152097093061581365631849941801014553372544106705422956474585621500062801362399813244457128986134927328324702948754671933885288110759811984730161323392935650483054167757297026983148609384316791041728233186794842937793636461309116012223674542339109636462717143951622480577758919330895828654544428074199115513709264142501024244906572392012572492708368664426809175860982146207228036386263451001809218086577823587390977461070143188149811814587135561542802193203296464568619546238893630454253606769199116095754601415761010174261251612308048507059090909662218282396286013948002298796215673567941474281426222460230765262439083370376550490592566443266118202803168133961532444411774744190489591899442759177291975822456554654926715964441688603188576328278296833470960912158978186598817460186702023751677019329475267896603392951089808392278402442758729512434448039998424272528081842088338103729721891980448794217472474639196882309522563527208001950443986763385215249241961952120507276262291495531552239333672952891877763982426106790218300027264758943735733199565093182371100271968289189890704319270697377282263520199300969711350867222816209546125099144484715528960273535753379723658822220087013001049526557670299684950041149765864916090546634236331594825684505423839135805313798711886185275362939512269231631695605360687296060459444299602875591574380286382625210255054919153768681510897172168218173628348483722186983682327331777999747872899265361887754202618064193885622488756044729220816972176609147476258919126883919829197421727893566979532866574667689467285331097466871372446653047651016819089086288790706091897637519452297931538824195377196697232137570375220112712502748889433023523703362955113727372769897653118655989238822584358277243831091511089645402293076304613745893349208756374311739347683360129680855240460675484372286152510909635049996467123259690607387018975980253192002188628361216397533600482135548744053165854020474909227238760122405502325720814576533359966666725138518910199518982442136407809323372872889069907341921575656848911906697809442981527725328307895747897740254123389557297073443156034837739344121976226095272103533739550870265133397976006626198046233392046577257874110989356030989152218861503465987090963375957206148266900611942290610068298538269805896178791546345647492767760483531973257473010358509069645084046737028048667343641012580808727550944478025461922176771772786020938867529650253000242475971667520815816109455017822400973248108005547647282072259658610908860971960883151768620721174970468656167816874741774221837704751577711057869854130652110950744492385018030782057925795955032813253753072665378874598950176210724779024103485189294746088648291924292455949761159574754517198279777081064001673592222213155550587486984250148667046899865288264287118016894367285652848225891826954448382459689911194689198689628056987145559039884311948627848302504771953434545495678061431149055693139347156761969617989872757114568055028362959424923203238901288083883127202795945274622121779958910841172786608479201452185797566085499837004269525358101097645861873869312850321120072758867630674297422221669193980305581147343400156709536258860354479170236787380777379706240665026479658047658275330731550333498738050540899455940145082216143783134069536110215702749420025682990117168291817466396147367567062473646449412186120272769244851730942873166322808363993074043044301324658033042732722179727190473018684701577980180495670147585684952248724961274352497425659891353601534830413021482004991632936171647189145999209484304360760377943457701925939683212785675656880007770062638091103683410589561815395223554899276831724765452000781830391187946037962264928764417012865726324157435649347197952415708648449341908640435637820955031033980236220892797766922344680897790652399804418094114361588007300809798344341613717704422278439079676629808840900838491171640694136422224023255107587419416880034476542240608772456749350690154116468117299429950342119135220043048836900030434542633634596736678218330273503940416379326156866886779502818760180557717964434508087879546017035661462641107937509977293203260018952708383728609357096954852278976627632509855305265683149470915839097415652828398434780368199951421132747903364564659417965508343090824961390929214710399147815651967012641358917189052162712491483701325424031004643611756372934816377719772524878376817776969203239108415555522002800092584602614393032327103044051108193927311232416314977479712916766445204393781397150170701898184817439701190868894612760481472320390364667233031772688329538894274973897052737698946993541871055519188166452591017576347622598196520688835462552718876292355290386806518489812827350779482276576331185894172388201528213687755288666805163985903151942935993346150902941280341452282670319412571415319972864882830807739549946702114405238135900707450151149909296467993915263217567032080591919787677429710997339536110272960335984942709787248552135890325774984933358057605297823197829582832807374312742089157815392278873738986097451522652366731970752403720213332297698589814591487510474010753386395152171532189377645219227357755531390138274677113653499017525954851355548332110070392291687507950715475815084229436116507627855072502479408302531697249463294778366544348178933116020521444590300592139253451846454249372724489724447417871355631567190480897006458271382077231304262513018734903685854025775583519828556160357382695482103793242792244797493848923738989712271006002369574672011737870112319134693296376423961228584411476393977959655542541310915448793305225300420494995203722928316033562594638008089717138846722570228032247100908036288048227201746100832971079244988679516786251239849547223632491028368680619598238426419159366669318206920835664551995444604334073701425271634235973761362337716573126365649312966695676491195429395846922633968482382590302605737699556172191650163181655693779201231209830869606740654198158453028281017230261654798554166034320253548343123018245303776804656922088199355714985280068487740416219851343740649994013022466443215937622611577797285092103054230634964888307576964862379813530889767328616313806901460061642601487310806782440626907530292509641268014428999029125380821772837766305495968399158416398905815510363422261739524017846719700525195171280478782104023327457166226660661062610402824652792416944306769436800591785110817604918809845484792922470705323860646227031087327682138108146287303457317284130759760617175834679854008692520677741207966004910909461749062415089182249180088623642680427305757023284913790131054742048654146958803757148088926148095648165900192104478904956998189590534663499195250671372920480857423016961678125348735928781958705579003126424432061348930443510658577553431395461029624208576218940381176776382229437807472306660052042261701471888589862913285442151222268523105320183247513896937892285356932784372763346798953271867107568839662567309393077122130025686001342849604759782517245052347727793879611358156227653435901949585942926572872452643896800305703290662209567691187553096990478525811957451092189571838933943160626688372484195465138304495159959529607838068306164193944943466002517609592209437793621964951375963450790686561974946706283510301348228878013698539365852685843633700538562523570441882180375052618652536330183774410398718645549627933891409002929920263788125025170864333580995073365799866307076379132976999384896322815992192953258903988988884752344967959878060798913309987676403313522515222029541571713143199896964484714321260091966600238082154752210368419419462744497114908311750418043528705029820892631806923746323672911477819681953640724375895654702359828220019634220636713307372447206931328041840005589601306385436860717366015803091875052216359193502533897260194268312372080469908844827467121555283760564703704854832064079704591394412682378405253454926575175950142364790053968826256811111182384179641418686675191471655520743973188291683926265958747640913477547111421450896801340673907119062925295429339193689982986702558634634976469556516800848184691793916819783407066301538309117138259799139430995542400325912953383832414064028763459577422048919665727637746362060164370425296632897099346747523893634969066008416913786398167087055065932876534544458024406340251449658607232081499129145406756835520596960588378865620172431658262533391477143170113081878748318164557135898076495368019481977176741842815187078106742642548149576785016203542774604075232976240282491469239518777151739379003141373479189570468817236054801665237990309359347954003995412499034535097994611689753026417178700388143454929700799757244991729605483626722000628136736924445609547133471506963591580729162880869646704844009323370532145247206518479161641882739438358512497569506655641161476263661112948257913533269375285346914497766950278765824700840625204498417507921599848690532864409021961450914510401344359312212241768694432586192992022465479836773855001859900346085520251517713203046456376443255444026678408917411107915384510446201108850673524657158247161647613426782599775517737009169566905127465238702333401658567930604434764696549921375518463589686592506700975028464454780176773698467619403890321678990150494957139136355006311946878817210174314878297968654918265082398954137431477338153301266258412267175431930386277833848164188088981698853581562989771891160655967266157926488206829081162893914511704709667363422224039014592876208376706096724575300225173002022595004237191889631411854539840186950642096710023398365200825834115715054409164816677665095780514695384089150296492481577666328275061958174198732569673157366702494159726665601532220524956675708289873186715836439269335848539690030881920366248398173654019389739102460494688018371104967178097651875138137460760971057731302014159196374869494272675649208779604457037964366176306208155276211484894780302365437006091058897103424924362574720326413905158875831438460953201069081889753980553367712653793797810323437613750217894857748618602001273138736996376504402151036561393073155660765770596029976969877114762894138618901785024052753411414550260863911208927837560244263642000671926310114205785388244701481049911946796344149183591843990456476574169850408356241843832015227616252187173075785568940612130864296033722654327889756066571188972524714715529124518439652254458643648082494422359774337368398509536985149779116417399938476790105512937566753363229669215406833127102403869218380995032552204836318840177636209959318872278488669398186035276137912268163753045257264214635098362788812962736251741316415577611760322972989521900372099573327092577877359842408828937004147351480800917384867768864791761705497318327814485500368304481502744028414625572440877787044999852458052698539515723722564953355862051181794652170393532935904624913927854479549155022729566182604982860374925316678107358719350840772586085775730782073868780033356770248986604302496654018655887600609451833451740647331312585879324291168417573432996747916212151387588590912647362777545971586953008213704985499717377878482335482076465550647027775639963393076715250153737082046921185368451531790899778633588623000107635236110435667597249936500204261420028705795768099581853498860349620932923201446010384594310461999943509630930508889514053141439512418340002272495223648380223260244178420157565438596674271289468238991965579868015219310897874501968319559403573913243647466923130915700560124172618915293458698581263340055893169506741375218901435161198030626094287680468135208502333084737043909990787383421937424683956208731321676748948110622912307404535897902962002765622589541621460741308030360387347481719848090333582509058136377139662337525580275813135875554038852201660360708276394529237542069011742012916538532084938041413841498791373234663235048813830616509117210803151592456148587206614742997890355242137510267028664479294221332437626040507014135769752137100304497055397982655193393346599487139844611284152642483154408256031522130752734340267512669516384133445190989082299801014823310458067035660324751704670045408572968367425566612898142716235476554316240540924808285544165671134571077590110054541302873718024261494269712856298333685472231654973834866363616451942153613303015840336571745936167430806409373384947303583152881172505506165772293572324437804764521978553636007684030945338069573628943662955103890384394933417740075547031930032647251842985144917944001148930914525884224553821102768725023972816015299639444527053864893120787503711935271800459805822022838738651967901300571632635516002515175057666684120318565141176556085250812815774195337896731191201094007389339821058984549146729546903223343109948644450476775359128533139378186148743749121321255897048398883270877985690707344812959377336242773071988385389822452930311801255035740917861902196621608738419392165776618443248842538908186110721137136167688857302844616196046054666484610480188055733313370706184794578420829548406330900429577888413040348235837543347407590340767730736820842652944673471237003942967457871140037739236406164142329664087034584868636808017073279987596158685999883795502782503613205522890907669216011290226083414726917441730979626862989601709018319912010476683503689625461666296546555096772066085362220769560715827660503322028622580745780323317913166838057500221824547920349497564546253158460805616565346472414073538812079994163462164376251177288972893718234139042483415999076394282964643912719851835697993257037902788566319611270468806651481860704454655747955863144888718816473857857515653674588139184959670928676299578418347101318361765943136053264304215681050782093025426954152899517081162342481644287603628509355252088708380161436697560072347050060146225870619870836928097578201671548564850869678755005125109150815049887865096382605593299746588255965898019333520699309520306513190023043423575080552702163109195848804043649242107181730704148429336889579302343665288980064521763079123346723562108611042097443483118716804166798503417527199540223554058967866629059990431960077734484262676770579354173838593094839325029750538945788079968999369472955818774383611790247393167478925774861441833812295851510026418673064847423015479385941998995169114377719986931220295434980842495986865464603846541379431100728250047198728568494624195943222418115280827708265168704760429061971882792423730676270024332524697423075779694433333060092087198295608953878836656418417395798794526570823088629930636595186556837871414350460701610156627418380191786468017244447413707648217126242237693002005610702754643911392754220394657264906172408564608255017100651672839595192028054358065167539286676428129253831897062181531447528013485255940646001507044530713765259318784296269633212419948824692287464816688844098468456838739224782129952879001605279488663382578846220182972842814762724121750840348772973356612097927828817921150191562820599428190817944246864221594141536417224295040373444867337785870532434495556368843173700738126026473999638800373554650968252252444914903900320292009005402571762701122435013013257447311284276032984567055796097503001063072404285404129292799773355322872682700624978151179378698018109231148023648800038687429362585823203182720135210922256409974170219615098792110863385478308429199025343196740176320052603566907222315463247011730544059526781853932920814366408429617957599958996883598387436853408782372474176838174909027589125712965694760062051245987452050173995656146633100225125213755833121234167754114217916183857071670299414261285053392728359171574781765167894555214998367388313271414478373678645760887646453098396813830975681101869527897853265790282928694113376968186854462618666877605003740237731611825360466568313400755300358476183348598549709747412794975385927499365537910849659156764095827764646944516494722954679791223837736478220235304938477559771927331250971129430736210318717433368340067103431053239478330316070103543310475642257619510252372981732583987671101347989877351484949139101442170176287381483738807528629989664701434549373141463619493075298009583159009781782000758882535423531708685782427778233879907520000915885417386775982806733984528361281465619304392455727234503163861840985782971503758599731817733692971266862544352347300247709753556095628335482307814318692920088327577803074569708983457636373038254520421630810455874616550414502621746870859285480812552833384754992860003529805712744255009641070428273700918395632877789028836572682019281538067495622542614802173650704006159938783544441316042450234262223664712541349719967211237148102021637798464576585393524915923499267867176247675924214862239158486622134959629445624101886810677716450765062302895882116685708620974345725377038606802335961789387161439265620647961856851877776893047944434117304428114749858631298267540170034375929545444087715480400805951929938675469747444742301576674993018802290860811097963241120412813666876790792830870125887494717979089014625018413448487219911122969250131424694913149726492911775247001293006953779920127526618490530943397599090954737017820298734145240817141544158979938273073449530517176789645715600317376895545471138716186640955204053479885618950713375486082710549434448468974625259863156406507459154650549639908134933803113323668804446659082188811137966778141165732646298309799041741529334654697130917272612876402838822795757771665508624497754681739352613006555781188946459716335558880160232083251327625179156049959900944846069946135788341110304591938275861479085416991747190461831690531712588101768763571482002479611822584792631055205085575183663223006723925740804718859606870515861325984242430972963144586009436083463192674597903992041966660747544774409337937205072801273352989063855888633267503217188504217185040189596602386549795411044333053990976646204241700651203776990762921029298558394333393773440545442924768234167748709255894593665004551281410006580897912886806963316555262399036022068630184828658693895297731954889743886908707173130929201953809678112925815127140749598731309889522455014902142404157830948124394311858815821455452099382966216082578090846697449233138348408607570163327198576033415082558576496481592847653806750961819043585349117610283707426542980750163806426884536472371927768371094315561268615202471675832556755155605797273204086525494084264266049345041937283526257536569112352405228514212397193328312029636232816519044926204759386101502309549096333959486158807242150687546647850604932140641256813173541397817783487553404349334932209721911209700491359630204927526456936155761979079015027150085368735091735281105732561610540173048333678560311580125809859405799389321055242857307056499280013429169036295148186148620735145642412444559127217952651060782036672326111967554507372471063648847424002833353145634627271849572055954302453619403299581524798569240381260268794323102804157627356400662236571388659566025154913706869720847757913139052873888199735190852106398778745484067099692672162301551048933117494405091845958715434399262726437801500359425409833942693053989502776500175085765264406872093196894725360802924634402796421226471400822270794166908340097404355219053891984171250505173604346427466886150683727638796525823315477492500844151301711912535245369184519098438264819975163651529355174249088730584559771155979866124046945997490435690294609252150546084601521087129149356468740755995281922935815225671729532700157388965058017355815081560721679703628936419786976297926206585867296995992145608532876509766632061906057497035083409541874756911022887093517906924043380286094967144914785828412316806955619713621757710599961788708838081682757335684341409447964695925239127973698756426664792473496888118840073856710757934594492440521250211446723890450231271234919298872716726628869580937081371576369136156476077916171227559064585274959305047841326265315348921662647815758429881809618361804875715080798175648837888225122663392410282546730365067956649106857178522836538610335791970993071045076359916668024050211067156036282868429717535316720388042352834209332900821762314612008237300773080783836270162766116174708515693752872871803737407990606003216991538093715916362952844320608540193441226078325920414569654886693812537607988389449218355683649361891096596754551449355278751826530414496304670954136727203192729103084608268347555869293775774571874936132588311236271321689180331590989537513221236475998392107515188643011133191748812553904818341372909015863157579308652337975206115334382917685157350629521466627843391792299248812518778083904022193752522986129389297338802549463266878402038729290204549761471885853724884234077364748047491967802830412160651527537646104367909018911119138819754321182847275665433745942519643344743466672426505567685383970221305226378389722425304223810486017208422078642545896901618482525467799026394610579674805776710067338549966032609251319631321873567525558373610357390219279566345794384578503844960013012299002475154004545411946275139477340230197369523398344089506829446322828041000109778487070316377054039605664461840642249560391170757805208729263727376211075655374997389318189246027564665007557052448603548467686717205019838922990369093342033311096840767540059530833115783210454566715736853156126006706234637241982706478184658637350412479954761379052630662332631723622282901451894645145324736241429057457927906207087121437960633292309972889918472010328757650598809004573453079504952050362800268329191078022421771310431085813600989540123549607418658446564077231630614465136964433690823888874575432412829827364624677029056731625160739460141905555532787402495932018453805492842188994015506430668244823246149627495158452165574860369183227894566142880783206373485845802728568651420621823681804984427535955999205229268792819963128785861792435226620294490689122588892442722561458037455030186315789735271723756519705750958553091768372608010219802670636876259513770542152342651841275428962628072520428527167979669617138101476510463697578232973093017762096288277189963858993343375879631280096036710899574492892376189321911026026349533126975884987875890124806588735792989780816803059312005972712855753442633215580214950835778304521706614975636826402955615201908602072645669718178294573997153002192289380725688993574245247949443310879998689569872621312871580001125291842737617386303231510118878112990132151294406845369048391276975041681019352283016930057681118945918479542988372033823350936295828901528082682200898921501480612721135602335953619364434326127177628689351901690283874117636861234502404480238220235824327938337807224239948054143699527845991155489179189261178867470646943525670763987925282319216068827531410250192071090544789729430313101210671458750371726662115960672289277540794273211005268580068762287267014155766309678118560016672553104709878036644610655641994923462488135991322725555709600311021950695896150179372691844383156704485351995572701689006072369559532679326840509806218453757955150361256995510575148076869793067970983145839071998101903191597796146446809484612538070322448583406969557852152856063162878718500902662283431525086828621714458125577715486511603203748254495501024931680236022276443788775904059291775409437530643423718574876756714159120348853919234677772663264528798307299126593880684255400554896117044501937544974026738572910703500360733318930432928249814102220081259455640908913471161882061443326224094666890429097313436342825523834106791092109695008290213605422560126761851773490768235933808043992651262891205913817915992523604952164931131771603266343289598798534323107598580666421007672199990254770313276959826347736883824629259164717669742733771083264692840376519574345515283331241386349719246380352038899848903821367155124780784297091678312667611090994351331944417039161723567268413956539153581829996239373959195535940670994392414351217041986679555041161022710426017449586174175966360684315397131216658874018789808324367138195139919576395834253973677258862457584598954100275485233941614459240617539616779042093993986940251021669053053225968667497911093612011689616290615634228483725748997457314373521894648655645997003213599370769945134582990958086606255944893691745025161285696318760793288704268082715427124507475127574606601770257212138925437655541079784748150644344443930437787000936035117459410331875780878456505652438103874797576041281060503382008926636568113028506017178175495801238184435355589826020279950440208688603869873818195224115408740323648270628607355556346071440280800017909660664847305296877701462550403731265917283504018655615412894874570044566335059714391462862337549678721128913647634541191492915421730017824211528643774905354820341916489416179709757961210434291662786600744043706645831107534451277607222138736633689675647426128452381285042108027853048241295314297625032429868604122308978556640452508323665703970308183380220958620455363501214365114261826309647383500439797991134491585345045527287695166734408208075895665148526413186693141568272599301712212252833003108466916835231921137112484937100379723262531937605962769400010727917890464071104811041070711862324367415548611683932156705529537314197702215650100112782650387984875404660355226205598926821139358353113467360548042293242693340332172560900002375580562650430540590662411587815285289171353533054726838458111805161160842326626214660766394896921660963422182493790428379407111774099232164010552607480248369229776957143700338140433106360816990067808390684901461190461284059134378221839666598372088710563888442907795308264487906327589028371012875932215271781862987634684719216273565592056916686067277439162360910906369346162731456161935391391619708401582606321220476555088672399914944498505265976006654440535277902861018582136095666097975418979460835526327238958578593712239792179772986116870775714588396218530016673831463947683246948506695571925995795670374172162006585894005914324260609940212989113443307637040269026377061719841386860664013447489484882265126515059094520531724600953085208952413721698821833659268861893182793362556309299582480017761088851834187711407393029968290093633013840280455813037586541411506837948121169478338928656908163075583456589642234884660155275785508276074438196631250353329936410278399833257433362384772275192883852285147285834834202738393303192066211629368293870850051016241490803019066490011561662386581204701309597480653872599948548324721061650495808685947842410496377584056266318269985203444922021816473288587715790634740678454576460642858785323796343208527680453045709100992670778212267054499320299867077115852511350255892915227869198186779328424306946607451749049955987646214114949640473938828040946104331981796947441865949481923513297306889981542551339689814203299689976098728405418238785003466466360925092044602313286458904047709880136733708474911400525600742317617906338270031775337960661513061506336030129070498287201875969472659992069943679071409927012790895440463586634764589189153026356939841746028892229674955899351423842745839271749309621781950472508155456498508931050032000469955555875513296081192099770112056071747353725497410844280484586531972762852634038013351451914677635161036054460286903123152298013039005719964565369982713969901943887695287244241403416721629809630958318174709379437986243835979140096616798459229721027786435324330477485915917075818391116617343801778395207705720042315733750510675209430046367012413066204552735566648725711109792797225970168406907469843583701436590742235727029294111156826535318276840182788041825488267653383516925620733742446512069857292608054263450373004530778822051102187853897737523638991091042530767148352173314810676142717566078281168488770679083309325998881748663207402450609996531527323980987520118461647913160949745412240437240441056596009060350892084557214094103831735848196082602524551713220748757929761673504645258095340575662886404035484870406237524534794166947816676278678239746536932023713057926430076325868540468285193139836041095052984359146636430649988017160486308067846762362808088301521180115371786829105224659531324732961656666772577535420471616087798136582444690333755031079613016854018364199011219253557463695749155452509713851921319267698614709553869949736981120220818914802100765182745835727947272583533511323575764453082986337785063930261763424161622415357870590624345762173214942511249636725173919381092785998243146125125833179379035419090583592615003396357354378417932259092911086585451005782285117233396007365428057773158718909494456620098300742824088687699552953492130103946266064331054695246870582730354488838643589742711079049943974533325145439382077930527926822033238936081405125879230989391898953118554568820802884306023128790353688876200097060839866675352186713218129048221522936888242577832339334817339438572723556554939708029723575958618578290111715013337574132444701046392781995280177895805987606205468631037118905449487675151221551614364015367298654526853968797856518921275082318255703537906593333095829727076611540520545489735876235956006235628863779171245535609571243210530054584353712693068770051025415484222181566143211319293362941909400480024654670317104850095877029426583342922663815481602264381560750369969917884643993954773760575590395552104325503882862364244488523462828965164592410257234647780083797687875426550379435846370719746890815785145512525981045570893430908362567555991362503445697526340647732385442787017582790435301712402483550537397531944142870080998999751196351158512532602712828240308838247319410775255632076427893190882767006417998924715020484620641161450636743439882872901310214138322158311074361955722103536590612338045230465507321522774613198954945693425733319895685010288522452333027429506928333411640262396245073411181752216777342309878990652987817016512461984216374486892852266884950610863028040223653599293206713848545176651367004961716289427089855685225035586930527287884267578417914551774723323934626365194411870954546269655089162686133225320380911639950117834045106266547480398388272352676410931403483213645926708983102863932839296278254260511892614289258135826545726668158974239684225006709899812166020702981747905842952201831342213408516140309048258208500784625070650649417818062922932609224761249650216041064847044652245471599278981821889709099115412123742184143319886477361645881801030696165316491288336062150676889745616357918725289911303286195991913328094904058808077334969318803622208767344633807940047720747906534755768446926606767158805241052393288385257685931449547063407532423928591939414328767077281477356443177517429104104855828298319589731095612043647068000843221155725069252910902950277295550558553033346858390931002105037967391599718762568223116400361685714162776315672595097486353524766844512335359441937658713993583926397241444075237682315069168090756626429635903592106415865295639410004568083695964051142076697998545726404137489375714268934015779046298565315886617431973856092349027204237730003530706016993816211427519482736313124959033658076084715579083687899983078085403699140875466197218327974344895391458673623177282685353745888212479235951851363184734048736714999375261340027271308663919442246045468158723074688736630263418448596225158304083404209764758141328698640573297133489606322093842643933635740813740658373527336059216783263326249951314888917904313032339172069036320649322405980504390954560735559973742756593377685608547935217379824313988502883975777296037811463611517904380363607424721743770538110056821458344341736088922597516017883638235471700071423348210339297962715182849436937701553950775073193372266619520530842974209847983783247898743965529576602344765105413105514537123358564298419096405004732202876746211559087701766240198358676619061482042182323078481431104803950944416127630003073869261658474801101900162417812359647485135081118689468239087414744050078880911407674636399143728321201489176029479922925061442159901559296919120600577239747291914865131985197044628137635399192735911577991858741770929878577542740095633783948692509191229082454595511880537033126897191777786223997793122971134741252493548374763856531094763005813669319647094313657983918565385823668311476224387413904715081079113815521931552949870903987700938815593936424842256955400086873150174201306470654645065095364157535561167532296690323846532119105325535114697166477742354193858909390824168539565101286551506283806538868986786703631749289042099375406611436590351272279992351389484685647867401970492902166568755745004024258899242594866166094421520127174872462506240622413439833489212483092484061298238912729198816017732953048707235769385665712472752935925869158874386546898202033455656933448857862771738241018464786063237662477220624544298853567698421585152960627544584836687161363035234069127502438976233076302578999709381606356129109750628308157546936053278406102481653953455724026227734522159370367104572849295033784377388578344422651055189514788407088014783359928090637166854330517947167765427936197013651123022262074869432290188756882603583590040712120568334452741327763696080553883604817588500435698149170646419415530006410693282675182408186304270224553893657437108502782026845796792164000267835107137043547332663768508166073455026724130773088837561366236079330673348579166694568492892998378353317571006479361303077380980606812513105042224210738423074127923655160390495090140209440410806121128297221347511490487363208017179671389557421945512049126414825088057287123908186665032122679633629893278052052885689442859122168367411914831935381191668199704779830229819900282812731431199018674961941383012016101781292831762314304005739951471043388778302924979688378052892520517185164553351477561090018583907427211473570584336525787007889763658923875726259385880573601955211607710708042426715803815102781430867861761766387421974459208647843472959077279999917121527565770170971960879963379746181900705452145573031541132525577553339325444336373714653073897006430107991156703552429453744872773471757369018442351437187135779990354441291855988620276882178641794162055356733173643799304632365980255538366799104540859291226599672190213139681220387016622458585741627070719431124808536376496861452523445399614773162407317449076914793545951318032846294070216301849697651284819431772615261479714473604093969847083606204334881324504218870585782287198762524297132242513676446126654313257966152962878624252452070688530333626515832449714661090125204285357134121948225092684254744986762419867704991069849620143908963030782826684319070517561088934572107139437448826810708294591461810882143083855058415705181092814328236082481215283776959594866298985862757489492691041660899512144364193026822172510980635861798008934579773877800694166684788325099423242002351412897032688560650914980925516328016756561907057282873432425123584054408081195893000789867827935831713522619082550293038859972456938608433055024649498866502515852873293929188632358110482673140896566373778293781570849474572692424848023313662825515409875887287941054766376279827221710080893158182657243766375947239987188981278529283340172642650263876907514403686318139804555977419971957537899992842420855226763087142718458262312624334621970325271967158318986591436084184368527030410152868434875129333357166440157390540132619649697020165670469497000994467432167027035155911895084267025910545116814366883933717225015362332061646716725020195650690819658416159933085940896940700965145577703841294046763910283532757309488064270635074576825920236506640774636724785141488758960033146064167883849275611333322789655026317702870786222325614345218823020103547580188674069784771629277496059997158099860225807487014634360897491357355577977305543733843213810882073452676996242958850709733404194300257059569641957767999354245906232158810156292994338163610768179594984771095896812119231624975661240254513258552058223187623572874657334636107405277678517257956381808905573897779782973036542780252434279524659825141891888145037794626074871123602756937885555733746685028056377731586416980063207912181935042536497356840441637660285171227176862952887516873414464278417622597940554423934220154009415885982114771412683580790017718910684288491035961658830765259984535579989304180750020637347836290357582367382104546190468447018581980511064047859832215364861030274271471092344550196375351475927091958955441405593333597657069871781538290474773589891978155136464422146621787270728084190653694849651121275579558664446949762637845865797284821944652805349392434661108057817316377746484276441260698430293108978130199896620424384803754134688035892701908280875342966526713493209690434473446482345238108966362663291150923588012254420413671992632966837426238967910603148724570134403307408670965095528929829050642644647510104149623132086312484760709702706957482721323708078939168429574345629387031934194038643697337519881267229663626740034185507472361688412125366285132237035397691809472464607230470267767542818113317875205626860823378863234537380999200091242618749873456908906244789162728009993962884794127726501587717621365859159045628785390457848120278207216134982245696116599474970545935517074707311091857426244590385109388986180439032944903355283752446118164810175792904857335105317441542021098251615304059049751202870527546619448252721929751727404807441440336054117019948547131156393280607625598464074062845578270001390966456683340934056835980187443703320476296307155475485499134244056892427415105608921581520856963012225512422126992474537128249854815268729019994793905074728158485104956798276715259621374185586367966116916722373843304823452654497075474688505192069323054864941415837476862306310152383318917239852358523450091888654329407533072451040395198337885662810104131295373842499828861559273828257348541910162318772580283663673055289556118304492795032977635095099116070685976950792176867190325815711457561117535307323822089780773050396942053877942793989331545856950016520770075691718038214723407665779412056774155226746397414457453421241387195979050183390176840096841629417384254111499120483217990258612456874374292303077032653697473393646118265752057818444002087645095036104069840296962794257562926948574355513074580798945443584151433763950882118028455750780790209115257364091413147402249441927467470607987188125614081592842842073691585213974902774623635153699483534667216418166147437365233232645414194216133204092748671593286237136620826799045969030262638977211123563541616316663012123786837716801910419079058834416190788696095216798168838745741761356112012380349348097600184882257354674599059074487263843703122225854596194537567506348259509274011136975317137446842894090984885177346091400675268281596511843189331917344789063481284137343996675737933490994091543391003450513294383526492923303861081307503596816465892294208724174897609399461893246376772772288026540557884090219400218737677780338127958741011530088049846534121570215634336502651656273833548161161937256418875852933270466316449312904424260922582707961483549245039989379743361785999039897231368464928233738632464366674682567313828633746387555247866664099546451110653934347037927140566752607404979660002882108385198238785881526179059253913846630182281668324411181283305786037346542512067588833109643851427649751353213754556877823735412983959709187885795065712904246249021525550096137829481864129245565673255967498809538457578394154384612839912644514614897924977800998265623481518776877304293406366506267916084837293551442359595319200705547865339242803855517806083678584788588043861278831144929291772677362611965603139384767915145235079634653490310323722018609045811756055225292922107722923377301257354232605427350820257326633569410678412633058574013266338152102542423566016701546994987964104817101487029970717522905122629071727081492259906195539629062908022775339959705735076378336154268838927961849312733547792756665969389250989725289019181149324366890166369109273385544936213710370172641794475020898117690896932064583455052234394680972292359558639533208060500770812556169895956486559815209505926055874253941798644516955935091909685278347301172459606816939408783110357471471756146430336729841372099881159894380108766398381516782363296854279545751359448957938721491060051869398511545916948231832456690804782181017454820080869698606216162723362219767291433458743080169682845233808679952509673372036752053255838303614579898587856436519533743134366320134515043671004465423381334655840345253039184704731113011594380746556341629618347684732757086016860163873384463612252813470387754462894731474158459925816256336433121263749457326036523654728067364876839610847933342546850049560923498159902720341972210841553542886257154617785553887891390556139271023456092664320612806688938979104122932263352753794127715150606124524602048202815070132125032933321889757669073543929043921538497619238363954792991715790856530315145136541100650614802951156692683923375872145304894770935029402193051338444070516151004991529833608700967715576744294517702994178827061382958991680711373870287842646162922948661443816002878106899342675495119324443726289512637826963872205557925983195797765333422778854449366760873092302674643374664147927294658712370595967001523747442545935453583961630414339010118011263220510555887981242470798598966701623392414340741370066886054854900821830155785024794109082800831156136995642228952202705826695693824757702620557614149424966077448221894769489033411709827648322992592896607397064508966361143448166114097666429270103530935098428460072150521909491349321531080425472354591300119806041324713583506740150072801662393417573749729898743405361890320625976378714364568633837217029308409247820659801849932181669751953418437969563823089550865755320535402603080327566575969324638519584760448258401134479449291206167392676506003405523635996277319933544849212609552847756077158858233195058537508982586874242133013536404521540977050222670520697601949106715050921030033086606059919457400968160763225095830498175750827953081873065133617057403170455490491361675332947025466049822207334418442900393697578659813371839363765153550961765780096194070247367757162434835928861887603447383374116606119426595072709229923230423561579599215825094975448368448560306315651103932789088737147567699726227421351577313038469616531194282857341394121038002765420373222233180353389246084235036044251207688691577186212569459758881996740545130012841593726023071976463701046600361235706917736404394979278405288404233564259109827662051525766773490954501367435919319911638918120848855203067971066278544971264167562564515642370581045470479955136429151574963902151766058801210629580990960691875887448698003279354637921095665672533110730968855960827844771901856715929752509549450022560469477296735848689152802746537091631511956941191907512548053416953754183376840361220936986404660836298611664047164397574087053345424383449376199200839865723176151555019119941373110073648630948835286920344192040317037760999186612190914445979649404322962818560297117735231611133184225983792402422046096297274923860832830215488917050231792954779811276797963645573902018325372822068542269962603561233495761745816810616592233825529057942083617540600058439610106294225512241299926896477833953154033429712164236894641471818507424899467592369994407022338263891173209813277761654702928340960252644991842933523366898810353605040862037655822636791207106359230747834532201232026618312257667965224751932466135554744206984276746290860242625806450016884030468810676635633134916243838378261043141291543157834227864094084421834960051110793800600515740602676647829014474341105783496695081714059646277180970792901734870584045420993885056461874755729830215024302046566941249512357474202647087635060443793957773721279177392996939684216167626463503651662933864873808697756645780279052056877301291694777360256487448769031602994950262559159521743371720126537547804303170124330103434362997772117252540303731725310307539580917455976514499793007147895401268723408693769699753644955942217598536434494737540507898779105903708016232060750365872675003590923493950255677886807255022169979966925872884387091684943035911752987812577923810177775492425764387250643330759607137760414199844889650553058875742752630673521203394383680183927956755426801453989458895763873156515368997865291747986224176604745666614273531137624416984941546367153030643361312409146173536291476317104163814826829628538338692149449357056939914878241371687385839314972340468399772150792527184052408439564690401147653325272339175036257553905369987804455712555003927470190866379267762306520609185084033120360548347221936315131007337998713726763829752523394129532304549083282505603528743256300686240680239551255192769819161135190687075322314625328711396319147590515504028243723218388296583153209141489545342053938900949122776314239639740736553594438847069456242952762320416611906342338888631116431649352546574602378111131448706816327753095402116150409354614052596584239360466122648810856008458972046587961069238420635528840458853786694730442522788519213060041652399798460233782221704277510246353326218823757210853556595652917006368279514493663023699886577830899410678058134594553999418642612751656599400646602319396289194125737947532230775009586392138774979802054294081066081777506662234936217413777420852954338809480977587727780364628658680231716737109234347962769622131598228931478368909982150940081857200936324648454304840775347453488121275843751280106646524063442277606310715867690787267902401221451847575721130320378379948076848605062268061203300005947099442192220543663847207820293541582082573735175853359689545903715360132585048878911793247540201002544628740867904989690064490487928269635058378102238417258758025185635937931805028941774805700860815172932654351572968673082012206325841512819327823355986430923539934401603732653706486942196643566055322820937681019605811203642938744568172453292579351233791874698916932099830166323173404645858323914133870031666958263753761107321520135194110895361798890856446571091224289415782614832898809841317812265168927946888665624153109777840200161757437727762016340332737520079288557451525927741032038848908058951105245400800361551395052171178097314392985092397497937674837632914165201976053234911288703128280863021651319953228890727096843579906856450055553732596950354943937529467270706669110242282243295841664947041445835370670665063705382981196517868020232764618308858478443258836272523098212860746550786560621560375542148322277871761744887787141631181187294846172873360698981307378172012625771853165657932354323137646699847944354221752845495193372465739292571616325186370985127220337953373721402266144977781702095081238250624415257449872458497852803385418285350020610989243057024968118792983012965278033501624837786703914886371709780415780461945550375059493026036422025683691463071942563889140521940632909410619038142809255361734354697167934299186757984103623008312438351020541967170216568811061960957415604404433372260906851226004541967994100434325092914160127790137526808333689867136307314301064963883864600156483302127387246845339820196482229223667189529010642717179395089798792103846612056296640498727173445049196961454925570574951116097294545802323987241152657237561720826772227712436948336078097725465910941243594727894442294950667216041296634414323169113511069383408318571996036799045673164448537950036489349656844689755532356212017381628599856268652568677074748966240123430249971149449995883407098538494251539319825207979247849851383810721273554931447020318900445386116836623344106472130669850783172069045856197135359461540532091321697711055122930953419530017262432415715445074638430093518018901822454874840905951410056594078417350427208331838075063807673254652885183202249398627175400958811972090351293322472647449672160067362419727185969424843676850856853761506508965399885594400586721703194851948875690753736970946374897475079054393344075247395779286786726307050651173265250021267786704511790029067001759491079729382247418486073005742699964351888689567373214358884957573219472433968637656262124266017122301418193649053283296540963832327319429163500781864051790108816069782007732175896648243803817152228209965673489565920687698892197831747683515294900277432750842843333698689052272435164201340807087478948269870967876018995441969477670579087495926180406345708470617874399005462321630137473743163167997610253991513140048883039711236602412031653382955409244929477247796284134761856673148405683105155165771982063678797072980462378062071953473812678035367986734863610269828824285662097919058447658711536892313343631179020099929158713830886984516781731271653505228023698676875301929814211081408655773594093167280182216776879463398903792317515528915005869452598621793181758609167270042388536401015903527768373678362073758959130607585053443845656418719245799118287127484594939704042006989463454366129970648691571317672888976024751038280844430950020659162033394695843018333736614752395209104188807999111548396842813253591336595417231791821882133273464428921853486058035195451096426540626465525124242935185348498237820662968385056330482346256463382120381855551570735281190489423078174264148262531800428913742118531153114016115119135512039917486320651390173480946694883129888788073814048205190819329619858684472498650605966063261086435150441152483225066122693494076309568734185286621499689465462612671314769586772211817963257381317926510720474801528094696072896722301808739671818192452290975081361233123276886175946073902052204765698230576166743311822544484040603223255790624569182516194334036532365614932475645391689481025385809629866258441597470837793924096829182820064634843407899778657384418012224024258981711817286847370222798193096049032777732258791903412083230376741489580466073597306197051361974454069629751614360035627805812510247942764895559681830386764450478752391572729747836899431541912297516403819910220051673241961811055645832596616489979812644104279213854064968635979500796453245393251016561939059901544842928270675702147341385311986218546318852105925028689784949857665076593568793926707829222594350392536115986280221996226521382784040292699837899487179156540253130132616011175256547084127147253153593792774829056526551265898409353771865884433884073376616593618286976466069199566027803572351693667517203174039292000147341702908974376344506447821650919521408047214323465044802131140572476631142906049756817930916668065916705766974161294470488314292424161230487866089574461964960580018535908023324352116278242239739767880013846317778931282496859716270364960146077631149221988116639091999627520890736431058658497950625394461119452543656526462420902704330693470217562400576611096763659286733467243765221891956820422158341771041862107212294045655514324414359865597763337704267629831874232761969477454722232890437224748883011582547871634512609688079314662366055184494233936509837272525623790849828767412527789681462444147022453538536212131047729096764349930067764707305766853647516542225207085126727954372625576071639155436021517449325804535296108997348275558071873474052272717381045605588062037075614526651496167003760723291781610835602660499879322456873522047770951410842064917540837113808489559274625169996735111713823480712060253127242633610743046308741365616424268460988220969341915381737076879707461416251920905867482831053246998314477147735024033090228514389698067781704420843541909774643052396888283317625762866975293746661663425882900624709832393125198185982503705913663050363447365482555743733602671038041499604097227970848392009978054368641642530588600933489979753635721254665310399313925461644861693121801817910046077303783914662006385266451123396218220030283088485011868430082866220123178641227531518920678196717266695376998113502781458863459010201426484617359486144896061372697719417882307406671115618167694147733643566027915760840851752142200384129598156519323642063615542325375942257649549714974822998264294762201788389500420271672454215843775264116679024091979104119310310774150773430867107743603536933351453555251198163682529183126168229249753289084648400782535408095124900922425513364404194937761202175905168554039309013093339239234515509779401049218593118748407695659216196004619447802059784670329735300542353947861967814434027817797613448024885325703007284328211677448897836967590893635171095210215079287094399207371244681391671189930114107643044781312010743355589302958442611816655003823355278940214158954724654752073425737725007401131358763432529304584328247728714051698545338127146078202781335872984816655038056899168372049763458292907271045953650631696810128652763106714693075680828846648627460353755701114480582101854567066726280527892345280562885747788617642326430449088321283387639175466986459387308955421922197167762888741065929655367911185307434099719341254506106471127714723403912951070377598555661745459167306151159904015283247844855869644307989668771471663707382005741251907604870275252154472832407933530042937302355040637990890174387276698311246790238966091521258647881423913405213994613201678238781977488898394780835534301538167335366332704275035875450921041311115046266160688630717817770228884045017031284387486305667303858429741011554442585363724941476680319216649060385191853221390634181918490412563503065568103381263106539336724361886212060808055981165194841993321781572473192347679135948887443264275100721292548884077382194909850735099468142308304305657892660270621268538646163727938263730876070769829770761862237912716835656149688805258175312864253870351021493028100528486984183058458589202189704739741436803027625616072349725166643114179952700829966954969229501153778320515707543784843507504997596401378566370854407810917812405174426421023537953977635692988678496520038124371837813444829726060126750954547568365800139546327442154320106175786308231102497948620283585202778203947087239907466747705463946169082434257256711865446625866207380577608788673383809433299043702404703943030378967968654967324932615199116765842581132361232474196598563618391322836089886306818574170065298827899286540677551081299271984251177059397126766460543825478916626129861158189733583869258174384726199583658245886203388755060419256947183182774514932256474957178330603273888675394695767511260750755186087637729605464061183208369389039943124940454544503908959789888519326600791113346781776197866032372102491305737276516526931210720148800155457997954611796985776463235816531941590273627311373038311356410569984710017731861715021299665620365230815472478174236835346020091709604130850915078153326698217576852185404825217797893780422412155973051799861052904682611514711299775138220331477637914566554101497588244585238385849218323726680184484044462133622140262586984544254382207773290896061581138029312256195245044377301766993282357486888993214632196393744896588879570781046982983713738358909765963166307234300629560691891237639046485178908099231732733821227975213882252316484785336657664094039004074513233439628259889040493826736767354351121684340484635620704878994337556919904729616915113161256870046792064736719871555623918686150449831326266965233318650340612793152110348944793652202133398642733315118235361122537322244925131100129406591602744063386494220247366941406276980875311672348681275793554353644417724471312863449500051749503754263329211281348706854743745355911834841478244706485884508783308229608950903996137617215763595195959554354932404602999618040029285806036238513979740315158367336643752167242213516582581835064305786073607541265589061934480277461847675888224631591521094670668119510457311768997208835787999620017754928479098654873219694933190745717511362157011364452655773188087601458839973655459643420885732457143019972050158286713120181734515278959474356938216971299639416006540344357072613400637011929651649425783242190892230401450222455369634083605978815651150314779617795236747740986305966200763136481047022033148382656140714967328440450814210421969323435165863802023742275413091088127697204552052565148091890346328574574710155900948873315900523746076477737010992524970414586468126428581573452272114244880993886186285425014921187926938281670029993660778321758503902551806877403427035930071718410662127355563658553380062896988270207449428257829971067798606772551783289688520978698141440133035048204693136297020366842086922440789878394042288531557749447719827860074915587126020231620757125584078600923986828422084060839517285670181410466507134818323496932241311177482308792964202347348066024734136839505821746781997345063175801858174323828756746951437353074371904891198191094474381289109877417207104704843756486094415984121180844585741041854943416345108062285057374857350594693803862899978982104506315945491621210627307471987634650730819299635436231710919282470165690151291346792239881778989924113262259958614033246182792168860535275637114785066447775859234489193204306580001597398333632627693238212524751672137076957105331275396241848074655775922700365391307137560582326391581908772577557888913324376714100898343521426791181291174379463881753256164151760491782129264415572140334339833261364776348254176879392745124009012403805138220269245431477185261334331041823110251146492970363768245180887740925229373371724458913953222633539892385023546326866208920574442041973273190284498562900656195308681498964072941312514154146213231971875938138564229047302312292733807921572230006004921179907322078281537752475309106446467892658953889168611578578663167519067054863383208202305676303232780656674830808232708752489019759990810099676720734809122275036539245551820883096711004516303408044327287677020776241018567382490011645629832121937909881439121050280718838254131420300155892007715925230050125695407024591785857185122291610054203001484546123219002993796383800392701685631225877113729816422598849467211907501533773388107655850425369480898271136510977942323353537654884907502841238314630407198546927574858460112923072072674231406272522931153552252986226925518562370896927392656078805935265183998035522670992254924593296816144596530603882755996449873721163948644519849862464858708810231798298875461217728098400831116342436386838732160342871585995408112603890198583244723886391392788615335942642823352248047209467919712921853485342655937144594613951590165914211498603062442797195309213173647666416721496654392569801831856231670899956885871284382497989289070962650383083890727255574535377540136917392594126613928672525072751844315024027274601037419538465423492559545792109041271326336694691230848777184579750352870607363807458464511712945439106895714632631575607811620795264015865720782618411215120995172954162936706045249421675461913803812972282006958313512017994906633264510968100446548334809627427452420601184082528508526052931718657966034031734235964687262992497015420502343356793906649334933073628442558421464725831583861443779936233597561347183574792731951987217349380077962278156423717735900337532820063122086351098850274037934918625284285588187993947377541356476149367803149677756847274668138731413253446805870592055832570512982871405505802901487516687757593004052213423755337004237210556040719362150716823253491604850674390518689633566213753202656433089446951013143540287338257129344949778486504740135863569150292006943979673188647522423866312536735219333323264904884201338567725228402486496030796707558361194360440521168931804769919349309927485642048866681136991145541994819284259748685187983430070535718586805111345671677918256783180424843892531879906232225231171389585440315970015928593836537319238021440918873864239177199879801047381721509486803538314312878774665297801134027214860382060222023319820604334507578744836974295733796719388112715544594574400054844490003010616552931842583632357914155547375730448372831048617507928625825119491678096258492604692184425061952614102976245286176435796963078866161027876715593206113249928402034087552250831263309541060618641362909914970786452845526315570552871542936601536826694395316297112023724396225730237715857141223476474982592790369259288053182929826495157840686004682222119032509026624030126684587658317567619934939315245170223700010974140927470116990423472113034119084509146673399022860881864973788904654850435847497019565939094692958219640155079861283025529067884783105601730945210877002793809696616675462292526413868677604029417758239426149663024581551302467124852861880746472665492689944552848648725715464746741600654931262572997693693593652380122919992291884914846435326036784869494447204267329382728198792395620499255201162678138665085389936492341944786272383437989957083034079093602341211701004156849693169729360770810909241376785528866346676118817586133981894722390842275636207224287190189141561446680864432554223768822123877127761930327098441461967442537929546055085135720677588707436853107333827070623642953593770230821255775149183783435934109535591520313113826042804891711339260962885592455483301057755488366036286571615630798292455221168642672511506859646298715040374480100863517778321003439675823033218015534899366564913167343129860095287403942508226934628082726441363146185981553592556860211925277987589356096294152422137548767194986659414661998318645794445454998052557238041492705020974141290235384334597583435725487646599420674178774107258351336044130407591014185052921255932206707129609236730875750735282780742139942008321635179578427008739281849554375454389514510541639183990201411929444956675184952385388011167320449800898369481824421090822286025886624701306356366572337445886585176110124201314814526303156435766539626330453081601504020829026704422717100409101356757346108207169986150447313188052965470776830426591801365950380381150742834603383765467267940110541902454402577125317041388564051664595220664900280829831307336628002664042217382898361184609630973336178782423442943795150780089702308402380968285919711869715853350480556876702257568805765378290936074414770566511459106549904475887689182961025786703472856706085441081246801782435417507418119719347486890618970613667379191257856721583163700298126265590091345668940766713865392181462967082864694641753477764192782788616751073717114671220753786184918496416945202874992432172845789641263121941758256508296013349311036693847320128141051363080044769676517061036074523809164913820341204164382134503841894983871221158383429953919580729940840096828306356657447530524307378194066606500612679305490652216531017821379504995514168404574995209188986624741561696584837281622091573999429512853480498844374253192410632489427685156644344617678132552317959081931991376629974612024898656579818286133901669547128308286807246958884528301981692635667905048766249390133792087280343540823161170533354640801405098789335927796942765103711752226429700301994690173837329090132927485437880623050367095928728184780096668679649641644688850391358003156914394977714557227292829020086326624169281495566921986362671749871867515840702753784521417435538881540696005949465207848433709254935170812559429508645125395892504781562438850335124183031589451885045866667631929351502857351090640705378045474409259355531486297712914450459113283797403495067571211272959985943265329115966255798545181580173632559601923414172461920700153400141035363714983713490030809531583871450943957092377976746165655302710962418037335662296779254085869378810574736555588862186239601696978220876866722728595209751488713129924102211637933245017181014760139248799655435160952661345162435070378388159188528157528217186061039544216577825939978804866486638629138023953037655207836710682053093673949667140705709537284669490973349167312541454300436509963765215921067736096858260870146180570573008660927723442115910672154619172609948809947482952984345461065691036868529828257049085262881493004119053548906938320142176528940310002659775269711623686555992609724196228556690618088250893882890437183987933616974335547080898119011251487600485794905649720577665317765808980108001503895710751787780963066333958482225995007362504542703389129041776213687464396639349080077680227679616406447456675546470625902490163698368884636880061971596080663886898980208503894506129086317350398993030416034644352021920438769164684709591682591384371620697785523792548323627316641021093214018342350685953252812593197020020834265254669143682456480950815962578327204146294930668389037071089986566377930472653808098107238624849484070892687059988387647069103898635027938679638200936291479611381421926573864446143058884595083478160884300444726160482564128786705456507762053307414486805392324189916686624716410444267394592746369634153706017803752719231740734497829544631167127416889462477937271254769905904811079102808401029939746860307337224314692881968274271214288679557655146999787800122054811006571463897864848790356449461989633436507893992453025930377852624393714325074592489434001832815831591968628430441254428567606781235249442471163712428973939842042840007965946276484818096476277267030763768324374934303063879707108718801337268168730497855117211853404087099342312968306268707251726191247504977594582628368649560870095613950454232706885465795395676464181375022405780417539456241326008841026989591699096373286019396807853937146767974267605764303681695268591629831362097911668791843999293044751430008405247107046726664805813484538159842979901357106947548967206989733922552343131495709541486646544106134828543957466155975924714254577810343140268319948075775155124839026301876192559119119085798670046032250571987971897202703492183408960382442314155089371404917600045821341815294767582799236096080220756935771635182993145247210647153916224462729027704483438284047233694123168684837360209533051079241522842125612745406734661875686736625026351925542766187983753481509400386529016691121804932483740293681979600447304835927670259925333119639566567420221716800934425789682932771550944379883490135123249702169832439354456871000404896633635967180503260253776489852254504189776271447822288813748753956857560286457546955129010734264085048877300551440051457018001069004787936803493990346144629179470181122744222709283795672242713425884976326566841239764615999972674576903509333499329944520892756865078867063692509114024765775553552207675573810524147330787639406170598609183492605777617585065833815873679345002729991551742764695553406895576329781071821753901583658266147277378300006149502459174128775916875165667221685132389533564333245897486908696521440457983877374779247294426717157930677248909850047890456568504454739218953634565046138189680653283943392183099520466689911747407045311416175444817379434184560174659702942423289773423378720923953613784320019373380472970929989395611801664103816848772906175715027435772796865969212970286228060583962818926747872262751300931809619165666209230238265746960359673056566010342100812468392499757513796616274523225443259389259254255725723029972526719232206959627340797362472565597202722151521414404369542176254641150189586150232254511891138127250495438620519333089449125960407215289412670398001414203304792928934090394835237824091170320024678586409315684198633264544186680594564724387970911961271926711234401521381133907503682863368628748914697333631012560975941359468134210791555199907864588389026963836303465254870312959540969071485939146560729558754889461627881758063305701368851255990890272024040676252947663358066307668956589799454325542906352925503002616991349617662915006239441827845980398468512611370767110973117722163133493592682376443965942420811333610836501900639454635122853139660495520647389017038793626075871508638713373553541823272190666145890389658549746356698299461641639142636307049192957632006700356535975628943039587734040697576322796090087074447757911976111756983896447097038738249357405903588260180518523105968045125838436822786756428869041506622612932481587546136879475314214187995635502781419464504589964413423937381428118340121681349286438672618579204616325708779653927145997251425469135120688673424461891136719070518712169783151484061330461220668620898435425704461366156665068908312538690855149201304454758225581883872629156068509133650357820699304406033186080968779583528678910562470444696109259482343506767068621746467844003045412795551314514679182986865955501677987307184389356333586555936222886030123664234444835653945119302538249322742612499619661902083007833585692972970444411769536773548223793135582180826043820500887677622670117294920013187957206741800568461632761820739730176570702705572585534569583648518620114008014019951424054408690600452094485750137219600801445271624939081392357930502472811827258340668338369768920174310310177580719643685029253263288943087351356373334148150182233812475368290990403257739707769192865583986180191300157990916776124853102727589877324837115131449858240000684411124180159428833517547460367355772329532910304811654045241799194675972484862296534810464539511565922682233695427309932372020824606068301693654247812311997681567763186551252899318074151857199573203936702833094739297218975181013739643564239952683517591109873844028753738595963821193406766916789784582868923621825610130556176112809074347665122117557578566908079261375871270391382845699762029505546433057851579331874403131484790388659458924543469696971887774005344863807346097791324792787618114983808094912399420919350513463999401229141653780208993498975131935165936202140394953122310191104757033861023576722842434779601901552083590276701051809035585761024145125308535483695190541464428517082168237767765467437194457604032612309594653063604029324324888857713726757964902701862448889083719270231738841987601175195088125743165276064935991902806913964981790654843519887726708316209973470475995406020268345557777214875691394158272201457201308991784866262000408302827353725348469145951085291599874970060669861396174573067018477905063647668473691409411110853690970960687725799351936095184366173716946332748949477699981771444169075106901552377602732709000047569109801414880282137601602903966413401386978153231266616123719369412448249632776094894383840978012780018633392821358567796925211485944522181542099312959088872292498164349167793978942084195467823330130150987816921927246764824488596636143907491065933193860011015366529516921669843067416972240827225626639790252250560255044558475643098005502164209570697590959313113954468121859840156689297688965826570232043613094511026769209538535196779522349430987596152277591876426583062690360565292588786081299823721908114705876252978920501988301453685588584234269976066539149017290689127302758339857304278359160382678079007823511895127139440253842837473449824132580533133754917665037282997000197077140905301370396797563234399353029080944331091426574581931594690458095263117046635006399651821727126431565549271137803373775476590836079496530079682526025897765404359340816462610928176391165634241409979288177939887666887227495253311050338096129234222127548905623870830040545656363860731365529956560953554274167834651908673031493261987444201273043034869423328098957133236917364517361399322818445920282177115670952869950372840504839624135153938915935322823721429487957550606965259401790517248161123339372880396890663723057752276819836953070919620156384879811355285523480045216492442656430910934959232585494612686851211659337406144667370703039048367691015753182018946678022745254840115087559703642678024425671898255984608836210481852302850093705344965605667058141415275860737482685381810576041382771892175594994689803133138929043006845358021821202509728712107853226363958272209771441649354724082282343850694385007467913972059411710130934440878793570541402381869144306643692322373837812713034315641100494366833084940855991146932423477913003467996869366755784992925015270508083119485264257137658868344577400348268201635685997716718841536607927825730924506742616052514412888291217723049849404176845602118927246095457201280268912609237058966670503780794841534642736490826503423859094427756617943444808983102189658836272900418555699917827703407167941867122336815383704570530239907949969838881039770620823673841150861669600518610907169009905998501790392319733219862582170828612967871093969654112098752837214676002548143825113592732760214713493342731256622451762754449918400898076354484797567239231775253146244368988420537526845451523230025547000151668965154007547516049333691638920403508390081602303633495047946788323238098541191785205001713373785622379772533355918334422142440667305814990740783158171912030071744005924923001503417823907810128909140070986020780201247995821213090432336632153020624940479994525691455823166612438954150573420584358714328561531691057647436773370050303779638569359328022583128199144898118797973397185493913856117987339225606739164905183629384450184041708355764368842247862836720294427725900615832678399137376016712450451277574903694717369302970658191788568948457372538403302854342724401225326155400630733895337406817452882999375856666706216745857130952825415310920200662379987638819723471186295623319208760599593733535901736634352049686478537558141637522685808352458513644516869397457346242401658176812721117160973168614483319676404209514316884559511907336118087639860179745314704404315455887788237406681356720587768060819197588334562952083955871208436425017052517628746179927876421917642739695816047025361747262631397053912822670556094927282517242537892164028709811974093347048622908040463889908760577046546291027279256245829170529592712347888658177098538636418400864632451006207229819225373383531735211277099223932859927226241097111323568155312225857194217425977997293342164144675908368632545755249449681034203143573486257767959997242556202684495789721904578675229348617057169845193043912088192112954735973699614716726026376516011072153387126545439779264942834356440360745172257869265402633197560496477265934132915671078400805840590591460036373535678784758764857253515266974164912297134656127939989496008747013519537759907376973014266982261035734028420026949272911266060864767526537343477205096591548430920243342746873549976449019893596121745531507351449202777783988987632346678383825157841730699024026968541822477410013685293987251495146703859043862991698297089921456568062712751297462604709460293507288734506279143462332348154057293018176178905497528531529526418114085118287582850505224873772384105874717936873982735698478580629154159576598299779314852081467975147811376948521550015715923694289252176798503334801463385854616673653749388140120627124436214159569594002304790235717443300641022981172309147083493937917430964354829211775598279901510299231262395625317456775621840506900106260857994441935820945367111157455205674843059648034206444385687903573350520310752003550058890092023060082179788028400203969979765863272966941090222825606493476059531971673951672651540000366321603541657592756578611775402901758539801801105168422271506849279028825896497254064906395606180441068690368700102950095504140214702902999442769595619292506127607091375654619138085497400829664629483968113670477700697946983215279783394381131077151914077261583952384668984792865778330126902107826693341822141724659230500261573498983620874992268007008255025215630354193702935705904470925622232022909831522376670060271080731555985639941545138468532366867453662141067954565634850316085365820044648661916687871166389534298497197658600738462446541560174166465757286732080552100398045207576206651826366780936728302458331407538841490079152521148400337740162893461689523558941799402373688502946093330896941613124111806891678273256269583688354302752058384345058376655895255127696783678189134473789306257169769360467840707701888389068612314745991683321151081455391405550589314082414009866392261589094047222778929079548158894687218627989662437689185051714540546096055816570067167697422169773881750085713586183203864391290201802101849988414389926401252671353638016745213395519306360553234142234319846347741866863795968829878473213995257687866011392297330175069046731011748442213845666230101543098430391872976875800613650045693401183542176512901980197839156676964971892478314816830007483613504283839062055338170549568708857848834466574301878685253339741673344146625615935501750240398704273238694782287883380469941229773738840360144301970411226114777433409615937710509999779040558362091019931258437719308045750594354709402078922428390083497428834991402210604343855951189779791028260571255986200685660731870136381727907203986597903758884542286224117422838302314853271126760504204104525470027691110508074860917795065709822432063795665618176245555102614183889345843773726324659251310330515095658798986215154133303630428311809036920878240536000587104176639791877804217660996692411224567499484566353420633539133378686569150703306288257935892184767395894326260764305144534318277555565660047506183293220047708755132218339304362865810668742992921828102292151782013204079131560447482321907877023808182913977838168857288159386225097477473627610332529062407051631867799071257471395810830376493906633171100188643037547401886563846963466151244678334328187527830998609382048717128346575696753338609130504435882682099281969114960890141123147012090453524261972811273598685918700143873809611072376603730467732139383408197747146511578000991660128187435380801882653081381476706881991887528182117945844670612354192770363195674041173405709028223098258631189164461559521797581180199131408832100955265835110436208716891415648754705382639709293811503538934671982120464322748353167620465844185173321859107240890170199921997766584244230625745740916781066411054012008741314741169303237334199167511977953789611917046205736727253100277505148302227051295213533843330983765389848731705581534943732413929179364057703026778343798253401249673736405394411466824096692797103157383731474085629932417116630114544538282208260368207827314502592883532697339653694804276518158676019996205171221481065770101252479793905090559069226642685008698389795825640918788105192756981775628491165891845818619311460517792211347771729530900803734282593221609785584564961136086535459277366835020090423150242482038564717659036363327047617362130156688134388201507187678016585013804579932165449962323975364419371158553891521123873843026208910256727594414326274322496013011824339700251508591535455042356921976976727707468478712295215394777328472949923922347948553915647828110204904680421650697754404856148662026681418419054352859695382403133749136657575690885551426142176553389037668751857913845539373876385893340002218088153503234450346601811995578915809136127554727880641832596455048115869581230145715448620071847448182242355516155450266576383841965174984378006995873611339760287709235528142991048977136350455280029823934423942680040932980286702613261110799728687911443623455619261142223174083415677888187158223958152246428049083707019319337455719914156662766615187273050326516605204244962886498149250990434743811348155358394531567926260050335618468065318289378776686570895688613266962798588681723036994053385480079400894318986040909868303400138002515716662047709819443176904440495550539029713151130690713515621863994325084924124321377643184025827826022269196970673200987869130731558363485282744462200594813519439067922043852542467837065279291386857598417720329542630863462876326692770861027827474234862881306767845326166810412167884033874364972104222732512154119575301277869623974196647854814544049839969122835680075639179928816518926959608353410755006963870181746280761359642251892732933508205971870488419029414013020677158573811976985240509118449865149567237453099017407357249627669711230310016466000520580485689418246117508044696673905813586395154666893046625668315105798460314749111797406645429409983402323597985799121116065293197981594615471530140375008883053978765757303149776546780515828741462894267641943152840479520300568187938140478572416280436634088994430957274857594288422653034850753354245391990514517086795285095290330625840720545369513988475290420809984347359885734920526375816224846028314471487669607042960907700317779759648979197265879896632203306196345896238601706358499484413764925033109039246175687042128343175852487254199863813304985980628883840975540954826450752948850252222887808393171043103735257237845418348255310749996354596940688730948474066586191458423107759555421516344974484010274069989863618010872329705074709514630227542859380384293815799623937386435384372872841629993596939968923595377222329852706253262133223731123055360536809600458099925977085725860020328008301763011506042100275089468458787082602326597414945430617407402781937739898606189461145929360140045260537696086717270837729526940658521006441350628524745561442522569493418475215522913863470221982915843630873995506647566358255396602417455713495026077256264738839568676560646967990929443735055647746964026890207013374498188901160341095354593048420887242336025194945199929421590781868429828195944182018738374470387224725181929199638201931066945360005665971835779823916284276733946068866099011734158516282537054456651940242968202508351301865193382176122619136299183867336213867246245330133961547425389255032479354915417160756226497762455693523842717459570880054876377555187342453974869699572647145375873657498137503739343352750356391628124829874427492529925488265218834862774333251533699735654689432824796983923121507786912504770705972660187115398008474344791896177422794231016773814677022743973589350085131223370042231100511433444485840262067159826042442401164415875191714681646012757603951618344794287282001883636151091552963895132337642340538834529614789654502590188558830457929757511634675639591385394997714157622257815476089077964137702487102332852282784142644264867328731892508799056203499861661895473364458488839130221887516153664684031061058124816365058342784175001738809145794213378942798708678823066680125212689957552823247180275530171517855441543471342471998854051879685245057643157031460357512047588556432857393545125750709455803302747166148496984892876422312593680600930965013524886082460605135444443426731575715624733159803122210168920099173080035112665060415534672701055656747863314802208496600448601280423503680639111869130748948545930757570772384235278281146181869857948002349285650048146499409538824938137449202854395503325504635733834881802305895739956389118612989362763802325688009726008657916037087727267835392965855695643515475869683934161458168457704686663649375592510233791594696696596560024147505454932478231956685448754272566405226385865148392084651064860515937332081268846218539956816894888733097621936133412909697451736222453914318766738994383205328704852992908702137832126892379989164186166617293694748847285530724423414423720505277657306141285502436934294730908005337485801674907608427989880826275128992726404188067389653410845174313470855360315426563184297877399330334634877358402247211442527821427817335532260660572585713318946399962898513897818578657750660216355743452114032628075833878298844530238495847286415731462987306924774402238344730007747514413762545944780963861324326287078567493047623458228860462171012773608809940764938643309284205191248738844230108110645509729105852810354291050165647489408323163392858020179064273227845668878577895214730358307797721499354985775557618157078249896897179694704559403856504110003377987136465708050887202321894160751466797009318039338131264494352423400452974118991454074558871894442544794818907681218842092807302710821372664359868501764429901913646564309476128582847292462939270156259136869070076136408036977951466907087711099142800013720102628825830436461544251612900614569104022342335896822885620433616378712872256077831041878986610485711111088285401985323630230817841919000354654341044158729707879079833330990553551264254103076743110951184627531505225839283595255900119376816348469061517889913492049505277218125229424573224782404275449228902976249564037877646229927729037080213892789630684274393189335339393388168089221420755487715037504326541646237817701373879948991630486113149556848875215773577745956885903934049958846106981104209678767623861814403803853762944303123999209855706409449840057234478023767273206364329897996964383088010174669538595862294885228941572077172970194248757960242168293634133609768350144968730282382145155814346881472993006606872484777909534250867357332183637288412753372493635772888998938631449870603187231584706759482922012158080764331795232046341889959166334717881804526175440412888008285123218359577016669524252930571455917245397756741819924438347795794504377344085531270104485214644586770649384438110390189134262040459995970939620352468955157486645795187039912667220838705229366887787316884827792269538146084120513932884611812770168610462165498029532636696890519975734018434470436270377429382047901263148126787046973963898434046183566441525095042889177043427482951267075413006241090369750641879322736126443450347959278536328672425287283953632111033763391060685556724286656827590350848925306507522509189280401291970729453248663152193227875131579404605835484838396575670478416210805949518437852368311898099324170717057054853332358733835226802466879186048573002849857740917625193906105558824480370536972819649400343260495742794848451721363413001268992424639462203810272634265812281950195849779954923070034679316184933335466298931673310905965159845475141349614661515031156749837692075609600260229013746805303334181179981674098965139075238743494231357639501552794639592908375917605133678348103589921770301684202220081883470193627545339652707233311822430525809564644382080428069942290027831094881077704356770740391930094573991470191434545087573630173847956244006589305330016796095128773574525567743125128428241804099663598733826947214472145409178056170571302505020625602936809529638752541408925724948480142574634334121105065220046426443367039929886760829916726010748101600399591484121782080213224499542406011654102503997457714657354376169944043947934085810904431648043557697850480454981337324136823636227948044984009486099937270673611624847171537143315691602473252492213922717428429560101604821617943171836929837792740430716039277896402057742031694580530400945286858337139476277223531376591274452520161831679827383059534766494298989286427949020955384380258106634187549001298165666120561926009537192597806670837186043015111096217248337699565375669063593623591005394088901559589230729419641593837540924399457059140217258787448432494203765029737950404364999565201197322571125784927299258117615098349132021540463560824990985597826109819154482861094904453200183979784566039161759910182813728642546081638209444755316297997795106806052389727838692213251032626296364355906965650776895434061471365476215514620699096508280168251603434295240448867879566053890201710131947373023561576738651153551658943342676377993255046647641979733429971027862536084703874739685680439623155745380807195556030899850276364238748408959027634122284931327838211457940357573057297844093493769248720210164858436805544107428161496105726483028573188711885628680318397742376569846232370220366258487150080589778019472700088764098064129943362832590365725397457814432009863226246809443173501561251422942250923116342290555034517125684428940215353658603262743316439037307780079223934330384592117933717473357672592805341827121728371654458869309930646584767270565079207385669576703501443124182334772441631018399335716203736940610363373322735871273969558450421639530511068921416644621057837497546214437365582041346241543539012875601104524867190906478528996949589298075873792500603042499238370331379942433044329014981329823054737590022673085296045289299592208750832589183411366718292097470837227555267280688576164411614756004249302899666977897136355136634493123264424626238249568492271439157756615983462871949159786586736560730617056618811977116481154402608647767905600297975809420765339864955964826967262929357902640112092575343225709843003582295235355598939711993290063727312820891744604855358062245261742945441997320636883038053612898606838632337355930635062110918351600443765747778079355370468900236204124486124214934673876461532725611465257117433367926854887562718733816518550419662762156606951514698537017227284972364215702471493448963389877589042405120770704669475666410016635616742940799074964031888041569208006973594328666893197085234483013226017051206561234398031715813660865834356468782028138055851643608269914650407857498210542443666003997889097981824843771851382965280808085018186100378888159181802460534475506348955997214778383147151989643327127976863574768958820291397594950386863279720803488527866191554831093830893416786015973676320312579445727596904190406452090558576566061750017687643507928652903969875784623489404079237712187488862888735490895038983463265886206019731071973698627837614274763619783441176916001354488858486372058833997546279588304527039514373085897364080702412159687430606722641577541665630062443175615616418972996920698641576907427515337916577930881710741080402885517831829111042560999873422524130289257211572987036233572968374721751445929939709300374559144200658592590516695920384108054762496316405540086830479754869843951964393855066908515804052278869485851067428494323483241079781703708741130237928151462364906942291133477357686917624697872511914924917709415662180345649898266129035903603183522734035199466592990831534802612004075488791020270195024122738154724018876829288136201648233345034672339824938796510102678742225979336927240536089401920646548837862027173741653509555823194998028351885718257635693381482763222160033352375818387933870870070050772009308929432434662055195218786212520881695194895013343882451338918741347728176353876280477663998115031415284133728514008167932593171967440264243611888444016019765004213864863874676540771026618267309249221806622456616527101819284986916245027638447585082419282624787593013415052878524931832986898407404087982870393154561022912021505386659757568372815804423834685483380357803640147492675972006963708623596990930030831982231592176078902339647272228981748023113642936604379307973233181828251060937496535828436508309405858301718542013392728784110188990524057596347313114471088414136152166487591462690919754186940280198501711552129103221326643021267587923031925717296528904314037440750968855733102777710127474621425637150222685316138421178011666178557380290527947243658876856933779750454589586201705522172511390961287989232427220348604733623383908264930581180635314038136275335867014730587486452994447459892415359127520381897979106031778459328551302087197251096732583495947922260833956155946440225441366320301418010324978545772393958235600163151984300488987103766510804785122300457469646740134714730708266274096184980591446468131529073804660627211940632233312784152584449368080425833334387980827627470094514474052809211677632011571629460502179941642897044447541630669651778074325417354190686065005489947334458552245044422404367876800748682598385160748291333218270798761771841845083446404001032557973174570747710635840697740814316532921381688840124171646121489877903702067253786639347992602280606434031114943313727210503649593688383783391422888036286288250456114479450745915571416299613535633755393811131069992186618026556706564639245186526511294285638484221398902902407592331597405146083312284651674223529631641835697584194152346671008492236895654129248319132099524578641377252352777044776415066864549487608284928768457072657585573795260923379840895454056398282651372554342557854218766648645335790450280797640815591098543139118902667015395410682144249219337796335823392395153754935586963527749417217504282886550198827880678396862172625275690056215479341922807630888782551260679897343648793250454265456658093002275125944892701683643282488682872431608955350596497600888759793715786394885581548944283289774338490082914343864616266622857696409090520489067122340255892948519851905353381729836387784969403012650099153502834248789108034963440192213828149619253342282815373708149553309403300218698966825938936055554133135265126095081703669962459801124626983913400312945427273469118094677043409182755066756400964121546373812044382715033951337169190659942602562830455486616752667795098842063137195535208657455389501329345511667608683164227759009816619523504749424206005102259117592314333306550724830405379986390338588908671411978987918351484813541133804565568012402782458752790896275010266200755112247066267553137314459455835670409166275920875734975299466759132233362287771088686996118007625181153168492152987051165539571167105707303702960183506239747000709227368670779907268950329656941071611263336682139197821163887672547554213653895643916607446325997939774604656227161644740022699454970390255687089793893910384998875937060730687867654578046266239324722632629689522895275582618479231252286026846892930380864107574268419207216085877783926034656844817072891226881055414426474428979896922377746111310887410765196583331869571769748324381740239823145872086668170142636385173910128626789958294958816378901185634510116970643015976846395859252201295758918666564329517916904917874576132291174479320336084195677092678554618256594685407900555970319676460906178844347521146169591435378686169807675687591021695816963375161008279483322267377594951900753736328285528362408951913628860400138576789277473449806220007041622754383878009759462076189510916411445614450835317604028547568255517264659074048805022455883102216808375104275258440822450091621150574318608107652711129186566881199703253078014843405468117023564301569603079965199409965965974913099680991963254167522349596173881453946619707099752144208124909166513234870705659937933549018307980757358710750446447098029602405249010792073503404142852785503754399063906327948801291123817277311602552024650729678885825685736257492456166139130495442184916962795814008975185725000392786819266829806720298399012155591669647064888696029654019529387354811900270840419875283636150310777965362693645129933180916769185872633729995407958104615006639124147393405129678892511818133347466559996671837012756424625478900205258859644699762964058263515499564063698678274422038439061034814677895450141779466771369279053726258917648833641705199107700416437079853982719558537195675608871056818918697308010330324803569087195536912525646837540597560773109495343921699325238387380339318141059704069003187993529851520574302377954816110900959157862755406542345743287229112999021723584094323755841952132672764233742914452705512042710100612581774063608337794779675285805018185060200701074526463620068084713509094175552514199659782226854492428362985902919890587825094885424595720051768066304158841880060973506989337197724295411444838784820329384130381780976354862895136807871856606990363068487913910350837331008217406796324854271387424089690584710312234732872763119211388642039904617282641402619748640451910826298045866610409172977857689370584471079081434171013850547840613028068028437768481635541390567973017074658318061662260138335411547592063792181376853275460314698079154823157923344790208998553540667213853299662559458255528118686460024358498574065530788089850824053419673032269712996192873262675574012277294193545050557752057544862435522402587908801942465576303095819883742188143286647499283221722782085466418660642889435420783464922593743559967376835059516096168887399910665345384881824795220236599545981795926145061129859215059686328093875952731060818962884753858223714821479242980419501732250637985795843475242621206655236497712688729557968861842519607145934931894802608754290761218151190701971253850093397831512628241601661751917667384764283792913576329155088596983206121128949375738778743107138422796635313739292150561522023875121486535055911729566576044197037150111127484345783915519928670579900485190081775442801003132139514462763968215677790074444735032798138240906521858019586645438387042445869914939292037689813239068794615758366171426156129892362329398056189619317000405186941721501802247081819044688230976487080492932255500575848753737829570051991858313693093085513807009901058483042689340124166786917332206775650340203744197142880090763878569370576352991607115058210057223085607806053464208097404623275581158959280634057155963025003674528068170544805842431006503652361073085132643735498838871825719820610645868630076517666965066239790668000687156199824465643234892408783406085957659927117048256921836031314536760661042820666064159983136974890619152156954635209864610985551871789735383384195367275686718887240444131301381773753286355471179271257427748429605067652032617076880302229144432140709476776710722657919419582868736436158644402775052236174944838339164403329011448560808379350401770560120725083299406852621370833355537900759281151650720588195475232502819986565108842990127951175135884340588486109731596754670899118151496018580895733976156462595534511121581534963174633811032466908127405461870494318172736338239590078040551825703578645918771547704921502042417814112436648113472389133862949533982066771379476404418566536195461719005230866324957342562167499338607463744087278615124560143992493099303927923855974665984816194877158377541523157436935066175031918305881160633435886687848168009768500362166861464105173759214105973645726741157744464478652234234815245901391809981527433301649952499583557454157709397450609595719624329045932339791951586418161154057818262588840901574880699214414551519327892939554386136200035571552356535879174663060983210929445439896947860384820976854887574470678191794830526262032180241476276689144992548340740411068834008516261242184316874744708379042171692870869943780352973785406555340228644160656440770739112834430508872535638975617011786848734417842760374903654805504474571870994379135136448801731075710416311446168741254495482611070836161815948666338331997321082251164416019759994717675838860408087821132038234506841137539179899418350412258832509859250935995651836830405328840683704460170669396507507693411167055537490434778480097991163687936134831176014056359881559657197265326152390026618312462914721329748943512397873693681857458742872300732167656925691375371072314006627099698957518503962748070067977062606506344746341026112426282409013718786244332642590352310449466512081605084556564857536621600993852152524943838771658600991631915921389187667422049441617812394552066075260941547847506312784580046647334687824098668065106444775333836161564732858832799980158538647034001861706003488861578050167854951082338321982033066245909651781397529289395362713920959810624665910852713878682715871645966328330652285971143244251952169741109387601587799824248770879820017425510597605133924918353899460140661957040322860315489427841122002822007829566815108992963461140376197010650169108670890074615461477188512850182881265854100149801531626125477111923778036800373579795599961988317281995900865904262236386360724100453602292177909608388586842914630961260585630922189158892548610021231016951635744278862991098205093166536456377404950411985429204690863155989246819203537251584230125727702412531766084238586578210199133602243171354985534620326650685340986476536996873907129477851743014948140579006005474073446111467003204445637945158947842852120126906263628415483895302709882510583139024213400381478903152534441708231063720293813978819210368223825144046593538148462689950295525453765009709482449075949159578751881271354391414472645587446579157871147636395562236894912264785514535611234483486706229763497269196392000355531743614899284861409155102504129306743016523059968187308142852197060937182802848989966959892825564969736184359441774978591678035688200377639310741490961308999068869713504884083016395472028368411117311970368704610086427340361341444027992729248561840624817837998822696115245128017536376933711342493456653522165524113424889594500382225383387053007943236406802570753616804626652199449623993334365467513189765792916523648402976074038349636168063513627158036521157005278139478969608826631782139475894463557034619961605087341173090633033477109638516599911628957839339491718915703805715915187059038532181929929764631890071373291011682124430213806815445779788333402218164428494195188014254220791721998727761556347270196645205778242739507431309447658036711585793575680009101671599926241719339144767065410098612898729932268254841898524355364893188986962553028769763049670715793138691169932531720108667311949818172789448164356346187523853960972425851366658631384633310977427804493792969097767035750768278925164717597816699441644875840301961039052116592195102748402583135679106454315030654378613937875202654764393772237521317025034836192684153244875623832908850269228930694326198821565175493280517957512339533499943445804356056408260715237843341960219622200163251481932456171420266313629661242256136333040279936583748775468031736041304379256226011649689593518313731437676810278563889681824293879040099570372129837957809822850948447530305153316242885329915670034694298985173258949365853040761263215610677329371147825701895751325611240227969410673342156072983154078356047326558078138104037542072516399785942864414579012850696265967500284190229857368769520048526459620816321723196606828976127487217899081164910154660885849253649417172344762625451771304507764848218967348409086314399740394509666380334682394296345956416415131364607245215474433571155410058576551534626673758362274454755561961800710699915989587368314674895345201876828829438300935368840952217188377988545353274496894823316303529323205634425703094003098266152429912033372128519071139852453060562570519158020334882747392806258780650897546971978595441971400393316161348566318564877099147085965114743603612747866542811299697631066632180406343410844268826034971430945031887076817472011740680547948464068816215316882695602732220017423986239910916745311099445093622902906861349441171443742472586835643074279229646250331790493664415114050053967269420172902999165594363332557517633505867100344526395677633728566959954882831818506071679577528064938009051105740193432472616361836440251643119879013912746762991800282510246897400527256502796214043448826703749827713743164621064073928178146200693993447721067686542260930292789619227298091217913185899874401267234902354305647154219474291559126714987706487927022836688503023397829451517432547566755253427790230081273185223744720257567952233762604165159588388349773954086503654738336990868993921872840294609669748990734842218641750266329038404338586263744756667127081183843697705619940960508405390156101912939809553780468009743040836713779211212837057424599680219297854302774583928861928178534546421306663704000309688434303109694569009755276481641045070473038344139919775236332562469262612958843108748150762402156015353251131373626446556423620184739148486562911205609951374380524225894462004936462688407990293768383891861648492742467442775094367017627956776535896946839639153612598432044077316407806905346890417091510166046748189421678308043534581725141372709912695488714443040104444934241119380971928793414304967279532483930403251248489794410164404411402710591150249929651309455387317763976160251033161487431965185955537044205235032347518349785309435387058800837299973154031338691563803995958799182417380006920640095054055870453988297133577147532857152450761711832483632357722109500198865559274574210133653799629894041102467815410684194251764108370445287266598417479569049539407266545428484256993556428018392221390812428587781974061480330553635069889826351561054802597310586556815885551909837704168537937736733995426900385651149187380074921262763345679721470043444376922043722020147670883236431257236876067177539964156624015706977183599671660138723940077348818264006007160085774469472403862611786986655661491246471833983791770181118915127339414662663340679305042470048990875076556309035442953770411956804873047908760523620003995264883684106357638187638691707018798053340362095892977677179014916602947636512715672957365120722874441323578040049204926043644631366760163878190842152500632326635879532507100694612865174762519189940123701696758040785845997507224465456550227509795760570705898921964716397703679252344628013995975030591453100194437122603644222597775243644122463612038931658667072183866080519902913089146502461038041210393503418358371904232667696673707360118165758769595262436813704850062715852824374157856405924400960507424335760092326739549519082188578770546974666862274597761109895246818763999479239464272202093682745042926045992274037924898917913328889761709256043887499654123986062270243789790309577539605065211989205425861315814907235385671727314787004412294840351522706623184649907739016526849515456328449952939844200080379766833205544340085561012431049505958688025978154351589940921155122546954839210576906981750616649625165613101758397197838001683350119495339334645364299237256645743799192290345688339033352583149723132876813681114684339499830210835368284023179840021322903105328890344778485087115123531499231704193259355858801581709259575543101895995203193871511662784020168740139013404388068206190200209536368202198937680302942434779446735775335480646387557965860716635161896026671668948355315014464383412047540210707548785534999358168863093033932347059930461474289916641735143521792313307900640233659079419087132902741314083297603493598732410038080295452867226487850456701100667160211133291407254485838959655213330331508709143404771137479169584232398753780254549010870813656405150506402266218422045521908155746635317809104922564846041704181467907347830867773590068785743254207226190801489644401879890741070779323223570545656972431796647370890655922870513180449733091478211584013229023774756088777927913575049881795740360271830503050391138631319384260037832805331628628747031130317592476071311497788042301221301958091049104713248005479950512884052405456986769939247486597885956651353964314859226321265480335203018754228189024911668692787689567550581745682755121999318549098905193014567011306928855590754113772129028604811201831933334925191600709039469074769837625629340083558747643357894174061557443975905550547727946288997515320515262443601486694096335082421115154116452400152156668404121334978718775863470009121091245214624814712535006397792629616998714313006097086494476202444668059679633657548018874769774847180185940378795558781042577973785813907403487840291099649981617101847401501493358611045192909431377065834719187325182101475168321790951184873743996901424743541374898986448055961344640634512015082986590264321669880530753686114650801298082571214454966211345132863507344639037377966304375596428092489067236105371596331558692263430706723825683147152959126413950200417224410168880360822971474897410223148421884687272192023949421169587958484276875789066174002679171083385929271516658519607560156293833688808462947431287348802349210950819954981447950795101423196439265093689642415590665915724340618812415188653539032036281997516812183129912965448351996115581288665453970292716014754862079814841480943844323550754620029776454465527030708715579191522129840392288310887058267667681690301105574639789370599034427830754192859899293214476267974083656957941499056865302645869037005089122607319420793534279731308830353411397433537997248032130244085823269333544801122281843195543242992186691519069592792973224926633912990591075746544514771989592549875159523239901243171554474441897029684566208655946404082839470230539704264989462370611728298861011089488330668142797368890089625527433751103803402851099301376804164145131970572802334603685466621988456878358353105760100219013376312494277286647815459889672431414202224865001988126096924226983682953412455840184950765580817656249638066159743528367796422109271118723873636328304954073283201063373217901909426835031727855850859329011104693690282095261359332749723462906180625224129598586458119216356480380510093599003257146229938017070471909303854705733970507856798372167868495079590291276579584999409565997896537283576859022764935472885468401098407732421498046767834958744954351566542546030015204485115930920546570374766441133475539338199275656262827249085005148213404271685713324011260104816737397066865549449982279326413035416628815041541410326777466221316858354071783005155692795427323646519953658325111885926178262548382445799500404005497136751407753875549817412759205821212292907843175032074041794736363987224703689881131312899745637031351072476090437775892700819604680105239279652735247932254430926671555981513604138689425326795802143783642340341607773299749475983138001852327840685163847261698652394034884869680176770901418719421816274722602230763571089439443909828987498630394687430969880964279291318288419096713650852542541906502521099764737236518142283651966726243381692150412589161927217199709134271771695527794584398533418424002472884304799444318712567576434014538597689890791271572183495464114783148089471278853259138167388400550408704160816528299541620507079303161433118456671985839582275853316588932380552931194128852444944052198269628189166715367497866792828206424102329992668717148635277408238672577367278925206312808438932742955649619960473495212394582177959964201488876293180800256587164877913635177100459120215307416603332836408112019682536145667122017267509993120274427650288678852608673694589336341155866083669115982610993748866329778492432426050722880872012076934596832281127534102092610963082214156550320747827537057765391199695642054116083909010860682131460880463411727804730291934831296826027528628254443130049089357483800366462560501212613381076782314309275800141944469374984450492084753709715823531719115646018580691071640691278902796928189128016376944004411185150491669515452020393616131829485976808617809934496258477399770184734700492925780808068809825308499754815482387059425581879311916371574289259784982108666420301385795784442382209673048084967155162887643751051490121088448494503521319801515248995059801709788661838397517719711726274951077399716324678645268332773650557422843749128920646953583604546164781943001846911128920468520409074100072625289096163192156897120170592231234956965109524593064858153722116667822087110141082367330188426613482380820679767492376960881497228147358648226047541240198811904293591143342837599443579915248921981963915212631925400053662675486552011642017753721716554602195064621192195026619050651981866542550441015903742822170832564355469332670153992765882476291054869141973320391302430704484079312512237277759902799101718899014591773214883105912795385517440039635735713570399347786769633636338690004481256141861149899804354683652638952733628609246439195175461759800847178646689129655003987622124018068074006619335960905144164652126604467750071807916528656016974861546892761315436583082255890775944243254541085623735238145540555183471174136739853212970126976137434560847114515087049221246135892084103430791424263792150018371845301405453810517665662619531057965949779261622117902437414930709856576344618411417632655347817537999711682567318833911838996304503969564180514906228779165731685467282466857326435161256021712414526375522495678878238496030690116049124694935434526118406150758799937348436898551595418817512242398522751321678618736437294023217789891594216234230530460700727152594201488730014546316113354073465036513271266586995229592454528552882016032228801066045980392716548800049365981710863097303685030627878515551455492714879436071662342659093605026662930368131393894817780789661178325730312811169448104185020796477810751470040738789017770354184399847167837395620020103492593775044846732219991018542883109719945823828314419276280111455757936608712803591752673456285013073676913173270581329822506692571889301658058558853227718181695535414761490192031126941110141607575344617936674494945358897501047016584695261772814118713445541424246119807856739662991308310458306436592066613039446307715039842119572758938024043745695162905090550195788870724654345465190909837708390241764253926902458773496484835217351172276721143250212414597279100457051553464636984953996609963572021872993113442672365971401945754521650253724159459834417831286729540328914882345709202368900531852583866013591501611157905634595324896013858472536415681594234696133944411644085597988373774583443294105546536203264473152615029096001968828806833070267930587473130202374800947759985894993009289921082593409903954117810818886093990390897746608627194800766528663630206527756201437065363434878842239859009850239663570086890020334448187953112209465635949821659564656436252244541282093525278326641348161358577885937658263865948727554876867587806127560153727427912186962939949836930449262225122276810038447607534754250738265916754917645055101497920456339010408922153760387297174475642463136061463622083310227509484169684158360152143740948136938925281147845768136917885462719019024385094411988997750173421251208587297934662231000320745693296475486388211160218609782724264878383091942095576558069063733649496026204751182878747044407024351541433373082186034090734234550396658382496843905632549861925009328031834157194040382392159250788903959348772853899137251315172484926570772632419057537025350960719741885720277717941176835202871405502494948253508259948487003811120027671242445193840940243672803760230369221230965852238784766937432367297500359933661769182694939214199365467154965485740571634754383097578095632953269905011996721193480383864576329227457242869564157833552189411672637729171701733666310934484272709725467204820358360811152696080942658477471742086101141185563912139861848664040155942649622040063726533487760638473764959879409473746512594162456696725982832030039490927439870090869956570727476831407214860391446148910324477211529601829196595093894986363253760777716596040648362550762868814305427729343562747903893500417313220375714711005809956815181996539832947799030340368221651193284754141042267559812661809922745098064800453452810936934181882712227257670935996123832524821606265032340277087275648308458823960749029966605437799447901541867743379104592323911950041883382089942980385226946727170040061532486965264579629571805691973953757272833065603537416429826975211714948313961194645548242856059238682178819187258296158970621754695999392918457049454326718266474265073810896097131326740820334343816139313001921683269348664881659249587353144362599447083349631982296927769233104766881379110822339351695772859416167920453470180066880324905732334090178185971501994730222894957309290951555600244034218910897340409631135889611881098907515464489634751522258160756030044958403400525080831175646973651694310901371985242003101969834461448569405000443013798625536475620301485600851542254694607483477863757116643134378898218630510431920943942621552381923869066829686347662300026644232134858765538720833515103904410599566522032433628900326695167031669654256795216489306708672250082126929973178443498748211503615496423917386659719031752932439325849443576511187196190863385006208206463983489842528388999576032873264637525639102874807122622866672991697547914506637187124413943079090712859215689325180264710182015891551206427882005352907604646582125648246456792703946349751507089125469245297417530532761166606187796735578845293031111952961450820595110635875939319546491470842530386560434094430904407291580769796958720587440593133124020282246190074036138324065939023815456538637398126569551896675148349964443444098311418414746328262231140655122421346694308720816575387683934409386123589624143126202492516396446972715310874296826923980122017524985231183323856156027483379238297380489042947080762317628843646978002272900929159467961614084225531786271898352436631319983230743615677700296612555365421343129797889236403888173618388011536772708506158819944987291081951327124965203275950522894403259930945707484994654125557844273208710556989622962503567133228279602942984767507950878687404813868032377827224904798088112230747801203793774801122694956838199241385072590473455350712049895519542018819256777332248856103301751345495119737058486305168010946344960933536071912874452938489776181847206955093312674319039707558489059619502297964287874459901702236935805918999538807547501846858149068425476304396873880266195261651588255486366883281428277630908289419557228843088366387086022936436119150425207978362507352372019730933976234789980340937636934704670317582936198454913819548569017543590185018277048958287055511913727459387384739049109144276054947392854937785499958034665399455301901484315576869032015585484906112587489441287870997675809383089003298099088460434699417603004049444107515174886961728896742189264261593211583460914018342591988319787116720775873959953017946686545630490008896204616602867749659868252209340377752786730796627420132175939775516671615126050976353979914830150556500118400593036742395787665969194354534333532187085250661099756535716564284926268909184203685174088205297887432194004306391280588156020199703098710374261837479962823545499124482728873520008355739303569276262787800727609174680515350064582696823806221051572761929509952473142440530332578272601597985314094076230716831512646479220407476172012150023641628072224251383358347028473079490113223578394987494496782360551531014998881948681613969528723533907010531368009664395566115909876596188245791712206055917012182141659458883910774291490420401959958639309739116758375574563725054577061167928537230258780072402166712119040420832925551391493482280624484631745226266138915716751961285702996503985814327959652434975864605706842115094829653818892811635592086152006173608020244351872169804038995767703229791236299542233502528206142695728712608000288014849133245065023879811645260899151352778390233601617214810596663004022216928057551004855687670360974264038525197361473019734232270664948322543855139369306021254102958740178792057370457572188632872422202554202072850981809346085922087040497481579021622329703317786780070461249274942132462143748280633627123546069214649885807332520546254646034209081805540922069069850103670580390352034220051343675609075704318629880068707932083898567685776131054034814585853016598562746365611336019718961368857361743389590985173973387272659286491348111358233753951883004030456091812389250440144530194038032135576041979363480581615215658786885228965620509125392008421186248032842709837961103004681125259201584751689284224376856798452846281183138917244820226591830755268545034476582392394370975569665288095367796924483095015892039864341937084690985744372057946963527629007600843846402593748127134165557284395771050512607786031267195736833858182437507567629450159589738567774605274923934378122458517807276583678037807179243049488432212297826750941381128848171930642299853555407699373455270136373040525565269424228968293542234447414047691075659624414346458917935364976434925584894639384513676377258994886927566652779240821139040607855532250935329052508125278739717567245026373185188372057556661926689280537514777216872531483377201471820938845768822412700875486039081433022742238841820466103088863144072101425567003508567027948065324058594631860611543540839064805875137950365298931044774333953150769939469686507497168590913737921257726760453604854476347881503562056256836472135757367314957138731969130680438309865124848710147310073865271535248828184633771805465385820382123706886891885254354997367294348306142290574816137990896724066871200140187039348878566677478274428199374124521133150004366217697083394266986865554715762951257476817880362630263638818876231500630682922606202872117767055537214622282936620727739023206451805454036584550526926097730634945952349186084547671840632637206412022960978791129740776343132035999715271516416479062150442397600716190005582020814803065743444361004352782358032352630357135305028677199595728809052412980292903004629486982613898164824482309238108647393489177952366138288341313952868930400633277933807415886562582566087985367155536355549301948672401921320328994758601322013397947850808600220946837347820006553682871816915730959701316901205809033004389629831531698966405340964455482436905184702694066470522747970218445309061812701267619914750329074016490643897930691619538308389369373085140989102849509759635547877998785679281496291995102190421381785690102034459842125881753289531156246534840434064487856784161180527729038896945707749949488142697692681565300765304110521591071194021388275587063241402592395524550097927048600218042625484052817348481839849240770730990048225807569282439936035862463253882548326333314538037745923576788143423133886200965181687348315330907527737177887026224625231040104388487511506983090376231185182057579899747780503202615523654783175008968527496394721896976366432549852671780785910570258869674506155898934603290719034576719140015508292399162761919811199502746075847617426133209123869870708482227813573484569225224505492615675558543511083313402551066483666707511638687109248636591098291528608629383834146800841614275462977902306467215650196591200698500902261084017464745655736974409868245769168781236582737311812063532725845967391184927664988216099906361822958463883496397400366783310164117254009742254819501460793155451703036205260172585562227009543585767093228137579073180045988941581217960920951036088358564952374730961935418482069728694970069340769188175316092663136127278138408076426477016846880075662038142662375158217721604823663829063012148300095784967144179942979544656654824164392380576654122806887498888498658119531461269824408781813119589288975890051446975192186204107510633764463945358946110738114113736020007211986968435493677192006390729951355825128442175270419271511143797499946084948452393975441770348850770204240515966433684040347910259051528587216568475058759917449393401396845001298598118791835997205211028080289046811535719541276598346014287524708066018549305951234614356042518781670410741106911723732716219202710092713581606306104914970797814137522813672350145380866315915664996005903991365818963469282127965644108909930307334209519182457648774528859310621329905015211100015783100944421776351138735408079364741467109819050911198169450065166758578057826217652351669953755611117598798527640055528785616097180814769554458790543092693723621691399565931081664697260699066115343636186673627641986215328655596614490193470280425171021358153176213340195645461600091564863627411789603463388327669847026563901819276334880521338212021841867982625583352354427363700039789931202759097792100647891853190719086982146431491163245676189911615122944753109079967148086666191330537540625128863669368391940809016676306203244655037719709283905910979411090373104071043307997720906856339620846174057246021483383762227822421403011364239524833935969378004178234220288145696322438352070886570997863532162107002585671762068474142631267446941296241369810650330596663036540551792822403264630857214678927264580783148309595283370050932482945491416343252167892237502005523293754004902881223120843550430248312755384346296633038474397400236397039041102692523515739094721514950610545926692387046769550840808100182909921573350124185856812166793001447584199962777471610722525419707624027389765365930070141024189259992711531151859018252678940078155529720427695141289754374836521362519957943982247108285524500916625553201641811143597839240182358333641751964825581179244387439735102294026945940810352898302003309555567052727668666204591390142059875354744104150808793100635317911406520491686964006534676377321518999826932608232741193180322830359336390500083221851891872824897533761942178775653562113263427443256003080003168236650156537705088698858326804883315492225387486176983102084409357114410444939476812595914503876242919132285567307208386114000081333731018395734217368573206019532821044118263726076632792994918190798390775346449757461314509917033258412967886583701726012285362170623796227337079911529826745463749085577468236963152858421748996663088405655082595399664907540874325749482013147013780118399820220587973991802542039088010045721132092708032878601553399922816926220762307215013645925310230311518912340688774210996128273338908705989839349947560724825664242252076740065294287943373899345068887033626233807986311997193408397626699832799087338162811135412055474752726628270609448551946118401828898566365306276994146017854845859058699617987929698342628574539267637188168787802903002366964449162402141337100847686848681259271934293951457346074981332075613496619727734493465291172491544334187634151936476760506329585639745561504760296992347637633808202087824692659354216931288939289260870616331106613132654407968039762468621644663479741340963225390150487582388605061897418802305991352811807523147588030879328518112402974715214602869798476416834469666390628092742918990690595341337769779433503705619778183310452505919687667380940874151771440736919343092298630460609597887000201330776120943278778870892572273569809881508483172265893375816729718425853586731418276657540737332756904127884830813046669055965226695738101362822880376397809266923154274658635568976917443815375937704475512666961241339186269157981873332783659196297054333114726458903732580826284014539771209327791658843515819863389134078797525876429861475795114731987090922314618150604015366193225606188301034032825305452241422854651075003372274242350822829956393347067393297675745250344909039949723586720453396802654977098925827288620509060056317413098679859798753405606006511862839546004576496419810918695182505233278419615738417790313329668897569437892948118075518244162245526228829390715605362686062230734904575162689423922196850128282593666553727810562854191461092304966518738780131555794475961046006153042084527122649080199562782798013509284169812673694586014589239559181484299344378598320529338866870170922155320147368863934492865940804322976054446516381251088141821028257558762685057302467531532265329023339607826303416616614983371983417762709011997172828557173253432487342628547906929949426636662083113472607358880580463046266130507442920192888735318448262664245701630942862047919932661646616749911065224853916591353325489294327309343409434094652363223892744986058321317768528920140625798634699642972413079116414258500581639378575441049118147686726215019185131265951818008467312874607358590818158432320141667776243292250169337031395941226451239416933227296698700880009118351650340104596915569211072145383854720616454718025079089715300599940984614260343570895346593673803001591537357202677266415155657426203504837679608045190575508841659190371605077894557525288049206195215300467691902582908707115192621783473458986866355234262727345584820767216338817646390640905457176593909591197611965548228947972197011754032268080731905049564874517691398790790799918921439471618958981710855831275531213048849711169295282496074704908004313590999667893930372304775646282792200352833099859804983083071716692601312891318644066954857395807174439405236088636297716687377327475928989431712711026900753774571596665222789234882141955418305816936737091282384014967957367793209901017383135149035871443320439549130966360372985663702436187693603280727920281439275414845785592400217202613706701471325563673227319272234547103970320828630199850249814190586189843624375615912537054952500606986704411324714002743722575346391315707941525860092118586015186752606517115200862207322228091416252548061905720389583018873196165505859583064210235497591430202144944534669526518418663498186498831405545934067369433719545352127842592349806879099094505231719622752821691900106310945321297324146510234914639849047346720661403610570699407566533461715600611240162702438891128790632845938221146863368847890451626297775818835392123873207579705552865740959245117978592746343947551979457133287658196453050061886967472257351372633668765791619820046819807085731334006980386402519389771137944600029101143418295390661055735421772226770249601879004815434755320364289996865567173065229228941387402260887314835099079705742467937934842700355427125235803696398736323361616660318001593563284714465191268270888555615694039882127671435477822069116831695811131864681552829123957508404643872380819864256729027451176862241620629622240772006861029947642919523715009493364225592932273363702221331034787816016285862082674202872790307732570749911150639255073849060207766015795995735893450296589609048112993416771674314550047838880142019515449260091454768912514629992434914265366906258081554191038887119723353004444953203031421821489475130147961151899564690331047574179877635532007999365318890302736222750141613010281833774680658336675311386496462533059799475769776045524111532226099548043609752484701400284345858701404708407138023461564520162447186914306724257057087143574952343037996265620073499667126505320183453291765650927764664529679258081203407134463458739236712013932294970947079145558236098715954580143245796161826572321120892520388970440744565719707164951594855651282239411095208553347837450715163391416247007779236280328219052488390104680632660994999899667314937697977063491901398870846527491874619916602127406250787966695463728944350286431834595502670865854750820858940539685143010987888908719667080335680877295502607011834678794485956012316991605209619607354538528696667718604063548848014079572599222967593578107248145242168244107405911261488982469870943000540968526786277128757412103280904941764537398057976525944871752805938658509627450793364700890316730633515773894345321747644759951457419447149759815232816284451152949648628040577415912579100690475582438249290901029106639513810592457381057249460372183418253193403466320376246625912112037970743203284401274834520135226000826419939403826695577002707289561377149648012109094169919989529198484538870077367623873923262686773758626874811222718404498510363437105995152054702758316780759812833353815539620525966811889110637253199640623629862620119784330195256973494770531412030313106627228485511111574606104100188202175528293131402622099284279524953317870201172708967262127910323113497996291916228848063037436825857361366657233342251985236677186955635085495512306142612042346779523156674240692114785973376962895663115042548140555955526140782980669214309080628796509157452606057891297543148530499543387437728533774749130566290638967248969059014636004169420838855889711173410853930750491881673546998815782849746093740529844864799650112381008312892020897872915937834097448820140988716780570228907186555717579694662947605779941239108046026485477510349984780459596105656642330305239666880873091230881439623243102629207096321102489266451401731470479752176731481814332735366894968776621604533133422884666087885409594909192594800650458465184248907821162222562676300355824692511182787638576828315256618421330586764914173547833211215115213159508643163080558792312575544705000853291545418839755932070794283918617181982056156339940549430818572977651106308192418748471640547428718783207017497812307687900251409007360559811243324971051515536264982137032068066840984579714176015938787111981536944227712155139591670555075828689604845217008024803242665872245581527946997438176428203903077246236454877392956363809045726407864844338212668920082572799500660126303593038689976795045326526767748869646694854259525940899637624229000516325813639506770169010186432705792873049775264663934094571619680442398074168202073188500879394468176629933490441711039115443754303913915134829018930335991667604131373173829044609110212378005444783897165280562460340276058864903983231509994578293022998660174067887466550312736897500211298318804532326087428115874638159950311661622095319032929849263253426615508174484278787925129568554629992065308771649848925409759049192741440525748356072407926391076511370205597106355883075447003381353584774831047870010929568294335489377789013760046152995845634111887174664590196990495775079696563949390766308436420495177264017167562125886586862958964779079582289698889918092030108895962255666412474758799077215210986907074851838262866636692052346592771559812586929707510640443305655260163941742994386716026612027102203540540900085083683559512547374954273083912041520721117745131143685915275109759104773941663025230997606560528141678878903893160718132506097210533014603540192941041317540675435106124274912426672030316018247671082859647077257605898403051946233738345928061447985409240216557010700692697738665524847134339521705973835598700190864713927717559918056006805680874586256144367773597425864553224512981620760487741274989760467564607352757229290584355098883943953595421237172037371081224352889257000530478596209225417156550258387517597216875553778021069343401455843164880307400161426861203725350849542981626157022216986104499509112399726125558146879087714311558640523403534412927641337770671114552064827341099548373235558407407924573149729551611970914227831621016298124372209075494710657056940568054441415878477874907943873115716411483486018776616037716450346549041596632338046207012856261493034358474178798876078269365277977830749774785797614000189508091323165411419509155742270602619345204638329676426429151412836778660753145919860267915317650544417448612763701022149739580860831117860479671286440825533393127480219534663307383504978029184751144195326065080836571847822845944917094041742841947751561904051193023050385563806536063418613824333930460337904318859651902803878453034857730567507950436507997976112515234674089513506358341230626117399182015170769526014130329992214782089924863622108958304594795958271732294375730128632764748496732074085319703919877742766421742882120965150295195739630398579751182526418778267290529999457030574212758875194331480174976048777215251010754637120879602681653281092452595709260345887002989399759688131795858087013411951874430083602955590697853156904911938114595358816117383197030379684803102559064751952618063974064168865992322594589784803438137341487120170098148535907949007312645177460088689536391148204652451354801792719256428266530697279548822094621797774910986786283534324913215040836613148541995323479185708205132982860593503482086748516381167477604299366867320998929273694340546046949970727260839907150069605740353095980585840696681210635936138863456118246810817709038212232959881685786417104955577665597009035562963403220814437470168689471021334139780981224448352840696892812371806203342610567191114756370129110665171230049523413701870149834259186970911938940142586626161784589386913983617209202154885829365885036885306109847113911625074373870468274763362794140664360465051490597878766233543274176140970878913498470714546576223091144322946780876917719384675812408558524640681988840391439374627639939227184493207061124691472279333549129478121042205093493792796639218881407172256158573078715162633374456919146086123571130452227741420114555549444881414520558605471125114350027630002848053003270074348546114163015014198560254537066542333052611480253784739737196769167864429291845393704454543704740943060542867026811963998177374192489007742794666802287647534853837487830345720644998872810370143762435221840373250767025464141018977683375426647148492101987780609329340672569449479077711817138460117238402651910781625871166441660455968211940947127851616753499729486919076784075566180852555742133263821493768174340613159342882633559593262346170134766480582532787682335079366348524392143441114511837859321839581182206593403376275600132431864528541470063373498929237115443413552745747365978335943098970658877705431700518128863348960528596277726505040781597522320389322323400156499696608349017891853736467912809713148946581350258202550563784837381061760739891700184483429469715307775952218309988391520674699741413365212916427348489773874578279453192237538928330119943100907952090258408343141239873636589322123499544722609930672318680824035318777530565619177261525011414147370321435641930169612852378503926401100812658017575550556540944070289198686834716831266397428496847786938720690935288480231062734213282718110447710244893849364441981799496026820446059902950783400443310652467932753020217464439238151112507236458519187765714853754840052699889122781076621231020525047555746621922344027330127209162673228187267962538445264675179338168624098463128149270890261170570314814395012937651779089629035553631185325972929267559670275989282715322602675970711850359474462205801803911617109239808731226610384891672685199899001552346885365958468353345598735024241136984691954060850671499658342380369617532286533317432279258261570190904562119112796408364645148192990287939370397387522832656964095462924406865761649961536335365788374908848724899416130945199290945727930320158999921522394492818068871230811524212775546753601418551465245074805222200190226155859832873131996985659709618394437852715653272113320427374166807692053819265417134482810848964448642669494038997557996741230608776290760464219323198371337682289845612963805761041950828871272746637240642171213287864184043732743222372043540000044517721666000788232345638728138344893672850003125110826102859664151296412301330112753537362638277904711253745672947279412502472404098016630825972785699076910856032406074688395057165439387961308854167463689949354922069594319340054084728975773993646843440240041704374396285842458203858003025476941905065139527251215543110055710818383086352119944071518001420183990566088759241136322012745180805066816438955771787044367385231790486086703847290647903092717318266124567804695311933017289692938388577645530096629735458420690396914367837033242899746255714975567799918875663569050232269178407570640021355183423332359853591455243491990093453664486775972736208822097434684292971103505838667091697192081387294516610744571075739157612140062508594710143862288045505798381518776555803472241480457930007998934458424374237673995037127520556950378419264068870752171178026809107749925293062778125758616482404346827519643246466300654911432331406808465066801255244649802496058270344147664578785179921126554096447408902908254778897577071417752385529179181779501671106006738718992049845038391956631766250873648608446036499465238717743305613870974249275694518248675848579638658513030402653903616401423549792968392719250938580335854542659674915841285835973170872595363760825175409017792685171579334593843058886459893712412495959576404687132923181818399833691864755463599955752711966973229536001152635131072742444852898953950889730961915082095158682861501624525515465570389508796704841078255633166742762946449843825730477406722662219612891696465162473604062941050918865331106996294615212344786820827686218481277068674835826945793655709593627013408129738047049118567182879296312132427594772047259487455973020979020036133146258188320426846525489489136936883748050608790344635904445910844873709587077945045218507705023088501553377571311758664646930606168633962455978964194920430220936947409722706266065897070037242128519390505842270846276331574954963735275199408654888851140894302022577553486464030354992696689038121739849303399550124237472236598513001834006501015355226212310866410934161793184663376918600388755926209798117582326935213939377560336757498264670760702242106489030120300178908248882972147589120170623236700396008407069967911451272620646241793149834475875252689831428430134128827261450588060884041441910853631062185925695680516030021548667312025309068127692669651811694144654071864842569530815354527243605720358352624392866004445795311938347092787313968661162649954575199386211712788615790592796052164819911693194548557951507159689691747510287248005242615337733146983115865457057020731554162776473668880156336008284591444495494569019159818727741848535583141047136584900522734825187243696909229881421469118677200899578842531140208326332841585029655246156944203309011295609633751924540369192684669838664030367623611764261024153346700872537378112833157626984431594891008229234201122285175827891691228068943692791875186650805077750160390222488709102596663453044717120660671266163549797362056004613874229286394870368529255068114856022408149428071776113342929916886767684331707266026473495630929085210407525164217829674401133793795232972255946813933668385992160046106748151090426874191856121964244285397646785614623466408988096145120447616667409792113559280832329990305022885691285825817948215941484202823002408220587991577330385566013479462625790846274377009329737396178293420748400663973557831384070349620222729912407172120483202442615208834735586779521766394126199285978755361506254213766082403469841128810631423952191432389832709659291675710163342596599341422115472323065233284746534245984647649072647484078988141452606185165506582386477846250024120729701652325079983553321274911183695080234531538061231919390966989488394338226521886684548393666885031967671783665094523058636479097722683808894560295175704072038600169987985485846054872570859566690483031362427309034516918639959555685556484103693600699853027267186562512638190856262045400787377730900500605464367356111029617470686184470379430660528458478586268867098726172012086629891588239768355144215848136638440204823074698837718509451914710657880083068678018341232173570042729711451109304847653185343174230584690528680281628901851545662755793412906058525039502049106187549183149469733625178821316114076184564940193268628348382009025099558230894906812668488454037584048110573314596038606003619302248871115151419133940881169835023788625772922241679376603371410826079558774607850933380882031681003220751845866386614274069099169565041952146846658828430128104721344899695980624680268571897310047486939609629217638772751643651430048188459560287666107997164684873876849945193807189803936419598343260023512335325579726344721261820394040360456330816789340750600995761708967750479124923254928165561518135101775866949616121373452116231362564078081621230953012226364523170357415256578255023973632202564796386350203217561577647068826135957993063381414160394529916962302345005176037693186593551160933157179023633515446756884716567293510402028967316805920876762514719638528229874263353417914047345028510440602422508064344211017005246954267215554273710220641885357157400925283977065124472575970758599062837153848798262798189975470284681728754562061131194366825081325698476471115028978724785815697707793560538827960260811528054861950850776408481404579992643922677105711937526676774721913937754809566189503381151337883654065824580573118642239576131890397084347679654466976878573792680830946938078412595944284903729840361939969473005789265486711262006408515506619398292585978395228493635226341466071354216739714095756177947478150129357564840271891229746579370149380284534806936591579208437032527488335409886667258968597360917807039788440792441702534725624364892374292432266604237190215031273206951603872007214548539999150829162102344329511797573810370311879909950569318192856159806405161608792893075449807450607524807284793333208585128057095352260025071925152113221496773582498769799382912447871127371029865112103980133060940810595033050787268579692861056637593372446285193592650952798918759867464198704078048194305659686992479206284329625486200815027278651238637400693548093515537079014267953354802117724583595011887822059064538117892815337187443380912004219330354642668731557739541940550019843598994136090336593725679458149634208437801104033711891489436284513325224095482950306156466389703797666083572072163403906749424126999554769950687350402523967927209852229692307350433538415419969265637451643823032740560249729164859525253954814371867304731231304027169425243138043903402346277198835405841415327359421053144033112756334415213489229842544651012007821892614335888544510117167796042060235656537478451596897525677845221345468551656837335837276360574378463082715002923075400754607458933966449248419943265604176961111912535025077389246804897198464364029091778466463361568418967240831514307688683940086400564118556798154935774874471381278590459374231379944200908343000376149291476400617613104709098079244292249567518179207897673638766664914001406143968810487389750113965047251377986486512938775088739674247698367747406918186584004138770629468158997796792023276100942462021797749635300190989014435750774370437930331713216043008947197668718323910050878481577372693997290297024445257796144866993675334138517182244472612094890729267200198985634623780302517304732252042413079983415933908353321307065906023843206752681986420086269515913885882964539800630180006966115155962153254810513566839802294032719766993396000539669752344768332023463005015540120873220353130121632764984824679050484371461263128368865378685194555711625897840985956882147545165325819655284472264502590163136768269061707545132937388350575268843904442382162319716117111849978334836446282680187374753572299511296930509062299341373995933736157159951176111771062070826597016715734117184781970430266562779642510915679058933991518506893851577357360522589426016330028695380869539022138659915592511303863745900396977760237626631321619134120789824035382492470627503392885363611089517655140576975238444028546313988806416148123207472424352907082359325104542297631278960964020484229945146345093126083053471430006519308547560136026968254352187087630960209244885581375343623014691201609971130779644141775329515260135446252324681072038309844753324038308617417829155811507517760408156203822623306555379025289837520024618998221576943991101881826734240209991632610670594263815979241921393501512348573866717127469944831118237784832247288677827708664316938073774707769757108882181141677529891045947756133274807881893763992957570875544459484970209596005145767809063976986907213152895472501011084534080719326720509269902468814173104735127359522024810639016311480821979586678927827134733954738872766758192231497985592389231147431733942411698410798814433199178989310581188863645351612836986344167213169982527735152786061860840006679152237904686192470711332387731855356061973496475242628901988996505573853975543850845785315108522198552131320015511274386059576489759229247776704441177794109754880254005146009054502140134921290918151184651761346811923384445486953445926045092356189166588853969276233218926242088866587380384544049791516965819197267123433159009588594704306562757980495434061128789590480954846389191640694054503245901772503177299363528849101530174210545701288665066095245451306947743583933441281514327116588802187943223726391991598297452018288681858057799933399952418934528598658196313317688399447597068374150567788779721863344798958480249176270190524488140692035697350949903902884962941147375619404223058787588714940232934867053667613426409022837642434800346463795395890970449317456819398689490735981074950141343116304869504717330026478168872000355345160736182323926796781825373934715069828054435364938034612241839523415456695697029202583881659389160641702896762196690749616048207197653654840487949559174575164605614465921574412642083368334428424657954049001370459615353406073944111422804858628950715123053951618060554384263220262905744600135564101017482317195932045876472102527034851919070304987738861047637555905869537840298325451883908974268875333573971077883405606054773933714487741591182833825813459886504634826718897907009663689655865250827739090273892183936748984755677660659219765153559330675754495451334908659436213706267076464404712919709577185321195341475805492855018194299584038116487620515702150521711145987996951749500090294582135900998519902947229221394830640855703996625785758427373455114720064314856239204237921277191117122796417707402150332080278034048376150275033334682026618757679970473999624248779001742013814087777790279044261803478690764260997525086549307845786837092853971164544903695769307805546940486186065406321801610189480340685638743496511721195103406315975514328417997864789757689561873738162400667448307356503278565219694943509461945334181347783438848433348924927505212181218487891239212275405277589181599932861363895365522637951785709540910332230594480857902919871863482977958701679375578028471219868107982110405577203099034123470452231775268882076156733360344060658514852109841852643430035289041782606880026886095598438696906800670932205506230193090331462850974621014902812611743237031414547269355865777609853202628481254714172305756018900827093457216903583033025802615859801648968362093061780995524969196303991190089217598816264953760851682850937154236798991517223529209453903713166950028520647394037738637094371699549360938019165810768616918939321466031889060683257435066621410432859900145843504979653070716515150692270806138312131085092649029731603984852484033172858472500984698154234829904355528071758374417810350550076059537153069862313551244670154887566830350557188247887512261164706059600405684775970577583229800935111606956916351782611569688953403392720043124957514522806821954930313457112167810939788200094874610625521522393854586709127552981486075244977828581337644547866153085770381660870154535107750616038138921895412296740924499945830748266748678629460466628189404355744400148354004585411779717002590905726128878966640507938298227864719507853654005732072862997305027992648354407536195537075333702438594099796456619094109867332285103958008655756672145133627486018288036427443329460017811834980541724598310572007900794304729926854955880238034701025717138497925572214137626923058434039359568276822349786624042296819374057423194981929475037695581208462277188556667688498141558802555842023772290664688432518302758769516354701938908845221786351608241373930512493707972954868262965880025300945576711890336006673481614795952032355019671661707708017920252191996210908663635585465626204942746034330658269307421861060639831611308037530305897746382151837719419886195543844471697492986377883813300080993160989500044278481501105166231582282367046517125668166855706328806674426068682410017704185073829709234437770082380861359249396863564086131647099285841520359924306235316113742095368305779702660526965595518146480878859306591672728343724624430552044475038572237116287957756474632395063105481381314244560163297557732475601800390573943343607543373684381964096102457480768360385868931276600153704115021913466864667837632119578136382251185429974794491397171102543631847799118554365807588780296013581203624862746580513489789434958007100460508335223814330395256318876367997727481088473567255465571844371770875460921014458036807104778933727294307281208530256721544785876079291953868957087143559955335064906498462793708647152785104108364454152705062312555876596154505203652122742794472637794825814940134718318093214796850472507707802654979987881260172965746074486484162140596102248114907015432738400662147029838178223245515637472533140348640372901246748431417520064422922837549180096321747637086573583722135353247115242960622216560493734460245684018612253604085030306266785300603747469335423968766685243452460075251181422680149914438770431786581553840370953247897413031924357742557129167900556282792325456267244248224744868334544581395270333059190792461908423927911727605109591287531337266330305575301295092937151640853665291195372248360688073781421754922976869156466786317905253223963308991534118088915998967514482476118071318536836246640619760105186012346929593418926443588044689283740595249459197886986565247406562203199817709174351749928406955849228022285270730830016209463909731038802856716328062603046015911293556404191018886467728446894194587777326416820367933312339333799097059301919842751201485373269505385870535030324639509795115710563680239541996643907909437961198434854268897230947787864528200997575395275586363689788284652082037234336738215117576443059437816094953754986777732606341389729238745180479085817701157994045213700034728057595618691940173891361419004074948371782896436695158237766550348073955721061750968989650007646444165095829752221069314963902812759393941400008670532253231236661956016792115660618505653184893778969692884363532044169239440954849851296581293082786910658188738090192912760487974083652367559965244566170999153653580371799181986391074534649846660981753468886509459554118724683272468861516617017430350810648065682833671576220261036867019995304111251580012905622954531969083573460730530952641621455675868702893908280259755310780110127840112348243252924393788750547801976227050529776955298412279912035361335762653171783065472365075652063663808094409841256583737943711573676477263501948742010457566506861546996056927111031677317629676727432956774837123239271278987233517868770428642759508415440200667509645103940905735668261147672976524245399992724633554109356081751523085914537420477844120632896070821043073629323396836660868709331626805422938871031817656328753198329308259498989886716699383311697900004423983706829819860326467022935384388166160944813252999177117771458044895969962730462723814982090075725769174528310281822663696730299702496930172694611024878150714690532455067232836600430991595922414587352884444907081911814872308768681921545621522453423877377700201347526810215035971509413107944027112869859977188892912403519190477918574536647601712106574534993620791384774204333349079711815419059059778090863224762265354468048918492919786387132901268280886743628182762500260302376359997850524028743957462825432745442792451652566775006978069120044088555223128099521469567829125939942037212296143233750063887563324316932082569131775931387638977197202100551796123103033291825461926878281809627410512895264209528174748437379464632705667008698190579688672352726756362095470895310736394748766863711735441233739237327136674733669410960080427281920193975461667087362359979475780277032701924526854974280206916434369413013540144790943757490371625129344668759584421800916206983002357417685223077373212767009934099459250225665411390263010363277085779969846310679111707837599389596508728549636000160667610367175266399506917931954096775717741216875187266864976733245479006879633644432025155873886746106332865824312833542914840908234893294883330801081833008890707640382008181778074706652233228006487751620125864882775688070764435902065361108067598428440326520528036907425866869553264977145170892202454425774580037108907233470550128405052279416078920388425010538332044524317598930907425792974949205687180660007419225019859060750657596236031314913909583462116953480536390008948313685032628149212918642940590250416304073418835577604799688044247559719745041566731784405674430939824177996535695980835160486587782417280708166667916956240472041885074805926808054962864584121563580086598164498728604921273969562399300124271813976627106152303153478093344527060100353347722506060368968604477808231957355899183302076134153368870315645417640143172596417580840298330954234159179006169815925531082108996459689713649428241142842255311849076282647396770147674429497253954425231183303895874268494037346947553877814544081015578084698461563084187595546372141258442528866607787639894004494776320442955494362260392100328241479107552113543346222292884861026537624512349143711597261903896571622953924142782181482219612984829380465712962646359374916764059347695591607597887103057528609655460754131495045358375581574531213170142024839002720022402233756798492068939706728608994467858566152378121907747398863210811558978169166425118401514009720469179319836865230450858660552133784010786424972950075269330382271505145744721221155605445043335216792989262697485367789174851669942196217878478461853797434601713110197132749654243379943576398465905565990301891768347768200308658505873374108618507661075696363161299305431333508141928513622019652036347418046903997226469667789009266012862854990404326914390469249939949742767877151671351218849933861307012777045619699129515147443096203587138430673054508565173099396256521661926084779922812540300436800897817235082564707764277106841526866621868643283271259038714261205599579794149882108131038431095517038415994203614011351796367878979576522782396284885755655058212465494590831477416767657702680987664047995580663650414679345779414840014427121955792581593542214535800936703801709905697591725381123019438177670244335018457568011775025560899914753853638707179020115322513357074347482660511550046931142339468417909671641205964396096997115154762954384489615702636144295295322217077331722625755705897259919337618711342122525694632826529104823854257851792352831347998910432322271757875139895482911510938954806777896755820532818458868961238308689207753105266544609891603299114295923399019284530461930786661919982403791398017514789342819044095416694671174088571419809502353070168457765833061550161170988897016514190224986662858928268612066576737118341604614156840805545443770842650776637102996965613784768650205455890932679359649185226278855684233419574375612691172113407483139862865064935488055498942405347322971450712739774216885713278827931254777251155661903243958068149050357313740922142293824828648751438665965615381998355031099807888057210875734890295793302979601683007112794999205972974461385830367023795318125650133562241730201014134848835717651737455340831827379727335767427430447554525691918548809961304588758944783008969452813032416762846557222746370889526147693703507683280082691166730669707572309703161354146216177857202861625892112817383321946219481308505783626226450314202484089703169919475311655814216252391468244706903586570676030472839224196598537120173823073492224241959558518202996641828379610374383086838944290265420149950636699085729262976486731090354436688505288689770858613151533747809166800303331399670114916549556743221185459153598924528266600586151635528613714464302859016403421377819756729623517950559730045865506779399974250408833907375690340647510831898430474034747514641292334841346697963648106034589500379832714629969659410183163815151275976775324205957288903258758926464220389306505883310593352711385338167157515761167390268492548390648844646826154107693296615264017194759904410789502083025160916283897157987786596431820495979728029814947257391408910053800484356362569247916735999781874696880025342629498076465738347378455072255677501172961971555811574585396159138945864851052965885761752974717439208401025827755016263846587533902156308218766999903972657909454313645798077666207332009584392044720406186765175856079693453286905204732286526070182505954039632131955656924607107189599528419013698320759787422038970198530038166787919437091097942275270460865804354378671313331028919935418706314240193284422299005118446969027454423013850791824314608812780747031239332005750843340790101019957744831254377518363547199535928151163872367916317288361340146263932960837290045589902114461104820164966153338171454020092461856293053767800049331117978944993396673587918034663233954374495876089677562888136710111429009629469225743196841087310656870735084607809523556962962627500252666658620857532253409331564924602392459984045999837254260314435003821806482194230614288310749036698066526652564644692540231047523844864486524777382676242361224547871674210374723507100909451818432454689480972007192017609860613366775738239221024214705850922888386060036765843815504411720670941436189263226252232979393422259161006472934318587732219069865471574379755305206361606090286208041589619284780386965738354406900630881707857756209960960017046195203330580736967008289123731989243672672972461571581987517429664297525748630333766969103609638178999172612348996384227951195623932167397170827465641336521431427659109288089804338509940304866024766062659778095764186804342581281314325816810777591252099380428591920535090731020453130646082356412699393532354448248624378250139836679021582972954610825008849789464786647387520349821027154114614808367312936913836841140597180869974907921845930832939063187209231736285757325518246046963615720465929204243139060864814444898080849758273969488602823091852079566106994982806285786014695834593434329115556305352557113320489678939105911910332776660528477676814709365853973970376462905664175941023420333011137684043901295106891107324364470863325215443224537028618415575959620259772989838943961428608774202012186744126346553636157874074480513156697716464090538986564787515115278068550231399139085653673223097597311569712249706773342278840500314384331350752683804253746940168520371286639317022001502970930941504661332171193845080065731913538444086806821845305813589719514512462732599124277619876002199075655293527345207848030127343431596955010854126201495034389299353307413031482532184745569025942398812021083574375897039106343022402259298997815698163133771315429719833535011097081231906261564635085860646616573225391147438335541265852507525496738073908970015984710692978808895248336226154757671076885630094616851740981840290710475408622158609976134298153122410269351972564163993515256812228966977792894697689141552600612425230320375451067015541643939820203764604273945994616487842223353910036855041972738524503807218253396369758456386673480729850255936796454623022390746405905784005352262357255603912534476180457079512672350283987226479878010854774253697780515420810515239869777776500489200650768453512253322926338575512949997061501098507280186863633023569544048039066911875683309021587866491187220635641190573612309674360408294024217902174290490799810686851749000679889771562609857957633308453586820482764306658497824554919001376216647000684546324456179453731476645914529943286612644320543944403972081017493542378892219883669038829073042426790362493318757075389651625870744787250969574645708868118221234999892575731221009928816805728822073772887270742507228286671387444136168362521748961351929435153632901792285475982521235756161740006547969594904747526090648864336189547783979153907993366110652588886767642952458601792825119179120628382351566062498192727145355177410473951711556833319512859032649850467454082618272226377832425969069461880558829248871964689898050620032996062289446840341306646349185527686709534303918595204604941233152139556365130802430614834619380655456149281144745760292469745534975794903438531551140122277141048328927389978733286923455540443552645376470104252420547635145231920518231882634625879009397302870722303426256685837322561260091438133179128081451161975881272325299323506596165863114604135373216879853097936521255153498221567535727232641673343885852679310619030241744151285568674323644454561002752561979479197186284218625440388857065142534520120669337057664709269699589532733829583454441166277119208500767987380179390167761062134769186433003644217701619199154646793285072820001036326861833371797131448140529091220636062667930380608881807049567850003444054645791682097655421197541978866243928723428254526022164212863374274370989411949830843271504723810107702937161235843402347719192703407502169866692790304616109701614951995763849780309953681898398850009127139039364308672521331491641705235692184174087286884842671524053382169219969606638146083437123311315490970351207267662519990843156173996556671145017264847953318538859584528237723333120007092862741585143605897701651011086543816906599137662801024200207766942474143803976773643511764655358986703356739833864652279254007992300053820617417076829112292172115149500912434443256442991964792561641469646534706010772177130744257285572385814633903558525020549219212066404482110859376797906790091350353343474334094550898112353357773747152986308420233613777388467765679991343176187521926037265407937789186672399348844615268939567441387028934198778845278237549957363059309680113389804208116675752270129564497896144759927189845486146378853791631660186110062045611968689219224700982889061560982396350266059047922782538951045785827407618315470684614765217350683547436465987897776566856942640735332864049830103504588566569457070559862066853425979587856731438752190028828159172692247814316238463455797386738564665270472695648497771814603119999672947013348484663906703406568945679988537870039367193015725557516673396116444926994224295703125233490990597365733661394397013078526244934740376875643344062630315166815693284494311354883588883593362089242431694077660614353686241120244947800910703162527777565636840294487886837786766945238266838589780486696844836345907933184267902219351410763455744953553455093982637841160147509635870693026905531587268456144187973296211769149501827330625502435536647026707057031751132449751003858335159901971164761738036206293150606980034270208475999187333964532989651750353091946149138976416628741611254802008396079352362726955617072634967970692965047938143803000015562770240664632897922802464906929852172664669250429744878076345483200285537595108182831302278238254866082906948611736011327356993311519275635981186573054342749378166381000480488755231264681138035261145615115515623500219845605503683899402312529407415496929548616002142195475578271757269204860503061331435113199452986828735523026456295029121905507127165050031095461758826741383947001455040038966254114334556547812597267514087526394055608023647393795335083759602352796454388726309049214134837100829692255885400745077072002840632195919094345385358965406464239182206552576774282558221168358590191207344752715483000795130317161189857963628125870443491329561836188406103710802591579477611589204346447058716466661574740536617263179848969715425112288768812032764461288123291433140886210012293388103912799978436109441199134984034888663371602237737075303099102476730897740445325530610885845992995511959646620639378740098355400549647547299375026126650713290242335829746330215382190285066811881228698749507962062955352969998037376481234692118397126506856147225425420312431687739067752565340601347567340299505012298865934946262235769280613689388712010347099885334465079309464451591918386932473632208950871569648564243610633247155402425998214906975439842631860035893488186488511439551702840519244077353724961354832892963670965998583329541378361065611481286637666354285682988768475138996346207963310648257097857592218762941296418453874925198465584180003820574717537190796936156790686634116544791482949879744770842956269143928778742316265254924529168771506100889246550970402697922455355918015015649299577643755420533604238970892470038384856769695670779997861699883781378545457937772437520221507821754260778595266913616051002320858701330804364033145433205674615705145367750454447229220875860788731818455653155728058563098131725236028741540681707032457327303074819838841859637585231634933801257696148399201500037264398138059316953243665844514325032380732067505423917155805766696046995555173533945847527743265273690167392450206618213197258224700233033231456949730546276481569475649932441869138463642596441100999583024573640010220936934269969303595388866615144610355971028844714938422669218724196631391903328786620038707675274331164328293595735376566965934940293725293521341774874436773645150971828614440804015356109688396863814571116554016147334465545254575201289152946696835534638169624887221974594605338748384095337486783554152223515954663732260434292109462217066213819262919686644021195559793687701385455869646413821571957360191423120453911250079044682911438669543319234293512241581223162415447269138029284868402073824364807942635816646967475599827760113822903019590674613142535291693558074659811472755127723836611771644501826879699693097871190316794858213722057636585965855253939863229631220308405900001715487110072533776136613244625700267724204423667872802931562443716564261228271289856510796733259226217788491316764844233084665935316374284460394385676362231599369421753285810543056255180676534540394659030047877994027523163898535133385774308641408429627356519708842811701589132313207419659488690235501040276424007270879692634984210709705930272200525218474371905061740735026737049016542052342341730995089881921417125549218678640293602224005353386730066459220371993331234325704027828039576313741579782638652047494400121222764944043884818691510269302564787350217645327701239816162340857719555736847572168731483401670157029412486665868431263289584378002170102119357016616839291387754538490710491950926096586987220165123492161630796428759345340182708163009531372574984014457066023878023421564640009295092369539636607908359078703174880229333431548952798286507476049534343850622488608052859090283786295940980289299979218791925410693222071442980291716359231877439087690770286390841143106378274924635543434078921277370899996706027447821963416991208526252688549147363667775127570804538071636865349566215311912080292871102746345100859017017402368188564250747737076713540853425634302809634631749413403515576534185079226178314905162258468357435328932617820057415035360351234218692238054810758674820394818736724142179354727051051076375007522658217963257344399330999711939390059378633648381068160967007020912702630299038907445369876279015854608135938845702584966292384908974505273261240136039257378319134003624421397058722754817848941072007238312621861138627854007867992411999014805056637644508901713070660295864676852028130291255565647467496061777791396901518153523016103583669016968541384437775459029590559743987892126757427830882433108253632584080161882106496351652127917161860913596107235267966068766964048899978728770092914761965365123909154102712690108324897127082242458481196524647112770920856447570383579158662334512175835968969618616624360714516756293282296462496807849040099873992166539761766923699514709736755314154565797954278821108640188232121360272609198559731728052291528988808938261972875173673816084565710283919485712267077692529354377533817514656661909593589273718206857871565843076457134088304287596411382299698845182678634791556311354046915854902087812034609281005740770809265102528854347806100266615856765853595539850955483280659408507776288413114413792363073310940459965457248894955026617702339071766157419911171734543909673534871520911899947469918593399862633641179759394707674945035343416499173668467471951144470261307498204245014028696283921492669333168138883826538991270785520781156471397903277424383145019662743414302115223958022803867908299624324076474335531362839753426550182089338107238086682981954181475375686063705764467618249265216011225706740156956545643251296123150282654839081307935546860380548141232601406790992610705651515863465144770521472838803536499331463016566473134942184726721082755606813377536507712478287083247256974033503524134424354092114244574706385730472766943136009613154878636571914514000537201251811998501100632674647792136145199195452312921653100778685829384163086058198908416502152481689203113745337702538972173285291499038471183961437044413770661145332499186188775110390051263553930772918518377053467297157447049786112956638423899282511019382806584440122149636354703078541368289293574689101638377888947319911499244030654019837503932130382183688400434941855043894494883259948594287550169772269079480807995583439171096738094684656012201959248557795861837615420262261975668553410996620754919048297610992458565210675232220046761469305580897730677620727754731446475194315605478326439165060511898658646778176540427113493687227260674469596415142608153854494555441988756568659287532372876880126246817974497575444649135665687485761118836061473214330349974362088919156115162501745295320761167777358596477849518974639988998168391464287258972148138610174163745265848726661234408880671370596753727861389851002564908737795547591080797631644866774033559877486667740481212383608863519043208055963728081691313320770687139679797181716550681129681423871242172086603550243168666525104532740748014994344452547502073068479044219694334178226483152599456116760824538379189059724460750449520621520924570885566696374103998002377610415067140017264288602558653367549743775744546892283792366529629163455299624629549784812448745819066534166098121998371820074513541461480040179026547064664057666934566228875153740334897493168278210545359897717081783210492417031964613480613513942774408442584550890153461424666337722851523897761536007123318254260061141040035961466178872536207955268607529661658467529920062522237136649330948633314843350555214084396058235120118092731570620071368529784048124760727262116884506050290189083527280017468553620634697274013639022438258262176705605970443356863146404370072852335562818069918271449816800730189649755729493131037633628330934793410818627357380102826725617607635168885567863501141193951383183271107171141864242034527785898104004086220016151685375181103628261438871366841763370296987143088049741730191915640609036208930733116159097178897553408753579723483389079221672721098312750081510014788869959313690424115797823268004914956197765262947027448684581680695719086173253164620215015422458861058050767297187441983341467653684004335683841364028735374418849201489899417733377106174828090777067374015759225113712090833118342601308794974339693221912494777897373506019320342394529345616669156773105632047503594012891817043939482413683838502420904129283964886970203122180167004894872891513295653338245904399043684587816040691807755298570757844769911878707288053147286141578249339214395826901557042738428311130137267970774675454125762912613767592989685309154928741072293226405702885168210263993426341147294066898441456708865290309620267553035327331164941244934609381026651776658447576452161901617529735059266598425402708903071714013306071609269885585311292265961116639837474332133853668559180762632529975652458125815523972073362110788558758502168505051419003628398105532789236215715493846585672415086943049703158645296181793262204053450792866634304852242177443418043747461155697299464080957297244159812164870691450604250211494437059566353471790049286843894417068883801724857116959306666342907233947944761128191591113592397930665559178391959663271269638850839445433046497743806424418033632823689577572447356753658468760580106733241993680040277988602422026332953795597506356982568057441469931811068651089806008556613120561374803476329082376446662001853605419737015159433487743835300974283530433827738655505380114231604214223283883706025469615914838780871079030350276630936102824453209309139393043015648736548002278900340219281768603031380598158320062248411026086745711475791112832373086029246767338030721495854039949019807541142849736554118761196864088982656958695016332442404419676211290136117230533462035084349936600018753379507203772921671888184526720969769008283803642503271276534707070406684153807692475874936090395980176302660440772576724569325711053454585929130566379287565529695971589602437106947916411058068188532122709883058944617703861572182713171341895530266908631327910433371660842253173233936868337526006532553673309107761660661319889359290613524942602892909525605526880204154127736480738054087750491958520567386227643799469880588646018217252873622974751757607335494315474824729768704530278361482356761302957947592056526871256768613092169004528244144213275299861772146937474768993552026734041816818701189814870117475360756851537247980440034405753108187522142118286864480412086512451811502611016831972910714874000736027381572462633008504286550908439443308091418736577383481725230280510450117585860829607951940767708368488211533579529171288733530530815387356702991440060519427286031566366419249545383461449301078359823314918444754033322160606443254326654426178798963809193122831584616518666957155502753047086403230868426459427763882119156218513294416460783782552403084357564006781306860732038769175569295018094875744252345466463809475823148826595607925579204021579016614230966372386188011025586985982627279277858260619038887599731639335611753978504458883570909879926734046927206230700147806011727217494116393749288990634258870584646075039703042930735409308766025112263089507025156255860955471982943391945766729888536263522874276226754326259292436553756525139533854046829603967815702081343701284941158351990642232408148374135082597793625315384842669708453628517766763731212196624915042625042618771419109900249823453016467583690992543396759270576450384946240825690164214099470846244151899483890078527399954684304064903490147675074984273867309548266492748460641669674516397878524261920418615212705446939436283461973013145791655009056039461701158308124426266593258920011996719430989880635054509209955454476343246922792797360115067514698885793366768676312595117840884016337501103376860955515721451920441581670775683023330022534181543901739889549497757566315408626470374694397978389182800563770366802991288026395856181723099289676485011021388936830599775491895148065649971922134560959981199216045550576942928323042637843168703269376181680283012604115293798250291470139552588330982166002019425285265766394209894358030780963342665467133011347022085565674616674391550070882929594438469617778011481029900404522130227720045976648129408304526417469620970610075769984808747898114102659554182325850473188327216099467498872166078465966075309309630095151654900388694989695607484849494582977680439900159835056513441923313779346513830214989743163537226639156791218969926242172188674967688252793025408808937273787326835284551076591410271424229784995815851837913416107737443844423371213086012391347229091617159534126580626310548235157184192584821082082415629065852469194658899340263060674930271064576025346181019029417637554678397605117238526460355176931870316615369808009756790362197611559428772373320999900888941400805742783174796007762390989078321305664649032978775605204861250137793728841310924112668403661130228493058660506219635502424076196509417768624064832928926304426559061276199279587686920046261991830570676267927536145643457182313799277257771330142024592508740708943705200950126631242115849799611540039118887880379167772073413705359004408590732370615747815141386889644794888745310874496426722724117923172948054888238327219193811936016512977979792574357320528731831948688115796748329354938722057971217582497177826090171106554980365652479488493362195436693322372150507034138511765679444245827659890493812782332017411450025051584087720708146933903482189086618232089825251461951260023707680653532042889643373202134297205587792289961597623802517947670361556308797521120495915869968486038350025020126427073631424889551910429652021189630579877365152874072472647981040277123467659636470599131644065391617088978731981581021454208982537496681767553319535440047616105247828158427336086866504093053738986786407010973769734066231677481767314061556996990185030434471045458177563357031520028659488720344980139385733524978058217382122933905993691667211783277221843043172516402581969824625941940582218536983952049198686886449385216249403166101678364576878334742584612249331100736279267876152742795074091324391563799531687243209033698553988375061071162411624607928867840044055217381388680952502450804982416433135200438080834735753987310430449428819540122549975856176581480346126376124544146706105326306835023071421142268843069960216293806649994174701671827267542891205065511561866840800591162565551965989106157722686180597116626671863491518611296719422383513474584550272147879760796526222195854521300915467022452968667680145566342493489474419251658656644339165914180010003975953076253041757709651751767300308934276753293769973143668260433866248131740728251716935384050102910184669034973777574368911434674556507232621530827334546709904401190554409918965789971163026870107453754651344007793474268883787027161446668382873075529156457859068329917647363794566751861353751172899944831954935443527714572182588411607737318479269765166855605817204737851698043963299713819199792904180173495416956930384550696792627904557764823330673352100542086513019552921376170203984593032170962874668597683619045236680582419929685553818627553106981637112667194491822061174220327672306755266567837713343735721779111982953576300702347522630538316637839397261903617806437723342950606627907181048026741236273540857481004812485407607784557990788838252838413882891130574632411840271082407865793520035039147787876465968540532023918204883934629201659905772271826658069274535107773390956067746155326223556190058878809500884190217012667880310743953619135097999750066899132711713759457573480380655828161384894431729028101680216603804245976979806015273417275354279354495218647225395311215667832037901561583828589526296653594930432650635560643340474476178215807443908528986569419732014132672073605579057447505273522414983329406317124133184608940791786808096330885108606244469029366303352062155725114910682073384648109499041553169759042873667143325427236126551125701659064107323550045841624996715956674681302622493761046630229728717152027755948868696853604580960617891183194222283193771892362441818397861561768201801964481088053920678824872958737401188755697280712504396741303611673303759640186751068231085049940402533102938285230088118787353493264446230668171890524539544868559922549813726428298993553663398098997649366906043379817625707791862728226464090052586941512330641662282652415902057038834633913220656346321776417276640139831446617454340239493784675848806863163805317301148158768079061846439496549305450510711263619253309718174258929634049190054062115632010927720413680270803100553962666910381402211153747808215813499799450831289153078519806111127911798047128710415020478423912584080043621181279190418702482833646664287476791900181727907977431876184131302281763000812872660464392771045589648528390294593980637298986318865727203432540938891930412050074489847434149350302290484117347961124778996941987218610750746996496978167593683657244493402482519820092275886890953720432002175517525902472535502476021604461066646703533220368944502224641843332587396008606839178760291835761404361783651399712759677943363374509676859822145608707068190135487685633870134582262062464052498926461033076744756875507135580187985850001690397229433735668420532944717668676871553714242735994593299760916460180793629371845341477724960938593523811616273780886892755611623146631221445361344441120625629152729567756486676820765049349033854641373834867758937652444591540780636330052362898500139321975660347897730848541389374986170099833596525573994824202505080633701973189880347637363902969416212066311995648686187627286584168925328263060004000672574895898884286831580518705038258013669708673723262926683831221066326998217903191929924145967463100956724344495224501267557446918905985488497985961176583391719114301136178886632444902716457323327849757741007795644525816250470483169751654011987110542206645431550135414419992078263744110833087145602146296971313722506955615980658653929554677120769489625945206108081575965846601257183776143364500191268100098018966869285036483411596669359753676944729726035395644935719228855148671818905823171419481865996478726402957348249907070719363226908904565510063965055617287158530180269582124116118091340439117620699339273688009688778909054667923442105506338875509324595943075017516233653393147785669516504374254255898806766241691714573055128065708150667190270074297148831043790297186983583404755094591096424159462694451281910960085072521613396396249374792651327072268570404147384078877721066455273044125849170476691585683772721986897600748052884741319170524834000809004547933132860738574441538303704330539846798716973504642223804875513504325344329637816962043856653574738315331259530967914512093292841225723112052248259281813086952748581253443050513069286168894202724051909123171922829500735465916568936270523206247048022838030740900102739741917925192644510776711488096359925858291303867293795316605772484404484443825904562698079194303377319158304746406133104703106093225097375707184938204151644249160787529372463720363433716109574598940986830211124636853975246780984102426610381107668646850375299013707796095271108842520850035756910374528941929280343012175095583094964019838457580325242947736705922560793279520273791721925256605951336400455380699596264391349513822790999469040595965018288288819259072148680257544971181274384472540308378850663060569630305972505773740325473604649961444277368204765255276104970949083818076279197737869651686562085995298104646089136085787395816004362051603007052645880362850523757552457284647630025356655703140360899322489807622145758828851110868343679562463914017216293287447187677267067749547820917406402969373752580425125224340478808277238165320151480676395163894828669683345402600458363496090567047820969453585176836289372555141068643495680089721402751247290428471048657942418375001861649881481233911150273261535319849865261973240929389516936621326543376174405844523451201742078257345599231871602920245450801991773304279206996175174998324052694586764562292779704522211642256452422836975223290520564673226796264138553960822290537338208775336915372335272465543589246182998923084352974497493878819206910513412846994253997098544272303457899766215681835688815658351740138890258396769787673535107210295870070385544085043627709486987425113864249274931081295781253803440816683444343968554788124187542125849088472238498549897515097356135963372906299189031642209205756192662962084150165673426709661921456859365606052424315358310352174666740016717179899394951796590246842957112116148975410810333641519704777776110498087593697472361312921642923267759150336262002717191859891484013152493398949324195330003338285423090512886919545749970575180716498379727711412720938055314507786505621154785346706668464897879588145019495409898752051157936504514344777298434608855456813357452500541187732155434574817228220504764878442356715835535571835467742013612766214944292043159631792819565073294978659554739759813957322528804353717016617091353426573598942584379783839399581598586572961978080578390032674439823720669866989993091454856231039572435125401883582734204547791231827333825643287515704696733022754307609276604778571258744088387662368739662131894452412881931795358576953964457407700981075491193359686794599339263705806198219447343472392329705456974910265246901749227285148997913023980722664354116679638661859660069901118430468583950272720585639181567974507423723068972836857463263614804077728418375920798289452622377898043807537134873112816803205705855599307295964646628943429392546607239621026973219038033644980440399498463011954357066000882364331668192314324772489123181655042950889139196064548234665036355945957211366140261343494894243748246349443905824989480087148160796025353668154623903089215265418552669534921915075770346906089666728299906698434649838815819712219790488791518365764613740559607058039559379572112947023836997980076566244020403975841884343678474849007498086245426869185091892092498455974622816854291899235842632507530558360895558105427871549684139640665631134151753245780357237910831997409253200454735028646947462994822443724598431993967569328440941621349924773718479729166804367917862792157293964818644248819158336025926334565250734361310763904900994555608388160652714010131223209548774251022246883853572813276008331984341107067023505515010451902816700337021590644494918355561931348507826346942230858122567711836737933339503212711708871745899908560703578448974061929477792383815558001907713862296967104998795153062038231237888574435520757083402395859376492636857174704491439437321826548208143482432100256683637252699392079511387424033467784502911472827128746669722635877065113373129552611889484545931319923577357735420473270158719575008976884129429127778438327353222593610704816237176896876477077738948393868195496437000561012104972969126480160037911749966171671005236949922258783395778455768251570417015776695836837029402525416489767420944042247754615331919040791102133211299101086215911594685992107553173202359108225371950735878931880234385019934010587525425251828796458093181307944651736342406115919779904959867245821083415682830344682510897383307225365720854229048130694562268732802881680413987249821734258353344275024552744009644266277855013484195438244303653036375194569980250926052738603543573372095813748511552271003433075496354795272785653708171243791682281267811468083642314883501584888606645872879646786365023287992431790200657503270742090831591575019159134446463402756497940435117979926988582097723469176482997824680993253933786855391897584825456860342114545384461673853498034525969656015215021349814316911682449637821795996208820575691932542881194439659871820824217067677056266327656708351371883051036406608752665970084746261381691623185858289169962474604790930659734899247317526338558289123603670667921952903322866186053895393160310495059034301980901255222589067019875844392640921760085987069926793656309612035128820509585050233710992161695917279625712598562888166017398984073045881492619871311397615030315404302828673351441271943721270956525021021888201959577775853472653583480024169676632069581563976627658852217275651054230923559028998368094868144193125153200903102076096092192484867959861771781436256203492343673571460007438169278283976688744894790188633510752272717350433532251960625838014071728923932936123036543959934907885930446597785164015451872893487803072128684510210276063795914698565700846687133228728911960306924291087481079293784364365130991514417382155836385752994753349800905257421731074561872196054885627385515891620296649705262540555667562150832155952908613532354861528683321124135341825790720080769141783135984398681961235272884043762341592318482769864442211247557080618971316520226635929632069956848993144460143581108709119463161190664564933037966870875591673694994280120039347838454005541093891258097237918162154571655721773899002546946047287503545110688675612832170266788234847590644103417383951324306943049586725430095393185142167578976997496728117518627807568550523644441256682491293261460801364208721787039512838300783950871699190071307599586384322620597260153383661285030396235064110046870311728717425168970961239278952755044447785633996382816207424264533372861400096552687405398573120861784401265689169341098902114850716886423895246728702412842548405167474540347230342685234451977267892221930322398841009867891414315909616420202171296183674124072926846028538141309320291559132686029980945517974648745740662511678397648839555026226978315088628966447239417576290622751336687385802990512104270438956405398087176587429902726298751495273671752143722873992822220836665801629043089554238857371017363161456944301319317609147044520025711179216107500507778619588683042481620441014507831481430580970313183793002088080930225163573090025248631521175655425262277269997739980128894055127125653382741212182729435579055361301503069995411892376239216626671375137764910010601659643802361652195076696557697753365932533332355870641162150950210792910283196844692830896227593730182437632667811821942437909716228647765496046853023953044874858973499229558151763726486590815283435233677847635025350615148332382201243397095053814760037294312731418695809498948471735007908995365161882551298877640681844042790908847427463326260336883833081269293555051661567599476381602492798836221866376324601682189001704010341697565221971915992713773682574845871796714816981320559899439884848796796193601025954635810589180949498567780584157646501798773048563649217667231913565085881815748667054749862863522880387467405253293913187568105513455987793982853094609961946052236731881169051760462924674516678795743337304700204328077086565175778616737994597233050572017813873601330114089799887394996959165688334584333308963918027281602160624690238179363246656740387947131183222023469041177660120735372803806934989968463756647223679249155727232816907343683592957566065899739191286241328382684416737582843794832380846279932028570676000913370287463179634771243335928912031873480615421934785270763255367274742946226397796496126719657803560976270960586333626139095522303487690185826414628078740115737224253185504656054074283892912956597573215762553003298994806970023990453433220586498676023480367717238578054664371836094030275894931707148872734823826395291947129587692217044996849766025281328553973704004691519841755666532629887985539521253765687901236224777955193278597702300290681732488405115256325628421245798241540664340064430086653730826422364584870549543520346927849755152708302624166218941822068420787979311574720808329175689179438808414403003090149554519546227695856692897047514400071580376294105067192831555350440296538671454300780698982440628520500690530276349650877758475870676049294634584861338472454660372875083368135414808486596558815930059697224193801378443296395450411943940422744672327771827826187274120823876494672723624070933862703414204596061494207609200299962495719461798456152948841780647236843951003049191494671179457031235724136543772786255621374473612783719290696842537661928246226030629396841263185499214323548498090542834993232400755332450564852460280010975854799189066442839963897540436023513824533633923146446351759466391028853321825990553572276297787872004671016932302002016145184869757588171574981733825557635558420635952910844140601860986125065633245400359663733600544275399721916196740066052319410093075053003553623390589374689027965642934480245140246869743261855731777103598133584614906540334519930491502560344650396388759435682923435983391001088872390936912068726611236484500332419051979119098420056222074113484879347580419197733356530440768111468149741510505740804800461080054665976285001511047842791587817642475201610340325581819970307639712064011398523275762427333244751814350226922048727359545147463459387288017741344060349172132617468414742345865682170867707579625379453637860195338212275110318586276398857466235701773117223281544966880425573308579671833533077239918676035600351466229888299602284470846652610348436617286812328422004634191273127884116994171483351353251959384751929208543900311990811668827158089173526247143077277953386242251292541870974392025921366073932802161815712030263072805166669522231378940956544499733559794401311608773709697176603441361295281990711463070179538412857150073191714027488004575332367843629342796823691420892375499004490985045829078483410015174542567636520617451174067463561974368080474467851540266481432217628085417278984966087721282233774042607648236261015692495939405125502671142171201152873885564359364793970011431041930325695681308291822009943375525800469135542226622996184282354836411600404710357391846691264203763381910385212947919180765068668107884328147658340102177702129222637953694221042070639549070976610550808128895054893230529905975300612746157821710535618501891112794770653856432751750617652935091702820145807359755943218260160959207668995909721592016166399251631712375097344743405269459847368503271880715601716745946513363336392301294157298846189348220989677703247281892017713874647937186222809051320109263385139960675335567114442603812905992098054019679429066327747948774819253090885870333478199620329388848123108747733521112648047140084268645557063711736008226227698954003341874850521728290050994535259715573173510117126084285712245178562615511714992397120714586430447254474737237405841732506055075764553791854471955116652808108800668013964965916385841569671372702485054357665486611762679307931512708937415658728946816529686503453432442871234489384964725296258142207468148721481057816038342857625645073815719293611109620835059353220378713682271436953162562875575426975576922476901157106847482377521643279898731379350320228447465227199375243855859227095316508020257331113337551207941925980344009533970363366625283766266812299266534009391904664013340006540340862327374332572318113443080150155820308708206970792804955256068928894367352883414082622902466445207150636966478353436847500060477455616890570613968380772890595038353262338816333651359243179064887823841733776919107999489427843658246897656660843295931193738195865000819058570778355980506773186322589037774946422973590590063521999022122659104785117349173640332068637465489258768535036348492135481414890074001049306922848782531386998901496101969907913306351476562605017267057198765317949490122127658807834374328299773571357622740966499080113711517874191923557802180658519640287559577914459774653135198717676244184473110437625144927992647267967222083612179035822846269481403498620183850564604894003067156853681107868169577588024268844330850211803466403170281894836030348603384996314109085742586942141267935501233306679495041646945944435495547926144916425983314951384036087001508396360149028721686323998976336223002381179384175222681028745645817196671333131212046558442022236123997158157588761012590459039635777821191933057152715731159933978017395791083251239589365241256610550364285733249829729828889772365343904831428518801668907887305669272623688182012664209798627613228801159102331709696408413936603857441719745774784667163512096934763449999483520990134270978845316080520274856632807586923606729322968007387663515230007919272948998254548237602177296544065704913625159590360163048084166428062031079228944782317736098640969266739874795970488008970057041943833449464183510813771673507358684735349151950221794400346406310394770454277139544431167894172868141884151291532967131189634482602684334961090778891803229955371396670802901764412953190940920156538637878392204562641275920020507461897168257532423743794532861335254235125104670163984961775346886488026900557248895581672939952206273522186255883635657875286687536801187948399856162222613549479405802414537692711203575300907659305247663868709293235136575134304802328795482866671135806822352886063683960712294010369794918016163999399584630736546820204074804881913942437418144312773257587380516916856489997846492634358480546196223168523404681596638422722621041752896652004910318204552436194818945247130919052937135018780404237437293028101916629718184006220079354166681395608017911571809448459909799733548930700670769878176381080408834079071633941191542941041346800591728495211552448167494759000576868878428312777250707718047398322758618203344037353771382351013808687732564905939792813500123182223946932562045823618231361823350077523925225948183592626809152599670068498737985611024411482019849627273294967323871600243090459028658358742897717512745852872504223497082952827712411698174567580852194404636697943915323433468564150767762408135301772436614473609863904076628141717129697239873075343217421555554766740406830558850265999434861283919943504463999221883636462640976695919109726003844089227510137817662089786045667257804730782855311896806557795087556079246697564437601233456800316117289364179097895973932007594675139770079588694368103918351734219458350086543894425587204859657371066032873868883715417235060346792730033854145250817222944396409609355332496083212079182089105806513963340520811290286573624452852875541441434136628014693547926139901545956529909697021692381115451123749199196099009596890859444272169207946607703685185407663723055399190956261617838792432359500070107528358083302243899247871407733316336188428431117822037787930463849062704418983314503912926873028535040245132408924485307489477881243353320718386549970138951395424397510311873822952842780096484039847231330129676596537554613465662880335300662215701087744074744888670443468754024258392631878259864357327713414217782360379823958171329455224076265708196154802591788896211655234303254607073387203203974192055800606519761463823823642712958306951818427912862640975290555118312589376235325580613900276169918350744914094484241812907360565597560183770543403864386863594027951351214500029506002958786624303941531353703923391789940454325953956173309657166871594651389175958578078483233397963432966381593762658090530291924402916164574631757856087799018573874645246575095309038210632336055898945784797749227673727081363424519651050720488405254384631966118028882432253277854295357474713464572360327350455336350625670644542618413827784095338714603996350548416086039664765836619708022707705522467091118890537490196331810961373862261359983113101214588881222146112420816727314246903367846464670178236650968141438673777119818192774992704165015321988725151162014043230700357895134775030497981029745344910947072521469355795203087721577779451763032581029666011183012138215429318487357537212850550813360041245878616906119325769209369528903283998512343807315093634576844488801465698022122959188612098677564850772584619884610301579106957686696165739848002904601259236581058536907003181348289373382270799315016339880281113541718786989895843383298627896716544027595207017320307162055624393653480851479104437293742819214663563356969253094751875778711656172358766064430202634400569880769725848969582023654740617665972317604897715958214074403755814757712330847826183409861185745719646649870341316064642406295963351280230304778264076016206758892529340208441299052124946880189018587329483714936005621043417007849764338106714994833711916346526580747507604365364462509537613883525560185007405782299236976640005373067519808897834632135544729467485701347051921346099505590831132588735494624930646800437553882464905690385154113829820264663912431705849085268580102753169460047550410454884292272481379921217859826751258516356351472565814149384214509966809164937473060574962909895308450983201865571106183676149788217017628413803358799999926009372316984297401298841882069346315886260879749846048545139517386921931126560552768311772387626100189131750713927053705514002573659279340367361052317423709353126726910050788951431230391857554142208700572178575644043097480838359569215384972130041951904890640769618506330028924122020060864902112666470624140308328902713091698113973923224705014174365266242907736283252561105949021816702187295240839512525955969374181112063332271897966734406764178061728691875213909526072586356103276125778260739957920125836414906536904792435187731473064909752236065584412144963061548025360791993879096974553337944713425983797116317897934088697042884063293934290894278273795701666859870679879425918231685680156494220747665355201939484836435204172508646037686272826757854559358732322161793331232492857999326127992167973675876724724096596427535085693822155100999312490195745395431144634152706522441153816441750971141449578007348976460340014774818499698828096365865695213838821114099056714407948647165575953433420313762979626314062765650877977881181911200960864296272845374863005431229666855108288232186404702324176084030909326303811538452951890436017532602397752515731653444880063251084262119732498761789094831931300388017933426525769197604874390765633468405610517609135890168844735281859577976230779300175405017676516705817931718388388975528247442978575722066882898046288369267660566258547468836403457051579655170979422787857591375554946323434711669757025050716881934921139647620481400018062668928417318711970265803018993994976636493427942587425281810338368862688208776290707618258626187953400469840367219484608843169928785240237179950021977092438681896084113655774208566767817365054654796844452125431641687197236230723120599135977098163103439107888312183076915513936712513688138792331885532167443979420998989851798314072490689057287257178343308088792151774197545139032063439882651788831968254770924357737455038803694480753494933803003247864833301373972472685738935710685911600454165165357743928244920603453800409499461785214234472599490693943927218139396845714542860657805548946592021928413011706594617240696850323791499493387793467661924601312250284498729055449218539871416027702581307523770972444671509985812765642684629660974673625012016752626653133643221258230650869110013863911015093772792608458364602924314034763254984315276315141218564300559628417843958905229726123751034953359049117203851824397677713621760439506922641911490512599960657507879119412191541987755668639447757744784989627830924260154003081084655976739792287209505759780674628571043507255151062003795665294597032192351409023208103149018124044702420034777625143436081374241154807703283962936990773238733998723869567852369326610183598932441945344174146888217779939547541748730701843378117329612107558767150809684348607676878930334387903513397682230603297509357339897432505202837940945673645927428256326298781791034110561234664564792002910680787540689682404491313761065314255164165532848031572320354523690759561359023506085344304614983397490406359971232719634557716074626339087961426376198793909882066406379707559991024765345897171466035232989818265117498584979120899192706979322171143102490734888120443192134519188378870767494206472001968926869207626816826148098544926768401413281420510067867526741111299941196677272208536592115509131691420455253340575139121017684703967922675521252841449636055224256005106766319059665201228109535723835235716192202909851736041723498263582153205629425690475647598993935684772142420731755686057985508251607180374616256424286522195004777336267108479907795523675719633329991711251702434779571244861039299120822997563702976061479675166430525733528001644041182249827603401573407175713393299225296208078980296286918257229244174594963077110970938269451098180242227782038726947764931074488488529159871417108650907607425287130580942003301414226477981644925536373085261702513559387812623349142864599309391064614329205611732635409725575859060819731234348806270655135612882659200698243884381493323574560262831392048830437448110740450007280561778378401524406161618435193809349834257329206654175945235099883295003009656564779468810545256974930220370734617946524083936081354921246654964207402853587064038761772062060000467013941915051444406706010043949133441693484909163970682417711281074117360564939383551520398636243944075148001231144844202961665090973315847939957756369427666852318116116193647439694738246058120193706138251954616393781060031430558834351874425049649917740498751745862185505486128302923026984544488056148160360685356361904296897243838578291229763991505860019492352186343876218861298243251255657496820590274769970273738812935617810217986808664019158029980579764166449120026988668380210531226197115902763983682882464093226376126613930408258879240578938318708514562077592389748831566770645996023797648019245628514029154067179613794275701054731865714021002094533992486826999211401696960413102638180785868206508566018638009959028917056231952130032103597642427017058838169412888146850336405934474695850022258748190761944898451139032507133015810854327349896065784975803352811874210038708041780568214934667227537928672640874093671689940517113328870880472814134820706857605388428584820047313657306206191930317804675126958832278657930352878289539333689139133323095650032636072351116153354452356289857010412859723878958895142955694815551108942669032493926584247872414897671280878549984866541636056097564154292284562206624605424921101544943740148650862828840167148691390997938579431044792947022301945466105560371426394019280536235268789044034333008983268533902295849786165296859107857762482703865887686039603764445844421343125886031872587713705439999156569398524697959943061117303390801361564151847795956991624241286678572774953700215092588994127374628300318499763468805450656588802077489915316948840211526136816115915094988794639888455446320064198693595141261185416945158524795454334913778938534607560071044290316184266624268436657619534621718081660335689738342426292203025134507174675582286969739987380794414016105039320835932399919463128560221232312390909884369379501894694802027758166937992248319515948052728764068495655938462040432783804327649272270646927729508073378982055728745907379069980298812849851495889479113382317367890380362819751299783147591632385795279500942997997938766416894833197990823964797866469073020799134516586966620629044997058522001628545746899743353361725931693188947233825386223970579906724483541382952833296447739394372721719303729408901091571440900143021593972024514301440164257601620088892088872014984877951296699763572191537470239560513102049640283836365811679703026101667035029018821389391314787791939000679967957884539090096424382996196650930003185243306755752393485223805385016475686001676202293806268503231806724758956008579675229759879636341849491482323900089333778565798564345679644250902695017083024146443801876963761894898734121248238581786455959928753874951702495233062581370609391888039067750963366559558942435563080885038216134465148380136481560894998330695130056021140288030640882937196388580670062429831130742952044373652389246703058139901868217771192145271520150846850413776120207045061935534442833256118173555512929136193142802491766771770755122614092249476419838952015959134948808693841215904144750490799412604126595737770207622902645200236912798911671326403586757809070961672909525611669732993853462158519803132662112953038611212629449193549566699041815783890085819565342669771260317612780587107952777232464399273523360934442123994718546878654483787870800623243044962867176271771816768404814982895599531706073982901867913233976016646941274083096444720743517986881352191029899996237123416674482259807985758553715206898994601001769108316601405876854124754785537488167688693791032608980556520648501191323747861220431716505147617487003192262171121650602980063142944750952055496750459448132708214436514171374314111235401885880450686330445734528861911599380882830774297141826628143746697399566135065009480692918091057135019250666221045813115732238200994473884633247115278405186046240782547710445891260163653766087134354747466387161028779413385456964699237715680386374319764086881401479087228125968954965003691676501803143936206854978724388392602157215821539446616446361979404190913708607092838891580930345107806139400471294167415601434391378198819857806151597906163684712135495354382600466905191058583289265720314317872512673325628401626198609280570114653549510920276435171510807082984519811112086717328512690714638855904096350803378273660593181204058219329497492341314816905441574330765842265940210528998002713769330055913890133378730006060012386631992814684679817295585793432496729186482624481509035896632112812399112478371164394475302125490823864047297233093631868108967480061004003991751363377805121074369918867777545086268952590734291936001027863610396018711937396478140796041386151907278596238027174327297164201650722217851165744216730187940358456457125880393711048962737038626495400520020526738089112862462028956646184437073143721072265733938259911507154474051470169388192574426996431583537432134012143534682938504036874622009378123071289842487288266348814157658760369777922409208454936767435579475174475130574218747726040756998581143167564225950184671848243484103387472997560475909518933663472569871090278974889563816357100431327944578489807779269953836215674929875798655576978323602694368530137582304957759484219316152444881560436343170668589056799133876017275037035672380506813747971521193298948326640423169694979421101535583541284778730369290273407119629419421634155643162472538122324177604962673774610125039002230508614600624903799773474766839181064995481576852289302905216245494825132471083734662071392531591857189238388625128417906174608869998763601106243173240090238640515521112868474370612955308237056218757768038127941104797476569694516800276897003570790424660685379729742310921215274449746331882730475252537559085346250301400100296521332662721673433196148594093475510439545895011816377387950174286223071022741299230996191236367136413323753055882049452129344320854705624403275835533834904410825724332457123720805969767219071172625933750858709332453965932082582040400002023519424967768513343233633184330781515727765418799235537699326800760452351323335854382410765885778353829589764360980258472664015479457780459872810007521067928151346145862197651611724344995420585916124239411279155162512313243073877547772251440027035029766799292449677494747867236823899600608043333412498752883422489728599372527300897568960556537139722787725324949145729655798974650402641711972585478054066747142503280562428874461276245124014339777456964311929253725424003437577018329317098465152970816900916457698863013280619623245207766182787736684848786411320227392414635310729275593233894680789258199144841038212585140794148614248860026528583593803423858044995130848163617176052974542885983385986826394139891991897613449281716723655774453578367232127439458511369074364365023132694833583163146451623465919159705253763737419229250955311869187385920364743592456745703025058746018153188238688667219019272020217756366955466294718614447554346605620510542956892040820221572945920756137451506013371238964017086270429937980020888704052721925130593942647391184937579997297881275064688201866427695115048666559367137636443429786206485608851101071943948110871765450606894293782691979405164847470801436559169767589964134699283857233748557217049654234466355531844143754961515803856731382675456720550605617750984842485314499513700762852921959016068897309599109732907832960188123192823219872999087884139403622361013802256192003096371094776111296217023482478647294491860050944993630386246432502170088048302577601492209667225917352633921711590214197487372707111648919587841828550237366837521923863467495357707498749137897102290315491623935462589050044571602335194567284816713390093518695006359659305324912815850862836049552798403958904123119555093770713637987028452063325614472704275257956628163990495774033204618039843810785944270541628182177389890168440564624510347714837493363886049033673391887939024093248846661293820819716269603134399513839148376370557084082142642247421616426103311082259009666688631547884913223558604977374840860654448666443087534146490636079521674514340744712854154782249587538048328690058799391286162223341176759701796637298028736657692151816383456346423054353969848988056109474468212848340184764598025311742383071870651130570188591195383681143122514914118112740459265813307635334108652996576989318436074549473392305818986198984442536738652613667324085854001715005921819968040741327521028813333648617621771642431890056352354536023842892113826391281808985961330705699322057539216898728096108858471535616611325746430928251357815080503229949291025756971848816702412570263544235444459198135157999346319632756035474639207610179086990478299162825794609611180965870713750138136220095540493867413449780559374497619144117992392647285038662041309875433781233739948496455207623963476979662269058983155756935544169527503300230432560228903070574560161737358345453357257077709284476517895970085287625434422861475355798929605271968953233418769293667771014694633671333462310423683266203591651923130046848130567934908654110392186055667806266273754860949691624813514154018806841975061967093463518316918200844481667585877299011828722143273478478242064686628586348221488071445092105235442962697422790071791319002211136912589362498641093020020134182861527225615987682313621099640835166300372549951638681136432861440960701059475732564636654808460061435871147093330492782886601572538145356923155310251230544766980422108472446431227796996490351998986163524591421884599440214192317055543289827965375949313674656360473570330258785457186112807016836164789892563580301063495705971594139047682022739124999107614486347474410547819254408579773370143402200955036188420681132959696252245436878382711652175549083538493921383785533598433415194754690132011930463346118087376736740034412649401795642195945976483505084784843559758817558776917637617581166264119473061000744617619596337193404785359612463445625508908291395909249612531081116584754319544867617052808416064230151212570649300420194195696386275471944281331351844851742004825766719750820595249138771962547712149365727121761879425853754476895042593783735294181810198773262180897966049362537776318524324211051440918750774073334386243196413166722108106667183074856367496085543165362406690671451223724479694648195723417546278178173753511218185408732437337153467282241335413121306316676212847750565905517119030331116881991228739628391275425384021019603383421858417008236596094169339861296869674228851266385446600882632126238842710837682099312812523957873994162672298547068948689527510477511545559941455191760660679850498781209963197175031369731333146440549798875696416789516495110019053136080856285843437742232098063786465838759743246854841301030019890645505996886503202139905682328528779746250795945812073231774365853577742060803958079534680062740541874444364439833815072655296666977830218192977641366353985122350612661859197667784391907036198831615935029224403758168232515348519181999436842292477813544414415381849177407269026222500701632819954968380171033275068659935042315731947070514991417604574099589093276481987276144652875468137151689000938157304275431337940351252939605930120909237144922450622224855249201696199140458635114146904160975826091993400401231272526221863868718099697234249043188140931572278051660828736913477176141535224783148705910439398957831497423462749039776462029398252358104105382677237340425466311405694858528670213599845231037557273731466752094674314193830618415206483647604570763261465236082843815492352068156649422047117164540618338595004092408586904850023513365000697657399418309454617201235362663259830304411454955198765160811124278858674720481901864413993739555110066291363674264032152707677781427774491140829874001510131774879811271280954576612568102137023545072927982630390586453238271044741451346411792520788977991664062491571000677376320167643547533438193932864651768291677260320417416359628478666938336976966349133751560452557255881347146864976323407878124783915243033765560670590038538927608983163059841960121671798855824682852604013711399153736622213790032421465963575579909707249026180343621311602548254159125174413092571797778219837919592870840798180872718848596020934816294825048869384311273687816969978611210481882983959774604747485946118180640472503511396064722836382381678035331264841538794333420940209976574269288224405637501752712592518886993903856187515685330688110763727352587379349304978954183228990811821601915370227696010332131681465412943014230492769917991812686957792126679083684671865590264606015791613430655196426108983187788744089766644326572047980169043721771049212054611010029556108205647676449194640477904532610594825246558029931997800763100435424568649725270710715622787703333001321222141729295874779536790726446250147706576058568754831051100066948524011744339409440641646007484707969501090465290047382413322512086733773993070669927045061839608472910550381256351800363028101651733434080642203519610658115382429220671004991543647556724020534980816830531549697575744222144403144209909825490729756000705134907316824069270204076518298482729011542681892853271579749175248749221278840566770576760419543008070589653772476033530517638241916530302079167637550929287556615566045148229670503662291301905305361088510450134320035387679343973911210060805343689260787792790012106044091681003216917636098157546041719588326078717631338766077139784376520452927310794407845043405528159688797757775135352386302921733263386865597530259128161883273932695063208221112047564612660765074432060654491098351797248989242505407186977677615306430196561244398660114866212611877962620239484461238057287254493840404938801843459336086645549348708623509237231855393919899100811290046964243228207407877143124180890623450267540887044829118262047304857576433107463345059623796542887986293233876457159665389300927055601247652058110875374232649368224721894980871648339804858772178313120482447458056834345504552793369333681319163626353270640663688176226214410231841437321308617094363551977169927700600914157874468423109177724135072087119781502628709183102316917518668097515090403368293791567970419972885023166371469939205048172273698214614927466881258389067609349600486632317643258653871690437625198087800166079265650286118933316243110699076269061598499569655764749732364497642752448261616221575432108398459194633895642422857933790166522364610074464657455224572976748826476050905974439345531730561944339613940129000114421101899668096804352925176039444218795130453998174976121149836626153952191111798591285036392547933189322400641206656844511243949459070801132688641557447228767550922766079468712520957175221992449050201723922358156742196032352537993044324309932392014763481977514258319995852373368419928603665736608161630205617813577540336765971551308836418270762237222420583256116643555358999342863469703063147460090254417903072668513187331277503559619156350273990885316244029486647099208191961714875278554012331908525306201621896939139456766568539516225720961637034726973767259557071905209833584861488585242395711937915448183049871916623806400850181313678872142452724148607542913600168975336696354540643517223639117402761618059750878965977041840633567848644536561386549574948364929834733511261040883995331773159825244742962641117595128961757232468845432057066944335600208488554233143587813785210639735989715143912808402066179430475625058028954645279116394821051017812446987347730821537396162894962742842199106293837144041920022621520513672110702778625237996303894593208405975273513106225850551951062431551482462066106490862082675527713008612227103631874725736212259212285545892442286106413140420269325094754515329906220129964035962285173540233404970551286981728609303043134473970276955837628495795217892884893313877202790135510505742054622714064989202152413261719233575835293333256650804256853104702157990705016126579772292991766346724745054912496827788811833887898670216164859046374321021916038286119325395431108757954247365411461410523072277789739651672482310878504052531235971025384334733131629074914223180785032051167076524676154966053205800570456436535926292842218215070195583733386234695092576917570046824309342152404455971092484304599274439462965859638363637232163786336944262135400022580557610415280082804416292029057760198852022132593367357264589958306704922116842085085184035200193191986944450382404600022105719374537040234275889094060419654808348866310121398191457416716830607661253718061572156414611166040873987086411691856620816157046189018708198772644874348202655011993781025648750603869913977655551889411777028374911104719907321948005950853285777432647948711608549203849116610854871173235621709056205893947960386850539592051716872838060774678638517298244448965039283847196992381274843460741909964267441711173421064937053167623183058821074427095952253145159862322017698059483768994608626519924462553615383212667682663460954275122039869588912298521864141004414788871832335437700781857303026497504705607533625531653815023207682610579665336300289445134051679408117846563838922032871380318852152353546822490100501836430179580892335832652668163189116622666919056556406385568967137325959358247614052451402192625719745000087952847599264657710601075533289862319206157418297462128436681011925568136812170533978077837076779328379931983182729865060449041605085733348012205924187094582665223716911988780727330460753256940537818158591938581471277049711458800114388506119168734982762056644119434681401107155378218623159401418858136452550297271464363834402647320095943412549099759690592606319539988881608878516187806759550000336597760121299983242092677945002749285131828457421843173811801544864139437084526617574305290411185838667350523506767884519608213244104752049967059042711484130224900512480376227603848480373903856690171649209472438810399563067250691535599670207831218817457915636592672588213117245120423469466095928713607546533506222119529165352747613363932290328042735895869720138097670238622945527528722310091487164857090725842507650076843576155079896193043670365922969810542726344408061256382037555798649464229057197372011867057866656574675592283129468598663746698424931853402163349713074529711507399655924581814031837265691233460757140895974882556480062446463366548825214644162975713714110873250474671803995904149741109552445600130477149969010733755441069669792654533898936208752790509867948905403033743204517349008272734651796139524029758980345988290550027945139513299111042379254790481912533200214528326957199271071872938519633171751688211635943912662799318974902418197095650284320372041522318115479909377059965459259867401818667075691132029732027168070499880557168272790697934105739275179614403703249113573422480619248529039179139262909682457517177906540575283214943795431944282195546858478103588066928186909442354329108664162866417844782140162284284920792412921789335271274400151606328121230042544067362407893855471979275559614032502729421306987321180267097035720701121845313679868731580735959015539288848477122781368868893563106180106522932276287705311942791153995355088975997984513612534583396185805134733959831145401845063427193123286735565406385959442774317089825968583642780109101297327103355956805831814615540508672885316283013135060231114593119199545715000899406767570472169830490631052917443140749059801698055272602489016725125352846875317642459596753921530521410662683557482178619502514850726249895809687097636625488956620112146905903316376106888534630560220539849949111968920601336865302618431957096073007307514131948925628256515985448076823605569614214265617671252530775530755361045211218839615363274538766566435824923809654710924702105990085087130528491445158969269040348301651948769836808849457136322790856606770805180562719277018658136701911680029555232250294048770137839156958058997729104356935697197657041218852923952572512482604648288689092054547754680847792820958130560392504178642742978373272790080367395595277843139138674075003746607742751867665713442005311933996271434485826974493086096941413181135775081535418961804824334520195074861364801003922541320615516664045090574714222141515709787869309770513492011023486281487653539781367413332648731218276395045991867430604066581139083789328782515731409530865529439505782155878133753624878363848657505416874215727952284099653914685239554903268944541081946407997106295299179747534626995454680761089776667945537859046561274545014103164946161266692780960125124068130840328082263425861868499570578273723250380020828954193041829499327097793560876530422353552077297062608500120733505270666823524932856644972234823635855140576248982340297386385416685455936686991312246491431591780894116131125053463417682153887179255245565328599203774539058530678714695380100202207202467656843676475358306106929994513540443683878914025484763507947526987953709863231578612666888407400984760267569693855642088108651315953920053379353091963269855001550970499012263411436680596184351294597931983182087267238743177293705129425188086415362503421804920290371536012159295695193683334196310153394419943545649299306991424889627088438564119481217777118312412423019029445547217087431198599600633825744684708629854325174456872083150294832443671234779811711301939668065571493402799786957542895254552298651503596111973051868879153903713125489533465700643357019447961570217999886782675834196440898166329532214020549752585378426832488819665157269979019263408821943924299150384468057316136997352851163079207420802020080018236771018659972596676086149063752847262405978595980734865443726740397190769703869726573908354056138790756143834099597080414142325542138801961549066316464975570351578097724449640534745099328953723491761424396150828180717694074247561798730737981652957664573060099447780820849274034503166396540266534357283833089396143670949240820061061111081832918399903816436523974977282685462498470665963055497440355377892330355430910918309713218476149090919255528991460039594631105322929392835097814106421749813628077351137602798759420267103302518074140457912871204449414066937315716139476661843743746520941242819799476800032452766836113045030185790350904485421819033919192621259642325335039852290097691999414683721349345969235593281877019089550898212148161704960111742206376195346057593574769747343143689833333083922619592969507974123046454134530921059656501639759688554037546401234800705060563949302380507815360227408065062790327612269398679036799113814449827602201187194430374760778405822943134292203494533262962815379928017081466291672113928089352330960943166917027318644670102422767056244207959297499230842942414771566990555454033130267751673038166940217252793367090422584088640136865824592787193857177448132104032306899840885376991717139467354597238519767339630875657783078657219929307233089481798581295181587164302927836517531429286276210871732041291902119649317698904130683522321077265087241370096450144711683185165692414810791191770838272185212421058616862282773644014224093921036463395563439534306951856552375630794640491930595708938364755930854404056810230623035767398822398194142163234062616943831769956038194193968093111530499137461649051284481959116777085769550172374948068457155680028991696954711785504290546395452996556093654013485077969386074061041217085456689649058684593950169976010668711682098205626197598151588290089981964553856330659979141310017545309255498191436403944759999976123736298344350575252398111234984042919165820338127352297930197426573791904539898326411947112263738553212840061176535438742725822065282214950880480041175881518902177792081430549493117451488555129902757621752163984099810288527103407061190080147188412289225007722214003062410053034203441737915771647246587981245189526341638028085076700457085683848192584812968278240111788890750837933869332102516319657711142422957424968293926840219893870215327145124835651815707737952576599684410463729723251898017906249331055086880496223349531162503841721170363102749295519119099303874964244550815443578687618617206993220312120349858074215359095442563129383478135863348186720968205319316916860964133101101512847030376028141851487854122446293022757020006854172713680965342519926389805034765824593720416739217791659897436031629136604966878371725679227937770593930634133932465010081178076209311430379093431600929073816879383460322143600735980822222966062814168857707153275772242893416917423431104419040543089126213500923037611430377115665822904918027785416554248397310320812714870832537881763137904963214915324691840709166511421118174383638910082077648860595366798964470507590699226779702908417585754917483834023999269710131385347919503459022725927182696901195769940792336450371236122515896348584577750721904947218165523754892692135408464766771112922016375575439765352263297744827110714366113756757251707023139946178542017642521169533653276295128711317215677138488675300552695441189057087406760515734070318517862334331525805162073466014671014249311093182924681326433627362561565474660625610516608720483587237204230630822204262789003673244507136091759237959771621885358431200820002949599286913332071785633122629973942349523587450083405465247235246706843808626233476083035527485890743775980621489012123409291693245006805681379756558337782407776597880813804344829340940737905003769139008217392864730790269202455099321978829403887003339871565717825288568459060772777540191378340218674507817087192625789769416829515274149950586480085109369931359705933875828085243745473392492727509462620827281417026704359632555296836308165102630231781961626883727515783745789811278920699778926361505806361871435310514126516869523308613585376178090224411274848131830817242527755492851159658531131112909599617432084586938687752464911496149475379965515506655443799957338344831373082245120740240193002946374718039431714593810156198289098382513746814813914741806794780212452103754369685402231155286805370129914956271367009218928731059817728141017162029034213926308724913952227092790418646232586755553361031190105495768220234490731528240011669528338690963045055136401116521580337888509971758770377777710832366263630609372203534946090052956242985557372677945980362662918921134028253923843571012464567017226187161123596985266373459765126149312579233493891960067694080308322994018794147888555512989089511767042220501395544703674965382515968620823766620151510805306059758570857932195886269355473145160639186673597917548733246642345200360673462404612629472643654892184514222060617424739879479997234157941153677189726176317221917285240621704915181719171966601991939353160466896603004950014145081336778994961693405939946146474043953873794903092562569978919195594637195593362911783602862984314745550646050399976491279021416838340393354195507533652696458406661419875141865915095041241822667251120446850709176914497290372024382526976713457555279416200367219583755311583011435192110392673197034158878272618671685411943585497117276168963485244370952645658526342645620014314087210322483211765950701972268970994026764240806104932034924995076060651320714301748970500385894205253144072366036139902795790327411232069979255761811580377715834803685097928052527406025342916285147134127392674410497908768429447104346160378083779968042050992615025118493181192704259329974784594787200648085677090137598904939661155616118210395723822850153561034929171459231164936515873694452124626737710349215963678879839979353767657169811290133046612139993493150018929315967983165128261336066074008525070747938580222007231502095815716615217651464248831111478953032364872114219586042424519447381306758272885477418470327751499254325903466502584279288449997084444282750058655397352161031808553930464168601383714915011031413595794620387131990365986765364798085538981662301212215457113486838071054956816884280368566356945837465773979360634595292046104914714815487593387221858180959925090514461941611524808670590296368075856058566320683067467433568216646334474780193763379821538325010150391061412709809169341742481396056921025160207993652744221240885106664100181609546189284746797943540165183843642033004056522266880972705440861261941306903225346768225309060520110774212650098129865718950696675632340539938073403968170726601445183055014480386717909565862237062788087853738907339997509914918207106779129542847867945909290918622680439063090383717214848888354018964136529680262679204328165365858381326111218846606526481588517581532529675040974486183468915574063621114449886022101398537059154997020625114600841824430701255238464562802527921925484994213527391254764096058277525625444074578846014752366729442910672124603743439619565578742650437186286706430384374080399772073175930515737993339409316011732984065961451615134788680906399029981527757131470968314103987803728845794722192221530156145923166630006633425996142569942087787207444508254402227654659891250822056951442639569399026179557500569139057662751556283499107952421639759266287324869711935489746852168685883517146646794929366248834498181846822370005691757883455932334494082990045403761821520705961751094893624465646439477118583356150512280927701581982986607356227628220849628823161672202896854839782175938169575844851603195778348279528824813221181809640989880239360260940223799738001315361746920584355799889633904368129048087819117452949701515393185596478471609441605358020328968867252860913936668114329798098680485805829750811553578940799157451831672006839460401468436193341589291406673735864675782440014861014591389611659061565728200200223598563413450083021558894224546137382996741706491990268355013791197496916567819083048018935898754344736400272052821367008493853853667050240301860630418098816403775133077076436201942032777281759713940283091890704822467069843804803674706963343751472569288846742387903538290274455412525784546661300317184946889620162618499094218944969313032898013140355166114781792507408056432157068349268457571294735225787452410107940335274545380875912684626130672949401063495550271424994575961898551269560011965681840510931933560571463229452412188822570237323016098783426689445395345510063584786805334836207400905965911890886240789990667259205887015312230133918147644536298994078591473330633473522973789121661383652772176575143581222403655882885370589189520327326176001479474666491653100452144501611283548549859370023560580811251123122440231966559241424994925364257026422912426511062503768634977216400109849921959408010741946535865617268936999411969078190508686642202250005168024772944982938535005151513010971655202699820468771095378944983836744532698266004819077071819765849761505751112661106321902491618260515018818360512138105313055935955285534965243160235920239629099345389091222684969476406771493303116348453910776830572634788129788639396282366420048969292385620876955217009742968373884630095247839683861016110602131657191986268764218385232912746452115371589982684548684755321049426234436859833066990974431832727220373784651795013300143149435878699417709884122322254052135915712993502211426567266425043770088417681903208211392449691509008186129026108902956837935905040947611047087478630567163445588730887646457932526411392323007159257309984346301026340091426986912208594979135265119208786360230578307966404630523758580961071713877461540326834586358132118688724633314049656103479786385399159087681276115200105170536612729879957705782407084744092251731657305955743867275123472501084176523580051532080056656390555738639408897899038468884864648681529053237353450451884721529476527827854709994852885656869340074149046073890675435778635155397299527933430499184337586304703898784803154114106203098828520684147118648814712162454895909820369922186669095754106146533298348457267317419028997017826417648421681582213823224122611136270782662204528799204648824303958178945602099488992412988376114562646550326921034123853331427140455325896102962230026724765817000950858775515841748771112888095864089275977406684389599422270950552433994906524918742557237160244140843585500915690001345611177238710587443316823202377420990796849580305154147298162240190862841031881727397676067417743492162072714085046510663756437972297069427528215228887799353045039171534105723526984059118104216572133255011262967022840234300731570941110624904215326458213679413896416135415140230931990572009815619821538247011123280023807229887333680102334006833466360739419176663137983561352513631833971778155659247358114031835243639346872831929815539750057063298384288023552387537683753027253514803037942192911108486352900921924077261812513359369659950748899317336085345820406631253231783878293226435017321248810894399700472208133221093391255860700480316991758287094783063535291411132991257919733057531200626749990183421400045611228963797858258448748581006283255392087043066134964002136006700856322139415423906067164373305386123512261425537968395943140042520020503757831593009016280910245872399226469792060254117866088571913870122393971715250683927475135397380874899282449085437963345118733359020599457992804561409572352898967209323014229122543851478160827693370465621048527906470739531561545352389861490821332823533411742608362519810924421136898467826545414955194476072281207695884837988079881064687505983782867683756704202179021850029344622030181284711112993611743875240840554192065286619734025334789835086956337233729770581378683844567796034906381477509789717729923960850667129777772934382698627739084917095820167343977231170924706490749067807696058718263820733292571643239030406832983757538131632899711183745347701477005413668747744479096904405340161944885545415239967247307338316687467206690394961024397054735444766462639382077575730276674589430264264860350978361144290073890999776024167026193733266836396300143041908774073709552561034079119180291353207087612392957791441445868695063775271885188736380601987721512108294055443714381659536802894775583050988830091456941196047870419334314489607383095367742893442922648621384520210243819666357227978072957477752082730998142458645139696638678188506256225053725917444510690405991699145784268054205173253319960645618843213771563725066317178065302520426819743232006281886190490478507983034830271413516983316038944149001304037756178266811742887621732149608870043307748646934510743576998106301424900875001160188830345570133670675614593334385589806938751959113862436468616144000601429937440706600129258247917233866669710225204329431435598017802095735041298113549924501643162681044669815337894229179851590475646157544651078268944819615688639145187823487837050200885196774822505230971035604966154518523399624055258686345765109041861274075681396875160378086082554329957403226551375459571396647843572722401939419979738895904081745146280245972344544099392204830000116814219714028161166138082642907633737822183952393763616398314470217625769345318936431364709919612981390829311828455969313805291309550996536155003603116321457423044233155675021373760264814415286317515692869462665358068947514961573607222012465743314863999611350521439682405841979390698470086378836476411265457620438679563046637248820438606441543030895526410809083483651434071073090609520648026715342473088620379342131744929699484374056779007948818816059563310577137607367467765414957882127967458273901770562827686407869645015110634313077350344273469201303864713773990613938625503091557921587625390930483269583103938898902991893221107341007287462947920706495310236770786106444145708348102790876371388471410972876129009746308005217309759380653472332727232951076331193588297939498337808866788873108073260732701659241713257168229142318122361080754591686136017974688584364106130289774096309836544925925125899930636616099501861281270322847491702147813707828725046886911348449242909490210664076912153399792062726195564683099696510899841012183054547271293228439118738962570248595304090948884645361751767919707794116335175381974232528886653083999946708250541250033553138946602652378785168373425380577902062709150344583235111626922832439040514781292887370262527776482262610891949947980797545973504145171771616815986271027224926400144263350135626421542355866064015481622818770565954515895447934040287806233181352397524865323239053049599959073172228183101077570862575205607060144092386069434942223493670443148440652805971999796517253139594022478678932373432405565676894771854383569244137748310655830090464451648832319307257720038544176404714859174763756434874758542089047141868826275944530265854772012608559544842157009801307109480444040255700178114813863285924379888693357162174132295048350830862145514026520431917104981051135243898245854826310029464642199316488042547066156854162254144591814879226670953336887225255343594561691339937412785054541490680912976237592335892637902058037023692341852563664067809395403251242976178163101667003028448528079234597163341446846872708828069572072198887392214247906729152807025830451476736189402183110708933908331010632108741006209648953696042473376128999659328973103374379262944399505201659944027037407678029767540275449764788582754826357281271766161084935401615070713241971370006889278186258382385019164798711088804170303317934939062123689148241680119917539443711648430104505636351350733478137331437776080526317293825775728766262450003757061518537715226396644623567941251507061272537393576129047531545392228104292563826444155850389748429277891933145380316945136811121682517547587231238550038710206627361549439820699773940262724679345332858348087696267974374551755246673175955574728364785367828810459791643528160328288028881019006759551014005373451523289392443743057201017015865095338000615028939129149543118432378317160420994655536084371488923690449741161039103672431641526916272899332138584039311363309513158158734060757542435282961513551034837924568767993103854954692376542417219200985521637812487848315997930924080547491086491066024298398301047837092232876755417697867265191229267954229764105252386250826966802800851808494873678946791276590577353685646705327792667010201213653819192021520763878791062165244421709717746643691158776102334568640230816529745428775871323932782466894186618467172235131141547369758917119826110347048126611439292141348277730820244816100149009472680473736122406550027131134082757422453175587492168935487840126099869628494537359916206263434229448910504863173852375596090206207785756038921310713152972203708575601192208865087831964248261837374480045507829056084274562517700586608096212377089289401809114868103431458995722494501663691305817845670526165344594821020615856612809049592454312164902660425480142678725209914933645522757272732765285727650338798227002166782994151087845105271412747513143451612685565657537356456024476807529599856403682518277447188763179330557527865745270148733296942525159798167127475573420208948239869278178754744069609340186237399307860282227828610543732921089748365248856228598378330036843088475552500389398987082401803304498116690523514460048944887374001192215283668823136989952367327239585825838354949761938875816336463321951433755992667510718126184324624478723692644978525824439154182013623940015829060176437710032644848708175760800332293821313459294898355722018123664537493320904535995114132325926911464806728260409444688081937034736547548302755458890665861491858996736479542143909204206209088423462389128152339528355270859866268102031545272069984915043274593542521026070856612379010950238849577885995024608406738593409366297355503350997026681212593918901003782723089983509371078603120857411332261495039102856722149233409316100692867126903850253559218208506462696442139401767841323373355939161637906462586198845219524907675702494277970967816733950837635613232281866608434566633960668945450442077178867613825851465915946102069108071673126750502935135769662086632707176068446747127829835724420007864429568600780981808512493010582857437950772206584412516354673655573200673389051088001462556548964937811946241741009215477019660571249461204504099112336503734020089741421099660650700199966045788982131945937038533842969350569822892405941672968299703786225139914887465700905096600319169405076722792852484035217021428886644726227445830417246565837452099362668805515488554831310339475867988107504560521898147279074184448105956203515322177595971999717963199747538803761860892976506737073022999206251558480956258280396047222642100819055613016772909075019169012236043508655111305911087546326006791093037512574646679388029956406367483645313067259598317389849380652860353891153496245275776631376464875046240420471484396825077773083760800427900302608093747278497007485517357779165514206345939529110790303530323718161894489640210665156121557645234754248832346160955822092752413931304571295977585297050549896205195526573325533919476459671163112102134940601538837984241778287674647841602425973564097185488715353786097180077786308416322060294685147592772866385064725375698768765344713182342356220311261580009436117358974597586207674727605485024620177001366227896383204663182198955734584117542943058832483022402639638274258537700390271753269232965188201267118686276348193789612803932418597988533030292145061232512343901356525757663311038044624023176116698742209108639685218890068317540504278986751735445189225345515974155514004092501622771931577073997380201742487932826678999402945208619658835692774791250202689278816191283236945903150835342228608471177205947190001103468121584430772076623937789104150442830016155493292625364940300483342123048075258816192276381360193444597747652715994738327803798922792758095272940168909180768734049910350624542649648291978638511032581851602955692907588635544081049041242283000446904919935506054009688501758366689929365144665651770497518429376257341645048512185993889579414880116124354909421707519066952563361019571813428152892723795480977716688790642523264317950442650656267872685299691196830984246845638634051972969426371516507934865325697329376882906616873034988408265516964206374184076151059311687747291878840988284054962873191393491993845061611167171403321771860690849361301253130817840949762370832055354950771865191655610215888343796889007606418649042149701219377556812796791396297193267522400808272445164844040392118281254432859452249931930787762961659599456045437553229418384658810662857494593624388692660877883470369228951339654336628535872308086640455189095887591076009756137771724290076155602401969001760092789380358554210205856856072252113189211460491571489242811868307005287917847931664253497215536861617029560469846085957736723774592702205853548742656451567776463113730711507985631664679124007419490437109868589423184237668688340392970624546646417249191865559281100841497522885327699467667938274846428742562564990990880322287288455597605073954422919249668398636399741613540064453994829040181229931582070444216228377412964284429115386769094290627311744536397826158100164954743365920401729349767017940707081011367732182364739018644897745754455019587589986729108490649427512217645632621735476326767730913857477818442932258210912986864647802583755821754939387200120336308614833420631493640242595502381423356958545423612637147095174118463599414620480412964498272254466927960560866889976953889292023414099986689696716976077822583268001941154276243742770877213571748341065276206200480827254769266534609159881581382701149263190726861401981536239627866557123792320740311054090449176978570386539311494654710790954345879890393819522966976196509992953593916086908345278825230977757209932327153396368782597495991253957336257480170819822589974355681598727563800806526863524150006771555109117784985835042794372800612090232689823321610500523539553490844598329407943799250534568682310460652782968252810674979700761302020073124264318301188313632415380810836818219730896712158029869434536269156499186823930759480512281785348008861978068024447390331051609535792855192286920143693862332159758079834948485711242322895219935618020449164615898463700204261997899368893271475699856822774035336055063299268013493115869841046265921226565916149380602034149351788537991196287217779265799973683718568584472486557566170741018892711973210509723897547275231310694929520771620198142112041525096609129313429747165564180149990930545078195406407928975314259436899773552696512711668475342146521627147923061748093941361812403367978182208939826078700042935555032754726108204475662638758858760795129271678701507317151386624027437871402542574732646617594958151083507246813061802574589871271748053710135557070405593972300987968571743660290727882857698032889629251120613931785988272171266364050851414533432453768935251502076678202064550453835051498706954592743472312214618488618415962181064703621728758567715770013261454186831892620401093575264327734491112029494073562262646387310154826768311225530752946968683352465594115378551923944072177016487473237722572542991761109004452608007938604896572626759762956840007075468928673851367427582955889179591009670376184713456319897659862454393155792846559712224694407923759546773230115666954320896788090647341517040816886058930753395235957413232255732432741624067339308745080848935628080171772571222203508258189740369287455935968523127430146430966560221575975625942364187864624959009665850216219389990232965021974427829331602516718612415497604142348890815973236214926497720325275174163999654946429783864846289659262417884822161679536207234427352379088375311210879487257852111211786516915956847049930434374003708155817254866990286369586458127002357818882049335826264403912274170412552047754291203947621905585615162122597948251450530987805297066365856072524233253976188029445046451667730105744496144821463634235908146127471836611053923228121872474098714822075740787427986944118551206829542179506298461934098290022763056870838871872615486569949330626990594034858503506880518453907172924456564434827047890250466475114324170279042504624660867031611390463791032075643887938246993442233970896703150146293516239604985744702191060692191971443508125083661646478641620713539161897651314435734184337244002073284468008016207640542709217628653994677185266448159069506358241689699663051014007402073581019252752328281791573661290450858130784968908684125647011526760823280388519334444039946999522621906919219051344520104073361375361317830651998136505595217907837632351242229445668491520879594403365149907115790397081621566987745421971428599359192794405968177428457284624936061496104621240508524672830553083278875617536907678744176361515558204776534391253878902921105124994226466534271893094642009685066711617533984059123090614362518219150696355933136509297964391468767356181528152781055342131854544376927368571398022278686506006372344105390789652673295949564350462742206911930520709023005917330869186967490664269909408649399284155122556317798192681222725208765143375811491663211773129699929710403759469008162626278568667718311419396031510781081228250213055520411740945020863410251492841413065022697229734903488730097343861653654781920553656815959021791677684718574397795041109516320880182506729455302185433404886583898205109454220086873810722374917138817526881726395335204105435616166134253778571583391453201845314710469410192556012242788178544334689595840475548208854878074046345380597151008172316953551705410429087798202196158255030625620499005340414661879097150595143392780854951843901384141385628404942596728544674265976957997340833375125649859832568373274461283870759749462037771415427961844555714230800564125211702999458997322073884012444551295896434884102141980019879792818506150984914046435196255451910982674551161741036297836533148470518062379291601092745272784930051500215674943906760613147071276413409181035831937155285827217007329345587508720729615120516307674871251342196204894219356022454014570718396574023600706458859811041240981609249897516394265453008070368173967002291013486455348868335235184092289466611776571403499316089162445572190151755480796159924266766538757416906515957555397927840468353701986812560979699239042967988823612253839751147642528206346825044194775438374334758572248322675382790593371837881869178748834636521982204063468652542166460200077208143929399364235442638996948131719319895975995404040776359986336999561536586913539589819270580799338431711307160887543622704637905088939397275994865383818681682993409106830786063535992331150315969338847098015602810981772564784358380212056781953241615497951895832132910855167722013946434445012484359331406191710549480158386023227689632309802199694934684133836178390488935751997916859416379857033056659868444190887762742288297110887547098792558892133065274813960593771774608565612539200998402713275205015073477918069061964399099357015636348156749754608621558000329331248037727170564137377328655570557158460729557625314266251570676066671134509204704838202487846984375360980105047894875211265329831816970409395477736415326487718050640368716143598595770197504207675299760923419704659075534848977377507556329745133712057835953923589805713332752015522029892247662470533940211150528013491650226036172070862111582033590553683173295041544777337700552924952505323459928362969431985705282604078115162141733905873304847862077518843787332072568126690803097479745217937864665753124434863931045653631524664650186499141212497411032167463737071383804101188909689963686203137997024443132401936136141123674901561673879563543285852946758797095752352154126859241425277342747839766104511028876691671281798543514418575700214066934302895376706407818108896049553850526119947112635134161737672569402222602394660287361694804543032702669134289437066544948009623465829611045154778013267667323452743326367843867676805386668105999393092444432965190860559438707956889595946204859684893338122438578728372233101590902925871533983499735446291359863949819001284728027598616065208524576747092578355876145708592121691001862336040902881292835042807132696227234538870858599188789954268773238149071512450525435012813972700096478791858270428143648102604387809200862235219390590685941326986616119688441944987430098290733686244680416597043927415666699664486582836212885108267376228536471207916982550595007174220756036045301630316374653090334572398254103820944584482424271854219242129107698384904085549757687178040294663754402023822501932691931430355577743868332018324682258911457432061493365158820822064430421503948641119334957881337781556076622536515080448619372354431283493527456962648118168152015592845924785989803727995479198137088656523140923038951867565305241974323665936324699824052657474558443286630959416323942403352136086955902003787084620050357440054415821710476835951130106566425887911973265131599212099453903870558254266730114437054142475927950300336019337988932217296441621508577986999432340170809676629373107790848536768655431096600656382410868251923233019823661197491620067435408241588995928969534033261121744028076406540248561139026357393254486387355292852487530360484543868212822110158529536968748622218511111276113719964449225775950517568065717860808791095570101287539285019632527733664499797652440695969373194424646551575062599026567167579996720948868874715824625307490280167894901727748377460397266157679503273216556490515147807624771029671681814447125551422217861934684384469360397973615725020902038040167599635762924443547831274073885412185428809520055135844184099237819994566646431891922484300226298700445946216615408914330135454364225194573229263157772160565312123329258743785644026660238217691273767599506372037982540431886861762240433557614437320962515306615546726648785571533640692079177190198636999375000404886425306304437773020948011122856266297329201861465423583985751036056595330907616284436194804234917229200583253948815829684701140806815809007520417809885350825757415591553303881953985498451312184752719882739730000532970626564491248579822415094546064391254783730468936535441006176153243671228131774421712888596250578220462342354568662872745242126550479582321966721101611608954600723647438366533537907891041864961984596812817474398235242749207850760375905467964883361509442251282797061061437125623310330297244403116740101085670999415749216551270105935062235501287350284300946168684344818147061061957848900685977007743473509707122046540133802152561350309387888629644799796433181703730491239826481350638712608649557537908245925868869267561235669887284207190406792186121605425113656333524474354135880997002675827724382720021538502958007940599864774089133325479117749951801627944823636881465090156491509718235574241735250060203095074376983085745943366334245472426998260010940790907339820334518173698983408835454014492477894633197545721553878680334415994108100928073842622022459376564079661696378482705311412742654966226881846795923024058647296626784638742970476459846981898459254363460743388079530069421439534734921906928018477729956372654059104208572016499373658155715103957076250089581336224064411799919041322117576036873319450345019786392177292353679426124774736282348505386474867525023444301419401357352527149428350809853389778449170744930097333804292163723923527552368340594771856133092427552988817812656159217295387409379993763566187514720491084410048887501645701280229875903187388545592864007311033387625680922442086481781677337378675727309202811921374126263379857001401546442345549295118339767450954063807604916776349857927318590354754348629111874362431975357450845612275040234612120163083966962874070602948632964147302366504036287884471679390746089316346174749303135490331942397969297210135032938103565353780285072452671198009946917361970768648419677194672126682131068526466479193379898546105452805779519817621940415720629838953750910482867586479704216842564514551777030529514657998252472754387110022493548751237107652714549666947242434985176335199592544464764251714492752781685508385462662511699864777846621140008165652085535701416866527330810350561487244266109467442319537146054198892834153092461118703426335121011284270192499719322887545449636109627367976358422169715704126238487758812573408989287285067142282875031082304082149747796584274487338062657336974854191418720326526138231241562682547138643340416281503780583568529441428226331315882912412400815824026318288756025546106767655990877820038210083795133408502282035165136621342180701134617491287483334130712186612639669676171539503283883375543419773145980668007323532473126689629795860071098981967262913244639653692853106541998177379918275901834648977864593931018037872934149685779600001391810309373918683990902987644654494806795319816016330801493769443705994799547421993249123685387975259715980969380513931140321044453312180131257015036333016220396384856723127519619616760702529279855253877629508733251060802320885158804325978368704393778838779567664955998596779406758733388070419255637320467220733221782574069066017803718744289137193525498122099139234514129465189571922295317216423023917422316464835288033943957031770395896848027908027981100153983212287588714503509916783692844553473474671185850992499500777237740072118085724648761190576283688897523402018050007438979353768169960718468296051511038141171919908474699921472223793253077668316422889323675130689029459951429951481360704584637245578714880596846760377989382090112801993512018244158273313303347217505211295315417745917863028389313981493532437003472890207715586966162016471371304742822584315633033195537109229158042658285798330542772425459920782947534986202372837941654346861401969109539017202098160126737056431465657534348585965617358323782877949452970227313679324653032668712448097966812144747723016251500347073703956887512065418623667069162281319678615922893001673017267661224243325986266707506389214125194246364520229612670450933011852701421633855964108610410599696406140700552188441371566784876098029102472354528048071175102592530898363294246981015541127314735407889742733717109332663959804840783738477423884618005195578143387322574832225613814670796286150598877283927742912208763818907684369704978845704419765860600545872123936784233761528738825348834483394767716205795768456834220807238451598814487038212355692187921700126857405633535174141939712019589115351567851282805593923243935667350227591578700578414135194363170973983315527385178858073147967684052185343078580628899839997283220144845496621952115565625890197520995611518840175504686690223910975203816055329597824604146682201389586260565091564496206200941283267956938391169107723032991654794704729163022140656702623559743269575349135524077755243858684327331088571636621645266501889591004976573914578747150618214966245661703317573304491726789493513063017267793965904694287348156360078972934085414381966704719381565083459430764771165158134683479365653101095489153014882034115175404885851155925207926519723839347580122686027603872260586553695065514012108665877296811747188644193586549036780033157086346116510129662580380318675961214450660305877526124624986597383886700315520665610141160512532370704605652118052043806716508418988020018227497345205019269505173955135035387168425035333869859710784422501755990111165190641753186800943564763017141723974321892894656684772873163379733068066930112525274281353480366964770015021226625973471821995661214012934115033325428118904389688178939091544388657715912423659212405906971075053468085007562390200971868188635482029750855518026441012451369176040781309458575356290674959674545832229071053768397544815058776911396034004222965797577132419496919455946086223027801204944859870060535991638405912249285682090763923115020576248717898179485789908632000835792634025870565933098227017509983767504797841420052962287823589359039732085328670577285530260425612646801893006418023454801020574642177446489336630310108791395087480166693907992854053852548087042799589255496080004065075272991562606439847284327935787088499417097414004903328945007077422310101986001840568652354630643251393693080503910756219668999720571062414756744223602436242761174469053778760151090601289416955902202244959311849816876488519338577487164102872856976548518650847946111822151047834632115226591479037146774762726940252363779552435082898508512890831080371703700742843621996411955601249414604050343296723693620900651780916875046544447307595160347910870940235368062116457395074292531109655047836946844386051201005148613036947398038165077503044587887735805835486806938366868434663171109143026296746004892745414128067048378585079717393279416892172137359566221805516726071393893730022698277261494167367504500065320004791734721882216139076470169007763442311427617660201389949351625174027604734296816963430039777499535224752396380184614461333321883647016899034349423649821675911790402297114707088414641862559818159561548134977229183860910096723500147849687051341629693743450098492767161840685829435716987411089546678774928035801423545231815531693738623618552927297845698878466823406777679567245642314557465564184925445596668750347462428934194923225255704521801203233419916836058944760775876520688879248019982663666946205786969047374128939092724805668631952588592650990704324140246301714329250809552805849342191556914551212486036303952438463384833838600092289731223659585912006162002752415854788500736892741367379297057072343609253176636926380541209795478611482917247987392479308966175916468777284973971622839939923271928708733935600478787199780130693134417908361546506059060636023894309575376773542660437888234324028812133531637092051982264511060506145137328856803599859458550127347782810356453026125009230917747717332733801809809231987977524632064334856238678409997794963608092721358647099190906112594752695117098029001348533914756702930278058519881310457211870825295934622682831690410414334221547250330626846807058098882410762181325009010793464541740726542198478879869373259791412555153289085702837371454040689281540727784401158880586179726863293029492123703120426838314065735737495928439866985569636007635306224362755134320614224083338770733785094343158515534207599082308622171545129341401895787299727257652711248364648231658762190579401998619732011037263852933444158140055591654797150219023866555320555513693618920012829745931751768422739848503983805131126349390972418370918724286172439886473886985582255446767783750463434553999621506755024569778353879599062920046293480472640681865920622063252677130777021101408094187177843616985030304865939898350747075100730643404747752616022432168469364664151977160848612902136374689963636050451598227208528167883233443175253735466289456233226490277985257179219659536973715804267578932737199628397950114988210190096893671712843493691563114976840296125813484044082535129477943256970554928809473965291432185044289682611289783469227943129918476986342139534508860807439590095052922395884807771955081716037737359571457625429687269875393994786922575489733815474570880254612812397836409271308832822353996987186406521188028706579708919304245937678683679091380745477785919806756141369981121613079629735186027099583731782186256319984289897476679444620394847574677495271233969182542766497269007086298651846388402674699241546731342118422704772345012707279984958681294334778087483355199486301737817372641133385172967929582339885220856344511863445766732632131996618760469559904128232098669047855371446249584862599050033441645686818304349360009302358429684571095817670956402410395264462746698489721413688018133962141219284711307360710942187438711191759347053845812583336333457439612667798644461070730005336375992486199014539214380704354402533334944840273865213315191463604034840591967551184750810950064716546058895723690549577966941849299296138360981789582016248189845778162811668545001816614289776909574191240922742956221641452743516158496136353224028441759114590653490567827267193695295603834189854605000536503687864490317988808045802418408682989859377928029939724552142515480753852630884792120755765224046959227790812824730968978549877127813764087585931087904696451562264947081218305972455284073365313428069414251550980773384991128372983826395286254232104356207842655715337349263518735214582365016603736687267534849764649995757715632491799045624614609467762869493002111534333587284256724549517620730424407655717990785907191177598532213578354445696207639355874747594249087064698172774448378230065924645163841865024215091987437405869435704609562448164106838945820351443566027730571205469987741313797176715683219274616543596989746665120574326505853202509990717666621014037369399088434137106611591572458794992758627328831401405518256496350563212432114661620079909959518468477628320067544480602371975504458737507800055271582175645269372516772350390734170194508457742970578510834423887168697910350241221448919045487730287305239928047282810242681734152182480620375611487136187426077107591137819196919468000066839654916905878631710925255604566263556465075781311217378402937760365210220174919017364503945665890331096858333236699988002642567292249178369333689421309586856098424619392590569734012077810417332860761290647224814720855305166223931079921063579729789591334804750033487556797945363396238159594142666643931235708886793386062695992569646425577243742474076333868372278174223840500271457365219518716794301140238363296869284254988897768376766389244689784506183225548656603064606234179300592959332999391002690537052939253294436001260979080508509949296796310983837830318225776601262956464914570521142662138145729376200772604518540833094097949778539007143210656035358889124196174577654055189491180482706063472933061146682223508452100167901545864540713433931099045297239773517352067274619965849927985940312196322639871208702637898119929004893707231162006116270432233026560540205144113633182763853250191553326619759612778328225189081382445751626458806974270043177580766990339446388316286114526974594656407649226954140239412916957320159398434317718376591617700959791348643368686228404283195644769718623209461736221143109661097787012037057442909412823891856134492065450167197149590935801582084962829975833988007090561348942569860336197369324428517467412869809418357322166807791189560967361470595677446474761627612942991583802603788835326263043464734424154707810619602078072952744358143079466412339997127072317435988006737264035246380887232108018794227358831276422522131841497736581543378400867948827336039764644832237769895675935055990843535699129573928599114966287757887015737272323638177237581047514925417993580060435024139576597374835021611937410236672142388108156754983533361597874042032065745054065950736259872059751640689353643070199713596639807914050038955046980797025671572747565307964746570499672023879910276513100615345161716381170319407966987285507796013021235805449479924432715264500742030366686630205262275373712710949897665145127398782972008376046062050489262194218923108400862172780187347673753812823135438178446345330174759877460364145336045619813527842675424575467008884664195107307220732792194221007362204035252634002709366935732869804021435030317906675884772687186231815836218827994790216560157656405869623998563881539417998889266193977770163674875149405392159329517243624972548388191086374940408298353599086784908387168935792955675684024401124625081837239002139259811968060091651794633062510205645362061212300504012620862172817074976793057209420905396899661161821242341617536227251802677083558826819799257543355390784244817402304179425460276112554346476015835635786952871884836741402721126311131852934279540002525229383940928736284931495746408513557209144233442094084595431638975363508548941285591983597651025811583614891020723342218037414067972223236673522645617332281232356153703557199360974771156141957316486420682696575879008678470575393763626572558104844251673313368623618847381249578271833503619361581043874675019789520767434752462292336107972518144160572652013464162399274211499385445768585515336498472863520296878036611222422076118953422282207839832669318163087098321689021413000711258321081490251535566671665226457761295467879422253581280598291339083119816036685188394559451082954294572409957630391891325540587418887693998838202997850042740442027250340044514758114089312953817081222225360475699353489646033782662424252418632125839179398289165208747363084452484857510181005043583393047562025104313121169557621657912844246059616334950258358891291970848668930434012189398739734655277989297664327369829726974788685951887388039617551162370940225028283037349819322980887054445608669186509945756979872165507760147343616400422606337349331687795715089860238687706325274846611580747247442207886893409827466399564165905752364138766238052987221710677949385521262940666575230763504530618744385406146447699799701798458222157978310171088422531705604395372779867457429131578271171416211584438436984584129347802515527603873009172340198329343067905705513798498197540210035088488356132101714062301933705662396089779611972600843195722139986936465784390747566529453274828744903678947980613538529443338977528710865691053520568067848058891264933373552479971252965287825637757238124391525644496571223211775372119504569465243793882394663950981437088024539078540657643892038466032922564145623895389497355277648062393812531861831861472233785736601321361094785635614169264326773959597579321246964841184711758169045698688270971447230705275008173702607342953209085205153695701220885492016257455722549059073585589398409857197331244797474041160686099839915620780146003084924351282098776794478940416193041055703561268447663634216737268078201890226615231390343222345921618942665615868861474838542538993807213779581267411667531388039156978923328969151798507309236094020842545135072895091249481091479439817515524339450727633222603800719402151171216467966535295879800310030941126556804318230416186955783452447358869354900134921050478295256010629047609056750044811510465240726671957533937159355299149473693477333717727066495593793349837585729431527039827574010969672813325676125918588600397791379727037974448432798869493059235314555495261775365658901037257383512177095970955162802932608008540158108117110390491791205702566972025284569007041713513282035751451253466914493563684118790959994396854873206702515796180968537326853931816543839115380599452009139732330845379412659225350625642974742659203991415270430239636475076134929025560995961981191216188478409492693927373002495569018148557906571536720573577803533759628053862365078745737791880812100113172523481215891916441581320942372321884324598843220218156673133085362658638337557358030872722247052115996095315011878651217940116586101501056028506235521536332336356336748936154284562573213091344998469403857786354484516067720487425705743462160766094962215825726544739604200112276397216982130550475258931170173635571308097216307138288466528583479110566051542020624950330117022225033581228014886342369570448507639505693574103782931509747231429795662010169479966758895701832731135432609795255971597133554909147529113492343257261332103128295876257905317840178641941274025302076776094301393239231014996034582753977298404431397206012937464231583038867527284204939145235709610541864588569622563124229505624822958374419964709864422675224096401725834467106829135615716157767814573830162203176623771297245372327880865369212722850247624152301016495779370565699926172526051118041926888939152489251492594869031778431042951336554193853869182945238216756747721250302592215437226130996239614571300981943331627867241642102256554716022924368623311080980219229426208373589786367793107711098943510008726885024453897472772063724929915515470342771675634088704340679162183995225480618555915548566252271422839531974005334925054099115461179336892483770619262237747394682603934964851922435282539326940023513534684265215974847231610508632350756136786177136969328885237082168967894176247650450876264678018548059942196765755385920380126211438115657118710697758652876593150618239945752862697272382119795965764760179969465210234768141230391110028730202158995639930258019956214576700920819709700368951166304366817214874191988131728406365502447016827533271650816423837167321456546972772405512112615287684023976324803991850932864690819719426645881540855477016820467627980297085109338199977340646235004944270434571021434268780067534105361410812745271148696838533905997381433601465407202357019571096875212230263762622341667951492170928018102806247401631545493082028310929719982181606443945556807646641171427559643199262259346280633645826050140483962857159513587536489707959185769642506745620441729878979585273708454755056945518019772112996314998012828716411544768304917608797254477774305611893248865967943027074524488702122373196529018028689159655473844175910039495879855657443760242575671066585049130141198030559645642278526890338289617205728645033914053865504303697224392306162928236798414475967830770804587152648866258701820723305940991612990767460405361765588668082125893165492291135093042389980852947347123400951176365254505648191313346733220861976841083568123257030751768982289991541643215282963334757543587402543084945329896609141122861278031502321668904640010155440895064086722441156725381855209012476326594781826491297203505026859101796787444525100376605039713637873361871859455115412422730760956646187964435243763786382249227252351230487926202401587495689978363122258211819289865262714497874064226710216829870073437066536074940258976664556373108426923744796273370434382288571450841307556446954343731017063425752921765066267858245418619955392611243106858985244136547050384104439859081576669114448633006670269361760777126099107247702744426435092013701273660210928553273750556572651970544976619457309890770708325481666951989125055473027839805456797032673839804659530511478597742542112495597070928341426796314637091110239990806612787267828744887510708609003737395815261409931729989661145568552741734017661996006481711038548010332573877163987753295457290480806577066301353491989199936124499468319847664871704336392261351463298996752518517937571252764427291100368015295060064858932761476090987598676110804642215152074379775607376087844096249915316724443440120647175695294163284124269494990780928319927749934870118577477262527895155230865569078520381736798850025542230731052540684889360751859388303057090854074827279502917730236575310693036601181355977097554028634827894216691540577218283497744169588521217096479967868833052694580122231206536317189638802270506485576206168960058954890597832224045458660375696817969367819953599524948653127280014246043458419738602695817516301865399830513117497409973726935802498589858263106357931795580082258690908830149634095477828748711218211396162087464994475293430244019298172013939871890124649571931141098339192109450627737086637176741004168754336998716694909602442293775777784112682798630833261030105274794804250564952536355369015823557242476351564597526951035999080564014442814508281119253949435707933935479683884355853543732968956963769909585848987519897366678468061551020571709634599495393789666574861947517275612891576077936326369911526761743839254018422514362976240531568914115322452805855014725520519250700108591905901270655759357440455354087023060230798083853264356367527309170575926531314018066942698878877813912410489561061105501033866368028237696673860241829470334684747750190438945687974244449794645896204101438469104108171066880535846879479857758762423810505102391927038059148376551731411880778723671082473633826646571510318816962503093035280276002393061311350508061088929837405408318963303530151155519990066672193908266481435062313318017885708736095574476132572824709658538297922068574180789169008359977447805994369453672008764920887355958713400790097226489710267226814358649791038388440835952310407277761648705983893949769806967269687660536817321117706733556896161890275198172519704734930059239381340420096418718311089712480031979150031067340040399436163645161180862430842627643321953786374334923256715144261641134670595729045844884216819878164452133195024318830752985466325633322162348274800273321507576692382572479659656819396921393002180328368123574287769059044507712383866477881721532936330404392860103997293668663357590652790626642755613921311794142496844345672089968816974798100410539981991952318350496445207773625759657192808716023535903194224211686110955709109273668809951883677749512818009779276041726678809470914652291433369908861087128473514816279730433480077243526078876968090706902513839423366689226913252125652500884888532389052340133293343445617151679379660135109068615617350257899002146645310141262198133530647436351763190234590562657688381566009074444173141209105995598677994756511502317587811314004404161793345341285461518723499228752366920600860103776414250374568218025681967141386732107326580899638380307095902786572818462817990522799254373404326103088075792359383081702236566413921962143325484583705742508555038973280841821691628957570362753446220983423524982126390288338187116662789907252912959693503593738699511806268285891721548066875568996448344224478385681641476674341183235647909985248711292240280414107780559361214415064228462318156377847091835462283328366462367477621838277654860757445095448100380921729007382149479233815070967100599598653078995781982621957334431923103493019535650816510229088840150538790821103712141400326125965875606388757552221703615300559217126030597800728126611024389050752841177235491764178151605839588998018947169216557322644004651187148082910783057416472446778939575336858613772781859627054800839807781607672763933595251190978352567413921086480965529187125285904898620961992406294656489987616007188490963063905010364088646514921087641523141839870311682590518688274016313440690331830003650452761480534907533555052513077341939981875854376667247494430275361524634740588549019990539747589070636739132985030549837484705655746827805436039773508944297619991768233477179586576279622937607805377382988177150831685145874117470965969833783407049256572698582199985587684747313497644131674360904366940437560188845602520162914747133307328625880541958858587686799473852350404059153355479136021587796724640623704099375475692487035644107272501035853183164069710826745930767823933497120979455883419437639495246797532758008051089188969044288068878961998936144584963778139286457762138048801232087599947617347094224824947987403082272114967676750569863507143324832468931515316789673724300901922926020991058892215285825621177703135272292910184391047388323026663474020751941801783086500821097061122082236461053138424335921821919480369729164151643124293136166336660236233435905712773502318886112919991331275573445865679149977032959681453425748377083552146728967620426042168102254064248275108837948467712483945438458013933049937171684064884224792352726817704063022784696721755059676627475585710456873167371499189736876104111538847727237767027956059403981145562067519065559813285135758111566415375434578979192717273347200560050383713538647479444314079366064434102500132824916064280932744596173616872693823777883381681973465163265614384813696015775077207265711568258858579457023351129187002832611302285451986239376153697432266175479989165499937127256873985831462221930249519975273613797722565468212970977769927113232518717034044167929229218866357852816381725618658175206088006286557731512589107833745921089237113064363191209995676436626868983691623561657486896790601297786934226317781881775903771266496395522163498327243736026492564289473008862196535711867314036074868018222348292352256475630409230115402754625283906552840138841364644281789955034657405868642896484594082952532539783051926438634955048353797499599807356692643370970056231702459849168619412341233672512930532458751308039976938804282175910871653094980739066640036861879475098059445640990695877746045684268664173970424637461987952622397069043827886907247194379268826176475124451364728482311425087128760788088777422727910792405776751962638938417262798850090058145547910496132289877810360564101961383083617686070473380716313500714537863581950815863111703271108712911886229759298522029663399526026535569538501405308576779499890312755290939312623950896426237455416513646590524536879548367752938711073131787915142927882903356677453910403217157031570495929477349806360608220172346171132158439129291308487569004081644792774394296532944178574246541447652076271803747466460735134246344769815852474767167383235662062742103105635324688400676298400128178087576161162563228247461678494630493144431949123641336938198991982279660883034425929723679302338230804569777891569745779751742144011233208941493480949910192858993293607941487824581859359780866382762643340780597708917892866039064658323625365716429232405417295902772555387085089432053920440975177422070718243009482341258064133137433575939677217840978051711395332026637031019923221967399443520558097000454461212794532991008789671104155122522570070866626855742474606137127848787789553343795721716771399924768587088774168504651021665547459596713089515999661350793895983056350958036906405580185253694183654496624288356103805916373489684895074746339806704342976791631473800604391264227395907076196975874057646470608181772527748801747387774182821115964321945658057014516300553832022624500135853153164616702133708659967702806197582752583866868690197845151723863279335165757471588431051944045254997215314040614587236252218295559182556894528586032170246424237057383025738803480391554413511169136455797377075195119134909800881560155062513493999642180333964342851311247663097890780243064946682989491190914920669246762445930531156501768739395651018684593633673106989077053159281126332228986772980344710534665600274606474922365617866660587608160261458213161658479434073170130448636882981617657117928083892361259318820264067797289214838267611328805050549213183846858513836579837013823204390521226361057507833050348336404512506572971302649095562549690986987792918268121444876026722616615517984991212845416349724334900052981680122669031751232424708511217990610447878970045424936878378598697804003760847255082534650080624353905617618734751104899758184929031699885038599689670336111998331965292903794084651906476018195136930170811723935223170839808884203884748691227186807791950729563353005243802322062832003470795309974001474001676398280349150024354278260362264268515195358293259211994074804285392132831633284524709436032931822946715214304111708434947472926491952295615308344872225458035699066832619448820975330092648845856582927281298474057758591144538277424522001589334712363721981148196647785023469714558134499399727111120646815307000570074732880035006016192518018519717898321621206872866716618840586884809849785380245572727723405427549115935319058404659878651289211283605552590682385390056117651177906237918175696330974533763928771617496699750020666383852265901263442034398199281003947261851368946456480446747974733550084962209084542320611315313103245216445561732356119570565934024152488586265802070405538810608972553010689612812008812642249326006287019507000393374753987818668564595252349871273589632499577787582323355579086811949676832851439736129267509055300980701833894926690642150329026359516486626090526728338757827524363912948467770973283151543903089023725110355469057877748052331743095371412975855117905090430722168664109567106860005297575759662627556785490704797138655108671165730090682676866951304208585402133249140395688603492447102711268477210650673847748566702269323871590972335017770448588840246829795296254368643523704820556466349598790229335891619689214393835334111470845115044810642676169340751274557580038783827911113333384736631634634603087926493290372453942587499847653008272147953173808839440646453723544811859175213397978659615972349083852315806403244566590380132902753647538546432507461209235893844959906293262430201313614942854258897412958840951542040195339168306872720887434794137677723383154799361038389354838896122207300026911477256674588153462659898024006881251402881388469421643236234051925776573476521407324223946622024143604548978191547217892700051808590469075716869284039327217299013010308873787285387402638927630850811837196496880299759663811417833999282789999768511243092373334954877461277079220277105425045075159507545228778367383072356151428822698188568781118091813092591879981114501501153769159080056257191139293650264551061935197823361735098608006213250391461215947445093940035870334371235372847028337367225263966183232400904905827275060529331116977417569791593652776791284298720911763913036614104739836784827267372628290397259511108548378132290540728812548298368547110155798867313689947911014834560781707789711170642036654677273702865907241107958979042377154058894583916078957468954098057554694450245572983944267085552992839790543650695488128035158257981541776239914542112172535137190097104723687562303108103044205194265201369185818708515037803047484787302739607693351569191724699026936411326216662741943760359354916669065407707471128844520469957225003751298568595424846433730108844223599017510878631060201008880129061820746571807579995415124171263691405844809332174362370213120814791813100511907430845913517149918888647242896325907696213603412802291270140335235590215008418187590574472167696893249484693201691112381233063532073114386377644425881002662462749644611579585034572995593249994075226350316863669695967058753249676769298466945609198770409792371995840998948909298157783789735715150986216569079245674915625213787739525209482821575130334408794820296875063278247407255103414108465091292261874946419352509617816361296835095030711848449040402893592930732700415510879097631105290444383947101892236526088510108306826674148633924073817490517194975604634703486975922847844041608602366201999006392473792197608708417743939845588147898517221378582959141357892086608856454750569599281339687044094610604412172771798336889848256617316887952987716611519567132771947843025913859995142500806450913416690946661819697283069295415673549961178206003443940523921555991052067384037433362085442055043024605918994728872696927432431453368799467664600355992920622971416044686713594921865774704805128375362557692641615186538070241609461187664462332460221351450577816500153873706661343171103761325638692441312501728617365666225566192127766531823932117139739539389783756563696707162827377921158157790882547231827634068912204575595051857507614956335735463744221624956509096764587910146939325230891266839715518834830098380274767784441261418908964426311011875802478260548288694746897739857755792030676724958510119670954038091523672343666295740881003620510388661469617108146818956713385224763596883858149990461719036246448534232928331339085460112310750109172108836079594493225143251891745093465600026010868187036016060779831003493710191819058498580812004061450892871594312940872241121182519785364614582682527766906207458325019267322610147134710924507807015291127940946765559193570759542337044639735544569291882686924328230989886347702722638110777578645621102232137913208026658535769922816990382003273093583257402385486768884317588323899772389568903199431728934176598143153179208717467971250073210572376860578996982464010633604016799809852067957136859135894403361824651093167941140344996213393552160100166770993660963517407148703597134154860558037830581632139179013342857677219870329031454257692204129033979406769564712435461056458692158511075728276309004963109576109327430078266080058545066140523314180693094693583400025811439687141272883359936432937286365796346376877820199052985613416104840664364605094281309655110047151836558557137907211649207353083720537725500574930397703170266425086021977183488280827274944576107142048565058864860741419910980973189233193678483110273851001072293241340750940837244963800084484946559765201629164576778088244437712789401418581642776720014789395797223868976512184464225034313107869990071793684242780836676373744177364444546420118573512756298779358511832331916426367927419966757637586506339801375556773392408163254489562181647021876027327420278858445536117674021407759367615745769805891811291380112237903402320383496586534867663537830947182241296681252887442727382245483411449625377094784721109312482365708312317602339746030321524194289258575126951369688635688286731504490282848842999771024262284857497757013535562477675196941854405836359671141630263446195906848663577879689284477414598734734523545119221848941284801624954296873186191741929567679899029160002292833605876271432001143140950058898299031796650454103921446417754680290625340807662867218281808909559489205673300106140590187086385436152282406340072587470430678996770529638225004633100455581899620850709065283922370085843200992944236828951276543895498815346548859692893333982407667986538859536582475476817645294235741688235482666730721177347681693578288564048033274421352548561300602388602604780887110539804705581619278139753965705054381596153559828687178041818890117533296705817392690589241400007503832539607052718019023511791111809373974417725517205151751812715905812409154085613316885726302526770189569370852464757209362315913752979389672474425939867574576395871185767629180237660265199251874908184946503842791088729855000247799546613998163059399782017083380965887763970360825379713250330408966768558772601724925644147101550893125625201400710012049485689122717794123069804496571416679786123146136420981162457631216953067867305015321889763448792751459997713416468357912598354635542388681098971539384409339800851727679278683349691499919172035718961466686927382174432199067708496260915098577763813890646081499021997796022854659650892608127606082643239191226923001106412041186234628924028483023524456753533549880061900540332850588340044026978952851802477353919576122278276346773595162626517683313637782790602298727051143600479037093693022546238005288503180196582608611628587045249956309067828561254427924917615211541432248094271114841043879057949039730218792647862327615376489141751401021292113994956387880383902470911788066396140215781219409593420503883539976763461765185601379296259463208967664940313065647126490141126434658668995344439385729781198952342320232011731144017436607317599416728784580740486266427267797047650604875034605283306083259897584501006309925414510541577289579495514604147050985490637952347325358765996087599736343840183069455748668584785176170139998933852878117590482960222166909305523173481705882650417513000800236479299919544402856432843151705547295199094282400977415003772780715101451498375721970057931896966291313838138050716491054402534593300753500134639873603893376276936608294689242357615240096168604477577314065967854430877589756954997404084133327925594808104162466334868109942111330698393745047027903439872324426990716881582116602377428662249225737277075093791761101786684173973396409075562538989921909156535825849807528896354244993145023432035321039413036145636730648744466606984866005506312328241049966634387792329925324778225498175948968969804765650602582834151984748730062054155935864471654889141604168845633012879065986275912170144325631057386392231272668248458110862280176418547510026758152635910900988010921576442086848196290250582104771261690105330825842372177352030245806339940651919246488870271567185802881130467434875032232664042873636965840028429534407573893317190763823682713912948975625252150660672566015332415563292350484653843966423038752197506036768510540423016439346627376301250749914609377468203172796329171106667900779055932503809682903286540282714370731630795274390479539936484317582637799161835515310639712797865322160307918685560356701067713678420916343880591713797976645884893743036230071278334089544204481674112393382444383831275916210144956977753078063730269362177902309868313569022305212894620953805636642929128393658715567813620819577092768251085665255112160122917698287338520018285437171025086343030634822728917261016341407905804315322896100158212580802188790849962434633134984537085811789948239416409289202733899917616686057207148914324356346641212692474058329289188165823941998354454534122779618046563357919121416246416293631241961952906881815862365065195225310127691254405284524672762414220031572832105339877001287010725489919323137882840658377211942654816391795667595140854570315938461299702646900985460958512537781591219192684163299960893299033115079966513872030247961403054894610135809589145935793153134876678972581975171627665694264447501564371349325636668818983012694464799582374132572822032740193687832258940811000395912929308965905260742995185320572934619436438218556950586041118929707341998411374240314452405315659680532704778936079605681767574683891330056682213923308387005707208468462805992573419227208116614510973666587318581196757982871700931904166382219590660917777953151295477208816814813096410856608394711410509303580561551803647064611968606004848673971504458377999051385538376741186076905563799024494727657579865108813211654129892553371182814204159169407949636612584440060833367018513504268451883620169455711822069932799857879346545714602561866433780029022773352118717117175311912293549934718366759384948666725158926061488993940239557160239659190371863267123493815706182701228573653399310530076310242725941934750824072741384894404001347288547761126435926284458523882260637941753342406701325574391831342992961640362121895350992976104274061990557960419607791859583762193797535496251752490614757130072576819639081793924350586725437116021083956201026977056419452903721376843083334803094845471234896972938541682461321339298606688728907965488370419982997802671871349233974089081818429433721846558829185916214906791414269436257315050650216845731290494840970108800237567227799374557831883957419132561438456455738955815745478967134553420996427812647676019939429652129082386586115064252417263369395688755127903187828101342368339531274784756874672493501518552115877052517314983402586641526784143766898246727970553207418731755078027882103800370630563107690283653436323463443102820831572239714918268724841154825591449880035836674231587060169249051582928245311472267515944935096787960723394446385196522287406359049498701999635440065236775684942313559093100776411407596874284388151919510765349611489529651428766154679204525899000746961535249641761149986658710969521543055198836661031412045241752671335894313509906692331600563601539231938427338960439941413070597850337993642382370062387448465290505071135475193158127779144395949208476297235573205412370616390538668026988999003202731693766589335847658020504429149700523781964341216907004171938776104274526488287957289732723137757096287600567761565130292539850891597708814034617278493386758172186245431796236487211897457398822736265822881316851523736047642614945270565531586973652427766046951032406856599337000001599547187647221736742687604720492971028143041351590297997286981268313781821825109597502962842765202426982744588483815497623957535625369456801271742166531299017265572246397425426512148676422149899609394731176484210026883311628570886500366321881952520899375370510550438504357322693047135008198809039042202325022595108830047971238583015909437889626101133565861391038432541250002940887005643305233596632272739306724092425900791548756857800103553946796672271791504185961153415339916391690196307616220426928508666936560884448109817263672175521138771743851746808588798435084838689311470426930995370072843308091830150963778457647329524325570654481847573681094667638816164738473768652595076030520925895631509878914653073401403405549155837932491538023369736903204010474079253851765274292701038970859957862540125535977979478715176656419349382739404923004562362933481041373803791396605682869206394050945021037598437207970948802265703056064895353013141960612071153209882292195367405395441263744757243875363095260076427284114115942064380747626578927272909546939058791483491712124848671984415636968921993876596683374534760654401667085931378167047536277319769814499309366674383588963484901160720415599774032615315421669184603803265331252629458650307440407508393692477568748458334212849083776831092481803817584619080675532624970006555541259562383189651854952372553667142901670112162677435710230753686482227973393216879947423068558585479166975479916397636987683706375697500021447688474527852040895849971039718324617403201552026899403938732409476680689933518549821241815231732558551296271679103109007148827102484117683320816477735785541128239319238601183221232046005815194654655056445576613285451707770491858232330255818904166725348101486873078872411576174468038447534102769059123758617321909871907033178189885028526785306338680609942357914376857101861293390924134528951856165191657709881069097628909868056496131667099681693808212083981867657587000247555242283805498408412279009086358568972580584633445283173991336268977060999170318828474798912427700679772726867847161957943178458205971075190802014104922457978759501626926986736737198158455972480219164243008947068947900814673891749087384004924105011800057932935338407307548713380861651182628459008169271356023728261162547790007317019752079044072846890006291035145464635826348883504339970632808206318421770578203038196338919668319138958048640232501726624913152251833513985706983873835690958581330920578264406729577435578337157508252450887536158667650918382532332127572830053215068569672746598262921436103856421987559363682024674228361288166378526092490999852059004036058251310594142303660073875735383674857888926298881940782556538212479860595033417028847848306917801078854602406382937930681112324040616929189685890961953978147211499311740932764712114395549592426114875186951719653984555669836744661669171736403169824174826782103580293883864545471405199505599678217965675375495645249484572331741721374451990691658132516972893144085834830732437700981760723719447349868771916944298708616584660725920459178430627011423216025905535748209680305228389413803464481548135002233054793017102741119110040690620911473905312722183168570531021352802803058553809201216722043995396509751129715994819592963723086859631208617404511071290112321304502568121372942379224360759809442327673025701717381946920736596824531962063613148845508945406876413499348437020050427663826083144528682363829181582423993367357018139454243100831848052953837364113502472447612743596923827719659416984725870224172817844411052137121205094688462453707307415991223842080502692338301440329107849603638237150842910004253050144062093521776645693685836470587570053854928880434395588722429664530694310740472741329912598112420033546418398704218430660087354299466177948521560065987405486828033571886526807543482614398393330981502276685221191794801965791426269861208411839501940220091891374507970425144114137738881442374267766478886879547855122715569154085824797709777010572130169892562799260886239056892335607143830457986867077850259074869116112002392232753152429565900568523402228371159789322456247610231823715218155343562518260203915734461680733629925868492620784373287517490715031604237059722604423771467494961845787418527371693968103460977919572077397690004181765535032773753250463090247280293466002628829106796470793510750752642543578733676479310593875025767378367768874037740455550811886218159962952601296359394772155284518521294253818051232223611796035896779861708017001773555843985488337777518899004801929204618777348960249138545328268554811388633459712509060433978898205130543815487457227470326459526933989895279383331079531953899602450908799478593131006754219741545500109290842920223392446437008768783698479416793952459812955126312847141665544807146038093905365553176823228733642387362582710694342149720459222787758703657401630874044637100079516347662206119664524293205330926208897128392066554157760516002330003179636532969697472187538053966568884156730819955416572406431719606749648316162529572821082470690601134465522418854846582803527113205007904968324819090763041298459154889165164864239971619305629705487258311347520902031150290737639647250045290418796994744847945664745356726589048391175134475685300720021936686957368374886942811984890149258239722107513256467653055255670736068947023094712982431398476876826127999577313003658324671027585722122714042190241994704802423236408271026588309803031460767104459494559173257915301096525737091731088279680357104180344451211836910162564930734253248968632090362448776625702473362662711094706433745461302591669243468416949282563577202487894454255579135415401249619880955124050000856312825987128376327800035560134684760109953229182202841706944985391301039286201665178279842730609635029046018615770009245892211363257590060377177416030979513868381690170555275266396807667827017876396910988967840285390918743274757979404835608568409314981245499556209054468680218657394995328809605057596852298950338492829428285022176342996607440611062731245876964143145574161236323386071181018802711320845969698194784992425171435207469968847625010990603747498991806754237322613491192676471453193945219343167490334713939360276392653648180402373174320479308216427794358496456700152054739000231827387567466417513729310314994962133920271434475573818121872677649845474106164718326654795427730350170810062228239661766601709035100809919777546067912608431639867117084558624767273065409349089055981583210469852122748081290839830179423161871614180096452925324700801337917595813394610178692634755029926832641650253039303345447592094286226081745132312762514503705537032722216623438832822822190213287375696543390072738916810857983514845987444039881637761398857872701877303857389688517730507778725823192295805876264799525964490483645164713234411025842298646678304431424890777393573723123543296776135313562634630976383493745916488189135705818914657229346705387849907446926845512259401393830839505654366374235258526303905000067694851608545653109119600459240312286837768154424639522051882431323983250093544670719895304948841870692910916104505863949267056207940703563792819241557588707566331904796558565589957046950432399999521517226608714993711697841079111563480369183230415624370575067807101549820135352883302617726137828090756840887001845026775783250609744714679999569435272549757649467598269996755104475792496292520763366007556966676036790271258622364121933377973722805766550371017701829801873497381567950951877588201243098532717902703890924430118218097111150838344809201253490437848204683324726440271070244781292371669906030468960807217819525458924353367981798535045574188782341088669184644724133739152942324939616963236515469579730310385388245197942233864801691968686389082465993593705559064625416730789493168303084862320155808553136389432169519630619288746643639568759610634048551001908329881305502065857530930963175677538881837767666999690869273520150605618143762217669461138250690499639334640174449249095117880335281893177733364749681016832217565534001782478987723320191466710194258791747819226073193369526500159964253052922007167149210574650851795517429937832543043843095720694600682726665828318553718686700073903281663128653074005322714273865750021813230629919319253952675232929613670176236246980033526039073337971605114514519562901563292218467543042502513835251285890921394476872966897982205727009720650728341705673235827396074069578787577159566220820540607293030825216342706766449110588924943016808985474605138788471236861236704310592989195627990410719374540480154762608639526534142924217209995819504914939256830406071942659917903008444116479996990623134294134680429904024276684625277191644378423022734589899746073600693967200687429343006896088163790646473123791319072855725008844421814594043632630506361968754170804813022188041094789977836020819118400152672903121268936495120702822641476759384418833640256660324487821659983214607136715041574919269491818157073158011049159101462114772409842451332619812494568554876133769469112175533650237896730416907756877617327966190538169694099634695321191934860488524894056319700544458408203731248828780124829250144048798247152529330554739439808283371432190779024923871590543537500601030363241514063401836752741148350323755386139987685264712218988408799813641825303396169772203571264758805641074938427565106766399960930859008052397104235075348982088848929938713515190067817703435055985115415904239960963373616963427415013602292562660125331329591161285649038462895544274692329986828649852928910290191005931300034518225059053570298346195753715868720851529911627468464539243006437673291538616388286860979460602444015565502629836959121096870907312263904386478178110631809165149957169199134643798139089141476537302101134286170885042982171918467837517746924779618901945329012308312980470246715747335201683630684049693923489869756936715451941696647802384304504102645721395380369721348671430654612690436487995161120650333471360434923319614838488052613807577920881653509514326382621502301762705847074482826241546932633496139060364771745384693476584292526763915825263928300093848926196407707599080456482437690015349082974781636822633805329733227783649960787091749339320922085982373668492625309697329004406101021958916725445808911396854186868571550992340429663712164042793886357541020260962565032381970585591519935346448025939081756816822544798953142660656173741935634771148611423729356979839496470049645720024077370308321562507634381309669372017871894217167537794372317769583781246352695718763464768660900660282966247932360450858607029077414075268524402242963041494937000001106683666697269762419208077927484997798183928182056268885682044642895709732398430092458454187982968117851952507307944331380082772082687214026276282026778626486163840484712448617580380989827545527594647929018388211691187308695798146553116797383836205546100007186706428373614075457653351888434742657650934346532248970985642211810489284373676733406925767306079455352113631037450417990309818270523500981000983076584362177212007419717005123770134097436500504464838680746959569031176080590023834691145317804698062601944507892534708158296220743922973275930286262391919400319760966383972123654597505636262402332914496458932496034322945423609358818114764280348295381134557165395030306855959226907123339588141062866579535359826406249691835028862922974929147353420764570447354373737411632644261145673590313984890823161935299473075264240486939575430148128551571263191730773230579839371827526110955808756544009547885946906544278991894706477745183021399979850036457344346404007627996707779113266348834743735656538918822308489749540706086915558046843311089255499311961431435189859729882480007661712121845837187205510120796343104753189416564768145490308830375913051465863095099605834794600302535893377772740103357209156865092982450911640253249376289292586668367093598560447620438951343202467748121878780701185273752528798494005398896384523245302777265155389127700685840652684980949975070279327257525567461470013299051061562490134133812535379583645962631882032559161143060154021504297210460193486112999038536299515582307477329767429402783974385533709125866747325738466916023212414982884043131042775440385943600549009610738231357992856431300171705559824835922108829867870623791783831779135409804488052353154760651888209888934600899178980769409401858560932111570993294917967160657680267101876663194804770202640037440279979258448021977077681963247772646515973805348939343714838493567659757289460042095479754704791644937824219745461321133832168285657049585789958368343905941340723984194446573729523309960661166870761701809985068073425416351480976206007921310223824208756827778914149024563159287585819440584980361895214504063186999208141020676398572655922887050632999715057313549080839865647089694108249081226361573219812596906883731110316863775852345075441263128867062811834021876500000888368716629007011703100861725939243560006666566709722361263795371760800808737993252231088758351589924289492508023393062458199778927885283215874091436183367126697718716428832101861079064677769816482934125213340526847645348258968919000881244538084681105163225706268567052047282214701378853580615405360459309940335662563010711952854760654827487606678431531036182489879366157046812207418858772531290144581146394621041809541269068294949222019567888822984194033397252747499820759776305280982212981371506421876938429534455455575839488555447729994318736195052174733166495634647591303666989042583984857140363740615482824565521603301813514375607338020251504884854332288976317492918624681172609819173347198810482742869280960682281740452007183073740705586385594501213211187196195158108518207335388728812867512953839453412672752479399865741279668484758076373494261993376813342316794810207694385300816578042976540694495147772838990392225403257654341961140066334820949657479352928701427949839398840500562190283879001923313375233214967655663862939506373022391742120443704356380311752553936715030737208631628214703572767061832602366182964176837259356955675224660624965544989973821197516127712137364462613326145175761376126298531247165839771014684172149711169341789616799129491793526180219072679260499701153573907954721853117467155542937014839161988849624035492138956821683768098195083759992894022947430601593219134076198389956463304802830371029835658088319984825982407591177784254552034843762972155217798007339091859640678073470542775487563228761755676898846152219577246876973814616567969547462079943283246919477859000074230791769412280110039254333903972675880097396646376952974743505561364158576297004779669366808126671909113374778334234194956478093382865762083419917750867787377745816643265392400406062066736645540648428326776410735133326655772310096516130311274708834875116534892095572723490427803278647630192754402203125234338671122579143705286240006538488692234147450062073890146658109631003910901927092483252448695404169644726963019802950119799313654757420420951157504057578146335868381351575591385138355879933213778510351677215200986236587581564017675968508810019391218367432689719665227423854960183729829216185815769663771119958088588726582579746930339348030203367496186256640481515888779183521400652968503004580677537639477975696496212452376345777362884454745066566814950266811776518462517437597989087509696288667360702515871113649578296279818394586670952020216292013857954325686673733209188768523023121976611108005005776836838585002121401154871555627946026993462024172364908037314848321472193137609341309968831911356621943175971813513872721917160235624337379020702909627139958870868370983506827022988789041003035600259858956264454539575666279767071686084329005302334284774160260193884076801349071980709314306243694856141478842430141009157391113128301987816101933625837039162085541647333494451815979937621193139473359523094878973342236720168311104156014782920305390668547749668699099695393574992504527352740754712283117007545044671105204308801481177271813600206092677691812747654598742626314385700856367768472449112617255219063116788997117546131420000302980018536061691674538305641070068120300878575625831820199804656568077965042274684966474601811599894159506472484165785529112405157056466816298703080725092318862835475573054876932094937469444948277518350420579412471558310220534490109669540926125165068031372977785558608191031522839183668740296172372770084075351208397541355218160746241588022195125631134666360547458946582178652567450471218483598957789818828240977603355057811656989643631389534664616960040310984941833731298752256815378185708755146725682945959771008934415337573951446487784379360226087859381714663873497356210184376002061793434933937786901958656709206347141554588951161896479484504783401983524624647923878759096456085617823280551634709185614282505256484370020714714093874407464496417520733363161746411402312534844792992804276836410045601908831777021267540246518083292128109441233273016026203526523077438175156556317548603096630204080150660612078058231816501534171462124226680341207047174336429994331674886312196081206209156120639942070794959526089668137254162579489364824098156092817756344788511110393354849583624945644393614789587053807535918981513968646161201444162576977823732070168386912934082048943056344908161445613359441394111023481057897844335247959490637337384679913736559456293230048536394774411137416039820823375384355941144264136437533489200796284991651862281939862374074692177516224342511761902115710287740783292977996091126035435510162522455749426710659022026535851850401038641370544700351280849053589406098163190967976425642366492869280054211261093116693208643717443483146452423804050489729521981107136026935562958030126857475018004906435697210230237039978461836931335476799679454972619192224565295684021195012798957481206144449094932771660924875288612252170916871132302075631778448926848057795673989812201043743091355948658037340526363344254659179172885820500122779233763644189501311738353263742180416028209471171843882979775583943129704989505577878989256486060499604288139051259009174165419370749988736491296796180670863134192168697817932837608995777896121237987193967996626879821310605833735756210471224402936791521182124216285153277692315671881232649653000057837591874340616290482206671459192251766729586500743069393690810206799306775397921516129111691399712251369227004497433386478132641799999024872319709806833853011559927630885604030941930079629973217529106087540905861391814181687648887468415727105904175178801353896336981064031709113531511625820962626252652370886875173162528728993402434060351448910226357397452787705426288501251754702303803067319942051785653070355943602604616366779123284123051864557280324923000030067632486259639788628862423401238035662444767132131563126796592496284457869891836298576892894388817276137912181709694366884264571654328275822525523724776328505833256541494706455243954926881085453077846522737158534972548003081278139486535465459083375677302962140643016033263233539311760731400450670534532001200695297371032161590618430868962034953873392429132753530912279970108892937588182482247981021017807573698191066141478669052259213489118100893559279708121230072556735201775777515043011222883641141193385226880187445251700886124697098965153519608641860854735618816665834935969604381925268053795077610781954064020367158338589298819569250915022576873808637537049489578059993068353952523129617412445683275097072243337133841324472570251664804455356901569205973350001582361353491540404803910983124278684522757768064672013745476616217203381244798807344091667958103672464293140577977377335094931616003862109888950466638121827438100444266937416365126384473554792590756786220198666084071991415972371480137177447134443756501367652148818930953867504637263743392867924521463775698364324832837074700597082814980965291561020012896879811531530948626137548605583975379631695425328510202530508359893643576581319015508723658139853675784542413824336031670385969080384724143121748680945840385526136809545192616459003857332428068670589830839712706853390085019328599667901890570879460216693278156343597579594654282806500873163822933540736787025273969251169222870641704282473158838452428451686869553727274705911913495367920477481923317972324685218093207874339868388557718161515184753913845427517750577500218789511039923673564087740600749802587864370077601070350047710439077730893416375415232546186743576369790663288992652317270096351521667551046694583158456265427412248365017068553710099153685149151327397067783305660934662640722829667448260115232948923300451496722016317577786759620100875995156142840109070397385259316202539769203128420637010546454365171434478338485026141344347823538816164929655580122530379656619208957892982006760511106283514034676578504209002538933665640563486456648248525489774189608174861748197779589866102219444078213458912132359888755845256488477111752380026397729239164873282661132346137056966547888622597739513308192644933484291434978507543707577624519600183367830810051135109942399608569075929698149098261310260963012886174062907729910023439222238699598042247115226009795932568661243808327409690513777640417929946378364810188008445162178741379537156028418210699340395054747946234205745789499487157830400239546875014665573676418502289485877764036342505363606427167808502461000840484710682303541644552217679904569408080691872975521642550147698630673172227655859740369174129863387538550895692643918248831883576618868919892918550117332298518475727298747416269796343817822658002358517382560305578462747819567751379347284086782360288172602068627318143202109540547555782450708335946861413084676004845135331677461205140542500160171313750098671169499466822813029808959373817839838363259441623022469802765558988229484406791110611719453648214179532790706112557436011919561793316742359565892828839762841029360704894696864406414302643204264225731092750123137214463577631066497133441320146913587558663084363434872912249800392087873570715309336601229452288929780671294849369674683195424180357092382818769666886664317523388897965781890152574799542861891622994387794297434836115346851386071141036352855762965009768982594590557685269990251004917627983851787335437811029635391793259065301662682748746986666923265537748364872532174230562216336492096829767046794452665697273995056072556733403745232656836720914661143388451509049789818574898053192725596797728890612084759981389053284020206298572249776318181688986562892250136973230415420874373386261529082678687660488062759736799981806580690328016660927367259899064834000095929776513106220279368457876599599084381676085013871562029799288855125037312298093178830396291738055342539328308325893867972728455188425426465914555219921231199568117670708711650025131262056238583247258641284719381537738011675185123017349643511577230147354648281806744129307166465571951895814681940635067560495911418073057859946649354860203802261062600603726776475132569399620138498497962899695121664994284067940441803717575627367401684399050149163630309320137808044457355507584230668439827572548489450304073033788139634744321014350997223910621452317845356248575935672546919391953092901160589996033749472439331995343392468612550795364354449453737308106010868029457685184970781753413278904515396248058210111710443780207903131936685395622769033742796433153166276541051258764058174632596745234664060669427979797179390540165587511049328522072052092329641461999680570679075223009916828038362007339960007058301954010923669996068339350099532193265329299583300897661797090605258924296739058372330906233462631228036496422616960537720645267767338237528933486255532450715032589757180071265207995657969221263618748010236251282911393374945654549802468911800757385911307915503856566263343027167207916187902641953207306388930407715026125422086186380263396410029260605155254197280337717858793262763960012184249846281779228888153602931171421535946522353766591395351814394060392382397030805401316327538892947355099895647693833384231879178639249467884869030454491127739821506716594430677870955325686228824607532926637906268590209568919651309624808906987866188754581322536372052771235895133370969315376990685351443117351276221062625474597911278137906915847080514374651484449923000777380176818848973870547337121398592352836584479407324903660960833378996365508229954844875239015745137413963564517157572992534051187010728548176829690324741727938359032104999293122674955519218481486221173542591056412232379572155160786943482494776238231005093826096242802019105538157510084618822072313867846743280507040957335681063525667625588304346194869171313530354939475742199913722721856004262818503070266832060481041831090336915570046495971430997258770703290472255203807178486416539069738611907398203327165219166025979865184711289218996999874658407099012216304360309971189175633917812593196742501353320275587049715426556324985410934030410049637351323798742774688133127537835332822219131095878298183358637572834232004886522218514696753741002592563960410786097880419560098007014823158085027860466184781562902568039254144692099137928847639746509871098844425830559636730341590591082813387933114852329866102957566176868526575381094574990185854638602480232078527062758084900063900925661280344721734300770787650252477473852828138868328951329952283466677574824422999590523143219033988677456998389540895580371894795212006608294010762554542812381091979283410922152736969955976907526917710929656288576541235604149520952665625635335383792444972213340622110158799545212001947927573653013216270796133355284034764891549397100399993300839931277879378776391535134693269696800127994393568685032523856590338531920149139806159093624773251968743852433107255889988831505304762556906448827143903129010135229206767272445894749700941123054177436877418599161007180688173359815038697935960467442420196352313648850938553614983163238951486709106985340918169941644014880573760803992278279049036650285248340452619492439653214570360184212656176616918581708212367253923051188063398057296851141507411605719192239705812959020478799219643909228486569834244379384035955147676218718452967042309732428286711280251883309115490951050623821073777817176082009656525673329129865642872427144383574689030063741576804190912045324825054020670450566998711637465112288281528952433793444295692861893830206147837014583610400351245807817263388242120209255173154126803569660086320697631597831297558308116671174489923719710566481579093102364116440776061241073745374348183385535406679143015506115636787433740936313178058052615714689221321339526898401215946652869878590130514246350009825214309586482595700202674775308018139581102073587335046190898749168935701641653741944005975574987534119373214729566342710889774023719413709280154523336429742641827603976071808004478905925347453341246432339642621702974811252488933575281522427449390970461911471860815611137780128954027874198329787420377476342466718359252174696772871504373107544759738090504613860741905186268632368448900835955769198877881551128082025952589520577274561738885123262549781383990675365912811025693167909689821966390120372401702645194344006148224452408054573573120990299219197446747609311211665358738225313558180929612379875460406028888299790433514825010930565721645173334311569175112305039178458384987072038240751351485997961171637009899516283293306611746003269599787483336096144459659268127626754027687087833376508506857808977267627198811531396044348401693231665722124458661572236855088650593140443248202372315836642491127557855253528582115874985393313084490684948881453902922433303142785529464065320935476422030832938872666338015380648699280396992113105009340987504295088567986059703216263997118102337968459814755080662082582949220326697489192732782542022704150809277902589883448594212986852326308720387349372570724031206874614432648775938185278672318986646023687228508736905866225272030245340074621014627131024193202967590327241474595788167733331939198233193997394023614256601643543589885107802837099059808920782332788594203989364452839694799641622832082489191143555672999186839468236431327677868692905745302437135894080420885351569249232132801539579030049051419282751936219756335803068884104631374875846801381036684669038967478548811534808251578106485874181395600647913764996326378701095083903573059660957380064275026970939598533350925151579516945730178371225571761613374740438776460972424278375803171087364074234553225663529189866565427428899255930700911625038543302832929244585734361674772810505409027151705691468647137072583751071998757879134907587626955224916117570441650800179601841449723657048674169083031673335181643604147769096959282547673037625607433771238059457642965870472103844419301801903249466749189424322498443028694560385346525265224474298335067110256792747515665571132677383186116838141367269706192926393934288215347350130319031512852359439571495714312646993466255672343061618003870536977487230100033818135736182231684644297388629609400897610141942028921617205126726258589590114975245500450892037156607976904139477873423305314492359627673275611445999633366124849109897786103099828618227464245354430016957016134427954840004947625437493162847017025459054645002152882329603100980427342134091233532646237955095396988893110008995165988854803310570688814980476851581717460411921835762116395521976240909696601597333868444527495361452799305805048737390221098588039310616344665545815012999226226825016057011170575090329638581036191464874764277686320077732941694466934049004998604950687361472263141887061203448275107605933722832031213574655549450964587123459774073914489140698253784843931183764066656588474350511409227900011582688464681823708192668956522407973689460521292331603021122444680990675637949542793358881166167330120812439643069687844023392526817825205523790840023661087642085382979752732868255426362941713193371759694922537064519973542808329266470378235170547626566886500411689261006556876229338527604804374080703353873141563420763504695781625318964396665511442604037233167790253359537343982965911241320379784887333267689345992667998455432623742834757731847305593037392066451644977943443092820733050934880816687869451215063824541063138730225478153587349739926483201332934215986209342244765007387746176316164181216174414831374656982390155336219938416526657261318424424385503174055054384842126769797467490554631743710145169624539095040636767753802869102580720074847979029317318681474159824169428745814943389322983118677167828974502909378799150704772201919356069297371102059968926879423104907562518434858457885720165301887824567310624647970493479952692979948648502955108955491062262812313756572978658340206644771483473904977896346902619972860061810008935886885898334401657886438379819168634585257492817461371909534420683506983099852147587313766503725165448683639791067188560277230900913086860405644586604138039831893880547642134320090015013641086029788173401725114319954472346487150143658572965145186684563833734418410849351618472008661836645461184787669870594461075337045462206370399222456823361438464327900002410325557523454164638062869696059516552127998079831395368930250557326215397308521571149314579408435830263611420161595530565638769541418580509690037471011351491900287345879857828461241191158133015730884684523140008486086690076875648336533691268292477243638243548379190885920637085683564614084440076273336449531354899257895302044273553921278458842075221475266730019408714637469958990233346483959329612272139392627914169713097185614504773617492928735314887363128286191459056365658022163066460808757503055067476752151336853986754060743211149122469980257751758653413358036333564475738076079731062097578057475179464568095402764877215641247181796451515660705460569834262541925947399534410126099354444448200591037241853884407293815053156395684149463190016110454027177278917740060019206651783308731022005803365617143428628538215133999871810705081826862347351943907036355448729214982017498145273795612315756155264441520083010484660365663085945704577883483609721394421673157318433255305320949248932918118886868309457602816623138405618378337699102980322058391885112789132717078668505946471519562800303996457086405994467740713233629750241239232862247121188372920082873728817679307536291881677050988984738755161531733366741694396815719424898617409856825775610317407777427225571133544224978600346616297828495597989466842234449846615784636386955451823711972395373754498271008034681745306596125605519599359586323422754498510419361876663249159123240438777914235247634161099528794913421151713578036237548572983875382416724082169543442561286666249704503220198531716826328324228340860913118776482724627350919178796366776449493243535846423211712232800750212030953244788705965355470581161845454947246594241840720582176320859436082678954033576579972168182675964166058512880151021528859707575167013265345862387247790050020679050691764011848552514757259140086342448854756967384390037429391226115149486383687234820973912178586587138508476174842245423840463528971417066231046890423286261542440934228994297507398150266657847693107807467724010291556058485818335092437680043148289409001819488811072958744060948565082304986386008411469094516830962346076220675648865783639654463644528505277484773378381135709552093177693752807650380900847801035594068119744702585750926293421059790086719625240563575090912455233729495756055874571071517734003197914341277767868035283305778044415722790769625674304137374353378972085002961007153913335228643990080779108258999910052063621832269292313345989056510941730047979694127546527023791463435503094598442637136046791442159315438260534123841314370790855516734804941374696264056634814113170763558377102508592742302032868620173273093489070519667705689745524714798696234187993593034729476866120000885828755264056611228244969511050022110102492069817534740251485466230475360903281137028217934769336989951380753265339741093030321649202493549985539032180683429886003748624729573126807217710712745785101308839223658297166740089654433936067631158369731156260535449371327160191516734074598640919293950382301185836770487971170383927780704871007447357325351532570556720924892660815083214991659067116644468309278675201255296202585125612038825085853528324119183135033800845850846180650421387098908652328769053365389940536806670568102725283222706656609635646027584019214895088269315245583173652958649291916719298613911554499967264516238540857954688491198535636721931126358599097439688957044259675410107210426436892744243322602847364413232350096698562716057402795682849992224349976368429541455325750119242251710190949735679508077349585133109126003632760696553254252851319704608288964949714915158536221016215904395522676509867185115235798605305327990752766684233606104897296488822858279497264212063352102575553183872252886047101979503587292741960022657588527571272612962604003823270707743771398375256028773701481976378537864755609122708046053133274447355900980728858575144445211883516145283955341050435837684758114879534843781028003227091675457051787379014831098560032407808135733908138681816332738131249673434986470310936884930398553537786309662062757476459794624792045822055530786831756766180878566728973785260078849430306458969305459364254672957156153897979763804976329962613723331578090702366027818276152367786242250045551838876681901466983925543117413727195397040751262191972560399481542425683564820882387610757953297328449788093123839752084347890989245134169166090164473132173976120928775616549218072617921707744844152460041351382735945441025680941774946874941994498875536361224891641224136689231769218967176243466466986014423080092055802083916119796378147945081476054752836439156239371084772082390748194249960303760565794347010096324933372627413875997938035998318237586576863767166078423534171327853160049821744006349657195999330549418295379922776716572890026755333076565761941246610225423125708906073305402914692940284154713380519957300745705001539738184082557548609655858457544305207275988277142543779025214373339826412973600875049728671093425021789198788090865950241625995314090974591730135784509237676581241072059582894458858881583272985290759070712293833274075274587329804870834155542197169218149680865628113832839691053470006704673327411137864653323277397668122672298804411021524237861999771883771066527928332316707184109147697692381212325588789219099103475030468326601496311481035582852860511373374285370034751490114752773100507976564457903148379254496729694600066826733612377154319661494423971602845188631603897705584806355228804232895525332812827597339726400497741588426236305202084754172337439648131955966768939597298266660746411297346319847063638338242612130811867472183546478687691447940340269213925525320947715464270586017505782825691937004817333292256788536257954774465349406946823873273023966321445507405371686753390335030698834932879681783384186829548285828734539706011828595314359370060724621172444140068374825711673357659852384489668818671584155102177262344391344848177655714636915238479366966476765697242752198314073750985030273150163924140202426018548330606601806336916078611679308876580512158715645618968312448370088417157366647319265718350736578397424947848296222487847472300002449512032486787499548867635943593702852345170772811314314809364224638238438348454080286121703022126300201313694584865465326676869642748266850007436492185584013434532303693179533455172140743610725811052801354244714488025766797294630409196230296285487519894379147721129104271199460453329243691035067466822370782644426917776179945288940537060030942638609783205213310189007470295672630111148547138609790958565106621618100616678232541256910632813772510346524000464139047137935567847903692876737836572634552755870702662450821067985679161210767574516930964928813758700121885377060948971659506570822002740052736429874992447485503388066679283916856050929732181367727540058864968322353063539468842241745676302977171103738423148196706739133123785908943830246976931507043442820379651135402644706316316731546332160129245920046939775538995992017616870312049728120095227888875745792792363470563434123330099666855077707212820600049550007822125573491269919754181703769840262139818414348913356394315918733571594053332283081979020919850048632396026101336797667587898100586967736724609095678076652350604547609615298712280115853697394931154567370799765966691138504260561996665995551538768275498013955015962705883236718264660802035641002788680768915926164071506319975503290760132083129595420578896291175224698044616979933616705665069793721602940690096969653426495162993455024254216524621161871835902698080630372472794015778328849928221280682654193256239025729967038052408189961403047075637605949346606888077672220711494009175263522995912393005472177136729815217871828792537377451092936735353606131819620906632642426532055798249175096333325960790941137958895067187713550614842597820216928991176412032447971024495156441142581927227582622707029483234424048802497763852189784652745348472379658955226107640890032256524425752895049064863327171899185724960084958522009449465328241575356022434335406825929909133235030546183857403438689046057627400799135075533963572658612203120084918827822587632995314373558818310726711174666840760664897716750327383299264203494676992950979664703602545866892456712223919151754731367370743567408862716360364501284194671789913111578996628938452799496682756528410553228360758453386957611815232976926199503939187137027004235656073973687782004704610477057001347763384432343713609776562154215860665925463063888964324784320640031320243790140898138025681048023983486922103891186079365323880457939448582060031781905415986198148971238651099675790221189663878907986439565720792664784990988530880560322713212060175566075884277457314543281535331481743789076385985277461346119818374699613917010613181795503665366411695576129729325207082597431556951048805701505687448129851372783584734872586708311395662733388815444371570299395978781399081484502754567755370621957691457375562987321094382319883142576920735926432569236657676733233384041637542431228447426851025560966653241584029670408052928199012017637102404507751884299964727631105734752842234159088255853193931045026795016872039209618080549416905548330782696281283374853865874066826299043422298044933186784915826755965207757071211396195614549825127248968727456892114415368634247442056830267147626824510053696756152473922162457752176805492328613922752346395868685805236898795862025915740177519237319441032244056725836231595240582045206438063184975733243541122177345280694013009362016097648238917991780629564461094101868699280532931883358900374013983657529962275454282322184236228854765962826348696422206147943414631586755176292146608399581734803714529932252287560882532535020069850791207178544482101200617623154589557661260990180644356182469429468718403265614273706818343587481737981556314085092119543882378761010196198380680541559707512196177925725092944567330941607471733755137472181997757611329901026721310040514921275091637129069577173047001432327126409343359719266305137601881571739310404818331849259802610535000463650310994026041414872427485691249950632865056016987057003766492402721955419155201499493008538298641733421424482527286082460523803339649273840500442524031989385654390689551486598956425641247444597807756356784773548869305474278940024283038918219642456705639132388060065907064397795720359962625538655857902258144483311416431433713150464098948752217581693453485313875410018187755440767461154236582303405880728939788681551444666476043456960118397792714788507051141207954718681147996113230954120374969022530282029128797947220960161929436219409476138200534823574914312005857404924592052812922491171447734321112481039819194427378253009482130273897106363718601134975016187620256249836666930713434709637619343112200290209105308375414830082954499665754150038893983105964300752714532645641908937564976505596680572607811706152226273668173042638708506726146854023037227790573337184858382122057478429908130382932955279295701456224132553217720602277242089210746114289849895831269277853640557044640841206131862620785836121628499677054302820260539152967767800478038239283775085038353224883391513621705030361990819171713904413973723531858290912777656075195642115021633292531142841514810712083663383726984887314534096909427796595334143983949423276336778700499538983296968595945693822794734619932344081034824112410964283517617332437180500715088908528516794340638554613595060964099032465635855662318092709285522901848734221241750969527690851010197034921129875943537167202809684289236664214942365187582015406328577943178375206222520279177418663553434779266813703896536463321084611162743705496764006846508517134097087554200435910359756250711135492075326661779991266983720270191260773304533956552556217210398583614016489585275455607007321933242948071427724120104994207079113088951359915464629898804096556439923047658339225186347778041481583377507270843516841640057025697839553285454733046921132501236767080221625250506857462885738767981862869979677508009781882608904340445883116531729776691775926722660950565131060022025913851371500965091916539038432282982736710838782525204273305260386238023005764029850291035561700055160385356959741020290751077301037956018153062076205929090453689731400052020839728879630333433556797943130016678371844397588095629795517489677134941387471060549998061153549464816634576495337158411822991325193629729383053883785288260350799414600554235178784471544993800555354626683301597690152766732178732124223118099327085613095929595399403317976033031242405876072410383904152839078347265789293015849427080999104154861347166094762144278803196337852646287862338963566166282556656282655920093603166327720504874316705826661562190899910555224796936928680528060022882685574615389654648046490917029071907293142323381052371768542003027254538954081496651580685141980785905102283856868024407373150950720431470863095093554220942202234235571036867411725103977545217814881867851810682164441699109238107969768157858960397008026583861742206066716776234938896749500383954388260438231871488021544710183455582269279854114933417684669026473853346680285935544005300536770735109110768499799584920733866782068777183197617841494649208630302414302405159049131156673815037646104736630647458314444068973881665555588238247928042620280642514822724138041817118690149782202600137978606121836914676801584557755193113834318255154903256912154649179640344858736759784371780664819393269316042360314072006582090888682208571419313182397765600100748811275771921625208924414158249934795224623122702884592493699221386100737451992642725472841144461219449518346583042192496887038337023430523637379821286567472074409496003693284958149582536595469883732843616921222910450291188921252542221805863146080381264722267187501600773348155474514681529394302804515157888018757280756369234843389461409573606411940680969248453973787306481079746233656407217671125420667293041216834589007319518044729420403625591060911365952890399608209510181385224689950217410172790561768744024681567189821963908997395551525137317109692174930450542570535795884216307943318726154956611263048342999921592656958659061049194423258962201085783707340209161118644634021407147799979838390100446910652595991118837412034837493442470332712469292553733610917763661511737421263127469186866363929746974492509243985414942103946030098784499425916240238809795804879662634002513218223064305270195078991332012419639010011202869576746732131175676981179686637366809004639128218297943280724451051456547308829521208279570671622849644441265837550296163298814384850390403523451434927080657016931177089968960243308686105489549249022899959534443336874811350031741040316896742977107992733871946417792128575987148238734022519973463826819616825627114552810390140569933997136290446707903927675578761778566264869094295677025111123661438394694383113917344104454231327700370779911475923460352402062122237185348877364731623685057667272525862493763484363321494095487968367693911604296823544981719375244774801971036148841063194364950857138240511026641335298752390971991382919141520855893643224846667813055904933936723205572040729181506753628077799245230070575729663028710324057002433045881057478946080084181478211392868032413518055278987238988503634400744682139654055859065733209733856450021352703204016041147647661228586664505277595769015248122138653558485200916503403055606696328008261334381059325703909548073615259680978426058187360999024314525285479499593288783309869602798100870592727535916903799263171730323757466877500547386518002532247611340475103836408273224149153398121186846284343225216375602690183652140317137887869411723923730876452174506563557902977906283879189223780729638579951003460398494869992127651546620948170566037397131097513393266097921522626513041976988544069676336219300791958784125819101799716635694143604993711958826966111994351632653492275787134775947457397754238940770470354999783575511271461214903653885686060602678686765723287590371406232927617280561385958305946866719463867196763990823895092288853505517209776600505162414750275062069591200228227636579211435695456631778692900418185314965384906582839890340821259098178668982512513507841276089987794373844559828797805881948657552689581931916761949027682698732848906940485489914519369280504308996623964190538282381029970311668346775530563262295929641077518743393397474650074202875223129162251664500740581005903915054401197087055919732375558013176242775602844346491450502165474871774912359050735354673863313475597777193339431837661481748203248084160982431042990189509182736078073832099069156966310122446910969435086927305647323108037154530712885106865001544346519943888584305679007469371581583489947098843549060626950452568294813438001466654812358772289703192228877768623665101563123679805595678225167633596308599446784590070988442258992956225381496212366389508963214268747713033198632556444632293612747282950861154809844693737729941330561388761535338624993115720558722568515592916195883676884830790813774951252939021254213888816281536654995286268798003290286924593695544048987684298161613931811516398532283749678657122264957583940221069004439991650794886803190587907851637483684615409654481939501526518846495082130602473155527365363095348103661823337341626208799217695713063043572333078488337729058751385144176276598183301633126077161023700392048344313666467222126980054602256072447256221972906143018587291066360939676317335214824566097805646810559041505401633760309848035719314793364765604618335450196056046146802929230166584516790647302057332716144795788089515705498581024679977775270548202523643763780805072303417002331370470669300137790328876809421966051792968157097070180567334448897546470975201161525975668941439623368661676594338009172350151131759411547788449573629271550535243422820323217761000033660049846974435925767945832515796060133048283798044093992147210934367004421665291582248264020516060322798965510976423237148203949608540391764538329140839831281335401922384180982484844229278122499073219100141492913979617445749644000371378167772870047621500839207840149765499220550172370109421678344033819920919923108865974320423583304031825079742194216313452327627590352356237745835380886078227233752540231803566910060354916452612932377278513243477264104612476899398092633877347105064536312523353371906425775216851324810866891918738851309369559609124581411336634055059588831375153115366252342262242427055000806222179600920166226677179420298378823995372209010979553827706589822420700780129001330449201624746307811237625243327399891846394336122402386479618886886161083867028132934480744245337403684132397347549763282093097847006460689096507800595718786854018584069481627139883988384037198271632557686060110564292100543643972087974661712733638416221142327035563677653229258823958298269352484205546429203670910802318111877778109612393942254109395262490867688216134499908072543414513427426153173503050760680390972420866449243029263273563189217358483407694393538601425491065153485916345084511193157560778081322076585123928424736719315451997782762003800645055657814841838075337679600474916089905037712312638672293679481024457487915710630634938074792836895373379473651227973941376608854888748384659729175629256490115884315933494604188374988056107252424044673371562018168268051379009397883697632445289881074650675027193569829826496579641082571498904087088121028817797242816120698528017075284530716857828380271445911073004386729007452328593159317919873297973677787377248748674357630666641634348232795011634080607029261703091400909307165144362831765273738031677923920028845027326679992396330143237166564203038997800541930030314225267308796168507931758242986582642424498759136228127164102608797412217713627508027932860025315118971136717507058637025298740885765690609212917475199098906726856083543680439273282426654970711683849087074905172183968283157016097252226200246451349321313001356278325538717292576348763033192406703033863888478094551839923952433630226712583811075251062932147963430427066545767520784014515309448833472851969805681299797379907991521878469848332915374705918110207475823670222790111611667930986556729327658463531656535871871344065138498246698947305054821156244518579656270173486054585844815589869136823051800262760569005753185969638189425038859871370460607012092161952065265970684537415595786672608264760481865308080726949682532836730519083905872409854391472650906199918855942517437238753416262605870972582780836587346056649127165448309229450275677498640780763207297139673979103512098449478590620499365738802004276272294497112350916083668101548592945305320713365492039790780914871910696903571585764748904353820996888414685182107482386322388620012086410183377938365057327008041745387752712955634711454095389178564375672750086369458300985423369670895548443896009122213282561530213874250218417275643329509894620548237664005133532878026089215789887071118184011305228223681669479252603729987431390635929334946227879921021517082959970518039363414377061704180936285920035383116989628417809022791521671349560267366797260586738805850329720609930737484985829766810798726766269010704014746276981458027224243172963888156582108799512516295704636570150019356429379932461273320844938544215327761180010167059449317078447175245545428319659186651273873934934502415428301755385141464205063731355950301650244915771280218333139398258757475403306431162922992948838548808452781748331936083852019269675176051950035010271657162413819488701918788282678413610649416279928356900079000984073624322581136630940191139946030586982450396770424124448466154043191073039441006830309715428956873611722567389327914815127133407551282536826192775153339380550816812788489183093155014340814098841790010063408203263313850967379937635155310228898246535300931154230691989158771926477513585816860679623620409489508315167708595681594249981886212051645485965209339029825386919961818893100628988332240701716171012628606954880258200507191360378843144923290114631367551748062852580465276391319266319959031540955355252447486928931300579585178718597394636517351370961122752807350512104266942346669319855043836911891293474815331008534417194301902045847041292898406559773476790494377039944610855197036597357403189754231893678213220720823449031787759719847023570686854814180577945577441484227750552578174337425172137473530450861955585976030656079011075706800805180801447070163962577071284986767088824594597343574873826313832394425633048549655301576466612718807013371670505458921123908926458810767649670477402748085267032868621828296898161510769791128364879511829828927100476948527354002427544467092192873237010778570108575409692959038288577052691467696179214085948206121813522355174085720808746818607333790046311419725870101268149604742104492151792560653030039758932200133791012158704526779655879821175222260611625983000578053534946461014151637300230887808140309593458693649786089837979310197204517062996079834400399177437058579955810569211315145760013658179707005645098810861398643171105423159511767007258503680664940230206324421414985086939931191475975983080348704506647248951003261482393660983006952275724764118989770540763218102049640850005755582114494475499871355635597663611547691675007197288087707956005582353172872776074290163463772500052692466471829246773027697552651157627628035095053868678589576004654340300827989096763911679437647166614675518594853352441162780151128418914851919411998688162684747167893602494658832145245718168160939124582610613236901940182257335000854977885440598021896413221706824062920123127197334251869124820806891951390212921916348885310822359391093534339656448818250676611071012269500974629023114118779987010879090545998704223689653016066548773465444277201577246384227373440222652181112737210246891643712186696793799802616571834877399104451862573023469599417266447580351770675281518237588044085012404676066432743636735605787390777991286940222800621396419519832556472609865198151012519313520371375312058781269606431214406486526689047210279567901276460948283836212266152131163389809601088626458839730753260990946633703516149114894570502116355289939574703189213277015684950478899854071493133563818274580253108561989003748445507923473804150299000565178848965149987819114529658114661768513227316211174436862231870141944660061808552200549443377332388559647328152187602083348359334770454643954885918967754165488713370323523500104627292562989690427461176831530983120712077864094196587404387829951055437713308894137179388287877340915124634485579803879765075719699939040408731266777067876483012168958960337890537707017749311403403430403007045655929574881934855736102028622671961670527998459219520257300032103889733922496221262338058201639298419119797435634227020992794625600927405672628231551046864805625412569566929929394745201406546250921856553595056620815762243431306850271515401760713452626892760521558627549781823518131256737448438244892189562396434404892307539409554959835934930631117541298364156253805123227230657034990967599697707936523687726909123133382654439747833872996977803191864088091226994539422419515342978520010889886317555782839249350392517657087744575564317402622688614022444222142005259478656249900576424408136108938248869944455995177759364720628179213894729700783421123201406309024359767600650226419174485268080645556998357623527751904651041975996931908702852250430526627489491657402806508749081471286361490152391790863020199508268254498921402756393895017429228071190159477285014704868728293626967753295445557559146293875462795666843202577588141753837725835903469496485872419769708234997453123836177994994014770585577130019867531765746616315802968710721446242712765589637853403798738547761049985945033721492076645057069399275278747231828784538474931159593339536539706316057412678799350672017504016984222315263635404785108222966818617546182306454192077321415380365854786219773925424492372638507434829582715403488898806350353158179345948551356225966454500439962078581025801982772353699391752004615698852324610307915912613883039847245165204902909476468709668566776685347636248524067381693304076125511261274169581116665659882608800763455054333919086776945280560543827428075991003282855209333308254516961790423638915849429443548144583552295693237307511289878352960184887687703951353767013604133544516525863303703088719837334360664657636283370673753852628275573943620610627134930294772600427898720035981274285729741153906850674338231531120514574474457037738297200330462235639448530033108126137404824700745097335478886141985308800852154930777972900990727077927051192638598224255104170811328199142954114170867059242230765361549971594917595766401051449356268728158009372008839726681160467108235507065206368095477182772018688837264857419099516704171407171484961117428399094904385151101601958671494491352925779227902292599351965683110286526304899816012847828718371522833978866464836278643727756242670744139811932895863368802158458984812970261224282719245077518526466803046031558089915678861534192796249677276687872320069360145354914679901847176479908311897423817576181172277230608815300016332107114300650628120938830402210195655139495719945081863258000827564153795246219687550383262846655884832196291022972395577944455438761051978782974134623010847414990813522235214468234795914697045278509693951947053749817698985641829035266371168343814803044606855244585161932608031265233967252262751026898452634398420874311703198025973981946114837385478372554473994868957571222608639756577237098395191050674916937165361797370750039990851986515189140424644465146485141451597740264189651052876615158189129106418582802940616286614647871221072055032842156017915111190251315259304908947611811805780056911185604795004166963364072024024733737325710713162430300244485417338846951672349681396643508428838461029459645121281960754748296502363101465050435449919325700611821179853970634889875650264060634548509059111847375773746076063559169714510664898566044595219309756322189928307183052626914162458312442532768930227962341376031178298244927842114796142890884125262080654769117242952925681487964667584208064138855414160621398710027489069117909105088978899133871370081831408581777563513128224286093220798711634273543895898034375352361395738966735834070568388234214105147448017819432256756412458740573186025783283498791089087504031132559705778470657480317419334409461080088356193522894404627190477706228601545521696534435029603159790673803248169386120584323349182731475943105114186720319211241671360042372158629482820346267451216083506866428346849662493499011804174398257414254406775948293195599864634451492470008726127594757065780788464633596204661627954347954297196726388605729331461562658121983148616232155634203330630725166506293404941125981555831101820520180905361552160563208603131814300959789844902790339776910071819066141146736895699055805666243921694019382834669150785518656618707754543114189334631474440852117425037177571320792154921960530362329184216922649103062091645088192970070923524703678925738562712094632704080310389820765387435358150775752269850429437178269971117620940193101331638638577113547216452081678073283088680369693743730246514377291844048346505524365128879152761144415202367473348112007712503083253329445360231369990808376005061600131892333292336685012039140120561406634262409736121344357684624589003332789779382296261534502949390713325266490448947323185509770748405445310919844866449842705659643682897923565387081537551712248004537775384482851395076848451901501177760379250259384322610114469783897119252454969927616258148621679131807849366995155424947705721115773409904033662583502327150613419066982662257260289228186316123342846335360190477959573815491188533705310487120609091312769999695130711123650934756029190837832931806132487079469015928674913034366440388900543305059615030539508031310787499235897483067070723930990855201021583015027602860739902736639331499698912416813789663349230925836633213246785134976338918854878404438673728398392793792529128828985517927219562726668845803926298654011485383834838526754792726140126128536880151074066111710005839708750936240282205579968943725545368609934857379860545299602781659783370436034528960631649891812134733015883244794209151510300614934837304490192602956580581447693108621033710152837000633450082429872355764679740404835613299714137385818683215236365008141785071100549235460641409688551634968491781646330255276759438151256870635042916936737853360928803005344850714422927296117535349305314291557948685160788935632219002086033134229858373210445283944028859938841368999181942735334493701212136420959668832863547510535379865071467513838471512799158183065033653933337059474394158170605107473102921933665346847590083660732210864918023856491798245461153188750720444986017601677913459339434067210146860460968191045710852288535864630004248581050806611259079257661079350293242350701735382850141001530953373804819575163403058623456827779265438258546561544195909507018995783940726851263633020116421892437376290983051278280004461753563090984237688992767922442581976394716681991234273605579722640506867153078937773540660074102090004464993237767516048599891415590990717456586154491048208037133165798960648011446552985969074794713175571866217038310138702304658519138527464944695629718444525007977811023629206008449890653576770630637991845533474632648823478460567770274034751517432841998886596117487634609292779970464981919349622202092990886556436276624553089072744032513416360698804148414964042360031263939469237054461030213176337518784601380678314297540912491427781779732922592486319544852974375419305139767448614570397490273735913659337207935288991429145714813609031397435405561693364312517088631984721131968752798877211600471404671849775250663252228714966815795401255285798128480657448125939258583198098526992211672369470327238204218878219429796341904114757164879574196458282478453079020843741565768549819283751510332490037072192999290675676383402947092720084298359501612233432304232839287620414742060785232835211238657868386434582443691460340252028746975530771538046348991387675000584350421161909739714663799289747952693767386248050228481915969359986861376458505859578147810857131191417020257564350450997247089204155960104236281882858673857829319933128720329102119501735671871923062768906893909722404008927468054306750565188553771037139825024900119005082555237175446205502340854589643027905422094375781037933134402180689094720322413743210773738142275351082508680291322130771148584508090040949943875561900996355668367691222901102598602623385309303939483742866539135856273569185246754974549790371420760465752349998980474793093313154520789996912089678083801741075091895524508401464799428188804774565014244230721950202393581361616793898017273267286678743172117031207520455851753418059381838689594570667059170108671909149920515151195369873030490994841412382826733074782346882738826221683076366731720050475291292897102044560809869449229460256190508850484073127405808958299664276131764111286375470624774460176013679364113951906028736513580157638988737145381616167306973247966074127314635667262285775417295759554977906423306905802788888169699123941923772842658196384291817988980632109490699480053305965182301085677971282369475036897900669940288131160882193461537597905446826568191003742005516195427598120812398732873863657544790241567125852069986481566053414305787638333661331913575969119318111367940472651206889427913097210414854897796675618714805078794013162633540236395204651685230412037740163147478565653992855411413933181196473309240468388483706414219285935643703386226099384360521079403089615165002199923968832313642474590521501514087683290659832965304851745596905344949645548145191968233943842060556537765798666982657436021047533243492014657116867917987028468718262564920278352855735175493394271939876815358938187364305055388060159678450693316796819495572699140232147370618370772318041632859720803072698133018642945497965326548959495072200980034986824109171056450070792106954036198607821223823354497798711140506325373086149913112270489987952383610803173936213482330766084675631258249280325538626099321532201150038072194857754821571112335850028817401341161003011696162729130654386383169284284420245116415370883514917688350493098983036467696116396129905629246370184721715963593655725390842579006406811028222720647834215990853604914784527345558454804254924498476071085158930045977453127896626277386760514686031977399541202475943726032753104132247981196593243592276304851110052355136251928221363189618676387716585303428782968137080730418083934312565497503750798657958626540138799720501011853015603576842469066581692003540347129956174003718976240270531941451588474458907125623417902619276236106777451556351300680272619685663235568437624896066449289234267418590290253835418150767013466071081939083376965431402841380455277013182257158490476937942618718309097785751704839912626080644305179075702109369862674657523380618240355088645632612029412843017871735686945459114111602592706422177038314375926520769612829076448874407689819434898656198540174495765409727738905705572177507537168882510344611160540423164129499420215961278688421120627876025694449074988429248660305044712814310571993358617162865008439504796834556071103580588493555922985732183892335113330052705251377731725438849313010244417779044047058945376264815445538147577438452347144826199094081381805940015748495174718322688903615417657303078982938751162584332828957746416106091782486242889430439034954397040279956641458336656206319360675183712048790467051604371024038871685587333775706921558184455957888282721234175377192495806426562389946369656509768858632023288630053299631163955556745676513926803541584876808448492127533878206496314841027846736864961440748602012511299223282674924851481938299339322015975087090891090969772130476780078711797486286977290871112010067578075073229177699869566027242586965059818697955319759732909053911868292019628845637907911824581182972245370923359248209137566743993723360029079070931322184546284946703796198350070967191672867318621280335967952901080890074847034466342171934019095216157560410691992999542267450436300884068460812367284287462371504964393191161875196861011801225063227478462283344049847989193397445375084236874302373167400935034026882455070470047934539386382963171288276560804762323509005474824659850955018860465177892311650500459641288866092109429987229306482892491797459407563621782853612216242705014464722807132834226346256853222862463000987273581147039334281924684614956081511964269787496387294405245037398607046633259392735466024138199224596722484057109359247359606418166925069175775313846253007730735222459781152708198738363493606846967277962469860831068477165908356469497935104046821757424149041573575079977662321039380184611889780109699434878038948677472168686853532057770422001245548161198007159012615655580875443633346369399514072951375076470283182152167906749883553846697539787089739726483746582341287007532097351333775641042362310762538010448687743630894018290441641595330964649054826543927643778595254911923124229580182748891442272352371156441500649234069617450353585258962051292727588701487377262286656818805318681475081849347099144737607177592726182298094886902561612927258563076262820613900918362145163135603319174606717064264076423131240922284932224506366021481462898775274856800914199871116101684248753521610848142873982368618741691716755747041952844794042130821448322493853226390540870562277958274597646894148629642633960660684789744127938588750395149361310820939448450582385230880271589897161547099603172919249320971529909210999461778886898391186738652889797347102596831524197445031601514708478241024330391169065532109325453383478041806396192729890282337173914009204398707333487005097940143441368286158483077869546034477459403280739281393472292408256261567094348626953231303042241765494849308377268252168749346787513010770022345161524748763124432410905752681769364672991209937500255167335896350210279267652959186892167804355838990903290065927285268242994540304875449134666363203159759618677527719260383979894641179290734111159280403120112716171619900569686511071228979009708550583984000356391444980193418694091977557955613899244362344992632854865285989746901470137443237456828717974656089848870236308864306691853592922848297725262851546285624495750326192169579685139706984938613118248881001381807711114580381296011103266606899617391521623981858164865591877927333509526757775391938071062477120861215731955094322352298244775981607187171262792909535909059290768633848169820104077868484709685000583523606995918629938341559624985171063866435435865476811629145429475667024143923168424692574494738925646412946288621600978890630740722461954643535984203104183283380985255081701127464122651507413591892408536258461008542837636804484581094598568969475740706064600873171178695798478043485664735496985296372631692211020976955805594071895281883998764322292598239634623238499088708375610140481729098420136053906062444660503207851520702820113062860581210206432016862624367193375864772236622932081958055992041299194498834292346744943059889435086613695358495759459949982064913828693062777294440573496220353220650940625305048244216680074597194291625718833543984865197627918828171633890732129268771062431401671710519486621987172208660228144196674693827453687517563024937831068510743923486266123671040339396786346656174554295026535324172430962514745673920396639144782760316924012117347432172847008566869370341084077298568537013572302629363157393981788937643046373878560436613589112876149603089718010066445245880046885689180326606523468361333148812874720961660066254071806926772428837361422142860802903207725060008844002292668979246912957733792796016867583922033538018932986414041674908872836774497181861279090703963500543831660452993261507762482416654265565474361429297602572295403770065415922617948392306143255830389809700781261106409388033876816373875301159308838263776453251670287487761331325280339821095331899081594735596619397792406570575072386361330599191500714574879700886494226758270804775665947920506255842040324104019316630873425772905934679718824140234221327878084616657929477705313868949476265337903735889660626961514084915461875631637578707655063137032086251583029755984009750655032572385652308859251742513480105008818399211160848384006467967052947666710531871359997673438509922764079983048306450829102950319808314130158003407661731592723807878454290349536756515532973796674310525680591138489676088030688087017949268290838131246731867765808511326942822813854125385088485459211444432238287523099075394092014543556474431657445628422161503173251784735734413217728415007416799709937351933052247849383213940216312535884158272020666318877050561894828517959934457062312695132759846219305902300725544179080770279890697237138427390368586479592935368377133969095068128228378178022602700644357657489426251854138129745872286845920107231399247277727236268562974227961274652035108112100707851375242937435521811369359571871296087670907646047276171104808457793217054646868436805700940775691581309171329117082016783201074371693062580254367039955229017970051472114685259250668293764673741195257059970668331499804328119601106984891646181843468528835848833592705593440556814200610516018999293570743078339237321558289062637553800085608087738933387253358473312559102415521010344892392675136316071953232625651479460510737049316325114984587599980459778360166409839466526232059922962838164490686835827850713170014350264416870243970226207711521294983787393935459274516486524348437818316803948940171163248207163754927821132336066053841820208914965614451365384144638506552166681892412619697023121598268788126869095154872160940321037743249634448722303147294438353196639629300723907573280179917101519652374263917615875502142185811763659213401016855238859063470205615329909972003630504774655995337382814415075692800259067622095086760947839114943653420080219510328156718474421310640549651744003565688144153170363060880010572195421640184860290459078685727504832511504840754377983121321149094358910254546140350838806284175593350726061089234389857383689876703262155863199495418386943169663749801036922371129083631940936879843875920695836564896967886016752670655425919638418632043236720730170405680105292666591452153754469390247136221835670638467610803365084956951666565988197170816565096539821527712624553405241315295695605410486635150465480670292861216619707606964298486348633353913432125874128606548612930768104733762258797033506409769045137738651682468846506507250979177514064823749911632751018747125666359314905492294224491604325841477303930774826948329553139692592464427645592040151367271682956632877790267970926214573213338643942321806472422715982530298641383175533301042942046803027401065887878715590431273040223630565445563276028451583797067978013753468125433367882889254303684890839338366331905693936945389982770458492350450304255600623667974912240216792513518539091382769300264039018547444511385366382220739066913592806726780379486674089556419589136072656905864035557502349461349444943896566726527885154147710652935379144792697820609264482538203655227429519052466548386760303577092374564339050161807970352006563096985948788141496410980047932833789309965217558199417466299150020285679474514025374121574333673097087346552359838874175671486415951797785237232113679964791661007144585441593312117977013466075453640374991123038612948485489501632615381163224053917245066567518010684039615919779177604373314938715347748555640753827793855356930681397618261582386169521517739765347412924171382941672207350265347126358416311906271560847205914406489774638421115360028435029351656396358499352488263761490962605967616130951183179861516581144532484582564379143454752789048100463096318748218651043018804583204547476146076702097157952309231624111282535568402134333817812172243596671229598781068881343241866337708291857037561477231370064881204954105661620118835078147820685893991851788482136348346921990792714258553908242707124995398442139187842421978254176197778404095501321048519358268979807961042595491249659336964845031211206972652863833695337698623020177825123137338954170949993749519817869459427849115144446533890928796014043733061210968663406574525961729879925415274207483898697170211610951432710951085885460557652070231977009051177736212649568345263907343137787624786822653368908044885363633477185394705252133928019944562029927067512832576901101052820954092915844969245755363218512985544366767268460319245019371552737622667068868680606095980099493682852117959135464695390192229769826917221648480703568754167950994316881221245705602891168061282426547193455789927512335925308066370007147623880171003131592704141210010274338862434183493431939646642942189479462943758697269224599065093412161253452998376996962125250565102463800650923503357122478410213454252114419330382807438196314718076587385640444932366785397800891369519241849008495335281919917531287399162752164025973166852834768665868775698630254502725453363046600670662250712125674116291234321329477708754511270561302040763101100232778288334129893299586731667297727284487794170219611283677703623112569776586464889277469278268569814510825696810700757348385777314662621488670680853431733170822913586855111889062556985464752690088793542861187146871100269190917542100753845205311707070523305244697986150532029979839781545341383296213844509663644273717134498946167219426143033294285832267992467107656990471942997809728350757049500896851055879139832168336340421445114103015968897286661292427056656927635061061696343389504660951639906908709858341801172490685749049280150236627082315778593026636551546145184417596835985956519285895131799740533449805350720172253753651344858535814520174412433641597321347617663860529459696942934834707883119166149601933689044041071559976286041380400512044472187429346103016287934156997328739439641812108548793377835577055246381508739607955095533785378875256168125206237241683470598894346279274976828542729972460580646480323176348299956212352742633204143947049130634878393587049031830658427767055292478891633190445118314151627664022130922807105780719325856178356026069484248983571712901099316148578931317944893762727741421417089901746650480657622961122387837069148395342732371473029388314836764181549043922926944364298666070643409364652483096944643891304742126967071898437375452855991250037751186921402198062561340965989568656087734583053082548763119728461325994923250022051901590491778368421933894518282554895804572230673461031413593519274687669953225891325738044511816689298674220200354917435852742949401955332988746523542479586861602145105766988220784906848088450822575182906013061271605815536556466338868961304461911365086298470150059977674461258674871246818238750245224855961520533007173618389984367785301693086689956591250154844649730710847496008733924762904878261135774820466974089776710969022537215254160657174170439774690867455083123967713670598425848920016193457823388149143134895828492861449457227213281568803335357014999915573080213780618643055745840544591741964147326705003444429161554096528234359082690133180818851900308931358575453871379516425004407039328347018507175951152422042996695107036770466867818065758089756527515920358459148566796820776559178430350503421841642735696039041942903135271890572364439530745660901602722746648618117815916484913378490441573045875186544280584743676662796138291734696011418249352181491451972829333685574918405620447817836800960823819680001195467519601976892370603773457332173446555960031987349825884363441761554089348658474856920770842399668929958466032996367513585962490620066518199415303637616073062847730636795376144486839436613350657668350256942542548115998763262584045631381570595481815220436503420558739361377867226001168098201334530404892384253482254083146144314240344780917641482421987157587745788763895973131477134393396234025530432600969563898670206263487867642412541203694889814928589583692454935035421020560618134284805536758954833152660258117881443842287732619639147727785901847675754843881549888611171506316653293424963176810081672591324906372572923422001169223745048037076113815154486037746161151885217638430164547207674475399857487152882000998720678669389491284942507955565275224168850127660493719619974148846945134112738229934061042832587359612001304203343835716048199865654861589277713519823038704158445675264009234715393076622541433908040312249562037283904593884459743001796769943187589151201231616228452564447636090682952548861481632026287564188538744641728978115720732816234333142655535669434279788591910634169238448443037611957570700977365784254058186526281919912258659631136246021065563337980904984537295305726691081842319985238759283079579415002107897409414556145172772477522657644577294614645453043115191974750737903964122346163373115835642401721197968239362344150194489805756857805810513434326304625207396115634530179042939719519008981096344753161020531325583283699244813219066149820040642763844372814538367790762854106207700883777518244270317361156138659561084653855582435469677745727769262247516475484292943153462356647488598546267568099330250817027686553168972972717848446745091532460948390059322214752139992254769655406164537651677261426734639810289695000257594226393991134835449876603476615733012751905545212812352747256281154496006486993442284585690218887656136066809964379961525860820976613534546581475190623025708898217543539241603015335796491568040265025284850639705303176267420969538080871079503976992506380425062061945411308924601939593861906474994696976953898116141453599097843917455400488750751881146808826194560097302193900489774813739066359283716386540025290386128367794577225609460541937513843706435262051712703280630169791714010678188624758992238362260405170329496185099298059020493771545516587127288062124257308061255380189016074244880230305399289412202636171584913425481042886436396231729420937116010675640223091672469674723583276347008446061677175079260723276384094895051923757462592546788657071194625433213454484517120945780863091677855088574575439160379102583433453698523826184142028049697584324174432914029192124402816610465390575266058480816994431355352227571396780903569467124271870912731287526489908262026627205193380990878141518623493844505730081618691021111275896410922650951296513385206598921041992725628596937862331578693659154885060857092115680212449257558360858857573631554210790240812976953510770445331955485335779095105547317204771829203830758604414580225209668610086290896753512536142485057071422797764148365160003353872226064599164586134301706638685630774820079991521369455057386195153797514904057210487126095402206581513967993653286176996743747681423938287235208822366909577307598813675524293136853688264874949513381593933946689425819859329646651412518294443772372535693470239340852719354904979829367183469151146128290010489080691389000619150539617813000295867890793992344686091429818510664634321180092346044494012574169931788461895634407475273175401834260564860697098448958046554856479763241832668354420995901814457747613682025801010750208485536939176727916353497002442659817081309727915938552326380092143044664085874268110949200627245941354431154620048869873083552317534915230414083250993235591556690788254715083188759014635216819592989081906800946219472171295112698304891240892194344383845934033337438692443088198082063557622410679080200874982834880421330948594996111150395451021842270232657716964843541354127500053138791626036696111814570534081467540614657481517286241288966007338724428285382671711589008218392866445203955431628512071007108594023046840967518058334991183451097943932161626121088034951405845660810016046335253961224350578504799559752427814752469485534734547749025916753525780691325745735720167505923837878191473285270617942151577395210420324370121866124992745222097314981060688691483519738950606260579797944809754085205257449814783702338078626511885053486255625356366099403976105408175353234267348137895829102707339426764251316220832024165167506633169318794938386572262131758515483268839813427857749608739209024020980749768502723262359672540715507837238591850328070942450422006535402044637958458325071894252863364383227295238194156243025812648835156242929363034771096607752288443772380530610338917070686551844339922208700622574779690396827076966994715631654358227913448166574386616089358580376009547806285027172039826659887509878597563989704821662369923443279131171528555440524327332893070423809600588753237421173751039925785349613131332499238869858980866424200722452229035228643789633259794369550870373565545846115562706723370514183652028453009814426922440584679885307583046092230701403632006799588715613710894073221179104314029356213909453195251886337953716636889996281211734410785646624425661049209989249722308047210578138097764089824281072668340462567688007100279423362548653317488855585025357142799790788620263270649214512619296123341011683382891752474793278888711710629618497697937047072570041963536456381548590211767641422692230425399852962898791439666631084339087520530335812097968950011762675422829388305821676556365766409320935286979629596260766140734762929218415569913603145473560665174134446701816012686381090833429408523270297967301782036161813949999394884854941026824941691607732437939182667202621646455381144171699780639805934351837526354901845449893814079645688866351522085674295543698514988448787001450913180202232106751620473548234140931452889735615034445566854796301491412047866364195884356795181570933685899615577437740886219907321911561102793599967048536494794847315017012181567970764217842266015661782036239536810665505568501415752701862719395556501972569061457524650539648695104201383483377093309166058661892659597634968033126200710284237160369120460680543342761102700416200291288869745727389537819657536846796360481775893537972421386281078757585237966016821593927431643620462370761116624468435691088456550412772887790857097233516728517347262690272139324765685895553614398710780078079237121254974920514000816417206064092548061729246217625400378706184751495249881029573104070953497912690051609338366612117010640266651715256089125250845319691844609842738113870386936536359124195889423016038498406261075921079794623336777454983691656786927398843993143573286123247058176683405253120507770242988284032421568974699013425382324216924298953190245549810070950121835332071292134978254686840736278763056547328043826546249233062308863312226844797689024396682998773415895855270858105330583858937665608126068015124605219596045967736360549278166736912930274331995489115920572404244094018028794896883776492190944929469700043434683883352021498657264124221822818182125990109081948749919409422039470943014204295440552296660176418151491294098471743126672236220079603547500166375831344681987406712951644232966338766970681441597620317785610793025097375744498955247797965286024417518154176616527648742897106086255885904792694417729372525991850056339155935410008782494340273081383945534564932028947674494351221022859151275034209922284208367455788651913053836341564675069586361402076803865297694656604002325696118184236197934952422303049679839225751869549579513858196581716741329043457739488741228219769148763248137448241432245287179325806528763417852888522647527825207048263267017718107692164752524614999614576287204536369557953506054183381616694908768361537088577841272180539321162838766987977352716365454555311742529053577737719213673717563928501291731000383687966624382621183692007019573673998094170666423977593039938143582827472477958369329813443732164867199161386182394416204928218998908417933039446947258565480927205777290395496252927024118990117602009510524106190238031191442348499783836572110513433343890707386168347799897969833297339918901238624316103376786452232246237415210694122847783087633722864361824939486146850355861654159657511100885970262382592719018179269264768103825497156164283922057709549561303053335128857871131231881453311342393058288630899047462080506705565469546438014080779330647177837227703841421201757707394489552461755330847275344144969787488897941825812768650201336627190715595491057414673286838602694811579524485706911092783165032092549880233476496544540783260986711072253160316361559711960558201664541671248311464897427433408519887448542926316971634603999572375036218694512756299759602860687126098831678158159256066655695753076600335212386931849262913019734771567147125993017432677263403405968545045969259276664851936618865111682819220229554290412049376309690029038540870821154146213095406284192193456237221362575339060286360991588873525724547041278062167098134620506592307378947426733661571683524854372720390138906108347904975982757491050498670022037766981900058370491390594343063582466872214382292441534383548891593600999409003449524560828572420628934444879033809609893638575190892225450063912916030962639555715142190650176478558410902959008471755941396168065673093509188182565653918347452118813731228669825397450849972987073187522586129630595997218079249494754354427379010003889108548580072665552006356221252782658825825089599224057886495026990299184917880396255074064195689769943913198969780013424364928028279840812397646226317075271076257979421705947476443558598626497049195167088416207481511060641134734863305136834744556780888913565066508956372943059450978261784632819150457469546142968637837848037487257794448029741844329508206189179222808369898002848855016323855001443993195123606969169028055107983299117901738345171913198282761402038590553613983123510486395081561885944744845864833528364973930263085392028552759116633865501412898341340299578636960905839772996966011020727066538733857346466637819785091790042015260450977716165079752716109902190366544354355192025340517390332520667043440275222236575927868837717897046696070117334992228428984128959278325055224898853547772951903683675261239038910663532202183701266749633179962724220415534187453556894673085401226304142395240311282492339125565031998345584855646294856461756824561776541499367766513103315656887499804726462018764012059649326574144091909028845985214753112797392760508051250342386959159662930827203452530760629524037278164785292295278161877300249267968471895503484349572312703920961922429845211431362151860994983699703818718393952346125530106974391529364547074067061486824819466560303230455100569069769437289857386567347160133210265134296379173206561089616901475378146843290110751861112920061703811789847971458630204332052370131400278451457137862259935750193801651546193512584062416782818025306042818407372380598159720589084757941977171265443162807881253124023782902705400288469811520319673601458645654248839628458606515547923625986250304165915202092466178769595952594498324253502187785316420922492907073030830535645775524749362990283549813127396021690955931414233945043048704240572099053655642276297606599991361887269124469943739002829285031277530570109339104708486608409387909276041187494728929848693034445746722107933531852329218270786772557282432756457120570746538456814376404679274288215486019819530909575222469949972269413192581650185432651825486066917564588105551762245468459656520602419505162851621085998648782863369446109060013510462977774127392615409976320208055640976362768340448449509271045495264017527777520589069975504678980184995106757311169475414434193285493092071272318462250815033817851454563713714804321573731689519284193207443461763103516582566782293880855339280250859223257861067875765957490947892100655276297377781363884641053536301098328214082194597251438622196591648462546478897453059060318848782172575830792886018866823471164002930771548459681645877720477362693138123823892082695815298090094843225163301233705196202768348175485636870646416279678932287706734412478821318554973271763486742854714143911408408192498565245765025980354375936414793271154148637535253661822386572748930894672992143054519048217175536164916677923518620587819054047276243380044140022867754832524636873822050565703952561650000655765441177808943342033364469917215544510636120962086365795081923778534488945682764517196428267435153845322753680523038355774804858227993623744964146217240008814210077869809276051922591843178242129154187301057346903610807398029865967103693464497577231051325940038328132592337764636822338820862063481572460179705719574068818663992305727382599496535402971115270073650003809917025114092403782624180922703995624818316986332101996660077745035661653318351491340167381599255369869626544116612316878860341275340470876721977324107869743853261816629244661557063815850839047750715368850115163905609439363390260712934293137999840126448998082491349298799284727675866577006240507141285040154975819395314832961012089976779664773088518379165047147522734857977227655087265142629937033530233332498410922596070193358822280683058759961700724831274656432636132075845972061878846358436826802701518364957720316085379267823297753984951698789734649794161124416688435169855206956645201143063501220762546486719628831774233174058959387811654101737359304176412452670951936308273405120071529704656955318772455207590373976822318268189391801567490020716952829319075408563343233282509320137616168166123378466791577960827663660731125915916068592896344940998559968980783991917004524406467933333622770546926172036472272147305250074152480759512440933359284049773333081272173381532249398279849255082292779733173652182901527577451403547684496245910156500352685745690187970773986501144772482829203395783242938260329928802576572479218571378288069533394890582020176829607615273827317358964114623671805341527246449453558394512556205937541903446706168914094896533109572844880790074683353434945471254639928790732080682390492913583639095793333825469095887498847946780212464919564464689424709782185123376266273270791122127823621388379585231407720497122426286195541375756053190664753004519897775069264941270327246194503046457616820623191496237433099808273420645308417335251390935444260202587902231071107411294271051310888078086875426732624367702461374908046657977478430321045021060620585333594358236603357413484637675507586650796654558051688155799855754090535321690153058496561527174477774857962101741823621736242357145877748183539817939470527746840437742539720547384177514997689148805753924719811258335757004263525086954335803463394383323244794670871904717704029471626943395830534243162570352668696176653941926052918650116785662345763407073356705872247114095609209166511735755895767665413978156011577523529681708497483410700534979709349495924298332906120092929438849956302880162452581676516840421305586258367937864282602961535729357039684700295448441444379259821538722885471910130571254076615345423091976084704945112167601512051306248689369594288238942626243182460480171541512877413086757646831771958432418505678520542549960145458363259896840517037525683182146576879160411391635291307783441371356157084192959349811046068873579892778035569996606303138396665259427535175605313943508387580534264363094622107643960027084066608300132237269711262669036781565382394541819139416239825980325342270318818682262146572472612648665868093492945881401695118656159892822245097303001164677511617671674188373893488310210340104012241369590353439489235229893562158741498108134313864541053029242472642986534154694670037284786020917625984853441472231952539156427354015987467969220479230283762437068354140134147597990135879321381910403023583637228786631552657352020230058212320308320819205476925466668951838747311048888273057195973235651097280546568150876975554025234233445254041154982158939676736296097135360978577912311372404785418720208472328138695613358205801088575769047082826213797652160753807478592277420907363624660972339460850589093784901959641568123167981562577186991709999584484095290866636137400882599684073595622842285323810742216479866046739264543025745324170811519450338950287322834467848492606992720118311073088757266947095574012432328373070435666219869740554837084099366460882630299934024139045629670632925261624224841145707330933087816707992631413515000741977755131313632642961591077511934179787087646986699954119066531513599321200870091319492408791990076265713736775851942395412561761840928577734300854752334839444365586215262917291497211757351120459522762368376196456143804454802449659257736245153014017634402364236198312946324725131924975361935630983402209629220026622501606563357409954257707376539157905090192757040586757118440954550035727281394749460865300705503921387575033179674528850230025980782536735203476101051292712525797863043292809156668404755565798132003075179337919042174538396812085994642387788715401537906595012721418066792048580340650720318722666891453227903748677784571013573082785765412881021601641396305421888361559043196498870017143126150013781876022217344904742558651702453859081699569931435276287423263668975235163243878090487740236013006719379524109958890059900257647538643742159326433063722502797165096285005461294379640185690460727049511772803130676968392918577387288360545325296727327284523215236893979903488370215077035530536989898843514057297409094420557745944149771747823741402833399709418854259742086549414035851666572694486146028442858251035179334481684656936530061458196095868279141092458967273518261902597541212689993009210607015165366184371724335619184583240817681096889122533333262087121204454108988368430402452827545053186259077654086072444486654035644570454682416485007152998078191643274873176988896595548775568324273816794875588357287315995802208334806992301885593294313148528586752536680374777676182653937331430044846808532765182112194924292576034116206105872870654155313258744876120931337916034977879349329998174366745623536285030751846186636704728058240720679160045781761216165512270884278546656233093727951744358111504230981064497003214522832486305157348778062776546827960753692546694526439486248853654299694444665635536079006445808860874925072666012159167115587696158297193006426682847149394764077344308223733768145181154348240213790552323414020611826806129642860487843188771298294615569242197567554647934416637503759632786508890863896781082350847124603214897829280944116473845699575574797324394864793272241474658451121612938431742303742878303347727415206644463996154715932473928972463785021413477375091469473810024739227169352523559467959164242344307373336052754319037440223958168295681864190633172496415279489090157670505610556047836537459305663433118791620452837423495592530388965841949668619699665210830932702392893292826620891958093589842534142906152809912469433404787004325193366198114165990120846179338237527266060668547776288082509880128887336936215111080994961065655241226608706811770785237283076555700056768167611586991194373229084209838838676627678138194262980724910640437075116565655926261123907134006147442992758689298052569504799451006636979799987906001643113443019731232232017003985787365089189455657731066138318269267675358430865064612132925464951901173225228118339663489281734635497606164634364125601599443223297956229482658535741167649973578186899346250930632995313524691445073809887516119288185489761253810859750243527681800566240850529164687818075788768105016399906606740699519558771030545735559679022135763890200921689367290516789302265919393150592590553057070714188023160159926164193687533255999977194032956627008779592085137350113701554840199796887815415245129839915411653460358154948528623919936632566185450554599226927508247173992701508163048638314791587865767366003324863948483470329938619323611762339125558320494609407407004087392245083720850315686519589288102202188572433755121120166343688505762140011801126626404442096394310803404952895022389387486432452475610332386499352523710998984343761904631256893176316231979979392625447757972859116053031279242904401720308427954969671186610058532471552183289664508905927120996217760147600729516246086771630514521991191257313792692043903653159647457128114436790164380293022749271294183280093098578213502985571238111304498911087476788110550188507036241873818001131493219149474579524396505379914016559079539341109908048185956936905534828327584615611494664402424188815738571785423123078943832740268150488183231620030041885366666599736416432137462388615700919193931553541531804093166659290767662467499222950247060787302190233728804504109744929640685962793983926847383848706404203302907613204134779741220479651344366223494716450836143025097280854295955428815932692553285965460331429761655190781328237634620225612749981777823067619950337372729935225328014465670716840904246500694496332598880025855496322442482853412613517575126285339493892902786396413810034836250440209384306417643602680674915048158198288726329643155124013077960905566951848475381385394908053452728567379193335337520022148845900234478702673183161697652623621176346725117662258122407402715110378685315929981331102108424751969179538544080918702805260582746662264447571992479865948495749345058629539971633327080513151252360872861616375365077779658165060497245811083293212746164639454391157728189792358872732112187387972579349280635913314417773731042051582649087195330157998664625571877096253668969167824306414031871994147077705430663459170146966592679206997554246473240085095584615634274021193076582714984566653873045253964687988687591863532842407895544340051021003758488092611994233400281605780848100609084487298078374298943992390379691063454478693255428582538839191160143646305683710627291404219623946349597383572920172357003713676925083130783661108271607401738287621597013083608726335661579931716065438494268170551436788519682729296023178747758113456985564765371294515933157207008494686807397029280041464726530239735133395209722908535284118365205659162184355173317932197398701248984323975955004684213144524357620233854740840220735802577602128209149312485620494662603488713361609908982423873547703417071051398795561784301431475636757185614753642799750485360816600983335299255618639358105577004888600027797977450550193814973443854385116551817146079162794712137344736178847069445831545749112752761590799683975713507309738297004923047526662528079558911883468993568419477562302907912356156927606929763357298467102787005370018132534249454994563246660828290251677052645806467858435659502723220283694735552885060401176235920402527587455328473002927654350954701241793737337218288085018827694957033898672653129550047719481536893919831172479064242274697441744341823795062493104254523954829615457369289676630190958405703947418936097766365851705248544561667901117515700213145741876551262305060387969209322066299491117636507738579214193284917646252801099465847424222628992590914448654942074171658564737763076675852708944511260907203001497423886768318432073919308412851751420200364700489748829090397588090422887912877767339333456693254995581243461988846100069143693824417362821128059286407208154357873801464241333217503691779454416453287922702500977045874264617458759021432270801615612092973209784796422138152113853250412521906346688154422474488624066146670786272534777021554895597186982269374496406879199143358225198840618012108430195913484739668548632855771052606264665889462491419795734674654290646922748842600743669949041327579243645160439152811557590933830733567025947889649835250236315338468155941276178793985552811960699895224720722699288971892268587953973167305357697755289719900727980159142961315139010174785929240861726086806135068264299553225571281063600005956629699739012785491945805425235034141566162019117271104338468323703896552151147424060341251369408919867513953755038478041931063023471796688205017546916056517845650576792794238412918444652671776341242300960800539190747263721128745028323286228972954860838032144951029466555331790728451443923933427711540965162752376861514312647640643452554510421684713446343092091470031883353806886417551244017909351997302184441556806467885492107655343530350472717861729665648647505585738225997098263148883460200602336079263799433558873159994770593776729222470516085039803597599835350208150482436084100458848556562262108150736530462535778729176526792618062988060043563062412751299339697176663865116533933520992655800071151861111823790476535055812802229468169184386742520049672092230412550880563879653665692916460201386649372365347957947087254222436073334825845992832809049749345922227176137418778462249611600451651210028278514258251636536771455723468889035875256060731354932362798990486568555576109944176669513454014059136272919015010237625832510311938125764334841404503025876230767629046376455034954504867041388289746064459564404159569578591003417027076495332545455420762564715607404418850147745790487723076039570993708254124228638078857988578865257352344691348735368973888598089006834041125457855816267762479112347432610508684324972778073253378608938555527285656920858778766888443789401211994751946774249864739005067783999282435886429186832678036695858748201369637204681620652785927578948390227692836630597239288438764213129951997667011831002359823663571490793063711000799833925487125690065568641131498316350732376341494258903893724871900153886180895209160471593836940003563048926841222338962499440883368239482997051288543717066287065123443872338329111602087620750824331073877568396085347387950286956971145120254364131480334267854692764103805546781571596397901623699973641331100640791458026797329746207692456387783672114162031957418773003320235469793895064656101072316006738081235083853920557786351103348557250566947277306201580741646647120829331837602771745250394172799125927503020480530235280278751273689719428142777685845456262090042891519782121592505734903256950040279466040442964619703308978479382205083554496578048035592119478899905321065150830316739264760643974101170407428592601432212274022179215744750801424480067093097079187674516535698271588630270581735172346673992501857557214404156623523947679444496199280389668760685671648948306767043901301697246249289333521334550499908803207783804063415616602912144221328241161673939728644111354360543927191243508235673927416339896355199088908022533747573604809124530796641466874883229908520135103881445741958793098370601098540655319614310267629522355120592416827844192802018123569040492016755276936487812207268110057609211996479090244781869430640174856451483725440379077635506541205561842916133546526092178877237487286252512114047370071975484943903367837583313653276716335519197687947746703858109796083453707963505727058360596823665990171896473388233416989838291344543366477670124478082575442110234908910821220926896840636072609300363850615844728782120018512638565521139517505254868289776716328498229458767371944068225383252110720762447934578347184479057561000270730489414671728434275191806697805915559262705543888222941465661641127141925880481132943872661289059904734974739548448180003379518189893285868313026996873312703307235253774035620919848615504211028056961165369694574708878524312111253034181602212352300457375446992782291019922156426033025868996560670572244744149992789678500187421230579119448384595428640648081634005147008773785368916372892251836098894457904106223423620605879064317236251814892041116873149667390381607109842950500422300183988444617030560437696563466230476923564540671031592417132534248343967235658510111822715550514498029988795227071136447310903906919131302786722536954340171959865228702819219590457430025455744509375998145920619673637296601688058786190219801999351617775127105883250457139731423392484367597201628857451508305890106214583850172970535267255102264816379806608070610556337835130436303683016388486833402905899996089093726625854449143822938282673065937243239603473830220640975376996708108839951291120836916892798191722791432611697204582146645408982002325977359574420167229810422811060480601729724208525744204788043704552232565870506152848083828537700265602683156246277776769722779386374838012517933476951846602369512003434445736960043714644324744279501663910456984919377118287380173993055395738137110615831079680743561031700847024128169513670561894993783330042452123392034911548689663327544064740893419929310951706155307073642287709468935388848298331847357431202249774663960288768346916523044234870955220868299992697378530986781903427564884550291723575242364151665017821057558350397553003639397120791227037827655292153183329994961308549476374668907307061322489924039415446459334566831183093707869436267843742501930279236555749699427189206916036371271517922301889605787541235774385153259910451500562940451208005276994072230122769647079563483504736481048522674348851325283737187228548769365370424568336563796252215272516023475415210965098815445098740561699976073647352081285219327006054144724130708619695136472713715994747117254288201205188777383740252493524878401968685349677406700738896674068776784521701360634002000261484504809786920697383851044026817493673534219168347402345091336547469779051468213170070146941126924115238156625071719877228640228697621558867937881021131454978479023250127325389860732250943599376903386336962571620493576104903601881710344840313847420239159977401778194965467818795069125977075910151967066446668999854604891442016622728760619991924264248620491815567539082710278794286575302978445502735027199045218474172989822547322309878557013026649046711644089235409400148674671664262560205571661482227672696326667380181226189862678285466307847056368804001914267022230472577229400796576854956517612660838910957586695292388440385529097337588468033207045172951452278730373769168340917560153512235807378996490813380363590921181155763291574431344677097939825522288391884232242307351342594215536905319102743383563014160883374989556322605060403506327412376851106777355869486028072893390587973348883245963564450824042969280076868735564556782363517690342897966545334947002339556995203806843658579555045471704615543425801194417953244681831355552920083979717739390614488394416055706121339476534474812467210397562263485009019713317032143389038499324057746825232945205247376477780455949268327733920491849041444941605127534068885142075452136597908764595715417159989056328733447541802071098563748888733044471599208283180336036646248240061784684312334913930908135746663230911886844729339306828064071261603019233052146077826523870988607415078316173555860869086665335265114430194878913977686026995137615194976497952382108948315223597206093197155464315867831758645809656365223449117238553364582059122965798064580792945447771912604977761680817044404106983297611542428152950141453177535675687794480253682223059804969048217626613354449478066280049062945219602952250251662347232881055297193989045517839387361102186781052814776647729645578985451249529669430972231225670631675553631294942862051510664090468134246910651859496207201487656640876504006277659766369858688953588606484435013813965905629198791662836518222706229059274116810878813296382670736744114854450360501078343073572491240637141520652673720384673774464579437319580754130296121731005961790955924209340817116146350920507534659256085849251688003861678769665899953799442886906980592364112558726448556789711053888404717619263109226456331991245062575461501878027392869093021723196932787279148908051590221173756260531481847561952095294797187146521368195645739294876693926127665269615165150930918488206456797832589269013835777677169400277697476005361416007850597040524090622334889132967133911786931821955999850636061909762804016038321933119292663506674505629055894872219218817010263799984132542580387505710183189042398995382363011924090418180368376948520245115344577523451804976153613185787540841674360239687063263739466357859569646883721204537488455395359477965461632669245181244800958698840622526292833889732503132709147779124826424658820834792805744336702337473187695553302666217388123298352881173721347914302681177905703868169194629899329031535831657203160785344505986080583551860554314277193846703641445127172758770855781540970742155955387396298205657246884588051912556508906617528681148145826014035595386213979618960000793866526678056365354970595220758129140589474932119297050868587209713864040681711472950286592515259077911077559156451077279495818629703389602810081028677898001790245022112310774939812279635968683265481233053418122685888000502598370872411322609896001026849081518532986405608245498056881869013789388814828970090510292646608302279551120910092901733636085316189605307745976018205499198009430026144740716808380111857897713372698746070314432033971191025337729211165201850631874072882958134861726650092973193956749905644939481258488713802122576671563057572127287104248777362533418883967901032433621974267784040923723852364038362161820044539366084083994280497640300914156341333098330675963399857503096271213668500273607384804852200592105165648886859118262622791948001977102288358064351516598091872945466170225380139617586037217766112794358626671847342131880118599240473444166294286135572600824591359847056725186876276045409189658414405299990987517311755563508896575153353893364867074242841435460295108373737316013684778168770462845471296301422098639395502755633636392556039221724027870271156759645831625871328396824224852140861457211574345989213117042361621380335836634127360943124581870043936028535222924760316805641373463746752974474912776625071548092476932642534455112793901749380295344252813605488654512032137311082940155915360620381236636378481660258101808666849986112846329789861946461132435839468741405075248598943541103687987007954998443130953902352902325061116852813117127713905922939918325114411370837633651595056727193900983835227111891027817497755346595501747811909628982723807731808465244160000760192977852665499203959575314882124140334882986223628373233842644223203708088296784954973673815289580182942843066877756844793216963308285872744009497896560513143127674029633333313273712895595370974289888681663744412329915823889247638021778102717386132574803110067681245198949352699449626862060212982922330705329998116793692328932344054142650133932658960344114182357048518687929486152109516940179898065761173958980650261164246807018537821812949213580998168928505677022639360860811722299312735592112575380226369503306496712794372071951827359708616720468071663273283210750120084481415815341979497880669627601740699749615165767868266134853470784890089361326408699864725166893242478639883586850608512799636764249062922406523790300647675232414055667214213328856167317182174780555773568643216944820109004792823824532088951170102799977889113402657695684528696696465600337833572888619233116449394826535951774438843339516914952455451027142154581603995995457081459441486675057073039829665996529996350555142968768926119168188052761793816354734019975032390369804084155892714702173737477489775333684596801354509226446122480177671365404358057710597887828743293176020243276089956994571205015857869713192952619551862635015220356185197541909955430383170999718975829508997207309438741042180586325824209422922156028782628513738272835647533868152886197046846314024169752857384993567298876252527003725918124970488783595861592507642357253429602751696099506968545360149620350329047624330005575041825260633018917992748860707047720135311312801791597866783486531750947941330369296890365540858887760443107633152860097022335446298078584200162070044338604714968948264926054433415431433643634600277820967761088420258527826497951963732360780496200423387614197344579174667503038786624331151752755487768914540489430241571561645093748211995324152178302477353691432433110635355271707041409055660735235270876028640161261040750662234466540678774465743153137827817464498419448116508984348328446369950208063707467440500209686297296353845415656020619997189354308586134316976774913381378597609281266263612694621433806909170466213917886595502734967744693858080179591909083922318089715694300363973340968212521515276243837130190790516062791492468530030109027644555571071337349845574445771515522660390512635136422232726909565819506683799796645636980307511883393606711397787934173872567834207635784611125499222630858314105755405598006414992235472838008227145080035517792168071834046873800091972697618645795687634617046404488700709460231923672796103874406964055617032919016067981494956604595804602038620935929046179256377494729819471227735080440812074700674104521643849712160247706434289253476982486598459007789472607722589952464867108766129994133915526830407504397371534079153067152739873651847441988332518927845966417990200430465817989529050610737880222640025982091600051369506886264794282984607587499498828766811675354418165424734650279774047733781162483295036797078300387929672499283221939240689655159528685653623495451939090246512273540500464428682869772337118157622787555106602187044677724592793866134250332106625082816092692288540024221983202612488710847958386088154368387866563110819093191225098400807529059226159095755197748736066646140135570795718733304830667601824657066984534285827668179778615413435841251762028301632220496884378901405783597844930527150725354883536385722301856224345432890525042136765172042428330874030739187128809999947483248188026328496749174307328350186362126763377231065493666161815200943897765923301798317057808356908613712380413736457962779170178530497312592636881133346203564253221196979435410778411465002054513485671013831867351892678256647120599272712723540169541203179930962376019660408059675369263737781885878851212371279849364988900924522385727913784290379442817720243396904979860470099943351706906298679554130470818612510379894567592850329697530530118109667403912716452075234634731167063928219950576678356040393765637285457796798621270607703679226953660800395715383093018447233022118199632084001970263083479964898397678144640503159602943170024654490876569358893215809744744286131391181390741832579866968686768720970458188174069036314052686364364172375166831805587771829159715979035800455667140121808601235115280093968405525151132753017328952010647285003601810977628541619895860577477825877263021904412735787591841475649657315994516174533368523198248337204850466449061410131974127138710477638241618418529829640010224474245515405499093414311278966517895940484438360519082152094092620944602006314289385972396692251802417910508611444054912977244325817998093350755454421110617749402155446532764961831416810394086148655361492196451259627978152338891981938900434530005533282665529169490237569831423110785319829464319251382332965092878051519993436633723074912570365416553178666956848243386623240125360537710782213094639137746305753816045424877455752982265773025842268854526797778423900871611522751464734070849419740861079486454878383014442437320541469526113265028971990648759311278960715836168434118540430069866957853574031644749604238437835196077201193276796429798481520597809337470309092052309246435302971196783684728426370532135935891741978925899145022510449941725444368712598902702218404935325783017595174215327653573658809281790002169843189253908646707120112508320897350971529060176204400180107454752457183345208088545663919312167340212937012947430244962591898392881231074264407745085351557268862505757448725730598700735293621277326983675309841541516622222865195607972534018496959551731882758588254654471701879692353337806406870116953900904111198135521746646864117569087846449264672506020952389523204795598856735901262713292629135181142987930375297648198036083007290223777970024617743835648558336135919419023193660087510526184184327485201926466233189883384832908471326940536421769253310440028231836973597599457941983697288027396301296279129981876060331864464578711919384050650719635138978559041441088695874322112330692993618937840138174526988883289155504081453436783702339219455446896087060178020649584399223982862851532776054414199616084524390049996946222295362834159620250907655673702978786719090098225686635908535940877522466082251606020916691659305359801765301709462761213940382854662058204053007322065056301064064921946001818501749316844785331566258929350690443132167640050072516563113962157701534124877171089487505658979243098240944132915031345550585566076454153991937168647879811769777319438447526866381710040843410563052626647539736273056700619627852380154657255839011897947703462881428473311957447495074062047287212938481560706784867153298806350247255787339613786160226396543328403320094060912816967007558491223809719158883464371732780470450890221747829864860794316444101121934039080720757564681402255190944259650127172203233493720251824924844070423953898409134357999665611273643624844689331215954818138342825139320753376829743312694460711521377827541764251156221514739654413359139416942331147301311023791801012887002008598115024365744979225626451190052803554889355102016963439124952564846367676159955552214975590007838473021121251873711369455572684230409858644953332652528713919878397139502772649886256239665906914056092206654125883193247963707098734700524311361913464894105304414586193271697017065047028382170417879814194435156713950291939429384577419360740712190309408213653222078256044976295206701300185864649809323729733034000887276722809078474750940611899354897566435880729143836057370864305065536380033205476125294446659667623822702829657746095502423121051324207079495428005689627216733405566536949103507724846034314599118588674179044348580728095393671873326716331551702876779797610502441797254859421028633203126600601492936909505710070790371232185995894746109962048564542637594973909170560640548731917374733563478744490733923366950223623609309712787212807886188556233416019887009411524630175497360923185425476131144776876989124183252912403170070326022198229216687257470057906433484172893402351616221329058438182779524122031646719387055382007197551211886790672276530489719862335682825845428949692432563785064430364302830183901295785648598958770647536390451797872995192034935962520722937293339165084408320026919739089382650030472431631934367656491700134673842171215405910485753942586430973198251766319054325487929794731879913927627785036358896081848956990043276003583961987510423375239182023274420250642288971115377418085201260931883301990670898266107109560384330427988101602074669066991900586205971356590258005374109464678586825034677987678126623643075575315090258499669677090666143213652082859876074808765382228743960512731112946971731008755078118274894589875511772432615609127237630754940369416517827127216492762862005358745125090024773010679310876839302457871947354558353517015549592469335150544822417895560673867621505870696024984435224923836050816210997181417579884857923053401214122173561632397364331032834513409150190227213184544904889881709517724540871092427704906759682927803718926534589732738713815420918378200761372174324154218186349436179120432437697869389355132000232242363013028412981597452051385580075810089436130888832608755058863915484710840702418352939208121803133130174559595952925801614270993943349382125442600989945955828301078253844643021707391101067426143993253612765311290556894367084232421730132833538770392085288296825502782882237147460351571109843472382935863807640291312604757375410402322341530112969957449411781316545867619439519155072512223022614074880190696368645973700861939455922811757333125284998098408369205434408931280259868130425189220457713783829781727022908184927018800466580694889597209117020545963819186822825409835636619954491019132389064740892294719474729721610794567186885553030131132045948011234242241608336372743375616341516716433998811593751293496637471869749198838831065077173019384860698007906470984083089268338378895297219873617990954027312873069577416785338527701072617682416777682095877747039068105809403255991113894069968907415604462328501722547509358512785436567811823657084266074198141237433366743814871345353187823971302553492657239657954814448807424411113053640053312630331204694756112825055484106295282367231906315342826307003256695398510088774864633534830948563048283428015933613464708781827772279267712259101987805728915938247099413704582219287225549490766898821612754122738103558361732693035304992951807086327737946131168672266038783695571941199804572779698231792218748181612836969901002250188903496562872461192958830162211370048364771908831126081485280314325249941006004725405861106790127273536826878522573766564235766956996233419712681643926474557478305984485647791795749554036218663396480800457777178559952866033066173945508606952849200601970157542740825558931707498841945798915488564460681491039608089651462787338691914493775465399836696512214594403563893580869667091734672327633828518578342596670722795162801568553503055402626418500366856186709837563546969626813395844729732288826483348073442436949382573305006622173034088521582408346744896520284722765499178371506452474578668416811413930117068009606929663614955986301537783211073531056629350514333012087083144518625652651350317451336564946307174753126535484327007315893752979095353619227276269177149899191874654499043318370460348848918637690699407249093133137491204508852245613445760401096823933262756148339362023482494978780918745607576503790682410299049554425761486187489645470803494800753420155364403602229200990788363857584863435304497387066547102594062445347832366336865282678872753292634861514926228166107855682270578243443552169359211257441083930369390473387186682913816802807629744161734695052958398332366871355333223083981043025979555195049683049109483616573591627464773196920821338808026966663326636017936031325667724014995405596987229885398179665279426207460332672360777526026664643017744178012553593776689717169389286732305693300963996954468797327729007723413831287969355428775539024728211327676145369037271765157362445359059844942497522395778289446051911009094534911467336049665145945553890793652445689143443417640335211207026063052065267732331239368570980130602033035244710982386241787166797756471347716564428532366951896599674562101699109636639013699662932345290661252651329535532961883363169462792881399193733531225856475079618392622838847886533022385157714821045132107573884931939149350721921365103672044406811339122475520628518560453809150895569553417006014621034894394113475109027407142652289535646384347633667576699484473652566899280077588850318864716325380333247150308620342347525252030997548472213340643101733336275200258004850096614041468831933775771154329728705490368562456522241079969729656881880238855076299821286693270041692346080511899380189850555207472963016328122932535177050805641508610841091984222157311330329769985124833441050375228914409062439641652253977517225915431576487351123201370384714644684649940862545490237646034432352531202612079173443652452799701502862396552042348035499305351203917719527150832955974108697765217021832833874732727594289742840822127153749550079448022816045449950367695961973273713433721480382936038623852576244733087265634699839926969302966561755054216084187808910009522655001725614510057834624764804585908907805034769217452605770510045365249434545979780756375658442644939385574632976273215678559240435913833251182745162244088258277201737137055184642527985651725559005943526478593918160412962733798844939695797399532891890493203831213286342016772678987531672319589305683953612070843033229326202958235481745484939148377239205941894387264771085137854536109480109354112558646747626093324816589537370714863455423476763760685847438814246781134597330101699231117546846313747965870374543936297929712225689582472655374794137652726318266569525551990835499148274381789634618362501638820751316019896154801344251989246218451496580579512305672366396954704196125135025055862854194733903625404589715328124814033560629150200455915992205021452723925307805069928773708635471981230922525700059888929851273645250970049640074452652185939059708558643951241970301027973100738467878907433155591726395172462916519641577161964343069739553070337108271336043294992479407058604295849260057805713047338810105677477081296069059160899831744298309784740442903937578734760056317551798784542492121334862625746583789324218651806220665138344164422390431503085649431672951412885778173452406972775139036920307588006190154952699367138385768906634953407789002518079478150973160913112071575176176186304998228545743012161415403113149787466203880408356881966541124310521163891504173167941126668281638709812058360865662676208037863340105091746112651707622780627217570010305822771574975740446217140515705207988115046233889915468986673029547431755125424414966311239464430715577921939956459371351328071978374048261956321442701602880740011826592921298619269074252432142207496517938588103003639181450996658902368373744951602103819276217243111174068654176243295379899105419393370850933683180931796928044683236124133542299754599547605123223735859950532645033131008368986460052594646632098664231188869911061473739994281371644233265989674127544513055830224399414811037702109366330235380226821078807714933835942283296263776928285162931369719951143754293584314861659626113789268136040087755448715176627629779671268115080793573306003739275171784901072144503927429549165800814828227194799770521868819471376044373073836417139370016082640074633983682426323573536694108917207135707857842006724401885054290359882939719872605160881126679054671569168216833265945067213070108698191214494540629353437048926256662724248740142398771755349545607957949527235801027216227708481179516432636060247466897671016831276551136378951514472564992903564702528106771712023851446471427440706610024384196269319857253426220384301383614730001272222803888198744444331975702741738423942528551167947579651136338614799417308235987327181887865647592439803428487473035929389837152581293281142406367441257497772826115833418743299319871875938906798989466910896027100904762926021470590562514674307484271199164990255603321148381279184710488450342854206685360540424996791079426355572501747317339940025871558612237545617786871912898479734952881028247006125373580079307934072677311786788599727958940774755142316570662846729479596241230433766681411015600544525272657033502966851823392391925034991743382561337387339016351459035861471412761526533885986258539160492365103553414451807868289777341826769865676808506567729824380639137534796767324981461258784241386370725641684606426689980257683849715668295800538245068369583275315905878420993741211554958328136768674420911210968378278939641619694679969293474180865316476928893845196193956440361083952416835477169605476622246955031393034169094240087906089565315867451964199850269986058726658633098296025069857882705530189164322730411978329830432421127626708856611356366573762732077953650311277722313128817798604098084441056797418569298859348193074609820263745660656932365251767913377507267649546878940818894331283676319440065428207754518066577655943398931355389808038833868657590076353495419891791777767583246730468537623556028359834054188853059035151216289215727455426289872012753128415452053232013492143702910082763628406972897300680721090696319386561231683433439683841555767570158976065151589444635817057057829990232736036983398062423286642535748942862879166461469168475306115584815441873208082747044967979217552792599608576740888563450209407622595466796591906563740607095758468119367679646193848151813327045531073212176259221812857597145086218980658630880684401134742485174905759225155549023229126939722713037803656169654781645962323701110372183689152168523445333744658483724161896858236042841065671658117435981471334180260924058764238961466181414838082237651081357606281633199159598149477075123265688976923323754989209104792305809950522054755615824492220642891328342282709704683694599587470485750797003251821583346206964630740806587735825569692431346065838463584460956503555470197455000957952092767887118853511130893957624057309247197691945102311174954869979505955119628330932535822168782579888139462282773129971817908355590640882052156201427106099279587302347291121985515734896913488516276525534458682860617901672289046590962863593874870508012196433164982690577369621139076996413878769799675560786137940467830674446591395013406099991802207797382090960866530068461346051011669128750155996556887619079514077730303974664637502379720810048369786372647346291006322437690507185243733362050898688954089182139001857424918470209774860567551021810596415984135880460090837049558882271827714947878875574305596635741519610874405265207446410664057585424150011392452385749851199406823073916921141384937916371444348050604700989598161100927381635833895860395517974379996148594973576113292299677469393552227641105965555901907491161578003195065832045414680766495723589997191969083175123840336716598593528207861533727278115694653369098931123456579911242983616697467265924252095105764522709832102226530677556507888538384832161240572186255563848116330614571956333509202567893894373970833933209155926197459147556688588955513444654399456891319959129853401050344199195677072035627209331376794490776094843487824776662334498853627312582533813467233905425209372924084335413655392424348798933451457550663837518324201747450785963579834529407371575390846180343789810896149185982584182447817570882001646320554181688574698099437054465165385623121487204438535200764260874034357739376227312324619439587548049573191610659471013266453399798543534647426228090522144892386732635141133843113340237558491527778104740140035265282012547260218076630296224718390053812580969901154010971510897432059359943973420569430040225753866487410917816200639085261324528352582558436087591811716761551294414862546342058421249613146880118498747847558521366948863866531769637757549554679770992171234055195827759596570333461892587575676613687745292297090193820903226023259143934150336275593894402311892030579084629153060750149323726074883926878252561811362983970221335028558876407797802279332317795722147652950082588759296007168669950783993359696871250254034384203968153127226741334916975549514252208705064903149960834166290285295602454910312839754362344946332788981657213060815431711710862758762851630054030933605613892627267798863145338754813665545025091579555360416657391111826757154364473121272038712100223906818150498391089107314014773130625605859526831080933353514842397272578063292005806907391066727483333226793359055215804673126329339812692824784249950636837081324475125031171371186638107320953289970917608085966964175893091945263489947181200748379636347390657941507456074490082111926339491544726690504157789648135343030216194467015734617680365397137590420227811775279385111003989078650663915434298800066442448893502310444073016995066143797805252424791820125603469227397099367789018365375057871752767034937751617390194801961595335691605641129429549369877252423281023987840656075146355698417421080849025815454256095898796034445604329435910766421856713113180656399472940764439024722267947657718929904906290316125347014933276407684521793142852568403212788028739727874011321579671294034466629381712756341351653777568793122063146372632809642792885537079738254807086291683691112924476579359861440262656319088695262500052516151467664650210902728206348988663100695611065611350128014239855941299445192515224381048487509815999830269812156570521078973754972492812809687660140399537643734399843564323049868106489959343472007315392579379142100437017065853575342424931780587757845960594750336259013469614668628387489434717353920861347562454089322526518667026523910938056045286578295901644568826348444244050189728294304702398487693833951553115563705187652611786107888999377880325199897243822535905261744415550471755063583503831686559651142930952409634125728072266789101284729937633438042879672459415743091751055292956452966208126379279328787039002484674022164762757877975265762819303180556011794300725458355103475080803112247413089784179511683311103159673582219036922392677113276511874029335491758767778415691058104835924982281898210930364816917792716334503788959643376583895538189889586401912622800211553110107314879445731540748958378017840672843345125253846101053148981409395015131162772355539874326949523298510485784277547205708057284789106202430636424048173711379835965446583376115375330479673338694164106569331987081884728885647029019179966955270349724850886648307074461372793926852919572803887028235452409543882968970283661560563519325440050357383555897135222915618065721610906971333883656459662706303740306211113657452846793069912941888809688025369381749717794853080132217078992200621328554226915621458672471953142380580940036246601640834026667502139520934595665395568096716612577206893761165678007829056037028314816326235021889928045983564662222541824033794918607882472244009326946779699086426381960076653644774102626836652156215632429872986214868391858401830265660868429285274304975671853373154572432651727058001963694500443422490891200179321688733094327251095053604095533041900861085840886132869371649897615072740311159443515567451018426430035873674329890159410306671408681821145134530001366340544449000737744405134889334110335559754446460676927931063894536687649490373957100972750478968483087894812566607834138218925326127507716813115315144432927566137061323264248473168159363649478741147846250679084500237993598624907267488354671422861601644952567120004962150685602738905687298662830704162269994123726594415345736503352608063747988954780637833277057046382999476526373408075847337892468455763087163381817013044589572936277289482966061901654803066958370361474177854963616455377058555023751246155239842892823502921122980307686057018064273996947648993670279594868991879720029682892423316229047945491338446579029179338129402659281261973969935240359179659768044519068459106240664126465789586338855048527335741074720254684062372794633033111861851026290146633020755415415488753113816940163754577067547572711580675399752820422575801692625659860115412597354854990278019288890051911508145642820960440755342755598572875518018014186311477673531105465684633797001593332709637490278753284082596384223232128382251460987107343502114129267097588774996747691853921333354537443505667052166641323984856029271258263577118854565079899917370375490432358556038238128270951258017495544193395822178059039714941048711254943872390839973554121671426181349351190132226641743252284970048683815645702721754230498263758409958424813076132036454046536050554883709736492889665893743968222535101705745134037413899650247431833130370425770830707484678735277172258529494860520978351472841154688534195376912267220089483191993966571938365998229500425229841231184894143219225041659242251987764412668839884063807770422772580655643981612950580403375058272611092665409219386313391437294244757262695659523503291343638871840119965845432776350956344269568168158115276310663879283360457139990816697518694865161122657575232178828316286797697765168843868732710039080925895647584594666544404515669946989286905633734823664746620505838123458889158150802536373242925368494082489468166260036891242507966177199640745777164400561712012500743026680169112350384356889620173575812359048279369815724980346375737550059129717484778778131743094919725213704190564496157958295880601690257783518445984897159205089673965437486036236729269337723975010100070935330085837391357282539473197243767380667236395039194555604690672874451685161036815459888679755065122945326868201889292458209393722874795553027224446528636690679975865246214317101099458320453374773317741956226359638213096788632069812994568076139276885360063906480234608314033981956383109595672460108650641775692154568268292659513865940788831592492963855871027123860477128843530005340896072891814057313752905092066118562992259606300737483587683682669044733922904005457091484482371355950043524271366778603335985447071289512891430477948000588533287811073140030744366082768105476076743050927596449513225783712629011988497645626381153916836239055150297978573960795330280340865328443720404415428598424901547643708276154205267427249044245008696272269811913659240124569235961796398864592904488122819664099840041097350405207095196663905474436927920513588697819749620522765850345258350073087132109105715892442754087203835433713022578894053552835068099135082192680011027776641923810007361290134266762364085688665472310338329037306392085066093926322092244031127089666116101479426671645372579040419441720018755249614077244294872636170286586480776757654692610038536280859692236206698127357768285453045621202721236032509924498081877977854837376067050044805476728719570663758436145577294368582284743071446817748397088622333487298551591761686547226082178294368018322261324867578193264743739963716822926199892557122891264113602448061645838409563938372151055939305921416739676181838925889420931473251776082815846357147896540975360589633022149040997554019480903180659599882877222740269510021171904074666646070779956739122012550578441526544313669964396235906117479120487012208172801591697796886886111360436473728559128722261421516699153193031477615608929592620002417769977210784269584894365728343050827332484423111830100913719268126269005265050445379318876850673183741001513946765783144075803395689130726808515702864776148606265177021714614321549630891289017040054784732840562776155468277442197340262711866699571279557354733171980015655129571507694020014252036608512576190540283022705879738448426808522903590769262173791282899613739541803085091877793352802077657341562687815795423124880921236199866122709025251983673942533817396429941576532682162499472778246361528112023570528266754571520839025697773754980285360324472580790196459887108289974276569285189433377125592658703381517648238424395982159218737735039321414247179826735925058712622666476980128853647529285056230455471131600115729589986775209526359843546368018231853741216416182706449040663957288844128888921363636260884726782941264353982274345386048048889096110462412313267750384713095051732339831880068580917476829849613004313072361543044305115876602812957561329152514663546162597403248546464213875825973383398759360465988850720207658260721107249863562350050903239210961138798102876786531835553262658518764307334947631974350759753949003560240870938438128127381481406337570722641964562907648725893550991794898572981530522381739117829383071947620296395953675172694940065548367525391011029941420672733997236003228857765690523294132588950254960165790975544882996918812896506504139875476250192915778105559354862407396050636926022275071693333981733903766758883247676206624247706894281068118751389320721479159755750613956447347940317195028855033282527284316010042088648729093642851268779244722634364497192367524711902012642540519682573142130937254614904260203082946010535276865709693935680513711936189884441155649583956827749986635231890416064707859318933107763683555601036771010911065708158167233476258575970361842732871407056278604803318339640207767957405102328487117640420749739659070819831734818130690404265256116337149616843201550841243749441354315423597034935817738832503910259148153079665588267200404216056192004192732441256190074919754862108594396536472353735346886006035422677805223138462549505739244983065203029256081124112197627984622885516305470445953078216356210662157290414348868469211867614272195086840968550181631551645039441511262658198423692744369251945068033755156257228890401692120275140857209388217469746529718024085203015270419078124862200260676858360809857707451017117807597163921932913846986652585768062300543534305490665388175046806823075192405827278315705768526556263756039234142681772691402230764631600717259509728748575071920855744353579198411937073841587728613084511103487024079779288224515035783029823397268221860395729588746059457461696482642412167092263248140683547056795337600540723864452451209455100467418718200104703159520811717384822392758131839387698374961689860029555103029637555748899108344725219538694817601060399615989830619357036213864453407700436682044622166969980603234169597731194456029409608516701579593162923317560167946247986348237937081698791919488640819466010903806728643316793343678640502114872299598568650299830179099290940474272960687144351868734728342303449216792009119840990679948919783989517670150204360845135775649214720450752561714321763972942628948607135726910346469667771653212680977542510829875248030356367649549368712226624076756139732625129106257094704010952400260006460911051109704723174926037284984289420762633816277685598242391041503883684540092012106013407919950248955215848970301715579395642982929073167081600146891869503487379010218066526159906128225602960535366815337442130965758211894526300717897311559498183070560722775646297140150964777048830123503648608437682373809555061935059516547661324193515909353190359637351382919687790483250917918687273338146433746748825357890278677044360557341895168735146390229290200574286112698608859266659369632334461378369518482596826088600709036107310377355648702455553214512069276817909112555855681146133770482816809513450986637947808888003604255297885377033329444460975540063267045616181352238675438982044939053838273179743460170742129568824109042993404503574823643806219189827272363452827797631205297373511215877917769079789888074179047689332790866914731902635076406490284684869403058585692198583183901546373267532749978110832001921837235227961840690188112408780015612921012224962476968414398756079520667758051298023854940669514074423503379891818693573649668174003412807352529983258337063414620505360995706734517429402663746867603431773562849462386267412141551468638294626079975381348570017770989576623969726935155802353743989544619094657452730957216144691366913102353756291034507156162587935305895300953919438840284096587761944132689406503146616098239290872029441793679490767754384004304261758808997568632776657913060026715849074106322276642737247498360850234905169090117735041597480748724729367048802249331086560034809085955133781382224673910099053004445180345925929597946232821884755655922822170476864346983657931072900168457719279424566650810876961402850882878968498976640324886879105309134581237170942296696370025557417855471927250145259039412359756693014204319752760629222352169105059987405734805306165882374918220066171786983122124153957914308243367207623345966281351082260570402908887882463276696603496935980035938352611877000390884941717005787018906950653942100789931400858687130688804828817026769829270491950178113882639478916772656679107412046773547471726291042810198947343033041520731545474036489514045032207812610550969212618970093372674467835956485706517481064723787885757098944714043836061118591015690075587265771066552942269919719461001705480916814112465517166893692636856995168714072741905817715831556110952173866122156192232649865547699394364911195822228868221235595159193553807336278634561356668206889604052650770621519238181453462797991607426616995206772275909888839889272402737768946998297888467578672215825523137133667848360244391394879988644259759520036587305512941867235640976859468986426936538795758554031060835595652476627449244266276671413575584268766995277841971890877481872221534996435389544813876070344380186769297821622000342564950934946986142248082050572312820748697084944607269943460762616065770521075748818899147611160291724073756707102072109283654108659345453019307894133923204926684365877133512270846434246004068619199788227766056060011184031823522116143700209376030931527860734834816447105925879661573199947745532433610121816304428275849294181621582585161569591763822449596931095712708353492686588266518423076956369332477001990323254400528936008573961193527627181421791154863800028917692635369275765577304035442653279496968836057336979770474037258499065771543437456007286450336229552418933201771849694009619799443231858557179484264362651373972331101228849354676798270509675017286906751811304592795744193593515961940286771470728424097403056703455183051836701147213257185225475718640120978027286725829248104184091506744916407489463727889061294005870310019258761880239042012104824099791414679317045992453741653551477767899909134608720437770451282954543706549809497304847915186673253002156275783215893335326767465269438722129584654661715928169346416986920244170600879695986940380020036362361103506297052769729260721967347851612711876191173727843543134350720481717866174348991844529992838328132469873377691728406006681586184925156097664850300234546606259331799726018595101314634043227812971859906203074861934019158384670604835647587008098826641893322735072292618217146432109930143868022670563999445567092028021580496859157109315492006727703226642412574913073515106616270526396690740702257094930717921442249205499796745275559704169460263020039776038470090625808216157933639425938476313111952473422009866705326249069023354033476733191757981153034242187064821589209560403705749462491689173237467264644423786174803743560404814077028061134480309612285211163474971839064463759705040056902341686462558800226826660747034527279756954202146829259237019677541703143834573583848181629388792832065944574462036377072528563083493159590402776233825868648679701598669573427576250489241731605405711921221766096781953510507624367001288293999385111185388745288411562881177157083500391209306859961988575444025500873768150757292926732544904318795778932728182539949681369990394692560788808992205368218552490849055557716784373192264557864700704359502997751803200529145538871747320165253784781712930377464581765738276007546311610377694253240475276430722735132803246014602195797026089006311828741046346815107222043804587629987725153228112693291281910139041431212052875986937430798529223484081085596210852317873866457279793453725242880458960109765229341334805683937533870418423400652285814357466669962833430667754693038201555034408676872923692583882721650290671536130142022334867534248801246471668227614412669989023909084096339175114288153427756237370849039073875783229753592896403949066604155056222549189154321697062817609902239417896968687926202726611438623147201761324930667421504031810259038951259461082944358212178150881160083855487594003289482654138613563316197655663550756377086009750414290462341186031341090172421681586802480132519322550455356835066885391547256704720945115702675114831623388695756246202334157541351290171405805520931860846036034789573704664318356777474674487273088940223647838367884299535516947911564231408549643752365940605504211552256907930770092568236824665105836500468135968989854827870921248045490447405267185964435963635230943963172197948133697099236514598532201318929037026738833482402049577313147425804508394508862533246414835471807277770413336907670572412425013949143626931394870891331234635086856405343532227560810683176679068758091178510653044088997130021103999596042198489945207050857479675058058334347254249764906321921387451885172600210036548724274923453523027453059124391292170247917966750464880541402402113012472798571755325529879250840396835096571263994175705072684628950010376372840261435294794181335824987830053816328813589218557755333165984047284968018833062968721796236346666879093428444546300436805570243405436077397607557131825342582988484965525800044145661902585097891301792336775393215777709372516135889709349886740674954272231772054769878745752675924986923993727866271756734425819263361579311253621248507553774269148908340671833008218288483634989611770347919209200590320697740436657962502184167293392972177412816028338707299559656267837946600258115903412162446994574128749375091740179760666744881693939347981465591330619303435335038951549491801567782446916224957513621422048737075616567554322771172395315807626461950671506307563824976483950166704367200883643422551129906959233453534373262723606838244836006507342982075230845457962259802397422586761575285512293051161592390717143882530729820167326123438930848814468000192981025006870217028048735213993427291239786307733396368263679795263352387608969309181680583749188640913356753379334969698639714235170274458792720413138710847303038717974247347114699958363229983420688771957973433158029071579760589679791561308506379979960012496635537408242917462877198384068942607082069328400494088844421802729465374100905565101438993165734798691818317289873617133839613262593330773959077779438357505536048206355831623385372036680889660660683467207931212068872494995008278742549348327219231424428206964399220967126038063208602225368428415885941101873574006161082021189045351889414802854912683645767914206426608980244345860702138195701572851043840684363174913635193763087679037884148180117866665889007599876604410534692662625427947561356753827744437144489046212106950603210788151344419145936570894808173660525486846791675671113279614770545904996176795469099705267179087486848419113269389642082678520209225822122646515488560059043271354235420873249445728602641863328370175413744030742779853787743396329798245777094909572413643387475835366576626661003628593902531101974255624990058414113539999706239455070543409761541742087338234917430583127928130299120934568049055160120124636987499422679000269115636851828587018334443551026145152472876250802593390877552621194280772362252549125215075384468002262701454086745684296932628148468698125132791698329119184579372845860398626765216114021650150914984504770688295863909679972584698338697327600561765675801606068855172749562658060818167102924434636812958238064131026638618501086622012362645318472296831053405524444848414752462261882523982081158461746176349172078732304262235996397340269432315937908517520249774703229685457223007715009448720185860679249151923900898564497653539968749928942881085226550215775539973313842863098485097177459255558752476185186739218904527101450862517367220214531356393280681298867578384624990325287730622392282428959858097110562398706762953049838039612247917910223040758389693861654303238836018588808903276134416808302155633560465515002325043926060983539490018070886550805807888321035660497845741562970613422715290205500673101270699200021072067957798963604424025885798416288892502070333194478285716165175800267264164263980477730440508284582829165932613637591990023133573460202024926420008204635896180347455311502241312721393698157919044173024738621318869002451923402995749277772615005261972154155911499529201417142947664384971909298442445669792347180974665891345847929515313529408579309688803404046800194944024397845776950574627564341834894181713284695459481305522445443819346485708528184673084495009334144874320787443448573315500059218906338850501668169183833894010182115886898721978250641584940453399850627069161572120530546277177724606780610848635459974045706866475374507022935466524422898008098928271617854764370322965125621645633211482873493508249508158870358904604516432363861381082387880290833272087889935593264653575888387167819053085473426277098429578256553206095889266836380160430842557660904424283500591545676257230220414943052150484055618434919199388230163885909460504807660923200747176880213636008229173316814265999550450191431639386807158628393499306819211617379232634218167082820464408331905272769442664537840433860108353006698735161493432559637671002650724973635129182675531048092768693645077255761720801906176396404468656371138007154442100401017393881103550174221522784343498083288909511502303430894925789135945502647471069723863025156254663700944124037180673100786467318338087803052681480792784536750781057778405362141336476037791945017028943951772349867932319280333467805527655568441475119037943626472758797370904165079528675256436032349351456383678786863948416243537691680027602581219238851553926027630163954909911225848168738016596056391637839403557084448516520914757538513770765272391704661890213688825781044939074016059395546819373085925181727717560360410213458728219914717351819382553661338646905824846092175556866777208352479138480908742193682061575056811702188475642782382509018732839183509059237218980939534330234099319119100838980404782691000196065593900890078579274295554441743507846980687792343224574754148060902263182389760554064061547453975396954382028870195657132718658788289843906696336247254861996178656443681308849915875877558757291911847935658245736273245065500776450788814639757140096854567185727536539384519366201088960996473507063429011665040285204139011811098830400608848690575137729625276277127119095363281548907299562287930187795974202136245750426661893496341131381201899254243067861457994891342539735860210663458654519830973967502453907061896243864714529976006365920194333730287381771474998382728149001351248963923730302041486418296966244204848917875889374811218070855819014342052076551644236477872266428354742341555473404357908277743863058947641797966477419509495770361110878814794112395845920943176593300361233820180514341583739442486396225312758991226963656278541236910563558590838107727026646225196195490072190386539809917426897885145673623640822834631594448988610305509560944884303358309273094044445235467251298926245311191779281869938646644557019219927793701440903077800916604761318773292514135942335955323895220715529093817518352443067248451775538970868923414916226721008346269295644734516933526926113862719997310648606965189251078860396839959621028886195637654325077388761872913038949815765746087853381711651880007263364742919990226053788611452893262310467087314073564406366612121103971417082252902969567769029793867836000632374088335563618174696601525615737453876641235529434559678372693016007202618506211676548652748408535325764742160151647421317617046047789007504806335268298611958916160613775115727181757902626997361857121110234605456207678294304947776735885828589353042510683234397853733555418657061438611843238885390256371304235245243481938608877480953452463812347858680595423162861357478129914616513039417033520636674359744408068480100720538645072206106759169707317601057627317405479507585769336181865574442711580464163850748172849172654053474952651823883303800948303814243057767403423017680396588462768702627133377355275833614924287735941313741485865060211971475032875286919403263925569380437811676989217168978121559444099096102227357704920732602504360244046391138052520763986377312450515074506476884991112511796244640610859371514891054645832843202799795748036706947598889435089942208760386167094753138091912192000812136644016168284841861655196050419493363199817686435169345137727262603501182090896862053479228116711294317429185105905267755850773892594671542483221568524971448381792927456733148145646717407198750035491260639867859456477105134158037360110582486057806784555841730687648091920755026643284997159946427186063507695403326931235045320699191892543044313335648233119643340213000854555166809761567482314219384356782126432875671086199361234022246166342825634276771389206726065606718999130117782552442229779756304253129091074938359039814126221227137376256753359198811268625147041494283285257338774451384573860962815650546878821407345560919117682541120112203186603105659781439055858811254236800321663477798645176296406583879593123023335792637491591803000218598529518952933267298809546340802602666118525008588069350130899583156305254474154635059880811540025736962275407492810778996800371371417521616859307106507553769551209579614883814625708804217782056627051204725305519149373573248040911369614942990472627292352271901458421952383949537833540228869128867428984885348120055910441163005773662707105872502945346017729230815514698952167102790442420660904140060982947698226316309417087599304464183691875397315669266351990434489281384720096779513422191121960384627731647039408460456232744245089804722902392071296121315436690218343109510383788371419528892631230262668169671086616464087502840859990901080593666597267103447614213906649672423626883670318624772334787993290741953152314213553378467553691806242176540312232889920693556206538738727041224530275207921969973135530185115822672125388960068749288159883780899849053438513359332353197214646385235836695255531266977269961297122046863410872711093456336469564809770891026351005536249157631869289870835789089346600135006038863851392772052325900587524104176698900601548582046452120233123606290023492997287205971135779366767931930504554050002124962697406681596208729553323576098367946611167430329981254434972808544559080973354578714373569765871742674580166635593528929966347123083567168198797637081308331963291557564073897420426323949689065319762452027666721449193474836029086988202858238083681079174715459371551221110530999816521716634662735794965376188299524306652042519112880121439074310098696676866570874129580561491449000515472754468424241414556651706850022557312271107545650519253397940060084762421774136078725186525243219724291746589937669486503602476059448303595654369822264473219519631321498724464208126460946217688882136907070631987679644439298400651013513590205744371593392171892978070643288794416434266421018000225273078221524047695359822194590857565014663315894241467827396065330994214526751485420160115143186451444218068664460364291414614848017953541668816288448196547530250473612888659761193385989327276109598436513205431138002512609314222044253546973571820799828428595449552623413169984505145479975659600938752437678635922755329915669668727743127149892200249716156562223136243921857849790108360398952901112782833336966939328673069014200275640141820858200934375694190069106603795246015118487922011303578347068476621561051084263350846526515758263055887307009488788640321068179611161542554014835312859935575649116234626342563643751570707244578486995805372881454646130892383188693017928909561922965060417426511615699750485629518976657589599105765317881058180354355578923949477733987337098731374172827451439005557978238750747983537920998675001679368894447895034874374680546487241955062400434696286542722417960887076361754599714843387403763024867412781222757393113013029787772022185976305615482082290250230217833355868998805768916728768731229748315155594909333854960097640908470778082887097579697260383426829020666431781834553477502361607813021377442832599808682278814684879191827793340620585689934127160833972308797515910990588354771417258979214899369542589654727355905438190057855336840662647197197154581663525771983995017874593535837568209102511941920252512479443687591789544529776162914503250321746662638484282074040756042329568505698668121058631328665114305050854208044143529792733325745061822014262479206131303738015024349089956720899179463259782375132943296785401565090229787211852819409643193951738055795412864475322801452825471078470474264869045071169425118688631498279401606416664722174120194020575505476847327450971867521696954399200658963638348243716217677134185881090584039147255634849120376598098304199553408552445247444399913064728010203099785885294426653688607494326844895850619432396712732634114564917922692843479588959014732742796166876388217057343163572948073934102594616432907076359544747409427750922043204878231410762348147545155518233273920974865418865991722494580194288125304790660755266306700759722410363239236237110869437434292641695214835245902825413975470124537562110516290502526082782920200185042270684439976924605266000099941363377519304227338383151345007131816890529083944684513903967904854755798990349437594843121528423295257014880851359211444131021010948684982934180703366803737513906987666237746343185639622188464894981049154468504545158721195265313759256729545507352844496922471902074026136399431830769703622384882472817313367825544225637479591598709342655839520549172691197510578327979952875103786599845031617225935547221085604425441304602684775664581588635283112666723995337860786373745109033942242796533077602629665380509590123779465615755830204392809077330015023760527198924874633181306689548511302296766662308673199085840835695581028682108404482467694999534542129058247345371559939258105278777310520010253472655827814360195481654823950082462648878970021423666705250571876603501972087783088109363564247372480131662246394529218349134998821277441932423268931384505849571812731087290602786243437555971747222676548956967367984704757951824078093023980059032934295675261712874785509870607537238111920434727008603096219427626662498493778721219371112117379034274276788613517743931466149327449077963708453309614368146144657445618294713782616562783694105051116271705138275566757660405310916443239434438623636298740324065435616002367377292846627163289033987624488325023413713871463372280361529759703868410696941019681767971811406075705423193760976435833239348354703282255060891838441322643708064111934911192606564368993524297309221822137100437280914397723512819594023697448910551381342427729063291107940028815416771666855791594215450939994405490200379426261047899183725731158041081141109046798224053345667572253576406062584356651321849388433682568034816884016734124341743899275305474516140787381416221688697871768411945058408019597648454408577248044241394754609823949719808477779705970216229655985738579170657729268350161746676888175897115354217873458023856568106118536334083764427790899244732768211917979469751770973075717760277074068179361162476605765599200672552799199969607028612084790713712991088597489600969036935872871241070546317902392923558468703174206811296589209166554729367245688320141012216927806230380781175000056170799408125864297158290582396162503856572348711508903066476163383368486415076465789028304634544892069100354031370858165180750507166465580958399759149961327937707931103060344828357934100446771311265749437918092271109070789338189410088286478596193285351691137571511812871105903231807423363669672568990190502983045310430444092375272473200259024628014820686900429741215287541346282372816537319994872358135681647834727434113135284809932022243175961320600935505478544282373542140649625119957037537959390625763987844212272605813963867562987522001472732405088153371895655098362481760701177420167294144094023073914477728656990412576742812639904874548485639924587519489935416687221810629293167620778072107494817372678064302064672481263605702460652962198563496086337801857636793274458029423097508961592720334465028269695883661534474120070792543545145573488048060710418824162898805477279102705041622623862293417291296407334792653215138103994299233831920378967204475226089085014854120403242270039340224713211985351015458318172441916706823412813965096386419245525383498483297593423990074929628872947095534686748524738643844970898530106980408570342355788307325021131625947665881357395397914293400766179732421601417311403235326652559257892619877180828129273065597004777056749021583380937772906058619290988676713010624922281082667702774360986955413371065916424298093431152018943832967532185144575013861095803585016684455578898851188211266454002848969613433630191436991829472890673525323555291955179144899517940914452620109010375887618858555589434880846549246535960410311808457129911896144491966551400702532894197457645446384525758019377632888845500990723071655934059996208043738243881140687304092852886583199760505703101041853714320074890923162232413066694727805515789161259234326063364358434097509936000499012707360996453332075458493884853449166575937443512726232317635976205758168420578046002211168293318562360584817024894445515318305323063288997369310334577420589066555937006140258272262556521242780525441634961031295134109677289682747954599302214349505058416867932209570059913264639668789793329195318996178559240014208279934729502249862006805063648047986916582880507362551481963065493406192164184342659530280027511409007304550087680768800644944976238013110472156514595803931443163596877478518808063194093532568889787084101114611756681709985401468677901524614559104679359522362473563329027098629666727668366021043275665919705107551144688363338941621981658284228043849193606348544501812264743784084291337424558454230840123702896036498444150995316847815850058897995391753038854288390349952065060934987235477015530961286253748400620475504565363577728426930592628484616117166770967278879140265073736972769011695790304351180868164299549710476057774311369091141017153061873245135213463146760315659374408409015490945015877430880057948341125634128738543749243507578724299185518741838354975458823722496551066863674727880334353185749892629416395867413949825174398706586622027896641023293784218797352814580837869021077303128181972723247740186994044060131922218078374773938699186182096613795415107919827671262691761576816778530511061243806904109359182101253660905486599465554110009135335313323677614469826161320989607321026694941388038568710635251618435346427444186394720252910207555309456010459773429899710058109797803026332404109347081603064302463486775873148669018918602794597912625907848323260425711693835141929019509741883685488579526380993169003205574149646643169614666909640930947043380088254263738708217342954434897797214055158870903830792234657248828214032244891340323742904732137003331309911462997980259266108808926625921243899589557951032407253808205286152521320263469643514998421211324945296559022382612012405657914749212434928723410334761669348809673116521383416632003354459833628556971578562749599109993115210468635706923576750134804669300115859216118446337617806816451714453754138780643977338160912587551774515834611389746147167338900584893811771240714603149815982987330665205548670467423175233967085746369535933442768329733504913944075932851917496293181451027095866714283119609457899348682470588613199919124694102869815372156043562634725063953405039952559321630725407108877422884309724207996867810584682970312801839559198987299274552169189631701636060782811981516634313394959385952123378349680843805672062153952755828747352519589610119164837893281057035761842854746541449630074332627514752204955175076275869663182780358150038246063943243216645532934717131800884569309155788197750440495783651818719547461498362839597286297094834877697544143300448852159329064487376235131016497966385202981324325347532931662757201447100976491608964879772182884292423939901346135898705456311589390873775162353702609084095071818208743301007230128762271133546736450635213463638698287748700678219132200712787191335883200556789115670310333890572312629621824126655517379692127062997373128794295660752130923451272476142157553562586664412096745094849429755862764712271292902741468891346101157485700228739558330487130609765516998174701244021775993754881753608238087449503429347557091756439285289069779266704698682509650333906813909983217985318760370896258097835016404134982926981737599988472411667672367081129383360979281401047484824863504051932259074445836246255641033105403336687287101215516672685898139392992380880969056066805567390476355164318282384361471312199733353420746191578120719599529350186867678752530382505854202746932703946660897908379088937605939002588230346427876663418427320608175733625603331712724782712556496905469849992433048914449739705716492328279269620123900498289373167840264140472689066507967003219376761443842616205953847453882030340358610602732971432316242573352943496584842608547323483357414804631705481906609739462170895638215079719084947018563333765665091956088607247411968508976411382039628305202220657485640327120393127414181014113243397280304062594170352559334437983194128509377903845537401046258266353263965826076942840934067159380406875230444547914582795168314233469357737968548440819072662282858376978738137893502662359489011197704928986249772061771638880817504919796492312166578244378243840235856501766830610739805579539646288311469431838757602268916550670401631129566578664011785980464226412132885275449898507051366381180964362319898748476221922038823385640885473610725625433075007520511848977113232704751484870852240276946741642678584763286104384707790714700269598785873738268208519651327631311241990479068552365416347074650853946443811950311021277999144291471234122585236783743279513271877506816980724018489447687331802237533683017292943369066975690671562672346214133414205938150850872499891663604855836574562520238887373426693669412286092688379042054394574044186097063230685903348998514732638934872185165590562039854508266988964730623452240356623539962848614898761069139798560749917053164324853409404832358211050573525105703004558387849420084716711534388070125335291290868934635012288648117576162361232550784895733050947016862471944648366522235656134529463285138768797687072716931786578731047017226018434830527121918857139022279119726703459556412553033417964585488611269180104722171292321921263057737338016651934864217136422341931940843682972560706586893970880007178418968698588561690371850023084872632874531410831104502197979395054281544900017111489477848958735487997544521716340377228810131760482267035872224465847479913053737176225501406726243124456829774777581871518115678836678269325123845758642335843572572158575656711310000520404787660459112913689316294212959323165879632229472570792991967674683325842462169645877560145444802253024162965466226157696346376266598457587606709153567565240554059795564973168443494323643485312612806218002785723388549983687879749420358125168012441699127292610287590086672131380856046754142045387122977442052476878721792515287832310013588046194529954781956171736904462583923611129932389274650508237297735332539427563613063547682514807608046467789106060117404192940642345975160937787628690186068852601851877083373331231795833111911506443757482896131779388416651700845366408929079446406624214830604842919379080005893076742038388174468166089636216079658176916795423027604611833679189121318674677071777076469612652523645108649252736123747330600474867238530392995990538577923366700101092956114922142692997171114837209537495621176896173918693615211512984025088996148458532241855502169533613205068708633103608465844017071675685372313424157128460497141381971627483512458269533050981559694639147676911019848891411307657699860565233594730036140292492229362861818055283840319788481129848694803807088608974145541041299789354982444861338512204214676878713977361305081321117756311226166588430139607008381280250404049866982971161616814990506058477980219065213156784619836481082481273905304584298651177922066430935716605276996873644752807630597429376909973717388562957969277360606150716804363847138676816032375279287566277309400247654579380936678021520909599660153917718087649428035125330324743566496321873600061324499427934706875897672114816774268668516743714435859865985453942414415220647553885942165185922168493965709034359990565768823356189693681525333834556471545137087607956349600107861126646170882921533572729873897493155240678664573522635271352503706316022792726655916722587726494780897403279973855661455884044334898500415942625661075739979868386696971348062143384273385177828079776770684500868120089815205405180602914505488014998148592171256484729245075588521421502315303306609783381947135225329625941846966172632392921770198316566023702342662160893655487131781709321700194634706949550176879514285516770972737807427685514321236928609015175278958992299095455622977478562674245317874850650053739711424232216693961012936321058553069134205525761830305147342359698700702738314830286948158677318687524938786744917421963572832481445552619789250299646263136636548911815863193450834475858813558418277269107317549971949783297054616882041094700837639219805141555085013973885993359196246455662715568626390771738234538774751275877210541768735781301458708190386064968961021653320115545186982655305240858017834874058493943651500595551352102230358323334758961184926183114449858308597984834335322019535069192454444526902377480418269857383685127273595421870367495177582405441182391655554829194784234981100215797886312338412971358281767035341789246239159716894377518562408742639137829840594171700170202764310817231532741157876407271015095255066424811636003778147097924596634394900229178264673424913878903299150503043438342743859396499304211755121633874294535495070617268265572600368797063270751403661450961429260307322073869179919186727689640576141555217177810361135762631332711895956839027333749480748677402976752519947670989994528587697780271380183646574574071485514708289012933885740384736397670599652904631702872807884946839249700092690799435190826981418831521869277612302981583141152043377172010077848367510325612749075002969655442821397799583145085948945100166242639833927575858831077621424168726664091384213819495449267871104774809890522344789119381557149448063147808737250342132180552238014802083251294137225746720526923597659615012969413474216741494040865837907973515747922366663453832889598884006738388651278265172068810071605298236028879495034381948494670149489592983361917194183809134595443231361154057004372596517482852568760776372946387615933481237535244461228680986854970583435404716877574757465667436001871940743967138120870241683872077728700148034500304852680955233618083758999511828783030912973248777319554104928540469158683287837130238552709952937366932179189851784870992592035141634790321879153755516023686547446195494925377701218785476715746429917469127920849732760835304415531473533166101394271224748278609118408990689897121611195568435245860163060429746525535854279506439038909741716171952279584126188616637761019848623598225889885621289687089856392631730987422526594807517785001277047645378501191221500074152250794094512418383126809885749495846161529675516939531054052435328754667026997529965233509503644809161035789982225611672922576451746099429223321085245097583661293193573994246374029612318445337213609540544794074186235336334451566377482301997683283543526804566173766214545885971785517368921463602078286467346656088838741544314176532322979853107599052522388099124083688958530833482360505106957197177548477695732366583141761936291873580513667568996478016190385889113399748870607889236222217470882128263965395758463114435256422202476420512646930005601401462831675087211562084732365475767649185236906550635872537684315243250177121677323282454399426008017519056547268593479160334053848095319541967600457320886975775007887307533899070984249776037738988437603396120641609230580716118006071877439645953626288025653028794137798019723400779165543030674098804219350770459713213056738635525504504027906656163560694721860646396242692472592357181261460650125925142274478421778377819644455643794794800669415737606000727574970565494409765376133356525686406582959129716451593709754688101681965130294789542470637471589450041101729094864254475692090727948393497113759952028426574949308673909135831392145570189196513713518816636286071825872121927043616568286289347174238937382618347533481036883641713805722355761524055686258439031236427085349896089196294927366394080309718699352383617828522225775848578022895774649321052453618314626095325555007783010534778147168162559554354508107043481532486182487496473713581716949885949173780013669900643412288379945845281286108080743162308399097134572687810431202452761451085323464263643284262634766232165392780447181704777834680066969601593189476902651301325506771700845729533313990775621387392147654696297962956643939725136039087355680696702586948331599063699144289845111985438006619961049751372661824379209876269272740016879288395982049469550729145045446198907553704747047643060557142531785793854313784385013538138166932290381683125020648400019728482272327886054285217918580037747441921427960752584697685173462842938175680433911372923591794748560584842971087879438361420979135695887567213584523127276626634837347850631274263802208800740784554219928727441953162783608483892704837961859675088982405000014445771625377926837475869716221345628002966975938238094773845161305737739973613331132930618446209093359751455605478131651028382671815790536340952723639093231096877119663342945303983700952641164851279403992416019207662650438199139618614080694589383894637656345055084817334868426849853976238224754967468678139437895942260421065868874821105827210072513953166961759127276587352744405978273811124347532304953578783932127271568844981307143701304462837460522969172125451125777441152770675301231896566445419774438251695205283140652832917453633562987769697523783646718784689902022064739845280074777289139344382587138537246896073080123086426798477649557440149386326668917185767158521206461085563134388511544294520994185574474837281135325964944742848385873785194697732090327432014102780545018710256272438197836523833994625543383005500303767527976781535678938770781978408480676129796849930432595238448098612979669216667187697515845410986587596476985618856398901435128511692610209237987640405814343952604913422979705617600628544661089854454258836329530496802138411645132904263578434069597805334211726143635089166209621358218883259338379499675172256283259527660882188092094125237893237160253538203221246963182149923838057078246206135451599756058001462034023361636188646334013264381593171507438374091005558568503789134635284427453999661885630498195067809944332089485356596501052554260313940173694406565966507925618399128909505975974425183702006948033632032197232424946690510228283311337730380073270533739173499541939839824933124305843804284998574428392230095749985705642329678176925942591272920997397392014579704026953727732941708088277624597695454474646203276072392197894203352114484641018665819942923956983033676698239398188981795987807487570450312365076820628798051413442661163423830858137731308157220636902258188133049068283375703249391832609287158995563933099170179916328922860800460262691980144354935031603489756080779611557649487566301269075905140039696025132960366593134125553782608322866017882331524590865974666889781147389223218067528020650099543512225988843530951334102344085521890272465684895746760046650210050870530356088776516397420339375373977402111372474430147435215874642643103284000546471333538881353273265082190721077852034570109150467648650779188273724669315544372222582176522427106632770794686225614985747212462406407084066560385308555598428753001007998041147106370718931339692848043391470950589337774609554837533389832059394612648335491482972367124362604418237244056469259974020879899981756910254275576784722878008411679576067376388140925534458949575836998903723559332845411032884918046135923028739673643804178847698005053875737711377756343247945757093455026574265948036116079214094008510115574529291092471641071976753559271730632751543741826505823077222234686361207985635541507117510722616164652687633971541989044704943027373555709366633008359317512697286868717273108043790566886440778044774931098616352431498884141909854059894656501961419430998126964257933876026087727521882918333313472656250510908760848620453828548057306885886533747479199991369428702858109586100289934664107564319228812268045866416971670881143536525473038699795821655931433729827090255129490418920857252985384464786849851399814133893774637656168541772812091386213164877017709977642579529649050997836732548052645414599482035117877125733109410297717878224178582202088175510765117771270839324033686333610617155437703513762169617849961086293458189357235371441345789706765233826793431662086366034202056850295310155980400895604533778025075162782825423668899261800417360059440105293040302089434760407912322705313358487412381207765711384626049632054075207395036921650188692431539250485104400090578810673246839657828978431686370773910309533864383254287240639426430058914507445617034976459984518319058247435350468021880228581841491504496938001993880904292474622877978554651337569294883986046629176934161483931462943261465363160696931767555833812539429215395495085705168978355686266476372337653586892686936691718886650926570966205247810356130867703337315389002304687346270357706807013281547103739316209705478743059957619617522126169237453337325656451071460506455212282175776937596168570632563086310833329156135278116496691745067386762348729177720973810888084289099275779033250349935276200452062766292605764069580781863224482596273422771215235400712760431996112079654870292753237396525986650444873233248188168166898698735544221122688890380906661387874195915661749341786984865940279474473719543590700568258626113951211331256928175109001792585205121383741723598962311470743528013012367606936826741292808861573480966337423197582531888847760710312728559440321660310500984090937600140613903805444972100357983471977746814243933169897437874669724562442963074858696272204072553339954972202441315695837087602391447779373712208370727941424020743098925073102754624518922576489879372815834828331496988220984001969444858488371614639077886296831956069011967541859838309425386862124609605651783017198956345910604515012232293279539613448424120178604052521162074221350580282160325723024443423241395682633324322273293254842856071462621471715185934829214505442769069395730550455509356789448167260881141140981601308993160210366496082406667766056180921445107024425382752616501761108703390845345641809166362327533564781322853704696264185016628725209377356381714952071907439215537688972530351980697002115624582748396478903609035116078193035060348839883500623935974226207454409748310801366624462723477908953987783830298855843163334085223958657779057236710973522023290072690593652595476088825549619922600514333623214205063221113071089944848458897022913903514151809226220150048116450935424064473565916942978486096383716879523902513818185054075681672766504602494464659426113056265583926998500551069192606593650877214085570997022810241904823082688558099795931580779269330786330930294696094484059179206748488111540580975940880327115215824851063047913624552623384899801457615241808078059745705559360522579875505117029945232076280412370463101604325186829311011669015551164498755007066951248487143028248395962871329878091389564460039308052885588288162319458756339634987773958891927523042401597545498227693394130922314820376641919575875353645803395888448768342592261777820746459758641392200876706236680641697199894099346645949995903089851845660915772385211123153281646686910409625861518377439691716776088605262972279500311980280158602955787443264081354763290112789425358378543619237243219604885764542852650252509545846273259331482311794694755548005559650036537985001351628770346946844567057509015079633746046697918369063559498708785522462517943772911611542342287934352920292248978227926708336756075256430001274722325071711875601273123225912364228986507086522894542072915398697264311608587483540133347394601413776008887606675530882105754362500840992334489810972449631263950029426574589850271829665644148184833200764588891337790806185025160575481889241010355351708786618055618344225601307086847074160335656552905916818293359147395245000016241235264942669289709881903519173965046615118598550687793523187933158269037813770638973592844433897287155828639535022182614091291865772506012078321644049102466608621404423290278232652658321838994623597776891389693585494286276907143989289490761023777686756581116507585835848421700750479419841891725436486773262438373989663118294987330699361175739870293886827979109741812508258087149805536373439017594469881761756146945348960717464287314836890943602398782414768556324812586920835598146699694740102779874836316365433540886670742193088763650205449748654612556053077407791339390409117123349244447194244717548046745939232597093886691993843009432386385012479043263939754609809914872419714638712130288612348646004275229160201428284720101934802561455644919442033092432743317830433604148439134948626068513611564110638587923745847613039062929403984339831911308626587586581207444472977955201552638123464935595849042177617996334100918327119926790897982576518767560485816880142587543124754352681734217212525461994422880643066657701325981810066066646408628556890773057889009193343107765394694509645298319190237778213841284935524769160559051128734199204635375252572834408481580845766954714945861215356313309220549165795913693809145744539884374833409373074568649603029931588861320702608609927655519468063884060877757500574598956515797615558641944582437259842191942335644196164841599866999949021606999235103554985321036213666792553085916299048757779992206624696246621018188909234502353808482422475155198724798866433212582116906644512903547477592248347057942979597833361331706232124288505880145810504261917326934463608693492629049666526921861365599610006366721307613671170610548778222051688703619129313838384369892394728298429354599850501492241275116401077165068945942802940726633847899265379047383101858245914861223171405741500591530627963653682170674573649610983539447926901456914259638680725137104371064902689074018416532070873989729925649253207644974651207883832226352490691860004899608618524079610037542902595133277152953039571438009670374394207754940454274434371272769569159085837749602978552829442880227288285101196443463521827902455397909445017424465325922278310155400995211226565993116849943740934516604827855927019865433535527310947815150193985111908789135684450768116787863794582876538557468232266846042497088322399248641954072625882634973191418406059465629118898343256310385378543913026390168251934975290289211152227774003048808651280596928585374069130831558065054363849642522566766655360637587430189755708727291059523963006086027619705605804826033110475642274013367718620858002707599095619938161567605708764574004233878201495941299187051782253410238087458804300745337967384579990665636538008831544286912817633812965796147558063358343286472626118754733595106925852862008107231837721223246351567066165928026884282362546186587690985541139218661104069392388514221720149565406732252533829033807676084175297562482048283572494864517566860468130078646563816479695063605442018650275625327902583700037036867793254290667249504319768767981819840763639826682755160064515769519334935753129872608829358358910527678398994360672488604688000156105317920314246776317149339034427414100184829910655129044343440955708470410302170694358359603006200798120441582150946169734361380086387921140609579898393190180301133757117023810954828699206846161212526529885934831604358484291924284210359159152547948419167851801504252037188194446679393895150001116510824161750099840515724171636551452088278782752011422191007151619088709659343790513676778810382733754556240933206693862865877014634415286198220978672897763400915529045696155910507315786403310343966092279512612347472013779319976864572978081335484059528639736091885603049313391657813070308228557634079739684035835187284282143673249544483150049001374053096311130042229163423354533776601868963556882694485742530712590085392950257147745162413579733209420401257603536231601452063456631564267321103402891946382122437865116098175073773419858255128433871512047905127152104313075807774311214097358627482403133683509755664361789261114355562164807320488229748805773902897641340655611724549679870085492761893096748690136813991474926226054992899108660534728614619768486421814749945227402593518335768084502651013399597126684952356174519934342943474707666036708861313904777624149557772669626241597686156014970283106040955788586699883935458184118981579339375912239298406732958178195372809205588331208014450843068745213007923889038333884669027642676834438050763626791921633597002087740384660882089675088648192388383817606402656946024435258862464556869227817519774595748480162759615304516236446740441963724230995864249134023351853819039030675524385836302838652445860566018312937096083772433620293756840654358264794798310431455675431576123623505683762170683932013322642756027037518319569041319645288254969953058824621445037924100647470991213455068884187861205999127031322048143002350226856525325628547868999737301442060505950123369349363135169925707550256927603653376534156647093504186099139614680738391988339659546104568016054580138461859254070431859884393388429447939821861191523573417257278469367944599150583951731107483244878746781580100476007109598440938387384554394466294415103375564357538597371596518978176425768810813888287436410573048702424282205536973164347207055591374021548110504915711013148324920853212747160577297376504735451668480582041852856195977441466495807707477731788477324095612700601216970607232201914475086984164125439498433785608729291452055457291949144916309816272054374077554336514215929284772388032727274072170926587212509638501602456674296716834207158434425753266394073349483103448339240237002270339975814743324320401086079395594496435689552632107847779059881488069127558924541798430368444512428315356860747743061565749353939955347371517916061879487652774545347459577109780530076495281633817159243905975277716347435982332288694983269231834518078217479295265339172407498281066675904103555436800819431513055761025195411184321696444484437567744359515207360480682543049758913948305639709607619761463178154791342832046161114980573664005979717558980898733226003408609061920722458873617142007554818641926912025058490447575725679693672658412763346367588502884261478148151440278246686761700921064322233503228001834204405677450413433666763191658448916565870324943498757644198177937420661220831050118909171868452981278818106534987002868383938493602423258245220902204040905770317455728666734442181838614985437231785939433218143329046748073236058295638767406389212293657835840402853808638413907910978222011652321978109646714744962119488546808167992518011030068956143705892094539576824689312765566000208366652071871961358632280851580728059331708286694264748588982879235381947694725088822271997280617191193216233740704246410721011808450300342372400360377650802181975383986322150553170850942919567707701612401331048831734527691131107562501462158794915260371035793547418307096265341880279253820517460348485335920702138247638573803286775051219063826896450710841410503769504662698698862265345540181038563021746939492573198720806060788337263082579859017002410939964346096426434001200742200332024823047412880096448811392557596242207977049068560570085141342805924192214337067266376194281372001153155836490008125020190801337479040832749982192070383629832941792649862617324888121363338119072060739391112206808261928017062426487776933843356672474642636395131590579659789360460250699308793385880710685003039381665855049873266255583542859282372401608190771900159028470249852748556003291687974765360963955200916281854811708957374253263081964007442662563222758018492615329584291142934296261893209261083822205698960605306688215306919321618815330466030982244481034223415081951184616101527896403296347097094005621401396158249099844494081218116693075937165775129158559836136455667674868549636822539613128071564236400678813370867071803616703080878140222427370691726086185271400371290560010323492579849532151867298493530158206189736205219881490722555318500871520768472432553633253002113866139488743605835871274057432725337551694901680961807792092497749878191255298818936469905645612362788306423447574448847618977669736546471678372007706372585667086276786111262945594387274758431736371591281018077451327633462939316000422559936497865505719332568776536969484329946308651271469124841053516262509909018105461115909097456654012814823109146830103826375573523031598395699235770818023115850992139916829857097860199428349592000759225625992945759332552675716170120613348071441694906889274575984893918756708909405709339296199898630418794893678766086583998675728149234892535282913898369716475869459970801726412856147033891154960647268983470201424427734282118103936363522275158536601266425098465563218792894376660760448118829427579623558404060190816478955228771525349348439251077323669798173899553749735331438832589919289899661141936621558730865411596883771125853050633019890289998595480705020199266085527949232453744718038258358901715072777591960928220603447721895050196026789712688914114436374381024723093366327351091239338055046016117761342616948831597341284402083850064675899757809433721738678738479115829782826862974087091332327475113564278020658653855530455513793824345069803093502340286633716360836573285453314954200132424920112130343621026781791246069442638614837745204365981790557718450903613546256796473820947680744495689279946666246964197352314740248713826369164565235401102721250393296017857000008110719955740367335303280812421764614317456932806904982422057587715098989360294302290992235112465668275469268374132438754495737096208152790681400258939677948960734051004592318566795911463746188713125632253000397638859190971803831298942723356272962404364910662127785827858565053301034354408076662671960220528190153575709844254618630360673756782840117709442085686920653534170008783165583665392593789414308026858406937712172031517034689215417300638952469478770427496085156038289266483574669269002768398875405260390041433752991337069708822475791777220920833835447645676485268951613426066157572231382262713271345067882930693574628018848985019448678991782480060561314398282287604541106309250853363806910746232437110730111987030693018574290152189046284220052201011037237316850500010462407515983744172578584270555928906969924989395506632051591465886959983731947944343286529404552622796583442420844290270347973928127966489357481190680463088279503921605892499362274568562281317547429073039279178896617883865605620306160593228599329468030116178445774048322055739149352396902403326737869262725295988991775283389460079822992259551965487602116076612446222640071488917492660340487927373460674692796092972279257514463585942200369352475449515421294868895742856577482677226371435492006272728645192566798679282962870459259489604228055200746352728672384708428358814949241245202615761041518547654642244015353159740229474620657909227841536958623067317662922637738801339610188480218550281868074604154088399483134248933179245282637709422236933122262363043566923371977416031596050361770753433467355501954404782354264326595214783657130387907640516709336577422469510889472871164012002550686425361030440148956026936915081833597569063601621135313131094020018394375647292579315094027575068224968612020773740893790415784232226374635932492026036420783662563725242409954569637394431504658443280751432018355034452958462504844543839941176743432121453492641400997251271892268194122957769159250316440813694272658776327365554093873222265569935984176564001685453394609525692589925739724109321719044428518577648699984254254154297812803921177887976456680582206072374040044163112318052856276082903747694159684952803181943969982919345222571063581846610727227453772430046143320975211791147992342308927500908970899624968355322966853557645420634521124748153132164147711596187802561425910980572107899904577748512259673084205623334846361102890661608737201973376486700286982345851577256528171346595704988815590449759427965700229381909312733357763225856175148014536891189814645735030752335697938396456248052863237818637442475488972362589475873561820467634675915482836546869379586965911005301512386616753603520686396127009986352820079109582025750254037700903671634522624257427090209423560388811994677707146542668841117996265128349043383867686001938405297552852652587635152258228488031040132900536590978847701788510281642911768575193061036884526011472269762538048586280201031177599558034066244088481187290767186740381251392290689053023312001112735548889905935994803808472715911293279992334498505544887703849780664410750792995454339022301496843739361975834405050464506573652906056216640686514663833081734682854596212323691938479255311534642335161072133329305671367360384168123260266301204699566596605044058910197127659587321953298580290469574164748610010505981294498839560398381725615478128290318661217339901188933031572953863448879130900095444142341209688398258070019384643003435001888805859297309109478831388352570954511757817496063294586236202295385852261010593505810458503844478993861821269591299302278867645964820892198301169397722596955069577092144086084086792106727303226806460422225163058185657594485935992323703225517233384536244440735055817229635370471576678839692308970489721515350872983201572232508344369739220435306766701002453040818598663055289945026547661399553139789345536418984998788562878160739718913715807846836259580741086886130024437246348764045978861117425704142145969152196231066092950727486317237296771591369539737174400650012732573742913190402504765399979262767013357243867314315194541990876451703928388694520202693249987141799551116952163946356831055361188845429480392737208271111875384846700354863702770696497460647406233169990023544070159037747918483810313197737947700093873464523810703356274653327798773317430775306966683675256904784356594538315394788904006515329843612701743651749775237594630661086973421767308439989282030040345594239875687541043860191960903582357596340386999055385438387207795708893781251369576401629375983722641688832975250179817856714819542633850581762247420170481035068963057676198274182414168698117042469113887372452202764749806402720806349002381787692488149188250124858379399183357341838202376757225277853579526440552983988107722828002236041277976837501831929002071693587018099245528681691546185990776254181687451857880627620871597080102167618176447178956187463534606138570864990563337913774010120429183688087946927228515045135095958055610515873092592218757431742964493270197574724689268989595312048268747905484755775247710781509786364506393719541043252756922049776930676439075753388298634613172538397510859401318824273080613152806936849067502441473208623925038097320314729327841056580142480622048705327884708254837222276638033911143785952527398915888121460846342688027087132472499077567886311848059772826889219996847648912442374754235430649274014523541904079609474429760222955171589703994712391801579617438810343878136693419279693454562472675422029132846992881210330565728030158898381210568443633303664449347402746410423383297926061915327687328180539049410540873858684855348981370112193918871612646071051279302599567925538136889107405349109124790921750708369015225328535761716611356146864145903633036031379024756104136747953270292851757918116508736145020395033029295670582682761609237584947059294479650798956677929124930086585465769306373058207148903478169646076933593317807987663303943088606508121358759879895516028198956234012239043472877061416654762338867325435974393433643401166811532701024108789330940464189818471222277693897877896561608388736589790645492446076282675608335901238150751486521654507016122261207164673579092971322368011093153857127495977271645609167708920827948633494886312519291543492638660289221790105195631271011547475542932867281063488809591819199180760677292184898168334841429530066347452466450330346199543980602067981271792833511797525162191978065132575049373079171231757534073776961504432966206317298363756717509308025663413554920301258309446353546957466840855181015091792243087776562549009937624832865095177548644277029760350620663843437540070950291587621088643251153664903598977517202204181806403657194231626736499911255490711304093638515085564807066850246577239452301604434589417002652159995309908446040916292524739756917927989867359765761957100869776408000777240943497108559524846740708722627176265589216093473411539178687854022689306239307558410928566153755900032556330511994911493733164614035207028389965234634554720121259680674308097653559748755930431125565253247128850327976403712245676909173517329565822037343683024190768114617915577646270264564060649212334665995927214668353696441071217414231676792534403666613268737654541734225958565940165385560357324779250315011635277875392815755905644293898114151052692436247425516130830769630559466529800624636351757896487189199615495958366089348881677216234712147351463089192664010718485109071656265975272556523176510493347074499183937832385118155890944047215187192354608466194623632533951799305479369347632925185905598687767918991951883343506253361598750907130641963223477499545224060349673886646994125919774044962511229957587953037812219751291262261230448870879806126823319675098641286372840522557461344007247019786081571028167196437119838320786871135130341176761670877523486788222299739869082830952609288962383314712245195001337448673136308365284825106284012514624238915298989706996566282060780770732609375647546929088220418292137824110816187682250276956863949845123670466771494590414893704196614835117458793904578452296828317410785116896207865561437645354566777614312081659729798273690963826784605503785264670727240762190692059348364012078867137683812567143413617966563653833495533881949898483106951265975652706406047368881177852959822251500068081966199560205069410247273966114427179109256837831760979121815729346438139265094448807767198272730259856985926817776524964371387706265073481355766401598655470241191375374228492796697094221755351378571852961433324110357761772084570336032559203548856370659628062236588756529254292498049042611321611390387932274254708968911499316329421021318599218826952018505734856294795408149460651218152551421668195723910354323114499959646967785975964729190405416332845642368838313303676136504566572966975112879495508689882426732497580464772767354713984732405491623602454384341715838236104269630382036392828112705327530529843646146996478596960326622069653270682564833637636131733853016903792654020518581118347617919601440579268303672677002476568643469292143901370396966889427627772947836459556593472076913287832412296362753394316682246232118355145182642511790617490959240812279763833547167410147129367770955715365531358979168444588988005102192299962735000966077844291167948996573948280572101467309915124752785862083886393826389234793151725937357623627351355220263396273760154647941314431181777906985390509238514555830406523410608201494011197450980338821539236287158622579212551973604154123233166671558997331288600531845599481130732128585735962727844195725338346198498356750515791629254265468777698501052294730361877371315062861270998940802748865225026646170198270283617950905582154609376288468221069945674482728500050649661319776056559131739420005383879163694470789210429855171173135692929415223584009033363664061330874423700109214452475456669144175142830522747827972258530956319348395550494539549240735404170946907040979911434972448682692786252582429653887037794370533278898232047747321845225058323391318622333017463136816799153163932768176830082031981986272601975457524741190201829297949462308292091157220093111553287927617564031773627841173164886935192542866127072504350403745854450197241518749498086253374933776441541150968848026982160465471787900119845213928721458416133590326693175277262425360593029234540931945978806093105075666584690724428126836518851272221794158144772631134872697151473081596180575287191359893237269175425682592714154071936378640250803137717948959674756052816476457893912355348298459476371704656969715680804479653248091095546316748056577341950154113376826435202614029679383197274954688117749812520127766174713841579108066628754338407933648287937025169912258667828182158967971782157905502358746021229042167584074465878805784803373075128899078252745319459454563824188991363074602317886130173207432342495341886856658727501278642855001641406434892170939468036564422934642785154538388493659997771773881966978840518872226693133589946151131962517303199768870538257467137579527079441409368941006511356710418178383845681257633651716635817722614877101500789109603559678763544175125979161970500825541978560500464230877559841125069691229866936755434093187699105402048192536183031504440935333989040679283588479733234506479894157296109059985049614791324263720807765413621013120849446983727800465443478205210967167861042043623710869835258350554810588806640420202441239024058440096975882807838639453112955242988996246026479051272154078436418015029712878501676454778446618971469025092769939146593922320333362424015458774302997820023649244723402805685430252859543471339605665548561281976786483106962881988505062388676042744818934667669139987688248168813264791060758248252016053916330047955039260189483428742975981225691193536086917528915003683423856811336585797917301849965893171773582907151722734537756690171845989980252736568422726637141794610911832208111423539960242159788123074726684367834097099017278444209388891846644437017368396518089326111523169210673211089399372937885691643542889799642898643761966435113146108783751000984853267492322374084130869247354232369868055202684862978364757308622117969598241485133081789823607417886440242737177523566901927406838837375408526999165474072338610232128471672068750265561154458147526879884004606171675877706675336328364048806208165927944445817885944722646846748724764834768113578182441498054087127683584508652646893318315451626786557110459640177013162209619447121875221582270040723132201499510775182602137831996523675640243714420276651064167676436620454911428876962265383691770747789696565286752950163773319402168983283461435512405134714412124904529623045637378792030090394976310482694871348129082698395126028415763954998979077875730642604989038958738149332882482751889822454357157011476498495773085999819524958926679837117408051730201649287319044977963713946877335805276696637744851984177200441250075938034959568584744630061115080972065783655872773162272262708728405184493829798941523215051789050047941290069272701444995511334560648411387574858940264285035001192433563815365056527488603930909230702414190064601360907123617902415942461560959752762166883144016749005749096882799039648249986633661257948447860099065000508560424846333929417029375133968743080740545050140083728078787401038162211513241104219051240593331467272577915147089342609502158474298992683949460395441785485518031190677655110370364367290327098309149119437699273393320632683526296072669794553409446395544225169825443393348948432807546110223097519369414216174554430847262487236227299213343357826624973883431540394811721309305179782655990703501316228065524397427826744428932340169411430224137899287430668687299593231149049388598882902748695256380783193715504245040229556352329194944722700436400189002813674779079601606230857385687285142218973362903159868039139350168516224417974673619758723397435779284935989312670962623909436105705015536252213666212749705069807321951395716056750058547602878358227786775304635373462647088526481623564394349826696898190147837046156108914827094048605819570086749644880011190687875591472520325418670333747816058900139246659454852284412517765363502530738318896096602936002600789043009766098785867926845962764165256726107009660048511785268103032375647540491188659394159664764537723529786697614900195151948654545536783134115727326652992585383940130891083866007386059489760832160857897429832247004411650415251328348678431432727311789565012956943296919103333632878697670331220852028836110239314308540072848515415335065355233975316759519896933716756223274962764767689723121676574622501507296016369637005827404529274477840378926599684881606970614577660636388398950874009461356271548638223472324741422685503764791298789010544359016789261431884409840254069977088054753472717441842504247894017822762546723555956593688162514526247283405945653574925600656536841489169618094927514192280758687377878857637721484168046409742413744635848091269575424109225893293407384752713552450900396393744003449140251724030103037045612514586634499622632784870362696832074707003391118986577386678283413080767343933989334289501062068633697686814749612521211718538015954641406499907859191998566095353640596344097312343166276640529197295560523562894313394856230241660924585227860006538107928975418602607633146153787900191471602427851306089272082537300015141167008562685463637529302156067059854242623810899297454214228733604266365212422162450863123210716607691661487823212428191708411054296844007571790297051849973296321484248358408564801730109170855379389867701932429297605727571585547109028698348199852982330221978761483126670720389590523821865281748959761691033572316862687592867455981554538264150556216302113224919977810981320691597084309410491690984411048964204761785315135377215178005877787469387373973666178792811196125648338897952534393425335496293044406262378772121139331959958582401717098780643201789667009001787169547596767456894984618180382223382009791856833800069989277154678053263707224860261174514645352688886309622181279370839928272392220252931545009431326890258692213569673561245107586909984403333663294803195620000741721195962113640837397501484653849754316666805085213579674002545690488750918681561244267459538427153832689983273003654045619073354589593344314355982299981286609605206793789753701003284237996667729330489960125531457761449019360244506621788696723431988769035092199166390329951798570349274955652766384218356122350061131269799482345937374469357158681889036981145640383346804431795023145250409794364298725918158839855324655273835234459251427493710874882669776783390961837918141894197936043998950571910067401823432522337977409011838380870719738911772227734310022034922383634048823153756719875019449452401540718266937492029394664354794908518882175235105759153996182919684194048001835043494278496495410252573923840786520692149287430129420504560793557015224463479247507227160457778475776198939448966484398556415956308133861598425795138559981668548791594262167932378436260174767969044680575503543117925083192597999432978870627870423520540613713859299116150806947303614886885255812550695933690012442050230611029452902661963811535231879579320559871460803249597520316805679830775083554506127300002221867730711360565254897618111177933955400875323428334875571536607971072950864435118341210493143355710271071117185958294931532776829195793359829739790389567100167065148157739549443236879586738173430355363406802651988897954126278612883380912786854141031903899505828840216515871591235647031086003105563999336725011058697892891314917028832196877528737362655799458320794048931962795853066052717013667924939337786956102267384033495468082903569339245515554776714999070355761795357210930828401195076230481886480947551271115085113099426349114499324361969224974249501111247330245642037214616840658676385097807010658876775356462039232755311260032833253739518984775663175321820134253316295613766158501571040166106096456655992499143441706088091932033917128768018295165016726970839992865719575708924089559814573252781437582155242088167926604991520642285928066571947632755406413357973687864826458213547796801965825697588394576802604907337402251588032221138614108658855270865612213683343902995427859066628764200049157329847603082206403411696838764264678794716483043864947140942192239682498714668080969132914050505025103922441555372384123982835240944066615081436077276654852142831109511400313120673847289718654727547378409618559794916720092776669421273419253343315635849524332359196988115423276818794823172360317841141354172748840525868981217750756085440615381315880968169832925916524197891467126690373431272269633672664969144743500672618824339627856704843140768360056707852848422288801729773473678945324687828922229056841629850507996238598670026480051196309509527035692299836584875951031174822738195601946076391847506343195449731208149387807163308313799842005124512710060042485076411517577065461344384154005149348613790247149465034752672462419635018865551764319703961634036505108618530728141238961429896946344440463882769977813237092453856333168030006988597113817392370986075950216693637607766536919883886906526186882780669740736584515908739421714429022101295665844924927297065975097914002058660314652689493127357007620570071586549226788366001349550856926086800212234040029703597341822902579766073710487191791923829058481386722383229367034516720407265702221836050413493695362922706791831108053134078517853801216424253857805855636406345965435798131516358758976061825573992031700613843179851315849616024929838364024067529103350158700416233934373857595552379381253853605883761422127571984569402332787810378370265345685283457141495339406980262123253678157285338156512287791631360428373165799321429532904277799398440942762091543532853528329922495089510376973017112575984320366144762859211273907805890620495415746820944692728631723720701714100053580919176682994541966553340164260832377326704439897146135883149000827148523313944906769421463010868344873391306487809133944841903245015629061835851724602995826312141932818091347943184366621581517777890983253422186298600441494247761315531999166877104991514669768311391157631248663020426830971315298747920485531001642662952106898721371572014496658775794583435312121601641241312775106394979540078079533227647417759621356733405502520416880799447126082265697904945720532216652927168655915709988740373759516319757794548760753354153643482143042921037410104050680981327385399904951915128021405476434577317184088651354066290194142509290868198942874978784472156204032075948240193603067831937974618917309566528860330234093326334042807270521414589140895627025081715989654383944535620235526053707942091910097694848142069832113526444393438460261007848517589075322266765435220902269905322096822425244844451011319064071738107424649696510348552590581576042542444759332057221593685838470174462071598012661502451817328882845260153571362576749582411375416294655823259095891995123475481623749583854260138032719343251722026302808892057042544788457310728370158281327951286251132052791607204054561473339404238838314987993768163234925392288608974155017657050362092920848293390784025587178922358435280240608696332494160154276988530109631950151876752590689773123724226949066079494967284936623025395361375273692826092146653202820053631012941251500688042035345529766912308309927493429208572574133978642512392890489197308141186295423596782819504874862260287848615512309314699565410505083010566085085938675633636371659872939990125168203828567511393954268674303341553156506164723615014658203339812182151374659707090562930379249609997101842061827956317752034606850622009869401108660866981405006517527462380989653724547826408786953344547337996884602008574839158048615909683619529350980123172567215337413161710167209191992936588554442930723901924705840115387685987474848266041298845441711277309239609625785483293273637126345807962736579511376814823360790934874361393036631634543992337094863463660009081166041876270349280653026070777804357921954427378476227828816797572905836521921576576512161349171465250450902684942232078466270136117204442617820110581858692820765751516918509634420172613803723020433587316176276611463193497535058707322362327974796593639562581301373990903583052210723333728360657307107626263487141801356317785025052647061834868069424976926861911345955289586190078760092244096047951136455843007511980088706817745075632070611699447947331849995793131936053042145316955055112963936813484260391471916903746638275737980887197622648472717623015681738914075999438963569762660339163209045745836830690197076828786328593225522723605021956839424157850891882280167520426539757763566895106389761496763901094880932961098876641862612526117279724056242067742681980292891514199108847977386355060684666369207292015996197809230604726819657570123579398788050528249562264477614995972590905209880199486636636519332217641626967928117795117780892278699368648689685491054090274614345688443804033161985617230062604232540752952831652743275317295504118363436123642696592136108387549205448750212496924490425191732926347064452175965505597099355006601987275017433005220828258274656399286451345868936368726760294989077790900650064450481912910539083455380365290934276404595155507493713180065131648722126455122864771788747214636792093088297460380223287918829882866797091147663945105367987320543632562653777245992402924835904469502132882308236374110284914890046127320343559073717615249696280784892123907100769094020183913113817737217618543899469867056623707216091534665888771485774922611075393126091043379657883610062289448445822981071673210717338913194151351338886600021871801005472389964553745580382733221240397347650247968056151625809982604111774648649439211460697262571880891682194443519035065872764591669737029036604418049280457361818902165908971846508362818559289843522493985029635734213160770510323957168919450048478821863161984257252697079715144813831560510885528734946046189708882275202502449100112943702220078937271995629472144185149373033185429755224232234349420876393737266473554095673019200404155372533041756417712716597425602864860766645799309378378668623897901493351948680404548702516183365079620692366718790343152980636565640093682843598093411637675673830117320556097453571042075341263762349158828559318443641468011400138474303174427187676733655524441438985185762659595820583693751433198015159278094583834765588546568036441903069880128138356836753392508019347917673863106557981095439858124676225049285141502811261349605914960118211426301450095418878334884799605983369881976140762903499465577071515608864655717241451547732725321882703182013827600474593889699816785041941005186807723833636018421741301524686014982997018604414236662923644012595337039352730991597691099810075368019826115448825492856279087125938228542935218538947866439944381787035431061389254830717635453696115937263756940094461900361114285744992550741371261745956422302047380390380909163425756877054455543721985192240768388177017303522225850511938976208899226092145164190567158570222224241982910742050928003026652527088460913284908646295960107268362553280818262989618635336360017625001914969352353163746924282614010542740082781680903159164380291173282651369440382105133195364093183518929666602223603184264677593460695494091372326604097901709108686733989881535643784034490581912011819648237197182213585194536779590011131961189315252351373431101892428169433503425184873340502321735242273334938875403651076686520488973826485414663898078241152824183640478730607793851232918544384461743237181284746659252597486822314801738945221468183802086208557117296398869522574376040840969364957519495622745751158976049805168901410048468494164701093134105135626663641761113054168296013143939382397518250456550958758677364989226467687884990871248673847596342595610967699261735304696259361545367540504172659866250919012333179233008567035184982100573445051527433954778075039905566268475945273637481514580202600816660895341629575073521958726412549470826968057286280101024644098454114713227310733515366570069077194672650295226441074082434453506987876254597811251470202344852318848175489038468436000074460497742749537203500954703872801739600306486705854898674503002372657132958840175258412805046789273009999044599027098277535258696001310645384091301018682982703202414959154398943591521018591638581618109985102811778358056702248847813310850272805630280775807919994679098294168009006036138823345143681121578127788147479939202582801833989242022980855301028425145089605707349808916690190442841316554612644116981517380067477463758926717908324647199514687340453821273487147798496402333806209645447503916138872126968579775915069530493239573861535947643059681109277329083759114852760782791059380130524877896054864521138171769585304072180711660456187386837008455627403597944048818031246912321639117601217853793676407313529073773181409622547322342472534759303289241630936212924425535803596423911516283785589891227738528538566728733905987083515084936257211448112618944473881248768513645413183001909767080103406666712666276979073762772666997856463443612291769769735768007162658513233592826760530611056218783961849546395575454663736229340216412884569945786136697569712620894526551236811702061826987983752682934903328530733562436784107875191562364011631015154975274864850844115935612050163943695894666363185055536126670101825095719057088353526631940510819387205980506411503833009506221822827621721639329303378281818561046968927194425756502761892660818220161191805070981105053792076161993695595027879651320583560224267034931740419969143973106823697330263477657445788010494305569212615845571728761485657989422464792002794055538397286521918600520154587996405938303008814355442573197704931783510700476683666030078260470711901055475029715948565415583244276844844561571142039634496381360835278823932224643014030303661464137830296216391297425970548142080669820087310339367679060327405031329889928161863774607827331693223360765498313202647914534518589715848219437191294662359380764472919808394880698060013081691719502911679515134571449887836852012653599195969346232483213130576090631765510635077219472540909352162991616326802369142168013484669091155802072763618278599377190039024475983689647919776344001523338514852266868060505200276004048382307529206340154163469663672073982091933677045883681495133743507306222858476567879580807197587266778989453796509606819210844095393855470193313585541007062043909576915547029673091848756975394699499784230563486086402443919055945478833781520006534935260504369154331663211287946873688904247234600733259214428538772634032804472963378055211362083711279768558717466444532172760595490727797744796471207308628914948847694828336263885680732224028905934938960436061113442199837669033838913275511745870811621065903093751991095243205992068289176212804971463387580044517750858398903585905714177460109172526456262998986434383622302165234376773416430942252536832014131873011752574997709582761531464741663889651674956672989814885304100956289319541149541168469072946622414140363999463226235771052966706461726833634404007410239733421954418546233857276833876663496337488101427144129112839458145504309389033978264585937080161245853792810561035901714678914298855191607972995991489215213255617022106573760144941840717671869934196698764016215651368122115347629422898888235341910643745902897260506069498171194657485527129883535927398879094079010646981761682545894864901535913098779000809026573632301269076598295196616322302771780289242216086545962342603839934297502048424498355779960309850310644406435627373752054176094048721577895366886519443577005850017596747904673528628907076065248021199469885775021019021103552261804604545774379652317981805040996204629258008064280871736819548503038899539683118885886234489946021927582077610933781641963237626262772993780207319354005192248332587362421997042279719506055372766907233261623408495178389081446695464731114375851007468332705713101673742292242258289227124753467576127141565833841033509354567710814739903344537931469275411325286982765985778901823976268471975983630346233410498264667021218690385635114221111789845191641686888071218044413838563629675256965977264204726819530575143332735898829241177667643385181388046584566810913219860125651922768535254692607143385467822232139554295985450439262150554050581739680176817124454515673084235462677739777136273941421755873998294807820704972962272166143595262683259417059078176238567100166915883431937422685229962217658915309656100032583092013953861962349719879652650815691509467593324785418821816618203853840283428662019361256522962149683644516538663729688100549727195938556116293029763434394242955844947536932413209218497910945233942882934010598477440427491554471744117428336181762099743664588947977539172280525208242577443572053683939673740878985683379789910632765294356509924978684566052895277719029220196412393737150001116858203324104667420378572721813993387791419582587088796464989585409616799884450766689702736607381790929488404413703269738782200793969675567674527157029294232378560316495441832543279704673540413171436107305948620592952263283040978417591275226807066793345829767517759159718211894738424752490763116703470329318994428619049309575346655778486802264454828522783437071266397939070725070487456653827048015657857743378411303867249781803419255774975856437508877255838123872813383626542396364961788267308099117914428217590830815324107907758822902871599890278322604637051987552412272807531760741664347847154017388845473886459579769576194059321044617364822149545765187410023962898172681551594652521185508489428142902324209527711267176494357587496767784128370938039398239017234621092082098345714323137318531795840860175621006915429395781054591962603203632612918042665376735326988199839858807226152312182773010002098087741786357470053438499107061294646264812252643658398748021041242773816173944848924645737827428803796363262358048402867274827334653805820294613806975541576856935485511545179902873052398318847972568382046127068394410282410251619404629896958270827957116588046131334560138680247327035828782709666576059314541788591516064793715189275372119666631320784467282842408803589724012897210069473037587742141922332229121160717004630437534512227139770335568577720756668914163808204670198028558677317785347607502244719005622897556964858785612865868196664891224393698951424725444735457816076415388328532335347162840122297802500814657149517159504148223548102033729386438295751605316271451884590208419355231431053208285569845697689371376535071580664000857789594748792935203011792507342259720021968920209850522446304322139300369325882831276612673220255291847095939071819621301499161855172345875265571818343589339167000574161508607772433606139458928293598803634036766091765679043366894384100165098250843384503279654881814785839322385443590240290480186560634886560623135383844104194355746291022954481045868963842534682644711064913461943099313444568796461641840051507159629531136177686083120804941840312262549177136779876130268007317227655974437851454825322545461459159170189316433065558232935713558559076100636418498577647513214263053868559579743168093605924276276503891525275016105688669437954323934467471905893103709196344099364372247959372999712960081910648568844893980455633915202105535825300100156366350459479607394737515740872666655578769655960065393316354103012837101105282538656091599889957537956268468828660470535228708176370701237122065034681873936131928728060636196678533736618156901031788777873387718270841056186330798245024744247988147959969334351600720824193986250687703359359614097116267415928642633904713510155584067829544984226125014011105495408125880699112813269421077148901224370609982129306514113406880260490392585228649803300891032369667791518031181285404478244489477090218532013388087753886426588695277986967770754240768572149994402349081519457387171699577440234550554937246061009676885424630795578471414696444739585273614820169785839655698002782213716383008491095044761241390983171968712489105115285482825583566293243794597930231495416058584100815647932494468710016078609905550808690023923753583674312255707332986856765687037250334199343851183357858141130799931794100188068914072620773629818280240755931701110409015430778324812331482057167860116469792942231487068815266260381584686098626762092922847144754971673021090081054658740009806957746652773120258982358054482514233565074197701884786466883025002564226407828942301003421635496703800326315584004778839923549806388658973697401569909408735303570844235820305742802187709631377403652074607201848903815727603101778832516953818527074216546919333615734672294361132153403018852798025282131672098082054666411770660448941895917779027075489118375622711523518429527539845927488718814786701596829880059298235142190374941635473717670560162797381260664950725074730006836524667405366478829077443210525885248720787418542005966216082102721047816735974579946218028046335097061048826863495114037509380901292575676747387208788231407934738695861294771286698748112864213708306936314413494547581579538131628077150473614462437361699100822616601993159160278459586565798517512531818708004858499667516428086966572698717740371172525195537099075050470048117365081508759077589350242586616085140240430606325687952453978079322159669668143600400271950872882348571801187003865596591888088533621113958986696157517687424823974044590046864589832595938642016045324970012297889796310091166516646828987080196802753991688389234447434569587679368418622841836467128894200028174196445197455568758317531849205465249560339982356786564030442531885666581583271990293999142430404158055293610222533764879713310616226853479737450381090083117396572211183248746115361467459834491101261603587158696261492717024727250612328894413590377978970421840166144755628122465384816708038235273938046475916534076525810108919843164511417906940383695403816357273505844797987920223796327100001364607846132943132725786769491815373738679703055055164689259708002351431780936914913234092581501749989503108788714001442248641789610917033208427307034748122819213325887771728530620173264521124396746067552582701600998894153067962971114322087516819244396044964344542654949469958662748881051280675111965778526367783706267348584801343098283111602306713031124184421325298885623444105994344897712910517326172397422229626420613725345194144425183110592467618280005909252828465821857515125383813432967960568621825124437787601448839851709739201552733160924415354308644188357410029819472576666976857193775653913328015510249938524259684704609912925867050118111764840806021278005974324496666955497054749950355585816414465512158010827249569387168374852451554219643922025456607988275489757956373708350332616998486067399649255480226252093304128471266987031936513036857103845052063591343591844358559619901780891054450903388644534466257154817591552012756427521372257504640084209188291711455093700671501406314784012113319982599604012372558111836655728068974121745227313991683509477628169990449148768801919220595848741648812132347781147928847443759357783063549537265404338298799729997545334364831129973791556544795414787885790103823248850911885338824616767495251102880699737427390212487297282043126745427752289057781819339048546565112881744099020937545557222476456106758712874924608176398996312295095926795361877186985956396123241877493448774499517556399918983755946922862471055950033821605180718387197074031760955114610575430926831676094971383302678218075213427067054871865602838541209399128607474847070306190764958553106022461503237837096322921620324880122773117966067580994785095903412274272976135550778266044744274907541776909976174963774622253925553500007583816900657159710059848720383430735106401086552543300102091519508082977955572123563650677207859810069318854530545744418558081045071394275025842615328331918749357204747015632578346371717963803270259768699287032297994862206999671144023983137167058454917772439464256559667216841889934468720292589410889066794503220394783014517247221180210273025733821751352679378031295519393467009896501523349448584403437433434058511456833496351657626175440560376782189922639698900804810292252730497282009516926613852331616265698461466272868242273842675212477555384547166206275599185583158671707448940437621313837098339214135982513473298053369828848702185117195453323790483848495479078408541037155902788701804713437685744854357913533799445672897138338164259387733803326869862106761339427310252469330958977235559536420311265150522181863259880249379000808301850138787315194400985264654766831828208152978575231941258373694321905410621239981286487202954753959781081514827906657112742814243633531227649593378178242029996176879391720263393868544256660617265530499209931843713918315027190385354978834596543968633233671938414305928295101643588151673701167228208784920812908718111538060203826358872433988362689173489383980655423784774934126974945979929517202773047640256114870180384279100069170741718850990747862634467149224199555574376499549094768139287735263748556205627116333438637478507660152151186081275905559384372506837422224518848964780054707874025397175973063646056969206887496932988131434563303774902326266603164761466416871798479259171576058473204348582065825306288875587955092529998137894905828112447495166479480315228107308106579780260821809905123219115882948925628747245970473451130029005680085013352616836613767171684810875819313217144781003611782241698201340671790981174654920346814685416709244256861411647992521303733831307869329918084084927506001345327856003844629585588020374297314154529598637984977462883984256260643259487869379058084425129565248052428692373544232806013637926424337160675575158985120751103488321871127554060320585648809402447061214320930666914839719513355626759808850500622626314342792821128406751479399234360303336240985654118363516893232225408148893823129165826408709904999451308393388980389670635246428313950515911374932206223462943996123554799912157252717644933854125889444181760604053934974987419726422428704061639537135874297345583689613054576052527898052900330215656703316105952114452084721875609728838946710162014685401359969751208757479209975564732530938142152686627965443409219993384549844546432070200115878768681818357054107949414509681765422394131464065763943782941750475779390919660943786037848455843973243699265667375604348684720751515587413271267890432991082342568421839123707696646435381817425160921133574874888746322386223542641846689535954261193141879004563364289488846666368974833843016537486338671832763641966527699527724271958530299165907291066750910508996932437698313772289615114610619508836149457945986608881661152958757383976028547695763136449162790806861866640596013222143253713018065420145330295455491477943787069383594181071706193805274573131293464368352434358780189276711354267782772178551322115380988799748091972032870208780631953885150165977087944820357370098518604897985724156499539806758242427259827380184413275953041875898393427881497222768359891506918184310331866402524085378378733410398052189653054863644463505709297463768350130818571549898398749075821783375478092200811920428430146408714189720637535140697269300294708874256802686734710091880114292635336952354390060770095971369350919675799806678647180265718479431487875144634987555841367767850996606270857405484586971811192239648823042056323372626085158661067280886746671433204449598853937370581425274800384484468899638906341340126857454880565730849186260385839385295700702678674036748801176981341778374424715740642871461576866312048661242917776099591306458708529566518021791436720185343497681300481917205764138733960136164859670458846236127571908371834525032881937726080535168617969306946010793343556933054583908453970356826136874287827008910077912188056154721957377066598878633859843679816009525698189199163681886190883999485192970774472520770090800822051550403611281491258420333622883946451880308036543496130730673044124990981483514539274505322043188438939375922003641983659989782331860477966662681296518705161153259745567100144904741458910176427798522613233498703709244187389215919273303438334918827878131147098582440893261513606140961399186737395714585889363646185709442911084213343513113476072709842531681969783409076380956557355736473586574829252215434516925569219253558894761553951175022416085829291271487946440793662605693690260381417314019412243722271190675092261600402971533444985634100809144727079477506163410118911079842798674244272133139385800765862463087898524987137749746433578527407519241566344971381865978231375016171401179963638660869500502523776270155022970771581624838884405932056396464635285220321410822270860037917595754726924032137131547723287933248964962937245185107827837891699086615862523185597757007621405169602015734049664741802659714039241544137524366478965884999074941673112177552712355911110347738069165540261024849956218165904103612707143728211466707032441512792308636350700822283989413111160878487667793705036741497529914504905997319171699305361123294015765575381789576278262525052788639375584721510284962042244454389042705738102455470442743266010350798158742061018216334668495904797466177641467139963844859780432983063201368768206956606159127545805462620271101754660313066036649116073663722381841174721009450561382754968916407296740463348839401568980071012349406335282806239771633497733588156361544297236052671666132171685734506301224564102256591421636444038713147848908838931830321316634843547938834766479275417892192094090125944549792647126446864056623374042562979515499524306555717778414439654361066067045886766432436189111448350232286089942219796131153224025918254679221863266224581003587748350186011890912694027813427147410134136146989137934088651833482745512592119435403313470259527193132005303114748558671926640393912658488179184353223376033610102742234917972810241426280834626083550778133716473031056440729575596054188480505302378859676627030891186216621543284688826187953086530156265626122521509468305776924233277908859979809673609063484414751967352564332322494430638932215335259510799592871298319914223717419210335130205110497392442059353344437550304632887128523450606555549234036033101332079026538567234214144132888221302438005643493895286735468149129443602045061135765352186448065664855913775903834503982209898315593452038966918406648368394518014984560045506756084840267593195425431702946284087579350461630534438097814006645428762237219290406476806842756097232277940459531310066892016358367893231638966026586033858459677593853067972546661949128797633959681983203122002574016253952109814681266801704434244401791373999682277745958125766338204914616379199008175179808843506369621307981644403292037413682115536217027847930699528911022073670325164232435980939039515389372189308716422821831209136685428403756511862709720969825800004581374296393768896804659040376125111466442944070331423625610474833854081983392383978327324328191430552697811221546029407861459547462452553675920131777987421825558742531051254454124070092533166726859313796069969528064085873301441013967288598859711610053409031859579708832665393073052300471617177559082548578073351581354495681991541079108516251742266313954447050031528827275558572467960240007490074118394052064092251309479200053921074084986598705474616028293016799751388277852184160334644850075142072860313636126184595816272689966320159226520271026930507962168251470271162669195881840110115239543439786294778805305835824643669527569092930384416107512972205115874507247613460715569757466759263532900425160568396439742887987192602820355015950995755827491939081253920344001952055948832172605824771514768233448123165560631879370631374651759899037579392149846656034357378214469805141943310587477722319977672406355822383793233356928903585229284226418633821316923752796287872843341204274116972759380000732613404580840118475519358064808891857383014255270966253826474900588626953199851158210929253377484305608407738875121114105900684408422237334066776275705422422389497936942888478303006668848180410179566982506410282907378758458425382898826083502903414710279641416472803674645450980940031948300012229905064775254600355367854078197356609201954057933566255492951501565342765486011856100621109670031200370896588079127260258169796984619125862577297525770996545237175366750974849962001543277541116940052363804999234489051950251874618793900848414708982248545776809111321577645837293885557010050717206451526760744616083233608642272323205550256128770306905342862770165993068628059768398525763745640240518278255867747579754950964626982229756675431219216376814538205982925953208146090332716834236820490614216398271686107372883832918431282200189227419244856337204151386499349074297152618182703261965866834889586947556882416148560450601697946629057325584256922155475712829718172927536634006105984279875014537834876016016966451059682527351477849450458866356312942367111392763566053239175969236140757679687145599495252190733135360412287689499304842720871647446067290810847100598118797745638874574912036236403022013707986433539257119125628018811625202409923026940376884224653609380942015493393351435783038941729910706173714165059070892013486336554332764961934162699875471282582807839445978348159246003203224829134835788859854480705774817445521027361706565378906192156202645621568964821465659680896206814185156661315635957379259050302500088216895602451005949908678137368979770914136468517941972914967396650190213400116910937650718581554911098149458589099016983949080691122400188939853777116048925834052270992019537305229124940719046987229092178620141040600208731963814834052859633718087493169484043862879729092090415194184983379090734698125031875374075597016660592381523011294248386884298514972286982119848091596866349130346655838016111314619855407816662813482346995354114526832963520653919062605513016013466911660421493321504555507634560248893613104655041502701412525907592784643414720475554453319033022701037740847654747222692924812385773831367754268050986594115183208825965281474236333665141023691854254817596342818831408004783773152340759348500746547640891919196979556298589664399493579630435466492897819205443898070640048003438746714357331642584056987287784962803217889666975389322442328932446637290180378251332317279140019741210925289030181499081799664106993830289571468188655170446194576722292454042956157888229173761973022123644356775946968781296506120145330237842143232247144285999584265680385008708555643048094943894903247013775531253582607043084712846752419707322747031676682948198254791346283638865182705675835621581381365167924005852464247683334470541635449534943312891071113569907524648198634711054648350670551442582311719429934945910297287433628593551774310537549922161317814839096821855092532668286792671124344278224923401260956313089087850601231732770310592537261290587541792744579008264644950057455055661409471725063860915795419533009132686921168950326321819691494664221205460912785094240483971992821598131913341723401573227133965494073629462558992275487215524521822218389949639204589435710018484557629498241188274936105841572415240520790707538946025927096690273507462394963742670267443883177570523355545005268986733785856453957026080770856734514239668500195643156868281700782191258419535717325697185738869833931033768391179777477390425098671100882147828649690503779999156918970045744132530979672522521869500521778005366532723841143176392776833307264463854320885439028744222879191436641445022073829860795562640579564178683162021308756340949106177167573240423438153732012469076555643573757728579540262414287249883055865843464575438970338567762355385036021728208437830609335707240217908556525202127119336515862314995358205390778886820246148222817930035121603681371487509044891837810134835390771588296118907710296404051339560400498910695355960112871156492608504869083105042209393766045609439224081300361446026691980337344681311499830236446231783634000101624293067369907943239608588043212243968654192988185835703899841836639439209597955279926707365358378992101594684890021628548464789366683118350795988853267593634498949361201412100216563523514596786164534329192343899017906684979378403956428470166604284777320964960960315199579189554912457955382747025498794283453800671131783507375004777321314245233457879412482360056426076652748014157370738525144923362612778562692351740668819277416744706792511471210176665579554564157770865386968061252164590193596103968138509052803675990350290937030103783010912134679955381659780241721068359077194175588712141872800865236929188737744276986649426566339171929859547006326705592821049433270735724717721598502079300729641316907401977173380915022742364931187453169907355229525730241241800409387725357536052953354162808615955561560060912412267417933100017253445243729529001315114065722548194210765100721263192319344034332918128748723047472032454405307352332916332715727709654817293136436256716645417766402954554969754682235602916957015694175245373377329516867526354155032214256297314031885876893776571169334470257248141916464552240814892535191973145504740726791329534186999989495694808426648857488865174822674781748363930666107254485801174666532443246772947437000293005037493795406423062052944609194191301459670934439028623137043429013923619837004828891559395110989524183735710281880623217617445920808271931166212286990762312446816067072305799178634890621134615458776011227283038423741635434086574397263053265865307883762565366855839308109647143329482862080179956790101221594214401711957807918603505254740542402644700159047138072647657201092970266519683546295131470189972023875326000579109975491008475868657477442663347381430446983684382277344865039529852446054815190016794469186533536808863040311520095145857434492001544388200213047605625680353459738760269374620000654181431525978729082318628610319770321959587684179008141471707196645835500470149573880088420095343063784425229495680070974587556685527796529738348145292602552656737318312541067936402134600651441517702972725414181941548136160134458474042391497386771287086158122877910610481851307517938817806251087308488169207189922494436355959946233379449923371280574294132822534825499873388107298124951966586502216005663120460322486636357384394829271632054584161628302692804112967351166652923413097977472977978861461020128599394118171156824828198800778939072236138103809049963399508650162914717171228782421018179155175282533145395279380989938728595240056356342797455428027621455506270172778486048090608323163229500689343919351165135792055543035738942016575378634439304140057334867267624892654759046804309341707123823723678885476858869071061025022084027567162424753393964143269138784025973958486020967692304174303017107599109571488230502363773209161053708509140995643509946060931159691374963818798424119212600118778055953521969052470463493877152324378260548200481948379632557961957181825593515587834624876152711479618612623546178439816690682870184322553443294605029708173771302350766314062425080274712091254609962677062354875728366990766775209444005058807146602327284544280872819874802948930629563491057352186081329516685568849600220561620592772354925927019377970297147458542698933403760920246935735126859968569107012579098780537504150621280815673747778986073973896209209787215103211691266155558138097153733519618194580302408580766684098545306038161912231575338953393816430515465434190912006946343881146103297237322258813051670180300768791510712778531536051472347449171983351915592868022012436012669008465546202075543395138056971053346332479090589074421820194905457778072047691948836085050551398261033075733915076071471613858456940090301598231472525156700803379161277837600661159056502709438686344802390827930985481018073520274662725434589468239014044043353543880700772756133030772613485004768580296283766161808370495626021605690332741516933906717455954070570104352553183987087932618728598470267141673793617665047940899534863298328379332039994873978165637231576965567600578881676945892371710607789118540962829376803824686011107917983813815166820616709188587887521088089069776712953376392517431377566532076581434526168270396180995829377152142072541272266788042652907257791285878213137013735358250866878096978981068473119280696174931579360319072813743267763678762378319915649904625987868703304693861589625937830734440443939633004761527281000564473179101252848674576796633239169096886061128803431264834223711509475432066593291100201949498115890008706441956429157300811448209467570463975667213353151461448605087766156086473758573479622727669277042489693099144796608242302996786300839902460743092069797689333215441288196487605187627808063992495772373281279458372640937494198289298585422414986937758509030471872785976702775750222125713739372558766028376422067430351316840780526221138064237349814295482953094655138361614759600051665473517967937464705210210071913462356310100847743341217223570134281714086574211819514623327428139743262573538235074507080690705155934752002696303648485539144108859343623979412564185864813960058699527585260282721662792286967468119722958922699096136456154642878865055371137254115534164421940605751757072134210947001612306810122114462365336494397655024862083914090397591330639726602693461373643603076795585027386008883091137724060321973366103542015477414837176810411723082387747548282715183867467435852466158269592754402968439056468881422381476702640878193690761760216135101466482452355744046834662717355295384862665982741732347513429059010633565270063646685791383681035151992775885116757528007904037324326708540747547228265728325954843520716532763276084299106407035807061214540354309284529160237073558833271558184852884754023593328307743514662316835092692930007040895126193502853521654511788976878346333550590594528722976150614911997289470718305867755524348287555417428988035694072262798530050756091908614788693484881292995108395834945880117340968284610175323299937911581851200261847265157815242966724201265700778128250633542437667435345875211637454439087279114333189730977042813255027302614508728895434348022915371563910181741028253880264645001390286348559258464609436352758279167514780402612676749337856459429633233158610390582113654349910312758865078494516180993349768981910536762871274103486274484277058354272745355231130041647577283377230660199804754857567370750049680276086104828531803636007200674811303051418600527003600139339019959309783927069616438770913243099996177873769406019276203156972539942485962014956625229332735273235653985190463937802028183519530148305118934631267161802707384748761972982337834490093577723854146020074566709269880003611283743602909748618759707478564915723526090642603050976014650249169009294338595788021658812489356377376302127405336116217529207961188017116441667144153689870561196185017900150411334882663249220225096557705033088594027309252977687532358032408882468152593831668024906810477626074985883531596403981032906671026909329464554077710187890348833370537464383273481217415603751732456006735036885912430202024961525632977438469717678082004698201370053437737667993783703025960783173567980887005118061062301254450660043816974337547881156018870407267455528725287083963271480578375736961920288157567883120406944894967822528128073039870405464618031455775257595142137178663825394096566944657595781326321974699156640965247933625300442543871985117443972791630074662209062202742367151706631440525603019020675960618614419841132595884124699306895110930681777170094045634433125977279988122317356003422788878558144736848507785954546034805390654299282946754520508416845770528631954806073243590972988181943739845052517439225204328378311855861326320625905947564852113566944472934167991832097391649332167574258075669929764326704737027887748634892426202989144642629731779339624640833208693709278634865910572063718286013988913072394962479010209153013693811918760791086528902813648713888292074923042452029708249731103649125014528527730900355471731617775289026508863607430802478882850568047670762880929977247620635898917507769531453327863183697712723762540908328829041994220979280534286448056714376379923367341402960926402555659811936221818678508324931593694900596629609664980209740142098091786010916889221426973970609611757109750607004176152182080049584711103086271895541740750904124824463709694343821390017130794172774868455117962028431238954090893803284241282762624336731249430538931756774104843301925053486471920357795173553103462994211985322998916324183365874209981719068695145372600953176828153605760312626743650605047255635701150673298435209029673190469885634741211947475254112372909536221648205384661938101719030050735203264084260845785714267206614240193325572375084558218289075469312280797015042777202466974805142887376958915546697895360641269141171112258589693741506773491850964829230387413023236203773983528298422078305431364295150318555721031583884868920226627673541147239180799372190898942983906118540527298212891439595616196148350668683961809616260390136279937376316682034351840609543247670695647869272601901318116619393881645734511599702078173987429614199370483376961172091012110020858817041023647570511152564805057414915599680036718841804858181477680739327505427128337091752132751248571967486637166323074577510286867239245429094726458863296552388398041277155285177677459517914782707319988057711773190472121505270882637926897023421467703435220956915241376073161861568213467722625761263369602761610885607202424873573582112820963674576286956842847751265679669078835391680584373358048644956902306529928477734039820182617261517184041492261974217469993551701785293825993096779568043013739059497406332207230509115870421022036623473375570103397104492194647036783997393765579773822615742741478824077201657668878646159109782606010856465987429782372204760002467957892244301610444405624670608289998541633026705331589344066260974171384197943948622004861655428137794531652156471323393125113569025235539559240350220742689164881424599508005935813569663162351882659376995336519578509693130147095962487179999150982420328984896989843153249870808326991078911801275654884469765726041799320725149508760444153651412502123554069316319969570829950231048251737783203931389249282048600606962993685873560667523150981461326946251836389788994429458030806619464073833021104704292087849362285929559374841772419711404125100444194770275995495654921981069305107658326832950517001493979385077399530579749883261245675987064852423229463003336000715416748130191731137709398805198400639186546251705552899084675013653224869612214346333826944182946240088603298766934188291184037833620923354153773480489529891698923147277903578279505772319825203981739524264766452698190653265140483246015784077198513818131902327436505112856321910200613453324800206806423954879534331730270388397253019508027299813238481905682383835867340509858551612198466169606686573830096858261446329672373398668460034045377724829315217646620794664506480209743228228274602921530842139771423663274837505965527425629394147409086061859647498720374789933900417943302145240433119881505493179951633039206951455570621969409843627744931279185864089106979493233813918531415138305614414800621156237051275531491492806933607877810996669224176512249442671588317680545389290716241873202338752305133615631017282641733420948593178669469445087505487705953131203851770382013281042244063084340445753983672880137293090476843603339747529342921123616247592286197417987630082406310822850240559971597502500860977442637469584223929243364568787612523681680971953219628049275445196446210027669955831267387384033599143196447930744868984247977635121428913575928673901635620868859270879703367988863926690848668650737422227128074235555234755591711759221237657109032564710224038308116024496788991031350404063603029172413420235361815464112879818268978172514318624670150334138405752790051558239376038343991725529150732152304624400539725223549999466928271697673043324945426603218060826712886780316050791172636460606295234986591333205019318209975329037229777164880700375938575449217555025101679293674895780184651319039066548369649965056561369506481907248324597956136038981126571291046680531306106853183473117637303456434838192592289340572516525653286376347960038361316144580518133149787580500861225289866865337687372310013289705576713787250401643183566006976169080588836927600655259146273273171058046850779361816666264892958717027651621312293401882928168711384100726175338330838202757032350785490450229372665241745744219682087198057286768686825478910900796942535910209021493156705592192109513349341389226607761928435844218626184229863955101562928714201078974418374203875429879570399937254504565478112657825913497927260555504661983438228816942342580460133503228232319212442710048686731445375650346065698050316765617414935182428655973967838244889407001631108115637774552883944524712786929515320121800641688153884539123339624477566849963763909182795590945183125156844358573870988731967777904325285456058538454975218824260854899894358224121375475920182441119539186835325401017618613763817181758944427939759716524059069298418104037591337976146881387613195472816753891670234530537298918396782026365095602919076272223679464129203646603646079336207630573644569291801543124029052961421978469330395523562043744524146781346789943741463418278558468683285392376980004390776172717425338282134031106147190416133388604105179670187343941113473607101014690747314070162796875753384515394450671312941145536773146804580564989071613366108056632263604337596488351811292651309960874182160963000217741615153841569171302517009752765723598149546527312472363897083091956045638717439376118589652165282252507878190759718344499941553353354260366897494280424023752024999710559002008657412728957018021371767339827140479491585654574446698980886689403482091439702450154600535886744584413577991657666226893715894437906542636767021374233722467364683079243283037124328050520464401593850029745330315597876902199357556555557809099234349884564732588037510472800009652596712771141157522292515492525796516266826118371633011026550785312740448365154818328234326799085132441869251479744240875688946337502073732605335549724376996941137891745981997879218901194500511570080765644759718152564246979200503305727137015446043798138306334472882594037027732614585849815385306689735962182598023563382316343700573629516280300828539358228713177863236343443371581571995334875265579702592182748447618913536437467847608330252683740317042104214931069345482167570975840088831048290947128951795638626134137049739181240837496474647405359787616078863279288069322904759252286855900624911540802526767180688852137157159478233235409083334491767626076036358602321336202626927274276339872699935769040131806263924370615870892794343864395569026661085544810097790157181056206429689808843527798298991986811944274275598163481814394620773787421229575779938340495392812310055404350084033268627877691473558340915208155980386227837081606642102586442473192534807366098185707012006313527647717403016752505951697093165189753916976886071754826510577376627422205810534879628272378647780528722818840724329509113597287293303431866190574573091783854153835116047503274838337896598352528846097265557530775854818660726099568816166059919237780863895878945375307209975298485991215415216778956712242178640609017062411669415342137742242095865874483403950766695509719406316348479631796562283710772187658225880616689834492089304798136073276753022824772297365786931259078659022283345059532756199170268416268316929380332846652643187651152409587325676481367822638340352609745524222210021162529615724229007728568960998874032601799053353525210612105317663201919591812876145826799909496576705011687142897519749545196615334712153654090360856495880013703957395475222286184558758676695984589059625620814093834849075845175742252347919307581832580066349862036417716684789995062960046590501991038440375138012865266572806231203682214794308722226122380854450398819111266013249057857583908901091038755491795129705565168094849884444711754179743033830341460553543939412994453711200763809834273905017164912147493733294967463848613438927750145143454884687446268924823586072234573113935299025118282934905069748772060698829189779915934193528522878334423755155382785648504129766501408571860259286979668178433683589423136980364066932666426879805787978379339767042219220982764467900208378678877655939284656918938297660276033392778097057074456880035948200831693413009336232637329859740745849656107966472854408325763869043065773325873468106570736755742854230293535016147221594121061972764312887191477988053429254173650536787480213804259998628808545666070871727819822145586055142661546397609107842205659225309162167955658283515526077528809699745317456525817279482433778088840959966040113591441296979546702875624704106117341636374423185915380631666718479582443904365487951672899744322155839237188216844149121819935891449107513740448746925990266390848761884191615576144444479510674612268665443147510039148147149567368348141732056926897838692151413547850365265775751793979456526977919579689658328327868217871366669478819253369239407148683485958570394119334396938118626331991755727746782961390907507818641136892167306568507048381549431920009658878735528634338566161043159535613861529807486625781478531138839602321134987464588744660248166416127868087669508523271180620274691581824222365444346422469360695622301665721989155593867803873375821671487396476354749441746481304506556490258914453942998259590328129988769325427953705569475915720630624828478348752188697755918487981829905140536387978044254065108462698100798248132545483375684093975924807488516187996876711106151294714615856041558475174222712742245852174837701060746333173215450291099145848782974712122854447013174202066245542492687973511885496197545565062427892120199515495810371617287876040911073010405529257206063597276602375818558807037924426249562170933959204343901402308785889500921392955592822773883164177319922584645524793003991132271414606496953378967246286899373971569261446984995266412369922325551487998991455284856013188920220160483409099993455462947006182233965153151251383666930316069473682532300502744135976597587716622460891099173799342881557184903263094811511788821498585907546821181111596430232889872190840653076466533050251874491397111573994414690357479709655927737521837676580996220319792503677263776152901526616934282785480597455451437618050173521015294717935682417090955654910700936252698165553061146147797249147773013081128449781531279999597178230477993976632652301083038796272603393525201360086334119756302119090555628352255676961579002746357111631165003632534980503295703417223159383548672573446956891969373484573197150839593547674745876992277540608401643540296266165271170185410201526577044230423636188051067383494137913376444686719474449448753237105381957536106121585388183374274260731220728664667304374534567468210886456005302082788470200258963784336775019882181647780951940569769404463109731225230950660007133378807611787798117210847485727699235165308828585042214221967383298902434116519889458103510452308219300157667678298456975779203542300321983798979777203635429152702320027166337703365917818751599487984454323260648655747126669217050344558561492693123483110907983604993136145538114422292569515420967205662683208757198400334352964748371300375346474306119062129079742490227318187535979255473750488153228999608022341484167413546345342001751588215350845892509877297109382762747357587361777574313865232416226232843173894635601303570169779459077875842595958079631969545676062904293073376166371714750331052676073326058736934119214527612910695710258564011885843062809168478452468049258036015957499327840553616064843908023416904343054980110261515673475707847999451369408512686389198822464678997734430305841185754425596442249063016076763152486588723610990744228436528429112239059380867489023968819167852328724492598631382176647183982201490126694977105583252689319226518511496562122352265340825504227851145890888825512653505777419206967171018546460705549530100293125378987981043873427475231728438233278085811409071231413316836164440487643737676386090341829675835527631840049333129214338536079608928096623589650937045805945502086206537221126514175310394552401936550358190693441923958306601883446275039577951505379082687534331220281230809883585209193545709403487940270602054099018354538926941015846275738532823654195220636289715908585656163822115566980494402454097069828418822879825790096800612672190297779699428812000772833981517386571536906840469927614818812440723536691332035419388272065223852070682260820556360822189720991765519795879705568694422894850921170914852965873475096159528896620134334060080536001444345851396604856408628232644383327198969966869471920483751557784980954832308565437379447877113624769532978929665683533950347925134091552105733256142958467354924336310343924287884537071214209642542652434439973415595140528079738394332404063452673013464036506835268607567176418510533249317353753151772727788991753735069214321628099297925887257668891278273057421510050246158098016524609042061993554353290421271953135577973980877904185233575304543285913518685713874146778768098947176825878061784502127387911460640580433192841888870651818308927452921183799151631542801068923422623070820659007718347186748267075436228095472388937480857069374499199519021327308062112306707054493163861047434794035858156434362580694026490853143431961720829531817461328509072569644335088418189202658133697777053812533769149714306114686296414659060009706116385475608848508996953774780219635666655332145699856250623139372423476856873867298937105357355660440795429251890946097223106700680620019486304756404427130438611603603753256400098383029758645713692197346988485848657774478902691674066908318258566794961752324712712343618877861015652080110986726513979409200591738226834778222222905053778436428536999637624134259628357626882865677743671142313192562306259603056206957563897727187031212437744780369353692409231224156376352329206875472173542754670462873045565969948938776384898405564040885701737967213294523903885216535720603792278463571914631359787788083999523127833718895773819961463593042697594122873735619064161149152855456348449527471313840018409340483992410841522538691512830592630064940829142375014620908390931757687360074661561163641759294559014649765584207556726085855965993895960317363332169396787230788757343003583075044689261974061687388427890226957479477281948669128587428558288949942619353613088722217633919352047778678925702013688362337749692886648848759149245240548668661443122620979630244136444988900753217347593438660678090197763634875326728824066388151617379749615313197148587194735168558128679354147348869107158335921529194005167817621210903161844772771084412312227969483601551071637719448478489793193356769377259165888090801995247845273574004516462681344018295334068687479048657505751308826807255457537700836291544335405914406327104582776827376826126125876469864667538930862261834975381876408064596401866140862891569637593550264300863733715349942792788104845466416693257012360540860360939549847661461895747333390790420743594544564394600658230736704837627311246726393798163097289240372051548603331382316589170689287650911065381646749792952557170565274850067547530682720343129082383270656544945737574482466435864571768358705816567119890094088122089870568177503044058144799127379767757742703149371208453052514124002591629467683399705157458630498706436546313137959307035011787698243075710509888383111392599343213783665652121376554666763851287122877993047531443682612828356558335074840223676957793606659933457804625254493658345571679122941513629810135409473776221817933170568657725467840906799615567959550745814643589626558318941230282771950600839191086835372510476376525501989439176953993021434062723771114064276926823972671484641848297391853993662706266841439562524506770771157298795019058817026342198965022314550668203242167249020232265341334339672710546531335749380976175753235170000042505361065751781936624446049031992578743222470197224556021259817704199901937238138167345108826352757175063097243612912360854479120432551265436943837405627128247260550468892508359338918936303745496431075285178150640000175844487726777034073752582904331542229454831091136824471019218826244119966583558237750621519218767056175175794559518185322727573693498454608448611793083790641196166289370996259233712849213668952542125252052619513567831956953348834749867547075975353607539097142728553406518616509565669748520115361265576536281158315056556585319369700694226816232346253232704423473100482413286838414581167985340150417187622258040845427170331359996747759972915118835282601545491384753841752100948468302105005103845329120740811302599120486573623348072507965689078079643237598281016264794364355041888831057102605259595384718768329794736678842570729933117020657027401900159966324032452259857314401212439527620068412793406886827550142265714778478309626695417652068971983752878178230462676017618731705796318275504603916107400571066303213079698450860237859502316490358531635026073412635619690707416351216560022305103592908852194928494218986358983844123638205190881607464602840913624808910094308061742492868647337839583908500197673839267727568716827910093105315348024344285290312545173345143468775739919763813062440021595326218741082929208089917076899950674760872686143550420269123090949191531968471685928961287573782387924717239728470365343384845578389528020676184358124302469585579083665241756460763016134218109722485003318782407873141556558402222966365232319636277019399556013283070907504891732424895180234977033737545988017223715745264464447690083773246212185591816840353678830806092784388003568242954247678556023744948348629703666530115556397124894174276195039090159882662151604409566390995810197020556760348358036345874564231085869260223597376044984992594514822428213691596942596943939888268334348204763361684464132880673224263819187478675968894442670430518821630530927274435665025564216165608112917280441413337532137354374686923064449244415171881795678386394102238172323109741632717873958941075023162140907384548907943504432168034561634718973145653551218230531415428399104426642502307426343092393119062839557732496593430721805744021864142168024383306891050281324268529401034014217902399072418529501664230736152174494858857157887734659837966216718015428132997044999871634981876474720925476554543455796281219798535237011631873079546881952148102935985630746301386112164128603219945846924598438800341253704921545785397000942161507300059434981764770513388621757950140485178992662499437575488041582455067789988822213405251850539248997368044944166158271718778397553434857041522850015877864079843536612274134977342113414825380297320113680686529061627829274966610441285864912561357092363853837914700798126807495041218913284565882142739642487944179704732022813729942614740377004829675202432153431610028082827949278935515031500267347363662160170677351468441361062286970391846576898522479947234687328643078725501515239068228233016137683464550154006617394994722068572651519947901213575555347285918941547820046788120487418149986835016703050619378171618212983456906998460790549384364451317787095806722386845469040318702266765189595969987659522489901233233271198795039395999020511647496114116755523935429793429728432236384787898142624917917638794820679880862025973965265050806261809167533644678232384965930693942462358092707817657055365507759375270015243998325089798279370617412400652433754161770207458543885696185448762754976292411914091236671158629985457488501498594596282462091219385509162344379606712553199524127181247939348551142393277594886980667787696466270611929755455468663574882666718942775228154146276891805754439463052168062626605466500668458955320204122841297626749117838413121608991049957640756410368192648996317603618809375416641792679486590422551650535337320457108854360289195513929003885936998267937370504268551452887842926724897171056482219919219774421877527510395696024448168396326157216644782228456693687148280160992666858211104466605178096696942990605957408696568685213352924636830896792766400795458166120505277547380719379086181754492427495235412271084711368542034393306054668159357205803310181114269144850158713477208716904432803439382333854691797149022770883818471361270855539426322126257086216882066047575361826187078136990380947803893608974766858847026535987952218892460991145245419208485834604081875662394593412332409487157378523348010882851126418841423051944643666152711771278674082799532665414160738367367819728935113400550345909514539029588828865010021086142013957317884203057780119011761921561360230199627735522408615879268024063571464461279583096018856158069876499119834033864802719355122110971659675103916184016930719571744557417806320244134334380323325352672918453203124126795903740484065908028292671693422173269097228089912234244853671475950823115654590125050201344680204513478343520826401965328490052442620894278431409107073828303482639399711551170187228564101213095381085450821008300476805312569041497328880383357512414946634604664050211215958702466032663491156915775939639401018764921974825874208126798269466550465870590474732682863656368480053095442012698883456824641882786973752833356826997359772592987818042917596601701845426422999337817291269759535264285648498604850816414081282476485801532737113495314445925271431914970849322422128015187466542938967299567832173976732420286579640735276288214188037247642170096859930381115553716258384009074082808529598613344298462305053633420160326008419296301535664678360847187102235583630595858875029943120565408082147551162734633799075629028871995456524698096176032122370379193815881776721483133881270310668167413113832981581885447234751178217931674626643927974553241639624847546332312283040462533689131308366927743057815358602510479651530286561795690988215549278239441710281947032150139051607982394107143332996652304173385034717508903963307997404285797064302701407132979806847667221710357703435531904733755783396260599342641647080129791283999006205512559766985333706601931406256755511975324309614221740456286388545897944325207461545176691099824940911775673132203258433470586540864515074819229723837555086580942915874414874633118191039446534402310361567901979650653142130825841820586355106776901323101434413635893183343082222683776422708486278403414436490332230326131890590275163356846048460265169479914259152599473587800278272801591059177398381725030658507111254177329335290689612387056860960551308888418291547387272472211659220896475794324549117567983780600583527454092085885421559935289664395791566549457322962123797782574221952738698972891273227140570487598595906573414302513955541939019630158823632424072546716979177765192473114065414309764015561391958824508435471270037482650748754328135065842375105173181617353753943668942623930830552028577518031792559950810533341458831330584341958794267252654700860673381422708952851895785833863116754150593059344363836649697024192803291690376114843633833570605098398245451436207674003683908101906604712655891805725827245843302073745875582225942310693543873571151068707796355825371416074833453136152163885011553279951607893661173680021942288498606131301817026606840391376433252515880586018683247631562285786946832667977187010335944648476640027507923526444538299274537902030451337316165884596775001389265520844218644962847100561211169439109745441028096069368071606780600935187519560930405658538260159993090404816782578024158302187026526909031778632590662154287807870523084211277545180838712600450377249364399937662497313986608706624907741920878781472557518539761856170398311969040314767476397071421065451703797521410202624412497929284429727241358408927981903378857464732067323906114375940084873875015425809021433674402466857501475501732795180290956229931856313460679105377658022854466762918669404334996449557346432737271587768708083036891091491311098320779792115112390178355150521765450266642858405900287859896637886328566838753696577012353112875626096557058330509263822412871637488761821291791176631812146137532880457537116159172181644800552051939041351357153983321215084905109023973939651933215463180429213157570964811045161323794577879597291825205940614808652700279706541654466020010164048065915913133600322773768873544663201767844886657599790835953482453173251703535538180298259538405780017627411945006463449015148836453498076904402144076824585452180408546301395249755891640939155203460109599438479447036199661426230579130859417821651490760528187637792888341867450138342674612850064931474572985547330200231074441318968231365431620807424606561629271608790259961389030886400103957629863921360309902865758340963665440188596862575184092104043018837514037711785754753839551905578229777814235944937696856255306846938839612771634961427158314606520359932768794083803088952043028431135985078764736639861743822929968635207888591552685222239072227924083921215874581297901563985073137045448325787203648652538859122221999884526169363441903878707404993214224668026968727463128211097118567349729484946674087578208551200945317945237716451163965448368578520429342212147291064375178846154212991031980790362335720167350383661111302888449016573861093019273550025235786681595021784609633667469732479269626579806570533695978229159883006256440583282553927454154593754127363574863031429315883041077717044259838602662286315022980956277606421723350797931794230291762468287717606732083098033816887785734974661681840323447152436001994576422173354594990884515838342971806143781591887914147212953422014827771891496126057545765648061115928115402911304379766207045654097071720088200449774067385798678640294845787029523420507012141159930008955107962651733493806284179585609065801550069998115001957055487968733211796799127671377132300374408628146430587926409669671845458835158299443941725793547328075552900812676244237779359068593467214909690704867990005848196003242508297656436225230229827772478156545731325398900202099710223445449575171096192473999765005138369888497715730290640103410536757755131292927987659000195614317346654199782466228175515817541557625264103076687323112904563922623415613367860120982376275556027544800870983036547968552457050037927726614008559272575594134055266782918151847929943234574258759649405869457720133412921997982078956685830889311150665874091190010407105971361129881573937429359810699331447885685208549971617913688615810255734403828508366407676499460271477396168028652463032330917970375679064838849243331947017590666559732368677440414487623773278530786179456409337076429333291738563353828134288734114199141779720428728631892349275133060691031344546190950406779635806829934217845092453009838721026600276668432697061739583385807724512778432575032190735180393525890671517863913821902717338145558385795510109531346734309826433015732007470796055187015602432453438157218673536195517524285995145257289982083891035363353493384354571392248647878727961333969955403764809111196318528004325397943213489643880236182615775087483222062175447578327062377761333885883680728406652193390508419937732311054803703953072240913986778974462505688514740083427163704220697692124074200354427942295621241147451562979127244751202606909770205598499898509094932258898242856317319719446511074087916011052514684540880743234879882236203483837471333999049784596920386677472621542377806123675261809477244719678228636209897423334858288716985603779301510080303045154664734368160567354434958167345807391482500027292472607560220877874867668851141195245747428381873559119011340269967117654755089906862843131178902930613171238235228580077266395256498735592122464372053780061860465531993587913040774340891289610146585339710141246627568175297223256971532029909418194393499045834533511654917108043969289384144532389000456267644565697625079871409320227454143670771894422869115931121334521220760468963785601250659578306949764598496585478655412911694171303504690066525883016596911841529418980541326813665192358803681825353640344884467922841411787307267233131208683542086297336415237000699718078157408202341310708681915608196250460997571228624215616939682174822812464913799201538827814810863281207931998557524073942915605735850572323756719681113735378434263581967112180089048891407225341178784033691948730046647864832831707935236743860309926245967270274984532329145836494075723921421220154821004828493080032015924320215507143507082446895204441596400649187978457395606582205676665030365222236417714487504273033717597069558158626281667271929487837789947462024788949719012041326775666871652884252035323527903842570102742211920100573885638188857369377773309482275751254961759638191417094975054874205610799019899129999313761797103793114652196809228931440038455221514477505488324591177609363628288478667536788219323017296698540639100280778463132675504090571587034810081290891259108328140437229849605054920519844567894373959529982290549244828562775795572657839685243057007226925006247782934458416204847498116188459705304719410354676566920739438604335385117086734171560175121254033900528050310968383004421575871558234964704845215840268114967449822266243907783276253537229309682335969871587807160900379193055145293344380269747891677528469563690637757432144103083328960441041391849319139457190532938432634011421645838751063927778090660111221084490210455518282465333146925082961939863853738784300571102900468869642679726757862947254658348985188997980595650657734382847035136959027857713975529729929507730220013527916144839343923546279068711474203630309421338955751876995525555675821282610786361591519049249210487059924087316570623395092967377891393239954883252900183430363758286375253839774440624517421783282158482033208575126437329262133671062390950313421133653164423684025390573232760375854466145561031670596960281723805270211310720519274293543155422001909124455689114850885486886327818144657867041432646828753980593578543121910305857769785361592451073245139112412233232907280808125017834511479608279437279983980925741345144752917175170094431916576711462470731170743371899076338548411866492592111303019444149524468543275114813484947863246029591843032747582246970886993064600978675201509313444702552216591434795599752314288989324219808118459396460535463909598101818303004424089682468568254897688887202022409558109313305859681473930818923447450772697232495302072509957736286110263038973223107585541179022322956851310829756704204960895535330572855031513442054881155537760164092140211547591066814401810425609112663161560256082016546141775942216162441888143365056225750148165632188985473607552172304625447232057343783934320783919274705666966640652802947880325148842446316106776570748990696405970148429271647626212484008932449144227014901512154447363823152195988101371296363602969298511819389018842843109486539748835409849202634936295149734515734927680638479046652441190955839063563813583630478498601110457551031940206074025742722462812736180434839896195630085849189358916171065696512851919287550439665594453510077454743405563814753722981114028962774691821340999666709981475125912845595326807151508448953882619226264783615390244830755446664592043860920714854707638715182017536542572589582638182843617023039058872928920634364284426041421904076269641291876978142211630361398132950234505208239929662014829105506999355528867308381539379377734802402615493707026930844502389531530119849583630509081606291863004504645279294682603834406435791065737978447562071492748216158634802015611068483983980024031305657246487342692173675657258736520043770955218992558625428798046972307920645148726920485578329770801227907644946850446877867951949802308775225467448944774775958867021211316713208565435187941366433017907500170875703838588613503158070249085773351032897328359187579648006025440048487343219312475773555570333750434645552159724296220224794173063220311761116618638520898377327776742224381245607972051327702858329438504405764498884153406517519985247826846483683414346176603562567889265334036691625082954025922368889469886013600465426000663648000426225075664604214220499250899171996318466368578824251103599575232209974497835413525775445387296366699884883812757428419837199247952103882539462359629682915695810286494706988474246880467010192734135648759005264460203700241562696919889648126208902431173092500445741166509429325344254702746257859284982239166097424932411484358215735429474104493889371802167057876183477181458061092265682928389812454988229419671193517151499398039405344567709704540205496303616556129041540944339080442243337186359882609318994128928398299446254312561060657043318355764013667151476752260430664472109317048872916707680018639118621754990797614497937276138657258902054071526493734904692021500872948336934975292104594280071761235213526505233868417257876162041365611667785417508773278285928954002035010471942365441142315377145372654553874984543580687506899608402959109832465819812138708581892439629191170548380369562611081685576550285961225513862448883894892118630779826301975097803971271331355497467523304345581001079514244558286337246789604955785694805063384507964159546221738238911881246207999507993225356924107951132452932633672087166702957555273935548963403986157671608607832123176069398725228349575584822567303250619012302702787271026747798972662290773776214799521493771623841183601116377457527975774846540139063958209519277728083207086915663072372085855653312637999349431805797018775524104627435351540955747566908003043749491087000908742931012533211060493864624475885340269231725080745252942510576544465869193689595542227560169972270109091646615238505726636862861876471193631193581683194871945627654922157721199097538610585775818380316746974753608618844644778825612948603863387412739512180714869200388063658649095274944946797670786217680805329677493013461138687426982089518645795170072405254749568542048132205771115456025791583003901467045219757098033711152382082954115411116707561222745306979101011713272298169489523833614653484901122473212435277822521734683409990158677323726615857382273782023322436904973685886033713920302316666805500856868364378057210892594937674670351610055418330694770005944136688132496868743430955339604844878889306894777377324046284774201532487427445572190183032634784318507393403388943971840295714422336046626231143334317818646973455092149354473906784024370314898186247934486584172951668268644674815899178944407918524864396272547312802714220187031458196774753107857736060114927611536235783663608573412034328808072270520809892164256286950593484293973247530901117336553816209835180748818317439686107533314544493771698651714854999162546801135102739875865014776602084958265422137807933763705304657567882036782694069949582003936274027745448567669280732313609165554284251359248081300025325852280157357199160406288328100664150025294965211328851930179227432878345814834702991208447671689065349989921079083285356964126054370568202739841329152359791659147141726059160325162465928645694091939588955681219013338403939715409533684580206236990749802156022787150457620170198772016860771551792433702312854496049242317337378258710463713340644932632070360995979381636999557208417353679259610740258815463584321557789562065230209650028589652253651308140678797110965666419671293880863789829851906005473753336404107532556391880181368525082335599080638364435683467749750933012366859228913666176645684890333777372001059482802441448475544719828141328006376292748441744871945661757641541387772354175374605601070183580879448854188517186688119438616028249905210471792490629670789728776437844100468979530885310598506699865500020542064284680519241827307717372224536952983211079335561242390530984734676791970164459052967249077962941703511041460011873499834568341602142178894530119822818853324534450113894659180342485838834442233753065840748991772540504471663943876213048494997530105274293050376304421177443174948915872557287856082497548363546799683016154353783073464937577751474863831838947278432112940615745556720261430436538726277595009209741947874051395493703389207627057684404538993251327015198799883908847761809230983066979398959690925084527786439256853992971436749966290595795316367904652071687672797958439871302733743278155041939875315248755436228504490630030289463151092076533452688342452363384260623030560212672138267073450072117256675379211905201704339550245768675860008730527642519514013886558390038063048915229540960468357401140485519067416796815017181359376439437063285639386594718921623155136295946140071628342757722523651417000458298919432474477862263067161750293061631896664990876018491235788270760119180211992227562879333465565154599015376199976528158015446022135747818663319413881976523203968249861799349259032933561756952643191809176529913963279278347749535437034752407445816250595156993562402693313726762137250484046428513753635488814489415513399266859997638291037470044029327823198563081209797412761207414134349944280961587619723452548105591378080218345395650525371282442550350675821780467609835331021829082488171250548211894712027744936953649739006741851561312345472622126104521920198371278422765625987758401493906679140628041765482386581989650239630676592642693207792573636423308157631214827388624683539321697645379035891714588953005816936553028724312235271740947159019751351003081006541449259780199230835369198123378675717593871390119715468884552792075491159875466879839119245169158596590161913199515029550864811845597148177432983389093315930564766778825118167238550803415621199081948709619280424349949570164254611190398904010922356412800443586817449167759727734973119229651051916127459467303556765024698306812485182156128576747498336409196082781168163689690090188274561472798604031877788593009559924565478312981389526417253125022771704074341611245452782668526356426054292335631483578963977040682078648726173856183913549261697139621692953386227277306297009830594947411705300927236271293510578335094552383430466443144669495838920886862550828092332983466612702089686975780062168875220476588388697229735903070720358172846877580319060219929338138328433178437205404721026854189418834283493451980470623950167081141843468408359966288075889082656969660465661768867562738177206962669881501545359158224287043677826081068492692576180501894223440591103576127407832911949099104561815654999315922055210560315447208651703634734553292156280887629058366301861588453409761882049866306038201622456795792832818745579092799694253414445375232126493055710730629867591617489557026343116983746377341156286546792399462856365146168636864648260941617861343342484575992243843121456142950776779831397100828353429824112629243752486060852646142537769633018557328522606173694060830986900291736751824995753661086429459261770763824217037951625202759590295942263813675789749898994562104629693354900396016837158717581477034324505123566443941680748635852614243679227941197162563883954364611123337156717168823848936818533145429046441767489950898129475734508246097188475373767527304075355034664912184212382245468500677475024081508840119192367310191664124282944415641233306859935293176527336304263526546236722942529884924074688603399146119617358418374296722231566518196298989241066647459566860751195699689786378217060831358265726296549553282909178293473080949349436426204456983246574605197407279370286885675798648323871138510571320852081512970818325248169783318984941461070948208057898461932100799198415204198054256628355090842172305577053056918384045392990847070963018380836098196479390070047499461417182195969618881697746120358299280379205934037559809582793232807651644135374583346259656525462727999946029287636320787838903364735552784141903819460586517525957213440967765917394067705899534589533353849403090837243754569042688274323216434322159246383263771241377773092387668604247813450518402245557493781855963341844077994658989092046170932549649370569219404874116861252624860307099480072472768489572174048639526307564215972377628574018276678940103107315185197090171801075182705472389567428417163659064788913875465287424936034941925986774668321903439685449254148101688043230661301408743706925405358273386174102211173525693479530067251005295939088604157115926161202508821569847411581536573702799710003473718209847405673109436821078947361400688775041074421164987265243503461581136528771365457745422413962046709370605382240617491250564867432883398075263897577072171360183595569697841548870771628537418016993137803645410100400130202791350075295480087246940314619061748926923680630228296885288561983159695326727637960968955141900505352758898705612753200541132465215458576221696040528513729407766397789695190244939320274627704685768676554907097906402793754436302955055482327118858759752895132500595335728482975304565994873687492527596364716170043672548952038747819992974603511907288919108474831740871848687854192819280007289677938545498022585939284496344468407146101863383254398258851458650938941311568279663164219185886184553143531897031087173376570342076730378553198815020412334808504880980945065836281828946785620695693890113251320585506770229368166910436509290537925195166570233167648017376542588484335684840454268980159785027269900946100460003270946704435453898444624661593004027555466656582156558437843989840953924665769907926603959564560962996634097860133155840990898823068760669111203295850208747412656976757144723699032550718169892253349127903196698823186088810851542770840720708445373622398485434250352509391180989589420370704309284631642429230627799207643429866374839081221069529696442196625086924317637373251879585640078206318525515695130908432571884644545614925791782345025312882723917901985464277694480083193752915173776093514312365962342041612789354869076294020511669487270167197990744345379400213988690946322667774677003804260648194871072809138146446286099184260995886071162235788562217053508332744373613749803380823505796619744062907974667596363161677745493455152725220963741041719856019561056011187136012406529632779084897565461522235064451733720175878702101266151426528954427514013859737244136445831556359832632035769754337835722416774552252997037229789669981532739198200553878229359542282813559247063338283844356515349582171471944061596380784112434149995621069680973573941621661379480334043594551012041086701652191519297820707895092799131362767000673591076160197997382568339794524612251551642846820258317967481945179370432024738832728181532152617669835255717176525851495530777076015789012669905955718326077575948891951701341872994032865805484243910735454583697578980545786142345933014190325366252740649893927897910800211477494998280173061215677224159724579784199773206185203563621543544344037688366745482789288072674918819687358395302003243337430544416633664717547483327390283310407585015592121741129285447984493252517226966984240970502041029011250629973621877699525923987223400908518308560881531193413031319285329808821098273486454351027858805167826856678089801706798699345894955128073455631329940154162645422735954649106411866028600451323516600503316518407565216125599836838417158113066343249214758563501525135715809959121276544174500144559536152498574254024186679085807046250790111487522545580094061567473223160934355954375596598159272857759391685310479397987637885667210603702537065465368791601412019622200806953810556431530527032477498220630128185442305815988501309397707644581200237441439916776304868648871673065499743143730056085454905428575026744707946639122691234790619821722009731770431637408758713644974042376833703598691515953832507156960381990320303302460210831447963466798209824679741503504255327964671365473506111797762342614045287319863001351209659816454104731963161377386944670370242430441132467219371071727297816552719641419930760961266485178320860149998517811165910437800894356707281260066598273436125462589741034665113964828913157351443644399210829561277359239173958102376400288341959550457901110101143475256902688681275661317803279781107068990393777780963823618539800866423735708725068990167657556268971377719084303569075371436855539376264446139235430005794817819940548047850424433457322064740870641667256374033521578815053464786446836029273795963259393034970558716513775868618514106114525115918172222666907007976844521718196799967455455581222718296736968358946645705381078258861234954486291524265076770453304282486739035403731762491265995143777036428998880331164571045709750712100063280570405410661489581320473604833754231763188371271898515181546316157022435045064075105949017985637718867474042690883125090668559562170154265823761379965317756208482812889256293822741902279995881484566263943206197415700577764274279828718881660014191243280346065048841022889063999884372839024380686129714605221028178051147992381588913185883461508421188166804712040074071403125083310575632592078014139369941032836386898524959472128899991772006733767418104540015484948718367976697271468647627194221436553926002346377141000124023650582987734949189161956956741644212379155174668616466998717311715740442169077753969607893609723756749219470051788403116998691261558792479940961451056017981320385410933069397710979473755982417309745186565925471751909848430610635796518604696686727721707756768120386289332674221003506018660206905219858974021349368030279113155017175089484667838802882715385809474761042588178222253337186859733459321571195816199951664480152824811053140477814123168133781162690546839940974925087693289104019362200147320393174143980708420628055167060455479578944315924401183862633386717321583841083706317579956678471196704438502923904255849873288184456502153187105446873986043070705983437568133188588104261746123970823117578869982784747173686996241654222614609116389014391067723596708308293841323589839438081214688703726651611129775882753896179550239651963837590355181543794612058614221424688897100197644577913523261059477703094880941497150683447081668265482368897255965715533569210479463079482230895231072518448668259755522800071217370460358775603780945079546933353720479535233062823508012654858000571393696617278529960551910276040264329907204634358713155593439285299639098225199909152113434868166639789979429060287484864305726814096224852652461117122538492905020225090623175313596239275455824162504677878396532160544016088725514020957435474172975198528396675794041656807994590885350577819751667597549156419049537179291704130224415412772585158704578565655428302432609859140008388971775024839872697040015311264543619718052838409135521070990757972060048616819416190625081297408082882600251256694864986603728262285314777076250518982433808911328389915916692466222457496093065394696666845493996824796544462769359785568677970444664548541805963792336433157454540563363061284340009568625141508302532011865346978932999253966044739682267237416358447002086953540606515995943873909445826957680050001773691999363440152190425099171360261847541184865907034924854874494523460426375608163209957591683930055799001493209922983037490219311304673445240623230491081527036442004498979154929079722736136288886524002447220804422970924281264673219225503586169028653549996112087838989104835302332924062599788861374797592174370601662753075790779947936442167538205613023567062284940188398862476174678605452824186917020966535141887801804943945958160080342471731316246002272804160039424731842926016970417347625294404051725121656370473966286350729506805699392612586215907496655105835386276224015226959726343246529241107347735666544782681872446728225833456509939517515632355054680633296463475027405857437938671134765432506190570363979269455028012569603914833162655348478775094560718008614522310443328006700545116381359276229988531418093778367979017081624691192175613432279010471411339340506889538422447931611181223483611514741762129670659631096836396997382630070820731961894075776626456503550351729517101112606763181160080293494592286722095536772956374493495987332191908284581691349401219481973955091424053770279237839359669807343890457611751468937161277374793014880113248293506799154434597371613432061984904545333912909109237114116082076562981654715423608559717400352714327440248406353377042615774836851201429424765024985340271852784427384437866981838607257567388081638327157624759488514840595424391097007591225707131040070223990328790630702811371900482523841177060533584272465510762414735779257201328578059806178278101657622557816207002209523076555664705234276938293041460598783130218663519437308306513387390920616774917259991888886725209759807287322253312768854557028726129406122906540138216486512830267067481387960942608449393661056980039351328456127602004478088999542523689375060494640418298695729145839408855165078633057756774552011876594821222745221526752262014419325201301029373614927204173669054290059278407341221633963599177032766474773843868600224945187387816535260425072132429315119191450189123274523706653292415311010154419321634659951031034232535535870565962850971512716339432669071052147153694692652432000998833774509026370360204327213783481444071063266718082939961845528253179730352428574078251882606077370874639807197450634056100510736819913735212531249904804087771269837740875099397562185570504637819797084218903437516386263899375054454146402828505685442943659207729428934575586340450905765752092817823003271009017006595474761005240375571013141073558807854652422274756112370201414152347491308189564459661893174506860914336183369067229619965919710348995797185161553472514227380797190022131989634815871256060815326218780223322479296673739305194354271727587414143438218588591366648407230498827295891430863890213993440876220075732199462069586507186060764999996778541028904488955070832068944652110319348357427928835207965824304275538757278510246791097206044605861338348900612797301447920343710545567827036220580257998202203239786660905214720846692249269773554129424438643897307976572488338716698266486058024475143467537223223421071780774019941216018234980851671224978844071223554791464864584087369320866870389366110017162085433840079096163836771945317628361223676443145218651224681911853930863864845555261542634336761026864980926262131639846827292798644290236480014675582281020948555825915343328214285057468010547281304783877732118569196663174932869758617827785710295736516727316014562718924070238556749972545262850760601273613927419811288989613343495061989185222122183790904619351239421085732696470535183482789626344746175975189149549200431500576885714240344715124037520218723098576829121172615378754419321477291699893211187781254891096634249608846472642191933909571858286783857413281062718847438632145181065820354367011320472741890559948674784989003792462275294472993586221907442010092044871935496711985308663583300254363599675195418089381899210475713764206126839058173081545414855496263112269179589842021999630858504139766538059425366843435274903011287753539777221109342232990554051689560953637013157021398835538703444655224539025968783436231038213198982732940053745533061254625213475143322114120671187862855643003703252593002422880191984106412419567413139356281947453352214527257002041702762956356970680092761849749683836306977108656014455810772122045712547427991601775528366583117022605567715399071068873667961585177045764322037043795313903261735319688326956687603907929141323967944905304137731671616528468353360626671886619845641456746301254785050874627171750062021343339818763127340988789594314121672617629168927763133839695191435697660010360504030932838753727391177468866796738072740117157295506890631974148424557439146003372509007430736994035331581322555153278644739917060768611698661932643910081723137305450380395070993262095061228737808436769981719149666213956430266073256398260582027118800441043721471141639495890334199163386360893607201140710541154147155689695539215686527630128385236751599158048794641794584361160118372193396615823909575295421957037883835141468520877832863262766951734515350744594700555617913069948343224450553628375689775245863833302017785027415873601875570569583479715863889547067365522615502204486863201579914718452977103962269705700986669798189741901513598557839197940043227849624830736220553694971327231377807537891545760699496382270643193784521069868078514075995437157747283865406625177137414121318803739527340494351621939042546486491381032876095531232420121152082210575827490145631174551385741306154176776128665010976068887197185486051044810733095036016587988375110768660231637041833021914341918494668899512243642644729950688575158791893414942303072980979545230831766439440995756521605394643927555178851425772019540411177141913065430315807427225036435305963729050503953492537363747150982280364527285069206280162131874127612842015571485361059942336367802035359614464476076440138449738195237040629176337863875830436673557998860677710420286203753851537486721168715606418212266665823794365636250540177984522217891286118480602699957247131941117244040801158434218450358823277904133800640434330688659381077283682343442103988090013284471705553883796009464709622528068552776555234342763015387526128303735193148041313960253305685410806291942803853909307448254513816356573208858391173209737829449389785428658761689135231246988817131456415259879756651231203114937871399401287719285994589084332150472963440955523984348059671202920275827106068975999187747650612533033521972957446654022983174539832534614914878999987414825743507288630048547986785282550005835542004424546920721029710676977797169210174543828679989424218331734418210676764876746235173351983349994827216539357928805587360699285916878982135322143868127785281615988260244039727841193453335494018120535071853065681072910321618118612798902347929352557208395155867310420130455560247271831974554609834913615442772716435338050544281018142366636063074562391079690841564893014836457197625800605580255737461738874873883022478497402816151454542758631473527107313138969193535582622361235011826232112540307715383144385141381884129368494566718996711704402511476233170886642035211788540671462758719263949340189348249362323565706089157209110740616296402550663632949233638394752661334991222307435137010414519816767171894735128581326132169084287827213767673409794308367329865844378651263937550631405591562988817061990999570177765375805508735653481878172404453358589226008806067379101499775945517537897732467059031743587282980219406429768441616358538967560066215465789766932251635730920211102301838383580095773529746805037678739187664138770530348770179004540692209050429372981357035478717143682122634059883303827048880518777331956071036810851817312469475523793999188174598993764617247839453832949996406579019899046765593802814657154758099341614737590380043441260075746369291910528397501287242412568334696760363011308983062354929375883512489188327942560034415181486351250365739259924413762488083345382041224166212138579022797678388748037286140054269273362304132574682586940483080953902088552157172273107259663768173988894864259557420490526640815708376858938901680398688009108406632294980410647675008574227052391956286868768248696610599438082033032653199591649926096702079351989575594361243774762542592795330788187276543486082223545029296662657574142329841579023591449925170253726514141260822766992246401628508971950599169966349384588169958489501038579560705621038997367227379782370678467707958824998178277334085682653748569832300675546508539901889200012888352986246565000372746359717629259967261431415382320881325197396059661510163303571272958249186150711986689718443452781844684557513374595066488999117015838201041707495865662017959590020457531069952566139085790769768214204548080591772317892724083198251260621833410136781239553748287694441803410776110683371040992393691042548445354568676584870519989328772235865417097664479113147749799911309316082172264519137994264463667830811897245458191464037473274080437505090832037572599050895404537001218450614117907000129200543377270150345312517103324067412825657991375448648666742646465106839134195479172990999710771129718676757081586638392517783635272590844629082335047860018394800084157364098395993900684545521116514614576566156646708963204637096257755075006046576906113676566284896751699165711884253293956897765811782260531819205736211101419148123519799341428487785882038407795980464898110417490886014051391120357736496606159857022844032444543811719094295646778662182248979414959094591862491730779536481162187905855137914587485757312626657791089249067565605006761564291544452889331281370565086701261595448813628361636512389721014826048305040209055918758987750607658248883641198683988083889890651190451874804970713715979162806773829617418952658004793598023272972646550864152821150719621137845168821745442846106894644621341504482363605849088668519994947807839313351147511241557752738653466497242451894958495868845030201347030657440341783005854059264938126185825723919095641023507586957221671063068479593810824338387038088728574377618007300406116755429549905132770415201105224453671915398463673760756729665363358832660232810411149690869727661665395617000787546621815687019708941443576047300832670667638735212585733431966548961538600857906497058346013002930713728065283470781794769204097812836260023911618315836393030834461728810105284628840071438221822593787915499811663638169577466753233767208467862850227981282354137815603370377339791271269965970661441978391436751597891335007644846141827871277081752833762767189373412112515843780866265349888385030470340370746742254620534106040710711943334912958065245192180447210440319671323980285552244435634134747877479649236716007363635307030782114671709318778626880617897210982186768011986324913535889132521722416727638319769616519093981880910737645369202381465803500557376642896767152017997739807813180709424988746871925015184333173790146076203221253231473268283692237806076231123048993677049705516882147690273519793428796183409622923907538588598050137322869769396045319615645071849924760176944792144461327246094586018328142686030827693649124668130358607024766085091361204049277039908017565692563023726348028855577207458414442366159834513646976493656716384141345358115961211549033886036409795610426126853651983833899533780742744845924222537213227493697821563734749936424358028848968019877471184912759632761027056453870070835772613407735434848510490315010402984871389387551024560222394027988835624681215514520684975547007447584230337228885709845163858316757140321477377858189753766762402490754957058634602407885120025252046659966729424096942334757137293355865161900769366790647642140529036071305621560947461692192831698760346885489832594571107388095150044004512493361327978913837200523852635886958021368135853899643554796404840450460071757231817595662407610111873327984686567763459120022120623376015216725818780895031646201996725551347117347496115883227528133330309107278691204312329926263126081727166122650260356838611407064552809268504279740846537775198290968759936533339918549994396439201460464631761187348429228578766136752865007876893575455284966197581261407873272019794583616730366228460687523445456101619773760376487374726283682140796987932243891409854569142649703842767727216168572273809118069246709693800645798076852306305809160437877983933291180740420531224005973024262071212564342444780422321611605979070453291309800170246445294830575579063882465697462152805465469484659008378895051531813328061653497806504334779550514768665696290944776559548383456837336105763535119349869906432873737645139237763520473288987590920733364680403622897776670656820970876269419039756407783981923283092100438344658537712896226329409223121771593902191549272171800031410581429411197093834632721196450739168240628856030586806246097350880548023584555652286437242942986088990621418002871744000956791700026243943797229623981904808118202505934327666685411758314489182511010899776375371292251258058797006897182596322369026441509065824560839522677692582284668794585376662656292106125319199300124371214719729010596193412290855924312709483058497459886378486756054189084928082786711837341437274779313420203892023381074805046633132799421039163818215032655049884998226221132530339144484571916266691404137424325880228308870317295491190767336106373349451429139630354304275148105304360866672852610990464434028090209048221172971952523118512155357488360030160219807544606517138932079475049963925435718801573280018303071885727696575152639483376674402312592739653833254271346236233906201260998037600992151111859919316696790247292437875105845177628522908746448096249249169684270248228050723361941652446937979905801149102967782091656321565715062080672469967053905098415136916224340984976373253645286557524893859143305353404956924866994172860325872922383963441839116248740987461101019307844464088557412496936727741282234325220481288750367192736278417995190922264387033085286687648191365792317681012057599894637790487707204901010003987686422824971326375419180386390837045608384350384111594035056305663328670022085517662366537472003029290726626592889873392207257681299820992960435841861174058027578692462216997202666279395823273155590195792020809997709871330295939544078761440991013825374986619650249084125244370377651287056032693100780045027393023717973373837433940815613325594001055130801789733072472676848864109132079370498131056680328104157431123707623535301670982097439654265860028229171510416698815678250797382371437176322628546414151602778296286423737166727657175695820867956084822982994966635909110501667417595619194302695465357067807707891962771414938605990788592988400831263972795195459591415698728946158118124617112630098223559991751883321182915690828067058015905683377026188863369150850157701267839689730244795455832033566332784596306906899416943374784178970916509091125953035069400734231049059047674902242798048317182408949284598421621722802821727344138732966549293403360464562430857496653321280473698447024550637540501067201395464533301523958505774710914203426581693872458682224605669527545402410524479843693154140254623302052435040461957738199424893996552305150400448083706159455120938873281240019717155424003966192501440852584597287000257374261407992861457949968232067013688520212426176058608061889655951839134622502240950770943124136765268296896300562894605302203260838243471831638025039172668334546941977054503010128086152599300815139721604842977392402040016367000569807149118060663855537669633168009261532734260461275076141659854392602666332077305710785238867442306205589266289584023734253113269631913193170657443484129488076319485950171629775937669917043311028433316589086085147506698477002611320731806976501609459468748684169862368744658012547034411729585742099916216925327554010673832843516754954975319779322629706084833839146848808257563492196656194264266141744486332173168684571422210850548360398336507349041450822533019465679823591209381854402666489722663486290637638416988482689043292180865275718782913330869093976761569531442572155553901039161927116508180945712560830376573705812483552932721909380592117993105009206559587062250859209716134173540397762890898013457185695362834017517869132045699519638023340744283407715699905570180806179754355026521083602431129976916115496662158489669237895935871392001492818730492372262031791766688193631243615882230138048494581821452757916195811040863046326994363007496705844438671763972948511565996851358656686297510556634909193942121623842829604696248890700778823852705589140629722918726993547886005390686356797149237562121480099455138748127635702833706023844560972709300867293811458755953678127355678324682364065326811686587526282189685835330499688286049487954819054495583046791855074556218824451416912933385974271628953606115533158216810708106194480473678954431296799469486750874736257647665162825781406030332883309709481199328131417989412663057476744699273585556098174358366571954476495322984726954522884720459641040626718298883096122457301462737626654039944535028389085568479994123581830373849468670361494122899857462729729099197426356345381069203674164937366220195955714887964056789740000136021613103595021520706156122113179970091069637951235074403813059387669147973694728528364106109596201286125407030483514115767197608365405361910518305499170689225305216589691511211609646207414072162714647739571596057841724738136885984030887988787819479332054693983879969366382678371004950531958867034222224542560774980132931795854909266121122842076768362427869587978902063767317879299842028552398822743523755131890779312398057577247572007054281090185353499093213585160897707996789180866177279489614136876526713868060534241114069739803756825531500253890871133046644568294348873502384668197970219061826867481447532485475075319100915786637842120466261027319190265989566651321354389853881429308143784743793591541640220424507737524293556962814722944566865498866854809975391220918190431645072900540871547039598169189279616485786255914453708505915686557206252090333028623002745135800194955022659733844681040051630643131207913009389746907337991886114053656018769201401968485992065087553554736214205390092022114641337676763878185636231250724626614477451720967048529008672630380738727836095662801201378453374212401630689404437038335330400665322308799647923805480414111268010436970994672902808358000822132835302173866572601400642105547998528327006184251499676670492962264798189676874962173400299752043172949649425259923444370091630768060355269123328650179702203002639145439539145943610372275301567778001305825456677620003061470784990498666557961625723519888911262222075778550461796179059433712378106175933240303783707047625216525691878948138915591042010839468406987161572065292862098288045823241367543998746208134574061190261538326725834875597644331583805991917026306340651400646414306855489494701729218628739596032250702099767121580268292738152314493823151775876045023380525047728811450258907266077262239406949864315046344741922287902931228660881123222535011647104884525623783908071697199165733320039945905151638915667695043302438025710789321225519670582839309107062966916951017531486963263086310890083625167723517192570051049311400002668685929885922295931191796459117924321037934083268857490105524024502347840496416090877642354199657055953523377284507718101208986720559887553725420754570216487569365279822339919167945354530535918571223199121520031931173797766347101598784253377267620875875310441061670566255804778908847489357865050674148497658358970400880801162522808502305145487285989814663013968882973108610889393710200747127364064994492730997399751436824549477164898722500982781855071641289867992215561332125947683432190805500022334996954840646373760587984059764752228169592651573198213039932192865449593588740206932978788878342062420738054271229973938865650284342941954043151919975095246957192822058252344602683663510146026059578955174807778229286680320415151800562011419644441455009962518880049912559614068776588163809611447244019358978695497804690686887487918755336015125061787277651103171717885154294744619013271950472789976531310913067560166073520151849801918559210400422519265329731001322735091476298492794183871767666197182024273950417924559492465789094293177051442267478674055251516783042252851335258063033373457922294486303247997965725090236478481645296202237656488099878692997376811239059295642760389054312052806936194985859292881194896608691004580440047264336506268690954571513975075399869010137541569169269850300288928978668793695238554409242941903571278101550945166561040904681305150021776073752132642928741571472959151628199977439693087272265696500063780673231845327179276138905784477076199679883388352986682244185070606182011399964342442121343226116577109577056342431453735479706511098377521930617855779688935317836449559255439826871194561208295604474242881271647290613867000662981236340287122845952844045901138948121737106982738898205978628125850045549520083395811349187046182147758635140574087624468140610261112671376090523167626896104658037353945913053748665732525231167015236018474399683983339657936418830356620857466816954187146337591143519562177948327851188169359516080670682801443986545830682360420676914988691036382816089511889489809015645794413086824886947359790546142909061917323234578006384045095297930184377131034747773928433667216786025977820865179987833814328208528749962463813671118894824644319063025466878065912304474408333167769495165784076248039294511261377540400661244283016545972500549478885367950306472165751407456293172305456357341485701599249690602059431350515774316590969996033899152164093724129794016825364096055896498221492459605000817919744549997620026254419253985325760378055371449111857250744032318907603099322761083062031801391974716652973907860522755915749593209400941332273423293861639865255700353243857060486555418713878852024904795081916018141475854580992937048434350396876506083473210223342885662234719321306339127752604330442463252259148419778577242060595201818802368740125914943391974088685951600478671736291655580305797095318234112940385866661072189017913269100233857027954136302952620923129615861684153021863266875639763897472116613031443114202621720026469599303211232285067706078511171161735258838583390594489896957842962395873337623116858334669803773351896842397587347821179794765864660458251534084835878656018873095868903303981242536597856073291916363781073407854854205762485145552899422057629536451006135191374717017550152554949123255864524941586485981481776541950268619005763314703883126262557235119687931146149634188544633336043199062478871342952226169658686419396711060776196068670606638576505002053227525571476266021451132840344580713056603849166771047256647105829065330956462462956297700618628372003898820950898531621259564300916113748048974426863008128837990659332112142937360550545623942734492460394065640291545619676955753215331257628256399790136120971265652799212438084575609442209342246289890474210620464066060169137882115605063941757954848112852785198274436167055150891631221823305120679229084631795857353740986009370974552661725680900490498039534420137004207483603370100824831362484366663913832209575424227939529166294114271038285080388552654702735198395973547685753191552709045090354906046180801730099612470266371967280743912359743268076545931930912373778033952961386763188231401924495115553538882381817079189039776743242547268726446150075227327605808738938273944133653578912659466567504826557591327980605193556710511140840658905682655637181475114981542854392371890737624461852444325927468993690157133077198368233079629719223045315411220752116748083899083887473183659910869290108095603237115335035654325484363190209849933889610920964041181020805899016368560083781797875602892233705822716872142469020822522850770032901658169151483354573670847548736690531233713004878501567645577549599149454787688391443769654910029596800572911561447006553393882211196816099284587032679127397397795101087401821050544459536371262475687036053600554303794213330975810503630069073719883543925659159553049442926162763952175243364424766004041322873174042004975445663191629992181493214413120422776622036108883566768157958586558957330261738040603439822246949033238113033125214084060325280074665683111014541959430304504415944299642810277182106539613305142513662014392277847951617283498130813401203194513132275453866839112712450699939853294818303057445202611969535219572295237516744429815376318080065096245566849726667020577917298263983162108565801500766552630688199118396044759576683540679904467900142628309926325301552838813119628067891427155518251344367336389814072133654224769964833018515462493581618655352353126573411016411966718851365469979056792619378270220027831035674096661110286316733254372004660652264252452970028485119147520530048399587208770655039388172755146545331503278896215610421432405404041267332687023861246952830191090228420312600582342967200978607590874318303997048530256037293489113552576926844216957626722259529524652806557486276042506594823561520582918275302950655316280300269025296060185670038273710259665804403092946638210251288069973653131922620143188496677459189941952653586666363562290823925282556145992316688532896135121760223381790134171287575367630460012823185701872934738534371571697166748594800396752834034006580668448160761676637963863064656012552686426919625950790183289500077467803397065975717656015494230970613855134788753264631789340972791749762063648564101509895830574435903082095854773268179013929547930568739534357644136707985120965161407550763902444994842707628934660541488385549336105576075118396311200591600965518404555569494868671653228774465614407771260479734653415719869244773708525422119231768681941808652964196386244112114599254384113938682311582895742367563355119738844754161313945485720611151827995049425058454056240385788826780233202654366024738845255507945899952611138014644118123042711395044049604154789859042635127074887055026228803015862424237167867814458453191904330859079102158925576992580498360286795450710010255878652658966333419252930422031008920192277005143803516306935285533754254162563595278136656222762536908107502752846923930396315113312666475294183708661130462609460799967356141940435832664831588270377568434756507431278441387913462351407348772780866000165261347601760436807915858819848667075346905437530523576854596943631418757258149880110787083513858797997059285374573550532973321870895848659361065198220920277252738958106265887599782018639550966176256312833314533768547708742983623332952478211184225375761188574995173862043100907995713563290826611621785796191619167497868440266408293705112624627812234979210954462709322581806754392913121399542114517042007034128398467928423258872596300327149575569884339129469740087863167504998390166452832495816009842943343928291544952254231523370808090007357948203749520265852475072599041125884849112732702671810056621960787912408975217725542868348228630899687873242966639959939358637273434780899678751008213168868777675337981389530797736934376424237339681272588139918035437614370896135208436860110124580913701772131083006651944832540265518250236286302841785474437684467971039271953016653378560022431359584337775174589468818353607301020473275795079828628003559626161105996036338807922591644028186296241345781304050060002394430465343692178185593841113638377038177026087349930271096667919278376832727188264123440894024126841063698507972403563571339487351147584878002125047118800506589457661689970716118742064138672072086331948454670076017732913727259523661255553410992251019805799150578440307902588766013423005528651495495328932330817487445852363301183840329422993865353263918085867435895447220200825634685413754284130266111052910527753758496622560057980227672589580705733565583293691894070037810308030798203119964803551687502168209021611149327645868751604463477732094203302240413492644878620782657049588498991272669054474701170357339856258809144362251187788992337075381392251182480984382730438892373957259202818991410242837008173625680588035792538197692107463591461075377879741422747478715324342735286833430745934597096387411112927298143341004197968310065486177639931769018240432886962526993611457825090929431234784212822612304821949866380940769487874900254799186145115287972825055214782702930862517755392077484936458951244406636864028967623986918107126304725663934888540281727911869806053732990192782158233939767391298264619908896691164178722109261505444535406272362243480254871849564719988026734555299727827303504253419480390536216108272724956244949592101038944466054999328098472964010182326490096533229471169313140523763993946350999098305928162721623602852386532982860731247554711746860949094395540032644164591225290724393715057906202639468691014502146589352502460739353120578411797093988208589482946695814363665187189598198765524225370369139830779659692461420061319083698748147134160860384364146351581744743494329317000633510702378478525564802782569525021700021025846255574333103857358835405759879278080210371667674036800255483249138745114591379444630191223414526696389159213642708575319464955005248903603949345875087448420141960011013097846768215696579052750429253921568427963127991439102497767698425850240125931571237758378567640078345410018308323632760567364557066079347068464892370347544239611499125806719037572083503429872479543203794564312639158265905882809486884663161630465847718129090876615584747666260042455426911018423755683683424632290855386731866966718206690901978515694546535589937500731261825653634138578795603585237529338204969422838753313144397491593536836659545540667366480418148713768207249536401486225089833260986422621520013284892287559217419652155654769859172440708929267948440669272164074706323504364152755793336911528647977904693981687944342490566118805254708056150380312925492110472399696877521967789666010000700923127188003303012581087726490848236302649413185567918067228903676257790063249269581339277484843516726442066333281478465507592512141838728292366707234130022777900820864848072103218878706526422176500931195550625973789874457423073219607142664158500910129177619734366174587608129465614675428303069309989811266580133352945463281534544182998616627193762421335204583907249396995294181218545135766458752499981689569020086760352852748922859910972889259031193953816223906384123250006145235335518543807229623214374933726671585696609705572515280500208520493665770832582823002399137758295672631589447725804024946093607656046712268950602414367844554265064417871285876125389577030041848614791822534645543318553692762255686759751531394129405549325868165478925725376045525545376751501857066471523753265188442519079323316914075440563977502955453447863752572219391627820288034804326651325166675463560168081165089013230041967989028998412820355636193822057130979496723804321097542267211101235296673102659819254291576968541201464130750480575977195429165116683366856967735582848235532525021072267943955099252528196629030675947871360398100403893887124798430428075415681436684476916657546412420230557990482784770748624712326672310888266880688673181678242668545979245735782498100944635477666891805466149932688667604612227503046866424932975863615389174921654374888715634564330941723310207897998433624369699997929737028155084829325406864830956298108802347816337417128993988706560401928885050387011911668178576173347148025179232329741109449625015288008372754513587594105803197342655694924501553634292199398308959034006981785973204895619633154645832838056743264959441799394685796835712573183006139022811182372213671164842958584770994842975136766188618472802736781973235502832493566127118987693847369831628663490288258189880101219034567391032735454150098130209159697203521503104859984417526466513494161146940782922026137890810892872084950303201534190030153049610720576251522101852421431051876987728128891221215119112971829533223195187149873593872556907782451566303482767936251237738793300269520450981561458350109639080861224802960005925940028712996599545368774093259789655108281408941627503298488053306711072436236748780899713702433086974962862438062044166692542970380559711496563500283737326912383388609522090173762934855126673774741776241931212155477460588019611331074133291258058672495229630601057183942986590424683192756380996519078251633428636989299959730280450556298031033836234077767529764639270054864343877901834128184897398100282823880222029457799655012149477257278313376794324709488319295768633204034037739727064137265857667320381993241172215329622454053366005610161040816935890184427613606945443121969110892071643692480415892161497659546861754957942902727327915239133111172091436223606333037054046046905769506135320374464270599677935186159825559426286902329361414596441399461224158540700272151355909567850531982879217876137851611490458997444437275623322256288409881598795420429802530097694765765322626717273802526368690244257428381079260161636571638887124402447763746614384379914410239775614825259707400802682331359755047392598373782637018242973640126227111560512397260985678533070683006014319408185876177354980645667112399133610759758469870387532274348678410901027651738720238516108528495223699754578841906542084570944079445770533713232466828365358004772413191619014225633373063188745810372240802613816887320568762125756087142295353289223158633159477238127070733048220915434281023164962052238167562386585387098888274992412064111062473350718500258757520583166095773083415631344403060438531870407972068826707643725578821260623238527238455406700197094101556264662416453092333807389755865619958829519376240405758734680256168153159926846339498282465207790443673820293752294148985223565952090313792290598978700320286784726499019544102046249626972539185424113009476351997722360061462972363759924329817740978508670624687092562615959101916684769258642882956374298212304281628094828577763997814060642462204143478970699598048436059207527168898773433821135059043535563966315759575423807239523003297309437974345542258002599283611340065945553191747118993094267811203977916356379692428745261657379858548279375607022907127796259638890237022466998486499396533669828458117343964216451832811227347101511311407131259567562806966338781392603204962438235475817231747589351811534393033000746815033619307079235419124767912222617875143489222173625909564960214234699571536468843044811325835335607453719733662248868242297629324406892006747079410632528127918882444805326717182369327115557673858396369857369971996101501081171643340592483045035308947416841852950612606790958080827262581479342607648453321001611524968581581399143845043155299525511383185179433729698638582913382994795601741207935224307157633487339678219131079771324755409232468629654546414578147775636610947953108861031500280948418242613533517835497622983325311208968433125793042596396214988784082832106695688871880751226816594276165726608629720813169154546926248617895599072169607390020002473189048728236621518522626937070927988242509605861704412698029080114487112644586749086588325215469267308055475263214172570662855228597473291582499632323029909850058089144751772323932219057384931626575256638367050228496819887220149218258804826457191828588850394332555602832581963789545570268353165920849360665532213473305899678334463252376211376078166983467583659910868724794631802209721685436759421631988833636960281572359925699081113828334643521815905957843699938379504901940217973938533048012917409676150283140370853078021223233898415765656980617845764911259422974242737646865968058203064628264757686485152971445022732649018388034621423663042751597592570023407502003525603260467868721865158375782998260201906342818567623578978583616591055626399717389584130554214300604605580123355137969733074890578044007985766829780217956457793225140191100222027881267971030269768098282308690533956306575220139152087340946761919693513988123985177759225154058150509052852771715923799043928129941184645046347411454492495527513951448571921036096507313994308652667489892506695405100343344483193241925929212168824305829918698818355160916751609874360658351245050907049364898645644571474481203224225136117873934011453186776774107935783403669806510272145111827689435630936856061981474845926577780989562640660531008762203758793979023398172869425910448863338915367645023475951875202515338221605617755018433014650645319292941300130707085800896811229048414152092383328184381937842480347829090692868463504124122004338588900139207143089279655842513699854355420929700820016184922232988236679529272100346759769492160126414053781840843979014245097001430478964812144146539244877216717068587799472236988225136181939759215702579385173177163273153777963074735593097366178419076991543930332760846313832252670226172183397366429630792285143492001867833631033277801781430077031473411777435948961083966821199773188221398506707723396337284560018630406684233023262031859635111567753813308847939393690541462762963352460453172302529955706700423636351884889027806089729483114049627456678492870550947838429713356041039323787872646345425803156184914557681012689907942940893663764036735670850064008087645681973389860161653080183466062631813735238850572251434082242639431173605245201217535495704709764596943187957800987737914212660370800359670593244056297356254914101719104809439585278544363112406377419422632639906056414448824593156181740953186988180654333165318134844690705421529274756789788028543434803955385926186886510742649227333828238554164773038523568164834691407477767871455342528139833939793473921684550530592577110332886218822790577482719671482185875199176582747905580334039818708751068452302905654107307157602288069759407217026749536716483491719840179035419748076529326805399482120938267140647396655127307262373937416832914740318419705178044957200361527722888713403445940777660112747101070662617987300584684583466712402109232205301892198106836396397128774848281405967680813598948490103982204320779536026222546659415457911293513899832600896804010796619557077919472412586683873866877709106618093840844339219174788310999882446961714758742050405030726518573454730348782125096985232863175834578315589649132303513937972037831960626876416087664991734369856973138139410018768546247369316173021445719453746875873645205741415271728802824725385443303676293003977763981160231315516033952642081841873486907536678013642105658624215811870834123053253426549174553619985771335401493295073067986348787110879239380265461184057333399673015749165437606460013224301711756188351099036189478118006289617260684239448827140507108883510691425424893738445264958208668546929656149158392240080922706775369826744695292778024122977886848080382552947129974976710338946604683604713285147006407271995751439501567362995596747541095142680581665969480621374505313092079703745211274552123221829278494106684494949998350638024246702983852944330250391263715520177905866050414968866184801166767399012016848858747787398973788638366795427755298014511581096630448877088773726136108862995420838030859134096295383002585083953344662014907568297658452576013626497257226029219992003952555565519230481782615784829273490317817415795484929958387991094751302126396581769302500541964209077987764721855154793447695837768052930646133837464737637274454549842890409328698705337531042395842907344663613875393276583162937275462602019514847781207605200463434764439218023097138095890518704202507633124381962568454732744212984919020337064836784349619994908437600755055194388506734018314078152295365068808436521650044937477490698514405878451281708384785137826521773300811252110913141361674542164483972361932115917555898973862947536280572062666520942741149946556919106552990825418142435516767234040665508747021941994149665279628103198030698251816929354880056225506766739374112363953635764901452420502249870319220894989389978767178491758442520558954945449666857228235925812924808476756857452680243279908479248017540573253765173839221947931860782172599626160584166721241466190486774107654186813041200056645478834311124116962665259113142112454390138871950938427734586383475434410250800406445833821505589872589456230609871465309415926199272546716652448711667330649779235287528209369454825735125786609184262444959098434580663729473491432601192509423063557373329723758466019436145449421129214517116681894826631908006562712825989794609713276204880352314221660088209006811554268153046430075748134250964258096122036212184059809388846713494326910773448469257151794204049374876862694344314516830311260234173254166063480541978163371121705365166888259264674700316864682850088543572821304284100273907061316006487495512774238333736535865569998362659237324011362244977137305504755210886848267572068337580708343934959643951963707960046712531259361191480929460330041183641754507970367667245409005106577503616652854190409907189932511166475678147976247458841829534053263142053916000754544620323040220886165711219372871450704221586321479945837638730294426090748425111334181728589003480303158880354090450427318235648084501398939418445254473472913311371852220975534727604516996528675203409296565216951426865720261573838376114568341686372961550694686774939538140400255100475374737240000972804791011110906588200070000659155270463056872841392128368555029645560519083989953797623496537479179800324323751776955353833409144069075857580028153993392406464339549683020960631819286319869432198846533807966266019817569910161025631570256979044951954273640544140850437409770135918163813578313957879606103043022566673207988719301682952191148482674352789289404217062858386865801054256564514452405519889729911181692271618820279665450175252760965773766443272953730115903977153763055545898608163197047790679209368013499255386149188976205998350739624788318189320448940130581975179047290124178494028387859820408324359740182153461814833999932830239569777483216983732383438625394200891051374036747051310163188991901262468696679062538586822676779617962916460822872211833362005101248775998310323915750909731055037200277106494806424351724373291897400432729070949528447049475471921847537714463463926933674098103665746318560840328750899471024338880213932105137973174415417974806472943715459757287761629292400139540742386659019428920847468903692781005021373930008983697521201660514002106405056014563781860100760790368983474471126993769663829043433549743212527257925076661457670781310426560136969884033031324024096164452062584351393134367735187288015083798607199068227793759770079419056773185421789831388419814373066462987909413605184217811410314389317596312933775285411669820708400678740777402734650530203123102035005849888512043623165176467132375023785191842893742809853208168537501825334599312964828954962902495400981157550072632339388854708611234140892363957805667622376364169420460381546317461312340399740865733837406268472128793631854786751364810468195882079265100549691462181308066707189325783477635258525165271687438749630112656444504098522401808266785187521695543621432073401135838993612201561499265651232080103946026013930786782456610030330021960196754173816827784791464135553700066424768375341073453251747056069666532193229899380971894773106322398013086629407248464756578745897797637184651342711161133319540818638683988771002813815480842338343909036444900394746747797055271061140542586080507230947787163802395097689657377254056536236879846613120571340501931119404185604191339401947870945807327029260161458741048535060923122655399404571370593473230333490489111196176272283391116400592565026792543499779315633859338557159191931924972056249750500317253806945106493074501833409690720678940106671302590191498345075318299099579595067372418041726051986966986824213737791575065787304904443833636866066535837683112036175159134677243205227317215814078606582015945532046679516821077063705202951775754804564269986955140246745638673521013313909100838697220457628806618382734909416389669685194604366514241182368045864903587323418924910406034501509260120109560147417724791201679978770676200272367759305707287570511002471375172438481088728381935207583903985033050579697623175477617824082340987345028959469799567244958173808134018625249363990941961132610446805909595370982597575198348393284866320391417473426530244901588603540788499712138242453707457733960072497311545750090108525446204802777696549224543297865194024307858241449613279363800455138837242025557665832045244087046911981033363874500688747374628432593070283578907164056778740810305592531697742157714096061979269527656128299850625717473472748704496400558420085703655749918151462986704914292831646660554693862932986399237734177065541843565780713218901338263930278416924581518484459480769379902029373518429568162175692130249729212716228387233737416811595183740533094370410646315980680897958452011836488734900556023038664156736130420526629930569639774478291701522844765836943913336668364412819608082916687661159313813349306393861235724187141674421800671271078985149655373092378945887582874041668990599522032915322266454591142186850032209518976239873160371783637582647149808886557660844622365298312290276221067039863853253859774218317197954430264539037890584186841714042997047330433370640801586923241887974662645592827732971627638750598898965603731336946432887637168781171928908442095463823082335504741719011009535145429889649935842712058368101980552118970361538637046130021581392535462979714921810358422414456561060229680251299165841226895183503079086631239448411064801605940673601158515426634729956949792544085165437041907882155464951251976783945502520846388493778820144470673219914640096376929120581747924152826317584718822002739907655147383674413238887595397566364252402155042378425637863012538986920124955005007700774838007774846157797325075467788439045291926778073242235280685693006048062865767223144625036590771900562885497980450182258231375500234152549825775916157648645435456122930453914220668966085472552576161660257571091022063257674721080144716555914359854817258922984980759962947243768696599969613800784493514152129393027345676406017824428293458444549513138832772141811730015437212201323672576225177381404129663241945204837015122725012444378608687325418843733424404147476574737107301094804270397955725649568722424944215022668733631728118360831017698769817178998761706311975842970891540695398043935887972283324857193577542158077649537806056387027744046377180365131515034928880518448696597069212019675838129301482483053892310660788641680464166410430735668213785664100561584444519776477502445138541901960422249072508106422093001283065395363258328547708610885918591086157388928555113140323694924036755193951391336405381123658002728010088607636401946887392470467180207471408302550107503672868377769007013174844584034699015920353791823667484548172833363567393950778340021567084009903344951203499264245568380767351110718126171778889010007769090225618502706874611711253725756075157503615591062547693744826511589756329421358012086062273412520949482456840044591447507118971592761982309120231516570911083831623757967402340089740523111652941131954442538369365982333850565916654288703699451230451131152894573878811075116812757950533161205899105714968244314682249085356773369563590867298273050527127401202931795448267013213987533918257711335921699175781441331824046732962789993538532773727757823940053024471191499792918828471654406106718173032245556746572219913138436266956298069394300037589712151917379254034648083441251747694322368189118036482035430710049762688965592515023454235143151245122232884639831909902974299752000970298973454410695006247981322804300398447253233341693786937045885914314496855375590267342119242419613487453441900222659364319905970497516019592218071300579119904010147609722922175013683657087389228183953746141426544324011822174646284721783503164230051109181384436629222824946532326307862607850400646488192916198242358491449989142388596424694570922487749755121769879977943658411418500395263794888256547403185524651627052635059127357327792932688635446581295793703387152900969552770988099138975598913246801190614844775522670070701930399240055454731129435118093509260851880362395742050632903555962184974795804361191611431469943050526548163778634758947391588813525946377827125978136202911650540892700087576149054827476772394416495875396596803176335258860272323386758315854257967633966460055808872318574049901786504501751714703874783477236452690042496771146285498846742154093848502541885066542442067317648968346921245852933732770926360980072375876037759847926185904752231495895587590764981848203114226867755048354489334028154275937659800550255108653777446798941527681734428735237702936080235095795223215725460934785723926286663976338409703536621506493547639384684273185810482676451693295505829476778556528952537379295424397216094051936638271328962411708671688532880481316283285959472517414665067806733122319617877111305890958356042664797102625630980038462932546896606536921372008813769914335722494581368097527862296516188353344249920004155561970448080106309467750025126593289069733861359724192051193861829751279217101160050492185553421864032879449717757096531809708684348294398302690060527913110577872616561166214281613425492301740324379901535408756067124383277559577941540522062586732454577086398795768509916559048360968957894467928349624466389732203405410471271556030123713897390602225201433001292906660197908559324428884863737393262737055498659314057536544174451158922305816094244079364666698934368612348669071704383851157951758207371170498086597053275911995960942680159768036806815026905776732529723236905098253122468347651377238892796579982754688904361255188600482901260655412141114049609433421068220388682944966689927271812583981967413325197142973209698798006991661930064316179117215811254561923749843418220504656933594063883032550957454376200848102679880368868995922260681966700217212000078150280199365343491897460469259631584062752840720751603987171114901604054537819299109292048322455887173516716456981026955156252782992498048820514777520184154073111445051278731052596287764104325596647536089055160650133657279609631589041358775853480786290122298167988267994459991091192802533653568123123945876934894144191041411828354840917815235446481575250962402608528098642018403822097207914171216934312861104152771230676658951812720127028566644485293586855156856373173350014799125954252117343514635170573255065167984032852444895784111044161854571731291735465704427711429220977643329424186226823015808958309530002004445089219920664807283190153724582845151847787865851343977177196584914651010508924491980288663500774515617624579013146242037164171035673958199839645704875836012711813852263049197283084189011312424156879937797212694505868952692770188944220168968552185829398372026765639598169085674520723050372383404614888739553026278559947026899701064092750399413031648856311630080841584569088432142858523182646842226305615665781011363639801611440341789012333913011005006719187086250936597579473564792202437350139514717043131198461530089020922830286546852155148213368429416304269532743893460524985629262992198067567854468481857441089291050122792091799080692899170785396348086221731415158327379752360432350539252882609547505948931030826642517068124429848778007874106555075782952395760362166318495964915865723024110463568142897125694446525807104636053224089553665600158111459911510957926463648306594252231588056473618642801387553908353193361899591126707914278126012960278795043718045811625956209935950791365401472035761051348409700235241381256165891915513737165416668794928956247125443516114326655536275713935792544413648003043356227881592075077217469231056002721534186588899493384054258990247987596733126263340530198046756065811642424899402393160877514833699839307451857568119689567431434732181267315119137646865348666571880217506115235364738982302827571027485951649245149972752512994673645157559808721447945814970013414579830476582924479288768718393588293677221665153153110953017542169347612590272914394115753438923641381375642675653388474984664549517825745353085535824808302720414613620931761127035101389999525310648844405939222684890732507494392827959776615037459809691864459243658028623954471173392704895053733221798963189517851824087534982448410049427421999706234625993309006057991927230877463057381358494153320721943345205448052175362268449122073277893375335930736648943277838150492958516972914718553576169587913760348291874893033998679569627834328567954515917706168962748506661293815411170666896662707730043751692560585692978891197516332359500149191976196960321337720306028745008719936103213172281909764833260816888878120230268609082674955584694225113260630818297328973427191880246740112722348463886414756656134002786693681584789041006172749809139132556768234302373005031555734324495258683930455212228242994966061013449905189752009918930603499366924504055345980417309709751416595171537568026526358980543072822952020868362808787725268275130960060888735304669203706483848627725909227528130734307986174326742307890363832619256014972574746561077685025383759270925309326214454013630903416279899171762174567634872849771598052345549262482888982454370922083434158777344155090383476913699827137775793445998321703162622268621316542754938402413011610553374164112103831608262483459832726227977201284415919031152587697808368485470514722716056889995284530789006243664941880343385072819100342444506576168068124662670667174605023105457946235931388640060812012756097813731563303310034501320239318819342268503530922203530456506608183610457634728523571991735770484951430899543566911131950748014848865259128417251233016499658043795796867675765671922086108812824150576866721499514814654931568158827145553686624924755288197713815004722215772132434830705368737228160022529184957358990765132158187584513053516839444599765692792488539781246263281496349114967517765329808344530252160057795554208360946050277633915801543182535830047835488393358827189086806227212731928350152924704901670347417755454862156656582304738748821817074935594803187437458287318329669369557398280897767218929405326166341991072475032129143483153894129543191714256122518699246432150306054838873214531435416918353582334307017664443884796512558455345352555093946661591855804794955035194160516910532979980439867791839918951322570281393311052487760074651396122307274042444250024409033337992564413926830825941718926180311108940318391678238431311754050282632220350694363725662695355651396155433108923664034808561461006989039949292259129623409437127430167861677115974484157136903820044100074975337232648188414162785957155167621416154835978129301125802778395731320926094844892679029074263868229218497778863879143522925714740404072607446650258061401220437762179458059420763519032481969728573724958212790566319633798140020297755865252675120354177665789225898014033680280729367027846404795964725016435678740039753871287105489251484727497457566828664495411333337730414102780390281260170036613524732540726493809513596232976034172775766114577908903579245424623492097175425834195515327490896347423971185557640426149070265039699219841596952206798740698988750105659047107164324954940493344560835969452961136403366721962780829347662492423848419337014254018259610786750984464540157542923625322719681426671836484326076132122917917741637553100815867282722368516844842015118309029347792180812313012180405015143978031645463367768519076047187359334182882727403939516335232258940559625813567969927842056496082213423539052708399191639432861894784204111030451724668073257814873384888725741338999240321965293401855187269491500582289144683767946114062763914055971409356681009803384106915153505271672278990670464780451942302889422619972935092624506972850528755759189195802492165017620270669689139713129717388393793025795221791197990531753991550157429591490388263080071841401916945838117684671683964883805743123331154943220381120987427037128752139882531336713889689535386724050391082923454480047254901586267237314449905649533262517977108607750735649953445446531025056811770727132166634421928552318802531486760153074379486187422108989547339577513075050617552717160398665306641392426493239043090102726834737564102550075823142259162975899155333911747616042905578077542996157168685681950940128006562638344941200642844282239013203107840952035952892012500854225748494660094733131140077173846073687289925840278527245440708449829674341756265688857164494001167455724415032889864620764501417453489771489406476740362235349083919809639184029932559575361943620941446619169366710793450693574285136472464078094562648180643872386869903330629224848699098871898119604588433997266177839961543313844165029751990839536557886179227397004010760363607788474011217188339071875659690594119779923038180828384908503145818132178301377151024296403640180299989510554257791264984299066521997747554584457128063066149397622792840723526416494235055807182614399455211046172556766970418403793820437796896771716052153089732145786533385075603627144545067519756198651046515301504551425935842186129040223440791696566589783108441643867843759268700091329543258226896999639917205238662040929894471834945889680261201497482703989706106822324787848678228273905574184931928915120371420330757216596769397002087943607700144408133635958702716982191893494368885808947550512969922482523427587029565161143982098544220814648114132229008619580555003422687747576920337796812346240607994620836728465066645567924056653512407603487286567929049970691920791879119628983989908891946459443322131234458833874801584088841617119144540297758399761158325344589207185357449312317261403087458109286610199377055682637361912853702081045031972144698269066500241792002621535862566763278383707947154520054680692153143083385496768258253041974942899026244805790340848715845214681257659077499623746148154892041806292273811273777200991591718820514338821657244605728160358345765157187380923666760363768230433539422908775132834255385397377220499924201186051952125876152139248667131542111316750162603549552309036256689890168748078703303573729786833138703948392730323684726614773357633479105412041641318801993742810907091764964301887986980864066404613846744205285267472316837892660209049769990241944261333391426361778515291140707913247837316918508249586617503219797487451552861794369873599274145495649342558256179110429895622838025447285499726421903644015286960203680426621937671695553425291100801036393404508773658296425480328449149943862206197091241045757663921338948024229542628907268748073932904538726584848915851530077237685524467417496160814973913717827577497661279270000941531264886965768206983133194244611065304830016450923426085618233979245538712776460738829639288827932435774492841493537293920916031112514691564186817338761660756792820275767542000586467514464359618823598186260617200885714917299816495115100762755195282058446219991292183403039492957374438834572392586090468807402421368111571002001245607099738784183072500357455386456261795276136990231536268019880735782421993050804471406871028563979071782183349683947312411620879059382872463056371247786553862281916298249008842803498225228362912684405508895273898436340976772918492191918604660046641785727285864863704046681191600360695330511613990387034908235889684179236887418647324962158255517206373813059304077870190378561938525695665173793447189763210445650412928888356237442242891245171172506316314782209648103990963753551652123523700164668719357409395589038964721749970456102239056760999812999392458341428585665345093757825090460599477198879932107091769405429781416310127369893326936244550764911867091120278055474922656737719499437482273304339211741094484560429997375079954260115649470246729161366947600579894670206037574422117270137984302350504100671413633225211503242911304266028243664108249384857493985135219676151006745935835492062987110541910859832086637376077686348607272690004431126415165304885408143820129584938239936458555438883420078278381475678481740936112724082405366980069861703595233477343725253989970694090218434775991163913652851300774895171086574508582127125184631602767839728349072456691542571312486518494885723824711286771656678524616120861927218562518337514243881972311073348599585736889610034471697685535875962722691384659689175717924060413452571031381976353920758629733062722651996652618975583286994925068655683101095723215353334922129840189424252659167368252698780039832200341706044961890555559029756073579394016259752429612791707570179794973637693987596807268871873766137105932321987193714840883938797342121888313412420727291505643904602307406391642351344449737442072063905575628437739088902509717924843247820744582276251409247385047718780465646158841803138645633799231133973016377122367819003760877862298243976717618355820660163039724269922446406221262632018104605796704729966781733043519058388536629327694168087641575922556290030778027272543406234922125659083904055318791864788211969185507398692571277001611697238210842883893229616683727112897834960867685125426694412233084541309657355262315689304233230300253382443878224482914835967078073892462420148601886060023417031601075596259519797906245979507609624846492123598178369527298864422613806800700254119821248783392606988209358288263993127341001182782666704570046092892555183513388827956038294835845938113578643934665387679463636113753390925250297573850193108549364220411033678613601225292482465496467593535701141717379075318366648044911259245845202390753558842669034413782711159743195978658943103689977754278997661574362402794068687989881310465938510001993800756302135440971930998089597345323499784255736499271334357217786931403285770610653250108672147647176192678761741504751371194493830809575412311284520865256641684603797492917225576712663128001313844008454055807039586675260816054449570363794846202133378951274261919166082946417531684526987216123387409661884438527670142633780303964139370026655230209183758216709247909195877498663706500619229837531816898754005689330338958107823660515309150902714431018331288884235701930689150888419897516436121785436916873167921221236071725648310363980724499916599862390973224643121877591518433518433361974885884351906989895288741257849841702185801218908995363707736073625152568145720263330849545561903587526137426721275863500890864540713449975645191219259911622750844586279640389275018035713417184818144522958668604167977252842773877336549547087552994302440890283177119579960862820386306334592005066674950722822827481420022359958834731556847816531421635036027808127890612631550266197412013653167691747178240764762780674643570811464455458036461671353021247947542354357180599886449557490288945694157539766087132691890962057042113888612587823157763329662549344165533866138664085328951663787497489397012345211165617679193006633089012163959750956754646534240770131298011981823346612086230574992742502479324799511897812759717635330021191130531805754958142230584924983388307528255196100426454863219921235418018545636407346703050479972136285299625381994799098627002568796134315282331082128005124378944777428956367882711382627281843096887982254684150442437231975443205252420442875664910232315570380649696410444237619334928636749152006263697852263633197028642306602827573914048749983408068006421796362114961835161889602019467123842900413113150153474174560399164406895989819540381412717655064597656451002377735978068259877052991341536057504241823568922700178876265111854397696126333574903449454611110546108273339604205071574028356954158081586003205488863305522325067120313506036409437049286987676927474993283261268199163749373997255777808478491714004563957164396730223988160167283614649598036886048754791032654989952165808662292824769555503834127066922444113417771354134824226354467721338147516007100313078298487276304641097783491219023667577829516295510474855816404112116093507036617733260582025212064267477818801120770758009042077355413301048809629683760931012907377832914024618752817136507491225294231437001445632392586961597189789713987767089167776867758170884297048283008803879359596072055231380478688444056486108868661928022415851308746411565877419106213894394259940377995038944708046293860053733998098346342615499537681664555143348868055040729275926113469660922608773795305795130804780651788290464107920170581438000980533313599215572011777368311529440174696716221025878628078024438974878424458884716120792049754958269483707188272424295874783001747235565844809430035808851790452951592818294287128489333062922116362676785315928754465875552247185739617969475563059883956276284786059240478714030233820242343508253016910329851312315908810223827667194015673163667947773053924274229511448880528529996056528185456029863068727829140691807872412712182419383962713554860174129092688500323465939190060707022731718760820765940591374355777982179041289994382367415607024817779303609190876425706555271541885851596808147418703524852135502785512007003350880059281177869001599665167601541533364385304266506586790050007708820936377541996179913855399144541375907091008240488709450069364521936863621721596442690780868022910138288939983465296913971446962000780557470033521373668612436911914304496436925581053305573472529201440408697942956336275445356179455721601764485625629552424323731298607815663035941493364469257163356485755840309082064460535223049300029567448130834347997710950497796793914763940122994413311795185462025680963708775228007720184425615095954138683611579893633337979702424636610970808746264718154408247930172071293570388690819894724054843934753319729888714441751766406991166929810714104364472705509045547113163890448887515547714312761722921690857259647411012440524338998609712496517977034416203612154472000767806224269885645256863718557298623861158178517086341953435450041796988592972828159454983586135614031032132297213524200361770472157021036198217563644530361559881827159069686822279540898169155844770316622207031815941783459000029392966227033303378151947508124817575612698363544914551031495583071196080380893072818668307715448372369331909136910464422761143286075653822126017741655856935411410708634494299187407140878974783846668758902281299899104851291614709402765638920384159556662512716390577282163015946200378807836385012683228569407548262910743742602871454343488108476606111483218178296547968790849828416322299700016350832866987656388837904193075269532226772074584095105050796853189541960012438940631303271374917812080763087161242219074379311545695566195475480653913075614361803883985590280243412427333635613424812174155493813309198471035974380816277547523251619358858430818470794429918162678772160763151527652924332206176105476939812172394600500876719085183403423580553151089347711171750031034231642130200116155250369388054096271308401386870921897648623453378267908574577935517678783920035988698911920364354658375861529602769412963682315036851118884902669780139651229366086391785783274654082099432677781342048155310996268615792474063094693746352360292874640191417276176163524041817206210710236477883883948802377788236349149910682358966002723112476842500077548479889825187010559043247288706171541843030714587878646234842088670287973064817707491321744228786462208761860514921436564853354086479415772038082006553954795517355600757816640588181767891442014153329533122493653404420711930616436248912045262824500894969302189202202539850053021483782163771737914163731185841275044684017798563313425456799620168325114612021923511843454534387915411438962859240131267013643487068395881241641375892886459901782611476240048631549214118150663959785626868066233795515202801432893600251290285232819618428869451499310943961850340268391013732966808623820410454595610781616071473485927452631598236242617669237417181851004287694190626228232957115556885782360660320784556183531565198322894703736561686871956325301654079649276204713627112473468635555835444936489140354704768291175969955384925229701776643221676809817668175696769039107628911645818441210936505464573766151453288830935508580747723094542740642076112752630539358904262049314016711592923332887886128928810920684523239217502277634338941325996518440462948300708194745173119891903183997583412268824424006187857286659527472250940159317423183838565855463455951689151535309212266422441805958805958130300749675728115032819449694979697836158164221989559412550800324047140642494629390292838214116908581153741087394497868262996605044566913356366445645181801948914671952876371745116106605652539253505956149383183960553198594876266100238776646891513263777263238317756076531728150349396662122918034896089219506866520864273870192056702388204359894245592449072261481058228283395754297494477440447930507998213473275517207870582781364156749162571325644066001790794943524165396353257120991147971423101129917083216127837936436135421444574186928782079810476534316971681791123755073354052484747490679003000403891522109319004786249601102927207709584215121547278310174172569961502112526549222193453724706632335589691168267320204896354586371926935085050845341424882581964274217245037178814869299017223481054701995354201436545902765086686953664363129289069061862551313309215148559401208740391036841118853952338271570697309305631044280181376211991327135914121203987720450928522911504031968667302594678116901458779074725197249045094264690942093917251367986257379288764218219001899504274922119885834343503745805731540906637012325526339099092333117314065657451134835741004157272121061587985511591299411315522747723858877099971453309270008777444052828720591919451313047167335036949972385623891696941499053575405640543160046141649733048346683656765607689201105865930419670852323252779812187235804892895663178838056876646503275950588842387661769028339646994335822041747146329998150030686116014990335803387634305079239304977697218504647175730196854446181334239876576687714690526915886690326652154652962923577783327269822559224898247124553520841844824076935135241958679796505913800175492786600706056698232971402113513917436888033055617229844524018038790583995054268396762831402572580045278726907313463229717396256650336844293571870996811958473621569384218904979576370137412481788612296840354983621752086868234097032626126295601102389307044662247837681073423162335737888196148257471481674489388417158697401472569140936287634412604699786754145201807817626827919644227915783568373360020320826119253470878437992123742712196329478514390840200243225265742994573071419568864579177470694610359596517664059348234203554676346713401421092743989315397122474510084789565879746749362794876714196485526658610763878445857049112885101931051048410277679882153897544421396365712537599859191956373611951196753425742844262819903754275740372607574425162079987204617544313645330661281377985193008424379974164430566978491926045115351118268491257838215691624519047998520958212983019763755487655269347446185963544195183609673121146115097993977760996551894013747730844908388957271885005590438825646311061913982157887992820016627517577781904306793389728769898595193365020164729427445709999672895889187883988232809703101371176637489011210958717966479444638754386792202331955782013345119034585118141563805425232851020396867727240774489700876415926022201291174602702596228449754909404618965478474593599112247735748918278603844678907094951082511711082925309308286887155994001398776468245925691160022321557884658138906259064947530331490947111224878519928835526247874936587350665240892680704623972567094837585158102525415334929450620191826487404181568497137295386297949668681132022410082740497443182419427812325682380301476732235897494468988622374096472719962285119564669039926299255308067467404546148533717002148294428851875591678288975717720907925263480616953417717087881553764818710844315607375864450434075498155835560694767267017526626921897439393646352677993113094305565182052891917057340020868525062770802392473377946681704230333017039274581431079711392970171751949694674769113488355914845118414465660318294401586760328980447126517157211642945776439269474146001193416233572533925192905518946764988370204862947120624289986757284765419809470133502356604247460056418586722275552693289550436048447738943959036099272608482967918525834655434464298264015169193714910795437936656932074256391195430898056593594685970725254257008734690628842376830293505087114231261563033502851165964809559150530846378863475459179547990781896559037177817272616694417472901452819214596171077451430335447314094851538567996988044100787219825304263839710347607733035269121045842206373940996338550505941900939522683172262341744892906301384732676286793743701084152424582595605547312770278737746833810697940793155879167134494733465601670114579867679607322514851936329917070817296599866891233049321001466543901245608413575159160168983139069655090864915236021414136532900437306034857607221519308495010739637707574107909274135913260324726419443999496679850214125137851440333408884900253121139287500509388456590748149571965234078992042259158649354497828470861850221957117167950141092476758797869712036245128445569731066618280860983086253272102948130530635187454768664079991242621672487951386132880901924290623939530725173907441115391821705875067318489682573854673911339709594138161052282444749301530818722757634462801097722859953397527380423866398664081542833076698297552158579503470743428942736194876458277035124356848115946068677592642961474469558686852731233379127988130687217267544106490409964434471225027415933817362471273147002250813866324686132021437788282906001965425785444013594747706168123047669115925924475163528362967111412276496695318585373631433610863718816966401511872288982700505871036104086143302998048410272560263558163421133515325282677369832328339339493492745282300214148859991238570795361691621827041672377454092360303618124299864983026375052238510777266390269817053110518354870159104370622239003747128449167472082821822052545439484827075300146635301607918147750837529937428152429260549349452197315304151532605654731203640407514974761582443054188266088559925061335656269845126457877271472559484253089543302983641215094024313627987283785070571393785625482312668280594526845376058296215889157211895836652796921970444908906693486405417394502862496892851742996241905940986215428919292085797140282383754049151815223095572986259974885897827519763782790409216827314639184302200990682728386412723850650586271447474876704171899395911452365149968786359692899566940516514237609712036294645757897132221423684672494288538288253436177400530493155995796708722875469552654033437006793563785667361649392025253863609372888832951306882706428156720224358051772541996532069970900150705439320139501408859375247743723270771741739756876794002583594381305493331046795697972747603370748754443836792737038272084136244294039359808597030343164008991638418803406699371133835987098918371784201174894554162287280091875458820692452209909867353501769862134376787932728178835891633931562760092222445636134102344412911152415781031590061563118756972494177164743566759920383701140323332382587739860465278502337652656892024912603164507507258525152845467332232474174629288195743415220667690991630699082824046779362542324698038756210486602800194980551261713742596160054657813774335786682981286780108675687069450058588589813571213748697861544072119951116353073175841199783933744347483766903765075820416429082251328596606949400749347246443937031689466879682525900594982235360160178276011065624957015550824036698181398480447885487628529058855641897277607152011158565164529861765206614122692774369033754832029481238777897487717870118711267726861211983421561529525263369454826373970986677173559386057004900846337949431345404309874303920490323674753528919907827574416468888288601121700703915212687886357365913313926791295581099819183569525277596458621466187791419436635560469700574917258834252575621532475050254077134153362391911487023480765017903926368268800873700226310329588865798896066860429819487458519828500175661592786670755604407312215351113337417483674906140282520613187567822938288474877021263825509354364086348455721432630207459635969508936233778153792265928857285768136205983701174326549646751895795291788707812937377062745790249555750090421597147294068495707823579834059952858546106498563175850395413323682420237598647579869527851907783637770844628969262076716461741809387522250668206033767080878809658861723907950893957574204566554627696719917899729206373728338342595211531890232752838178295493948183912068084206480128872007067937065467691625560691912155512541744598398509025929852271613487539437987267839708480797216813098584279354080716796126808535830495099665401813791476870376988354999520003491829666900862773738504397936714353090645067623059965280715367530872477898906055166625798735457267972851977240361672279051292675369053997291862309032157866072324326956508471057261154791449115747434372592668311105691610030446402634517101328745739809188471510878768108291620812113404599599669223822697602935522434085640720059943336505528896916407769446768092998539431229044375118181221792207401063904814746783774660020133075671856430425814881818930333555563590836564807877198054199637279294009276469660084996445452665849685990409831518851113956690205428707768775142715809753341441552781284033099731373013563903339837749527485612553491176350741580495433082087319540418947296705338681008554798364488714023880369616593699616352778057744176156645523181264477571392991325799827364299009671593970276997243858398459624886218001600542822044069537494328048731105997695834766611920905803281087306217472398546478181502493948241091138686580250622506591882331122754131821950938259935552333387903150836317936058812670030677941840780670691243984518554644291792445348411753994942028463206227104882243460177871880379183104420026148822201250852244512932487682734886458604328625969130491715294262879129171082812679718475509754599447662482152584298951165944906527791678331697009439971598965967095362000169467215181937616164736342953298340264535615229282363469304888130891926777634287724068031276924050397550356543639358642703345442911065727849033930153596013229656713188979557076128739798959642009477336016676495776761671738340591819909822271486145452033901578045825323672881549193260403205047981236249748603127580194762725660594811915641243381346741425160304323042536743007378001695902280924965067978095893956042019788638527725901490417874556699914786487963353765725190544670127505286109878374448295658928718744266659105197655597356080518237077730190213320241871682897474298740389291293227628497499721172238174654602876374581496562473251961101497406835233601934444124870816951014554390013566280743767623715693317525190744551618858189536972169679369056134782862034152973736261367245085755008637163901102139917496048339183473246490773236761874130006541051206683512108815722767041378088392866950600875539192150420627638871007840142665125989701986927148498006541586301573262042607894201838809631846619481219053857376845387646997198609916266129963298495104727920284603232072887324113067677005790475058568641353485781479410224908948444406868067499449467817458958495508069738457436610626252811894317058614387939952291439510579915957922764446116578580875404478115887507231309898376360025869464070170461488701465406843189947605671021482137825387590693429367033918902684469044371408492575363504702335186584603264357871302378172705701554835341034640145684712791002549762512512293476992866225309278791544473281509126047502302934241394377624414062406616901046098667181404234449766222528750834709997904332434241893350694328559461712973088665286256481636640184099517694887146922289070676738593711011538951121393876674003443986487001319363266842447742942307853831613313474797277286165107012698253362350298597671111398154665466963813364791547017143883603514780592566638446152779014936750152659837022980512895327336774618913786339648134315560768496672832455396759416922588957980440178506935610931412733380562962928161912211062627755228833615606830648958768722310995856864014889972041173275854804690661116732845362341179784627549593845738748841055663695786587314875339281883345878097277910819844065820825285401391981426067266473803220371191985411670666012563007682195056936533662655212738902917167290216027709594496004815609140605867745000056742244628430863796646948847305040531630413646563900201633110185879240018377616153185308862352986215470086676646132029451260643165661662715158720108484612822491493413705545294432725215032223211132630280156477043881671849839329044200118246471633073105726992032550094574437330818151320812223042471880738937979583200574661589628685177845208743466426068965961891301308506394821381788725202260852191392908002487988867197900794477768849198172569374606287225260398310485997087524394156534065442220493509612267027953506221515113583314499057519168320621566380526630269010817850257006844155961986412835174399567833688600735366036115955803347976109408576909151071294918328246558671798212302918615914517112973053279798542552349970150048220150221708780938835655918178032487386504359847832779449443704258776030014402528794182493746820220424440220209229131629992160446879015041375222418304523785243394270548095568522240563939744002249181901414056924478557773489039375536465385241386155181018545513744367434081605499853028260376340129221361701796494835886953622230649220761321386137465293863165863772545214122638159877732292215798229591175940786935757341185224035806681140708154187263476161852601564533756654975788500299156278926881159780079528874198844101777422236428616281047433433720823674623664042201724934570510500768601940758841078238165964451623498355531423592782876651756014490968825666798722206694133371971638562435928882816701856429752783962617256802820662902298075211017903687550126943839020444320363016057554345423920201779397838400895596405816773149803107291108330710296819447151957528724373006956364451798648323786961012377088290285366370370675763865350046731270124108711766387005246944424221458107441942897066024824640176130232960202113277882661537720925383568527597605087061221268663994205296397871374459501432267939361618939886214720274444477277531689640501346064148278398252548406843908975848624339312594461724912268218953323241576445026384399242840951758015581052476386178235658264263198833791826393903228539688686787425360201850212212485488590461718521308117095150628957223262637614411194630566567551364892216773007497225022704926368250430742437833015177040918337494997701269370111147519183709960610175926853616213996782755260722855777335217440851612066217458235209887161059909365793029296062770488331784666563311247902563595719711853900317726207430896948128884940821411277180983698003636366918616973000065716616168893314169242650204432945522393512565642479219312935923919716135521515219195573063465551792275137628501132731057389048339800169536616327534008315619436037102023117572934852676646102036167093946503528994806038591934366711740409782769252545448987907584510145455309744388004497435172193524179113031967468493423431463821097466819391856427190826903904507254892979497922058753694871699210002744243736548297456148920330936365106877448436366727034841427024688159979981604714734437797129094223989568408534913528436347762921671205042565876602398117341960672129523585726604918496821100274821802447427075592196899713789648499776317092895712979546892788505707280885635424037659846235607678294594882309903085662831741275801320295294639990707619269781244632288196678338706813428615108657719057223123177994230883195008166749993078637172637428784390700654871065216915997200257651502602186811477960251392568321059787022511183404900396424755580561886214206713359864141928224958654306817366658146922987910367846752135530196842211096032394997795199109512148674827635908652068186430203497037067487232246739763199760789350677965401696219627148823028945217114063501511978944670478198668352399908408267969189054334453216857549895511465912603011319990528909188438962447930698526219611987963774654366811135486156453787891076168310168798623415307443947154154781474686540867573725413722521032597955830578672558119942677184911330598019246591189097159661055822356474194343034376314043272413939457792540769635503221755156983901142974992761268934651660506899328997865209665990908745552225646357330469833588420281985116710354834655475559866198534245603611347832844173810316116901366202221551772227164156877955704509613514806399579018157088472283814133657343255991780411202247641266836045208757625648780144536737112117421982720986930877502080844052178284223735588078751841374946979259619237254919813357352530379470847912288738083513880667920837893025519400786170723322861891604530868957688993592088925531838174260964597210601650949295202649656088842129350323846467575094566545857380376434178296667860928812923427669104810489881957815088012110609324513101101578971243346500476682050139246923425009972024086141199955498728821383144572667785923719372487768743093022758843036746688962052578226769258701424391079100261307102672105698730390198549721414651618807785107410644038482355525655270425070366466935339420382685354173526317302302746538647069941236380277849421856590030023269292193232958456479957176445528597527707505469300787057372382811293879908996568748446247117979532354328771122282529844399030922947299090948407652103992634344284622017558236310369665573835218775984133499561015109749070858959587844997031967592898757704037484680961897712147426517169544138802751562112563822000132508569709089286135104166848252198644645205554828234532309410120437456973891835530761415011333990861921940345509928546483737354852239656101498825201515798494916624872306744274124859212565216342443938333066575272134290890025064082698717510753739176959519671244541316814391284901396919744761271598508272503317976388863090370668630680039660331009533004513791706080597700658744492211700374701714854517760753528816539081390745009057618099434112444170937410222358603655154178017688261676659954366457287060068227672458839460183251564826707296411164779935100835200138087844045997895197427270154318423716970097964434770547550633235041357536466470073197187359875999786933003189556288595067898125691827131016701254651186040901621668671107060506484761141546647571913720961724766742577280799927092487599295272751878787378129464039633162306042416620879256623695536871406381042481545137239749808412747445988746956025892823915759551526657755664263941453121206054910870527149798520800723251343581446969231488878107177580159537524317158031892598893457752575985888803157411117499309157764960179292650036826504984402387874306365488328098829905131229951776606336739146505034180652782608737703872506686402005938382859529144357578541444878455032809426275101878332957855633717656210807854911493114075679370241780451087334068812850348669388074472390615449548729916323000111822641629792144096844120087489534200994752166991234688554898137278074974305552039809179787087989064798806611084119296773822925435351178508274940770841215023283787587955723348792752526807098021278450110032480127229158590055636221814391731236557212717241078373871764175235361191204999269773985803897902761973546428537450310371784336647450389942597862016954866000679262893126960084137315657415641800827464503848003720897029954782156380879169531946725021164878656943645825991812288187094994253491226206127519666856623525786529347615608674529951470563073597873558916660839165361660195385888133326956046592565936270953716930951797251299510166050416431121890950335763085787664237641613652589360572776169756164387590202931362618032821552956902415537297663894587322705349190849301235067965277668591247498416768321728817812913332362498034921871687956711740144452925649121360577798041881602381581504194096723142075672841532306083126117946870697878487924677838738977987264170404484377780033129162182206663727685130165367712003819213902815896412153644418185830222738706203740039702144131550205881836757382522480860642628172621627851836264495170496362711816613989864658435022019284215343194865682446922234605094090411882057352766101730552075569881233686431115171913682957138071441085083068454344949921868412402740753498606339819808649599897437024995862022121727303144839408516617774002555604565153288068603449024349351268392957933611642833416635862358123295998244412221362225958288874169265908401001069436782740436769923076538135152210412654334265608588344486433230925501623725064252141880422557508274031892771884450491289466453731745190058134312956241510526117859537924267040935188622878915568634193945827959654213822984476150460127057443691514055827899954127963395075176298552152982662765771955638341896351238801745997842546887292130965454036246109854289773226551885992135684541690564887856135164090410880699761659951183068374220033096533460056681779730587588534921011548403272665817155828420188045258645915305751306199850623509625405864184963157972973239267031263694165931680383232959275644757639015652314689863673675857932377199887537872579485428861073740137588376196232911341974735267733425869980479355761511116848400611795027574263003044149146816052172735877147327645752101373207890328969039581739253064622559663890200584130464569927049944481292019984871746443588025881033398412168321884311587954458683008896394702845292539008416191539055339512452387172978876459382219225965339085633450630072949318772510833952232090245333391464429339753819290053615690786020465007285436033775052545755377303621863436251044667797669951238455611042165017835273002842256549217155456240580833022807075344109647246959456321514515510145916906856652589157087708428714067352872025158423486231777986194632823983016774639153163312021511183542473282289737789284389385411980832915538245846328592341369153706003861997763671472897059211987159463422906311140236020797416129288555194569682749430933881818672569947171809389006423208847070607732628175206739933466319916452165435788581908564022746825837085558105155725268880829621848570640196483320739316889580424302070843192375172563101202045235538725041078919340994727687400227306113146915457651735295075416342522509613257857783013814401836447927976719226816433660562560738435663360212448553497003550171001121431847131410000304081754778983335138177479638765900126562595621393106334064973254285763553462359808740271821349955549286430772160407032145411580178863602643878523658109241835300615805507693838706282895555012754790275695959442883507972352294621694242837572343006824489407580555622237273498553618479815668901358029551908062080784106194800129529275403754973682679625351546573589013116469234217530802151007585030491076748929790350634280840031500576534749314908769075317787920991449976523046130227650737518034746663291990011700282599711417048554222084189265444232573625186684296238777163111199177168723287126976397967031551063261693982278160546289402264847893021680369564215071999621762932995521310269013285727267522883502493818964837351589498608919391848658161342624231343190832046386731434283787863022795879784817013801886756059805641304556276528678160906373996998633051502664198090596515760454885352838626904592386293069067929847795754541694711068573260677330623285447589470328264366165568124028086609107430511139333530418605351407443425212979574232282890338569339434923832708751651550417590685537340431717721078294495004163824227695136230852383933293823550469345744014008492813914618596793877421992681394375908408216878304803484298358240142253303933715588929044309981565761585837801875796544742598932672174467423545028821056963338025841630412449794181395738702775655011552276327703677767119341294848597390946642576454384283853155299229003704852194552764455913797627260614919630266501740245209171319685733131920722937969477347504701864723373491674094694077883148012308148367705820436698864569250653213221115223596071776705015955959156785502235463066261661643383546175132196898918282687269086959100202361131199974513548618243376710303230604847991251126976750088909284357130051365014889386241786049185706337622426542801493571627600479310685351392715215740623230377504872388360969451781019066388210077259297812445285062755311375549308481721832922459435516599493965889953706826884839744309984104764377466173786044179697129337913845145328087863164799112962503149170903907647692015235066638696393199434843877586412944871490432747114362646120087780372141671187770487140314545690081839118118410673171174766056868065275867853851225033749891080190779742726218932402961174606194086829925213020484150249796688771791898648278169285536817066315209712582293523651309179915111401761184355311658235572929883166436238748116985999020308030270979260654677906325276818211286958749389067912009395757711822540031601649683835359951318075443214001719508350882607712304049877381725542442507252187527810575755292289706951751705817090776013386063145243718461081571311152940155771692562769647944930283551651403761580519523485285724017088528228186204881006395324308061261671929994553930762265007486922004856442474113712125087810138597023094590741021150787147641586923333423912810885126539423441063991410944838463522240529486171324512717098859508016193768604504931456992509959279870045087902015425575212556363109848442171059489974863330594263092972910541003439241855793350759854588237310680402211510334572940059314748171334265996196641144535110353079516057329059155032029606501500859119785101088314901186817968865392346272483942740800584610931877765563362583386171596185165495260318511876964342800436985741596053628424388658740504322480346818260346048204112915512056239245942404518618932295675767704732293261052951905427630175392284177903963037233869868071738146560974180296966568999625092093041722909055117488805990941303618575529576666413532501154512206979021842631280177400941917502214936008943824401660807387004315848436897790462295433779610010382458585514442904147043326865408081020231662132622604235387238344024054660505560976122179986633625440008865113627465144418669602952481212173183081587341190787274556817851636493517677532777119377114701684748722394832067350624821380899221718624089501450149350217991299323042405896369139609116774612153181181682414153446419408787907143601651317697799980951088704036756508547446253917929695478274020125130261653928935191046970726987343575733847931452832832185450081812152628740662839907092918985269610682977380387571816363741570430742974041514149480774299033282414815487816204747274850442332413088843170506530358701988655831895564292091738454459179878066815289317068643067576547915108892194123205232693672885517529000949578013890691960461950021096140143439935170178159225624982949016734347798559470557425163820220868861633992228730067387472790391060710603427736628787395280300139556784571690529572511453458341786325235723026267370896636488224020030571497432256938036723618917876090115266752605151881276233663678962277183555975134819660364602556703884849120423963555837941494972203544424371496066335629756570911196015802133496966926345943952911049821002504672908780680469710399622630018425801017494844548738064460352931806018922921857221467439134509186628680422352650567601502274371500115076519465566380589780186160647790170049919419874869920104666535592598261184475315019133636424884635483998544965499669119673741457383738140055226112500222337682916621151199370197552509096257245293856294347770240078615758277245980507616396759503823023338967817674408233268669449272988751859271173198154406406262970522704107277108573014420633371012327203025086237024314066804407963526143729678429357456125465580003022101586416339044682958982043363476372615101115074054695966824067048113390111305830584686948372401746487541341170141882665970146447573107230643753224086333482916439933816163083560606882736136918527401751217438961626065167221836403397510786521139619298421310911447664559530448054624970854700825635627103300856790932972104924554233771121266022101960246439752714668350222120271319963668630351234209510138853888590616422600605537516853036485762484127644682871860282138933339183067748636781296458300198712054865444249176918567391744363597000605893131749163168031694706453753760920101846287106891130532334498492622386538804872900036657192342684994413857860440205573999640870386847133144328023380167202674215648357921847035736617131356635084594778349241418731810506657669329676864934846795339810694494332428706931196250480361602696329338767971184015754444599646820195060875680933587615671385135726254970752304988345965119761762167393186589004512284148978219686849378031064404056507656314985059780748849328063251765756854916352061215407103685725190859323770873372962617400805139259566385746468989724560457404371115641709841901307374249973413088335065569371397530021257662618642979065108163813243724402345948168580233069513633730071597718753573184558650737178744795621099953734475821922061987118677283752284473815142231781884844479806884281602361619964674018077534319338907320478347841684083267539833180259398526700423370574398619421417271946317991274250709720498792129128695339671105865830472781595861795110993224295150399192494442827865283513255739129336559211198594699640565145738407252697456486875716570860106972661249940868645664714234189232682162649877809600700795746597760631442969680574956957763541674073499750858655308816978823252046017241677924350409460073801467239290855306656342095199038565927369237653249723772265895894191783460846514627511000465336223351959594409486751329628232095801283986714970924014505682939547865785113411224217138152874118170996897992119843920764776361899997369896175858922456983101986278574068598221551545822215306309750488117844528495849822242978434490666020242102266230156835782817184252190875861572765433398985627033953297274198447263890025348449327451675375513056794011340819830986981714852262883918417143970826699616903150591655678320659295413554664293320444383475170471343747276916722894269179406871964349103292332138860386560407313283547964752718051850064017864972358644431224968916634731855090774556325342744811135097805689413672988912147810980059118625175974375714561033358581270717704782022320908786022570841741297579843380370310115316437625437468629727414184138822481962167166122060695201798420518671360956716094235368853449066557177450426561192542526725350487573404923064323011324712501847766502638803531522296155348150320299038717555098746585028256795682296661388557696428617061922851827595738974342748907046887867316205089933232336908372775817668325876453787346664703057004570671811537966453078461506714310453971701630974476620785347163284644441450580862187011131506182516791965187566454926938110445054752263511491188197894468926837668694131146395662637907447152189438186124284222737731016662588392907189465603922833553850764532217286998844611489642523781266117716461580868117230743409923409096991854724102456647543474836430480747439489308305988750772560215759608686873719016005941245096587620399528442447540904828786117632634348141080914362948081850329816604094647883109772887324261558046647483527849379356183924554518966925383996719358660324242372529746587903419586357555400316191335759799074914609341005188315450621030671026974722221210926190506445311787512914150895743821931750635695254827780250881973092139888794068618085141534002159577119262692204824885064565470845670569143975072448381704712828657556543996204184198933739258714608835773047841455754635188566112156612348410996777784194789915598770947732280949556822478848392672459132916544009516472797501029677238265290403442643866968501277103705552241199436690491228399211561530393405880639229201528502415349643759083261054029813450335044600213824173125296319539358076700706860824743350226513016852742814803715983638123278178232592478249040409266684868287249589179940855383360369438420004323257301101885377975787652584659301603991132316780207095882670401858898447023004204394788417735882719396698930104009351502176237060791763692375596511277480375068559075963289661139373410689952510627281799905291202754565250662484243959328501242595183352378205376387704110135235386267228808685482295580114946404841637738041295117951075823907836824169484427830883676975162891649813349735497020196122807003670844555429918321346381535815028378220741006266076771715782356969126708098542931586876505785043827010800900675334019973055105667781074788287193922296184649017612243891391112939626247992288086751999000757585722882768179447020465880458374024635736018394260163049926179937023774083212961190307914449585019866113776596281363740473204645663590750581047459457659223814244673725734211944638444821320827570322826010634288075847761188878880583561447553523316546025239671268970377045008835657676437716613935428895582375355313154406148140207800126696456166661174124844455563621252902759455546308704020803699195994537800795202529997489950538831261886020514997837656330254729202977681150148304866332329517732018689963051502690438196651644657053398743744104547602410102566140485472102135112657321821451020802526968933387813005036756973249233017860873102655735881790310055730937197444085485961882011229337939950134468828572541152677135320731374349087288917988463626073270208895106647066186978974705401070213999562181993496521383646699907823641116388725848633843063682333545894363884787919066684404157896481599830029061031334372496333774329826806343732219301950993091285814478990393603471839368585775233421603578294799437527964109493146057031260700998724624637849581012950406270566796878351819507373201378868733272240921540836186975912139673818006233907980762068958891083799688891557236679070187616210305774082256882329024481782511212147000298728032352872819784652716035434665687838673815789678648956733461883329642985593551739643089521144957361048749851869751489330422855610963223990915478546760156640697315807873065206114241201698310077657400571240116858013641930702568456133696788300347553162350846776872819515323130016861719415259426449103198896773948303782339779922114468885400626398629720203781011799787670751573258113224745665921981152154108098807836984615365929148064972446426593169471733346892715232226108181731096637152317720514675655973677179885048381120774750358694178291673741130548106189061696859936386863606510348194436900264447342024421614231803705937497009114679816215893106657010159271473946597528079716969743536522841127900390396667342941490831879832342902670948846822896387419838439491825507406328285388090878387747504541424800681083985624180673638186845868395267386534753958455333529601640702315632450340199052431096733872433914010691243301564871810361623790891796983761628760832657471691588831682568486470065872434755479717850886226591881693058976315213362855659555462565630625119606442401044589328462778512889947208055694288251333465831179689120996497760874572357222260516391115876164674427374225276519464000788685200457641100947181006064696149943682229919712658811241714820336115444097951680603841198064470682798178267096909280624094888855925703096399441140135715352385356959833797514285517245173709710539091928493645082096391050168795611022780811759337319553939774317522646232616376056914001938044127364186883599771950178180957129728036431370993504433684380301143155155422817304642006467910207325728591692849631099315503686534574781791473065975730601624625195119501103247178853327074666653431787340876859272639241838470183178224042741099029829002565786994771815877951145209764050600303055001483841249141731941716042696991814527912316146571020301547554660111860725933177289012861547587208899646213856728030434054613369707156859527403528951849465827830884663826534125920883469405599705429867114159861925005212788316892892409834444860100646996259307065487439422678806029267147486135413299157082139141962810653628507420980464128399020612656803171248967760595127784312110937030018620506614304921955254637651220865793243705136077175297586582760017087547617457894807061719555139643842048431071447911058239809544338634854366868719282764038300950031749044626054519361616732818835044856774151265714566975194981181876362846436996929235205873886298123453811839284209383901884946573722206748635118413824389371836848257392572689097501665451946369542857781283938445351534255658817372575729867691917124594633219559927990247510404339579844302844427681867394097883782969851714825963782725851508931770138756201702094639187701206626479658789603693189063440993692531836403804161228886157881912905354398713563750938336929813628407530070450799010931236557335498303726204305362285143844635146165325950802369843651412878746141438935115309525024384712673247691207414767489672640055537329552227529948777360400235703627959809670221110574271554307022433016385923457507857530945672714439610647069363746468323186298097924083325497085171252390107590762199610214975238983901001744648685930088665924794071427492930625987433295139235880149101265997289793570361861555198278899258747247926206543261841643657167664003250905349729368215005933120479796753718878657845346356839525956558643027698655103015940898172738908863268896119153988903866655733220803205310001185009210847122278998892467698376055456357877908107787879856922745752227386824037734724567504935505289466670923123493386879942420901075169318259420470189658535508496591289547010375564290674360262367874846062041033114743663704676781788753162969909602536818119290163248741954115221876796746456950413359009516064867532791372221128436941359747179836193481886727428824795724661922315632810137480570555070365218628653908308108953415606347224336350966866715062261018792650187981133234166443572551780577682738804500494047743729505421556793920409701620509054379603563084096029797586359699625286827353876943035376803528457586848227596343147318261300280357717125259863931476750620654614426427635035278590096824672345624493962988788963788551041892433904164982762568598643406286388391509901699887983730372607771197647517209975890559766001447354109351548765065718149636750177940057646659497391561295141710265505704424948835651844567167406114359999585967238432632374537206856115271963464199023791326353508832668624902776273240959845155678010485403664855061162052257543938500263343189174172439743472429450346286048924019577538633409426580018074797910107946447735635145944560776804900686568576401364371938488045232071925514629275819547160932431589581835082079481123696228234253137036355836019612216210273742963375195757506588272811991291478365283171790077665277682499714757026630917767975785365248889252282407433718696178548627809461345673259145261574597371797235453069036431474585364327558301308161737644242968408096834877011892829913447505145098353885371273799904867457751588693734488460407426120394954432838541782122910083554257791118668814179893777832624775176882654350201741524441587808046852395536646468369163538639920356824531801139212577725283290757645220761105869259634967608482399312042321929729998861501535109687797417197613974261208570508471385339891625446569135094156575162638953302332026307131045308492771883640722715879937474065214649382717795993285312094697248434328373975041140437058342683454275651176886062533286874153381597814657276057168619510137417886292055797917949020003234606735330590510028609188148710431508632259697182637214901540153989498266289529532923077681267094985277795351245613748508061283003463225339374659911107925390074150024858558548520726375466314733934933712349440929712179939427764382339274781662059481566161983533118885872894129290050693524915097911574100520727928568626164000594667314113572258678854068685277377920066394786318197957080213536834140035302740987758803415934531674671143473646124727181262234530232308629690989636001042818262909007653595957563004063424677194958309247578288065894502091651930346432351624661393849865569505885425042524750652515472257829976899646734902496368914009965870428249254762256140538881579612065845792009875187443908873122401105117839415387093599749330175031577188317808977017655727564436885100272741264926440399548848844662476029474344102351523894340590457201538016800836209421700363051883414368770877908827085319150034224997810626389871226676111922946967500584570820751996125181505702165032969404319567644804845954614028943647523534472718694873133960254634157602602297237964010354922374247814081189488093771953549610689447621771158424473006708661612452399684010691119684613702404776277825523233226572267995055174361422769842100675774274488866930263366315363199207855144420012832318370151600764725554874020227268153943329885912833900164255593245500851555827936128964150399301152548101324010732165723184483526854396422834011515650825330573090977216509495042199277610843808405115774611595431100771119010225168020658721192208976271179378287855511245542455053929226910129464674723257664477845158137100844771887992833022941632556504903031092741488678534191628680507767174136789773528638791613626144130053198550038399497693916064354074320688422262157866198684892366611123148945530903561817633018378657420813402944071237534549196300524806971608673080356159772490326426759531451706067231947975445668188855777976617607726777756427028305827786299536505733162812247036841687995887894897544942676284966551696170104162681757520572675538881770608507235674724560768953687633182116440836964226563553338265657439353269882059280345400812615651366377390002381167066974544565153883504766577800618882761822094866038103255566050978221376297700239853440773753150087375622654393495174886129701367635397744738151628708810620091245686601440831503759105079519973467658042737579906298405901539464266420565845100261139609714507011786596024839394143127666986844140149999880333667497943044827542241160542258705283542063285406020738517429295229208089597907903802454448924935984492574403412869091189157847777096576004658094594481744114309191707088427782782049959436429812946562283909330883227134411726458724593908947337149698167375734753771542174141589254401348559079401605703492723932835986980323236013336189908550154804237595841137291452912132984397749693158837193813174645865544478059169788495891039890889812502875480111573442125516787904745203455764025923970956740119370416574342652225158733569909223711822043637854785269920258673418751625542458473837524865291107489833294462267739396708288316158575352752797089365961595597279950821588365285080719835599663992293722826719568895942714284803095950478931333384033652013913454793914807772134955709299697774903150129874532192070772287209429401868347331119635707535321647968388065604347871177739040031632416030140995320432741356026584432475343027192426342763061953311304384968030258794541678087904732835055632623278321858967458340552190569592586782952654011550830821049735859836993330413114661207449927242065191207914900515866226999016532270490275936339074082094881175882795862142787224633754387589834642700692392222704631281696954186477047429577727670595129233379289130515807092836211682106651936724098209488316742942174824971399968324565106470936031716070997364096532838128975058369431883275088352557165479495558915512182659227477545925156501271736612474544716963180799636722553856834444447953349067251272930440191519513807698890392563331437524276834415732806184365746724834997390578356337050271815804476224178685683156726796658207157017485870508112962767958267321781658254184660497288653164185857040698540751770332567698279175089361960356775065731316006658595490477819287899486476690209895661906898734387749192423587732303930379114317925024810176323571402751843629554777714510906287718915115780027987925596845466608197547367077141491700245552435354734355663995543934273256504830167839326000691295079706398470456443053047133272440375087589018064848291324697683922960438185317349518645722503477100302225236850704853133749222338622310828327116609164995829250090125784012429475139795313269697409364958074519060400735073680576244691883938745882510183628897186495380136480777673732960407840530216009674785423428536392699125927168249652500931578668747948267260177905847358901632550421730379585428986806869159210922484053156957405848387840337915766023745660606906345347862173752197613582688426668869979010476781170238019095699065369939919690330213658620255208013851546710667634129860867685835603253960290338405998958984081710333494731752693168077439188678714560902250608541543620100716885497232964551091827086062503393522651572863785821172770662275983575342765355230716090273804178535575973559524994295896044554846749145227492132993728130521450639191112734185596543290840057772128983610214277477370091758230449921926517914154942494822161378643765738624186148461506070138964214639124179654655895030987128373413331225246228902775402199636375670793266843178485523928234167753941547701733242011531636944999593616765068954544006087216198225315056972378241389669361777103840023606549014715065436355902867961356038614765693900018210258809346967283793399155116012158616488250487045065477624520939053077689641030130972547559274217202013196393050177890771676333983569270951072702184443140559801422421949153535456359651862766502822531534994552417965315041277406855268202358578364557080027353667839860246073177987214996016227367610564444661427613887190699376756314481374117178292560751879364666669451029216217435294895665049963867130922663349280411256496036250067110770434556086741842064792505117552435295602799152433142922235026155066950732978917184166149941241900315770093578376744628021876226859701999431595226872217594093898590268668240395230291279149233819970169941109663779070499606219630432395672646062307262387263902860046344072957370633883192054708257485384532721970098097887585786574233632600289711235751681639167336563693705121402551779475897478395463467789088231466679887903303756791327464188889557726663460705298006447996210252442889655112961779392528638538540373747528694287767066209729459348381504220753180015922266311959482072147057432917729394242482041351596457677206130532288800058084874156818901312624204216187947711662225810574343091741939038746984662950370318908083660984139610977180122550185425799052951106209459851159625615686842692907770032188126925089215551708455331989658717525524253210571325279139929689548236840347269035940586653953799144218052641912210225469409877791987192095871829025910463473780249911334906529563922672165016293163461858242331449875025895167178535173628466007312448095228089634688485369911165356525798925224846822302015100363459110246372731030343607258694960526487738908031412278365381562801849272994876709767311064175839811468142969923602856668805067164484956001210844542833896650524515128375317770984603498332793813667362262886728249347226634999614242924745323542141985033890426687252306386495041580509165743056456160214419989231345455883766253952827700564291961532328877921930536219898362821814564324722806853646523444256996973934914639655974522926510116019912209709117034940242004067868652327821263985763966504446932729657059841178317507361961697158883759962192698781632133067412548716417735188467709509919671060445286827847760628306445790413190484917082132518300940606566580093181839045656846673561082578277160994599153249408421889471853705967088729822740029746888381071363265252190518790385700148765021114910768574687084832311049196212458771234444527947515070008900520842895696444032620615183188872406615019243673870269261311636919752162905979137143186918522498569454742713098268552611551921670064623889440254121705872005147894582736821930226641695881616206232072930620479261511806438793884234520920256015342119300422038120525742267279043439168892106472788060473906357151850020272563842582309517235972670905466283833519948894644006177697254821430504899874180793353930608343574558465679541193405520764044383766190854738138003541730740299952010475349329306765662078802894963224169102552055467489460296879069387722199911004493971237371774432347360154214046292434128257921644150555639318681696354376466877564960526424561209771572721430912406729981210568893489742254257982017531147459763806948418011916190182467104928993333197179390402532218934830232388117760320060600172051397006479197585276627633666710730546793583307961802336354490667480288290553220692210216827294202648054151155196862919489219260480298008564144019500892434266733237699125637419236785837031502351995964132663615459687830422094885127796632162046597006755236191322790407167411304381805377148403931234636003917098287247816867104777570716832905638508718014302909448282665688342555609162514941400610321281812014047926278518249744849728494513560345790829683943772945913635260209373180753441232229186599202828942403601373467527187547462474625300388249438699029949554707323663021576199065112735100356343376342517778569287573955799317428482723737722645800806477922254980979242551887988354603285202749063258215517612652693667769662728738521993628477885572367733102081845074278922455224549521549967541362062814368132012782042399594302792820750771194647581652300285112041696702885600360361795686472578661113560307665388806041358411905384797056471020170898693780711425131804591168454524510466070951254224310390922815831353580443496896331476841692515894261196143216017685346639363603198551512095754292674018194666117373099589834677413472372409578034323213148649606376879275982761084960191115419798529933090297945199301170621309486436856746779840624873760667747930865358331872232294079995911433813068491983252069217348129176194446531807308346445717306854662775185694796330766594189294311353038912893871877115953348336429390636971753186178903827045963682459473680303733070494666987572319810342426412633969755215767746979031504762025234871025294139792433793453872741113309245234745456130627569897271772518379564788549507346044777986030797285849555551891317973364448133966956573639183131323408837733362403201351903463775398811647526842874113746984616237120757040813062007173867067257221958014314457059932421067716697909923314352903749992236871178179322517054598751134317106774488672320642020093120258459706063720265421477016183131202064447308350131173408403978055617905576098448259710717888198269077111472613213395452590298259027282219978925413547424918476290467922150704824421839190946706942926389922583343680014378454410368334077257620561322855218262615768728496514869677693939858759015179744217629007453694672884694795428194737468273229284084278731501594028207395485638225294167232958296795586194124692102553267537030774369140971023514720410674446190548672389530061782696162164601104173336799584816485734322520657294996743074716101401095940721279892699334256862085327073934897367524872686436906484585384503756735759107395014488997217722045005269903033210055608344400722074986860854307175019210599461764050481784119347003762831133020374714538459463709248573079848449252125977131211355944319804128100975571931850917891161164440082611372826983842063743052861810540675978207684669683857344765595452081649853507837734027837155235870515062956257960465776459553029204319457128978885241950472363373228192610581399452203815592042353453394815879146133531236954867147024589181828732117321569204284409698139424356507982518446265736510152205113983241487760594866909205004685138978374446279751111879455932961983055085038019036225925942201179278826976437005262019584640411120095998533552489962813446825615925240841753635124345595922875552001722528635238705331698731676145278934873125567948065760856810247148602177133931603720698030403962972026887708617868174594978229102803787827439119893381486416100706805092331814435019898933629028391871831710182688485063209258371827722742900970333989770337424550184137323573801545635878624906526814698307093753402915082885713113829312583093335161452412829842639120326721157125325878553699474962828925283114151066290847151966589021598275113798954250609441682822139560127645613862677253791717305617926593884057734580165329534171303930650844379701777718153443541021818092063841938537307972327093509073433065292281204450541720019768462585471900461433583590483404906815780559802464713131267396393830155918300155052233018612361501371885862805684437485904259045559103202972359380099873724409641574009398388948372303417533697462869826429206020073600856785096188422790537220683280913482285814771149991792774082809095897447731835974592593330280127255126720436217070347872718423246718228384344485284925203723962199061210888954829021364258677978739887174719273206563045143428301279780874951513221556735144774973806329352754075453436304432802460404032038178346609074536387136222044748843036645025726325553161648800816237285385738948856930909151402990389117673933536825185682529588568023210156397018649580408535512570015249246849169104792772326606630504159389746391663897646000572794497198945481879454525136532623811739181129639180475482902247941072692599535649711250871922074740142079559130565797373638617257232608448197678726388963400202640800592211809937937538189938614037453850916546154202931012934475341369125118467003990789593798009554334423979688245662124774675584576840755325767761229115796931315628485317892991837893587485411612752933910650093496850004486116676084308592366710132314567235157902649261530037474802407727267655960119369373554778369807553528907964810076722026071734479496842433019735766709140831047978837647941229507278819812052621395587888463697818189120369740248797462454210889136731454841156256371472891371428020202898960718140580707970916153938918493996679465133307838706667939989202134897105037296594941260439906043107730505402006499784094207522276832813295492094617641911606818362170806954421420390403316887178208401871158341173769572001121001468002249442715114819796289785427427595188836162784818938355206455778119685531219444234488859997874031020392923962708957125429435464313408027912317854378036208538378985989635857834477294369336278809515732849026791205909816327233239919514291013428038846124652579193237995014597462630236713601089983831567362371071811782912048264904928908358691339331706452061309299660671118528567538955551643073416352835326111641423583901950628124561492742750891953892454725147153660302598608104352210073627763247347801161628845600948779347789693414548713049041078192853058641917261318131634545340879581420022293692801199869323949372029421771066318672953127079125548430515482992655990493108131162193615349282766393430171305852477361366605220074485210932616036202458448928965000589257510940859185920042354763982360614773796584452409921500048425903660619473073583955970828017594945496756797703202788940409566954861035005657446474284538274027930156883658742780749499172203758135054757178758419999903937504160673266272789715490904115723275554389356861664488612776143118591415133079279323456926024503002360729289083887524397727651060743006800413856124065710495598971818920608599712204782103249057757736784803761135249398770461936556494317601313573215334154684441426870359172720467016598046020248188195074733442287503326058110486160603133322932332330838584358504037132394510561260484615908645268693661022531769504445785939949184056465633976596248696578202244657689057012084035639540921830935184898304118879486499509073678741373922234271433008200160157980646984935459668485411888717348649711086798285325831147035199794194883029984760448515418847051137206512238730845169643812481558943412466890736130334608794019703494249632238124482716471074681427991920870039146802956690484303831288682208831680447222258871275287826810376600328399702838169304588195762291985355440784011312615301995802224261207246692265737203769463756112219265149849607304004190941704990753424054281011815053678122384650608583792391005203234023166769922498337085071831326422357358078771102315830923703886667656092718531469349725667691986355239044709887965317528189922171129817771006300560305444935846096648798797810389939739465758406287525474658470852617606598945810057665537188736599627508216950098496622691580515810130723620041406090202016632533387361280042875583078956458174429853163229309556524521852001400926958027387051047195105418818195558366714473382518343667405916627050071641818605175834608819879010261962407533704613257956573428226986017892001673697947655894262969428259951119858738685631267903352651598726402845251883001267214820908015500111903114434902897036749354472641802117317949971649163045798649280126170903795289012230427119140433080077766951610208260917150964795126309396342684232258723295160402957801177447398497666982954595267923992389871570249242533593199697168584309641234974368290723505149734705749595858585738637995492175792938102864418246879181196872532797581435383277225109711232174121023293445481291950216150397505709821828625752252539129343742845688789826217419324291701707521256054183711725802442023655336235118002371795096133043050282088927996236304730925647441440922467397104290135077518615489396570194640055444188881567875324643171186363961640799914466566900582990716656512048087790325155870232925944900490123283984829495119401644531413451725959703090486830442558465424733134035730888957680963440752480688188992922077845930427737433541310705111453748013933920495974980177299694892981509085570321674450970077832710643909264732267050730761133417664388816132736242013426841603571599515555815230148925304291692498491530641332266013673288964780837471690079205142144071085680009963281479398479515015916863153412188353287996915630975780661746166375917500947280092258490420757395271960328743789113336912469946921033329728390326784369145328475554520586427949658232064780590061310666609096296149429070322222532914351333418756702562102649543511014595017633436594216900978582592825725797215906276155044161857252435846965043943940580600418086646207689438466846509621466370277368969992272622234828102940725560545862900300326853749814740180237072866603878446318414827753426474242496392672305793375369821371772229662393031016282256558940060308523406806560575992102297568384840174451172717769233810184393348825050427833305240499761183449279652926113495370850311824657349390516700932460902300119169114889233464428498986822112574204381589794523375682040494684256279500395311978469979201032524714994659477365482890344090768422369198901523699701647137099864406205192581111426832968387971895028400592117865420663126440713761447622921645621872408334576983514526465063109877895237537109603212971432241858238001887237568022775300771267203904420221462707853672236767865928171564118607522779418604719152088001088610559147467752402573673705224195926746745282811799776644874919914466420019259385814768359704021209330528929714414847664416544732248410392714374102842073544490143654397242385247433723471389499041006254603737176432042674526318826598830384448843948791355970458139532842924713850319623598969602766606255729728458508779881768398219523753728514473221401511859422038421649082767550711110975992026713608684212622454854067261188706468057506710073017893055350155112384630851788168006948882115182259785563681658612449031906334340752463067081845122534639730912146462812289054646855473344809305034774061723863377640612573000539336965629384511686915715418890033036637243357504988714211570659325286913276622784475808134028734642938103279481402057870415525114389891016806844480959003758459404705295272981099581093756198534183993684930371629114212630123776447498851901612299522378307577717442226432737323340420825245479518544642359575562241326548672486296782804126183167931664790876945191401165723190422821247707270594433265354508839676233403189542018328448033812356383273761161267787493977008181933284635337417409626360818696298337331865762551030456824633474263841815267762951233356439746663477375695556584504256962356819993854533425294656507245316494903980152584478686253768206928496984811439978758749305633761334571363801262053820145935840121784081727151443379432518534846785581304138536142179051964351792327430245211733951598525667306692975127331710209113384880738566766576226259365658930559030518688292748007493797769066002856730338016265926581875438669585392622796662900527882147642271384881621016310245258990654491583386560971592794693226406175500226284707562741216169011373277965771895859601215491043257123198023882790476282801994735224516851387876155065922784888939028676291932177176289478538974700483507411780569616012421204738958367718644727617917970223411016263152219706490030325023247503672154700639565648462597966025444769436422953317002095384991934511997045213680486436556380367836497184565767828393341940312270811551292332617502328521447583428230606669146716051983115866645974599874802986886342827496884675545891511247448857565523253638011682854871559945462213182608512262899471266473974980008310858399212122855178920868161294094558564061020308418958122254172454805582758533872165805521491128541797118291735802373208061839905304744296015377363114866601773480346194976782248930029636711078685749282243168061845552107804463815334069897242559816782184975872007631451416246931084128466886008279935188794583638229108641401100591031644023697038292222763808766306326868553542161688139506473755603435710691858267195703176654767205986636929274949227949162597409784392878229342983260228049942917403674467922181256880259663047467591908501058581423782921529878541889415210527599776904381103425783690962310090024171103113835263681088137345230197416139813407674280539758785254430467871232808005622371410603654705507168123133547045617878920054782432967841280721551792670284898177924475192642811755402333516948281268083310232019273196977445924683372875587076236754415047892516066698345642252544348619885324977710390756653121751842766368367237086485263210114553541339976145456009851010410475322051396059369661979873284377097856012872989131140135534231922898355854968565765980731658643796241591180638114528286228600918395501744115630298084097359355716326848395174535447595948335816959093259862583043528060463767386660697084848501462682984800446347832015012519812907408186786843973996747994564138653775317442045305083369281333852196669068654920206477513651324416980373615326783815254929491865699530430632987028465572743978323519358791810537185145348977627525088626922122380675483225662585285161023040692411811082859821094456454078814150825265324319423384144688441981719955722563652983176887001994699887192079697390665359763800537382127608802071146174905097466727727298754882180155136262460197550800607546830912134407451398405619378228198393842576820982530028755337916739446383105453708379094733313326704016875088746806590897442619842542950703698609613645282243097315106239600117349817031797297607838094912763333908904326364175878668142239924595988075385000222369885174677377087859002063846255115429109391908952025508820328484053078912490188049075268519551435830909366848517943602741950399589084467257620847547292278496712363550507309872266759823019844093602417996345607876255338375790784999123545057253093339678580167503711573197635462758107975839453645975643047364528342223118065500918882080030103862338680804388092971975605654163414856269153226154809396191925655489127442951396559972180884418078132927499188436951898997720114571015288235343377670691457775060248998712054625660666864595376052341093540209929150226668236099432564529193463861690357373224211592388888945303394182903879964553905931985539410839247687571835173012491637951666599744483721873436417745127128590177819247242793710270974820429261040639783979251106171097429801762353778764453058497908239206618130991763629402192607857987605586751074115652378009623537718680219692354368480168412355266827967091620479591864907069946650671905525818050433028476034139629108009040161676121816170368332326875030000142486111757559853670519335282084916589297649532469742497272668314252594494184015652341766236405317779291775997399018376987533162611003273239548504265492639261082159961131197037239769926873618905802849995943378150661422834510129146182123455099487883270401953943219060268850917855049629800981463015133419726866053615600832127203356451642980107582559092132092238653520390751909902615391641052532289769268937092875219563577610309777335548980117757058995925482669421323632265817868361639261680011032013601670665749950499403269421506792154429840095878259928020179575141763201985165408683953235762839047576573664413216175520776162020375131423672073462541473325488256526730031516828685128999863191553917824907057110321273281644129089923569055602808878474804387650439476889341623899063758496605372786595713315991627144537085825177321385354704188557302156180576926080980483120016536822944769668977187995537430574837003025623486823206689916388698979303740109190873001873248023900767886330210640695288177849329748260220706432661020801613902715557691323129925348618805381403371890770835761709955580925562744420266454084160594504079646839371006159882880137407076352396766274980835674965381434500287182216824452423489306667108818161058127509421326201561410773004181906460699571609905558512062689754909559780911513406086306913492057997253954629771809879606322037563426800757367658245123619398506226158684337392507660143077472353574406668280457327036052136250782289700624009292377518223785259895639878663185487798161391895379085747469522050395069134311447370118858885741217314437087611424149202329193186523582636372196387837289517934473988785417499494249139003607291457446037366383043752528719104113543396278815425279873534919317011226796922868824466251396755580612507575802952142210892310094314237170227783138576105374593748767021841348033958401080566349090756793030075982971924242361813258951326087677166829813521728837045846536530178113551254724229724162999747723405884658944258914287680858362916543141891024628272677349275715996583076135013308855413194997967044559067670431247710064166387348329018921681688878645039782994949695429812466169706451151062863324530130834585955445566875632264353712882514545218630209868124564793821145807179510460372652966842243132634982609937305347667060107135735917504077860331752908052620670018155969164570013467036052450973939926380638433376732676726621060395035421527890743521073049298474535120903299871399083587753534661259130717271012538867539007649302549729257589068597196331642132689153395595685803748896313063457058533423735886750882869008889547817531133051036189028812859369859219309355584915379581665062892868843501470253854379367577013504396438121842373872615874301595211622579903706749471646067200220137214642120033474694818941378678737327328135027134829756371888322846922732315670310961254791459296531466752681047765804228305317438022880478923895735239826851637883815030892004234040867846091734993739768190356151638323655861876072791037856399111833861681583554091960577438268400898248744567890672266475000829511180303034318189325401089042374330062189409514251260638306083129437703477694332388516040973911589716085854657697334959559943265498826155676036001014269407425328122367649311460489713965385705045376680369633644113266553290813759767014838342051645090192942686684390363030430482334112895635419551633901437512520262154386665981448747840234587151772244082513296694611834896573799216536678819535058523544812872248962753388256291338079306212856852365556774813444552309642698849213467751173242427581248957471244431152948050200175814593877432554559898146804567157652545621557896378539354577357287568820754183292868293443804074665122812210331293666382490818145366243798957523014308173114048336790441001529422400765625464096568777661504665682581378564759152622066736633666181451064434243327338459038250245606131142139130183060825099234441390006352665443590459553845327956093313770478796452466474431698584070645842788401070676554770466062962218948693891165644535733767752685732179679525259780245339328355653291534225300746652016378879328408576585475594812283844134079628542540440713552434709680624426005488666911775471840399661706810370634625766854934792170587118731427135492749064032906214089823795205252881067363119380101253446133945994985242348718426190054838951667913135295412864826539844200915127150293563727672838656945844876833446674311332460367580190831037775525649539540949094665990675909030671827800787481359161217931001590558024652771671539523508168603014237960429939555147291167366745716091020987597170722702464058658773408246604655714773342739185797682478793968051009504398973297880200130331216601915673724433566149790569048086684851565650092266008818067871136781491583306730006818666996444482026776070566465855743105656263301573956341364491213199879806217833458419403306741330439260577683655323258602838107712003241638211632590959799870724148812233276948936173603702228805774202619025844027647635667299176787659013465924190438337344460829872835442523865956379544523495350823249439278726342384326082422771348923280440643543518480380718618264647502441786370871415277001403405101293442337324148807198343280020793838382516074494808509390134504193983785527021357602502983482728658270140880154735497302279316658316669894542392467035670966311845664745858589483898562824561986665785227290662384579599339085825857801568497271810886371680155167304524617465351729272259755129288802152702429122946472262829883489150203144149645129117060017452347225857965522722640414063937141565305159769522054211037705588555133907636066152625199744166065676731008477196725945223049767931089819504962121270424405279515577000916584941414195871495584968354841914532201367707524841330536794369135925540920786802563491168505943251105774413786680676881336283939509313568955691785706656086141342809722487558180601449871860837948250013737637092655274787732219429909297401066034841220002132098784540437055792740170339446994969674708219559369214467798660568387136963265663715254691259037513311938980993132886141385296428772199661546273541550772245606982280691078663919806389727977913803686210100133562322639422801389532152362385940163743234180144490328320259496193871739413398161483539475292539537928925881929991961302625261425002643403623499869372945506343965719424088506842520230012449391378886894265814786806850156007178655538322470452157828033911684033056819045686456939550788624364384947914542544697127893026829073126945585014412273819893849688537216178685007057585492849952669299151548970480148383549865546521868280417267868171958885937345209975174599683919170321580333275336811611050862698202123142899128236883472961439857298559871462107596766632474138613580520349481091058843842004815789872395888410037680515629074784113157783230071613403006547058712583970492736307816868952168187230755045105021261440095132873273063717965695531806513224364995871782580756680473370345900883064100629845214736223701594286834013712915787173570613911430628586085942200273025024703695056614754024247916603434383929528091886887387722972830905973297706791558601254087253120243318856938593875465293640096728353795174028276153966025860641610005807845170632359829166474444294697730021010756429950445190890992277486730422313443539582137648714015727947088957279346979662025906270348101328896744612844959603524589634747424866556971926762459466784661967496615246333069776581610338783695333217389146220696241907233453272477234039189281146073330561219885520123312130686361158960911445087934554332841410729404798026799554662708190806343652212126915569752478200208910763049574313704136476901452612931472703220689046657461572994353243247670456464991013718943709512588481741951994087661187828205216781094185343702316228597780443884855079397747751007125041385015152454556366659088214139874018484241915642071834852968034578303835188280025640301383046531434704833728854438075264319415674289820218370665196689944678084582502187819864417209864746316417935342882324699584964103510386830615390320088378762141188475911172377673189390756488518178426686397138359755503657159599278832811632388790609974708326774938446746674583319245342794528007032432488279882538010020633554547046660865382124074370978710258173396403196877239063391829951802840537925039316554471562111553356149604689143878089916547883685612349692837480001369245313008597828657071293077997276336386909895427851709803455292808452050993243275269650945484563482483673091376665078103566725734137774356115592638526497526023366653773141592565673630091213221128099413990080275706328911621883110588771969815792460832057324104902485229683449475306330397149544317272585239356394360033469884592003984429387969897300007322735198554247983267248297433930215425814163814401563418393939633654921168263109805545086192080155748222551774042815478906838111665457164067658066011376461213574270805494805959897982349311073831227675579510332757682399281536539127928268280452155457696142462505093584719805236142578061362744705018070942339625472381856520932640849424224613936591421209309551818983724940532556228180547323287108618735881070666733532923701639155359440111799893941477644604283273456081746856938446286213215939323586802110475298154004965122229009288143515026061638214149402150786636911451717774655056711374564741725121848332824941654606534128245442767694679881591172919808520253292206678104077236338780080930082914967477886011510848163263910736167474953414066947285359354008496557633162745953692052044081916067138704528382971108943931850971900740481218807568139284314132688186658674401577583428620447838421207948150507211892851872565326273637637488744222393719369325595321398565483428494284645119062011616310978418253643692154140823284094394427787423417500933291958379907731720350366069749673881040431125798506443886344477180780855963474696247178487709980312053231634153827635451490236623856734960591213542094823433572608073102786763284038741351752314850070875938227417471548206501232726081203888665835167721044496201326889452741291393210127929488183157472933479686243191123169712234019635538619340773306591066343610331062507339977181452575332634817911201614307006561208411928952942402180956934456546479931059856741513421104239659375531792510780953979277639318392715226400092904338221413975251237607041062245040657028767377302980761315734669033866442015137555528219153598135079449376570908295475617355100682924807039629969633357243267906688783334304735568933224848527514102238551372375120207468390519864233966871652627060881262882529508518376103917411318952764380324594172788117093274850684844895172876797954819104025590147440992346270757064979202059639366735636760004785440549826601932493357230804727083598318620624057493787421236131577908310572244919112270908540947664619938784026680703128396830637711966300940656032408523354445433913811014647856638808557451846746035727520992689446814669065065252264792788595492775772955044455555203948928023255230784859270242181677016826231063501033819125994309568904358528848717490888595256683327181514234929574420859772288415191066090831029050225211918495205776400945084624823427647798913664425349532459487330272084731655151660216359128880936316794035514189837024433895586056697621958864655621769739391541125422847630593197438762597384215768079523118261180744933234475944162322380248363140301348817040841942978035887029642050811601962274148719829254603926473704776255914455397739400685974187697359809230689203925131934688558435464726268735792936535393774226525364165309989936267638105382751223863777965204973321794760577249672492466960050751227316415109089848990286876625928874559168064652411397095960028481540236838459400799812598034974705330084526354641799349667283716226090467288407207715970414488397463274427492424616634936130499319141859485420935881605502082424561724712935828907769314060047582818267711252576484590244952948493890228011919782234213967686520102520087761391865795129251309908589378139195874957428815703647936677138515599056116136769071542056947525695017647204153428916126622127606662832395515087906848065357417812702286568662882767768265970592020230527366650098834986012873757256739335817529014440714727789664847546784204992444090370754828540591086853358288502471986153910285338334683730252355612195171408506566213472932497090092747933050564944355993918312897327329009822106564974511848740910402670705415964215850592920679669894401684141072463703270061829558536432929169550639857175867289161844384964283900582300006522023791626745881413763141174719975749957676949041897999966105037308748681270268593530986500161874230437025280745486434971684169663924977734951731256938015261479116594743055808549354185911050542632628921514523469516667221048839174590256282601723357766921279830215601988935604405764467244574128893234257122771020892953185565185026296190162462486223238612112509284718270659659392156762703393314487520671876765053427539944746233796706530666175190827216816377986723769133467050957863651004103184358354600821193111631885620175576352287268753408897453067799184246733301223901277163777415092038894833653995455454460970208610041827425017655841313569181190762605200818404538739772297468211059179173553317260829739469732150519389798096143305476946715646091642299458227620983192739152377469780755524963802388290371448874935016146717001882707328204950402352012926136479856953649241990017611426629954869792637974916034422696196630644229696259654014913931787726881256303825041149066313639381464121612760987616139456986396441522469782646457651711689902427425622156801479707478082448236857254909113864143322488408278206631198932709248337685502418499013192434435675606515626724794602650906875752040080117492968940998254429917523258617625086821504632885786696708236487159688419318713910456901200708914584372996785767387802642928492284915873260595866101810829351284281744191852019636373345325413922613973416042594749523577987961750078969077466932152085486306290398805138194865105856342466083546929143867606241798633828232811417503886034284305653382079203095346354601537111709352363306279595100903498440404117235286456152717292947909840434074652258992712988084134237010632171953984307234512409407177349543034585884866683735198681270738442132676715758307476750891406771775092078833736691975096098312712392226390267326371325920372647720210311939857176150507332276155218596789433673346382929360793619928689743920025012805866833542636608162257630998463442961335910491127999445147191601954574373516759123225437110833477149991669123095681628568967111227708182052750838680521491692838787230001105558101079848834377117550413666045658049303199744287796411469173737575759279367391265705753795297408303963966377357912421904055902424613761009299152001318509999594283552882159212853000322431770726511714991321501384023240831588388154339111292520595403273730348868794676191472127504974413412239255497988405363437276305591462870987555661372260557459951598939899592851706458012045234579210378514013565750311672884025421926546215090525303669122832090271270465307868706390555676992879896249597018954714005484991115101733184983856382335388445147397457406263877508326549382744073899623586623629307413410448865036142852662978081321125630135591291125517704607425205839895961505841986928365841191020615907893124047688586999184732343806541350534451256072981686117076024770518258373464044568802109984122491224881389382900995551889771083217328545127981055111923103481615899926074206517043113472225494462388734273600742329952792215634487376797128930852680467907232008246053760507039702484450159577532988600041729101247327260691109004945591733179496619796730671302725928974997836578204410890983324202487495574655422243140013840250976972791944891886799906262992342943675210035912028703835794622775842733754292053241589701271383852293965245788315610598508465284138675824198076423292844653596812854655729421232799329168773657349787746637563278166953807961332575493205865081257124497006040556505214370070289032891765870368046024324430891698901798950627637454537079450787249597059805224887558034843415606456383808250039122121741710032959677714874125638608808968530587986002826707848862927471499397146146038610063725808794934949604968209869012344100650457277485688377830735731275001549884059397445875027003640869497962895554871823407984625330962896715210457313579016880993686914129097615087840876587319038645292241201399574251761126814418049467729208761194298067329097477599592921368004774396853584358876709534751382026934035882813884116670950394686859292487859779123486377779411696734836164380928044788745050487663755513552967889418953928548418925661962201525648336836647474936457225472088666913890312790684470781139495001257403103426117308491782800882699663320432575467254453312247676669758935794392565786068028731042171122074782697656917118323979436108403468575944929841194810999358390937271366061094687659024820573367697969492998143891005189089818361442721399617384390843293183571739348212933412985558096943218161140841282048966952479191957248328540990197367291598452414459924498486527528719318314626040872659955481107369027134552239778544391226758106837213755807767945154800014394774906009407181779011551885084924120979867370736037877340863480066965536691153298119564870297626826590311009516650522319217874767243229573101116828114338064510471157654820880783245172743198291139530839639973037837236043996801910957223404027601294692561142506717798746624664038473413778448546879956358101793459876317190660203091412148147169445149559020042714111017386860682408022074081040712827629593885599548929290658772718068492534739441445064914121915798534014817272773897256096923326076571855334026378630811679596329115779100074581595742321249446469356706065450164984656078363146669290749795352250862670033549475493860492730583130428698915631869272086495546120444552831806658196475429746742941636600680716862585467084746750491443018974950396966960750409825300847347739765009288239441032127184558149060286557211237988366788788505946701279361210285035188644782256932274260322360633284163395468445096333392801827980726043424569576381713416352430772426527061287888639326943926699228203152516827228049181615523169944861791019892782265657975864691010727338604860994388645161755259329345236831088451894658718217573013724702998095884277718968084891111761491820082255861410161775086978218682176685905124373513983404184176529449058221597063655838789201431064236211818989449199345803142510862133326044261017907893478896855702045381338683643380048324381887938156329535869947288542702540487402941850622482650410444178145297753399273561139646213801652105496973023794700275429672216030792939640086809434077089987262993899991596731636217513287252062632758028691952119886727527225779358664938746582748938161390145598601251698752066985557533166002976365983860292463419948846616483027599283401727642129803575483161840782053987316752254515231597617406289471040298419689759009094805180858864492215004104108097291448517252474066832572161061503230457753286991808510369329037369347212075776310460278117365361612684901482055721102221325400966819043957031011112231714305047764753692991838122314739911344183808537648082708725723730421614137710430047762219489439794171821704597264632159603482713842810999330301650877834790194424470561714351627443661576134286975806849704072444987199715153878705601304406551905113142843318470859873493233034347807041186165014195398834804760449974558083650980916590962831214970505391333114417960297704611762563909983719066329601263126773573706909253293646378522012989085026446062539372729446561765220183316642965282018229918228414994842862392918399528802222388799761497651782783180255901504295544074531707611537772903417816294588063553804227456311670975501317497140518259779505068321049556841601827717890920554955555698848760034628745379418848416728735152365555140921187792531544309580832282053985019325956001371443628789218802736934165371031266206124251988515365539504795304803136795288524871893466641835263254488570797878084161370651878832401117733251216017758831723099465615009241288554617457843604175937478812302556139629652810026820601816578551657376866352574383415760166340702755526457716322960605351641389077774268169138570704848657649791299910460569083822652661551564800713861982360005923912168155331315625455382553241577810240463467098512370668976697917962789345560334444351699125132945511760803616592401700179937134209193803702450831313646588102716426046994045605003554638330180312799938645214179334297907073412101672040696439736069862423485750886942261759926594786550895761175582106622159989328470960935311164581377446927056350018142023797045015383499695946902505825053407072196395474007422359610453505790841362298594854578218910164843394173697642437798315862993877213338383587338329423275034026113093175242805754991562260798941828268973218429236470301299098536447699023582870931033185959882733548528979167555989443436094342488485765312289923404631163840330455098706249122008508582275120080686108360647988067909529116873507245031919673093680118193998184610289355363145709837225332251353695913013400529184844015470775562371147806955915527809160029339553862216191144280329622708680004647399953305750566271057166576096163354171769196352429073827020531618886992501900091391382234112353369048415614462790064443479555530934236657188391338973999959458530723020458768208030088095498224898614304247283370094022678618802096048318097553986481397095595285503839166382618293472453277149403084721215198565512679476134914847528079947611012880094526937233982092183005373590171860241361518839625308369025101633669756404073669190071210668655026684442382093566659185585186029533111359398706949425025597509601505836992614680192509627736513520323900539152967604668627721191736915860131289886145705075410748817884523831055533399745357898836136890527041476295355035416307610845373728223305538932736025915394115949279798596361354388479083726631729861568401793463015950923723697139964096786054034928261516532646421808917510794543459578246182295472293272705026751644046321794230382027165177567247860724632664767408868401252331826879925051985320060301371885016187052209588452941241194744473874420905352058538044104539418603208602816271362848852773034891510323937083892342040138803389945271651288121564544890216456799987663837296574273212449823031673012933665471303934893805854023772265575246470653024452058725125885722675262075420266703465241872037297701311101828141042209984089847433374713697987769846274468362425877175879299586369827985899348652699637118739636126090480368158904863190190364671040691621751771887529769046736617739160525132860056953559594084829226450568705044614309417478730609304860070491001651789230783146742120473831194266894615742597742567859060768777641756225717856490680339337304126378118226632339140465557265357943361089489805125033648094550314103112939066314621217900623661466795762150126156074764049558004435759418365030719770156008538481634876852764354939845168737615877308891716481343831265941255629289265647306389889671402270252622118388609193541395177317042752386777685360467175145511978592882894392577671333446920796190434410879870432455547165514947232829451940871593019213410642101090087750142294420315785273481195859095141371632963780831929164979409347547237332345259969678739536693850651451178921909849606709797640915219824530300842249984133203434213191875002163444477959903341392938504795604061195584542771973507781641184231091098434886269183890359259338263984200681414497267226727576171161682702331111087756293032854436970376026674974765687468037672707637438722525600131910530634559248876721137147852221008265224392754721128242769833510996775704140465565948925638497431223607275702332000933833147645416865672596330390531983233187103071753026398917017328437683282373567694624788502193653020660899170549243851047616621271054702941418980805822495066373168874709883990709265907660782892250873081725725863601518771848129849891996148108952536396148197114910725360743827066861155814305087100346316065630682456960627536062670945592674320761398756782833435598272696520517558685912662085990691288699245239844816218680087777307140699736532755160466259259049121084901629987641787670809656227570694913765694921493274983662945524992789062214923867486613931245042651947473354109849404010885099551867948100629448622339029082592499348209457336417694960828732517094402157246213571920696050805488647878435534076913313434430143334930451374436314026686046789249334258233729359447730698466006604076168806350870564885865340382500958672065292340893043268410036458476249502660211405365026473077022500731726562299475119432302030639650108967360021300870040418620761176022662178995288646930179558599761022642509162490618562984413857381700987902475084276628061653814469395049159748954563048463245094128881037988059227635383334102243311293680607564438896737702250809779424415425329394793489174007786845569189677336554738018989687425896713971643711992264030514952372878139445714189343076828219132790697112804973804241045782736675369569292921079401000977194994284819635110394051634828749370424075641738131535022106798355962404789228615041937154314572636154844450712077453492382161652790038348674883773158010503768229257299013743396354185441352054111387727941465506264804530045036290569856790177667560221420314297355672928650202675131090303223178996671978804949282234349075449667218843004080158498324578963652574251049342142111230547654094276747026769112318378062343770117216794638490478811059313261982239114899804202228917129631889365035820756122602002386322683797518233000128424981465432809291151330722604596917365931483163104624624568346722931020672479643212070385356769504065320734695939754234628285571435683461912026524449614184454657440423465414860311252765402352838912262400776092592956430345178485170592777838966726613613220062610405134474074177770516549428059175116002386427954159635956902110570304265070119249757887138749702198681791330410599585574988812725653889081429124592524467593215119509271113675232726379400561148758390374347232967122270845743533429070115796687010066000478989571107032483220332747702607026503141556841444985712224843833318840367321081838866055363468966687575324172051442936792962856891311702068746820698183034411815194215443056464451485341737943011348490293487154084571396597988462820789852069138755071522827123898884360848590686418215285294854489554600144909647865306718241835388114727161940731819993976326199420374181045403344996969833589371532142691211966091294302687540363900904376872992653638688119188096152141023991383994589872339302517455411854582750596984364964036820278089444590298470868345135032432433881196783265988570493272135428744997942588806576222178028668715894224100927720729570662259565591938040612426921968759254986233192426947103305373020491161956466679369233896818922387398786621744971887797112070303623409151064322460273543823360390426462656928134179296734549605822076690945608355437726571319645918310107922248901413349446317399193757802719605840798104409328815270419378583824506956381067015620950260460169816890330561691900671912829127923624266101595602138820810656546827686067704991121273334218360894244909526601644726225706372088650941138868525337904104719085462054119384545541533143964671572267934904409312727365427620356971209003373594648796007000096934108355435131268574515529487264358532783237169353911851000869918843042166767135276773029597485051301498349329604845193217489067841211116476573551912633878190558149777386377970292512433273189892047922462389659851338460193793715029030531250733546866087108509661433198038389532097131181764772289895449962292822331269697032969322511322621927401238419363300454868564983474954754613812037570610264692534861143235327732857261523275795700133692444151637545328354623406778635008013979904727923550667625964719124294404679361679590715750937537849584538798331227843275566161599594052683474555389346541659336705922942485727802064165439712424680401447652743952308627700984266713362469839553899250841386717714119599143779574235624253302671971338382992005541266128950736513546985994545636188588617758505348147263296583054997707367726424495584046165788720505542949358835712700896358425521474097577721948174151609520657795344790833195966005444782825955457037882147301547121471935547422495605254142792511167225892342520530910003049347508053373035513702664799715003190307886007648083296471089300053176676786839651844865984131236600326652424498282014879092930646344350813387171501027484662067036276018073436041981979980750530638356797667244733215491821957022207280507235992457274171153457321714613202971073994777526093385599794821318588008186659564578535252774735502406474141000265466257944504080448061233239311756202764036019433043813722978830805609117532460612303691218799901383824261918174718446123523868752971020618133565578946021533690503203371549556910294948071849306108841986878232587803369068054350037846369280243884407472880347338833957564099192103347559108480661889679978506749326720987546407912060750930513349980842700027464261411967422599269761897673757951578573681531372874624763487261037861169985536710016532299338576401203419362801323073021546910068819304969736122036374726014218920502599758129166287591204722763288520918251050796831612847501755033239462028980429098157598098265345048797828516073793354032060322204425561889979142668105530584604630041411945094001429529170355842340996892664484949605533136190985048636634306451096298493297535187452577633326011939662670739655151400824552956044653003451407648085946358296996706080986399579822816253787153238840441800101649324073994986791872942204006209934851467839626381481394873652179179962382692357041518033904691365313575945382244034026760669081887488230352220756703632498664842846751505913115317385894918197344534728122070794657038344198130300026807557401234646935260963613814278040325524468919149938852136927780977484147406003099755540473252818143116370247839765470480165816502141127059660031125383257789335802989032722205788534734018865671660603506671134906583660812937277043494779187898924739103006277756771586797885337154588944647368088377962485905470191529684489338776976371836114698390205036452287362567742051165347180716644175884096644754849481329084452811733595679330659332212530294627856625012698963693554724916349437486973189048091183965638889902372183318905060135717839566795152921197598675319589975208151658426514463922345411793113774555600481877972086001774616808463951630846970399304692166632878237333876038479361294087670578550759555901231810201310224994732320139769657965996118798970676202082611594899251098187556697972703419493078869958538581638579578645143817907161063984496287326682565651738733266379779687881150772080997588757150324817513866526714315113646409045037025805307764961358686058798815035434901535531641730210192235802739102728044651184210609273896224643241827547530218688208638215492173237887450729633228128951903462045611159192929234443672338186208210565675259215860659683497657695281501976555811267030281253297177667314426750525747745112275142595513642465079797298592989167673117204870952810069263896054386218376321025166658537209453277249192473401019106571284047483816545096688394081679092729923048880418546475467714802593852427312301591869689816936098768140476524474235865027487442480370815621551312514068020710038024105372668039017759829314542414131673453241750185639881855681564298413575621594189281710187432331366171367061583549862999613477471477323771483796905238690211189197193215617838160230596758773135253367421500856077602802644342616004660810561734550654305990013605238693342725673468114549694347535605158056112583060753390790770522811447943882106499718844053511661368994794494081964300107696187344792960993070790427394274191502667482156982039841118085608516143373393315254683699226207425633410322688602549322444241230334282819926586146567191633621879943861958036339813305505505519435078134218832703388047950630544887340253441613737069442756844098301242303702073016577291376700491899455104130546260458876311726482673252271800344805603774641022311433611014056463179301004973025080516339088308622743452947131353911375290445520822052128641678679260561568065394102827706266649070872589492647760874358100556701327980115430990816634697027158576375971363603546760970975313498740085232456244741852363775383193998362042330136919351440604049331800651989510226686580936186031589795188911708490053498178611659669113590297447349114709339589150056336094463339643180407030241781494472165373864898059430783254125604543149671237969281270392362754185926398095896058255885701444093503932402504326226716645962461702473072490696052795334777921580673147251447811324416760096008886148420752894937159427759559813817118943922344125063357457738735232461705369916791810672978833366528101830739605570199740915943300125708681679795586614686697497634089982408758144187449854511543537402447837246219228102004453431318374189556962523344830995336922363253797504810792556304279199063356290650995870837417766664488275386198210882632790171790776058672661483426061378582493281547377940431925911705246532500162270585475590105120302177336262498902264395225036563508472815480256139290229302801317981345265541967310151107068977293701660927794841990850074789733999420324518368767596191453221617430109891909689780588548939732276558519812924535123543887877798786411491906033926079689684678037049008454170560691473763647227356725313372225595423449246664640135023298274843208319337455699679221751444567148685639814696497084407348611746859470208003439454999850933024924371248160927359646770672357361394487448291770111452866931524053050879862406383347007046811375472856974854723565924394460307290379158732060016543022162014629396409756872998747785349715190575778618954983874984622545510723056925443421232047011822330240539069425686336213243735099316630374180274865569228763201353349653202123100546060716768166821571302207965558624594900411207882335120647699553513784943012728333687879755942264810544235324462194705902648253186476755222060729473201265897638525247140128389443895573340034482803772971791416087492154726467842415957264876208672608382315396960953934956453058885248437154713152491182261347393257897385900673109188412550873028366374920035957735605022662932820934054456057318995825168374155396070819056280859561838675839412822876297177203234851029993215392867079787807173312787034679712022943728302493787008319390370864815301574592646248637974016494010520342280286451210755633943447346784410384816817179749583752964825756318409556794629033381277147736267427002577923978387825366916883417754880752742207548851755778313543993407870346238732706060857016594844423820993037142683059336319257288737800601594898579049631903219518910977252317168518983783495301184854370764958587846237971266373211126287629890444496027525718419977306167836269624751944631044373182234263045096304726787817354388863043579636529537349269257964324529058095764077133390857112464511372862293961339914383482804157802228892992121137202721404842191750546155628598208389986754361905144976398722541678161939823314880731337657835510889216681473643769921784031586215247383579297111936101492607262678050088642514835048696839567818330827258648372903232323783156592454690718686756862212547797171620894090294021347855769612221645781684101274782212566334325073719391760526968175789687314425796304328907603504826208905188236850140586973912591876160802253023043199180816959756671124695455016242151568412454936375100969196611387381278460477925354980640730937333298836963094986650873953448590487474196150111219043620527493537245723396923033577985349457404517579883578277156643183013048877432051388759565169980778516039158228607239195585031104661194200903023068284692626938641294001474473372879106331626963957178039942490425743820875822102443743260609121242868349668652331831541126551108922338961548016654884247235414630589569035010703012969498972443346585935317979447645960066328729862504818290847962285333070930671069002187917885420040109870514815839827930160203382009410285211184860502916169000876026865530699594126904169972033726520713473355229959783636320016460657563241846173659273176169696416037152842255736240125267088864245142805948204587488238353804845429098249013190130848553607548184465004045680844911880210084804492814894069658538039169661531143343144159240948463979297200266450058738121946695293287360405956838163603148159848380704929305344547271833726594354799261519755025391040317371123093124547815762628734039568286236471460178444125722217946082123480002710404965995546191681501387960564476919125605303108385724227464862599797903759532609969880153458176429032851231885728692260242879192449929274416605231779828769191675039183691125214941102446848191641693522263460537759633304421215903090162533287860424640199984353028221003680443145589834606445618479838227333455330247936341262138845593017992215724863691246494533317874562756280172564853616591898923354222245991832871531964104899695322195660846111774174574679444696653942293576818412965743697582119595058144356301471504756067611738301880560244822932062324278119091743982871558335613481390023087381725515474183058175958455160173761913393055795047654013296036449812574520879036494305921863547455388141675014171175181227747598458558984201761300131206139688779034659182082226939100812685311862192625467613131346942075168297416848548303832972727445752269699629037656429745521130727610441560998666968074004360373384255297582691752019900002393902641972616327750574547213348415246681591581546061265127243878647367856023903779540046096369459670113889372927066351415360443207898415381409270025460665731096446972096247191864378192635077898623560353418659719742598379346736427136445541039511956690564076586363781120788803240573962278945145133000152595050969287939142501169624175615285731470291752321650850794401420680755630576596892825254990231490289744678897721499194813027647683657103512270945979072585105205755029439058926127457881923597041375855017317570604469703561138872458061746925085729548893800647707486982543919845433884470610170059380039099031736498364804091547910165529219624296445837417099531170370880136137510818719759158771718462690384218628712060408750404575734655330456575241655953443383594712096022699991624739339403113341721705041228709306440992069290158165397447074110635725709708553332408559355556105426018572734093803168084904855279457239293088585516780497763056097373584502213562879419744034351787162849161576696403575625318246982482303757729723549561672881585742935661583967362538563116047240767031382612280325218395955287379190990288232420318137573060872947858335552512975995258665189289281214698522877991303953823335379638548895214341207526128843781727234848592361482024126980888495557355862939853498763167119831195372283492871238949196133525174886297200667804658763756162115028873010383142796538985022752712540086142893139241260179790327847085800980262726618242261607774723154646450144910337830378094916196532823429506610493280805648409305333890064702004539014768719615170424770302853328426559024536047801770015460323216205915094380569999289299816171196703502908981220341606244435022981440565353558536761023073311369684175289539494134224409134506894007644804176598690346132230277629408474134344678318377938034186514512540890510660490852020288658425300471275563431438388455465150718217629012063906908098951590625399716034578799640078660467649591634932986082795006509926336449485987828085577380207928501638266795042775574698061242180766104077277174030321702287364458363871345198147266840434346563817324141737102663534983514624163848510268515845836796513122628810404906555655833851214231420097133439645640528860471916707727133443756372007041598500332164536382397736517484657881437698922387387173288779949619827678602681210886453828931002816740839189763913948871332765587662645776071364058712663949229112959425269051593867104194845466607436575481020081390090188079752431120655953832841467332600619928369920025960666732689520064611559146743337238081487576457249512527516851138610837173675378857039409193609861574244704527537885026769040506132771307539924934996666060716396830293341547863134773804331056500128228367926676512338099175400479518643582767293198992532097775662721901960972088209944570308323450902760955657886230705287414997154331232077353167160895510723223184234037743377809086010858768425090801829269008055016038791370716882294449082312414285248888096582042559196367871941843401999526261064824226168355473694068212326973343583355513990221939890629240867165175405881134071762650770501018229836295373068979048218757488907306510143917949392659871218712159918716939793164633354493971700134760513450522943075570087552093840981005616294319556395638884406834978330487076783205469936352911204684319624725627521840747888825191729514954747602655948736011268787323426738124172423618261807716512346019882312757459526673722033749326368007570173168661424200404795321946576337660828769421137209708571554197970669945429897350377313960626371907174137563117412217461331604389766571711398696989097841719943684563932144234759663687303611887066582644635947915923045612313451781934691205128387836441749279164978983744807027927617147554887506957382887138791100494217287046266598471213687676294088835919203365022573866222936378067876063883445719563510782313704760460673416414961773629311530994165393464867043516254342018055758398327755916171471145904850228207435629566839479998739344543502265225347244023472844478502731059866501463354863866099340986855711416638551247198753063255956077645069389684350633156952721518477661807793812676119582057463330368721144760630903061460499650699455797861974988122102507485140366351698931591236028737443276530129884959067174458558275586490372763703306748841172594372890380514890613181005776776310466205942656773325828858862068087465858838686333701704502762618140332739659157561396876095767876048633732775676966652436722127646462416455989305065421300166132811363444668006368943740652312780726907500488763034513833505725381498572219831934450811331969562338595680842980017595830825601561691190865868700789612000949100432101293905047530318675680594894406641418906530733920483768214199110141430107153549486564919160985519738991027348869131732518420840324587279866145053719931315736997375458374425031493953385440207066893354955891166668137640950106876334199452461144403164647728581323319207944440861663240022303546325207682604560124550043423650298342528496390992252678925256496542289654884593654138779015377495722866097846494594795447445591042796266502200232051617955482092511831261264278861049617269311423088649200267500482536392661676446241901239706287022435594098087863961039060153963705238555986520858515431967270077899712185387598223117096120014039591260918903201404583762046198133522201886493198413080857235508980988390644695294122542787673415186298585755273075383191235465878419303299026442888010079354204497392927557180084344179622861387569653277802254685959520245359915762586629623300408984337858918362015559350219897332157468693162455573786117663800979562193654137132585827126589676687240779292130699373599892769536294783635365566478890955229237748332735124630939511841734073773956799591441381316275551969674065326311663890331880698755487123422742094624994871612662463208685362885250601684664462510224395705770707455483901456464682376908039478151449056500276244276730799674098067792618749260526510919601584779844146931811106069520890156282941243975874060449071875079050097543277258683049994396240054872027998793515418141880143935183441482925748272253367759335445255375060197195387207815500964572750374542539027557784570109353230884631248209479503149568805456496798846361141738867122127787163453512956065771311912906137632164095236133864007922940140137358796216078170893055027456232197207678068072937563169888331780728775989053596296929455894942346596052547643338159733284844226631372593550722343564498247855692376821799404298141580434704715930223897654699049386446678859340826504692551338023299096551183084973456990657121280033927311578726313063669052716342254841547519473853550251653538091502243706495476703532244262890228153019896725196818796270559734073891882409781987892736532021232386791847001765379309445640879681423424706318595018668293044817557749927834571709869487739382231171925040054020571668641122767791007286088844170239149679430460252249336026831432082047446694049313069071566420416671909316419969312915568876798114199261500382466901457809669513863192411351620670981385469620639622526750859053711544944561844786460120703711725885817371534900309680847711645382763084416904355478076853460219376069604100572296755439803072914457126436813925870384530342177471818231989581585742014517460402654858863635561728690732219204568095922882387023573853242421053504022896732603829841050496090014150869865283944466570745225115466606485279631372661122119327855729590772548670551990441161972770160657589869188470352579996503027183688760518793534848950263068242938614488456851899284973663550325135082596398806243885871885028670575528595962390532870810194612440385155395678633618042970034612119615693924318585667148450763297144868072680187074955114250355849690185040500871732885326855398635720124996430792192789061781200995963629780994595014346211705162200049733419869002416348945353599982174814797077715470162512217126814336835746427347734077156284363014392918224345185612009543250824748440036110799443231741346338923658450199264745119588125346858174433769445347070494804684222529906044319665814171481367761252462198053854935578006668572261108196654932360653072583039193780163410236028087843801169457882399587435325712462249772989251550868250922124880045463158737784440212687243601900893308157143195255801576094742210150033947810647790743320412144137960016693049610761389081991567009142131502370344547220860328575787990774797816163834112278843859230514171184610583452611397024922699013032472263025199639848320030913015264808153690353256318992154979876979074134777510670728652911191493009972339468991411626521182731557868624314027746819421246590832606975617881970813419041605573939634299939400485960655205261994165033424958219078213015366365318176396912639523139569325906165615543500810031427474972883151866739386560185334934020685857614597099574339750464795613515925826166562986035853028754353770635302025976064385017583692838673516758294554034874106052730646215156470914251164478249544352381307596415966233987125443761646043065027144278565117260198420886542425305187349286788030799829137829989897925627969320743696870641373301773543987727745565205839617779966192590142930576483422514789158944739099874417051117462214621599652576273394138043234682923153768203711209092727074273017663215238656501879350245322489377616693249813446944291884426876279437601860271941043886274276912148485578063590981462585266440909515758383901531360009134192754664181555449993112629959469003500589930961057237434395013777570231228253109613137266677170671694674987264184637654407897271615571451667481088991418393428462285019449674349308843297798321343032988238606183146496843772784456340910177729891045105265383013333510900436441833516558469591457522169360294775276835351226903017845290405053325359395545038109182689447517856054247948001987591539119847931690049057029732302058717068620097959630686383441529481015411217888564994656650518515838752900654227704696132113071007023626381553832647076592720865868318152846831748512462731065174478590061102425205417281558597477365215974137899107574861699479858003118463967858828987979752914930228276431859224555396301231294519707720892082908064059025493725068579114834254946562383136165129522763694320366490427759008124452794130772944764413813163786041414464183218200919183708598829883298974304537460178239601676733442375955344139875221278826335386494143839572433847273132817452914215027417289236427805140970216236891837100251256762676875704645714348691173866348983397209028406053014786092510697729484001371695505888869147318484976329601597377694950687668738210274983538591223501810105547234193761153493577971792096964917159294828418631201173861289302941516131464319766887919613292425952312330756173624951330489843162211562719026272388091754535959204033701756085904915961258171124817691227790237990911291201229874848523263831894934896193745083693513095997182455570187967864090518450896660390353409544581540073676759821101530312609221392154681953655057271780140867347563347946600066407086414640635939910871433033485723549485624986524444360230726044004552846854445439786910236392203038938880190806419925768720896222227074114580210093672444759481809020723135083619490345481701704898156216599176358153427058604218096733564100729959943683217931013527002391589374881970203163600927967546631207189622025691782708415494047612449585894108862018593276804791835133212427343772857224628290318850311938619199238067192311849612737975263813451212894646582550056895376168886782841044287952356487778552292790528970481358954987220881769352240343567721243373248427443177620980220346180158743205153445622767192724903768419370664026336470888818651819013211061977733361403915550606251340503462339760749899785112856175723768153991322066769310792886480255911130925514459113189580566689850493871006165929935842548914140511839332719952915449549503393445509697461061688341929722952858749951370564177800368857207287894975103389518914432606289982365758637567741883167937011920809259505019072201333859690523262453141973583530841568764515130020814068530736170498857830441934042232731266515492486261768641393432213682700735808078181037104331896545139950370534883009146251950893629081380815866458246429235531977114675397284678291124443930619332922608700715626757866024591221394646217270503269461350874084856891078048365519913185066671205868624844267130080609523855057704988501143341403384227249565566914742630915352601335200751367912151336868511558601411367473830833326195970876267986021935171850790315314947122981920328617149788059109209118278644075952450516392967419919798461352741576647659206429659560109208966117172370882290105724099441446336511981257771740404376359246597255322414455749025427257233769648882658392998676417558603043374596185385137127736398569492687032700501830414080965827291640703215555250158659357954620436453548876691186507103551761987565944967081472813777307561147367577944255925225682307400501412371173852883861766952344645592105635575977480352492504104113602155461052978003571046043908825029742092758318399834849508821298303477327546099286387318512071877421625370063375704263843495723172988123827192103303298375529980102919020894934965172540121499000186877536269514024604243949603392573471064268258115503544826548416785026571505234710274139228176263944526557347688546674232125378927098789989617073638562817355979284376644032343575708625982827464705748781778260894161341722287813130945129825373670512529855232845894319439197339621764028123777836274393601111317140513958055738013184313706302982575891263945665242862634405932660256057520387804752440823808373444089719604749412367226334315895907522456176156061479655007914858523366173722680326635999430210602017698470375370403699476483081029320999381338563019485759095855827820760686197009114877290730172946929331549212896134563307780960183110428515403375101573505626241698113394820496698069140751756657954711569969320324397530081935072835791276759231466926842550012032666439373455812134782726961312573787085531734535644931423559506448181292590310506947231985465314543406212064177097302170753950613418456453245827999796266723089871952362622293308955452526261037535233854741353994971236140319838526363990407342601528559675242265516200434407238353310480123881190562005267747179701177294278646953816706879249471501716704564212337796822449760821476201783727185309070048417687210996862675948712715192216224851525382957484814416914517630238142579467607385040761102907924594586980368978375006955598439505187274456109804750592751159035626247146466569386041381840092854741197989230286222385855078132507861349009373748845166979605440341757807191720957396314846961662554633001129568910928876453679843713276196112642196687391936457411195358184914086370740240038059570936408342557596739429112764726342464414811516779619283612806446690395946326145911534889783466728752422130937716421084348634892316052207953795097573641349179760728775832965095214773747009330088803311406215805972016224574723011846563283253609499314819575314828558220935204820632787082727785704635330151654779560211849778829565941149374050491945066649828481742766336655263903248770355989527506615849555398093287898394082323649688830865037695387278323067987080843064756302559892037497577918766438436466171592535711416573622335591631357273491690850966989144221166786514884226556158599249646789872283201316331469728686400294291189735700880816876621532500816992725690921215584097299988353729393117021774036289606315333426175032811079375191220247940743179861261532107584226194688586325305819619635721127888378959318316209212792328279670688265177553984928836541862005981125713061674702268464547681690834603901392401102329791225213629795554757859708049515522046083694542283554235297974304383563201541631454570295475348990829187466909009283695294533067908552727297678367652434855097914895036198086198167307119262713221652101921178240797451002410081125330058507953331141808416843937721580148821670247415008676990230354487786735583826440890797569707170581823447045350062245700275368413590249571727732656525513323300426147418781566894678414744501952047166848810362308610787837282735227591338257937343356626584111711858916135364334404507324875503667965883605970629154578013218519504422086901565710206225065676356612496119158222325765904992635775970274890967733332846973941698048855347506829011088234339002205762967007484351984190799173474159750592351592758293064578379467298650948504921126011532416337557583705908012489853742031039956252729461701324713762116945314866233487000885317334973300468932208170696449352270899034768327913433578826202300721347675575006335996942619163913715951572695319402427472174152053013116301449818915867899973349303434619902110076953318087940157451365916325147462025719660015690413902589324624136112810804233424112645887918153345695320229446032941012998376819754400188852368956326499178193958447690849920152608771104009812115980785802639323484306868539688571026032476723012093309979749276482513083517407385755047516787135186890857480166343588295553955212681704311637080955486084481416455473484676686123480018334203428761588215626211325839706192809295212741073879659044047857142035479955655445543381054828740766902003594276518010284181060885334986561923398620532721935716111875078847318914085471148061171937539704581858867162022458892832276859251933582006882531144809703224392611135313701095466808214749612627435501088339367731436277484514140359480751212962041788371466530341975115014243284588691646908765251645644295780864421485809685656219224943140872886101791544909942270303008905308525197494573413194449743685169249417564712026494579545512984236415256236558633818101711987764478568335930442035960122377415593185814084229054535114032938674958315653395405009903628610641816856936823691827055565804917855821184015206292060411204961894942120515301706793131492545968335347826994372828395224029871538652885615942087451499674355197497184553349225266223505179966694241272151759738842351133891309903901622559621720879209278066674424308948674197742927099219547951816634002957205159278824644331364152736776708175505176106060685481507990319583775560835304236326566615481652172892214935752976791714682213604428517623876482145695720091178713749716904471080816160584769063874469500691078375620577009449485225166782538517552201676796355247466149599596715462771205496492000823479034781745426501520210887499434779654232925454990527234102857727802310286231874004088005607460831359919981954454748048776418307790871085703474459165916080864599519540255842296761075161327094854696375779686870621665956260062837177476800704438572960882099866259802169641872716763772725067839490862622063011289539070875890669812329151891423522270999720794541420097421795209537097059850804963232254502443239412644546363158843565245671596868053805376543017181602931163611296264195457280363165122215519155171761757357025917530880212060123209784771176326659451495747282773065783894142414468662047180961546633740573527263619166729711737104427910298891032646158357417801382866214477759635296790503096980742735012424815729101055074264852747801514373051988421729636771836410112020230727161621548892850042181165150006494015141664580338431910886700580329882743167292172137698691737253726428724618800665344897787408759408516319863824520514220753185960222822316128081798804374405605729043956841535115750725256886465112211075453120181723238467081935100874724724541711531926191754679773039978551757973370942581586705834856029235350796459852182836034910021508526556187779711946501358921326440511892194786583959838373389283659637345271904448488808525365030881831377766832413339106165251937216113725535198289730144163962871801480004283086784048830347914859286691392900745378842595630834879283001310946408814758740208380146976662798407802835548316895057787025688588289842691655942064875270929604572407656818742843215307925252760200336273103835318437959881370037065486478849943534281164353921086561406745316426484851572899456991436209374237936011451685336343386448782107676760202544363511932349210281317355892005173377409207333989923334995526704570681584422798324275313543024711537728310589452589799710885035983389407661587501085370631904232347799274021861524441752981724417616648600783927230219856923775322170823028349358117165627669263714150741404996977346419167839350525307273224658079354057862571544342937927308007993858354507370804027708487804608492374960278423913743670058027218028035681141910883762548877776838182183541227796260251844564065111046199104586775178433905346713609157945980408821584913791173957219540132486453546281931827416150537862930663047008196851997653558770527615249571776905851518087650512639837601848633502016136339278919910153316684512668063176660231182789562371401370168591785135228265754445216768025137552881760295866360434033508808272287461620951553851756846298763723806131816499786118444765300360124432723418013565505160020503744482381056674422838315179123633631608157706363812837124573197395123939161121719257429615977757742360397545797275366850986579491330537354569131528095056456204549469348955466578190365850551199986343506187276991979724570820741863668348444029808519428644574893686329763838778271854374839678213818443614956702040147742733904226825610576242207896324285571289840928553055826391692181067500785456691564808690039192913796834935488763463194595668849459756691112223852450073199519133102298166575340895693767794252969392978382783370184320394294634062410735302359304207992888311495617079048429765705690828072074955855940819603400669486183887090420089029924412227423481895940947155843961463624967963223150121194786269899319554691001540528889828478307375345352676068817244386082638326662780351678650107761299570913726003197996130604557368472558257761031791601051239195224883345850751343977931571838348054091373128000511989995350594690573378592609070400930208415210795624519193983129410456992147011393400432032797508020860533085481988280180215637833837243119019654974909819724353432539628515784281483612746014141100908093813155063609195809474406765581028116495381176454636531843995618676292160294625730649945772991866897328551353411149964307039961344775325266930319928613009335437786371493562023781227420666347971895932488625937713345352695189783325174756035803020478017914167589520885168838037033569364582974165951609443493686770390751206687766410635983218359739724825768897430217805984116446768877856045378869243637487588646254089124437508735336104865095484943514791103327243908505736038476716366248414624425728352048560142249106075404999599698950017772938887279664540820103584268383525510583642137041819004086803576722848407323797735422115423356519294698362866040978337291611733686217994142733138744625075046348747476284942516310112812395255160787038675899913294894732066980915269461382634787037113413451262733665427179440044069022038513082312879199616160328861269339855580458595333634000124206617503427322333266769305324328888672421451706004924950017294692510510451604745130668956074551323864583977292180922353252922737248461155107888144682071551267342010951633688247060535826453061450785003636054963615911782410579385172089193648648313885013901129327912694936531481285825098881820969345537860223102845908142884703973331263088443165727652324554893341215191116248065809239635322948329721670802267811099061479351528876140790605252748675559790706824501323262299880407435058612454814081966901976325758718914940246170164727421111999703640948707440874915488676160878383537479766388079001817601841461788840465870763444959759806712276843018805099575099386046792476542101566551375721855215594366624645318325209398916841975099951816557441699930991714304192843187324606950703893594145982071137566905116887435744403895839215448492062904364063344228824802043358103887281498524553509365859646944290116735248624687655951226443982712995212420126898866747461509914919727845685855031791852116354251379877168819834442987633004504774513463364467423099422345678649902819575474568470203423821878059564891147849116329857662284999544529392180600982382466853898472844725694976187166626705353021005244152743330019696385975235395015163503045144624137762337044147629638544590605380362326077570291885531486660671386949075242456792144536553781042812629378700413976720374133699250991345036913753376708681046780835220456151929748485607242404371611651473869223798040586508740446903897242434006089792623750284012572652471087175116775925663699044699296359797665058696111131270622967139849142599516031461806531225743988240030782298615832900421173038778046638029250632431212931539956256496836229246532530272616762362173524791662897444836257212734274668208111606611519274542496602169607524252402197257539525447662402602638965070685930823225260786264085942169590401257623774041967204935077782258221975297319639452867371436045229452016844643751011389669534808536731541729172285266470985796828502892250049510423933849223942616467450235670242511002566390171052610812110215521335093999936016908724053947506697580385022205972818542302579688647098769801114051623689038082538482143055980545140074098509750909651487461649390936047761877427062539965630746251578419573419846160341523824657073601020886367062528147545833822694808080827916773731523881187608269678170081893941368188854015600903621823130051107367992352645873389650251867036655772696953621470579755874433561250561065248366902436827934794414336589665117587340074037562498152621044273975937686909989283122678604180710548728087388544907471683153241608353317721347550091722237782633206543175204959958630487251694335838453323677377291560558631715482476996152309693724762726070777520131061028885470113664615915355612548881814430733718341235971952593935385480043586262622819224680782496838237751567785147720831520846360565798112312463531333743794040690599805290613834251545947951140372634619370461257166189035129911497892533782586002286164030440999174069187996614920151429746673913752927145327351760900483118594979384761695728027832797453380526666053528164958442412419228063255573998981956273001189897784457604456598907178123365481160061584712173663500953884099748757648344146114028285861273345939160938631792350413436491393492114849232685642870841474519329120172470693974507380842856314523186471267151295222581171530063953754313742544349124130785982653601201062609815303594878649087378603601178609493324293263798258074211916054861790591276249745059585848169441044664337653074705587469125695307583422166266985263169321054608331734953270776730633139612371705200222799495224930799095261226450576833147494727705096438774079450802569756537113314169090238521238538131653319610793193914873348774975100705074473807905572783699742945020156875728920109126524511503185792842370612965283368948581324936735371669368533961148984163717798911625638205173873262470905309763475176472407899657930447560610976464411215497587905229866472644442186117466835811084427304275699089172659208107181510722863116504160042210431112757757278162007026128692703933925657722983888896221139611571074508345569675562706697111659346399811635063468595246288814863323837006284509309811429935908005411207958279728700757507692421726294414684040066065504201749439318879652258438999161618326514257834534811780026607521905627069969911849537495301220141795947326718147827486544230326765982550036910934845979631736548334115061229734172369640332021716637353494932675995254200674521617630519187370360530264829703491874573808987918505488941732318485688715734699100415801850872186237837243566640039411805775141505284717270121752601044997860517725169224570253173843236139966473737772554461654700837473909599057643608517209963656694794325118865975460682339072867020331547851351438437518433734931583878938294770131503747781959964549687803358253138229242520162484657918177538947075662402814231503403789411117094363283388350860380349519497497669765486192025884957987519398277857685766842073750145110912458048376456598618188218147193775658420194507858522354725989659264814191219657757128829295484183638536835063189774101546060602759202500827321293148759831795091631406821652367782057353381897021950885469728806789924783727018936538655038719837537939746831974000833335032300202240871624849535989052243966948235767692983196513305953967712213409644234049222170421078684277160865731157630492110893904154218553819701622073864394435768616752955853816235000555279728230374281598128873619491324099281744636980186724286596870982645173560569243378065893757309694546156131439332175481067060958019166500762424947995805596392343891400421107249854601685664170080200301884708829523901885387207652376678705398123486485944661938474744091044602759686301068454521707171241101737616796606803562605683482448168441747019552027884818961855273488640560882696999251847319854258201904294825347517473210647411526611133832025443368518129542775249065836518370227880255495571122968411369825902961245486129361897899818934492419019067051508956779346079646461391551211144193866694159225917775216303436161307961538577224433570799697597691311768526437750963162831786919599854798884651305581987115966022809176153830049148556332625840523825199070947288678756754818218708236409215973074049649120569485840342089090481582567279047052561302682476586901102792069250873891927600297774370545056002561512347470303912052879728090614990701302901979177467757222701059876243144230863411668518451889094015845146972081455087313459426709370466910241338842916075590438104587526170141666487224207263511238503539435890743477674732086569599483077576931234763253571263298436712728157733820123409733951602499518770708654937984321922302896277634716281228532102721680418272935370101566402536432255027584803413359713240345980580390107019569140893262678725004938137624585657807026529818958956826061844618784246655312834405037983294828786801066608454136361144616562226152491794282550651644107946769657375103678384864922448606177357187450620620453993188986070099160728255703746403749651665217720125914644306118397618540884885284891671708070835315924162360015554642036825292427125517467262037550181875053991575574143878310002477325262555346065431655705370104924070064993393063034323078619016105599345424238473569513567694494875019822882513573586561621998331988162082498920022218249243720476574409905650388588459888279602978268501287360307002435390994003647959924309094665300491220100880624574668890869368231349282108180318808079511127669923061499513381951138341987019681574811891146894653630371053176114866195971520077659569210742238982224316367189312035906734277874092902800546507218262833595528792687881339329945973862028304036156251336034817118174766374610340100105759732680282529902215157080684408339646680500943587517880496777521926697738298525929845428756154060146470221372326240707817786416472615559506529007001034593362603165054455341132497761888280207636582056976539556011837982528955801381101758743133414409340026839202502899703297816487695263899535011869039710277912748214149474970636948670851159665216178124577346087625216592965119064426989731374146184708521670702642020268957461920339458860291230620321538038378372985922471180823153312296768490094238836734971198528745529546675852526754366187116157486978498204630896709671184367110653053575487191580863171858527442256412913470490794591962213466175636353001320733780436491036457014764342729820184601058175123437615845597827031857474394688448980877069796866967784182456946304512601324449222515824612114234121475428859047351525145693863900943897306439832594898004197237110116315494373484807000664436299144614070861032972074455328343944674504431969267958983527433779143586264212199269920522768796157022390196102525121257643263001630410435883370724262896982971134207784018253644085372050822957718638794108824067564271369961469935055817563977131352682602938866424543031358239153240102015816010312136255688081901092650818251378364350845566129955790252140875949450629940059277886009862926207687528270502005089679719118213796915728214458720791625099162273625397536428846982148146341644945691165684733093785962952841144781000678549271082566806309129970536587096400390162033895159815808479961413898657710182873972502192092618879228569263431247070248363475748010872519270209668078387326405917152104118663720787049471760439547568906012003099766093233389372568311615703092866421776845137832273175302005615239934191822708489674511798313453306984196742549089855356773955882380156317171747610856848966407850132265161852114117879337999713218381606408416220247520646392722990850362962578586639209521447552156257445484795145667500213141369140870993580124838443756333105526257723284407447379833619781034805850354624283850896030710876628998254913067492661827587432999290710414218699868373309357295152828927797960487674939540445130770421124058563444473152810585931997502021169439212985910767736397494935177580049616813094790396418490480940984610738491257097586134033393846570330630371983231302269531161801912573840968559920201628510392179292069611806845223392336408148168994713180422055039069763855231076114713576348166207429803058467658847651059462231711361290554396612610757449986872683152764799947953973289346244973596837376853332802947715767106701031654062556543495593893160002414798793067431740505524212829573422410630163272413631751592112101205174461090204756469552521027510711393642591243039622757892058119587134620741781137728429933099823564487508372372071829439210885656675551668702239789865029937499063276176823820661433541428417038893370183872680064169931600470023021365522285591714136019752389435174721073165049131726528593500127061251723853159763975836383924631839829921302968075088221977924013108496450150590470076924461399751371172513588257933673596964590718719835994257290724913603259043434477263711351908172888906264128514186829104486906304152956464930108179012607573373930257321064864766611092653913349011646842524732059456532223054732342668903384924940967493706415661940595307416064799206827659187037396951961352929612753132379348067266765189602592088617044970479589767581483133823448371836279669042585665925927856995369679843930951453799793418388596877151101316005260694353451989004871906726045921432910648360370624085782741743101711537680355260994268128521918096561693933386218409967193001600655108769836452921053134501156126275963770093469994830099698965574029421922910390755736843218597239653281510287957717102619902595007989848958725663508602804241732191899747600462326016506981996292339045089004652417960261332118976724894066387993036699937935727803326249381873533081028062468378516113166845934617136473590352077463494006729825900202194050245890473228225643658149965319827282423632764490741402644657689299721985919597484456428513086978158699724718072021948234640058253865717802459873036822653693077115157523938460889799539553902397844584835503237949846137592971639192578915633812611926833220873542055450678091500560336387792821622933801914387980739596724408843795442001504382150456865263286826890404467083928564298040278475561350880706946961104408955085270827966426121014713518205482852456209736029705464644955897435728027295914568723348368183347307774606816063127594935255533640547863332879482751887552530985692236947272601275669489181321857677248260274930233107535198543198677071816990817936106162775487317392292080964762565948649121298437400466173052100924540684655733586030877551009540092055818504657687648813980006103466926147094493323286762736189333085496801319186460611828574838260532593550391081074162448363799569663731338749586819821152488920026596999210259835850450017191568332930440981199429235370069858684483620247116418280438636931954815256859462077128840371811226596052828137965943806920686880256412110017941694595673263062585308975658472059558684159165602723271534579277409643297717838055387340294938911352626145847026505687316869914194620956726286733477552560208724196951490176043001057008269503333745258436544155824111139682809632446742653555758655625305416711347510129131929592113178291517974563738573602044643596720083074079953461731045836807380589497557492274758454823859849907586230533062896628406454916323514393342320485211933674904769223222099516714112535505946850005986063674685918556189917421486312412353257463306935127392326343162465007424500444802014025271907472449902757803649873453240250372764944853552638229775612354579798607387426479223800307896038072340085643293037275656753030962190436100803140484546924133660265420199984474901282696040414654185971366493887288968453463364306908105503517167033017972569631959600037589810958563559931075995367899662783261022731598669182444371932396104320822594302707305356994149387687600007703438392871927714586849481826051076943361780243367786206797271843418684157957969524191099014711510368281055662256457041567965978189500997761667484459852020442687271958762170189907651471373050392344335766994774391982218284582348699807889266489371128257491426131404713615983861404063124783773810147425741249919606095750756942379485159370593764737640560466372276311395787406257991142161882509673876755491474533974594700315064481233804137347852221304864531499292635305702218082767520919474730947250685118049767063892139155874872969523738901779299847120086895899502991578508711807685556181088175900334379080376465915153453876484329461598707885327959821340110195934421950674890104768749822072728304619930336034208210892489653491377752692998216948701417805990029664655878807507495884203346767633067730676950626430285767990329562431395977560391603905703456431280918967720674217405226831114513946130024051552343143431743029149673969440711932505111968485405772354468874334760080597322468554110756782527075726796901528994827346752686252824053490746336678965592355447155375056784933811963622498599495633282454395885433791728578481664398859517575766825016904690329352042084203424188885477600077552452329253739299729378254651673841438136408893747167699819266215016470530186729618317187034184932615373702454595267908468109175389510454994709483317517862185141548872242650912989720642079905956726372672698856851469122282515402427963051879704952535269345882519240714439800585748915972439789998033937994971113199475939622948727500033395390004562224020182675961430565754024063821000512756228436381631501426190161462232720522593696434026260248782588047323092607980960330201742758830316068392875425650829441747699547279479452170730812032755494927966720706868775360447339033318398308619158777246267535627827760534440839200120292312886887614210779151730701246252586620492398967399946107330460528375718225542339140233034588167614883618741529612325925314469920547973921267085489046834102619896755760757608407287783429630751749838186992104782420185633491677541690677655110319928392819184952351087315445922787069340964607994894621526899309749233404684159405202908058880718895388937004650032768649796520769623879643203032181603924816162023521288666919234647861570555792168326317443518108869205442067619433391925722346662324918832507026517039712659211632365830455125913142731318537940006967578270947738811681400630232088455017402753927030710535306103680327683655200878531750775697517444405211266441764159779531947939366727828189433851793599316325961062813527625344411192750436710168908237012390957664051705856377297817892286190410251980171679877386794811863728165618120418265925626427410430350012732167293025021721890935223201136317555815956625454073401564320280252372854895128407169630807107400207278240826326020943133784587975561343699984479096669781382459431644170336807036933025531367147977095691333508085885160833807196749397520633833763362899149098298396973534416575237404347100340472371062828166652852932121434509111927256587580132699982369527231262062879735323921489089801810262009456926847302837795867563000364682349049383923796861829469731031679855728685719727491877903150517912713663069435389900275642806256581951969968394749904625318354129550261859746829486785225519675307880870966570700542277871823069291388846804233623215098376654181101364449654219309085841727922413028879534038959949034290174738566500561118524815594253094165579216206151804675251119687713856016600324421676270048728064383538825814047619358963022869261315041770980038241798876737080746900851275748974254431896783535823132084629661287157290045415729861702134773602356107498630409654354206683206526790151846226954673900969962766450877309620318661904331289594343284845174555131187559619841721868143107791182835284657399065550181780987964139973843391740296524171440998702934761536036587416637279574576285576041575749674353636739740567109242057552434868740920697661326217708477579576091906322820308477646475463312275916004684464083300265922486145281866223313084014823607225805216082665231731301704961119851241181884302596062507385083208946828872767958828413633449244432958529024819669278079301420013344650105821800580887259213536407368070548739865106132902491828754973559996880588009418211175819906909609628320723578448523154959306753248563339472792043946831590580499717597084122198508002705588408027570322673149528471320136038098321181839413841431878022821493414868569117287362956013032148187957318253615277984162991199751082692086182012084706583266600364555029661203200970132773596274387340516690752500650892761326230724696987575892645386801275046748701095787626720113742660322022591836163222862485865926239135840355803112511852278323222452082676229777335265805760794951282100436204926165409283761038640098681579666064228052875189266850580499849273720503707680301633173485470008728345228658697974298585631024595395728731775543226128647342288327795652259031663791929470531568928300220675740744469780126336063044776331729192497986946013150067369112136508867861207344677168688775766096284417568458943232535638229853741937997566864129766334489474458201881376014153206560586704895199353949810863616859901795262303923097818979532620123311592070485361223977417084400078258092399504785377386632976549881092494180755333035950201038881543891574357072739981483736127260127675480628827677307451229827225221000378876578845748730342573150220435429109136070203178211339724094697977230044228452497154861342783521401910216436889620901210489550636578143552647184090051264847318079926976997042259528248619373188681426702740930371596515969665727146926462658203064661645953222164438937758206973000238501814118152675103932483558048205086543320896395324520154769834360987238514582009256828445509851915659380099947676945301154776709479934353450187235362193482003881542218464182858918524688787612670836077472120597582845385915834322930763270916649515518859247085835324803966563637942305747628880772819988328847890053818422925571859853111853169670009993249895792677730604492481508438068885796788963945001306663405858375698990936714755976242253102025349442487063458849708726522619077174000230557135237264107705958986034513552032869947828558293575281249781467438518835783236548550268345515589740790854855623600046285900205076359558162672064513039222961094277509741652088684805155060729658154330999051821685931663728485104222493583990030849478515164821285554887312097434012676523196836010170649624944303229809410458421173489767083856242205578848068327341480131496379268673907575799091927217041644376124751079567534072811520541110422132104939245748079751793093783999274237678975641697688573887942269517826435588153450303571080791062809738390532237243562867019539821031647755295939375291925314184559217599675970220285103004969525167330587190455220143465805162586672473755035730798602480582781752653567143683367780665862192977668678224859000946726010902453408343329909642009540857468705065351853266430914075955044185995163623374642506378254757638702825218572928914204797908105799486608552057183899564041331310723558189346128535932739808037564733231369686920808142161480745499716927202947106815739547906244422846687934204165753988998266044344519582198942755682548503474467971156576312857964077444874128822090675871582684040812234790167539939350752021745731835114148979393292008195648762887978003174651675949666625503803564431138841992438908802072716391800828557369665167183303565548264530744275042280476811146018810632023296333175267864883350194988025448148784005759912740092821308930170134362910892336464082542167531006283077397707057175327865956620320177143648596140318277021971461190916757524495343210748416455156804560022639265495704540514960133805934874182860297995799681039626098881737085589046577572753379983844707143121414936434964457721356721860344809645972015486255421428609757202378025349010430252976384649712661735630238683755514550685847322552886459393310013707313791669034268728393269431804386661588567763943925300681108098997903224757011002193919298228650635799431597510977982079944078777328936147796348177112822310882370968556849660105104251428529393240041105638343146476170484511414869996679835249328859338051597265024398925285472885695915218498081943809190942484630456758429674467454947150513264869108001322812865003228777087947117024646516656398424518757920868176331337050547218617150410955493621066190767643725537603499385267394246871462408268113071929194012555211923958902405053213581042374920631229784104604319542492585931828368963864250191527021149746795900308331687388374303561732713400724612028274679952416213038134514296911007504270263819977602412846275739760280624253025879425297626354656035186962280451314206936271836842193906641508233856853091754228757553140124508577651566164094849413002962753354482426930302409503805901108461050403813698968983804421050203790657814748595956138164645841725567412876027154741207928144746648765035175845356120746090503578522478810555484576162936713771802009740160591283595760895415693156564541061905147874390865610009293659826323469756200736001859455652401610346041667545430910772460661038159828626496826535467785948155384948568171529888948970548992986974084598241439674575968178492869541686903504636800918194422655142454720420371172023896834575910079504864225288955026268007386312507430517612275054555167931352062191236624019837961212162402649719988955709291907881981070207074659864212391316411591507996702523753604669707964077095133724004097667636328395767299187256476603481626019883431909760547729045199629689883012862528785674640786012200903120203025928035350809342373392750301890429666274579956805459620798309210623579971412944564296440922686401776713776567494035238816109672697414334490430334191060825295323517871726548828898143090220982972891353575680182769957381176940462162200659011656136034526111293121049701068014874440026826561108665212489653685875275648329983790573980523306064795635585491536445650304354726194662335278420384750279239179099135127958152323625897757020324011572660870800444063319252944184452748699736790033134160473426358581326768424841773846389570073761951887498706268943174763531577804230908938016699364761378416967739649715209481955433056387582194921600642901664460190886158281781236814542629327224181040874774840870023505718836985410073860471164527895137928400839653166903210494935481659143460151740380504634398518319902033396878742829737437234664210480354904627056118631547844918652780132419771108492398280070104572479993917763545951377390241677235957947496532246678617142172983127941990621319954708133160147361788971904521990327382298937680368084525058913333859581435591981946003429096903069637106105883859987348004149266473477687862843160403476062178849833594106690840014712183298661760880904812778192638124059310125825012642115336111288800543735232541019119319582738578512574315872744115288472863398197628445375812959815169949806236852786350341710870030831114966509140799598628197416323380186215180038696212654411150795598599563881411968228614370467488794422386316596450361473189444656143394120276904310328588502661294511625743250999388439710443752959226175155112292262596591619337088820614256407100343200748576640722479914494634037509669819227890529194189593211054179634002173298708687001446414167464213511457264593637310804094375110183138054842351766175512981931766412545390326597679189385435103189366123202425220071662408390452540030696464957861425693199733874269938242742909967981687078746921002787750221904776671150204123120469535599059330525597447448429728751366831798785737775290570522650757394433605259607965905523138226102637141493850650297135040521936297180259540898648617280874778809384089035339254399574211475314795038522828719878290878917638013212761333027169570542550491900276907276126450146336335263238547531497054464028503908574898876530553464574663737798789175087778633836758370558850744303561437258037684058418918214120765438579333521577807051613230668076681513802533863873146467802952626323093578340464382437376987841324136020072789427370186735495948462819211176005572919651570406004131934058279800330459499028763649851777194366110028304246125651020769675705084121796143017410590776294066370715398864502569173475999772230706073128574727054115274928333575396224456165615325951760552951139709667100195123270516497902543235748738679211188763468380603479711878948158296362287866437939650595890320351581269185544956057653679332171978479707101167515003174496138388372835240862465616164847677529991016603271303128023106713006380662081843289628197331271506929027141223093643269484572811242651687126829741004075769138650250798478403122406667739921671950054783657175318768804543069487113098602776833079458812089741968585073963677387461145324298409751733778616925958387915750352224689843650098645316541814637205099305918319739765926057149991087023486897975530304823279857657813790090768813661570708373888174709791000888211904641570473047370304140911353922527809276621408850395405499764892405045168241226940366864756087517309468432796736530155922438401850699490114220801927182360474545218599078115283751953580327852169594425669519043410992576400175522892331984088662360339081016983465230135521308183111379186282311345966883478589548818533466692854118069771749880659876793633004366091214138131096389924078887529443557281978634040765212189474985472715409589871920246723986445474696194721393911193964614391461502515917915148931329274784773618794545890970756883521898767398633941594755587267971741831553547614110623819717365422196399399267955542212185004056663067907323680028654909437373617763475189822388521082797223463922222003162750776111922302819133553739976196316015748376641045042560959766876667805103096070161149664388489540817472847537035415897442193747116858328699548680967380354782311852059540907253449369643152859996910785804531125144798322282508646968809599353566055235289999090498749549328820871460874396607381138417306632047873484912097209343784385210822738540681320051927159463884729062559408242570169999061204161162635364264133990800453742538422156201874240082410509891528550169650937846981434668841549985962755776304357314648532230613459117545943497013089795359892855093752413495413049279357797354258216548849380047854990541030681039766894201936304860466833100743781505043263191648815577360398697395935381478172353685817937064480455352284345434009408956516904701876423353685138678201965278414271614529984543549528575042251981607170717234274705747910054965752588490757336687720431663523177440077096616844841028974445496731790820191222400499598082362515543333445689666052274671157978183564045547524205605597324042629587238997040139846589552995496018718251864911107584113261803131804345977228902781934679606614035819173212582498940633842045575872552863395714268948690899886163421455453292072056641169665117592433928969473950870018187256560957142749905998258152507250448847794426139871851460260408563223395781538449686820633651919674881027346038906741862972877617061810983475667934172010537063937296267393600373528164011798838833809287968861643982145015314162141521810770832672511329636170494342517764350772383347434110085874417184512724307162466673302726828552074858357497169760432792758489087707320800323168940608216755743218857717999014789422410641112033479867355087953079200397676816594684155223336538385046075407424427475549285151946743561455712458280760518834157355254630106488638089072561414533575409290226609948496466910222317377804575539023588393505050342328324815000530059588218810805433932413909831868473949191419612181587065607333332624295686318006852543786425202060764045451259282422162912771004730244201614896186730244379048097693285774891840697430500979017286918112091110941757315068627038377777005020180335171883694063131617940693448358028418808935345331945906378710902212368571570292174061125591679451612896974478170404936191928163001830001479553394923760773462717936005232348417361806382475189355279902855197163447745604895657761578659214896500176898540991939821103090857139993033015464199057518386026051239236010268458459643527364553988817991181222669076861276320633376548799112031264954746949346806152002376263309543094065712214375698340708456301729818167725539141379529975078287382232452300591041348137429582168364766172949244657407847586623094835620386621242988300530675273786374073197503002254463526663750095025191704097889163183559971187004052849890572339652645226103300410773210887268356413711838725821046404888525016120375740443283518695678727680994073830252182429149410428600966576157141260966852729808736064421987403746619496995033344234182241489627981214445627849038510367944992787351831908892341334607233224769411676107667613238063081035523113619906896406604359324464298480613107049779845756171621333929963475057986234924653335257590405548913951030056073593074131633186030964110645740457721536648624692887212510879917820913298216316577611297334824980179265168201472945103858508864798580433995542990998459997720218769203722301636443181754376064238998272569024184635503581483516532658312071509813083239166611544824325055616882969812946610053054704933166655543657857553074512337441970889334978563579531743784529151380776299869329518581906159103189728962030977298029478547864828439080098437608633557873595027666854213127912296686633970436821465419047883633842283066921691161714668841123943205449498001144687483857773765087163849767297849741172661277931639324030906937903940192518459489925868368582405936737982971811090711437976237991664524454876200436120806092588403358744546867658092926320200691271534083740750524762177424348370274707552319901695518725497465003077356853143098821996267801515806939157839314341293367414021020758279793465354814239359304754274940883107690951412823208859103170511397981575364170109919178570755715652876500681849662023689445107448624701986802493393206348630752655765609357113992770082025798706136747878956522559626007050890330406765951609802054441407509359199562498334714232428032780359742718066348912454469609293793990336852696676140427976866347613341197419754016647115533662929232012220282810833622774377724169699818533528775975442723618919644483556550629527573655784506375483394750963931278438430082522207570033582671260020490129126733956333641809801905718512743110046410738010812959626798820705597385453143169428519057284120022542260830131594768362825308750796655103256463777695004819765416544484830936316141592651376274415495712641181356404495190889774622151486527965256505248683839482954065154595690641234632455632568694735054590122324039807407234709005909070680868927117685943834629257801731760394963374338292980592724360400518782508135943530840500126687197418333705167233930695533049420160788420800936219284484103086079920251560097616497818021817342530402885791001533912880742023362668434448518732876890692063486351948790765469627292994421080879745640018671682583706948299113203006825421975951741902110273490863221877256958988547326168246733861156734533303940415515894407375113869714986562827485897492484408337938369054346361801496232690981855152522444312067139830828639506663722251542743206365506945444004393702399138249900461553573366610836436277550940595728865152516643856237318940784942326206444220401343708295675452397107618386892354822708460646961178590764299447213405381531823912712701492681246882550468004642949253334507249023318271098675531765165296053050131923449267517304553796797383791746067967421814497229952861629965486228281286596187487655430156504172290410648724771500921558124163629556531857074371387002683859255084775930407937165877241807967080732385304848110523283249600034470397429370455008857107331878844058096153078608238869143439722575605189841625793885068611831468376580732966640878178951349512288237175047492806062392572474803316793191455165513126225502375261155975571962742758889448217363944196264019021175560808788102031570494813414048226410868470481061100116074083081774799461941007795029674961655083698050236509179732479782538991756426340097193145632659929910470897256898181125878969954044997086641696319067357948265132688716219983180850428712716088356528617943207086196153245508657030677882322319227369470808552490141813607023835322500956113009109120549344015500785923850684961973205929081826054587555786343738298221055480849986253854986729322142295780528235507941009366492414335681566663885773593589952107340151227298215065159557632926507112057330617232926471136531792109279849392177754545736704033787470374645197527809046480009438945519142097373688848951714941867939008366016979871259125547261520938362629432932823306930413825641506354114808119250301240163430186553546978932041356797349316667133369458922468840020406992317278363502040437829453662939686652711950072878688141228677962643764720218134671035893908311594334574514494782823143859328321141686981730058156322554210225188910745451084101828415397243718982417695580584803721777684694241865805315061522480727791416649016313386500911021845113275163402404902728839887006941038909013079117554008377369319934329750036709753803273703951044476107958231518163898180174827669278934951985519342156455065265668378660942697772427519974888809726666798773558972760499986270783347020651650595919950552407214862263173239114638601796468542027369614124864822865357722972576172347813333551052947868527329698904845530349975487369352430603908061033258316534145039369921193168518617393220080473771140901842068407495698219646337343440927321595037658235589505262732469156249577491028161995039562665179030930441361831672428716968455172411447214934475369919687428902034574485214278099136966050716320345318599855618726430445476260640669777002503190745629346457700986908806217611195531642216694494961834356015955885547899458689323806590908433428229947582541933577900828526063315748550837191656144249468496000899679744008607183481426840133186787729252084202219097027256715098714066360714827886538272044465997306703910233820369920923438367589654007549972643419046658240053261905779924613198942966988377298722948421560028027012110433494623001480682449000039763908721617262083352076902178316081907560452239575630967897062988735577397189934787679328193001800778889860791794238325861962943273102135460444108684954514029195371583032148657006206428412667394861457720415515955812995941545294211520679491087956009136079693662547688921751211772598418141208399702429584533043809581378409692914631031817986466697471603313123667598146735053604692561923496554304857700884294164122368426032133569479458235516450960509545863895328246109428431985380815100694878224437415950802610715857450532458850659344279369301302772999399614994708345501503738734062593623768841573788427954624060217366876892332509769058455181106396062759314448481624415880273652469192026972778963029315932221268488466090250944072292027033750309770114612547909905395493020658605075611703482371871125045138288841865439597755106411083109151327444504415528074148070392961908614314336422484140516043009535403371218736210833681626131623257249248435062407405006692688196457116851394240211034306800333738802792077084372195478691586551064676591417945563808180758868696543338166083624239626324550568139685342066701948460318865204331124561658529348453093536772682739916068754875377178881220673454677693049292723035668862851570034184460652922667814353347946426954159243080065853797838884911636539159165646310267811603630711283451304479878476077532926908569367600423253684249039404857051824730432616374330190302545187455081207465488252772697415083676401479961131399640694921394513711552179589728146811025959478386142644634720651914627298826648261758474598400147152539263888926388962811984580658677638841457968458223347919917639619464587219218382555252354275786628730621890945216936691644298873957275556631176299859962109470179184207883961173111705323377784381874226870282458561562715321198864310431358522113916230003564340277146060698125345996897974151466781457875238886904962149082058930600689218394257051502963648058053935845207517277534392576707858713465311841289109611392023300157581980056347918947491271122910903649970699562466122419290643420217811501593218422806618471468258104732510896195235555462405993643474958695643921220764878678371107603186539096373745536609942788708775201582779225446832822635375559161344296978607015555116666013783638663781207464838060962585582811317371017500529154112768339162164102897096050429017599423528346730086897919448413238191814217927576623336266021907216735196612645550531070660967455626695778346817178446498445191789441454348778256114750646410668884172392798871241629899177922972259205987014672824095449562606488314409014416910509810607979192073586104158911813690384507680627432786580449889476735046791020519281218085343417745255861006963739814645989665820884603291065000668283281310052752154926522827048571404338804018390738493494446314314033047089232813961713239362806334030155266772217463124276082436254732065385968763505265253590911325374784984101231935914870302475825851896874972748118424961352780235680736787826021466541289004918991885569445304711504732713403845389148633847262393487707902479486142845824877095419908683737859415243208318584161264655081347292137578132137882978101382839290474831976890523812741748232980135877778877160343244792255680944075784024389396674049448959853143964520801601717596178189213877217571941821629386080319933627375729763887542305584204540080653417972130972192568886498178995490473713302859398240316147274660655084578833487025512687896160578880288779378284160377212056574353010309204297245542233178284071518788856667938573060788679902444738962977746722614020796875823808891557014939096918971120254586524185940556499179478570480162674231746322777157950014244463743684533131199234519717507631170984421235761870946776862440344872739909958946118945527836288091915558636356513080874011808414362166143699734357476307469301136945995218127303492276268676930771074990647291697135829623050697550849451938546409896583091885473241049957354225454698207287827862128341146694146976998474833951573765387019039231752042485799706241446286396424671722325230497303216492848977341643288010330142304879991664023387820318591765579157100638321832123752421183149412636247693834489954401489266389146986579550569516743400632419849043370047882817658720586764972795991558535624849666066968438523255998383502792568899145160998246085090827073190759004802064888383854061219436586276311119236089684385019538116802913334791753211740694884858968658578282814350408841895237889349134945131469752843399123075626119068160379120439322218032404926545560598103601682369843880910309064697179091273399738088490522848213052758615024995242192839904047556256753211684200237788579224094266630426495524543982979579041129062702163552569271461170600310908130882395162073115728008677540031453740094850293713581139652145999609059770335615499982689593860556717349128648563921000255598667664401768578037170303424328510766965651936064413765707970073256393755007921732385000618164785469210236568140982284538245760106580462780135785533577693041469623814859242473800711381549239641830707256970139272259960259903874294852225624023274314367681573969562148627937975511032101513574467127149661049072218031015282882410353256712299483056509055066047454547550899714017301546275518924114318471927769358544468317311520036440697604703815749073322115782565838706902604770110373070875622221865468526353760995571945429012030385109222476924513860258259129495581404141680320875311131718230499386741183165575468725793042445802708462530264161649045293447304277632606999734974079768155767703630851431952996110781259510211530834916842609656603079500041168001606421256352769331094496303189937024474674632299643936871676992367010916781583832063073228683938158017651772958606924621673717073317059446082070834765200976390424113592666580073830872506505287262561878682656222770663292675838912705523551776352880932213390062667810530925286246885956168527371702371703208294274230314975539382183062937043469227327306859349194835556872447978659311605366474764077296000384970284192780121334439123728745908468836341222478599155622794112525755846705790581506544484325719458652264720938005578642070190525658214411772271633436427573126393071161399068362362864896811457793861333842635216419135629535056592543163865299935945813376224561701286294325726676909243354195739466899121742289427853585862705405930962747346028083902533533807588306910384081369507372387997227209746722059844257909902191857600391398286704826557408056301324563437288841987553717067518036837411390336649654579860289065959345875513962517176175789220173604171462064349568011561737489011784960213108854697048209903593520963380846625084379932662175846573785360124555562340170353996923915255450781925824138415895840722335988418868765796638788228380998700961210154293509730137161734525529441148316758051648564271713812102323249399253421665016179435699597287915174721893995916480226705106388049934179250126951980358537088056241322396126014770316496564255841470008530058378554880314404440783745140955283920052764298534477765973603052753409907857754332116054720635436391453581053701647082114359138124958964829923370760979617010261105924149837787051020234740515510243481175213760133653943549282153728081366981496315133700372622370541796589891784096616813271750223120610099154948598465993507781352613057409009204744848223631018927579745203107689902290866184358696361633491469770401516451070080495391659033718101249986720468276677002560499065262857886837615573250572653256704103212805409810888394904981708049954860443098993324114244029369927361555447968522123343445902930561964861114346507473176900354009529256877181058367340652292810518601722351453306913829438728777814686185649550327178039329743439992914743897189375986308918004588085073850937035909011505632584766011929067003578431439461643625219884756391770474277963454219802265044441519523974415108588826506164559793081678818658505098122149002642010563060215073813129121138800745528559040305205610551669220761662770032110241441513918531711633171085283525012143543645284102022940044648130120001744531297518700007050463316935779461097429310436860827209394605135094728056313373396662870009897117324737486520194049776205114188780751224333329453237033555230772183644676615268382842827035347113469588386555274491900860605835151140496021157729968633118665102006810238112338621544806185949282524182935296257874128773497945842665189830396574159125312349640607359108156049889222573398801563046829325837660958017493269572803377749096857201339269057932931603825950089307334756460653221257637058657161802947512636920069890133748473325839785188966475884384086483748130054924435562118314563909332827855986926684940626140802364940755001068196756602528977332151708748255889998911304827588374694059204017196142179554928252021665971128349222096084579653644971519075085965512417891827522266635909824921925318353906461005896203359623272101332855590311819475932323196784286073812133557274186214149396248932729506486899767036599774718521720890138544038218475694539087108955660469150603520280431444226636504513018356774365812682101658973092870905975844571381801409754992846803587923831166403351893882782003382853174545045392469392737799745541596607433931467467130473907858781629613558245927423359596326021553009182831074463207050912189004025292898939075647512391367371198429838710067030930023633589265292970308906597804151663345157074724654594969030465148159471665418481104795029418539266866559630710719193868491686870552556379788584205739982912888994199330987090154369277601382637790767083800070162378494458085584503799424568296484084331173186204237135876037262483170548838167678677893219489067977830791595626626176121174535703729840251797603038151483087019325988578129808717183168975724841334523755418602811237772509741311691725916157013799490483850993589824848812692610188257300679025784670081893035392473721726206536218543442486020747632363088915646706790963875074793848512825402292986430648114495872823640794802892733252481171772545602071549115467685649373828845260865392719741108207208758846378762842554518003235085993930563579683080448315824426913971928042207413988802235093134308482483676669192269098054355040753501556106619876354337653967858150298974615405797820692388098891712715729918302093610183782691598241089466079006792520047683843651734349151183457031470358297328493943358242051570442883914852135996374123236102451370777126624416405781871997438915800723519005245235003504542539091722128834347892141893414116528408512210734003748231513139419413409011891893209659039975303068653512319597647629323495695198040119620601833160040020813935264123892036405958558170602176419891080763551751899564997888760560098598541869950879866510117839768460293593681364959779005008579738132263987289513153521263347462436349651793938460447493321975580218242121171042386732595219107297863830253335900862450376653525606930315830375820126986069751694527945188107227624956131883221939474515871679717578979789093031596314949348657718005221242087332440048003314823270291068642997143095824047597525224259506049636915639881027544173144303148494667948260043914373362967065023969729425718541980137774281842999238056366385910872515218093113690882057130853407775186981873314885791448332715837910638038206036189627370960555649180702873513608211195270771961429729518798694157343615064216955466119049670701952104427233499307036440570510234698113931381210599966477588801344082777046142581494175423858878633353899296873513956188988083445598760537537540658353871834127587004499314204615896981062316363262359406674418485800750604791774527246252377213917421939511292153329227633912780322448058698332612263971181179782465058235042466139878070816375143660473247362415650660640624127039596365417914340890002031282992192613930475193361289397064005914952619068665975362301624372256537897865446518680289961221420541129228518647311753636902774364624534528793035934041240977696449141533027627367147403272680909531162876605530713310210397620086809334004789877656187924228214013773581084928010022180979638000417054067247787896203716181607150761428100214378548112348957435510412463982961968634901386142876432879567369126099174634164386464469139595393606587709550457406216664886990068003751671432435490258253288085811922277671702681945033367102262717933681325768012392943867910676368636685402022579455868350592061569424228904599354044075621456112971325390726147438407511930817155803270828387328569518760247735783382277241055501829666288037083198016045672718520982911439026355073930678771983024004794707341991716062804290106852645642044507575327436163402962789673244527570693770170700857460853337328817170079155809430383289756921986274817142373116325033531299720019818644471293630615605245343750371485344972964215424090041348658081181832129305725167457578311854506960636367261048953771722438393045471947407938942585013159931618282472941074652876905990163817639576704569734078583754326293338104527433884007810027417990254416698695114592737224062361637887101549738737960971100773083968977528738420749804847943517772918999429098567302390425237127092630794435972943371998581142988825763023199226922564728720196626185542449511469571162124589078701195900689755448989060653165110479626912298591310453847997555585874248030222664300873524179527497200457080404752956192753293134174025624713514383610407613731823440886910770589487096171594345184432944083019774904435890485349750896591049307343327155790333682205140045507725134233433578430051952175115472977651074520280698020717539300685663214275923201874915560180737619173149449382653105880631752491229194318906864786517725682839001990003701580532777155109743173290055031538477624548635818231174770292948043416559853283944786013410196710922546303742324960963578295608591394614025305040524829871191352699188871536054313160183934138790629664280116819300082421206881532076245886890501027992210040563857841827645721691757334588880031258327179485223484997366057675426189857913576169823789754110720149398047001094341443905012360947247052003127061116931825959173428937192401838092746931107688970571495828657269507848714276199848395014925366213795934490447496036521114520410941106823324294347369467722647494823420430603486188760745367072241928144719297679868234421567389719087175345694656767802612361870081551287908408415902835698915262051840600332730886215201750830088986416430354445203587039064679220845831688957854041590047555550692684153408742518098260185288227431451755105944501311018646416023396387087734293292836157557645073602848778646530873222394408662094478392280360109861585493356784114852514826504865580212168731511793156716759234016772065715992867977137919552300253079769816169234399058146142886646076304948015525950196960086071290736625295659802498376684860286743399013483511225419480814102363707811863120087867212252221182593867845507555433794051178589036378765981494974660082302292724461427574328396033895729681213304285703161927950761674254461329388048924344484145543349471356331701212681868455001347980800772396831535259230761366635960657384527551623061515772852060218191832590557743285330032581087668658703914066172107591567331554467282412737718368193935887142557678489194357427339823652678153132329655039418503115794424790912010949210483617804861899146346291635686661326460668727705531924190224392976581093756874151825839251038778129848569193805348558716737906233019993233631189407473914975115088941152214113812885573737758791637033343863518673368897036557495061264971843531997580161877107327218913963612288374947733188475762857752641571706211264530087986605316595875911741829445677798669918418774184879752983133806357662271011465028144523850166511495363610386596076379725986904818466916215546369831919550264847223929870661765870845987372823447248811342531129596688576351373083183328725178165009696289852648130106410997543822840545538084033147997004706608239920427321551560371531121884076348578355891333704188198697290637357563360125453662158749431623434402009990572874592725453813627146743016108942706726843341513674190486499211628124782505813147088108288751694051200885943274410613829814533888583724054699859941923233491657108174955326246478595069946572248596786177427070615853066128084457898135715759717529365966352305520685855747505605707302446351298957758424081478518995064067613493100749816129667520619470876729591281638217132274968466146963840455663761954474745927979148638191669459043888684756557229398342179378421625167700888055609909362337114533475416199142881626057526966645844170747402853522490683205016299084061329747891291361019707046432977636570515260320326528906299950641084695957016542618678384893496833013925025044490960807295404163211248135098670367310005106663682855460236368405450794860243780024152337016687589920786054481456719296471767150135973913657636235863629987429791319664600924265225198918565561917668542342426521293250325798894394804551056616484900114403593536373432343623142985838669958400045355352120981213723586973376843301788822733093623522699421845455720529114863120212207996508415510013759770390774958574511422859752597912986865683972597831669496942125563203481983546684176158254448278978528408128102959675252650799903880334034341169899195152690456390467071523179126950803899842539719042587129923574116216116633245336991430329124469918684027696703608980551283210737584134977739287205444163982336794663491669556179112243134742951146561633555056958656525386104878220294254772442713652706669928786106905379199830410459190235572986480779152547140654596084722277669874297307131116150550880001970442962682668035282106718812950059537982294797549938631941880882692688363943984791233235583072886729695326192749520889865322899213157879360012277029035824948483103736337365423269915094776893197598285711890596119727754718786528729872311668890905799222835949003528929646453703189757414140514609794436869553250454417548964690338215996580563634509066064833265936148256280995894802337482168916427765575358542415469820844217753201392956883797079375959781024720947165410762725375771819095371199171844143651732445794525019095959870826533390320301789374032472178848501841612666747430999354917305459627496125510229407505728874609187420612641214127552029883152848418934119390501313471527498469467798425617912683873333755123922123991636130103454458870353206572495422124052726690917858577931024559595003518737526980417399808117397629277323693200828844186759292926025582678964496191804888172189404621269476963206709633320621205262570557659022198967808777454024212661752377546848288389800727402791069228732387351733523658340520997190432908247767923771473685125847378286722699784924748902855353105417836755079181484833313465534260883144459044690725348277845442432627140358673931989278483571159137518091528052836466421335510368952233915567185890165507009782302968663336455538656981991417898929964173361230917062589631107050705320216898668324962938373546020571065747565483043118089957829955813482113823826968429742220150393941418720837641375611437925309192036601365031605624431610549957003807515629563683846787992961083307899648686460205558863712701285714530059362364611360683597608571527463674462938289976128684927023506652760194727389977685127609014070380713614176393576977293698857519789059976170786044672395925762273126077796321045928145412332596767929504551831985077051860244466696212719335934297952895973709049386477364872183605708747162388037502487546902422501895185777866302876090642001852335708365404399005459998210125671071158536311537563176295047808006178328049712580626040792243120206912870569944696552026391824477866959690400540377024806131260189914411426865423733836564274744116645743885857211059081802271228641465863712584616162210340731197397906080770613838475034399789817067218178298477681084829393029314666894638649814428008168152224801305853869686430972309418315396819924046219405974457120957899439496315361659483484825855452634354205391696259995744702027432136940594828402238892205207354100837280571585803853240737269046257382434309012019380054026707533522601115392390812410859594766693723041565264334655320748955536706799652322033937087811343239818418324785773090100307915556713129858190046471668586747583048927666085449282274847582663839572991209285524217021794390427657320685227073781302865038272327294485490562838130133577384994771608367476348365934273113302075627243539162530255449298254954864310001460440923801672472729457471967689469570730174381472140082768869305053814648758537466172783801296904703940757722053672293318651338778298784611584208585868851183356813338444506058423090843406586717885914006999298426619336993131664193722072747142417546084549359876117418289696673058553274270669927638278970691038134942914757592412327733485570594087032805689080700885455826463155111180384720082142254179359152552806383379201728629071437486203999803690679578063683109148413838697719809579909976849672020724699285155047411645909892180683334969382144342285194764471386175920168424800363248709835830282943737242192581063762990833958998138457905822524138213488856655115609165055037727685035209155743029861901360249406328637547978832160606082310987724202708626243508535855904806527987215644139603689319029837575539468180891767697512259759044298135734700124822048924318983401012406131470626655638425039899272780684653165321543708536116838746888016625306434202983500562941213286193468766450119560974491788993149761254364888738538002627229659194981671904047491857942018140646264011793176558778289265247845914386537009825883763710219411978751816753383973774882345379166169101414348373161872441484167827787469884144702061312108468243956037780730930777189335511102231946081912727212349971724283852233531468865152091457789457019710093461322680993094576613030053102113195250534945157565305186116239184690920931420206318339220171091274452969426992773289589873323427949674825516332859674120160447515426173447190632795357346705759778071785655425600650392901832591466587830388861096558335879066817865174322928407252251757175223357139526975509265190656241656830915634393451348889155943190303242647917220610190373213458710065718289513326121017069710014877926789865699736429993143793242208425280269513081610436290012631301084183230147683080406267896413196353192051064869541029529464503482571951923772953113752439349199486563200480422380051098422460036438544576341502822090781654012635195765868717406003738880312971586520673978160753687562041147116714906323038201044411139687173720813522036044922536654822934315550776592168723804403922332995447973323401887512670858968797453579774082206648266532739247975458546176849960367011595629294561454495476956000737411729377418340970684446578699920416339992314397035529460744661043558079874833035624829710013231578368946265485600305487798267752254990202867929102319141218970799910047897949051056424572664963950470294774484325931042746534150642062952604602550159134780872878920132977947337919791822261186692268956291872744960664686426483361149685870372755074063534399104959516433302475473833239032693092286474999298605751215369225729460558608363310818592886852629275933370922111384465152351798436181504763578486791794124354412323426347829405735339904089820357289428750978340207342190087128301785321257112513361845746311401624301361047959180496906003858326942832363849345733012176613991783947705571665263546197486375189965282149583213409977120117083017304138219107198304283024149764020703780047416581389679884498289027156453558972536445092102165714360096060089532575100814767751192898967891429643378409758902574354594072661003779731318972685249287719414604648059731440707387581319651919909373804040296116238619044299527065020609368015519901552139651860710843915837164833552173962896095509633817674320819645986884753025383571832052957551446626542893487319533687548557126980878807405464190492150025143557347347459473927228981116235205367732286313735336859829984833374090869806971753211225304879708144578552686982226742577524801794586680885135434120901661731391514526987089296068640324355039784628042167098906684405830629401790369326646634303163081046613347906315207192785688362983421818187086958833487126357335765932329297420945229569244546810509145213753023985081118408539824789045070560274896388879549206945748570836906257235614182560186508988470885280301289873715474648280591694861765077549066148949950408352946553260544980078116547524075306192757913220198680814550461121251308762258886328807576741158463718584418967438169756204784684153574669468898324631582988323517694047685319326340769472636651178338965891275001268334997663314402571672396724224138045454308402486820349470412013168198423038989268590317813639849968666546964226967055557224343147345301562949892026116093577350972242659436170412962601827785111489945435399053662328309175288720713717296929856588807996894645620675241495118018731583045272220175303848185597137180454586395056782384770526288424592743525685592327924629766515666401761796067963833750330018589863749846778142983225399041233715955583253381491266724279262272961831590819541105161862011510637929352732149377234304640632840382024914578882439140117682224565210936804364360624347275272881814881994720115733930378553548475247598287748477830332711916145130873043242399693327238906286681059017641234745916966631761051851693139778112353723257878120409851596811119590547440024138762596812898331280512944131812737725363002344578714912410401933377452755986651195324488813281227177290537122413358112934849372501088427283568830715026224387269027342200351945340176952616847041137126589603540122594752019212858745052790066655759186219921356447390206029291692928746070339662109822125625620750709888899075329434642987946909226312855972962652560838526067529413257555372501957803640005569827755930775984561382296582002874883269805452442703852056023089092591999615674526128147262439798380759218404575996300551755227595050049298231875575858669038069088977243479377212031669279789912821401619379386531624580305737450749534550460991683348873359938961212021831598253633468642988110970333543809711691279876812250512022701099993120038379106310514902630888518564275445802679633864924489282893677849635518803881863831500481892600416325653554570530152762764416176833162376358522600519712816356809318771145643569566018475190684117570771959188287991730617061671746341717306843707427723650241612647577306504526333554762277403351688503667603146262033513501702837174822857581566307706683741858607683006701465165945111433939730559460292697355077144052430943535625623832375550290062481719949187610129002071615857592929178019896548589501690848447886005677053430329975036292872789041348492956880281128412895210186317330893886501884083959139324217548025154954046388476635511647243941049015540743408321514302568929509400999052541489387815597905393911355928092904886192232061721177076453345248658030960379147967774476983932680165759351947662098366417777972589879869288555632846241846782304116832073614556559598134114102201029437639662059486381761102664353009183485918496012407372187174951591409192804406860562867821221012428348909350799252889244607756855366011428932355565953998153168313475686491492987355190819865378445791222486833484906377378188759978760497798055085315198221312367752548776231965714566909688379667040387601361955590492458944182548003448894247594069462818630504069895409940051447511445505979428410727300082459839260277851357076803057184552970482626701614151291655260421097483379121840076616057987585483720255618173607046093070799490533937658968526117294354838368780177069691792067056292212189259211813094674451741800674229181108998925647385400839288465701024501897122946896465824935748369643182439916273148237343808194189271172234389702066678852846116085047799520990296240106935843524955704422979479341370338796223168102092790892577065438613670835264600967374797236259607044045437424203613520524063109558778204238960100331964544585331920717919506642493506125508322893815046589102166380975269339704625314917281494645265193370666418905028145944538536184046100261784453292616411371538539686146665661802821946578522612735312913027693937539094638710726224575793852365452790773617302767011407637312642512094948519751922396219436271705040610216763679877419341267733115633683289708658915063490598352441482847722871893641685929213763851576424390636577043459412340387733623291742336282389192401973999442713515725571920710747377912393724783302384484920346711283609156806783235184375249132804722807653637669526616682335204146658323815226030850469616426962778118270490908459711276967930622997178914239332278190314247940635786067950035436646714668672405625507847976271799323605092337796696886965926827163232536531334910520735112694880131519833920162011626458581126057074390595697743432134945532224871284255829399804790469269860354528991312756729786480212577032675463126426062458988133145428817023531947031198862615392335025230419510362734628270232560644189136239148421705654417940526178749926141122635157605628680294984335372911925533990610592627282231070226358855265008886347886749640072309831301134433083918010458987077984981134207978347833390068636792689320651574109696665013117198576523974576241163279465014067965188704625471679147915157768010350888537592387925765698147547614132546690156491002760924915535267695774915010548238064347149529527873165664274923056625426952495107676636558572831968714966443768235346680272438767316087114656510301770216542435271817632839111323288257017607944290433042936234638428785445529953255269323549836617316717541579818534346525316684031316939303744891851540200721262421996419696968856218878745078357611379288029998174425948875983310658973912194353426559144313756673411927343438877435483784986784375091493495139093072554078643996736594193112024985881151658293838543261881589805445532453920637503894725367901442406302619046713012169232926441792638965309589278813889077441894126533844145695646961953020783968411283398658839878253990500861163808140528065624396188427464203648101483592892240941969697620051547563371507212076716337925461670254086956594197052258746900442681587909069369551250571762848731451170125841411413369929166714652494822881581045604938749926127405666447191109247091115773986673707411249152789576424123811896374747144025091301631129769700212067463531267088958319685444441311776816891463991875737116502964611657714057587327309569774005338769903578514094979587069001523166200941386183690713146016685063408305784697512083079416260078492907753240972992724297282880975724340497527423352557426334104562299506599401990007366622718630754659155749314280014412089717552005513569056233942747086541700281181646034708412723120050284801711955560969367984483579768348485828002165594454166737723176155783589497004061503035861966128522750008741712471428101493032715563490832004854986726847403218008221439440751974395468452935537236924515812883432775669890815424140400307741962669300413872459063677336137174502202163033364161398001866485308074302168524715505125143902970968014263064391411374259795437569451548189912608003071805813842681860959625903671054330772844043213598616658523801066766250486862804819057135041046468987128132033234656605204205599268013020788168876349756849170088415944993393198906773695945671958995631717539003828138147156795299103315195552449552546568304316763073193852673876086222057353522953714613270360709457554287497782263823143443011433777422337804716986178204685724518041360068478050946055224430156477738111281801462921405030240610223371679993589607951556805926640924791683434662812212495248460322875339806591592356089419943390031456318631819925872670700521667178715562731503938922325100938933767646917380000243466795772861362913330151053364567584526165308958600413020488493815571583475446125431993500369428858901535540498801188717516287376851604081497358805801944869393177311873143813349528655523226441689276211270544440892180901622440139034519601518192359963953866710971640948470290142561157289941587483281299956891654734492243580846517910824659323506471970326104572957019154917286533800526982532517632413271573031924140639514158469742739191861752213452552867969139390741117255364165569937711408293089132668504497679764736141714811880960025675243004248697656056284448140940676515799424761708577986530419719167972101701331797924436930933391138124475537770051642689599453719569795558028556933979508850265281337125492284914578580517098898051079190721216500549524372162106137269444195793472504722597811591926033825715878956111610679505627165393474442781825386817230669394804507913931745504381137296958384363888613240000561759455623828736963258527426595900880008171900894579684147181728282106694436535466865243014387908769069126156971307052219719831746044177043595989689668692429265007793476866872109850963902574394401719536443872529330543446232195685388597672419199246336350187562868217999608859436234644576249227712189947070219003645877609407206847997803949399032950755922236668270968930995080652149696645808662388183400387644324290759626545909134417448370783218279962497926325204090423636851289570607982867566053873163435007735858625014304390166729601681014177413863784842530319259489839142118687639092842539785806176100120532297376718863934496246875945608881412061858722693266591558937457914061947889292042342639257382659192335637666387250006826588699078248050582979777140011850229825293408694791825145139132431927926084286297353909501352543075701647507771405837602190750603672913545902660349395404272544127453136050078261662727821944549946117797434914225350465740593743592037556087855259067539772382877903404350073571946117720239471620078525509624231099617427334253818356965953404870204476221426417122657732492379725262834102289105637139485516713450970993986957422211744529158263991291738506688930907963264006073481348821629071351106887188177288536491556595149737568380248197430721397440407814999908082831887607628098785333716653083158351669091525211330508282230156270040017935372895612851648253029400877976378715915117615826787699062433426088146435363243716055773296895641293566680848507015184239732593386392240945101628177446519111042336369566504346244997009751165857204691459566927115832679440635504793965432622926672796540236017828811381006414472342930854395925151402143570164718482752782220445404513073990079921308633407788139723357216089069717750858907943813696911730329246878255856447326289618574644929107383511158206843878100043420425064858625213289790564030479653144286087186162505566592969316845662441592838519372503017688754267980463508245979460501636684002670615381595470223019907348988085992680560619100896361986135807454209074212308279155596980820963465714434222353420870486183320861798749776150142211988548511488496546499293292083817008036413466012677456843187399509831287802419337225194466113163629720432348327642173195315071572609753673624031322581453907825009337126090642448112089355459887045683643529960263916158326284574991147461471498774400262011858847159592572907935487292905722746611118747814588419696204755263089314483244440016418397425949908076623268988221764968853291796710916838634811299063208848819941386072324380183823286456367467538585414191291484348456309481286955587979514972215535206982707702916935840400436577862993529604302795575242329224134682528922190843962426192734729915967981451948727035945843612476802494305241336367256893400245930880433704885735863907624680960725805052488778305897876498572127076553596929669115174697377671811040273152312724718012081288533524158815768410880542554405814739987836517267782133051270689960939576737456639855106666699132778894216196755414905266955649637983605748266629094129981546004681640172694965261306648310720428210418410582589974562713740354949303603363716158548556822220455849490595531939284671708934009142533393899387994294574345887732948624667340125655191907530430872954135156943425283970158705570562442986838435473176437808690685436486438943400947779764479470553333258595306233593211099897796008326685595935068139082990104621667085465954851263826755846839385504039247793909690637136111144139895824701986678108184861247922492155515021320211924714419529144563159853338297846532494648305621708445502628060767625370228138030955409300991964873772543104917110301327834198201582244007076418360631053166440166843891305981354216949819159492542725285038125849254467530603051294768562513275882013792355807091003869910985648820715727074458225637697864521703240464817686429592551498508025767476670631526309357341205968066732711882183730259492385854754757276300619797893314790079904952911082476760601197785774260878189409107774325262157045469488104510438284127643588325631355400100846054917399318117147826404811350168353099563343693233351463839506098642170191815216734440252395054870376117740812071876283871987069680391174840180101977705323913497882558009761513313980317780331252999214077478980929683192115490843167087712045700244819575956169340571462774243958521340804864046271133034394530976769584195369742396960015753391936390833066062560396292648356429621907454083409370737095443626075426523131272732547108714424314350891407364704285321272460165560634280207677274051543551999149207820940175318110974841306687403353143506033070555616097126764868612032269907988943047662525139909910815001909015648999486202862108280777861295530705341742938921786594335452406882073783483316979893583081810617994933851735408938806708265489789349116308063076122895288620354668990881105043314620934816326607491569478640480720258861674306628383738928002527865575438184619465480600085549299753130308396565452613539885475920067250865056288347393567091419706367723595654498493990169243250854040107514431550207345706541666436012976944614362032895586429939949124701221155186212064073477233006555459147143482226890465183684660825570426070688479890458190856108099484217364995011689447381599925495934496907702444388151103977872949058566290396860192029329175239305649226523172711213411686933684453632722398233089699607370516021131635914015248541458266701733867268642389756998763223164332471629346537303416871343714739455699880269908968467830137376570220784366343668318049400970488122329181554793435756731646947870512224264168420024673422875763602193368768679531078978399905889977280544418292531304017043495836402181141740690316960929019553037119679252522745057637989152470545616450649929541467071203684385958394088170419519905278447346847824365745211254215346171261335077536205173409059357893108639074345440670215140065611119078357792922442875419370980551120114961740410825906056223409998431566116041548515305975521840689595668173496307165438043056289988001820385502326940347658707649026028381563673676010494851910639766476715310088813801115381104315220712934588658236115221798338447045802281914215458156131105536848020667024125615083225561619665396559314083672694993142415539331237350888479827945672173777193446178883220300496616189295584184282522405110440509714215744670418027624170111207008273656052688174314504596364055638364797889221233391470413264362783148228655805215664491778368087787248019724778403023960350543858418160629221960488255619898558782905753563919957874239999737176738468436978483029315012420102067648721187409595256066861587840874964700145798609199659552317301549478392442087994999193549173710299287851747394728907992124920810241097528095597963475350865677471390504090807838285717462631339094099024339786964923854432262074539217640604079016818594923478220122297025022579252674132009503020259594967132614203848796806416091064660619534877735861659775595030918718971983345545418981597190806679904220454660336937371588495227550366494872048297840910563693981441248664614331849555246056072343708666557922766948085684391396539082517177451166366855569636322919485855417813797677294733101266429798252371593564125460433536725320323133389769707367183887395863433696329386551998319764404854323514060788847282443415685364929020245455218638898255368288157756893134683067352112909692037909638989204718411908246465265822654578737289275332006673307394793433911604662272768386117107486673161606197147950664298419151304103184678690874039829910565551001020676726122088252108310303825968711185798463452262053834790552322314758866981520100936015210717680814884660481363110434672207741915801202884638676200009296784473444800037589377672230633895153404552136352475708316989280727530696404230489746243519439876618596981713035769366109330169618407546980944506205084077189791049879113611100708766991265051153131729659090162862058929290055202311150893767569144014723631461027834095623730776860157757178840583468189932940182874342780808925241667719137784016203045129142846445811004350724433220832842401076223153184602249234775415856511961770191052853824823720500610618930016378629799623677167325619565449656338011460079873633791493217365065215865414576908098067853537442035536917004352022247348006395268200893462871300621852641294351696755879846238582132905449942110318032018058534719518778449991734081355409778956361512273719519643526162466516903338923110950150094764472853865971736632401945959987059322632879491811018125595755914192845889499525720174647542903773504870535849172646783385377789316107697953184468576634436120845387769685534133815819184496741231489944865207063142394977235951842429206358158156025863956361146281129297957668931026064174973098661672899000781782426278949348696953337779411916486309600239246271691605081537604742522911037192714516535602288627372011273118926752660457989156059131042620891230946214420627970599198867034476383172413996244226041359379131004873598231065850543206619700092489218316867885527655960230903006803781280932147509646079341070602307476587793086279557406354587795445416127213287827040866352894908048242058320527325770325069910547924081370322702108092588510439858811786990379424883434878683914241189233848400486832046157118798551912702686693937173694350132928390012060180754505070385314020532304652044452374022413864729014296979845478029675416288323736396676662953485729227043254342986411632101026091104979452787461336728563405019937028361573659456530989407958867022372342433361206143095544737645918642601764463115112686796924518386622152644050840052073235052094028288251961204777413616200989600048322093882027146169578190794339551820536127466000558716450301262875270918501113012259757059455896624431613187909809160481575979239697645464434951973962053426054639447808207391103863636628813125916108621388379351395887940609530478873179746108568756314525091714029993818730952277954043444861845040071433200508594567947975786325915800451094751927535392706742339207052006170230451605360626132694051668983190177076178910798602161786751407108391824735566427103645129179295471980166046598254187482897773659436959100667786377080023224745022061653274278702667614193757927774165121448596598722099245931011188882866490331180433256781827753599417186863702328448212026595430375791064312141003027520675886711099386537567903664583001192422864856216866479353191559119368590506892624538596697074659251252673344795420444147244326633241474471888721230630799460187438410110286978777287587115752079720066508536875451063742380246531994137636829615827959498065020441497307815306608710657038436260413562454975544684100220172774865697673244696186617968982511480777781440843539786996968048870156057363199760868718260471658768938762046111690896213395943592533795368314454138564818289206759954528504524967918891444423387472944500675591698694318134291863847134681215408768837425088491447097775029514558635940667009187974119874191016290755185017369862175921755165016333848213963267965960350247066668714199229672694756833031419552139032799150263761476052977750531683627048515353347920501364467623819059498128834941756090193400577592100647873184851286179406856528885444449454386696182618967069584568666797031383199701506507962161231379144804917450533622637107254047739832677101486595128951383401188689312997430561811105734343819748421193672907239334443192108061677673057890815392116428728563739767920851554661502354380224024557666678164534550767359205217227691874554362433372569594234545050332688941544985506570416841178407439727195129069668304446431393738380383267943103310733221184980709947868692536353860618865839589647252614219952831156920152496801907615076443231391527859898318326905502815810528484160285268193601138205569235000553674472637622326179145511598056035396228294813833044308497568742935952441307638659508275914429153061845704891154678358401119493104111931556877477470510927114526304977181882309221580515352694852221859490962010946405283601038058021557591466746925934792426426037656113143289507514824711332776719930599662640791996921939856375194119576709121174271911945763754738149985025428711862938052552075573615639992596686077194477781550207545390303063211757621865776294944373153527593359406668736108759273620313195119741438157298490772625674014175007123671981819833551870190549716514189406571701821714070394888820648630527623958910549601825369255365407800156272229415218065058371842221143902907246411881769082876469874471739095900137727544266658522148304851430547131554647087009530330171675149136301782664454438078101084364385949896939622676314050525984860014140429352598621213102771907917613914337098544699419668051369958324082953874384621963208485759732462195874673219826610551689115373584708878697436907245852242444488464920181802958492092996704690070592245019414514168010499608756373580812687622461157256683712367221395432668995165714741979511223002288708769748397265526726331072141518787639250402593301820484560163482756000643011378315865234807244198013431712913068242750307407753629907890374946343946553256329710696416560598743355714445031027502549152683461701820873764279867711751391535310163358666200002391301707190940431414357881489131452841558550502873354593669243434171651190951786706424787941833320277135284853664140027535909296645724970599138087125311876689760841981579358138261676185082454439658547410818573063976769750666225953031139081778198471027505643190796827312121880520451302059808803821193496207155464730146464783877023178441458865433058457514620300794487488784277174638623664919927085355762365284320040744270516692217270429040712958672262777325824919317275924273920463562924196349266854123216227914745171759827900549080124119361638612770857191487812467154071675779011264969558691940480640840183276488082478073690569273392953455165614921893330883136588904558855153343591780701063108924524644268694400472041246814688926095826654572487858784542532012956999660219900460768205553622142056783701035470335635684572503560614524466567691495837124562025597960497073847650885207301614191142600437751203589794554111463794659047404226581591579725354423896883721431766408756629879936954295449592342659253277214272506260646521874835170768708602775535364841440280248539369353238715530621479576548713442762433992833772883003762245608682488046413644197345256353720385702334292537930408880391851502005857028415902491782133800822209057709861756156587240343846606699626413891618684038185031638268186977621477080966830091656959526549276736826640010083977714743565158538226103975721151076777708300138289188282176938265254116855649841557455520898740432595442158637479152003194468608399562188383002344025867578013062454062355688386222970409991678788938340964568680069713649151069176842708499881050300610314165586534768052325014768631331083465365576079927537159773545937706271257860342020577302330516226098988463345415358416082977177352907449028214629709404549122527435177748013867574969442195196905995449362369594621373836727908502226609226115754183595417423043153637253921215870988725105290623685306466222300712292687803944551847293038658889097075939066923381102360279187642484655021530386344771640497932358991278540019781595078585270082717932716035624085966839914580334331618169742455857812092929985834096900821697236104148836265851214831108246130020145973378727801494034538541347696084058621651334595332833560988623430383284388721465503142477415795880859926389637888520123546574715500497206755137244684819760167172877609595843650221097785042248047682038822991141962203551049488135339813603884419410037440530210966783124255905427789872014858989914557485345514842472251042559588975468888780777914246300592278107649686044647176862378094113822198982392439723692430412839604302050575819358408474086034021793700961284984158955727088198011690549905840391096857893269807858219748865132569340002328412316743696624394686639942755160874468194056839548914227014710556554150370852778657830111227404887933550928215141530320532280178613132796592013889497546124684218014161681083843292907877986579210202407287060529897807251419580158578422308988156284536725946037653290362540188214122762529847516283407730283081081960499447300461526657479145935839553984392163621843603897989645488308944790089858007301018092848844534243940208123013938610809261283942140510288892540493540370486414516633121750404746422482944744645825269154899267359703582734302320052783495212366921964822792794321368089833143825688585252824388999780919023429678165373272254370491738389931774383196305523211602790598796362722660052158155901950548579325143626320837292507374708960662671670581996390613136357677180737749627669155982121777842538153867626523297716624970190613191671197770363710417182085271304391355945819185021102139285365611118919765525604743037044367288599056969194264874958408070083906256103817777041922687093220184611876983697948051143722004714622505654942650682189708298002388043353580810346041288445553434381810380035893768972376211764032682211409576813695365815517800015485246285874887370430106493553397786564467754832602534272197199123723179371068796077324975464576591104016867658233174000237535277983124994942382186906908591193466439198181626669386421395086338526408428533417506733740356956102454471396179751209313356895096632741224018105401215277448020824514547105886225989810955681428163050692590309011941622766562091786505212816962943126445726017347096113867556381248381020203272704813679498167400157543962015051224334343797332396445724485259553227047200487565482104264917747335874498489047176488256559147482019211713322893650461895747477119235327965333809314283751196657660867670314124534466812884985869215296794778415631045751140470980850529955089943653019449895728438015541292779747860484284961068708373051016163737295545241524873916271312059867920970436803761114813613393376882298972170927634004636500026768630002379498904428997232361859861520096732166277480527102876858034783867392247201646283931718437622653202494374150263707109594315943235372815639892266911759246139482474194670153231484132421956998992275155458757464481841607515714840515569587147657644288616120018382528458907788650767764070301805735104707240963665132393924734996728913403046798009582499828586034079088905672142162179208002535289597715728984955015208170346122312002697559065232447794277617787702881114804931554080120237591906417345232825086486225401309907741809941538142255477017722244696053181900839765362949193104984789081754505220043740695692570382081961396652554779129629451556642281133213214067444024824658217289652018526578506772309909135566398638129854803273932847885298648072995552748397532702366917969223057179215324103757484213284679593524632251323831600413216914271096668539950706640226281339522119791792863333218036001243382495934195067757680560645064830442594718608416965654718617188308724637615027812694454481879490724879179690186031797783288748668793517618688756175339760782235213729143567407708689771037363034419406133744102902301898109096549512711829028422281454399018346273717752252657162537406348949987558553607314114355103009341337114399749649140148201906285122673485391237115298745980799090930548971366378034617373023216821475187513374316806068065065906266289812675177301886793656189366367802615203392800303071184083945217437704773085659258076433463663273593265214266233767970038151653053583443812941731750015928832606165873327757938585261990639298489266034225809819099703941600231320660006358668971301745683507763970257251104658481676802626012677162845225104767790498453774835500210644443976438385643673975303610593363061598107712527177751178350922390771318555247443316329777836643857401367123927917935431606621517996585994764353498383421190660701577255038767177307634913907974756602910276721957282388832449495724246294882578390580444564954465912805165721732939300914565352920040614101548921452532720810303074491934123669614421944550640674560880877294055321359593137790169722865094503334387214146727259565126152834794345958414154377584349518549001537525146503992339479876964568548301784943060819409525881531612796756365384564909302642150096609361468374970474918053448422210054958596586733034635866166265815404031008971625043632648711463438296350638401912450534139220479888869254528413357865695014058572330773977355981402167065121989415467399465604619248692191903313760387017003322107581520677668558540894842432911133604591161860572907582204503849424775933525208483877835621118585542391342535099369348091791061895842713731807699086250094305272247115406066048250249016483173601981056838127429688875943738986411254229400545332116126673454612023569670642898903832150191702886931807887069355948604747280148476276766593038082699534385655157480569020453890742858076982842386878180737164491426648292084800155640210978886827920723035880056588969948542119848555813174623540263607510374181227790567139096001626117830301072411700588400378761039174120657716630680341250056255735763899964981903025692839404979039474238355714717956431027045740359606820286468861267987348699024764449759213004382562532456375207405116789598689660348724088788676111377714492050542815546478884983900444807257118206865486881102727645471430462081147007028631116786172156082906075661606101377115358877988644316156299743582410556850019714551830003394569035212350337657441825412690331337374274855198428483758750139797764034758574975926274019427578804687265674648688093845347961493039041373892347490579597298329990819007953600653879206696750861303381014536210744379176836181055940835041753461744578143538242284203528018491370919413198344037368836235165897996983111443760413552606822999717083545688241595442936692064308014434418444522491977297885968249544915832042022116420267547762363747313653413982249441687868376691197834875424418889821170256396959246050684507494310995047055308120012270254825130928134205484002543233211321953986522907108287352890979981691025601188570829893916366805766810156869918371388983737424757993786287953467440364960549340281843543082991744643648048163402729195960812974369085631442206729105586016276011084768419695195448392327880032530182619846015942272497512657182618014566980806935178313982466299108085733437087848223710594474844184077891670870250031402272488710967232859901292643554099327547193583381398090217404964569440223278813320960334796493297313018861849428416859943300657169522183917039093130453530030566385506951687893536190972525022320521065865683167760765277580153715753871941140244619761016692218340412976074057792053251685441814009769268636537163419343649297430216162582197874305969674895677877794056999894893521295471392619240629355373154462593093833124067490989484354025718297000577799624532745427326418414049885661135855841945254906245022535358733251605429024178206014912323006695826878033320874241691906899690157961273966321759906000341255251747228585027791201058025992426583581234276268631557029530430861280783598416057145404449017066175105329855924007852237346862740436312333162977517693108372005975467808098655279826421618700563028499122298630232196802486940130061986281748428482339498633953596787786508910515373940903453809515271686097678487718362421012399235658531135691645080202690718450610765801718345154785911722995575225702091480997951096105967298885348945646862511824439362346863518992081664977716375474129601235111299934782303933931834342083517308069277496578112854716096278980159223397784802113285997132036103604972075410577204253180130149649947190740535424990806759369643511630382995176684287544062825311718143677256507072176127269346311329706474449938423278941343648935334905941311823344655468775706601666826071659108300333640647683064892510512135601523653059559635745773187363006751712087548043367804226732387785428214819862063047501474642203671164899255202343057760811500285347396936851515165790810522185178384379876741468642206169400774833085499007291853307195854217311925923931796932334101496288422665967468255243048834874641423899780976514950613682439614706860684263524688870703771642486914515607820569140457390225640649427455664297473613649881452636402762232218179500347189156815346912071279648581053340387642469544807257927006149713337944395718019556503069069643177576093285176023131863516701312600166046880780364754660658131653621367479135488437176702330811239430270771200310086448548326570579525366501524711193388772878215008775265336830561627849378077145399668459875046634608241821457487441498907922167179685629065721398229256131165664628425947758810185695032210301658662896512993519883365013979057370554690350987696015267903945620793097756893224310712366358342572127075915776214629391445245172539640086656365475705903960540120503951940523059055257633207475850492123557733082434189295786523497319969013832462949326491567027663620339661191426699281995029558620771119117692381759772385718593101930641505508643537407552486875884664241953411759785178542276326352544137530671283499151490749446313994978299993716358617303549890700440391318119075050237992654631278971352496082771697589397919053288705053580775179728866098646782445887020544003689860952518765460728793145310554520161609221207918916145980945452672956839912806774030586039154580698802066069337886871427670434045142755072694240341170386247074333902711167159107865656090954478669984778868804272584748374538996756342697940490336327364734363260828837761284631170922164958969241783833564439939151829549558175839407237476096715514174690886161873212321194503440275626351688270114730907436793431719547736536352648335637038940289614237718214507693976734064414307176658510027798119991492273030458979686994952960515803083421975737277343312207383605169935758439876630973196874344037907035735702449526952068358952231021391014415438310117266015513290266627652280217725827339626108955796654435879890040185218928624583684763457327861986196340282404831550318854556903916300514481586274935507140502213485712709553796241335253410807395540616990321060672405357202051642441738988458495217942007727291658238844250763252952060518273021669821087333671722957638595300250773256384752100981606764471699882228865695941572782305390817175588994099165173364579865296548441265990738183174712677343286205507654999483448900308841788806100092149775362964407008768031319735076608459100212461782111739009363731199974540632050388242621471017020525301031150119422028182967635441807417807205284627339474764501606341332413477257477429929617724820324774476208299854248832910959241147408549606241715766118030824627201355165744739403415398829960560663152662936646744730062774755460460327809107151828732844203472454471321317939648093808775074385590366642076777726513112491675401606317543112019708747175788865851330127286821242267771392556282208825654675394084153728014100365568130910435342701845194917875551985760631258189953796304790593034611745085633157002190139323110594976843153822239558506076347394780418644318482170042965500089633276026584525841896183401054382383975589528623642849459822318128603067666788936066725970006871991296533334478064686394518432410867444216713362664980302659796208250511774080761808887654653028871166287461823437338523734308018411887023431014100801601965178247218542839627312251482459259926226815938705571441816642920294685064624616258150366431234750388041041865107413922133825203428213933378174109628134553149322337454752815315222806404650778437265596715284348358115297809646921770101817434925598512630094417260837993145490477151360199105288242251167871584483560315894448876506591535852223927843298835336130455627354672514820420469402623893875733742985104682166727415109773086758336103578059811117724632783528883449855208880339801830811230928459391879010973528655515268620241446290716439762233277546000903433404767526952539951759685006870609986191607672953194676716590161065005907196443358200853030876846270157905869607782982549492135460822348416701561146446744759811241191735378143991014227193419505630712490379039428029405184343313035758971123877935632002814385520899103105958348695039242948516536002995442144626449896305248259961239868866960565559852119642309635643671180395883173650595846947185913618890955932622869546433587379867608297762664338069172474231004563779608177915870894055793839271254552075484180692238016737630502396444182370854859368314675001204339251697732898123729089595910477224791256174316241966787265504033057233147218099038828767041187111547305930654712879494935665647124242874172486393476054896321881332881531421298885992962200775616150995119682445284753905538212630014099778421831483930147288412715801420924936436291572608161167454308176372685122252259971910723737048335861264693181436994675314793448293591380466580176697867786525745387400211378284607865619133126170556866228920654025040597879328313873914382891156014145421994625226835327350928539784576606080848466943743621932023702414759215741404887293786675013224345105644832356358186969312745005291058859231488858807342400293598549729839004407209996184796771783939869219355750964215266529488835658495031441199391435086594787296008108386745169655073882896160550015969336035648877906329035477658237639921869471427528778692237171979859800467283549845590974350090026086946966464541977534148432123388185221019106099412542081180590286408814994596830544551104828673527960993407969069099551565678947699481370229861209449154605846642023252132148645470502569039192541757148070697253568625120003326634433388301183102220013932001461293004754018903839026633526107644121604706549916260334034448514017806918136095209104221626544158223773857933895802899013928589597799737214944626305569450699284008869177675452738644519242851651628594277788611504564400883576205224658541867908319980580180105727558362938311978255851060195971132684545280644051969820388287030906734643179252827399763388061567193437754214583750106062363720275347982185496604136954464673695010123414788009110675001863027440609367256955573165397225137049899545373819872202545445625436345199776985936865546326773849086999268229051271696548260617710481821690623092651166204099782523950612459092316666692679785581218706567898734575491477045442076241466817772202881739293656593749521566830749405919302089694762029145289638512931993917762431497726251074649913448963414753999623789894644523187732173895120898107659623991256491333235189921443325478109340524958348674857991474962268073446758453322735434956295632507295786974333574528853005261131406601468134895670901335063301806309545730028404747711948178821006616789688684782177774410169374310373092895148025552836977869633484883268132561331009979890639206671399031097120859019996502108553694667492931572152357495153845834055594130490175834145241612528726701111268507375305116867645639195973538074850478958669176241276950907878744996652255421082367569501286314515399112554012551543845191879598585260945600559562286082272840129429528827086029017941829721968638885734167165478049257370368992514895758440661909506693073159294788332466691359815764876793106510665622399527072258532366674082484235044360219297197858759049408097776558692832849388398302550616342325154661636167661856140926954942363124047926041399892376371827736548908061078921846447405676945209808130250644426197381297257750742547245516132149892114295019478485784200073433567147606911873354294102587811425916654697796925184558358391545019115048844032452206299074445407465463750606709870507749829652567814596762796155729877743890978814481908573583849803565837392802815869135641555169112061308109536792718046194202099439041238484854543808496920881735970556029699949023141717701223703375870534250199836612331554724652191138960579616439420044273300030697002305995676258731867371796855598922313704048515751103601681732994390766644120486483359181662720396890709067889077438639888473834461791608206109045570485675686011180995693335010005798694392961909516831355522976898914957140591874980852819257599903884853432177944627223295232865845920657658225074667415220122150531190368051162665485668227604108319315123588617735503874433365785939926349856954281682727139083081191558398277825697001915891574372980037512477809967308385527621913723062013727328311626406186579338185089500302863017998843863180716004777392715598927819916182204840455079496673871435247634184398823380398884619956834119213047089990019131537357199352295136962993774743470684231547848647131541008325137500990650734773378558181479226649099491978671860181561265966299143099530595716908497563790373950995698841871065242186852086455184292858025479014470083661739326312227316320044421475340862885320485022263017868079376739912927194368954967640583455385749417440854982996598729538387245286140210895578731326425167032695072698229969269263901490385477873356541663765387416587399381458113385008465576821737337105335461678319240241758082024067548971416604456443769972205607798437863555870551971339157237065970449350064752403170211093970255078471050690585789518596940432005642287539519414359801201909351328853984623754034906750062218715985208251228924080674705162193037632207423613014857828771663202305631231715456066928478420715464363358953052867486553874397125607154058857522837730328486487826186658934976907831839899518598163996830753778075647497445452267653598305703451280189712098880635171957980125673216080981245365822638096112995573341190418516712975225583964080903645222444051799065729367194493882826999458546511670981001737165424389179933173927904000337759181486569629583943625774715247143882555266311455371139243633107088707904996025734163164828235282479843198900015266047097553652969730887981715095490611847653158923087658853745770288625548609189512599016424531337894265549148243340704157734122283950444815269411355761668975455070433391242833784481639969691077511996072907911656984447320361482344903069440959506024749773857973502016250029584327464295203462574484079631319797370510335448098055259820826404694935521448130903556433633232233773737392027671263639701531195141999025910606943110864978512559059157594733114251055213800271098564031142580037746898195296785896099588292979989159197192955069144797772069442265179736814700527131976275439151597519154273273848658826760973752261814007072470681673784971175491405712904132700325936838872710429125956882637586887704341915267448669378132245003814307807413786999512371128820611290568599558656148646212110413204948699508801155883174254954761101839739713094236887403502140421527539221859987274705290803317489700112381609918134718538436325407081863801709226115311574076427148526339668251525673100401563337219866454262314114294519495686400195465650311208452339655021878439676841979426965408883730950299278110794456521069406828029460616445351747538973823046992515887991823528116622584461562904519937890594483179200944016146267678994983177557333655161254947709434074917228704339625758427296712088526690181738746743560831158448805512176284360105331528783671103073879886385544184082656299756369802094082459044116322119372280016869829998297247526447809811806280707484972509988699605157363590436432053087571220296400022486469400213595035255911143317513391145303599575347628261722980395125867303165644917189435590435677379971233180119064192582047354440572818800483211238753978243343577377965706026753591949657116920168582789037522522019641925431560202514966107303536490650436033063780492819732375455215189569656756212715632899936148696215636263679045882839831286361520901953208728241612419391443338510214564213329589804813733546624990166530872110487269016049109935558778212792823986873982000975376669311874222402435674642657637795868566754019074384805579008701450897280876024963367449814552918324804743081480172508768701276170667649338098827158744535356432380646290876006737415786117320084211224077556367493246863768440980440897623631108187412859477066142483400855416182080659439770023313587456881873771512971704037813945781777987559831191911259415083329162022297495238039693053114204571176548940503594808036272101025070265710680038734643128846276928243571407299341194668160606782878304017572727525040449793165718355888102414999322652559650756139230033807267025546872375720401522165240348414949590451437200858035351900645269022125288979251342902065216620282703353771029928342517351344180828008849887791801085977065637747180170976469476849367280056849653078268222986820076880869985467155337690640796253030998693901759010493635242931342445471700877656116549630429528844060409428258737178024667143459791641140534813277698359728448745082807321577909260365038173429097569193206185223911011491552558231191348297842213205634482238003038196985722367750157396468614433240294404366767505308938094657849151650987258684242036167990166724686925484572736939933807611957965618845437585058128697444038608050426190363528496795385309714025180429621259721596322771244205792195247272239440252425244752924144171886704322194140404329712154520579461169219833579043827428938100503343029622388971864009437871435766278181142406610007027173066046756184649383196542386968314498928833422845223591328250077160289772906333679222941801201033678277522250896269812849501052691249789669037590116803616485569460820300432270564399363343544895989465906037132336165133489435340892651550993342305095702911799158689316168000656511076502179915073063965461784064086746738589964832815544144592180603495368515654396087684846186585114238738234842430844973253262021295576790099651447922420824938969582842683680733465076645359375714251200194325892603254126002684418608562882392303836257749461018717845170268261843891046978892640397457138727260971561092586424254159094160874581744069994879547569122334575487697173217540977866354399899181621623313158444697685249314921086236019541200652164993023684422493962330442477441089021748619941466000155465557605258001793284319977191301044645022004642371614894353949317677147507295455908401384167617880384305285222043999231899116473267830501992193502423503504522417104909483372395019573612599964691301029088193870345353345159816355157367162993048128225340935044170636617627245842770503403179941155126220328008191929161015941395122425997880622658154847184442161653022250892911395924806587443381749408042228243847554886906808846469701347553260258595696653367755509414978677948066662086096437852572014560005892881309887996657261090774092275676599445854574268790796544561766835910092043075695550191439173670897721087616915206955854129056615573052050492376013686005857663518823498042424734440408859769869709033802813803026760323082163869983755048516555699832243778620208263448335651001665809633277469646920464616810981143417415708583587879346941870202911331993984575272863799880526915934266277481392579414976621349255875635008177994255194220043042963735736384747609623722716617216977822200740198237080574078581563271058679584064430160241565814827139961415508746399240479212393016396881209123886026680434457114026284503047460733910294880017139144098792798595017224642748701915221564593184603316500737971094506749563633232491064027638490301037310864042786467428792807032639666096388368519427733870012734631362980837724981276789213198748999999599277248263340461182657792268849115046283431331859042264062112456804178099339343588105393095826065154529607084993779852783163207941009373367321370757675366933441563979873637217909190397029140581337968531680857890703933083482246811154573445048242630191951447841098229413429773603170965981425188060089726255559569251114917569066505963918154510299985349495369224349335285661087483336686864356942665847038523657366057438325102261866778096192393973918483448864390624092467517394696050191197116166802102647224432280008732821396819401821419215919901245246131022888957976291405704262119960330401846951936761087459779409030901282155420782688144850442552933227883889150134232503892569395144815490131828717319451309464306913077953955281698588173397937922176540478781964998669651750560282519172246044922030813095666159337939678530904055635036468341358087930098316658171696058070378433244549567944728204697956491378013152356507771733262128913883333762603161425272345802067113702535833246056727794078673504889577398611705862547815507703326264204156381813633778837956214675432033859716057967845097991815252958877823510454492823387879324854063015887776733063097820739788065926651777054104688692668148037939274277230774702078776990852082824320732025174042132532057660645184334020481719196338294609490986054728287037078962949149687268224316803008826761044382226812505055170984410712432993424934702501438425226635156074803975825171922614122539523031058510326625708495278764505254920939717007840261191503169075768622741111731824970569002331241711531017851942065159692938301699317831595429476137269660832276942181849826545558708183636290572450964624928798641291897753814117919867169558947609293124914812609159286875031998560267322356272573888244139832705549689037856774299422366576477892244054112698672385630665026558023621346653322323150515003780045452282817541030860453309624768287442579498376784572909509538256924542716402046577629192521113661484124253280621802102867565712971731141393231770917551715333443049355369172224825053642201833065412372763042267832204323405702483508369864585013296139161021411348566451420805596401269979579840644365401984213021591128020292921442222344718851391959131965128467383583505383960468302673513310104346310891721628934781446046840641090540269146131326512814206059163743645345781137567269076157867845831979968661084989064639500027945425978753291789654371471939490690786302125433337373248841243723992423371201525209368469848472867189702122600749440150628063393681875283647672696391401996357343882907263122809464893445807363970054587362914943011675595852467412366327448301902369861296100681783352229364777948219943628401634123916725165706644801094577557640381592036362275697572379198505131227711390710645952210944974929731650045856489276587105228644590335953838390792586648421032186236739095699688610489890770315761688579336950333002786121143411954501332219871462781083053574205770040116096825990912687604714091809171536616943449394817959999920841199241292740493961533227904875753738131834269515270769202595125820494529880537445329977425287738592552177375519836413340973073080795949505549210326240690761445663867322364908312596483713367092296410619013850628624265492963511528051724771493297292064651629978212764874928716254628790341137629565517684656281807647834956427225083764042931324859856800375051864332355752152775423539345346504151490409996746157392325174243989968510917844776128944301615423314244555620878216549835523683973047678231245979345160182610365014269712014662330721888994094393499665503930389829398072799766170776393337400855849731980915610939776899532747350886292820246015395904609932912987298039813059644413352599549410416208572884837710947064033635189426347136698082044221786250842350719358608063045863326820784453506018810983518769783064695022784369285675568109181968969414131212057418355156497651220202805651526778261823689274900046875147809728515766267196011189317019157692783489270022505989473751690452428140342562372948321717325916537719086814298560048014519926585749428143916552726611860178699607969405067195336283123200708988941514690200771763011360866600779886655198842727577050907993208440602317787223283203906502295424198389511071101601178991537616446979409285143181759007289299551493292654245300522142433234968988264321661234849763852072261193595941614052849903174868179647511754038964471619214550432414699350026265944969579414998070705662941289441764993117544171032438827398391855451687847151448017640371837692253664281034465182929803697024350419333941360997993754230550348612417794236713266130231803040478057385280676082795998621847227171393150793392753982453174430347091005844666650969388482350564763035013954127640453931220618451025603625591599166377150280913155702255728257959139235281032753188870939352872215720769245564382280936505551538984678067788412582650783343826630520204746176987963168450839302909830613899945839181107165399206823691661617763126156483677910328648432243967695535758726320133399971744971589045978864349678367764682419819301917463061270159082192326052423616014366398043797807370947583678558376154185936081208126128265575149149521366933091903348341446291006466775006704371703792824361109720223377798908401842924150306921998442424092994356182639866374920161904788131289390537916221280624403140128493800418919883531320607580070857740776029587473087011505250469969190713852651554888229472044737149810782905676508855481569636348210495947479069928575535813842557874548506763970278017151838620336829484854708853769006026611227650565089042011310436527069630901086574676130279029325762532736902943828054359297512951864355789368090093026324371608881654290887847826947399515914394875085777541523770440054184882612740912650157975512673695511352699343879950728590256404065215935092726830800736122880782382184179846600288728559617566850794928555976555739135886940967573384435495804879318235540572184197184533765352672151338965337512238540463836714098083608934420247857908076410848180686984537809889102152194208924465945668112740958034170179323027025960325970790593101297894371292485067474806875866762476375084150756043884327423660086962129184660371351470109782802027169468842259156147910144466778786275325599668477431806935755716660044244066804266363855234747844543003650891080473634917793768449854454901676098441211607522975708432527456111842039799690506491013537495762981898883564949604168053509383881546954008417320612489466308966335116704772642318765548156221414426187488690031829790331398748392358395096969339915904880566970559751931560463093333301859199632601931778213721993369439568080206238997130669377112445591067365974696443580975080877064056009360831480913834458137601125363084225502605430154566212470635542408094083265649651638652923941761233520877118579481341029795358853383745180976054009876364143231893533310688345307517172873855412596549547005161005881733337496955325096457427133281616411163787376379568831997585852813801000278906767062468282640382035821825767085596652034118492730922317234806184491842700213388859345616596170472654739027150587575445848195947039974808786530237470780558182182696657986656302713700134231205360277732354542205059064505699439059990169246751374723570525663024801334142689496180915793621918530450615255229544555672904903706990117107497850415652507741176666376046079898048752597970415146712027905213961208455715211853211730815696706738984165346860476776361375223999097200660971824876935226926945563802492397769706643430768489151432691359475972503813710842185149931561193775723853424144009795797286493543996999816101749680658991746448187754792089422146202312870760706273337705834635589154274192956894160938842283743323683035963240237779553615039816663375472099844321898619927738557317006729773171894545635345024373121255035408215232082732541545782620432744138378803217317242300247336940889213919725244103622855306041342835150673281770408877035815567152834318944789603086724603350344293303414631127396694045617758029847341653805955318104052473768090642149709196461877973379042814746371052976663015996300579954554303204518619317349042297434283358312900531579726163586552696248782997641836994883505378137005421376808692494470105197175600827825263158752785401575536511892225495459145555335383972962899245607392909969170678327146355538219610094666790386241007421025535175603751554126995181047185764694711432431927950859911894030752721713240488537967335844375288176654812964222124657350394386512429727453415911577495771482854256479628016897947192335132920730719659756022912872096763348337913269141346170161976539550153373117166777848570148097968217191243693126476704688588733429391427483773608026187446541072329848107036477202936023052773138877147950453405903306103743257784364512255788748583209947454656999886978989884219283778004852780380547808304524000516667726471836956588191753815907828363487208058592547938326837015977672256022742283823490146279377884959878043374793917882467669938395882700999286866991750311917963802127227451062475635119380078492652801453466050950835220298833545259506266598119630998013408698390892403137782005407110270122386542660767177658538942400485775045882177778580913594485615814259760493781472984011304467911370304862570631777950753169135395985032293958041203032872931326029070928137251704889041792821630006413542117676775040274324138824560720134408817785815627207405617134011027156495590364053157541388787586456890085321932631491441556129897513703876209198378449438152930977943642782657362226680358673245645728722977175414458529782163520276217813042862640378454910764227193847374219563982384246348570475271645530011755869606959592897363133082754487375891369002366949510886494199279029590006427732070009964327769335844816428062558438410970732575122660080445277596067030916331446537656259861621997244251046548359804858753814849371429030721719666658023753536023351906985433771166804715332864172062276502312174033271511841351275791143727454956748238825086815310170717598337014164028159417397661410340012392750688107700351951656450157675864751111595419352671448134236332875440154237146275899363051872075285267598637174254556700058157431738538039178594493908050223454906484489781446500666933524312699065433653507757542048518947021469450372589755138284688206643860388413487516032819006895389413601763773474038990504343898915623385678257742716982795773326127268740249062056743929580962061303340121309769778282405830932445467486672540085408504332942076104004478513199184666007251548558673747412868030556231136690084826080200252879574518770665114002100068821525070077670930613776921637613779045835178338351999203202154555796097187367363697295146789567607710032064788556120107253602720244771032887581196231431850805379980887960317261578627312270725610212559129095331982709354262572293903353221168556887969410121708614052818561076538295528994709087966833432318194296983664452311491699579063415124151108307803373065602666666650141135141612087724259422316032376245180034974410077221059149446306490398152104532433408299951580106860035539026493936062163530998946544404931065889081617803523613784160931391082093016788577072394652239805489247677541073508216981744951184875065315818870274530203715406082407291077956016247933237827237140624534017713130567699019974488491049031565532695569807339314022949103059960304813088368482298488995850897686966427090333925389387744483180959302040432260735025670743443018454064734334016199555765744948174835611879493315199564837466424673904209766607643839683833008151274454419702356564698056647000941964626440855894474538710283686863386015953543333035847825707942404620912433197625451728721062329130150358853453084069828818260637063361609666037366208565614251112655017045736501280005886216249715519371366232725367425355971702863718802458362821385044782553954364475943976808843852237212206267632448010618480400194470400866084935574944709548247895122278841366025872039823142332293213574326609608212692122956571761057738718182095776974156467023281716481117995221240205755027967377182058446461898555041988939096964250164954563882365292600225442483152282581049240237921089975259410130410431205392242562353010563497566928505842388236493622730949167217792294754793516860344729032366765623057247725727209375939334816333437248180582478562299489768137723074176234139985800462423883790225898062395431060124780515589920162500233769814708701725214188020381995935281733159827164432902864141463203964246109487153332246249149545361756140488226913076015358364880102180671372449046643559717501526435863454610878097519407942075819990611233894576336249442459004067037324329362406994611393886587988841417322691305694423541038417597250229239807730940183290406559324946657110503116219983957933402971393913836830136909779895202628463665839622684127940573464760080070358812948564535739255855185091924278420798853331218582013424849657970527228874488677167098157327646121151952103329455365525086647110977239297841203508615378512505626263389432202107312019035425445976937417761391102218900366617511266937034556673888652571297046487966196686380322460917911978653332151305063880946015326746923260157035878402015340559862516804025770744978113461213158955717357502561291282466053902067469017912020691013619203520584764337584645934509965079895474287915391083763103045830092066501762645804149499401781296812718520914679240876300358452725399908991553122779656951140350917028737962454144299984798735887686212521440942084045541643263109720987817847416256106728171003023322818758160318271483486711271146445135400597483024850966260782703457948666989373404956589611987989902284373542331222871289128802764184069214732136786296165601770996239347104517262855671510107293346136967217679883712524368002726119916834984996280709309560477403613377769551086298050642273849157975311772549430085903687758528535145969960644306709535359831929298712192479846110414919007894896691540897768091734308562432245868306817448652999812940975987152810962548642996235527771462072219239407429540121974830435952029105245018482204971545159078538325256641157918168232557700622961959932027555306186841076134422151581126476368741833589069033263846592639453694098237854319375455882768258468536633101887427782409829497434223793179063022554646458514036182569790789766350307141361122384135684010853419410607916568148384127757736366719999442901580355121876505279698494554617395907098392343135292924346259836837131014989104693056150267611243121932080260018565495179917300012782244668046843248520843913676045016653474985428704345580777885420526554182673781407628959117920508861509312478442529520775125148305491004041978060895638955817256263412531268554354703974554159703299222894420168723444260560184761738803877178650232980842704296358850986073899359047348592497710333862477299798552486029701740463542844014531493212142160878359145767514969072509713543638372726271749245501683938523869941310765908423540048845999544065533729662765776163213610604988115373227898486691566118388596300858003082470556802138274512869592662042977796919290197799891256486827150530608115528283181676017270360595396600090241653228287312253723318760331689891652482551677854864826473413492498134848326216272038555625741867773654574972133921254075332742780922914966151569752281584747237980319611316519524295427972373685464723338935845553715674669921899925162907924662612001855500053041788878952826783623859495236119907501921289722351790049894702617797249497840015903921901074539808686016714480743256638409615449271118976932105140361378155855941128052635002570170891964931923705468725217623331316050176067915380688010814915600628317810334022641867035538469572585525936353872160139572009915011703962283404047770052820606447380719303247689167743291440143512559376294458560678747027859994506921812312367977329452416217175439257680191081855554407253488866189674019194777208604196690286501769799612194187528410585262648736937061638717231497202992058203574654024452605448582412705701471999610703360413251613360078408002617851663024214765335337314330769400775929751155848535803097825824305651272635709069198756634088680290872447675249016083815999890115413784764225633283470713879182447814078138525702777969154382326772132512104603994958565067721539335283587313216156259374233057343425566484080878104293726207154722721520754010459712563504965780869762308432265710276500478120300207168819546419629661243389806558553299785031989025919204680152305847909630067322374818732487541437586446889926091676560947893277245552995966889637717891409136091098828677009162192881801913465915385073836845794484099934231249560349449887270526168886227531026361044602340544664976087172488019999783608441395630313811945216864040072611584844025728788654018606265169415053496700582033150921946282819039532447846817380054152841950435805100603710083818547061837813150734556096356809121662140428536485622909688314979954692056155562943725066463456737858497839812780515690586460455104601914697514235619474419276221299697885644205781407783625228935585557092077832633446630284172931358043471472400184637110791899328454855833644681164057763754112599548152452563086929998507116138703196815265126767812112312925531336701713785500230154329235527733571123087453057481254286200821996492566219524821577472461428155105321017110054859037167491824411481343415889389541513408647751143715629212529223136844208758035488374258169646161744861051027875464803939651473670859930793511919919510473261966512675754459144846537012649154820657164065585312690773673781982948849843733106876706421882733606305433907912378731842822310020226241953177615819027418150073240423003091807256563115729824464871612238401272453910295100416206926384986674746158614585178274289377607899613433445496049551202105035909632055292437480079463171283943669655476170035956878192215649360592667801261125053422704412109761505239375757634079750059904375153124894975501460596212189522486142703829344983325400224646457077561995976989590103114899816358248872097275037586223958868181309601810520534363102337589740203034710135121508087185299008047193688085056266990614123155466917501069650802370953836133180769766404642321826250102489025507520993198338474034640019873828829937142618170956830740553598271167903927567266622222354108237932178982036318828253080393817833824223554245779579630859864934039067510192507936147251242285144281071061351994545165067792400295664381479587510022060470127153279295013607149466211495869452943313265510650033140701958376908201173023918262332853603622958912146782979658153515748089483857549776045377957521848233750334452433298985347669206344636136129195858048229521095979844505932404358876650160375311771570361552081741650309509872897744741500730448227452299230991737333010073499408495373795573981585806378658129365898204099153841537082012429230221964040812960580655861002600554100006290253668060968476076865604863223734123640005123623197443886884183788375163289798960737376692843276730921820629309295502317610354997042599842941596533923037131690566217133536705833642886431287621179295113403546117893588824802646262656461153268585711462083063787422530399990625267756884190632105845574120078651102644368245731291227104416947722616127532394584800969801615801514122240726258647154660239697854297962135109202440635717966365742725359901548629987843311755599540676680628510758395377278933059820118568535172619448603717765925064983270682745448505044650775084767789297400204443882300053868062071613622464583598830018239016696926845386322995015157512396905617878157237939317423754486652794884698919138840227249771316541306100797478910945972565819482199510477840087989720450160291005438567221262565750975743626706341141284156050369541624225200695228092095178827704549086501078416495482614112459657670950089512140207237529861626737533266471510252481092472686914389702995323216656046531831333694967964381505859330545268595890100841644843852436701475518638194549690143978129939275741658091960468560335091539049537676032827104975548578264915422225304979321243378799084762582570276163920153839442998126512950655633483913805772832485439173789668244103733277061509244815713916010310646070911934056628350836637080119520650549977516600752331574948514228718936848600812342212887420695953982020465423235864817936620335933459483088817308844682837223656712581400712627400014235818084609259529975422226604515430700764599309877471007572285592062389568124024334368649826584074788450333132102598975539105704297580211636064532685406513427348750793574826811926610927793843602858120782950911082055834378238638961008667559119194925974422599921585587936816420590520343476850538343460482794383834251626134609677764081902840701600928311115235645279085695697093340075325271080892093832119668785102174206872262028552164790077721172891774374482984748322568145803182633565732995342148602645283766647297197366431778748414571974222511015505154127319284579583143449415247184516678220370595179789224354655785564101279548439955169275494785756339506298521216762479466511004890263084546477034667077222666791177531596121705208511968197029290814317636177766984452905530133020476537492416823995934126904008394987853425640047344715584655714884596010864499881904437951761350817497636094223624695299258098081149448128920088950254840668481002526237958194291109567282756276982704473670591884657626106885323722510582111642088000698311757600223357501353962461491328584431925190469218838521935779681994690186892719665629995715713020643617252273549900257289508853887769852517024872718413436957592597187568026887465019354246954030122000919410887689113414799961284152889179334234636350347020243373656660721607014387108253535358188642668064422396701757518698037234343335304006120760255908833230885785697544208542911719597261805530550771418789122096238794260707569569687936373777836107898216285926527995024347078291491672169581081304473580181482473715921936980593278884185118239376749718361805801848769317180725140087890297033966836717306906712050382952194089714096906656430485828073172985993491365233639673435989746952774833139815041572159732025396942026809631458053572398146368175855586940595247138413211956084880664189389118968110141557463271575766707678273654389661463093778697691666980912122831595910013810153767099434091466800587108885950980808980455231893398914198722235255754737795592460392114919355614556122410569034804348705185923151540121338287476460216457164243473022458692329487648663677736443389613576227107885673678796417331788125129642024609962437261789585842924322389761006376592106811072343771694077148556759895769975158418926893760987716966336676399416313019844528986380097568303492932428110301270432922184133460860910676944126016120229139861283944870729401436773305320677552867179277673622544744650440588184799743120484907951642491068786503286269162485889049306690568789466971147050704414403374780388702036453662983190284786340503362879922302115399264145725337038858959858978916847339265962311559409140099803189385282222788356009015549839148706826893283996599989617675619636305640215336176637419094589399407145650106775882249002328692858652499489456925106849495219913699845175556628725960445749633684564097608613185185902080333480563121491576564681119124588277201374763714097301942993292274122339004693714028922567475353166708688802426582905391535101453113105869191746402028679259414258357500790415714110630223270722569382407904970264138187384279086825198067705005404711452649625550464483443574526560511076936236317155781685762810610335109912605206020140664918728176893902113432616832173218979559121328687249820682938917907570241461990664048814042570189203472348497834567812977013415174030313631978913736796312238170181295410193027234032865221102760467165350125495564847506336098387931256049453624883356027937592542770915093451075507526880870244704603084620581689434053298474673569010089537164182043753295917154532123047290546564396041873647693916154345658114623807246768057062549796752850671925481741875161657751016563552779781830559761435137462966417225517916847237088667267978327257280748814568416967759220226536574736253443984261075282128076739739962764474313693255279354803976908829996952714583497815791734990646837066661526831944141024576074301286928139466365007372072738269726194758289348460462357943066669780101692498930318748578569984923459810315275864305942854813304897843061886017295417891982791922419722414789936493937009611257112051953675083362969198246397184477673672096955246847430484547650856296172102924484282223836234776225895328638364597165546485277438159181892371908129034826985994294783095273961029816797198830752716936775903215021555688759444198474602615697116926527653754128969074192088162095653155561032093966439052118869264515647528711012073706959436809607479602586435625537270938573950010374038863828273197224052648112093897226635050416219850917772428972044991331142945915042534580323349056872288937216437229469713499904901960407231600319347475292515629875031755028774066856085213354433444574284983067988234909666273245066663608593936821376799315668610215895649851720383636991653335000825867544134287021580284541381013312051157620614372592334190468765770488711098216281965548283703877513100938503622423430466832564461858711357727118638547171407746014797099229246395964491147518849072506910065402102271581727771048254431163285396497991290044044846966142804000434952192899142675112130858297495438581557751998265166216783169457806349154830018296293673236451915069396363803322045754477378988871194309924620569223800481312441695907013377724488395862005350815085781630080892104455444474378642831129700448546723287856001575479581175808142626869631390162054160676737926299853884894632702367913956151150619487312170219647668641798733628371292934631284553138181552043899712784727001877375501420592397508658485573255296057708845333416043268572349524524392590631589083314946612312665977952164181017812023388784261513779089577311235633554495778055838238865274238622543414702416083827003266772139578612749026347412110874520344056076843490518292192105529042839836312640082568494363793090111465137965901919318044753815388239778929466790784340926232318039778500497290077118176507794004823417509514096441388135951516364259730342731806061755995104146073695360927158562246989980473372526269038847369047654375465892612931459779421241708765304255567367365529271449397017752891523744051135724383976187340056097815128108018495809789249395626846733349995656505021294039190036712556353474322668721743343569764158505709334100609550493150778342196781465133808177872916168510064051911196774491829664079285787118695228824987181352909858152730190993019744754100796415526737905251607705067726845864895053308491479513219935324818561019116246044948958614465991273956308100160270097616162598746622528503113139216700627871228239276105050474118331261903090943952452771563214916981910179410482251872959343802731705064626229541294593681832156095355602768653312016839203413807926614211320791275266874181744155782447542110977824197211433373136767504740392866667763825107610119467812730394472349903211514807271202644262444464832422374206622579234833345100042230906395736126566560471385836876085665720840706472456502186864491444176370513488779092003987677471362303981110664708256273403685408205705139561564251272167580116214683007111546630398506128183581377123570095929950283603518381327280575860665830849602325942607236810269228933145914259171733026975822404344669444380326553824648652385868503846969757483417381644436438278153211915261228627840928631400826980203900057901739633856131433854283133769427032293550173852884339614965837097991863619920005111974286805178697423202701950407200460022000123944459219144978657848086838038088376430299839133297527734894159991167438930547820387683306125816137998538216330888020673502371775453251893428002852877969293049951374774194165850095256772580134670148470410454617314752453101616446869925562920555123699583408467803636395215045214951227650559170476646900688320102047319492438305216260513342355976591852094691994074507813541588007338119556774015565326937982374910883264356328938515538197229495202856853737668025223452856746104296232339755989224070156505187762828421362998761525081153196233012634316404211121096901438971725516963686204953337584287588241073762646791967513302662021413657417414848723872391250595551150426249983832867754573432823405058522160351145659513999490878360838885466210775396419223103926999191215176819826340200300354982550696640134561475830161384446211775236529627304260520730572636726874371838442426651380950908774411373492426702354140346094656697120086207766672732927428447219495795064857542009693718986800120387243637178778411489087648285321615823222801413528329506665565813710292038170163230164498397209069603229051029036372298566227125667614604902093525323996903745110224515245159398259881212772124870471855189195999592959615488785928993146345229299667270293406307348752713551275518000170116406368847492654517544118769603938419476637354333133144502888422803661409632997859286695443499869006614503234778672963815581938227425893764234163395353776306502178883712627462262343560452016850902266328419821172286005882506146397254227334246949455565270877607414090002871254025561041265993644040556400567828009192635251915638844304628340648770431817813401203820203648078186221745488649074223100229108632318745152578560870408429198839900454690857084024556289897138227118955892579806560605294604884754405389498934725208998644039171934324869722915263430523176181157601165440729167446480408133343506056077563047626291702913674588770612854679980814170089115473447752873377655898359925743993771601501904850338026079190167981166160980456553243259542031554355348663082992076811660062422139230188106599648531202217570021973470534172715329444292775784138408294171403697647892290925016919010390242242252536193262399076419821053478478882793215709489497742959552682673267520321507116674844042059002915124660202046523092656474509952371406720732640824925403332118667701490784678311928777643230613263544923140469472302218006886100899815891259933539201237501408223087878370298863674003883328449377860130396254581302467416873144779254735706892314419308659828586109629312760297811645237746476821312559139064649665234943552622836598030789410838644502305705921561341987258736946501225662020572587073519087753381103569738936439397916954337382100534028728831908613298175726571134426897795228187041828467496050294032186827346518511411468582692483430714583737439864991003671892282152818199936200089680315546185305328335199529345832024990251202646075953043202274472422227112266768589393027831598564125666172845548100558271333249935952250896556473630897225034364082910013893740225474169938926459676328531278263074977866029318411056499703170814774064943891022773896735290686840384605144690251716909059344748052643654190320352973787639438055835259654852737668797224653606432067724096909386833499329906397878201728906574394313111295474092547246801072563068362021186053374741040351991409123043515285107975615448547142735718274369673029000247599215920087564013673831048119605656700331018860367380535115074370600455631651316410105564390489076743786083249928168832426811357180114904223742692146543595569656774476617011186944497940110668722491438966371886993962536637459240984976623270275437701545253231596422764641638575267084102658268948177348525613725181062324720329861778062588310946355392342623737683872391152642083570340280780014410714897208175216642325231819308858792233585791090840000627882657315526847174739406472063430897174704340685500730553181699900758510159111407538623578043436804677702208204092885820754891983757412044232216463342651719554233417161664788545061879251974527156997211039430689588132360228885267086787554723506886220338943332636930862892569875677899985192677485024777109588003325993970300784634179633517159369946889697344676241148823740245958501777588345853371697776895855484564199950263901192335789464754787600322853690611801158219698749477991575695892623389526747562723868739132244075532444980639336328215506559219041017767608432433767108787801631307776964759037639179830088939229825087904167929417672740092976471167350583621481694507510601743778061740483080559318935057380835873427133087041099983711045409475227394449411300640204427983477748074482992230078957085154685738576625044737475631704833277085175578950332074979963595266921554831956910807062572419804059816399830059838881686132380338671213540734336538075866069479224732626540174154693423500067724136568678134577718926106280908967953146162916182565479557380263839392635270172112994102940400480561782244234286957621459001614349959991692032115372673554375097576876778868811072618959699020148126505287980538854507541514940545314340778699334769071026245823640093820271499345974283551546834076068717784522268657077908860995824207995188015573109019087310391898789061132040356118476166723053145932186050297452404790852437312605017906417324835240822516126297656655091337454944714462461464017033313593541215718677325718450831070475856365144632092697469369876829576814323807115277627918280006341199203363868087510248404153766189593985487540250511506694228733550958148011778072603242846478031123899518941061855971771005293592314401000142070304631407705860207076308776675680258413389374909398879719949129621271822994484678213538204245947346710151080452782714153449404386113576532519760445162117302033443658962625618946655522307889589461079332873870352108180405149767762215774903097854992704530232261433132689301856789035594958962406653664295871242466257105271778239847535200178576408908913611467328704460495372430067374933012396342185349826880540107229746800730897738202517278025639247467557828775200969680016578774896120607679791286039411268086385336369564602281031642763022781631463329063212761899472782391040616828034764195832456653239374323276073865506073687804991962081707221822353100326032460012807359726393691005848494881183818013281063520331613560945450488879689429692924323837196774067223062535559474340834623722437058564377286317204440868847431332139279893842133398005155380560329565538064075456284714544141783699800110252730999907802841272018562349657375279221733999713444429290576752878182825672284255038232804652736025443549155475850129334230999461294024889087516384637716518844320154065424381119380921549208656807503740019986677293420779268831865206453078752881642612118300392581463938277061395513756053909686139517822264284278046359662968279457388478248229850599022238456749540684897605704527153717405431697641833172021971456339156645291829058137542499064034683239295211958922811239097775258172871861876139147959265926282318182983777180061425922369312238750291714812910667445374929458093236091236296591999066145148421069028801306527423578317599347414380932962941732995262570148229363173809548349446325300264707242650906603026538690980702534551557289942673260679297044021012714421091571297313534208829805191602901385786068244958594774440272029901384675483991962660013683434569102907311584807861488996015876631427052690347052892431804208455308729476188119615661315184006747297584272359380834414856999815507260436389963678586681925062320954289277449513662115788047746039312223677231057350073918688395734466485873038315574187270524740908616758863962177193557324900009912435753064902606234148998057727063168381297859505994968622708239511060966565458824551986126061276883658558369618973551641681416207496825491299335844471144868882816077862833046093658933155517634885480146577288741421726586643632209410462500546308745078222952241663379967710629372208971407055876219215486011961299942968387547539667036439619147783935028592149377633100745760737029728204760967974026831152566828478075836214801610833774982423518152782795616505774503700942927929171893648641721227013240048208924119473838599011480508110693543670431175854080104245012640115058458150322861748564247703341057488158065087303212080668525982093625265241281116646000526617897643958925651767466606348440679163457946209985944249111559959569359751281994286744553736049174487958886643118938003106253803711098057123415128749832454284663594924684371850740633001285617069363039006125474550099466043738497846242724383495607540275488373704783930814201094758532119218655751440779740754019539163890027394607267171281850976612015168254114921296958909369351629235892267080488316026265146065270082728671595056652593842154965932357183134012869862044082568567991923849499294942280968947441083946303671722581721620981003405884010811564894135685323421804040181372717203144894214198745180783462498491902229070477199478732947408351371673989881813314633825457989499686343817547002140019052569661415150820417751424989089916964729044186794245023086481750386175331425125791294946488131843538984836220807435334406063158297158119961805353578191806599203838458645376359615967526600525533582638324029248985529900061957433219332446447725216342224463251385425680398302587883378638091180447953435396738589813616040539363408587605576891804233813965551679921804086308317813323514675508026877718667691057128077874054361530591481279280951694630851751065936800293938357683754698016772333341023764962899678919557838555424849599082188987769554261047926084807428843207724756157911376875488124313841878155907218489304362025567158043758273884441191792840993157596202400712924960858437488265029083822180264115204107062769076107374443426821661269716628288791398252637637169575283314966233181441052215010916397328441658743083459959800674200891302714712346547666513301673520389045279427708125312605629165207763488420866173126107730473388158570077608001345814600845606201341976649456296255567967760013925302137949159726752128923772405077215465509369391419473329224036082087862735867030379259003345862739322513182396164512468519239891986523117291570725296068726082543346722714744170266178030728974742703111671714225772061227689433711683845069432064738151633354142696810284634060946652078485865829226059521031377178705977661424278642443856712606019827840233580201919552405340071620530130550693496715622547049456300738079802129575606259062827840395169352634853003703983858416972000393715581537664658290051504557040128904818814883527040084227142094359140096786890546927956888518317389500117601261541709424733233716251919902124916715167998586930010752499948844564843711241384912207715269679569991445185056361756507679921461247237978133281673360873225861054908852549453490264223181153364853054699300919332418895250284065962918842677678994457303871906374701761602613641392794535988668239627889764303810240764738551991684196965971291579071974883604610496552457303398097487457222036769702103173606441463347047189765714496537591288118411860806336632880935806488396945958351040612137811043986297199763539793109117115739224294063237771612533656038360314246988452016745649884731079520111617094995182151629529569699424366437360119003977137153281523661080462970162105073481077142537235859813011277855958835470540593000247479748467821176822983796701195167437412786419873339749279253412147591674270593848580679162078647171149655022684131527970728788301954080635804897626025992389522850566313650937014642276910454990605052413165794193959790668303291934408655857762141218707282823764671509193294436197483782887283096807842675685147883495238097001856066965651246097272762019220210021125502105613066998015952183884258045952160578841686310815146198738267552833056870813945712174018096323796779752972666839793575817128025930850379752015082334935993286917109268966099342867151042699448703062736928536515666676881079312090100969410269383674783322343042895427623921637864896983336671012904448224179190612099329588477714413651009984200308954794670264323408756716971191348581810925313822073451427878670160782854714311515976557328469872603295504638287758711373082976010019687447411984347024937492777234816194559686749740891642196401569532469352388207869158362427957563017190180582553818981863866874883070501678700732099051924639136668523436205958613274955436429129046161270237106294800730659485502351124058920818598369679964988690190054853999253664792477298431124590667489239807983758131768787087909519111261004270777792559209018171136628861493198645689335870007353933879298249386103082540582583403075069795119854760175818783706047716326687917404339650983984719315543313385828858113062390991979074073102046196888799920700308715575789456625946594920280986601361850585081541466870526961890969343880466647361898636437296925613628283590099044469006281119631689057262825582005021490005956606542500356420581909366293519241538168359987164824780783220299985104147785225372617232022022640128118311472542127562686570340613759449244311059748611075628509840400389495456376210194625000927841432058765765030888020990587364359340765336118955093615028075339593152945620660141985157805003973054830319482566227405693669629112480248189620270096370770302237776717665279952066824794727237617681295133023336814486284346383629735346456986308882794804770360414703240510578503762354275182244397994610999384808641011758405783061218067906608853038490477017671883495056670641028765933691241147501609963766942857608141036402057375598485665189211283112000726216784139329379508427256389197218552421321780146505947122152552054119508371964256070041473211212343024539654473846662988190599717308232530728430891488972366458232547287560893368636648552252005395684374651063896763086841942592848715234813655622133938626782435287479584830972739448315747921252462076540934478270573705971010247441669272445240517319103383088258245259403921937657614774845745009245187301320988099638831435357903393944435593337006040509569012022190100529107422087852328244535837893941448777556575293679445146706925871792761746329416916627439237402588870690454747440943346431125204540918710625966205270372518329150598194624983203558291900962485225582031428173456536876017210778634027466134582663586331773302589595028461388609803663044585214645501291236177318627997392052939631552462127838004964910622252752127475020104644353971129254886329563384618441884869802750412837776986001820304915874152686386306689716157275779854447564605989866848107928595505574307059891814545160567657816273697029406076451880210370162422092978362082357359016147327307569019317116955267151530677320845171502086894374040851913702888259887743921362074284768719985102319070611440053723160446703744475536534951751543985135358833528057401706058625519060305158388996393391081099337422024655476280114792448906185650177672152896133177871340370545992711334659033710852140497702299920142886529490234255038217529674741487278054904268466855497000864872331720796883327284157927229331736317261600258672013621022663312845572458760607429260651840772190460545543804053901749528748490656415151194799342834598044391156154362585144560149859840335483500412073834569993459667017087924543079640066515403184610414706370152048061444555928876629079388048780014129732486770863297152438397248967099680160402552074776307725072066869159730835216775241081596798510216041960264528433114876367315153331539184449173075375771217407952338513473580395444273852825014815699925226738037310297715235935301880921092554838704306875346895657233652487603986092685617184026654335065803678635527141817422388131650323499536197813478313181958344557818384790272540589053751193341003591624800998184743683856832546080483622236815398770235216673628164657637303029394085322581014714401809165259700643908953991715555340253820768497937675584011474582887783258879791832433380598395208564478963316498029137131782498582581290438520132476065364534534425992108140642231242494752167405627337395784697856697664748175845511684792184934715411127121889432351218849722642941112295792833002486594624548393337691757077525580514748640269736080063357305870870493265129148304482696383139689565113979912171464349487781343688402634444459433563108787035383099357259657020892133734542114226364683938867476671655066331244028296091722593367646636101700653573551977836740781084173675097353299168159648048893881626039965880835893932693752230000559348263236918468804069077622200059768301263968621548841061142697127301552730784702699690942813741106317277144926764962900465131568052567251568684555169924787487978391671800451151666142674667932320334333470797846222167125979540282503365228849601422498807723115927664968941456202994070323945008976142233790211810682753492680323440635131358062865586126614480191746949177531791946378331346056551296830257981308678455399747606074643273354970861452915536841030110446454831003490564019307549305956293366526445502145385039244594118196573101389427294793135045158183641660714882405696751896717005612931053514284072912854501444978178529744181710312900236960284024760369774170450368949004467777596057382429980009062612686445704390945241049052144301121679839078027924134808191969928426818177626241285918112209691836941303297562001066543135049680551222980870536720723022236931144413087392913703398421607364279554657501487411126747835876620352794464506839215901261980673604919925093032448879766078559916032158508311484820970502615587736611060129100371340575509756787120001352060417061948228514516098436914328151102799519311103193448940679799370803465973863124433525302513228338675397958511863683618801705393149009621065886453769813841974270740316261480291045428828580041154070569744958602930459734701612971480795296409526635472147347466007947585319601465398256374003832203652540045252231875659377129720253446443812446939458698101554108415416891590761483869626724060764603314272700028427687799218318485055421000804813083067880688293759169618774388187531860323456805177010654965554046677628338793691508212736722861488092727534222303802748821826351257997995532470877609733001808939540885367504054381010717221346052522282420534892940561184889044477265288724039591218222833141936839161147235999936756193810670594678024457408832191338914921252316548804603357426347642556404328414204605122611471060602460053649237547194715562629123738193431176691167311826083837375856447117885776078446497599550644082619148518342688550700738091972935878842513374259940615033607383278668905715705893273108142040738856939242384652859107371068251555427317234381533463658203167206799756697838825993253772577205798913492592683419986372402804552829356590462672966263921895151848857977493084047278420905587664790205383449274174723674411401187948014921674840354160168625260875900603020274961854759602412492578747430261206327777389526067481676624913400060283462879962921261572474715072916236838370473857596241138128192735268168489810639352127514880807480382050103305171145621156848613331419788174715449027410906448508907247401015587043618559028249565747769011514887213482062398477383283814899235580604198088336268247034989055159317268118755067241142989840477424020527550014885899387634949605233165727647872711468663101023805774129506721310669645920738932607564445618110829591256823676284227796840382671709789400826873496713007310920425892454762855049585011988152513770236094049932504141100239507034794005472637818294436164718015596017600202190629141799548908246436825528118859070502407422358961258132083532910393972562306446467785000205066362367043775342492904318686152394937236637618384715573666071783350961854613056343970891566656114780665783514440324094324727508745887399255941090077742413565659227971266654105449037546255395367362275025367280837048818378344250671038676787199184680868305127624004461092802641928826495436376038436536437817938571240982304057425417813495025723125951919896009463212516328096364187145742817545671499975478903008433934582256543892831270003319830455738977117444076830759091323979744415587465867171500746740179402232432667951661650342972669334405488020258254762963759902842202877448538455588586997512545381755719715187415911971437542097399834819980254795963005095750443142084641292165739208292368890723032766175981702786094590303366192020291187925765161287222702185454888831573940489940573596563810683258773233391326809796297490594013097916012050031189471619957176674783458377449593785253309411674791324255588863137879152196956852031642803211182744515346719328731691351301679247098177785249355158332544957456634145456616626506463928284450992949912675311659461880752889148585793964143682099392770286416399143545629018374098373734136844189017717415331333420898962511105972637009358958434107638785523493944271174858315226116853183250070224916203714089033966087487288213125442649032181782270957348324897665374297140859951656542774578738921341102787208230673822156786871937932790095812769022531435421931618076570854942131775656216166514023080910348657192207042300837037947264273692672927892706959343470568634342543280044115358375379327198994237525512838701435946353702995552531237287564948480790213465750915181364065761579317168342239810820660029355266259318475395749521717862135104396568213709034947785422220070269985685617497954832064639074635765353888975271623557954731529997552657497477057640619251294177053472897687051130407948779167781537132317723617440055621718443861838938685863036139303712064777291777800580025980282790586806400460380696377412771904367247558934895971105965120893572333762350774171437911320657959329649411169669855905852414205961297963586496567217908128461505001371670773006825477522317164983584099090092309741475210173611206683756554967179377412658370447721382979667277842935754435567474857617076583717432491588609215233525301103133305974019222469280551113362158586227172968283380229423962421999568216343998580688159794273555366366374344793631474250397248571171804390473273910286701050607820446891477051863370299140253301925814156361066660387630670401818010870931069084865213228409692550255620196273014801660203006745039261737788125836869086309596623136087366159099520415921000543600445197634446977494406471826960207893810143916720914722296566104994796586753453582262243075710784227594063430866710757491496506101665703607123427959560976249638830186856380728789317428836792349446794130212786806709024141815894028978413110810668573372418670130188318071294069143475342847971699603343612195219431809027261719803751184806971353988271768362308840019167131052416272336739797599736262433861331200121487816078401942692565051471174039551184592347743652919115009219486758113549106250164977971825845915059049840193394796612146919859228854563347835465098487897460760907775600289608757441662565923933692217547070865719947273773154220893384950132840465172880333848437395557349352792750048220250753859700857983607215610369948512766104411733982233939273035964788506184866621784317052793044179537932123250350007131035501925500645158234699769167596758764041826632832048837189047402386878040590360417928260259417032211963246872574425045292719259125790345631793888610618813951913612003264516920123646141090846586463970414540274412436071279641210509864215648607645075464086342164869669906414251182062597661392567018478018014865807414268115653285312647042118192151298558222122213393543850423497544466033303112586372356292219982279704671803321338703905014329278396137314566948498446919867816529982949136141213870956335085327801793251083078862627142877647168933014937814947209348262268111401272342350541833988360246981308152467053618624770684541269295465591935711838536415924262444466691815395474441333783224053332391307729967114096152746585590597347097989849721985527415937930447574888978932751287792592538719979930894454368400458472839576365267651206724536307645027590142222647312072302136424439798814618943612408566448322668432048344821746385443795626485398351258746454237172564753436197124747890591412767205696542280029749870204378892638130082672665829141064320752666186641678731684458616085852523328528178869885968643280049094235191540027056838865653592230637921894895018308415837206086003098743324784688143021387376012918503299700424225347926960958253466003974361457662934552776115079279637468617850618268600327355607172445732223419802350353716169242725895984934893811013369402480485373747061828331178452214556313508979175875366976347123438288506108150450244984332507822357391875566824370331164644889426483836149032069738183747500462761223980944944470767375014589335541118648822375886535638734286879163213778253450594619245419259942617291825003259145249104154601813767322290582535746773758873816675455508691249347556827549026283013349636472913649392452424019589476319960467194029904977830406814124502409078327941999460223728246821936477699226965665237410422725995412643146790076890974609822466941566831617617065580579472449607592819547972016163846947685374789621307948930643859885356078785021771090614981399428015206687712547163017325502151653917677998623964307369339036157106712110976126358764823168695994932612653208968696966558754279268828198622345198455714113175770440344609101249701666750760748733153750297153239348212190934443416669389355808468113002950519642555039112828696955723706858605799741306727896827902761388021896654183732860515918415308789698004900390244184678985592587683952374218854558864066880983266242806522067888281268687531775837652633055857130505196089293999103234706266951175662159975637836145514464641666138738867489582329339579951461732270740320806519476419855317286755870141440500444304462214321466551006664193038942490612700460532728682412383351151297591112716753497787837556468076854545053849729380409139186555021913231489220787045547416713415950867477132023199585795006610683445035866774333378621346659524509467603105441004875221490983988946534147828050618635988970307041464165983026805722609845072215976532051398737914191867705825582667958400328589468610439563676567707213145131991420828799138616564057550910928788849189179869995501898976933672974924220145163406914375381132461948962493146069069731961380377299100550790592868157750709047080209694941165787877791380346560019787613741140525465759129384965223366469279354938084936799482073494039867895968751408933312414602855374902135028139571972508134992950188793795050019338025082053217188087395001113457794814877049758925354432688603278011808482803172442519460612716280252751442137469389622504243110196288657753823355442447640621936781153400764279176555912856791361513261570695258264822446492998635557957911036354537210522543496184136971702315195186573327612125439802382140455242508680543431180558152128449615436233125123817242590516209497884565891183008730058957107961010591281771392946762787546941528315056030915348912508978571587661585326596994163028637488601413500890157220928828207139096695478946735742242568384273753517320376572982800636512423749052121855574336507355733464840337389376631556475187584983092136699595764645566817181136053260961300916189889789122789860205119736867585789452678596405809112008306894251355731106387422799337925755063663091441654721403992239098326350958149403053652710082205265314853115444466218448715074423892250924817109735131646627100443525665401798677241587206363983463630379447683150345140311506409115433732030040100198890812632799920168832916553758224853659526414568109197980173866545043903697078017442202833737755329261832478597200654390728665654445596973652016231218669573297891907349548430267807758654297574272704546892677988937841475838198419829286438304822544436531865438145066906600922135800183264982394384677670604561965187866559275736272798391977428537542072303704011085359884420252525335127270048517954328156423541757776464707714047681883474671781707426402633136323456534533037683829696741954556711639594828426603071228889884221541321755737949373658368166433316877109418673892866480366012269082057806745890358142161488231924169933375000446814589429358605585704468085947397301688807275780062184131771175683367119015610132467983786471949784507781092448265280173261328730967653293769200134037099426225581222704635186085076882876441196871069449696226064612344461228726487977750576291216843502780656247211039118760436130503711354440045265621539150713991365007024395658577606455539792970877826315483477440968248860522989442306645721090163254872568536808305356292740536157142292357270811590324187090927241955557308156930398643799595270520425560471813655259623915122523768793984410178332908435565747857495623366883295423489323275658327687174531422354481130917726582656786646357370208802746462218665295953524879939006303973895011035331077766943214341183470171778885860106153073304204165886552188707521238572933933975206440532132368906707401163326727627003618898648583241737463829163884450927987123613510237357320813241545723602039498909434965040177450345562634136641472541614618994481029417872961331760651474501310853506197955788447826803261988923177530362302236045302733099307322702241258316791037319527034357806987197340757667307972741761962632280467450411393214846861676580849514705317748279980469559827408959762570475898483722550274956067511996919185772269331204125243416622221857724525487049154761531751267372427301603785857788963848112629915216960288715876569237794493841545951232043539616636312582688604768606901642274178211613450733291696108848042622567081200288853209219078166263139753301750261245942712558226132924453431802617144005466918945432301932348625761645120003836499727309507665606935692225229957752511793789192541806049178752976841400421254736714394397471315501544185050158918048095183036245523098545095745963750662040291447037272564751124865744129458505672316246489855598329755109193274923144716363743248568340658448672217206903258899256213884053361039251783717299673399099121270201072331034091119721772662461536932428894122473821108173918310868083639703905802364396053242333869420394240255282689109365484286538350305536270089827614355101265547276937574885007584476500627332370209532651209723641832864669694574361753055612490430920610916187339544633213171682784784960515071535788999701109574061523404761438290358987893249507090870557094083437094383979158325542643205799295090196980890559982381712960535708666994032748810655255435135807503644387116979008098664106829799826727148826191589273553656529890264681237840323208040581290343418707097226991962173857033224870750531063250925415821182866730401207462501498440040992567646227528747633342184675391630816564176839601368259270568230210219997133052078361850774188627639449547125879540330986355493266990007311652181572196492915932386497250148260307694378965263060547751635933704891280527291975045689896386963434167465077708994296957188188105386595521247675302613682486225893341219739485001507796233583445841311276408249050195851329650594145841439310939802086903824574737441334550441988161392363341884871325490149157178123047316154810387266040419788521844996346865923351376496890016796422232733483991916017308482376153229290742063284534567529548648118846482093520829635437677455562721272560977880777650556869771461029831467200057626171400852562822576083456850381258443841915879528146686034853240903267685346999049782748956427663516133453790194367083024982707160360929762521461629862507867940113927631130635976978318023962666753797195180664993215686473372436632126331026439593523896273252948150345596787054664483609425294702362760448731850982977343059572066492481811570464371405689187646293675425193602364261911160463029599142664850492708441003430681162159303473892729645792250136335568967121646170324315455010921567265365555770307529884436085168534023885914211757506136112605844379338693467489042106465446458557699207188855380919184559033357868686220201193559368334204416853399150391978511949118887396527272899292336119118179393533212684929885656648428061095623519064462997405247648831479542122564722556342620640055957179788543450188425714698964735254087360989291778195876432249731466047071212813362052549551098108430414090510490527268070582723083102738374677228876269467715823024824699000994395351563326194791431583622587528929194974197476987750175073623308771440657010720071616093980413952638763745201991136892734561589333149145436452344509494428166244370045106413605369209157712646891889801126859103839578482749471373536692324876462013419540380940099797401110119282204595016072993432234894022763689026920057175292729681615013031542361256119616750595422369554287813271213971808403219124654064345322392839961627928052749458863297710469009553277081677087093410356241715656576834972311630532701717753325528856510373159735805520840481962224714114380247674482138325065840741996449856724563287856031849360275434415073950414716929633042297945948016373130243075788025718050781774236013465118672171258748111499554908624530791443044610584500134560808434273685483811972449097670212306700771412745906866720829335233910332931966755058992223085433846776107653834672764061555726029093937921059432300843282285956416363513004397201269869989173568223621701947414779858920397066948101904724806249523354750850693427521402217882873526908998410909602357207037310773806439163565811761872813960000137211016695748767924610676651022228649320000680980868713692325068237810855471993796065172674293752330835724511897849202109420721861477447403223361715937482202459494281458143591247972249601330015176001227368015971898442433810295314402613979157018322054634805201368386402043939531458626098275892108226114180090463694821576708432404361171038929649556253979684585479264869827072141664618540136242005106313744878774633796522803524011246050824100058627053018420907627222193876791666781393485918652905277435773496429207347083070401338089295740556584041229728687638806400992935892468515340587886951953760124117551323140013582151758529955410097232294093405614012848180026205757156883029070878849864546198390423000005743323442983281012510786186382192262091433071655926113048020909649570998103700087043206989803369830899194997047132515179051084568702686215513072986268632417785454080980837346202263885483589235899820562929820360511651683961291876944337045601845367242510765234751003832990833860485612464400825720626816374699291832081432400166102217030399944382944641186849274461836000434769557384767580054492926653144686737054056774025951756803102382588199385944948952749254520606063337695194997224722861427658477606660045552744647518976460380341709305104182879831784353716085536713351971814580221124500517778047616344652363863887195176634135489762422269781807354875626332821305897036218935752198765597965919284830548346627511573873467777336055859132850731086507879556102812406853578008345461280450419692520285746678773454883106058822354672413708903889449855392900133838499309707882996495649119329146150873452506062904790546970363569046373511122834991841334139231087489942928898547791384112274982132602336016923019461678808816653035572264440007973423850760183899849435135114379205819261912776137221778379722245863720692453264260827742957220619892532241781765926409845728956687124137875521768748565343269222336850760865650478979029340257874380091073167288671665676508018648615951234442674443231843179202949036562589826195393513613698499242236546218034217130006708943404897151704967156855759438131426987598893035551830213847277558430620309985716814555389866005867566111105403472628505251216329032957430125590870745141139659390199487869352352220817013215854165459771512996770655723189680929631127568483702662457520037102496823367550203091695463990712417487209190039042765005358492119406062712146835864581174477430788335476621615700483016686663587814298208725986730620394215491209615364957173489404228820561098377663457592383073019110516680549457425062797392326875373854472383841639667789856592134293695399567661971558630757343716781572159347470346515687788531119243656347824620629153264108543884165287971193003677058776608385410745906086781071408083284783942174213054961010124243178944863706174743106925265195159769182733425101068781123063459186244111264891743113079345454040343639378895561611289152778826608919739583155977742839435643181260815533885598505305973011255232069017211045704509677535225075810297469439747614762303237469273684526008558695836777308475631053981721216571447808031448556258450893519257187681755411774006265498543068221991947768271556220532370942286991864072245879385129822216910559492824481332497206430556496849336124319735119331255691892412815808333108337277991203425198918028196817428292884489292043581666962016733343268706702737730066120209955190933393737622942487575828686730539341579078763976126755174169234230317059369447862679933387777861867149794858062481080374315103878639936680292816248610804075882516626253929771861675085442921680934754035801801956582236437841299009215211718984876968831173179505974500653823907599779682198361720289344260262766571987269728233343883289990258665879830368344192960899391361020679247334493030169348869259661343922499213745435803784585746678940223748603395613895964037665430652051617204993380632996887430972229722442998931378657262991700526113197530355641610453039714970996790092959501245025534271312077400147028452782805675136254046734237053856906731578405393292427413985554968841747556869407733648657745517596569653613373697222253153673174691842728471705174408432453515713760899655009857066887204252982029544886158545008652816673455154397511822759875596180127496639199518023105147198264652061726202585132939119404769856786098582203544109924195488559500174909904144430073960642649272461711595260212622123878183620154043343253438413094875369439946853571901952170024227320606463549088993963004524228139622816610935748577276846625089546394327504328309832284280231128491127258458194277414013461640335270951974121785687220917073312887541624344581604670051218949734988851008239894765981999671603285824750421544943428515057662062493983883519927217540158801700335501746873992648119927790948314480593419346063492149324727857466880552332657179233799278889362842218639223074438483694336009300636341270022539160324635600089197059557769967086263704325421401240519351181616476642530516026672901086892075550664794831654272957598959199035479699270014383849351005593898757415656038410109699487069284841088766150573379439509282725744935380412858957989748942188812941310008885823792730127731856036245577344087986314135036645778133118304630265642548316804481949676591870423874424198845579962855768039605888231436424289959111684439315883278194473618302256032188366520415786626317656740620876215570015242724385533409659066585179065668046278086281575117246385264372621762434701838799168338358104013721879656375038683253244104129408750580962261879484927981510411259694338561304989208643995282105246089712430315156024222219496457399871749069993602252504775346523266865557290940568058665422591166201523569053545158321065462905524418890723337356972073282339521696148400589396008306773201728756131749686609229300936185027023569137265353982363500651629900560550395516076287272022145278811154269908877181114905919222960893120837827043699278005729069667885351193088068554178151376523592925131707809868210997262718139233931420574570887650578400364730702874849144333077452979624573021599164385136652421642567685379053270470246082369602883116576582952564862730450265540489073505405577868272858118913739841882319853844089066306042879067238139799197189652250539468237817452507747615410915883042045381328610478133267549828393362694730569389894066547421568547136073796514765165950358413345443236836140217439553630297909803876770196168407097662633842437761786001940922121414776726636827593297101183732964777187720298253670379372868765317680657401191630646320105595078659488192674609062607846868543625649732973972912132101981824512567729653515991617649388839507412050197319334559961168668303895901877894930843325027745064656909153329808578219441275319494377127178097475625796658737588180879694205053307473905610170815363479585979365356393537674775569558612836621149981067599012242491561181207147392663407462380878181813079583517763423523806446886788194371480288855219053086283300778086925082977390330325945701475207486242685000751162990639358980306891774623442330772217333350538417625784580661792891279003763304417587065591006523771150795173181412358556689200551655531430455008803444109305066642915033349517465165471964905068515942453946646416857003589230699991314293018780892280597404945997442703939227131229300818917955611380954128025579693448519939705337404628496144167933088037893841348185490475576191489099770803050004582102316382417389933690969594372373876841683359130791546966935018607988681211500100175293435573077033177551463237448287845104013856477091848186816860979635271015100910771421497295731877846123254093237975673669652468407174667947141142109785074082702596618178309113286114332492666414831112407599760374680136946182018754404511697558080456058260367640105445248993441101550047424511862144165206735656711212178689130163708295966241586625155467634291557582198979554682253008811016502036716682789157550155651273012230468665079665591342159375903939800009048289884627892526827361886735210592415932033282063417200573093961423018534129570506416474221343846703452851599184849067268568898770184004296018541656363416319596318398620009118884969476342598275926033265617673330727472531409717337706828427416763375117477952372603417634221206291597079851605693045826937319888269911422414663970698584422727884715760447242410766680158978823263311415967608101339142647544919967624089931952325336208045103640240241202068159802721392125144276929056485849566320844573077839600369601046122151154814246265858769394436675521284925431666593721828081530200291041172854314916752729949102064646397949666429096011593056386962184307917769081553701853868652867342947097396184760169688079038226993537668557414777715331889903941743941079582949515934909663512573628771267167248462777800019152979170169160395733803960103679833162605148363530047195140778808643408562025105529738077135638901654888531316731650242703037570921635705864317220835889403077140872742121678395842051072853321394198306917707463087263686474684941758270929207127519513510666603894824120386811084283951401136809359533133901510486160914368369539279858425131215844336650120880379943411566015492444215289345058829623104920297263637451878785940707145254732160619074941621739888534102303940212153586059877677844768999995847508814187808783678981748671578054043484756271032511573912799140570791993401497578103427533542671600828658400616080608999374100312319622412449997971733016193608573656272247846941460369347714702478130155100145178463032399003913748745915271630842057998173911420891914390719654106867850747808649326959576780245322693145746858529047504902978957567232379745424403597026294721888930608852921854781869138409746374939682546878634908130380074460633356715652973692223013802019434889116979669821500471511168433087581571188334190730036934559299899786300483314243376778269914517823414126789560422458589502307707018984915088410884224398464760950980357836726119519911775843751685935497364020013520250032782187905802895010951643185489234351005773467474945329509159185060521367677251217545828878659772604881066840965710314783703773231110651516683407630060129554522855555029897655001650379772604379294317823654875244608523563118555388031935744446697492554761225309751329620143269555470508474868551818939813176550663539378929762967144516108658348533531425380061379773427114509207429012972777941752541676213998294495007543002688912226350707535659009853009214044013551374960832289503213875034899930406938634879002913773567443552529102690048430954059222320095651176572595544200296501820066778068492414163138839267291538042506432949940789687453555394924054278582244309349709247684801452715050411082124763557179606724205894252657642515743963529474362506027350227841916627826755914396566824464418664467375355552293207286358240090848805115205519259985434947771600917257841860865133138615119619361215927589042387493702194447563982014799542559390699658813497779226842924438936204352247921180000723796681219087630284214461471397596154596862592385368886096499130019113165299178418557068338384544836788677427196186680155598127167470380731884759978848670154620241547111111414307199456862314724504985764286488748789871658303244992589422734887475630825525365363728632935176417583259182019883653947267152243432621176501501613028815675585359316464723663974260997100128316952738900200406388353536179997332884893441203103724922788419425333522840185192610807473000210984755838725926629812381991629590261445600027387452624744891138276681670204377705883451255112065696023296062564858865645241509846845137671743056131005461864261913278564564383212991335298820384200897411684993572144829553577498913899723566808925772239664832397759355223601001836268648481151742003594917242343745088363700029748655773852629929503999168283317388099783229399132864270975917297763370921029238047397364618080448466041717727276105116570626894462469586572214750645217343849317576028681488775779799535325029031902003443464375778113940312361577345206665565070232593660632964320204148556137411082644703331520544501966312046041803320612379627480616368101594356966568724880473071133304849338539750301223419942311849930107501132540216355271036231361908051976745811921873681614570486127784447057784137655768211389900222354885549035260336706647378763586060532350696203444765705913551573080438723746949332340906196613228770524072231852843273429672964317614948024650220637330506294227623791251194207648761602129344579950177529326322539304049000045679608818196777918873976697675406782952314907990554859501701269796924859619516995085714824516929538220833462876136420284131199574347518054385984202459168119619362395228807296834063614122703511915194359769116131940954478093122035386773208947056908670168592074122850260142246291029737661089586487396950785379539033663761156761147652155812904560365637829288192119650663994882820268902921851083323747551748681711532915197676523332230463525009722011887766697877632918959211620280950414479952992177979486185682495360906963112696482316978716645634491164974221777421953494121747458683177884455062426530102492923131113043182012680339727206714012564496748778813863227605996881205527595729013966790490103576042540746309953146428677912310148463503105648995759031568327257883804528404431826021678443992407269661748354629821334372838770708619862921944995792025392342817003974270409238857500774075545960826160983412169642497777995941174661520591343907304111681538073774016493118719560245296419053975975995773579509950553401359140948726613796058233810419280256043392239392928489523139640024149676940783924032990650760804090273064468807519152167865816116335532998687016236903088577155129583474935414118915465163292712472855875205756706475478011834912904243011270869653295589183419665749671866280069990224025242496019583138406658957274606273095261536213906565239803631626292178212107169489151371809528458862053466672217979044395722729553278797009931943069680080590704137042731007407519344538760444058670486319415210360222315027806425493539855129430439253680866507319901220559724255925030751226402059178691667677783004265318444048551750543854468254495035256051775486775051328962385762935446421286499663056612388210508167679875414565922237551869692832859768029404334570854483314108896683121118524539173166677282692010193752341744049024978644812407665505222280536740601048539420815964313233111770807134968384082390129389364954783626475954803342154153934045987157733139646476941274701135799873210791313058250174624741115628553528178668810466493168925048366616582922580063821338881075207463398056796707690966150140375688135666566805063453787552952459541978682383806922278275190748908689507136883519077185174900844196574003780703734714178532454050147578286091467794573754341503199243605927842908993194055425935515305759687972317467781823480254703427521674157664529790727267252892446643855750416638610134256671264437043578252907851369077992542379754154523609262091065860267687438947887833672793963041985310401437830148301819513876250455730787416561050111801481744353129650962056659543827103272814642954551685507309051903551079896503477337400248133244583475385369443018094953566763892129932720653592372703097869971277049974945152323625428833690999061946664886711023880982777491973219383426026454133646704483955225745258263961758079708727792566187284331920887381819847386162921553901031395733923344481498165779491479473632095031668506057891960483569064660979043734362793457806575324159923088228686115535442464923155712988596324870575879686505560343075002859017255710675145139521535296209392133762439137784084354428997953395535506520547128573168254557256195499618118613692573417570516918141630419852932851690825842442534759392634880721231662244380493469161039344254624055684409929227774420540833867242328554007425999614791968649652339382029731192545521583261683903374672998769325143171957464124480974796054098393834113897211241118462846003230833491222263238592871576064697756899598316767610611245428984249417281748537994455486887412791417252058822678342871107004508075896715964396109659916379363850537820141112059350758686991380933782941262586252605140270389769973032655590031121182913175656069734432403747772447160658638415695187888622789100921196777902695903071537206541671750891505299483110250604143402070653158184843916416515881809434214579774243714948433462903895248187046316238082570524302222486391083461839584745080792423729943176009583425877109088724818625931725870641706267914644482082383033514017289219942618297590269001552844466007894536785722230694819455234783070803189604755884552254738882849144911160222328108026859829605848383553276771204583113577368856821795473273138394861370563640277744442052703043402887199772977027931834560475394776849567659333832508557340189163896349643335131462574260666685297825148683132148744872882755021211043245583888301143444634961863239198535460002751962137580510755944833189147258732718277249552174333814391356830798138278993935110317461583028305225069287327943429475620385476046378918509744104786849292783230296323561691518729371347102538045913161061933619556963778233369527128658283878094301313555463473443570809627366466263388000446222510550363821173703122186875564051431610835616842018201734979877822215952201711009857147310207875102360965247690598307988544769166757693458796439726480026895558650352462143402239311227484459481052319142928978632701519870600440463954311412140232106158813124219197337572749616196882733488419692097492265429089473713545580836685713740659360611749609811346666656280913406826076018574834411278885214204032922979536215412849256888707639957726598939451317770404573053429674370328076103247400921680903194500288976926611884259459750841308882347650144844115584993861187002527712515776389439646233610972971042382356277664529891820007087492961520854915759817770691096391382260635780874352004586062466503357501382377253515103787963210393238202715919026609952245870782604666238856480976532355447778549299068512964741434285694095921959999013956344606938773619128437208644114732417048365308589168795101221652007352216864198471755036391449047937853519753240014184460617746581997801666827501985433482403863248269022088783516462309218118092417723537012395897410364708775041572130957131615846003353463657437984026664859271986292386339191892686122776156864738556757414314789977937185689972893602207790654952112524203651250911725189907504618209780726439563605959490944472052576647504598557180683748668818202293913438798088531370054516216382094055274699459578045941713302279320802181346295224679187733599106165317408208610682798345053599941426817831957207851055119150381108127389797089482427704353008889054837596261653763779348035269024645295033594243363732297985811926680346294510065798707159108437243897890555347647014477539227830048425670925098145539089504797584759288938461895756910930492708833801043978088247102892054583849904989894431739314689332264980920391273449337328659885430383530568747871701667575951126310859870329116472800452189833855751124097032752507655407563679052947421608858058284226714406417720356647790344353479406901687563956385270408209365527958238116825795132268106499998831860742156332232335114770220790110838544755754281370292259187958132525209192616195165715064253276996397199194951904113840527168236301903366639909173941862608668632561584957595442150629937545117647264807488519085367180274368054240116826309026347188097943550181329351516302036219473579303176792219428972352821922021633786015012229523814685461875889777737647390055178519679028098585270944132797146249366266733985990237121469873873221192257602535539531279615236474097770018470904237967669178467321740197601734663577259393105066494839727636963311394859836030174830728650990532179825775963204465748173893150479955151532367517026390260959386638286690876438614770721382146135862057232456519611282919054564619636911124526829493634698385282820331262693949086436661851015359281369805888235834007095637731058735689045140968226827124501216957808928115038984484679701454140352667519558821844076650242519656664946319366822589048933965397175773732013144688320063848592892473210333031491245135550085656782641955358018175411954722127439897933916150715545463492871904341341415752854654051828413452345938952335220462076106000392507669327379070266907095271078674626677376653581255118058174894720118836931960001876752886401989121910757000077042818381192160255031601635204069045439180442494379932239021268245883445370249627219120176198242766522476979349973304742422485123356693660709076729169791711631937498681053605063373777877665978288887082480415034867742578070023490208182217956173525990228156306486461529813439655505682605635456313580493707612043523948852587283364526016065776612317349826943116640599924577192510690416087456198335478389381699348478063433088887389921738562657854815586485734949528056957744635029586307666047345085360272564155593438297021053408792719759457133210733782816230592937669300605099295148395873003000658207471904739883472844303638904661845682925352253455157200008614084486446299595134433272011012756580898870184791250733479709874060676503748952651008320287485478581717894629970645717502670487904809558261031920412795955642605725917073940561524122059621525459286400868334090954523912224006188756167559657654948024849943812578067699704717220604763176049600517739883000180863925811103151934885809287589862286528604715496378284959588977686333664406824318080279171367142885758921101637416744282095207952741889045707406695378161701091790011214150910762991288752162210189770222983450714241366451575199999320267691582037185372463544244861415192369281957548211191668235693016891494602617136432017249547464216699918031290881311090956898642306869196562544721431061379924707054689521689642355596028771071360880308980574767860079978056460396661891258495078519039863682294770646175471704195359291962357307695023240752441624499508309445007053584970511258269611370532978439910550316619608217804165551184484546754253859268122369572315787075051192800853343807409758994887826260222635841071028123756581970629126907318475573718250647552809879229453867406884485695752484822681567453204864932388678556182706895323585071171652800340749655439065040518780219755124346172631474725320277977341747465954651764915490163404537024859096372458955902950385815999996352165077155677044114487600526727157473094800942632233061219554864526592942143873544780212493602440192794684320459782460087914446758468650188257267943660134260752886107025596252558287896188667487868306287041973310453231753531921071282179427544012034445280848734449977920152738805492853312442573899929569426045458871630500912312758725324831269442207570777005220988273201465267537495199206081608342895513708967549722105564348766612436132517584439678530191932763991369647208503604318521021810718696793572944160583894750186073015285246295841966487047841699841288247368589177329345605498395313143538467717507207420640044571303585550793442743375473791902715676071759726276087712200477994452051899369047011243879858906165311234203168305000006299245789111674123598149182461355554310204739456433953111567752386701653338236119376665120155439892593576799234868174626295043222254208524494573250626066144630787847072293530892129655310764986580880980582732572415231127567235292639575978796015906367965109107923534663742928899080805250935160564778525499509821014432681039834301075361658527885395317602715236247913086032237001047553698333224799288331298986678797914552925110754669209471914806035048056912216291450337653749323089389074110065079994245033755267829203054914664275934615658732595673564754661771523300932833005141873748681906741836595676874459592606565469450032815451507882476731398616684166165389273849086017115919895282455481233910874210563809086616723476746696952074161222841606244868503277650217208958649899822357695367921656172727348963671395564978483715535258647042982082901100201248498688531757954470419361856146959247387193868819312991553938280922493323124146368477289263283921902435156595835332524250630914455113279235081824579948609887802641336201277245021764835988018356244845463134545159056093856709227888184008038018836589760448033936606123155223115204999669913141887012161322674038485356202333226649459278545154700089260661860354366085119070070046018091464853017616128055719609491753347421509613408031570290382809951887242067455976901434090112616895475600430693987335650429587812853523163133432666894753391778914699831615617144724092332080530569380648205386292540610058734666750327876087186118638630994493447845534828326075498990019417450482636382826318560727050517664934090974135801525911468551227767062628914519383632695519281062739281786290796840474275073264076142971728075236015098376902077544423521092545911209440394643478047558330626415348127811491046368285507975753575722948802844177594654012186919589090339703684216041660412288082984932135760469556935940340583774257742214434328315259153817988007269446826414859974960560833143227827371725402969916113156235042344698924063489449548459438922885727276543100056584700056681906222752060507902996374858657369919274349444715906075813598231283067356219485264152063730708177846577326525718938921227203968797814488797881385773286771856033309363768270125838652958323083963747283761675470349843944712849957224072048336102200044140308679083409535450199429305265280237364390927928691325125752743998587959046912737897893689500479723042198661282814360046549314302778485288657856988949232978472900016904241705326118856832787479415285943276573274354545576772052349269673142674443218942608756804788947311228132410172056258302241123795641470728444051062380476165045862296232777478249077459503647848136673186291495513780989899281985150363946901003386595737050416037533414490156269675706137752753503042844231004726880095128181499763140561404834051642334247569808880011559078512873946982126929616274053345458127821054211711446914151066357354595895587732549554897231131493968953800597223882074613967117860405812286482473006028636736345063662478929728650330513785959377751364229988387923934102248992142892053250531087929792860016305798906996704235426905899442532987053878819751527564228859198761033070176904766266752219168952148770515245842379016205152936258824993541463043828243796630028629306930602432286436820725368606864990089103485778160860703994092441533611083957019457292415371768538699265740470541011737628945231978277120983150173619508252203495996500923412479701370720090609358150259621522198500882246336759743195446777783819586610036089938668805490595688560583798363935208498651414884441714700986359617276062417763172898904937185132876812797548576420071632632949285034769009249605292065140888519758611759031942470138970649016876467150623629035981741150906767984322457053366356536109349114332423891873215750764566025552108822238601700653465532509476439360325317184353227115679276969482628235561177291353810272194851745447088901104143865254612428533733561575539977479058422609548820840151017915696044727621073940136430931609990310877786022964869991901103189206164597948037932523840560257249942857919990408470751187982893730821516551056885027285803455269287846660644164286054739410427484869798657045414985482371304900817728969365782933022770371386421679383699139695400904924939623068240478586784577019269209964686894442662296393602666203546214787388558429738192078283120071896032218291494688242647255910575673329150389625899408294143535321052918634625112592246234323263896978340465582132525681667038305432280030821747180938081302731521575849065156943259334910221474800244420793519197170387194607045028313635145320312786657116186323129829653974801524655734530564237598055076050927333850971968426483528743589718901348698932214899836091378331459822404973994405946463019251329229589082320433798896839516918366122391473950461794404035255699715903988406456439321142455117193959004933530162756547913439116912883519281655991076736476167587100511404378153682932428761345101689671511391412605055526974000289843835228253361922117472651682055606419365666548506673350928766246381772004738213347810516572401036255895389545566250738878118203894919693996844412655219994942731403126092920044942651544402855840201987020781652009455636083628704789763121488254655631107544149417302371989987972162839831062579249213516661130320960838634265205340614193856701369704547368558396553217413699826407494229420737585263497811737916971748501356471639623894408407191075642061578580277717740183709869518392185854390649393328469698747491390905314056286082345535932650001853846795353162469199116581523286917205864344119855145822731650547316143957808540787498906323192947439257310667935077760253372739192368521244312696718045015553017795981773389831984666185391807124211282456490555339144738738538918705363067004030455815873623019332294754448107622420474263879615641855407165206876540128613664404007427291072826289321698365761966617057008059690417822101348082737625267168279240191381250151260256195801722518997092326016415867072615700143940307616244808948732459804555851579689413214427697400750312371069432636433425684866325778112533164170610778647347169828943787808698868473247200116300525395509672689394144978890688367944050510502474322346618599450438927703152888410631936944562007957182844477688560516976403839571713671363364169995392653951004707051980362807221450886195231075758973525769845184712060087927904635544215298041539224224634575026603894306510826948480444921054076181310992754871855347426430119772492787474146938736751043185683698752676746188838919010946071962272471524368745578830521233040613125209161394587198717723727801405296584090799509037307265132513621426848121019357555507835964210670665362689045613048106556388589152951524958948301508468676031019138732001226078203422997590932037135089077618592208991409565889087702448398390426702746184440584370148284209459883400903706769601175898858242681583175862361310659235945538666491187925118678199097494876367820862518045157227340644570207742137414701740601760423330308771738353190213037207429144051439618868345712453597972720701781185222530565039581371147930063658171607506894171096891393969012556802677491586097557326837059107105451534557854263338456455463431026827917862882705252191590160812435403523765384933001597836272655500218792290494315058469822382153881138109773996763207958293388388414555151925834143759309165062540718151436205816986589749645631096830144132031406468929741973154782968317965805117814011129519563826736216456930569555930904205184184326414034075070250868606872488716040768659721559620999138510752381268683532330521512946890489205438452166140312537521648441980536844978993559022846284339298339351982845575371108120140977948775198611412366305841624372956266990669235885291466704395179585728218601104213216184468055149914346691874655410734334073768497397343876071481326053692039357888304159264084015616021278387906012179634212586433510883022628397420055739629409584082595416211846572302598562633685088316191247846412490514091972272728784614560365196924411843979791865436913293638438614925440490057414015803056814236437615154103466208664505867401984424244319549057402453895301609175257898521051843676410104556300566830824349754714674691328760362320302914715171144837282522963523497743854729632854441378874571782813017663114616702001593159473257913273537550941613579114012223666299023089478383479653455468885808086822481529166811652189371060415873042680293767718843540466461495004518462343041756573937593595906109949180223967207853973638501859007247845720278780959664407418706983437789579874804243016509853890121504239143643736778524720655322432923206245621222841244980360764499651896031162597619209886777212490123496415367138375720339089573853707388640375897650406200558329712346548993103519835913308702039691622504400181166590361678744692401368561259906818247187797270759932502854568511654513782256280827975205623875249919833090729857315238771495823596014765959896981798919109049757640014105680843540891666469360256014468752904992436942193758388822272715544431677588965320547137485281064998001981129627836726649636556900246160728992425879604634759901854073368861897403621786296632677572413592029817723536695498979501077753201824781895021683036471247369567425343489346238999898194147135903140657916491920845324257117477219159107899443251853760976242719462208055083744175744741135141664326691510552483484411557567261044957390686751005225637248014398396081700858567470184675361868496590536431060866650068038290403229349112527577176540211750826867846328779095184922788169645896741024556237611941227873747779363894855342754184942008448170931533497217418971352861306495374642583761119442773678235526176907769321030131940433593934841378074650356726780527474905002889133733359154318849923510183413029456997598928891914779764422330369908026924903464391548698094701719649035710626768978201059373644283084245567953541925749150447408787672136786005967874867851367588983389258407468678928715807143270568862291662810307992450396080920461105488883936229323741619957845908122133265434265705038354374587662186144046153437257121166118563163744059002736146071405538305800371520036302839148603395768399662283217434875732306439488912700410745987474491814409303548114195447813050846433407450000798680932301896602733425592757282647149624314957710021744378884357605169607397868944175233551075325745477571653175936444120983046611850616496151432088598079190959957416747868606014512904375436300724150219127836671552583899412768604069904328157018810009801449447463449453939131433871407012078412811870928280291471750228337506955066437543249479030084230657188179712251074915409215651857041346363867700514878791002372777605326205929162041626698875136533944572241964749085095870142104855718260537349165498301755116266327701895944349451999094464556642746205133332405424848309482037824614691844304480675452548347754197298232092218794366215183216214052189415436972905326780476183622435076921101652521290015873021007822144318734830665802827185578196615432558871974274548397658404035494261685485888066255084570983027457493217728731215965431944884961498842204184543763741061509511910093174227782961376341246809301896452867956943632066072076475442913289840168779314768662958338180719475634339949522903623887907607590359550548373451330899474470039085265465711286652690224620653051124256231633418582777635937186186381317064407411892942421158847425829181648391868837001712800034252515795663927483832848054878729754065230831565961059017887917935704810464940995235053352943260874062048252528360268104573378556748996937290633817690983899813537507516233667230312885577694470739736371952609275811948221782580882273710577727318054531245928295596494504533557647266320513755019179938550009254751900519139377975197371548172448000228790673489146313392648127212501776845669712438563440416020534920847214228422294911658934631835784844644109947444194851602916851629213024957156132306775455819951604127202188976995155232015133029392635886208919255732622749721756896215736827241526033682418722303089473252157875144179353265391212775558938153374399449973955482222604910882579987188703545718841877120326044586607221776246423131597725820041042684412399265622302899259037707978983994735298358629102937416889649995816123717774026171270560157381575156736263309350451638168525322719265243870476918813495669877247434439543250434233419444072464694589330427907410991235534027143589494174354684670493168408748282646634505117840890966128774899666474793928501501728745439948106276154164118345977397770982386094330330109926335597314956125208532190087342816517681104606293453125797194877592736886507334806173201799458745801071223922984257688063309570204975390193166044871706253200746838437256553389760502297158202582289284633953955544904926777126286459151780893616762653241609166505846522670293004347991554656926319755884168372452698415008122837388124338370639090057604088195664880959825081944903417518111975846201900898253003912805442538636865032836912410611388661743240318760822273939679664385725653524081978247874412698641502243818034778988628294834930290504051264271297716703773587283685671360376933779941880569818663897142003262185883324679384634711495569248110277906051464994837207038268680844236413555236292890612161440995324241220377359202182714844097302596654530634317283810261579248266535867513679114456162147573467131388067122213090799471749292334587478923392417007898134032267656681420551474091596330845794939992674930041698335967513480003130526292223992751273401721836280850734640043418982364740294686825498881020715997005554178751917581720700055616698451330731587637561652196694896781679659169877628743320586279456789263248392791151417450120200546059984045544975374171906049891685122563864424086571835343261126893459902873501149270443394633536577357633312121311869413459679236314514487125166469974551410136480189816255509227043406802914812446433502161203146768819458830461502621791820829915810557853465135808772937663752533506256342389618277619690260851849555153012532535863584122131816967585501624258797496800586515054310339796239455630094457879831449699585308294735667999587890363550309393081388994667371501882753471886551820443805462933507602905844170843595004723704575925366625711942069185628851793947325114991894062552207302510443989021988095525168080967509383805874873716101228947186010973460634862660033754803922519755192640502211162819767707444833842870954657060149368018467094402299625187532551349851108511025888596470751477135775609263569506841445102920277547336194959360875673335578486573702620672636187579327156221639204026615764445936636638067408125189677280992807517646634733576784933484963676721941658235427348708844525173892438226470545143886122611006590495968965416809895205453059074301006269854478104361010726567278942468790339879112412271936212633850194361495407504816956667368814872819001633029961213882537970542460257996743928666982689396074018738123895005227547013569371143590268408246059902523081113952923139234077627389295544645151776522679373593595272524873651712205950869342659653464658344408133707839832015572956611004945723806656789272968371993629247899512202520734049774508949384951008513099081259965712560631013460343685457405215617043118004020924983452741932230734810018605376799925819342276484637394605648257723666240207380268701095173021681017203174440261126258899098212007927503830257471081984058411119917999469719302493055010076651369591731787785125729349139186422982004623111355488396628794675743016770364127733056754043410321061882082889158020513415433377889832116353381152688451089880968702549085074430891991508256785713553169658449839722225605677220456297795536450494943953745711838465860258862115865053507378716200437856473867383596599062433998354137231977598172034654914714115423985717638550357718354487864755147554679864623397383934774642618069280090072404532664344776333921209815836230083702459414309334550912334965251695124118913883027074756628350665466402028413785230379376265092247777471788954197552225056444249684508860944369551834229102670736007747495911337193592438364946923941797471145878030532587284810380169915973982797628509942197333225935772328792478446948965156418427192531531372223609855191939504127845560902137870388721696170817733130754079670670795221350003221225907781016081903623923440515114724723643894058146529786429860399863814448232424046747908491662930209925784814763365848829335492319008784726049785153699659514854075109456861448284793368913748987779161242159860861824124304742077367810209802145546943428603664813719967025341576143277572287891896395089002406422258182379297915587384578739403615678314703055056393102374610874040874991306669497837096439222203255164877869530093494738209440072093213561172400619945346753252135527403643423977072628875602861970381757843828235594582264132104336294264466684696404070876962826492775110704810011274953969110536185614705526428673066825766466868834197679188391252984693594033477037896569779852794306303721173894273836029770560554904535616544121557944840889771686997441240232625323210048630521425856164960973001962458607564428110814387828539797533930972625994919958077295768865428122742462540942736023583001000099847277141826321259579225540890037205623409970051954363232622622352264982466679819602096424625865515544118283154544112139468015728877646849834994212709407107076915425177017769676915802196875678776548246534229079334559141655911445114536327259121966650414751431194881303704349715409881707628375043201191576065062563968906415249976345449462093580579322612346816023409425858724060519912023103545389380083261746965903613989792549612742143542689968990748881640042463160415016716467531211621310080100641366995549827593274385743808932317931480180463899155406555622548516981463988053380082582312185576800277827458019800059309025204593252863222911025102969369834191128972394188281302976028384388999803050712765541123138927253861372737588544807695214333381874257102508145570319212255156393113843732505100048002917515406214538615451727261211007490523967695683362335239669648183499213871130907290648754731362826988170758658275284508293996161090387083069061926984254059865485206926417759569790260546893990414141789893089798712260253581957922126430865697181573583910378308042885656854254680211213761895541805408044993868852341121989279576103078462830035941605303542982854834399285586713845610561995334176994268245402722896877798629894342421387985267639755185367106328797302032889759202647465639967284070472993068228268577659983491835399029067719953860137581301325452983300148537158723505323149770423987963396390434252752663651788055015383938211740498063655519959805772030518377252129452743340329341925908470574562693398254447692690436385853965803030384285243873108228409909302958970760245432001373421841649152118722362398565265639886074915760145819815517913955238376275427629495608333945781376052219683326839228216258641622941711098565026185345951931311633823709036960342835351914666572019822998516262204517490319362311672594982058415007897205969528974148758809236738157600072938390888710844475380625183381230111837375218437942353348436885920553219083763260719413416413628489084011008752101089764449422144776281368162285004820378403879867283865724612883687819630380699536478175986481506140703887681859199171306615734843586023301645900184611751579844770701163675747538313079427910819038999109195270382444651631846769234260863468884335953988429635132386088592032334352788875730493864184574451559700896091787022641658577082302489679324414720421189697342731821253868897515022082451620653348321922482832897527740401312794604904663342246107158363781242402008199976238614809081841222847203957252666879413461710022889769263820898338630716816663282569808968426628101590087923594970145587938014364801030509390003161012778391680854722079065421277103988859474091072300582273366435478855835283467727290304120568567778772053621713415030410665979793357242024466244140632375625560271073104498044409811910390461826434961407694640614121859875937061414039063051352524083178131793032688525641523870765259748667223442101636273905815155346701861168251282414198242235829095984447804853223604430162539215699288052635384226759856114644822445594167317154811469955594881438304656045654836570785429700026435236281279019745280112034113040849931117633636386083621724332660064309318983472350692307666499621244040026579360008669305869806329248791183639026760067704209201736017472526313465919682438791625210356114994240091145747640226476608187352926849539870642865752899297430282990436885209882557713639453215398371461205677351801718078559165934984591211315292135312514064262247973480839585031608402630358831399524052485182239656177507797352507555847404853098868603419647114043621640997573990519526452794553963954730278710627863920916113663356337792072038478364853855853428954733515173610211412315948265757627626193320424848386267838336498283456119255195392547160448543364092884831356176049965823164454199817339416259925987794558104365768744384516248705576413781725605536120004445348204971620777912392213597419962399373290027912933470662477820261041662591978109667100137425722873861834108471722109688101621479486075859686507614506575739136408717050189889344954773489995056051869321340576634274726975686150780614286074265783584599657764914356608440350922604749404309660812710127412159368192290563561904633762346500496070087373226260239540962658861446316548705820822704159079543084934411517019717459621579360405179897023939765491612528961131108089661507733141867858492929446279100600999790352311977678021287139156964055760073821986530824546197062210425890832592892498547701707929329836541197121163520965217835236125607369698689897899445441805752958725452378306670337519089147684224761144012946340186961038027763547480368816671505393406943815418315856145367534947991518601759240000402884777625984925422170705065727912661172580875686716599794278851662785116537663874206547494859475799594828738810769530850356340092933784121741762165107069332179863083995079461437540228697602020824734910579203441513238080110107435669296668528408312130426416491309446381290147828158153803673904752933306108862335075632251940747259087003431929747790131179078490841354862565022238308971506667368148227675936218643734783404315113828906039194457848584628994279500091045281442569113036050368354980221013442089341418433130480571542681828512711203686370521310211207438421781858813800683572607966780147598038515351136257673740213582357280306767803234294875616414225665112358103797022020932836405126138142376679513020298837049842908380129363310665189479834286275510454050448099401540226391112186712800035786904560605228268867389054338214209214366074710676550291567021639323269537613424157226748203903809081480106880572482228670883461639803431061307132801627123632608886921804345405447990817636083396593825297719207186462278210122388990648776494061453874333791369540561933736466216200907284369688539771515288690401901114509375366380309636183135133051864678257455226561109482275960961951467925447407646140310326972520276395574634045551446195970034585356450287869913059182325150702993273320738147170075118899259669709000231464184722063712865663760940858736224588233424029385971435640610684710768398812109102176196031930564469748100365418600892469173366674482718789225970152797342741204155230135670749631089285591802556260971477951986923491731350421869474612766996634414759723651060146758945027661650982531728541869450340459154117612924190971046696161644392492155622848399086746455273937332516628154794890495056827540285063996931637200219838935858964806740181771626854251147895610858991774251196326005080896109623648686234427407525267960547222028857301046108582917717631126184243234343237230637498091214760783608153348767117856409291745201751368725053190773926821952094993227084497152141725909222860599549590539091168016631987790907358870640267709388633599701551832789483984708042339255418444536561419962413815268731577267136986440626558081226537604755071921748912367087851966419117202185913764346159274384481569952098140058483121838940464793954889053543014965363778194064410696738649731427544308812085860131847177819117426547659730465975134840839619642875394495628374508946170101053145284382015571506018325326661814447262353965118786997215071272783097494865244353717983447222764806156807438215644377190692665046304965451337601167591123617554977466212724696638979095733334649560970821815645555596922794202541462837416128562183200753132245013224905607620733931058417681455535782469595528967635351307556280196265311651130571737361913787356117276104005021858691387474672389712616291466603496876148605069206532112235574929890494366335793922174880908971835718171194539257169801155651650925049242871138427365620019834786985261671925633577974630454789373454431499398414535044511925195029987254445832934155071418624301064221771543369893077957081360629181146672592507390322294398675748161679525356626557396162263048460415746270380398198490090471820480307822163321512124456027467096489639929831291399211548752951976518916879600623440198196031285626631451333205756278565086273670817673274342771178004967406635080245621396026939814786995457872779628517194045994809063411019928953912013501606170752563240836867014128109517323463359622916640669784993608671723611440807560184903802912702181891671027214171580679126560843666606461065507997820397666974127231017485462795601560808669239899991294053108034996715516676696078356302690841266517025003050005210667779996865977683614961548631046833755799734772744986615245812056569551294134715067298027584560876005423599446775460343671074493431576631095116742946422749330351505593652922956458562221019322701786062727589612564553114988685166993596949951244049465223201223979253608358267519983841464866798331380385107387750392210701769425818686468350695750019484636230119772619465238691808532121408017052247391761157188314020829104367257381494513088994148603199228319267001964323321081049717033448277496355201065061391918171905279530478921887116757882975814531041257297336969878768746015689028105280199467732536767212511239393832396579496859111442938192823594980126913636269307336639583914252178029935155331440258013663067343177480775120290115460382453445712193458542980540637264653867947309327771819446034407977689714719660119088456670657500598774776105060982470969690900410537650186337659979869186766851572443841111501881823287503103205143789805439325156892795670212169967247721830270944381133689420165788544883456764636670161656844563151370393656146989822050045875918942518209787153550059104889955188878052822850003431164288520713591508898373499252504067319598838345205549453450493085720848978136864640194887327037889949536236908239274188057686877381498386668693264774865632871330857111100744114738686768844704600314410440836207526088358987595160170014476493485429117196724011951076346054566045633683551277841062932853400675334113285027919490391732996828971650724172140709464818839552706340193515235122963258866604811822825823906722024112636160710288365648196049179435590938270052708760523296025539063208277461544490611778452979357032438772516699454559729444019956437287750762822891471276146515309815926155919073727816792140380965426515829561431364888560020779842610276052071294605303872934623519589977268392581636010397542025237278526785939792857143665935831407968756788857926950089990230008513786320161784484341540362440432996169452474366906128788775885882316870244310879423546113481519327701675824467203215309828757992365358292460262679115445770044436154386374532234954954399383710673648281108429965680031123491919547269825144930021137109697426347228210240628862008303049195979119405630587638447529775599596083345092981687318956230193063878370739756298563816486021708066005075071206943671912405986772688299008844684232445496790912653633732263295772250054251561363205724600983748709913417960854422608425162540474046473230492354416387044730175923600066652863647809122188672048914643289359531100577110003128096186456541854177555398791761553447387376254553657970779095697088162242171565804445418598639570726408150046929194348188026558534121399246517126181524151221877016874763256648297077270432152262191156867265324634790367785532015068930647476247214625533792246242201217129443163190635425870858781418582972839275677536112378105216193866471763903626590656576358317219077814615980665666591620901796254185022651519756988359618146572803346562209866026793974792276242750736533446173820882411510612499547471857094861756220409752638151329155334242569718408630168516775327618941352310354630257177527115892071238215429433374577413023988514488962789242382065994904644432313131933001330293031920823253361596141151874355957265438983923322806025768224304259111707844730044880437660842405741341509540152143385190190518479303161402212506045317915589493567555554295011595314995262653838677522933184918936748065823664394561984453433340763745981319725864925492971611148940694077226906441529957201138146779964285214526852749045618748471651958062071421602748365742832397398919291924522820762738320662876065955637915884839030111807759348482829920807302118550424236607644289517944974317983567453912249530656963550594184640493107417320297976378802845338338197852808984915339577382995671329508848301971894590963596908751285862125721024184277007295076439525362159362565300025596893660945969823559301048074756735854111397408672015361076378852391182566402605092257685482333153665459563159166353459634611519840662514028928004559167061033443128999550874429145961843167581510997785614697694266029586480071317280944043611770957239721050361389670708512123184569475252091539922284697905492770288542413703208527206724388819328519809685246823924924809381671101994942449554684116890980034683816904416349200031774928730633472075446007133895949380964488121439153629034126964726769150611717637234616190780340477372241779129263608630216633748560649843584495219635289731770715142217210818604103833604064954162366866070796696336440002029359139479501311243208613261303250052431544922130626894408683836495458661065375984523884349476664348227445752735866947495774605929992675601960055411033844109445505467020001108486155958316918046745652658553837117426051142066774309690773158912901687549040669201559825648261224332696973598991786813070116405013710721329645096945675562239842583616745678572715294998814266607215551143288595318647919096278022942060444374677091615167615411911327631255509200325831220809688011937734509810850518992298131878501914118375687522236029981814693195968912133511894300561892756411062232945209872549481586296920458509583972565611692134443427318220515527950576091079333816815724732436655057089806666938763671082399435789258743710494929124485042890058411128990056237423868554764449485141521142011505094973642476055215016175037821747237646765082753451816818299127605537986972123019421581737032463821718443041263284054623846992527369827647878646021205380241288430898010796508262666363561499890443829724369717779013964064841386338115342984596000311404005984458660339049017973630745056026179654436109988007671522526839312909351437173115039214657491565402863448653174110725094029302272802186983147196337034379655136366544205604214555899795919696869772103072419111187232732016731266328473602273965192555727035040545135618532352542322938822461726372082070688317412842047739458829343387850177424276398658357159263504433205482689923278919218495695481630087126259857531049634810041167259157595842559085277650927342723541737982279663158768813760295587506509196709324611598611589225860010240293202222484613307467920040740278714206830128017985365251664112945555097437247636490819777401323177075712333318721497716471794627187393351362450563336879860913699857655381401209021782372083313166340882213241790080542825494230373915746410608657707884607881301497869325680374453003599770108500485552036564722354474773785175912696602445820646717374646777602874725913879348608386825307086809157555024638867157094931612583983662772704662387521750748457049036100179331568369199350781471972002002046655896738834724394533807656348019757311737936927939470599633085307799827914101681592781632262673316781227305535531331631362318492945584281088509461608979182216906120175345691434925554749813412647742796821583344344655016948734972840581488982356034853544298199354796420002842739610090369284021014540840577606949785588090273499080366288972013333092132753121671493637232548800466677245200879267647282804493895018593289090376299475181006057647888953696691267710164665868740929156012479417350342363790060121819210194099165223755771907422442339053345433086496028663330385969073915573937520711898405484238171271089827777067273181772090765505010383454916083323755242643631318835132898365101278634205530741655306964658900848569819852158964038886114274632772379442627408372683735646903714110673223155492440527760516802929465817831312304946133779053854244573076854257354548543212053089005176449187453094924785777552568766110324900815022236168813429109415516305704473129358542530343655606615412811307105208096447271844162494694175887171946601211304329892248822732008538436426406500711282887304614652636670036309412409331166947714839666962421479448776729406730166641573847424217433944512367879785710558302566111590610952922136545027654740472052903672795153356505708841900973436005697452658347854740328627101827855631914821735513156968107417576339666107413161069549091946079868963662927453604196426305139747483453245979585606457079942973970149759884670898964473277678130822662751270830516237037200583627259638008365743961941559207516102218866178064731059163004524043034616447986408734494424329238934056105807417778924550196455953704551245824545990177531265968050410605217999690833107841064384244769106563029762346854084249730375091920074604876390860022154467306925716639023179449902231210679547859110646075087459372585008009152901583259101148682462801334420542471088420985930330102737704296240441202642077661107146611696442997343961922148890324008046267968073035568920660601467453433992074179250311257679747547522912288540166421661273528540890074251392670089909130816569739333983066204694670190179887871398188459163659912583393825892441711295651964575875876508740576351074050584604159717461345091303410899014166088717560676043611096877731839177318013745152596503552265960326889956899255830948092473533724091856067517560098526104726389072851275700138122944251133500846604537372693531315432948703258728053061808735849867941987366230429856320288306470492069352388908901980216499055317994974393869143349837848968216286704069729209938801329417893775057034540421226133200621175173434936208373884621281927004459064186686791804637611254577113762098223002285533239434781254996105070573352982712846240227982041125661796099097360455132401298633233024574704042927451960735457331527350662311812935394912528192908676359504495845464115618673555450666349428392868095802413013515938005401172704854456005931053324716369701505119443167935258198082439222202140306444833403758204414124582920036691821944362706583891339424426575323335679287138409814095485360473004200041859180586770311273813779942068391260242673156367559558294992032869859722719443346985515398334374226747907771613093430153822550640709150178149071591329904148167380973901955618604110507053604225835762959717716602036353105488505996790588624277903241350935305478607628590704889959509323850490631383486748354736926625191573815159132315698036479052436373115656088308522887072732055677946209006703697211619075049379008073686175763432243474754033705230487038458918891132369905631927052762131350470945851797917105677203775485137755719353745733158005113656373952977107567856593313553678075755975266608602039850050732959353444183979707530585904259246180724617356660657117112695042088828095229603776782677851074040559691396162725821597357788509560905337111478583876074595472861827186417626817900559516095403787099564315507731398381140118058554480593519484928566728175268557895558357594878145791285048688366622336832747631658624042708623758551791183865830985100976325965035246334839179869050137559570242961474893732962482270963002317103079571761240883548260932749771965898756930393665824253073890632757279649010223432048755049770537479534324948559080666602023507442289083050315996046051701341407322924520525588174129660425520774180458621765129741905450831830039259346060200003913987971820422114910686160225672325204639249604792680353309804540198783210200176227633624382343528637002821723015618325545526035439694771399028036484478127231942632229550656553858434787004802672391201623781369295689312505063751008175319142974115549766758793692829375083816639594450107300686447203379257419345449466561662906411064209176280455371560589701616997743314461479494380663545247401174694691962304110993255599828505608841647178540142795101167444099952808443345059446764585964717243714990422658863678006458835746902684696255535782567638900054692357341734524159617246681533873653659368313684252082138843612945884547523693517629499669002108199949530377569306049453431370903921613153160459639515421706171953844366524495593779539524836571982024588117152696601571688134031865064566584942901806843145554171763237146079354774858641971444554981224375905931669658220344300056210194719087665406230557065755567394543090278705357681084192343579961342337127306246164218925306534310452354714925140880158043642977755846963768316580545911804478022953810100151321782908404331323919434807517004031972569903485901817861530873175152937289748150653265917373879198306734326061494352919155642463328230209908868435228083270699401054676414133366787806929964823466949110381208062736095732866554714642744298550019730373941977274107954661136441233037924390665373955916767602608111459262993084529395573174685859893811162551539842606616500721990305950811903410463775260033070970217895061937703523694875440563617633309585201275172523760331542537654744901008171885417528562035973121048823459540458453461005417448664633633291474231701769859055664620655738110535507038364818458007288219880049226986530855579715849917790395195555726039607259667492091583555850326905259406021438863356546439495116123256888108600545952054124196231213958520240184206542148573933909588326777253385487542491090371933565971321490573887580612899624901019424926038169132660814296660775347941407923930452048322781655418876087965326041845075724781454771419501790453497022503847563714553725122137467616034730196518510339857776319432423482698195399102101673514596648912218394874651747164611770769605601140083329075942857497891432125777396389743399652623944582353370185583115251224299889628005650322521423304486491888076970297308411958772663831348132169457435818473769560120867087210487956810656770664715940513636019695956800332333396164946925943982606537319332393829316162711168126622915585131359838172784312769053964185747949430645647766384284010779551918764081813188694594323645308885373007409688259528521320360829529846435989215108451569151628219027312466673302382387598869369580315570902605824253993068184756106151298602641203193393255719953870550449029970385051022062780593506993516178468327138479982243923676342923608561383698387177300654677992280267415517520218432177466739221056870644155219661230581291125074455423839653821350855810175304145930080054203843991988709367505906530069107848701386755488062146204035707292778139412567413800873095667465013727055365261794493413681366636251371058209241996436944081685150021684111381420919220172676292954746158509062351915600880323210662286619231642162616745795040635731494899988068680221717959464287817034723578218249603049802816121220616087422588096289996333061234043366473152329821134623677051056735762745649731407487867645153810064851752503252045243933558851761160206807819129559493384811197748611678569270317260389299285074370041786873956704700152880729215993380059526317003941453287645390622037577644278708685514729463091466177674768318811315001707464817502870572993020451773824928001523237320499928054502870000436138963852557621225964986210689344461270661789882939962552158608077916394824401351525621675692144104339247741820699659173176619739003344206282334141047474167879730852479616323801990721878956396913372997305158672699325890425232464193315164374421901526739552935823275745595621207350339795340526289636654630490715066859216368973151649545454629170367347259346039832975509256175119662566147087313996661890543522489098071876540465243551341910764144232224458618110831057607196010117457266597621014195400785839846112914532301433312092291505977369619571483085016115087041569842287217594905767522874115260117045208185422552312398920244913363092604464791593525437965440750516249148900148794373844742743906271446328089999432310545464130188735090102237704956119573862338411485905105493490107783237404055343936300624218047813995118199744043347086974668752782992625619829597294514190721475054459039363626954707237393921700319009293484555121391457321662053545240598631179235902531239438693700202354629155119657466576871273305776564086437781673750190390527411825497475637536081913331160219829714924670802842593431183150844900172956594502814215414704000638620491544243433680209309994812387058119633667721269618798694153082954920291204945536863859741633781350974437406079772748590046262124320990691303133851768547691882261675550982528476573880882941230049848667081778030531974828716413026043297009724094230498689443002342433193940205522662444174909783757884142540449023002102624791090211674279388224140710514682465254714076288626654618542446930982733771730579530547150151518025302111302016128176989172135636664762130780358843906657370504708137862705783579508118422337731572746606579778386528725843533105158222092390733855766404268952593338172505735936946989749998875978585966558204976516732519992580093547102847682061647618594804089039583478349099113435547882203691748151646503032692633641362187928364312057521430358212977661492521589763308255022829757157219977817783712373740444803970402570139744956388403832363019663742639321411034481576946871739393193242220082382787481972807875866016894196974329404531167365427609310721014374959622344007530710516628936844339498963276710327463273076714661910776438763952461003844146856590277312314426635436075234879992848574628229730524700145308386269767451435703220179443033845263306944801817013181363417541805061448007924064594605436375619560914165893899089670639465593165411752398304003850631933786003441652200773929715656278267606312031291331453514263436241328087310397203649955003728964654717633111199431396704107163159544005377366590808399745673511615125994062983959070771359781024796709199828526735584862167741331016277958378687365616922274442391020152289880561795565260997525954444677137120319705643899745102927657519371637038147269715345063787125149933450258418789219239694078749139389851164655585793611631763774401870586546033845880488848795874441836974260599403056094249708757429110786031543328055839099422746589808765881609927444655117470956007851416581657758031050188966357074996992023783136799708068720425458089959722919845450679563198434727138542646301124259989686890427859034661855571912133169878599067088975245759278415346309851301283380525382630026979926543073170873951819964852621991216069364737040213576227227945946854644546144216100344075998134347283179287300548913844561569799071215549019124277454150587153985887507152419949429320243211201643464840781501200998020154453938622193698536920971213666050987813561883802674817551846361333364952406255596474498971253314684505680100066282247489799968839569972433554805021864589352990525167271532458028431732553803644675392178481384771198555967819676068352463266138970798566570387801993772448896768579873980442052591673265625730568536073503871649586103924963833642990328769163842945018538109452168270365108685139009534813429211161845329534662635237754493040504709535532018281543887093739804740798717047989530402263555082370277051388389487615510622197845283248518549268140650095995477943064119610553660260043978604227531341933768427662472369240208688561886762331067351786719566614249502880591248994168215108485138946533410985672754510003803475790890488606378709678126528732932600609481458808248087083429202959720394599661632358258843847720863079457982161440384895818170139686714014008981457750825856563016521886355186628819176408512312982085973616559586280283797501255898865355334432436679691838988541528227376171288267395078872652410968899537014133754644408921678243071746178417405723602116177794549001512657368231619680930596199565574993381331411375499795856788003465066130495379319492607264134698057452997336601251023790523188303443999581100031514140028034852113478628802172959512258466699386338151464852473297789288470637077779473339405903822101505043397887485045144593708103023840011587653333281444845505570768373081206737479231913660984223712547477235300931828612322654329461488351015823570996965530570793324823237597764151140841760263559533028561498274070385148357808646794708098689507875842245614108222168902372615256482244133734871269711731252508595691134480396222367956446694138650392465352559676414218248587303000324530907453158566241837430833231256413212226571166068101572667668383221046966726888861839441818721279372822297855756551188656813703929359308879930638034481270761929135531277218118849791658897735337748583195082514163450349006845066939650561453754315072476611398459614826135429243238351789582169138420336776298767062700721736448307156967877987269556110059033763306925826305320916403796236091283831380913955340346752246327726564256779545258880312875251034314477205746373924777503639739589233305616168309686806699288828702645339471954493864035024680632330968353107180866318207242616338029295011541238645388911039078028860624414770899951957497598353763864574196524881091504270384129133791075747069318568342718253732725110094117386970659685559175216862717428539870589148147885420613869712986541562881540666997627653578620585577516461919391597615134207540841466717585221244068189991046376446435472219805504239981364924812266736779945156988595919945638454260355781162267907568200432428289358757885360013073688469624382255290441934611512517041208079035579134293606037522267169127559980677157272304872347103262493163498075173922445944855969984183510115018802678844173974992637359562802296125796403823561437277123207653511635805651097812662496120885018003242159410558069747397737757301858354799641465542100176877744045311089496982347423344529001035932056924266332829108728894823297778866262696249821781430770274687710365978489033640235307506982420780341739941707042742095998064129049835786693020350091915547236669042069018370456346187134212370258454325066268447663621234178182365264142753620611386050046542829703445252514665188367232729184185026348914327924786225423811505638322933684969140042378496961344132948788937699684746865950900105565286094867749550000940146576420429718370285644563459099507654047025753034068091255047349515984161173632850416959210964195654970587853209936598131392060179906045932829086006825392326066613802135402739575495017041202579568664865612150611604114029646360251667467977352470504571197428102128887245309745162877618595696898969466331209800450072102567920066452467093724701019736782906611290298227591344375507018721797853750300324147926084074140480740557503949959055544451599702327472319088415372318205674647205046420823207389476573710102858272323319383655902478631023439688161174802883523634853505010699501673426554906551679540974718821960677844077375975108071158774838690762912660466266115216915313722112882493679043654332111219895663293172456056926394555062041093844720774128605566894594193630113945348066583566127576360305333330640342087646718183244672556039557925440267595121727482783644170335493751289684201307135011138315040485954816163609513836943804390445827567562373700002672103324507545125385610064422428813618825687704876346720137613152963018973997764382071299605756024448160033613434115485973778620505434776521290716057348277726521356455175852426061364395149663533501466821213260229772451329790785835060403338193929634499463696228231376245303940082881846654538335558814328006589307950414450653413803795878427625895578759166770000257127461958408204845333364475717715829165753153035473361405983714834264844215569749481000601271162151188846853698236880096909129949303652948668691108425455143310638291057566295748697279324768491872785336261736346262728171736122050033042866259657466711087655630309810655423351392782163568883537654270580262062073143959480272371839266902633231764859920805973943019489353149062083845469471426409076588996741458937345710371705034794678155573687974508033025814800808369910469763802177302421595444408130613258091380290466897606870845252398200813473583400989006603573952956772722355317733717441599546871855059922036859871852654426036943499097965445797766189706187099727377629310210511484463230432420832135516304752109769337375566557091999873398861635580424778032193778529353203077925398101168537035445530451594433604920340659358638571588515011334007551102532127438094461610126869749661754159839789532018424075519392232801226468199621260808574542060619616319059616349173333713026701299568601219992813120193924504028171474596185728527924702213088446931722171735061720871907707080922309388393470206424927930803782518292273729755578400449483203054193625261959795862521119195583129316764371165626230755701855822289633771726294268282019691109670106064010051021229964191857195019531909124624969822167457360522730220263207454734867145559173369896598143355182918374216847521706656461792247840379932036903234670084277284281082506168364929475656402590668715863952338183883702916712059699263365318513688709958866074195079015764732726627088241632481855454993251991759144355412339475391778282969502245093641291940943122738558047270803798461615154562710828824821699121216798743919258906726732599110698131257349690572612466333727687044439292567571320808174537486134649671956352090253006572348224177579129809796215960887374681115787396116061302211519282209527794136580362897050393088359113259277285765145016073898812568984116595275808784256869299248961340998153110990734116458015892518711782878204520240031612246236132162316311878376421044266795678399948396585183506616293147874534508480297753957470436196617764511442727765441140743748809248416090143613937755768333514978553970194355964575958809790706016517307279243913031942173826533756945033710673303217426398118534401940297208604251229836471460574938426862545462393594244811198068301023877461681789404682033188471228634234902555370280300204310683586667860626688084055918658495016800274330632786235808880020839491757373577504268452451693790574236714036087020648424443713377988839266528832811366728884842583887285995077185077067946457477307503322353299956182255434670913130383518406445613379048171763559443215080074660815141145747577745534245952797402032375861833163698028204997487506546194616579754531486401313586590852899191851965648774487664106598007550784857072445167660005700958981280428417080677096628183499414360030383058382481777001476335583508395022656645583161587947222936327116959696985396354011432303749471897098104250271977052240250026577887137155187433849780029531839809529260161991050197025771080811533018096546886756971444194640714318415171942826203228356475699183720724494057514305567089346608965382733888994542558637290142209052174608925264146185043391429249162061231588629023642364346019720050609831509130111211755079370472317657598298106060839663897859115516093323905533132157211978310450841082865404326197674827222613149093145465431043121723125169557439439350696606266303802863488094980704448802560313796271922177577973777803863848619031820951262377297569766386936856903155937669833749009760182642292765830307043374956874212913932145602113191390431785838098255055108823196052130797003606326293678309115265635646211064529449181477318892510888793455180807606487309438374526892645024033052585470243379708112353347170836149124268549662305922222311925998447533578873326525995922757689703164574266833330673652640498456082282488060705064199252087152366696619863010351408554714128782164233061387162163989939867596759554015694816521078885645268699623489944372754630260941434607807542882564199090294066655674383936775662661396539118095242855016169104700709846683690603367104525116472138538997423215388364575998779479241838260314274594029684447993123286192426498514013620219953234474785024458395653336607237612211404769786156585641413778262368327988925336284727630702711750967694469733500842073914445286546500460085900592513704621274209929207717380106788957562104039243893552364006437954759311901253037176061078211731266902034688040338546106606632946659857238834769309111376851310215071925761868918720186475624102530562164343029430588439750058616646805131206728964597853054931666900746544929102940834862814673099476756171694940436501350405842712561365615938197850178174165828043117389516724746162803711249569299265833861322223622801357493117433753163249360735845198467541666912119513618785733403587382231554690107956405726840987936401507689975345221747097804149595188823554311793703735696286327473832995377085785768277146407282493277343126744705312544804010456310294378906450262180616979302914458225647419040949588608407288496421334741495209613095086099861835995103832030470751513982909920015196412788718004788339228852255388390490193096527256016842979408368843784653180853335530994089425055226326795880288584875969422344594637040957153090081480751368766126101924446086543150355043520551498191686244152108965853301828239153165065398383827020440271947108987695439103121266961615040097264825165259658441740336036863976008415141832015117431711044684152861718797311482611831752983287281097899414126637676983415523075139557791389407181860240149767366669678174527064109877991355784652379590513163982439080476853201318748529381782435927069557113910241504063040136985587843788916880721743972295879462212965725786885440845262187469730183192442402542731461704103925534836121699769712511689597188460471354284604537814453210065200739751900203195154921441003421126611277061564585320184833006754231507147808917500192592980323570715922924213134581539537403193083505281622796361169383229227892440482175506458291919507374654368774454770976206139652102657387656680395724565470813216978627194458053317735030859755988212639393702008386873399380944126568162686423586683985748865593809067022167429978230401921470938952992574814216123141075487679180446303090130313753894802940525386012669459307474916561941131962804172649094539390728455515049161448296566732328972163333481823065473798558060570863388574600714495488873890831637510402869589252380505485510314916475769515380896120833613245787166672370759895327766362315069008880503830225451392566285496127306184685005777279589742256502480055592872877495937601853565887954222246304668106371279792019378595969808343445012362705144308631678647646029778487339854048019704486187619797727984527404771032736023818789069686967267242611546436083573094018885546549607495258151058155816896515135906720576922641694826049058689705448234252262390251587173689520894873039986685940203683747425372105272741453933107738952057195631466620979073607655975918037800378918004240191615750720843390994069629040153499731794568829983487584197245609302146206473248076445041864801855221379413868168245913981754905775678662856839725597753577900392950585237273018633423259714245430766700730894690585410990406230741516096913766112484851101688573551982262780397227870416652235303274954760359227009019777262812999353260853830535066317017140510690012084592798385339527849675740662432862406990025211752754062019734556309067923898379842388611395460827517811427558729680783075045816671654989778214014331278284616238194917229862997479098856363554470420769636984468363441588501585934014740741547575972856078054250318762108257983403206606427780116722673388149603066581096545801458385880276821104208250764427504632168664267126629263383755389734306452626203377176378400752573864242304943872352821299334386338518411622455579496620453553776436689694994140258637560669890364958036859698497896414393935053809129192625404780914834213170387852129127066463537324898416259253375529584944150809243668044362895959524559906231391248152080539502805920419188614367907918979734699299375159506566907060203671366459780833777630134220088503419251585122032422741651173444928944492400994455591861430556272462304508008660651438741298772033739548954211653981372733214659038222378839272132498319646991473518012920710932671983647225038811751818221345685571986046820549950288135628476978808450938318851301631368260749972135089497017582946281344899633863872616922951367662030745102908776183694244268496164739045855983416803807682408861131635798476300858532574972533856230009705647659494502320498009466681364622878017316433031080899435767358313634169178013911941793224426219579248312917666849804447378091035987516700870804868560101152683277331286991628966526333150980584516693269353207783408453303969645336884707653729591041777077625305058098971896528617026215833249863342710737485923448134102128824745521383164647834892606883602404224406183060131330873596977432560768819637879267626478107581499094593811669652347172258382165819104047233742474078335117309220424412484615691663919342645771329577792455991715995568343701154147503039810116674427160651466446795698307426574179118801720887446504215207505517179141029622852028352480403688021178384493205411934601021252969141396746943131827173300952761319130197964038881565340335162335048307419447718416916345428558449904176150354980536693198804790050102098654849438168149587915652904364944043031462924299180708283337030626765714164505053978215934735314944777422096573378482147748880620919026810185625194577394225004493772311860116807620473941301098789897275895712270024012937265588781420732150564638620766180167861269182046852756724953156758053596446669821829399065180113119612398209983286364750476347729606884897109804846154724690075241867190215753998883507128849653406589998282389840525433638071396485147315234796017727603653157129054065526028492384978732669320794754158350955323879491326786516134640529297603611362218178677172769958180154452557324440115285994197014673735617629338230786637907499289854190810819165078556946807919138596522202915058612981808355062965037187958510921339348295921577949141667916196587682037718877961979763393717037552770124718702311877505630025646379214828910480391536324125720555495978059827749895811616238939468346352533111286386332469630142703827772777756556597893932920569105123572736412114783667626694500989227626277665976611241156689511142390822479293517814761825616271018958805492515277490604086681328282838304321910327745187996846604245317131211296517924770837500439205396359250766571979726745283711566415870294201313306872342896183630356269361153173678617929847874741259159237121605513329652507151650422562550447096968137138283291009763381868786200063554159975818659870580096972359482650606588809568804206112917705178951541951998197939961428935691925068647031599522770608985407128204704302133210083186782211151832607993906693482005351980784253045277148145169628017229494034134645717747291680186230667013126017097786593079853965865292156973571275766368460173941117835975938303147064449857004765121262410358804675708156103547603123779732997829656215890890121059218723522183090403981463167241800742043348901885509964537321431596007564104771784619992430073734070894454840355041985946408767135821812215960957889440490270521376852585921677998287784531839636285079884685172935781249379410109239152439355170904010681666673982884467939160473291171547083414898561331390844558757253544765923681388964661886611302617758746938277075086273022268559296592794182811554879923332592147270092375121116834699394468015119016835240516740292376694879093588260200477770774198079133352028701852237958516298775184114056752851436662373404356610976222417168430153448843297301370724214056449123304939305030733643822685833160544548791437897826873322568338554634486952258729513060412542084600683308711694077294865677253013693184614830351608869557490631060990487758113276128332215952033391364279321290304129870925633227153437335346972686560688108414493801531745792109352408193696959597660349072793034759996439966378319813488302674226980440133346412161310317570436190184834366597124986947231036101129989690784395388836560474511315378177821030211285764478122912262155686264504084895210540845224304363370710156829233159158677544149858109226798374516576094901425688226305857449662747832435354114450055166659400201427735521888088945898033619624576464048450145140638600346319303782498842476757717398520941585965356509316461705714472204605137734725445362323340892856739224402409246943317135118648209730501201396410812828083678691569487691865082917976395877923619629018073558785708527960699924613641998176853414777112982514157995556909226810449008524125914423218839673746150479926958528806928608355927214160156655602122918215749848266813786351929351214178410198752820656638316476662114305027565497743564918347873356793056311920493804844626035923893163074080967473490147838876543917412166783189988447228837101662633718349531821017941574300297913161779941877974570443163209520583068123440242456151323460510784397255856668820877105012968784570107092929259937180996382537552998925497559155585450712226063711256605805224253072119997645371783011996888558363937549253583120425695396826219670383463655896608683983433162001834507469779284129390769019416370766436972411563603148839469692380497318498489882547445808214876657078873502046579783493103969978277817868566649304235123789115948790858760663714003393961437020009692529276620372308750361087478136294335956800594902766685061627810418064465574512340200673729386634639498455798686477610448072863590235991133917121876272729072285575707669666230995133229775558305405660845761026559578770861443591658123514269637783264575796084935973280899181576307875715272503253949205084849434644165151041936639759506864850105359139249303046755736707879136043741767075943426384726835342014241296679797249784416479837766182651128664110570070578769449140737881461956231819515462751823999177463616731531662367092250879594235898974613241581137493578167819380143032717436538607444959249079768185897228442114314826948205364121557665721424016214572583971406168692156799808258642634156001696188842050546230135612255627258028401798538961721962370466694791392077875989954807561170373013357132118023727856852334893270584557655675341225479662667722898913386310447862829359308488802994488956449283219136384539636953106007861041761628310317969121880891933135375133068394737207088876511761247277535132092584925292048082286392833974834341547404463433559041481901933813742942926191993928792327690882677513373972890996958847323277901820148190490504657538469915405604925959767153710596950476437817516095298148098390240752489907423684695661952625826209983709679248460262683210001267039818722602631448883562610739419885098508232558777537652513376004800775157591723652652996389387328587742739577911529356296137303859313506626932346197492656772664290979797142920765812989396278250798440873598081954237316834974914531680293382358178813244503429474628367254199614111641578865111601280716381076261800007592013840108772387528686554813050409499413548214364489062373786362837426259771697907341111437936568586268842934293286096771380421568164090864618727729233613759959587693278540743719233100749495726748898036204717119704712411712266456494290486956533298816403032669975046123850172045123817052575449138556738983032735769660923550750955666024527813498381675901098000566127041106670609982459829933506100801002428467381414214741750626269591273957222374010682470961986266961065462526570421123051078220443078790470035591074670990968706956790399620022794438790387995775778033095272652723078451025309455607094517045838450693633545956441196812800611061445786197188451286248413153988972010826499740766680602758212432129654475606549678732659127411792352875624403761546033192723411198630734776971269513200559249368280162552916656794743942337491728202354658764574171538990103190762308140622161345762669927182262619389366111263843911866628943432383507931373099820621085918563371379991854072651855204733977769312315106043114484920859491516363426925127107025463710547088455619903539526227678909651303020988602272969708675836312790015731161556607159801143983629655788695416439748595029712827386675800746458608146158139986817536965358984019638249337844573487542902553771192246119286914446123375375718590702327870926120353445902155142788307646518367525591812154483139417010035254278830245315122045982176645603996555708294275916279398783822390128520991186966924684310043859264000387569527180906278950702357833235209587935049834923409678055074143665578557919863637754952722332269450584729195070927114589195744059858308118389936096737153659360175422147031230946160833272854177817158990864658726817036992886595035974361046338762442414360501393712785789013751158022817936912884711036190938314475484188403953231577552244816483582159230268528298532995097012584155138636777110186766607871583075565460075784643917848286557217213044517170715941728215069152388579668784172081094594243555520303208656759788596083932146329391478277086562164823317341792587165560508000507278929729243218228166248720437194984530300912289874550712329519097328828637784555384246194407132034609270861278403267316350494337471116860542956262471585903016539169580456818098031048232952647497674487005888959829130451442143478518331007412687957549204974688487266693273487787464090869012783067219072783682144385828054747490041835961666728738562024589781948568068644576690220874051539673819397187202614844289919663369877879328429002579691783128854098002997805315077112068626663287025412257494929816762427762775785575370447229362204550949385383571808529462252139861234523264419630015564984937636921637938340323341169465967484394331425087921088833475237194943710697803235953086302895725381269203089148698790209151264448926919534659275378067355998422651836898125537148389668498677092323488895828633113645447514305635030561229764962771214649395856250940791198471231834686473279623405693406623447174554088699167571634028989107501549153575283686123931903717268983320244090033925518960213692329999451910833043768939737831963547756302724140666227182971711585678256622337583683820794382737033492731967849369909127815357409885225922268404618087494851107644131461680007733450803389242643469418494880924955728419589906778389103067911980310636532553733318401416861509730405324578248034213459514327116645409432397017414841482526521059282002617557577515625652678954254129085422088489318009617890508303125748014610473500094869416089177597993822983658556922757674325740948548305834725342820523552300426603181067324966677777788484177184642445056271456367245800155343168946310609724984829343465344732908739954016380340781992623709252429697629828868733809165999997191140808244592855682647953429105249709710810866669017497558391821294749753684620733332901738882593934372443752106570280244439158552139833695360718126013654932140884471938146248393156964504436912887326376126016155031261883097385293843549532966832658505327153936406952439415391446825944604083619870714377626393092366313473201251795215082202965150981051616285240170737440529343804648384188589286035118631710180966561529291852497322835814750482756219704652549029526926595419362318935191273246013662405327193474070797318639617916967730366521167819203175149392263986290888480052056937562133149421612833580168678274066083868141983232106832889098242285825654183798325469468338437628090214798781950756123360595009888679798366559623830519677767895450022214086692152856454746060143239123121145995476280484593720597605894118507255929947538500763703411684047690469697118324774844260632066441655130436859249760839667984128162270165254866409620169821076837836035342373551795797568062846390872064621749952040934297119637849392023451412668768496007722232377531187211643020350925576011338499249947187588355704690005851213576153246099704039154517366320952119084162254163909407994345867582553709927803330508546125997970868224453685276042266252375406368229113205955249992894240829111825934198569469864167602101007350748867421096150879741412791218616101245002125040514054532164742401782855424266610098654222324183426178564791481784775705910779752222926635686534223132944231321702695099070119752299317766905082694454449025261114710655995627246957423438666832106270165723114691134333302923101734183633046593531335578578307086873095432627287558812486146707646731488887499000332693502473829810000656345623600563446113863404529625836907256932527335644656865054081757408457498001606450743241380383063570371063581084005636282791475702003578631410823944744077784930006472309853609575204666043115962982448379755775825616997738022914790967439932285988625017059393326815338994586050068503364303821717732710136977319741018106566581780541842607269932866957443063125002969987722929805184901507214382459295525039004557266853597373603276296069528914193781580359830294375586164700869696558342208662943460056500316448658984288666997131433630795899043177443790413546576463278768662080741607107686444331323891310471230793236978109833219281122289014573332904171192391034421226697580362238962922655133210489271264234819878522606016362294753234433678289780571989567021443746032868977464102404733075956327850070129334471655329780859354176659761277890894091457443286852688013083495650235429080455851864242450685269070784675378025013402360620538441432999682614582182735732174405375979045405197895985679073579688037657643645308798580664645379192981754916168249278147476830581427489760218451508627193581754754983593866584425559655913546318850220275022702167559008722741460901695950601217070862314783565523767510912030320940326601196901947691324984720764614532297778763246756993452497969923136774576641912315642797048686237993755567935022847622346344404620142030537164542245615975434031147928390006955313775403477188542333330972750913482842581024181606525550300160810996438480171366402901661926378533852528828723427532857437853589086177888698044384380022407219767623491638899482524906565135980422095168051902343653988103591938398725240570047000018532498806114414952896754167431051290896050766855812771581927321048628157770745614405613157168166091971124791387736498881705975961188021849444641209051775141176540295085133244106206584125962259806548472982342971624842778390603643762578644245659159636167927255532800654098821859521838564087814123880813974632982434487765807637667829451506593338737087368614383060128897999830852537100297959431161275815754413807061109476707643524110019056306142560594855189699450210421644986597379431626180484144539918731236637895497120779707515854362826214729633276475586747320509755851940091970637143203736089984208917811700024124989323270070577465931693063801466224724560175828941209418801362142005321201886541879752483553867139065691051941377907087217932378895511054992431484665598159889790538567071084829769528849661084122338315493007289693609076818123690301013577753931822206092031399949869003900900090769590327426079347513549544300363973357913046343108506699852446688786301027778508516598637664894635400342040389067953193303231570495244762347809112171004972913539960038990823643093100623322852798378785578308617434772965776699167707390103851269539834797865976376573283420328604058984543158671657340027259161518489422808250548487750481632207709001507156996871982510688162503665215558261119102814737567756709508983055949040283995436900611861415139177400573389166741897135182300775400138715138440318841255410310953797330143655365794532558232907203984464544965885716440214843088646761857789226837947283130252758044447025469076474083548200227707921943824148651811462850546501741343095184012799312084195906695912429458277202210939303358601124045588598586568495447039905860728902032371392196245623602513228491837370910725034617827428845882352049973502648347995581921479726002240916622126541028180942284874544484361600567580833770991248111756590631031655701568892408469181715198192653051324444199685274274841545176928851451834382283178774383877518051477688984242806163096101903059576084091215290423623947114025262295710778813779680960703008507531121645267732366107973014210763617776146445006727819793476999747231006039867197001428693417662195466978121764667146428574174064801639472703814143656098727616316201277049390139929684487364604265701984839057547980099862381092329555799228283151470593928516198031201244020835082547653471836879489490338312046090401779602739452831544356872026605587219999139641406895360884350235712159560076723459596750011960683694211685602391528054313153837937477535057151935487086453054161686808874995094339278405251153787057261022234043365701551826899190797856319068260185296431416579279979481512249981572602777774218440247464116813611237870383593613654321188546442232956327376405742034892033524630928025797956275916954261996675337888870352703617686342207430118152779419135205199487849071505076839926171309889525484277002006231398131531485475777468244518090921546528770588822891348077260476663999870515460043415681081798731727643316242381159892283242874275651381194687196456800330094598715166173491444319851397893871154394007537007095496267976847521376874389979457566928853377132710358835163347064131561804590318037017896256952838657570471751674577355643051704333748369119070090348044396656251260747224180888662726546061835575828904697825406119912345349580859888779801490644334313280155534608987387790147065597968305587493898002503201427216574678941950258251953779325757443775424016125253628856222601321374803076698600994882688913567863577946168877096684473210782855233677002147747194625201221286815174144558347895518770505551710047487287109658699839934508015655904977745304738062595717004134473289239153487640366280709584860135848040026246067125278294258796165268004158799018740980288387921583287943633052852580589543164380983505513309956768410862864992597256138522646386742179693045150743177731419423816779355455203450680022509278250024748618675984007032102233386434711070068658169639621456159829781047536780383253912598185001093796388649972417340285337855100826574632252300083073181638648434709829770972053123111613874686488860570357276804830357960531854116473037473301910933665640435457916252102534643398422253224290800601028807697340964863582863703551392942939043477093615785407776342392166552577602922507566177115617803194165888369785400121616087552577295313908578007082952967528886307181699122109405170010328658702915065353937280925710242326312203230476799066113503275708645764617014805817597990233980369555326455695033290466468058168905320369521740371396679507070496979051996274250431878060326270460641326227159388142574286317577997026078891254080226069182578345959618648891874355059107575272415087127887441504015909617361569829628261142164372933500349612867997573800030968680058825538593134885558719224855579700590844342993804163176811683166582640565938068467822083810833757416724015429215392733763747570756279930201114361557387467882363291309944139080086427755147830032768423147031689512634717107087465877447513306062400375258297631067581694837690854160091151634727111067692927670799699419915778639959164020997385024393794535678757816006605362123637413748009487229933892980429992780939862885704291631475310292555488391774686148506937103230494606031591114360389859059346411626309680698933330265881891067926560084661398260903053582404400385035762973787537711609941783130382264526710230029100357852247493156782237452817257153409293588118420291126778738223749887306658184752860746153631113822766077974078730676069785800468771604749506296864885631616827457764234640755698216335216509531493035338259191526628457179115215810203461143820465545455838882688263692578023860015175985658410570580023612890976976270939376274717534470866567274886066225221901678041978838658146041996691470452897286237583122475886842142543737249212345673444427808368285860923424590680514042052959254212639305485729449284900228473366201225576440953601180786529720425360772456246177977627961805237849866560050068779335613859333162998205869861550322737923218642549724050893480953017928544285556209855540350512497898735870886932648346803873093014685416879419557801539405350057763146225443430867175729926516745002861324960976317818315056615766394246980731361974312192385541246467412945531850030773299926936922700992985103855445157510445104405062758476147262656439633302218715436858271575015028442946249012165457432869565878892802914272818542043856776609995427376854811857941313886615254407005562948948160912255150452512225262958160789616952186992572870186759186845066906139804527549205057666438414913303662742047958260379878396063402840534195578033227673627845276232790195443930580929390739020923636655913091829859646270261545769197770024025312390083843941803940422342868053175496896732078101758856158804508219509005111296823621237938229454591362919236292574653493827974880359573821669859562059700744321743701924661041994945932502012421192276487448729289228548914449164002031508160402180765700619472337277769611661510395742594911697178111064182360912397120842436289851269753167807930269682164612996498964478280489006018809861547245202105727174077197341737161007498086158125732882392415909520822885501848048598101125181426920229657573003629510759534680578476207439496008780601753238053840364227443555918027429805116535288576390610933964670642648406005182882071895704157555107621134544184941432336379908486711295373542976533705411521416864505961875694773906334824249309829767997303258292312833342220057791549380351259871237302997082634316988549252312296375080464234545508017645735379132755435161915267452481926803943954725089786473329938706584045278648552411070334948427261180521007790477318457432164087199539093323812151366564043236161487388662577491117834835541869277538162856666016926541184168364668383183398270835032078954572476246004196782525744585067814812011118779406826629846324615460559576714221170780387744766039868042312423594591297472317703744614958425695551778017834736677323838585609199114598979042457701234284791374108217876798649248744422947928316485389491325286114080905770294749445211114373314105261090574284246915207537073656298070065498243725742211482252373735060945053509354814262058355337434056152155523436528364362886180515321196970643921660622771475621889093834734576139882373515695674329524636265616432396801423529037158016477799206562022801161332640564816214572173510309066254296152188109199939658430800639557929191010162549186392250813700680802672998007198599979170519162127627938670709348295195562191827971216496358143493233247275535545998037468620700619134498122342332158168612164484600755578299699434008633357346492144482783564205838054587619732804138905319363748457687534087667334799882040133551131777949451609250991352987526127846801199317083399695392893068824218985333144951658628951801555363716476910505136847302976861578054750401919082636682756015308480380870834091323745019423631716854640450445071893566292969462908503444009979115038448179176694732458392828732595750593056037143336961911472291010569976761295856398555807435038571368604330758641760188636506643175849253403848568128032279689857833048896973075243987784089311378886016228949603769165384807365309172360265174388067939837075342807971092871513423421459896484762309319234203249594593838205372861994458030229170428980790819573243039681708669629600840104669425114858038915243681790577983046492448743332631079912916694745967991210009137678091040206587896241719598232357975012542503516507530063363775172274070889285624498068747984417772759579675582140251795668339794977284737606972609035874452126836745511459458368892161689893378822476925611297612753575159704007385781289515828601176410981080849858717364486263996764970309855759778210096509521594853395795619123774769079898191423291592163088832272330654385964078598601798261311901080166824826706218807442775751861647318101806446269540909862150491925428226998426445977327413947409522190172389247598303016545753481519204231656848721615268449788608971427683831077653880501015985610165250014914463554247300684924608648407221347343474845382632110231224169551841706617786076457909208527589920777521268186002755093538918534733072181733355994124933485154986272870179691008144920293594415565401026849498843975479796012335460441455284840190211980087348268305737738308973981342625073927607690924168080500958457143306394413153810144079981132717284281986336083860298900714757333550932309098690499154284487812901360560768825582053726430694121013045364279078800601720382343150361331907308975535180411650811324013775140732918724274332877880965243128690386407237116744189093643586309971546319407134171989562445919879433466003527796749974631124067251346025864859925842133000258900420068868638259614325561574279049579348449189112154200965839081757279769137070971592460163923287238772933904944654304307341109857286727618783096417807686633689144566743330308352152643082051118837614472177428603794326079888351127915097647120868079449194561737785362348772431908750330679305024633149938433264038832091670931511474783382103478871657029789099116815970641515185900673693263968704728036308181898038039627667791453742315246932267016816502523566033613829316464499013230004629561058016309905240539037995061010266191231878502036937951755453823948938463389403010940454806625353981429956765210134578333645773031255189597188213875818080574994553644270654419577210789082377676655057699061452219479505763810033683495659742711226719217823867668154129757242712530377307214699421480379432626105826205868179208940389175193582202818175827739583951343314891490182031650290029644528142773737628217301333977447686824918013258453478201994594805624480778511360516984029120191274701993984405333276987273455968007640105266820592750938424952458167111506471212641250280010816373234148676565459535481743472758297110095145746033481043583684752002448463760084729419158382638770934823308489402021488569633704692127565836354842128380450856613324785583793193562800736993841957752638914155017846296430281142630620816117108915640266850885556539331752181811141780751616930706562246431333926901334171598202302726313089084442371899712150143138074237158598976540995806219749216267220926541336709316885126249143776604190135306194399358918776277106363156309671379765126882048284149459808713495340774046236961301532382831418105790246802391607169524816060967684023813512863069473334603144783583679089353615121741522415938331964859427379533491056234359673218730124711016768039393823424994902794794044872412831450620539270830736438730675718358663353063911359584019508717531216242477197574125570192592794462743604515720892512071731906625018511782124781735967020468617257849159824336756307884799721798828760667569725537601901310685571856215155061855818480838964582826359060223168817699864158252192521720830030845688401531219805117894569141542138359503295209509326075107799381132517485179671627716530466678293778780411043762941643609882121092890642057030385047010284905213799129582989481945260397727806510057199415696019318915239798668303260539403785092548554709956500927556770492048559819535227254725284890998512348940247068720241553525409657035218373464580020240236328737602138936918207764640758093329644743900356551325147811065360881471299575741802187632519919160068484122808695772959123848417249759969891991199579014937843919046903540737758757667714196384489034862579105103485436753691318266907893498293393338154065354823404743377680185052856735559294342323889400916083921459851541042373660015617952240120721749762411110558675742380659670601073077031040462468572075867167775734735199473148883392604605992626922661637009194304743161225945629133750951584144183805420332589039974573398468376654934545557724498955715506944910761211883174424223588862232982771199605864295068732908909474052684712716188352603032253919109977810030819497842630205445598448111708244491001925315933622173973030939551474501808272091301077596550685694971940820334223307522948976984179564342872817074468445653927576629861054713143599259768925427785661607330232856934291381612482383532022861596433726832415738715462189260261194018343168252851984385823263587955340843947415478967387854231198832167244796326569090914287320344180164778617233883515866364714266539726391755727874768161318660596799773421847863079870534587435253165690187720073342824642406102691609257385433013278687838479298693044710667514179532393173244712606273550481584304774310840514682744074413813928429116367476717311123200786584596432977300191309162984986615453704833495425878989213554180316448787137966708012230143746880332021218833244863826141331377485302473440625662385090117499309481539740134299607393603833703038028787521869043098183448863682142986760445373414573440854580544336620624911524408662530818766947350848720814290719186410044034615340163604298550071677736603523002815989251421418128576831480050907244828278111782953710604630528687795265646104690242610155582833348780603779358327799643785595910627657991368179128772320458097431878398661068041911809715204533814005410097924625723648119773408368391827463659838789077372210284818986786936197783224630309416299296758558570947336939150560281649517160631820798532185091738565179812184677252004709798225644078772368009200028625542566865252078181418943075077022889606649256183878319920523703302594728516297406718328016909906476388248129879368236722217871157465465912887131372982489807557191189615406966233026718216223035707285098118012325093276272174232323421921730897473920802013009623980709394541927718606306749418783134134001155785330895920557530054060899246457464926222001103538677224577833029349112988627001130028890285515160666284228894824707802838010674234598073601511023777520100849138209929369813685085395797310426761155623608884530208310209351384459877496656102400494283350119678870079984871496131533419244413799775934789488658883214004100529267171349782129131999013136528739658298183176902492813100955408002591286976735055653256664176261784388822562108378658862808952556179647442667683234428495114092151340904111100025271092101793075566223389518448859339125492488154006242482185842348285310628697561714595902055797531320709743646655590533570249369929564903219802323171644403633275312505261185233689767673925414596107996316124454021423884258491776591957952433958118198482455153633464100549339674040106758706659625518360688753692481965338828986863167469419072540123550219188205835220480535836744135615224179197000320097661134151701080585322784637632587430567085975721078318495935539394281369971864422669708612526787134363529131637089702441026347458522169958478006761432856745959529854019402055002411834734872166435453681019328145218285458618387551457635641670047853831368081550353031127957366178151189039009288541964354947329807746167493821487394083764592182195686202464326348430506743839517661679981381469830249682847825582359709766534462926588839451906953242149385705880621671674504078961721411401385392804901855170375961630076539550889264010590212802993419879617681222597267964093371456955446753971172772863933302286834057381727034757785857520906213192288907598742671949808698125966152103067123868317562831760925074300950496396765648560376241396187730787613003088340222897001223054119354165383381317357328802491295895272677085409299877426029484925277515283369134880234623115702785682556062805738230174216244931892837737881029915834597372396184129582210951339418327378079457217363522856498791518549115574656257404618148148105386374865717643097134688706240248532891903789157267869431480998155683690962005939334697286661232296976108151094923612762908880194181369966719315897660619208359993761071597401403945947430884543133727846027932951404704876588233320740656753345406718751272238020559267146344830342608740932979673118267861363318240844407359215760892572355279469174060678594310156261033065434097587740632426142618107587328869926178714509183856310215332444677361230870981642585703190897999984780097335505971635301590034332362016532101922372920299451201092750928921234170790593998834257100026577670852075423885691018785020187921315220277385184042084421428796485058633996086865276335684243181684275822097836663000516555603807890103387332396747816930870799459407270113426143785970201171931929447671418281418967074492354493799917098355589733309061739592651490616130262435657836293542261432527533589918954037897031961249503659053296573921153697111280518434108965456639676462115741388980651765567532273768339949829697081948821591766694801917092697020178228296097483867265050836881609784544037503226441672815205717931233789228654805050589443776574943480900915777574644787589122845217066293036622144322901505561174223977632853371435112529381442091944078183996301859669741217240622582092915106270963764753390102111709661016513151659528441045957938699905113681628586096170313918139450689300216246887406184941979960939086665456840231420973343067376594347273703826168081628204668964782538341563709110052410598703250649550594073938928104169743183528145801158537435468211854489044727714944348451245787072764009578553685313549142353776537959418605524868377311416394017817801541222754079199166176065883171261196099320114085368270231526915239685125536141166276536753585675337663293431618741299012378248462551545767036397663223761256861757262101643301403604236239205147991467854640401484763125708421409314430009900930358251826157341032532947088740721324087048766363857923407409013844106768820477817524936882440823667274713073901591467233997024737278733171813984707363185603440022063323013821601324261337581174038841835634921945221413314361131223732511578134093092008250847428370554816253110751970834610020169782650344998707516515766060434699002332688446669217187271629794976625417908689162512149147008523277988519575251386042343118418307869952600946947140068148110155973726120555437004884606873233514893199677512945827222620229393253721856981342837567356873950066723209951975602203444524022957175920439028450581171829181854201505270502368962579295344249437505520446787527415664122900336620639874519784683349890638811479448187305236389584368780987235048507522520449387956413708809852521716933671166449275670912623170652202356809399777364069136362341936025898573145432376989445828410525825423223985221653126387450190884259708899040366446234661852047669760714983534924184130493159690714920739187213257148050922626618324559705193015535340930630359340569277794727494160547287234096707172916726291603008422839632219066595936596341188746894318149404574014130581726548761418774334362611894248389846645153653594109451720576449313558525561205308387230115763252534266625120418075228196059074538707980354117591247134391094010578115891231911730626227968041084176292790262254523287706640188620571470004265820396110773483569457671266798988889967098173903505617787863299343629334261937813991467977300065567444064779019316241843840462550082326023828454581885888080419191781660317080673326272749929173298321264571574917137193499676012731398525177307727061631372680689433386084469245878069816942825800215650294230167703607991757232946045347274559491020727898367878015335403721706470779938321641091622342382241888240601076636342098375361155448734194095129119340525134895022928829403006324580493800034523303133786181467723010547058997146139126952399775892094261944141693554721960566931476729711828070295417004868883265413410195080483550582700130872008742983792389207112939228603811768271637467187836402515783112071428548932251897574172015973576387137839536681894488986922159733343839690335988322179599676635333721609442250015302319572782643782155774000678500028833082438431090809977382488303495624070436120903570593106657798371736083149656565184843735833332680653774960226481415397166780095910266559081650895404193016381671034228919797804728344622493657868973263214175098418940725655440821851422013444682591950527655771480604163409552477747233795169016225036828227093053955643552724195225312971058295921659475146625425843674105824193148963949333159061696037961006100654500717521156160163096288310119986846864897760776604020211892172132256845919497502557491458395139767029881798383427608568595629787894316547187589197114744386816304108534443342571395963306433427177976058180416440621287451698440167858718013193158734828337065905521758162940512650872391724590881686560223300705154087710477227650153088836884552222831150507876350551873444151700325012901116578283963381585222601007496179833359881787747661126608222723781295370388274894878035284852762780828421112167047428213225931212151445662729132081471968969304463995862214576502140722569940214664903232199959668500284808944918269035360728340685089059423871843302553361866157274369455906032329810515677435148093994084301111503829186403026867003289089917320204049083911224536765562762218093684011978225721400795042658992677606687712086799567256236450386549589476836465735414606918357221614390366984539177960030510395502455443960358390713654963579616084572879079390186735513628834541369546404896020570992755542756006717015125061082085085330756645515873202615608847674418612769659910153780876896259883592706081189515771450413117540555797654801160063551331271252769548638263884503136224889038755300121147426545349261859667250668025078702581086835022551264754594425062956392776724447576480734863294305955185170560484225250431634125370485964548341866079977333631989913757256733464435358398085806393339348850370945219900760854698609202429364944133318282124292835089262247040507684178066104235276302921744781815345140688130251167124938122016136522738021390529795849775586884620599372331218972119755691524850594101301650086797670109218131090735669820222575960471373562348886366329329400469272767682127312456434813055180973847036183129392235179303440279522220608795619277912316161480807283502558441412669662976507606819456414981342926345505469918657954324302441772361054250726903436998557065805752807712052165122956262104258820792541082995976334960074625187852544140153456784231856051983161084893552037649910648655843511892925226758437498777851366085537036336510039580048842471496793115933627611382681496514663138892096309405243740977881683911439904788225547221340992407327715189395668908983775036287386271156211933339975152177444918995237706267717945499810490483899494498255108811354739586385378795461059424783647925567124660783817297599280910405073923104693753977786989369336384239227915683696538161310019936900707719830629784143529456906598608232447192493911767310003761714101215935908226975743058470443298327366888180208007654527996905317630702952197944633470086878905774808986060342508245353691644428166833989519824299799462295353417245750179706302372608212177320898816298244453300021033142291973202747236883145814020425115947752047118340961865069837043843887730056457749638321351882363714300986329083150505377154171485492690741131094604797902150154448877722387703524534333779693953381431378699868751352497383393999924026586982347301057334290363410910128370086415464452230979234737093835520193566243453533793229130448179345650265736768705603042036928779454924225952138639899312138061200580997688704533211409209131334650785407831789229897285946829886159541886737274093260222893155689520844182079175789228032808490994692916513583795063805977003451184250937130357608438231742934284840379292704480577659474525394668915866718313060047796862092413873307058606436507009610934161975039399789305214276783958905847211325532463727248802135927578590037252542761041171118384793496149706435290350428729572802033657794739483235072502416030006645547151788479736656864294520749585667317679403202936820507969721212004671148970206471059318259883583488039778202011562027399461020563046063832552355337519828558965837606231297063293346151402169093089072094356579346822731852895928365226996971887358259707748588548867544080493671798386497843310942618217337643679131961690719713677721388207812546789695109342870678600354977078410316085677303418306870382276203211367264007001278458862186888504185473209544919938948186316659502354672860534384597148680542571413574349309054756150118326302279408137799939083150748589913177467640533574244170956872603187608399953014035523863843715862584026026042748637864088443050914295747550032592491228650612049576574167539878661802569190075028206358544303623247748404845522808446972378973587531971340901824749909910188103608097387972502824035426375551856736855226242042316924388976856774219658246359064191473018764052174472417015616825064780216617533062730584690818160345231070520136290561064237496774055672911283812106988464636160524062824967506926152864792470279085298124940774740603471421532704645937811275111346187048590870707298276155915170586197424229602064815156344180929383033876629147952463814177834170849718927726578044970557150902828146610787139063637841876790301283137036666110517495578274726695009242800339118934996815952125700099956137282424184185291776477387621951538345852824672103674207920498568291927627470809343451434354339276363624975544185612804194127617958658203858520837822760050788575638776154880758507285376727547975700873133411909355155984120003769292835238147241402701466132895470295040556411741712619502056138124839108075144646534284466977309172832373171716939788099976726976691455240093910316789531826400587215784649853799974950482836756652709611601410593817034130903886972282714536930382037361988278834599628596571418564984831312399892152139982818331878773990009340414326933118307633286151448846890489586392298873764101003838250233063819308175215889808677301886990626359735057868756926527919932574395999837954422899999945725832147777531290954540844644120073407857210599459360122986450045340737867588780609631594383474986161926314041201427042134861345301474837803035345858153876919004624614155365532009894702534034238710584451524595595274318247253078946656724448757472052751295781928559130488256561996511961370944267537903989634447942556641633478139494083177751918626568311010463850691341602505406183785775049115777378629432573688988333321349583387940089973533717826464884682322814526517944460545175558586703635434263477715198014226924604400735423618325107212174792960207929783015173987876413414833741443468949708131856850736696355854574930955026322033384630470766418372206099328028635466501619156416898525779103202609183563454634802107053483559808857826148725774323681663377516234077760701330360942750389206213578851306328897861322648808354196070245959639057931218369736494599815498021754520487866428804069361511216566453937011377379036666673610247401162900488455361688476298458371819726199300973957302472443633119467574354082430542154283902489699378906273236332110894625767163064569454664040070875126500085750520591848394943080219823120615421832770761226897441656822594189248374625772508593193237207688665390693632673325955542158488244241408907468200410626136147640055855074608258385443684421812173381468592929627071305575330930087924749038815044959004871116439106878417678918642494979232776753376256594595482247958614525932727815584978761137067408703024618423539336242838515721067067103486527705718777550218482556811299041893385387587271616024445241928530394713129040617790447344836335460994637176110133300337833642281879697871675003769440551063354168092038050849002719249364715397766524612852618496864882276258427516792869362433243257651272881641924797641041737704147037301545931579606253147477946839096756155735836366547048013575740453482766749645518997070481134897028858155401059513538568190235699092340000513949879362051407845275650074482644199515109553964145028099157785002661083702991712740893804532663811330707507062190988912306464541210912131578340584611934213748148265277407120803905018942778654374017001087025575502282326538498109028860063328993503644372697956926077340782116316367860947497617054438812098588476903072126307747062975369859660665654374982444167711312439711083281449615059410046215069672928772777393389740929337663541261267556467445080301444120343378015354462916891473887825290974170215061554549090511300910465361306075541553149391084433346665816467859435246421303359019922740080756453192642733751031567067625295842569332288620792884834327885160586136190630162231535200026823468720812639551992061476987737410069976982261756096108958483471448333932321605451823394333280230732454712419391091179228611374344633061625632264043634925282134297126466208349726229967863150225696700914842702186510025052107707093255564578487294790517504815774883266040372704713852002792878521486512808646177965041264548560073658248783634751209406337234000945884643021609103920649515932709634415804149838200065212041734850446005114766408551296365686026028159151852707650968634983339139260903158734516288343398260758539497037849324623090774680713388684260199842664167193735156249089502652029054524346060400671673865826314148699158390240092174496131437639339979820199545053969686992512224605604670903724202380002167703604355746464080437634246464875913116206185975831387163753839506560736575940167621485242515334726373369755089185108468777304027051613598813166070263582349610842790774342930604191262799371721120628259415452119404717769695051503624968782695448809222909054633380309982131803092853763634234202462502876471174332028890647053224601699276168740732433770980172650830435701671246452856440823404152154564206939625260316517279961710609739584772733734381618431595315743413847842691954290192168403873823603696169267109065061382437956876301423980317153996520462727406341124869125411942548258367028409224722075418706721191444356425843283456338545480203262202310118905508993354695571407743673587759961923519255735731088582952344420337562403803861888449426073071670465037142242664217789766505021215835671077741964020768444955354606219090343788052198096138795923120077574187035266329316626863601675770067490214597898798605621298916864168335612204003649024304859740831536329455744629076065761986703128538359372387182244462694343615790124012905671008514488764096894312029482650031774135911227746985703719762871418855207133500182491527442571232581873155565860202965811181361559282882864952213406084784449734671254244221056632460189327995986147298445674327407655656320813507837985235175499146867185874491752052994160793859106471642436803147135258343034229966393938636165099291377985695111350019469362393422590191403526152900420934434903983259599566452203773649727608843528431835722484246111506476297347471120840003648016961502930642356806349729470809102176562834581150168609063376229379596208780694551790082885103898823516326089979085425211092204808119380509004510122170658005871904105139192287790555190764636221832385879306360675282754474064056777960108936975816124669129339854084620445380918423079745228170474949792387436796111456725499771728981462376552982501207066083329540762791142835869664571122873862294748317585864726090130883416158640581922460729812680532160622306090634096931568701810993352928287830524721762428288231398894260824459287022269491965731642898347289060430840925504403162961432237022291636940835383722819830291966939830780572707330906974822961920799152806205587543525154487288814100348741008393395812699520502986423917872210885484817558491141664579908123945617979453866833627483405629429452101821670101997391916829795638473933214549237634825884440616012031065018623859659267598814948383419811933895123398486323535455013462872115252024286509801374662139803845539048711002684421829426274306740159552597823114975785641406651456151393814223930437059395324593540601973409556479393095888128404876555578134678249847619004228484676184604083449895759517897933005248636385676662376578532578649848312592490714378827482768774680946009919955133797264471006932348679847127117363212195558628222380502586570078564337432952585080729227420936995878552284949938954866242687072032346135226796783066786087539756795736564067152807422730155662537962565456347297861091038492965812063950463699577306494003664357129478076129875299378898518853827768808475596594686045047725199746029349358513101336729059894835211577428289339816212314705319600792322592877354751981818503991114063043822574696763580482514421425260747511062345759074024495713131720085859582450466869513417485968987652398228836342385370096554283686582869824347272145790170338966365235024271437714059450324855428555725307320261588241161132394599620295322141365523796798147625723447286894206056468249425947009852216129681037828851087167111500251761954171142380159488858647921136031997355871161127869184044346682496836558302612767751129151453764674470946436870367804273932654588876920826191821498709088151151760062488695673554768565897451276802881064434062780151102948198847161581986895117425280375370423232395903602165657137970888592567936408524489529970384027075571638884404004989621083532190275210596098035198118216598159479746690401177768011093092175014329101586688311521427116274588735486043472123388683684203550240985915202842746058612302807298578692502337147260815958589529220092896772232696171935876117927223148569449860369206351705088063831525152706598696180189016181481758071010401126001604973819123405609486306584277095231532318147612910182692536386924118851581436225029302740072298396185403212497107786334992024949343951122988202940174960651314409743389671167420181685934739493060562373956106939607485952114181255886916776062338598836942859742346831132245568854716943615370902768287623720858963146119267218309869132491297515239803924025363735625490580262186277836416388356227698980816695961997778307703878240252642959862586741212846075103015059130358574029983869498631879348005909796918167515319318288584068157882013783425824878067072369151191638118517634671805095950733291532914656670057815251653927752579476285613722973123941726352162373407901849549838755464721502601128419412576573926353455949378597179206804334457729062425543937256076133565741751412921446432859369552628348170830766041841477257764340695193708656713774204818099056258846890346285987960763331307375196723662226973412640949133400534899876139667373491820565794815086588035679538728359499629574068252856292409459860721686917231978071024218459879627492242353580402635130223161738414452233090081500949943176659321112180020058334460116859360270558559293129221129090027349252294558449444803057495062343366075597582384739257112266044313771057460842155939573104113318598818786402750856595576478345728734278735419182990306224644723189623247161215333949032000287488275660054255764502476785469138753945658705674937189216122793912221581699559992823273698607856517174112944430698819580663533148033604075428151655275574555698397527938325947451458401578979034126465568406194740234161152352998826059411900923343747256325785413208411104314521541532996374376826917908549321343303914135299206106453228810931503376387374666346620958052774906626182712200240568506753325978561346096508090468782176224930581804905669922319547246743122759622739473165262423956865234053602953017769879820248370344242645256861072249417423118827392536761646568242680248663761327438310456326541234638937720224715759921376501609806837108147692927808389587890689913341332545117117490543118026891961982218535526827931019229224686267449066042828774144913822664278248385143209354645025775128227748143935965005915906432879414836217657275911266853682818007741573619014604989890421554263874786650322490126023965889720396090872042116760618875231660456081271693548496043793965502301848840088161097708644331067859536320769711808942962863444452423806781228532000608759008975009077988728525358302890791747488142936560967064695159405135708098137506484488698526357614910200434925687691658248642801821559603800580293351464487221921900710970468004466141443299580700781283671765114926730916260167719762524513372655028765363895729392348631859761322018674642465045014342648289040975045713361301144456339638748137481113213365493640242682519115040009784292029294730847658093021534113462142519643633523372174574665216058721435076841046715838784120626590602552032009860827432280254254929402098207036526310087923490737650096136135685295346109360215110960692418042069303113197717708684169285880312172015466793983743117280590913374876484637145780151305354127073811364544408480147385121033470923139192731657977875793627476355465027069730060004681906446364449818767708300891572074482631540965389718215039435290219831480129559028927086816987023593878734296699572729338956424475946748779412636729257560964160998157931830526570935363522184471202402833715001267568571942095236420543062024145644332344548169782661722967842684791804131240900878041386718140150621536286351771283656717242090510023505639892515125522672429524296820039422894549034073052861592456495361374830273965311251360119967134421164466177802323831164347399965827140087900923333169340254163040849084014947109829704561934953880220042833904296562919553093738480922716080613568472618562505952727641756726431506476061979212244231809508663779952830770914323084244306715744327389740187002090586833701904816939430813532606679416440762792723963559751190858380838382366239180113539026206552586212054781605577978314873464141933236727212909391134439272564523320566932366899893780780342862516492905008812793037089425763915372215546028426048077845084643416003283985914051355491404126460325748174134252241445591968636783504720403602038557297209183843294563640491355562293666184473939175452882976084893849667574162656490563382880957973914305998162280061355973740612481171401595887021602216940235068912234618994591801794564178138085614917228597491117465884691456472261174918290637150336928268907812618339901493614696818381827161127108149832949926695238884087504346890953827277337128943912382036848485848863928842043833776482752847685143234358466787319428306133819406978824931563244928253277766965742757896640271954850567327732108159945191229238415662582965947031514731399606920171650829159321182038300020974420342195980266697275672681485095853769314806902406029711724091575571078045283783173656742078200034765798395960306146707913597679370554085347606849427772295046592646862128184128469737736652362274434918081447238408980775471104843136302643865772013578962101531303802862664375107969639147302531218217923849849080354041291247499834884741905561060321087350022327620378686131713878100864997460946981237738257167233623737023481466886744016658024969229537390292259404844038132419746140399457988631120414644775600353158370089122745946107911274682375028759523068988509992841684723508255104221859231970991498590329423795533608805055505156029646603998804802857418715509587292356658237086624533535971887934780001336705219754284953505005981442270995500569141082268184215024238176402892883679739668957095625138807016338439592536547086511473728068554620784212861045546964663425128327964580634899044554515776036365410998992015645070513860813601118292145023511787035892650628140396212612485112939337419314150727697640318867041085969290355809141504205820227030248408378261642195774420123782674265701495423772837475908016563037464462075652011035562518289435365466016546546160674813083354029810154108735388547897880541905198759230613830216544684910001765130167319712300769693822137261566473188457431413910440836412224760458511239066628507570303509172105053549444007233900049883505327791047934619660884752201156776111504756895454585957462807870846999355116893856721574194204420656150077676952089403152882329378429470595558109343026539684751522155132322112419823630177597048915112035814575372515165861050373815367329663017749464951721090453028513658539927583793871268678229122011118092296029248693118415899882163938243577482500465615259160046306673262305883425232358846569849664303361820320869270189366409544552530830686608199464451910729993481658989693537437388415890268332572851599341976832163340185226165612566985874389165816388219755828205900454612026489103761217044241259950927264619898695906866207351912505720919738170382070201804231067882395222374725735393514838823966770217888052746078573544363444612367787305108049935343641730491303911906777934428506556269259158896832917332215247657227056967853058814368598524454063527886950692796244783485788898078515845318890743207616834276742224402598639686610527500445813374694916737682380117527614960517312894181112661769115570547052481541604586845232369209490042878153348237314508378439870065897977641526960307705828233767225931413905422240427444299327089324360725326160398456142912209462262178894093651880750926497579990721057614862189365012183065084683908003042592739471976925438235808759239669429769943312494762236297044972428229740930238150065092344973861653507679029130882007347300550509631526659109166277071953535280052711630484666279631021293333475173234837765051909727630715286772317132328474705367015015437322881076979125362492121040910412327497247260767314792973915953313623604877210349747960686305849060416728085626810226757404545217480040095516414388311304374521704422078435212505625569016920604778927738224987056500703596191799573425252444687362503105939847378999614670524524754917879055670448453676693481117236355211577364745359325681708230217420404238954656768613378728040375808320696234249780226683529261352336925696843677145359768294451275785602449734651841652973374111449726690416711723328943897640338875311184879730166996997778550800513341675672459155939599711685199670648567046918842282509675325175662182623255938923146687615666811641037362341523909915496885125190539191854439540539939626662785014453962435654261993241427712369198098849513807897422543924043713475588167756981044813619923789745617683358913134159075304373349161218495425996805005204944687341734426995446667859854925871343442402642911039604173681937371579965346321337406113033546347881830385004101065239328032112400187837674889771344921272923399668607999946646992461943494629415866924719894295641539234632554160686593535102846104570484892988856840546096482770042098746567172902775114627449421341779788227890923396972437101945683103260471433957963427824553014231792579359914790303775741014519047528072244797570684462602707437766205950206210534552723086468789254251305731586053158183121046672799191553644041685152589932204175686689474529933339603292023895552306249147470652093969528982575989148126222682009375211436165160349545731788309469549487705821758547572105243435359570588975515864080747625551154870357218482281067681477666718184965226477610390167734300006166588474024366324028041973698010115861833889746051708188349674365565276656811687069653973248859395220962810147384693941496822187477073503148042123411987280549877474262217201853077337336945244653122694155085441857833755421320686737060808071222281284876613201220235024582550960208827409585602163041810925764444026651315922475640324373003320251613350554469321795904255193829422735120895819536648954525814561903750536830588904583220005543632867035652163217255473253910672091217227538862808344595689459146240280872668690879459113297284067509708948984450057440593159929130478216122879671365802232062911772018633210530497605844483437094695793495313879074910023775026901223935993506975127802036374692236383585354618090586708746275058606012772993842233323875861015068843660542732079602256261341398916653755227435072356453878223509564935852652344846132393824129065931468721614921755631879111544773423446267983941114149082001208865873455158847466631758300309143251252878905605595926824779111192103260740446728497664743743484974163416029932904018083304718107416250694285340206895559772641324958467107333590945878416667394651533144935292204503459054081278060298663512441233137560227540653758762101799481208835786386115127501517467298922039040829430002802089709261161695273731102769080662978719629378404912532099975126999480166730318735655385825874337062407260533851245868491872895682854042726860266293105012876708666584303251616495077339307778297367695420136298292247231241140887653002967385855969132599388640113574849133276948687130195301154227477635906592805705361420164659086172227047954807567822848391131218068416736131735484429116986024501623716813345770631380370243795810464024383133955297714843336836872822173160258950529797532840510522543665800448603255283880248457950865640189660942977339671550475852149027151041480533132770482675473699464911897308349178461207615560092844796955008145763570415931138341977820877361956306766924397178605780590492595760591081677815035451568510687264111903307800071159112210877036590598397746384743361878080891352732641323999524449993000488055636521527167804082873330913675622149208594116264616308729434168436385614177704538994000152812530257320411497067551740197342019752792197922901768257453040066856089786269434655874777920192820387134793109939885211716724709708565362805414201320019016738581033061675706860465669885745503886156202190473615284804280910969552521338843400987476048041273379466861913453744005734458036653136957412613722734571358376793319740167504241666319279639408289258721306395989785636411585366747209805765845273269880327484225570803951802719513117128883181122253059875515566727982355049539009870721989349980225402543081766049846230654581765432356713846946637838854961259088945474292305027094791994887766482409518739245188248845562686652496858874036592851351332797472868115602214504310434901483279662920709924415990456068614223239009160625272824728733598863662358115828803347197981817621483345815422678246596241378899521536303072654829701655095954486975837624433314835467019276975536390723819231603619756219135333647537469409915175382480833712972058943241079149940614822467169780654205361865631454272582280972647560034565987790642017727215048715673311090911728285173060674753651962808785845805972984610554150759480811560084054770654251948194865950034279000680458000686041796286447431176425198405200738920561006547479164427106797812121605782918350320020148805333583019701345177200918063249488528405339487621956398009436864514640115349530719472577565069082989109891195594302232732404111844160164672391940264112677161779805154038257158717774939191414961339687469693973568437410315246197427500138410674805049950304220712416545760699934532301896080603594629964404735989125793485147177687907423300129097397149636367202514025116300645953390618897487206484548698647971722843085069716026333911475605284208361319335971275145072612276047067126590197414687170835835459560586315450367688630889395843687244789374646066197691227096242476638903376044179415791047781193383462991786825771015556225877218620390599147569872401256104489287483731649943606951455227718414580763484992456964139648732721435725105045757911407041550420771761203896022958054877923839951056320180279809559841415869116149791302598841347295604410514740763777754608620815166711548457275244209817728657404830071683404026822566193679248222953257915365923873921644836600587047706574230946235757499167668160808873983029673193078157506498771220928646475512688113387498339417591317090932940834166695713991046567896589312980990247914044914151255563202555329844501981908838800920151088563223123676720422046852614914536001657581706889463165306531877247861076974840695125426970517109102489599626060595086320333306491296970551880731585838053684261744541163459711465984458559444054206532313360007298760621954945989600154284200056674276336882450490038898066116089531318037373172172662933640855706879524301551802317139413108158004287951614226443651050247155286549828942627167538472714645394770752222641458795133212990984576473260647742160283197168492615837967221159935575843438777635753560336643962990097700131087101042986296252907920019748743452944732123882389517175091387367015735450064148988810386999440186818657686372826717206871172330205842161400079944706191381169240685301388556485590816670111645234988422331228333156650320573697537554401931166824848734793240370274581393196467924051202483292597606158464560943063064653287659318196626500118806058455466612645372312700815759478816187704480816497504391516023024587094892953258322925948040945130831128925953108664162651449982929330689606223300820669881646407848538926219105490508490685125221959397820820286693571310117066834906621830340147160215931133675788078055800425944395213506863187170110243099515831260375846026605124698852949319415611614261870339162124507605105042699804286509009215086144112138152010069122746509615632382025923328120415970176021877483091306863612588452926885701919761044382641642244244910066856295291259887981836159779090210667143578403507607375396287353811455099830965421849089218345650643005391372979744190898404834685674569568178579835942018532998265153297426821033747946136090376536483303985789269586960485103195345615202531379598269390616537324904019850683553944569788749934538135856857006626488961337789167639765327868807548641129371409198244270188791284611952228419190884540975460634726292092649291118055462950618781181898710705411196685534485591696543523255391200408563277395551160685197291195012017321603725209992256683452734053295753285417352455419993407220095964170711908325580819816749285521268455055883049756621307354093279729939544740595544756844327427243055259244808964926215131769734435142228885277046362300165980843235688790066626963882183642995875775644889062644046366617429211879076457508075665471644464786928427380100982338274766523432275992930731576391786858536833976734810750580296495369173923821034406268404096305304031977707428597346152731626450536237913700411112549822553939737189968375774227517847145952391962972325552371673316467296824425486693598546886261156717220552511066848505583582507219298763296365167869228186811692462832836820366893770304459238433080628599520070636292420556009931083148837098251084823278925641408931508963360269727730559645797569153266322518691473478860914994841924114087166325130528152860121148088873622316111475506435056883575407001938571284934922386684255111677932107225519919594994337507516690746429156008219006002252600970845838363305718097867843441506179221588214353735274713834669181360688823930921081032213581864130274694894026893357931346746128301932833090294271568636960100673504329929540888366896583293774747598466504306113994110884024975061017075315411910477726673442827361181732408199472494920711275613503218252797766896482499021357375130950932500421715822093626362981668364725906797572434016089401964127057437367561258350740178109154281723415783714725645497377935455122271810344949397550485314573635245591746568087584654430469054695616085976822467984911734444816934101877720133709066995678288704012485264479120515101398611741245981102090868222790689119873867955457960046058352698961524262550588292197515261057065596330952857919203871012748647509630857318612655701780287888762892729221305147455763753986222092954241250100618479080017640861106712083140140429356163718089319883204774209555595521158943607621419601088889466453823232495528246938793788976319031855536228627930615101307267653583523517523471321268799168839726499853947904115580199224791191608065567831767041503144059915817896907634031775335056309111668525505859019072850239441689025739009448516227337658914499125599041809362353147014894920883680984903950746088242284245599896576362190802073076395719607173936466929486074304213500913691965944585796162361086818951222276913710936343762972396778906855048651593585529506032025574425536562594507536156101808897887814224835953874447236518619814439084674624762738263449502271342115931245352148393503254237555290915321915678848992352434767702891034830266344872194253742967926146231294893912649751431619712113205641976246378084765726091160685592941340994956771606089084409166209186647446195942139777525690573459802459415402459868096366230124364995601218104988907935005834167215099869987834472479994874931448362578263854158621110917568628528419779617137290092052241693398474962206560423549551308288525027057486961899727495143680652878813905828248342576474636998947790344309078979765450813556922606084071165730479066030994448589859076207204290283510144545604479051019951442075919602837570780982299541830860474499809339219661402203400659774158121442119954893938562990487138276651023366396383122824534146299722733731064413384165685942719874084643807806227463618053439307340466006898210627022358422039243158433442848378624114312559699293006276879259744043194215238656863489283222317445529184492393992973642318043371969188360278249473738126442684449079461765275374152082040559971199606565923435437335594867982684869703737183875848661811012448169998420757462793677913002837585442288770590838927889692099580719965960063339851415478674254642454761863985207829785291292705117366724016140152294568015345743701092789125102628008303905474366686322163091918430049987134162760828185381763445000970497653438655083639497117204820242193797786567217875253208119863360220272211800096881060095379152639953142147725354135025622922844471526988841986372933917177788563307959366441609759519357426716105145576109040189099500265660941749938844203049823565929092349834560005351255033463890459153380248814244868030164139967521647532852424132868480041910598668876943673156137327384936216091240743281981204326718033945996637449528201645985962473956671665828469433317425838816864971232432716202747737806808838705177349313968517423218082501453646366935744217168406434946757401839772347511649966242103181681427986506036740882965120918963628075952446567220349582957587457053286646298416195956035595229574656071339110718608957338230449548686070096642623050183683234705063578152841408892255203707190403001619910798150393350807646499415539995979405482957656337549369889301590961763362374308264867985260785429363993841174025032753258524593617719202852248021397622243984705231122759158837642917085224068469834570802349851114149820012019643592242723179143059287328649897250029541897069845903418479245824242533563851479646352568025642907942075546745564785254738483429780057334888814191865210044539269647547974790925988804427997086240950571134831063772363802218257972699645918437570552137973827468919555371674068118014818554609937303185469523910116205866945140500025706143517381175217397483588440176023651107685972685581996486779830978956006977946019175264861070379340364352575364590001992889478960527369364006350753198898874703919296657580979946122259700873505252871354320225830258902443773887966994592295075436956215358842495054054637986439894301046799573368066970567224831782885620968730354177396724581943749317867383789434551454078908295883707838433673705807166550251097415386242299136540136820697175413718783972787346011256829744731573802462442158536193991548023360181519678172693779797404840450169049183532358228516302571591579095388533547765145333355330705011739336950338438347457394336670470516963107515089682152640917514935344057837035508734670898198062257257885218398418561712637865058343731517320073356841569956576802638365141138787311675805742708345033781454207832325763229022492983261176732850690858848302287394378710553080214902124695893375046034213949830481576246181086200940301301743200777899885110032793896357059298131543516551321559223404842568829696280759817304276593837431946804495374352277078178576995093308483544188897320002214481417921038654409480294272320057569530832524984130437825708767063255549595358515864803135962690402310115179327180606410386945972444059166534325477252223640036078604516562300186571743085708990652620300686617139440047322195636527728752876197401703628013544503354664185018311639014061353656864524398713664693840545167118505763202491688434141561424413753935345007233924039793670755203579594056261417619042260560612511808057297606837105872259859928602966316966843731338411852783992960525989333043900897154626238277599086591895782993620378445753842606595868312753326140203408864896539835822404853223804470706266789250522707420682317216505847168849718712580257842687668765092022950417658151700578497201554362523708318936700479780019745744233246543809301924239463112261170696162312246972832188513216291905296270093288634068508564649279660027530654566545863696003508586826924247460390658408722577099922427341840314734468910898941510391005304989892927463491163427395087677177059137524858277764242032912146521039941955992434341326821020192212964714306456740262225334736929645653027666595802814842406186330190814575622378031676601424768340819672257268777527646011646646981068421373910340523932756927598746132249216407047542403062320942122618882031908483833185753027998724805659513849722585865848696232031795059245280064799323433060921193982893442144030803871922777693996816067578648587490827391593996113918590319619053206574076832310355052805135709739107955221710495438512109977791106494450161604324742427188425474615800079429402361722323067777235720836865712986881877392177192036261417588402512857814803414588024505909022127196945079482243090282180234075174227421130832931416734018096007523790765810497050465702077427000449807820574537370610682144808840578991637117606409735066964531211300065057089189373385325094804871006188151927922769146087539794643505036743731076548269166962163805343490391814971851529569057707289677486286999916552282001768141247509506820488043955445950915341189306486371573696338258635548955339243016268240066791386558625602234455050169559912629129944230707819288172501455742874750739461172892977030030399980345972167384355415268330841629272295571341809345461616373389991957990882180120132801493670466417425007834687503450002603632487038151204801173392058254001619685065546843635004463237980031082129042932946510569117236042774807770409081601629263078756492656984166288771793591950968290081575375835246116997193126111363568137185075512209025709537952802452064809938879250090134576027520934922971663357737073699083115146422425309754423802164032100131243561827068696249878015626519346679444897605005675215364403966198791067146542130238995285771418619919156336581132768360556885241018568542087330228903048926450281306014095499986671675435121979924713522392398741167646941109797222119694085654875251372652207676374147976495217099293918803229339571867763790885331285009783806052508415937776768387787738199477577108767029214519151353182777975425105079455825225596103667513610495323990186231395532081152271519580816701546006295519336423730355369244544984873020441316202469629867011655229895918011258405932809060399240642515937459003301578745110085126940309174941690907042389972284768460143543179186602235231114902602348561421360771727801907455824913493816782236193865540304447402835984895662972816809251765143560374655519614063093837355201696382473832675452299008126962723556515689847990801365202311301357350861417368578330497319113301838399971074914062911848844446566196406178879414179148666530558753995241042956928981112106142124884240289431504105153673873765582906845252197895816440740596718823866273407981142257726691759761241290373704061949752520866297715562241306244485064636300548702877257884255758428394109614866467079678138473394673586171505725265629215999938542525022670515325002523975373815456847411827292962413838626851364883483499819823601019719859915966887305583735170965991660545558569555592468774995325237609565955883217836403454949277978463531845188253736416695486980513939550978332039742870871705747558314112130403525761943093647912439728847814661178403825897899086217687034193882033939929589438083535173610296663103246615567736578374902893620941928895692446604298622355685627422536828678646818624198960978174962734945414459105803994745102761300346856819983154156485969496084873059422124077621817174125179483421120461281076968954291994823971753794101542905425130090691879950202575220490572138761765586787627454576593948999935533180896421071964919683115128479722600068501333081471980882783099618123050974652152883584804843030630612236605678624510754714931716762471000850370689243542331024363031381279954522315284145248021383527039921240189675291451761142613337819975117922870382835082688221115977705203075172127545266701731801333132805785974640939562644088493292208708578193210681473838335157674963086613228494442028908540497075626128498377883161727580592152461606161693062268325844695723953835605273954341194603486835907834768189553229449996167866369470163442596661138440404481666244395806312066428282001181036893282731291167442343761669331169270728240386642788483827519582055204836745949706210862397413261237039950772706316616838001713725496479639061152706967983970582051095494573139981175649159386127303271484583843096358858479051356406488040395560089776075948872508357234602766024072979611066029443615836252948827535003249878440041946934605510301544792783811773441246521237334450769001996882174660861735615193350802515442900917163539343044090814803846502842979679947044027677243534592798522841173640868094198379382821442009256915157672232831974969168705348809854306652288214944445524512136447743740605753560312421262306135237887725187723460098455821727516203003435069403229393177079838637619094871445005591339648219026507207093732105856298877381112219024285310698846281898050914969455805548678139614447603047873290969640166636410839934689653062928998850942641426939773176463199241170926891222883786251556765003339214441127286474536666624574583850000903508461351283468188745554705690662945257699866909257588420789981428422486817278170778542213998937960773693308026564032563677341002211048570590192412356106843231289145449977599109106222295587336115450147841421922684975644161184774752539086457863162788877848923510510863806128909095055357532081053166567830313448250771687991271158229603610596234805218422285486052524290053186005310489191353046919275447772394650531155723545616728762682816413082465333982193389895929986577479386367216293988669645337332245972306874066468018655704567913128373753519049270468743397179628007946432494469593862248457915390304368094072596112256287004713204960873728954990683111872860004512816011584585263075405296726280410607165105472820395277385165674439345492459675504218993558277694118844722280862433861375794663288355035941324134996679029382516121777907378855060985894328667997308987220367048652423936161563267456686282213195829527448889528720377010573352816707925337091792267596967312676873631181207650411026959367548559354394175166388123034237617175102930618141473495135103399964258571041963622090645091111611747046544444721705022441542994546174298973274620497249644122053332977651274969446275387038777607238754531142330067029622189965557915174465012544091735680176088223053929111766906535036916668443464712211443789835371919965579879249086775839367481278980237420308251409522694950475334807507996210025565924829816329046958280916240590845811798513962162810791901564415366404511786475490877220393363178016495504618927507906110062955578034496257371525846567762489098429375221293490904324262671332444042345050911328774113460558719395152227952351871998284119646022161862176498469658096607505007138821094120776533840209372091911101623932389580325285586683569149218471120548452856370047130018025993118744730514246641610632816950254407496311740012243637291003421015033730292077203454856688682744477869716095976822330636189511738797226808381740930258644116949587340345993209374204675416700681254743213396506419862639564785024639227898676333087181184659500023658304623920443663816661689262965021177798874366358101704390788683577286897895301693754660774283718845258758351676686197249462774549909088153782976331525578689348603417017220245292487514459150110950159654478592190705453719906615036893297161612877729763835464799131461485417815590505833994896690488526949978671637917319124529707297590244378790728974070009548910561586813794415579744829080781551084521436834926563099739655688046362100168432909391659579088398162897310496981223857706193902377052864855152917640827822028214999502512820804948326445173788825435257178143967703186921592390038049390614078412104165407911692614776463624811418907930435836012783765484026625385321063464332234503599989079229428393107607969845565874286496173064402521768865893393742967358308389805059723520467122613329541205415046261903723546026057407918229841236521604043070797119215026330652801464725122657773392085253917911861259536563179684233988624510101255092693970809797108583221586264936701036277447281410542829792228271908294764937697264635619597228981646654470752403685362065683649602736552415289236223485923022693767973456631892840848999820263507513112018245251842879976227963868470705902127551385010640582697190248508434958229677629135617406971151472173256107158319794520497896822957097097680294031464603595214060192849244245118590888882025282213737880458601782703522296109087579362604231231914376397929691398866102843162217921169670355624032280846859788494140223009424169576170184687670069176338700300338162074168549303948607352632768626909602288787004774297361910314519310161164206093213220281492335110575269078999640975866801974727276970933590642511781210577797930143815566273490733232632525545904030562952204329747925892165173973496461456719300874896769637109050317472269992540799659520559213969399366161474453317088227191532743871170886810677173332563026075222865371176461360131884229023035719515628130243173577453159066814960402188884344146255840754476464258068105840963672725338905100179227702409580199999339407333926462062171091746796851833782587134917674654372926342709141174335863475084265073519207683231242980753587487485654224744783555504531787974140158387608871997481600276751798923816129258598529368619520441256725831346618736648957974709525293454653713877462429758253829614811496197769343093082564140566536198439468425622567862247581952073825746745968842812725922226638607359672045177998734918858063798921960356612930672817951252224188862187217656710587222005728512441957503703275923791167847089410220435208894231366630727763142324396748838420981048315381590244875174087726897556174275405262182929275609640711436626131599825799343759447083233866209909157593698930921300991049293648415360991518604531088946628861899551740203175658805120628474703895985198568169135773358527291525165081030535085147201363678191622291418104903068635238710118473716074302143357089601293878378127586382455574060783353271873513121549396235423411525922958567533925656165828716021532012488148049649899753075650915544564109681935025307651508634532855371853996404475712428283859213286775242418486737453647279383095560495677068247967991039150078388806199943116046436317705179278831017993659529553791652206621004833029634008041606878124566316074556335312091059197025609503842863048309560699843028144811806315963345702889113671603662095046722602501309970264275655184845846195696481090861697604615711542171809054134219270132248078005472873831512201968726270331409368170946286003725109057441471580370497767256327736232508482904127003932860783726113040071596107399030244805898581473996772813454801243616238321747753070589214591289133524552781763753898632630456416608280393931656467888873901915320377582286350651178175810082728288097076951362877246068498221032466422509772950939070446799721427939381179996000078176686007230800529199951774218081700342986042292748941886638739060593519346931726454845939716638859175951765389491555235193721472157939327216368037564608510313969650424156638705658599336563549788885394443996210163002982337897024646736527474913679943926111459927661021867857007859015510132343020713942173442577216086328906657907062302008086397258684607784407292356092280263301676174256319872860772854970800471569685601516320686294155783405854998779708370768056146061822648524044919264745031263427566605968494540995588835832880353168042142108532498488596231528504993490204798191884445988203223097363436240737633468744022972766865221915518518669599149358642473245179505082070790301567390933957389540234942152562966978268446033483472831019366920624917635752632369460242283983279402391383234554651809796118274871164394994392793464352797750303880812127877571476462022305998841471882125757701776098897986571179626469934647115558452175251671971013994197255301558296601703132679376773379336441767587280928263145098890142415805439004906321820217378691649046681446691858710827096100138685075649750923110754631715744951637670317628745261432362053984117889611515423206369681143468705228938157906230530854053914650061296954020433087780920311517783147874338925573531982623990136222217546122426161643919773193642803033344428432130222734726972292020167166541118934304507846460945093970789088307647236209247610773304381763245341038563361508295390504029853352046726293801930977016974001599543910982810003425035204187372241536098578892690451067354338247708242777984109001372775074797239744052449797063255722282066502320494210634312730475020726045065039373762310906427637496918124615698418933070515721454232132117018400786517469503896323882705074060251824670550740056300780359435945942837579340679382047312518517044838020498591430514224205310568235539363541577481813163618093487462018929520609708783245330550591305049823872770309656142873981690292971079033421219946268373290545898523519209833222762046565783974429153558949042888328445159764711076217129078918213909420111351406622216952672722433382434551007658095119432597847307313212616640484203259326488193272788186697578134191008116287016124286656162420225716206086549384932337654290656175940843413968535286777739037049540794067037272510171239194756288231912844577014049268159872557660404116509840066566574614819222271553160425654381185287313213275295656725934814102565628554788807766285307308294474978177608491037010303717270757858158921427840495899902307067969981870965418117231515430924596421639485597482362792667748316162525277274684681738716124209437860787630746017760380898041181740043957153536116984174976997989024029952262948206902281616922091077023119383684032746366967241698118808636540448040365528759281279899086125149110231717465061252547490051151892046566509673412673459177600747673667331507851185640624653921730255924536788772342938301980682230613600022820336711854221290679295063301327618079010494180743475483510435746375877841557820198396649412820102493530508855237058859132887666091333984771059493168528617609142425787925133200286127767662219928910170401593840532522949747228661040773957346285669193866570040446307615028329952031418791420927451656452940955549388054618638991646851747707997718454835155741140330635431071624171599322865984145828191022867075964661549396479503789874040234916914326911484182337369445113420278102625952158659113423852301243549936486070912937759384060530139567653879029767197801050247611340666713364380967215519230024575335700611950378494266093880591356656693492392060425345057775725313502583891326097449729955484947729130629150905013994337897818949418612592338826648193798336113144914298964145325268397158340808705427488867901647201340314626596627543144029115404687445378076380691532411670324755657338432841720659816656723461839511737425395040710083488332701795420822555701703536727347432650106161351780213422579544396469747665111894179526579236145533987041234643036469084611924569328631233184766280477579331203256482839265658578258781271943816031071144622140917051547784724823672594910664651688168241855650351563040811574341575655059627722899056046240576843689386018694672820347742902666284961245522957975350293135459834706088345996022549851619399635954764311712678944897178120215579853707133198627268970489618273239663524554681682330044061068284382070899869493922604692450099916041051069449793806390646223587835121342130631241186516851909062226418975950022441818228451281049103045577868052908422975838386440846693152330706929304524416706098986641578720031797164434118861284260633976538261917687671811036353015064932135921227806968543778321087375196221657138242654866901050377581697517410275554147086789674550337915704654289226209544234437017679396451031331738812077027448899248009711378092968537137351644435186914179061668944978716406399959974363394937370566206324510436914546168985069665010608957330706409336998596879467302991431337386861601428676877193623025889226391506815874158366589143447436491149883217606140651001796732695844722391372353020414495111302116934271652464456306217049129479768509148751345065818469330710130788085178031754837191490061688759425271124074725242561497841066530894018072609063721140572347589336844833860281847936171431215655008977691238302160299069711932376386001247217105031978356195251959158890151480080856057720424164446592302430300525133586166855839623379190873432678804848801980731492761232532794061781328791134687497803353052948187801587746628137481772988943188727241458023242993120525064028292921715805392676797428512880828714403038175750820414963523911933353855102312235796096105935327411445327610870193541164499460264625468304529717857022371894932853278512489501123518959050472668689211243146991612121554972952140155350234948706334319060411438276627814323173224839325775274568657048597552262491101162730784031102231922081452673798706001932239213613737761357631268994601570162657370221874127955756912687314620506113597785925861601191756917373181492909304280873927158945043158974639289519756428305503805982963839312945613162491795138550529082521046141983142816755181934089532637732315438205566593422545328309429985026370089508761644684869160488282335785204074561220891372643154051360776104452086211189202323690526097009741626673284389134139140229936638646401239156613963417972515086023311784137504800192330248851494819303602624145739757552439323550654926121491985406504284195345178564188632982925378813483895240767141579372291416821294887414053692193829406571505107053209877949652919952443674138455241136803674501990170810256802437871238767045219289723302861196812154790459649942991585678335919334079675056548795467381740668783175128704391534620829417363070114117989380707116676958984898915925690803190120886516944001716000902968084729175828672682289398213672040664759856408349731818079934514227400709208472251184920599687232095318223796982405672327124860501199426289909489163929564197460723522308459517693183352497088793823605187051944016863921797308188306951318877547873666033182010377813235188924931149929258892239494286623586504092583555924709983191944192374712481113699324732179764146728683057476095836658678296379309297329586034478860370880949332614845707664167380832637905654582998684372265022024090460680541473186236133121975611732928637515619947698842340930850341773102466844766575254740714921387806959467074595797628060022615780780905449289527831229367062841383280098970599205856566626964128723614472960292278596822297973170901831603923686819518979909582546571070018472706592823999085488037753071123412058609869485492862671156908771589124351212545403914928066233881208011133483691155377725591628087300588956519845852795263683147353699994669533963506893893187794667074624454657975422692984489389509501708669428548183126738267112723526043418599690025589369811354770159878726689700982095117213959085070531665375625391338395349214752739265921636512163287062772346743546062250440937556166345809590875240421673494157558558839703920467558386081554647472711837589784351690534833826248562910484150196401384135858271371699440753075250049897825235681098963589778840688954757897375559137135858282485824037585544298832022726702229965232576891971456632172459693062511442736545256587349398905249005931475255047753406656492777618374675207309687431492355123860153621189250123680494682714882053933149809287813265405822485986122187299904169907748288020556687645150810672968210851415693324543328144230370693644437992473066672992257089034800884364011475015571078988682505535485952347844601792214633049557431748492374201768548472786632548941456299676188309938515763084407145263498670124203802248867434055870493583456382277791551626671963924647365129813881303935663564809943734865686732903753348003921900973652689981576651311073780340236764567902159976279821357065422339004723205547122061963411252441949724964954833008794942610914671438861182902742332847089372464470583986175721303188418388955795753532635354895841979934505092615456486961179649281371160589668628508612495014136613076538754990850256296400674948891596100799409061987969052212937431353242175343613658155690310410322698768397392399346847543049628556724243110160383454727799728369393071150569775659867502571203683504614291562567934065754974267084596415181123303506826990729592288710627499582258629513698914598891833053021303469969986077710056703999439990147267812679808871504388995534876320153780205784806433843751829455712780775915813293832059798721795957429556218830247880539763424027009182778234644369217666157662741254153537582585790138532787954113079680393208159744012700095735632558650202285186178774198531690138496627210324519492070763864079049592439550129373861886068103826441669809637340253877380368075187293880884290468471392281060843156496801991241852690518133890122258210322895239389467509512778249490455472745527525333098278387921853830085620411405330956558309674347351178664571719997976969010640591150557194123224021385641446889621577879740089176296132741884814780827964351772581344764240317423693591329694706183663953452379759846598937671821839843657358806117069807741916939793979093734226606620938277644794442728454678257598273675058888946817653502856782883343991790607003335117341652702778554705523528554160056721580539107178008638702019261852594277539841645062359112746765087227386774626544734242349250147863463391013718102845242332566651890790392081376496722346228759600636638371628877379253731112749719697640212125590797822812511127895376457468594920143055449166067844457881770514852128788905269596257868923799655622277606550740430274756771006332878815554724036108723082000402217374884418723145279283142459544447300063698707808011706165593320123924823782968427645294959301201145514078484885279743966801881745489098167059224149077796578332052143295327270102783320691880571991698692783085121584524970795373905897094502601607773824160708927322998915617557337505639224503257244794049699484940951600464123108004448273486394344507656644643256194604320105038678955546146466546996685695082209566360923157063891782288766704227040551479756439558817798602095888849481996282858683781485660829246106332030962621158083005903749907574854757328862220089942250084679239554648688324127113083496619564417532806449416425479156798209193148437551238292540481617729428789091057420199487969279493867899359272053378688219508126387497063866373857618729681778314622654434916655485014208438512769725533689445700602148988238226340456140501358521628984026677440473377054290683484250253115231392165126727021722219948404651818889525772750387733560456404863248234751214342845128484834728184418131105124659904749464299565364163432867123654784714987078439538409320064448784219406194670759147483769830833830995775078189072096492800727003503152229006180864425571644547845890766446109931106915276357931759257766476066764246929223978089191833930449946685289220933464473379172925339373561986968024856027154599531903031495775021877338783255336533166315702785013851886362264379662756668514122479448804261013769863868498326833658335300292065369114108830840259237627075710090393273760655266612252646926875051660738119919679745879221983234197903959564301519541183642295945195667437039855359374601596756140975071803113800149320831154057773247663109968399989534780565108488899803718390379414628935302483558098434088961819964880915700350915847343855274745061925677293189633119434818211899612760722135800623041699754289958282626490900247069483801503288010251391370441974593522498214422765427678265535028414457974580097975974701643035276187793730299993318009318632391509625702615487513471661796111159810727584219730300797080446482718324401123073346354580341680650947645515928240671420647441485747277267868834367120238776738111019274136032565999181814221353407734617214713120463260489310197560172641143598906235205166524147005777458847923008391768235108523918350498068788128038931727200513520634911829050768893299584442704498755627125306748773442317594939184352888724318104976465058036448282739905661843556112705139032538559518656449009216251546159045363935018990524346937468328408376736043974981734694974231598274336642817030594895918888540091054838049280957013858403647671774889697755686823059085549240541357075386838952392224033977200525194591407661885995167742161492503457336618221831743884378619062766992677795805891271765761364129470756535993962090841129121454475280451354818287287184445994324801628365393316376482801743414045064761715364243913974609476811704339189952860237464930802629097327041388257979931219268971411066196393223135463306328087706171421563683322410952410429131108299574027833384400603325843366069123196133375671201316101581595763101274257822722156940350135776275604015412948131697277050533317762271927216605162716991495707762449993412101431411428097948665838059456814034448732648398904424752294874190773281622875727243278352403542617883624651071227945107133508544152806883424690528309836595576129162748884556265978939126478087923658982207945919833078861142467604888191210170268478886498113745872036464417235568878253556129885561140412556130068513212649664014639489524342371363067121676791195359858917453457057182792782714371921780323814808270440210847889543699668101716944946168164750990370450928600424686437972488304977552065661004898873030972847353830348987147971226774832365723665257533563954973366415993204905164316578464043574325995621414166641068472380400792452962361169271966690041545907945203074252026863146853388614394862927058312040902510379473004539291716519975269138372677891088536189581758219047162130013015767263289330134301427759362069387026080165946226700700116336858853697077708055335390665393508842765307543627060246106377818038804393999539225295638442539801685341260066250030561569745821305320984297169627339019072341421663830735061051786704347567375021938617418305709749154302051982839484734733089575261700783644310816373180754919513731339051090289432083065423108074691526157534683642314031389243774469540162503799145804545224145301634843989533842739809625836683977020717230682484687796220220279822996180919986486330522919351062034209621366556873848257020315214960660675647440194556140057493326851035004447837126069976112848410759948892434227554754007685799496265570769037245086874809743895690933433033889104208029741420069175248840441632718806740572295249594039395550775326385010692856943563943956677766863351906177334356614612297064965409889089639360618418100795592814570268600101835946923980446036700949234083307911409799288820834068371894418127653922957129460440674526838935378882940999755591677883003343922565404698524935757041599837964588753004305685347781110146191730212493875857416892805611489310220189010142491600650483394185099069866510371446044590385090504046541089416379759562481007242101103474039045370382150646331624259973360613812208748364992982197728371684428734414673076278203875316492202419742620652795537680342422388037436631235722374468320471419733455923479754981128318543288919323728025970216168639432004833476833171125894927873548891143211281746158029854610747593358390940045314154309177875318624323794101032096460375511666808122502648113254369092227203170462724099015246902435362573190082551982042905107645699712429228753482430163396521692456036888735652758712020696141878290308260902277495476383282135088495344931089151498627569506801439763109483700938617428066988645825965527893013395670383766933364978710585942560393548739518027663850544744687649230949960293096994074317543054841645459031255196702928638717014836981949203306683882486023490984404288462636965086848261122933370345104030908357497350575893311057756657590068906538910504057145067311341059135687219585125648519357277232326704479993855461699585324347449363883278381518477334811466332652572417878553283854445835143985581292197626401420748426433653664139880020484479139164946677374131843495406876553688804372184477852984115101061565372552622553230304935500859378218346393751939425457415149407241747145033961928330723081241962910800252830519384039507953185175211199836701750585052473385053061007171329326555908522880370837308000695183108855620360310897132886212648022183790233699205806156085396068645654935152564936625433903144146785551056830699143745718265700706317034732032886633264378010567245532659792273261342073991860954551001687469013685419617617439982102476751486591816520277028554165743468407342266988778796928963340366308809721317001583268608370775146198677823329298509589910229563592875544250895675050489474252854163647067706814982169006740420947215238074318724638623586945558940736389906517337960674142182491192222957100133347417225093982716178976885615621856170952139541628770029551407333056108569497065140313416129080931446540741840311989315114657462708500226278830953685784567858517468307495259567659808244209896194680295245390086166725035853407978820045402217123754719696758254689662197922453785638544029918269232320999167592883609426377350641005756289204008277978652137734197017175369576431843818524855779498943005390138815931755314363819646068903166691512984001554566126457362749311616799362181791580223492230650198889816418391285940804169562842204682522372422554566632917096139133175596856620465599925035090960878499702288045954343500823643663999543968155174547944143436720143842299793415274189408842791312096642693481821016322953905179751348940538487101854454116841998281102364833688983705346295562123034797341490018848513163773061051793959038481977793161969669272427606497380352687099749183614250966015821795889647335634321597616485393447345241719991713844802604772312201254892588972518937698704298661508016955136465546252011427218526550893013177076450788519849349359834554712224370501541973650301175893850383232712797072430981064322664750350167695676741777634492775181832882316048959080853950061576352222735674412239859408951235676335572669674167356394962494114501910397815143891248537510753352294065270565090746067812889036546499850993897550402065138355059140712697516862312350642158728762972677959011454245420772603498701173085046873355202630766586777072104802854622570006147909353855234914120058672352823589390066586910878620542467184837702526161004051218472158050238866809346982447834751368027953109967191218865309622878721699858391063957306768911772294927100309083524471218995747054832880650213900022808248071136917583707175689435379747013110009072816709406893754103305730223676579345021719872247012395870835444163128911638768774511421889676729672652255353788999852729106180018022249177399088160743432928902814136799693644403370319480980539318719957510075195292845329130220352983932615267544566199823504202602693990244371289267489658724311898143109553362293311845900909279782037621211095122081137441379039423705360980655723106867874041179987846020355702809555965772907618830907377756630249301550493999186411391114099258250592840539030265860736187205574006115872536274129435963737652756705204698939311427344800694477280944399954460482406770898344301432291648671947141254186114487664299845199830951038055560804117315047390501879427440885970511132940727178338699029786831321452377441943040496233638170064691528958993453058418456824401725426417322826385084924736967906459484260307202712729480361891650342928381278000822227714751386421466650540543288120488136444399632193481507525902555103277644785560405882492963612216632793886159482489759323962053190587990526047162881988446863183632663361575035761539726538879406049823930986962826204395543843634045269235547074104498836674548923452502743108733292036952111532974332182386528260612653059265598668877578898034705226177993783258626941290256583988545285773346056475841858065452873617585257576346970302562645917108479566368698995361787135612206738679966630715003337741166723070634440535779198507703437918104250259692374755220150468374322693380296679577427166401672482653759997901675210908178301822197493686402523099585995170763295496371069980407622885807866319266601289262689940621153821922101883507088237625044949315761304749775672074376018197510903049384696673809628688264308834456076163702486290059043297376548120536283042232035721859659828262996888400229145955154131050203347901272012694155428826804542165519846838184081981197557478613380546367262635394715979665763484990073110296583581965019662069612433990856442046022951938249252704208659436872347394980295777431679154149520986061556301425832793380159723514961878070450010321895839757586429469795576462282074037994854104421377559308092123829377662189695019851287255486692959775478557648912296684180964038274663565927209877990024569282417311668490697186176936245790373073511068751511819971793281843353612379976596216736349828956325966136626670120631941832362458849150521688586556261789821592121749562763354788865530830138778123785191971197519387248481808643724445232492227544195022410200270419163260911997672534489737897838369846527123645010277968230202142035877953477827548162061633717692390929133766034556210879698146219281608991918294798029057366501306585184809613102237047676683893580876780635507421619660198710266858818604171424508320389920604250760736896406299414996872639014988318295647074732454160935496012962281796805193875966671455878427669198502631966292055730070381663566509930668235974368275911647269039957574780138632105108990892207906655890793524261295487974456709723513481314064626378814914632614639063746063649724550136503563641489932961912534213238899550038217064903221345028422231443531723531155545117977478765056433740187173513187286202756113339369166242812590042689639276374361685551411460457259360060992479257291577904807326734508921963558444111378481075770114205601996642503627771847310925951878265026338546591229384068391523821230042772444082201587840793452368948568689450503910508145228599545198594405967245645738935849354030172222421477970260142775843822498653038259056021176784511751791719236596967188442645911941112727335676131094826292005183806740320925521704688941681811696612571316256391124567941874322126796923854648394482058808814633850238016440873785282163950275561693560209566932027657183942763326109997858772970563984256308586558188830080467925507830314364651980188432500207020988946665581008661574557466102161975787423067484623660468780004852808882002573863007426655844769646129031609217571715876370344352363577152790835918363947688719998768355836974253120976457463607420969811312515619818371501324031767760140335561830797420365880131209422982025681467767791015379232299796737670257443045254008163302614465254043921094503241784276733654725824983921525295197275050138857859600317023633648284411117014151057482589976890178415370295421178216986404554525535112938367204046065351167171897237910453151421418687185122267590586245643667571611553672095808326805917538247561097912955576516848111022554457672635465836560800854336820091520787472447052436305995042194395878987496799826247032472673141423835552176787004953318195415635551796893024149514547444338930401029968772725036627485805662645719251089060224982974394835353718955250182512489175278435866324779394181265114817537148809651172209573041022270507023835272465711598442285479356538004515956868811366722354842710145644564488761657266339035731842250570022850381847254716512899107283906819729295994314819515006126517459097928707679369547110404472485998898731204375878078341955545641102981019741579645370170656310445395487415656504227691597726007497597684900489942145788693129759761282945853161459746967467724133646089872567095229661136934661980107585123410082450050296460600378307856494558041608973174826947072839839241552452198598247226433995697357080683559684890369112041192410287550014549863997937676175741793689795990531607002658002681104640807563531659231068508725023464142682937143980161208415411268649981225954001165308207958829847947649775088883145912547482226744547854198227918434162664117083934411206340645001294182486461858960704696331746950830012760195039696083840450851864394410056953132422852695949779347041373038471679076940168010564792230187976985434725147650800347003138714423903443481669073905911679253099345826784921654847997631283649319746313662033529508443957883053185270349684501694073329801078478777481603842043145808335726026219930070421742357378424720839733869276210422058263669715675786190979635473389726869974428731310688068213078606882426163600478918285961618922494564596898316578665007660031859236815035186437487539311303520261740068919525861302717367034181379329971231445158155708256442027161086351727355305180728901643555224033269568208672862139306587777998997460406189691705024439782452742623181393900773081043840903534603652022184335352780821131071655305716014417115141350071177723413897936274063406498211238352134766893911796294918664739702540954880195251639785113990653261081587650274068300342768988767204093240211791276519086189066841210349941414660300674046575209335954648022570314075251701547128588654203799713334181160714817253798762491905494695153992923708215359008050576406433550666773782897299732339165438064386641630288970371281842411165611879514049481271688423328511833090694040116037709486968473092172750255893795152807906219556468567367254096542068373521864011280577988524050762081899699037850149589162016915907336914416082196296502325446818222206201677291358686679374870712174802307904174780248535798602697669151166583821786570496382981330214821337902985488466517291985084037626688071180559696910040279868188940006145738844773159185037328002316863102796080560398210356567715331792377912786344067372542847600604076388588176030675224271099307544525043580627650002424527742601154521540363122725369604257529773929961704097352170681581439551562270474370762343962394667603865086065041255280883452787286538166810680084460974582022885537011575236936732738440660367873206810800667536697794256649973234087598285478430385854199433047278236835446148764656889382459767485791001948015676330741029008864371209550921531515373694584242223317979779819708873698600127655913761297754738402223539839527851354743891956848906622355353478520502763477983785253795051710000002560769211322118978580545806829946371838991440594341210171173650674302289243679190507929028965016589419784788599647546526600708771711795332312365651509858766143406862683945268143187265251539801824477738328869999187980193408072264567362075619990833579752557921238796328831137574737069793751932987499532475615443814220403696002090052733458698113540125675541799622877922853271276655134046569793102465536573226193524175408728411617076479916438519450683716139043737839524438960374277085795742394593710093206764951620174116358622800764164160454526760211461448631534850434410811360234459038225857342775661824561465160561564368610043778952487661493985282163752122600944039447370538148243994145981189743530715871877519690949469728946467888470297493388998837883595239120402636384563581226431296565979372476906076600765402473710923520785182428975156322522432246878495589097772373808238928050201994941302961217842460230673233891695587357429487053100052409409921885656258989071258838017599998323880238026557075496742568291014153985723848832118022236576168009710685874722903422777793198270850132735058089902778766673396564436396607143767420589866965810922116293877721998041528177811889499427836247332153424324335977799031508287436644396340476196170957100421046650254211648855748630372431752308513511583616014967934804176328346794757836775227237244226373216652475283147421674339051813768158991957242416977797351055370543616258733931221998387923666369714026105171799053995049733999114048217219626877534639848327411677665488173576764439868788716947991125957618436216541126829541147269487792774752914215391845394835699873522275036453435171333457831168196994612520743774615485267720590834697924752943414991502145144128292604158564114865109590594995951772103580991504634901710179427410097267519445350043428000065273011575350098978186179611741372642468135826157566787996776905935129969205644911724374547536110521917187735543606113679405761892936235129115720564111810949775377634815193949236317009874760537480950501578547742959154083557500201809950427541593616877537250398584517903482639901568363583958968496645095249334044053885277765033018781714037234191703309736037897710805751943628099997916200772237736609664301327416123578598464072798834058046319560292069398267867903344717588190154477980183930128693968790169134040384205342616426526127485493411180287608575913844880246935803526063605376590399023528607745331312871139511563263093301305516148884409198340624227069732738243414482559598911537907888531517162238969070290552836113609967625442753186721819221546183385819557314584285715859223300992531123246482206756277354644999665282465635501907633304443747815006816690695064063608704285888130794513452057386125391809508880510759583627951343359444100434267854311716949423688139814333951684365744918436694922946637459456245642153074212054413208439174257876383242518137949965139345690074876495214913789206828050432913851281803915269274853578192994004578949163136430048100422855607175399124183686463817521423027469691651398455944564962122489355172291624314631493245614700219482481192495683784357457968799911879025799797991361512050191573511343844264153377703010828271426941406441020966858125884954458377853115845554316854010424011718563604535893702224956931990127699755336780505720642405410364010165876909737433011716079761125336400919674162033728182049327573301497735615187636482685556926599635748781612933893464103779003576315063078316731943045522931350384814487014173431532375400788745934144855954848818071479915462323559204267942905358012973888798816849309466351000849909260350774417332336526915449266408807692030721144995953551567448294908636314421071240027806332755467203517494019262435734367183881065418853205444924206257701860137816718177524143609324427761020969873834443193383576698683399313873861276609087459766468274261616695493900348411021042670829395884980301364094169788765893908814366799256895341515395475202235424666564714602120852903068772119333144073362503691220796754000757582411286150664563975966873175941840152518234248135362942355004863736887170008658145813766077295398112857875355922331522924112016487762625834754357624865439442431433322633549176171128189130247779362217258956269281323143307877561916523157611795604716312879211250137124106958637369000207751719484799167790982226399419162530866546997521829292880163281815259008307360525259022912990608823755743282127183266512966157945315382056866816132088052720003835729133460417236467892554074905694242469015578378608782482588059645568954647376275902341312909854293270154693762937846907232488499815290536115742726788082420645689960259518777141912465232780430394947135503022085036954286964961219878780180926729397512806429059793931203346684954679742039526776609564321726432602875913419913649038439081649004720199290216571199821451749229074251767415284032335845855763676243543311922607559729599729649024472431951428908082730427198927219053197623576357645293995256581014424587158344270545672779742193534050226070806101748196907355727356643361537706701459736437850239074634761095246088996845432169101375560965080036465385210107935040383187363453528407124851235121873779219575724140532184909640423216360523738661475895149166546500541481086221747788663533624651016117331477863324668377198258163636596170370029315476193666130399209227397199893794159869497869397902793331066837854780723289624122438569323875226098209822880195459590311498975907078286700698811261701357403562084828743960195179417215250570380669498672877462471103188112603844459124327984877403837934979934272791826367159595897678760544032935789105210004567602066533253235045778859313165210923329485027502678271710150703520721714413279458129367948607837777532905626774496597898172478467628146818490939705298822429823325527696430916905863362502574370862811457522392585162751697235710799644946943112026614258780630846331235565049783111277152537832082226430425182862957509125003871121740819408026183490911602990935045329943494308760694816807981303183302577779294100859971432013215337908938428869886960285245140678186145715321885279328864103114646450638487411446345498847446353224683911849709109989391639710051012662781847312651335811817963744018820529664979264733619131123693627901128420242240502726449683411925714336546049467440479510990367249445258532608998566235300822460441056880638542332804423367067773390079102386081735740042937222956853557840393689030816580226448055559573495182618451610602819761209713695563097860496378897087215366414917085367083380336856232346800019976508782998675178336472250850273398805311280527738437258733358870547210556078913703336402073171803503941368811234954540028848636570630412285892625103473235341562390268866078679229992332801811075198979084879283662137988813461248996422898490992887262538057348276371635948221768603102309472613116694383338539749082668142505033201618750800851890785949846208714697028448164279817239798494707106786061691688950944055639063183393421355711207640089123441173127647083328122325031569208142763863528896435878482802829076260448143052904804227191367390412115746912004955945267065724941578222326946716914426083134149864245100199815085328916209738508679271016426993612554342589424879821848247902924526346057455495459283923573538762070117307770455953829318245770429720227747700269414829359654817625920992380072617433050570546400683245802461395189217073533153772225394403991327597903561484270719845362486977894926550515083253338615496784292730275016218974166396990571127781042928450791820072625502874691999073656430189273948155238796251041981342909050048872334025672897163443183565967563517794868297302711953068914431580937019026442856987016145109476935012598898444871241211088102253951344300479493277131194368247284212101961313709213980141234523360910927100498075669005859365627764770962250720561192658163219803253121725834157786410389197500409778477825371766581989548323978226631693723081472781537243861841640990751812620611456167095805304563198416343507129904605538143655950636245608825748262612145960716868500673249057928141093687251570425124894467556030505735975268950568305848769105468009474635841841060717850795447723987028461019888072342442073116993205328498868669206358213491011697063847356824146135136051114801890923785678213270225356103934642442195352766264095052177160715252133727143052142935667091539992470141233877282920090759910170317072858732877624105820817989780983219718517999837145480294481520042073507234522480132299660269653590167724646549683660590527388146395148503565499883670970891151824991347820688395260713563989372546606260792601155066110968579348191034400059590458834826244670403534047606878307613034353282011411017378919876258478509685850198558443143170560580842562191336595696633229027170627267309330968779693521406350306463033745741549453397674924689077568710652788191118387532834843298064294934786331326810018935046690022749405761696870983750339911336113826320945709245486885751672674284874540404739294201762057939193452867452023063330920727149636930559326897429337088749908053068813296104950147658824083400098774679194942906754250938067062695920858534961914557215435637217066524171681740949157772328192803071410371975241816015553146044350280393824420610018936030885596511155419083183503661350957164027589739240494680460878829002422105150364252440325179500426956805859454579488699739615849543260694646480914144839894691694321801465793371651146093916499069050312086742999777505807817750134637920994447218717117814971282829948433496228725394719918948631301576137602107497409272755215805146613151627769820475595234411909142118589063577305237869762050929740928513699457539086104254779506474564172521032870190529469147597475482236432438012248317983478917249115360603643024707349783580216337879425266923870319772719356940112187868483179053841964949292833305469725411721444292004573964062178765434531474429362977449044436366920322895261941614997011175871990751772936327581889131288441685661378799152444934927917038461467019202304354853419534694314885690202629979497848203226749077103956268164466050699937914587613114942220711483628996018995549986613681260113784714728131125521473630852850312731629462436196005186832310859813323769048170832693196574825292584400151464594828407357368758733191813763985466436304027308623033949830095714357036030966825309672109774357934852404921690913099848402695231128565067793852087208663186834883458407491945859522385623677501957997547054653060311933996100453112102403478667808600537013406390389214818180506112834641514597968286302242857070268053847967702789113164782635731824117653646590793090538847622827064647691768351680523575351622350888145308916009882061510582136713905609785557725632769662810345680017541959394768378279606037135570476153180398968597110337373264954438429112896203225075534363095206266455644649838133912317443515464705745638782784569526106858647558486529538219769016379103140643602924078980774962358162395018207545596274745202405575382229406340079542975741663365081557853624661686786609286776518378772244863623224925078777261451082975462694250135122792672848003317327317902071866374364720096585894911388044358306188446821881078235980038521567155007781832198829170035136845711940251195588909579843666944122015814036254949825152413100335851689354639630929926674777647204993132586128969500686001940145684742651768953927621172793329220472164346890240750024069530340455212389551668747912931700794337698016734412895732520785701666199182260360770362041328484336444229485788064270467658429655413640316533194522592000606847869939980439196325351325260591452718131566381943447601985768747997461975177851257516896565874312115142785176773465792443046375153405477048779796850752325709663918576161907443896913701755204281530142961727177816028943851609366767823551161188605301980514058678258415542280387229891202561513899248472624589800065343938075507848153962734750733945955702886561285836361866372487364507381090442399396310349137613489568159703442344745750127503136097727680315875218425563855830845358075945816816557642834245825081496735365231824401603903686249190443519821362703600174289811009614635607963155441886715285976654952190774283128686558824574597498356552489162350685991067233304542596025401845895395239814372884026015142489390331225414386787876989093637416219836581893871330909621263263059495366387689316285816776387674695451014171558663934879663371349736350638055031769014688859096962880074713131283077705118703375504238287699191826234014743183149995543047336230841201757806160457941573612239927161569192226378651224491275667020602588788558878393488053438450284190820133229507898700851367678685029488382712975837072834674282471027176932769582155028667980978491943608805992666573558476629939135084307580230888610102308813754788920487931022809197310781929112423799623053564863474840599850378742091862828253993507131598606015372236038174202578879856059899515699349512051474893635703438552804373659862389958872133498884805848714232709061186825182146378529427233967775776432185765649122371235290991053008713011503514488410265000294676543149045707341200344175916329215938248571274889418595159409441924466729850402639993073396202274109793090602666310219874230830868475316961897807601000115133539185253148784235618659095513567820224098897140304111432573940141237927677532905315582418210273912587845572897693101869703479279144619773363358640382110688204256683011228483209347631571680242525751246926065807203697548666374952328549568431051497097606286624560213411060833172582551413403877558478761585937639645541583936713704343916916823824864133559952529908755182640676030153315354952641849659383307123412735660157618840021704542844139636777667393843408203000124295379660528308471686400760898344325133589106611821028825777554680399059750805646827262684502448363543530152622163347789977991694717077145973850461167722807630921001531563342406742193686816781432645776269994751209616178145760376758265968647725546794918787320124753726984131678921502382718325019979812555426244619885826591209625404937511158803286002831883841133787593314145119378194979071697298144526898349725189766194931086127236822051978434964285017095398530902093383494573293839113566809320081034433265664594864286990445905526069423063597115286239983846491117627079872990552864125056475397106370284220798417186546726020400210362274586119749875624720091332249908775743196606175447825659322682560328836569534489444367421309590682198083960156640774097548329930757272584799601041239763660214402396889971029696248600454455571544799229990943588738630421076537667339410372251587126582557399937931810969849683738924425893107653827065717284437750920028168613268988951280005920873606232401506085738528165970035093451483707686074246962973704756056726887397799563163301484085010182623980859308630916177994607158786432825212006503579513460315920000194659383241446044713800210223962144913455357896336907306863213131410471979153812506057229543603588722658384556517569311008289495557534796920191056726045210218704984112518130417128138946383307997642173067141110058764886299100070500542225508567829786561787916003825056009445156879989234846204876564405341389528369776585468537254990813376171910920026786661934035244676773160592882200574261572921217912190517358950215039072620530624640531779321011336084909504923676210007072251882622841456337819745833772884072519290036557287307418467388805473118371828474458874364616092332466614793954322247311828675915506987675882347090069709078289489333148692609001744613200018373078340980574808626563568855076958534827625615838318055086938388503262739099844364327696831215688062654842094357230337769427757347755424289461293328807953234982656301226510211559591988791328583559865034607377008713104692075162238122204334984480958851148353832080594681438579034695563933598192115919577380969500125253464704575216651753659784898573967802606902280360026608071107262509480342515565178347403483327514718479873192922419789324741884367723371210486202549997331761451555941737527296001495552119382896138172984100299365186173836985777929499452491337685902820830166266834111001587613419858329815060756210132521802924210809133310254053293492933167894940670960842948008630352727532420767572673446114873020532386552502803003576071268253757045871058417677533365705640446723502350783308512512685337223441279607651533155118160111936659410524560990145136870882655620508470175220303405534096094604062410256433758481373772598820074283814123379030933089538921477180576414352565462053644688280990122411010788533046657552869739735047124660724216982295076124174056860391062302869623090326573101191862643973238154604900954473228263737479721928749331404540899514717604295366061231068026207464599131005121817380104394781157209299273134535722545795521760891417614024439107154129404702193327798095878469626217455205883260396867495847052312378286689084944981733607731687758501162902131320458363893895357090331517708857145336788652640320841049412809027627611227663178688614191328117629600236997543278677353981535591815633976848236735494374354698205968039535414925797556995355135983840858354082090210666461972408762120356067317866711368559907562158194242563847887306306799076375754352531150610578234395440059048399855427510220358269259332184162370059175125913292497165761869822110059082536349063540299616835006342540319637363331214298195868227943766731032045227660400884894112158134661401470396103765382148786117536379337620989640505127965534823382791748893519857137725160586635362258428108294942188382768921955644544154522722083260691075844075560547326413858954410863805552134024776289052245195327225414189928088303185857932521876236311098520306409311543245853916781744956058545297726014572031248571834220821541010378095567549623857042527346349343528426489113573196386536145918076164360206988238297733886127745822142772252998107594642931056635712583676078167911796109022015117040938067204494990481092456529786971939283976070159211381110951144171121792002913788373927708891753666947445945615280055521635129065879637469977045061965501412603330401237152183339672307435261291110186816763563487421282402005174776996488968496878998205402014969960404849673018271712594932355708394146532016885191208371676596255471166338209639478917265022271752734478841045422922402299422110711298946205140957570015114818879938279426411396155144087795097712597310891708758891351555308745838485413862396215100610876472303237926972847716029570714190459943950053605150452264542222502823887728808180748050446595768658090325902263209636412689310096518596957210594259001087480472719317998436042812485166711784012824076321865692584554786120452045471620324776104268840802692488097676966817667500922043205625685246847051855714129234446225989821755088566806703418778758583218506900789513139991325449782457842793529342275476195062497257195839551388030378856394622373507835791721130461426621672464591301353356206985011306947985061498168197543831063543114152356273161331920171972673844334755910774484510324019159255145737152366030575881898447783565687416222130728204388724520446211664320461552275946264686268429955112751613378260852897951097411944765182238492366655669342248797794266841523048599334383850931342597431106673758941563521402783817374770633748500302452192491290406610265502235684970634962750087650906938835803386545409107218834262322310838346090988350548911637895058848857786286966234440906094482196732577831496315392582014197043814062046580403808229397555428615768992743464410122174028530220236188860869540809454440750446572545816887523491317276626963232435061633045861569508854418212701195097108410661496997953272004494174865392309334568233530276667774312442101616213771018895796819185678671470431549091959880149768372781693311619974178901460708112573423747310566541684396248176810807442534126413485296980707354801633672549495755772852346370775315237058676462615165137214692555635612295041260523148675530555622229164226513642383981404717056866351468645277141428530923870283961453572514604769743833910032197272259578426671728043423389827206007088782185789678971148929402007459839384225878556572908895403211458256948281126763967010536057591962630184040712034574514685106449965256810815678192771721443245577612205535363572323291716321401552494481786580998280504695015100665747469762360352554576281610547754995050812624038768669475129887812998678227702561343985935364184736823922253465727029584023446941560631971659618073923940959527661672408784060738961104707167617875340315303343705660150023797779893368517902812145154532318579292600776289572372991583723549349729001470091047038424989075681095162861095210697870145276634957134454923947999438280241442544338109141638499923520770988959284779437758177816345615155058469597399233404364998187725632423837628539250507543393300830000481501990122824061210359719116484570499974720584383284192739253241080525497178317084140022632746435297894101411099289827301475154513473157327895013901025781551880622554457897613593323282090341171639447642608704192925080022966729359985186887429473981596664212445458240654832105991506598152638920031712145832900620388666215595399283800005483395767151990725904068535115010615947848437323928973389581101833964769175572583684475781543852701170523827787055973338697354104733720401355602352231951297294126395808992040743088491092801065418776249165480122812833007545799078143652225832573707661906834888595859899125667279414991437753226354098225436948298365933658278745125033722310461604271315357648859906040661322808947607345805809414592222507255429999186498274596778432461300480193326301741659156544609329156414143173294882615874129198340488561201725038699848027256776409140962363011822020747478275991709583141085739136943181181565856756069923135743345998901971922320974074814111266629447076404940157868750604381584249957675412480430634091631424352038562115887020358462521862967316096369237089759782582678649981832646052190155042645192609534728641393944148763913529836965496285876085600755918732781095063100850352031626284420460880449847118003717893700128622752472613051025469050828637472215658844851818799760542180007311678491941064349015721727329283165219503943824098371159732040676392369642347508250793206064018027738645439068667780502672755924357111027474787342749544835579267825002241159705603512929265841132058276290544526958581578740320534553385646321363649772602663599749192594039757650908766094977545378880687615318487230376320843312649981332132386000009935825368190643995390029225087061393146839328526588075539314557017274229265546125723614600116085060082397582870099518530872926431948759526152050944617732971505109867301314559250776827972441172033790977332668143362920619764225770789728777188194932109874843279708906771518529663099481455549338810902323308501091020068032654550765606157826010891828702782381680909435755157331024551148286857280850403601421864660633583706877782037634549869435678508548344095963648163091011167869527326491480945797829028588883958712383620268584173840012652475959240687235661065845479798353414338164741959502567671686038631920628224011795012011193599111204751835642533034526180715542568341205993413487607098414740432645877971822531840303463641890812983399098636331858989093119098928903097019551830622547125542411225133440319815872545079061839674970425877612357701020424081232598750310803572107311151495936045900054472933177098400218250954488208331958757169160536085517849222459764474571858686494507607754866870184021208345858777560754738691776861849967549777138917796632223678156459782611915962958002218907048724220941988983702462161506677760971930087750847768249816284763828161920908158237709548362935430976551479617815533531626286933134878644558426817579577163824813940487928540431414566616205661792019900648958552352156857074110930348546207357056542383877742715733852997266040323632730863880760513631765788032128458241692849157544697453262057196427965645665765032216977887442616387121464392808814974955107510365982406613957004980592395102664692488334502153857971871021403010067815391491630651687014561412841625859249298701415143835706190920907346821135661144952351664100915120850034566197195574495667413323350726481391294327886778086136013083772266762317316346627412283928284665001844874857999047635672528105341049170417838294282537206265703984880010379250737934230969689845232450758362665453038624580360638831319884307940340691434666190171022309784917787262653814340113202184830763615572559676634284489437742292677163677467816131312506956741824905186262248760427942021043566758652024776085187284110633731398740144744488507477318133206600550903587145807445214736425158315099676693569676458032128288887919398566877782243580697408289948694479026473070722542736638100643813843224396744608224694305987230973575180593410452101250892092445495306927046778540500704168061382229491267779806414369644769295029077286345527735724412873977596597002701161612382618810367322175911229188710488355608845753829664324582499463165106774311287294245984590382215674279315367209566664738597527539423191863513019604766872345556548699667217836004682803278038697554115334944776861372967417247992945532847451772185812687537147181911364614400307847686702792838328964900469871229685885800119952971677758064741799743568954499234060284291762200663561129988197697200581686614863302840394026517588545489593309905948266072893238396289859132632825351429380393326149580318728358172056859088446868123455001014044177835355530469386709470791589433473659922282912492263054147932524004995219194852302511129650938084574525593937951794511010960097680439603827921466848146370473317841058835379174869788380579800405100956474971747452298329652328717389574622639308474620860915387994270948476973422262307623546909906662205398514148817428570731511628352301638723032488001829876934515139364921038019500422558307040692497739326459163158692255711027357159653596647230206079620756443421588863652057535882622039676620714708720155341524055961893188727806437559354457920431915114816758677118935412310566017701726799533472821415512305099655341358041039933145720807549836204576140243732242947015916295965682931337181738268076658766702151464635548629641976002040514285175848327665781935539241446503818259295811948782443066003926170631884402972149251390077573845272214012107950721092966770798944718967726360772326361218634607879004374953610806658904855579514480948965485411018551194401022893931748544871678772589181363849503405101968291451953493757755199898160494525084923475519832591560872143457189036722291232537485110247216127227741866501411826675237141402088549110926243237019317376971129038951657378136414707536587218827430373075843997427062231379249614865649439370259224452897438787668435854985022888703006291156320384099239429533004450309996930316270661783405601093632297202212564699093719411877097162900963823526898706756978170109310867884484429489045075641933095184704451253419704824558291918531502791525276731049171701489164329708204958293517101698760101092728069369381054705367460721761253115526046819267707742443804409533788515073604495101477233733649433752437797680883692527400610588515968999242433868233358371291476052614111218329307598605257469155324679900645759829143796956403508155100988148131397199603913470214534028836672427056483966511261852480633212039984150765535455843524504993302960811466217067425557940549493289285460588342658797979356614433884395086328039308322962519046427407347472546725113957221569205442581668784371846281762145360296396837323669745764024036425612724640248308752652696555931240809162307865365691744270908651640063201071581477141764131334506136777121495981321876328146980139717209518628903091944403337671738737038042138426645281603621821282917810765744707523894079947560609414424128724406290127366690282658959027762797274921177662323542270242464840229401705024540672334331851867135069323911886809556904790573052912709593956779570725564857692273262717410703900205227244848652006652498631441870698666237489433769314715240240444061034624952819446886779817860252061150626289468097854229291914027265984223195715573094122029911078646789607046612509394054879925573090776578237277984492904306987390455902068073327422208042209453512053982901397536020159897332492052931738081311168394047797557722485099632301533820101801928624449763640342714305597244918297755745818936004751927903282857595135344824729711030616538353506765355346623219620216235593744582677686182608473529232299250315396390308417287599693048732415121532833277197660996220913167704034109809072832336970555817314956432180911966331491863035558014161424869927174676062018185826294414064482398791214135696484373281504909469477432823907615017090378633160086668601537766996612981214985607939552761331747126082045112337618638033475867381837866964922323676860428578453262094800474939592173106324393712352542832743346709223580571369034624608725466561407767295985754215230865206979052009919825580160550210167318531665311451231477336091161367404778745424520023448267756139739997571654780430727522699815856125012857446620182085921741740075807792346115557322261185099981078047238713244083200606961523765923591561392841147325838648224808527889676028320008370366364983843757435128899144879830810848034023625355552846961878407735384717486671385154996151828309123854610148090451156025862774394614252291369101872968122265669722603593166235236487898215873489944240109356143866718785257186281195941235672269823615115980277585143722675541097971407249747467722260485236169872039213545716529550348585308912279126649275738868631166604066442299716588216316636547381617418860460538262965297586684494656642797257751385612163728299889287817423538870088237005550576033144079824883781804963098421479750545770018495456855484741879148346146236468135444778402826368442115677689049497328792365056093128863547065130012935096003852022778777883346291726026679308255805308705599242551900001276862715129666520755877788132740929750528530293730276974931685767144573619613395692184454450251854868308529856393746432868448955489402524024842911825018570361077114325119584893064179651438350254945953155364443818961633826312865787771955941719467877606172637334415912568258921882289576506264321236960658171574150496261628091564713688626778967541054749264586879005283412738308604380543358809863612823041376580308114306056106369178686258964287385817701503038946185570589115828842308421223076920771212011837779621964186295283254203338430666281023428946094374403791800855594732519940538862641152235896938072114624094883970133848334978098015701198099725676587706980679579238380533468557486051625644862229451936838391189731695133908813066163091352099351552799591628062805456268829556534605016262575971802155020704198146623828262417545634135522892521541045512080525788276402474732320777976516354175323888157237361794368266997539973151776570899011954296338113573103830176113050313715773109885923210591650684836544803776519216588031440388202173502209227007281077561185971646554414263421722298657449680648089605936854623250417464042810310235641770411765910088825665939028917465673347763307868168357596969712641702272716388569053351286489008311267470709307002273827849514807362361500385205613906967780336381931572147700866379897979001070126409514102324418511415928973679967847470108981466324290067167745756135869966065726545676103222736649002245786625014871249795560388496378989749239038143595266247544412598559104942859958387109873320836960419317336632851174844862158398408198785817309641717269898828751061440007671439673575414526585797377449788543576280031896830783161068917169798004767500613042210595805070977335800126433080384022608771099838076076763386900548579492747900936804249897003507360618038925548146024447547610965082322197769453010237703880317645057971242103030781829031153348940210962937728229431607499768992797925739506739681847670327059947107587726786604881209333043879616632989771265010516360087461212261460398595028936978300267066942732057308202152158621560557737579847028736631088787418326462221447312201366589652694874872826093854921809224128166451396676823462670972225505045757729254726814967729986089053196422644039107112482076636243639938362532578400763998586234087177385917533422280644734919519219784648815264343483081482598289375587434808778704643558248931209481854602093409512788221949257367525868431021424348457859309240837915432148216866844522568552644915068576225189455037320540962761445627755753123002045939351472156464636542957887009706585694531521865972595270182703986252522842433063352617179015127940973885372249888067978055320176675062659551184689848583500640111116685655269159163844664586544857655592911754129080591743947019672030754352203053444954976404680414608798653527403950550791751930872914661102931381966810168339595833814099855679919865040814493966793018228389481433137517227607197997096599828584025314572219979631626543200358640640678729532872643020351847013117455201778495421166996984871197851122737244895980170770659853163481286616017509360833060409559942038514533140040088653056197614198157895966644522674932551233553289416520423490093201415379141345627642186774384889921220734009834237323106176499404585800272169163604893201384700168733765321189439813227476219710344287667011933519004727780149347173298403826254902521303646605970665165541216249897910972939056513718234257090785154664471731051077348995607449753757051297465982279212889684864508229838878331702512984726858234339872687268623606754401482337772693809089685480409600679158061783035916553386648017879898221296042446307488734782801444086659923889508619987398634243283956260771738926349820334287314238687120520542322456393790782960936100869332100847294995337762485979910187575105760608936934358168296717047866332294754553586200698276535470513799038947424127731779617901672706708426333646529734479060631203365262418013375276833608886626854695968762669122238826689136762581782738533421915419687035199806895252955108862488164146829957771175366713974347258964213180557712721722178195403365840264924600712325217989887853928706010296324790886567821294541921168996431975909419704324244006673720437698711598276230084115937400004609029454375633515294392025999489853753099171540921598039576285901557037004710139529301540591897074358920502585894173001407254009428192270021239019293081074521768529451753270847808559307998698537007658531945880810140687831488356308714157836080892845501502648649528957931666999926448589583579063636413264404447194099223921460830849724093451062182853076499073198341805891755120385921834298175482512636828340275879238868850517836847607841082124316334790094470990568001197423191488777965868157085648066024194582878820393376312729327711702775118593811198884978002298976166620744804510384046071245908955343439503927018103905112701018989520384464124154110491583899884419870562681015017066954474884249826361509482062478832188527877245357500613233359703559391949062840788771008007125214565759862823762344132833626921915043422685809897352046138859840217269781722082688269393780248382369391140500357332314134180832647168653182663535891139008161330264994518653584481652368904307523373475213663492708921190205969835138284831064369050554871502051222441774082509907480181189831133411072070783845375482858717861722821944384077273245655881491762726047312697769418404069876576257753431082022453460865400309821471187431191051324827374254135474513158961889343877948295607169391277409427574866701170870255308309799610779952283068273672522817247291966087657059243816097671639842130987177577689844306069560036553464738633079485907470586199867548840206535004127617823892072717200530081709338930065788370128429734665210658256900535203508167956086260426405485348840968168988715545864352495459718947281848650146164516731756326157254180381418097127848799375281638416067381107030902806444615061416658851533970368845493469669728012067367231091796297067018421568781418494708323996634756104464667542251921919810766480983226746924051818145643622086566018013552860638838626131646823093013072428706193369380689437545029412173658634831462880588602675305051452582931734191333938218683343120496015767893463075774482171618144144750066452026497896725122186160955895719281717639826005330647981731647675863797930520359351821714992667511620429800545589718773889477161965540237298560116552419669265385992936295254784460979236517834201246438987183201384170192514143934184364907679712853781022872556176152755581857338048512555223491690309888875509410682632717204767930063985840421331657007067394720591121567137881683788089271931658040178925590322341737208676146422929105366394327836871627159386483660125343818907693105158918235524593905300062991800309089794400604591576709331581590758755978131459995310648680603802259462298700210140557277397393096234230585490881456970232766861918248176578230793029068001141982461540577232087564576967020848286474734614515444062458390302768415584666378034592785426875705849747458746826035782140099416321156601524174114738064273574173771716760389693583969851928811130270444858747697761458975750748975925448291553561362696431239900845395804498874965388515003183579040352813015670730830719374799316929656629109848735206692954310840972534723233772622555691135303920808290958356637059698352883018453364667188696562818709378334507553112650700461120075303988726297423803441412207722092878460377169012399381842207601158792543073585156704798396767754100739615731223658293534100377748298064609825923532496712757361240708933537594634831148390435101592027595261937719351119572647391562102340906043287258776231832088423816246959995992717580269796953473440221848307233851550911050779009660464892643206412704988693158032833287928504953665699482699003892336322647968658189578723861794564614116564546455746105935989554779456381120728745864418412684193831696991221673217545187740043587324379002544615605081295072151058355093314265542002925651721141206182517850058115485381398361874114350877320451517001165302810649634505864768096539972288750740835292148538655284606365832671181253480609276616514431336651059541040301777507392875423382588746528816479380024672777791680714188466693835360403168771375561113412099782408043970059641385276996644054159402576852524085409976171410719296572462908497352362496074657550818473198067515231186574666046159105463743323329900625985409273439405706041159299814580250650391768186845508907827981549015634597722183265486942286497758682663823615831775952148533942910220079911369225510131850141495554463342912575667851956337755100952389695438728973970778666552431997309406985457193486285530638894124977177837825963378387291014543935220024354077833189501342414129367354639797028507401939395343663979569189375394363322561677337577509635598774766811348275386894910603951577995396043431703708818672870025093902239993468466537918815667367369467399738005362762045587469330581477439880246413883942961563030509316155085441931783216060067065701164419523084316292820663733566031098081346835049985946537087029769585887390585333536566089769306378786936081800555601801827234219051858443851421357838392813381112779838147254714302016879043031768562078925875492764958817427590871604225049272828329917345501761847619882772923252247427856910919436869733763546392131671097803044315368432175460686618864517216335000218248598462035311982523135471544897095915558438610602053766360773404852148968728296070633182846217072579740308695479494509244861574316970073004498674875339720061813784157911201598273343714442926362550671967898645132251933059847791426150502078264619366096539134082789491233026006125668456227030999294606476452360651775213081614923403611759582294079812434268720222246274042835837940101922705754771784626669178405679517522291974089782529224056493581387929970425476532931455603594156942121809389448412209097819331377762102416704084287636782068945206173170105713647780609058317981120439245013058287387822715396184347504467701901760075103800085139964511058951576484407805509765193736329259809099738039107419012368326072064619288944249701385000194641728972853228229625674185150263507465458832513550708294174214873867377095526996569461543402930014842669353845238040907592787938711439013614414881762011028095767633203962697146476318649248972070957960110184230965399491105525031980257414666875365893492508376291553484916870022544781942555970716972938509293923246273488273806844969069452151083608530039754835321709964757013180054288022329161129562417768881560254129404064032974100453492976835668544140927601436673507028360869174811909399452689092574665571882433102324308065466423634325867246791244895546257338702207994256688226861757697205593945203242566072324322398843430439706914201804008908459611694166068687991517240557059006205222417579822180301782427192671270759781671003169224686099845985001403257145978446532253807517822466776117319824827627170329096581709024491262624571353444712256850699533674540362747673616639062207926617776124102041054851315088766660542730407038396278115124876689528272244404009971106993445337937557316797321235956432286626260284942618117363390805090479763350872255556992355641522804240865795907138564234299379013264064342175767738412431186813638185187643690895603754255379256234076935476996944606367029742872538903160501596575378100181203169311601808986190718830455252244869959746949825442645153308558795510150237090696716405439272930091617546910026790456499541328267556913963244194145627719731673017549664867320888009673168968730668825304352878831742861418227198928273489879353159891437998892535447238423713064480731472478424809182373410080119686638931384620247916119163934335410368055967824328782963231125081403202753055353728782354998925683087768393716256473987472845108428472964183915499557910433868150457826961214637035547070210836260660637205340492488972392463973367464739221403381974778756315851799999551333556760973315114733765702795007566941733299176832784223680367644996754966082582433503481122501482082162995354550146964416409323293631842577346198891461070286769018120378835337077490633306972800272835596063772555819952516708648051172251048332803877107757688966471215559974337730711490241744018609755342247089736048017549645656810585464358446148225431749475750493856607904251636797898637185044050474837006998235951843773188603438118295430479817449411977510881450316584784724421770661053269450073151143812014158574865459247187690258191552429082009611263914457746615877405447483437163847366555050533477785834167397406279874169308243404392450440480250781309324114557880463946563804568753992214268181207919383495629007004273907334240630934616056979823143813188255378993778142547364715407025527309249488118897472353792671137421068134387890392545456800439908220775686555479124140846213624091697983367109479132229765910307859469157275436799432002747137360998224836770347814786199750258585368845946909759068043355051235029136978899180116289365948009670498460356407081960283063421360258146299937346924848499631286053123593955826009910411103995593989985519328445834680344721926320917685203252601744981400097593214853938672957657109400625132180991758334494025501220489812630035135651376056561128476419148537360267731322814772926252268918164491753656176323052766191885484927426887631321216295502266514792230353063135437897607644490678196505654653785271991685885810183519145542108408184526082480283947394384581813506193961029743174631398239793826305853313089946241724043627710877545479519388599142702991222570992038902001462332205179609886679742797212115135613749055697269693279622802756179577249509438350456856674985096158508413131996365043357440323365575639464231522956546367399768916891071074734949498024052778267659135266372012745621899917786719481337822996164883462795457975328560079451431163992820210371025334244659176821034705649564581264448231247583465914275708104090915971841090109102942495655068772930575681434684838571818952319184917994233670845230727689561802021067451755068897101088565263414828869627111604036262294019134814173638717506010465694222908713231926417043475062694987559824589274580492827608076563202615635083517552222119989552645686091072524696153303198458513838596085229977310138396277252467781874204668034060013261268753963094363806343850443397373312133856021377183063826222908361504095408664228944973496591867741574362356767582334302870648443952541125396835858054379804220224699764981331990613312962926409025137946627266513761372751231346809255039776315046273784934838816328316847825248084733676035491422455818940072398965997659943003571194612633087124170884591495659491680745061533500361551315585295115549181074646131249270066158731142169925038909675356322038196512358192521282775094877211903796452392877108636909481512766104591818160917611751010267026000385638849383170122876102422184337265799287148476900587069009411699654610864408625115168479095887196662234182614541607728938027619862787151025277066409874088176212865238879908270658541545036856717617274283036516151957274643834586226439903817770797043192753979528507013559812485681433010014764768888710005570623280376024778571460427803755723881041881110374699521311551084146940722808601750524688195622615823237565759589730324512873804101265939988231746282580619601755647191652331554964391633202480142205768817206944596007903293226577282294329488143019685236355879600644915429463990147537404267302689543721056874741442340053119552837182057324261174313514388063014880249290809975560004653415056979240922041665834466326004831972102018394360987060647961594418764894540944321814992262647450291282707628625759603022635145823275682783093875540580200788967937906921689462679544276414782964134772330256414355604551118437681514760641242818484685957557441455242655476870312790074322795238144467007380439072234080674450638838965968019686337952050906090205035997687871213749851389552969815092473929759347849030233830630651077500953975559706062714154202565120788677920346685355667416719212878290248262609393518129263916855385561708250032042302671219820144188680818399936892352000258115656556929329887400544416164095863011087549892784994985696052937549055518150610521290933922741328397376997861095573558496314380790528991828753258684255157645049864393251427419077783697270744750531417368849583825677105321835068175709973060878394672199168640106782088898452498248669442306604542861835771752399851072378139054896505330293387571931626052062353484383505211910996718272284246641972861455278899609068133712546918927514284636352755801035302603814037099142473288952044341330475415306338243863909328461450086996826874269591793159302983124698809254578700943136490393570222149928028335546884313168998678952266200703764235701415306527311908131500764168646210061319837309192791416784141204936591709786905409780226667694051788731807738607375592489559223233448027056137260835925043177435390474030615633040355002021964752860313936406690206993828445025041219425859483840196708564319748847923717348707081145611094775496693772745042088363037116916995858133330740197933960176707455014429995506329865633668590137026342350971811903778985907633546605736453975728179174900373540311397638611804027219744739862992097757330965057123982714322236418873942215894973601961021714138523590379662496113344508723931326547376875910947643690964716917386830762786247664609717360442148865532543285312764600639263346271954056209367766852594222483620929200310604854873964319421627818744825835810455018174662561888693758101534025619145968606313002030887161526889876021277434332077925592681459369701338018568294203897246737013456946211841188944009143569856378164078982030744913760036592070320463596870712141152386465152755746520789968891422343761165552254829092850188889530710097613544569350103787753632480937328543829583297127778511968307378276300172892899367579815193286254226230203220154703404813453915059688076007948266297449097574034069745508314024170821008149711307044875865866858371759007514588141000535554210108552304253581739040206325625619135069865173437805491453578424357938876173069790093383548192305941283708966145623764742400499152169467517719267776075179478195399880194267533013478017562702923035179649655694465773736265869024121748695023356134224979540751819353413120338883345486820366604770707732903785445810709862734507590926815381806968866594010080975718001796806471140359260483102216523560408267744678107803624627612912353640415253651041460850357798007894566846207375790431260637211571033717739436671913802090403403110339016855775830556236172457254923260303105722968419465540134665491622261517190537205133880744414095646785635646937325024057645171665820217658459006279116330147457714903166372972650405980259878909145017026273431794543951257577155461814653016532641483251853207153616950456627045880003650211027330284669992119742080147040562082408365724273575622292948740026054761930685302132165528438577537587209027736919344279237703180501120712694049527056269743895056712720033059260209879114824810213107409976249236315727855501396950511951562469827036288348411504036261550627428449849245459881542810476216997292160620528387083939010815558909767969271165704285496692027038040440742444582099525856915330326614532064353176539644242916342436160174053853021848660050734211188284827050299565997876237851253204513181947084830599301857255401540726944851864110258391360482563820904584678086960273103186612538213493354575595017869514345623746329735411027370383155931463251610357343504983836445935437928448866223210680114183376320538729044899427115370985180164963214656532645149163998026837311366982093424377794008435765305954364088699966550261625783779564656932362542781789009172912672636847924619062955417263632503628525237036661666080581219860817738349432831219479113321013847130293009246371249311927705183674267688146049725158613926321495692603672579655183932304406102311598939610363344032503425849237584188977006355788013918997344310136821629526890520717541972611169672234483610436000433720182786184250916188058859864398105894300895483911001267429978066649518022100760643320555821061699196312472814847271266434781100766363687563407866508684441525100167152448523650708598918990872083346800141706365109196839170623086079605450807873824997969800184567674922865991193931275539939676483249378891617171274378539617033114380203740597364401194935349568550515107705839777536324529037233446473366139179027508438068879868959815449066567818624099824455122147762653481909239072440323635130624482878018218681612124405745035555979834275580031770332544590367459046583438852212707369988975693773587518784330478313980374498642191854465013772814442693655579074624200136269942582155445035150302537651964824952067663259611432732769670275038993739539916090374873857012409644108384877052096520520020582273887830926534616206821178012120769814652786489061319806978058579456188638000720121366306805791415805621305349840814750326972844263203795653061621371195288397651701972189065229383304795139339501977289482007045666751934604592463447224225224186316369720417360320792045100885355876508804639964362303605142587047344206935690183445012541391418166820738361777291728629886183414243219804523076427175493148624325122478062037778095435426926078878346018728170437691727673604100381887333193565409864946062943539931444882303426205107624619300888754715012693030824700961851471537875979573118193387757433339136119853280492001051807404243426070785536165556819296118613521721307867718212624324110451319208830192995049559255612154941727234954692706662313504573180416050267586393456389023840790965160015622152477994618413693832498269216545903974514682911230288910952786238346441808692110819692898040746023796571159235041121069048223172994505757755103869815102228588557003583381590613494504509784489169333954998836759699741279566685736506471469783983247918533539791978059517458397227551704282158925856152122673229386892859746596105496389826584619646018067235351920272504783502779717882986478627359983070905686573587221542504206160236734841195201596033140470595570166641326100090424753730710528486614458946847566193721319008015193037123987831187938569819864406411674099216109941090121107472379365089851864348463753012115511566500630356579153684401742359021776821506369648772920412246613303330040804127750693587712646357707499752524778658833140429796356295868378287883063669290993020224543102880999406632385080721170813194868021687693473961193000437326283888403416070620661974763493353379279500935197657444577373056299890433940071230757542528908045943957034089829134133282727896516270415368042992053411986229326760121046060639012242504230179448904683817394056004607830781253147041590119257683517962945500279473472960633731767357599528922189211525280066199561216388519996753814907008598821288169821105882755535864096289829900734908921168470929272087274472030255498657957063905186195860374756908104369076612043950431623483350969254557509619127002451609505755799938118956103892506840507858902806415086188018603657065293780503697489420958236095783863437214874088692601613686768770700403663521785669267937385825780916576000111600626229256460032551593568701487909105732826518700756466560583282930103549003784926058592069870107404903270818449270683628506018827989709273547594349621611981420667020687974591994139250163086502549431425498749054189783580225255924976969016453646185488644513568745194951354039767344873950230461725702497156752246880779827043312549419304449495961923191565675341167264383012225022379494172077983088893838062857276149500434441378879285483757616985388656713648800769440975282432862853981356541416501927166954257753893219657217305760328175051902077894133657427845632818346537864420088454965058419111679935192319928083503961210195809959638867187946998116649930536299179651644039586230617525516774317890551386101967889136249766128316555518753274363488205012056975560302964265110226998152465197122534752166141149474240281659750591392380656394303516853389823223504741125421562841613824235667655249010945642244702252424304550865676717287889596096586242067979200710579792143109408295699829566930224630476972207117202159510095011609551023838376387405848244727929452294927747050229516021192020234422862291374178791072778620144792866149443158706434450466006621739868458296780551579272396768007849165313325128221266806131239124852274261126881776753705213088304409682897862378391696940380457472056135021775360618979361363156944308490282234241008937455541621150223108219194395665884796861990510713259753629886882148497828614808236102525761015085865089287287319303829661899005022474019770055947739086564910372001791337734498742334326573561550978777485044361915411579026256356057571397388840201745023139795709539086544567480266780119209526138313027128630168552662619404029749521807699113523454052583006681524099604728123415259680620925054057341661695856214986516584947150832974603477255213217694709644563938038236926388162548914294103698333683069801353592738109129827016950628717012489566302040750887062975281491118443310191025977823407947885895214152765740863824017500313369141468037466876301622094538090838944853255152683794973603974211382254536440633591985705613275096275667491519823534613806893543367485646951866509860580238225182369455671320187854550984087972209733343759693430499788760919864370651799091724667696856669708407332166559265374433218556392431486127645043964306566970452293737701621372231418788748554326148008814458711274245345794124924771560137994240996916981333292412634786873572941880107688279216452077614846515103042767930463106019161891739349344697495945255693041987865133173917157504242710322307687696689676299699575547894136983240006351412432536215931425406734939652029276304185609845195498038877451571766833815775129921293664807151457491564406916924954391308147603595104355969851486130691857515443877307358178548101892984868287662153324200116600987370474910000037415635388053700420813566208271341289724261125845135342907788172328436134554088003861255879304530812280260096148730410743702104248436242688831991987445496693187817585495397918732998294016050580553771494880441981911740630796724325341783684772703969587946971197091183298065014140562405117300618704354021419234193852850351217663239813609672806316689679242531992516244662435192249044231201850453511536367812861764363193929973117282065946052063468142236778651959978072045111643187838238252545289817250692096928600413497118868721016066438700649981673642920576023249016325804049712017645877342464201898784033720440210952162135979570533630666867573889721461182796671271828275718861982115697166075401416188909491486305364134548049111959515492739961769336567586727004519586790961729705823562076144599693590878727566756638877477962246989452226459415756947796859617875002502913197168326026398957005053604384794879029989997982003262148076014447004912746688473034133175543336974019970924144723644516676257877196288103321453585518164574842665854810361929656634679599038756909086302801581098714580458406634810847356528244383398483282000194719927273741760827988933240898255943431010018700389670139799378245715955125838020029843703840563501975000109754535898684564270807017211217245880209265418080490909171412085751442504481880352156271537931034200440393002419868208392530164362904254744546316418469065146565090567542143520177188557070743168805738282054441865434515534252685550938175139576702150031609482332952659241618185869760792899136005499571776262426082089313212834060581195039234077358758334472530443385765657032516384716134429697539536039324153802289097518018851971373953401915976745946528774968370484757031819057801535011015994504719548515744049685532953527015595889969225301683426112982637441643180176988841065255294782909407848376610677646049976299276092483488315226682865785452794891035402567077043035218626487076991311834099722639378084527417752472453440636145246343425735683202777790084894253163661806767850855105300371843598804806941912192222143592021894869839899637082565591113127961425504639609142120503453277348663690366302880176859919360644981126720058119129581048918383266264659085428155712596512735336539967326920314089187473255141039597592895359439288137852311836824686743124048276187637944428210000060003920399485917487485804423536480157791280489731259552527287254250639397098547194539233296644167884437373257825947118899070111419002313149160739815591722604036473802186816588138390177674841986203799328251143757942039646548342710212608679358081104217059333761698144504161940501691950325111049212631261801073452978517470346608828307347082395824311444931953445747757691118985691736389508007107122533806340918286289731817015479892291258106236926242882675735371397478728414065325277280354806543755825236339231443732675451584711060688909849955180204014965971186943304550989947086521630274775978255496310736258205089661162221662123663808392148986422361176211122996199638885754180829661199293427855915921666042169767030257252472063094585049888466984137680524086888521230940229824078565262065506535398531840281248267768250488368085887212170524386454634327248262315818011322528463303242966089021405799556806907816915183913127000498104296442467113285280185094815919825826694216332097221687105570191057213487691760490177835378293700582995058218352894020644240235510469610729022571368990162669011362690134430371714562189519060629308934630424803134117497562473602925900403528725632155825304045871801894581975170517632318660413724700045848707158182082962165011400688379356899156229292446962763564920384639758115449128967414686629730655571277270875845232194232239463971456792162600475655170429256749447790513455610237991669254402612470355121026791276040812093354505665529533077162285849544276516840268782392278341941569915235842890574305536007443610576101629564715364028539678777319471755791592425135524217532430818710445450161572554082596189899556860004921034902182642137208463610610063322071102338025782147220605504215325250219507807692078328403376534539309897645117842471648312851528753244950892379784050200718329066623125339062637467986014088584253944985282612630712459715728752596968489350356665493969075385395949303812765634186437230376891241792690969867878507684117694414086147193337454389760167400748343125856641880624794231609161913981123358669328841687186522537396843060849545329768473906529349187234457764395371719048955437381699673386636098227319131871613107811087476525850619707010893966369070977069877433023901596991975190638028427000625976324185511417074687467193615981003963430642759388160747613771909143630884417727184249979330530857352117873755494079843914323484066348071886132870475920954313898443436227447939375531790022307325862094881876165525029522552301520760732100989510083244938677215186635773178580712162713178824637523072670216586446756028263972404517670932545730480476152469729072793181357702571787585111493303398083286383484566500754779364834697583362767100623522482794555431792090714830789719942293062262257142417837330956682198802634072095127305763208684748647123867132343104760596467146395287674485903674310414340574940033432161961595502688901059912166971116222740941958398242544067996565855814681227819577430567102902315458162617430929933265249410182298652462943176275948815441705581002892230258901479629756558301642957674241559516721407067219946955917119575201809697240584814885433840613936505229163873788987518445654916240908893567444574682364175564900768627571677641988104486041113013572816781023711717439984654213374549494334219116278886619489747164586494598724682399570598609934225035723375073550999411786993517928092353325305630932911166960535343982583151773507835161442246452539852717066273031995866398642481053847285966667162908411393701565305226251393068952261242931666686616757206381569331338854508075156429433897482940174713737062113083689372940305853843324453359406087909258281234138112078768010282632658044389824145451417832428251481219704297406509785800752440967283674248063012544512505105799743419249879871844991789005728620105620189517036757716644351301119755987146690546772614108775477717079420476363280546566570020549479892817007585814263249615681221781287795964812062104541451219706699400877647927329550950178333280606098636678673073864705055256252591764834475578668781407588089373521201344943204456627017558100317614089253896768621319257613842682993625096498201013331372543558791576887833199873758943877804310070281911476790901450403571530871153457020259241776954456651825511771193194649168922301815872766361093534058758835015971041874333228126173561740852493212060024624504941267090039446826304022021163028581155580154113600267084132985133840019422079293517701635128530813428939981008498159544416475172532920423143413073320629293046426186266923732154337723805031328006931868869132830587350139339448221842305024882163204906635231904802518025401328930028301441334140808807745658459907900325762940735365263886902123320134749184792129652828481674211616106306451562174349408473228390011349293764225445320248687375923670792320175871462270758646857008974749606235625811535603424579324182534915914521215342248986714220827212999703725608578067984810380090625177376593219949219753665867021143302563489346803814465842427394620632831691964507575152237593779764136858558604009875656597290720533902472255826484867455144626040973385049675485894270227647327606148977640575887060399743358979735044478253157390441894199965212219954472844563304626454568577853608847419093849012102833151451260018420096471541146516004978808575918907193294409140833274343703608619853774754916558002506181139185894619215028415217173586180428632633799068351510385535461759655405871491857374226940377656166971673842747088121680552817486496470054349265793584550482767889621867655653173691888512822980282744209514701617490967203590089470953609881951439104851808756740189005344729867967785673487325680341077829133713409315948620923973827352566002078842802471886857604455764481796351996603456136544755845179183645670486685867277670093793556589563778613177034641913767387600456966568685545790254281851801939953360736721374146364219342967132712567693021122637467861556992830736227564058531192144735665339713073371783429656511142307259292136333016473331116251193542952967231411763134189482465978256557624008476994815939922632537909791161946757491272860620864632842469229297434163446238489408854304369988019483405026072346945737072333004548543615084252714323361293488944897446639958475933721179591190174976656163918588976435229917362844582432268385965055810721708266409804440387843528845966294834686015284418100947050323211840297352015423733222015817286408251931945444010783257750370548778528329120639057662512968763998270713356247483190422656223452002163906676295263107400964562892798341328644405896776427616237855161956793509110590968216077656618148113984835656745004631873834925444526423387871313433624091557744486208073392123965985582885261073209936964212710382296992978617995043908141836916935347901063470555556586250944623262848091217885135541066916780880337836030701835977830423588468262912996029648136974203946229255362632210204513556570850918026022366106175460107480629603878272675353518799909236331497676251944325053477024069541151690115734157444066268077820391360829744987180087386475253408572824190152534987963892412345145213752359484291653234307629032638231839055552618730014675226582326882223026376707448865892195261779517471508798901207536962205756638201402021581029758647581629277979578906803934671987096817420237452277501298723726634294420913022009459323426667320152269492562541360974745365244208601652535851627559802324387435963233132991711288442305053920267373356986812386220775528416619530572116153097272077508562312653022641904036105726792659932423993064031608581107571867739756686877889250560399630550229123718191198528925125445450776289619910889257981537710073209001486320536854773363234953473240404610242313908359265126540870958860215267562089772343766162146725351299233681759390024938983575431912941708473458761826620240053432916427967849874169234889102672052212346380558723944155426813663556029373732694684729953986055054243332308739769830886093610716239613651497887589309434765934196293891975912733181088062364623247824589624546009971998286582075880602243225892019045397437121463320327045817998072429423838205536190344135464788376379679330247024587055859419152233467300915047987488264710388098224853722863385181457423551828076898004114765127887439152779249917107499298346859533913276561638329706984554345269365872119636495299245494709097111613860769852476300224408887695821182523041397820380596362414895968407624769733765120878981159070495818413458052380772737204432998128164772384040316882085095770209693762743180314439642922278565297664867221355095683902216314490128608649085640439708355341539811934289151163320506638659467172405285751056873124389938270939786075364282195917441160627043539221895023824783487298477805651953761879782269662833184549923909486129949550069708082070144777944061729844766473768916919014975441846531393360518336566868268819137689172483813005495702045959278219655252688545213696753333428336667805311799038629667795835560314576325550069638278770596919086477351473205368687342108132601392566744047710661427745151888660640513229430268980697295906335303882192156588718924973056424714639643476920317825231228359595719634205699490728672141802985361446977176912198533007322808771401178476872800727728907043555481806995761456843865695040874783128614196274664908439305513578058307279071745628683099579674462672845681057380796727725969559334250591630918356086093448276429205111973489275703454311851279610467630540299365315058270194832439984086669281762962378144464504624044290278534171084333170022110359407464521265730990722720581027437906813562648821117483951477004623800514406581279906282815344833879662289058403079181430644329052762653116064707540760713581692628765055766013366707307942603353601582190955768319753009080849209508503391007821922616649089159266518300128790100649923666383615440219899041078094935465323875648500114677923271415863757495254593969107775992589588705579479651037928184430157041198664526034638105185179694210659612484492540269082678400537824933783360233548806854910295887641477106717615283286552168283734993132510632441014840219545885465286682991722322240125395936915168000748239403650113034538831141384374818010398220531664534391863178199695982307285905866584202315076306955449231592547779981929888738208889266526507948233612747568830727151382189332737117069793794638945365819042335561827142478949376280911081876145325939526216385293917352254612497890652528431069043949360400275026553486190068364917354130586041321120450300407015293985130611796538442610841273404139201802993932313715194806192663199938178434466485758958191420570758467354226508055049525018809485934839771808316815514546307724457267441447227517872907042847020437222952780572076060143409192695943309932322668384122690944251461510355138873261034494274511744803538621564289714130455359642952619653175100960642878074773457659494098170898305391523297891902582639996755612022939485133119851053762688449154111448733963186937142511281705375563736818205655521665072649286660063645138815250188249099113906861788975046463853922554076712738309659685545858069389121357665400837265644823222434174177222955377862914604011928165592333455879959945007891688593410753028073314464568504017890011059036746852833529846706525878491290849157292981136104586773703114062907507897094182610669860275246795543155018318979497097364281008741716305375466597831219411766449369895746386491877659003640026806348142706878904615418542833673158443063934259873983350730961354060886783488388665192087465585651259369351848298267682008374931925184562313619793213387870366293850632660121339746218581928466242406294610695850081056867983736811995654126173642406129307097860077966299750779345964387683604906881025268137076473753633837071967476132070154376553495605514640952187681553009509637304860402576728339460579800622574842691013873433829782353635544460246716265178011075863616600637327416824688259303487226322238527815057396723686688399620354737149300131093884934689327661167898324225273489944484539226929584001777657783197140529167628842515087389257091861779125061027931439316525230887057573458638660514986733663947657883391847091267967719137619229303566132049180034087815189498285177626110441867533863672751805174696169692678501078485158763711827254891583075389204086673498785191020602266865593742605911187747854994137109210094543171189329670725137511066695702409996977503762062356742172300115502727593359097128858889479060743895406094799085361079383872014421979854981640281326586847678148380943973089464783163490643166860863552624048818885136113176491874935779009737154250823443547676083878775265191765338261235037246831194263619796865072328958584106949416858707158090360432042626196798481487711635517700024500405925575993636392682894865747547390355885879316492989792205877886941372351529700485787066861093676235779070803741040770408903167666826983167248500844846646788779113105442752369103902000295563049057889184478469800542115753104713572337178020201649302458152802311245149634488799238895681388409169030207867387459019654482117867499361466750837552884187515988409480485341315775900906658321307309298906903745035282372037157040722069875437596628751063268759727111449225850809123229343893463218431896619124901247213751937728189227925504936367360955096509308192132211292267308566597151391920322439149168080822489317391669226714095359914479525121569496179490354483874538609033064736978731596734461586742150131838520594368675102735245262769965584037273925430089796448225567112776634065922324739028980616728342382287859882151446178012015999530995650312086482683832662498689802701612059547567609126846172663306045748476828594872048206128737597105304449661156287124184181861244531660367918122532042347505858528517074287032216352937394483448019772563767630117308263976508990018181880255226132397465501698952624255112484458095828125640014125370898589300743207820794698948113250985800625391599486316294498497102206812884689157127118239153179455960342613461038777509563968644731705892570937571513080249390965777512811453190769266717705464056523909304195774226341066440874344976376069345582926363057146752887390410057160075136898149144918527726762418624638339786577086469128421061291227188685963764971846920728780983117692891515906262785868140012290930500324766343882123463925225082801147054333825155772324360027123727751170053763132651459963286838269205132603100595672531225959158830547873646372245350855633572006090643292311165630492958504004535671154524801954921581216646806771050833097406680382322141486956178634489600936769858883364959411134159516479100746426790195195553146377088551535008864303051325617556267724103386594607636188326020649628185506449604667042583784188108452438213359908989348507694153593966943817262121551441125222785334180992713660752896438241208553647479366093396033502690272187001548020936636893152846024049357842433798251103137400758076001429329147132415656066464973147378077405655377126782575125781712294233855515097596830784834831028101540584031171814199285422050458033764659451118327701364052389497060909615407182036558914055675112864065918176094832139934543258052320789436244629406145426998201242819262726509680805209630046801680881664586882273282018123951888311428109901611575293794668467178113349040549405187932835179516972452358460347468699355478984960025915326190771418513430188957633084474376648181673373366796748600746848699664094212305800482284808616079368967132399704393310478589496689816204750683388773683231062957082479282613746414881562123377678969666205328939158977887639541215363462406063673173571371653824553662619271786089565914225350669290900260057814776925403512022702106002421420686217025285154736361518586893556495069266891025392236009033572674834359683797897844601828321545639245349679775430774105888297603094657765785235861454918814382441802314052361716469403800569278128326832379079760878700365460578348008652812706066960725834022959649645916918570483490073157899036307308861374955601274853667133848865045176089943565861198160306454391352763831377572119663331554933891010055115340821278180603674019799844782861067358581166071938566219758799596690617053882928594585399396594949749022879990854747001048145521116787756438422245206355360204573050186073357217005240511061856005684212809714418365093992476902053129127328196572215960177259300183651529592690532735857749292028734066155309838342077522480705103280522388585485995418366646112663796886635419362319399073127926174790387672596615031046997651387630489340644060007104696403977675108812790040906203974650423415214595089846568279454684368440499631345212270038521206572923488200074380486338937921678754137896639641737745892031716565699328417059922168376346920645158322347440960261577904241718196621888714750940797102385008477727931050717043739629828445501352373674338480521733121857338250259814472482399325116843381204430384077750789599965872492536043464337527195397372935029854579618306341310041554166992223580467777789850574661685877107336532992693206479919512227530660739732104556450727017850314470806233825300789913591035442902350249906903598604554830158798786327644381173673424782806559798381656365913173769393966987570765704282412984672481006130849747993181324702883848491341534295010535191795025470088403801956202542333495616958259464885432707887616019250578302886380270181801079784354103073895066700445681369353734548543901396194784157664080373795405992629119296525432800675203693885771993553942122834140459588296391675562454760210529437838275318845590325482112857056223968350890016577541189481157917341473253135680577028580032833454107864177268551744939303294911010033840811879469605090042214902768859241149928669512948350794046618457604069022967382224256286584180553258227423683543934025157734683151468431158489041896874069846625143030963547424571232675239186969791924319324827454595596585406802489979878005492256043838893654215946076192076434935609459596421690628404722924546429192949068770884652741121186715231889070424836441966230230386235245675379543730503907912118679026427636928696565479030571046214694974360369538475805346322576346294986369586585014768260909683574278277685962114833164190878828802711607556427457478988273085967294208132219046623586710124934720997238537165304095387569955495122774681671674726088385296811501409704541474766132914579357291314182060865143188849127053188058834098178847062926582183510311670201648934930198087854023819166660688048501269268357187342874228085977292179369322671146495717509932957564204510131117821255552485095032227708616239318675035998045249519884660257222852762038669450338863993931796667909910290170318910508967219240716179613913981563812825194049994010283140016150670517944531548586175145574149713524894489338587927076896748282817182833995054050680556235413352005739064078480106283257177612630121957402771343316766533252229607047953149185764015166337534324578403442482093938671758769603561268848398606526508141499218451225148329985391393991768227404535359900731000848947465947317514305818569125732927595410848793254025388155829676715449884821232142312914914839972252613027812966761951022383681263945177695981750096108233972131628713099524964592379306343501882092401961086080326705150045670669713492863978912017522607555298542486488192725494935095487240579033771950468265341614302694522873137602308076138635094362019369221984915899586267722633967767356197901612926451806048120526314424669547045293460285923140491655813866769435286402988318440830152184916871156913248980142495943892681175658538029298518913012684646656718011939062637023635383201608258846822003020135663344192249012229413118055780166420461338988980086052321419202618648859966917763308962592981133325421187734945470935233649183195150556750695767692477396326632919902691631405679979812832649182384581751987562528359917067318496150040395260523744203553385931832964903769862975885591392882990564933995915590005988200562985916788139136670446540309494341232377585266100748482453138068492521349325847579511977676059266435213452421374648007544640874631576543332832773750037620154096455987028472418219886634112158971300195739784017400255589549020382175513190074066909372894913045815281702299588389197749641760727193964865865124257812076288986214398448609721290983216988198060019039579280703262561061609247459258881918485628901772021565881948140253917104872316935324068941485964838828021223455713882492643342820169044230189439884556710318274673936588981716805991496036995224501368874042679830400166706629892830808009194826288953935923128715159238540329074025837034353057171688160044996992005886352247637009309117812480763882043510216442620245744884020043057681803112034058393262719836797040049012278393925727573980047378570208994827115093772109885354195960306284882092151068053629357946128694880270507587702952973206426322374215650963961284304498478893016929617524493543044612768883061938601118665141254363626435853096251673312177141479231108369315384250879451162380994116755134061230868502066616382724155606899670245651477618291038800864211322832574364031554143510201684302072151672489747845665207038283524439181421273370518463760989779120976586146860628967497671883869552069248532193119238732183241216684553095838945479935815148417100726262656713066658592562126668705686321648675783619571432151771668290106070720941967103450447894630185454204983098615558674018754822129418591770956434762622773416565642242935410082512074013410724704978558871754819215303092641953070781340540462675760142920013023806688905757432740300373012680468972093739693637983199179660040162783866510516709131670566074207229180383291532298745704689289052655704008245205752971463450841562359851683641660994559838042383951391949035810181317726012678480583789137982294993427838583840234959526502538235495136441368681605174750301322663078299739045949804986539453835870117723771633081981075108573018558141031799022953690634841166047824009383145195513470514014032340676188527717120172724468909800287368368609843002794551608107764821964638256112285234705993728442034927882726312982438678698924048268992508993107814032222134542326388558977416680474914291072019008297405048508048362949703481805922286443935140433070302667274909219311069276616861303920695982812069820048777895145084088597496398045694100170474125012016435528293227930045047391987471232877581136389392034278395771190965786005306406766847765061856113408965972197355463128016126363629535463343890443470677260701216941234931414350039753674633369404598405505522925388049196676923539649867618707783049039839683081058162734345382594766168799460136905004867550861684874253276143731282389447445749699660299085902256248557560467041322909646699354127573316077302688418300407218487074425067753470679776215447354006781065679406167486549242328704854977772801324101251697942431320359542156033185262182290042309161924525183378520657831212462776216814206455694674352119042138467070461544585338663683334903388146372792039645112735127397783116208150804353085679125758838137926566622094082117997619245907809895265402334363842768118383104363944870915533414891197479715604957647634569431528044564391329395122428615040197436987090936834425615771534807134412244326059506073764300689004483396929099769879337491596458280143504399330445856388119348017344397086436795926987466681694515987156661632944790308139549027283191773393571863519291077010841078653442579642220855614629425300980471980851794311930696220827831494166735563116163941898727502366672320932852280196751982248115243156435936058627207689565855048351346059959333517342500575068938188764770375303143174578271938341578662038777828512509074261971662083041222904324367642789918306492481631787148304999081573573531538336652414316265165222034872614740113844591037237969995402869536880340024444073404973852353180098312418356610892205144912384741647411645966774561542604483448928540344192212172725004402928041738171462162338003162339604675125290390611683310133647860096618756421869813696460386285402121843296042633335469940145917437727719902968322393604094031903908722277942963009248609095193530541588796957548029240600687507799398320191413886343193544793720685673144986247588709143322474731182795420222079430264390932066308562800427537073424051955653014239533293751883219240785436505188205354517311264126645563082307316361877423848669937155582278624610908552534966877469630741282970481800992522355575438617251947871876591780832676781390640173325171072125289308178422634958261821525035129562545803660066044363635379986350559866013370010905089131111101022351802738722540931346503961030923862391493607394059920264536634122821115587674606046403847208062899062201342416783970007955340394731169710251938077361084288716025524614689626327098954593222395558457092342780363826818936465023568921768420805792752899478091168294028265216585372606127212530640888880041311363740982564579416993912034119661864995864228190013786084154380224660986668954620474138419962639415607061239218134273795976973688825435178858301473826245313503067032241848701882473156755455279557841889125847907717890267570908366100854570503130202062531156333486161214953255262684189076059508666860269763969045962250285271505076002682291441623235032529444184583743749826173252965148473843182492879977247341640396304308446392769345567059564558455618395702496817914135697430987028709711261245953409924448095218808277847954069756770380669049560236694945669022226365702060134988699007583858374972128388923495781807019394227001796329011668049507094269358726941065539074417693720176074747721600061840345292579584072436327622327226797764557119261263032344483098482491410096606518840428101227786197667489164104152652856634597241064577314951881618220083885512843937205723662990053079407764612297417000379714531373294286573751005653964382832633231738523622613965672836015789270413502106557278240381155744780761010302458580879896715279527614843214057932655657842189746703454677060822569592583860159160797746444930522682924344161586636974510247310759055180097945854694576741693278497078976221595132391478526784162850995482433091057634736008469423008018552054879216139592052755314560750161354943188069139161973284778678631227354792168166904163910144899915811918931365214630220046176918903203710161211663335247410616000578397725438327172029124754419376005122967744281138638368916129429938453402786208588780790452870270792590217989687218691834683171096036876162377065901012931940696238299146009441406002452678569562760882381149688373721322309766640742488418020403024920768505077884773358631793960641708492857304519664107857449075492220145130674268430440202576715535353245289270517263979248763591030882653853319014299655975474569294809003036864755776859863780778499932076041107469964066456585074799650198215802329999307096884713740190298089429946285568911698668415888740701963559390175446457560087655064389450099471828900419592785915597833137276808089289094751268637855886151686452581458599259001456909095955662874607912365442044940271313996029620231934342309803491112235408163124070700616322390676108182800690623029928001459679654622132187149604093735722574236777142260719479948789662470830521349522791590654592544078618916605607436661080959766923486493553409827296872916910611533333456381585373606347098574706450630286640396505218544579774508496508719781475378820677783218293231988228040292696447716631606237184480209403541229901615028204387083426504319939304253417696814764983993237601635300689068991194633212623541680143983193259090503449378205499121086501924069452337390722603138323115222498106629466190721803698999297637796080306292273407630026370103895954836338066556554319997035098273976388905171429029707127220204195809783876401732461179795545906976045584884759730377949908544431234657802716787475563900556252047367362088266615489890044056245894946194473223578733790196087394368074292652311738930712307576751391028460276919489546688222753534080988430076028461753585952328850029832017273901948518075209602136926208822764516296356626941027552487811840308107049224779773953970373803514530185210231899680771556312881886743874369404998363131164585522816245967601750160696397458385664913186322752468781618517298550266581879525672017587645166968888766637505996018852616251297277349496620999174914357027016927816206830375835540583896019814206569088620127927447929579354968119714207763001655257865679168287555352818559581094868072346584213376733936995028311876431560199713091104093994209435138646497800581381728225705913359231275649485009373613165239306377413866833562300431452813132283052985134351856556010686096584122278362847645032905075328057727974552967258003762201378298005082449720390883868979745622796906374998676678727753116856350927660292928970942955959252160814624305683306852620360007115428256375927959386693457028004685493460146661131380984483972356431071852749020331303379875083830701636137308200822039483599707652232352202081572287922917409152166054201843113415511392864389277958118839736148651761040889043034364391898958351573452430442516336190616788743387093219679148219542355587632837164172609600177897343847211939139239744868642656672965299853743453963643805655640062048783057738466803381928918644690507431357248972736374006462443795587735495368107500089072088329659461972323503165698101733082106103604546373490434893233091703522666173813783933058964030912378133255565736270850863155600104362809874982918887034428300940326377451750641711199991453817390108684581146384133317385875994723448527418196768650919759123885491037801348831240113579360150322938356301951038374580670697426273042182526046093221921895007998940710249838139207646339228618574279031468174332077875899795426811234210578358432583937676588591522615662541895635219641753053250972492790075097384239931885426936692777072753271177032596507007002267441378306454187239680895534349964403496597486290525919598309314640476162995214054931810148103316330825124408690235559816315449284685748116538178273159700852741353327715900635813354581053156275159804439776556695373798480347643156232089278461278620195572732870303458422490321247468589113764939832677428065498864461291770969500513734828819874806977169028088891239213351406509927785471754170222050091631922090301380800289542675265421290692711325474491251936816289583810173065404491456553979168196061332999815243368528664186910537970107504147699451638305999862226062981161045419459333981373723264860950827819342259485443428418081755344743924711525536594007801340296305879160160037519605503087640332189123456907307262995490033079649460316988741266235354266993190027745160570402905961408364982960302695688948099228707165504731203020069000641653068143463592429081719609260467776392706173234261046756046908947206135460507124251190921322252632612487668361108256208319472384607725439912381532487625126834773306733580814889423780811988580044301596726882974380522758874944887803142354949150953711006412543439788422358895572120903015515849617306379376428373872179592125505278592586999508951812732179163663290200705588180940492395134802516347399686847867499630881333490283630836238462179939814717160403831773337889914864775543077962390185560598964183016224736851457628280603830188769646886728403505051779702776517334360454149168640099641476040470216324320169345410582116326918185436627865967580918037498439086255362445703714447318505434495683135148400288597162903985910895525404957080122246508301244818435438539080895567203624715699605710669126770063605193288922466673108154543337373669220598113789259403285539052698280193483930567217812401192577000400766271365901760254841393674153580177978840363628841727764000241474486039050677069755047966793433021002970458260495186226060170356642357764881902291924880365493542515951987346537056497528291467568244974260598464248806542317115296768233441518514137819171291292371017505286236658061139782653857134374751269435223072515736391598796848283234049166224443481158717412737834161344332472571413332864634553740360827032988315481888671682230923473307993557681720766064769275145013629948810988226333290209464072309002841952109054858440659469432883999850800326701742615816024594553542869346281082259039726003587340295481565672801415070947877863928888652827559969220892984864656623085172970460237871316471102676999211032227060612122457511644108357030246020815211168204096648826511409124577663007546019657570494362564368111732042658581423276507907201023037686181337386634461210629150607296514430926934663684507329208408304800795059563510126600159597287012215767425300302102872241853492493498678824734590725834143359673360746385582838265878767876838423364687999251789300099061449454166820569936787101049845187612044725870859053709190122355032406459845133841415572661972690043686071279645347460410184889559536982930741396797755438587898342338483271961601994384997203519815679251994319637357661684592195422300490725050184080155627149112937112407036412516453999633895439145461372063688795837428359343551114297259555361528200967529663404543098315909381994489896803195171994610954866760264970687708445717866643201859060630231501117175138958248488373834496170065758878394731876497261365374321152597142470863779512707213021747935963898622140129937544278575969089750019061341116745572916056615829123782193972103039492652124203363018490664455757686171906837296778287931956508158985482402143532716201660772544327275214405030768569817631216521708028848273892289788116915022714396819776697213497706720878293155689702222515459332505721620055283801444406368190713264794998179551116956545252243769575249963079172462980912793147902330348472019024712899233945604802087659545347665808491603080893524723131788883878631830548346843631206021489178911032459152152406089075787481482057689870956991882112065279765130025086655247730307711721604190728198060088594015875863018417407204824019926120226159868168778337858622571282512102136321303716045512831738588611342303109493035373452258576654208500453066777157152997055689499797840446477069744440540108052263036956903922266707169565991678294468424379940894385231226679911621786554199624069026412803470709037540758125761877371248001092523643933868957253443936982957669034220119301519147064253182588585625602345070763119629599974980546255323713276050357983131764405176713508825148295698315437480701272834004212772274463639386338859374878903291028339123008998919509178219254752480075869676305667172492630834002829464134993376389877001088940440133529218447776411007125718117213373952717061320345449447281411191120935513590257988396761844534396945606440529861376375433978703445225323157837204232121145170023643449774694042979547361206681511410102027169710314517511507222813116373890508072363956198633793065337496142692006016051665321107434372008135861936372587940949686801932054045598146759461386885289187834634155300034016970608045218492624053612942944707670216801317156062582476586588500543479816387641636902251520604455636529993307184107424854496906112482125256153179993616950941660078014771249868296486445447554736738604191666510048186920692180074036252154891553050457092711986409149374793767357800806476987593779645458429981331462782904615276028633301780442992290359757717712525110811189570787195608710030622095460198244015369298914904282505565072686909119819401048615523092561419667263938815252079129261052015145870056047764283253873935038974963264747948932468403502809882414531058953702687057370409376515061908617366111177745639603717201729108338635596016904101364046975489931439390294124062097399629543732608106764062403841835574966772649111395011881546031424133420287022088089779820290028901130774438743119116589034561946254228200940776491889186182302757350218376801308871827750296933935004803713328549589388274594547532390237149102519220370649650295729639105528718499188353220930583053745999595202130601024403957369517516737781433221736621824122029198655507340724340581983311870021125241994524306920304211092051225968197077835350959576310665702995118982153567125169278784822591628993364211497115329672120239941769713832646338491207273081638637516432594229065166420809263104560044323919231906792777800920676919344510464789653390837437013128472173259487303544474018807234109709315464169105665275510655375054851852567195438858939763827786213608953147997010476788415472035590364975401238661179376006347586004353291887536346841936204551481670182366520061154392887150586183664701430180855197144710756991439566397626964045206528259597714051052003843876727035834179943703452488996742133675239940323200966939254422691823509391396858859376561834420120992963322236564029451578042470096908208352554037234562392254079784322996330959988255741563812542435033606606365364998279415757780725772837325515128244108629017046596098980262808970460247409668483082909268900425300619036061888619447799273639865699915720215854320588528255568834480823907485387247863886439666887763649939609251463361101915005931872695326597445290888451953437344961318969015709517242150560331235136846326640393195757924847754691448181434185460339442669716835364419962473057467581919403576899237530238040970267508465467157809862489098552552143436437610487485193235370839474947559227526362252043511888899441611849954005582988032496465944724410664739531021735368809704619508641759579727079657280432601893956234514883407269547534656033102227315173001202795965542204788900290356318439368520449592719423289707959918426381279978352227213292161953347288107308521034038545078719830733395848526224242991436150120266019050849407296472275118284216430178001875369948831433168113430296429243076968324047566036327243919474365292233433866526580384702014094132688101119154134954419805444861584456567090181874859416427034302702079030266128362528323928346139633111635599747951458661355849443451690858592925014061329384919238868940292343013769700879096752747225355378259342218213224836314171961888641615678860573273623657820263013452974074795757425648199011361894668000988840032173809145592206879907496971342862084974722678928354818187992923269065392437173472935305211909231140254993446584105220156217185730045937253226212303121328155201013576384783377527397201428843611042017809279573875812064660798406769021616525912297031987162453925944699869890050493979913564578001787338357384397780611699910258701178198655607950226510876079588001177728171722334821414521279741116267075193094935147208498681010854455685074154816579176249432052122161624598386507803793359826774163376618659502462221753439522630013293221646259703103313269867385112211669349998609641406183134373244505326283742853186321735601927229222489659289410279944509962197935834718092021128792315637525848305119135755828996002584006563585009337903029687870078529916042773931119247378949675868133975002751026976766747101153606293153631671249317190985858824752092437240631020333775268242607840610001314784067150409835348029301737031007577667492770399354498319838295381457788894170446085938536248046797321770608905878117408775749370501411454040286138169290033925724787674376582627002266713533816826296509650813909427177217697040419831192727238405021342253070090475417619597350058993575575892751658081071112940483564901846746787482373439162228501307880899220946396812293234970289044281899054043137039713524710217173679662650871685934380813401818450086425525967809869088230569920079371604786424665421729511311404653163544848825878717583801217739531380194758484334468212799375435532025066736844493250400405984658503986502117039779232032222226390164119941752974513929728175165198737280310276006777580430533989603663918296419319363493764629003775520602538980251629817028767141570022702863341441342404821975821501915659580036301139316843517624842416609005530122458155437066021334163118511090380621319113112152357182854488486196455244613276136056499224109084303127990112902080327680287223971735449936677883742665888884255226736933199866256635941981539968221481272910751711056083861260112468440966015667153642202326820360552559670041598310786069119881589404969973972140021172649906574469080993260378828939129115231976340867507651353698686761841965467486100242253712808292381915302155030571172756013557453630706536927729425644030055609737785292139720367458649323527756003722983612560170566834487965294713326158499315308401420685892775435080733376973450404284718056359895779187811248488591090198414441776892503747512187673236775316706497219559531036313166428418619994143489089665144421636213791829987868186878554671116602526582703427825194962814810770304023926859045999713395595087361685408069912693505668692491094815265297187186852865593436959723774542960497637306809591628683938188663917190728358624595843762442202054041036108518919909872362891164262761659732553022572890731385023327990753297692676477526319288033801881256403055776589927237865065925871818805109423860719095825258663338451410931270630681025549083333637714211523546462320702201848830659165050191753440302768660774152951251021150841347335210199860907367877859734424569164950099466448554062258236055512914464315312179525650500069001717670007886471805062579690350437784618113946369525032020067409406489681362288596143842264503952210602288394120106543691921430616628662115537940435471715275425738099568767256888816903028194128088457712895342791306283419672430095381445941929976827117126656830398055932184568808812902331868863467152269084815315458587900770336401834591183654731554580261633109037247350642491983612503582394986050472877624844132030087222634130985376966280488344547912048187336762163992480662109135498567898135467597011789083152809138344897732740803733725519403160011742921871279077063281328023142409640586348563983016316456421958472671378566721543663175122097634892424084156748289023482209423540021771638312116321282600026221988328905124718978167626076679704386650360362745774396468389958643729299451724747848205916525148108007567307269766128325714988805934061912647574162360876226132532163893432919723737684048705259051697067193863030301894710998819966501279487834187813855039808261676793933213974428431913075759748567866229363379232947214625427198079662306968619136248429281546387386337698575239595284318406962226134667911463917564272858869571594308308181801822857409479851086225059935603048958463667379328415812330244882910109793998828510903932907081743571319348957258547240156734053382590315968168187766367314309537336749066275037136729021869346824949005718173832883035585144706659624011787172705449505044485712195350119892507308835866446016259928693668363007914823577935750218224729117305642215252365742241949834108622182473840521682912545864159357775492682839494269069874407603596078305224961066720055572160742559666724343631314029599734311550674227769496341592840582538080441763958498367188433339948216531203041509693110308364680869505438056190373713710134714287041037157097602830740230662108155325387136117729452309923478075414454586035489297520441928052869541226054954037114384689832093637346204391552045199504641928168829504161926035312637589548812356357399578497256431429616082457015418929581476106863157616320923663655093445519625500923780480423889545260693615815733897670576689860152312170244490653415346939893403061967073409399790344941645125007315069303183661256991651517891111403449331260636259684072513128609466378812750469693930835109542416516931233910935731359258549085964410794418169266165507481012180871430665400477954019143799025599883502679104514923271813708660732604417165696966512833074557402532866798694828695443892228120583729698237591152082720237205241571231423156838859587795621071056850263316576927504659894901616042220325774793190121964165576611172909249448306551482424061312932117486269584421814058378103523482149852109083167637089973444661182646159378207311455869595350228566440203323869516665490766341932555481663710505704233626295502153433241650277348770000338091446839849079472903255489877953187137966014036286142279916717108120789296217738452036612162486539156325877635224041615297282396129217854049319498394518899116853668217803839670887547890249690809203318771150754456441046946589599990075351793754869023186476933548871098054411270468932187417975766725916771092892522603194823664556338946890043114490910579900762837281414477674402116655930439590078295643091532582618419724350445939035194435985750601182445017228880267391615682622925303776646872000849437615442433152532677108245937270926578579445685084803888971240799432821431401992382150645398330421140817019696416917220663346723957170078962186624042681487985820782505184093875528815697575545668833558767905341741705656979694985018910718892011220686808263503462766901310945790091558746622547586645881942191366909363724303778691988884228605104058839661800290109753561362449027141395616785741265030589906338261387496816786533421183686410187154850592986052978324082985369361060298850733157300100194960719864943135423941500724976983187849274359837870151174499585808997357173509635614857508053339568657605259572974137449519111417305357302683156857872924026243858817854660350434191523118252965788139925632675060563637774780816619590924950927918980600076025947927512775530475056847229304958169494067096702811133614714128055741294229932906917186974558163851772842999652256066474202083069919544109461206854998550545548401566028657212809955040885330395598571274737682893776718486968011356253377326862764055715111185723004323139167343475073464672513604959605786278748511143057769145274362132236164892214234381446311622834122611359246722247960990658339144113222094066205670678024851353249239332420038466111158653855770671483445101712329121246528502729813881243914507925632582097794647046098570647396560448471655585846542099555835497484762652160471376565561589713596143663829803636212024157572145619466890454624448069479684543004460081760738570343051380980710054738698283931593596845544198982590090097989578750365102679296120747051982435535345156382682372874742603310800075033491777076013678391786521096967672573007363093944860328726127556300438829375768048067184653919098416610339176659855863787075768639317810594782304934294854971149828569158741748999063499610595937748843148460084156385309344906413614672959266563428184743611378462336762329880722759017985977973196068291694277358851596502503199490296274690699575930893718895756383779746823566381906173165459875442860882200581789517995684550438152484057722897654315476007210762260263875027082517010550536803957017454891867608500070398922077615132479944859756608823829901083008450983729925419735801742681599359046673093817136443023327115037495248925341035623268396364558487627782116271240810861383100130043376257933097658528550693998144772477689302765808314452555271131438086808510226563288795136110133232545333403230229879781618370305895262429745407816740682333779423124923030617772658585775392843440814505785135556012599595128765711150610597244777192647335722080651032615495584695941485612728064432582822815964018320219399706150462627366445063275215485040117468250180267295373564772612612573541569621416095815965119026370671556596284352617811501332680050048150070748690767938826497117496567989921264613347217241479079596702551747056290650977558430243217537442355565958201556121040777803613714634344155148343500696560134886756568283401022522686047665238019648821238216994760383750955726631238363501473915205665177189265729858371495454847812933837902415369210279633507591848797660284436315127072072819215028985768288549833813286655679213460502823341907978699400198317019373589122981953971207876342559129892229014502339653691917584131093602320415379489697775886905425768127716254265696937781241691724371867036102174778730099151719913088685898051927590655591121499261723403153580531039904314432467466478969075143762100619597981265687904992090105007508368053318646912795569901837738397419462987238876902262798004010146911140472314579667340571222456946780246195566434097893266703217788978212171505114501839435184107176068126171871938468271742226045023420122046876829648689220687895932163703106455507908011140197880754052789147137588657119934696432503440385686833483590249165460929374981140675421463842210320485303713777672676687563380180629201751674879913256291620571237780035763978363610905902907155939939045941356185624066511432813925544941487713038619651979763491780916269537484892761073436276961938881856693463065013410389945290156284994668933543535923627098091421059815594808388519307950988341015392246118615627220291196503882300228716093268232790632163847622609527820435237162434102637304969511079680594948865693043053103146112920042196354078201676174115185481883863000465931167107894305560143207048651037938724826734866814609266248861748562790559053989061269225699182173344776149536390958456894560891397368532122336801891124020601616420703244129632030502055361720931930195385835600802564370932230336264730598084122852532962964182270215838320307412037207049285668289705451370690480527965335507542376413001887301475679127196706060212388556905344043015662428875987666288472408141653375260643446755803719245348228570999149378473454121321104644322529505804320616688719274125341657810694355356944953260332471735755163809553301028860004922874186838844710495070086264984486178535754360579648359962027182628513331923388377275122606797936403939677631225813333795630477572643132404195717501905679542843363780832676198936575993762091446596574368054217977342190999669291031015954212069986160141232016319113135823947844970241574358470005352577974430195753141351787552253290005654648478506878482403871416080278003903709016669035776510584321103892842725267407459211137367288239792288302906122679332287441307155643028728634801811756312555680364945703909233856955465567597508687267593940184409630083937159497961770645431616082072603144574237033612017479527111457785938688690778251723642237512074629310664163463738489608163901368426879680256623656986731818700502045623665640037278324342940580230999992415636859773564549830787003893330452858182083353186193726393662822187023784276560059055313440011165105027702237599880644775339994187247537829437872669718813730098136457091946997923578140567645816912991603595843128501325012258658646759907119569383987321915744007910548770014957899265893497165572221954290229058838798418259308782003148015565555108910842978202308368432809724379476774782389350455745194748549833330819664415089661081994006231100629856982637942955003301680487311855221988974545906139421128312700494151544211311577486088429602296635130305936480040348432337066442822426985349387142296305654683887685132463376154547959395573257705721167694537195714642997083599705978429930868795241077738741000868817142051270433148201012234520271274063268401734212245251918553808534268410997430505256521552385897790586973972805957670658669808670955983854611760705310611611333521688620472078002319445791809477337041539926706969061636569332070646122188516707091084753797930176040107715577456706377142102208393159259308682138688160909277782602811603916574041218445961995101660837053761135311040113492682628674160846808373967652492421532555183465963007179989691977004686119336423139058258426393087731978553939102634150757502511557265522001234997051490039687429452792081421457091479306861380624204481527130677439321458386961184620277919942179866713656362970203567933203845733386850386303868942856779693425649856967305671826505058043924149379359511923683406975508352385118287246886338178846089815728251544684172839710086118789240358911425106467294671394501430125327645874993387366169515733458942022981862839299491377304264124681551815030375860542056430160945084233310643692745593243955638173178917251117883552448724153500837015967951211816000328110969423876764013552447511273982369544981788510848378605104969518061339818918288929190813884394408215185497513108971469531790614240226770900752249036151655129514123602567722884501764449768831025139367540997415732045329579085981483521464935687601723678625167499426035736057343860221013549139500678068945068371874018543702143577802542575002478685035230272514907384791674005225268666211142116981301020136532894673012685238147983775736809511690137949892351411758173169998665706562426512337302498491057389982168871444444838797789914840871761447672433448392370746890797284754501871069683838034301179664077087015914257556059599821563385077506997124230871047593597820435416536868396518855643776579840174409643309134413130955519059325758994999061963547467332597204460258698261453131082351092667415727957320488416696504617384302329989828969220845878726599448014342352669626283094372985889097414639076565658724092960011728267189671696113323554112087004380720913084417273546281308640118170509323582749303665238978681497887263196538154176376302738627244718443652894156053134577463415444727953566591598270889100171531161097107455857065953451226709597640718197228380085401904623467680912358388924864075667874969217521285858247969766492584608501154405627889127495311735408842439909940524709807956501410334709850135008305776240026124263800481591117207989315537185510799582139827798546851512510155385253703777409190527517059307791973027916153186486833774351999629808552682123589341810590101895820041917351430721952467532565669135831173319639445557353642932878895976428341137630741174134401449368111874479629046330194617802194835793618610777105041175932829947018211104123437530249769633358082043508866974219816832675349427597285913665727019401379426507913975563711215688177691543356731165145297752917578401312236058819148851941335339810323498717270064770139983554469406049175125808973574622256080585654840471193972857502383023489173381179937151543210026398052177642433312798827596819897058212444810068506589210181153758743300363251449011986429592086974562928184185110269862841471285821236183088836767813203349339361135339637867038741813445344681805063081155040807188623025301042456160987350562993089904325899729880085592165857211980212263009124931965874376353024646317703540655034989808464632639412383500391136654597740496211785868954240002608051667152805398015077516224111635842269588886750148072786795641548328486712391718500553922858486899912041530973015225679250104564389472689608250119930140192924637799274347910784788221980461388606606087696964193640498668637951630315288223022792092738552038422386560460557394511833758043641807976411425061830827430928812141517809443479707864634440066846293485250309483892805633380313996180336768578105532542369708555589215335613279405839953128222829619869571514933079333901477230601605119325329154484058574322650131533243781400667157094989142585642260293512260007501568542626064606234650288922210900930942779383956757729797584030711125153438897076386488125943891787581895204037948132336849100892485400105397243365663216296987630843915238626989770256047904330297923351307659928135012523740099546233965594940555224436915629836563195194902611539351532765460476794392193529088803729508308827257202356436491913745253544819114267672175018760249712665822064486284247731207462869863783026758772464407668548491386423807797562596757461617381820558273344416593442505286398589309794126373726930452378166474972379084328635631753011126080015541564455384211307741989434634674859191567255329313275191503215540518794845430699284564202094460685448095863419043286999854897745100586088285461074954334300937519336774008442643655171412448824054747903132027539277659565491316225617171388442228679232614964546362905735778334140829866258378973683955571816801569446338612806663648051610008330106002900667552872942907238475327005370653248675818760068100810925470607565012510906347551556364520257218158577129672481012477485789831801961872010122445369170984991729167901309785231972900825010389703680111088877409984972974381345172205717481404439888614619247269872096847574060985431374135126064934304225316541436666159202571367387487864569153673051922935185463656172587457350592566694251303498752507565065252483735660709114549901221531574290509649505035670224886018090910343567861008780746680963632322751792229544066777598001879121718099795067619730974266706365955700854194158929289011525803553440057543073908183866842165809989577243548615446386648105008476418676346682680035819149699411366504344375288768132658981220906891365719586596402230610189245439339360286752146882256175928471570813428032774091043834172059273470060029192193193880432157529073815716246285167877585121676268361172152574098264373393762725847528216619371111997052583390071654726995305568684333190907791738131189443894499812618312724356936071365960748872038293797777475001209895782724804545348088145417765650351138569074553386337709136754607868631416381093300969199096612810210187914375350177666745266528285970318510225108620948091660137142410543801621615295723271952021305271813188176572279247814388640017369370739603752478450779717700921190258072783065118535643082092141045991772861893805660174141674835936885554645773792479143440859242775392402067427677654564901497460512082749382086381461726665881917934553242912480545166304933164420497127804575374148382290119649710137080940451360542642046222656873175276368270011978036833893218671009858556939265285393640129232991003634615447804343169421597290423588196473932384105349518926146172422922525422613780614180813067987300631330518567397172230554800454782095639382405727480361564134375218964587551648389119834445613121003661952169865523816015943985033881254960920089666268852208321533979792069384231334638619673438873458436214622714377986272831591178977492004321563811077071822240697725007572580870998989162611882466644814903657270171516800789996144163186491615751609131077801169265469986194315591915990732281962296670284472116572084250202234832335053986249908313889201300083880565742022368488944274843386610928364018787588986060073266866376289971751977415124371469577908126715075072891565838960916114557239479387278097369388760287101681923029656541305669776081555076643901516264871842350842101369639757240605555192795890120846524757984556289290035918572372104805886881848226751942547966006953580290016945624390970800441245050258657022931262861800037115218187730301198974798949264296481715461627089197481330231546407123909988824587223678965989464715912940714793031571956861665870916578923159029720065475051728767442985645667967953846039216627960875455225195676456837836668072108880460735991824850814843718471341883086092641076055612548449089604766495859254394787729068036612923981436179306651700732392307754153603267856970137877661068192017780374738712474137630035202368631108848937300253494790564142784360097035778170478040049693913397163235138826546728913686639831559566205864832891968009452690767459703375677955652740280888302691603266771714625412825872134546593021475948851301259076419268158025453317043261449154491420426779999802657161481046041555012277894069812633534714493297018131051758493437871895636106513636140752811707466286338151179219104387091581217284898360297385845948561304003624552634952323860751258981898014947595541980046509588151232635761150574602255704738539090908670893980798841940173322686166790788198093972829947627626635961976930788865791545636274582583078178439237750948631613249543492265881475526790809933297541679383836757036022109761590572770400942505437785284942640101320756827366818548355573382422266419095098933896702219721970590776882955690802800112303213722045356630802028565620216949749161457702014660769480428621006556722664561362701292349772915981091096011172393514630303355694861254804407616135323641826345024140818522585913795103109612575353714511800770110958221245501729172714293581434384863723237565852794063882860134568445250788375576134339302158713706240980282740005405394257689080412417898622321326048045071425451376003788997985542527823067060306432104639899209227760700397710897131332419898522817525482947143615754613436199670658404368516704034512817992036858183285059032603582119334631370518636793611012186087044231131504389430243964087594927867370281091350935845127720881320931889539657243984256645782774001206807070334337378357200038983167798967836253331562464385362956546102609905764995068973094596188828117048707295230372795786165095327327708886554963435678014087506690785088245848565903030341814687838308418827584527794875092554653225777278327078214099070095116474173569612036137177723783853082331442011117425784282293253623949945472326082007152483257127671057777697842987330238895899980378233458111978941996516814536752853661714690007446886283813072978603005068970095535119012082382749749331997010329863420954809266968170278028446301178403343951662838054282595060496690691786870686083162005844358679186961292264806227878892882630557844983203127969008185933479768628992532264753314533281686990161225698305076753560028566797464111079494447643155760002949133614272315862390603710983905829090333430969287999642777537969872010287027238869219143796815969630375433722107133909812840808790403541518394543898220397124779092294717422343650143772189375061641398447748580121943544642478505880125509531807240820322795306741110170803507957195331898600125807482444802335694421935449959851873406366327300390369898445797000532754742194191960016095315304293958789080537618100857427571198473254091641827989717564557938265784240071521993988001701212916903062653485505196300495915307922932435068119034862868914454944936690304353691935491416002174952399018186412623014426078802066368173522506101892773412974973411174321587570226230454016453404198395740598679664443616952430090136571604106444935104455546858682609877405653029843749519496067927464060569160696662274974126979493302026421857888184419837710110188294484489526519284907202460035580103739016633894799241455429813838764880583193706697265949582087956245094646186671643420719722854103580966616915848846811069245101992108840342960225116151186101356133544537285364293138942822252413708646355447050720029531780913497387308577252791653745616879286261738109706038882533764687986747486433432413065918908081681744313739491110772790584192642902666523667516555352466971731696571215959008333825764684967034349345949429572466024423799934127075289448371760099508684238800833207150855850001691308491708644767728586854978455635814469253301346225103350727519639103690199243931469350406211785449734819787527674674134297980907874953229819538307002031640274702010299151359717894120983485394791740365089556066951163276925156572102898583219445296098257995562267737669334662203617803806257165672885951163700154029806840891899667843549521326905512922071133848486433327595206391972353782719875331686072183232556550890415915323846397421181940049921674934444968978528290552532671770193635867273474194629236529458368701222495337846091919569012590521642344879842832390100172316027474392427387037729632722218203011853841114152222311021441076160869262059330145765785914478995053298383536053452008867978823943889120176394655445544988448791777528124890619132636679176510380104197268187534380425828377078278927895658273273008003125593875634170984197985007804938474463495217065184205929564963970543919119282385234386771548674011003901739773274791161017591897945200950267177333999503652341286635292646062543170417893690860201562733774681666999803411573850039704890846952312575751398827576151289961814862216834066747162359480698790575003072430778917822769067052853659112740563270764586730093209588212459900193004568786729832614026574786812097758474156908116666452195198001944751193587468578868884247518968364836167733486667128915869842874415194596675832032926796320919613143651583240545230989411165555001430963312570928338792080089437649884156549515883343266693052266209255346072121114704854254454711450756613014123702507246017323626502980514528734424264953011121008752340457718213494799897602714393882669013542425141067839611715544901259632840046207163766889693781260453413599380746935156854480688016170582765500298489429936768460016144925838289152089083765561548074354711891796460569077262778846312741648178454308007094941037174936713114942927165694534623456251978368251599834651175557804808419292632591082520829179735102459810220464995365936384184597220456081648330594326669187611837875716097478542216615409534804502698988829448471268623253373878627470916393561161708032466150214450532428522219374283978489915099888275176920425785390337165844692766117962440307411698724310994563971595514996250988272915942271865726086133835807902630035227523904558473600551118766115826178287193306784833536799241388219748051600173967577254463388084660194758301655086994038770000656440812021742042810452154802109000137082013546939453338094053466785579555237521227491947975907701953035969316713433724901145804889841344368504028370365262972348301250705458951812273746348314574545210314716400550962737136745384591604467086227204277503388921042191185464754119511492253096978796528216446651498903009787803138216469341039831690711614790810571005238454085174762688410498141322036671791970652430836700168965170266180055563935517125473233651344231301332950595595551565359165911269227460527436531061595590390699539866088632914747609109976183511550917627968778651173234115898155284059653081917091370088178488408378101447667319021906973794069168009140802254538998929239838892896847920811486835245682071758517777751868668698044763270112886965932623734352485964609123934705835027086492026851587407674210930628920958850402969318322174104457717311064804942046160576853922378987775339900576142149582081931400791095926631512739752274490636631050380123664904410861730451354933720783992973123331515034852361300230325777163488773649126098063197360885075794953487557164199191848992800886778072558426297226326881710022440073139475199987105252276570006556894616510118088837107387907764777327807574130035289278470265134310282010492495712478997148264771263726606239261952380987848878454800717936808539918912667389687381907877099640270137933060370778417473188371756687328111977161036729319318744713391079247556073696700467234912450688457123955346400616308904531478184570959119899618616389326787834066360486995488858417192069654801511361066117959470648304638409089000185057604363383211686099404918734963901285310359607311232945222808672570623653421253342767523108989375962770122859157934728183614071414798311769082953367767353176997658248096712538478730739111484274052844703796361127589544663771922566442058826214900902760628899933958927783609877834550006936317667438650723855750368648473097471787105326498309519311482657484794252547785102242604468219674616910595010203494787788162280445277861985388225449792914040562911121494297340194612076119415674929145536425671366235534857046403384642369093789219792140495652541966842869500869834295040130576100506851187948396726092632976485487724170350966714722424625439680432951373240385577591817567788697018275184235101396772454119878813612455563540031545450430850094583650262708606689303779641222255985829250696661116111065375269986990371578446776988836013936001118786096482317692178017187338799180035625248063617300460890960753142857758064409100878242068905257760041675712145759075317977509108301840388545088719451604949295747116781003913944640973769115130807970139059524822586684373141721480641403816665583578826904450508371777761608456036963919693991101843303060271184209612302577282590450804943196988368385682406220392717645997712301768907072345600131252868685188283625007272389052628997305768275918844148970989361804336941013565740461571867014484704612780573848562240275214463559763319135510380180668663243743190978888790038355154872060500276625128550535739896760013330618425865875634339566354670514843700245580755471115071559637253508121602712472781535122743397792866329856467654880710742504461761539151304226194260031468057754436212826628767354657059235574237428009104333864662071405963902454165435243767911927263047312976810488984350385363140415516059743507202494416712782364429962820209392340083574091957444228243905677367463277085649223137117793701118995416694340602071137772805947334112966386918604447994877582537361403095128755693825058379821276841245756061256821303194458143583542741553417693352338957638423509252824382774706683449459527863613228071290227365970767281882175339501818368333639825367109023304998335551662721108744790585452662027078547726645533892618521342438685451749150531254275342942089342876777500479772230172090651186033108807854829756814723887051926289528170027196820268240557533372199323832210135215795717140914316019561185578503331233459872817697970513579615696280050665055572671305289118901056361812451008925078054657381114584056562179359081260676671134718295719694958562453494593485827673476688609847695041861339125130800987577040335042420473175776918038959344437416384063095917213216232559262478087561908191370688728509948902686912265733072256952811455522528953292573697522683541230231932459720960743244929922650228314081591765803299178322855129287635088659731279633793106465017526075947409898927133372054746479767642284589887842576867057872895390642585292324091593157309852793547680096224926976505916456064457843166910996481223339821709790069087715380259701026050545793328625503202323066186785918632255875612483047231612975749963933867305104564734503054942353664263589052471441399535746284679400585751084911539027044338757917713535444893540033592249318014315259367049333801517074402704241116372413722969461580402917994047751734231783879556148529687078349667189562372426897435701866924050831793120760030739874346614099908457244086997483223642613256287364269592414602945113192231318040367467903784250639196954441918061285545064387606424391910713748966438824841652131213128556249785896137558694209629159844050268012958979174892881765192518186176706022505563128682595539231367130629273878190594942844421669633945504091274948708138531780907139075529560003169086110217647677995605436613372940540168615783385397174919771469846243579719654030448410601652886969254949652174085234319425751581712549574947541756252560614696032650367857542710350311020016661434433335854292819948465179781229830693052454318175350165543447212200065154835293316146970043532310767691400971875072901259550738188036076403609439266068137895105406211995982961460988445441818226245181291302543396041072409795124686709152163896759072315936410067631146027667631702002913811143233596383868232472305307975852882041370295031817451818241079177917241376065417487640303320958644541293310426451162054489698031888162621413321452525546232422779730862520557666320548025358512178616114649681563284208683898344888324204830214149855459011867953874713066596782826330403453970358745244013131768814872535637093066708214971619764518023407001476035617514893007609972137287118431906842244126069950187562331514520374051607125620192616398716481802120196509190683123715524186183636934038788079245821609867083226997553129159826016113088917580320084561850601135424414336440061003915523478728242591362096759195485242925906733605282584156203403307242056646224537414861114099429308655306527424163507758354194615483437719692660913380956402191763125112561901247292593750084881169007008708976046527461689553998080801774604692453498634492868617146018879806843802153442315390249433507064292651899140512242485720397703140814792163152512796147524857107616779914703240856454062875434678844952753403174934426959127902662555851561952636955786743491824716496580112091807696882994812879945386086058157123291669468883358429149060579117934516492831477802576461892267275229438374395053575197043863393821443256657909219810238295221417228047105192084551522660763797796779943646318102421567071167266251095988336077726290398264212096318005583294343149490978547338839187749231401324575719181414986327756975979092547947294255574325830726737868753751511471669013517501195355138990930267488566670574408671776876928294897906867251622520539274097079259382315893313634553808696141433248304621877607347409130486396666378596370379059302586191331397398944931242614526741576491806184679302117639993997738001815778093800681258781860711814263911860990298874316495442739887157497757156502804430300951048000456494821765880089178763549791010302167043741726620882837853189015841590964052588896459539474774568121938033158095008737766245271717534032697814903452531133656590626444179258754628657274427137069573429048261454279254843669229246396874745117553197313804557588642273017611413700470246605915559305063002521447156014679817181899358820999950858822893161382388475623830968081663383992091109229738877535261762599255546398087771938284924475723032192226174200609883281287830237242576083106598724075006525231909428611692939428273639853633637137094335704580721505846411708543264230932660977100963031249159111954623192516967237682883422903353861860615230826967509452025250011555676654881153441407059415914730513424123748228669925709680713877035285066830465646269205329838420060179608683144011678714847834524514902530912452464808443351813435146331266317901146086552660011773609402904405188350519918777387441231851653756902679131634408166966778641872704797761325479534133891618294856183471038753300310848094032255691371660368446480171061761681968862118192158890731728274393333784872171200443377281008306897111119975990774785113940641684382689667044443309058222380838773314103306107174145691558634108734864426738123128173217445772869964529299016539174821399422192519715721814763911916090855014517059572736579559488636410705813462958413756369826996003535750259378125201343897376727824596550422537519084812624507265491902295310790917801938605852856864663298683088423067943086147883437296014325435398996161591527547212797608354086466286199987675799551483668583121720630843078302120386171186710218477545543274389636618194186803614686746440424917373621898772909201012197179005648331286757101603451435827615255525077901463208662367427455815265331138120715257180221006321738139609145640068920296261776368714184798925778576539791858946267051042344649586463598887696595242803442972089700035245584100429901262310355715419856181022737553610764360224879868706941373486552510970455493682562002595622707275190190908945599119341943318952853557188975824560477971310825149410173314545034035440169857221255323949927285405668171455550993314994492313341524823112008081764129683527428107124988501615488936290274162207284991265223090143200087989505654354572326733894608332184787379365198529934711157718198855032611807518373267478093262785233107593413592340060072791356498458945659110648506016875563100224451482781694943388577449880605268010827496869667112603074649933509638801840400634423678210262696796071161663614861392852305428052001551876318203935747902699881284975785877022010916763606281820580289454769535575757968512402640511382350531090294922838168802468954797677912627047131425426362618389051952764449802087790817813187711789266421855489520935209977081025997278789651267852958528506653575980267217628028352930434587995009399975431872514043232423970604277394092657063105758342562775722655713368882008418023526459315341639694419751839076167654991991975539984383667763964301993156269236309194051807711663363854674933973550347266233806873956997493916774672771682030767868777257081407648816327341496048444737857912437501668506006102202540241364096493997662618512990538900794148565670195966840966262744660855058249065075049373907851378310833876727078350728354319479703433056529447939534820921009985693532087670543606328346193928134295256172151770889201442725512422190274595907917247430040301493341912384041629163615651637730439535862920903914960169070259770573685558033255054131249962987158335604924735539876947851739702931525238215453162297071682703105217306231283034077246259514615945269833871278367279943026956953616750618959699463821182255827866533026137538433603145308148783275865465369034578535810234519237850223711254700334786009153130238568313746049240317469109048791428592467603645601227294994086508317353561525220922778189118645616571199893582592854958665135650689747540903865415739941537544879480054003757132425004543530124414106868997118162087083081925438760402701694609930550166973279595463089334533767709855037987206917357954717653732775556269576540416669619229999807401770481862955547246712661334921854556532939806828504995081541083307614682712432980651478523351528814129251933743950945006688930338890360511341937999647186598469687580881377955693202267251392050654973074163185822888527567238084875209363729349098471155512328016328015014033224225260543254507800504970547987744076553732762291186302987689255073876548253991463541778836440294792308446292057685432230234356828854715937073907601879540549016463937735658367371838604089156832292070412210151656521511211253641161508853979131131329621972489380344623826892036885595414066255775833474476262010438775876822354738244515531012428712523014699462199310737710793094659809760640619486683926403777648558871618838743943990086522409041125860173255028592548950626638968893049176850795742998386126175664929333679647554897528327968684930431457470466358014337006994071390623318639546771409070598395501173397510080360765555445648237948574763782645435522788152653367132346926793847428378886523405498052632778438464022435796054161254334599949869905990402112601357159295721423416871221036936451018508984327285548881675829758706550207130288258361698327501768198467127975503566808624633996205493700910639887330910996663784436295798544840670025831379530539951772607829649051778417510656840632964202479839864165960868975055329101664383271589510301571706883782773820062877614951553210735758090774577779845345478715731044980126502258077070520154301140936338510132669187936296175928016010098626178713541257954248822373262831443546704572951442283346174745770932115547338689493200951410695848006245676826926718039830833283046315560043166644446662640677892137463142477445700311895572249316482097730576929615827810294976047060376040078011355895392929101711255934132262874786546391939538693667152339785276727507593932659119195746352067169453290547770504214562049667161557477042698062298188738382890810265132665897534768711481114067692319842003478161939960123414393605862062992454687503607195961322123842309099492871470788361354247455591924075031853233578663205786585090110591356651969915438985518289814452284799338909494550883418191610991328748406906802576360197832927637844613618885676320984139057191636318048413355370165846375387670452095373709900324754068386252850787212479254245880397057974294667960526992587070030799943338109305863697874268822918475241801758412175336159127831180320149095361985276950166822804533006438702772049863004993464905457077270943668472706063323178704598701684108211141598235949406551135719456378852531192214685660786614657861504242382793240416457621651164264932398266181768355431205813874042048850090072323689875766443603287168943202306864281705928087886574080161234141020148732548583792589862017049484939184784404824556306884992751123276238942164314137556200932051997626433439225188994703180977574757272445454298059767788372310154331366154081780396132787894895005314187835068816661989946872941637898196175242064965363427937585489909032355566763441721969619423142305257589336915966040929259402906531452185431804081481672540294126107187796293868779141051118733029776310095490633732042681381215078422049833503903668754454018902460387178704500058326094932965242152312662509104450993451386909679259516115306253709520085055048677782902839799275540056298262248530980182826534239102049857939657055800879406271509451627304574871284757636964753490725273643114389924861955276643399980903210727078959602500930794754366265530686682879248227939736901641596687045655320012983006605126112067524001685925893901877620585436193418879929209181992331187743242133043835708163793505718327971432337557745090387015007260956887025342730141399922559514421977644700805514296001356087957228509651206734021892858465486572081325585342880230148928177125132237048767258439823887382038361080169482614054192992755788381709195494268626373382047298824016449479405706660897275214832178705245769051180436460398005240767708684830894185850877420279980159276241134384168987671106838809007121284870849767180793504497426904615795854498582471284867324536579330222307917753441794126318923073186728082943367675186770992886553631569827017466757576591420269626210630535893697096125708238266407674718671561148260317163276743924295834756164415260767638820985061691611832284097958543655654171048314768480887304260857705435622673128548810851462357734872279520522288009589061557191218356672403762889820596344632955342793773248931511212957219615288751122707660309816216392158167628285077979558395502328435986111360460808629370888278006918433640256022872947271555809902058121316212155895837213940938968062822606709541277112174366443111388177384679897142562547841874206171651828314055794480665333373161209918793768881956143900343486005383472702183493999185252219475742016708221127492879969306074534329209642736218273441022428573078748769494237825142644355173671474830740579255066101165258332861313689650685787184785318173425017859979179484391536989000299817237688550001130141697141403567444345205112335571681824832621725214234571502903857245732882368612824009795475148418664833497573192756687862273440511794247603381865099501032200896690323019408272728606088722045357636296903108422070134587299498806131376942058976438621590805068627634502753951196520258791524944484831406319318055876541329445703882352483838698070240296823635322889648238219244304250485854209904440438955460438186153362470425488801876847540839116598091810620281665943703286602169868691306931270325951581454575565786342342167298376625506315998274848768583492335249695644838488576172707004988605465551694981341435472604855556197021386009886514734929324016243281119186195361909430633252710649728914335741243374948501168541427880336209316199945469443103134010085303445837803077871755475763648445999072667201440675160132505254109547432054997473555131271169327719978172246134666764355540043872774798307637536430848145095620748799605906336217322782055444620384898972771605333381943567075585136114526791878465156982053454717687596488284146350119914112491744903031785416177962242093384332711039133392453139704728032012843200292218732853506986990810053735197005693920557207343873307718403484130301212790552499076142087551418245537238575613142419703410708847096869805563688856243335788336387557263024962399731850577455634674804892820081935186711999890926328904758908199974673145361632475605262122849202427733134260816150124935352814751523554220739048979858983005805364717557516800818488979033470896463282217360816673599915145289984161546226345726493703283017408234642158722278039335357509182760502276596231428607696441662802217535410585547622478830163965513538949856793372621869512352354315204209197365444364265758944403977788618721130618076846799772027522564384712447696216954584680047779547052756652842222598232117895797106683941893554712807230366969944407093649979243870141567268612641705003702358850309153934603339697619575155496726020146132303872287837690104942542229618449593163038363035065973141601331422581192740184631805061725594888087356948904341515669808624053910921369756057162030958939078189274556562156464339234483339408085462887874684302342387102818596931983772533179029379691430289290049301152017045120577914072684774421275326830852065383187424029760369595149343123987496766677518187046569745819603186480029664733475941385998663062578806935896451030670354788184208148971478358054437951239665514600900160565353605606682896127719394918809770436799343038100302553247015089923217921259175687111128299607208280075786573126741112332546755666471681358043244739626258029626061455872171716583499124402850627886946021329434465162436916024726762197359290656183041402169010218180864842765573328291998961332788206783363270203561428883232995486923970513052994852915253456132542132868202389636168290855521564805361495191646261640314861935124408309079480259538775592294896839417939119959726223102645930383320074797663752620051159937460332415623429017367310798865865258132415308530513849744047493247329480067559603208623797887680335093007314585576830566355282416891382933144076019911005416239786347725707758401494178336707124027455553136445990773968333985154681993995058837259463587725710775071260681514337797172529155515824330229265523269045991030732677507589071071151562641883878583216412826600729408624520428414946968175355006958460963890903687796242727046518989066749050532593895346834119398754557622500175738514685042228218881361458122367144102771276167206045022317136344029586195609702504637937750637001725110304225474419871695556573452480521153654375926300022261791680220631015122683616600471661316496931854025929399195323347966925081272229372081028672959976391630623460112968636135932404977866541158407273707028467889207425730586703093394027108109116774970883032296146707894277348158666296483489608654260985438876720508741454382955585172512261196053800252270037665832540877558559483315917721057013218492538980251739681834750799495266877986020058701824314819373563886569937246727330211159729154712538472898526727484287007592300866151056059310244008600535339125131650918562906981258164099170199184892154945296583844887564389001668085529397776056148851990737112794954985827554016662001322064735799356301484389888264012113924421799699764328822019659836238130903705067255903658805173957944055256076014986913316636065068041475810910051336998787225710659230341112922495390566614416649819091221126427225577993890791698343473239949823364680765030495861119641967600624684105570144025045367803059749267958536615987835310451128515704831476717031278144095818879981535676998970221579274503828568922691395665802105206245400041410031214002312483734906485600433270938957470649000156207408892565696539984150161710913554677966812477070856796778649162658980913391027980116909897212417185414497713192523040974779533292864478371185775709569471076437170462690093320786371125101318538922833175953998595855530130279108706490304235362134870808129040368426813797109395921222996486803897400568421426115688668158497450140281905868702674036833208074086854088004899877495984812019985845589500467918663257215855020972455872426950915764682494501435466393461851056182654496119798350792314439126840186157092757933612952246938358455846986584510000196229406392360440415579162350286758516432931812007123718940833894010662786749515471290772773914969317276621754104691950357805372656447698223599964127532275501044439086634255396554036082930420211468323570503802822071672223766502786761707013537759803073510923865185098898046422261752196750945142526626289350261636389906343134024495638663155506324848559913885575639439594667370288423203831234535660277033441091163981051633257368063762107425756555265234572238013448898238059077215075993954560942575980525480637692679036969438986843119206937635668915821277202314538923927629704378493920292430353771580002900701141654935577271017944435996461206517962090769716076308653366584231770342442264040870800895969197139730537619964612270750407037072197899295146997129571620040662094666308663242327629534307305926332800930923631331086314330612527738286508171502252242617458172993446308053866131640270774241196647091455365800254842039518682395045873786557077303848940804287175403973215634555355095087094096912618368862032937503759030336566647514593014261867872470827301044676608022668826637377837780505225355165148690729234653948741650459635492411442816149855335439996490167490453867547640748237133177523544875003719763677302780800645918558632428804337620371108361298565066816036317921913170354563693425007730915748985040063446581303071494619880845720980311903410234410350087180594935639055493329906098496484799864632497584011300470474346449752853858694374117896896517112723663930080630129129053790677651563120204753427091376551861712695602941176968300734463578892634337940320293049233271660278317184927924502678391653272277764710533162273576738667447283233180046686226927160180442168512263615027128774256469547995956206209538685288219393645382227485128660922767937261310384942056465808922347721596845453441682158003488905829641643803025671261072742622931095901160289534071828606083981554992343236662873711652709166816449159336871506502715423177272831247425008857584929389381609238412750015461391475490356901445413262196593786205988116830413056447489677063852972908488766182090118919533425102341849484401802644099471784585062345241227275114315458189926074883369259254335544140573956558544481293644344009474815684092209741740931014399432832909786259253603065766473642322484243577447921390111879927153821302912328016177933612449783017310074369027124760518408588054364594059376437278282114937370521386658077382240735859269129622154959575321603861278289641916845088530266854553325148567255604239041518328222506736971216597256165274973402636359705156282979890377355074853640601386616511901418878592167493631950740076454276817900545853661168011700001978164846644624996566313547105438283404781370860607636801759044593775432680244788103614062478970736531972565243773869526172437641768775067265746448930568787070236955784186628247297585554752655053004253974996825564291991453108505247126986870180288436126714155889212188826940952255571211336452945468963747806280111946994942746630452336936040318587770291642111241242607186244344589700582840999665876771997387705638988913982772084538187008370554341818083929075943590228434386650278049771003582909296870025539375922866891039185153523780742071393226041656295993132417865822720103426471292008019976784248341347105783431108161607406077248437150335975592911069126318725777258379982691072062961560612723015476703672001770638984835558944889390618986570405259994378628974473335642321402573498013563863102926581577095263710985530211764386937056689507891081119234299961550285210051483906234067343194339615043271465360527839779782415733700280845541536429820034316976747149906605653293836079936506815804212623963344299334591029489946355766367897751322698032424374891097432055401799297247850593386497818231076123043109149991124467005185797915979761090057581025997614349956552811276704178633865412126029385316435812766395315917610163183584435325022701643598714409831857735261079601282990215548185522868807695753137450762375920237719769314668510986614453007930780475072165684657703532659233480937090375689953942472636909881445705527575122680983011714780314510753387546249155330130859450517804871079011681056463066911607050666720355818264180166013898615014446124942142516430130995064157195659876572045409939326426064807717798071897889399830377351053553703048419239261678714016254541915154738094295795607830309679722693537751798581339976825565410738227817765525219807630847332734324280480135841145370581305876779497574376692558087853180046839350587696688716020312223353077477843046230968897012100193735395363287865953502360596958179703617724000672070903718210173852511341130752736604884497200824104132687862687574338107364285029968989630622045863959448294592742265140626206278970827532599166013681719909339399371641348486963110373369874456628378755559538771688211107406708007376712427035373867487101635712724494140297236437250987825581031462761038377351837828198219210773578028377576181631622456329932160560578805780576628328226823911885398074590059357555774969181715009265836644242305951236879279337856397629180274259576159967021078556168829403982082693957658282274153921051048245228860754860476878360799071133335876417402438031141101820309362841459103328412945097796661909011577360075646145232341973425570114936034745291259357343171860400987566355882970034545338739255506805418887201478375019911582081818150272331529486167203409301608257215757543487995062703241257640648359277605987481715628092291944966841110497867074020195134135446522351097930370712002744730388859257911544760800095084631848616654485426128101492527750698205427605699041230464659933930907512956683442626372177120269494874620048147418135203149593358120624745030076230630174860244353202811909256964505047761891075066561202390429307339894484546927900623731263997595991816600854240971624288828395573157811700562281388182539483825617980305546015349999857882909810752177589981126970797824609879513150905920099682763081081695449493359601145562444321009255738340439865156932746462620426359870181178620326227951125016042341950945925697271526095254833625192325543056870407483417426972876464408899410962582074199245053953343052513663901528252796300945170419681925748358491212386954187269640571284979502393721134355636007514371709528544138305633177455211360063707646562034622668250761606179146072427832141067666631987560771873797503896155186034304849358684283833484218533996801308289384708948775972751782874371567318565732126675935429741126802477856069980721223758486729467675947649123268189286813652509803980668176944665475119085086525441668328094528997902751608507191975654093679643356089214032399526337323296556644474303735128434233419651903273547939434193451392263954086425987944276700649269531649821910129787300962291377801263916643832738377669763970411239721662205528149930287021196409334614800018931717703327074588950933020817183795496160299273315978560553561085573445258379686360229765253199066377004818792678803057045749767379042817274458903140786912014540401084328053167526049974311735809549189196176560287544118306498931059609606034227790620144003303901678780685165066003795043424861841570835310957054571138021893580557460812139573177136893090439766664486458781323632324509240737135265119050869457501017150530008887062284111146545086877748959409558361628289082980473829609197055426048852783674170758240192729582731404421260327791939091963794848935266230681334177205939929602085795372270573852099840631077738441653901976355269672257466166319951048787195179895446427626395817285235696787040427637466742805508424157532506979525941643171206037544553479911745003029956368191978082955101092107839523116811813072851418077514753658880204291727857794361035682828630434185190339790994478931761848349161798491638479468856407792622287864340215073803251047261820720415807075858964001054408907021109220176001518390230623821831720021550495875949174882864382994012663979579580026811285637179444790908902137020717832204343482126210860644263930751975888531081412801278598880974381413926230529961089306217213895107518471038626387216852812397629893756609731934749017283632236563304755773446417165100991631118203623057638483030151176487977520255731598379943344279752981758320629665021994043951563159185517885666399248672679192532813342034872772011899064507904596379748464845790271352826964359273922515917009367160914974328372416318738863238415422225964003341742009580123551863050359705996241492220293398739224440372288122414954249704845381994597165633847081668458202834523599796770843451071895980760984046615588245836316292656941658177411139875904869599065241588929369263439995811424555952337048069488083318064699780760585495957680416047327491162645455797765288043264208213048540736712890260756667445585462236916056135354618272529112921700659753921019480336876198291908767042484445869529328076725183334694549293912181204363499786773198242421928933884745408088003298832624682596518024868513255136642862612261188424551494772119856717259345521249112986406488395406246691466621328873567271910986955055047899683325409077682091809755922519682151510524768362458843634417246183069822540089126771094596315535182508902400245592177865961121884822043910039765604995613478394645253452589960126022458207573100117657436152464853786363785970851275096548048159921105429594161093765212136483224312690299778108022436131592609284178187403639978613331959986248861492412079540793364810577792992954196047736775525067673181585165724769428361255668915663750093259080011796711846569791575382544717271137113047524056913689211326258993690234818281442001167076165425271249724195659123846824464885384466220596873912862917718943772843400627327981601698488171421574831347485032184909325247315317822745891512793510640762325907242125473575386845988157036202303065197042998492544194166159758880370844019327296046379180212485882860142542150996768104049336344786672124091697595230249170899986107127470566641580733531786826739048371838675783002016760561369302739825413506068066060399115893428129564194967374709233105324949845327187555203924778653306532128423420089879519175649089894221597268078857607126430884394505003189123744437792557624549233313101797700529183531479642626762101043282600359589582554267156190990564090726014893941977627552005541554095136413029925970699729692889953368313500638906869172314985910186623577087150764499000873257260340308206044199839159777083030315397866972677047276188125654674246280815071253435903257384573748887039799596022243646450809937239797967694235359563608697064570925853715876601934691231337955033698013191871261106416023813922627192261482158804244864871475251871355385288922583232197452244503970600067255990374934958581921709176173975276406278601479394344380328431666298995653101047321424935723804236768023567530325816372505838429302664110961448517299491776198076896922673083842424663960345802851354004518723463807791432703212370438374222448813377711396650510488648229746549248646060960538218500830115562127635752119609918016998092290027290806014829843592496055474200396721655085492802196494703790692845830536930465438476411429799236801701350463902523222409545253027429487601007547253076065979866467574692016648577460017386639968031615251662371191569874948285568973416257363256598408992143130455870903043184304676928294086809060970519603955690558660203061146710819745110337426230795071976888017402811058257878909131920200671335762281106523991847410929835067761719411113988340788806344080412854828853926883345694973596965803791237990544029330514186760758154965764064966119820997129087343909318650717880432101145680793690610489427030306098977822443972823538335728417048033757004122908013920439340263871529075823137865886198920155151826872460945120604809250499953450819846631662334000209787202796462908955790029665320690637985124938095939146768329853317689640936761781003398772896212246151553951549008953216309034242516734621539276643455632298808390489066646235527714993921820841277124341375429108165020819452365769906362879114724109137938215661648950297526094663829481273915062058120442604138710231457678747796848446918004182307921746416211028042548859822250320061091153079658891202331446768618945926166861178196230302484417939390418393736816574568109126078080722267445623560614016376799812665802591231457670490022820176791713632766051461691677588768474126824619046020550408720888102886191197196298835421172850967916822304496845030508345012419399535345904535054054163205885734720892764519185116297186360840114031174685917892403242211961618870964358207587295296977508755985382402643343813814172020086992356061726911677252001972002574803706376559052430012030457353059331866918165445582809891724962288262527160920672514522470817849408173361156331617526651221549128299874023972505629709776966273562491990303382379707412190671243402845976640547544927414463512605258942220310879851337155178590853198265473649296642448610606988195222393324229549737846428969292195974517965158342090588220375330780398455896141941912358295613525105200356837416903852430936467926275437877142404457509124328425239871616902709711387412649934289707838010007354726088769583936471332718638309562837694188800830601133819846186683335667819579662679380221099737857560199691527306687890087956235801407192288650411554429373588701680736465201322826984990496957650818477594111609873060976922568333991835794685006407637048030420438923860377561610287916056170567976117729860437876249115149276592911412091623855053518910776578801444095985434679239543060581107896103574821399669039312644716961341731527799818948102665684544596360462683111670184123806055807444466611291318994309076084849483126407321888543394085584710397198101493152552741839185629865616083374055480709941674864264580038971253123886659846909933351241023521653082472024862228181496098118156508549701079417569960294699621037117469157980072988574330731777751738183403559475195412129280739721670790575245556633737880652841434184573025710300928214675347920935864274713818731184472532984307834072316825667816581299235710597943648498645034832446585197803999311190099903150652478082310136030202149084398033866720909959703685618744728040873810594758507764671018118985165544223659368120228870059220281336003577826427770026489278718766595352093097494396008502689106015479356729806600948161519953874203532061564799825178293297558799814017035077287183130984078275898505553314887187412099774562337524185512440186830895135643076862333529507697977099777867219978081260050403486890512010062737904937814115254245485096847014697329583341365526455596609280242626046091575045759621285859046854563946303623459226738646063698280385563826819533489418645475572845168351794047725085107089501304091950582702148068666031965326075290271430149711444511031441643992633250721117853097193259342093668647240262045047642670933673484481854494528408937836883702626491747677698063119614052924487519230051344135765968267725179042319513410122737614023814482578219520508653318721376248693421089785273776322422363696031307148459927288910667826623097433880019681762273869319062881721931512218182487143518890250466487468476316001019833467670530898384721892177524824385311900288064179720623128371638754960819979509468778725729720540381442343456683466022706176740936480931685530768925624936581173056262519686894616355806201325620236159781124315548741057732586758967993286575493556781410334479600986923958886158952983035799468533445670311956420320647138391799812543592060780849405608036132313220587683064019606853338273340285695123232857040441630470606827634888171569061191325255443993688891756515080373910184884742868177811092859830033670256352366827161418702400230737604966834080034897727343869772581903908872551224710932515163534210664470119031740191201250982594337272950498393959609678583639012565570412580154504737676914800840313130346815835563380605550880824285208091326524885370853028261869894409698383290668456080935641113423377480066364580470292154986844887380100259689531871640412809148009645152958086726617725327026242190556136559714717734029351327962461062665203433016819808741262001561434582646868157089688371144805845185598725547869197215560952855289717630475793500449179713038960587170400985185964970030582247504212852514610248829699777309173661866265361002350037836793660042177646728254103820448339519603482776884860577399668255171890174237719577090074989979776871875251019709693663337314142537900189592506245422892144465875342643429411557523088112153332904195466268048815765518939609293470600257224741104462965910086462346304436694137278400408012694708919026377835498228708359270686247797569897591779738975060152366204097510440990990969643703958368677811889223591504548452814065848432764906459689880157419702390238482658989623499682075780334560696057861117286963133634222055878535883437673432638794754975526462271839400856791799399307779025434417506364573215670017625962372921510912273572466039414587566460054485298048466716702856438304533464221593108709991310205553338262614795074961931973264930455189939695066145230961660155714467312088850442132917388773099105152582592374983048543369308223600322252870173929880600878843749029424341623985351347397143062894149788728830764338366210970186245278580951463909489475557774971368703328600166666084854716692557510866697441559752411200011488186358703525617443410510321080747776816008158844947212441720869265095508764012787488997634164790158700930216547531613541996372819405688154670429342387510960132461018912903578140687632088213602275147478353867514528468937232777281184073302415476223455195793292886261897201902506589005621158428876911327734440042155438903973832953100940445939056259026497786432715904077557341857475725675131757429344655674133630936904098599658969322900637384187573079476661387415559996797747346939237184455632506166012226902873634736634163493080784928963976108038758295846311900129859742822941730823752072325123666433441883326666754529891238710177083264397380575042148303802309443268488086034436194626376399116569170908728515744862832882363249704662938732573810829360808580653558715046702002297180220277216168102060315192082963848009306872173282258435645042807268308039573121761324049690223703274074241734911056785767512841854366591433272641190737266219694334743793892879300936573499482695286803895516306288845981561381635960310289039342957024090412000149246429133390000279006458799588076247823200579619096230719287926279969673240247284680650026440089998095337921337115909757520869520074022968483588687804208916656306151114985723440667403164600813717257530983440281476563099941882972514882714173876812577327537982321022065466776108337150245688240518593109740159270507491816545811264317580829694518318030441920079601003628177676476324607070513698898403319896487584454573902005226911926084541942721033990320835149240294090460395741217496016201031501038652164317576949514363729584605830913807525246516202164337814324032793893047329668268826449864657774111285483901660395180911027793372652804299610167395059160727672534286572287060678729682758715763033641164113525269732035691640317766658331785088722785985028826463198411384730648870332109779476099904957092412591986660761368026612757307895719690664287740339173023502334464603818855965194470774645481562528938908572515984932876616514185598514012367735310003732179444655347577246322955021384079205756122664262538328043709055323990837107820393671843101059106190875879586541423670093767492546993974485432929700667282405264594183751658497109717237022755598161196570649909912045846842938539524459614397560472124162572244390854424240857421447292074452756215475805106554659654228731207521747211774588093880322249322312449019964603158545344473320735470015601362239435592879721506197698556193239095766219359294957326187622687627825495983039137083503748666619366970979304671295858215843098994320437109270123853081338215921698247486582832420458683773665118472095297240824121964404839787278790329638966088230214018780291103433077971529926668857757150677177893698838607268416634710195030394522272270680256237850864511938136680495625340235510030468693712923765363082151831197641537307327242848501630917362152963536386849840035097483009768382033692524977144537036656071060337642135268578620522983539722992076688765852082643160517997297102044955016435529863056581557517633345054681328837572735507793197264239828532928384865872734651933377954669979815949783730221318866155636065461185178163053776431226260475165750035360561628731512458074030953026057176558543898736263482302102276783685151322056291545925892845957260003201533112479413092141816212904864335022398396543415824724143728903337528590772614325096810294152168899517225094193678038047737460880979614127310514995876177281399541709768024476732892394154518687868378117934067554844333857585091015447077935330680555136540998652841540688468381461796642997820303423593222097835752015634150154930702890617567325165067732955368277923371875473318434022636854478717661496639784917648932886552779518941777699673452810704463676672589417136066772628490310013484945968983164457163718455475849069803821617577175786994496230427055211692708080853018377291417851324259391095910487595528946389279065659451790019971010160085028896067758024592608606848506033488206837227656396112986740312338080807085733367481172653266808031831908006300934793407075338693583392804204177038680806234304664721734824203868160580233194417857680796765127142774675347152272466528525051708084201560467304933772465154401437680764950682790883688691653565571805467015221882639581078773462561864594130985859653216971581519593241540295968043347607177492089377739598001004830172292199839006798052827397395340396987509260158265844870353479006416444995015775881716580341783849457411583805879775202404608519139568637769193021313296114473879688907065259916558342195596044163554720011960513736621216510679420641764920574318574507614685367053071942728633150983997398324292786772071855852918699515248739790103909959075738275635507807909282709210110176117331485400537777552332744330484001578446484114488949780645969640072646868648901606088045236781080927392065450317065030186582311320496590357072697018906721936078692606258024665321497415442892305736310597242125638771846772031265480746567344309449226599020766125584995423223018263455794916803993648550213511640243295473270666626635406011685006801333812858738715183884253057042944263508909528789892314308702703930654441948722194027617657563899444377596170492856588114946974193317455776809521009252203485789170640717844040700231444694465793523839308312752082456890659601214117343103560967933333215486034928239509306651476405698680273478425555678881348065123703714821346925324026274938926879331728056176239468754963258975343724059726139873580202506351312600359454756427511249450269135156912643917483878242271605637127009136318727336409427118600746948804207434503667876504244889935020360675229545440687698311922024822619025228971171237839774430742446819991937091254432598514114813127069329657065961600925353666042495530993461873965196499692061374231380457647634536671039775460760074172647678056886341192000266878588575181998104129202282015256812088023296543893335776169338257822324227640211052198374387213993247429610285697855622832210729854474496174668272839841439255148470083639887962606683664117263057733001345447486677118130935463572244793510000519171672365854231913602293068085413281739644069639645553913582989189573408825571749880845951278680807800138687024397038886539242520888414915057620321201694461756324897262882590946081915871983854122989202946921236369643632810504176030874311985961726422214292966961629413472245677476460751934166973179748378885129013468819545560794289804347067647250832907527889156375649632325050218113271646345257148395849954989877274953841844157427869238868089918746878669462343995570117563246389423844991316981973193300725715938506895151618851708628644571975995329727912636404038544200055657974733443732428368037151347960340346694451770508429206767353683854849742531371883459563507043973939874677394017582249198332793190558171884657981570739351011849731623707676293451947315038907488071148041049268386987494028698996428506645938242715439267419383009934728334764240337021413415362341552781613457852781007472039028708525122959572825363802595394524891158987876572088218979016587429388246251940860154821081394515600278375735716471773793739265606081173053523778462616470947714276859342920273018691117673799118992740476364215634777137042664350704637963001328690989180390260380041741218310612320842606582478152276632751231119728089757686833006027957311551621252057160324301379625306643725308090957722114276264466092186723170868766882878484159014525194456971381250447322342268884125133791923283581255101057768096311495894488303713648459896835141061862052417700839313135407790031123755404886972925958097949112019708492678587769844939571130920407837943846084240741352855536916673384264159941852353438745921146330976571205686800545006353928229166933770886674812839389667126957181150503953836852522988678451749682693440850474168622991077085846853099180410932391787883549251525556944088168186440917831412962176995592970909311288168946629293724775605470782799811067923693285178424678988037877425438122749792658211154852721355997296553894663704303327012593803119274996084645010995708331974523839463362475781906152072696908511311879429840204154294784468874245490857663823926797241757515319554126952807543948757941081747207696642403594008941456559109823915516570096056556420250344476627546698078582314253107315985089060719458271118520472793386153982933430204798346955579657166411343709230068054511753606131624436794088397889926525845440420106426159969489924603028284851248955791228505940128768958620336353558207376750166927616027068821499488302325141473547639556426064898317170021226445428619173006176616575226842907486713501744266962626182606640833274634767701275948776961757592547643461003823375048051650911576115213578792164752486767652041531039856656887282337737617280559422335109836695230395416680653576908195506860316945528002923682123265452929191460910426866970692766199597469109020995079912424545451058347671990728922225655169900630234026519389029872956886939790141731969485615262282149180600512349343322128478364548962827095764352000974368339723159751437010204185228371530378112848162108458546575937683152997711597990018973837452953247913061158516938226163405312507177874251798155356936995149782745758164532745229987156110074439010749421054063018088109538023874826515444270015817704290651371703338275182460460647615084118513831496834445446900071701089818917940786318514164389273290770987900120546133482718624940849183446997465007458862323265070744568429975056092713262040944508066710993011340053970956289442633866916790582914377152248000407773393165897064084590580900799704945080354745408625121246018474082818534875154721545103942957178829673088021861696255472305206747519485133791776845156372405970365439468184305732485126451173646738988271996062157003718783378268104557866128092862014306444112488520157326136846394191446656273167763244150748085970600119751036976786157823334399303309219960574270897400869864904804893110817198877284959283200761773707411122927371703058336087197229257346611891951266204989858596346867023106196719122492411185714214670881167769349178199576469795090676745874778274413556873479646933675476058397030803624146051091713018368913059017394467100701164443373749619323788967817205844919711393725365245074767925803563009460895334919962929990439086578304654456918364221521328845526554659206039970747516393625102585561510338416031611124260567600447240003144459722289010184321188879988877700560812257374119815698170796219347437320236022401654532887186467610744830380145752123237269148041153360309815173093229134960494495836201892109571935843497203868643830520666873726530205567072139502067249171101408682606281260352351017020164072542228277783113680557548282765599787107616538497664987474164464133812982242044807764464333272039645911778028949948782879356487318867772995080416434145561846016013625619877706784965703884153220508152840122828796976908472840915153475266317740232693865699156128948353936830857156519826407613690594636133743350544080410305583999949348883429481655553208374225798431193777947165869278457964981435797555495662554298762663025135621047077448701345943831027096302858519620431776135705083487375128265084987094422614733656316831769274990341794008806869159684115256763987544216591815653431125082804495832217794742210255703590574211896722216717595732322590620576148625121185382000120077059234463053950852612971616712425532644675529851731079992643556334167711641675501921054121449488465060587587242406707335024453388898351387400498817176797768018709293370922065620952083418718926824734211138173408924803807767543385604988946048041895767224243059584741216981811779092565738534334005465380424029775065913904187548777394701266465859694921980666876087269511669311919508499954363282466287562391144065236440490075282501223673763894474565649035047657055629512445544948555077120321761042490543267213365006106869471244897793586794174496501985876328676307106150292257020641684373419364239737098912791225713380522037114111921115068667846041342711582967709331633136999131879162832708324933445259323582044294701527155419457025784500127400527354298336293152449721971681254056362509276782146867276338535506097757015553060347840737817096613176619538507531111189927602032647223021390846096957376868342548499371397732437924934939072400920352154763940086622263834299235554657739463826355834876664660953913807891613464376267516940824599879934243725869382736416061927617123337802099566479100323906654416999894115309808967037504230825412895743744314109032912015908139648481863211523657548272743071811029786298863682592508285011518459174946930376986369231286749549500500255353659728059693853119304236650966906708627815019977222317427014307466638136606696671079088247803834550010827269900567588472328393901137605334398613180534056358276705018436206960364993200382280308191494829805375331002895173119281246297727943577964857400064523181408305434968138409344816663870449811749579091888503138370021275175656594460936510939850120138503886562350846472088707251640131831147330288211307677674930443270105710825497092911766445981639782218685942498973691922661739167836356846029505354838451810229494052062108564911563530531193518380411232628344324500076354955831594232024371300731162595052018173236631557590921954975850751930759034743059390817522883118029273193961736420046569505773504914478703663816831154407976634451455686180243920789927001818280996468209768252007030793908842111768771033739979731727860124613331361335849342378458813487674882697803368623146386676471385987817653949200489696837408236507190405235678415947078761437984205036189123513649467326355537954625282293666635523002869714692076892620099332845326549331168883195118006545821930756338817691937693930566678016097211263887126946364369411950245595738014769607254834476398260742940448400913761929789471287383310868242365479861378987135017221807305157949999841704720589807127180986910615349842052281228721467454074411776171841958030801683538200258589722059428301650556685600737375336201247122452871143040737888720119487798391761279744768955638396305666874945315568439213191148483290854567761114937261768988343094830501932891412466820502421243437409238886436842565531341356336054478534315524587200877890296942906631793131922983678305334187680983927912220193432867965285645159718293609401030854027201101373934766109721347188875722054380259702398726122147019749424493147178860327045345314951888009789249026174548980748105357958002712099154419801378371978062692177656480624491108354857502601494588534301393991078002806828775344623883453322611390746148491453511470996986503606066458610873771838467310105508077025955767449945557645265195789620727482165656341381056818475718559576628728847099861266987714370715389964730791681939828792621457651344148712489661168291775874918613637724363697115461532515516337093290046891681829237296132368080459650395246101672123186866774350783945329462745088698781913625428017654811517432894784470822893949436317759002165093150027792929284876050865764821809511523464273644749638416553605220391200473335902776473461990709015695460398078187717187965221912888629369110109616592909887343627416986123872299303798365152622284186856642987332839123699476683729016705381217686606964973222477187169612245412535118895412782089500759353034566595355790763263425127899161913168553919446037429708962371554682668718864086534849015399485150158998767203496474636670478884075320787796360647518157359204503659307357111113798959481123185039173072218266485732158247186330853497583976840663750828678706854629620117974735240249860789947031038827572456662726522268494900939122495953785024150821530600276753353516651563730306245906836665408838553393876012054957593747031527428816242726111616389454874378795590739542638115715600280761505636630486000221128582207976917637695647481291968476159919182852481731102706889629728206305107232573832623192815668018100361983829264206250985624520751059433080359552146706062187804640939330531169014258690863133894149974211608834625383653090386191261378675132176427209552420439813712935238903391459456196105917240402956286678555419769676828599637339313595917141200473037614814906204087527215849939697308878248559186034001646197965004663974995460187450460031313816629391109168795199102182874731161046077383334558649750333142165214215431273300532611893930322725859001211275789810144266874580004523383950057411980787103051220547990521606459551885445745471565121835071398251987497449674839610034351473282143686279043704615466477614004896172451926265114494771949304956611492060645584341697168728060319677929277101046101480556823562187222843747987288374471787178404679135963814235513213864636127796870969461423163909153295489087579198843013811600580641861885044854564822992876044248665982231070056044514928353417124862687543020872449814645659089147686593690321198935648869307526946060949442025278700893327697336511553292376205487740552911578431476710967544959289574610238015344443133235093169617898672977650978323930660896147541129405472190464717797242514414282293955142086220903415075141838270735054467818695509353364973713367230777643972384003117061318317055491711579568763970794831378492163563544350089195801350923189939309465297424365559279023236466518712872707823958095115181721916691710609606969895442001214641202764072963048522550248179629319340345788272138239447104287527569438069018628266831955650100225809320654507310662498172693025668949455048318398339225663107063235247801745288879834989744412089334369774408460019503623255366724655952451656120126921946246291350437585318292045844182414458015489064281919489558732653287178204210629472819209576383647309257174312849307554558682820364423501490991928591471898952211136887288622173590975919061492862782830159772254501962418784142514818122211674243094936354529809514261187841865855260986102306963168459525583695229502643553716759497236330041434813190015694784802247481878466325313351393795573494931960549882106258570997650450842402506274714424524929504149125886599326986560910918613309158850302636379406535859594276654644657805992190583782318459255534759806944524989788854498445601196132328266036059919553434512783046427290738440544459419590158451081613498726676755814449473371940407642768353697519305598188098659496833404163383059255868976947432565603543428714741966225507487253045069033860222329446572477761404938410618300925843925203386053814351683052152712580028605437865165483469094373317430113447225563129920681125169770725248559888758632653468431796620524099143715668992747891061348523356972816232946128812832449246646111819344284713042041642059494474896294341413653837875465314753593021511612855877347530163331070258579722918712046075954227426693449772816341074325022704281071759450059377207148028915703512816736304738597914041844745574949353760896188636691269568054292629856490477339109673100060096745718587962336060074529644734073411130694438517943367047196880218543375463485615471046919688232913303457033338353837479344738809338491474463938715698274349180164242939280539295635223756084988055149529296286223863252865199658535025085351119594120931127959031815623927715081595368181771306577485677818080862940098400286434401950465820296156406382345879262757342221463056872174293296505743195203328909430741783664274383627794976340255572926398692783011278517847881279850844019656508290161232076582500635405817757505537080960293555035459089902301100884780045472839968910750603308997057437394972704024284459714714230251146356173149426746344320413723667396620193959253480747373779885722532223225965077264326885519588912342438992705788426463850353524296717717674195048002103359625100547926109013258292960061760413307278618308869843794284504412227737369157305350556679784611141562635916597234310932154195601221905086793977579404414516331355915570304271253256623281925645629200582785349651475726986313912049121028128705568172454211245675299454697588203786252681069863271566186438914130651541842713905961727483008171330187138672770214127620715605629051531152606362608656179256858965894148022290239608054472625484953451792055410586975370127245330152528802686937023322826699114870969238450693487378373677476144334519801010073157199879338616634945975962587598853243938162755724625951633745094467307469464638716649785747562950225142582342892791546748646599620765030909793158444511543977050105834554459062220967730897579910930090065836718454058165802749493626886601119545168389392398538539442414259397502579494191759213640338782480393083550720568824340324207904286318852024355868444836261073599613809081204681933474809526597222004176481300032530680159622356892937674423960751001298011628253033621230735393939084232482707975505621013552376352647727322029851747184058330318490903292879398582784166220349298995682250082915850866447156807194546916224707448311432926192116276953422174464987352037928803560854756603683362381870387658143843479939880341478481281911603238750283265125076718227352997850619861475067123582828192195132343682850131486408087911698512723214992029539078952865440555048171661439204149716062714772654992834116317040832283593850034032922489240398082722868397536039835822676888659739870002971880640560332650880710689656693582773473730686948957839981029979278115062496101198353601248464283393429827163127802397071799590700755779781875629090142392359986162329654979215686556118665509508667460989363738709162003805018870928214538350096770827047558951363419992732285613539103895885581865057589706061740990887045501131157669486576029553247378776042135998060881338225697955549746719967334574971076096875943298300036106415435079861145799084118729981940982438131170777398889823287105563363712625481084482419705375478224457390135998895689803352197218550761513325748320673909389240318856251090092139337074008199338926349817367082565358679567617292468787275738635430410979117785641555175764079559317886400054193336213116672790402316356538241896638257367549864470405104483585183893779632506775666323571426840337311888257001114336747308711075676748826884297105414050195766124128537669122056192781555408569095440407221226162196083083908719397564721117883133010181939707090366036535076694121330577432088861280170608805715459236085810831765074793856861402671745497088336797307446170581121788391192404397853477810428392778220600749708638841873463623806520956099830398359463667738922539382419421562189415583380289515745960645336348279400829731077182326839366977323118942444326286286670285190295882353617588450152129697143905271806117139643067192191622078574484759276097861648296980576853408956099670005578365775506416689011686183989467069631279249042733488029440586416251837458063963480953329559917170114926419911186126876976272246474921679709766516284461750832267264672251490020235152068094964146898953861158379295762187819170050646720705632238622516804591718377632325572809556003895642973530677961791152712755184029742649174939694075029077954396835883347616951532179522008545306966903637690296092872897796675429883974190133950354580561678935648061467859094404604618292759967811663309587811484902145162384849609709100059239898516251459972974579454032438634662515237728919985481403338835572400702036146859514148256743130338943112957379074596037861684206895726557935282619414433091066397336814618133390221192010032861130042793329775546709346093620901682548642779726903974873762659073540227650732970541864495089579719122953187273351755022732157984916865397865601609955028512767593482366065273261327229056876908546835811959865052565330971298718688625886555488476186024949688583115592600244125620490369093623454328790206121708507072210875774271470169580238807029089267130076806506435572839530942153622925318556745549061979801463141379242541241976058167776052337504911332717039778856640669132980646190192602849366790203225078815239298623796334977739984167857307172037931061780191673993791181893008885619465390840979531699213081862076066631113650246842532804110680988910219823572098593262673827689815140950164561878896410616744318932111789312082786272949534695648404786724733570437786978449044331127117717783246072753306982326433089982607741509605471737078143264496134814065614526952050582657286555693664999630146835543016759995266374036503109336794208573814695546093308637038178688689092089734293389653197145984115340309860885421617964306900408185391524576331695865126663833862052980513193617234909826813473204863401375199968000725298324994699285470061699267242466251906942687964934090477513541517363479342885389634424034977004374679222553568695109676423258789943286473370457739974651181686594088154157722223768325919616173136605054504213423856328436803614844071041673268506298478453586512788522057551465515058542259170325141086396061834103264300629304581294999691597680959645728165426390685053786608102165481701027980271971071073466032041589117463649547026442408025584155151859729336833851188807953698780809574296559319410530057947528022023472525138276270314942429860850736940333065795717292709717472722319132211639500624705944695032850465710959065429194047856723822445765166683892510174835138323164244730019438187407786327323121828956548220434583369313396203362833247009178924605191699449896203675452055594635373124075392242191482931661085618062297168842937726362810845886812763413650762315054862444385581012756784592659886309970085663505569376189030076753646480616564394634171457440493131659499474658766279479266708764229733730238696453719745829984609655366645905197866064229047453730591740578815069642152711479436652097252551594189053887505416364418535121022824401364753482906903969410024711258446383159701718373648250726900660157223916285660935862880535826357300604598811572997437334854677242128772780175067426330099825142975685448242218728291110985901686987455784657169467610115169624565742364702061441176234939107252842949341156841940641132840502511419411228393822391494411105748119174604270026974671602057371355768027465014283977380951587566863986262236898091672104310752480579775550463510442037479741595916511554244157933970672348349429390441981100562839187262784336303246085654948501152288668642883295010230784900791422533048076998282042354102540989969613271746625052423783503251886150132415476529587174049968176162820628331072235076198622484946645846287729162739783013124123766560873395938355549200564397757638614932143193124488106560481882715946642119123514314463646830306325954347456468027796334452586117199461947985390496406116085236032175633879587237128187013864202720855976733733392905437321911748028671633670829870949464602796908680750231022840712829141808850426412655380721043863330461177096047567963120906051626460542690723274116353817173034419058529262956196545920067061326470565691839792684523297410436804504414387570000185130357932975528810343167959601644755036581846652896733825853763233860196929166568883484036182304980601661354307247073498296563484727737999774329564696985235125245622121998827887886338330996460986778348136668070404017987428013359830607153636029133066663588719495840670968673532553006040641473363752748461188287784349885157764747671503001013260882400284488330860719096353302898352719196444513608977634850646773646377671163004162443192134364779351968373047877597989431041096484948508491985346546095904238036616978219162049470874601951267211088590264949921361882800138727745801701329515945832366371819424671865096815140732989969535699561418358320590187962401498777785008689655210627065628518568549459371893621197814247016270825742083004283167010198211647229607064313554714077894380395140217885724258480490997314452777078876627748290634895873626435148905068629684014330309421339014664514648016813251539851716117492803165594411529724762160938979039517411861682044158508583000222378307344463745490040591789030883057883428332181168188392066424530004085199840033245557281698214067725211338807536660439097095812822871662569556981185264864684733614480729068986486590052674410462160313793512029793681557336919044968355165813078614738852687346058637366572477978039365922280876818460016966167259045519967522464983381703585933533986052880656899793845067132125098009064080804863297389524278505216312622206444561371954213243662173901056273272718698449133799175844054404821832175421065630525997530853116732938210273416469270391942773159839246714432066102944636122205732052318850332791275846531662657084789869772698277665793713775672582293457359201016708802356093772662974220180057600470356542862214166815126440883767548577451154940311901177982038072150805315214688042722239473189139155288775793166187084793888402061216146512110092710590145109643548934687901473511379820693185988925785600179967170312978107549841913763440848954565137710186350488929429427160594835109501691642160936246123261092400231403170918150037509091905069251262494131601161537191465245736907116703023622784805958590651653292542895438961004438735409619328725648480086524233971088518292478947665406658742222489806696845792041632213935293702319555994116245243058116411690433800270554766623402634737884884231968287118041481340299593038836743013482941916604131780728894972075138823386136308373267828356754568143873135006295947135104161229263366705278136544020321887883318547346764969066498941703731813595963831276166277071926243901366089482653464132673061264132457193485158088078455044345696702153856756996818942217891685444303975268781506490508657614077927090419617874079794724818366152846157956966681924299367602233997116506626991356569154568854615289381183157183880865418504208314064446261355539131674730387520864334382496339265563919467051376731117435235226603014106248976120522256483672512499612203272870560784115051939380000152419067792735005033978741002217170400641354750473012196109806202073794367873867000505744179362815504573856456099070041704101419983883424855340648275529441838604413541477212272700753718819030387760224127326793574224258400477874460546634485708791016536072857806675438788002316205495248323232166627537580202520033978024478554617255991103516356545177458451832360334415402221737526350867984566613749023928703153819977329770890709674970605860474493529485790967001959783558933223669655715735607566526950741056460003461180066891021125998313793004989899152434008152087654561729771577523864435244917013506910492059542653622328221010611762220461542379550564396236006904292834277600383909665247721379022607862377948349341117681132070493106781140871253304680023234549445039199147498761916311036331198360765734203580630643684701556680611677412620084706241307713308318764086878803470623525598882828071254104311560268003864825064459445870244621003361332445164023439631400349438945778284796679057956808552299298831098081134365922192320178915201249061847645690286239334402970992384368410450325686406355412805433898226203912235994489639694726650654292041227717122402173695149534515880075478586147543238642209534710595637397533772289063482311457808371365209690025372542351209778780581231538677861983882595441749009628767899461249892402652984182053656732212940006155783576016198689240215192393645138357452679243598598219472489003917990302408061404199806738870843734193486058393145574468509210279628313893426529912771224354401816741025209353819983640154647498037802367305899315941867041345454504320578986519568711602043422125204391446302541019590562785393343303562506161558450766688398927207620102832252502500303222934882459502529879236471867413881915300328780053166631295681871980101154993388061699011296928474776914799492973494689443057932206377232861378905993059053375040015796596022577398345665473507926186942106798113245110571609771523144955382858438379693850157376725464829051156206951872104164188896784146380398712467841274378189458885935451060972194992464124958394338217835584900850735351658701865497682997956723923351602600303374493669946412190893521249985715240740002092180345361540065833916995743062713222151477149331185093012780987122716956714112243038584491251675300651998374944629987855146986447330996626921725250981214413112581250535260666192680776254480356698943185683900247003342588926637208951854287495866960423105427546194058065603203219997998892820996397669267226953328648339478577049400754557636133761765885820419702820558055097670231201017056553978050086409246250697124139448907197268079584113346231951272679429877456830305247624484847509477320599539530949530796980835538783086532068351435471090960659499504541440173700991381564306529503689374178085479735420091251791963516130816615711985607544921440126199927672007205151169388060347351330479504807660713595357044961504761848134626036067337872727451221876409298066896845764010168741864940358787387082432709519973205286003771967703135314574831714364953245647721822529489703291208093704842617947697211006006991459582207689263530156898819383534741719564278070406432711338085645546909308695071636217230680518901532486194457811215146214012333925756937570905460077475749662737829879969099413918299299305159109840344117965474289164638954450185256503158655163214862289260894598839447197892858674353450582096079636060953493398928773429860109691966880246936150435619045376578755877153031591833894452273495215685706189065389837023719166911937818019256648414597389846377757829766279081649929567542012806906371225212125937853364139171961679374806284429865046441343681912077006773695431908996225800679242599674383446100285928451398707712301758946173031528654388221944711727979981439916300191290966906078269344377465258612664469234327538216036415843898082884174026613428620785266969824629100157553809681613590638925493429051644115740074327517382985073127121748717343824201075781210446946826665612368526082040257257887527073888003039638570915368695484953578619283194921144229436029894498189651050073903374261689361568541639150890411861223458115296847998227570950728778387494711640583632665346223853016067419085776602320265829898356429083394635272779405495144622314088233738393577899831505403158731057956058187243962481877270116664288570149843375728861391015232525551856185569594661501057495841118237645438373111462381486809203079046149958053273212933343193724210623627660415480670108260003159773897810662320134631687210102620661060852986866221877523048858666657666818209208893125573202385511036530650765143062892756336975347165637321031526534829820625764998817332108370244620875103646585072224348160621021708757311927540224378855871923312903907267277127592501456334153029130014926801672299805349529023820415387012393529016112101938554739255010591229674120251393119772231422366008754404808949422180296214222386059652234571908746518231426629039761825249530259982053306531963687291801737183811227278892218407429969815126325863694332650958099671690828123060214124067704235315065186605902898059356148995264838979174987528929434194542581932228663477297285638817687185088662315579769950467354924386786358920982283276742878446194664518459708398796167687258505500942916767044255419066535799606197242992851640411873892928706704866541801141041004889794330107980227227320244406948399132723785757190541317978979653217491235546233691915887895918799284435213328173748586958766379245424975702603081820372600385135676191342823575579241322178771980969576807840507066684671441498893025349109936006102236423853492105641419428201974612854892856261940388059201325496585257426874824513093647138093527071735751487078510265015659135414096479398696492467553553350753692014067809101895161749186874576492248209079277876306323139512816066484814222507145110402928424440302123874879902373515894088626301675155982644501262439872033534494232212613031034903666178814487974061483987327779366185521928830712595256988158906638022200853553931743572951993420898649304418885921684398594592422679684307878527478990674510562418115830373906445091866989378137867081335662332348977484636395403030707158244431000555539220142262247516404488067897368983598499604757152984563970746034367384335241784514570148748396770773970565634908324289883599073680298408230598731374858451533588986401588740827373468684236145258021410024327289724979291342515906974080779562016541858716200143806431038238308929857238294419637030321169221279820697466956692148938489565904581749249474032306710664390492561064848513846549770583197761914528673975135254595767968828358783836647003596057994256776715077431792681065104752994017519725195169979814494024807200726315571433855097228891059685808987480848431729959469712664626613921390998935887341377470810792865100368806009677880981741956176743591305464455786143574740773932982932060119254681214040502508341771099921622246675309441398058355272090265852168648305613136617356021288921491978473695743477069426633969855457816397027183532730906950688682841438172524018692432719445149372753440567467139103639016636431027126929810481038813293859771743767083262184215250698925869118393092376688599593012408943897913113073242046889465335734989427837748040042500400299677483138281741704666083342682055264320597168085101161685753280263084096715667506069296378114482254706142387877120724592025243621272359137807969033308991571616125512646603037371672388288130091389625376531636755181014982590014301503290634466889940692994142488303314588157766771979672575999979467781195067476257616168730141575233859407576864441444781910304183553247882024033736270510551408920450469898520839478828118048782431039151321291173566622465742795755162971898507173172387996510636118600263685775275140833748622446980683308456401018608259918048406867893595975181068137146937428795159168994211767655246489433691686742906663467979625584500563361700554396810143375564326811514376002050663635591157901147865669515303956730252871593109075136466849503687883234449143175147348243648900724533224979541654644647038250258968662427963582747879931691999572685955315434923666221840483993752838487466551919407569774136427528874708943150280932361506362242978339273674446621756473509675266006318696343269276920904374554606851594837287648987620182873493010270917110448814410678122544536809252827814238453598003831933768101054140067827471309256194982898938482035256879482899170681044455437452572158248069228134159246145986469456405382044060193936143988924309265024411202016743191680892236483349372510757757553551521913474123163900062291816733995139438887102040755208041208939418099538286125928946978397566263662864338362919339642167343406923944748249033047069603410025515480786215315330105973005061602925998141082347298299449772058968565971606289374485269162268721411155872975415209644984528136086037097473890142860348967330920757270127652453587561131520505086763931677391617500548041523833658426431694546807009614900370114048358077586440939285857731371016962041808051136922829186154990584333933494414570835114909664280858609067780367225403563087475221847328422609253569739152187097758202477458524944996133015645592395259657362526071711137900396629094488839805545348498808803723864346275798845122475493195650991114774948765086440500165919100298936012341678227138604903449757574013235347337685945642223438180507118686635419442406911771626562076877858153743567980708369510106667028164955375071614184101957230561794703203169875393836631993856833363358091399903312911166339550239312419667538754313502405470019714954666229635169155533164892180228626006846802047853467159038290466719653741416698236029170450994158772685913261050931749365006315791419075156724071071996486522137794513312409741634454523076699378786424508658752675535351387585737277392702539900132188200558020844305681783821392945023616329413731625740178183569476244083790137944746512474715093687401271683821853263670482946115706787103316958287620793912744518450797675173387991808830188564249186312420140881205385892258024405507036191376601011028832757633096998139989008678768175868443134277480804556994645047435597903260145931643632805753342099847362514924358805298919037998489452058748614177462595725853044315886265664921261667161544290945819781014177455780478863461434864498542532759202101578408531181221072550612197169634509702895702107269738777530046662508762319177702283188067397355175032888316293184771311171006166485173181505964182917103592685936637087912992315321619113709400338448198972519682167545110473895529000723784928163287278677666788536549968534234913860313514412775399283555298822752211671801670062062777831841285955046948934084917009059568875093643315397141887069165751100573958935465221190898020792695180768491895258166377657029256167708779733084843398438654875044893211249410906116093279707307660673886557231070528446655058973914724711131099950497286485901213988778535699451875208422545514839018338542059770961703837024604164724263553250066160502834323830902651791357704677500653680844648821055823472545770695506505594813980960037079202812805546213011755816924628951926197327161955831655389523236673802726571014590410307486749289930210590570650699618264392741184591265182570010762319222128930208359195322292980619373123313512201702649598066880796010043737284238779807748841557561077248144955352631130741417111731152170230147880644565399228514751187443969554565260791145918816357853614551712073854051818015077755679272211689008723269058720918163048092609188582867876589975075276836226645142221805257474450130170615129943148306003712992518092367406965578277626216431388904532844084738831866578010305483308603204980392501222262663079927159388230237281971445563228407474087482789400966907772249957780856152782641649940348000399326651075104649368647528783468596142909479034351827407852203245467390235197543654749192318388657817447926556582309722446723471139040367293071246664189048560686639922008071800838271706415083630447098132663732618825654256442004224242160521341699885732625357955166295524287623258385129565845558783931080318812410509612731529852432748534611064843419030138761305748370141514235363166671022007989143135962421019052480114141466614083961336681229597390401938782590883648924332450089608562048377684229238435625750095891059521405718370293918260390905301242855299257998051037702646845259547581090489275359649063660335743540358309755760623752524451596341256882409197731519904231217258291417108432856577892558142828949902472366030740419044440648917894256920308080541303402203217577255026916350320041029631396618671169503765751917599011073633030241081584739118982571256994198785001326679456395837617908605753072801885224670181666806913548295405456891555407365470095972850432534660877708820660208660095818490285566305553390210244835885067079003003378609467369555637787212717219926185006195045160919128135909242004187999570137670215849546022676114890653183648502559549421489946524549725238025039388708553693459553336100796729615811888889043771641568093996773444743015781291531259157409170172921462625682941676626253340273466183407423703271027357093383431922978819440125618450852164729339446564091738045195323279600555133798940880746992114082041884468202158993227045062899812321759194011783414559846305935505869051586235934159065886973794182512969417063538516475144011848272236494358114983306167781470893007847836172362226698363253594661885193624935236216472090338707056068526607762026149151352755897810252475766893867969848052138670167278383860193255360635334101477013851865089746838904079680969898156751954650287115571217146980079935284093676810951514661310674102927859692563739761005053925250329236896992622885448452648858720848504706891036781595572702559326070094843944849341440474271516108691606604371875679813922973903936993822139037090316556467921406101760225376632223892869134411346200831153033670218133641777883946564829389688696456394849555052128107600873572100360620254963389900567033148614013272988331577819363983173448146993480043587983960232572682994328205089315944111661072814922611563923235288147424199980018318015909037786604719625669682557998086688913551930368860878287842366037985260694638634299779627449241536038616838849730258052610129711625002338574487922382851305365880684707193131015818903610171693388161386974368033684560400695397988276047925348685987109574108240010243133120053376787927134399051441177090029412862024936908869298219905884851020999403981645331783478652514368034231500780451930533542038088837592194152511022324070662086348077914725497118190329511298489939839435986385777439723590564577593900152605218950734270129517269202560784420449858520915067985293868139373726297785845133654452807149828419431497008069476107997025400458890626868889083621055803974822534050951689812758533864994407238890067186267227844524985874903771699178228448443071332054538918688807984976966954847029378776342221895309271107418607148878041007339851575759136139526723353912932090783513383501274624464472418920543412110097043469041470476346766820082876178222839002327492114227978745866421416334135446538651105790255333660631643279835772731820687069546837440884852703641879507414225621102594253407144578533944587833088840001698302141543548907090142787615806189339555295027092873022429784424339099315088853798308115437372677995964758561947036193476215644468877587673608893508277764707375444896983892055641493450496153842575172836663291987182329585288619851019535056669889261924345313000071855460978918304419833763562394040385793314933949226428054580497958062671098089833937096512763793636211603442842726009331654968981922945373907880601600199629969361535372187257498886780319188388386376270673317043108590713455216213201463021216233986932219809199662828670007720754377954984606292212532353428956293101439147504622207551623905985271232892845449539383216308532576761679316872482906661569727281181292507459776262545779621913059099023193675411475596215678231413675571152158632426281567380514638112890906454495870662886803666338322106659736268423276901168307498088298214301557858228169174705630671879976903683375723990172601651941289751502412397653747495039012763471677930862237763194741605744563572123547307962204713702251951648126716522633739240182131621536338293526279169110637723612013650593762216841268025328932957588616918805205940003577588442399274945320360274636212198998310966618782006470193280328053031568108765994165819215311242926223766911470932411733789461432108955169745121758118132028348926226436731112972829040596845201333233058233243529996495093521194156316477723602618506985836482065708898772946808272286628327014275101904398268690047746396997457210319749536272834322845604417495131269745102500664750657433978039332053145315589916658078802080085866960183315379208854296413536390845336269633467808425649717147651673957978653887044861341933924988643949927692914789594804804846637483811094934732456409086505029892246664580432096660167319453474611932511579793105742220276284591404770723152738068221677704168792992710056449345258955277783180291886517762214527940604916277501853320793206810843813944048323467067700372408322643453574254567619325119432398623144657425566258431440844406307901580053918363411905535440569632750819959715357107004426965966708962986893013825544139256297273789467512907931066895888065500387171820820544576429229688789482664165533864566039936675769161603994377947972711168990605681937050186794230087544306383321497037429204991265051489930016684497560612503868345339648213513414001327099930049954014259867694695505210262267832577843492124038911762881050400713658499136634115451124842668296184217058894437391407887951634192092278623130645700162602824714095917690370684955601499040799343989483917798867164523289991713840229786284708048309424377417834436911580683342694529470654452734326001806202124854986522248723165750408323598469920423234764447923545209130449381595446884893484498923572181392909176727709658287511187392974732278405592076727391300458464885816515006234785563188492492733001454562633217693900287763586095705791502980527856081109431935613080855177247815198440894023963145488109941952186977061903489091761017934301105646487707998800967489547313276069563392984258414563616685257015845998544705913926188479381731251333059037465339024697801406354713842078778528427361843972009219747464449175286581876269518345160457688657288533109174448203350462113974453830526309802778437423884847736101180703354392807231751862474533228584256324998672792277984341921960771633047885590934122486420706183975583331347945823039047757530321737286546173682238170715622790774926339876263367885286519943497548728859698092998309524050747466881544444326534510896088503923764272991040321600442241890522392643328762514986188679255034016358568696824819066656849435039853089610842226819621519800871192204321582881797536101597972896268964957327457037450894753825538437188003243546851914137258375516312110246206911638724930032016338378104872751136446750267997140737714719790751069765606177863629188705140421359531906519550693114022792077064591980827746308340878834581051337500682705471834505339370889993935483832841668127404687894566296249074832895606582030723471917047264358281187754639928901307857998692094242823927353978695502973908713729207430637552650152368223856141001380770732584571506708686477164775096059132164670842482063288243325723340228022303566681106258562445535258497988837701891549492704131070623957882401111376224283626583642760960369832796213514394274077567794764590805317165938339597842807366403195864434992024149302715700201951218545411397861914919163554103969143988944287167042163408227174439351014675859660636085602059126490439413797981205447824582081015373108053459786790235062786678212617580876815119347786988182049450371478469472921585633655381118274993237353615108056583961977200674116169632331486252509335823100955850044250697860291223341662768814837500704437825973160456682478746281344934562869878817797790094856306524408902070088482846423209568160578278347277669516565458966215378868311499154771011105239046009967676070621351051392753511389060403874189173365842806684724412636928796526331236309096476503220044152437893947238540054102872507813309091002811721520522455962030554546561907130337839836045820520277680901562899034789396953912152746343554269377841403003473121313425364314567029907425479167332443194548508730418285795229838061366909288610252866862527879729234864379511177022939913162965151917464893495145799986316764930167236085030800426693120366006877722217274266043024888726226140925971604932739488018632563666707997655159153433594326079280492920619241856404203619780056987746688227466017828954524284589075235971742439667837462454232147666151978177024329101715536605580660664210941509505357088950970981899295917323597264443476985263106234690474752461280921288097352423936378658272721732498444701077555844509475830302295781310196491778385178106978812652593009903874957070606656350723944715276872658140468685336217767034767894960837926007773409879052102847905928853956483638860166673682387787968814698819605922776079291975244971777860036993937594523171161114296087636058094499844534901412542497590470149094709796599211750504015807234846764111580517729952228922257849390574636812582639591116071086592335438276678177650730054503734737466638190358636009115219259454547516380547331608027752719141888726454660331863446964338633787117984997951119176124471645320186563446951230769317485062094602041593777344896204813073997296972393714686247104640611215472155602094308509648817676217935681190946319203394467551197168774745546395688215359047862834995715535788781775910588838249607466932714554046125378345671846056541097239879278824395215383994276560019581254477178728840447666730541144342462512501855934730499288431259720922816838175078124607397188131062876035516689070237871599611341596183093434726834705576702373307005858388328063689512603168542341851939251584313195478153834937900294509352148349209854956340782243271352642254808784636113267556387995176305954658117399788118505772063945606000477839968146388002863904680103688279841907623641131376608830691122616610139562078721875113952688759940270587441588913768801185941279541744391272313197792651762540090843742714588979846626827136323095290585690864164462109317195940297838912116290754013041151819384022488393889119804515172110839926893822651907643709405405693958517803196216148784025510236915070895921931324378420080844612727096990976846162893294422068904326678560291781712563151301766062154313887382678669901209651951143671090460183292540570224328934301755150484734579899993746763473045121411065177357959231912187761043159859332220101384961072115331280967430177894914699515481986373121795677221310052996973360450277534426033931683394170087776193958459162845259032025897629122159907287066568661640997585241687745096107686520213908091819675621163002263188930198774508676973495287954967023018922526488915647973347931535515983221545797651631874100346725514598475493679165529205671677247212398332248714665654461630979490620193635032881718584881130298268192386302235378738436870037846443007925792226107374216485414895174450362775514385482261127697093835103959022465424936775130165808028396418357987914284318436878137623212842332336944751821770632809058664905689325232180904963989492675948487803331668051562629931950377769431177332877911611654566897608655890623450296103316672906278697865580607657509191694623559536433218853227564129257370233589775208492865261820859728135945660256505354207335917741289752307764111642995977390201581437677202293263139024846235696423174791085694158162102936549712983728649411225427772728641004991570053862768853086542413713402560386067672579016434352051007336372181589214013702990995998447294799930914056758903288502676962668753791764264105155950257169728339835591647571282147695263999348493767703198984812475938835875314692733348863495676818423955860526120009942335112795236920704545360689001168133051424388245925799929602192690500905261949110077436663653836272286742166793716687927673821418601330314922997235285753409313135108823352830894316271965799697214240302668825865006217290732792813255387373558831408992515670957023518365168163647055173263974473928586917931300520966912892859744584710327850853803017240602389292414324468968990753640431576680613727669781919444794774226510819919006176117278466914518953874002921517351558749060364899656857402081754402673124198262317911555804971984388571163224754374501847405200960296154326526254012635326565751566152934488043820762543672470116258188226596061061456213335715637994244629366889536336125807906052233624314260479719104797330204884018138444570898647525674031205625602257393581729408449497061247185992545299669609750620253652053532460294671597675198135599273032114464350061905742319809610205261594059531532826834478833138778895231658552076144904644065087912627422350383081926135009518436813383116693710109387411621815590769631032938904432961963376894656513599177634883121978585566837323843663775436030011404102145909128623874330691754565740176894665389141692585217145298839553188149980024472480736536428331660563209668579072044540115062876042864000415079259192815113853721646044832247638988791785931759273363824491955497846019151558881009868894445300415630952077620443741743863463755624174351637023803323141914489678941250809564024362090905453417690017466448468075212826355012855799372415777665796164501720662909475345671788737230789684473541835026072974235781580987087693385499734207066105606085679940023698041627873336983718759796860959313989115908492307940385910084718194095693186066622181254336548389798077720712165888450083610664023575535250670345401104171540095729265683570737199677757731060311151692200413638664602093065434929196144366982653513768905369627964484617024029847568636049230041877228358264295632076462690695354918607435615159461673407626152590042168560834985546039573325309562294302748078970248943567291101298788375761517118173100295450349271587399871355746515003946028549295868424782750925466429786111416434036788040067545797421859827512411739069053162405099474450801623880171104690580442998325729566416530910173865137861845912029870214869176606572518908222805719633482473282933943082560223520290026383642602374521206129325346753082350175783996698805815745161407138491497908625875753667396033961121626222122520757589462638323392869173098589461518092125777714501611551617879510672604906306818719163505997404710895033578735373641413425702799060345849817270335395295190062661561563509497696466455594899974180189454435259834163762611757738555287613598833980367064603412643097823025056310705103722317668606271965044884998966939760107517415745270702034898994053716395154949350870675496887313263977899814562689770769422322755569167031431199332267060193036166476891114583570351151903382298788439568793939036806365692867472262795430555231448915842883545270824805999172342661956913679347554776342512504979669274606033087095303602037558095052699569406672215014846191903474930709703479355061692310716876277250293313776030520014818926465178680286450947544391244601541386460609821118737117073771295224836744065664212389544842452374590115272451627118614469466990520725975739557918827039583293250662727692767504867536979341486920641975653374372515775031453099129844598522276259917400068632431428365365041272827933884768138276219221547223532674594078724809501713610582505060352838654313722852751643395477731514346700431260196370226055654578550360528000523910642814688465612677353333122826649597850348041630199164733990424115878816999556341278118244548200875604339786941415448907586643896456205215180526429817813255976022287031197744713548006331704409324483495706984263311305548443209604781421015382651175297391991868338811149585911781583980947078351807398737563637988617641717833300042153661770673301647352398228173101832885656935608087016340588374868209970311020084057702371163265581322251716363878458718886458576699259225544369589663673057134272795528386331195234296498499475278882212073955609410644763602172778892931232914903616431048100030676065838399836152922261608682943517867321501366534199495208778657712155450694894149739270289745296647137240604340252718467266860422074276991121829577296245685670303309886793132862257800778834787880188031994139443553300889084093474523820748585397032849242401156107456251106268117527286372245795445419540253147261321495506845505657041466023163638598799247457477225689389156737136882808401969997958589373474848359773849657269880574656952985881374793136397959139950176756912025123388845001263213807787722383773442477841543937796295955994839700032113400646348503934737854301312207722071061032237077084327438387056743571173518485613611524327436792169667206620500810575808064988846049307324298410216633438488800241548414810133216233441145994429002457911112865943013994644769921807148246554233623598053310079983955634299464897746225450961915730004429285642813783966026254310470477637651590287469646976650596162137056077154364506183666932599074568341406138723288533934051292548815755389779716710337285275518214935377962832589955596648810918997005749772012615477162680928284736390593425814615640705653169233751817829744417533035297752621627474758565614064639725984188383767116948077365333255019107965536597791232851080620450655247229259762786492165568127840943447589854488764971569585719816761506336892810769934697499384690204335960480633829364688205299777142057300906128488569013520933630101716442843728076097864890196839140093153857087542888730126498880415310137480766668043271043769059173623189267600272409967824082427417896805244335750436087349917567134263460800371290478372507773975159532591506818680868381769135473192370260914283266705326335076354009699348422045703514575883291774637890455448852772735016450328675152247549549203618288653556759065491596656021252301658100605947713726513230655488744286234410233797579630827141474842730871481690420606172280100693768218607111764635882822819139468947074826901653400477398395058811678521965554907976938081830620010029495281633985389346575870091001981015836900513362770607125919810952207500919610737575572387604100352148517584311689327911174335519900941289160189804295234679490197762631722959170212774212548764378286275747940749770370950468286659075622261688424555996729799315470508099812575560637088692115355787538185875249056726333525179334520557786992659383742743252739326465907134578968937985694044646453090742015058993382427300404613271341100695435469911948066600400819520481454550712998415352372198601258283311856324134245555132015550138698048800763020880981496620991984714285598987018977947579833785402426159760232021827011320546089437724501888345142804617474828148479199668367918898889181093680645371937065629027891545621710091120999572973178448932189306347308011044916403848624352676834063961031422514310463687544107005531088515503147570594249633342823303290720139945346512723569916896576697347543508641665060883225204365549571344060717173737284879822238767021638023341807175058182633390502814158031029555454000056575431939312909308315102383164440917566125594963242533374191551941174489104538754143840858707502270422048546375619734419520130929744957431809511363773930724067298404800645121155622283956830175562202891662576794292222893579879150140140304974724685989611720893634687742746068371586022106785727029313321840558066664848436940163668526286431370033237355114018761710937736384384604794619827742434990117524056577670154950946734999743962753718918487565359899976725464092568240149902305248427897765097285893722561241953396758109858339235433294890345184900419223301733494497250927513264185127365803182534964476841105374084178291797112307652236408050003076795517043448508541852151548907190776809170207838622703071705364999291588323636729211809317125666981100797983273819121235965955085153857779206167564449129865851280151043368057945584884078799178443397859102995557328901993117700759227883101282539636878519338039241966115859589629039119790466431585739746393515933251303506836078644226780860364976098274064936449030674337928019732417665641028162805049227051502542810509659291660677575849953854584139108513240247155523148391440366596115817903660049460659816439527429894533423600600252898258604437762854675265760449110302406842589008717477068711593900084589237942614662873518200612897553370318035171712002433983537578583223024111928901527243468458043306677687495351697806983153533817330102076037831214062212870720244765028975739692792435276138933535625250256075745836946421988262610669281355755016365529651849056777095138151286163770482684134370308549041341236189932493923556404354843663741690355174228047854672130971815949299002497074568787437194265415464032146745058737658354635076579682903353518979646950252136435920551171246941453858775282365338453750682031039778818192558927520066861806333113277902953007332836699875612724275188764220347756349865074568398773705726425913261470038938700697875002014301959068125229295159901652302919551575543772100829558841742734408033834444594782123087841560328825208136738683902211582630763998530419420834237747664571562701752663116852322961647975595891520482551996525967949553722360974691250707631652969174002250664903971225924625746302766504821310493602512048041212314325867961123694357012804789917212415442675256679367555361794444689310326778697272374152816748497131008277646509465783848336236616464385965024146734641461606307482222395565797301970750408604887517391174937516716693299062382093098205877008496215159717694739268326644391244217678261924437342960471539588875484814663940436428406160874716346863544649928199524295443119754403228434389665027167242204476732847243463851854224663036192684841934807385685540825396049041570910946034199570780047709036884520737762009694737980777220107315630955046124375744872306279217775491444061144821190302534393361099076221212084112561124933375659725369213540144334899047306013370868003281730031077729770596307572847296402877286686429280376803421244457866692107235986552563834960379775175004932765096295888185470359362512552721358739758697423608923667214466236544928702467830376158125545281432170545470627199128870268561537918706553384224692625148195160437784964390502290158857297490271948237032033502148075627889248069624349757346558885847466448983849108855859313763374832835346132762647006207344922295964053493495279269744598637559262429414442054113174001745926227697265753350273885428156918545674746182878426449137492239695751951027819092451692473810472764490895399638008235488656321780787927033173277781747051520746191080596243864113341843225869910269973700915017610602494566928795847705832590155767855678783065520045342887150365388918583786797453539270142734323141508623051189453080366768375089066210527563545899609390362576028037055009189775215554779164082231104295169317374955930446158927003019114127130494384299145647027011539800859112385255507803431034097440705274433854345281828895395121125108718402260617350810360448845587138267791702109833138757816705041153844511364665844844066044693780885138095560560647363407650712051471583976193196683924656597084132013302476175022945313854412059166606545841509922240440501463145088406155962627534225547633753574930704646922929652900290207737475970459715249650359389741929763501901086683071830947385762216264873378019178610415119157797252234249663633452796764805839585163201440004310666027599753035537846226704488849436755650425406997491556017066289153085661701132342781784883516235887986393464646840347562273293921252101591727337951634679271781854017657872106094085331927691166802496969048220493482091015182918252784174404567290525572153127611252845264235402063208183012534454187606408471214291754666979363114060810970142417244544409605983687894946150491911497810137068268154073948689453631798111861077700426862620400951953159839796600182272490218979183343502872328645980214668452380326722676858442697802353570237391887330829688966274279431088578974750094460276676325330251716517304545387579023904543148697041321677545041959471391806576753825902916824462868991419719497765918936830339810435524421043797933245712313357143729282790800452808031583539146541510890056844941566595223600774414626860361686283468744430797388230426697435878116953750690643169162023818088579842534279923415577251210190825762292742714624772894344297419542188008416859274576807738240057118663020168870583555970227410066829133478240033350799035146208276212123458974155155593441228529728622300315682031026527516811125773917587740052029553327907994317767833492632581625056517651439764195643629371718493500482662006851148440352441730315030396341527349522368489023671875354274294413716603502793104451736296957027056135569108251451844009244491529442327335079933615823144010825644976622545275764600352584139538024422258582962890896651969658722263441927881551777501033554352858193095995480117993312007432430800661372782959694833196170146285564398283113998975867317876515738588595061792086384670590381561884663617828899730539953527161489296647047961387576097006008752504605900445753861243355128763652740824896336251306473248086328651480356992619787205103932460035463806653784299385521622339058034693539314506061388288716949576253867433621827213048002042371648592259885735554434389664175434463948590026188406497989104619066938190008829444047504919368403681850886150837481896102079026238568585740732952916617429556688641300066382378535717856879087623316183665780794256582158592119125873907486245477699144045280777255027634507455629119494466993123658341888440876214100114423272479667554897840184142135825010429879389358565456899096308574349653815381267373143174784119619771766253813185662688790476477650616825312581544022167238044535314169639671558806014815784771293999415461615832203759580597427226692204869475199550241277059659481759216487923160831083728647508193006772494236805526476202540930283691951304246068513040752047738741109620864523372378503888335051946832520071178950794359968965527089597341194267657165059257811007051092504206293991180012764630551015785800343448243406169039421868386460069114423557944892198870082567778804080413398638728100874648618510892773012637690104371453232032780788606419491628890864316253812955784142420280946619154946953051973524267559444380613898504684294130063803395102825499186987823490492685480719907158282977747786204283903181117928020173571506274461330996471683325625702823351790619055154557699532613467128571641159388765820328496207718163566295881766242061384375999775622226349218824143339861877660821892661590032498744937094759868894058365973733505883958362131664249114275535253104619778553165797915612492982807402236065602715955211953929923711999410938296400660741481172216145592949858427643115970666981392254701926481336015833201010583516212563682211126904272768882989710303763707097732690647565123454532429275878150492382136009058869763965129967944086477472192547212722052155118681125349627851981659992633960604216718557082821735998035230793966734809711138856567775256948931336231942157814349816921575878752039916250371062331081941525216882783412891638941301265198816888549212265278185081064612214145876434963355976024587055701236376117887990083950162452913681182441289583056540869193145784792895555718402082216839211561008009822214723380096935825315122616378265819359551589335638609458430077166984054361105717560023408384875973295691650573523146651177561533680614220375797788636594937135451394159940046578604602658312455844930043410231666773285170327663395724323992484064799635805023125366101329139804220936304659034453295374832315180237570667728798136460273436980584645135593788587127942518212434806681685724997781441144432666718839257477045890602803366599060985052148411661845673406031131910159278499447557260172980464176848321496878155387145868205862748293762900392880983609597073698953089391500289288517513720913455407906278090936570076484991726949624739847593082330407978438747515682977706479003532500752569404189682442756961735881536962399490425631752116174097701702571704160164605424633323964721717652248721124158049187241667986008159856100888458346778816493471027313370445183623416361671662764138490580233316210315081972841797317457393412009598143204538010824220322346048486895843181976845352381380926936780542779964791367347749766188349947612320107573460752923870937295209998878727870918089328153550790571819681917549172004290239770558461175219024916420095958620062263692582215190050692871096250850265948054786617186752557631957065869849055939485184172376089905799620519064336002089888550778753949127631548863727752315183111028119761432099623698449205732914702546410015903176003713451582619357629292386665061379542431383865210276640409046024603651762093718870726538726550482667703904616125909387776098040714313420301565215364734629800450016279897114714622791707243960339413474078197061108436834531799312278479787170319338644950006452741136843573056639544623018417025046268463312518092975811860747967870023471355432711723764995216859989846324332338874637744284326928036038396082506129097053339479614441673422516194235440877746644833871384140966858258610538504835075185065003701924713114706571790492839211295957716944434634652178702767835005574377552559792925786188531392937940456307803017770051438688434163238574359410380982280757959116706680740746478041617130170681931898815600024139222260454251522765250494269144486287772476385772663582622755632533447885838405373273830015879328367437373959118794920480599399925123118629210639384481418172638130089778462229202914303723624801538213655877874531468180289527056590227273843991433034461598936908171510395125392930022260821515266189550814174845901660684460848352857712184594953189092654108860202472579501109021902466127059303694526502436087717774091503519014511760769876996905779543094758943199203011264508681603014256978235957033155664598540805095915175309398618746335380601256279992706910273324803531324441320603307876564964325538564523881547743812847329943806680352091687443383569297820660239757823557454467155637733025794849200183847611132046639219712736517303698421763360883744475572531043012161297315037596136385920380920351746738179587042531745402291047123871381403967241104167295433415480716493679575861814950953480049724490376517941043751254372887064880230840344625210277138814745652856498724493911303559457594944597670542084596575873451551164301760186247419371707202578353243126705350697888179787179733654395960577499759624980871125212291857713789252814417125101234612074563725668168060540682350434621423196346869151470348059836107377444096496352972682120144280141979966910486752357229027914079067131275176490062850196568639218530310557077537939911913212268430002981689795801696474687320940541978737690780366226929221420436646100487951537654117015275968800760856424739664245453862307417568570197555742161269087401404565871155151335123046163419034648303315405287703581646842276093682845859326568202328588391822455679632333173837526701612565437193513912387837567636589675480182711023961471491851019504156294981984345126774111093999572574381964449371169836853475293864324213266721782149179822553362961185559753392173772655010312444315178219035371183934243912277912740645504642713988425782412316545598105622252772650969446062539123675535383289449658600148404290889563533303834466601752796393807293597236636730720472866514457531836705793541051049254873452267772024404726542969243405561785011681057246956952283810199170088232825139474672354965775173953261674659836899893613019982926664704561461177004691687446046892072000813626735203883290557890445587883478504220882601075448830456041531686991140336996951895278676167183705939515159705693394467340382009217362661786761834962326923098027039122709066555525345986040470441075188264572810212958960622211966137862019464894732911205101145843885151896534834327225121390330085599956361343752361575541682563248202078894749292373402873508590656010323288451336717848738089422570512816121378100974930247491876633454728820012954902421277185373682087933578181136698868414751757905496296952506039608194566230842764294864733703734131288812943298313887724201402977056532368176795532255449837354245070313932927490958445328856891285388026337223205654548175082557192806203998494315748803754378207788209120616306543246012662910777051218911171668256458772937287038746718995405862546209893478351537786223688951352288063751021720248569901570616318060635789666674304745109646861131719894745046380896976486958760651638143886311371908473767138585010017551305435670630864447925751203131805317489133773741621073601147185622888328929460844560608916720767087407233974332457534708887956755298805024803878375321305271235058331713482993203239990348207363717116903695474742779289059691536846962345239461992543634788747533110265159807670425974653130852297778573208158266315628184573063466998771655478535890347526118648219686915369747819684965557541257832561846993493536156408620872658115240871052092563661133940443123518319321871388064803580616265742642902591914376978282884325109976501064460999152259375704174475758132618479292839567669953355544433596284325022510142818621095384148265590534181746890239679915931217503051567297462338631683105926145045032788641709239410163417587759864759640660355123853736431013070965733901308284288014534788492886987567581739945220243808281931940434061401195711781525205949902454557072457390347875016232936984827633720437236679569996581513185508038265025891863108929444940346896233393693839893628959350205814837572297005747803729432046012078164220820740732509579748313293615376535863153812593309600072677937740734574869577966915688195417166317589505737835112681829440872904982289728409212621591301279278499590014342291599633043019976013530650253569612514076753727500971570172689289112205047092403110543004535362899336760980066286728309594990006442335244040682164927998519296627963168713222903893354279768925217790453488836332345715226286019292492648806396060026498418882267545812852511298917059000328411875526102311042775107845218799342288077993333175439544350004736399868357252979140622421540170839028798354821351195316534677467435533725531730154858528304680454809150854007367957492292264015094766195677366270638455109105823220431106788356823067291664734800289940851264799594159447528492385832474711178717499008472349762269319911336464030871970759097390550014932157055023828998966444659918161351037200653859445708231119104993795292353066934976249375130486464953739870823128808256946667807855096282743406625586476240022463293935249375962352652112015072205205449975431593158870479447322660762661883495810410100541906855260976146656320651683279409394904403767436113198656844447979590016009335988410850936554555821026562068667836144342353843382840395206734146253129820423924973463245859992852572823184378222171293507047636169141512463431584387090469733430881307794381298785019980030739106121312340112779867360269186147911515288276839061968098400354044092132562782314530861378993137007795773977955672065424169196604229389178576043664475209141851981272700658038642042825222381715307832187218843944461801939812978135462604934928119221719580074142769072650252755978129921204488019324918581343513795016189469513088272373908191378603062971054944540025597865854837224908048013982584093341189015754336703328147643723131837699651808276887536823158085996608501164844047409238009874027203612966518433588743872751356730697540411631239417953936518628055722992022373647160475201352907002967984602494647275424142725322412608682487737962698858032199799515866021800980216585748806864399188054048132221830917447848774303400894986297103180924894637565641518401059675023193210107699208012443656820855621612409412730937404046910366660498622905011111081132794504621365507684924929617144318293189057483100631720548603132718026186227476495949209353297373462869810423297585871255737822303264584265737268994181089306080923884199560639729872437089655743785676910947676287056660127615629096540199524148357117618532349719881017790631434663432974301635741892095581191326888361515868008808451718357806933447631770564767979275893423680646652959701944177622964652698335331567877779755932258419412179709391808097378144942171731532975729973394295718763227640077396721312340083327053505446317610846003792465130311348543603086674804811305333160306747548578913970454220879634489529995309419065477240604372707799573085469767653844931539980327425049661728596241102331885505454335887328347578451582921226013477714060278214834513368758054804809078331998931458411521319795972991631653298171137818036693407312134116604318253642544428348833826880382523816653145794937398403816324092095342062185900273910332824960872188225103237087033894027735637356555570256714440192874179431195737308038699178396162485782447713052413984481814322667212723721099682647931857399965678848592058843834417674745336700871793378995262061877496888974438010278495430908526109893555729088248215360858142930466580927491539615342519145493462564070150594705658588656251432145436632731697286871740028813027672115041632720865545432178846263047898099993623514599566001770797493832740441301659153971255037981580474533666840270081758633204190149411785657727259006085438525247170414655741271591073057363512364416267560584807181341711472023128900403812456747484831325387537819642576984711792316495981083134163828278846067578655763824905441335847084286116544654363863052907630897721874695473360538370055759260387174138396030486405799034194817382786334339267566825192143824447956944986436672244338404451159670649434969293160493652548576297939693354703234415390335872744547509412616086629397634088377894323300523471191429324643922692634118979584914477732076754595530969866913822122323490508552633821283239979326366113325782917052139462189791649162377849017509006165019127042815610256975584428519108291674932050506455233759460129939706078566078205169768992698645601135482445023658697310344356911138777168054928485934786194087699929596883854819501236730846105502090466484048226317554370522022985927246962153827945521708513352507900517599003879182583050977754324800541727666943315018195128109439798862360978099705251673853191076483077140121174024605428898779593889684380327927971093946823641325213682111361650048825019955341606579679464648153852288437392586924238785768057995007081682942065019871430464739389489326037341105611226484882732810611899802989972376769227395387611386318934590744113483620133730566941307676606402297654528462525940457129030403810436677544665024964472082787977101124978559285501830168308003172513395828800444464393274835300311292219068589034867234346209165759829857550257825228131485337808075930967100518663302722104065935087917297727246003588265988640853767358664618437544977962350756889371241837663038375560227482787811347412843805373000721900853440188455266867271053718933803638196027118461356053765816115169611405245154345368312566236241661253529794800648919312708006697958220174562733239669814212798260469927897961983389648138347416003986843832834735566655441815706689683693083339587098819818534895888641459650463667845835680732780223681489169513575199020012863694393682396626758545537994421954119893781842053163090793826422851490441512969705998980843941525776338617330310413317531788427517704769398430560814889268767595398590382605578472766414975944185214915448628028525244972969807570139648343677756964984671573130945624815874031470281669327824363862451103597031691984877380771312061139897780809095939550483446297949043881608695688052411566113152954516861896431433227368193424273917957396512307554482733029399897764253310382355384888124447624998429613459445855104455683465259443561615381806150212224233363341869738905738164499101253796325939591086132748689683139352686368369224197964540894818447069889540307872983477872541047921312027209532265669410790177726065865819119345017481401036104099742750397087547382129916787634717770095167012347037355530365815610844939004393140368831583473779940711108062931910279381898508566462846725116566823536579662697998440231941611029705035596605455377279485972274530237589610000593026528514768563088749578233153536967824519976964085250900994118380931701820941722631389345221799038130399593220512767741588070931250907103953615033503138013257702648736895206549142552458507019248007404307617595762815156323498465671902760042272345594851204847436317739895114534480809514573177713533397054065205510611189672608224842683841263429594996473548252291366935811717833996161272347447052781277795864703701948932319587530584223732815659145722257198390484726728961934049595748306265583525090557120582665488496383636000810790823044138386600597424096890714155449888953720266996192516090367758346976674805601505307434935310133662141044375812232571125334315325426440008046630157970922256320135248458174062580407365017564251259767126304418236002935066368367666782866911950033522782970553786820929267910051978331326939659392986002583582224062859986265220308448686203464556091698250260501634508174517113077535397318894990901712872915691856471847559000739422112598153120442280426946727971641703721311099363533389370897531748538506367737152889279665297139831752053573068858352982832240392848351310471611054618185267774434309051167590666962496015894468583554194386869921634645274490096982574603879031505412472925547540314959198491671188306993893657058537595221130296003508717186088224216799182249350337979912977373678217594647109289502691999632511853456701419326454102333835462318244551571240518550285407078943933084505097767048905679381229834087712281745257807621646879479051350330955867115851057708630253393405445808106437218890959941421914544316592277280356090899541917834154146747798153094229651607198924757303601588048180293513055801614361118875912029622169597885187107367645095012663643527056179806088525461015584159439174835358448044175557989641023699586578305359096811565818359157931304514895659727869138395633924739934144585225934340538854263609449946761986642624007342076660848893628799708170890033670494163460154629071989961712966047493484247105033690302445895457547080673985363194701058991807809893057217157362366377630822528795632401793327457908567691040672739158372155369367225608859029376740617063919161815892189443199907529670080764338011492620236722371944948529975793484293422728010829352784332268209488484279356088916580105131850042454324352114446924044075651603088089180704252654134911852439711706677965290209006636438083329590625896177509128119885618357042564809753746974890026103870725908533530559665128431458817169997730099216097005427988717119097413496358643948890301555719571711192848817159130738256163205540780240129875472321454116711557652745769585590676900470182862625171992614304788055350752338370300655934146492047480777925640690487718599831380139219548328062906914657684195745791971777365515821652297139791492402836984694315831642417140303193863685442320055802490328600876784743671431036049777512301758766831724115426377748232911318569229816800074908726849076709552030600592766709803661274187489703600563318820014181782997289947243929781408268892253399988924485335018970941963946687977109951807463133042727714901102403902647225083693877123201228512215091673918418023004595517577528494638283324105446645376366462646685657944815610757826374894958314350088403891621616271757431241671625947025886158569399082859080892783016762051246700705133458896729613987823606306869981023143402806285021754127694134919303188721058488431251750102597863847327790129888494963506875441658231901175647988863679903182475981073233608770482062222054904897636445142106163868432155610006508544992257980215993468718518525607965588234766836845688780863283273145995780933958354509910600237253707840235290853195391819857110604064458258733059142053793835508996647932059000475622672284350518830895192829715327589090415773773800369162137400037500772515464930247801172551346146249050083921017969485391293694446819658751351200121609015432987086717850025372531715484148505366755017926979958241544740099693556327932950483681229129933795219031462277142352684654203769470625129362294893443205482265800520635256213436532667534576255916560742408608975512055817698988325859828477146868588657800619258808464201453620680708718132495243796823956815848659064177571561838453096046248106815518163963107119567136063619417015466486827885344174514720794534845886761586636542095096135610174556950929899236338403517095290020503913594008373349999807036364108738191971432562370929271307313219625665809792084631789543711095098053547416332599678453935962645341613104426776318720804282043583189490352429594859745342435300028771816645320860357094401182844984129795166728135335276622305212676832514812299842071783633597841604942136600052758871277864396819155182550370592551525871331928133638188641892916539818129122360498711944325504178997539097114849381306040008365547071301423185682219963699241980133074764645722610985546726692230792590956292439141055516109918686979712231099171475644170370942225337292776148955488331390978134249064134902656387698785981431572130632800757081883832582594019078585219513545774674399239134846345697806041521301809734753740224067225901495584617347401055648422940725903782476087782831918856826294257431859529464942121472979351864631981007678237424958400633675328670514443564656571331304127484804983831569587943943010126605900700613495112369746976786617345711985116731929663723590831479238822752099747078545641615022722003953425582865739457022686972544188483421128316326487393681873493219375745044521792754418899324506111521166760584893658472981582000671423231610533988471018294970912964221647635078658862686640932247692046354066811045223849080478818277590501082237874298393608134497938384695509953277620019671350752566327916063795068125022097847637490773411491566076571897516720796066349865794312336665855695405465202063484267186046730167466033882348811433237365585269763404727206362739133761176434179949741192109797916713960007485394337687346098984868845309576773214611424701714706796729177927541321594701310487339894286805554522110225349956449004760841819751560519404984475612684785262741364632562456664250939919703260364705289133055473682555491885205163575888686062191759074974178658831634885658811520049329574852487223491259620531331272046584719274035964937510022676468032306114965735260740422859848481108190830695240650485861037400905820778868254389937063105251870527656088453455758496356343038798629392683529799301984578227728685104337854407330766814992720721022535700138000018060430063175340705965711019874390010861490775598985861283756967772873085482374652664211168162474045919269437976521765160202555967478853441257391833944578143996929292928969095232360496220402966094249273676816059882583115497329882804123138057748502681074391083164443174484711521774881965160879311854125492746030731203095018247117730805282767992278123980447340278138831532364888527633490208699402552766730767548145002224267809135344136756315743094634165615036379025858091162936237682628833594580671621108952660199885788631587244033410275754013736450257338727683500190897118609359231131770583846467681632122845808721304164208799187402794034593594720559324888383117221161210184274133551795483271656747118345847959859745027077367919922090064923732029288403495779757696135480058794020817473617621722741833123493415196528728127243696560677582779433863118966921064237909663284434224260614817907500132230105701013611713477398359786212845846852672047411478603024335286631812834269431500636728742449086842780161506389714482581921131267371841584685934213126781038985357144379597122063983825280320785643352919628760493894205456405879424007575495433131155797384184354496698706534205031071701756871945628683872836234885959960722321310183564932753396246007906419973286668734733619495700280915180894613917534067408819189718395626223313406273623936949847054486150195324948375038381241682995160980674782869399113842298564596133005713513948009598907581101149913166102176963170849912978597749989267502080098164613846266574655556296902497407042702531685925170764440100363126394343348225902037117980252910610471494068641351358787233781595422141109830499806390053006691797147209242438234865419330891351869584240841655457704852241624452615144890614745643712457787311502895987746547094375619304815912106325466604613052368896985601243045735375362147746344576323879746782766707707361357003527215859427920204310869217610242698587930809326006018671045613992435108304836099306584757080846953473700955124620570899860036176793837443174199033961670583108972320613356081934921726702161112539738599293304344547615560447491756925804028977603639367585807963944239174989595494243383528609040169457092051476757255500708723186452571570957312177946392025032945914300369847494447169595154994829933836632262211389449782085124164933329562209311631018329163679145127179980497461860513106777446474607864576505787298846030048704800793842202742665361106260583818075141897268828764441197423330569870295506191925834515141225274457938916699103265261703031518390600356881243400168162703565059944474915928804457450859848738715695006344486732930301131955901424028350620227473799658305591501141618575330534612342330668929677106221658717042097923909978258508089364414573497651600505117021680733021173153067911419058895943429338240582520136747663082812931616740425506025252792131986399438813897591359476901856839225470199643628774738150356141148258745519124851065593875946639332037704278724104689390603604600159055775803127383327597346066244709118551977571184099138940502821457306341991390397726335661938320204536251724672430295841263258528968345282145406260305095130417680464980112971663793958067755512964322606070218062079236810503171045339360620013695424996774286104737963940567289144174544356090835672830945618197036105397505558793933927726142754962140701116262143235328709786823219125688747723527118783684896140066911392423578884903743334104830414325105739961197783868381716156301708855768851699633059609826976899601226334430591976842772990039547066229365393161972346373938627260781048049133633928606474758144747402699830838721780502037509990056238651705970158623952977969058834163495788625680454784646355241296600767902057608386330142192151087650137381678656289959687278303577718013825463528279002832510069952915037290247136852165836624240630448159956756411154585885202069195024329199155270309392848949571464552829429292088397873208807955837717437701301468508099934492800838583476601026044534356088495190252063444963366260315531457159015145031382694104994392711223668254021612586777139222130153609487322570386210853863533880804441841604515541859093025436391727793587726536984121623080110294195374328015349693804100285611917866839220845287035199433012525573316783734236056563686803661181104134850208560797582768664334796369627073876461252400877110059072386075153936207636044748105538709386382389779286529828070040454496592040451168895785762303062763730795779853566832383499236829799181015251029647460769388586756134496118773525201051057233856795913010657251228509045603478562494391436375878464561887362091014923235877001628725434444404553401845637808465041171111482495178836880172839698867607158285828115021208936614362001381234220270675652840922610882110753435503939302354882384566528758826287177880443379696126545889393427879209211525214780784409045398922429635383214693455295084088260461535954532401867380394650907754803653484613130259501807806758797785120733575527602200253163732099433323490815552423577589680240171243079905022951624763998156359228648515474396767643586950734524949148058940246426338849698263426550201015218477333430609320817321118376339406543991157777924539277067082154642915162038759582076130835823419870214117402968668566258546311222445878898801573320355660903449881197927553880732512314823557171591002725485043346372299364471598751897423337134956746748459548712981011753981231207180333744304820067649333299948015841234313787911559795431754680911142548156385502146225313194468982857263741278300349746697578330169845293029262142760191088985024038526050262527359622341500171870370586234079710502424198638272115937773800821396874692370899930944898700225479888618102676521737268194583338451009429268133884410080829076226667781640560845618134698026069167167707091210057947604717452925399133918791729463218968474875911030089796634002832351401860373789709943600366595504124832189325495258967258439695568168127754753924752345138120494303717298154899279502344187551705867058242303324739471209700574043588262087391800850138766266753794046978153490070777545325078935177228492935595455353834023673291348222934031213764753243752003467133493204063165623822542268330690293738738235436234900053404315347306899939699900353515254955676515905278988701419473545532495704916165756735268095726056878272324928562326860273016781702205836803661087578350011271316478641957061620270683598569803937390437013786870306050143343644169940734707838110060455059737461243464333061661908278299049104804894786077952817729784570904904014807636099638820228421766156350541202923241203681904988913133248331597698263292990598743124946205462969330483967310940672893846501038006270633691254697889751101116462145714241536434537699461891137098864045901051306522281456903073025620554461872624378955168715516772431000985972176021392726175885176807959404534804936505941476054114447467738587691570340293399166729713689268116252984556981075946267204707411099437730350242316712299619898600841708184007659501432743487574622288737364327279842942768418769006931162306272569302614203821134148472631672722567292972380398908137327200719892441175777612681077295967699758365094935426945049099297428445283757739571748721610797709730826979012347674743219471209142176944734584181824606073461925068572460619438091039153497040413432919834388654196044391656081492879525218453104470379345402080085829655747551428922293264317102337421812576148029367418921464898922663899229172732657348014905481852877866734129445067780527120165664771889266499074836721024045485568595551527090107610009240365908861051914517470732398560407041777189638190261953022935066880894265939357072866342824010609640089053391170234876104288391862155203865603966812972861006457858135617249893924836625607144080029165098736487130156586292902740540269047322830932618680560815429382418864005615178421542566325838829435970539680040792606572603298813216662111226610486743505238954761689535127775417581530356139669338438953927395344901250561230967975422846079742574011598202703241139697168900794582936876521647216665313666835658517129844079846827212130486566093789462472387430542633138478493442369965867720212995120887180517841423617997828785863856045601814178620189787762977347218930938532466115882827133667276160584222153298255003720770907057143347957808677890527008732738171632104643126818364812965704896934506926107263172743604570874225800933966354233061245482480265362503699102459793229189785972361965694230146582290967119670176114533054751655667114841169853770514875005895842875603991024902195170596127121822572397072282062047036922953798771517112248170424266838157622734138496490821067207259857135729643805941137007410498796289519199466905933462187939104917925041416822378698715540564105057923005376445384574502238044881897591371809238828601559445523798511006289147798036996220904386094172120834713998399132283072844767617868998699460834323100804359798783018841250327014010493087207353693196041135265702591756777069631684642995092595219614609995115651887146685609702370700178506200035840199340732242032665102672983783691314489332350303954572003257111713324978771224096523854341516010857540336117032577930776005289994469967383662146669434194577901349623571351364257386054566795709659940017707135740152732274070381666893115737659483973834342129285050444860135889057609617341152821739715346517861543175963041156556294189752899981965937142015679022530227033781127146695620391292953247720511612012595789593518904071003225447175218160087607378123286562462609067015215318012838401289307102568369660129288226325589153990702132000216905184143621670502159029392283318537016767139065987739633443234576637628247638068041549633020741160670449709525947667412211854229618180073437496589100057643775065128874854199301953259337004839144941406256885197061275484622341084714154945813603506703991573174448805854209151766537941896151224925658350763943483069416496999764743027258471053270288418574237661589972733067663942578496504064697964646824264830589208499063718973576966900850375152347454267097465942088455683878563014898096820753086735937879638505025193829316875250946638161038356872275402652345607918754489562619167027642914381432174042137184336426528499930301796324442759722963657498730002521168409853926534301136072148373873986202397027667293342119363528514478988908128510522922389402039797626039081487856353378824118697149165170570877214790861634915515097841963035636855787908119066101287731045821847441390310045963043117138323292227842456631456412443707017489063489295253070252167800532142120958446269224015690318010168294678162270578377654286988039288928760162452006102461567722820390808057153989255173113101053148423137502467324994114023581072535922023095851511157203629772809114109214847200779394471145576755372251018338837641208231780088140811850972139167393472338087747051257498459792925330652661799332204048767528992903798556526696463551243552204920155533269452887298463682833173852891416573516382385507663320128391085740717309223148025918988339419773189351191931632872400224942727614683015646710306112860534790660224897907927953330652227241887741348168772884988957298913512248881681913121453370549324638899887270935640106746486545967556178864289515887212949081324673631225836905423685648577335333015293231743056670965925251278800919943989898558599062131882628285335432151342781422417114069269189406052469377045702067500905306670663594384621226635158646312717097636920873162370682876560232059958081983765545995842044044821518435113678842261497296873446197676726912252381496045239918374964808345605952503300961217570507859118218753441095765681064790175321799179825348101348105051700944868839646270931597702124584756479837705693733546682532695948089460158367497289970056632764897756611966760699124220938493262007181081679393194974522257750005516967016871511118361880230151096100053346497730500291853418430830907621125460899830611932649980420183056888429710232751428945181192847690972616480025960760744594802458965729311326226818692124488065739873013465961880225828875556428943029083493698610022028703572168801093636437388509455695202896810623447781268400790537666695846236830139287043233811753879502987107193451496967323688908326434967399378377257317345139333482252475551808614603214617546284752539848657109193692247130915579336594785167778247866983731165204055840127170574751935279485364364519539120165548327988604584526301026505846594492488087789959111446934822385441354401623160638644391206684153082202662990179265436880386444420028762472369522073390842351757060399150119070256491505784050874864059822698512737820700448936630209418564423815830633497342699209079311992150718539858878769971478434755649871061331415147371429444615318766030020844663042516508549603996253745076992773799675878241163942115092431360690704069359240340741693056412330418672366827154335526894272273175338461502105681653424428758374865550840904238957432247135514717829493988357987525091704607903171564350860292271507168545029182317744931476617612564879509559937559311222797212400006157568532589589323518141503263273002203334823372829179387701792185616749814807720224548360926415960136358962107013762241909815866005305001859788575873588731243146999272138842997931896354725143871365914795017250001559385726867201381036380720645337963001780002448452840096438131995362956033950367898158360234053677600165544147346395539031802086522459282445534814257294894101314659219834973946805938146817893879874795459090821818407949667755706980448744706183921980468070410282724097697539800843441602771794479881808562565025057465932492856941339295811043122387365930499069155483107916892576028858958274527101933587275607515248502066579068882637931780278972266912062882225206277248708309807920415941583483155981151113715003213252936700914887757548201350386166673602137785949113269590885802180962817566444121955188130534338308690436729229438031894850944544706719631120416510532467677421624638860823495759367343746232904854531254799056999725075914530790030387777641339518265593573196092392443888900804365431562361810816623377803118986218097883084428579048438062919456713346172274928877218380952795683049489039509318336117378971650056366065486704778797024119072508207932415247077066672285918251890829566943346974097915116196844903848327670739183492178523215974585319832362168071991990967611621528947368339567812580490670320623376974999516707944557822866766123978367605500582159405740036890730712174203049273057821849795414931321210308225581723409725041254094514656542406038268199463291574236952038622558720272426385228750916252435979355813796512720716469991210631152979010002957031723268373399236751522890214379728936707152609843029035577623901626423332387774957705216360403848367956328611324787634117523542906846845913290030753403203925339886867374561472095614543869228959137903621088844706255836513854391075435617899082307657224732779122400790942312878223965716931079056671413958057389302441556406943032239699722790830751558978365212109142097220684923641149094226792264207639358066736132790529764629410805817106875031588742820479665226488089583350010678063894780986822063454519678206671086452605938770209842035778481138241853573309700874071524525403822638903135851065439341545807190665521753999510762393589772824023899075235181359901407251999467702507180189595722132806855385388805525983156914378547314157370065340329179821029412267341274609786589213162373382881470477274374304314920662066511198647365304623296801972754030571075729756330767964964762091464408871760659610966836733159910537633182455045932894296262932497727435300461095386385654480165640587655285903039378914287706249710195003555055452568608224465804667155844648079266139120135928005776195819308714717048634163831295686373949934205289822569457562537651807000662916951171514514265739505229114692884849260640176248436615445379671570514032158253202465222191711229386313942347759839298704036091808414543371583454288748688560525802181764482777457685503209452563459564953456600841472970463642650093515211760216140744706182147782947289105337687121715328922662556304857910711208170399318622207256783967229922095237297488256398080539677310169385673060456981480767825818964323090411209749065721610495857920103687430798317685882022549429729223057580272874732046473499420944422336801275925088030201046855229886735345527696275274982939497217978792907856752341273598051649523827778229299475907992095150340524507195985125803551056404339577883234408751078507923821417503994561402401509593605041543009658592191974093202346628628275061957242747309216737546963946140422267830950661408571341501767108412091711788266321232424802834867616530509425296433006805002749025499753507586921012530828319588118147466508066765529840368659848689109299139530502872862552319142719971766603560588164448141548160363776353808108421503148920778789773245945461272425238139880688405162251474243136548229595047908589378362466125565595213551262059327934528645844342974016828273818650116830136347555932715246867296521698541094572652363065388435970395954155119823058842244152004260694049530176314823109057686294964098529396700670393197792035100762295890376593300637554159254210027758618648290554884205813271596482877006551556228103311810051019639171605694727014853243158371562317307761464567892194019329627818770516210096712703212243323310924671544499623448820994760141247353116227009205571827062261996154090590066472513683052891385104755914096827525648981458697628524168688899243339926362736600375138797386398433987952365127916783661716377724455968835282651538464714899971805384825950401460360220767551467617944127357826586060040697121766294264542194303608850203435144724690370042682593488674914214547387252282858344090749536490391038865045725668862317391239928133161513237878915769028714128220009048773810226067324655641113263545157021829873559749664618377783298556083023836324139656983734557026580334324130160938680332850055374458170401881604914193484936948306725556285465743269169201844666193807945012849039610188659639851682313484967318499338351230674793914285813230326719315737678750606103954183586032830860513018194344711097934467205210941643075855112483918959060717176211624983767135730709346055928522393527484534192563220585816226612619531862944666625814271276972586001499790096730622654185025197905001091791273695650418819493033862319530071510788947702259866564513040104228179257765666191924686900429928390904151254195447580687541540472467213870642978185501666509356283902056942514753497321086215300490493391090532222861519256071053635686262709245795424164817903381436310372749744354693195562159361551029663828603188638168131448257892514922663430946331374562345981682066078492002348102955436375902980915857307114952322089875859454189838539341805645956936316316776883886475293508800503666906958411282141887928024717562762243902249958419565987521859033738804819233180814797350498213499464895145048381276320252557204749789501978792006211503901304581254105281655351864332022219080647708116857530772826479927263383606038762154275534225990588383155491989271727518429418842418247359305600467073581770974162281711330076564024547725267031968079815399445668843358589492854630908388499071163184263434685885141802159431277661817737442520408402500201347165844782704254959615201274352495438466363204139444191654481481696082845623259755506662897520848552137368027256389760673868732796784593405061198774836484329749699389989053267918030386090540146766672250350822700925363899363531494234379837170761982940121069363878631867466074024646472211082453073987701903580527107669443624941795148294433300104970546116990330546900210470507562016418279739535304482968052065586832297679524417229279069346574243931112203981273569576364287725997234976346677199827430061639620182835418931481091078327874484085466293596740670176398239811371012878716268249071804969795177716819458676457513752208330089719950961531811016652688886723141480773356207651302042675531010650202323357785007193239571020911613580472054148921317667562022553244275620944805195014490681645703132053998046420622276487355515295598851970126613351210359435999342015300920969634555249896316570394642488516605311761722639190084172326084833522273249822172742820212477495586003516907340812133502909330162501201065871726395785222135747460463693370032122022736181665244096296356948841058158376403427989762624842627724427423440904628781634991259676681154319288423564768963093700834984252738237128384749143759929124410086236478456120513223630255511185741687538888894467009010196298425540896608841378863042147379153869402258497832122939978841241273591565590165885580766304871697593538353554952608810736970406811294463791319974348787419100745757311018702039190959423195845521728396134080013478472672224309295908167915290202184031172371988146685428670366709713994565259834227395920037430033867245424940849746118383444499154336608679369244989853545829745092461103272137441658003684685773905685859110116801395370362467323451869879526040119690938948021449472009031355427928608210311978235629711297909332621559238328566504166840667145580341815255472400941033182766214996697921882489979449681353211501088479087720244166460107426989497828095723354909636686949678522068601942157534521782278750344743570249247400990827363065317050119176972763648752617931492711436696635801249390514336145375763609925976022133950690660704306615399151020965838277285103954267197094150377214898427666536497825437248807421512410997502118095776644725635049456465044062818626061528367199767620829887512872381853748996785204773039286833648327955135096934802360266830486944911115553745543420989726662472210328904097193133795147866419515807109905087246755404593237337833694253812839001261818740863648968419963261691767438064870386977349099156920722620400250242009012971826041259412396745232431355928081093331734419056180603696774384908509247893050167121011829749162594447764246372403954482744807069435937721059423194310014305915841188944081813412947749151009253336121200052307355851256009492176140932098871195825785435261444442428903480909418150352809297897244053250204139105534594956583025783992610932767160837340461202456005906138219697710753323374860291947792245121524555170543230703175871734896792557811756439655627867072955231369738831545292729588251194056474382801119306670034249009561197394420881004701999607958673575404047611519865280715379307178891586123522608224482050078935027611823786383533357188647602388262114885737043100364550349154268686744024588332559143587702935153764250761877355104001295691559006963725024721879027296116656163459076541109253490740344083849716366417077462703754175652981414717795323764102063736222881881739886018460797635764483248641698248682664520062498200061810439074498672512018128021808373431908491791274461606250594297736390651850795332917424689227088857459230695985305952068413224503231378770853307417630795964196590259392480500939086517942831876051547003676420966599225256925217407600759225861244531915092867597752416927942329399629523424448775926878552789536306847310657295047704924117989454049014049292639965475195407875382205787596193032116200782081235712838626134467463117167671439961918966867365923873801777731054347105867920433996081369551058229813598094463685331220054438340210888121307263600042441727490275148258502564434427615646514227819244447534074274227358146241819297927387144361591188589955944496977829169445096199332493499614948612354918979002423250870065645767493530653201825791858152982224439745162158749270654677501348707552127008388781497313588926528411877942087545716201931727460409001955310537151102079471074496964844088959194359328031716774706147077340897435364169685349056357815169592666905104671801291835001562260979813210186084581424597540354768466065577071035406045643488008026380380166638881458262660594464101917412550919657486432690296138732289138575510400491966107009910940369819028503577069894808337243400236223724227062852937788484133327992846351853592617341481891007521805821112738529074245159206769014485916292999166678381931843128092962936096358173773198522974354397544074476317348761329313760154522940073141010615320466869805860148991854561918170687674300644948555567485817046003533116474374420105930911439232497208697917248450866796317735003610047810333049244070138439898471429970486910853148567570057993785716799843355241588311162527925585403109741340290034620031505177803471151885140795980935979213655263744475625809337493117267606394621646812636355140635756453945160312561864082789488791702245969976494443730019606536629350708643176789110055122098739097375609330921582134555951203902987612502542312159357903745512642195168792153333218158030243470930434913816359684986392804410394622626483764068976301500506891740506075328190698816654740406003749101664176254035933559709327166115886775821247030670712588644998957227086948506605397097753695562782330120503930996893582306482861124699618059027085696643808725711566088766648047748687507321132702979732071561338349852505435640200225062147560968735754646195718113053513855914171633872785782330685057696556998082683521550041557041073689902947770416590696246076645654431644079054684843155541723772490547761273670906134038726945782092418601069183413824151015338447699171588861366197473718402333051441352955171300227660194739555553772714943848704314211921707794894516981048452005500039985949439839970389841642880488926103146053085767368260410010039234654787111824868336706060795617193928540884710987322248269052641855385132192186500269557739174065801859301187867995939946669941125035539186944794381825691954131358808446105821596139449743741928501236104875067268989603207455103715212404644388207918808391974663816792714824477062086837108106868935595248071551587524301527912087671862889891366298866122027382305751546572538497877431565844844648749758516994329634182638012661864559221363659208114978059530096654589481006039455735366180921041191168881436777148108431466998834784599826637295584313116394266511604009399596189295281603717117764996233581096202139243059542992839242369492646062680359782157397285358999324025189164883409103172236555927986530134150546508005368231530521585960290753044769346246239328385365491504285595887434124641538935119644276035772751066388412055152887426491117587169374395303694518072535233541234798456864445901742003090151669234597017073136940815351233440015208496907873370821129910725512100341533103702410251705831528329971099251874656105888833334050736065072357773092940052501310724603930950307665430054561472400569277454534262330093713901658962060346459143689690050571803065861174980275022348293641603976644252623462003815949143642251200630708864480869824554515937141933847394878629764561965594341060204075560503566110475343091922471927106500751261850767441896345909662747691202995980036833590035059966855724585438693607565608960272841000461445899867981722122791390148213555229788939738929331748236112139001566150643918887380648137213712210286460886367665902131642699477836751473836696729013889331922739415119608647530424694625027296401153909892729560398563888705788721421349964536174952258280286695589834813971268016241403881550510142165550493129679721543955944674910930558774441071436894866344930296427507929459596375202304253342750314115590428397333048263321852146480943816686583618475919835207543948016951770399856925448381303961097495840339297603707696561030904806628846008754211885135112951201121661156975513089202360023767746041045575926579336698496074227340302535124140681314337242637419879635177368517707041863198126823764722585569930289641928009135902211488081373710901139138067270868233069374980846823747986685655745613806517708982968755715124524760383841925653338213873024827861613029243234262493794181239429827943954535689854899959788757146453822075308576212476389937469609869262266365958070579203414189700784677863464782688615643123417798603369553896896588473763818221315355027936560798880988427620151431781161596338672896185580495917754170804462054383693144138009190537305782580367049615354282022211138186562295375121915051985273279721802775596893390640457764996828451380600629654510715278001108543674685487454665532943273104860273017770890271705916759341239818032657961198766922877335499763221805475819815381656410705827745383978167179016860110670813523015134866237410779204324436753751338153630735512388717263812246203251353150044039015236381328595728716836628275650471660284567970728378800693570215019856671294584463123888453478990189467592295293098876762194771028477409313416429287220706955779794528134102118556750926996645552204184651708454552125354500740661151236638906796157029958735680047135165678002380847632651783729459240672354715311641166536319850010371628419836105212376752862064778666064060608282353638314637424657094390005543580764927185966070843482678845379312569473727420096862315695448305942900028585475892288989480349651076703750236866563905124997572622118962964008929808786206231139936238206173028404538676032821237083866247624830228210242654135190832791801848130056330046211868787430090017864698857413931865032882974803609723830481002570489585162716386521497579377432309987041649010806332274518820511567529859124535354003682329691855794208487196972057413795185118731118984583260998601712782248401476986573212911558790945287708160728190324882269212874243943013362688536746864246086327006802386680279808788604204463358921848999956941462236357102996547388108445397344977302160009416279902439547649021290799505006751672935795634231573177509314073729894694425877903140749224679364559915177398021780506507595595899074305778686800001114256301655272822107350053309497387282649909447398843461234307580731989707611617736644180850082198987172718237060123878461552345857394072361969075692747029055280975490875328369510307981197923980261194104701882495183896976769170124592829897331338529936709384669189863752534159828259471128411481021358448107730946767179342230983428150189511807181397856404979267998738467465281483103880624834813517077694639465370244062167147378376390563232450480632617551991299954660748588977377181206408567793326956553931031964670217702536536635933321076895555193933784457264781502012731944808777544846082532700939252098731020621461817196856968590340122627166177008978796197252157699209884666067569005643777364917733713889659159270526130929766125134468396826683060458810505735933225374717156688492922183221978817168264362541093814106275616332119981231972277214842006173675283129706397065486278321313313898160158761185852819688374543008710897088065300567505328185292221085942069622796569109608401215140932770337144259925305279613295546856455916168349280112611897396481912273063358098590262372508747312627498571743167124653812912702858486135567757688421029184970147905103208104495906593362571481691311138090426215067289468657136214704853755515134565652948684556136394983969212170978673082820622588926592757838290676476699762652298723401844124773856705541357661698076372314014296329341724855829285660661584763915623241452299101824474027337447513462544422864573645753940462287716167155007208446752454249692494025401138283873115255616814415902712488494960474191228222626650733131831175409112257361696892484713318557668991685725592901672070001329047519638378281311168256585046948205287408283414261505405798943933242861291203196451382420064051353552502690063270399175908024258956751161672777693376706479821728931781456987427203521170394321601842723725676931987888457720207197669448628944788919501748454254841690717581594020380510657809330809470061683196079213363059717188198385072688046372403519961692776525380193542766940798771149269114650253720650546076927285021653437000440337626205098360447582964638040998290266076356302192152371105632787757860802665981850278195817096817638376368276923815000560794098147333788768833155430661416990098329476936170518074446830375432649804056608753451861004455063494849501495922904916946286912243491796881108386133197305458238632911430446394997643779632534708140555673979010830850497772361161669706860714796429329879230631736093314712553111710438110163561547168723858482802978023003063349921053272903187870354051727733067988903138454660784624274772839208953781264755574083685418966219665693717435540147526783987776730370761562337761892038355063319657875288704687784700471391900805371362963905190115057026931158681024267701490564354281012887202024965936252835779427060673818392432416235116522534763194055414058730848173680202249690459206922593949484785977866355994469429932550779187570440602057546568357163260921247884613580433841783359948680320904654277651718258269658748848495281250026120468403278885327473485531710877763619102105193156376466420006697370243743568247639539073639724895282957694616904252524880370609681748828328146574677056968032787318020676390023600399205635423203529957660017736112595562400128893792552200934484905153652487238479915094876202600314506324544114127351707243191184668307861146721979371065884757697808632063104812399028240808180023055654301660698717920885791119745400511784522550777026612690390340115943951436708375534168723854890810739970898443888889750117559373373761824558286998925446963188653688295290345096481316799686811524323522713622696332908426036717965358586958561967997851850842956369013332693687791204391845994126112196626771434573093546398464940039922715856666252032106483778029198467664205653498133244132090000821679233034562905601230146296467520924362675302373496751381576154227791435984318818202372255014009296164432868340950235769008217878762081967981537472120028026166088758690319059740782638198183059002934881230822056842143756133852360135146906315698601064166876474129003110005034998591268778602159196793317976094575192653329728530165965185771284932474980271806913364947889938226635756705758588159633674505014040385187406698464662237684218749994009148028992357621507794656742492953279464550744757295383861999367911258883880844698563406063712150697312037726040506816785344096638108740996369332456344312172998343900623168977498461395763249704537257513105680979992365867204623983124484878542235958822687852958661429565469627824509438411844583334698577841700543003786250304605715006470713595201556648392185370464809166770869140645462863933756179504655987011606677566333032887842498988073021122450935932128467997118919283699544854060082683488879729059420707612607221009738605225755702088606214493328043686941347482447536995805401855979447624963290442656925865907929803078288969798377975376481666789181245166243152922082552322874066374387682833880360079447508519893151503620635798814374993978882787610259876575108143165450975254221858498727859262198879973201083664899741959451958940407254251070482580492587151740971694178753594420546885650340181803151118132271707392119184743453302572580176699068641182165306578385703191531598187696533769534439144732179208604378050734022326393931232628794434857273967183700446696820693477684753270593227320732539639661596469781100668683342526152213710489305019754437092308386550634212884544945418793838902252093577207958790791486783982786830361965456065286928877685780598328833759624156437195620464368004526374354304415503419705485671565411030146824344524415490710279677480865745518356935159038613937330426410398801713364605262780626376833906408710432013025713119809280958253037515000260812677842260988097055506134112217371925647645553832642823310401375499267025372268746875221166414084927358305362255779996169051537048112453423915475209565137964112662057099777144849212909266547556665648885318996237465494178454979316068787318471174108142379220309420816458045892108926335440422871248507824647738001140413393791525732402560494511977707861845773370869968468127041749692980231574477684869639067574865561287971179033866313768197339445438864263505485232238541850515414245634609219453906918230665588164506011212865836561419899213241770840007513207997381220870272523286788867408133995011963479489428223584318861056864971134211083607389339095743472480173639797870437752524163080695021688790680308907935573290764102831285688269769928057170786800305574603635411795138768602122252031922027495404117990092950840903503776569859111720087770900041402119648891616522387559188119639259215110815401887606217848990140565741919391101133203696245190372007154291578943151015285977420149820601254307117250606849592602730647525506881036012155797694127864730353097597275949383118363698503513717853094832621924556367647030152411340706619904652659630988191289208248681280245413308367682534227360560353102909835449713657416164462383391285595686070469517779059471634308550787137307782215458578339680260873817189347578026423239934294540968149625994769698699677514328999241729949792421629920886453110304129364775117707256631824621409293919209812622340806515217942097103718689755091727863456622534886959637526933742198059867982888230809838401783447971787645878683067083590491418204966164268338966615409506237011555923872762130402560188751811171042254265037648940470459435885348751373718645283951823871466628833774022903926108763470090067086899398079522885232321747910217473857945784074439764328344874489470082027921755921441019378949425918501564090190258275608951812622835076373414248258303066966784680100563547660551020917261484672763016940818003630515372890147712455657225693013564936378749432474643009181446579505595175850086755771506015796566032469181263231842232168362205268417808870401129959390148414668093811573865590252149615959937204924060537751799585662308817060814057820013037694388591223682029438064222386062774224399230171742934914040243409446746640985749767484236550234598108370923939879903389682598851183813909406003312605909681643938721050109080095143719178869754416479655907096707446470932378825893059256030742934975933002155506585934982262522399659243077572556701600134814930072392369063542380830373918345701161494534331464306525633222156012123984332221886684212784372426051495458013193302513677767899507799945977805257782251132222603531916554340505163928354279067166191833844163468459024505455845900085345920812811578090603171043443872176557227089934091197777211687638604031562643205278656422945191806692607171961418374542536225038520464433517465290026460092264597039799072767442964701810357472306645150703486197922077343425921199032526900120723240733945284957484199077666496883253713570619472811115949935864209419117531653827264489138645738986175834017363448818573757044456304828188424556017711697854588288656312396837729911248605070218836938955193856067950504489212107335862256400534975403612388036364046954425902687835710352754543339428455291812220851528421322386052200857506293615299941222340641737001059650099631639943524406839538357070478094144397379070709202539408552618755753240182674999410090245417068051624501968224545231201591767313316171125862540014162324787849893041821599914426059117949122197636913713758907632660955936630453189945599666391270756027956729932653317513502929950552679467727842916473511530963527451809165562326985267317140587438535135998511350726388967460352926962735838407247447958127270240580051814455889066208766885632252007717208302516300367918858020189364015942818795664113505715646204805962593534645403186785907709482069201559660243725143960649032061987883852750501250202204772864528568115852200545131866955985565358311513004407946102949348471739927116017636313873973525373693170656565081786687189395208846532789382677497556693753647262742255138530192203047632987772745609101127318290635758637790624530963105438849988513924317340848060143942778695271418886821714517368751823630730922387766782960340166851711757920785323571934941652644120153939571973556614331370447797313080819450394561564321076423442359212854769608166591069456534952220784764660950076305835550741007934946475297965669334370769781449197171726767057596346853749448113869107721134140066432544207495400462174600177224824651321384781080300679555834595059895082246934717058276507015397268632915062929440600557825769629366180401178210107706686887710280239647572635396268094679599377191806426185760742732156974798921131104678406525601941323591385110028799145622638074849035309917786415667760160834764849689899203307907348072272464942111973603049944806783040370779348305135916462934321448227962237413339824731154127783818043528645616756153591247297539482172228254146967288553231379640333897726908538408033907968317035468838923825805941977433441875457208548898455158914725179257207199872376024672743923647831015128409268373108585646821923981038497208272415819932848794228946761506226193761114687037734071399623874464319455132016583769895977828653285556382028546129224509977374878925721289521006008941929101475437751863252898478330672249323573996122346005028809797807413824073475320556456621181195462917690491985231382607413963991117607585636753608037564207614551468955607303750733963608941075017051438532517571988027856437662784514733819523975048246390283693301102317701297731178057187727953321402282153615717148524688005661434340991960696679575959737884074993059218259967511005639103037443685632730675886710433568186060342088982395584668137250586544869797120887317857317424184072471239956008119859392899988059527208888988551300908846792187182037910569230045705492792513955505311868031731266386981506110540323907242846423744642007016804172530427920189060309383232263212480568295885803091873343985377757142368398297118925867750837156432685313346556866146223119720680050376857234231706444465390010965671646535430259977517986078188152484427555599587770770672058755595608761704370905326185319585004823052091438270239478284246495373447326026784950269910371231923487071508853150097841231824158979888625693566977056138758985146763016513551828719162939405920934444130005321345530887594450994999843647975432511096241760323012752276326998808255218129012977956343887891641319729357367618234279727887323700310312618222103649000161304019108516870405808647027564088828641881218535739447264809430937844532998433844832824523061157502263889570512395716708880905196414464914304957994731474090699299488795572249006872316358768225396948045821633287736033638961818977092168834977842177727365016690125727517324899976538523511651466394053266497941128683893354327474330856969261998977238261578465256369784393717674932247354069318686419867688352079045714664893867835239957151353636033892672917029539626739428764690689027889303970520388535556176390956277202965386526620018695865761692533823219421066467194776820616985861599230211390158018115693395684473269752608512006228281997998469714102829744922602476822820956480588002990052473549825243946776141651810023225569146302076580835630558600037023913294581495875711013538923199031638525827828001893490647001632177194719514627495276011582149243051003890647901903070768661077601975919699577362218289693583207935940684836154303122548038054390017743165603778338023442509120448074868250546115015006182985682168571893913924995807860399222831799005889201352036834620115783349340791405805519109870832098809522764991620914393679121845999348503135632012101409566734886866980213997289332296021295375848425542902020211992655973425872824387255837996743759363257766559511777510472266660513963621272059984364447804389075443023517608696182833581756316159745248503391444675621134129108536026109266913138745751455931471100556118325004075269400670371122743500260183488268788474335352348057830484580910732763356103083273092951832546512017006477252896150163030975582018406785687424502274880001409142656650288156882780310289093485788963710749452005719085032864454324376630085901076552344861363925606174190648284669363635361738095048914579742992245115263427889893430949413706174005366369350952577849691209789510684974227664382933486545521253958942033438776071886835072265208389030150575908456684907527207648771707814028240852324729933564329140505745275819740440248623685532800883242752737815943456659946623946288449092922736520025735332062988206386860734642185730281595332514955660331839752335096577572918225830329967704985890885499614138599060106221471624815412063220746091967963145659245801211481226107918947187555178223557454599533713761328220503212274556868594857801158586189850804607227390420058767000571138680852918594824706029361871871770683148427544515001205079636452500809002508814781560245578467585272756972029943890193220046586714780634965185819461467116155512994522576088744640178136119983121201415067309375094888265355708521226729490962764704029506140216545890170641595116247468673806541440273952135298570302950629089965619176713488974688166458992505529733997020486511513650388212343360191536722483637691062069426300223609672014972090858336253247800608649190730162959785733363516134119645777841507474159812044593467473997579425916027167953430668010708640747381047307185725532014263530012933382146836961359937672293324439321621689194650522836658026026575829912066941107722349644195865116329441386187418579091553159022600851151465299509590790049945215638781760587529864141837580313085350273088461674909201303698875062908958854358178950502028403355244308720475752139039780398029038593229355427691531870179438455489915778691207277374707744187989452182660855701739521822760418437047693454657355961429947434496336459821200232104201310348782833372432427093818391929276139876555595583893102634169439019983621269658334236015957720429807134359548290703332069752170244074746278418778741942861878035610527800740654977218852282351789009671970885644550368522133437116344892519826008875794321386977824462308570756322173044202248540003790085420558464820588069524130539837030339577572929883706994515014468585890766093355037938212626020611862989543967149344713536452860654794634606293988136432484882035526163166071613928583257192312899216942375905520989750683218926405071116927860523969873314775253081336553493955265828589612945826672332757403878258368242999022185723399513658536111657502007839619152390230634814976206897073873998476197494911365415636109871024826222588866862782828902540574556812826263813588923470790092608929965577056460036998843370244172565602529824800182766987126549094674251470005994220307627904991074061648485344630574615527944114262093191748391238080190271544026682757413177869829608641636137159131760019266521933100077334720975585769161545265588196141333606460524786679956643401492982605272782073628337970066314471165553944288569412216630452398385601709402568654738191123733985216764346939558027261931644801107827756531016250346899000089088025507808395991401870804722107865525883517802289390943714576147007259084434465033138161941120919159223644035527064107506014984825356008655697863180187335819458425507757617187834585697391870484050795181110085291291074534285139260591517014870628524145326634155005465880452546616824534802732962787960779682337972837510225363024403758323797721650396760297419680830758436446975187644138232032774733201906714602536852735275404525306855973519094202863946536160002138011349612024180951693790942475815663351682251200542281474513136957679266773585325296397228367725556576450424245394344504996933970955794717081885927208186885150895341021962633622922548315814490836279731679251431269508924699952583323483580545869220689200206244975216004074958077680794216424946715445293944535062656052219549040768000982654773032546343753499016767204011900627311641631599510146385559512429549979776095616063887896076763133645114131559264946108935953342858826108348391527188871054007244240083760672115786832355851229227690201784461874172758442667195453497396964439224963357827519955632717247404125628700539963231740811637175248151598392316384571188922439279536930151939787733239786634189915116810978931969654364188259239951165840344051031928353428584353508894010409798344247803339616927519041066037601707428793958584163910449759376906858365223033873390949939752759885540416132565116444734994046667814324869763198473537599448853366768404711391147021154558278913477166786031380279322470544966994141127585866643490985328988472688082257483011879643676926769668880283500667478394496968304245573406062405057641146275245276000598301035590406524508246684435775300354014113042594626039619917215023444066996385627548408003312521312234382519814636720516346475527817551330474548149032564171035181722450360974228639198983933923415273112585370083982336789541404443029896194829231366092831569550869709665943658851325657388281058802167245488665966752681478797547422960502717779425586573295961679771818709257917038032441509747565762926497092171946230513775260748009485898587115550408183238101329915060397684461112691375340022995806715987091322178598832471005083671552901491414696964642360748787921149441363063664112838306583367275065676641668674628947647210712722969789365962099727014621261723075947613350335200579940938620334641809623989945379443267544792960441877645745882827067327899208254163729328650174674737622381024402103470443827342027342853352507695225264832760504569042239475763816720960387129311165954955685306342381106132414081331146847594832432163061792721173465603397172026604619142204819438644525702440521894304869763591853108864687302213250479389064685012120881160749209898022154989182190320915813367079336105435675335903803639689470554374414154357034759297665994832388331813909810726678605399111586627581123767484599290301314309561470346212429730436305379655011299005104170108999307183426048160480353673972503377116780404031989941069224303658735354766936654039113272984512435982839087470048835211513709609822686131530872359799900725673457172076479626697097575384807328492657508226911523301894045143940199514033317931284245189038780036675042322295216637283497866397395874445372618863422145596364794902635906250562487651095499704960411834780926582500487000592701826573383407648963670880279184611058494767862621464444632348337248680444138764531078659300396896114286204249424052808059480942848467290894438879916122287917738345656550545956001557544098361699276382988799230372544492993615680851994193936010124192281135869429216017398892453360946171274813221774913885964295047914963214230558078132478439643964742778021078111852882046775871990756314916322529237386854399989894025519664174765747407520589767658950253098605576694190772023170444769005582263484826602682061743450592497700625791429485340064160744972646421511402911241152042791715617761159615889128862050867735544017452640759274579900550402436820712680215585234651055796825770908661423298172443353785545531449354739109454313862495002150482592855682915816122597884378749587351467982431406225530746906480362119675804681417824984885652416336056198618381262389671908579785333961371787972770262816857890357313832818644928330553205871517212201202580522961960608127343282378620282402593268857051731448624666415550221089826578686839363077669933940830503076788167788648948880532078522791701049137804406478283047969108133753199681425333661198577431243747645133618025002968766676909105637875954793287249825740010043357836031208473947865481688164111038837871911522443298950778700498796660207261456766728378086437752585677185902635638092894280072875012673561741853431845880150081993798047208609318831785161492437653917209088025417294948297547214700065048918928907623885111218714892797313274951449780156873394768589343738603882543468521495094323941156101442865962905801550979559189572573566371763867720869310563080575284942616818982363135098933729655745856902809471616262351465876639463180386845090006904907154113097917017217579184321801408734703645869724716872256562611178198512822928165883569879542764103484682721517964243964866935284660323799512488691101981381912591090585125957685313967789913117326651219195088049289400544543759918715846682349445365939205383980335237033732451377499967334362895013070531781396938828209137395432566789088671705140692975420526251934304384987459909788214274537216431629487188392429517016261408568201906975556882935032822018337151302303562750346743103848578188573144035006469307041484739282090339427944884742127287733298743234699854892641379276329587800353730863258641825549499330465445258117767058102617377174207553371059149260361858900350428886096385023212378870267430434676142309763612584637950732256660450921430917834216899114112945430408589399047208514955595562919554392971737522561220727952753058051705600769047099696377687181838528888820796353317240550965443731138323966911383835818471598166058583678045591443427287745983802078987970993140797824236647003882775556821565102697539590940652298009073295985446421790511885707101726308556857779288579020092558407097389280808056305502362400496066199687430804246700409882448762294205713360856321328975460495464613436019413555067437363506376371805391677124192982898470903243324382341896211798442522367458134011165411233846738675797825557565056683135026559534012074182251858298309034038818281725483010053130786930512962075615802532880505676708679286069629298861576932578022492333608272694085134270697626220254215126282627513537605714027956520743717967585443332319290851906147348949698782754359792207951802058939373069780261679995060244720802002437717008323703924306771896428907117809090782819935417833558301783101076950820501976830129232649407102662011118989612325092951460126964847007099535523713069097065883954085825492751042748052019320606636478882474653980068262259281954794787028680620029823337496369598222323524117874311608548328987754932668659209316923685631498448623172182904301808325958598008276486701554025950041527917666147131194677365361710333941380582499166442561824133058881589488550550834110065404388296725827205635047871864252863418111494337552497901178882031024568383863511549864531497671357712062820099444800412403122640122932988987588961585530092839514986860235866150400254328504562813221609668210954694595537790813670180174356105384391491133707603160478142352893210145078245824183881770230588689838666131945576594628658155715802662550518979679313762916855930545532026913223585147212764771367012791911204564152926265432818954714616090597637398025962369756968439856094063068111385733042207912984227527170217329238254945664753302957294735624165745275610995908894570610936371482367497756974578309826997379059015983070519959605103290304525912101480058616122743836085927742156248805777751451240809548975523482393972785320970171785963699196776263116259173630770528223778073809430279104134553252731671289322835808612565515262151680785687373781051368429909394351791347506647469531649313317495491583238788545526734482957758152907660047650658786518568983110267560537201413540196835339225792228137345660193569748831351409249091365471949200481041656017775952309307679298719095160511312763905747078832031508171481931388856493257012302219605770800453171877037801056436856927930169853771533213487877754393062761925145233556792448527291479522710848831908460685620610937326751606975303898935292314877020937011238556848127870147826116544700494425851033326930545314205992113069768511131778694815942795725492902400591504337632507591283999468342817586019799292706841242404349704644424878884315865152186702933794627267525044354677357656831445838502076755154903647300241940667020405753069334039795380707976790412595631952873025729559505648221473990671946147629065245667613816419684663071085546246116118842599217176968938117568843895798533009298672712521096030305163804465351812939344788558124181896330189906889620601029558485963057361310889140298441733633333746136962225445245083939238658483316948531032167614368806026628621355852804268884425615605410777088578773784048660236801110432405592244549275904618899582511319226821152174285608779347019609223012964706720574882189358020918330541176081288715453904335207571955913191787898319966356033842472943688795157380017416896927732217547263069107129241575349453995179754515008787537315329618596439267234262222014256151097258726959090557779007817023369653515685276369298166269254028333531503081745113873969771584267423342391121202449140579093671295655436987366595532072682264588055742990452823609806628833686514376758681596680275765261887747384782982149464965867614480035535111534289832830034290567761529006730921807818046540268058638658231531208689802234851966357658167186142584656200218809625090938381209469498010377500979478603357804542328577809975503821668277148733068525272846236304818530695698896033440837654719301300953388992108351747851511621894353167787439541788410383948572250088241153646252100639873482631907759724617901288281614608901654420709217628971406050022135548918020378282048401045697475427832836684454351318411851083550036373336782505315796141544055590286888628403209609464635340901974544006123001809800226289075286454922787606561230040008078418866826979935511160927763314328069810086278005419682850556710864421249646905439655490950239978246451244022612788907639652434590191686422184937075566922048561100157764289210590205017897186859860739359286842879171259903008395734914351409737368006983213161359061686904078754120120569297518401101278740562170280380992212594057568021887280018177468613241805395358304976990588448010522022607496120483412991376039646888909397225594269759502059066208996082142029880795992702445941220415712190309218229966613411535594550486526571773423727357428985602247168799910945688826328093062204544210692711655164773015229842457317259004087430545324386122819026245509061130932111910283313820182652831651802348418754609983405594149950616655393586034565332155420950555678496416758982601453888407404631937876641179828302594046257147003534719872686422337216401418759763684689742136875396982903364934675845024045862737760383163642884456170131321768350532465928945730099882585310918181777128264743408741109973649525394800403196836161519232393191718966827811639062161768046081037911720713558149333590410587059999316204673076971543871505066268170972221505411254754942034458654458960867461698854708135428531098109428120949072966830743538140754139326659683053948103774595249471606905172948609304442111342829349916715882895790171357763957191370320906022390675031875567886082683486529976591045996553837565361482825138822688783059376276053789191111042593546514224418658235088673653209393485717850265899712571478774464790254541923478544166929469569347264267228138975191934612874123576936442829491427897425293014814484157569728038869940310460902747278637506739064728078317628250474312837879631390142424769846462697527338763959117393060482923070587911265259653033986145985656795742338078962624115369518790599274421508142387864700413684144645035538035844083278924798242363033990341895724488477534654777529188453790980555735824408111519755308177313036081479618188939059180009509522781535919527659185010379786619496483813213396050627601954622878386275787680808860358845249789813875915111172754652170909237135742566846476611773646731120485816634007663708312369138161310294275651509516197822368863195295546077664574486936345785631967587742835531542614278057902107243977694251562618269714349398502487256959521802258409862204129390293073050380040934745222235234345762277017780558572664776693181297361865085214595902442744269686246051761754472694227327838875142065501083269787727605414551400014880550388599916869463193838802412217689762385402654047738030372040015160901582145390740677136337854566545238153616551734504725684700609450443822931205218327908808554788135637149621648440345714598837234728227725995168423070106013853302551673012680313044984090799219731629293095399013672461668804713008555229086358465324350632819693689670895251891931463036314285518754411675794421968481565861138096296709667505139302324658235200066333934138561928982155818525533539700856208996554836407368972478324413921069950956960127178675467918574372435216896608109255161781318600096213937148396536608437679616443657024236369736448943777924196017149321390538710142239550208383165838519931214106836169854310527047884377764433607745543633309833762509083270077147268600528963526958795226121237149429937485918407633920668848751933493406109531626194135140541252621160382908288155830072791333140493116831326037099022454994657714236962660157188712640398722455701444210284050265237215851405307687391041739682404640861099631495451428204472084555929616475426752711952716400672269259825245055979205918961585267133087652051562092668637464100990038381598623618826637574226119961673449486434192164117942262422466806653665234885776573088422871292664075692139893108399484855794034300758025964116160284507643297310292281824569701889790332019249008657821899252164375493898652854235631379258530033723323012723142351230074054626694241392357293427265182211549627660757128760514759483448372515077452254038096358950540188651550205262016123281500132467356263926566142494850745920686207893925244500230826101354187057626520443095930553978636102061816247857745676162351856497210658731878173246836178820071482025325310827705639159364094904088618155583807196354299467963208981525737143400444026809640366234073328820311235746306324329996601621942535344385099005783144909265604767915476021057932349716765453652463564371540481926705162020311271037118643036727587466034942878856830128921691548530613584888435896260459384420017072992634487445177298115922156282826085288291239541262366423403340159242059304449713422285793485315039950774187875058838161140177489521403956723738087881849656426852394314347184102279726912734649236178125269749547719526426118574787603474104845065777211424474211604152333350476831806864734183166561975356882565475347356951806509771588615278100420514811177459276539754153639955585725332451243135065615494900075799372306875172370886396129493528449759385944274014743350194241908100494383269196988461035325357333014292284723305226708816188471974725858788218390101732138812864449955042962767705154305094255121140922518185528446646880678137189239768629691143151295195830191822649436235104886412264558905859525149671575372537582578664802560521188382497962706836186032070335035149650226583193331425364871081822399253072223134065015334156078888234761667079569374576355756192141271631521107481180112841363987420720510433075931380211591717791991610714694114429002285971365998450884678339509920550813844761796253658638969854609197471707173083825587561186302720150602293859259844479551412770032704216317384955811629052619701857570119763243625753783592073955774601726044271458122190385244941385888543314206906944596756111910490192796629934169842983887729234635082711794201804749527075767257269271800791784127280765260536575047202635821958920101870314094291799444214784727796236753260522352333195837176012396884642896009268230718799999663621634100943552544777380938956181317553908524086484810579558580229860114704128071154303977738117214210354914864427479993883335822794087666004443948962077205666006232212199359335042740628395346184733165462764060624626173364330394742689843716011002626910237305428686179077270008142251918225484953735961195524606483990068347856586845291960944546683811398347764155009913498545097124562970329352494099804702774714799570981019035718366724329988242379674122003539546531488198992392961976166160175828626758033893942251711460322985015000952994608553964741214735083380824819180707830464178612903127607921635310096352774315633166178293963832019870194540580970106768377706411980414328026566564384440092681380167969036419866766964403163461856277202817349513258337233627942325557660281747815579061451489648046240425165279992417569805662762349119084830642886876348332198916705686643147998255487028517631969359022851922119414417844424783721379270778884474475738911670943732862870202594671144227236125841118324933023575834231347239423487862665802875157363702809423473018069740998039645021337967008214120339381139382422379728281806888016315504223061253408269124043061553685276351586841016572081084571279601297866266832316936619646182966121384622321067416962754836428834547003156516666649556564228667778716342370257824401757542603507399615213806608343190579967311324507698959262311710436378238429577093713292057055507260413502070824903587334580416376799296473430030947775948887926833462308331245287544989265824076491602908758056355282214987469410751181302273123815247432890732769811200174240210221745700902891874415262074660593660271849674104123222780158926884085480071579011982020112847890441221207156088902619604575036696674726740744459245064257517059857264197091834370543445724358155198601942366265131802816183094533358560566148228097847845345605648443711302175494898248508506117899229354060994580057667855519918862487816192075825417272838133541768545867426012302647356847610554917542348234183612726088880416643403838948337258466749835448079588487075795167197584161071420864964808061591367923192845696836090396715887667600559242563494015289672547271065731636916207166738314712684109504786004980075561063565324665693253944811346625351054890474557228317496882501038108073240265059395516166905030144867879896266526920090941251528989824134041606672834539577304905986433951667431342095845391017770434910205313334269378866639311375797317314100782632223231962979807554587169759668674007860287992382589162036317189875765783358233668800511202519465681326721310080806333505519445702507845491232539539292610531397848116758441835000447512193548762978060480784651673072604981438001463851098947263800941830885866211484342354108744070174352998319861934631424976666291286863444283825000625689235458273754591524070536509847144788108113783402498093357557108580610916815073394420346653190479777765373080424056889466434316279123726252214990829181215344722304708637739621792917247855637396529831672330889599630778995766904714721375571398869939007020014806266888509083588783073312781120242766542081928662431380151680836453020105864661454692854092967219921336400680612148254281651073270264908814373045410894775484530617008706330686759036602044622206994180040728382878989463890952574675970077610764820748483579312260228795840076784412803797938469498491368172301550643538279661423925830378301725819129559164739980098562830219432312520485350791184620797420910642933060386397418172717043577024659624091187051751515471565004450084240714066945618275374283114529409229798160162595893541701789668278299751790247126062207162059781068391906647180350203660603746531526961255409616119793831251589891584339209048196065041129420662536939982682597074645829576853033768402926244361588419343575138948608706322887725606619493779131848280131523035596135290663739325393363774918653097334879082122873868875125728719540133126266733460941395377078823313700758159151980010312469282049450510822091860500353506065660170088461812163926621414010420420137054054918089730919293211517332027532549979263822250041310881880006480694060977948381199082769551098451698814824991018660580996796101662336733425824613839959530233792674640664367525450220828563407375267567333542820193528442365232418354235003952133298053830354471337840246234489698615664166650530148453751314125984540662393023694232787320476874488294467123595810130993039050297654379969659697923108536858880692003177910344857022132928012394710586068208352861367479062628041621514549265858337806986747530799196442589259695149645120668815310840346198284371142269449834083859237033801968468590681028508334882599483456271449418090861469558721335245934412529277447865918267573560558720715210098952158613549808394647159349025666749291477961902819333219614418882942885777777172267309427983262745240797866293819616161144141251963593113223384470752754518525242430485327612064542646783446797029756170105680352085170400116210686226254493646988726352277638821720102432173232823424504216243679143329079751388947481592199040448073600923583016673925163918796984743103818481346165574810854227096284015341218755261453013964431302536627525821397979453845204764916739470809482930610343423088253417514462896118471218471534955142057520768970125767733075228847215880335695193666510509504627481299254749081514339067479224045997478809925349536606918410320291243225364239029763270992806058686135291273357899828178866196261357819133958605311777686066071339203693578607140807954341033924012023722157396032472804861896069343678720868712562975490680112655811680975914890653289191218373633771469697308432792519502188906566969467586241446015952368168737650715527553015895692757690724322777418437710904940607265920414453289512585502773477641589219357279798838818533324343377817429515643734675868936399978382021401696684583814670190024809403633821052687707042656866793979685811795614811578353958672078545227896016598657687614925275741052363032847545426786411993349160457167911768374764423182467256421707345495184073932767739512648346797709691189883714863384893177381718543584662379367433415967451831062693629207489660636733118572215819764172401937652587089471292835203178766298785797691942493734675557550073015359645743696876347989444183163961364924215988264914848461554072496230846380110290860755732143603023679502700995617804352684342150244162060020374937901195069247817422961026281335703683257132197032870582788271088098507189340496429242072795736956122716709701781777238340629369982782765430519448435711329999043028627782215844493311635991366399497550674889981915370309414933779609935268622081370701416178194764952294266200536868316200019839937750740386191678334044579289795470998014446057805590529965067714081237254918554087780354740324347668715887101582632718282040503755088191106724735403034714142852895820507203038093866802407899744406686300858651387221624161263184105467492363352716138177716801769115820344975033770291166570429720404385606525560046428505321286729300765198724537207124246161925706514022090335041454146102060094380195221163592494892401618252666163804613007944061891867781374916471998308442951378968972681805111872585012911122663587230817741898156014326524242549953121846243125189279576104698135644152090016886573155710743172892156483046729422317175810362319567668466178458865778258931355820272102421245236621727579745493069404050090520912515115718953662407936279186652002302143522955646389507482324644043928110507674731899573035533399979150970071384661615343373527281546267841113148732644055414520017419169482096743709774803719485013787483465908804541433367987686207258742466417334166996670805397231317826465910260378911921155475831990794499837819422447759963185576729907332881947209711664696631857442264216655449817302770694595086291112828182646349982529106665226716221566008807882153495673825899178147642268259850080295678623036049881577217283233584602565117773138948875244761265754277576504911734290058531576242262833513775345596587656388764031281341144527327345827917529859728798989283088877228618618090935963765505900009369967518086703990957018627223836252898621575955650086624246061975308955385994404415407366425108860413614737851795902407574985508936575017501584120106332977736251663477135145101716197409783136238187742345840211279436653673397293257661650060805328502644894152314142993382195537626323855008808010172789014820406404548474170551232584637777340906554481183483025065890918323442468268731872936354245945975312738810991820551799597455179180081431667598546111882660580212944718991579875062576921529234778498205632089142560388751307588771518552844570453208062501989995547624583030703753470709661245690913052803814624652130724031575685945006691653987069696920604804999251109290337140242972791042040239047377478539394303545715728941810970173289071772863456242014980085970545737075574943707241148424760403670566574410339095262839003577674922221149819497501156898291664353488743470677096888417290783492265041019665084060799254244340691064882642041451302708099567242430759483086690502790142537448322559450502067773334296941321018717962412884670247506009625682371874627934974799468060814612563418990447345329826234937111756179140242598286476515404951971233204802190017046160465434524583686172702921069981818801301716227154578443051933918653201351427390010176569435641064549561634282783738398034407675441814202256808524213891456290572226411414417051360663611102141686667572065555776305717051535374276438749465573947656016427737432487475906536164420847942548281828739418333380719960245196800767608030201302413435691444501863057131686024603594083023403188850504940759708412465331881408894495366887617217017659479882002431628219803565116302399715960317179437877814444811421472225998435080508202817013097876297910822236263233866672429034032316211459171030057727194372294079092655231384721045348372212453003895654013648305443741227943038519969968129310621509884388694913699507325357940158926750930016117264314547287997268975468523099748530609650317186926765493302290153600410460764720957055069832266273061416433053805328817676416952984315115421717179706160922029185784626232092990893117025833388854436043630631825239602398243577891487297740971454405553099366298398427831516193924942252642995029337225023709269415131509701388068263215433006255255262253698026515508510559057122695412864974153873886789935603423931698102189611020923984296546805994444710455717916231231135537541059159333059956287685442244550233690736319851404773662696494170141822325020455683621049405471647390902192104751983529513057975587946226422460498338532119163386663119711361579140558900362428932481648738559540711651355379757252168571933471678053335567405028358072648414832239917932138665297491815842779443005062529359183895660827329068640277726434426601382443929590050448598018832428608465974485988208680066583137825387858824039822652452997332930744327202252304804929599765221823164673263214627084633413939639434192372481294934374724760778162672656220457561937279281460397843650372827748565854955066756205465310791955104990533453853929017144889263688183385722139759678124766173645484040764019134816384780137945151795873544001001713679068874227054747736661838580318588817757877479322878351134601440318344253698754725239205631512320130717983909417776373046077765991345549875253472932630948454383425920780607156925974790488509334946724104150381166565176792048314949753553357592476184639516649447475640308678803844237831821309915360956504952180694226984031952827584399584072355068374849016808299958140860155250311330691645495963988055542074226137232046743691946108766053110406497797581769102464620755896368175800406750736416096041637082052440980550243087630847817444446425170121125978086991653155004501547104038611082391392984651276642093305873021013296850614683703882092703269904827165025616815046992943924101801392145543415696435105217432991090670366508756154932276246654630241815114979743423708091441815055281614148656173688281213484705836247787472554313584045380650119418703880155492873199487823063352747705453336634849216258171111293421256119118431648389607859056847800794157019642631090650294010165790307846123032116977291506317436249161330164524979805663608193771689778248162594538014750450113975946382464723763121811023692066089230352129383228411998167844708488327049592732358142939117823177204024544981281717078780797114155024110557440891588367075004815391826580626084693498015111523782101719175060306963740095974184037175026736118411585454281098542131661204420280856442554665482930073705678670090885719436512063127723509528801709338746222509160099057352693143959532541730105286480073378269394116331112438229535219486702057563605396581843598081364118153672227904524348227109469233207256379526168480634706241601444549675155886520986489124238213105188428407765922610235277319588424315822057626248827326278319024250567117147847289875264678102706438496736491567057582613663217011931042405578494101568739112902921768414895317809138738399699719389386713755136349955891777926897220899221008400109062874154559310274065589757112338458593236439367114459387910867697673751293984832626311566902551084336258117930828952934760642751793541075594592109099252709337681802260763220047632314076920970688255147210937861417327316948400949932804940228695330747670653006373240576389078026613277344879383301497270414608623322147243841621819267568330608401862268095467881425970826451360086971340149510351907929173164013015961393201751977319815637561471836335013255646801385783135130417117975854688715457053376441496513043192509435012134351932577466097834194772822281970708812289744750269520063182225951776061991162572222991613222679136074262300978648917818489854248558972965156405841386436348888477827227988206174540037075641243095323007585788114535004214677548636400218726664635707820737138899178769448325148632563980469295283684068533576133734493747384905307988360161876657076283838786828719776515573259732795976476880097987555843408237107323840045230190431690562829305282512672554787110961401026451452553081261724780802646727394944233913920209434893617152027167802816833778359631998867247424034465969655385422736560961615900568637366841419395056991122132790715200333103629255867817564916257557906939290870673155038863782828502553174166163194262863919130532306240871510231303277996921083297220534104785851723977633193186148902798972133880298995833420791928169796765025259004072928653078938974310968474321601885294665883307948872159294325578977829439067494800129009088625778974187933465638386911368700520821031733135155795204498076769958700713643898132986229928439225726201562807496387700489291193909921043065496118897678536632966937964626484853557344910291011794931186649812387271679778977482913884220056572783133480091952901098462342895453610622392256054654739362900204728524661753682855422123873569759727299886963709723227902811696498343949745555406852913077426719701341940158789330520955620487937318446831322724983896566808477289866318660778362478381331574663440956167879013636664191396380182765780774601528908670431991515807848407158213829889738960776217212605011314311640409219614242326924286942539815774953488763617868864772772833400449933131601857548920964220550278350026673120106951023786208679172595503403887991432731758928732850627691671226499928441778070524034690103731797753090126432963320504936349752680735710608039821886635585595998802073899630224462884006857432168562152056313346011537598052466996750134710920660442586279071724515459679936249566656705011124139535007459803234771343358893644053830105635671530611675105631363113479246911225071441357999541858450379107332067137810464945875783585141165620498247308649030679502807906969048061897968087378603846206926997878842270875175458654042687262629911867364244960323938986733164638409814997941481976239500382328285486784155735709194036376738103886416382486546026365164586987612043447708095871735244916870203302538582045623091689915657661469576663847936161493953291873959269071605279977454384998841067049723047283101833832986921378490143363896506754285323486498032351552521645429830417161642738674943942827377696399904242623193881060269842918918633790890529941443848513319654054298735697066151476522563215781938545584740856916323031107474046091675697455028243684359320410163721858490191922716138208891844771609720685294359478321604819094167324936883215855174520968062748497177143739204470382937406159605308118952471536679196543988427879889756188486473284879014416403355796473133517025590454543742954433319270455757202649447020159454426918206687378502307620412681786483397872792419027004690462727027585688542000184413113679353908258550562989078609363481563685828301771413213621385941936184225325124299646777008037239793738522224092103726968178661880705076006109605656099049127317078683130187020382951407449444700932478078627496889007633568103181826342196106311756737176972803604048665215532046795386016361454955481758602220236735011268568174643836689344928564089427129376518823506465890900483595554171569076627114413218254194190316470287768749642630031748137630493909760109825713902750627724163927911397083421415164971041490886572735403702220880841599777108320035772828611590047907921757497598333877684378878576566658356396692372016949395356707940971078089111641478219057045924317594015890811608210637788139159278098595399250272145953086806076629958552023440319855132482804839189172703087293254060712812713678245406786461830799674603681911224912895149093015838793873325769933236552395840585714526887928995094143856979265185249030411429208258024817819022311081479360549986829506424801442859445594655829877392653114490508367840940585836474631131228174356888039099566030054065507398790546585988742152885296532714343215836744986917284772371359035578230655048676912825066165096358861694055988928770178089147980970842700896327924926706066220997890711329710630889699461513060038704033382334794591387584013430954269178341435701711984098762322633980360218457245648167768329024876139770454259880865102449933723268348987586524114479590547706679471446812323384031794225760710416933831019197449224357768996340580205845590271152259504175343187596260137786255248669219232654046146357484060242389263183158278907188020154247197359256592530576716860246570192724906816257009327769182245278341009868554508407760725679400454864882541876655015663168624002507333859676665410367979238112777881908920358120584609654812992090236806251777605888536729491355962956418111273537327738028924493779822708348306085195066739195937437706151845064612840581056473347103978088264063214317917576993898991191926066351272855341574854477259561082457016948996979087452643188676331476497439158344158446303579708528143355661417096501838272288606076936525152083628937703810684094943180422355159625238620853636060971104132381857266408408690759324479132158774955219165408221340168343133874762222605958328647671799014073635340504005438725226085647043890062142749739760140413591654162003585470519660811766005728525978209978578789990463715911363788013337250579560562367516125831484932651578287735076868516051464332046438826008847376837456136324393511153896871897007939274462304773551995292953812094737141387382587005249904598637569183863139750454746814510220162725930496485283722981315750140987916809932040186179965718538181930465058853939064005101078574317906311399160767950429585377917878230698805938182793293984641045567089281768009992355074442437104088952292100049767171473255570912951562765495673125957518391287057651733296767386128465453112402088468886099310958195327024346401850694512857470311156432680428642029565585833822086774293216898413342152582364865801588422399327348565807699020839020887922929772448123454745493726399680067998530235842220004548384116481216581446044597351840727454332092675138796475886318322856856712306748045013026132598165472854165366026043686682795143770948331411474126563876527546888236206302416369935260142010741182432790485439460029949160458669397801188662402608464910881891847949327947524225972756687470742429817294025829777496886457308010071082167423946735995262142242099109535796217460382621969496922430409988569615113740922507938922369453705650236869582623332165542428248584462385260497301416017909613652265582534084270642364283300021736176337965042615048719046304958342861569283736487591881362700186147926634019144462890046701746759856221843224445800927391379694331096260392917236353661214126023545168710204402457514241820333265871383065284000836245932686991411951197360343940941603737536203357832948022984170454645203921900307979724658949782888337108367151055337636840481618133563000962210832246947089202806771021094380222187096113778955780286371475678717471131451824087368032214587752717706175062758833461410887533820500719470316090277650369996356139627151873921478565336520623711729053611486001034905124848866160039053908508343496810987147786293614535680277760867863447193365234404061131146995300782813554624259309544241902976911634362444378968076237180034863930548899344769380484440676178179202912155574800238097181697243932913856232521436117764426323713124688115384883436563524505329402953086935220312313636776146255852521303188829044072409475515647195658087207289936717237732122951808454239421292468208131971382642089115159673514737208610324268271061144470954362118648536463994384855884589131836858969795683193403881918468377554336584773090385901440901277309786056282154439820746980904128788864932055088320907514409077043979569978349921151904753727180204887012791285875249816792247207798171921266499294703870809540119393803226853527585657426924813863079442187021124715658685609693018264840444152438291958230608629735351186569238543272147108412578554204684715162396404911216197736963174048941393149117868981530308671045825196636591265143861667913750767911152340755398663097530271988552767083068461932596787944905923112467880360127294076629790973704926293054245606692689284836817057936265386804051777127690732203151323032708180456258809792051965473200469507431642570616732160014223065656571115871725803259473668698081883876157348183393268329352790537552792737942736683946393825703893657502986764467996754341474904871729998380262025759042620779828544290473595762832770430818235605058858177525647898671429270180469487683340158294784305221428824266023251736877670790004683880357797933978589007679760361846540532812875875849899843488138274611836981399298826358150139469879048732452498992512567486799309433800894749746469969927855044138328065108444724239881355588649075368967834406777297812672434358058224237584056877269134963105546464645536180842636413237458698540067349600334826494093812876606837881923246669402966286170396934670972234711789367869264950790090708331073646493788931830831044581559955876193985328670240491242212827565114690751570405345116596830338422347430189815460615113287174047142820541130204438366332932931408860038619783705286059140991281646944098517883604537147846437904954659717072152547104524879785566000879522692951820872926785114411160077617197826089431565689253969845519874545236237408930392082490364224201668441155821287594138428480228530895468338255475900993754188670363747823583301692400831829256920957181439325606896324983028119563234563586295275560436496753395963840285221230510121516094342412048603768729742088175433688564525525232808113060762287704230332792697944714740493689447493199427113868073225137178048661934861731238637466210368009392838762417552334111189417572074633896328668371931437383626791432066366710085003261290564461214275159240546043197491624082728900672181971385124370000213929720806210585627621765751129346837442969434384257297212444052811084891390440809562564848945739885954059444126872008619423951606492406838755719793975516157919112647318426732990797753955071879585887816506324662693006335228695102524297452654369739664168314784792341442090265452245327839933364478749360124124312546893671334321390484114043512891258334573632514211999687538136204497353365411321409140007545252055233853992640654838380064789794522516483270983665035206528728711877848759749843873962666453526107812487749948229680313747610462335956595220942669567157527492988651854311304891177169150336888721743435374792524929756336613059640692084701727024747545465614625062248420457184342962361995421624280278629478414827842914540033652933867752422622154529098015643507222777369007518762427763963847632142247550704310201979103092542814873944846214464523598069861883302205479377734621914122066110826073083479450216723844048249959511873970989641527756488575563237821349076191552887971804098967190815250990986938627175142724423429453668201763836610161875786929335302500435903124550694304384152822110394592126311665055135910949511208892586395209968238381647059110320935648687689401092494148619767922141084359361055301146142521069276467717591326011485219206180003649426451464397221486595036371207771681822566780823522104863636441479547682294397071135634223324392554007819990793747822558439718542189657803486130078518308473299661894597202265393392614341595438919051463642086868197469091700259163579281612292179989121610746338508510681011922065657527906472415199897018166391971855115618299174125048226923859157389040432935954778796121440984721248529073808077377927517954992613661229572598001813967996419601313986579710204654479654355835259459689209766943791626078029198921472117944737246216953230275075209357837084770749980811492074222825980541070624125954299527140088393860004367894850346316339733353627444032756362126084138206763829901760145897724854063192691908633499898594063703149930908103251647481142150745052482071197980312771172810964352483028880742837238076529532591423214630213522822216673499281199057308869400162193362211131634881734415297228606547597510294574821501724226071479883893566687961134665168285403926406872814744746296023254115635369505886326379828318348549083228540084573251556139040739041100378179431675058744446175053402139301056951980123886156320357351806785704996055520591568043910791912486559625847188277633029812546892822816354159523393616241987656243044991652988204193675144927296245327072637482092396866163298078254513013228464098338912412656582106250922442023927690535931731533590471023979185342802862864925440710823280200885449867083430017984850092902935847487099345890913727329653067137892798515313513338536788949014035354118919202784271963081095305881554209086256209077218136184737949437292372520827350904059894575360186107482778095201986144670678246676401683818083470851382047610246757969800466955415944703247231091579480625997610173317605375829247562627030853527106414803801123719423125227358786218047852802747832423894939580637834959104529467024956419165293657641371005090214596056115515848415265430096624912984973831018766596346441880058070637200514470412174194377698314497840629929224082007810720376032108864290074745357236649224467358400856875266950284489710974875641461846067427540134473654750850072574813565873605303459282388570185648483077596667178690836218830497698034909903688731017454450812226835418824663412299346577533566594240381293629758257349891388735197281127471747543563194474920785646438814604570377500543214772551643508332188003744781954425251427829229646460856148943447846844185090213881269326111756660618175088517330467673123420132160438522351405025456724213802200586235102129289048677033479744998741394524117775228408352161507433772146350763915318241554383435258610795543716466983439955417104377848277056544768213792368852245202328824064101760635388536446475036129498746832543529953644007375698422559802916944640524189458463944744839629187039352428810343194329708138714501953762383762797726827404776000488814624372490587726585743010645880862533968264474441023872408315734273529127812804574814014499140397843179277613757482087859083631000274606062470192375400349225230480970111335279388912777509774051453609727496029046833581442731423286066743195182014603540862557656569928992648319578721307618944531159365785522508797666622957520588178847599255678902282766385570153176459958360243847346013157410321932693656644087373479776513203551998995230823798488787563090175032807982069265555942835279071422154752911699158969497010815164324491562471999475328526852555026042726129926733669949543622522638507141888056284566068529096282908654186038407750477364311074109931759381296793698804730131455483942780491424219866436983792684583689613483700540655269611357778755107697383747141099221398125294414362961125586328160189698747885992340054088364291306080705758690514779819997841600166707241395384601011862360351736134868623803944208933033200858950243286654152087290392060261993667306838980574121770259778104577715105234828855497364376639126891443237069924979212967657723091518700710355630935027427367275373379232766623160814711308990117404616794200078868126506617399761162381019159292333723484453492277300803577185614612001318117656643143009044447266690704742736572166261099455419033668437097872737656705261045197400163964982683323176447777615529115107307860700549280969928983371992684190665089175098891738813098549669073733888315056490167493533657297665138212590529350780665373400326525081103490486344782411429151749609403467356577315474378067023795435115943904572177500271098902336583203489419418415754319481094302349367207385819068715990777393728259973742558912753460290395176431050366794022528116815913413280300975160282476329949654790208035677008477487232784118226849156529232804484614825187509107385880839417669650441548396016106278614899209633729774105323716338480919981576439128991453664382963609568911216337117951005376667812311648459729741541182053916765939921129590817168951368661827805161811931456857148914415652495973207169824979420510056964914864221806359000553514235244474158317665313743192495834228914364826008099474706834083338730692942382593151587497928851793073097517103553548317545613505808469321200033176212456216563135880829635253909409061945708850496645426175458367093876387946838863252197938575095216821201742385261983061022701531730530136749669521537756479654794920782162866332354401346775012481450613592896562455781901592932876857927815338945059163995808568451381061911805036057111929005382316213445352698980487919904855910101424383249143825175329265747904212523983265010717289577141328020296672061990280490122181432257699795132241090583840995267238588018934531767368846506114533184405652476805530285571901951054330988932995017076757047646068262544270732633554615568276212338157288255253908670881365254820274469907837134447809804805119270816354540099269796308648079858564205497162499633165453534428541885929613423576256491790707281689698052236405548641401655397726900788160282751788632468128096863324735365038524455636814621704407975304421537359510087994238053971355441019331804862912121225343738142560473406222619567311613777365702794203391787995079628493577027443714448318729357263960380914333670672587853742918723137822780091752710847188937405448670570042397492503111702452094837790857666908206868547742130999280527699451989256095060202089343033742955584596379262588083585846149561411423668911708550882545766650948997846607215550087122308445584286524315295132450417174508498964450812841046993130505074856135569311570963004502094289076588489002713805115668715426737291626569417504710019278037091166473763604449100229257717714732242336064559469199337533821245940781432201648588585144194381946146558242747945905082860177459710347801500393772941765433834974580008016467726516617475353214899978859410077576476847242962551043988371693840433657613674737439471205929480942613047952894892527222912966923929188376433799694242729768522646796935305515573162394554447257054441114570889005032044234618234892527626543979376312360609207865710827761267554375200386363601439839685298829055540951843602005360494512949671084271899195122485281752662374602349177072157703600774476522473558049964281487253473104240447052105999332806862468434676343520694426386615336741198541368782714138757285963566718337412989002975888093861424911335966255780871076221123236721289156700505045990940246937737668464003139145647912948786456922102591155657134522363288555598752179808579701167082572541086673183801244539910885499771487669721542497012997317726182487803841093569323824197470623202991975372438820957818821300858502303530165264842576784046270572842596460779644776497279814030568577293021866424816288512918055099379027564879469190387943143731612671816150518803221537142784001678230454989833131298803554159351990370386388821890313378896502893323144262451134153872890926591529173176763546131610348908151246017654913333115739597423973999991879364722766501667634325088102606463274044708805284924983151205562626290836396520261976382616243267755718881217585477323424815171025233163882576735020304491812093647082319704804299534712773401765496844800843537278385200280992790813186232008045539078069784614260166265897608235016179969502312314315486588478480791809467080935940246775517041161939402113931656912622611837634409624093806405173089093719698239644612108825884716660530248466060769554308419362700257458657323971866961767387523711169726591591019479870980152165800036078921760192064547418842100343691830411841879631713523809799290622859091395381676822698883239418019732873048641359846313951887013633843897123238250826343574343786282418450778821480914468347063424178509904188022229025769316274738021070776389849853180001305963836165930613964825178118072928446262995244705081347015215916235409782898918416029273629541934774391258720298988748444446201757935475826661923522761242493754171611522339242005364206198105026218819272254356046381283327420867506781421512102128399273571038962080024288203777861593683773510509623964278546785345251795763374874950803789732763319377081520555380700820372900830846380746658777147024179440920411913412309449117459228425678126581626483119197048189237962110815788699675042708435370021995177531479987658121482162680761294638784426263571615220846911869962789799562470071942504766660676150181141707669965902671219455923267993773902617809312680026483813125911343814095946859716512800703160783079183581986349501417663395900531358853468309319721524914563245790864017111059896089411809518698011829844781252521274551273844446577837171296913653340032938661855682409792988786271149533976350598655340449808437073913888833745232951158968281044192711316605106085142024753905092379848979933462898868732817280060405859449979209157029797366253911376061620487976540022780059317646174668266564141710260747946572491289843735643715877977400987126668235217347907416164370346743758340336580851575209520931966687797124686273508559757253228110427834736493121355008707174436433511664103878138041787179649327959393836902451955563719303210464251648323867640575873698111773860795482031466863633872332963395048591861547721339210330545582310634205384711320365090608258600952640574361829331753979039579252615533307224992295810038591867448119897521932638328141953125743890758917270005847405981417740055584987861249639971141999470052070482831719310389147394486854707526106923875940865868573753249307901873179777989761892667723941951782615134798983628655704514319235541490953209146172863138567419963431834441776035019400804172532135150503032676496743105537581392352573923713007074417521096065567132611401904928660499074631597710315732318250426183291434043513794531589774866305036445593626330650027479782335011654066977048088518030516670915714068389321553965939470243458038147983173259583975298677373928522865535947308257015619153175643613554015310445040986344303585857734771462845458006067675897726772557716296357035083760770531869129848949558685754353828323144832537234342312493454805223013463144071065843654704171891105721427634358726164161189544838450797455437644141984527290683364931478634651773800383417916211833906188237299883303578651161997662139832802243959293093717657686776903581749637858802529203861650001600558059690619480789828856661592719553414635873989882124881212479993855796807401015474545235725043849103261187933710686971123712671371244915608556429454454772061763574138992532506369832786518093067371277316415828862683579792567363826243442353930468020894862379020453173912323851928812041070866867451627730770006220699755963176572846229497686784467393625381465739540507402042343089354013527124442543161009613630157992858356693891990660682196325839423529090619052667273498036942803526419584686597415462130134772389103986947387643526281281367632209819130184014777444045395316413540436246230991541433076823040905968035831289546223249745356584466486108743177859258670491209237383808988837611645109589593974390445366868287635684206909660525700557790239502230900727491008133798575786841573668211636473109035984704682415547164208184798868890758217331869894880365709043487480695599406468839808186233019594864995930526848827774432383782964269517063989982307622297049390604883651359919783054667041819355396016176782794530025298949057635052070324332598679616677406136109896649168816471894951672389691434118862592628243126439744201563901759679323557162222386170504591895102251654354024660932328688713904740266587673898750942134893218989773336719398907789507353843337476834179185961714703598142592701843135109970487188773299138500968075060125919602981742703145709384190043557441707325180606630303904096036827092647837037267832488203472315378043303511946321747681116198358532457557174833238432762800473505044189458030426779138101240588317676866057709446744891141391066438847726327176248156707856499572513091905496045298324816735702955054898917967119417014651961286785418458945356953928866674033609934154332703555732424279514460516708381924933735703309755055276065343642878836371441566808535637154372885526638077222748744163550732495822722925858526131727712487317963890154324040880943503978461263913267101524740040445381737214935883724765717394472761447567424719181962333578522985745839896306794938317428160478715207111164872244942600780019964547368485526093828241212964531270019466013411854887999475035563554138718100246257378079515207107522262807190325251022100348326342080328003151238907413519873123877536662758228103190185257507538188756286527666510725489178980304688572935830191725914076253414792561389339175613101120150258627720924344773014420571403579474617813488552705324822180542752379878126555246244829093673777894689614660704091308338409003296258054461910568887882229772013811851875932262751553631521933724570137443519618653008562096295892211456965669888285165140214763560066177991506741699423655816066703456914984637901177840907940591161938042762518666897044242874801070232341585200768376931883174093438169863096927375244563919108007144216525110855718563381488194658144323069776517599244774501215439464982497218319511097608293363593328525872625543147781675153942112223051042874565356584725327572516100436749928879678859208876884149367114818732910418464756850052557171190659645133804711339133644816338603169976768374419230758107908328482824587779955500366938551736844068187448924942710802538245510652924799854801983748606445716391769433465817348699403978977413920958516719912095112286691507228540345896954691636943349458526726600863176923043909246200962355730298658337572286006312974017457975271385646173709568782825156112571716802172053444987061307375907772707271541008567249467062618474557413793794369799821154765463358399478655198022219623814552479788460303698275753964433037823295604852762791515634044524346846953231431646860325877617315258775050687234734396117462352041402064475869868293546677589551464848456919294051401807141480243493444578023225607741534873937240326833506582914775276621543344141301159903271952173735587385716583972088678576778453468966753133864930073767964767222531955679694010171240246539081882809319891614060460946501823814106173123352463199997881554765549657211626462139698444203412398928722141425326000572121961907995088650307049443439863653791207966622986375197536995919623896360366771796722681745027721437181711378707731918829089445743939495934585265660039303334339092015754980233232294211745754806515708511520399086416710258820050392341714687105594680831794059193040797991673624629076021206564706760293015443842198482711304623355655801901740548688468177934219443329195242339007459586660658432950372153483987700157816267539561133454321366278461360364316426949441271512670642078659917023561407887777780848214770387485929169847964869134471738467834724278493287111689502631752859439144581836460213942846091483844832290782557389967641658807860303776887553600195602189367498759567737119607914568464475050544722230174878797999006243502897741016140671181391859700287114923508578499829018130340586399635517388652101962947026406734987493140229453782762733712517656429889094750980206464893211034718403537809040164082107992376761254445264396851230300995607369889223460806840974876291391300587816845245684597886537714627926999403973931821673634710488530069154831804515788404842939393803328752414361341829126403876265025070840810819308845996290355610649166117115898127992456455984841754953794336246916209190237008146094679529864855821547516167722132512381188500923677559509804030650126244399854047949225136694113582700914644318606875190588926100762524422480655356365837525169226890160578475250155355804445627003081308208634521968690270975748440391586675464597108627565458269321504671854125855784342340037305420474149365326291522203930922006539812989935060505446328011725342594513138137455885303834007775947342595496288760652486808245989506019677642726417544482914579797168387677546804109244549503076576834030583965885612678799125875044521139068729669419056666954111766786328119285874849680357727368598099815076083418736304189957836951020883344561369689234062258692217286546947624391103024846716408849751196314882191739992165615381015915802901357940726147204621457616222732644353513436253196701968868206781190958639757616866757332229099555682033553386690379616362690996617574894289730318731137632176967174998146868602376990251803324318456151518830346112252849951559983518179011730796414430544260053966582056591739787294885356754219536688211795594534292303447829741526629129470738393168508226653314538947000097745881712696212248452732685460718911019617095353512399904400756930973296430607464886716205529322431841046818276520500690641079955709526811017412386239982451679939662362999645156265540014868811717401083438677565832276679463007438190725014188214389188239620786911983733935728389720856406830128679941152781473701348303441196671855364890902541264053656566513109394914957610898867752018994397111873352658023524759910882317486724670231673897299143791224907940109159627953130471816615875859934260856203721185991351701573782896980623788405141304314163188764694466160852984697372704336707777504782018416048241857180164403358512094519940309850469530876135725686180663280315513342090838999410162424727253702120979028847292715879987747537595038851901986541903086807497543329351828268748409551252197306874493742256412868888531796318048952479890312451476673442617713323551348579339848430625041619120451377400743089278149779350624688229012617194643846375010970848591575345591462380817413607807713112267658996186407462543408835131669358123802235922357783503700001960038998543594430619184308909033106590842010620088715701330245664384597605937803681341436332942750458440197707491354882331322275621062122294610665223558503841439390303140306056152945404414498357332365922395760663863133353840897143711823310967674988269346811246454170707952280112266081138614033589422913580214180157316847788837918402737887327509339996772473863543223378511994353220535985992021554267194009652840444340738555042159397789170897273044171531085720538605339136914273967842371353662933126112954754078676401159016545953365271992968985602646750305685979367751617492543094674363506723447425454481175659379965303636282585260775732096854418413541147370737983784951885826823188508332530439132182815959794088900684437184977488209252720172050859489682201593907557687255339271561399197943817958403128054045118442467867219662869024679839961579866468421661670299724635263438400745723186146361995336100911559065422280553044342814773175516307643386166545131520753172070211527869982920364176727004278221862606716102203515925055862999469291575196853258574872939934620501082037250133845155543652822220540046933178241527165798843785653519667481217814884731058608365439408707287515658122560713577207308408038565094677615050806624997678700067319539067885680985679467261092736535197720400874849175049642544389959309536026405320452191995291979312184396039024325348272254907522267486094186393469795663711551064097566571288221249195588165129327875258996461572730949652747017641439807184061751802457760227457089150895166004038613044462282853174793047031784411529932827069526970393292172843053310932159380485112975457857752782852686106363003835502307696815399335326872694997957940348495347500400720087610891794356796198442302445332587274299438638927147831558086703731871776689814876817326693914932715945269304558841001308743193894661889849694181483925316983857834525591233898675361455089820175030228359014144451462864438926928133075183771017990603292059954996324865607934796233805226395471776220580348514078877130158098584896422012489498565799098696025284167847423649700622244149174945695214468615106301426632230589304947675404337552477651236107298444607719354064752141097955812656224793007485110261520277170019436595816834065596221945417176032372439616840479206563909572291430156447256026836233848854779098853818877966182737887799154376200546067052517429197487652831110365387204056638131915737694873306968388206234080821806396645166367125142531335289823476286545717970155550734199966410367333438298989654020897220296175728836882968361351900501915229117093148743937873250703954845496249536673572397818494767840636104413163954702959500954377555714937724792103624522371621714407531819715569739475127863032342318393891724919913923702093630534939295995651414094931226787875977472123871847820045931912765668566487298079872968026495955219342080446922202156725739120370664189930891402525719969167818720462693630503521221463133883554126002140435959552704058598704107566709431377425563476734589944707706415412223757720863305352383574136171854367998783100655870104772287116367448011379627900458232073306635480969042164612562558410032370613292681775221794906217139546857127637677322316349614083131074860096335432985103663465875806447176686350445834291701516272866533452015655345450570634625971642560390956345840332052868342943381800219178334155147954905011373123791127828148519230392704310028486919547243721147322851546276773443035571981217414671115006384580418303805073262981390046296197717650990307563248970067119998113254002226248764353367474507251705944215160423737411204397465230348493376595320611131608210477293636191182274062019103459257165591300795200183050153615610318092531967684942726629372052417861774584099307887019284040633937774339892691520556917253279944412239253903036202852184719845038158424718199285811200440204911394540088906176879178775302907767346396597212708438359183589525421418525781843645579485950458814580647875811464244666737775740444256385604450880846684741330707852879522945553755353126775034893018390878289680039082267899796798634903204443545392423430263805011634674730339387885081741570837951189280474403780931475677934244262913829721732005321685878521406005903466237399949568712215320848174574033698710842876555563362015251182409828158798049227940623439346271010108727806955834590894306071448568979003382928877768757489571504483821279068295934175714880525968220177087914594233054268982455850925081955259864498440156446686527905003816893018644210396217084018498918926144080916493656508684311955728178296369986118523435594313692602115010583187079779182858705976793676821226437439227821437262388309881750631898498547918383855789191699822767073155674191665799980133442016275376194992532921144900845693174678637244574342667604905766519793789227811352220569540139097301978090685639451036991481986676542673792265333354829605114276126765854637513236305828931979190476309817734972493333173111011675207626649237683130100531836574483855019393411825857736659886944448143601740121987086598631535648438359137399750913618782625555659634019980772043156883156230996133171273189566595779026580101346420940015584290287852396979412902974085274458806012108074524798775906062778337889693728182573700069401704477316411501346977709689005325193096238602622237475468909807277209670474834711963521141451313608752664596066955197805576744228151185541160334485156952537529802167614441642617990365640753881585134504699991088643365249778871315126361462463633186135442164229641958243189538996210986234026168712473362653704611624151686168103720468481279667495915458973089293220244904516960470623844855012322242265255709584083423760300690339638151013726027790175613815940832081121730511540925043778131803376145967217700704741339599249955564982708349177286710431188805723082259588353973089423192655219509580369368742336284989165941076907874842342854891845169584852211537448374298909356691296786029137165269663555093871138253197194705514001316705252382327800394462193403570956423625291336982745595186711408634800588522972259513383159044301762096532803043973360751466956231822520105572466104880871850439647129157130699578238423332939314394129436166095410368573375853995909880098368932678033832711314245144379851334242558758019020811901786616309152885234719832492939370756360499380624318116648454202430246799709313449721237896602482995300233019707978122899424170963994414347508274161055342350161268096041453237210682983939771152828665820098096112442073590533927857255030756689574602722791394820054530030333819272933182658792015969069997926061273095510754198577917113423394286865969802551766402538238667731589760107628063560727694564290851831970110753416449931133596666500198458919147851171565350724238005507701098035517332724442044612702784792293204195921789134429504906611254167405629794018880881852062776597466285044194245301557215775927353231882805517068881872998173750165073912928640683948832432566610830717105206173700960220490888056898524019880693010297827723717035567233647333619867922050399852773088671201686934020593807765500303209782311286110040173362641702151425173811915085726913748074965501530551626913409855321197891395040914872220318710834024376997484831409492523598727750336190323835188029160745189687089120273102568336278967523814330083052145952421234019596293981291760988502508854815154566117760996791697679540998251115834887101951255086194925161510527315389143003373925639572719534528058617193888869979896041558323120105634355016806546868643504201780064199641507824724442630504885062815227364369798431883370744042926597530179062804173188327925407449869153962901240455576574355023792166509242760274156305235700442957552986302694663723073913857920447246409493788566923681781979338250822509733515888995796839330365212083101789072300714549512409495893598933535408757307393923246490517014435847930660605526777239759277566157402616368524836945001556677825646453897671524891023151628671455320687677399122834447377228734053726353193259037410178356146167885979937056624556631463532930413487049909213105373353776708339564507672251928366745779946466992398371295393445652995418493628338184964548200491326233090887228967891597987681845544096863621963841499145292123194344632484795229086108867032001637050428758104786742231309264119769067839419930555014807549185390522882047366223222316937640106272656383536526362111746355061023849304633288605636690644454991433048745312721832211746027525725558019479538996674941200083001491929143751623681594162863392996958246375961036966266750174786203341474896372757370693823620398306633613316843200461515465604119371765289583033393441239765434379716126819099314553937215915104488942342612188865852772677925492203476254123685510903996004598216423448602950372850979142704153941733356909668881091975694939944278653572409693753464030618035193713739244238763761942912918397538193926284117793708191849724663247025362751961282473607525445349572978053234066699648119380464756135617762236218610037575260203912857555577010079672045484642528099207407685579642037956746177225013703264340578754306620792394335706466594739462592881742871537122616465697746506531026943048178395296404996021496738460746740757221787228565505320101743151728514047037347044779435779000352051415937949661652527922117619753154505856784110957517337311827742751302532166506367714512730292168534124535531192402897285450305927423162995732663680904763704222130718159152316420111181565847705810886052020314921159292698427229708518617438343867701784707870930784589140717773617366837076353879597233887373842723265163686437555153391864057348486766518891269350984915017978578143303600648119809651470382285865087270417159166861066227125208489981614805047299768039830877103635907472584946189203863022772736647655373642192085182732460728736384752529894900967477509361056244034095559912752134427525185430164263860137807068963757121855353600466448673324525592269418876306537963321821111359346078507329494670728545919264740911212745228442511619994530856156177055950304139182809319829932506093464175176301794080041888754196113134797605041329520856266808545793484907439232718957946677281819999379058559838301922987341548830914076468768436687816883869156349322086310889575187670388495260446977578634248347002192700295108628891234348639248610553367467705640554103344014401878446026399682472134997967256201933157711303720184590722202441399770158679363876244393633754773487093557574881354985205960803802895913773130675152943442697481610869691182152879262197692365392141519968510112543501509513996979956746657042434943670658095989232680751315057482342451931260913492873619928863582131608708076759450746691593692399276566655015466380030173904961362977690777352033366229120112358556180940646587632218699247014817555861549295755957981554606398905807727230183071237257888833984441790581497769163268767784138703793601724374011823619280236616651703099517933456711800196952805689868529866250025320820769134518345433796541310435509230336863904068274846427648238188008277315528963969473143709387771049899797564447087270982533433010477668173101066698152161151350010161546315917151387556921906174769064262593107744649917372015739469584818790561108656683585249850638441787756611883053117111628281660909660208937594088976164551819115409308751095572669310772336566858977802072375086181938596597296774471240426032625357091254314888865734054736085881595437704645480961440796186678456324375239564268684609709631992849678454357568065764099163176895554866707091367114484823783284385876523376864956742706804284747172643239044676179834371280760171860952892191434818285478866815478131052717872618666174334710948978679652018144600852670554300672439515107912640282522604947892755610400489406985901876442003442680737719621211523471696884430207311555751734896498734828892017213345884473320130261231763593951846702760052382287457149910861848904639547573384567898924987060011962250329624096072040994753604416461627980123229626536080945199334737710742723163898710057020774002951047252271787111567145969983247248860038145177718906633905514585210403332951236220426247617489875326286807618349634971098956728442483290095102208685442261151608050469991289487666736948460764492308769868438213537268385148626252164670576609231555781878885999651587644777544040000706542773580824054617448104025406812410364766607563498194489984386497523801323635637652007471904618426644147934704509935652454649903178042526750061703168314545813734376864162384807697040225876404108825977192451584681083350298005286952923169098265037615370540738711526919136278072389834032199238809598310382983388044033988094464321660997684318857992392238690414053498365161276139275325959375854375859876404526800274274849039585413775516589165813167631880549691619018074543459959050820420766285907368996223666312471724532510469812093063857674562922751983870549431277079248114247876514443083806919585565569404758983147118153081093242695654124778154166557914948486377165887766730931555160071525186365156333827948496586674018565368932459810342802734076950444559373922336089301331513866972165477143477659406765860062674936848091286896727829366921501762959637297180741755175818675635078229160619610540846328027944785427123168478814466669854885317171445092283352766748057289293364730425297065759396816592199374934439237868282517288792479435039954109864403089665687956118416676951288270615759720567875119261852767882460030640837102079218685241813026394829092076347122667898605500926809205830732135767389068209391944751939498728165300890146007182231731867865946651352458483020083840924841771310672745698250089839599702787756645378608742284818117186016096583313701479936367080216558803717785204709141588081469882161014696538742543742732135170226183618178001361445287665245596534404782252430035752109842364054104738968756130614586025053077154792435816306262164114566548083757291721107116559895683542172387868603885337007772460716764140845542245825512243064421285474893576231469058242053273553535942147715487649432231960879882386330167427417816540749590665020358580901180409948984257087270974121601881501282514087865339615312560513072119884073920257265403095998356137282705801130981604194271297257349096354910000487864675647440654548901698597538280838378570577586734438572789649694316861177921425928694059665065251511814161578387724430185420084469038401177515565611965043946872596341162150691440027067909486189327982592345385416415447642076970455071596877279528668653619137976067958691518841937347142420022269731796751916507634863959255986297425165894777911839643459978910916781608099899669044360579015061418556166679974859034344726801823551881031390641030311150748111945302283050842001477470507134846220144985310696260033939583966405218762087848295549184315721880037858065811796848489345609989248272988242928086496039134250474966052748774513071300714146145070788947048767464401787526477712973372578206722951335316773330341818933550575613135921141120310466534468806547526705822900035901766882711565459988292412989652037043346672248897821780723372987712621547464259679259984860812083137030132701010734259113755123087713690943600718560380392832459707563032254962837981387800654729232040934518897442328048514211319958863845679216968843738411498583579007550815845769324054997074725502931867704167953266574739853744385812860664758897102959136876756195965383322961571405102169420445069249970903970532231307381768268469480069661265823764942473605421849521171790468264521123656712698065414986727893945403424331420420892689993857136735805502769891506714937099355538803665965192406522630251552074056378044485020686510587597854524960888144006500878426572165776383935193056917319087683658909412769055897995604022037013357464555083231101768019933069842550597368617100562076679896710136951871449988656362012964443935831789604487705559159568185843920757051083764511622260035526526895738058164538213698233015706613285167303176391544886705349463271938763161447841260686880855281301114345834319898770783625978329353391352726710138563451570692265506973734835443904340513822268163569380448424356642996282710828383323847102679882871599871082599169172461145778356467470929865588664786239248752131612579206457502650165659814152738236636997022378978235914797333406583327629438004390788267875018563154674921439983465004463570909890399639466410251413360308243079238090518422764211703484822876106236012879155471118877611483477168721574091292228578598035823628953275019046643471553555608981449302870791878732775264061237491268111637590764918521085440877822386855368131762146836673925350934055744657761972774653086041090932913905458787141293782364719304518814047847303493423600109109952967737548580886307515939228857315784726350198387437150198730576646482712378322024765391161416756489692758853340397684730234459817375439058690447096104888139890382372094513038415315951517634490009553080580739934860789328978116466218096605758620305336476380164426156827351522575037476143071717291985534722790712813481493209043044931214889700162910234310393754188220456660583540615341928386835206252786506542534169527017845872340214146579920398775968667322581644705373024261071832658957653621544195840390712727826623416309571478916298936184925673137991395147271056642097123114447874865233752479183790817980206673110494550449112995315866893688060998697041978908398742460109131185724286937481086882697214426152931771456560092647677941102447047215040926544515518490222201883123590677406449144760204067271853163475459310079852000437587328678535489751115380997529723917831607617730526479617375530575712559873270789648029296221593840084705516331070044035683628797197732477380639947420175043039128831516941420468567283899183702917648508749855716491599837060509169974632583580721175881456846731718877512734163240525347472798205627404364411694515607509099076041074111094337957776054481104683651539466951717850528618356164878880680996439622744277734474960177068910967104502380022429103480674641808064615065447119652268905271745948512136161221768644401685646425829290929258675721439835662504944729991160281854521211174520916736106496973737368151491364620594854558019930789124447371284391972834299610229923421730143575410236127438330137765193122343598003697546429109405472184241402891655858040962302740980800842131035489380128090725903001277851775963636562465550270421633900713978953779119302599267852719676076232165772220480518256800856320130769281517968144779605612532373909383045766480156925952831191502350760232490614275522357475023307475533190773708969282524945477500696455462750141598307537735403686236390665869425188774863624229444953580307799966513432908905626467814575862100290474776305771891652378737345679603944904276225569161381650371531301922658134719572800813300695170791416322671043203440733196712250095342990423337642346514709666519970723671073001084192710149753644449057224465573091832397010150457964124410763396705174529778566916590271932959583382265114235587003216589103418160547757729019696247730853360785825497011430750765479376975495150078590911159427378348803510739720841405979129904061333432486044690280566266690076594627681840763572219474599783379355673529204751959121874639634135575579639143819760206228076119935450052862444348202569242562587767745293514751699988399897419374473761393650681605397742783629075997547158667696482691098881035310844865085652912230128793755759015907333170346671621097634890353826627943274259418673736211379396069513408883631594650380247297242110588141906123453929761585488447223909488709093321144667418176789943924926620572547964699266454424785918176671513473095547844451972236260500575526007869128924446150149177091990273364781218707435197249271449439559833817428222203856185277834387358501595549010787222138597969758813975943559753475343839647369931662550847704173028608334760790201888141788790284311362809449792158103928320198407079651337602780085312281337483359179749818459385609589173471656478831824776156012028454773097619923169425119925181307945105039223625444797412018482070354983623990890885683057042515211009600997554717714108745083697187430653940444459439797222361032428496386372912941344174953428263416776836384907413862674814618259693557881255494370482434905194003883375977311639732373983222000333428288412295338903734336758031330159189598568489786957075134306556023485414564987094101196548470910001187756630709339332096956892849366556073126190638252624777475162799668689107159942970329830533804320560912949710569786538603256728605396115300627512346809744248201120060282177385824003670995094461336276986974043496326424205777331681973786872156132445855314706138790060422783736982417289209474947555022353190224556739287081709965393711542728421664768077755885853827463731429531446724038522233592565266545717405441548870276611759854812748480975780701141981974712239022516192371144582716342385975781923246599883336492269834444879260487910517958845998735910745379407248061694719865672149065479163800239722262881109610936006609192465347016766531981014536902109792603452264517663887259497280961518183888577890767257770216419598091122593896849444640051976612084921374937432583985934081180776412592484645481455581432570880493042284105193906418901004246612637117037836914713707664168241692281005691753010952548636519124783238734466344670903561866276632832729972545146162786632272557975982877560590879966406834308595389619970710492802438320766196879704037710622608921517211195850775297327293979684597572682333746613429370267415306667580878555668173088191408697219230963378538360198768000402018423110610704986273613956749581003366648013954992304693286752682825860859662648202005533465313192536872887356178630031751445133401919390270991052658251379347330191734139800597407586758893163122242230491333384623584662870959351952453054050399197483092427550848153763603789307665462972916809314961738382570306178487103230703841032764568812144877047543797410532482132078913898575346951324823784656781447352046778407342822940863593090218211309504278031558345472857545917506942901317795479654602831103363308557169285165028124652653741873267716775210725483235599697682740002442120104650149131789820080918845527361137513114596063911058102047378202156857616092858730097658428156675233116565403944329209416918844307687018114901786952290670886434078464660026052075272210318745030999706547138426133510080331313300636307935154260228824205471405983549465602585487249414794766378140864722252112974581388017708284012538593185755549217021943822781243385484841381016691699318848566029826643997612325017989912217450915776895008224158808691958282496644271548582884202638299557048789578148593122516426782487382563557296412859783696465374104161045258824851673239469194597422266064488562970411280643338442927001164010990609684286437978507786549890579090162075564347688475272194671858609042212153274265709852312771543820764529305426466894777486902380492271277497376250939987410549094573794640848139613501000905106976243999163630596602191915170066947373057506030173904376861402798396719197357110788812695630319858023071213676348556292519778510059613480594115413070619018841677787575725455014183380299913801729686262087987225799995072564340943372248513104119670174682985813016231811600829159625358114480741720629981676038316485385812831621326545459926136291770206190487024521578060665565706830961772215357890446603864614053343989629577129720836518375349328986442391828954772138915737609054458654663280153196558599407890188864386260935363443337730008743562335822804627369648896442620488131915543147197964273408889487437417491271088445439117781339499438891100993010442200866494872162419766717702172964744368417259226690112554303660173939845296736285065662345082336473350528303521575564671302707638540004346269693638746312192417528242685339184551265915647874313986587116934231080863404681753906292911265164138606229919294056833458054532404197136702333040754608182351845627926422196722202987377331946379693942730519752029140808576939436566558016640027804838944500740448382293235746072811879275331035957436420887103478356315157408602499733504167843831047195321132069240191912059803523862193433618647035274023969168430635719751747811818747328040339360648632260262156065515926261602649710545924296057154987746440231096265150246942255785431186809072996567861343541724180985635392078215073375798377157021749294386276017142227328029415026369467024383508186062400319302929938595454153297620668164479808245722939472131894832068604165454434681770499635586488564392937343418062165497140865905336426353205916274043307047734350836853552373668278350042142123383194543427772287464040323864161516128010439665140284919798322416719261362288154471814494210120860855614341065509211198724858299039171718246502935724115297582610930015819637852719509140184271908564456834470720009919962370252025760798590040595222067585083337846715580487746067958012414113912865014193137266443184793732328758771996768455164415483886931023731929196954110698496983814124256135547791185442725179667251566105361753756982565704469842918365355072123163143823630438852404394011819311221407678353337634338001335264607211521553196050648906374792798558576551617328961225167150368224248221168838831317811181353475666677024501033432829047734762529132032226351773125175052542376735378479818305550628219542341071403281277849038240055969589076959901115001423261259842856359968481966403234838933950611465296201240572580004956143867353810319755456167974128174514761787704082584747111072491709531013125802016951337868804258294704409780103070817291652645789628446717989540543725946532330006332144704858570649963127697442563901619305490664916553027605371089887359505379786868400898755850770620629592095807286974168426350662815365625011775961241597188638736516566499661146893940663352197961402288815092987978075130381415369864144644336700153626771120127093562140598295132961857499557144097460167558667496737184571053344384523117684364444963884719711984644014889662354145130094822285936649077905629322662887654361158732995750317934608407879163192855519053503277763269137255579999468766536355135237119473868715018557333355328998455497846856577096160288781537836754645033555111185334471754048653890337407212959163460292011592548173061046245375042426924061260762064025854197991761265213158000815586440504048368967275685343285326502572136784990928341489586213215234681263028708843568799182535729894646196071766545506998311234016061222186345430340583886557302823863909597002287091112535265456478944495468122924234157541517183630022140567587471881667043428478972200923396939277978839618836661972264221421447526119201629393457642508498826981275475498840432103365535728555447430576854098130914358671369735725876642710964641051827516673431839502085930479426497397564513599689680875411969530786725956940047346876472741054117608148993837162084905448789155913457621943437251108013937530073801207457008767656055220277086590969904502834369017062481572979456890947907115378231713648363008761344552221921270333679383160039295846416215985857951019886102848545646169053271047381325985568696512258814918963988239628162657219294119959354288534861435217182066944199180723657096352321294571285349649420322983472113277700846283690795810113556813494009822164793023201974841271069173917235473764119232748010531617891596200390131501666713129346426455812267064124841690078728147898012471484110786764875842758680352143218494656907213711566165094324413099522001201596640854292213222372227534824235739573290155992110988964923803369520984846710406185805470488331466365674091532084963594675784244938599462435538135526619201280585335171013144610276750351093129620974154096053532975191076602695368169825218954714540425387552622580064297868209992453709154347470387279942458007331243793740541137737543594621843399487093992145434443286721185355221420401959718025748551758423116867073382415274171307767700664359240015008214018138316167284582721671747875746604903549028916467624720957286309035106692047793292678822768042140199688415423477427263055906445110158782145237261391266375204175926523476960459382819099844031097876050146026085549456606866141038267681597788235831300210435951084897710399376926985448152724952988568490417526719459337720852993403931945995419889039640648281326316744486850375272646926158124413599424829351093676320263531509688127446939731222435228867062535912618824616120252084221588797309213961570583534403711776255624105243395278240729738601206487109605089236827251027544521030554641089066247837211881574500246838391425489662436245747451926506881329775330668583840131986531108599482763238496826901891868305557316786722457668641917477279592271263874415370826305712575271676924113197821411667121980263079598045282717988935900313913480211259060901588270578585862356939160617853605093606225601468722030756259085483272822703732357414303281240238632742495744584908581952566272854651248763538517445348765936425246466749770404053429818189235094397811721769077768848502862825809869032970103906736978922681627384351741816697610444440246130852314206484622520793160479843099210846782280334104928320062848799330674611930854384868236267766628644839319952629521088006232592423399423262801445953908953976018033438123317434256166018308172963452206994003254357955906454929798955228595659620315562347707770310764091916403638231115510303726339050175562704767648759349548839643837248720871523158667755124531838816702289928093568017127449109979822085503971125261889726565071840734791850435846137643639775397472862941444293355866708780040367491906686042379946966244565294078051050266174667335964423409518669477891912320124536022478115315163535349442343291443456774580432969095357329317033099799987951336598819073917728255425858682403601045703569523407721171672146497995597027110951247476178900115326334742860590250920501269748634321514669679879577935785676352473586940986859004955583585753597084215267772626943927680714154104457999786893334818528543217413524994302174115826291220288863212698734778144065543200140233560867478359026147101524321789579931278081033168341807486373753543303928253982449013499693195197919714771802699019894777470719015275240495830777649734228745420165572324397713332362870822686666911924398783795587155595253511033016382669632046408364390163643320877396092289781030064815142357120354685375661722189045895429085085400953985855081702701382093666719515716225658259585265477172078585756489373325331369643440299742951991692858335721934131929613191343173641972943979914935098489469831076341277154762791611093058735810501890814166688719380365389292118348051068536967471192324841166668777688626637513989569973480263201313409603307725742199669782041978269697480179848177969864205995881600335719845458265651997290402701259195870491623678207762296752462739172036715995095609061723895722346131543567944000724636683749837091635077236004453743485567889443074543927470998064558432565465662889212620408228142633002818975619799658377914873035267799330818687662866954564844508662483513911422819102624193003135431064284485833028176800348328629723797555363525265796412855776341679136370966876539397540941614298825153209099278742521332200650794393730029860470304873264850988879802819575597573083649962581728593719690456188017306928680451560830871729944923528085683109701071580534140194662852527995293044373489912991912875404666999941977890015511594030525753685622600746433094285008304193039560111013777593418783300122194294074417440221175603378608527646168084687754823594841060491363844843587928037484386560683460983638169164750256463139461958844774719670331016842904918926372129932899420931566595975294934088661588411505250982410665929239661869511886003475333783532449675334516186009676496014851481857999317633825831884934648317134997868676353944215461463190420416850809997717825184997253368806492075718293382080654258698591639524362572163347792887721137711324008858930292111846386809422607923483086923991875951839577474652566362926457966613225891474860360226562087860032198380574907106973600261754673607106863996134636511184828992436002124948987645195076730602057658644492587478301333722584989222099300215349965588560592657306840917393369045169853056891329295470924519168632896009571496902464222727764803325712182686091320495556484301840134928365736173192678917570933156099874929621803040876776938027781512094245876194566999256460071502201694981352359693393226985482988400208159811390434071061444264538576551276951761483268060713272171527202572187284760487528460778437593597166532477883927370194405904634255016072945450211654843174809988907448055129687605421778643991543077255121064699917848138870736010054598021110140362715058769727961808009443730820305179293793062194538490721037211611533159692531692774414653521197079785581659225991328469826280386992818289757155705445825848312667789142575306248000746145878043574451192545630092052529581106206614972336011238865739747408105435934224159445734547477776176376222908537047010245291465001289709551604329500727244173181924855076752558217052823778739278478994417609633661482905200956582973525757974868377267068302734829080550364936047439477815102706880014552838104714846754695075320486132247645049350083274740386694826347255103101886897500368423205418234674920580493059263415551615285102745693150614894348123595517210005117042611958401238488174320091076708541011038548666539337885262681248227438446807307797700601933390707743291969294521971503895061469907394893190171659857746017384639691601834616149873104829111341917241761471550590723501848617696700561429962156482116166256484689881334485588221113111065716930882328532940818517513083489923057333780972342707579371790106216717433574871856939242261594832949752033467012392910140092998648817160810294416724631578252536632945112142905518191798199336330317619619502594093566843984932614448485426565170529760566176344568898679705454200360010451610122181137379399328185993467361821163733525337583915744788954246728930351977286493513989372086064498847520255435378956933511415544251348633371573887764863403212659695991423698001976289080371234184500524217182982903939717954087279438003407883981123368224067120423615227930272778643330668076581509863651848769532818079490119157815973227509924367472417404456524964305012311385601100222982801396686203682028263259478439922204596033995819461771437072261773848467978237289599620511926208694106008338420886055279419092982381776080046731884243314113349648214460835860890367849902221067904236414069775630123886245460992652341903247029927529533625709497383869368116001526376189268561354012389245591384465849268698862753835546278636745061142754503147341433971431760200056123900194188954784652640021767878761289297755657611622545515007487150792570514703176412803861913511902970634271818909021038836521782895104449927548981447729218582215273579224621747739023901496636774401115003476139794475649019844361223703581422624301080123732938099905699804849647426348925887886551249032594174832777249552533669067832749354182491502534303269546266370471757871045677298225060408338486144839248940082487973618953218854266112187436769221087783732595226020288841525140573772960187223636140533282713662483222421017594965303674827668175447009085644202746704240674714986258582341125805751824783188416826374103241207359116930937113364008625329278802276839382231548858575617518131332161656435149273027575881462199702473404497341528821654528341710512641774808922876481630929924266841247286863032961956513930724173717843203672575993465307536141541982252535517838846886301630429406820433084763166939572625180053084593413913653305703713135849290644905399209599216367922292627046592987676921626419765814949886209355322954738607782280339424376008240179129346251855658944029181653120608530940620441350707875653407977911688722637234997195547714867698922249175575520895193997979033691938653939115762934888217225409539351809608769066300171094981015268344521042730108967701888405032344525104442556272988723303784290200140900196020839191887186616218175124012948381561479942508062437172482444843633490502838138246518648729291344348269707603868741833717359819572465432177999099915143145560214192484806172636099574503449114713467310484536040232210511575149940470513374008295694815217562575160023706577209027953782867602295284099151436211023574663674143109032999142919399130094438950824091551840422542751873910987764657080394469013730472531065315482447330838811463226649132378843233723408600056557933451514880880754065175906096554201120377011493470434349268484799802234622564479262727835418463526769040193077504107464658132188276216980541698267686143300332214819120118490360930077435724185575493055966732959630668153712799348439774378504734682299125540882050653769880255766104187408224477624641067200136050443017372245426949316280666762598443038745433765386585102587925242683495765788776001649738268442133545709824670019366265821348073450147656334296326029459381725658926559097259560677952212397071846436916292760693875343258414371242644607779911872769316605839185989370420315201194716491824710541938188579194384114335333568196449007001652720224182306549613328137258012479383003364352305572411702422818364362782556207956454215604581713386985081411205549214197325569640573020425457166193300914593502356761944537107003303998146199016465425890463342388231267344662803887152389921397974091351640767417622915149613951517386084334575507647836815867508815700155825190265382126375689546889727484776514069263413747021894889958230336950984916559123360360329898832995046060935908108465757405481164552093099703606225473684396617792209175462570601289656293946658114757150933295463965152310110164895544083447593407873731015940458387806519887550709645610744577082488861108073046145353698435490244945176523200008493434019639235001553089881201487704722758743036079230074244876547944460277013864961570271220463419828934184787052728009765725414399900217200761105220621538896122512083998882469686268811749356388534177297608358713942197824130409114765838706499050811712324373080611974482604491794243766572393643905741633685414945961443534093710725660045942458327768520219956159912101241143774482180922086274404905776672091414805921226113028079546176035372248384126448568811009377899992069014678335462807391342802180405120737362337458757334833346003167079965027284664287756752302633825732644970309764724085425366772481022871018737245934723287978988428030245115854941732071657951051271494171536378662316672848715969467010858401005246627998992304991565023514786192724979791207480945428715858348184906536527653668190255638996133068233801585418795138117183620793191407149574181146634479562827199864568195782142651578710669187959455575464750385929695436661773638003153508934242889382812175661305908384796067687648905592574391944568824252244506908561967993578054338957429170988559988682298098787436354993815468371614265183917713646003309241274121050337266785463475757653343489063650140359059450721080520736727067003880086252714634360636686642125400695227991202832656089172560887129476235167410254241478211418277950066552949833666735341473424050572803908480026863645546942819023381234988881993072805983489850710616588673383916672707938779438209075426326610702371577952225031643281283722378942639827920003099213096115918261797905860138790029564830700130188623662985917007730614008379393315368031829781735276543829754084429527461334537105336172117987422159345462852334759190380141399560513027855979292277729976466755383815893247047139681020867937986608372482237082938373881092064390963263585242195171422805914699124790269094477330504681273507972408748789908155786246620513778962816526499164904099215909186491690552205219797977446924415614444731959630705042234621191762794474533058344171156035220722737934366884673152491788322398343302037072823388149388346793106127925636667107445714504682955659306375096010367024717309050471722441702937443184537504055223779193185968315841992201742831049122974022081560808683855303833009491850347887649264223564828571398397869556325817916152157014763177144992245406142787977917510844584627155913851173726072426886324537216179308114239821883026558780570352365300120600081885729449142487513135726333548281225608247842294052769899419769045405164592589063189062452664711510132428481109431878671624807041167353673325429284516303723268816172650176252124656752995823907339909424643152667394146985080674561043157017906790415779072685383377183756114961101345198388322270740277660942791027812266039424943509147922857744245375569647018680291256558109053475330285028108263652364612110082142117526504906481247522923411230306432014613420102098251994573005500304444642894766368990333811718569661178886440087428897724727184014195712619329429582027678815966126713170087108407885717848754912327852282107011650272870832412317660586696756690908862018669077267472975276026594758848107290425290706690760347298991709910860192108737730913236278909828683924856767390951808314801716257606832514392057178705893466249846253984433157609944226232742213726428447640693754901668122068679506028968441919553473396456729946322564725461457453542703819548196883395197175835204182872729011883164575737346965023020622301989222814382216658150099742292447983304120152780397057747088584280361303930117592393001345860565339266365823016421823776508299656323170020263973293836365244547486455884449551841523186809919133673425295865874305376959895588587223847517806573562374715523583318290416914463177905583507159904753457146558091626932323693981364539131363391427539338482784984711597339419270229251900708341357843733696682605105306827659645416557551198828867250902960074070114331527808348954685069385250282154074367007594661216345664335816900027180506163691263650958039146426278997579796937297360382909995965295903173492389668428907117140646774887359295232124952579555902342097708286633689015735548098817831904394608482565537778127417167897743255513424273880718255954422132990615384541135070625378851912197689224499693689242774678773739956664409140712746482772144248913105174948643157941090056462412002472389335855561136003756980000220491868746647229268494183595759754228417106618544825907086337754126312334939795403810459672575421150722504173577113360267054271858346104441629989652725360395824912246964978077256428911648776599880820145234102137995559371640318451661798040852755839663625590814095505495577197515687827839481771154726171503413339493921379036896039247998518679127482402920145377101069383142625071642188870339168665692987690967782170400523746039451855280535657053926595224718353297042315273307418068512789250876971618097058948158701750873706158797714978492146384783418643546332617505297397919763892724737484622358457944656558904586335032172165051400436681175154506924475311459519932015137772332834480040787671213009612751427374972813218857977261340659340476137593457050151977865606955008210397475832255755423068556298359644122639794387085516100712803352130675458406460049674682534300518061917639128801145689029216006181032430161853609644829008521253463638132834416735808994800726595333274244769979621231912170567599582590331256092422948834432387304018387511624122841062801373159099241706750457922502835471643856583886318449404369268857191222000496607169105331462979170170860471956675885623552926228246307144992374308790810323946561296061999284580862712665327823799707925223232283164602772376634885782805160236385222443331252312863576677529379150040854037733730869653512395326562633935236074024587961878326089289679313795940333484053429607494587480743518919328310593768374842268840063548862030865278225133818235402366298806512175366239982997886969387325119554951780051198425312677472562605373955845075382220756178632357264236149436329861225861353050921950061887759889268268792583441801840757133459434335381828848604203551984633790921732556347567707662396520230703960577320746801917072199354845309389199156585536464323718963909316038486432034581281821307444948716568244140348236714798029495346845809469490361514747688453104020518982344907661083303815114421067603728498377461265412933051056261839806983113514242302218563121599438394391678033874212826205836123991676730478206534739367206556986322515770784372433237046323769242875083154872674046895514731654763628942185818771556661065864815889920980958801919489184693033824352363561341707628108154620054729471460634138600267559132794189433102635567708134336130675921175025586340566496833112297439623186792202738834725827808822469182692939699526027166371184675140393902466623008536804618327795495944614559079184505538070665009933612086664879809485782203459750717232179923530075506673367082234625989590136478154248827487943301722018680118485148328061782918536006394124074152119895126104720486173699401725371093470532707585144410101584551862249193789144033417876454776729810083205841911362750289869335954724881216587688666637533981565085751382580673400228159748706727449563752283415573602559104570294879203762662364215193210818613313813664278653223923663519349362735863476708420229928671598027845130010531802634509052898032076351819276415636311503391503482881864518300353866856072103180025035498347461807004278686075825372866622966119463588226547465956399951859832992058918429965121404361068111895579284876152441163592711638935195647107104131899007387292353001502839078814225331919434734038110806176439210671261846553761454593618123618930658948578436437678478396199179041800224113945441377705314670342500229329341673962269617014426648694101175604966733539134185249796268275888467111520718401634927197103960060498609464875130745722128182985533880602975718028080216242251134468554978337003750218645227972179964828641951549459808372375532168157866028783786154578274700058778169556336480236443479001727040722794043495131825648755779189052349375664252949309342974408588069633642245097918148607532446469970337607101406596921807903792775858383542664580813378180350813621377630895943460698991319438451317483105728094075885922647696300256330805970154904840779336694866340947565838227774477575161741326165932067243517570879171238048697060954808686743655044825917397424719200167987048655712489529577402373695173045097119417189340250011394098883636027407537680352122881935579577489499072450730739515790345771531828288786019236480382130806335349956175054160382790005573382371902664911611977307779947086677190898977446915209379864616840684494879427011448775378973189815409908490782749652361379969972107487929845170261830171588209525271827728830597901729624644657904077109343530391599898784283304608660459170530856760957024075825032627154667563150455743079872826429761132522355748792073175649364857055462895860969040095493446489629704913418119464725503559459266320656577903561386059330553906546187940653015186602208468102363782373140301125952577724108236073465555401365701808721408020308596885658407471212527965686033183267905507379391054948222064243536786219028462815739205422696292347781844945383044411988336828895139191724696064978765030435563523001615676554503737488385891342243494781397749404365996964669489233503861090556562018795262254714685539176474362057555063173719087069420971841072525738439349118959054139781011920224992376610806308801893329264331930299614760874871248263178927043168540842884302116413381429696215275286708218826593900184391910968073659117118513750401576379012534027346662430762272919445073885440886307592527574462130146489730621836976091134107564427483700624784599702432355015069007356646296917405749749187801103560903570720263515839240047758228494051682111277327502859735418833682324387340283353148648974001343280845806914031900116603003765055820354977970811914084767232812894989499105302352023827958419748424484646905756470066375205801508704138216352017375376844082865485666649132371877621566671335255317488455098250864989350946013978590944746405483031408031377627303958543007059671064050578525319487307486222956003296922239019750001997926817279721278237783790897866246267890982025581071017178052716641589652346204151722233800743528967527541126764390774606337368222920466289296934608953879728809595616003355936542549238580677520490931284088155430877607783229468359987847229652734967003647804457060116968821128556805275502449830025767290638734572975331349938841241176682597339587254241371182912729850640921693615033578205310854338604512505275752029553255660431808467887338523534392452155927915884726843537912641419211137789802281022702830847221039124780898820549572895916742060119909923498428405811745506497726561620327740801352201461123875886134097039355845601832704302057752701404686553854229189831957571322321042117030216568777628088066278651967347877644169426488719252246325742857374969517808510368282064956030202463249940869288106367226371761965045580958315145971574286843980583422910631229701269361663536330807254672723615214494845287828467687452966691933966470536435745170341322163988561060615765554257663248444045455171830715033435659437384319779392546336023976709568188153546067045567708303786789639683096696582986940875216806166013097802011761588519659085666878795301763861494752234951608158470616124872417479923531281235853215386560580218735767019787958844905897900061149550530060774703524072533848152687499572108556741386361237131750075093490137185160928949362559574884090137538364706364333494410153549875940585467966570024824521873491569298008832974607947069107890522381613681428612776254461084564256084919134939406236594083988076713912031966873426210060303185394392236744367060614211428296316870941193984651998132219547560652837064013044098336783270582205030970316323754801291965929821281218493281919247887948813915074501236803100842742566427675103875174770584634992245214487108034354499181785014484757116351329798151213059516728069855071514951271626230626788245197700203073110015407458178695442386950496667036062394107732149018158984682398918520165921238448829356657570448870675504615204997988580413418028361094340186605981590283829215474893185610245874497380881560011937842135448060342205023659267545365226092002490715641887965594143148424407200613862054061527098198497316987353011035329274907008924230386261839714774116171346543689730163427778698797879742727941654426730824869078420598912522096423638514164410463809303313237156464636763864533996130139715191375748447237525470738386959155924272748497819012903651355094226856778606558585228676185920722174145344722420848579194278157039948161796217847047605812542979295113110629619919702490305253357227251761501372199889606664921326131197307233265475950955762633562157472544888124895004096267098716641018624184370484437641567006807283272520960945613118476397047966875982218458291368583484942339031282458321194732189531717375348292034395087179868847862108253838023442360232860059297813006234999488858164106513335583791675583510978141040696893546108456246658523677350711369906621096816910045156509330658005453524829229671321851131761277780452193697528751533145343363334615427209543276242442335867307881837657072726217462099846866696609900595308841826342373605036210144648944463192562529472518835048977474461752357966892137043808916774293720832243784262398427479500728042213899510262392113244413342145518839640198441998668374015683203087283178719564686931162478186544188239033345641547641824256419996287987734886941574329069433251152075070137135271635647392836656600313693239593786574155278816057247839448281434961997872861482843339083183764541054020455679084834799758081708430726322394159433593099324995536605606370117572904675997267243701391799454949583129420248742864889223901675589601745098984324926595147656737819756679439179809433151053495476597468736656854289920704901323631125953297171435283447340667232617270271391733468244607554553836123992236587670655452968040845082422685477141011255034052334569914057177379194440653391735910236867417488514008706042547558423657283608479489235651425439312927425641764701072324631445905523155589535559015534741321783823992009235540933206014994263234565963284360196791643771978929096095004377354971780256152114431639649012015370851201074013909406745688651204540801244862444061136003297019727611156544443944030180009523510297914893637708881977227645382687336893434007196219850032488553308092434645462826312440212560804902376006937897943213865961542337630063185352339945466402227075402778699843211014212427570856925066498599779685628309163141511826276662717521852902179440035103497501827732973417752581638274862732609899908436797884291886114507632857697432676057030706965185209796345851555833783165219675664936458969892575445354403269242526228180252150674794383746406080045581187924685514276343139303312874264188490084941419269852600896821942252946563016329260091959317421284634962349492741374323004881221521247945367284571116982712669173666446629125193493300204396957824586606047794051440747020344303860501738416701164529999375551773726381752066313122567585867730541167634356024792282492016029364957172003270714966233910208525223843214742901387907334604363075210542098741327321162551605493022616515183257244861696052670126392879334053132734876354500800731781584098220846927294771651003022146733230031983431705410548791263558435118141666491966316706590219978537846456277902734650409346404974696066000941747556501118686155046518849806939142068579883337054907853412392952064848109938890654853486170396369057544830033863356139298824922280363709067602287901894670934115329870463345380428996887818132592141772328821514732915037160691385610079030654372145724286586579997386823130689465983233130916242090039682559849078068615030223341987719535527147686906962255096488809685428418066505976008390311139445433560239202473488416426605793905725314835889750116664737694859736531013620307013204956971815011015134793717545276384046282127776847036032376001133801201708612731163157763474700938246302821313067638830831149958259724904788937006666634869286369176095816305883138642413657934762040307786314169838278857083302331512319100878672175044382438514909219149600473732429856674036871716472195331613890891000684582655987521776146425748449141721352335892890676319296793577222782226965927596557926817636336210687972878144383760088779570409874904885929036435043478179687708886708549472136738536090638181985547965642397943542323279674871156971413810562670910413915531295018069729795078524967680556603197179156829425398387926229060167169276272451227272984049438225304283238156890027301560341654830414721128014635415039797141012488639202490691716601047486849058578940762280477446646981027199731921142377574398170840988933622070641668612693728423301865320727134010910659105703614686727592277418352759709817199839740826559112957242778092528201244267744436385599797252387724980696505278268043182797540315395325789328825071209019269880077515372018324768788780102791682521547143314497906200605007383832938052394290387924748554784581092514059202269851590595512479256095329604418222875258224443760548032519516319285445767829603299304843910922276277613335536702921358737073563783954654021769522149969951509911706999810180581621530799667782123776405822540546367334175498592445075883138109425979324036807707050694420752250379417311324047369963151783392349360780777366293565212416598694908823854287126271792084495739116807132056321842320592849104914711054538590507150177374762446272119207133088530866820781212996362842272325015399532897887595114401403985809431420864483061387263326896214239668067271175459622722926244621788425004617912454717466821875577951707531297479680046376248022220606834371372806609610698818886409684249411032901968258986155318336687247978583100874863569286599983138320459915500808989981118438245287956958197976091801230661819809917759847354883307763527908300190136124190111146133469052129174117975427991275643661630740948850744360918467289868010947782195162314788574180407051029653582957784720781738087285817589897755646787570090173458585422939911324020892053593407762223576301215104675109550757442829954186932016219090564735540628825030494273214335146152585216785825697993323028275463775438496060563506834183152284217013755233282337823372787314044402817555340934003790965127275484954059682180960810593014207373285522696537946928879059274222489089280969547405488220272352524888720818627627310875444760666237408744903617061954555913072266709038331158676781907605721056206673006912620090648026390048577466730759929572047405270103237784020662824605574261527494401666689732440775112058959051533148605918620023859692353625234952933512131436496150929322299160374711161130692835143309609226505301280296651002282023126197579795626909139911689738815332445596905007553916735086950450756865040581838960520866983557402275071206414530243141302152743544640960458003546033901510788022138089927467345516840229944537967038980254309305700961981777069989478667363973431538093139975885432042821784165519892012375949999565333490713263690560412770937502241266003932346228932007533768337636802259481111800525169092797114492621136356888991773759554094005083004502308616052804552037239190209249331301412998092703605746890388966312863227824289093154120572997583476502860650920508877052425895828213416590245484058145638802063398120974608850145187062299614383989674705558212750702315385445284509263594524490417791744378284485279253013349540368073090041277779683782560333452361053447476498067253648507603201878784595944603119451230293819761000183065743544522601098092685549607643470081822405840286524175164989648684127885515187421152714453175723652061244175771951898663358123739633034112810280195245278775868250654056465032088436385889656210235116605182774094087637732275488435752215982930961624488830256667214090888896098716930900779644896586903362312405634276960616907582972978338982072626777342862352238726492003821038096476587396842862116631597728106946719057353151544699401154485637675943406445693591071653468902980090867756108551676062139481227652845282918532009961860748303363750464134676471503657504797078153123159137687440569649486794158066455516110318824032831850300885849363527397895374471861535373679584703334113690977708600208034854571927532197249422754455522427750689913704938804012414077033897900694580769805598073118173318380260022580601650686541262092209600996214353352574647896129524454299584347739145409162703914002044941471629922211224405653371732488057854869911394087538693124343858598202431759906064881152059871580785393622635986903957618274842543924457231020068984229115346969666399583460192652361561223820352172471115101004830119116224607944461391033324632482773959731652276642586930663771324579388568736294898740328330767076913748566648064892366364874217243629163804833549054764994378071442750752821292319795641903872246411203574848263927748201431778254934366403813601566019801639019762766827948589014012457239326724247020914814893949786622711549160624182558850580116567420920655348536710928076857526156422835472245215184914650023933019989632763766025992860414856237143380944627837894881678828399373879924349130688590301001940823672957457093971484124271200373009544345853218791728428208169233247296750905861402771544313073212554122041346747389960561092569434572335260144189897954223118816124822520083872747024073386935372917823341570021757902207528106892005749298367884899695289053604900330958524292008799319662206799655461941798070929276285031012986103102318850239383304315801653865212122608724450841060305955238087968919439477352613520162703495188908318516822575884577110704784308267547559831987295137515029509739139136113889792867365087794308242516132986182390298569051204235731329382948906000949739898681870228428313887771012397561417702403421045318066451995337333834008936637724155199837970778527906248126213116145378853340643890734198903301170849312073305678121991554854908409496610019241832532859128525683771804800061679637811889121338652670629084657582921415928389829735491039171047590516920674092687176045857875516657527292037657733784561667662401671088994595838179486341498619912058208179758006075836112983887304403353058372471058088221697610836899083912988962779718282725229890841843642106203262581634063282777840467978444930075160563603134895266892995705425207524949210996400826795977428674407320707975889800053350118694586730534198650605319270612440350127429936043720677984438739868752927015557629687872754162775863180967831452186891327184059157157766789112242433394707995228976454296200807017060881924698663368215761836633101480209703603041757202565411482014102819107667853961991924072665564271865751350442187779354949319540354240547384608328431417788015167552120879645627994416573196650376205946159678443917441090209057021762280754641345009300382468700855672573391043668776647005780435510703424358240780731229626327485190842496730466021489104097087457893265219619235769890262844471040677725011756917091604474837919266457251073605358049726107695822259602423431973717831676793893535959822817495395776940655025411792123645932288722689718847805981883175981971480694699359787453116803515400905561511298143120682253110991375547756938859113525925362401575707786566147626293946525804114328473248932201938573487639077285716485239106329039033459072874098070416494627932152283181666098582551304189926552272024186562953341270843433433668723515334115742979249562258416311316562950661570005253312962797800890216563582731575579848423158398065568726462282897048098277489055039401284090290911150809748816012590384901985602792029711165159281085068843954603948573389070741064006488283537923467596674254082282007320064566587648535856687618927691879465864733147403809399599209498840154115888814649436723437884740688646981488089703968955533056196230990640073669450732268585478784415513742022341324765743267994436882810621765615565517837188782496096640014018312260526945879048265931030468791251875596362616076991941651266982729788378463570376064495664897285977404618358225391041226578758418680244427380445262911389723934505037539450630457413622550629764437165420593026346151547928308290482485428568359777645039647090940273321441843235208582407366866107944490207447328947265166142067359430918482059113393831079076564039676183857537435655001689089874660124837346890736298795839204498872544945685584478960168915212117476302978525481461546778911469053284037524797725886455009895184152550008710586415276603149719185821189170479894390200381615965770891977668012615256013183806412359820317147899117710714286289408630066610468292722715545803612359394561286610524838098502396419463896059072497106982855160931801624760689734408658330427555890656278259173771777213809113336484044447435237259287046946900605538071261999722706149198655253350919659525958432842721335245039729257981864261631774713839054104607801676588633442351318022428680962584296667098301565679756475137484917463800087846675622791025413126818026415653378864324036139297232458028793611065544855163710301207930935294755866337097574951277965231129557376079550914355645580718880490138530822477313265113403284649845309382749800489126569439871271866983455771467853311576411796793089615380482752613088106623185625434315923658595053934014977127621306479642967442334745885729298089369244134942675443481924073703929140904183454862451378440119587095010213373511824753768065111879459664196457547027516008618219607040244225549245646022995822435241013628054806550093771733744000240527962407148409218287547918609876685976146735247526602426522771671104508289236856499342656662190343546174537090435629145634035014641377869392822513856924213353873537461199115089245398539952255427337509895404523469397684701163184801071663421387250015463181783615899274668523317891520108388524289337151572595435383397400063836836377213420983130997338952629680153908112287178168762455421394150641349170644957651999587278927865300869864380803166294967456971624012345287332067772002133932258474302552116584173691323139890116942309458705482684011258322241943308812809518015115870363478629423840217288077320555741774321867261477539707106567311880760447502151387006400868714830691953484981205560999110730673274516787975100167312478914860948463836962288946560924083205167177879307999629007215396145678536635658395692587978751977260589610057302619984880636224198779146251760533143102054306512853616224965601323653169764093088430368484855849347803656153416509534993537727064063744335302163472676313642317138120923703322346110217120499116396944480880543289151732799856277500190693863739191109091462541321064738518985472675191498026083980048185897707289742547309905080515725298892721148310163886299225585125380961576048394576993884832618496237883393084325535941223684207982636127071652496287926071728800928746113591882354471358251524804888445413750866243404295020342632253266795209476103100262427376873742107814368085946747934146514543554760312351231031457082288960795714951508260711978746076223084170452918573026926937588968133762143595875183682370174966054775473753902983057057807283700435920362491772408500694193351502827272389875720797267042946457659282261180001501219651370829857729361561051072797435756832518395488111162718952473133135003755602215798236527628065325677288381037140570745325658449435381641141869960809625900918299977637106777355345489400592335295726522817047669962563387505443233247096520178669694624635249646765792959792091768082545023350582808728510400651468312802002906583808697391301926163098686622339379700215741679289380693185106909145083213975388477632796554574965801526972559936052532208784757419451513166724923815297991532615651404070594784457224878708893140936125914968660363396334281230905636386837063737927041587777524674845686248497080977342153131015158906821599504803993817746176708752523154746112202292963590793763679905670656343737467834093659033718591769788166388215918830212723124289600687583485183883225519546687961493499854866831083431936758015457957680405549933020076660246597878231904120091487995172716325322224622727538268724908263543075955455796110622445846315234735864991026918219091780836429645042649140651615330549095287419719800987605758738584301278135632020821844877696106702455236253926139960118532296772215984508006484203459797677886986946851615806258926418429522704508123637442536197201073501739149859298342109606919618420721128750296611004882262301893732287461753829277107081667367091769216417123464719665546126929351645350176364541061070779141037069881194222245505398587535034287572757974422359555793372500371283588479033800722551861712627126617175612474492066307050233129847686761574620687610048883216470905113257411708664147486193679897558716332999629811481392227977374538265373493104140734574574771420323226338392405904853151982598206453253246782666438957249957937108166178897305595169649297611377142837504957963421312580760660474105789383256929717624569156528180337511171106886081696541731444791256587780027401520061315263950512229982470721286366784851702203102177952862038844608674534932028814470441469032476617522778435906161546291937934400642556576948152561173180768238261458580091439254953297743861708352439736035344126677475171683361386893873973457871697849476232591438716065113579817599348302961444745654887540880790868763390857837233752572775511608743705842104036606076094786794798772415700753380242603835921777999760920444567647465091933558359853317364558680891704545485633657543011174844077255642670447999471042969957114787974505219409930452462378258250312949338431230911441287939540925915520333297193897589425713621159656252064871355174597326553019925000760770298424193919421948735674992038449880164391386432193587556019512026464799618862504911983797315391047711534310905550605629484775008316153571900548190976906130147217464576347713817163767864186488671864800573880626328664113522609690125775223656397386853094709882109576060699393123929593732864390860678038253927469822103645258696329851918049251413600225305453809029422804581773541707113818069832512783483747903288653740513364000055165767072151918921917091206794134252600104352695236747471644399352361375355664438110008865637139201018444712106435130975885513377968159918125963142036950121076122739114644729605907954238590257168975100352397982281019486701366522357795897748806576230885836215163861514566140731470276347244209334965511605798622299112920927523138772113010828323881383162196058954241221562172665150800345873563688262870293495105940925862631033774454036821141397496140047846801978890742989286234375032296596079022925207969833657923861532837847484376307803643638998000466382939052156247654065484222974584160281109779281852366946073387755376293561498314725552885523245603666583346081383275362797313636313706127582757893054248190902060978166752921393395735363407237945347773912291954871761558489167214466873652695176981271493553500932328220394730378978897176345031528191523532512320037394315677592754138812117264885635733844971530696099411419452627019848835931342017113374374872584631822867588553209715800638152940558259378938423703265943948368146246749269467284596865228170164070447118885738646637374898881815556967496897970475121784443466519459181402681760574020588456053002864531737724940825704996821898296251517013779003056037864452382630788707843321037862601733948397136531102788485648077652357860189792031513441753759309478070151458550455788125703905323081259571591046213464942614943823441339339840511801992188714102830327523075708857206161703971993932219980027858790761226070763741699672323120180963684686173962294716408931309490243978195253886606795826747089132408174167185882943116590410285721218365445898598850417205839068929719950430436038896723824725563148902884750846378360383086434728844797655743505801464927516410394279051685344653592072747472695026012223554332299053344179389352614753600694144631509403417231848042562631160517196163778865327151873041616191037814372195385115205896065019449267998793053200877582133558632033925754883669191564178208937770724484866539504755235715360595027917115859153887901421699568140947213294878155549882579768849833789423320069863880225851980397624044261276138729113352676447258075764442940637606763743710842986881002085925558064641238307694161396726816005544608580754790044439884491311820469741945818610750772090490148610231302987175681586662748467477791325479200437116418732048330802739283831262247255901854974950980624924995523740430551889657640388160645184100162363978815552095932427688552308773989969730219890249873518422449360780075253727708455621734315983462139249019801471422189347571027831574029096820153457130371999174294158690247283500181695372490573902507897944295945910711893089977542798367458216337864585237142116740174460461190996713840342685870264839450061199113689576534057529253786129277093041895399821198754338460535522649646300907854459346148994411125084806791741412065703391602175743862931079127408427320565443307559966581505096672974014794536348919629113628432908480751456266866881124149225259189307744045086639109972863133851220234598738418302111886950524660973072235899896829556631878620630827010566114156989481378278268283801457073784434453596973131518497832382650129054792297290115331204168890135120668757544175158528055382954590492369306087792532353651032188171529789510347470812647407804906674506577733267746651461824650966262293242923965460428992020068852006612114706112436374703865740147810057743454423916382284924167719213299445539133852553559642043459218790779882906331732489890445516501952602552045565516343445417134760737136235300697739536118170617543207450016420462779855999791938382964996092625466458964524708193592864056837907721863115413093888394408356887673064353400414145286705068259007222711371681925990572486542846624562605978666548590819597413894283980734225663522755551114774607573239477505146346055332240241730549897781932492549720464180811579928728326926626626914403260685548829035686816523736542386692927442563459897882072512291137126622684023676783813977559186621896943684233906903899319999200714983912533941980510802154678998234782775534110494581301377111267466849185628608619139878025978070152049853334268224876776821765781024261062272774759840553221477707133021950111496668502979682685620325186539370621224774635316346891362172661213613916876923045101215842237987274391552868766109800574892218406082222688108635274511731921963172583444502031791349829340237036190033566326156835940475165247482085784782572645778105741007588375627645166567775644594389739412919695222943548756540422272653413064199304218887568602799306199652810823635529405893877745628479090692772386247371818637331367333473409256360006740512410903273374485018690867897626721128234933619254055162792362025084818123228626702295093067889905309373884823784483575623532574369050591716615022023292806182450486775331728039259903020453199865556133248790414036915954446140498681393598531865661064443527292811481475812769560530645458739981205350398179397120248188373064669314998020550404354966206331646366217702086381947906408008230558207110323093926435235701042073445363827316571094250789422814543620042124420147600861408197105871659266410789182058987758834278400344474666013580379907057480469582874483921946907024268216337919549713567190970818584139308833025369572269222886079237977180514137108374751430463853313045990133284750582270964823256907035812061298511551562900337148459075857878568200914168270836537569418811261620183622641555657146319862749418604272348884019581596951521901435016436074866480631383577123791024181011414163805639432841627853356361407761979406239255905061438435463079571126282380386516640512888251344282926490868904457675328621511927047269822636850779990268150638009256373009469410833956788955803475372438788952990690037205163226149006251885494551884761615522635420423046643470834374972444404686117664093145264165167010502407744661931126462712272490289343397999671381116870611618707505395616804590705687071321704063687013804680278750455403539064133864483697538145260052748424385385159959187099163790169347200515632576074339416760908449728684188371838251853909162012008389234692738211197553312603969630315845083278432096154214808914688681369886013240473529316936571852139254935621816640960586011427306658641012976373972439772533652645285107811103599578454455708219817891243223463866094180129968795150803142005572820782943669619706773268612669946705460217538176538669977572179628727232172116509135592321535884148699829930514718908197532002374798363328724345065425303041769390953598656485000424087408120957408935184936203868119252964760395624688356008714883269184263340911580257658236411649410112047841029023855810757075102952341329562274045538554125589766476015899398481202820043825044063291030405636049745900507931520408320251813358764309366836628712256215660173558740526919006263500453430877774302296626388756287021556524496275217296145927544398065846823826429222321656251809868213239777022626494457581673601699543222786927482402723645825552038910230337516319380758091891901533052834054448134096066072799162401575875596621590554155091125221812499962638258412302691607796251371410033681282787744118496726741772572339987433707555278389249592177508858102675293261078639105391250477310353374429026277539434040082676817993366479777336887826315594782919987882888511874850857811666890554713337607496698676115379041535539419324387805492854330437932200964673044443482890687608855887039889650389592454446959355004511706913542323083298032170876379147941885651843486674816207892833832984539102428799347067644940570185921382468327954254227604105285424365788593293686879798049528138414187951772120917277926673160725127642129133240068998116190509465308541432215263262839435991089412840636630801100136385534739021295190008721914292310237532576634488063210645815639379184267433407421889019035432967808909805773347355421512239367242782022227208803778544942484629495572367419489773513334510907336584775278884157225030951108411385795854094475483348990553015781545491999012234879313353278310649984449677769691164372951556668239871125747852723086883091479472006153016219738026625947532933569604321189395558487091635709022935840051543782185259785254215295317203626494805792995611917981679486570926783820994828820105147476714126800471123027269314203188675666829920805096744722492558054024057654160541195288459283402100104008423810842455239848308878756448181152671663545365027254811164217168023901961425187953405880227544498674653601241065946620692806016932142224145529286573891503091364618319935083361207890116903996570953879942335498119194049882635600232926036957261505329244134607167443417833163507714186065660971548933411463486093062378205210472332410667870966285297679413910821163959253865250945510086758050813109480992886396108096652437828939548692363633980716797189003697184978184202721875940238765325045070966970057292834453639619975726594074999088291595384462332442058274434999970225467784298119089976493697039358739844630803618823533881825378821294511769646141407581090560616821066112878449927459886798947947776591603294276375357130807303597998064570828898444979987253668751251983794110290295503621048711545660868404095776297799693207711742196982024213913893335765347231998976730555429497009977956203960166127869921051848080080194764908741869343687364227871618200125684562098018074962949880564464284255647504306930880773576380736158985402357668249876860966685594519789982100383101980771293455394811148479368747656632055724025219649291952989245747202529898671541385831490165613071914606345189487917659821080196609084903801056703957479663740940081958404494365434887410199961193927745346151609452909471200573717035864382447033825750125312643559539056208033013676052148748962880581735329479188668621250341638680305633656423097375982500162816032876299320289289191363761846072252858422979092310467046733580565374246796330897018855383440324834536238228122653472892588466743397260114988245282289933734262063710416016688458194181126062184263719715467127876337380316632703783485125913500333332090373909721843375600504765319511834947706626075131572326583143070652862328512246166234298822799459338579486719179945055740280004868449785293729722187219066204953287302028021205118639288572481428240960228814794509213133631260785078396986554912547358360048220933300234751450092949730634125452224630652402263604990037821266698076245961335895500912687450923184665377043684859459735606506424771077876017703844336455185327308310860727497159229921782783780630401530613135568913208205402398236828176221893594556704384160896340462764585243371596227810187598549612447163619727174409289749294341650236655171382464888852631935060730270581485841313825444202202575309992852029021762688970133944309712925217997288287920312716113641690205749576912330448939554950508166543017019194711241239026651731057990522260212094494514992001983949911103766180612942381270699497816485311630781604139920349970420828342258649550180597157201627546176177196473676295453948847659974408429284879880677549569548300949498121956580313382338832471633422822005122499662150333035617667631767999402064243284585737206055747352563563600348678795925668227051090183399679056062440195444118860057342852934635374811704160978766968144750846707295658290184128767401542577411292412645546658471546330424983830540872221089974305496295525892246103141910615277180123586013031037762011629641602351909927002218139519260450423108865594478881858854765879587353594837348153329825156180065177570486703265038672109996520617909188081224901108568534404127512177004759496579972515039900148954246258899799529262964140087659010528612910047937180443224911508686180127750441517001586898802456217873442198629405053151281144211682701560825618652520819251355822102502887548646953034208975052082851412507816014500601784535138840860650112533489303370922863591560893291998243602574430164269110846336037323992107754122561522534922791301277123646965619032196746606410153358050186982518887520348400571875630377675346025766399994748120315121804500501520622124978615781806601997382850845700743202221141433474449799470684440034924402616145205430832736563960899381523975013025251816397641614302502445915526268768040135053432824144794233601217613101481906272739605772643483151027228681656290853783682244855667632795764222583179587017014958431976356784243784668125561396145976496234125066022290386403328383679601642922155786725120678258480428948342556027237600030997146081456738427974284617405119186921678748408279214253909312085827775866142862256443464955013030996930826247474793290948962685858250837352948154584504420157856838959301237632180066450544304939560270987189484791055797061676014309729549563684450674618286175981320949207034671768751944497799559054027755202157540675310567096633218956378387982532429899161756807252052838466737617857010779100313360459382663386382543349866621961726839047500458104221193291999676297767182097255080542402048383809036301704269984746486914220614937746650000714742449886111040666809005160112752434030527220360258775619143477068047326982734954138261172170458377291479133643338370787389362382632134997433628968580086765022879934456379476555198764547821530872136997822190939645071079315789329478949284189142402487286072062586539726433327562976667962684368804836578884769876495141744170395796983872349716119265431928899301151611460540959147701326348009665441364285241087979846610938860303984074415948324538952676551407128405620828298052793244401928440612930586035068896142394239034842311957157759672500713501860066868462612227635550377234692339055341141143481873730410661323738455260370076456759721940216796493565387412718779713382746859044113604427072172686719992453218352737011271550123067243032605257082657565706959918636233686307911311849770955803430782741427218336810615751141916718319231074960799872679430798821356902246224143593862183049219996201009272552092977989697887797012523576296885111958302982641118097508742529430647988273735326005001652034746534295777909003701990170305752931430914672200129057078336225316884067613858069048886369858058253907794433462572356334364488001223879024907324853003744543237780512902530185128741372337476951285138053933623273491809289691020046550275210001148019810926155502839271350379947538244739301623788066660079017673633817451261084540063939544707478277936145994532454474344870946859582636578125037717312091124440740698921964806054702264771925058907504322298715718054085046386389007077334526068487983132097925435968384873983716001014862729222141894045590038585744300908271494812899956681999808428624368666971136194350529252834290059726162517060866736711575144758189202801663002202778104926413805388552577360158969103520027356174025520496015690478992248325504110914290065681132945956473912247258291225624084200111097082739090429485858033391085925991549903803669034446741218076350827385550592426820415345499825639972785596989814132543853429208933096010140833453288548782313241575306767570846737988005106214904181461794354398781054635259955176088305238380103166215237084735718120940834150185064781196967888507583829649631475712776912205752676302119210533227580123086321475467767289696852836033920323485227281313487851140661671313929669849221313730668229265691257285997655901616922811982133611106982013018115049809402908399375295547453786456191783103335188341044686353477541351553769191130476065841431692677008909189178673506942072019921552833954105248420294300239027594097163713467883859243663375508848852729091796811512541171398632891146557157669507029706957842331683315850355686185658466491413993084947522189378402232617136974314008942876331073354969877922937648399851857863228981580971204428155034917105112377097785086317352310244580475233436029793221971817296896341552741019331426054271622396303859763633002370670406006144690210419354480746265422236885300222042326521455277067164401217243021424566743308676109896744770706461162385458400784869472854684299919538440269216676084645168904686737789278546040703047770079434307754347668925242691790074529031775436416063999324614004074428608146563392650253668882244392123768321541189463562715758903982354461832505995677547038633540987922678228764059542765928863408487773602967610445568003897221243175322690942886507573553499522492285480819412741227975419858019501493054668078752217695767406055276538842611349918492504754769931379688499042418601272342689365966314946550173923669016918656891969201468457505201832286045403253737882607524515498426438420940141330312525655007068670148000223336613416285699822119331133876493724455801573758595017159650601744122383037328952088542988539010932973371486920777090086001670170244647551256469855463092217907035988526641059878019824708378932251783918821663064347717325293894547930579079266420056541014788688238313862270937471267081310232240821267121612143435879205515357900834174386684028158110285856774041940281034222264019240390803966014770614277078947067327360911879050581269143662577994387673106183304861651216882996832516911659925104319734494100679357230710374982675000351039268140701757613344145110802629910579336021778339829732338339764155336795354813977347777666159468861621204578494006743794059092848714302874700445416433778357336631224391588911106113739433988270429999028071581013016337300785898209359378059341938374564289992145874520481830806844338115289449927864723551027060094284771569167488106530986254252124467174634059352746939596664975902988313155114137514469724135446293809397437071311629618470102321131334521053247251252802112698096979092145560404347750316144812796427983619086729365237929068852174213707729781419561377002035632105117752590415925305943451622323530293399565482882840302810137272270642156683918366725438768633395141092317145053037986316100589430532735883799535584317253768471832931318132969858425430150071580527877842704957954316337945954595986095616860008942142822340079473439942572547431399907528882621967184736979913454004894930640921598502288845810634488375281296470964208984938236716147165769864168520849901680664989205016669962665181196562149997369583092044954890112202948388211210832000092401504441925317765319968639505107101281025713899765132553959269573747297260574826775291250492985523307528316788450298458982204787178606977805770673378072101124808242891314693622282069411313427821752210884459071161847130245069980096157496184445894871117208864866932633647439768038349788477458628510367974885483883338831079474094195423649940698393198591038308504339493558568670770324144383028071822041787004886957245880107606181120858904777935857011201108152388374363311924310129727443087085870272142910325421248705425473926866549071094241792911804525116505549764504598190856337212007743491849947186435042450618924649771897789673405437433072122658786905082863501573356392151879319443432142244357608038308195617969898886434397660619778525161155376932966678416883339234874745877093408103604878209718361240673542250154985045063982565027986057359343700298454694563038083360687300761079039176652868231098789036199731704640663211724817226666103753424103839812822347338338280600353194945413316136886192937071082868175252339119093615732351373585070640222653132578563406957365483829209536501785734445253456087074028124557718941495441284073790939029874141322995557560128273595466162921648643990408878481464242225438914359207233883453312828643819295403253382388198461793557877617332554997896607523838671500407309039511103918221980944673550917872935998669860486449949423179566451780806996042111695991643708441663343239539131464363873055575964068630992470261910248523314544238996398782307574937563213752909896034461493804570545398530382749425918211428405921503546746610735685176333438152847657950267884201428660592188130521792384875951432513738768514650846254411074825673688302357043790421657325962639187141803977532511852735103630613558178406498855625888492787026157789577164372884814381250494823104632342159473656243120451415520456425903187439561400390404513979646120275442490117730826705434292219571150535770672316752931093129720942876325886252708496485300121735278394551666963341241774842858062804657607756865480852905449464779409190662644668612645886710643026964061242964395832345353509096462221749692570644888010022516298783489812783969009082347491026593727911903681489436246922637108379641658566010779032837349787075526023981505738435059332241964507139435515302178032742865014861335787815089699424167171744499929373176193999387824686289448300700634474951125192203848080490321887322938852916803068683772584708277775347051862194181095825095323459003174385777568648796740061063029751724843031602379504369398360336419302033479897290083286627264636981295028963448952607335351121507565994881472134694222675518605078744775852443144795215474048701525127759008426069514773828877210262915520984913352278127299835723435755984592949320601754180466616177129518244044685229331379817437535646831128921971702964160493358381293640874976562748137876135322735227449240511312634519981943086932000026311016795943028702704981625019390958056229467607139958881930570374278336630449733679358472086905563326507620104154767616505685984507820982300846683449139986956825134571197000197611032435673242005916765165611924894835912515276777731594235823200337039337099972370968479433580470724508326861931140469895099716286685496031587793457423286153715426660617730674525932643345676210996258020030030609648841618179083195705062115213626451682370601303597741591105026892562831035003666121360348994935352655348169806575920726129717949449925132996843283079299878678658182679972114846859217951590410607056710834323706106971351423991840631885497332682109734959446115056807679914794568067101475074130812365290706256310714005035695254683907549522464244506749247071784050680430831250019039074511104883101604110724069072004348050079676950113204716893436741754922950205618695818504127957475152934378129175608777634150680084792256221024104168621397845684652641747412709168333879446302844500569871022662723056528743303114555773743797561106137239012193593723784828017104389369426620072154058856694285466358906657071713151865672856950904682114533455772900235304217631800970893103808243523935616947228727576544342728163638624796464641484040286907046302243057027764382101449835161599896362736782790961746517777271061974878419644197523380985926712906333156491968113914709737734276846388229439605582699368692102597390353555765083435115393621788616229307830358617349844978950496193531522859903293305879044716815103501520531710441424314305296941692193166260844360015242734908088638587571338264962216288363052179006640893363691721565168504866287493569918311001347050975352378745236237953675372900161238495892213047233050067236350241781496832049882313467750994809922164983205373105338775630106797072200955988479026822357020554475732171915988669020267917695563324140444534269170996045360374132080039539571951441292072846061771837718732063281471143616803729643379751135129759549655369958263850677883023754289266833588045443672054487972523988451834642472766877590742463574953151306514140773397505711355458875495324361049353639910357568705119733312710424513648945919953945099678281183767024329339800335711753128471044667224674715693513303274836703601410335222815269158437620855060402179289144245576834245490605173637370980912419554603649407461786412927333278403834699451890093103435823594580881191578792526930130619080433778788414183693393601592053593305003797522108671984306629003400990874507064247197942030337959275076364821375332749839897344327609768223161271754821490164020245767342986675063977672788652016227510276154691530333347647078577418999718051118484210178911163069972898538088124582753027743861096608935768813290547604576069683615311460518870479460754671971936354079382014568857910321702603898275258986788300213487961644334647357182121869890084626865483305450088708259425344135598262586973113474306067428793189580502660539137825324976156104092760865772863539733256171039040073914151201631286777177148217014347048697341491035026455719761904670179281486139041125344533863899652154016706627249740805547235413734430199438571923813792181130943741134762771196363004859339195776368650585263152340272107704417697181685013471350650260826650221246686998843748110305665760502117245221964750109540565975741549250712866188694749851441951464791767025750490267718052200185339870624964300341969384800985241110748138249623823152001334830789455635354928803465626668114856369666640335232055603917972381837135810674753409959054426118402688520970949749291012602432592601938707579949845797077619474939966948939804488023625634859167520937997618467923026661879440215395920658111350530776578829367464992452190831291174493917036992374181019356464892426130126041934429896142165757021688088460125093655275925104270291710664271190133863676995423147171096399241021324204504125266971419275517190853250491119506356716261163927292788103198071030915845568118097845426640497569334750243784998235899055609953815896864677791353481404878063964850711152001304643615082975848879490313030201689110118239462340384936695105254402038274196559249148312226979400798205236304089173135385131103202271207905760428932112562125321365927360653037501753700869896200176654917620162968163486264004679728342299846983012272181922555602546640388610121405180161023457470931508655684859530038560332528232819279958423170715115456016433872905126305041478475821027035116839449031447060138934200450418768044313457311794387900159755196787509553165888145279880591904422051723804541534640377938827648929439838900883378705579638039818855892051584852242168215200793336273027847712269576126769590986963050578499305502350185712506902738056023509150565852422130271463104457360361105302392903353440655593304728004767057209323385743563118910850229611958272373068972652615253924286314706431059955012456034405462903288088476015219174005530353976091064579729847476095467688492538018479785926140785375300599712767595773446542399898155396824987513363320775730577263792670804080329598911333367946696826248900302040665342861617327443501968580322189857390850011530050352197960142133491102033924161813095691988532346755522046947511440544501459628946938198696396437469446755269987894442211379080021852548178673181384642491479977183991125031107579907597998156723681115517388654261450053303459048574959817679214745985382407962748918758267359339620393218649123186187181926070312430710465358895314195303192021223076098798868726597136775419974510761605021752685586747290271099501216635021447092513689454574941053010031732870977128217990763809021527803911936335905485596352575437391574718212047816207967371037093109490098690465781274472006444894208117529287278833841514811652647445420906687914332460510048794277521474376769508146534284591837879498142802183321686190754513876145106915279591744653103338438498625424226735649184411085145585891792241032364939980249324355499545777445047388914419790957827394635961345762726258387515821172007976560843588277030049818707995013328651735734059414964747595655854466589131115425883857981026965912854004937040896325437903933701256599820223931898476903269584943187904652115493221084428270384205407635559776880693491925456439021494323770817350090715577629450380922535282336075569282128108477860218228062727313968803628784011389608372308016424793003601693785815686298234670447856645278373457615357416558457867493685529417494418919564097508846017214625822396552577001888015475009142462763711107074262057774809864651197021426961267349053322015822594303433011113916721856397638233276877404072318585092681641899775727271340138495541808758545047316818825765230621154899692030867779627512382790824425856083611415678259120253965886526169201817377724268765883386514696253457368107465803447241953571461082767351564205287786785101836016257069076821685531635999783318272388139678638502602968230601057600358615147450923202767736012670442800940048014338091190222289787936672932500596534413956255379387743973645418376428909841234824834001590270093181393422978694066194000843865723003668205048290939854460663982057266222705090839114061291115039897628344970000006207232575116461187144478167624365561750371212800791694615334242563647509103648516227756605409039007917482800882771542935770512767239385241376830848734701457145823918637280723163953116900247519455051477044586309398259067550685448108473748903060208909826107073265436730256723556151913256236461563918241975692721190632194970041006565686663611796057681799228640139977159536601956993933038876380186991437490979595552422900213339865558393387610450448474440556330658951527185068580900858962088232007840715572390871651689556112166520941296369305211579827704376001684292334497932579636317543236599004898208285738169977708436432124646795855526896303319459797848013961618494676148911399140375220646912763906548775957683865098652868062858700190656729493389095471468316653877277484262154966676918599886895086440805668386375994730300022432109430545228189409440621971812444076998026826810488166585004166593805409115023370247968857519523492619782341486026974920038438781574232865709408292846874052619041451331667781942770000339584093035994928664930071807913249370398384399911592078729729706312291304945163822260664989557441423700129771345140369350151089260498377695282706663409317228388645333775161929680216860932277514679810109180506422921223891685765204361641945071659928561936049493470282411806002432474044816252955152481618340104785858915630267278905586876317769861602710387744256968516233083432825860459834929101621384472723079904016313685899949852357172880278188826012448883710095504868805550785250987157258069590803720368561828312069913671726579510275637305600626682660521049623736459409035546978532396311422142245810131955249803108522756229458123897551093403168640225194256816915109154780046137940617784230083794829051503517766174817442589835142380614396507083742641946425895774535196153870988819252047746707007713902785606309820628206009333010547282912722896928155690215498041186259995524264076496051799652058501230152639197270535511361989047803421276555502481446934684492757509692632182913075505314685040956293526680018366999353752476227587470674800500513420950576885481347749792660539750914157292391943195975089382921034929364323324938995747506457648788030622749920237412337003559330765088255728496231547683001338387425153407455322720925629885498791687183136697928410762326978878307077536976354676317001605112505498313842178553733674526534017666714210867602558447073158515110247131331955976158073530854018054342742548253066859984804853133447592272978285187772299305181308598625357042306025224370674902132954178122844437451430881530288152861878030976557409791982842302132137437231372736687449273207025415111474831681558157879913466803247192419676193026378556014710593981052702783801334186710457194831241917497889772978659522063580869103107018076991053706595313761213965350123317159848520943178931109457270378833878805937550634959109939005483420371091188138574436832725657853147164451617325304886340766446570098606788773185618458348048150993057687512351801432335554907484402842332735908888568168759161051912608607289101324043493169937362330905052413495720957265668032030416343577914152866245777542250164871789565455851778670491357763304318919148495643805478319740361912518590426125964523682449640649394200256376713987436306325304064367347250146413470319126895394818743681174823090932559400135299087710627771321828976879646472324347138824249784227033451504517971997389368149732443351827708480740642750921742959540407770614515313791091456338296041490449638577285648751899326808410354748359785689096942248541193649415963610882319456417634514548533877072216937713427597792019439936402038189823140385285339718583537696750439604730459515668309953771669095320854439654162458722219663756372358096760255148768036336751899975620094262773150852398631391233016936169724697888853914699139445468411796464171566184866569769348289416918977338795468208144252611336902467788884326161706300149431620649512306370933986811076497553003660899637462859781918891876569344585517904140290071331942418814441626989390772453628398089964494503912187740887171815982945765684532646887939078972619582371607214485907166366161229218167006176118854674807037712521618114819461776293803075504954497722049179190630340703066955603353832562352266289158959870221838378864089433288222855829521678155863925672091665918062369677227740195066659519492727715711814160930271519060791923985228326999163535590130836628581264786446614952492044740263714852534951757760646515173950712086761889031832759042578094683965505448702771636282830456985683339322390616772344973954534796544863732904226389758481593833012356862433436988942305275530200877860882737031823771821972780464497278835578532374600628747206928044504417700395884475831167769391579768794074095372115163281626447486626385208412031043461854172573226005986925543953966176240973928067343186812261229570136073094186219912679742246690642188432802820316421971883262242832187257059544057550088921731413886948587827343940557955424177775389403335854293602208068256757089968367988683418615309020448269593778182916837609224267368055961640203508483470193165054755841612844575589312249595837543153598588275277001748805439864648686533366730407942369984103957114553219355875020664259257039862845367732389938438246513043054721045765938345827706028897326641474573129828230945952135663281312864367066327199496600515345979140077492554588694963369193382494163989761059761870583621105175346123661451578505215510214623154640924662161043393236600888423212611149320706898088045001472279852056201335809606254025968642413692492368455053404104955513638979278702432156070678468936036366548958417515739677732592777665480996672066383108871557488438387754081521020549129819967199859037467276643513616126976980942371958772481182436954949642822049278717254259396067764937440042561889025481981866065271968371562059549244549032570793273113720658420288427860046802735075106051297643942795484114727820975901218448880869266510358838036049465492150802119240191832803989571783142802516120973826330391190510165482789287117641738377996744936750720668057690570714335886978566615643282004692589950593363335485269790579708599398144667855987134834320944972011454113011495606100890493500150754130711770957682804044425113129077633967524233926726574029718598679437201335630439632420119484176051123524639021227138848597917572813587141041056988612559672609748421303796639695121851760870601879019686654834235435657485030237327153073835175363281831810500656281713089605656371725058672996651189734929512306564987339076453312408053326336609395354415819775537113015240741788184055902846493218244892597142155917228654211001909860630800872918343524112092217084024464325072809897687941798060704401219240831776404264576630409722310254953846050086209894893554827865631342310475309444256447995443294869887010978574560988925413073383816333151825227431115169207180428751834769664214121675907186444020214045214748382011998785574258277316066470685432638313896977257924908577585173914492464100576150418907872276874691631791589840665934827394730432739745172017837808567567000573633311135466709318477693327486603941203715115743869620434582132831840303259784399690346225749680969829520419279778130996741043385253944650570523083493011783252987291436762896301881980809951908976641782613558202137353805757020655469763975522535847602078438207857541832343912713938156320357038811579253092097504652410395525117517199904879605284828739395392291647174932152152926572742725535142555875151956129442078439119099000471511391752729887178928944539463694641451239558535032155963816343149101073591115774727145611219010128573633382938909317711094582188919442706727047416946726199700549992508129325184606932257757134125456821480938362146335650714205205061792000720502701903406016784463147215166964301516724527942978110013937672907345376796557836970680631029993237860662229229395911666991753912046792964952158914064310940796857123494087193079078729182059335227421969416208592274756953384173890265241395489989772802497877035099833343135493427298190286738930880840234621344523689274301500117359548926615472930372470458416116824389187496898994820065359932256293896660546988667628033796786856968509411639485058131169355699038427716342702419545857403515721839669550059589760539596996890285261856892127882314718354551127182758494615385582379546097052232354987351355000445561735857174898384647259562524025374103691856930362677676592759668514937926197009794086652880144693861260253507801972937641571407137847421996036964530920478123750632306051301421207448346932175892518419924797452165020706207074316652678582667408882100973574160739744805878600337140253022013074801381296528516107819880032586423671692935986046245862332681648696279394208626764716347219173537893281875028793871782773162560454750020384128377875092286314658088778024581368196225726530556013793987217575875754511975403052816966579740121902164868539037936839328454918664032563072696167403190095894592175762990000394306289573978589699282775743255876445831289892353730845396056865571114134777432896231896629432410873363017386473850131345531160757422031180444227105025096650826378063417259192115796650695615616281413929015362465594964007122206495783108756936364178603516139327694245097147973226033090595518310451370052885781414538901928793242911160758487864399767668320654802267759750200336685655353137952647520985062159043476512240378416017167617302061049193860895033215433213424879302722812541430027403207453620209180411522316866764828186325796581877119013353067354801199649247030636589303856652233545334025798390056938516120001615071181289676881780097754234915260712015654205277174271179313224352616909315610797162192561762395803657356313517206250559313886950290390606000199367117817255086852006574186881572559321062045470452166989924581639016630863224769384767380123718671260366395160695095702695686446197354284921588339284562756170222321962376666984578072631346491317455822776122539829207720458858451289475757385108685689782220467830526998983751511387765325851168217924874184383174695036944834803463926329188294797663473665934333034232991249543017388670905789048418720726746994470850044171414034510227812245278373944393105089289583210685920026021529355641641716025468930623430150367732012398301825876815277166298328008932550669541914004446447183811696894746474577433866417500884884347869130273975467829677930485163145300368038811752068132140841015338996380560530967347900376839427628552874967478873124383433907080119790650451915773499045216696465903251887104528228716043997776359493161650715985887817839777140307693457852443575014697707091304907194826556423521139656427464815573686645310975949908691952380706071256024639849241397295960894222288657433066406507090874871369768770639896734973486726713104940826700858828097600400924894304840139492028136591110542652105837185938136660511556130998393600077189746587504427897057542746806939099138876445090579173681223004472968230514057844952569993324996411554710672604487722627354667427035519348895051016429060986884294228176989339996556550052200377237278928406370533812720411162836534015685314971722378875702893440614297921832835658422002715840991281794068108228751152782859146160957892777103058387392954114850407471529916860057606246028299352689424493342276472136690440789798068810729784833749135747256420935981494769337380517446497486518688543317571274793800458893161812924887853886458327980122618128725742372467063888696021440988374465759093974880725635800532700620707068121685605119346050021906352012942888259132864003905747254250355611528551671022595025201694724423889159839407860431046085742673517482737473686895749760072908135137102290487474219826631585337341729385963082544116955423409510981843768919295062550063058288015092711835839699538347807964046500051591321432904154420292356014311056981308616392074561560051260157988587711022013164498005370812137877323182853363075179632182217212445645648355996327674556395630198011933781557441224668109193998400246563117867103456114822206306675623332613403840194979205395201766567702574292699925016229284769937528934444415215871112997361942135906770002116317765209356962350723091689795113227420927811469498929384284626476420978642781977988550584446741057744880820455483508368477994501600323456705223024163740957718942204946803841409147357741544028841041748547960709319620305923297213359965882355416182169093662992115909699816550298214885582159329142371155057965668447412784849513250862651988600460465017868508887997853508517469887746753167966115736332866895433836147196702447778019933309451342271557755173152600960879849088118344535703571402663620470774715076345425130091362445322053412470289836954421319985122208459600434993966596892309033427249306275445216496698424570262781120468302726640588593174089391026836384649390461678241774110843955507261557875820891610839229027237635211156740985565413106939077196340538441548435512656559556438724331380494135776127775039665609679444038125510240658180282742032288568302767628827214450805115326140314577759408396636884182566857901598362500128857113716725229042673009748977034878545599473313025752019505263616205354997456130993024594355492076489867076174455105087722294712104574035201628176438378095772050052849516366244342337546280736325330790082318675620388526015972875070332612636775539946440620676325118605226298530301651738852040359307788841830392877958118395454268679356003993142027017813359037684409243058279145195670401326127556681538173508897784933004765814658732896698743098016462789033128920090207221837702899383762537819353385457673477503102000640200707122179477571814973352924219805388270732849379556219979097696707125138101882417269021338215434612340084003644927942204049742912003199375260485488300434945437246019966038519452559341651692552311117750512257013787537540288969259226394088649163974004592735616228766745742404001033958472142603571241202589724894759274435864864049444685115607028554848501731511309306303840477526197207074655550613512121679558877233102616692093921659189365975180461987014022754225255476951350541505494065417746514715370015745943584985863312303717943088183967160202439211216934287957639439459894801240858934490681490073111303957040721810376001049297118885415575989719540900907648960068199130533558768288526685109936630571388671485732012809386266965689424735678374619381743252041294340653237991247985468325747804263222640259972580537589356643158146038985545725017193922309007364505889301684054647643319171923386976616821570892763509560275608790810292808563153800216057547227806879249474946228310073083748669180958288621837586227861968406107239703086415879609366700988240861024592307561134306033644224689518079563471947860853200152140815203085642337567874354948120490381850817668863401415684974210137907544897035950070083416039979895154463824996535427891613201167596036255899788994422287323544842537496609409626220782245757655000862847494246973071485463025207819053640160986526392811460128027464579601080407890754776734556390027330532980318241723898106131130796451874320091518434704409875683513721169996109735663536223093867227230124351147662174786945477706190311339684103036750665254859116466539931230225051384002283711906910955137293205278883625426876308335546872916642707374197319516578388312781703394966835229497185075519935860171345388046559945769787455273900545710439976396844707865414776002433641728881365115459902817070650740399766588144376268901915315447829328843320734496110314663445958400315064816484760223419682293383022464316794718421933035954281788361046035841458158290601861951197826263252257335847130032742103251385966596737767588826298206650387731784913258826376778961426727249228294472937888665382083713946355250329174358836530385313846793058312105796614725210619340562884066679203426753850546136311935008883805975273104750274828802691948067850083436422192476092039659299820958539155906735610889566108236388436641374192777017719871715610070155359304774223853831747919657230666075682899253786472316284734438613283493176164353300093616106195139546123923750752320878454492461971701397721664271788878058726815338025266712548275374048880456252291491846504406018073132205302989729849510929617547655127902746239586086716970028869548955909902886105038838285880991745088955071623300690125120086833193517477084284771502236402285372154433019116607665052402288406221409313003940583049805913182488260175277000272073012730941468585793810896848963732705068472855407951400251211665306764862081359013852525148791397512931280615196850551627358912430933886481383956821822740227924755899021105345527400903258032790110626703689848510750695205965090430248872007645013441102672971212116810578603244560346059188519089377558583711193279928572226289845089344710381267303991059451580738603771526988575503440458183775443048017797718629729494860248034338516526117067021251952898397452164944134156162692736049763429628258334357836641429894958921177857741883438979325078129265134873011179095143038422852207500868435878049988892498485275356975081847122948565127737615886554628613914787441439678111055802146850296534081269362564440543923218924976893350972805999068149071909545574091190271149604813936433074460143168144863137317161761499442551991590583356088593162490846728449673514786610663447220098638878843162498103314988459346686067457243393357567117244033053646684166854466159470023334974949269665038499177366203539690080328424284973171411403831312291686124814992085589327099076768912867859767638905604652971938497955978837475650836375072543327822880197846661289628698872090069501030783729792295639715450662224710691149618381395771200748937082854287468754151883575884027310012364707605482612487580301176208180992312005326001623306803944898134838516141682112836263559797262085407509012875751795110200138276613476225025292753511655584002753159057927876776217014386830893265096915110246575499926882604072263759902270228707571613095261541408360719094834584048858638370668162549135076778751462713482919227811655474359039798130558178945830199685355293258810543896043764967937328642092870228949341558369325326679497854198960774573946953272810712272592311376409171307145610695829257308950773878727906403991580535494207265693961552399260415502679722124877084234656429958910587312936775646443545218215134697618348275500504343453275750911328257723859153228173810524204329296180781914874850223905761254489086685605175139892062535410345238879050554213124550210708968709790816319074983523970848197114593273799470209689983039895379299839408771581689655867445709763342157972025586422097870606827714127079581886187224623141026847249885280586415585819266194425398205999462750350399070683573406231872631166429640067001769041769742047076255419412127241546124255927961719167611976157262699010166886305524696595635947933229935082518484593507889091189581715890011441172772015571902714182877504926020672844334595408103139751517557330818803214220044092581764135376731264315652996489889951925617639918399553963134349434111028214484819812617062776233250411792083457877218491522709087601884923703481272281152820336705175931122942192231318117962515031788930114803786317506218109128931792536009736030628164263318532793629022052713888731046693663874995521486784121179633211377267504529768838765461849200468549064922599432280122224667846796136915218967093669592167922087856939689688776285443386245421544656655613345539579426202760481248733776335238295824764378912184701560822267435587383832625410081435240733831221447251448611952574422456348206368653771158133197074635571692081509396412858170487030942995597144797731168160357582599910747138460072783948097373918852940234160644172932364738168272990413888720225947044147810341011586458243875832065375315650662520902646340599752874604649829866763594709053652798797750549170127643397643969496672512576376227606163331337774734979339391122180130120772275510912261273598692459962348626017465657866638338191609414015735038086000442068241208902021651653323307943865331568512015063750490521007031648338785798651363597300373672418279252984573563774085954597342800086881470097518734609143602796066694366277043148438550404937007955308244164778646674107305869477959681094442288128073943242984028509166021246194858367665373419190921400861095701332115409186042660457907094847797634089540772348284863278220340831954452820886318348228786959469207122789157601117391330403284032946869591260676009394194720177300371901442776352836829902411091268436843731145863475426025289621669282768295843621145623870797205902312101845325444745538029751855091578058056289729690036258257753575026052372073354639945102389922232700593295849555827673123226268517482405881864783598291326095104033067162987486799604213559140247908228047644873022766121959791239338908526870891134178347648571299960236612136839448704346692537532557502048045794434968421974681637887195298341476454450234828938893119295081499255507594672221654324029702050996343660222182759345389188695530376938239705258615811644115727658742806794647081620589412574615898438067621092077273436833394666718084462297745248095399201504607612759095255035268808695959113687605338810188799031337120431410015766819578681758207649017215947269864112042927117552401631229738355242233899662832205581230527680075534596071985652574105207665138938435077948336323697567200902099187385177372807976326350327955078792302266139000995473585928040877927554653818566063401849973470718636207679565584679954027269144683252088308543524477230831128795542533887090330661426813930276152332680579681233854146257892499191299703358184738254678420958988792199577070915018584570653151794789755734353608085127337026632645377582093106014292657916657907481465348928082234886548720371035781709732513321369740969755001954909208659131840884893567673226593047260873692896747512458620708062027697204291892804037507189042369826302981944843889924499018132933374600904076012996863091110750458034083050377605260601151563217742822683810981119806042670744204516812950879317118547555423852685012612721185821477386998684887691997106545308262363410099617625112760816393353159299714595161759975399862504455254008861545186870966841654023098875246406352020846204763790709502361237926443190078689939467169548232603957419792160582474010893788455673112550709568570543734312656387199831516233747982760767178902407419122674877620415958436164938120836864065736239236182402732549905842440756799328326391719677578329382177535510760640090951296229605343133941061500625436817068957239496585729706845183111981358221448186140533965699204250496753975849766472183614113786766488811256423154536693948971423708880038078644006877900951171147310577730698190133992375622654139841748252207794480340249027125446940709198150261238612638298146258849822814679016418281058129498497632669461635686396720868659817133167029680371643179464211789991536784330236397388262337925745533534883674882348054604334846009476494156891416925244834521047884730853335316475869908448868413390033859404697341255847588779776394035638524121642784472771503785528319368357800875443925596550610224104003510227161209877197029549394055469606485505963647167309405718599687237465508247434051156394781963902117702221330888002021745853725122267625308127457913018220057991859373308801902238443545917725285879294935538434664634711097196463067460594755413543563028890876882255936024040413337590006012918294516411437327743662298074784383829485642091571063381166704183016471941076833630239154689790986831516148319914229102045903076001170181795038388172960961496044627937648315423516354831576688974292285712630055547287429579681872637599805681482688528170768672188463437483721812256146119564474294699666294414492361770930751412514030501070063731847264269911738756293795816157521113690526890524025264913343327002391978724984896137094841365645777584119291441710099145488766706207780759096886705236101122458365974477984208831085871255994433685790808553052701794359674503980741077315556505469912320679985966136785134155473203944853163097097707165016294764552980166065034755381498675214023079979355175865054671475589566116597425145406005207346323760237820232039063820097950447365725099677637976450021206787359893004611390912633454901765158989046069178680127467214151011157333134777608788903514418230873349307591966850078543802220526754663245106997767259974759953514004141943917146627497147615203549077962960143991127775852070284169575361694768341393582193428197353584296993042251617119559630758881032094341631727092453067845769984462192105328279522546149709733559134485935873105331716215115225262123851753718987891896988135884794845825127803456458133669981479351676883710566042375115988213136882930510741763356439810878567824562719741819853643570528765270746962057399677986474803419081086424964193573170206552976156713510575709805636207686573302116322475160502757495212379827020019805857948594234811304820073615651934751428270007226711390693152773151416154846279685970417018248427672978165374176909051442723026752092679660821031947263225019237003713639572853478046086826700360737083583491269779488559378626683745399996608960573562988658932506741720462567493717697983645663172141823344822709485807892021740221756584545333725935694020809332337831629492183457633946306701411729947373421555738114972022311598707382798379134426481519216073852985762409609090042690809664074463948916281893753227832351679913658293819521350704384317787780445213026138402394919794025397912998363830815472998157442276350134054402984237643160424757549044569137445627714263370543695082522287058416098409659766361332503418064398885887437344243438991317651051841943644891536063314677933707604490889468347324453644596323789322816196853446145000308521269164578991452590326880570362872327462477995661783320930473606271516407756080341881391223841888134425654150928611802502443946875255136501594164762112359478389805038212239327540715569547719875708391028406936634674384185803362407290043840430066738841482974359631350887516908497715430271103850134953186070196141149096191592351710382143205549405405332701794206133652898739678143602381244186083039810997513338400235741219538848909754849964002958895012660725199583707257051743114662816983880225789701908604793268229814451314727849735840492007937679719536186886066482487377013206539862148037312408730852962175039797156554989599284215015438207671899352807673715621526452758228011610509746428325762428385308344462591513056673099821804903555007126544051236698948255544567997104043534433915434684982039245400834228306929401564351188555926580238088235148486675376365843799114630638207042692080062675000822702678716454241352188199694957354208246092224290752551135342684496614674685737021338886127620789692358100138068256433022740761048953282937305810429288199329643264725094004030161250104385098442930615053571812851144540632635269679164942086860795920943376037541581934845168571051341666074367882312059476342845149361172859725536307724731399544268690599042113502045356285426323795994164717875139093012997218149993583868156721965086328162321674102002935690422594854376106421835039710928299626467001441368841269512298825491743955515364545376471949334410492996673890976515438733008072638701780718457772689538839232274366501920002670915027301245850931610219729664624600844068351290703065372159676067075290968713034826679459492052680080274817962133931049555130141715930354900849659789575031087191073093425144493803343935900542340829035020722532286879048288529532431529821675136551606035512774717433907291615971319124187149001946718064146465361177325470804646937575753876528409149048526598833458718958643321884632708939448218684957139133448331487209055094809379970078239003084862620957475957319049745188222267912370340930450081106693658996897059552907866920333270451905368623861330437812835264480770558641879300423126388549983871513303483392361238661947710495130506789960869982879660931999195468207856147599055721272165438824130773746167461149390919893434653558811241140004570551396981193219282917796096650539503939662062974789754379784452574915962235587239882007618724172903849166092485275623668516641982709713265676594120272790686370336989015114648002120058200603385851109470939021830285759475015601329458882957584982833946071097119679849117088668372964574095406308577373047378794858313371507754438938463532633739171088200667911981155760779085709197352671470888919653514957216813704155986756079694750420279681927900378920713332452115442732597100486130208777012023377266230209167327092983742834893835963802779117867210525648192774897887520126637650369621022768898795873236221190802259255417899619301785671978473582476594219584334369069791423468225811756468117638382132078503217339023380676025290965862247524667588986368263322978430551093218740329883928893489332898145981688299926450451130011812556313998080041179824718611713203136197317321871726100452853253848040020716899659704519622894865547424639269924560411858619289329445656301669606952384679588518522791971977793979417336461171072528742346234503250991026518452568404649105256334890836986406473470158637670976731073774351491116668415143082713126489756119923307311673780827754923094332781561864688989072010155048483356615455099232310875563755957794200325159251111440900525908178875753801627019500353565222121026098950610646655384184500649410044231595254382251707260090379030777360607651140062509646810403142383916580714589385646754490355769993309916026973865453097465760570631353451241310997863026286102278501472958002299421362990250583658370162580707680027256943051079435784075256555551036452095230733501783532020098052896376748503652123920390692440131103265715677236156843272847055043168042982182913453950582869060176390133476348415046384232022549315106992816197454949310558891040454778431647657811311660063462691953576779967195763753500801162389991128893149663845267184516543419622315969969540447367743870538551564015919436695226790396440417083318538997622660547240081943099390605079126218935974177051606911699745001667797422749377459168280112905035309933984235886575404291302898162747920757250543110679774799165314655776460376076213452598902021246460186334476260472806368678853421770061790737745397721207502716041260612310059937210049720686695657462004653483415094025405308465253342293342712999430570108777662007859201488563247105997890693122109640189035053215219606884564622520683880233266464067499481997652161547348701465134615253242291255091625718376368730160532903710578794089135221565330869682734056953871846147812799557964144335590167965981690847701415000553434558649923114955016607008060905472125019363537869344778562519233668055364848636523957052310031353308808740927436845993078240116988900305659010191283996332394757519375069761726401243526687104770671727564464685930592954160641262983943093043037981463515734072758369021045888594776185382478329032462630234724108510257443014631950626802561693099590323575582798663187754467189814762854947148665212661462280016005011928830178303147732176716024484833693514192644497669169175301962787449890306578819580220433052935308355110945961797150812417097144786704094045797919032774512734363829538521925924383309362656917635861848812177522198226713315655399546172626338240713438511295425768201468299218668681320575481294810392692307857079053345226649241571152624425341536405572076726036617849167871547188035283625451624670188791061265035742279299914902728731517290594947095136701024774968030373771300673463611155137076646328790565523492792173834927197398875963901909143153075694138211226060847434226388588214281076085603182080011830817298748068047590775793371986723576900600253416016921803853194525140700478019343294391490251581396420681467710809014246632370068750488272689666794078498933919491043777492078604392332456895595448393536633007404442768175424748211905989300720866201953512258810177166781352476579167415866117093131684873768204785401712369072684502142715636413120349719223841681103596559618980854721650956538780867752135820048892782587344746434472315965696160485494155543804704826315727560567715333785815085505487137531210747176332026326431401210676478648659424628116538840786885226759327006622006118554334942020456762225762773520728496687727203494723399128967733886591358389809701673953940107186464037481210174325746517151360464012468753832220945926128280163816188132861218701815848861159109114555680923273699623614398249622377038578356417211746075724566817079080874685710655120216253079851184914220670629064957387770933782677858968957340609965594179741738280464769475646635784440744249563419001637548112424187913202096959096049379297498594578004280070096875980138035364783976493775280840410122362494141836128214314681009050892748115462349531052163533867042601319359750111574828462046703190719447551914611261166640034361328650355411429950700869613734025340893854408886167929135162526077076563587075843596906021039556643032260078552050291014113012852122089558110166170237926003274418693020927616072041002080935356580843343009302293301951906374914459861609564493973478643865767474719991073487414560398675409940537424858261851131651388356352972718520133152041085548949334147942369527766396248199476504333532024603147776454849254165696225405069786400421828609355255717665104827854990981798647490950473189026963188998831962799738215927773022247465152690608001579999872595475922954999000255830088373565695165869880816693162838531516580155928706110662498932989032098144589215779510338062306908331631550461714027734161302958894181507547648662171770526395108668214526799488339636275324906798037733196297107778576261561992737232139527732429742356129602852305302827920136211814196059997665208940670275914438850193602160859589085036993307687414544943495369171089557260537312526367564237474148983647332827011593964781438522836171667733640890333370118448750214703964069199674875464199239435625115183789281305120420743195754846170537091671110939626351907044171787353125943294604164402225420577157819168111183006982013056836394930235735972118166266620699315797815675243679514383792094355919785565351543412593133273920458992722283265162040620652923941649458373714318186985767141475746836742495853663669831664684236618819699341692105865272058818839847164071436764546815516552304939873908543446805337428073722472860174623256540444113775405917080952766351714007931536366057911516337288379594663518208252899139614785088513347343214417555728555970260533989148776844410867176240554368277664142180262356691465373838326647069834664664503503680894505191474857421986028096858189239979450634786809653557150839869107835548679124812787809567323190922101618412581307090219935851964631046265853010988172651033576991339507816193219442565714106619141180258051122964048008641913543577244040480958058130722524027356640372880528077144641252331937380973608316344802753758772747877559312036125653750928877728971838671070807161570169697406945573795370319365780260141650934632003600377005293169748804952590751262602588840528568769248857104137374006133887581529050321805476816937320293544450789934052677617785052616855545009491390239078004003930738803004071614557678851900802132297804211445159775021838119730804975620896763649631348529451871396022763810736013712562956023645872391297991222882989706212877505171260214802211563420312168614420319689896685969682194479612755232984365373991755274770744372652367812523895918166555222058312511309968443754492549952239391886508699442825143062226195109596956105120743728463077895457701466154300462130993848089935421918037727884029890056460179647814119874538553424203914753825564596964270145256771778482623834410785768830594498229682383722549157234145062313347281368727310446291510311658825335724077535755679413822507514517778252646345661677868378729818698212400468967435324109444173282550384110597612028512097058935315772444669603394662893047959468786907060405825138550568959747030542898713171631547038556643758915587159780976893298693818729985557586388948425754247090072385665063389493970433477464609611657820251188223686725192986247865607381456499960838111861744443623085657552880505421403300048517751094259812149403853814835634670811885879596589662262311982244137947444304936860764983045329273019956491990077015090451905239368449727338052075553796769575062923104763756249652547962887922083316172764668016312626964652789477968456895469189035442103286055974834694580011222937685859777436377304864607135213122507945604329959314267949976606092032915857308184764432947430826565433677143950009443915106580901110249738442640733254837633884140992104406469779548643348831898446506218214190002669367192192467484680947849150883223218815735307965558989126198644699345476139495313272958487070244540407880259171869852952189305519751245312601379030377219720631450183063414011112186821623948850996419349091522635632840232293980673957087833804696313088112611566043447965593384108858945714470604121685727268724633133462822535233153318566918564028609852739842047540368958379310479623566780289780960830007382750126064387716208937038999066219933559440506608798977236629648514401303944469915403568317214098412399364198938909249152186197516318099679591378106857858400973761113645558185123692485251230456869536587709042658694155972014586586610119694762647486533909698276685945429557076296122577219114020864523445646066662435076179997968685863517742504327842775038463707654426841759274001237143420600356190035378408461999497851023603917753943123835958718212814033519247737038636111767733940456128212917880648975764405691419201299164089027678344386016551047060508874174858708439383971813635188361631319336785826122868549619205110332444351928510022397202407932883386584384922286007552705071913571612238388402188620776571970584884403080435894475013374736651390213870657135353195601230392488479770353979647448842119693531509502163547120393085945038616180602525227286089139715029840463788731281057322671788598171184105018473397019408703174654153796419811486616581148875143328048271746079906333827987427218594167386434509018944192635431647798748097022681362250770861311404606608281679800682385055198509672853919565720262931534486894274158500840807433402453593398835701618432184065183570876744902874039956598006572586951532417203138475829665168238160660285093427670918753085855394398305793038739017930591467250986307714551995478696164289069865640248285755290102436783567994813643268064816449308884909484888800638554753052345732136826340590913762591954001745192025177671410578591149688385065476460207168782890214216502375808701227792397934186140619534116733093649364845430853668381474573268013601223560846247006367569238259958250890930664026465495269916348716260402106246782904165000981231463148653619909461057488679968824449768609485571010257662799723052667857007655848722230787215022992263769977040992332992614044538810254039517083058249755144647455213426545245422524253389993961894159108967004280183220111400784542521782430405426514846222671447690674099328358803817177342790004062358625200225404124755680797904181481718610843954954085231574527276980516239750056602557311290290553256244159633007460454888659399419146116984845499160325627506833613447549298747629625135359984409323047089975723300644709774368383044700413126352703396801542286111291523372760248533340533689461100157006375604372199160588785041155322920757025204612420121332564009370262455484450747904252502266618504497663360844817332577392194300071550950303726081232798698369540521175384270885296827842652575008330337914960373077134045861608818339539861232381332047894665911683783955240281457783464768671642165570188978676493509982214191652201512283898893876335988358451708809657722810777520510669589333310309225182079134712613696906705636632179049482916622918258354838710237987994754738633620319452775838033961139368426996020879338521279985671808086162243371581622665340872491306452701282784479212507954187754133568175178035813036235315651077565319075494952846919009861512217258301892695032041574715962212929118401440110498901126541933116225501410504434793678810326987712894124519271132385013035453363103090651228393403246789396997507422849901931017543119442639421268328446198095655288101173074824524684579108818563760441856709220990550195948656398296636164927375313617673727743616346366983077397300227613013316166843605836003371311334700808109566630405933858695194816213595965019217664007954111908068446409517223748393866642580800368371794480010315282727078688084434847692263193595623705426743003331775071566147059524940668101448694385738499175902849517884964571909256361570260674601007313898345954171269230034621165497694321369305159110281391500000221743898089512063933115304666196510793394945037594442951128256556901876875614039410280623167433890195311730422584968301986410792878648722841017415067401174528554941072142113927166057612377712578341820680451937303927608845087872152306634418378316370035808728882902036942127510192909394867211325767907264194109331612593083586845051943601086637563030062761456018474256215232181880479463258510675340786999397971866140777154527574219712906758670733538828647640440110886982308875280189458563984893066438492863069098249269867609687679345689475770560749548998092189997781351551794213175016552336919228998587018639617486912285719618937378933020160042914469399071257046069473527052614080092458929873482227176747019452037352942009161405294928212729572574639248913119556142761899393015226057407653239015172318487487028645442310553130104798746048980478419846173731634165635557819273089984047719009251900326400550235200690580629484318269504980525790809236587726044315978105583788211891275880666980296326912475464184040052961235035018751526878062641046617015887013043836892196584676620220339805884584810905506723190624797951822044998872836045976836070299339530000865683156661754921307772506124624436048479361680403150277255751662527800733305740274050050208117834113422891478190766600763099007019907765886792751621154678609470748684399968458829470085407351024667377274841872281753015673026223901231043371789216718379732309304103832605586006597277051178764931514977225125879660429845632040974350662564349831515956643594201721626540247048491500270960074530945080716539739271899102806020948815456101546046566382423616565706562841046741401536392405416293777736367348361288483507460018653847038424011336660089444025251342125217711918670335349622339958754488483372600275689027447070740148578405861226202875714994269063237408998562488115430724590988434912479936577013465375876367224931810827242209041845536787890212426866920440405388204667386612589473885959350381715806157606077479956696979597244911484548449283414406426431379589894312589564261478102001510276410110634383944014365310731457004083860976877751401280635792258152592716392993720751640308498209579468728001702177458074838019580600087648806766271852597944556661751415054850445270017672621355053525941431074743398387290094304208108076671208264545392930183735351546904863387994513631739907557928899775353490198306363112553261728578504303347636342837867627135209149694189946134219417632584831684875024566991344388406158521458951884922930806394127970719842337182357063050627990850099514715625741261231499386186881669696207252722761049241250314376385114129500981306453938763748820411548736671321965007229156479643438583847533262211576817966271553248001569200244198933981599948119458175204306177262191151614533631634127940958490680485429529532273133643927348980602352410323980778491374681066626282295133750554257005245291709390643575076261806947389168205610602026071559416625074418634397272072692763670532917256340701220227318519200350623998328588247002261752417024130608031225394384462168153777982398445968583598269793409965220329388099002593340434113007745301364115151378972274172733671260335860513431292579083538033156302298234867503013105487485252966565279653808966512754396935851664688679074908140573789852592047130844391486326294452852577653365560559729654426519005113992983303409323058790570464489430127840788177016030680388993470405968358389293459896729306758644615494008690026875066608144519295405820514708399306274936469387765473111486196029910687008427095487320073677159138026033426503129866200270071309039775789150411123600868296544480940865180274851826154103564829548877510874660652432916348883588630470110236264889930313516766286477938652886944747120341873295350664933592989566874536738136071252173901134219190178557769553751100000125385504077941244828435474251378374738786333559220243571762633963182016419304855216181904351669004799614593303027579953341836292887436705905826850492455105083092652007233948843580204696741564361996496116207478652082535660856160482529067919489797300011647025205058059744514660356443318455291422102388454400083988617536488789683536675182572174216744490485784593520754370333148627423300800028583279205987973268552046919549508784567661587509622174125453718136836320659323081414729837838479150963400277609002155041423901290060636444167024763164040608420303304092687852194636671476660021858823665394037511312814730010041012098772741753918172348392884122638380058396469275578061293125160326512289126129620595085026522543129368501708579328023660954987249240316233619878816584432697629771509253463676512724863591990593840971795953473142028924767407779834483870173339014724053729752753757791378001886681840171778002894306761654262034560155920860416005955428471737634894648574741353293025610027866552272967090821537221838828278241276278433059560251235646126822128180125560090485354019414387609445803482633102013558779906578067489819676355197193822332229329080859874068703805418482427256045567629996760040795399699474181006429725630760908829652264375546861911507487149777699427803413042911809048606038699209790739601761257576421067250610398696880654402245906778455830306440600020459033251569707032677422874017633785007713972716471633219368999155783369056528476646323954581435409233166503889378506221011828538734745474863984162584318586241579247158892024129032119688879240780806139329563670370336772538201291386283314267429326059503759347812488984566352019687935468226475103565906347923207314751058020255341881070030891911621421220884388587494222669744958856265344846354970488980326670566701914544388248144509901182032535504118697639202359297026247420247519063763368346119825367257415949453770172299909127047874571120561723114794643745587898010898072059404582162903706290366838893665106263458503381669545809489379710786026243779942239608148024919468622835401456599874404838025663306927980962637151202257838317246924575227614476342980259866281430990465633937834708541336128458982848653682252449418714064413346585425917137207161572949750365937801474286476806058240214698426194908971539683065391440495428396729430951432921245803997386231742889819515600992859290344264580667175693230902891178114657003234717183577998017813461005056655683224643471717714683798592388981755699504012867594153878055873976592458134644676894225880553274452458512766330779657940349409260867322553517128463118590168880067415377946879611491320661242142636850387872161883473844626981745031591631659733997731243369328414957282635862854722557203007848805397635620700678566599918700713427994117489736796394100302094034401238241647390360085475991246993419106204000678025573452196598641381928429537823369338306516874507444846005373639887040663593256865417494612384482695347360729234663779329565639287932754774759519896551636051684591237226299180038346917851730835552063384930184070525588558012719456316853429621247537099605621694517416595264311373245147848523478019066789445405694955390027080047918137906041207517780248835148546101485866960229638091772921856574596212226371732532138760262526206613892115812989046831601182935435047641939864081173477330421369790070515446479841775642872246743966718777578245835043000188960365542879872934147223175567931059953500770753170266689499036182836903350102790851503075257304926391400266801468777117708093412483987322404241440450480934023015603135764092392801373457368725430221999499086807099757135410561589654521358202619946692633131667211054065129369678952445439349239770783833214456766243788813723620782663108646916534167168275134057554054875889827962911379518291303270528909454792298323930133080813893070207172551410255778505538429196275617027105408473640206831218547587066835602378700319992254031497089722594862155981728366045302578438836203366819328764723032295898432103268673533620311738225194151726663491740690131799871656572354770446352888658026064042251847370679734571854415895913856643276344986675732205989106093528401178498373315228543887894207696976787593372589021439540878687781932021567215789559161206017077554634873161927922525904041654049345299142244442822945812109040365244676835296655085401748128603765634190505333628266784749270561015554797495594925621598147692190061987193182460960294181990065329309463856121932668436373313346487650367746279515907329071953541879166315893563632685776070440232046656513477856577941653197899497478078273220761254060856735448502402813205505905638249894617711700149202595399582001547693729668691552224369658471426633520971509371288967671033976587604871285278185794815307457244068250074056378431315419008237852581070581489159857823391895970143550978087493060176260024182326007322962686455830877871761236820530516104879097805708260846283843976847784364771577153903930307106727941897413139058685349405284893248883969144791588318119875559023167709624026147257049888056029984898624538047610449509226229856657575819965489623401282844567684206308166348366809871989974338764071569858511197520453763947827325914244654271488088708473142005689334224343629087313139599728992139759757894789330725833797206558963734608913686216577661042119329119655421884476462170704901044639286910063619477985555289130189365999358790895667598798183697019423862723867777124412283062723051973570495345704245919053985539907219561147318633715621801262290928286340572161385872488594343255196486529875385097274668669997032879168934589629513131119073930053945209673175888161651154522866694258511400720159148754689134067548010953841591229467912397250133476651415232323520415104379264735319958451552750767746493394537919815612475194818668386603213603799875456231735305664342708021243970455756639257973468403419605957194519174174718770989836938101857723636692761251215322568708396173566345101025644930564734593744903632645695986584763453021737908447465822810689036949803575408175288641100072808362094795448691495289977008234911599667082519550984212546366933804786016254686002511106478039538728933291973095270644226333554962610709711969782656867235591124715504378661523772914490712453561700948106643327921139736325379748811625269881817101948022775272993080083072965512508587576398855810186094212009272396136074744398669759159599975218209579871528118029725193418671503438035328757970952781512253585800101769581883312320002412884756291069787215771844721553871562890621804011693009514026241090288852165620549742931775784892447770944661016084834069670393157032812953763742281122850885324583415361532256723715052345127270867983225665701536396671468671511130186823080451398146438800256794302355919637700789544803530722236731236834483420509746733246829792964247106539444082495990385502609347788417129036265730311302355261998168415763794249500283954572882263601703891534448437996844491928863141295848012193122658466835577829083906384731815185750831225733449204407387994255717244147860840002718625148213278459099230195899504169671791516132941723653857895225053972140871980477075135976128061425215364172743248464190515246126152816703764584231709257461842711778708279854730364830383955609879958236458082953425240738360966228579570479829477876229823739881098805378449364244178428384305272019707074625857385204668964332875839480463105791944181651865714224756353009712800147439375334744001680231152485295744714621747317729014569644722989774711634350807214041494221593236549114885576070547351108909476083743007308530813816318520256590285576503505110852531102599156643651382482069552045344762593421473000692383201473886712447634263418955800072228644760375656884626805089934613107675326454696090240554920037390796837281223313441256652333440059534907267069506779826394773944129239479373169485247808452602356272330427851117375209741098183471686410274800065502883968788896450670475868110259196706719740337302090442216738422151387701373857169055602297765496588552552410550077298954641999418047376826472926161610024182920686452662196485002600315577048587116317903789542450991900944534665185940023717142007609862270478120854068476049500960409566760983341991898014138177383167288790609492617370591203266267509920887219819640510496504366072273162342492368228320810335187925249216610822682996942697715982296699122676945380501968421387553307611238166161343223981939102150001503504397330353094938425587027827746076073464379015441671670503982888392574820702529124753595662280617122256286482082482681793489290338259055915839396940390536593566396338260467788724813678732526599981757323797523638775970343346108303017886590761035856407733527058352467270991449730680354649174022643078899644165730384737183286105733501664010802452006524591723764680453571568116910286872372123457645583638325163985774666454995826227732250882187571910209314376056379403124757977594333704330922793721316721396506205928237023185282318263792744009072256480718245168082662090428539756584640510830632209596357825261804096696474498256048207832165581717494092796865213953023195554851922343236843445551475158544666674004456250741453486748003024087520917975169675743432700221104309472820336424702492056790987365766632289560479805001244057342944278087795685422642427424128593766128641549649243915136125199750847837857831904991762547621506954036081084541413472857588821593790081842063547624157398473009785006799210656874233703713907770811616971513085896192442600061657615821177916526361892280219878037181387970426591171019672139504902731815812431534810785205241648007169019599793000707316820363408290312042993591932511616995036363611511463556684846972890828177744617175391850000388647486230687787452953123129183797966634655391073908368656111007940135934514704252234136395731181266625989855952140957121866386425759843046617284723975760827207534136679761009129441329902274545163485703470561863874368522020383129053689377685397883055207903274377460739890448264798494943563600253692344065881768230415044004841934896400846979220518176193145431149210162609188531353315922265512525803176350094298230288996312495161696220874224244633337049878060285087425423152605287171352355152865799422558157688821524252934719892194777933546305060550390977797710672203666815501620714877266594949401106411262216248023367302429312553435804055207008002598145017626362205670363725090032824186983114251944451716048984949828329292748691770370798443814798917548567672363014726542255194021706072293312480788869817382744189755219169879308959214715424786107904566942085323590053516912316107297417054559139767219461451409516352821899115790323113282693612958976260902544513599052468905520275552736343335662355694221909550532815000245621694209186042361596186697433396879162637920232889876987130860608902627831419470855652000493939355875443007888858824430234096538484965292075274587705674125931133107003027652730656210951908007522961833934303816913399590490402168134438583866250096157523939346469695863063609540543957814342117021062822525481383623368367496463429591314751631698771974539765736772146611687220033025079726519405243900602286691276594517879843225551071436301594960723393428707389888652938501394246305373513775356622768180714363636488773601184830574040193590744485165821054640764447736542934096501792247095212695109193434886284096411014002826240201271444957281061096498892041368073959256627893612112657046924677995216322983038691722483552931334274972282512185044027397682133782698281492968850127003573868048053065128009555821134657700809472817095495336389768356092300748501779233527597060489954433971564934213629757095744672729359659277270931218644284490790403460782228386932604424270987610368767723722745524326648184484970226409299848911220228425774625501259084582416808620040339751935866813118890929477676270586461635281752704110099088244432519271610626956856015305600112808813147998477281351063838510047656151230920246102942002299356508573013876694012207937682717108492093422781842401452315854977986315812665179799485460184104930836329612379715446374993019824777072966769470817678030596493177457951053643035504747758078502364729672255396020303763397180685024782326136321903512699007336836687936819652269964145620550130944891630305642574060085324969351337209606470053806877979342927042031899515040486983356739683430830314024211736778322025567898235402290715612422243160529289365674656043194923332879139740348518606220639776422756250889286999433248196233659005305227008128532486378788434101950621443742305248471185745920875789966244826035773961246245329328953226264365745539147700346670858304984113896390545426238069921216036988384990156541233287963259375530284718731137037512330450565910608387133463625443598620835214640248657607524061138422459738499519188127585727034497666688897454988069971773298608650132701585942633286916435988645027073433069485966388984443179437842054999439497834469442210433091814607637582403774524685953753121597068534014559545183828750442831875709999448546634847025967166589924248893522682369956497455412072324054761538656411737698261889975116601696576051917925877225853530416934317816547522446870927068979700513953111968952412113919856686249351820457869610556740944952466360353162204319403930026550742935151473968456921074015256108050268758557079232168167120084031367649739878691002798023742860107196230769094823639876477838983828530516360225666086305655922881908385397214425555644253022974270156445599054982490663768751015008268302977309812689725105604303545751026487335595494180255487358064149598690131711077123994782701245214629012315876121451162936257354445606763368002821567672923742827499027524279763108542687873614436395979497811595785735858311239865598875884595561903076544741191522902747201029923929163342555647153134126551164652490090117209326433780807401333739694855044339605342833088843957189364398782416407680372951760836162593482937569501259974852332787736404314411079872690103806312585598667703218673521777259555395690295337840694048741424876464495613576112452419930443513998975382560686747442637639557526125372857049146574932000421420355836850393367914999989961515722538031784027339049620625664051910887394790077288485474484733287010170283862467743899370960728626474449822678753818826154578118855653360036816370725040683910204217022171889752389499147669079978493531404085416139476269152663637157949249953124017128641564392584917657270362786817004535225992590331717845276970932836899234127322861672586354986997279739616386361040822145641777745721549757721199909121688889589808697491076208782845958137639630838568020642522796934807946545682003686551685617720063182270476504739471846411450795110958788934426017872362528732860292863319960195330481436747205408223121016281966720299700367287436858985679686664298856093779072413363352852786067325478074292884378787658825433260898414985395409593214254612715843058264807604201949364221462316556507490864677771533135022489327426900201581403390783105203026705979600709943763823874266417548665868329977372693790181643261655543325586924298808963554541753796837483733789493862346047341665339051792022140467657642439901734330732036529188100310292762176050843009815146646854177332999356106711316849918425687563651956840121523578798944331815807278461074724800745603554733365118750418814077638925044281660235349815901073934690790783323715199371327041391703056080249043756373128250113129866377552148391547350520261416462259344477906055439038281520559900969151238124748088664506455980388665969437452876825128290329405805971171961988321037440940350972064916863971752001441915168088331038873151932006276165933985772245305118757499513453882844889133077902736151200251335657155933044658416320568951614360991482399926127430208584395678950943961681090158895605407511331586922938496548475573896855531066884598992601727132015616174853788253846243648952184782156006410298640786724011567891057016516999859714283551604902822792153520583381749782131983207447020426526283126343300490054283735620733180345416661289244682903526706910987505925153903171591369689711272691838250188980954771752508263144806050923554213508105662571700264385529646178148223472425923415140215181453301312121275406552788414725408040109570204739592944084653317556398355665291511524662962218253806525733181162117661246142713972288890682307221014146612347932746308206033252104805934442524660449258937076140416491376511366830338110910701006987808459519705385210390302706235012062172390296498487483547842518038708392180101942855551366937223774338264847486361334438795071562741751923016135301238787435823796313166862169489518713393146968642987038369235005049878883528531416894956175630708747441861087994564969158900875329117875460460886484627396275365265186015026206640319513609001256683719887857263030822912387094281739574249179973604080384446349154064987931449544159090635949065466472430748403772663875758511796391294788477405605425285172751344715805307722550420302526012193996757855429429477772801804279417096794278744837575649992689141345969826240173528791333176899631107072924371800658496021842628669701644162663296870068957509580509263220139320669032087435654083576645968053048983410016290929394201254511491613110251242831524843878538324102615995396841107041151495825970496474325485694231021163774260309098710792340022007360242365260193132360799004004657694863858201245211551693571717821555943261565948675291308582581286136649999500958751342168748450309372941726953438456406809332894723141829252938696792168200976249550007925940845175432430961912192389519024998015801267449525809359103970405022968234565293398902186418554173544007264603618796427617116176547925210771486830403450579272046255858473247842261046456416653328718273739845999307636380675044768335883539033330554584546612902447104915380505660928613507398889040517136921860488544245977320581733566611732584513716888488355811653630126183259694129472637361488008490112859596282866468154431927125106293321260452945347030313259408557811865599556203639276464300435897671583683276705264519978635057483305763496686253936617892682963908534458226838015244523560089453740372624909620819235883132886140693057529310048699425509186133463509047727872918597659624289631438469663770808341369290435634119775184226643601996095426503605650260402526991446513516036468104637722247596823256314936943677012634331815833968964322857403123776320933743758290814819726515679156615127215108063654739442191868380096043510430826591691158642482890131427540722580920763715009833807506882717921218542314748167443295432895501399052792665943897854791160473565255392689669291377333420695089162604603379475287629341655255939002295285147736359285955032495257632155280956315967064099452895623261985071164572743566975009918583201865369317543246808161084857602575075977251595601356348636706045969457236407221318586417147333195493026728341163977959308091997904492639886196758724232617755099489859024233833318742471551943391166029256531028197633155244741021267334061145124374680943015730426706594362719969215727404582808528081034985286588284583860903303099432644301625139203930547241614953364833718104725793237588273374324125487898805328032974115727594546610089163238213965844475173883606918874662518272880768358841634536043160776109718571522128242192663231132169591400735833125912328416720635794379535723033407583238297653490217827121886219788432629965132124058078404602584508011861474582251856053351963701648073591698704119249411956672606873435208859612156585020492331304835878601996359879801665515152951223561037615063569884957103431250402173787424088669829043315666986511425243340198478282982259713052390538545980427585112540562787252970691484392128317606946019164109432635882071942732299505549424639786204416107952796560486393006324164167256903026057139999908373418177667310118014249726702858786915284428426184487584011116848596104889588326314022952360540576768378617807996002358304695983216604573622766555968733991258913309533937017614084111937610508048006218842175551016949023122443660569538603793715448690253613595495554445747780656615936541829504836848555568464041963345323069839523908733884048128861329800310988180149859691389325289995605605181368562502735024189718273930484484526693595868362244994232256558490288933499877877522918454904921735637511141562664463336197962125319230992646805322671913199070177258863594189545042283809411904333365154858438607481618228541080950923247383460913108845952606679371048022215453983833873815213000004794820279360342829933893790953321411552192217489850830683772527155589756624729954556585045241329379035195845862119086067240268815674793999035140799110025933586116340328593730203820013387139699404363462848238711152010864003170528097930952375097628043578793948102379391727820164947465418850386255330501701825867322487724550407536671219458731873124849525153146174377060509321643536383644376423525200642633897496728048966251751369580728054473546671017267636079080522737832515328733564754296247649324922080319599539142951366917181179314598598463137534028161855219580762825531189171734794935180087975145190725868882842862213305968005143763974675926900679965929167435413232202742695457903324417718922804185546777646200782743506897469816479761280708269606522277621476897749695617467943178980908503596744992100606806884220526731516094631066727176823399962743958472727728851601239007123730657740664457322515077137450026711166334399058221930603605286267528824186223215321559768579315155896677021006337579512980545117409872845919983159874766991765436135079296338856651992267624972527314078083676245353810915165010786579045288004511191607554966444605147510154945200285186699043842016659687346383768934683030311320323255985509559811792982023383330640214023944970985561796689816148765031037898645892723198966578419745111155444071332596520251935532545291792712940948127398999409649917394940236822839539367020032857188708024657752599847440795165193411398214809447912340331832452142736390985906817979570820865788154602703056214111412653073167550746928584562683421121546298949200568222417437061515018294467630954765620344720821714077580809788092119638361485605820024717761070329554674900413545125428892794149269195544093174462411835698178333073171130595368955978755194929719422849338728011135838954746257360978784351858249663958262905897806071507509622801731083602523900654608398339585942848468370723889337238948886995149777548972238769733762778838222489570469591540193934749691699717672928410415467808257088095230785586387861901736797771904710876677463336080244767358836218487300443114618416119130367338423695661683586991976008801622944693267972531129199299021539411082818953060746693568059491387114709546695968735515795699028426308432896140640038008956928753690289652693615974571394612820234826086308815464543818733911311171670620959852039274875442740824207625328400352272113009639926912608382358810836590734831009362839938218051326093137982944775953654535045680916222626239034572696685281291073483391286054696866218630719502218479842838909095371667050608540354308007831591840554321708664089794365625437696177530848146246647236737661771768387264865382419227287715796016194012564958972337777108403751845030157162150608969476706548850238592958717496111150335905321850952283048304461748243999043758297597175885648702746632010381097904975871388904584136289752104823733565567438878409530900238925441573867849016017514583953955302470331893899522221396189510852665855839276648042740292774631706748262023003895203366082740139457743778308736387404876024194611018740696640895513367374941000450126258372773825495153275190917579796602929303823458021675869702695258035440375590241078039148213674390371406653897766563567784708572896286116655630130559931783370315323515787150877702941243238291325199757467146021597230787773401409668311252334319748214802549729067367022777349351331617416478540818191231294801229233365586691829552049486073966083757792316308217831783625552647043851608583995485694021585820237114481063762628721722781035176785577546096945988383657844657282447124501240503032153811280421546010305411128137306485270857020560761100435876919054059573643132319880183132578440743480267096093330222388142368411195303104891231974794493889018133594706260976467373497838521897714545339108859928865135060785606807751951929928265229093999245210671530761256288344428499970247587914092530436960550101364124623532136695792078808716457409639539677924881547417592586759912530253233001876997494678432511187620390159873102267575941959529642669057855904679116724535368136335443663761352225236610313721114044417059497491102384460086933552720980932519831088390088797662925404047628195159090388225078580514320224218718621947147560857748458611645770109211999284648799323966427250483886256971644064413620892489608000199794362001476777234894534190880166227179110237425544113749064921866796411074365372923186492278832609681147539797686066944103729781837039174787815811246672727833479167061917628073695571654049642119000111935091242726844117080472359229709553772142490222327954830253098815063147856986050864645096454539380254114414485154569763908272579284716184762986911191450767648720446763479553069508695787993070567185212821317113983025209754277659817276854092539780609145958320404055734045524594715094359817071632220746546141037298974527123331804973521396854126458762677555281644754861459074211210552296921220623194193588416577265490743383653049957647999350182174812742610730004673745715865112504610311121175107886298700474167807854266249954028691075523487165871962168007965349397333259428899401393554707266969238008888730174872491173822337170594359335464773769289908528982040508282958726584261363206976456012147080627889956806890151475666839813829789102991155004380872926317340568295105689532967115838633393492856858641516258314997458408532353942613583973736298790718865114372160887368358304095469797181412004116459951386866082102426258109603135341189969880468617876117380690617814950510763437089679036465622052904031781635455723847582444339060963026371387802920144528435674321680760030543056548530646793537091993116254856393305632682252449421656523934812510374522341873702001516152637919623032451962640873737740875410743398027419423421715329404744474068092885221577943218713310954319122548798612444485055602786187526239495098397058649762956250835634697196892387742384545004223356325588400480184400790444872326272790996763028468676441818066307126505336592015500187864807568329200453752214383404626790192675194944343427775290830746331762565514699909647417019008586628343412883199212801301061392737097937073415519966967738868249999071193031703721435088321226131265552982600487095980130914828979706735711714274615879580440673467415300602098071638975929070747503672445746379938034070735359518648169671367488218180046922373388867323154576148890751239857010440383829190925427231697474764014446245335788142442527360110127860205444325123294061303942760626340341065433922402822332149432537418379354482507944093812372332175282919619158656017723364604403129580447425794607838376273136221259633899698562257950370610248257931997928732761016869594936308214441840122717305717550704554798549353177577741338010617607958290002970043117710018813200229245745636760345638224938789976524729673707356528254807758265627267222980883850359256969338208255192055850055722991501559332789986679253151644552283759701679329750972194713465406263884902688745181297504466815521069789391166205208967890687366393942361665215357559996856546522992803172972288259444217089517018546629899016063428342049760726181038392327775285621426454183049678193866781501391632790538521601512425232767012128378247281562597117624065241588095553980428622699443667436942743533076203177472031873690783853361020822630737229485247746681511313883861139776638369597513240319730288675867138123117410360734800609054434512520030379701690202931429990503859434805076636715867737074584548785399889942582657840545777822060539504845266904945498210855696009627459894908388444815820036719622453148181252137570725865216828345695331855931640294452487051688726560943672696520824984878253097509896386965425500718288811511821261383878387568732989896745709421363907553966649167404772881912290297443672094578240961433277513688853781863631973644677639385989810420063613621979212429635802920550272878825149812788969000940594072667693366896720865502842646506514724636595707497526200312395260926550753575928274667515166307367499652937309639469568622226785413295450967220636677848865357464593145707238861552684818773749390069811888002431218764279881118040367284076375602994058970428466849366482224503927045283535593520563029455452372489055502268819023607376388032545942224779506090029214565918113644479751271275402910261736939306905227280312789514864548347082453742703007327294313902222605700596369824512417730784274370841733152474391509499037092513130242995251709774165381257015947276566166920320374303131297955799085649737154990278423525019009043101342229071643444547297137811742071177588806809594797027042141408997873319226431981344713876307451936046192140266967615370063010059684935395762664470993117207197726998003023133678524874019377692604733739431925314398116826711856972699442536572880116075893006995050456935932652825168156681890084592299295930153120266763419697057597667742367123882326968378514429414385623082916824712684767807645153063710897505289581536852742849153540186895068610549986208338121242541437027812750659000506902848029723252361967797309444579564487019809661255543676224954289445799066562819043237686743844828680198802526972044076726437854327819345842618785320012149828489252682563872391259770622772728598934575851264070859183874724959834086817177674689553561424414137579830139218255657732599849713023553578535486940595593853465701830338510852897843177672281553222590906962212842827800965209008979125565084906994601762330520049116167258366595076353323366106711701749237387120585257661469365883830103721649798856636252011243800299281817808184129731670948829667141619980474222139937224159517211243722524748983924871424129134413339157502933737353032595171979646304850489161852938891944104742107301997428101352818002500602325230267890217705973017651610940527143371249222570322463747246984141640492632498445766346576323739582035744009181404733518936895918641047517231802921302861257063191826155400767882240459209342565703411561281934402607826454830115172214159063505890217330192616088097926156548870815889282934541043137090595623512447016019362681490808628172582068450359024913119533609932219658380057922801718850878651261502429357285572172236287080340778142043992122169054810360747732804153829881463896466850873137610912886080604608760390033294566448825630257070587524932138253026472892584853814837507102481842636843461094243315552667404944448686823649108805772009348801767590648270797096128116179111037902520436113693996484409613802271012455600823481446062411470052122321796276328986407818385136319835600199419220066066285826682198726469795003135039871091625619633185786923993713435299368388880916660288591478153687847282242882700740946394953403405858506928956309788109590022418141440477189455348943504989749923551120495363783363939657553502714676858038629854994632051493151193571866074193579689966874754306211548739164707348910076098075885446040305326233998980234564266331523517786900243032031859625269996971283455009704341935297410941363809729523040159565014761747390612027750995433086256693596185286478887622951576434199117670968957263376330062347258571805198117734158726418825977218300413551138829761283774465438038141177585820135247005411554799110953168945151714008402379344952770172109421923854404996052094299371645713837188696890583483384162517218604236640187086543971808316897146976918606370978277845182305728995337175125296315805299463550548366744005169276796910072111933717538741721280686842056652540967008328501775437069456483456707151370351397280997105847969333572417555205721092208473240018642791645635182662402369116244787806685891680843821151709728668679673427776902512533227657905055999165048666950251128856598436203754248445323835058216327889985993103897277697529311936226067811661740309853802258726525830167415020256978088823809421680049887317283765245594631546146811799831206084862297740615778945399869447906128453474131115627107893336085562224026431650108402600465021678056671447630844646369952500209174256107157247636759531704246606011176159342746845045248851229834921900573984304443983642134285746181745251636556036580790751436017556063132611650594921536861793932779202757867175603055461464502903484722289403055085724928755026774017552214010130713502585736353034745013201400808618089127400915841272767771559273481817719466215342773377852202803155171667487672514238840546404278355881376872919409645575599089867911968749451300740336669854716498106856763901263407417482117556755035359034279830431073098805467440151415741773493367298571520659739317196356404696336940299602538301171524620564367401822345834280638194527335203030778447438167079278783723419949967580939343172480147582251030114420075797940429987861097065171155375310196820348805705871191953425033288641572693473958750103500308797617752932276803399139432101310074257931889226735167610364036270585640135524259086317709121037964451212378419946449790742504210093464859245797473994314830176031449003371626888110870900575023491958441758619704556608838815121898112088845169227066754559232532701589378822121614757324054508766412652670744836499683706100196352811798846252724395386268473454880240030105192651611459428402189466289803278328059763269840198979414517688806591401677376797037541716469929387300418770310172708046515972094024369379845245065425221652497574854291156546053985673708695579470937416374738816872368368060935668504320900724973495727699402666494249947581391544337778814728315412610191367147635715850259318330594611046657221471064222365564051895714203768384789015439420338991360606173463195789689029015640800048192983443260781078704072996712901584506829692871896230627339125851504197449367385396285065002795895329712731207376460719902474087398734433154645735800826295842387004831144320358637438815654158935829336806270099075125746214589004522823972132339897558115014160398430842285530482727389734318370458119700253499454054307576085782817748591187506516383940715490413294412330471710914658204891802254000427167569473322638890752303051730412072221068049829672555806935251143619108776570111684586109820330533395747299337025982848422824301688156298524317825126466932739565806620718582825055465815302407332902735858642429389996651450519085350581221804105235289680485175973082233902684631090937795882519835636060491779463741806980907677168789187446814375390253847881297274723417228580720368857449090992630351984822942643213951253300105085155408706161273094703805124276064730030573392341062594907154630206291413897203850931093850494160932302407261618356657190713690669710306601292574636405328441033676505062776512778846232191301455119534803774493930193739170595277888115765565962614378991419345914780348919170604911559512315913396371977467213813348363941155518519508799128974541333660380046387236386769682612721367838004476992773673645803016654010976506656000746228497984483637975829880454802814734620082856124802540027870790289666393492844629897336598003917955944975483894083176642674983381574643520687766988451152445459762040382767953123975559458509262498260124564374220122448857136549431723464102647407458017598587536269709880560173831809015430713784287613493266837646503186985256558607433170158039145492756236886662989874243394992442231374754511982427372237173285912292904435091363238965861292050488973178504639585348114281724631323973557469952576257486582263985308440185923160888004135305444556996465076646580278001576391884791952336198948166902088239523467884440967697286679717777565238519150561608372676622552645722527995799754883646122054873985478422396626944304189039017304592069708847439139772451512972429968554339044506257227585502643736969543459141448299258655543715215543628812080281191254036529347914154730538192516809697380438956685757021533131191977324442413331750028725184555474262249936256071923657185969690051594920696280908336402089547652910187938966085051955477573865787779627890857053171547070605784610595775240399728605048273412241288955056307152207295905412690847939746448892056004374940402276614309499028963523493107338322067208691463234311175540896919064874857590594532076845616503612706374852393237628144129124695987550844542201949617208093918888166104969963480954849762837670398068706576282525860438188767590143941270253687628493934800520418692048201871959564270921594003426483086347552234746637289061229971849284671202246503329481650560692629249716444844100302524387043901297681568866012060877065492332631574359149537839748363625094617407955207228425597868547689707375934569227740983427390052948948865625760112284199183080060435205304737470591513279457997685993576811701901564601074224633549704280246599071762370537343330434679507550004881708714194519443432381261053874423804761515031952266280291500902998342411508193924634820329197427628182967798548419494358112826106626247436874611544471283938330068531552604005181992985182476547389924781330967757537796404934998212449433594745582963692116698346014370081865432247639049574710182345145848358462176928455766265877649589837674621312889350933904729685365077430180538871409645373857130486285683858887780240505670919707033427183627964047703435015490516608487432792841948013473568478449768955402428828182673909727271306921367668160027563179682115394581811272179231052265552989001983906169390746035935907209532102599733073829132165084673374623928727412000579380821560029927891681915055293244344025679073931010897687896428581228530312857425734046559939034706247265209660900422726549231321980568416198495693906054760629536370281287593641210354452271412602915012751363880315321205611632617210132820070175732112415735693218866149340575860545250402323295706725865263251624724648263698964518073447319202965281886777559014075449237364781866226215313119344121503027946869627746448698728557950234127146308158919954572483133050888069080816850133041414150232815109942972765188895529257617811929863697578981166442596123129390910378131172047510626427858751462047831211144415181511735992557906104187284029810540333992974421107694604843347307426651835132385160051698433633671954634158249575575621564327553508357507297034226090691506455127782654445737475890854540090252865861441402185224211243927344286673593575514702227806011719350119625099976600877538031185860923293426918484924510861342877119773902503779451727558804758497060319954759038571073335131446142705200750027470536024814467423196839583073489971253501720492760071926222400033137361630822619201996574397814372829914834105038595806373639692996348363524539969680411571699389685633099675272246571391687102380323549582281514082915277562923446215553214565292697213707785111583851160310928029230668026137523034168131685024607927230924942308568958106168282368704652563587475405617082424387817791432524128991570510709607987721275320427303667592244723802521671896845592913379156778805452184730066508600292035958569851505596090864943686350032368237965891668182910423086190087406605927332712464850288399455050073282066319712405366628663281023724398999816171444618420367901205535867379778118589906862493650424941573970176453993240973821714992332751953777889221939734089924692735761041272683883030649223972497586288004741625426913346523337599531092037172654196099434646623707648903670785936302432299475106136707096600018275261865266806061954789136607865893348366185617529839179140041772372909351834333395040954719167980131019668653255637788663703290564397876755151077947388330063441057951623378270424891450742640135382155059623895981271757449712814365411842712386553871830282903959462551582841832709661149374090142637408940112188229142111274269230065166052919973904364981207374701648102543932099610093310783993304780740176020325516192479066040019303943022281029480125050289466001586798836123733370415397881247371851471392615868932459612492039976244222032440245427943903904744376980164191773377322390549607672109802487210403153768739669103812970856165735284529534680319575247262305117424272572656709680350108689388713073585235024821338595380829541738574009733839801200614299280145186432998759735335936961940067678850732241904091054782797039126026040878891479362726784413171213821838209824586672870354886825652711753296615646821125013473438952768629670125483666956067377734248618002045105352194929775255103712873524223863143754667040831830982856730474741658942955216860351128994733323882352977318748538158615793778976659538782768026388134759142733387786507826900141707904252314409796066862895101959198033881751396897791871454572523550269518320518918559954730269650156765913290897509911271792737754814705022585261655774366087196061530441858244644837298921683193234102488293867187081004727573828220292540961419318137371137840143382801621054309466797613735438023346500722428712171859197195790374942169955982176700391451257879837704287673700814992083849302112754178738103517293531498209478777812832687131832277583057986034914781697941645277569593775634241731693495121527489781336871846187631811865344730097190473883403218672583425152024965928574073713789171092299290944529428305123382649899546809793547986938340097892523000868679323085783794599602648341754341861563492355585775667648109586619604681983971901584215995301422096599714291246126621270703232641068567069318488005113246564969489476246722899658932861290016615212305281764660457738141257278853717384981583241647649975276000630541107117696653420465154709069557672751483556622592854817913945137115852730111274651988821412134225666904097001028820974232293335534531931505515014209374985879864591658258319084950902173030588922756973884040943552147818373051262318378992821325793191882757578606149176132599723534285761202064556518732166473557506565764373260491154526558293247993519529209852324942969935160037477303701996541081115740020341047354053812079318252460284705942777931823087174448373063037065994847677219742817030075610291537387514363676876098340181426135518044274040959647782108262767310110646595153053377788064093775121690209924376443013557455067447140081031041218175140779313371376833546304720967569279718608892818386764905116437922203982152582221581069110125702807594272756822899534980212934954220291614905513687864789532411050606569492372148505710093368027772197578804991705042969401000986183208720672923814338862751506886979893563784942930196375772699785725445502006208989251441874088726999737411332554452024261438965647978641315937336290186106213668329379336188796450885413696710704357622328191696450990576309813551245433646052652999941757685534018237860514849686292326814635440652729770522727925033790066768922243417171361420801496788695316338560117503771581235804572311561682592747740411249864774480982498201186167174064316025242935146811184181982906568275106251013347625198762687032511391640125641910734581398209484391420221375822880723601665672787164868248711688671712085940527566260860903057807674426772755174977217933206968128244168973882154174412692790732553831537236145622002713819520863733853932731504723113163166725234148304057024666953559546584541799597050398790730880085430597435192800085387297867679377048229308873275646555834081207806536496645740220098320204095280698634971600773335560734399459590233047404737256970524748999198906574693043990629809111158189889276772011776276746261654365265681436431247991293356929261907906309824282601286962299587867136858120543256997996718989987775185926773612762343359313653408731056963654706560534789641717305467392471107523112034751490043234096729151489607116220509310359580885329931568093115496724157672162067051806704264266686219993971424665189625787173843624226001871356893859270021342969340845686859620615487414253755486037389619664685336972369838117474860502685294184436746587095935972377900125145217266418375647863931608771238972902813340734248908914080189469296242463544840123281633651460832610621051543252716517013232557380848113241489406904023623243647923114335641607528209023652837486964518243802152632540332398166311969590024480038556683792939961671197155018982465426703426033624069424811117513751614705263468542350570135719156620244397622838320808180012328187986815453956935916008090715771778557198532738446108789685659387331509391263126909443948636045954493680198335329073912422904780130183342908663241234745692081872922947798830956049226103477026603656599325291427542405172204286346391511451968936814682351017939495810959728007787303158957956518548006217359313799291491406656985498783948782150079390834497043080647115146419903365355384914956421763379156634141685024053649110297107974665436794210012479350872718121620612456231643813437584008789157486337230579781986301184286013490284887268697769005892004796551789667443408615372750746614825286299688178810840969999825041411235636799058776035125262591386028775951154940797946431591908359669830296938325458163922508305020396964468419527810412808507795628074699861504069873008661373483665012289084175810186857974678994334059594633365730455956495627221864041665764964931122243051541892729086275231037742164342185748100808623292560129785600314757373880412775693659573200373130048360893965236436597864347548494458740306933018324244201903705282362619819993653343628210427558864755972855214493694731774767596893170216826939699126034057991782099052653558289792530030884555445626891881069554914829831040428516192576242390145364840862649319566559365805637756561427765850168297767951432455242806291620973488376686319380284842621892661849533599562568201086632139894709352658147748060588099669061047340310746789964037626349760495908385485038372526153937076587860240144126840931775080672668805176200266353785472399112168541260111662425560637262435846245066002243232294457211621449156294355205997758800749534480647884687857311543691578285566565444340310664760252991516585371344857066104606775623460176070329464788690053466628573088548171761245032002677248610678710978657852827160107193960031388446881095411156099702036051956224204886289450189981815889938438664844421352945443603148895364531065702035056939001255123335989802728648464827548660280672541557253328789407993842737988152500253308687115766370689289833831384833671372303304881903744406974533054166737922678183005284047338380808444806441637523849787835957287305768305591338982784709982326716541579022353225738512475915698683270854447884201335535946832474046733215857915741162997493682422521364193697107377954606290267450521212065789129563521615906816291077912724045985253199146701784652371034761407881885033760426451915864029777756302801349529291202176520224209360223484923230568535758715973170343569270017745182428515985281942745755356675418466328163124247193778370887880822211582541011690542356229908252622999448875987766922982652325568554922764933847740291815202030070310120143067000836817877161426355069353702576316475713247429904013387060887149950908172408731043844834575668433480662553198613680763070552706404385839259778521042896662861341459733323582111335778921675501155275882674669304644878648776013324276298989033254192621370876236425204499974722126934425999664772121897524768296727038134995543974893736078874285276223197529215389609228168569822319415057233220037768872782978252401689987596839424578490905855505626465444595206745056138810021355293668162430371808484296192360995916015181254403455698241141179657846963273316164342987173040729375103603938599062381691686000213203860468442649550852471036980324802325660726971932164624516879016797258575734419513564513094858074636474634643688093528079636029490858993262968926991263619741792156491148932048165116988198450224802858449846803051865620979524689427161595040945941925800842296570244311986846017181212082949777801643357611066704906206735380039770745321870511847476590889268783118925907945884176157746150922453262132638128186286372793077949737344042799844569321145588841906120909397248634373749721223937612306681513138480033105435405989119517671732898575473894503983507293915493665625854397239456792155317616291878113390512737901517205120799030441489686546124984931944268018719681368201873339513370005909171528778927150244431651480827466519553584426301765216709032435143037149685007890917768935627756430440254010767279302392060597818646853733068472458185816468105309002386432939165897195374164405194687591440469934579330210185812069826967405211757120618759294626586157151178452459999127197007205276241220403876483853537502289064178232989896147528137500186209079813385743009770637691147193913428096894671442478566100164234539308250038068432660756721713346464415085425305430134094441593099241098192404183040307303581629842712313667657040192405314013830445365684909932711039866623477238784580331077780761098781863404226524775468975930849324649494618297976147939663523418406840105227342217778033692760384375218337408497231166240792159375007670294109278719655783769447164740278695870071064516499441592385397192374720560021419919093800687713297772652381791002316326176080438345344104681791533813137602593404244216829437106049932562088694302417305185509328344665563676069898652900075048872643809069493364387709555491960419531665533664541325941635973018032226949812174404965473519649922155743233193859864074791020783925784608172254043515011267490885694613386973266734029462560437876968057326676846501364841321501078987035350174473996142718155410775655386696367224844787067504255862948590480697131784908387839497968699678522337795709233297461288337070078262084454313922230232771483967366322673792527053632987609819514179538893813110487666667622934807913199674865162437657578119561292623785251487018994404754521210157520777637877934717161249251067089252238749804590742202566228785183959371198711766619713203910893618706494684375004582990965307303294967409802372289885951386171719834671692893952618394528111537887980639591541984827512458781260984778289813153813581978950108006209022197282351291740717588173309124470460050282138983086374991382861216223385550699544323502352907596984503401537094044398727573422701146011780290023288575693651314707034992578219633735912717829633505947171195931239244629947473768044356849724825958018667495161875777852609224486352350866057206866581334988225941287392849050497716174562363878731788581226467579929315950186014078675114497852170136783290888633327736476055643923145570444507150769985253569171148410707528778588963718029514160771041581144156839231773842302639830372357131013984455445700746861344508806377480500912093140606764867050811784707045525865233867282494015957925254092736673942548323759297747671132361364408374541745976989325485790414221346364293377659874254652336336589059306124929188815227611943732642917267621992822859624647840593268202013161756845983373470472696080970903135975327954186108062373360767211390574515436304343652607849324474202394890484366518821107961945642994549014488990390824905649028059981323449554953518911895262222533212557823189064908053850040331026902267446468665103087098335573565247261157182295172067817882647720424794535427797343143952864002756501127354934228679841805064894701473598754960893167513600591008653025881453459204409496338823656780388934319282706633866883361535395205942474274978980296961479309131159647325210925015624011879837469474392560791523180326339135381965017632447138758672431304834374223091285902864311519683009416106692704499767082463080153147745107453973816395797318700817745304515980819744694700483747044512897496498759122950321667351499904990473019329145868927908394515557648465962753519384632914821815036784834870451922139395230906285459957117021145177097748689172658382542906783710699041077363967483575240566668620620577202320343385719221515615293031340709807575742420177210760845592673496055707394678525444837724737672027820925811658352631944103508461847719252557475420854962337831107804300921638786365857961825199512187744427546083051370116131063635123044752300907840675615960348044953356951036881693311666614212924414493866387499375412445147450984298922993054971875487847270210672659158395653539124042671161872192520054672897972348540759661261424514075847118018060059218240864056722943679275958071066690228992720119147561850024534360359683643382651840296722802192590710062229585828166019236280490287089063767200268663809414777039964921926330366296644588002311714951442602316266829799634372068857872697315056121728561011905813469554760027096769646013861132194755393160272091054913087604197061642385660286376984752592987848259484389724753992985828707035850610012733623948297827142008503984057006206298830073821084407170871943699175659446278703310278326941101540726486756908307044159580803712809252487088786025301856975025440245659588570698024230247649454227167898436768519598878865894918252593637940658951676033736402870116467886056489394769466959277176992708881386184812512628943411859375357530942944477717657225437026119345292889819868623060429842975574986129874984209699615560921841110571606024019702439544522427648893282405320959857571836288143486054421956560144717591466662156310327708895006272742230205754510880452294330457413346763525489768970575092685996345592769635152395806225908620784039913856347754404429248179877746173212148035777155883332501079513847278107829242931356785262966835768810475628983986156713566455686915445196284070751779683493178406268341617440219904381548129151810932236952854381720139294580316516961650538602372842914219789893213665759383652423147209169833532237339481146285575695329502999748646277934842959300361409926109990345129206896514417014764465416058884523603903927581687970810509248464859870732690380464479012665704095438718675648922540705284709475525282415000155136252156992108797954987787295251266375639483238818702891858973313533731461450153593621105885291312568723647120438355907464467953843963333365160004343460991421555437184548868793770182108919556479284033488078710676241153133045925097125407397030594219849392906492054442672998184124804456755941416826202594526852486228056054118490329433024042875539289207162583642475585391044506340192589584385732261698963105040472121772851564357604994139839742347869834954476850087909670361676807900844822676181878070719121369131802945536985638680286491268307585978453753589042074699770398040835910273719490482251682879850787148378456691921863630897788858619021282329268353954212917445174078090581260664871003441703016119123686043054983222848553041241004179405810766608245763039906535851993999320934417213341969371303001071550877883432443108097421375174896942718563580025552622434931385494223710954663712637743793942247137782129830179288435153505348438160839568080944348091174894259192729082688568286106366264353197523057322886332130588933106170777308282570994008470391853369295360470697121759788502478000364871170282903079117362563463454498731302781470651388673492057936150967310602195609077587958469581151569630141267334125461560584933452445263952866607577585984723825876762096646347110538538708094738427920474759457575387059518397914361581886804318490403673677376696420738821019479867713271356363049452894770759431427556803807315232891673586370861317588169993963672339101796235738758274609742161366639881438686197732449586128914788902884523029045508641182146123293537477900561595923958979384093965842018648606784927795296695949710115293290819834062779901500165284121240713586200237332667197855793065082475067121010401743533718359162854747706913848663357464157012961976858105935155383093132524451527838448444749365158532776565287658707985903895564796589448621047301234405046092162022018574090744196402656045513718599751710631924003741321529774348705274922146739906988022656077110973831592705691895663234697489523819056501703115310146869235338137806998773418251151519260636549401324331047671402552160156930645786399619783855652199292063438354153518325308653695049219800903417554285439320423855421630316047445318607693145632448290575187907652683544457923850529410469111703458048960989612827273190163463463791995358889666679033966004203354590214020272528386601010278295862297292089247857686238916457624552926808183051565673997530534869133863072759099681531650750790796086691316521299025150562032170510826186702371654975714626624823303273047668661410008934382225820475531397041272289342661269771337427079929863682335306068764606463714622102044027469015847269554830449428108226562780723858732129760539927922467759258707280352394535647702255907309991513463991468651990519794992743849404531833406974753516127719936571396287174463722939322223857405257016834611243054440566573897601302848824301991818640149138061860039838154067415495542609175202416959685157775476035075504921440577189510814390522881767183236445537660170060733189896581755636138132422379796063908975909475418620773485806503560891877421980173266722989884509591285961289419367155092188128276786472285820722163040323009104179310569860106846302515091634584077009043292126806826925021157070869747704531041905819937394371012124221655309649416576231685010000878821028871899661525155648219239957466204016943428517851076001595506194433100852428976071847205389003236950256395021068184729665228675937711869641819985570360922762243165948835456214048626123645380014071410279079199869067300346831930340472971648898306321158568438678011060161731662271814263214182710105582663434440437092183518444138701040456673676969861167116399652414101859309153328394203169060262808202460712769062737651919384681601990346170218437606777829754692296085603697852624854135518748083388332612480747760936034702576029652608605105697418238938247529368825394163674592086276854508254180153849632730827129082324811904169378072190804660848182598818604604575943831433354433928861821624505510766564027734490312010932727944115665128235097438861747007741808146646384979775834556768679138441633080480211487134443621533116705083627518667642042266092080436664528977017775951407789390706031168384134705979718188324254668103028541716004772565071598882557687524315793158578967440173210531029904635744326088731970938868058204356469853336214937260404811837605591216761298185856690780897800259120300365738216678843722007480570252506581181701433253923256566108602581369985553769003047762919595167979736714026272820281298574007834668564163650158143906151758255731428609348638272734466413352023013068067484201401868484720925790858228431733606361957173062012792418159028096533267945883976134654761551602929494260495432931965177341090267744915163113839322451593304457950792330159776172938102879682695130882871358962579427049210721428130278157398678003479965321714397434950212099067679780105457289005059243509896732432348559329136775660839335844038687214377345491319076530430479093033699304928795373112503475616199379355459794295068147901641233016494254713595750791278872751692845491519040643720304258513671302549943696466346893739276224776419289728609979674340819474313876029322097985167776596894470656227007152320590782949892367180898987830050424942575333479572416295855267209347582474122884889469601335832024162823137036164564804338104927791178647306366036344292852168000630776992302069261221489108546858521535477943092908353978945637192816538680216618755719609236484415540152805552891872970003961918537749007439735500805892598302614813911278955261564346948642258680826438288244960529446058239566577704606026831483661025434098125560005826374065832445799824030481504526427005644621379851701340416692133308653433503385523944918508166933460076670479842944502160224201738123639687696002425351374466401524235826189409594063468701751361653234471777887813489840313656851694566426473653917335917074612028428700943973287003714514845666765698662954669075062030165562475921802257456267378828543287700290272861694581896840232673538853786071824797869360808991055701194481566828585058797653468481786150221462911758613146599817670209061800911654928827404129328081633501987664716147553515795328031434859858094899992014060138861948998200132165933083289461952768006222081858794103503873118176127311497064627753091948546958446944175719203997574618654873738037003269361924887738306572162010204539641582142433730635574034852759542198181518549867377891672285503558251959815015717680806183685297452287645280995357150981943195020773751652515667964211732389732000935631200908204809034105502514995057144753886259769482671937168435767674545179614397676356963742292897221379829127823168524686677721520273547235510701557170091232523510147609563449418790411510204818818635287106471427414677231043071556807032009184847163931764081703529323867350205921289537185817134479125320541767755014704373525824377532727531149683242254705106911455169481093547133754621714197955384183319575378969970903457592853212859887052824489458557124973180299026218780496055287138807213176596208610224575706682493482277091654674377158826565632234350552379290362391255417706251075490746799930625289000721808754864226383140631169726713417382883947443869265145192823823685478876415546580881462261945243721114609308912628743706219834687356020853423128074810621850641005884356372260673998178310109271922367682864854721826105363535102422011092677947700820470328276293242516691189939011199832214684450639850550780702503147047600371638700616030089079666719201889925116375343183451292316109524456034511242640315025098564867491868936278302622605311020662866199347454555769546968085115068829712311019895023771581213192955400552081437949428843415436234922127556786431878971259630374473181285319837989745899633414216360834908762194744890631645760564633990888793921166083359978350305525043094146208818992969187184130888429697252620213986224274463558219157434986593753998914302117713545916057956469200781107015504342913342269175442607835249756847298359384788185063664201560417429455187369833312902286491364793574332698812049434831512365775646905671590332632084339535628956205957351866134549257732915536690312606854573261740167251307747454437400524867575757356488627327794849116047573109827706085773096210290017734221885680248969017350708538255719480890905903579416931025887325205179805766314792775664072171527464626804354964787186552376636810350503851180223628690110409052517291180963531143286967200480373602062224702743586322151706479724753482323098786062991247827912236333272245359859028707065863883624361780779701784006972957519409631252119878792202289143930735004252400758467741126375313112947776733604976476816214631085828011233685046741577767069390173151807087775635947782708468329031182738599193090347922347740722325939778356566586451449966170437144973718688820048971775654746762571175032281430829869201420448381924059240873389236651570188162481562447650723228706733263084715266550922329521658394394207880522199836406498508184933489641970991226585593775837816027763494188605276866652009325442148347206248774842235778058898353308436189767755551455851203337370223264243739882952146786448400455926548123031744270536447653118296372699497470445527703282236257410006734036079373294453584949553056027103131578320392102849296175486413674281268812948152125611233477398582373268486353881838849504197852516003190445094430638852446981255167353388226804635867649146760714956076604622824357416028724496236669120878693083004818159427654937936269341628056744522745650348647003157018793030640275559261203468151446207275359834342724441109345770329964436903289172643561079073456821690056826234093266723777872207730213306229524942673147055761818897567242626109216878254682653505464809703474684813029548088737050539051807059522775788568411818071297730575638354640043611396453660944572868095042240347490918032885388549284097991324818581215704170934138716656849496954645157569752581670509877649186212367725944930620497831534093861045822859409687104842470825507310563683813015852428857737884403519525557473959130973484566445824231275202344604623850693257092378630494443319080179886496628443372687911886570236917105729571402420548605593496085912997622442325431673830927959822498741243253964877235769379450902651369550770259316935559133491763261712548311832783655630043531714075772552759551933133957360470109535448977854526484822815871546463702861781184548622207357480589398021472964500561613139422654128404867657845460403029124015001520704792225230076013009709161176826982561632464976457808159566212690094218325199334119468910459412260178952500247052376911763480913189106289948145132087799824681976353010940208007420655260109572181014854678304696580009002925910881194647038798209461231068218160294848802704439067243783540197675576018286444780969068465330031454279607444964295265462649045518575955650100099143934945777825322518702498977121588886802031452838850118110948112480733446438759291169269367199203675139979808792968599450103613723634986642950585961214064246367169127347983014813470764273428135648512938043200127209533174211702762687400070534630426305367049249898431047593864643076564188386273382343504645568665708518175679713904953071672588647639048527188091221260797754457035444627778698068639215025258429682303563006323663807109208786732951979404694029684386284784841434019789469194797830655727301873429325857327195710831733283317233308301355946032380851736543976719951739600421036866924633702948745114651003897397264917131104272002078543007013814691542297305370806007447066544439221237301821937655889834425300540567460500517222547997712163934992734575887931160682525676926665027002119581355474424353955349228910619936880484093689186003984172867819762948441748526297781366542039622977441453230150033929348489962330224533399118444176551954322718056751990777983538895012044611302842748952010282996357712699782888682582573899906431636693426940194984541874335521218332044074193028519777497358265937640607259961714212514133141581740816793345492262558037367541814560801508501193076578958086429544648191525065300261982827753285740247045198047576804189168881594025169206489339912008432301787030331353870971773109038576921055052894880094431133008860432774805581202667935255317638504353584768725418009279287703622396224892121471172658718296400753476205029212521933512162992808496189460884929021264420115872600410956781164166289421610195399040230531101035591237417364932480393152181138978240889180337014900665752374935714994673351410582583432774373039034774803659288185209042026968359545149541118186048864866947966701158752385140365382880139259258047427733769475785823954257750284764578300045692001800716621182754442796474963282668642803439404871646422503176297336073868649800326877004130623322921639070530312434887192786008614297645668667433814497942765547983524939988255214707446638646300565647757128086136117080495859096636399131034824449772832909519172120609429448703516446071732697096056073861926571569359668119593366477883596717768914670780063574826996440329858551278553318865479244901400128299419740106296453703628652963327496539774068608503951964154682870883632796593601771097257704402462200749740049310076697447031729030647903333176051889283680307684970435374479885000176839296159885684770839814797822568172414777399138843431064545127581308714140329278983139372042659774333578214803338113340615404042033927383489923321887959744212035013005411848810813670244035222752301984598728701348958585397791693588647686110980029555344301554329243943045324673266165381577350307694063073957754105264818379072638648872393653822127508172173629318297670004878926031385347769536863851884354429282760604662494346033185096697774630515895376682467436481133030405754599515357920554979837606744580967563910304820686007857974395398536267262227933229642057399271812542079726424471844414767953239365467298608655722818275221836703855236136948002837348526499089648496112155510557371715535681671287126251010921243878400396374652665734983896046478688396155231286460807726967325493289887668083711649977639231066949420202438371130488246231260228371852109705609616090387142661488015992988755539849727480367118170048818468858529495354693338457122055979191253616515908773900639693824217203259118278236661077737845724600679166271623470800494547585384414879514723856432057662974414894369566290035702744212204325868688953682189686149811584105410080983797986422728875987046088775917610961719683291954410541928589423331622547415962728053632608113514898626300836669530256093169146972107144148850283928219756451219167030482154265904110790011925176028906161969430519919644430131187011431848214121610372208682077880817460991248826290893636909390351530441410013640665917007136330175740739711525448604185761849779598166943459956377816125187345515226577961114976135292986154577093483095951190606326421400350373613358755455930261616665527745851194622238248820323140021549608368064312366928539470141406669612721106309489042582008730066773375938759787748839814295291769368794292820911199358581329194309008667074233456382945306664477378993576989566787851295609561036921321132169626235488660237097257893729260606475042549196799054559467249513121992706870315066384752946226342367816753485591215687751609394127609569366093195535554758324479366720596037092304963556001439974254969596200372873286999058502516008844359194000383873542805766702258575539809363125252712965614823610073365218103586986005169762480243225251456431425951122684530548509746037539660820997435184988640114525141937008863834164838787152033234685624744949724761019258041738577898362881222779374005884561249602218326305593699253254518892117897035078957991804298430050346132715123215531595722605315569068615705378715559844460861656505617524704429621483277294007256154077347215534459539780779829943802074113668650339202235833844705849937223520371741664791562692239569392892043795326160354488172469631052727497254098649295803145078926484488621193704448625094363891570097782874809691927801038896755202059429435003672353545191691668168002362955340865812862197852229355021895348292683109850827394725988573182043949018769865782014098824922542395012266271628102792111965867902215103834227957206062524199733397463409855645308822489013474173219698963579216416338384703843467732791116991509082373209459508879716881355919194724740584067586122470806567208553263495390664971618894367559268440222514559659585430640624837495092100770234040978405462707484397288662105326106496639994823713942249468528142200961032364394300858217318453225680179036021826062335719308030367157295803596748745127555816961440526018254938878864773457166601046609102811613195420428304570418651261367637957303596612543213040702192084225134346809644228256718540199871794148717595164630583358181889795968663474757512702826937502067029835579774399335603890747014817082569108190435410817479050323120726885839417546723393988036502396815722321302289198516652033205164217866441592732605587535803646751711561311004584955866797821082337539040807390939789595762741492190880440146376395061102505066771500131980164667429784681796141769952598243068904654832043486554627069452593401380841827984484196463165762747604316778419298635500834717246343859865527389018214309084941436387928897236485189209303075000741287000322886946783078338788887501612510259687404254989809352738583633429709592381549480474714228167564948606061369824200818738034409771123437920206503874179491147086230598831543911723822863156705138674344544522987060033613913342658189886821265126970308407748030773130233165690257637597748632142216799628832324526940646069415691713845915962091109676486821362616066474190350029691181665235853976035999416306161456349500468189348256250962215849914834610034007077882991248513499156809884964599527432889177758058190852216513784600228204990481735370590820789317628829047765030717738028955750687646968054487611159811366888894410891393458154285904264885514510659540467011979253415877259927168132062392799433971252388217902931361233931643531738270920537210375658756292603482623064890451634976590092744069321317954764146742300435974936360084720309922230029926884055742525832105344076518592498138002954866582187254160498685629773790712060187454141015261292038694373737254084832658406091592287758385687416160496739957187854381148918071933796384698509182359220475449083202032827075401749303386473346008576220767309267090967812879584133583791469107758528015418805556039791020086217601037441990923101624923748858939525273641073692189836264899815541496366975825060570852857814621280815007529328580117258161582559453634117619189558866652384211368554289789068892022288531654872237935828072202233411037911501690694414582238511533944960783769434917559696681285488805207508770351730635092718634994067136864631093011214639849889183777292426478424430348995045112868086990621230170375729818963882928721962869657889344438157142754970253526640039507319492816481951212446126193076627057307405035261161564954147526212755946784613070558238029131122841602053824266296298570822817797923053194740997826461329135762199861361660885508491625423190572746631945142057412906469619807069705102874547766915187376616541924503351401496903651051313134994555173528132161904020685743412681210483206678582405632917084504237635038088256745062249750936877248242811548613098268274475151066365113118944045894970724835320801065621532510231885363306805537879056083582665693013112119572327715216328784846628226133776607828023783645153244560666931711303271611932236624789695153579767746458222412688626861602012597566856826521511344976171556276751937893977587792646112140607275048277183598338134363320719358947035545302455174031085169603678982372687962289808102691817485616536284130714650849570023152043794161521173652665284084052458602231871871023021808654360363348169210477938917537173757564006488406969047141649207522322466305413103212648240609977995920196580695155498373518458540382344680385646649756544019225160425740541208763309807633442626227165678082378746566812394985562581397073630606158830001081991358422614626253983708785826455306426631919916141963558394179795067936666373543804386497826220603238322592204838594877794497365030315008164739909831729453666504440592676037912555346930943489831977980859278730687811181140238821861813856222314102793597191933216948374033216725017062783583558932305107067337339642993472676742544643402788712742886457002337264332681390105918116954443244314393443406801459677324470228268461959826518161741814948899760876472461331175357133759464505409612223846537555532298551229603622817914486330199855841050823372485076489077991095377980790154884918508171083401342077273627229970620520339978351978865707694172422991014795414346639277965237854912815650114648398752922107285509641950552898155896472585757958593224523884964464632964601969807201216512648794109149393032173428412668758719244191645667234763730830630437520670150709997110946447676362847106626667671775974206004288243541888174912429715666378841229144135247631825841306026310034961944777786565506820786806540395043252835866346439852664310530530877473168951386768229630835686361027664073267619144185591077222312851624874404257887680071494021089341321888572082423583252090747608755070336848087347707359551285508633041293049194782226772426807831978704299386487726817378566890535809992017114729741304799744663566669949543397148498965018491700883165118732895131051074870946274678644683899921452078899828931273729330942472465866401443670205716501216636314216257882943452712991104756054848355115730926036084032612188652790341116377102822940071371438923549138868949040479938472060362087094030570522992806601909551907134893509527974803176024044006340255325589032822709960612072207543855827954138977511668287392723826243813072840760623343632638173814351928324043378047146916889774548382615279241482456828872973336775504200508846481375449090704397725681796719427353819494205342743524855511273461362538230811856874313701754798537888376481062962269986365423834594324360901166289729680979158382179816451341285965959779753045428885731528922872417977605659038378406788160989774599441985988257626364445469371404839153873093922026535090491180728207582862611657295133971174542593133403248878100069457416723849765082133926344987221625504257248551881331105219464670707284442971063475966629559563002251636710774568651716081143178038203613373590831803237313296123259643134316835764318343347123208322662996922858842397196202677309631508575549698304234412892644820286118076698037933669389462319444162152575988988889620201547395366578599143306690920146394557275087582654377424035327791228803733847245251864485451308497352821640931577254694834404427063019458381793418585056715444023345526019356099902837678171935867446730697352435163802386085520346192301631299019042412137126849481920393491739124982988686910612064308670315095958645421599179689147909202063077590344388385946598684143371262478726087913324029324221220766179607176828538053451917755266762439251078881300112902435748932955236795931779779806389947834820994692957523869231293528342859619385822203033871068702870430161916832412870005335022111347718357261561443948753080932933715161631684632410834268646847684657750994740329388802987496656118130582112400003886885115085538659743961359098463429113929891030516423199380598914417223178046225653063550350551371900710223081721991485663764845475693180363726136381395160544203109029768129073430614026192449849323749553054796167263538848493359309600004129026360787058289761681954227122909735871522356334156457021431880364839402014173801161959664724082215747212677907727552395049034485510006549202791423808970452308511525550086103017702440422667522720181379608137318546194385293068901049734648545431202023521246963821648449389645980882295934660789446128755770791268465788157150992395775164617518853322813272506032733713678407500230833933997698405307085201454646143859872573749911759375124678668140637561636184527164127608214311307177078257114341985478414181808242188275327688840485402884804264998871397174665944153980802731170152523189688012307882913507369677264940881108964528081262674804002797835406122986509894989056190090219580137876078063421888479242622298469459103969558789423820898698276570774662530251530999989790931596589536396751056878973428352758312652579886936221411795724748038407118628783045778297153655050429758837857357425102479960362417273088904357181416443474878128858643686023262420739152587122447192259535949168239035236870074374269203543602253575662607007886405918030693356830976044368077187311088829389228310014068749046394692821245895982464465993755939829586651002126071825924287210105537673724217255969305616115332778231266771253683685989521213983867412864873021987494107937876876751855166865435228584716527043206593342328083449129526220939030812500416077811023466663516582590827289825016479903997737472368794564671934801741937349414875954933510468699443198409386279587345906376851099691837415254228949624647622304289929656357912197873184119312361454775626856533429451260715219391457257322198984151917191637861708018922004214323163474878081493434341284119976316005872794776786400533703637510899073082957024776044477587414673763018760928148887598802393562924802436175541184333027872545199228727976164168509186849145407702409649530803303890145647624012513006226273712414304919606304345957723549983028731565115176249396327976645120762130045607982205869746254984275504186841781924251445147513987741320116483845459086395741283482256881391020101231568503265182408532166927391068818110933617688713412688060087996440863984788728822628188405445348038589776670270179602471738807372946463722041667583595643406177390260707594333239409053061708318882410314678919160472389603376014221035519975559144082355930442164055203668917672773256986539863375655687767327871532907250387106462078203993509316725134570181191701331281906876413109628966644195862054143642416544865551523676449451612090925565129062969323137679793181973500314705168999418782100423338879339768028167834801528873175832315312875735844623612245935150419675866740725999872140842407752088090347355761174609933192981353039120900767662687584939723652035013775174122600625396343238423075590928490943720242474282634814339412328584599557086221182331657531820451305518226759193441582847633571834759803420979371626719345464462844786564783132026441069548891893970317148895211745872284083734670050078888474978024194538029309522766034329302825996329411580963852070108802170626439157123999977119489926241861101623238941267691424118272426660126334496470656210541228484048561698844424684312754168392090138484335287073068790946208576675714055642448483649665046371969047886333291904716178061557594589658801222168730258795777255675178778509511986446843825364107344329336034484821685046027464457840078881761727564662016232260692572602998751523621611584065552661283966958045982218360831647197015051415615424210782580333236509471271806648057097315068062605726105982564878459255083754146252266851653622579564265886059580315555138826230251398581362789687142189305397368396915453637074830542836308728196323500002609245995153739440517202883780107887531173692623235363214555497624863736439278849378211732134581807942017818711521538008250883827577093178423717329744607851701154208829212211713465257941267385742243188682482579325479277451327607316879907245268898437248638552786168306694976773109841234255689763148633490750214752501417926779977472911849627198018237180705608862474964824807601856212739132688593410302328433603042435890513806823886104410832551435620828555021017553991618776735398461904797388412203625944793546108925082751186378129245681640585177356807530287651969646193341249665371396309734672048218684699526380193303492841163672281753961659911845714288394709750525328617124908138726377317727497979542561317958334328710084409512899779101107293575976885552863923952654946606182564425472761813628736841631371977148767063411309505028423711132670014685266688539753975474381401260880016123399383301108882856525266030075753007354488143669532987599042639154283958918772220667861121725744189996736077140111376425410980087174987263918620552215402681246899948783485622314120331466982650147190490558898458476795648077365041311830731454082616113752333370960601828110136011115308043841298855826347488880358691787496389502755898316056233007387549345536071579244420019017272444282678719045936718540890364288160769082369576601257310583036690566269544779110814614769786118435006140533705450958026665681428931363194078447702461045480714200539236640720440323842277201265300640062327451761707706833980000635260860848504818029572079124132876410245985927368853391854050281065967387339767175922645434729057452351878620154066366106633172348056244377041583242333353379386997747545869777478815259075451691322943127997947890937677428649793880843775365193844130636263929847877021869811193895670575678638115212009154115715029463012461488854998837769503329262844484612796955550325206945878952236993952236468750041026707399615436939896261028686460062742010824853321573209011469905026244069895341947130661510939210934571715032675763569326336449981195366659216661585041763700249433445615283736736083091604737138722390361677464716004090874878036133483518619785016277571892147143709094029159055874649687762807051384843210852496791387954565771329781932933820273669768983147322491802352184567464612182367387324577003705747761898546433488386281336129653084811465850633127095252448836925960689939962284814362284381849212823944442417037596456477720387656824051101002600028222240081849029619473664934913399972394282121705289370346551967940718096811120326143960523435851528598451144163105703545762681058935844476084022344210967934064826586748407575494480557695380286207343830818666975407228862412361533713824241116576644278690048736950829082563271046644090704062865232723645991863269427240172277741412018323525491087716192598155954666770769718279440572396036565321662935930573493838585521067614488982039799384446628072912878884358883466754539451755012774023517189497192037652388159088250449511077590889621657876018470928665359149668996915462626928795226921575214051852118398983432209324691586894820204609798935860132209934323334256585719383566125153854066216905856862420646636512308791219042555577165510244727790295970751960593251050165085449499803085910242879457979470123782741412333274130476738916584129539302555155938771959672500660336977049852966845427379974192387827072504036587243569920497700874505365831055033830146434904230489969827430105574682997421058359565102327894846371160838276316215030458423475057924545279576591070951273793603286411830379901735752657920864352805285795568356546769298391103314478606568408431384899414707538674037264454435401402683216566395252054046137311473862147627658766045331488100767691198368535436368482166824345928481155386336930696359078164114140473297170027432649130121312708584671471144521788795285449593559822784139850686227982353610156007215545543731796818004321642122551104076155542983672643820541194073731180625034725753009689092292185978585911983977851732101056919622250180005219531420566534664486260571334367259382940758633361873114047037029294053735250736992898059129278771261130493394436896153906701357608948992787774096578702028641156713574807601572502960675665876609824289743441421971427694200248618320301336595817772226308066076615012709843175722881851171018986282898592679200589811105597276893990131729274467115222315407743526879765478956138357459791817835315625082150479830889235821862560348954208597493431901616128438376265356854107994155765060628629329624219087004777299121743240987207113214857560146896972364197731516192584027138160123121512358899590721968386970342069373339166829288890540649919756558337580233333347893794721063299895807942850087391723043488827936228450156976068720923692657944821993340073859986206784586743004652561093175838843530407250436716357149872529518608619289433800302611717002006632455135355068645942669791083710583689498404970434372129484622342939908294006607607668593037313533767390442541438337911979906532733905313671032128540056625525433341591016568201003264513188966721148753763375451887567093068665297436827977437726948040112004559176058268674318286063032602449177570043316587351093232173120138041813511084010090154007186909484489225700749665374432239283572826489257470827952444325724244223519013741728656111613648399937979897683545740247559621687643673760774885591993329549904769437543919797484967767527546140614287043786904543072638930700635263580436293179543872290615212111820998441856515713837814166080128319122851658376261299957426575252191373132640876175748677662632063020906511222469495741169603285607284720020604859554657053434925493208531818585078604983563196804146364567641962418256895364467608057258778134023254662305158841558084464318483867187854774467933673607271320248244585591848678513220414088389201925307261050212039981894114431402627669870220349035496315221927453720875886411439415543041460231024360207802776699482954319762843184396580336451342013287387340886386193357193909006490568414986171902487175355585386354527419433417235592069204592196830575137522483240329974456844431785823572302448446997268483035979911833845649139848982670844397205139678411813225680521036944340650183325904114695979954352688554126557934818758495487993331019866276037388162469454951554400440691068661941024849878715653306388840673497504126480501426329444653022165323965099236740199131558248135249302715690286713301316923533218736262615627198120114604445937334481665258222434983180922955707150509893006832837071407871613034560543057069739635258635789962142047502846457019308878799444832756809222594196718776959116896655408379245948226814958126641666036399330058837062604541024607459576449312014084109077355729930510524859092521171210040071723328782868099294527425774255408923505824128507104251458010604567596900222162422239011623102453504508522542621395203304199698978265109724221028255976910028868270641150990248916798742295878219186306715682940692336315830652809134922210873783944455865378472724951696249227336858932087220343296424608646398327727549492308288687072609941100380572650697533365434342228107941654066378655188681150457159454631871643124024777172560721420315419427223207878660192856044257770202545808463453312687608059381049777045147316037784164413344960183215150655820428358674131881299000134596097688382949674353444388158785527627218512154200023251316364563399502664767288638949110890602402081735009016619864259726290010687495678271750480146577039064608117318388525842078623940718087752209123116878007274847082400779338238174309188167868984049390620911307912030263281158023867923816183845881224207886103781411895541501520847847512495883062741730746745927363461926585979032796179422245420725599328395419987204355231652544556605798373369676980558871231455751281636829739991045514576469299194762204319314465861789763946566853637780599958964926611866095507741028341840355998853766707559276321228884195665609451612337464916883951184476911127685490748330330821993438622398979597494889550573909918379267873348743041748547216683448338474556907860218706637666359243650985901825252480683879630304507784441908154771752760097507590967136410918590347303283432107217142536343742856040302881969249431530157008591732985175335849771246676740060570498769474996343804730755934123227327076751171534209523870514872706479199674667649128130003963076708606840852096423162990220274630507186339508349551136343511730152054516286691997132557403385227726309382771657071139354288516333839361916692596102399822214790707329893008876049327298808764127282521110486069437325332901834046104414278399113699886743183453507740250926656847306962475020079541776597952632345249110857365454452671070396278624013549343141613727446460465566122053190981743632746275828983109247390056573237797908085593706623712955617602766621709181120190847592224637195366266771074130618679296649395878089815720122728132388910688027946255342454146967836311507599830480329633147640318479173822603560422503796247326028596957502181670912068450874613436255076780255369535050504356925512831185739618348000691180665505670739363425207510736681032138710063518279523840185233079520730686591140188606200256786730664343834539506921073845095802300255591235228764183191112419905062495384358921520873832834994667430490047789077006968708302069705395914231110443520242866704663183982655798512998991434444595483658774107737379582491479420538575928182454079504899745404660662630407621454713986443592692280788320306503509809747575990289995394460763528350650577451564231178853119412394977186510917293199798756203628327999218732361923041308930793724447959190317184801130994067084594636008018556086279207731201695761220315288696917881143650947196672052280760295633755726593209009397672993999318793643840530378336626309311144299657311574118309895670367748491399260171797839430990641232613869862089239189941694288928919167813234872110081661326537343121068261145908968050022952622952958246858416176562701959026867012267171267021317153834837565070014364745242352005168982234810360831608062690334919375602757259054437581388822709034040065213010344523313171918091647514875401539694152260464508262343366868208523245180778493432557900426030999530746417300444188227562573022534619837779119541882563532210844418641743659296425595935603947685188681146551038591042440835398962104620855553281551154483771547449219552722100913657625699222881798281295831550675812143093759684265368192064988052216304653910870620369785903796956748567908637771734089284134530772810903068352982429139881675326513081028088606924014272610947277163321982859141455125524678353272523612971002565829878381852513679803487787658882707592100187205747017519693211508764226144758631970970793052951444609902313668446504119673852230122999616807192303062996957557291577516649948696701259887265159145842336010102180560097728605079262164417995697008187754903459978928756956850817236362781531422851567971846653546119485281489383197313573700622494588430521405663671232810025451202501368820009611021925919297422068300750408768002206983191368457185965495436172100343164450304225658554541300190339552643130927106262036229637704942117325785829634677569007773522364360817465833379038904506934614312292380304120591990289918978529735866795380883575263075735796570727992315945146748616615563815159499377590274991744039217269541215288381766239107148727392350687190570380934442920654902201093692031644420343671539395188612699895361323160356610849135094291769672774284181965830501152906821887317138548507491417665636448868092040233855792497733193091036860182548673204330743079870256008244023030742148393556517001964809243653654089110252421418582605384318801612868781652408845515994507993182263246459276288624464290475384233574539027384089249112499373119561308860922366688558418671470201406993822480888944621817460745791918978998272550013399820766250846722768497441344622799919652591611856149270895774617613142868719807456449488252411636507776816453946997246616345629138470832812404692375174656469504871786797403832754807816103558210646499609547937074203187836683157549790533067161690605640741655197030720884157978797986885150636261162265936535349106535753602003177090252524068867265198630131527435329195171995623100633862274826065171955536605389743128011517485959230118778290676062105270982133735557534015731072796586737964224942393946661095810405725017567345614924658824761749722705967535600853528090416052333308357383320885736763801258354537344121995845913761118866932301829655919197675724663065148458414762175014036162573799274986848493104030748520854824927671789227147080880428199838436179704844087196914336334392402261282805609884049575540725797428062951668492130706620623700586241110218333089364756015349512365590099574936775883759172945691740495821569855187109609409149021469264769685728034565945811753114427357369622556407400879179590604838624145708091886821551438137802413303593818173033301334003542527346142464879011956039918397312011981852845994250411102445262308043909576498817554854167745342875455002129185794733050045868370089470883874556040189471997198073574061867847414769473660460394861858094724951717071581223938634555861444159533614563866393717214235105257266551954434794084485990069838569523399387138656424546804612024764574887576976792415011151089625965004069568013161052610723825826673962876462483889486132205151887036839086195088971119331153170019414784071146089934496087996497898793569449927947236564814007587252954677225069962364493259376952015752087442583876697365055609811958182580938539649734679495880996243285061200089677825153453370763528375108959677468182802649982888318126042171139181925222606530119915260080684266745736330018006979250869237991487605735515379704601862639360324486322433203133324876838138813882884913697903714969286996147590751760421412701310074906201536349239461376010337879461682481525522777481637856149688314740980333262894021669601768403554514047497827868490961750697040096556989258473050078814800420853008337511432264438285042454345027627916955826980907406713800527968144201088651660608323414108290737789124273134270149477686226116322645097866818431373416362901283695079593557233080550615691088510522619728242527597461202974825779788456019605336454585198721881730849388952050435035863627806668722773197912851352644365170469731047923066431386188940651321610744094618416283273455543033900210050297062730318009331576727832550316540762343372199397316368603895610124044347525831445732294711106934578065206534721943715569897662651149602119330904602855111953170639403495781177073020970540107462358352734949517824051381492165070133746267634081383917445130490092588118938226622403747325464821407694643690085214501475293260608401990799487363305990740382060433537091886347396276049261245069253645177359450785776508947180490839635288960497601068944259759282687055175962089268474826945146972130235697657089631030023861194645177140422230908414160520966828649277631994188992511122592190451430633873957448804450465225382917748600885942849149858645549277938025139756639486924042179859520261059688434342414098095430439813709647818864675320127245314556387475109092810939107504107113947702450745880118868118509123466853677613540349464294964022893352080209684733995287080952804957181455788503654330310410625799513270796302180001870018485743544633644490365820624278545270310133567341382567087233193702230619527768144733187977393325876960587234744374090528426495234913139972807546621464764844406143274432818644565625982570261558102669011766613444387387940809232202591594116380705103787006594519974793385821013799348925119218783317035737034124079205810488725007031512675639444775993551433832717180694735020222411911939043694747833158217667398764862379368369383508444643537522569545832761906534167835968617619338187631351101209267222285213542180911984680169968238400869205938819522023450142731194754449684586200256444274083186814416567072816163515381605364035312137054627922552041014244731826052305608201564055922366298175305812682508031975634329532286600709254929849326429872712641408605912683868635750635486143257360502041079642411018011302489866098411146306022204909265543817565364926159493033501535404688407894374239186869532087156103036703390010139691792933586475186199122959642668391185294597269738779431570084665617311351108050389257427238445934271208984087813230115718067379591086121818607184856860790585251342657561573959575759955609487508163528117583643977222222662702940352612441274054181695619062311746806281059946744528748849728070529875456819147417260139731780906062412967765545047157385186919652534343620427758834221304900310682601227845810846954249163604108945753628402951731934131248770231344699564556348180551657459775772995802591786642336214773903725389356458253143045771081999677555302218116141584927911361775851548968057645431847237028095075685215791168501629792843838209123722485958169664125116030554804519371760844724747364067289543500078551981709399984294443186934873581536603119562993975239554021683183015337001888273553342380971539879460353550576511598004672062060163096485665945383471422313416328952798825706548098316360517518948977803332776042028727975849042396927116076294934405830024487777212527701667313483344840072805675032124686567703853478594003754503671265354829029655980957416045941710282823114699395910475417238824280429847952373144506495428890149720359993045665059722550122414753791374845879019704361700433214381571434154839566817247634148700212542086923394471851838671598821449524188015272724850316559117491174272327094920002350814358676413804639089041323593914264010070678862595703090766642077468096755125643865852466435022177324242044871392160289695854987164998012651301687062748521179691480953612532421904249697907842211892206410134943242791634488103152367152131352579314667356467037447692597181547306128210854317461289419795739525041064121259285774082846031576766665785898672172048335609789806227061010523768254310528055790766864620241213795757433392764642852289129238436045288466709800787853530846319586095387024507883231962449043560247446343031042535146666223780516750820684257915219897106406385662605382477198773754953213687293543849151378569090389411398663975007999198775583549834737745727909034379887856294245830526889021708105869694320050317749584850983985382151685307828466036053742983586410781144911863138293810338302828474205383712040421120740108195397877803991952746920042568691160075151195471962099707249731509395495877191387488486994375523084495854048645192928159011839846184195643556030429073063504711330533740291264213283260257615085314974537380526481187757529158964919196962338872438558371667831928251737688960609094921332781362778830428218001484060475371853224962924297648488347194087195519026694647486841496063158279193150920593922093119121147938345378221520545986243530298891346884488892533890022003527279000920291022078761526304774077321304696926219350196308272889203919221225668931961874922381090290199097226638502815180618573571925772772379920824402935470382510708151275414887992009708986856396077053130681747504109578829347926853443094807004220450627562644590044568347759790778028554720239871479898700875209436755900553486356706877354521242003740786845801017914184400855007016001478289177003329720677435557541047837161463119676710378072611373660770445527116152093512158448406496053415557283454110798594106524778121272041873378255606133145943764675216802043758114701127155799423675169902598210250338578098118983758016600768110512771832412350608620850026294385275654652184628225636453702790605688214285543645014824645149147618871279199424201684642646411412913122033030733410169331956028504334156130307363594776688029070695456656294811677099361201322338034736536786351581318904667049535915295429435618326364757816818560072358724767158713637526145346503499957388391041362704737188317298522207289582166230794186095284100195387162516015607763858857778566955518694829113891046283628095508867149125894027799154006473448784776055217150175196270435087326334016057053554376698548409730816377603028612288667928536988284780810955911891677524426812062504896253633513454169575657355233672283055545726788078544435446776561080432580442458747341096468329734095202867736510616180812643680869437682133721849803885372227345278711035546238151806011314058230969648791496019823279225952528027762541436848974557798255763041890964894073585867623515882105275013358837522845521542424319194168892504908854365125085005157265959556266202531503202907729819535856926680745281977153810712623779977877558797944091654230286136292053935151072319975197435689056185323974843281570522782598558859105653500081816836441458453767206037768814029654653578288439815271827426095404979808437576610873282391398548686901335857921897199726246459368569250838428781554353295627411983278900724808286458651289313627965957996774333689578736250759985550940019656992137440950895301769183104564518642154479598583006085915274312566144699313383526960226784569345952417016757187540550561666032381837007729913059936872044915810614771499204229200799704473760865873048732853337742049236732466878573879091722748778587625773561796416277102092624749098680981583033841750888413987255655337785968122825577910911996192197564785334485655659958699467310554054796653050273579253951183716097585877451497613300199855579282898567601754762000545977645077035629401005695011618895852607874045485240372389646565488554309273821290374041645278556837975686032796303022877180017225305034889696759591639500927599351889326270553291656088894631354780437379904379427951676919725903784867088750941586655353660933613447526742639505460341647247155689751540971459934115664612253532674373591310136517371701591995510410116901614026940095752426552243429391440694252797891135009846990490399869141915545692978027205109501387325493228841844335974711841192193168095748638447772138061796526760123285217045693442490893699834186760937322512277333957207057998453943158662075756112111771450901708333949359425063160096951961443798594102741941189169126645894547896336854707536178094849020077450041910068778477570133395987167696205459228888287990731800395514485417915311246193675623240151162802422459018067489092978045474251877074065147599009971432252155994575789532846783599047270823064157131698348261184342655778195940843142825931440295027528029321387863601194658144613028448578468512935482480670116595479323688745491796780798246993233775700475058852432788663740749476620701067506495008860883125664522856888642662046811358657840899075841747128684290834090530266346852377263437975858191552699684112743974877929955712954411587524638435305074620869940616473593312026211559846326988517914230554080485396383725886643568231958078258252933756016383690922053803515053636919579325872560217775363188319170689180314597210595903130864478425239059643707309578524265051771391815966753230988893257255547659573163266395801588999301200910879246916334029755471501399160529343103311876491523326619505783031396646605839561048134089314077528423848885652767171513104528528680806751525570220593999291964070929939518911103445616194200246048102990753459099580442624982725843195963680436442094405282255327547350031362253069753468089821134778804315444186002880585006996653262039765403523251256217290971898861249017159534552707833054711631838279610153539598736105094447823494707833064710797275775757998390692547534257047019850474462562077396943786546574829614912877045401071487326020520864997570554256555766683669044705304595250783924362462507180657406704735370371455039176633274590977419715034584556672736891498581523002952886985778394865994343792239387813476944228684274575037330219518992584247095942696544193738227873233217224772417318267786093131490598215080667371236091231192337599563213244518309713273747888996105240404379442600810710330991546859833095299368625732853631912018684431562085517028468280114841565370408677179880323245424218965937304717587855338869194027742666079418477539959014937861380543740146519472186584622348901646731461674944888345298015744666852154445347591278114187361691583226594958192049501500311204586947406548761734140563738514056204183773292446678989605953134511382295975330922978643109774873456578655440016705999898114530341940569579516251542863990962053455612083079484857179934867913020317679682677302406947617993691471205202953767076223851592441563284217847936555416783007900088978737719859841248638474121604602144877751089272800678888792775712503768980339477387226181109427568529368863252282832674185488999268348903001094081720584017558959341934591356159934345005019755808318828428804939012526325750855313786531534490281961956625827418838311003342652397260844953086681984329563088459986480827844777618738830982005860864896485796099456916500980990456160313794530863152553741178006600199629521977659848348341089395854762213375036395749301638361427073169266895774218330972814976302150950504354470326202068241109158174275564455330883269070856048889994486395652122419299677367605444290179086942954470356698247728464263593828290134973724244521544958766522508341248815321628971028658753185347226366361733956156982299724539402558462869436316449345363526926238856136068247194037105001654907224042546983411942758073302496980524266035925252615809422517323478426039761020016501402814951727626681629445277397565076652863827130422501250223428963388352921010724650256440886160443457013063832574513019803228864096164057212420859062567920540369183359237463150180332590450227218104691389597718395610149654553362097988731844886898623667015529062582744963117605472384647762904296916345344786454049712344281947608269257075833741229520699997655120140451410742697975933705348619610339219322843907699332240669741904066573867008814477137323637057174063340523547020406940379267257905548093179240114618005556481998601755637006191260392264447277328263720403235835508876298186578107888459054462702015693734975096777852245118708484570714071835922469707585414630999500067478618244170600357763115387878817841246685863677162691777352745214966670512784981863932987563541554910408742919085931258171655171768202722548796408483086947721889543727098193858880660649421557526951219987422548855619969155959431320534094308141185224191394556586131148059531097772442148414732131484634387968813078043232430811382070099645008441597507657160043267094433979355618686064812286914138980741035881635886660818382549303694709088523059855087564843755456390834764488273757947817812935571797717929720269931425461916425468168643852723213803481807158681487131905928407246988264841674229729279469744061400555023811877934616739434468451378440619105797371740040110722516562117440990601768748100143889325055831711725622636417134009516138656881963691054590212143619076435411544237373291214310316139582295369962867056666375048003937264515272683767666186397757452082398856965109641000238112203716383708587754531908015182036649155932302148743136011185330412790404325100692549051757124003686287708650569436413752846633868755101582762891191115752864560502667482596939521411986536346575505349486908324634885662438640593628799854006764132859219832591090597205257309101345209958070822934056619226535566890677264948986636468025782081036835470583538761353675301338266327859636907280668884160608036269388377259063312249318571761698211283119640884990391185845380108591848895076540257433544408965247759802635895700336136890855547283059937924475345784112192984530531528486780416247856722940648945265880269235682821243147391959905802462163607313272222944784962434071054541299019514000114842927289530118925638353680501210777432342841662091412977060246044475273588892291968685890311782948342984662583005505775236015573764154501503101291489951478066730039861776760706655845990926152580640011009782465598678871846981711083651568108685652156308672339020730324161831181121644488137136102876623001277141422948496007508902768714350693567521206658464386691903538954119757880063061691382046933909191358553937074077829033938207485173133102190321675423945310902404186900056378856985342995507970416520791893781933847836256085007898894588018127992385383292552664295922536233444693162249822258242289013892603468609314352829787480632512799197146741329457321199475443340678893749839988361759139044622373057312606410639202905365769637364757596751110794193566403026900207383817926705693625105688300256532155282283256926259801036821607256045806604319928963672993082306383260197735846953338105194750844112813986254434900712970742712575984351189337004411230005158904344085158236063579900506887605526608097929275135124170221708362204331424290903740050893345934485750491428377960474154495976302578459484793069103501562918485223914916899235445219535612059369724360041874058593608257761100653251357124869147719731997175461513035564336874820383884805959541499779183008811996393040584539088072630068167021829140038318555144686080527997577721338150101781749825586659828543763949668767809356244706600454228028674591722395187622639996944469600553576377476038924960571673264893293839757052347858564548892791907970617101193780658542141013047482593115480776872326829987839651841829618261641087905667545708790720707963758979131426332142590575623037822256879844468180825265798869944334098752680165968809319393291743622072513161672890771919757881854761093167501266737683205457999722173688497385136635251374378154109046072217842352964721303162956111547739800344100987994719098683031926073672759417177832449360233634067945355316468899180219715815540544202123085238630881519484783405191255461940686300274427918811738923953788863985458632913524205903782630146714600772854302692357092244251780815841993667389597833045804352227215697870644221303304644015535087514788206059786002642098900313330945994366451088957032258082480267549682866874418561347720841038141352428954585707399801618218581164791053435105464650610058075170799059994312730559708791281618463877230621233611890245134805421999515039203316406478308749665310471075113564283117544234626917152620318630889982557729760725809440611765252009850453568140067855906818086022722427396594675169548880878289834999778274848576344727243038043035674161256171734175876543731126506589459334855079651689249557834765603955902144827187164982597361929309764104012043004034708970317819008738110826854879042213533714180570237016375235835303096645271944223912383880414694869912243255641596895143575836890749648936306228009467465181056632732347648466762206773885638339302250413246156553423288816558579692806335683389535480977860598137027689305235203501363984828937368721492035433741694610147170854944231823869330142978500824024100226327749786738734231917810433016723104936799845906536312963079275598967383004038007782908677905550109320655745426152564946731083835098420637473043177407253475169843539715823279291380642960378013231324757089321532286131088843271527298443504838426298739339650565973430493406586784604917531627293085665773282715040704266063402724622941677734761624267306376257575676363732725363158041598559816589775971721576954518534719047563924879680400603201829700733570997279988357988955196770664041207273771826242014939948432843496733560992494911410826237611928137328633170827129952207921023578112279303807788488511280081970320450461732058699340288936057468284901375435918502582822656959583465113913179541844158142356630067377941212110962467913134484949758276624095164824540706535923626097886949838798519576980538823275255775780092170294633742661677419416368300174043747000663897768221020340190898421637820371288096790667718492138146781953524928307098718313630259686218348011874788811086044809332979117404029893819552346365066692660006953207084713566756818530724116135003309643666671683478011231397721105312153513880021334341792995446868968148107192222100753438940567383335331286752645212569168941219494533872507713388099104433937408274686829618592763780204791598706369774672515707474663631341444063487867373762408026836913214333965634062634380262063423219706396991412804776295492297923364364202319040113568079115668040226664406444621527552395867472927349836068809227566904825892744500822451366477163325736084375653485889474161962827048913409718437212405190367403017034033741958177877505146454888245828061520284446235090272545265670842788271042781085544073453556804242016382262907781777999393940863787131992467676895626937482120845344195633790289587612506545533029748848152477167073947639690897100125229255604473049070339755326573516213290005231643730078241024463356884967577801445762704165939838474667983023344058265137925258825073329917396501544776914246923148952047273174741434003477740768765828931713183409792620438032748271026325614435246839096803953400244153855355383622658227661025975567974510008144155170434462763162822673575681370176932821875944987389208048325058025961124745744787377057581832646071103836301778965488847285154626871781618218322425988811000662245404630657790403442757598233667653863553231386440982972314914994067512340068747106142008531746854222310281139191275718572106923312462007856394808303564731015313338457903682463279223431614918072198670334914344042749104156055526418783366395715252948323493133775498499518041799216907916041665531130727658646105998897165617778672418378350344358247850883759264417697386357604645684823679183582203881225129309227668572278688600763031361887282260041646487575006626561208544074350561806719173446673889476801223821235975052125851117252253174086529795880216065274482560225251009202423045541639826483860741366345360542380628683284992778652926335374455355832611620904151293016579668001416123830660530125158772874095882667794742081898020906436393424142315915803648266579820385827676483438322291544464524439952004153540612414833012584842419082679040566841218198276117960208521387119613571998514808574309245272588313156037140815758612374557493931840294937967860431124025228302331444602827023275020164444750182627053512578930874754133872770130431469260172023659327277964253129219337436644911366420312306547082805336437536208187602163314883726502769656435926587017241121151910109390393893031437521595081914449282034312923078661054708802626690835221231019236352816571904799353860613688239532943311305373439516646547662765247407957455980861132906032984801874410683830621932949154818081116929674189138692904466018652130587770173719298331452360697488077669137364226951784336114922470931696823563981908327144083912013089813055349764361524767860099938652151134015403932246903758316735302939982598375248466817542496728042464086270862171225890820892520163940612168497813539422768993451810991915973907022376327961050445543529651442453940328925240955497822569922788172855768007145945265045297477987238449891907563491443364137701792244967354175887808658630357343539188605503866096532029831024731633290498662355141931733494994087493566962407269467268689258247344710028281577785752828013856164073372438722134731691198581286149789893957555884770952048289373127949219870251393200627689987222497161475832850824899508954578857470542883442110595598432408397253611162337905064265396337954115456645807666651214988329131073023402993238079553054006185271640864942776791386966686904633585439094279235708188914679830580048700175589252688805705613610426510704697396197543190874785138042575693003930575194205312993527160713663234654856420738537347176371102943374489633879889641438573637501724689731946116495789989745153190152587908746506853656487580630516403298757256728938851551631365344489390579580851814199072083929826892672783929471795431310202235785764662901522076111862013301051383975914854288423708967919037227188150762087555465471281608280166800339140376051367771483001111898346349222475177697318832636753687304180357264708282938524135100167448651523314817466048262268287788245257041161816646728242971417924663149180267037383993115080067627418964040834453028168741174219463789276151240757833295728015240621356150404361156186185537124292648219046118786694724102573249376296522897484645565600794927431079620333938968283607066971402188260921568980079862573357233349949997266270687270890540605960476239782827277677585830567261801200087587130183906193718723944070514716291161212110975482987434856057521027804075988466250914603936641052433624504765782049710313228208517876862197555448140210829317125764444267649994960223303759994329562953743645265213525163989118448117655913469902819875345275909204849677345343967172866756449924335641533948112141351969952378953089341886743774879800135271446826409301548299521513176550086331199826570875121565809896313401889846729760936714558870872167543386104017911518256800228294718571500791345417527334222578954935403427786101563717491755522244047388284438765078077007385510312728300057459585915886678834909807081875603564407963708675560710743747591589766942516785947387358455145172917046498330655752590579670498362770542712958437585143513311288165729991955221634182571685299867196929119516528273968528183211000657280210016218481753765309011585857272700964153631376876254693242341889495973805064601799722131402612524047640410852697023844187122915416956286861127641609780717208130696506148105462931948403867553901813391738743944766254306748668001782955002444771303949540527655127821092616363735246952863103110190146440111230512293528056982795944895408205330401271274581821088463383921188659886330655487907189443814028240420370741945739145901089753866102449164812911354310880495569438786635975708575742995402728500492149493380004903038444064786901994840600338242493019026064487162030349328307463637814208280322729949406811429745813860299134953460526929397979304105795676002821291849520906306563423044817912962086501991412124292156089598270762202934231352811809827883714821003119187977565980696450743261099942318004175534976582208316203490304519709677870934130463227964330389013195827924298646404447573137670499054595762263072617576638419366742496187615981367949374932818107502950476350883626547567304901898673950943670129635429471809332273353584163926944401163741783133839607275934690734381862258215576148170547038728414956959003270530726590275917930632641370397604898917577902508026603990597077549573400543842112009092470138690617971896429823347298786261422078148702674392950645618612183151749093981513752350483212650840111078833568716534033640593740217167831614854603576802304262885504106669846070889258683812155486705696177891484335842999902147936066480910518022802350553706912530721153673847782457009374488835962245977308925016958766674309385536033096616975368461768194500124900586160635054896729551554773450525407853582013755920591896117390330610365299721060512926100880033336332428595263036442906235154804072667523336271985953377204664806184423216044613955814825010189983051921407210624200921185567638691792065753905072866820826281655913590027629590750702920142223868667474960464495379140402272370898330729775075925393252507464628172165918680204045531160775772567383391265096645216545553777888090879944284885116297236026109177893397828898683166344634926404160949998322512998221425605028627348735752079265936083430567367099358377770779872692038386910703427902057070891332970336684673683988812835322093775538070301890735081236759843267275548291892582708525789519661284808897384991321841305070908613601703715735600618006100673642311230315980630840307574006892130799935671953526103411660797039715641952803390917677601171488362023370155580538179573605126804858236925498739120267942201480437848818597779098996335399591035539938882865968847053366919359636858467880875655416101167764966356402487150447940361456215159217607921676650618964351632750770733010997432822992697766369511044593160428285692843374382600389745752034166371000616543284748677589178387799252695052587651760959359674622529124707014253343104471791180357054757533310130837203864214422511847096868670805106027742826393296953659144029711979415937623293531375789251182904734752786824179260771778893877107486537737770574117929690204636825933790464149685348868962395476081588757326714696411314234385785889492180418794574838772955631881566319583944209139023523363722408698971222477926035449228026391718558907403422363668554259357738470898778729869658861635843470477165975742336458664442765159009220980751038099779926686331481230527203991499191268521940280113354208505239660158552382909839295751506614177818648790200533121396374903157574777496247845565501984852136146817944280343132130788669265158762293989728102790220006581982556142968954121232081908326733352076640832882566978587663193914991491037405930667161744945649223521598331929856070945317035665203928308240294517610095141167655809977877948596210949484715717730259577958914863096887303772406986949732912193236734056341975955902499713165175124792598412294340044581061666223331875261674173950125663767277192476911143900684898940538767945508701526750870978644001097733208324740164817320048713743166360913014746340516879525291065932457140059912679140928467404893947893437254129232676487065346724626039108398358983553336808594577481477339796512743121635435733150601691864186137188930195678238286258281186547648148046645582136677556784598229467349928296276119010222399937763090726915872445943278136862260692113515410046679518945065471408963278066328359960737775871503550727085518255588154197361143995615371798681381864147902069923915006845192740731104271231963853745962203293502910307713838616096820606147000652498605386958785498683712488913325090254541021807426521521629896452228291845944990404638145648889397690166545588830370573284067795412435656110976219563383389143127520191978668271802799123409132045186345580665635905487773030110889176026224915876099237458775844948251016816567686442801823737761705567097353923347145786966708525333792580425487266437677021225478143342624025625042352418277043444515393613331810330444686540169849697591057352445823617552874194203959989342996044799207784687827924348034500187568923430018725109036654348320513639384691959278674721338657724162198858881371077800374433886656333694102333762137370583784395617131135196710823273867145881626559491224056523683836764199834449386594126141784459658966677273175019843095968246394396377387623298677099176910799618205264612356806701307557570142850660642687349244151152035696465448019130413316704518669190526616123888634919952115404622402011741016999361380133826181142525052436417718764128497310513300598544638044983809033372812946198882604667479942841799851151142350753762707417979426159064373314598040385102651719405269342383124091221976381983171878725885495745621070288413553620580557510923705563713396316009296085719555857014863232362759603144784283626748527398218295101935714001408408251122569613828177593116984230979459262646118316125629138299861865781870928743678321278809630434447382669393922224823064520780875483692795424292860333181208371165777698515976333586750383497651021643157905853731654827233953317797396948195563903628638535707649488161247565898521048724853202903500916543549969274232673422161278536149037351839638343326489991331317430479616534465330563197808069890585119247689842872949455210301731778291875506222614412418929446685531354641591272241578806471259758877517268045611866484679094505916935421098266769202984882206440621030415846788639789737741909778416076926829565541641575939119775337726444380780542107454872094338401076991830665942373040893058402368342151197465349522790461681233458971151052351865971348500382251033593650035005700090687913645820899753752464329321204498428541689792094670026073201496119216761035160286613573154085307630575077214694456627553200200887106581348302043795872500442948398687353971308169066418770822811073824979859367277809870861109152094275750350893442524513600828606538463572505051744122794338101615953261815637101123153626251890774301372323669052811878734612125443330381612978328471777567668486123036246357285890350305045176484899966416827540569372673660784778955590000207581510917285619863116653812031095337623196069061463931776405591215823958897289827499719617916577408195775945516946225213155222720323166700234186125708061284898959786159759197511675637909228526151554745062055339166644141882477062836678257470638723823161105652084805360774461606990041098236474454035158502823104750646450300714743122798042487319863419738686838926394013396656411061124780926793488388038415299764978407503568365725122643800566421241741597693772398587141265471014117612309283299292445667423888446387789600103121603725853277055763308795010091137165907305377541481866645596756214507460929670219844343128793029035801437782764173339657813216393104737525959474214222707432835523946428665357375831916384078113991910771408932722948642614958444696204265855296446808248991801571904737028917456827109695748461561408007125263247822844081214822379517743520748800836288729011980665785923742526913069571450076541094467291395487536988248075198949765305018701438581215114342010152961849901265087957293372836334331600309262357878488932704200123202336902240129916497174190168348639221142286663857499179437813108276450891268544437165341732826036595200102122478975867687818419450389266328222620172024539768951750814208088716286480357629845740145017220277629187265539264620418311959308957348521193044543022450030665645240862571643949531378372050406205733248875987822216890253185930329340104221433167793668643479304643883991157090879813385465698070628624630936829344599988428490852126957192120485947516669517192336030496049319013259016329277537949403728883858886936040760105906711014309740934760265375801838850282381570387376818207222082817812129741328156309180562517157274704117186215940732313472785987486121768591226144914683553184795664900750424441521089102618351435221505079130444366037024935731967272162327038152187869110132490567716878671800127629284876291918195459579076259664338569256456901171889047313463226857762714290148765303215776856441392449489175391665891983800400740060260916311229623167523923249332803766395265138512158156267470440364699900612243382867849420354627266807565347645160462844172865580847032029840643572580847769802046993943191128941112618061458380466557593241237649890129423312126220766834121901942028186824222770637116083848883083573790316338091697244566273981022542535641788893416689057731764101639166186230653567452957326685133749641900564150472667933186815786604431597224965536707409140700764427097635351111058761293245921913168982247088159343612334931300277045668081372358633446683987243708167888577669771131208758527077232441569038930330317345404816364545440669553600977289376187619001844312224339070983156260396671538126777896988469278181787611189141715310752690737401356795404668110868635892285467653249617786585749955840387743675851610168215038840692373618594977252611733398451156472950526483329713605959730428219798157922395001302785239749748751091300493351504398933655588791053353912853787269695048956104250343191463744320327807060871529983303747227763410079193403771948955526837216381857119649399986256293247385485422532911904324443441756064734037417630256357958542735417172361513032193946175023732677490485619530880432538972008743353370156726573715559425930388165579166818420301222377896084756049964385661662994681800517189365510198446289105221764633045894676403709221471468392279292129752638140550588631735373142728443135274427611946206977397302463487591731454188938531713202396014572077738098348962757035871893962041447900334849473567139979106736079321678051430708439970189488114312315965101500736863574176204693534824117520022895949689934194572511208074179213711957217951311325264019745646426801984854177316458161499769145851289396146710748790531066450979292904394957389844999298065374319934977146270697418188668470099032385549351145954166420440650577528751048234980510044682909706553575327996263807321457133254798281864843047626544337665180473689934855331212390616555778499979226426293363401317376957978124296063811602689529193957922035583525127174550213504383003248769769933780239024306335805721241184271759600190912576756752652782226890890058838523000209427208118037657034501464125196824935769274687203604042655190472597314928509441002162079202764844619502497142340910962187534095211040271197048666215362416340107528396634883275379315964068563496321962222317474334315262113951823852844121394647499677813680347171362745938605988122601298506023196087410154202209248971079837783855356175551540061626038840004379401607143939587093387935238002522506720466569308644880559532235886692919547356650598548746581695059524775694152563620283015300290604883505716681463483418433702526712245443095369178871868881753969114852240368692178767329025361025931267917895402142944735633170145239412333073354969614182158134082993882853873497977251499965987260005133144649992245604311938556285173404654176675085591470373123896985365913745807529425605752518578034538760060913563912087243113348707261679627363008857014187456891635542052257275869529420123386375740059024195507070199321814568364999728529919486470645711367277987363638814994643905148410862196168142576957938409741694045662362971905453936529786654577208480378582752730574534136437208237039577732412174850459944324945117764998553022625802875672398883722245931979039383482905663898467629665545911680795422014590527273153597264348059213017693808749259719626678456313698490794993687000524446354796018198700636374214762828231552873360488131386014830353619670230074058639536644627618680600179430558458701810816602444394331694659556372745472203026869441385447335948726659172911898093773461372117727366357199010170518337469232834218102921868062093331101873743969788498891731832007087726593803636656358618393519266216422924953220750544659551701821931846844284284168294468289236167498549057895645504636888190814281885249099992312707390071744584075819847137350281018834911781076203393300836993841997643944655518693677200548193338536959800119885324167260984248460129208524329873460431330747920438667988721666925784753581315906707219364190873059611489287981548573885529334031987446883315301862657379510328689358023517660482600128052977725246209258397351189688321558330811242836033482840593924382203862793043920621054005169027911040412781373753340992729389594265861142917048866842301890210878731951172093198220795779539297250474819712341426920038740122100111624737574403488068927451032841024858250554202965331791018885147556577528984285769816120358714631159515263285989469495532852633106678101394993763726429483432473460745348640431775288574148943920758924588308017416230586755317019242821571800150251098392829348959297474949893418907175058357452416788314802652576234289260490258782422247699106512496972401265881106678842657892223597030127306321649997653526508773445071320292197615660967001331526303909397696225452408166394769340270902430512030679750404280317177658538377375118215652381926348790140955129061482345854407848236810404696384532261329287243300631685457348313086774754214223434407990081450380345207547977609409105152929861264555583819509342723405400950547873041604673886815692265999420993859857054180730878131802889874044635469850926823167733379791912143691574676166999778718596739879006961525216849654679819287238995552748272740088604075610006696114425639583895537320166960879757386893423814175626307614701742629280293104859623426002681498653884446790255889025046919618773026775880859413949339464341864106862003669941738668582190122907234653529009670923278033074135307250280455177662430132701696015374572140051760013352005115726242527551474141144632303581570191992063846487785424553677268923038805183525404107751441264389024117071871465235831377388300079922140833179086951957967361431283899406855732559748403832840391965877535039036176634820395336697079900481063310674107861131796031197546676583900044606572474701417060711330159080221391458040050353120261080202970637352999625496162550730000857835767713504106612083508685045919503269423423475091432296574071934141498435162511483723605102520390737044841965802927594390849453238278919322373048629058921749092089031366904161189582391017423204472690013167154428443457108140102774122441034369726485567998168559296337044012381967917423064874820609675131529231135825991632903981460562200060069234211539729781893839819693132567448157390306865158161819019526943303654880007131281754830185906313769715737350183711525218719692156076493076450700481310236168912974880366479684394671723164599158900598069430142167439971052972842417129588905907779569648986166901983058711668242019168451060545034726829021149884358934205628291524703083618646301901097059468047026445744684694601455016350540390883254590026829267387030563940526773515589973183524001695217120724277484049345586387268562059239491025429551554917329705151927953641999029018923481682202913414922395839652154116202751484414269875805819763940096376523756383367709389252497425608188898409905327389057970486134314068198617850420813088176495847507790339606141549655941174274629181166260055617481159276784300996562228864658879129628262619030682233538710009404487690960373575818498971164446203845577105671843797614670541755341262938392733897139945786880061581660356828679683982808850641997642857710521143196766342892327756065615131852767337680566925491977716934817317708471050987805205725237957860527064455448153207136738690422637046713691300067257714787977516725396953665637982041459126217432734104751173517760619192686660643447011704477477711455694459240208921777948723056508380567508887480964005182254404579736894555940936312807478543630484702206041657247575825983820141925628681625227207445423900985744245572896876394489727879677604583537552988641899205401518940046279882084912945513350960378629905496184164938283997532637650929912212863011041464571980504618765567173683270330839394781004554264160340671239702536054944775083958594211889103162971654879130547805877285094237213968492827421724519623709160357699012120265619766950192629318902555692819426457961270073836846247059223664943970023639383935994262638257866336692016250009704231175904785061863478925936978211968986551543099053404347397194658511253666480718253749704517158739067251474164356282561550802270573136514842135621848527978939122565603966426393549918641944813574066600125149014000789352931417034775710071012244872178733055525556928446754799472124175719735585468082755956694469508897876779626115543003854020459844934300214008891568046519917994288501957254296306385988357350177261965181053052236701206097195315668888311143661998772296552100843154287614837806742337287146429753129591654211379960005189382174077051366138641629177664150278389533856617200439907779761171955608274630197664121476144613957461060282717688277957368959519334552704910888577561295813527544040450486427302196436556243972876748877253445800992717636029552502320082830969880216832957910443467353674588638216908845597862733091840420692629525657117804937317295608427306444575341576982085973788029825922543284924498886202176781243131295409098288808063883338517304027048660358962190678292989132502239932981399371002997927487760167040348032061033456005126297751822615755714499802302925219954273882881259151696205213439821736862336246610027743833501874844230960619070210922180245447855359984236030478904572644168446582360800659314611265266760330935056343822148260368945370056560211080450324223345077242887624578839536846962752973539893180488204748057102590065387137206839202946496385464613031034992300494129618902258313701287628221256280648654933057978306970788045926669957810593011904450842424325137640765505284489900348514401876902970306888964009888199318830843539589580736896874473797736364937854466247672499051586654798651108823879440148503647540474285652162802856176846969149536643012904348530087696785580143686921265351611583240712844767612871866361376193431326148298460140036011268064966877762516328387843341326082528749944097437534519992030584219417710180203878565424148432029153518822277654295464136319416650931957654005743890322783735992707408449433889498629409062730613779993700278942194344168640784967786112769280636433835124506436791057539845363823547546852156268020345247607770255007399790350903144675652572669613691076448247338566113258401903324842278847041874961767928768250723790481410839917380275437050427755728198254786767602875754415715798044440259256343755203936584283796640209432583662595668193488187271448382679453551491033344014835546661847121779037912254457044227423572224069058595550622503214085919657346223370205889244232376800647806195641446673085243266104194592810916267570125035258874966324416008913656510008743410388992601953719100823562387028513146129062984881342660306950218433601534983050456949278245688257635437663039213023066191730697685284859962701750238541420193377252999182107684809307288014911382839023739974000163270660821722046792161441378873052241007318955678924810511815226060833751520203916157408722123198810515931825326712953234432825364676735095834507548911030325727056963119145881765064191952873795869750531354253745355433924238423177587799609002706001916191643389459546776144197432563199064723265729436836779054799957700547805622931971967141359834053800964625584674685380043729099933461683813903520078670188080981505856446008125606745231125141585055979552158077361024533440677591244297563497773747879347593326890702878327383502792176909600043723747947383468214257126616974503695601931227740692008526316537330232159391867476526646058214957237688142605302930655422836712529441223831310586175049217948699789016223683380343109487375494984664385122186021615871782956447432377840001580345924874539845600173654202534735886877421777351973208543396243084326629962998583150953862619849706253556128653144382495945509832731853114615334434452983575779855001407760915087567781022301861010700180786511439859749100498218591922344852180143550871679992273361610748418053353620715657703874605266977056770124760057039266909689880680690874010754655587792586787594373280111326135034940772885715171174674393046300623776621064138901449529697385845302596141539265805936098315283316326393672008841401099859933934136850628331248595351063476555301450329601063555419129206946769652524306945651930689893211321148717222871383582328610176962593956326112036452949503726037781678907408723243271618710064367673131964642666709761370452006264208167302471861178887497158710930476192969210219071536449100557229113281320385316557079290894535679958280973959333191616258513078380117217048994348402382493170683058464248114817062824421996468576009692037502665962527467617861274052727412168390199604795477385574451488601950024817689191530142498389891863433484910093950213140411244641760847387959964191856216062568172464431025541998643052901963096301564631891844389931627645229924818276092914966298460149488637050695272807668932511478626604278649551224872684483984116310763605637763218188027504034743723514318776259805707708523815598737542522273757980984703090695059108117484615280013610335756666288114485283081006524402286082220141854592206365839977676118744235923839222833612203666135230493767318903143457780554654350596217529711963330348458783868388264623616503533206902324273427374553925840854290313747959150582178047220229679610715897530933107619291387591057906718881701942423896426956812922902570850019161255152472470120953632105074802079562811362959256341012292620758042248637721412329251610644342994415355596747737857179467183958640637422924472449169115486430626536333846128553617819006822942550355217274439557080505025849000704465543110428170476196402260969160789767116329100684651709936609854167894066058728927916714078825518983342354106988848668448257205464798991725636333129557004664794973459940988889217903898423750926630884003114477583537077867841283278926568494434314866703425782212508133418654382264282968011316379050757357214984281233128689348990202636425833240183638976334779071802807552931697033001584335197919502561562264009016500423941420943307737678925863678416801554459072750672516899087496217202093873069919519875210578620633615932407320345948577178767265040407402305854614655663164769177111349758990398205577601404267919832230978066978979303876951997803805754742532927488041461826055271042673161791137119553069489717955799709121706744601237463424761540216584062049748752618705683802104451054933572342623425264291019879526714790901872670350717592610763242391593806589059530115970440928707435242951749879023602376681937374828840296271961658475180389177418674675839511215884043438813716887429642554359027997406354810861107153961481399677054325041825591586163903308381954472941702472782479096557573616739238154980224997515788724821416972216846401729257985218576453915950671472499622546736340475808403020053999093437407526627920923562345254729127567945154315731755525183839815504620008411375522302095528233508917561311129022084855936137486275777601239233828596063011272738081263562098230650184367856115726006684014417311328943626938595133227151879756498686193109131128030313893396482298777116496004020729816839636230079271984428997722342967640468080853063336360336044825316733072153623849966777398813016921816928962720769532638611849758338220153252867900390606862628095597595172830322501351054888729733168036117380192839923260205751423458595630619551103881132908408196625240852667348577151844222324165115242830064266877880179805336447431795195196551409150452742371048759305535376126283612053570595139260189789576325987251796116899374003616306681810640987511079610786713036732521993108535229031016081979250661083726457521245834429836565464500304057144787946213343408853753908567148989873168790485086119160626039194149775142082808786423633135707710583991302561262728665967906266328749808957016511764454329231702436653446969123887361808959382698382376183947533530731065499228168351613021007566158779735247989113300095829214130647085728149613271033924663024822600304137584193761602330101649598497782679413790380817124603274623309066946537674696471152049980031729691914568364234363714045647416048981800861424104988396332554386216767605193902440780630578981520209135472418122432441748881631913446521740873188077885784285707775975893665915406091935985632123544289732206103022363218313143415954688491402094520758565560642907449828097935563469917644341747036759507925143771634485737351982068572555506041696448630245646610030869990563011191339530494259572660770326847370340582119348654002418149727981174301892500273391123676330216147833149789271675775586548869135928147490066130489257033556322512657552253622937581351493017327917932209122769532322350457749260344394799101230813764203701566551914763632352417777694959459356872657186155928248387917480421593820864721462405585646742543723358952123451682148613083087069365596446625929956428225615220740222026137430067221735459260501523484401956400936704645957203380630135605171563354276573070496584210991545572408582279298150878319110613261512490968049298581544400473484546260035051241766154412078745646944745359472852041478467757726093226967447813662143930151329330398381121213776799163084347076112974231831293973852412271952055951185955341995340080827413436741370728380916827405676626006919887881967381679474898536514757278054000479818313517056107117673148495089882409853519520276813745263879622037529128662288413669628112701416467464902607795205007866561906224955755599304151848165105041782008214044759758919196131836054708664735213231446588351713031890169946693511195021540435961839854290361879939981112388390342558724191057282231041883494901726004795913180682366983123983319946779291509149575741871770405451623885078360715997338407266704192897011113608152325248912056374026828996977689886830043251028792742836426125635394861496599551971519063397683299674653749696602675025276669477476743376169852978866526468332311813453882839114591953437481004024490144837644215962645952846810943482905986530038735927865176145987948063527975004820960265182798404698049325851030890519186243866676734071381406275538300425813032772008106744586839727377864405521520795851558775076476257642657979551468464188682197498107541930003703296993993527475826199843299681295011000213004529417912779984180525120607110599760340440730591950491186449914100921350322319731443943211939989533671824266855119263841319881919453252178130226795919780537130727361329580901763952313196470196040037305881440311916458274471623507796678027327782783232695578629380106342908444712569923063011812371659627845672808086802047983043541785922123142187733223770417844457677559020631000571599719914846977613646845899200820168970015725719843987282121625294804614928996247210993376737386589470072140771093667854888259733190526481911398504265727200225665864417720550108408461966781122925668885566894298354424778565304303636863241180909657583174263934906280514519397389281486362764532519260788086512668553550285219171563663932780130035541720291899915817804612027667133738625762009255561795656818285434095838421305265088273510256822317648283148922965732300114878814923897642603790761576438826126989578003390199369568290427747112791374213369974507932270171862360609278887264532560437705483583971048051813663938010661463265290400032575735267116675261687029036444946629936126724189322230304008428790674195907293253858911388420321718690639467196273803449102835659216900103062673969524691046617361055215737481954109449728057839623971709968836152410833072762903504078198725458447974218230548757447016789858707376922557675686070905330834190550697674059279375978932158412213434081072424658485100844560402923457898274704665736780307089895003518253045859078723455092533647113383211780171044304749416635628327801952980411219954599412523154186040928812922014647240814541560950232051926111883262378666413252437080943313109171407349615820420033203508925114438323409134545632752998817548370359103053372703523388311471900731289865562117845713010277305765023436106607001198579101069507234966237704859182494040267657131967740838173520081121930318674769267743124214752100961023434324093032299582046004876719954957302746468889007417643441595897962298798475666321848407510928299508933917633440829866017702754272116709086826536428965029103139043903089979959179072183840555644580523816904737799823530102427522245660323144710383305253512624458582187702409530725394423246908443606777003792559574878354274091890681109810385377857488106711836604339615394846318306000136779974898903739967969749890163614175427079933773386114922777793782077043895839919584295655746636992849251631773237456797917054512004441044830226527043601950432232784433516603007117320550854282743425523873846804425735377195175647595936296011921176821399359885275460605064844343231423545693761802108772441962930440669533599590745829986675079509320199535540928704641481547774243925533801534443991086718869887248210052701593798881481886949365412997617277594387893302493848867131477736149379381342855688081666414992757783401703658610722590646705875029032220989323916012067144167439961541898595653603246463199811277911348656963855704296849080286206976963663688458742692316273393845861080338047656846592520341526397331284723443730536323620616068786106285556289062064178818013044299591519385623152662236512174011063641158024817790126562721079702052767223975928762349789118964744700082545308857591532662383698162648989093729657141060214949601214963295109500287842577834259140524296931169907305910068423481134255565523473467090725361883488089292429402695092265790908190092794039833892907006001887405453435595331193806180426780728751740459821014374191561230098903754595225505805992289900013039725352156285165394127597949691571016386787938295587811974675546104963651144053244688744676690993395391671001395466710600927358377271183341608354576532234979416449122395384442021533818788889114119701804090045466610487763485320789713556521574662114699604914344519111434763805954000163608609951282148490703331938868464581348136414961173198583706427530934505666274445503116314028394027564184969387625256024147636420428303582236983111503602262577995286635242221047617160690625286338819366177774505698793289491297989534611153630781579485829970158138061489631286766351022132604610562763671279140847764611177261430246734432880806537463448939420642362534150775840174294750683876575106386265468227080721891983553094847394468702596644695492357459244298052579357920834228262216164833716300019142451935605922546349550767775766503207804512196683586507443186312902588453599916221396183822602119956308119295151290278477353875621510990781699919392066171071968245738774381155031569433871724921606463433479618336371108474458917123310187676572868203179235411040611929589996155399315521383169608645177640541331286828807203776264283447040794670131100123647502736480078829748560907884732998325153051346653738856171851104144974914442859274802712978873922126326575573255272169691624076460816768562453276755009903963174923147124341385695556145557685025378349343925364010306697757249824221853356636117741186002233705394153431088816218703859539885708457491037796535788697686805173847274115979266268171028951307958352110472595026691511224074604018115176117470681598513598363952413513834526174088288523969417479755305257075953644181207083592649749515799367910337057776702928815335915662860927374017218727793701891789723266257911529146673523249304008690529559713249884883067066930997248129074770933428032036975187125281013286672314740433830814715262961192224645270599653290026569082452846281576139858411142068531247894873675497860162056119698909391816673115510080711254879253273222475017124348205205820441435715768181378303378121805501259712221200438852917483831443950244255030549457743052122782742036016088740105440876653908483495245508096186797677220892621948646978895606526363723954628583500913594217078294143841814696783955903347126464830098445845454980398133513532596437117847907467820295015477645409551984731486021792464509913179345221846925528209758941316239890849684459899357335012373659053645946267565625148090045899447699309495933326495236542057500559114594516150221857199871740879707201653568081755617961805053964063069402061075841964595531324861298721953520105970799943112817993915060705188097785187978584812494584540723441810230567830745610790852763177444952596491847390110456554484316368870338538552920469023904041661866597319658230533882347003851222428124724775494544896400403530747876457520829197095003915147955695688626887826508296639115156105852761440644152504584843732161119881916233133081696959366780598196151415299132084945702894557690537249423445366530933457485589510597946947395225946483434529680005145914113050862420930403866192198678733994499348913689600973348257447797273378374938714060261699960705283379875721887703485611955473829936332145060288653490203623718156651452800601124489548557810416452150110688679171414574242291584913625635251056142069851723063516929674257704387601625464376101465188487783676445130939986520826967626878019883047584023785144185887910289814715888518770975537320609264647261477493381674964971084742941768405957675772386395673101544571770014906823094739024320801205814521116668128890953273355420644825550830716572813164520076158274142172319604542381285537269720197146806762342712192203359208017675556739561234821093481207027022018417690053784328822952114521878975560715141362706418213916345146415747633327217685324876951804814975022784942385281718711734844296284953971492744323198886496044903697374325184625814741504102735024061022031139340471273160425253024434261256344323042032961516722680156580359060663520983749843662359921310613206797976916181144171032119215605927595442316694263736923962825820490819161777695286361605349687607413531268986581943636442027020553086917423770964119781938460931333756684355206125083384968537121895000748119908151253292423969041464898621892123916710680362694925742914278512642796544154140418888626208824497834883580097269250073167988050719320896908200078375834196495917678336284744544689214746415427447815551453853824025255495745668826562787061366463742903293721198056883700523396205090553088004749727805661650254108159484368840534474123634494802260854716154750917630221923355976187646250770669156211626632889793278073874412663827379350341711167569508497493955523391501457029011928283855201362778799415245563635236889458103121188464825401078681170151471929208286778821811960982820158326932487807266836711201459007212758220910784767018964915769112074443511424517908912227357686746489816914875080796436178304001147661877867078551975947386972927317647798164122876568792856366506609793896539076381512511262899830537666002348802707309805707617800314246124926509995049200791106496138626194903950463105366542909627599019405788830542344332847794164875679460451296427158323770177466547679282230831910321204988151077102215837592991245875399721073343749931369248242684267535460789207143186532015825314099178898965252821401319288943829086387324660299244091310450043635018419714557937672579152364409047254102597693091736834785868370744515499149152856598717746532192813934699161536487258377763917884487379713313462054855854623512664062515866470220856974917430023021442464260211334403096272984427478612611547020852164478738364903885046052051678091194188005449166541358972091241374288781001482928057404938270571924616351246749554802366318866091674131770302398723380026865989763120734081207446233055645467910664125698743004481432135811993511465857346446665354480151736127678609851003884289568138850804791921990057070897406444196379238948703719893058802903158378796069335368682123360695334601276034112278143591644732510498722190774030047356834507198354372282750448999336003610341611786827227244514490562830025992517522807275298243059623495098019720690067222710617467523636526523021537910667468337883989994192046383267685236946650806261930791837053150798771498689656655560626077885697472634774840899253998864368385575758105023468531261502110560963721531385501502334702181535181245333864132709582764266048268843571159703674054621626860699314750390671630029789887267719465945833877132084823410901924939447926337925542597383162154378772789845856388237233460659734641458387897656813513842207290650664122944074602679301843272404062838907683112678720192355962163760991280309158019232511485634528340902872896292071452372096635752264861928932484645779051065486755975376503798287656045847030839562913472069824086474207384195060725964264734960781954354617243715889654941942121691583572634055609497016845175454971535783832505724982583055999726071773781643982697288151314385050803528897283998666549983872622163282475898167147026227400842858204144132671151452032837532036124132812096686646844344475571578404662574441957898495641589353121067007679137677246933447231826648404113717970103610412835442538907431464514784900402921037140756418543099913391256076124494644593877254180971402183778338551380039305992470126141787788152900596185130625503175449228053316152382342140942624122772302547237287889242647933801097430489802830613876956079082712250742459936144408188096117410551596177528164947808872503342602984601248930424438805523566365119389404042288854445893171510780618045864464849797256220990441685968819953850754529862727312962472615723224353342802474938202556320967547879903947570399598737236292757576994589221704314771031359231664238887384249204780677976680362807451815997204379892207832505983826283807671594193573065851440032749071282845096725291351275299971444705986334795008768846419033102866503145281199649995651905773856806904389123688556909458393585691493837201865663030682997664785534322739537728327413825740392370855856590003440951734209226828020628994188893541320380893674486887472968433859472692273068584786409987102948198109377189512424583009183712633300539786875251233945710029191637330661356582752602879391180227394463963655779476700802428303628864693153538624108012455932785283377957247447027669283294072535191266657295824253696299269964013533132314572595724439680342716667344154846311864774434628046302759152933277186790883560653414599037828355228146525370600696413864075778370654731286697989952002479984178701535620676159577359826227257442752434042363449616056838272554372468928186218998212672569760822393246656020760479837695381085714134166250546061581526713663732766899776546537216761117740316622059140408341705013949980796603817587416484898611396651638246379092951118674583302081776660590946638882565995511623566465633226200560420553723810205910680472627926483038723828547571139515659242998363953991184971723230615012786485941708480915281682259572238727096517825057917422919716004848130062406266741799517358629745506379674935835083208543590583659537465994787820752748100798376969307687258191725245749689308393272275452773297233746330234686660097166333574132906629678315099695502443487561745234138694562359178524257166475515538379490730197461588489806195347989655519760754661649408863487097606502904709672835279272980955370291127967694813091299258391830803589900022967625746007272846167507579390735403144560011148035714945215677497740014317816739727007333150981868719826140728570279119816290341980002723969728896866597047360391928990997157829224176554563425103118386692644149755707834090437842496135026305124631285154429314292994098938955773790555871401546526967673325078168360703432042024865604610269057187593187630029809349159549687328383151541532207317114221110467005128476013853854920455154012373710105086715261655668968562402998438264266441013684953483131072477372537374000187009336387550477067534547744890774214527982160354406153109236517264750792453620485994741131630016253612685800727673777968909998918670692632370987578242218335650376228064438147709658383024932132012417857182389290454147271180032327337654919875160638090649543288008229756116379587941720675451482511644057554463829466135791656850119961957684871120375288627497841126736930608510006551016207513248431359248347392268472328948504196037847119161641627530880878254477026662523504789525918925660992607163547942129390924651622540134463740866486147609672817951886840510162199579204008620545546736658069161651150854822957500173543193818956702029880751189696581312047608440721750384658750741888321313623613410260805980561248866728307681111784148290533008886982672052461635623363676217942428219699862492853892234956068119461331411727802536020279596133506900522716900950640327542924298409108591451120976215872024641690361373554173893219368573178785619747668531098826159810561539060134812941872133033263216144955940621249887134783406929632447025226423251731863885411420618084750828326163592749631352082989933086393820650088079009260623030116963373067509019432353213391187099467513092055698443717783556216049102813737590088757608831191108211987967927876579013078943517130145382535473382579321696101648507957779516093629641900426120469511485673446939699334980451463558969710827840115693101354108895304881477407716634476969101454706129818525906915382528027446912842664516817326635820957171857530472474938999627133086591315619207304330335293181082314552445494286162130267225029363457300722876136910849332179795627092484588377002680544662587355742099003174422258116107995171328728053036662173162610843207167982515371385760069311294678293399979330422377869949097381864164308590853394558958716353864737674579340958558147068102160429704262846820755163637997405247257679372925411128773682392122618102076792609412164528039617450527193377392794699788950878808101236290806183166073433011745830301589842582066467697482996309301106775172047680344311181158010309097152519727488867813217080715915342753462015103974384630615794077571362730822792144109350303096273600765375552366401528885316358331557501128145536489545404392600815881654262257005720131374722496997188250857847197548056879299508606720744131549612531153970297771431032400899996824173283222811100900796968183009707151111204223977455666916888299026864602151652587047580226241208074982951923322604253978621941664074996943058848811653568577559034962159556203428305178010070332394562789387280813596874878558768954759549949563422025049165869465298574244636606105389345053830564660760468409707136549157136478782483842112191716383501798152390163792125927152544183054441052552764167861309516560295240616312189701210436382312366084958283528207033241107386353582820497958262525152944958241702388069118431911133670557076194098865242244204471160957439962652509436965512702903215833261103964528572744435348952872262782473499553248679510606732772970882660130515416278566830358677285979677882422705570297951757646628881814126965739356802307385185622322503361732459082803665809953570859827974862355606580240644830381028064701376597872401457655782799162552149343482430893430131155238869070689569193514022210827711146852086482629530382984819280150817406080881752645876067839692624261782482923789796206460175843007447485381403549528396478963055213386496183273190614358585434374617732317853225502749208137752419639259689962388531998090947172975871946425650545583350777458759015473888540950225321084131395868136164261093691243837365168381764266154994422898584426778564095893755483340350139653399328040332801312071636842749272261747449532643111699850691238834830441804531840869094610336904654832523083181985423114239093392825824657744228303740193941121407984171240199528025967610072165240260685453947451649269029155140843678280974809341846035306433706453461773673343036467306095522444002374825781541235174116258122795458471481262832678440957324331918954334134474728828264317056470526508501833718609307794494598523285999921540611086974397069105073298364117219316854104267695789266050680564441491526779542613384353658901966128031034732114291073855436593932863769246927897613276790625627885147153420762788813155145877142800093624231005168731206706339109172258453798963357185653181898551943541071801026855824648412341687475875386676295825002223220681459502525798971417081462182771637520746594956745778211296117669554130261620702013270586698849645714475055477735113822042702397809563795525336057034291789376028232092885061024899146332341438550183240074722178714195432675291386487785733292464391539979083969512732585468653423354297974621566946871185863717565762128099660997495373563971340360580132464636139199188838951163309842407153941471112213920701265401161628518409365508257805149074460109551654649171605678237854627100247111003013102800711915295586131764710743834140237685659339530547184287759006304669399899848387229886614252619838488968492171722917871249877679512814519035680486728808139261514633684914195212297109896831113783684701016497937075909538848127965614950849879936270713494565528237072476825896893529637855468439909470118916637121070884333901587295536903901886277805776385601652089158350598133951780043932494462940448837773032002081907280230715474050235580246217290637159578753877001150347798245427448486808525369167392437416416514838501541027343055246103072343926746194878406879629211462042841957078056971162653879185559836622715969267515100116188465398823788037735899175697512181950674961098199040451263655319296749257020232017237294857317492552468459343567633698952305390818448144350303732947637384993457169994804984820949714789938565190250743655130608163600735397004698679549967663300482590025516990941367464954826898368461994275366885395715916914167613746173621399694607133139944794446315806093092712033122308731562771494395747890317668937328822908358819249237802408277025530196434225891287604420607438217705531374330006762219985395143001396507797347217067104427847170770697606806651745421946182265493565359023998889049004674767844755379755778694073465891377160136071210449383607071123866595251406274594403784299492283707648084401395440290661103300288803888585830675453753225964484022694155829106405150066057497737073169826088254256436971411521329133248726780189036101742759733316866635263561592255739890254511299337087008293385827313455699122732715385234655426468024416577000266732418355300618048074017554223552095225064884968563477175430026511253447214401268010610676298871224890095103422951592312681150563129024223075406206182355812006097026956249178310314725544274066992230385988637503534403182320791120428096472770257667438837582794755728268436013473177371690987038101291310375194625870253893412308119653806955508709200231789298964135500470775862902694985287015124169213244711453898181442582048187137712227071931573600746838743145802922082927777686102151469267689010261504434707337161787044543253119035228954877296967398142599694963142172536542616802775532730160157878590693432839391698650185842284728288585504917590845506905798187514804534727561324553934873288243098107779286829649141429920196331949171943329636173607574976731387212284290219612877041710377636765888267951977186674083402757522043627845212117651030365030011283237355704688229452230416602914914489685804741729822370771686948339544140260043904054469221326375186517787931332283134370254489677401731544314436107113988183343195468342025614580620184634904884534567117731634858351623594413521071126510386115601615914515329568866704042096437452917887918568339635717302323054299823412004805063121439500113611421317141792599065498740313850921158910757181327615083406986201165901546817814280017099596053118723290009245803994631913724488569813373042469341835057148058854464444852087660611107433153843064008315523178798302844668701294396705263606645663048594744745764038617448276580277733862300896984744320383419866021342497816924127993151122705957385448057858876498523333765456818478272242352740905436046905172830257712081987710107866623454331463660658981167640891981721166240576111558374031100782052151487869034398657756824845829496001614023965851900913853113015374781172933126539964334676252686985599928349476582853134531431486905319520801407990084795354535088829909709290848612769947996458104452633499183292871312036185656250065467990857160216939039659210492129325432370523268681119882919948349926612754935260131305746050864489637548856194408169368376071722598254631171171086253053893686774969320513189102822801130648193692721694241724365974413164693892606752585543425689183293019517963039867654348655503894628976331785202447020275881564985737061496311564500510201603527028595815297378121699626729740435678968258382802917248057831025944423257665116761811732157141293926383358207613058632567329654845299545961317792610396245833993550217172573966733061944420589435740428525143395740646089405361797971451145661924387453338357975665102773482992406811162539633093665838990020702179573135051405264779116523958238194173546297495980356335874270259063880831815318311190730174196725115283767599978181887769704126501999503945819349923689246604630813865476164500121720617016583564465645636412645044092237556949123642764577571016093808029188422039512164247715205261921645473851576113576039287790068731899963324267450729500121062774119392983243048308717329288799563345113536231962812632855688915211092653260574848622312744241424109681936560319189625182564392425854680769906646936875977806995068613369927083274415324026266055107871442394090962511029481935770287342380623418612470044417775219424707466030764824384451303667471535276360955344313127437177994041827509702464473125544996744921912644091328188474843026162118922194682049593648052370875333150698977434669844016219191050385422400312828851399576372329712537023904904204464463112492294571975860511243417629443165632384491510957079384917335678510965536556627720486760860309656390510643324458698310770351018081874996445771683147093444839145589863620231867234572749996547560507590288133104171294618913383886331549820132999145445995382151402586085598842838762257696180347820047386983471419840915820718690681609582980095395873467041603472071351475907752563564595742395731682155421453575487356073611527626047230603780261027108836080121542732093047159971054619822670132508581366719385125461544633609755464412980175497677892337608335517705937666905463024037024678337001985758099276716082911148822513853608096024159835326422924270530528921692203428448691683318861863435279399430991549336626562877606155600265530561098414491569552731506253393840264524054170778262956543161852514255576760814868973568591409482817920193772049341302252470471858280405966833586070202169693489528720679571253457190032569095778292024419396638608039117724478504962408974814004669619446650155469185130671717616620299873246770701572790420675306499568004671924305319909159073991990853485813350942093954590174258794499307558294753192348270559089299491948784161990263255983062335306284715473414276495363663544151338016755510373423857797823369542457167707389096436810532493564267491370461158673385175291533198335950204335224321609286970851805161727116359429019778101211248751623822613690210075691764157511816360713106357793872124380504574326906275134936572847580785049569883787376660906503699748879988736891943864838737984178327147540445190584952840755685261325093833449388687995535516589894957466517457699901934902864603797074822144984450944483665952183497835709396233266983591597543911020000383914073602462821259667386076745651838681725981849536832119183883679948165139100207595598005956368743667076254671365675751181967294450743648384208148045874865975790039449237926937994542422679505040882410417843479047614804938408691456865859745038529603053532045028115658505892258331103962210801470664011406727407638122159567904794642831780520273501277009000376110544270180932901241896750294561681913555330129000993895720173530880473406721473930197423479777608556720280759118817723195909383686389751177031777650916996759865076145725560747928099317463758301741518634627024076696135204250424206995593797156117646311784551096382291869825943502222406486440558620215110590508293258453482732319898973647348117762034559390174164845748184937450054281827899243967913983308909829014986821258363371284964590367701742401959788919429313866266169025893585106933123458421016460851949075294785851848976968598730647227193267757420966619242682922267593228637678423052249800229473798492249722372213397701742023712924280709193098615401044625723147557753278891404327094595623235278479032984771498414944901704536750263341596750721534572244594352279878522605171497716650462461244816757434474706475189550555709546289176298821694457617070288386652657591515305987656376362547508505438331825313991947917643850794084461623282777920400796653527128855754022326084113279545128419397905420773271288467762081384806432819403256799443582581201529264578148778417584603648211789301645091807780771980942773860015369092665117072080465339110324190391161004288763075948802948004728909164269618724780408624232350137423012360546830825858031474453636995410398362626501263576287025484882892129752786019158594023359189612207337441793127274852188421300973162740554792547860436548720464448755961171286979240400381792846100908927475095833846394923478017746883058604175025420570804152327192979537109535974060871793311605791437441972042610539739861690237749641980784964989390673872068557547756553608158367106128360230199899091349101313026700331595219249154923058522225439950076152004588914923928260648917450029205059051733340781349250692527901140004112852390627895757628395246601586707023180357197408315495885320237062697735160621981533977672899976068491428831325969454590254120982043189905509079499407344122529343619532996151010962344292979749954792560373036461826806459133328796125684999830700158380681558533769393834723096881164367200907714394409431068690591554249682828823058119148997676896729095578745624376456067682379140113544696924433604233607899277954926947858044645904290672671882870562989320763114344873466975830544899415735712957620943022713996955111999089578909463315405650175443629872643428493617957517894100181663355008813777180792162761695534040665189423923271526692865034640595256848013660953704721215926835137890004553434840163445667708240213330711435167679824297271420733940121456315174330951106717013360798869385448035164635588636754323335249361231335346283313135161880820501298556889377030502675139895102435043597442350550844770780078336244517415960111741307967597473782740594302806119889687685991140635390168655460487269678096678773330946085133355706154003556191214450653334854264343381991672804036903478806421957900204229669604091378856387012197247048565344080561626865078758930545398719877106697999039766506964626744218010957209914472614803997419168644180815627326271023540332060234835856044229930950846952540159111244342142062915838566972643547398299713898528511548064653293157728740422494196158172028869124171920416912622581649626024486795742786617347074261535489001639788519494108899408689161661987035842993144674444754259087734126520463397423532450530432763241274473855667331675157577828303677309443924010563911065504150235131523705244687224623331731220667776086162093445725546739228810127683651902216992521191048176321469623856171213523854616375892795595343360715076833138522929125060050882460934333594743578410239572925174478605099145069029719797434841287056811603385359996687383178429551363372035090071959172065175094869225012973932556471229644559290740863993743059143682903518155828058492302615384528534030367895987071131685500531635447343733157884722642133571506990658968507552659067317021090572583490693444417715165300170935032335986750536710206450271552174938298589072318994417387792070367966513743924986047536289180500333812769698536725733177586368535531371050821771189947907628563717541298116348821590607096629449421067409634900741444927709507029470783935074906768706180899721328269049036509705945489728449935055710715978780191954976678593848823597555228516459650594950318421599660089925940499229134281015541366883969897675105496229422173756229160665596952007261432733187244552711369451846896308206266654350713404679495173555595691956139598211030370248178925362784676906455453201271204002579746420584536000277792286435863001999646395954351807871518697042049338717793724405134996626330417702331938951265123946263255237084323713268845747681833623700557033616789441792958177848123185703844942961469411131829462295677010636212029437331792424812303526089203416210777849326180667937216437013620367265603813726166663307325221464618754779746797255318989643235777901445898356086168296468014167053315281851900823941821277327169359123357554736880581616386856950161796357725109345091021080067944089280655462096670541291000573123338036049836387695410519142014804996753634497977128912668425947336859103737851905056224643583853657519355459312884531064894066372569176548268172315047451288531036874761652306006372870679708543890544376674630345066152097215785868149636559176220255114382652316830410444325374020022211989440748497703022521553246371970296396480411536568456775276594924920678721195186053599631029987429543282363729578524844090598589328449195709057915647080637356751024091153991727157413203341398000941426994290297361624221119571794365821592816521676609798533611192839228301199209559242343280435020899107143264170814708797276638739221053034163155018690618506712196072239179110810750187966881392581571660193601501455179365748804324382017281525800811083978254728511577247874546426983509807093106403451192978307907426215918140791277852517150140590945395661551738811752136586574100960737464521484172955103901433045303689694894116910052082766182248846358073571281187101840688183678992867967959218955541803553067039754747425750194388687106357944760675886940511145236016551846347762316914685489987131463288803348251501373479451793008418154250235267228274500790550294928898449016175202159351569479683301096865346087856522721071171488428493526845378561768111688000924199030189430238898609037277022913820371338063996919723947530413153573145258369428180825406745446133286977847590718945568566211024937679154243890659891195775821268402102623459964147729055704232330848598685405680277569556749607017148894460564639319405624029202841277685477355930348734332962399226103212667001692836300178640014622048857040268717227727506185751345543517329222517568999314382109235972219943229112058826356969625922548595416927722355905688455988166198286311071097926072776848297514092084782927928473583479189687274904593809717922832418028438676321219829113178432560888332243754952243120336551592637629924216751348603764575525835617454920255244067336269951199947029444131798013754802754992212792636881511156619163997153079988013364840179407991435510362172146779682558682224011695429944430714946130698776856644697635261721760622705618961224437881494253562984379480784332331523353974286588937769087630964997559907557238086336726805673961033355744893512412443077933267066798562727276347196329380406365791472481247545494563109188163970167604245636794209510585849661189377127513101391531396505697629496815373142584294732423275955927289441596450793841258313363742553462941705163525143082225971695675648983121557571603684906132958262308676391042209101997863754858415836423712011815708309199614584320465302556094468314108623331235614548607789022577677804407468932924305325362992911988177585295977035195979785781764401941759247438492886079391920210372103008248865596932428150422048840589156052560267012285675127840473190865614279726815763498137304719314151054153122149900820357133572276977159177463506012879011448881408569604630353099261107675935739875183397303809270631924068066487805062894351655771728047182012789984759606975183010430647246544673520726408116539537288969959036558818329730669564417164885964198295920042076856502699208988608311539298907401517773627401915371277722086292033144790713180991384475266234031329602161390850605530357711995163587467349615268022598532332209104030582408922447205310397081253371108396430295277146388846302590895720875811126430995942349417789761807250356529114898449836139124384631095364682817429915414702099704771125123959793910798786675640130787661077010277213407407291550435040719526228220301182744541206675871665903823081860028661445908763499289798271868640718342240007415277792968450520766880224920253432588852189905107344628627116517206999060481645715552750412186789257278639169793916153768757405300608429473722629723338115195221101299012975838501235358815410135255979909461385439220736383385248942301228200325401528692670475070071548790919604756344632466674043268988380572662470937702020306585919729897563214869824667457277281084481202628882644654715344575767904235115369546295000038583448653277502469552714049448638263703456699336143598669280055266891764877824696799868871581547716440587697037075881600425185088646085671935993984791215248133216677015124472078969351309270185323209630729308297048034710057398216812953641127406314548135102429149401912548727071417130394153402875148402964718382975131264505512912256017761203688072415120464717738505831091183306351528798566035359685506535131131438288565901793347194746336159487063356216776041221750428833959236498828977400500186105722332115985232630688846388959892298184058564589896175604129836964794824100987110831398492106845403103473405179453520293636825776990262238529987686906806214693993342283815268119060608692302623515389995480753268018295656011675374784429577806017613917276570253479181925380595743194661273982207074191219000139531342382998155023443632069324201831890613073450977496521955148287696924856347579066839158407261853927399047682976583145628470537043269852289782427395161944631788746804290927780063150813010368551172569651780381230041196891043242000412809091462321534005385874522420312530064913514201111576410609730768179769646055270251988172581295647653522073440486934678915457769575557511274107091277301818763283648073861869661209106372250957578978656413487891967756549889788909789015283885885818314070947724220211612181383322111705136466466930843689764077731186210424576405494318175883477543851510922050543524144717297088011104245754435896350488021033168000321411539944692301394865326252948278956289384588842422868124042875178944634236830578512090258290948117494690354956579503938901726737849162413279392950307367061614414765711355964832786207299282062946764861724685084499249567882538067925984980876620479454877229058321400692855216742410705940839191081459708496802513430738602399457150789910628073331648925409392989844193249352073798046642612566001359249645041906887043327234774595652420055491387895651044196265089304493549127710541876158540956457717436454386208491688758681707712791464926834075890153269237450484800004177399248369349726888697072475038073464976395178211798485829003561159905633729397273537491695859172884349150413272188755945111824682843341303070627582135934811460962175674900877220109537084470252817578750493045865019904595213169169329294887419377514984864587279295785990161639728730000990243719820424386255135107786074584487444064185555061734782632957801880941932105148859604652639806476875233501866457600575768371631614489033277315196197688732631108473733020617304955335534828613155080189290639873967959718341920497585579337573082168139470516178898714589526752162897433676825160922495454298537873755951024920706201153227401401089883319349579420598546372092367867009251084603838965448585492551432792211384618510092010825762115365482056525169520984414024305396118854038892168107874659721983593942456869128625831976226400794055212787661697831150185153720520359731122694120611699987989059786516743116632631640190029504280429133794254189784930274840954957074461369564693069460879263213441263731295459486768864794104660065438971238756581801482003617282221875573336164290832815684047749018753738495899539550753999387636058585193652030675366098414227221204293562983779069565554359444911766442883024016392870735099259158185516023953931254293283367184536495175184761707139148927540802338136140004323712035720387149923498649876416477646195825813916539727488858827538420447849623373139541376198258507139564078115946059992604606577660765399943664584545298868824069732832000503200381827240025076573621427530191561751090973974096821480147745368286055138923172452802021895838657568258125387478073307332213222661232971491547213878946977100858026163770996957303199076510516001048120583871970274899340429129589456147653056956933258109313993226772088596243603927329740928568749965352469187129893281493682112397018285738350753776990532545760092131781570843558069231652335535062700780187507941414602126734604968380196375756449187804040159144036572685313662153737804977913530899368041051243856338910759310731314924317370454669920198884017655192793755609984196641121684428954692131265052430363398745092228345919251254838963238283520695906559305153204366053189301339685218891955492476672858248045804753371745280781988313290730020704383959063137796739555024291546820356135621704003168205416232724293527802949267383448724466746300130990696189638472976030841584681570034987559255710614110700656117327016891263236444867160297509265805622172763442662103927709445441211287407526084991196071174476331590767663030722359922283459302180154981230363325569578548879763318312235369352400136929931828526458990205590873723640739756086804561992182129998764146658233548416163715637537410185083933722076987437558254246192269626858916128291761552144525590040887392578309825967439345785459011262338425322619597755199182656690696277872338038003855796295247623185175727918822111721971899932416746194485092089277006393705770326215572926854619516221461690527404821105075614349954535773568914929086753317150713982747271787966259340390472061382297671228014874747868852419280957679221483056554320416583337628191155144419398227411651196258043786685054194107898265257070633586830184541876356113831124069980383376143408905358236181641000101126973203188344600570379215775357431914642690094602767943115488460374259528283410614402923809285386762886159585625258931692877602680052729084127415871403469078359095329383876018501771852402258414675312878503044751414697112124203354710049095720562954627342675993385394649614436748753589909190775692610389029332841805070095977054647852654948563055399766825214697931088485255306372585742767759120677388599417667541019904480718779198791395124017159564850912298067409036641732569166663357279600368396443504771083956658940541038679898856025234475426299051103351116845291534225978500269500704327190287513281519989502126691113262773545471370748061996880301322486106553073156316029280409657616733165899099979605913297902791271366520673457758764029579863033036028837968775476593028942860576404822717954813435999797992155418281126768701960994657565788088204650188262603621898850239943664909124324501313129072642715604162409916070260404902645287280836719871744368492352254375524586214429182599898889079400911310252984935362249568962556636851515691168416292068026009597600637329701181487659656430734824818674675709581993432704378944515870939628799396351984332844388679295045910734901032101657677194571129140551601962454213927893323774484635376001506206219092738275904011787574177595444663495332020209397461402369372221814958542767957493973268098909534138915449571928830883848082166919932496748271126243793079483236170600694352547120105924803214813650139109400863608636584579053727136034634999812775235759879030706512663170369589842845250155345523882989746657396973144501224786330006295746172984564496550337138298645848950977046370736495202500425098852134740858145531119548524608537776663238676178460653737002101899607000747706373076486829912151379561731289492442661757720981984160585711903193825103793783132401103739685850567940426163435406170663608952967805172641733543391615436250920374073122694829499240365238630777922544848881621229727946082769611426794238606075096932218858318384106601308121983432255295560901664886790074212249000721823787523074259586875200584484053379144976102218002020709497001551267311252653934023730693333493352333642864956403867916692249790199560449087224617473964659837228012584078732718138465809143359073478524468590327881278196670686941587442880021574367719072696084316422014822692387692603358092628929489123583043744408207291998755921487967997489110481256966927014149002795016877529431704623064290568240159500429725589536043869606931192062514761117651973175050744213143500566315830984516035522385199091654113912772960926767668544085888236176172349812744781267969159894188241873242001832721522687899062372998861772797670525905293008633463046224285062737272163475248007246818908650332390457086267777648542907770872662929895704188393158642007848139936016733494598089992056085371597206469708197891732836474133362246768646063471300409528666714868491685070210770329793060760769035579407840396871045338030690647906412807460340741435410875954571432379133166406698977555241671832867187236281541246589314157307345576670271207562195470074844124331129001134570739347197693181499858758658491432447336824314654210839544511925762991625906793397188298215707934986324122052184011228434927605633813757829804976582508867222472545220715020797602432406877825636157153701026745371676110612250125716677676150706916952086778059363980896355002746699513667698754997069909971231794700294024499598706014486168685179083014579648589429409565114308182181996373783368996596448787524146465208441557628123022821199450960480878665705123838786732570657175628777050371321458771650936180938441338876478884859266658037283070365694085893914935394543384047557083698267121575048187255925541606596544791398339566814636714827343042352553354488395153992501421214456509330667124045765788085367581959826930800546467186479265141885405214224222777194638710798971572312072000326450816829214246594524606996266287133112114715057814591741713038266600988771183265636229075482936492767871983639316046551965633486516810170827403352260639342487608147075279554023266552561381871668282200337867695967442130864803299723487485818836553798569343628999452337037027229582726096141894572727409725088062956521899160558232152232988563443995103598511680658181413906920748580779296677466613003623386284643314666405527463375728851570693860638205676529375690739708392555346683389027076307510148102324375419156544311483762516680737773050009264465487640878219633795856806994641913579458794699001595549385993069712512956090802361216120285937436636139804719686239195281518772969151378723616333586834213055187895700095019730073732624114958350680080543741629001364597887265339432674025978295287453913137127076576837126059379306617391913970456339088214494785962976552445450181855770317604805750662216448629468413779181823745657012889366706763835432135330408451444853395294931989524024103800150824808918649705594783683942950112418997257905082297398422944138369292903998798763879326867799535114772899233784564887020529921252069269929687876881393915985017883023551796718997246835452908805655449042219148215729038419308853335093854316094739164235450116370741591431395155021085524129517664155072632728762253643911725999474082800316244474325537946641813847836749470292948024184243407160716230975091316951864363428987384401047064950921838569316676841711058472921030890001262282983380937763451592332611366158067326829574386902963319951198029633994397729482519381156718131477407619459792197624498782520395172647318918392177660953218250941483000419685212879901021176208171774760574597210619474703101800522890649513417340988154807551983251606028388886135431237506943420332169903709724555871463903234844443639282932000111586475567000950052618029200574701185299676109342449107402157168849499147816911539295049630762208408093514055490392251775631446358297990603140733509717721668244393733355944374864070592241303256696086634493636197338055703321742776194811156826428840155402244160963857428137468145115665133561631282564561609880445428254294876560323128847659973883184060742799612311128205820805258247004567716102224068370848305853416333051709570549978288440207623110326167347326549102982887982613694541103143005712179899987826199167323972248596680346486534597707628668996795701593151309418896167369656107136442834852931837577281439023468075773945840596347743244317692413619790625474945531238162980186855980630911148041765257612792667153485335296080830690439826930945934497825568417660527186270460788984977748954920496814495035314809832120607688340273563514784489115424700340911463474515470812722302657026056302916521466358436079690581367559393764641649050161117906350947390350011076961633443585170355158646627796443341778958087084486109437039658082605789551737618389316229007029053038461958613667749446678603756383009985615501434075370866212154235581295811725382900170074539098804955784143290916576942164552338253556279460201651828636443952555045188147601763183976660745464935422456084492680743540233096053826734257858322304870697715338796951569923790153507537905915184891668123480453809832657333536676087240864230039997986695686802977860007100797388963746977741660331417192406503108862563289451659765830769027894753708651891555189599811110151299898384942494986578806011606985461301073238154318761274804256137210253660173315437063650243463420884415844315988197258518700306338389926225695420530698260406497219715057072385821947735004737432821143347045149089725743340933533806083761622351579871559970008877507530164261482060538770662532092270603421377311435076481352646863789789082965225931563932165812134217484511003124945938131949557597951173883047472215964742698123404526485144667284684706202522792984030366715894594578025715005512608256759667633135271355692900690764961649898791478793050745713115394076319612197040159809116311560514742541313262385031597193098118859600318576353198962342556324776560135249923271159044104134375923016750886165874880965667285397264918597521989489151355240129186071431181116266777880875639632720608806271875836400958977628730571163382601591388464381146809053982476991711816300090946943201917253644888101754111967392540666864479185689405017693391963645581909519096212340500983822321167101850531969269649157281186853570190222757963899111922949099202671463101265656265293318394296917360528308026303402583852898894560836313403277539818741025792552629618668584085301053844904155653824286364887943711438026229411316238051563640806882632182651529392030236174251993682796509065233371416388827311368917035465920770777384836695290426854402162184875221892144947465073117202985283159440099868695020879896469671785775750527262557952644700569928902034474857097884522214822050058588006237301240752537748835686798778081350276004094777369113688228775883739352514765351299895637845763505719042407483686480592527110696431179478807936709061821531910513315125482652155262648802283242944108956675158089903188333267177006401445962305327239033561970068010796329340164665318307096536078496149222198322429159255859339816635812692637383619691140951023091387950151801053762753169407252682105157791409826678191079090611549414290179154023367790622555906403918166869737546967563089624882217177035669410827910571723641970758774438393311660754868649750253420969194988581839089839689228849885475346076109168564241633765029535535279171884739341836530179508484570211632205849499025879924690759572681734297468181756640267399527952087153263031872590068876912277386931863967999760253518879748217288303985782621824911956875265910738391271587043392728465481568014488880625749303456444202459271470787976779258272312774575098445398131148059648642441539852718225381189387948566876937816002500719277953963443523916641484644038895320962320429668925924601972435558694455591926896218569532990529451172992617211801193507088651340245160270865910870622316768329524129799202536688689343358699618721054515479020917754149555651096966172415248395181247878818665910419175447231726164238241522123473514254276043490929654338282462868782847044054438789947209547890981888370630899926458854937487738668695993456152148417304155494077445914473374228892368263103919558101293643289546912170287088638388661276077757699238324063168245308542036226258624982313489227493905211789429069593490157671496108174668992699698122068278873582414535589722143529082640279630533618682790871154659449581957114613623103422681079194654527024136757686276932410562571371082948047071919270226362469984828741666801940381877819818589549330549885491817431029541663059766559258563426396246267635204748285367086128701643919070409635401684949581631934557466042193636997593212425123783114412399431100581925900360931531387138813421345643083310236759614128405452929985007348248366095492751437404820446497505472284512068630813676041846140757397354178204661364166860160447190367746665728349096941619131800753121478897623706334515938677346633278631680575607351482271464590203845766486879936125828999241304440679542750917851066280100809120749296361664944486421276135170199331825825215406788056119024012430185161538872341637641572867020674535312391182544639467810166807498112760715506378580159078381967645890986029991486337338126906268608769577986824678562705458055739166673813621750936128015006795127508699608335274639869079822646517024031514340680969320441063669511941585649120994285506566783766876428273286566489142883528954508436808390758451081392429265730653019882228282692977307559067405983695464158127887379736500868032244100142838978372390070157044618940276231914910619461537198440707339107992428932340869787409483862777554906696434602860280969902760045808411788619509271724272795701909447178185068329026612485910209848728499453867792368484203295684387745343036704443135971994585785737646488444440228739758695970877664277206290495117328311378340130556936384553296155560921436192497467040287980908955676939769052874246648297011623171488565115921266995879413966100984489414046952989418813389018767826744365162788020219989370871006026136585456924850490501158493579372290505143853537104912375704363055189319706457313635931459892920695900826260944660818711698293093128721626921866070357008780015545175759117325226108379687583903419460042956814840796324692562618613037449892741634222819537140389171427775016580046475281226053890268090204787026351453693267059991569149753118425585632025614404322191019814231271020767383845216706565580153717930497755521819754071127071573231102375820497184965984154703378527213410897052896935046744760831115996207749654333376430631569564119352329583263066628505712547551342766931303114569884379979377046778056893247286689551002764182629107154466807549005262508029817059625438247261556183427309244022553493502370695642549550815856485203942646749957987722219146334212843726803237585763756983890207003797599591321522698269797361292956621719659178209880494311633756628236966883968729987864564647972574217879639542371381896673190196082553504025550523212889400837734035319426023663971268059013723880423496621988488088709843599421494415808070872563446509595889483051241147894692162501217417791536456809420875013586361656247499655704440198867546909548613661300203343158409537229034173613111151013679195443743073274863814350175048306117323886674785499812335718791713733766378651535668480494620924025012503018331227489379864790714148617010554711731051199308300203699833206272617137845087792160082750880205758073200409821077776566102046773296970610129129691251272359115364582629590556721092485528206958472513257824973347538688187934938401480919514421677265559675341731214153347381053661072305698589944018132347072973787607656101553211810357663579125156036285569338398838204973510610752431633020628984483505653241197124496771055097223565642300047487601950583054845394076939024189262267821936475099424636067774236717924373841137594496243817223359929714847758284979641540561882914077163958401049905684017327368341057902502051483406900290955308437477874719175567559872965518546423049558807204202774199835295832195859039673156615386869497599579118648733158988722446396291737102889694705413179539308602281913276050106635693312965667622249050586868388551212399510841207179350833945024532425473300943551552451432709599203076200221591099718406808982711755659182055885297507810641401506817651439682251115537474317050079029651474085906269845465911987237633179968312781092904653299460585786831709789507710798636097856987262481611577210890492047729346130196918963233890492611335153859322022751665260701867904610518249829966802085601669299528000353851617749874319539802589166221177835009280761408114100190745635044467591605458575987636391166401002772396224893759833295879153700012526448690093929859512998161055532622056554919892394481905437774739174430667126815570148603982399452976080382715192054539863058693775419480318791856283375453945568386195455092426112310069273427779777776298217344350187902662506873972727176168126337585891988299769968218029174866502704366037746194592484409695148205120236667088075774747227112642582339995710655197366620838053369175501816707737002388582969877208166118675129763120734945043910996685474029398366685837555356019458836805662847347395517873458232621119349091257024685142295488193836342872502978637255813758882504510868680070835847313665581452082105468496536112961553042170517185388031731580282655445256164681061231651948517422279491994537837947070645013401397587889369138466991595132925587510758315549251709564986182223751869563265207936789064951614438399949754287332425283824707783298265708727919623012609342833040210863769503336949234607846981008544639691651873799951375506925583977084032494028606027682000570407528940694520128387578773228566003131838491960876990251988203419808556768349563550724113255480896134427930567202735276431791465024805250627715372859866028005647457531469337615541601856144388493358339208480813555927036752836431547779094588764186279567013002472813769472192083583913023929463586168315220038173554155069339369382696527150653400708012976466653184394647359105375509855218317075846720510385997739858792048862513981637888146031271784778460630410465184172315517810792063190173626768558156968426057511111691019193754998373282152898609886470387598586486831474699935215057825297578579589888484024454473190029637347782409727315677939771277056691139876587285539653549408320928669343674086969496593118551439747598149803181629771932224292909578932209748200438032538533759140488216225001345950662320957451825987063709423731485468730393413989963276997725669523776242231415585253225575385456762143501001637715839179593268406304260371062222572441748776557409570658299034196796060637204650856793323816620660971632957522274580568407901960781767985379015347902142639763351322236128463475094835376020225381529148578231794685529345263844509478719296943811195861766636567907065358898130919899778579978409725859470421381745066305591924285530337212383103449862031127968396908250147705807178239348490620259648481482900336537954987327539734424844613456601479247395747933655511608108936974307179217290906179905650991452205852424822442052838999857223246743691570133772929789181007638951881564657837147555423063100350476046813048601564975588254942280872355132918234262263404577049126488763002066161739114167784507326210380395898760729639380436098530983456550426760183715646126200102543311301305204743547743322986848221140396470123557214912400017208035247922970136499266078365667810271250918081639231470723665232869676032520036166400859847385610109606969813047304824511154388929128795568133400489436275012676368288123712046527193602233604770413174219681510805464559567117931491589854902619078693667583135080581691399680976323343137244733377410711318028023056093735650363394291702603781237955554846889524377296623791865562977601572494206415966174324242880340087395614430514900417309242782397911667483759004397592979288278696190280731651366533886606036984480586102876089821703666047926574023783892841457177024182368602327998182467127469984869765496327831536366061866882056053607663063461553460676550322455005925575439091477165636003659840489552339441058352877187533548912676944680862361710613803047856594069087241069372708934175008514173185627816083883332282961920572202731853523620487331964931021617782862513362097710248448186149858854353218883435056394280243200017286924843799849993881384776841911988368874675796520189487024792508512732738686985796724022508316866793039170035240597970377684311430750596847870451606889579380111218640748333808339084677124611196205187430073931675915968350029455433897748127107386185328945431800134552961140049774556871699266015928545949260702349682728176351791530714974219681178917942115578153588591892234809086966626401251600621171977719901962936848333235020237850600834956009352963661157550024915050571025298375849263918415054816295654985462244906365086980203249240659391404895179540700643863075156780191310960389767308970813708004547401052225741326515696978102284797885407209074292388516607838847774811117517966990220371950457142707859210299788304212906033852370933632798163612249924313736630706116655916124696496700263034445431956879746038867672275759871122811949012047310543119595789084720332820497239207187550617300173500800109785611440329009332909704304220101973249132682363269263779704162267213112602862754851957360539840093034969128489091350195025132759602700153047853005553773022636913410653633427312741410499200580395638329608123508358004538031972212263240947148444858329627504076515014861764027909714253666063870993343302656936609561441159397068263261138448535411418629446937740994219530341143201046194144357275962963508869872333766437636925921876982962971471447481159173298788255543474003479739702432750052557984772195033049909127011364352005605270508192447734637934066178291852208200265268090996257193887204675256671710762646255143347004242439506960165620650093830434019242191722620014471610555167002145188331956604676226666928208330580061259561647185473088342783645508078348384362601632879089570732377602293050839004900784025357102287057310100237981607959010637027013882763954052426904304083494062570271806623016771239876085277385497046464479963948446132123578111564448696332079011755500596981385118312976533493997717168729477403052358730154347693579943026260257216841870662131559615554350235428263135073560496378089993925772057202167703920198609132361373350216071769688211001744926281455251365922054750583117402681616856677687760842296912949864147626276363450484944668870266776299311560309067852116049622870044436805330476764464128392119955012170462210318851377972017946481493339654095984525801534514104932114828977127275274626133288399073591418244793672064617729089414352408919177148706674221502233415392396739135130611310807195071861364977942454739644085678597054062642158205272699353226244286978053639648846593437614722191086663426407162622034859291450655520243062309983751544529008773513784281250678233337655620672151680238328664557177874689989825939764823162633643620679818096577281064293647821009804419165192782300856308854298595621077985976802746107543354038480372406998109024770632849884606457405438093535464777823467210280621598258634838524153664834773634485606980289274046690541918689577533292288672090568250040066935541347493838814789922513389940221539730979596490791740191917403935357412958108424420906877195041512929253525374338594025766368953624849244379921627838525413497277400202363865663012758045286877513481418370707666595127170672121939275236578030273196877939350240666123059684747780600869093492340827642606341873038394177435832195604630950108331866370247805956383900371707976887596439429882419428075381743933065782423927473984724722381401381093691066951885884160187338261190643599527379231809960689798262586439702400791749563001065787372820481871891029063275987675949294477661746313860056687405728068425071688477831692694058827486946317267670642673332948943626034522466197998308032196691072441957958651674561192899840770793106805789383058337990077488561530328893267579713256558338220358235949181424952388632607219858529849895455218817646333533400766741288313579975130537624192285308642887846340480059430790447037194186154293131761698011512063584582940559394171379944648494953726496062656742313399189097654188367899487973373551851976360594234392847297014217019560285603484840757066313094017284301825355712432529041990179944719257653189258036035994115053328777465017219730487224748868238150287043386015174776033982610496941936002717024692957747297894668146314732973260879843053963111823817631248057465137608791070090298850409542707316015657989677319748376756788517357508265643528018078498862614728364269024770949340400484432491339754826541047945345529383062105715515580295270739175633319180424070675269375949518321768512003120682012464264533019442227364038830789619105588611684392882091388093509283840964450197383646018064841703101228022786789119059991396555411722824578534924079711795271599122421785776059113422754712616887588139389525078158967496745883017962242528235402457577071210858038523420749914453948384818764277464298118806934768137176409500476954714832641801923526377961221930078677487970069001827719362980123857093717467198250055311823489316148509152830973729114727034594313706216847210169001670673691047652538730427046695392495329991577263131134549363195258565871221722640896452929568462367904260347289801830025686360881778226992695316453430058868674286416994621656973460582748196087654730749116139332818950123087268702340693526968431264810900426989188796079454634094686566803654429354380896072096487094994434179074829349438603276160613914295435060622326301565404137132731387749368190651656005249969321905101555992969081643870395747336305857555873232012503312256658875566048519119421509895189518944576702427517285491458245052639917754858616647234168955093034251217583061673055293880162507597423690639646715642735148750706209143260939143657013982759153763510790807528200727288314823375759655494748361632980849767322488854483301721267755193528121070322114882357812669510841136959416314496650390508758464061079705575393562583369800816000761024040883456438121966643926505721918357961711999027462163005045505148783782651354670253175232780849222680428659373857130551897775905824142568001553042144215170869875893808719123836632312270576760012003493254451234547007172919809013155550356712424830516483466397097146795650589372178427354414590223224647157500328505531540913268832582962426247477171247522250574619400858893270230408404635877004463304439836085392399854441364958557179579784287544809141831751194053155271897234196727185391148058454261125993037370252691164734845698919621135351904338039590463674393576856535936683326475134871735337123013998802991524318938087547477081148558515910506517516553770317717669553752201045195701368227701957930751313767452843444110873525954191352271541368820541516182942050746145615126126528070410358384387725364927761280298878649081075232901454723642905483118655634556890951992076387620405812845073754964861509387868869943329236428188256870132349825186967610205984875814458687434235987873683315778932896960097606872081994269966682191227824100655583025361152569467430129370383631466606828095213576868646748094359567177160195435780589187704053413233385473867621425323509837466529660285408894906127633801590754118237762865285618658834716495275638301671983474793339517836933712573533904956341238506925638533465105717706841750144057477234111212758447853709442650661751499872927955602191506332221455128517407883256083943185732032738180357158081007687162760637242424253661938931420817256937180728893676666641963213624166535596554119379520396529787793278493194353359951369066086056085697973156329758285013510727304009432395729477519396593198851383249422703293157854759362958699681225111369557947331471816158923903792814680004742959411246920068917396175894411182246466937019130952266026400588611230515879358149597420086297440713101241740070433597726695930288336233041036871012194234241805921821019566725558358757569363868391940359132565748144907165493902805738269222675923962548184876759940527213678664452180299329313969373249344351123708578676024000532612560969232676715782654806632309360154551280857321639134085613759230936664360201422466040395109534233577737366788493311591347148188447690156698428629744467773825619539144924417435805282265955208500129427584066621358138741794396956095889744313479547644331785805061242902660653733903720851849496191366615784247409417981775003261034503608161091243406910501870966142159714217087292974183592226467043640738573604182826549706147961334089152294386194014684974391237399250474667725019833711808109849053899054109577375253244012288615680508746967242892715027273099375722122151891668447213157710150864986236814693688062327205576341444116817929489798296500969436406184276690795970623597500368957804000143043543950552532140824521997772818837137659650884046069759529894708487022641161855364143880293642992830677517083864551245470951014315892511293603345975967764443442923429188573681403447283933754123022122615088621650670344030227352951180296031289627773346412084459176970138286465771616444377950049390526975327322412081789789481531934991732039418676421750864477899324187875883633900283898351266904768656695815825511102062159347012684930433939899302420281700831159409179816767037087368859430097191188465597326645591770904441334876390369008990382669699537292444928735338708387285688568350535290103352282265442534505582210986534760386121828222619135992600682933525055748738039621365055133889553746687197607647795620974981335668034487336734362221303887429348925736540679811790587194609829980301092303686388248539093328815644273377219030242878807666828009525853008426937031630167111710099894999441076653381173508958249391441644242872014417341597991576541224267839225694554966680139095069435368900647912222713008799132946432660112693354193388606609193138893155985483059578876110485060500002003116986453198429962486808259677180919534154014405199761628054416296978510108675418891256904778907221919265194603856003233131762537981434786674105192932228837871370776384109741078095634022455713823412736653750958269867652473714854612751196706714126363717048973402379651776155011988299258292480203990330010005471387017228242461359575698312785465698706086743021868346009457451091981615162908639421459222749449660809889662948493327401185828422532645760138985670852111104910575595121645530323261298687696124236563310882303419093608371359714237024662452991812136512592711903135111883163401027502895457811599079901578245641214450361722339871539748880954714655084124996602835823672004382509561568654480516741457217087980248578858710696838907205405919330491161032704213744007933594457128800358787126732722285317029945709435576615038656699590103144718628776272737187523905466225857183018415601222654708679051253905531101275203181735172656038113017428282410769825258511646007361560557429935208660315474903300723353369623420594899119108197087262857603048985377606593261749747926074001080224478881367920765300476049430148167419683525432384426069691563983343922208000029363457610726943473331685608856924641378567242857719364953556516245231771235731728083841138522744813327929887248143821005529343029545148094185912439014170659524633099078849869846635843606144423729730392486625447646877778813468608334986868722138540809310421194668004259245012443779085377576960216239921201061315434025950648590360107667651248777621847172827144715134627738806036394597295265036883028619635081025619522600496481992619658855185146630782338341791353463736647772673707279192193126537453872209228311372805916831858295758166883459448895355270119107964073096401054852236346941420088534275419579925963053385598148769217084264541304166448972208257421123484160275660314937180555857113561732999144313601845817481963956901857117295029185304956220766685711591031268835751586842490308670529958333805823595800010650098439126733919617356761109436216682203481657641990555112662818104837021523914381988715448776417941664897892376110459570405728982582900359035459181974109804020434402543066668361991284829501152990081175908266171892266657063563556007413745798213226953531291209065469800512434775435388385303257535548680419723814525390710564814728160743463396460549921597048311555794524298301838351336423853181706202757864251170708279404099710807457815099142806189327510633005481610049319131388782279605656936620395567435422538796854390416310279099602080183393170924480956489663847979768989930710671441309065641990598819006077945262686447781976061407226928477839352997464177084687821695569967801112485341068109763356884715316834033470264550784821354971169510656296187790380624428125607871346062264503047782068975405512212191375576388373083962974362002757110491306211128970532686325095623716470680253987291708568168432831825601684250327626030616542852703346296954036283389503765286175869498678415258523439697194368990827487811786186779986725099187976874945544281013339532908564627946231234223995242183754027631728263540170913140382440389162090218469273168935318558186916296290061849660731634740024330683960862343981596679597719970094205259633155011886298797897240385846357872318385628861396729104163585005877794269419137366388255934100205951825263215819829084321303593938349045735476726547439651336257231641076679729642138395719094784171114996837505572271377520482235354233703849487356458476034621571462878996037455127885520255987569248985818548164856276719684273208196669741239809719047227707256135435761651518171266297468747005811725578404447675115140527675505840362181949167822212421778652215196355691997015278967345292379858072548398172812697445590641924995828863515492987435183167372379687043258458896209909658308781436823268802407407690330292282017331943535962573872569594681335897363730011204542486599256163104819841643496139436301044294523235865861263542702327183577440670348534720310208431598105245545684302978450958680908984047792854727294907468273640211568596205081259118103627000670881716835603901254874118505152535277329546107332593519161560888486634720706792842486244130722978325187251375572299487896189073267091240735897009589427183022921250672846199635898502283109370382843506993382993424293437772082722597792566279350046785532697847559286416237454318351249629986918634878077527654217036860305667602801101171144021126756272352583791496502541260979687103084850154250013735968667200936870890468524221307300439698885083674266228616905325982318632880018112502571505842616982149132826854579754808064039942926635923951855453190808109641982754248501758190158865525158884187761768916540202818945881503309436110788871617279402021346513588686466006241112892467227021008503558626858156254782872176732880326123749577582062859404210079132341659854474186371420187402097512360634021715535396180703907232187178823483484471647749968079980590971709910278401744017027638216459727190949462564275422580996766474296510343770212445948263811039250915794926367573631110952892306819974103679964902964949660741261501947880397509025052966646174552968473793424970582583304162006803648109542798669819463550842971043417185043821709835029674315697206085502388705838413862673490648530032236803776366274347142869232523733273816990308610348998193809377392331257665166922721161433437505905524758761375261353567847618614145769801085049674065805167170839470813939332430358739068479222420532396914612645962732362938031898215784600573718501821069931491137078036544105414460284963794231324303368190498913789323329771126080092637340172096941917268691331909296124980952333988974378445137277502214741367018745297145505953891673819349961223932912951469457150690254363612724539680450907870931764398467326053733968078267006012563258727174359084330139974950139361304166511586610633180740771289301410294012747058925497702590179767061617968872572945099582274192744191162908844163771325228822552412667243311531393453108379425981632043496020962988864046869370690956151651965512552701929749988268583434372081013544834483122855751571152604754669567912526682811487589783402445556392962607396576191964780026889546652942633003127123199689529739769946247820321761121769190534242694122122779430087851106909190560160268869286956113953587558096805595111076686915792234403738488772700970053338471534324222280039758277822292690804569145580461055237276249382805803072291686978829819007724879360426940342134226016583301056403988073087732793960912154333297965010084885136247701892361479315717332894658680963727378513970824724814700874111752703972754346543323629527334134117812272952772887472698320171000699612683043066740196837471570956084085349627302576189551326940136262025030505735386676131952893800460894592607197223825166704903313163827756943088564337198186994096130248399294012275718456085587322354185628004668916751998833109090719313167156311557253650940156677887433943874176996280835946691811584981503278093249648817708728136588889890721121152479667230171706505741464312504229536779079692648088948424794088177264427631145622482669580276387908974404809651540795678368718775680381381736614499041926272753242412351514860586890178521529743508594949369480509219188953535367950253843960272922847622416326034732263042833053308787463493975272869173080509868762117664656160788543625950162267077396591088371877128850203058800548877958965974974258179405584575002675717860702592315247592996674003552298152534979641246450210512686507247123981343424720884076183139933678986934444012555780860498358865590900676786764670284672455201706930499078427106362572514125927375016099866710571988963794062753276578284357422640364084386216325032766054643573775550958700174289337827223712406407792266555339277586424065913569762205255557879012940734555245879023059000074570957468439958380366756664483351265433664228110505401605040402539948554395517947572795801921578051440121170296151563906018378380555541617173515576365568195239507019745420946827731746816108431404626057478620360793679342046580023830530111055140469931425464521736719875041213641432361395885911304848004580188069161819687295966750321285095777577210046518094032637586776399889601770903014803041734309762674247611016603614602798954474555170822729950396471914346824483901780625848752040235668594160167867982303650684830433042596231918797419467408836934539955097616447667748078699207388469076297980979011419216333358456911764701880771097811535161144110183523965954451509230004262300956003666877462207601922451275730717754507491125447140960705311802651922347380260200450892409851290426075823248163495673409469168694260575508965409643678399530559849598424122438787484536121148242442007191993301231217427968888727410125948463845245296483071642215654792590239221107078286782522530816038991441949773403141604619134357937955238673150476034400845040230496348313347768806033466167285361937586802767981981810857998160136705785185395021197454841249509751496776182599329322137547574214081912232287494412135946110062474256813922767563048153654089391170980499821894949111115529768333969611029417601969456828107302455008865978544655030478577554595103215216594293594928122525004676066350968211105344920692745712889996008690862943105335214174222836696772582571962146744704214628225346583792029606896882886833530411379237076572238149706883577373649816442590212599666738571720965458102824799696166750980175832928710963267528671731501469635731331788480731933258195805226939349951025163924413346753469786411197320455039690200136215362374061965244411614706107446113501676767565896657549034762025000580168818276524878226530405975147681214570083789773903781861807842173671126013148861427198527444052941762519071703838391627039281774025209129324824825763165949829682045123537755759862893177903823031740179023117238022250753642595459475824131197483517230431424246147835175171557421047825841990181115812760696236932804339803831174527326783979440700345699824294057798184992300312982953147989061105808778160728321751374992366268665538531564202837072749998377348266134696523181129496338336921341097089930849404742768416317118043620161050820741803187676740514744551875831458056211440279430652849890981773159621255926016162151848762402205807969086711950302644315634208670206603769109878975363179697617684300104470840804231042520868968912588019626910935517631506161962608514323829560322729050771083171922368646417855442065099466950026824393073591185588691573376588857841420702604165761161546218626917141835361715744029890149189676652450358403004255548464798027018243552062772691457391420077245742855634440448162378403265268653309138033582230970221166901184779623349516203036188585721727987810101649260630568622182806470760248485415804332697860900489745007332506923722108840282822126663325717063382876255065536377208227890001181040584828135811122064024076245628451394831390176464166400361919447740449244230479915947223439796537859645294521256461833374799215335785133341227755644999157432475538667099337156348942858395668297464692605581897404717582622983221255559362591909331342513539203985995041878957526964045556580906063643249327344495182455208033579407174151523421940605235314106267079871466691790926854216091733307480653616613067612142802981335064292209324861998549321251045061750697960226206224125707111967590985695644298709184382790255034424009300716415091224663077335074376492230637654771930422631843086003577725453568250212097272875686128699597829653816052165910359197111327717471446936297448397448964641137562636762068592609729941269092310866069617351491878905491394644398736047194018240066549398994572547888292210560148798428750344624402016740002502949443735312657048851869047368732116822952763197371159164261428344544060513566453046907044348817352473475725430108622548768653063157827836626774226835949724383474572314405588669293758016999399678874540837191889768111155094023128626287084350035536167557710512478455315205988970313892821241427434618097274285084953335491568757801358136592668042538557310336543828981070335172972291622827448163687964262874725749961981541904581762289348411586353095816286393276093875614451049547473394890544024530902292452440188211011402493759561036004135675983919569631599359755074033399992624641040796454203852260851046061141567953518375938196208467394556638107672614751338081052402717296342968378841139214080931416617051127786082042376138463879955124931329605454806783593029222726959930311880947358667114593324896431773339109306931866676489356021939890991410185768765895069215269428478725495134441993903196228183118449323640395800151090102352652499989027317969660071205355952582126779466133550325396961248431644178863761285490472638163560018131970952105732332697863135960026204578486940907912063486542798994844564106681250440875433109097731859817565147337262736766722839584253003738739316129033421442521072608754167325485710220327488316151735579024559126497718385229392136969305663215895750879568409405563383247865378387962186648516445571251038774646583027611484912814901348392584197213365630287596007394562325770965380853192880156177958667834139463277356255450306864663764411743157131779267815983471595473049048158537588572950350781692963285691365587486568729454452244711066349058458051459483162417656137360870256815486722313606511515896535929017705378119507596619883250513838193832409636805955680350562685602204766032385495402130144671282159352051561951519366694138729756254142690339577948590086496703679372269918691017211918963783446621380083310077279805076860346370879686101762691429118461073967411873075628801197941280107449609410279177231501360760364750536375794047328112495041075500899676818284025880320566632582163101671960929416991918403980002743643473022238640330698769224314979991998916071822402020796733359306478652968759249983027696902057107888272602414079285418674785072627173129531442909637660892361047952977949990770668430138958605256935369888022672780338733637922805500259414381529698066538612235068418716224599939828356013796820234445460406395884734054262857152078489135915912960066737663844129683335214823050897506880972998986167298106293850678353337369775799167374278054942738469074620060283689241329967295552178569731827909417200772316384407797703219971437047333639279362011942762330411354447878332677321505701420745175184760265689799574860462234590997096774991453417093589731055207557475818119821715797888592038819686593008962182427822629248275574020961391023443690882757256029492523826867486787073184172195916991908438827869675074705959122943618839257111594989502983413272317539860865135536026255133211697339610790466981303996988896992029012094079110754555102095230231534945368247260139018445525408336038363458950664688746661007182458493353914764113962538129677449699392789295473589718877388325408998354366389561461443227372366550454192301194024723147010874804750896279178066409805781604941220993262246327397860076895129960635092936668171964688058650424549155779101669230547068791543588393735368629516309098641512724137488218996760555625931465428169958679968864599720923756438337775669083562960889969438659763870472352633032660984813867649487323566126227509879786624645124764981173289644560534957706977663211130027728029710007287048834947230996762927620933900232415537364257793757269887348985314209413687144446983447930052296421220445243616756279490673687855168754590079483869228221083140356234268328185246947196204796905245704295819788792098095211964920840133843291892968167816435880971021295300251575886823028550657439929504445530767479811101120226675312769521473999457865976042135957716927641725275442161232617275740289801425229677276034499681320482782533260611876450952063702476483076918937654556248063057955872310681388985514331868604697527622606323588486539687470272852703719069645444330354842589617708013833663039068094304102164491882367458454394199715346834801998618307004644357473761633419656895985032269463856038298667385855786634347535923245071793813727935769728071489822180063056628108140768712526876248326640984809770136218477172857279592681990558848972171657866954888276964265886247942937876656717570979762050571018967658741839635190740155765613830203946971921341988247595391348581711922996224458419631099143036260762274723200803590656343093644745187516812394365795849405586567559728379581506556134174095755676841756706768698282694801644888817952723168059629875159934230833258641056825772412275811830325069561362409630472681462268124762231747249028149471297473100015112544458988475113434801043915362553862634127684854919606399348722291064005676696444855841601062108612388288824335183416388546783253787588943814992753806487370108935555521613101668467651923382201721971976858441853561718240856389517369497174642039385423233664111986705047700092617847074822566597256686248648185554452119614530030719660995831222745992389733196653340426754909027679336151967829969846875643601320495832907206471574406285808766299766695986559169707607503028807776785445191601029560268784046845454440186853649318515208082928019318482595315910871804208569673215132004048469642456674740631934582569331049692621968744010044021286328158456216690271398074662562146044707332596662243156807642605281690499496486108762266686155593195751109097536468957485937175350312278821573867950893471362710932451341602258822358067665094157000851584844530603436239879325019837506400531383554124848861507596690795140257452269609597791343804519239730573456789898426380960808713192043050893026709267366164497765164902423008555069454763677077774230833222328853841882272669625701309073547407491832751451282733144374539163296976466405205787175650702147521660421924305202730436626190815233604863174301442729925213760004608508858411812995840751881185434523900634847355915213345317927689189433698055927182564768088101573503780136279529568566128199467717558938212852331177630671192145519470342018425172461368182758185718918462403204845709835248243060878988629853360297745105664213341591885996576519879838236976247994864046550780480584655788203112743245474126156735099569804215716153532916230055810883331802432523546349620795227584561935492480534696088699743700923786233919949197521789060222063513762460703602753220376167717987251137824847030844734218046007703269656727912384963665489450473277099071077127160280459958213542698821302659436020470805134409185263410370712192157756051728823594285784136100396291698899578641681680845413930347691520098724506254100745088896216953205526405187366554228580067898457182322746188319097358591860788177190841256450896976053129271100660166424450362800854543962661867729372547276895244060948992855008686598430071158527240570605344632684601374747434768659609976838515555156107734988043898148646813724928221907016990060038063193575553672186714943607960136235280215645956055199728045153421071183605165510426640451348121741018648402784399253666796015951821053980558199698026932400860722454869093810505148676084402148637003192520251723796117772156681362738999591495280472924567437113298148093901005420926790481613872786976406426524797405026146288557239864072130566111741205486084175224112451754870158957107738801327276072739802320188737958226438373797084150587274797306236430131163683272339695002000297168399941760363233855779838198727994845367040621759282502686383129421352829658782431565249481034019014675788079402722377019802796928854897662954626632420844391462561979769501739298683934760897552146661152908946106231214482522718854670078575243870770493630926592175831726826433222748299627497294449491746983749729603855933791250258293368886261426770629329108563649419526026954129961692898111628166126526603844461187274465470952551367864504224697283120892260462885349160627530485208134286313813996161466884683195114203381968604465070047317290553775303251266273680545595090598248514118846913753051590307052211102528752083860866146846179388880930130519995318184389543390852993075125230820260309506899757667860304544455021720335952408338101315111483878182431390946028378655311948452528849002306095310954860981864765479704164010408119329922202798708005765878574031193083098610295066985667884663957797092651037060914889214318185956804414953082004789694828578752679244664306522144801823384258762509939643908687102957033254846442174456612879542875559161802267850975513692032268197818777049541870825010465483794604500100158325571963200385189712765599881270691166424175512590425840393792320372435277497977506861946258350542317976375568893521582659573906750889720188345271737986038546088394269078148076291005407301713825286199518823239583951273802430748798370104274214955766464806930723305905130852460204042380047443903102252964238658768272237901557915628591547790459785702555927600107211368962822350212325465677016473661576792234211988428421932118987544392139426741670598989606670904610764245465369666698922414396907794770267264455543350399168080730044625424390069141108107314103526439475237981623929884404456741578264878772231798962648919525244391671692241727340009888235776931467289919499125981399163849001331354083167444048590474982796704047663003562600697877993543159049603421661632540958380782936063143803185815613461789784701908208354402387824028651846303252330166830727123995917165312017905740017372182648838164281687063062316976597294371839132310432725894809829559219520856397238314394013675169676254630190179896073760601366811809396557943581559008490461295267687267596605946937904081884096930268975037615578500336941404720606734352468139308117763694789036352499391512559604868596800208037971037561008386852750880398023723033094576570477268997668048335562521567983867971287628658671218549321126522498528926489661285796392348602610450875902818782003289609207598937215874010929581839178619383282171897701276782066591378577023760562015755627313425982315809684429142632015285147384791365664018961852445337007858737972377223907834409661501042210897928986518194506953798543503994666525765480849737493253039850955841664745280798481741535027535424843025881039722311233191433772911322803488597227209439039832196090228039470717842001387669544846857253720029123025854584468034105888439200985182577422841994603498286915279116811188721399842740208306195437031193395556066364651860248803020869027428000009122877982862171781710924598240361103464225850548288343436988032840596378192554048574346444227078255347111857159747505378333987261340218713171812225435927850851575253881935797069594565808222454392171848812549129274948453848893451420502342289288369966214395418724269024979182904756925422320295879969203150788309101039013556329687250177754087937963972821853811366821642125479408450944604628171758704378269977918721135374169589420481001203101214925604538286563392495000054310727729307639076070874782184472171162177959926650156170930325973544889236775370231434921317347433795592800126914228759401130551798023012924199605297303313094627977638032679015101381888534093777116115230924225690206568117056502574084637032916064062699029593585916656947417556916382835922639769485115362253920463196393153679160418213768321621204419673870650233808267356098469544699000779319528969385898586942172423861925489600693368722879640330322975994453065835294037314061466542424708299626823076605110403042616421522232728836628768396476502289525101174417117582626839751986280168111745976616879447682110842170659943528656755475242887851227551944593176774088778449641327004312083102595940930934897947102051377091009556849097284664107147566805097255141822594073058860533142769628118356392410950765548756792471190784620465289066748009756463252665142706414092153339060726911152915453626265498217654719744652421967914300946546349481443750128161873160322010706070359813207723212785958457252967881039362956228479092110033536230131748872515300275344061685965948105924268659859012991406579725150920960853336194101532820126560052960114641563188236733605236735729220707157950117263842964593125067980175289281589928500075162709472186377093222459079992579342159606088645374277443563530828909770783988945018307817620349234986927987700714020778195415006863392256451046636470447101161027552857384421922700470049791076063663174350484518271799015487868415718642486025884867919651762163744523486221872077386330185027583381186383535131504441132171431507999832164011417880841959232544038237738471699603135258420788525797868905780986691067890521626146791191814065705958211432057533084756991950395395187358743514929348071945064167883511016092328842644815682756501686841936339567596386939199304877830729674923468836344076698759234469119608506228135983622041900219835795729700060645527892296301017601071462783698340765732416348199720748374642382233403101058445158491507184062167244400349235581821701051591100194781815830607456306576300045448272411148323246078574209387703660203292925165600645370129779532330073150867446480837952830521869265659114646877254958127418681285280806344537186480136784264806913881998735608903253076559036383964801156500452703913926795214733810933102993496881599245717114966746123921368232969614062273253231231045121630453740248157570527547584787822769859631490922140566616287541726665973706791375502590453109754533125274511536594961100240608414423814073195997960987728174949939931999780659005315921957081080073239821933274067873070455653262946880925611263247954060398395496762112605097801672626826297750022387777381613486941871404554155122790100019289701326437610181580724671517191273331394873436227143412918783416277129040466174196183425407944662166824379191685778371984837787779796127194076322630737358464991021675394478460071703197554701340829739178468656328737984483490197277009397606954277044775558007438324632927698375728981391653213396995641597279487584365465760059603682009123216365063802950950499428682369562421270358453484673044305510852714398001087687102970195574148774663379333745054429355445782254226840908309602711813758142870635205608238484517680363689167578769124632631257996499868576156520565232444357885200810590292376448934358961822017019342260590222067571694736787091361264154011442775950802691775492570446411791237437554122593896720629294034730567992621930291992386193969919276937853930436496996672152228295199326684960982878081997201033625069485789873916459259448182084565806934638367029643668691420882727805892018496938851755244063834432682366065419680736730655449203784082859234342915004616638102635923097074969362012647696556586408315074727893303811175269475002775295418830691337158881448951941027830059567247419322247326836260180419936611721041062300681464591667282737842859798963906249447257783482533091244991141432031610883580697030631864069346230420322427289973775633336454327018645953135032319783023072217379730871283984356863719312897559520589580866639546153575279408903465396105873727497902685350517935480547725586753256342034415152860479087503666047293753343677530764550339784104780845439392018884606640403177660146230404919276841374846826872117499619227732280926696252071172448671836544631414944542959970682211218574672682010293467581506478984713361376052965414011214112472847527394386896938088475302680400953825134502857572007099720373757333395948680765940108754970567751511963075713661045057947220093924158077568731077218972548977398697119688181794266321538899895797528915552941577717389341564573875458429574171119744770952085717811079695174057326723694796038840941493747906333410691617001111847014179682048919930229339528305648843330034001307423571892699675939379477740385215430764237430507548912642144717860140208282556769587957468857729521284252155462335012372262423435529589471751245008772214146840277203369925082671458667063585106718925035684201626391994473400120916431715471800313911913693192951729711749446793129051123388598515927737567768669966518806734106361242212879004235087230403149710663558806388027945940781857684966059883372490064436522913427141997148191747878357787749535938947496322401730994309706695707688113233002373879418679519754592978207644913761329994639969437442696884708783642044251496878376366984695978443136774649464201302257625696225063226009971121043039098484723601266818118664779157060370713805686588270689789169935782700834340802179034865177177871911866334306537241570569701064430441689807507362597105254344488330917985467836215612272141132334513034507565843734713477402941990875290013050282153224552883395043524033476826034244050988748459243681854510867929058249510763855258132275022057800128923234881787238059178552090502410788841924324093657771892872494072287103623890802363467623934708775465678845573792253865459615253957750922255193562290861378233331134180954520496302655079780704009723635720416242216383035306055421579148170767894416365196644216834903304499149024219520375122871861725486650103580947421731239645052489782613957941075062751181650868538084122189855560910570617044504067806880630333119053573134063873216769176385948423525537747724881341948463283960864364605911786617504326728345065384454164683118469422736003741146683698778355425632681811533265924529078354297987339706393794282469213897537170615864132361508582380175696836942631127544569067653249901465583414057205591998597465641075743933382723730077230240624143918267543593915197737706100247151408426042886131090737706676640668230551343971627459748840379747232751692827548513327302308952440095789021277514925732097010573579562505711892139377978921753526098570832346666983791614596574581581141668679090791617510933286087163771248358936053601580150370825891698676067681873119698170393059361005358633815064142085185589574792578933510958949271219666474471301543251302795448046437958229052397260477517212577528722150361649072671055662461492313908391214336598855505454112217605100433379424694361003096799101357421606630105081951490434472320321083862411893793589201120866013695539044616446047804784064548252198496189423367332232727522617572708612941927969203413376797979751473392283236426606879491444981856143334642817819498121003037864250687221514082386965850899898429798519461587709841913649657954555794773125290047642649298501042022519543822541257085782223462777537751999112178070274616053973033002315472568654603567407194066311680845097166341822718635140776750083953870744140762498557476295227743451579992756912682591809895109655077462957464208174968241761061647047558664088696310567038293618231508612736592701698885435929171134981975514936944333675862793978931024227194042646857223578987733237780547655363855728464175376814749470652196318968430726103677891894570344092707408139669045191768644590411434037528382155450145363196064976307091456420107248496889141390574564547207488144471515033509919791200218957185157811132876837451975503752234576416069137168410151765142625665761655039364889829276258162435237131247025886215201689152645635210378407880609399929798505221385913589669066102821318839993166599514273597647337911148041950636226901403208746455746514296619721955565868254066941001235546180431922624379189917540119519947857340322467243454270704896863650219781252764935951377747541683822814640148723591928242623006128650942437417333600325890951521922625369577820661688395058346606813423849928953246171403283175138558654847218560940050100095692471260113968194103775256957022100878403184656598884752025895555793340443255070465942342194360582308799204831764046369776254251321256599372372682460256194029026599769617064469958194093455351929633881043361013819308184952974143182056842695144217044006348904966794428078458054767014319302863224410300779258457976108219070600986264065524603156802755804483503749351476095316098746975487766875801062443795828651936966580995656078210599075037274146585260767763343328617301273633212796976732829098570416498991154816815448332194047162673563538289926748670261199535292711573471621952988257063381421891591288165119268876773537635187737004538405030634534968827433246454097928862486801286797003960632590743328195259333376934145326557673663885251243885979775099204355154453101263524466933781973233106541723644323954630407339015214022456358274909830969616542175299816907594472706596190386538513782858263764066150724252783442570353391555551848083519925613367224334993787725768687148916530837056937014382325288969304302353236860685085423118477243291181603614994331153564804280906133714174006527380086304450708752320210467871224625929133742902357200639505775485281930266398688243412751434704406735257268362745316350519003015096857167153068911413348094584552804089533056410292933745815183620731457982364732326838570850205193950998563207985498735814532575126406587186198979524778798394250477374962682427108722331343294719122605533945162690971380716330818253829899333363966571402659730379418012493743151297214958311081007971934691716475895259192447599325212508760229662683001707860996114007649865605335851150309932238862723303333265030278435708986485418623948728350659025238622912229618950661681991775209490278504541200149379404915985216206149945976320090451568581568062578324603991479494275651508348048111432932739333299868314710004113975271282809433849729233563314106265327370323263993367067656918699415168750414049981304973358701473139139085635392268451087752984554995719555057082101543181919031307557420686605163724088670697137879679189860918703344237349949205415103268606837379749158203132690120450337316225570962790770037553165096865324894211775244234847326615417327593305084923206419937865494380452327763929917429586201788470343838978246373724448450006844124687086972772989322310290563024162933131763988044387376984629385227357675640534734482424670816025989801301764023765301208839437459284441733760532718966124334345153936132187813793938309121804807164871615845380831452790704104143752069162417191080970971196235028207466760876414885564138062950119655889921202237832581428051886666540710275171889582704335492897094297058823492549793499307809595826954538372756126856638500133070663021945648255301011977474169547810894246626285225054081596589503870874330304294321070677228662322443390025834145024368427292760021340094621806654302603847436029684421112685107346630215198897422190255587884506186696783754006011035114269436826791432037013278111336722884596704459840537441167027519750912771504569599480701543432379980238791996971865584376771465036384961878636255037897083984695747611637804582837743282769549887273784867789321263397429894484478108497265190753718001294042107918955148816076950586250144223015908862622708350464524180472090145921374872616313146152085856614711399222600643912827744298604101574588203200608634601400603282054370149085287392941801175359140507875408133848517212187607113388843586002516561138082457115221617812183736483113390024176810504543935574460780161157247637364071361081693126192085958065342833431320157599354215328891941518458782536049459194663304256650523448731391640017542004609313946222099154673849394095494625843208870582226226592633684657647111512023644672799120434788955553948504387448287495645661597614251550747553541307660761706545678060612076913636220274824155604716838366672654636265648770056090101462367433187718225253608193738599927374390647384803302545418858319448312288093139563076843211516965378720137880386216398653683576818872585558193110899041160820367327876718463437751265618369903219275825427656291457108194223450210971114766226933345085569393923249825705649730178046325970070693575712190306073151498328261475723057765361960937895221459391998188097180653572374214242238559968658592353017556400455966526063102077444151465424049768428513711577235736936959182712128756641231996210625741398722571069348900269985245001162159228525650728275060486421904627094549410383041624021833682709096114183306349609768371253215416243301075382754911444982835843286527412852295852395124562778563352316499319437845385521568164168303925609473776477562108373679774163857210933476991028176588975346078556315035151169679133415808156324347233254111271227661394815574105498608771262565497622755233946309136187235405499495297287804454511563526308991367731444640900067246062239179560128093339971809553353644671992342277568801923422555420101292518238282795003594400241933203573290899021291459363119767815908562417273035823163819948114488065164015757411337374925874527703729035269371038412364916841676928937292493205100100131041494354430978956451453668858332944141879769679610938162861912985034198111283265376598673984244549184967610322009099560669859257229026299616006647573151909457367773370035175390749042474351141933414806094593522517779560609973585057812021438783533128992470383946223861705114234533837042518412435034515887727105903674098819885547679177699549861145604011568828357024776663843672483198617690841276299757534900409340250677174963476122506752527192596001878091949340277060385340931356729453873400301714183536085451134270795209123227629212792576467007529545709908665378824292444571523252073949067645336925571995302763333316863058352798698075069045750943124166208607861358396167092369159252665404464770127244023949528660233976097801968571304206617498777228945498841345930448764562732476033846669378688072418304220457112277748950315879279804841078426640537133949167313063544616570993939784063728881590098093217340269340684430268631938044167278194986512038174429253549875980527200337581090689988774812101850744618671957635043516229495578035650041119642642018257887700925787751155671744984800230673108057326712219051899081837486389891629778893631497327345760635030973158537759166877341073722597554658692562313596108847504872442473126845868515495879254137533492226816805264318950081656549747465693161918977992502534993903228926419323636162407221474524050369129726371120277415018037310740698718579369551829559761569680681935656337776396206275397203640931940559010840708738931411352451240264133948320420611009111604418334373851583023817644891805041129217790307715640661241001354347591118542660773383827056178551666016093347304041976963114431346908625985312191256036666777938929826839524426132524289170970699067773447902762474928538476339668736106364792727595027862134264039406652877008373228773301358612350653923568206506001742318140614717733197759458183780492298070105186638506220775582476582606582138086802474279145400569819691262064967040546689889042800431090863233036109474943881247637217017485506019776914506510113359433401487165121802315245757251004377798242470866304681658429674112354914754183119075309148420730852506750534538024073637471078652231603083022367016228744822250998647249525349016687605152698838218416900305042851944801374440748691004890094430222326759960195298505197805937090135288350875042520397366547566307946675118025505469091642559908550883793871200606385390481780964995390625866846322980780956856744840923926606919181888079414171567594498332491567867815459107157687822768628343311290930040263707555621102075577564492523579866505310414580533733835220059488691405868156149301253316355874324594172726405742636424050197613837697308831212742698345835571390070560363789302034426688998483662061399878941166399186037959328448745394205403696329048356823527391526704156879485939057149984802510428582052799937718970035436420525145519929471047680300364324418690185384229148489898178585097562782707619592067771646225625260554196978992892356089048693691739251249107640256606126845863636327932249765354791354670031637091771095428889898995771416773681168405506421096167453718790532289905131571128047978390242884219281087871071583367054719277410696354745902495478584072721894499732601268198930540075368567146132379644005519625992516812593806719982135019746337090440179749619514636296422805829555066949027062598075775400102184788409528701194984154118953847308470512758072854352575738988303894477491012355081488645733695840001439592071287304137366225506472704786559129897767353664471364470124612871475153965559730373069969820844384885719901542660432874204999634984881454616019440033549126172053748704890295055333661978753244925403813971741233164110109592772326135174270647914563139596888097899873836989779188119253508874665796240037509983403967233012716053463127910315066755880581997356498877388846892249462050054597781475633575355268810792896204871101784159148840527287117104682068948586511105237107482270674054235157076016818611900264356791789536390485448858141885752314075225985076642043631059089123182842929798631268365630879885149747140855932221083149221464619022822172090607802627203539228654850217817597803814750463074671225885124596185510146183821075091641359206869445226527624621093295953884371751704567155576767401902746840740829584711269123352304141281427516704628673112475677989043003872077398525896627625952249153893024645778096596546488327730992368689267521437360513833793428270958215920710987360924354394437592124880535735401611993209340571348782429921470023411005848298771008870462090549189076699434939077970438336084659794108180562161195222959290663388594392515077707877295904774190307681085932027396397653682848695011682572203772069606213737002258372249517902328609425872780299270704604570654365823099305245408799701413713566858172574133025475276225429888490114573078269799601066884971599510033915103794824363436278357280113747695243669395645831526704833331865172491120153987049783057837196983504930928329089814599629897441195971585673567596287316363117782295178992709211923406285639828207715159418507618632569041953856892677751764714810904273928596135032193187966009791310765597265109308052352455968503581172898061452616392296719369723916456067308828638201047238730784300899617861586155991736007954561204008992308783812959455986632519720955827953415147963475235887853260067515524602860920461954166757984019170669341654377470271770239095472995821899574675595110596984081675578624523251119081148599631072881354509757600914706910695708104920126692113101262969874509627698101692048604060938112822805415002609697493898540910009879971937270840178313284546538212313174570633106660915660067548992911072118336376677414127432311183126757296181571930172764206131286694033108417320649674734755414417918280060455065581804686401673308618267089865256768540732335061347143243989712964317442193538340196122512323285036726974841836370986681171793069002243192724523251730702782193783724291349842276180760357952709506308128934072957393633571386854530004085522263009223299264813439050938140859270707085358443655056579289143826406806954351458235285887338170692471631201702063008263714055335061531889746590832193481717738566875313008319389229561751367059197206897438434728575614414396591061406843680701170797755025107413095420335578185616588122000991517817839077799498939659380375959078565760630726749842202018956788830374016983046889267384733225587252685882733734342097834373889569658973879130846609279745313225161298031191188083525682405108634073749753062385688577573924085633457796866826959794761097644352417571144075371770393856912589962680100083814598409430538958439340113761224289487992257925273213646447890517962922557314422655778745227344537949626646999733047471610369109729468582742039670011041412469608176114309132573932510797011053022077249657073173468647741727066077270758729002364373748859580492926093449767329855916803189112572469232490561297022649685568446462196621934040842471825730974864681132352372351181679583646432299415034977170832748886858354983806306266734220715112392117727658137832063380669364743528838548210884769123029713329704616185538680311435276882875350753188075046000762442904892331159770761075251944039802991096207609250723728572002638287928490975040918303771691315141366547240151982325721549926057435094316520569228812071430719862245434364880612630754262455344214812435569159519100674151540989941132462230357374111392225962816025394785138014505190391434973049999924978318707351931233713757464492284692200200880907731743082436681369568891908175019618310692607829729488922387075935750048832501541710333437159292789721418273242614372813642774891925002038572377579067875136531448728884830591409533066762506085813338656908680117920066890337942900603641510063093668401029343106404612344310083087053877313885142841578182981988728329226449808525335892105846890442636676016190660081042063602080191909214938031129857050559960674396865503433785246718666368168070221505825748138864414052743727179113705729307830530322503783312130916814976632456157486739025397650829572088176693040312819348873354554648352754477403759195139244882619830986594619711025739147656825071799511357465558010010884418040892082535677534815161501632200417089398504204728137880394938818461755551624937036546009060042246688984450028039930393859449298991161468050657377978721105537836120095415785108764820663849744182341294903796727530051679088000927538654554291962649816337400931936095032613908968726384405440922619041263931679646137153508260381534773692780053771273615140751870299530105752393690664590471636326538878032385290907649013349301341855629979928989706043659351269423450800657901999880898175997085800194798544384953738935128325109972380590865682704916273551519199863687513307476627133826782604295354274495282163353581179336075757251210830182272773800190274287043510156070631986496143026798634748633404108007430953816333048408152496138089352019890064637392917935432641280430938886755687390238891723344788395483700684800067061247237387528890907614318503827326478284430763820929881197407168549275671148429487470710884307823143574182998989314460106707450055695825536961600150008541718637445638249512850903986419936516186958316801215367126592079999297248570354876115449174269277738444002656201665499249428154473183224612822772576332649980265932536831627846336913911317451180535999448347733725007492017720676133067565114311732663667370483960930485204235824632305244610935130851512497538017350505645784482687318106981799639667135974744594773440823325812024704546823418779554962560256387398190972183447118932549508490896237284867303107595916501468799685132948403604246469258504066593988153852097329185980028513402897731436439841932083448057240545473157441851873343761379148844528478996644353351552679251553903723804299107962099721647761487260550881571409909856065878818280727489810096975684394993357867622383039560719696618746000925100000304148534017655584860973746168726509076865311957417518320886844476433522893557151745696943543004434078321002156124872628803045205429970549705031919990082762697235087114244405747399180884476964943576938658437197039438573196832156757062841055085219972779450656262035464632023791158152880278060639578101258897776323601797608972967624828027640984320494958708371231513635646695385548126208670862846629256686231027737492942209183689689521263125884642882217932904465346208168778668938757717142313438042109360639843727080166125795794383721209996958967048683354092781754473185754595338985560137927617020331366398204288738946866485315150625177532650785821336881301836875378495031943004277060540919319348904509118094798005493438386859837813674353243328528961655923470940757467392613539786831103247464291544040023912501343864097975211320240231314933131446710663541102751675792050805104700442682653573287510091050313199020848994083712118017886720385619391910572805251161156481043734262906930955471509959996102027263927256289000499560149631512514317036313768491574077950017340824607238389725761689966249545953152432465232212203362430572597248791843298381187123411168303603024762332062773163650696610818084868621762677458281861764084638801358830261499677836746649391166699062548522731906219254293180912860832831874825222539934963260617628387957134981603942207557598362544201466053246215783015134436172128273776648586759702144005936687336330986663173850432966684488016752262798825478333026547893251237772074188834880569926569176202789622327734968192148209151521959273848083669485026599708456921015460763616157587847943276789121477286250053383892287429470735768496069102013600522542749516040997690614033787449498001868995313475275756290399902694968197862282355605627238840441447837287365114731102358396988695808590112458951334804614668001168828583541127649520678405963803923070900234981556151242181819071074508949021338528069277153727215118133476725574574206069781156667127491009892075633515869919490984954133075723019014208703910264401793984512499255353725894916225723071152059346235775357283256023448848879384036334618388400606933905993541777353942061524340748208091999631023456806146956341005562041295524988791698870277159124945814914915584806120857879537644623890105514942065685494770488502436215691216003368240914748900018954124676712516793682096319272867601356710014564579732782711203331907595774047759034061381290898797543933216532271456446402172746258167818860463074074440204032544520417929322837833846432314796877663533504664865553192185045578912073866932700039795910097003994799385668510784117707542252509964950310092859500454396527139625248026582564563887695403976186001022900740299672989728284991709724683229963209777999397827142246898208004968896123872259243948952161273685277515143755754692532533452596467955416658591035266345695628589249067478115146614069029355321486782619150039757599734156373002967111933023055241252240930374925108278105802389518184480563229633006365941054233133279840749275588294060244079289966282225010650310361363948055001589616223014681579009816075490752040851931951721722425305397248465286981943776338341219543097518105451180680923564929116538825759523493445553355709343225696994516508054013937930263957655172521931076306780056088570857834199880094160395996857809290222563683885441191269949755626865962103066672818594688356334267663723876446367854718931612838330547195806938717706592036872592562021115194927783159832391422266748212624831526463369151091783429542119535780288565190858742077801491649976025941589561097276093959625976678148097964597696313784886749498052351591561685673745032380698925271251832291462311658684512710242399315494033807999874865225486315681169734288905142996406633232428295107644113910304735618586365610014320789369181646186710587984073692327054143720913234031989995119964257799713484575220984370365199935827184956067677446547654693137149608555972424393891542876311084513740412653712292056093694562112760770751919152027266049851629328695075238892681670474963202419965861981926706148735988404329368781292312689265461684292991390673075766644185889393999018088142257976996180753877422994833580602902376102743270588579847993157677899644288956886104576807951779620506567566389401762924990032984020060301747526556523140908816665336307647758613264798233084298587145916956283163533435506643988570729987274956715806648777661574957037026100297673286163372724543695562472226626267954657111683355545335712750258469872226984583814605428776373955057945401131689991352909629076438602803095191226690817684206816492328965082424490943763201463865647900772035273639070735488066060462722742967271608423846310142521194411130315622678236314337543783499175422714715496061612077486412969414886647418736455720210639393530905285591047675369292524315661610198885016271988939984791600002058827610823444190524474031300153856643624007213938281276897910884205147866220151110591434940912527985078032874816823978679674408875316044030538384694390960144270055954613153646023200930921561850348320350747157148982281013170706609742935857125919910358641013490137945754594201023762929982480914963757108324348699180707574964129502514507854339914713127776364856460095503308982407824737125494639936433192508460908231588144686736807973131426890242657298736024746956625917917854396362654125482779124374141896509002962829890087209120832048462503180657790433724185613515275394505155843791823692389063090230456462612803085357500520939420183530429775937981659969652752287202026675922556793243637958732465757755233331040167518724453068171104602222908790315779655513714940990430393041443051296823519329351101187448970537657340541491236333405091131470791273661533813555009038852309330522532776404263076644186323219683103683362187941395148621749505702274623352854203392977954048289382346976105257765892042509466961436994123052406536820154881346073639019994292282694394483300623603281801337172520146271082083222748852247864453969938289588710693296375557487271671304909376900429947665167767435218267276574403650551656925123041578005022491030230759635099311720717729231755735743931361780980051366356881165327261228824529145425114158056857767510878930375598763594539327174784880281546285613417484613566851949851827672266486306977519150385157646336201850650084810902767674450695170387735043530589836923083014973825789880578223354420447285017882568201121596796750904881514914122619923796868754586627780573744448816206565828801396494333551545781241655089479250795358557853616933136005518474637859834682919133483573886967206679903392742068972515409767531382701710167843109956015147970516462905854983740317831780248418352850636887258363869498838082183698056005347129527917026708844652021710311250174559049127608615218970288559821647561488666647522975146428852154664990597605650349373687855931801340226064366271434280122113954297968830821497211598104367879101186366513680468553984457903354775840288778924782813712525879124368798703241208381321303824935684424174737115641042384946896170552699028359478929758632400612336915081679582442802129558729829560778504517386614358700863982429192845189001258527961975860169349583301948705869834100162993657164983494496905616368305920210481881653292475609491909355302515380092505514482635298945964876488902370942099761184553406259449042784425247311686124446587622486693682266172654930764981846253574518725253470307461310521869537212476593213199010596081688204037807283014929235875675117885670256933208155408193493083903056175925372530726987503491105670162220445075425222909524155039258566696456062541518306513603983603038572208152813235637057098649889578797347920785771424630953059789335650017745198768046618720028635870180430540612777922251147998027070652520842303281840819015025459538353194758385998057750675276849364023190483213163020358626001147653979426785817028249865407149632250062180807049100686235010255113637738352892828139499965844386171052292902618253833788792130487124167158286993816587587326061211903950093086949591522963220379033762311877344515470815058745932108123597219179996805937395733272247282376849074795157621884083807221413336191477521275863375271413167523282442923226279818012692522015232212581174547838448521766033250895173466014244526385955158629301096228122805885949749896081637047732656965225523555048549551001900565689394333426597697464933812163057155392237629981662621563209878109006785975222791927508424952182465544447931688832765803707944085893881169411119424195908673639309360511770976443106355975339457566864145898565807956186031931649572771934343841343910360302668945460907184314809648147039990714316006070198682130825395999319019531965827136691377764324189782669842933080096026164711801018131561064939729837221831536519954362430255965101877059802167678277086509226780451076894070878872864994428392413858362485372210342576542206217469580899683634222094121979580641840062161395801606451401314952414337708582263754172449116434974400459867861651923838887099560269910827579813729924091126929350072157912389621277615566445843370767965850773033041874139350337284236233548810541920755446659733107532790170780910941008771546925447932147275352711795111399234940242138951194671978127194572152371532908140788170701296114165798928315916086298982029591924638469997132136711150845855756159604958889775379690275397443127288743023520561769835221801082052499188030405979332221377317624097429398918511613366305633320111234600818342598256337301740217939595516431139727161506535557940934093852489022257440368412812742337179522957467573140040700952239266594536317703749727925900643855342758840810296016541792224801001305236608207046544214798166177377730910800314500109909186419456696116390664574869332017910681576113624140777547169732056600384822617825817822820296605579921582338248907299993475834682461615349818998641679095453843784204233926467927919455565887113464057904613484828086199381124533607958603124971583429474595091654130607346723291427624682535195277341950305294493562645987547805222311589438153304986789454401526449905881886170189050542562655120981351305601009113784158424704815261284583852961542505425351780018211821319856682738071605140364236951453885148836532351926550398290777036498577605486085710320254140949973643310926321182530817823352341905385640875591521953261953464433420104503459073529582870154606652874476625884647439805797946682764849223200815038824932822128501960673615028702879008513606890882300027153474770900483169720225957568771068275076283596763500051450999126608210361254151064026230766059010635489221546381324845044389939044925210148493551192339087069336335300053504551277637346766242612730167639312030987909700238540801794828807468306870830945857370198077963139034222060255116413671914238581042661227945646249565556234255872477318827489764820378982904340990660584182788297276884367091092337653979987600247922327770902991559191226449250450565452965677099070315694387243180370147431684036117526281925660564480599685240604135443204654070913569280900207726292424870871472702365671971414449419803188577176058225886262476883519438430909737633223831096324036902178348399115819078343674120056207013637875973238152061127183513009177023292491718183923974828909983508373081349436568697574169015735280921421677747051728032445758824325489664115834479584310324486810746189889045564995063201130553178507673490173783461340607258012461343612793269907506791849480379580255077037504674299356932660964343564808557745393252864979120900805331849009067083478969847404304837507688919562896821808639104121889541074885921273368448149561709411045417092828232102073148542212583145332462662625148201454772415603146957292417808421668178866411775175242983364497603909882970989646897248102880052582918089819265856776370839762360577527322797838498891227824448560927254367153105023358600800315288783167035006955722269889696686438967127197806003773113559009076773826157987721817403798877329634192499545348762124227069366129468746166914056761952107914012844895663055018250963372248055800241537502149922883337374527724664721171351879237186667445003170408572666648974291384013989777289093981797746100156711661171322249104314045922300692632715384552667353488279279942238721642202571643773240250381193192934245710779835856251653063930831354447766429496473156479608781556990227990152479563717289470395910622145562342906414002681539458711621220290582378488517684075243221938797489880927416010544502676554422584019764123931444796319804387062302362710847785167214250371861650436764483083319006371380640928901715545136036393073447587693782078355349373625737264041855881438455640012819355587229705059110568495210838631612594523924494274438220690455757885414879688380674667465165801807209064717113155231180461632384302183867131155221606414548947647211514908418497061137151001939569202679937803272130766403000617583578084106156915275582716965521797806103193089622278387846505358773379648137021581304093671914536426695782226925382427306045295887627687026079093575109466402490845946542368308750517542518218329539368764855219089892236869373899803647134736534225415515198174038731396229488494810849477306260743996870900671518078987959725092868549661667391647689378818305650498218326067251558594065205956487384920577138499860554560920614768328846609247321759975265274207115561341340442731842569178678272279152087945040943141054472561956069317655142089290662877901585859900626483011353738141038790907305542508741944829128839106688087247146290778471897611844658329513070860340848924298442551286388828595315306042411131721807250074713245170950685326004674376110053133113212032302222404728919299974717524544963770289419859256403474391680912506747814232033645171942269221338174985878366723189039599716128465254249327188769523036384874320239705211322365530506059293702581641184138573181856494716676565978405087810948279871975445682540899349715615040242711845956346576363111295613173958143767159291759192416787574819289931408218931406805417805236493401328847162268878455755332406355891298299264811344578381537629566655532621722691147176922060973804635573317641726381610732864176164864970799740793887654942809024650845983793308536687649235026655392065916426715303562628906507907347499137002916104204267900637272245042076361165720364033124134525310754527216261750198892093686812456852336901897882456241920231673745623410579171807829128416133161673466696961681902841407791622084503051349488819620271731964159709833180569954798067744986024258269437053157674807000947938153291501535308837700353457532980323459258614075364430461799240205224826155696549759090753741536511043811682797753463063110173635187301886588129810902892318702266004795152029556416699407501473621818644748374092654827811420092840014237008121659591966140564779274468875203447822588302388805245986428929772309962271408818084574887491967735443517784406430166405887515752120357356724097934325275554970571191947642452659829617128315554479206837053857384611702794389920314171657178911621477495538414603137819737697755802043097495265575392317626755511416900837705033354541231565858556215432627098286153350961850353156982907321679170692455974776339662409901415346613022814770218904395334870198698473278364931522248258240564841935441070929943264292957815290622415279296510123088460225662259806976590126875005671640425666719427441150784845409489511994971004189680056310765189051616383275982631255524989065385589267303607214625305317349303274854688514972834998852007870858310787621600084961874582893968626819598517183726868319853702040847734592629446812672355231960313890104461904370430621838993374540730423472239069496507051415424441628340329842626453806049467123679342081773733285692129212115216280999207611065545454292423983420185840086252796247595336137023799427534208119603850943565176381098830754297796454537178694724740171905754279082842135727984646430091898354836695704524144592267961228739687326840516903137243473831103660450338865059236046208769907197208234405091663618862155002586611030852076073686851466984164874836283981242549770672717403235781870537303682253809822377184206215886414998244388396013233756522603415228879433434540806682348502130035947353992684354011186183767041678496616678830455734073343784019485137447911797908741267177503489292506341049245053306105981870382673518313688690938468070086063464061030561558468747316161055470856899925837762348040433425471716516419435238446577055723827191134435530350419245993785061012078316184212699084647565899133366953769009157092901265292322804577138495789603974387057036338616165683092628533045817306879707253670438071837539183258622264806175838173354582250592082372848267573164887703620072745508382944640765982136718437216566584765360366116091717762255187931210068816210752973904706390179373445949125827801419222959583198946161568299544282418126834145591693447634137162327502175622928941982151136400773881440073342371802229644591061642518075711052696000215412114379767993557366070622581436281237652555813040128090415107764721717335845446784998587913313900398944444128511806613785112070858782938232697823755411632079921802144483442703841816491666779696835311746730222484899043794531603398485987866142140576635637091087174410487039948429177628887297181395892122904300498232946265256835182752800818651068247203230995531544243164630972581405094532839642458295437165838549346158701924838261001212660364056145956902816854359936227564885172696730995651020284504325279416994120431414136456171916244802801200615461718451757967219891833737734509589138332657223352901577903859007533046197538221641313644886630125624108330786485217019816135451653764966585696303009294945638713599490771787398033601013878757382229554895233168210357956299553710053400996820734941405798990157472047414326015902174855216933865915326310674440632025346982476951981143632706875152287897273525569613856677906949079074558167902619201218017948666995732832600957951254112607017163322881898439141396047134659097584574993796422822591356930465304896421271400128835853509183547320556939662320781092710158117560778546886799305451281732233830483382976536344355745399347062278076592435366992564484123958507690422723591856283785863889188084883425670527649169919027956896892269085595338070705328497427822495748012410625552791238095681201465320705462578434212897123981491733006194163948470180702288045817441467270595984231950442882272482288527812968804276092449105041582021610420347730763614229815689414466846963213122007950485486705535025263351350593147915862001011773861052594440095083226008777262584413315468307892664995754352941305580209336921377991454697346052629251552045487931729054491319618419976588606724071876153789546278995090048567391413525624342726540980159233316735859021281171450115515336578802248353090161126462767081726290974577372963271589847306312553771350215842613597106871470150208155657878184137524352076943648553392517394363835483483753289218198726415628512040220145505808486817278050499682335837486961330307589838360688736384719302746715760679009249657355258903201004727956448653667351028406660224870542243221192798297605526801726558004899269945632935898455149849468647710820369033420499314359365239750928822229730316780546344703571949555351629376372676410694233744328738024788067640226533703410460945853169633398739500997343208581747394312946638704148998433294064489475460073249208501478084094501488562003609291902780714518145522531457104935914696106229155877789077482333409659754576880190878585286457200997575346668008007148880971765341635496047782889183836657114842248344889723372504057162053503389984480398494837805361692077515887140412748473675791574769246358131000802001220808537308128492155030636418017432588627025110855912710722577671320146377102346678605412813693338468068143216504865057064540553135815478636114757518539644986926807778066981989357694311914807615381641508812690411010132824480462184987712024371403970913079994559581917142149208837194538174493808050545616723016172670196140415423012901287570388344786640457155718326578973548432324391599879389240473247855454350108899205382692909801224066920592169707893502874582963790465788986016441983718583178242257954359803743547089717593345473468490398966216440009818181519040401536895856999626038374945260058427597538558211448826955696403306422963870788835250246053230029934132582775684379449709897903355925253263341117128264679249963237834362601721529645641293263981793416692220206457090122485642805951132335778149853810651917267662485469423168747644484073581751614766843650516671187081701393335423594213223005270163892562302684156960603738670190278049016909070784187080818435384852370133830042790755598549761524961764996395440050210888461893793613977154709178311943243378546404301036196822435491456552890067085020184723484211280988192291265172770702478886504420101486639419301701832255176819909552785322500430995082100190965401822582308177352430668084934468075559358750840061858049258568197615976212150808339380668622339838676582617161988598154383108295318298165619543470971967447170050522279733097750438988336330052324354765535016366214816822212102884716614321671021034573420655225760656192608274221490446223303087465894872256908807001977728574215024414770162225242263387103435036506736251902067340337420643045042105500712605987287037744087843488073592985462184755367513508517581184396866724035396704771398671967144765870786895089258031365375654367767993753141508850317916048024951468971862365175699578098088914821136349387468606702867898542112575437136202700373813791612261871351348599314989921348454087683978217059557150037721763585193704123714580468219810311600321021517769011596560370703770744666803153199340941607198311129934945712647114123098289335124683577974289201575789632860377907847278846644195841757798212268569210769071521862989460227139344761600583550325008725663714029313850060789613588886859507419258410578872530268098744827944785571297989173032478430141739089445299790681407390545060023624855527866328393739819649251314624193764635296994548895347375313655413656028577378772110319753671541157238859502209978073163385463703396118160305425326540890636049861375798556753653051824795737320748414041823961092308526621114558341939911226655133035346163014514678208843612296048886566830824919538438973141328709513658943450369952349092730020051689767762351658348859155581450769006811587306676391872290744882063332415629680457155150898502776922456965093217796385623656724255630922824416288149028037895962199055719495893254321254597733808966129394526606332291911706588580276590250415562682456399811428223677958078100975997124328530696794396816410620436957348900629226958077991520735787401469653999267290649989999501330942519350275079969691324797226409592856590298809391139242883152698251606559861640968891919271697358594292716461058915656155269439601905437130959852362602993787180260624644865675644181116671699259178674770522125358212944774512921793857068172749019130280969920864943305275835651984259557649309989826435074501303295046210404357653397622782379813864261934985798419879804911188517596409106961391257040820934212665879848701416492868031688689472424821215987279917332998937264076828986606160548344577238631103574616055357922529303333955462186069679661174765435698387134124934874415098230652409306612793825587523856294029541578963933807268952096035095282973298985309856128223562744550656131855583360807642410087429355619041394090138658030786294458585980185899992948249781324274247270797490887507260080297463429639810270040500771667926953146382822517298658355215249199924445196329467229601780327608179692855636082216751160694864165115500863948633314293862227409746902866237181241499593956363348737061362618847021815136704334494704657096571610888703775328909215933808284585106279290199723113005615172645476606006319760252455452948077327731853384562462020729560932696661976424883361827484199553879940643064395258056168802793957984462345263608596342696870703285319274942445080704539274244934722393478690893368947870486467201678731529988250772491509018581254452305784096578805000643220454820899767544156539099730096207932820196555493530628100326148011437126580532544187487677789903517388976761959266811508091482002386625086639262326579146097774892435458089678416989913999415724313503472700424750235905370484989311666461552933051505157707625888160531341942138025383255976407157463383497019118404144245366939657498865173304641201941793923023357570543050851695458876344835325088719678557982292887636255580449347751472722624296998339389105666425041267938916450648562235118123920343726907443249019334295753268942186149623520783964378305289579150289924530442737048219009785378810856932562614704982624356325437549826767539659208617596820730959258915948449889461929725620152946071383881848625860801807756568600576292357209560525112302525828043368919700216571628636635308422467953302637658191283294512712249882019021420650924064760119967889280469327950728965188598264277426735529874093445687970181841041808376236063602210042634689864771014035762388356789326831342771121389649492495523046395740352360540143250658857364248312775751566046480908355045572550999525337642474588278567072290361926462424800798527114930993895387377700033177449849102796324262058832251698932716307858245312034680878602076101397883579718583247557743754507287624298612154998896852926123421377067278768016205451279278136741635359664625199326066600671898262682029987910168528766732535668156743203634139685552961708373926337738861766111688199190512503711429440303134685288726153691418082042331426937737312120294230671063915507829444978222377979765478595998868234038966943577775527470215261232750172922933347949167656726177999836889871034824631202531179667546310101748264579546278420391509719385314204276601945609279597449601733095881626429962804814196497814165731221891695648604280554211124945019552582721103228556309957620855764497864006885425057375841671301346320313886056722315372826682080046935909895034921903563702098002310883310127266110665147519484979964254969818174805867320760816441658704382754603299422912481398464426927739782824348379313076932192203604020636561613328151334781822378509163453413972213308704230505876683580226818806776781144496887576203305428959343759705488415873649597314806237021618846797704800378704403733764685268317767496611242200459592305949070119886839499514336973355152288364658557059425941859432412710738949218988782486824046293513958530241850380604383630311748139119454894869066675976033454777884881479540468361664399387347716558122553794299099477763807975779851004427028648121288326083405572516972434470365302325027109346691717259162320385103403878401480336407237860096873528941622025184636417628735139209092491736309232024698065468101672159016475306989542863716887470926667535561929095058774775199593168765593071593115660014991905660619335051028674730059841156670534178388308274234955075396651195419756343569736138965340879961634859090319036627884151023155866890435313655102852103666857536233684124434784389062142490809292817342163886144806582843551818851612156605896789680439072750552146943403672009453645701108882251328919714015301675178598353458803707322611897046202273207415182450929857073541432788609309949135748389520014738421353316616886717126438707457995581837581472067932039837418700556838009920129696406803855588821323135750059331829822252473502483109582390550916125688655934768824429457635253320368703020866388729569725502139610739587282720998376248719061642673967135247305707460554473063930743155774994253120698215485567217132194954870451434853476235453875782354191553584799661792195722463844686143032312120581678501183662799127104117868892858096755445680766946639456280230321596330307921573749594974594103179507360523078067308585193834422598585276295918853678255860532341754234966044537796213654836176811820731687229114653545933216396682937579508297381639443682156931548552012634345633890673146372493006600858825105808102481030089723339043506957204655115287810857032858968296470521530502917120377331531476693246808020532671115830409443390331992346233230586284525640846986977274001271679374803565544024404418997495584067362314506111545421141717974839168614851698578185085722244076165255869992637939620305712708444222165024552346059661666526868463254767001739726436733034452434867084740326630181248828634532673671621345361688118901384784823435235088374128724112658667264400985853906725439759693013200050993312666539973025657862522806782740194769157369970878574122212047506471312671312373796762557092404844089224947009634655847622245889771774562493987721086518330311530514131280632302623133077988085293651581996854118979457407750697227970018877931122897332511197340107897135785811515246646533352509581641471138339996533327272000383523149657134927776285418845391116539167408474919852575302109741911573043999589852419557468940405883370396021548351849058884200585706798250841656565198958924812618144576994603303360815610448573743715215319566186222300470693358516318810263899034420408720214209542217870730471526796063520406346238234950920370258444804501215018341272515792932929257193170649518444966343817176848002937641943179562349441072722444741632979963803240978625756957151803571653517914579428647301504048738039633894441504826539763914447822604798751300727534220982128809784141372443765439670335049779662326130544583589484868126338104505858061131145435427602334770095817357021819297576814422135289808797566424140034835977275104700889785583472251871323257304986888170924728475890413884550119119161650796495875694645609129373050352678618069611427013766188853619166404485003954106725246027933685173807314381826801931526591954458345284474683544508543989976995324522702550595351555332732356266183262355358564413898087569154097875251022799793403983809006169334834544132839077728828859546553654567638270873287774852772929832591639876373440739516252416928183063997981406256571004485064182104903252405600177225535822154812204638077172928656499738544075618961884289456724799764903601456949962781711521916495146885595174702460554717283082789319001719652505365468294184448935824158806551639152708405863648192293336714383913042342170633971699595718533882935633463359334159351125342221805866687923165657550662597698184944891982407290778971205601404155565138403150224320155058720440467024957672539436876463369918552044596434358818369652056248455844855758974365344498367697534846631760835555394731438603984772593399271844985488765297533035967284955859310063951522601788249693895004308508558308575597890589969431804266737848712961708668067502750641373469906592576360047860864131862811905105753805427929524035789352100546162184865796438737775150739733956084678932017794891325194152016175842430693493782245405454023073613489503550422942297817191515903033728445488297780624927394919017754842131231482308416792167145731192710538617203418192514681627851995619341993499191296869921122307650669949528208541815549258055208743898685311432178133667194483519291757756322107602617369203782273751047848220516450337451425825120604737270740946131234961828267769310756145477269793284111768981643841373677414680023665424558315755700653175644440804242779860432610982073174745835154097665478141830546392504816529160404412473396366819752658941888971600527963200421928825829891417931507403149129084993541051180823841174261349662117775446496267078656161975601355197562842627704789668326152123581104462615686879533456796085351152773813500310859489464002657740260794045728984592522359374331826042848370640975010113732334498237599642838581115772958577191257753214777065096682710001275325684999437700640350312007584459578054239424196295316129259664081538634499390024528765532407571404590499681804481802329364865385155008890061839255209640776836914948469221598062264210410368803219904828288786667063562041873835816690047139475125309771030681193839217799483018560555098225704727335404767220749623967248159374098044301800039239683562356293600330335565333918865998375667721217035217978961387740273563962818736884684490128146621882432548109775180910447671523870271825533328254440445808950420172092364381494050810598949572447958352619706071566371617644601703001466107784770778112722645397393251488954905655949517664443941603296209892055496416197140683483033888087885709337181649275177409971979371802698826319301479872391797797927359606207833798229332062184812914470331738246850159273933801892005835256302050553212756969289769358539428734824683509919175269242759159405448097054596298318319611850639053532210191576675820680533460498322594105989163957129697153429835933118210813459770278237788940109591066740167979973519358093735772658704096800336222591934804458306925315315113801369129249165832514576827127906791187813173772024286655044603497763982755250909805904310613546954370550897227156675284357597477454434133075264817102852202516367524573440439243351015615315236188735122445387377216248954863372539232176011501044195877497336867057097446669071663953429518572868008099244802152292232087002397815653089696912882271643816562060647682720463197445172930911753262109200182929398976692067599741227446447483044216136483569940005019988704211479903812215148965958711932627484638246689153728021493078152184037023239425359371700421971192473334199068701559690692977660489181678512382955609531783065983382831203020547426191621335996165073018736173206499459578075485554540344425675227008647474691296122574992265531965096327558671372879835472128059806948269541565227207702017763543598767224560812323196862437134796559083452590932998741829025962764515506510495116594445352470045826862524665520270202116377654542084654722999093818321357113849483157913363252896159477425115704622167642368572849472046651564299118062153548662964268863905740421007649016432632623675217139252310501337424928053530076920183012431309874243451049173782802568603928078371334788682707510951664173449761031613995191196124568056862338667633997026145307178762712161528323144758736919207464389626334143527050338297729466512125014917523369285180490679975558332193108136039853167817247347802263947769317979330647587748486192858985622093994179699027804711745334233795922858934473715204207053753810962903659805810577520476982634961545553625820801643962439298404638059221782441815317634073607916483110793475781269498863136595485615217552496003619940013425619928623653353755615296459399331530370546239376383353139235934019191999938761698562674389359716887373776828604017033758158509111924439013414704601884420304466378410806116632480842260130657577003785377847465314108492674515235025984604464239131533541968633043073520700255543559256099700781306464266223813169028255244789874544547168470903682355314249562863649363564934113769148130021572771187534873216244292965015413139364372282595224218752172336952444791765828455844552901078381171975868618456512041460101287888664746112118611606652285692512165565579748864073261118403297136226345582805545443143182341208274935663746312648429332300492560164454344555480571040490610272358974905558278009326832155774116437296024101397170587076333879687164491912771334575108370699924452645602670136411998645346478155302308909161307859191035188256794132960995111494961726708198510847027432253322586607209186865560116919528014573861764151641350958856044950994988008699149942939548410545260309980866086784787585910586960005192891512371614551632099984558909840946224463755270523195618461803256278306021232559696640029573394285261303754235370578256777059300402107158964942603628156795736186249154127592281886354658702153170335822456133886539584925032848786443242842506360211999258726401681952811539596681739331053929297702142824638357254935965274316808081454964241955185613022963821515916906788367839226645604636386610512708335055863710836127994237841119674804998067381711715024974724771129357912524544101261590532885748891647943288822856504030405654543810742767718136409465197083127307308566895774764747659677390758044139537138558972954927931856197274322401235864904101176285577319327020025161572584918417764293630502202774618784669659778026646934234530735145726296401545303977371539885325362689934121752031570842422974171639091495043149440451036765229635545116831594827942898320299308907674961237424549389414399840630200044824344053357546841147511871126819096384782994571373691408798898565120098648141653360150867644882809444390415721884483581326550796009882655461015624086715039188474120790955525684999265249062081591087671064699224306431098521187220659808329144756467195840248276606237845753888435064139548302029911786010189305337281491282971963188665882583888690686721232950857996692111009740059364812837307643017959904024977483294876172973294624280712444237857328931380846188348944423234749304722412617723663297388961125414630459020462995685798117598504275607138093327503657443871358655458031146052164510276731187080781621688629455580808092286284564258693972328721664712415233970500089496356958124018876141994354162367529864161521560830291249140073174195398911222494179701481728916502627269164418825373965936759402873746709331640671248838848038862954913740192668116487797435196110779965248760680986542985359967898270160516565762190204298051467090151429604545016019773448899884741181624905051864987736601659738887848752793661165193479063510430060828120213613225278205918885705178762972756806093236267067633000559604520957180612465438369009973353416031906356868655554834235658739351239105930250962490316958418302399362056502595447587407381347803057645871144707150476759804509801683439359580990105325193917235400339908305241493621529024804616593351306243080172025011046053820304364849550227093364229482609506101365222371249377568250226622124815890153666334486569830320264419100937459706653984662207750074755392376462232925730246007515014264424624632064308361858656704696271062657726910418679556957668174736584313931541349421148615503627398841659507112285577269183625053030367386460033028953628103545586326577254272319280591333287613869125582063628081843527655758360386173573560335197743004741477413590846666941990011778071614561704696714260530154975183867239592279031575837974433142609256490428200102954645357470391819601177791737475904140788092440194282824748734677350744422701205476589622083169719968327893558744952154162026059011513795747185260128266751761814201077594933969887645445432674885773362583741619307029545974718838320476610193371334948771688726540104650429856071227238779313401480560496705031803621234454393034122909781159829176500841178556152474773484013454534483284589200309038366955140893935475366545456956020732721756010676117811884621537482251834783501412219518779944597700842241268843692221437597744828927262735656738005548561721920547647154176699556933433599944762105112691185230790536341350166708310558423238110270141839966227358039242835294500297603807057672110269024626661822057595417331781293685794910230831126292779282267980342973841332302291437870283678109367247458599397316916142633355378877135752358360529130565521102067806419397152333138227447020482749926427742999095271140639320686067152357936003562148078433451816439115013837026012099486390906579764722339984042532568580180879355894708338626848221934033721992137241809373155413795296771384256308918774582731813586441862750445905681725271459122526476022833012791287024136682545592026809952733539253247958518893171892857259495094163069737528098639345626621426749014500154340382620789258381406553161838709215368046565750595091154827503238602006696534458231414247727064449737160040726792780359439146143789970569608779600321115745352229876235454531963824894327264418493017026989666185754538133373909467670884235143932569846063575393759631415836377614275475982899363211432682246332560096748441092166772550457249743800448352171601845782600292676507959384492789871919851304815325572375605461083942703049167041120636524866272626077006032038668090184416979006036085454985617979293316061010164748707771873629461407872951929052671552196343437623702862780806424647209617120045318988340958743524058983916398392434633122563249761064659345046575378610209299825981402669533235743699673004601273338343821517989107060244386529279068550865897115510785073952011707241689366469028368898357758555847395618662719952109250689156672059537812882411508469009776071254639868710122519904035379193018578134661261559098937936516483406367482542777461281206909348368898588935203420522247798102407264033609762222704986124311217581361388221796631707997376810105248217005626897697044353470411477169704274244042180711476473937047503349600246410418653426005583386210943818032913211551863120420120860208678879960719979020308270503213994252039209625707747741991360644473793911644416923858574011474026041310616807748044379975383840625869132606809065478660636768682415207629829714865218960469284455052699783797230011470361303740804445326864050911108443783851514700405656663826883127238447534975988951210481252423312282501993971439901349871665755395769214701056368103584370841503623813424637080177180124470079605041726021427584634887287215402015456277657917658402636647695665286459582724398052207711871038826089671735919585666402338631552179287032614441075640805505406013079900542316994276941409937913647147421396740571407786232304301198198502675930943710705806028865476283372087761091238377368670857560998741508256333505429512627973969450202846579858046247974968685214718291064781625195574609096065221256718426800525386200464071096167600683644016897339930149344915534716570196019580712610417895069111539365215975440203228681130763834145057564730385086984726535777630245444290238222827848922377802719011739762585912780149569461097251691018103062090183882734006129747484215777212014694973750964275857831486796600651894668513472943046249334577714092252253036522155109747333230353154768095375488575887130795853725777458025732547310354589494132879812628460853955538080442265886996627751297252128224627915085502145491409473433015042689898966607450835936447248485975617547014222570986346631247814107773057893848006788297883319860660056207742509326922776705795027810548830781187489862659022652797152432704689757179542512147584298857037959348885923910087035408371585041267356130872813884095245994813178142427967107593759440493540210434836088339516771025904411169203591484276495752953607394593881396050276568046984107815056173724467658620335637063535302451263471657249261189787980989843595397719546036782306243918783547422369012787726892619865265711013161140794351010839165531766461412218044497510165973583342215169003770426139130659555065003544363305641516343542327575305954593707228604947828068188318819348677732311359303104624661239795965046620989268160638453221434467908176804091781547433277123324544584334671408036264019077173438891708766527882593115922106194207194901634181437101660295577203618701408901226582661359882314685067949629790116232974924060005219789924722928050952426144396285585774034137664107050548969814817651767071394288203328368910809147306676103420710279153042106071786634130975417763051966307902795422804276037150176684896151637474743436351853320363079394945810156451090342570473772913078421920603597721601640727160961472329417217387137709583651113863444097336222230716338587844852635173029592380484982151897541752293536938673349676983822633783726206634901075216010370073701624688843809391995013804117199060909153582083340757382543495091718124169636943929385572825171532056756124855903557405086561799499917448003616916523530230749112839770483314816220630959010428842200899230582422815741662637933831662200285669751479819856880135844838930631530932044111640657336400544993156781214683326526445442401954247276871364814603070205018719068190937538182337671259946512750275047799462233449800575406017460492759403164342405119975973979935798296844810665814834067671269058876565592121071764230277144064817999390211742635711584961494721920503193059758395642729245956030150142230310630686139475605002240360423891025794093984053028204357158592389161639296605134477085783586233438295918005807956516652820403744778974328111223455340550414295174817569567881850493269024552393656367775420806740909265317729565693355289252129354938979242498397346129266545879155680825084613312019937929107684532059829414727393324695243751435856065773068576007270325961726805988628299559354581870248638762047965038898880891420501169746951195433486786024004230705678008886024959820548474097689922579515399021311441358506655419373610886918718623060164417733724675381436508983669380738528987128726163169938480643588233001802987050312762275271752805468985268216175808101531915013199351315418202740421422852800664952502138746614995131382849255861181162325098046728825640420080372679872941223848560018415633890798581978654949107924938109154842752435208275831511352373747182130860158263781074746351572284362604539902266880114103158785752127183395808253030846731347614426654481881338094433307345888513372198734292789811442200186231121475766265465321733961316957549200736425624843432963291980519754120120821391514647226277398091037920844233507836934260425694338439048338153287536409084527095958227206861216524682572350111823631550664485276524087629685337578236410622124454677653944190041609756549521418478307270106344067875032249726175761178175365338592496463309924776153786286834812068457856284482271882702504970553113655018230854592493276952687711953738013599777518051624073126356198097987647198309857131963761022872126353661100237861403637349548244242199566241305787204033625104688260301304666690680582950377688980514123336091679813817208313895478383288172453212818133193851825504575110541009949466134770807796677746057019429567310831835056582644735471907348029173144075088464314770057423963907877067372348690816574853749726407559238748712049907419651190838877918167645893230287436172640703617919387250191696119065804127366065598818320255259951203736052254713179741563382083370415405475956533810457140366528288798372683462115094358199787551431229927484300881475976001340655224397319410812054277633290201442880400060464622922713782344513044132120017246477061271839798113885791571786476173546852665902838355399959355594790876181409888983253584883191549865022383694389939358069343310393169001271255954301578314937019061630644583406381681739345968527501458057418078237380162766182968322868046863604796539460201950126935043305098444397406418852048695716276482696221143635382380174833319305169812369663767090531128505420490219414000379382957945481296910327343001796333680847145117753510921766321252022146829321397930990570368382383972719110663083201314676923369622885029562249119912873809085805912519643290363846600649910808565898223941657103947070740460192352652297848770638482175097931802820796845252868168999798066223920556136259604258114642259438103121702330976070120627577269492043398666341276531895842005387537827964126823517703186938152018279318141179403789039718400108277744874679986587194573525136135743113754671187489358050198304974447076976371153210170934440290557183729959112936173855226962340098515073395583736334307184983501265715758017686919328072525894028738971403490066402037138213144223451797494908248241457473992732621307113499430703465563567625880480612209136013388532676457571375708004659880503759024603126769593929040652162218691117962851742179028343394027181889967615679557711459575374435975281160273015957144351318945429893459762026996599534343120456120551290362564778032796815802147055997084126990876291544265356820183200709586344709431222485171959797449874309959976468018648536802232613124376319198709561252971645893041356027155677757490591137290842467599303156673913533530423750240384955680931467942148371454193805826868380863942183190165072042844598316598049926415737276229932421104731266763255333151867680305292832154495334609725909455117081537968148577801873160913992434875142935608352853060757772277138828981672955664219257389774116276521498724900401003929266436304213834071380641589865750931260317936913289531315477548577143879031716284279064536181927332861423893785813738833706999372731082073275785950722614851847258144262773328331842606491753908939849865923532207315213304091776400248304940441409774908374915458793111331019899655600493604756625308099265028018848553313231721732302815899059020622155301386327871820042919555927409151520685970466394034663341496766174277629120082705034692397199779681451440335376399249391280113285301382737945614007872538168931121376880192456883824998127493220635576916934720611131973844534825945277834605924639483142201788082237257451822673877693410752371404732337718976914171153845748886516730193526605176865156480094292034244324837160957727122503406836181689022572098519123731753102539243074521006334589505023839573504025613957191399299493689393157149348031934757125456319673180197690291159978034817807326928849162134018750830205334788374946958219400512206856999735956643663313315665882663748855062570736395014248679026055520967843591224133494850310574441246896401183454285333951302187472199576120748220554011401751453132372433243688583516847278122726952262587870420137755332012355321944964666752938524281977517777162714230922340463887011322076744022231204333905578254650789423265137774275517228955808289696832887913281756089230277253388064928737556612491103326101707522550437495890680237680008930367690924441728536222561133512839905630055955296038020927312979255433842674368051117288984791044587075609589730354540384582059175836533137687753552941103666628376467717743235096322738408151501737724816630856287974918503559238405022203725451381286420930804687828366211849193408287807216627794641248785454442797454080714530570771218666919165701519650613105532381234563775361467410399486172923588932447912350617939752796149812807065292461675929136330417598703046124277292330030151689169835512383604171567982704695895595779383782677865693140475153263271797514964504544704768372590143193378570729150467947727034396328003496250180893000569050201121094352126340856844992010586154771790927644905379314699280284173238173567953362548537171751238570469377642056368808536365618409668648561293395996078597634045838963545567540157233721043690446658730828986173566189959291056738224118426804810284821537801303882775207527677405106413732642020422427871247740851697110996816211010983824300801119730785902243966730339072356484181759457104551533975314224678104097742058644942533734494984332555919537970476336479310166741381967869712314409390439238051301089827552811313137805111682140255094659507876267482946268728374572698028400404061086756650877349955539212346005575825932768461940604695356074869646269967610803021910441705460765743522040694147970151995298811494059018608696881409243851791315458405337245176031149639451167519966311467393237920042867309450277389012237072176454425622195219765061452747945553104490169388920827115335164198003109963829463610401621554140055364518568262783919884056650523020582059991271721475691356015088264971665236706853476408300740337459909809643628249747271265960670806338639704371222616145755970957734344207586689873932330178283716617373327531844955557438329575231494715107920665913978697312276817410129643582343660574691132313432914863842121533576529116981893023377566528524541800766257710886071651903773493661240597776289272059925404149710732645299922072924064385090664276862980422443571592620184915423820578997867022309974012410202886697765532149561617658438288207940988464814365913794821685474984642717266219967973259925394628705926798228472383702740994684210286916969608479496308708541450018438332320913677626084664218168124196688270028031907934030576445169420152217495617806912383893325999662635636733330096742105762650855623207371389725274096321127355867035763938966661245277501234503864942568086860121594352690164044487950081938590204140114771709837150984669726604031042038175102957882380333632930153095241414263325430063873269349955046087088884503756380683724481205046996192547780634860096023157463267766727813803163974377163949672652681379706204807851252954155296609181504203058555866426267846379409768663135393118076757559292451743021261013182865103610231618400626778747021025778093316447319893534214380888738375186953892144925788955850104051492468728468683266137686100993961907193804100042763839355641785600121794980177896210247228974784267872071224581514393416249565450025925904118434935993557113464027400413500910333168345646532771794727907964799149370710323160929082243042228554628616858071873075965232003960318162191555719629679411114150015270277940940823084329803396593480089571897455181254121861520020418246321351558477840335387796554255468940656736415618324169244559559125079193799290873719222186685649140866225605699651172504980881039147537290030436002525164908274967864341974291463602170672601887105846111225896564434500622899929609136265880435734976386737466096461968515649405362878177456974310271931503688084755003759216474131444729636873119459538138766808895811725741109818413192813170669091943893631318024744301658212858156360107782532862438813015955209954871774947251385738507141534291590408191233021301807371754482488493933213944121539677905598506710794679706202630560019119015489749645279277997370553902608776138778030693591165544863725269890010166323816092565039419767340591794137282221558761773906944437727242068313522168243443682411843820234752180895554327712346209125709255002298313845217841968806362549602127060973523799026862830477869638697352450381539054037740231787438015838404807124074523120942455723651824057696363707620113176476828255945565800551917732984896373808545553390091956426851844245071991093919711431677350226750760625671598184381006949874844670806131741465909338697315398898418625368232263635605696621047408124267654569376056797428411626909318613874203073959801711879846273146083407292191826747709724389309142725159799465544353367225314698859281340422577925596914242613380174783184711035802431374204545161815618139626914384470472453552309651449722124720411991466674915564471540040015199067598982630275231681592898450430359667566618050055672967203036022973051576467337330496667052612857719600647602001787431996766016629456826328935457028992443643083585058695441721056356042027599057976696749163190393400189450874988556713826259539957464464757261346377032219323979684710028259263289114691853147119553497577530041631917590990263945569178671723260649945679233654311848269487267756199484824760010614452084296705028734912711511970594563767146859174427887878789640590629278640787233040739976423895314883255782825260570082160315539782151649058874628159872086904278834058707967335801918285350043630357455145111483099356433382104715967379290657562865987726365191366618769250898789543925227073223589437612347893470249733703156825542702388356779949797906148005087294209206973078934895415993894012165887146521951743192648023459695617992307888172427283908812059914142975709596357553718140300973292385400543580652926118914141688140061285300697699793347429901944884081986742666451967013060188723263210608174219194099438524152455165545501323551676499839316131674233564514315223707240498498592626005017029939422286129449391251506788241709752620864348159172715455386279019548120351670061792879406798711012923793068151114977506023570400526446223968898215074710556223685980848722957787286221273051187854819631473230846314243369832605668464262185476780985672880907710013510133838437934017645409538088039147355681547747699931234946713820447804703286098951758612999015645251057041504937851765349098955974374612559578187799620703224375710734652477979986767163045962753704046942795316408546899641659886193346997026193042692547373582134957036721752209381884525426726128099731535227110815765289042233097145108119607088948088292908388813644238242594580718577708173928734164990271868429782884083819938126488133952102323994476104040845646562028668708643166148669384370769923535661560793725628600955584384432558926909059932699385593895638257080807522937303612085951471877586419245602211825063224319641806245529810493875137675897993866523742179964461185869388599482593520068579042506750106838669667187140407113813524264701169790011820208928707981787478176537988045672267151509041083682686046024388286747232370953906559460026536447849964667163858985420159085385148164939329922793612517117128332630051668199402295425465071141850542772972166086381219426103992913532520533215843260786232232692890618179475359847048336903608050685012076595665940775855981640172563705994425744642745940123453228152297676053932442700312391106967977193075050794880288474361647671574180048140963491484943466843190675787675170319271413333709345266408709609687722008093534856675838500026851795930830080059134115445618298575632705818745862005414987966848456157527009748989478218619362824459750206817785840788086872267426582448424971305591338042105512422556726403450742628209132272768481291196200703211506110927602899047863792002895385542274980433636478592905570211425463217069643096419753014854794844637333176908818102539205885345318351553745277448300882317927670445847500923908162368277856607502430937960090042072830134705802845777060563706276923915022403968090490895818001287568145192318366858257151156080216618696610653596029834895683980784374009135463696982393449000577840697678887418582398686736258621739212577414560120947643948731739179764016949744387624755668867205870069734523714103163565222870330130171261113846792923168254050224381487210902155711118894774919242575451546998521983214957947058256325472302515481971002084691051558633576303147470107155377932618625904040237005832815070294223750835059177073803911093116611990823260058298319252323649084147472993278135922165071040629355225676322218721787223490942644583344045961276002368999726348338564104250942571532867964818065817349841180710628478076891839787433160583744547049552497000259561829228212113676414466104003198238368840938156637296569199513616805340263893795746202311622583727052788969136924683742138332329329738259984798672402022623639209535181079310764197607028041244640479288779526450888456127482964134448793680000072471632526484675014715399264130020591962510972696503917973294008304010121518449964343427115073937919253692351563860825138934450564458627715346879623736788668424861014431169951809950281662789332295012318488649072260970233584968913926846120392777749311249378269695778601227408306620837980978139109335169064504181846647162234899006536460090827818946898351601121873399348231541280542530363307978999154242368444962314628009096484684703044006873714818169365098145858090430806149779157763177452242034244557642861480935568725462270535975832807116763324270211728967237142402144679845703587180064788416266437408181674437254048864850558981599039848089702938243942399481893800268542586587185555091050855103161203947419135745759903321403602811924022604298955061823900004684119308950287528148896376064744670900726390876348518771351622843866901956385185733741550793057431285602467177679432610435738208207865659097363435194015315426212944021625993048950415102801732449346965776343416287240061179090764945666948913326367158244791627491672635815835513341901583625360633445996190171736342670324835815002727699542802088392077905522322560018416726715764356964282830955582246242375774435557529696210329807297132652100363386768156524169327396520555685599785862192675166052063991809804805898498918244590253285157874089070621754089057371757482094239641707756529773965180044478458819679512876926547681373198968461139306553077257731881785539184558695699091369528327742716152320005825072346584041435173846915576188511371614954768862221297073823719541511044859972670582342510004914473663890438530213367886925184129635505218817423692075334427831725527894765224948999432183040564176970506739262979792464542645489132477957047713478613917216070198898167632326429207285437560270064331652213712878613330596734773632068223107332930829998044683542049045125301783041542093154318116333683993755874269418004356870224006742043336009357017631514342011010923747517743610963708665813403356033556011115428638031179221258655786088989253832813529588153815767660203843229452463413567385258010548382195313782585445575322384060718918297354458817209942086952914549584595501247139660455620177263273529888408184053012481604049973992671479739899320574593456027677102082602007884288277934865498407991842934187734990034147527125142555058351127534189928528918842425643358518167058862979258190856964868425302233875029514373470064080321067434392899708343549646340280566994835279636000548683982152475581643811827078900928971098775437549590609206620263590898490928890984070718664846224759174922809058694519734938574802353944665422532841637253139162969225823556747668037914801130162603865534659462999175071235333113220113516100777693408279717944433735981942185290328702876326454999223911960620035535996377084943612233703727588201700833198590012107922028343388040112915813302179139239102571577151510755276477007016136038259256128176658279773055768154522291828826207263624218286714098603821529800303923675420758320092211746427649804005207095335282964230304243746272782255225605809113088732474072653510631015395505382097041645212225814268782222013969993194532328863612212364751965708538162879494007171714940459348593979696571884459349731345122500429656764611440427219042391952515040331475638082119848839609137257765737498977912189482477311249893406280908443810341535537084406715549155257315325810024886758097633713997153581318797258403141519396547590317136406629455765097812607137021627910971108832938275352911560571595025042931944905860921956767851087020558917453134358672982885358801663268000463563242855961928507239104455521031833097384177776053879421206855739292056503452257319833491308749476243286421655333467304490081590670860838457689075190343992480170720121473223230637084980168220114185909765881454820533022190162040559763410282474754510556567467540707095086111161531693577860581186428238623127123684334726015369587271827372396509156716465145068045332236060801094099267724234325001419534899600313575681141322321479893489969292081067345382960237710519467818872584711432918681629480366038300552043739812169054984769432853308971407356299864868116113301995537200452392687548061088787752128981749499373511569159780899900873069568909102338291584568548532452988694558289017872166725176627369316283576647394104761103842874694010671664544623901944767548825089875274709069339236424474569582684497856137996651691845244363036567594959127261961073808432510422284306550349635010641727212269179731003703733117692372384241159126331057118598267168162548245149263632433429307144989258930589052379167871163035159185803992582452491211776269581224748855867266172909506763394215251863298868839455484151405725615013443245991499690308954703163355011601854374796128379091109332334140191278978075085546822077074533933312981286964020219790847252712289846178293522780747720655439727791681194687811695920448877471806427293887723914507789262513919801270230395445647387930790031858487432040753078287457550903284407854546304630586990425986660791766973771322078589106551757015652662627537021526944685245477390583604529212153329097066241047177107017119413766473010091977265835292766631915666769372205046664892890852069164900412452973136899204361560583598733585623110643290350272496645036778317985325742206524016607519137389077120176802156905398191147212922683842888564425908054230723143414544541467784745994404294228584549811545546145473790309560711277702940218016070618574285321800410237865760341499411650876500143475174152953782602646418582831272814438757710433543445058114282506082123661283900126340758923555446404438569431942418352287199899423968882180868147813654282580542361237374859801708937670640015395178970827252262842699725207598797835721095268997951493916689758562868356102999646047225087196055490639529455321695975804750631457705575939417395009116980762615761810534440013750242921275131191484605457134440173287035638004090955596674558506561301297526176469724065612031191660489922306176359746808659576225083925805559049943316115498686317581394724199129507963884275162311929891797461947523182494792532704755702801549175365491559226597773263860718122701992982169946959337098003681568317737875560990022156011161488313529400117212027938416764762566856576792078502293523268090222109490205783436186411853853523213963198375163042188939082264366704608021013264120636961326395140784051045101154316089235235606740187877212697942740112346943138700931276959476567765739391957922963514840960064448302281122462528419107629879258748437597704706220661585527276648439230993624181826460479874806157578578679168607135542575853148056652906744711614388869538011084110089645743898515450377617637435658570803715446785291846902536791870379060015831924180172930974940055641561710956955483673996745996618116087798736417116309693513772623097667137462104392351373673845490084923495887781878115744649777282204474585369935295416221740289260794105875790185037512732701697407006817766804609383369381786043837449828343040770885622529662484625656142775076052422677015808723621890003307972576810895941446517962602434738342683588999235646963294208684151592440623703275949685264859775642692842480950516653678246762662768042096647929305702969077400027893404125223522129823332658008222071838575567003413906732416871544395153525780878633606300061497033899824130765166380978647364001927590595985822975274279318147695666587776515324858257963628718226071856173448843706831265976006727174639320113588801761559170385017092349714280512560794015187941677430910119862839527316833001731259216519049797000056906697049718128067611966416674234159325662859600698356999580304352384054060968279874377967741911249887113004270855361189181851996388664040491295698966380547581869512016724316580736371445010873648073296719617400472731820562196075083016908248730358809016091333818991885626843556507184527790483788395409394462182629948994168262801407639182909608093470901274766110973454291293135170774155994115292867636355649372417864184692772739411888139929834386620553786117533864012932087272915824261083368800080305905881152152498342727854185155995141929653696991358464017853885284602870929161811507809570888994547227910572471206562571052117185728077643222582578612299584950344369543617880372564991198509751053271634179960680109868958651496936209899873845863512340069174862563188167615905728687637546642203770777576758103657403826457799108638495773242235227104560785061643844043443663619091437760339096061284872291382166763968053976737040119240353372090220771831712638489130357768634795767663491886799426125217344138125517768038275935713457097770104414057957003966668984019216864738792913644395306557813984243158737558613089909878779752042243446066436688663130449199849754805523616417671741154625159426831747331828499335455366447018904186254724035074464834575890182901275064628152688692808879096550535033280970125760085316613295749726067578450481122683691879020936203844466093159804039818926953292477220341130555990670309151276020028056239756797771217007600029401775922550382037104571462165461436539796664353388652597723892614001639710242601387856298752417092367811797528874363179732760520834796869981578884341785357463447993063845447266468381661026497432627665085728499538089465996121547817735483417681459699686394310610500749115677410477872188560248607110599022249119379099882726365184457169761430359664076773509029944292264524551035175637527188246383021446780740042969412863940620121621826506153143463578579560094806591642278067917100099594676550427406487264314926439169585397781834623306832112680988534001860174262095370449746801313004577160268706091938605441853691957427602856949297565985413368394895395191437479965329781963227539540288093173899796484214919866473915243959731981603214987611749780379668969970231216778964101864407198627692667258459562812322891812830242020063726292234886117421896195352280489552454480835501884005276727425394849337116866102574656992286848837440427669909677016757432189279627546165551310289318634810053396994781279798424595012536841372400930585604839399490675707859598549451553127525070140923752245970420817248955859850441780979043805588880437417449003380999914751152917558821711460402032771671780269357931033948678429317046653670987096674857678178152473773251361844993798037995460319019527316913349320852396614728775809074157252435934053748886094312666030929024298287517267245382652338496286040587132058502696862476570080348863151488040572439178296524185822097068852882829500823711072781131052432446649617883290011027310079918472774533542299513892510601738763516807824216121445595341400951958056712368485218747189914714229192518756394615509557652963983170142269930523809322425611751756223132705774041953904549808276577377206624271498878686924382429903103603736009550988369485302393248903310651553667577384886640193117067412316094481526254277703601435401061617986692766831985476495662992600030020988351057265002810689133230830037057343331953098255917203868875145303922873534880468972304770374197546383931931924653738149928888201961581397914995539383013148718749279758536973638002420973121571599943125341375552208298065405945090870173502640682507187364465410933760958929843045658851747567169861257270736142106598177033594247252947672314217575165842371316419539999135666990035314398293638319680176346967325470086599732080159718244829989913873338159596120881182345937377230915957070062732655046664549278043288975985851155446853747501476267447883063074370927201851909559233698342335832101485734388252989653323876990706237021155136058968566361910212918737396944692971289530191155774403394334930483094193503936640219315154339608207599239936928960311755040030335457453313985005532232484149109333267220584071764478761194078675976439560491349898829432040005839277983492820228636472252188512603132885467527190679538463373057428226083428698459497837760464101171045905788309012422502781891702790967832333952156128769762542090113767912180823294364497806042955700573598186384296335638030974050114060485163660894185666822853304192814093574311747545082946603268095126431942529491250424279175037380877600288643028911062716788250082811319382879326961159296486640101563190455421490785923179981699586646421715327775629887063965154184481327375698660291286869804775011945734237310224319076865888450357295124148100472715953274646667918868334730147380215876092246983500688529677361737929861045343635448258026293107928463596056049728303203787575187203540377242940784349408867034449578294213921753191111177690068417064981421012350491661769990383386560646230232608119257927619679626651579543977409201635956328880078849802098598559351637878149935994203715090933553524450610930384751947864973837847056646930410871277430944394028087318963643479085938267236072591779536935866693594789071603153653294756809956325241766231070380717064259866164275204020195065782682718153703052971893278475997387948957568664157830760233326267352901776439433179007829914213842712505861132686595332962198711884626070406724441912126978433632752584718287105109223716693819750096527838115449392616605927506019463558824438386446420309498763220994628936277240216237670670743122375704408238910347427060853861014400636216657502658296713874828231005644619573918514806810104923179709072859268550296298742894029426546328735455301591253929282139674594249234287242563344675184767906395691796155056337433753832277906348424514221842490553934703989649323627721080833144049947606859619786009158855403812264906089921921341443528621183190377359118668933827329047046411855359275208714280242974982017103915537747357901395086632332927688837273770958752802015241139253219306360186158857631247340973473493358466936035076673157587952993182649462285050483458996209366368344131547629673828639411789171003063878302505323805665895475448930002716072989998332796436510745629082124222172627787656290711282091825085258918947373360677097132245235023301427749698635820653537600415082329493470929713096175399400733345344671980315351213030412225353402367241914897678500908038292647589598653036945945581791658041490030136540158124111819716749457540410801078243227055283990414336357016267739658076238181139172392529954525010002979956981652819757289184739918586391897163903220207611992684786436157298022509243063178464327539831565191176710081611507653524176092639668192945203875793672583474455339496970386432288018658059389088121060284175918172507574081388649581341998538300208592792701365088989559456750801263894488457657842935601058071509859462368053068639800052084283743316123488053050604412352462441533164312448753894036544731266404415383883431043477091149470254919374030336964939542608404646624570357420534428463337924507463484718625729786828695603725646741405087562767985115725316815215773732718335731432298446986921697313864912141827552785745643510054722284313351217951461787024367656515542326615825039468958479797841409112320348478446426298128040437500175160581235061388815475459402623287486377967491969883373839122839071660561340869485782146421516499899333549789312745268314081326728956854531175851323637658308254617421135221366287041941334551331524458834658612738859258778502689606169845241800490817571389281701522699814785443968410790461179267894818938216673465849880534172624387743479705220955934688760519038306233089243950964054609386521942586083192921103473402243170811008504066576743829896198491495231416983204041834378625210472595472403970381811579386550546290866219747094443009821506660232091159034463992574843421219109188222859923558214770982993124459128063029749020827970564526509085839224041885187902963095853032512100183788438303129966461069732513265386307069530007889721163576713861648143265706136354953128450261995347392759997426708502238623837217944950123034094965179520040418864086478098957572235855358071539659555735572453047027683832606433801824612963564188748738989542978351191713201828943432070917616300359432819549985443740542935198246212409669454436614380251993885368212197595196693687707052750246126073369465797000425560200879503558533138219144038958350842554690099826058096729558032881388116169361257449816527832909366977586773611064520063091432653865853792859354749949811822299561531816317687006656568992168813490328521048945965774283006569915906911809783803553918079351433668038620695266718556214926467787223912028885008393651946046556612224487069527947366608702816462379685209013470311334043666370948236697610795214330776633933291612906821671014510406478985041668242336767844733774907781859090245580623068994555935461612477208660052482094136213992826445053983743233155628086297357672642050985955519966389888889961570090597406627259204132067187582656099092913082720490576825912027456306260321494564855813997243133579374431481365300985892260417902853482573995894896539965739970693271659932968855548502764884359526916536806179303281826874079967861434468630017818997296491421994795479509690288896333240397265225915030263528707125765369301906682691830835833819538449965026872650287457192329954855197481845774405602927084589047480257918768526241395664957292910623154776553139187536101209790305399298005626858972251594777801602542790093478409570056218004088661750483420456721895455095059663930749697469504172843765943006962740555837938922396555014207265059581495188665658532691759341693727232323673220918348795600494368631302315433871031799864568995655425424813187891885309887436362319441111659511873959204057197062566867103480726464309043326381821754831596727707928584151151508754178727387277321256218398145138906185061307828412836519894528508697483702799692427756485384728936132867065981926421851644409009527014687692417467362806276198803966387427929776198762637931176755009197717343977992030974180191423047321958481537862911525116893059482889267710016928339859908018772891775370458900181288066268263935382977422886165106891646723443484607904857645349570647240660926947903554030280654448024965653049437841104837115525465624004837508388937670162611110183825172536672641641806904670863590271639858153203072881245146741844562131318643071261408448624961165050821839210380936424537255061731590883791466880972018005699108110386882499291727748525508150167266069914396986266140448750633390049982513209364298272238614724592895684620512415495067461730537243945334318627713696414927494021214338020867267252106985894538421672301280315059644239149268689489230889362961764091524810434755444331884606851521898613766744040921191972265989075756777362895351737750875774699767267041365482660465903751671082342686457661201245699930628671536981648449052342026262964083270697664154164386184594773489719542424647255028940367948278046988909579644638222185410537074450693191743773128872798690111786901859436442601146818670196366061342426861166724226537503210560712224242426643499069377578194694367691041480596281822641091102705992917040361327988357756338408641628004693898117725853528726113602014610123838062646306421391311031146651566451033564549149479454808958155506134272006946917242420753463154616956361313402680695750791858502689642356447825608026331681755962810013916796323725545333371659477519336867720554025707587740556214070577096614948368514481839666146857351857758814881580565653026816187824499280900498945657825347118743635335067656925002311445156911576048749031606741989513930815833275333624556888549863949972898363368047317757708542084201404606334042197265316840635252387625304658097079041441720890882830949765161852121706163564399105752906054795883127585233424319697359236144848316048416164099577690541712253533439735308349511786965901859394407364720125744511268201354934117593652471157766634060402596309741952396276791275942190816514899903801367633871369016688530275274744250314494962350956693884174772555337618688605708395985523916753974775290351217629593385886072176888799525980129440786997675895636114544527101780131128687996379701708701440138567264838647254535725253964142188404211076850986186965236933087832146454976889744523312275435470909519618337724987294875531896613330338047813677340158494330176446341509217790233304149586515422065052319309706100153250336531075609483263268051275029898249853455927078525456472871282989558754183837194854873426764991864587081114258924362667786268701300871134384402131811222056743085371493965526626138072663257680479539812732573454830656468137430159907587691523537757903265505165030084297160012246256078689350343483972172876095061677563400907555777251093732649464404797859460525763292509817468651351294981978869085823270421889495835265079875903998271680372143759387928215539314706627256456291361284308928709321027213618303270529765690710646010103593985473757205926004424872312843832439319542915185072588313060847011927050052337997479662676068480384917538491997580819938872395193753090718529030975995721187327888255903427600458397560679327159052312827486315824215413436387227621293455637564669084830025219489371263524926707192371885503236863735760528468852621470498913638454686240099500245292678752434305630970999187131200928425485044239015870351639423959705434714942203838574030620408111060904503732743808659359528555353566086250294322793908173233497245103919499754585149537552909870297538198196053329162767763722845803836000737736860171828443758678732440380771903772961501145526430567850186805612110913162545528636030543965689122684448538503181693220271280613518959399125583730157095035921053302145821497633389227956830093278144561823334767193354375285267356987281688514978954235036884252013694014477031266056522947418193325662851539337164021635437687624937233537476342623053768553177533847031149318393259509540525168683229173469308863167148123459443411193564282191492045330024048567604767896312135013582380370175027873116535067468422447921950655901345930466145075782891893787601152356179830039044234757369564423161352862146504553578849102422057029874789775723523206540765922448431888211859611068328422063346537033843488403065356033755934536843512486416126430710659077662489928320263636958082355509917288706064905838205301646577971087219877395228865233737363675303294617908974049737330367140188693516407945078910465262494246517308861713993999502908515802462760564968714680938543414937219850483575548637768626776191767258961214615252936743744477302296792062866864252979575927971914251490438840549568476449216136071691716928139627993174581072580575341639308256563808783058970695475968913744249780128740617863220325459132619424184575877233470631624649986400527976975250825537884211041789466481670113669361466276576699829624972927495618535101936488333693666292649135713193165543025781844385749507694960368531859529528737019204059764479694549148677639550571476392187566122927767185479815844012993880181868427245563857066410180081576550437584214848744448286200760489323893677604317998817616206736207755443147666416185796247361604408999562751475554162498311007565927966393670912170472781486075984887621885246329233303787956918350852980237337958454481499646413157606672611828134684165371192368714380841578126734907002182561842894330579779051670243862145246078526209917644039688619427946153712254884498897759250818051569609805504724454514959794033126110361646527472210533239656438061002564088874798714640805501947878554875416939327256058898738393874656975456980365269096462190746748709357107512605672321939830532819293936549263838879782704122066321383467424591583823730108978167508566287490066107594970124744366757826656678732911513741268001700451937346754146023940772402140358415430709731965274534864625581983644345278478464020414987620524844781001543513590976062519737696486267053687904212165655191748084490581064483930045557376519480525318122052882332567579796966493263709540460939763357013434714236553798189576939435325970550332071250797997332410814935773908252558373663255845536468047432751661588387676751545486018035199875788279598175384067349963333858203828610301326784601019187320667069173420053857953366190715160496424628396229275305710686566237694241295106622855730271135790436165673984057202846259531596863545594811199201364682348466627297608927360173867223870266112687455300518972306196044403927717798513658568449050371381985661147131451503418556845655801236937933172340008345840549500516205232988194743960153718651481222066824770029580567339890993690077923601666251249590584388435110129619473412849742987228613776570830557204706604089661660033008222870089332036315163218828388168396317832688018799786119567068537525500066317750590869815152404356649814512958617088517874660316041665864069046059831500837628750263689395094035685625189436333948318401805168041037198957977508366890001008482761736078595016238512379592557335425619373362118066462574666113212097240624503426663260103048829588088853700782960720140043343800910098396892855720899242881021220621456172226746174186353496704824870333872079830594700461013779518123576175563120415708047919095545487836788854226733454201997088686726267533589608388933875218429442964635323594471089204567705514334694007778701215815064951773972501472207295816105664831203450692839588326341654442314225494469415358576686906176705813843666772188027738650584164141512131361160853077416773546021251217033328982071891259508673107380046664846161837042541250483796966038279026803803307385942304619212627053153052782594641460509449394217557587148463922423931303751258106829678574264827079501924546917452662726823323452067570825913523023761920377468294225906101517194158112483488486970689682025468031292235964708295598311830521111895803183626930319597900884137351447520910040333524434244550095145607110776461772262592021383004334062326343356307562990323719177436651120621965324065367814148199703974134647932007003219949258993840624039884727227522204945443129159414253164930286128362443949254843130446447557804508164624151909354384134193962672680979979563155100069117199899127302005365259986365146954605187120291055236293861958621344827874154038180411476643675895753622868953503431338700798128717514197453456494090627048977052465483839392899224392571250713203261606475704536155371578663749995056235397832383227735726280318048992544219886204093722789345907577253404116511920039923541282916842343174006783584985658741482510468806172051082615454214851953818913295695452899245764288113833273735289232732746898002664479397361733185509420784468066250252120703562717444308206378885925451069214464961585160259307389454898672170941537409534937760200016942296836475372731132560467534825885131526118764167678750544811105381188563087918120054996187471974173986048891728918661840229777804773384185087104916809954985828937107257776904361955164424479410955575225737567622570604841294648938254557464686287832452021263628391626608446191209272385925562339221071386474934440515703269099735759589314154031237385969717786908181812845139540776624374710261981103423580109263095523465489071072640818932142706135495388280605764123708737039360960045267111490097175262538205535390621870306684269889873520181184915865591025290867208408101111095829963067018078669647038308711519986566005533119234955782462320118244460700689502780637347235924832104534634474065212627705081709939889950704304543741535890125593008029360172374207315352863003603379430146070474616434058074322444649694622688394915867407963775160902533898697853552282595734813530895080162480383013123546276923370767871254830226147782806463437704136059238651330272590479044034587365156261493815724060811117052062077059771331884711878900095968016166717432131038742986804476018331420239866838102813620806536632510561933602764691122363932051224920497194419987516200730271753111186549731725586878449906429953943408279870153538870909653119730243379352856839472923484716539958241797084564164000945915157561669918136154849793805638729464721181557141451810271693374597567189835328872494809374615173000149663660658412330268807630798518620792610767234267517245960131345339658776248209025724849424416902785910598264450671651560724338860460639963472767534734978048738459736532209778427063606850227005856446643383587714648193883572444504793599949894362053389383109824499495283784781081890935411575213755378981387692573303202947414156793543310294799724920632338796616409974531282606376442294063125948971493701848892937472193880218819575590721511326463712085531409306511567182167030502478333272958275981166537309086132097362255676542377418633611597349462065042956928954596776685409804203094455404979337159023258628853873537164509779223281208043788054846067418614728354102406825493823927851143869535850164417377691785954118906095012359506130025120741438564843980561568595530177556176029867236886310611719873152545881682726139819007269084947111935381177418974903189434300942075796814076047456808410426931911157952450039386523791948595705232426561192967513661722756431799543677850167653593867109254044416001048339595578565057596604618981797943846462340395196747957462013954208507128868359961575447188777446381663332153811954960553191060900275996243786192325409041162056185370555207245420071410019395205984049760432272011072621532177371431571957019891697983726086486851991524918989465980975601163650252663256265552568069156127836778000997689681045576638832197084531822542686841431004456984497445559613896060852514573842866263519916250624312509648614368609579397948391366825957778775618083568594597095403013414456909647072890030055630604616088627053363190901560367332704268274446722152354740286683178578827843352465964568935466025706977424012926945186143139797517387866012376960656069682181494340457658632213501990293936084513021512039763613506597382601534009072153906276702169983317766335140942849969356476859297631236267383975988213047291888174219306340938216652619420822947217580768535503115256891342248644646030250637144794325866987576137564992890462785187813546009898748719770398670003085354636667662857611729768142647127361989870268621471675166508123622474800556891405507060078779309437899515516042152227994179858365066148072021175290105437388862046148679605815740738616805026327080709090472336842337518814454219825977359817169045016672679814106501614657816176657251948244459350885106891833152821404405444920463953826749959139171820120827246518673646368673123880657041319921856021285922996438409553189790770303396239040536551556590345929106403763537420723184060376922520944535578485582769244912495660122047882142318994198974501196704972654966722087529676685351977563592691687953743088339317104718941378408312683476936241959685827351462349170978571920738196346973915976933787380351772771806760693551543630494420755607883676440584372988651679353178815183153638143342761091564349356174306805415063547562061347469004433363950064354986458928899217006799737811125194848843796354427012680739637500193055531207511683591195600722963132433299918817286512637781447982480025148643666946871873743044826134230847766919602969446250758568369138463971726516827987358428885438861656370233399740917004080039165312080402945132121652166253485440068251830126055647536378819868197713269087117669852984032011275186768620502609360983265920303488443892678765224944369554141786691621055222085966356514479910106777388597647770533016421185613517776321691754741068965305381736979299128143584864452923668531819101991241566968968663069199814548446334450777576419972474257158583504709804689652953813507965673804619989409154630859283480500395650830139171118775000011569114878153743156017207456648730802790251244113735316329483256660943390019142296308074490219429786547331572147423861686267891371866480329888611720079867644968146794008164903490917401133122161907497118168947129492098380265097845155660325565179079558685852189756046295130299427769337643722177851252195801646458281534645744224125083909433505861631427804953714398676929373091090256691630328887935034450207673578446484504149229165340788002906369258081582937305401932093359997790843334246487402558445799631813606027793610204454821067821807061629247210524547677555214851028563616236276215943725832931584198908149772624355973315747562544462501800746995307132031887046266422944848100774436372268314921981948426886383275459604383255625382955088324738722206977058822289338395487920561445144520398733227699871369316789608803172114471062857845657972430078757702633897763446964753171318237608630501242586849124273004032680696734530481508742355063069725695928520122635678301362482749534728787828062082733420304150738703079531734353931142083629865260163262726638825944390352202079684519266773854874267686602972579223966655932199165281043241024796431222972046827406933803126882422054578865577492674847907137610005644804932772375755678368030744580555685527800529864253792268375709324988029090188625202592090825113210439896650062276491219150863889282555289876505696832538378729929472746788497820867904665234448684603416378607481320319148214898297459798989825105348278211496390315967770422506452742778158859100288267337130357415845088041015374113615386568793038366454578356841819470837755071505620406942737169654958846675667757411969051088489672757330700667272327181013133672285021307915032628395193349434615225655399670237570733761262577103648394260236662960721312339398160896264884103396794238441217637929505042969976120183461394545038016130310852175945553477215450456273070105292228434881620100629245064075176436109173512338912853064877317963650789234747582898923373485205133964319377947927386045363897217194953414381239825195222546197670685105555791630054143602695347089949708050283168374101292443088179961287690306385930100256019836654170285613090664353803976651194350252173792506625743076359298969967020243758762622603084771252304841461623860034689881126792733845011027469865998686102886319183015239779189188129147332779179164872265838025509191829008648265335217569718821017448061883686395114436460389988319841226885911988466105245902193766643102985518639559717836671365021193624397154707964824103546428020988824519184787823521985980860535047727449593441513801564790102386751830453461726215233904715209638881848719878102921112481476508825674773972373613472076846142651715357535874896307679679472704661164826121086130309488219113090153373391991839155572489867246518890334902354122931822668905069778061198966194917277583865700607701996428485394113764889625983803280395210499113877693132233121747606889636554579300400168563178831371917129604260268016067906043467265690252202957857299605795305083279437127817092737766205337861425352884874735739332288324860054346291588803085166175496080645487240345131346942146311896292807091544901701432169750218734314558988321474775972863414429596462446737099824477626710532776067435086511191456375528586848544163727299943625519541634314751927367298319613658742019225916274715014696572168905471852888895653987095504919133845212001452453010194946625898044418224878646979859265160315547598969604606807583356138945540356265519873708341783895521554648573733135370066145072697395226972650962906384584712648105597410107076400306738265206274921643685555688722763661264192418487111049153137480085976934758890636664810291520252332072919787144579656804475732551937554987014615553139571843587745444688069402748924624742294557454213443555158745273337978319088155946476920315535165439316624990096947298035645996024364043029726521259631012529105199318832995582235012010367112423944269845337785747786718281919615804382394955815949852908630581521440257967128573548019818913684430599922744224157180779554365599691863255263963089355304989259309263292803621615180930277601063957929387677606020380921600333610096563536674711410285385126133783495534194382857005300855168431718280270135973849370196929699352765864822787177087752334689910023192865360382642851031792211068984933914526143579139291159444949823615750134103420087727188607564655823846900571924260101022795171651284785799595598923572568103171349735670038585015943175147252828860083148983344465179438989255091622554253258845281448604360702430889478671131348934071568892403489110028952482862348428069255797998036670028594906946427121915729202103087746472190255569713202316900507473896632460624783889540793381794115822722409324966090375561753207678410025602029809216311187608713132953041951490065927495094691223147845363012806209229646944374286300138347005163929916891600464879337248444634911588337388111997320400647161575939886685679921447868909156021917082293794848399947291498843281448948927472649871462313888054548003949582607477497093336960237228848397558128954021006417944365058986329776940679873825724684758601340037406980722372415672069628092292548161270361332007273159897759684466669881957378743928757516449038233449823249493910579028366533302234654962829571231324011226374135115544464948117577615716824626588467131033244186046876234956632356884937347207293035600460420375361906458307296840791751671671239675415780136402029597414036618617735649065994370096195383884855760817065762016753389786680052659580476834582567345912516039806834742338944901021115041403799755203645589387898132648895556405131322600707487354850956459235240419116513065933252252953655698331023274229702283330305629798108371652625913847674635196919788768768232258828640600606747885999676108156726041684298319606968954050036269175006497238699067904091119220520821586680090672439246916270410831684393045971789275425145545497112763934385176722366760591392280576106060279690739032419380466417692551840962838012295626973604953328845322195692072565003192027496988480116813010214004701916134656078350288571593332700163798340616044143041417189383078429829123628496780593762973170518464222149257693150668923990579204733521426154938166560944596883059134624009532516414002705467831544560008256802258361471809177480555910420342967242167093774181601865805401731591435058083237141265894728089813596455611066675032656050159620037514291652634592118026353259844022653546713613323182463713378410638769527034507951535821937260093624365923532619986855784124964481697997534365559016932238329017473376043205770578366077417586211829625402447234756757072558482178458819987777958483437211691243410873722467497389605294227020107997266041342202668386304728351944386049868615458041400053683585231847959565687474774606837221471467616609841568446266219069262657620433684901070115618475881082763913854895616079219027798098481262595396309112223681632115274581499967325009616100503434043755757172270065487746173420012737178470015681828530480063317088830592725242197060504724028418431048778861367863755112442765705917932222051235563073753570606722272840838489040739219812363100382459068847407944267361825997769540004103356075741252708882895009783602613592800328607532680441902032911077187686633182513536965737774505362380291426377184967283831256545129450469461231814952069665580781677430167232256711582523492149624278180780158160401418134240916520106981644500988457165759776544578192386879541645361525098897028347450724855689452602426183974642755241318722469589751722079858988052374479711154930578972276974003894436855025441164362660089299927804667371998297677014023518338903122795489322748914454410788448125326164689370066248413215156138396003698000982565831165370872943875417192532676873331740495204020994241640822366854713843397622834525207507172840775640497122540293274626269343852927798179236162365367606827584078441285602741977858015155886006204113374008432109425332082053098397376976243048396690505306002116546162788105384047122725417207422271772121417162486003233737901484586673270292175329977819822993005899637330672272117664188264013377348138836978795258205534855958616643996478703355535984700405617170510201441969388145985714175012617732231746801455145426589961455824577808271752653760481446600604594232350541929677384217946456636044060054318452894074926928842567230794676157793289875873089135685460890404373845852626084712917599204824743745891888166019238305055482566617148308661412331907627047617221036656569592610963010679974515653286045073043992188992796108620399275424453716239505411478489238969080937984967569565249994206501022010032054994728670947865520030391338632892420594367066227596005324668724908544093616041207426900984722585026980042857837015913033180959768835846385931462007094752405825655704750406883244673389176386138326125822052699539364983314099637130760001208563238091449023703160403582310922253113452117906316433469153654575038816795962701306075805556175312280191067942888809111479592553023603285565460178449981025610682778261735415194056861550491228719705590867856225999921363233091220026796668911516703627486307677015245543892798479821627098262892169299026591197511593408127780822592235131686495027273164532097081376169363315429301830607859434460029183998913360273143099347479783282065724990275892017533221074209296264401191080242464914894569221107028669157276801673317357784125088588827475426195716590246581485822152988816410530643378503237754530115679778069041506139475105115461570700740377451471489016269058552615507294406501598547432389983466975083074825617469602113670701251528032523717012079775479286957290288992882797828018449379654848951614260628626217145330951143785867253200547268672045694433336564178785156737232739287852943331989449420606917486623871745508485439616815465216334546051975554110740317340965231685900228505552797546307632351854921229004373063290864358820308383734679316686228672294380252188277395840762370524913064487412752820105097897638206824260832935478372591755796266622539513690236140241154566669632569568910435812111919243102289286276239839044636750164592727568578951355773973316731593256277145203286581649242789931158093881552068524106337597882758079270393050931359110119609035236299578262308014191498008764710993861139881814067553813288021357052373568507611792028964710440608919999529944816824594249427068526728220753706584921033624612822521725349341636469992501078187018989056384214714098557433118559627763912922116510838463671688953329986376565206751958508512173968390664524322867316107247032229892051870204468794408135231268069760142740822919462620368151074021346845139747809393699026487395843527977265946582109103478767562223248991114883920735278816713066181413579694839122483741946159223184017955808285083872063354105926255264918059251228069455707084035249112083275118180861272146225706297533583172834770117703936537375222961657203565295603893312476905872836109882953374233850890976885340982364509624215711549633345566654683169465580309531835589337080048741263125021957052259926581843447460567929042220197908367789686137276161875880176030626209863214539607112576020910219847841962734942252842375589905309081951229109568875333420267840937836590534935132554112210500111727115529623560920482281330470337760286071781203163656095667636156883970979635820612398843338358378498521748710672319876539359587449206208145037241972271318881923203515834488098826485870176317132780188015246965892385143026207737038744068572177836414301208630454386251908945972372944044424971145434212553092231508781469211126419548478998230583598787931496384905950528765669538870238259938631559070023159862373357543925417509928679169550174855441654063739715381372883311877323892941089621861340095840532622494815406651253128675412125723568685260123714238885463409504982834844369262170589335582756118470906866017964387996814855376684621805299558224373757811272701415621505765686194701619047663835334200439238178358644250747981428252285020038714988956617188064643332071185672230054510600707551979824321867398675131482627103123563833774007358086385405339226726141297276293864042815184860336729115173786274604507349273417909123334922264791704749277146446351449075578104448885177927687058261620521897899345937211517948583097366600980819822634838551907061102223400332312182643870418247821001091800319057400670924518923686555184237404964120304026524067815992345912699663006718150418749251012451882904629605104459456086425853517077652943131845120243767963304737809650925207777188490369239624264403446545799545121787774124800698603191424660993878302100375176998121639938004625059108718082358269176268993075059101447401272688324521013355696132756385135675062862491337922175310537299451587348747553722479904161430739713024395917307766996335416752660173223733280049007269626692442106020363748542629513580026554756373596872822104936335543609603591772618934459249530909096762705019411967156937006315788592725751865254090947966426951703457483324273463438580950948066031477471834570938614371055614536263394081282920917974485619798735528477632831655790328732526739582104956435979501740269192104563818296902299841936662911095638775409334426867204352699077706386676454440987711622533473231661096106287252590599166874845927936812524379296545090632455079760870255996962061331899767018134694582452009672249451323795562201262610702616061165131105299470185019799038233020654973279307822238273285013695425690168788653088656275498636403286341349388379749662594881681025046291825451057473819865287920124706006676501193484217249341440724547324657640694041113993061013419839715972677048376426276101637578813592145878687928554860005737942432307559117608614508574387076250283684375350214698050261673561914791517025076664633968936490117502535904240816956804464892989029389849248038740322147079767687657359246312936297529295606280006567752845167592106953477533415860540725552102421130517177380302018859345051407035679655471403002712435024731664716098813237210310718497484178261832985641226959173990745290369384232812217079380583875037281302184218372627920832694055285090032316063822445313605421171611930223195843116675437352574491451698790796859404207958183463128367347128299059199469755919461119203204965426244596427760276257374466792078071163659373599443496147647283877477283551587897695295706725695358748934891299067201802318068471825618196835904302574089654095882230542827453074577066166922613394397772140727382069130681126240471748768954057101792991006055362981009898873554084778704949759730422479061041393099603467585852586504752277931612746436885488795616335290913865039690749382158298497307996577070358059020878487970219585100347378199524620182783504450972557405938253517028681525957873724232414087645489581362029166364922208574041169485652376808897303096163454077785293206307010716357247948886402493384417143632303804073115014065278321972055959351238633496044630073149097909229250125253372894662530821219224786184321696714046057017829876119779000573938100758827560382608815142087189808578255175414113222405050088895703670360591784815660239722039126392239503942077955157790955552452433309072002075400594604777849562513279197772502770765276048043657364606304600676538492540461839128835832419072886628009031906632915161052503868644793528243076748897594564955016616252073094941107590668579411941832494620330795512315091298240397288191817022724425097183828140351859307932336299797410417881549062511334931694013826754035493659160089601046008718655697766797184034614930852547438940601254804029129169380635033642864268120678161831311381722568317001440563367516921008103881632065573080134415788316669593133522792063266610606634453872550077692200600233187796129804217144433515291864440787222808571935779969430505275678517056640543423669649255127110834822412112683580040925241642787368065098874756511487387725703029872544658690920961865057560415249759738370719053500648397088615210416147020445153984217133002950279883924628269295596640783981015765425166223818320340083384993225742791093318600482375305453314191195337891523381418365613405533038711924953794224233630802352816336945774703742224910367224438836895330134618135321065087796448327621094394738370011166262088687814803379181160831757324487188447484512193991622075748633678398425831736413247996613496421387858689954369251586414481897723484251591608312652567883411133953019823020784395734400641970618665461820276053151262200604426441684373613609809902454719675515121984566479861491625947744791458958106664615621377331462713690411708817544235614126561040943317320125557082429482380413923380913114392939523257863215117157945657939824787499185384248616943913291759031650696384964803498779640717670056476482785569216288632945914252914290387267064841828939131219562179475552470010747208846408005207493746296214766467039939858586686825622802969959834568419846814451601298347586729406412856819440191006558176600516395121669661692849832406129182532010980416973643053413505482938620563707276140290276772421907103558708079290196367472299698741545692978814268305187763041704568461051111291283288781745959429300271602298847986483875315854100012482677270761899018477866836287879652774842762069350919488781975969136708728344794547371874661088310213461650824829945353991903188447296824838543383202490063722756089054175091020025804571327141307920786928616561764925314070954480331362413613932281805653610415708891601350102971434105171385297761619690913589254620374271434205472590855821357253345902694707596460367818838875170605830257763964413668306699857855872715415725659968991595299918346520843655208646108051901987402312259235601672605735478552707936547314076570757430173269512270178536615408076671717805239896248660067368426657933392597931334417809501008445041510851629503559040054495643590319580195084446872793576235178142856694367755447943722059817030660153114430820807701174839354364673310150505080597187040587153809919186793495151963408360998751695731739186854774297009431468154762004072751346340443259191477864173373792303987948373333902593917880995464065011568312986498450005150415593501119174152833133628628138162429503116875200062160664264704216368956569818575858401456880364532271900259040580892867104061413687560485792313279239297968853809961384967485449070199206705133791855475287805560870576532769088786312601017862895098997688181290565538765048902351198266276190456452167940179207945589081976036614415884721462793756041365347400553892640134721009766947499449285664533604261312704164765946801493893095937967597874372556096602571823830243075818817521506119052042934963240481102527299960874956758537462849195421121000158125377812702475476967336749588217234667143665408194060807113005451144859100523064337048818300526555710653855783523294584227105091343096934619874272220490139971247642837353702627711321873110104484852741315865629575471857168808911218335431306779420650292092247027373871902707926261925372696392639760377255874869521948351947515431142517758582338510508332823550215437284640163927823219376453796991066363983304087647334722803838198074428697940824634216111177135531566583253904258550540891594527601308029328928454234011247147779339935952142154008739953225129143242519392602258916807378758511968218145122143399477883074525564271534324318317762700503266681385028145464715922560153214170312097901191295535951173810887136501794517131125116606130696033422852342050847362950134261443450753877598168618546838173307533083996745711643440255205549879333709534160391334803971733273374261857680696532195353830959692257351149622358301775353696530515060883739427743026348899211334033978885496676763305432659492976121040742570727486304179739727655618315854183814735915536176113088879463036762109022050040365494072709816414691500011102339379138323410050060190612676729357845846221885184250654240168931874560396084633713297134276576147823184855029383170616685602191813332058940349552329880903811433706395251568354666746640357534358857189903787681865663815939479089670193981023104869868376074746655400932773787816113746797219489026997316132243442229823932888308065890051982847293148085436200174089952447135328495613041052526914890063019320449197258020907357493999294255589442511704780400790624000435537327371188490221365175679289875028395775812483717066548602749103826909202857500729744493161096322742870543920834093961395997405103621032950414324289406227794992922147814618949384252891351992754351223754385975139889417357613405545885384727940015018085882531939237921129990292117994085388713258808639578238808153102241607808555921301891003175097809742439016117500500243867088594558883559246285529316806277766634942201500925531081077595972023289454831750161353435986804998033342413188816185071983658709654131368681676122434622267752907647002242622916891088248910975303433601372224364437078695017897897333011144579439802214549053897129466679407200577542512882618946085380122725880934426448889858546346293277144751687814042149740647336687007388493073903181754518320587517787581209214924430151262546031044443587962891557815245146433130969923889528883557205519415270376501367813766323573653963587746109584847865623383425366000757798947954689723326490928606049185628270644107980067000015022222786835952302272248622146421082610252899756365477724045083642252970150932891185550777635715405842314471372456144887374145535635985166136511292597685240189672332510399055351079452958938446820172159396603112679911116874118345670965774135357805938953349521464848203006355348812059829650604567570892966776217479581704918374314923289778551735882517612936079948820363299579153285865236710350942334131199390654690986804932808615566446971120912299913678137871592391815585541603053047196811030242166323724093187687330633988255691452463015709479774228888246317817150815678960237030288898662451622613510069189214931917991690311978914243253972577179442913747349329616353927276868846666611930476644035103961524335968957869757082411798023776535418074348296874354832446791453262493334043967531973098475326216624513411706388853675813412863488014393874617524770903727807732705924343917510143869650863089930649786284348299445236422543795352943318393598187284624655356495557944386621320910995683921544771918162489512168201761521368305262247248433637234819020262170766717657305449461331808440795157454465181449623308318050820665068207457341506901055407319556067346614493803457291315797747168002033591797809650699689143375403573477044667326732764248819693481944426560359525935894527980920307283246274298723605603055293429898267948495026519345464935665948404410752360668973030829727946258257592102569678177620966465520215278813644016453037186265502581333935801573603831608244001584397617844758333823732630480755652063637732505664672675569874416170008250903301475240691701999235331968202465139484315590179328379310177094887594139662319678027416805705612235126789551266992231108821692862494547577590834032050534157937879006491147070891141680862708797779293134867702053581490988067050182200153962882803156434405786564413155957476982874742007576493578277635117163183219044320413771051571199400075008390283650192130021231495990018476581126679715241511908508844831046968257896899744958379177411630669327194559158034101079254616619259504042087463424015461772350719047346621269481616741390835310611940167260862564792123464935718477043216344155658893463261145352131793213449646343776020533917023472678015695633559346776205019391346825611026447578533220210631988875133607353599598207800012059272923461431980096952920496427154791611341286246944185361610309625242684838209139012778875069883706850194688470866297752877133253243725728553848852293526614325648816351250887603554939033070120536523285112120645739829084914894142694353697403816201422913567387853062463397259097097801915490399039416336298935096642239161477552314601793413307878729341929997911467398458210536078587749338339128142273382022235998911099361175105056105292629952184828269111745020729830181871044469481239645550306391412347993529936927499493898172736504397513908404359952697720382642957378264996750063704144949593671409565281087436548909648771945717003000064843621466738809595422540236331712913966922926034458105155721772642492722637580222069655236637628352531752374194087450525216273391688570532264471113287859062766190606680424525843633432522724378296050522791907148400543740190237206075602989858338919139030205063655251740576534808576016335866846789787808854237361145383511497824520533478221419717764515589630164316665859313407317794420434563846763384372877656605966361040456556153025781890291536528709571453269507155403457598581947488738455222349196319920749242798173925279534537274685942803325852546823572212958220096146180383992835786005354052042116759076969666840369535107872636426885268544815567071665536693043617469084117442198718981605303767029946260383535731887859345382324678584058826261029768526191288866248483700678584672544458913744581948320551569082044113349694461515422335974252018402123513431085459919039085687716415990574566572369115686916859844770277355978954843115256328026235449084140167284251051690817437917474789202413992476423042942694888472253963790799103470106125240490417770203112649435086094675470897601839264729460175100327986370876912311450868507501436036790049795625936537240968936776132056118573979605364531833564724297229834747601549693476228716652333554630393198651215862017025249939961015725689431636207504533179174975532327150940021621639720452282508989508979175921705916752712571634771970640159006906235377830488858371045824788614790801531395781752754980272821891332751318493087214562328625752572957956666650766960154647155343829774298476387256557883108889781147035239617835820002146510528201962815571021540670297831542269222391525637520377634743822273383025278822544261402055973030108764442656278552210193532487191072036787435458876630987150150994560639157959859667561472193962939057426623247093028606564852124380819504920332254716420306366303973536266748814193529953571461604927762793465843702966282196556710386374015222182338572753925989661591772533311768524534439106411797435191010280021583341232810393496081107204333772484056238166079228917331990847717613342004153476289886792399803026491929313520941717820840573780441716392246967786581507438055912526895615022004880487123010820001672234252002450679411758216173842852083876159034979842739041641719617293618756832977260760750891499191592270964200227962168493575519355867977632793376149840624158758123344655110877187552603386372865466967801172249007392085314346133398667283476335578619325972554655824902466622351392612092181178196490632773271056801324921140272459220186224210408868363975182183887123839325467536358593978258259676800030519723345848984104657448458510575703622105743840230100445759212480500051376562091118132080516802767764080947010594981969962899536657862847858241127715016982975696363272349506508909817763036596169899638176254533947620195325834330788122327154821367878145275656003799877996377415338130489794711867650437194706301864813487168909906033284837669370926547982858347646574793833505067589059136389650556925346417464351727689270537047305900649145995826391044057539544815617643043930273388390783337599543458016449806654674799920782562664045950619947573328155075290748971805158444900553879444066743768883336622561251157312523600094687036945589616881867800079417235972657231132539667416000675562865408777132603946722737295835397084475412877581384913883441864171902017924952081162610377361469967829763054459726241581084053528592474659463059603491812364962508681620844881123243085001780613994692644292656396805890255197509750462274490050245240725548859481837853598638570865107411015525712444256884637997701387691629596844386111960049653332686116252092474043786456263414224262872733208524091666180880435373306550092111579508085658142918529090896782467388070989493173087436431387792690475594342871132634347153835865070060613871155864787836274440209409086860056136802480702153775932803015393960791847208094787648802639116125970511306704455253036018680242635502095197727078272344933743354132748164417038646373907970288113277624397334611981632805818225315617566942164774647505309511356420866702284013038824097211619916344025205886747363324452878325029711194149400896252720577768919096183838274525776829344445463713507384868094214705123325587851361202574426163029432950504944488060079202434040959385172334472769189802495002278648107201148035176610151545055148743023559706278629736093743674378761911034382563062976220510925178366656968837582621353058673565608836396423750101079243764534705199703986240426322234181238618856861573962493986071876349825721529123645570332460878380473790566249097038274622354488585326639468875009546684434084733850820912566335997334451857656041737269481426249086637964425268830668639470444863793080743604819752565788258321462052842750212524706816425076751281839526221351144714639663423073990569452122331121188829503893368839822185723377295549112798404236672818845268981919860306763193668791899807407586676470852779934905003147363029729520926930074019301374250668581932273994049180766326474366948320470671016379190206752849706287154189861870534254675355449571310265410199434233797784458649157811068537993987626899483597187488876235833885094383755768140119610958872163276099387158203405264936731853465365396459204739396175626800796703964896382688585655846501443554624377887804851988284364889572584192091355037283775841862220637492526791562581423125346745097012167704829752131798079480442409015645531341150661467121503882452567107455012822459366340001789448261091391092481108879265459871998048009084309406516888906649818475420888540687194455607981804992805129289985056755864469355753105300542261382863017520074264237757302034195840026923873320912300297846485455303864119457708810590402849640887875393066480555481854288406485778230903727976462267798027903753086120323833424164214540597027156805519008537041246769506535123680959378158078844396407544542660136353413373390392002820431866069512355161373999155832192826924777923356286698219371847336189037922647403183955213814122278012110146241661669636252824081506521313271027358843860667085338802116686595437581544248547784432696222158498468056803824552694408061777985286554396101801734264395035351187016214899238130777877052246686784643519456125361304040216458456623781028828129131178978920624467177331867667392260574610867214045632719839149580084638978166373910449525234060962143307835511869262603287075180757783109212568591867889426061391988981635937115415675347010199054886080752135851510071024045399872808809394341177802308426571702674832061233183003992443968453080806828732971112110496877221302242130711476220356095532754827599834772451478442920240402994753668039109682103090792260667112055833256898993736824089432803605044704128082975731649386788208741568317034221691422987204229254038578585285471779670226160594977495905041489915098862397913553445164461533922538271882215787233635184756797926277696122914741640365318754613432428087341415393057964674176809690789217980935208387452270691917651984745419945389564451907886083076196130336460114508073915104169163459249471044087646367292089971536551606371433797463297584951960722196421612472687579390397349789106946784576648469436696391233369065743573782943031349572605074345270252357065894671901316599014589560833271094536463930020080693733135579556317050613925600976159514195105656243355834983738900841730429087430348668145439227673225873774985523416981427210697318900205745154042123064548906858010621281650970946763917134977472746448958014886642938929009874502556998396710973155578969236376180420527599995768248825860308322494939990401741797733027216140037034667413101826436660271696630059957481311490963078981655094138228514925507634272035505349140330349337570407691859273180004992673980876687539552994241528051108814707764135403012998190783161433584564588602180734078714857270845939740152334947689823501790320284671703733038269903470224473483653832508982754518091367564286023992413749559415592582162418345378203022139867043923978404771234657752153392848240412092000482870318098788235266179275522064822393254888019514915197490954988680865451919659423440161473073994922119079094332640422935736013230930946671285125113561752517210261725754743650955526465095482337082290909428131786199567669086433778146057322723682058736950784761102491141845630937066316672109162922394852944922152166192695844714477210059793083872549168134722283362812411842492078926388064735315970177314436543506021223805869168563325410148705552360901838795805189899125196602719740518648977449130662241880083407531265904692568398864971741082016070456754896773074441525490521982478143585890878589957589723610269345538081384383129102875612114731551610779783714011186563709103145537792340399597213936571777500722398206011863321354684419566102707432818279482948967214058965301809435692658455255471906370375923140098689149451681549103045931320325406011519068836514274662382495711021191111428031493238052247323671783057747191543961348813002630244781620418880426191475093196095896808360783737194526206713522067644199582337980097779273650968817464611060578137249215852413903276837076643740470773036421313429482533268499088695734451273755759843941897897567963147588543284907090350098595444487247525009668944612743007985756042968136315244185551851599619319683339452769304253853908471003478287545254378281889140510473745433933745199428251392644967580482693100262212117874150546424220452868477920527269252635721322698435065571268670343802506643693183620349732501103306818308427463299091658708526613979083054832752109201708360416032709285363480945015143813199886866855308098396579733546875935787085507639391149685033001722869794672930139476118649948436628356040411734642823339929297174293497699431460986584090091003081422520472269177066608966353323206926936482393784162717364804780843572384961213581454089736872624034122182054327018552667632657103525450841881642678953261363184978344982546012974350783958530388320990898508349976176135474115325612664140889726824061256339407441344329022648707868210751763402095109932954481637870229829079573321547256342935428267472882504892306207402295057192103676182545637905588364074311107623212427269850945405329758480190967919390553796091228585143272893640810406524347003799766998108536919625158391066661238878517803759126277662942057630646862428561040771803855862400842156413615199510064221617353667549385235094342631977448768398608651641452769661775207701919990924926114398315526226383157303466909360460109278509140099149716192605207948399646020762056475520350803708042782533687561577530695880616705610615112726902713087792249196708429236787492755160589104086718742722418520554313452076994992904797776317128454483943932491877559464722536090001335284759687278941325075336330135877701813947263678804474032066712893811107113459985210300984690218755153341774269892581469478464218206146960977535404330045712310718844879737134579181116109075988915085006628296975361696450477517252234265487386641035433717580466967568281826931935785994942179570412064804110669545708257368527983640632770844446793995940323618581183414049218110318454053509241470469366754037954752313546298598640606055386062197166404336318027121053957952942191240137521918950958064341839633391979514408006040941952952199867716288005467780573134550987822415208528248422220502399755422955226471540468506028065747195285527696117863810596568993773177172865042630691422368002327514476068343882010429855657917697570780627778095128154341946126215087600745790864070706963899353614148503053245167130488869864621812087117948163540136890085818492806122255986170602045219813262277993437283697233762350083772555720017069394996038741553832573848031132552535511745542476577488016665459991901123086013432430623155781350766650502042315044255039385736743896938985073674085772713708438565001938641126351124709138240246207907918667683386784720264268785511994088086085086071488604863346824026654716480033255931998328458686954081707093272125511738585050822992583395836394085182470775449068768579483369522869024696963554831941892908390569568649445165252105184871385503748914264518811268214584150995311343415897494209302521287488177394931680860051887135382954799883982437774519724302849839607772685634691994179192651092223324586237880797727335997263427095206093067337599965865054131942014145861040407160080672169476352885402431776673918027082602645616638374259196918600441495822947179924497110647848530968940910506168322044537196150358186782614302629907611918198378268198939973042793510148791631456332347323511002938602181586368671732155383326424589312921949446584733818620074845630659253129503802233691900078063003453748256894247621340945447428699289532192292118029142704614627563989322579871636044041761490362567516088655985048446566523815973502883054503345115150059287200148250621807254146014197782888739195340703823637582873017478031397060372428247862202468191681783705220832946799666858919561397396464599433353193114807786131095375777254884685108026434388241154517551359274452731062339270846008078078317404859394314224226417917288526541138327536236155657793657881063128732422909994343041747704920719502414433073366268089880754735175148253723372669857200156551443498990367514548774056559299093797357769972609703358814083522155673522937662537344705400862026648344857499742749961392754346577219203535472202268260473794506446227168686039612044675340750748576400458805286747212500228514403583944741832129442590753200918532600928614178511701256855912005329376010226784311743770859759692499566074712122437643917725424393284653805422497191761306188966686567393784990040970281694656286740056309077212346450273946798031141437462308282784880976790236089220065412752992944724355166461440111168754947675999131996704528495850514032961706949843099382486465597408938787916492703056812695563986628591105622006745875764387688207799716606107592968788183766713415129117038532955078273977891124643151188670409890910373289706020434760084107378148805580597085937537032937038973507190268682250856788419824832453181426892576377953091060777285844552456031640062921784630194859201848713143114246621255907875041414883246692690689390047777799681785950042915952256238738968241148824744397782876612394508993324387020297299780277280927482924218375587893855010109133809016694248061290209562405545743559263022574628544315843168464086153748933617847985304719679810786419830507935983530189821711425414820848789910952818271359012972881299281696209165173769455444840618426468381572289678818222776098557797538764864365602444323979409078926934042895220313747409106202092034287800870125357896516510794993946437594919495374522453503661540910590336293439931639813432386690218985529512845550435910523343114354510923622365865733040659085112631279348368117978370807520748374814886842101111982460098028045591648939473588388048062570853132755746661820649605666649132696089448932289395474783819100013342536635951207368686324730737313784790187555112936365097216498551725696556726142719079908890280534835169571842966780761707516510927238079054150215108062620561046524312571573309644311340596431035789670365492542482231829771930083443016383890554286280332325624930958490752985827653903987039671570392831585781979518189311183925128905609239574696989995885845756507870460584096382142656354015354619998473354375750514677639474834740985740133432907458748263047891543785136788339867288855924620178645363903227258325957995576392734786108729189062205474417683745689528455236178866296055801827553901243291890476763419846184439650755135015370628510354423400827360151145169463575228957430090988936128642523037765294803536537245230613448767301202401817686077849954961568725509242469744582642379961177446113346312271967442349544423271397218504525463698833404670792666654549207196594167331413224694983834988664674349382888061544491215495329315956746786902128762100075182473023078590783911070543788167319886224983773058513468827828213726498808639126810538852417613698661811839359554730441365046772877589578338367330836643467017564728993430117903112805390080616326628235529586591237937982508197860236720927150041788535816150612072782963186249676512085358695773915207585874737749112076980391746492196675118166547840296855635772781114756012440312631504591422469593304649356381705895027329240152836417580937136478809277590822767817189807287643792490944098687323688693307824810646839255994149954666192702344914504194943475597309356505756862303251081278392524061302369572124286809429934137433763159250353198560332393662247127977463491559322237415558883259495271647477135588639244159805689091154061785443109528967131983727590019693127223145221458097892182764735483349310516685189255777903212232275117388568478115695603071633223840382582879688978125801510342800707427326618875550845367718200496260213450448401882312342236231910698249265699466856087185495559642567450128947806959674336847417033755942539912369868688427334872368473106210654113805740264963267620977753248951691935499889488531599635640776275492989571201111706635856618170965150503937115240526278355875988244740156415596395137366529587171352894092619939790654021711890482641952984539894565685182489973197358841659597426855875476700783823289611472483031215248343748049802585702622556469094532753034105333413606146056997106795841646527385531690635976223064549306810920973544567170312990372396207444127746501384944806766145801883228892191499974278676934045194417885290618278318763250599517162753647525882298351201016391561938792249122728043176311304635737778668322764666021493987264816343195562356092471264085138357214919531099684363423812023142893589821206854018171435929206477650116716567004835770453009908981848232111557631608713006429477482706451087134134183911671276738248138681139510585539698097661736372672894960491680725294241106143137650645847901741235430210504789871152774728826351381812552318483060531078410613528155860181787290616852136935134187409489049384027081464697294964407653646320515588042741193325748514643804709813884548096197357516556945764647273244011360975830597348086156396092796452673614868546840144494288707537968518334639099377720849559991595025916804078168966872144485038531716437110701029941543475674937921196181438840398480936775822157271093903137145882567986437116080865713077007674164665886412823382337747386902523959892568396572551879449074283341575897684613877106767430532208627511730693058168381498609634945844806011995999455995336389813369378646846444710739256235685130528556170535207649559998711839839515298104050660044087150231313908045631574026333583218547938745471781771119453512624140232851184868432545581182966641093859190858988542270397609657929802252100755723917516662992813449933562765477978651300907942663690942276514991960269858603988427788198279786289917102500673397629016377156287786405420274282986376608329961959758449648396464772780431131526184010845345039188837519963570583935127295071687399531660441462574263295032470786972462703402592497843506473870827497655765861185728409148828115392793037700746803334262735355191805161137951560288453919429052660226739052284517699896291052898025555945159243720446541036712578385955141327395757240019949460996737485394800330295058591522552372695907400720898332058042007564787224643018536819693253636710110589895747807470832783715770299967333471315342610480575496647409317680112947321496005327039681000275552300253880146438815852817447757139200694007551540958054374054631740551847395318735386377303929498202902854895890058939637412735549976882199520436661203025267464851428287428601558825592465075239828799379089327166991501896603713079978726505217187786016832370112705850946534257118395001689984095066008224082087156741604365524672752652599582404202319587489106804593766985325176865625406473452369823192921091396396103325241778609665279307983786648643896754229079795647464927804874378516432789954407757815662559626085240933520743288218018269657079571018386416958175079450546020753764944741237385425605468937387214956145176694255026463505326544024104812602328934304047639889293116348388665820099741976214768552706730579276194572186829257146676037759546809735001850598678576311328907472838323491910842737480276779037738511356150004372113257355904103872358692089363250047064561257213057076861140095926939019780508707728707941930780521344844561335610320976941835865355581291327287103272326701741580737883923012158482853643794260416413933345350555970581457261516127939700604770735952883983888726577166151310116205465673081008200566995155521483421192812551505077242394771965029430283641241435302009345191530841345882406245989931411569662199222932314033618241848216606863306740573667145607329411381552115545881600132950541823087946984895911787993025962329222626960760588425028013964109368102236195613051859373033351239171969130480187361323810465602166246491089040832236157805700856597615844425061044092944330696807652300312341238535504914421627021259938310644799890035242752639324484121395416992122818727572491866029929725410792115954738428841090536829373549881552474279922088635476424553687719190461281815858404935146307097549663500424891493893777535883812801900825128260505154752139567282660050406559356183409177333808349403817314131867685308286792022809034371728086028681446742453997139102577343246607162496989849835407259183741019675656254274196783370264818777600837407335598834655369275936225684452324386286213249933279278789725732878875732904200370036703800821598908062379205509321749908190191543562734140366054447687326809962001400576339163082455920090310844251226075927193497323680184482890726682843015287915337322883297670214732344473190355415280491697090247093527162995234920051250513528994749291356584021064957617201906829989606579117586280980773684504195869384827767792920464032176523892012554117565894167742663630134818128971466263485551279273713533846807823665584363364245188817308914018742356111316974401277205304626022866009072468637218007845244428039652038229369631848182473144585392655544450557361402912361328061952050586873926998294561290875295781845866532284171420614303921452149527567654261500124083037782416523524255045654598788426623605935616037298075251263962825143922674417451237125479638628527948665840329921760257276091786957472451461766970628513870211017387944864626316213033059700475099225225314703484324939225526670844665779929799632368747497212023168090198651246919450172106179651323646385019411752778798265913801384664369021071595219942621448584534541160689230901361660415167196408850262569516467666540928507161665987848774934413050512172360019232581939340148416337267388688533451700942225001867541652893024996953862193225394670353423458375331175254007882383094502135218594319748837670953778702049246483728034310999969224786340443877556947478617128023809884823032835542312894639364429413933183472139150624585782240636909800921586101633142132091423230634972604899850011007477666526398251035549293788882502946515124466694142081897022875520728965187975052707983624324331052702365587350768189389411109769116053028390947861991505979711627479170113221992581488235390232785029101330664475017498385671264316765466648289579030876314307695083056667637223693561887876676464997598859020900670138438044139822650257695984390380366431838839494075554040288410740071588847919484675811751063917021786885386474502339388580470448215594112656330573831247930334184006443466373782743438747707418832578970651957640484206715539671746822856048691979727133376460223182260486476614330860847637131123389222949272688921687598475713202064261212966182490481214440697372066960225043509318716719453753370754563461531279061855161794945808635967864068687697178334434464071512493878902510666473622229069163359944901252321779013732210246629450362778737548706447331756524899179697412741445006305532051388863323374007331752949110797882550324849848514670217423576063008176916216263107923404498928449513578059818665310708389805783269362068151037951108576978081985502704247698976203612499741483539195774898961597814469694265142963517225708804741101440599175865384144418072426416230226779096424230107705801102733600580040685278634491962173225973077207275307988420416299312468029111727575088481474861301879708982124336829791702488889331037215075843074493833281348217732777736224716506188048332525824649424216218607695422694018379994683589472401659343810337394599429976052099395973173513155269130134898362389531979038979603305189106066419675763473952500430503861970562135796793760023715238269393520053754227583539819661045253204230720163580238512171260442259541161463684954323197683882860853811023827980222383137088261836957853684018543537998514536327424749026958169649249814856100184727780297170770887810461738655309950265671947380278447086571359661235176976842993858181541798909438489496400779584316492723374120352009569576224130228467926044662283358904874351147264626512483815833558501278147315197997531325166503836298440372435330236540690288347069046102018638507204057003585105008806396656828431958963836103095036429835925555305866411331490614868031511471180420183236340504249409100392998677768444046840090364170130735929297125092476954938091133654257952922528701832460909141477164174972585203997160806991274041305232708648663868720424126067669912938301186537815804100620939271448472570674767644676682939431587235363880405429116438919487031114919656955521321804318026622460455528405262320894073528968340497088608153766758974939528963245061071044730803686020152063203787222436293149929832348895441080164583444822437982259850038240525920488050586428281469223963979160084484149298404559093351829329179232885650970723535101365525039957917584946817201315383252497787284888644170469916162683297941337869751028142858491017010128665634244663692427937573093943005045973186305327410493585159697751166419807791907839163903395076342226653397858302181415875752429227629711532363896098478583903369720069821697195073180006353500254268002359305637301147449962966043095968790729826451302078748962943641101061315737011303700082154606001139849466029777883913979073978002996899450064577493961159937269083773265927388060045235659275700000675984397243112133352482718870305052595768470684485366470412154060768437460782705241076534045056914286371131046655687709796005051751169674616766247542965594631509803700568786268705764113661876303472303756641928666521344125636947168358274159793669983516636369832085706949561471009559959977491989793716588157775931294275813315483776524042405758251328675463791283872270877293565799736828716471201664438624673554638383647425517109118155988481231192905977292951385951593248029866153981028986874985414270404322542575885869629706935674474035569519268610264435914220302638963216157130318551965688221753756268657590023004220199463523753361064429921145689792515425753356358391585689984623500252758596387451901764194247889411740150539721524294960801726153913507186446643762711860129429260007672985560121623618827205386685694588909411708838062915064133865516335216514842287326934051961964490560150714405113540207789726765760960217080360306658106966321865757867982433241648490600404484369655005115269895385641284351949029874301369836236006011529261674330933972887164204280587922324251772566813715282078502176102616459990033669926382864503388589949428275683397190994359020873218188275045852543037358544868063438934721616951760409422497458940965313054286455977069129682062016915856701127090093853606326128080645021480705914383940611683890489743258794293356146209719437336515255331246250726410095450430398064814998013819819525732229083238655339122719819350612311357349919231600041855658327021759091021791650117129716517048348123528588300446142575798697225695634759226564078615609880183967364643703602934455669887124835594369866432835423330962661615936638091219125046317545390251063714608635970099812469356240830600432407014521158775046364167807344358159682306370612901193776983098608078751050005514708374726717113429243979317399260774637226226712832185985094778383147302727338360402367610510331710234547058444952803595958797218512956219294997393118247225670706821554614299907062192312739713752947161922094013611195946927646983197594239038537318085823852183439849969951721458139182528257753470803493102277592187447652401916452693077010218936935113523894774781753399814932145925996096376684678950946507323486162060394808165598655302648004426071382531251321226815496299245622516491264245058676805841438161338605667641161769195891511298160245618887522191774617609822524281180688398153890822132214285263238732763086796566208387370835728361536255706011682048918096063073886973521966634184780792490635174293823834657995539406021831135270506753696204735020398162280358002751806707415563825651581142769681371662174386784110199746177293944137958355704078746951947452707347028419295453892353647884378762322380996082214417471200615274698305360141009837795067007303062988070997478475183580906749557544974303781495916715954025413588777783443358894328329503481283440898500984025835518345756662035935548911975505994052768994845665041510752904536678450299029005669521181913406516394038374276832712879010947857783123435224653838933791130745789253453833404911317927679134045813869446391745585124445867241161243968094159252851753625838205587073657499320458583848738254844607757925507220284807133486129708936748405817219656596594654088091195429511864813050831565253133275174555578608388864268201465004275285184712933820332701774920550693019190877312996409793918752064521279749055677343991967052305442655409030296492189196790245684370957474598210752047853198094622574209853782379688172578592741191880635719864975852049442556557723266082049435197981465290384035771629951958345037930508961759791121809209969947474564717590443535863924289776888102164801525839441363893934372336671491423393171597752330610296877725579089655628411448443433456796354713295248556342427184150737438333298354235237935785442695771432655144416403621154905673472374726793029580412089704340449549793137885931996796799369726963206040789855352685650219680705837927690054499620136817875420815405355953782591760670686618892495387423725232242212019957650000700827425324234417259717379090976117574130364889572587278164626709720413615615296921975383409078072935751990335793939310942408753707349658562563741312539123237614468743543156220242941295132598475780636727848635161826914101747269912975318274271773419248333716900704219841559933123833335100067729704485570119282144045156939943956078002586342626126639492897352443943308363287299139839185122774005135732550775027761557014381210403151865899147225647231577506407971502721566760337451643226370313082627190537261073985335938346465483733938506255032420722561797261498582003287383907422564040006520707991426725760648239611143016847855468947624204439459450530073268372714716523588824404374033919006326819203093608529657971566077825109591490212947133269917850124563055998614235453841792162921498017882589108244564498444104612947444140785337127391970399103186441150011699114624942687571228646191891754560167126951078431677578679549519483625423764216301715289163034033270734983676382541907175006977060521713481205795369576905686557225563689200647319771839586288226519478413180051886226074418552372548106568292517135828128476390202031496218073320789616093253581731062722357614133515351565378322487829526956570311438918827481860310672201193670605536899294891659512950350349075665943002729014371096175669779916122571283374779391468607560829848179654396235158830109088550148557440726252839512694090532768038329302477133229664412388934339028471659026680013399446965677025713926723036428603115438431809754244773746923309750768550074496507917691073741435962920439003985070228066866580508926011912241546154858653507317160505481556463074524664547404137922313949884019392910050453884338507672932181687765985604702154947649376852329296688751545273532122380163209583152355897641129896345593357363054257276571309199743415790464185919201199617730941084340550052318008791237020931744199349631500919515703013661500873086526522047886703974457415850156136340878803388254321742249927149914999883383213883875048041931890671954310850840016610291382889010532339112742423093498167790617785350805645755109311564502082848255803887305758490920450722381200235275820031732822573872650677044283275656377624530011073297632736219947484087270734635829191343216247371677269526969882936265645141649137278648468739609787461267127366780252716657656409640953547713997555410487813956945005045562578774629281584169816919298354010280325544260974921750498225149597575189520081247783264008440407088871479474729288680020172931976385472375781201983831126069243566726061367930858442630758124949176976355538195333003691549577407382830388356024040333840611440139292986588511237808841593219143521276695647029367466798062848501753337662389993622745082292407176836823781179749515512370828445743101142430116230663787260185812175550662312135138897935862374963634713571540787596287153690762661457076536752471694986661580407186717614055330464250438322684615072329319735805223645543603351695467972870119837828076796267394260571124849637144305614310944856015086943754280102580925021029322797866508287241266322900682784666094821611363022396514782315499582459281646899764552452526295679896689557573542612449235651658408390162995410086005044249552111719968188337487739703066089716142857197865005369665940689501930172190921535607166963031187857872302263732851448649973462133265773723233505019117136985526985205688136689258656228986832902198991701702486301048736687341498733715583413714810585107561789485536387024511661741880522766273402916414727950445777036379601614874272206565563630088893526343446581055395196737992006026664653750242598712790950583691982647867277433117185171589403774185875615054373239113445978551920305767612155916864573096068988318595421480847392561062632819255767046656888290193741161388026065848015857358341139363286162325674973562776352991389339784853100355799477630491578039609718823188626467546496941592993809419878125105167696790246146445704668673983770837031922212067188994823281535044183241264671336267144955202045478596353067155241259220014090166195347670344296488570617377384502003224681337792231576663001426192479862812235121090589442206468552483088793065932263944381829585904513427664738039394388093478222049866636395846797890515958229277362334394160851934593807895148930476849654194023415350137360395769356847169827806827443214396562157484161510472339617559713192196711578508855044856590983985902160364075174766898946889049838637136057276920625135578944579796201021840569156552543371754431814090087521617750517978248164726211557614604814866026805892927758972632798981918838093941731826433274263303329683301477518427726970549143637213749665911827374721074651846637811415558505128547762002326033919649268592914285611868567046024114032369714789136390611282682489874456519386283392618326766583145136550560877469266235466329207420927660083060219959221229117304303082786769396202950023289615121303219594108957404745753699260037014303304721657691964571037510493725691278173525400327457894999056876592242008625452434271739674602016331280886545368701749489071945424914615423434221824616540193019730322729699635324632775435480407418601103264077096183755642411802848679187259816570094076725408148630923086554764146470642099868393527143524031973202192849142725056746388123754109571272692879337696159453330156913827822939632829542132023680814434860484792546047051221211228957136488505334158852645036824036379170957482207573354879200991415307526771274659394220587775644597244310002211483106565783676112430348145300968439490908972387014036873890297394154629785958338189289440619058445025642807319551267908569881222876846513090889333822598505508699302801154053107795630358390909613935402863925995410770675484899489899058768310734205672174722949632459172555756396982348195257898661556732745950490518653037190722709410304044945615183421865233047573384954003234326908954960564520603824027130138028603332712732862626292348273724832593411031701162348279498835577138494633704103397649378915900436025883254246491514733327830029035926120691847496760177688678442751745336740239022609453490491767860212074050428115810334019493875202737206416161419327120430858794631243620570446687081381111828075007435493838955330537711393217040821168716182165334179473959067856852290653119924100702754123420045570205178212986155658327472924148400950772826347078550578196687392313566006995008418121295185574509317965757047153474252631950535567509086063603259476963262557219237810753485278602162522082520221916566870988093320411786341590744126890080947296464221886589163345387387586290310187612262334057492542895157389460478724409008300959691164294153840823236800314087762320291561270561163524266777456423326301712577517533878783404221985963909642985385155997796578489848732779772054727742586059576503450789200439813210576267860241656498951892612490178297781117073156123358657619914883048096584223076463967345991085465030857315244606354898453017993869039130849536553246721818666149079992690881703126553808492677019625795565550244316158819309247922471035217222867080418028021347752035595215716140962098543034134862523661291673789773263602030506106314244602886397350248470251835691697110959483925387716272075397634247571181131961323403273228126954778120662166598694240716891985064750202357488660952172450716444712164272570012024180020473052375021542216410924907692317142640985303695113876654831581497415445367401713860112943951163839367716054910440162144132146507243210802151229644720047639717907314769709234714308270739080211530491708538264647975969340590574913607539813550708773286266981986864108659266552130681584048202470092947587599046202998389387702846272412929785679052997423844085016644504279951981163154234934986841655502495432612446035179772206056206635658825479704912536898661692281915954069560837473198058009267133330240156996120709117633090376854955110325275488952765615187947805976747685219687238158069035792119591104831906953376435489658371970028049864434507909831065015658069090067139099087871964965706132574315935097648290234473719079286382380791956112099761460629759443418213053453807657853360484804757720653954480251429182000431798193558100128764609963627542431674312750180303260836409671792910826820040165539333011407520926737389709940895302151184311736476541501281364844912149670620075571680063014485103995918499336125336845033771725663616919525956197561351966773574730213424636059565534774757129580279805068698408548681046413726628572480841032782915514342850599566386990709935867950803441145564840751136993369027456065071940969274534901755460256030089782383494341719222983393343056331002843985945944577284487780661320254647710380808087462560591909300809585955355358607029254577002929827330123765715331273843216163585836945150759617431471469418414623749164571356467287655122050765248554047371357340618844566903447874956191242142191791031200034696051175422370843605756898065617027566360434398342703685302823722060317252863776038422256227264550725899124023538089646771956025648789306850993355312644043169312272552695387028803618881587989643873948071777561560133085660214784701886308309241689294477949898547294459778810020025613498590994638087318451402620165619653231365764687671573801616841718047794160620671742658170238355507999178755889618362452397286370009360171617127334205184479240957433304897223164705564969553260958101689351680926345509310277075531696287586267593107017211775551382996411796457976029648681154615194768840012656190036320149983485180109450721295893870613671934785792498692055291780829309000142300061246683446231184488605170602707489814837616769559765958814692954444068252076184177329781746633954617682932198015094426670549829048227190826463667743558237206517514531200280244368064364420996466078300219769347897672955055078319507499472334774284141721763352459878473635202077422575712326995874025755172141621262055424195894176037192791323234040054873816812310700590558929843169679938812383368158016822814588926102091430881774502701774169947058511083611908776792216967509570647105012724468103092991767476582391490183284536831197309526657465026495881199476335714374995522311439640668215270552870243374546388991974104105078462342158957176538122280653125373718900708519791965359591873825551861829014484862721519067761329537234484083127013487665609055967355730452290717650187196843081709466056308052102363369471028893836930893088455542465326368135076291301874716564445878268497244389732060736331650004726335232997635603327940162779431358934451061629848701568504028314315603715674476455373568853395094956324313256314521863350640021578163564813596988927166667045732000828058123178850553820149676125088149640443064561082138015512729448953950992325892257501068010101821308044937944051119763440267025784818633004133435990676053380156304678036049025890215521289694186596234324735890372182586220391784543008755809376556436367358852183748867547471998136523583769915094436165343795156817640074996459172331766263487349202312894558725829371716018885436276905032797405578488158720631026136443642333323688112132462844588798963562014396125228666728141491808704135082637766907334365448514315161755172700053008507367375105989641314420540141834453440905801611790887579965577918203453839617038454593342588622414639579043701514069245301267152975242725218740308366279720494612522645828731115857126407855011345900410034299392457680328138681127231448708397932296055551658006633776063600562095911580012970793809058230058434072305991781679658714459952294962905955142115114354416943102079518770336625928676335482665048537662005896302309114671569677718248217867072625445867795838433234495260733440208560611607279285989602191921941578057207305419493702798868143130716604939297533997834691003773623635640962283053106159068335283192235937295102632657644233508161206725879083765515451023348885299980482208545263167858925929200850044708075580042408203046184832428822968725030104469392154628617645824056655208822723841189598563034366908767036541615232907923365359310728833513867118644891388378127100052201320260367042701155457446264947126529141822618770987923214185058414493274347476422517539482297774890016989104274650732587461792617295678198469251021874155435860646697083168188758233411488278955741670532859826767358737680956436254571507340572038120024463091196092192616873543606707750887751017760798614725754064350813278143209758606331599975453113335413376165391088319774656703757048580117304823523533334024961036560143372312907419387979677032102423075854947435225653202961049053473876619849651424017856727422607021029830338554147865221186905988653451512138578759142102890470753511994923869902457699279141244413582973774613398574780807432039755998453750120056830841375341693428641409132391503497314599776490640867592143502800359482604949683414068667359800774975107246580332899902391819160352546271335877051044754865894387076648357555346144281275586309319957382543059898171087683917369620405018639699926909625506987373035814357436514237114632606641671896934719600147399026155631826464438760764994658897210184968613644909099093692909960906329740289381129114821783955255403067961260546054269925935761124432743544179860172637778051417719866907891911693708987546645796895879057743128631484638125526026319016499978709452675666776757725400412203859389808602335830874809695602909290086051307211273179604016091565035648478273371224918260174279471070134305385376404920590092692931297693380027257617856801386205876078618914929559906180029204513879614387714038745557145339476331025921761107982333170095200170509674936381868035523859547217502131155441493973536274068645570257072096592759507995025866567518411983970311530836444041488557175657553731978631752478458088214527970505922678093426352287430819991432282033367987857470155881998924308858649803443073490146872608144166282464463800725974833976231965766980864645067889476465298359999230948067663965645716520822020076982079265564638610756744713494483452338410253284717041069746568596099120827747692518718505377001281849491447848712302592880877775902407546606084058006989191255750067865079906602326143310743515296785329819738879540817009127030835172401659812485427362655712045017932619648053859441169510258793860089009679815963567007739777860169350638134234014423144104868192942463727709200835326591339730718570772193825954944959094674311006240941634569728619555679661576840850539401062450071891092909831789810619841409101002871022717111032568186715390857344773078377651672318424792112168419355594097945343853301552140209814650385033320117753169068129383540338285279766487891436341774703027291378042581144100888788504610621571596900947180193977348485199900291340613820495686288399516655399091282525866724381205643813422724144733706803432987613428035356381806510034800923448990004433637474116392238979906752011087328608829458469436860418731914692525768714060839834525775271135558724525122524421589775361122622182796981344863843625045428431059323162131755190414788696206535525128285706210426741658445729966655267230614109339185447628833756107321332857278139267697677295116134384206633645183810053403466431066678822530439101068706593586335140702091915476945951085617015985041043219335088429924008175894305861107952445346289036658653389780602557312274598328349242165765082586983604719950616429160469745452666874547386651177664273693548818062336069449961934801598009425608802146913680940007892408460105814716124124200484841406734426009848483152861271452822446989896721286297955127635948841346682269984984168989249321426851241583583124675213267687247801213213156137419186926155136957425887511940773389091021217404280445291643298704343064963288913588566355007989248366619835826226754904561630371898854758718673144501850808587496158821389355689766273050341228752979911646216996115590877167116611015548792380957433051039167747243339912699722412730522963815673590918541601368355739469455133528384390457707590896106256725453156114734031339111560940669966784324085838859280495126915081269510680801827274074617714415782331100281376319339847950448700665841650378642437619403835952261469814383789819568519688646971418368711177768328668730173506950214686816316371857879820671148629179828563018785333007327443750033138078319361546736699205984811107253744571664765989366854449774256765337157542471052497309584251133295022215221871509347997047351270244250639791446183023070787883642916085722006200010437114174529589635951188135001551487499627960882566416130471782456886793862335835615093914492328844593283302483424478641518333894087459403409394788744797518595875784273146064150429393351248967187669983856273683524142987464135185109141257947801788872274005277064613063376082398454209327983211116625768984747860151587883872222826043510509298259029139746637650136338969860443983935254861484815903158948348234293640108210720607372666101739384748712777029489792871843498263651226902819184041794659711324714954613956692001942411253365522352414666044534665248527839736665237085427841357856413477986912187451043700091747370651836143606592543920598545522075499222087547775008735261507123782874432887285336777955459070927829719720074913535572191625498437061826815111273708472980192141713220060469709670302803859605154302709895059607520619705632585560933953658038284437527320535722288749272347000544653899458143480582984656825610151399441373000595431315991955836538046061843353941588833713420489365599656082673150279335632536284836879510386820747831591224797773971026426889340729896097224706124908065965229973406859730998523732288359572072253622229501235063117729888824456851602705998903786653240834718941988674753383709819747594780293646932339714075806265354754341280823652428828382672787841665714659593753924319177354452276314930357820155329304477332768409583320393586093346315462323262017081805639149402851165752992426593604922667233339205999902735390007330438470552983013293584183466674831073003683424605982344967493038886217941516797597942130565051224202885861165610711368456231332834354796377059736250837348195980437246756280649175147407501930317986646613986709255580795841990862352745279958320835011369373060704641679005240170676484251905005977271322750747334867703336101640116945322851400397568618141847381532244646424892084001264346958144278377909607042931215598022270088492162033111820685002627787856158469863412951972718410898730955819705842758084429898894774124426342843961406167127208288934843549667253437759458895584663025422105492362920284446629256124628356428979941302806595379610827792879188624410122519200576680131328243945342234114496431120423068231939505081270284637392724237162340583559695831319823835063492337469654608673604857539839757981594431780093823365280024179898186528499532408305463541808372092903750726448685968925250631916249687925120628905874873034664088281401479608817388841203615279447387186381331559657913499157795041531623564573455470423077515633214789824235474060133638058957915350218865842334687418015622531607045376305792670601697099333969148713746836356832306746090607096262129359131566850763132203117351189997842119567880898966781674497517977428811496706039879669945394398377925555026347650236694758027706484399972763360267813058159905267040952082858588776744410817168620722319625450091186389287435885970230479903944386619671333571254378517509080799866598873831168460690372696451571179297223335097669994499810383142612951315230634796923292452769415948294434388656869745407313029060374651238164245071962222847569332420165198405584783064785517678670096457170123393015295775138052225629178655518928545427543635422566653457356211432440672641672969128584714556626687727640003818506734970939530193712017885871038557128104226470230510944486389031117710733621618004899429210982192101235940055277594426736102335809075543863427888184690590470403269587212214352051626524657687149083619579602916492676093733710022758657951808710488579070465523324994767012640372836379750315634370756029163503968337391759592150952352460575011955688599267676417835471697476541827007269834950683356503040332023093200997491346380335055728489556031251006493476299563726096538225457252460818379675091971734183264550743394958876698644165708677730775272960246338883688621199889293356656977744179082220392575381641817464228393102033096511011885830058737637254133286299735103044382392985569585700595936423576653839084005620128880995406429370586147790419211610980746730830084045057892712852726256158233323648281649799230067341500283755302322165164529941988637353537485262811124013177270540042162846526112349930075359369988280863895629371433431841895514312708423866903147509674709332414321074067655316293056403315412066587609938888040836400458469338190501262830779064176758419307752802779331420320310312163215974244037518113454391835944757651064826859723648783720514010694742884566445439518690062436451854364768033738248875679387264358829218856004924929190569957744392304585128580804694467741302473986458076159673829146730053083551358969984285980280685168601024621506733340410804828496179354112724991352383329643074384990470216478359779326909071636982555043828816422862946312248605263399539302644308199978355540188201586868575757884398850211805040225225456645500387118129539694591009807938363066306102834987949262061288746084748290582139834459835883553409168351336422227197007789655599486806915883479807296730892275899405006507995653626238979430295730038429856444944972431265391767061369989654710084745206887672300813762723736654645820115884777656828466030412901001848728106908564561078796756931743820752152585155237508777919099250252972573368917613066008713469634072284648582568251510669875753150710435038423108667689223651618721791123718824094516123571196812616644844288242830694572695589599346403882167044102903502620535283722746762986462858914468641917150636304665626062306930232972170371922883454788152853865027745234147389077891184415287077306205108240135741774950152542156759796559396132238956512919938440253715895175979156633476190038454342473411668109631116746349951736591046000773959064645356762431886722985300282146807626151678262726683659810732364024433042265166140360089182082505188856662803042883368339564248434640497849643660789876439692354218707463910643413508414848320224977866428796191126924862933667748327873322919735562007849014762948323142840348087141277638004789214980999932827317186377770829513246604562747358285780928795968850002448532665783156616268331621338768929369296574445594784854435523637514085559442519641587491186996632401091524739118845941285311034348966338358856822420383920126239793870918944269532110170155193383109911429997150266145236545631356550878635551918766554328782835105479208733250353051529739172780579059394666863776079834297737402724728725818281115309383083580092035979871846445954264383124210084374297314297848114143443263596224622999931993578728772149103067665280110852902537754979185330617052664583736738820028319615822457991632347273667839954791628221391489171231790969570198688743736374852836832683237045225353513273597122044351107603611762793600799811518167130658078097396448447952094621864745888175316042022333723700553634690356436385423253069571806102311541100209727934442970353228377418992314176990068578370630068567380295932725355243095470271227081484308983687647302540504888888128704589811729481535127919257837103699309847305470339554732504136371615198519404513188154586098122932525399679102678436516267383814719118622868093170424531579855550514496725528032903428377378999760383520415396743847490198298745675870560207938616604366240092224910811181298083155228640797467475085382270278927244810957543359963186816494296341567310901159040944613543933326253581591998258141328552639741886674098708813311606093844876345756244818103864515710090678971247684387960732949076367883529411047976166976897146014635420567615636288008216249433117524346203997226224564365672506970354154829601269788794868109577292079431581015686101949126765098135044489383961652513517253949493193596859791270277749851100579843797235830872536608524225611049203621449107335790170547006490387376764891832413552915222372164055548977528626246798845083068197801678580852395374096377288950339538967034352611504052265672933028535255388256067000913681500549433597199074258181170921236794712399770179080396036821343810395686364076460469528866112873162086052740428390050099840479686122802996313588974295418565295426234658031260708770744857563306323331497707524717175167969080129435851097236987658383509651657921711383100376489202473705531877879335966178581115219349453470556112551466342339241584197945844135909373350056404681673412407889270360166534705643645571301530181951615003088491519754890742076303532723989300467223361513667930459328117074465963012358854495164330657916375549010033042391658577413830575194602102100030570697892013412779487764971211252326675317265176569411371203213377876341117243339002106892984604660208411384367410685628796036404750440684281532721570082256653610077966299590953660658062862281473993865301439441307183796406903465991187076952079912000026069666182555994109332587999432446960269065009589151216255843631549803446155963011236534222115565736530189052901184866670977379294104354955630516158290474923103333922327407645085051902441655718980625721339422707650403931420230315856563361297328550576404430977667686279761451716484796874825344700569329222619871941993355246848657561743724076323400499611170602237430397029683164808083835450302874457264406005173133103037273159702147282307052831526765531203078537616396867943680574482357993135518341303299606867093087957254530489696612205117864734143929386619923968641492968238582857136043550225345062444019907923100314699949323831303139963336402865948429919637627436819536860683965753396355145407365246206108533579439880725701712273592606321103274780664143290089800922181068476120867886158554311971999829855012904828257102877392019261061075808666289649610408432997251144246832598096163410251033566608005984241407393321487366343429037557632973416601095612624684581378467846816982093806277172186091020949205090305412593387922884808226769913504129845623867322595534339163584341950527786010087861381911339335731233756821192908092331727497867126685892338159457638835581181623573234790776106787158191722302035336223941275672918713160013558871775514804318753251925177840962967136063331459073952428264036681256219567197785874063027360554009604868263450453555754892545662667788975593766355241337026548657318948073996452027412380756218595523126142306910439614077584109661340385422203558393619849284839853127234958458353681966069687740346046105472435518844389038617313775072601391227759670830223511909112730693947665288017816771381881758380199588357480644280156825068495129457747881462049192238116217345308777645022385884332772894440098289561425991616510360681521700344071878682709362805753216667770351666621380758684493710613220076339614564569370405010940406894320515483389190703422257429887971269537874457148443739842843292050579224848976045662532119134157358589841340608962112719044966494414637681497449429574122697919654291205731240216675365009804398386915853903453907786295025396105787096797876701370230432202405702397401989795651637348035626954201956176155349961530164320659327254515381685120474206724818885352632689793853369689222685095260547095854867742983476972947111495530786670279437721020650849171326925840423122323505190201960946315760049072127596094164136209514376132911260352318787803358366529305535337455334555270452922108833057755666679830509531674092586505355726326572645819819920855694375994828353030985626617569696544719561069940086908539382021063594948535991801489315828385186522190104708464767559974525621237952316321297221196747861181153730418655271495446184934081120646432292379020021056599705270478886476211079778426022234880622721361774118312780976108919241895320291552305753222155791009680936507971453500815611681390980148156259129184013171262239360886982897254038715150937386051553203517685284072897130299562390626525105916447612956116445243561684650764294686424873661534042383702771633290407636029938968189775892865586355955512628328922122854263844547520664216843494602599264849106148490246900923358686580572732210675887017291755845544044572475086380161649201577014609386990000420433592639584276254415115632488558920175799172069997640608967984142076320271903875849063561047117003667561328696568328171477050590730786059384560981142843766009738747834176725014062024371911363151590979450910672460216849897142863458903283683999301754371577413870391098879850381746238963142467144036829202987239222229496858480829455834378769419026228843089734379843877796296253524473337316692336436698274099619239153664255906251814992221864720352887088440356487501056273276517994702642861816886668769647363265278501454542927735838027827533349184729244835117063153065740198178699824379325240428117988069961152273415443351737173432061184765959820198348549108566724588169315926588085360155425963457798289716856968941818632925231331262002152751568239621378027169250402494588495003259769336498482112194335692379059263252947391416422463955067819533174578573320478891584880111334207100455693922519218244982058457625583491531986010614839692854453801033986785705838949679244085147578886733580922575044650011079376256400419271864129316251338969017570768010850661374275565279348591745194703794132863835746114210286219884205930685089541686316850288853455278793591076380110015136764375524286391148716782711254788223118741657687001962277694928405609389729390669203160110371899946161316549929190168131645568072373737722597865863041502396671985141592832453905015519355553676494896523266910703060246923671285804050918813925448115720540031659148852870318534754676130983892422707590664290878513718591067529483470844719120029635038968625889888840990217152055303216537865244210548246843177184080795978133620549487746108637654081665653892973978427002315389196958427027449260985429970035656491982114405937218624532826829068880228956758082084189939347666141404720079142265246840514228709106173415038616151839612697708844626233372972779915666482658757762326693891775030839385778625482732403864490717523034877114603176082227241858333755987041046717552824200235142986862591442942273821409219826787577160692924970713469064205648516646221442680752204313145545327655846232283282471333456714578939274625057009363479387947993112301442549290477665167044685112906303687184600075737067591443889335791572986322270611002740136888798548238680881865509814195314931683175265148537063621866195103265890166194391717655290640614570423499755852053439283785316387268995015876425265027588770794643279429898266039464782852978233886776359392115698209079925521953051231043665852930195490631849540562729975883550518930083060771602321404146286437472014395961646003668567881200792808123151570127114692689620087791700712502433587149193013274625107857869767462589355635173235117404909299893341780393406797945157819994041047598266463048414953897638144405059283100966375081097661701080263428349444081281944907694118842572164049646309321072219612452386091094024443192038391217222099883604299291728446129430146270107735738424320380977005329193391514198253344601317743336343150734328748310607115841175409566113213215058893427559447893932110041687891498322961624957489188547242100777504763259937862281979358522727303704192309528374926245850388109965221494285005950505777934161176406269611517173473238957343521110022632897248140611542575163246455998185767022647122924352128501039472693260362602667723396891566761252656280392692951171039787661094807706296944856596314440567856833482299249401354342408792708681014903921463117957181182895879969187772077983425698944491090791150009862106021395900050204973317864644161024577718593228501204728985134376031832691173003053519864364972769633325684324450441694825510505228113588683857526897514523619804505879481026982749082848312687765394210609751131465895284668400792032129296825862385976441923427885607682428792457537948127614532440347678961248890650449251278246264245195021034920726052575399632341912002520351131330671009604639514061258854048293721618906399998039496849978819895620930246267308474717068606438006863264158849634939617893554426337194096421951954971072422932894004430981865041470925716205576557937012039401675292100759550169672114582214458044116278385462212871358734047270072910198187146059986180267182052428836160868287991885227787707141433133743735055425778969607633175300131120521590060193936593914661457145572364047750676526093136775643987710661287424631747977979070022846087470689324425630883302756277569219606053491286026642073668832546285743182383478984711236393351117763399514474698926413815768907276045971342219879224542173122080740356302107994742591142424665120293809674851522687165983543399154063401890803001383982378477187085804883196382411626398049765466150666509103999549923897028555368953586770868148686854398047259649124622850136228373051175258676840955851897574642414382030828474252983290695644101648763915056183842811715068047518571823915290620929634406164138562180652166009190402635467038849351126380400258728874924618459898037824419264558415235497336048761689126235245204922155490364130482155122855653369039396036764506452206818930499522088714920469924059180161854943555010091289797111343093868005027561869807419520207288186883249601684594738651172749937547508881035320423216068073617103887871305212083266683782013937530330057067162555280881108896468429191460231619676985869272129420050960464438716482939248168963164484053354806706206681327409316520939763814581293451947761800960435511465047508284393614918227902128552592727144934580341389125972809382914336884172109525436841535621089910064388267327640959746582727269258104930031438214267124153473646470580509523519498360661198547839690359859968277021889074447007475951076399517304685970618376974604492560470470669013424651021642335269817091484437482537305569763983977547566720508936446660929817449282510266244606875692432249826099783192425309657097414356593743889982426186491111410719277615280968971890456783966395128730504705860616929907062348894345420312536671554135767735858161142248240613943658546900874443962472943234741756002428544532673432029154449715441148547911667655173227482579837401638209234563408616369388507668627014012615528322692516227292811014781307976609617438654237035003511832670571763946905559505122512565310694090326249074875506425752449386225629821928012763662574832306382665534217634575251180012693730583772988150664176243434860960774688182921148658149036756638623235686865520780881097290136422528153297596193257047624827467160287302547066684411426288594948790907464678045074489442771814652975191120882222029316957051378082742320556373879274484931980742142277809443474812652256287109984478527047918641815207012195662030978253946356929667359020815130519041307691492164638291641514134102024770864194555370945985455348053693477626807166298720646053137886299715736235324178815594327209876274689841891561407675599864158538640529107779428552037414069091889049303610118339521735730611205446508315691145138486648323701983497702231569421098261318659457936744520279645521589134516951248693932025962938431778346314111020028835563235327233824543604972660836060946827589020858630310019847707657361860025489241540667826211388310447996025454519918118780342865367695762068481913770453021430923059240310180900761851098109689729228532828468129729517097737040576537809883808731256776205171301723865545085730862028439728423882281760930815773792136318829692302075751602931181515565299998753787726108409524608855519480449197083533095609814285505725234834069496052627707682906435666707282483796009043054511898211655734351341056365413485508748509473969700149410699787338128297073613519960030446989600182783331759332204243638522845167601982116873861351748120492568920346806081786771202416174598296316827371075872619251723956755996526908851709531074973135418646035295699209034800507294403123514643266143574605807156403476515604910685012908544905773341765849998828375283631399727278185914231409560266295996032532283280354739617191381108156299664875825898423589857638069409379374141168981504216854896370858041971187729464909586523847491544826631241686727744523070975554881141515715303261355008362997286873733266293989342805412676522824649201003092411941491485151236256063279212898556299088539655485382886616442696622958196010862314708748597413046791922578372943362966168482875308895484607347796548587713132371457667996767722637770057881336830556751971374258617560450439159018097144490851622089514204649751920262813968919166906381757303666177891563975775947726195400285781973147999336150169271589053077938020045247865118663850623730546611547482458204374167860315864040527695359484441324053310453383093199720629346930144080117301818364947827025804194197655385533790047828375542593459076459287135506241242323928655708835984294462181950987921226843108786848760822766789863258499055009857933505449531390416218787766458363043166958066472860027523896775107508609570999709916443937975151534943624470190311843713576797704507869148219595194674232968217247718129310377237356041873885189773497892473783140866313828877053490051360303660345556005135195238200186574277932203352776797868499402192268875818851532137294239344355531392117791862354086957831398356029490723087631158486198647361137136552761973275729728632925658074639238650772028534611744372298704964259239127837694074211989121126462527138593341496771164191093853204306182925125268608514994883250339657541346004829317299438562747814216199557739311135458132439573847296941364457605069153109077264168728816527311443617383475968878845757461451379139590475583073070088083146166895414141724115957401883667909247636071698659700973635300393829751590232419491809126806842058469624400808282736875731520386191045755569002602774521292733831414499290452569724474254508720701432712606571578548990171907894846031144210736212744640979690326798785484610570653083012522931775491943188075134500812937627788921750463255361667804253960245351211795670396804351868219067025887028799856531286146469305168625938246762028929933815755134278533464151761650691578629520886900125098669618968668742923966961394927744858064326334839794390229977581814205512054061715120970443110783865103500639818558274517907220523745117180227240734608472654757290704239897864715237886171166349007085448531895445472455506941695310755034819653080095742814049673568872233576120966160878936182491240820203837133105875907352346713747547099178276014123046783311353577671575954551948689381126302641405048065084366610441331853844284704742898862518185813480093883825111335006598334891968655257641271224642791544200060630722536302504221774937037363791003059084196059493803822862084896162158124823922237922951206630363437732837998757803223394381728122727490250072927533201429334737858725413997929871864358697658872609026441682175369984448947941633986320604484918812043225051368918663142969310206957523504391897436874961240973645033858276583068171623340495840191744824994059329128695414106326355273160242108233624657169782308325833670183158723322162069372875830193240598238398614591678133142890936336240327944764337520138934838675658171198149870516352560577663459653714715290658285040000829933049700559637027718495467271182048296227184334475816603851475306375799532102959774306664567411233831348052766884940922841986359646234209429490813471941685267785848330285954804344575040986924981263381096100978113565573821402241879173541609715222080653476888175304914699623925717225842308573337199740666477073749045371921339425098459752504056322618181141209471236550836677873356374584174066180249370556433272636152127288317099609097316227691985290590761673792600652415031261125669679783337626178231562782371836791041671319827593936701063880378750240562072570547640411368037185494790461492450757190271293334647015821912629937835850794381235047991150866441879551247158879193851946999675404935991833987440151730068511119076107038296048714810981261504991801850109862207803600822410864791761999989482819951246779288301340765981551291648730120159917685839199939458250398870403086208155064470431238552056692985156015013035861491813062220308996515203104016823128768621675865542344463204154761030573877500309141955821475617031770058905030958914036481095516033253944893106456721809999227375892327049019583600331286411749456387826367973238926050068369714740776266850755242340116371934507175563454876027033127237052854403623711988408032673430597563224387427125939560635126738316886666716907819455101677432053029501238012073512116904834043708838993995820291405893236209320967842723601771132711922088883778692148130533057359808023703574641592724271645514082320525297365598249012166446283599732497440965503611890915097907918921894705710672678310571296528141544706218348734340574639775503255836501307566288596053587385106542916612618404659189983078083268662736693705597954745093927272634439256347041503537331362205975947837592160061387611643237518174812553574738789621946806536695138762513969499690765900025028879947641956509277018017590881106455443715225953310195739112891413207715875882163207763973706158710330301333665310750018558934111877502478214858414011265096900880669942663865945418662548799395986322737216562180954657699896294243209592147631466346352931616411189112444486318183631820344164781921298219710894236021109351546034155552626200851172133465543849100646461258544626744934738472505017159366107920363220557874198498499797736269202755014935972605319300063492710877201695092249241790998333228695559267670301869085476327099189506566911562621869445367412579917632405207060204060521190044867636331881767817059483685821895449501739136700334033679381654160660409898661959538923443643053809237315013633695128338614834094068905469427932484922734033771828701467288980580909324494582143710294601744577852720598156341561672634982160661033180673911358030948637238650458142436749064158380332292421857455146452951413576515833014188138770618423652940992622793493278055766594044534709514073486723996328946649108110626748234633220115176506208058366441328916726885026542600043024057667971013920555062722099134033082571105944596450105704897297176626445349868741914761340923957581250276703080332966298206563665719545050747779483725767738835930593270150804987849820035936788047697576906118848265163897402759573272127711245013734616696742415636065275764972998900022271600820535387156040203976892120916696364591226475240496035124688142765614913077598381206281184578651357528376345719836391886675690679716726566188691186784407747297463906168913288829993391566025428465134292402238982370768884073066752738320676928436856703998286974494789773073948166370740560410640868408611621090920618902731530690437087620247253618662072791065508675424301023098085027585907176176620884690377725446741460660186268290980174238925567098012120428918776560663139967890338419727977295293617818057890816398365411193723435852174929986074140297466191871209258685948777717131238744357312896867604970249048660115781924369013159799606720499801393993199653969313033574002451768992944570653893519686736606693140332551631682596263241978260053121070210822324829695871236841647355493685819739486833678329223952595026682432432174393141067758613404396203451152873934060565837891548628166196590863254251320604595442501242713000095684820562258633397719386959072832817569798749893355694030949112931409979510223476847533878821633601455107509191454130880351034323367291555170767147486307553373515430049553961908449341056290973480682253789341719731115642265244367906679638827824523727963934324912148926187022091993567792712903546729545263918271095415250602394312430220090075540260695019489417319963045311278484462815345995918059896319524536125216903089462409573763153795217972515477954836731294728010587377592038163960113796658770857369117355740524262320301941798517143445070561580649521878472680584678725001462403949902639063899498828752475286230250605099651484066776321258255268216594042637141489681678338092457168258171206154328567343382810414307397439886755906294492970692694431886951412874046553312510564959055829772213461264882114993601631920051520991117281121838410922715097907584452227748411947739715078072769489089379871799905503249423703106128652206887524542499197703332681837831487952118964160623358437160870000832846815819697299469907578871598158387023070606083381116974562836364779474220814104423116447862470888534317388874110642564334552187274000242952513312413809436461997931589503011348833957387634532476139582804029426942685744646625992499785747513537284040223609460636187110253065813436467690866666282809985390570383328771673410648500211707828613431463099113108554106577510806459609403461288757747039128792944938407696706087626031580030500923886224998048256995438889171551848437997592687548447697366817591783192169382008511309736637503053950721210643205869358848298459589111463206149881277626112770959690012628493374064596284074289597648526039629788804891881730544383221690286035409699319359768535884290406156186562541006956483902545402395884143378711977136228992606016055705744185839926402271169873194457633539065212171527547502440632935495296506720125165136886305697823038749776416900120286820979477696840162508613396816860566583861748100816286183827382482904118830989294518115985808016783404597948606407057249713082433445636486575875729782664858678379624357646926921850806651048797648001284087057373944945262956215903980394184433665690523300883540063557315140282813843791637123594404256413106700980187483757247756163257719671574588850091480433955633449936627422433052251512980481407634214191860267864608824584350950519117532796950305516521109368601371353636360089477995201105831250572988565433277783262874401503163213823160261887410358488759026681990374664807669828290896927819660340113458302534956165439319825049944791032849553345330992002342478828388896594861560484578761410427633360367721991743302026494435768053599441810052663317631477522419552265119868448506643777717741722630051793424411142469903115753952901602531714275660038667628468642466217801881711788327297086417125328128924854604955805401552167042254441397412023457133899532134923892519044458753326682740787002763507424728446766978191290281801193622503754567549603954233258458617893444869630617003087358086190287555879605955387883771847080446759641658596524069297910623114618210374984426619579444055734371803644734185400287101699386036005745404128986640825497791061719835494960933092219874205982045130648721534158839607996326036043163460576943933404343539381744581812403071593074177851968096996463413209472956511033828707231016042422184211694413060505585447787074464123699011252150286832946968229229640037725241519474302680471387198710703925631168455029519524871935393426936938417858042360529609041124377400787983379366821443238049715199803771817190136847966056343026488924659903450449407295459041165821452595822801653599415853530018068961091295400481081477361621280341402607258319643491437333234523397214425469444174843187728022102077852091188741992706755759023743541803207399201821236187931581968298966931371470111529809903421680526235155673222805256120251533189721744739089383676047516956946821596531174031402923970686781967883871916190931265728157142331201880386941723674067366423969617169421166195608975133754738101226099321219635638755437478887262489112219708267565736396144551385753282020198927051669933433352253660371867700847620638959968407440601439649391314728632975867414535526946113970470926089618920531697481790636872480801713182438271753225382257778340351199450802274899181204416128579268544068197351369284674146174240778467597860948514596358649492308337788254391301298312212790164795007722128571020328711330392496909515731084304317452227716597756980299476438342739350567504713956742681902858931633900371016488068773879674329770058469394318935576954079251328241196993102098476724156402087330250103185170787615922315125910824963793315006155508844210933562209248532491381914426381073472073277749628045226583760555682025234720485023648959796374639710187166223873228696771781029755500909166752140446300525110654905599876580732175431016868926439893272336064078895342310681914909724924570246794513690306602991023154311839888585048374285182010196160426353880617508687416992891734789745750047830919681718060583295348636252297754077484406339488236932053548435116257178651704568740694084318153650738055464498474356637367065009667267534564990167752983193820558862792107001227083326764003926594665582833129684196169727158767608980115829719197892940189655741363298012101064874288923164901565229986281666937423602216552599437802458788660452711187014798215658221990772783450347876939914880576036968018546872205511616238357866770811789282152179950250529662811200727968086967003591142315435457784444635555566810479282629812804932975657713095688498012939831721836544331503867302872966350439695279741229683496326725051325561758066728700382787196172696450869708934696345294311821610604125332312670579635071300700586645330678752837591550578864022243997052003448978198378606730316881200849375476842127258146357350554400077468799400899699462246313123253358012166708866045577199933676359382425468641561958042991026131574067855808760289290950287217001586044299407290802782658628196898868137170850297170963796833490237857729626746848142230931877604131765814109263508977926398668741570736129160395255900565765281127902529690540165629691628695451619165599104227854645544528902491731150304677900938918871138622052729176068733556915351627591030243835396327243231221720446244746769686912624003732543694742365455897315239338736265134905275992155425175640985857047844618534622420516001173404853723969805758430104032631237585678425873077057128175402501851479325531353658545254532101021746061783859485953904904144484065234078337218481942193657920919337806012035911762075267890772640759274463675900423154566871338006286194411712905508105285825815709002667245276334339349431199936432390411317503116305071058302117765715081674218145428995435560427790326275802951320390219362397243492390892216891267190780262999107262375593104658794261094726248689990917943451479784818370735391298715130226126634142310329008486017254457472975379667815901113506283590209548226675576569282510087218311391132942668500506447659820566277813572114959760700983492838070493087995295419078076561338254859288516131466389762217081048048253675294680216246137760964138568456098004094016707417554121399491378325810598247192394673114783684374425732977349974180282283083750420039511683875164675345314979220099153138572120874641988332184258587442894829172492047262170442741798988218497932386121426710667418020627421138230698358798549336305060997886103128755697506776596492249172446511340960818671960133019431038113294448586967338926562772925245496096453163349590025841630293970841072185659806097685590643961175136510270851585399405016646332411017222551572331104865262706586228124108479011111444692279023855097355100124551729708401110486922092462201528494915964327992626283681778342557471912837191182154290542413422993727212224658608131894341014357489147459450922476638482758236623519532873723117163344410323476778795347458767036590376339715408223527742962621187813856580716253506513161906948743852323319958905544379378215570211905506556536204528350671917524098683266435629224851976242920199468628867575932906663444362234015982353630795511818006036324919144546160150055333022227002797527107955968588843518971225341340925825985025934634759672106725049512408200304542394774810424491994418794679960163875483307386788866602201727755191618370208141182538226914536002170485879079297397065485986302103428555555780925952904621928146580713760262517512774300657097452024083817158490206710452449960930960359729419121449914307481309866485834228479576053845679789820287494115205244324498686156051054097437087940219070975114668898278180676210162592316895641660624690903006713285086498205054875760128013110816133887547494157872726295613265360686967541493052143546612267759250440522319854476165342646636584343537411181324374260725007755088412287222728525448700414661494932066306108242836382959511159758614339440981215213179375803123065154400753877327789732672537264582872030282202802516398213742952254033754803992500834402962952875348727914579123041554389448962212545484876632024892648099955768972608730008054703218602404773463160762687842980795368180420267655892333606951778998315378717882917026892731698702698291411215266242711586635553697109122266203684501607200558798598795209903756466636458550206676471333883506725524725869623233891316216793218241400648090184827178154119123255786737722174501432248094491437226159074122602336992864417954529361704202995883251184999503933409169658264262984480156332467039318548566792722846241166970087649292537388780087093371158374498708545093499324829095098158283942302279517320394116821221589863350656766199604469119749874118970450428015522608875171576124087697344949860127311608907280661521388700043442182738745685079461121065967664301819738556902348462464037866391922045850024742095132581063543079629735502940805082431502622965410189677297392165690550258760672682968653065327789667690427393267380111124265516352182807420294839418868969668498847100816396463106058038773698072057755617221092398110042725411185205825234133003162863028739309536756598955481188750888200096118171857852937377947201504695647103308075669624356981326570853989485519422824108723414777183154354866992122514672452146198207311938657067611327823502903472433218131828945814556658402880283474595834131262511799818256874438061899114200071241570640186759149292789973799560109950612350298500172655343553178500762441333390966541172299819261168902417834044918682711348455430388864934924928482913664293427628236244809258789336892201754467371543705545676367563181872158264483339119033353693441574000221713683868772795072735286906795877498497265503347413310201506106233900742099062604944019495534025400703350440181187573011088847166797380102341336409733197894243240206618530130689226634080248810718145790491999471795417941564191021156301409943892592458928164103605958794665126089889702763861113843721625318107113808903761222856830104028827375395409549626019024679785852156847552314294387144747744655394473092027755829153537559094646815675103142038095435914249320713592389266376782046581976048904731552947207182414735645253630402397133689698093692025740038103447950518176455379045994323795440375891100658834040020801784487869507723990852913916114847220506247572630722025903553148304398916878081938719562141185403178379805473575644383954567336980560704006529389226723260474793252714858634148026467295645366432073772734728573377791345497272239103245933163793510294482194605460668820912395250867677526354547690080578843447880246434397696682912763557202640166973433692718300137055425428289568693479771962642840444788991565240276618284305537479322659486705389781756838857429689121247778883199401362402853594312764666381192002133055704631603274197539043864556884288637733925153968195888854092606265263361240371199873846010608343334882520650332635010682986504448035317678543342671425127258241876874707291537866472428160769838354229791901647565368451505912950429876447241436453980844688141112254296389247505405291274850665103465245945692550552119621215448812987696021557086819020104049342588203194355819591356730327629670979508166443930126151780306087304982007716510345393033264562958326786293382138124297677793310480144880274083209440564590209700866233835040066566536659082870790982051782278730640266688078801121632680021784441852770726038651747860061868437306726194263017898807999154779908082395090592425242023195494412133508256345193559187935441950220821215974373125324138206954337475969919438418967740743526778693105465551529274975042644727686223642216642230734491426953985119330738437644075877500387238894195365150243541201569451837298855980686638434016949736961795550298684686380413415226256763203882234198431575913535685726827687904016628674246657958589981707357091505098964353615080840918902255342757947737553804228447883306252927560024103276971619086805471815854597076987252321401949420624746697811371140131574309374924195840956977243421714766321886257423427680617805162093585387239834741169513484505772008402417869484266055281363434882949820307949490402266516270336746087512905406340486925532501694533423855883164733299409670774153685431808824012736095100220237756707588536511512967428494862525669887757207510807789312943650595669245595615730753897658807740821417753844258195851503888247834959201113432642267475291771853708781961070836743121521731096477193712314754627595259320680592014203552048476979072345878030378121536037115599462064884156983741654709991924248992806178916806123957037697789295597902016144597914955314672892166915563312916712391923194331252921025746272388607981615248534435935245756053613699609173032655333958753772350362425241416824499496050308802347264837282036871776028895742840235815456262836327876175705884477922274064143276827335645003302024896939289694785463627067746442263589214109577566554458581572157710275612916315480294032045607946355856630218745950049901855872436561297627003324794083096249795195990592913512557621483763625054149083035777842942907905442517529399496341401464636967636971512608238202126123862301253567075032929779785672396485844135870887790093706739250193550401633349031195219474487629980267248844755826614845332374151980096834337880451761756050770500393899642142014244357650631763707078794295622589957351731862104536160827006600344133317019176250685706842232883067244054119255831685682391944967381854876549322966995990876034132552416444645827819763431712666003316883603669779851492221996337765890675263674578510724040086603934050814194716717303015886573599146106208546957438153578127870615796372383836202350790118408707211245971503478997718077229497573981119996200321244559871433142438941047456458399399683137641897524775094547546450311292252812978564192708288434168954836449981561456456304208473671541880840755395020857274720133225578888399568963782104537090129869432670666120948478279157319387351536417375804409423175593382317769562037158778419406229473893309427778739331102937597981896174370352058131640222004757235602744516132963028813302414019427150680407589553247485393535680067535258076952094070264879530665374700205627655440181155562890522173527119867786216590598453817576291177869414721087203093135130489028088595014139825622228564864357509351398522929362783424187058983832993474498949792574042372147687027126278295216841940308123552271502685033330265866722020353323315742607500769408233850372791974313926789780912449230776759628367448005440670228891070584132336146061974568788439050676280435882819950658732369907980226342443597571757446815709074245013403826716960785806810908820207944933062302806652432874420972507886230485515352710744345088956534842128057787328518052168797791491615361520021072132657626909844158529613590191190655950910370641712201968809534659800531350093132683961999795803140031894531772620999053808359088699889550718639805879781460484700548685816149019113122159592634018383355054498983640465968665048094408333411890147642381590208632846881929389637181365175149350885531093220509237418647877748311568900107182390399845847806040323700158569016053878769701613608025767455632991926243335282609337757856996749636281747224999650650126611737723292559911259547418958346255551768285132125352002836954655987813051852067923591285482232380912264241831253924180793455950328018314992417778482242832333740193248482817388744285554444380069773022393302369435240102599988939573116941709271118661428247226467364673521008386276060142212358082506759648599647956387914301061692956409731744882590686268263165893571192135616174993993510972190279448218031818668742436801915811147850160557504135609145496782102229084341941885280433036056825499950998005969267621351858420019965660938456885768682511097340116216415473637583110196129741847277663441754809445097164721222434603056382428299375636323355613220311606657831009779604042700404168057560309057164489189264982567352115283605284823575083602432889858053021985953901334640628443417305434091124929349758532327452041942422515299202839101384530949621512345650376636060775038676259094087662002808401015120245874669459215144666527845692131163908978847226385985962367633893006708727563491506448976134178870921993670143350216906424591993221855461376451968105885395484817546927537327866797370627529543519025111304503764323633732217435297392038839151966554979277491010149253117313447109014993017141440630376861639628222834352049708086034249226265741315983392318653549314125757638065457371884104583007637403615273952637803184704994190363169006547584502749793444213745322718034141973987187074023935921768487323315511047008985822315058567265451286217572411785719700438649485161497692846756794319377405899084517522795405172048223716333336158305687990065458324889787678496707286556490746240651325992906190269840819090001632370350976777052573307017296804965408068170786013534370621225887452421578927674794343202339397680227292130234660240064205160677828464682394628492433114064723436465063042200376090979076009643262353700504507531146670623237658166310669603506561320972405814134772078342263966929395493939690254326178428920066238899946559896405637589935367932002176987878810956201234151902463344719427402451495351434675564687832798741891490467514669431816399342162587241745599909627140281810745578362772603330515362647355982211230890026330481321340979198270323603939105902228879088510747924581008322170474028397148732905335379239878716590237707465986130666102550725035678175715361850715115845733225290687896459145469161537486916496068094353369345777175116631851750598447657850357179971503936766952274750414746915411758227300735964543575348404954947967970228931853757607648734295799812728042301347406377460417936667420076311288198433302833731618447873173091207552201760144823958333254835541312043636651467341964193733844121624275606125420111209317292119185763656343656471780302569500938995395369349160806623559243148522623545957787507303834807936901438535210559830974558076519528668022989972919546615028216382989408242692427002104339397611494591641679796806562672175391316662634112370047063110195694407020134538290201980701633284855122027671081664364037314317829407657989908287202941230572351589761465016073881221384156328530517954414913450188836393028910461210871118274387442105111877944680555852174999041851050882286515061315110010233926327694314778091033809788954758942486736939314209850015695716883727689819378931392150853134859898803144918386283315982868296713764649373629600396677985523353915240715209319159358994090705136237044549103882454980227128333103872724766644848102046211754635513495714661165530277851649831674086863211786312604910750972213653130614043914103848440479021196203604320658913813726319723669984732534650150194323030677349600386767294196152485096064390484254776851193715362865995820352674324354507833356489761190702808022167543104403095659251837590037001408263977670735543549454468036380553854068132259477343112097833680263411879575149051625741892655063804313841969906795784922438158827905066821356431024361047988901772810929313561877285433508012343606049480226997687367200171986425277246221114441252005185649411262115284992150562229149598538879381567935536827690699671153608669131202546845244221828105396955974232624315288635131698138606725894243171765650639054724025237099940117593036325875365390141151778619461863953273441776930454046498569130016354169935173130095582652316858129631796334407890952156224587059496077776689858211735796163666576718043275125773133438432316574817591517432561522240512635649205763011305332695056949700414176733320674291854949138874257561873961403056369631010620989481796921232095311539684138598829232013222991696590295287714241460519897141278806262918034858324008570649858097798056792569334328109975364571942389739880565464155212832420447515184734806817780942912993168125853651352994359649496478503238910862002373291624295500412386367817464522429337150542452228265380918332842982029251282111131752573569930262420140067150549246206095519405546330695058847064148734969519171551920470734181645971349429883708586303720523148793437059189783053016334321659053521185975070955617004403504901093206219413053071342281705606322131647476306703598610398020143481638156940224607275641599841567986111119011190494779423041516375483640704351918240501909239714769868930507867009808844884454637639668051825994534979725363200680231006892397069216577970614798447658508819087920227076023868391386634542620520690766913415166340487844153888232648097376475035488166152854469504928758236459182931884848651665502127081258977691018059599373987816432427231270012828452621413911280211119516983244724558742953217396393299632936103840775218838634085134422814088005142583901760036379532087016405670349486606351089147892461497050733351539932263051832662594686504839551672576456963236148363710968243415185161776041916439980437324390885724688526382171622777881851871756485071678695861526316949259783947731058285456030119843017324316882299876063936958277048460898584228409196102781878183357244451024784318459004962622907176996324588378403215248661912053290183230809513703195731894734528934280143810549033218341583050537894597446083943366422538838881893171642325689864218950446435319037017047346182693489354970238980397909190925220294941953726672175293761735929407745995716341684080767608361012274710895346610113934733920835167016848948736987688053481506392589039373810325387755179296998860181456521335548086802463333460349197506097376085035365432129326115044533936838502624177254291239929389837720701913940899617002862919152389345804260670491857049151758715466195928539536148385209601164255136663079982036151317789214768211973083577897875414672650335318467370299317695942191991685285270134542178237639975018437404003802421536181382753680025564845511792114531865922614334729158078355643640645109868825676819162723469228384567981845351479164131776621797065387537534706671898647958165344867563276950462183108126628603841591630642427059162234147021955072849904003250343921808260003052340114939791655141147087375663665409431490628339167354223314497429555292805193867433147989180326952582906657923968008683803643388562506197079381916714639108162735606235670721310357886717862102171735538920002701537603218783063694722094782887174098769732956903165549367235077887977226962509176279688134954375287905983236572821141913160145379026536494241343724090730682300619883606280250547040976141217151519427210680549489330304029167675050143181477208270180188993334697306532861086980983301582585307648545010458030810197938607982583839985664134878434978270571439644106461344134080229986818781337195527716326846636456238369352878541026083394361886738108918635670601519725999209964383738593232478063174841827689575367645135283074576317131559886603201555561124074116269896362618584677167798422388781548922095405359319170687882325560809327178602447717569135006739450480691812165772351111858219271241766022513629066799172233604211105722447323813902353124348047557961004897899839657734445064037897292745926048291962704600135133320315632586897209197180981415406086110117688829750349585101467487282713663853985490786757207276437467061363601123962222231971063986858941447225372380692492785738909081343876046716288186647156174990263965529569921913202846568450351640014109429827436471850075819153344451784557615245340866562401491227160048234393580426095099729482517080468611018428498511749176890485405508060136847506410028151396727200636182986079365379350786747570800691027839018185430009674241949614478515499312187516521323723341443360221241968824428826472187364701736057875837030893620425315016231569450050888432364262771879677342560519439344502246401884906627986027495482069711317711873181964606861881872234065702258782112829541174009529242362332266759742190393547885887428909571497505288928613412259130969218900265916599181820048598673199135924223084321361316828193520856550657637289064343880108233168945300398492153414599033447832184900757117978682929521714547601133507418358411361415034269082735546425666678582850635394452329184871312830407345388333644511062765033192604513974176283085146475967974741321359576998336127931400764742380231454273017039956667235777949369580444061289754885488734615389203224660415581626575404850328780896955164103056208991609670468500741664243337108180715132944995279209030999095876056384651039465233605814705535001826377631231447840308659779932282941238726441629876258256031206214737515388082763977977603773813735826030482914959755629165719316884741951596764370190730122350744368858651147705116399408073589072115670455506842427927265831950104447165549429249883645989370226752558590650759891057464592754508335532166820732491939709576028950363927269682089979622295228356711516034591441484229714819780967920080215106871050842727827891319134814563841226525586759283146772306968995138902481381564108522393883572220323307283055084391753860185293608916104050817185063214104105218916291267198447328078941203319983371296472793018133314489598072757995950757158774227019829027194494749743449380563970690368390711012106498912266130298559147908614630722933230376823542499105735103313242569204944426077041671315781089588010143934915032248230630351031142697770036075835750830917754404346439093060194854696305447724621641294226541401389493279984101453437197845366603388080323814936865945306494486948622513174923243431676157593245445169190070393539469615949713320948096752413047957048351326187230712217914234413699934700759604171099285005703200034038767039145337287415890783950040707121735352237836148911132741657527290327202300099584660531596945319974766180942314159255269785756312361241181953470324968731569215719814269790985259985976177196080134795495637010248212133888867563365103412928396280621704743995698858563180703222187675221357538714408653370129004554045994979297775836395235048143509537190860640207698632804745389179450129149771960482852452562471060577800139128123062436024596655680625067879862331877371513220486137430981906696184161261636859359999718439803912665330671493365694780024638355684386035514063072128028872472522135320756213121697323755166742022672969952681677631502133867925936351980659691391959504346876678935752733950812650044573848902130660696125888456404974573012263763084119514602074410773127806122702489059683137661622033772346074715964748377463879094953743466438882004744482706751982562337704083908529381249758576548114605752600580118549745860288017248567060513615987883818538044446656896371931037339128178617512870710306439572686423825314043349424804803448400932672794730800910386080664854069464455505908306373541325548820180724376183350659858196000902493516255387205403492649677693127318967443763264989832326029526996689351638556493179871921786551046650426974522114510962354039177551438026846383142844010240212406902258566166942788298039063094531605078253464218938494623583959076279164283187677175046422368186925683671332339184061628398902231009001861360637024646152355260412435244086756354515650385665232548313745261563253363126997667761387941333752537212741208400251465188530048948439551904538433840035501302165171431619695799906496632116559324132365100459939770146291130488239202076285997291252679127183894678637546961486801920174523476136612882537040767987168303864519308883764647271909429689764632365089358796433472096828514052263861193897681707010121982009879412269966479674241329068121863406741606503714666361358898781615346537230778176608362782793535522274465994104030916654596485739825006717370664928342824255075291613969346944777555518573947940244352734867965124730903711528308408061463777416518576182158726369823047608012235022805588735818294437613044248847612737459236986147245753156051852634932427812229496176839194200758962793681731144107391054507624878706596423466864804583714553567300968642351325111511058113802102006952412878330834970517578984249874121221665301221313784119581454841359773717098501573460202842293401415588406675788274428615409483377955051008988917480518542785084617825968725886028277743865975824241528109078811565947384117000979941467386479350670103802095129015137620692870545979853197237646117617791253374493076139200721193671268069691616987002102579112051891484324066339076845362152401654903296241754452142643418540306006713643074900273306818770629545968401748858403222197530868531222286577029801698806111514202024223419694570625543388831395970237812755208811716563655165533899844192269770130238922923131288789259171320029724685560775086651776910174453423201945585687737790768691397996942982575011235092450419444661285668325033022638193250223460303195279523123393297826967853597040911918073170026100060821134316234785851213163367221642293962156650347119001684983232097256979690674195752655519957139823035553207796332542014791398049661418481219666110196899225264808580223452958426005622231806893688517282251729344904046963766021539573572702964818646338739993363433104090235997803343782832422834644512081706853187378534709457377939769345118771468198313858007328960142381833959521217712909687649812172158919178218564468936965349961243762686726824137654964949529564107291427062704167002316125771533789077840842912464977717435128001009446706056831261337312369075170696186572193398848938062770783234374750534316866230300504102046523446159246883853263504459877452917825217885491884808852270778821679375299139467373798976415829076370381441190056223761292507488210017799374558367742897585774974802026629595368290280320846917848354395287469700912244132268118526703860190513454801741632475425957473927852565643041414818666188806017146687162085432285767578161659574188501148399557947928448347931773665039607212092574027176416999886658772662547766627480716896538143958830490957083223469586408071934575406481155249346293230829821240179172173810508152953724835852296798789436788534227895445356577853868824090374495850813747462981603159629110059248201148989235853210781281661014815280282800203509511741715561151130601290366327751703676858312271013704822208557798990215896711606151461637393795140727809523695560978022422729996616700332555052797584229199165399964482858229890336557606169252494368208544377898862037141738513108370352792756731545648450345740258248846120268561399032982821309790917370991873690394458854287295551974966749767762798984845112619548682962236540348224175989991283506254645337435606163029062220178408413195366692962788647123999962728846761522948094173752699399849032171451254033020373894556243346317417042321253926338389540241623622552958726148426696361085816116961462493718330229923562062296296806695352765075810202500390406344985395284775515855075049694343670396851162271037378656878865705354749875874893557411533412772210686659585191109561771921113695282630705146200041670887165245288234874128979141631678534612539646467634410428466289260653176809340438191407457867013026349873334448630164708131349893755972008578162187071982029136310221869540909479371928360426608112585829053145213837010674416064915469646382964252714035858560576332419997747171777946035697138076729066566076189252266970678555035715345905149245706710423951539830914915353888551718593547932219437251996859885350643602352285296168878969995264093201584155920064765617442740364720574962760632450828980723473993298969283461889842321975235750864432366526833890724652249016490769606380135628143375087794233005855276391385991417532336558206724889683008335203236116309965447709147663750525470598333252780156101681685534371585833401287549524363875188314634827783028159838325356058453269612586386403111390189794870982003228099998018369676245235912343620845056305610340691096637914713841367507314958869786203181081801806171792077383386904754888328310080492254277079285768285102765309857476797079084066319076231116463687886984759687649119815864709276966425260278877179882000102567898183989188881260458682670442424339269020975609266190499591345138005629048204255734264399829431724502460326409625173810357445252694843816510459831874858006503716293777424615421683751279834566903112277166815240437844267151053679922223927077932775855379688299104599941953902503108949530627705192321976715362794216163374385067221467520017072351614934500481757698618698070634902891733997639168894896314205452925996234847285783512296295857979929778218860029411542109617857620086013570084401727207377334318329181970892248576422923439568949573438734812645719677571050851515996918774408520116830486868926645955788157463547188292701050014494152350655739959995959900561428876182101724572449715439435025077284626300407990956424029983038729601944639341067108324609968042533008162652964329050453021919694784373759454797310918349534865294111246745024636489614044769145215088053856231687988879668535616258983922658982053022789742089874445803679468697496750237690312804768234788139841482995380749125832354169322279666877266471219958669452577913102829214624463552612354247811718775052640629873039044794151344052266283341372523681862918661747273021526405767940976729780791839394451898488525032690549095913914440589056313653673416208173709915479059480104202342212958516422153313276524320900354435347630223230069360636755300121725457799786159452597181601579255443671391980390356225288776624176218976727279241336324264309650933465550757815060768091648179600967692271579342543176018733968630690626072318496828048718004816399855972625533039282708761657056363039904706930407491653220570398583108211984467054352174428728853258269014929885838225893503040563320210130017234845178747022187624472361720125872804680263511898616138643407877134893237033265147819881850196164430752748180831504414924344651209350241771253717481457023165325731638047973208783503897198697760553302811526496081978478955253045166451485531509932246985570919048990176826826068608143767994105859938399084860903851541890926148371876040354109220038955594186830030951084111032017928439852155739626954282119828284501215574811341360786836189793275632401836533037123526678872325968522250783746202557447504007680867642497668309073299430684722894954499126914228659274045138121763897682847916189241495775931070218959787825191516911906396090738427012008195868221592613631390967106915325110488061863884025569113361491190135462530685040727480940592501970312020453613656999082399946641907493148796386619554374679391226272810373328298270139048713802113377828442154183105375413030395436965378925242413162304100149287395310352401052120120526405271944122137473653195410265337260038583984630799769780233671228246702717327406552343089874013064921365923489901587821941821699802920859814144783067431935097348212583727724645214013715028917101908184867845525139423426874753590091346084872753181882731269577851304853470856771762351613862095313738333756889646930062802116159455767388178756865874513359610401992257578804585279869668852919157620602995810596338631429535455286839195323203138625357157939072184364702763428233776961359758926032676973316138184564846017850482012014935098352221547252592936833327007216284283061607909843951866632545947133802516835977412815424165131862738889034980823674907938743581543559626010294388295111319597502520552600115944945835994387613336431676555694178685248648499611767046222695300730050152203991762603032206786438307383790224326314724974656655339225014216116897708696174337937172855456737054614860388537665717974511236874250806436813700895424074344107960281764330805352312696557871653200431788763185270956482258809265817645671735753909114056675381531543349139703359954010677262157787623007098707815288438018551190710465314430797799000118292310896124445581675613228891678639900634780416049230979710983767847606872429205320404878120974852864730347137888298055662706324450216730585415338724091744526764777227094888535917652597306475969945380845243759056878243719091735690103361331747781881560050067269621707215709075578008011745830037913599240197108377126107514498133095809995501142473924405593312103915994063790172920299014157097736014963407360562314912541923507970626863726668498258925524282119099134995350995090892601675440922425454375598917183614541323974484155420990137423238915581981702072526287928465402733016120153658958872531858331262452171967447554499920675836177098939817699104372142861080882257904618714965307476189081824022726405339191278261846997151264936307131390405457217463063726958168009963711626819006569205849101860559255959859758378738914287672774704120527673501433514846020049857335371370737778571105678606151360589454409824316619466649159789887009068297721861058927941955846460336383669467103761484816540662192396793580602661178608611228982149292524968109330571673476008085278644580854708776190599561731519568695401314763760859416889054765907335746839845568227058649190412771389319423615382551959363437860200578805231544461813857902458990617695533085826145738231309055899136102443143888083356824167419930301218551267578853148486049288057924518835053414711697388434492054074631854365882971666607164830070618440107220569961607152390079513535226400303646892249525971325951668183950983261473277203922795214548575026685354402608242655687846264506485574668632662353813361151314119260267319465326183301117865364150752526761935072067471687328749402147693682941083199447167746284831004292120954146820521108901464003505822067987758470942745154665279987995517136023291081710078369190931517411184151978341925889873447516859199749844319395551172994680831566447514377164164447029670510438199475954859136757974400955327916887269566350865077413055850742220177201842662000777161223330386037733587443572918496838147435823387810279136967177386516214371833140061880087286463087510863329671489976951083861933955096917402909913896917634156907384976585600028083532399283135040738921183177318151504559964945246918142197167900690617736818011769557172588929715788110986877844008632605326324886763820837745513195352421911699021710956173108691449880622097923517282696636867855924010892763861959029342712336695840706090229835624528243621062964587387851421409402949006256207674480881131231765764415598067078046921058646215421802181407224712672350054687624662610555463494264302653464272902438277703823964917295218540642008589999429710667405730643219876986028193279407673428902616918526971511291660174194832534838418264649935795912589285607120933797371624315573332843142789040550789183676380334628899327864080969686861043859220035135664396880239895062473836027739950658140433260737288315644729714981786509339471268176056166228982659500996390483702786590738841424587759076439717330885703190541363609010065204258116121558308487707143158022062575959713254426797820317560917749538932992120378144099257513364721369103813862708858672273169198976234310900229724929362304580130601520343903132241378139432551281145061147664945916448246871942668159538223703590956033703771683344188741979514844245630798785362377709591837697751693109500062809524783232116519091124995564979943246712613720217861247835535373977228314220595448311931515154063498366104730103687860597163491158832810345091374411238060567665074650318168424724510927320240888351259955232608201978186461951755079043242322212986606176607474663738725100436755961308784521181141989970379094379221613524528893216786260181941881495541420919293101306120944607291412197035211530110003146058833663737606445154198442460429243671925502224182953285891597919593422958513965874546534062170631709914131737362289729876511621524068172968317076505734168613894708564184541826052804589817906120822870812313803279483294940145818380209060017818376018849356656781465975058432143804155145156754856596137632966167214906954099541375992355317805287340132306980144920943605301468264889915029396328002216082032676712495100185754138278416893752395008632026700082131910050596016584943839886820210464549421084500023505944804494483131006278723149582606629719159044209615872855172452129837608612281472198649173099355657624427544900217140406175569298048902427160018655252404765651631903420051586013940291842603338799944649219684627013098615498224485313359556127866160082225074246522268351599650482264337153594770454650862533277240479861112490036246672358844605219290018920155333439422816588827344571746861924404405730675757445000519213105741221432574245943021241530077719971731496210324733429456663015582849376640157373129099973432659285183528182567790152532880622403002269050054619510893523737997406922042386514509611850390038289964930461869038430352808984960309505108292185021149479558893941882904054764049446314406953098911906126222564953747336732935984104372206249359815061203406756358929953385141042127254682468558230450693949234537416761882904060223612555218812941900301548421096028736561798409243024639311260611802959471078430597172793288149247525154688191592717101489233042956437077168864247338338494675486703139447750605071243232332308469014583618909358537241936005542997537468770316607194490096323489019200191312917943132573656670474905353018874790483149762269871209512294511398176492877089773595650192698443534024033727379034879499857858035944462525647766321779499647700121810395235288660979941149201683331676952230163673074107861324350033317946991376030054502014308417127677036464599021784416566918629032311004079669789631733163495494960791601820315152030299376970631131944135422996820085787538437272659405404868723718826539037773424725173109736151637581769796869189363654458958877735900716295644487673521569313904894359730780132699418469634002459996001053209067237577250404938968906988784447669596718725648796637930655162525802733583257760648591022901688202222245278742758618186532362844722619858674803709142834571104386478536376281400727033303203170555971287232104233039988728173974785257171822640859394538633612387429340781112524551255948118664780978299944951235669282848205944541484876021119210787848291171314773714539667718545100350406602189632744722212081862850426095051997445219975340457284770477168235665539146078821424797511561306857863238758355482845064478577925410143546414404638016222041366467084165219090058869535746005794789725734602436238927791280844214781529667485618942519265728361296406076534854349974298478372316560907596527651238057582751392296565970976735396000118789829882290313367377488661933399490615717948743177658770763831203391344222145762974106681097819159785267830243932652571208021581687927868051686506399210313383708725335619469825356901517773080796858721392565545149080608054405188229644480655335421111119589836661898120914913659690819349363386633651169977567790082738814373680401109082516240423169965460836743018102679542631897002624890193133631759481164658292821552210615369409664197354453692706868746829623600851443203287205248381246930048933182032685561364281239707142256750804540781505387074339420634201170384109298922755316596321402688479301305343499772775293213300051312210299288774632972649757850465628307840209637224158043179564736397854528193105050034554767169441034993983053901706372748344091210580080783571543082620106079234029479394756655123955068098258662027768642874383455668020935553130455459628720189671863775761099159496414237353383903305347172957641373072844222456166315205160416543082731594019641607316007753224221477991295520992511092243795180179528732558034821462462755990657341658000933074980235158928720795072700797082628153418111061947968087528132186349190191967764278297463709758500527429538386070844221581376907292149830272572501857754746369958582835809106945196213539236735547046909929441853003888027530957757653125202293554959476864503467381192587749536738561946394006470851378697093818178524099529640374569840732914851358693405997246054937170035701383083215437950316329921453349805399128792047150506917615938138865402826807213373531066404659281951851482280952397253223448235478723468813290113475876244311696721593229088827339542515458651809859455282573463059722555985870972497893119200091954263908860857029083033266218159060389725651793608576582729987333096096385272385591204615394381958007483053568526787251256822200290593667546163716417842944821751181211449785942499140485978424712518916894085817835082991764332644016566533134715403436447882069098497684407231233053290114615881252054814174782214028905401843282638717057918453480558252633707625220965614065965739841358145618142620944093945409525254255598118473235003161088124903905092773982168985308197094494284875941891551038216576354461263333478933058640050905593971750851163475795807217084970276806561355195875262858014230621858918634862524821008935190742091629780672200039417152953150665077139540023456918747204083260187876742649073210069371181321609105513972906627478002703986462509462322695528052054103733794991953362287993262951636250923701729128886572691162441253186307090378311070429062793751220739835294244849868252821940526260785419610731072782913384961668803993965648608234697791181242476564616018485832258079122692834004949017457514906707215953673773293893109670699512700039231484934921708227465432618330742785252170623464377793474471819958763992358207241711922114135709462898628531768932978657089756810962802734564448252254351355095906476219802806516198926459734786202143889479786579057873599771810812581749993070118301799872907831952863318899189125951051481633467145917117943734136754776774428306669492740312637012544780093665315102982999406574702479002650730824725253944756908109568677189440048251965789455765016675200932805551348704152553540030455438248287270613022902217745138990979909047514968953279299636953585735817464037710988250134472938309664922148068832392785320599589822178214959991664870290042944344288630742920550525258257015953389863687459537304790964905402421575425964677990537546331473341669358083182124495115186391902172981643739451954373636849914912333750850051606224245847403921864265099749626547680660794646946410610159096411462121160760350374636955367503243508562631037739626045355941856788313678356286155216222073601453736720687705894967120289847695486722743212167639785763388992737422868312460260997952683388307194777742486257980228682248287287162601841102308724322225328282099616983960802110857539453607328385695688330551667077474160782210806872699901001355130642186067866472579939130933273364840275196468989151557613849668764271060885714642916987108053055636868284661777230210004715904944201050799735644196459301050567893522439608625208495464601481304108777501112166167991790724873240610354792740112293203568843555307945023368647901878406986709096195397800340537445933471212818691513011076110116650770255399188342047191754179865785363545657451090861743208612678490394254416927790781185230244607782248629722544753820055676298476466723763579690770135063792149195793151855378794539143604745398775079859546078387894999818029725994368657336528347936367866656898202793140106033040567007766078928157845378783298546709492983153770995001559830459362994636559192950682091992446306122110993168472681498612232892954787383717969986856079645154268525325120949915762652202328694767480879413128708172297749116444644307595089552785741041615602096272830140372720026963937050550092928373262602077414061036332195576420763438041962163181690231772379206604840374425362171559555476934849204623636760588132524799802977412923104744015455246822737319897529775807463053536876630594162890559876706175224991013697798976429097453888330459765377299134381790658516188391089404683444830236661562896844078380822315502949432695512842642570276945944387796615878042210839242532315513257826693817094502125232193181333782328036110473033985618539813450445279972071572433283476743879831455987569353211911479436127284983360132894782273532963869924623604435314557173801349548564427227452420106811054636568658639731343282928376244892225007058372525096881149439389807773952771140164927248094286180598038790329562224266027198186497852674104799420371501775300132067318701987360462696801151243172622201526427814517020603812767004709673348757205612038284211904497600183639811496177577688232052492620068541746733925988143848285428521159546405197352083845331869560362438991474833869687099532376737417655422939760574136773116899278764032469727981835621031536958230957473313302067722057643605972633864757427422226314197620555277518324028002294553681929697759541351931618506623204104538972165599459034196276605921146756820518292187326808786462901393517455411334485008351649354817428315393142925870204955489713086297634568994171879575497891191908568597831949316071527173773863219959206469991315854680302878650941179840793896762326185974939375519482884847936989491143674059659867264444904946655613292555752095232728428425734765433690379222654507391212249900648542643569688516842036987567249927304882694997555872841666625186627271077009951045792399117712407734748336950866435832437414713807321544220643682030230977155765321893038406693562770832877769152319698935516828629717050004040202729881705059794553028319289573759495611215847527408270770436381198685685332886324698050401373436480078855131655352817368935590552356887626471320608975935100913920831173750357495929179381329654619976087772968894380497796336183818324074956091699505938631936508581253168535882932642147187003969365854289997259832284107400696654761928250160934151452096340868237651183022405858631498424878654346117551041372898805658304058576493929943739764698549356664282683635437917954628318380301715462599654343744328133698850529212512640846475904376868071492689893836813025706660767476653282522235442665164184208276676783894813328421842784180769680349236679496373433055429587814020729184248737489509377579124712023083874112269729188910036503523666076663482049589704217273839417791062499361279242554993356949196580424579937146998387404099313315681626228906215007250845743280579849359774412064028979137095251670942309938685438764429355643605638508679042726182723611855661498423361699485114684180793102018052742778681709707233484540738506063169247684714524404599417230680051675404808251008241066406222643779892595833881897872869427921991193502633648874776190631227038292868122669410843865280470154891124538234741718711738970594835469505084022086750948335907575923010721090112826854885175622544444514115374418161056610155967111960216258356569055473522424590230659198648909146591953402125625690797028979780049370051211640992742560446379133822862259494744483730028876869977219283331662679465417124069717375903059620382654119172453742238481603907167086822936949688756794769909238601094604415365613092470235154745929973769445975466240403334108059185073693107826008807628904483230594991391318179121830204725610429517699607429745971064077520465982297953591094368139794876436386461023013892603015856343927298019208604686519048579002376837863920404407633961855536361935744287780219640078471636209149580224200855408597400512193737317984870217769233763382526477147763296070380232840598775024668225437682092853002854735870301876090595006046041694920127488133318515864541242009146119686540041323883942731572916455953568821773984940585947146033372770980313618085732081653653097749749714659251790405131793514128652998591318931991753826521220496585777319856542990874684002587518866676836461258312823833101439104948021386620218841981934407503379014096427012090683851455417631805903836480450385993008116740332110779544339463131215995839253866015072860210760874160919577732154914096706031497572982592914391305397187127891314148428352404586134669930255599191388463846785719143955653118692414626302556926839220695229204946221514544361240459386122068473959939599820859583976174874437487178988124255244642202299962951143708001350180259731874226447171118854488007465587523279659419788197836629194369027372773791939573418501467113240138382271283791085090158600091152822799639015624759624218770048441536318183610383135993923589243351444123825225544000250174905420062514689533677536249031285581202041141050976514561246290687335974453673676116598908777909436045540575279158477230759384123676226748360142484613433437019175009996600569826293050245455220101565081356319513190413247283931387914231503375362123654901560463095881581716551007951912804652521946412821676887713234631366654957260369667226744439021655745720815597515097609106767456596476702914765864109535049651717528152920744457876921535950577635565490643757324384098773545079545363173822450544812117398085638828906541316414173513366463544236763745952389353162822175748609912764870315080542210600899145139818625736132678717497408337247808395504672912321931592590025612469232151805195410287853094302612375361578356324250340747533600987659564239668767955979651913207560028662244136720343821210825436332174010459268965771412355453830915933320525412673786487735443901375033051382511755996294469063455999700903743205442126234523904323415782595880985572786710854872810969310276362723739805176497405280190094157743365290420885328542992577640821033430349862092626055815388588632650737581175886672133293578308978987524829260348595916204989696214125558989683771219951415218278801480107209066097044396386218598161643090555499691670311129779773099187000504681000459397455714030574363610340928345859726628712641322387172761584594745159561366405499970459918940337104160528397899756373359645156536989100198869864523473621942646845606276664081665826799606151353625212163259556397306474934365793535420470990193587986896066044426031416029646399846933594025547856461309225549545700773788674305464511806365187721582484913587274418335967460169132934426552172355062108684337907759880476067714583943859288563140661585084021326503954579119819570584926299202202502579937532306168634465714289712229173414255356792936982628346602181718886876247358055524135410504822832164230308714796848966430629343839571069142872664069277304688745640261135734936013541383177157384449128685617272349642778414680592242158181830973812149922306918661432146709895319279334406283675860513577973823521990075400903775664048326620049813184757442835995821469696109035314545669412459126939662282193079737716996549051994816676220127122025622949020572256266860189052863667259234217591718736578989085961540692633158973472660500501419402833349262146567422290565642922691210820893768469227011085441233091697695451130306547867407091055581840199232991676094630025296153839270028081887016914630368403678770955689503183262525064772609538870147386833315797233206488139146188280604078402349570645358909436558284621234144311495726196277185689054175521915186928389088838807543981064751591241949232278691664098027114191533380180856464739720211160118864709795071068688226771280913018495461064195746385649266788258257820431362449145543873149488525715986244852827260686837907862626285058859569229535309542619499115962849355251765552390413003995469965234259838606875018544368972627913034013596860050119637897921796871259758765787571584300217517740270492552827841727829095079744793318743620685472515857427332459552667249656544416962187353870088405386382341434942213980882425397605867962827419882028253576727799592253466933245774390941173884822576315306041364786594270196910784766941744046936145119485377444830024288801004792178079062981180190975220327337821035249024673181517032557310275367080676791512643122588458580106254139875562168884067218102197339890922294291470915985257860967362269184596294245534070419074831885906184795535213123208887676114193067297063429188927768325274294018729741118541525897356528193163191619171336202999780311394852342875740673570810355952374099270509198719901063885050498596165754399488009095371683242031559992827597267395580238608997327268919579153733720105498691738618070922787314868700304991208531756667378278172010719474242828709084955056637123812617616259110013333942490244708566762850854668768888916984784418850727460578837123891765433888519425647268251358374919270004711036958697913361800172491207910857959744998506949799893989468020473972397885316865147320726068129486087824649635577452076693905905591442088149292531509670554730070910718844646267850722143214987114778799246060159876757949301328501928740940616423252306454738609877486739952042870576296652761719854239629153736222210926464901722223403834692610189950715319581160555706057195796128406437623547713359095809876090077535197160316157883928256361630210865088924449244883594260213278549958801145201274167536362117765120058554164472417855160990583170438035881660069305243771046485384598890963202622008323993343410630774878419753271920657080162188721224029003661401643862152569409907933891120338878349131147909289617309126546417497144618111869766236140544474146243108925295739756077294902337327613448757162008078472952675194069661485551934694856031966178867141976036136366981386568254888677321861229332526779067642094528169381562473434709671012473470504756636429619147253417494955651174972826991847760942820816297096811357154373058736424244014257987174995590665199604718753736545026812440064834395223870993091455536042217784680342482875597965208885769963042263933122449194722915679300632013754702809446345967778383944595160931742848064346201951017143065705852914817667305510569595767237504446888478876964606910278370873852205517021793843533637113767649351338746868907558130175911602065943662149559999313106140169548375437736131381984451993209738361737347325381056513252760432528445022822943655355294590404905441997757773468854665431390897694746735313169900750826733523392698942987068514656095502453902509745192408717256249396785691307242195981605334796614389023814356492540342231258373298957008603765577302367374421748032945755177830600293153356518990864244115539980723154620889413078613387817634103349345417770510057445676323306107403857199021888658498757750744237477598818657791072380627901950727091586882884623515525169408083281017454268998162352109082668222524215272607562337575493890722508741807011229106052847471456559022333126688892706401971997422887406454408999189277337725493359765574747616207031680183420352624786285171300757755057086921712117549784235609258958784947911438789081522324052901329135523069604841447642930735807129570537724533824381289140081477480275331456168617534325080109520224463146218675929984318301755757897254795584594328937919783950747844900710532077778596286603180494785262362755140344380546997234275505413612903218597528714707322697007630770985154207453014351365650885858130314474262505352611569737851066465587380894008823579019850448288144976878223812118679376226028942811077295276370040854633042935002442345948224236962269963836471606049321543361465681451487067987686429721970939648275107461533172833402697648163235737834469202760681117866160654842334999734512439712097251157780556725845959827093297157720729134089867058169292936104361012706562595469544821190584863658825013308985172622344177464932865003488218581963976906338206299456999373335362028554523732626443205732337852072183509882361675552444398742382581544356785309341354007153410788786911865054449526364865257016639783730206944012917516229022086688746094349537987947193086422776204865862856928364526937260786600198887658411313559577619108785793491990006706802437356030542591057874465881136533402574376635971858941222994806184014956149290550663171881735865171725482142354682046739336100901298123541440223429761285014786687061890030806986504423731364234197426387224368409521865853674930057352692634096244667939672578411076796139905222971218874873128912599773296306558234963183098620082342783377091251820380476241595266448768014745160987561770660126470457695023818948254999246364806791854829044698435789802135626024720948827286588426119206389695522020458873174465376443844362828795046915433553213894564524582480552704943823611289671670711503515812551389467683891472648394648068315775581816291713787732032928074264539690450200908542784344614551600857851462296427173870838228142096517165213309603812415349467864767049962704816551464329006120063094007751386361625196214363899933988164076897413465513171287290043505472956276314690778529239549732659338136742037845493844175862335473315238855828194903792044594232688074288566361219106065542445982255329890624900417838437334337297704626539495121135054680441873072274704195768127675838814891868218841771683718943262052370759856873476198508011011227698985658334876861256017929657816771454459032540882315555828239018935898445808470707321407790566071321456308568306602730204947625045767812830839371029744053048369517736581101811459834167461813588479267177655468729041115695427732818735915333586024613501012498561725489139318708714684119771482095629145984603788932010589336348504251895851366493193970744123500740273597172846840762315431490791747846500673057652797562255764318965141099810940559067816431370581154688752193165811380371355652410414161262695921616959315795854529176993485684242611453729421644265716681521671884194947157765587881424755803470914744513490592209727622423165348373170451279616711450540538941660155333000105625370064235881504162368159836965859088365965341599962064224931023325674310755722443588241877352586977257723732503890921152383252755089675382023714135041463550544105929039610402078201199614021838733084043063075823052442492246391130107812987845911643990303277318472563002644135969527378329011166339378360087835760452643769192262141699246215181626286128395029498897469294471842379631160320284745890397679955621786924044034701702729815574117290180050420057017064815375113181422397391081909332961847375627689049464485232692341243647147316905026879399790190508477473156609829213260223973138146403470356254746063795417779276240313319861814490397735162717260288787969570753713670020837801963773437818502467800021078751772611065032637060384385636795200747503903005653043339245872955860885463294019556464598411635555619513076086764677801825288359244458391601609274191554323238939279281432651097914411007352359883924423429059572994702946176056105570569441221366657473979271778754969806927862102808784256618800621372412275011158049048586831035721712510552307962798088425189937430522897509735831901053692849815414532539026846141287130021498758901639357481308928429220893100393134689604461995808902261952707404037753340797834905787786352194690386134010687075252659470746349506571720455380314703143224308597811301166877697803590949383123749026389321042168649756297032406130223410172006109454034730933618489838219042622495216222731499486110127205357582497659829583931502911254226488606033446076305735094279141507099210218287947710298235394583011287372672419774417556849790328497057646019667077501789372241274402029845905884307846890834647986245427287802197300807711922803236886690832858201132649522451690743821026536878152490767885349899763449980160875730761824475675424080841420958219645386024497073430100714204477834405209608760225238508658641655871156710655322107133992657511203965384091574185565763443122871908561525982316804782543547395902378462934758477271807449090843478594139422183494784975671126270375379930177208835881406920484109563768442358252643956080227151234417668181780826707500863745637761388773980570102339813388397150747024604892973816463646793773427284416801652162907086734350462083289518657569106653739987893926529346080216999253100029783739494629419831662932024899837878536499602761330967671620499869684448121318228667962813448808927650261518350831502110957576221811409974122633680696242207812409895662154931707929278991677011033665979508939735201007436808392313072772160533234258925869847486452296635596700864367265139144643653743141987554136575030308774355955960483168185875548158343644241420401536827527725092563594797460455412571661147630719856737316472640682899417933426590114309582360927996477534640774865164673038243672802611016719533001331456924074819479825274548893944756353655636813382864950924258978650851667160534170119825891594106398451850104087380466421435121765517151660694769470974673880750610243628876285107297836611680581845083449142854287585445991483064955650434915925010665180224033604534189525060766818418035874420244893853636099701004461359733732720686086776313842066326838273675833005663040550193588502966700697428195354263369568059356869513715206068008345826511520606175065928505702700717422617044649203103868013036059943454058116391508924676057609626581495340375973848693186942470746150051981196618407774222461147241365428068115226459245864786896028614110564642694678909685149543926402468216540122267756294886243860191502172110231939689127724593548013552765625837282840200655031911978098074911149404652531564517204873187209507578605380557563963356905516484546277680356680701455745258455670094590013588325154439372792136999957515818850869126789427764206747305214424025541414895508654487493741162995198323908952662169135913939691851185320344042615850671166207076774975990230217945066996199062360903138551278032261752898496222189019221792158252688675772201583712523955365017526327497468349762357409351053439845243157907855746753731995739955708106828547819840774235100450015047553958250589895146748635158737115133268946790921563875853277155241034732412354045175873655348529783050774716427243725007213957858361545514724759776459155642009385410250749491713124836315476293160741418372391559079886564788033699640123693143298917802914345058384193463048034525692804385220957300446851475077301589162649364366966981085132556682506460362819838977180634853976756182829596005630321307163773512994546243118820471934691926577017140878058805861694832423259077801397125208679374686921537391606002655685878810172855561870616207733648066286592576328353042782082221022700835092240161110839706538198345961727487733809842483896516722075388720356039083099200007655255624348907310956788452857090906604598147296208291611133416020198332474017693999718269772846397648071749047214495992941309374330117335951327778233730618520148306280508292710872835106260831900677194702841146501033699469273247834777822365832275229649211116095007330971146769667941762207122689274166425120619179562890098379538852199447031571314787030027351696559518169473100207552593484692821948270637611571192937865028013444842915785401012546856324043359397901548411035513118142151288450484170077717952235589332654020019310278216888224171836141774621709654319195374515802965450939787241758507705802640138370854697733739580788093543518920731380322275320863976680186167909173927178294122029601589748818148965112414216069562023749449785035928308713730291197315359292661391451310162964163684173873712995015867097084536915846041493092019648888148234277245032452247557412196149619760329956034236313255700615083564035079991526834786042645717414033369681047075620318032876907986581315968932459894674318713074353337318843375124418747990199265885105896906719593815456295259936788727390715363612109455149689294529798381533736241337232025327648375182374246572868982640992453051453215703515146130209691803786612058021318847936289845687531539191785000553559083605989904562258906463880290495573253060678522443934733331205002893455255650648446729724225377602844532051010692862378146233605885256762223319498663693189931276280629164803150286187163178249269984600618946275599927364680493692135438273550805887711259049719248327450736524894284430379997317157201164139799153497354408807704263771610287249160924923868736626813605601450601014239437074544180345615931106544880901171109626302980156552509262380030035973395930597219792480076282718762329474806368710113556764720821259093449638762029038354449152203184565587142504383313584586522550894822269488668576388471227060414630594990530951544104791116837119680240857306163385357836121976340319740178668370388222800250607863995204373696453986987352092353596894075290509181182504460675957036904932468359632985879579947725404962171461027005699455337951071360917670358012517684247691224381623427350158437568419379898121813310768860994362760112917949672588437071808061989615402774179179713635337571367012135411002103116199530602549343468012712310965752502683694676143749107860185688023518250550053369201457253808396381293573333932512327485796064368687289047036540892452271470249092947352686883595906638363733193375192978595394955588712383393443039673526135963748888911384020043366268769758605932697205814373602736260554385360928678227721612605909209027819929387013600845084395373442114032998667169780432991461254368258808861362869012920509393256956382518116180221136062108938522127809489871168841655734903335171354847508732714928048390785486157094052609118966285312678798172038866677256842238839453814577306253732662691463563346033148631135631565738594285818383822517588337080477867219345905618012559761226157798045856529281987287629932790032125990354279415762571506081443427215917643002861860836762520289732193938253000339621745536155212461812345869686083399314169048398411243705133958813756879810472975618419532434819250450701424007054880382752250486569363604538530654053327273989817987029638126383030419644986591461450798793369709410074838514421048293473257712856247976015724027532330101033051206197690400116190093982510473552158675908131905829970220760063588163234146550054992844452326949975643625348857190358468074946880360489517169778815388241137371285953451724026017747847249577723491270372800511352235433646318943915182872737901254706867722491163414988315885563695799059212419071643469384708872076108882919317457183557180299272736232739679255033568368573743601698484779576473388684423821895713277185618973163609492975366486680655051056824363856553956209207495964787343142695905955330532734865773164921999178135079075455055265687642168879364361013873251314849147347862122924954238814830495981605445986172580547421823858283093030524901571923917328374373628948787104227319157508713416675314611185828851073982954768086376382816499867252065313048543908321086713213239047513317986797844019558405494379185906180016706203370497120618332340102853026875629992505220280766476076010472823914908193493580783973548021095199290212455159182800065012006858197291411805299910659579012308317649135932930132426106483352660210574487172841311977719515027042288163739462105699356839390301945193518530127620705037900467079443737029731514239404377788645026625954626103258023761946441131271287532465214491662027924298939091893640850516985867718582612055611723798601181128628589871227073512494687855373457048246407853459290562672630442333782864788935035543060680267371968143920203612016736621457045466832222250243703082770761874277681473426156003842818467714647340253111497789907147286053015553042006585061634833287710312721089225184655669802591426059158081390042731383608084862897318101053324789631516191924033526044524917172769662679835581979533682543544459116084066611732897559291142221535036359078427237723565930813251237588061850210439259666632664707768439572784702615831651725821942188473043422811792679806041958777432060587015896599508812968656288418657514433487706463044442259454235692253476555138346251599387387886444258427814871425104565732759683594093980656331859642805250815227785993291404515670057146964859732657493220852767182264690069606304526664509815967272142975797290568997796796967992210240265968172152989442113282296579649500872253267527458866180348450389175526997908566234987007837886045117855372470610428502876938327081604527846127323684714890548068550694778387301611770896712537274460719770788594797097610988717851606175531102791873438761905073255631409813477951377872692906952846958346727029793621750935800608602683710102727152128820484014651380426097351417794555962226264910643768802112723166098260782343093364198499629642998663629260884622402306569444630535690122055115023345198020696852053391089522630762420608962695320184486970790647188050375581182168509100893065734084853885917620028169144083574860737086695527467288619106003720365674247080148614523903286398597401573736063705580424148325658527209595906017833131404762465029595483270804541821214612631569376573449696320706763411001812471715535504796502584802110453397590207355121889310959801434043162295499291384254200005254106477381835081679995235058011207068742322799232223036992268324271104107784220384243073244974830310265673276543587887962477050426598007419501683306274581185509174329973564723159716321569911296996132115898427521068252159126361801264047982078642807071600878029862892245714445766381625989471187219178025631874929955525793321047673368190188634929804649136697854422079277487778029389497584855573865842091234508646680315250500739837025196101873688906060135393498778494838719797450765366461021797864138689453647554951237022561777957753032120313530116826376498926667083089663571396665569440634010502836785790690602238227831602115848537427619595263902030140597880738285634605991201599388023371345975069675943667306727990217162085447568068775885592215922419809348463617335568933995889104726247974462269591847797910460750237711821737800652870517421803645035668954356345923777542084324326802641148996062735303563525181910401743100291595621631765857016166633572215751013191856159940611511167886682769443061984368557302498965656366325590805427405288280935298819419226712925195284549363097298051424271761421221209907912954571054730308313493448688510365403295172473172627908030884623095275801269078334345059248862973686805750338890856017170547754364725651480157822893868358970656079883049356715579247262197111521089020502921393555512136265059177807602180742609167521458190641075191887325249913601248457300074805221159663567327826214028116547123378229768750674356907943137722702083697783361831754193709896052895218103733603654751313856301499032520364455488884332348589762457999175662992425566797350662816305792332691662596350567599633732230907189407771081805985249692410398951396259662414120097078777633597792832010609053754047221193352101722924320669278141604051209386974666238667664588636568804257783993505631922356549323561494806676895242152812611286928093200541827349627861647573836182729404092511998645053800490716108251559996127948663121933462207548028019676171795597322028325688967030633067118461169931569873668770452941892801354947957065465142888668812966667047190023190704258889082610856944227806421516923649185304682290107552541529833579560411837887058364559367390722239630918277299701672905663314174992028961718956756028974145981752599426493005074281641440933982080860707583340113372091847947385188314868850750625242676271610781423887343829233763205394049875289435702457856727933180480075726188235670479470518504556246711638682669188503929419135026111719702676841423820542673858282625561534130403129907615325326458059913377311001036855406551643475623555681030152306721315997185040838284912727031268792871421648320519337001982606693826585931248603735913372061709594469779157814444249665269332795169694590579679906771436704761817756739080119807340062786247052329695326394103317386925726654465222856375219598575779685436800597751761796640266843191290690946551875606365272461901315737475143001796154439411669910066507641674400333187617201030110366312248356066744300793488442320654739165858418538287421886454291182147648526783287781922276351554384624336917116548030525597228102899918732324566924112329499972550063831254191642445539038076915511212109315326616062178661923141434904344155911067609476136032961462565227139370566576206635759211615060127103519932975484674410967823371007592943238442455642491490960257304453747234288135477478898768187858439474944737788411118827036092737397326669644410487478185345710524902469303762830956362563805665019218628848737633629090305119645952024221432787041710924626012008357714405730919610688148029322597892178812799401412877838026312276175993414199550850175694527947299704411455984367203136034523293896232126584546489891376025006142537937350218301935012404794479218091553902534934465060711612475797109331755428426516774068076138193425857564145149446668057257298917664321100393810826421410443639936270093330829028335271825168865099036670479493217967545722940539279724515121666597547242852732674518923215014404421849330807595507288494351599961465375844992400104493944904488307959624250385811990263127889636328568476508391917941734181673120678677255995122760010703578483449358629661467232992956794424237009186303825164557066402981407737121693016174096831373376936939603022698129952256185448723656372023031195978519426544813530129195991063277551329504709828552539944371372259806102956765795665620305400037647986344988116170937133527337235799704634144657188719531498446729033850610857099223032310917124266187054567587483437436323407629353367726547643180722843863110559724570603416283785782170219593089879626020814650290897759284349858183349458029604639543485730551400127301983564472816275994580782333234554914123290155631653279530002186276657826160726121670534694164793661315791103565526688723839892628262318036487201249156600414456939530374174147830525767307204665839016743999288322373916286578475448616155102260855405965834408660624260661856228347214880811601076812233827070978692216008094853431858975417723695752953713807564651984205639735519102060625421976748333068605959654365808476575262696545461371776278134529626483086505818146325198757823001365586076019834531304336821452479050636231006679520510749559529624910676374544556968957206120751281112251893068290584969919045442678715346945199495494993844252140683410784591214095499679218110742164714662975431797210014044486860581533618358364886615284561789470929544575864608281587736066157478317142288260593348350963575191345180425926096023390685245807769152709223605902659997787948346422386142585249902370294134127401246066129785516191953341099450918532997752143989636034380342254962003375830635617724951735867475236898977385398769840448830994120307658809343209907201729097106476050444205286736922600910703400445526953383708669717680777615673004763267729198797503613049840438180146302414959350533802658024465509694547810597250271314127292397720442873837623090409385615336517800644811601883533604005513789944859073760357372583618002766190349067095689940240339420528771268376914010788467340977827735144456961797423473996655693967883774666736148153441898252293560265767335768257708306004922044916720251204782448815835570569542501971140068381296604327831100005804981526383031051467876129956537413299850692229807623987722042148377685149422811250468102754229746349517305864104197591879588708525867911205882019381284326698699297938227134784890409740902722208202391477193604225131451742933297708256944169894580041274793353894418602464652293825518704109562757367305798339856653295853430388880417292102612005010923219183204925400367670310095804225722203168304675627577600286586781060397470576684382786684515699720564292036978548976348636757885236807837972305658509170571944302915685864628913695744628117334893530485099318447433329016423852667280760712567149556349921176027368116479905238136129184099808598481750918106905889276526189665685002794194085066687672362306498128874742210561525505250199844746864605097603612448019963886192781114563461548325939626786313740156580653946143639134111609997983443306361001708939392260716720810863305612408462230473995244033553088428326309637782100815225618591047775849157327638465400008874838974596507598441373985146425313729156295126146153556351298000861298812579665385504543341519568888148850026368844246177083602406110908653661938102604990937631096652291438076719282093187329488266750264075623924845581645529723941195180834138499732138915386491652451153007169148884273234847366253888761798698133203721789922009235444399953049771880236251038808344207915528932848267175513122975170901818420653142779805504143165664788322414221810967487938932590701562447109506022492243373047171427139642184862655190819277221394035578851940699689087341552722920589277644438636702704896386822508030464580036618372504086604231998114985028601788270744232187348741507418420411844827358791800279490765193500913149106780253742359030529913188390237030291107636188529598679083563530490816187351781044396119819818734066185608079854239633759675702406161479966849766922772707832500873896954778700999934571846131338347339775029230225245354092070487616333023815031937344932553391229130940957721289424264071552654303674388078396968328183953930370550891029908585048839947502007264332787541584093310020371587478806946092587052938982677419202578554609978801995584086626275630155799193998066815528382725147409158100063639346373567937349002588521327373788283309605593667105870225253866738334592209167806333226185583277285764584656821649510209272207737184747911037207667799324756313239046971775529408674916972833876917659820270828019212847477669873883541672815336409480647349654861505804010347565409619543558395228045639426487254378401988171243443043742448968246730569013930889084985412645728863800673921035026757892693192672257975755372838564264114979065479999064810024124765517906968756981322484660171443832249738980946509589322414286871880429295041350656246095974986998911392496673331003536837792596670961302403048585172227751938391588422662700400359690988749435280455939440635668217578696644212548154100814315802307142834630680171989860479278812761052331949461085819522334176446418292034372861612404524478723376231177245745698690224143269943745878016849941088298104664061309605294223852902211662290755647351377037191623435829101680692615414311632111711856940866199283826018178167920936037777186402651658649843861764343696755343908557103384651056899578775367228605092564903799295509753141100989878275625594845893642995960778059933533846588027856008788621347452227607162292434121722697707354421310899233220986988670464401667321869966350806549427668228606039764307752151850802485085483523205844390800198544594315272922540628645485429368843119219389000165805545017350582461425462886797131212291937209792598908717298622009824696058541705050355527535486100331073654161847341811347536238280620121747719199776918508840056257833425839009561662291179165594130972617099411597542303005386941589580700913682401653955518149033312905578081031306323338479142517204103417165711696741760383479000745898814948941436895947546811997510906731067738629221163264007959100453409634287905228642696368748305528785261982529830525378031324857024868414303915512794263977883958852607400793478025142718944527644244183878756587555072980572173018490498792901654766123820477043898678608361945841390386184779637556195155892602553676413591929876239905023497137327884152720093286294713145161767451638988080798315914535204894241797111244353473584748063442604835597256603383320430378540186780923973829990056365526061954500536060067957344893635471413479111708514498968592217653339252827577935699080333294718874960458156775555714294926113814829478035579141623626166108134302609059487501167796883198547475610948652470968742100129070084876776332636096545639523293925441558635158222708575957934407865037290865065222225241739647111201377178504446574323694221952452631342218580911460345118929465317012830574775098427327011201792644002165690019466481575668523234808793972041996011649680736440553849650182110488085353242638461975335124707859357899945433726226486984591391544913837444232655927021923186512447426471512681193665408060571605577872254258365173799556435266284915857000718017180125809227826489450460988840963080452070193877733552682702805511244458228639208916872649940101819797657634765455981705216251389287115105881687017715863609101009044362100620778926918736780599592294041939256570020339602720985900055764003841531012725521869413179138172547559862654943974787935576136785031350809935920389323175452872146553372306340003902322154510132224979894811113485565908862733182848302109446585831940790901198788736326712346586710689407667689366765517557935582101172969879285349435601016199258027327763030551733495102930054663761317101514167023192055925342498226652225684279519573078541700069945672940135913281159659323342152737357574209393740518164293022603689782497288810252147776983246646134458874008938115982662367557870471108714028179114333409950252101073695422663138152533702516043636788677514103454427819754160019583512206802807033344684830197688260581335937298114081726047553469822136811312866288231455184639089090439702180004074755121125765479440583820540165010353896965779535162329386101305078778574385460977356038061595311272557536000658864452375492774093110148897047488823390691045649821830122620569600233717926084310280937734513992824455570111694199987789890699381304816129521326514406702634130194687390422985105213484866593018286694687513836292301048929774150092122419183250189124714918987452119212605909303222375819598631323304140808816147470652714619398895228340849811089992167646671111048917236841200005011817541165317629807624283707858509865222545827898154486513653321922490458135498502910085308195331720092997698652705931872178437507702727815285400660665358265260017316184949999628704714080077036319401537642714861560861503133439957428511349022359273335943951892038374625217691171022355401412407234979096425326016704605265649728693709346411965319862809065509193214752235784188000945613327640291980186958527561865798104504566531090450232820458936246797152092516560521073627096617193072432349406038324015004822666874237328268668997530212778318155026268137694861051909480993731686633793392324388618351594273706480251327777882625232614642269243146659418821968673030890196492230661003456502945179401241604905934965889897921121331274786822756471122963083309266414862025337840942475797299725441382948585652494335807236904728404366963112843440502751994482002897608601009853170326859564301300286420630400981451524665387479621322127605665185762440848121567404566337483026379507570560808080813973771138332177494627473315120579318911796710994630865037678080078420130042821745727518443723867719914077573660040978485998503263244940235929685735674120273681993596453248140339069967200905308394836781721471006941712705628989495283798662151993661120558774892545958974628915547770669234829326600685269411036058061679792756002937048646476278694543273108056795477583353999812412667887591448371841963908655743954594855547892353119423753422409744905338490310344799080775462952561476397394241159346154491373287697298788599752301930128175531509449603266148642673729378868038367897473045060391040911332049095463937064869772194979015357878361597625902522552060841437595294678512466832008096824102474296966816566919353789873666072530563871868072098104163070527536974764654617697912453636784611509857099423154761277894909661196871252976052593612709282702955545347950351238065019958209452780980351381849336472520965467539877114213614454645563523061745995732831846666411270654420561888598147103697668906579094949694476919650016353096225494824281098829903478509613243441812467193672264844686904293719464211579047207158421633376542822287706544674695913384286548084863931849230360400752822605072220630212524147711938149044462827158474862214974983361954384778397258932996247923748573187874849452835955843877697177857023377826518509018455170468669636580168956102810709767578525250778612794202706455581183307817951199914199246851396034263396487714214434248075439886952957253160565588035346269423477359240419015985101088660932557662058711817647223262698661491212663372592969064591910280344286776650003702965766687635268222123621147160414350033470468999763704376761718047046302369945139310948714562544368745548451912686257934607240865927084008208351884720649018066702835042500307400509215971024769307694355835793258191919495314577452295466759276526225642135843696967615107988412067700341937517887259807522160527933395279354001092772169247499962466568049908458726786782200154922738896446309781590717913742069066349851278864084566699142693255283674787880390155497657428860917204317827924969899976361621671000539601504635745745171838977238955812948434323443758706274984448812520166123499735640721276657171717235916198553295172287274233153870425865674650764901722785045083146420944593077946277061194246771396616526958934919938559799399839045525591162794516719901283150954214712086492717194283875154749578910719721079149892848866164440255562418979037860321083944394822664512151647992840518189296992230447446163301981393814804613058624864623468650457380570502519467315310607578355379407471793417102277881631771194530368332842488093645023043314822691255884739347616105367716490292020276281045978166132676743910540086364323114036672576108067841243654617568991148587419464402132255100904299962821671101381912288180274395246219215446567001703003494359850823635859724382362794237261881371077586442844533859469347177734990558573657724071967460551925672054144562112039533244160477999275954080356624238889540859978516328281042741671237005677449562166901313057564808293412280054037141334857447305862607784731724214475703087448514243248602430354850164777874404746699005068005687563519707796420845612702113182003792375279226590616113037953164367178649777004752040158847324939292698260100857739685198143172635257082057866921520426514751132742002616368008096218506470309117596838088022415422854478878840402136658731667698360409485868333023592791847532777170224709684082441943434964523317643976972145312429139499303066762151290928844425882791737602050229039086093147720242102600124279242587045149331725237394155126480462816280018425666339948811837073299006961967931382044383096130668750047654611583662763619952280003878326563717482464256586647904190910383008758310192057403727029204695810343996147955999771043140344929048252590401697039542050853322532865551300635675859584706151761929951784582534239826524892519980559794778455606536264998853580489419268102412404557259262763513885446692935761272421122162761998113120437338023205500079022776281119187523136138078211463207061930188345335177715181607376374127964501516238091612210879328959131928300798845329575812342563525967034993934386971269901702589342726660947445927911269446111830829439945343060100654940538417754949216558068243419574964810372871094201165911872680051894948220800822789856895246583771573008410923022864293010628769675428209089332597780744655548293829924414249786712640926255043991426380773594522165694017078834661720710703841555390770508974943047548460512918661751242570449641217372490783280561773991889331859637390309935479891761989524059953490803982693129113308280528473616960179445777697207814690273829191290684952090272953920914117040784255773550043773209079203944469445689807865762483495313287358815859244881904895681422039035587378795476719530134264432515308318719019261208403187090157630589657837363127399784580787235663422302386449864305098677898921479887005935441890794232931695464471517356674457532923220644860306306820047170402080409259475613845391608355577319162368318215766396474633537692722196013947622351641835736295390854399004522772938873728275892848569409086629837996069795396677265850454043400546832282579821437132382582837983084318772711900970153224148882592114471449592786427698420000271496877011648013618480371993724907457853079189615568666068844286160008159356987020776946462922176589653287624764234368457318088266198376707059693226432689266081651575114343141212012270731182730340582797897789415484577463370719473681497702260692212124388891829577655809191350509150363805583445969645934902014206809167146785773960681860712824950562382420045672903539489211656606132153715328005208809903045952893596517828679665132819147497163062939493022617401994300014317181675016570819479778881283384168662724275192103254823599007781531443696608075964432929043655481962126570738514999673541534128112367434705737046904648269255326497118690823621742254715710880573463771896867081171460166917230781082422593682251033194587657037858477878382636155798204565161783183361784082268720510420086140312026048218323809789501099194794509803263953985904646513941748957923462240039605480234170903219484529420464005718709310985004253436921508258454260006301735718329731824732284051674723619515567650833535777452793047267540778681342292410873936324126310907401846631797195751022304807250887715767199660938252437082415038926145033732332598136809201716504783546641399967028283944014954323368848501961647541367382738583427940497022479811831602433693845354797461814360588994637371117247319410158153048215602713370765937068534350733313581864006393717147577541605465747152146294084451514688622781788771544929314443118049241287272192147647452085848349651080065527599831088708845895227404852428741673845630494685025673134131783380720151252485594808085892412600809840449051283047389995401821022615031279926846294234274602004971593347323177181175421139483832942303101020580908368240242536369498767402680588615617949200494449178839442072075002725576855379450102984053169378276848964047430213969006157903153231481789008645456070469136323706190145066705839029462911295414499905386924824762709701188027926634118133584943454636884904138082419496601795971605846169037974857781080139179548626401432023069246062511208017556602070780864708497290635820144538967817650577773365851750287174470364558537249055096946864900593788732551502582158177308255404870095435876661523170587416302853363644730744640696087145983416100552148161856307543362160362841306902821548619034891078451699850929802078708320919992371215482021361591903155455684794011189238275448026153664248484575264339279349553611671864182827390284136295738168065160894249769906988320326815013690805645259886186773253404887473109582189039510165738214977506789697933472519617116771112902498342838592498831714889665245815752741873079073943202518830409597591447034074788774669813481627303046606513589870558011077739816333041377051920017584389426868347608269238699872808837972824080734377866151176203677002229605266153096494403986451028545528994676398647040902616892891230398914240829201323473431189885690633886413529065866445286674556937392045940452173863882895686357489714348934582231027245751523755513335028383095682647872629377986430663823978816049802797125429445091525162280630750302302623680245865230722600099843270320952790492377279086779167496922423162555884872368583122569781056967119037385907604978862257637199869706991952819286128239252830591643537176400544103858590613299746329632320036572276487522123726673089201152712024963705733655761361998596146042071145027168880415055954580098626514672150114827959369256350361577328050461243101732621369879340565255342582323720264070217707837900099170126632950402512715798028084520884028154983368741311138422543191137744526513787242037118113285926496014987224520868509269292373574099611119096745876616341096081483990905630826682222933322507988009154127213549995788956384841543745186216466170969384041663775793844969939942848883741931055262690036434805923110474650002272793551051017538183415477697192571609530885480644993157468186475886062202221993561083412333818293944263296979102601326599178401677409601269814187763178589930979621561580137055115522777361982716060867325846541017230573359805683462814879565877110902535995654696655320800395251193315652146623725750556149331430493846131964359035583881597052844180163373858511123078945576012587397962245207094419271112754523242974954863571343281409923316027524818841381132781229680432920852815577065873109280978441875608525052915656657459849778776466882149493534301314049756235897817134170684026553870246708910218496427484538841480391638964243058730452003580729861404929037841020798967635713469219088230664544590613099419430373289799874884376407052772867978094596792908810129177727935508625625834982707642384206138419670528969130083565657694398132337739043846687378735383336041779557183534920396197843476612684576097997432701759236004087385912456088352050528412590442709117686839488060574282900624683386325247123443025113151969451759249137043124481224305074712032604078822127703964033185256667219760555270121285764274886739741181301918332753486213262372798093754413751879932358257344078682183533191171882905418116713887704841042270345699417499873603544135215062305433138219919259245591670977151926223854626357772650428634920849301491708518163903502304999629369439513475247989602984542243142262879679980241296436986872277394041910995800688856460673544442811811281025333966571663031935223886205009169570771672970605743913520698137413968001565647444337119404593617535173698354433585998540439738872859595519251098152867071649767313574048055445745762453359618485664202065502692297639449860668249360634605266949844084720846912396737133022480399080319166198098354948772603397055111409147756003428556787410418655583894934631960880164425309497791957937809684654062721604198400788964193641275292976382988996192749126149636868579210962462144632380097586610986054507307601020211487386409688594321191648166686684646904792770883139365786064667571009231445045775048832169195851304846732130676579837302286765519619836651801343593090980699993220736744594924972271289809720679615896701083226294218242975661773754847865233455463640953587194915412870442274907195081273243522394890985146871270030992086846081771674625597643204531937648356211558536864575318606064949971658806896489125273553320123446304783492688447865503977173091585884092798922130965584135565697820839738521517953555442692076282377971691361595188672995978489658473700074489098641432041762485524865950524531630998183284296444050540126023572191423797106893960147674400723717137242753790395805047133023249947831550183994074863365455269146119043150788016540374171909354923484021390956432917686180431858823740643438242888429961051650626204231618640882095800190323679746295194931292454833713028851088830693880383086577941831102769199206681019082764729214181969911751548494853268261225737762770095687614834088676366696601870506569237797746299432281377794014010004854259356075219461117318657747821974631635315843599092678263496452822066843787460222444072657069727818145971879218829517184338028439339293048361155272344288161481275934516162532732277649806867212643258588401471671060830388698466640733920820747869695761237411198520377389799259194119733419688007544894935010742439169668986319237047828096087305540414766940181655322484513111163132092244459523422427139323290053410964630282183925131701570523938805458940393989533863704136926398294802696664757180157877070796628039635225569932027630720148461499537254801192887796551248995688964865800786811360897194981735461410119563066241733522175817787639833533301868977740609057148577836227811231257343267780405247071242594833790414817914738247036985292139254001981023739058988590000314977489976386577943232247470316650913281268683722260755219591458905120557023332980056868496389725682772344574643324997177193798707280115660098008460711904794276003517798726423565693277145631679281121066605889314445738270502341070831017145476890580291840787558247897552452364070433230307542887173517472208182457009745638367087417703372449427682365362914009319376729687115498879989145199189251329827534881600194431381342302034224002065959161925609531311336318661085033368651940652335005933948034414530240293333909765414500750580091568057781776832847959702989221358841479576576702298774408829863489855192867724312387914542861286954098868688051707164995723620970525696598134203598678996182211559388657574711328051180792130439615474824665199046468329123278759458047562928724048194581442139330319612828458147573066116708925625031244721938987300350572450648675964794207076691610081741316124123029385851433268177147044406845103983149274281911313045611521627523589938159211367697208634417600633680000634396646565029739184199619008642041939626791967481797719542406733187072202811768204154086004225178094877859983210672392363026264774251382944569695881033204983752115100319283380062161914858485509642217552356597993492766142457781043162566349679500318348026023288032223688188467202567972357784116449051818330972564492741801886414645286698529247316756877611844702385194266697678831511832016891551466971694586201715258708211683647952689878965654316103490955076573601603537374155121243487482109950159208091242339476280631501059255758837242952920293678497444863382751814502463144967095260182940625481711067423721966781013336968956417106273599365168076109485259335394407507231921272772895231380949820579743280822731792518694930534733866102793501621722674300892375979875736848016500204541031553100421331674803410604181288518067711273220457257900417898842578260015100293104534975595970605173262731493351372530261593131265865847228881781179916312389991828120092901742116530762645938918304001841063775007003773296872927536319223448545576609372973161375868366828714900404200660325555091957187290889238447240213323061591318162683785384998183504421774148257742330608390340183861133217169621049485916787063778739979959396702489047974954325019217744078364703072453475699022887844382041861704379045153564027814106961255806708481121210145764662229792544973100588630028445668854285631434905099045139840163228641437665274397629497540265110096045448037399016793598769937271333359330595630778659072472538348098786065421057156032749415156733424106312538500912240476379092663568426773319384155239257305501304384782537304810902264989239642008561594344459936776377788823179624878143804907114422553724592652191157961277854082139304560665810524424617628103152856955287335283761791199175171665661035697286300203892709909173071795183737119061698705645313576781844355407845347245215677980247115421520791173838136846127868015599895979078682193753114336089027898541388544387405275690286810188947457288479747975339171326635721818295885204685902590594810482867978021334678346134854866670717155175699613632969881345808550322185602351546803209301344725443698945614421578873915044416255759306246863674986102181386672479977423541078941074307962527795235637981624089178125693544316214698462705266445654658087790662642643953955306935127490794814316864481220914878633782527966452190169046187943784104265488531701143691668834077307567368951708767513814380156367744212920929852401054501050999960099743626108125305536516833904783536742050120627388651552792014852971556421830206996292935133230174990763522630446520132253952512878426214489257216494627764865281750171199349743068902005632349811394417282550798705808757779364325508911900016512301571405809624628929259850686862500488197933338629532990474913715607916369474675349281738578055494777872714446742360119653565735587600767850567166790807499998100982798614858546982421067446805291098980455183339152493034531406685356340734137718896139833934202912541753157252767764801321518203627029295484958340299494134403842602855563223340166416209976074360226279292514798380162162444374437003364465217260024107484841141541892116902743020963153756714892301635222080100217544926654592653892258974843962072874980912322886633189494071846611966862833397224546383906900046926426548140761518558645585044390272664068722262273961024818480247515251140441492165624202963845242561934169546043657528088408260175031084538205962862682170619659070243258631381536229218965186300456445652452160402253837621100622798002850015859077308388998167744875976492385498553267969274009597641646318729299799602925442751205236558001103587709893272493332433721753677134338576632664139500758882660355981436809895787393265867480167264182862124035111124298707750082585181633820955671616448884472761145561240043735925611434453278250703989330457749899168686552805286941314198054332778052827044586848873830446003333450606909330286323265976233778587887248687905529544732477387771981717521718298028603773635945898801883728973046003667917110189554299234193093699866818579830323555827358790589478800266861170411054148308031087557107061879990988181603175287956427756075315314198622225831681859166236657261434924793046908378570573014730403080206706738547134674783223884139711803634331193872626010324969123716929718114925439971495208700448337738314299585703928043958215828655488193689304194792543690100898014942942574125428465862063764784192569929999539047455923578208898274818166061233175416261856476954624376550198129063435190726161086547031201442318479541470543796198858113802873765817731232826053845541718657865198753320399076611438113173175445800062466033526612591667725232666075303947583148167235169520554020498008171952644884360783596803003062645009902514977702316618023852150301992563537021778228813373442281284032279238884441550868312769843115589689870037909589115796604738022490439546431894273157754884245449536765561713754725948362813168147956846928390132157563040986059317543806493439860661994679004595863543570557221841453597859600506066920587461367498769994458986369851152696951649661690772225765013934061876401450142407509738295967238139857407618042961842730540339543936632540606616170824150187350094670872926972527069340968981946387074050846296797606854131649182884010683556819283369427632158222845700186488621022227318914762180976859121830682269616236533401706368546865171411501330365517048405906475819867032667778673241558730651343588347369699300683007487403381851308374405924488205753124734243858340025734624352486650672106089011844933670611942230368193215401609289531828857826939177844380175469362374305379107950583088672571412965055367856513845509067699409014495956057518439126801369086517262768152618509857919964859116922752882831093152225064781301162582444431647258216081845151881739695814295936659287253925596331590867840540649396093261511685817019548598986101955520503968324923380432820393190998511625942805869710893164455728283636151835846560788837287032982526746283752385197728142640698555398225484513762936689746451827190597005065411772342841200013610939996745565887478229954941675378849636626530916961298531161315115253401763060079698557709731366319128193846863094747737404859421766682380516748810779671397616910319102277274010830565432012415160641034330906055559295793856832121276670464041491834324554088793955414102753112554887792151502185817030214624559211816308110721103857171522842834217571538107589658970775887509551615322910006078906652804400215484404144363014152950233441871447841737876163456342136768590123371875473263161088502139279731510421550697493027571093410815435180600237254536638553363578720784223456747439564372247248176994447015643328587968979386261125194817548926616826591855676731830391852895358201018848777695827739053131162153077582413711970533900192174217506878150349211727368605756609664965530104273517005357939561964702520324817402053125475822009688296977047555670477547010534610981982164180499874853204882552787174855845672333437077282199319724424250533811847474463404678923825698909644113738274190292444631505443702408977037460838596894523286057333475195753118775263231263647028282020263253486860740564330453607472319716416009662866929419196449569963280006761954851827398868533267844160875882978686211272868366398491164171910869590289367010057481351174930292966905515976175424676630725538688968084463852700880605709811848760482144805996827978943997503136560698642759378604936085836762041702971923791698626616997587708857052104388567393517298424765696665909198998462381965998149815440529221373806253020812848786159821888721666133530756736333326168299012760627228307600019725698074201005003650505133880793822403356872142950046926518029564606687852122021376539574034162876644892993928411317426828838611147182976158489909942050968399610320957296016867708754719338489465494695400494368350995636051083419137037933077609212548855813347619679984175234434228428746243120050479298675414801295369792733120004570016229033983150362498448890913114587921612008681268506190685564041488828918498943834685595422453537784268842426556751616706293547376379209701651332385261784560628887207757190612012015629053310598526299837240360145841660469030783678961826191534532294571020385030895965481482409156729060352723794551986475004514428470690174981175602195796673733488855730117135493977080494333652182758772235136192400819844104154842989777482651064801997251129876992253336000975848577192597095722682692135375221400182403846306581032023362793893574136603540162631237586484406916910912520045699762350135187409119387141570733745503256358403229547368440348529954250296262105025622819064448490448746549356231154127617974562617401150256217700125039584955469861667112160629021434940615865761049752967978669117643913012657226702109573931257474963187211370225944484940888412599625750164669290098289019034336087088178292069646586197306783734379117774411773242114197540190462929504053559754766150518408476306534669495548941188557931922323246120776868943421883610188410085166019047727764584555611809660373009839021460162140213134264039610858999911706302266870278620144695481194591503235626410309615447261032286545327119346799481302403207012531301432728857641534292069915885209794418790672485759908667176069313448427310778269653027066377040196889992890439247219392445615895115693734423627047681477632169274331914339809058730560016612858328709784761563942021650483500776211061917889759008179471878541640453760471945864862958336443459324249200125637702051553484712558935433946197540122532563808917728386412611815175871441854230111449839938009203756400754187825022954322995072307075656117933840429519464706789487360159486620278091043903989709871053605221919609268920091633163555410398615184828508402444512900766343649074703111229833280897639184943502327684182714299979219486107879719422860884419796024009265584617228100355976083167936221370591947070217475826992289409802878200525733063590795430290255963488190746275320095445169053415774656917924858684398963563069712995124816906310661167698887694347336815431820904839213685639100900424146519239893064999074752685504418793899065213279587985561638808841904473153849823873005345641662191181687700925993420845247244413504012913809745507956936007598922948520328889369228292559632487937628531571497606275614476785670792330818753176098532275400375155160048942047033280552189538165082492094857436235717274604259840991854092575915385759262209728820097180187439320140512360300276603471732509797951704847429372813769036012401057112040512711347366403669700397698491897976861143214507893197087225506585534897855861997505036388363369654598255876036409108696652454918995006468350528597642229861751315800036121403434355460525357784644842045041197204206965414521970643658860644445266797636142513817097860018133946632506359094711487246858454380452767682830101069863664321987516886551242429867398611751098638802717434434869312285264737684565650654279252653335937796274078048294656914243942790153815798245022448135518185797563315806269537713141761400301667098663151572119610238203719835746869815301319230210505013680451762523330094907370528999292297093023877553998010983488998219576247314211306245438915673087796482752072543702117150257946922555822628448536205844350808501388317080711324999506769622719660216188362438761167478096248397141313240272178888074732076868849128510454125951419239674923795486345206531918151295007228017616635499657241107991660190763333656795461253067234793902558871245299752122341626068825256084760617275293291730812742205435884101513205456763828139690480960615212638915233357843812064047646603606423941306729924337689203597309839775637287202229523504215273172990521226008865273605953038207891290606121151821343504554065709863407358865418137994095692223589130453776348325300320320888868149042867466734043567864666004020844131759225018900439202028419918140353316462834815914300447972735734792767757883076532659260829022562206540053867788179133711713248820771824025358486903427104774201839478332063659695037385713082756441622624187851587809697408436151361115760237325335596068349863735929993656012397529207248264953039071388660205403609566753756727916368252722960170403434565271418110050998066298755461066813420458046974571251979637867552995648312029558148706743873768821061506898792794978224181405313603287695444668368792382872564313883272468132588694335169677515282135269448704152088035460390337807445061065036595691414778201961478797048767955217406184251948793639607450545285054697813206643002292380256835854897283164901322899168392118597581418086877457273453988371636022650234963934898214567585648154286852818869682558223233401335910120078595309786812199083360188763209556285785146538395737112150986183481100823870245272579279202322919093449088469048299725975806600277040089600980062527262572199192402192268141583863767193292127332836886888512803939428827030637089438921832261839836565450252247097729118288685310979943463495382092451152431119086990010432977702128564428217829351945750764309681813500776250345193545496003430885655667776331662869479081679138240519143223904712699598695397223818293319290514225009405911395148717852811583073636437451581779936350311719752918988675547550589203670684574864371615145396986154508097528649968171250192598486735133585619704496290965622644145665949911236269110327683324311531988772480363466485652964223266619007247336735308959822043671396220855937391698545243954024005961006153099704496128779697231521159964229332936130635739556833096954771007910822391366104509024953450698970792209875461736289633017319894340566730943325982431498879248580743002767657230332139712739050343673581462622289591915049596516396339844181550544106589347004161528665742619623272598282714229938169067281683493657028466000299575482021094763236840021577631175316970944412126901569891394036142731504232081719862627816139496414882333769109909333261415360305343837443941349276453656364687941068452824384668091064244724777960073155805533227003492046765869578402798331772149419131663362751407098069463535373816805647835350188476025504805883809604888869839332508336788237708018714614861723350318338483202774632210833816499889286130807111878934240305892435263792321898910371895488035080497486624784138731773128653429510179023336088160037792116094988569199873736298163638118894938655119801922553352596444794507821722204103818476465092126264410666084221959892166050911286761743375639700583243370792519816983344493722917324288463065316890500219353818511091667898994855654894321784299285874117270381128831878842186211340047319788709172481695516543241378703593887428315008841572194716158723181085201870815364543990497151396397570308586046103802034076942273280140087248221661678872973890857691540513036234231218684595415993020458534494290879980034229328472643159547329513428024905862384631820896845724386792811764100452161327317290732997564207443267160501740726125193455234649389534787756010917308081882139379239035452314774836068155747178245698713392975702975320669898179217587270847069764729685112474801000111403350844469899823168204283180186332868133271830777755612564135835836968312358031250812477875212937792762935153351156646833575257733222679051203100002335871014009383415499882613818018695792346739954929723495572155929094159342773840560309426593051262351181204899008568937143936950235436093360058257129813721522864424506779405312419111101540283752291839664550427177083905949277396755154102845290215382698447519256144422857609400851533068267540794857673016809753505157184304268359989196265547451889492944539192656989475719935820373455083664420949207530778005320677543700899457301286335050968277531001562979691533315308839115135907074910213165522484438991332925205186845779248607409873709187035625016960767187655847200921521877639008011121671957706461584226258418431799508432418717893919884462571674945325282270043142910352388975002175730205160117734682224801313730486762516571381922851205975758789635900038156128445204167908433900676917295509205741539386272516228971417549678415580319182558189832806590051424223784448414720660951609888536650173785805658877740896480613413703538884824883252161988413209204303309143719275150001514350729307354262259062775649647168558856774551634610022514614336571894482893398402711592497104019130381900660227719000888724259060869476238069270247504636823578985625659371823886419801638284764246517618743186843667413564185611050548163785922267358364656217860520274042224292675456982935565203306980854503893852823107109504007645538140138750320302727494992728888499325895310213065838298651145095098091398178166552311012329917330858395045071294054188305771485786041173609015579338668444929073848373210339724430351439868954846769836519872643246060618126509282382755483843831801485217834572928940121366392787447513888126588714259056130730234828254480366999629705662388601419013923856319775663609237375198105784199674695936901202406222386677523848807653016029196340816516916703428130036801291705399397463957004120452015726483777345321854118355936808036620776407362167520470095862276285321377892489512058672629974866654106402228424153902590779561827057470498663189036439372715238539353289189334764534463209941454719137808715793505378370627684278401635662123308637068966376242209975272815143188962363909910173070215968048984036661209892614038218786543560456196329102783210345265896385270516380417615155699186064783248661999801111098731237675360778046588159940556478801878383370453187485299285881267363416236050580484656580388940111769046455380693451146315154366292291789135003649858164706005703464446122669851307558808729833669039094724930402592072880259972725904050938169903501167103606216010312727956935452960855253086209589784837937699559280124277679921845091591372474011939328086904154530279153862941127257942626919809215419222786725508270097637540880007853339808284544428176837272593860595415727737435225766549262243890250653565060599425172459298057702698325353778525455480180678454086201412985758008388386024156444558698976239084725651461587443129363525248732782760047529981692906263095225493673024879975980023414841544773204051411360162449984089288545906639259280108355649291013904659346951279322780028174553946446904138419523985474169559032719256605625013730949946633898373981437408942248120506364652257389493370873171863572343087293243184105840963433414762407376866545124136083994104121256084884676656316189908520930322913482036536928118685415913146296588035427621094415200163913295156861709784843925909682114831632048609464673487639083508976747459293817228354654029133176296663896251815968099381349543094750996607842589704905228527399477201305875751787231558193707237865089695975685687342526555500130309291053364061087814583419968709328084316584650180398555735455491988296719057310791082007026592217801004359630034699273169500335273946447645679543114855308231980623544166931837592363410911128027917414937004400887231239794885978131922168882484093772410342163683556868525080743651145153264147266855774039695785630583931240645608320127287473430037502579051711499695265638317814818648831966843510581689766070185906629107381131371554481663511761074061709876429472672769344147192907920088516702435003685173494148300208247710405531520187180043519136945439050332796483123692686707505413529722413034483278352331546763871451242900923503151436707973947512267479406704516617838525009873568398069204117063860588223736140017892398577598199620412220380565164750070837803988263638134469678334877735297768534228453042347327095637197309722592931989649254473028306802883934904868175396498305693737459152307029462139459934681680934417524936655179552295420325123456259263754979191768619688262773959747984841347811752161898134236231077387542073775604917656883699514643830536605762970971438432338176163336528336648699748884953136210328776525437159705205355912431119496567288540080992957801837762057081319469481787104980438217716145630736696208416836657050046569798340105841367712724152665051153319733106197404834444651653293235473316844664395145813652846913499473272522578389729930436448001030344789714998614255411740188629632749589643994634636122668542181377902843250779391430838084545988233945866993052219550641878349906389722096525092174917821870664171906276116740129150581978608606592582421918388920739525028975804101805135622952038858001930592316237038353918988148596282661942571439240330801277565340866307553851068042512633082222129130113583583584310892982293097955566090702290340749127793983836892976859569268523251715104226465569446057567024717703150469667094837775551064211123640774607300404821909728418037237731010602754391073004727506119543556787648933489272264604824046531541850494121362781901906338527382029116581934186068052994163695564354525154765921061933551697568752900835465995275392209249587209195633728848729159695534617422444147294720695590841159445396202647074332789649415400320525935025636158862224196795456944955021098939695490335431880595582566900359240769345678765547258338780107626126385255700834233771471069997334803393747201172451769257399853214752718568442216803314163813499356776478148412605938593695773047354588950341722945736457178316362423150427727244861072091210592932779522718947471725928855376551685496068659089198924550341552721890933700697045387801399266417564118121398941724430964919148297572413691976255342520561824286919805733970675160190777215369837094757186733755528911035937480214629814835609245147211156481658622144346553086786357716785909064547964973271288524418522318035149442227945089516112547608913971307149006021873552168200142588775818344326234765985574978031865678256833455331769697705933508507118906933133300994051110521243186333064500817582162049819713076547625529679554646733310103274436945328819508144176859768235765453959190357068935553817419293822371818569971445726743344957597548000189534565566426621404181555765484288904470952398530178198610064445717530860191070435439039001211610772732224832054502040096307748814038559456785099851721340549813707476472364508567847207711201914036445879570080576814318275907231875665809969190066527768295579797066048450616769464922821282503490248453319550678024257770357956637964057327209909044498327683019940282477541402618198911377471938736119995023167366349456857299055628711932083649657728094858787389295390823504272280626418957593294660318740514555253288338112770347564457635896559379023386987728403187835381288020066113612744054781003219585099522825255860390905189942108618446603672899846963169203199382817053655417610197438114437617894624840034982915339144291226815090991144770486634238909539733464024461751643983855276039811542587189192440607004578980541149599349784678540087666984545112238938112197031887615181838645414374932183309004444755929698333596219846143985358529950092993012606561825784845190279329282374252383440625604928467785827141174092459583131608971792977322652016910079634697442625923435822241822287956325703220354989949827410297270731718926528223390841998283106057619227086832336923253050681918974941327159043698228386035625662122110509220048497741336192399404540086573313829539256593329081528203957803756636408516041087878542402480924077270574843595723316438532238953530173925880889180638300962940465110248715480746784283896623735447405149012227904905929633402786166023069626619361723115579940442842617051367076088238843927288911499451764896439687776739806785552604910448204685944699778688339847001202652473013665884065403030302008014517336787622095380750860264061371738842777991415083093948037067276064327509079154808115395522692756831668333407274537276331362177175339851796190749713424695241117358247870289176907977851822227110388277576413734144854055957093448734955694649262369927828793288875916845387748138252999390184285987777176031352652733598955658611594435448956572615033572129386685623148596927197609042622588157297400753251323417767685330141261442649962102109413277110284051664462595722101833986709605993667606702169118817303093702770047354659821293638804854045937510040867094115974497522399401805331184511254415268078491286944969422392302454626330646310672258110019343734246700130921073445375693402906082995607499481437417512778999504219940093433617183397947531934826295267556307298124443026437395098565471353809955527940542954558774604534741380201381629631958648303059831857657287296163305448977364856605545192811812252701193575022141710896723759095581811521357971909791073927009237979107827686958111250292713129632573913073733513556194773880872033837077652224036405148144291305891367038721585771668927109504105210040040287713258708996684700636779345584897333600829799102589655864448204249542295559211047743668515405276390645331815440736599182943484819676110955371976645620403896526147223606732967831347276632885469430473614756601307230260754069935844023696817370137684037554116330973919251109525657605353890995733688022554240723704616542561290345763620120728340219031752056280902005920047410773526951653375935729327107841465003838673287786676657371337359272089642949432622531687690614383230114972543653011971450358310343642511351022567100097005281588620172431760879792188277173364637947739360452668120438881830676302780479267478639841487185607581003738728942199413702436704901813029712936902626075419713451121514266572266755892789479366924546549831987607616057751973450216977773226476709021206066788385005413598878393245428350622299753378718927087491242772973302157232027072255718527097483620058521358811686857769824423347249490788876303542083580949328512477076836475150201372899076003819052291244223757117114287832182931451188173605699680696973088108125396649347235698841227642151315482753741838369887185287385951365588866338662385521892082164856243614233318890140369388669869908557016720208125514011376885335674436641664987727974617458220034850937875666702272945174802595214140241464772056156653422468921593599194048783545162859573671932661158877018840602569211831296623751455671079882704659134936741912409600255461506867136009544198560292888620042811123430001883823658281003009972832178213419529542434610512922660060218325901973090491797614482539691229969925927802328756183588850743358952431975136265598425207494008192910948841794599505937861920444622605515677959666071966452866951452570004955351317971913017475499365205379662527013354647925125797840125831761742695802473637469456278237144302735372994276174793971354537267009923734341981264905205834151191276477611804361073739916589985300450120938350994726666393293571092805549212846240741178265185193890010343724940302359762361856212467652677506246825243160079888559444488723034666438656258694253549810919011242825128058251860143803760206567821381141999937463582508254067646335475757670202271472211986390859534840453917986936962294887835956202034806946743492898130410327752483279648341094317383997069559028307800377684406259550893220657719369452530211549607675354648079169347771277594300143348010601022343696078851225406038821126509097613664632118534211190946546353342545890625058133853495120613029536407249032531993358811691796171337249533336740007390810643728253003418960129200766966293866999424675698755822214491715799021938986384000500741196015688398746139997991927246140068369966352493989536145661705977731495254323483510357314786925520821971980226378874419117940066167358948451028064643770342509384198493335346292366741032532231540822629909794571321474469233673993863599266021158854157540429975869833844538515728950041269797507149454221163468552123463561966189060629335389378897458020229366537650637954860942920137201971150258839136439421848025864074066108540267756246121268135294260790084980299896142604433726717196595820943790384094344452016754530962740106419601352696071942533085942472123804354734681056423728773970394576946057351295531194336232791433726530487645053698733384375728590772204626298800746118566105062877419222014389331359019751764660833531430573195352997713646379313260152176111590231885293819848981990184803653355091992438976316578951283967897407412504117197983441524068237263088446508292689816614333099612377105099728716470772849246230298731895324148969911119085212515441756600862251221500970330992147769139708839820460095733915235115215709537136623678543218203924505171467067785916939397985332610232163112691250395204471517620009980481791830569688141396001822166608200995228784848522047726396825671860449869017711017636121812359297892918795870730896157606771627649383809097055032129541092676894250615406158257768216532235810155885742463893762742962748693962670245818635562709175778758810656296774123980071739520849800207721848081532433073986481218754995478943704748758411705270712618983360143052184100026961226590870390257202227966242328135687410173343678663187535173223773211809784167348788205986399915696524113596739840762885242264013143416895424065735559319488380695727753391405903914832691865210491897928033313851175712025467493464767741525121315928374908029067967564000860069039051861093812056027188608173095065538809474431869458697212707131914051639932149931064924538989009711333764670753507463872360796729969532490834150170642278991263083337643176868215452665372575441103378503132866909518957322964107534800319111815030835370843991973548644608811135996314817863158772948258170576307072988086646435055995503922452340136972773078869646973316646562061020404721319325710418980886400271570636564987688693290815419733792244913964222071553500230319823932171690202912483586157885189971426381783675994909926027286014523189775064367982327431802235763332862534207901057596299463536459542904580278272532962286002958556578892175861846715763255486843508533606666343355031795849382105919956001343202886826280155418641875618194995153178800621708330919928060128161828343294172122486821344279660888345331057166099540403170655657699742213554755122399212226770767617412653548501431376235439339026576167940345585071904239203407644240678936569106531717601079235049222658639618755791708578279305133457167310153677686796710347574361660313323157552246127274610441690114706744749657613552586355120453433733547516951308767861910703246668243930537818425890187510692623807906476528811313527613568507430420596685186708556757703110563057809249810140703419734879530849330851472731928770147133024642815986681919161423522549357440775306666210257127427502004522775328048170245517065224120378802718517466398982803536577971800145211431216021413107382240875319187147311144863582414881445077641080188560744770658650891664826295012363214105778377503873857912686119676591945029517562226592941425013277198226737547025940229486060871583310422767877428514295614873181042589130669537933505747974409849282575060040359080428780821238498978693208051064918066238991822014694193396386667694562828688367885455207590832469937940778228432159654313727701902273226166455625831241040050021282374640033392523836227633964823544017056339858882055402449726040459923063493435409935837373378233496131283100411425917524234078621901621076280225161263509463318533336365934496323470530937956942786418887604596801540916365765623581149610756930699565638545892582485564175956741507905584397400620263314772688973853104946679381924926810119895176295133865557636393043274086740865411676398184320270748926454110363645909379220634927585493226636257448113747362779848110087744638400467519734372860683425418335742280718472886041917848116078561861786720887200575736215783002883342410905960077485212124396515688948490953693690150858913435123079158092311246007530738731441237827582253779495778947731070935224293548574156833912336331939722916621646101433105710722773667487515828470458080833881981166874118910925144038870203962140100175783954804591819876135274677143525910334513734486827977172525913600165257197525442313798705933695593063407832308871496195337671067249964174588858756586103560278975318587033058007331642797324742721722996506919464702960446492246289520264220206922021202516333572901071591044967922519188532111630322005114128664249057970440266439249335756802617181239887742284749437960610109875424091238789302382749553179129416394896117707690108884593379799808661802543201705361556582511374977235269635326573346643872283777251806714349295354320969096421547278377766297544715572489128013343387779876616385538839033365905708900652340089973234878347479153266959063336088018780589337011340501808606985761960456221299379375598058790837091082886885898898028665716286795694148615868518926736876307653447011871404148293460387906612875372340944085345568883866620377089576125423421174843737272426157264022237953824387255106735680389964924908339530315306662906640661731568623308625798960437898567261518651231045097607754300143280897668183813328829744398504224224882567210622819223856863827388811558829511798099387073778020187326196615309068708640082813907738074177181820580011913107778784057629557841771662484790346262696678584384625768033614455478929845538390380370764212595220493382930038125158364318165104491577656846639114537966543815170271367343628158420071403819831756324021338507332685789741578086907527606815207106285943384932311463506345705392347860265599253764579164551418213719544701185600923194651288928792831501595157614447126476376288120615451349542380995742423219800158422462223669812832515225159582171328318243485424044874317639008275744865768516592620306805216613350632304934727345362184456490495187074135175086605997025696929792891176196390302027504727893795300573062505265070048163007110922140453547211541440320176636166750810233731748831798502183374574750527720630214817757115330042026173444287647072390005298582611524538439636789216643164497432062467552861293632500843569154370184787804569290287351959600986957015299445290954472590654451980173700342512534606031172096371690715797431143864784052860650677766993567097250754111096102608035596506530703856090371380923096767717411644437442717718192540895065467704835253936205618081101624906730270068499157511778890743908172247677357108345002018685116819287394057729757014326347011741107003263365020955472257158245744115348225842912761711055550986402446450740842239379882947755819119861505603044033197825782494123504256255988695162440270708614015443932566662665847731121446887993881073365646253701558238304559405463785402063598115525354014415320544166781842683290232156101644946560571199725024461416161211359796564894863311412071924486577852561662628296204108490100092529902615860127022478860754351756141978515521575435444876452441855957370295231065652979288584473435915294436832849347224148994136094675710430233244729104621745679711857698853478587723725509004835394182634909477734404088893858335757229905202997537428270185055955615851352195785160301888730914378727483287390807003603314126181417654310671476456124785394314706450783707362357523571897009201793399412353549475443242221449179819349537896487721712297873899250391772666615250977680503337095227077592647893447582821692238291345220918424674591615517747828167074132050107398640217802610738237438415657586634745532285592508757372914159638406399345405912198558386079762227730054912699931747580669851380424843209119770692321313440372431622939364765152369302576957893630960729243537390870045075454570594951018003867528518936147464341349385765579713346826157347823020597059757972974362548998881925643885867353136268385648635636364080860545059893369085153586422406887939417200498932159196244131478890402253612608957278285793007024884552292063301572780507850819959145947546796635677420095250955770629507931106814566830503266098808879647472064352994756461971953442014580506026433004843904496730532671186623178124877154601942284791992438914682276936471159853564306535655496461352274801593662629255028401948942998990560774902086348654276231109711206600746045816171124025524738824808827216195609635465961225161922264188774899927948952919708559545912451201618134044120552984461996508966730186289256824295292658121341804091568262570013231961346969278558573364111152708438044896110154534188646138836718711283067779990767890285295222917897473638277612129783505684346363889652410066755652588433846499064926415120823777536417177238152975262013585604613174384204832887189804688483512465214865357222157171296085365403386767859767677604111550920505997480165975368928433496579593508160763052145470313205700189120613604390453700809488925922766103428914037822306658544555500774289373536125154645505609647810636522933836897879815964900543536525715143206866618158185911574252497037816182759759062245959526730929048792000204420983623926373357660504917011385251136940402200992963240057110144635694712247122763832834269874805671727063420624953952489992214835251831095854289739224909435395154265861301889436928785866080539409660265159438409205102539659558879885404273798772297259150962953093745345282214219753959918237972153657561514001531065422225311243655949080881629969062003380382087357784762473165866179022574230844148925128690186061438233565163041601118015047802912875118356922095536349207431943764981910877022213131767282736362530315360296996558179825554796539654578077999676024195476253841853264081827697370378875551098595989129566080964675371751751001569812281983878918270062062985707631036418587600339493903337204073113095475988616392665642678136683908885270039584359604035488163875096556978984215072105124553459680507080030162364049863019547583540426607826897415632970137928494485932228534160082107610178849774446892662996791925489422935768848780016731412939712782465934154937274081436966378797480666433419262767004575633105492396826036460225930932197210072854180163719059018149717065040950219085806594773834046871828278086444217871430985081439853024350933372428796290553321257668834106903679611662460221302130991641489116831619740574004623177139003651927728002179092918117814791787567512643079089774345840558572639051733228696735083979128215664005480994966612944394929988615040681873712478337798051370956997827965328277053473177343433053530660431592209370214955642167812489157897766829783547198371074410059803043362972455824636092302415824203961399199061971277704685176607308856501644431167013459101156710938399704572491466969736046193612893845596658037036715704738739674761660660810093644158863392161069463107448816350223506113783616116409588295066715839772326646960663213947670428790185341115276379366943952624733145407262540493913018915953663706828212126830745130232102344039825948336800059580327471600076596944044616673728499794870883308595519459742429652399406275850797029344276069827469395755300923922693412800989605736706741927230625393968063445739932847294128192175715271661884433158764818900079958753677471294263200245689548761858577715235957797769491909320306708201356928736206219468757222278160141457985149287056671301744845173114956795555471223348985647638922772839128342316244641479462668410665015237649619806710388350040019982666122317428939264709692422793279536124082140726401313721054231777267951460086747372402655711013130555261450265487415007146730362350023693928291688884018667759033904540566400151181451730175671340657510948257937625729078980837468202976265277339455776008398260245062562352143995402284532159756719202680172103585633093693474118324744148592714869532944019299039063782938734435173595034709239853481451534499250182573745380555672877947576976536409565826336629342614255442609170759029131128646278774044967777336064049489685079710814899389758618240599509706957313747503551619880372087137652124514462942306234555894204432177459819300780848257676509358735973129426073237427990249369499253331430300192641316237409272505757770620479107107451956706831943462935362826070499929474639861016088632359219751213564331476420558199402821421742640856056858744504383627674669717578939436522181651330279861114175122874307683614123200042697278745857586185548154280513481280137302720840252280398881435262783671763311710955721418826746387371265493689423370338717373419379336665612836246740772434184830773292777445285518687708855721418674476107631098727821153657392829388497577652010123761711300610604054062865812297692177432074710254465796251775755080561263201534137775630897955829386068258848258576597862036509721348907233091162631674501176416692283161514426128130294956647698394904029080917654167632921553836422861539610500974795422597268239202111226459583271308800719900647490096723400054943516618853036190342450315161882664408901712700675554599104474152210967258626073939064489243773329751379346879698807676308528258581378794247724889482627982400495923914944609790520954568572973220836641847665743253548350110366760159536054657192099076174076830169700150006917991769453732097414694200992640301067823877287909974571246959106812625530406430628177683923552628233103633321155941398862922728151051763561601188932450026842737361732810129773498613892019192861234948749765373917010715305499437302800036549629439084752717053465921409429890910228877823756925483215470465457620687752845351320911180768940467097944555882773936865155073264300738174376854699577166433377778482747522930787475394131212018576836878649543990602170075876081898687256306591389384475169911637332993457309901825873922862904609346227767810039792900877146024665331651626804635398943765640247603371743712272845238228289879318256705949680192489562817728798905057137123909757027847566137185119111673622215039107435414755517353932464678204540471155308980784759531676209747027083994025431407603357386804139389881435110181292951146695324157663624799469147454751231123880239024224195293544103630556561801926994985678867978318194001876949904814752225972402908275073696442163098203185318615730925551809554140963073161629432118812628095005894124834326802110164219708998887136803344819756661397335561430445237223824921239399352551111396544810880081589810650519031463513213781553471572053648076343014147078248335591143043104043863763064109424930061469915180877724423632782850667363294078082289769208021854120173573687670198833232439475664704288888397065140201703122514648313307510657328127433765207995804249024047721828363611494731306991084068597711727716914682368255638741465694906246985477394538417312928403186399847905227280120384900110419144740990825170608462491649332141033425283510536837105701317965979827534512149222964872552638424042427579304370227304590730855381670638798139273566554525595248078463190468112146520236302304868151275489740020235647748911057243477316256193520992400822630628575093433895668532070960415883118828584277622304256244220871198674631235036094777311469311531060225134920348642252280329649747327758488176009857142616079412178734336394064165634031988590310875328310456718217055710492073835741885936791950783371676129294194621385489268865044407600386883934181566842378215249478489908049249549044725557773809102851272712111625240809754051067320508199569843822351514593567098949386904525835253687179578629024336296224916153843845188869669899610494109507204526556098481019863799522975231861049133748146926172509971897220446086232818725855422355777248488070823474663498022785519986792354230050017491912303523255728745736631162994249471105924413953659317352945720387225388456685124625476194307304019465935474348711996129033436901649489842394028568899115150574701418166578344143528744693445477708740009860840635573635472242822638199965216851177548303471259484518021001972899934748824196279547679217540830653633529033235448581377396348684142467699207150085745136057217498589705537198202574995710932843582085608871749495779085248947531012586543041053476644688917384972353841160977716271568128138664236499099450777020735493196952678460637494331394205344588862287419787037307336374889544851799728709978632699848937286162987344571490999993996824105457251554334893579488439523464411011736526525071091801522123131842341868147919186123723916353418799353838266931307047207067886856802376944748284264341290343978301467321485243002835874453212071401940732969702995434218520464779539998086937024845848374515981837569094013728688538651606400759789684953784336918598897837243449289042881770644888460020859934172535043149243041253802252548192136325431070565250935227628050576231062113071144049421695175111636090158109634917387660617472401005926142277284007611505225563523660773319306382581890087244144337655583498974164802251442593171934517499050070132600414639848331335097306314592491816297285832968766309532741190353738032522466454577209886105668951372376944077851780254245742727395169731651615058057059693835525563240302468017078906009051985207495591996591255488696872560301641902974585554896298509913547270072697397506169048936187516098594098476958704606170305423684429434755821416477588378547871060558856689478371234526633790915669737028800553700950913937501865886820542639996294720972642369857259295609310765724188803167945997072604616944687646306475560905576074675431700876078406334344856645614214544769222865893318157700291379844825174670493816685165974570810586696768881040085949963543843702524500794003345137743843607108223163584791620371883712321041282168511374268670872643920253218091729833333916196183816815338821331288667055939899733404933907610844764515191483910414668181317848362597171837581540634152712314205656799333357556200886286143948227979778356997852872286980146215947537980283950931523779913184493677735453041941857691992031817160328974811129467348812978455628495118234383982958611951003779251029684957181875578200234036957506223852011332608797217756534421526178901227866429410833800883195054213518213045685945435030056710608154620808711616174696163828046878267787522100278967749337487901343552041910840629299954339443028958738211864542645740856538895581177173850757988681758643822193193125884627074788613649373335723305138651522805443795202577418222174691270106707564895611502502695654736387118419878869334160545410268542446629793536576777961595890193134926982579566371252618664839278376307121197951868622660316927311399902748202823527438735541811726151876105963305668615623195618934712337949549868910210425765768694107366114549953505061175961486395287512088144043196642992833947673987232230750104960180011348401228431326117336235192652424032521966583616192229914374237831541293280681431408409298279704415133190442892884519325178779312739416823313479830953388054304055667194782106368578267504969182053395944740398881509469805756395062482903848781801668381364359047895841568823215492601135810261262466629103472133828346526069652884295401401997828066763101261117933132534888267181528905447602487302758743658126247465948941282598231766299987746281468518284032012495685599791740936364161902233895368140923777043464956415578101556336606206845165620315954395317286041425727590274376986485681664016785704365113162246324314492897507662523082542369874444466692912756661208269511249500310659575967735986081664164975059614149598323845454650361072483752429122106523480806544222812837419029569563712664475711790841470599589656159248895336974692335371702770424446062243879075406375313687687957860276195942484337132244667730280873795813680821414473500344946493156012298579653779515777219931969775063950598778580706810426618050436040388114660631476353419606369718365068238863132644408120251160809649440438263230646422850936324758263928373341151666788669712548584916042304591053191508828501730066803941395994271673349756337562288983929934393637149237610353863005626439506987176218605697873538461274332240558065672496250563308022876686612002613647655998298636508151606735450983558982803813425584069012772415339898180968062741842893209719023731350760917298031645468711976960791933490708375457247393295880572840688957734304053651432782782177724011464118461635714442142212077436033212815050794577938049845650075014181387113376862391852105811887610036842001718987526979778575913354241661375598153251082643616909202934073624921244441674569485651988351562226821330323949246892453131629059050080581210176709103378568928634132643591398115587179791430150796165554990259697572266438634915197963816016735815392215942161697629802197038522992284138448575764913694469338504160564445862856826198329155285126280085291365030713324367782209821304986256267392482854549878972030054400933392220060526939470364510326398360852306126617138326100866765972211005320608944064020625409753971521606608639050777113487347785602739206428749154544017937165966176684495119560286274021909298125758356459031469643459348091863061086731768559274088724380818003091141232986538073817368400834369829542334480559042124338368512093069213249877399819031564649243207330449172674344856736376299801917194514036495741286154868202277129067084695959535860052856870898416190488366209465383489084167281410931174083027487077492338801217326561436098968634159799553563034254519668363877927493928152372625924784238878348921391389207047652059473108775298091559904185559510967680239924442826464000320169238631295159439608667837884238633975058599795442359241210844895988369335087130003543214133290607398912476204561671979288968792210510846913238956308673602745021668583893791731420780937733987683949273889002074544934471144797760541172702860186032182321010264605412986887746136832470402473202403624612810369783575265140909364350251194159429441563645646316173485978069255071986247172784382886783900736470514857931530378016261338647506688457526851334397724294492886671873853192645161153301157744048816758523960962182801646315249679510785109416989281196357759521093207353602786589443311036524348061324567786313978020218048257352593598506015953021674994666257108123418542694699463592004131409304782855934274661562793112827677103319779065636543848261283475768136884946821528166369793398728137278652813572800251168975635962635562613774693110890386534437725057524062065010565970839173915024800447602131787704673494620700005343686136257663228284414145017353617964698594777875228646473811083956327558584950264036166612029518406858777057307151530518046842315904628400232755520719926190388560409267939090715681819810951453292314300596246309340735140956956561388645369533872243972123950340397214498756069787086694399978725415324281683958682618047463844355859398488940618894673761851811596447044900238562964932484326315037845037425348934560515906533358107902504888073254943297242459917263170060903329089861214271581133100109202900652017140175043533620465450803675706311730405024221125758432307920309705664399805304131748314665239282998591149537251628586570524459381909803540845545906691987774623506987247659831466398338656744780720953907514042080786311590949354848002118158652206708615022302023077870429480990866379191156122195556897183267841150480776345698901044561463719292016393975292241835838877278295719274014282316031129017270641784916035309396286735799690022155155162404102884627896549800490747830825952400328100352641498609354633149170937187203196026753929794273984495950197158584418843963089814329161018268145359618503948676093187802168647825464089196699421315055413146007370681999850365724684885694956988144029096821298414275844577218182347128286545730116255106692913771165423315489665046477449724816208353938574370932551235429950227162133603492678977716134078607745410452915426373048518051969061149606900371439478892601127711774908271230797425302923581816204000375465634195620713172756732268831391947845149145480083231270012122558599480022916015687101886277032336982226030244724944286566954751745728120602856534542984047701952038574125116598802794780920110650606915960013869156198515595056183517645196085469362193346264102493116147641792251588604689849172646429331453960090782623552176606248062145145357246301425071039335402511369970844676631297131652161132178418140909140583310699981769783782849367663222867699069227839964281552245032952948667839383345856614360053082209612975529725889978050510186129683034420494446346160787743091751941758462445427919848137785955919066329431250431928076686431404916437209836375315254784795813978336858891180638148300978399258401268745756453791235554191789031233543544592103564185270594860242266049829505921557416411799286903829900907571400220040592877130976522303926043781375600739249216347779717935195646578899834292041128101572800833001450298389601837493858247891158659680415880591060634754907477736725840882107701250239636352305651581532646347106490175161405339212909358629738766310351799492215486727280568368188027601515434115434969973307627730716744927393504735723517772523088847352742038742988175387736342783022505097550134007445943177936370719246429335139700712553607464967630472395695611550838166107699901335845019210978635216229945177871997180505725813396437506951711707573079358685609077984407438090916531402948590526416763934559149201706648756568038100972652407296591323150091164079681092454311335257583750221716878230970676417423589579788746713439496919004510496183112267372849079165544878103245891155522330029356686913297203125713232845858863367990477934435393608829253966822353297496510943599956385418712119656187651461945017626254701193897499782648889161205381855509514800930387101925825781221987794049926929358854718572540542321662164899631819918784074806858666584167250205926825225315022407853674834812545628360024481715208165732520956686079125302302158694706945430321784651561204776062000540524029067642885159916824624522272178228554415718989328267811828076113163541175122505487046027314304490459926850391008804952770454385953210903216786582400322025760831248847735412932191493700313995522171581600543306359377680183389975947093771367775360453589579677328952203069223155397736315074005038472863298620104559138479613762524104156055672994791488862347465141654745247686180379506327150179878478537924196763954052147436988631091224773448096986203873452148405122233043349560549901677078349988842668011304431061660192563920922025126364879239600754797304361747825031222082283207687744500712283544052781005616468816303623189608775048471469401839020856638196382002361587438508481652573963708830974601743976687004849340890683023114842734065508056624361206714114824558789043226690821585255432680057592939412481652840738991479852235540561936791843554948340638820720302667100960120818960846871440621958047792737204880509171991307258284081215107218827961996576213256248856645969570166570130438880438899430050394187474893214928333063715969166250057734695004065950937258704977987388413257098648545100897285526463329329401952354849740664058474746652498196194695443104419319704947471478251170287912166911477800860223942317897336182779733478209014995435066707977031008797161556696363522749738390046648744143725436947021506518942315316865880290822538741417259053961351514813471423347744398913167988447346518351212778011181851639031711129708787366666969571877977905312343308999610261988104436467978795283894811798646584831025429473546818863527148938040006871580065547188320243145008825566310574911194533770753939154919331203364574654047176741520173752498406169010324891136807648176897750508825279557274585211270246705700896510648569759299511719227827050341773459909958875156048758203178312056248405878038286803980914172129782064905353594525342280863941519612168823365840187472063818647676781491989227394382088237137253270246323118643972745421518414309128695050355367661855989296045947167681872012248258498134974811536647710627582940904088520816926618915139048109986075860621453598082964624080645471313783870668609740644951451644887195250674156424649210067505017851285261569932753638160805270685884523303878333316779793159313457895372084704718607269465376988175850692394833639781735295556878665533886797226652170680242720386064291153983582650198452021851164277389823351865737778075999508232867581055978211653825578439329538877558058074148554093385845025487618159019612694628003151721332999693880849387222957541192529596494491477519110829758416946028216249109313533510214334920844430112766447241182442621788368157341142247766885286145478387759884548543716200962572580802307041927992211334472818548256371165018261115633845138615634375758963464383383506849072503116219352465287247067660263011866568956822896698497961389362380736772680020279935966428508362345731236653346892382570537381847558962040164142686593920655053924524855930509672139706291199062782200075289198125510789815444355052291858231985428751068882404117457361502267054239796501798152165686540905549166191091546363953991230064573566501671443911276338622972929796739142222272783408495042215242667135787307646848397973707846656905574831315878527435456842735063555345836840189898570716421991132882596271478224094462440671420565377443426508117999190584715067462219531435638020534637247044928574225101736495363576838478491808237488417386097668885647569654680609132414131392903797436820950298688334169340950484360428147011158706020310289949865817638759871703945464316153016951847757263726453157095026428699513440405898546940494950902791849946020611030087720405101382408669988257667231253002401669191431689943837397053976691030133229120034946958865789246983943820485887905507651432994446320137158679323340284200128371769026563135255091854956439169366462243786632054833457775867449144421075463935945043328142438771824481173592528344783681216470321760407426191829768333535605962609432226592207370799483347136043950831428511292630068199591310926517048872098628455850301635544123626136772026039967682736727430153375306364473941314166849602539277709020004550888494601292379092147581256883193579593560907918275098692201729727577005766468545997773772299715719464197528164412162544871223461176808689189725068806507591221997236678939780092849766705272476256359891382698305745423383295133581121302095328176256095644551500293799035630111885375977603341151781478041503858344982145872292691742014270985736802639852244211414393757066500864508877212896431242642715835828802789936989530272201421606877375158829785814287535712589877373692463320622835511287889985410627196509673149754809914194387612047506598976955951808546853484851818764151737657015255077681272867044378553058765929692728457096961994114245819053263164722022903921601945244105840313161242784137116923471564397250045823268175822324482769645727299495277579642916599443835829849132617268586164068586634662707125017200957390184305181095279922297421119701280079656197459830121683359894260540625334869974911678422045912718941455939046234737138130292916826097648741800670524608623455429195991851746945585635592076922432313001589816496383719770939791485593099619876704755294076955863933615291121830608868643503804185344336944367038699452506350820250526329819672781642936022857127598067361039673827351330849011865121371544265400531056805167481177790842718496393106293345847682054276858625874136151425762757660253989469679978207172260188202569989566371426813909396557270586072179724148516214468331441437210920395402039268243884786768791262310815422294997240196363134022716052499541147841582085692033426371979919929036644883237150307465780392728741178360444037387461988758436424417318743627575398520188674433865965748108170239396069860487646145491535146587280358055291648436254730399587978705152587818582131720590183976329751379298622623840380763735310577495383106220726064783608541237149927420363315139214524070588680501676204083878992344565863383794252116582972065140874684138653690311795430329000046943312172720760163322034775055961756340475913569734355446170230711245255950309607990123001784884431645182919448350660502501987308018269866649477971743899513099815759216383047264879501472689003097332019419751311578760393174681345608794680761090995479560853194243706289998664995740804455525764194380014771586497340290944506205310672493378621347497599716086769399179142493219195406299379965297380738001058556544327129050183028094292512477242719882391278478712472444066933051672090210549903959816864544154843356919496289745008040942110359372090659095599212147152950446614366810875666009314513755497907657278194751639494018894193096726289673681006670296574376073536197938524518042918531421561896860735814046473667004921528697580424457294655542992177927089401913685472650558465646750757465977913535784506841033217520738025526596079568377758323075849913846454204486233770557556637072223208371331773598287126721314896209887424366537568064945048899448896958584607042253885147173114092611303541326566993177628612674872687626546254989099749542255674516568625373369623308244820443871308611884620496908200176365625367026520629029723702973584250726544086997915849064530700969741375899813961357832826525372354273695715480379399774893233713951923531908923069779729187195978055609095132465040758170348901749518904973156802885788100943300557085754550074284863876441292405915882894146718695619884064052369455620810720969360429623050007692510493272086550547157701427026681648946671076117426210988352573288754452644302845754263021124726439777897507476064362515359838321172255981117714908732790742423048597874836696188435839757105496421591976436489114905031946177072944548778916087647323246937276200758771551066295663974764186905601714430053315015284840962880686766462847870834831898800603776656983967357662804141633831980421325656651991401655139895483097309764209110225899475049539889933959815769647683121837628483074135963937870200202160281760359711163203550463011450323214909485278821865125251626116651219307366019659334944820397175622316168274810171292882106230618929216745526885446831441650726225966813903421296150156726791690405310784902414229261025328732965939451036058237191239763399492527990853294338436966629452194134654109710764479919022943547670290102876608590615733798659503983739589235592062925268903805913722644994653080217358433616673440021807593411220949513765881296979436006150180267056235715220324078179123129962114202753597183110020586987500964287591355399180927379423595963549636260529204998409454572818281382668226517748803896085834423146602608679248764716862353613801074276859319318593581388001526971747138842664150807624659568719368405381135540388532984446446711647882810197278272695050034140767594689295906875115509996689780445767067635505593740896108803454676577719525508003974442526114092079567130664860041635952007832847988155656085132018361497916172023021339628742087237003790898754707518512879347939954158286544861894559777035242568244073745454991551793024551864959154250100371899144393790885060525657753651354196638211719112832531844400000459933871583132454463276547025155239467699403521092833420232859031817771803648974168293860266469557239578741339679264130536722347796391965850098484489356732170318268937119536485822598208994524161704597777628040360719482091778675446047707340929915482548694775468888547132476930851162220337561976302671840905600530525405923946594342891012897308302300057931108135279191130792879571417945182495401506319915741887716617840708338055481612414674762988651423518098442032570200892659448978774254118367392407272872343916121520523172944293387638748247737426685674697880633370877531062196509482481526363236076278323463799148165058677174367133368922577592782669371313226467144556275940055220898585426749207381178099485512576171941043374911568105490758181157399046070095016945647448164327383202089267333725089335929091162876371456114598439284871166046148335125094168623855195428377008887589019155396712609275841479473945953827186945433822559023457975633399257318622897979612260040246148498902420293236727787079351356740562530662938162593930478594810823037928527672515204576615037026702516275879394548766013305111027999145560857437810359234630410615134562041306636975307634522327829446648198592787964274870573868594180972692484811794404186990438240498044830410334985047377316967340261815261523479026413085462460639935181324212291030618793019919634544124253521597664060821343855614382066213312893387209842776905518535047730176845887189910089682775078667180191981051860362608241357944865886412872646602118642025457127065685271924952248664871577791699537170156825514659295604345012063432862940002178724962771136842495695049475010362407148690104242066356005657524889264225010868792475216919373656337407067261930429741690362935708750718921765067713458712484320227009600969329080555283074282670283515049489497928877025432947188920021654759797415909586853606148208775525643460076671246731640859029313289983178932113252004039402940806306335724999001192651655234654521378677218665241573960852732680381678942088612336833870624617084633301309299956259300170187770384003704665363096458734260858505346412294461965220731410749150498784318559447450042154389176621745808244034231036760501559082467044484418840733123394231400253314147519362585334943102077864524306440482879657127089264420555155798421014326625360387081991462415606310695451617378043655173982147313016766064139230813842936090042835292274015400126865794906585758312711906978856356317332568219597946310740496670490911702582633663769655078183320160081881664469742891439210126543554785998962747690973397336290325450940970925671981310148017909990337751317950963468533392875149125207259563792590885602672584160035577774168470939162319796250301829786180212858392573232584978473752413731872073265127254161907327417760330456515509535632345912773303462010569601235866364285378456685296534574821320386671688719486511602361133280364777160391255743298260719536025718105408506096519471016174093230982357967827367397938565537728721678230100321362199817167873838931378150062992076506151140900455726492286931938737039464504290398877183378842691581224885047378914335094409654811668190908602052478340043253118537727879444352193581878857289814990479828159696320406378283491453131355079215148304210776410498691137393626848173305541036512078671274856433361713071589556480820975354834649017147139779219113218774479705852757778557218608900517623830100164013386071895834410519072966732368517310611066586926917219439880974207340076318014943424978870743558770766896354767694445862147707641440565924741326932718556984165859003165849188186420741265790081802393336241410530626643423582571205551117010017596324760467730729110792451350364387594330642152403554748721079845163585999426795359509829039953466923706110233737518507420809076194055746642943760521363761122718255253067525646836040896296676026072917716661386421674080438079324121168706029333947690599100463603865963821759866958637455119129407417911151262690272303721305771544659174678812294047237197836993708065148117339902042136624807676554024907853072443335796541555729907616983231319931547244310610370496974005958765272611017035513950549957739198513661175814390104275503154923194701114884559185581792984510963465864743468282993835510610485701373108634787841091765660534871905459834949654343439466807826527832674271760234801532618996603726788121473811887872147658339391831691790951704227259335447441347545853758517706468938813096879137247260768423778549820144450326135010949989991616368483052664882891470436594779182553220607738493455531279690861038449178773153993657779904357551845156810214305786872030516413804239394432681823693787310235820009191069634280272168397320830456595803502650500156627096271110647051180134662679192655527510331695349292288116627910652245773693069049624438505867026191656407741586543807339151795812875588326825554269836310151968716482735096706475363852626654591219587845100614299376515185637433961960960230755685350546079440482179418939144361159636508071718492978093277207957757941462489990886512162359827882347690869944918639670210287854299099046841384425337579224619414812645371074135988891583062052193854467082147881530185170331289822009544088204460071117079985419378726358020970728180463709240417558120070686035871377359375133537770209613912294298332078105966340524380636048581759316309354855818679875161041105780607690672472473439948747206676403085500597924446353192647918237783181425619091481986471962436618695435477826993050700093585836174171237173207466809612068238834169862174506725012093894512765226524963383098553341700081376010116766453478284276784355187156694209178914786848553609724823620246007229594229701425865713905061184888812116807013220794734395598111707950139961889093805576514940929696286942145965015742491606682215019978214529609541628178645869273731127941667156863534888121264244655290033424812979271255798213432444687975609447890057576785142952940564846770038451863047863446485798158164905125102414689035898588397738667470914861275738067429946924948494123793031401957122187017360241471094255821101601070723249916376801330312944798186270241045502270778040293836622659105467303246392061676321846610271489365838847459045006456461284194983491785359202836167782680754621217403072712911338991669452080890804891618054678310597124237619064747162565673932324670826150208343647825178584929918586267837779450657888216668088814680777783379677749537805513495877579878344692376696941006806969931999385692972645028050818627277317273704868264778072852727378396118475411607492797731372211034010726612459352400143887192476079323024358061107274116387815032490265822016709831425408736699961387326629113793346278299631071162783616634497398892766337007269970218272552472115612560156387050734331771248405263396358409978563505881309014651731447951225626820248066076838589529629095184607446272171011167585634126528138344682672573626246959406677918828098665618433134978882698755192308534005891241280548351720692691750341357901131868108015852854956081455244537693305389185135859769994548875109723688842451250850095679556488596285967395026262678413023883435244090374346560293056511049792092020844501125071514192405859014134426564339557586952561416566986264380157828307578611064761103219050441967090951742095419740997388588133043881496374954933958241019954665821468101987553287450778096190904670857490708618491722681406101126887305436196663085059302722682987271811506461809810853074147300575065281459029336155600904652197039289280148293022016914561857720886450189582204310288178156652985328000179304253458257211988961735116583925977833720184608219166405962897510750024983926763602714005485020328925689232378768596128813513507565051766450777534424156846948420450363676366039032649995702732828115316633088684796682581706550266745837604150858366403737212653288052034875296776713024563030387710815645594913686781148017396907522289434583083037162441523918986700278562715315315235399461631149691292947444350892217121903452097544910184750176938918788904483512013530821373500827547784004501546470178350658636684075455038895264365293706339327334232229640673759658766045048425155765707766516883033954434686505136299541348197121679133082366214033990785035815288280954205608342686052712150676854047471709074054907234267740202519503226234920369739492867997049885946265404618660434957614683632370459946476862940753254048150185650010157873287897165642720977970651271387089798998803265754273347818586068889169277050410807314038392644058367514123713045841876185147048605741156050775295614496505649732533926525182293813707461492937339233936762038318686274296960331249890009468170559198654693992116302970708630644214180027436990580596632385858647894517715286429066588604938514557640179311698873175875798588412706371941788428719918211148663580733728265415054584506321323344086241600690152525241720157423075153697477501136983730170644982296736679323542383319436029314052204908737622841180691014328143841411670627303453320786430175661889750819172091330381267204502612232425237991042237336726013444891332638281679146514702853321993288454104840308401238930392864995855327739776686794609663357390381586963200438756552203440102541040013312252815701161236670753305342192069754218823480711183116981423915246764470730900750247357130112555650570918461632489702071927380072962464025574637045035236659125933979758917060314434551080526883903214001530265647759968572950958665703819111767779955169406035601314136504239141516457911486779402197079014516831675288467356515219170766985262545006497913154076043052396707737080429541801767288325265571069658125262009783435998013586426096555666941644772600145172369082999984209599823935274144239771831069262511077290852047477304241056781941350364672784451794184400217140815378728027463633177938434847999301100714494043370623019538878885665962917433372225969322321854250669413654786954182981275362352836394835484622420075007258557016196134538467592644551896362548040132354398013196182402737634149037830103902214496674711753532686481058638209998002803401792650185669146402158636573401452392587848558557369050077757426740041928814938316091924110375343163593622738076226198154455568065116680882085512356189594994836684998018630283978504456800409668977680683654025152310604678724376344724651594222497152108191977712503785828762675530352645859311705112580011977054376523781103846531611585053950900922929600932137975034607979961398507347723824966882589769620345773415416705156799922608509648400782308181454917870198761919449625826235327908523435941838166758815112800945490007266541977052348782554363388780220469016589831302211459103815874263821351647401462314331881377989555494480008695408729917697056525769107299857928253581575800792517722618338370950441611276958818556649875423902165193352624124088308684832876569637238642484514823452466653068649327394942321054782549560283739163146334354317411071947666790837830118299467026810135810738735808405197676835510921654947824527245753819282203430742457175160295763895320685461618735499934156143832754141824080513147071026120305920160229525974427634138114793813118784133846706063220822014786103627857912839649030919950973839752655405583778435191612107483574759993566482618639027659369771977309451575777148891851266702065246561321586642966455660003231366938972171672025105765841873985256814407638424938664952290365247379099118899935599817155308924206714236547715393597381841820589892968265997300275841641828228456761975252976036344673509037452472549387252243557191816952858720814612507266397735820542795975048461267977749512997364355166553825198799450379091137053468223056361153616102360485632964376842602743978406006138418260715069491209042211382871486763472796874559197387624834962619654928560313927988325474734384075444817534137472132057821698424515134646501838142687319115219302729921389666760352753029913103215034071769837430531872717652680851668890924535463398681428634926305788714179610523482319842648484164176807707116063030840870691211326794818135987535891056054661362043498578701241958092684702467187026158582796924511611518534789999433451980867435169634790320150154437038578408175932035139725746109909080868588745645496144048115138163533593438383731137324696976987077664974638951039843661231446061025556441318168076770914576777444975076884152196546846285556607081248934162350898002551123149279619001107991222439260081949647169758266054063762119508574757001223541697749144242244550061710692035761384035828653441640483343962071749934805362178874910782891465023639749685910744290671963647776019038558790735965100894969914525263991107257953529441400731087718134695128619220041663802417560708659626478031071812238940408325895552107518789981926891324273200947195212004964906124338593180506680442397102593745159167013646969248309899613787236422589732479314296662826199572504862099695830794611688599153343041086367917681300545974741288991606396996203304952596537135971798203460972967258213352764808310535496600224067672617284930096830926064518294914467331407569005021825261925512302169229592663356668621777993913283408463891751805327544971135380960524376094495265281099000626971274863254983982967707499799197710181721291937260399576735746304640615640887756028978280111418865372026864471245103354158156878514204709825301042076734409900302678742317523927694560859644024197822543609351370783898573263420539683829709210462365977556566857597564214152647048658881764745987907691208216435584125510048360124252879834329973203588346898608311039287377708441211971269108494054669592041699983469232488953851988444469772196183104994168244308005522258408473121336808801047690402964590755985226178599003750669622671657766505603518600855522050437696088617411713806682236635309377410952299640151136496197284525410340332861742180743591167142093123746328591566881839696595422725718464749828708152211860051386078250519031932968960288325413167392132691475966352744595394601576415074509630781998468478995497179669483914280149315563336693536998883268858946780602828769852265162770426465371229968160061566952673551773787500454043387644477598996858719217895431081325721269523714615332356240237657946235467674231310936170050187357745092209368650110073707923230430976959597024601057289361921679946548953714890127349274382804430517299113653736361554980296613154059918131649521158143392182382150536991938814253914282651698523697874985995036608410779828040261117523061787513617438735178646764592477234664259306036893932244807888862880752489719272109410626305447555229302452053652171649804269432561963821832602282210137079152033868947139794945632404173762926880209524841304838966100708925259973006879513335755212305449514919535147838868358139465961970666037666838300630619516330932902841105923070359894190070011421873204173558031059073715235231731830134355823519662492470671877454818621040357392643446144858066726767685013951196991501128012932229655987075190744566946693373590693066371765603345646769920095493261280773211422443056941141921016616871075751065926362136564618425210726423311137116591473036242801447142505887874222821617925449142333900831769606941363786032564736470411463924714049367090570761072155687865823535436255831142516803720783216270081462470543187691482334690138018087765337736154214179864569735657720820183497816932957491616447964594171169032462334324576880774799656905099437477745100691726339915826319521838218349141417535899922870743404046586266321789936429192655312692127035905322029155193478708807685841538519102019085901798977955244176913808165958575500403992971455234505368815183293394432006887358244429928682185774679591269167017480738524364269123857439113542188148988787499608586551160430573316227052025193870959371152701944391013126077147434079418545962793891769287260544080053772675592774636612533997423621595192490063606020929679855800816456507086985794797332029126474915187738671122558852934819932866555720854650448400730383123310144767722982377599695283894260818076874687295224819201743053273076293134813926728744320787245343150921515106962371450917820067812774654136101361057917947823447892995368177765664720147762221240894516864855298215314184021303019079704763818803647334831551901106290107465535246518153622187465892865903665774987442608550709230166577208662319444326773914316139440000648646945758156885035583488966273268934440633150133762145489915622796811693830278894009173738619781483599200367680492009067052202348346987352400058475352862442611887037529268156773839052885385241937156362264536061423589922989299191429260717003511965235544324993942756448444013756299981577413191265932402531047279898861297675298207194154881091867751638458170257820199516741264151162618862975754803896246417547431815505622846408673487433038670343059556417977918393414308341409843413081298165663197349931336305763791746281518302099554949925782915115097402008352810987072636897786418796771352409309100318471657339022238863747143143882704290674323272754261477768603224190168318274004789592470591708142595974725949420187868201091681190715333192995958161788630389614423984063184493773247007923532323841833789805773127494616745778916779582936441994881633438989542372182095613656696185394963217912465288955093942646494249363163452461710061076635820698528641274549989624596417291960673779581775471655872089585580699471652822797385370439431767596054112409345854895375135088313018929184127468220123407129763842802242470809529338470775380889167101874681977428265195914805739858691810228507002792627032915165090962030734295819666757932552922035212330777368753004171351680053226552849622577490032068586031509011732190290472189009540633613713862013288539472758501154007386735326366697523601804716269926680246367341496285868670812694098428616509546572258940216234443171569304192950670618201873285187983908197244908647496380324755728288366698005329645120975406092086297518439273838587160143096907905784679979975625309016554527966023629637471477104264899649314916682201298074037375952382928893174040023224431789161801851992108177822560766362832753153327680848345766892581493256409896503722164811233756823032070715658638754102762199908581532508931738864932625595735267850894943773623087464354025054645852197831251065345770031841155850210000396378982663834234252896830454289028282108485369809369374214567485421413316788426439022157286650383122205781219619102250931404264209735141207930129780020344371412057053430569355068730215552964402906289114184304671087340354405748079828691615954332162754509427937186909084214230768845421233350118965803568808684751122239541040692525849161421031074237077322963062156752327552362551766173355182842340939294986042245568383708030337449418352804075599448894314435733320893875539989547111847442116664505559186221625114326974053433923919591387934488892854658586742563384743172606524741928250837193962044204614355227380109185061177945419975196329001737332462743003562363395139660437639392275834903796497833389327406035595310291364915070001031006192433321229922726183680021696505246906804227161983284205455787398676902382413904865677471314771307727695220656721645121732869654659201661177263523464418035201154664628752263044598461358860746526715638552145682700420269298733526295086327125534699133584807887405712085539988367737990673426826241284349461353201422775248709632429201625688163201038260729931855145283864817738517040052766035315695229391544063767195341738751141117233147098358597279763359768060560905180227385746301845426567330461551467441180824427169195584456311544773090407262123507218049887211238322609018056707508531842258023927208155587257627589450902879154866268787319196906463391013198063531292336284018152832860607947282668173363213295036625132595711095342635540695508320140038927210751377465936530374708118386213948553114932899001442136929054349691500288796456430371839085486748760777221587008204260222945365032168577486666812500301531581315510296041808030582360276090722006718427126080694768017576894529083727288915767311477141672047487657104776440478801074047063944676945330246261558363786179466002900320591833227885679205294634456925047970376421456200014797688266873303764195076391703588596079089029982579426265840626614472104843027131579001068228727961497543647421391165949781488469715077200725902313784821139333295311624412073469853007721507872920231830923895523996367640229247972507040092422524468918891716369718093238940076391615279242111948912747649677342246597032469838473139852222296899495391162732602893929292086988569549820109924800959124582654864845970574348067803531822477983840271328607208683827520480198848189966030448936389253297433857258987891066070569728305395373977373569892410727187534822750192213125897413829587681645350204916072781288121129152909936483356881322614526500312687514542627862544341027927855317878665157485008227803177973113402982968718061965495711046389616656411097813864686321816927797700543087400167202755165654804952745964944250698131218339732990232590982534159841974966096823178192772055985721212262374435585834596762849605554219047470908963606592987584205212943856283611590930269646930501465763705511093094906256155087144926931989771940934230019758811436497378322309607657541429185174663816293433834071922940364586661199945265327616207790945300534096551181714591708020124969125408789681738648336973101233962382045622254523064983181205633867541809363420224937039336507226479400359088099319921629249643208575595698124958747370749148067108228183532340433958034993908134599803590359883355874388972360255653011451625455741580903641912576812982542339660110083587604081489533991231870303470981105363508281953346353378571201852827456433791817766924819555779058592551644570029046105745222135920087468293918594915839050476652110179552645492856910357656018035841453823147123119163219343272718061636424016530801010330945213933767559517784172855726542628101716552280856689427003348008050436466084727299004775639230992864073525830284219592561850887339019087323472977528776402338842418754998957806191301163833252432231157132046230501938848355954903614915571459291748338767363985891556848552865761193611733262416847010786154862005346842667963341793488042408797153744953496915683170740878362280119884043293003855308186914383486819381162980178333525727813203994039055918909468667445101334124458842575309623463942811429626975453656963220014303099615488613355731439194943222626571999139160168138987296325177205442711372588288269606779283894837343721236438731566723678336516345643014907510635235435218229356527087241468391043315468035756603583330877151889373589151414045699382180202336879194204446882332700972273283436376101456159387884768998807515520926566656403654768386619331248481763172843440005738119078377191003236656184854117881930352304059420608913367261628507978763100202156753679341378830905291321885786024895034794925980795708971495638755129475354783792103201655499716699029962874568807126486725516937057555972399034617733765253465553308525793942485523080498791506203395057089648432692110330713137211617411183577064954067662912311245396487341447439830017827462089834508109558230601992743473574591956572654780740164170880357905560756332917501147314467840494470416836205196394320947426521056443485944354601576163504836081750222870864530483804629828510967403583514299770907297570162274108176511948942089978435387519641378975393318832735005103144174831314263969294927761424027241448174187352297307612132847227974525082115781875597466432209446012697701498686898211964640946216392632609934933079450512333974667975122080412435948907346419291223705997366794468898221504934517081208151222791443115753684719810514688281610615584927216711562570742434261828559999310271309894942759554851377252312439363418122059561470288850220094587654055915452635936789024162159162113041090655021973881148549683398010100485948998507737961068879263104540366575373052651759605879404404405589462436116116173609380962863655596210955770176193824688923034900463060283879063879638460050968180354537275710551655577672946785538213419462821958578147231034196873324270249531439751445799952193463607645756197168206097480666131727918856283344160609665455727599753341530741498914998012854408299090081924663205879230462622649666141400927242861418921342092287763927963616562745860217524502914145314268858560694048346031723847492961331779990100010350259943582904381998864206129103166953890473509945143738875047850150730492297072671193651383944617881285033704412889857974688277381155103414857448741278863744176003422334481477689493525168372466087792458378363642075997915630299483611137086543940077535755203245002016237049412860326827566585775547556046795825648257362381817293018751985528660150346457979007384636416577053855016264468913137593798918665733414603143871749521615935104681226044222180403601164003376725945550819669589153011533890023317799112616314740586919796293595753677668975614919606971914062447759771462545862071259906308717581172047311124632500591506612603402392661146573858116457578689817949966570343561049590288469509736810670379743049614503852829571575135347671452382533293159878834252745649690158087861274741262235502984940914939642414002116956351510189310335599710379502496330272070445836296051380266970304036557144194567974605461152949093488926591589632655035200748377015233152204339860711860475786024990787045989818220388757695034781676748925685980965854082524111175956859234345352816695634716279898512468731143813200656404552964345116331688300510312187664907617179425017114755786062326242367435510908726384915002298207308640216301989615902954770046181457093984014918124192380887243384475056351434720911628985956554574816149839774517382826424871246001787872010072424672904104681697219162738993959365368468149687205233808539123004405548899290655833262955538230265063974373714927941811843430653283980898321430225846055355179519623041788051505716285451155365721088301579571186919364924447086849094373243866426903865205794615166294271710191614329669404297736111806605745018198277132069456715430897613759006698842519543330258388881329575550556957351991936649095536145421886732018971599335271195312841344910696080202320244869552104491788547281815067494340658550662891084824890150109916885275506169814932453744025809751729681327715036232986690579766349451338756346931266578962255766621294217568007080900902732137566252283014942358072494250927462014147730552842415009315851891960003324305028444884224655174006253220393355811419485644204752235745261676200737059299439282757581579462153257799111686301085789173227978138949412275634343092026745998769958784391917045448941142036907586696048771777104849438935044800173780226261274206852500060511428001778447313524026574981138867510144048029616451850518276862269101019397659923306294263552518149199380631314851647828529242934378037449462324761590177941308066121901522843750798026214512156607548829643812981196255768028081030889057309464694641106859096789685328437673239798675040378116157230775639716494546263601402667441297560713189838887999568202429852066365837210334929554442406817193071168538450546310181127373072391440573195220455744601397864309670144379440446053194769442216852703809217590514400718973401882182562985580386807597923039299843146748810781884212959755832037520154567829683932788243262481743444812205303092752831170046833572782726413869765847419230292391875556146571756164138025491557511112674128302086506177626960224545731059628450011521240645218906489565626501246475471638741018202256501027869357279937276986385594677113181470906864827789361200043550612718359728949792719267789912896561807674835505099932508446427263840357301277499038865403953175492853470819958016551212515664374921263686552501530157600156265760454265960780963840808998132081205824476631250845485839113358028210547364612699955900625473147591284631620421216562932613845031628488014282053028917113526499893966302998299541208482717748726001752470242676107810718438796059323104170828077597760776457109110109505598481126120430576754624300181911948575025477811820893098596806452195129195376376794701425839228474289475604978877407829196487988393279243720520234931517966217200359166580629388027045564260402566536407830642498997209265161687187526594794021207004245839074472129375870121281733134733926942484428584568416495452648537018782332763494700397601726945707057756424178388768179403904711416115521717968246680212761130219779233189963709618645954534054611556104048741088137399147048857015083755593775596132036912829194000859876637662362591048947158927162174695328181873076469506365149971878409561652247772624261990325675242231624461637025650182824683284750736495370336274535219654178606914194802258480682740284476297987776233866863586820949480351312350626912875309771925685987694483538319151375905448494857575495873135410052782237025852213431504893204188547583653571224128846840200051657384149098693704841944892146843036176970963922252722771559663349717600068076196100380397915488169416288518355698168978519832206621008838759995453763441852378744258961457557487936713862685319980969874707633988613185656624793497410920370104394227127601590199563837803033605147338663336002815425939474268929942304121067341154144642033494469052272938129688156572726592443869911201164795631215339731216393015102528725749133871193842493716404870723358217582752932930651056471189820001186137400288087047604707391172314920957858639172667450967309193953081726104669695857760020857396706187736506991907122126430947760850187600391133717646133726800280279634998415988796366598673645399970806880045365871266081248972531634452184024944405059014634380572919174487821354946317726644330242973491235398484403293603305250740500649159101270377727653855468625747725008475079677968329173650351483326187672026568972119269873682972437871535570014058042593297193604783174377075991228463495651989222388330972140163755498483849407958551178632012650429765767101363470998837705246448663032159133150354869923942145273748833128703905909294919064211868643213024063687131129400808605082065422811181131395341304258071551146280870686394510886482536495797654405778369770771139351062893372960919116254339936175844928142335040210213365999578925485522179647326466861271172889779370042897242194256196737963801730294117451879008790108969621074328306921672514725157624897395999357109407460010638184901531126167272336766170393252095400405305766664741123495296182074725269254517702481426416831460669432205957702865243266071098838031284391894442594178634994000742659244949895078759779865676810567420993998465499232124967626575223894685564738526016228579673398412498054048700539465443252099083082743691358896988152304266271391723925960167296622101055381058342779248202544612023067946160250514691681610163910198620020740049988915121857443956913072774346451250076875001844024418973169139256278093842101029614231453292838847861963628388174268706631658541303156814449353574329840007680159359507189454629633927430705972988316767961078889120806376908361965009359637788566803193847726710423664642088771510609538618643050164123727625352567231840321776173793396456656336635624514028649783251635239190025286708832219442056684636403769226183549584456530945849063141082056743141615970521203536776694481656315075716573836483003044508624044263284578393987307965822099469428732431167440173648799236378623501194479770380557139962428201655615536549115431268172797318175850410626153702286540482706330817784618718667866997321899597599902245687928693588515635974313157002199238070847691779466487969023620227453751557548620527697486880523233282763966247089266977877710781326596876359060134348444690923448636405677371403151397515589576923008705285085613895667931189570907468846354044651636684040989333602147635817097144539236876138866166371788465386690338051505198784673523139602581076340730601173826957826211925203281946256283959482755886266576486151368996167965871201751459581993129959574369536938802412363061223631253195588692107661020969445488641638697525592602470156422493849806428729765250364871125815831957721881695575662233774093263250820170814620636070139340108553817470885445443490868112121811414403618072780401000957974799919094638737324944358397632205033826448964247119674711389530798828310774374023755015251308733382900270480407522840548181641410945688145640636533187531825994554157074416613440904223084486707768313572215580631181886392034060006203112425169003677649297949001457578477027650733709094528112662106508240825381959880537792234039606348429789504179243030304140205757033450066192871284317864734957208317208638472111666339672453821382665458162086937059515287299894036097516486079768084797388528194746181960225863598807819966812504550412891814707934312796888658429123973822433928249762838809198361427021686765788036747161974341050918130002211444887773363687818547478211244751331728177049445709937157349204150490036187791684649788984069684629957665720514432076943119465753953408105946842358074833257663482693322471650733874267091965481481648233342034597309706743483872239129236992503718451427655698302448345546518041433093747648305707490099284509470683321164588884955298609276175763353565888416312840293473559770011746388438958053049526437852438028204659588420765538288716130543718684851041354798456080799110066897857652051579595134194810571103530711608742975502381618878004899634131286964549072961889436452998495889793902850647235139282302265810034999774468150112120548092080858995907922111607327649675902014882979158913324031065957080449048276999317159881836487047893292746198620430676501274115547794377277885120634217610095838159734120451302773629510818613665824454433257446543882904294245170359476092219971161170946490004637989791424034378805104899471732928325464846281234857498604977097077624730895876585451141946853982652178319653133379948687092157015457835959482187801485699387697338514591366213283953024394926009959495021514254486226215205367732553789562971805713005587396205451269800787708096022181843220603399812151978389762801147696755144791797283967052248633398058075870393015831457209068592176686282145492606087368445896325873466285246660809581359326233634022100145495668942158722924655602151924165765785447925051130005911740875224972430317989129523734856749828361700669177116722768712644462951383945687911750560269363702492736103415140541388430084439994634305463046102935042081870468191774271147612898672163279069468066694462568901101482321426343757519502713282209603144811791629162574807715557914361284650655582109880623317249880546170141808473024486567091176199607287002573477688700937494181912874713465012755431140996247709644989775074319126197179270725125909690762718698577455770838479255995562040828820742776291276573074897974223050679589527053260516610724696701223723331208977349837443859672871680905417190315120905712844504599647661064454296290690884683194388961884674995407966584080286112939591558134335082537218000128431020530632283257070473587567461083716010783394576816177045188394346386449295696430305178357444679499001015774941126689603476785131407658256972875770359645142936452377581051630060123443407162544281925946107674047445583228081399133892193077731092772399285538943817841768892360892080174051277163290578478810452328983027936977173044503721244463417966922809557530015447340478257924170552033706852707135297336477496082587867602423411245361223598428585796821139382234177685848281863909255903937764435185935582907447821237838171631839175218940848011866762390991298707778496324280988895200950343438739729282603045983700800337307615461051006633670579353895554554132021028482715807539332751057399086677693131595225461821964020501275261496561451871771107351089182944930125714686361842244706573719555400509140147684040243787381015696097972697173555513090543589821075054157452039557528500513186309505235517395710148668733974667655751730375537716418820645680352634862884572871735602758212505881932346940057465633916245875035558663674847209608663898280884123982234178251998621426404147127116162146501970876290883178769331829719482585041519586504997288931244599464340616766794893021633845230580334106134840033428028378957068953820461366846887102946107863551448845680139739184084031606415099036203001501730546250705105759455266783855395564828541406326727591349675430937704578558805421064497856826628092552795803183023352973718485954934209803135657455484169676416953834091565415339634266701851774641437709400890713474652685178128669997738745390057206105749484433592315183337672545965993676781467179678918355229554036816280354117581660915024089225142061804235614431995586589277936482482069334314493919925871663753016649661836327690093635302456945933232667718423847477202567324978299579218036775839864316107414319999754323190106324187729057584469180170460128570245511480768262922856146014345193555153158007750102640608980782580648955736720278796929897211088690114074623426959008955821948728765077661962808893724682693871981196338889642617335367349825311200850665648201006711866541451402538935714155242834089368420859350766273009655432369908816480388545472182299332379607810552110093742235892032924535804037065829074615411196167869126633126217559189504011265122963952434579499350284356481419289398661907155513125180323149351643860018476609417932281956356428797968508930232019206571592616665948210905548378507072301081027075142789197890244942756226465280796513291039323507335886409392198619174533479268879820363563210654710810790010554185531225341026554315068127141001142610707685342377422520651505872555334097806415186902489665480649761851440195355776132167178280564082149901652234357784295868372052567915049419904364464909712925567750627441997500053600343007265627431039411037093687803291822158839337069699646373519432826191211157476395081911729652823395787263215166749649475174301905456415375439388560817234771481677096636368051764317492728290744430972984155358074368974391913909121501892554824976348400872730469119197594936663366925887334052198228107399869007011648489024737594092413735550047023945088325854763120402735824218525023328190791144521327278651815302617995515985691797595145749450780952691037797895005376601347299317333963312785044034818835756676691914180427132134724542863592534918708467447627565097438197147340734134362519744414472303043306685829795037605933599024984129086065724705853396646373603798673855005195461674425768978895538103914798758720679659168525706520462841815754870563527078164949446921956932675932869420747541797855672169412555711277303801589791082606914423663574545925995732359772776885844102846720779826169603373468929196281830808423421429362477316116350050362687399049911361664452813269495298673993735641712641349264963880767767131323661522163282313564989211734059038572569267078580993086946966727207947351016240475831761263299343842968186245351153260114163908512115203866589986933163688301605236802580944724268554532548489225953365809151899213452728787351170419988976499851953718518652159700106373912603125548736901372111035166355278672530533843740472949133921236714469079840635551555144602592544444953608606907067224941594746106850472366819535757228651403802313455760411353306367985940240747211666335726865409016280029085295501726239273308120595224868344947060215633125501542513917289355035417249253513896968355927639674202499462408336358392904693249277603008512953457504659021364105489954721496365753578820817421632175536506109906773717935747613093684910440386486360083548296465089183535761327380393477338924284222977365062977314587115824250635153282708342095383850577329947490146807633757300213870144353424193583423714220784430283488524222141552405515801221559940430454369994717593921358959407404352907857921652384572711666031945668651480495816320838866019863453312615827152186125317163617697477328972537748768791588779614774486729858169606137370621599832908645875633704804406121544282541455505888662393008583418218541569805454528378370124473991951241333977010675105884443340125448509068546434303390750452879177085984871097855010420924922736198916877613406252468162068712728000669670117947899824040557982190854224870117792922839360077157230947756072060563727710933709197009664960335195841034253733617203777138355910677283449697056818718031656637203532565539708515829879693109512080824664584293938324097339981731859106223825853287725696991227954938914630477391709287024369388871229632020180953179093930477519812991231679681119328777547518102203574856547227590324907980653841939867290020725617696613811698270359433543989772669578786551167630647423997509652431680651384744646847427556501927559707550808376380049959154263184501506937014362297115144808333237231450724312857065013186503652086444397152335014690026593951483507359342314645813175335216524837812621571483070334790147918190196899362760539170163365499840043789175160715703582904254645507252880876835447564361970291561032907772498475515131905400122300086317359584026814857941607102139943049609197203808956247960334824551396836329213978591601289515171261554236048661199081527423714427411767947657056766950243667762482535014077782376577509348515308837069507735051413080525483592891096631322194201428566207885995914959241034247685781216552376416251799547321641485479923632836458726175095309387151758043796065954155146952688958227795201515586323021761964877907078308477449769292473650013693539544563868552049633004189693645865537862885450276974659955727073381522539375677103362527299103775801704677736633099171227748649105826432132577569845655687751197525006248955340227263392766524186245771535602712878127545674782006765074203693828061211672935501948811483633439025511013083624071671592129487428005256691288377039304376294725578906408072664117468964438381105054625327139706305304074726709900625459155833023943582248192924627477311305920391302249888191631281785457538588525019417334388847789120550760926689061914096119447419946416570188300513218141475166828928184526545790581310749141576753850943471180731335742769209293700733364122791322149649558376941121835588543876324190441626003152602358988142612056714292519953553062144341456061484807486026914936623650334542573638139589182388222888236190436891552254699585030682934438360921029929302733786425196968506822674952701646577603242984247897041663937720012412470415905163154201246825115072805209822890689194501255527622084495529906608462436006173989275352088231229828336114211161361003734595299500310732871474028424267693424683690668916044027571731054387370683616061979756395707049161177836896594324390894799506240710315943523383184008933373641917664534719098340520416558022439901567469159208280077603907338430588933351765166929653735944654607725909806904216725998109064193928030934942255627273411174461804925950335765352426557839771308316373587206760806644056395024188615917681422159998674410580042093751994227451320956735511230740903985599816241774400632825586074487122271531936545759046544752588829480308173241784095013754303841149233262772721015072086779131741633437322349961001345253827092213624128329415144300259045325676732022576901188932019776464013898133881305776503136508383115630290116029800307602934459060257234126421011190402551167628184566209142748783465809174158822201975328627918409513822558735953112665196059702471306881538134894998623391319561364803904196315782709496348983458723773026804935061263079585738978687710463082013078726888031299195773923442628807924762991209494431769940042309368522719449506177050664792382922415866397735149020430184328542984075534673818946162711643265782799398641511537199378140633997269883017593478404367332114314598902035705072612302095009386449846709545338493112518874758387758063714641273319087765897779958413215430827382915061434119942475437705992338862744393874157312358914610094229707517113692628299987185249139683666348417178955710289703240167712486174966435733908864800139255128436748320715310755960403375486423651397278978966420704008375050037073807202277175590398883922526789306338578859762534806416581837059871499801222256322158074588860088458644639266009828103163837115575499728727775200015395177292596892041832662330231773204405362721815825573632810959675832879019852029895176543944876556162793754961427813898855661938207485504843243737571548154412758354683235993144874900728727928625697304286523858713977977501562095640594448108154928462971349476767496924647692996194842288704939050403157793197002135565398767794162118913592585484343959912953722337558305308426036932224059627083089766202223923037459564787795152115601171449992157734532697233106283391527677674123625799809936545836371858424373909872846963444756950103729533669297190684673312436731832053635347684686714843085610193826841684949512117939968107491875342929214363675146062750596846608058166032966808455967729818620516633277463729807065788555289933216015540129880295614220421289421854776248996128720625341058886277536341071145202271434288575276024061404124013550114758327388221455419692773707461047352358207236356311420885076649479634858724352023402777084719713392157706000455784917256725498331094874867168586114073529862565334735506091177021781233532023559585930344233012267107550582922402330235779033712239178774091372777873134858024606659027384783224741219907401560883693522436847977445137920069389728123008199807128324998500659773994515140800188222970423460274592192691724523451411610485501664779479777022418536143110818186359150691721957554088026583386701187603940207790831124431191214265546898286795625722210963037451251329831114149749073266505363090597281877931196895653112536055328553798995599039948972919661891889112588458124228470036304119462730170498384189911860761749829056851972673207253764379898369990803832522562590446673616405071062579426245799679007767062353266361104773700644013761591715673724079973034131412768429347436487962564967518564574103719358208388068714270519917036055231356989860961066999750675856563573063490202805405458305723799415319694960108058338706873869935211751831821523167122564344408517287784310439921450821111682432555462858013244146347522187052557959846794262979199125424276355260271619369469547286149163834803614563581662198845516855329801699409502774223928900512122786780473620241583366159891137090977266175129253469969893765439522315468032564316417561428683978654949201177614666234487862624757389162256642890742049765633342899878999106773227478351283906696678470648331327765776210533159670077549146565473664883106472712945108632297639648806109781024464315486052337788955435474772872484592177156275656850783501990506434694321826821892463240876430811592266322262306360803252520176150877326027448448395594623942528000809983278092663961908938401176718822849121478247887537503389438937982051296788886021801433323294353637729032083875271125721352743437725242381383688977596489722231274191802813365864882603424182188370312044763636973115079193948958573477888695972359296966382491849297684686389595535848204791480054870752913214040301325413412687731763088191885737681547679796018667080508905674496713531183646831129667055896819510659875940235215930664973380611669739506950760912912957734084496951319533054296554430337233808306333223213967572311456801729320761141654085120433829070948765888015662952326192876367518959002339399128785964172046110077579048105633000906085273337222139835180014376484526166458304140469183587271267561279803891418874513480208149835897973385792509700912653326808821298507397492203360572269683292975407105140239705313973107651521892529990553172566049489706186911314378767333804157973467263294587318759808945137555747362384319979786697460717367776063611582025209840643983165658889712189683055518420580718749983016545647165932658763831150482940906939623731534608428394999789214337031072846421206979756071881925008401805377354761897275456924454783377230954179546606746648178394625591282271713481511627767462866963390750895761183471411066624900052925171518946688228340146933356807631754340033367489542243507341563579971743959509438426963622318437390047175601148514645925102191578780171195294343297495107573949777757444741044585820028648701565834863085707827576558414442387212051492620561058047260991472452674747478429642979790926816538225339499274129971602137163333036643666576581969161397033308809447922426951574681034315332551477770374176571411208609314300708128423311599899779370580927463327779153997119308503961020301343131872910295025066551188251081717212656873051416645223882704446828465305026420314497899470576036228615031414678268674320426304676298622978747742274670685466768292547012249202321205753522853146922879231452999100452431156859521329142711562981706853905987245381286906179187379637972072771207739455091773160561765741455980942554554380436448471932586206829583945519317916496698102799579754773673392705900014241774500557622803175937726624967435598791517613992386105228561215665592935928573843459555764607512946824074457564170067057033749386044558401326052253569391177718536876739409205038993237220994780623922151268065985520387225985856179926520105275042438565477762864885134701427971273412426075177522142715216220327591050694262722475936057451333299007060780880277817278319104717906371838927109308391838653945437185135516563122828545798867909373297461193093710578825121914731945226820490074560358814387195487681621847141048163662152543593214790943382057184178842463318206569836708000174490083006636981684938129072641788933301972060322472389186760628168276763993847572090433147567647892141299898925628161019355222265347989576972230221169725842801029959190625409639400604674990824585743701741453339696416873033741788833024382874083168715707665329590811411850400769531781912782052368925154327535486721471344898780994207675534852346598421405388092707110709273281680529151378215467534902714318559607114861647403784433460496755434173376901658633789174226837407594810598205385972454780739406466782892444257000667242254189663167658509145209026041810276036239790108422925584142569432567962272634023413770295780209764446068207694279426647271146297457813774632366530725728360277413921249335256442686877424228513141123828065685526610441650414729782315929951211530974549433935793894311818643576397149428611521566429241000712078400871870761842292875976578214080331512551329758284412272081089717059264202874178461373252995124837770360464651512796690666932157176941458434156982699503584808985325229570189986400909443707268232117732769934176308199496919700757401184768084988561527226215043530925025854305499412435809669754504328242708300588128054593955780449007017184196826424158092107448831883241615912818523925060456812463517204988094867628892210078316818603628000322442417265330646392655802198665498674528649838466151396230654770224981725659628386559771349339325678301039814273257068961276167029613312402629724763705021604720590999252063351013972910659465563250031043530547839479717220324995125293618846805480000915782041028389047083959984400426973168609088765506029660494785365880553314539181781400869892113750181079786375713563658180087391175600239146602909264145000875387547421105038810502190894035318175483628584538288610556489324069659176554418460591839154383434589856543760395243736146860694494664937704431549709123363098512260823560608883420811703706599151341804848129193218919855680201983953630938712981945638028877655142090751347964331000329968567129008207479623983129758671593694542995426718114812480160137249664155449868270955933295224799726271428033130635744367823965870408765449680242655081867775158148637965945166287113051206493353838456197962669624960118623169719397280599197152293165534603923899451532785242550978406292424973838281548896485376522217521624126693339407804297560010383890000564804075577864605985788988524271768668253917406438934613900712842922766681265237537553202758717019773233096817094721832450687744276988724283164326490586120191598048623412778473518518246296158164526027949933656081542605619348965601371870863153015068445682758181486805731689477810220249622099844523832755365225728142329194489709495913553196180509030006746170758777977889833771561359574841063221310798150601777117350065109833174489922890615794802274055005476001232912414051188615379273135038978834258398898573888061613961869507076044798363236617380790639309807234369038716953176018258370149505399022104432806455738415075360563686908201174779469302935056386947299572173956413422971189493250592326510539924264426945095077927243094028490518714317888843840752144569722593786623150325724746809668886967415657488823491568224164619974398591739490983848581436079095164582612025735601309711524164033605156461131397882468018860112387817546253279902075778609780126696281002519029633511618996985843716741046599111210331430934925001157177642208225714863340549854212510682856249988441370701686195306472367275323604880267055098695821867242510702490943702517823657098236635084533639961449761929411923199074478602202358295307401060327199719977873565235420949655293173577878889167429473945199092881791518555383457735624518967450870200156212800949638952196677984241279174532387092713801738729631856835197491543849344369070235149503045200419379385591904119674406443882751422555651641707311343106963976265222892275063778882655467003351998248368433316734613488054072261946123977259877311146833715299628408443158195567541832783135507146060443065737219390002532969094620153471810591584053095098031631330809139797925593023146295992845573082212443109468066825012737874648328044141342136554412459486960868372505165781440357073166008933856817162051797034163238310552001130234301713681234365095832988283038326515029441931782285383076807930085237863634603515472765507005711942200691905077789862519604050315245158947997534097217575180876347343538655443187670304516101560294797983053414034031547541527772207929144872304796778987141709996260809278228590953028055929638660788121132244494161347678605029319098397331863592148602153856352643949398019208797567121507881463675338651918843660572264788586986138974700236153756088733758582326755828755326689667585150195228810292233710744155859890693396047096933340307446546972846316528668570362998268366592485348244515433419051407315184729100913837636287486470694136131037185057099404129391866118657014654315902564002831482767615337221742080977860050039050524599943209944305185765188940966173960737849736074412665526415453715214977235225195629693473800420328207006729506807533248074085280888739074849679410531499943550606373948757813888781872252729177210256691852660477803623656780518312633772891380009311792782711821212090068709693534413896058857173887806896961434623597299030905901017601547580541309564391267699805452526525197750828552646141379488986114164381661738475035926662733874670115610422323586313650391527611125998932944086642020925215485790541523383165998281577661101537532569660317752158058672029207826354339077483010223576619106308130929598204280385212104191117679816199631750652272796311252669493550584148818583853137059406757764031555607590312910899100879927413843374130583525989904199220492834814242801500477258678481031024256417384191846319487364522269686413595907293117371256678194318525871498906931874899211485977277636840409660512972741490783937971048179475269895793190533915202490147911382276174718428070740141606683256893943717123174178351986646015042029039454141818394373795646667452886517630843703315976334838814055346498521925419262149059101048174012705887885574316937650233486496054647781006572562113324571737859697129740046322718770005386895556569623940939346135970656676906061185054893440953696018086716745590963316598217930498063545375129446247894420807258474235199909140084584622605649170059043061125226804678276630583593831754909939568108557970657064906716843576125239606558281325329311665686952777296485109371539457827698704946389622222550656599843739809539274118151532696801182607842519706782734655115710303385415558511419591137444509921548898177571442541390946289944454085125679833252050061040840439447218733415032587564042844575912662776484291721003585403715569038745274507553662738878843960062867969827209464553273442223382562446892956455831795981698282819575258734844450191593150865027907509851718792265109832215703258558917514448169588272593110437204370186457492262547682432217246183410696066539784362240738853868742370353418297518564716692040739825971711426128885214157604412930903869011381629150348918414176763094300494674451049309245089036818898242801404449042408925502242237463431526313646087589334099767482800623278586011653487488951708284085894861956360853081012133818108820203614011671020954780968815307386142103575998086125316603597990043317684650026758038603257657796814533456746099198490020121328076513628293353109793085296897599251362472502339991775536402146927384226594393569195448911165908765142905286461791868597844658633106532982870962087831201322009249583718625562362247343651045954519896882885211462290159328369257112950644213445493962099554806440156146915915720250665184397682952432320364301378111413577374654880795324330195095112914268829579022526003055553307197975452387771158787974303316804761413981602049050215771091632171213409876197542834381199439265979185448022085833023773383706877724624409344806427973981769638006936746044524576245031220658652661465494672174893991324739528654514049616163589785477761033670836687189145877600407962567079893086075602320320261750777565216836333975816784271503806781674073207588804910798523081172010175323702651186782788226457940734430504329501116385232043941952671073321152975516491989089795382797079746741260491058805036822605496074524275981565894753572805117511491479853255688704623940926451533036200156632198615531274765594020520067101522763397190259175334043960577801470731052726101694606841164453712765896059944982064229863426979664211116471070866550803444643366144520664694598612610016326114074149588785783025685845694192262489945103405612326223821250007425403212022566532651641445976181470424610079375056222909476860067427176663491693948733732500205131541586190487086126566740740775284901573453877876243131554258591029650765940536179587485732731607329762772321043410242839574099752575377100754188582215826452701756337586135511027899607484572726154941885531742795800213345472229115290685585470045104899600640229654299300531429621494508578822821676622231951088312523867232787781347523867791477755003522574434224448648848501257236144648806972789204555096477225812593779405833639856862019734343148477388328278957114183360682301617617417604038244384751442873694941294482230864543745856664450461418025331893833880817474664841046696288041792332596639547517352013220059721795153428276700500631104575999830004112500461789452292116663920026182154754133348106657864350369853881807046765885697116330896349364038093547039384931922725853960829617427653248285013930164431551337701192315564836865093106320939821209242134518083157192238628568347616878969048404747047149920462576200391374593242790906261960854998845120830520381674990856592291311351146908522799259617250040268877178440614683737756906140521516561493637573676150102622832163658589788379243188978127361290627624276129955789657978279081576878173981454956826251448528132265851855061426366500429818481134343594626908713822116451250063911283118878277321452219317422920664023589742464828876071297334522452100669705057910517663190966540659003624075421407994531241340448625752198468902632802833454671817633216743977270154654867306033361002663343528689241760966196073365177882727259172014034692859545993258460004710538021642732000731528426180984964927646528329229532556930972023329864559693083078480406723109077656118128934708004168264371590955890851939300870105561201533705187196713123925649851218824853392981627075053420834290181299468221025332601976213252016293638950569783678932704361687659907772197921670892097319230169968434162139112229280167639602127895979861303049247801426967788554826977508808735547326752999772158576967211146867916602365960090641130805260351752580699425539727944137342094627454233372121213700765397251176973895297295276373392978789241703755464740626159280910105763454069717306035666703159573701932934828110901818437516237020278793200629311599633694972451688640596446016226410656240794789946583608916363857592961975651494550602091634102394437192832579550287453073660069432055885388959845105338341951506062706376086434550971048744642102333592535526732390731665698411437466355544936795018969445402622039589426092503183228039949222321826997390152299679327671389880131605720631766032878248966753691895762554917877177344935860952851170404271122853721428634245296829723449764447013244929395314930778232010486045904063661828926118594770871687274383176995205571346383062210213225868628945167542727731590620139246345239268059389133615547086072839127105520891631615724756636023206188520584116455899340318599865182209580888408813205143124390113617980984334180367191847496608908227890519068151770125329555513029584707355883723100823336566329643196836397878222252523726667017819558472216559629004438580629766138173305922291006548163700171727650583878125030479472801735989723831629300289570318987549269082851020226439600163968951739021196445419961862885722642850766889790127726171752889364721343639573312462177700486269574360420436228053000247821891993124027530114347849115502716426542991961747440200577334961769034395527772452354481168667895994703601843420163672920505502516174506481855515192579942970073297783241111776499296942499422443474147415224991495558227794937883984352536576273156474278675427359568978314959759934926711841104430707589131511431511999645768698545191748599063344271658633392441171989754022938924515809180293917989560636993222672494380141621087881258275759212057283643739563385320373183418294394482607447492876315839861399527464850349093588214878028586133748622226708675431353578285170524603612933891190170513723401924287028964749454543895122629546526444800675428475657717578101624675090873272158223824336934157943599636261828095222608707554463933988888492342629628567461154743478306380089872510787277363429883207070600618397154496488920492549264558856080975929424565907677959860290024963663697963422452255498315129438362542356232474519069498221841859605635781351828725284261756971026015760961719613069704925208585531975023389597906797983786324028807974830931781982615246578778190368197097209942810700216310287796977151448576069109024860440206167499028282392542749816392566879634333283797840053196044097726680590389281880898848642666314013228017456948941384715934965396838132269952189265414417924161126465646034129402599672087037185095652856496561789192021636973774710504999146153406510415441856856828140917402312323775164997593083056042971948141182051604340205599008880005562815316943851811813524143077871381869357172032676318577356277716984984569196378692321341219272871150921540369712436645518551995624578825599323860875602683006954743422433039707485953234102509381027303536317184922964044785576202271891010867051694612047094209260283776652261831708088437406507551859896327531263843889012551115188278569770802533099879654226080195971291902321151220512396798463984401130048822818525297371758945691992017663685063242417222682880993640045566633694577450143878489612962262934845653335572938013707220405528906989184075215318133662231952163995448204383128997759742212877346011696879812762764458798498943244257507732709286874151007568994042318892521603824515506824521486807985893138672006397054868138290160778662382670363883257694102474781174023913317879202229668497425734231951238966162634543442992398898361130644335614216415399891628464659425401885589798766724604074902978839323861477001686527869363160158129640105692842698094194238604161929917584783219860278427593678460404796641363997803672601627392916240069631773585595459538261084229602398171249204142258926255563351176163070834368405426193393616103736336117032141369657666511069232445440451654229631647570593189884072242847104010347887648137790567322567388937174998880868181821924843804710829452284972377602623009785567780571564602913155969516861257789855146437803352584572998109194837907472981412269267316592036549958606881653413721972346901500871722444826483251370099976611596691453535331533813028822948290907506943545151806072760707756160637143900721306098292731684635342044167957225038809054458890698477166994085181312125294767048936288905997167465375563666899157354787268305372082686072066117325130861672454828947324945823357095557104817087482957127711588237428779913426007591467455643103044445899418327827644676765446574122905061444537272972482660106731414637653579023386799888479406687260461912131843357633505210412924050474233334562768949612830813720163468480654294253215635589802247795348289984316445897015423666170429964593624329712853132510213545848013806543431600035026971874464738739093355336620526102948921566625872636566313936762289853313923526415102151925115006695144168788156778253725940828222124618111442805324855494977644606231703952512198892639659462053249837871595076029347555514318373985632482621440752350230619953261020652460723457798229512260198108456572113719580828893531811457398263588300674426028258888767143562295861971237327355580212537433885897746861571154134145963414033207507753381503698181138869342747558355875175741578763613247200711560612922176258116340983359036065801409995867328121966473191282394091629275659416242587239452500093728864421022782066186744516369699305698540635924380146610949878107895379252673672405462022635123777783741723480854014157599002662376159764659430191715610143420906350740795985781596236772734918784424776161564555115239329605017124044963733923212004960468446436103825842090402107816867890324103328812474069374591465731173141011553223478491861097065238003639665538514290537918178739641829740513143637248305817583560408976150962443058925488165352499718789838018483506624881071965214189856126616715127893641208550709735648062490521399702345823416939205077134173177049644421632569051147946798157867090035691630071422029486399176076816463814100873664186319142542948049655331804333642367504554421331115342878045771976304977119616859444012508928350763557792602307071392935156010812830911354455018687502881973514640263387363106495964245864159267748139212743292077558511555872025736777272808815119436192607340521656728656550914504538107271699527479152552601024503841512257153465389517408399267759152359477244457366365374671104094773549999919189036902926775737171017571422995805183466926977594736520963175495568401267685679767947536592498559038517246498437267510053432010841173484156668019918626624635293076667317653050691990126599461596414176807587188708780234591398139885404871756870614587805244944760403978237068266908387940925695881240846968599645645158315818233220265074382961728139396041138830296420783800716438860777804899397199800272258526337610197609331819629482717162122898819915132736904412588359722960173913523015701032976841690489973087433532968283148487763150639053098931783011396089384389036440731009384262772411937338394964804498750216810925943282932082263139507427179271888809940418728842184950895099075484306172013617592921727894736745564962544156252653351055219850387604347887008229665967952870451177954744789617518971397883694119403064600602070171938808519306523876833572430387691121558571029166366633626934746533361880071854410983355198774918183241774649199338623560709426854510500356374338277852749730527941878964551676593561799833521482899227688204334010852911832208262117687309022564076209947896907923124250813519894544570307245054309568722518095675034478780183542700733184498081126596322145264783252572616829955714506100197965538870742617014191737709461138175000769912687340548866674214693094273815657592096787975021775572433753564572487744077550990013582212494565423536967065841434168988225458184991161508793793477904036630069373569215840653373676391715480791599180491006085511774306657018974379751815445159958453078818620864934039665619185212824883191527804976221634065027602450292182095187219155300616635749136882778576019263461690199900790706189799752017687090097757558876298557478881391214508533300324280362714769533769349813882001229615039566688321352004507596808811250215405442919787449621309213292490319500639968746034684523991275452864498342963277347867175143854765072269445028523140588473779779408184423974342183312093260856362075063997919395096256245555993002567687637938916217732273093569827660722719066617888292490902957187754693865558627443247174923257864646168782606195272581574924712554679938708340385248567306338590145192944477836882233425595679339096027099343565268443307318586344109675807354248006588702330189946350798487032803682329357817986706964891968907678412087769702420851639372368680210516416000546201048296791554086948315407113365384515909366545825214781177363016971345514199682754230344471659034327518117865205303819100455568170248033716523824878519558117356405283406002383632585323654420356778640008197319057109932238674972043247720611855811213512486218300419107085938418089839468525796821489626769491805114326289679769325234035836519896271018711314107743055901529569120306212651514182479358943003449858041108605442150616446302816444605388156975104277510890422900492182662647398349311942070759549132368939839692889151101835633997371040185249337143158019992311392831356930588431336517841878097307825057299803244209895294778435734487533410152803009906583086678150719712508392498738723817461216419660369519315921415268736777597914731360788973935103900610668608227797484930700727273193711868049497720923678119192978396498833603170030826885699516149278316783055027744405174415162927969971411802527720351537698258000557635029611810256405307368104584613699098740145355171301486307168838830476295104786669292637955394845943517297474451979344790261884266048502470979480217680337742655067465232362819303774409654670860226632279154349348769915116155803642557177458315948948773359205656620865061101810611843639155274201646201018121073662863341019497096615261652455929201623699717167586795665765560311953447233141809835545252672119533758086344046842137309202209241355604969029407842597068047893144066547916148739553011835174573903459580260163127640544812814245631923508117529057474269980175024179714988313719616780925642244193009837336436467819331529362809656247586037937846004036363510128404572336973301195201621280604128168195175935923724236188141271915816145991789957632443011154744348942088760951472612580145920986389255787209331550227149965193550187755323841764583075605742136604394972098501946459646457724985807789453375387379368620770437894665828129557714242101343993843007572957708674156070638118035890629335809471404371321560445956420843270224691908289242535763331929943167893138558761374402154651443995338170767683588777295912746618695781502504102365573663421203667117093669742455529808894615538664590476109180960343812504306957624377484915167583155966744119133364173675669207939494181459591745241206201297839959777758511471607174838839577863262879641856286689046997347672856210249747038271828839774113640232582831929026685412278940218672877450146044109479824549755116031051039625805951506648199438523327916733374815768234839778197726962932677985798074646680443950124895150646293695309808364564123677904226876738460125708702936991530250913248048003744887474110689585339949506885489933509625625066182807985584441144182453171116988116030812777509522362914775359599972985680672380404303467607006652116205547534741927630483120614167611447723820691080368083998699625520765808722565738586732311096150973253500215886952461254180955925970944903999846599039301903573347239760361652763066257276205048761066571154348829510166108043340610996360492692719734912920924304062678113086898193195660009227670271330244692741653437860602188586593327862584770136613936794538548355502593400517859822703753901079086803227730789220195534168218888280999170489552230508550880915166719250626859196118604017720405581348153031078441990310946451885717967921651111822373688020493891854706783464563697097740981585074717104517175275812965773005971929032794529700519664997739663628328605543317152838468172276019436902539553412742725452620712552920491399294646625037197252807560851965764540050703103658554575871918554198827351801968044235615479719560698454716780579375843320969152805829789083232947611413138724399131816816081144119018499128353673402340664492689346429556089457080363037061185963585509539202521617893278982154423347551358605318288331289172721263277191161968280332984068663737568963650594053356962483977293673179990133006954978849013517829920253358269025462917853254717348600797898551725712920060094551315974520862342340224140469860801875228374987793478919173847127085047549896548283929265029854289623207611709278410941797327238633148073076440952140782354309308502125839346254814081692589222964018401710746865782362097152694417997469972726901699743519925310645787935230611637867914928507121318801155676865488960349059090858133205548414765512709077258393102486375531399374401293025796124366100601314321980445852604785746242478023718365970465613645383184477867684815124723797648334837427533079277643109867507715153183751198134518094781132393096638594730947079567072592556198749315728267406583597369013670354125549074965630103731854826760984131545277775888451295791800351243391728986777247716009451223649819626806415575548186394462679361232923967841886978964860067499807977048521241645120086183859064330321922522268440809299752176755415547441252876025078876987740783843517043146538225181668855894431247257281794976620879971484418002167154944993021159766441305535981592273947523330274558269272445007862959280872886803584121152213929523967987158236947542804286918298930883122917459854086433287205865160192903184314379738130291058726761454834839921573997653805152483036925255951533929801378636338360209411113250999636297001016659667258283913602621331881265299281775864259627965579444902613777235385842124157079549415386372949036544458433641214563942961936195756293113249275342955445242954801593367673385972510234448575814386587313619453251556968177638022826387417387009594743817244081742533669072748552881270487454869290605968553191552695032186165171647392582921907721719211475516186681821096226367778625374345235949426638139051188689293173058239476858783546557738255752706426369127937793756993000598921957929094764606028035046239647730431859050947365083770667504934497083068802454504558579648671228845332845287955183145018386733461922514011275053093071621990682263861373998217691419139477552966887430594849792779081128155099936067008026190391976231836136428318701135380887609069085373035203706916825616634976142219193000353402409395985234364013770416046509113480086330795818655969221281890803494253895340295851412332298058284959053367969392471170175205951288377478628099574479243245571183003704621603340594858909707572455284876967783693546675162762986710953673208386776145883908200965510136700154070627529899847853182514385476783564253658400646570545091870405132860413900129382162003364702505507999578670629901072075361701260672217895459953020529468569007314501457246128059049751428232668424216175388516145061596775791889377906157356533608748959066827255068910333620203172021023676970305509353891146580597623992094233260702824058248436671340103156901737172484260652125515208386867510304997376963582443367936483543672437450025026491608015548047654248694306612673124799836397950511341125383665809964619494167026711581660483969720544933519431925772350121235864704696565039355115648198156938422198111424648322984912183021633587288149236626733842701802089490648679744850785855083735210159921239121961070123186680324498434670208561334306147015094746057151165934929669696739438783566199466746822121237450453757847753896107856121071073018691064923066197078142613534215340403968746986977662767711236440631493432879748134182773155825576848064642963200738260373595726980327523477171967809530865072444653226100087909924724522265140666393352467004124025532496984894192430628322671280102076106119943611998990739902666976415840185007233386506821752126748150050537066665707826611312319313930935826936250182156261211690117843575397103856535526577217969973470880144162674784800748526533847890550955735914318548447264230161145584911144896085043650356241513791829113192945659836418322749688339642828933045050151017192812276193177428050116108989680976629562171633006213237423944036588416474444979843453686610860563522886449289843069444981291229470529904328194955133021730892460649922860478611490292515055109750103309006462953383542523934780180077974250316689800180429054465438226418973325977602341371314476319617386940782482365728726795154662947339979585381594398281664944679719270184735815746112135713571800681365791261926781808615551893471635011086270392510579516226347633995822520887865565263680610379971553574800232598347502545397598702977660770235072047766603233595915870840093532039956403796936216845428314182338494103559116289527444627370839072546209012027961641473121929268374697595416202616198645440214492736633355227948015650095945025272612312784921685392033799534724492625186763645722605392219397050899099686978133332879741628571294262290096784473746410898395873379252261608997893994764677669692395566783788291909870157882025636230305144178072279018324186971786415621248911432752540710595453696937784872143689984372953668000937466039888971041846611291521032194296397043767031312603375251960322975858327315003027360834337232069201061009437050588486821103303999062105668910787558914936705782555383799302457074094183462345260774675917339839054458617283097104606258342115653918956606211150926871624027442868440107059702018250099530586001337985759842375554181612264834996616057701668452378944444190449706150027392034735385328589344361352079129062838541049412803509500588595378427150392824963230118295343902167909727394366605954512078142381545717156574310590616011525258196818338011248650817831634408879840462219901004622432179927500652495787165437684072686476874036017494717076590592930162768238338667873152036331050475130472447138119857425976764961478781355747570029987634915646759348751463941753042867443277007966074564936512993642048673877995179418474638746421093226205522121690050345797129739706882110213996306159120841994408975438558335257538945007139655277627269333871769863928173555779944322833960280732075451101735355967741472263410778769323801228141270824052023072155240044299458891370673813546619168773580792764056477056583251573908623939601883172497174603889317348391829886101878843021945309820338274813565004740979416964222187573568857620468316853253520460532380812422928768013977041012444341162370947946905483423862200934618026477112643213079746383990106079303992703707872020851351457378755906490340110621954906471374942455167438908470880669192878286889451785722568239483083030413623710025173648619711592925028125107685295727858924940396112834309042885463598849616585288332377942188156508706950074881514055028170503130333244679158419830594484635399746303725390372168401363633714987525669766037558255543593464627465285119319871999257378251296854679969591669721694155939605175629537945607110979551486062588019955811608380104829023185882078549241882440898007892529824265762286397319084893974295257452777244459781258971803506675474959356154362820147012828811530134044892554793015044920751398436580733481329384541764696026108446168729363997221753616786702882195998398052592925867848217855771319376633661943211035034977067891281155585017527512690428802743611987311057334179421294677832242152357030133811036062630832383739643297074788134939970969491994637422185858661488931052480045039570157112032492208212212643914411418824166561629418449697852469964853716770815118085581210569276412192992782156323847256080424069377975675168395028034060838945373071677468442783683182177477111967631622951411906501762352635523793289415569361075335441441460672637597128278045828430799305675976041119097128003239064145262454849277883594478165380571769177059263726661329144435375736391586559838942975975474596185292001337568837744581658423006777538024541445621204200959810720674141500989097640790992449269942704413265136744107312622358939352802325214742816188252389143165268408196806718742569021850780892689348620727504283392651175275368711356642682896206909201804297087444915472447286193506569362392087600884504762863001395303682777184602103281365038605766249736532196016699203261284173161742347519202260807241168640399416870483707895448074256670244612708542570896017612444406786125259234650694364346936160711957890045460745658279043997127085162266749515697739161690344524529366070004178889998126136522804577738576279448647582571301122414147606977196092140099490326406844139028377087174235032564004694748484661665286547758152382908045728164806524891620874570843815198729466367352883882599923765225799428819058967098609909396856155352700402333902906873916401744024879576048712789919517012169463241825798628989234210016348026186744982445307493654322125481509710787952073058967078620699483178744759598341134281286608778951951258757756020257745841485539139949994088966578546384975665829115312311198133825727071868574653604829057304792464653127691569124290042211837204518115207860562350730488988521486495227388827180409820168196645621785165684703959911927117509824983294394767501549704878110101907645519718513516990107566601590906013135424332618803405912662987025353900955911137962546900841880215781318576976376596706634571943545004984334964221032757098872462432622295483377779537938835188727667897912655613342490007754768354491557826283025542691750124393482548585757062958580757173331434223631624206761378510993419092903907407773107545230532875349863265599867452983296292779061412689545483769836993859031689893205662905403575440286423274753252693496087254881894602012014672308104658629356253579864022688856935903731507339431229984740805973326108371576056625980399942345369336481330392471231437139335063745250771573940839438754606341485238389721827521713628836081464083446918548654464595313400370239553424461352250073004552629811782898820630263906605050115077114176775458818278318084096467420449985820068242910815776690436244255931721462826575819442556296334678783561384908953481601373749484153912951871246664568172645924234943497861240333113257451098072097701996299604413027424491523451124695989252092213380472147335259413806560559381950363463049836490465038813376234490789267347484418442520440820327261954455040234120238614067052030485456285362553922155764629448043006592902533297687962730349007911175000182380207899073013258333120588916127206399821756813963031963592165172773503593936686055523761168388748770717984996972682202894020968565475448510025713596437653432777578903630159410977205049155403862223972355089580840780772210763618087743417219091624141691530833101520635635064902998748508601837813688491645040540226117428123650159773147819036743069871365013264347869947555561546421835504163202590989232383704986015390540514266261440275571543519366050764212371305915718543795557672172171017459899233500956614289129800904753005126161617595565673648864998987679010461276985449205563142217864664927013689864041142829184766018010922649294258808231869062783286931415294713555629991328564554180070721826165930506590308719606400293668402723615403933067228446904834395330658554891393894471972354703403764175436614245867558811888965876905217932057670350048887248026491484500061450625679011428416734861182066717611743091417512609579898820759878466569276152072872505928406351863440276733289439696948271099133136928285767055081760750950502198835875727578100418405627291421190666621842214116634235206069078058837581177224070646667886539927182575286164117655950250571001215259962241302057722103840819257546413274958859302596758214980703408685898273670622300686848788387844443821202937814051268418352924806849577717505495862281595931912729941806161152598471996077206035349341757423377985105055944251751452895999176242609936487693232011537599910474305713751730431503772024656500801391911322758264699110972276677896454608978516546422070608343085819110018993575099437172498548249421052308404427883507202763773617896322180008626742369502307237721570744396565041850413629516951802633883314733136441238176490024097179034266237955308086091962473882936089830992309670915718251004468329225114579143008966749587343429751167977094311508290041026232675625565304882262449881776504918715819542789357561811305534059490897651118247831495069304811457892502477121781163278809917973282801604726202187619255464344915081570490765345736512345247553485024736175203976128715461036071512379681907977646188875513047855588199010113887086417993203421735865782671393380001696691732219911788596031872844598709227399232817882889280677120572246163085789013867979551803252155985560294312006491199277626835577403017823790792177578209055109109503975459449552056463714136776610830068777049973236429958051349073061823156667613525757787128502713922377388432372533026855864723649947094601593957764297908692797544824724790263273259284889498997871730443456581605889790573011704948675430205699415972654175989364503213500469574449440745785035190605435176431897965449307671467283429944997973532320202536801602666344782267858725640175075994000265470062280030175615113074354369852610482806041900250944976080994794710913409126597556231081972225431542884098811084308917378357494358228028722822925927980723037145173474231439959778566026204716436794295500354121696482591709033249344923007179398301014019014898589224482150682681785650076369924252584955985791855338169693477939298753227789261900491393392505749588795336008888655414448416320797830485582252518873154557260193354725736411517718678299598655030479447669536429720067902797382581558686576528662308141771200294551167763208970231126468490649643580740769665121904919549435203959324253910117710712990446809581081234131567633659202525197530705219489272380155416477174555224552265901013182053996498315497525555548277429007846721672799952799499477511681826033984035996532452841859578451576043175521166400331201324066977188723884409323815591670233818269670355453499486521334120910375750684665357165898695598047392626707960586977904767513921764728041741109277662582292974875675698888927570575889518874619786280968186213171442433201308248540364592365843828491096928984810790024078187282379754551936153067316295896710289767801646509365391169699468327151090824239469932914997692062078692484878674872802020723218258929706880804285562512847348183650966856140106746990215385593886273664908422303985087541248079255485830507851270283286135665122624795493955521512314484063456972663094851540914183446062528514687663677867067139543801255208837412232119566671091499741115840425897427368406585183437384756204150572152051853731006850256196263313945006162562227395533291563769672787131055913214145949722623911412159861346238308117709201210368099089643796344477096330877563649029156699708617963702249793767528328978181958567290693180071346116498441997748813224591182508770634020553821727336976249498115194236827003143351876112212746598537346993947145103171538346769446495193743709425842243379404891348350984641819552725071571241591099887143964512351872071614136063351465997158327111589731101579383657251960519274587915783811965645076798836484803797761080368386556052269743481337478762397047696885273259820580374273315890713065825097812202084623902978572355966532757281615198542796410543982428668209152001587635042021921808614378723336787737441701482402367818584831798541161348020458880921679460140610319670929088337416098543727100595033461481229849681820693605980860632682561758964776973905335475026037416742108965212528455973626312782751886777343429219209996277613579282370649526986981717139845533019619528128408965580645061204410825058489565098791463200319068713739033907185953982408375889946285386071319712380448107005362568105545566929476045064539203932692876538432917526575332420512773832351966262937015233595108902452688445050762192211677991561444257681770865859512611834783610940591660555193529595236860210712111487343733975897009656522729425182513385266896925250817682946089739721886705367053039651468912975920165909330018342814911342354507555172702945453473599637745734354486499451759181823147613365930705682676160638016374481322832447021404662098945797368558242332819147100632312125093091524612340230114161960632648211317934015059110738630396267757112233786480664754787140710953222957738218072359620224321832848416432752669095648805078818877168161442145148475823256585764741301866578327298054346597890410388220120023699112254262771554320237466777495055443340472101161760293755731520647527030201295490115788298487865259599811093879803175715560006720593338505334977856767554688760330313831905296687763732017073256816221645843603179763781310684088621822259738955650905154228568185209328487656087686388149999728671516541417217148109767434303828841756241200049462075635149923790386778024500123995160247256704574636903476389322095843793653828042126666858351246077927098411035056304089331913620688262542107036642842567417024969990390854162160093705024022577181347954010010034063783922301265497989816635370537672472804248785390741324057787528228184814917134920006330173978812587961870489263583642772609647160458956811681188791662038163674065170365404156507058632830810611881686672280819231357995625335090285371735780151227084424380160255730091230339624807294523649123677152881421691085732177363312392582684653626439301589147845059727058848601115027432524855580881043217650403046662630440816745085311824465139150617344764200703032042828666637888195521798116214690169606692940747180787142279256565887839236901857959406649431287425656481541127075197850311101161793833729578412318412972237492475098326367052188265802217193990522641624180233866933033498375170886200091497064440486487360963907018993751267715062158904529300885339941707126071484135562927158985758902783574956832625740820678667493040537487125588518080927085354690047696193634890987732763950996180516774053481845787025494763799321676738205625002068454894638658704352015505833536902474263066435899151178913911392132328638205113790137752888081955132801374427020260086957605215754080465470776183627245187744062258401036914464429414464449021992612154734729331202071758749043027945959807873670894937252174376792659031993281629452923330623946569435085323216894825134045243577075191874132642955724606300325453323059968655489687470669762422104926203066047319502238091635209858918835795237651393152630266786313972599661522793217190971125204650740189114668010586640108712353686197021390397162257723485277969617949388881684617475948113129236210025653563657288615522744914188582784926764133698135801836475088627847131239200284141050463817627424678477404009844373703795975076003457344899831708470944807632515979225711771442633830795505875222944937766010593056555037445165453774422058976058744181375083698626295123067595710276053838989502915504883647513198410329642234708115201340142571985752748796000576701009789716776551973974485999025339491340594881911615662458242105118147270740431279872860898315635426570354221869305126148237948961209680947731488673045810267522591682176317315118545234604142381321316011854071923390680583837053777210673342462297571360534020943515064477541973063589687619601187437770968989428507155756405180404316982398187428368003332307567576920229778913470179580836281463277825052083128636341912396413786950409594521520866505945290689910232120381156361313722861767669307696949486850883054859903799576472257753619462240948530233340886021190755706102605168323951126166362770460595301280892694951295212265187621817205728489422623828931402198499915427023283744348440484580031432453764232790788712492526089072840635329315361404293357543261802930698593695156307286025737401388753346785534772187518089324191704021632212938709573977717706129729314282644244718893537174858206309692447580106547248968159207464329868810732662593802191811787191684535661636442385550079734616666690128534193765474399709276125194260412348359901592497807518909126037369862004708888816068777691575191191327963960654707317666586095718417489174822866216371465296257481001920833213480412189460481731937177884584373158698921492195675260454243850241363946135754062076495692823467380940450795181730915466344521876216795337685863498570737567819264366637897545795817595712050319993204103445757514584559848676707321394540870784329678363030202776529640348096154691472923850061386456325704767313815806031509897640726748184068017679114897596260082449105539141242406969756369425187950108566981397226521271084056693632858304511489796234288226577529901568917178352461983854280989316552530231967346432135408662075185013976190173257679309030933453254380139692274608454014131729608092624907015478728452055167487744956581988471315170858449844772487605089154231531200640073917163235165303864382539594494062536062055808036972193860937470213185067984913220937826235161561313525168587631191199904924985675347219261085839072334540902476842583386362670032674512151257634714101668707865678336637154107795612072426359211489122047974327865401609392507621186893866802395909131582820487715941495883156579000122405986483138709160531326092868511337589641708117886619672717131753135578016790177699881654431207282815977190216782730718724782367031590126580111277668418291312088175738855936269937545561894214287175840502633867034588201944567952171485006679479744006953720576014478163825900105633730120201267268530702584583131763571541316821069016406307167245554021075040182441760742923801773499826251053235706868035557303325512239927058439147393684971755576286799488267095680123415068867467447165062034018114741614881662123024255274767589663007266118726508504177444894573153505547550765121906984635292414582325194841990793776319103931137591892029374332366466826824133573232858139874789145842362565922793976964261375171708084275880178981316482666887902896654288697695192598017754697051478300198196856333054278744063090920911409202105349053402029416966604827520133377683582675532391855885096766398387180917412197141260637454606415235876760798370314164504306607180787628802669285413024868297495411238710047623376525976346974139693406148275092113003938838206460767964275388257247276984453061076511063330014798301906586022876792907503480353563683839910652790874436303562858106935336830131018450850587436828241991081844341349484485031957853222184024689765834634732169307465358705868586336966615006115850447253511401796456940876056685537410458018029072728662140078021734197054746525425942863810806272130645364517461573629838022488529454181931000604045672140837641537344771885978439062768200555588813102625797937929110470460953007413881101519587471827455168569203525461389365600796655619323724520948802343412740192021779270225084966900734109065336603817121505806183203962459846791236881151641549077946635426767070347600971573038306033091895465194012800426038521045412666163426025885736534553792642136848290698145437006087810689373811781671070106798189714210587079285506607052904529916362496088058661644796367682158461272328242264513810312879182322091166080296640332894347132533085636474672748950815370264510102766050662609975003699021425602034334450667027822806248650822492996011885424956250278100072360065048493793738744099603801498482836088586695120818765314096628006804378624277204323867432209488900129052406443834400844533037790633852157083076666616048427737495564594614110988242230273449203546076770263507992491187727399992622891456349267130441029761262630818288647610485622719534407401363089275710795838709327594690476652191792321297385476230160339807701941807804825421018451159970902119716609124309185781351830414786436145317815540615456594859835281099566158439518938639239754233511999700658374205542379026585590329295483489089353674508802083458549274262507777927677680807040371848356719924202905753780734940559551536675441047730643914935534061835386710749037399885662338687066326455223240493294231388367711115373317078650124256039525313832450445220240852026752358102074961383988942050476728666704850500331933426881960586626715073505047764293127105792204917065211847852186744260825939310764219082500078749134380537077872085665976077201592374452593940976311524612809882970179415004404773382190788620412558372862860422520580742495855686430697988391099071057303040588833264584902744221919927168419212077219485958983221129171784013961929685060447403571049594776324287868767254731147586720627788517692698277274917768510157027551767004874225014507882126996879617589766272138458406358027375448734862517465261762041973035072939637234770140888002280346787411656090820779137634897838656146491106461700501739581964318098393802479804291768878052219756835847185512649241124008276935251440821496027016144502731615884008317168716544128948944112823704482867470992859150925460051756916822923936935321495732553955666281413094140861352100513380093876947615798558573537647828979458037351982509342100927220960066248437098154671945891466978638340855649079983100500160544495954168581099911220988199454704583877075589016073055399883366563792661357713907010563137246903057983520948535799528866542648124079028241857076818932431868841531453917764955137072338108516266908953732681799584365084016638409818898392790319573178918039764618791146180373985621296824306309349357384629918167839797652113368568470205940652985307249011458720266818838872002914223306772455511126086615149260725910647693786558248457072974961249110889836727340879536753819156044002229274241588290841822341212063407696846557698261729268520977121551630509858657479425731781214092606308807930586304216810273506224040023208589697575371285666014336513160840362632706880165262603025494982740515047879026009643346223992803586858466945962485621589884975106799798701424622780064374267234171919494543578106438763258374923566686796912471970332996786247015028196089841756592568313573666660322662437547439777678248254188428847115511075980511358505769790149562825723597811969715554030437253455585732508711285346309627288197698284031311791084300011446836945024323946631963489534233824429170979310181535143382021604547807803982479609651945231601027113378178887393095304963589490138397062663184873279811101654169418786889200725631946082927846080488833114960358337543652170387587666748495524285242959223324838115133760576955654612047679437838098974579424310188620886881329916432153376625677702016186178056647250029416511167686404083236042601257916950812289433697159632762056134697094838908719000472424417642307706861304701247043368348260742421678064194922361347473386705397411542496293317206559170121510291367290116753139365844184468358262072379297110675574905780048394780118215511547875722480536872087301031331508218889423006784211715576502628404966863025897737133924778278504268433678737471378657710900492742424775718515432650366580110175964885396528384110039120659947189163876122908265247708487921029746737115156927877895912518556850477215764652415765798130688673436826368314118230330086580740283222527919377834206175036423905028847415645470013999229360097620183545793059866414133965775971355275329008284063248433852275310844425976803327154923763785833265217251431957129055552810661604655447102657557735440994592653325454145427203067875106697815657850671337489841438606184618037006261848827704785954448721694444592873163176994047884745611654170005718312340200208365494710257813769197144616222387258055083764269032212032807810905772697221775701887362447964364226582745440391571937319188611492306594718763816152005030243816526091390949256706829116301665299077277326887189670784066277564005411713961513098281752935673796354296359871335677300530512704579699063985446907148031575843192838850352607317282240314545243621309924594476828683306328688507804351317603943349333707032769791352661173256549212998962737232160007500658708320269500118242758167538103363030720910415765766363615848078508413484127900311496434740962999784087345226752792403188495109998351853489069990182950523986679724368133771261429262355431113438146781498435496984504609134778758881234076972044623347352391988728098964369406335620839272185985492076646015905600188625096986027510090744014834181437613574351823955716593094009458330435088731098615519485967056630718413764266162552373621600720246528321546874679557090267968444670042711815766120107409952292124106895313240438714958611984755781008043238413490258447631775943120444808724522490734390298447224221803054997939712647858141156793054178948094450606873378088165306763860032775008683345338993927980108325918786729672865562251280708737358415854503049305843857845706015341027649189122858224116781013593984405573062426255774576027567283429552606068457311236812601991133502831391756386032686170688695243406465479647108276901798862073265293467595678826855258320945560754633427535232882389271041611971410685892066457123533158412667405919639164441137364904360817978875094832707591900997683082667095237109956893026295760966241981200086331016962903632815871044187970707207946938151059840102599801395959371563111792350953306062113188488158535964311231768291596929237776197183714724205287799186722459855319973979751262364135335782371536811451642772845563600362136039049282532771525956867059026268339927833083783429657493677358945182159402192300445141657189391188063433852137533740431368066885878247716868373864105791952620078953918427673145056781835529961266395379153695784030395348999330970930703083562318294926475105135017166989664237074311155760558735954001286430456857354279874295515298120898723825562160818821442268108019117853916050676534910100132530219768931567142270176019478761367013615566523986532835392324593742848814347101354066965498725695587056919980454887097118142970397591352296743325902579861829697866477368494783330288315047049668187901216695791366689192439756266069094742571893322780962327509706874877577399014353497032948049719861112593650302199994905104645598327742132871291059106031885438626267951601168791890839601285395510958509993233562357468746167115280998673621849581284343941995376020396192215354321524726467817797947354584580347032986893598598369820303307436913580695756753029364718328802096156003190623106046132173072396248801427091927704275318111456416151479282512631665066074675854302321725431773865942495479126162340055285139551786624976144846492834183340635206725734752753364766188261410790346795375179707623107396059553626337899844982460129578570428254104070061599977387435778515707626279851173495505202233358308440632017095554900613778372254945413679883643296460070282661971349275846719077764861426033681171947344577609778736265720447661871058704118491162166157033126842887151459089586264331983237579265432594341166409882571621650765921076649945049764665301721029401980096522177695900929681622717210339106281158959303250669494657352249668108352656562540379656446203035610607509793142523977544028734792773549708228965509266675587254850106233318860465364150412166793776711105206407170170278957404212397301671818277663647156778971155295612468774724607853257472933786682837326665044884845353823317748440728851757165574371046052723284933252888194885749643457590778347350022730998062603995038429107075829583621577164031641076413600276134658016344701478381814429925452938804684199396028087167681692466152581610280832954308510256976795990114824377929868006779361056950062318684245204283879414585873621116209762704691726732320383480074180417912013762614313896080353039868512900877372738956117649345511351913870976631687087516291387093142875748801005650290598820192792854415764297331137375031064622397521952983549339622550081694437452305698151157805458492553747043070387033400230323723732713001489344161963227118364438208290266726954507029531271774085796546956415181610479874443412198063516440098101306481025274345496712223341500917262260618731866151251417017122118756368598219997670645765385064257808410324435992227332065630686807804987261193627912569782454711702997913705108547661274806057214035692788603591631049055332402678075546302182161573901193754992778168764273639553633471213691541483894848622759206188413460824852572184891223907396285133132594005685232294315484605693716137480264700356816139241842043879260403521899621799683618738123714573516711252009864696333313265669423087749434067314912262962470450337393971184494906142804689320843162576673899177670584684438631311740997803026447606837335849884364788410994354444758779757198152678192715767506956190566368947427572867687795578432233511219641835519403840252526572439576481603331967022078074035897449856807031909338970038676757228835783474587073476612621818800686644916316313734016506199473768845647507087271123943035010027909215577402859618854059341013559350552976548962825858389813718100678140141896721583573877935479937916346413859290457637439033889670167290929412881457401599324141247299875903836491686363435416642315040932170986413795933149194113796620354577939404280275572879620686450093161666888133077348623627706245876055512273703296217759358227947103101211428400540615504558341953709700991895781334032413516377631781621720302053174472479543208543120019990244337303548001564392488181031197354865088956324837055799542004476443920216498963790926599089351278409554088419988611873156376545176617846374794193778883951571755199258650340065098209318612682105010756858570888670201126730415260813318235415234916493011620594577514832848714869867445343198249771638689923470408591802079866037860666190798748153445245103163052695499933412162331628731762823170260460159902466891095848315381824163756763672816541617521988276195163774610130410281041350517762517319431232898160190632203817450638637544077295800185433570659473583954656678315288061514250133864497481864910475702008715528852343603373212599479871868098921184002130309365957289332412517030093272402581196682135581700594981495791787244694040747250341269734950851217917888575207512679182749222222398916266926780859428939066191154982848182472440541910098178945377960854250994894278286264210873432147457793095440190361167164119966548482664127096905324989929883429712355952603571396404817017654607645150562337343429446807463461680289822762993744528231433075771017787150377944567936325050267444185594275217945439685275265180003056199608233706317347104915078461893808476284881785107647440485257851999993650628828757708815376995689554811806527131226626475017564167299238012522699770291797643048014849588553968852348952526833410208192927830794268461762734164393016397960474922432327236798224859943927426991302371693813978020838650904849289240840050524035008414114293871189407437655065222118322651762314595624476489274593269541603506141553312389806517441537750691514627379355591543413889371610588796577631609759065704484614917801227056373422202066501808935517003033366986240929479647428298566429872636003747803534019834470102250503257075575119110333397151498748862802732600543277727240360977810146724106272484345131800149726917769960736220856053057711440271484165875200455925474075157977684084309663655264313285193097069390912547532556755258783033568001919420003391220757120350403996434312398456964459603660105493603948542567396694081956820973737813177756473628796864359475713009254030541434873983008679076362434278769488318556018491934301509326208324427573370353909269870262434708397942521568235519916007117429526320614860641689553051684116942895593899183178301600516534591092078913961547773822580329376343565314490363556054450594080640485574181349229620475427369053385702973945448683859214459015676321218440769584447671004161080406373618660707153334140001201573211243513768450192274386776258012895681755695567594169056399339864062085879174105795105506068723600323584803040646139171971294569671817025120541287232250046410205232969156386150373789613919708932074803053357885716211899934405680475062830440601509859753621145321939123117878792472920414507837291431566370631877416091272743482114599457801735217565750876357045707523528660684109035211361444287852108793957648862142198661680758709945873673560053743457779923185821461992633989279469245508499463348555572040989636895221315381750778617973851599742985130225700090144821085559826637428977374513351017474828827177178283686963601011849530964165751107835527575654851127074826561177383105859910971255805359324314649887144902605901308013224125258690724147633485363004804765450220762110150911368370396068981218402711863283404882558548142763928950364123187121555453341029675757741573708322702051997328669360225691048528537172004887073015071785335951038519283665713699103095543332448572436128693087610554297842498700631271149525229960043853571477800205602395711161937296767394065115463225540948824277266918457673352907655999221364430695844013789968211396832428730235065721068772282032614662711757708687223552595895194581300880379248413872252846904415736471912071050838685118147464657685830848124804363180622708859276046115505203621689601259203502781180507128975756233453289918744477585219042105414821888320865410675421425770853064904616577509644142804559290096602427308547811012413542478841592196086621954518940310225890637982282242462845320264268498023197688247628511945138146659200675940729579159966268701147263086829588408262466407006136927273476614632631855807901488768995349655031690240634714225312634199885783929172220645888989833439283020041315837430220981674512434021697655701270475345887379068543552914495312458042832226901157470532441707130105956255128151749206087889982590424254129609261931272942156580114360092274294910622333281217139774180858832860139403625538364432409524482445408425031951151550036072086525892910586512870421628542445807482303852014214790476894845104386494396567972402669992982830296872219417027857060680831494601944660729273827081683975070262492494805494777349703991269781825419009089951520187482225786206286882569639710292260276358543293264127403380041606024161500843065966604955439160593279868903744336583373230030326661029080364765269196613090229149725281951274881529807237320362659889010359125041771458607604177015533442810041729642885031767248438777187134738520201702979172120154869702065243534645230743878459272303060764312670638713025419224305470959842667379682796825843437106766100855057780515997213858160743345041574623798877044080103648241714847217027703932718312014131461013870333673728431844864506349515507440813103071251157255820519020558160419474888035751182027978775411827612057758290203771477519264667580057334148013104296127738615915793943875955581197300164383669502575603258946633922973911060314295168972362341866895405905197724364354553921012796838775560314442195718657578740181577660176086883617850860745222035693214348749559247827697967312659678236231895538581628824441772926315369079827008412922505000564678180333521591380211164779595126088271002032835926622885286148314470382193264483569629361331082267657030671295417381065690983123757851647548457536409686285205433572561718221495786275112136199290314482226023079364532882314938657424257287331580455060260467299831534315794582039823226286309021248279264245904127822144984677211338229277507646050409516668564575049418999988260967311034362265613649438749420513431265599424582994076788270964090976535479848339683138708755743826986567452564832340470862361323268070007794829316681594653334341716450392413666601061890236787425105030912150127108584721831205498897641465623165329836409533177896467409650533309000052273315952659030483885030527354461328773242559931722856864107351595937687040084664951963171335866908765184010419515422745271371203109812006706999607324414086067914033758010155545056674171361494672205852521158238896704920876131941403304780425743769748484061588153893035674233732731711379788554986312827407717214090149732466185966404037774584245010899726448765962419824261233502877235581265057789173796600553644392033726972832323618293951320456683446775639930823938663507528186778974548872035740226574556417978782564707802739085038587536764399817164823420237160923674985008889099057440930104819737183624666082074879716295161303101251870721164821714664183879782991940210164642281821153052831482216985682201736098210242880337948018695490472851982600281152039410949604413760937584792853030568285609121550621175771583956425251795693318196998272622340192697315232508511624895267379817720800705713343182475146630790934243726111529580206452885365680982366431563542269887741810889624963642919798526329091067442006885348346560926308280346057766985060152332135452338439665442182967259257567370682174358947285429057499441614283184998557859050120578597785442587891919114228457272756941236434656767018884025038746389938222077512394632316340323170547602767566189555735924529476121440380629892951989896424217262032101132677872091298230818662936100256336260187031758600770804195089654739437418541910483800442267708354490737212678212978193733954315268629543529807036393508512534059055735730249060219747055381024785253948259678962097221914663207976337103999271724452954395855316236829900129271956337825372584882287174875319118133999687137711249897193533551710338647867061638390352175614032973550885961375005625007808767827752236807678690600066328548480029973546646034187840373166960058115910490917565641329992861029053750174338030607888889893883520367718028213699776270916324400545463730972979499765366412663543640633945466861515359040782572049846723208179968335647054888407407550682530986635562288251309192244112740693504686678939330123251751770561999924692301511174197150802823246723392127950249977734110090990136081441605673592441952228468243703770670736544279011488029304568599865222103464874100874662695527395169464353175038503983732050955031447151338396088705831876739361982339793854842240401584615192654799331158418294471689228758545664503906393729212456180278682516901660953310402979391604033640251448236992501405170427602973247767694753365846000233403933416187591387729788254631870044145950362093647797396605880227445094767352824536058465094707010015583477850206867788741748425899829959557031998679417957695103699411183166368637909230043167917982913093092423669539271388178592859927150159453591959919354025585828978560539910521356163699908195427444237626516966413642391644943910144569251009481117468882284495999494005120121162641016535750308208040367211021798909234924341682212722840239615057513502622815579448884935033862196105406921449824342683048905098455820727915717967553815440134714972995161715896306545988969804770655556662917693070880068567752204863956491567316935105191897956496123697140631044624219304803569661129726531586256766529703939971169014609568029312506543028882848132016085791433082597348742582807459849300843787289793843595745431250317916993683665782924248549310634318764597700200220094620049901651055255913141190473715176789694029534528659581118643007956527431261950042728928613390875812425018906282333798300903641914507936019088214291337511142248401857741031868271292280011778905977063724307599320905273054570567465213176222232890041245123576960216184663771485164138812004488247709261347249968142904703199422453803750520935137605654175047861579478439540740454672450105387513647802223592308777575278319592182252659835946515432581732073361553663099298387432218264170845277453589639239553189220586662608462415895132260926482530960215954387908153544906187466001557328774455310015693322698123510402477152189178272386542768284335325122963340330118564748435386991602027470942822911194674669849555016731230750000227687966055279570143131732272672415347868548672282581384185807388382238591883105399520216041924350278198165132821999031891563791238209437722175701074865415402024671266874415077031422997842546201532973031267759725037887695450062411364366691506660591050107809966073348595617723793509337883476896101936543451891711133519991415389796652302506574339634045729119741437757515780878398125570602286981958128397151056983813843451207949711356320490493280227276348783529830853306949970095597655718007641448651443479090323010194450953639297348947071338467248469058318720873477916263056739395504542602049932152444197992491145094219295308894651800503394554610960381147850801305014267157973982988097494411804444231492047312608670500978263168158577103107420035943463841011457279699395070494135560328183672508895619376544850302886268731109430206232064021457948199294483234278508936650286762833439951427197914811654277681303922709710765049757687632814156947644268684200387659115322789118340736350766838655007639880021498249908609553020939944009435438600374428383618122823637195410997508489146212729872211110543257819931920275735900489936614954024899120781439261935783383749320279143626576763609742732110334835926974763190891545293988166762589195781185550908617568896580413152115259546830942875646467792342176425015053097872727006437417427769613421836852024223745277551054049701923243454628070609390574333348573998821773482055736304958675017275870964814034923886177978309464464243440688924356624471621845974473470989218660170695956424678752376874805534867263251715906423665412664843825766127220537558513882491575671634436336042047315684925520037897741176472442394349572750469251725887183751109146293164051124686808244830353021037433607821156217187949600191696451470450036196377866592677848237149549983236985435230269594199954672697803894687837068184595780157819036931927574745432769408309154775806379464042163519048729111561791997765640402667683580467318373242587195563024151252507158879293751245038603809435459279184118046751239306447320607757049193073517693375088649036256476650184095129524072020213431239337293041004299311241385399004073648647880299176204954462049214595753452903920762093285418543574300066981843755313597001585433487143250056646140343389723156735056309083426823889276275053704634203977256870022880607656560463942552047966716271520350620588424974302008564337132178805012529652373348393952093477664038325739011013503147092450785275088957759782399364422412287179829445046286139910391516279719182430603720821818292404513428485782286894589341246678403465342784863573620556773506427286543693864870078292087715642752101964676355186826653958853989414942395599295745879740208640449092027108152334364494983462637243049624499770277962949790530449845889613278934774991837847372012730827056324536052830003112696840258392465781319086362970398773506517988670385892665789308610553484027192479684759710930679265212992233236387846697143326416458182100981523887246557017464711808648147016782147980572594493775357578922010755952661312474767117336583727647826950994298475762178832489641205430979717625312191887778513047933997524600585017614846017164022879622686334406988982863509806860708373731742609283942875686086640893445148743477252418610834367158767999186420991039453980011989646952619592120647531362681889433680318983764338760157782639283647350146038937926129614115238164289344578973724426374805622400313249451356468186923327608804389907328243451660721136014100290276555926112033829416762318649199593215603540288680737068002151024528073811497230645371264491391589257620349444224771520915222213983007386777503171928291374597173823936950528822817627616546273568342905927269008730601996547112727803248679620080202272399537912257070569365785154467992925016258005551050433932461252147249377677740657517417001248345575521865391608696941936397414846334157394794467559813555932331866316980480296234081672803568310386400385180782391276649134189031317162118138248152576593163253769449237718148983317666658167868927771347682561984848088786621196268812436086491866644750363267619400295076422013016334859313485361343439681370579465523270734574246349865091453519756215117724823674469996910905043605759791073069264241967179458501099284536189777934962853356940533400477497411840078240228771451508051398526732115086349526564220861484395108268448224016410747671746698908175412522559762115143991373026457393838779726496316860435922935338672754094389424220887127211826904365741645408705115948684636440017131194895756658067678453017769959523165232183879980742973533998962337699738445871806119568685083701325853185097447813909145698152401259910813302279114193624690687891226190380650310318994896217804011815056905728453202334560177679685958901586823268064727234441537113866375498042226811728460310677102878780835628467073875538685451385682937323875564951263139441023116565903923165750892755981608923785442741582976447949858866952509027342602840814018798823723098216305090636570209284847617691747351192566560497187976268454258278359173734216972871766844241241126049960331052321783725819366153410697724486653777699602371511427299164233966207146373601803765961358090233092124385654821464641197082490243666622345398256744917068752921277184068068466516254571702647332722288398061038914004802584860525048114163398751691453482633781481852596273734568819266782822098347407135474451560093641563316046407465417747597953569636903802751676375459903262871535686334740971091869334794728802008265126998681479513028189542945542836429600239830727837857513764925284479827195073636031556482180497122909059104972894313469436118129889074006748444564520475757749585675301885021110489701666506987726015146619646270059467778625689426948177484914337228781438855850277929695997047668358090135742797437354480729619391135057291626204970381733590182303677261484965181718228799674178219821834851876760207990929922524353114989801415797486591178692352386761567946387482729900904266723764065869201729326646104500016767559806631489195472860267497873384972871674030667618518725890228718215928395222104818928806075002621973922637846785963686180432429263842419973484220340849935347973628658889587666494764914982399184135133126390646390675923606864366502300324756097748233179862458671316603779746096804866707268755816344644450415218507432424944958507639940272918107041380168054133978155666240002100492760663173399503270059376716518072161226563801223035997395523179283647852241154516835523348024752891086325866622385083118467029384036758416000847797504888686823947225483672475334480088763914820054767505343440382380665244883665660980916822308070309766033751270407966052558513100541070564801419286547923855542800155489409494327886855781189383145186683973107679300122505590869540655727681718189588938532677729320309312281619667553685938771743881999154913126840516457384718603910453013197363464957758059285608759065097120490465631449956422373412317845981940359989716779190923948689578453232545679389098137263533516002176570159539107399055186601605748654391133859022142537885669525497036854136063837451783952110359378257571527226573547997289011783373029467498816516413140758051139048945141309830261033830351816299545886778351611697002309046438088256936782352889849354035193684650200092924012539599824980487469443393017612331028737149999845856086598339185642763850346271250783469246351986378864572101806138635578457832031967348510189724450045974191580546349298087761517678945906643091404864229502829795234109380201452811799869624106551539637750257093097331817704514278709549343923358634007573388405563032935018442849078008301847190701000228494702557179273814769288487122596125403939367269022132140942368371724877758547028954031777769588332133902944307529499534427531235061549990591258437080166206630779741899527080841403851683132018640286628649602431750838143073753327296955942565345548656903428721744840632687467554544846807012493126647027886145868558182835083607592723660882665870007154983388707851257198914992772424837865922664195180797382606973875955288983604390532980994837955989305021128969910775420033714183260634345711923367092879228495229373071407465681823914462601127060710435782449637008137197587384265648925429399622413063652284527334377262899903759640151157784479812008759872611668650161603648746883650103895632882720764307294708476605121239239021654914095850596251850872698376801524991586426503493134736527341694847785296499958452275528878530242158538824711175787514177707041733630970011238286049735490841052934209148575597926584219950839081932520802903834733219107509649095048808301110646332600041292150310903277736550412331690704165114077560725816298296908444202219328225576958721845156318110434036665137134559856808615693794398596319774361275592749803394868881238643378786949582899393268576863978010628211971074075514589862001943362134647275841650766530478151768460358606522989499220087311032787576191476312852765536641603335146036014358576891087370828895251556407269829415227164564709158261696481780902865035815810189685146483821081697929678335502321786819998309511375628531801651615746163616462052974213170047118783262811485526205499644446621781210960083749338263064273859830956715117875837311986401109371303479512952055534003451512431286912112093867695864038526144294321010721570442155230956468266254849171713556208574014711045706684731559116130522903337987515352074571325208652370643537740341540302137283041815253700629266625258711703598989102368887801080656392366185091138973050623371596369433379571327322722371193101275131381143657463601605885368618655587525195292814189878209060410768327396216144172207140611246298495138896183931972451760595093653080257783457054693470355973636228252979861041056072642041339614217406740929996469333824984106614065605285895254732719071660248143188816029233982637198382776160440712849843470287311940066967571168859844711523299271656209640335316967398338104101679666483185938642749627055461010095934928358729841665149847686136782864470610374212749965922849700670556419391854046526492158739395351621387889302361174113001430624159039595720949609281066172087392735661647413676953147738235184135059728786232467698652844377344336242585507233890025759144647021121200176878117098545824237093743598736043308260662205611236210004721086341977438123511343819683973137722268630696156719685659161870943512469145594553643615334245431780363847746689500257740574453934613323571253807762442872121808984650058970353965064204519013425976975243527242784052405450162830080031489300542257309609612281401249411510544969335361535891961479466483304896577569959235866873550342845637417443215467554077165584978615775280257517111460128470082811203662371987149199824044070532861923818783244476813231941663606898411229074396151032296560192619775204209552955271264505432412701774720057769454985983876997453412924112734342217036623536726355831937304496240460421208578504949551203128217850563789305227893855116455081297862394463540248175371906263117109739818027148684409606233198480001970694923662496205318139654557667343432290696432030075354921773981980385834274712132862332168808449644933496665727895455071056514345820360995175595753257488384705590631165618708944250555652567634397424556070220755389344413091944363621453778231157126038013488853262790308118698456301157260012478451861120922673935628098376035903221947201139105866126367388178070593213641175231703246204487680457462553098667279346342606612685093989063157702688166140825774905193188097989353270307049754291113562800927923797899183396214655141305737224165613098798118632273637827187600250507374355590457383112347159796118965412936731467974948371224060623016878465475674681157057397777072443858585626161914513946529179530208724023472056913722377449366549578213810987373936415575592772135828036800254524188106649011190536719889917673973710561175649471769882960232919172792858116487556508726985821034147231328016667300332159701703842090593996102723771177609963385190167852260419299213682503682616342496067820297569468758298632807687346209564886373301266546106323015216806261833425021548384967809045577718519569669490352283328417176325096566948637282424067013743696345018174548372990901747283158047076277834969686374417419663195170876794802680454728514067523657454378575075788508552781948521044236024968397935512981287840319940475884444244862422571113026416032924157218567424034212218631513328105605790014572733737278060872060827096575758381488511956794585737960960897682687812262796025326163534914482103992904659520135449387898684864585905053326626392033751506484523992818735758230062829391182544176110800584493256014121430205361509195698454645876501991130291657591236085023548430343226087558727642761359609191003995534656431202759736054124167290787263404820836529269194985369069541463787592264349774289326049888539317802724744118930740071512173938647600747853652785696214243173729360962210221950692295285055319073674152950664949053276333981308824822220145958051036515775118749814791646903253707751264207329535332691747311671343779133830620093833701282800078737316319139715499745387291556789575802452093670632956981469345585243960508109495656834388668116881255487674472258254159003405066614063314218920230399312091810657209736684545590901455071447937237916723108516557794003524426580850844354949813045722095418299048983135003531810652398416813527308350432493306236814880166435471807828394204880412951503002253448484461823423052140642354918802272784189516758820566645396107788451085999673869120416036307463841962174738289623940485896922702213462160211166689053835674948534467317271734451096073983039317424169586577281118995565139428686605025157091217207818073302329968514187687794490434816708259392688201172821233357150226231653523656615832161819918297732523377334409542725763771486354744547298617266685486748456478034064608271527885149389806358102797420911815656851222499113060389269712226937881084929261868639580685944374949763345815743719895912960628824978944347191978238066871325377296483985543607725208222312149765091692843035008762809692924282524584083420272430105657601745641142359875082124963253246521339175257090539353029492189045708265957215174046263858389742529084740591182909314146320979997682395062947968589073167925306758939030391956654998212105275308998247950547302021063689652627102367826566268916226781580049072447950904434703381499825948720083041584341144474437873559444975441282653969962244693676935253603611490096957035884417878879494366707339393136405390230284335550801006550069423566582463493509667500843705614694645998519685968584978655268162385056571013483484367238249338847723091151244359023880664992452544793310281303034556130871135579883344783461333870223413959973155786768250899170448812537947784997886244238284589927457850771076513841800170303961442668689275997638086862107088505585842929225758921974792927295073388916525338063768721778098871135165750653140382720371304602308083900193285481347202494136163104349679597121694294771648404604930201369037380845262859603950547114643003922945599400393599226220568614926250185354972870513780968995934349906939949350683990213666378675441584352768006737441433402465025094594538009331529812675879587630491239773756227047237248616288184765716456635363054357857765654278114272615992296225349364633834117939065457493429399736417290000371756779724818201326743328748089371697030285019024497810442612489268011292836363391084373626853205664697152025451228280379492042762112973543579161302718149057903892012091319304786784435407006788790153499816219294700057544307724214248097749813653134399455319445677658925694449950400743779697742541557305022354480992351250243078355452196195653020248612265978060420116685610650052027528827402816503404097357046326832059584908465980532540006820733635842755285619811611723499202251517680952405520514197584208468457191016539979465633577472858316127034660791247045060735883427731815593804323866985079663875697529051626585949717380847175357494115440626887898686480609553407316804003646821114015646955884812045340274351533529750453229443516402842812251933459299872018838960112402692851766220967159564421603932274690299672723978217112249568774502493600782399518942557207440781717442675548437926182647844458885337062951299502623167189169607620709164550132130613008362892314687205480583881681669840493604663103141864312035884470285972691322909664540400243904810585841664700628380713449158131253799141593076469709693751468621364736585258402362094697082360345746315618256104903321982481073923053050641465310889326757723482466303160388484164757045193767030568457111094160966943522519610526889010823931004588377969772747271189070848902177135809301262642210576353763525281080610744399358078927018885928940478471835996844111211335837836807821275471006907709479161879296235201962096472599487051597060805585048363230431548438010908906857256376814738592909036235376995616856150818025634992332042642369900929619615002292191775989291120675648100321488996063120737488368652463845147846380513821813718465654398820101969694824575905301672211855675807946813968997234304625029916786388812008465352590103921721397283605880483278353082632564234219740731639884237613443944837152952008482842268680829675820206053412529517912114900308490723932885100427654213513421258944484519305203219735307865576308171524891834132235020830363948716903887265345824239699964938620740250998944495379079939930854066883739470700392592171342314967320071319299170316263448749278449205343949972534812030826776181899425185898975763737228852473113160868089831317791043928101335770276873316211763511409032899362425326111390170644368073093270075952502751717146966316526176444295070930902400437778438387767168356359977591825962785261825063984524889957521195130874808740387631320331740401489761723120104153637115928059411841185372524406302508150398059324380847821119278669204748011103072799653940619979884512611955644592659414878386135111090846357231977546264016696698911803195352844247636655222502536015696039673526255575021063379407128152799713460620949449023993040988166288956762077948572182815997907117009705666779526054114673998621921104286152329112727911385973029224375658165394549358157646964300017459681501804737881588795504116025174194587042660678281096808555940319159999570680753848600473388483867581783542036558972431984880822629574636381833037089619803899864577341701762705020687202692272391622975170022408238171048774082326600368782876610784960357983898866825976827628340978720963584845563109397587099421236644705599865075185225266394161215157664335781486934135001123879722154331685592951723747779433267781998361029248833852287397846669284159527861944650407951324498132795794909838988701099744848669199942280570232287283209610938056809681595419336950018832062989091161036923841808600759167058851691921799814694980228820892713767662059219806029518243541938483496389478978547590476812428278522152802865216789327479465803497943213321599328607977947638314844992793446944796125268283089185948111103272441552626068395315629937883458132189978629868771148334139147388104759534074541182287821882312244641792069815891580049176470126136328507569125604006415994781131148264341357926431792052360167359404906270391258408385740303764041275036563750508921051833577917272346704924659970855424274541411529723204879541480637245460405478898577222073557634075845173338837537877017828994157644352161700661387271780229039942676070825882916065039592899124509511235250913356063568104223200967959342041484736058654420267121486297835672256414704796617957975438587393692619871330025690505210112558332102269614924636612622956143616708374888165965260741478993739531069290192135661047321398339749716499531888915472840826590105442432239686735677834272440004852191656181035363304928590557811347019166932082274619438242616744723912651844098670356369066729536125870995632094374242818065637644254781769058740277543280270035497079978556641629757199957854404562737053207081131605285628721212006281297328157463302908327775882782161304409461935639362705196055701637611274621983302072358098731762013505444731220354882938496797593001534641481266770283803377234346119984400207197163444679235604253002180059890238732974877321360037297348463583730464558383541709443143202306426514406098675571590768835010322757000554048975093762099412185065869200473435313145258984845931521686577520918213995360152219310331135619287835238504870028334309553931414832189390510182921598163173376501662129113881560525743373765894511855919350782168405382878106511449882407095411354531777563671676923413491066060713973130958633578046559504489260952563856715036955276043267150493518391331391822116758681809483398632851113623784909882028666805788509024851058933096908519435813555938996284288172717196717958689414953046784595807802447989861968498058212379847984546872665090936798089555595426879789283787251557833147510607205115946819207815142810887695760461414005543369851837672893914074694921033732690818627355653802389039255827261034748012202309096921686933664080537155663473137255728118458858049732909518737067983596232130491021419630283437168253068784869855812138646900040614878076748149793910511175780702063212526458499209807762726797415493184136443275107734272784674313431093046748483676796856466270294417859203147677434290443677688194961717119834808786654520848487416951131632615094425385333372168846345446652017713649981791621297590048756529085155727215984224644192987317140670902006425730414727091316089292688043262607849446754909894524405718201362218223265214525814804901384413188803083910972609702941714739208824255736480336115062044899972130199656897139310623824830594173536479945073368984051266064909628647348620889857003686319115559198171450228104577607822342091938959887009449023316842463248812954338496821402761237554726098002042001290298027382731779074784745946453313551137171814155597668278216902042444365588073202861415421468754941156331275888657579357268013231894457642120411796676546807887514417972806103082968344003294593953891183398449120063106958041339041963918464063642547135537993061370903896253761520821783059206703727694814785053792978712359694401834002783358240226335928158162754206846729399196510819246671538570524892784551445825728263067482368280619219859616857692713545548908761583894302043718623909241713790867679648239710247375099563762428760878826087762418228510826648359747540610302419149609588076112434012472826619336605204718498897393795716050073180572377745336951573787245747096298628354780540159515270556100090214306473636787776916281271211802137311156836538104181228653445601974696532691116411163230696572907035407631324242765777859236376662725564477498788885173144967265646114741073549630146469688859719629044066437609875152531457374501120126736749471806502741785750607954812073692576960511238740602523429595822727981066885837188437523201096165097276240842266911598807392173126956651479624236418479282188907105279770847019584907777006885363942807621202479296393033562112210288947998202623674981183092049584340054736489385163173515564868136047054133693064217057217831222541661218512169655514187622645277531766760793071665522277539556799145591233388695191056773605490468574596085456223726808441731620057787552135355168133928711425934821516547766447252844819593788767192549563087448532772561824571924106788851476634242962250225496268384492677851910490634220736280138993396195735727390420372953052434596364750025430226814875840069753564733386731999306901550432807635601031517981315202237536252445993846910833100938845697296640705011909084622821192413442466791958353416826479751131687184129885373749054695702496307034186587583755549483709533896672276657409106068913569097712318438857075843225850273957583829644734841693404907259012681472126176956798847506550935178255309775342313409754938675888765973560801342601065666851283058240756571553652506909908656258772478534512968542803856544113233958312579094196792702439926544908075342110798971399354536339008152269271245349900485768342240952429532429339188613221956688463841660241414838423829987619254990664471100829513384389077212336982794479378718938162169016223431014669614168322897484289287278543698305426912177780865972731105191199937749489675116375923461454041064089367329415248786699018933939359163649271338481499582708792320399114560004659207042321092536738630852819217931879720047529751576378296254481293816381621086142968034349532927965459827248098504962969854435972667864915082169775982040333552707517017022121108115802121658340738145813017535922831848466895963438790275672299054084252172552666325546074345350553980157507361315312759142834843919140364307949927121290237363912101634990810553113536630760091459292762303433471300392102685821299254057772049349243559578690314711700468731553435101241740092301525374364934575710968641082744642472489459884256375414989693796701363611705150093036013070578174812498157098725188374359662430919280452816366326721835475584396912057157680191585912744133311715272265787710644626879426919411548418851222990261983587563460405041774822524633302047096822205650013529941279608182561371164729362186528691838409888880349967333207859140819489156717473940186816245610672178247294254809411378040522593638429571918652344664412118270730158016224014277718731615710922214726502531686021896872656887084819590295245058388356872586453586345407313638276372859168374098839425194785779859112969961299758565310212646838653025354248228219295647024830593404811158997407576373805151513751076144223316180885486095244808365874626483820377426303543202462946173881371773397830673515323960996880977567840050837152209264606308618612719711203929051007338194011092746691917466263491148481106308975165437216642384093831539405434289532585844643891045229350989099508955956195327444593185858074276399676948887561559622080144274735635059678717206318554952956577837393346938605603897070552901071789479624248938929780636695408586253468426334479183784523883554466034812628715710488313969410331569236292926984762664046796513850671854166781979394951830195998917310322385002535774426091403074680939241507048772547382431008476739161994953760940594825471090272145090538765389215976076510353607114350683810068858112663377117279141772322304210650572884537042247459535565762644920287491626289464689140734089791842015167695728918606273285566696080939675903310346221252182438489908650295506287470997661763475169357025027507956611481965592597125395876570358406996357567929937434178821119659240952426878048756553518897636144645533626248083019704541838360336603374491715821334115618617301598322659737086493366410025639259328190256896206244295388990325765982651521268204090713802535543025376198467053106760206846553034631124904798962027253849172006800459207563557573179531164208678020129477105850098494386953717411928515797188145557904733310146020304579944418214499014064080220234204550526739257004321406227392051684379022756245033664316608965883392471690763050689767379917606326553266814793069146498354419453717010569735543912813882631261058617148153204822404471369440955676244562465669394715211743337027449516705635227374865475841248838314311603204544800212209522085450307444944462082753378713837178491574271623213705269375997410504833957525123480281379518886715507322717908724530092458560163256509825511428899323096777139873361137015946034739536206443308011749701120305763786860853278346483600764487448912116632187191232555532660886385346261784788369227264389892918946746683668475039055038959826710732356471049755651802950501236103217875120504039915752547512358899710580953950982325404005751556411335548181868453800568465517808404003821794803129340321651525393566523354407022359215951522398248757240766241333252856729090569226688623050349559757260359849230040791611050092380679979878812946304383499884322510792152771262461756738856407366701391088289726447380165119344672759538900946077695475592790161121448401069834213953960728367429079182307851027786605561771762930371609925909369450226767995999985397312929021555746480378005144515331335969438535404577957696665786886542569534960006739589013530090656144170316947786162618764762965382312787299073829795698044810799447370262514774175082206906877060937866508596212389410002115463571526290809454654737246975887786366940786834177705761642105667687271556784337861877076896303309169762082214706188750747865635568697273405126678694115687383144628193102494455341290766413262066643060189185279772667988969428388493809144781058514907219640070131475718800007922619164745146551800212697166527774634133043325347270472615304257895094796279422948190678941810341909673457310546125743769026446139515067079276345732167543793572273715767952635783404511087961956835940611060685183555349854692734286264310405518847705952427611863825081206062203669372526200653614859582798641081367663543239417021329620675794701300876145722549549972689448574851908392154641510289424661368213479042129694618431569079550003054394314421589893409704235445262788822180437312475252060759426879943581495099701258287159681608815799928218967904885466418982844056956900862617983213451890254271773483382670505950573887756080711757547949651550316544398594296157485389058491752728407518703844281160177698614032702136897210149895897355846943092881217626882307747862174004135422373448476194862431303494201465906093539405359453087462442319555523168707123077673384190118742837004526341978618883280328838735977302002301817429928316340972640329604289556460726987291150166002851376711697317829342114254005966848248171466450400276127635927917786602099960603721425862280920279696026724988128742711425718184276948387121176108000649877231899486081926149724295964461803663143307526540504967114987732391766130224764542198919827458011572953636971026096254357909027763340268847280601808233373124946656652023067063120181532149179479204448088317651874476985939187597352516659767209628336453596880032889307529780822506706187345767531497001858513734806150885496078698311332671938891314666616447246472399276619920366013383816504682591357234723502387267953774722236602938404163970998879010328814254804973556868048763314941656798912351421809702163247804481910326595686261512787171525697291035161278198119038645780633502362902836182311456318849820652915847356276758417848533740004674534874150694864328423617716474579052408612759898907195111498056186384017030776696503192840215512182286648373779489347929799023277453694436612977555142846919846050230944553433852318899421583680765907086395597664680745684267410346397701993773422017012156580606800039852339645581997204592670945301745668681697184027512675017194953395241987675002652343268253622607502725134541258974324358998070302219886912307471286396608611174174498335767207175217867704319381655915695819290001131310070673186546772359661847191421924789564106660975212226092411046450685325338808194393499842726206500020298466817242420100559656532801496306772501760927747120459143752652821445888492767495322979252827410573104809775944847128822053581337824713045383806514560339253514387497742689534995828679210670482779451071668682896809779180396884890451495093303227920051252496427246707564166464364496218632808081236042332028080143343890678568682843700042094205355160266213209954355106559298815371144288911296563381354498899717659713582540669427017959965008526835453062321558127500171036968398790269419849398715457648706183179756783899949018214870120370645150186089403410687713803965003356062176964463957324065226492802950065832979079099081704814270144735850936404718038662174937729230402908657909803273002678465918901759340317536180742162131457815043947748515465512682811001054801924334941919509706411059955593214591415446824088030154612397229851387216527160366681731442151150918104752708748231171839810170775416562120345746734182379338140099766453694900760793639181007500651425530317627076729263844079984380412576579026164909833438939807545190596550873450265934446896998694034406494460695045814935488356623833264985930458079406109408007224082309806177776863386457033721759855344527763365289917613150084506651162959905789528020400600617463534427106468433285100996679586436647242114651254867687130341311862739080243155884105012231226738636330432771035296061368227167095365269786074466555234105556398874735146737132153186539952007897341202957614450096176586056580862158851545676521515633810162697980656156064543453160719843645223490427559580622392313483594598243801266164115851415128698920137826860913244938252039213181042405478646820904336503502666991688764763647675592724341056109642906609002310221168452749761257281754162480717794623096390244692615534352303215599238137844211018369605787361046848180764556771005625669636065420032288814970920923298422357879142485899267529613218485296187016786573854302216437154582769900743805156113044476833932324606544931946628645124231574073511521166933839342844982560672301903254547787189197705003780814917094667679578236045481437323404953740642602756337576894943298415873762278000326918489104731250470444076006347955352487117984681851620829926218889863636001732302413130771540473730197230603511879140208645895246771986321315185303655935802444575547208275574950364401388656690046977366445874582147855123832250293841293540640085206786128596245701151125913189827229699853734862569479437684578105083207172398807659220701770727181813528100838621405950013353643684305301077803552564765051925560246295115529105859973710773772370325752182807000428332629198190204687107256880107896955618969920733083216442174900895171707929486282554984162461663918089733680476533513968541125507810229762105271765373885376103280701393311714577861373063768324181338917382625913347598466875526242393467278032009376525135970167757024913291598673914811937935015291397564839874660591188730238373463370087946632606245273895244029984563206228657717569530217557188063975235364768358635245099417141074051335541569004668723320460670235887313342906536942152936437258969387884077938276886400476764423339328865272240116371801109253038006056035421488427348595946324664244434065935735068255872018990377144391535883050755538207483343228553950233945946974838540858348212509949186807280251028451024308289989362968505806441415020574277873520581948630134000840835211526406761543184286970039679164240942091918317159818569380147927574394165388725100641239832644146632648263635991380579175480343821845921468462586368140205235071448726228367585810306605535091279845993216551498189158361345901907729514334833465291778920436854124858257963173073719363741773619220675264410138693694857447174222988317262321998456363282056027665409488303020382169134059598296630117874215676480164798532643062675271064301124273783829306172867023005895356905424676163247933368091890464008867278836592408086462121318429537935363403622084374385215022542826708940734945239800324513668427390061974478476924002152294335645842627968620932974330415596980486571902573770637475742980097944359270901237735270520485726783032729097368317467313327653862883016694393906569193846925228571200304452834246457981283921331600669275862149279023854526218848570612881048168742321758209137384700298701800964618619552751654240625470586248423393400617865777850708157580868447279428450680835272780588097205951944243981017584966176051875510771120911103556620010866041145323742223032987001792961547420546455498431039895898812709397392634292578997998171151301416477724293826430305102429786243691131454269027207967493707624521507693360245457088134392000672940024930503127493542251679881613850604974548565110710456200816452424321904976618534472658098162242911426355672856138184395223412980254909285016379488517185355725710719867474403070840702055091597909956819116428222323645422197745875865043225791317243650733572536877834636687426691013972221008729288131164256042381646004272818840613376311421603185238562031799678338837326836092505301992984070054685745007404557735384453129615735037163720878571615167268793884323832916050511864826070878900902725639227952598776557216841176986742651376838175244556134912114277090014393346510291727411258627475454361430359852293854296462454001519995873785030061913144865469414632942871527288165905081903967344540655005316910132922178309086782064308169795388006079294036298659933814332266491616444582090926639205746246226015260525248380380576979271814106044300078501626577103197834892737588335749831680149413265011442287551500793582355986646561162728324952930864764401178047552777894981865736667159500606280128321030214853295967191518244980826307562061598416605660162521522874841672216205427969594245030268943607711494199579357450276468069124975465655445084696160502299350953645897359524085503197278928538968341671926536370005679930371272073425685177636638684421790192799873922096953115743138366951932407432627230530463371712599014027010817657578345927150313853549150319722393689068284709928174238270233487725890759287902769327236398921646027067150677424971043030283690418022970639221794994253575378485865493652530919940698869365147620261185213965254817692623335521422048393276208628199232774210830821611667247201007978675402684694890362857857008780422455996829506631640310854867154508990784508311758686814235288598625855708747350910854847927572423557897768617241973312224783902372827496558037161040812222967628521927164943316126565595662730723918277971864475680098105993460756094217360806133766520127924844371452692002127122071273288532799870739634085995719092104213813146258434358711688548825361491479956365855323291644352338367665204251429976685773426335745275375912474231545767743422123843267039319716276581077845825966089435927799147908381491387776239717729055852015195400966530488408936178083271411267109955662787548718956290456458737170753736284264015180958819218574311533470452610627439537017263719032036329964905360063678480384844197234365907152886424764962539896470491263285630381322074587707113129169579909202985849275802848186382009650788959396820444067154107653920412043196843689170454980743488894043946705297153723949482021350335403951717727057710491342501089582674372095515181146978007906141096790258738371710553357884451029633740225604745554117664919870288183566532547141213546085434926319719865128683968717195434619539968532459558085889986330925974321002411519482840818219157896805087951480401342234913285694375249098702945164588330107774650034131649127170176318819617205824628426861070420161495690478402065166775494660024413546030770166442160994670111781967217475833735536453043951080509039831503664716817619075866248400565428591647389907627254972321356625711530770305702086151872171474060307240582276613619441449039821204214121119953547925786139166616791304110912009619898844657463351772863172816025683787323048413877311128886989139878585598799253737749174917785524945116866843097741740664921068370433676261057931518216258992654666687136497230618259385432580960546467894466950782496103424304435370826283236530610159128549280067970351102678785188755168344293587978362721873855246704754259492416863107574600532921444115042237289397490390219916854214557278709984801878181789057942339693926216869782103844760285307627937060314981773815419291962153634990223570319987746004174401229019599182698784115131605166226980160422379372667165700218018692286237294435771681380007526588648709533891218387844125045483968020814727569961830921211223093675353011103936583577637294308230936873154360217669282246885319145742426763863167245300283853609948569402828995084430586724375008001475123659042768797448851520050036106279709636745149641908806065269267537116906424708580044626234473764645612557156063499097183012291440163491499130191266874905176144926194359490191900875529091869155576399228189604494443714745948751912296291811728973473913897302600447792489842030376926273506251956320835921214621412355089451842944231240751200745349746425913327105281208626840200082203164358029751550367766332085287424579091403754329464004711978449839359721712468705657839432623647772033661221094727551253519526296463502396487146481903735056054933620210540883490107607903613934176094693844684533638561132138620358836624172623154407166778661629068920844925244462982908518656925440570939715078847033941418704492768552756062334623322572800319479956760610140972275579592027478060270956206804074252198682936266913370087327720555948975629121471723555127667162019500902179280621662990435391937206184538526101590176961816435563267343310484164254246802742982029430294972250943932562117562322162725041141649214138620994818303766438698707560969306134047884903943967793126991476136192704488548197106232071470163489126103211450452650180475454156361593644504122972945968081556948656495174928818355338442947365873553563149776579159484663188706451826325464602934119261460441683272133462942952248940669905086128470808694164724758712085833747429276680308561380196559715605939059172958027527518787323367660773796305141408077787936234465036733338233824743746484700055671774419041366180545612040077209178912041588729724319958569677471317449730871548303170452289543078835025784734194638075400659204722371552051085225131371570122244208927983968949723067787080160139220501931932317624959110542730827976867095289741266321120780720994305784247393957008290138401412560197673614930148517751825124597823255031711816098659765778797746946676242495527857250379055947694613823762393694872687144019763060218400444529675706145575106749887936033280999277897074894548127260887529749129370902994899890688822532480456640291277140387382939953281491941779051199271947411283895417122686872609527714324438693259313437926048309816359218656395900656249855070484889984266828119826212202459205680809056283061178788407128995077589822029235686598197793875058073159954790404176505299731546026827540512929998218268489705286573755443482171024474536347982301841384375599648249492613927023072715837007348489389517278003597879540675747371200186819529221322782893976405262404362144658201245890541811251528283305132642988850946256522244162371623668167351402494901462127316669715803829474440171346996205849002707327693294214128041161849599868087831441828863596075987349148858956177768387911925595471022927190332390044705631794363950082637473212663626741078600241885274069228597656024870767580427335616466579286462786992726578838919028865432183370220277772122998675323883776036034029407793039611583988322840895331577022160112065966022003542349085970455408954112720197274316398255199123762044964759832896076352385549229640284909509912099445189999133120725663938642895808492077763538753772995068106765430041512663486221164907644950177893276731104259804198249493845844892256679615582875221342016357043772400326152053893270722695274554243436394132825467117892458660760870409671729986503188473784177732973723542332106366690857859050932823305999001961804809548025300158045177830460014792702178403632054015695124496151530897885133396154029302132322110737566901746791075584821215697437256303628936027052473345247077394388494367310703372005983334325366397226431879410398083400805593207857468975444664629151507275117145267969913704675781789137392889583669219676951570430429488591874429837003947537091521823041234559834379450289079624511927034532403035907900553259016799668712397778717242376336916046405490609622145077695182507715752852058690480730917812706527396958153176312826922718997670271302149791469020196716110236392128697751062318015196602192640478565925685720413356346126146194240912046227439903528938161901306013671808652425854579200072243083050446120695105047780315529258328513855485286086511730524205016207520365666719982900534682876099887850750303037284639779296127986356990515417929747460867745674654818436600964706964291955424681109725527858602570359258994867370101270343153662522047643688912817036675599048300159509143313603494365094577427700780762187472660331876927041160200111711159271571973401238703659147720211176832685760585474195222180594742108059700529521198269373556453512637268968161271153412809873152058520254858191626657204773302951042998121561046599748942312803632062889475566375558205680615404559260714913372360604139066971868596160156655348070196643988330819498134210700105094453846797944857911115495912110960890532640525271279852586327127900611199549796149267707187634802163154107297002043376673926785829014326356414268284389396696001268421824021966046171248281242570347016904449789098703460154781327599546250282206897291015523361191527038911659912939337728536171168487364629355123592493063957721843710209854638908902854731833468818345502050794436022141250115068096992429995647576381156140717197518197985597978235451758618968347568640645464307584144504904407207164317965385339739193171081735757426358525730359808116836556294575819396316778277668838407316234283567779383238586131877999083283885184903255520751517526871588943148955519876372831350359943035124286154462455869135648050753056890839384908891770087669633395830995910819286729989787836383030607967320442314694233501483875742036777967238932139280184086039911576235275020411163231143143098003754615657105568750933580785619200698148334599552894900412664387676841627989103434224994394273473765868541349883530100703742017522557712888788033104704851529720374656128921832206297255755108804586504745276660875076833375249004298323313507081885474062228407535919228135783621887774690569524769800134763271377525187051425385795600706131645162684233435169382258022122934402224455291958217095645365898801010996284690597114447647730268597689596564164135081408851059362118967468920516936761254546275229546975320705867996810088076729195960299343141249876854679353038078750271845149822991169534482881541445800281250201561270656601512961035563981122519602529386642161977592491276548124330237367359682470915788760739661743889913576429431135583895477105412140229347948619617207067443109778427581125644516756706104812910051465586418829140292492913020360996403660484092374374183622375851022743660207405664774277572544347876365283328088774011193245367596032624270443308986599424450184722599703891918365620144443184533323931401506868639774381181531983278507042936434587963279165750579971272392496041795479909944809446632465571840673022078377786344211176376537294874781507611713770282162733963026111840662263083794620920999799450018928567911479264871779885701291058336292444310608074958485748142290736125625565893532904689250194580809065195897323683134897673173262315612346930208576677190128933937553468071188923081533201537587952625818639487874672654395757101936262377112945697796956268395453017915867443497388669632801526828722689164979589874542711405245872912792087300109087087645588206470059003723285323607980860710131393855178424276097618396694320166593015124568677409507931669677627923275141084323018853593421246902409699857286756191290331079378071054602109184239896923427724271764070389706639787503027339133541510769040792799588522847453519827765868800118888752398494044540077688773235891532585991650486513953746724779937916997348161239105560512984342934766809429328970494631158170965590472232581051721835533015505706523650262837721544651128120071872524753242587235321889919865489564830879711591163511733386431869882092482979135189689590538311655443206939896948407574621818264385924228953169385443821269983085737775344689601917044915151879975493613568545559850012437690802830706119842351479345923767726624353603788862160533056698564480430597180440525303071122962500767566859964851664947548633480417287892902411591679906653590416974291174105806479896274304466569655805119523642627285807173351036469525111063503827204563198885692032380104570586223431572094717737985358866997641614388793082625571632899179619207273887456093676407142995711718213441037940625089005719809320181675192643177688699982354913682469572655053085287477907786261261228723786591492951009992585724728128539435745301990410090131769993366580894272178894866059800553809059022425927574233627353866830059886991678362977830390918906262186220289258820656899642831450257943208493283207270319955364611681909298283637607500675622761986598529362114532834426619417462278816190708834409238608804046600162454384651095116449975521050214220639012192263087135463209108823453155111669031113592351853807638657464329572934917968754803845237536148384141658891801338132186600764644526451211620369484660269501763769726087926780999940706002303615986276993970776154369309990937121940754927295612287733641888155120795954605317991474990883422820784536781882672168163206630023262735900862789820882390157394426236160485963109378438928294363574109296735322221068341370822446237578313180732773542118964069128539809588540034519354087569381663073834061830748302915033702692564033786445177855856189084699623814387366413247371086370241594947739133753714591977835784521845893326522232539320551829248802100715169044713598106744138896698023438078000192733271020991292697232733115994741621088733657125343934446514339171820651331069431013792172569258582547394653084074883742264865325972735167389979944736670805773776506034149072533032801588951164862536077250081858419426402145596859372800608177048176476270361264849668838811673448588691555138355568269711491430674106807094887499043909442783315287285834377820184338217498477827406560903427066416178053201646647102983267391343490536901838507009691898113634043252023796998458920819216791781137126227839154174996100828811005761395743963650641296222680649609340538746749360920900082991493426311713795899887819300462409767612135195270358311162121962581996503214619913465153220514860908324519435420785356517161090574159210107865694294563311821414154391377385984729044034381284070747642198221598814553530149483858118081996835920391195936571773893824695107810752704043423880054579674263841771938821334499534043587282596524428116119587367086705378646528622167567197740032713589460044863800488896958829333215930837120613977538971300301322633347879954138985599772047934059023390077575394867176445044382060995985649031006863815862521590712575121640019748011029117236845985787443572637889979227149648856259213850719193313519733827449679965733879329637248248320248445927693285048368943530819926212584947060100377661185413797467370282348430483935873083027049297365216167150555463615191689461338736103378357767917718512929852627439293045143957200661250772850893103679325840776933200491001657953571609119583472033891464562974416123647999596540465016364864672347625519376800550018667505580805394088817125080043476189581811479239737820547246732398987531244854006043678130836899723978826919908067515099925532109810991634863148270293214226747188640214006194400614730628050403849055129150017605151753864138775813798899249073282833618402440640386057958762678712642283411277241127734896831126145172402106123547369812786367400694828483154999781621350105853686541125391422395308736503630410320396234135186525376268060490731191473477796992472087782499605342593893306905140955201638603175215837267170460714051526449150567692414110145032560369583984600422857857486086149535131438798221094557676360939162180693106959493169569401852602044525356649601430896548442522361824656067261782793260771134834739607033109555134961452073223325653933066846365075697925041602831783803842889705701599751337848495280681898908410640142765590987589073135283422002332805917028327924027090113115408062386823988754680418672205218175111036324268365375933528039995381715589071325028451703612040858917174653160075773694864961991554371364756987303597653486349549068242540692664969166598632122302298718797955263236195235007867748757391895723726949352571660109313115576260607608374063975575072278169466868423305560406260775061264932808693770636076048754905423532948462101020761369931964934479373993703624735084078183910908859254745698502916121007203729459385639391259516233855375741554722170060763359312245562842934018440675564733358885175377138348785173747627949935370281258471971036821303354706222398815246865008742653027278832764127586875667581139507701923725903626119394179482887367469835183767354680988105826809235426953432218213233979953878410441018758651443342048875803318086830550860491969937749323930905862003514968006236420119412508360134816161612926009225430696552445272863212989268038485067751860110303387983581978447984755641433934896852458150975503908860683772825617999391423663232884009958202111787383512573171468784613582223040232556412262088628630158703926004597968991473460207688597307981763818959987798192197847269178095925228290731144638420990596838400429952918125174029674528617282632060832893708419867596453045681132420083565597726293340478245494486597640981555235870313555954196461262181790871904919509271554611652235261888054146772674456965398176654740135678274786174211729089351111714174526585007037889681259777235650573271731635602736439836178906640863032460769512973942502942811307287586742533440978957298866637583428661275795907630122520714175651895338293991971249436478333674532260817390575506279313374154809668530000377252262690994964121584147110304725805017461089646714300862714007667705065168136241763087596986614115454833398488567707602534230944366929918729780498743829703587646815789255050445642427961735783417440370831299193795691477340937405952686964246682951286446447233649274572013832871094825283997988686757867788675639388046656898355122861565285580872344732606521689516266678395228404336591293854254330066152218300010177582385580803516452779278451672880027387565617244074205917682514815486562572423379398701970747583167431833128424436436447308289133133052888639486397863904518419499147900208814892888085997864732497913202419280759656306828816612927870883472744067525821574601466315024561003119042128953077592611841130721517081116397665578523629121232627545349087992143173124680059171595511478003192203874411864562043724432503824204276477175867098459283745968411594017390505440410161942681648037019045095924452930876241068082479343083783385239707717128511916622889945301596859650125803148328291384510285238308962036016649315490520415930182453214999242704226249906188851035318565334722642235529216156008886233821028111945576747480794378785224701511742493683146834480358015009504209742717674564754894965004302248500330823506630251519078284914628348818360681108446343420515650989822431977038446920469511326767095973459225366418029931471442894346046636761034405947995752512623269849999534802690239736112122495492606425670313620218018568213797863527017973865064427019724965088476441811519005039729073904059312886482393822573470813116537207662034349019890414118314834704070863927142490472207827337971097336263084972404506614551049082716706007086914738518471696281427038696072773258730854376952208573405511683631846770681159967175982635302475303821529906571454363728440915911215316359007445362993250131266000479121535632258807390837553588580222275363742535144953036115962084610017647259945421710320732558048089634804763640075077890523946141854098283745789252723085077971830345813381530280784714081494276830331562211902234366469457375423611603266144793780870505637665045109575049719280931910605413813560421567637500878463359471595508430250863830343460361010579615457920212447493400695737931872695064097747662180859486624522277152991718187592935889908685443791430400435206825526954644213531268799202358032828296224184951437625307147459323331329317131795435355400849134546100453446118072070344291492902498897795525599916092793474163067862089972024425720374257304459523952594753661177648575044997638192384808091054827278436234272639907601813401032001373562027691724145950370488604273571430150408605325514701874055693709872225212473441664347374206864441718919254053524484619256122013081417764586785218813265969499664228772167423494425304138597460336198609933374052464711727197336205764227302253218219769327359281200988613114786621677821357126961606077113439619186533896247454059433166591179115975999761307937454003346468277347426035747837637442570362653098421318700157358409532708453648178586397292425058540620877300863558144977778964798792446721706633024788041734732020103630338629273756953666025695125313897934524251216284842880558975630532315392276579441741045402408955919694406121262996570762045972955005153906840929354959716621358004844442877726654649352961780874956489945017599335881628762297710691527281093352930064092643500182563629469635705715769196318100077646077426495959700616950193923859779056440951748600795750440879475951961193329237291334330542034976783664427001653903882872851132015585873356926482316223286049178802269711616312598526224796320140646568139696784210582598740727206583807832985041046515374765783504328858800083238536035530793596811738801438767561039703829265813331900368142709359240241100732189634035886005302113972199686794940970161342834744332384398773496587995524386417567277187443902633594623573655561333460707003944756840588792776104640854677625000198514883591614586442053937540369474037850888836092082297505294871311165176327264684072548149730161837767896664437847913260734966654182672730497056237659092701719167992983508279042365524093121950058102903298550598660959931763638081950511047822778310215393383546954764012919878810645195202097606371726323659781516576328628496677809648161756525625074884768114846096355601035621796171951611790442302393261817726971217621793453601385987620101722912433462916654299604693023125516499132369449530821597675960145400481296794765733354379823542162338188999948322745528360010476208080669275885915507209014733016647515302151000551691211066229988630217706959359291504177647956433782826749066037542870052619639890556323290505312669640351326918060251069736589476486328682327051198967455498501112400335463153082181581640846046738186980143678286085816134242184473927923115760215632951616688478151351505385613584330131861644807611631723901626806633325709175329558410303921191979935168775294935542890562990637729502720741407073070400044783848528813710025745200524089133493163523474151424238637849028027828503747085247063207403326448424194710558429784279261444268604777019938344278539854100167542887725230585509096843672164890209184729289806330072383084735309148093610661695719074493310886101616390183622586523180326951988933308670133350885459251879306558805740153136452342334854473087094603482538159856373361656519169133961267091782058411051250646128037794387283440555365044688536641517582723398609205827000409625695346197012132205217236631049824730570524534856759696889730181620930941076837146237103191204850775373437445755044537084297869045189308451834493584311224966192284734869526425689958680576816599861225679752421770572746419353428316454099809514749671354187802863849884761781700491506082105339920854127249069623152954193069312363608645626022768093741227381270829797008995459847812396940667282913475618271533505705783014295920256493989719876652628088397359983379201137735001230364810238706131466779484935659809008663310866001277674109891545514511072532613973563254948248174743196998795430113035452457193907083884574325932442042881907930295723196778772084068965416821556800779068046778316635152602170347188333862468157187337799564677898612081612637477909278519355422982296792945471812467880024031142504803305013622361796603110847618154188923434613755858682496118271888711334328719928073374491864837227785331363325141139975163084144644894586146425073608295694593647238596158912751647941151353563916860184570414625727252562121932755633913975440260213382611660487190954068818686967745957967957951281472780678387380865346540340359688553366880945681609706023498613764650874761435683536534380986582261365585760367895471677808314035543756440495653051103391326461580990153903254072971570802775946444745188911773410553515255975142924900741309892906318487203546814715254205036551474684898801934659130834361812723940066777441407747009780164340072440635158781087755391113616665698436263084876362766417055582495819495396844428099826107076092851769656945912726152368239219820674206594811059942313086667850628945318620502839898780679060438334332811449250094900659898231366373539650821298092406420489935588459439810687796585168117273141964334706156183252881323041401408741668543223873292250650583439340121701969036527154039815037419914049049347476001312483471955610559319569065366549806945996807377681006301958632566380927203197693455095832598424071489232455482653274802805926235373034250072001523502219941195588883498314352190895267161922976507531569543072424873013006655353591774681820948889777560180407121042644447893561439416698243774678580384333205286556655706235650042422104605037234239757579201089091508314978419151626258907430666649874317545860179044378060446954364768850180264331345632629858922346338816294258617614824021515951706646903992957527379946531437366352657260610744328342239710852067265848875849488588422377072424619516218827421680603368083546572247355626663211185891281122373716065360078523252656429321507671361451739242906240762706745696091928860857768869797166342544784242853774332525910118081815784030545434159539682100068781738504044058596957141650395169326811486545691335801804662936579159528574919325721317287066693022274013899407548738319127360969511910819677832113034655285790746864625693912954380670889840374120533507748111922780612707829663741105353514619989565429261232131884922891493825476232574204064595107538580568735378096533348028619214314057125999315063099608141135323922487590499789192976823160545353600555920221901948248380023472059845462087729980121098177224625278105416534180409891087910398472313901091540650188679099758104463103562748276663584864501574456738271858336981208138633205511398949773296069082175294135446999652415215219707085145032838082625266970542277050630427139236094185078065054460823004919681731023846656018985043321683587765641663286014108267752627997119371305422303738947379554637011460835674857430821203973595742995481763685920435648558018465087041556721663385377654784295998705149687608907730389308369623836939111688258889293204521204241371348574074006709333510556600946878659203952167193305298178113929969773454255287595251291510384551855082144425933367173921197819718319392820352146916721580189403474196765427368587430830114619742208289730244326608331777947365525677238888337547620303532904844177643259519104634682795043715450091721038085161956362444723601408326084012320062900997868670957635614923161058848159910481064396278127294993112838627437815512511972420347598254848734914903215705202561782265510391853915240901366501447951659455816838875161211957193241699431353120475256251751290887808229625921495817136811296712383440659792464669869105771069948490238362029568613420658357490245649640713988808897517829941464380549459995324386090013198782493663878053375934517994362463922415149300568484872738155583651181642953140424140815176790070723022276670876497682035371008490903986280975322550846896667956984825911117642461343678951755700523111483795833141237840310583040148665200668158946809777403264498711114270103464788373523461478729267056677042257571585954608422262175612947113915119589020017437230434704679850891446043586943172263396717791973511741116724297414388267964594461872387054668340001046526719276385028728516952977000076271070469077276116501880310294237311058329288179086083537218389859233582480655970136149344231590483700380251205417300660208780811982424369915635108503242868029222889268328865330698238545021182493027234793676996062274283402154019105093617584142840849562542705812456985055115116798274158505176141899616363648808927019903869547284154646369500030628893484625887823711676298748893025438895403867582880314287036281313853668858341724808258886806219999400244523915084419145347079680746846489879437888269087789284446634475533559205437195655262927198991669685140734583710688655390479566854588616782588211441670363679364644407414628712634138447989622577779521567785027350813167490148544262697480962467097860416534661089173822369508957822983741873702515956085503770607699192800241931509385769553502172238482789348786405967005471615855559596546537809441677693517726169567551276700986667423974439900108601518553464366487340306927888233970780936313791329013116250193417797820929422949619373865545074872589536363428072605296693186826617498920627048127661429669257151771409600014336027585913298664404593393318461141537075529474076722966524705879749933561476385552608100339418221420209364684331867679857356145951627992162030179070143286959684589744579800336650557573574432904220883945131313105082963806459685136013899692847713557145534698570479813343483027740627056605459881088048200600424025820579402137259271945482160604120259327902521079849962880216092699689847651650810120218000327893340472827896202820797451363625314301822859722849354301984014767815744183469511920461256375839492588719236961857501544125310494093373517886149900565589365540163573440793872383198709095116580242099594719559844736954002836202250594552342080961534177107484334089430928691910870794455101973029558372092306143882134714345541244880974097254084521438100107956245414584655643190295850498224143766708616378686877691906947472923649640262344498653214598706868019091876269635221355820922451473600324590900893406250684478384051129238490269298226135281592560134452313529716387841411396579616228499956378846343917321553704787632388188515027543464806504963169773080323116444759444751868605211361298059876460856666037480365392948321832269594506174363166803141423367335958505393389433624554974914432232766627106312112413880499401636776657747578558932266352608480046688744755616743482588702588905601065490830596875109940145502808967601047232187365092248570169840142068998441297829810449179374531690441383910661532173657200250768432308140491230969678896519826493873570244127839573643442490252648363131751127248861102740056208399312682514409992679734007775628883612532314676051934672950447909858872841216492494991947587492942524887104666479151085793932821171252842267073400017305082370914152387186676109335480234954754878403262721792216441105675999436197416108033785875948553770252312378749051914827788649402798205740954427786021928147400701260057310439011496909463768869677831055448020972066305930529631361936282560061620393726275614203008340994917150426941466008528211102150065717953110009815401365694112875179917081873718934274433564813198626338773245871350382398774803791817480117325104628755066924295913705715236812895454240335573776006754904739867958505766400926390963885735125282930280226914429118731355303043138201118847906891483217273557039352672606120943777441101475985175558407746691375588490534440595691867044729457428043493539083257519606464130806303100850825616021752538073785453054439379695447504428337951948928602220020267012965213132947326275000357384144794012100132617826090081727613632542063628008722957833549527630830012753804855514752036894721548480078968242254953390842587109943105985006463702927621728687039817362362507827004849320494426648874841887697566828135332366228847347098126397057447534228140966387323467664175909659631528330706775894056031745230446460459542674312837530653078901018942079403448854826734482237083583667577669861270817706776959942051330397453101546775272739022106881955290390711832547168255178240348338448185238089980976544577729962444885418186708780135896116880145072741791606186501397379992768018684276517441762422035034229409888540677555136719431938830052191694942465426365728837836062570362741488560420291017337715628514948940965707900707387738941928156274520024704485629121241323969290063120810142216113371032216361276336813788659986843530635163182688659132440964366116613233021477045863878686435483156934252028026354811530947651349171330632021879272003281820132364507011235447857450095885094886979377853221082004225593075134990173910869108108553194695507434125651447099980957532301962374127765525343853823328928169422622673002439175565199463205463715179437194700706785916464202205326059099510253763124692896010333296463754192944868889633554644581923912241335587136593270071215614418091595302047099209431837550436283370365744574653960560735023130563216475217734484489965103458882934640472327588282805015117700424834588174395620036464910318843569756269954876709514855475083506654034489929161799976340821888506875623003101420137082778934808372112174523006453115669417751214843592406084928645114888109625086391113824436234583901849621873506593429642730498144057442470697854301278248734708393127171844735505427113446846222786481018033978315464326254528157171382436147410900435187833042390735000685688363611051706289243932902582920566632456101957020841926426043122720373883433246767953385024910251148595195408276990733333062306495716954973077097236297427862518052761359250480140655376509940818721930765156713140833732465557339033358685453352171239227455452436992951954180185409605854277081340456230213865620651501681708078103080982048995891403091925725977700490849299130045194995661700418484162556769941826082060428107131181764382053663161700372820243744823460992883749414785391081735450763627914611226904121096993429315801579264066306504021568791782790900963468567199872514706633216364504463709845867562404379742229787428644800398863021743446633161545208902630831434897709573084685962483511331591082856585861294289451117334491064495138522920292710738673267848524734074438534086116079525027050277789811353813500456792844239255391748141813262286245786712707117193477309265316842246295980822491893563269017961712562986576066301018822283074741040733503743694364464722671845619082658672636240623864221784547950967695959354676610234051528087124321316092588293495337959334379811375392811604962827729631214504597035186180619310175631108160964117116456163357320505931120747887574149167640686340735010183580152154775405167840640140378488050005464567839018860529256086885727822127047790626726351715505127237646793016261428728690457333423815791809335657346259006363565478068113778228753860450541786885326662672039535025924617094760116154573655849392211310250534240474873858901716239339581091326292387992718648801315224224155802156548815801213090203713227794589938960139995303967419549058418928934783138133224493536832182557746396305489285380370250792964428496060489401944325494693441093906012643069547158573231872531984687366214343108602770689906832350536320643983490175633769619332062432607557525132106980682243502769930789280752874148916389788217468446555043616686607194608782580804903413737115415056467745916004505989302141571657715656684882547691069517468061348057974320436290609100219802012932859829776103250671182437898464937069058318722161172776860971686097760747450457976717150652455306076522097570627238522425178231301198373671698941979453032920990157707592024481341517679560741980960685508563172471887739760028169566254425076845524151743383297750579489195815969774877387017975404249558239292959151529213232224624600080049049018946778745943140838311027364768969754800949128002136229281162942274755345847126656229742720026768630779667172900447643064203437204735950341519739294664777641131623643966260131263976420502223810250823937975999221261020646433276249200687565763894930116295480529081152631707950414935280501288809513809970748334134428413445509435558741008013516392121040506878120846949180267932001998365401103922850515169002390859185433506511042539544497169497793405849084089307878942949338512099461200602049896651983277099331178278137568123633130274067038916862090807051173378879385258631601526720863458612349421417103656920699252225542801362789914668208228095203476923482168871574521133014559141362802952323197011274977626412745526742752323335047661586581531522913869603691391207395314939778521225631978412777580385373177050972411413132748999935848042274565700798028858264898977606195015501322651486401918707679682575898470874018032409023630165701818408389355955862655523840521868799934907947046953139582309367326831709543513910676288592419171898691074775640897001635695151624469497510343202464929870513110883343165452766346930004135725648196236656076453300073420641733683053453613256309613972694837208500687705190848238111628579158657321927859160285476409219075658204459980245418537504565456902704505289319757796221954197410814086806708138591726542670227988145319690690544527778973170948250262644330211810450086429289339434175544721437935267245183116419458144801333339490078699941896968860646998341078855428107349351563190061762532916446442402771761697080476474535481022967937171774067181888310123409983900899286144547582769304913869229027098806836263997690074533174378939250967834172680259654844748561422545680724223267467038503863896336187300583461428801192919873749185642312528303817631065725968270404048974679173030587512252641467009376421062618410766744959505801401171937043244681089621812124857679102226548339595750453651446275823534051502080634068124659204749979088153260028760387365659086563683813790063630774768892910494776579762135194660457551986308740705298223076854211894854670068001329274884655456296336772773422745933228440098046235333190173082016900438853147271485358122686290404607440599197116906651602723992782459859883302187787775989911925852896241285225690245240611331825666999611669978018705533467965062090337101398341043651998499843998176557133591415627830999553342608204957181130351832452534573902400719453851264671231574482482724728588583990891552643952437998561581783540645210425758460568171509810093316413740717602981563601107340826488303282995104663935799474114614020678491158167088209213999341174178031141576902975694298336593729192219294935864309233339518017803970964703870345908087320706104374979380639807210889184204585518131747893765028344514999536038980674645360984092573836185371941500075586430463647838741301126999190172998142777217576078131249445982825753318232140048967786390750610667774196082501835494229334426988531123761395399527982518950394858033477040433044934554462163951073621021918680599902958301381898076835561993020915186886574518835607613650376814270887352454703982657279454056658122484365637752550848737729962659782489496924918594269130548956398916434809099091209743476873039115602996035498406704577669350270717581204190388581984016007734148241203418656758214452013728733147369663723769860309118552807583729423401786908165091032882419106744319724636038014947209602509242138004405282113228473010466362607077488919739087266915897999682459732654261310558860651970440981582305543042179542640363521206490700050992617946886168458587447242473624037367702544093482838477141105765084926583956778599324115979175941732801361985908233220095905205934767481361227452282449846544600018768841478989307555121106833089347633154163908550123864048202403707267307059437996521197052708889877922910758122925417590957372877910457004402833710913201304368041354999244836794373840593517470297174212135654479352620176558514752009511212558478592581187662214229195355952871799700851509875559070427947121307172309248081804601071353319700821626417304986011212925397184916261435333561968106372554829873049639179045172400992479397865963811232473381761940392217403336811099121779390128196620914011275379248790282004603354209369351579069746278435651050595060463617620184046097919556690353337775273854734527057356163859361235753161021578563140456641819114450845873117822836107199721410983807145603459516585423040178555248588590880979670366112397582601749888869674735007361349618553894959606292971719256595890580161734397419129186712081209569558076650707752819335303956567344217778214056605793879229035176866128624177021143155925806531332788007810248879660005733681589146788254770298952151848164261366634093718603274550057725247599252465750764682440109607817634825334944111275498133358605083015477732489030623535532920142874859022137660130528259608612004687977268000095752556061784473869235634588629547755643733075360290936869124196051274419765289231598461740216210674050346209926461733790027507956758097937766033092273697565401179135920001365539382971993112632828941893840595020485657300358069163168419726838077349249669374420247057374582194337074648009329698371954704149539019005026852743376657857428921831340421965864568049580306498769780845664237021661074499151092018623145946767615944665701767194593983705401484242876609067383530041891530228443624483178652951975909862878864793016936227817125353512528390282655130616605210767796016822492065846417241632002585077148509654468034387699891113818129857068743416883563505383934702332511330269919404993596669274974513821068391413796981391076696470230732832216228660823043638506946052454236359883843608623964380147001457178759844464131518116825216196827304879532884501499124238463521962875255383980836011191216180485435516201703162487076717936465699685455352138102325601610600170951918944378956289656332413270249285047176196639311975466571320155331554588936078289650735170412693112695546007091587765452419079917156634583951737069457939322029720777925406809385545256825886954636679605291339637617729895142930376394527623574760681020257437536680366802797111231142754990821467548054184689380833240863323588522930476757654567687151735681422666055806255179745169840041036812572277635645548281302460476579714127897708844287359597607010330284212324003132260126433297603013718046640680151942443680370884274865487716367589979997325238630552465590165039483261363182185199032966290927700513489086238595135683441745992961133873378619728850089239055497297959739911384975742089863605300675350113895131324001458245445665317026856616340073240751170032982081884021165475396455875046024222447137550739754582672299403254754898043749104340394469279771879964052670766003772254162313485214364874187394739289623956581201508503546209585499540505856153635241974740563242013312057003809094476632884907022974701803457723842786758887701394455931091105635009327182226408985309913342907714841487613344866389168547580996007748732846586032856967819618293204625204736861139159970403668434628891968195847180872386935369601732078770934123194897220975636589661860770937828514088358842476812601931116091144036230319800699158937276924538142970734273639445047608807513946735549292813207878152201384713473570587459785950700934896938273937825160470121989236824092018570837719899166739484102765838302588191020083358727575559159868370893291792872171011095432752756921115561215880419812159841249326472004011021781818802446465965745876376916406385549557177566077640241152126729287711433273443366778247056211288770572893065160416344406287304380212492660113686592164751377338787167162117472089188358151729662588278712166134496316954722716991877780760211225558463592879000692969030376258229588924731667194721282889674998706106504404570553704327175041920925007090566108365009792128519718211790419443769732603210968500461091804223985986822052001271295121444091207559022696363182547941476643796011682537088486520352380376110558786985861806784611284931814838382685216928909001546106696946963075841794563306133852403723009888855759941175568163140088378046483963727779774839050597729180979899056045123258455975006260772313066273709813190115364559265120325200874514775412353173164059515831653678324134395110324467803864225685739842143802695318086944281545398257069556755075765000210976061898878318634552721528251817320017169573281880774485423059522837152670439233828543988481992721493830550444871163710208438621623492174119137162803889333268612395731528545399919677844805026709909834621309175266141572368793088010090573038014213484738111857325798861762506980516784396406343211416195839611669287248481274791662379363803925899800640757072845401406278005041922694866600127884821119241838507971173834886456245545408701891219987569338410140312542747319495570647124982380014016495750545560353851336856249696181599033974812669590772657727095031903899027128380455704234156682472562544554092452599303469770559935159768466168365382933680424707261048663695009660056283257707965910262422271332342350079343023457908175796207343209740592787221056640956607429301218149111464872509435836677345698141585711190872844156612108911370715111001338890389771204087134369103721713472436149246456309989455439402304079484202966991303155820861409347781313570292728397950241792150832420793156482328907719472168169571040413389599394844558012279514257394866800752064318510813519583294860094953226424696298219230339770089032121964102929042569260047626251131562773629765597483961276347607383136227345181884466077573158685606624057777782308799959674573440355491672091078599646160161342418731817212419471332555495173720347686303142490353516980678843093207063355686905039596828630770731206936823018572891365267111788735161960900423597308688912449987407752864349509680109357634746670072397395984789325406852322413060727423829881176892362475913893002037652335474170922527253132018663640381674468429623209143418349379326216317471661190128867235288128523049078250106224529373935547220926607163096236644480776815100912752170621160353348170448108160587484302324497505812542729971366453366240194450601449607968658722771173039245696421578676748310090873733494836820409468408600478414764262860378486370836512187393234362037094716351571388846984810671022423424327671674090549776320968451358665660080861490554544920814825096386616563279895147865534874652374027082254932207663861624048643191388114526158680619230828327240542133425060083191802235363556938313577742392470132652449965880629854064268072871970461867634667777079408844063925876573689868361311646759116991242988686925027256990280680644904360931550937688614641113156651935802420503157873866446744422979792763449816110403965136009046320999806587666727756247850429222763888684440460052563210838680282469766003454995092678381852977063829594292199857220158797462605736930538023977937974899447072048334425601824845494160846088605854513038649324891443477728378143701248936399108266556309399612612978107022187626226440630026245488899609103136836448970269161275898020181365546808988785281117714692769784402007619160742652441718360439891140580844792772773816700344399653327103869425035080693972978386458158258485771807366506371308764815623023210887074695944987645953524386077679982372174040479795158403925201308512169248114360233204922184990208844235752088590214431072313695404149849297054086522996268703483405186774751095734218656521474145830895860955763259409548486384190121790189061031838505220077736745143430288901430050564858511259205618666249118383003201965002043972088467176742484303350988457670433613173861369508177121859254147637593544075755011717386459091575528046956115788865164700451063391527830168295393683471700757828359828777673482633540106736134478594811728252886815598168451691835339121586886908522204837090027791446817513448732453327161448319934018265019575149647749655783993304446159702031977530443926173117618231433752141300346045419110847967934464931337829932926042102444048336493071223517393952259634921155105525553029555913358528029707049352546480973748115610989523530608056590057540590476992623928270129170216393871977331129524854924366135358806331390565668102532064421853209029450858016309056195598077515670869379638477035479421474192942793581953266312249499496884926104671659747467987656460393041813608231370911198850348268086254359872434415069738710978117131608454845072430821991892701783712801937394069097616073829207087413890179361012650468009147206516324750083104571962080905373541483371624061126097249613326883285193911999940436184427493782737029581724947986527143842305498061520786281151170970761888857734914537385148065767837349181890660269195698199715405800653036642022614633878783000894319545198350219902028288104090315163533768159166448369830645917676640491518771108365349342008211169118173636790809140145687425604312266774559449142920500097903452002815738148046151792414156112597835003442395336041515212425066717287762971169658105001419731888733708122386623120566970137463850231568002547774929932048789751809899796578141612365676521235804175137043307642646388973188807998305957375990153798336654281705303133759848695148123728587924766869663680708897858791970673736118126849687037011400997982131050559648458013494805042140968825162578013457237319183454267815217459385345656073652073728517214860118519773542578738375338980489400487111567580798090678637956858521095305402999704845681911417234759428674459719558789751856252017476317537600105915723787567512209408532806279019139077482167285677552916928931244648108397785238453006479116205498004964668906023625418150576497332622580141776591983956673341620231313838601366637269633163670684363674132067211070123185631925489333734692820307880560327880027694586394480220000526433833905235580974585180714980668183386608872929955994405860810508666651078947234071325033112459654366506073941127892083233943009386191737262997042503628542930872441750529065422375477175299626836398636831026649317173676701745397526815163894613352530505477412735718548142069772632067557835110559031155376292809763237663819912652378756875578647269150204061259241913752744042886228407534204699861506968401556860788945435741589762384663023909904179882894078089627466260687267347743037830704094424948200314947873375559941519054092178252181366114384720542049182082677106070806198975843820618325092902347977679372189914105661554843256333393003033999319322912063206076189265278133324578537844301547186555361981914299402225529311595792357294866754717162901516257921760953858832244299998378711766453924365070931028309478710969672281963877586551022685900932201855085713816231901201373620723986642008720731550442343057577057380901787561498326614772246316579209083950383805954112328294027545566784387418316934724112782659728802010367539866671588934735440061755995003357940546997838593018709446133790783487077870218501159747885894824481485844640053263725480808605667132116828737983611414579030732291772690499942807709475120796462041529797224803106337229207195426653619220650648329396720357552958037947520697708063260093293610781708692974119546318691186554689429342380888938164582850063636904801547656452061167233987463088387865408333072455233673424937121039914986246889018691717809463431937875433559954268267670517575384753032377636904272184627619730984201513389886734146690015850322259508873499072794210469552376395724624399162425635760099577439943390201169518071456724746110711560906135911545543391815459008459386059855408932400082524240723762651790287414680519096622379954035192294224100001267075337994925218049440393037174015315992006317327254858744671046270581020746409057896023192904586542456885020034030778136402505193635530910304203834630803294051888465188615751936963078643813541790610170451756833579575558234412645266354419812111561663879904967121966732870282113024282558602243522582959779805017406233144543148425976568078666389821064311073282068260830288272395176956040154145272851061043301011653046644613897957762366296831442188651508343994078998142110007675344992828731236886422831518834117404003442750141543114837605800749284231597572309548043594707080018976212060033024705689311687440392002765503600956173859652921638932370053185946057554985465553976621521959869436333916128299589322762224868330140039624302264571952623987331637367807584360318968964418472905056472109223644721995581059598404760019652920935730580830795734013645281376390944643809341427826990682375357562134650288944613146054581063286254739356691278699749610444118275538847433129026367457605726348208703972211856619181324135919815944625184923906783962298201016588198086859118295599205860970819778936187315463621998167578764782176118166051464637099203782870948558206049781088945741241066264353569387408269517551119254106001263737123487820347180944322116179442770250872910081098970347508311997492719240742269775337082942981968002428230634998199670911486978987443562526507425987561363380334576924170322778680551567164585626463873322948103425716079225210955788552314822212236895882463889866927484976844447204760798201294687249907990292322938749506938347993376176771808749869128976160773922035836176500012859465766168278855170872142325548663856877310180407776508308992621375089933340270527737433871702349347339080200942936511755206024863517935321035609996736339165496030331867166849913407387126431380736462644236809428483794546587681257110639088915136779600123979787685648208990879524654057275746542715048745521527287571595399721736041506615136473311414104747442593542332755861858014319308875147931335344830541412465347248564311534460717016300187774741421435536213372694787350929754919841355986853967582084790023513805683373467734977571597677191846628024905780993486948252232194223134154020377194926636670969551878332475723734084647103007753397727948859908051418641665172730643926661133085952348663202161360969296259129747680923475871019839098734951669188973309330670409439591096810006770614043856825127062354411794388736300261069063686920344705020602950720294623085718866436401170594092635940692162440738016010481603548491902283110142879768423948484865091587883958688137626940326686280839207255204874032533920897719986050980497162774047180161829568206240696535263405215573152283015845084709354658117196024437513286683755422144355584410449469619785830950084001144019594589655285921372304211257547066274868154092675020180649282297522384030451157903278933957334476204991343577170712468455369588781630834942952224232864781280500590339852569176121726535890540991420805049640453180442420263488563674991882400454129973451835569050022375140787294855303247092500084035275170074211077173358605399678829538103182464258266035997156498074070710656960699897170422740840252916203454965681294966898151896682817056150637534863004183554700466388299638083611110909549075457216520817943618693467452214983088973830980001868162606287598234133354107984859532170741385482612240680252135237941980507436708484285518814229192505731071803556190269150820208514230577567873793080333872383724301254130085134699183625333814045842062466481712047669090823131491457137633252530075507141084148136077836657602706123296359307415896361642236805033446417509560308901959953712066163933557947685432213668387279137737309975117367796737573220608073042305288368953786370664481762880366041882581575084438717103174391555839076127179054837721617690606186199037873658721226370905514525673213685637883754314924635100693968915639948096234762755145325632447227826909937116624015756472378304872227571120538697726308770613140651404163373646762448549278696322817927546008598497047366124575774838773523320605054961993101735396921039278217180563591253987699815995437321183637603804359636270354797425131989509265542179982459410981904629776173964883171368898119735997369811656042179106687472690947173148920355147395662466314699025477645432201097430872445407302684161168757959623543050358482973105973035189224455198693779940220464875454150869419361217953390877899862420522125938227158484685772453971710505612519145920712057130822843795007705071855654125943803180084385366008486529826851715696049966007808777455101176882156613938416792774134583447265516495781598666540770959345608179378721469333983818216939040770079325064182129463237838607717412192606775644264114451042533080856305539443585750005752768460656311568601677337859408007214043666667137828262376233932953278232438414685785923751682304656462687534554260637550703513938254993422829489224764315095647280713787286618149865939605649159441314472924195660547911896105989408029531881190345159612014456944753602047670202324359192977528454359836508396726066411515742009040728776262653154871935648115681835514201540952775032724892603998935191832928858234435337494327109010037549772576186263628928308790595913056924335353345303780232882522042975665173952283632620613705619129275561090098619070338700026018557772535197803916943855534798620320274123972898336053319992064703727482375376115402886490929935188881603584073804389515191257896389237905449662416688117679335745523544231801812965924140840995477633823178333477516052600291085949878053191809253773099082420202378480403005368665583346659038697039166943169446727150695734037524559619795391464147672263230855040981826971065005644855597721730654098997877580296210131648638131892900709301850602414872277531735250311294170814600265637357855804744878022767952463315263075878054519597817936742578043037826789044447750587556187744624297578801708638382726440349962796502839109849934223826500403170885796854316943834287760103049417902416688466732862287178972005899684678881323195045838566170726224587560521792289633002789590639520031837237223991418957281936358053873926673527578423216802774280324389573695216398217066163566655720647911377578233036944786942938177830920094185476002876177641282956065960028153713799136078113907586093900269448463192402096950800383105649644319720279277476059471537946810355725448353623876781043106223762766878875833610249020833655788338984335542177816855756478328618920182651953940210998109442272351523860848559973035242768443989074499871295939731512651693033167918918909130743989346866932247395040842574950412231248651903084518008966541154512703045974433298203348005930533698765502733257418212844367017429676983921960559884333676018481116823861882650509173994123295720084695880515286888322864109898495135188683734888822360175519024939469829232666217369856871587059802824647260201558021371147008976777577161594805099846604468019011707973064787871299873606491168960905920166516626466985296923860200957610581329748366548248084600148909572360058511817334683312253342295714467380977033723631171666465428939635885772591741079193567080174499754533716586676816457318317427941864513654010881685000395471044540163918996632160443037177549339768522153676466336080352826411829239945954210047655034730117527579662116610515135697000026801653160052419924977128892433308719563099726485131955478205746932129487767925518425305648191248555746102415077740872482954911337755714015190898964641963396974857350727889943803361782576707666492732207992601325387507673911080417481511230777889672076024603365059402376162285302858957253156201661991549268622866086374267321424745775783614461060513329024059951420597382783971234671492168419152664203760268513564104060555716640026210326995060212272266224769788393666739396136613097656675717542120397868779583963564346919924939867236995376146897317662305306895449825626176674621449008954897740855433371881000988810187590438607020970294670917258284255744686293423489266951336112813983914495043600440480450855450688265655069435596949056700293130901935369789867766975040636859242825950983556863645199698602472299032795715437696079717141768411784049723249146665526784239513983876824590994808449951248269066424629776317885405495933257470271256947750750685438805692660397307201945173151251251861996610823518058299899745257393481354380353317040061314066344241570760815471644077344300241351759645521654279287169071489756029048253876299405448993625584715712813322289857906108370431664952389725306228877451359385835552325400418735467685741327826305362601115043254188852693363498997551906321843345109771373870554993845430793211090033827311713313312365348125554945872622168882583418225771820839220781337958028252654456706701226061626460780445777894909596705919204905736062541010636442548016814556887500412319987087580850640268421019752492770564701587842788664707309068837628735611155111262295623866818787543085927638896568890341305515524021978624132867096973644938302863584000592458273609541869820477243579718662606503999518306838372248488003295593222631710526240207234420812529697548530631997652088306312279981533915791121270431696630435844134576220533413656370409564400378269089888808150026453535149639084953061954599416740183586099255222202431227502611279533095458911070650433033951277456019558960291274770925554485631417118745641287927438205260287665963350203641046617460225124661311546289080010711393232729083443471104103048908139505890662837880022574752412006945829989357080167795287317529394644147492937489702523362688362426531240320792225921623070418146359282743113242707971967023041427504875589229911251658412142666067218172110099120699749257412939670195257611382119965473054434948702277697460662570717434933842002263093764178896972705925042486637560551829669150485673593406795166239273762147480908287833558092286155172811179764574789758542123888701840668090700260742592579100914965619990728128153181357828889017120825220293348378014131918440874874264066050093397657457619295976922398249398712196472253493776326096089610505033547954292477693381494306188306189286710847506534848425073677920227733898225625989352350769982773513577928412476296207603243628537242873360262720565041205783513276457479854848866026697597165912044192293734040810493688994724726148948324157853273220782960295920238581864361233879803924875235507697122392860444747697102878995372846011285047817144543616938411445787479663547512574584127873133064342520553475533195499747741845060775198533471921561571158277810975386424152510473064328075255206247320449668903113662215765891473841983984674489335727203549368234254349193621976027013702331914243357702218515252971287407958299552688880601178698855092175033149668418994146276172387747514655942414316812443841806811875180122338522269266157133038351262665864833556299462826960694804988555486304652853464269203184077911260664498020774806723678256680956146096245539986294431808209697657129061306840238266670703200348132688683039906897518453051160055956104204001935449608920913279804678969600226942801432267197594743171033474762203489784197652519866848908559248036781519132733944169820419541072972989395766751165352974413978435419252739917419581864582644285267853099837270574217680270703544444919357757153798765065866593448933861333327806838969912588384552501806920450492383761835302955957568405031178953161106817119273722457403843962234673341113455990410904233337309908547608332290847144370961490634425303432456751610862414075339025448626664093812574964373548807022870216798594515841725702003549716459735513014126559385992353333286633555756851483368643661580066246546139550420272983083218436468123581235811169868259085861579860715848387288008084759018978143681176020989951853889159152124967335555632483027049104608120602923310235420623879920678359906291364479752610364759873189537595646925971433808123337658613941140921519492119509625108517208232333339725534984533130071611318373034770165302149186037495093896988666873476918668917459061099690030067522929225851046378040953549111069350013729783752047058524677746470683518927727817273240817301947042463700772964339902968511340524616109208446952404615447493588012661349074260522152085291307897519276719268325753785386613339164492870818026260748075324027259560480370036504539937335319746247158604187431366938396197159377085127230292072537222498625900748862111214516819810245976452517424197736013216712039787678417266611754026335064555323959731029098926985616173776854636373162039298020192885597923010521190273204903923832974892122631944361191215908956240758654593652885966702167057793745178034364095748525778087100243338831565595776946568415780356826967837642039758868454120920855927271113237168034874203985894869177134441339733668699758429686350658226726838983766706915405748964084608748954481697632580061275048372617861181914283819523776057426306735096127009738936241649593879235125513418139117930146614828174695353650551561734009814777107972733253146769164257349037123204827085650563939828546874731197086641726464857985615027505212048195998510672656397323313758514118619322867474534475002009059142351687881076074775042605715187731932685077053330386272845186499964915615276687571494311838444281629613073957595075454023095731737585450051020280866442320753984770658042319977881214490880845892498744804053141169798090417745111716504727343325154955894625206766253337815829695173771061459086319402957560156082156797019926751966689651499622652291912523537618813233902717934455135742587218306743989062270914952159170462021976122275400911310322230211261632286960509952483699680312712853633229588242306677078303084966398953604270913950311231688363800098346102762005276332402292335136564403842247344998557327888992268584211754238678614167300258445280619520481185412924536841958006696411936228467974908567782030781417278730398635938181928993597958469533203217198573232875607912853793173664379387482860530187555620284708032078267017923903498178636015396933143550511452116917615231793828224764286063895132061884697168064623705736048125342630778887615706622573431217158163286130511191756769886568706273201129998005627778153470702109040905204034381535422466553479256941538190536180099878158230867730631390646690257231431513211031626796905375795039616670612714114450160281195397508267214990063692394527590544275725339774052271505362251717102629481046698079029965408520824995843323339180686231670583049083129928358553467326276253979591197512605084209977360677990463265347162230995044929088451028797143350727073583573664300405391294201417448166629096933319069634535673414415352844209353888917148638996883069824749927766729338902257863421761864836671290597471163870100575270838059233374140247144860431264518985190862055992656890950964095709362446078188874527749445641217141990973084591203621210435794667919719686149094120252620066598034064702942512152004316820275805734660774788137007443517828171616688659154851559998052645206127036467901776691714286447884315641174166471216866985899252083460352242855144936523466756947836059550674213284998681930564855189518408779579523473481141594687780926301378823534216079319440488725534809595959742470084376175885051300646954257621710268748881016125205236662227630356391503120275098281487916459805121624590277768518894947168780236834108076087593574929869823783461986182191060602491683043007075492634663309781615291701911170252490504474984625811189063712330865789799909850534334951498765556249498692749135699436968712471128644058571726294733719742783278676320169174902437763080206108022918221693614598490774365793995571376506587791798878961465134870782513602797707011714096313768983136936115000248838024150674556077893923769125465658867737008089488359091612585186611744618856419996495283246730596820619758113016898771542624908335982068388068077349425534024669688618750070424740261259711552057760428437302044611771649418751323598405737947091791279300317210519618078888070279276129264137780854449556372367369726316462257027167366925892766840210493690731694337986756047756939545307487200647269626004273198941740375098501570273943492994583049470365994908144741281583646636576684023027728379592523159714371377793014943347110611028426499792962469836480851582404162840176118324178272037315876545886333446155761774884577125828489132737906781190764710090245326265429261758138383847066098488581523379222448056052158703569443609722218858845470948272837119904905546036851803412872962598910519660337557913867001166027442925480277305621407174733146861590705579272401229072093454004417961239097771895134927741342404201680523878136981050187012493070763676093676378592343405230062960282452263636165172910892810982067982771637552838389760158365073404504873740025477689853992415039394020412137083297761734922183022499865273346167480165704691374697374379771959300238780874615796025456374216841796883253367764517558760338085485083058709495180268943199341700008468486924384417289111522099303370385566335819881637923974951927003810526434657169680552223642632294712924799787010184472765070712929168390992946050952691150262257155319925214353830095770766328968989641178874565364067068667420127650753148437654735136636097369309174330240529211832619876702574673870786394592921875205095679591102037005721958887257004351300269872969906560351368872678512991220723262217264585591394612070394203783307416211223442457879793092128540061082935884193454584294064166079888877930701447474420371807020439976867238529313394062716800458342386628713785688738188820010658559001649173143628210917073196419780220883598711056642220411493242194012806229501033162417179520912911169271678783262832971986302780509772880491017615914518825708040176306317000413572415637183613736272887057539545818607768712320419527292201621755719156440683362573682013222786741477893718690403552674652840588233285809771318541857179865691207777937441179465069465308398502890492716596759663289883908781139872532369577085694516815967276750779550873916790225702095108428719321700607199560103154246816147101133578436853158405305040537761163055386479651578224742452198884550343896670058358110440183598447629864070032208425773469291690983422353387984745422762440839332151796210230699996303324867385725781066947883562668196906807687987952044529262951452650552923738988395094156331756545109985002991420201470920429354620042660739017757136344687165228710280154019843296148547469662686819150969620674105715611259374579901995435992485369214997151059899849964273288875693377912021693233295711724831729444777937517914945176940376331540008672461247949449383401145504034295809037259876087794070685584612889671611631788900233736777151803514412140480837842364177667932903724527994537627182936149107920526615211121264216143798481715520758046425462782213586433143498160457082625736299203618512803430426320753287119182254300708017846434415721184557772676605296697723561908151531415052329678886849310368950937800456429076134939530548434239948342680836550044811414394405364776178370349577420960147966480761328672622887085389096347890230455655058193013505296899434012478008343011336752986931840991655383997845724393037071080318456819681228877158099158613910479271844892544720178116418777603909510846156377812067541838975654199636191397739520124491820388898146859931059979526560642258869839076427471274596296360390531850823134717478122726974837092329688783558874640766234981961531311598584267376211804667629846249002177279695651847237100111094691195605407570836951393904593752818336240046823806091534423824612905135142432275409712119517232807472805788174381448454452954752005489061621253728806662714856968211466762142747194199927226206078765000035144993823096898533255500070397311901244670209741338304920988909079768703099257412970617061265022071227200871937553601551962334187263459557053415807247455891586272343680148888595722852641375314274216748507900069364855251954389556431255152290564143631527037285319019988521034106239499925016280318869326542744144262415030044964000265476742162664107932941972247599416556960471793853878108565503816333467862122331701636093108705908296871729186397509778651229266503236056783944265506733827221285702536329649163800958724492580768313624690732582589945286967417660291748055632285783625078194992236303297035776405135999610038487522009890431454907255214490723995018277406212436713637004040916843057522645892871848808764121852923070687582308267299519781140393347430405382004642437361949954411190651113691666257086929431094673646273400218002020954938487379946534492549844826510954956146262068702366542893494053971422869851703352387598856248786604016342986038647191701010752206628075489551296896864454716418376131975587123035982859306691796629873016480881675942653911063242039192497351463852879584583196059339193836755496994849683183193981197485733562460593515251062191664323966021749516990022243446332043544214219430468438651252034074347177165253877301627286360792351323157114037107863271598904300115960816503987792020826940409496118061985353382515645621695354746319788667084414399459753732813042446837635086048120871796963684059789773742408163600172235155187493820710697415499838705975525266875834074970372623769229742448199913778683440857211897163636502129717392401045006543652793571930529496749538438557213557055150288165396825226517872336989999097109021698562522515821120679948541920059798255006067235888712986549958582251451869908682449723423475926416599708145005768095516953104161473815135596883892965517427664139623339827876105490804096221138516547067548300529642562294453216018075985038652578754752995331352397213594186991220568182230045650089317096139365749416360874958332621274031333851771188181411565818228703147182198662933405793154169993860160154162393355369181258763537752401161543747887518395550087680911536645469207406586754391879541759217184948591829993047872239834533065476859164613249949046147652690451229618918471550923816251611337647116856088107435029522313986139014852962772158946570285188367326077784209490299351490030333862336181855992339240615903021473297067658891129243886378620697425616986922920894120234229507039280873979161077735050613168403677395916954819541629662454219610781056921957284597408454073995223135843085046424424122318891749919126962917326051340507211416938950411424672104887798344087975754788350115976887409698331505753784626403831490459099245223250547187156735573465387717642309416923896844798845391038632285366750735270072490670122210633434529312239821656151739050590008321679232641536998377625801770401770985751921347556182151103777121750408615458730917868640732623536135113537006426723323791923414073388864393719120920535673817447413028506552056401090529231572625719354401586443835634019102626332485354134862395861591174553836383422924081854624885356366598781008428747700102129698100358478226402531751397378370898956045754346336172274260218837860514435774230854321407683726137388736383110489188229874905655341447589971747141766114889253797355974207907752111116700145369262073455532201559500679173157198495262871635266566842133071008011299859305784596585721669148982087804867140206834441423384707909630883775688640012845901769273013128977792231284527096585413182455186798209428393393689544260226641613800912910904682189073304777905618114091612955414687828232203953448398906735719722010463417003277330921786345517895619584331326749653414514735576086140395601460150814570176605619754966915681518118440509123613368474334628299356645388195933707594759859256643402317599264306576858612313425532061634907826347215592314067812005021065011087698094738998092191309423909693843819548439240615044635793450082414904735879477090740341925094280319780817950656066709063581060787736649620436537855921885713349624812829107676798699477389601571365113722528113008376446205827374472958946006929723525689970692669591166500616957130376586969780031503410508637915508476086239015114545220442200048352962585595844067030971994629676900553565297672169227774962583129853298156596803806578179678794489941942298468212005283775948945982557605253842873265031602587587064998460318794958153717104305201097891727294436907965506885132931570732303569889912072450947373911586417492380590098061704545450283313806326333694558347755069291966829760214171071374808114596369089105938158081235405137192589245917968424105985324018100651013092216638733642967030749120709163730641542993740908176273512205542902974090227200099620674081713501268181747409392636786092574776826160040282936007156843016461901294126496010878572049639253530939144109816343558183102797983593686738144821160408400715136040744548816552686740195739397328390151143205524112560671418151661413741277123616181230611884986943933358188567400030559445217858461641955285147675455224478594110127415364051009549964783001533228971987614331813317882881201629800795034677540312605152684747965265829641057751630762428193770967656485222000502937076409638386031271909561478547632251099892362423977075831739110659549653239002360460596834637862073840988671068742564773238488634024641576570595890765678834511096095164089401274438403840011508354620960763401522984336287900270585929357166839022727167090380347044279978774382165856911186342038112227554629062909453471078858799846112414344481105838199737308959732361018783138301007105396778207371241031974403630299863998267126727053263715629899539817640396656468323649068506877941856951974097721869131917762937201323357958419452366810606183077037631823966429976760232466120296188089806815813861271477023556647238892692225134434518364872432175959557941467617335484537534249118995217952557416676227488888540341478662119598758077459867388229986183811030908599201397961609143001982034773103296672879929497259019587828456742707598390186153449571805320596175012467349493904228398622278128306267379311524986586434259308403396120326144872789276268799673461973436853442377713462089906951134562237066382563253701808615586984160501908971834148678943834082529059372800339678690675933570723732637744017287425904183324507778205905801260867587316922642934118893469174926610185782998892410263546718204463838031565322625384246638874571398749603035447378494894346598918963100831297739548753011506271321295267049784097803531941892703324205806013625837520152118525970247654549425962301434601786232350230884369877068482999437601103492765810624849693158936103652386075522761675572006084934398472030743552636347196257586820245573401304159689633673645335312684055934713244006247066707894661078175018688553365880393867503314581745594490244056771404624298399486945637011798351855052916575079793163580248792524949323581030103631004486409577572166093716839591819906635087675029757280099136027854991554633016097208600204590369930484051744855717182136576133784896813233930646204541456214433094816288623563332654541928852036295163157795412489038113333312242619764195321073655901558676225398998979335388417060670913077205072556041291509262725810204827389880980898498892644287458492918502335571067108498764623022480990219816160208164822160804688416163972332777007656325456208357398970747374008739257787827312073963766488164908615093543474964770809249813394306708528106448206805994658475060294577678374973582111692977305315772519993745235223128519487118399208078760506500170928781516426837224107435844947104073566381158433834734271855022760584618216523557469862369199374865535086944480881029704415364080623586249761678615776423990744487902054559577818449762778416095306993759181913590522648364983515487577630831881227804284766861705109650800162797025339990948992433907369818882825903204613848377306927728906975908147443025062081934223372596430191025503788473523142742478565962589266561677168864070313731786992683426740457047476955050439898740097901027367497460221505570462214222023110842305237188953376867343558898584330272733025015725914219012524692894450508688634813380586470001998112867241582661717789268724067333968887687783328499253051099192412325815304610808937278690123746247220343191898693569787361993063989248149361329420728141620588382596167323598806295931316637638152765331755327930102234244865478778996634739215725807977452081950707811950672577102725693136788898681657388092334856156106153426203582799594890251383970830757512434491510314141558258573753455922686228817606892676057463498466695892989473120710463409350562999533209786401935127242721727531638726952103659160716436724635022900334132170377757957825311648460137228168379272481538115893342376333945381294512769624965724284224572229451873747908316616886664263798555684682080319239122217734770080005744898536789785777172975292935092257595256814169334558621328046541313598432447207419388117127159283152127063631788562465902638702557299188418022094146731705734943349544565212346198320983064347097725638642459816209788344180642295143225437097823286142763918032360501031306803364160671651705450104757456170086163344812162737749226896465511539270620331960954124514238803373294699372887985978757972840654254817062677003361327359432567114286138175660028957854205448550162938151487353058250320929273182794384125514808176881134607643452142092609205986440487736954864056038825741072099303918080943873030477169287588860977867839724859769187763234867807131262010936342906729363207676552566383019428639259532948722456103215529527521465588606415423193581943255230521413107263214309697563542301752887799659289448516965502300538756979804257263658742887660089254639700818328425388896803871474000817246939823536040862389817469182977971070395850427187717049280645754436827545697024255524441870718001026119728448617234390423098175369881179462028160060513038388584387687596191968370239846538340770333641254944703286109130109293207218775936304102754639285422766820610912030768232198928869183392566967997867777424090806405832223748449176621718392890441933241457129798416142928331377995119793233865193353867637690268907033339462220383480681671057403553893632318461381845443241230989186799130801116836318717919794331115304018382873597644926177971245372014878551323876428981763612111353730290355121202873798947352695053403627859943441268393546315982356186229756825826024658900612094360535803318690224369608230776683600165668320204483192309670777372242714079104943254180571009580477180298436241084073542300877236273534540176941071824497334298901846435480892861144210862740274752038934027599971725622111000747761657159883024865631085780881699587645244359899838164158820946679908485497546092111721719074394118094064629913789302965665276088507308058241830834790643344004256499252084684656290091501466105583010968305787077342651494880512960280277767555301064114905540245292556731914739806461576499431390407894201777367794983711650548357765552334935230152343983162080573540606422608822022871870461727483127404340051577365443904386344410771261218293182903704159336934066953321593035439882712267293595981409011481173251004701250919538120827435894612196132354926759290496236650916760998775459251086190027740522923328787602206320865360158903041796577524323226616402977557989698418876842168301262462218813661845107053468442576035007258827022919133127704518055617768080665982240698313334451945354390691954224517806246972902008290044796520538681916687017347843159224588531110082622413501936725300802189217252247257137912792302956112142172462148330485014908540330265073512388642924657941591506889512232758170429258407855541004360326918448779443862896387235310323039382489182006245407722646033083235962623144203246747017715125149183787644762085470823446912316937745445173255742707526879497627107378493664628245940692417064252236394058633879511041352048200186162510092382102464475110345682217564629032621366770417835829496703940058016990668342933380735766174647080235260271271239186606025033840671411004707632562960096713257518626476829239101798412361432443641449254758451426938511537303211265838149230218485618482283560137423138930500949759288482387195032876948969581270027897045317630357176253004718121717421229573338590559566363515991100892413560281078189842042729267182208561346436167169077638033054383639546691268454014877703433042075176174023132323510675696257568467761257981647240830821008354558582150812135888680624528363611776775813791740167497531795385250743209732241836052815536294264976856292469907810752158627721241086259835351736891435990642037194424839485915870607284923531395812344766387740603619308033531414155398178227657405119138179218758641084300268728367810190424642092270682110288034464906811925356566847571611097811206821948677882437513620712207937598323269094200784549211996875721928308723881230413128403141725709656717940821328778996200530907368648421205948339026903208516263032831175620068975096491930004204350458177963217908358071145758969242647801152894787301977444240855591757946159072673318820832710173079838660687870245828629764694145158700702373413273577423373664457101084997491328917742452407769229146276870265629667296686699094912936007770324796528929278253049815420735077013668298001153121270742367690532894536349637599403418431876544817300606426205612668496771497593339584380382177792594336386435380247920160961464194545532994024669283871771801323493860771375260914313955594722345639341994517690968079997257000896905318725362509178374887942459324657441227707181136588079911506605694391149311044273037160766231027632963184707135379002190026919739435916712699274008987579552420642883822822467149724794629141671346045501217884535622093727205802507665149277832452000510273562742497293910971039292166912734012692502157026072916909383618183986007439975343912467739287156319386968972160091464317716989018654296070753845770273549341449671683995058745871496890130753905931511380068726964098968217567000407330892049015847047452412687515150925430557857809887565481544060134386625194943317434247399806990299753671452066172920150463324543616597742978593837776682965015133055772243068017329354050666181316917033248957422718439540907240408641047533398297162352335975960059882674205810273146235856575311898414956704150594302797291238572793265958215446692434623920083563992328260763708442813014484668718850633525462727078080076549151818254311747151330740588195144224974536000348242276800724573861099414791976296944590139618385045587771025003624810548845002574797236452744168045308486191995767617747082789299566732388142623885128463700307323668265751297458970914509742158997371186220681916564122795995646208639199550717070686537114084936368225322260827772619582400329900966764726450672208350199355157973023790715234660975771657860051040948306684565789730100216777926965812927169475216010466919613822605464530731676430999849491954522200177495736762008771178028823519658028926612040240080250437898151762886435254412495627690591581200964206064370400491216178963016541747052025490137611164338180270489522959571805940172311440324241848402695395892464977849628176651470196132941579607658122524225103706186945500787300896067012922017988471999848475883312530748928052935544244327355072092126499589644352786348651839310994592195958122903514692098477294328011930817754560251600885553996457489311297507052390789825535467708537115806241642231322643683161551325209203978647154706025867971445124101080131619661899086410661325174880070351762945845009137463178180977389923696511532021786345690676108606697508361473790315978722988443928544013938018001275039922273959593539328991958128657439720286811040550673668561515219759994738866591538833175371406430158849343973051013265204685068882832160214126677686893522547885279951755490818121204532146290342492019853352619376511543545318617875473746772511126338168956288976612853398707317334744869047591493252093319491834581483853901005206845757177471758849607694265821868434251112098604849463318650331895821434927181497363305577199292839377576250327255214488426492219691063720801560932223359634575691900998105916231453309665563784021803792096290363914763955863508629843060552952970972715680968868654576037318446977692641713003614436841965625308842328366530621609930144861655116983350343091825171603054155159273032300671322328697974421149993053364282482780841034735929132859091445376607033924240251182746438681241389220673175128668469633127977601142534202942953478792778408417400291609498919918381273109271084333013745687946587712722341846559299644999555436214963474943577878607161117209804653749723449731587333138570365432958356092561034880468048750057535658204325008375854269193238841140513560566777230166621032282343793220748719947038481361925670773276250435650148969507792973234151281385122133479522764857718403232217018146338208997735405716127826945653375116990258137201384231750430110278861928465481607131063741281926610259857541521944549557447908934350589305502578671381237684779823804438908490807767349381432294225463018400801213516728472100075595037944282275226010506992220536027763210610073295087870742695882814569585767747805372631244100339670731287990039219669084610101269656166232557468605403748009310398617330787444532493360378928218520177839875240315817736010032368822506590193483204401040505397373566803465220253992109921972087730416400110574739720522405793044181921935228152020920862059091565558834690588119757310908950973167067675957714996031247582580695986156085767771697448857269277222198220705489098780589896329573287262250713528711373559287258889575802286089874752575730823007781788504185380332591897225435877968456598420941527735161980931701623657370249486453768624928192737724537205433603799065961862286407921170614032241598050556413863054580210723743649538916318452875058871739727544401677759817397220916353738762219353801957966056341054356418276671571572096445780729155598446504918961437982773880566643928688691940456583565652631924847440129676608435099370940523496568199181183040749105462338235431437999363555759426093797868634732130277985113789798985286749751932333940259606435653140226650034433567401620176230460012481172031004868830209850823274401161101007810176784246369909372378774450915482156306918711534738690585623774961108593212834835059914461517814967450113058354836047628288150923937108455006585927819247959515420809909439651126442512735243760276430226078388401788505380101617500721139735100871042404824178332269437097636023631996411251474536567588277204230302575534831942732551512580434508729675608129996150431124419496271357484072996854422685653695326980597596193927510237534844544949851326913825460426727366509971564508642709641745827050926632242115951863681538474235563066976343849894275029240392992364338997476130388542383754812450332135389549410737882554989929857283207421131824052271343899640093474481980982628514633320481906491254321115098085251985632197399050366445100556577850131914010271238695604239933770278603988664188861922363784839233778647857436554949240679779159596280912136234937058193653940072554146654152936709039245527749011915166235917204734997756714742647036832294099350119841027979380667237289451928448488657879176733534352935488145556220799846326975801142956830356173465894727209655757264205387422187116700686742656033122959149987512195944496839142742836155424844042504766860066331150326132171588498368950999790242519267795756338855882911680145549047420770747547181237357836247377403873594206466824419688899658191892527032178759072717147426618993445539728011554818164901430530746793232414681232980289516635568005484664985701705625198367248336775365610762634357979579659123915001030246620457552267148272992758159455482851004368233813450015154698463873590354349449430371519734272240892388340559215952690759086631481873304469728524644716883511363295247289513066752513631224393091339922681581522804158926386855130082708059403142288350752294963766578668504589518372569815757211814244224322163775662268859918445681577476433077866715116835194338359389150343414668412667925411763188723192822301437590485552302948699364520023086352646722571635131469945567386405547467411646482390272217611320783586230814509571633782303944771314623617289898196130792895172980794426188413001817561807313541286114945493418749349225474998500627964822538739635939735416919378769376122623946938764929142797285259894532746088721444817045660615772491657036723071205881424622911850235171630685343823749865955451532451273880045419775718978651713286013112186971384135035936213468477555961212956712396928528866243632428061956138137455232721149520242111449471958997497250325257292734102212183547358530789500390823831573175787707480226575335275634103012943924187467900040179035639824917759233385226412617133910781419154330671023587917205583643726746152958590628059942230410995025955994203286758466461478995323902819594167064230625775717685026131227321447160794739376812464919147318282061432628533788009265838882392856882491841978831310161363991029848642203509690227829568469655555213834143077782804822986177872807500436457828255676100557892664984116626903180618263644756669508248217075719564036521311513640998018503494186564632206913272387499050036520695079161305905441515295499715930252360339322032246529528975357389223368307947996557128343915198097536289468925773141475960227915441662986083725914479975792003680480553144791161905259300961759009052885549852836359582318273693775777656906099261414595242307427099247632514026940003059513914740100611208115294737215425934469985231124630450440190183785968912487592862506562692553725772027226977510223504496579599145667221534946909369456192902540290913080347533004829967230271562409175806388057604403524637705480919245817858712763104357050307187288753018254479292680860759909849307918214276116666315850046486282180368765796094692547350267663864727905233239527877065985875412775638625953292727189453833890705299372741832443032074320335622536276945556633451437194505660171905185493382270873083887794228658118015718585086648571669912809448222179595430615642891485129485219133487458333099518612964799705971997360038701703026798388960861311779860382867487137720260691048886048125414844507719096647275390709928429551301098852582697236996498121493926087128686303903602690719478332431600451779022094155944070140164608127162281706684555461432017333969933440798552142018401485693913764946783779914053730357551924876676922341973933822930746876623850784925313680329475197652714751678199367426226496117440816413200176480174101417143263431519108961681111654893506264379862028414483238716822772349435349927210510203104850467887165871458283267406894873924607176372532440804317185021601062847157113592964053948178724341338918209767202730739474263297648277513000968949264512549787236724225625795029325015270392290632117666417068649739181218330217631300650149880707448551880641275960109654276460763381910621037554190917537334944672769381295097366158457367045327728718797241650870374362409363264116246248427304775297558555163507667189034237364624400979054661505836689667178194099768859748439362650836505868797547096606818080722254560585410044608028057212274914362053904016100006955248073247812276763839404524472200537629764388530824705530234031404620569253652883868939272733161238195264449479406787397233634340631140190141487473061219934687083899229703684691540160942290342337789888271194338821428633982655320637263422880872964547238649248969483392467771972390201163666673853118122209675308636475940299897176569630478559685463074349503873695816403974580633436914160784052015607670589496266876860029490841969259709356283936479228558454535928834581803313473842443975851663465372155408287149768278248373752338447427597659164827632629195842393440571018650109928870716305477792676832080655501430572592236557624533148675743331999663739324549804570730724080850608986257768852451366081853225497305795896268383653622286806679037397824523338166900669149937397198032780230736134534820373019852447744801233082174392001220661550311196118735350261085321505648465753190073083566847731994897211433623634298033115552662763694508727861918362934725969820249114525129024695550232951253692174175000650087436135643446149813249130142676088876253810226060468473069785656738930929827584651047591645644169386948963730741007930209955946877581979204256896495301300664007611821606714957102903283525353260488102219808239825268585631850802373373765190730641663116200833697414152396911271113018910081228882134476738213826529647620596788285902759397701669869262839306079447388618002054746412169249099571243860101617606269150841287173905327786884343265739505084435724944969586107176709394380725184019179686157947928183678427721039891088035208240116288391226868474463441454859285114369334497450691570063221355419045835776451784432317128187340817851300868498046292317381229694715695072775780915184833067943860128986539387270372184199085976956263360919615160404121376682512984422164555748258680265896497969069109581937813480872744746512925670906857766045953378393957150387105945075740610273262192879054568519950930262019102556857520344338800910365389502823642598928960911609826363489025194219290214854425807416688356210826645581754815981293403151339719925928223554992533744331828924998573227111541954351559771044786130200214492094465758607194810148547125176352793746335090945382329039476995258577069272480793916155577611656464944004797280770605324297290269934143742761176386034493668891902433831571948906621048013358581006158506021344041011982994842319404687023383832847098328147345565399323910491921790691949597428589258233098036532832085084507118792498622707783715429976803705227429835133295009721280285753593885713316084226614818086635031968818051658333723905555860530723147854511056685804087602674981183035789409822876408979148271404360727939934016659397745749235770595229673440467350957253053533765268947918846567209693100364340755737674092599328391670062556499142470944839219048887485211331139322167957877791030856387180491971950255771851978580394162450092274340789008479372460642810736158296107393878570805953255502688261961525738898085755168639145017138678637937350423484611486256459699372149748759393329971150385540045456758676794682145758176964725510062258944589458647344162864956888063031571055283693358867344281674449002500071376162595408807142864639457680389196424139617329633689571704100513484613361685724872770905940865790032707994833764206854690550846587271359969092645225711590800470572011658578695119674748290535879586030835285934739845347492910934628523183237549170591896216645265380989239695484903369980447011811722347925228569643327764694402177614773584097349584539228663190342404634783718110620477374448556873713562466133623922801628940083497768205294043847077707193163256646220016545859318397798071235189944996877666777423981368939084835554555240732857066414903050563604673983810735069274129527718110358022956625227183723999050713971201827325272931388179183394707455866914208307546679138676741541018253514824569123692125615231017896038764302265068879505006500244323569688263264952312005761789732799904623844976279212276345091210205967249237124979660490058201733991296695090137425464220853149058845062435468742751731215498892493679100025149295228001243869644796081895190833283764952101028140524537393286936427848335425139453455273466300809460434161370467588221248398331447716362369556990034071808745359502323756922813202039559545916960248672492257949274685933538204566050408120461450568756436793799245416711446764417974886818733108169148547601618973570413963629962830792471582724305864093008407591959549421176710938063016167989307877714985463347176785095475277872709768376274894926074124961482072460158298305070123442170409342224494988628819950603787871659951840999567115377600701050242402580381867465560755317250013311877308459969019804074196059573987136638280746231776022641679234274202575943651758350950999215626100273963281268522020393842574379827838834106064869363070651892911872957881179842460319059940359993122039379286658148973132476566073848317403383170311802704232955962091560523432953564423366190184982438046881552883168977878324641438317901858129496644613776981996149312009679249794628511323871391184730313918618508806245432787526580286746687895427812846844361711258258603319800277984264286642038975354328443916934402656367431206338727859126216133957832960796626138764733029893411199333045934101635476349432223120463906140362100640322354812835995087650728509998966033234353273229867734336576634340022988543484063122520814017357331465838204837160133293710436944429884251237996108963078511497111707210666607069557240116124860945539338895281445280129126794049012527513171720713340801215470876578821474588640716007189964213282512028300023892896115297741265140563711003402836587422006422590594725466616720798205577373383156243891555155335289535667092566695382722554430862047388824388511602356191210448748386440955009239714574535370848451644811928087852869153831497887426787709101354289026505830827869110593490216619385681509882770160192247028376972722580932343350159540443723982090251447582385575022542269395495707478444511589131602073626204643285822972758631851386558582466092176967014115773165538029177846666271959873555503715456061422848947944797569620759782851081854852205977389734630474245853391714636454080853833991030675269479912288692962999047157390284772541347531527383129243230293487491210581290229621995630206773571233649367082528814199822996932785479507886664946602832705996095435886399219337816938684693298469743788618337499517885631076513687269136206107522881356162042438532292383509695066677143363263221905783977186636661132366358475897832553902161412808307218467630775075976621101194972749683420094333781680937420967015337940550379608434766045439482312660598555410558591732851638337698539092965539177976645550766882884945806965763608723269635065787765497062379913181642849558004493740913615157086247107307989546762791443518872116837410020394418310698101188467529054513629120343149224858170009021159370096905744097593548511723612247185559472424537829528378832587013124025433367637002900166086848277680163040083429915996002593990159477376242878580604545727644240291527563135016387075080248883327985715003220806870207552334082851224337690262721539645657052953810636384289824217889086901486807037587395426912062086875761762861326524149912060840260828230052540905298039826563075026391079841990298041748394721616619534210735819220868419248463206382370258787987272198076299668822293769049376336889396718601868796104549114989404190790745841498153457556375197886962756189925465081374894945747771440157940947896033735311815557063156150128637149752350965094538390451890337597482713314308421843908566324183011770398960721676550624049957751276758196811461298677607396452419405841588988569405140652154974964766672758346411046170043927252578725038420346546192879932245470560258461603363621389515492284689034469002152572806931778243201982057135700204853024041467341582349246537795832267274887246212840109338214763671883539222009060417650375277005356787168813034200646995915448436385488047059953201663593026885839419974148863800881276094054047177122775008810750526349839606826448509275062521326242914070719264128387335317498047165671234189478853080335746637365882973725490023276894990495927291564871424268674219029594591979843799947946323757425311361027998354626930029800089936952838851735928185526708355048684089143811955252796337983533983187287386069029731620635798491215126455064960334768361009560535937995269088983402304935295801045515725052212074535496369104642413127476084963432727218534712944567328581980509991607175157496575236179680089405223908186331770282414077230355745774655619616393902741396895036411817225547184049934913034113692689240868585548540044508150257347441519352815538010514508130641734077585727078510178592282240917802077335216514768097064036375381810408561875628922202449759864158859092657706934966440762612407592457126493767586817746256259542169447377549526196810643368195195463051975743583411441401390928754152007982657334052226469576257231745304691048765016875941276715362874545782296208714974549114381173688419030297011129787453665120158003219563840900300737926838620100728630423873296393323270409394729888518256301391061726081920710845128984960121265972539324934579216345690323911534503509369844324396527245703026455843211305724266395411329541112520459776173947503581883528571109769418326950736548255959804138840208158756816352211578295773155656079565169488120313929784610363827748574353941371540338367043715349499982690046196850448753879665226703774357695975013918639126952698085250527065272006382203858686629353931607982762674767926087623474496256537928600378365938726152720854759089128797822223714907802957586041895456786079625301013177974028532308324820219237897922923174521612313787571623497073473750067987849016019909437510698030849157480778382888839956999485033762006175828207692258831028656038696220165576494218460010685402948414883801938125962517942431223781355977431793261134001932269979679030138578959332454776742346979699276424085991159609667099500444999830230232817552370503332237977061250613319763911955496906861903875449155923392487972731305208478763610656540954476891974670688662758263144497339489960653519435122939147842138038875528082712356540449690602121936593181272772629402418257530378290740674946792855235520308396215619971714844929138100017889301219287100386636546120293556370424811781826022338400235140720627071601816932356191905695770893969024303228268597653994798060516070143775335886849295557389506305953074795427942809837025067483212716268251998321231087689830855971891480688554771112897233559051851776876362314771431286900795860047704638869749828399486391326827196476367218487847849358084766353921079264747487335834489845557206372381799682386477071677484988238523936249131783880709734331602816376915372428662961132162134701738000703134041271687602558396182222295084769545614411141273782762949104253214796707121402476751076298088850547557347632228092389060999055947650722341070360621022738796251779675029550372314272567503803966272409194988520668056882014043868635719776062252485220834883095841328013079231527386778410252166127641453245643118030247897696078028249145425828212193807793177681673211781393643007609739232478433350686044679410541751236510076287169524458490969148352283055342490096165397772358834280901203366338880713078284019877590856652888264502626253207990850853038857822649240350333103661209266528443103616142923363941053362324575976100686232374616612021314152357623616512399868646397422098190121042923804092564549945521331827984503356003146452336344054013371922984695449026218430485514919469461161038260483501423777405709300178934095537685948320451161231753470575395822869324701779954663844263412718139838855471841119167827720283527415831332096450653511840235533968702372491691310980337110434795704346095911517655938835295209355867399828756164510840969641715824659639870365780769342862961832879805175961320852931151008086258986597691109939998235582550523246877173189692785199325144603206455852060903898138024476798932030810199825621903119695499795752400264292354698631031514178553635741106568605316642170220303458066699361521134344424479433734048507668985500064884578282655092509374485597702050539777017239085314809835263165310588916410384019600791908051821503310608680149123561147215979346519739569836744253489775215712414275530693251735798517204036295352220287087023934731526912817690999858108774067282326601314118737085169505501823554281983173457204112519993761625832811277865974800764069243342066578154303624495949061868314267415097316964440281603764802783958289671253663161814927142060836300515509371536804950212853359270210433949864907576201153976573521032516183621592935960294635392845217114321350113593372469102614906252717271992393165959073252524359031549650121825289190142109151770655663776969331605325757357549435748045251380256266521659845729250815514857355359731251384701606891014949087965805837911712118435882465699019855248067395630914760158542740771390052460852918424933682653565590579991507004965854766722419014839120894931836736674472652943941643784810438973740714165821274306757035787994349631650118185829468056808507525584694108870392521131056820725753586068298374317049793451887750344606319008017896907296087056028621804707528034543710439760842352475946857948074022503318411314555555750404870047082861655290330896787199971595785699134069667698333314105490161753770504328108266171870707309602621388349067747667212691440865500857209022412496115893699857595403490136903047020041592958181135457617475418790452222342838897103695644003575290088553890835454293971280992014721562271578203108576723899112324524267354771787044875238115235502243595817469582379815346652158487138780277624511538038207343763808861758260340103284152856890129641742663070474298967846043258620015653458860011707084640620691589600726258602959683608446733931361971621386865068792931523193173336698643602773765287820204589073894152139613935953076341381737332686330199526227966237993049822402697405251370617163734976617567653764677906725107120817731364822136184286976286483726466472927428768042551129666222219512671927896719451316006828835509339807264414932232617651964054509995835443852385745565781595352980658796698673603695289124235259890631449446233943375205055851644481246310219400692539097992502136664275106453663409332601680570238340906328635120209138722589801920041282129566387831536844151545858584745372796613663883842050799085631604129855610142347385869418434407575690968899990708495974804643610460462062659740471478185262149222905698112333541788143963404049533374483085055847080939489356067403708674024508165444155982749560643896132595261225960977168405372842497552102521124017934746492236022266596542197818738998445994828608222181054879484608052472573837402732468903658337741445877022343799828449230835095368166269246457304795093313593364897665798065966090554106193558219835926912002181566792976577645582301052134072104093627997652137803709600971774073531065391508378356779962503650232549563578689039008294360919239947679849752415892989304611721851965489824776494383086564205973180403427929569134345221429254931308805754650556574102071145491150805893392492829524786770078749223785266144567995062351542768966941450165071523645010005595885474118569443360323151641583713220156365723092901249356216599595943292059097989264554469236730058312443481072547434869370650070654814213391686045457294257982491938734825176129320233172432375998985369464179424176203619594451876594560200510037355278448952227193315653320445389288937787417170158509104374466660871445358551194062238345685522120125119837652148728079960562403492286360323093623748904537777239432320327680819005201115499853859539198851375312124082462132129391077497873141048876568796857391988850017597969229295235542239914030010244217793718828482437492258281948879602573905219701214894452099515941184909541396795728871155564548016157499581636926177960845065037287035270389759055177410242710975980960497532586664966536513157334761814127286322235054094239966743235023039684425576434745880232642480636488540830356391016656102053886596126295629593091908150933648096495129857875565321642116534091004839668811339049877371245864460036117608793093562183132900863623930567552916012296961394443296951473903812608282532311084326778176455349319244313139855334262165311450580744666644995853298052252036215789914683818549781313751304225107274081154050676310316547510800829070128075643461654574856273567919955033966957136635408764775833113710009956002564004320151613493500057778811048645963723285157217490502195348077523638730129136693718385033416782078038604902328118426921872476259111484613846245777409057646727541683019379301003933924067314763891737140490826457179703785003469152822823595245913439227224897469212085362099283875632887563871045371992374615853125298847058567943171584116890154471765754845074106555382290389369534514974127154232423159044236789974256424842848664871597401584191691524635485864424358633135100634808686413109277777017671034064715056824313024404450861291161675951240871199045843292592523739813580990860445311222293279399032844599795492122553844755704444756651759605929078349248786993836658496651431838722522728580937058531541799013571407575453416039394795140009280567160404591916385438192358254910944927520621944716455086340632747374254529029637337707013902199638381176998482282836802334785177243912563401923528199173128368423996235077869612406533909823213698649952436486814364197677210883238139029303074227823882428513420354148852157418752125969738530671313414471304466665228873055783423700401120788137621047184326364219159058138539038727206322193479193419606806807124749692509392467246426306715854926417178915495619255715471050131368667818072824406148908811621627233472268979732986200786661161373557853560477220273303452995486923127607312437865213727898149117537204464750242558721095692592792283751637395587662367968865589013435538088549334461076637426194597100357817662619618665445952264282871963283336142354460248719528620684523667433271075749846584122071037189124569409569480060381984103693981936544924214516782631547124310459125376863845347613122177373898155252938544993435962902907834679941957319088097172424477848926665109582910835413827047121508690546369099044820656599061053378396413448883321511488491746020687826008211223550934332087509775123077793070022208483300107515154922148575873664242915466329525644161773506649374304261439923089513474811907649147802895963691753290665248670311236417773390937871558236127462272001254299722138634949563353695452360450476676424499049552115648722624339978245409191214137157192342740721928793097106653283207893795394926831337914847265504469262465585074753900507029546594993912945995483405708195080842090280966341810615149427755487468427681812531823637395771178361361157501114078329064348117876551170973697979807049357701119356293191587145398990155946654035158988538330888247053591916929522159261427771104283293456003503165552301981513069065811253928454986227850824026310710727874564513784443098621275383179566275105241381276703421716183935957825282720440107870466078077446726580179616989781807423693635866169192612261527762178545580940433317160410396701800079959429115232533543890715617949615580091451594397982706958061923708415826740346100649698603951525435299318477400884167769449822205682972129688573575190745712048292134156627704933584206684337267361180856832292921285367681333112157152115347319343392950614416247823030248084563259398483601544506956512203198041818443302514850238732271020900363063485654281776621789234455618046271702327442532533517480635410388067367002363932945119199407544260870700294043574685387602273883508685276172715355900856018149667297009471436305200678409312264174716212226995323227860598915059707792185250041941226428817382430793409358068270138594378803966510588143682013832172337877215086550179508952027641473294922117204356240564540774671213835644871730120656922991211862033010278705734135493208682073020269807552242712132012604420385030677803342377338000595671496432616090375151583012090828899090756935521746719415448534809129289322710798663152232062708708773870333400188126689576540034377282039064774552060677355242878379310786689521800496225731952727875954273798457142391526891524211396182309089932078778179705888791097692269340081408956120544118102905108254947465364245227560384474513978518177028266423383020559138560146815374038258199873080759014229746226919793918212708969418405640750964890753913842896861072531518460855578180198355135736304180654658658719635369991608050330327577676464365513734484977440280493526362958602333715750293737506178929419488450957506660111876936254488072659264081536725617757059346171453973017087299925227962000178725891325237904390670849647041560272752350807578967106099771818392037745958316426288463086475166359874313613970304406528797970356397761484374411669172003608342192225096810774344659200160412376209698985760404497118487502534521334812224232898419587541064581912922305999090219738295617692215668929094357302396929816469279240027960993776490394173884509950403590550658166037745225073221623798371744751879619874731763698107347919859695244253079642081937479687560365353915506208522185848976336761282358732720121602792270198051766605619607017063674107437943753739943450360536676801225422091854246626679550208175536807656107750356692120076874448769759145162520593786097840613758846809415481685676664409491538054558540274650617669658648070050460062312866468735025449300716270120310234828948746563058094904113038922097690785579070226295938041713620306466983111470099154845592166895183770690449546835004410929533392671730111851301605854479164575121198255085428375844853662317712155787871821288928934913220258857091063739743767491563952280187733096851818254296887827752239215526725360275483942527783138947610308453394189080101160984339638123970285013977190540472739604102669439254246906126615106601599441688781836007431686217767714601196358372182777813301112245410066879599017641660091214724452837996001325645130721347238952918272356293779099486670672960378345325939554992006808013773135168462109657480521628455720210283481043150588809319469442067355801451532399496287544323220056412005110619481713088584488955053400667915703803638146623797578694519857382074835807761767433518040837255701292620858905817263845988816001830968436471407863794552047682895914978639630502319490795332784864112028963452530412863638826385955914416569580107540878774546244233358310409276418433574053620632602680783681699943907733931639940113103731453061405252846512365898080950275839933143144748665388226740292325813019610971429247505273184280247341427310368229144861021942887816872202099855584650322582696530740554006856615456915654820644415501311836511342838902657240210025525207912664422333721418040237994054570303936062765717485992537137189948785578969517578129942687914125467625986746996427802609787064634679383492439023872343433762987477951310108523539913638723638252486351465163299755760189280242321760505573066076596783027618500787341755053431495040495036799659803344421986642526227592572379637156095327486078308109279278993258745415132570144807713764651198278207495368559656720531221111311604044180600978226190122524351935135325383288163880685348185604621342290166165257855465991013001001089059098617704167121873857441404152669347280628207833918539057604320499275683614120732979618003593961616274844194232741839954532349111534066057937181355365655676906234961185484963565592215378963975843855082283173350474342322930741025596615352020308042123335613376089802996133783521780499437992261567237664044341135112183942550854163661996961921259059104919218181215523992191462680689457381672449458604512827954473483042019662685289822740758889156493873225089605244068248592611747304130191794665470106336090593561206691651356469965449357061834400700476163547578884197526366303011888384229692297023347871734325606735622491988103699958822376377901063487797753712155653981527350733989982530125568949514764968709066218722919212840144621887616989904049211794103855915581332454421687862205790846046781737414599259176376995464246145020089479374000322835706272121786747656985844686498602976806530431658583492722999204004060383969421432231851027664596038139631616729588830922303392965142225596337345378887264205619910202304429879458173285331385135361808314508179062365630590051611587957432286688682018534012304538203893344913087875120276890426926116176429257361416756119784663350777203232868388228557522383739426802913869002144210706604831699033418731234010051424051279214662974033544065578444861451795272724908901027522132017541894992324991642891734280098354212070672970575984249841917531360723698290713546608331929233712125010504719911266209323594321959036792048280359752019749467257754861485567584879280448901204777257969824052492469477688878606353714415163507361274404734412348179648064322751912166465100837512361017917114715202427698547546959631836028296940170025294955973055016863755161792516692137127070981700641759149971130989536761386875109467888139238565806633591039550930179788324367277894546708001656879399591475174184070189021521186228417823831984283593339778310376212543620970973569482030345459175655614584499015518551641773978552815488038351822220409608209271782451165774230987827810508060012157104437020584547742746573915871785003036678527338746551938908124781147278551467645075080249330310503210822450126170792024462772161349719158299045672757436039535684951677917850644446406182869432081001082340604964960312979887781659462019645266483819135019245448501782204106276219674835640705704232799993364714914328918824890695717262889692695436390175083259024135416532233400584500441329736398090125891258508245940838357884934310164696566748425221967413568706708378267518180221284463172782152800948030847388999131962518102281242435093457032229388156476543248242872719676174622381350354683150450235926904409582110883793998746573195493204741121295610466224853493862072301797200646349004393410493850042698357787823276376791305947761354311728813405653013564121517596331408519404167256985564639352155010690957232578606860292294833199559586468139978580831153494870533421125242340836239306326468995975665452766903225042549293912761888309371426200457433602905790184835717932871488323980871046910414970275450740553169981434514513138571622578768888957053759130367752067386799343698873140047699651725645838113391946802589970804781612473958976178671835518260232732139560766905499295137973754712908441845180297398524699244714077124501735527907431699768884597697597165797699280690289339462215163863012688880312020321773475756451902324391935157800092848354315363471420451356895163320420536209751303798914973914169260804074673727982104097736110288363325636932356199230568838482343522533880874378294762013083441401604623303369880334921768541052338128243662523198014614516675255199896663166842420159285518818163884551856826873220488229126586970160274746764361913912144182380894357480810904704698051500929501007228703706466640790340665254248499266945236093784416010152157415223785022807148751538284595649137851142626116972835892835214817873984343100329840803400409170039318825361583703640749268121364780776107411060756404108715430113820664885431917138274092788480374261388002160115704987593167422662660852422916754118432756808362563835458091472124714261422139453449322695407439008413268618407546681114644034212824922059706419279907218134556589495896760398901910237752478774298861312454284473255697845723247362744721911226267822792505484533731248549260722018568651504387904048873086778225856455169248579802750583859129224172206849432402028079696936090605406301995058077686871996415055453239338460605960300051039361717731015670424238820341564427401811713070381147990938070686106448889366776093873879409987631531770363270771441092204907875938382074263030935528194075233006025775307156008509860993304743217436479805856429535670648859384618246329180789956601092348413544105122066499172176222451956223409612588429930661830328710883453062112642459424872559057807084489160805963720832987385388625982852099262997929116449020207534312755032498045562377088800870476555183021064706936052093239137230940453635296923779335962187345578666877348999966448297554081959012123340500359173658097255520266656338235405364245691783435708203679797542996265955738619489219710700817806879686837655618079980122821941587954114687487793023782822141348548415182389594156452000572480839078612900148677729858484400994069490493252196777336832190498452192490159156106318350500472790973021239561174438572236789088934807454085115676178830810934934189418985269239640012114151857829830950163715874724045338193391039101041175909628796122602254608196588149798579996804824634436574818465720758218488194136011414773559212605016883533595562687531057597302666808178408208414164384230939013125515570602706969890534770909051946518996450183331516143820607444838908664617133529110092478726806947402752097763811474188462381684448550399581887882007164558549402945416162312619299236303244650484018858285036668535311933909650124438399022315609136820243608178153243741734402624180843667453091996122044260338621947266721774379082054168024394183346756925842839857748502847839614307882840932203049500989343425087383510118014034756580409922626993539503934995286462465091168654883486271284198315636681873720779504461460898299500702887407799009964483060812967387996005706268460832979344777274652115298028844291620176803496788479719929150657285511462579941192274953751674411815635396603499136343716646163308927170980780566866243614911376941649052173735791469769066768081228282177871032611262041310612028134037871195183246492829543108736265577242836553124348908282890107281921922700381905940536435658159345774973613974976413732244408631486810800316561863609462343021373093413759817537210660268569082916009845580643407673616916866848402569623839425227997114097852275963201719793152746055476273401600015834387952442754291327680629241907103554594342411156586031240137377961317060919221621254786891587020240799636837408705746040795946915489728504466487193823199384202288388442044101113350522108690983233312939876517797442007217509368921078372583356963815319391906577150590723476801041783478836000773699151041738458496330814996506658943694545649430636053026041807432848874232561902633909224719719564162139164011957558555659545422044262550475882968344880928525709832848764272531554423894978985633834550288607583047928765433365214286427241078868868713182306841180987654279372829142471337691162418999028006224363876520840702426954169219521126100190478381983846510120072492026780723773258952010015007650559756320430801807552080078205193607037144812916941294185505713356305810361255560341828144301672060315299192039265688414356415103904434557962102217096145178898417268689718912275471660025021682733323291883315419991528273385870112368762666706111819250966389145151404094703526617400529081526511825178923979175242060293789320389708956517463804322007572509118893802412905989042408707127385914256164020985667389810465195763339682407464205292679611589594272390191365497958192387357285647768807107214582131769444231639521204543832244620837394330511630705353765470694434081488415436128829473588162086078760116760584805960728511770971556644388076820587853188892583279051483649342067757113993410449887566288930688810978527448641277453062950256866097268345788788748164705356561486543960803354842322515803051823271202490675825014200226401042248349018803498880328143648836255138600864961635810820498084290088685955988903123216814107280178041243188808141640687552038017597825308144373971802215637706337738369756502681962019797836902795568146969096133244368199632814933183567033132789946390944168120693543319171917476256031940375695449192368223325863973333026027863337609840049949148401760363838674947745308586109787400110147485226177043662937343780057666999618996446623088111250363897359982108477942886370871028534204744881984901662535058113433170934103681248216481835270553387020832768480943566731759765660595514608192237231116762429993597694697078467854363393485703724149205354378210115726550753857664789407304284701220903192806366761001359097254390879124063678202366589836653387623857004084513151359416938514774191334826938559322771229238597519335404466324015964723028891415004446996241467051051840619566423490128267372001279721927334160899708855235584999796083696609448880595653376739218213318274206351194776786892591741202511499612976827320546446476850737342198596917288378750358104769870573826744964727447469655865419523825208795249959826210923278052734253885413413841494961684370207335055535575183955341227787764998255932907444913607759884019296739759575298268390916784563131968820374569070537221503806370155538493076849995235194159587096068854175198854050210412202172110665919985951465822427225903909065005731261802808994585891759932563979794633256318334916871204973671970194015904988082115919875543349165092533631294685963927320145701647674558722210833735404526139893808215314371574358668505922871023337556884998739995019322607333732149275462654003324451246881578518394641388429558839563333524091328516881689323431628797737284922508088708668360874996940955217832628184480270692623144293822728787276739334654079871295380718716384836598535609907454570213930372946360429281682598447544087980653384448847368378533029428346803355277937815045507326771268614393679022009344333649433103031200469807009463073475879192604357638236552231140787707757448793698305769608489690546089293012908010406419730462668385220537886825435576007803595879603915980101033296541393187516751351329396169851262815140313513780503538969549058293054532545547556901956482175027967884939679966676484320207647548117908862383456583337352309814250274985373337905273554109314237118301000910772010329562539850472030360871830108557266592996903902807896100494487596935890196916528184332142015498310001316301897471683470764251800164798596488431831993252178064605275741672641306232529555579390917611503269462970974421835209310815463634909998241438516853774035244285956094743298953432084000760299183691874628698927752161789174968123627036497608190319028751407485162170529587178686408658330567618239790707513531953620625793286547799646193098309669017610780649683869194649504780362992318049947124691910290863205119780389114941005126806060283595643576077506051438036171144649733268849606173188790959214431165576875134842915218255199004750988855842831923786310530551778663431349849906382607880871869802946157462903816778989072533610151312418433121026700415913320056865501303647066262332473629417467921329188623893373870588028730069240914204419724071334384551012480446022574819468813918562761410565982567703611658397497294658494825114010438654847624059940186695262679416054733195461903819181912209400976743318722095158226422682290110736167559916760326583037605179350586300872274362670000851503699781407245257650593313797347940776535642098050245201628500692997334376828679196092202172795904743331297316312697907999095273308365973359639353522139872504140591327103200878616935283843883343529623109843452773214174312134568663203511974839232368136622969092156249322984596529507092454374832428832575316048742480216889419988059779871351665624436780178065857433330160844225658483914275563530784081425407143811366324426005833508085925960514681350104446379085289788016460405044721277774118622241519805668340588868767936703331407900100381924235142320670155871542179404792586048129533252252563790616491488947367682366041957479770600209691023989991375753380335170760672666703592339872323317972307678684976990076687049989711967689586981998047578570731324419682354655391759999484688857028036815500725716456566162790360084908224567354909146126182901146491251135187721369218791121783916320887765713213249541815832638895028245533429730297391088550996324182268452410135930805816235671552306646429087007714977334981763106771544539624194845864411087548869900669885448404052505305212351435638466320689998253822339061553753718038664381827956206293254704643564702520194195141375312142405035589603295547066945899388019420274783288572916242573234470318464868767897475303573674979570352195977494340213031323986733924638806560429893647152914441497256066008253676817755293220996341267882123840976439726144221796179582264254667083501716352082164781277491345780452165847369157053510963888225062987136114394453838127972981820321161498839538954782699775860754018673769486554870966248606474134791686831756721088550086561549440301624480379178244230451080490033406644090001613357453224384763798407485639642980653170480762363773124323698601513944646451947354684663542178441405650454697466347150142974472368928857734922041047033081089683803723986447049297904748631204704446963382811889008951819799653076631603765546707503675194014954612331180323591713616587837170008756800768036641901593522810270088032283557587798454784820498315709642819227493707422926876382810273884679875540980229939522920780574192362446658947086119637577501699452882358803568473381059648433126805414501976085296408529561317840435610784353421402716307545374308230360616195825819906882042924286126950916540119455249241886904794004982351455888472719265004037888962807723420694527193670838423698191149558691871760152875830944733586083385409454835844941295349638413031138020429355952785999268985951955368900780933678547008129026044624915429235334235808305835283964047009039264310345489829410142908664273792083758488091018278229856940068527532430875433772215485363440159070844904593405831368164989787786649441531858252472083193466532883294531555843939524092999865930525470816513806219252749955381497392927472775545284919678361400320579984729573316810082954711180919284105067623848840143408014959824175307025583533184475179439851140634641245854663080569701978912614496047205212840689514252310283756055999115977607336343731699816670434032997301575893480817213366839912425250529455989480228733767434514555187062010779114870694551879322081843445296544702083543985523967184645221632782533759165888070571761465211720651165087375123701327942327513759132909124368853243022564508409329486997021818222777847143211808568622622273445811113724492608358743780451499685952789587350561222814020881395843173197437550052506482222063994374370957817268843903370085602272329175297795529397540334300719611844028022589075441433981630743759553123264556593274686728882846864262417833764019997154144825154981998599928119025172715219476282516494858627433107740597721611168803518261805963589002457544991110137905289777134451668115279456565433931337715394782876933677178113668489458736468738416453697644575711511802305611947879851691686319221357643274724384101100187615295050943679931764061874858789865957535253119031264101621014244648734782926229182515285866262150936424925925551347870312376294301951368687919638385059770981715674141028678637618091293650335724468941467844678524659363689776079848945914282277862132925730373569727150682332860133894745157584125535881729813087911560406336582116626037565324414382424219436068396193984498945177645456820996417285611064303393500783219706273236274095147291889334907214456745287198312401536524036322948285283096013670293014465465461457046146992037137067147684727418207045455219687477990719627007350538038432697159835027373291306668195076614975034515148445432874867714059596142867230933099272113460781527840851505466604858029035130953932617795361102875886427552155798211908482142103890792031855245946625823410511238677578534666341137257404479679771831672029615362187985929305854375065738297870219016105525220090599728699556356248103131241285818100719290427001740256895868958734714162653647746494849957076350100560559409680934189791515467248938752635512741787056288782155769388456126495250212899350498765719883455852191417968525000627781347858223437911750498092311176893309153314726556837133219079020148205701562441664639972454042619930942371857016083682094132995974562481375212321306106020583709601877571851231062270639923262602903540131776423720991141052814903328923767526554239492256461075782744848576603539265456409804188541626698797497131198731175089392839948978471607919947718782728438193791522073210126908269951394021946025013671047643549178318733152758157897770511763062630925778798943625155393580397905445989675224575878153722092882064141257790969069812164420752148625067887612062222325104055645137786500441950737069176225000997803218719175649473473113167345375651794836403034774798800821191357316309092341030039910234871906513199332980150359738534444985684043633673990041783450455632234645870056543342245935135207197470294556835452930585131665588963660285919770766191750754770479790200526233685060061937103626154362228600090333572163352430691704610197990898706840423340553047102833389798256033338938193409423729181129996944029453140327746455492225922754406229135989503825531925686101843098007062470483748715387307286400645730930961516013328948685241676849817386082856664412827059338507678497263276711227413302258441978746139227880768291411755185364105101603367539295142605799672986889589519966068122769216584155267110064326574879015005628214897792068863825962509154611238971586286009803726276935780880968869228658934564859359324506990623876233811763517526588562976483863133785933884165268354626674141044555365694558636174175389510020369764301886229691225569535355503881545413419707271905980505242297230303999370614232040187264572386850534449491313178554346323638662248971433142605770075543953347727492420521216172942471552901943846637483798476021417752998545234256230091336412215440908535307581069568282858191959536930464807491285357349137407851560586503075933312326591110520358459056832526594945257891185976665922756126556494553097465123195885957000762250597723862911729164092595029140504236265612225751838260618614099951862875690093411801852814342980443645918900980646653335896702236076655872089293278747538236748027241756637950087433874395545335863318305870805818716758631249023372031195377609772555072669318003227147911562470938944909188081782712159521753813106981076739403540624154651424586059476624784114780232445942794917002206474682203561281235363450385911519316676077238407512779893185684475630392780341227863787533981234177314845354250634109643161973338003046790639455707919484596322021533488721729379814591283492075614303638619065209875484307956217037841748782344376048196992539220822896892012421061147458614306923534881310258158267747252880954381801272675390836642415633502001304310283309318623737740895776658207541262534663685584245453687569764092640342071181298904645585695797685920419018444598119546663695319729827942159458152601496870614082448880171128663146840757640134728099046655101804406945685853431234562396722761335241967642543220551135292111521992861093947357925270045901711921193803054230011650989697134550894038080110808266230079650017378168973738370435387349858384782864577697353123649853454437983279169072062144747528626416688953064642289404239399537398256532325324743135806239999218553105045858774686151168001431579931842575352985324709776648121912180111507260327564930883456557556840643860678984765026521056344230982241279057889612286621521892057289172780801778006790286174647062326840887633197042425713523233967520779768780066065638745073661121189187352603290161119452037524590420812408983334345265430947120721028580606260068303327998348093648839301234248213770787203797592358004461288094145917687658279392743707630144919137681155950342838682063393901034722563777451621825772385279308896890454189843373945413151105050675619858810274273709522802627728317503868384742754249552392898249500438469493217901099530556042452625164328605921828372826700369288140647118358626307420034715693488677858745526163087335580484655233942614023834697520577988917288077371501236306843633935794701152117301175802316257804371668715255806024745097714349518923646954142708742215427344142897171264983504088881389029661999158674994022859403149874653633821434689669655910753173084099245217146915888386086486496347101176149557050975549282439842276789791344013187100240395523573830498083590730490247330005265031796244841320123294671224176463706006599178240820873820403808155694435823738014512237383797431661478903512995227908058327666125134255947770386134717012069041110728100645680323364083438364688752431368117615755694082505392393394805089388947616780056113552188454560342760830146971765041661098509419876731525548292973173455551324202937542036829690768314546439450009393396970208266814535839825484527467916717022917868527404560194451647067176954056596229551339266485823777085347580403720940462556080586271697027450173357352659983501393206173481171953197393236281252444262839596635137730256435728135461476171425174402478744101900489222403229315222087006896372254515033498012052069660778325067286401417524380664431410355275551071597698017666035435997692985511324819975970528997824364869156059902685692119671383267380537419211349395316388879131512015135929166551589742487189107466256893610870110215874286833914620241772057908575728674214811885329311448165551413966658240320402690379113156614490477685396803764608715493258758034665457335456815123905708401263038674517264694821933586675948907740573504035214333237317096706865237650715545036310012388898835272990223088302131249198033131541648863990914650015628906211413547634446565722078958694259300550730037925961268377198881844830271078764172492717833342095012550270674389317798151764724093075274700347635733804961321710765846497964597811191746838251121913497122682930787678702813650503532349586429761213578866805642705892199728292877120405187001384722571520347646524407081067256333116901485749452085831174452316502894937370376749145679008939327036294228177694651560651484634507334665385507846862255502203137345252651495764022781670555515408940354994315427785477957622204100240536079029312025251445804693088948334255602009096477538646584304162135983199459719420628190259396199483913737270959843177615215034957870965653232195993407458362403377894355210323723800055200751854699382476612347977510716362121628314429595737540421170034897841586665762237459211601134039323904456572738519480703805710666318863207669844846778490584113952997879413959896374718216921357054663131393835738477342477070905541033636257988530957850392998127000540256325473137154394563517757411818291698971478390293094490618075967582803549943998935547087858016428028574627978066243572927676685676669787707045374772059404312792157337859402422889338647674243108443486049438121254361807423137745666779211714512769116799981458992736827294908089960987696633185758468779401624582261892052739970635767027962705276037387301668392341821068232463259707964095998428184364099517543976141647195246947087788486176454778876159362667041050117806971701001531233963285418038027165234596153062710936477702077028912120520258132861746061953189426928591047682389395616516285308259594590917078056111404266785168001483538367836486804836195493181191119110695091852729979448619387497239101149655824319534739911637788164745196607565747099466735294763336983298483536347960567713351238708732889671652793873274953378153027518651157503427574258738633900119066889300766938033935329347659652635841915894899585290647608312052124031234244662132836995822350024864829169560104926616141915999628945831868138039824162142318916140464151484585423765058055889833168131693381681162084688922452683431112834230826189277442864644723507082813532637078502540141489691932447788724390951780464159232531913073108706072021088160649788347725442846841124560376347636132212305995132645275608648651885470981950443413863717458276940341998945300970817524312607458702787683094145456131280111303464744759694219731834484739610393115068152935172928230208933105365157451321752811387024031584208669325456291791412961281136760471404903893383033001593334799859884825006563468303744645645706991084800352095409039884791565843096568676570472685931460703761346151114092874240539211321620417631841535752687614228412606307359589536155388393041473493460473620605407379867447647487894480114473685653527504358443456800410283513367882528048784558872051721056446666632822987576243441260271865186251886546541094094192694693846035007129628983192172368804652523252546183946278886681220510945020870705395614127753966203076189986071371826565029203677253867462667504490616266119646831961584742468824796632770370611911268481202496737964547866174759209524385988502234556953019052287319698646535339663369141390047757927488495043966962746338492444993034602278990320904012067811757294287437255870282707722786330137733838765867824291714606807286161112671210319477407529792961501398490382427714938007238592815530462437896273487063225522870783677509564124697559036904404308043365957699659143582703091541950222061784744495749417388001805264208510911540401823988685699966330695210232443276077607163656858482751133300931547415490151766963216654963863429552739267204681643953990234002723005563098024908427109519837869790827957577218333452528322452764179196282417748478329924201418202329949970755925265458128012841259238957989141589145291971009312380592940448306404783540751019674285933005930242798525326185510275268746755708944209426620252199105593103983407757554238834652794325845045890571134542903537508316961517820779555866452770031562060736682306819296438204150630668301503490235189829030417298536253110841592567708326069780657954860413192615121991656960387650491218122038315592718514526268134850996711766488146168016459432964865752515433765969898117688772028667057291745070011120708017893103361450691267526280673061689981900998021254210616286737811886315494945233886988680435708594321157684836828458589650454955510602456807006186924938771173835574027049130505371708736069258115082224133880570139741154884059044574840722227355946604473746468195103229253661601286168486094341735974968607004903582081771865464857864335099015822864999082225645173970826463523955475693218952910941756707374509344562538802364315800648272896379060174174451582145503036760543216477861441981583908951698338614937949595573166568537695217397878901513816331194069039828130506461275451543043824642865360705708512050299816426305739144249226766770213470659178656846991201611922521504607769621224485821576783514684179008482252665711376879096235150888172273565291589111982086176578344971524690642718900851253770363606445886270210271830200776236789674201014684015207762966761503947260777597471128853866577994457157838819804434788666565365561276173302670235290920467896159889259666705362883290973085713886600403168989982675648486395367078745469007160297249578960074672703621612984641867636657320547309481687850987653027153105292493366839922202763143373566876659202411824203840346376157788561586897918024751104252080948678462457075070851654881681343608994174365805904890824419273324521409496886573629828322210749715427462289079418976215420620968719813372215271493903208323340431732658541835430594204140617561344513187252062876139228894922938430687153218330832934611157157179526929726024098573636175074043032768471493418257110349463052731107385573559897523062882643759768491787557725079212985012925878168800080878096896561682914864916817546140953109278403281489803076484079557150774670750840419452265864388188405532079083603034179345875097541839893926104240712982501181586420065745176197822863129272886462550045339022197717154726483209393705845849528851419518126910935133517218482669408391955963540913523912295172102415890753300681091217300821820855891243350375556127513914504381204902374495113505862157917909493696666342093744948780097854500858222285614742853474472727692700062672179941758758516554689348892408595665767112996535688982265296511874332032108674619475032861547737062607454348763465791813749657795926805496769341005051628529051898769934296404987075169162244414962932570486563376413891216714649970642872200805254091328212571412351042972903565349379516377810093054694801450869125087827870800284516035366603068722291405539103952221219774642704456403992770869283850745354636612046540319607717314387877145111688141589377320218738039184505253868194087318228941531670173775057886764937996041097257786809929993523662954004851015048491175786096252222556767511992995143523783957366875055385541780346249085586971931508267447676988215979512491340936468764348759131415375811710248456166266998750334004873966387265470096283334580540269206079221554442909061259783873818921996468115404305113748918203340653861864581031853928367488037550619034064665920410665176487835657667133126950830810687603984396681356357140993467984835852626771955477134239607402109102820628202241755228635726232599794716324757815181101685693300737543533048620895919579500856483114009829145400488747968965990164611410137524510288031860825807738601236166489034911737840144963523205532381945982434603249445777546787272279783035624567153583574429706784645234741397065448108406541792027900230733889321153028259689425877331024485782918865913156800109918623083802743877351200640243144006158710411906502919499256372431448688373030041109212851306959254461568204045697568347286349896570276433577392460958036997309973805260600232665927239834940785192709097693349702094079589084500544537044706389172983694654185657784023757216171131538688846045327745127677922396223132316290644372691574878770474147048287643235456513395722775750386295057185487027371077023551637386488749464627562338076144353958253776461270803205996273686954765418326540238999294089489074271051191905133488382479118204889649709643303540770175427866005062810294959524085646846102906257578778562195494743945963969820376668419688586016282778686792929315355864882401690106675124841819764491312242116363574762659087119157085923321595309931824299725389613113960210080366161161658167741046849327799601217051548145465047224937840472114825418682802587559740626289114842167501857172258252113619073252095937276837161143908455018187736139853009559473059435753436908554529594824473437302790930368734394682221279378691239344351016556621768958386914793147674900608810927668388691355365848435198743865058558094903301538546437178647080950553622389742906524166529167403573969170031888782807773120640566672215910756904883038371765380619220062599912222328818647812252875430658394505614276027165332079272026049605145031459492330493245215102477325675288066220776021287348702975838517613388788921545027451309560229685527386788511739226603379078289241681665178395628414352371808354163504133054953444291079518596924958909451811916330014709446812646933994880983708162135668963879383168366440358505251251508780313406838664563604872008540241315380435732935715041589948723952392359776183477019080097266531155609133329381409959812973937866659146291620080974424461944589951508728473797663403224586947002855117208300953247074891653873652209150527951627591533740931639680141913396485442045146028976300204279035663178885515864747631518316823020180834745112950852826740547488880160152821791877497910207449077064722586216941756531212684900470363671053596138454086024165775609654393830875230203439307150744786088938830873201858477837828546586038182066897426717534002579154520278818316317254188114997267170663903568504415571750254516000077374412425530202530267182705903227657909066706312098022367811617215642431057347786345521082017498991266199546732751240682909209172852508070255030697701671660807121642732192357167348601123627937460306002718297526008036340950895428920280303123923253315454908991818274419117582739950200602144604295773906719153086003646849358678767039538432384798752802107942631453711543302236753395595606714840500325373491231857866017423930640929965903164573460971638164893035295677526958327918228016178460030484656077584402995307083378070333007269118347100626480683655927306278537178816334567561008038177371089246582503418259708524237683878062167930142367185811689111057940134200028093715287131466922257532715936987986409027611754375923749822189697884091210117380068213161275381133306167717080984396895636577489650784658148671125341911149270495685645553001988389345435369254466883316437999931287685056805532920588646038099260177070526485616938898156691068926259079371906586375462212990527994013767076294311094421421813197852451784269386841278592614602010236513180847126867103325249936250731174723299435378650942301209198624283459809580293648274236895504328215072053740937899823240840629133122151645632685076278954075686771512264212616803771451145479518774644858858070938314010896560297802179688655283418022021116547693015821082891255372244112725758186155049679131050854041138641006751066181118049722137171651126377905854122156615622349122877996621121524532604583527695903873337317704344288793549509122076509211338053147509162538240716203718472945552584621731957685263625616485994363537176501859608111962882152568405889478906423244375160617327982944009175742836648832737415452661997169591292241180624165019053685685160923550364631347971669060873768362343385449591213138698833938670136720239488241817628148392499344580667659735144921247176847810081803728838196489994940817537389283800587491123207488765817437557063724051585189602018811672586893202312020480407083317946217662545150048900860340804835840787445316267498613852005184200348303176182527626017640957613630168172869628344235652007740858271864769971831224859484846353619202925455135051092328398794054260548852579357099661141399274472193407779575754323610871600690902415008031163609555935787214821602112226359581249186946162274314697614720442825637422369510225181522691684307669373017402124623077811882002799364197122711647192960301548716158351156056921147354941487561234798300763837995052747320829811644434808175448733575213005346584963679446839779952646681764358749297453014189112756236002524919629305829600547539253517696049000271104837030529179004098110744601460874374879344950024990841849476529068449708075656519358232015375541647965915891005507776053301037413858679206107781539993079530568317351717365109757810379218144260012729048932881530845042327577558331378132577014570802564745577570843884436044238101613975946677650091131950576842717352139084815335700503373126736601685030042888582352522329916061533689067813065044102187733409458377175042592402617866099332483107632663833317997550599399930227168860444893900685004221150654978460135465535930291493713143351798722077775796937094486719115071155344514017972541956262436193801553141121330164277915525521632760129734999331085608889155141896558277257779956053010841917948485164334061842213420410847903069981758878781426126074225772001595452771727730174314376529377394141791479669843054169822992299548227007040222954277776699026080955736717491109352898391788577418679715823017941975549699614581041252477796696876435504189007728104401241245355147908410228131091014134861301267573186017595921489649025997680896775483741145486743958516153131735850401229791131957696868352544166694861182510223342158997421080338909579915958257925619904976284223644571254946904149551327957432962157383365867847733487331014518520850559969075986235683929621769957290856066150771817618914904834006611690675307960596814077013857155446184784506296050647806290248084804020117269204867963836701109588533133084962890939437638491719324684736779412910968917445695735950688908929060057426999259928382313350993558614481883959402952141062241890902086197379461422825440142730631366051271644237198191964279411841221880568177940550735672610613262397475326404134108997068621726793931381053288358246323007966569912914269984107320219963946554225089761263964529412812492843656763367308157868567519854742923729640450647090731682014227608482610142227690759075470284597736620782421551466552181356680924612591632625731706380487444272465264362665205663075901280407218836011900305015109339769753969538029994285493745001702654427549189688646067554467790648719487612852299904394118714713783093379280301557224720063593625501933681341621566994646036920013152363693519878290445773713357940816818581311121715453152629386009682181355231639870243031943441454144475435162499152575385469056531807503896450966702221803741477438861722447968125934419497541432269459137160644413994957582634214033401685959157904255978817848314604896593487692324494702293426515837154442610110998014509147648697165172012454907061513304345608174531589504900974105219304203932755566478926884212446681908026599682257255574201480834047600008854176203996037866557926407329378590592226651218329802741479193228666901224520327212222386280176881574758460765672062597069135380041855585106977834439408077654850432785710954637331216848653513768792501890994718175879993441414728349317874788515474866396501374782132278247522779740810352687285180627524850967487154304912529468901086210110292395411009728510189056464291521329368305353612609429092954878704925476185079323416383944443445682339863072139129388408112979611061606773797251805936483821310605990715458134905321054663595068896133494569674591052349918717648056040857639638025864970284584882282490806442697346469017604101515403054221215621526934348292148755180320252584257354126678060763597164610160656072532728960122299435065252915098677082794164591242004771512525456535114818709383454426260704006863916649631995325181072471869681222935331859205804473052740909172843785249000028520827608208240681836465593052667222364561320724959820345429108412930914713241715819888753852388718663859009409159007450964998415251260978156784508565477754744372944398196243037652555984640541236048276156291947666953180539173607029992806081014823967360610855416709789904903898214201747685327773795282980554434222220889765682791783918338032916404727621963191008201938151494771691590694130739194998409559282414891059792157507643959330839630505629776966161818440905262151314297302792214894007792699518819506926457549360604779297606165623218789837597481705646790391129367877822654562872925207629227217817166527404181167037446839393138656318035500977496039014294816476074116569745676849622242934818127930403432340239177931612888959376813273745708353293257385403392485889430774802655367909926427015728161137101333802090460525063065776987534416419542323399361966370417023806853406495557863719359814492462231811044963039814019236082538859714996362445123343798291681281416169510791159598027412468220789147226261652360812886731992029244578666949031883476781921522304034605887859728582090900800919751488910156814822397524135939982421740916946340934150653214260785138832147579038757962267880412317758937080757907883938728041684460794751482589459373576642509233958739542935279942801949219570279147653110691648986639409328946605292841374786112534058809397437436175189115777583200792284495852938201038736562273339266523285012493441996289090318734865509959574938599931444870170474167205664588832068199947986213919367640329107439238739147840613807799698680951967975975241867449457160458664531263902001160783458106568522759360775821324451875337689472651034531886961527387391443852185834654964415354783484184401386282508056611961240486834902433580822849407274781531179022797310095785781163436985832398842883272553072031768779207430615211612860234590377087806076336423193707775775638015751714360462282889253378849418583518433375083385447261937761875144327797359675857954243441063376756198661359012579623730117914185948579734808325555824677800111407465224153521256918953039499079965034520206840466140524642102953034609990971149137822985782619324455378152431823056862467951525858693501767836574647924658686279151720892204957298432806781410523558566240291866206840390793435644128535306457388748352293348664246267060636535549870149079908511518723371037806432085279099887311545504505104754744568955374305480351149289412964588460981884790001582153704272259301281316694238302529452335046907133735326431804010478803526963800065909193692843094262067242428994448044806307371729533712245584273742197997989218751856104240919156098744686761472790700640535083018839647445779804337762930358890877140229978825266172704590382436994907287441815648561305151402995653768943395780971052009215913071252647122728557239456015950341054274732416766276289285503894392814803859449820070362692567245815217014388632355143477698408218077315920098804267124496267714425507159401195948801949573032893153691148629762003456747178968969722529496576672690434594365726209322353968472982326605392813758248996852830969486642514647015548742919918614382051985450825949974255095892414681992729039482855524034496332103541107185628358978920176985336512642996094594636841981987578789827208260316182396225351064947045773532770241651788711817414688939755314062882073172203371868380378078044898748514701807030269644656295469935114904745126622472958251709092782372477480639303986590924998810900202821414712256830587196731678844666376779536853723482406079537125252799337809659680121618121287432084515292584581782347461767166263752150142237117384072899011704562398743572007418785945722231076699404121103672527700192473140880308955419655561306129276974899025165715282361774451394233021081789818715878682314560901512289204007872537185574945890633925400488943579900247156481803439636177683853544072368375957133345809856674233141393578293314715080472558017100297991556957082010385302522806013921738230451888711738359870392285106431882718118627422507673556670558004854813164212074502397169026742545142904016291258578573919893604067130030647300186192514945590452380113056521420202677146531438914227110524503911062839025056223086076079155058571332544203417701029044914571757180772497331496692807170025249506531866006255149207744118902832366251599816322783019785710115437520230439847043050241711119348201578595470303253536853431788594238598961939993719661063418035275532146670725509313041930216031258654638064122376193492755554867871252148930665176408787625872056282959915555115510981559657827190504325737802098707140296495329853096524689995628315859452687181560562692566131429431685474731930694252360655705535915019998520370885183946842788875218072950250288158815532371822580801272233335422685584481717331930539924786794366522514007458602079119188421302922776799857262486904007454618364942196176676973297742108092894880374181466173859373459516738083594937374525702806537893818314276129458929162222709849516130585779162430791989370155795227493698974145394547239690252360646305410379993383145652246693710276140783073502180748581604751967115515043096329152816794320368994178554852420540030613019740675728808722471199351339541307665972854513890514394897053497583715648405788754058911909925510166132396247916946501067395778453749399574501259822989376218414898164152912759340700412376960932977681205790389600675227738280446967453021240828934834416452989964566761971125673867180787877545478503756451555669356455301191511383264118265749523360344693632540605395488421451025840307195396697907231796990228323963349017338229483872384806504791994752852128408795879050764754595497599225162172570035567973802211743106467610018544270177570279245809979155461466061366581768844601767022115894683194393530982398756507758485321250844275884084703923752821372673830184685754912250649664821887230035443998359100938690676019442580684752555802318034509681628143683793938335977462300371421057855892090524554517311746428665777279181546446378925085383267881410663024868444579471098884512951399593988228315804314620513841937075974866959129280457590957757760365198846691319120400273017236104440448245241141121441012140905637134030907518641703863421648053384953447805110482778831785674935228868312164973866392570588971862043746522728593371677487955717994071096630618771550981788407028717588103658043809641631217369315482343443117017267644418082957692905048786552001975188545179382528405866187649514321572751552094004184447071457366015690182434762487084846969784990201244263629708287695165713427279272312179430329722367188903119644919679775975439466485179188758405333740864726972618390176189180133394196022766306128701339153397132660745136225744366459595794302609902519864689725161393356530517136211902414406507462936872842979145734152931007181056775259404114399319005187027114638992854117194727769248446010879116412956044246548729092930412510633739799865393358995045164976336416589706461843484609690430459431751875883818006322079103127373530629061294695498701339451037646452122960860756467103752112002268112491926453483051352886237477245465671803019656931015892828044941267292543925444028341982008476980805547653011436244064270137611251843720015465848503604079179296936920463342373953151789615881147926169659123902412947549323610230925540833322311057495209818869831272988290818995595802374290079227594957987081901835190858717017641165457043711609016771964545230010333509984500197755673829928357910954774176521968841955273206829035954162358311129681639809235491812957950524832750943044375718725686212763555993404953919732799525121243832952089695607010465040939016997431807058566266465792932861686173907496116236374108248780700216185896410794020517472036014451043489090097631507576344951456666305482024467432892532493188311966275415929259252351461460943893634512362440881039574951144441736940454367483248813996559705062761968532349448926396429935599909339140627065238341941901937718853194006659501532811065654680951311123104448005546249685711695084466863148642656342574133388644324534639126620702788119386441326446956233572665873303579777420147741406580128441214509164082700965656109192871517407330218023484066810545430550392271026242092146543914354645861478928335486098813028953277126296824173010246518683580310808555274622411251358464566787795734546219538934230106289139003327523292288363290029876175700501860566809939948204254733457077758607630292950242330364535312641605782031726817100880773038769293862608436295821524314363582076624403947676900112354835138964986912645669170589175147713687067224696802883082832108198971735795694007830382943118887837902717976840878716398547718107043944191150454092719925255897193628626419569239662262672163579453795298921665819508081098437303663946973898849811358722667062302119090817888353190479129968796709888996771255576265270865676648971021489203943930122165568342090655461913176365655648946180702175593081045876633958493757483188155022262382008143885698330422832429992687106894811739952746593027712677161279824206774523906997378610476867544913113100147403903253080465650130855804971561778814519524518502330125870447628893636973293166602559524950574901067300776055283215750195055515190253266484680422217668005668423740745465078009675682490984636620337788768343143842733308588403641013508923759412747172116035073852559023820841181425648797348581854167970454483353913349394110515427243176002124713176256603424126069652578683702372888064647678185138640087607204254223157702825953479937561929297187067872462113122572481708832723904932239876542208813843825338541608490225092176164443797504855703894506247137204343913243920451636051619056969512574763004605220100355363709709301605371915682974367258284413460144075947032021684398600958953113513177342258793484716247074657649134844327242801791984343900856844134964821292878076471460960591003588230552283320037113855290901779210918000105415554595704588521133722894204127277911453308550246051498308023093540967362400399731011321552103640175495196054798932932932322546969938793730281606185192768026222541072113565233517918479474851635319301384416812742886363731753075238090508967526303133814317826578774493015152885839187084090757804718834407395810497050704000596018753511238106404739052280856681388191965793139170036897222975261392057261903803746997642203318481269634431699213080452076953304578174662062925300666588918270305922042889915990400523315257982154923929818332731576461635036941687476927816694979983817182672631254287372728103180069683886905259608359421688558875950429774733222871707094880914910977713060431600351917957176640779781983535286940228700086791991873302668632802580672709461021128377937283201269589059780016914134716008996874275545389873198892246965128566725309432748675499465858579711080334266390488951731997725182793371957279229021823206992231208090574025159781186006265733965644897926967441149548882082663250277136551996561315047571403248747539391122449526802872389556550280368837976962959447983078910125032433497588792245620539358307975366362328542637209177397218048175196386555433909821887471409532237107729611525028876656420662799068938711918604350573330904919049159015891704410670717438749050084759736701583475282594380711669241354458358717211838679346914302319177721182443888034853494173669556027684150824525958425416094487320148687990605887574613792209356031525433335353928028103201093879867359742155307529900968296707077207387072788027658156402497794419070777584044492217006585412488517548808575139189963270713533523483830318396087161494145362629705590782936963592229143571997753472631541174581144812824688538227613348711166826242555781305924783688692147353809273738487054749786202264819467260005409360844834887329193256248057583309792272043632485472205281437852776499965678190832322198459580747962991147714231952942772445836563901179972032092574522977738993882664664842390037804116415546957134060870063753898716745419447179482757539975171700585872599119978551799905667832782363183547398497188515886791865413969188534640102547799654417023007950280715274717002615071665128110853110037436285998069313108740760328290312003098313854337869884063718439293007210728148059595280646491542799480674281821642023279736815999917810373444871437953005383389893465295049832899402135171085751016035902831162914506047114999664725970574074567360692020739418546630046532594924401651743972377286969143877940149202618196315054276023202665078183009372111908914418553448500218940874615992834415073181908266883882316820584607056724372494405142369068560314225285202430878233206374248351722337632723446781300015210693051503166259616595514590814062009644942156181339571173406980049768334201629338847475539230949531654590634512925115311203457698157357656294866189623663960521999764765735704052174510896908273842830118410654135116418531531757303654508491726097372429996014886913670116577991311480436011589484865608772593511396621364595469332430351398307182371955083791080186402413417835545002717667119897481581455519961082596348364502150786384806084267583840624794337147533627087472491317384473587438613398042284540751110966897719634701181054261293370261726299762205805075754749088546359781445490527693733503505902648389268405836396604358805807858990911348669757794961557176373963154887189760495120096468479904364266114330028815681574995250579599310232615141825565116154542354335471325398961129334406024477672936312151466613304932100988879256130823293563731796926500980927349015702671609426424442164837216728120822793555899944748711970900217385618118865021492875706493424739956356075359843343550620104571122741373314200813030012810264570413686904676294185745282143301991628666204141727305595197210062948507715555472775499286461795923618250466504728866651290040979068073105832521805419761038035226344983524553153272327549259514400811299306527739669963355699870055096841515003335193618756646656852117602497659017286990085185584308952065079883434117580371067135917153959606716891105329578173786547851434699466352423029679432932097220474769760598434085675556148107496694032708566766414329199331341420782801889068443875528811554888267773539002504129842850314691648777513208603823363152390571950178631479678727636636675118612315764818527994549014871706342177230187129290018233327279628849415499956768725896500551927040647467468992375991147114775668429844489900338463917526306630326973785588817886258634856614937440424003302248235083484983247621399303982967372904698513732045668131522410467980737329445568445651823447659455039467994288198507869309936349117270158069094376685024567747602887633592590815265953561075393131155512377941581179154510794172576306434618497286441876364799349817025924280209908064625192758464107943832861839849871042681994216249659367029512011718906697629098504572683330130861329267831493187772836683229841164493231242388009215271855260536323650222317350685327901557162118780505268179230955619372692874005664945763557871623087853358573277380057920784684999795401057697850819733974470391396666056893762068189360755939942254184222133026201558445781591138001100784166156216508647647172264184419711010714685366088900062640276912724966608515506692348880338166750112202418622468177413160403921777933258353041591191399676467235288590082394221895893466738093821595754459347289036097598586425812829143746855424434506081139094651443271925286944047524575761246414546286739187770863602393132363098413966066709966985811194709339680849805869833003770589585146890094086262203614873336684458111772674260654507469621203020926059744223680278477623123755616538357372966466974867862430006546492092568918582261602860194422150782069546559338281370826871560668146462203994342276095568682046930890076404102497099042398012572035735614315513124654616343516139223209003136140764636088177394931963462563246851284900359806189516337422211263938401746807403995442925642657238344431893269854393367381572412992940462596983164185579875417256866488521304514030174923764128609879445928597363450758396977995988509928932017192526834340721481064403166412461590144849244363633517692476127581986035628984883916919003396484089010352483328102187459222178736196758480482567378616355263133568456331617038707310177389864819494131258410306942185010740910717492021526832853699418970948290321408763967050518909672436992109552884089802549041331548934204835073376227729866041583025577725265772252534318349978945516835140862055104296814709786308402225934229952327144638986959472656928588817746758758586777469723544027440142653904787378691405074997394748237960648807921607879413225793612095366389796474696782871090127998249181501149035838460143995093533077863610471059857178487952713315934240460477758761661993842602999053949987923471644742260375116775472266304347451379764217220766858388737896778417408664008052123182939968920340717969860995447368968744677167575832046375557939149296230708118198374032482847731366374291235133638738962488373860840685905970714317055649527776501857824683211884527457222497594467816386220125299489668996681500881141425636160382354553069930833300120387431212237968316696771210383965196780395751566355735058448843568637943411083370345418540863872400372402962952581666325788437341894689873380563402024675171234783486348750923681159996225640306633265359912676805242776911166362519976789404137538052485063646669270206285482011985096237670324660161184106573020810438613101237844280092799846658960970204797053080670527062687657613818450225422787484088518341091617868684696739876294341423387442645166451683766725423159225900990027613024305156618763881808443789274151520822464519568415786090159313542873476685536450350600838249954626503195867140173784771664150719697379121856680884977600795149440898652261694392025809537835743187914696197828917715829435113738425969169820479877589855543800287541444250706738603298702272472653983410804504931482615956098849890829383891845089097610351845408863268503904635211451391491071581064265624848573176787117708298039552619467468868504919724820074059916868694532851897718381017971836628821399789163308181867049855406148086692405392530606194712551005451190700300848648128263016551200429666228229805050160787344068219035719834207270008862677561970678104413755461146246368151566003961980998332254190638460341145364683783515543396493344543925831284626023343146843700165630387521224950831461833244588008273206632533682317713498085399854543364423124971151051304883081250777305579381019463166841566320097729162580887632734935122632364682917962736622725825860384618226695738406758091141832199227639458226275995780462405263071781384927053315923107523958210594638646023045081177961609271950034615221425014045207450641919625717161073153129768941044935204246374384398946621481420680369823464984222367948813104806582161754581856790384607369812893417797996472320078152847947493512042871906455423979766957271638949075010374409317496448733908676549082113885478387287408258239282787589171825162502302579921755995076637729945641673351292484875781295860967825956594294724902956314803120136245061650197008931202232435436531277034316011125974248905845856413824830151523689146440556061528492541903499676352139495986158639764980401081227246745784533126248575197117912052598720646940829768338631181719563374314920000821632826111645666026950434378824086913009475052180729987126647867759785427077012799902078110733600474072855307026707382781766079260804814928715247572210932773049595225096936910046747932830000897596332610647554465710116773409664253313528995510205700456271171693373509241302808820817368881395994979169670735642866055193771686253995539567655720709877700654316397820600987062778106701122575811705796457694228826115850710310332457530582644619473709784448623669115906952315737384102522515683110597642703411046395803082798604864352487615751585679658265897453979054561752200636321175127275296957917257453646268850080890407914120132208587565157210759086493014647117910279832695428290432886135762814060352361697350144284348800949886637858388385705152850034079054783091863124919866367472783377934894976710365710572916092978862441181098092644800340410837505391492020813134191187355143711081171085421806496026902113366876138982432115861090934999977343542879185502517612503994076557709414189277864608447238378347742107278220434732945850183751318933447907681803931322743962108546775750180540961839701908524169105135886891939974463348360946491924703617363693254807451601084617635962059746333304872709336641284188769294489283520130169741024066591737766730440381978661481514153939120705537160458464812597171617964984851092143790757059452939962392876522992242992146712014638721504328665396544920396585403402629916709267861348819203540839696241892241138340675553191449277968160226421725522102509094472822130130047670379455357735366752319486002468810331244255344908580296933178486532420669241592890595865152345234396802597029059460970372074758848246805616566978901701332469717280212086511974339962734535977454465162420606827994634031753190740708770963969922636596697494990380567240964091383268271007510713919399622413406491544031096410031535734549165024120380255471481813529645666703017575423705884461840339512634851703931457024124283091440034215863103744892738033278209381513996744687990146228157788186549594698556951663170557014343049717569723087262658757124645975742883369815794054032297894906728494744166956965223536984759039578904757897893607415284313543343232103280325772890251043899962013848594394023534405180699624395852426365332985773704172043490513463021670587416284928452899947489697024196343008648610637673814723826055123141252130056762092847992522654975004653429895156399572393841024094853155083476498586793558603203377152456867804675466616056833966801142817520548267856382878638969129815125696706630550076653357461523248240376306368530352402021586649237477226545813658534031032861508595576697871556858946120939259294986272806419666780586216828250979071094432969223374743621878493030341146094666430800360511070886988496347589897198038822719746035905930234985571724172105200368930383721073312622097767888059906569002317074595610599727286279909602023898242326042728061200275450853368210843514285344326280554396661090897161884246114510236991761136471645855383774533284609458474696422658122817041206407981987607231343325142222212090735550104320632628278727900069767124422599600336499665512811330914647810399389028897377504708199674855386268180763448667331488472247172125903321761255374510405568149875533437757243774552179968666713161653685163612797666618252082931911383195829726762980591286106300313893088679851028588717191402658995108130349241145396878255650941172622978806803629417009182292493576242759323900687325206121457132007885353446737268079616106254958735725385068648093152962442467418352659354131019235160708931478580086720068800576206505980912475109002518492768100306243316802247400222589890996348332952255645396250285412433573072247481963561864788758810165157242972485619487525490219063904027640407059460296185150392891197147266377391532689312334716190563759842140045566633449804478062427687306008589032563215143399061712804379976431635583365794019001771777526158554551212306885641503523235402511158999442330387133829134953994299235682554495995422709092975302542712514609569905040111248446516885363739929178746395772223433512437075447635137360246327407835560829350858833538414979128042496224485594594633489648265634104522643641734636744852344936239038742728674037573229686030740669843566994311853509001574713590278408872972289390430626689238744551716724085200047404750977131215819075983389596806437077029553253121721611161450211002374808140948430905513234070793856349735945451477757147322721808674679349892939081038537956147575722617341011626417297057160730021861551867792122952383615979115445260270208027002205618989930380163446347876749525972082745999799635210332701041066807293335989130281437736365752833039476757154171582465338805744717696056018801813771532018188616029559670968033990130405194308406329333168910443838070700205637948094217161448267261459338510640737574939130960140955604059676560825844851819497946035980706621650662964170579083492731804388604783162675236906697580188190484575051408194794846540939665501935915585428755569919611334144537951871289527007250133589792420087670077563045123649353145720690167802099524351650660996746574948586736370935834145933831901133631879471185077275198488515604953060202233187944482756118411769771670558490982675264954713475904435817638806763870791842653327743179203607989195429981359266129126809084437476195704118573281401740275766987018237550200345669345554760891269533204474005829605660384616423488317311361259122719103894018025605377465729061259889346823374287951476670822885749966050251365503118707649241038963703794165054610141472908834560336358436527491648040743548359053805316824091713514641553690024330605804608863654432301366390042619359590898328939998185356550367372697992117309229315001043968063348746059164612611055260126865721336380187736540915485020055449512148521376372786412041866504986636709990484425187090645803666557344237646490158778904702012696968250791287093048258688502985165791135952206942063556835378174371077841835119793778990120586437109266409073669421413444006563199131176062195142455759490145419102311271764495281035656967729110445364337350220197048392511398347375088490437889600620071718038356443814419491839427723997269691170864707164682377209238825061662966919226962189933502401424806625152566368565188144956860817781099468933140539520433398849373219280475817861151889546895118857840995123069595999431754342247013068025975830732949736345056102692135469899963358752437476614927291971927700157909427500847513497009947333153790202890060431763158459831830788916891817214325141143643725346130710991980889155130979460661136782713014743602583263704392259057380042506573322044235084201410433762311620438418860042986751078482338636021516700973620734647509525144335383771324849051418035342970977050278563460380800410605903306188084830454873896361090807018674476010631125853859741790723798401755623347064556860529382398733628764600908131206234668874513208801462655901378890125519477455735542020844495623838204814964487023940401044258537176025464738146209004853008666261385470744960445027288589250428185975772479108099493245529396530894885306775034709358515328817300762368259601290572573562825638871578492231525152917739104761416416749347719478929387477474273550892494019178445806129772567999101533819386531030263177298750563346234068911647587439169499657327507058204732362370693445201727995341222512073232170032368705021926812482308040000382811857172561859965429054303635800879678984520185197662411829589065075772151380215939073632502913369350588429901792692877193306782551953528992631101288591581854042805582441891338912754160952063255481820435450683529939425826129589255262896307558027647822892172756800387948025423031755260334931910233707461922964083466404000416866899502774819938119553985277223317812453612433307181930390013245647092017164704667475179043962712421548279199156697715157900625866364299914284560349774617145464178807813962379382518168366274017634755229707308613654322739315186369605430970329316949772262416370588386087572446243020911841741632372139849116656321198303466088969966172569769158950583541544275095895844688468173238226322668000770188522458765888804466330979408923084354180188452379202794546590728845193164108058025212752274249020708698796302860735823458800095370952101364166392092930936461205717351547959236670616260652653313965891548602115564196433114552757934048499798941845756223861242402762739219890377719150861696186130041513460081835516577512979662062272678188562620618018548144607875244629295241505760637139419841160523837921064117998915191478663902437363325209838385459383290428381375332222745346227303907296258949166266005625311904085433330340241654985051026898179498264565073227414292855966497573515694226621064739664007034254930303809142943872804501299592813169802992655541661266419203415021495384313653879978571150404446610558806592310082322269087542770517127695236912105262144081815508604525654013570153114829789116084345002675468812886452390607609170733953148852621033307890777383311462050200349375332636384712929190219031619440895719786589089775911082014271068494482168088289758433414411914380579247436806292358204630502067716510339072558422608570533554396770655092503825936564496240167627489143789500490105591221686524113484832844708961495264864718237022806179487309300871968614689897837255358546487200972287595400459716734233016157968594665557483600504942759591944601890653924278392133463314593424393033200644397923235537188173224359029870658960052576197615348936194157608041506614132234499453804097800161596914641172355801574457744759622311933389947301564652993725180424732569278894565577562898744494806240768506778656237872635579571967532644264816120220355087736076905060748528922224527091009562034802170702960601783508554713355416307421400966314568823683129525314190631459709047714163012093222269202955801124591167297767539325413772002101678316972128157090389491711989221947857876566519237995302083822628122626575119895729152851775540851539274271478489751639535501509083661218199705892209129471069007840636927859818680546069579254385875024303428791629186347781137683841515173464453222562599102923625057685567565039565967143490298907549015656438402482687120438554953968588202686598894633073781368935722203579735559881882946132453266307556526889297607503345561102298651927854135673577428226404378203180968387701836044044557361328927260566201205085477144410940940707858835486431810446608862119005899593265283884706883343178909759012566401565932394741421921067914611342880339922974477530512230825863499021375572431665120435396858344951769886059288022162670039712249625223542461917014211337076592409874189987756970373833027628240804422677117492317958166240378528900506563211264610947412358975724275309677469548379689873609108118799359199651556494659830606400867034712316688490724587776974295599047002493929704710217862884006449641108413259298406935397230377013884046760348775562361120617460711650645997762700076489726016315544804402020151052212576610062422658210681464990204845359544981834583498031290205276621773987566789405502895118910253957331909605749802411706753420610113824450690428627208735266200873087695725169713744299373383649345659129238818594102014600308820388660057685381229693273141136895595557442846683446559893518618588228857164887800670047105052428672182860716628913107591033074909082863951490829553780114116031182484265463154074342193129646495733323070812538399907108718865747664195642243800054136795552604743267977588346461668565583406935206920285919501578856772412472583965144561981746880958819366058438503137449400300963408402786765296589326170825187797689660361073126388028079413005559870198652795183840844056739298757175627465190979053352801454579469931246610926634087150183216118388592309034677480977928447052057697011888185636380064414175089884649755480365146828361828906924463454665254951517548951157512233134063725549496029638467269870922901431207536924756650818510219773118985448724174626352196113583597638198379924097853120456402489765999804059258795723258067711641252019527062198440780882220195495866525764052124080789908155635840730879577580433651239597219890433396927389073764310191765715833649281077228293748108558926630574689753857758609827651264159868998972042272197886514805718744480694945911785355431661004498310851160880376995490588618308429007524178192942499001282717242299710164444660288309547943336263334532210608676959338764240124149057592264952257582038166135950266270310969053303331108301203584504854273370798525751967012571831182745554387739382846788811454537321581613023970073431036995456992705134536896309794311620001469799832874306493134521015157668452847001401409163395372471625973926010048762155952377768699628531471794847696018018923749198658542364114763013079535907051779526780418693376475412882725776222938305365298189512828538759545020016429853975449195106759801300945493776415927337983821041739411796672814305308888202993290513133645629296359110829223638606477803390420713952156150261071512011754261418053559687293449473381229642578323789250827573103878788728117788410528402164493737096024721617964439491496226382218714411483158149890586044865855744985048475939179396799959051408878246135403166506083118127296293238109244386068625271555936856995313761369991241814157671814453981945362508497865986434535365425430346442536262509488014476632934087527807909436993663213447494695511010607671162725074916339565345383559626916440894396352170235868923032340751412619120843215026841321633720517674526727799627625806385997320528670796930139681840255356276997140731111494338950780442045593591514053813590191415619117355430730892791010814271419461803398956452938929760070203208923408774463336542238545162895541863626995388721720322197483352913181322868512648562848806554724139047123551116330091512508220167413088604081180528947817574359316984327603525402075629945829009140635540644046757368994627403431277805411365757506121486486173242225567327788924022995427592689217014102501519053125697182152402956949485361536292948790663126628533388348572360247056227525436836312717381122325162208056584758465426943672989248783102188811105733692599083603061202119391204105547678500370825190186312856660821658662133790203700273583194400081621895378570405866770991310252555001634640132016622177889918007919787278523395249575868812718326899912961071667694199260971212982321528382409218862833157575642086419531588281818814689048159290912383342174132768229288813028879112878972912906749596383075983689312619408623805201787415188646276620769384051544420314881969528427808760803470333274653774531209285088875164457944238874088810728035108108614933243376004791085194366114999970295861663117618180359916010165138645201823341051631410425473741182729018973382640711248839972663511624104281143675137255059582829969119095212014895528446394772840728877222415539217247496239456474485271302657055519371604550179197567669960267221043501418347917383727629332041567368833968671282838065583200839458991949333014920343009953664901919279023526444712832069423259073371210550898895320207499756187390635879908696959729404999854329209522369647497519535762750406189513926793807115601111562325616442766904342896817623026377065498050527079872554333989702956680918784969383480578824883150270888245661571208366155378373118057862596080717916817441972628144523836031770262397124976045493579915140168933190782905377019129790549498352503793570970623104445253510132367771681373373553632291844990328837284915414296607460878975494262354861174223399983197513113597098055062326331137612884163997936693772118532988257079669555808396450021902125054326659405982111733795624414027339283377152587764372206273340657044198870408614130792774758899364755680530005156564542606901142900428661279223739599875213095797717684404087137774513956333088792497227816969471527888626146405351581573795863173784811111401840589207900711139259554760410102267746542020839797810551601623877128875190809787542738059735472973396805464670352489823350700432723162401143161818388235593322473805110920439316269153227384595031322998016403610923118565149936745586056700604918940717502255308546546127345915285818283334995953681821716311751422567348054460934261158537339462448730023795292730325063448514318896616598405828102864936591755079143231269519878314746683048350227192265322385690637509071672458659400752636658361765326131204928098977555861398736074463363916243611934484132369921986760009215286385139138411626323912686216546680924505136700482856279118651046307832466022691550355489495800553350473126321370245029883052890697992790312968058875849654381324583048516468560206162956266673178943335671055682337025802883313577785972310753145587587729823987988194267849516326351210867306276760325043141033365317188188428336878275936689003502862962727007398040241937711197691485733901124008385593201191667833338596101976377553090244244346694159368257925525036780564663002021087890448945734303783696874429484541081543982938686653152689813548592582350509475850108972872167249521158377157247748051613259296821553191613267174074000941982550678941543861245898056680640777259951360424489752079688872022154575289851205825502856851545376872273414568392418486748155110195720228339323309586692608740792123549845532568096990000620714746667583061307822297677993980322569672034398061875545655925827241358363966681806394974119710258899663352522906498051351684705660396325743405978964918058379867870191318283491525601032174040664053277631505064398367272948283421901379323296918431409930577047573930098728088433512448190073396852660917878260926764051236810033008674658870952868687087381825061763073213765941836949613118036883111533287561529950113095987491406235284561794730440828329881811006193621723622757181704382019671206291871460981707311078871467514432074422924374176363284445915315098681560687520325757932737500073319094649849719069873312922932994647893506532424276324627882632876796530709733240509200522096894328378305302294612388279370358412372532065979278303004196796532520788615582075042201978689886173122331108459999115776976522811635712196335483100384918274848733117127911409402315378603829272450345742467706312513514336861450380084988835769972761673828962937334841053944595812851516500283708428606829544203416100939984950398211960156220411523207402867294079869654005146809339828014348618564345375738826487265093965282022047968294768092139788810011983491213606457451759568700752344716257218584212119538922269637709486849038118469466502980147658547276984978806335247928571607174183724868914526449095770091443499622208645874632057157536976017672055685518527141825755491883320536285112425079120732373415319756260333443363003528706982436657766246100862208472747691653543912352619712776238605696319141438775335780767921653641609744952044168828452759515249216876577071335173004497680075183936439096208954917909891307767382718614862451677929870345473333784448431378030831883037442814551126677528703028784289791299665052032007814346426033665768925415965150837252280624102318227780114175196441317254470485050057192344333079085553426266159449079253649981512542474943786570406018506269148103414740629352844709512882248306527741830931128363037106501524602283698191666374550259832931898805829389275577501742553558178099928690694416516588609465490507524934452787711979786338094489154561377690870976623651597152549617075036951422789099690299660760914904175239887907977033498036132072577840588225692960891746114621860631322424486502670934667383136430442124742049334932854901496552872233523082322379820134197357601072913569629355390066879305266838833077539551562125947661183210086988119274573581641655548688546670307392114439499481361066111955621015524467692370140843241483940906451578221261147506813991544276537979923458003884208760140720975970316497186300155833833278571504997626771875194099868830257736932222643797796804325233806342162122161471888405248181867508300801383889285706550843747892894162337005943714229868348809999295292433476838573270009951692835552605873581595693123092893136750336085247303547482513166631252579635732373116191034958048921329031176829783990263973934957796225932423436116848399778970820620862040978265456328122395627885503989193123780560232755436417182546450091367835076965625023851797085140386291893215843182306814287428354627023061644757639663255537399400209652012542933651147862852704256550645150571683620568283015231912398803669740686323973577643059023733069629968759050556600197061026352142909424208102982561310002294833578849446617160652025769952107800313200973673387795437398434681871443075710405535223211111886905642247710123592044914268162139003968133553731428578301905299432078185164668011118557212532812715262324763598491915029147907893932806934468926989521890111785182759509632853475428357103981902321942338594803317197721915639598283978995844058491696102353804734010494088236761229985688555276450028940297559585105006476826808918531350913901810202698291917169300141248939983972614661251816282569052622373599445184361119260889298708313761284168763864185017905922705343375931531778576066241122174869509493495401866058984225290541737986078926489939186344937835822105684798879715680147991188983731441760900408607778345516195878159551366905084140566940636306277835024672999390234324760662989695489474205744792615220560464922950831794443148665185191995245499500042847571531671647243413210510464202974178280546389872656014322441166774152378536288890208672814479149697407914957914040793943638209579509335352913892017360441513270968911657484687530792784367238051862199620946910560619711399001831196522094905012697192273760263898922957697162333355628915400558897937187446621655105687069970720756060655528125227065053285987699740979848853395365244345618277992983610884031858610668622405742553506297493435285055575918010048254443093678316667879345720022657623783510514456785961384341836821410614931555388741027311495165154306498945674520300791424263788865054295561080293170661569787439925686171589432642587140311363862987880876501650520848069747998255146587505054134154613953886032587861149424717747232470045765407457510107886939933377760183292994376035216032412422288236424817487347343776278414257132213303773479991844577902829524797706615147063722662108734834955888167152525462707949037669625889697223117580802664268242302559588537467888650813351582647175750884152376925684903770042546761298271913182045528450093559331234304197291814996633332936367904249204880550959826562165172506455068217866520985768107649091750972180744730083299387537970386502638789998443796664961372586538221633136471238026052497691113290881322676192610355802171896947719696003791830126334633829181349617068325591525010530073009706150018666771134163560619472653258070659098410346342571213022015834334698996209074384857191743965950420539068151989267078313849965505249012954147916262547748610931741482984440054233173539638432486008987530766100988094227801526132542574973868579326614737993957094806998673400653810281116259171108811079936987037680190374414105189812666804955280764634343537695238648531785203600824863464772750813143252288092513658168166114142969245080854098325829697518994164554444379512397046025046962750347927047877554173169249192223669924745396697461564066547873100990714845131016999188855302908301788134678020229692090629346486198071665151324547213650205356291357227131388675786874303830765099268455021002232650696650182231987728319550634808649034621396859493374594198177338492763484463481343922334102786150326055885190443074946148170880390473829099750604930661707934022824422937791513575600323769187969034856366376972601794721897589209180536716169317529672224502320204140345352288360372518763186559822731990817565163324655624155385149759856060241955345267355864958485255987605448236199124502088353810064447290753120674670287433654227219937008199159096999016942424003031934331736579843619613390579372664424341546097539589864261079841329719116587728641221233022624139501289926610652335572064320010940743819962842074783895668297036127360753934910323545834221857819013868249110364917675141801749788922135797390480503790975805398728899152103468561571312614587522413015408296239904446905081746612444522330372126333018453249958402270136612667584956966166299507606030489136163435358148097983219278512604306894127007369566144946403000509266243889429886965917828657009521842476426467168351505964815767328386881124731018060587267438410232007068762591240745279674015438315213156238267024774930913819657991346099729082127007737630512183152451323134362403577725382491686062343829218164313313489386530787765293498186054580325957065017336498573840418789939529068116188196902772778736439013678992045762882854327302972623718191850506135690115177913573657570606306466042075540320013108932740204583632339101678818581965954868429322215282936399068290793687185544655497693108762197265335254157223147572062850385564383119319452549196434341059111562158744015522951295329787131201476198736260953234364075709305999299220683663885168558801875499647993164037656986613065549749157799879636031145372546879772908442527502058563218164389895517733868922907219843050063671884056698126993190229952369049700281611547516562101188246913195429248199649263902810886506663003568856984972637325257064838163210957683955865228921073357837303464253523912029739809212354763276060335271993833006608388936403316669534841201213364895901781163241940302291515795810536989239282026105519218737535207801149568019627139088853613120238644487626867613910040778901826814131176704970546474485924650048811506430790984599098439674972164281523656141279069358443839516035195014741401590167616763296802533022215692005166378304378191032343910718367877121501351967073412549819970056411865013896875983671627486531588646996222711655504504249454435898476750055475176732234016686574169416227731398751070158794062045242864390048103104989019484371006324539635769961418556287707754131006869497158928685219108254431075039543906683506440698861830209846193622059785362551868477969073121881848049411405800250045278859337495299513259368743729412645528609795064908719445361100494214919490191281161025794938389303136785369483324060672668987049539787378586480526768204934743790655498956767935503309248209746990319346207566361944785634920538863867569268735155877073924442251022265570756648308266757802106667451984992700306814009294888302426403603518092313078073702565378945388399281209065882149835636115405081894981692741168967260463418595906279932416925486726236687635217118779277573420699562064870755361402228635507832577656727898937492784218382427869550500856317999099356356915161243136297146058825262655066834779918842475422332788282394426983061893070994554365683197607840662173355651350545377540262660782726824046958286865800874157101700673409514191107342861403818291096906408748062860948072388142484455650676115365908587332545220897805883860237579908964324320506890150028061330859818742376487963876991006869362360744563872796595369536599936243557538467221790304066023603750711205487765126788742099930630028184515280215880780593688018353358289113893430404406551303997845547653210576593736284545760876314788179882225211258551180706270180505149237276198476107369302588430017065782028450042840830485139051991937899032154948787843425221563176781749305944275571128629702058049357856536744118610168147529068551193779997946179102523243626415438532074530600010997495643633410377838665399217933976365010269697886215761500170481216834132152256551764910357231621705490751548671391097484319288701568645464762005025807946377776915430938451647622580417955305612883130667761059288517705807616805479807803999596296393256164139801933887492465166909304468718770151580321194097746462170334248253613007594984289765219701567319757111123578802211405849517788311871943277764692765838676889186939896965890812785394218339632673822938550287306250527462602576553867406633267127955161554414411209577395168572771737721549501840232932089436148406663472674063355780434795952482857732684297080212567170328260537817615121632480389428487823283279278882925603448039842128535061678327807277979685921311852488408496814158749128383817707268284899812910785366198170567982748205290258739035444241812669562611799256485391674895444552780992079242974583782080482505373632385617459904773981790682177480577842479357575963949131099342472605330223092506205749644146135079686680655159882211143748754252517091599876003945665660166124128029332027818046235829520363895420864545796259993011613339020357797164598738339045839532932587317980747918769066618437522025199424906349928642500143444747795947242260170964986056495248118552909261941396213190461607345524332006592301627721298064997928356437867611660088201219957736558192826176804435208253340185140756073494452518057349108888981047531332097055651147241740636954188551424901845521085506858449693613514037813566057956554023373496367293990438925025125541350887795280271960255462442791891859242521906919962694618031171953895747689094553143462922761526047286582945556119394336324419110562578334710879169669817312810576586443290575550617532334922085211072393029560848428627461260064722687982709150923783808310252493680651497397128328763439524288264499431480548362724235018309540785187820460981337075528171199783014008852781284229671417268094637885065462815683031318585130638543457373347824637843736372197423923213912523567895880818561546253399638408275617312417413415928697738089650431558603809317089137120580272209464114998134301730492260850976018143643953900910775039800468823801407243978640012938944417316177843542231543217241179071594150314827965859887050211522334473335866340848197454423893983866610338920253119739197465874663407054726268059648552330145953729247922419383935487871519922522725265775485181299954551843584956995050527490223435994306303049390281901850579886870957320589985331976364954743595279679436795013454770948875735216096539564885753534113017132697226366816185636390976048367631966604494616932611803860045626889315370740347324433373706945725816401646852125934619081412579259724508872416159295415744616358762233423871000795257926467518131680424026788045056005931089016050456061920190415087118663412457921005789886365635339748736207974630840861223829544617832116049812239286598981593270906251137959884367913787789298213566345040336450245570556443445977641854923462376735392395096264976104455935976996196370830781693549511150023296033692927882053190993918664939425907725920525124593608842643738787331892350058465682188364176815420021035191964532658866298536882889266489574627975728642385524364886017324520342333241273549588776321886621305583707672183848740485374782834392187104349331086929278370624857158796818272833215553954122138912959465093303354723212759188025955951527487798717214106551586297370560802720397801193267573644148113745671386294673991459072554954374799113599360408120516885631055619987047393614957231414953775713539691283627092864801828055467307844163456472366241676253234178784630989649335682257901791737541417370671180416159935329827245566579093679241381786019586644534158722185624944046448000749826400649608160742554541415892754948123826766513421437442440066048399244266795965690522951686297367974870909089708130081081453014021820484308402573104834444774850366051570081106226721880073203026852142802808460497076357239607015543197364109893193142790658918423301907509916436784700926112239486876646382428836938631535935439400891553064096042751802471670419723901174614905121262090363028019499844660818019992972517690992351693004185478212813291824129004612670803127791492785810464188974048048298058431137784240514261996064351030174968956433964413260732515893527778383937699560462107510825592730216454208463095828336788749276641269815579078853356012462029216680925651745355635449897523256140133587063509373896460132253756031445297980973424620841668094506682548954433897728512603187953283005938827600588308858153047081318841658623398597434123082500315419225338295608172830007989385889507398354798726996274492326424904426889889078434129443393161643812860520898525341066577654669454888567563959577449225111944685794032521544492190337933683061910885349955972914991803754905132651406348299146142189987613871876850517528390336648866340194064733306877257495106047886974087248624063360941068913813996540190259682193933840358042403901483299094696846504153711234428972046146639061713024656588036189592391883642326938162811189092845661395235766470441610899260768288672945329208503518753321593407904214756162453451641958037551969846051569474904144848843051939715100296139971861921468305469537407643503023431649537202474770030609209139363158107373810462576797972387128551500107758985338219739694782840381038443964734949720806382323672000258563851486670834615383108116382715608365011133043099504217427872837915604608836633801791880055249379508203968141962079277261977496096673857167858068695087555632884217512014507334087664356212698010958751685668572885854604898464476506052390769482590129444464881943979325701279941633511842172999647511757136321789018219056573639303461633438119365698031338552398279342154432512326070868243834587931428596372011879439834540162474805637446410591565161427393450773502406791598922068207938544638312813007052419011414695007252931628659854861604611604989800214549548662560570166178133804483991116427343411015184769939023437109130278772343421846602609604965680562966897096337471671025939883600661242725446157289339182361000733258973583001596152792973031596673829228582529512900824621775577842928737082140371359198662168452722190339872456674775553445281071981942919090610562084102610219697324285505342608372340361130130373683640503035191650768726436129159605611119958002275944529848880905301214659057247467803320045094205837502117441123071430422058569703008250673177096540294344117429827562341325698919102131421296726617168930398023940430597881707621206699590287928697625045160443591838785789780240347197520319641570407253128974017422804489967152442997840083626388309427334886238308762331618675206245380948556179847485738831778040249976724854032131194961638498493436303724142399868797296822936546785175111266534325748266926023168820933796030850370383931433846863214231757722538157237983523084129033173809549348401184626154951549916512003754500542590531772426851717621258341195345277207450523847156956295256802837356328636974223385043438612913080875741522333925891717963162585886200668994539083710366908257693285816279400710589226827013124972437667238701975947269857357478144200686353314800049438957643700546243082353732267486574970994257249839304738971553375280266076095198265594702340524389333375302341204400799730896137305569950023608589220719054736959562656173507262206839003348788096614523594698203057279503341814069211756141055632940653057481279886392333037433934302615371762647316785698656481666812737862118514417641348541518481424282040415393614894988634159866156563923884344981987794243063517604885915250997548846635651979370659962472286440083681636056324903733301259658750704944327273667735736482288771255730815604862848348548673172097429104172588631414420803341592726744436583916235645639337686904800662131970875565939954195398477244989865638631665045602469591963526596796951954667060103422990673945435605726712002625489434679359903819944926716782933739080898790232752108284944593037778951951525138879383884020727405874075828397263046318933772981647503845044066716680860768232121555862544116041570565489042675753074992175773373253827686920273493870758433447571423122662157864447982762829916292734363316441520467157690769341637334155277574643804875549779169711593302169707973250861101775814984731221461643964421696208717216314779710684279097084611947790443234937264617707787564203406726292032009256951223029351008440885150464809749539361699739662229623732310037845699035955610308522599348347478593310193978824004824594216481137632485960135830747959476222558641092834356228334098976358212243518770377988179391292358196746544204622602906862349832821237478869431971072425885454515363012937950342058029620071534704478836342367740583024578651352161323705063478441425523361694838146066707454284185685235634695402601488595133566059112723907322795756338880300976174972699809731001366247287654688643840153164740674262080841198420811260094603160803018441221448478156691081762598870511426825461878250057541810356667652731962766919349360062802734295420817536118704384484864598636455484320007061181626854350745494667174931053697133969856437608569929626006034795464825226221488053577531755196900379903738658315566125329540470536087436164978890175327419269031210818662498750523559590186682544305540709175652603165770220170207853467666837989823124945587672441932504952750967961804229397309974824436381277158785593600584817822591035407083980181470465998538002500500282742025455877875109426986028413372192529759274561876123933496141417852879277352423543091346048160312298842603755710728999897766509081892611002918052109039082970931771849833548635117202424276059939249439988928523441851180888328559451257652098803776836430947009847243884316198917008721287305131163725259148995208069795111709382998940220419508173656955735977204643163388281323674287677856583450710796930460318397529559387055417258234711104385697875760630233473749229554348639670015413105361185641366116204923920565696221799755847925150714134529653510830465541145079568529392152321284535038754113708341445353944226308172634572274751510350761421891881740990031957585271252092322895383628163442604247742613114249827604842965462382878338501537880606765413682448130865083090976501759823206265284384340088677668882451102092338988178716746576509825774240405381735664079745725578974532217798752153910842589622579823501282175411586973384395317951839385161782097917667515782469136136845612792998942320246336054036090349232289350121175438296031783181759132033109860699050364415842909201456957131224028136469682028659890707319752118141556408592295052732578424867362854513961439836925613335420354794137114015297193162212716969538235331141007819078658814436777128773720868340963242237129474072637162656446687018726768947288458300958822981477011181107948410646880524324355949077002659283710890182435313460159758656182480339365557154712724041860604161959335473901883889795962991424224213186888861484891135898307167397091585840757217131930861533169365879750723256355211362388765885061782995409051957908731449102936364032625714143842755603977578573338188432132964013428967535760697726037097589104714997568002667892215805436322504952634953289066963437081198206394207307306565593376816817839935946275869531809853626212847656965891230692315553045520280704310548596858815109279172615760198767532522793019515222250305527956901755110660071917620826449695692227075982372843109452797394480189432268407087053011582670511782323761724352053426008433753861768962025753911406668512115370374514422769289580809349541175910571927972282128356859013659485655399904536585523328548392823689746309816858469010492805322495680078035486348820708378462764717561881725757554606254374704409620740793942404881509302435855120332552645583592808012536332649331397237477119170727594079573738931333348469588613846649562593059845132493098239740957226250260383687076188042202518775482851189921375475942140128138559089085022216650266470343076219767541631738486111446057576564304764617855536441848239147502181876362689415978790703565517685518903108821535071713860979649705942383067882081671907796372223650460071746482807667347606095617119913111058757615185484219774470640938027821276935592935612302478818530258313936949351746467471888372901076891360735962413835089170285950771265162890127110811854635231994601619905059938038706463679489615095597779621182982999709285399891920335117014362771405960705955413689963937671805987413770923293063920564221471984646718758702309489744578807293653209879166185488164326674174195626780069826898067754639628919698978971641209207022853793299787449004651247929478291150514454498626771265407767080666425080332485173941413776402709348220160627449154826226281134656097924195170197740847455770224582303655999328738880308231058040397291864751002751762687194531444458927807181570769128927980557995051628023940938959591401737213575247093985608260291708805454318552952407473513371957187822832690312115776143092777347065940625230680572483843205306928212582098007422559363876380487995060340952703900029966152232664792505257823663343376612715192416146912091283976243174979315244645068256485118837125033252950387458577206772754984045364439008488520895140078028536089264871605911490032753828507189031051092518525221719677486329044058606781066601377239999607423111188910023590513493035859349406322719524130597419842825422859261313025214325671372426583156456922297494164093433234375007908231144644412890440314766629117769602159357088956790381438303506537362322250896463174004237193245848445028406842583081102563332891144470076417978756321113364774790287589833487757885352181930426143997938432853696457980976442454311402580271916309565922905083678895826081921026640606813367560267416289804959609761980844246779445550817247199247509992378557576507375819286983221566929061880270055765522253651091498607553450649497525016383012579116874387589791450504584827054783915650133614705992998011334145239378313891633467320366005245971801933176221773676368088959406460619356738161932807769259809795636366571399281013627016676624296883459777268842620674979983384724371357187321106758659593276185274215651233275510090824465105674209474020865955482158493805129232771856392640188936773758337356734295682850895885897725799383952695558475949670130682941234325703613779982412437710491011584703830150720121349848383030020457820840891988424279422957972108597153356991998347888028982685263318045618231740950999903259478372622235092027053549336777092761340122656586855783503199761591898598521040347333210549616106600450751694046106770542185101545293106329987677253648069982822374962594268382389629672618143068715598646297128732940049792665509648643647268789843464006075335854648760863160788976026843773766358290345173059282806406358489839571463805602619622447908582589410110838232955155987141490870617543682870026132624022447882870225085204025929168299875563998358179642872422457475988335499693169321574254093074307896887056209510972295679029178761526034206267448261313988566219010108336606189216936118933709558241347052620758106596969926041837304905477682195316241889469458597883125389729302214528717365145213836702351941357379028756025725330472906516881867785253947189857721358585504639494042817851176483370625019069479701421925355014355925057391971953080488963988159980153574374263498664378341651477687778739115193758488263933842255373361923032432080590457146522467137722689502798093359853991259590772025468317149286079133629811669417845787819458302580397445408974935473312556221589795421609091154252467264833989694171688696860767226034736784529048142525257885245691710346573773527833638754278605114308301110532618499391247831234686050846391126451115658084307562198658774632360242175910961544459909632390549722610036935408180115335789013751593316431311407695998267046611314478542781826870590641442812188088845504066517231625138587220334674292615568952955021093654444328316984426489416702494397544334749996864563907290313379545342841668360211817049723262824557999746856428504345187983794069854109912651235543292334939232217808810879335375843804293293111211946323897593624362897295664448611565112353675044315740655271745055343611963413468577747360812237051316552697462246621612017203863547395471067953588158433014423862734191819918939737107426221224752743847702711409806723453926277444953542448268695255116242880029052247998836446729531024987891357479568260112171012440252184541466031690575601472253065838481547491379375673192861337932172342365648778134633278049449143452396953184687581433879257749279089964313981516924477130957239091761541888655991313427303135285116949423717638947035836034950883744462647374563320510336144325893709524520702777482478931647162661549781085662358507659892041987652249662206343415471672383397674715427896866402906776229703742500601862009666501344714862994340788647249954984607022789554806811872929558378706920739040564557883376814127359960462583460186761835873708646318768006480360335374134484598741499065796849165759497404636200791451141837884798569821568480845738054174864558699782742840139068007614467971053674031004721450906908152113801574511751292259527135729977209592223762325012645285493083126040508298244532762370704943409906383342587513786387811128663239559802836275342799331306983319620340939167343510518505884693326832575191804172732040767425166999658993481722004543114701529814281824674664276229950301249981682745533625962769197687204113132973484048309472254383159041995101268917928747291430642286384454837289719023179738879157166146566114999305965906450923820787050580679318601351358303787488925068209741249549905110437588583492570407406004011595903312657398473705468193611605941152982067600917407892620031418896215821230995418106608716698415261556649359172706379704999548899818631991924883992112301823886064054093842531508380343836795353912004690465796511361045950663925699684216468400389190274908480464056212040566346443735700916773707149216598632724727545286367023294396987146900129270027101108561595123236690336395747634960914655877737830506993030928782783741861751051363781221068358781197497752048377301702211715864839671662629924324065069302412244264288629439878808920968665446915832686139903621334484410681882620058859004513528436972204536776408492442976159647601451928363849775739337035955574936814366707131093577073470437947865609791535320238789589579049172175218678483460513849457507818553967308703137461830717068585225343446579991749513856231741705082201673557963440000499766723715319545614301165613434235841073953213098574426053367593353826399759430000610336534009253420179891385688436283669564215468330325540221273882761706679597015253503174894975650458578028811127551389860117814587439574491515961466859601112539170424100094501464649505581786473626125210805992432800941420099168784091299029572940819790348498826321984327189181036127250392620251478063600259418212675128471705725897102704997005849487404861701129963693846630508593443322873559699074858561694677824551712907279392379682107873241913644318118795993438409023885523938028856834645678197963323930531142843210920679439080011599496826078247512749121616102504433007360549340095727778726141441143183827318750249503443205614034829640704724670442697167690940677103238713712326702424638463574302203116251095345982490976853474579825212736488851614049061678302204134989321977688751899974788697993852771986669357614295239225777125234784124457972656874820779066123784183249814272603761641161902496685249376217269359398290430541018933351542142135746242020268344578629971256509942893731733845270486857059074713306820981597939114114015587216477908744755356508902461661698456939817153908216492642187757335383579497119462302832547151138985386864640810258770159515597946673665517682141998646279938289886335782920153251629834740486502319459365378988982332998017165764570275487429074256188368451162495082929661453625013517304585630412989945538511744133226337362495580956860250678202754199781572024967876591354742460917973420435857533394067203273034734982807986563595259110628875190625423078028539655323480884163163860066091431933026997534501280120056439763690779747048861816546307298610622740904324287656430311508420191159617508182181129231932464305774146687568124032364784977747257415740228061447969074675708082629680096738754709708745880160839480750696778683625217634011201929350913285834315028387363318581967235376814024440547099601893405997046616393651716598050115870023714901640303366039708231357508829195169981611097091207492811515017034587728660564012141085698374102743460493997071846679197032942255665608817892004286633796819373560400507905380727095769050710582094181867305785350470444776654070736517176120019398747511438899528310740894796697693090366048063180304640833062576296853769884445037336216558274297991763074038067224861577057953443473711037771967342825179252094461924333399801536600124522010246029643366917933937255778568480852661248221046465524173687524186246688566748317993229109901351708546686025811304553116475126128118424859462334908889392284988699181323960332946334025241847931748753726866882649797327927565052915037338167952799960296906333697870538207530249217125282361782071566251174454851534828831436968894319176293479387287012606386348720710377193211364677012254177709175700078264153232970582214348004116759061501777735851997818370434082278294603332724419295276431104717860758690478833608420563441923933320520394598625746167266948121345139809937983574202569393538673224033220389618860875279356071324739214744297857830984889766441110627045648247789708686319720204343314519399641061097122420340540821106196692973770466332740189092502317629405878434490147310412085138143014502840195044907904886614141189928700153354533785828249771426091061799856584294821184287854188020740012292552808190429766284698843128496326421177008429872857016726281508529134175741247861142384857642305117950154444027373788601141615314144791968966487239529834896058808587265497596579392985907234210924131182196489804495589116126651275477546967525047961195053451489672215021851731660778306779572124156054586974777874547577100398106574516081583206183004351865635346831494120904003325079023373997696165678987574251234285180251804869388157365056453941899938809929840040764010495140903787329984986055692967932685820110802915062604044943762859184621644141490162887649546477840318872076945075132053613602921846185584922463356448019796175951543890299777684913537391415078736130416343332025375028830738483803612282905474849995950864433848944593741836668824293961498724475249331375340999022863944584438381602720459381483186846121007670524843288915518804812755179821961529242015469770717777308040193794103666307687558958673430879073172074262849208355723143802850423323561674490707687303638152048389023324474143651696868761226388034009201129224154684824571914962758059047047073007411385604334326095036193363927300689824823859811434059622631737424951641636317350005062287904453771481317680524043902162895753994730666712699825819255948108810820003726874504173542558847812200731707456381799970664558250129277613548966064756112866128495139045480551709546096587600631263401657120068040145377449186439252782336802517533824676756057131268658200450779182075528643061788771057927620052701079541261707688244381788874353632812871239418983691382418228514393201406536935218674638570089601371121204133589400641149640787507853225693717800284722741300400935347487614697041585004947475421807100721336423338194497709270006561670545552486434290200882293891486315021526073638258233542005952186983938106975714435132400265798004758540042669980270052746814286481251028586219126718708226123830592093190647365740047989512122674955263276408375858973308448361937934922137027125338255387092505230917298485422577431635893160031617381371642168772294414782391605587114868535450966513847748889013687381990304966064957792469515068005065115227492450709744927756148144525733632892677903072527699829791355933804608717275117839980791212124529689168025884886422869870824290303421568647979083832548965172236366814250840594934650714905298454509034189426157556426063725661285820568195555135739755455124540383742541192892142092037592068667810706583790679485360134515322032787745217784095318435058091664955450443440930473870214570089787721389816336958459683515786186629141633205925165317148223855544977542301528604360073821567466746980695124603755128076418316276055610410289089752431482690406228944661258354244084907837066233561390505766315808677873234557408197314426016651565868725410375115341008602848869022383094961812575360071335577193669074060165959858584136090301324444647723541554088502156840338272976903760739383237671837578287967814896956163666542030072191358435311242321092748484522189444546892095488312199452950150480286325104271239378795060501252543520854962566335924537287558906491587331439230763199879305859771364471391139256283410694274553938475322443131702071400741995391653100965602560975973178996663811422889140631222325068672597213245347811508161831526442046619495371889692699459835700586136294461793618692543604945618713372639531371983570452130127762941638402374326870693149619675546473531177309862211298157141610435200173568758828027737235618857797823381792518451035112300505164613984193119610824429591483080889291258655254205700944486974292539466017755148839885012782467262561183997046718953724245640336290445152520758337800806329365079433509762481793964916995494596821259310083191748560249454956140808326681012527668728794880176326735081467732020933364132185347025728781944379082590753189308924351615637226178800276804158133384871267495385382026014517966773109091896996927770875829280936368519504105714772882415197848192803299944728626790471820532962263711977161694172532556614592196611632981210457710169699595173349892252263502126172262863475252014783796015969030975393179700807426845493223352684641458649112849394609613055692856310965899347583184543728966736627849157090398194330804891689616702829865526361323879881339215900556149479170562777311839688058156266059021430209231604741928004260508595446008977293873745650313186201394003225355087836919151803153792736839427238885473085238960562318770888562457492874823271548537263264602285143208251705038880551948942318293221092993674976405427312620339121673619885563969133707837799451367570735974572969513440981087995203486111196411169915612955708122562364492938319939888888699374960978105317639796131065732024554610015704209281983327936395600497310754908312685112888786369992616972784446432620386531664541071877728755918637487899975749637928056443796539816857576063096976759907954404122118133766829716045703059654158853269298222376749192361789311308581354492133787178258450843128641277268279331950879209077530328513532037371981248737540424754218271110019444249624391464275695624245492489386487262156076467978792794880879148179808703090321836769330877745186155044107220337492311723058328384006320462056852095627746510418885767593356031734263537686948813611158328858150805718383894775885841076728222185008375860824796087433025456216969005236354896550384388073991005251438183883104849796824490991453364568138523035336182867737558412418769138163561673689681166386740489386956531648878719051846768018927548769739468285740920155173186547313183618590269652396616323583537462929156964906755739818398233131888538227583617381827864201347210850651894337218486900555303997324005915602650927544884602949741751930957920011237352190183483831225065008166408557322051963926726290334937755949346946846395560194365253073061819557387193655347576917846985164823853819747850729150513143569694793261019525781078425612754951421258061837935285090632028877837788108227154138122568866032225761014587496894038362447024448458775640534218629479494024571858791271835224636942524465151796846721191466962761542079988758669075423480729439645280776428886639585598066123694686852931073697529982035542735021229217940644069264894303891488963799045419565791513820184884921997717675582909915655063704852773009087885799290287493255949384797718940501924334388342079216802859580476399565162448996602403547902778321232964887710138244978000295554568593844972035664999232399924312719234003843229602875298599568538996839196148125332339157465448594040651367545762001902073245376975532711027721984605643267513441342857870449314192519110489385619913512253041678594773767136133468531692442453962179701123815964626569006102512409910570415945504881544310591093840670917510924073453256591027465337052579609154842802245319509102194377258675683236367236663460988675540986172170226451171896700383257622016675884433261417617944820509179341804669756443270847776434670898588823116040839749517704451853127031457239830043192537118451028933796996014306383189692493415860189132394472241651791428475069829618049763176730776403505203789841054588188515661579649357311679540955334891201534100519884569492353370721700828888396280476399343495337319551795436575867796684162021098746640306633428866775237688204858931844112420051678310349915511821581922746390127325598984454289173263866016742884975798506200409054545057868375281841172927579021429437770890217294439736864636845309552598135176159817586671802136367518249259402207787377366132665465498255044162601060319413253248242222775451457828660321605060798654718282244659648695394432127358826788468287423620253785106843896819090582629542943848705494709040272844972022875151381874673713926418897381226338087218555942006492141919954649643029390746815835164586506221638165941442667818811834036199709929112987818494161431472630170055833595908733647072758619000599957817995597579418991704282501826891800028831459337750798606299601599564599935316467805548780345406627179705119734640049617327117232728539215838708232329701902861009099114212111323447770603440734673527318114948764109904639419653353657931855159450494649518691307243562661498626551734834125659631569651708000778836193762810240612408537120563448177979624327054225597672268606845394263870362608576116022970829820118129765918497847596711225404509143503852453638153850466521273301143029379991945619347092704658491727176057473030484647646920927771483584018463041674403910979651419168706527454816911857025965400293569016208234551612396759074080810298264003113364847341172483513901519737905501705969037740872461565257691336543257889870001837760762364049492801944521227775531887326242148747780591423219872868773793772264894191323393007334866218965299233904538756570361344435674908207025946194291628329666802799477369635043692809976946865363066750301807389946668627297222894058936077761969683963473694220637264653893207677849413018109735781717816056185104485792787032458383944275265024730622882326745073541229569082981571525715741044781829917001952777216297054346963552892412919779732973626263408748182280732094593187285210349232266290814858849193207976116800219275700005933275199869517301017356747902217438502470498513759906958007200390761615869293988794268463396542888367189397842360039381626537403640061108499891213654575948859184968172101016445595194064593367634635870615880936443313994377958361422172617814662076172589314090159934447917222217169151488222633981494901733724819098280788790969519798800431974048098929116625591420907414867024602342992114134503712362023379056433636030613606627284605931171937533271502876742131877017024112043076879545617884873497835456973451601205902432439326441042872025598393009246138440605532162787071163593662249784049514243376387023250228328252833687042341813239892791455888122877060028463767252002089526087424543927256363275078139468479931549608319503577508189194770977764261562567786267917009601055680443827426920500472860659134692483241981176824618417536263833413520789432731128541058210980804489447239641749271566183974548634333306959847807682446889303441351516009938213202358267167747696427184097246295306764114358648765875135031963504122731373856150503262299911585708296607752761095786297960496155181794715786681649373756331191039399793451021845124316710431273522533836864643181491576123466924570799161650437905184225457469524354385898485335369191055824745813888067954669581172068344621170554376377758631699817284388358089612060934606532116836147622940309547769581140425692004861004890143486491447988724658187944999858712968294787646735867288986342547882480851184410559294711051734286766072037689527188647844928573254997310505114521263875461071631500322502965537307584562342872409502213578895228760709012617036851565242775987673961883489429369985678011973664664036701261276975057954454060143746683058027343608340475279612081109294818838564597221057488649519244003227817733549832382779544613676933835439997320576439250901643617849521302726021833214503695437171681898852169144935470779018131649228978969462973505882468493205897619091599152545227237173243639177268312275032568972737418719550014231292644160404530614389017347454955282192427229981191302379738294029805164636391715272956867601576796632978181153972770951644904680311253581692169271951561180309434679411777491231652217694346636828365299381427219029087666734639908908299771635686756534229847594438076964857345763881447237900897079511814353203685966270218212116604040539104078264025886927696494371814021520850679638856310404852892978071998108655160419554216338690226328679384709463629794936544708544545214353341114399408538773615924255056952484073712212734436455323916283967469461502370435071973161076301905315579322458714994680832652241817870331919119758702395782446870335280135623632704334276370920043627227242653553683232068509155694393432622279582438351467740701358389660479772078479334466567886385428253937882948986124685636316799598264906876197070020583729577951656075365079869536123624590837727036285449862613637487799831063574726327753790097593289887229592066991686824186791267272686556739719183603704399826884042498236924020184335096999590230099003601380726100283110835290148271180698141309901295182823427055934057395963257873309222807810890071808447913822612315121582720864341667533547075565322697356136420887783383431729481125255880469344209127586986031357775672145503488649276523332780961032842346048375701323688488057200514171674303781296685662027250860921850185191007272485608876075334213106178619475136016775756697152050491695221035519504173893635337556665498114150581147510962137527763708102664467950834317697193560958972923675021376391151388079726202445833981431062762832152678430135339814670912699383086819686859476522850656224674511815598525900276595594114636847420510462276448015533122872950237352504932617070197135400613050247096597758950007308062187489090619620666112965810781828705782859709176732215507036267514470900582988574281811090607511044878500761601582435556049146215127628248640226074474067497069747773519087994813631885287861769193311836061844614440943965197989236932586758934338455066987758078931607111823982819628791257694245024373098323950337767832011542168164421296776859669095145501418072286511441945721605212830077568644972106246978361384704835989262919915548353368043553829096003958511774415961947595485858341134671820574562990511339620377123296973790760143854121847942353149944799576200126141642635691700806870876819005709499200805241242776065360092945224084085970570813592790679696701051693488810186282671523845925193724011880425209714763955957983456839524790199566401639006978054751844229597711717741493860191306186993561764541171838810890890899966793090929950137667584458565126585258954431720656049644802795655499836670207487820605136330953444796849751944603418036013058383826874027109944413426492229571496213939104181048758547625305571909800461509083030722266782074352468793261181004296083795836317980766548060529769224903542437690181733278291669675121518850812079743522747166996009477458897369947576066887098687832344962307781188418954906030200489947578445477068127801290328839772375547462825780064517216919624489011372947421856296892707915679546413016092876703848373439484801263698423543227189664437764054043701430571769208264863328251456977514561717827729989162957435704626301337980560230400956627247265199465692584609088211517692862255102435101927262643022166544390235672601355966866341899919794340349176059592295142293539713370049920742935086263765179800855529746355960983930875441012994680577805802522817189202154268387333206356272333738168941230222994922924983320276638104431753147337884259716063132917873705449039925673189432183929047007460729349031376032264447498918631787692296467025452601861717718367448301292767369171120214291754673846835250389844398119242967325093766074663688422577492277186778394860385133171909494169464226576828429727733174541754333646674644442463257862292311569231798210314203751066073641864306337745712346939771364068473932393168635983221763591629734236902590471907442027759760220438309910944460341737324064108993994831793164728487175058229787909505610569780978323278270667621121373999116204266059838892722242480676970334683483975921170808759030791874377695921091845152972308895646713330175624232012085744900085878699828417547064062791261766734352585871071179900038467642075568795813848445209966073705273895374287594899289926812414997746697034985201988874093252776357837024074976605369676558854232487802339814671068230842029488628882341229718560465575557107501492844124254487956898204881793699663638603358604433996473298546978016136158439240439910832286872007106321247059280246975177387340570368282438910697183116550538720808704300838152139471732636387172489521904846084115397778373381876561845095769242733896797368817595456152764576228841667199259653532947960592217380501931566845829119191292581960525243067107356901712491147055850586666247034920201850944362275556200318992199662812006061121382247139991340888687264268910331769508258376976226173708512016583412946861395487951476198579973636929132595542800331163260391379002081162715830056146338084472815047506025956046379431902685977322014769167860310392462246449230204602437241582734960456299106137492731259884020004255377826214162666017196338726379651122544000396099056919878271159284433005261371273218776558391552582882494385697144575354856047440756969334644762461826808208000846552843060214694640639275366040218144667310391593776234628195204820069218008771517857752957702707548013202891482108259551057708836454165240592901048922948126929642564382773183535389209049652307471468897088248917519221747505989769158692548293164219437350219194758701493553236838956562984836164559494860350332400328090630755716539294719216985943203576334478769726028847500259486717072482624346619832432373083205258518923449525941032984828041254339955859591608055904952991177069709344886181041500594169449268550182031406629044191374802014704410553207028889588864480440864029038442974996804178384423950077435435565227068382588553191161097147870878214848712425649668095662554697361655691419290753392626503112685258251301299351041154297099517891974945445797482849132332251478723199123381085054250153091279335087053712136577863014864380498130359140290312747747973176999984764785826599019236605883805043683205499416560090282665454644680509276980394327622745534889702779642353420096436665540403055403597229533922461766201429621518874927824412946541735627989566176539121033941609519800850832880697854432474848365953455808724256933068508664394977726847056353978514477185769660346846080947544682557921054704697733987183511641166385463555988427078227957757890836727497975173458595663082866137008559386413796761842082092382439190534528998081510267943015468060979410483962018649006646690762357031217129203457697106658252137273819163049959688313565111319429600515183484834880262665856592550802620521686817838294172078424808482160511239493416322377756055223602550209336975884643453800764821783498446784798392104747409473627273656751561245314406730470507778403079905069577219631260118127911107498349259056032031948864349091043698215692835413311090391327231401469845609665249798634847328223745444290017435460169324017901499269584450388207749673185107468523416977626347480055588697990447285363404096799822845198730603806400133988000514791673643696892389140527713685572802663880416582214917676359479808618533800588100990838742203565890105907338215792755132351458691379136271632940781513320103856010003896471564337669830238400975318362031829764084363551485704231175326457051665320650346871864836411603250558043990213497646578820603568245518492748842766067299630556262992960666028800075279722544989687310532104340933258043834649587393265526005787173071173008594637937214819152388749844498052514968383239181335368198809368919907230165446137693862844039621162037475637614456266374530777627802943332677189225855040147443399170087857209625763447041314628890696322183588374840101650857565431224991810707655000585150955653676313184863208617177404256752065234797611084777560430229568244061993662767660862089119942766252684021135802216205034527892804552164523226996063161799802080110250513335516649698376836222268272369400977019535866626761517665989098152537696210996095577212862216569710075897433628741237166020176125947759958616394428709523924090513733613166545306332780516373864411871282864596538567813269181027008227624045653330122536580024792411397093972949678157604871574923148125290882394153661825920904009021335802100512339839408780571126345715258707552143270808738343050145868942447929925817435829215733766714606951771670875422572967358015992194055488440189443439371459298699882010923172959683459784625382238074316422213547360401311927173251500099839548868934463047025966617636292665401657501515219047987205072588992481960552300176841184073168451367626600743999748041731754038564573384613298998782902467038216386998323474463695954466174629154539268573130457019993408990074065289752395922737969668561416223359272012643389179359578609127259539552901361002689299865946055610195404053009268404290795925814983671390667609031345847692395061657484932095252343504993407861355217555617257603486937520237962548525586850975533278872101453153308401328994476030152284802229377511590811065642753935895502461634571929257579700167587279123125308197139591089557979210604903114316829682776171604162991731516674200274619397180285522718933388817374111244895785175939508171566241144707938429618277132753616392449908642209199729027120948962134698995741026790237750608727999180961571786702976077924519870386928500361242793905668399185359571913477356124955289851746363180510751302935189044568502334957297552859706740632927970231687263421782732795681865601621087517612990130207760605499609988067030988854074290991422534401305813976151979520786191000322612884288344415162592911053714264650565122289951537540618075427358406565564597811759585341389104393807269632775762851091497392979726644918330953276366658735367019826034373277470049824735196795512939109641803894738954000349813113647796027022556776842387648460819591827236657854732752825530432550419349960864602815528928464289529637318764054202560600083092968975202208389120940475825925999782023620970486910400858753407520125623757271042565194972946255066502252449046653524481605517030975638915856478755471736218447928036903787496904744039062329173002217713035929680620556689169078828269602374630866183341405118801373898140047341831338163983605901305888949520849154992148724109682236210098271642959998846909541526866168273557149892620982182309811723455631282874930745381316355438832470807378776236519145943325197002125953734436112609511410965190221117105944776646668196723231702815708287621626698421158931862942539481268872793251262656375393742254179458407713003490811082756538360196602891054596151141716058833944344010287805637311619923306672607791682235396203263873809747285415342505490480696726362261207206311902704450904111511891750212938111048216117520501594797041908490818991874967408591185516914837588281112835494188160744971091652698350008963457409574778502224338328424583682323262158698030014092570243323731974958302807797150846883719814256657419289067872140985973919206251872253517362225561488695882481462025871450332639542618546245509749276343216103332779614822850105992089802602950201274422473317439632777028130347852923247117752106394575074784085645080705838245548521944229309965260642337088732888096559585606819168656538372128438776163438024441031623222256889266510126093895121609707393045951489722802422581305187716002722576963158468161264457942941732714477937929849195964465857671274615087326837133358181550538549484325853273038282976863119904912471439417127053139221308264113617526112965979800584835155635775897377547621185143855435847458630946587992426079253997409952015162936975671272560557470103340295751156328912923228731380047642867668266070243335817051909244894980245960698342660251771377681013436369748088725429914257588505145755033137678459648887438001679873977817326862385548730873036276345632833145584761263934965165132186730345576781841603405650639576836559859547303649520933658773423717537216971682526897922251266609664006235705954272029275164273847503719143905043122779539655053939191299020239031843579633125659002092205822876382750286631265006859699634776754247999754919941849081238755439366017054997142460035243327835179873769707240345208428938904881386312691546589737361727478528805888278459656386645994350524508524263898045221302526505046611457841398019846484825874245307163924600907702717448111157168706354779422641934882233104435071124239561450758724828255915931583217192329507517707155581501425047378691725217947566381034105160290678936523505869337134555411613537725990625801434480019397537207275781521973552366849014423478804512249913474354798897557229274160257441983492145388891445199388334829760263316628056083564895239351274795729411120462800686499183011491221502123375023557098986437821630321176664208672993797624793146768341846753506215524757146478877561966267979012532162005273879767129125903735724251085621703788599959871737957339670659410648429309314069927396444324715085058652755032711123008559425681162367396328229458049996645669946502913040526349820757174664277784411152345988304358489029949694909252611571289785698970262785183430858656838844596788565800841812224427134010665421167549436936556783671511708897523579700579108496736857493413282642087548011526460822141425741833743977911409635776998828960239325308879199978032303674740425705865610323519129642465863286461997949039622108801062209643061125085536441771630257566508254106425846160324054542505715630874076717659413608044843319692125585751941599787423927821340622767360251791734804945578798300639108587156587133927474550606144017488917732682813563429085710428889380294764126287468889053516575022115637541232379747610664255617668825661425634297395612493226992596588610254102939410563656247723738634976609272996104585130111836130787768286100019560962330045347796265828481597120897175192779614129930444805099137018682197640485035435114871997327638084819745442562797743033775706924242158446037998408243714443102033695964715415949551421572121589396330606016788079721120538667060799277145614422237915574660846107565705243653557945925951181556329651845892827986936934642585885394294574884275224192704343546135685845254619603718453952381088159357891920888307015838318739558054240686259110128681622552099579660902187956110891641749182498434622912297841687995385511836956797389546341143656742535355511747448813033698072968972690765446272909941184432514604771435328642468616510920265889982414616896750567825879198409939460405694723263682493941245891596331845939269819454053711519023544929562798924353720202380488920359713952250808078721269179078226803172389324239785978256294490184443456932023595420858044078204265396758449933029523404144071957226938696144587168061219071034345495123085455673361879493636709429518995362711717076281508237157369113695007756584470423996701185280067306062786614566541899678157804437260989547368498942716101451033303564640877277188497532155400641080000239634965800107875452813425009917309623737455503558845727337058875193589409365040726718369557791211684814982700728497085091820366402638474421961137455699708701588909271064355107582622525549032595416326504466842495532354795199507360004557862367370950408478821494672929196656926969850912755254482982344484432139058304522021876278924436157896746715218903563984473782149505230666422256827588474485739511945001833824786588596512745682519926940603934590240201360306639966217837227655645184509448226023873444086388055420224620054212566844636522404471891596843965144595429324718756878452259049579626698255383521158989436842282229505297333896449457966145308453219760248446676421658983775424703530210186488621120184736140729767191780619936510590369649543801717860884272829157727147817505850336632090653297346088533075356345125518835477834997080812022372769786376061896862969853613996200237118853106038830613257982097849155235930954508610722376300131871276727306719538615064933223497185453341115038014979536139803248852943347813201999073750049140366777988797364289782526530471556944157111758475347126763303716881656095327295932388029734623171782792741087379383150497510434266361416903823253771024767657465756645431291081820872086974816411314211190610488850331147974158194989867521593363715978774640168208729795153404507262383130757181583925095977106711814858793676481767029145686482891249144545257152829561762072750624545083114093284149884020194150369216009315010432663280538809685535872556390407084391950266117506570338765172887008595883436104652492895067894896070270275248837932003236021987508836863912636852730449201213736242615443732052126578632058566943398929849474560779468080891507418307236675627906685095518943324836204280543921685257165360026914640340143122021959827909973922580302027076483500301917965946342145962926257001801993335222231332845045424819673869749757126842753398010251326219844132843493856325851296497565966256600008469176664902788058171055714126819209654865513270320650637094222881358902120584637762442816280411353862465225686080115748343422236380020631010403582306199424290687389893355643001194035488950381004016379252208265155813901813445114143959331532330250352307207263049453301758561818612148796852547447276276359597784276352002335672193118079717028744742548564883419245976379087845523062819355163665975358548289357662620136745072445582476085589630946119412562647647817767796572472641621561170678193009693783975024710352003028985420622622780102527043231346269055596537593814217397703111588645031966046133363989145167830471352788590405409165174705612651532419692376936548224361905049327062246945045384367336334468405189447958549534038142737874902942555677183413371648632238913893226131739630325463185345326696654230778063156499037248094107882994303333953793047207829685812735544289788657125739860167752690233817512512097097042327116609103787631050772389441831866570026173559773418373653891140204408608251772692289417301154155643539494107829542259967708467664243885397223470950153080485032889397093311297149872907650180083277010048893196127856689291472590833227939532602728865411169363577643562663179427278172749261069486526630623912739017920951447870579138520153819193682032089568149252726149758348746430892195449617807323387250835885645061840727029441694368786608464006837051534130145668424531018859971764499292201231066851086262215341706957351766489211160427023665327547721237791180555470349170556551748745252166494160184721303547403183561059677089648224163416298711860095857580854225226827900955384197993678395601404151971049152824975202765120314501170189887072508009471598705358410500164990058595720318054591501973263153139481757065254666719446119045917976380163787372579118798177665825588068321208839967895046606070964471730974168896399656750792684124558520123400661420152557986555706995803921697969113072237965235829939102962006328659261008375883288125310843760481735489410796517499402178074450749480576557680023060281790377726305111975493922835386782531652717904061554437293237004520059864557839946002932649323164315346076372779677384659511344055607245891315805140505763921341724910625639955706911244597220037582971206286189728262109611855140777630054215670278050786842107895193331466148264225894425504020911398106692467434319311658499399863370436250768759719184790445374101488307040563319330403253123293952190107031463826663868984853039658952564389137501770117125584998814972582584286345465362677113933687255587361765002673544257170692909190772231724080030846614595821847870212783827496612110060034908035345328418803812491941343940185999830886908673740168490237613190707872789569257446530979616048355341786840967417860075064999297255678899037371551247566920687476816764876211497902055970513232396334305818845714710135016666546374613826689958108952279291306603171650559206801399585604133346404847456650264514498069388685364810669372430570753379997986789142520069145476125530035639923127046736457374068838425236825822729157551853629133284383061065875826422435464869248234134379497942346578991564035910084429713595010337884129704829234642762202143158846133458751739814035838791712759753466149896392858017313982442042938852673641973037997236262188379054338271050028577991969990733886503864066669112672270152784403533771432021527143737907609535579361942581508833332578182461834959812370641641324705125114019191490744369578670970716295372375203350558789170099190721118807369590056760289677997839312883373378403394565814512275190718097659020719361531086998830609322753281172007250596414695700149878623678524889346417538459186652840882296326114802020163598646068686509222437596804116852576576092377335397296513544595422596621216420292704002712085650558531214967428304704206942252504189413062155004923598659294445358775712876002312980989301720931397848766509836858916185106020826881034981933024452541576701967536860322810483250654488954836057902388187831158469341586125586422026022161220160896350996702618828640266143214268089809543386284543739371616008140016159619962935530932355774540288435104733783768636001999047897882686988768740140446397366031366248073327220395842648176146355276754105347670805460763773020100307642756969768719874169774085558168904750568157170522805833489600560340622105937179425767349443363743893495383533825279465766880385023039441715894407479871437558200271867465519900807730484524543090758586776899738188617904903675340455158214192972051200193350868907063847823781843386311228395259729622402648234502576487372324308819652563754339226803058845677420474391859031341036044327147521925587506186424265640121756339839631974727276894285298546638825742048504276592118593976811532277034881183511004742629025435064984247419880689513750505776443581604623618459630137274154377759398055397105369083376994163772194245846736016911198577477606849853587189861471709453533303481182827937164487335725492790559068589777705499666915291677833617828224038968995994588298248389796581190916222836198013507140415336655642942897007999507001906659453826084641765690173744763987486551273914365654664390507933454623056069202338089779181445760449220060634903344319574197301506342512028780513534215230281460972945456448395412511295802378008632314779975679470519491233977592467532943423117250027761944476034503003628590552734359003647348342717667582321958054058220029955620260118871567147768132768463777784029782743925028794903077955923046979123219567990029540758508420319422787350243100686743502350948743164663178918528004415519718744938585761782651783231966627300102062649671243804572526332598627919117765431433537295773610906846654826892226886454842905721633961109377702868421826173109254743208303649498698177094332286958978596290673767284959864031379203619265807308414471506079295920589912427826010053634362859064936599950554158616732482755461692907717647141174704506051946212348725001182725043613756530158978098169854156160094251890280510659999711618504461029524464959995365635025061983890404197039552884523719342554483277378818452538015938211262593162552369958442577436816339271008581690458545602402050144553299410790664058239261108558170601737744088406199015225933238549394883399874670343062919088862826918976216253324148932955059088653228772881654757622998537706863806300673284690126624992161696604211873986878679283449513492662475852438886653880734057962165177190519854196137994896629774840543367997701946569118855427249855487985046992234627889384604116529214481059837462524069493087068398024690786340285010768936411512011280058406580793269554300531320030524876420727388881466862928573627320018353686081708038957058756459593735158685210131840529145918928348338552109588886883764703779181041854481345569051886088760648134122937911206948324701299946118936188358101084949637953213797671288966018001986874807617487184475312016205764426128212385956389044988405302276019222850287013647536963686430008767094524139584041383145444302109888997044179472454985864541224490051873140393820209191722806606133200890464255940832248847632292982653934588825427888487738445879292631274057731822582134409656765023495462035746396489739602945053257371005584832446717548479139029190288701977543974689701451714303969131541694764462839350301092338298474755806477847516014398052058030526510188998835123455417159083540603717284722214848900499378388030207087531856724092872366135441806355399654547394434970657591570195449758026032058253611504792641191408976900085841682303837068833863671095301867813933897024132258218509604480581887530625777455713330055016498173236922748816573383801181735787611033785815102926821136279259192480579963873620033188157708195733057441552669476716218867183535626785212421570818267594821528478380491019000006362309766450936973287233705297804153743229827461491114352904328410125203808188191432186878754094999669330908739892775489864268116455003631854567723030631503682417368737907328970379049110501671412609890878966196561706608461975152975667758592098135265593784794527932232027495750743137595466702487079331423653707655169264823453688951214015476500010525331094856750083095477498579705344651851433356869468449236735981373045606405164982720613291057277783300378058025963588996207369450666742619048407720229724005868176303135145543395698744236068136101858138071152687250166230604436325475060438899254791250155944556983593737111219113157451922820302793375246554259972239830441688574166057122715235758710028331335619405597128722220663960123013773709511374205094646664289925262763492079696542696758016988415059606074095078592188722661359711691266842101730130196631814725981029601256425834189897615178658212614308258762171514766573840260267899697220969752286632879027415618156575862934447873794397985228010044660294578590314268967552434070408269277823711968985691383421506119329650588329619611891722933126722966864623296561340586118217481498551482200444752169993693572662558259970395671718739661516029528180475491739551699169093000818560754211315601005410289885848708104641898164450031920411188768200479067551847323667112711375466945313189692574677552474626433008312253499875086393993986662720842776865143426963665620716328499703328535369966050484668912861957477337405612016063316394020130563257222204871655595570712739153179528803111022111794792283740867503272203568087093178264817832053509283706069228405782342753375043719056791542500923142579470966306558266709577046850780596618271942439429887793755407854851629526124941985623495369903515155316881907039483499392793124440525731388999152068958339954995387695417434875688575751388432173373257651506819992802670076251131043113200914472247916422805596369256644482689634809066394461508797094279507762580818366581205572547256668284678106829177503100921927605251704006824775784059528587701733483302086451627720788647198616748853951515014046196584525384858160381352475148913920482232529993832005578218021556076324134013684064820461588171670366446984486949564941237115408314815301349404983843766172709590567164420561662192546589191738311601375711873725397533282684716165222982804315235245169671545958827734197719401969480931873912390901799292184384681221210641335929254770546074332714222137056423115359660383721753298184006083092729057759086867594878615610442106572085402908461212673788098166672410760353705808912232986853861772333498833601882683010814797007229360348352421409257803208037327785050128277369135400810948557830435103833500893924971547662313784021302334235444036827351266082340031462631053629693364790254543218732102828746581688044096310431144057934585390088091094368337537016413941478946024187032180076001705550566954922627093274441817311397634434978418725133994160563461978046651377084642262616916371112872397230057066598882454616316310538169657966468434688939126369671366274667325980290179451706056059251095656900295155883402337835183457158978681702354398908086189582888737198282457022867721530529738957972748030905325022178979177426389994332454850135661838705329346776576722106883132499974936529393020012072947020259490543808948610580368748355398265315092363925418428658628629613492250629349266928217783315546917053223173258679767495725802221034407159220216746529359620370055702853152403596362429674534766508759687516362776224183957124428483129433569301969815087310187883468994832067841784666502265869310333647433184085383172318088566324924334143749474438500409407035032729047044490262682576263283872263422779798280201102618903425871908923041510887005989240546342719832345309307523216637202127284884773716239436046850478390623666609995540648231558372892922745915916000855244634902498324031123834440544030172767352324436829539264869218446029330996198505610963074035189652346328176043172232819461133875319107288081347414283967833713091337821231424907134023666054526048844070098509479846813894346528816622529272256745766890336771409524048708836098613206886023090116514914712000648204834232544708166458603999223081777780793907094814656716868344901273789070788086660015642372389628641869207714059646713401839081343135744894797776555473344345122487077413315199822612751948576816726273586101347902640945613657710574286335934248760327758609323773690217174862274568232243116110189809570610667558176907346380492969690395904892351165627890706026586230628668701045553425831743582005582181266719542544415174442187783948318952686478153810642558563351525838601650717376640376658796988762267889882573498621962990634324802180668756005863296937252211709243144595128090086499738835359498335458263513871121413098587727270623338881977678872373766473448713359469934471386477959848271724546759354288963509252261144563234757757958688091671504844164639912764531877721680509130557867109278695343538727380757225240440222852237830162917559728668523593574421150257895273771195044886325372886386705375823830731301784606259539004774069473407488712315943827502519142044126038178860125973003591383985441001310342320639976510931560742135940365874205710810233837878275860734904641501453556504135087153147920314510475228058482993637662510642680557850211595182259623430377061313561122494104149548884876492261859950183672966438975866254217691578080289642952839277380376403423474775609875825980855485408920148499124247512948933076090733320304334096147182587998481858647018491671361621143109169131569746240939786215018262823176807222463702995292693858679022468008444610642169624642525363241050383122427916904980341271444604459411178632278703522136629910117497929371900551923774473808496789857612234301666849027835935388247029097582755308919457292270710455807096929911647857263957382464034195874817704482191301716956505551816753821548966053084635274544073275525835483303227606712047180406380972001220486019245433410836042198947179638087796468531940142645276632844380656202358563874221137169380409292584887175092461554463132877952763712940310010959273249152960757763459749475938318070258304256626542400794763626177746836507756358124350052532869399326455377188107252315251114970676268761546461152672482413201205903609436227716875042009229967188350572563255497150617854633077533532015449344393968924861248378233471537512704289609231683646594660768171057390015457240175670898206982980718418161173772856526868324948610997307046503131406627123576792109331656783413260273160180241096862477026062488116733146377930920362259662332125647618794750644762233913436135435972508874498083775989036676486807865452903456025027942952960620745025835285564482955120308397537675904697843408837309638987114280502691193424791925392461178426009987021122965009277248061164054664860488363194537935723765784139586970563434347418332617445413912054746689258655339087256835781048015430477643119380917799235118336429728693070145818012088221225393984940816904028490031454890424453037989545043748187172230933840492305200688888658443485390669508511617868456631825069763138510527135015548774937647985053799326414423944461814677412559531183606412844883746376994212669165428328921110881413700797076668479604761172500782946279427905229283092913650675408708172132928339552983248740796072065950933479355970189429719140100485179236537438544353096290069032673065467918571749859539623311682264475307778899057648338279389607536937651409482645836805939903953293638788417259348762862038761618049898698315786514465698277415054916522680575446007044261066964827449724712302233779116333217738484062410811784327908502503939260097499502581868493681420446989548782097336189994650912074294902542968806023014826370499312130213906605811407983150578192148959678684843506754189343632541461664503966398291577836826917873591526998115896256937236399406656273787386050957995046217152639067104110843350873326056395059509637967033624028664083800256887051422786355568150970769311844622679584934166061123562854991398106950466919224437624566536740296368989018457725352665360512754060612846654081939975866224886086800476903330770949723051893419988282436637062015595268292139499178970931230468137376819788733571293155462156314796316151009876122308275241291408410433087303857386648716174037820041927703344793980332541837756615799826339272248461036699690040516982746252438414282911512693042557786743938501032985851872632472983884319896373581452004879794622653110242234391541423759174588854890556808853104553817542838285794366180554617070576277988260731926545258508798061505846529664000046094995568787194750927148152516956921540650890224722458296306370778960401673418948913589059142023481357923659573259442337942586514486637594533556803194933391547592037689263152638827451507036353715264325148695037831500943254731127781151537679045524095523149868113470766208253527283636045096053996222957197917075021623561247959149175993821564813658967234899818611207128424510877608086037612082672699019747697692393952563871232322990072406341380057623419993836778699751419707004655490011066166322492051643152174343767336779638608900495306575400836815972704729045304348331957555690915057787772438215330361681539277080310417193304070102605424774803724415500132267708187592532388265510185542664932679272801144540924819144653634572523994476352825187752229745779700786632518578928511042470372901797900195301480590318422536032009735735944578841667175583531665547254020987067961781217564256328825559279516761060612428656849785811866859164834276231526577950090420988402175525259815294236370509923596369876801080093796376891167452172652725324888093802605481979505352776769474509333099732794477449857477589104957028876756269454777849812106639722558905305903525187477831566455414249416115407250807395662036429184351297367636491067287697339369057709255082490626273720826125226527360835771599812605526100132906151238391928642754735989942883060224796928220139192495784778081664133781117372729190369381390125287546849842691707450806551641913956983709977686164601332968633516978467320797591276137077360198340148313486293954190558397818413915866628418037606673550162778910739388917575413224220386385467785535591996597916709073337609793132219337868692994484404310496574213278704447958251981988898623621086165585931201399204969058968523404595395767712697581836108409190509169960357804589659261560468764037913126296721964926794157552705778704414974005171405624498490049986102450798216030461539093940496981112567958620436781924201763168627021571202686817495807117935452147981192484000199312729385500343785528263476231923643841466206328135619030907560607900422761893491016098441538226387199087948054306876182131453342241714591642178354072889234732673788830847678310102590222111516608215716557134267431780565869325587341003981125679023512048816188487112376518701849305814176076105607247406510322586646470835229827571499745287583193568674490469668284760735769038763241556259253895987308400734648963345322542829545287208997031806153631473603462557229125950937337391951135998977992268185424776160517700722919306457735942079231265832031058974885148373938772275676205269390717667110911191349883829373498282185505990009841542402957902921161257604397282290764754951432568062629919548051654657091312188211405798015738273996803217284592256570750579305716399315371000894741630440859181423603632664482792209694640177760722823708369945372195036175592522707885613789170832241012753217036096072910148385779915134462695271010762635373284148655119419492081580980570115232689163151660155702182847055937096534290155432810822930304908211275984085242620883553586253764085194787691221018710474597616886045777335912306593766116250721005046223223739985459025380764283162162872869693540453114230563228944872138930614893392394616520409147993913500116223682981956345426442774865166111468757261633795514866548755754797390339622264576947279991272069459037146676213246953338457456495146039396998038209144457859367885939321641286046525031767416759016592596358097488091267781529050685966348158475252479917958950316636719581180377255652447473938819601491017628108539882554506706455494981965655432742939302605212012006189932855337375462412673768117455287385988478507753023295828078889395330671061666700843405307689153093775979378245129675359021775704150117164694957615296687402237567319767281370966895636436087872280947516736909435483011075436270197788676311472232311224922675049671143538793072875656299004622391248236422226559042032795676483860650931461361706066281344811173022250772267554818082267017567030972781888760976541177917882172449215960583973109755336484360152617900310295516711204003226701452352251181978059856163405854943505203628038168881376668229544056201800468326155151552990721290120471983619103720351303330077815201788684582345095339473489686496288056135834391893576670432114466627268682563283178960193462220675306377592420907903791304437584859256485720103678357441362244602453907744738576067643807029544580843583155119618453662802152805272907086930514387515685330035942974917141617349800788943723724627147727860057553437268768484026821405992301923869418428338501043196589152506434582487136823593732504763474610805076468636236803035473366752315390538480558773321051239753505875741217895929003776067899959593703134441500395655722125889680420100618170251191485113070493448454237419374441482628219206123468095193652224683118987044357641098084670881799052401238881807839882882124940130827582946042685543739062844205306821363229064095055961028286202199825246344519084550513109960623268468075217646412888044748110339878159516514319315877312014079760841568582166701367246115680126791973401858329802588129035165836697797864304443003268778401861887718707288373574913115820513437448678724946859542159687988416984179219206210424771152275724119404315845386599893871432715727644289063728093303978644383497750131669609543154184193095819221713035281614460551305970187800974640819765384567577321871706927176770547370716573200458032184442581399288889709174876300376971352792608177352896274896370010085466520444968440320325193647585088648112644536110828847632135966821109635492995083762692674862681980028989438643073181662508339370303700199959878767952018259610372951713541959888752153890189710802636773148180864523794124257239186327954267343877004925607706968106030782715677143995944978968617328530711897849312929909246587360264897201535335646697075122087422660926838371140645582944614824008210708140311282107396274451930830488923197861727585403561123512681183604697772516009479483109575164446871486823160572128381944157447944335123418550786772375737959941196968212328896832556493876587873012343133703412080833014470926652608531315736774937742382580319753573824177408079654537125502680112646511597126668958462264874740079710803773807461249424870206590017784891092858272156178930348484280812444680689594565485568930663988041087898754221224023734344656223162615446485409689881081422521840480257765608681062690192894854582674282837109795247246496504755910507843441505043015944261224009264961694650120640150099327192536668720101800086170484666718235207150438167502181542079250838524773119132939475904179246804323533321698245704981258714061583102196977948394690108878490749610422084006348527050367257647593449945439366825742727187188667808423999291043409989890983132399727006013537391107756791964073936817057800115934779323430954886860722700321981023604927345671544622388025268962863532020105372867255557742213034398233965852443234037332456980860600222490474435797519915455975214768461349627813566049283712786767932710349112239699930191339077838264526711278377638730641114793283461252276974328091762427060376607792870309415704505148031388590603100088569414295101562756838697340770742253178311429839621256091643493415476791568427441633069946878289794748385160664493086971818077544637135618444551776233464772474613623386611154924212285335833181931420985256082008987468507857233985522100407576930069546779545707405874793530162231449765814773460897451022002885609802504376222609604949641868643873251968877952315246961162305097533228305933497311518834122376888003077923031841454354702192854253634628925505600737589040975070291892745409163283916736031838883124074189036906632005819352338063416223914070856313717098332642778240141475322687388765916856924435724644066160972621071192707154514774426957760747485301186724669194678047179000683855908353507422984085042586893012028302604268628234956185706760431890380782759985648949942308491061715581586793986017193013953176056082627442980134269688747291727508490205218014200962239713383897890139800687363549987454746882790674821783174287424680198325751448203180807914057535823985259914482873914238219458109146039929137600931053828294992359172218480879367104572371903732698382918064335089729799463557277395104990856983378904191274949529529982848006782676509526793357737961146219244140050731964434345587569056391779581859199869014076441852061738878951651148922196687354073753966319238322739571866379989154287721818860238097151663359547488785966657385306166211336505773566606500182847398756751073477926611510172853081497073907690441583971521812674179460009206132291666336669996333296117924450218957282997399907989176800601192916653374369054791865928064496275533008475982140647712354710771177365169426819835998010794664281372673105220686405234283940615049497932982125514722860753072934045304506181575385334237655533846434951926193417409076975824348124603862656247928363213973429142254323818474113258321508179637439077500306102924245623043342206807684222059157968957891429237192253663525321678817425170593494097151947739019012344097188288971400217273313074050302549434638785030634293931705845330823125063301709244454599578265302366818912040023936834674472000705357926022144346667079844183788189035939066875130681607085648039410121765397107099719478954135878970481449215702890126828576998339054171318510535500291404310417138371105024510898936903258507243765204312997886726470712917080996308020822247113267219061862463629393373899559725409670445147074278273682532843871559355292298493299212273732308873187026967391098934356084372629372730470524625093511992580822965257558077539832354421208280850835354152959982465824819721000385867305171283735349819132978459657945561738268854404641663817819054031373062893110133955536881214106064485664022669739588388076773064049906557056560312500081815718180978242779494581536570920019712553983017018797702553954187500383785687362580312515052007479302595860615154906225710013074223083629666876545095321652370178558374572036663062086444564637596228705141977854589675699407056418310553018979070945575627500752397136858691309189468478510518257502806592082465768753907328920338980528206471780336678919196982540284008494989947843178558880964557225134328080095911311134504553553717033007105210560524088046170420431766912295824865524426557186727190723335045636256210638051573613539592217579443265475543983928429782466607685613575989069161332843488532862720384886801829664474613573409496136901366130855753646127552461256605654985923603896760320288675615773873821362734367380714788560334494617871579600037188852234692527154589470338523815516809246000384728480120027330357242330646745072228907083716919325798870606641672800575601738623837880196687506334119404275729769329225756998523005612195130379481814925131767616264382278998245938405300574290644820650864860402197590005891514509143536570378647504627287782862262463004029756850514746291302185157728590504896446168452641616654520322273884885994315811598441120631118761129135799347610053769263851237233003913161783013470691385628359990867768385314281558126279512867094774816851766388499685447907411443410613687086800152174947192584297494986354795686004492923404026837311304956301299026885009050391891200129285483673259141148745190984958245446494894526913625866402664461587833237466709957145404852829327413652020881472080688800522812168103224333908156232541049820772110763184931658779635724137017756503759407008748866865080817052208165100954935547703705524810561359397058708650113259000636680864080641218155940197808806820725061307407772712062186774889872173686626296819830839269502371224704038608335547523942507498278109138840781684333181950829994266897699120004284465326204419123222227510210580699832907368511754073019045435819720350842454029804461877126234821500371047832966179948374140580865940775860171006535067924895396784466618037971264696969033670813574857776850849083036671072386437041817018561879157464070816524926236599618412331959561292320172744546652229800580905046716701158490828664332212316635069344940243966108235027251470045752725563118407701457968643679542801969473144147900048767651565265764936003712422677956941479588211334967169949075884639340975516638586228982796192938999362207400566469603882286101715643319438234537301638990713027737568191718287603965693878136188308072774861320430547867823823143768733392603546366446018269766631719161931194406709693283347237651929487872940309524910605089856970607261460386790817115832433919271747779691321270444508064490722280727476584199342087745751627952710473832305292689041699449010603906626029533014718614054828687923810580548192079213335165835334823568559870290485990826629033763678707840855021768021115359826718723410413368898181005476764508622597128389194764238901930368832018054896043886643180672883419201913744528026207425774546348122277290948269802697365606888426968885322725910847606061220250992897755621235844163910599226326714900635346209883986044021426954891431758709126977369866247746423345383998423341128415221219955084492937191837603186412163000110196451164887274383038386610444993362838002174106171620998139019305773921672328260289609454429533943466964757517658414399962073724927319228933872045909092647490643325903987793835355386029566802624610454020297999579155291459721095648692796969335189921637378325836691235089552977833825777181501829223936780760530243846443478769411931204221716136468878017163918236621432681999515074427071057538707764650971262836026775360829506703482474290880408344761418818642904721638295477914448926877076611372750344420938951625970487108176456981724224441893910841680453567885160290753056155236169302858914973348020561028074331888913669772098466177401540753536013144186570271185285358067990232241821965864145521161791723073771591973478588783247108716488890135668829784207622781535205727378406607380614655244927976679396007838128525525034643240607401827913188681747216625629956170119395557384927804454224981758420202122704500679611384145674862202072279420369851375419365257175507686155986856709153109941394583788450822079824588587540467669162244989552703061001125022613390427963417734837192295614848775084430418734110946093923915484094046552472458830125477756227886787806725964857936828455317414322037548159639287848229431133273641828828225349785909675128819939627546406497485638290691127541569452061271667016957728734177787335037673465497881003898535317156650579648114577572267671872193027795166781464627897103816913833818551044198313341161731960535038565587446863051247498668057679880767663358941493421143428187264044176090463310104139506139709765296286399196998867698372718407161574729307735985485627881344148797733474373501311692256951709024377478299900316231876711497768388859789029420044864525017125690386149254831888831053227526545432161091920825073356689694050120766097388913359365181134833598060479490590879598692228444762353548492004469869387702878127125838806369550297515873827174468649416691471625514592420220060358623291797785273872870378508152149248953542417332693395134694805587305879699140881619268273132619838348328814757875982562933774412674067026281239860438883153002567035239500725970294894774726775487134621206224572273527425314421083950159684495120783580589478322854184702828473476244002511328341463442196576125486176970892243188533448082671257099829901335038276144722852334089120183094641643855225216490035485969428441645936393218326792655106983181423950785477353391705323031385056181330557388158005061252910955925208445870067744823837489121167205075558198286025034289026383403073992352090100749172081690252484272862801833134513280712097650926536662563714230532082211458216547399707670410926475800303698284655128082337463614873289593299268248627813411813829948689428627850621664967225916709569345769367634850013559104964033497400433922869833087995512488417414064472547020524086909620588340460973883617046449379970184421813093330312170813154689505456416994855082730082517509307390404334471391730125064654502153841818179728803279210867853206575747478321100281909035871513470374568569424111283871480195309498828314223407155426906832111816524825687135923452326119710812869946209307649012235936728686001265739393710429931935937176410423313238992614190737616470026589324655752183907860946429745631149980053679130941708412016004177064288555320245832665823766418246304936470248196832018591480683285436741531595337044131538550475596479054772546205732964655475448837676490840251255704676860235815651249478486516509154509475855174764600309609230984309810148368904338483653170153739483630781335841165782937736111252424929670429794068239858581514352875268264329068304892520856615682929548971416742194122837881745657021666869112853518180977853475568772243402663650016619863832648093597396687209569026534340232064324602570948769204950014426972478713239498491434318101051623053473920318930461322857387324643784770209534758762663640372115738064942218423268504340519546801858403280182124162183060289580648457643170835576396453315505819613689436673752420212713188192892442645413603002335009559615238545314798436375706184537380967902608361090591187565600481168721921406824785029751587902287473321281516036451340377786351291207221998952542882362244244800867198498095657202733291710359814087457232034587422658089251239092024053582200633045832872450172579159800987014769413159740946405450459256905097655439802542009096442358082996375426802230920430922373855557826143685700586336823087958893389473690874885371547818393231101417546097787748749552353251386077792623668920992728071916797516704766842605822821740240443013569150112428232725887488674528464470617615248394677117459220233864672271914622538929857578869223531688473624655052063101251898636970919326991327531200098131041138878118924016429851203893882826450814326556988960404358880137593463309039909521895314816409588558995497442774651409148426305587152333368234678374892179315397381306021499099805687077572152784750234221273307597746632075308596547257019209438526112313999066509534482862323515925582906045207008738071647253810390594640133510684274027006759967423437528695799530532281819866665414623377080376475932064365134699972941974374619426534264128450771987016122508945610702762907086723112896332467383478963653227391458478450867693441292207501883227238103216282766501958667400105457082132130460050797514621115132916951810800741320237650110945550988286888926429957631342487903032873151758360338554649482837840705887827994600869659783906366982012003533680630204248531437689411943429815969183695034911162785475465208126933981303483870840426136604096273929116307854867923424115770120126300450320955912083307064520878661744315939847093812930365007096971322083595283300477250956717897766601664660581223915867508700698044357102301109938082191718842579788073646670145194277932480203465557726859503333758643670339076354383700495612349028060366140643011497002631892375837230210362892204674304442096847699848979047320325626394320270831776416827626836331893076030647189866243644690125200507737398492149688391673158121169107101308556872354692058431190815015688696761628590751269386757991505448957133337690612488120271583334504223773908138186061765090382223939234117258392667532779909179626848234507313944146253240241350285812787678560812961930266412987868441527120137439221475868263949042630510711116932316752549755202026616150570514151286316938444730374655169415693968475349979311546297273469933404648553813804831986423236259551591918404089819605719204758348669117021018510555205363803179780085457172586519111584443515277891988870157022983148960010381087838399176334680175599850819373564119341841106943755840003027070583956211048183579199510169141428466936101959017462801326991064623167877267770747824749267478569775991690029534826726028217148297541991209054185011294872367910583879859524703437490924542976909754790527301980994501210241887296102095191303730041003818107938505376409799516612331129969042065374831918304522108636271796918382999832673079766563971984334443674171571207901407770150932353444431988419880248544874281978788616597547350289822376523123961306449845893698696826090585123855472321387432051769517736753661204635338226136902697065511702922980455101969353137463497592728193371856574260379544766345073367142538270355529569544448664706087295791768276084227089405821237410713978903355885278745207303658090509741563373610552100586315696073246962901112922500723575794098787205306286435748159570387457878681941215874469170266578475883988575884947327085814956188972958427696674999684062193105917064804101034703586304316593690052865921666542205870291782282035362864582410993454793596135517403110039765283980560412074428805628821877998993844198697545233620057061443475454864149316615932417012109134644374213388615072422500993495039706605888683056338092947592701184959107932848547519038491265640670365121973083993983775302213921112016963172623245288254491422012093579890260321617310194270537817757442217217456942879735058741293995927782276170520057071216901665270429909269796291058822012673586677012159580179450621028197708508100641194194053007944570403569421562868555053052369388168942728646383187543920062791117400386867684740044679220327808124245369591584023256300504776636275369116387048736614217764934062179751311340624927609575702816574338640382762915112539970402458654242978957807653942296271766641164092620924518673094001145332432190952487537359499503250967100004869930949517232911106188320613072839549499157938789412186075138345664096115154341068144142919822104617116115053929805741377246021699940449780599457639361490668478944241167147718632324225818139495100778423485831998713956569502359001628383942140764442815975920832461624716431093500311298678498640519399534897211500958404653099339953565312002411244988763090152039690072286468996046952310643184771307258302163412632984825687823233993927941111759487785982438010947813137239886109235039914705899347832297890454134724680925925473281835299367673112994396342416901882646414225515070549877978605704588967253855651715876088985479387119797420873086553637648491477496517555792902090263422038478551251842472619315784312918010276516674671413483298351216612688347723044254990315506636273305353327417810736263991061714116690442036619951360253410797446418107077329771700206318717111852206616561033635951095288158731481167821060407952696187529212586965872905333806434800466978077804740421594480145479879702333944945070850617273089256998480015760418290026447454369743012387481642829071634054805561869886770333345343226095005667873445364409536600089813060437950225905547624530619582350142405655375007933277278737590769488572947969750019460175327355711455324921958862207332820449429557701674776129993682150435809278784148102449275404374665522929707061496854178389267450416171144951149859671628399706667768967537573623970093513175636324343902672448772785097504255420552718050935458378180923468986333854032054523918435170858431186374656975246576757105725080335701876679629690437315347833926654031451593766095312903212547705547979371328037566151218433565503504419293082848826927922893744107122163009694426946769678813142647194151789475444292194136013581742076376176925587739427450944835606568846971979290805670967826575662542961651888532317405459396719164711512508187431663588110427315060633844275386645407590922238237214624089386737316214610561797098162653551586034073387145062424286421643260041994676161045582817647244828945651641265933134841261950955021622834938171921034762252847395678739770407142688049658255150011888749945422239030876206930869493124274635695693342569839374491625993930420748545797789182540760132617638228974799618230074552264025404964698331006279743228453533551341646836101223369495035846980467065271000236173640304092131086864120736905251499381698065054754064815817517600600015098218537738204866803991448568536852303474848257769211170852691032107895963084607744484774095558926671476564138267354559121100087608786622724695222356253095261417559514006726147851421534381838747458930487523461666214706755250583180377062627009746299420595737443185522357994699791622320550004257384255739912788299514038717095210886414973124456692726673156158555623604160195900493618223411873300467165561454838919987711859346878960471212765923264237472201722829118452973073389732935091474135323506121507327561151246626634635607556609633502294811029934621200773372086721221179304833640553467405281859491238616086391357244546934692440635541820416341655734361899700752469348352197247166691364421034325784123260374081243152369228028198247937365549129424147301337777412714764616683972715916554472181931984296396657013631062025457875971770477348560136915332569815332041482162434952475755828202509904139180072589964366427294986906355099808699759259184187631209963301544542829472418932531252915272057131395611141142625485411249798093745119651521793100818892759493717691871354042890614684647199543718569545714627483039947936970161013169488110434947448783802289144207725802109679598623716590168624472275837444260971683174346267579646405011034474409621261705555400062417438808997807553212790526616617443267593002938121735181448911804219618491754627334957984455312597628592083648719756345445138732033472365257941958730945994557180900622520177794905636062908785463587577781939494116318088844736322811245237542671074883386756477722743771290178059180403101103167309112730298420705335549821109227983892682455130041225086493942424828530485784283434656070983257283641908189504385580835593210226712018918414773542684965103489894434997651431046127756946118088904608315562245408903287739721726918374592917903601784859967009305577169792959172296437190791983996778917017083767050745335019809438114218673194265396939915540302403142532560352042243410407505601711068141820470196717067734650764845345232031436418032153227983883829156224819220617567692687782020036057615860197911518143329075063872047305278051199905620237479784006675177525888944948269767178324368089275430729626398234547336468008042844854901611231321358120306653012643426129264509094275951126782339951624918157341641097695788757045223132050316604487732455404352756782374676521720005781071127810291347916045382014499558440092965454763850135886170271228382010561934853803759901252675311123579958285491771878971133303968711752436677037777207616046558931687689605140063440606763404153458426253462699420241926367817390155276558684764822457954216575363564641651217428671727926570716930048266905953464651144407531987847545610726683735142457893516304270198074433243177173623035117731425240297736502619770748609442329705067587241030126313224631989598211925695068186929794562816819189813414500594535975390450285818015851754156051147909552215538284543357929290812359493390446844993086132309570289442203536792869395261423985663754386400982408833514780710654707627521225406064428064939017796520670858638046680897610052902932884382443837538775365395482788054167958045346532075890304751088297019467526494468910146086951787291733143550911842047772664124897319748811945340333218987576464026370470072371821010858003808987523873070090673301978136854662522316790851174070520179662294950972786895568649660939564308622732911040068007442328212242697191307884760511459235309713289962477215125843579004083866278016000033366269921255240266488353031547849096894860827471951199548781074671057093825380209422507584115959034294081329562359046972042719460579336439945909680205057796668338545039124317977415047261074049765320860466386481096458557374030276735427204879556916710019074085790661420744106828456836295510138578857637141073512926392975012695994157221122278005862917759997820373015802763219578843755180686101053779935693532651031299122464320912049721368645238014507750151350850064582336034197221579918976796596916388471447254601236379352356404512874883341520205902693382236253154757996353017360465672538207409229548692781813268584108278083622440954706151147189448097928584861018082231957480096771452799763863846236693766249464586800228070219520261127898684687927436153179085081316455346805411693639120977294086998853818842491524093881210165039761295683773330546762453646137413038843155000653566007882621540573028380663019120234657596185277239095662471317984527117388503889863209041432825539788000663612120352373158801708721172388228039184720720248911868800850114259810375554388426222655999466956188146226809636808194854730267669600050424342877106264164624266506114951477318039561044988888474888204594082145234275542465363447834569770231813260623780913167846512107534177622706111853024383758947131529086313623199681495498290707641419592760432986669204930631523236577941963825186618276101086257039584305928273724765730876148266580783263532856427708811027906179110064655763378604592445682716427957807399684905907103586903441419054525265664164292565072497717094123287154643808193762727302447632302442670518106887394688057278376455654965813213131783338311869468226307095166568009482481210381335151450869865431548454383145686296979913389613171788689110337874896586475386560346413470779206234763254438173849337253670480907469592583413420519657045120285913434387718870999536236712652548178616741324259414556264365999147255257707013728679192925902193620195789299053579305849918044636500037975196490970134859531269140450778086277378611268259847278829488386114241695772476345696590356439407321657212075979045542999035538573843168328042386025032544826845750067966490251328629587311390061541006534647174747448533878966289182729237506724694972173640832953970995178310721122239832528242215108124100569197921154164361611088229036285950714087868240107183058365989456288017571164930295312539719427237514064466654953232652491195427497534386053878597223517844411518535738526350912677340868884963198729312450752390812577782124604946333624282453910906857695480673211083864539695482316969644465604370162353051292131005145107413402640811870943712818650862639247894940129060411445178949590173973873388426357674805074238266278853559048823488393263844026450057895679320893639778501257871654182481864910457285889579861839053231797942582205110325533246220370476336991594245937323159161399589570247537977254048117721922988316776895503691985055694348432714553399789892980424660580910779369835218334841689409425317638821632664338092779719681426619692856449572441487644264906353718209008191799526730847039786442972971520437916641415011388934414741211065314649678932365177318091672063642409453455745869474287568352138898081772430825574801794259717518986549358196365596653464374634500756738161900845034407495739076901008673937986551599092243157332795636736369997690178944566898004220845813291285140421166569484365278288235868618864570506320597313847018336475152397419144070819535162568994048504269869704009194378050579037773730974835567860724036490544877386893053901267702548071281791189307475895159449659374613617869557017891815369530058375196997539019715446338902078446336007786869152796566039964673798217033185521131447776573059336247787314691146296131231289246334919118052593902552154436591353434755515128970231369372096144789357386971160112413531601780201570042121102716947208712177823886697244576972516474756350750087645447581877581405349520381467464661238924864365032709836063619440526983155621018525607794616604486973153585270815561484151881050894925926520168041121694385644600443616626036271762815950810601781894561753978964373784419766165972414534418643000111333151034613132886793050984230574697909287681582341722976285650599919734779852032853465942703954071390040653821183470619845930930122871391567889379228513568126224217422228579937701835411887454891669746851744832009943346113277171869485967908727618032772847476987604957955113558837985028531306348118585563120540600639947134187923541698620901441167122063900915547677954715921001665435539703941510052634805068929315552258898068533297534017162701452462875550182991931836879190532169027418166398282939614409245486336206603978254764698368097149164277873492371138362206413674601436468759124890709282445232084263752079159776519327884061429980644767405174766313370507820018940321660187879537381496786489928147357619981301876930430071004985769624998182851511380329638428397425939320090757718822821835772061965160156390358896621991781610489720745280343028002894878469583408733664186629508983403238191929638510307394445854249292847565537333180468725994915856011726272251581710847873348133275907906410906680658463734925526136912894832690101543805396349065258885701669422422835420415744681750588918112162711384314611215585037211195052396724100551428359721618104246262546476288325245403443555130766945272408613915331330332475434088619591404536134721046100738237229497035136820020178948149286625170376340036513023377758778393479826317668401356888423029911291099348159658989603024041425587623039405645206526586137355842818935446793693976548713467125215758518888793823334523137488796329424833312607337854454394593743477853656812106316186475527352123489665221138108724542512423559246009436916201191334716489148117612554793057389661459488675130635900600182947607132425287370584522494332454287691684986703998929342394132482685092327791032825740700225227666122187985805081051142058274080479995547847807642777621436025685181332425286657070305409716353701940793520720506635824348417873697502895272184943238331545965424236387156194354632202253999346391714870033933905850200857551785383134079773493192767035883914561616748687714476299623513576415644319832992778145372076169678761101405485768108649650269716158717148554316211383762506965656589161656756283020808939035577872357576085124029773755814303342220011516326483152982752322805807908824223278319586876268231019773049455950119518363460428092592752536582744404488347469352292511844265143936870762752986003942373506175168408408568534451148139280182792967643570355209473981545119422267800929887349088926820978889961893627315817289643894842636299448258228442853047150389635949085813102626221417710392150770439353235278025554645761173819588174537442426445230678805082746385692494048477443112390317460272894377979478891407011984047912616063781991730109315917561537600938042169536343474347306029998078697663558688728967706586107601400352659921703574356532194185098075266863422624334369506224418542922600026546001270717210066000821023170263030395234884574312128335612099286540609296412672240122434699608890228862719993473577027350679938365135437170226676857165019067096624669868474331814060133102032224682520869097264663579913192158252817692511291103727364920512607769880238320520963638329211427709438395082586549065015962139883839402176324809756165079832422699545388861914789384045416008809626713023844293561370001454470087671586182996762981699128018781417641113496204356133129153836634343582046098572000372226288837784309393185608311381436384597571534044724299048722970288153358586281479352597071955078930284267675502460432159664494896946017987607749950493417460711480504436446351640675977035672382921935775835245072361874044615161935525150321735560096242875296514038068985219811514055349427844890047095364720680462031896118867789178987213699806872417196458340104542528234419281602060347042267937299359661672934648255528346524217221258504575712405579206038124981983003071762701330981581587522110901282316464621989547416032074012484313348367588024175842078636306928944281850846465422031845529503055554581265134674246936423304398944189463984874439054661854675433205964049120158211238570644303086525788341538452989401719253654932039464245237502169242355039509369983119801011397001007985701647576138142564418660740664481273764263308592163949403843570822789979856240520686316805583616153500592627099767003181015942187627116230174563521163752677591251098152258494984881977078810904712902467416744825448847670681151986301979034110712160719659933196142316574569988578896001701796372316875988631133571726462113716451345585946057212834045169401470354196628774746871368594765745865122202675257544883511951252957092980420912593623404523407354032333755607612562609693426291038494756980866373369573070510312140402003361273918265487241524179186876325796367982743806748998881409949226410242895944587643254213962767667786263645072243893941150255456067002820076661523331176800279036021980248863925300368771780983711295347230256072429703379166569527226388203673430503883482940196034978984623964315007982432045633124891202785133976546591216205097202808015157901547032624601564404844438766281862028091182750036370134429271123094299577554889313602627123162462953877103469360548765715645806930252450562009815989362210461993630734365471975325546515648775689628242297122667558184670172460207332484533152556996909093088064944648963217074623585477810842064153509072939991063263161136272185634679803115699479995433388090662399416756420767640544367583220316777400812083231280493212231351089677786433130435001405422140547188953343178885629749582229688009798223115612728604123169375343710223618284214793525875717309048276189470329349648827614638199092037271322575120581871301322073503727708726618021841546364167322368600729595898037954691178232825664358474777636240134511999601284459748067189661836167430283295420385531842650150517371613132841515372684101744274504641983360472490126141814013393676286755302725049280595429493597958519864616993335899479865106521220400268455655851544353789343361814162315402421971277545658127577779853692609220169165260392068626056065054146220244342255662471947221943346453954528071773322934013234301052562838353213211502903572936747302733843220414994003189621168680167537078954658448003342058476958405964911277830655035846378641906234143432514877137978180869244652525749408920211235298701885091057476945025799340423370796252170884863892585436700113482976252224333653349212795908260946031291166412942421968009177854258344138062997505476159900079047915266845363246711248637046306321175469253019676884506566762772122124082667635523154205967769995265448713521300680093421484910350578429431227803486410449568985301948665357725072742352465092955487572323859281950923840454860634024487783703001835421503254211224755381904917983817667159187113820046621094665642816370749242530329248572542531429832136936585092217503986288127771601780538910303899306642035531537965545907038540576309414625731455076687230266776214123054006945726398175199184867324118461676916055687472618405996903175343541919464700903858208749887640107379251282798725270396754530746491673883503519063335099870066814529631186392019036977765638090567232538450833374799604699829847276942209624442524715777245007421701407940625441934723683360491556369568944205756673290305352635235424439984111146590760688648830046881956799404827157658806262424108501191899229122280203842817774813601033168363465341144876416978325398078392985775502141243797274437223077615880942212941499644744575552827088315455043827245581414194386877885206485808921884164159377459380859475025150753950898557315277144756381310892645435913302813923059268183767954557568113073459908166046166437569553338256416659836206215323522667593436103872055054629805051870342995396589261157320810999631789781449593638119482521406885064235973236222038194154648033841377261899071242726567799339891158415223897898597131132814609458573003764629123868173087657619482921874402628265588062326816072977871669535371419127242069548766348837427084416935522932767579451364407140186442913878722296648271359042938054052502626196007765938248069590600372439632885293441291833675766497421847049011141929482175002527371842528394806209157117258694958431262180620022880555914802515755912377389458547797292454353595403119381846331877956630337575105583435936624585796531139029482465053050943724924112057440399586420776693415352620374491435995926301317531850559436792677722516425894593859140194703649125595722897646718330397017441498928348230406754322497006352279987913987493010039061460147529459602267701889110324164376183432563488230999818084806483853934289478476687926161126235056358782936704369994504107349122812767760677682822121194887955152088350861164484715954989563867646120301313171178457330134140294160951272434828195475779270999895751816614308411184015333339609928028512940960600162245972069382195863395259316459516406089953188557317067060142139659461933228123528640107712669034892525925705181623505744205354197135719668004983267933289745445604690446040832370256138639608502360799324154792071675817539394485983684888973134509472947617970785743469083335312669806770360730639510071734041494349394023056957603926727019888275365320984783374174357437417919892971951333438781246267945687531746615761235217898350378992587585266132964370700829908096082461335126576436721448607497960764083298802728210296191325283805942678072353157337553539545467805096977618231591442891527050117684731427881211968895876358538808817804378380895060846219076569319783265941314159619635637855487006817279587106616773331096934515887666844826951982500739493666156241485754273519110131499300312801047961701658256632221524888231974597857091665102001580276505068982878476588352595200184877401770724805082275323414528208243055679581515523547465882233549765903003655158444787723201708408622567190377995476940228211746427314835487248928720575817286925473535428117264264443322996811824106455299113244014683118327459430342286401022480224247472378968196398029018810765013469069625045152317334578977709860062529983405856713274408877101279898011500919741707761854522792443770027108122580404503645208426583855245420223389325183549283683302828380572515306354472340254364968403250105630525709800758314795815867638789221514711684904013452289012368967028883651281788063407031925947974376896209246789553425891481347614538045197482260163502252892212987241637510883666853958997051514567127525985471503402629441631199241097345362202443027174223046351371538856106447005031209575278264159003559875653417053119569826404000023426926570483993182046664913688332389794782313663432174685175150284078320823391165034719530289410639427926699940644116666390004979118214166568845827797536766435064221064584096602248728285874874839498701413764690422615576082851587100131443741997580793115986588835938473175964270650354609713005992352822626979765786253900195197654326104285379102683264093917990488437920938710816454714722515110926087449443291489850575252938574551211837760028786919648045903209684757144247693732952984126155121524796215063453669622446154001421234143816120082047185999129560539672142822023806397583501872701524197308377448586164530803040236306156165625724156025416379369461592440741433983112758721336302967421571399128625117024702317667781080427264189532432206542368503653111604361253946750089623112502179431858106457865919232130518292092989010928285355539373226472519475492657995236440847920109671342869069971039479052198584710795247422209956514349312299221208280666865323815186802601677064706802912223977838669022409041620598149834103272753790677741851980471780835684372823982450623037326423650154684993952903760070878459561226007118610545261753303658358083446933421307388539889910730384264837249255572048498541905180858122100142131359173993614315522549191727092784229638834141148832987388903486258773685590421280340406837063399345898818791038285251805065476476530075575478588478785822493764519671823434154887406000808700224584017121271308004476905365273779234167236022652744299709836178132753937381478060338246932505340765084885997728612567949503538320487980927449412485764040223059164021472713268636782472623009202994906113832475627410197597688094361504345922726194135325788948834431575245466545462328543229960583777801046088251607512985218880173093888470203229244566515823521431864851142846804549270159310581424669840021108905551089182284573545563050226026986743858935546831255663644582332145141436879452164499556165120883275466257248472564598866178840378924427211276968914014666815362961037234450702652329987022352942861820505666642649457344806629197599685795718533482084384173125947553238655931080216624866414091916196253449328339037713610651757679370812061309277003477979369392060042203166195678532634874338355006785797855165131521623066384870918610527896160078593178706930679168508355386608696592650326549389300072276431485744883884496160210847379510892699404631921475197314097829787793400367012799830530049851418482528013985087342276135760259849982089781902881232840572568928664673560024439462893783986109585665119011638909998806177053767910450223680840730364929806529827833978634091836583882731007865847002333462470018940719445517805861938482401131247232994053841208682330932548059561529590131683192319030521617304519900477771248542941974498897597310204247669842473181091279459396243184720776748208483760372922120741612931402421911192872108978294388951592388682850525006898475092837985427354270228316960304901299383576338373161642369462321264529918938227915634670082969961660369771957098183375136214395239732144817703153855395743573871700162347912971239880524340692960609540162152955113706916537572009135468318713841070797743943530874758652688775788509290986437925757232111143601521136270515471565404436469461792801012832317668613408044947517936011716909105551822903384102302994101716983345136272595243969390908107259422085866579690782822197229572556519317063885617309965230456586035513415872095271045383024988092272435450509897860045202530891222215182830749804811629467147844445374572729111485721294186036367262208926486330103749149219775864571548963617814125932780344100932684046203903668866413722893409087413420471329341754296894587039409222834170317968085327681923365134770781986939334657296256741811422757247358266668392259995465124834332874827246003800425146197969765028741755158426842765995001816707958768081281182145974745035295562314109112820517559820939251968187972348074489693647940847489860898719729333457154476040321072718789752637938884929669593351737836167630073142322669612330635561565891296353920066203612066893022443281704554413598699427970681039632144677058027493496622459833500952930803233631079901359163869274157733809019023896215969247727473702756140374802155585135162744749449252507106259460139165132706683713815611263215690070539134837988029626203993781362266284494525734664517176028549037607781315258249666741106093978069324648618642478674974526276614818058538713299497784868723805417445382120139139550810934103269991658934141691734463761585085623290319542946414857614141645804352483074568073771731274321611757190771080717018480114068014033502626477194780699916979842233158939058083389706934932529838491115758567207436505378130605339831596314104424529068751317997048990653568548926951286659946829691413340663826076434851303115683671878366810578759056454336759681958766600325222216663203105329505077718847550589880301913029823821334173281303350710835502401040777728605497279643142479506205672797793931962997046614890302483268092123569365400416629261107370862384196178845490996235192483671085424606884017072161981393047118900961180064625617481059718388376849598239056555629058940449571421001394554033087182647106962562308478698338621360932932682567852044472178546008021832568632132727093613553442247980192446838436921172760569857495521647062392857556351195971990308840151447822476539338511707464791858815480887754503605250006753255381793309816879346063760217934701454419819767455040716947011679583653846093613015871848675981485537902635346742757075909260564596134939326111433207206144628616841687096829690786343848642125723091140555730149441301621168255087832206058692925746690927347376755730923154593200768548046020078070518798741637549535158405327015675582396143994180140180812203675150136668690078840342682972332714464076875899495298650659653279298006412902004443223898274918880467467038111790012259479538545346559872693911869162520916719473718958810366245192943527830598304083635933420758262584000498789845454206384634458872123738813694548392509296879023710282825139422573631289539690393629029668832275931719766428212044368046493286231678665063027476903708756337276808162971139832982056709821948088350138168237499952680434096289746531209777042901865593306660792052061588866605936442196082476952412887985702724494766029408964036774998324930001187268273490774383877644153238788353590621350083636402457172860357839370374468122529131277105466977343273851979704269898223305765550074487965285625042697399156924086055040786894042534698383063879509765074622794288542881149929852641922294186519758756166181914020627052319174130595767540336211992439198721962173859834127191066253016691617857843247211138033009223857243259980779401558132047573640248614686902016218543702303380559224167601575888658944788407326058465143786745033464162621962671215601715519716178489684515024184638134050329854906592618061341937680174288286803490844755540874389005673905971717142744792659034391360842601104194291472486441306506546238455402066583609525577914445994318888790272921084062945766486405661658972396689292877423226372163108552931368570010237011050559692734881851794020081460416379957553440907487644394356847782374512702605018802508060759122373891733876599599983377988179444532300033007329807892128570630839199255466489173181002735704071370569554534951214473268583344888486299745509500039378306346841644502965319708469307507943485302504689057171275170260602632468175137973602725416334939206350838967531677205612456309481218613914473047444440331965667014013891782918074830385641063006728671642624511463021685923359523858922404658208773303498337186521267685830105777735564404255067082771933547298534384633949179923016386934966845810821023026021524081157808262251733510730006216447013802611656646644892832423766351497246295338075024061743265390141216712814058919510868389944558388578984985461687926075306121204636411135153407390393694306157540456179751487712815329165217496789488002320542838999423026784006987921809929646088324808244457736850466722805993300984514737020015948011384431445784379123246009108948518449185251782468233982245612569911649278887116206470614365494774330349743015731562068369875979120538190087391248966710286536635919326387534460035603853868665314036959147720289810703545835211252402304148680005454925127049003969448456745051906798298121499341609934852629454906914195942585872010122779558961487764734669358695691092226726637951361407483250538889481951001392892681466249235127489453933212555212589985226773133876024261943117453458462063335459519328308290175122142690563660524197860779276393933634540856728174636074130069346313560474787494631301967847635503407635321394882447567205036042783520826170894101131124783974006820349101919495496633558483606020924985920359621097223596655022677688287772990126083644571176839593424208477349586452968774429095204620712909618837166029395242729643495707053469116421142855271939387971381966387082268974077846833906138352691466130090045546223073238029995409576473638142003596787238642487857461189701260498252666099828609852062784451072570837675164366861445072194505462353422900804451068062423327673089669671924698590174173479968125947081466158227743279403736367105943881058755039156840721849192230585272863033051938553316100738622619392865750892104393286622449662491090973886528131352985285599686240888576766861180165741892511300336719288205189704877390531172730555428997708927951024373582556052686030526058202508616781811692724469526471700093344431091819275150903519624973253969270097481285103984523490596382810565351883326661704984634468945573753529456131905605845411055970810797479135778355333653409689244718366772349695621606022301685736849094380216411877629330065375319694824690254990701050009175865367670833469004255057151126754796591751502285691601263325880058446581475763697752153410444897958531868587700602746530264400446487560745674369793235694018336798300204105298705370211315974930847862419464430982919042615924464118886831556542855654750124320514576316821947641526443402016573414677384850206655713061521874371673486099869218139490948536485513932085377620193163835951620786351515019402058305961718412606614823237986284734264724191171904398951452368193898039754286377879207005940669877354258761632354061258142893306796221231539739110377013626481884277510679186849907673969838325112141310819325090001371197606474386449358198957402454623843455753701763662531563240346354751801041242380714280699561000637017162207267824490179074602832953668885487107210560017195934581827133261799404122363393001369514184220734225647850189484404927079112499145934145416997693105127924111176386432597575810806272421376209259853680132144222695844665190816067732686234322773063949431944418415448622399971433072708100227969239683739699061482252040973860463341805187814051531975508875840097408338244579580867276551862985844626487211989646686178194876122763969053804608754908524496566320469151961919844308334161774617307453481824140708966724226572816582035687203342124769798326297830809760472051016063375014096707829399532546443345189862226891197430194691620949076191399631125809153734322785418451938719721289563511787649541957908093428023660182862964914310625805837494977375993708103495871939703504926750344989983882602159624163359480527409901933811011861417557129896407171223046114513456918854876358395097627918278373533116808799069413063461657406861468206121374276676575415325222569141383274990221682952035686755201192452674092420911912131532741025576756994469210975188856188823609748435827641824028772335762210525009762347085811865370079687464257232422853781764092047129729995174022094733582935203473802581481569850664630062518388002042703177215533655860695763691541395841921530141036712418539714426019042082458418882210375001074791377359786913583217917899108511321373482711154495321188498971141871675566426252197498116994455594698971514115334202866011899550087603599582865732683706221427056183764897314371891924704166171535018938953623486712626761303951478024652309657765799682845454347492880435082982697644716580003012232007461317640373796853636284122985327407428332812975172994714409838915723718678501042515209462180658001106714774621285714888832508206152189713937617771052441278880776376264872335486480584362519630069891375501644648160674230013924354639833072295547731571124505946522581793357394011620900794488227976352786637854463704149719875917368681693170788785809505845954888530172485871038575127508927612145376333051550212073768195370612204246194266966665278164812651998600912883320293949610964492939948799558393125113217761636719613948799070953576492231784324173791362457205169725682607544202642258571857359689380143348038209855577862339003493333578813648018099162739557778560487118072571122646945673111312206344193802218591552097773932464111027181412375314930783866678915498633389641841807279770338269793873699989546173862817038846537070160582925094220687276410426775674555846266394775701379115706535320825288241649399111779163478780498595290888650848128658046986351678509283759360988951525045672253427004486745332396116324805790794638487368272179519036983256394973873197045761198558100502033929615134745541054813233720219833892009946946164957004599530086643692041085990863598678660608019417029454465626344797246149296344006689680013336743361524391183003533525331585452339469075103255958401404596626302943542372424032004649628278005100636891850072496233426687496890273682911964027940944407923969077177756639692870626274826901873996732287929699140026862902076893939992640824145277138818576056054590319831294111935614339823018113273068119726883451309872713048755852884174594126403813393937913918352758602167609505153927412432456958560199282496517408140545917156165671776952541260369746466043730259000063923211208023630940442804961811577833024681651231102689888092655754744417934735959731263954374839162389658718636534893461631899703468607391159618884077034745890187619076502192020638515081582096064979672453575369472500685446114357278635965156406798222335057742861107750020135125739110224034821107931104995191853455602584627737514907930224495706822949759985862047767067325766729125596525502234254439095540824851379749213756868028742524472006063502712794216343650256324877895639190969304406181846243266326196935100957987133782544910992687334587306047815045148829532417008509207728955319723479754693692927897365118734702099133642366782951356013052090598197442370990182727239398296844007188307426811463601885033974603045208047591470641521650008675796010897148390505197162833282687084902774828144600981362702236817839013404859460101957525351474619334384338757498503838350871723653255003227511354385980039586973474290059515014245957407626286603000483672357209453772370499965188890960164392264286324431848830309407707445454604105936768995672916588435169869579588220306566973836031838604923040441514838411825862001403511602042228839903007905823057693016708156138908447862531440218422825897415929271839694354511074808049319339417693235418241559148519063520839750819945270794644350632003818804638481021033822386697463240906043122323888407040154283840905329452226155561362137649526373894466693742811877328113152851436205638282258836724747502270564630340202760103069204438660099399575873352047792402701233710737766559587194745617450358946499239947000040991354521405019409144837004911103830474387210955765554526674000688887138947014980019251204631784448869204108381554864178828501820642382295672246635296355645692001744551804348391912347019348249027750219124239891904257733120141763298748050040335833468487838634712458174127429233087775540477757767986624624607095701118045965808245885728041400912956163137536027270364819702607236746602321991169926549286527489078135100593829211465929564877173124477961741766922628862854477742767169284406998927341765805411746210789763334910489167411052464253383066299232946791483044567839597226108249959311575312683556480889438669174800427213153290511927302599508547220506246866505435649325149293456999375287251296948367571177857200198403620736885349974405001475036178048027254704712824360866292794950153186484823847538135755570966595822147861481440491758489752305964750035012897418262639571005857656341740955087561536738775857758671497712319703544067037449820674321641614659990091572481433581570683801018331594755353027045353116139960282028722125575163177288517480150640321118716718804106618444220515178945971150799076736258319892736684980885934228704528934239037942593820930856076523721201539880211733544734994342533064776722159677390962439124822105491906727400620570487724001298773175874738354475275060435661175011849009309451653486988039738973803829757241882323445689653742484134633146091210409948763644258446859229279962466269947509536055532182828015901325715893994948939078449929020726363267567604538484826816925205168148300749508954679118084905230445444253460286235332740656077655265262242248124907020049123038865826911393008377212930006284976484734854794902825098322473988218081473417656278774759698607664233646793856532873983337170691262148427991540692202977092409540893944781233038718560062399196913074174993598116579549993665386971072677303800867992171608599886322820310897320700186561179095083957188262695160780052704061948142325615885181213519635891253646932287835622517342608272384084314691439361846633287190772490219640683317380075939934939249263780959114497820186924662446622938785994386536841332968357844051309910510997832514159721002058828891667863316056856836405516905937429974418559624070784274944816728377402568738864038629528534979867561609266486412551577662772121609855798007204666588725412919853950165794207603235841015522032490139976577595596428139732181945009442242667010016693540532475433844204967689076998853651483066491538898980318924518718187375259016945383571134902070331259257502212168456631983516516617435379979028476131910316142097714274629154064104148374162082497326013527212248938335544501863133038886688295858283617112612339013696304729936493894576298721226685224594719949166801126768260222637847589680185320075023219253124573142238353448785478599220764361516944612981804269857248529918397206703260005496482737688580829981518587268835633407086775288458325841387980209010520477871325750211975197867320853774608291006951644412654009392462803562669473329254384963275456331234843811483261976534892071974110605569811670127017748645127939219842790227748640383317802775118979321768400565511205817852390772119366916910974530105311781194295712625287090977278829404196285394650701823260403139819789282451707971327434409638846378952238135071222385843004794514020361055192326669748211455287670599814655294128646019353740148971362945328449968182110171300317914359883474196098173517483760673456850566450629789314054170643172006278720866153486453707553701997058810841502898834638761590645120291556811010658415936900239716759125694331429598430003848901570495951514531313328634095354871091318395995475783389067992464384116643698990208833958968191090892329480299848117348702844221419499779904865424695529028977653058777977385729016173378048252963787854076505247972070420027780697880435368899619832444272500064077691029544771951833727022989292817219434719903122155046978207434277128816018621136580514683961862851611565883341387025816977817242825612868362236305458036238402966873648958600167006984053160591556419245884359358776481899307518931757483064777187050962805581353960464461838621787545168056526638333184775677596693036677689668339353149667471305343753454773275278306237907014560909684870024597291736605279937149858357046819599057553138024245221678444392799802847928523267164179354894754953783507092116165826219396703739998472775560146867202149646752295652039541131351947319574865660002859364060241739570150121671032794783192425161792388355295146309246779078533551207634586818746646802623374522611213314523043647961801387164069157311408245039420328221896454665718882562377562337942848826235302178340137110067482000560566636717307379670462926852279378832601863556085564629231203822492197301816194331889306427104039873674180497300561262920392069909434016908604280420579391548689288131091364893276498688286255424925576896018885349616424088333810333531119086799057784508218764944287846693691667927819834441178412767925270115718412573654548839933781865914689678463197279321361120654784294036655018506541279838558717228315491559500373528385854430027311574148907882189258304790089206917081701061329669625306852156820807793614413458315543574214316848828029514211081861219795099615937779649454568795889148843279395344761904462593592841487170343938187420393964449048548668683857748438791530925423068435535842604101760507675601005244889683381636342188664719146775534212274972776292650714467452500978132008149003469760915229273674803893868096050836870618019356200251700403356352806168028748277489524396618282416345084134651198495344224232682743292411552658732942599512729115716596241091774939716135228734506912096293577505408130108345222020338113560533907656930785711029163143099367355339213098871968552346519873764043478835705058984474817149508327838578571308920961703812453614388826471528536253444204898172762799573237749492944166461907750585169492302574949561697704962249268357385734050905716791286748020764550230491565583205807231604646736182333447936348853138952972494304821977962920047439066087085681616000339549801463925850020354042666669499750133345626717699147126348892594586987593845045319494861292743802554538437028061705030764118784107169724070425171503220903298114102148438001733689407475424815872504442183096789588763878981909503542603125458116423428829941229635161367344042348892020451614858179514016197255642678433175925715342987587282650308431609183129229547575521368222062400175896714129753203541033364890722268862471782393659205336426117578410767589660907556344269413958908176410129368466158694710186421430541930199161019699935622075593025668197570615965279586013238217439381058825598504787050907678744042413712960597519478316801246281541137336954353594852294155481875453955454634880005125071032056033858619587679524301963209999262078728374368304797925974960295194051372967616740834956981032390700151591627381115608069775473074901152952568861024468650045989275084942157433522955929340768335768541678944335374434037374327210808841156150231879069522562807644610031442418559080864061797733609901144621575416447038676727666260761998497296135569367256622220230613578808251366832362847364111445883417985438155216429419925589236388786733187547272010318862321229775414739758975026177211492074679750454508528708948009498774976333774263425590538425225279264125824801987563296761488771315980168418375788268850339600648575783059941837705556339923613330661139524955796831507046111356102371033607847888899866845826472949308539239970792376979334453656945227796956678762289499646198066811121620665970489491800322301466238497540939406632692398343239632321537904720723328286259160346341449776321973816544830230168433137307050678283136327076793401852170784374973874819499350195345095053727874916094482775682902619740047219162980636550897953903333527802943467504728690254734744925395892040285607134997922258592970073488493651016414619856249643560930386051751833712910787945988816774951459277132229055259493413036516377971177566034760667358212777987429537073025026423972378705590435605250223832437722491786813882765255105747182276724305059027862168515236521023092914641061931159767311077705412980762943563083886507618261445435324194295290161074198583036002335855129931963735178904631016958528425839019913196796863910028372688132269503542864060642280519753930809769220490582758314943455865535792399787361129870718151320337515208620616945155095199869561474068475514513478579022703305418076211853523323348987828823409739164931701165164564572099799248579562526442757738529610343913198797224794396915793093592871631724715765812108637528106129949977787710360977307830060686627322899997451775753824841107216090559767909445113253022150879247680198812886060978767965180717532632428022535857977367021378726174608713316224618339161941459024949763294983727759127036982266795011268795318463164081483449416537014492471171446967642661773149300029173875879985312946574155711676455666649300174722431822651262402112627487191083861488810349309840757851396461922710729946869009396897617278891312533017623734044231904060053981288490136545976503873755861517108781617306550116227921803494450170884404721380197251463840568196712228584266998620791582074245398209554954264045129754527595421622804599527121449611615889637325165432331072025929106578485319811066659941675190993094723693296072217288292627949843572377691237574243667877948648970069572553935994898564546459585147876671033387890691713550882494006755959678430895631222714171331799115701844765408606367114202672411229595168277845060580485044305370652218927090653344940982213223762786802443725185803898523079623479332522589502100287303662848583240203202090021092343578572410092141782732240497914812813357757464862605770112853869734217473069756179588645490604632141448089207321242964453416170932714140875841222786206750564774363959332528527658768654173122558706330795899375522910910302590888542429108864585993684498692710954924083087512724694115582899289842077641166173646006076095169483651429213750590004260297244731044614398146608843925035621365142120065227261652007367488609487850689867352488826702209908693381890239475904056793099040619133656576248090738573803165007834293001724924384014659602822893337694466001743168598023696829822070711591973923531489084724452231174378993484207075091249922668809487673892237180171333572760272405840395266592846339876530028313582059411712767380363050038308706555509779864801451493197743801499282076078479922209080376101567608331150400633204495910073702589387565971648717624937284313048298245501431456295977006185672408523030764208612025405780782568345007304680173086042147539625363616840053968537140937648709505128603361516672956571349970883644287954800009699743770479675060962727505271116358791795137282226382680535117192734630078543580144807012977704328045845099427777653478343265441545536230275100721556126397916566639555498853041305459631922349010768923804663435805992235059106085966962397096574570538740840502286474316972399866055395144376666591646969586388349284482029421305300562171428269859620800382983660909843981082717930222984523865901241479390150782379703701447011860628783036243295226130180572114952841354246053175417156623177779102579480937583682796739188892221100869646595714788513912737016872746417639358576209826659362262982151768202010172702214861309252671384469111919704425200512814008391678420446237002085912863688988190499686422548520279441087589140841173235416152339170712649941443363773463551115444916337236854087458092748521445260087384662858840554810898498283472422168721069425045535851251951034396785005217112627776609801234974458707210348610372957428361726163317051577977324766340656104578670265510161373723515862992136018235280002445937180881863408345373072210824560014260525284898627817676436955642521899726240688884802023477404451832319076853374318749863916316357547366991649222586203502785709183772179254612922908454105328925599434655045765340261549577454714010814330673636862098393476059644111421042575876663292916539208662644713762396397475918833198544839436256789326118757658420971546139421079104283351451618624366201416324422919321885642484675790748078313852838759857242752033263241827280988717890020637405349434484338205286506903457165425132217114722593289256177545740774825868556742436358025963045825851014405188954716633708736554138841436311914634079733817563196949390623021243951916986839715811639326853726294691284242467861355232731586412840846438967552630877415549746001960903618194302184597224550782166906753799772498478098434854427228151787874229504558854727878220153047043969943031751110027051810379942701313666431795162490230421799388812239668234640390204627081919861135895839399414040907929796600065835046684790893416896136100675278553429145634951047859742001698472573633136328569458617092762681529458748260418071671484908279521958036224181324367368432277375813683043731372496420252681214395665756241639946313362852230298745708795748176521442722015606129421623062049173315816727504199637132271519378824285496078265632463713393445434634163932392889195839517915061810859959685269889208814586605111103820450949229917970576265234397388953690745374208874870168769071414222632678426367610801889615909013203325757813767709554351097133137631489501785255824528617655075629519096721238919089181287533773785036489024942317570003046783926641061813768260551716843760996386377830381663481435685778396380698538212403072155382735848995760856169424716907909382964964245572873368808076999019846274715426218932469381296281095484111505126579623512431326449864515082617947687194732093848534232425545072178349014870429592098451174381729016551117766922535554568262913469222200965664400646839420527534271866119750233715905834563635855902909182777191088986763612189947173232438102388313217310226982204010774508259859131245408788852144431516666605876781064418969279652065772398425883941632738377876332050978019961113638072699467613189418323799416888522448620227002610693380058936729443103765651544571743995142635101237657311481824344375281529147067048309351302861902597495470357916323921103370540955534348702729753752809720042271657580478334075618935110545505252739261543031008227608268899093969020045453312765380073792202956032684536448709581095383526784132174660384590654676615993801893767419179574904116702541615827886971159673185175301973815889797844411520615102200573248524548482878180988054351571728296145550745165095309441001105690644702556372933382871726331015540207513317516145960603038238331187611879491929386695451405429233170640819110918196186585375344135827214312188408880400120464569647192952673868200313857680875085949672364765815395209166638420806521131525146870249526191095077449642878825499966518586814470135356423255974791188947490161431968509010834980258427598283653023756214873450440761566566091536178193137435545047263389829074841663084763386055516841634990959238154599951661179673116138246648778867550458749015976459556915467046377707732391508739491927597452934574527485311278051954144748734013420680518048912453627274710095237767371763507124897748699310460777854768684437303693985252203386755169840088579307689407379413484845980537511640402145812296195055410038579223765058800322326275629426490636128223708880274835999814494508047625878965021078084554656888869589131770270331160953154551812332699539156764823363979208629598280167242438075077038688313985417361481032432194919440319315279181796414789784469840794838849051906589073426608737441086197091694292380930692881993882916275357004003379419331257010853901235866819221673777028559067361694837969309501246687666115046800401671813281424490948299439267209872327122036306583616662186748137053348310527320941036362274868636272692837095915221576238153892437375546186245685464609748087402551947159066968907765877987184782676850956140005079556010554709700549360509713424630104946394111216965849123013776059399738017124715543719485421766332725611693963427482334158626436046956754838127304125947897765742889904060371546168864697788913661208147183060497483306878004759462780242224655025459955267758885218217597961886519939737116137922450086747540463924350714738296275698013945839155023528269671678912765673396020937743847481925288229611950564926069850411100158319575749061443080111183670326721328055359516602948705797024967331043570515984476266393265339863287361627468392518787865947072532855636207467900366484748374628874660852466522194075244144357140451947255320581611787500698251800482579362157380323082518766637504940631767521324256144070849420385431962083803567635111952771954839736381729376779698728300390479740619837638316142317518582216167311118976846851390605062867728510809478949660725768862187930131567198859649497114619235403788642047060797136138991651197189623892783543199355354270412046579924247158277444001465709812552390673838851981710271290298492912314966928656503131828580407851713765702036118569915273569382741644271258487470354813779970949424188701325679515727166055902199006006635445368455860220035632436230801044851223627399399833757608250218418283031858292110447774718548550750727281174068955903478705535657258133504049248245481882519900236537353479616584843191087377599949659555998599940570932569399442440405979938578081286582478684652835069058702252783219115833662719807719940662635235534536840224473514827498529906783698080317934286054836833598066624580750559702667084131505957385825830309663362282190800955495114816169427116631304892114763488821594507625394804846435588090357812988610885337281930256266442957240492760904149340724374806636267917382557988773996510971580542486556694661881164926411573582907591876819365089783876208992971343191179775672728340743147540045474965672076070641227687234865631669073357860313463760051501341253666121929028470419701414699244193193995579357058894497966844176970857349172284689112204997272426103045670640393940813215867776382732182255450130483161289401939479608821325822989187862048074401584789670850713768377489975637379847303946449369108734223051292860208686622200806090233644042491827857735967748113984250433325927337366510475404116404699245385712874030208641769050579398647683814257965809105341854526260366745516298641268210302013524838324340252931023277854759477554669738535035166995670158260245220808359805783528454627602507013664403417782640700242914083349214822959341258187483895401716606651375301430014338633059647221094640820594037867149563153177206965038954321534729211396949007236759078846722940929751362390299532992644896739406061839940144356445118943226083624241739025974361360335996468789000121045413328173569602157420829536995295703696185197383823260241718962901347614274359570706894919337822159746059574506349016173452448725339074720788836145131059774831759970875742145514312739959271289842007848333533157515101723324021227716005799715764961120926559187598925706681249139096284255661732238985473288306934616243365423776902779531212776213401547053324782781472401216561088262026291734215705085369387147945094015343437945398020432028978521869019246006103169437965219411453440854542345020379559947410057501855361307143953070399190650084136132146668223174653585245925517701503512276534465917391101823573623922954081406751191026619663101908704754258697856392130527506764180070158005149133057987207777186437791971196285449776258818182757305962015280703953171741967048419935059335295763183759855943001588354291746761568925404366683484680923649048384255373628602296945238803693440629317961612360168900135747527100515705635483030490341403943465460846216099913548118426521723145741514474212016705882534271185603928992841009659265591322605726157830512596746084625528856710425253884826668918995362434307508569489583678574271736931310105891547714173422159948752923431675773343533080622402096323673526876377283639046018642181379145196720622230465760198621629528419092151599975034046211134158444873699505431538931900509991050881377486355969795073047631084786104574064058128202433662207994343043872980204385245581502698116599641582035258468425812311632268913310057835886010307847380435204710659244155822260598434636414586784300747473312619183558431899032124839436330248809132266623178015456913120465122457215475009387160117743103092442505946212513151303533398461456330311958275927049232586695481452676319358283884224282275711486379532458100307458098323559559896305219823678069348321487035015917407595757908389590696935556501448969070126851354545971496475792491383732580595501170007123376648662950195061206159584915519658553394097953731286726797221239238236671644547222403837466538217460494982685511251281503282076457574864964802066529749159441175903389357535149381600056728203491620214026988935142957638276419596599126952806856000468067298938208577556275743792679011975180107533162912867009193564853773849031146987015301033120279817074726127794878942041615229703833871942164819771292493602266446081822468914792818590154887199759260652325734806629456666746733401231482899438445010201486980338923872878485751327576313021944014035908102967510651844620423770779982723169617922323905259916238712254156324122355071192650482620984442459647694119327000436340318966713370229226868671887274622568580097657565466012858821829089023207712435402826712004270597753944719563246854668531826169260514748088281172931968486138257526353629249511103450898564626978183648937174281233055608961879704822063164343057927193849082738087475246409852330349088900689321301133525975943909854869552087656482463302547458791088791307079667559858954030757451064859616711588047121663450377499565287832495627674021784392583660155488046400483012365034664774679762408496684839222608273702109892922149929712383645528889511392813011669641923076988280849038112848625086089142776218571403532524022558059009637836255510427601708519432008210050478995892479239946691731637340347874684197038653705963840686791604177789224293526109536408588117046574853493825852886464082395683404691665736420328344037688745141954102997438529932158806485976735177176746322751020739113974782564070542324276195253689015082068139452837835190440707108507477029876912583945564702515134772469234951573936487296092049364110201915136954150893167500406188619938615171062874515772489098628286991321944680379586593355753970239507541135914308328066803787832006829086941587515930735922067574926685853147229061057226638674124864771977718333841335961124128906761239871662900896348979390888640336307657770149196415742447862487893625157252363064528792034770331467498643994918324074758931543557492114298349120114987612670085164723678130036183528290304562900754311050890989442397112445913419224147036895908871638971740806512691179729212567780613633428682674721610388350191619510645547610211567914619437936316671068985802573838943375752265970843963757047065307228566206061780552507061309952102750466893760302898968787170300195404175002996811705739075467441389558139035690010466844464421203163701694486789426917481099542335913936052008715275216761800975820406316201470359332879774378728761709399568625888101291218545726551642257994961575572690581535936840864640194975829739425796036717804129970182041312876245167757868770748668025069169346949856653815422408804694673180007144525035724074089636957003129294955869498743426316643664464369626446325483225745409555123519198186674288054552355657044869365297435811845236550900645692806388878893162095794064202769214812077057503212761690323505480195270277240953431397740950801843860459755544788251935780674198511297171464377579685547910097263590882974181928153906178691902571370895134574931277687318568952561015753345438401811963757713541490965419713568166251753007476151221998706388484284684490750848124868161305845373228762403567741567066585464845665676894882975471604299339148876309078390814724681736831835094286612189439969439692600871859801225048908083370101861474968940293306995741901405116809796282241988035766552259289201298576171338567602427178797508573275397766760655166661327372751582889546587385645606148618587325886029685549600909624991089988394821740576689311556435874273850280645913657706776231373211434616173683769069802845074348608734313640137867409131852282682395685181778518367380191996658362203768773774619453186365084586964247848807661441901443242040590980539133404992338239161586956046767663915637700937945541410130143252108855077158382401446435705964223354495795973040961326901185238713631765526024764718217209690101916357815151585792208496920838697133585561140428739165013707662131833688586838015466425418074732048859768576694049100803261903195020490730183312254986161657372985848177504790601442457419462433311372342251446655889027479670819746752982620799688554619280026530158061961943607838211748184592795804955659921584617936432032735583030716097731255682404748455570909382221431594205009981292193106566233908258927160072466627831984617889438979294039062402826223440476224126161673021574508391635574522555239640495984896895109672477809766542834635728993322001572153900632466286828003696856620391722585279455694372014912151012151876532881507686653520173328404717539624941015633285376613759138915946320670517976238213770672630341973113987387756826107972865100332972294341731418927588472509243863894130164579991769426592863674542147199152629255325559339810066915614982452490065138240652355519115439067046966119218851385065725269093705951236940598189380658863763352559511332738874213222813976950549434440362328030664184532294245265459160383926902882686243201086587586308821727246208288499633435649392655148516970075842820504631893383404928136471486990361711518503572619707045162398609386750149049727278316043083725083013922535852649522069445642066370016348549859432002511165287554609659052991261448646672324865700262247847763426114038312572451880872327121126559301797559858622277833281224274961314699536855585678755341520004687541898631639966257999696969914982461235955042677800379162769109451254250165115523162153623840505260603633278429534676656868996107837433025172999173891678922165520802178021783399570137511886481601502813732698915562274659747366576708596161174320177186012401665670491178553338367878862964570469236669384042691131820611024865330304556741225168566681085357264030239144127036467641871483972377458895564622280985983221727936702442073158310258812875534989930977469165269969051006801241760589018228844368744343930989862745997211548785401133981074561996149992770764603926950909989930551195947043004475061238996663447652364187481542156676414992709657402605663647495592941433536818234852182937688256056589757092486527646273633190643040149555306280639944785126983158200975826181827202212911581972075918250277009491351642175854402900127012291067614309807490815819494033669078561927599055060963549271240421119873417607848310721947420607245282379725536382423437523521790436204794623513023991653740441315922113860410498978663201857886713355069764609317601018588891850736403932996695814187887351539720991747549492332029143938538681246026321800148205433866902343037488114316371769113999338022211168547859124307780379414391949253375169878356216731212948072295523685630363639345531517327076171187374009368948593324277621834341942323899357826534524812675474503459157334008542665110415096229580359497853984847757071580809040653851217543612392593372714143203564572200759810802256066653666828114520052480946478921434297373400720644355429005647330711031429226079927121502427347575342432579162874420948337777164047081622718331465247614728441438423975271374912820038838872577613532679761721915604759148946802092033748569009722243368693763102586352417588944635527346463250190554414212910161057097665198523612841784492827460524758699552759709556845782120699824269302010549587356995574993083696947394639367390018416142572783760733112529850686823846248130028866399565722947397358416400802105759799639779371112319549025396182262677583418309300230523824715733378347236856108923876543438138454591705262848567397514690170176442315545671527442118934454995947513098875386162935464136903861463345619090738571783941568646170694869424172326517946345092262747646536906629614362867676789284793468822926574147483704622549550703046633889406119960694112844852908928708130372406628566973651182232611765119047164332677196180021114215739799206542890071259583625799506126840785745775030163656817180874485767501258889008835140434483215552200904191939657783704033818904913880016216725283950008461866541002055672643222088820779770212850631744710315146351282288601172497703698496000499168752280726034103714063580256996758954162632590579980740586745194774164247166374944860864839607022054993897451425179010013470789535391047798002388042615177191406945233313160851601410969874135188974974330548303033398943865240656119821028502349830428469152894782038288193578520221080554636992892603193030305848779352582388940327910940708556475837921228601318176777852754400469064405268483556821956971862816682446754854544553746290276242255807888166906610427746142885185738205370786068578045333962351147047235841732894569698788801028831962994447702625647980650794257408623000512767389422821421312408328983253884066942665448584620390776695790223084031781930792181748501790892261161397691161696977732072749942394729315564813787491113522207822976699789457072074151665538421042684221526353244036623035692054550440038329840436553352445450045429494838473679682349551066153284534813528052460566209879348245323919539973928810103175118107230090562705057925014715915440039149959295854618929573013223875476307824949480033490231885571729260940599356672584507380304904174057748792557273992994143277244741485083082137647761510187253154766739932807024606338847066662838697430861970614626224856668223882165261827483243363308892991270453442309667482775449713705244332323523206685777536824645579391887034607324825755229924958005883940190513237463180135409932284036169054743722721985114711629580919846705081843590733373340942581353790216992210682131641659843760240974358174709263590973927314327658745490220373791727830215929340856085521599023123037999407186453115608645200741159957092831198026157267947396377587682915133114620723733460358100625294189414036592847639918910416689381622220767028075130683653572268710466762046125058996465747066876787020709384345408889581619113410002056336978626571926317740252185577177938552892941627886243912764377439394659824495219515627444290298292613269453240558638945058282188142537474654438801136509193000507009788835731992938825926997269209761813877835563951821610285427459838216572571671120852028342384151373360126293966561210688235862212991858171864981152197317353659998927332399028020985506515777917141914706170283963508790972622549982415455376624978882318165157555835278339188275427236816732629353090407400241669543385477869244444363409642738643393258283947466432225641506630305530360324216208660238574338430262201344075198923477443467913925569099545320168823083261764259326308350703329386006193870730422050852442480024430327344329650757331651089461784507114197355453265447250271155012390926932957327788430329095452402230404460150160967138561427594633502171060709794590107787353011103424269963061129185144890533552525854778116720347083867557419519870756404586657522629077345788388665390874215437270305377280373694433801480017356660903263713720405300094379643411990604066070466213622000906723964212152954125909376255646564616582385546828686273245600663456084945891342852191232598219430403588985134299647146940810634520483955390752877889889484373541756836631033272490756417892266390353050961313712981662072306927551955316435876893415822629370529293869878002595774997234824286967340227127843658759697093367428546493352420487918690736353387477658503326011310550917192995636958225637746951060967705977454855627506073762325999487957962777082874290223969102242845399328773131646256276822021668044767982025925049836185929564503479448798926038047482184265073007390818243374816617633949771336063145287634217253338622944948343709103822406459399010245948684467722158081341564550660583643667906671547614411525831709419102348455810155027989476365664153584784472193591710729944832546491673448474473160651286012622317943811925632384135469576011304425855797863184718216359809608846263220848584191729092062693004550699621131530533523304592138734950939809079460779845523133116521835406742401168072053951701134299626934161897847800359730243396104604953956490388221435681205438073117115865646910076837421671975869499649562507505305681180861681603487727785606616778448300204463176084152869467592374844354044473039786743903183224665745065603831137879860848061141182525638998751631277885923145114008423135235595367285122252495031386985884252483938588547891281421409351335864255495196693015535659761263720515941274229646888157557535770327775014954889443341861568445185221947060887334334552668828806353345915784029423379016805868562819685591019212816037638836423706871889690974528100411509044149231038276862948371530204449770063340364768933289178266633603856728256158991685922571901796619905486587424452582537552917202825583110432131067084935099602377857233290084568276425470044369334103213881231119842254884787999916541682041894823393047432332120162131324932146213759348015609792980934187260380752517902387196710818962412544161605938169505568850885714319063585674543595803647805372000086603625514056791856784149399529514024861524902871242777161401217601459058975817700083917135804866350198270417948836443372117751921934717460535776915789803261947325283215848322954973665214726722701913491811688792393629510589928456976908109802870682155050163651681419883483133863095597529957257060531039115718040119632198082645703656413881598932277028630213375644873641087438090567559913012617065842169990265755853460886644066420358389449791805086290939758037493914401889219714820817915381538986771942477943385739779549317135365850639314494880157437954838188760056206445645208142626490692825938072070577877183136186171382237578868397315005198607464838378972145800465604189597966357318240106186254731465542593599685494350620830698517381557477830983971170873595329839709050575644717027312107185937724959869644349597280972349557733808200634307006227983360488455459322991460117432742401082557127221043593478727900016762876781334431244845102059865303219832755641569910233198579503170310281855882979234222854709174329389470897676463642486935484447707917814883845626463499371627504628680343352730665372658334983292024160122109734526509195741112062016817954385048613225235798492992600281004785616474592481935405113764632066058981737863936026806760449426274931623333047654208060673570435056552902724022281371066110476312346871327980284083390330415542980031237525596442641905183754348913030911825332692666504714352472139306654028377127003769269840782707213847372395100472500163560276817848108775668060779315877410212470886990757142408216938406876067220642548672895100907361861414441165021266559030684861674851148606385524634604454623584829372995603223392257860744203782521287426068619390361457604427470263194894793337600381165495719823423623999842962938002525593350813329119502920392535270136452528672528331104237799045660976403464528416341524064677399219759205270251499706971932042968588159959852981193838387763186221073649188768769038281578169195783274936608869290080816836658169490895814223496351922686849256105112509901643441461721008180452243047910399083609305644959596376886816992895399210846263928313774746291798683255051836494584071956089212056121652972674146529480416880588620012049133871125772892504931186081987903990897408426648230316734418226123584154741805081160844853210725824532763443735694271409660367467118688861333581213620630603270995153646529080866032728979864987266831004574000659364999136798641867904506433848883747451208403730851143924943078208296210225216893076317455688902108421804547407176268560167649915633367358912507497119855236338285429226767014452482797663007484960270106647732302723598792228226895851006312293159141512249795298797822328935966421959293562650570245205255377539858858129457590041312896346463645658625095592570454535469733272223977036872652146977648459246258911420361933692784380876951211858333605929301998880891978916483404234090260643552629729497337463814959569928334135951494258276460724293463196877905568140984320545148556265366254928759286329057962138664147367103270070551182154064053483961239859914495272010962799752422889816280738757382832603038241654167098633445414652612745059986083418893709348646925906190953755768614431874245126003892189123412052113652289520824651282321679425915615300661813531753117218072979768748933937971247255840790291296445939723930490138734675810239210179861037552407615595762418562118279308611473684588681938430868623848532668060022388597950384450644064626330504235909652041846486366847901704078461035325270684197680770138477977452261629902025554067081077806799922611436168430567613105890845512395115046989540638230130131669816704435875459259416757853309075342074245191884569749724812883860875534824765927606457223187497102328442892281891247276596849382613733234037941748731331328043104879309144743963693037041447962831164967529793100334257857948486834557922283642402366530539265564488631269994460402364380396126611683941317329989022450354104524826810281566762555050409135967893720777379542039347831520629978709943208568044673743791153336511531122470619940690722477473052250587966030629397287005718430963916991405073648310235788168916182217452739498081962998168594128445798198825051202430308911896079544899818894595435754691924292017701133636893394589501948848844640680996431377870691072308423579983654507783820910544050496246242958528398847644394752435591375940706848211270101033448474788188280960876175680589493584196492815130738283429119590639280358343247803240119114058695953207730682596500105950918195716026675766208598356397305045099920221034684705328648533150577456131861459107689438559643518970172534527336560807464217697253969435015117391976821498773794640862630382571143085965565721840692021327653945528121818792031288721528948749693991687339485582926477847137188095026879174743482911038771421866536953718178934745293933489530719185669568578243892756173428848869063823265251665408924118361373527547832112578114766304143260071699925010470925958339410830777076596467352302854634204196045095051659642131781311904275971833063069212948983534443148529005454523190243885362408746484821250759530981240305797993558360571672966361720731629635965410697964857730731556868407924429933010402240392581413821442640161527639278872144330384432772555094332683853138284957116364381203638978898999635345778613431958537128195255523537619112622213173291396023115710106556174960538660078382145990187996011590681319672002728937517108117157068325422141771257633387759643342365642553286659924955253870374093496071574682651111094621045897718618489177236372189483821082577165851374340127662443565768767145570654510471149650626964978397970880312438940354682956808031561662912890439026690329083945154056572217620135626150971917817191149671334554544216654958530544535762421628306142327187909724450113062179980913536812301469532260112120529520636499307334859329689641548646286152158351116591319889618628159601634096602539351437613844050553451381101987762737962991559743513754666974144818741131096622577163161750020524969629090992605594270150812754517688836733074581842056879319001570225952619697714112657657512129094691552379194238648700643517492939792492903940692126554184198821780791747028255121759669091360987756622252626895260246237074590023633280963902932234183904878294804334266018158400601268547556092623344374606462248456834466803865518620339107838591128752279916847127923293998689496090859361647114943687502827637345914008637608000066376113107130776890834547618245985173482203976166463365968192920006825289548494754436830642045644822933283481381589595395192089424822063268513011748643711575061805409205191418870095682412330124644493652197083048314021244707311978248580400408984660002828753632481076593581894103497446533725063287974951807882001825442833513044916185480940145464928681225335555517802801722469271929906032749244168494854169744171220362919304501619132240208539088844817114866464263566024267987821904243350603646573918760559367901502145978810837809361669985321965612777308594644633450193305526637938658727284010087868094142477508916366976681249348881886892876723077204326575923007152153466154874433733136398644535629464368562731769481279782246715982922006105529608335089147644793789382996802317275950233804930211025389462950531287104529045936251415317616893598898918888366147259736687799122292590934304675289232493069897965011886321938718260763761741316549646118993368909524544970159715647266842690727485096357489728657593267555486214722090096411689060390859120107656495352040435006703488220484628073945928682016020497160442670745600758850144326201346915528235479850012944163950015869455072030517762593183345867347376995261760635750340556049660420923195761046287469714007615613270516876664830207639482531345708428477517214799805469488613458733102376732852349717743009673418274978112344707825641114134251192254314288423380162120616785862938035301529326451919803593243376745608528886602783015254590118789644817955559088240283669018328107740138428267256599485938395614003875214357744467833755888179178441448056238712651450595127597592040016879037303315855958644207736263951418541831760931974599700642155515474184446889088374106225104251342519172468652319514644806641275685930970100395174003821837604345482237071298387065681575093314559544139186223092929843759787240281104903791061939389506973882612973047143532632242546118166007706709589517534943488457752760291653501353959191779136983784742330286780596436218770598445459894161430065291061097245293867942423884657653387466056318324836614503587126076195006154624498916524668066344366514070723768874669542398486804137986697018876285085838487572557030370022213147582700049890936015457333285800044549618053278812417183503542520375896161182343442930308534669745123100030243555296516073348413484871853184043862318553163373799708158652907034687822347914808041983506212984019520630740695934852581458955753951744822272209369959331345438729499530663766557642413741377386673424435203940735287339716024277073597688871802614619340565377558788675324034827978712166827275722064142929908536935789054543261068617590079988980877060951125415408927509378256629823537136665220540760312027333496805617638571192501819232370112192199903035818205008962460934965958267595876967073285565782069161374616503328623361186450302199886712683471001708677036436123685567287971530768359042832249948120104229787633722981128921445194795753845990579490580264807847397407557821982449115637013265288679774259647156949524198614454606629432732002118690378943560687397067657554770186370305802649347407609015143967234244589428587138110197685969990656779552046494349688990777335572404630922178570989020110240958607229488252017666926893403713027087173651181034182248917845372981577265513275612205916318035905910687139084451934905072037038640830025174789004485975658714449775446560089289022946302291606307117784297447803816384059579476025709452290754755956025147699926063116941654309558852911693720124260948985391356835827606019327737193497417912833423201288883066162386939586730325417964415332859313823268021127203961259797693718339741469711566858395898715574329344270085290123504376376361543755482573994963213570421277975563486844507291534151835497239683919743998310780842067213769106893308491964936267027476646570793111694405569128209439565978385048404806728402002552088167425438785659544440534906513210584802065592027000801566560051782657464738010664657040482940017417641821385160216797849913625382118546489137150901387767489883748193886164546778470296749120833018696177825130746694735754840685251045555675075234061526758456909651989103479552642738371714113578922429176704328561015809084497547823470968501780071805145687184133710997291138134914664498205818778125349659062321998546443687438560662523325577433058400879282739564634906638313626390040061092957308379687775429914202160095578005235906728672757215905878958180011840166647017789237086932980557483801854611015099159700526195025820996790397809969870526785862390619377428444658655454627907997750477041739700130634628901406045036175185550914342102395979516884180454720113018397162445580161940068913005869336662591906516323001525358564453811068980236717516814695942388919442103670745712514246430721675837896817406784930159717492279730770170789083569787597423588036492381389870874266190031048867828834266628796202069183705365039095632655674711468416487564483168759477878313426552366560148672639571575157139120672904286850480001064656424636536280460535391233237255511447454074080120827393381351150688087871583343744121352689043066455389790082131400309016617595038387983909189926246093365087119869806556410435627874653723475617586995819319601244024740037868441788721181116496251981527498589442218704276034028935423223515588390625694956877058481736533960534502471213137236380099959018989038801586616265396163781972191262127449941659505379604360501216027150655497552109847258393120174037220320909367291402485939039842548379195796416007806526595099294222258297299898564099973830028324560994575496249768725185608856267718189058887783707942692822712392748481011160765528281067225048088093160771943293900076562877714869308324679859757938345772995263540821775903347813708318981490779754474920189985585790768441385200989153624270553328543440906640303801194532668920070474967141336796523145597493102433226131644245535179950730420228184418749411354174982127214770253389854635235131826502086110246878819505206301736122681264248238365113770949709435942012752803727810667936582090516100867185391312734719006594090900386010143441837409239369277247473789465520439494056782685904783755585312987434079406631279861438871032952125949515087566773144485523650760662183360912137906220987660260104413748774082816101025842887518289365500979512554742956469432244458416491459596276988079335332863105029064696599608568498255957762140355659148004336108596761698000705657383902895247744784576117541594361638776176640791669607620013436006094118000283620732701550469886075194836472383464565681580641297464068579914928999454633940622849676138123245475160531328177683586039692616764829595820735994587855326789605783343823259572633725210072071234015705688879873318142760891810995256657843010034729692943754311703348417733219788790709160255592580681001298750773751728263278174164037354833239617662946570988505445080776308400540146838751681556708570433877259625497090390163167929702698541818599394065983084903804688230743428904545543825894699526557202251735335771642777525760875789038838518763013879524231218989619416545694839313548463843345581423803703899001186268345496546805988556781664095023964709353638218698098729579965110009711417128127757041487317976340488051839961032542460522211375406539506519643173947072595824945768902927522324531590705498962187757108987875221817977472929255966220803887575021242114511072436905213889792617020632413047851635602802344927014924019760506800497840887166758798934654806579566506686203586971308489114641302406664038704356990230823050975248216117727062416185426556967670216022902332024286474720494358024227657292054524381005658421963197225365302194821079160186984227832937984898801839767739946602795398526808775150779338763521053055736538817621908156492276109524114186684180217346131546383914384306045404740205402644618307741242744621670259349011739276116776026724701635166428401504613669372989258092417638038385444673962010712980229202173779664030097600607136551216709423043682879811936850078822877635275319602373947083008704480534109372853319314048799508173187184294794627843225453230154243902858166066946590856176062181674448826679790659042887919256367112342388778145453241282720140243228205254448829345557458679472549887222424700752842099709234481099728965699777209886448533218449299192744229871587235277861270802431557572326643636032378097645472425757000642984610634467246927312962066167870593809743397639997072509677587480937061371508726401800585149641143944766003519832961441215990256470779416745660077162088328792726259942114216318557640873476555011742857201965159953896202667398794206241903930016759970458013303459430455812083788445373360105430611705917018633501458403518140267203630021017070667123160296740663323953144009068943504494506113044988525916710755896427774987616092278373789764513572540999267016086839679884947337477501593558081001931195534343911055455370510419465811342622832829966567090865783250572688926620830985575530363251606634435124092930041498114673069843229021814848819705602788871428141260640805423558692486681082852835224108977909568556196576440817697909768732788922613960960210468150980490510013739068973360422092764954665387448514779607235483395066184737464674238850343129503579173739483539755821678973606607127935411231483674799096722737338267597570556334563675326265472544367570756973057662864082364642493808194719808594582512709845777068297610607103292946588121186566429076192948685895425559370398760326691884815459651153928030013345846153625854461447542092907637392748711082232491709134060829988125082379660997609239075973429451245274510642007263340573616820288362514982355892377957515598505723706184740632356746839406882149616742565604145192354912029279645854751614180237836405205438984426015663153642326680967009774066732458325547336477354442628850767694572667240658037591175810972754464255105165555287533181661181145317649016762283730070038413008469799412831919650598938488005073926141459737862630958826424705185162241303468379672683691258075106365551315577354121442079786955649825021767782674963399818281041846808002537024219904167309542467114901650178069864904462515034455511353116961100000681601770134625374799443738011522089308888966761805610200308441484946532421249632981252429259030235062439921457090280404392137868372797347129525642076608338025026359185056704827351673184837557016753053869422847272170707927119695710152584890096707857025523352844094416699373230110219343827646866406670210099427960017524648737342659496469689381143988480633308291282283172544061763935898749198174248603542339313866160182448580478146445377480283674056421048625945375814103314228673218098686188419068823377851717378374862810311205684350749681473324765783248902900017574046417498395326157346324812163752433427576454963846652643939642031650449985904332588931205254606204273866601592387313182544504849337286140729520808977299727641646956688580140941177752708874676860673024268490572536847694022362503876609439527505361131405580293636940842732930356557108928505879513688561226796160007960218206512375057563072918653401898738143358546477601541666365246943748749004564631188672369197610845631393557767772925314570842240979676097253117290501320922407714934724198737437564678900858378179520660057383291211884488334319524098628149952994594874285021236748430223566088963980525389909690758273833274294519194752327292631488852666550241343902786717244840983615072979228902285829501481938756188489673844289816332819711709874194344297818599401798823648388254612449636138593453697627471766055962071693072186780147615510554448964466210636056251995318452791222755094955006432797445960043540946824034313455311689313146833528884162291704989179774027735748633694351650688970203392417248131134825688556077472952334552414339765835288112787623320457743913434385045827031763354172051237259218742101189289309772384358356400733334222875852523880388981390998811905208611334103474792527142166399199924244724590914920200815121209817795738030381327870803807542407626247139449201838106257279301558601041169357168161362259914730964548147716196058392680397437321520972856743834132164749201990334129918107220085349225751306669264418043399751917646150781242473234437161769299676279704782048094282773940765599596358907381377903268532596892135226313314703867906455211248934853322828697134068623183317735460356997787299779942203798194386711543122000114121599363648063843043679899181210984035143064823438591994546457611631610463350592198325718394413786713926029387858249223310033221752724088089940776016343917824963750022470991657194729837497573766960313895388191275659651131110273333278972092035305978013007102864509279551478047584814966230205052434972151399690965456940030166880090901525993288190354804688996163606618040548894929622459199877697382993603710318640166859928957056034119585564509938833309179620583043892322189639762402543085077027160001050837068216443711918102503566378718600803698186517086130587553053542320529084991387055234549684921109294674556693618662434782833818867558191106159188157209379322066367397017001586001647403644193304104505545272030425883464508399685039113719969905667013170332927386462360611715181892976572541972279816596557230289878517798444869604730775380809289174810508133874713037799230169960273018903697925494612334197439968727634350709535813367354185783491445643074325907837730383421383801996402962573440627492441180251940572781185511818853977847863901381805155573428327684913875240379838997558472028694153372181093303497236496377622031808667027977775470850528626778538698035920695073112243488653075238311777958864535483964142648873771595232172065418523884784144961635885959416914823774487171709972826269040295169165751552398446728027033341644923181718885320984611809146444149775619115528668042084027408826960005727424444602639930121644407549771184781055963755266737269867775019609380832384780458656021006356051731104899955180013384832592545985803270050477476575095820379447621721998145964674220693001710349892835781751012762168974553373028044351717689838373538493650526188725166128043169106402817321575802680064479803903254791756683226882856326908652568560407209247941150965427861290775274226907584981104344405727343525250404364804158489717406546777575305564358411480943258499419804698841341554697881784732247246570146734903217669998622119957947135729506413884372074654836018825384230177800992427327292639095236491768961334144955367680817760930667827233567486663197722258109000417532225416623601906852201367996906099835737843833580012929834450920943053609502694685188987660719733224985943865805531914896885741518692074351517333170096666017762948917592071602226066230399785887053032527908091348913780519946004389566065865846590247149701770891805811963236498979106813214651908349296463467340549268480204750948911343015853649514798656977223966681482756858487425465849362013815367096916923487197980432649402268284102916239921336371503714347084462321588407843712081738747379631921292042781179577810105655038259270346512145446681761058546585372560684630864989412142967545618368918696717378232329344056038068289827635351661366689070789472491515444225515063108051292504776206984097171548137734370498903165183498481942279848462997068169841584973140172952087016881653046742736328352262871416622616131187715695031882286290370580384380670236555006807464088472291279611699695279042027878757094578860254125125998735374264493145728263866813140848894278872206255721078408804355039685698883329390585579049513567353245241161767224797187397537936357679286941758303239043181182652454887061257433441959071902754015198016618440755405909632186349280209081130160159947276084805285029996947828613394265991193926077978750576559456994321141147650249662979065055177174330478234658936042449599625308064429957483566298459058897820309728931521481549068517877302528715344984598719681094698087758715823236970448653430110069831961356236519945416087365129679520603170102710001704096492262385657453691821886488899472703562223716942497226301407590942088135067773171869721898184016982303447697096142923015052087738295243316098162182592181639261631348091845828934890831088097699511970894281838227755947773268454565149214268682178792684375986065202744808330167682577158424555194240067959067241013670708826071218036822816965055425120987094756477507692495169888969889926882417087922329007180285376251957660135862092641696350882044816841322746558801252339212430471667564314631388492677396700981746731902775145123382887012749518934100719485983439270860606100951508047641373222134162960734932428320158925491617371838794148855268517198410500637810406808884979443718811254040390264485105378194781963267150077912504778907982151885444750795949292631438940218619861446659052848099195483691012338343722029497273666808731537773939189220513004881539644701300924733814707573060086644641293219545481651985119314229828277696360188194797816018976704784105988775980288148469365550887887133108510703629586070948259227543373843645191665050739180114386467740928743850569933669492430945894597651387873131642820963276588389207829768721307093056241855042933607045319164951121663448246403108183559336286776015100951729128883810660796931179235838799289323588551937627558877263945450084911356697872556820274084863880165722412540704674103436898892019420086995087668284720735280011884232654288688745821178107500956549433608998026245202968015340445962194346918677370396012371763188424635054149710731481399768953580758609520507570397897216752956874190222172650056402871933917170930413237881239895341077036723598760397678644442700097952931436437318176698082098432418665228732422182903816939540155484392894407329064301717100090810799599523279555627090026288803870329047685709856082915869445948760641258982234115133396354724891805178333071504158545665505314898446278072061573422469048772550741744797324480751258441584845267740059799900141939714706362886917095577192468090683807287004525792206308677728273299440959029604247118000298484719022209547810411238369961179698879586486248635360013944717109020287139981801072803663284582578226657648649546127342828360690292364059722753887013678981022439348359323195739569854083784942049940038494526491151938056084129143301724947389733802335622909737193200776711040271042128146745080080648156138166641603982654606684691509500407822116201810397707743299196923463752892472005861299547677716262937361347211236558172021286744832395049971533362474003722302456017651199686203025464202504759211237446524459716659861553978018145863208923841508044872925124505205659473581057516673618847220700104713125313650404656945477924203657907209863866254532848224948288232049822891922109425068538786608872758952924970802215812620752859630759828561511006116106987956643972857311629580087104512424290220932434809455918796243931570714238022495480419863290783052248974719977533425988442410645884073480521053492447880265490987438097243281931131730588731994248217417091056966260299392943020167509496866062727500667931655099794239854903131771681124162572564163856545294985668489026826915938452607467227907954543345850879379854828415299807038769760230258904593103269927556859179206120584146684542803778518117970325503835949485783611023122348080833442704281280764614884170078442999664791800715742816812119160646876276470506341400473261905597933217850190680401342408509445069770452462733095332740157400485097903257191571473435194252010313679032627162723160781379988370934053085051679545598532104193888146021311355604256804899710450752857505066113386357209493694528484336608062206858437637197067733782910772793604021269109203453610141837951873946772544779680946559051137191578445313582873674980944399166015321157639953878265882257474582785911528031189459956653587317319710206647498998113481039012225937657245577931344126024738784070710877765081412965292380354358145531410769817034436160222057350812700193361299894961047689277639726679514916955667389310767293490686247106309881652203031411834878353085014990860747788392995025602785504931002909732818875921389875078566613099909339692678341225891248118510697449955763314958775448013394803474776881495793045629580848035613311364004438003591853110446627856029945558189976205633035704495381488790377135468563308977998718552973814663926163977017846022142938808668602184932943287844013671987338243311510570518997262367495180005642828547674319522139660049196945815666512134543587300017173352244673992129403204416976744206784549141606095652985795310387184681096695114688570460240710040218013119897230550577170098381491233778410257166783107297856224286619688765064838383299371125702688870070135006451386382324962193951858411215800547004911003439608835039520413460628531734252626140817092831096902646243844381517319192162664222492892857086690647829853522134783437088654708607013011378153991637836679260064211603894884401363502781640152280978884744704591987478995762498148565841913456086604606486173954913975047505861881621036923178465840161730648379202189166370979756639888175815725178363064840804886888221191381491462344091513245820417230006316816927991101124280436809165353643299552423756672780209559239578137158442012666038120031918377315987551828572292425991310104127087507243801759086727879228752711164191894115589330425032956443498674963088944097234394741458767280296888782425308601871426993671523247220894708720062763653867214605945089526740839985122430165279938080826156594209760230650434869393933185687657216004365813841871518619946069498678398040137298209548832175082016848176966993766502192399102961169835925919705100453296608950093974672283519864573459174359895647522089208292815543499588751885633375044860605328428574451102180999625078902248897077507345035908380523746531863199449007273155290077377813409775478444836839713948935332963505194517333686612894456630390258659491532969828955348149373939581997228017009147640323463922204793525803506035291683775154869900248970290992056612026002045835114935759406381425318037313505589947409222036175384659437205204326794645873498421086038252209817690260134492276897971021068527769908505848855060275054636730499713173265017371909040086168271956608468965004912873768373591615573856999750129947496930179840234049905380170795856338019428387668552438792134570986494913195217702157993795917321662971582804098163185053140228505436118629884312655571352146607061798541501309062197999093947356840057647262467976551924802156290252251531504114290686165354061507554432029558625509141309532402141360508787562124678226389746528294197524436926951620638698773068408251037345976906348307860309166320173987571199138350327650488375662421484071940405158369114172850434403117883123787789895754202702918789090415273665053723526954754257117908695058892786767502959647140788923959025290736196510449470286177905632854789955632942693705165907786898703045270701743998456556923077311171326171828730005941135991690213993592634631089053392475474876206316558646074582760613210569720163466848984144061652345195528939372498281303988535340800973259139039631868911125467388807325229349208173297333883937325734771795059182961762355160228774867666431677552734286499521794416871832022308946899210469992685237803256108721804748732945374566650795746608990489431683599656219188853079670592445333165295729934405931211003149584090047137861971500810808904288049333348409773281243405940860847384385502049931008887439629855700242658283797890632527245051127136449865455846640161228257997000709407157998994246251233158025690881028922420306210037172896280314171708703901805893128914524280418522306921165449351292729823474570147201435311521243677371817778219362304776697905589185743500972047188655229304709607334660528340872300375259750546369140898146216355262777663185296803575863310596349959409451707209738025212818576142346809851685605625679227522962127713336533154257925417315783965746753446414580657634571905386424315754210093472581902448157592805836284148722981456592495457731077148238844810718388919376812406257107873947234699950292768148393446071869791000131352706384896611337156172623393062465951881626227107484185365356727602883247701581419097762505436082626269959486714564279267070438946025115684594020024761828468769500380259138768083875771701506140380692842696165969391784800442546577043523811077644442636609835538543490775131470255418172946767443062058523680250341528506202705486448164218196689278730474374880627211434280392226704971658502869018894928297218653888545942466606430931748629672135613440327799108687855867285679799847135982244976081289027334334856472069859793693852985784839347551727105560797744716054729507867877731229729007002353577361617154813377284362939829819151295057880153634488540794700541116286491100417007467871347421218231276703442706699507696487234980980766496195032188217608170584106339357658126726813676840879629222373636136152032697059606041747517613159844083086440431196811044538454507100044086089453340332032620900762826506188308443569870088078692468866020154294740077963005711336898865775765919868031233507430517416112372913733650365298725285378908617312591751119759676842843540791679333176454464635078947914952388871943254198157791182448215453499524395169342566235509818291868731680733679067143409096136838126025002489651217490895187224453945358949762515084475764487030303854549243870488541083813213960575187063958674427670100258396161404792165224847433047219654780987110796504707754883582584361624516855220908714116814352555660298976848487074854227274221566080431259555996865923310996156929520432822714542317621484059580983777623322796103424418763245561762061869012313588813558851397381448310276679001875015765037341958745040656967727178285262688947697928356961666715568164753819396762318253145851447584591277243277886820092354028145851795120923149154639159841228784331408394345013312981948761403786366071071183074454465003201091574066434911038524849668498583942320860177992744706416146161085237504103575397330691496826141059523293112866533843195567769133124824090333948154954170514827102207707900183350351837095262621547423484730915550861496109030732143181100797371122246989789478171382430093255198511129537008548384641646972787666073808280091173984090607257649110549814995151007182124900671329174018387310768359843007708933769986226551843855236924300302763526615411321121184126420405939075990033343491700782612784824537395651857577944251040333243759511788294950618091591507438687883283943232730076185061015879754717253140702682879336178021137151652652152609126406064252953921222656445102082864081351238494222826703870267110390613051225063545613582522264256263270154493500868847661408071223816338804977881256141623562876690355383426649741453957997083916941073980739279331623557046174898091670252398572453038147160996153658874631459280142551104664555247892020510293857493509984939936719027117677396844691858968412544833038789947515499971793275914251961616954728501176019196807421446261920196899427814155307096500938335302572326237011449234180369723909323007372810333400056291502065253472318387675012285812384856144156610877033353359912094533639348819986972750820337861932171715427150100799758360549625392853803472390116183106946845263964264646964845320873976613964629189007878783242835140965773250092191007822854064716888148953245682795443174862410981221995828605358619691301027581352670326112293217493274426555774866233290076720994664026583262446357294631236814571213685464092446797990918023455725220904359432610190327644773866127518786395920040267836402478438777270838120055097389979856825619641023169318990378674745249210535897271449631476575001203709499918181056537255702674061145099056790688100720314393460427320120258741904227054307518409045855413606379352130412285578115753218315429545752022859587815572544416373917026312540145430059932039536876118174114419581782427852070600550653291444437779653652369867225675104043394426452807582843719855933586424680010519417049445371429048638029853207340566906685679312048561664852008450978787935225824969860643877655252530308019307402260094053963122555574947129129146507369263724807815929794367264003384643358687851782017351319251604500511371187028993630158726623860485017921388166592381512129222648767301303776000985906393336217877653775309201440491115643285264107194844443278172307645589023097513741540619730546431007427132044934815426278024725725424426479784333019454635318807032494410504778861310665412002339217801166790458429440811197343582809980661052201686245019543127949850959301070865603498804368454937089460111394910428880878976691316113948250561500394849195267353537862305576802298017430270779312367728509964956020809765783893053665223382552341737748962527028375283132627787981367923812812923551779101623157389585008340739218187663699790967332848484463905489046758226840479871122158713353303701800393639092012765215755994219955632335423565628139315468144794702240813858958157670731487404499669412883507405298351567302183493263241215774555534652327200335804775533223344079700483044600394878846662695111694067991179182216291155351253947410387813573512316814467052075034923653521418017072486441277802620676874737054127121460709588733849805440965767289607219648069377614096710394886713466658524896844732335215820299111695551790471908574788193404919736752724413156565566878557977380955693768657737237391545665199290021722411410109546757565294408420801312985293917689834254372367988542316585272317096444468395726239842565972007857630217896946827852336158797851956514255248774249339732341184123046607067326291715621141383221861571901101041821262662053893444945989142448690954255220468147669463651015119921944515917614535750137317893517538904276676693926027476101245572870037210104791054510485332296303190518808470836616630657172069012996575407229579685651365788887457002488676539773279559269441713590044930056200315551105943427890627101974970407474732622405331904868294669525295765015116017600049725266994204385694704215309729661986707031240855723688484563947544615925958314940635124886645991829319401402658904824353230102964683684945296507325113680261781768705378468498338836597335499395953579505131556868980373610574836627805020396877073758733929508255715924724002333365721823716534706862722050928427038789318940459967488904733071849041165692025359391978186223989524389981343506396871145968092397724440501198106811996569959979811460262349419041246904142005635287887001496014823374575437711742001378178078766361040478180935707193259938726988363000893415588763091651712056654447157629551228374307596236907629456540380908904876280376301576240695107474182014917120130653379931144959060978797721413604066804483720307170640232612312995270117871382661885688202407623338600251598087132368014320773119945918158171245687103651587713190694129669978011146307018778192821986866294345771879762802211711044478214109208427484061022706116095594583746769409097922247676598690068730773299785597906995457247203710102751410371669433071829649631239124845796050004967066571949681552302339283575357481902896255958813145009895502654611667056457395410538968342804101029496868816000000134712406743048127476796346460404248937228091466311069141829172465519818989781963080203758051025494203520411227154806186787670311132741512107920609120991889949660404786599445846766775037095842144212889338374211965366972468787624219797035591725122754470958023843490310946032163638326964147910129249903305674913906426164865051210148489150694628265495443522168708828957957830328921008619320726848872462853814226637395361509201000744217071054381921222046459701519776488432293728115587849429207431262024920746652530336374554537955250068815215681377480014326952619134808370953057574914939890573343271273717369830620651794083378921726304698159918853445640413831586804704522699414155873215525070623053148875286340526980219514969620994537089479769507202779977388147415726174785257720352411642029240806474885370640459873380962131984936643584769803189561570818510259631500143639433167509009552649500244112269606484754455029729237206219521420929694775550321903626707194557822396933563431253660157810948145426574269920983565374069925974831613613995361738575992980176620834351153219637500137044878366353422251379006256537582978080603660404598033855972670233335445436881073008520820054798112849934656760314379807544683204960225898503666184894591139461310138200162292167171236763022476328959882154181783853699391986213153015876521060849957681117829834552662598990929486143871105790722379285793715306408025396190947123572740651131933003292367682977967341545146219574549211375538978173952891748644652822439932486867157391713289746272857861455992614332729219743962589959182286289726397049444185255398400406306227781889036700323649141873445246489282279645833716688993435587414460759621394403601861016592666423379777957144234667560833883988363783048768678582313770336632256323571260298757440854010144593682370187476263506766609310930139682452052778201700716337497414183730633809840616338128666036593664076483576595815955969283120039434410252236881819598684987957105615313681510416272082967536786620157844743186779790113187904316650908838817302878428356098302964976888730053713842008417756658828695758081181567159306843511505340009373291100798125429213252373678361157445758706441834734056451165017216662464677609346837560752920032286451108236392470840095964887972902724235676756693886869971563365595814317600730425656596357638760030402382647015923296027067688240253665401275367685023096795989970723671990279238164175846606460588889931657500298135737607878808749412171806699244675601745786041967413569005958892352876963799514496335558002637613605540173191538675040708861875299352446250814484157966414624017382484575586792156749386793558088820125783470975377801888344982435221467576544424187701300964664033498308518988141305026300634244135211777571233732046059171140856101155582296707654804919389717412029923521840432714425461246818514221021356483897673789222839951596999916069335667299037188217971914014816394122950319810421395946295186575884607264950887215944372911196153103171652936098745606828874862023943071181052968663478470825248944056673888127611720755513456820099860794737217050758122518461556567286580503303211058133741339351496279339437143081506116071776823863974018140451069983818973704048784442101570695398655140728471752913170121029866639161305079049005138672428885890082982544579379748214608597428833005394586640884783043514915252260948920320821347236532591732270258613782110299207977929732750233147231624794296613488503570088436537553435028263882898291055817142192869698293566947596707640025851922699990885255630699473611389606453175404594603728978432094335092138849246554047397794162913687278882616183027233537255864956628204339424047637765792090368541532056484657980235379348775906271647673071048244756339014080823783691488316167974799569419241355966830178209574964686715268938646317868371613552777708440810297454589063318254183591349339026664108056796643618200645004889515446375693375887371831837409118206820361687371973337042024974429567998259366795993901882890463009717837126359443936649654830551631485393713944389871679315670828274654064668099063962595882514959360167381843752775678300620106462498094640993506055884311849116522985121135354157545212885369479604757311711033929100268624132695605864725124465949011233163258621390668002088160445260428465989078300973907429807333276413756264444496460711408245210168182516410758891691774583698126540565452702135319498491996300912159110648015528749025917513902038868903885422454883512697398662267046413271959031606774889981539236544031704265003727851853446375844523227449658585847017284513487464917642682612869447434651486221746221204723280483265759462591056187637531568458061073274108991129874260132464769443712005296614572128889925783280126505624872611594745197641440416713035067456678234548349713111998161678883940195400364642779104782525332602566898258312027743085437453482067600301680429800247273759926624188042157356741150305000032686040288537709237614532589025494506072139532889407880621089695047651751940143271162368825183206697787062615375887516066002672532538759994733731429765062497405219890305389385334113632903033048535448491763032658146600090096228866445660972209997815055107839530112603842439249293258657927118812527626129446457871810105258286486711277053604600445732119134679894864928565057635916884061808285597821332815221493195679881193848100118115651623867813683057523970418455474253708166725403228987827816925204655334388477377955814522512558715347864894073804518647354603226131824415092510656423037293308212017871422454843430154487232390406941810124307452566405491699487009891509670702986613195839635406734758465693367281583868902556616073507101032515077929849368264573824058727080403158238181965664235259580755564036878256617061035731846384502069170893935538601527644190049591524451879049687486669533846152778561660890099223856528567842525609321286151870386650085877441064222787790764911202789118574075619581013047245845210090511613916642772931315500002147171847052539495311316242344249659794992798524615866498927876219991266103135436722642418770947802097410773789483417361858297134431296102564015712594331709453449445138383733026474743019299453348937851054845468958175361889061909934132745570213963932687416280831318476655985919089861026744520721421732196034480499046118368486421688397695665671918867955960903409751527498535718916880642806215278489242510255851225054710137896517819081496074301518030094412381500649401711100453591175018482661515451159463106880843913126895388846861803553177753127372398529383476914176288825407893971292946456748548268265141079987279710067548702137962578001141939098353759325686620659673036093892707247142067050432775541105555856239759566825928800448974794381030044994895373475392116507324758409358236177645479062221723919033055893138361850328870809089322329429224305162191811596908027420706452320042952052692921131310495983601201065953649329546324044319501166673861116161037638953235633352357047676077079478938551588982571810390726178114486678629367787999921832784325406816393615848503899525380080722627203134060698896398898702291260172918244086158924828970770158347472537737516153573312659806146457243935158088494642969303016037935687732012601514238912311852289118807406052310468671694717640788300200513297505914119686806502655763660898656028410270726271793257962631656314249914375679320767853346145953025940581916749021178096436502631152674808960055786802720576756211783298717435157779926802681089241534833348811636614433940150624223022860377194476158975663760099923187166493766589813174375970903463382680154948239572347575830674791486035248679391127320462902698533364045992529913787399293259096443543962623355412868104552675058089634146589519519240536838825804179468162560574567306385162166916854293406002604973441232960301134043508577552072309423878967263023764615941132237117863458350568981123358216504316604098089366615516004751230062006333371694360892478024297103002319258044284915005545481069168689203427557720041606447719755140858581603556486267487935955314247615170074139363734132584673394239988940563148404516099983129595713279337422076151176219743422622596523001832482743171909445080394194993518823028806578446512825245125581477198825894519225932439672061297331542040611183285449204018414341138201882705210425284392940171635136114337510215413760304544205034377683074781699285332072385036384281346253801553987432461918549878675314659997009222256764030349108269260698710563539491112185243347131895387481481759943877916591071012354610733781491983495931204573462633784776776777056681351466155060004452096535579806570645236941996923076652669256987083493120711613210413964007530339428684709450294204903437966932379073619328396678081498668206961347818271348661052696506910510020146119514234750771130902313482029458299658528119671496282324108343133517053204763759993958209027816632449131224378857732357203259948108287507590061489735542873796653359704735430075681411756076012723373289865045085088735965546812549333766782797856476973515475735264292722925602590136923744889121476015799778110757210586894943376107631228711424127479709988567019061389562478492290707093362507696714632978836574566971229391157457751857607933271665122246421531924923168022447396736692386955958598884860381910830491710746633098673384978641997429752249430233434574653816059409174671029501832232080281200439566323367290199498299226034732219844158400006372381777743363217015693693048206074253270041392110290246766921991317048917929635421486380692123855272510046018790174613354733410217284686322400014261352799953498798075889695111417043270786578949645095989709531629304196384907145576801521562793638958246626673000936829307134106984994715658425863152186421273731238029337103997505845806541108188981964510216898097814384004235615783887130740555480973862978269388890288478546279065559202007535042613415476062134679199723063729466370645063280668925213017202404399372059046758793793923355395883800064327865079734974879165245135883618944310128857317377574847130081768462564882516224763609292032731817884317573260298067410585515120211509265053286788089767018576384199459895389541446014027442171658486659889146929225167106952191021702884839265030328513937435670548721953888884215466433091470565277097429352553005692735849430859192155881253146829210920448306624520505547061676264671464305904379362606585929382231244892804514651662694463102971654405204971517263671197626410312923077363567871395858751933428153434918339746769934402683113207473402766371956551150706177298393521590210071972446388686966441426624416957464535228362438506167043110861614548505290738695963815404671351253466214624684473176202894965137223384397209615845089984957620357896532271316746880302555464651589667412426488178629019759194900833886832233190569514387507299258895319356283957782485140245306052450644156142671482592532204950483946204053980403624322214149743191266603357909283774614121439302075088139993906538169122898063302197173943912930747873166289926220618869907803506721830950813422570355832339783280397207942084452839080945079334155312327415629262841419908865845694239927622469148400815230666060962608323339233107700864288035529750956698716090841683542832550206030032646379079177122079584444369373566925563045534334790375727421912005271644264372836173912135386571295242631353751728208967252577747303432177140077455750167557675369220201890867970248984320800681266036818204881750018530686112778325634063537175704815324553702238673798803723104085250880614242341344131977490437049240591276359898209846201634295565471768489103921857711011586915805683252615639337575671138646593125212258053487503680239578088132743402509012142638042459141981003644416151476852244400028870466557272006249654700842837643199636083101231163572462354956353984530185231315001623064924483964123600833357191274050708174620265026702406893112453897840245335666924146325715027986358607273553892872567508350556072373395762344362406224612857557624618633875422045423750112782851409048195748456172555721154138023765491312713892688282919675425006695099187194028471119453889003459629349227016829255882978686279285213620558476072068635227621734988773298689722787875135110601164192369018853653262176299349639311373980035948302501204380342225532878318072619787838692128194353476650802609180210557759267840159680875461956806827013189943978321088617359383183497517618008800436776991962132353413959415569448765444959286637603036486620574555903246145753694866472437911588214867682337355483908614774019951283648784538257887165372823289975797775526795433303677001621891402952704844322359595720237065021894704649613679296066651257877188953730689794946627287856028265684601099137700508530395703815964539192994686299240686742723665983895157176395379773638465868756669089637044390614355917463557418394604513810359229346162449986900463461002350629093718199585179969894397259981963747517317432574081749529954749889401420694787640607565505546592428366241688531904449006624441375276240871628761941918171608481102297292244305733327766040583179705893157039049317507729838232340526566112057045568278633492783403988212839194220201947212959201401636684927063514998367027214870697783125880844023851885342333349532637126327511475957680469683947321341013316467599498339138886132991551929108031430428694505911366256842046018315128209010686383948101771882303340871957065091883939998410311084392478793045513300872371252945930312848915706447943850917721688093322560630336801244999095705275952031627458744220747427253038655728082747147987154824791180171540206402375776748438842802344308028946528003590782718358877668124979557301983694311886866816187577988202092656537530150046707253499747068230654717135697965247292143609623934926883011547563742672292266681933384511805214227725901432170805686407662567898704345952644180928585098138119775984607961093996807932342093745120735474669016645183480092756418546693161854759625086433070530835557394095911434704707516982589384075499573364099514721686344165345964199107082903779116717189973022929058592900721288133398847281733788652292924987095507098600682802961349235808122937640218567311311042954386942520329202533153378033204472134843851807651662073986197886371773565416325428260382950861873726796573577480770848858478910360936753814710469650219914693654933621222935874418617730311977719378321504870737892179014654695336749268290458618247974340494684910157851336100211930160189130979594568703838753593239072081301025375292753723073555533495965768500613990131484076500534484967034571147484184330314896418760560004207788109324242682807247813426298697639883520911686535204142908373806355719831920098538893175573709623216949395160556505408932381130224048180064191572359685290696166630752391398130658189784262389443823152113990084628716762248447724102960347775884503415630855634071214453694325958821373582873600559449587471865121723777129556963420024760787374972700336515759790722254488397071716820963933162421978445590091672520350921286901690631694599160040851245101146075129458020587559512066576512503296257675574189246515386560532737135980940646473399108818930344541300485690983446614667097994494822657650825314067170385805658235278336402644910671033103526203206676410761350401648943397672632413090614627143756249978698375141771170097196110499850457747829824612559576404444274875036285054187723219537023230390910222102748487505446044241204667754965095945288622731125981054121228551170335022171931369936962665061554824413858988010140561229522024146160223320767635140789743728002701512203849496178329220803118507290979493877857512049860995998723486866335730006449403205790398040269317151568631528353517095005666260849361180412967600079766390053160939330852551289999020727411858566152622587741418569702300598837264287990787450762057116323674319334548139626414473233831973392181361209392466754788960366944129564295631368169926087637623962731154661500590787028088943213156153309691481044233996356024842917859124627648235523359257496023743929036659963336033964704077796995479771604429005675550416081866599574027201225263029102377860028138412977799804853697074400082782695267284240389536303782060736579185579556416228672390241243658400433208239466886644938320957783070429314907187707207825743912356013178835730049024948453417007332016925900330271297892550488663379875245820163974117875652663556550615278545573073585696584829775086923170590797568946121609831618901181121199595164573038863855343175801440374670119238953868149235437007667961344383958617509272762881503582755198177752407217774498341515512306369299700709398461432894070007115515795397345543125657211146132820900999119645955512441830226181148010469300904367664837951581464889235786556044292722243141498797913926560071684493926142731129559201323768200255879996394888227970935479132804599796950772760782032597522334825916409008671129601276595299109680296282267148017993679327005812829540906211368109232605141072921082297900353784178675945505904045559732798622337297011444876595070037370561170558743413268565250169569780992728551041260393922063023595940056537271377977825738896108352998550134575095806254520777719900971374037325359046844507490194298880593008088579614938107702645358373401757860418025178930091658057638209241085794622392288327204667991770433118235898903875687199292620543581512236733063022294197151306616038607337635574373811948734032351863844497781847940547658960694244453893579081346960951113840782433936575239716867374036925481155400830238767302107622415424649103169913853893577328043198282304271054573215247580025818534591541577057273091890785613208518394450455455986419527774279133445644282673553824918558284997304581773371790777363224181252132019585939116232352988475834418706924856769243639862696732617166803235705593398553205320173979950354577915077652578783332609843086420856191028814695137825798685724847762432776404280127792304194560622071099822216832981756405639908859408845087741700012958445729711143733806688037245752434815236429670794585521458515350969652565942849751571985520859207634607484793536903758494438505877316069359750517743540288080586236995138718037575089162766472718196278838922210481991580243302109269876423196485739469329554133436632439905280225375556522693615279336370481793854995538301368904672937087087105705381141828003602079903179742488312510634765152880583648076742925074366262524662558890013981224605253514387349002765095349407844245103742163285657782160327002955725416639489515464310128546774900997934647027966545060959703547354324311181481171874909646299610302010977537204669837177285155764827509792256719589633526306656448567978898958814199223296788833901446549098635095378498817099051694539096360663442395228732390240627018228278365466996737052100278663586291649829461436235765461754524040142511779954130166739771523092449084843700977956168824376091520166047841789782338633432292986570181927497869626029182203487581128528265882907864462840934367349968220821555065489697829088476574964080492213147486630108805985629674545062220995304531956265279650769537724154922768979673693740576732124089886662944866091937410436308588487423721517537508913709038027119591238808160928789748871655825173775829725986815405268799741809295582227178982318440783702692022814310271067030333928310919754948963665589258577431947799326771134017989791140008048030019597798191809382527320050493071561051505639461721341248661122356593544075272264534084297091196356819717029396963254766386937585584085608209545215685585979913611418585802529836300560092702417100973654132064032162099527624272318398094840860262858321034817280299605395540370279172880185021120087607641801287420779946730469775484364133337837180109176110967452629310571619452598139461115938246958970721512392451764933668438700308162586332994646208577005784313058721204374272173283387551155514140822394068721314939822778283553005747065740185517434202490326916352358834287889323178978399807525888958867627332888034805016183368368568006222180537431180619163312804148809701934219528083602710276653317015188140949432167166177994018873919993166648833213940817041955024061856667527974822565468983623387353638346647898681676595686941487894000813251647753233056406501418390029711681196448391774506640034813264658370094847669078937481172347583392738152229099291231265141956446767950820372364536511312877738364489878352561309860198179672135888713617368766906636006518283492029328556712113435119615580502646786612108165088498367046317530221919907069298842044659751655590315097123798940860808680890806022168950093241370740978107740653985186388821555397063966123763632292296863904185974310536291536120521114090307575122978301843139817248238055632631403847887653219101382661386475535569217620371063907223438246685592551955388529518294470861471345252875660891554773194708555619805657774340386938468107032332854907039619850608939137051724256903159547106208358059345649736772378399442667468865052403158906929101313337932624163683391527500075308268670743819599803264115837329125115440992219596942866248762298377582032597126588792082266139018311563209401151742614684572023288774301718851592656416720585891608959460938070101876092075770033349808558543060527201621297076703051211474486285907490396003377768432049541240862701709629333328057822252458719293068911096579390889467272606121543168731220799444754741998312619215439133181614360198813219638479212952646201789625011380129297262549385833197330733173272294321476114695167847248151891740274926206226269240424173512328405381574719582413152077935741606868027464044846973008747368279435482651206249655919709446165120604592287798817259779863236031235794027132558044405330749215179949046233098076353821408130912942080404491126405941634867492860125268322265993495470176186105132547597221136315406073927371664457729193479408654241945656074705729907216791917207060444533980998548999465435851055558118529317729657605943942907814506627042323260005197651838750658435054166185462739874170164300763618830053750150563910357190205965887348753851363243487693800457393662218789792771368901430929387782409676807917834631923126699591523102843420789678883535329016584512386920543794854968710596439462948332125684830390121777797996884755860568310034545495587504889312138682641066332542971840984328131251225269100399113762131210627397294428814497153286226948313171909104265558010404412826911451868302120189777869666942161863761181456821086023157890315255117875693681458314521485565793775200874031971833110511521197256496501337138066940716424082199891932653631346791289499510403857093989302403196575765468988980556787045269383385822396165341167074439694652117942669913681107630326481832946845191761947457876645939538357966728500864092296211450893848310232561038615609368736376744273562405859113129924001263672789379265663178266234655318973318372146121862755581595211596050551753471429888477009926950517216325286232798192016714819547061498420506362470917241312164470911981074906013130298602875134025137880887309237646470333951715508394858190815198672446457342392218329475299821160585674220040570663842691085496733886789435481211729565305502955710607196196717196873063740136486474069861794463786235621926526202736240552046804468442328299069249454422098381125576835315192573104951174246524773303613870359510233866973315555174197305481144002935226516552374970024542628653671925690928028312553581240980609930359492524589486212333392894867894854418150370466999328170067608417975579960848681956549790264249030138850376095147018191537381332355272356635154255056934208590871735850425545990803152124865535817344486635183770777119732465192382432007280185101560288218789000416760648375150107223982069877451740004528893521895211581406355835510333835735707130535540533594231460962112615886527292110248501576588669331814248113171608034779290682101985671555193231727512220442775557222447139364885555653677847516125834568526533326898241755771127623303894752163181548356245016710307114162104094868944855426781931082873233377874949195977156015605060928277506600086060484740110069355460431454305984314473943499549984331793797894915562034260829991881982277581673931754756197853888799569093369722744075855289341434572069597797515929283750983918653040039111505879570200027063433993070069995811815400581000479354619943619575169199507426122452275637196500573339191788980237284302259436460970545719736783720643394330021103317986693331548319641347517754674819857769782345328929859527386131856917922985190014555642465594286699642422261711859351017882734981028361368252703622461769437591102308195405866288704232985956254967329692378104886344995928294928094559694078545933348575156923305983440413189405415660761455769805267030928272451407080500362161020819768796696663710907065481810466352602755629205728109321602199149928254853358968154185213073866418690451998443094246240616232742280644523790279436573467177714011175161949245780870916487174613747261611871622951754523546899978489056924332008574634274407820817788548758089152516292771129659186740044025084477232628430391696321551047499763724403838040520572958291647661956675081331790309817103975027908209628025299703323814149800474986143620088085069322794367403898344063239423801587570933104901007721422850268634025264270158423826635626489004976542406810834573631975185385633361089721579117002460630330705507161080060674048680374697895976522241783760552901633027985817599927877168214977525411712288979268892721414861998209502478863278721704838489793123648224216374350727038036782831013137805589207360631159031885580287638230379075644151054816380965674714792841852498434749139772743213070504800419485318291447134880896545497784959142318637684568014030447638292058987907784270265016632652638850480203326154636635706677074079649208571277879778427528456375787205952343977182375315179684954886441689341472765630877744263312031415686334413348786719002747733226467229337504888061790666678728563985046915060404251367051140916984840646379713464061456955712466826640028732714341924775366903987828393945795555336805755938364908357908616346562811133232451679989526044936062904568868199713395830836417606548532894621043678727828704307514994104240396447815703613681319769513448522438980593801309934807079884447588707427181010715350280191546262259214799959035611948115014131694806134337786682566962176420145715905576624056251716495711468335915567022793965637161851774182354049227918448039013842325755886525308929852104492788229324914668529275586977140355371289048323313306677178140324490197880794731616780142035575750380230188845628878314888286085304575957933714328399103985067043342415183690645096766634932386091817082470839280742709169243133411566647479483685708926707252127673933533731051636759242305503671182712327058867054547421312521871235780287885495448234969863911980324182728501613248650671654786239604830072681125104319578306642478909699755138484582712912597774638466757514070575623568652652157400356430439348535188248682506073207197188873577225008855683208454135931376183103722132966075100998268415798007797342112433589662873876861746526622758749276276165801371354219685718354074194371227083638213262681068368910589616396419857471986329054717694943038856133301591372137587600153210996242026088019627701947291918374815141255290200728511729289339394869482343194312376775865946481791179988413773731010457594742378107277145815491857399330293413628546978269242973564640408829000280257020483288487091228105702920020917577098517767310944681892736103697402726151006224015180255482853311344688407992853575902264083884683703438924055841178948596047770944795385605364736114923747576893008941344297895834249448899051327643585380099486111172932872656407160448215123717735472846618187419180929290763848033827114535411088068130082899208298999940732882592267360236673847194381226407475867377826381587033144041531130618041938770197017324079026779520242551976409876262900939671785024964902316562503185254627854557529783400731587523478874631282994431163871183914956273866640477538764985926286327810016183879129735856343291384584450382812381723051489671807722532877836474480843140613498116480743232535012619692968395377287207399118334581050221857285441179044583123716559366203272274599097706538670126029810262049358261190054218680599877120601700747917554080989389736900085775261618018454651416188186039223012496334477252990293397757646290563172332882247907715008076196791975942251540863857993261163229698351316204698927779867880156773307017327699651937845806501161771656389508365596273174081290749051600285363021387872919553022831469212966551067044922636217934148963535104916047157736942015462145368256710191821581050022512972448188188653189744496433656126763097373424603293471929641337725085407608309716943923288658403467769170745709201409579642811745669165079270997792184064384023052390941949654614507815840024278809392387831433781126950431353808866797015797564090334953647410709893780779350625657690776302283817136846244159912876851477152446929829215062309066847602369420277370039423786500041941577902673442627667802076613792361780290501405038141502865930694985874337759209340028185736043727334451980428015980072594027466438617112663290524362651310180950261051967170631181054660678399946056415257496586137755859699459679520577948328869505027946280795551227627676374286242720132997602717371947501835375873666271981252022931510085762468409664895848082582436539029221509306199657939331334597830671421297294732365642799085214461809324992312140247858433557296565674885247452689543381496792826418892581418404577509053102550542520342615139917707870225332290057903704081179973934057939776116233935454775633770800836728480458163702319296291898415858276558663054601264701817348424376405795814010824828692087120123901752759787837204288935620393881278691730969296375853764588736079980666512428518355391689991129532974635596020156493427481352635726318880063078550423563540615398053471492079262524503229275120789599370974545345589305708406449940523024929585901112714080794328559043734780238070885798723304706092067386429922642217300477869593314289480167341767899859234037113300268420080967967113603062271231151968306253185189009051359173261779158962222131749244451804527677716115659280753249126720109665722672133530602280790878957716466978516808765392051779214049514093042984949637067552824208637618713119394965877580945192486176162940671725554371612251960823321473908601519767156188730591445914898182673112597604716575368413568464213396445270541801064674731290899339123879332428787928310849798869494317198201747799850954993998244300736486728797822140568372551846908834120467151401814964988437100182852485958338934307323663752818067100423412592896838063093887681386120715509314203989978388541673834269963692454843734904596444170848454999923507889326530178653546508483349733711570897988589294726989126319261437189644476371872861478196962665297145190483948321618328437021951882668713034566999091425997274244734158702264222374177053556178167934820476457753786049229356363456459467174289817496134245885090093946696235068646400811568410162009587772085712598564718762600304698304687333620554822424590942223961556756596778866896414653031940994815543331571746776423808198235676912358714092464103454562143271685684669440122827337735232443485485520106083581406290520644170046123038438576554859823086067421379968374121624632012764053509934722223575490969928711695792881871575849253298958196145033949928927004207472636067450279275812106948550333748418878749726595338186578343022732113875171411618780822250851563244121640343997528559197761070354359314202901910761388384599669430987738774479559494053972899581967794962723422321353114810565979118264090120722601579329353265953449049689396056006670678717297542676958155613244591644455388988670052708589358001043395107405763457870911938377941453350776743136112091252651050021896746014249878717240727646354733382727908849439582977345644162406153235945851664071835124983813949318950387937180062162699732468607607178309238593176132759016363249474446166024483653645179503381457821881201241727246758917700252436714122345934118767205005428200913141532889394950148835603388678490504605821489165931046549165123496170118417042766479300383700716285680803509446773030604729161864688742515925026292112021389884455709653103639872719704050066798002717559794860594995645424057060641039090327994131521530752503938511694209159142612463948272107102777425543141913491422348109195126785733374074006245418195479131517246516862948179385434877628563178831149656110526474692581367526340401673604629900773899612262525838359219228635994076109208970580234643769001681381462555773370999602167997007977789783462258504640367771742950852520180505881809229243620561145960152165205289641583229338205162422791160333476122997140604662399897927814357762600398425888138776373584132924980856122021596771654441385124679628477681868503220389688719552901692169434153458548289112204826922077782575353463803887712630366467281827670210887972671800125930668923996345456919796327097897289611486444656074302772365276446137191841372066952468835426963097284250810997237812662958467508592590586159426177286133906950741686359454487664923187375819637117565352752166384987642122539491107743990114820421874318955438376136700946082028551640192278220396993571955784582166229666137097752095205106329034979974327921093810501033130079015659367539957431589045433102771136642285391649427506966639333284668526224032818740751061213053606182328897589680434459702385142636371252629910102101855241256459727654463890863192015048574456784499993283840681604056727860698504265390169849896093596507020528755437797624230499985198221658318697266696348712263754545416749356515827698589116683422378246750917221724330221059830036352961981571551805927032917467388708086693183349929532761591865323424654017987014125095817144591995511311870698865244027835315887331023854413316759309884688276164807693640276181443785845305148700258710985027022882384926934567210377138991648667351467890368543188634890393980218144710629373312680004643982046778256949611279169258975323931304285855294572468967895901498875751309849272239513268680373753382577946279578731663664782336830596358369261010875717418551753538993381678893861269285194449136138085835058112046965066477403817005319654190407110486764239647627265299658762249991136920265718341365852165967555475182086555233451375892423556142056698441160279117757441086073461472347560689530147608578908691167259292328804097417998384107334407069580850623325328980198018196768634364137921742230908316230170246413189747527416083548010767996426953370349370347385169478308295328597784094878464821682729910879986962344607826814721524368072829124099271219409452464177881293719350444458959770640258467241613320032943963097076333440390854529724633615983403481089685028771172671346582989019845132622739548168738573547450027593231621417391223213579702080350429665475826064431863777022092234525554091579267416828363632993705490949397569342187606473631170825147679965188338134099316996672666819769175850679274325962429635575013175027456629081317194177960110008446255203974341776074525257316618879709413797211820025372605621855632652044169416568946065481948181588075392817454402133022828205509045547302288113923504559709770740843961492444125976026832186759696938860838638714852193446190183713763888811581044707527406958568846665508877728019251968968038866407072844196858215744662572953353709345556470817296595450786364212049222333378482816232395820784440782337293128489223594579654509643292176100264917270350840265842510934163774964476870877158345850686547019547092385727940974720331457505744862206985514661662778693143537739503699853803726264400665068831637611696846757774063539595579868279201191622332250616899196431070523096044606120741115217578080740157967728914223462796244018890820642733236680975367758528010908202414971871871254711061490541833661204283311545496045849862689089621085676594148944036308001810176012662772284789623040378051805180670358019983483705931181431800339889002187522603840190620218239191838916641715416660648438116658074028787963999814516963002661575834883235992138696489474698881777756950056878426383651362080725788010207611462981912500921840533916304675885280527563352592720955470724684856146893295780016561242043779927133777245799089874215955064098383993514883326429978753368874020990919994916500378011239488905975303521291950597282500273023852895458105863556408349237450295648380705352476529874287568469395224182083091153353921511578952689164784294735142300092371881020686365484328579020754747585489014996046473029999828546398385096939590120261383443518849114013200528925438347448561018614593260604023728904097153080574833704661853937072393998971277681954381016695513670593339069243655697987982595404231345770783481867860719238568033644117763026381587987983626794978920497578538375026957888293613183660829300174200578020891307631236337925382780198701050461129776036532747082283613706138326830800363125380319111054553247762954708303717538770378566127207000114771085922519232611940242415193559814960366176786641906998112961772182416946390249177967124698973362860872242456822804202590832232194538283933093764782136124863488103735635842139340246087415028962936302703384994768715593620058291596803724104111233319964411252295892778745975948915506220153848970918239797851954629619781466760335764753798510209977529158312744698662823398205381965341122767151739446069979057345048796663515959321963191018092913408458213516412881019675399700922756858110149480594401593905156441971544061476077169565331608465818933586091309212313421230726068412096671100687872458373116933543566072341305716587198595335522720467951589045843603865678278274972603238971459966138808986738167730862569353609224171915646246495823853393515198673909540656939607360044143091821967414585387953003728235736429281474988032453879408162953001206103585491307177293655816621278039173517857293066000570122831012693705073517882456855492042006131540208169364764059668829704013292649041216226853106634455104865643581325446967043110442839801168909235495799011899914333235360752166470428997086633147319906007169841009453154570732915138886636362930316572491421123075339695871864735291580432627303319222939073810257188962719825060455689938349762305279584400396025289605558465853177025132159887572334153873219408068008278348360675138180628075931893669634356444387526957123518703290959950834371044951923800443549780251682243473730013905942694354339191327234713711926609371279184900768567551996094822903223011936525630865255925391577644561321446613277549658201221966746078821700948767128410444658647796136616347886142906841067086202334097300217125366250590418396924011183040253602497003123272971540852464341199403424785768119698681055521398294608076504319369503567862423231301780076773314137607392292640008607589054161509853093430642745168452915055045668178979422907523118876286475679025523034634404896445274875123440566438599862364923734226606328131772354374677445685690783082633846740517311668898747418320538029614333476510287724316165784804277851539176731140768518442926588576136565731382970608542679151705908792850148125501276416110523211298543216081583170672018590780091097830392681749554709705413234976251252667660201276732512309218434407675792496932851592605246392411574768430226750294565428340547971031532156059073559169367571172232627136179062735275096278161956854139506953609846071032390117558105608898689244640697194019474623984054131760875437515183521957968473244861115193764806863580233837037179418372528605428989300042690422281364276320151990257390770428492288441298594070982293705535545916971608281663583998408171467310221582482540430456305230113852133438511624055695253564690712479662711184888808621774242782410868597109847511031869658146807959158034705737768942046775233305728413040843260849975321695556250380647087758784689685608716824617395758490242520010393260030688008780264332365928783908301990578312225168058323757433623149186637878153560796271391415034777386989356434452425609049151061427507995854169994957650506003206042762848957958406616650476031266098102397717758884643818021710599923849065874699494242297017221185525229000424210373954053300195202329471542252244414279378590595550563748055269149467211340219630343737902287778676837307075383788117989989518366674426659307907777570605748426505073999098174249302135925601106976111165539335703208808085954238598101126202329496792646395074933145565059869020177538607496099634002075935362861617230335468484685602165506522645841181231583386643315670810356210838223192360927291420910952655226156236915876111976176860313310809019423278196210918635039645270144192826772079476440157940235323130269863425444563107028234717406385387357226492196020400624118500910465978153163472920273520755783987413886691959074554824259360268303272185763606901022383990033237280707534580855970608507095508096107628768198690258140335036317796859666486411649636223521505263673988198378656505240206115407045562263815444815512877639528438938186196286585378663959284024172604288460690809107503651546840922644074337469224214825290852727745112582191952633739396387870474097095991550222825201664970403513827353974087095644544711861247109004361502804108547289969166944357174417534533492526974893363303733167836638545346481213802598643609113859835477472910461277641279226447403230994305074433144650066152293986720106881667787340757211537015134594911743032387710305093430126866497059345354390126006085943913850499900416105334151952779113594139983191147085362494909028394555695353990992205922850057072702970788263605437483086607129816123872153096743212717239998473202221423924076789785699997126354759984316917921857657241432928069034915813620057146165195903760906039088940881567064655021941548544394608197763002024939053046528013719705635167862385066213727272158418763718210849678379998087457418133720611742304037254423537651506863332384501981305247226961653569556920345263183193981220078804730486741801015854953417581709243911555547176200650983271751105974261278109978872301113028483748271663190738204346144232537145959516231889708104280110238910546734692949223727960415228410267071737579677296072756247159475863289462593799315093167124122732302772311029851141494060523805282040426220792677404271343860539231067270204115060185715039320087460860634878618486901177773525565395683100582663063515114542122473726625722404347154651033827402959415400354185080121771334734873914307064930281521245880559870557542304875144878408660895654288766877521740154723870332294790577899744221903874320611208806012964090560229526674304956794093884582785868240979992926647602518402767132226840245122177568640359570510804781181818364231556470477020315246631346711817536606477576592102882622456927392185416382381413162887892498405546015255682013257367371647291012580188464055502576606647164937662517816237235507566600140691419235846172619869855248092637769207337510586879701728512337294659814381965996430717579291461267776848843040387058870641542039605934012078652645627051934505965338521027470319310000893667102900209674753191165669168290863725494166294549450177548005952159013491658425485346112387331999441376912939808337573407937109674761614228964870202109488677497105121065305172279429526440639739015782480057438766471928118948015477279554655815218258057324183966368592859772541501569944866001563092648705453859251449406673004530335722235622215650235569172226643278910624309040032921934479235213948423267944716118625819365116895182573096356777102854916613512151623876165546383411350744546350257302689738626072272569181735063563269716187963620720580138917947085687017195515718742242995724625322029503891876398747435809365686016427717408145807048899097329135680930564377250898396729810305250068490769384152957161771252843754086463584063658842094447476007992615119458597038934998597364815772474116886348060078067275844993762070442837189392558673895911190909350926727847077887658077478344836530796245130028916973795765499770044244126462514257415446138959874166906661460026901530256821516857207175075816594937519670663419715731656906050209361381788901529710310065938057502920116693799766100743280359227289285033303490222297873589933265013730965219149348750695891034352957024086828414301821800477785959249839403944363259605255319037727317007738717351251896972178156527680850585539114470246994653818581342302078430944148465485146652470710201625562825971535961662554284985948411962169175749903334233524118778334608002006087147196044689042493070697404637912447273641603633690685532332369866133891293410687175668678565333110402315160128450638870781204285997001461694862656566095486234148011380770083483058587132985304798593819329373921638643628559066683896277631958247684313596841835482470123877008334488347985587305422870276105797586868380957284492788655379646651816278960591480407241417608473319651576129631271506200085944094682294427028857889631986010049003041141019654821293552166207343580994680849574288442332586297316898867930024336657315124068164884811464932673659493187957998828111342481998696859612872305365142786126440513116773581580797924751086861006982721584426686148813002346020436468866010046918159052394869322156403419028661256657649252569175278978795690842051266683855879927256869088090621399355123929584272654262345838848940726888379016841730375018529084077337251934142512113258901530363434031613468184880627435249396958209757394780283276532849958120631132737815612558056243802132882574499182736242369815051585719016745071929083215933363717975439503895111690661450166929237565151290648820248331685604532219970657811377786248586004493538028303212439017218272815263802405792247290390883013045752798239813324819585421978591267124091868545997564222526268881351946537670400606572697707568171020058370259065223489014621492679951285930804114779012616674050054702332458417999990618348245860172918268424696806446296326153607236532289155131699654374770477546459780022184159023252664517644105632014564613155124106072436096119542695204005318576011231143095953152968977180041368401689616852112405944571578916598554708363212551927001743111465031695321771733954215147362977010083715884074216045103965833652119953718502187631128505091420665466986299023426469953358918314390774010363338941116552001770409912063996989780145340290415636078187683812589899129812866669999173318727060364962983879601361702810992194652092759221146545946969348079345824317304325328796148334459306610724822724876431891358010967189892972423076835780074247501136395894700739383905946951781889092825390058128708618346688927334210772718360998239689869329698666056575783497489053920040307010553060705273955696732947993686462450166776692014486360175721332059520290038416614864925963181647815772818153120333052190417396882675266179303819568667537646411929552611304922892029544041764331072506754122569367803806698300484065385889811575026123206720616438107350613369732598441415964921522635966447189438122128767159953300630257840431648402377332921353506423710356559534945458352920171321818423262603056663743461930413474048427119368939920420142889595563916897199844187698611863918348416175704106099880134900186238766616756964593786759052608757789453501834483229434805425684520633739284463018236902559093335191663053192292379517765188447982983432938907783293300652013744569443528150672719322295862656806695253591572666586099737330719111127026435138724670264906532599455205478336767843954963120233435805844344516308719666480854758553218909764550386438558069513106463159099944451722493124842726426619909176265917542383789348078002717774314288989739006984629799106473121910569649969790808626328708010893355572856159989742736810952565037455565316133943358090934522538018150585285042081670878396474713931529951552490279616810465768777239423319008830606343467871656088314755574285924502285481103958133932453914867852703936575585975507121949651744190235807916766306138393144366436169307595098533610272521412322081466122453628899607435839043269177878362348950853225274975791695035280694786660899104729910445479888847745960615252948710008355390225252677456222802735440980082950590554931352231115573777403198382208866792701891832331563216333473839751839630677329178547156148483187918544505133667125830940680969501389521851497181758674300334349063204976026938635365990783281079282396958034220155249115728231257534087007146181929093264029781093778971471025768170109864642383678979928725962987861429338234751804477822012665589899993179213695950786739895097150484971510312134264475164683600752593616076935553485041830713307478990369784245061693053244267468077962560060246649459668795664256707137314828655014115508976005485792835593719799138994103036575209029551194460098665643033112044854377546919978045241943837062204081773180039702603430484640643803304008019852842237737062926931024229388033384993339065728284192920289026881165086958037775724577875900648292147222424462286415817900540099917943901553726527241177356244389225930217562026508959361750339738238689306764545161342607864080593484350804569263662075293792293456472210996518977281471414630743107305299670243375959271301438682734384328035735136007340115153498643633729282416480078215509881946973404015856834756679106865860254130242004971896184651087361242251154159038795297086849736397594710279598544477753872175488636152942778365581656385444274908865706551983818812617024133563476602572232043318116387118483064605763448587452538551872109702520978973529828686739467002610789888423902495109515468709151566751022041004406783151968922695745334837205238285897357787575205791761106344915569855023180711202904260083243992401875664075168846896721922121047824376278051725155233896276891752817352150259783355557441751165835114561999633500211956225316587318085669079247449055294344477656649978906852766316168470108345638692912067165837219331198473313688136537388497291900945821383441575526974391825959227685035404149860116386468919650915053718567898233607367557542001299131310795943053636451120828719636535897673782800312004320800642554162724198062824691099724849080037270293256126027586127170694586555290790036110896874843290369727103889172624756279133458880618366126372566847582956862502176957658912510581559449764029613842639634463614932644300510317383446602526726299313868340941720691069714605107720530281153465108802048353647231366699189467762078641479546244734738110979819241974276548199392613002475364312282254136254958600812254716908311048686457231849587052303098936230078013162950198310075236430268849089440019373691868066635288426707492563287244774533225044423865180632344351376734697925007890743279585683436464236663481737443308169239051361022451078209655685106136810321774878792424928664108936981045438170313228632632940500109775312013359707135477885783424837262329217461959888813914931065272681276644538166188355847957751652746509932282431248108124448498542947816093617669230419849047253691040041779458362064118282564316539452783972595856467398108911078827477817350990189939424899117265771415138743308597917695773958366706493062103276732320142616286413800899488704538391901117153192542364589371923300037875641604325226617668823996856231697701248461704310573997497434719992657747399690227856086452859555352398704177654707036172235300468747687770073309520196638647149978181181552690813917234936329401857643080033107115440379710692116107601620803710033583522469359685771254777987241445912257729741330951114502776064676120108631407359393476816585759748137682766667146333916382710638741114828071245880920344289284690311891061407401420967378394739008703053252721592308942260245725354507422723095147943091249663462182991619327269489433558789252590759488753753490166780525860212089395358330269329976723595475671247491642473686272953066442419237208194111950643788877017360645224991104269221576452192469062778328929437286354863079130568849356139562707254947607761222439304246238689018115771241610527526051669199296705342406447014875402834756244854685909593646829602538527293660082543748905169189319644341129060997264926929458885248049150192264579128148725360103081753955891033619124869413231695889929298995510316509151436900951069170297244514357921561480950862900985972719334062807285049394060332130537810041854623669797358323544596877739312134732218719951123341547663530816687804120647782842253556659296195571558783748042774522126061760279950072737507244924161136254781882486007566183087864514591241254216413839297872364733664959917184770058970655927979269065006093945974095803836920125700666361785541801772902178541269746482337123807606650696305801241660140836825077105677440883533815265336578194559999944876250385314724966465254666224859050504093990772653882921733910986966682862378527310483301873918159976890774246045112980958864974212440503503861359573112755705332038330967061329528160027588988471729695590528880663192095960749166617689750879117067418772411279401042665756265566846080787907007049936922177366019756967049266881568036751633394310482742220470245877526743083895721688877623372672222251458523023652056383367018132216515205339438710925003701739786080026685634129053096045105689215720756576888656228741390270889634057644368953288357297231977739099515883214245316937494203034808762727821733786869159887914439920978373772894291490939075141019669646150870726182330048180076949189598889993703070419287191776462060252723385039205664535093837128001326215778666130117585219307932060607507780157125914588889244825926521555076921039845205346186539704819388221791879408556045540436799174398133430376897996390754235164370584888228275531417860562996481033013651233788657373655016629246808338152703746403999158005834587720789590782014746821383953677515009735798428001845452040456865702818395550156074234852546096763457125205604953283091108202140435384913981646829581732886093586876445013676820813798842131255869273129376372806475971651571632602752500891021254710382492698365544494333531776342815506700008113225393042191058189927082505026913663753965613150747492728260435418126546367463007690530629580550794034353319619558718967827589759371276383212089664315132225710016130604646170380271749396331911122096484695785965743034037741170947571118214301386520266032206369475617285566442100998575865543607111655556681220853194238833554427044664566058445005160164239499960178092407726157027016787828325315616635579216608572121021641019246194343971901363100434678407359800085240931589833721006801039047682565170111668765090921915533670292041425186372673755064890994234322168401649164801991282890732174118508813398614430792010429099049428212227794197107280462815572497413187230818345165828320165588096621185514039909939271310440266353913616272614171506408379213237483197572398768518801639765872145986302672292542718831062885680264713610804396336685211890141619177228596800011484707969222747775006049339342557006703326968355951112478364641279639154761774390445454756554152128520017995071351863825894570028838727348524786297233104250937641187439747745299500437901740084427799429577145213769994718986420060997107197960726633055329157133212443818183716818235916288364758982597451403305771509370624359199820232496605936921521717459148447337659643345680972561550767721295590193685684941411088768223950541613935127518747186378332334777211157957975306018074400854683997071719826877203055611564317718997527153701647725318603872843990145308053427448130232741545755234561530033327049304396131177055717476848201729260338612173461819278652014217895584541381592913069093057230781031798762215970551240814376475285819517344892695766742308015577176585928689315573519283962328096072584251683134317060022622887537062422333219912032293660130507353163000479372219848253782989063251937622379866162778726550688063166408466089259795163992087784033575798319063312961416905649554957395386591646166199516559246598164037845217151442052468999791490275388824394751410404007114033259244857417323385780181376749198832662044066066827546866214582444743942031146179963645634803584779806756383084801930541913507426818961989131288736096130749666875743841523995679514813790253909351568588722081098691271134050201897497522126618169624464935195260201548233661140183796813497468462994314586526607918514336408884095169751220750588038175603896307333301888218010170446488538048981727745396596316014988223312252019785345371366600625311983068182352218612682316645724915699711172193477649475945044591670451676842169578775925489857363367124743051476356181665265935136633760836521414213855676123412633921620963499855627637399030990077472649386263746799296460809599633455504379547005460853487721418466574672406643273843854757270821166664378354106717921597752324735724379181321833685130645980862832747349428517535273097970947566051336808715544201480077760017231977634980428718615309669000020278449142659530837247440755680323944935791601628013361589201825279413158621446673208067734375560480028246693692458407738101294857173713649148167529184439012788215673590778042220286420876136190220073125041239615625482085647930869668080332854649247898610594898479913433526949409307501579051666251720499154518246074391166354972170468826330809404906740952985539831975705231012615392537268175392257548004902844645628829584251481023759751056502733109410538002441627227818129149112471234741178090867485333131576694577258785565816096083602621008829522254852777884454064771194322690845718077300115489085510291270960018046801538417206033484359207593041391032952265316559158172270378466158831106503560392558342659825960974936804429186194327884211578387051030123417246799110318086702715362053236495318439615935936620694595919695409709727045584421489578964629664560253716350454542958488945873502635561651986524383104410076236186066265156514404908009948108006438256559947165393879268510683698142153114662806708340609384414239242413475613408736049127064998055355987761039567381357422273426187102229694348055922696190729562333368161934940018600423954293099258594962429501781739518693297890569350778806308857689583427497316507684842100973938648260981080663981745038600913124600271601498585894508625230892426701076062914335689003526748457126355411921432692157095933812992069487172768353670312353051364451117059976017093972550156858416396998537091035443629126761828886914308869152010515196815955254512626196209885943317028655324858148433993400322596829808302004077243069757545861367037529712820438961730571076460148215134516913661125083371562217919393044328199611544760226538720836198641282192192168707329049258047000872237979270482869274396069649991895207019325061304146998241963160941330685824913743341846577469848946502673120431091027200584862643560190949446876276017745964113039230070962021983416067183068326490432365988344944842441349365578541205301898022433221291038336133390433900184067337148300413875303475876227787912214621930834787572474576886389220199986256381370230483154199513520903296140971759970060375254989753922594208895562061340727486547873562983086435415894532055785918902229112786312664475615667306224192096335200823929639225897340126062901411627683720314180552520985199692610596062521029496451591989775144016064006983112811408211803439541281126140994145730186446015596652281610602802497457705095090292728791864713049352904268007418683714785638082515422504768848850249015233928415182486024820251266943204578162228056382605107558343673324140520562629114942054757305740087807207263816940246003171904832039653704448711740255524504845098618950792840148296287904126594683414509910198596563335116717914575334340401014805905312595707168857586465857636347824983373812898379681981309560368902583165624440136139699391769648843226536763573122925767925757904687343861023666921693457920012119006151996452158664726667923062902724387134453251164257736669834986391112231568600145805578447364478584812302829142325723442875734946447137515946493643103381725233315713021346961959557071776501359959850573049031990761136605059957061102254455642758157007739548275327821324891736799257200465275710908913989801394494088688138167249831936342425718323234526246082335648676324428954438021294390386165170481705499247830114956690017207727130276526008598920076905235171208328803499913949687313392559591718515709343850354870326781198361725032349906887144225794643956724485891804376389113620837863596383151806827552343420647401330858962054822034111362422975356070616218304324145022719216030626643958604984045485208344219237874890146732341565525290979754914602814960673129617362693028634968590943252787221248259269671347849487272227770433422928780020429602984642741705080329899816377358711087019181912008483777173715287969705112864760975660249798151576453583607528839829832254947921283501429658661622657731244302383515891700108133248072068726922085773089875535879158577244553642819072545115625255062025038015737147027655562816402688865611429297515445999171034416843409964219257339681541494187265750499745219852102550874310773502259212044360436675090364866280202098566881911437508948441002158055473887677109170087300025622397780999130865467043831951977418405944787360288183998061704616011554829876641011854784238289233717561163481587634317594881228458442332952428009839833679582333082585569450148091721818607164224625077967436493236171693031624847131669986798937816674739432583423002341238468760196191762639393660951833123182507063403409315113741998029755271720811733356762936404574985972234407444257545092306420079171340088107975445938783278734076565444040250448488872885791042665806676241621386942071461540713072184347182181771936834808464393156343957771878869703487801989017312611418010136715335823620125595290023300847367192394068190508764456480406781840162685906560518575405227908493809637363669353748520464041393393502998618899185401678295612817827501503351275821718206628333152889226179783509404562272942611912759528584145926281754782150006886990942685577426485868291548406136879265343544723324155214618667627510142505624918253347139767892134024914207411734062283593780988241385807364621456712611662223617338037213016884182407661434285978138368136650577889031882214894546002110420655369746021223045918650012694629280523123583295038512142146119999763236832166692598053012593751558812037667371854733123579548383079001056664869842066129712204938668579861533755932640707740857850416025610104659260831962096908630380630129153874874905002746519449566977583246789403920360017936979985590078453087649354736148730255550292924209546372332753559751042046748477403137647613693430827862142954811059458166433567807914600050073669941759560610402318643037239029870781814294200260432944607715503954493180966446881931641057807627783540374418598851647809853983970422709934939892708916314155449598669199597861028008833783215269176245574296829855236075103303976750163321533619389612472123067287747819503778346358444605180557497461985839096030016711985842912491038819424206980295369275902804198760773388876837260342923906914011256516479388974406091357698631071018289958669749455624025740722969634632590485655822659612507200251883592044247633109383727275663174171372534380653121047139794947895842599985694596537877880170066344966225440507555977578229746104426886642053123054120441409462906580046918930317618440442769721642917069815207348668546898916293444658399608283692183162279210887095955475175696996853316938606765819674454379277376904209310362991213899681867074161466152969101559885364331972087184691107125365494498115199575283679757788291604557815886791612568310713582905383175729652126905095811197660965512457561749074957126095494483920635172310856935635615951055447725561943702054829261499362935072715551416549551348429857751265577066551606939369183123547257920179640274283891414991587225708472138284390436559513164257206480920891066373581058424115305652236096612551063581956874931967412484876310364938992429712731429473768128894958570264032198495307777235485380937259834633667258862467228369665644488374711788016829296895259385853791868290305403153664704719943530398321430395566178541692085444170213792680304631298514287998277705968596124117607765395134388778353591454747591249688025647298724003846344655480436649809759829384548670434190565312368492522075881899472446873959245516723780444480529314330597914515606218602551068857885071874415070303373909791780399931999591441818132624895995710823669729807685830084745751595004118406824579493782545392166422763914546334413048596276752121636408246067510684255299214720834594465704371008416394440986038779961311526078132534920398863886131350695327344594339409839279188671544087723617074924952396459760861471789018391058226966313244637768551326543314376379179449789908573135266536506544902701725522892496942759864417009938440135453272356105737648024166669112763807136349203619398734234033868215711688733662599344183307908045702034794395806050927575861724976835815446023509888433012081889105298169959146467976224152146638009569389209198242900001979103492930502125784664262994670878538979051014193850798838276298142041861963693646733306475656852745078010130159865537673553249702220688627290068435489351156055579096648156370748813443363894872204737136464394968052705241302452942974983238857032001890381037421944012195655782174185606074646676167446667448694272865111458668930945547355763658495558538156806190955416628512045324102303656007820994881418523260373967463926984787996216361445269639011788715929382837102475501519913051682274425363595329849043682769751609046883417808422699665429757013153460460981035710841817747881853762276567953865340910291492650619660835713319466918050675894166823375983896989359724487482120225784355601151056946919944683029424008990604721509224705919074779801028474150023237914521718053607921299265251556466144940459874592953993132020158399734522168489131204976391772039846675667418023882920132259495644111639859441112665495478415561153510932253943604328481765574077655873054680302892387890903127757567000756398416553712862501867559302709074968555115024551213809679044509358554188202676978863841583290608051165159272404279716300835444329529834081580453170165535026114626505143955511836926099131797046014066159197685329078026849313553514726449913378612097793320718746011926568070804339282286727193963211407020567536221879620065513131060728406200584943280468389046666004604932251922207188298154844513417823556764850523298402795294257449986984037801078240745716090111259810315459451290064714990992363261774327537985240384405349350105622846914806636206401431960005342370622204648348684455985436623241739236947658535387831063289058991434857619226769424144959217753560801441345588392276032567076068454871735184660172520009747523879753546942731134465500573877638370264058883208997222582324006653516309910105683775512070324145547560719704676522865676658437484510119751050933483386393093273894037736185927894298068414127941161347192213865072065834811492646924225550252559799327538014627915804068009882636367083485116735188377646381805259936660783172315748527699844822158473547183655078655173694245626885091638323322472150182628600788430711572172764341537623829742854889247831193163016741580320048651163208884458801656598893587666706718017867138320280387555775924277559309924715397459353444384363631167846941674410434258797567788036734293035182802525047179632040516008557515669803889710581187315676725438269911687256630457143916109727739198705994352127499629109679064642924024690358997364758910058589948047225544512820707866130446061100602166705015825160523780678896350397421131203297657844548377451324959467273857980695501858960849778648429662415256534696825043939954174925642669432652524465065823728907587222263434436422441759610754498033193145947496330830495682197595511684430143360082966035036795931574469182293021997369062878724662870060972680122758009601455455730531327817170414763481194131075213298743403670556168102020503777191122331569704594698679907859859955706490952089031823992223340352377546295112120173628381668738900659014875634026241585753331080149495685653951343496817938107441649495978544165334944828520310859128703503850497933042914293638176629782282702791863252247754673661036639128336503154382487905040956270310965426094900443898778297065003798003814994472575918666626610337550836878032832770223297022995473197992763700367112950852983957261044505460161938297107656042923823810169414403762809350723104418566202604800436697936546348837027524243925826447105306275526001551800646956368001228029555118012338855354861225458303061183762312759978470488387238477771948997395986204169720056370495097133657856055732163696275545042742728076107786382661178482463851074138754164245240592065532029236903719057379856382093027091745928083807177185593674124428969451646075334570169304385178472005165080217955471788031812240478615225579727979791984841862583070058368366352120070567324231918981567255860522778780264977075827945032804948139519879931246862273796228845895766881792895161422693973056257170823535056311776980236227052562600868543734518724446490325533366360928739472079269408713229537992507675854594925263028337304802677027464718943949114613532990019549139200516767645097205038539832171903922088715242010121584454563609860585282137122620058202252848974972676989597322997240415738007055888637649689833820377977436488388704103507300585511120789089122622363004841511854157815721485307833000266167559609212474426684227787908184461918947521240539710684354092980982717408229722213390448356892927920944532550406442637621048903092548932402029987430097708316911558346949813316746157631863047353469156502639742228443332459023160179415240546511876049590212269304474913933229980475226337364929475439692994672837149255573062757547425751574447602141921126939711919118107915310651181094425403919929240969166249829719840072948164689225929611412336727279736152568896300684067045243166181932105187821773954745668626786261750947885265572898717703614516687856977649124113475996821818784586819223309977282960824817828092368409587787321798520980291696584046332359589864750980328583034972365793328241619938112841982248666007423412910614769853540919008713053676903899525331267039517843943431864538587901311452650452601159998732623412377279572628066533607209866392811737847472564937747053433816560485574573066215775119302373561307197108086388534043207818940341509573428363924273822855413192570212411925490435312056700186879626994456557933178254621541337090329999395228105742663241073073373528570274944592341309945145294198575427454196979396394319623794555831508643992366188232548836198459891105686544398279922989261366522049919540532400254998638483220732954652444301662082386772340966345889535899874939432964247975108944109036649465804646981879307410522403631998824327373467447678438824350371393824817962261004178474867472890600402111561076995077923647523855154391202692933915834968014231155409542100212368781767253564248951560973259108143023100491517070525889866338510318699066654213477151272075040512230178047769706806691739480559719610624906069307188024949410616181029077173879595300640040103753455716074236980470808689574441039333237268339965391513292447552480530106794428934372997080528963718109162457801991517541635395639813610510909804845280706144311140924260652202672669235178397971726072247363738380812468977571734273078858992895119960571737359490793974536429134992134010134701547022297657303744843771815260160141029258975231922016485495995584062255113689788611232131659485920783517933815868884510100773410350546258361543350447645072763962306754876931704030826486278067223003817110481225915366200846161843279523263112331108853512214385791015830448689429357203919947680702941689201907740160204565754587782668546872598031660400998403816570830416394028611821532662896005626237480423301894685194405002750894096951246876498899716175875999498679243301535301202162201089862184233831313278515378469377095263440548215584523210121966207348664076390055382945898910852567272193290934241079340602079982146351755771963818456812499246155657174022525700880143885088681232293300375914547926749545580045899483884091815480050250949603511000501185129635353573917479387196309019324658817164161450810386450006328912189162324954940636895629638736325597957284424135550389241905762395081911663351807121311705095780636774185767903566713463198477251875733541838057390213276980218785606000637135359621267147050378189805570793006378664557425487377270551181933000436307469796742719772119664867903479764278183704088625376060669290581697605023860249988869325849801856756941439858719901916825045579156814113704778916406004236799123545890815134336969305334218322624267052196360862836904389660685760583356430952134989673920256084039341385825993059451031103773027207405205794556786733287329506598959776029068874363229302014354873713355182020340686292057033692379860224688228052933106456164361171417604433086227541700492876189861473539444917140698480460808911578136692465464927419360333489568531896612428716789989371156299774692883420560907791610037077973105249826174012301501894778636544318979472485847436716104612713202375053919684897862314872857702882338862590207681333844324435270292248051606703790035185781967123474017800549101373828988841360817741911772716670419070643229009474291702123256692589898190358934586050269075080115394677157468233652162717699854756706462998255283715988726703418204886975903685964336708669588174025400909583577597491795734027979094935246748309308038434896939643049164994957924053904853042431634950421880457189279335153457204018363123569374812734786439383852868766379428419771074792200452212394491851267306305999810086808716005178477476905231012496802114156456290976976299356941012604242861842660281100920204046544496892801473267103928298070784792361327095828068970531026038025470706972973416956543305383761252625454619143655878884278753524191625444846719752807527900886097255144343972301950850141716928597480526694636304520077347091615849816396531629740685355183577777517774488082356473622583833671399397680948273166881677546053941347951722738670091035753542828176267844216725029823063204806994440892338609361663073836221069805382318014068444632219059762746904268994720614914757660116947352223716919924665200638502941677786142143229722559265805163781401859928339067198885215084949130186676997069922701609077669521352150632120698324559205502204137999414505653905597799073175319737959608956629697816022871839000510435620663152040267679248178005178724265865489142668786103601251651155029100470308993349412828627590786755755770897841910447781281425134183725595637647331115614535882892732218740403906524668560754237663177535376464868333936885071892581365880520149593048670897665804451335235687395822611175524448842329663548135908169680569910865980916341011000111582504303882548760955662675200288591832756673060966273715884755129379725055344404033803592970777695869044878688337030279160807409347764736970957544685023845813239714545106083620308920060881871449032600392498659349781051316610374920493843429349337515744401949045492923399906143327246946878479990735184854981043583693521795233203204684459531945744094618592946791788016291053421684073210166607151778158377696511619248404165445441953852453875631579395701487989060658058858995001158914669522512211386444089011081320132995577452645568726800474731956125630034574312174091584375444177622900804706518360876061524118698071581834517252215887774932863486726500124411582458638553473286815243174109008792889032371822853746970511302884278946713877590972603937466126997401753155857782822025714309080037534554963520543803624464195882560340323918599036860439362901031337925112528128854988287059717321651010419689150401337652853849328819395557760685145336194753919775637457322732462119392095308652679347938666175550337839019764501463010373885433843192869413822890604990660683133332976312603793505297911390720297230788575479284921597898191296651030286355692382194116725219441046871494783292586746015265823866261821880074543865878636047761305434874901125584346818370647657228821690650378782205835893006940536781359931695408232567316953141852067994430141548046761745187861413026898509013157436267137119579492502612753389087701535151338579657488948472901464592129901518920485768753048637816574428200633276256006834355555271155588563025455927229844383046586914763769131310800045708985463766514157026301877308644519678664067533262679811151772952143494469438452157159010571666463369586773028743208961132993446405594472736279516828341349948892862873129068270699653085993119808014708394217444377559243569190065099533235404381015213439928258357551500631088948240175431577567230443395828353614868249835503128198297105397988938599004068144090728195340663942843380073354314665430398418522908454079642011074920868144644884936473321068679014562925198078314638022556079241073305175875365556872170717622129685597075125469578132386119910734027730315445020307274712651499099638411122943923490269566027456571954728312493384316153828124229549166559553024475111828279521329951476141849820288772754386916057128191336414312720321388271410977491725011641578135573679326163938517656558604386671962646639497085691668653598021753125874795634108152920412738537892932670956672449178941713369438225869207812332535395865516611977174485745275619828477080000069064678122404190977135166063707797021205920039083128531010262671416082610180902320510941902654617024369423803998439899753885395601118336198834147978574374124204272993754172545157196851841831814613496696475623047318131634347384338306252300967725805931232098980490807017619469844532734959383755942275557792959019838983629569470680882534100898167945927727228843620714657510369954648342530436771711331144289423430648343017935253832747215626889522999699612432280733529498277297945998709239532794432961149332696305470309931074208265985486967527001767761525102193852242325364024259044618996491322925100217634576740321845556205244858273120710141724657056878903053690245617935139071466624706035139893002235969417809039307658334183423677352943217816191110736739361803355343658249458265383191328374401584037640880987813770401588273869996382425247792277620376577962291599998884101108887535577583486392860277179290037974200495205066760208131535429061242709594529526498305786155772675242061229921254281041464343937386828497341814092747622628675653632235344093759373263044869484863013039522198871783536204564032142341726578362656721569381983713842102524290527087375595567398395591604061755980968059087158949338240601755474920871211076897387768129310444854187482655206890721634168123060891227195406602251407905906735676045604027886671296715603589761225854922474323604718127495169552207068243554811981813061593690575825267155720829842613862595272402447568496076759680235006239989094434296954744674864982683655566301850759348348253914168390989089245398411620879451828632137002674058707014334383261223563172779645268768933042446842025119446162387859833836295419933999242447673586493977454995672030974895630091921399315290410221998197725506402101144986564445264432266408042413454921974681868106090798440419599945309874783237516628739136894284877009017175616320704713616361624249463462780082144705410156607786048968122447890520818666771425364819241652060928495525731251979958550744834741538509209315003667234752726678879875294769940813725741000304825090329884894326223159520815990869206519425665783180025946733268178021367997223758997284025723799332511506020572024708213499369347532633656938428550496365156384410755537314158861772879362598123181277694350998136470367411510332573177939573523592423459708442334240402152469219764510880733817145937965728277817106730272061868426893933959987152331978832373260406986248466085051917514914692286802763911599869178714408768760040250852739988598649671127629008801332524734176759598728617846676203117628505301273769256974854539208075648067980333098333559670515575586789579064314315194744681093073051205378005799755314436592367566629651596510613612374593071050157577068835832440330355360898272978720296171730825132307809468900229581418350615865713114258535672355810005174005702051328315144083801482914087276026963416845471045312749558577750491300504359031127841443532863995819640271652241839579380476352983735634629420426283990778718828256110720718173502845989554111019039878177792932378701793738417808173141796473539017296188881272680620066872379913179949785794097632973280936766829418903522947020274337997954206940612161656429914460689397118585869474062373988843859544314431821166824768157005927815480691280867739387942996733811064623974553343085977312610880184529467655942559272016573946248514416096294268794952137233347187414290935133112475351560804731828655473565358825835597187564704078266042799779020758141178753104446782347607720854899276978215211966445970220694475283522101710324175363199331768494595658298952037366692719061762388481562978461584325259174612036863355168871336610508651346650315035251320860885694939215345139295125467029949399291221364863717008429015994434441658113403073212547101399126224305351325033010026978507566815402291914010258026279471107896832401509108909227294693261611134297788861620466595257675108761240146173607804831548330192217030244167131702902959271635886477599500793586850917195731541371671333591077129029634407499292946759448807503608666195089605289113433925544549510937807628712802474678304035260940069485698206705366877881026217541744404366209213814082850950804827398614069946921918046520131833363268599372580740398823743693671950166687595439161023680416574541020802283877537415969339825956108841950014018810282162266141906379649872890370424308261315457370974401531752347783505044014959186438457611805123596398989835240786947931928029313336149759686465475143081491247803773184187749289750244259060018064223541001676325985863416811580923255078064236594885106685554963713503137632012943766491715392119515460986539833933373605798249915144169413691344202434096084189581486250110717634820125915452778140137443947957766147048186128500144146826425502065054478764670058738739272861684314479723155608862563082982910684332567042134369878357728813539455901824364469322240589616810543669651921449644683550209094097453571428291276964082663265943456073286389820070601687946723728816399349017984234846887662810141151840823202869448986149386804133996628332435013931002408332247319997533947244680697760010268016060659810363515248959172879097097686810160262865977232761158764252620126914494157730227337500227129640298147336544510709792254277178935450937855658167965503099598324937510067300194238646383717744521036210531407150656366061359532124428525739965116961319129073545496901864632801476164831010630022169147995905625340625905997397381229940833623272382657118365733869596086293914367933937264263760256685722268583355672142472043099896648930042309676961408158947087064696454053201318281044910251841408947099402564526928079157957413530776886326364934036146583850110109102845917784085148938657245625714283414016574523062292809139025643550986219410856695294753722530695651215913452614597595370868447876701610110955392371987217313108645362739320995628097559794604067300582016709532663962884283466217765334119957374266000517012989775494703727041069629930879440116609944922139735340441513077502420401327509547545286399961612398616547908546478417390374462335108252035959991239770588441793241894005076574863963241180196078707356359939924650191723207723883381336388865606179605034831999340575211407079915068760202307626894166344366633877530266264955002308241930208347375002316492527692429556485519412127524317039716818914273896643361061069417912127351046086770697036973056212738381495569361821420927194209234161520112344919951545016626372632615257039986933359611304851968493991501570346535474902872215430296583296117034136812651351422497104171819073852573158039597057033063711605411980419251374263392799344892919326429956290136771286470771530725066102271002729706484707902037404013639666095980417251473316966264009375787203106104608471040435534264677075843446051380083643482177113805797954661108501344833658236998829544380255305806896437533710204621127956450396368932909016529537693759128632632408309829044765263652981919412984332358438136495942605320382020846767613244641807684298300404192995535901998037883543171492246511283326786356280598226785550938709412024389724047096663068599258327236977320367823157503364479297753078584689177530994220648817120856993311031331396588331135256455566809431389739740313236503355068226115825503792135762109084739014054888670544523665129011743268217072917602876573649400379990019463271723898471317088801422100344907996317043532464306438429922971380838097611995426192411156509415180020323553586998887300345652435199025568571841414048424241204289250851931858041441982687359922081388384464076481652216830536539531744693679701754508787009440896819086697345460789231860716691746487397344881633083777391114496073072843840741365957370759984601422165337642673501635547218517745297817265829075277793427572233445158891044605093571223276601094501418802925490208206061600376472832418586573155430850024391857217100592762416603754668489445518055085293724512315675335070252545972926226593821691565259244903162963446411755251322171301067240246268189439929736314599463354775707158073832570852529771162512207189731392309909633156793013944309068871402749094044944168202162909637356226001824039826402607948626612672277178971925403055002631488006854992992541158662132144347964987549219249134609911636222370163939866670850885309641010855848003014776578897701747108966791917488110313695748097061300352268097611624895385872205751316866268605835410270057756029063935431876249703533712047570582374017514001257675501619309961181559157154927126852765491865359700406034337719683562478392885487524740698159521266180122982669882523927213688772993029973337523453829998611961362004621972389118598439505413454134033213257377939574139859726855142326021240917619660077362197019280019193522431782476897271344892106441265415095660390341099805052287458549743410536138838707451207231793040717437163586211931272226036356508655609254583870439199840684514196254315247487207950766695799616256073007282032069794577405117155069562164931389019896033689181799486935214048231474738508845928682392464520447938084542871058337151283705283777629598970063103491987588773896431034936704656134265105515372132926391399894641096835380056915670080028871452847191664800748743606732576174465441720785284267392372952109002645030741039318936109112055151598329986387264702620863366725662163360676715510060871366229267015270348325922221938480208309968519197491826324458608927021069808505614340834603949383059662132180161361071435648681421213100035382372735013029773160169453656834951462059747665315815523247893553819091603180733823148904383541415012834294840605752863568644215549159392091791594947096688773720642823038784045318124634649460793136523790154598773609678140908484779724353973869854785218740435449897400042994953745318365172894906398044602815805287161122721162064010886024748053694209110601160679227021150092737432812520319064457052396941418289197666400427484071839068176864545085998945628860341486941043796880809687885148463816217740705997454956405543282132195230326888634924167219904820225357302845811336322227842608532007783658998156539525264311727588356894345427593427962337819286141266956948469705452767656220885230073390705793796481155007160588128772892106306988498196921571905512563358497895741059506825008702119700951673865436164828330923735017619270939381608294126041329680213655839062971921458422645521579521402836762068219086315559025106338672072480397032285788066403840679304796019853657278578785291741081897009177388981365025145141032675240447640866545259094633508031696004070209517202575643462828345911618505382846168835906098479118587068978223587085693413623101736211804218293723874455539663908922142743314851471322037754980287513901448213574953677627329812483532243620659330335303217517900291092982377487399926561460953270655559540312100519215224405453923547861070044642306112452185705962103076077314596121039521365249153148208239840396860180288738964185126824644315316140899583043622274167677390694679776570026413356800853368832364211390615824131922655631035000342739293740309368289321031259908434542362514535938414669874329288867479364599508416778227923821315864917203910756164591431099395774198527918364292412351869960482242873107207057004817564464417618810413565275615445156712877308794581588645592008393753650288245330392058827275158634012484300406212651994905727094750872820228577379349092761516546338955433479952399667763249588554582359466069297897879175877541564574231571884966758959129810925491394440399994346752095814687950681269182563001037042005692781452928265413445229884756495520248293608478903702128876071278234084033776156648409470722252762305484532094966012823088421316194178696144508090265331292224299683032063325894614577945784472470111303051608783488890322660751782924735356293209361702536289908515863650253234343490662489039938531360694376979511343673399837607162960955881538214873837416048801139365846270418677625993814316168570958911057793761372616993997527185017749147750898212347787887080553624402534723973538832354278829821762505444112171480508291400379584432747139137024503156583647133415868148479364360890612936959572252632701669827703788945941101771804646589367017891924756794257966929595905630341570518401672149891029242920412248872984972443195199658515437599454109631093224449457274970372259148000887089618220304612290238270513147384140582860759706063079070450003357280072250802024381808353461335656258591068760493840130486684902659458531628938133115049784931737157191059345887436237135434085512818243844114526731363739021307780249225087018716615934023846744817570952056240624529962868705404869818334431493582909474836501797356242166771655668799026889604863386940532642196680298173058603381119437324958239886227659056271795948428191715327895494162804506753184661783536922327360647919613876117830631739129188779999739972512875665462427600875038201037788209303798870628359072287321760766304246623051376882581942751553976121498420994716108087719505590364300857591617057581458405123765479721085559902535452365820781439257588347574975951511564024644973995715897925023165658540276658073293852982320538668155659484419966463077047782626804145421310260140520046192636546295466993753083635952365266499476584404360233807138208743678646519408281588637234997572954147969586920771358695063485049163319453766852487814021472719952045531487878171215398107343722330642934906302480811196893818933207296415581676255182668923883113007149131685934497252989892171163052971939884109226043942214602272664054557082561315671522107704921195431683906116535121992998637982909622956222256766601223559684940145193759803417379841419138150955679037716835241642246904150981298801302220232035908735394985370259255267022944817637159987634944310912700682975553132254408227039011369987451125381733005237533546168865097267713909286287371806100371140021574111217252262661230454592775414326244831268261106058200103567716087010685016950298871998798501021144616418561366705674350648803211025910529552146487755929855173193009545340428841138348245411250419570312217973697394245256535181727748924841549583695935545839258153933233182805156817917533228134739859588827802284372314543195451989597231720219551263717790659511138102929380542264885847356043991402142120727391641323866859905102169640024617489053992283532862577485099350887356878115996403820665760146679138463418767786282948820595127594399512251393073792604963662275746145518397142091774923807837344895685506546940532747407925575812778117061944259219180559549129774355421597329201401832110478711835636626342465673630837376063617736749859483640691628620260928276729429222514182439376834186155925635824111562634940885742003654636909603255508837958205221107658842180523613841767873077665694764926691922960507888128057904639006834220646049788817082080895626100653761846100106052831921729114498691225234982119208279522975557079200892220807767660698723621439595429566344418686821176427052765101735531777975646667309307330930042590748544380298196762399175150273200319022850886178656325795027630957340910626133651398284464411452768903268456491501649340654796373250040431520242874380323348792744259585413671215553564732849927221640414279398389137390716169152491088970556361760165858810063791406336845577546982819229525501517463773295121564351956016651407470889351360761305640478563962090893220104856996545456645029566918470649871064189136145491572647142343567355313596704006894128301082893648607834632061571620601866165990941623742268974678963375957108553399520249965415319792853409876779663923493228213761114763262681564120968526119745463511625602499807634946108057840122196479703964664259927286220490985430019852821676332593939548078757141184718630201361261227268128854996798262824420882084563235363470095928288655243980567448576827170658302640147280210741857393491391280333038877612706330092451760257030067868487776318435482304756514704469189666333861364198506636019037676028876961100766441420713917306653710914795022113050165896014090547405358571583889899232186403898782251930094267180676576479614075103865101437266652062505514373794419085681405051530632924696446174850349056325596094838721704796945093039489188614531780829956449555358770513921943458868550894964243521867059300687660446740807547832300571179121355034488596655803431629367652606127810252882577531629169855769540500235215836898114514734770377899382713718348062162531965457957703457653911488909216025273587524132536658618501354608511239141103512144697436224773195152796591775074362290818803565581177608820680966847548135862199342900771225997352478026780818798660721420901528096260714060100949928089729395429137124201114910745095300274680082860691101062799202754958436646847308729025266813099185917917602596674862135473994363370809056494163703161715912672385888689811735200913503410202121035304245474972684417531380552446311554574601877436993883105239633393430658357960683386483431966634034196998048088432524499384653788394781197594736696256581093981559134305929739363229084163629429207787851777033666073539469926920338861966907344006373282848012464929109983668994795039077401051227599339038826549713057130098963146394029986723108906579654122252685049831491915320693332339665761274631725035166470117618724771811802733608145606369292762362857444816312159031951024892614507912864187615914892994087051917772188756657438541833290397354753928708694933669645786893618539346296781592723472997447189872511199067142151179817662557203922350099162130396860001994921540403464860575318052554882022162336812908075287465636855875380607014994416254493711832342009017009259101308632922762354039202159589730839617007305935170881284419703979340114810669632056570527408216085101215309283809960247177162055276019311575590214304923418182843006386505018667536629701562544178112922457314127074079074635177844554602493559489150275945649057821741107842940894863844863188638923873248922797197113967079772104446307643220192415469070522635959406618002656331796419358111170441768939882457385707157089218668958056113197631677281736874171660633772487547167192921376164756260368654973844706492097944546356801524131106669717547679211352655258267888017316247987181904166722269192337237248740723440196741184653572584740611983874269437481909256599308341686785238446284342887227101758496040860050036220825846095189292984534241173581631752628369464107535622033672969785312860313970137801745902019430061614498660694505311673896420140686577623839042917861956045389268481668099804217665752156329919950150401103444267932639261327627728443903620139765535892209645093303623972766396340268610234496993554035399384789285631162193717661902297747297065831940558752335621528887886989157351019025612890683506721530831980730901714015571607057509974627374667203231891086011118826627353149603272734125694351426920671923324803780871224229880203598217554375102363592137546147479366221766974532774890733375168494556564660823031083945420489348004846686099091008681718529678709674217148002242033839845603424608841710943477970507747544863937100508462695756838010589712841552321392878971822715597816063669551925364392581818485443185608857065429507494513686430206053363285024787902614914078361944827334426363891263850319759405564331713897371868978039818093620071758712454235482046572524937812199884254582746883816462718837141458011817835449267590178565627713386285863199389945163728521958847329037693850492580609095908925493473068974184027253279512261779244165220542310568882307058880025041533197371016625922238918521595828963089377323458435218625020393141069413193969224859841500628361806640812680329167097690438214274621748081249199793601633411269876656815510182633681859995000451064378322469022741966881169139132527080223075363962526263393698026116578247196420750468296681410528336307097562306061526828959758516363527064287112868782507015275544013563870602763656018533613730279619801038587837007565398267026925346605677328253584869254679367888306090479525811871726280722554666050488888865671724494583578269863436440069196835430273328552405734311197127491838690496581594507603427010041769460560739002704128586499066493313284340422260250761058434216355459854542808342072434214969157467103464755596868704427144484672611050561050292390200725860114398520992272087680874276484272688801181557203427041371982267494856900937671082843756489855968865531734996889872622593096342184178619288495279198808034145986460282438802927741060310793919540941925022935054700268506749003696633225300908186735228058969662358571183608122946914011015613358976389934100539383969015790470164320876239887815156352088030543914228981282546393016661552395889411288588072262710536322309615526049691132718283411401656802817219448183138777578981471612760884119803880688253608489539602627330755530469840915540175942712197283900532814226477064763178554830914385606655246605682722245643396518440347574843877088749659984209327861811964157989622066093811781136021508846164220180656793715243540012648233231392901929974999846972847394438037321471294868105501177086242796878703997637575067232444987834476160093444390119586382635277658260251728740200944119892623391357823657166673501261780689271771267681703981725213983455376346111239325688971144866368305255673451080535885437895226431901744263375406192061740348434283671899387506008909109940650798051409033859730770844047879516130797376896070602263512425065618561923976152186029708388175845692951007435519335321345950706864066050484553665128715200541121422539044756092702284330611128292489845648631608545664971579891965622804352536094171999423658004407835401322324286774976576520497292803953786019975046140305470313363587370963330852996065657703231919281201574889462335165205473570215105685534815753455353270182542144259067992268715723061340483760973904518554608694825681718499931887393477912471746135189887975109614959651382676273761925741218171083709880829425257329185242535122065554617349491508312502593404671137587507303780113792002044314204133567215054587390351052005856557851131272844908801305155663849940787726196201163725716369857991269385642514302208678674800569690652596845339880989578860423063424317046123234383109823663158157235008349340042761491101818068070635239358875666162358178192553590976730422814662606728925630795265705566214560259151810654883590778579711245293197956064013690306208262002619824484527753893449801059498561989768491223060345635803676549600015552228125354609808126881046738811374922826058252127890428061750612868399713316103180231789003986649741805105055638194011457538590891424272423123411203679803198395958757439821332358930726154544129943377979228998386466122973154581612096182778768851070984533078914106958356243038610311960318638195901636813248123739145411123852208495829240285846411762374146074330128024310010865130441349090619262540707762585289451718249244427169536864900996762276186908925595803849299085115289723935195180032265713022997848089570409646396064836367638716938948460253862898894851216993089294905966407462728178055401559729556512353667617649436991798658608126855848271063807187684859745553979857722391204046584607873045013587663813508612759557645869985858332521956064924942340186083547535302164101910747051116622901918203152670144088485988334679388920080656112836273066538058977642295264858043367865096713664256813448208424045611341655442355399443967960836257679864769596629565420184139544554394307016533145148558565204884836109037680027639522606595092698142784740265170470350578906299225180564030656481576404532016726057918190990171976691890723238758983567181996990161401499201717904472669332264300295696789131582963707368581787023077649644818771086467252980235274964127895691618574099302236585742568368137437081269212814850711138399542157569695007168496789557416555166276848784397947280179887516000029898128382050757607854535914159993809368707230622819505932884103582712959619109465466102668100638917197437052663682904220691504249977747041358215018969608610061282827268539239407517173585870585817206580718236255472453324087638092897404693858693771018513087902447536051925741357366622391721698196420909516244271138167700782465951627924145676742717806827527030448521719492899174253562233532266114934283044209998254683522214281878605717708070386874321822436551434513895472504813166532267863922316272907618899718627161041387814325002349813019606627611192944368189959370807707629918174745182393576608262205571795426167281786998206614438913585459976201296396273780897691782862317009668358710080491154060234563617140397991418739750802990294623532712814562199535419540333075928387570977576685855449926498108765635001187441335805862794196308546416060456042456758500886352434411105319577394761418168331245920302866645948857098758736762649647917033463838926502256436237596135360243223472204751658944942102706893990456247766702398232695090583881532138592162793536354825260673713767167359739262284908484635783159104030097948974677427375699881528687343473686573420191581493932967691755261566999802145557358282835115309456293124270181800081788254630075798755658046661859532274774713561451637159687764882046170400147246085747061387751826777360628645192298247555381206026695963250915482325891383913719847365694580293701586343734049369703229805623598901132405222304206200263502486783326001144393305076536501937625666141676857974149443745538681178542428023074057892421810071005809628488732778213669359917365791126984575345508364906347396688254209830773591854651065467574433192100446042382862387474136260185788468513862447098612679508788993996554637251285889284393903975488119019498968980651897545766136892601996774829870303160524965366219411533416625493217112266686880911268168265774524068073294214007308530977010845556398220627226413869712065463927943396793166441477637757885748323577014822260797283369136365815089700264679795606806060268176843135093771144565955514457692836629389057978731088175131583730469656304962768544829989581316397543123924268357532065617858542896233778667211582097704873750858229786865260304635867987163840149156434512633034635224595344927548854444986898973237809113845688860954939728170073931032277400835431929713660986835060670222171913721763367764052706470756348334280523415861266923544051308447620750102926726590535146435414034153680612254965618070013861517648821175987560087799717963104217308880324305808422255389338312413806429348850858387572115097011824839645500907053093274879989304764291578851496361927203842202813080407287827652572280445994435754682974719711196746121274189115237033273377848151474287980121581003412395084083063566653355015867702326842428400707283286358553591154954545405404876421203522708239523171396924536521865525948926919560584698434114256202912965021716219825052826077812664808223752806013874182210059275372584965696389655044608875653447405815408685473538504600038271444124054283369170873502181737715308088806255338655651935063004779153895743412848357238947874189001581148886311481380082362738598912613269115500277542155374414899124929103209061985146626400241540891943399030357200971850864269862965297392445715995519800747782111267290286965843542360312238419255238456277207300153410710729608258766449730193004020458731362347028777297852306572371950155490989808804119509340420237286629706451449759885922020716231816382558945337873173039949306577079115470369563476178055782134874601308094702441935149458294447383319417983727767132213239391359055620360764079446923262718324894689496983862940408689186879919840013715324245014241444498631226593100054979631995104597934357289988715918726688073347451292470030587695378954268811677733522190774512306639832767951673865334032113635050298450296663721181560808975815544328621672220083301629657662443352781118717490513127501860946214602823663314808299552370496278092026425323482914998319532635470679372972664537441638821434426006633626007033329718880185111451798373925913772972443613336681416997518053842189544400647044131567811555405407935937901321474781804182001071653898917183087227949740661906915298340142738956405018085657821405031229280619831602477778097724172931052013478042535324152497895999043495803309194243250426208593456336205015593149326050355328360290247146369993691536741196428253620936832219411690907856626668254460746939541337784885564554793925465613655169070405842445240954606524824361838034546845678431877606296920793993666526047282667569338537328540810275579053291054129976057219538601780119791289989564348060333109570692611330734559854133264210864413920556721603296983478879388519866464287554288241833843929241468187840698872760695752788742864191535013733774080177510560269304803121647923107302526580571357255888471045703971974701703739240116515600504868570126071501124395604247891918107503007304906851197213307059566608378917217101681438747065513133094635866741053726722283629783940368183832767353154475525434377020880519099422823316663207666991105926858378382804167893797625965913749930791273879455295997955902675331831010258459649443117169135619308437632274224220196106626087095481911164755056341792424530602986500125844339312747253938825905950167403726016552686588906357618543228285829310203763457864468388058308448968853404186251618620652723453505188634927732473664665423728212570953579016617395676339595614950502434682248248110792251173080532892696137790300964462774871310967454563678094702336866342728421841768982841327859706139222242006519497601352538020102704020067189494640478353064018165847498695527402730676782247216324332828563025126775266527997216752742003060591541299866169332045563315443169269294860330308484555957949404181474610314530053837064397690711278141453456122272280028926729946918719616502949796819595136119639091704794841170434467077001936187250486986573038952511421281030015827606735092816213681404373658160774992342162074711542234782905785992245228373927653922580940322126902424346248659501614025899641492765243112824967483844877377044760699995021259269755318175194058486879339704771410627183512418122632664292213211919070302937720650542897065369393352412477360394068769481687038919792592869852372161369106040613602764345015511544933356744975393365820458283752179579793032133560166750950014508202782675042861699193822922945337205454093884503843972299310239749410403352300249457536803236089396606824256076526496469970287391478840703369437117985568082645499416266022408115323239095372773700335537821186633718817673387195385216087861226825260015060237276187175582694069392944088648947172625893761860770441754657806691840270708526118232758172773480121415220480669623972230897601919182741092948499194393041932229413096199160427650351500294809363896493893363253175008523132257815586738274790162024168941054507478190587292049429495208737249554525575894764635576717816291620844408171747476920182330836594936399014123960848221157362802933481925938779324603442691781581004072656607713039149965523199670418052298307571273513883927351006101480773878154241291110609962940838357317428297209994429187504615679868570736436508330877301912717126911253336758252869132198326074233083722027822243064719333691978444447822710331695450290430352480603571333909765444809212264394651122957289550696575392767650202697157803787028941013313787972623028031117601576474550702454220578289687881236600764714590070471542890791835717805431491668044449786324784481821278578892270408739454464708278780808324639726023005733115070288465517248253409117408268686683113773927566463086675450776605120216209976506562371121493143648570869224948311917326219181379569612477093583093084034347880647719667950925311658853733512847532066969439473919121102821541928654598795259398844835220969170454614562138778463403749035071115891029570088238696790026046114035383045935539920725240811478196036480887648744644311942364637788776837535726429108903748675095762860742408455892190453674664892423326335740403419171745148243461293121857226741566300520612701798914940961202037360642026173889901489263467035451035786357493286353025780043029285552889863188034133538577935648703505586600631335867102480980328136664879116680948722949758791624786343810606026642115728648910749782809106584744505266787301593653051589828945248152764145291270576306979782461475092109751205053281624442362210683502894529635506383226372672573674948975686071550400376993697867878899589746074793190510949898653295999730062806446905461891296693524367053737946526892453655238383097753635401536142871668391950522543622780153789916620292557121603831803595836369146056477571132525637046025548224951232075112239006909025177324874664482184427074898869719947579464938123956737806259009967270808767915652334606842953499107000539762647937705912923377037363761235028779074132585909218050675293356244886914393058130652396936129145942132879071168063133766320113140569847147418451443119414899943135647653133284349695678090767557434952226015020369116343758010563187964727675779406023258369079707741682554218393206148517437693229285443579296707125125817814747959262977742284500229129718304649609396964364680210021019193117204597306795606295446182444848138267398891493786240379306825860160960022432809195325673016053590174884026736162400887094602756250331642641139111440314998407117242804036116852042027194588760189319642424836743053870993510289383829850944313511778245843778876696106489289851719899742418551296663118928008704827587926397454271232979883970796812726819121862335497065745694771304828153997409995469346369517695568206034469809558881727682458897144219989541203670913238228375943485814218989617779294100513025764706109928361404298398784751483781462162917695365187834593709426960739549662893627872154221221796212257157710396608351812511323402702631421125047689764131564774272516707418474849907395319313593555954289003358831549005073796474678445560002128509147694611186664166947243630022542539356769250527841666808268373937295103738926623338989413737046814642339967277202038176929308425288399618188227783199072551446372674206678687866641884490363204425824262729408254561748225916842898120449338951124662214754286749167986929057861872344228226172488794574769616410742940198161837876664938231635562186137865412030343947475312694465935724662722850496552694934717754809516691652432421796018950475385401373191492463778793150825518211145888730563648116206485983811781042540274230563164781378026783108780759044006780805983451987842539975939170736352003660980450004464498400714147701388323603426908847851348124621327375901529524808269748986640401440534652726306497549690508159308221162304716257260156573254298484949032211947875285670386233310019531041224190439024975532154549430515519054725418653157139805251519156365836247040992322390193074122946640668623928453479627116184317534431899181606584975075509402328971078041684193703915078522267650651569275332118311643574686656496038865225454369458246979999746030828159642261933961235860797634396874894137086785850456103415496170622928129050493268073019794417607647387010269159131848347895792032701047486978696717165040112525635154041522894648419157064901477979936119247768355508923877885431290396906635732868960994130699113076577848763827687753104536123677831881938653956572838447198446414287503198980743415395875223356223701564298827352881408774545146916127145496296167510093294697038027500154630942390485030983757460155517585326734474330894439560526442521014819205750518397770648349354763212738981595019204169367143190147120623059771907577416859975555448911317647392755981416031574527921060648458548615237891767569043225422259740708788703413634521659885698898064616401640846508587558063104607298607472848358996400713944162900903482293112910030219757059026836352805886952807347076486235749485721109891160105781742935532176045606404979818931667845349599713796443776257188271514978072674288246652486929324880877208352901685468353007768500164187405058765188848849965946546262898656353182306387095285381400680994023617934071072895396914452753570607326310092555846364596666424576732205736308494593963827799777427011882454862345411984225783672312179965941983188374614748040423586462090628844831107361231184405310408221532603536246545492028995379574250284263903981100661338442886521543199421875095929994296872943197074716375300835030255254880399175409964608178847863590691369422465199231594076353340483934905744104995733153367993366026786173185281032816817661540564903796217617524535063884383589966865613287300573896465143042929662689523379044140364116047103759692035638356735367082826865090778412524157867350214279263569982566611266762212130091664385172314242410301469162696680082379657728309763624579370138928420632543836079876096505858470275926983689166836136007513361487044133737287925904074179747765684248463745752903295681380086041660199372457413759535261086009574256030235526372276987974876269959696466107797678121076725536243783061229411981128006591706127978413619476772602259806386427157835119727014425656222371414926317903622529178139387967469888057680593898108505694413971060868928052025968386220015642296834435373696398191929558801880897743140511722671690896609235908451798135408812303377602740832664161554081310402818561893387231882711519270379657575482224688443091836685058683838855920349768620595252123792981682315426062700756559532212208393409718805734058699459307882463563311275609729618135123992891446537786694826348540789626378209481012514724429445402410125340974298437410501278098614223950634276039493257255168064455188372934183839150315748561166963112292436174786227448130594899643811852542088628292543775989356595923565177333685397012173586825990180088022888460550499560367825366956020534746405876835828842740408749257354723414215553797714882753389598387605585911222408179016539375081162761028835561580440440018384881292205222905254509520511651074276103805706567713246116098688326829743892430072114831008269971991447829027682224679119293323767918227163430334996061648534053995509458273569899402074198231235051120421339642472049456762931030370408287589196188025749026801644753457678061435153914573999283964264516807145502970916120230485211862936633272239071389854312541770292148603467648770894360538938155983712564994023979466406181337968571996192875919564186997117814051242320328050017895164512524507773041224995265609060786239443250860850044018199033839757128956432397793040390680155486277311271659242983721459415991938766013571837154236958756613493764304126047212715675957308358238520007612562006444228418160551482272266858396349015381421885645810269410691595765246060462503425890662351742048197293871660371973827296365308314772935659444903424998919252516144131945286346172941550873165611411415895007903468817623536121435124733554454820487172872842905560478276671027754005621367058829976154936241132051678563314389090517836817504431269650449053459410902402308942833006404902771619533957927955381115546752772554998788822701564128654687900106826194689185978458423426757344477906354178015719394166599193128448763293846721038144063659361567640730385926561777433588115788210970947776032316344016023254540568704675928530285466462039854693089637520002383643612285673726732728998535654189379629411881677529217706251826445441285936009258905173702449462084156506629669169684934459126720318019140551168266859764613039438799944292488145910463683457866697456582467687510391935785070705553517588384065682227651673024427676960842759284547348654927457180091008372986627452204029951835205456977724855491124420019352439081209129194313068553503026524058334275928702431793681362864377439297809097765347466736774319739018005351945257703348956289564112940998093549766906117488834617830892851525217431926613540657835685783313686273875393463326796924039589613173915827920764816521977574467975222637128203647505693648297005839953923752646452185393270062528456628945366128213974842545281580913796798968678319219003935930184897576926396577276120431499672021788885023170625025807665409231840746369122900311241289073918782176220583615692564047177016373702499584625347025284839876455437569275841122273012410868246736660092060755497437361758758552438032516087948266655490246224894320009367703415164536099212110525338045696163704718294547615690592059122152128802596684053074061326923191268105970242252405769979810253440657945587727118797683015364732153611754197492267612620380764839174438101819233228084329140101309969710230367974424241311157535469051240533458186928529230619255259101567090516084540058410019862475397436281975178745237470304813766004167733585962361395811582968114232990491865973245332448849668470634660939985575270754148658591263615406775816734322366579800468444123400850672080083721396933413867969055040287078008742873606570975192343772599622650462245101953631696419575039344036554498383492573072331840108656415326176630286065607340907779263610701154399176206474564602582509536047746846838374710126416868180088272649244334303639267730569162925641726225089051383083867761085772252912573023284065227624986156287501791500996942455102776406881355337345846475391667064131529278056530806072067391961204932128684106767355557930148705861731868640794339321504192285814626558331013640202253023246925707247841525599151966761345604090056744112529882959905168385248289735518812011560969295879035010490938844047992452233032784150932787339090354816372775545521116315448297239490463124577436403372681099059390846347981666175303096418359948330174193205942903025642973493641207197190593790530618126722291359318525854800150852160286549065615762404843014142416808989110403631813997261654090728883306956188474944316793895461881977861884109831572044752627409195779423368509701950398170150908587885521815669755599442952469775201169199422192468915318948629430191767935625186959484881457665030378465476547817846538960673809663420468354285952300712463301325486702674988472778448417486690305495673385332581480335489924889856093613463030000560219160257133622857098362849122042788333488027877399671927700985834927291843108282325087478459394001153601699188974671665732796477757201220465587584552755814422886988133442924396302155223283848035439084897010947979680914384136809276493071676118780424519082815046243768706912075358520601174071429841151449089704818596967569229679765642758608582567576211002066401705513530347796056161857452830960288661747416822492379456201902282979845959597924097846088647104688259927404180959583688551914091018822204532186388882949709695304251107106975454511967364769294977305878644724420545930220423645712804762683954175716917499905498720842125090526127686713365606135945871223672725999767571460054151467893510314688060566500688193134093327020921024307596788740972042284647156486980119361485904167343691633567846713799619407200188281596858637442258504472063276734654758633763410442875546622963824193111826088018470324232906484184337503887017065324648879271168594214781664181252729822952256432641345573821628516778775747127048942690872360307287020967111948793506315408719662113107010485273131275311038776216622891185238598844114534527381104228302675405447121072951868363341463942512855659833536063225292388204801749257153170137093485615178076857859620343330494211456703965393656393941058203346088126792238569375705823823433536266994238526857979071111003237186725302499024292178426359308421998735682318066979699071205196888155001625946650062041477812722495285041835890960529647299136671177887658071331610699720806602276484254630140347900121044904214187334911239628071040273038534063169774756793071005072803762493022324432725148947059880678882280005729629504006779232785232999149454713990656150457043354136611907118889391579183480155766358070816797793042015917569590860664276390250590320672549226528013348295400928191183604341169364967441642617619883819706007949609549880994074368140673019178108864542658823263680878417329224035423774801493640990840692980677878026333502523780773689679979445479853909995586812227610934006332441239267975512546303646663237396892099674649244753093328903549308303944900588176990752729978618348504812360097269958836810418748071116293833944115117056972136040284664239566513933907910684790239388070473589260509411451133348198400416451206429684960599837745983493486926945328021050180393570605634620866517275064736649513730447507445312836804912047020322341273242526310862320517841694644257844357976543051028274843670266436660905403733301856289796623015512745181648731015161936271539528788917218943123997286915246659859636390950014975522363633663549131441927578485435711834527181151395281925882055021005241342598314506029600166123800001069824728488482317646446456756861047336215393114040160418923360768780145391720318051566401290356797378680133456086239615414545083447177439430179215885840530871899669631830132293752245774369329945861584055456049427088600356196675433058325418302475531679666277144913104579413737110756324158478542428060305634817767215359062592196221131406135876181369897712097046917232537362121266947483116387211880033510313293443020353989719795609191732085611338448693511094778435048707028492349043368422949256330292628710533330797500908620198435163873773109064472863774016385366229203437428958429418283717111640111879865864354161371788972925925328400166781454345352976984784458897067849020550923736871121326046338536719573898043424063245870850242991423116051166595114340777618386743145455917454133964894783618636804776632203461799035908362103959380093063690922410105907850936567469553959087299752760132668987587282353795636030318275430613372924901060712310356680609349740596482252473204226100617855022650615100723620977375029627668866841935690277066057124557112471293858173108909180601448133734550308142074352229526353343092062299124962017478996525599355721733095961074200213994446229865408184834286802060292295719724046137914053171803082272600946807797591216172063723616340112739859352562761596827175966244412939619144026262010923523657659911572354921903653189394043946880251459562997351873580650824484506905886305445517543471634513288990779595218086507020087605872497813786094987429998082706418576094179059560540998948580541679545192048491917678884052940069971884094097696253433161727579412948878634583353934074613883484135296209645527235411504353377673877270046067706296272588845034672556031244726276052681436734311454250840876611047002211278566122503003092426218708236370088914422337424323244484783573207282313958315191735500863708238805063472724176848774860953741476868662753436951281378907612584988223822698187422325570655703756453955688891331216045688721391501424796068633338217091449237374591234329490632203701226097522370169856985207127112527971726192547464697484188326081422324656828634184325144374633177789364357584461801145007565251072040330077927117294135657091829548464047521294051050668862947190235677188056476403814454907412784132099152968385419338797511474224760793616083465059148855787994641383570559621103971046094284134993454209698232579599620398803409517335666252490780924439203872609756467514495019357921662994530778358944530395499642771810700505743618786060976070485447266718681829432947890484264868963281321461912502351316656574942063887547817191432384366770224598139486394608924365222384935862217387639107582186358050316181867917948372109111317788920075107579776830886283144935097497271399228357762437425593876063521473651819150209701036236224546794069685928547200807084468300296133492771008109970144526676632621875285629234781489824740274609422900191383831073390299022040029529293252910929717094339616526062221283069230454782092987979112287098667564715516867133415579637656212953561480034781343969154782184076828377525893090081256328341396618846707712988432129726898260005524831277976734950860377215374756304821514483446175978400359167628220077269709124354317265728015319341961563650659922192642233494829558651922422646180891980536191176734937294445751502001468473874710679050752375341565345897114933903133199202434008101819895132758404214112248328712275132930523862073923833518522699463205453652998713919715298492990508798344090497926295825978289112877696170661843798684960051641897945824321303687551098469975885996141867379856250464609763251501393871763986690905911021118153416311391685413519111488331638469928645719344710422958915199105023537250614512854266180231783256182760150437959313653052455902240707676160769522664265089424613064459395565908259963570348057804970198743120291592567852220276820639020105178043932388846247437574334899421741065692767666359768176934508032279760118641575813123181012763901576342396140034763247412434233532072343576846562173316341644358379587540942949316656871909582493321765909816529929962251203726571475040201911791935691935028359122175950474120138640927657823310087487187495665360287793063885405380705921125011095778695639329224274282611871287701528494570733768562226108876826547596818250615399085439061175638329966220353000448531671804028320916226878271069890085897686749655208810197416244991435218234098789893450074415709317063685039706354221040986190979604282158343882934283673235099831866273087092074462453850762103017026617800302031489147057706583771345591912607574753196546025778315230625819357675638236159868070412713020056457642559593869026151915568777210199545640260579301379152152226103252523495371616957084283953198592845646472058238944094193764774207493129278442259909442716844137689413227124340541595827815247397795946853785746288351047173798013196915030079337109306634490466574894291459710377911386840724707429985395131010956208914722494465708849234889628084622996919615673754168598734528642472731929565974606095465635024411930157746448767465427802560559918949123180740045732690384404658145910930963928717248979516885761812175942318072261053044096343009065416736757197911717674556225193560554533530926335314287271324135407796479445503715013054474947734126874300662144613053587742185589983238824071409903978321599456941523544000384969449119040479451819079827269682236535655772657686290092296970014451863751161647360465727444364107018346943599795778681293402699127122297450302573318495028956184220863995989703934506477156794462382612524720932747475997039782767719552860681136298666872111875516389259812001969480240194175111878253182228286461571340460538536942672997456999903173116306213852824854231168770084097349494450032015052462427954462369229568473785090355466934455824446423687888628125245529827548810457240403050903784480977334416533596170807724252361556591364488869017510318144131644377703880498624454265788363610772173716864842588450421849163608351292164295369333993495270005883785384446668179581551155337206234122481493176353551642709081046873308280629763525514810425612517158922017887198930081243309191614584116080223553847390845312910679427588252793128098088727702669142145515131734101252407499461054723190452830939139556370855903183503488904253033945792325190364414115944561508273269000493807496676001091974781382247874392837058944274965136240696073959046014588677768498788795032084754821066513325302972443170061793410794469167855479304730499298603932636118673575675410056179947024706772548982681345705945117430860188299069291329413275674478016346646396960410101890085919501404638709237830407526282134423960232775615968905076021065995769158867459518718051667218213190401737962555947138801635347251941740715602129328368096599097765221126802336148616326122071889422457349826121047304935459624472464855525920494444031920116336791287327952445575573806507113294319765811062178404697241604943539445062498277374807506115801765965113936505627019469984305687573129216266861374161868527099837100369156559095704320375437556384819267529582780519786506034337574081308950040348309026317048427712601452980376707212719171172200795482202747832326129445690237718616277933184886228077221826176476369182487384950419379391066994556474397727903247482920763726617898894428178225452141767709918504107171609347208654428670924159770309904228670209212983085051716670328723561342084003980884274974770986090425848870612432848388566958254080300137844769464047982410825200441874033733715882648729370101124466002383815350269990831539478066637434222025534521382448032729161505057982327171831439112170037953720433113865100071133893123155756715254925407743402632491164017297969209501274567044478737247247568883988368858657982398609911337438895087864606195606851335404694264562626074003536230478174465014733393600532818818600079652611935228315936888463408179922097648513588025150225950857791328408545739393128652320156723114464263997495916908993341303028978674165592749261309785126615122455959689804166615518393963681146608102840557048370021952360301306557177148337923010693657835954214971312371451200368353870410070027034146927652950592328047470754124142992242052683115323358084048027631579099420246485125323102844513755075476188613896358387505203952052731519738679173505047609569747484596686493059644507839566185773112838745630479025398135864351874491277241191358393912493433607830886420916335359986302259918727133235763039327206197797303657460444782525083946958638899713786412596228073068506915127578562511654831965372622062595936813973938524788378684299005516576113231061461542252553039460214766135899447815320335229182857216135658787164754217704662711614725607778235873786980201472492164538519894630029578494209627734279926129646634162422096550199365290152507837759033376422125050086693575817240230490074347358884942682776390831393121151357002777026677932445376664049095406873626223479435730917368003979731274664293103866740612139403377968328563190308545608077794090479810403645521470458398378359377691562892760523330286684252171721294571082004152752390871198633594127018228279401343346243696290452555547473415137645756656196126524485384944351149035371259894608086217229026081661853842254054923637091190446576433318014589981079157564269444332091044613586111510867040904044790062343046963883669142078877712191242769427734912121841748453268067480766184190566529162955692636137851818165694977171820479415957639343925163817448602795522409112081532019945970698956350271273943079208148526991170257989472161248128051429900127975531068647215605495462410963611775760464512080477497364370798724547588677386869125134798126896055696171855105340350629985183660343022429385711760338540731249973271203678544295389697016633546892541699958960378232078819169279725079613228180400732515117008666352034653456845152742957758616055102084245420183282559656335040950692344045558281381941093966672608768517030838392179800536182819290977018481457078060347149701016899358254937032007476754332059305300043778350025357863150946715296960711814394509394476385220128571074136622699932855728516874941513969744401888042450789524245042312973345594350724618489608017794225714910889390597019816582362821802987450464601244590532757395915723627704676822340041227890762542910594997789477383040727091719656565633604362323293055778318766955800817270336541671973595476219147314666741358228042089687325634799030639556258967410833725682676242106143489020571553510050234257552077011979479578560167989937402493270875657872681500264701441896716206167303309269792868819143851340400867999374041636029608637378444806634510831132494818669996695379001610038179689817892395815370868144974472691564699380378569318925224798833841492764718662109211381878365899282367369319033786024686901620975758490840725372709632630648911726937608718591305654048333627662491386670893007169200790062392240579406827152159424496376719272200690616333670329733919339974642311691436065233692844248536423280621821329419210217211178344408667966221023144851569658852275346468699189793366625565913710528229312575012279764400576284115473053327937431628107524427335347517911567972215347048137355065760210959858466213319931103894926482978521758110293404375749023403044342920935607910902165752121375733695950901699194141572758439110448910859336491635539391711013197842246763923491648660588424397533339068766727997701402066370038730017176286530160615836005164779388096418900771655797214856238667705352783284506627725311918443828662641190535634061907022540562612531259003668437384552900346207350646385215106378175990661100256546630531390146480932263081257656372067836116704452871264441556687815619839281378716793299042199518095252271761418896554138639015933230928469593753789879078314353696200150335897310586484737100921057265550759065265648934505970084785975517506974731092901962061854158857523741156129785345535835910272344714435237593646658788286961626834383748818560774193417045526870522796204433864466055190600249545018793464859382653552292065733045385588492824943054742113533057592131792803915955520993107924303654395021719451399858472339197927415954652068442179547481669922902005321503851234138535949226640966953247544520971384431257021522659675056422483208010477090052237632612565942859245101477651630107381522984969637669063184353508087672197155266457407103577240840503656773651822426932251250887109432230804135295960366364959077410040933398950462390518749740647825705544512559307879119780528801350809256201872199817769963212172452913306865494322209394164988679394197911504207887285183957102340677080794848930278676758877222013073847069865329233469908918727423895658569214699418407185685347507556585284641001615022401932718653278584832976040104368103374834853048117230143305621688670715422377100812122265174741179792091461919344800132336539358458548060463020159581963488164429626754582773810459744117022175182733224150800682579957791545919136887774394994780279425969020006368724274157916979750926022491678504206406510818645294633753884707873461391299761715291095652877543399654560165976277166347109259016540904850733177431318752325899222800409408046177498398847082115644175692530845833685440307457700289662132899325058832183159316259399324772626413337022302845493448081101414181460797174715282998382292088242266113166765385365754601742407950167018078524598699800691291117888453386692676463402901480527575465467845687939690581037397288141666319757026885742883476990571396154587983471119710451099183140070424689370973921599153975621929041614813513968376965642526106599872972924746351007834088342915604817494620972952369788676840156496932824504481823287098426458933007714392661763668847896791366476494081416982589415320249394301162484492277611716800297397073067155290372737425416634253397256281058996070937645895169008531470041320623285869578776137650005128000589623527477321411363395240263437173902691486104876476507892685195264744193061317362769135119363838269184226644482711126302371963915393635859119541339250356612725146284482549817314831793663899682654416151794155970827696496868957484550910006475009954066453342194657351962009767512828973530370965815059366659979906126543242166792609805780891329072087578346641824839247187893277540785498695722120108377789985426514747879143706117689318581223281701870649669043859067438232192277675491154453325356080926220549147958081809318339329769428528635190826268289840840509029808371501617000540290443544436186493621821267679564874990397857975371080461573609828663329739921359220797387590704426837787561461745835471283395271237139332589930293982660943727873642276670344008271052789799658876372659155055071532300647896654844097422592731624283074654608194834721886281482581326475474778749064878092849583790321938996316865162843583573978023451726241726007696835465822088488362981395824844373833857418184495733467249976360260633190763201557745738628986470875666855007435030605929872237529623919808773787982118601502483430848813391779696517808974892102450602913035939785239607990313419728609173691855452822335309065630831601929264086171101713777458727101596410289090103590686413243038097218809104778738887253995259917466858405289715172772698625157077786663723701697535836102003872286873670475248094529526443601911306700721056403599967877475383605069571325980608973367679399885362442299717606328519038438333570609439999992781263069714520627854046154372608813904411804593260814689565504576331605546311573584352585844202709366506621410364119834353091993194613413220911397145317677919760766009874780337489956299296761154530473985985270655419254314921435177537896458432825402053257613358449271214463762678286333934422158234125101231313305561624966642529830787030028111888050985110506730508702130349292651916049470941164576361203932471522819306047721534410357292898441605464334332383659896321463838833154740877770600846389367814336862572834010780812585546844731256859806766047237017609823586970902668104929515715411726959526101948857973387804097426324750829671950955905121346969999914054097101723559648910098353215828756472071521951909372665384972756479243353088269376869015833269939586581259584808080377266778881773393896155354995033165569136426766927835498150329470596256246450202197822940742610582373049315012380579833233462838211246038253275685220778349257720850378052469317144721225600883672485382568570421188688477432727951214928356635315603316645714243504618355979908967950049977568109569851400683728405270576478861437929829395460562278980462974244872955691268662220957146132761364255072677065321880155096752677825502171967272065279728355437637599924526282259815829162809050170661618424138279164690446066445988193478815596562190098360020643066438701108869857778722595401866983079633606103511967986965078272418070688986686371799807303480155411052444053313796449902242594831601877170961610187152035168608244085366734316254778497084996519446139035692193667758872255506399898594187461284685342690959710185936379869265331342074142638987296149301449229076912639086350628197507608311414694133140766984104750518499387380679998645519942080883640411775129425911483657511085681952099837458239411062264817764530224268896774865771061193265020202935998676134723672008951395923038957690991744982879035583160014160279187837562030885195663776561210569541010080483087498186690953280034172507419559343195448267959458831278646127802276984495402752167371576236849565339832712512754531217748562615271803365944501334614008553005114645216942983027248671169374257111161728670709558478703323531070394933729206580146762584269319366201663669795507132906053075826969747573365234957532692790744772922149790242085210268618781574892698727899942634618053416366260600310086197817296742656519587264892547090359329610088427551612769056906074091421987834458289351372924908016524500348533049139585978551465638589552219103255600970593976057140467705155516621191857654487461180779166015624841762519425867416541931855106440834445869577575934767513681852868391236338464956341543596321239822215244710112906424776350478366571105690944812238055387833347738760397831161690373394913011956045355380786859651234512870493877416240096059142440379185730457282903568199236263312654390414114746680921132619984284515900675725871079510761221161723069477285357320497104031730573318747172357880844391036856271521355519860905104806943299949106020655475795448732503840821860486830555736076435257919831551424747231254986432330832881953120022448155229313158641218458448849911292983799670283499979152853615137975933294507621833930240216592592406134096631213187183759572198632698936563259309794401020262585729178742509730466439611616790435470741276156988001735115928671092930034779522533200006858829706697039861241540119916610957004179720372816245062544572268968976853156950123744095573786668723055203925841675338982972078739239449713380300287892317359539871917078978692545135575324114259437008267488070149271125534175278931614733861599592157905010338577450898536656903051308104056475110341742652648722783848965833230805602919970629216797833304947368328528079017344151973614469418532213413283778989828830473444481475130584941038767008603885887367615732780318808849665481380508416785276449289183069351421020576757154554404641542688325442539348187320949173774887964967550354773610104358705556326931820309065546801652179399515430151979942641631571475382767068876754462016319158164613193654520179015038507242705410015329314190176312841521835168902947142739460798810301140643729435308315385535434211803324190438710628414767597938764472757012363601750743687776163678666736503321671293892992941589543270849619918103735654229632783569920975017249343608959376600823929039283518012134129772312353007401397166243965980955283706286997368809126989717993441402668720752983126015516177482752498029472395484067690172553125251935960724263457513870523409843671724507224088247278104185131897028790980026423777496935100569856323087553225520464405860625305201561218406960336847689431873641442214370642881330018432552817463848792957403993837258345814045584407278646483190307449218722929072521491436253288962712318624261605809348498154779855174219474536978119328277232803812106901248350961568440823983798606627752479835257160277758251726079719280323153212190504857058703345641197768670687990648546009507827482930779262802477885316869010669832892541786471964272310625810675823008551288936169194481774648667125633672881323138848217758526646773949954976782547482513368004882638192022354765354558981604153182928566498357797206912563975242264173202081266593355669211046412428664911776736799044568084104743104514727381045562705526010161027647318184797970787881055467621495561964671222686287027474974307169908601694873402933626895967079627774070349600701435755989854448180755720047962200455776235209731662711159795786155697246678296022730529772308994345798562523906284081886903334380918308504690107612362550594043893399879411876214033812036126582737974241481417262165325459546551355832957037823018662534641841346605644291049384769890692815227624283098051220004336370857214334863612642893852502328214981399388225626725309542976096817129404802279021946894778314371946121180585728854010938841337136626809873464200265072036122254905835206807534402283804795258082906136074412875173651286908462197721966509104756195778640318257931357991120597868555061088099739984088304642152578629406739291001398911731837082020573838773326858342539073578476374325551742097645970245216114183383952417294545453252055830721076105535887166329038409922222456544522192608571709160754042896458546993209811476962816867089725964066435850399962701693456486082195990940595153676429498753496898223371060435614960055567048924498946913079945644397775243270892695844744053485944007459714155945945030615106086598113852022497749962359053391457342008883031666464219747210354544591982117141788335489656925456387431840041797598004897184017641080125045589574571395031495993777577446902745727315726297900460157714990157506725537961579295447221095774414648482802971132040578742840342674061105083138266959863322284514321211266361619914970708555026588910272051551899658178983690401459728840190071783397277550692139879687666848242981247242387323256447360685473918570007894692876553024812550234556906701945620286417912752138137148058361037856935297969216367597225638880811032750690871524689126814187199469945085127120003322266420958566327407216422085302518027145923431130811289961096151494414139605651002630357665084519578226092800457183419856271603143867049221943931659249208584948984152609114592017770032212200735510183357939119331009357177987026700284286731897222364761303344747526666794630702616643163739267382927643207501290603007260780691607031032088375291976644784803560412216937018722127579971111342295209768993106037625242549597364231454668634173169389150756535053150835759661819916263336552622761325183553466931783839771035811262131455810074753446883419053572021537075281710888140360939137637687819479558846789897269130609414004573283037427390933236703492029287382065653574620721671691089049163045516105031722349030308667212530827069312787410207623037084748002917245388971778494563566964356361492747034634716642283521549804234940193840709648753629634628957663607501382373751077205689628452252066641058067269979965781398742581447578791456077833085382531523884577924445397375683438367294933486722621664225596257999799772229556368186692764035403175042833218056913651934836994149138093038633161567570041062317633577089069436896799679641126878389086954177968748745740357894429414445265114183155466057570182765311530157150018007983493114521085432307216685488509010186326338240172226846185208235807476087995746573508124682877653187406723892564532912572075272369803524483729649696713459880283460537235329448232220692591858825853212621431911648797815167364395765641759083865076923112047024781709492347057535013649472787205091164045995822076502577058518983303336517655039247409819029899008049392796898836394473616603322844637955372854699258857199274920204325881307895652917902064882946109573177333220934560448114682991106217214211577921087186491731910906776217439153513778663943161903439868405244110265427420602929095367660537446589799189121153087970443309714820555071442449741323664441726354076018246442391085045572063620742469538929873811088841090174839404022746042520451502462313894313925182077163297650507439861295434312319230690613444876277888838944491740203173461374671450476000820733711575072473829014030550562347659691310361210551774767319119973628165803121260062909232353432369950642133051639183319782205281018655732958247381956046459066968059989351237345412251953477494748062087690099429020772003660565165173526830739345616608596803561801911310410562576407129040479294750752265716221220723201844589888649345596315804162904641976723920404439608487654087574544661242846042845863684401923312255736151618970560254145170549827877058579321985477501273328161707484044268037341692799975312107598242674908297100117489488221001005176210273150088435732541785751404529816363001588842845403871028314175667649363770489241751561714296675002789899108500552248432046674664487480262042033434871295226124886200156898415939284814858475225657156626461371390372284810922912368684271226500480765882202322732446327885655368807655671070674406465654816083194026047579931502437481111027643070714224993588077266159458099718206687011553783175191345069734538811106838297766386756910946750905391812664357145314910808949853041925384139345702972547211700589567732538495105499121037952506692395562938638929682005281206871390249148387901156068549610016326425585168795455937541096267592241488432381183570273795962063932742403819722105804883760893643150109084925478037557135021030824271060131197145304714327131354985152516603025788629224051939204989687626261794216401756917275621956183716445408123698749418919701308928150754854463731662368455196236622757105790672530452352625525980624880268946052693820631089527669845029125014224490840303323316962326608296721643167363478159818124611263757009757657461353853937265069611854878799118145058265447333829052775796784111625816321186675721280929371831274108755592210119935333822267194339359573144734930991602206896811397210810684619278285633190490675454154583913935198466189577561436303195118406141640755686106568496365679415740671026364287588009075810577726117431830870256543752676720009102551300398109769277758600538131974185632974292213811121648647129298371351191922666813139753998889443259728198721953740647622579819195784601544845928221741417759649677226569475362861168211148238656121784100903531879361161752378472484185587442782159682811514356826245194256129479206716105663387924934955304688260767972936617993379649789754611853448461160330493251587118723526561683515671967763849319382621349535177359035773924115946141645496871841234390902641059830883469288452551986801691827113503415823722679772657552799205761144703306124644865040321352959875440739765859188296956659648419225008957601720634137544550428663810960259888146801412686858009428149915136815638727316749426389308708332215715519828031344599994036822846417654467135186220224050309830307026445002761036720316172866311005102422976812855352022669326975482329683768023537215900573895849475231761436162015398315990975557047384190447977225641388066105338419152384021960871348542822209228579217385093961697287826814617043524884769667046240337635513135932840343703163236968308643229583150463247967692725404363394200315417930803858513050434118937199992906606057405779298841561532481135627106902210909766697719614468712941109591670866775967599982797312414089328480421194348288817411261452715335439529329841196995913183588364546081942334718249487365911330824260659932055047666316484809322599937762190414056765444987930508017921980918347009218354354137709630746181698864872300764968405325933879769744132824646624569184204197602739760801799849784451328214686405104386809054642930332853177491564433991536127036918373171964686194008483848972039390102893111364966332463169963322881884786322929747345399316060545485294402694023962725970800962271228622182065315281833708899473482760560201265567433361652157660512765098989555416696077569536817675702868441981624310170797876602242456580762213901119063829163304526997484333453695529051507997532727298742240351032411011603325894491971241252793594206625858703361758108593893223422200374717938728597455299181319952831905325022146149177578331948364323902350042797577178343020442004565204892496984404873528561138413334283072199269414129887402885098577045216907661499949838761282770032690763889729167790920063941223760204680081116549936835592680606929640676317890038164099988528595467299939593699872393961706473717773612065922872071119886428161701387953200250520920418814014051640106899061586191182058615793691203918625564201505489450936918661400926031860554855528399178787749634652898480420348906673741368860868037411678715314790128220523582960676054336131616537559334923279957527778753944924181955951995395752547811359827699344396298854967217854222022569268330932586360367052291676668368937438937008794095307694731253458689174035772235111284866718514462037601564396455680473338445657315722305762350664079697631334725244990216730041893565984142678092936458526505873355253491425141204116836600335971468087254477213099063165972892686218345330337705225299069738041188004317996248050144658097518113402696394504624152220019077746922605448208176505993641743274276243902131612176014126128882822688670780133363500004591299189308031968915669809438365450102366244050146219784940718784159485556051512692448935441779637947655836513872221798873294888430826399384236309119379354098254698452452285234615383063699245528545894164836314846714421087081306163821327617445570133542839088182915200266231947935989678634579167130647350370280581916551688809512044959904824182876832652925645060564949803548908509518803413744252014893378293136241860518336285910601386069811565527199559429784655303897733421315138214314161320629907934592594412758764817451743022232441537157008794867865674765665540123158065645712020659329721093853959656962513756782174624096555211232629288114333241322022000148212618053066818959427183988487287856182673765600228203925841209511056359660577584756730375072721074775618395846231924567881868021209506007876196950633297199150940817585240174140697030765646599845894046322093040282219243279186521487194139820795900279194828560432410049631630973646499907420784055147605690898460187603856205154852580652619964862900850558059526387143786807908938666829927810482698213650954191850921544494945258402898288393266426908964414434143158944033486835949846387438894039650965798283182248230119567985717980012188414548374545690768603145204485748605416883273774524914889686339652550718717324410115126783800113366749358949581667468384883787038407300011628423621565149777305090219083557807166791177002337365723633009126200046671398213951086650843045765073672263023741514162066793032872717270083909722187404213919509610788285552793528692619569306907188689311847467121003148030893809386854170863449851229713787466911457422666967836686592078937499351417678121886209275331554514569244587740143044446920223970393774474487839487881546870489049350904848530529422628510161982248467590822961571597362411554287401605748888292624903682719001048673481293331248074561664844223400983405412084770087888106010476802192417127215949741891073897124031203783373557679547084172352326306559524637287384198456265781417524457506366837114585026371972847648554254186765242090964976653458871810666158966378566059490361314181729869869094464529985724766747699821701054794290709342836797194935137154990822782345189616512270726286535956318264282640996103205441068060305341768051486635291887895291011090199036593866105938224183280573057170135083498710863316671364337171684466074092365512295040494880208890872976489381796694197279519318635544524158927603254842611385779627419076882818335046767065895671814291579772974765184563881529250386278208509247969207508207143234674982963157469743647067912107065651641626738225667704702834175393571233895909067032025406008596349591211341281447218894462942714491973262905533964214234066133227630920632425096685575546783812058890528794728268121696622032689215272626687828194403549543942239464650036767176115846414626645667417378458777703639423437148856989305304767071196340912629500457814889657838655874488091877246810571434775706246664191247941786316244473885860142099243267473388438791633256929429918977174659563764226251951065785532544901241232249252989214754571555135824005798761464309689714069098371820099941576775817982888157145066321381808843439205418490731660829888879774440287135715661515875087586472294856448183432677659309091204337427965686243554036395852685367065601266859719280633288404281940076283905822827422004083449487590363387607766013680018136195684806242770637296779171779412085409572213883082394971174538021146293079497105248691429980426156879585376872249555537979513229098804480509395060448886376938232649818944777708591933955769857226486086709893828979912788241624281272300372376569209890868638004168914113035556867060170457733132557543646819215730053411938087482723760171204071865147251397038125816407527019176276975750343398393980054942409408757651269932749165537864849583619599732059491501452995604110143761232228853005332561349533685685490821210578311948908473088161887860387873440065910269094586096387395022902037321179251785247180484718856826935283416316525061840178330268806579403997181904483312585672148233417557309531598453156086021117960089555415737969184683186682492756519914159038422282264526161731545558886032543252395104156725745941869521176059764744370285004279447509815901250828754185211243631006180981482535755245340736920006328623274991946335658340069840982432212499045444682298945032514719538662658669280893353153722394911722704156284179113223955422126129479997957395044509138582401634587918210332309565462222833168567522563572742617961250955849566127759947617299464215323002273709161134585293068092614185616598202158568949883604589692368993215631973124378508108500161820325224774728296594597646597258281161153110488740337929293656678974271695669813350733478743707156576828760639188243940978486147664232395606834518186323056071411569153435919628145413564652145193443554556996495527313350816816310017814221943939001979481051725523217550352339636427668273392903798138508241944899233558421358395001722996365163821592311380263448920391420101270957085410004644854293324112065990949032288475593661513786097073344638009618633585853544972661638981850511369487586707685595410024838097684908972455802298012410740807254206244873235347291110928514098852030767283653907491829021566828478254423243162798715583559718553609290472948560007338866925074370637500700091830473681553294057149179886988402745762532269202546451305390721741444862221204894308866046430919662853152657486877045501149165131800600425023318091460983790194559139130935479431157209371199189095685832748842591709244275893500292758728357833892996511999265402574289158207907519176859978035991959372469064099468883942923236466091502384054653337060501786709944663798488188068318029736719187682897114071570387235623044582735522852103082602241133378476457435329307408162333258615654905903652474240941203947401768089558198612294454625301337870542604215178545777213642712908197467416438962218959112191116616358605626563449537848759640071020201168888572446402129459525547348364124335144545006064418072443755327262986816053141465659411660178826112423242691119782656819746211987288099682256195793203110696479154836440265663523977023829184535192672703225689954885254771415423178391121112033465290831461587495092419808488244814856616162788573297140358929047974566914221881179980051652751346830077266405874926204459232548342781191350321591973097527564916457425295191994082188333351233544174737144113028983805061588706946592039190359194186433312092542450380710903445667076383415036814495638741325338886631712692782614058573024172859782447225225069309118055438805618602974617517975809948654165275596079591186319111553664985746177316001289051837573676496201856418971802497564255171443387481653453022200709655623166018195763021834373743617807739025956544515409856422826696990183336434932883840368865833982140761707851359062636204281476789840047116136519411731059490663604229954387739327327393631983698075427892806699270893404569433921539356414798063961149927535194722706944960607898737597882088847829877432258823131578437277619773184706145351833485958099367795682012028566868152769149471326981714745645702398945848535566066842953417786380365320574843106792217473167262075334022773033750871082779305741405368927816108934212615728568100543842233039282462083919361482660011283668315396474555552893895342419452634712529922021113544391620176772388690584228119166718299226837015979761451028915065757620086601615337714243851430928276393034139690939036621764573296230979456041855686201400141188923457502403616728504110603584649073259831494838394283567499048979016604132890404066717713410440614618067985434787506466549200438501027306090765808906494447087754705376775779562996369391201840819287343178685780302658994492948733601071124586522440031620942163789341895280472217714873968887601908438749952600465335644846479268747953759620421458141550427520160057180644299392610793279469173161018070887571761730673652727088223553495538448953556427560262665798190741263269892225464569816504469719984116060773936398746212609380552490602289764110683005127163307912951275359998573932983074115709850934043455775430084097017614452891205877912221935240131771249424391588218434173602403796179619821248236677145083037695186008819221016135577233744651783195874606685132604959052862524186347479215877675632155873391836306042303554209693081510959359786242960317917981407932601573706607341054110948940808488452976091427921163389431814028883683329295935079458991776177733992057859528418405514569481880253373302531290556084595146320065677967616752826041956679719630099600281241168255263301950852925378050184067653947790459759146556494793221174967630888852091905600558881597842272071440672776560218393349478953062616383924294023159263760763973663174825472247504746380518880652643703906360843330183003108772406827897153012421320255860741894163559963724307938638564174074030038053677426418438821857673563327513247812160315378844704360466433837317362666034382980885556713576689359022522655706046003351173186473290389691172716806939570090403119983785147393169231924564695472485238697056529976760683683081914708390285685440948429009329104570684245157975690267814414728379422415727960068575221828827335514476313418670548377855568118484297903956302313620243163027344892528331019974486216323921233098870992075953492736007754439897664537664978219983053109240122200526337921339385726517024277372084024316688682982268393414641883897940887398299223730284702894470456290368586681230216894186307870291202255200623094677136529333124801046981311543580697574458976043189752996771628785301774670037948087357410562907688258913940345184951717347223959065936540191108678238068379066323137482711598666291006376712975313332138132918550777878571325522020642669695128711661144703641945070480751645638138664821791710435601628855929828122750183604263286658679182932297525002168603102983839221961673375912536097322642936977976968416036119676416307530695161304638632376590322598197137829818852244363774144316224704339342245827672841609848012775435486837593557107591073312864416419033404097456293587196391515869968335646901044393727102463978152233250713974664754490362362775921947821776437860556575669005639457367275784153700478991235921506343854982068045027179543548166136845482580122854798382850970267421976967591594065642601246155111443981634004572865792635177822385032002011227465239778803338197607727950828576966830839967820998125775423395832413002001588012928229528095877391418117732033722082504707737652664881600609120700276726626365540544657487515252610425074313225203672016487508263246157763633547726398333178819214363653843270642595894618350908767596300006242276663026617005600184059846660010328058882512979109199484306844069071785546211189483289544685718372472428709547068900580595890582049340045106561135758821646588169778563162990225768123633970536283190768234999833650571893931068925947974291524846425888975607409282261588335463042518088146107845540625939824625823141424576429015957240536188164183760881730062969334772179115312799512177839989343125160931963573747939766010998191065398404407656848021137129662656610931134676627124285205723271940721993694439638805573002461680708767587080356586178676225896458226714123998917739969787400900577833820312827722493434861454609424224571242473921850663448065378335299239959945970018154338497349918036858976699726600566339901635299748349929074118291758945266454595410297686501243977864404133134528682085012690324244855712566994306052360547524555809567386372642185190091716594103075801158471849351566795883305732005695854662219345131725257962441728302114031022059619795093985554059693541425654977494447919348235685926745582203649908743716402249125810741686518100358373460543648160971737644328171122359637088023180839670705010822610371945199645045310126939639325068044785233475680999120169768754472733642196902591490278037177474672266313442402579912372118817504891641543139338188868746793628924136285751490375323860958342945899550345430296545491533409653397650424571299291075260819469570077373829946361047419977088782231348535673328276330672100884911145894685171216512271503402715472253033127571311215646109510064450445341336616462694988881912043185266732466818649906811337357152781919561305649733929047088564422592015102024523442707539906855479273496297953472097706235668850655426425266957001994958951666890119219898884995062640649231626042228075991525193763025092961183252913272485212308477295854356733159043157934904822056591248073221055567238827913707274420537724904957642028768510871605593970041817839438058534200124828580167479238309204712029688472678364218375225262196364311955778736118954813428388220183324617039308951083215015712923757391063036249027844372162435586809485825357789549687811020100163510036201504618413375457966817441704461196169432331006625337672407840913366516082602855474920890489866569116004560077354350924569628053661093717325154919124174463379866843995341850664964354069124592427291117296168040403863370440932738577664400356700485645751486438111076339387278346751864956957412999975976732295044872155044300600041366880872746401513799881189328677160730255817387919410931282135354590048630189419446005071003189087893890354411922524179660368722978946530451809286437488238387288841294686610110249513320284383478764774123641417105717165960305849169091514483688965663658939416579053210789367567708865645037240172134561904617447428179399582291650715769391877496132338452972369756251733807947861559032100592972317264401041107135649862165804156808667562275372243856138255960156880876608910504037171368578133570996973120245310166155614049380156346012170128807684419632628935703601355197688252111607885147276180863097160240114360721750038953674847395398880524517838189331450063979576870850330972084444206939121238086084253233571676082399014315691557711475037915129612711424040301222385696277331165502280057544102179355869236145122297473454578487493635810782817228548151051389437645240022209132934503223860185899395021920102400998401212827185670093912328817915948523114187388161605395015418065761538782658107352053729557674674666038933875425705712203237942664851125571471241543128796536757381727329999826928076491021897547798015376599650249160695958911402751976594832980366763689995078268735924175427969809897447125425157028159720057158785448546997874940393425095100192225032359322126708654855544776464355492025448833525699236588119288186984070330294659546542817598677246205257842379657020801234264614034320928704527749214011768273252963535236746785712268547206778140386017521629255863468548886330141047986168453614564692802399279760332184283926259893253586774483047167542116589661498541992778235133269103560722183004645027562516016656421613152443778830584157529814658440148483557905082666000539081168407556974080765616857241397778725139413558882409815598261587079437425466002492155746901661206516612046846129917006553332489594571709801241482819172128457909481754442732978490771800514254785790588925246969519461962075354861663579343809894883612618164001217884863021710178606403946488882847384483688833013069429186238131106208699465761907552502590996731270845941430697435162582916913207478091191419603620102001522005463218418001189323007456261884290461668813612809508747304222186784496736191878630440106028028866600793104681141640460014202149229124199277746624695492215184605530335316968375696939049680138701471617643276884641419378222408018184632033817241450015609644166733201352990108981450481823941723870899863295368746331882710077610950447739404386477756667365814890698275073745095550098531794960436190779213357557327205984968900341045314424733289885324521232580252402095853339155545907779478828878840025572948648428004653286757458721179127808763259640086275316329012586973788671845330187203482401479147732301295259509409274451989819220630436507912558675578831878194339633374979115839138873774662574241717621575709072543175555859261099780761155273016616014724436086386629139947830291658855205617394874389660065276213254021608069558141884253109991621145894559687114320752423600903848535339519252912838722035355564648355619577887607975569356894191284646628637839304882721465544033456118041231737823718240886793746998592455842702992356762340332156212049774391967094715041471796295996064203786305259889536913078303780691057432692283958894184867886854814041471746336383449129387327113777105870289645025545490594588926473904228627084720675558013151531358187117938503488422297409018674210888850714087590214632335240452692368962376941764790540802607754974247280816602672656629401094257566068791562190481872475862758867145387807993808845946572068565568048328527568021201196039951956705122533950216401654542140227549927698544904409497236177345230112628383752605404843510562770185519950004166348284207596241248660811692272394362430914293257522957884112126647514290726097382358510631399019954243098447804274901934507552711374643684213918840467429914694035050953994226825941153581534583774555094849878806756679241083183893693945329937418167550393624991690433571675974254382627705006486745641470608918503021021162442469319017992469846320138573227674900207401334592464025444308866700543424659845283563251954945749900210283368160343670469913380304703856595878618953057771624266256083573708420824916092070449710887394589986905664017225682700828359622330725100380403804749553506290734061232580665708677264180374398966677163718951031385371695085588739747906066019320289547707054837558940105544681055724540053936706892776626956294862431115224958188939348551568321000944973554359680394557957323538928067447646017468670530330838025026697045381874096853045357801597971831877299659136151908233214566859322462694888873704580189011679095401559991774556432429731909478784138849300559052426627011688745963818126313340829015410756251489266036487767723993659653463394584547627930001646410087057968519903421331814035502126708765403868994436529068991836774223823219478940805105263080029582988498193791728185155842222866190697164196797607494999428432261903360641244831131517827183735298815207524355982916625119588909650894720762920757749090598192548087633070585680658708712891574499800826615098468975033448323160098176267707000681458128110727318112325296807202748480759355699537394375958296514083213946280295846880133744416507479964534993093185784530215243300861466831017767077285559046535219947591317155473680773898604502811672516600485326620540542092118686350332715673258361943723114937349351694491499882153686793430472683787858488595943098828607622993488107615532303653247739414054196343514165411115081067513780794373500772235639973826000001520411054078065712639422114093379611106001688981537210383918856599565737624821171992646754783938581037268930675863116372114032486544850736807859953259081604293889819073256970509526483102380276170254583202335874090672665708491444408213043718822024974841515863447931891172397828161816628139574831258052911575385798922535011212095637901599351542693453673629254363579893594090575135211670507159322752587490518594378420060708517946943632611709404822381360737245726318435075743553624266798340246342808745394449899969893311338979784434967760071794459281739765690360310219264142894037763110864561991645575874605767105439673015068891577435730194931973397620584090606914032815466973731003779135715595198611937561814818576549559810826090478374466022166211869371177367035620591916054782169649708841123102492933785019137920179501240997725404461630062686936294556274956538198700887838284917010029175004777337728006439814089582762360918874535866859230780263464825451995046817944059185621550219164901538995250496133544821697853538074795451138368140916303911796984588192531513781113868382803966619434858965355400098442860995193281296471141393250244251103993840166920579989467903354811820092108123285704910095396295738857115313507970390136691637976728221835377041335292566788058840372341473308830329255910601876902567297781775649259288289599792628037288224386482087724620134935589255868210415685920179949600561985950306684235773934579280004331602497369708857521662094956346945869717259108774478243702686963068499944177506328444157326850800342804823404287057360833564331394270532893726450752784809937824961643699525329420791067057471604837761326423583419334686403409339618958269895515408634124744152276855376916368102672404374433689116957455948433082999613276078595597706233501670530100413502260324108723275914665739536292836204916889831571848076392482433445783090287710200377810207248236937102653560024776973464536241399117895282479349579379636243267861132828036435355386223672534358355484927186545155558503178502636661747297555474076132740913493428216251630610921340424598567780212652351457354019178273561461679735495027080631272362395619290605764951591641006130442247217863215725237912266127487072135391840187342297610361998149743196741817433753201146222441727022783541624443703561255165213698056464406273603308927017129758918525074758124796724845778347114483887268122282435126679924175572764007264387591215641710525388321230539543333637258777394256248558236059153252957935378209780322035992032858274594824768227456224598290311231518357757633563333282296668485712663334067678945462707991861380523939907050492331963370357785901275153239581926440961651878292197012159853979429290940035827222631539613644826489651179789845804940669472058318449777189133727750602734639516772660660031014769359460419707496948846561683268312982334335963420899083116379781376567090736831127690953107727554114247485450802346907059038947887840460232646736346280029977538603929460793295080739570415283182489018452367714565970888354997624670110946071555225861354165367153536125041806415887571905063896608198485745833270372577703231123585185123229597155464896433439446725015747546418059656043508233707299820374963398389672645265378442220541940344428268303668802194929654944202080624198844073666271510532822586297757527754702700456246553135604911181837728855174881412915172889891418010097100841849047992794280550423723397091986083163445551692190369885035380731007527458379998585390050913860418890129576311093220071762953506222066772672897938485146680779184610225332821823254762267245290434568022869067227319363698979633228999340047015687226544646432743079688747485965161801317792081908304878360307929554305411145028190657661589930796150200920645779026349910592437711503417919041375754902858115390085531609851810811304659453213509441547644874347600185432901700416658647212691520779432977401902793314237435533641451280172928461048535158386073365578506278315601482269286579793297784142670865836015487136560409478369716283222433735903077049704290628773124979724900798876645540750452815786530688927908299409320172132740378491995237235696044312961731643030007124044095946922631578164552718586307286922742701908014749049592683345871008048990778326740989050055861165751417786948936294424226054049131917007651074952052405986217626018123115988226383469883457617487486126614838154878425487597003929147023791991648432240532107862821237576319854539166722958541389621053018547426894592042773250077006693269968119912167328334585799322276123523443401153407258231461426313016672687056515410265622909146352584139583704924691948158124490907621768761534390435530689431681544647077789314946294113865173938077438028009924235773920471008135315292472884690076728107923340435651404266034804901352437999286241941545824483895737227028927019282382381158930038487519445596415774196298129123332898256610621575508575754674915419482903164858965557039913249252797579297879078190503259458914001290872765052789330050187972062296924918764611478308576360127139869988545992334475841830996415384056493472357052948779059136087290215740000154400613861228884879850431551805000647670191393844697077991290358613742130327127067621589304083993883891686008451089137813123677519287951236654587050266355278729877890982535965855750013475279724923205395733540703574263827655220698924553304201436601953502837408668764868947415600879404695035516759437596141373563845376319569374936573248440910056504136189393553038391638566152137872078750478666615438933765284235940903953977024109671185369003007368964874419049112404984030631382086261251599250917766291048096732548462094009164082742780837090557230827571472056033593886420609300761138443648434746453065749783710782946231383633028073032288951746686268727680783287888056407371568196034622664982560448907015161975475750093067516700385337302072579215523085479632238449797041552994306371386689020078390322614095081328319597219060873846441661875550894545612651587716899012410605970303471062313037462789842667861469669509048861804677489783018643137540289778187882822075795184920823080677505974009893018084061075142931339405719040947367206024093039276359787750763104057886581745060207330948574267521184286316556710595070780867484256958427654301685221722757234127831665192144862069857042678672484660701278196031910220729373954184591720382768976523250930085093526736516674325920116804144325806002440755830032726136962087967168592781671573061227404047526199312432474655803255886087199694050982754954999377874070697549695463567416519083797151862030608499583585369393308547511515031311970897058314051690009460542123337201485999289130292087228014266556819368210479077635233613951601146819525961251595359325303068287188816589988329123310573817005524599012295548693308061379342381311502459973306261893335359951446318263624943713369937749697373602651519109895829487850432090348244138022579420717337189643332114425381074542436947037532425194273046135199376849528644381878888141617754897259284907291219247470273442330155023936994268533412831033538895414492973798973555308977562363615191462685422492749199542891843894628265131157145154138518869311912886883911426866921794542370533448081863207898247265256062391491743686261673115622934235244580413517445273841353829737977717202946231939719358995372538419088938179168141887318641754057225167585243547304440451378931647284648764710369010712048066200561645182672164917431805155124856785686122684473474642317931105609989058673264917936764777956786809261378263936007619281713989387472642554677294779430234020036495086096309591865549324274128383308310852397220446548437764582774307349774209113654364068802520906628631997046733081087643150919728046528070239837275794648829109307923609404210669313808115395858035502789206572716769551340770655430034009292314113684418605816419532116849135712502246904303364403260942566321766245088592372543729677317397512182534413487900934730370195737645611307794225570728747941872127004267353559682714945192929142797447736770880490003109468464183934964790756065742922319879979035413950686078166437000914161586135754320887037481134924830997701920314315742916523317239359339534942590094972800047662128386613557966174447416427326618293305282463620247803733427880253354498198077795098734824866776943260020218553178051143398132533354501139907286235323904492420659492034820375627968698202297567033199721454679063742782477278344159600009021130548432810981263380303434327371936944029830008183291376005776654390762647945312526524555177637021078291333910844613895001346262760745637348779325759405100344209550128247678130470631448402437303456568425493930587969203503719368591257444532296588765866057324542888779214605219401190839000156284075869295948048415322039714286576613932947657061047580544323845374813513149541907095651660977264956438906840370242502445436117291846858798380037763482185311044012466249898643292164886068933177543463892074384032805265928196888737449931396199741242793172926916370700869308340391802565167974546804184162423721468736128814431645834695810888880546986412927996472837224601139473057223820279446260458312336413127266583287085036423342344587896303335882187122684099881038862070754310192674143265204962234795098201249395960300554480471282515571298634196346944384645200520238833138460113401240374015021957597606172525218026993524732489176137948736799255538830152857426241030771476184475972399497411771173248139083613942236285243909896349393065375814455525217505723548228669644190322262741114718208921431258587473596878003830748739399361951795184282981251788067138206131223029386218758362209262830377627652102961899453192115090371341957341544776803971587070915914724672117767946771908045038932450017749243683714813697660095730248028181644713628606301055533457380125541492783974341201086451221780669825816676768011230878255112563936558045254357053184669585114243943187924459261067326912665873919461696479779786001045427053203884483404521338055682305698581514481696575063381976832925563423353603969712631595790552192812107433547534458998252835508109743065384918676255862265071776914352705975143903260311870114357622888026876588705736539699039128498353381085551508904856099837592215406534030246804687650146504505223545917215597193100195943167832682137425388469501061687367083046816329272558753723820808617623996472050081118652204915200711134942954521572212325155074967415971657883644473487671219413809972871869537570966774652059375521763379212261245182801809486061547704903828029946730484252947574874524329881995576912300475274629097364426226009839375257677214092845745628338720310963481146351159128529968813252951889595781880251682273822076613396257955931744813132653863805791794391741731493506843576291108420082806722551016379637191672490447233114440342645679571344954850199571304564428264265265928627626425870667927773081027312476917152821857778345970758331557892198665248514337871576475272368576264343868860521022568368351249679568481381695008155363088606464149355358881599447392208634378904130885916104829875148615492108319488123122668001889008239847286097417096040182286762538608128092320277764575576757167930090368425760446845017450068239394878040308311161288862558321363373610128763188462565576402647526288868851535597970435338783629612242469739065494971527937310094273634658611689762758743623416573493670980570187618227814098428667371931302704626321516354421599769652774438861149804878393676136681717975583216027051272226446889163931493806889432930524484669965967131582358975671736013901469508054816839975474588705280373729871519754786806181900639417782904238283039125423087614903240819705394379059243887358617629360033097336686207906900262641807437821424320112590294683454791424211859080956250745587185088533911862992840811237343580196603995791118340544620810847465007287325210553517811047760710944262531073280118745647773254572233866752712922285453033624614036079583596208673856746080443383268416253607601522629948744941155018688897483909296505523851443057704299254953961061365092777566564676447344508149907123477814729372586060592536128852266434496959379732086194620360564201899502900868932338832786883623734864182352307895652621385845063779159597157994059602893201492282791601662868642701760394461881673606243801750039713835845205315660051563512270029215878885205308531548812420529068245555364416461146700267169418711410526240380577607711781420883165771005413106931756814659490565551815786618141130617223186273060215242898753603750360276574823955539370707085290703657941792700346650288373439387450000094373748033412665113699602675484823121717536156851811975722809164174123597562179216849726222872263978556621668180994846881414786894164527788563473002943385230518708203146586914743579858916567844067025880012286388630314348998067826049590401988543981143293964827829858601987897477415687277127621805518574220461740584803749906721448802157326158842250095355013453478722330470219116582140371862227252641418007601482203928692584620999411821553330706683859174115211982661584914058100416967509910801543649098709145929534151046802365449128470376203998827360339687549692488082403389987180476486870668809966760221552403186209736585688167019978396308489760925866331665666764719965193276289802571221746575506780636302401562434272133883514827581240466748628259014927366420592223320650337023763290052395584848792744751134831182836686508912485375671021100185273844927785395180837186737139126877215276484974159957502582364424767206481995060526160497453979710992503780954244774197786875319384377149228631886262816048921423040932035588109221622248192814893113384138742492588516262012714535811676076517451805041950118220405321487360825614726886329275764230524633130181185043951697682589096748805248387932125438561915617662813853108163177157027999024840805410607778579989303256154690063738972442493185979152872461577013569976965469152988551644237690433628801015016984686211746390286986753980135250039419542741969540908524493192646329602116160085571585569793020190486243714575280009549945664453356996105394445043423030532247388241983022237001458975935134502584330204530207826583977191468912021238141103519090916224279094147595718535371764197070250519297232476721926825787581854458028987575608628502911957354810244559021054383627157859349360999629869646032126609627705531983012846870368383394084332533826963777056973588355582626271439966822353031139342594510075865034833310809266784818407898010396580042352518719301294342860342491607580800579698073648365833314235943222101769520176738751340685490651681253900379583406237480071823648410329692790416716144879370653435959636569200930323294791247912879957588974439888874720584789532908810325439664435886739160449121275540842283928142214225069500812682254370148498638109091670299513817193989922349617756003553581264514014322706342826801553643924196461372296074572262173418800496708432164529786955041806583207260878325518519177318114746552205912793873910407632470981846325323334743677732851535517576094777471301759313928108302300719953739897302467366160333908037854954452106160222449147206228360704935975312392392642593528036750174684812095715887102703255847566920402474562232773485461687688503481480297735202048035783423306094610379542321208616436593378948378612527562222229235847678849501768560286448528697426151916862689181193509415255117380590806097797630224953038387446309381753502937215522634469928521223984033399376718617909978188904640084930698450475502351045098734367823708747103727859368698260921571784102880487527948423770969099283548345825791649361379953592342516736564848402005190009940866805121385583243898733982974303785366929137110707854709955050438063602804901956005067518507306820146115717354057129982692510661923817562719697192128394503195798506936047416808794505883452795935160249276967864351781083000362003046330142495089863562530060313213613545438650289688328917112415154280416384873330028482854209763898892487685830609924767184925356236901933723929359956128711598329172928862220078848280180780256241128679448902894830549162349563547656211032641146281554357950333165374687424776181656869107047308446642225166727907950894044673891967043319031151617453032258300631623413596250171553138242283039432441932274872771529288579872765647076605448826946979843416178263834291341407472842850334453238511813377378140163786912991236637295921883480242107614445398775848024447266062533686287866508494707384319143192924368173243915162353091394488054696146668151867312364989488314314116607200979211041247824200771707660685368601227220458318847551569889008463667415678108363500753293810930882996952856745384425535318785398993194684215926822084217335777932519771843772324767718992002995747127951069260821719491752472436539560953069228256359744877799051015520501203463211341347888968884068430913102913091256045358933653542724833468801602705666140292326439528671515807008917371767033134201107985278718372620548253700068345655180604329297763633952871054828492635311442969844135817053968527903359838752694137217571349148019345544195905460179796341237924117974184269322668553700494213259500333584931627313117182707035091479521829980423452117321603072448003540375193004978555093462928602903408235112061126822569938639843157763139353694607210695009852296644505351533303410832745263260645655175916642027312776340270212008508624810722068156999001958026474404222269109013809588401878965356937149963551267138698854982640585851581787967066559261526626170905705113361701831512608255881730249702686626093137828940005540948454647240758347908129955986985495365630456735125407753310204344217671942059909328042340280938288290326441459313442941384274651450609325804133606581134074291568168940636649173910991205265221859196979166035627028137699340177913861648939535140843269098846680406576781370123853972443503754961693548778331429901438693710123829784787675190670769448098208757039460540064701939244536940512306074539691701404270168619111801680338934883863238367023694467901537858446557643099267038343716029133236765848243264212438895028335931674935184722440936286930779518462760598516778664797759346140432282705133699666702609436462636377060856553532901869603537027849194006797306951898365249424349079637467692126345199175426259413789138304609110008067129238956106899538126903898424811923117812987161304087954586306300361482444446148412628102293354925680469015227349967340319153728243838606450095962536746309533647138657576537094582147039224712343655229292945420699392347387447368588011038280084924520435271346352360717169106927430126755648499021661927822371014693421901734407216533959937662821628872847600215054418837215898238617048586773692239302498032029330686946391978465581290715501210718573432236496470278746391304079013715319846809841943455322224766061363673253464644758305286555125749987514004634345335593040963446512791835824934306764831012039071998667432002532559076479050587822004631713027221234399739720227649359059652415014581350759367011537837092582184416549743297924751820117283724164577366564058909045600445726566338014935567959968501406856422894980114456208826973036083578264195600098789244871740424628366789766467413389535986873784096331601562688663133176560520693533196659829621530076438373678461357893866225742338471266637250477376412759159154163495451382297253081718336200277629955963253183047513169223224733021342912507640743076156508904702666316981568995563714711544639744331282965230932485541716831212665318482985019500659210674942401958829645481919911309775731618237070296356480969021998376384131305352368313644562563434470211033136812691210766634588383901633757895476192838825124796301476212910738771757734204791842307273961029234095178914408413408145677252082925816777511219691551754650963305156252726399981282539612937968534816131561489392627019539185518695837006787548226815702553709532953049979396261469370892778720652443558768120145770885285012867073660004573861464759717787445160906139483978759332002683257183811679351918251521057468872883615784697520392904230136085855732867617671893554656133207912013181244314444313438091857854759950254728450520520191004541089296053026019510758308532587536321753983497657749069713774858061363542562540814175209154943483721618310065031193149263444151385868567320484521544692484877786891221439296259229815800272364245753616285181506087006295085721183331573241049591822540815550607804667612990097953992032027968044287282791806014214533145890090271744265982862548431487776011082580918401961602732383284798420799214903720223051417217975025173334413269391594292193287323892346770404335796166695721520257749535129580824336973409802048158428044232565685987897936755600082609487778714902600366192328558503108802145095898015750561131661598006996846310811303499108832405990126931835110352231771124308629967398842542794061369930999365742109824606495966454365288162932415925913674401142791094691611691659045040576182480383197362508344443735363564199191685603589342604538152818243254238327354727092363857230143626247140265643683398400180030012496124146465090058395223623475079619165873250470087551026044179670205609536225627432836782209669283698650000406286735177472003371158339333035999145440996564035680722301901206218750950666797135984328566156001764385918568716778216071720358040343574947484810955174737694130677072236074265140069597302911655586791053130689994325722218287329776320482163712297127944792017697241846686801385680592832906423896823410903457265231422169768344674252998775749043252372217158368745089368409042326051040416144404689498877693647366546598079510182516074595001733161848230761558803821992267773925846049355904205012159595588770398881078085233663695226202447127104560747787151588210091211751116425649049083500600353969809264505542261459358220909948191010027630092289879512803310574721046173244056495705501787882367731353343407239252337938383449054146705923550402682917897552796634273339093320124059796943277944728990238834369518845877481144583198498209239877962007338605173472769656032528531588472637438716392971505450074707772949156551189608395815285622873820305471997224133747617973711941772604811522322785931425094407019291377708393740607705536379703147665071032985347043273688224628895673716709101180086961568221565598297761461217552011283512578024029590735477940417882661289537625005067331596408948540139441443828028819374516285638663724580235422770340824948224375319981800742041469751485653841672951219826208971770640741007069578949636530260459581433454417972387558062359291593387650172807958331918008716211410377166869994082995700476518234916771886203065735122160418468654868964409760865473185776394928418986480719222853187211087496516114755643969928809782157790693343845815039664507537010539102297556258101468193248430803512752325503641739119724850053213029890835337294256758054874185467975460402567533334564473510109354770164618969694983939931952459675227964932305690718838843159974672816950935894065904710053583577749230521551811142831036809675587793845937227748071535564447363759956824037000213441277545533377309715416541213063197509597573585409170979937356808161865062223356855040872213388616739276046465018774761052489874002758595274706355097988796400419765772117974713026938846559802767163446060771420338913898505901266078437638356588358140266970199930112912803816617872357356280704619048701428276888040417383342150755072357593820600006691654919151937041592843652980723802677550049443476853281621264652818155241285217165087483134380211952865721406960027797262725462931248755570809626117297626609790344818065872328514734272868035822609408289803284330407527101828461591206194709129747812661587047915455192210603335142382459578604997987731368045567627109034560902876892615663956999799289513858597109051495566372287805288392120533868351648742193803460829882916068388714791799454176855870890271382051164384877792002227827699376217791308858464224648448148550512057909693696305387939064943175124744607028983386499723357682784396165404253894576505172567594345310941369557818149690703250618138599934055996653459774799943454072003013510062243144361978732853208051360996441921599871348345126924680023509422256620365070789416052646784486453141433386402951118412503128226513907646370709932070216615591075297658333879397347299363775732064469011012114865257387580017171839615142577816149586407597597063463584149091800410335845052195564068828897874347450471034436713352227648931060931903562424011866125606199082727559373639994414033582802232607905644854301361728510861331483628893704599452624922070150680859558164013750093842392683991909222348046726110713768146446366155316262348427701078023183454132941552083885961070502232702135210778780698083725677224219166884515142224368768188971051498333482485065936701692400093791247271810363180816415183673841070032549083331043100049656665569620564369685611356571439919602442727908096437807036782497837490690976931655320232864458677585420411035402548732198137919225812152057629799264618426553656101679198508850749357781591076500560998066837824260396768395280206867875641472109915561231463566783442679211527090623397789091985110013274439730431177929784577585816886539610312337485174682874255552511702134816173640128536980567541369600744045015079973275341164913402837303614455070725322355335782250098723251291736886435534339517531955284698298885447811728069123119224573180660249703596014692898989727276165096167326830088266974830163042329267521668879684321774687230089890011705755680385673053275662996352478816539712070076518260077257363722614126513667551400862474663437608191557572015392723628020285726030818541141480390805975892923606103332639388055457214983515660897677965253304444979249193450392696108022922845945387283594096117171906819051336909081026686444285174494617396874767811004512825985735472294943555730553303601236425579568880936335083001066495484909709097780234606404681866695603615392876405116047363472154696187630902241534768014786686295811823437812345403735505130349938567361104431757045689253350589108885816976735278502186926013384928860583705199863419465920465538793756781104875069178282331853215266353229144717234105619795207967618864060147291451157174158648223068823135222859422550562944226686488374252318348964270691708093855693161144084824664270692255272600412099072020112104315929089472794109986826655318537434005868588937744645563878316729445638171045120655436910385408371978256272741410536499075429545542620865601938953220897080666580899568507155593787247560835884689451333025948462506738254438972635687041933635819010640672633040475154341945067176249656341165579703581654394924714029994537490223571882800861542863463922340584124923870279098797186103421937928852015147997703433575033293096951490039126354996639194640811375739008936820943091354936636381820378566592102414121779919406070557474622286580728278843774090219106277753154843902821476069255135548580691889436476269585545469226558046874394896811459514413429007967606353210810851265087989532424195268592264784826945357505491872377853137305967951246524499062682919156218464138081401879410386771483757806731719066250968826832813774842088910941106400359347510028756174373786687230510425036557919836839771732153116097882357957773453950517018802790057550258819192410121642157082566941275494639085696869801100764768348483806921189384163651117535941639128216029829910100644177668429090566888108712245395874681551602920489882954360599901806904789719288828320204624875268493429900059601482108366266496020321640442036530739872859770318632059460546361074841042939500008002292348296769007159206319406972927973530913321193550659172909445113687527690780941529146827932356210325205679602025233061339416497223245530129504335707812786607296406850007343123800368606744240023848081913326715324251237191278508495921870035625561350698391605204603697455096200744742997875447780336000317402043250467241808768985654432462877800824317833501580120812429606384880875668219295988431924713871106350117287813336963278958396225837556499721311457038202969334385980580199993466839971680132105640785854061401870156370836675066235771183235794127769935809095444317679787246052052085014926274514464288663964340813018097474448919202827208963480489832966469209789543037542943770912566417629752909613196318155496460210940819470945690463673326282569018329411393242809695054553571222403840506441509945081298667349848099502044804098568785988788665494077303837193509307456338655312938243834152502983901819964338205130235657563865625882444659253209988992512366004750723195488941164153151466707484986754771879509352889555046765975507393409278158177196367225635934584494131932032420543993292443766854238127666721749870180145988377282044468054066721717643001237153736741600293667501189262273760372425529073341927830904010067465497922834231805662956306546077768676717986622261233824434270800344990176201785359477908087792353529979619411707512826701523256755866359726405121386275728602221552112757067409023823684304523478899739403200621742090745396071449504969575386492389492334120205980753398174115473251277467638526720969387331332239346489978267869908094376798278057644004465161952722722040947979669689996421388976412840067379534058215827865425652108529271361188957100496893900240242033669717300581164115504766867885490187693382943397719713754639492311443432665720915481663425478899516739091205057022600642409955168833777446994230797266148654589646430324673769689412934829191227421134519579040850307251611642544420818712965301114874366032665973125312075565070401753708707069927637458584305907039785849157775271578200869358394444847062594706398949842319840349392126807006631834482509951611929885089519995442706548838969166198698686742677023199001668769381536257504259067765351706588744831930732475326251131525845378019158215119567771929876727628261087028668550513054061194454832989102491627868622171744507738030076838077631621240859308813822353369360768302819406972800746386286511580320867582845800954504184102541358983018396801135485707619277293511165809033771559147048660985818349166855699130206210458013862726476846922404899874199711400954109997818392593116441812405505067573835836773798627746028371068872091626006811646867072932003252812179242008150903228166515807305913068433767837736928672835912775017824281606737185580377499168270953676811687034396948795058081884684635191993784601523554859259742130085709764800965041637780885412339075068814305614250470381417202276514830614801800939407281115428418077429550013439146171042766876986531891999668698381275958113522051404001120236331184256448283321299996148502303941735862028895066899603119508386334366900952028503189107123170292063286754794516647431529625482722328151508686865846826352636732152131490069550700543526662385059827611273380165354886695822454794875532896042607118006600445769060554604708652366344412385179903866434702712271050112540860984783821631301848481600437296715655239513168112710776476076575645142882927678340908584441823341079576075549713882426268160861555565149861289024485824011786132151982041346895625252243480087780360767458895766904372102704351871852437417550599574294249597381893222343657735559829940952641939773431996269069055935130016165062659650010613465439221304614018571327508314161586229285504105293495289763001528248136135972281963206758201729114406932229600227091372971387257975208232631338288695226451401676876439464615567602051991417216356972842761151149266007143329133653145591232037886297019739825662156685221725561692354672880682687501223523574307072329464209369254373164756815262368972395377306786656392694333194211140364426760627332670542559305399822150225147039234851891281429558873824269975216964659000024170520783500537919983815686203175678247391667494274781352396095288492510496220025106647124377932906904802445270146596157461532990844204485154790495689083229158718039908739872928583818821656466453069146618590740401449324041114910540580883713481084183102634330237862146457558390410203508782120551588618836045969852067175446482493881016308559886669965288530909127451807183901996802480283930002183532123064993658869008767755760906631111694698038813190747918518594650407310225245879399558418294242954451992407929382637427903101063927030651483298920679444537313713370995224194710068778498239645518001218175316395276619670926683918326567493429140663980392883878573684598523273376064380936135927729206168880429942126936671959707635506046970864977799020450927865871087725926656101417563224875218055309529204732349514445022377066155370174989730335983732418512255863165440632322326809971445411084878869085692001435753199065454125906984127520398869327925288700677656604271232994286149913377209723545130936464965341493595371327752660463734163502229050999351473349098200513252198414483888347942602000429779081497044933305119163032390723053212505070101906763442192281335762079928828040553580671488379496623544320741156330950337751042282249054745658728704245441269965817103867877067182951835170669846202831672423866829790849411324390823347305836908895033288964630373848752564117064866165739875943908996375967408605128713190002426617364577390483921742876981059398780016143858118216165870496761491368026939310011722337281056159076090272610902733461783439355648819349726760560148849785009178710289395803437253021400251984012050452593957876808644800569700245980298374021474033650817692881367727093582257384908476265746276487956719642724576678622823547777229614725861043532786298421865706443761167552188357152858323088257837525913748743560121781507156498653659938915714190752416702750456562081831698450173693510470312711765387204476215088699726828817881238181665780821322535812175829646007411101657884941587910213934221935098669120179398816647396716423100188446207705109893036387815514729305212875298146853686620340250537252828700540964807171586801596307167695485357541237910123303233860244169236932331463988241768042498938092313751942920700018629689093113805724855735579825508681014188261283215575185046653459835578940030216950073967235181884703682925270742006284952953615967456378333885112594520267511804637455752336971918355276290340034983485016177379288695367202401138932935123396397093514895212395963589047760906772745374484923699471428513713373514970949234720562283132163473001481111502349452620676782148837052993979481735178123774888790535639437927257485185876419246699754390778856046226580682127831511584269240154971968783038469090964340719571919949133177198405720778854164670402438416168866261016602133789215589477480972982977751678790354913103079617803752859358270648357756244553392214979363138768541726294381522698583767833826550115312877338522940862712331461199739825020097980256106263152289019197486118892452405559897866518504745503213998925572807533837641503740552726321580994566229020131164230842095020885139249780263710347798960408187834923053336651669235828002598780016387595104950637169134150102159392984692727875889593013725505313803898473935744850317154050752207560821960744076643839464654811318348999445984266156080856058425276543337892488353666659820073644484484318651773365517362598447829749693275906138322825843861468221331097784469078403749790975817382985380131822634938006972333466197619254513931192631734485987346554536624071265842025173170514839339773024780638125932431739993008953207986634285515424841053575790561254265329062921957434459095054592953926401773090872996400178482802493919226862956378208158055953251917424158999186979145575532004987040564171915537380981378852455324076846390861425044926231885286775380347824952786754683976466962820107577606604472838928443877318120596254705235358471987063624200329361954630413953745201559914733493678843418414215441019733508537271792730700110775658780298013703264769629925572946713524285142419904442690889107503549260199892791158132661830289748585638727977583592987551040694141361403606374827177208216842204665869530158878987744290179309722047223647630014490002377390310428297354200917177195197945839307832520001622598585761151654219088967275428648968658571059827623269967681155803265993565421635426246700746373451034955116763516610114626022501426324636450253927335665893474719976052860217067389535637760723978941453721313535732459835388227982889138897804726780452763247574879774728292029576163847973962490335297579128072903774686509067805386456203042009336922736164101914364887582202742649429483997243530985093511640704836795313248492141565973131558464556914403987865065610867401289386563185227464916434996737758807479757127553200293389866518599799927845075398314373071546872836230391522859713750418075981726497282794001389327337562217913801331097270379729465890075455571723653640238015832667993398751483333446474664023756451711455866596814167655386878427729503778267857464557280600360286655331383897040033366777199177235559764496460775108354954019575329198799991485316869624560077743723863749737396464673976080710341528438871231266564786333590206647436390149755172959045801462104403951796428986177264707230009560258974109642564454794667630590770787007954941943658408954106683338739405905790481650220357999407968899902814294396756873960254717968166817685992064940316751453497428878217140979928613841928074614401840424536091381669375599356184092051008447863201950731857245902011126100123222703005714570985150901502898109285741328594973497419629040559776471999997224358957138918820830879430257071240414792928409049929586059626864344940628263503515281442831116261928546109346664240952966806382123627710195505579892948402804296264134749421414694008403069330453228175637611959628907784240335813804469440347147756535076180420287435590132263521529015484090748804043541427663948487152691036964420987095441682367528665244719535052477927702265399168026574642484385845741833570227277081159717325180573441003302740023921021365296193439152643257391431023775306046787252193448378007121817133889203822000796314932184339766712371196911984823121460898220915258297764321417974665240805963458214185701827976582914374609184540840515879931371465111036797568996147423851539642952219483341271881205603293972730786076469609569956889102135740800994562461344063977451855115257735671593422533015030078745853714504630896834896019760321847441016482046020091525033608141397666468972037490266899880505009669639146908781069217047209199790507511524009203926984087450094407239683062216726456444778037714672390257158411907579803697972551162946786085129218469706366573467378832466679378034002688236869237660080796687967129402806992699185676503444173367137624194196678115930237409079221638390497440317034343065136415414005084803932458263413076480426713226510908694067015786502795805464125935808015673222899422894991360306243062030739941075281522939918713382474534363484017901427251356153867881814844349460454089246859189325507231821295648536841537549443233860387330712432374867318993438125825979518616126462814974794322682163678663526240716018194759363439077408440128039154961915927625079040284356130057546139787881241794742318021056807150799802448484208959038075597043265236707852374353593208275605699368457281121949050711834074699008910563764858530271891498073601673076144853013493882443722974677574466302991799335701654750682579949828614153632950382132677085042611753543370991786308285236624776790494784486489380754912598195317707305752141254139647146331049168394662048219407347022516293449397078060987388551919242387928714080010458213000034746861565670282925306855415754882174114654873882411163235153566816048667311356750019882111182752771112770850133529303481054892035090630183514337124422641667559954986870999190836851848593236024490139508157094585544845448334251239762517183214665819138694859010302412017998697941541759310096116212477189588343153253225328951034665498174297330008414428082954722719982425484541840978069541780693929091586438301619642288985552732559674405739779625682923773711448816057376571998725554476654672048146021678751327583021733188044948048619233895834842198960527800776518406479325132068161315200181171820834501947719566393019017798307543616900181211135558130598825725186483381751272185795250886867126024448574025792030979428286649655667702031893751238252352819398294552838957374292328264315332643311238148665458820479584364172555979220540493036973974926281797131720365312797300520888518619946600019684134921565700005901827227548408898074477337655525978179405756757740151286854386609782166780033229248917367890369164701532880188330665970746858579037484526763212303057590745814724561016739843865709074473448824102735163991391599134374256017983900876126534613652939533278520191671643812238858337934363496484919061298813307605782375547613612486600282903990253229269124750906344466241224036242430600772050230070069235553031970858523716636079275481762141802236192081213799454803150141284274007380226950351655731881847960813664838091668683684723435241677922203608007865430123064565438487239392108630009550867541357686495879795801496794334527734791333886586683669088070476767660592734507730215144530595253725106318590228290484318968211716703322823079607952519107240997045902648104284390734079265258139542812758150680756338813037372439221215566711230095088042818993364496407566586692045343489590754916334176358747436340211851601372753763590341704638669461890934212283211103816043561060144421534780900828433490442523935209660467753044356772416700765289254523134805744394511326086738117596911834053329267956002880997780873243146862486021855212300601143828548358567443267226350549075366767509459440331198593499202187054070715312498466211223688642925909413893117689696157148394608177917070948205470438173982398845867616778750318788448616436948023311064136962583366149103244090584595919933751537543091985848724636540965600926519450257896083940715399393086583974611785560093962054470871767948330901611922096884659741348273530462982220275161859955104861414928632986257674274915538146648750308520694392980794035420026122508579117257191384971572090520572021206181882521820264280009319721863546756758201746129011963406470855414274657734266624420070646538123225843110806082260864944483055133725589267378270928038641346834253378624763170043445878232678812809025766062806718050461691081637182890642088038153584784084036568889087692818066348229841881349285382094316607143038840970755610190345137574159786984530798652159824965990576531058242190765859725654189953085589298265857786564295856839453056810390690362844478554848791642918775128164504186977086477704316383799985673685259685157069681427138060015064434768102566928100969899756479026680501391631846517499904800860832363274487392499153680476656468421512652239904428944938490417808234038330857155831881740508208684434655713728330777504090088779557524765541733806878981965356858963477306315994282129919777393924407558586797870839224767315145012011687526581339136917061833894975398749853849128239530596867194652833504385540510274432976805540253642127576957680775640750309810089107293527562513026560824356037828814427176057597408925188438007620183941581036257842505435810228796110173679791304181019930887222179592825520897629320465864564968765757094552851956512134856729175673254408332517807481576015011701613661539631879065075139973340876945434855403803078970194981814280189941122982471232054521792727655790483891951128445244194240580434905641583212692862697539899542612705459466007207580688856888166568269432724412452224994840697060015521571006911245016737353389662012866975420159700312638352852837331702355902799872880459110606941237780110325953205767109182668247534574005740205475728490172336861196482071980489468837824000818525436300057637636470693071963284159847663957584947548136512389118033188191100740251281444281112952796394120413310439158287112783609838963339455640304596220269704111303069397532179183893650116347783186264528722988980146872309614251571837933655029708071804211831505316398164599311824380578069187642228659588138157690526866145659320605769149394298123311701802427116378264898900315999134035707764306227265266197242941895432729654091200000705632026372507996041054536642624546904151147836964213794348469736317196334130188436647273762228868353385123537158099156076535351735741430282358690153444776258070525611342053289782574618661505814492457647776099734542499788301076521141926480580986500071141943473527246179319541191500902479069182466318817621903525468924966038478388140096510025871404913898717121365490058705817729001962726452919104392682327149129333499917742139886636621683254244992753501675519694317102469664926433176534147391762955192014446032986616869270268485614514091420560719548294672093627229173151599273896348448786927970545641417081440242413613640818252950107679140270297508373477629554002674847453677010165961704290319719616738442523387110618232623380148137196100496465201777075822185068249986787060582902303879901410525282516240776720708595534401204937822766208799318997590038770679476388968367825569006775269353406169794548965575562414589381360371035759859919936742247568768317444670009696492595586370294679449699103896979484904235118555870963318837531385811092033424752550117931609006469478103731265560085003894051506060466362093311669535906177011731473983978510328568931469854702227965564077653807330181091814006672351411156941958792275017627086349129292001357348301116459806822021502149478346939109818886457587157310899823570831954552247106058683705733221097806144521185696182885625713067074697012085518504034102504409210284557447302204740544981697204826660116938837949583587116540871057217795245755059167007258081676273120121878442962031309267390099477219041468740388051716514882680464206132491497031709838185893397407407657686951612807458916891123327335821725476789487016776783222875590473133054690095221798787704801226630665060552133230544391293308170977064600036449146681724611042281232728025944338247542682520653524339217742105865977975737733735618522304650025878846194825267298185938437940969889948082885984425955349095525717896993322914387239346774735396890853024808036837675667852666441217643807582935146405897690466271181465267320397519460011069623177307520433105530555078487120740130281599975709654363503196494336260131078161525222912812752795939712085402818976352221828905358304102341060626732783620211894714831414241430439136564111014757342384676297852580861823649414290991570892478862035001068536872459109617451677443946259698390078751145086443511426333730102785916557527053135236567784205762655045959879500078503842733557185564331452391983898629756307408482337326473978872586651590334566569239907191319755173391826874970425169679203227740619436148628946413145175418136378175398401568951209692107757614238168901630680400657378263187488463098111904036329310134230553481928083772884265630584215056096378644779421032242003872128394601392694527220364649546981485448464521478472476592686202723721144812338478928837633193878396988856341602126719622720942537929202676948552077648036445180550063481529973092720314867230940909369873515214799696097895107089288776606703496209398412021381295247963645252116197756527701401526256763380197753325846063747704182442429938164287866895512228761050011500531114535485249314887353244787323792579811936793990880433274012025186634027310312065002637319503613704981961292137350683582768970472566448768861351096718490692163453480231697839674863934986002268994038092819425946873460865489032898483303199929866102924030903636374249288520168766606550974200807759433099342242756770297709359452480863669379670272323465972764065309926233800383766819990240406705773324693528288437052399060096779880729754903485559205390534608084682106129141866050700830686784057026779456938570627824760339049451291372345772083573852920096902166650763034759779286994889137736603581455772739167912753673822560154057921144393181140796676440225530759526362889924697547244765666597219550104231315789225482792248793706977436332761028314550354428883948213950783654244502547102946600781568431637376754822056227003043254156372310836194073751103832606279917332566355698006441542932987859566459856618916745367149323787131130367514779823503869982842887477423167624006304829561753220358580161213847935443633110028306705011026389005663074471636014496003538577486077854871667870722852587625821823951235669082793463490854726940289083749536268761275191109964189959733948742512196143629076561749999599727135190422853030018137259774204019041608297295093869014311939304274458208218961400695821226595432584473062915797237362585232956353724016427174386968686795065793409443985989761209661340009685322871036695395285092041590834831163333659798371759748653618065592483288125122962684025609058241093677163836806465121974909009099439046907264959359573787210720758647013305846282937684112547856842921118028199037660484711837154206023207034040078848165068332059793669228796580948111460539790086624534153063170612655914297295781516681941573460045716882120481045944989818663376284090933999743677809965369003082844534074142598263823890336823672288540714601160534155124664180038395734857020560049286966004397865744533640896790091191513414538579800327870410469603762222097150484056175458018816855388868685177407410036562483865614365764362578400861956248078800380291839013259895960114469518561401324642287164207679921034763779552980748858176532068709773806599484326599539571798441812356798847220794295622240535748996247079038803102239069662373722539459139765985467465126818602029876506287760067380920893425346678129684793873892423908442883298445027924129114391442003605947278067534592709388923406304218330678540266370715668553496933887265488592891266756070050038721084575310706095219441226776029883651517204615113490211021941388087578607060220989627483923141904853945666220990956861420514504075005607298611569221513119985360302557238392245113629452321775979240597784514369702419357966330667078904927453402380046619714054732269655343604319214663890378650101419416583470816199561301284255490143646986720640792798576331392510980165171737822335325798379253320086815301666160930381236056156824232102739111302117424209617347650377629744072180542054551414766725172257455444989063098766681607250550706548649135925839542754618852669470227690468816161266752027829361852329123072010030562432446456695480190181638722331083366674266211113065646396911508641932837484547122239204425895502018909055339264606149731220769809489248547244224641230156362096288918948577314328193150110480442972714362887899909636849706602625014602183729740188930347643490299157051628145181927300024483296519881704753086356841103281287467756995399516919078800414242417658519148965380028117755159908451743728045817380807021873939730513435607880039690210595592423906572032139464426754522427299948635137731352015891956858837777915083520885732967399541434353892339895922557733121787053228992719164185662722654399836916730185183206836863397400098829119293398815047541961895398324365269944458204009407675194402550794900165700083747360365801782190161093197899332262725087387859272733626509978937923904706000115676268010758726272957222392480290147497741946436584291594756735439255400790567146985004013470315441243324623339204054211438303063998033605751049101145053124559762466280004140711248849397196069561749209244756836228717454894603747498718241869938141325461588883457320723231581562112488016217526398210614904855545834488237255028969470279863203857319626975132549521537086863848548101743456169110825886177034735695967005325500623704078083471860794490528502609132964951886355816225139445135717172311927444270804358705082348881220258446218586567012983425984985038102102254469702773113037885017933625308196478261496428844205390154846291905632282105270149122642148192509502021542665583762861377344746197236978477756354149018605334907719982528209232494704770703487297919452099215867046450339899584628864600870939136919228156082432177349351838720218197713728875985490355210640704782607790756176082384287600671714564089283226601213279131709130199231897386551048154094694508902136695872404120954332795280560220873149301815512370905351998454442805966717875114952453328607180817261944533722644471096721716769494588615034215441588038285415708626293052968985806079041374778350478249104906792282734753123817812950148850585514934029363944704263109275167361019060841010960901851828881234602364345121076179507947282295031609302770256597856160063936956199384671126638533238148175588584093176755204875666410318001153459269979392385773578584070775900253379309492476751617296969431046373810030117046356733350423221653973801592685497663618230346781285790657963891544534409215774768571127813671698951774064197254392583514812259786525042947830235082281089325180942368898839690135149599410696252138508472170928388183586126162594706710519248342543768135990568132941962402010412332158606582274790109992931212957322288809516052633740125627011780846128312960114245530568385690643434800347885702125251390729615959099935653741255266797129006327959055542533832703201720530869887949438849019117303345430785133536517303875479610776008715100913078803683532166681999034233190588052365267249284487550220552449528390517514572252622504485307536528163134038160408385063216542919283941867850563337150765899574181916151294157113958627695549557851092511548385997882393194643608179755346368191576762426945849008133411842989548995283343272742193725892669218022360398482373290821649307747539067561841040053089983023595735081595903313157489683576021526057629062173734905332668176184620957384210043603094229113242763155052640654868064413351963331179906489763047539648720229443736119648103899576508540627135444742377014472270269034161720881284660056794350728874404315133488480108658481533711785670261573710285122445327567403880311073559092086226575328445327788163804647531822575298454186137560510171246831938810300900978705070691865962714216996514748534615145188837619136352354169867637959445378288679279920006687987775795834853841036802842630149899625800709536980106005540703184563272945673869921415867357328392110436421814013610891194621229028674583318053363290486444870306222157952388104365217920372746070520067121843577609991291399593254190504764034182934027592343846937530188215030213650303019472696723080225193065803923923605370870597364597032487831111669175432387940867887857788957117806259885306437585746240382196284666524560115879176445893414312627705519564207640409538360506651988676038308705858222736448434483604743583839104182483629156325591300932382087998871849373575910104549992480608571910224083608816572798602094621954947294722408842842038585862230036991979650266296584927528241964602083477736275425619928936887431401736685241626973579797425623768690573509026069879356404480331071323810864802848369298865660020351260400284902090020435676371446092382949628388891008704210552807239261898572916701620906416024270716419327907940404451868926239342148002290258054901926635663894457823266326091500066963232590084811635045325468967381024349816513157375592208832854737862843426224704174053705437229370796615104506850306698488984457461406852701607813413749034779395224055975786934301428998337926148730166765990559848365239761169241957658555890974546597298027622641453044956640606966465501552951125515822477837634060834195969910470346643270315878118032409986430054678831643410489049545183469491273833326117637186655804639057981142292048313661181866112977102106108818500136946836095649806764498438146830906670091911875571233380600863419739826786778030984077077875982715941958602822730175629178916980724742995888262192187592339564143744239188859874418567356530753748168242086482936086319905784337878593580736637350214782825413502344355620116379293480282603641705976900589501545402382238278750697290952841440189478384479646934211312535396220016402155721092165350963483996917492071564259110547632372644083681897811167239401091544445420900208231143652665964422254424256149106318430288959149629661305042619608152668498729264539817233349340723909678001760495828368853979969524999371969882974448524225431365753831192127646264763342771421135523059565037578756992608759563573142015408525501111855155641782506388993556159705424802613320855819266169357047725635397388432328366124910373582677501931372908369109510486370319220378651965530018352088289017552896241570396869358388492125311521387131761921869318979498947363121587677227762155385898858722134437090129660638829214003953042809153551953441454340957222407762964568192264078482104175957408588539442346562830919654286043677767059305387516418527122501812278679352482547991619846504426909261535271991149147761514370171167186266335899481523888726497942571709882172013521696480556866162155767312095070072606869732918151039769392139902202148761046268865593791540434527596886485786060464212456895933631037723380885813281958540248908442771461717996891583655295134393559717150491431757866138496931139934926768725163715978408778701529700955747050059737110584497317018217612541562388491895407569492164562490511707967859110989179120516829399759483642518630263759558812087006192179406354941923340594141081577530586688343972319263836170305263697889221769817361404278493282146167857019210751832962272125730632888407197595808082925622833540370189161612079063554054332219600407554966135758631505195859643353771855900271412214399244566099529750683549877631770313975046116800112391805968806736178422896425011714750043947335319796155193598251255195311747238957883807226345255238213689280624687342714767460735008350331725151653610979163636987221165657920184389607412570784037395883097806804798113564495364134342506602013913380609538889715224725790688586809566808617088162101844597814359309858064136044301602322258307997708700400096952160778483198895766915220906439693346126289065470544234531449366648042609817210111543390948445632108730825766720672062528446633773695208966019588761773201200525968904138700134495517036561769823953581543170717433082038096340833887982483072273978755779531840329164966916799753502473087401259385173363999609199085597549556396741154867711638346568279796962479355588586423080144087754949668542905594074868822478355185957725737599696226672071878499484323683412750190785613517099024872043735417935497488437918149685565374059389671486229045089183655835966431432797862298931815228225003491091152456476123038331182872057391683199664075587195152873556374598541566975630931163659135665791509203086412424608927258338294145701343038646827669584476198988784824205699948091716311191069752527665408179112508478864037066531248608963946563060885907635773848696778429776211091057780959678278934518597565285566867177596236544180638122397553827415316863647518818983917786456264797215273742325645470489227687425743298326490079270209754243300113698545546646483627582053183908525122073259540267925513778972857920303096683460765743508062185557556129438050250711298181068760770740071535848965324838445133871701366064383544175964157536168338745451523625976568248123405886772094623463227484961276046518571216595742669722934807280737001094364106166242653225630205865472201738844824160473969995491533188531363204199769035650983076559416977625677237730930543018321345361253932310735745706697118322091297530418306413459086330769422329683549316255626843970810766495827927133081705528252528067670230869043466865937438951662015866286872667362064204833035672405558400216245833471070272660598360406140651942774862367547046198354937068952334144722555410774301330857536532006007434490584903651703392218626363235627189462878230574276404156781216766436974270288298316271641631879461523706305904906722804610627444254733512050597913819416320452019860151442714234527699944138706194706132050577796374401939325289090964248336744559691904293168524723603076797764167982183464946068649479119000191237792139453102901108401225778981547826681768714034015942123181687986287154651345530586840532952640081860483624827799697509129814058478436159220216753807112951297099272670212058184967100133230867842844689520889245705952318544445143243185686473625641340636507630065280133700621226277096797141921818351948618942849253199841295157572368837198608006668711807087418102165922551563948247193174629164538542676057408520300888457054144016189500898254207879995234405875893926217791671583850362289259241256934473031848185297248512293242503058521305840229220148338831768078625323965274748876751706320243207140858872132997356238161891305040268129106480985175221734645109621113767841668620500221179527848537910938230943294266630103627635028419871756229758132634898668291992409930844819507896398990901498557994860444085731327962750609622864978501380240222268805439422820456962637927632154324307217098751478285103134381938427082498895838077980516916049213896292934845020934289432724874289674295325409928758784456089848476848498734250541103364345290049200444131254076046213399739996874180910555026212793566656213218152853115954352627491213712190057605798159564539172556509724724056469132480470164767746442230092331165610196582274037724561516066629865760900584749125673895944677015254905665330719235313400243044493373659236795836434778171341775652650305945271977873231403411194852937383318316139537726896786343240048543647328436546148540974978010491449355039153404305785204920040140922257020629573412961318584844976999640080700439366565416369229255692834933153958518325477687860964766532251579571692818470556737365663995637366467864980593057704612028063586361719297147120041691845807961603547340478419049548502665196822825770342923927404468022608154245726323900311947009318506735213113894214619867943334143973907749253329061240115676943713825010925161751737065628458015382314948081049667109952916288774917255562680130669286586435659571070202032686349297056529195051496827893919123180880876177824283244179984083504684078945538389008589717461952294699092937895105094160716452080961186589304623486003691853465299983064106452265081521196548433635649371055768811157976523470330743119429082916449528278660298594375724065211973046676069736690532533185669419425626831335107085172256362430674297527619152368873399074003723127797114705332566362301938924006620665783292640663175917966725710051946772607772518315772953160847372690765029693301516968039622178177234502394644122559424949088887906819050156786280791136968218291947291473274237401000816145324327787386484378150654839416583577185967054299456251169749675706134332087298041409625245196465358257295018498778754183872137279598710215631991779636919349054930513835288729546392520759481476145065601808615174837897331357836891798805470779410518643077092781954052385310463332221320328427326627491109156518339480229767763280056451715181759040312976231261735367035967563820135344911049989243197320166918433948141106583511387126544702259781029762696020392853193392922650139824425143927926401228181506007205763358114589114393015593643026067564031210245969896514580388637948230662847521284928148743088077567490311012008996425215415663031136070835196142734248419902728508820620499620562864399652937746987277613935845373860493441724965076281786698672127543724622050750472528083028137163901510590100910060456252839035987135337291642569515813798415110002570682401625640693540571309806488225684602911445672571211859942584739424870451637737738301966192950922679794128425631081311744156651461111521745511901591511600155153513432658846026082636007822068008941715237874925238918813096204122650620586645595706824516990565826188116745614598356793108491080108603604453344792448956488912235294011584778944269905798059093895298717235475707066064078209337190879521936020742406961784167321227105838723505793326137040467475429516745005122985396931280443941328840262273495312035933577941272450308396947991930847027515613942822461785516892166668753046168706116794731462062988885235469425926108918819142218239708098803687437356763338176652040519703887433634527574406449840877507601945489871334930776413968983193354016821284325875206421163961047827624243713067691152237546716966381904702168265413956931012384294231658407624246918819513738036449001843668409684042447812970459753920361955857389149136541589502703272958219501966984534534548410896856400987426698919886426246894394960767212640767806514823804420289288427805740362538843005310890841243867875475429314784958441675733314547610895268132788528067367593571808498585869620556009279575571500474124184958577791411045146714524748449916935679286234797674325209695403516896224285052204078885973130054147874157437232546349779584516426613505995612348136159777954965438161180643610144256981546417253158263140172589679502702021986758735479286837761145568764524990849398364116027676714466683131575329586995368818659438494582335474403303702890781596979746092509400211011643983521427172569642324376233985620640651193536106531274534197972988828129324384849878843594563162393384641525541308924054305933572711830567062011544647022890186418055378611668210605476169544395087228125030235976318459698449802372889144863498223902438719432258760975666384090338498692498351158689492279679404395788219538399344606610680864483333606710092358373348498617797141472401712974891569150336087884108067755458665310614829118929368072217337924433339777817107610363559673739298973577158976165466182657823362095547412623667675714847357115137575346940951113837559364917734790352833840209036116488874022433865429275675472747709547401608505502405268335219867786886914432878700223366251955838588217069427321030308526959988718000828478946195603144039373231687974663470389162659628353587851784941149299638946569672355991861053199859133858757132043753387501469290347048369914907802603477856857728690556164976161405059528840823126112997631927940320014247045386794555597050875029048838870792845605764292268739287168487628314768476217123342576151726225706336287458682245806840466873199647476088432904496453668507625135858904086535682091411659002782321716262843924605211677364850001975110434509994447333029409480403936650350860876477584292353507240714793064369773520459015139881501427599205317976456154828944135197239790861356163471729526584270334851088138309321221822616321663944105284995102188276542699179039718328923545197993746117958451108207489607834939460529165865452684268804916852467044980182955281028705453630212394877592102088280165380992200300971356648964306009109754173988625650135498245824453338392787032475386128030379255971888266284578965967329299642761463312454250865377469703042802343259233256794732726883130383459091552396213566922635956937096397124505921746429181999439284978484362248050633291803420100277165127628932894898402039630256158831193251769725228407010739924017643555790004428077469352202281449457730361721866699047696661736563773182338693229105324406821377720457708071307499353278777548281946021343850585382831916791227112015231383504203735614286801739841804861601608270604188986197006227056108470054643712871006109363930959647879623878296040631945761017124867604488232666634657741122307333174890603915672110120780736957354334099717801159779173587956348675829245936703494294363283525868515401831930224496028793477225709611759572583927775417998778013326113972639817280868719621156938088942445203224653568503703908136854255756755380799792623630386810226958575104723314435567737292402323162616204905323526424656784454910121653171506586022367551750693212397958195246391733625952824950102742449039525033673822869869953530338784832360826245311176492445157216605892572778597701501749944933080753669188705753812447747746610221407505772672523730928185177323009447106567272844280866535691574427860227504586580579237786311565374637594619202159454396540667832555045615950014089210201707499066709164956234817107902642952672404881302858013636237165063622086643800323512052607732255976355029454028827875242897681775730451299857940402059915763813805069543289320046375248658080956900153003866277297065500890252776746250193181170154772123066663419158063478696763805925377021745388723178255539115161562518915490154321771200115875742082160315300815372240276196615076813775411361938032850873553432100940086944679814403756092798831835803302759674602428262247020053863321544435981222403276378364491364193858565548930216823791127678438216098977768161158326734683296175774269480921899123918290129346450586258639970427750931832520424808355761134935427487154459877805408870315907490108526437087824200874743523684560084307879694158768808423467982103148025516533821942435686583900195475171887146350979662288697973484434997335117727242792245369131952611069165875639442471378001699806071548064857992863963139288870897144664255345045168741720477907924104715660268349374815360440458858829738939346342831247715437061937832293433293165506409676202734418785894234758977525683720568647279160257451750278365902642102631922161101928764724283366657242430293651820017611605108224777186673952388335760747362482602797815038942267272205642281486405265528090128024033018427993249283497157507059443093357051922501752541800283133701346949409838888337103897038646206082938522741919899752899465838651430337081778207252326214312637303961787230805802305756815270981167537106664459521885694679925244219430939657166852666709666651928341596968802222236673242731385981162154095603698573187033976078841623030387434903839992626130022475178758104577425176124741402663073210657747196666843186796765556424196635482447154871755137591205772453258221129484400344669518950307466707873145038754843645493172883516525911095461112595460488181192243659532115817491267630147920654976249678152006799238437587729543010120740054080553174810907879691521286155620671914621720748684311836374396787227156944187133351052653025684722650582289545974512896187161361719059301137060452747507447281460666404078928672793539401438183292004346325224790951577028508975545130536618509515531334691225767977846645799647859148619392297172551703013029320749176211744009803324220479472914801572550071158538687171362281151525242498626129927186847140090209502432588868846451507594442214542042819775098705128189315074333983575525030755545144309924535880059451976031570772382796412291195425287979838783011793287183529182592233040744451856125367957352394781496224981055071016687119288381134151994875808294760030112695246124309537289030485492625477435499000027508975823074366229907127413045670388682791510022905657918760454323113056953175510745850129917898864974618614490295891094728026411892245946191275703561862358258502920715310240325518138062059779105322908176720606922397592514183718145002834623601099657187516270896565283005467122815483748830255433426469269285874366595824926623781474605076813842317005619292361156676198361491298315627544632899170934803605389188205353863882163812583034616229361405561748275844251824401136680245806490937162575504808227230591833531207017424061178287638781407424801636140337439554002785431751908085650147119905977746721417196544040599034399760241948625955467550115645017880513384486305821780503466547031564441269986428164825209063942588712663998512820781623470837601708474549751070382312918289087779172264946919319834370616490020146270032085227943776353438667221144199410292512391943029072816062635973933581704633899408909118351476989056706461330823971138147006712623648113150885483286280010229947694101033222793102684928978361613365624882564782968819420265628111846486145457445293279384109202868731018182479046983758275184884164581108530360302553729129468139541279233510771572875440329347617760943067622977608231740371972531521848797531646971005580885321914069922481538002942399397533480544418829148916406583961890958406412610419604816485789347512119154799594276914517294260818926587234966127032957848764707568182556297401538561003128327978192870051786308219883342875324692252224804960053600711917303724519178399479843068665206810437240447685839417154177680949029443399147786562604213876458876290259572561486852553035401967572282701565406052412156021858266134962024418966684373028361811143817573159748370596189971442009489610332012834673363583331254944772310975452337659972667215964337031042017447335429177667737591428087230610647436230443569202949105403600359965514566727434978104901237723925851097809713387351946653360866580631228037831107332644852235629330632177777706938142883779455497705139939915258740095293162926967908986962565289169708820422076694399644786754992872328740228815466394668064484103221497769030116080587838985822036912059263368038824758829148431612170375063759547129185821746016536908506646792573907994049585686914776598991638380318751891605297363279296129891932585415566781424823182577304840697726470801782875062454892178075271139475175545247818126735129411839118138336138508416040356131451058300674117461136215374519691639244630337481858674619919443996147504229034915739456544976871531496764185097539729074852601677544021470016616970275103833512103923956516185211102257117697150833055087242557063469763411939430495198864004766605998119458711663279397091342915675415913458722830533019808892907909428447825323559058356945219556169318257321044118215378586484531650001842867690060673834877206343438583457816822420332531587778656005491584506511200133574041393766641167117900679182382203281448565841130306863509380604901016539770685947591853477807609236436483335814673520752797623898429973451232678167567033645108882047840630201179688630005458389413210159771481485742050793464180101283788543839821971610839261257780705516641101223612848821101013600504912390309593618589661168567183989677362815264677213149960565506272938953812850695272836671702843803717345643065502400436509631929819442313469579975594095606270628211454606900576211477179326288711424334248007646155490383843581962036973070939436633513402124951299969328148254169643834982318279113983129144749109703743588936749919904570277464403422587765322487550509579166677932714446424137669147098411937560331026352602480255800616722212669887845718135221655103298928957367599138541435839232927124104351538220751159555870489136789126077168491901353602579476717242795756951224607524461728668631823111407778369702993429068478011341543029561477914533897156174337438753722708960733487991136465910137135016913814194720436396302442703002337365436473986979630842289567149736615193119217324476009127473688014842296362380053135100537611487659926081196440627394632822002702461083148977781529189648865021383375283275409046368354195602860644467102185620966193575026528692936097539861018729302751739582812307713910750096153989717235922596073376999826957256107641058377488705926583065749715075621122458765857490581526558899302331838895938239800681875914152636213206667419194663850934286436889061389398388782137624125573675106579815201648252743946206896726387853011834839330406958408262119069968995279490509902156258493055429008142376718679575849332139601923793591563552406281944123788464914824274926714221637998755197538908335897248245357854002373505745416843765760891630855266349574211680905599900647185026911551861032977619133773277551252133772120266513693293167156022271133147072774491322740183398974621604959944229181963429409234867648434617786085670731066662202050147087940866648619826602089964913383070902747332336819355556652608605937297267948133093276152092201034921644711925885004309021287781721665703502537236546358012567173918644778628927413431493609059747784426244016976426331888725243998221324042747604005111317809464859070328528589976062390415778787650532528230120907530476049224411592457740468875790162012032586856940538306871781202863732531851986238577584475221260133144900151812443020510526326069226844141655967663634988907670476785195691793934886821147745392180880508525776321793320182997340509875143321999144889287910288206370459051897626200569939263871771709554304264359939431073618776785603080517743856007149550490339688905751726249721802086353634700293489284409300568290807924016800882302875138436155975790476977545907268647690782428825063922923447219555658254818073063921878915989282495561556426378614946283621055055307593824482980553341323467558711619042577439188843457161127188226709763648736169090254943120625616860083321294827705633127233650606643626474136789148952641926060999633693368273697063851469364980669934092850536629444747311928963125628637494153393304158851947982070431910504448542787239243398158942032484300755470375935511213390530659632552029875681282396335408694121830530895919514888913700812182281994885411135734915939158882470169263922913848149288166061948800451172663008790904255229216475329712951449310122923265038901553508753278019290623710867036798059109865855799134840482387555205850037796868698894589008171246045414607573465084746781485322935525778973507504271146110577623489214622126558196956291212421504327252878755480324210395670824700753562619784821732088360445037903153789039752928095937171979360119602351045419133957768661326570290313610646298121365576830325269701641297302832563312670779944863661608755544471092350312980746165950147544440151201424460220505845324509235149968712677104488525068825312544405277397894838102209777982519763025190237126508391590558552767919400808629088438702515705412091915700946553971182598157707544546993978043653105851405137283824997292625197465424666764312098012953006658491372159396386178072903874735896729652953214100148050304783438228317174943622963053940965217976268109983599114072632548479494778669181116623123130595879552654266171076737965272322414614470127264331395318924997068183746476805443907271762714204751568183082126171847424916049844467005417705908054683639913374816256423138533771793744933725966325367982706999839600334182445779679530096644602793571649584564442937251493923777715044692446087050347054763652761292777022287702657792403637242073042763897272439678624689041100111678964403574946066296366234760211311739453664398595286766705427964228832921049371843048477248109875904429528760666596459469776631711991311746333604154249603757367800139798255702968417673512444001495486715586892881343534763552399815926956668419432322495341627757117497200874631859755109945786631307652989605291046224008439535279470837430126133554028401003824270835726932674908980842123946114280104027130319033645972990745316862406715199059105703994881924664128232420610749871800551343009361112045219249793104768395842559823599970591338459824227159232791306777029556148857524844130804177039945928645540655343661394414117422980837506552428975717274119721704699401987306725933708141200838807167024222353950476394895147084208525910643891111365757544019757960575728457940385289691434704359431836859782142585576095242214253360377437193566814368002845879417893792141922116844306765120705172720199325928701226913181921495782962354101484167606961701223743722776067466995738226274179052587864192252545086879359372859879246082921720423496959179887339677725447394992855077050235666747715044253615642898045857567734489774660302319808369714722113709646888925751095269202414635137244591847211473464900063108915709315261150740679828222488923664931975548988650102373992324387480730583109116910498790737596989161741031962948808235141031896392564051374574178197505645258372617325499321861013533626731131021866332485721109000423526715585202812032232921584356233634438927019162077247140482566030919420324736309221953079633758318679381421687482780626878320145021688404966633611714143734143631198747989385283188387539950901710234381978897455216063041804422619506500020701522832452786065502035127087328134624141157344718080260084527614281216360246775670500321798283235634905780362320287020036293160472963458515726404684183366139851189105261041854771540699799917404806776228750147383036696906987008335450557897753178340859566690547936743782748129760984723328644272982602133964640531225608585048135124618322381743339238200461670933132864700005232096789285951193364540173077423884864010616011571223903993438152376688336075699854473459309493729234765087677102552957648782672483504370240353824061236343275935116761976952035615889591844930423196848407352926801379702822653745383001344979411942848201893027313344216485900543926181098373102918944053765036289107129422986751647027856723488553472478229233061251292287888109327435037783542575344956063008720154689330903136069217094307596004671840952289758446286358606505127342595727322361407825416114313281871585788456876254552549745615792996622982609738745503894569519726527717736711168695596076185203151356571752368905797658507057855593686897998783362001406516631797934586921983365253033445934576321681956752583048646465698232354994549291434568204086557694763203948113307066420171990232372573318679220586095498157258502588080014321541133863475588297223549109880541263762555124532049222859456517365407953549858978154906377709094737242265938298446451219545758749843279693067002022547976826427739111289302400160946186222559867460869837105708533560833462493928075563962721974620688104194195806200281300167254302441407805321782959130384142115996372603778259171052213781396725331167939662741543709410548053074827468691111484542465110249210811593306695492981239890019794540399010723597034686251677726485155329451379928300918710413093089937283988684415096478644374022627800318374830339843715585428954983998585049750515574358850680067829401434539281921170005563589414024184140695882290081163991283085953061135636788851988147291448850730440089770025347240062145451927255121275515075681064114281737578538135169180553253342991037553761379951190029553722979438640411560771889708739306087369547702297100446513994103488468847695555176480139256122608540975751407238416944104958017029759601109787408847357135389919225192976326125468282371431746390493442017451529118989974566823827659246448519001197053409755147764467300806028638478513446956676779681970104984128853737786409171809891545607732447454722900134819468351497247722196257885930050201815568602317963020612474201936342078673391149954662433604042991385388528016015611516373417808406361782631625333792245958450945394374623458759063903516371719955378923906186364457211234172497352431812127976894852445801786399372633503959549566273157708841239769449263891256478910735974482422262091927342730431468040762733815337967240615000690948361809242658705786033276631473796066265467250961501452199801188713346539457890131158571204028445215160642450453194602585781082962630554811860400227128603414978368814245928158032858451175115877189240976539995818714122834304662648134624639812659407466075465354151061609354336781630802231814670151416414323629344136948612610984156280045105604400419910736354948911167592935387756848802282732963357902625735641600566179122123746950883314661588913053498363790934249096758717233615277907938382444417549963592943264431509984528687435034032279723462988588047696032562079298770304788001120555564862609844007876229274850054202053740333054534086306743543762132059948119213009064046102097613650847881534970202331625126392065008817900837441366712570374663510444718302017228436273702752558764040745266529061546371145259650404900330549763645289237461159672601233392745621317818940284091848679607068444547490595229457511290431217270456834728619785731856884312681635410903885254475548735874522070216397594086808368879101080441128304728347622173812526638776438595839107581920540306745616504822392398330008274431464044954134896339685914020352750462164918022712496092872106643054534080959169290852179948271790093996914875030403295688779149102028446998956980780219437887498981827330069066167207100545800294657157002548743625440572920510121004642060029601308837388985479990772697678455973958123513312030245855126484975144928941927769066165728545167078615090036069400318152889714322756476077018091976347054330543408427340051473669950735368491837531782436950364146244535330158635777260579542539354980261374413346887480211800188061282286933676438827878951075255312887816675916422541272215505955911342781551400010507931894541182445648305296974304715297228600021157715823625026080979992942451287470843239992454550064963776856431696964089496147510049245569389426281139878330901239744790726539485376962307028163868921079714061997723074709761172456188663500993055720304028599396647357778287360532598014230414320705531378986230853979351173662996293585877796939906278794009433738016475285411783917864080716045463269589693678486118389271089762612614227950873937731715629554789385447747170815486520798228669742294064385671816070086251270443413707711810043445966984037432280553698019501446523289005886062944701025362235137501796486987232628510271202836300862340159050147023215087488477194124028440129461273159281125981570674819684069162142786020096908408897712213676912775207106912041824653315822662622787036099426840367800061298819995149537322997984311529450007580771426829381952180354213461297389518342113483550087594811951750461270781949803007288930420624644505106383340047896242437295277799512399100351149571895670324069647470350517472913332871585197159397635101820092960211085055516547501580477013104307361168015422628380695594778517907607866024062333051037151354345091356688840314817318099520493758962170996670747888747125155552191072498999328876196729023489908501329377523361357296804144017388317881346035475397460889098346232423131649085355858732755521003606711514156665364693075467038914684932145515774980041522565912030548348365094733707684470344168008671771067648127488449198042451096652303518080882912070852231408931286600097730044801247144768381706587148294288966995836185340797717866847241524745258503167476494433649942627040596701823227854386807931466356568991620036219019639998483451475081954590701176687786114384691335962067043754231800267813667199120203591203466164917223164878580130992142292742143321723868214025875043046724851659219865709085268698452925460412512964127972407545015727968359672092108289894001988322200748062251543859697911040141240837578468187504088658927078859079901256236463228881150575706416729202002210696357213063657765804006469723933010837730834466608725574047780091353121262555501351870932722067400544593096493384619807055810439555639050173064204966667539353741753469974812648210777313178396513327699685623038146968070995471802239484380971398326011815638075601322883843787328282075415424565068340709239953494998202814381984799279103716636626273518324182734171155787831606072832902826885004339789819435149840754161003918370532190218115897723075958600478471656859134134484324536571356964403607255888316943251980604034756298289574107044314506395294526236019121038705518670456281451443405379667331280575427641373819470368003016802698251893842571732033527578202997556306778755275981491756551535666450139938398811090239160195410898622699110192340143720641450492418396844296363753238949644791484534392103441514522164064510175637418491390263883874419077828401203064723297084045671289073988419625092792436821924734733488890772341426615893111733503732462582401172333835606102861797606941961252394226508077204776036329358180244487682110755242207841143581436087177572307126435775978321855430432167322510624563280956561828144538763959359104728866534134897518332250354546016294007008153491260544790201514076961478097830001708674385476836029580751405312989573771304181097636995349609494144789663952214734055126813562902044132225493220379436261929898455102127068952867658709342976870516669060173055076410045698068048628292605451124079089476954896828934397068361219686380470711137155995476395656849262242534902901128859123776809726172504870342407749761231296270133175544900379944169533184257173215637719739713973462483689557392840289588660422745557767480481331012448974579204619078992872052259906025258848008675423859634058480104271917254667217221756674906072927786846596908399111604507961723880483460710441513604791258864152680284130954752979684724625436645582274083589988923674474140888501987464966222310571701592081130256400129075199025360035179967426090554240516901995110404646839479351812822837608364195589555628586931486627237818500721648081895624028224555203892987159089259327201331793944685866134121724588094885713849555253958375897775572371628634098001798205493354618478140711566004789607969528232083489354645945532734282381873619689870510467341255327891360747082535802052189648421371433596428049210922423799886453994668774455997994757860522118414014192735747729673552169724044989718134246816010770689631725996659513837263834659220209467498474303505017622716497407703755848983693799643229363488575214328285302926622416066692576619098482044713436030951445153412592902568172782968093337984650136343760399241488368428582796887353117824975594427048281552866847470558692792053276077776016474297380240134687292791512232419667897865809637890049135981376711828258070906686134113350165385656605267925187451263572945374107175012598591596140757911204347311290917816520606175185829295867719495796562432785937117113914937767833837909549033438308057086304850966828343622486001989759536219098266079571840673817929789778505111821575046992229381013253239387699661224490779073213428695497610731514313864395493447144153461036403882934420988419761452057826879037886684581421361570402470852518668922077721921108844207184415292756238388895025754500287719886523676684102693603020957086442047096226897251380945634505439029152301293979856646719201239194374782370551166296716304564695446092327577795480413197372228870758439457808778583289750548326178570439500063074743504954657609800907791313746649813714479646872079726323768672621842889193934296362053946880629293598340386198641240688074598357935913431632669014420461281555980688289326409316408629512994210144881481194186990733610603766083450091409619527982637545638427468277970880486140942784575920488145144325377934932323261594121623887246451266140501433131789359640615973867176656394785826726426868433544492409527483258745370037585075175346197484303626658232054166109347552580747638835541204585714231517774340900898481083950716821070513666358381022536822291432308399353840669232038916681854960948266936852440760226544866814897809378097208905575822509728916939058859682535710342263300475169389779767617577850160012606968714734518721414386633590068004074848457790327258038768755975712226751442024595936921359978032797561954397500133730090712376804696256806980275382846069227122779520848595000918097894651349885819482510014800172548484679184496484853385716106794948233919362439337919108412668156287157531583149786332873243092364160418796628832660621293378937432168126586108603197661989657453011853578356374509010515198032416880209280534950147820776073967355874362602399197782632473876957137732516822694531403254477260809715190991240756033118373164307426040332769410097449869575343821870672296346853285965584252552126212912091032430407010943930658360132578765418115356647842233198767052764480083822820759850261989286981202943473867339787357416432243420481398362954647103869144334917435022877356717534798511650185891039886437378819396036008371174069380876891346133214963763504435263843360839881006158326031247741987279881703946706330025791279159400316520856473003217141916617549712488497018854602979957880498436534471256025930768813165023519385869103445532672225542655076002370503447976282885999601986732062718719818781625844956744554676986151621691537101406776081839818416465019160014197078219002718697243592061429668563432680390591057186935739940792387160286324620048773146699321949359400392598306727434461392353955969600294021850419772662566150078661994628715629536709373235696798243651003386822803721007359818779747878093160446628662676189631013590459615465430587076139070178822469149134809355119043553255987860489410639242836836067564093193724273333917330856274454555743860025764916359461850902130412268763678642865182186005112758773930082741596941645250612636147501557002404479504220244133372403233843356568780061453075687978420383929444229637669110230092873844892827484861645740380350324554027470225302963677063809061918508501552242394673314965161901056635735366997128275462343519935185488949162642888645077594035439135341572462073366135818058574425022850336430453492532107092358743135112950383844164582161686968894303546179133687832448199450862648095123190377850558095499163307424899018262589766933920138048795565327651574754585338172155274675334593004921226872378989822143377559229489770718979886497292182726803138605305322809214297210007608712436485381559608324528775791719450329972747878147037403720829803833991202337143640852631869641567762682223110193297113377588993747095052263103346333280833602800435409003437024202750837727799155451708679548367267589042317349258445807534160113332161483088356520582894997621619744759293751375882225252618163108270776943500046300854805384797745792196052117266535551250326151902764614915673007076654832304096848733621921629698250720739014990964199733029432660561993049849358189536932094503264971905488474373019574998805149927687364600858496407503929269269637678136005025892441614563246421062589365023200580703410777455739393048068071843949779839410013878313653877943651976312330152502435583141098641176571064490279474423378350244476482177624724402702345307294045183456891277513532833013738845462194405329666376242186607309986299278871491189142007622629533530581194807665608902744409363925792594214822664218185500741115290355258817443022093936814791184324793219694522581747689923030776487448035353481228225107093834991915445443404704598169992023504214776885415494404503501411970604322038292698747608034241348702857371581337652131203216647218732667134112177572847528050671035867088292793388479777836241203648658467464832816090370837496785800101834134352239174652086396363200269522801901107141114421161897796427865530903616350841130702096306141714168141819477501014250209320689528729797631959599648407213820589983716269618696663677074286576175777664773461686817198456849772714558983313419477069462390489036097934747804827351058651033357746751858368920337513761944698081255632901000008785778227395985018260636324491521957908531873609886666092096588342481422304195588042078861191257825022863981473086922252623143195593977817909426462246971478737794589808366568999877414919415521922517938901335581047608935963068708547034755207871449763874548510113422506432155630574343896874567490033314510788002418250537621643480361751549228251776164926699465111056390035499855069993752633578278181032246863515618804204752705810285060455113524276737443461015577334158145172334161281218097240583306898541011639596143958311594884654167893808577327013560130044378452010028310612908405364134499081442378000049844201627807772593136867420889800970007215118143183421026348804958144814318889929217528773699619693925399805851993703129294475930722601734922809043872061045801655926959030744594257469045373878191341768999468824465405323164381672095949181319460587912308384180484754224022684755605742682496806293708590501745285711068509451560536696927795093088680955740802497489237045802478384686036458854294871159061066745583188372985723992147915206333663064337632674919085059811621155861424697770554895542412627602746657751121771576022296668587706191465224702997833232268478395223663699815852492301082566378411580149306280625953039904716310263244479359291114521085996003440825801754578981057666566136048410526279608500051957845587891084156068545373317896454818655490415258325444829869360256526220576203976681239580335688589176128718590383263082891936054304672220701188445863639238531662170120302919457089279498764800676401970007153708433111282817120515346460258480463300354646036915859267156963823245778865854940838424205683185004028064994693424796694504929974610267072711988017190007893866695540864055908034673524002837848229189812428048999182551868274105715959398781185769856641929858750838608693936602748662941217739841532826071654798617403406414078635567302000103979358406319039981968595863057123236126059083359761613284622101727333615961488907231583501930475366685034880400042870224565432491373093587990331420983616759974130013031520928001830276207573096373629845377445601119982631498340793625983147947922145453251037595082659019844168462249524306772829323755815736709708131677803579395038492075235428650146313054059307812052942309553706797715145216787920594075026795912139147864421960087306474814351040251578970798242427247091061415281060274236375721043952527806814239970839707398789776819316449296964788038858763161386306749419224135971914036550907823046762126309703390449675217825132856796360976604614723933240423848711610985550685159832335475988295096058800333691506126572497310527680286276473280097436514490512881122216921701213200940996741694623330567878037653813362921980523695213568881591908802273109793948163147542133449475243713009588640058226438435793422625582283438219345790069728012844758970826509169051655089656620586289796848320235659707241597619986176801723905041237685517111729627385819928957010556130676720174133537589143763051155550998885096568131945877598548443016562684125505163733741324226957198444764250699448844291652105890013752789387520838880427882952468038829202256790934409277701682673584757239910903813666059678809445228651810132508661772939300015259293576901482166255280287745262398415233854141440700320355936494204081616624558679090088956054430492976749156988329359347940380403876241901165966000520719773509470300478744738854176022283089839443023917550906000023060464685179220538214289030269916277379265262021765719254820389998122099864857296266183662177480134445353263080764490917731351895878303339958069292415334740007960215710079286771889011683736128189225881981811513585595163245386599161147330094613684892474321763509231889165275767767514380059045468626252410164813792420769494050469230989624043403403144176647209604136088786535489672090238584940869131490597349453598955933271724258712109990099633186589285707080426224686253096216887799139986988304558290497733252140703716488075810847461080097536120200623600419368024786877296492296846718326601411052357724002459086810984722792006792970375212907066714173535066476685099056893237927960570188912945190008152904797655140993954395249552460111336043053590037554231035257053123547161454913421987617420484162973481010065386599983599864224069783397891149248593570064872140364334712220756079748466552324599752861671461347193983238042551871618590948976193264286410709510459251511091460209588452965619475035901642476685879821659977418382719084926744004241719104792687131250647021531709976352585058658208586509841766017899617329338576926699573152601387957575455871640748051852698036110821262846650119303770273436661160256146299599851270303584601798371371019383581927754292064080217998939310783249447751313705237839874095895640681219091728023725501106694307326032320717602208149113639876133512811870520517223202291038214162302403233318616988517892017338852430549884275166798049327988380119004322583884763350611825041103330182022819916497172118750916946832220708538876049142965878131003443364487813717247661481234023347732081311227452952747075707689214877497709813944199966883514704918020310219603662032590112641068471530003062349674526354833997528793828339024288351963931699627074335577566867416205134922918939050169701156968126873816306004304683601422500083736617632845162528590283014013534143741152224664415515920600664891469935762587987946110865981902356370507931219128612752078230720647890144826805156162187320398940002968869089105946597325060469966731567687223572067622102785754282355858552419669957683359298925074849496902694368310195931022800934718964640702099856515502878384181086217791239020547218863275375359296501485209613106586318180237081325647297814025258469146239569465686838238989568516923982060931980172598936459058831554194601401568931157958345637350223572542375666969996393772419570068741481785527692877650763473529970496949192904768679683454625395906817706581348790479944841814052520950363998879948571505425519554985689713010639736034191676149955955868821452957379376559557476451947217973169506689827253430967293476393797019070256011244691906755534334157229829651360653304647810079891670150680666470003660262054113733448274270404045908637030123844945829734855097786121412492184230877053618577669920894766599609285233126596578956198633729923588213873366286054273912439993837544853941127651251695002442730992375858563097993887512992212207645264182233087649949179383536316769594945137939325879038819483822724471065362593014103566521300560856829781057936049184764248351199848144312495566108105328441645557476649830129346454512295034959340522452622232220591254217508339965444434874672424154297546468528960522235612911926904474745942129429095424009532296902345267164512805453343441976928996581077055661395515171416066388849357848043961307265844271132415276294052571945613722412706715305789549145213080929075170293389823349912481400780866670437498020422816397549469081826724986398663398716664795535304294605740684037675852090484723115240159246533018373034334196951253120003731098004014839262072779248536839230706325798091548924204641700465718386145063130292181184962670157723953864253184375564945303113133185628889638159509593935214786807818437179029000566621305774493228201224956143170692623422627665610157501022033096539428467119811976604095191962047216934966726652932177599971730642350100214253939479688445094195060677864648400325635274299680502052668363710510947348353534158776501151147123434802408285867819625672861950871815368958443086512728878489177858726750303127370740445497659127533095578577810492041296308884290612012421432481339298140363741124363772813907640079404106578364936822470773990041132422473053761771381132955218554084539161497759274234854570129438019051682942224193937859911160421367961774089772643664457735074894778688881698143928503285466407015865664915540936856820238140194177633584176481120090554736137317641990728770794942355644050808014402937958739015924161137392197481617338576456975696874761665751259602859208849119914444586573685691570533295707058223598867677610506375213212072618263643644006986335287125266952341652535833018557749789539529510665243791439589914053481116611961192705345284080126512370360170400379322791043986917122320215021706556715741283024488380372061391566712688752594756966629151150535346079061282207799722303661074033438003205806917054040879925021509106431908758257846026165867654898317747182959724671071285602140529104401085639344595876524578126821705096264743202825908967932523169294425170571865155777492264399525902403472389498539459825383816967852846254340520278217609722983365153492258122979374742454602493170496812143210640222780147864585551782492153692220823897207928432936470106801930107772832521612242441653014514121027227145734768396508334876454817666978123318105080967582719529508149285935025248790597383291922983061516414490181968068302875274198392028837496883568415431463768335427058507619816078738759135018210015419934453848923006107967652499640097662911304181975818018977213324225133863826329289624092588523141856774395408721720240042447307130163292530492109267841271927201532663814265734321857596399623201502937353800095930383229033789640633178587232733799945610376532354332704791464195812130085112465484752093751238871091377063727072637443797576468668457115277050006277326619971834963695446303177419329543033849352632346742248632725363184566241296597210000729045442860333056540265947988543306440409285372738620819152999065227151697580270370298845404225018773617500155453947244488769294548094619310536846628438079767688777862187125291341145260952305285999136091288130707703586215848070719457584964614712513576643749447517517214982492428048214219096763215131663084705125719324424051983124139571257654797228867595400868926779149269367361341471511497455470812965231713490852531055880414503999999989886533815730162834898301528236731807751803648936907832429841639454347152487029841626288590814710108124239041594471674077585886593327921964377484554886734705798822540393461586505808547461446038771153251229640819008919799071432845628114261234106564535592165442034646587615647330891522039216738179848841593825223335204848730429630086547913371404325568684227625705064535481406453786862122086497584080592304102355627678385971921139045278354492988584401989284339540278458931354781908698975274585473745320548257054594187007493838399174865259493917184504255361630369572472357814381990233921153917406456776290598772276766957271661828118523473128581595941303202665163203180546637261262080599948142248374095418884089324397005963990024924964331593965399014125765151248938477306757303145458071098778784301011200139162358158330180546770244117820658246423593281312969728981633792724568318088577573743160837866076614251657690314734317069396762576331720823505070845830160722568706378115212766570998385509973897492095961615240510940125276840579707075191901882742126637327778959855061564791589821936896726791793578744762953701385217124259346046345022116046788765143317764299250540685051320065397256484757924637908289492548480905153182602309688977282189639923324634168794781867528023587334193798152785014213378538439525442108419024797854767664751147246134638313110869947849338769063032386923182091958697053698889302402562503733853468555078053383817707439381605398734914730516540115895706112821897648183185689386972116653464225337528394716217859942048414979737039601615868378510738412031070386187838142231729420417895458531896969129122932152851457475429399938023130289643955456798355799709247149909698849087228275416342882351548317167239021116518637788922042836546237388078677654648818056839622114811639006776931584632140391685849866439376034280858685898859695789646564358169116087079536537620120254222881958622336681615871758283192167939402674361883879925967348863042334067652886418259308603690856916619151608381962177049591401432173702749751122295209090288217636540468556019524000104886893469354718452204882306800625597335961284113898305560921426484645972145179981388864163635267520603819850490049690296509109814419355972371631161636528670571354338729807408242853598911729437996263608137828767201931392842223292038567574115108898691282147560318254899372840009836614435192965041143802785200386280966763328767527772914310780088281246578874997553899848304642394829542986036789353058899788308973423644283059227072158317945443933688126871629726865863010183576090669249138618627118403457403547142476356310168611451526798029605111612039408454118650887220687435477002672369071601273482618315735334883432068894935480319475718739494067983706781148830205038890502180205636133613604279296783123290142511693752240955378602717007444126196998920107553885264638757350967989116217559418922901320627299607480049574610562337301418283871879812049345498332478262755138345186735180105322498060285840188160010634141966991890687824858895768680213013180686100431171901372696503499691889306608629313144213477840360142991871442370276219785282707189102603675486245208803618072773669505239741336856034536622008830253026327877750209707157659802883049601057246015873369172787518974275412552275246736985958180212850071552350937608046244236259014901696615341227970399979171732864397257425994019128477189633529142787666440005593474289083407408146291755174460414711554858885289723500357490491323329734496983943463968409396107795864767814787405874554759734240488060053407400113496813709572625440373329164408721692484299010337550990590830166198291529038358378719578828823344078015561835644469362310122171672194734421394212631237445571503515981761504844754250686336437179178958785789602631119361550581760839831894305788852987593028911922200201955941871025547287957773411622694162208204926511069967006627865073996166325659092721173537326381800178492700977423390843244601097862541949338381679030061520359299578781680141336526129318721282091331955974358985384750702121130151256251242372272003806919150876515369153407434446003527039028276533536102232497931341396016247371904549328418896741178908073026770559289203047566074649342920782131532767154851510902968062572911844171261451165833724945188549466535446657327091427028343727355088814997295117679745593372151893586318628042856272479566206094551688059506504948870826347598489407848108515577907432456580315235684777881780176497682637276767593071927305790619140825671443872419737591521235464622522519374935390324762665049225663606912924950777063653720345994393079337955175151874407822601761051475053762514839847875864437512767278117120260502878581972831268317007531522814988046536133148098275006342399775785854597453296655652119191840313149550105452276790516150453379504832158850425478237022966913504675721762585023861178703520442496486181812909317063163927459608322347466365862018843926195152257373307668877124372555093809670126794856356864897912521455747225621605595890672814651372636667153759366432636943440792897994195752221830594994120882966052010567722100846069586893160141472741838817930241093491489904035357059450912418124888501686816735548670737463450375534423998798868904856058173374435774307767621598931466704343950136719221664223359925507065967971417226126110510918574617990182576512639574493331390611941402869278205875465909285158060104627474151731451599522055400081731420105961358711431505101248267640034639370474740985978978811004293879443364447853076656729618403047521085571471294207914768181699073040237472658252336566388093226721998978535273066434053742547743967985617388508929205875059930615070204270827010551198411351457113022082749475694131670429181835885755327682921669890264779158146269124046867756316102393648990130629675150859531251750436266349204076499292009244931468867843447820035280628964687065782067888914489772128067696596053056289804402875706488901190728804309513601714707899529162159913756881818303913297999811085160140408671740058832583197571999191994693433816479497558375716797819566535813853698274872431078576207382648882478009586066912811465493426088151317989213812819638427486588727468417273069241497368340801671030620091501844583223430931318132372664538977953546190428265566921962197487693748507530118965282075968387726861410067899443392112404527676716112397531957656948125362363024852979517515235071271850214300599082365603962589374029121380747754170992543516207532581945524765494718518012595366934631377053256817658674899363971762467026187688055980132493095370502721295653400061119138799450944253915887016786081469744960165346827890045655487103735333055091556614685678700688825983594032453541553901632899373273501969331871696237148308497892867341658095761818787000030424552692876768856387301024277063591310081607729913744009537634823961328502887501361271006205523262478029614156389031518104741460870441337295671244784788340772618591818814695170903624019552380644158849738844888579436329073343874602034853642637023735274640879816095592040083852591077402935112129879643101768907637402766356626927443206184548919074683723326909336523260635750179527042620517554710476072290329322216995375534075445711048671567821728881245705990908045189639539354454685352095434325478706407481524330012727269185503831849789638405560508941123972465948192304608169950332809178661028699525975102892752533765422472073955097049661100574447053259145960880448348336141697059898059338546894599537372380122279418615498699879076098413047665178482841730734413621233845527941310151763652898631236872145746526711725854749759643449470512142755484554836164481000454847921058132161996254553335871596366805897082469568567405737920196781681852277343603721344868855948697824343369153547987279127631476775507194702039078056894818368070044970896783664634481608694925310322769165220245350627646395696849706354201157683695521661518421774325485084839363685930920837555634299630944488430114770797228092768303995209677614774960041195214070335877289132948678316159368404284179564154438374452964443864832551272165840508679279603386786296837515655446166702850009660114506152425151636933312738316566790084231411633014152609466986778995832523333140495261989459839092512157029125930520917257590334226034021012204886558291797706493983412791299044319090092971538122316075049864995170821845099494551064841726202109842310040036897009887659271634587092641048190190849967858964773039050186848647501530649272003544624911506793945864219422632646049189596567985775135132359385024084825055836878132278057896956645642372691448152425674214950917533983751892995817412866024651559978656106438481872002502605680250951914214784916141927624876835120114987826210429533003164071404827668522305560272146449728637501707215567516079326579964660936812128765583868801223474941297085188249148408575269576126059696759412513689846984746123021522543184597686744575305405516440129589512202977018501040750931981940752033767346838094297251915367312371434954707199305449391633104920659460210051199104302275844827557220072418448932270432684421144581166170473887701462645754899746500043126501618793572536403324553895986144088020384115722369009480263074301093307962524639691396865203813937251139274304343714064337689675337491893516376305837246375480368274858078610633521674716583334855157511691059820647239162557890137232189769986351033263266758013911713471130117316384881417897931821427365745205633426078989556855144796395668418455432339077716371298545728397768291846077163466254040265274272871898319968588395931393082475315737225220348153021945588951795160109510382616302124402603139246830590240843204462818358891335462384354089488067445950479732706265007079591216565555617257522158019818666105195089656403806582970586676369264736271004618873105321947290990428596875938870738574076635911857349166346119645475788851393377368988668301807865925492573373014310161059490120355941556703782232704246818053036919387902523887633120475306856223397249422463470420246676903478675828294205054301705297212523635103336298440756430616362152099094985465336643263791066412796626181551892678128233307467186416996736641252965425714788803387225958273632684130580625290451495663150654355466015920632533530367793737091284162458745746402280945437650281055396998506324667447794621567066374239911931110292716296619312503168900926974657984381949049788924307361042127570630311128538619081836022585389291368232050500257399706084815172710098996658348043317522218481663508931496897614505455981303315898976837389404685888208803680168486797257838818461383424872931524287016745583329969830188397862631770402784539424432818718821564727142106480916217750801699315469589143200649665867198976057771557962856119946105468304455574231805611519680848720194355142106840283397262692057893098858512148021158797737100651332771580859215981944344546219301545392846183611760707926891987129179639633229068087057854113157453222311715724328115400240435409156637172861745625238569894504172537228002004373146202607154588082916150520753871873188258438589044770465433340722181895942037077013651249125102033740420085554788209420957250583170000247798466230571624248311621284311622857609402486055699443355583454560221950070380488777304464522972784561771552900572131549473423419883547193739311326254378914462346545155979144828138163298489597902405876085271143123066502796579203833182243283017094031105797604292916501567303340819315536794338614147026989485450558450839972119823738484930091825084111412922747748711389941603600388080615519574579404095005116830144093924700641017361643603769137605762540923771286900205662445085319523126324947420478738480916331375593819902478099101322001191868205572508318088126175950700249110155900629832401423243527702517698920531330052482381041914598217072547813657816708918429882810772811758768392682633344388001997432326865872835152887229247174069761600961309707943827679172336656676315982057182397364033455243249698242958842376088931238781925749124949992445395541785579040324834953582693658369793916792475724419139454347107111001496849083409324038323680754061604084591092213832311462485010074947891192770232660488306575507981587170009805601774899596340476062620820455082031639052902473539471170757013941278682560457157823660950856014848336109302844829819755653928120195969131119402775617905246925776272354132984062270055050434390754905678232570936826641886648348394781775514434542352940933327355015077002079467120931556487355813006471824416679847748847635174110943815275536450062346081994673588170267361322744779633138060329334237716049371104289952290218991707159409238428394745287624135346683173290570601926650060923451832713472001571019251942059493141087983319458996192196700775310198116433753848187633760776416170423259109618866620038946498671195643234617502114441792369328960674005392029509086465853004179869626937680522002094944057728261265126211433020641706475816317732548103900347930841021318499430359506407904371721926735488765106833015769182031970708114153571027929847628114574833390793278919750746508428652662652536546379175924609456042055925198773369583809553724594042691576453909358635186002022263821791349034371561169305244862317674980251154577770300050442677667256779240345087984023145184731205114919100740925212519042839666147049136443066296466452934627255480114124266016744822339364829218914992547116209640794480994106758606180724440582021128863408725313232514125879059236036677586696988598495162784617707744162061682602814379522747840079118467631266603171975893803950706323605968370196028257551354527893967817195984626006353956080640855246303699591921366221763256584072934925359140201611121033349757012893779161772013839556920555071565672936849008626271595210436942903557162968160102930410325269455826869221547762982628315600673440364148181295624478421472963343655147283983782398029391741925049003514962374127981646286451479961711950086244278671013851131742001865800594419430436160392614661104599662529348350790432803464320935716399348028690890609544735194912797951848083737077972091711304151547364101400010553096718400723912253476908521149714603326447200792234074635916779784151930475934106957352110983439611706326632140778807559886513967787843497246218380696610822687387411540345195732217320558959025085647543415724524500207744314572118765644772857034232163401322604126399743800186937131620746276519728623700347922623431230541060560940245093810367597691683928106644631898690296369425962263775532715907502760485782073697917125681152048563600833139503411375800108442244192530989083786619737036640403356110807735115326751068751814657420980092169583999603792812888355261486010303072793309342174766306448247999492898360828241991485566316540005353043936824918442052963060110752440264952913287936682951426949897548813403103795057736401329927186228422371021711801864104027524374580048255166330469154040960056013602764257609057876444262338399623428617484901477612842644636255539894146968631143100776037468641751096404562178127752559447292989719675641876575790408760940340811186817703048209248710020306222034929126522414087441070921352409673752811315114618316447134304848633235009830844971831154701843007190853071469772900110625031749544857634451702641704118883366181397668125206142618694758985926174707010796676213055344875781942718305974275588752412466859849798381011086567800606909920849970999521188091307336123632445657737718036969074394032755914344039969480951268683688706073846043230269513320366480434084384461341138663611113662062486074277116226854740801015178101402505325347713400753010011846102566681648920566189601691827909240640415010984892368424840605706552388336815847622442621381545395613701128791289600076926370883469709863645310455936242683353250474004557933623304480318224496478814116509480572812835000435529283351496105470215803095535832433700273396597303039891787226743939759649533715466425251204219724910773532036386065219763860023369939240151920602717434983827308753737320337501160560389712208398535330398282854733378347255710314931504229216904516382081790090233857545523551304551344012269241141925050492139117582711769622167769250527567527685286956670496319544812364554070953555635648502542554702658077896618184096618378480108286263748539799730177741898916477536310446955917975770080534684570391705470944609926972407971762186264247969154189749215163701388752419277295051015018544494855882279295255809489918161827917259008116500374791057650168623080719758564539514111398460461902307813666556852531364217204985705404913866452769186009136525140240638224968329899822603549624518422111996796651491323286436659139217720650922874981113560223165425927626181155446232141860122943663442533273772158023943971499819323880334867510941711699942870893902309711722510783633049796374955408645549017833511165445736739190064239146735403184961964585744826248254035886814235925895609872933279280391735053728943277762563054338201237647227039931697307805337699811195003376299406187108126772116142956772704889432556247251586201172335294908688195761518974381608780916309182946202896899629622291851144115787636755735798471453587751398474787733341333370048880311361186057836755047457948733425242925861013228704323132831251647123441586278790091444469709917051354689860998379642277022199993060879764625377546673835206531566257146858078541069972546166452559248898566858787996238489357460304589241900494381211402997615209028193315065804285951994409529068170972968171606708247450158565082664166154188421858960675729265299038546842595286656754341384055047781789643796777606969186676948285082144434170558023464560293349599117697088192539465526933674779685862686747381818994343989217436685295718783167616301883837702086421661052509411680473229864805029076094202065934321175999339480118314159258094111870986065854974321350888885148031396115618402640198980485335276897866378496879390954529219374082459121689304934142138858423590687599763271561241013619536758887198375958819384836070052045067552600577301185569725265251035154433534709263301429504160954583092204108491029893711084099125141501855050742186649013208256412267043934956142838289941777728871220388223493983770229308056363969361701153962203903174798519203781783224043899448501265919721058776928102057600600614268686116868550470817823707064761282230473459297135376972954068429908396096476072273986034057312289896091730615097331498144000677578653065344208691247568716097957760718041653070343698872511718299432237765157146245391044857780410639757626433724780296971769664347312508106803123735108173768937925955565578025189208020184793871192192270127312916305587217575647116214297068806843582022251361502841196454819932799717687695016460089045849283190307013634772816543684443299892100888657414026535159063255417237249935505836201020761184810909200473293407129370260406766136871759148921548159883459308938087858217726698527899890122524293446019967547396849130578431335703542627859729673908320585733346604086713871153101649443705424395255538800123954416162292663874041020888831314797197534258628904598862387096165871063830346140178977035619747051856523247885259362613317374193343953828836163269714964480221916042070084024921039175935114766955180387496280190125188729711728184134556316170511177271674162421379166087123493333614894558567362567401548217197559315409979525318647853591520893755635647777887369549349972177558983769095953878590524018914782067600311610386973214684696503744755035638419951105731264680235388116692670963939867201775926835634771813275315294175500210340097648208418680014808792072938578860252118370255741256461963011765758450720770740178175943080808110872953711666042786046853423466864323144596924180819732108534655121197297991772085071046855304321150888192503837770483459258894611048217991739247938205048003788419452956111873891142017492506574265139505119644810013859868465375006243755334740090954965103180737644549606069314005827090519288062721176901152032286509659520780812914606249860670367677198527308504396329009267775794157668056519812114336646829708798495123257319795149192894087904611414841315009473491426842036265114226701563764720555092231393948982792531484097469062090146214633875721627813746179279727874399625527774596830789999517833872669956032642324498332994262816049299659895440600489052714424287338913655400803106124158102362853855474216791055876569922500657474277184355716853348041344531899018953491890288054194199203000902104949934321387644993064958996097523744017505610385108495445385930772811103111995628912834153274284290747951054305049939789651287236512687718555652192835682310452961361538155297602329946712991728311399770414698349770777690398401674019438529114547763582180262237329661046164520492548571505138574652765584676290340838286779797290530866157930534757182444385488599167248015501734897011740410415698290999290605378621245798486209380001436191644686478120240857628503618650117669477173514951919887751672582691732214026596587884381210375880239861562229101206691484642174710041984791295623923874779185783177646935761120332781573436250224183371839356798103744627189693324775261016454314669836414875560206714943661066774631044100971974488026896634265807471177599875058086537716072873120734269112832643711839233300936162460373951545144667483521747184081501851208777568079681233935884862556989569837660749742056705999883779822694170848442421307048678702810259729974589137964277661586816540526982090467861853743778745537580543043909400572740494845302271515231932042627280318027854043564381116346368409425309561246355181014780313310535002526302542964638785389077613039697420864891456526990563347436314185046511383026545895835058052523794500972906972683078488840713017189537967967569789284051938931419439054349453176988610865635663265045909608202397222724261936083595253721684772199443823042835630467618387709212742433397643464883712447130105497552146870050134708471649385489195523982399086837327386145713674788862187465596903343917872697306895640678131242719266252399311029465643258925833120953621526471687816306621641869683441317057869909149574327089565047632569951681373926036113099922278594194773331638189385760612590128411323689768515498700941076408272065853871368800152502962546143283483121353640460766824605842984518459278775650684441378747300879057739468301273216821027178378474213834729082792893789016068780590780477198740114151960421578610112095787143134940865757673497868896757922685115829972350080008143412804495695885416464433835342480519637200596258473369399327692046334555046988912068078591171024137431919186837290636897284912015608341189040891140510998095185512814154615246461163099609937209941894191860681737742105832870797125291256265767463731878093879547625723301376730437644431967896768530013756296842356667322117679617706403524427282865410300066573586221627873368640893657293801941521610210598106024253393734715121846166205703105412617304358624012300763696719501723097122641945849052798549246472664564261918435176876201991188973150544528099497601217011136611276597876749829618370409828129877528816465878794919211768705610288597023750067985863632064360525384420871038627659907177107034505681106616453143458844358316304521593468818499333597307545906683453958615965339400023816862750657247762763641105746859846763216990966920387700554774667872512087025618048148673908191143918406414373003169135194564636201727653227879526127574637259388691571267481974140364432551047825263356525662090085202763270011298691158647093649877015950410335326977028074884194258153231817859943657207135411708341712686176997863151167527519305115092030150398604263428862674762981363205896427775623977451052045897200450031494888262172195889957024384730955354358093150691545692488862417864425217468998794040715217467361193427628609915511299491147784154573604686958655221762644303297262057051922328708685507120788930249354542375547919306182329308003801868934285217575177260768691466803921634417787038506943867421379754338446409227802581311766497584078126242424658266562263865491775649897785179235850017996239374465369205079294652025644415878491901573956272540573548832473439975721343257228513075694819469277756149455888989118643062878725945674347524296215465921605703683506707383487368069083619217142819937548977773784311649754478789660080035554095965682754125637462674265524059335206901262408493669714720395284569239908422302986339728126687334925983941445263494137749701045033237856862858700469405241973928159670098943842849106996043905158507018573500306319617558538382839918853451197396338036636369411490799270364884508528626940606886255965082323516208956483859898305076679117573351545759270453702508774332705360759154537544912454158147509687253792514457781775972514422353576166679257940276434693614953472657096382257980552390847352897722261031896484176994468834626374523055429795849658658355241829511270166707671835171426420040134075592552803253943159574778485624543210558074381295822597287459534789164297979939609980961664245152887045802769383546418264644097131729074466029118330066780877634996297089708581471125620718749310969624582539768855198433452094782551867408851106911352809401416115969881710156558902570360128636919980235345474334321084276688072350004683412308043759077703169200121538092512997042753367889726398750868118830291654515113792923765886244702066783069220609480458265789830634661609494331749472472305858118062007530436059126057963314214843647996976373640654773808421675352901617498310046506621297856614140241485912349185131796389600989661243293150485478905295345033548111612493334770008079560094762316095546465589180190250012755732117202280009674196539358601602607376712477384017467718242139226562702317069221383378376771066829662606882769141615191448442559890828280353974768194778310303304047470905213734607754269471529123055730318212517596030950251257549789205958486785725220905799983222025013050647794893695396956021673063272776209422953769490649924180266596183651474809253212358429582859829803667836238958889601792991809467184689500162233601688386091476739206281376234951377874670171966306085549627398624985715403432735796545432470217103668609745659390803933016070175998850953975567096653357581830191425486828422870988570680626827472515009313656785845350982283285710270739666384844044356849174910766220568175864808748475200308589998176371012884046908014304704268043664838746456522335731184384106568255246902885514585699858704060347680736451204727616135826661332153357950112367420426242757882479511277448586892821979711787631628786466601054600188177539168006247740811462904318861712438977134486355661421162781161619934739289875875206210070931732726903732847596302543498506363778651394882175940610267184856529836052243254568798083651535671061058538217104597357184026265513392678942122129909947188404784287475159885755621379686103643885833822655442217901071030994783460247217779087249378732290259666562672804853504643016080873160772753589087093464450987345303407355595346558687818750312697540555030689264721516716817513661985835087687787253839261194791118211775541479005382978082383550725884749413429415712367333145503987616230386624323490531411693399796345480477686566737228166117039573938308174866942575667351240539820873296351138827435680579318321823366210697131911979071678050832389035566456410596107713217810258957715285472573037364446679630017294407998863546289205158055899862424198061593822831313838812326456836411646263086758214077801579467456237479390167580425059029915585630077067849794206491488317783693073216001239817065598741490127144567371634202105679161154948436577528230356953907579125777842109190392712229266108664367319214361608577788167188344877865480723074490646924066968224391331971839799707315294640891803968520992981109622758405949661910629240240659221986524472192512085191999412728480371319411454541205019117196733970537786151556934827842572479566925508674495909928540905786503977686302128498447566435592791531878318003304297643915587550395298870496799611236989645431116071967001497982664279776038454499944550330875051324278150700952055134831959837303023992530510249136596145655723340617345461878436998337866581914105705773955957094541837414554635146218080416390856051023547992246188776661821849815159918674021039712669398939880061838359366112526744791942707033570971069811016632758162253915085244577868116105299625439148839114579515500216866994534849833249194312553532434322329731349015101642694451682272030852522517627757980295166108797806602571389544646753848185898321809984181384453103036175176423936812049728405906669434358693933337121789128843199040353064680194886518458863145977757175824424961480298693045501605075764515529348422311575448836347780664503642219171421125957080170670805880118669780628546598372437967288568482130654968700566988967885311983003386874794129436325041254738759582688271848413138589127284851447187075583320319977817351588443108386589497276038823434808363387217646554976422826697736325739647327535831528341551430309416290065435157678722210532997660192603791419534445664156775064508012421295626200573209526125017425498307718278221502133170825291626134134043802571045533606154611730323564563714587270033052209178233305018094925714763731594328875731211575571475715701093932439208116219679012722312342544389706962891965768690054900823496297942089788166740945081757618560555615158207742710938884298068907998364884275406483287350370452586775064660934630138081489048405559677543628301430049122130484625273779664750804389037501480075244104706085804122313141885012908678995019823426252419919912127031843480827633894751391731026663468844023827465781721654840955314703015230634224722851669783385164169451166709724246149656090401127659954452549655201968297794054907484273813291753930763023528891916154907198353024803549011731799034397888742030010235265160699194155428917643208923519150920756464965228239614447668319330122830451417448997970854009457546238967065754327670261863549044947628049126733675209338059221727214962477664161167614219005865233965609720877201649300842343551659351541102559992536191558734743634145154707390040669738435156021502773882542564168654301468098488149806338216950351725215930199235849331725820488039047270589226667194441446852198043263218847174816844930593880025202556667668300512711110059603171725108667184480241176653218914017944858332728833749669477681611864551743115112982212593176572681050001240871658774878165874788283068434023332574320838407665419326745239246556160597571347087658152547098023592122380914568889104148660753776131208542199543709194504721601077864973512736401239489529435775168928949108325725219981681055384500406220335967569632828066839617977807282999868842985617789617639261067085616620405784150561743508249959460619279882414884758242979565155315963832204777122465294549339735197918403488303925040580586526913123210331858338042587666386596314188066468311245287580777182800648932764188267079083866870115042176248331767614694363392028620234340646754657476250117286038544681107462966517972473470669434228421103257636604208799520268313368878115385559512136759300171121907826563006861886207408638970999379077719099372580012700002428618270351292421238333143845974558081234372998296264929012069460164425593947660312530695222544101545360353271144080458923450288007557839413402785485097751615742814778749038449950091514845744514851111459681575601895911638924478516215862137040564174089686712855086444962890974845265198403293714181933628386559838158814756652509431138234863938623633277737000567740524204578089701197527805610942481987452710239989651259225303006322215153504760355365726957631341570236931314712188173330311488323134783909969531655395415455889954587136955298263171198031312784327721978812492076297444407653302360654755306324019234985686796182527712717518004082351579915841474618570353940832469885633568269437439202562073011309848464754306109704676314777181792745072080496477008945276953296118239302090483176847579683229362797488881011105862035021202788016397001789094820839341702643002942930056194285323691246419358378363157484981451235703413485669656915347316029048421750674416263131496893995792993472652112969013533770562855042923668398148625628167029096159820792271579935765955501835448809831888647240554747773246712624909178588203311521763548036447249239292360519440230240363600821805693949596568014850678568899416796732870311364655047037170313917365781214662035380913664032677729593710104088097210171348141996635399849701591341161781607694298107298124879034961917406691429181444664197485801963813305491203749643257992196972417195793370889938859222870134316225979825577900706430150898637262830712185092218910213971219323587871454667537864455885734473888641398740982478625350428830519616682945274463119695114868542452272791913874267757505011892753752839591880225377512596299854280504120659204193926869989667617650559176381391018575084246691010970254898064205955367045920108814660056811701451845287683329186879064017438748471419313385229668671294592268459673924361455726773996423598305525591028757076045282959228000344511072715272802781247478189124585936300123766475075345341653883412353326741172288042613946775508136951434610366306564063735571628832736605221708866579261639430119700136436938708247453511903253129844712538654508010971237188114262010331872124745883930637539024344480792922210678320290036954689218286388820888882025584489002966112931560627351585917491655019230133185207038685339347176733844746103201352210782293269308128304227137116373810035896534734308601740687357131425943359356055325337399447139679005187104523864060408138789003662874206993255782503556564783106763254287350180960830324105565179048934232678590208640637190135922925186889585474774992963645187162212578564700354403956820204835163464295195669889115596325560939734117521201459648428971144669373487928227467202467364840427257724669432792548676175296765550231995512420711144273518067969877847681047113887215845334191002921424980476066802899484479799229134689256930950253906724855154355092421892204838634391830680002913439368425681812089849073469208161226960743781461347930454694892706630696912965555025804231551467369140037597517802658210511185694789125531854668807229093151719914398238596895396912435120271523452161915540043501779136361248835997124403138580024648754669223949761078717103941269735832655721417346321092946334065923988725285069866382880213311306542202030990900568797358348567160150618003778752407703821612235650519763796469027166074178356901835559994789057279554508181988409344008051470058308317345258817952378726556763014208361571235838562299117647785259103247238192895871639047637761920705357596526614431225769809291889870122083262408571599154424959418158453407123285958071043063648981935577232466928582571845340105588761284699910951487530697612367127572812847263897255250301500544155203088333173926754120944887712587161930457512301219243961683636323569888530400928079927549966055588918050438305260812911973585162127458147309099024022742238913944547134650369242135687999703913519033685265973213104987602971538724887859596553593124335760724389907781058715117885847267956588480413857389476703112227206929772714091626099617463765615000488310594072923100850517400497840148827877412991548765039534943549426923559844782601681385412794886499971941118072717671358964744472991682389868069665040061068908895985617383405848506305504732290459877888390763259493876003803057109599403697578612349353590270117480357271466887780009841430707670606212751292309329842057264208310412881518083799693737099760024592600071203442914972468111658305524702267003898972759099419531300175197814069273922467800742176028584743312105932208602784873007130370210230864223113139373560920198400464240070423655531668384757863963285084334986421521726623493168751463519949957548697415932023367079736990015419961727973715072582965164857925840115258199559576538385636959542626731554398412557294536906217367160328269068915487616551616912126065399215066038448691595206632020683914122996621736947755720388494394741726744558970560210765149176884902554254356694518362093908423211030741765606664810343545724474798787434187967099738062477552886696672025230073113647960679353026476663297409115064827586740307929107798576148946651012990938320103604026502561507787448462016384065284731498941661058641943896301720167887037033342204459993021725254485360762303421980267536882117870833974835724673615619994686682125539196257326284758456275466321413315136959731863870962041916414847647611685170456122591093610156875657035487024811554564335720887251073602680697980477229476719053191147227052520370676774777275495389655670609365153955445022841723951584098707545008765873713898807829695964577036633841978420353748516740767226133564856781174273875320748074357506525268500910187800875123591450780100036415673730826126949915963143150607424455366620321733172377397657602311077625896235703309875975039581657789340527838362427271135098689215776629606001009300748517614363572013420531463400616965176444620440293270002331181024374318001343876101257964607385784532831292528146882872543478728711979124436483631429099610014191302251097982968005062538859514365312285079148914392567109368152358794732167494303735163370104290305672776791298095668873450889467385400445568365989797747855213061290953802886396594302631949546972848013680433876683889815209115200862903868273113361759033120813322534349866598809261097345576763336123757313587914379849153389375283546670319494427339539980419494873021644446831782642802645686601198888177951577117885883252135813229104542596513494116582313641965260650675745423561991503623122742609025040868061813488558359917282643557120694199733713907599087231118067237647833531870305894588857282807207349683016625912134229200187425448172903621892993683538666838584665869229720360070293097512214160278327671258172186382383077667506348496861667571809295674219488085949209803003490087527721204809201825562928557040978075529557490096578025059006681650268432798417572107678619297681595672698110892867849799600498307696209518055059231209694967312507192861020602214981000849433472648368001113360465689501249582965221438068197854485851956940562596854398137232758496141548310846835047507963233017018427015792267535374479051058603758960386887724125040357967740799017970835623711783944157793681457481959671751771611519051730488530359857482353648035520027171677601690668319561907066827936787515640172446759040281592159507993702072360784932015155648847952460090352996744450917093908354777979465033247171871616974489394513161501578608193728683705807520002120047182344075707702686835077811644124843961062779112625257183174936006356381088602924995608895998513680922666369172631771731236589583179359812319797479166834912694744432002161574385512972855531199660665291122847949434701491622410617920716538523663795027615689600972937098476262822129207387145404065454355835901392985137696273527361093603162501263163553345339409872698514750939436598539382393934049121935357539775152552393168071355265998640149453532429665813787982713707102751696140114680076199753702117858087602911267986406242304830062124051303423520667379482017893028375001403639713300787946374441679141115702432556001626193584725258816413829638869827351923068180034590537199035281514017456668634266178613704392700868829454774855498370774350000564662273812942996251050501003051775794310998183319032690383629705087050394666643751552416895273427269655057412958578152074576410583372745146433550091292432976603772504646243443075503230971994957930394487389788845301512541291322967395719220346444706600767906969740214113518309866722308194807337516822036954553025058175855399923670913199813752996137204307724511963623912407894827691683220274951691965041753738073782190933346691192136190892108194645515161815809566699994422463572305383380977240984139141747400822773092376821327517406690732168993961041159385574691512496377435117744493603064213010984934078596406029242165969613564822527318862349985770485188196097117107844906161337321617471941493598601759348070264917606369767090331768095959380316133077986057824535948399420271548879989533089513327333873156912571385922749436882479283533429167825329848262444699825196879828000766123011233952078145562479977114791134695487074953335872755335273171740334359318514282669373659726090599660257744592735683692358824122165855735368893660584267013754746915549940689910249436370886417749657043539833698592505822660876793848380393444500896123615937721518078973828694762406569402822752683253241473356845039855387460898642791108029201959919073432876135200155042468866171961511567557753952724158137426577788611436047126446008099211677038568420684601660904589424651853452413040381257306076953171337067799537044234502233117020222875189791379021736839120983877261650486450170810773143700786158318858067186943348668745665116084088990130363838591522336536705075967596945311626796709727094141968633114057469962638987108093477216499583636155099874317244206756470422051470746947961298080275812828806851295783150547733491602057269836549501220408831549958118861857927860052096256432901428475200427984523685399506813680557470071561447488539582197848644905528242220046131736622915500791771619045690863496217447878636824816075151983345723129647600579015954927493878734084993358871388953098294296376815910954869829254663971664771430432803865783688330742579588855907943305305600748689986611434167690753366600634321228382520442945146879994815136769791891505637367273704666853822898781879414571130093765674410389754139983858860822327001229672753255513345853147951083267406199802715708576268051816972770576982510722373627177266972057532072464473780196444375132943412149086045230816870231674351871896451107886617255282981084780009637135890225414653195777940537327302546735488639064007385941746981081469814936327451203401004442941990369014479350449359826156920200278523469069267010186158456776045390221641924807332631553836015733019243821599770672003573317818111726737695910000799010039397211035925670433901822557438733822299466508160651968053796385132939231402429309650548173239151247430327577824827083620837957770821044802597630933448748705736751925617302567390060947999912131750980040310469848511935618259697022717854568385387538446959695029675700689888550449884264223926579218525845499197430144849441822683851539681563598434616912059064897104216031009065456763636072735617345139499013758393644150496358511685305834912782621117144070761057358892731045508842307659642071545478435242161675796008842956393830681976123267151462578693654050850339121642463680547564886490417258293881196632877575010098891059273292787202710038999018452025171914679083278536142390986612805207064152340713552969082994264721299766913366924188576680495116118808983174950840270555420165666279895536796791341085044447649160696609998229163571797539565996922754260201854526216049707997488989165076299517726066366372556361970712302852941609674908543539254017419956251290603610203455912551950452595296109263141176380918370411063832184632300707591114810008909491050447737129124438359097813495765284443683778158668348165807512165965618209198593293234982340328524886372633214992124124349522080093865882586079327154950037501191688825431300495044405447531508346089186963485462304814272036798041230856094727735148818726572839658112803023568856092556446535721243265957574467725159689070870820506920398896317326706841480524209075393541290779566724563356213552180951741052965562763361447759205834722889294187277416565696005829673714984403608280080504649259100489655018648644395878638112417705995138043564072248999398978994736447376611679984727287579727405305086256733401925818950392558987196424925465915104639371653366923744331183489281076926373970373293193088584126798897120452018246361065429869399555721787865243370270688000658167680963826801276846369585192615201678702974554897484172178988721737318466633387297324276586408158990610969464715549382782257110681053070436824875226864329424512601811118528835365552839223883555686031858446069759613451500700008616754403003397170611717033052457648831173007973582887797536842265642728839798775744070487934820511395421276722550979681119062442177379064113504032432656621327905560504220601090502886088974739754406594529666398967398253722586029382091991138909735609616547608946601165071609157846120716355088045049462841659939529606753969289672722367336844813449429813162025934672695275874777461453466027556246199056409039113880920441541328979448267847829725256722550622689666548831150517674879327465985722031952760869809312022146877141365333931106580687273058252415460628033114719160626543635507876583702020640794368373079068472421620358624431269895586021476619963395655331952927928664965057452083615670504317432350665855299060653017444329280906415481861962315792866735887798258250457449965678040684969518567424976809462155094990096375078942438687343141462393139426661270472555546598132072629829741511991366173018698796773957249666058339582815338649187750316404384499889158778211297433855777109228625278509605295969380710280238528188627091734816719967796704855121051601759387603539722899786005171206345630943112338448628665397915516416933432740385121425837176272014745701666884358901990448997391044101112817689503431175378132775973768560896319878782276297368611796046728474741595648352339238295989606498014085370933629245375784750553943385497404689600471403399387768822021602695044936382268630766620172285892301525964516484103442659255526800088556949516783343369021841022743209327312280110193698404011480563898100558544317265174617435306535275782511070331427047918166484993808579950396162692299976647131988528528556943296255572023792289286703312210335721698775071390677344752025180846539199869864307352913321618611293831465699967067937464841754131756448501568085915776787942274771539743047875790877757656551512513243886691279174669722638739534047220738765965468497285777168304909106095491219738215159701305015669971089666614234579453951822979694074703246556855749344109491189075582637307577987667356896262542733605751772271520688320209989298435450554112583651696402823960542011224314618904000306206141692636644911588568588998393611884182957848982846559484461279392380717530462347348879051385886462384364092724008146010310798720686329665535059631223906824459708740859771091655703135101995166997597117644668458830229215216090323276561631432289468765311113868237757208398012706119665657416053509272374392213599138575017443112071719205870290454134192051692424655926573805855481790766993346940308224884738353955232534320571420014629177530225268509423799855085905419745255800690259670468121041186255261405300504473327725121720615331482315033275754067953884308074573594702840170750736501955770325425733268898379901479321731991214026888482946432004406141780023666690109778085674688404506781186853420198847596017692134476485833762002372914952396990039173579828420117279374567509337614973023114784409832046702566356106050009299889796887064675960960352905001228901200875388208579825044988681453467836113294837435517134311077749515185643145776974194379938985325382257517766013388051050694721632847023663436338757713338182505626060349374249671626024959015268995023297259721695355340486086266705393658710105626622269314813836236499958394843287519494137913598308497012295223811640815329583000227969649669857119273746116864206000660044823633772293635460868589714518496860560909389060318945592246480300103256441914835324048420833026955524800515895983579482625257896123139359060599442178120693088197593396492270035272544896431993168048161149179228508764191184695237722622395334921608693412840101375121796087516965504350191490799137135444093827730693660934929019545930038760386442915503586073679267779000696296399114160818367321967994088191990648127984510532950804392218037204320669527182254018222233805019046511780135060451617252671859124075836329004265406906766989649413414905703223560962946978766492531432043897414936380112708291295174918310129894166211942075794406973036143589075885787366926550617963182371732798337398547999210359350178241413737911135573015199461558935211639914709936573625263856454944445440665157985978110282710295898097177255667028044292362430281170909678150394300047908954723163686390246363909809386843915222037170412071296001111333553881949397635363345540542557486284881980367644487757945159542460677951335451827185179810518914572109956674819054803666669292708660792077476350326868674385804235500144682414845861739406653916381315664165557983405816301874245965352458246943811876452079266803461444102993792757167570348540943178164903423870962094843981288139695143816764666563522212005760122302611390392457719896336259693496774397138003287817551718808256399603860889405159739438103560322596886330504169904398919769610523221546167352714752741799536234737692085924683517914740566863103421656710588138434355973343994870399485069020599797253058784356110781292856232462642806397872222123565188074325635648764275455107838614740482270066841276840860526468951672887008316646537860331951130156157177893434425476641680107510671871994425487326347634775363559793786838942063617609525655472794942548314446427584200295389740619423763244239733083526371277082259182318023045498285866991596934298406751287831521993674407872222112393874529759935751258231192563827887502199011598052046958002359306067291372779430030187001815297183826996131726020267932268712194013397813778167342801808764992169539307794742736590557175546915005650374448048335122422706431325626679172361106808178110754622805926804454106380726385435494806006032845408350082338390898407069334042266250434694208608671366221678571781933092910492439614674031420129768111298847068456510010254590604388815491410196169612140326306448570460690479344653395318122036666643566884146222468956256636549909463466975877548289773580982807567815426160456118663782910070352876884922888806850137379079739605713164760768618218926430513425722686175931041293588588880148611713169418138186408360027342680101233538334609231625445168702721928193722913612447077464166617413604521010574358190260327771207210169214396594094907856118645341370617804917893528665038958534801999710415634419621855111937374289871530763020106779063259378816862755661106286967209892327817188758481315075385631413919580554741846218659877033344368220189056934591577070794473387619879081973590087574441869205347509503174734736995852093809802723158095347445148885199265641344384480728648077627920413124612247353579814133680991577298406554538532487638357606822157170441347624706364005495439735356681968334988359638512225454178179173709619748472105840677688711510589104182207669063363391144750570886301761585535902814196510031986743751723621801358120712778077406646036381136345077593001478384539826444624495029381973984739931953237646472029972919924283275728688504941542654432968555413786990139105663598175813703896852705452179470419136874714534774793256819933150423439523902183694658529397517624031929692849730425320352544346135650422431886482715255172068769866309530276217747719203731424384630770929796444444135703671970114654187482795627326033969528345541173314267307114380510109690947659314747393494757826722504527947944841161791395243914768377831344387496934847511984531300088810312143952854425380839503095125837500220172074022532760058297762441962795647664704172959544040137092148801341805601480895853067542438780367137384608626455509294770656387085778181806828681451964450390875557325765135916205272320573303476146572060054717583721714049902293920066607504774335276171994645122970594472173735997255265218554104566287013773363539068860037696721635348041115037155528902559348529433327863971020731316230978405324482483192289405512755341385200027353559676178682793678909604686950495935506621356872227876666900282071360417610682963209964831430426961170447217274627123195955608018151539685966455830455957411910059105067740977785273998783555363947844058317168431915418314384373600294192577385927553093551944199319470841895561961274954077354124722552500768203899990997451535982451670474120029542197765535820700468200139785785558575466723530653298761581027909667315684466170410707805149221105561448226871410416749324557126799694915505344452341024961990035136033991965104246921813070453245577308467356950132260046916715754043923035748851754981498188918595400400359553172303383241491123054535425486029980326672541890410076161020117693420519546892352657494502893496149037894946343427872785698658478196630125644779304715427163275674081355692857099627791120133419918470144906045573261963165020208645955393965528820135305942699010089936495297603439808478856706562016254996431535728716510849008580356815444890138555638052538204522626744090021559358332579412081284767342654722600750988704755366716264868061417982402613133843176818751928903801766699786894465568173257707092443821530190774296046130463815286242465473941164012524326905738849050202755426428350782033698964755649521113290792299295477059557863853146194434314597236277999535420546675552723034869378001729405992774166417098957127883718144570662495174469802708514540479437177582726709146228212313910710303345504729814938829684588543944985791788932043099264531129262164740109161017810054216684384737200982697719782319220088010229238308334084173536963117798564615208315830663099844362682428379185333532347830884468085420691962736383504094556921250521997287518077923990429582302786054933758188078990539958846658848247414334322504934302919416841953585208397461321342409986109828315263530240599727286753592096434523315922104524685248518511323702305887701967167593996262522383264701308925255562658234916702766961406133651253452314455873742795580098351046984488441836579596350977971873455208106140727375559401977398915083348866812141472001711717101619732260900555331270634250937789527480828897548226333990726306283429427790052189859612988300934535750439167889982430932846944204731257383403145770752521175038294664515016552319184401020505236814446539232648400302759737816322770145782964587321946249223216183434778331104324133793531298459292786557789723690196095840814486978011119775641069633070652628772962461351205128791223990635942648505384291988495432653070080524071235593711424933105122506521294187921046635220290295147580613747726880800820116699070493368140964919450978107128910495585350157980724734827332815452342751493245881280502546004358012655047599585238378402789427463092667863571553607166444480505180306629375484941668134598337413978193105179638660933515775067831790383408516483186098506727866202288264517046592479512757058868167436740482038130338282745080103181491821336379808596538021778396342284248671104766071027324206130850666810806039985626420018375490001741339692851738266662179460972922293816729258598859737949550226195787676451134444390596828617616447453197950375533118695415517448036742668684342778205589653908571228500774081159301278853050840405194131393321179858320341008790459420401611259293936105154746305415884100505607059705638589589621400941132349837856282279426290132022282748824411680940097705982727942670415355632065285784222576558907184952949362215127404359990776478175676085609424707559570611386916954386400684574241507097847658323535608907525854440624861700962317015876299968212542474293652029486890824119943558783386713747031731004378437426630026673455561148991378415515592644729945407524941379507633511846704713328219952046709666190983142595810516896847123040997997677711778825253799106577278018084918254946356897265557067023786440771469160934668338295817380357863141748959526349096094922660136385650261466281521731163202150086089901779461736165525307095793373854957058219630155280300653721489304262622950315038528146163120152725133049413416502220892901151336405601975432944667150263452212689385750578569476929000918198283149956786904693610880581967188418499418167898945314895584252570349857402779959526777007219863548373397633751861498436250383373356053185193612394020501564041801928361858583285295241944258137235844368055367766453580035823356301637735746570912996110899567489268319863469755696979339693718514033332395757697000181193937699947349052327925677900615701517914484800794425549267328843202058353041109012555674073586735001674317571244644231982854922433854689547995205813747022292791990607148702358674649559850778029991772360620330488494346641853399703734474043155094892448226684160754461961366573119813529062358401985329135697965242869803880183661601203001176533122553722490539605118772367378185550482243069294193044966513764243346411605975827840902023630038603512855187490875798590007317899778822586708107160230635458238189381721953575664467263147147651359655048662435352276342952964693498079963811290862736659884623329858646471581031717900386349678078243890986324985042430094673606343178344034820886502542025803550330908531953250818310748409667593468892363210277218293271096587448645431095739079954856469218373715277824639172866898709611050669057006395610326163695466878466575422491128486836556248789753437600048719798567305915409514588691488974553585920859727052070938721298638037059052260745409060301020333054837223965129097686294448176507409665633097320006871830318031413498178258070548094789891571104816983358379188215092481331594039878903430450205639129365312282733224394272963558105996859320096914142591548777483797112607863007781180775973503570734955472544736307353197930106526901137484503938808148328898022003287189142092497730974412035200782596312189731035844846334286293899992860732800494702604459655019729622244498648451301069738928857141236760868419859982649618398286639113802090185659765192454878302623561668749204271704643162592562261451272956814526657858316123688220174693961378040260993161277783491125886495799393376533976107375333866233570176029761587995823994898901643031810158205297839366204722740797033330958173684442751003662757008604146893999194282456955329046809373200086809449342718488103573339245421835805716346588013763736314755140865378548970396887551123232444249519613800149326850937995128494908026182416649376607853611733029191387900091944850119145457691216925905172447478476853123226145470267717646989902222321288842859660452857970513614732897478806286202389551616221493244924689325477863011786505300632315188166160245759629290878683603361946085291373938054968774404207092668732363948058222511575497714455355873562348753451131464766557464971904876002411323396798428126871201112190375481790891691264569293205388874062314882633522090266688970047395537474149051792633895381527799764768880277166687518979766537990817815125566055023174340627717724685783987248656084102127048237227897243042225054641713823070405948957723971056140136778158182749781406143266067273610948508556493434916876447870504085360299094337330708214700137866322416240540847630756191667663491396942898288232799172345881626076661993452361889879306409918245766455876580367140433600867112817880218562171618723243511092942864483597718064012313381563533898798540931888896542556400374118224864632085382422436250109417432618767373325984213487150409318582115306868398589902584712590707888123529822138502063767938258820088370810739881454748599428869148505508504948938521410981189558087460043333011293278799073378998491238283240089938232773340997810052773871219033256634223357488785682472196474936417814546041373048345930991972477327074706682426998048302635335411756495486254526255741313749798878921731159548194788632588265482894056335779469000600558975019475513646202276742626674243682204804777112976372134383431230980029144674860792759929276012987916754716914173014412854430913906960633374486714195192724600521393853312092916087243545007129947527392521134187638394362740805267443834747304839224497854920280171003792140163247876891608222841733698636816337837648884421408859877268876357697831209729910954351918221070485278694494095651942619830663584942082399506000281322610292602434322346104958544910296227877372838403489716627679387581850671408546875919986512115913143422670266686207201277875794796026465930168631382567118509688727384127018932113796409848668093722314251958056475532115203499450502844981508080896932816232973396440726067662125248496707767916830044531859805965466049640472710379820611718604778097521175919231757137960670149147976922099920766614594426936267558962924022186103166571429400986193890526872365836693079033654496298295547244006852424928590137533105330119909026860967415029809101937016588696113653718006133236738541298299524020889166307247050575957553191603376054347497517704975313331995170929431898955472011076613655147323849776940395654723052033190498437865508799302058559923969847235165445149624182500822048129061374102578905394325982130430396844408433571692769470999392634521682868455954029668415786447458930200594050278435009138294405676438548320071423166793947023479180466282976027451273017116683646217768373637658845833571035652754452524260631295563621942354982775902509054491544040244471514434323372183056745758578328893483574318355778345052478941833254532014797362707950889400900458461824438950966963513046290636485088640317569383953335961600740438537956771412229529179296168747364805895664263957215161871577329695592341259398924976069292560311213100600539936446416655758527260395627815337220673018491748581281316790986929122055692114246746554889872011983753644645952357630276188478203633524373889156590215233778124024761399559316537990679792153895471737915898258189335528059181801245453960355609934898984896241411528254652195911732059973611879099746304104321246217986389713850886345109563779782827391108218872499936260694901683585950095803584886538724547462822007488347781610218506236983747204823755175471658817908381454321486647722198274311045438775691221927797695376754399251311055930935340214950292523166065446903578352428681911205676870804247753427657285700298287212831310886490183723153846655734222899678769644396360329470591918078763791811571345643519783640673632704719474971543716574782817609355937717882100928294556324252889201548574943979011020885443641560460113275880216742409995021502677151339248789723301095442834611226491067765496721971127279839301184512359288283133147519308443521310599753452297008470405817383803696860743041915766823420749473097474949393212065103627473010030724745824425946653295535142313575000149622833053190358562617579570825687022246060281566098921494124697057227192089454458958052828767335867887039870678248599003176581757572429143238986646050110813372851801217962020499835928977279942881273528259662075397597535154469129725583142920456694463411584021664047934878005314278922461009392062204156308698942102162662653311465470421900225677768668598072314951211399902015237758948740237550795254501674781917113644476573757904681506207137774556324288782926155932397541756419615142181056579693054716760013741088861657301031265942219621667668405275252040383535498379971381579276150333000535125176349254512606288022895491049212664547946240652651294180293467218305668039134313019611263443919889745267318315800182630569937624442715405125269807643521345518002801900376533519622491849363355209887410462895711340050352361102255700841236756041280263983653279799563048769593739601989340457327409009626259612195275950819067604782219833921054185250211058189671376992927853831770289754445496804866306472456642445538463703913022053423668226739135384792813475629803928284448461832606330805365026725191452717470828604944513949306438268161278106240871620916186916012366986259545230962583663833089713333536336130918475594110478480625455502058499453813456396976762446884426206226611650239057374699665712696489565878010163785812703886988941886878645109259672836758974878838876943701534755559694580336756799578841404741116380576433988287940965100134247820920857219016880336776625027955736575544674692660107195718633673967419900624076831775428020904572033144221161318346681142501857247355464802302383887912279890400471488465922755629689708501066147508967326343432021942210931904133974511684718383450780904907108695795545630597090950138664090160880046464808382802492992900608194912949775620355002874875085611430750007005441482896299177741825357129638193896510287928552952330222212240601238613911220946289663685629887106685077471659495781745676157877013776745453808036361442940079577218786676989476561688306064739238136501582039942192179000144848579282411119061280960165329039279890179308081878741387545565301494469923977783972119023585975669034196997177747810918169963392988841992530186375538939803281260901204098136027041069251001914073895683623053476921882436047654213017803161703593452792886422165531486634442407090895128936401434611712561955334105826636230863765182025977421346295007916198927682087879833547565722030543671010865081385757780372386971219928512485591101370266213521866122053590961873317198802387194702093774133185646782667602839689949194673697189331886976215283045425838980345096404601150326248192008315505841339692099293546025289654173300337170444611942146244761568110204197985576709945988018182370967273725993552258824259296082409745181897989129646812209506166084390943416661440496537428126851580651722809261860955305882076541192468366510514408581557992437956111276764571917418862507570860311769143717934082080522964035437970377376817200417996902099556930895122305628915548599152838963816012205164607186639857558682804212294071014446798417181974012607113633405805115441893638732193433061560816254320045483419563433339585223245733846276789108609073387600134336119411055418604990291608154458456826790073923938726862472105468834683832295205274158912389303223073230708769593917808446717147597375141014094132158335048677665332675115059960355616590459376051057012221802760737832013778695115628063088137433006235324262978705446014482910592513937648422323583764300505322918975760571703895727106079611023474721048055812422284874198551538149637053036242114213852381906433080597961609338998394487134434254122845366282793342486953174904461057504633181819973827031167565693146094683068717310578638713896161403863273361730076976895926710507687008473720904859168122382452108449282823769931880451206939133663304886779671008321238659239111638958689040274061595972895716750352813348904365655121478951091085153056890336948039453587795728523294957108575831738495121912546257156896777930673964057067653335955347091571324592892689892833380423263263208155508225027530989981043774176980352915358572237967903334321698946588946290753883135619116041098318806709050252414206094411745420141535731053484806287467790386523636139844402651336868448916932246975904173524763548594562575587860147157152808022897123106963794385558173200528616457522822235730648102360938663332708874766953924345438011886792233627272188920574612954060793253752114117245668712002598011410715981229651687739810235382392521417981206973191761823873730572852134671879840421004293676071448816057422820430667877047818591817142488503920919366670848166335069611417591657396408252598138843255655038539016198253611369841246891398109827874602710137092479151641120513591318225000958143056713256576450560002252076223193971304108132569374346480350684513578672365094053192636346478578205483926979458853593665315123236969375903775561689907354121787937676730816164884197412960285413439659943218540739249352827491716805254850179440309036205066305785754128146060727326482188933509874381648690498459509356490334872172588384310456453790169073033734924926729910702831101481826718368953643952456746902224698950633457123945078160903205825711416002988176188906073826625218554212852289599635352397206171019985089903805248740034081502633008184060066082860138185526295230170547755963359343847772994319056684901191084502468793681159963542075751150034430293829351388749063597538654174588336762769513512444909989671024490766642158170816950677661851459970994150718287031105176544413856646044764482062617455866563781026386423432055121075351766184938255066434865670210026688515155940491316522331416615127189435722137971809900622772627142710303814987238683261542893734415870310707410486085490282844271163343833677666956258675866149574155064515677861191183072442674076517926906540960064442655459006665420549600491114391797713327351455049107433260721562224274235792779775192524383153914956865045388503608607817481935786526318224223872136772177407395056707599177313264669282427622297305952970524961457845034367354979275278575103279118690553447045334772152554369621278161858239801353294196832791495698897460675943427631443220140558127616946185082908359746779085712728041684010160808482088499736396244080082121253456403543878747082546762769555623173217509782868037716053719133499284010234804181958982801644994443053048194077831504214688377715523945614360525669108656461049488830887184495090178052881617004853807401497925773662572562563922924777954492316779130911148942007391226773189844056652875241468739074526065257764310765053798950309462337745764782947357188050241326570167574984575445868941967020854649878606176792710247980359677924048560932634927155047435568462567764440996665462951356599033948978059791249234507722806613062209422178890967595449979386886875656507180139593425489141278213737571129932353784227666163673563566999775294974998690889032775036347415513850562722880965221564239462097095870922380144416144892315629048384724273082572896368580317263108649779505738966794704460139184313628912277393244510653276425245223647210453665232380376351001174861649736259962524414923839107837565380644445912783289114000852464161411466696338228950981437143813525761024571151693503788820415452788554704763910175436362416359594462277045052753052017542366195590928664223119286148993018850691357536251829156242776703308032862310553608780184420569466705763705912315793469793108296681232957552230547384374306080886018170257028326118581613375809955594190827205884069150781719199424588050276876964001432064897866578773588688949415117355083560469852056691179360342222340566623509888653974626314918394982090956716041592398882731063977657274449582266983293170301973405417758523093192851453929606302643510178947740410321533498476628124471737801036244818743705042196175251470074958492290081558362644776486993382533532193521470359852017533113424837441587806793171491672650567954694206622186561519932970971547620453468385948564145067947344187121010941449893788612622009005070233777642398182558443515063335813052356065770429514691303294897789712373285677973877838595251187173288676940456500424846379889155919803495388530690136386755773686985392364360060866234666584467351031734367772407913110030350855146527537935442331643906871857158503248541430160269133230204945287333123068030114279535468230191447710569735509829785921051095229465827801951298967773929939701678228167786035891745619742342247553047961432428929017497573886060828593177145788565742695369877484047657176941594864215083982650653170623214398861349533938221450310836609527586829325286569537918505717074181354136802463207223508805959493945162550037999867741045712680773801483229154583530407996948783697369002847018185387160233892591911660902321446505533782685940070085393892276168932011667256217365439793872747770793843965619872930003228720003244377707992227390976097775073666157228646093271278913365511187353522915617547605776116892130051082486169877001797475234778769193270097796080070614298080737991611797166684555266596365089478548335199410213022176657862012625164637182805542304636043597372899123545306044640212410883192454264195308712113760624661808109274502166160507134197081487055764699820915131659579079253937348805263137404692996808467460141362789518549777709543045955851931851985887267692170709269130485005910901133349835928006994919028562681366734250881131557419213016193002798344497707483716007318256563730778418717088555386885362789720354962169055978667433929563881486594886472477536827885937225952876315984187752210531567567250737800549123729269973637454987339099404886426523227317299042682747784650545896481026025347020829899350251158971606070292817067786713054671419359781398756157161064094101472001133245288378476850914623155591177202269573377558913710521408273440027120333625039552358034328674741546353732408689103331333422017774810674440266480396658809077063814155446563293312402002022670292420481993076607595529291289523050645987745279382508876492464621192895709782800593732976390146581877376476048741583714823077159138890506827561002308541199724146048646314610315912732746844931118545862066999484127798309131273188782252699740253265018352975964322205361111095450719209701612968567359940864307334706309761435876707951754171543550189295759427082256512827398419576318657026157809072857566541292918591821457371831043001710378615426827891457006823165536128288440595820722103733096102660057728753919234707107770774622594742898787438490360693936788408652606639628390888551384895261152123467624277895128645679326646675254520791091481720773663875697643257256764221495118165880216887772007808985211006671599003590169365023555932466084022983285887728533534393539013972517876828245294807013097970881318318563798901785590936613304249473986853405740392599822061992208502887464712270288578321561885618709548636750224281863795474693338605840590244139930455767829504731959712051472516952684179053765257963007254358694415563121688966662356924514555301942579988407144242379776336899150555155328603840620103135852681939926766361146342954044870793208619469398302433386635659165132438250743168333277681696312189891344097735182084774511598220504371879122153325376988622534425288085512766659271363456543032770151036648677691651181051165028867009414458813714943154070360835625213648481029503755927788466977810950374723674555592810865755693688187425576342277512883740066084384576898266349289760199973099432509329642946679434670432221813750954756098714898572517147450610024899216629199357093875086199134090910094245762680398490191705156122951134476239835134834198384278055863279965301621050901933549860365246650987934881919121270330041994337516064519199249402320058413756126247564542030824994719591312672271620169427931134117283021442909896690906431612865257383841427613014822336247620954335256693073409088344630923681991107961634518383402181715515356362633471093532549593090762726652877421757244211881262293564356991960657327038920020885499109793578480294640442955379473233884728781754408804481305200841099473639589579178677771006949576555621062055854663220611760470497959123324565610463225251000894495300918961692114116786964355052870036325132852799519509965652388600506938989650319213464525053395478222997237816193067440285973217810147361018086419240171553339181067332317692617328426462856518894523688003166372631873977259261724546607829670198278272740669030787174962375692163785073916767489344725958728528948118479615720536198313621415156615599715654196740520940336328247560312001267936868995826413624090339954824325135042142931203924019862530407374882241700318422113209708350191945119986274296540961817323124583300978638970049153030678229905065793660409942285526075556130859734898042749208605378208744435002226079849012910930574877778108225296681151817855257208800639638908701267515144229843359076688965391230384141512965825502920923345490995585469299199398823970504090667410156697924773768532312732651080961553560608365880292646083015386922500434019505184923120200765555762554046262569819032167172740525017546337967831361398594186247352179581561250839624656509210991106956185853207431697130719264698045507759482384352905519572117191849862019088273867836347806444842087001948193321172452956029210681668191698900303183918667190108686593459750766555667888812717755740003000377516435495380037883361959761310281141129134136380225871011359321502487192456732049647448185447390120132430193928864851849550312764460466496908547937853363015716449767986555166555422715160535466086304847782502565452827384971460436334040272240765893461175315414976281508277207738405312972805482790558577563881662803962489785691874335920233441760689977640757152940454327360226987813498070654680931738039912728834165054931374936136106957263699648306257053935265079967653030714689358646042182310488174931698755711919053723495603038333022593439688342912622701272297853558188432093685197178733784677144270895905366304893373726863515931280970338666805660226890030838188960394835047256382032304401110683642734518401349090434849928809492584106986837895071233725328786020999782710198656445244098107499222812286471286770223032219006997064156500521599415701396423075003913899697216005122485630772849936511462442220993266309352735067300478848238631529483696030266900438503127049156531331430106735019644329999014927615947638139722895728691529575524119376985184709973450080834011484472849081932132362257590221256619026244756862444652776611747198948244717575760488141438205283002869594344329856126990867587709095600072924460014982436352518479157619793001462757074000354948417336723936445583897726684639484536080902787467328625350740205929428608755204106281904382356458835441395137320715593614908488719938801814684793378393532557884992535224804641436997634077311653877552547598110389098375105764548924593224608340840232751571418559530071084839912437011538733888256091546640074104387594866278555092516935653754176892259063575060759508773455915441871668657210108058912908793099131990244183858399281435577288728443637770775942613344317958667124552937625121986272139617547283218834760107574473756524408371615618252928822196820415139397764661634779711308302697438948672149076579000820227796257793657667143082301353215551704231801858126813307017661795678882388963131106422666721628242362220977221427641641588599600030885887906368290179922787438292129835148781667299384561843997129964629270960784014144924798869751921006853863470789124901138462740123682197495794768001648949745601853774253211309515727715135467292322794796096772203081203927180939257942494217849248975284438145268282589539736505477327291049958524219715359564685202848279719997916075792832015098467449607425493850382678435582191099983696921193507686371188552127916076443323538316454298771548058720838638083330039088564167537468073117126130412424561023922354439036960414357862103538510500240783514642334730644935469792600727536932325501538543592816760149121641191429056992628828230725821153460787681488751080989822182408494731501746153434064280798277262061637529776798936104131183132205365272305171149012325290569453148707891067884727008158921103008980408426270224394668043046075949680517600290698119474005028943677048333291684765590337731362251519945882077032761903505975286592854329417517008903045593880942150295640281750580490287513075984646964925525429337801420787504803287269398454352801809985494174499505753719242647980475001407323568341321472386417961995776326780236122982455211247720229061601369814857097996217076129679378796717303978737807370065925753710565450135967201302892465679489276326583348518015383420490272483660644224424216984281798586475733246236086602473255425161250385292499215048096895443256566200968940287606905955603077347476326210587994724147978237830375867283033441533322050090559151467797182043906941040592356257860030838656704584503292668113635964580257397653762478412163516487747177694794734704685960715252945850931179838920815007559389092891013056898892041541196783038202452990566265693589551575604856409823486814857311664283128199408787640567578304679989434431001471623652268562812058311990197112794237714199615024953701881530006007468586412854561070334231464373448245274330387547334900695642420428783766438882951863797956919204393150354627019281214356636553740232076452614488343283404862588664936522295745352200040234769952413975019787825638504392249282963357466824426538686505505213967813447396024818100336299405996930231850829611357904235869650868434602175819065722504258168601622156543221083785284470633983602517640940183452968559393515846645479208036658990598324088534118173514958942034114668206501247973370587422431333849337566782082601329072397646873753008480240777397971879893907941133996507908169633919090187919534457161928821855481647658929343163227916477374398184557133460045401309553714364292127986327956596237699176469438590216840750839009013197169346544611483061946257598547855442773152458398947928091191404554331188604363537542488686385210514850801722882333554486965187933576996534568001177207224955392743388403335238914365191501400493359881594439435666921820192711909358923205571531426847259803469258668865749025670356633799872242690780944929411019539653471886263983009466284891646252024284585056575865585112080668035866117846976293529832591217944847986153607572654127580959119569237337069072744737632441403692548653508793591209010588316576893324052266512504062170213986149788206368671105488594259914052125919271285578813982565257908774400248684571815717760520464048535991614330500816292041499551475472464343547688642780411216981281788452685183464772114638826922903031556027501988296190085247152392803541622401115926430365551117234660863804341813279351042815326227303159281676428006617349752331823892707565057455361092317336533083872525372741033546695479669462597803879501471260205782005764725721164894892571769342265927494762879091202912053571475948929805231752879645992450326841414876333130635644737554074380618743201416845693924526873179091317781670166684154226473543381968340500890888016934660886580233219585404823856101818374716750303203851351247600039009878055825866673686005649042326046566363110365047614397252152214052524769681151777669478036423258552573171581863593501394719451611039674599976280767468537104005531497517855046459067163680042329827737795860394138014612894450204766172607803182197379858132229040008373896246678208860848573780583710463880476411637670249829757495821241615354767138827390090529674431416622630920383614508311454313585580389397504701985038662151229736298242783519410933045959405824802519037672921915723288867227638626099898414230414067381763468634503319344360441102934215816077720966226467530179848886151074445777383872288780897876404094857186117078401639074613996836624986363505534205195470162979470366460941348816009237140797602119100896753853156109822760024204126622285411391392412423389966555006764579901694744771447985221967241398596760073930918249104153894322353493608373358361191081508409364010283538016558812182603135166540050594232325646689301626114112079076514135694086724460924805674994182177968155403664145601999476459375064198190668807731688362377033202484095198128348169735775156290713030734124128360143397640119408176048369739144073153338113204683306022910256496533308424885114152232607491627952225257863757930782273053288445793243370505167221563666180858680041590670829454213905726459261466871887805178129003268180157497082632208239444628441794264538599010331216856199276963474949132314150438298565629438404132870385055907610706076269788505859264916340188705364899059416727295265918322077500242696825425805340441730692245963229716099134697236050994060534456200079083554764819328582250823915666619518086351243605648929652580044436224157895035554826737063370380406182417231268308877377460934865856220978685399377410394388766183703861771144134214304275793831384427308836430329576936623418923434807890873805138706389394236793790536862615675190323667281055566501560456515902323920196286093289525960707076494476689590891367982379054953960014851380030279678463831092180021977296774376501749700281349634909153635808699049449272222875940872984492321313068285509064844466439737931809106070746550896055682488152417761931837437314147197003421596034535712723260692690426262899352244128034489004893429914487974903325256768603504244530994909011199756266800788369372279080452180158186054579051128845223725388518574141570563867149154720351588635299232885772381376666259949345283218883095625002748917811573250757230093582126234613246887459361611357127642517107886860295086011094012029165215020407979578416129334202630513768896568316831048842301841176388906432488512027845164198747410744674984708332867951105570966360049215137723872480453477110284951013193284931478010899847088184077951552604192630849985654946750117857786616330191146057809498054942165104643835509139441276718244753403429916746986835438742277614752975317042838043688901951044591013703234905512817236229640403727763374524299555546412740827033325399038132754374899915283482748027812807977320327572497433271982322590734262726003207789261186998290005341361755374948610328252269586408106864161005662774366162838890784913016390882278180572329926539329703515564625023044471206948578980449804537667438224716247205759737302865556450680208670591845606796678710419474545484640897100268367784826279814449125294705179476070238220538547426191281553842989978977101670409187450348945980164447125606438747788146748998191953591762887071594000311023647495752787794200071246010063860857390671644406763991806868848665439985922266183942028289601561156757547949364114682178382708876410319063526897202372241847048162322880655952202897234774404632420761779497441821191044032334224523093002625013456542145771332793532146844069435077298275248186596309610889639135180499654645944457389154719142069831541816411889986095591506699796253033363465565175146191495221621002270506033144703778996391081092937944832984241474879309841777160897672114689593986093123863191478216275700120615258305512098767894635638721205033883764824668035256694939998051616411182456147796844332437962478488751449324230084642742652888153590433667221399567365410479793257067391158395171874169155456640925160896884495691262326764679627636964211856449187260868526807659508676812974259132055349993871751292366538897174983755777192242978861884038200480752922606904523799524185895033026507104414083847759105187957752103143176235479677102830881021998102523624327805170597094401292654295753647386963753693088449509236291152492538999874223435825417598164501101735811259012280234555317477516620896847199726766774711558361860946734872486453496482302721863298049291597148184970627257593999250973948737394142768992068773196415649661457152721831929757564407442318040001122019055730288782261189832363202071920823242117569333129430210820737044976253001400322908736038621921124083678424703355873349898613142534475522998687589827666790997815236258992225781421538835836220388697776840415415391062415359500961290159521781927037707514764032090185262885183274798645610065110189927699369787875947845072074121474091792200615612627243663332125076256888475956185376639342353139298495251580023541424997698150283171993373898894599881015284863078455357035055030692085579465275581164229877124149511286521415412068587733198857056952916421559599184876150482692385020123483580530089215474002973126116299418072507432876480597465915033189049170805991100984027795834054008630815265927571711574867905437553151355885268115921620792858697705352315269280625483291311288675016715254649583977013011330284549264539488555592495355533792027534467599032721217294345606350048316429832669391780048663410337909213534939210616285460576621704365993505993770586214210956846221445782908790423371549438155712206380737676841827061991753755526205869380821501188300260924878960224280633096104789828414577579377425661161733535233448397685319578629849810901466979617865412749973547169147396860901582667871976217302411443245094673895356091102465077561693151355643566458038111025941984728349696835143618017631650725523976607378059937246594187127618225053475986849220934232958805670563535667060359921329027675904076806690447694874091708266743262500487397850108545316750515414987527147476324213561697636328889437855812583843976628901702115721807448600906318801714536165918866036479339787505911425979228556237927969397527385597149336864821757689218155006416732849431470440028662183563159741847051490269499654376929910232876813778390627577839103847596836738175010088121400596222295581396947112171714106528636045296811525498990614066470077877143061936203661217693064582754876517325805745325957384967380715232398133827847842219492752323693549694022379318076779122516403676648212602205470763554575548255693621549031213804162360357934002544332024489852539028906058923365737960066199638755000658987813964035435143712201999864292894045115665113707144392292765259350755772988966755176002478709284440924327460635220783840184704443717572239915653238477515241087823689248883712668807465025730882257352001339657879054530325888271468169260728815372680930919661915855705369929100420194298467348688027870797516354790337300374103976851455473299768087299255458859398233889343931044609113337453469021353368968600467294418659397342898108411958152930888425097366161875392230253294466239966360971759114333789668658434994394731902035041770280373842115133511311937554551631153395642144370549066440213897641894987063014738824004860507439778094870276010044214307854081036195697656971317577396528981368563167452961444118583835297814417346684428786347024409549195099229709024254275715122790075637674258446023360559215183903220361578701224254305848137994465813654977994744545325630203111801342334456451303576239209247171783751368172222663471070710577185102208935029131074936624201006244107773435631336761374201676971278371619570466654985993907274032744911085524770755165238904923459960862286999379028591891778355946798071885555659139633198773190914928992151484008866657177560495755543039335063270357303812805401755791281941018328931857377678990222878446389139139769517513328641217275362153414423489995359991641662336576068366601178533886461509033058000412843947993909899550792106397262927686667691175838476796606838857113590367561463907985377999510739232581583332036591795522614048551148030134508606668513360501792438921442867676022912477626553412021012016704749857989824422938654495056502264523547003621188305949673877943975993223966199386587660989653327852908574874214395072068652058711244783118128202805839919143647279965103308009001098648559226533567487510277780636104615272851416559066246484961678152169432965265646282228067723812544633854552931393462796479927959318836874053154194998954182107365936416093110053123283686276851873032610606557005087087252160086933174644488900865457490362957441757216392184019509168822714028578418552944942652989784285206281020563803134289342099811104185459346735151618558982473402334916234806488512688089045170540886075177013060912508642593243192535444446788473799090753247038648433549311299958133146693368502262238673156310197659286152154072246598744150748211212909083435124697443537737536388565548669801539386461361536486678059909290065189619607554398769806756481789368924256294612422053033028622664823039145939825569571019032044016124980836737165202138849775776059465123171921943373076128523570963760702858868371920362798115487649857642187949754340335734740414201495701785883717147704930090504111547114950299114590797484089424403091200814260923001238290415356351950777023270341624946636085363702538786284671415255747034894818667417184996513026657595412007273220545737356609613721524290022880956127312658658315861707113573270078207694189404452056914027330401730143870285327271056075207284579542963292089116921283878364233763786435865952476432305818305772104932020282826904907841640208451128590026724597603919917610596159858085619445299668442495368195533605067201813153745846802287294218541075431497526169545059773539953077258714774374579230943357101705740583790572757230964842248487033397488954598686204983036474705126967170399831446684445975537395035743347616416484769420757231531732219312613786905805742150103609640431164310301252225294423780882814301173813403933436619751128032507982518119629833338449223160921936143266220126318823608546420255739738786715011060992244789996894166154228025598179600826173572163278085141249477998134108163514280185592464680822743718360880024771604508237417019416566630890989088657476086793652101247711211601362192160313829360252133230382614575224919348190927062660470621742438591959261866124629259553480252202562992055952278035237431053897637788137508239363649471987449198179545480358486700698365301152298897457318903863049753585716680881874943788274268507327724197590656032467571703601219475664848356542585788402268820691513488254526852750142572198467706393786140144534170221482960503930779234777071721885019882959007192361915487292414829448000872241430852562203344747629739850007653073762690988191308357767350668073413275513157758316580056827002099503507110952606203366447395520231331261228223624754341497970278024606947014692394162139377400333490596836129577210120334657937111679672914600002370757174295204984653096953758449220798970909514732677091703868384681042405926560166253873065477591217428724042459393749858148583124540690384720368116124089163424911651742805164939125109543146911698595539827457554156126354153605472198896704364967216995898420292170754633170620751346780016449189756571176766627141291393017721115180242676371411504609680262928129906228321570702556409504557195982737146242910253521905197723023975383485200723281763293532563475796412123642595607829533202504328016097810972739505104834997951251576782372323311793196740305872519394296210049345826161855159854530297920695388911841982995886248086513108649593840378699705836223478222859967797152821056239344729278480637542990404925608646858468408024740896381879113841786472440011226006666088664779100680066214778638226732854406317804511257290345467707961062635828937619907483765213005593268219193604373384492892059116310640005148823489789516594424418574733738588972366961387115402291340260880955074387216605469786160571535475422890144366145927072203654755235243976140692449329564542197599436473038198196240280079786670589762710698464310761982427782068920238866341947847329059025465858139650600767724567110973689045131976927985112231214077552857404986349239537024597733437852673463779053595378652393247630326413020651874213315468904196535897962600175389087371021029670437425927393215389445752990653427278137662561485445100430388709808845437502588773491475800493504794006961249663425626969259656772729776939292114267569571062094850812357159928958485514805271905793963178067010392840308545146770526001558989963643672595355565037464890611898805681111163598145424681475269188322851424990231681863405094073823628804412683297818701430296893575525829924648845198719447650802857638618092091752819969000923683447269380843480492114668109005734326402999438931833762875125784437275252109786733848078179131470739590318279628148294263231335891633477665166698354847563249509884937336149141976415196938205756422485881093209181653968421946071327704908352623622132132893708223082067187431720879993725862285473800699697164558313306224571447601168063872845607398456876843174610947461250069408683256933845708927179831853630461250421519117775794002387565874162153884512279803874666588323679454943727423438748983530713925795301390501711673608958544740889330061487013363693382727707238144174562323145318004289763727736842189423403641842178846809747859170098429057318246609789494275154718731394451987797426504657842519741271513823048538349777732954694627682327044820234292625766621625142638635734443344685258982442707689681025331255131473382582980982332960500528717093797673199964521547119451656628217995629825503404069742599126434035939206973866842050720499681114508467371226310710782816544696059463821179961175346444688463098508822188617086571532745510802960944246289430834901769861330040792943362274381962339649213307792073598057333932128430787360704454596413156357426385714862613355513257029960882878291617929295168062926718225646778131303236691344661338507758535671564005548738753371066631894417568834555685703975007786436277508244098156512809648694820788365639731993717034409260565492674020362298255044135616144641879756740751182473395068730501495289446251363208744327315288191774176619457546991913726953855757495625157893968005516354915582795076718431516333916812627928344520969399159194582266477673818988381273418503275020818379539557282495084650396653125108131429418742611389321752061754559088605969586281008649706045957498720908894331245960436328761663506249331772300296880249748825972111257805116118656737302798483745061820529535590017200729741210081401324548984252037083216752553943784491730642644061817871093070247811085750950802772681199178708684030049634718063015085193250708041816333611068797553239090126382797698688320164326691591292417308948112637414027991439018066964261774185224649103786327849335885583461824960121505564665810004080235739588199483803891556224026944100960633259139079590062443774827762442343040148193526420659956930289792623916894044465671801874186879653830628604357761848062288996453460796330096088535601751546191046583859879386455106873450283197834006936642620170773422954372620977352266898992657636261912829986829319990148168377327201569671674086559206696011638493947488099115891040109573612714883618103544313398234996075259972658778442999547252118968643072376607318160307076358352197039713498800199103023961627821049855951652620300508267714879202540073879833276889123094701484808970041786378551907492913721322517525954878146988223012339999898181771080782132632680667611995435378276870517150644992798996844960003492928017070114106862934167956700340395334291839672481194114821001611897939008081507710088313371099192225351301838015735615687449467640070909917219805838557983105678375155942206692845601390762969796819002628803599201687543417017282139248547256372230793069633208820145177168103055987630370896993068687292619268339209451920965214828966974874925940441062216719149383344694473802349367036484051308585610332201788748923916585754856889554691256118954198798699785103839954430669348589716132022092419475028800259246014425032187001595099091407587068219941545598559897711144728893265675360015408269521754145746886760430252939766860384792208108429864970458051430143717960904115231377316568021648231149366562919219460544871770298962759836062603521036540888612425897221102945454783090489226479682861216515556547342780434443295112435423167644881068753570544524535509555215570046238392908172616320599543184096988390316865113764524033634553741805774118331727629988042900841332336474356149612461814339800868079388567728110196000867783114842298405460960066402540554123247511483845174008417035261538391703245485781898152055954583067662105333556754520337357752044887541478941575551373517747569938255846051925543623447990574206185477417427167278688766456034716842688548884824921050803099304778520885494357461721813070980133343764362916851858877717545284585476319628238104768852489713229297832118278190014565724475231132860648419936805589350924143254828446176446743258059665560929333239534581606671017811164404623415042421191040790737285613048033797614539325008194470779020960479103863663932644361166509826225810142873292188913640507675463479118134707866778274452025985121567541219554956199312719306240648153954181010963606570958929255554787754454879027005454510254984824109958826218197540243394772313410678985065417697169278505427526368581938481418787421176565725937057467923512195303521473589918100279025759953998089632487776960100751601741266584678896795520025140807427458865161340937285777556659347264209436878303190130845762613302245111653562154354903527008637757414304919086357335564186517342896388997831552130574114052754489257362953333406241862386532136170446683597393539460078617180952986457281217112424686543818835069685478914906270761100637861484016303503537758973751721711388974239019410489691871928610494872610364047008681431524383978894691074461767048821215597680065260608274262456601698634009176882942195560251266292395342048845549908558734486738520363367265096719401740267528571676961134591512578917683365344742372402200789348060940817620400019524396701491913739063679967320077737886012428758653163000075451025575929716159904144352357612485231035794529989740281653065396098662153679136952006438236843808699721062743786686255498141059392520492466988194040599061508819886301164831872577088492276726226658882798302796485448563282961905347881370474260739755862450854563216998900571757788584805154893238402187848268809330604236115274411663789067938754472735773139609385126303258891646819220777100585116724226221528300189543737967415204500070432397502585101262728416678058126512510281074848895691320346466812550726776343112837412199245581133532910054958458378535816483625883251394846346925651998773105567288328435922651986922470587256594790008233254757245434741618333785012794064055182992480880739324875556317980748346200660346577181714406097703659150140846951194899746358159522026017902482311335327103101371629715787395486495559885497060435733530520808915707120325801275346664017036869983309116790828670525226322428184993225100340197855674115662379525937732984237791038574229701078620133604509698796564997252913168431319901823059469008159961547266218332491199758254009713597209228698888736876199091072750686797982985562778365837106148090664406969764437924725413728608892740937912891906497021060958756759692077972800952774346158242807623786193047777099790844237948043855378492075473767005085094936040607650461217089046948662450604406730935190416566634931325708217148782321030287993464920728910946578084095095553793674197195305516856247265926998075582800474652220173311538609911373594923344658464838970925704010289558992952151126121977010716073003787055334500482004629241724521769500897158107107081192092109513100349759193861069248127892689583312008624208993505631077738882291659856445666669204251522743558625947844620063606607471397162293333502694398727447714943648561157340092141552399410500064027455729240726586850600363893161614113822076489263056545788798113757975013640155289076495101165924410644697024233156311522042735097375754742830803045802565061856601288222019113106063777083266594847892493271110129799073570480843072414508571499695759709992789903792287922996971453273026592111049272331972268063584792172302789521835446353375197328511430525890886536259288513866618424740120423647773156411328428083590299186715064657870828250928217462740771634598077759618555968017972669907538767496977012493482986045316969011709270258296246704266971315856987100899542412625080076042966888862759981809930006251409359994222356075401035716093397107068450256522198722878773524123625875189814992775795713288591479088054467678701354997326270534836852412917526330372538820925124164360063309350146456274575683765583518129641202188555569885213369915518233623263952156640209668727766431222597475387101544648968406698775609178691764927583266193557739519031359479379248713219970670488888814100659704953894597387361763054781084589595811372468723673069484417272253828643895624804806737207073351890955245898516738959491220111437167691273164985023844460214468087982004470291499045736180310744223097926507714120457529103396770574898171270538755764752799585585158408515345756832234788963183100753488809251891432418517414089684434149939918346386624962819251946839320545692435102687947440959542467724666272229533184424684307178451819266169090544028373874858773764433293258892561299309799060400099917699465141717315873776867764865571853919533502749556678667221096803716970023514918582529850847435309721046144765362638956092471638433734447695216750788856968577637575350979397693786012707443292208003320902569706390310618382999345925223122179674905214645025413118349780484724068805696502148286508647649972226676131812632457464531499390721870055657966205838874398607219826762917178574873958322199483525211274084549711016852854790140797895140448579604359991248118922413833625950241181682788197892806178257592887653722194754920127665262042932905057750375839721710669505478302462962098760635195459507374362712238191533737211854975887981880115679753333560597196679152614056306701296165593631918970113278078415926336233593083725990193815658592041421320078236636504203233014862693966700863214473383584877361321069013218323724382794391169050619269698447755405802419045614826450640921371769382735492433744038479940250104925780828441806597679885580678154737093739034866362029531411029948218267379813349634438049213623806291812844006361681835201191992655781361695908883799132981764926362867650521988449567269893752822408234639246456940804860214983531416361793754090941082101954911595966271108384862695091682258800304500953134082774917894604929091210607740648845596515253665138889920910411620165611443373520819281450349349756356558585814018602593924578883260324469050146360481212760752713848881675118372761494447098373805873567017055539119825465706200862392770235084075472849329826216868344293451381841932750114122080112117622578389162525127103848229477866568911026908887257001280994458092535355548499781900890011860224155928569287214810751206506585285758220346940572496692863230560701638545604830483421172623849718551486310146483887185739936069301414223979947972671233340491302471374478514920640310671602023993679282919836628225635027663507829801713535678287027570333974621418846601804899221619789510209688968606953627761547487944915005699524275391829023770729599974141113608294227293964729123610083750650191704522618491239717112965308739511559120036617992049659689467867397326732663471456608279706753927209569752247688378761723187370075538387849355483488125125024717629436492080463799491405086695619716121180917633789111150510379012507551772146960591485528291199105852119575140511161741836843582368524750064012585759289901174472254594411018421438390965968568409214893686843898237161765079693582915921367637288520543979514614133312263997938249115413416923373695960656223939556973912219993965157460376638697124312730872089421726836234399066892055276108874958549289351742414972533656717082736315726040960765036407979874890012817560800675035897610383650362183642679167429691873391828612448470127010183892619227306966604403477152166719845238748102105833685397524868936303238415043220747121047288711353686225336214311681797491740925843438053185308305903021057161209811597820794128917555614225383933431464770761789625582119047630855459771394018123605425873109640556176487230987613046082700489704430108528886215694874157833887349607436668012087550104738510143721373153340052305861733456556178996230630398069256092376629943038911798502241677126926348719093123827893576735129584424746079027833847194747248725247306785031644898210407191889781633926520210275366510502936569510203749210180108810429256883744535508158643828696480107022339850435534179994793744675000408700717669969789427186120731013841279787507557767342005259707648120134008044778695700773845167028490991019463407152010637570128502654640997608609114927882304339700158004459719627044037797833285554241821453645977412881360489637913999933619737973753311788406356831906186146976067472845341700483137379933217100853809015550228058336928816662681873493533729122511776796777640764762205279857263135453388427498957011654202156889424756433123823255986303503884268924533508085794813992155158958099968347727392431341904755932229832309527126240190899236296260552208932040259676203888277520975167119430484036699724481737788438226324709422413809770010963912670456134886290023354198058424409906194038254014817375469842867011466824482482193746482447593812874655848202468439055634185951232132841940948912012457895437819935902876922821970153183653030936929949235525592339823000603518361880353748899073580797678977221336110904042881975054033353054349918261311549192981127705887270935930259826914970784058696374686639008434823793127602698621134290737460143129693479087887966431811929549707350170988543550369597144834588880879969279207428432129965118240289659188923022952361585238006633161588158006356535741454702576602376198646268883928175448987563209723639622539365124089275317016208290477911806217295978638584707466181149806736062217253715907203472887983370383869826791000088796771326270700772933583659323954643055032246848176959830091922386833913064028147580750421186387660444645881643321528866881421575219422561785523203053845032628434268403897914100533600278433398590315379181562125888672130562795663411259959361540299571121120116448112487474874257620765455661456155533870948483557360725884341504960598132871841979409355188508178700968908053696373775626992869842161444849589730328485606427512327214778713207616287919351522060333174614055599680778358645651845442976535518904737813713704385530914477992660165398374954260338227753964900924233397596725897581463889494665634638022355115768923861251051104472281498416715045668689703482115849762207073502225041401131794819642587589213506509328531602904395034344941552884785364266909299252997533151702305427560381892219807369770691702893893947028161073357470537078605308336361456493491543956431362231142419201366665998776509986420057648102359029309615555194577282928574105165689785790752725251119364665665246470760390861198625387231932364607374115075627935120748404605855543317592866147984017876512554980893756883403286168586459007853462127773042419717349690205511872669083446906076195845310143660334790480832667513375477521888408933773608652305465094921296852697498444424947454227088629812932009744222634711884014936302357746852988288946897981852293063625859058086584222935768393464421257605443195620560739637060344235796876125252920617053484421936661554985205186896212624037410320562930886802374789723460755313370138618454060285849731602453873299503904929263058041700199496344150831159075284293999088487819918966016641286964273164721436995710439563725959840533340267172409664290687841495664994481503554430589840039044120841812508230069020914661197386555923445861321314622992214681710424260760109568645689689574910571030314467117665721070222220653938388219228361933710246235503659100759568310437051205076105973182101933564884177756324927642984204054137828077476111013896110871290121911460247815182862455060603922470263608610364529291748411755704531944617423258169593540580789427891986255260535918586626751334650059937821639247586136936458573770240455694740467348089930483264691008087124877771651985615994480427888813106564467384769006939526588460972311061047412138083373948765146296165513520094187153342985616347613955522183011885136726062585234458068357998612317968045720399684918434065793436883929691633506828213318678281707500821404657985366575650998932008946629594656426926104913614879595368851170183042405619619591323596478056821936983795320400965890014455379923139304070162232300926642283297691887485575820144280329499595894720148138209387979055023358829301894963849222256452076894178533251979366470802895839564882020972918595498803194639588267102244929126668098515160824466379901897495126134955060987898739682090648149284432966614958051209078892270327693302862668000927114868487254336792978080819747635672774434583928732631547960978857342687940546475088260646478573021834102135295091835440460520877633747897280065684362937351460253227642406405991922859052234198956393301883967313361035174359147827302696306205860283045701689939604638967851950075057934534704245443625307174298814740390251407966892143937470948101034153179837737156974408392526608010062250520092602051198956193629186603732816246102930154622791499179846897638477775018519364436467060046536001275692135990186606854610980435521970619447108568277417895749490016194179634791561653725845856995817045131531866657645381608744112552226091353779448874009905160222554124202704590412445219050293973105697091261371035961240208757285526325900718112261674052266070321483704354599217712540910936258875886623482292067508185913983829262419646374069750220919240969393005665776020410281177472811704855183009703224608639811153378831358275145498954461654062991870640645394973264283160238714859338622056205401862435871580361252441631366317494631202369261196353198409661609355300193574140863382522530440887454854079424844303122266137809921873061711830573859457959067100061053311733126074095712315491371369228752661824078663909563236578298019532651162121696343812711048947056661160681813735038557841181984590458452024675930519089792774309012195812351961659096235975793047726264383872456644247047656031567248746526379123946098544780822125617285674455906240557795305471763335375189454473913868059654808155784733151132550994825648114437071073264556973240080920629759714094854425510529754763205088923541188055988527069930121357228394205666601814048829291229180079685992769620924054200153853858299196981036717994578366252010610236566115641876639834321398191739435553201370667518153640972478247529937032436558051739568165782962999549816100105343194825608195318027208699841802733886200447666409071659970354037560779544907569278279846128255835834759063174729765209803874426127954662641381705373841258571063867151540355454307406578182237057869528989495967260393510465275658545019672592210058588273905053822425736506457131659821132539829373605097131822782938360456625468504570224626769208895054185846575036299332654073660567679482576456086290623612384372376337471860729987624910707391961728156154943842887935497991678189055252855139488997367136431315036419335225190347639430448735521501090498884316234778041312797191368307049455238208353159168825401922055122652543730643246145411589138537156813153490471157271177464395562280422964631812790035403387483166147426028595779880510911511040097635560849211345431572330745788004303069074471469616097183529487538280996055864075613376239843554897987245326498414645565885748027672361134330937879377599749736699082332872998502135468320578496603260281968924427633884873231679667743824481753577001386715037907686958776069126320266761400346210079368279784540952618011166484510371877846962340405883757345127814879968316592627830617715286543270254424703029674528453775250852542894978616330973541193380571088992748862033821475220438848829661641161769021801558033855077928162693833504382943095569594058529154903521408727193848561755818733917755585443466045786108603855801056848665128036310249653571612791046676767366692939580104321115011072747637626291624240462046605749830646069519139140404717613380734041846413051621661178048655226707692704277008775640054824333285850393001282884982077661152857581742390954491158050200498752041183380602993282005810315316016816552994240495316634427922100867359872446002664822708193639120674233204093791227318956983788191317597518488153268583885938467779965318240726999505383118419024314591635461908705894275053964185997825945988902890968924290874428078860733054503460264475165353908581846687415684993179900144845601730195633022700010021107702797243034880681051822359134321227186469736634554167135556486011118424512055685311493670866986333130434805924944546539237921171172633515461292477697410691947264447135230425540385973957860258468925801836770861289577955388718409639328522560750525121604312695422914426641298606307072271158888622054829034758903292988905132305940373784880408319760424535094347036252512444524557022571265816941616571715472568745899754518763139788708547309435427929457531782284976083456889842247052121805919841867239750874532818121669199951370049315841134784331200009219209871408980784153426187706635069384889522704304035189709675539305382445626247171327950994275350156773193014017640864828050257514671991395973695893978780302227368321195336936642999863266341435693374953570326819966523622283337041996439762260680422292243913817278636380692542467562235052837305108100259340710545760248793070122423698213490751761440705364816491519404945980019524212296850821094763017440781927503503308748742080378267577283356802187123191724314403633255971047520353127323891254528907548488959784612638588080762890184148902361060622853751677491993404893369027250516515235067109823978361867802785878552102312986114568253067088277952076723541642399706829303001507169655747965888666848150217322503920125312078943264756313901195859179385036738717979583373998495949888650973788362268366617228818108347998392330123417778743965417536375963258855659399268916561616438547672033252672783354460419231645475180512287638111763366718960461024454787347018774108194965532107744443442960618981487922130606367919641750792552091470025787670462859307988622045594125712581246441359618445834620456084499166130213343258994674148818232341195532549404508206787470962130347071989291823755205801137961052276330362382046346122750583958921110065652370032234039659178501433837103753354956848457586802498586570419342908480165102338408006819715061938875345094243458240179088279863511828965889463444304554023535607916050021970850328517737779221174737025591183506546144442057437382712248538540156051715558981417603642308175868525430374928999013421186817192379402906411894667752705165308039797688214713524105400278045943643145157324803487776420516080460009136135912041986128156993945879007629964176258953729189117669971175876598302227155006717030745790763233980909713008148876255961999294547514638756440614113047830524791242056857368893791923729001940961976499862573136221580158035782403707918895052293308710230511144201671502462774915878410734247336081662394255127790752441264412575921927271266737028694634518359353074035455746480737697393150279617060784351214920735011102404599239116843940330889236729406468099594276906006704549874763020222235958671623046563786332593165612355250485370399727096362134224042071489845971908987322102343662891679442030538380896455513180741831987560886243036770064454744758283232560173765968288118342062969729715770588077420478310733443258650889850669842486982117173862264981706698158532638418391656216030305794823778235850710409889220096922725523473121466939449194605802437154432742978158384755069137275870306815858613835352203241856650600726385025187330073475238582665730099002855211623565111586353586418686004599166354307178843415942103697033031919957232649913562613771644471128736630509689417925243604404366387840687166562528187978518400302932043716277249830178942946788251477989069393993505902216557040702654317576085573070054582989886626457269671746237104363001290551521195705055040568028829095882131589193678601040974280322447199911696580076976584683730823110052912029202744510751248340190967344103866592832260819889653850303370920300121227666070456257895569489462063739426392662208130017069045797808458754008950910720198104388053879035277892663850564005585869459422467916141114611084574160980746242433329063250068138659571339368342036499099756824426071098457271901623332563184712261972348262176351506185870050191000982531094638400949932806122383373864646328120589573856037022767467576047431510767227397296021116666767405139654808179709856885858351122994536341682731768428555519414371463983250987219313334431837022251091964123254592960421235607388880992301569387744551452435205159407494458273465442604666295017025322923309008597334468801423568316143427710972057526925807969999094313273001256260889877538407103347297644390326909983293058918742610798940418787878910006443223660855087131338582449647348103870935823338564698334161117227926048993560557455402427337904344830134358000513270278094152417304903092129629130126492014140559896813140863762969609101960324587238901828860560492766984277898087933224821021000039039121514613268806449070591324853857711568747857638235780514480231151385219403573447420987920170163191259056952127383132353982291845130455800380419576065017699251408817875304823157328320862986976780532771632830591078079288577729011982954070607408614132262201441194684617381603389350254139723658752245962580228651434693302091233525262982025664199870984315923510957373926246532250325940215573107744589654788668271597806650473165813807874518118564314737465702263028132109067738916547220245131241736840318784094603010724254496494580331520977403258312110084576740994507143558874930707841866152340965302539930456046463236114031974788558917623388947314103749947167616631822329720263592286988583372749242807114692185473041988644614650852553919393662498926249896649334626316222017560570997565540957901802225468111479526043692356804319897847448022131549481109655328953802816344667414496923712071172269270658617929320968187750556538838311526663504861603475569737846731742203528317899562318226648445290372361875393994607362096046230350123113293756225331996423376868730990114713747900182714504150306723416795102515861380809621070327793970992451129935062624002366780782240728824425871333141607541042068639332449218986723447426091284516661771477940797316397115266691215195161839143754084728221103763152883216318415003053132242340087153009711153797914083633172871509282837629291383876541931005353913122489004818945412456511143372137301424022551412339620585233157563505012759805528239534487638332244927241801801343706528878387702410212443202516326051177710396509140612017645410833517827886865209012442119420795516660044250945662689272199964278921225695155419415776614359298616069840529084905766457079926283714756729430099835217188326315235635924168297642805989941509621021626172511103669289145072449110913154736401861607406153346211836774851961245546870819701982852610502463412201720253993956546746186949675411111478406434069835866361538250936076531680811811051320567612321888608957633255401179292108637920441256413093170467068300340466564472888951347267223305225307924329596996568528165340042081743489328034164059306975157930813998016274324524609700628537859272127109600771165692501724119262706264356976856772096467626904651994074324714334444511266673050258422151257284468412319812344186640226430261967387634573413166902186462352356276253652361276972962316375916732803143508206008590998317026268874139457236064421564711959112807437637932581491519681941326573356282053338689723152342789123058362568040026610778064119618577360026597735110493322432060613604957596319964276698525306846249618165627305429807057080890235032217525298684186121169317728401679776730281322701344248901542500600271148487747254164651874896118185900023922918375245762213719763300966756912430030268488384056393611986065143486337175920423894129231351941514186739733036975571424698591212253382026335661097469571820366671625368486030388383579227004875305513900220314820076123903540056467121726130669907989791162653652093075598413370159195950482239387585250305087117339646470627074079847820480489768841605609265803151218083289536627645638086499829533463736312246047118489838154204773682886794731686118676782914440260055004424257341655810249458512808145794283855518183968082816278655866121100189062360810933493261933911058529419910636801701419925400299148138467853345080579538475121805177460666577085483307068830414188316813332659382126281799603353693628499027007556746350431522577318392758354450619892365920442035053464600386540756438188146903412331177439883560340786157899626294220729050038229776312453950923190326076885947898446662961183618319923666034643572683514846316919584109245121487711596028421597505876234416311328052740207275687421827087449455544122975867263672115778777166441336491298077194422319969407945263579381842679747790032917992199807078791296705139846967551316320808646298830968088627432046555593307116362073663719875256703920443926506438696253344378402787572896161208723824258564976037531515153711552272499970755925250779550313711543761823567423320085651668780172134981796658571924397786459077493269765532657698506267435291999241107668964751204472611043192630917507147637696472065984151981697582324312843666048562817411315101078259205519896248692527879005716657484837964890098933646046400948563146687287654827299928578925838764475059255704700771236412911982476688600271954326633540140549840496555908908711307213868192420058174039524568014685277327425085711379837950358637979004377584456561768939157235461451240659876870911630231581503651643580629152517610488177158901139678301001760917536909522082431936148531250261800849691701502268137933048218291426655693500122122636101249632281606395489346528306617846707202690001386682146557314873394497297699754783257522495809779321195988535862943135690150043056611426705593520542694689415207823896175122931960178380578350447290815479352980128917143453408145383282924607134184748661114924266406274333124955152637320175876807383704430724481402777477522989453366939118013295435358768641024349609335408573549165200377552345139944326493413791104500856933363324194841077658845663767571435454905276420847446077707050765273601499676442737245033463949936397279404372170807479235556268137735731737895196616886226318376495107143487736239341654026119175136017708372507192727599035453425279567130185203930291486987868268737138234288356327058819533201843687883889018120969188620179941283477329802659982175455440372944676945563613488711255573965135462833111081653544560838680524629402612975873067310722714290608693303047015083732084427812595769422561130929652849623482291370523247695766365246082689271087049881134286030156677777280856952298319941907659094322961490888291345678747128700742049069332807779289711604338538928776737679895747226853193257664467165997381120031750893723615126802180288458384329412329218564652138710666202392641147733635610366106387031101076396034068055858688603274804072787572225541209926457361875709919143794825391676387231496801554970665576067038980589116848250735058166565655895914356790727871193552154624708651963741783915178302084042671226897585921300438075878831225253947078652157894207143407720293043863999138075773530088174821803060628561469057500161722974562447752945045764204305029735925094215128684233309161131639326320931992080615114915469752210046459967725441494849514201778226381072431603897261634392835565622582853120768286582588388019521588389824772353450844049138513387528435599047230954469889365569609371416182073428478891733276068658619370454502886294261191669472540455617700087827212669009524033464476863499047854245796770990699131299382864138526375998937523107952961339821574429391809200842949777259653850095740823575764490792120808756564872967728838427558092574314837582030113685956817551603275316411370682776030638678641673654931301224676490770805245346564796214262577725476674838014642732701255497372008786956823298885333557359958823382063041182649137095724162856983729789851667500240590242543869627886946653885986973810803759996584464077741437125902507013795797536233517831629768932536791654242727384635088927186011372256596645076102125994457205181743154445825601087379288984270446085367428249415372498691246222348678215402899243362604720435214645644451628485715002144593687529468288709832651165467973412524238102635790151305009248953586866301034600508348308242883653562846582373577757457250774305221511761411057517884970670689467157193298037048549781749627763986744534191085085426825468025011851565007633276193425950377115357284390860079446635178643989689600641534057341455239089831206838805770564126152459524638555789876287321084282324194131999366398369552223885696377483916126292006657491699348408342663403229055388847966907832892108036848218709856554887691103232016812751322013082785479266639369283631904350325064519966566728167678984943715786864199075239262987756966102001123310505689684542861127296833135212667283793502065258838603244111268761221908837385389857137232748792885917616353192691046330698347890202597226153616937208699681692091106828337067897764735667119150073151582813717040916198273045836517286368741990774708370540690788716466954744203904802735866065984307847551969249003852669917465786952045562333092289471212635488833848408623645575017884892670218432480655536394708891606079452241054241567280935168370886117820737793499831871361175872936597702155168811219603969136568277570499583909003509600386953322375357611561243420647843272848248072726618381173852849492116189004893851304706423817034861278341807345435641384881733280033102053792475979568216812375671240427688315125295019234647928041804999939149674498015239687838702254711772869569097333198435806174860293905037251255983565547879586412612622596589198434524612112065184804648061943180694584888037373082638444196804859051475096559008702949300669539051106067738145275441626050387742828865807066239792615241520176783781342971765034979262910724817050943280507124973645126233399358954717024283377481080106454077236010197427874238181880231210417816888816881718916823797352648448399420429048019661645061875874272419813411314204034050563488470909646737802898311969760023711476986289553035125917368519103733635635661457698360222174008864140317353651818487192656551323663350159320707424080590385560453824287219520004795124837176221512057819419939920960551736607656875876225071085178453863572449802159634742857518811544283413820985472022984408297356681819718523889852197597491552431348486631355018885166292622756231490826345415428000863688371594390381808030542254761311343603942613879269580974800225245265120627190368713406103405338149256515308326580634651877303038225560852558978959845573776620060872390047602262782597074601402492552738038981430100255572828564492279458441910128709991787742970503737841195910829428083440504084709580984737483441781149122266580623077724348951220722358432242572972890290139276061846642669977482561914898335054059701925080017231691823278236697556484946700969036448639430249176283845590406214341951038989036279411809616787752500102532441091598045160248309068385920366253902416733841751847603898865498019607093639971346794583701347021019424274506327065642035593624910096516866216659022258002879143535964178416454159345178012093770843428178704924701167303619966078634687408848628608048427700737236863429183777459769696294654834099237237920153113237177882927560165521503353583256998093616704497708134379706225882655069916425635586686895239887488978367098142080612867450329115884602630587644899657414042807119718224926190865441181740356538562000921031989144523409600154750047774340150013858437142376874042436407598769948244459979388814794437814798857734742968143141107330131070967890596105796038828709814040727380474414050193406230400804714140713079439394162716032376847361402376120027956233322612921498697524438157887100706717317779548374348997607364362418518706374627415722139048793257114768656884619455568005826955264677399351920914524162969502276130298096067251313582187378313974226335063470624572042477483678737248846034381092712811903389529751316348420395874424860718428737854266560494455878590568042968359899749053935680418286803522405252327584210235859908102181825752275983915200299374057467250291131864632053149996106574303489342694398858255882503576799575565538807415759560460474068668597038267889877607608249595992405427185428676213651349265464517838666399572036643905971540831751043943618607800493375825866552857419583141527717955487058998907104793905389633664415225307153519446207909783782755755013460769201318345159015522319323021884786887125457389205406825274045795728360905849614959318040124153426390794645160342392317052896967838142794644130841616635570213865674802309853599931414696751330238385241375836773290152756752028959185293214824880711589436473132537293419344663786415972856885243714047969283116315631063078889533903548611695651661050400963932566292712482314870222018050907005183628450177845008248710346511300753129504741188256195529160910607112264008834798580278597740513692413260219176282529233398541140812196356579098184449097827954297592656963208714942092163122405198887251851893268850662187181119193797503676059190715554190140809757025168338844110394667853297654851471375312436984507193059171844992433745301692805339310144363845152387548911540269252705937655482482865458987333077211643139658052276469458827401897285575801331290702850692027947573007191941880467213909562472701256819490325641346593523189282651073411140427080698955276167793754666669169613051642446451369660316126963550771792898208285616283274454516160345959663152779800946667504980780293871315411848219856156601847790002840672774634226204505117268234706502708637267376482837333034897069388952202368126173457497037736842123542386517618408737171599015858030293542011033263990918870247080800352515308235055621120339003958206685321963210098599901676045961741743530103568237110688555476637733675906275601224049404130924093977114804725311391881510587954679953314182310634883840885598221221290726103591648104058887500654034119095752927109468868579610258054481493765835840363460693489533134351354418811490749926808614161737205322579611308134802130333064844988995651933759782773015491742326157807018790878146634546716664123521296569687753490877557358543128254300702942618225387493722133665358028297707464130349389402747093881092374327298106634119370693279208448609741723090123975917187898288534084792708058535602137613844842738798354827265460271308110084338174415593565715060048168055896293784094169459254436555668943932660673665340777353866141079205779038062412480091552780164237151673327224698136975530311023761406501192068246030279929550364894196921736744639812406526818181570908536981600646727304239619280940757630990878723126565188576259910042330523563774760397115266370031491519656980753567668591982394690813082439715413656020290631091204824939341462719912718834426473226360364571862688570087166427277587138950332127151021951432176880280244642984923719776114117550368817658677792599562391438460460189511592913008082858476307285679052803934363380279311812247754323269379358933413738813457204843650717980229216986756674497501337218266482833347185609921379002375132577485498146152395364337597274815926700421482443982247517196768342722849858572504828932876996528588544117482291490226983739990775097365072562440204832256058469924374894709385522551675114568963766652708969785538216420959731856892168908843296426382034956539830412075246447712777215666876525900974592363286858109019847900369613034327186548436575861767939767901254476496703474437179939118101576372207751170197238750484393489092882976750429078943298265968743025935866760509329992434027703926162082425105264861575410855147729109812437513743467588637582519432403070394818804951826534274519883701402625158866235575363816270134657983303660019121224018041080606354553669356277524949554700776017236473657016344369038328909140690879246502927769709349036633314602809660118441310177370020417551923921826725392277258073794618241233885522608376701552480746994373337942897361685720024642025059079379425329471208787430710135404367429424206530589540669664099073290489696539237743096463947296875978137820838270122372713559562866980462880783068400407489020066009831455097534052888838314924690758314084782413392914964961689052378989426586374531964443409636611146436472676069964418186228162455909951730993887729819102303194333977831282016409904579199862597728203582254417284230236961529227219535809312584184960666936977098108766418370009571079156920163323422989397309756949388148458411221135295329131270763670594391246579483926388156508764177677442776956708680757105724692321024173973647568246768858554655374428269389949869856807426006910780065475361836496103327044275901500533913333718309298485273350592602857343542464093711678266038960440194068496069527725886652981375461247269069254120658616189441095578743223689785223984930086446514609138386992614251230404726152338536286378415599924506395465437056036499508888694978536317737556199999892991245864060282631293307250207976457288082820607178041653352877005826678922987146401867710351486484693604657621671690178521735811650004107111001168241412833728109925805393951284829755698500052998013126900795401545186837717205870412163874594332775911581221738011509323719374449411874959975897370007340816416029845473402155165902550528683863142028858901224085912707065511225063147655663633575946882379360433689153280609301307564032520035086795640669822188414286739459788651514577011615756099171272697454904422921154671288677548941842476020787708501489064154086623299425474698678004468028251903149832363392616110900908901537180993230974462682833882988124481783833797177331656078611446108912400009682401831765206974860808666985566542645886239031171634174516540414175694681430717833165155941777938296457285143791658515263078069444531844431505864681628706977709987900026396529350540997019941055944910024324370821884041061493107037506833605581048324284043325359399769156474676578186237609116826043028431249270833039515731271169985100374378782374471588605043692439100730924115524657251923883564468557241181003211787898882663978448099265710078023525914592383480392605572037089239956601575753569402746127693108273643892335480037830387454870637917316031350576990368456720525190872171292956573852782599867759661630603711290181041590151403658283653571629887047683597014039243743706963491887067448349600099273754483902989408647002081704785751894897747135205556417260139769099216549743501940645791639467479177283708431615400271788300474012444432261419954496366936006843599739624941818017648243560036073716861602557005573722168465988226856439750554751044795975408292467515236977095976003185956556502697280368415678972069282756986234784030180421461391349796435643960380652014398500211299698480798704589633738190197939460687299043210667753489569843477277209988671060424666592365880755518173458541899857632163426271863186051303669618415294845026225188060150910662232657787497794238705991084045664293858611616819221574557866027284989208110622703389928373814761006431739723975127116023053177647167073275337690923905512508046608750428677148535066861834128677358247069991099429006462817993954278466003572593344304945228899234715087278307432106394585214402125973870434380743883702914379087380164069677037494162070120621145174181214318833007041791167123268135391444460888263138489662082824083364880876188369924604676374127581549599837478387809046031109180276933356338990539990173642491293066727542575693382023403493359745608958850199573948702492676762832240029636204693647645813885215575558757822385369946813522740906547107153305397295710583348441565591401757836830529697499158757694293525966239244824021742170745947549699158972999520042391268445978316816148164671951278335915975881412434784360454347578184652251620263468501355815042461225649172486311713913994528468304938512682785860162444531347269712141485828959387052728634362592300904006837164304805226883204507862376302908685796381807171731918496398756493152268392751327042129183373972703060642306274660000021400843856181378810809044156793137068808938518421181435963718282275663821647272195295644101980538149336852123728819146912945387946978470554700045792677783637223297684976906075069435019269526480747044092407505691282817609249543634930765565935374186090245499167184864327213048411294052792051819379848201662419300916106707404053642535362451082381071228065480191234825906312004259508402061469095663923673888395862474455702774140608576241827538249224923462161961573602416459490924107024071458779636571324009907756504344569297795068116154681012847741964735774365918111714812309987019494355169049219992728871070103420094470643058393261299234336157749056636965398992106178340462471574057722442279131904033710724488226508367183956287462705245410133192099859505245045088540622879853005015219851913631274623172388306790172063722327685227248005461161774678582682075420167726992732048392367545126837974460583186832923339140167266267924471181171148872139622735954442259829756463708929893541924054261714898463374689179830037037333452124561952435978774793460983872008939965391267007871833145202926116848995971224842561169747496896258446798581411882973885106854592054663958918995467594864879576034647163198530355805893137549874237798370309585141545454067958005145807786246700739743358984576390687027648530946365808078614918420832331184810285160594806430207911345560847996771456320940606484784829854929357037742566463831685103459658938243470768782012090173347994526437831330195546538669523892720690048878288186929902409373408751988948941208966934341426490040728380736519801184399072326536051210467915309169832787184008660714161908643543831716479711990987890845151284930866939257714415346089381008389475783997515733986073681159632958216515095082739909271944745965758461439701319073761545153035944428805660854089080319615439314782744914590106876999598959655722867407159269337445119890865243509683765126344494922252014342872903087909410651012464921702800911698448867973655981536421199394016362937394089783503317424124511220299615410533622190494295347889380144303621831456842490285908096901599038831521154927158401034766055656307698300668779932750516343477480445158026657396749867010461879252757975085089028518716361879975824290488226340775006778393401670413798389440915133349819417438034178511337725461230991091414475501982155437410017574528852851307566652132395214156620666819860074490806626745532845995543055396985245740344753086941135976848925374039870248829767405075827214879064817017619404695413514915567001784900272945962117643878186525196366030288004737659351752702956292355376774572475208841214359835307505325032155715492290399204462299520362025394056321211019930285041623702423978412896093514500763564384518632598685094878106629217582530720077110284710788858841841676973587804530389470456964030991080940770621667550715086433923501545098523701769957891585666436750877468878496906275218718011520922824640253958063775896515794487882106844362255717454824458953426188470419318686751982619763811730255474404368359563358493882940164031525604045321440604830325655652312848169200959071825193333274202697863501952526262760901405064151913553448454961443524128142572329979708298217698051187564121395180706900714317284763983843390084708149068617525418235140231697265811588506289230766947260140999293973084239521981305328169024705129522988145927726098533819851347351798266722151594723036386443551663391289715410256386830135337387020395004633451784200519036053874279806693820163642246473781785438430441387564784672649392309958916797681736274286810455516463889945437099362488836617589786029644625166104039204889664165594883436209061198402848179943433102147477949304115219675229597516842941558414614743076633782455111181751389166224202033202431527216505280771680920411962041849625827547704818613535639759462936993714318148147622060479192630514362874395265953079481166298743876547070787318228851125398382558483187645313162587959539712916031055407771715615101448974926389567766382377075755423991576726480670503739358408385264280833018501990943483827398436812420254460880178576496534945886775799239123397329964494758107726614202800648065043110060637126360440427180528095064141615644569446028021372879272813576885745313743318557626295493440476985861212637739814932437834298450007802317653334903728960114132178193708281099443435989487083970920141273781985105959916963586019242317316973529029679705478773143093291062931032344392225962473085381264449476032574583465479525082532816701686843642334013179425526366685970216621416257477252693124075816269486960503528100421459206521541085544028423534090535500417382917017750168267055685808983690934710458503604124654398188140351785242690578100534773296457824083277352538357987964954265285371675018439035880940325224061366271723553959757122052072077996316900289686116304976678828772539416789442081900894326635243745238680004273221385173853298325930978031502668169291281322412072544440526493401042289415337491188534319288502698923501870302516058558906624468143932002673440441603058425165479152050354734132493353708301394287672095454336895609188283429234285990861377881663085816477513171368517546035686460280680447156556001647538548954156757663030258889002450585891141748400574266376992250494131746227609918984430299513406974689848273425366467697007640978885709711771199083518096216609634616537927662395369592358439840292634945082898447696112948480365262959146264712941983278949374648786021112378692257868893810584715185113799469581832796336620817066334607143148712137811910568938585146718066660104720351255326997802547409728765921678926704742562978676609260441569818360255872240496997764032839603923171334458084813854010049867514303399164450309661995954479260735477338953525078959361102208824595273741170454449634699583155411042678441514816172995793578859059648949647072792603360325240552402037142663783064359573204137373494856702264821946737629461531107464348130478985297311038425111127591082520925633005290963796373409931901585404179399815018031696413683258487472917594327029059065963206024701247848253935006439767753152899470470447540310977457046639056213345708802681283370397538019108324332729408500662648321237554899624797960186124260856749063765152647448976057836211938939137645034505471669624250302536578883455851279095298921777008999952234497497012233044935791338829224505234217425359599999729332525556297059353177271780562612574618518507738079833904231503550339276574173708855442684055286118943720555915637016813429310421691759305039271308226461079809318506325984202323897457268093295727906039548803953611128660257576130913040703976930095852300479738217856045051720272977040076729086818533116906261578188662761482080113470709350029984707772314425800391098534761582332313149405165206644026191305453609384340284946461889359658008617269418437862989342357181865345316218984148431881389814773106424606041768415226732761149551760618648284183226668035534248407357535233392991222236719336431156103468942958440260603249318276343773753101497930652848766541591699306488453159617439004764237103574166130647488954588871415899834288335935264017600776274573913024626219782944087095010608665405881339868444946189716575801922764681027885016889041880598138444200205600114930353574541041501801240540733699018230243887582577858344124980800284993614465784683206966659820792460945955606024060825438270918510300675060969194525158566941343451893426008784131600790414405022353358747350996142833387752081892836491285154208681606630831634422271970373848948247588661413046498339927433601666444664601707201709704987641688277136340641236917042331179914805626567091738964919150190542485290877851046203735813720710665086607744995569878747182932854795323959103211312965198714212141489343602180201761889713425995213415436819580880517989987022791923882793063370650880865794747907893406192233854589714830131760223028196315292117663138123707544576817825890364285028333273645364666234077759187370547968025176269842319907916215921879200455968001886614222849140121228461215593621445709250361515352630436159504782231932706960553264540752253862819416022279660170604403672985865329648140409559855188454822089736948451844149837431735797164119908752251902743603315932432521823589250244910392532405686897277403948277104786029064300503945559684817084819932385746722717623682010196634006966868849114802770709476092044171384039295032266817028894177491591722272856575036002234540501206544652352769564557475773389283856505394064031684628227245347499271591328315739296027776146043169214347591882758397796589015249777951455418087573783228028734087065094888400326301197505176523367502204899578820343712402433422672738262851376608834280800202803632345696548672675016924970930262379289408729722706683619807284661879737774958586682173539431883101109102394033829139517770523879431774788226677557258646542074366725299814887249216966401206388289481063989403437167595065211811253228320609060033870447573253162993469164416553339790595358007915136268881107998169486488850282229664244935157343202686680909451254260216883367383639292061004420921763762878251385185279136181631267015216298676589381415837483378619997956710209258410361775748525274042295274323473930976397213320635307575011146867110907515426809380171120436810718563113439856037082092054207060499708032045826355622884140478058220414287519123614442242107486994986624575180933388030838756262939075968095504160197416256947142561143545638150809977038397689455927377975938729115386543558989637492935965911639458103190093325401977112219071109177972708195495554445977596611928605317009038836834593596583932131901520986126971417747731400496283258211485720848521226260893133944656931648604455068907941591177092888793697073834684763871198687803698686306122742590030779068363323278843446940878286760767466997075697219032141890859831149554486379884056108124209683617576572452564444912135377073459835699802771270817936513187240609681901601677920269659373614725728323834655910454405864425446776562556982287748057578703550434599508781955108297297599451827955288782739252756192513617726837399369671074756992425382530945287364684184149883624879704189250665486290061260815015301228656402237104616657445481588998679995985741636034739702205844526173123985643424929585495153816729009918593331305153244089873572225169653952706722585313943343487012156303066122659633835129662132999701875987679349136017694418096326226251865874532132056155480487915577712506411395637484159530081808608339129634126466007275564192706359365527962895726737593331721885435331529136132214801236973411367942082617546851592493165209625594315659890203178123958146736238193764170823404016436818970098581983478625207711058371910973080612810795522257862380450128433020316786699353482492896943749091135165352697527032239438339694090992842074975619661099439984447000645559414094166041784374779333392225109364592279021755848203597283319279101001006948016999054186788251832364162097147732735668056256341509059278779782260019406377462830308615792733308641480961761935968021710231225930072616204245658288928844092715816791790020959425446174116632800480065298001829549401950690339778328189694708004439501590051741118809385025254799602752819770489306021929271503550820421191522526411255785392048412438957291838050377152163872642568027825637308254447239103963928785275402789444572262171017337798121725785766411608182845659071530580719588860713856565178887980044521537123593508888902700232838021442115871562038907593854420224625139461264434707199711261770571401004907734824243484608519391325382783036993101731348233027541137143421127410948240842309242487961816140710388706051949621590143225155438856224811795800752165678574835488267530769017701290550074781727678461497551177050454075446117955938291066812318386934136244062856566402750689059493066794133419672993746964240682041458105309320272585226954957337911779275449684636022912683539737279539491436158402321008327038656018538514652243700054910150364159456948997040305133183891879507187108205295273017535332219988055369950195433559815039465058379880537963484776467300229508816619711973487577646246867276101456653154677571631344110805688338234673765877268512459844639661698254106440205763009992655740019148976247036708586126250584751858052367701391903358915747445177266974795048057161914113120345133855968212004361346103166552897013935127978326716088163739079248202427211980290238708216854546169341736896562707836230439284156244023956528407555114930677094448853105413656880295094139269997492783916571126223332764959767899892720002072887697882013339219184996690622997449272736601823739221045406509607922121102607068491551948464226640761334803679637043791641553813654974751953574609036163908660872697880568594416594558239035146654834360035881069245710536987055579613488103368814854359469084313898735688775592881509660299668060806026338394640987824564262133131361439462646518571781165306572880519494516622645736070738147616432329718951472701087978131798866224956498934767699058884324081685465717422545640210962229241448575860977891013604330055286022750155041386931873475837611873925414194411926973052656793802109237011801785487647757874809722549597269538890842158498518313270105404214547860284020586193980481631524895825309631520125959409620517512816505720640131294872745474223034378974194533582676878123901612338079625586570635737244222896265481612793903742850724778813376219020269616836972572021758282856637345130060479563989435168120265370424513535004948979576155204656150959038908101759663244675715568352338198937505378349894896729196771985590247893452548761761970404066663002963496276017332395040581862567248723425909039362303228224479103485603019395895044808596133080566267915841515128343214534852728491154458934916021852567746594705495355189803303055036810032886247992333210031850377634429357350019298968984013956847473574494285750593436567823708848641752957016104878952842917177176705296424072994090161672620055733778449186557288447351344118144918783984999738710671573918746710879727607823662071485358795908759602596784224731061419445045629077602626410762606485149659592298238809169236774964883984352595016494786099016238201865253599352385629320242314830434418233585322822276316896821955152985854360079687997954955578512964634971525808978330768159594229071804565384972499962204997284904576577637981772156551913174937569410440378150232045708400932019184471316534399339250021612713339323684669411330038799409343300499398549074715306432202587373361992466737838057816379371564665869554507433284282107557686299732077581806931908973149808520046886354139327196811217919333967676389073368118289420815057647913507991138663897088632702503215122836378354463207178235164769686113655968060017547333066033688559787736446821890976201079696691293041634162390445395915298882714039454922512582370960313662332237736555521116801571411498470326936533433616507520170774620388022265372189815849725564916070653690097776985711135057029640859029305430195642527081595600074311970281085487567315891863685491753384036567498009374621128666104716678975963453401059671714002855906811198224234074722228086033646046908880707223740372128251552902619929015209979699224342098184048266597421660895909855113623744310132002403032473583451289928897781971767412733650186733583452214387219359925873092133081658109169958978502179754811294830232829429220787319930762117600582271110916215248149683035919637621922097100660773058699974121521518189923605433241517266482837435338718037855953646070293996075131250451746633847082985908665353246787083348673456653689179324834039518214811718851817833542921602765483567627234208308494814415214690745420384340974840590694798262229040826145443182207143558728749029574127627917507653392755081426971851469158965835495652737950787803149505025196742856910379107549621167632016637520641476043862893743600278467472005495248381042259107332147678962862981665500863464690806809208214663821709148966889580693568553006903703020682991299119257627871832268590334413988504109593667080455260072679852048284228383757741013310117449976803329102229712215678184759823348758099252103826134927029308868770757380998788816453744588367300763643742731046567043877304440043832665688366783164301713508916663121409867385981119339871714564273341177498010709279368020596626355398105751136938243724079801992227459391997696490542560924019030940264706406094140184108853152946933470498033499144230479743645012568347919112845676045126663244094037426814083253937666000327172190358869969185665584394216139198713777778269440237421640668761301435656663127693113073816613642312855663779732442957293153735210998546333542418283965598185642735486453297712228363001742454318825174253385808824821125410492548890531040082309050332261386071442342083250410158816648218425345088588051759813719767567724215447536734420007355948702861971423936177132536979166814484274819074617552192921682365556535029921177146243598278588391970875349643918542845169840595132006082446498519774533371404332175323087442639357791584989754337170599076775759135725718018404215479439593301505080349449519141873573767144777724311646048790887271228651141567011748443068781188545986849486015011575825860727537008735666126668502996489916803442886880921570632720370259324392779327645866583353561672189557130838053151876227781950507637850929709722157860710132224377267120820729405168362628429843716823157383536308130063120896406202658588175496420191332736921136324901633228294580020828044750639363075056492145461841001038789744686356639697373111779466115423310449469687102046799942111878416024778708901696039413708763659274449070128759651584621988869615333521582564008367995919337013745066494164290144139956539777646986424294985404448255445641874921197223224539634446020453500545097603577309190659943351728863547026003635817748174107883400879300321422698758785426737725959873013934768659747156245520829502257742959707671653431120091906871630847481002226429880133154514580121263372778291723994876468354345319807639569058221590484766931707740720893959286074452672467189486784477778592818247597094728775258008467083138331768364473452451831730540000668253035255550846229061198753577735257378514164204391710548471385017939870986039035656200848387551476054070984058002528113370179718622329115767173326759690693637156981270140462687044645344391923945778300222127870103227033620046797322742846839670918961402928011429691720462010757320953414521192618344701560620015614514697982385412374569532446029508309805355784339387086711293692575234349180027644562362277097126971784576672087681680692352692831865608568271831028386006349631301204015482415018512897261736424837012545561953217356199476108282816427883519275420842420620540695381183163849890218812941853439476940941417172606054492385677073213748090988366124768933600729669612138654190459060934103809890371488987369261884996860229220821855301943939896069115392066541795449597876575879720857309603985800474038315755202342881623449629651993584502453148769419686639438098629108480128279846746157453619651741510704362403400021864290762083333367481010957612198097528415067054816437166584826919880815558678471917428968177881297015199772813935441245176219077230453187807813651487213342679643793949843869737078240210032123948080967189433221269165443174398895274086348748632652787373265645701044519113677519314624940539970613778976898445922308129294715687578373318942601700248922424173881776429999481732446547685801244079556803541731311868588308802964121182688124587326101277763768167933657552506792074982856259574998398139793815836420070303054681155122330783268502156422958665445914898883876832504374937206982461587940788920989703675354803481802525765817689438198265485784620693453916990546542396294738806012410191618200987638203886717177261413715159038006246216204956770768459101617719296779153495057079424605479598493995599664099479741126930444408653611374147434380757216866950448943177346860153548481530348088765486195359235716149321342049009703029807927294203819670928295370205101525921667732455395981916134899117123355577648036306522373678212473451876638656797982069136276382624484144345770304746627615034591667761424583592106938648414081571132767495762793581654152041578676118125476188485477860170675167000161328209346062978303476042449968556805778463641678699482528608130439357044243283948197142335750986320311490886591178864834480463814495568572131397248449492181827530699091062963486508746618165459188753882137396597493505403263044822609945183991274949546853053129756442566782095361500825356534811384142592772926601990627736654892367844321317876290927441247112734214870904054735091782677147688549033526327330934689728756022590886337492988709100132185303450844946042928550752923888060460523648865301761850114003895618484829354474023883544439057550595640816881523214756839008301632697366903114458946555752466235757814417222093277510508534673453471035392312428894108680769708186629968602928703738092754568353196098371644686405514875818141687900945574371179451893313178990273059067432530522714179032954511284751318066161863329808764387853966620656670293200750555231467420504170928784160093084879650315054743610115221782383025228266405321095454482758803568166737749594515631207791043645651374907970251747698906693907534597744897506095041173968328279202073932716659739927376989727593523746404428629816462831299926100067779886178718590541475179260899311066702016446930232949633508855002820129657737683275777275108963479898291454662615217347528477222120554675264135137330280856909738650808914115127279489298274963707935201811090701339271208488733159753109447591924163941111557550038519844401274960254212082643150730331522608037197829255323421177637801016791762978271258476329121548386101580554896824959267007637557088490938227042125374125580017162664647530620369309845732415109304686526287390673152488968657205801388376141005880452319161828529055910701871902907770445755115619893797827781594854328547224110423497495917841586399401163118707654869363934265698689335054351260813672765272515514075217352017923971478057420005375187144359370001368550406595357945564107711066689384935389069943312358348568262460788924624400120644234720923867234239333004208763956594183761169524111525198981488661958279240559953588516632418280448727174092006769439322198621658158137946977194133006583237835431087370680271033764125436743959212163543101679410269835412839187469901420025224744457340483917450036508845430991580625099822266106641840423956708670271418055206052944247014517214400147213076346548062995804464506606492570650120290929072991787496483184373640251790104327519196894545426122330150936893698754704940905245497903937477947884280896599210163668045746457630938678594306787925591374206967198907679286266729907323478812758787582901441895179750431601473990626510484554637858697099480145912593503431480931789960154072504042109660795771329590556797788688590230384017213537547978378674812750551556545421382899118733833386857708818535646483930772368293350776948531657316073353859986303486395450118301991641994917180524254814316744947557095986689782261307542302521091033540839943078433381333188391468130636323807449150142017664217804975995098814959164856111449384435588655416728809033122618320915165419494625343575219156840376450360668851166394355338819934382790505522290448470511094208751581687685855338735392454070664675758915069009607672320120653291041567641284674163238691383105200821538299205817450341153970685692968040769304045497647074564220526481433086426886321500791777733062103957795498311927589643435724264907357582200277593881889616942207848193449627474397073679569452974537788930296587931793369243329282665414431556499036104941402361819447038390214749607255756891759811858396365839100393056461823637897402829839911939099560356281289007253661922085065502803895833219324456611908977550231720989403635165825416197904369378801458099071813982519892690712210386410510558261676418885506730431137728960064044532427240500756611863431842912740966086225348467653250638210086523010184115337912288827110802032422825320326264603431312329700546194676991552964270699408856287249047149470399150868296530484860169745817694519700000231932693091013679466688447125021921537928632083914708066799259903588377691722242454018686057621647132730459304860874822174005399777527927308693262408313100209173111100910207417088245570585418232102551871499341189328139917475421852186591233316726899372278045645573850839612724132798820781198154125735624964826516072016307422598732312596589001645225141169929210792824368391806159226009041272123818494625746824391301568843626744365402777630790639914325177185322243303519235351826104875086459173099715670564528118771333240347273808322090579880398239298883742167037963061809457978939034582623323181466951187734115146355968534971548338645489639113178495939836374448604768833313383986239244654886918745694148626796227385277340710405371295733202301685961374835326757788655978335747669472628050943104401937284117778033990565286750975504867333133035122679047873093382757621688500587923545815810225973648438899969765393287424128103680848434671780826917006082267334504909307931308616252491973130610054538149876783654976266796038856110859529308735222845746849361260481473197628865746487862384249466502257238514085008882734861454435543175930526349503854023612249924820962977085032372490768207120438380497475827139464662525556828474216870765677687500631374368848269559859968373323906268562488573090613723371294369665697183545402909608747757577475034407091380326858102979869037445599991231744946074396790488056285438692145448080865459765810679532105424244620275899423968450729803773560922959730551225536710081247921736415146939972560953492022276116541392670756211639654457174656922198890072669661938631047947063799821101077888350773031749502481982703960406133318176483890072943724969609536577355172187210554245456594279905640917665870485789044859753610663878134007870656701262881496958194618121982602588367928201600962781825268913523585005239173396021016988134123369926901949198670609008883485891516293238109308485789325236617760525012027657922827539402119449330519417849779336709679195231788772765685900477541301702453491277495289895690581154546236210400857830830468125387031906365912829622466010561661599790878704463822476705242697337212400607199271913368928323691909526203357730392374494496018182813333375027613832878133193104847085770406479846859053539244568272287602568308786297843853482043092553701705805587985115300343386788086678761925855236387630976916163399434944579242201171554485512703670052126433786718800034844686495332225999558437313499260218085839988202100188958277969603525112314288959021460197085850372364129464759744930388459167441212468705059104578410065046340646878104571450438533614057855641438175301250928227512974665236026301044909899004474404761746016715330950990623465501424295771949152486911546248670298234609266983364310154604053407917428627459095117782563459272430739068915222706119147069313738207205886705790340556828313167106082240141229356727244118029133624079217254828196005009048876876250336693107703510657321815182110293363226358282011929782879164117163653557116994691664914232690555228092367299070641641189705422839050194875052764205352869557815683312970168051106020895248467557356709248871390711575906371657964641441392119431555123428220734209827101584231885957379129872962632831497858135008122281509952883501353519659143368950208886784656280609014626580425064807382185491599057367396376705856698800149591393993054491725985229111964280148845523838387291211027486369927228514501918860109043884031150862752577743735048039247702454089466836768015154527523071654288244991488740904498318877054925582215554635031903245752416506178561460249058373793693975035938813609835588378176783524217099226603634208384263536972966670411157701793880101480122765326193520129965889377146511607937897036880097631414991122698445419313721655164913743984293551084650702905812285377499712299243837577607060537716400585801755036100559870783494572962732227279109593443178225189195695812745950516941718898427953592665191924308235726432912710385110310338927749635655011239481274609841281138399021883677799224235262579524681748308433451180564850899565722639868318075206711614693843919555444645748400740958940438555911575879105038109431605444544086133511051892659875546778519306665626423797253583407888536518370558754918119052435582066774556119810792512286637921702692113857846945728980219974361861564236057763732000974002508255948096011785937140531398474810667886458821511672219650268075678211628306974986828358497563069140375793184376067935363991985009714698089123388310986581349598525667151809220925216516093198279006466166896214088668788970572974397092921202448739183253012191406877685856834139397095234818471853356126269100171623770917721514207934482381573612864844497957034369632625534604799901606596829368697896758818064534038889533532051693631976599807580296916156138287734809172161889096107313425254699743866389177936781746911612414705626889942191696373903174651355575721894769063127135085628860321889834798224785575284633236936460110663141462851561610096260790574261551879311257170163526588638943287009727891861561502074701507502985017006048532996194616630595964035164504963434721010737701443859421002734807184022013501173283159850281208380865337205285391701755548896900101042072751247769097406105179742844820894740035218302136607964436493759744583499787408811900269568340105471425197993824986871235034749558499657571662630400297526982436005274923865687049895141593275497652118688408315435685860791834131986079756201495280397871534024358998126043144611806584591880433992456154676618192578521763002537385188552913292786988021818565220158492910897898441487403119860380512787973355615003138813203747606242328862597520857683495938608300566709818780615906941559487578467378841768771894604265172044931528949589621111737978633333092921516477833100700419457055819846449586966056564482901375559217629181416076344773909484995265563149755262402310880475626937910514825324820490632596245488437058321698440090194505811162935259934493469046110959198131642902069064871480241255459749639170610871623435443168061998821124719755550127864740211717620415253491399037296451722219240560334848207806322768584672461766432044193417778174787275081705503258548870847077037510916693069287340495784702958230208032056801200128415791551869488577386089294823534315078472267676643988007737768806672591183231825699412715324497374853506321126812261477520238833642181285152657474929619880432420769919351406165331621143626844885415744281029616159594143288129400737858861068098169540246148109415617226926884650699641955919475489795882330711948105108282167680944810627781731114292078394993732653244663459856637482203229900817803041052664446387800701656095788142059585034865204482954276135059690934055896321781811677761932367695019892508267527073413195302569250490655635483836392333990667687888571995389549325462884059283127472998292201181269765657696137091536564165451374353648445072954282948916723904713274893736384589612254392400885117112884202137081529448941113342998651665213197518088167542977087703739717818800080400776030282840331200007550878338811487298941856693641563952608893140839946399226705956120594926633901686111319419481890827478746282506831309532546215343726901281025389742368709961127581885214723796725393544883247278049820183562939159222426970210130022751869705248358847902458402858146866675060737750127479526632099605737778940292387055015655937932339823504091387112568942620995627122747941479074097464229390393042457678117084959700474188947422723646866984405533144204049196355272538938165157106772696332635912261110840629643712497540913747443541672371365118383698770158889926357993760885402350844253590548996093521094776905071570955294287618548306031980650943718567513453376985424714266643243978356564037812047851927590514590451180589437727176439201382678945462968576661565452095907950939968950722188771897269345879124549546621138375668749961848273381772031599961582449111222956958235128162229576348546823850252139668331799984097891848578163588966951058651455872704990036770828250857744503568097797749458601474595590308576884266322980091257654623341997461557246957950371754699063366756484530805768138249393742124246386511240332690387567734890754865905536837963194731910075186157025615004443724102747369777020125862964954815000245255823229247337661799498870768628171349892144625857870287565918211908234189728972454300681438461593163728866097987035952909122827799089961959053472967588701312240687366161252674671554908707322356193248334577850631508326300940565567371371569765126510991021283208904257065342067595511841480270839235901463895483605786959911218260502740870776003116709553151359075014557193525775890016967898814586436187429475746839099255955837741893799425034475496017625683410313928601766545552640470992834074827798044363751847374426812517732878642211752574435301717141479921105467417393756648413820927267985119375941854693668694314040523815968125051113300211182942349078305091187342719319961532126335694979059264346838558554876300743276429904101393611474166426768334005590577839605014143656447169021850771552151408136209972833553641739471842996086668137993313288307830161261338223451565071659687928284611022617953483346165476885091811396309261069815133623296052648927298937718157567512378903900178136181115717530391170913835703624755547132072868771653647141147093013851212203155511577495474548943831229320326725862793320739472109320218187250272367181728123570474330652029976249182584172013241767093713417343401344371384399923815529102758276724340184848831590463161421169541092299646664743013743794124336156524787851688604044515669389764616961475086547572532642258755895920479313258914058504551657510122300919626880061729415095954669744302790137508315123043121784532243341081886065543133077515912281517392400191685371669189692926006146834547128937474447417507330260682582260225899010601276342163055474225368711009586214937340029733294239161782241081851548057519643211596543125068665998439044645631848635934400001608602509104062192746722394306841347002235388681206494643036944821935624694530800667149596117138517025422459675597095331509002821017810195456104395088497506546051952332556113054931786284184877453317426607812392116843432199815168207792453833914144152055367431093278558973233205502356500154401122954165322239120707663332126697531291186152020361202651211499679362057758790575128158884766870225630702487854371940098820326415850208867084427030575347409460232216973545329016537687031733923322064546991612804707910308974282462702442822056154014215366514038175567282482370512610735298002608365248711699831846547951742332491804067916410321378836017356268971843067080338616402541155635138337916629613139700706406324060152312993904824734715276853240680850535061822550933823120353480137709601349194564465251017648818876897018310478542007395493091175312900574453206267770930978130274897170188393510644669160000870366169170526771029757828755569448156842237668758145059971296042681045782131181425802077319389215613254773833838443298273284891788790207620219258031720884013912681461488378294373308997888208520906848925141103705946408704086860563329983991384614776560591810628910310930023116794490731520609635821029375522959065707852497239586530197450355923377431784827106111194672035662455038888755396999304109666042057906043342417394208683005284019652506066762034762783998122331799072984159375501518638794057585088072623026500649599254384018125390347157108267444282112924325317382861890215220107086009414517765549477050844448730204364109050758569668851391011427416004981365863823345562897904118801995176441016634418494935286490063034266249345933122949389400157335998711783232577513118215812052976401895268922066921621546279706501144002089288829856421011800630208265581058457734755475237764323958883556415170513690476677713195003485008002942747573520644684721972754588360117856375517203969728701768533961582896649385910588916785320256161807975102773792740918823724856692892601738899287590033680340348982988037618754625550144508189683981693649184533759360217954894704541062724595450362229564439796522706586178308933307868930586790053135858250003250800753050325310960055677641086324126892107159981798727748720751929821434458847598016846619135271759343214373349237082782862713976667200095225331550366171035627391021220745963195680467623442926957950335648344630110719706314710863890002038229411180471523538985783168205515743311698135022415677848499809586193186303565419823144659382972289300616235209467793518637336264680225745554263786974676055295817391885641051467925943874641750395452624322934186738280340812499010615096855717322826477674456591475945252292180819617268525469300126386026489585408197136884946277238117335270123734789835486605100417615880757341211802081514465172407579955013194185506436374817707323700449977483221612315015492477608149772991825006997032720391138651997724665098974242713048448391219904553609829444628857478711419314359470352151158589470914941407709074916895184288449658119201163033052726079118833384972086957530184669566254702564045272268254250709263868548676755913630751308646970021635085783724466224179617627207196333392636890946965440747189659194261527507074302319898727059538814557547347859214766180571652680850643329230631808156601346412256666513905485783472720631619228460309834035512346672552948923427927339737527843931425496441746924701989351596726433905395660149001503668974883497081155808812301912158922976784783832177274638124926066193526428698447354598314498228458003868373430968346716233401605149188777574335696906430084475431059864898455069807314379616810542054558571149737517957215602148619737915420234364524697808068391902821729071563944296999460995235598249208893733108188519392787037471303938102233743176459530924507472710102880451120427733101594514452366254061356032519884876175658502949512037918921811990200915786481397339443570111645423861456427416080559960967222548671746941695541762223064298126774591411117210627543766160454171330614109738904614071625361425225642140648756258311874867950128028905842566148079385922105410684524438194440550738162635190741335930763647623985054255254991130262093496626333469711617482730550223691132059382970016966367961843267228012165211157473703299194691431748381653335928820985400337081944389057064360987282641880410290775840809092268981876500986708701318366561839292403070766072784290918593051921588697476685645543374362155180454134028322202379624164846352592760981966512347871011157507238184221155706550908497691459750436683684682568677721070895872518690883979456673030088796329508608521319462479786523769701524063338345734613789100364123489730205120504204747993394640080983364325264594807189151927640232791333245412891294009547723795410901721233102850918357735551397004976167914089919024489869025942331015843652021220103441110328591732941482312780998011189583826619915616654452030435059302703712304463202583194686099259386377802296033091904733033832840896729266926841794789304895237407570137469976906422645543423775037604614935906807993567661498365926049354278068700931082897434265037283560706737826815575238908785083631802055301335576934655469529173732094441155104659801536078458914379444178644805336853270664585763773417062386580874114841902738220466781494704295373973906770700652836020269858979515491132968543156701501664762614480133420090544982388073416187702279610737614754769111337440309950183370426987530293624786816080400449003641699596750269566984859121574459708028693877974984581249538259904699130639050263388447372953053751651545690688123743032165649475896392873807694079110600602710462156196907548128486087937480984110096455145435587148909907700553254958234432900014518973301929995205858050756746371587440528072851590536281354535721825111902019269493201162795743971133241603545174663618690479343879862351215315231260109416919546228073817910453421152068558126587619885520183263931563457181672370183373125081988945359212335197248730903063881762030253302358791192410602652340933927523016858350065212389315259328335992751970249706918064850788141682828987261438676955386974551982470521074690493521982519594769281492764610542520680673996187339755055821595245382340414176951349381943394348316743593581629877132132738454304515442899804180166331998085774718442055704223643410657705781335913533256045182062004158446016210027917768480146078493113690483067588523314985241336645057461879493777075907927070709223583846740203284766004101138668971383940517111329751857770811236061497198641004454653458457396548886010226023140906310492831132761277206935922870285732100656144216439093560284933209587261997085574513603768356028478332525028751754171011387440807912980348967541777935389576733549051854002944049847894898888176809831872680664139972177432175744330640451928373787056567634075775851599515001734489184228786372450567309039999888820274156554464207123986567728398508523950687360074006536670343706737418338631610007651346338668442671877285578279092307180889450116680969415732256039000655909739352821868358720894056509744703825698196214179340276678310806037315140056119705454926715853748875412070044178387028070226690335471326905914735174342445155205214544695600043103759712329724816871107411829901733340558657648772482413678882088281225136510281852811672421505973846488931020231881334973295150753306871961488872267868501497014540962126298361039419588301730951689631958831210855106273478165614708983895838505666823383448620031312325766253234966484630530346213512817036476499037541326098989853674430231607154149964792379326892519788379698455896726399473656563733562384154213132450123058581892381638590233250748037739754126900398473132066530461026833549643941736194193532737764640819678202704480144648766777743599336647001431053713292314541105270933314491022880795016667535894638932335426306048007097659526557959320742481878079299275083182374552852576551927971610278001364103715074308417133981602899443313136960922461592691640455561259256069131100018871275520508840941737441477018038993530527491089848385372959874767611397712524320374279481957950748561837347257572893554457908966678867184503884447539881383693360738824318202788046290554834598632378586064460411873217931108136186522290693317913414520420651070878794643477245061485592893115791358683015272682333716024704345426303535017202268224414257425831769089716123509279619257966648998379712602146479715999961408210824684537249726060788980533567191518434223458768056227711110707541724059099867513154859905569450461183673711721817620771456034106133082753066910029691029058765902543174391054050607379579240226018743005731994487792559975673119690712002347637014065339231871708062646481147190229215125354742218336818675723264155779922296697747686228469110540911782971756763019785373083305252276881030265074979105888010227952367976138462270945385869972282735242638893565827056462900271323063314548198356439626037734722446011884227812108600258102511094225103161670557939010875091680262507836508873750775974244332406764821633409032125108746967385774225128434554912403378851667583482281805246834848440477747927604692276367028947200125553601714528591049273710843590954964489992538704362348036969232224330457055395910421326519374763769777958599927180240609632203888347591019227802319740694298351444748605367485950360718129047617669649013306997613373936110320386886233698604970041320279626572591670228429051719049631079388648670474731585486724603398887436430323361283554343699488407309402418039236663930650752001265255507869387652484741708791177955566135721831823793424211522773238618286251164977482198374025353228108240267076428016780538323217806987011741674512765755293561529639550487793368228985404083049040630348504961688410014195352196205422618610826297440140705623411195608464571684984418994728742236140701214827114340152309578420356894884540885081553866045496526628637768473488375878351327602076411357132240257803660267601402559968258675612253863066185098577807324168436332703338519463993859566680429918215001927821951343435826469669378692762042465285147181607219039867309488221605789812175692111802765474170608995431793729576665630112747487531320035172187873653478710622174030088121284124221351526691825645537592980954792218217760660206787123706641658861776399366847689378167786629942886035110756128291681743358147791925408409016158469696284164605302390884991219073062316201670980436089485031758823022354313922392137771331884572495488177257921157377968555879171108183283767069332169253243438161623945627968827484723072071599919093716920728197189838851561900851769563858238231203390016278533559601973813727348232876524485283044634531384895570207835868487601143520261352716525924289614486981452076573648268532554289265282209222892236311640682006187159803629194787434219602309635231502178035537658236440310459197959377872694195471512595348072589391603169331079850385696074893324930031224319891571498361445114622904045492890230357220231797198806583351379301054440513871150474359758260784225556303815897180558065690815692508891042399055101432708654883912908688633754170793176753951997205557984212885809770474057814469985733645532676521867563063724461117305472686428054504307776590851195696054958216906848144206578322536704565906082259517017875140557687848318462540121536986738178356441877142831090827287160209947582849938598849211558608695150880365646350280858722543624188735589975574278186974213373422252923579274055442118993646986482985359749220029439488201667099678061853455688962239968318762238814997935777766896200456262529539538719855083518662890760577248878994904498647747954933524387448885081040017353450097073045187302429036186298190190183576770382673410069861409241275156332530729155295362054398100397942489085292279049936235737468855091503172612980111670888524239026897100212233822908645129190926684246147495793141538837001734595786204974227287281749899498243938703775409070985027449372048080897605000973433581193332902204887471159941985251421829402822462901308844477581100726132620140741074287566033214513754059245498068406824568297431879101830657214026128037104301423633372519308646674482184178863478649530097102088213794852983146059214196146310992157040519653989764848565096192441809936215142597950706125170283624953738555978026996638307281097228783955870287794586553426948246706300978005498667311844313340869324886682567254514519605153688156805991005115581396758405233093277017263625702367795120214610667903253093536250691161237486019609194485537762558803583855824938031706980766311339881982536966440354682221876653890894059039877668373219370541687817325190571578805485335652166528144805780154874584539797833375797739172900723688359593942608502098301854674623200421501710642656862822983624841246954575564818960449334640515368417905313417707494748911442485385733729283908008592736995081491434935667834013153230583598766596303081911853825711635476689953990117005029810351829956397629871859426926865523010006342075312046131949855427827327066817906797887605311695512935490408520740244370911115910245145255420423937165298293024986975933176209445298330219997889062727122405605263760371602231809279215688159737646312632369327362381970713632135474846659463861477023567841981649459320296412003608341124500630625581148513842986221905821110459444900530992152982235294132343647450214856138549827725777867852259260120249131152432761720141452971175972642781261779721641704984481069053056140085369093287392776301326237490968981854332804577841161624867033274846054011958679952894217699913465774216487764566830036479988518418314381578495927139944842400482447758511070221682701745808286949981007187974911746074196207444740257969816004973319803904292822395139899355180379426564223439748811689469885410919682877570691415579651160789849688681679166863135943009947322367624747060753599910441348516427513354954112994350005103206163444194182453119374699041156826464153365427568526760145385590891110598213703604776661635481175664979186656096107530696976658916404664219874363039729489542420007943694129431987562209859636679752428380797946396424137165178493282022968908296439557456340296135991873898982018738975849898086945486187898938594704925081901122900582360735938835279864396307733928453333930795009767426064147840947798154097696837765341115850522783806704391709463265002391048182597924970778767907874642752879135138408404429382519827086308351932684996367303774603703054070917374441685009130300427713134715677856272585107588399489145295501770800081065924652365522615008049946561208235902408428910577292861832249998801022305885772872614941703194394829051271027202858867542598462278970125685768579752538655346702262582715916202559440970607851935381257557717525215279777394278553996740584114485664847496606771441512312623754929398163359297821203157988475074736156608766153050812733012390249401776085891888392942862448893042343653333129097836906857630366256099445142791589998405875742455916309428352724155821659220294914158858824374573678470061774878861118619376119711925436210796462262026132520298491314022584590255252920999354483243982126189217997860481554703465157571398597776939695222149454839526034764752977079225758045030369218082675921354084834967573594926415234412908855264834788305047538982191678104179750677293704907336038533570484667446552305821951191364143255047008047758780902212787112389478055462153366498714206365172655158212451240124964849701266854668309236345708393650953257095942199149701358321923206175540915852503979576134348502064505941349416771262195097013140455426037391785161251941196115711136026137949081271389383428280130332560396548176590564827026430620961929353104513150116416582523299614111644051484950703010471491693576488534979771981467262008064599764673355769695064595853717051392233746123512825929418799101950588943395245195093352876006902532563917947478096302901851313697507631875426283311411639919233683667698570901174055518262195265878555828148125614622637751852541101347674915800472147683191338004719670413301544956213772710558872542370711963503882119027347707390145730782744656532177811861788433065699299398194085321394921877058535532849455537307389013807266469253327435536667333166104687441883680910073964019554179435191725071904108415344801771506154849929255431753239175655901912004249061813153525185441762697796734862631527345816592236135487930293318029945735891872800470394113570846556138804408649598149729399789851262430783091483099805349080342757619709126008787875503335705907016821531847741269006266927052268921488222650366221270099822422993742203294513115219797368046733888064363881599827384632676362092204077521408089401313090156914383723505777867256356702638636727349352910728867806657712600547582266902084703410379467837307662782062713625294677193684863752435298109636569071829606752548359132865330505773068906103495913126276225261538851904351112766012904447327357054274487404610947564067911690047121582950805281109293123305357211287295233550931932978035142162303100809056276034300225586764248629194207988060110418504053643400296857957810367344790533321405007726948306358972275603405263435802222724346115216127992414198644206144321594190683229451842040447030320587180609784139167075400125678055584872741392754086557487554666108116411040461917902272395442261602215360107443641120083573999132566423139155253270783242759691402735150094933085041900671796418047687251595250584787837344860978574610438618823763289640230618111573495733678756801134360111455573395197361589028907675065279263227543934471889134229190284360896147621203491931589608213250792626566117236163066237222276173381630678431668639889801583320522508825846607280012854619772172273388434191153766656826526843053449175391246325410942311724563679069721813634292037251736546884557803465346795964292003621354128654652099518001392977508518837370234673844076265720272824363111421812867702988579906482976295770543225540651257113279494311241916952906448639876357635943919511068982997397750837681193453290005625167137497473076050253118801811545182794520089697198458024365892200804479339701034409862200594613888130660107617860394020501898678109200328445507860456974419132730102197720762824229028783022352245611139943254315656530616634661486049830334660314462637791452453235295846074401499219484852720643901994378193229896516081298186480294299246202123660450765370942325331807134216322098871487706275806615611324980419622059864308598820996964596185985604554040784903797913457701608646751418500048438407747649718196897879345958357950981743798041911676000232895763022035407899247468034393390098600288356192263604376733592971312076715839722678707221655721033698178223212824331833819660662286222504881864917124801918980057435000659602690095360888603963101669909208514410888688808267880057589037994400436307946568760902379613602298484574387148875380227961938789409408340788298984499182852090001010487582688679211558163299057668253632559322234128693244563999240309248974814758927589237022165766363183873662838015269546379167469432979985323306991621164128245137060128017002414655833462867277872138527336861011422870333488338195546845309973309684853350040951911873983079178249894424097666991805866809849204702446827178000370108491201827336883963626783827091401166648794843910447855328214619889588470690623209986445496672456290665468312187496324304003462243730587335856528205445627889244787408792716654235017565702951905100239221912238838972431569450349975653002433832304395030044235977790643541430288178899242283822299594866284296239525679589264036405423237142731126894335300289543075304901847903546980972838277700488299283022271856268918669490943807124581831049937177040579706413138078071803458674385933494945316320532098079624726892005117782553312183707687688308140809914787700563513810535859531213880317164349999795558081066781655711934392194552744311671838139334991381401733986555235515673986937908719600024969159504857928055125321352926617746434760360986914144320211846470625699436452588177030693439460288636712716138225523660189479772340293356829866027446871863994829593749888417554085409360473038184134226180282665047192580981552494638866858297319236277075584624311090152698153540715941433481681317195374572795074928557755259864249129908346875370920545307043927179080325486097565885729033597759596630110936548642792259524977604157524217386999055273714880340919301500462093769251153716815644112661289769434686293549539677820216432444414306066650462346462497291979928215932562221084969191060322421657028139889265528741900002224425337186499034440043777222120917692369715300578709237919000079566391795900852092434152967367126813058775228256172399297919135319351764810516625570097002538995211016940156654366510927897825419008140504681013184101687718075704115729563143418104453788615874409811405894066788118118603306809372737024910983321320521129368544996530726439714740443867629087733168503610597614046839618969154983998325240910323672065427480841475169154731275908872534771272117724359196767521272051579152354573020334629785411270648619081316479052528216533245023546013439673552060978549575544990184517340890200714013781915527324705916736977552149368466194336208300265968940617821310540161235674114561249112550650539967005143632287047397334023702563596941675457849167398646160853601682389510949445521226594078580669581041211593922785900529588414631763593782429724823634831123013401965924472930262779439312795915331531761959252315759463882445043137666026541935930121196778640313328441296257715411483885465658459102830230209637936544185392445109730178076108904206235169575113463350205169383512149376514752921048871837092194601028892934049226041747221402967794601974759085937369360040399277444168482276126222588809042803760356696970942656140514984578961408260703457639270532109529269597516046832564636642065004915744799070166504811616809821612191432650153406856996370809197952671701473036043484308426696161419418591451751903656858144378788616156827651068554447269785505363800537875317717806609539111219373979688002574173788421148482823053427420747787471203641262020237904363237193028058430294058416623197117555928825241608362708668406062182649319244315585380272168190598251693781153623487159328211911808602556324086934266564114274382613167827315831027520007836979635822771149791874030291747768700604841767504143042239750674643328922182835911437419830690109369217994539575149066218106459708452773763933332364627741933094301738337641821186684448088443928742774159337089232666508918342359237518774446170620171301024009789715659839687506753730881081658527384518917245584863092393658945511242408201366531276545904900810093418089453683135711672045629767342597780784893482144430156870265552029596606929657741575558209096666055161057405672533195338180514169941595095005356313723538525511696431188553947078810627594486240199635486981214672795030240213909827699748373714888732747849769813040703594973140115961850221932658332908337999518573889326014732068505354398450359469539432358194355925249062981480666815555353078263174088981509700889879391235529295300023886738991576762192976522836580974030849880613532765147901116105642556135118744990730830386802717419403180716157934857813114213455289651159573067081667991958315010885292117787281306201574719590044744926314941890795495133369456104126941247970832471252421303816807263933997329853355502973003704090527586073010279544227262487209741710033561457036909193982391352970834785483848816595154354438049296566374874801173969663587877748942850393816026583855494924794755256240171462279049185494807052188624726932243195850559239479718749495538706858442489573496477395461915427232670209179798448198689561093737585160224887082433209736648306221562464348071711389415356179715569640383656014178785441289774628926357081786788025424641534380707933883241808246937193282148849554725261414451493683064248336765420922466605391154446495567067065645964634556019380218309903011013285503529703116623946503248124846531743297702624150123113358354667921626344270950182077510335240474523932319373601593119039243103789322776307931160858946940433914203170695658020950408985043546890759990202851553635858638097943285308454642383702631342652556578700064714721846236751938255290298507722932512188243594010185282918777018521477481904984756830535354818692733831115367994240564674475328064019448194055586909772031479925517658380548753475680746427307917279420738519132335501498743609135845147582280020142526611752015068333338676046239176006340360074954420886244606275364358534680997156078636940459199805455834100513439980625334577612292992796107993818142375437006318661136436852144004781738269940266891519195652352117312017259591729504907959417895680105202157442533033842155363612848580152650382387161304986352333187559380252951204457052165757390373754971014362747408530592681298483964461122037248501021623662811188751772029617785415304366365188687027535771808537204607267202395731965571248530645299889202682708717160828649963046567448152490204946067801836356760930128982394916850291805624023763620544458593981389959362153906515068308798598235073795671540165623121337692796320472106638725289889647190196078788261708355460462370924152814688690127853915481759420410828203194299258127658558927704452222906628683918544158689230973394394909669004177731819594951775759610658469045297057695437459598021285370420568398068473368219983781960743832902639386129925734851480426912720151164445654718498187805490782756602668176502466169203096447309514298662893169083453425189484387750251253726086531548607012448843984560682204722735835443093975884418696481264058234445525736793930517904948095728132313992067941197773755867567440317296324098214308890408069975531505380110370971829831808779928198952839291205228516169188381571304702869646197053653712066164162247516489154475535873461504643603349218041779190740098415525162696409389169209615676303670537861737900017287772897305581159366758605428283793558366247852076679390707576542306571726736999791732794853319608179996668308764356534304615523885332506343703294040743409742113658924130767116237803720623819971608759091289103826063536709073376822766235018146254264315030825135892123367082179143094598336658104287746621499146164676215435952878128843000940614898364531637127291687326265832410583875567310313079126122639158319566975631455102485340055113909374002274446977235090768208817343187280360840454190919693386549950690303743878157363176379033560353174588270506126383162903255254445948457626752906514182547103200251248079825122393486848588268084971219812954205032484429251218138382092144115156953549884114176177187285122818995874996077740641972577754572615918490080659804566321202243892071563992800374407160316052136000121150948107085231051199000704498271835227477343274114471067612859800730632165350675223062261214395228952469759414077722315488172497906919447118815298500425792431337489604513597313691674368538686305692905689237458327205248581773883374799632970438968399749928036342810643039173472399416502910238409482206269883291706429752624361710099170015384789225131565786438277202524787098429751067558555168634313021567924065529107075610519207640497575072008279022763302540267972716190158179531469629428613458662690191859331552471811067852682367727639935365865347591852280920432641833187030986671771405673337051491860098445528367430188619360489029166604444529975368605319467009431321870998285051465875628107570897105663204045468171505969613922773917709179040331446569424584359288016993824165343524853263595861583071566577468036108804607122307964576914781381743254193752754738086272878378063817528513079234671331118566987245540517380359786274848661701785862543430684410275164755310348227100382467545842452900112534636484545748136398790873361688674980350126048409336845130882582593750660121172602429521127399029857062235437618209199931746319041071273373129983459324557345933746440264289831912366811412136582905919869666664494249599782573104711100989412946769886943500836025642619745171371716171239860757778155740466955384919745640900276406332724544437116004197521597543627144871706318769783906760500001160630889821596242542991312216603393207844438677175321694857637696909643079570725748491971034156281487749086001570166722683077993294947368700968314829703118695399821367415405037742928273233994931940545987161768424907987794600242125993232323589452074730805823625287030585211184435476228406591971184360247369718680832703918788934015361293719127488067754204611198929484328251936203881379559601107602822188538744241467661746532207429146646557541777797046524378081787647312075883917854458733370720645427315993338309445714744595665427695237861800901316814833136559524384638808879305086944751770243584765842641090395229807771995053341115999936355426147590118950722673689888454712428152184773175086948922037042744823999309659169257221968630597968638145962533766424107842765531271863942395388848906717983495308350279416091727106700596785040553581501415337708958667569552705716525228564007277194994192728411709922053618818171506777955033794676714458102276183860276685751685244933865763836965795325849654538354633062262375660953024304102064178765893852722972413872630145457077048433170763365000545681914514790827425313292105235861516294148481987836946271340428271297404716551293076052616484590994852903181165915787681849802217459253229952908492247574410706826638398296379542698208362524606057665899611207070834911773512656453541478153649743610287814475324808755393580621922242169425492977530663823521038920318492769378004170004023946091009076556878364060579906923460592008942258142562020044505531603357691638724357902159430380627299281615478333574609621157387001456234523339566614041182145321111846063613274934909349681866484261271446392270118344650577387451537503716259166933613857641600700225889947663381247702452863702737469302565955213744015662152036973863376188641620665444506660195709986409887012634265156191397909906291668286158181094493935690267408337411565672580303969779090551956521913872630201400022408352080295674164591271881846074209453959210581164494989747070385754526192862931943724886550553064184150035959375892501301221595608078695112994658494621754298719408195690908729524262667409056904970648482297341197909909517543742024089223346101920847868820942819214808966901360165200704698625460430715443152954403274686809461663644828993695830016986371553300649636071254287879299951995379524103407794902109453713956158342598660542834492267671191563516493673749092733980760630215764381580778794817541519712288713477586235473093405180532338966698246897755860663892768501478413632653534944312688807054523926507340475270284631124280372884320586980981207563190308168084521110793913510844730179664807999999338263573810418084548308022656055172469688350558711875932914329635832018884355700283312974274793829949510344923941735899544523483349454048182883310584960078776878051808473555568803093259807170371893557231100341325937653427445220279755913902758514838413802868562699060955722122082333988638865714412746886141148889278096076585402691584914664069217207745175636584963027768273157865528030359183958339874662303774035461499081395442657385535238561864881797186526737490875804118128818459936925367703532145184936329824894410282766099726286906660583931987869694163718777213138661236022860519807863042682799928895811409200589170286252298759603109990109770948178134103894794340111385353304897704767996922078638320751035040113158289210165311836403753230405572676123013155673106509928301231703580892095855860955183375435220309316239762155617789459419427490074057850096708243789593063860856039098301222480387693576257499809581677098588697924860551126526385273217073242539510353010197208938887893335339425468712594714404767403763077659234958264270467461813294133024820217715174527655776453616531188518742779495373113652700441230854227801082290323929949045514309261988730678496386475334244814294445972176569353735144175968368188204100654095561751109854936270098530488737469116305995089784350952407317255500130711540217723995238899124553646083671373824495478571809464770030057517061330039949391683305961458756300329073781399989020990797691559615757924733503302921372177558103697585523848343789436245991810668329684809612027566763157489923555631339345692332498331868287610071720472825768263880086747210526619401720876158204655229333012338775612260122537146029045268259662271681219766051685291439949946389531916519280621845209810238506251459877085003768138705902793897581630802873646820378654925025376908856533553331262644425159657245117462618166289879736455915983379260171918950998583345327514093493822174323815183922269667112589002896166630742404503500709770185948969760219625249756105360779912855644301757672570650650391985344761378695955723636452952710908322150001791285141959870443436787099787112962917678209899200180568639922574532808772247632594937649447675698072639665822391974615881832434641627422224883936667325696693667719651285150660474846480236979786993186712958472571872897011886764016122717077247776677946424888155645067399191193606423902219688000225103274641811911197465775238023321718923540044214207973801377251865472230665118858206471022135370992327714201154288589121079304575187974835923520790495431907143494679598696841467540074626980914633387364292519182613598595834360010699847775782239910786392740743260961198039613719468944358832818777760107359983130123489545354498860342130028512381087841649559173799902720816420372416496325752619457145716337868834132496758816273738396660448830965399881283719071930537438768497349210248032471579353093714028907452910247904226606954728566505833234185858124378388730546763986094854424109951383024051562649625293556003897083412307276220159002633476873728827720015235374884900127979636430763315701807234051971172033979607143464395722506318714069776743466215063138325185132548573850383838768793278601995978177105982244902995572858861780825101409687591791265156064920276855012406583638260664877171843239031291204263954023399947484525988866166293161767191140084907724302378066849057141383453699842188625329263035237171572023153205753763746091786779400290535910283993264889275699043751312266885129354713090934772632589764082061373183263517293614672275256161588060681210060711103814970634820957359686314797652503314095729770150880058323270311493695619149584469890726210410561523958099450432205075892868121260946998049984572270544473811990200921332274109341973309635934553921475336340424624338865796867329934048793062164779245366432396775856722158257072675360065539128522588304471483950059456730510967994955386846088419023111477858111783973393325113646677838567310485207288487140420810932312307884505988859090040701473216930036198210195449382481710502737223982066541515177425750537988476269228872216427029139222192452126811953603732288561012160048364419130538297790445906891087449983700741804828981909549513998461956480611924853344109930153398821654495019319530064667141561959468381026024675583623254221548233645276673262868310939160977532266676888558855519408459026815796877871970494720014496766475839309614699836045285541294107179308519304044094466017096353873249291055310459955462500193624090768176662701420155357771069937736286414806489367812365790145508497368814453427252917920838216100818941025245037427340519679691349920500125173148053735815050578531221954574894699700806040881521794932063968961077658189374310549876976251577467664309195451201488247495600093663686254202807715363346444625334364733013644186658603607084881748936189008223656827827028183331237761538997546611494048192040145837941190743493085664695734428292919508525225442621980209607764643120807324215171878369402845104377473050862513841240029442317344374403419620689311244482181699052807858866190555578862195023643537201480997490060193779443748268036504814126836808850158189758597810912696040993919523291426838617060709565793115111404211270681799181483785982856275413010494811864309697296856710644364795479253314560036672729572336810804914077204893233281789387425565320173520368210119861378911870584924824890000385200857588156097245041420877436167801988048711863142443121937456678841325195930305697863191437238263998467440110909300322842487058203070835746768940960023601840882416561399049835817981508272113088839614682639507763107325793202379989940677058376513917468724760458056909475257499304160815438638734915177954848540901798242102127406728126726159842786661689278188228501184934638193790139837190584496599712718004811910712448703186087340109585278403427562472307847361404560438730959074820059817820064428652147213455102116353055556158673338701503577331997819128210585035815643442713973248694762865847630552680294767789467702310859801515263317107745740499363873711688733324473926692414794593019879519652474888822726624373375149431333284313632799091178283495006403479852676316383080531170742479569026818192080253003846213107659724032707361920872342790497387087601113972064327755295467434641682534977757334226685992425454339089765232306912799290053820556457341841372970539815035528472008521584651420976117117206793145238053122113328034907833857052857076924949999225027915379300391517810201140579211408609057545019628090951175691002663490231164542098521050090350577050415615462618996971310122179452721511072100732067683831561112366412816786033289757627588416083379493306579097206232328485890124597842650498651490368329479222519251253053920177378972284523265219607987683291407285252981408396301041503535021092740255020815589750292790849387008514644681717865361975519819915704047636803839885427417238559345852344948438903322017364312656979646910791238174836260831614699898460525551946988372459965336635654774454622238777417841985159405254054636638299249735329586874686855180451736427405433335758796600864036993686272187335172932149722289795275865071577018069374695699961464308391595148084511875178779356565901080871552805369247549241236935971563821839213647401679719655257581303268334980544716636431433543907501628955174583150908724143396138831192594201193684173026413705462601974947214985099011412894262452286701549782760272072897506547479493664500549905186656299384960674449726021633785466641283582113268703637277213617825425207329810603805465366372542384565934601878796784474762456095945479930922829867131332956322438872210617795241831966039424543570208165769683634413081162946552298939799040567712946551354056517053707595757181449746043042368092482326656570794606056362917875770191141577614155004330828548330119366770504716314151018342776030630524821728940312792236752107294468567929997869105896954114723467566285458929176455255541750655842574123117420500059067211187152995012742771278446603596997132110081884345383362243116587600807062117777140232369396510361528895555246573490259457092281018825866774861465711699639213522734554111253454163483477371151061945215404951547710132583615589984279435613941754556023368625040207234294157236619922291409508098624283373655802164180473852810639687837927214542264500947864738561247270180775799321848207306324597902321841884501609153261894356228986638854289832965257177225697592444251200931728681549766317531656615255491051446815534409233748154116695566017119769434942338714372874009712586301443192872220172290259909981387687987062715374676888659856313604452215267075091189740757308711229658567058664053961462538017133939050872741311937171003365240967150040858531307730361707098987070929713100667858638884459693191321221755427299088175512806343090695892711038248400165821207306462812998999189475796175889458269195674501483221550375475257428494943491251933108749979127341279011440489029029997384473747648351787359623538061771251603654131351646400141689156336015474022535187376026868059093240275779930285548468231162194759217954265412823311817072252847822861722664829965852634441415970178893559636702718284575367249138871835510311945982098653598576599098145518018566768458861762115381383582888353901651145605144247954008821478566913056979545517368736268962121341906161147961079221316798949197706722478067277285200003674064932548910129131603271553843891358690278945693930701600682592795758031829545301190410627829054552834547035089324427215154235495588491312084601126307409815260654170964129902967719675937851812675647776820926817623871361021414369113671250402057650130864339883306969877404864909390288962052004253121114031272791984208563731121471207440960982693389620783747270597477066568256818433652926947021838102307138107320763323966170934779091764751378246362037461241351511242314786901062879303833140877823604744613920919296148349927110285795516404892843713177126869068750224456803204659415116861502642750074535302761595622629495026910423601686972381405798605341322933776690806399810522306773880328704633701059178016365066218408290250976498274192944140543646709477638408442174413888390150100843045001882168609655858066784793344037758218650337370402715462375505563580533244823688666744472888014837123339550893919504578944440994092647570068907217769218746587363843713822126000891643594736194653867500722036406427895213047018496687983585736290893641020268053515473306288932520623871256551510479995952727080774803896131343097364099284175899205900593628192983544503427236518653417000466500624287218448183784758510884966893489017748338201676817081290033189636065556329562073039476892226007729535069881435887592111747280499371678896908703352436276477285179962571673804226232949903390153189128843077242875969793496057698386049168927168482338989375416796099791228168904273191611510543070531756270047202306208628466569048362369155809167552548212442096704318638386011513790283784935846028588875631441130133704921060668601388171939626107728913914694638853882715123879633742764245006702895351135994900558867600235929030082391723739351871529322368497831129173528617715935896841516829069620333337482523576451477357068833624530655965499508638084640431127011610000663023290082664241008933907379481286531153147325940627900152418215772767976396126310821949960455767164428431742584685421845162116712693582020945994646278549124667408529083344615017774340879221659690458645622163806890373740308860775286802530602481992460637909595726082558617335850260320434564190951635489279200803638646661013427095972780674558737086523112131439091160092165396665443413399647119620783977593623842905594028136398920706396389757100982087552316192352789405151737815385346158980565402266586837755823563962942453119013640288975652931660795024855491163000343109820036018667013294379427969174527744151517640081856364143878224916762754616141508285210471487082213596315922549936396398179824977650683664591233038595681352066840963665516971927325821378407098785128709026975016100557082189826629148459141554702337699856236416052108072925319986363864386313673527983397442236239919992240512450628279006253177933422131683848797478812151368269038605075140365625272579543481787585652463974145801247091203458775699966548264680294445939549625422086218949659041289426205246919195917490386889694612736867251612874364656892236914111639924744383008222640364122840760898683634947703790327203982283902883905788788972664857079535569452042295145161250853179914011807799434924347246925453189410788382267690560896080752939713416729115729305411679241337288138085994755977892944711552499308963422640882412119032758392173456320691515314786255127937515212962005770239055624323092503205313611710344399126956511833934509800142256216072034133647826407238799311592316827840551648022840423285576718662619629747304841659320960629639127993846068419854562873439596831611432611159793602174073313539832676990906174044229203689729800036106888574468274721849031925763529591272790550952114970341923088005799277626617651583845984867825226430652450483761044093715446616220765920509752801586968407437584645417015568263942088006468325573810506890987991782313217128742943036129886666201272065709656309082998145994579770213743667911986090349637833832519782149685675710672961333513794851511405686463497919167885451270724465442111289467083527370903082570510136766768437196296827979858213106206697428817921535096417776407979485603478884838720743698221060618820174878407274023740369823332824689705012913378311125033530489362972149192208367441538012851003585110610534788387789768217428514789493310665185198311614903831945233022415124488568148676237984223140163453203693985784410118595756095259933413622708512412602636572881958735668896995237126195782440935778175753929371044559853289227760659539310379956923947978784401605944634402293591788407865574270021041294860530310856737048696263830608793440534784623870919267876005762187134376877212510379663365393785900314289541193869458125695325800789898399564670430499387502385407906594922089270212448327911045219010748606551906433588468729324953832156771937561746751739406134720641748060037032613765123523899824384373166871782515901163562144300390799826909723272920414023064763269674946343912474246067520463362752122915761709771338999834801942053896650162356870680768382687280436042259744955401458613119624659942274702662690331060758328440445385037874361972259078713515462647748683604073777257377377204800064164328136568758444149314237520194316773222255424100627505871060317986746722745793934003679806679830383999144836521386435074793693797931543366626711999886774840962349926618043457360901217038414104570446204126092669203965164637678145316405502766165052818037247292828969601965451758826502372994476042150818285576594116382339158808683093854292446131394645029185295502726829882643339391086071936689035387464576519129640570839292289254743057090891338415926739609456387936424442720277612898019728394556034465265171824822027476719662838486154904579508983074810931612442462954762431884289520798393474101215362632089065927445588171470399377461127911956284777996017572853664093665502384365433534754146111078825662318170072933525163215558267616761170213682195318253044927442710380339105243897203214879125214548281829096693366112940019862536437316385193291295610723373355974639568888379772323784140223000680210096518918041316003246258661350558696284382187893593536319498079116649241790935458429864274051575767910820884585624829087093127425683451560397161850571103732651215960546660078471869969002017246389293812608970220439688197694809553859177872347379183723626881570506420939782802733341398790270116789110439836453489067907696947084785180778176928566617460771400858856908593316936404512404228255974229122603479142710909266859883953052757575159583716196291078083304955565463062423908405762183901977326880979436714173187607500315331534243285192779810895112834800977152313755939686203839850870159847921691942255389255207812409339092952273781021541003876670897677878419569986450677337770065375539460020661701704466502060629764622118078307922980364082280394843973523972594264070324801951605646688441269133816621147357031360907548853058775777591050806898996024820326694213919135314547740637374454195096259381181967899749945655438152381208222577128752114454899140659769581595107133056429619723835737937814554317157642734766986171551780672217394148932803272770856882533159653239294197933107599755073558788346838076699924847775504119793628838117555615065809666203712842541842867783754075255379085273858203443390707231728613398835214791679533947896302243939369691657349869333922277627501048661539659995682906077418849423072982163267331875881587701215329418581953191736197748368853631378014156307310699035060039340986188167041309850670922731548063864646068355518762848227640864646560610451195457819481089674293357931967719323354524402984823479754330907751939292248956345809724996461855585536459774494393139893360070967751139794706491543923558062567910743640935426623057935449669863606218503089622991546467965082849904827611949192553708612945282552413668964300095786248051554677325393924267822480834194564819028512197612220575341799184897033148167519600250248375386254782334710220418599690641821121273716715565226927046971367250219927372299956924845261106131823766103127357616815970841364823142411572471889549012600047945717987896884564611397786550455666451304352231229603817198793110023449081409541638900222736185437649067961513790739899534390931513644791108849323684456243248556443012689327711409787572535044687319131112182688220492606784825993233651094651782069667919030883302100340148649681368863211400234605561988584429306634532348270452604934044854791215224042575639318964957602287830940423019581681609244980142991053555498381765380011216483436331327545086133736649878020121814188827101121003290568403053865802569101671968131790505696060382249145158062639709131051628725402254491792800622418523130623390991698934052073819459491896676857670421384976625601261414484978931502295512311395203916489188204632583138687765260499386622561814693799215949784124339429372941834973136124044784507202414646037881959476150937045801115618088736895326885738629656151112959427006956979542236690822293828435962567237010419224321755680613398759953420140690079099598339254933468677288171564794617304751927761719527213597860051817496836274432476878784240206649427527200829278481389964119147332435412772081763753719827335816139071182098812834945478779360069279106395841122949190342450655364994366482503265360406320487076323106831940505199857831341800610999248289261652203578331753097187745343634858007793026610654005902933646268001561419690301194126493384096498438651710916417362022977997690972883331510021850272978599847223749029548778564881401204209881560698479430900211439666533636711562534560073187818644135333339769647308043701402909426665607884332405495029598936154430754027930786617413108409119173117843615205148664209957505463780181983796645702483239099864779748766172642836448318192625817659605247246848929580960406511811405986282567935365701496830777481450705219624918568973660499504370493700237073838837707394204975100278948893221855780457515675362574195928505104484219196371476556301028564433408434307711241835315741270790429762794360190610404318803386802388323737969573021709313634453244332588434918750860868580857671260433792900134537608512764011274152146929187520860268486864045242560075508715825299570497902539816448319568588240743873663910374818458418531276415584083774386113129143459412173359485790941627418446067728994109602900041147926774753156736575990709115075642722065342868949837359453352496132432289067366870584549790803923343662252756418981757022796181168466447619257643813576438820463062946748311839422063115739986946552328167336883984638707569517957937125109936682577460317668237026497322160987687392126227844779144616719227846341490052959063437008067196025941099927408687197175658170347631549542755907186845115801241642401843636538464367983258786643250968891622509290291734111689491431008708186315657288329924127552893744877760986494763389547417859881004872935332032881704031515474323884939476400930149008963249294624826418139968719085585883917347081533874720236958007714337575762567006554873791112094606907483837779625449120116325644310196644956128775566915277912130648711251419352858324202064457741669331696163412976742755051286400596038945329414917899488987190671633797898885137640857401920752784891868295811674058830651591377550672686000702836976182818577400936805981208892793664455940022476584269565566513541919446110524681738116509023062409833497701602917770087397494089294088568416600361329237064430479522098031453926006069601002218283431691465539306107000830654437268596659590423978647593210381494237649207675364865638379427676855644762609562868961520923796931694463051152863107970632265617249341402139678701548360657265218939329386029360155088721886645099283772324453782613448883813542296556271006242764859042214358466883082610044802826306786025616639718545122156563581057046730059841144447526703369595068412796031222824240579653570581764054942021153367463397715673835500330604503010209220606379834251865360664181694818018924531270988562920067606277250783238632604938168395006858072607425952442681348140099876458604556153877626172478384704677318255668179034829604348176266620801047475733644522981497423487164039305154550968015126767358953631152851599196779794515291560763887508435906275213081867306585192930135701917687586818623614046489633327739004546329467952221604010591917579669895385868630698095690423825126121662247647334296015183861721822494304706744940935698483297785227029962597615238172617252496959115293221041175800916481694853814778757140220655250953798267326025486218312797971188372807462400479491862300741429772686350359227784915055888463876685688323672372826785500879228782362131357707435569564946697156599376551618686965792403319533100465522041659939033067023845159715219144899173225835004445030877185401904665035104164873471967085004779925594957853895857159936542795156554413009611403847724673888736787666409792228752352482777377810176287391737547339434186593469538767347531648762459203860771541065936876205841938710158278618861247794121800031608117834230920881494058789500388030993136841061397308292754363354282827630593536698539098675356801169955104558956567265793230170979135343211820500138968704598361876063687139606333464930972135197565087814684859528611124859043991610210053122659937173752445342016287660646041274584823725024103746324021790684945555484104426359815393879923770633121689665494605075293918470140715185066338266898053533507474171866956537334916600196856076838019596575053042334742155637998590057530473397210666379834230056377814663603756872936246350318995753449760840059918406808124349798927908765178963516238609951011970131561273640236412728692585706787784714486707851269417959500117385951334363128510234193259082362711442247679490854900732358729959204479801157245468594503705817603316930984633303547756922110689681448230134233970522037742749046099274108997178552485548207593256572567258199225047836656848801760461374687166626059263807221004953949559714150001175209213683103422291786816463728146638643742464442537757112127547745239872873906863713331898904200813476055014649077995213902323804822079035018863498940940582329667481265263013064850732270589158107285073185983017653586701130173973582385046360964242370275909167425709792855995780797186005345731614551532478206490721498433960618730484278644683600974582353483057416761732292420910381171149124774957810958408793391682893929804673676006110260920632192047703775989811154606638692424166710454180047631506587411078162042438346120513054647957676576628261239885518719277082753996193906941461427519479233197404110250584936241729807573561993431358903216170191980314706384723189000249550377356193012771299844727160119768790412133989432193488481421039204050561173253179835752728462604277958039197999090004634578931454482251198057915673006684028360518872433434317116561452283860403596499984066067919413930360630864620254377245970177785821819009193941728846975496724750411629238877780108043118429559642121436147461107311375336900849400049792347202768799157511773564838314900624922331735524884519562147808192820554328861949455565365041175463641825873831407420078538738577900124819995436540087649270893804193418040696833076185771329029298770212861160733502309278085259097227731682636884962521751062985247592360287604712642050724405981150373665836788641271009389250856325837251258906527865992131586417854761680421834255635860123709917908097805319789571131373471095457788496124846031854842981249660273769624009438145007818142000404146666618459960734301562859396290307205382979516314699416976580591795240902786728203980307590154734249943953907877718356422373293781061867905680368167708071641698212947008084475080897511780162755527276466956430572084540085225595315975208961175588780565655015830406943407343359495667497375814751049322641613818209463393543906806877208881806991020145569590192189144419756679595122229591082848989338992586454875547328780018329603209338510876975402469389522678764208589147768911914248276236933172525126853275741789453170842329430480803717925641510355727113249626369916071673075403927196646341926921005714227043282371698236804912156285167961584266727239352796101550887569072421617220520537943161155220037024161431437535590722311645947718100704333590158030286615680051427307187878082240091641806438292155438811396493401716512154792715395028945105559515966890044912234963355507850858062605578304511772955659221476763373813913509333195435354947571453702547036773495449160289139313166837389654315032742258936267971737729475010378579477089167017910070688688386769068724089006197572306139992065303569441504391224219685309800641426468961621996300210961621594288591574098562937089508492483973703152943264437565566573181703634297820808961928263621835687280512519701196030236942288497309110644578448025026482673062893331040420979116623403578416275802263200130224393572789875443698940663698396953560636361834860049813532140297640852942750970146865488947001956345985036874269285977465336835636848685101370438314864204775618153488655948085037480522722806297567593996902755139949137437274837682509436630712394463950859381750675315986142000155264585623905533412408857044165873805247758569866744768639348055690919202826949333235323477430304856036355183790896587374441369032548650382615289549119377626864416649394520925048363573320232419040506118051710479811631096890023518846053624579208689641314835463741131849642853936280143074495521161581760240243353196009083611584500611996142383769442122033904671028452703733268760392548819649839384004529979495410681959909254965018374602122274153025939903536543151401971031709953275876493175866407276007358720765758323631952798485604533680506597848489384890353713312080229733116749652510787998450073480059010748496635008928525398409873337043536231290891702006104488652824151228778457853036676355916799475922389079633470710408776968272919984337038995681875457655637420871227375069891081451445449286937253954060354845563933422638220215589111592873154603268127849973834283995663665218365322452863881939066045109740193074863659551197693896121557585610161970691310439614348590858034828718005891867063209048759768943513532801057801651826509576192626338663031971062614001916080228921836614790231030029046107360323111150471783938710222284717044302890291995310241739664796965629559921963504803780013590213592333622993656276530844139345653131911291379385888519788604750908409480723058884559648245634931267254709937041508776188514718507958523005528238229814551282116956149905965669090179294424955559677352110473253724516886726609583241263332756319764628294222880613608267169896836194781907466999566403201970175943877545503259342872426780655366433118932359960653052216861548999666388702783692926938096190177330420271456249712876352105586567361317029598417910139582081456972609420678771694369250956656836923912098639421813071401994872165452017797393343099036542395211681731515875520887945633067584484456931507384023831993944344737967155297632761977151188879846297780597856909817581931501255390259505711874105188758071308411564086080804990723919903313329031803190779128132006715011264465709642878948550606126423825107146416818479411442448011606648596236405089015694190248330945467411139126169856277621352459831752151811810330839321836740962452384313588024484706625285040654376034616694962608861453678954796972125066699244612480352706082649438683036221939392598243170363461893410253588175355605929240096829055081713633493064475251526838917435379956204853775700936041329781323823780256781829657532031947065462535807789557337815861656487360396991045536306758583317288944565157988164996403676077510819220614746439312051247428562683668005753829761254359748918544706645590415482661183517849543234901247970356556374979398293902674569420430605050179058217495984548245018270064650095226492260062672665851947901716542879887074918262753139272848556217371661649753351535986539108367256636705565585109195011775910406849331239184196472953665789757742543457981162543007562626328414798915528470670391732029654481801849389558066146166206563814513212416600673894103171501875988452962657111714520094457347017119797343302642893689090298122704932523828904072454547955483996741164615412339740574081695075150059441851636843540998270328618228860935660112697587269687889997003115649729837803809945476309713630570075206579427776699483992851957697819753434601439624199451956366402550328522415417335216245796876241126163486801908186361176634260365606406609668277309924086743286428885217445136669933517551037189233883304141946993305322044938839550152790885161805353004409807107236510715571973757328463431661062356429622130611422328287399495511751638001647493099775808298756847726361215185843629073213557908954037032792697068546873261271631845731239062990050515877025730154889284555177903582771546422027328167500982512953370705989569787889897289784416542794443944019790283359429051641590069740904049277419756343903710049424298489068648331034728581340169448722741345181776393068668078094128763520796003065494140575416958761236184338944542393282665160585245591439082603049861246829731421957517515272695227551790091408780708176847593309438681327590824520975353325335857286946038852662838247149964114338043247578150355628337409845650924991617853981348085788581601744851199793926889895907420456476509670932497477253110914345809748322951139815227133719206950171271505476409815714062700508700107808934903512809612181103981364501469300393041712148588821562427306500948280842135347886345776266274459151826384398685844502340435438132623109519499528637927099504377119738504413246495084069373163050682070064285622481134108879635851384113656477839749423975812674966919594532346234619495074717752277873083551461131605913217641298437373091953164947939896606453624820190318768028450401839451672114724005906650773095178431472599534696089392397542523985779323489516637649754886342548133526927993589017180680934153649450293760304562138861245434785919721501868116556875642831082663333642433352117952296435507072766688422947510163412799675734732127333356208779916850197903234708457780529059223712215286265573100208998474505425336917830442092479821797945405816724858200823799770285459310421862215834408039131897589552857808886629629290433646538681787566873862735864194399768595249304912527154672809213584464844695490618056251367429573857223829373814006840896339118160121240406082247122444462229441969251649923930640841492561262134148231796264848170636656946603440888995164192045236953137789387847279083734099742950892421138195273795027429382319882050408662443450723317835953161158688700503603799330733665456725073363585184667119050012047406448528692190116223265634842544941272742279520882277143929229791672361334199970229006997321755286446306296864156213317603029439248515130143889516558644386596339132754563896920424982516263251135649977731584660421662363199190435966220697353168929007463191320320304961814741065240305282915732856586901275916241584751720296312588483313295310747978039296038421050798201113962951892867151767414446889924013828001651423115233775066197354567767909247462462801485151393634361198508832686667418605691869294204805412483531131823546461043237590975084169599818527120030460258095993068492679593571830394037061918014936835431300669765152430229112003133308487160941230852367966866316265944375309670036115038991131181584478625771750384450926967758094696789077338767372858390386700449723279289239963679462357634272658590220876294018471620165979905418568944765387407367076518874528744603630989840797017892971340837110920638423948704705872996669933248652526270959043293835831802801327481256254863002023954693628359811619339533208298170564013257760528107442562592973627240008176368325996641496354791246324058946867298605115422079502792996787631265985365652045326671280316510813501477525280843943936616456083292834565692512337479721331042053941607531752220015952917816436826781053480974856562128804948353942076874519819991743852219605391493862525689557872634470626595008818713506434351453457485943383830748739293991678882240679990922195163329785596250669940772376306364595030675394305057094404869231720486825822938185136608180947753286714767763534104416422215655770894967319945367632926377466368097360537009880417103577618878259770816707918401972575443280070825570775048555642588364475010635757450999769381092931778867845836225693095681947966978482919081806512338494329200748157553030487435055624106458527432494963153624849539215231589355478934055806436422128461739924340467762602971985163187193671814534671791121135690676503251618031539899228308184682550092226274573104449265269998872601485965891356308443053849297963363044951242273517032926516669368356974991546206833167023132787385033377880104179118564290296415622953607607204279888413435538530417814193180675609137899167602218159145914580382007972670051380498817393700341652957166086037998973938075683948595514355001838381754163519578347486238441172250148125320839393880363066275115956905698441630595325296669087463655543450912515577882002746122887027628935768633009202153107253972599499125077376724697696843767016358773831061729998192989760399861348678477651472721997882092809381137886193482637532187197067910226433050075444133568561392606598501286257516636971959340604320182793963313254810662978811738985156277522025352174661638120942281519130886363098620444623355732769159775335957799211872172944657199556349670177374756614115778627982341578059806956283009683459021473106888761721580759207294916510050435246003926595609053190556469532322843113718595805932000971165947929984701737700443025563619287379966119182226684128675382032949283864861192253896276707741700145277211693762280150298503679403368261688208163068832843333606922112808509542492231178847572796810212756894819782151066371935552890502164855486797084245365405074723060990075453300203423203963458730328498428071751381562595314075233779471874720851080324563426240032131135739126549563091172247451894906660382820148077956917906598186847504155555151346898451659874487300595020667368243975345901111594230458997283710613397516620530331059798172242820184151233435355025303298956503063776844386088983733556455720949303549061857818697050620697589175759970862985897113128585437440868495677634043071755219031394749428174987955420008371064159956720258025686912279957044572940782932365529883931291100840468080229789202637710090938141228913081758006492806301749055363983326094704720342330213312852061973206485042138121902253946567859560362918998557606178491524974935299131154281414189366854332030021234657362770721649258753128915961566796913203776340021808772344998661373846236565414797456462717260221721244318608221272655674046597507992676304921139757705898028328499076323211708489739690869718426241671775000294790999197958643449232860619909494318852927897144892452041041521001722357976764015792231701428041446783991225524434065474058973532332104251705193416862336290486091864963033306927555493642276777641579018098353986637489539250968845309559361796452265119061640118763163753872217549409064702930759188402638751556828322631062254783043132823350481641714990461096428769430133639936693118320938056445927266100738415279626823213707199811322806990731250909541722866346454069157035357249937664446413883565102943609888710128829921654254157541151688168584617209764768818198487598227923876347116124539855906772835029950941804446164154365989494579184453191368334771115340085537839977955104230436891200278206652395951298850112522821295239162877569500140814734278161606175685657995549479299005966269073663618419599323235422500534482060440202607827815492863145531963805730906641713113460876027541168456220808055322459048720138525602734576144716318944258020901905215670605542707272330679000934906340129030621458786740413497370093591074409436594185829397541611155610413358404290667674645971532339834297644885175108270120508863187185596073690427661965483572762347974581329742465146698315555798729142828677704309859528719512296935527934538633317669971862478457740533585761007831732430237695554364989078577949226786929526217252846402482945902288890621459133453921582872583092078058152699651131912078249736568730397848169272208664632666141099258365616032002298247819620368180040665297892231254223570736948066475590522258188909283787937535650156514780372460284968618498057740613748015131902372006405262497173166660228724386312701897553981531365178764119330300058986348617704026257675900810651394281274916544099515214533324910506146829861843907955206403298183928658020756811028514100431828262583669160321388423239087886402430988232033180276339515104447604755457626176350669276332779977394451714034545203129991606555877848248702966079858870347506850949911245260585686441843995648372951829036833114367195206295472078630813054380497283215529511786585278149364406040822704289119056788961519863563776520601144457464647093427504181750832423709416477947301689837552114980587875189197495543327737979689277587639341241048609828774715372550920651429051595877427050821226234831299099585871272345792703979333104721697155420106211879878237627765301744163055535091565850901547767395379168737247328926728833569514651340039685498884428588843065220645138389920114462472874843750123690514036188687600646935171466670887516463236347385958072056794830076611981081058046312254634355310025413697157323249310581676993187846087177564171657876568538120341650524329260175264218401158976062153347698939949832680465133396390800120074734957999316876717655211043976655301566306638893321390453762607772321448688814444998625481059945131875011542403163521458880297644971171759428817427965032644375621230674909045595506276376422137517261789740977405578648988761082840975866783297941244484134924064474553661694179255791441686576289690568212367076434597783738415073515016595409394313019913986672348656183263329430761444071356941613192646649850269111350105140745865646309624357905000982201523069087115329693744870696737179688470293900866142642681545740225147014444204776997428340690913085713127974783384031740859838301303399247270631977304680927411494925000375336347646057913599101912458161473278183579201342367540463082075815809544101649269799217216346425078150524540073157669984493357463357720167685058196057526716687695424230583940811713547999478158217049396774428290397401308119703238656171489227296247116700432546752656819216147189986758769398876145397349909511680722035763703888883355192894249181853245386629332036748967014371535331161373261665128148596960725713499028178462654080652649739853424348714960906909013003467157431206019364686877325857535335394323887837360891162473020904898883155700743170088006621098861805444899744140319822768042010950234081376648302341977105743070790333137099003325119178890496827790010450264342451327047787060153637282747281687486388927598228920599134854970531999279004437198236577529925392940176945029792364717986858349037437934611379520001259141752116789469891166899313967435035827823593705703104215569411288497573973377765080640665098484411489946546893952636084879362572058733477815908994966243442072694799246706785792697081205195573872229342658947542061411128644223634758865960204841216260755470947249865578824135671878150826898572558204127239500101875415039922096588802938512905423911350298246867354923833325307199583160151978600609486714397767897565360892582544117820311953745084564415350245536388352920758884465937269833750540146851927170547401918630349163649166272127404837580012033028353265173384342757981115700457742105653660805683251391056967671422543286377987863788642663058174812470531045123315318266052205692223007711231584163450647494181098223780239795485754215184489100733035653634798443366071854294855464771102555343051898601439428363624563651206790551742350693232132097072665507651180556084145813811884717206025971335147970021840304334810095351826055877885282061487702911137450159280264146074372845913197683141550298624683241515810652153813368442085710477955111371793078064712842511634727322560646273394622048536815566417826488918908200892617998639792257839649986296098053245263390295458934288267084508590468251359436348714190869265066899559854497508774503300473379921924081581240614753667082637335139546526489853609724269730501076791586263596573743061715765933673231550380284991390724078555291252984307991512090827031300692696172905704878828981308761801736015249439086404967686356670904349975115622506099451168551329702335168360162392667105986753486771454490605181062331710212949616420694320423981257193375234228535230844029724583094642983889199891662262146020780859196254970424575398764763073118555082914636367561051558084853843179365974305394304567530430188279188096874993092941120939305343413480289966890734343718477488768285639538436214764321594093352728576246622882060396843274775136585558957723454512338921819159826630370655195685027122607395156727177947787649758131528700150936384190785126129771445409579044284731602575316533256697335524168250298176922090458315371119239772745603301211137467025329061503940408245409017036485272559130858158011888572942191400417843082114499068362853196334529516413383447022980383094995856052657964834094996292671071344543613372055127888235648035281494470778737415002596243101726972840268712745165750522843098794519337679270122167527512028730198384688068217941764651164804373201410174623858877889426614947774559106873236844208557932885802156881296316787284925849763494297022734152690603828871391193273524999462713242051565774358739951567034360214303067183754074434940166723045937543481802406050533043923950749918049394802275250078809460816358032012620485695041903313507945317220277939156864922736699791840727929495826839923909720843632524403879177329455076343244987019501703958793656725999857467979877563430665239950057483329745100585904413369308446508363118718434764316709922727793798033336934186333239325431631002079347662926124022762735946009747176562960041399415647700422869447078751694669547580417925686559667072210420489111163035507454201972106439355722659944379771953674446088953465923391983007681683724564307930190422538873791239957503741783309656460871470669226067708399707056573794876651481645349903018006919851827166797039997849088855810975998470231351102460115624650393417120656039647619494657370165365165799829644562270467997680933196504586220770418573575171931022377469787463919008896456939297048532261404963626423416068116586370533663494003815166233589361347789991716535040445737957048380616498112464432144891153856611630129255169279535818312287255435853419734668909310106259036892187740412604360713897972315755003390659287301269723664492992183725308466234204321697474796021482890808653059996325896137516991561560572165604938464763202884398035126973523436773599588433147068517274747913355265108570968553131615092326705400007706283050004407478197799994502653589111636500362042546982810927513855033816124028900267143642061097792568562856848901669935541352581736190871193176170929028989002635708297967437303634531662300077770669470995596020790244817607920361271093802019147371438610872963771993795278424479166468180028726006769553118261400538032489283769984786560171677093449666006038992890576313675762488605740645527574590659508102139129204094650273064997245078460354197268204395584417248660999983908664150542119472539572429849192792320287448421385325488708012357167204834512208709192129422630843127867909173534243811889310678686250212742712772386534133898998290304306916015469309380295622979606377114223531267677543379583122588207274552462546948015344125924639852905049578267846219735759578547312582786902756360968200165459510412680361711052208369186720863844475112471724143858953636977079825244478659893334681488830706169335372369899925068752482909883388023655203768051181228095311304086412172991768431803623063648313711664091192910059785708741810297703562984504754946432310163365632805911638567761292704669765256883522128245116412932559249360885579198997232317166441927925478549765685347454309913569163427514229091532721535219564950285615480539813296474510634449710812903091470826527105167763934190139518702236686071395844129330162268355242290615156135916952180017717214366710590276708728967941558739221373366415368148727621798114445647068206195223074498812804435803452554846452981479458750880777934205842845537810737378250383067470779658800830565820899247338329669177427217848105987659903539954032808712712326546253307232092361845192989939696546009621144881753904110770800156007328293155098770061661681887559173250875207773851708640339787647928590780244906331986753162094158969551956766717695224810763446316110732578280083350094838370497855599325680813864457518182561276060921253204266044680030931295712390608895858479650768348953886145787474214799215926037284935002057732006367079579218445907647109059818474162295613439266663713538972488763347250863619224777508493033043363990244144277078519474444594716521155173703021017944383993037937308489646963368063910259840353130197597684830709620026200429707174904760598783814353655776575463696224184819329101829343477194975796303273121065973324968312249764589756913345532691881833099517148370323933242351335219655530450399679648911637341612527805413972793823249899771588015040393259084783591880973755166443650992796842380924487744807367259937562522152178960238856202877989485148872822999596460114592572437605166447362359314184149210030064191887739157794313122743108050791704111084493945604919985635227473141609294260424995040031612220555503654026168436842118514291632829514460828515674884692520868974708630977696281813835810338830361382885527239804893180647172749106921279483174302221753766697835891340062514735312769887120619130523274065517072067991880092568283185021250834853964958487241500498620547727627588751079815953881275791407715214871243282491529667629050280663425060486953765436411096874762455273724516191688948325881198984336242176783116208277989487961060033101571476644816916910967085576545149832649764878208218709662555878886938875042881185617634276669329876468534977170095844930537290220347458847255804205079428125893577451300003754789879730128485212221767268577358803994250970445385849536732493888313198336055026264248039990881171024145123384085262093784878514634304172212398577893158117954887871400269121203099415856906266311739846053228059002393383745085986222499386301965672644275207777141798213876837674111907274137304258749895551423811881671807968011069006221790517174686889498918103999268242091380262113655441832973003063725562660919674796998387112942321460836017190213307199411536913493745842811388382206930079601204875420880116572867825539768505891976396646040351006891032574548773322611409797647122245744533857829491082537466297723540672432820228551810329651433759388821268399858444132407062023438084070885179132423017461391216392465157109965621427442504399314305580840666886166216473583914389338237257749795211895388825863243963757621657923366809181632203128593136361789089509659792324339652370255762701492347980660892135865859059593280272105114465408531129855193541434068992007223618903460169400073797085200974732681551493620809332894553476587569758601949036753891274976143705399904833927904927509422452878759983792820791997272363750340946406205385713750030851097190160825115271203466414504442151578174509856278602893708831859006972227834097706369848613758003478112824815274965336746483757715538068904557972692521208311496149671977509443488164913730892023662713610744597823103724518529300818581554618546298502148601708012027800314469710529683047166600601190359109246438732948083599030585136196155172947482950095406251299265568954817908595348027825263947612014940139610568112683923919752751743674169102892261120539678786827177060264531766148280299763947635399696143514580497128802141334539181322186131345137864132791560076798308648813035073131329938646515181196858680310973881755459472194221324805264072879671487791733266194313953599728267058469014606484364993138471543911789658001919582296521497107762098738927698147259814804006939534102282787803672037316939761662258509059188123722485627431555112256410756216594285068986661088392120830375462026998348020635543291296979932596171735627654243648305254812545859320372262607207035404989517368843350761657303374120311941353108824712054605444888615246254976498182645169682949672104874346676227863942265156164530861469758209861934460818464562487302140264428446681737117268445638590588617531088394102015917274110494352709996048222994427223013327795389987976171925760512747178199171894367709769649063498669602879933465647299256226345157843031999297927678095760728142093967366645536755502420346794533353656444997387209715189467988874062964558737079295694230523917774866869264089437141037655453356835592800021292240456511110073361271712082678228381430481409415523117767432703976578427423108484957853922931795216653581105857323813127021695114763420519895568292145701036167855380558190182060340954411707810050652228510837911149551806122833341922912138329384096854438104968491453578156312178331839937034237154569020224975377166332008894466023761438791226146176086832152975325534706624205494276308109342353046649569907784361846330230602174556078737018591495586586152409397311683918105691515347806298671676523614645548888039789167787922408098091312047902400921069630411775733681007617646414268783137238044311245344784854311632403725979824814305773119565560930436270084022115812240454715966893175686366457295577992606007367778020559823177236352898372733430931490852943803046301169208640845553056661563582156524622040235103651442279093383469315139318495968887947668656660786754814802894868573549645033121894865823437296770837061577210185479708048484936534960818508048944184799237340249099845569408414405690874543951051919265709574405236544105800096096397085880747454184559199693075403159840480207449781472682304038508449848187155348616646116505751626421738812503500315663597087932996038460347754430127868295422258950822437731531967785760105138653350300646810923579251161471960321319044201581958369207205292243157149576285785930417895653956467441039048998257195819526771735510769125640183268293293571332413628429773618755395968883516452485913081171417326289238567559245105806533036564664942223708414967834811476287525525286434277929583790265615348659122050550437185071967704071910022682649592839441375058221388506984616497357357584528218276332816769419080259945893207103221586899419980921180169136526132434266305953155577770019326263670320196375293731186398573948049959038438927555610707253744680330426635516238397436397844463059251683813765151282207069389393093031685360253016658350838407532562474807512632243979271637192416785853254447910272688984095924668764309641160593136544550434238274245799741367744284331657028211410340579082173233498270614043700916575915656738881998458876649080578093483405585918054784515403131581732365940816527346310068736973841585049338135857356923700490646068810591948030857998577576606311643376242502557390208314958012427889760753240091012811648588799783223537559413984891340603752443832328977618764360996690793638193464282331378532677699917873002305201420343109803764626453102187370219650675525982529746445733671949107016859633830051011150837798820354612340982300601933416458327964858902643364273798324220626287255166601655041257346346246809051349951930941769753855734406210001628514592925668204600315369056054325278503677903428499463890960342146971165167310399849755759024610474149760321342457359476139866187449185559236107956755981521770258414511647915520499909420907346142687289786653539221052510681436746764151490324328721220984979607756158851430317484331087512147204173686197445892465257557771690717335590639838601780323385715006618867570754447306099856399608144780714611809645364604474114393725424087239841980759763540762761419893691126110786352191832088421681284977295788880929630310133595452147220238341755066154177600699284966745864011589151942223073818192399005485784919201835035516080959338379965776184858052366073744496180345704765327154688542243095507699033588721707415720796082260779141375741491980020353603963061519587676294512721991472427742124030819926513145609044142425679070137313492772816956893193260338264500716992016623952648975230204802649489982720239503626769670195042958440947474416719600108010854578702541566067480044035971552391542877927769752712324913351575776642967411812665709615093170484666699125702412252605663077130120244219475740039775931092370671038530970360763118086625299752672180445159591694247845201488651418173375206431498896835090997834235630967304537635170868594133211208458387725244721072820936653921646617608506933850149623863869279777463499106744883655327401788452955528918096956145995229197251000150012113886657574823281690537003834221399892727533513155765554514097742808458839642718432563187160035287575157546040632443437172357395080589948761174293917964924055621337025096798994707327187314818515488077513188183849407271977196709006547574282234208732954379906516691629121094873839893792312637048859687110445088007907846221753352854482524718696518174568071634158208224279442255359157142500563650070943810886835440721133557833433103904092641685650345317136616933785172545754056927752037253200169167108385328189197915982564635568295180592954783561264996647229425672508510666789562934864232519159454338219728142547223448754700286407224152676787146267974006799909057864750457923423482833140030416188584000313789273003753181856927394911877968608718515825488792928023849231235987730095418806669524181835444633556185155215668836206637994838581651272983845611099154136936392239694062470027573010456505554704901121432934876124193991009744434574278691222024560155468243705542513266183096477171566158813149083522256332381126930173391322103494504688544989977696550101984030895079341493107250310673464440963353692075069489847709653330814495607573501742925361486317272028942915988804907054449886997793876552091041448728482399818586347021608025444080946977914076674965269863206606590074126616719486145618322231178693373446565036052729598094696648476994812511397155886113370588003437253720622338394936804606948606739702423781987609217231261904986798610409811812237548186646974869737499627488920231027497233463672693942935068670067284616674061940703346382960018348615982769030341778204018162772950684952251840496999842339871547766690269361843631792463402743512430984498455844009992174109677449346492777182316753669019351862827692342590167777467516695495816864445262491177650411654187134682928441115771450360827341473577286186373340136166845545757879351442189883528580101079633427526596447648164944563713233348635450955780669292878669514746034655395564265105634887929088630790371420675551253897321385108418329675662042487317394606046814280425862544410110594813930479169218452104390606699771648865709135028372283105163792454235335335864081110520681198328442812628426940780185210183505435576269023484191698579249345129819168002815911581931005358584733551882111801431028340989644449942434908766286462144396916585955708920195088881088314560682534447269657227026824254536483959334264676652823091849465747363407184200490555671192644094932131673294733550920805761905034931918487384222364507380382636490582617579295603389856985664002740096772029999111504477064078404168003814498605225342315855805964393651011573580374601027874344759366781911807047217158427698578324795507583648045871123125637726757625154900999840657463802698773829659472108810624774300445670735856376594002800517415269003049013244718963650386079609045046506658853251971487198782651060533723859483261433035617953749077967955061683310106188975339063486776337822314212539594612240514051746805081311738433481551535663525045720788393706093546350548650586107004912458267550277731336093481020279636630737160628079761417600466868502853264907371591254498169864470907601541342701735361194478557327205642502678214175645518213559842148923617408170771696467776500890693505007731401675120862046068748413595597246360501852425987501722352474240883406637806863956949439722460690683578385741710497380849178845893933188026616642805230058153285891680322390661294341651240668812084159265280401471294421805093378642334906776668944897225752440439770508675799052576611000696576617059464926601877129396217789644281274068294787539870153607529991456118645124143616701278181308406506055183572390064267079832449479444056655481668321397678894494668727964970173284274586155626003106722815499999825269611515356036479529330839254311656772729178529877015299721055936908491899680528784274525856677499242756662891184341141858452581556920165428465574866314997841243492768190634040243382146871135536712815779967558764253564543167598352111927897780428824824232391054904649760002381182655031744213918569136479088816977117240681841962954424395663193916236575397873695624068832132228402637698411031766913604879909683603100001706022558731205873569550829011125133908470147376637464067350346144631529359349728970509929172617022029033346450406508112765702680823970897617621418571789029690333800827666365296113601213236698263155328279455166568179478405438676615060773951681141258306204319811724819199496297414051460561307422375551596381862822302709387128755659130181846609738859042828191137079474022709098037684584517593069671087610707845830325619624449629881472206722837085622897824376382624176659423107215781422591570114441044418830752537807614030792974931274123981427716646298144412265607376517905004169812904758247980595068535434606105072146191638021492755256248152279308959715344792872917320090535257372425566346629921924624601328459762593096531573124089988590336043912644483572682909373788871240875189728611078035778601507130573007238874649087241446925236062285485937568676459846936995288718537376888231879722493610751049437896413464620698831525141988871066262727184823067651734804330734576710799984546674351022093226535044269620579426042622105156101154037985504642205475286368300035192905816091721714971456989932246091776142905392221143177142557023576276487997434628708603000312642168454138033470709481921404889162009797821497272489956916764649722402535437094820990711940735934811099800578325658393269848637326072470654522062301004579764229963347836639229636813122617573414796487504050747374341738992599505479667210455468973577073656788122314863596360487957206163853951497561183245378833684538937986563184524411573287710864271410633661287532884150157297580014112273743944717932895980767142909888815893944885302232790316280830494579571961714012857765362979595975920145250615075145291443091138943648834311396232310862025329109823501691799688969979634791243462710447176194574918888236156646933036230663812922213810343744775649432042115907704200398921689632964887749692271745537452127600674072075696889245497590801269568926842587327102127679518553601947825740787724498170213454489599053120981992247853581074012019440814892015229467055840883723776640103408845193242049355842627470528897545810796437298088079326899514145498853713751906259929867178500042786730238293351618786591865311996618523582176540585042734636826061747571199253984608430040244768303068518725322882502702281130190176922572311844470530656584011810708771109583311264934147580117377963659729465259995283116301267963138439827319440328432843579593720475747996340109084937945564099847674419124726983481281719536199834987706758802736767476073919810562489013714177345426542445596086011900498297435879207029887975989812729874603297730419097292231387743014876115756617222363259088850314730643829752552737535516600917827672061734021668671406091283272760207963077135748322078002479544394247912176424007413916787919563532105616445690819581665308521433639115119932628435795049938074539058370432002290696111739118159123638389695884109449108420645179332708769717134715552913955088492788331987923622016769374721333302437137679004815923230127093801242019281087919773292506271138967018858176540591041900300044206980945924420247046575124973788526759225448922142290648201615589518117692985880240836051243383500198295693945834256178690877321574914838873621056427617269851265359862436993804889053767657599043273794083289306313646154412773304436539768912235234685823371325489152927020280460724563758192056740055019366399928000128932296301630608157172049645433666415471327689719506619061443771204105463064018158153227663347240076237652032593267802375132580159959390176256203514108316809347949416658504989362916249827880371844190025258010627615098598189676811016474280609735414578322552797820290115200902516005100356009691410988524731047325160483707709707117369184447464307499835748184314378867935295911111622502672670562670155212029254449423024519031146986904018819908942791647566913219853238996595238657327657886024778625024581660148158799639291185053713050953513607242859083896512642864363891283812523666781294942632046054371558219707059545147796289152005770509075138023953109566895937306431541736969488221604028723858984715620355551275712412032911222381337415575687289824997706405395362186954690719350193164313523870453307383576884939898070736591528146058757425346645559119263559214268976675197670683136907891646366939207814200373956149807105641521985616194911910561906780520529191801854738308516121858494465172954668673201248622551943593562412955807284224099437086511214100018454243552751166811272289095944475569118627590732339195260381607499710706385437952756224261366279380471000426239085234183989807034378317884179362978104812016067778574348055563913847452382993844071566185340533641880736568019130727299548660661614380504584790521252830864778962876348959460037915304248492473386607041283044173465739545574041513055775189402965935742376558111943947497028544139660145741615437373471638643574987358984433446488604353767155371021396774639752907667477666876882470438176621169748328422172991242120969492170722446220157895566352495252038864412589047171624768321589618985489897213187447929395461905228714136769326369796781377280455151507542066422207078653672235837072086490627042042292140955702058186516204188696393086237629718224974770283486356267602416338795841688095810488774024947654004919931882982512547185973259686715021768442823147715987533626176789037679349686566286047987991768023727385746498554224837401966355559237922689699177820619569782880048410335858314446255923670737832789209798287462965936220820306940330227136765769032828825842899557373456724143733567528915307079820819675146517840667312255588866818189494445626249792932303049865551825548069763578787102799067211575759636146468326942935204200057166396268340121024932609351961379635598907860975041719696451185085780539975069814200776400739120954073372407294538218785486527838761834298959048792647250800333780088024872213049793131331403996755823741766925886951880754645331446112800069470221685700033332578322099197576762263920923975985987832396812417360776092959624838068809368215404677466349711661672462885700108342505192164657461785305879599662100759551897500454742241660418852195453630678971600763688949782555839166780284581437788357286509435854887022133893421545947647570792358884750710128051928743986026040500768417112074853547741956755645959901664513315674440294171177388248397789949231627588045161290511937336563524762226985991590008770428518976903802863015851936417190220050679243768718577030319146472635245401354170728037372519769139563382860300521426206273744379813991576970128606032974630177315760459398740779009577058821797779412279273621752338157017543998086784393250923465654787116501598474317224405421413881982031146130365903948929516054238124221620629628805875302319957860332529251208882973485185810089646100033085121056455525520905797421969670777239315376602290625792885572347990508571525335011144537245015046968675596867707327085545625148958339027951712612721064634665367194236133632585284071011156568477506022894480230117414347493482947463906111508568337545787853842565959348894757997389352178390663436756651552670060368811463509229626074528738874672911921344316796258685654685526198476775728329388084237799312339752256462578194705565086402514260138785780983828310186186065139214730954260856495942104091420790500002876979394193995207895100951554367827835489473829227013851996460914159648318965690664702383219950143333650162885822736071747958261856916988060589689587015742213814939327830332120871771089163081636901010623973319836016150855422839425917443689491063767549780534591588477704376567886649021891083671759063590119700257090078191640308217942479584461752444411396955214465022590901660279092841962949740266145831184486014148889698951140327628924822152799554872238942387762727707302167143421534816896508757853208706472559748238257117369115210119365093725967754558432921996219106354678521773699209762045502751960433723073517926618912438687431410248821051022044524231961262518359273577850839287792013681350469751780322465535100381778343458805234418970354233829173268348362578798300178358910698861983819160638030167472515033235254487880545074890959083264042802077808470255038289147617096003576347516877994171394450254394413062624486329539468765691668483509711394049239038550979635382458482984559650526858619512434906839230082813162390929713750141812243960282195034883470831845175235177393323287956442598046068996326206309864928463109157911446810570880731529697454446863734845346470909400017543754557529649631084691682831070545890051641830392491185282743775585361455788298473547899897535163294065199089813917686146061003936834228936630488972778050303576242706070224052935754277361868891940363583119509985216962809644591549385968648664915215934278773925778585929414092315140375949457348108422258195288704597576591148815880183849227171669929315591008733473526790643549194479312866730537900685011441437661856569104817131196322483062006295052813817791935537143067821981054990560291883823083021904844834518021769725959415067681694897227534945460747054494254899212998084319447274449616878797097350897601689542469628049452503516962805967581766472947632486348203962905402471979624126517096991107154669147898655274353495377542792605111009319318073034151883308391630379777634852070004296206530565976482036246771418069473764217548232241642484194065492794465102783756323203142697487048242346758763217938916482457148034415819061976449827370571026111043807216523620288315034374869451204527142429999356833435459879679392488941729929621843590547254873660284939039976471635621273742005637720520246050872862368065912253985253360731750524891537741525621629459778134038835005630510036508442750444542706918482435631182908896067039179057850755387087144658300914496198288365371177353285170162202003865319338489597533495107393086782177087953778515572127514743524521168804187594443819740215895587052422153284222746654328131350202332159618375195238359628091047009973349471040296075876245946790044242897186583628566536342020775278021702576576349394908279657494464785331528629925418138706077698586810010304409082324247651363173688651681139969200650624095203048034724336532974298048654114879675329554808472230853162299956098499800548772800982617128307280604873327580876652389741028390673635020474103296158086665626936287133614186496674570616960682951166761195792699356652009111510749063550891608373372770186143546503157064656066406638527747807542159546523413404956402563874969864680513636229649173944605135922598885652598816291768467164568364804739798766116543063313668627235879663116495096758819569856675743233625027728009013425290395948990651761447708831353370374202473519440604982187554939796911707738106125473379316997870383112866050759047034798355096675229966201274089913882562152439545042314624730847391445012080310826663566489856701526598124969232356593706213217472756731313399096591289013933665181543890834510967537463559756577810291401637230663339722507353528529958323596046938902330143945255463143935851611463314592613033134623582185255841499347306673364026669294048493525252905913702119816006358406735695461115615168770400941179279710351467438365185830701705747503768377084092283553040103137689846444820769325532228352265678171151818233517954277465200894200070858442496210494619552354330365425235753713134371473063554385536847912303610151066403163311437548417632962987792162860860460789715549182916012352346939456499233086085132246611237157604463328103783197291159653447009083916765565045151048201969262732115054992791225137539865281749886824331176251278778697744866256599449783018878423621884322459975864145333067282044670524601443884200881534052294473904265960868084017366816244113978645359910376110682458293501615017089574056387534253132642910289386524557105499813409399081171181461844833758132153043749729161322341309174988891062412911558257894011434863057677789498864155556553907905405650268558256275898411718032719582884262564992278816843079853022352516660586987516993396303054547810426871554441802492931128628089180671322077712756170678228652090349581545420333618408214745745293190096392427883416847723606074912424254363362665186019476085934115672757812005275634053609931444134769340690823016444835349718569968809713554167898214915551539905197889917014656116038108091529031164304386508896674605081330497388767025794644845593791340134864993341457022131611694030757905770776138316417757377595345572374711711630403869428745363921047641277247004515348902775751785771692043561451480344594070558226022558014446796722769369460218078679032418327131143932820381456973406401048101034068412346028023935827416456477705271229736052378808371496811234599041249204980758804059433863469392856386244827256542187897882878383155372975667671236954888974724657392819834382191603832109319342586933905397944762383250820799261839765790323262396031777838766264456003632834521295784114218848925988432031436318263988111657538778989711595460279913441950506792580712295654571545056394637276450012854723065759188230164505336922398965517899189021587479228766819684113466241568928579695078484760240419090038731183674685843673202054699023047723159358958080215309109134620820787699955671574542636778594865256812017654590813025671821442225604999977357355378497353171645660745413015135359260823435238400148618133470005030007631950454659114532713214311618337405625415439552975695468192774531629661051764784748065084625803389832262601719440257388549056542108025897257211022971994628096736016890920012925926109739123952175220215448466976190176830125194274073357384115141754674341540544343164863645661616386841737811578200319463475077829439803984474546176820958446739060223905727379661460918199349597151171497463683817993923854566116264954998732637690510472885587420092956041753573156228140489476507675040885050934236615907190991439605646318936160974853702635145112798548404719500794492469723954604729890165317310534679004126790785604077167329118647370625094472983501531661822312572319543410884005459646958309358172248586890254750717950280486429220157787210940531166795252219872045622679912646705650681987503615425210671663793276281937902291239362760158530307838574456126231456146202168150894436212362867246473305918642832478797440653527592034561569389644134700140201197468842643186486456442724054744407237668666367710021239051330016397975114848952651406633554008721957002983679249674855248203462169952016464855563051535555470682567030347854332775732718831069504270738534265696964876421175042250980712886077451480908449445731390866102450820835147926584996699163171536254848037592930127283377756102133038911901082254407384709250473445225973472028168416296303294361010075934921398303422986788934954356154371466313090475338561968212767731567613847468008478027457398275664089997974855678066643751061018257864488775943466847680467714105024311410842733539973193816785130945121855117738363621189462262462721186717278623237255124055756110636735070778067360402026172699549952505160198167728958379769602363440627349101181138979735103885708715165091027079779927863750220685452403060078488507018810660144473598175986426602189452309893162553282890570008943753213741432769959962104729011506796709420548989641093177010664959308280466285958706273214464253178559721228971234882409181095003240494081411997763374865084749293749605534350435680121145310365563015080715225171386567847458213620451377300883354981477479722017241145033739305015761859502016091562353976894673634886874309914630528881585691260248024750220663283614379575067623448239643973910990099693744096277707554257957870839558785651555325627375920853229623406089414837102212981942952733308757840988936604298242599158011227823192709848637101076583034174893124075877209219318532009957389534510145914110136240950726683351721278508941855454861567188055598699437741979972496740958377465365055953798327583743112305681752627105012232126061659852476023311379399256777409538948865082399076074190896395200894142866858172452610080342015284777634603750099805104635495332029172717050756867583971243091357625841565026394127183147306072772429158833003760841366993933366478448351763375879148072507515699226125524209647925713218026419969686421618647054637826837505786282875506398634041662207123658205296491921514726598956166479863016984811160290706724719489127336359736447356940799699595466227364262064158980015600274723332119076781772505036104252297096243573893786299451577802187389643992723551205645201609981692595947205442406420920107258967630363108499343695944983866947366497185509793683508504651427989528130212571116729012288599987713118288222516133673164107575342121112463416640238479783387061186847993813860757467521997996352436017330718546548037041641032136969823126057074415923259868053124512113493199729159005332496446907369763565000376885760411030768137828402097948238281128410014981154387638080161079802655650743284884335349837678832273031788151571733750577680162236920166899535827274454749856185154805056978205653786975854331697370698452239450947389892910468104844500186593988312241698240114120814805669944940783805629001383540072828730822574083405577270226954180326981545204046179680938418903387645705809426771418747872302854181665047331729811366735819284130962881636778798156266700144268024300898502188136451017334606248971908416878315935408621973780114726472333919915977393558707666354262901137996528418820372048158395278707389204331454493597063611919626710397471332501912664082993339713160972562252617160141586678439996995148513090639410453715513414351964208637357712610621629916830174895388340883975386919019450416730686312229783913245554691704872217780759722071657076628308924013903453993096846362384155277939976631336645617035116306296527430291074814846865291382364743658865129030154008207134592247568976538247043191204442941095676415936530157998797357956914304369530584529482239208391011625017531283167924334763061454327586255405023453346859670718766400670868665989287957419440551234097071529476560748840700736659778487902299447173343734194967009333863556127827760280756292196028214195524810924808232833837477036237577033665640002521394667128973005099211140400391971390528018841003337056544478700185874349750923713038829625832736070894636053549434511818582009306004406476595759944338704215034242329888366588215639627851498094957861053460534119812119209201682848403842779497613255638283754233521755975093631059637338278794874710340027726702033581382632363434911324977497249632438245914401998333203337821957714165468293732275925554763408930632004962977930181856253711910135996462782867534626234508128315160716905038364493200869711523178909066201919543256739144911713359478091491235608024952838125653796197084701356892729325819418352835752308186310292703002782175449845341539089452656177235234462483963115318766929105175091881543468351491717651670281553206438376425209399588520821774136001057538298555735002222376713707095313213092118744112972708488051017873516668390125618117441250571636764057272352962312415532380461325828884356943574695135226026942915456469132845633173562825545915155896656183208333507952974619298035058410817585305678599042205987707613019306711810151869839369698553585310812367915367847373234610112661929255696128586992089289398103355379902625519417834383301673466021393748618404901644547881111023463326745163967262459833728814434736467578197802521179605952317022938120862089502760587274356722902787578296052534630943817858780518299070712874839109235633847536036906333508716847982143358256281708879557126697657794880148703303855091360493749523493832146230035118657658805730563563740320603362445793256120295392915067393973046150418945070244388284472146952414683305487869016497208731030595044542797675813530042078811697602418426073626307066131411510112230299481133762277104059876551950988628409785750874284300563804323115253787015741620684638008625482718067130628029380822929137535868942496918308380262120130718403983865158562219929665280477744903007194549112333162096243319880535209746950639549551201484975992984736730069265332496972960941430707315035937813666720087457047241222237650633073293112672924571565589831953273659849899246075207560010790719640713324087130375919993702885436802830007525312189567894615342346001859513066249166798894975372938152022997594674635281382454378316244709680055607009195637546145214677129925658166078504182837614046528321839089465640933029768850119478425420891852114707743939343169863912030109591082185428179491664639888620501000740665807624642102323766577631283567258293406855744132290040655898889907493918999526824185488038033453907625872013745899980670712954579516314731462473064935285935070353360062225260885377760167400529116406916092239105885485740833468858932578666958341226001298912883623449361744052163945807209813809632978871040453454342220145082342978102343518411737265817757232881896332097492424930290928397229729895361823587463970186629977001832640259243747821529381069352264911689154255683288877249462491416712951960165640564586549390125640393247710865519896971635686517606245520548870788609936199280274431297794522206469973031106729701926336506481538160329536055804001550616735344086869594871571121058712761196263846314254580892580010235357197972306032935883728699280853553619767320159394456430334113083682111928795013210902175190099324991509900419754723082980742464533989951242501052534217339639365036814801457975266177071633643164075827591566660997730737106262820726267054822086662121014929180431532436621205400624056044057759330340569145703086671452351376297338886413946455822918982336250869835652441022509115268793408567398328431313076205207704822717294560903149202942207802823882217419455477452049175050221272976198382829750755640261979383881268164103014031468561684837965007607560437460471811729377079433786450626235696543043417291414408037154796719381623716569790916691759348918662977910908362222149086854087129257990655588383876651119358475883096765055429882442619550226509336953572668948748718489865207300049488947646551432824366033574384534163609239417582109181007991290679716211212400393264333686731500470658481742910571485644803795258590007797103539534258499013289099099051252319470585047556398745813334485265410782082329218453959994496886449223331734523692006227324062330195960358699610296509619919714149446136074466889793952690157509540274970377707948048682414522778963794417956111240941328999176475236587017344003632847001527696521567623232179012018985609341906900135919141992559823488472759146574227867237190267304499482817485913289929463984141763227811912572663425811938025683055082913391520222507921553330543190978940627766297077842286246530876459835056403265933785100297201226200555875895027971212442624866803415064779620202953353380137594172969772244752760876786930185509193355445775661258756685166338472973255962080898634934084472352714305084206619383177906704979019571944040230767173809517429631865296090187695750775886487587509532946637209771387266938731207080280780130494168936917234404964204149508169139506104886849827261400713392672698665817386518385373150909854171692720684369286190922763055369384261311901537018333849139909809724925035036902577980125611571825858882529354156253131960664029900226042229797440889090186173898991660022589850190923023518005267751933774761119873761197183309543139067799391336400579950098241627013078130079541775588976448891115001369635943173060932319209400397525064531655678091914477395988529306573374582745871424861313504526772877184945699779999270246153119967611271954796187183608910924258549454959555893020093302973056003560226965859469989932499654485481756004506475910288366467531252546621325803998556498029375496299504565456852919501571357272996156271197760499239592515094805575046032370215862412260450381599555689019472683875172667550537879701926939892290628101454267325212669412676736033530134974649468733573771802310344689992667643216637858423855254118945073131726936834186026561353278240212945691184536765265951044458695435110476181758362874214623252547658797075375197020598663286690047098115628974744379926852729000297623457613418868923427857625785139089514071299828353240950127109951658776480508332249494361775384615440750257499034386051895041604565314305829363958872498572830266153160211076443832014871682339405985803924194612786000568067681720956806096023608582562265719539881885805626244388169693178546405892494899524123967426465446054389240739195677740554320037884165884581500794903474115424528366917173070856391267160961111504333536754356049296452279568310641628997751749358294155235298830198730097705922485957680371233069716129883867562310573920928245266391414751905025315433942692897451127542699222066492414839448396197011458269832132422931300779995074811474525366608819338132030776301546200663819081326387217613604804869025607445927549549338179759437592053572128172743381406646559500742277036841041928665759928596454359843866455685285559817406683529968795525843785834608344425462537349123227007153092541392143818355608415060582311005606740073390889106835833105609538520956360984341794215762890505199903030680344887964112931901046540215651879207258545774412737770759747005712979027454739318963936789522497046704162515363716359593359739698020936415182350434311133393550028828015072495302529263982335529872930017305951530691113663294927028446025498046996937278022334168630428018286051695592755571644068752632743524374022567894755757923794899313026346422257720990475051512081892543198107105868175895979322310410488079721746409963841690688713139794879796749120594154348048439390655452251159266426258251800216562900878595382589929563922952905661316010268173102638986837176936481655140016714991098917035389024629089451190421791219775633474379955472848607192736278362173175475484487240308123424533782219976814802415206603026288433403773143828276950105792442495317632376002413483688197940481119614884804388086541111806927366877805187455026166550169123544363887534552059811457498614036364354642355253994365324982690188350349236762522036438231443050517590031299106881283874499086710259345421607869415123342992496388510397135880463123213630521020568916491272109235625900813511628445027373167846919633766992952679950408694249803955491848348249404183792720980991467006512379081976614450729083066713102473874689572219506303112205729070480222781781683610261966681411181442779945633593655403171674244707351512058923609270494525064721481343487972145948497762225990228322850154185692886212158684147296903113013577714161676485045217429853621299556614030392895063133266907618913216691540329780828731601498353845300101211169386321693136678541764906893478940898858963760731668265539443343010254910825802078034240190314106708745384923400745548600329751081612438409465252110465143127446137439114740437349120964473511542823693240500786780834153213986166708726225901186612928799754684994242937630314488761073650409692552654832964587761131704966909298251398069439074397084606259345834130668125013968780946061608773596537025666488849571640521525501504518413646408207675025624191308119793570042249637621410305557548335531801478988934191417060671990124951142742741493017514479031113780200771027422329040044071496831583307504659480491789557147431064191914673751385178277534470839141710919108875161289315373795659572238215191052314391407361392975237191638002213381722706910137476428809761963191713802703769528826378642527655394317259348533705787609902308777375719075616737406417528167777284896714013406761940655098544032817095763358700622679833409163350127194316494961620372537525134956470886857728017460384235128761561978880768228835074467412465317838804769489158093865364293788900865599595778393823375954764066098533570637060754478720336861798300938127661923263841848086635314482495394005547126778877163197563041407238565868341023326057878551164504480359771373037623262850917760152562051630832702570496032862215740996156765446990669598769194316930478289279872081035261460127236445303509703949446552009499087530145945899873811909314575030401697219590400963309436324585997406998505241862550787406086772830391923553187729297189705145310453887478133117340251179012842928040131964426157760523019835922276983371484740712102892281708205014577857101920380450957347305890375469942780433965029738721325705022618991919899430941739267976503605990769092664191761305931141467330725466072974082860874492487270503346948632947892745148563090718418535047720299920337776588247590864074517741621484006065845776627610034638636124577256272353891420599352326152667976263837303967260872676418910828486414172565710269420303198085869936343087647966825984717429798627997889858476768813782250732464290136828368915059879127618948646465462559370236833809397446457515955044407723176545475890015141256784383861944792124977282156386778061921537473857881330006021657767771775723172380953053519258700437328950942385972110086360649817904021932446918771754078930493412805905218549164462086207606029214275738391352111848178967314223330953539916938601716095251381139923556973767642785661768668859540618961338233726843485628253604361886783558257677924802022976216508893233984524141596913716035866280214534949401350941462183773383565251515926566107042598873043107768794208175355358237595761602316998054131289605150990351305670258316546181961859219800957931399691864202969867289501177173416665329512293612457102091404192105197588028010189402928036553303335715022266114244648253266172149720275926999899810449891061876688986162297343570490408643646287869842100898127032910380033952824018188957346357951281624570790702244118995888407037996002212451955482797801541096804424016789099870603753314094164384429902124827940328276020841729228306077567672755724565251721219835693422604548329036594155174906848709214942255246502559734391577842351698713237095655255989317752546530560487336461516006876249229296439261312455987696675856983205307741103695084241115023535595030589183650947503304684169759595855264903096299893872741194839957026417491902010895811356523207492935165204705535951383428406909641923752351551268543697731022906985145481677468271179011603564685732792681758593550050374595537132496621180397601355371296368840071913139492208408888963493185614219601345939073425296618383212637932794559164571986362234256735098560615024382192636095253062283322397517078756143698081054202910208349974296425028563713925739958781072325556947481805148918876396662590613394350794329040267208630590341843370694269186877262228845033430762137303741416773575354136868417782655462458574245611850682019201996653840017752347682207853723890728357973388216930335847479029181336335032432355426391758512198476521655330654056057790648398175585145851173599814700215033367236606829578923213156839894587288944572669331446448862408615522995584196291648256615646956236083046973824205263665314487512444757616125449343503704287194726841975057678453036727371248956756347737835500502369719847468909980763522870581649030555851846089926339642769214653888897010754783347917166589857233981653494748640455525602457338806597721206085176951264544550552171991870938202018345890815251699628991830743485879987030212903925012513166406117312519402960276210522711821040599259973787452371340454028726470478603150310287913566191149421483831987534836562873491480066817938860351962341025121479597203389105511293844653076741258973447974441632070625951135954431314205073880852855661871417768115884759470150778995289569964077652660153344671266106006045260731961576744848401972577360538676248629572115378164159436586837945909784568247745776220336634453958261864401467921420616318205951165282858249404673900006988475559067307102469215191432278807633917731919751172985318316592195157930780973395362470608850093656666548467347957923407276995949103293321880235267619671003278064436242756865487887217676357281469537353871059908203941612447793248339258422933243333703364940725166230449264065951403934908326653692382444456344949270555166896556313774056716812400937592511203967383941326816675159711994089164291749286579088339683285155233771530589096006754369923982645021216438982657765469137575610542605850789038798271750437639388635346553842332001757119012183151369574454396770333787168509370329437412395923875560558643319304867643907985268913858821414037038963453800619797341078408284848516634671650055451232702540447406120197542454487524716192625340067094902891522903952572817035496247986433003141037412969792748149819629578825410598508920021964763131582508884336533844597090563661925334342895339629483425396010080454398157234920885801230317635077360500412948134227201177824414336998098400971084682066280035789642569719198408013029446553642638031728186980508440529602702476112395255554739732514123848706923719616624208109663900357655966078919713281059781977288083075499442874795408399969373017009762741048719628493202012112619275916768467028513586673330098889083640089586625260719367174933503011486523566688990218390658202845120199244463236777568420222099636269125361944958301265337462554765327846580076150915111408943362039261323203666051159241883026596558676832393046753499728088636524042679627719245394091720681134186049751772820791523561723096763472017633665844407316889721620759454105311167052702945574592127228046916342996708221023882167629101383126453455131093358083726299010038049100686720133428981835318558144211728680371460757704100536488994415604685751067804871710184353089262727710472544956973283032187472973320027380365544189468172753665444597900268528686642897989864378279922806957275355642052937769347989729547523068734796508763731118690932310388628495598866678783493746665303947381041492026585439478585306413779158969740390578561397503169611117438591650873204526681008300903309071339899398707126116028894542830363061452516435473454130705934894934322909104171595636159356480546558337776828756323540984887721606150369980496397417064491888218202847877116285076898102421676976671574429593295831298802656870213287826079978823292178884637881426075152055119826594813797315745072009387042996757923801449287651316094015920810630299972194626743465318441421118330861248077848134169154484508110859223036489888706210173865678689756306030669595364578065637976813360778440351707774790016212139516909341530815474146547439597753450413035195438543353551347192079408214142157896965330784410683124942024359059714944256939748482109917723526682734201558392788913745068524273286862475170916587900136933233430458517968068613198908495023743618178604555996635313119534647187350647802924845172770020349751532949319738559246221200619785881905807478864664520598251182752938118627485123513286910724612930433450291537341849030511842654456514095528904224792988523790010643060013521077758361521004746365415275937623217456354181862583551249001622434307132671399037693714614160961815698104230658458659577203364507645267069343317896353039861298780563617902431599231428038665304523006301781152575320755048417750763485643344231260216094521633865322580867567624328762705287381805268571411319206581851987297840178384928536838059141242003356034324669972613242893780703122696768044103810961946718322142297128330131312323696988632749414240989752618569541566191875188307957805524784803290346087744917341646130579341827234568758068875053928779691195178739919156297485491803355208944411711992146717519877255340251240216865055531331507291062781646383562342947496987257105831038584178376003136328803463959344493982080442262019279174960018174310781863007063051628011935001650522037425646593310790102403433078396322893222846921162462256443278449514356670032858761546722441437085638079018238786645272503067159364794061443020072937658661492184284582182365162183640444790864956343430987673278417308260677846633339079701763915553973753711013285377357848551496070022709220498180142456377945838737759440627256298591014159683538401619006490482368961528388336262178931644117359550398739699081527753267210520592511603575487181738745389610468082801335696387793056551966986217116418955994896174907905254114870138385505956237090595324703857335615658935810835725660623277651026659722645126699137717382883056648667589520453585028662674462973564549174966009173940220143170721891552859030624157639231980516302832240618091271922416873586694703778014126417908362256073820781909481489645557019438684769619831281328505023163688548242296868446576859122556426741878014737835580768376981518358960687682851842493655530421249900320388641544744900997546262381354452060820834338699903311180516509679971845794275264257671700338511582701640983829550136920480077559837599144445879608519691000969412366500875303086614853995488789632630327279225775517080879589792965857005362365800987833498251388986287612427444344082728302817464455986791853006702761066856766732231913163370872264593041100880007254196526786809866225954789997799621361463052884308557450602573533504592190208384056433780472522331120044566864547864141174144415288583275952357767833318883864344498805868879109521075719719315989745120548638098997912133271587326604413009390995984494479454745762571419371284700243599845161790516508872417126722280528637546786541675542389163346984437668163308404266154933425985589192219030033736354992792172564045272301860703514712059040730759923985895731225586446857478833298673987735407903101521506538904785169726286149032384311352007158193943525743816688049621806913690704916003344009469310980912298966896968584191760174803185148472767201470580527820294097617682317142949893986689804696086754799122360187121610908487751038408535108041456332305161224918948757961839520321700865762908771597069452585335048802350370311764032745122629855120392617987228046656000778237881517959316249390263700764870764795149992853431359455394547285670239244102523772139282167265247091694391181476002503273979254928276766028779271082763549251445726018729014939450538685064783806385806775643398977900408458294828298604733850118352979738980980893559901325319480529721194959522728270194392001381478389897186054058704958756305515320878892088412979067604625475248075754431442870897347917921987644048124263121880979377571976202119519978440705873246969994468711581052511433660576426336885884308201653297897055195941910319993266357895359853599964870106568219086293875199464137570894962081326692465119163564255192483385279007275040205018390732121287146010019200586826618994727971647988011338491965989437491948169264596935090290063693701808178429849936122624179376622187667324033811080105357044281657673241047202250549473753060731145490625992184842354580546011483125932298912188703360834239586017293468555455289386972990841530880657883367770900408074754028492161870783853529009944293898407979337026483477475178131686966030451053182611497310991844883827537329144724178110853166985618868269149693354449791864670348725645220831435452584009734311085590586394951400944677951870335052069946381908424024827066115742063386049802628066391619107494391942307323755772081629896007412070748232562820779488389965019870778033536962966833382606765998360207742765745438142417200258910678615169372424499825325474957725339778799247610829818563141712857144569419891017553440770878516118357389400707140906649024776996913838022114087296940309972277218941025263844212547659902701852251433493039089141853037674315331513056715113682979457911811038363471890939241233747760607206468868173536838172877033621765058128626499644406394990670565045375315093196876227499746646235347303872995814949562087948893582483893095891578305207897503755626447216154602224404091188552794802833894426459946658810011068974638507285709486699741184788503581109670306766224191821837277305241667410547733906754056962671270657290361805988411670583956869582838572601431388090100235682232964241675020372842027733795353276405253530847188666765813326273805524727541442310745512403693158137814494194658437544680047894336565160406372822180876383135290801159742922733142909106054378906122544642273591921322280922175789568231905792389284198061898231300920188052382309285813989968553122927933164753343466272188571449280697132126886534649719754719979851224267126713016586168746781709890471196974488618123658433974880729869828051029846962371276139821602790588378495764824799908850412072057644637295857057657351619848356672378411150638253497464137487805033864270953168684960075045338435838930195538424610749526835602288888171999041592951814880513076136712807644871965547036361436402151309205569954786973634576733348653642028161880347560814450294904964078731583889915898353215548807558175402470444662627551302091892723583388416060788765349671885381031811577156105253238416700662019652655494609075659842435992777559821750320648792430549675851386900046507550198796891790912868847853990397686980615124925985187990465148351682998483611448801092067773543903404041515348817072162248472705202811784668793788109090316998874369587527258227936335690165083976355683072985457416484748642412395665979778010503570063489778787677498833510715526416404407106365807046708583519868829682597384548381541794861200179496515632937914300076106390198106992400827645671209245413563121641083151554267978959906287877086779819291355086383167741484122206654829117222792686367079967911645926348759972934507447463285907779670285241791064393703904455930457319167222437303439910323857308899715635974570330472202382040547360561844755462315770828181592009426003440038182678456885536284302887258167527120942928683591336978007048325648117652393257689269371476214653566110899880901370764401282433127502905576457421387840536588727279816930452494449804334970559776366380026759317335326499259481958857985652080048593137167956241743994292993372680314622606742784053514974719120429827350762596000967837161485247710588455662275798485802756521008848851487787767934748316166925822931565495619949097810208502766209193650516053869289867235277775573553220263389078255792878724645553728311865598240860001514901602517101413421506453645368455851546376334867380913052390151907387761107230537902571279545710854883833854227403752549571767964484458137317522229316465819881992218333289140690041712403291887248937310510875457320625324620576451782897128353208336488735950928910181084971873160934056153786485494715786133907953136261220512025889187634945976671145113648597858070767258117019030334063406138720095132750557641019121627849014142005483063703231738536487572014726753839645864129186151940904118353882325419308816618495240915083337432419095826719217217654584603113751158556127191128753227906777754066091550860324378652958739384147877758000519693049271843470477121642981783916313113953137930296346350313848976427500374647055984546179409701959971423446043542471224268764481073559010211832232647576021245563180476996506867980668136651101486325311179851185551527852208381974810966828828611884277811780613812052066226802769062832580645539736656988149348239120443683079912094357717863990030282801008063875863095827091882273281384250449144010713745029174535068279694633069190612004551994376354754694745735070891329222396170398898967177430498898803606548554525008054239738704078634903418811794233556821798200259476612297284174718657797842371780650225854115266864242345761345261820804953513362657278138546848971593578435966020084925649964146592012540388433272565496876354823292897339546460483043249654232293740485799805564836619053981004581375558982225316903112570975668718183955114960635404705769071351362742563053930041939656731522648964457119390129239046850214484361389351193472104265309579362937677102506558043044553728526581329641317606020347060482693658724206177139666864158651625634072927882407379491682479524631188220021755679008332660585886630430113195036173248683867898264619119235841432791036425334539475853238692809340906397333780845025918903014056829373907123263579137547592225565653111585199233462925358381116174729314227687312801150681213534150816786150139478170123030194409418269795610190220325976193261183053212365793392479213768870020740521019301368263732983613636099325918223304711177879536089845576829163613692563055927140199161952007391699799409476560208800941986088012622509849497268646053375382928025671517625854421965343967723367666346256119058732160468831535598633429093498053534622999641219398639372890571157587831871757638024898007020835640818830034604557131521903275346669308822115316824642588954905871997110239433320087003899667686729635368066291226982613193980385098581691801430998826568692444529246074631258545813445432143282395842000516256421471716284091230428921641350626996709765157931655154261891078477772093718126409030099367096405285565352204552322306119824710019066954054253939643066421303815937306981184477562739789986092565947940509132058142352818697580942854459634714326284046248147421655904103120215626605132352498247605605941199463708006194023339842829054199535002656494665118244880615966534533224700367707318585734974023933581386198906596029009793438096260384374758343142027578135268760760548396232961471100121680026241697503443811900361687965730962881669525828599797501396737198460082378262101563147675253649551156309790148159226180940080847619586984102299751169651642116690442334384948312595923610142905338085490443215814795885852576432104381399056040893749000447395977774633999210664527157636818386909430464712370965266634379725307747300839904431315157147709735539648929077909235346121600008459571068991309648691796008737759653424303936851144862833661027894089201393953754443222755473471627271150456587782677743585838187989942147404251612191511702882201344248281613990036885851100823633028248676353130222799094819376067880718883795167649379192251916945167210751066568196751261584834842073300162872439755120762993365608815652678543659701667058841742797896736420211781705943702846939388687315116385742700977037920072394468333838477460510113861044519231891863323171598850946964119059103851798269547282454707412185545870556491002805699939969251937081461256717839832309275925709235711672887357974471294614194817139752588256958947025401021897217806174358387203696177502740694437180207083804612049604425036510883336721141714939535152342754857423789658725298383335406030916433557380110243135973075534290256512421656688124459633995353476399078912097768491888805879960820930839811185582791012143556389593048322361574257325453161092587593510976175703915997882271207830715177227490819928394420653387251292194895954233372593911608051669871879673578033118373891322667152652667190286796164369302186193351194838764979364085507799364003421836183205217700562150382644973743614166762964152311393386422940903454438305295836320468047933171035421239481493538029195795586609409873311594497954317317047562587216930799208814770401755816561081145545346774893490260801752290246729472171545498663853252442610701830389655267097865107689883042287365758183290000142391578801727174420983487942787764658461978878786369930556367428766284423769077276311319588219145875651576355454636262914875917475223056322517371002700378963816788682469157241239333280013420167422708660468474147295308562319753029302216913734485978050667211736348389248508048929074921729874991782140544012585399795524723301774072675256712956150978564376814670393979085082506158988304464024584406409286966046733895705747218024291426640357771587486916501932051782537972556096966595474895391582832390246671573390195823361531033148659161100412927579012138770166851627323167906956401979188844289367288577917661227918395885902692770028418958902737168378455895450840085989177694997589592594609529629331750546958693644450555967548209678034474808896828684464523874041506723291048884971211851500159030982893173349235327561524997843850001881384055724235526052780213283831310933936637764428421169327003768108688413779303309360837043999216003261573117415145392879350270597129701831557250976136078916371886180399017693963102848999715726580295037131648065057613890744463278753080043654768483835998531287965180272976861494805732407980228258094273082300742549487371903783614439795919320117466373780020912504682752033094568736759455888418134998724805718768763828528381258100947206579940618676664385534033284934654063476949340313256037524232184085668499938490463855735505429525799644807298844554377588090429548380271377868929632988422260653880981264005696059905479483590391004629885695418635419853494822746122746426666104127719330697830556197689725147191223856839048782262404868029315112948838471206568253525796116122197158250147154061762963600683837629660236429250352159479880702789338842981624719270610327626139272955743777487141740312229752850610178045836231958493465394024285782672469925343107986021926755933896022669274643699689846917817274979853874236115824759508181835962873685756241924311702646640364561083565431183359195286387406086220648982480332226223458226494409783645855874707198469969281746288385984488745180956813251471757986097790814537084753845645942493598668339330476394848865343846169018334799650398833962498345820654417185509442544103221011099906444615332726205577987288551807338344599528268651129427254257749819322493667814513247580044773662030556717051398264135121532151270216540415691776828871890606375721519886701872077437956988549687998317578500582868286109154363371115879149814135067003726071917782499677150586854797425713170716692515907890506359787271746725918236160215543772370843685883023614150217783802290765359898300809814405594628005115736979068435194998074982771279800004606043754343258926508817761757753003036817821139023210728592510475172681122610690607922797010387760608467790105610051302521445966696636842797899193493206631374006097018626299428378709974164477280921981518688745450951038148031901309732416312759180038178713020966948766526097117834001991832191208322009820162944024382963352180099088280469583373965017696269769063220689248358420490462165670310932337974355560588257923963687509480542421572135733329141974954583920514689452652243754106503072922783136823926938050989823435440899010385231860526320793445257093817734479310232734038192402835418879173410479902140306113739182628320406453514485965422839341415755560653626689623744098080678634404210030041246653223532236204662741989442320813493186802869472359412124976356089814033858593201733790842411880279030280257909689338523868356799368572277891083932014728285050990837241550867701936231371810759617973048394836661079546517735386005587028726884323430278823559543932470860330875982982393236340647232306119492434745788493241406458621224671164037934179445288343222636184223020626625655606056723945590661555363384930655855883546112319977768793632885804361751928152170901348307075313417266179983234544019136256811234747723136815858372229674682962762898506679270208085288649351002776979846159120730715394636320565790100358025163079640452038845014060846710025292200034420647284514023178876885486739180345507811248783417977976952969672396684700188828032696109636808825086519025942611628124232778493393644852480951306713645876064505874964618359487305130454262099945083115195368858935418675481534567487999585306251980582961257053442937297835805689685612175792762429944650550673047696125072469320071292719316993628656190389690960556804675860020702053798831059329907560665224411123089882288050807880863702565115929519676708633524763323821777089884086406544006437467737065500426466836118841976142938101082159175177356648609089928041870132912292382369283157470354819393158444548979939832416270109518821311989016518504554273884516623427679380249118578337961398904919308771980687102561491895140260960496920349880744813485751161391760600428133149560504981644302984593735824416173633672437996813507940203625861607911620665895224847727214696226597696860190937334830152182593202662112949638768641732519273562715305556707970729942244558906801629786096822514314691394953667784096564870754228798445958787278246282881851592777545036024262646431705122979381488586702528860513586436241143388318318443045617824618923712397186359116275052489062275621513984003998825578602423383372870648988169620184424166368065833931747945097044039636692446052377987446357663580878792691145644540710713506281211405558101411828090218727366936683166376714134358380477017040618869342204819295300481838634104036961540102113203357159107735712769731309107577072415250424270638004481584353492946805645483582383094801156328933007717449358776604708794601761375312975001002374576008352338561333880890389461990245627501396793972500352382599922831594712817415196151322390296947219007787424055273075806187897651788730427660844618549790845520668152893479549643233963901841041575547552354412569986013415568486598363384751941420843293544280573566516531409794301960203495799448455793812913221475014393830672157145929122483992010919052795035714843764479293357860306140800594706634908509126426405892702337016026780698272999362844185431470278712051666178366702002733644106416302728485053493921418460637022286136096340053022949126728250100058202252309654203711863362296278502710831586643706484240016174036077239862199936974217699432826857338932712587319277308534365481029924937923195689561243859311218574362284314922093638708053202661303715695432189695567392016469283810801822660077328409945629890800137311911632198747743638943564435899775498629031471010749022358173866813561535967485122110017098633503965188050653394673197494021452087692539390667423722859613578352944698107143069017137241300831316766863755377161309384588528570026752575275520782745879809732918121319007744450386342742753201574470587298507762383368779095847247371925193199238993186208006108265488829350397413959940158036753026151824638055164298930080831317753403801686022530243406251358496154373074358267770797021599264915952216518154054468749220102264840239068901634432567849548922407064766767113107638075247374498382648184085741211779166286582117480854738156900449777603326167304284789719907633912735017197611462026054425644713382012181532036699965678354744800879455858364035504415304932953733798924481202425269264222327177920140725504984746372292209172076040202447648567337119189253863460849483100937092707221756626392454863177645465463848218448807568368028486431070119974951989242150686873459444080933109004794598623655926373154828118574464274569905380104183953524888865041106423811905590043213302359507662604910344348675978756585627283272768480189392886017809558586873916862968958507320650690651023035891640805456282665314490220401171003150601256151118454363493107800776483083112399605280271384762764674328999757450204298356238268067498342778105123790592890049411901042047517479655867666650980240108949733661214549495009173040492835528647635722544046060084259803610634994030892851221066381082106083733572205533787319071405657791366052030017069390429459545271824333378813360792676662933834030926558581726076136765562279941780119559281164563571377351459307616440626014781486140352421344006708551661165785111497027249853804140499377773390352903569606306126944798722100817041924394907407731729130076502408453632749714695724299437632809904057351792103311197607415221497063703054771688969419430496302326640911825040240615162744277926325822896698675445202355958508473993446362821756031150162717454152028633730848493601941274205116551302160508594596826021972445645577111469803724117013106822422189164450034866466377038815297432997266669750659001918572924838609926313512164678062128622495102656735405421680562908664884502126984465624613005949630953013473328445259048756121181252290989450644786541101111404629000360253821766662371023791621709939431498197392113878973918338193659614189488858755749431784238195111022326301915792046454052058424747805255031048475510556253646809165330464866323691866446258552424539664760581075318292145939655242578617912490327702241026925578098530412175335088828376718663930499121336909269750772895098503421838540124021912009440672949631868814310302808574839502163322638718700505710939821754510431542910226549846513610705623256537231705488852795438700031667169351373142352797286773724585627088779696085622871552183071589594235330247612667803350881487731790311427598931864858947588798774371524626422489686029059480819364244801474609520996000358509045761589955892339975850156590616336401088528093337465745617713342655773715480621994740266698894307322027165996663777955700149599549524996999712010010141663601813907870584509058025735896734030143910277812334818613034355872487683719588983717912879837587410249579056797605527706020147048196065067413252485511795849695500655058541580219954516288248812794551741694921728248828192598239273276460750730476222363191451983860046646225896606176953207949155749579646852457534100357315386899122610210055178249078974717349173201046046072930583634246586420742400398588830780443803624750599617834305503272741056060297009929407645918589477406700556979464973181398142938846511978783355840509140167645919527637704432007991202576168291041486033180285655187487011582841974754026952769067032443323940552111235885449494018251723264487671660570188959940438355821381818788680834190960332074697423230148317457463959704747648399098746464170469566924149123730092113721401304075184953692498152047740927188935480691607391633181453833460224289831009544059459041459261715042264019037443248979193596839002295777975240263991142000026376658509186781533683513256095157670950663531942515132211136348869942799421340064314306834844633854561916702587868031486594880768004659832006094575060501430949338583506027087425738163408101181968700069586778640306143256752676205395368111133977377813009628755285525740321300981697323190987712075154069012408741722919720925637593221649599884799045393616385795943952461045977513032917252591382472950252035936113810293253239848543035926145202078693714202709781962404280634274925313056231600222032198830932292565019109307958875034329723994207185603265896825810247750469175986442903606477003707765340981818715491069047643067946094650395051403895930260941103495157714829913001720774991115291889009135382382882860685630874994547616949470179090973314425805319322737183982531778557512380106527683172982672574074685572082531895993611395284254092744393979125635134433374051529896435552167399612754926712590874218716452889400883740854282140704033051338537304657703290830222796082009288006467071866438415443167281374886396143768264213485387115290811835070675719864996667966451582731135948468224222101921991541999586493100146396180232742687099160620127128432722319328159568464716617831705239283629963044412234978870955945567748306737343990648253257120765418706203797338995067862951108838207056720839887560946747477665147980686944843955978053444270154625239743240881185312086305505785773640981908504299565874958735290082140873456358086408130732552863434186918799504708629299330433006898989236312961398046134135012848708451557415752129660695659904875180645440327021951182053064151945061502540526170064123842523399764325179779923982783421499485425163521975729828615239791542969900232681176356335309806596340293292197046715234177625881684140511693329357610347385052316313970308097327348722553768736741323024650005802159735236474595925111390755652304688113171397226093950846115226023007324089592433318719070609681110087966804478481840209656228015015770384466260699107866139808526786427272140813911974640568540676237703570801498503538995157075708724080894227837729367078527473774165745128046194141559096114674786276161937731304760698992270128982875271782700233111330976021882067277165825982523751967244931941218428352130096291545285782809556188156634950703144485274050704691303922244328137601307149838824898969258933802636953431322535299253135057645280074819496008737238044999787213617158976292668019496245400449013912581233030218099504047121920044150052593092716966293390967985403494605701715316119845117899190668839498775779563750038997970415066119545964943233538405064154346634447626544748235911122169762759685424994282501424733745511317497139691146143852174494966320428606520083919132040029318336650649510191830680797142432223895429945052534487879916580403383445207925944872691857532344263273416128497667470196113751799133448139430813753690155994267338929043976230247832968582668773686488965886753060249413571051746181236789728686723301720741464006304904947845963097701044130405310812698822829892487745781728585179719542200941659638687945484123270454778275709812684368863627407601073484467277280714625004104526148837143647307133759163397711797923385745976007940435260097182551118605584240197394921022897523678628931006377465675592723424154417736954316583062252950487060050157696404150727168399664115591906309103717095505523706001421146383151208729172414210862130891050868887402011088167778677242728208642724918029288907452261195118631397672966558507013746180320800202655056537406915622880430283580412670978255271942714078028398894137244838609548411485760486775752062271285832227976303545662613612502922241877189327612821224228139528752729218735692046617594106704585347446404260170464346409363612318346211619516844074829468605302696872389062235273763490144670956743855329854860066932256092808754629984492770112058627711460798491719984017697572063201975628349089925045901350660947110575047204604838498408436818379291760597282159149057577406986832506268938511823418370366580898037715229314289404058998529290454493527050535710487696860825623157842041771425938348821014222578959573921915320590121270851106448930993432020712795287746876615334753679393398975944009214660491295620187205072871522308995497625533468682066863519493963033930312339093524813319141268160146760977668567999575675369377396508759321825741014678188721655713025750809533557376816449744083424452299244266128647009838062453981771142403695325129551669174381349515010959739831640873058757564762863911899100349233654411313613036271039036618375731569275028280490804191679334825506546977319154555289356778694668529040769580823464348535981661587072080562277178021331769121854836539117596146064798985610098359912108108952251285353222599803149676764516972255843957488806527262403556244771823242814864490070878849564312543260787433093198888280195133179289652523577762162005135738675950147968114958350458739485031897300325947714464846492461570760234416387584486297114190656320263068858015719383596315107092277838008113100803148837684920185405841558511857320756012743045217202829909604849745836501456141629132539614671327880228271447136373468927247004884736671238308040134442988862720553380422968295542082873403248422992122815531643468637695589644768196519085737508164660598754770307217498781055203289807629845305815596007961361968142364921275940630995670129057823905301622227527939206196095236363833323428824315291509588641622799432835790943341169504555177852271592994818376334091789724707161704196582020013856654302172556550579538886365768485480509703957180975939979482971398563802077572087696798984832982156269185143866125656923023619100421929733335173463879316457657129194068742496224294933907294626481708684243469076918545750339343999546339357814414316814823936322423675639397414848127448759043222139164277932335332541330329743431259132497837201626192916265767844960131384119808073545722038745114640272343777126009955711614053744135054344012348412523988600999009199432256640833418849613888669616956178482103970555264142055507635432550513722175773301175766171175787126115495691012526249785021226949893830279235000882279010238573195483922359330041719198329539619427369516279773337575408152096892040646465576263110294134323969829755011919612203723192194025629305597058187958789594900812286474340540825053153080197005865035681980588468816276960938259679770340040732854702216451143196185121848197518646703218511863519046081448982415100441324392835577770854987868603543356296282624424793745356287721262339269606944173503732006275966290862034396627208995181712128497445384572938487021359627587974236009390108585410497219109102762935933249178026764184539223937512192749892086095801013548276527526971134094853264141755664561139885950113636176993474554156537243134212069345364580992466306163106291514295876134335741200554098019962972709560002117852453836353077293903447182959044577033782191604649934150928398857635308532420105838771678469185023186395412242457201067924024051417947275476483319087602990622837429673241202696398272834776721711757369481698261159759826998291081111537171092527478844327865230108200966984859245561708075507364080346599135436770738995754836752966398841724374460761934600280580579638087484417258398003524017194099496180201121613312732293369415319209110478507135108155388276288957729662090841894394995078801404156204051373631051283539698689329030466295732235109497167009275756937448299142748680224937582186489381696094067515903653354832496572773214129039265752520466877437653880344653101529654342603306322084391162365538132492373873257194627870243164263526423975465644621233901043396526938538100445874728981694568187660070815656696719079398379948828996935340541060009782918597389012601605057812286747865781219192600346006385363446095526126264030726604387331691629225511213318427532817342235208366205244482498483689961994836011667717835949741035326957349244327817320425514453761380986724804616965141206757157202939248447465847000214816417657869294124657450227890924402125237542573917282439599376586893111281028042687163979630899311170836158381591204336481828327206884483490888017263767298753481871293247858221014099885610753280502770366278129109319592597503553234071438931454738199507930771531371833227390980168450823657144800955826086885068315217685343232763450040221259109263351279937562310704718076544375820650007303900000202234728225350768178420616037517512159708495063344711090795772876252343579632829929878936815991242073017743655370707374217323049424701217183612089047159354768011549042048462720922442932086149748583825875999720925662094960141581840121373501379406947263736313783950595872306897786893846561701306408094928545963594260918617486630192672319015048175189678608582585804299447670514344259161189846958270456246914810239379835924963255054150035107263192574159436741852995637468443178990685715564145082809924093671171145361510567308980989338972657133385414775794275989176971624190334823175955429556227585486549953695736746495658314448062979330195023498165879506912691283695239509363334397346193145896537121388834108169497151940606780057848856079914692114907010543944336111178620605564042618272255239928588673237159748076393402165040637667724168926522534635104739413384444628385771188114846987888944508173822091555148126560075351846970265814698556521341796134141008762720230588868886861702837152604808859427919549407174319143750874981763971647311493813349165007487490614192931382516352894473087129571397315448358978101489734074832896334130913982047708268733269418056362004863858611779999549050035812469158270150564797017129281035661734634189678717474836560214321763052929277252327931877512226003629985440655154361212535365657821128749540494598781286045878876671445411919574355134950429704135630256638727325684854392056107978120097781232037882691530451092017457659858981559696388836323497077876980462928100742797641535299068540338370897806334216240387568869770543425740870490320333653852025431179689474320857226590429124490117216539217267727301720590339391966513600149446395527986626673807663352299068853228527386200517367926955151224353644010775808137581690658332164220136507249449967661827831794531967359164791167852993087129434868956776089972404313613420066990141932204510224233173647406602865703879632664912133095075254237034376745754569271396204107872094574372613713691668369684248416479353502976122696581755093564094976254856067879292206311448285835907242526589357929216091233017187171541712910039917384920053114164184929016503904123637974665121885267368553463466286825049377290391520345167730508143937349886872577076989846995238393755435864220735890773986305756410690712346721991483573875229428049338170042375859607166409716568021582019414343298518723484353067396518121713463851256309669210533962395437623184859142375080654225250704414638097856900998945440683096239928729266973123873597323751601187006925100964016787961023604992682500648194144028096171618787150789589749218271328927245076701035033099615033915621107615770068889796873566308987250518835461195981669299285461258495764038301417472526707365831967976371640959500559125986520445941030111842905288369347522706181002803161161804110256376258917212677751288557161703898801165258583109020811894735380740654229470409739392904774222266911219332366909847844990702036966831371105651320445991608000158271100760879158442634944118132302040355683551219725575853874395405534504832971446490872722078922525113452592141707848940545521694473420203357914428807094708436099311764554824097285708075396620995913341847552697907567103091011126524025674430443334491703379925617361277573232118793818664910194410454795405241160711608515656174771757801226374340368413046040151888914565602442849069817107795223210147607379372764822542900190739642558725100822124022469036318466841608705611000895833589082238321609111918141055355937832702767648682187329661138416727546352207315612920906021676732871872490505275151766738149778727655070964042543662074328308826570108451072108553454812438689597307269613392650723872459675969404538316749863463126331761067401139877201370174543433643249214686535554030217795789695285404596105200546888961049648179112218628633050754902818652269215386957652507360933172226454761980219345982299676778752284412798298650334803783104364147377608397661047332598705736410624610890823546835965507520635534214840933905724058861180714338913803866664407097457164169867282561724108042021683236189772965621701945243374662455471770368467787875974020240236137448083493084191111390895062495175305878901360160344595952007813572205646958258892262857071372003314327882702902049276192198749109435699097672605626139837031828669320819156899426109819133862002025446026867824409087926131444420200171556745272008601036094118968480122716121208307304184170971208675146308737897150963453841054437716378538753059459816206774567013970911507777421844271331508603809439074086909050046942578976146620479657523709726890006175344864222463132538860963973695161416800119883611072637128340505251224462438651927917555930951300017523421443536058547819896050534124538172726963083558897297936380796631661837339204747649249452070672042718336122309735507238376284264544595450429164522590889226615662099920777121636510479328814800784321828811364652229372358413794633355737829274951703128148699448983543416995899642702527519337449593567068159475631525779746891421847097347031652661005009524921009672859928668265744182077548920879370200378032634022691768700130738242013617683920417209046685796351867951640198384945641480858511544237218581732141298217335615373884812898089302281649276189724441260577953380134672034848699706059497444448530571791346000230511747503102068489563745524405161227515203827679801334780134845635911114437650694088928448745287845855389081062569314246824889467437148723388583043667476260297476988861611626512786294484520258846711277013739065566474890753242493314934944665593811381818127851980529828015037045144389460052369714516448163020714733078940429862202838019798984795759864346685919797160207566754652579724385910918434314872164575094476895763896036158013661049981554736286801167503020278619405051908908212210701812195270916740797423556902586433899476655363820904525563775687319366909996053528783642009337960236448919840962314826484284675423613918856912270453914731138125879214341661335266820855727667024712936835006461829782974748062305835936512597445552717563775873305323226687748570345436346719997997949942752041431786689990377682293764182795786426880436485232813152258183842820469503184744487781004273771039793197879969174307050077275650084686197581265224364144679962875817851381849715267164549706309528278096080365388089105180007525423380786143852522924264701956843750241882163243259656322380109098853599788205700515620630019761479542853286250354743319481560144625290365635072408120578922120016249112852223761316929686674788123019881136874179400059271444047162175000026397775130370801100677121476969368092273202819076271081898888590657306720835279882018553118945820657269332090978238625503384757965092796181861046103120750471653411355571766612248165306046764735266640830734064069406287696445743593972013324457864525593858442425097783092363010327527461116684286334596160959680112054879004625411615989653132032181468440647771770695295732774323848764277882175861518403331155092406618599623278862491099543813697755587231322556732074501168965931724137903364734626531908427630910337927169372282803206949039507647825172356717474171202724532516198756851141182052745618629108305901646804669902060102654097027325889515144162283667235831661141618177251442938209991088920382507199996638736462418580188755722068473362998150233553799080499661597492167740808226967836687693861389015389749165454654595144550656408147011555511338534584424472438471596265264842582067617237502383275448248776954391024880734082352068539003008205690401769543024954939078796809339838076447052438345670032744076349759246135298382447119881618601195386735070950462802087050437228012268531250896903345154080855556124030959594393589195715762722119017675591332338467633382235635612769816456629296414820964114821137379524966673381735945319902489957734016996575009781536319197476602395959555061898222327768123731812095148447660862212971805296224030153179630955773130245803310204365798200261463854632863269342039829549892952293259949937621377831201643721558030844941123868803914631117039848604934585645769444506328185327578079633910429999246145545290101108765716555372128917812118164959915752197789242552424125242078276572690165637002947260553182094023784720699341521618990860055167045334098362736870302178098421600503768866152056587749451695796110539942474155201840331434816045986579017118640833340817221485933076640401803492934803162975160379117711009597402153928554412119293014274010727315092643041919306292214308323283297717209223617765898427410622030533349132301893892419286426594922585255743992122687882560619947181718747279157953002072647678224632693156644509081846901457851285631063005344686275257208187994522854747637635705275978327509868143680424454765161378245288733979946798864513308937000617776889021789635231012718994761233385893396311202865347392805902319784764332886193445151896363713467045811217781773669230552882336903594422835119674687911211839358041926491126980655079688742145183925886108471279731468828324867190919376778656137571339940424250872365212358698904790409924750805637979667320742486563882293976577180219114998710269835447261955851743439842272517708697858953733948015638292978544065694675865138323101868151161826150069693402232934787520778192928744777065736343833574200829847767992122428640094161018082693812575643598761447064812853874878666779197321278709991615840566808666683336498442096251342293763335446825875283535972046064354730786838055935955137315360604293974115078876335256507545938154347403856267490367436004957894312802234082032459639400726539468850829849707146173790332555494120524872987843282210132370772809283855973853706136756398141959924375834858948376828672045744773533213285670177223890350055225878134331286163387911176829467933602165918464611003826003264666334252881292659021836957621655087310287596073888040365204138259902649015750867651045158664356113681489601947603822110707896833443229959102014393176142753082788663574091703087316598633897991521750632068334796896203500056823849604394650069151822489924758846556024710658554196457173308396041101827881598601617747178009629524057545224743185369874317646354120326214671689367041098917557687364357164592759693212695215438567273957487797399889514388777005780306805330091972135091948714909313867794285553687094282355252125394648952182280279815266765424703084631375800779637686531326088125773229633774077733402677959789114394578192019802511405895380294961879331240127531945276965304479315515289025836980317782757148873910952578933999823796366878747208648538140930797729333163921325139870746163598687384316106044935959830093993849907725959334998922783702135987535946066861678156894942246080373025208844493620106286307129358350315583786799090366440550297066985159264240524378184665032414945201209323652336131760071266604069833422658584793967745236275889273473735930844328568518307808025214990389797608411933869849945658131447920711112858779996266117015509333330103740009098910756143777630797123354044999055723663770943851388271789745795385098521713987697867176525386922695490680740746494204590462556811751978610673089880457744710637450500787149503491035949275187894906994629650867006272321972607777141282470980819810445961984936967999627996154049461653655745765617706168859492843677622996211863556706114752730563741813265652923994237718694543388669356080782487606267731319500003768476068606915457088347882121560083651099407008205329739941986829280618878761256204267141562216674279332948963755409767001747007877668096253133960068156642140756668659759331870433537919339794324852483722699002476032744975600244251206210491845060715120838057943330868904687520352042744394500341881880454073219757305739974682390104972451885699175640186436822061319346462375954878777293697729263714103381082107837707783218256420584718307882047154925483114304342523135255855195357026494744842985629721382365091929903563801929186930241640222801552228967311481098041789429265245592815557674365748065196451477012839475977873555203120510447315436176075581753380185850864958728795370123107832471228215137503625564796970406173812406399834951928027269438526873283642673954598757829760725955357092393831236946154201396899378574282276212462307047260404789475236622221592086385862612974236393403890153126444695914826263092940412538409675514149213923474088218029823446042418239029714131085590474601986325603872373097662336555274187093208852484289078118220342903310266708820123135658146223534725767006221643973461857677644517675823320190592094648504818799781268506771104194345709544771409972534182961220220963428117271461951639509537159825283268715900946478427659672305359176508054530869494188557916216598229520350563634290995642778086688111435293009827573216103595532406291680867476201202806699466052389732839800147489106762997879209151175647695696198793512216656470504351724904524248188794044523225858617181572475985178903821301566715323124740951573035005961216768383821145344756291892286811461278707688921083679880201780652197377487103770319647932693262750663329353929010187065693474652183113944744484347826912864777189679636277640577362721184140663061942388442123341000847490594547824307843622598976102935119983560699085609252942096960423220260825741992086347413884811785462753433253468667773098732998378647258465185252806143483415599951256984379388802083259824237961970713422341099253937111347104425289739163029296114635265409134657667651533104522364147889528283580328486367864780746626608477901085036186628179294017976429131413139170957111326770025510214751777100195522463833026234772673001003644927992464424919947540664140372396632139308285614557625579197069766915263998424391123851877554523566566003446189866265886075897741634049406970879378821622848740868850234587660061332036546230266346656234062416037939652553843936209446968029545110845046050807204749824438723075802573632847885001988057324430545408330523681393253826714220642399979999410976186987326130607322607964324008460470666748206193243335185873206234665029599760040520598508089112173508636651718771172366728583005060610150489703234662106934196982496170541493611223780060126464736284376825005335247309821879763553842299704850649741791092602223165731807129137273811158558992358731443929374629994512641490803711583907682411651099414811949022548593975459628331374889010051591548148306060064852213398172954983113501199749304698929795442088040327189993482531659426248222432071732269119872980985622621962401979514460316067088431504953849520457183903962240717429890235539566386250685527547379052897902906450640412810847620301374461309130042242235791882628392423710243502536479332051826743081318766894585695292870166808603891222518205908550149988687945220837205404161180040332358950065960613924550624054530904205064848327666057250574776894117876662811416781194365198469688880278728664919043632275097662229944644647111933337747274898091140914479474824549458433194989669695378279343408020597688934534504953083057234128033060802078060644063250183172343924489651394787490644150880014457689611431681800293649491155662841589292046648022362550006212526219051195305435149607051648545774956341146289795941534618765287405038247091782693006105530745169223559745280896297771291580886757420356030986244416839368417649125193995082507313353168064819993205834455877447233441506872800742558156178327211672441115574915115507329156187048028986441009841635313961343370938329421347835935438590034698729462462856809595343657037201869347758850911809822349612017087345357572514593155527273263360944180360631969151561133180851341450901556925412115342368639052949971894462659568352307736531154377551227203496718954865470615814551317545833478410415466240227124947859808858305423512608009163791511525462742679997461476179745701289094265383827476949833615699520928928040688060814581866609797564804698847225846247926256858160876740758938605861001876927244417688011191465495171457970861441188326698488121874457792297223394907337011228623710199024131427967489974425835176610152625872552618654752705455166077093990811491754226536174639200048686238815691648159992024952911953609611934431349301703175038293319364086576702358307419187506696340295884580921602323211476253692741442332490198729147861765796842950937782523497445514749894848933704007769621844718669643113849845206635709649671952249394245822022502530098557419501907443803094649228368450546424512650372222655559883583395845913399231107995108176331331613143243441311887175658119106382650625428851279619569830202277679451860657311649341684522972524497544844236732644656915459838096349190877157599656424555504724334697565087478425062853878700551160990156076243851031788599487646811792358130873487388754947873934383835172067064161051672674536566005960466660281676518591379559798391648442672685767892631810469691076130962924662093297916105048436019837037373472810684932319799661254599762386033852170760122974511638591075444451399860547650183262198972942180403270937313251478566305029950500268894210495941522377814015386325539275820454049767191630050610651770448331132758410258454220785818457680969622107472647854394436450044775568934755335108502550474961258235087098619778476082308528690982458287536138369568470022185415718763382589789536115333913501653171142035520472759785371989974174684151663628956866311469972058369445622629070518603406949121075931300776050738951279774580130004390165212773709024628634107688648742405930521927580794637246536158984834825284840783290614432017900041807337973805701559226000843730317670508801658764885951632647516515501185182246806512262788898257055908663181486812516548109878056228993316365898095743322772048256821254300931001147170775795204330338624030585537146072667392099008136998846190926636723820595369011757792183368657239786212331936079967631140222816689368443512738174048422970405289707888781652888545706424894728734464505954047303361536677970449962748340259138884935836404643034058877858255933991975468206684029583161279816933285524484618651665105385502963039725861943559039462760400409070186169789020568811071566991793240056458540020840128354281584974737562115726189693879135412166373005804688209509088876963891107786004972770851412077485742767602887768899732188729884658018709414161887427148870323092000967673463868999327012678265050702572329844434218124673072020593287754424664807574633512093814960684465108476450384723978332850651560908551223607871162630842123289640209064954878825134779746025823953505486147496844315600517140528577871142063012388500818129180302796284447777460411364437485112440061061591268096578066336145970127282171644794116083225454622512957038075391315379211805866004707654509312926833362520772897018910573465712638592990237972574137340747856129015360932496717922345734598775630611628169930538721289939392493181745946406774771823171734980525484800804641882859004121225686827474130855347200355697318410462735719926591141560369751182578801503677847081455827101692546273553332820038336385490426692475633182554035553242753075626669884869169244506522304569681100643568372951722554364851219093306493194729241835147338871786890368300682370489750423672335623973077078309101366584754906440072208476480102497887098776686536142480215251732168505522559451656860433290417694803377559482993621902563809532070411657237929670981408541693477276231215377828306864603644258009731612966689697552768276211744726535010634592948139417323102896217262095884609545026893678404421307973469348395442100266801054449583602252075564049880679535917598801292707512992884693352165450864576191916964396966870755157410349417383393966344337518209175220345668005094248923013050255560917437502892541391367350314344361133183362397413507391362205111251660293723194451907930538100833169224638814073358642527826725876045448148311807676051832121436760097301513170285092726751644499529735241057713489316960463311141615673099138993750454957147384322903559528272149258503794605032025983398217803447874845314165692795091552102950645854995683916589444037178706214622900073161960908426824741633887204394529367554429496240116278741655146133121554373515192996251854576317623851938813773165030381437735726512638813850271078925344021088917994286461586539186509246920226502020839297594119870887411234547104290633857848823605518489230415187620160694386431327891058103175539089447890467211641320267344170033184859483688436629254696520025755076354015366062691356771530743091079167513462070871828339285835811256467160747903633520673030460545733174785878594216962142024265872201982672382733643543049780617572978374834022813454478867469695773244737519678317674361048353931485798806387810039626939016711517758445791293599579278337047098287450713024509918905271194495795566267019526018309716371179449723113037772732663228233853302809928499679440312502220157090104722004561513701491944666517971260240729497937179653676026009275148354489325153245610812175746669147343139625972085887126691895096044674923557694635926842494383397579146659206308211423909825036803800784836752006245195517423138336895193224114913127001881438326369617267131236037750813025778311970758319750881896368089775148629478577240731715368627468312915090993284818575418454123143249414270959293454587149386450146131239237834004076841680435565663205673023779225863835006514099586097597731148492052230583902223031965371173721163037564549872835073351792598335896186380531453986620795930317075705982324324522068273660601584162800694358527701343380058341779069504945752143887679867931154763810091216878512533760099669891353719502915796111131764943820849788601579703736244624882713856078998992980826777575929337470669957165823165302490007879766248252647888203467167399190319565867762533189008141278025118797660780656733361839286004277073833567070890711551184248557383114436050276096009982198556365063056752105788441167240940376297553035474069018629874407173307265079107043775830496565271214156142659248101554867173100414875852822404703091165291359449863014185173141462749863378909115728532586655220462711519578730957799356254024881949427600664391185637349543770971698194683093527399079013040629639260974496453352955470682877456913665502807418101052033722163889443283739687386981586881525692277234701476818658655395200177804226100209801190934325420025656126169367502580073433716313164742553048134199681326396692735939200264029519848894589215763446792745829650084220438655444762983027260834202451434096787654362119884822781916592077664494019482938781298647476177370057361443286417137343882700824924161067538191860293357817059844695798281144078250760184257530398465015311011999095528919616517037897789417690757217980751222587510079467458843449251125415522099106719591991575025820868160900805875156467496059471389749282596666840123825355571688532348650658221169245976930076456026280846598318059241349177727402194413236471016357594602550215107354693645924417763652066029850380980228602587815945041582966703873421376191384371168028503752983795547345190545515826153914070770636437471737184857164781003355423926781764219122861706174757170631089861062832488324966289766102341418833106663868980950282398590533911538902313505641535422381331577578062661815864000355797356365456163042799471853374108383534300407823120533828012784484703294936267706719197133984312424773944829515847832022751898800743204570338163914907338326435157295100132329632513283563525264812630128144247031799104291861988938042074387608580384777286814006828381772601615060589099832029818533783051487338958788616427852195948820802694476940915859270678685279324768322984074402154812011597844313835114326418849877201509672936424061368998136052539369817611164975280536622235489945677976894971113023132251709742658161283828226626254125644170196347359040702645952878556898710795740510247240316251677554359976097369832778069483408257845387948402445852987472132744345757514041287257353760063421915639560120851130150212372696245611586064321791243818462184877788471336629659794880809262673605845020164155267848801288641507528905349973421175204934309886454512358165632757827952523029843121348675310372528537069264215164800901281517303340324698976065870391759649126388817849496994612917994939299892699243570031799769912077347220565542640629556915418622331598985846348257714605562070831438678658598998984617039165639443230222250887401853495857917761185087115714684093227983222736438690102120766344297042160763770342742847731131119894854780324350702214208726859807655490811402309543522011070946271366990636365906200361224006504245213492547130165909531147197225160112546082416869743552019955157824985818323361540848927693240548144615752635645607067763361372843610339607359345880571856263584901524113249891556301329784437639268547295312460749824770247484410479635499773910912566916193277482258404043164968409684997892618934693943167705563355982699253116289397934148421755991417538299448957385458254584286433239408444352974105197618206986790126426884172607763496090901859119280850659430098864644449803816586869905292424071669920799577652217581223769550985642178706441910709534523883717032287293128049939223168161121594352400746220317266296150647647452559822997461702328871125984248006134356377992912818802126367686646145812548213816089121814394864386011376658341256393570992043039357967405401384226456259845321365288654686333970453817314191693677086380289362150689605942740592209942541707106328949687905819116716710662334142889381703711598617067465869409745292402140073624800340755912184860532875330005010031871607609694644152397596968399725033023820866006310890393737723766523181393244365201532525338658096339082395432490508573841002012503984849653811284642482619530310388549553796613163000090340187143558147429183609432725537970640012712883040540519194725809284574611151185485348968233395372350121857507851489451076566411933368145768958014635705398990672826066397445982329844682090500054604154715428700157506815891077287703030247251968233685836508373217403830560100255068885678558776564902838847367057232107885255656441441485914273733148173892527453243144688384289588981623885899359595173989417754091688644545288466681084933426285928375609547690034528672644802737384194975655218010485221980442968915193553452250572083330445674646989763436688456593405027992191256763302594294067587192875519659505358373740519241546795229173506816815483223288861466466428333869093738851168476722999953529172172293643490628238375606418172751184216814418807383534357716708757288535049185801430274848889639905890107491427187332258407001087890817040301884679604211067062704092856096103317367579165155891518782035907381444671459817214790383096936510812882293094699038806216619857992253533286430663029860582744257546172853579638292103076474900757773049041437128052677621344106860341135910985932503022795120065172361669550638250128275969611441023490176133242454048180570443071313179698664730094915119315903500403348449172985722046572448286936589048535393379312054511399733769185398964413627878275352195744717958275364035330211500692619354593336853533378803853082724950723081464337871956355362430798143497953474356409894883941333268559066040412559129364516791554307235915160667134968201951136241195008843162858089855684411999703884829896327040566471403940386784561372039228319527712504271947489429723157592470504146682372149764437826217171105236988208645416356685578007306644672813019181611711390453986126204447603832387328630441353954894236040765339945773081080349590876892645236581899841477480919360879962347394056286584548248582620668123642757304013346969074275722642161870473838484754185120591237528215879245558253546458059909146495773622660607032979935682176711654952593079854800472950981357436628915723161616652056671240237453807833304876848655204651259324699172951984335078516260266161064692483426986918379556726458824717671570923552794432584952385396629148243122085543569046722836591480829995830887547912657582938389978761721423772008994543186966443794002910906045532392223573238333454200311227096530881147394438072221715479872429148083326496721778937423756048312190715282751513562497086209773212470921299511820265163396365695391837071791904756086270322023692193455828369351493124272906654594872709151793752682826593260203590741080929704897998721458288989312239664461402200930970794327866595756152958260451889160087552680148314735857485469634138946514987597618941535113896749289976527308931961525678630646613167291077203883420564979481405924768475900744751613437820224333316335529150818259804272340544768310030091259888909157583194251953817195383659658108568239967278016335419514815724557374383430717588529771114658594099269870261821600598979528471348859158520039629130489823765355249217514333847365584509101933585709292615109027618854043466926458160025893711053412497829572426206500371121710626039986828826490894248530058247234406644744292868478831440581206048324392813158794694493896279699546565815457522522911666112852654660054235139758306982970703919619808987442077293519548898865735474712364833460151545243342886223179268275376593705847900700682578089116906943117317531820468987738582209788243808261650730394698518833952739146429502228891535771603505353501878237039442570568788446789257252296931516014532507759454119179541160322075074997650369007437296451096960164395506960086189555415788168286835836365939224235761671336266237280992694135516407020444973359203487767687235252132518344374225461906684112410643830083295949505233355506584356777127845449947046521219790007711188397278371909778597017981266090196348360360424018399317920594901573651266484171003582046438716760855541436793914744952825175288592926753969718311733595332512836048294898013675363072649475705253722680291795819235482157043071378426538482090429079137962619958075910914053818670181734954203345529191417383844217238868896519479996099046546383726211504262206433889528214497893104158029942957800798104275038613018783827762646224922870035697328886303172332418819033915547967000730554899702199154086500375738517518627729587045808738674619334339210547761192968513870579483049673676232496168024528125936577935661175315550541675441765120738742720456495978294159278739248078799975082985628828283587515010694977762240399905456629436923761586487192248699018386970589716565153116170656539362741806077277289152486198780014058658756751780281443667757259214357100067488103028009038047241929164665804935082768381543442278955641122414592936294349848963097338970590285719329051382563330429606931214143664536771600973541129526082428607557649180794803549022909893465712979719491248265809714924231209158119130944685306887347614110230176630841720762221562826760626169268013353877900016821321092570066269408722931628334725750743370268728662679084960741578755538594183211208357125679706485093079238350552784612006472430654104571401279674840495782506955991699414174787888742038095273510811923545787461604436816286690463091467145396786094675079636116284933197885350820629753955515455777168348215305834500259300126836864690030955132832002541953353143525964193637716585167819868400425371107445211410586288207408253770860422202810230731534350342404304285404198230004487767369088850075302894495291750080284469709275328922583855382234184153154130316490112334378933566741977127837168641404046169672266071421808767597236937727250539873047624216658807201222907303453669684311573417124144744122949971317746342793855868237941173054152710668740453318691097439622907640187581117018582382032186849217265834245735525405488238057181338997607887948125968444250406676457794015897699923012952869420224713760172182290401171981766694771163264975893618947160344526621924899830698963488988149752999624191026376234098799807226971336948919849606301258004076600889335804994726560544257419289579626270529739515825349167145409099461280324755476492588815399311691957023462947926869479357053713169962419994276915975751694837591123957192750062026464142620895055781025029198284205954970374450081798620982061637110732226115543372497094531507622533619961362330889168780342223526953024731836272564151644912087476015507496458377536586726852851883282669800240585982317848796756034512444548699612585313666289412918818054325967908669049769207162848145192853315782527389614338173033645433351620213589413544163595857419602322715488974538024148237569789793979305581360215784354896689099444120619099710674321822303849917433736790229302978242330040946480797606557422920638487852360278563757856369038904014354202766075704627191214954583756936010851067933894310167928470785836915492665804855050232001099332619637997461180063798195723247606637134105946283511446612714223373603549444045981490548745904262521341810906374740162969494890186982657088042978302441075469779423219145603422405967245732059107745417447443535932637204373813331522889829977279016455131162672179246204493913530643821463583061778880351999728574296450744597823781840714252051872848322378649782258234438442590514072824082255358360418964138098350636356916322968560155546987238722181153498005743980472553872824530377589554246904210862247485881934656301942697929135480438871778997993985878752255810804175935244064613025368191276717372370472662585862511967566415873135102585755542928415490267731072275102013432697890631362244291195644316479881662398608680595774517765560101269084552681056052375740793886303250721826538250095522592963243467458690611726127846185536523784036967406752963109868337236062627810770631145275852754957298421205080356793485833298395625237958637917618144685398989831522388165911475746426468669020579099897538044949710642382607449100958109662110090435983917296998183252537339850727674546814542607878031862581603517690541363994868876729691105378788731519465408180085559863885356401048259327806855925271939725427336702611170143185427360833738654002143060670063799538378782926464482923453700759700025908000779938187516545251344709136901509026307006371224456998503564251434454897392088037167756964310045631350693118475604501766987024063195996360915494864624811730121412277380592327716467008899092652340110196511394221388761581132826928791326923490423704990326838408538944047828131956903835375116370429827630388052914309784970842383577895469536417547100148749809149057862741499714782406893861515249442474637585617884331930153624954010053191300243810115896164148752744424591852294911376345045260594462848595164689999213301322184367033412170312252806633553887904460951978750461791277367012463439088068106323266603927870548063532300282067879632796892553199107470875919351065982689356766973599893458944805236744489521756413865203871431430425818850492437868152874641602073389890993722295930859222753666668446510628777537812610390436114604259204255540584758413025731609468755808669462345941515329835198846112271031701199615932781823721334223922533535199209093232504520018566047938656346311309341191975848427403617777463582520695889956482695244320743675719728416370148834439005947523856684083703801853200214673117499788687405136733515156056088073415090180544593126504883585698331013773199390361929439371221726159932902995322702449079159035408158253789151466747324036550367593351929766167622799796812856748985748216497189089387310337644974350135642647772194558731061929902811117125575191290719472172956627995835119876531910266643353265901664828908406548506880735766882739997614131426322353509315816796841306905748048312356745864850892525183590665496234080699252005253307366075209651500801397967721786460516642496404967416172154204378419980413192010038186912156843424680878683377279523190521235179970946203367942857593247315810853936872355161643107588194749417397246090699887359791388676687157543194249652151102290877322753780974382989330320690373501014056768125324243247494894970512790714047917318652195191803610181116078111811499262735049342827018394009143088061645193138016386693121560758959222511810196754160655341783230928296837868428243104640322544580548680701640424277549534483001895344582055611450344555244446679248582149337041438318868915365254999893909605370420451219314857704986718692493949785317837695661273351742025975750448400181353703989988041942165691118261009517612088215427818038566461944807196839730552097067883903936272383609130182721718349541333115140343463163085006483780231469735780181825416167463846870306567661170328893152350428967001617650358806660344643442002701161431654925393876939505543355618627758280651422181715467068681908645272979600891156069725765388963798801819216828438848551323127035765018597752534158605149020595423408672391762862962537129616087770841223775495452001976085826449008807189196825725987668660922934608919172504722073900959178692238897282808349123891032756710981394477105408728771642272825396631930866337431664907240260043475566325639910744426430559492562637920844487002232602140650015151462734115221314175934566408535709289032604102624132175961676235291183555199011250407473566806121675340825641703578148419275018404730300473517816245028825479835128958586112388999614464099813051934129228564595157376067183861665148778646016940185223133025120273407091110842429068781501252251897711843465867632857566003195657171126849222048813207884626041384463675421525554551698971871159183029011497409613679513802015142789026704014652393310134509534157877006524126196640245667413114562049090419794976290147698940056401316111136910626657220926793707327750524648312570127886783051151545679591717255945934714194444337292143802123164795619041544461589401836854157516655750600274237331749153076496370451570024168466043942380371044818251654573983769163952053436755876257289750475236192179586787842366751890046587655753537978806850459537611187563709951085565989635841407602224359497611905675507356670351251107730927589659297079637197369633418469891441836246219272723153395191084163646593520054170941490680228337620350449394839066749915060629019744920075973205641493640719061507273480483596657538465727949516591489903300426754838678532710096817926245752814533633006948240163632046621492894271041752930456749775502188786353942797895195611913976583907535898700983585808383634329042009386187008327195298032671558636610136879481861724620774664809261144037316675316436757552048618773026507417239095913251476303060521386596043874942035642210201948909732888757596983571042530254091836031487874526200178383449897148290188010026906890034752665807615467609497390719939093240355929829758111730444472385275898142664123296180817109332952707215636613440730233671771506489572722198789912126555166179598712424483478990233948226957107785179864865396912144272540194213189410646387492761631173855426612037918497497225464704959058803589250576773386251081680012705765079258110006755967743244584531940598824010580997952168095946674749501382843739536250855281848947471812485631093768522852796248591360581675570419118799664849446986036698115605660281804555304154763488640451949224874271910273184441903487893021462036721346008934315947119818007705096698075500663938650739106215512100565467520437189268259801419721235353675426224646302843722440388409099122632797744241809241594962091151435013135789506902710321547462699557368560635064682110777529620755626783742261546842789759387641640176036184257349171466398834600734008687181789217104886936187793833396737103034358319211717688067164188033795476798488612514517334366720626586455207187071015947183731281226358243885031433472561453573108322738426066530292882844451898878735095656895680685404859517396173033022859648880244150410140146554284460189833185902453099359500093739231379660549454277894538648371976951806641971079373973638624588266611386098100981621927608115102365432760959694543379153021011000343504257315678001547916034172424916825446138849253517062984462531513555156621427314583588605680929453304931805620577313021930843301382701905334384673130765918768873315936316154061911697178627428992009403506200796624761771729439957075602151609452574276224005292130430786813893631969745432868748175886595694215153198499472664242118055818853247454688078252958684662162612084027148110624047840773185950570927767938760051063762060435246758241376763016276224842052192512523109365285856870168826681797107793206125328691779788195785435198919251351443845967017456929576606101366932998034511027811099984559882936379973564753318402301530289037198909278807646808156037175607960688048420688181719742512874836564488602151752584481913398319611755389670100066184836868775222754098282871707320882974532190096893741582573005368407193973130452067101651087870034180610553651253186240115910981814261405521894068414800068687938514272264605491365991778591711400027367554303896596707725463130187658440634242866477457881708747457573859469880742309292495242772686706639047943835738294678321337476861026269018473660988117526944836141239559099019023186467599200721659484580317895572149092628722578244385541866757720436755305102307768373834162398101962818309819305456200337998859184213166088959579728437676369951936463858963775477751878607880331355005671601805641087892650173590615701029630218252075092226067664091370152285546221358631942245106933925001769808444053254595474916998759453452512729983681401921523217253346521697915014714795996687913948850955857240957557706955759012009072290114383894131027390019467397632775432653208135860303535693673249455826375188065314146782549045695963675341846552624628001166865890078332844378645829133558424416120008068050923041304944357459487928459930106890422191743147549118658841592158157834667653996472684791376609602753648495961057876850380505904573571597423763050539674273161326747443605308601797264755499024533613137589777440242172466314240613952112485109434994891770879563450246899491443606328651162854593721736575530648781837119010006886276741165498051788395947843820447569934461213074654634468474692413862067278778758701958305621875384115627376161599487056799552710748476544062824718209300129327101763312271558273938044248974514876281576371640306417035727605786404381006222027694986819886947701652781223776904837634598416132142284557735464653660479408490316215760033481056172388335124236115732032774307618110931024463681060941877689664453963527750989841419116709118414626799004345891415705559237136233677588165538138751260255342412352730930328242457980115748467546721778808202876210263854345613141650311614963422525750874518149040882251819259788323959874360219722120751462840434192301767705822886638959336578843996455708625575705435588683177192546789369467122781477410118245703822943573480017457969476939125626918767773118243681595772889977348322559578530857268375944489821606936677371410361094483571444597477268514385539852872279373719575709384122590385628093652136488332474778027676598238118658950420879482845636655061970523468854432611894970942065229501284672168271293316272251237002262276489422357644102187892564220850695404575980017183188915434315003053488912486523134474515794453611384402693361668458667991362791417131808157361822764040622901199189312974207761938783045768803503426620297688728385961505503418254182574723626393863949803004484764170327787149605946591985514399849285189777831347423146952190011698867159092310779294769522981170007628902575765921992496711528708637122102145199486757073072125027292897022308986676359139983807317788556124211534181648125706311417719871631327724951557796385562339400282182679243450431972286207434966845135022837968009389428674217202202983482498608246200790386410497447955592945225355711170224080488117057741117010606539221352079114443333631543261242568346805082828421173898392576103332976597753330010906575762928675912268013314268297998456373849517156300248891143438382567944108757563912083662165344231909425338262801858569722891863615332171384617736417873990276679034230336764765510079610097544330814398978100703699460982210228888338525043189641584835486819110839207791493624439390620118211051818591328719334623500899586394424833730487596911922437451532926052814338305476092316545544873717252437982446441687441658701883920591062392616104423726319283961196792548091683387247622547464049720758557798092751036964449978425426438346460351364533537884173459726546197073832581220803941930390939699212072562353534226062659928479168829921479148396366080137323611415446783103264322941359803945557564758144381195434197528688798155613049819050695877497492182803124196551293461986691488467448403594760153042351978062457146959078173899648496617560802759726153111665955360106684540157882182492940843631256192496991728972883872184222084197632160996344423218125899262521290959334406237704116732114727058672598967202709569753310200323225032605492355479363863087431473455933764998081908308861874185469399222502733527177994563323219842121986904887404404990082802560144422733086889488407492571870065178233831123867678671428101825834719852606752803067425746257611654332310490064187548078448662251704114044329386901450063079142603993850619005666479519290713186002074160099116924881554356584148329912781229699470323581879524506874131952868657167844895777333303766142330475430428061462396457655348539052298194365002689025509969932239552256461345010441409426847310450471313030730510803712182024965302615528305963443832753170324447739430498934851175992906949385406146227973945167252671297773876282287243298920170385529784961299571323761716670883030191487090389255899439151661208611821092807069811740252423437848588355281376044998059902380883335783311966393958243055448105829159102275319461915979652137498019631962389097140038055571185656658476507075769455645124679495155053033040449310315779691854395671309161201853709956857469854438618358742390073899654787396562722727567588692752252713694175016855103899183110754193288801474863077280570709678168899095531356782753711522183211897352309152840894362836082810323065416614419318695347774761917415716328824080085491178662752476013188171503864544055129594433845145066547346961414132578182076685541296728212889854088033894007585740499399857001019183506044431714559373821940836544982028795602793918940640737908654054744526002830221447588252940438576925583670252663126412625880956744735940597953731593912384885581961009321915009575078333758493454519581192918048390780504713177950982565972213038230181796720657735756563244300073449162714291146126987552729676106949314925592010961646447500270066626300850665370807965700365864965328846419967534078235408769371040289810642225656082321532386824374002479598701594248570654524766152527213610907233369453314499992774719559848180962822701133384191474274891554432953147661568253224990197865285034558516895550905670151350807508805399219257456173601978532736043034607560439898670968148024109082289200626132130158239128115382115614669587546262294210889096415657805284027327885674532831608132978800461044147192542834272161253247389759995240126160459178187398119444698583254882001816115382004449464949845522254424604042901096264287918792931104579649403736695921679512509843459735256798721017218004107105194886311468762310875205782144752264700903631674530213980571759847295828386382331597812705480632065527350715339221639529086885012384056834075671937643484630755832603153136803332469876221637993862642863972176459013977162801446412530593182859490839664383497633156526365770506106573461025768637044551594922279547338776538023624855173753515913764626147175358460695698866273268769385916803723716764102449283329699739882280135797871946450449811027390007407082489628889328409065071889405550700771143809790618783028692026706450467687841122323701365440601073648458710499116218474244769826709999704400114594606679227507260188547792326717153476180588752427696039433941258880411668329487668352661513379334735155788507550367318773377268822899991832547795627750691091105363993153406964009250553237973194059874087076164493081481203574897036272960316227156942048351229256072852783963989206116095306950545209031078904790392983005008360512026541770004255187041558423654506844593376536325675794836830449116472876486951324533382230537602616113286417951712647402076499958929378491680411083677072418252190128789894244200175843311667638096515801954667091997022909273501377750498116760218911408991157820087809129919139491634168510713172636480503596436958848286056934443748642160091523798822132213067371459271025508353481358695247134610539900200245150137563983248397122129696092231252188163953151881444667648498925735615246976612369653728957193088118860374165387686368924598895807456338651371520135357008946155169494517910673507219112650960952074787174702113502589323698841852799422507931611915707864746005106929232633733108434032899168193770681821710402125830714106366461675955463453858784772033221555490158406639800078476593191819192046986153983767590480812051338445158436498842719924300074848982260248893498211302791237555973686650457220699477633830838159061486501270387757052759476610251492817496321736214899667559805358971657888039010722153949395621555656257848515204274004089316650103328057714798554482973662535264821236568936415768878089824103906539579763732252373400390951852842293967212475908514734168184279473953427053033120439278354164692944356252903916089275546176239736015346507576479154658421575865129572707419806661655245264678553327829515117049444786654235187213871608297635463467030366811528929349831865821846642973046305320045150674999856516095051495898916533046226021485483156591058023825845394534337423954862312391934894117202018988536881343346717289948818008885877663205592719127637835747188230024278720722863557769230617693175318335327568169096372053594420870807150012482922706537418797940078663392039698206207165710307455486939814577667545718760879712644530600208341928324064451121858893069524444307732169716634820161530366799092425626075668678070602389281962028997849759861866962724351746601859620650371520926328711817921130025656459289172224739524650704169625925124276701156849909782898733015187341724028548734866542512549372421759622552996761756967695252417675927240662575596830623435013853624987149184711473868671031114093689683845637981799571557492463380844249122077520474269926363022175060899853223243583860375387638246046131148778052865181828339343252754054583421902941798811495143777880855264357825550328585825027043395626292432169283054229204722979715433347878814414233500943838855467863381936054193097506093934690955597092239195908224654542927951234385062685716993684152604735672900309374168303893921655025543804419641846390359243169776209700146216349113444936128062483012452524823497925619598160189049715781463411681668979746034874123865812890059169103331133493650354828525942444678854085792784059442927125294361361965407927055406977682101570242798375687427608416924378402272008447304701480560469954768090211947663576133673518997557971266691250156841554669703409403696480660167355942064386454005711910053041740379011889388998038315405999148381985885829459097181642178869258911049963146198208375069227915169755367554701753160708943746749360550456346504359459523714171491278938965672100684839751918461599584434807496275161109157892820374629386607535363510795116926892919602039092097440554363375913556277678676984625195436591787652289892177477933528993179348193322742059005292310865451611663097623417065254888152484146696007147381656685254546436647251018397059467377681031189905890708151035747538871869130111070522906392716512444136276561620114499229116490636757420236441359992159872971251446025008893156178400669480064394372447376846242697003639928618064431353780204264148176774850802572602138289673365503640772863999951979326783968180010487590508338143266934536715769558800086767830451084902709394238373202277208682118167114181235121032304800668303680309045830434747004357512159965666499119088160482959807168592837444384262725590886590544816129005258532017627563780030235856157067122567202721917361847701940685226220896979758747893998305661614585689960901631586341673443523813783074443970624379164352303575952246638961088377931909282805179828717208434589658885540711890704199104770500556244236671314961128430851648097274293850066892124703297320986681502489900992680379081162582205679295153874540219295738109140798522328786801678390692066674265982540528587212306296672868186811474627461068244474608595279888281161789403999287936864390430612084198767215010140570079220842543324975125347842640160676416144132584463688319752753968541276504172229354126324099625332196215049090063132050399642768880134268748188851169466077738280359825627177931747273572099149917959644466361004695513092439578770038159678678414447119992618651569508186362895557817031648050275087849471022955017555633426552351055054141597635517534732407466697788708475708119564031284195062280608928385632657916004006276588252157517033142632761461559336232352262193371539533090294952357055731725701404071543867520227652346214491457989694130875003926797939461928279219403883723963010561757735901528293751946344886520019496265669994419705055782728779400498386484354480730111685011807805852506363007362470725332922274641547818213868385913727065883800058484507147490353659233507313816658243284844445990129484192027033403443814102429063954589080355790384258654891783997343764488937388167828629895213419065657727337128977024169051351502820064254126914072482806599397014913113304869742133601453341442287284649386423264735080703853495377418459164897463006550273394982292508579484427421516701043820103941645833115407391437378103535127096013424188446889639563366241727629407374096343342792666895736893755303929732525234678586708336189486795594681434190129395108609824085701727220135546019766556829135400395894501793058770403957810169984556257189176892697553536580098282730137096976913552032464831095219467346094778726984677684998820579476239056927097716316932534408975085245519366169525083919454447015779305793889647346443173959731592166769506095206760324813450573551481162552503627704234270617525872845544210388522380407363071255614661069894589454146555905264423083923403548390050568002600040899871306074891945929319872548979991946293645150743706334498222137275105071759449483032397370295874198270345925041616870182561394132033445511667405723604045930994444629379175440530162112606453752640632771595764374635047477607171312828153211061117960866383414631681780478880888836423035909227847559258665219733644920975358226231459414222432014416568453723784704341771564819359273740343392357613114582248634520660602289283580787176123463595468385631797082951226300094868944056039240591843555120728930148242775657569413565875744430624613853745095186886595764715772624022766845011688328855818529590166243676342856752568238694265235086777391799457215363523619220797280054485772005995236104102811108928456851003887331782366791995796108500724447532395340423567942243351453409333442873887363366957299802045121748228840623653019856524721548509761092887696944156389352316526832341621458421450377046863144395098384011374522332912638918946255073413440503642428148564066198363384812650577837512094008541433833900160480596218156054795404576738302262334408262176578536007139425786772252475891725788770702836502431974774819329948250846952126511074021810920629125534398863518267458344752959623588409397721413588036071872304264834141188492235441847194730551494288018766615906133841836379776847734252821410769440536327569504915791909891164689400563580710253917950019577495799297976264150294129057449710053583895895486484169774632533633359882585632640170720416477472839245208020057715543365936543491242149737286853065115541113450793853342819342704403944477547217828718832850079751249158536998454049880343263702737232007710051184942124916448973808336672978363710928567928026545344837879260058915732866138318179530801034910844027825393877714903554937812947603948774298952626387908077620124354467986507757492302740108503252563745429427305167423070108706995262201425000665239771146376296491950437344133974949383186654038844612449674978487723854371221520343986356526432801671404889172059737847442559974593086387239003575688529941350624665982107981002224191369912334724197294327466838985113716653499989207025860198069562884514904740721962892402728575523179432193214298393901699322090808612559031641738879275331933969464333451271427647657857542787556856195329649258263434154177162106341583734800881764349634289547190159548256560361689535847858064951189026922810610992028273121906734474691465148771699420671898312670966270421701971464287073356912138928526486924794788177466324498230758176288376833749499518919173089816867563591832313919032123037810632571634600539590111108710882057416612288379223263397041364186507398810650154941920935805076137685158491261552940216517353028564242985125774041459525288781167434494997454303658138675618037281456665006463714088683465439255750894064458352429174618060293792651402588441836872650660929279096666686486897317588864024881744914053766063101676978505486407719801174258890867942111282245800575672700277588203218224679676249230243649165847822250050830610585257119158716781759107044009426981894570515286555896515421370595588209371060885335440302740443199745307614227358905563653482026612749304183020825936921703794731632634439043210152114765639416323686662408941670475681289417680465929300290898099791111003550978646020478142683736432810899037743833617834451729660304124438653288864848595359970694511068611606111364563956787633084472657792539185481995963933849715521088989805040281072610816629797552504534875757345450035871767582492358054547288614850642752346812352218658861398175250650559739856018977665333811952704713745542980305290997773091320242677694340452464165937439883172091120492294185279654190987082936438320414578762972019322918890212630235427220647972504123308267306021116456368958195810681638445014897237498068991034481649672738102394708437021335585295914436183968272191756227751696331519875613501664764362327465988098462458378073196411488853389057535718454789057754961572414531956840888929126483294619542900497270173314476475453194132938577059360532503540450668415227208923517015728854966699550787299953752076785589188040505794677878817051528080812012761536668752399081763130502692362310098518102032336220655440023546764826176054318040741014588711650114778046733971207509199667422933368437481823749379434993516771447366098421053297376920598520391863746922352705129089635224147867523362651153626500446114227995792874022548631211617873283730961414463938111557583561816287490032725956476604092497680660452170126181476207170672166328707548287994333058250328205612595351503374886550119211575792509395551599759475460351923098000203673887527432897928880827545008603869703841184093871733751862805337279186783380661877770733203441820102069201919811073754594535514809413132866765104114009855194256536724822619739727660061393190463667720806731380550983287425489045908249835977875433401712215769319800464744786956291352096902768703058036112521379184553197433154066916454549929980770831163365901349820937920537086315767303591448138215127691413502634910329011832942792435828582589091380966857778422574088295034235075722499785417212348451947087695489248883126860021755022405146980348392647630120753489730820528503128239560685812584868898450626310160727107949687235079877252428288617166442693740529708635469258105199304654979121247089463426541422681719705280097225586059575383546133197282634825220216665026010882007435272330555965287061364282933793301154154435364795878772974901272500676135560549343855284836396346104357251227359987611804114582624525506003453275375077467653699682138594116215634346416745700623989984066110258130829789534693162122332855584148019136988982005371907142203800828497619666933020482120107946535615445901711268342117498738933696267992754605339492597097539117159958898842543500617726489492079457136801481674619648630765030540766056996885954439539436288101235694844084466391493461482337385848142984060780579717976033869110491508472358248573940426556871944928164475134534294441796828288266526729673552551101557010161033197647718158227845874471674337793597767494491283868616778406909921930243472101250419995138375814698643710987481327517790662574205006458373778847102167344774016749034076892754691925175911276668781094989141785506930874889670335128597481143765929349033925559078376240893739837539206900325024517859196760308105116972581124910880546833273048458842756820646566859150463126484168682835321006558190242328338659645549943358020500193559489881358183945118226962780662873803773936026611689809558249327288711862855045948574823525411043609420480627946461935671375933249263319487225093811575835598739124626389666131658006055870566695018165814554118153657463851658622916549427299407793210568802660079914514050592807663518296176018590341923356897970416598592246789864873409022744877310364951530913062144212257472741523311610323128269104341332319768103280206650046307989862516292335338341780466179528444487381800995454148975670883415323975870309380729067493467476050516511230962617759766731519763271599053670439805949895165611020778304161535226947308599430959553307542739382735482262701111494777318636369431323995829174241117746907529974632813236298213346713172617836984618980907230338948583370896129618795715655976932004962217717247643026526402938639395373004375721572630396331213292461497448597732436200989702641339802147853967886498609616160756832699518979178932223070734110267281874905569527371821841801685311643698107037036799934969471693907244049462667696152862412522323519185469971228704363267910249414972926107954747427097431183340122127186618781651475705233884828409018613981702790860308360951054272731427740665304574103443648096162569996622146629517699495790405561180809249371366356119538766454334467589098943979644117103847977286614914706565157044428595547988302007909487179511346848988834712785172637983128635022764911248053338840833282166277653881344401035305005046149592737884894843434373935393513180294304273372277401974036270018885847302060587519803265946023041956206865347710001298812915093965471790202076613476508706990134872442899647946780755992415385307141430174425383471372607739870857026551118089132333328693855284185405160463010715069505713216200585719302186672919928620246155272355683512578743330173895023927399190942167629552251860163963136157375968901739387654175292233305666161729084056493616326094214465690199306352471690917410549069315003622025017382253153926122092070017868521430055502024615662472449418347115239536039478526127828211179961093356561669850244532286715500671740349549383916573212263210941432335066209897977957641930765069946142096528071606077166749972357275476561100774036678682763453086008269766832642324371115464538409906421793544995424035885342030519237148244482355941688755504017885667872225944968556752338832954650987983414551770334247904141303745737504196906593678150942301130817219507385989454493684248885258084940627605998479198352446646634985876531202950326604375030609177327750569937862025777972686019463510364601857038778283696363103723803509949741328411351758026565038037428726220735473796454015034006957534613948186013597851740752357125297229540156735347857428657122332489249837139963213871507049441202280630514085674344070969727333518028829957337957008161164305746066322213690429312989552218508667839178261715885835183339908166205325167531390170423036199258882565020742953834360866487243075760621141838646429773174437449949269011460572429798963104053500130681791987463007661933270771865870561834130151334133697614681239157250234110814359154313193302883387946682202246631936120293513242416330176113204873874221955769629691423701529485662440360149757680944045910326613743169632683556048649240841444594841224556453837755415168852301723713343838137127306944145342713159236824458509339837205510396676276490415612349084653077457179672856460637634276737791229065591210479614224394154754722841686594148457163221107659501509509045609801157078499688571274750859592602948470486541580583781956135718184400127728730848614030676410393687969259388261114652283709413447459958556936357364851504476867079600634938790262603894219695772379972285376699262335087794275323604052454592591010829425256595773222378640784855978231937496731956856487023156585522513198192557651338134511272614014915463495250486407250360816644423560548698527436151967870468270841892500892476365057823217301901237174372756546440693333799701056979967038070660897746465823088824521268673543943870424743115153681673187522305688966315755994727000452170597146589084430119660945234134255569037078138890520009444572868276449289436814515221953447433866099351522769585202434433679165362854774924047078551830734028051210295600696361436969987060966988712628184932819838220998964124312921180759840542759677308376061136386656394518663245487862739962725420329686925646629927278715928648089200447801532684665703934037542390335560863389187872456617328803921388625155313251806487126611202026679163399201540155269893476397744018290006424486346927732753153974135108962243859531769260957762249661418032829756813504427893458645385463524582413025844869498939191946055714715393929453253305493211054839753587992662255794613707211644873399957270188069100045073781381319941448426143005663745614284940600812913988258081851279577991600921814354802405899093262457691981652548974916781956338558596743774215147713976763771071268905540733572108476628928206489540525863362986134260387739801122408052213327229427107944350624321175095890456247787635335668367804878470433301824321112376637887482132110634598152270867440476816878425470099965469405886843421500172768796446046902632911131821046062249739589686955902362268634470622506362588593136339132837834841734338779306085340264946871743132361801840163336572263236072894676865531270382654015909348935903174774606366716602252555292131722001429859253567695193880763774395182062124706565123717331696287694207037495568889772448683136396702670135560555029140364001622121708023165284345833668278990884828047093784399434978352565450209708162361914619897870128592768015933428612195196649598167099471941573542648063087983427864758133759798118837777316874352080885756712601579278648023030045904913341863464119532268173097288234422085226847012073064419083944871537246391380269693816618133765285977254126443016994175754909388344755175744222557547087993745949075008571682183594082473782748510883446799154217883205486499117029026854824545772462999495330459736912771264436001116115334330291347093735405527221596121876963454060879973686376895331131611277268986700558863733556317801337720425840024306206400596469016799771791177287584629484156960942629372964227579985344996927799867889671689131966349249481970492760324276322015540377402563596316857918886929438505510327674095993414728690735315102189631847339832251905337979624130421642747690047769076753135077579878948140697003239121173279017744069365164098973897320605737388642216307467500220339734975968320976522249614557957025826335071302705847811736795318371871541995466945133790297941168043073728767320451732193489741535187783261846807601721508345292666986316676532206790070087293991247382449502547374541089621512795119868926880329787309836463056656046607138900869840420223544353116918376879203188706800394987423009459770223004789925172923975793024390953539583529194073373388866696827093766904735840627585751318661641621658156071887101201556401187405551521725718055145574130601611129101429351995863963016993251046047177757480408577531700574820245529210153652033956201647229571600180608738543161440476678594401545191752329208802902424521368456642070138671128187311719871294287032647035534864472880471716863877079712665415353710995262669426081257623721067197920140083673566030919890085515718799204586157735980551988834115609179690767510459354125330979317119178209294118483762892169263096993451208264949915296704691985486913839095089986046516882574438863683153410426490118002383157028558558404695529994882595475958815851799557104170128486123450869663368463990166690593950424212126242964259669283341988745485024825419188525830806223009494428131274911842366194477358075295676951388071634060611289998113329715259061961397574115048536256386653892109758083332553313837520282370724108350266796911471038534910759449124554898412849722003960857486380531067591160676241868661073596259838221066180325742554698959324075719012639804868477515708993726675599354913741093856029477680914937809719858723450151057196749779446280547680674879686949439037172182496543131599015447798044298874112251357812183741656822503817892238706430196274441065796228367789120961498850455722252527305331923076624545992887332004328896782186545337018976586034516148947872642601860124690466457813086490907702440109000233899561104525130207720597484131991661954343785825153835498635562703105540109925574882058162980107483354713636937062273252951553566989026747668737552347555369373320616415941467399781539845957677756519962812746861933675388768869400211539047888070546016725089660012813542875265535230429194112665847512723791305656245372257623684385291617389080122093952066481488213978176244415123270520448484249692906840428507998349986152622819428391452703130973117284541592886078632508799326677912256356515414978976457741577303630340763930411617639608000286146525214765801184968415439814216658839254659131883291146093451784678086467529773527631374649596625154965549893350577322270574986942703718875071867572410918112241057787633526479637421834710881960909036640335767461048780016175818020734653693931032907911774563285786194817765577849278806149869566862833278576058153298426818793428305399086720946268410505920814890341296268826313782248225271066497684794170456222664344570783166371767895708770633714413165827723991563720141669353775240876411512335450317517753927119702456782579080166754114871604231720488733312811839990524293427892661157712651351607052351336668870832615137791424065649854655038939905765246631390833241779834881616658135717326302516207101519286463773853121757439795917980868585999502928468695058358955183648621540428870644123453731094901221627271330578143959626563044799804916188639451370075309830106086105336867316793325489767525798474154913731973715602590966753646152738978202483753561219681126651192161866336152121498301748091329784768895328200322770031339470079037443260933120049432878926250900687294145802769229881683159652553201470811306631870785278389292831378762551346098227875619557373004185735151216551214668679042646933145957498015277932402184585139630785401149496204351453251675926756504807208545483308592679925286786235695739780517076460682035284974790679412117617428943427080222929871687210097637476040194414691122328037047992993697994288914865413796542800146368875663410745819287298481486879678892258869099444060417055069875484390308760437438077390486593250105707337591521575845601749705854640424252955609158102361301814767034565199717098639842136344319358990265726346605255965301860968234257046479280361342427126810644472329433017569296432751797859030626076190293088795829226025105551794017367275157028358228104003788198298501912757952379545884852797454017944441074841971888376931380112615864341356990377340873675019224028923693711427941147275580587024725968402828743187372940371515044918145422167445695524849456790161845553128794238702055887293739330203807506096412264998012574515540000074211856460658010014613538385217154555988846034260526778623779064032383675730588011162704051167041432834329995888637225849362950821095308611235475260607303907221332586278996380363191653370989988059522222466225064716856945813223903070622046925016404937371108202413730536583451935490739235898930695970797805144483391940725920206820228146239147833139361393066332239364783345562378709283691196583660648201248757802628012742820848619674244815297862174783246992021253669128406406574150255616623390770301142657706683467150801427430574564563681909211146802909072119689096416562859927604765057604147236333472886416468218275456242656667304384655212373043057883684629132008132374227690959796295649941470956511651044922174271406450085529073394699929681925957823068081133906380475863032667981129635795202248517425877474622977756834932224354737891223472344880910991061112892507663462978922876835969508918627359521286982823274676292745681414499424193704696254534998894505393190161099426449272665056204442155611400301648384461658374199923026300494088101278083425422666468308525986216663178369101113174746402698091508469692922854341554544510035626915126012189228775473984008514142168765926129632162894044445147397197294489568421249554195771300278526295585055043423162407586509458405098278526323023041457142478507553169224042401028299973827830053293271957260806308126942912614419900721202617345771910428399847823365073043480664754542712490491875647650259744134610401218814059408772859947536062986121239421427228350299255794156363554035500770390214127875646312678162386394714498936470175237561706484411428356705151051263356852519158344652280963084562477697982133839395427913573804413405413938659948329585077815467397090117952837514403053685646288295884700221895470325366177845420618074017006275681595586197424596355301481633460199067714686001282516541244566389315508701662113063764730176021260954507657023904699070739182145836351887290854308277525209452355713853141091026072139930499335582066210280200352423870070454887784333183706926436914267310765545234286365256847620840035377990728059407233846643727658451959212338575469638602269547242776624266814743176506162967662186975827083550404275383259171995566945573429998433440473122606737658495748189608707020074483498400895072936820480615590840535159999829144362939046936552758498277803508245459559572336228252221611415753254591666822033677042294178845197975959635413345690566762470948694352439076428802080943703635022772011695789415125397921197769648702373148059220259943255011125246082113192524204651104672886951505147132716052876391825788797485595967894357482507685903189342019134718744457377132265729056250068307871027271691666203545361287867457370171695637944802071400616692943315299133484868514723823912607056303046748104670308165991314161728055888292462003207697160673847934490604877113329252105637178665871715656681228903497722614651495078900184938709430819673888591030442269450644879744714962330126641948040932941160497034473479936684716811668963675292089791009559003033099395735568545994399067933939716469722786052620921966850761991673029261038332897782661943834189182922686105541595659864668434735427877645192444308840557541233267761994788437518860398507128692539424995826255696874133330034735518698557921164938509150070707948006675738100517911115854435795317127639481557791730681096017494991466599665131854319079932697413709350919769736778803553204274900615294024373961551128324862993064459516558655316631004706956035610947846947349025126350154719593915234417736868380244245530067739240615894904454932000238470722964778856996183117001945325127412639816527808897495025092577799149827269465758173128321732029091357653534192849985414565977638723261193365036406205205756995414054234486493616639621909925017194428127076580185126130336810312423200330029687293986445125658799461255281381875662256220588217360749646189640579129839309267027645418714743953305206386185742848063886289165247260401567510026536087183827612376970264555447322293574766848523867437566628087254356238166660048337587265956534441669757566599380349782126080023962667570788215597713405939568996549787493696465207287472996985638687419006096849832962390155724111291781066150988464411224061411806656824924669145726997394148514688388737283871334727158875593786803753501735074504749320726588755135013525495404889930342282959554986960132669458053046439368624201669536932926578912373925272910173861260664848121696681113766557668123521061196544291791712475669599782287466520135167021917362977077965078237711376780479115871689974166258943326691066208580280983261473770249517915667378011142043821805477588466309288227587848531871211607670400614154925427185548262510258965826066076916396256912510409210544742324573014240974898292906002302489986855161200595523201663561930055154330472145606043758114071747933937810957177907437946496332405447450096157987450139886964006377701200729915961866745210807874422735079013760173119136520849173838238327858087336619834284779639215828939987336423452434137571633867005016225921653188186315223912926341520792938561489820215492241373147236615933551921238275240151722560556542328874191599213253375009365811890886016938237071621314399464874845781473783008405821005572725393847748457890947266682972761070912584405705039526054333560088779378030453899419895970052611541661973472741981698579325305865479399027804745431232324836711745812167256350834706310327308604891660735636194740975169539628436427087945932517301409426180178847246709384269735298457718616975427961824872213320311587122079448222537404552781237025367597364844295265053212087790356666905645608855496486108065831395558977010656288034882039906479356403295381264876209726241783334616613658449038702054649593575916293122566251657221188795545737830916828708057909481215691171066798019141449136658603071539913655708707679778568492687693799237478943661009581998856674742850729302858504478165196624094193180687040764695991805884427164521040798542909491641884923221581204709446483149286876663576591123241293208825753862380640898936482922771822740715664433444319937589344228718553938564296925458303110635181048251320828810059868267134622344700498116613748434494409451032528920655829951491567462701652694300400275985116922806074297673872048168965549655100539937493792938279252375468344467450165127337434188070169481063866014765967712368768642883937555932076201338732188694457883927489485046765874300128554790635876894432912616791088050560306985330544147381988859174739443429164960526989352337159533376155938582992261899070837257776803845589882549131990314269866442824187149042763985403684184643617259840358774570494015193872107254258541952301277229739531780642306185225330081410513775353345345090085744630177440068036707063566292151571331741318186398073826487122957653540159437737692921592732037300570965886748259921138196039799410158046618954486703172823640762951182127951504281687541221390538721490993622433465158164354608995006505643110492430733917028395011015261718265959385117226878488792545135168806490207909026712907074100994324687694893129541938831698094449014161555680570351084986329390629369583960641544604726189791871186916253184503562985960670131626836999074878529098768594423345209368634401312742140917620457968663031492898922350891945305653211159535275165568897110446699840369399579908473938378898958567075524955701380036287607673150043704017928126502821372437857660156295547478058371524098060927790436188062744020995701077480547590246040235354112271026708656099533826709405189098593959781744503844205575848935472632080479446576423792410845082206428284994599997477701328092049147860192711394992040570309147142258190694103470718997769987320929816499836964137181585386211515351663467353721734717551689778007005172329127562413432862243263415148246087028324110819995663127254845790117893774855334210037373504878684296168614818318534837594493691447664471344987246279030218586073485883330352719955390696014566037907570753156696118738518297798251338698068728549993765104363202806543055715372764976539455239269886098636211286870632474045130474412682672678816337896163203580395841605252679766011414433507481792535291169810044494808999239090320885876953749972137261010285747650179676351728286892243410910636670395958143593817535362190643175583937002009418677607380573363629896372609220748178978340043841358792995365889956998444161697809502982884939913703100968635519522236545217306863549880699033585592928333098346145024056272418686222162427338496700692153687834105651915365611245756132561611814353485475073097094761800555714277860048120789590726119348494243658314785100087387676263488715072851797916044559927548185390073619640005667029154652089695980175883239197706957546432872371508837123292957672808527666432459239527870393181354845719824389676932966043465376545216227583155588967219769449893083066551719817376974100739875786053099042269214924332486107987007369126003115378952906552433201102408657733070999126698631033727081244293700220576984853590372263877066249594226676289924788516669224732830270349721879797845331276635187659861613734800710714484273999605787121357930552901144811873908510299532227251774009778856948339568171512269377101983111014004882351592967092268875734582516667428282164961245984303892238439673828940083240253173162896617468744290684958904209939114739213971216778470498121408436041033907112018793203495431344808822195723353920113247446494430294523131382933527580964214573667200623610825052455729188849280497624085147397770648620569592663268983280300961094709920909961028118203226261272587092709757822904856013784122320202654721859114877348424037130003523642760428706548099059948305717442923341761908725366434611904861465725046999990123593436159841652694351639374794814750819662511495728798762434309296712341013858170263481862386108388010291681345183507920712532057748698233194283991255522352379439047167599714783162859801071018699672028995128700249162144507803004870868749319916491519159274154675311466252594763915194500235744117575721055122030359296436971447024008374012645120621221068740045532079531790114476361915820816126947465958104059822203818993120376179145950234370464261532207820581345542721147109956188056914364933746011192711724400077295271601257240743227411775679051825660321732642693127657028218014833237114400437601608203352290734860959785053737911946048448668842310455347543719449398646883435935763569812485319717180964265131833528566371491152687198695135194475877863021457368488746700067435306578385072988510673999226569227258279850543581054445184393634360877307514285957854627312721370958757457181467027839362941233181830974941705845316297128595263200867277657663842935910495076750003639335014290660727695662825573088353390572083989917111953569028646732985286146688032192285335196789472706859646007918753498824466007541676052416515104742038953144709814855395007994468169232495508423640457307059902855229271496593240830162738680951160879282160554156138500731748049785985228599978708870615771441798760175025672645770186489071880671339295754693222961491190878955437529739221317944272901036703620968033523605862166631462514429052011721849782628566404973583477998739240822444595586294033786957381371954079151091436079883856136625847995518472646312844840779770654166898735824419532228216704141489408162987986180399431332340361378300239608011248211628760748079062665329853082074963928156700342681164339650294776758980147768212129584907927142188438755228898767925546318040218934196155255857553704940954121360384189686233382045275002650089641996421011883168245362331742197453914321069083475309343124389064977811429259875852586710013158445657666765839553891205443678094577901734113820169915041602505601480090018706041374868189692211215064996922171704255962478428064496700067997053723715808813490759247529286915119859343836924701300976997337452164773221236566980909868977060970303260893644943933234239104164017333306854840716792036787348277119275537449649732315440298444589321017925995083291716649225142978896477954565499677477655958786887632140135052291317791371240409440174795685963755956295419995557001618968116814917117212983182891662778852858638951916684205798530881525350580830817002041104063059781916824714705768309053013145213217278572830908173188597126574836075392074143308400359476261881664570551526038322345913025303112461945799779266541605197896894161107464485260322005232449819354632087177237979639158018311487522655504187157879537654937108587630135835601711438407874052389587661394569886406637546572257521108321143428036395933183835962439896126091342485298345839532832301880541419759738749393843688152543002152280326425104657387747506166012030724482449209495956875502635711172604543642970176803720991941399559296230508175394349781974962465374749262924426390795539374914027381057988222629863591324682633758554491308693354124259417979363654125873480088729122210864065760187102303202120313576131823999337667530365696844792866720907884690482266735023215711068173299272716240942113982253762889228198306281002564009019041750161690584361324323562123108465914354032333852902811349359453734510892509171085343014999919628604592815762822554866772295817128708205556075637464916530228198752155890125405127651416641533947647886028370760008892278333627808510640072756725444014998451280614458369752523636743626294568330170447506503958661582553300557184949439677942783528265460306552053613040804929807138190238415697414014153397199849343086905743196743432616712465080002233341833339729308892870085576102971508365413750992094659462867900767598586737035119262792292272387627526935939505651983892243719160845256278392682643151686030031423360900830930966021995727216083050301791403246252367276052885472315582939630001688393598108453657091838074548572668740320139629474369139146312129511069422542290262101872081459287794767433668188850638612605029407145013550143740253150265911331676461449644754472614646909997457874917842429476120257722644791521311378874274825483057623567187852454965757389094758108302535615738365031842497637655796820088594041530119558409076035668492641592064901406127686579609610329310377153201549886010070204552666136542410548502166981130964947213725073171124587285641672663423232071608037604864174214862722777788832110417409320971260971092125515574032655549943420135086957199135381146575172925328770698852885624933699185149274386623716786615014026396325175045467545177984359917910082770805199591844375539335247666864221262539030926191581055986035024372954172061550777367069225441238794141233892102830223534034762534874403722302756936643176746162615507980894776817905337685696234831965691972302015403612483218613549186019691496989097731448151353310907087157683966933210727079568971432457469335757244772513429408447786155322285004461189549984881663358747219745750454700078947901152327121793427364115452725316126419052357761156441825168159149737422558683319192883477924457511662006828614132787920225835716015191705323233066166850144271522104733752231612924641887951379825545508437213412809970169934022317855614231432709666025766254904156315848889568494389469477859882054609034565383623858896092335719644189619274980331518074382245208043681667085592805000661340170204148817989846561628225682972916664397175769135688572332939557979143476839864579033488319035229757981330894067954373910540761491013593289471708356163022394373461669817437065178836857682032058494527840433200281569321260536626681252976558831410485435878333648776156611230981125266448410927096093578189512486908288939933854004434894584054412938092495897781393953637660989161496578118699817056348607966851583217710596171627866743895471419296394936909731002490510363659846462705851895017837370592140543771346201178167293026947493177478565957720114666976240608675103588917372524270594187737467191459114719163538168236949831407930267931644206622233504146283449700898555279117662139568422051242287927521571312016459573257815136498280658638921193017028891376578150867600045918651011929203239975182489220072119325295554386534972840229954558979925534586578210605132343005953370471772116930056663731746194045585667117653588056568770476391093989515026067238175494948136753474092169876872060228513980374301104619424932835382500991200830135434992505675374249252241380967442724572398855892230633645971966338302841289006368042203560048887629386310847772316487717486342734988076213327968731373437806549288186608279335313531672134969355879161278862804404417707867895873357394508127064685731560542054743133881564184622194833898510977094153335558281212705896805585950504648572674544854312420533015747078645378421631406333642903436926246275906273713363448929026870614824874751757305274092683926844360912530096390451342535455149277032948157489299413583184024816836347245108859974380400086519519103037853033893489610258491467887353703859226403061449334736111161783827564163438764263628309990915948396351084171700675318206938533639668423486489161520888167188147192237895266696637576754746279419375782989198028460999995629306715413022902370048016345556733077412548204290185365937157920959444532170758645864125995230534096468167910026887505525081989921432953530237181287631768232092102419056866569132773506287066967002761330903970586092902780548896253479543665662304983621866595760056879428551948495636717537827524118141753600340151917378661649317506491907228939878534827960332664859734241111886696450031029027958217189913211286416557709349198420466861373593901682064909791583820828688718025183775711372899340579744419009051516254400239275135167289157426768655718490976420052213137096554585729866781919615890350489967983032192524375214803472310759144867917111564688695833320779543828175952645387177011055498288634509734094546954389179015601464536709722042889053483855660408415945380587521234100485505323854511306279237253107998577336205151228441911330136688862904233188946866386658266932697434431302919030314698521934332033452186671356093787433606161928204579649226402086757370703021200926956981679993607453985825612797248610888346248754712031957337854587659712576808158222476126303293915597734870174652109327019400358462554941713648384410345154912190352171754826437441994817406622348585742463289243223365630214307953889745619958946311049548256352981528524198018696526401193936318125341214823047178951054136264470121116495868204923729225119129267892244836698142053291413068093649461007690213273397006681924525865330958198498186045411412137434513421286926948885890928086973993898058304614134201197789471514549430472222530374635611449845167449794573992159166409313945112114033006974954477592928158120898756137180654304239587307815906637525795057411262772115234003216616984360704417781521980119360652969440482451051444227122482589488611908151116742738801068058370542717809268556204859933245657655359578332944900260297967579811354647797787650840044999126722719729719314521742874970022152369318894455767043551271362041357908394329867977705363625861239747876942210825439918067711273451525639349778454518338156334254563757221162231270119110060899973762252919963296923287240733548121242408499553063653163429099929254842938965794228595444012702471542695002282002130131558334172177958338673657829619947533171169942315785228649573998542757181386597847484445550105539371262820661929655107262915944189346953179470121520543986943864825112462765769691347181451777099385507855806677251476547244751893530990112602452465827160858500917780471067565297538489766643442655863413192921088487650217245741295847325240422904941313950626704206493987450748829652364515081273397595380541352233847185514982038126909802351713644192432248488001354248215599595540803242032134528997172808371558736143093944711613441316490101386321781019638898902656535153571402246527563307136452601766605224476592126908985771537396437984284856687034318982812361194576750772983781410661350857146885724126443047992463652659718592942274859625818408547067307529613932982367925825343804020171873193187908439096948184615210070001438190019473520092867677831473440999756764936426664964845277269092730425368882315800060505385534110125628684608362906833169544078897353320153880181675633135906810319165335245443621257579460197766421279077569709379431212543097944329608002958568071988660518698558765518795175407097657913896773922840836159689796004394972655091651058425525237511419888022641552435819118889595954613211755348395171907478011649672289814990428661417013450611844440417200801427158247704111964267915956063444011396567301983527075112383499868362337831176872160701356878952648703549529936705431969302210299339303291707819942551236003075159221661465337976334877694372722852117870192774081166565131454825164427086503425681187666459552126920502015956387320060907340852427064420675465572047540764747688893531280182919411441811348847842594707851193971751210398690824955801700633004806065045741567333037347990444946794822290388814532859777887901513532950505814247163164477164805710087913704440680610570553493117225010938656342508930111644245032604736942071781996620426573880768728535447826553816419105221450882255344343277576948802428253892244748117331734060312947938459039793564648553230317232742157905830654310328394685695896234044284343343498563446242673607285103419829782604341565345666118566218210651562060403009566327633552856135236979431316417080751769208580133991860159147833275703576679853989272334003635403495078680539956237104207583490850203111993938419956372547557540143102924426308362292061000804331211004914538127427108580615610543596762796861400478891123750349930134563010099051662847920378301251243928171952006486010327744062384858781826369703338574941148532021614667100919361985855553555893256580149915292563329328248370327259158002747193719767930948823579339815589900336988039549406931714180928015202143912479983667950058872585491107536993061204055528962828349986557150128450641690893776508731802095857302289350705595789495078991027453648556481677485578234718880654264098646162673797768233126537196779895670428071664328797478657558777851448785249685057502376412474011121597394879983076416649117006666961387488842346614643840179925444153180476453949849007892803835394449697424063338738274796421930048279225333951620577427802294833101225106264674550675177986633514773601551238513464908731865013278490677516474462759596762079431409107018574331134234749219716568627248401592081684244702987252292286302633265972059084813637497364870543123931133619949197061202044929527549002218826250145599391672117033089172399442495616005677534990966400328360375356591980197900917438785526857378154414088887306593066730425497816412149786645223091000727389363822218431475210463276157580433873648748597077587706899913399154791811896581176992142999736110044499431988513055243010153377895838040122332644668320822955592768892209850409878558119283602557565751052564232096089739860434251326680772913159049018428278907472007323524499476156188804859822297269160755004249279565331156786296867135634724166559336310166112171872548135026008303059699815497691874556332201239736339268526576962484944417796883621947650517714463787224982593320986335721318622325490431366627033457945957410666960226617560491452280745909395625601575983326296087516846952248184616380762973912991466807618331211280606273654513807744165540706145104106097548118773577549408970380070490593776991895933838714414706516058128879431479406167672350669275622523087746427489381431837174564574975865665626244938633288495826202518379834202561179023384279639864348177414130339889132166370683675242033470076376293015960199573147076925006814806919807467718643335052654361948643152970081745630399281028190908386715982122195742422718463261202986075083327337834722146192295315036692927938902190803468787125738985720724221924768205965459050705000503842467396569697566879169868811586287404767475158919486838861958058760991271046226642041280761386158945733992750196155447559681690130068992918247223040971107482224034402065604514174760621205520671448496917642395890902062560242685187640852315394867042145012769318278989160087860816470715854383474058417785905334625519573955250728612017009686272976517470544055896727416197553601225876248611507546544685963102695453742044730904360671759071780379952370069054470246731127090951035125502647992148073432647248516974320687605506136899079859453096269491753673373078119799768207220427981349661879283891337613653165992259681762155197072623456835823167153648873444010752770947933030514314111533302498300312711952698708797654266844215636366201359562034189246106966011227893173870800159501357262155401171795676319899847142537731568549930180926396309694922624073594061429066433469909375236975230900733807805934493428455247721371705632611866181609253219260908517644052325631988970562846311346901797868959426768247653643202801786327252982900641687512249244184987985965653820552304629380368563752992642280001465449314761363403559881030279541197899151641080653722258703297475505749476758300890990799516977343494366685525969083468149532859305527431898419804688048807488530764018034682281926800579804149418756228117166133866402192331609023662748679974376987170736894844882642189741396310234155963442850494483803319589551883587691143988016337781644399161615784560492628321720730843266358835044755114680081746130854789183894407854164319727662227873865790484082591578222481895286171193242286534170632406498043884319006050522635103820098017879277517474401099378720722084570826701485387579785867453481213376589021861337047303592411713799996320314747467663309028627579487461955736423162869152849076658416748725050117530065318059231296526278501821337829068494572806513029596413911609721268747170306973358374275667460957893090495393373785527156904632975479587697490246840489751961450604763767764062868815884165418526059578250289487092269548742839356610629340799344074394658393036734657249430372158414025729249210855225102208601112947683817995502835221553573145384587977416056326041523588219474384078578231355488108059766590648963913309309725886395145255531117366407557165831162365064106534688565753014010973098225879683573201652284748742495334789525916953466203632782026398744419455694742057632969482486682763181601140418732412247178392684180871938990872901048011329455516566528671204735863434006896880383500107638395464801026375818372712344865786721756397181992970385050332818241578861106687364274528400884439911432342925783076787983408422050502190460247646860721618387054932540780356919436220365719827763746986086198492597314330317739164129565917694675749881384918267657296171817078941219285771917847120813521109579776189930118802831318936297112803271828580747371371417060910870421157495025835314286984029752932716429403967888273432552531909111511281125655494483947162831104348531345572033082336596610535843416934051499748612444039858511957238893325247259163727358387525749486615208701945722002692076280978098306154323302692585592029820835109081432363744831086458128482433639242769958874742284100939844443980931643079932766697956382750284172902416497799397855783050485432170503113527624189384408852106157738515292102588722336735777314631843776447164329096261975920493904054986797022167171881470572267627535866101323647808947480076153822987882624846612144494152243907055512914652251196066618726424792227767955326326528483778794832276177157487482935421159082509543328308596826263089236720307194124750568534296501855049498992446266584414287802649333037164979297834181514983363940615302330900556484526094362100438466490051788629241933451077616436439288430479763122004415408937939322791354995807277124618170704150876393509072820686567140151213865828744092042306486661768921740691631426329116702721142509455963645784812357222024034495355483567234147191783369541065527620902397961592962073028792614603669386371110974484217426535961160330726048812444696311833231438556353699221595923561156580950732838438184362970071062546537040985990796905641981888609338835942123598790597199744396031529942961802773350486598553085768636435148623517759303151080097388060029097093938369108408622671805690015463905472202825956296388017953249605805961366669683341580709710244706892337613841527526947142435755989508949626623388069574078650580982322580114066384493524829860028395832680633083834688755296589491702182181064816762395055925407402231464255920169278475703168524303440746073108385062436588145262211947913720027422701564283593217460283769895424722268256717021517436983295772480047860529940511800386923825505043888093228452696790099976532035105954690980366756511438340629997104264341062317331623341411298352155311895205537649887500860705268048604509314266135448721310065666355371502683435850936767966915912048209830464918093412798424236332860552179575848781059802553281779220785050456270118932427718358919419815606315401778566544261263619375205589139185465626904503950238751803081615204321249936023973365073182199603792569227662918053747648446291699092333621227054847536359986247896560162204116249147672488948749362801402541167344033920019636524248327903160153530818128270276807610436606642840586134233187986645782214730243626662138543380535998778726871300641984934228698802200602228494185051465807185816181354556230149676947476671068912972258655388541150688589037821956879577333506936254614181692021274272044055142770568396654949633587491116468837462538854715858371949495395075335756841123671365637778173561769496442248440712965930769618623763554072248481471218022398679888580394173720868068343099366875876047802401041248195009829893711713969393127247210072315368119783004655944131930658959094957277938651104722866894375561103224709344595355373261497676981908374969777960121756195582184455723882490041054171996254169571135674082731559275840405926104954881730997829653752897170120230366651482048480373968156867768363579341411753495024872959158259608634803451977389540290865829337646154048941744639754187224279283982672707790357676755352023799598348717233806788610489125770163585706619824932586950601039860220274882450154804042217712227531834108691545446838815488929203900878548303446042500134303442897485247763114597436148579158918316830449107396910412446468871611358537016596197188561694469293881909696980132071571990048359354203352179255232961332045806929533139354986364754640244368458939170498980954310839913548393288922604794048837061741464367409869626935373447092889687996349371751957381787993461048408872616150056171968929511135101932064126809519943725044669168083622683896546099659783274569935221857925562045260167985851255848613389116871254403801326222010289551155257440269795607052962739368597993026101036728824575150954085515363494327314513989341303200525109939070551158209633403245708003489965423969891780867685691151776198298203859084879685849086778813681789538114791220634823384982478327579886744870351817210619934028311402644678863214103287687512423252758548803608137241859296776223709955792059015370865169706609000867995745130521035827810119415856992966004670022000044555461927755305569791385995804664715635953730357862374978507499321627169335429928285878860198473602425198272157011294563692830976781850674749560116035133159973704206238463061344912148987498519865924492286517465547333424786983976297714331880437136228693300249920455301168354613425740060818693257661420224594076434356141581657568390998587677170419431758372012639027007808106168486064212038489829902763167298202354432131265572474825831494576187332425331005784862436784258300217926197192193271170945015011062891364143426647430335991744661169250352867618255035123587929327177624034980876198735018314550418794234070156615295782486965613643766965496387316009852604983771926359641117685907433982689449344247887671881915595348272373690322886374416649093500328938986634203277569311551350006904786723442808366237888878986089719665653802941587432527328446658480473996864491094535173815597046608503758638131112289272237308729509861750261380761598110673657022464753166764979711428458944900298800841712376764149776417274037386095041800416797014497875560986023607864870723126262231936012335643895355780162853950862508495789237364134725229106917278383315035818952072569414526578243610386945601405376641812179835308194637656076644329233241436192634744272291464117882367756167478587507742995780860543813554820476568020159293719988524467966622875644103639377073425582600366997489693576393018666927492091054021577057708737779522058407358740168368367162015886251950440601970558481661902795647348337368563719789434722085118429375363685669158357644245018906027998289769212954617599664036800039431330929460387582033012831336647196317241398338912145684814002796908280534193292780741240508247714307145735916509914832306668028167126373766027883690642328122702652021997743910480601348274496686173501135366876008814321795737327572391022233484197691396300760156667164541531529063080003465622805994580165265125402451581722529191173701970608043379632968914215811882765226612105473086444764689198110888358154913757308587944906003195262903185854923507807046761653473209115470994053603301665629607842366035590024251611702629056258786563661563883650603060587477999079404886589002014349096242933070494709961409570248366344085125283991851725704760723922575168645949720318022961921989292705596702756662604560057292821808808791245819079661179855799272310473563827141890270487723263079308927362771433864944145282018378804641679844583380578305160877188001935490359406354276878535931492454786256109541301071303202348399193039531375783861142148537994581179285388266171282929579718382199324482124673751052147008039721854191222784566147084977343356543466807328602307333586681351969893693483405625252157930198679347195530178166411049579155150947686729432076652863547588853591776011086432420639902624840823914710306349933111657550442822831495343527790244305682958111105820795744950698861426247727142718458888324078750888762595303096349224399424511109435159577825046250939683489620828050059374783165847145954138635732175391653623739694428198538565038212807673404948165347519596703626167653949199817245954005494687480678877920276732846336725346260984142676621502805407943552551426123117104722086507807735076974043567273549306142007319780233232993304277626317913591525443868814437628252212261430486181731038030130617984932549252784280433059648069810519052366952246897704763245745632408625278805307416110900527020625701371359212099296652239201948888260616428505699498293125971686081817016316194978945204112623489712694771955433366076854123274470656392154852620058619812563918176886091371249400479679649565423878388668252406893565235543842422978684634496736796969289587246618011187238651726530332647808189176453975370729910206903039176817122410354514563824507455784818098528799906659666343320730479403071542500600348156342613170757621406365478639037035874922131027199668814343272624842613337557774258003064494310792603658393257359328216480670717580657239639883402982537395927020361169429881545962965446190143949479276161305371650702193278547565628177444223538190020428645252222458148661071913264326549700694782060935560243248384884134617188215131387846699868356412793718722092640551081949685232516537060981613243466796179688334889580947240229873485169660627945253445817498349137138678854183133160082606081013189568983443741022382480958134413275567736055417773440036384600375330008032469663293935594626668766776262808375104010569760423969998825777852640076137948064769159412924768125368649085096679543110526193158310273846513947255005660702366842712416454737158464788274712311641180540376272645263196575688089331956429030289250451096763383683942372653169252188410939547890493513853983193375695315834957441991347644214161723336072477641163394816616407394665354058854981384280409444025999795968215085110449052378144713545907681497409928956646752183496039361768592832129640523680999511107660255590023909132467596186036932571557312155739605492243391688624378049332110935655580416366547660158323888552729943825311558796989669143138461382328144952349578607177587287896281569517443227299810671785509760971304285315516685099215991499777072952457785841130025788269434723602271795591982068237222122001470078756468269461457709756269159858244697740081873827965744510415897393480504203706850415155870329608813463102008959469846319041638821517316636213146529555637885853264943283429691072897075063593486182431019415191306861553455677644842160689090186155306602524198628475062795124937879524809158866153249844750941322882374436809512207737379133511291688884552383394068874826141086045798535428218697392731614562333576111095297070543356211911290951298540440871572984690212762493413041115060298750625126117794685949038714958050846394699327209428427860455729720572832234202812098838937465370288206188724867852015638275607034165333622662176612176344606557147536484573318370833429139951535276130561052607921822363068304182960878415270088675833140922617804722291927487875604673372976237165561667417267267251636067075681106902307853608411713396900319964513218294300053916691916069039974870566667052504231297014686000307451575406714894920681292651044293628400659501205844573970094382901633716766693623418139864732702542496727263123380519615538431984646142103408470122739097491041839694872029082377460441803009755213402501396354994537851594510876068327341206003709140017016027725839812963371373550428064573949672502468073272612167164318785113093644935262134724768589595844055938587929274113948511682248718172484432184597232428936528450153625693006768020305245275445389093059872092353784469791563071080852683747774168688792265254030077966341716923805277625302896694587191840805354647164723718906763934522964797396497273560095279515048873012626308547112348851516149702810034872144823378497806754321626073720851446970113428519479158227677629751304962844099706550828585334708859436859603035795772301044058310874364213865389485448544577624434687499034792537611836029924748676603344660332989231789005825119844292193932539864874477376994786542608671864510249231754764742834697889944219247928595202281263282427904908282291190984624061648340192531971085550995503589731242384497277468800361857035734476569237224291555836766955328372215914665876674826815981599675072883864217505950239967269180048111302919293835248774107893761180311770284196285849443686364962189248501731765807626042277786803157152358625677253702194567544016887044795576924950203589647220537186118244463446650781267431075154218541163772222770309241244523175367688442256103051521856705740816777568371143034279143633211092560951184459218177436517606132905034862762678477462977799429407688174109177942224050623945965249993067840249671117862723077560101544731037351196727261726273565384307139861772376638496564280000593886128527498546691715964618304924825427877963179298797751677875223784919132659400293046886359068257339314911924014279804455269067089910046130274349528414704241772348544402865804611793694949805286024905900575763947102648413587957360949697619983251285505733074728632479119377431308438765336485271479543041936682795842688942231120427603250627792675079858698796177036651646340682310753641761647210323848255744247692065956600990584576800007525902206224200862920748191781300840488413520404148138074181845771680455899021739439320665645487585879115343068283697865309356664525917414845355438918147768139020467515045956859704415553236434183508193205767343618684500103503815116216543625912993437603036758994732102932677104884064105377323907449475130979324004883706318797764461609424435391822159950151539937092217749464495192157865937647467448527645335924467006582194242312531025390903965982363489519695971300135259128230631267062431190475030668128622357243196109095437060598449416382428225630959555287136298887372618099061433879020111257827880850822077566060903573651009718608213777395231138175236080948017018553855518686909551123693872855905550049426921102577564087223702620477986956467690958227754569374801823417937082865222750574871911044468183865604946744415139580327292238307954780160085732697128247718155848509374170193624767022141613349213123855803949329747041247786459602445467611068589651292051454443703379350615166155772243922186897527838708098745146152778852382807541063612354402496457733691682969269371428913126908912151702585425370004298563116407605004168495180812874627244721287701423477533423801892376668966364722018713231738252818410196698279153451337021248582197016158380676559473613226945667820104443756162254551868171771830013537063971744832441768392530772822746275022667400776029959931199545891955339701803493211194046916701674653994854764609721136211984770621634499995856071275594431464801418767154020986967867520337695948779579427590649027732983197555511166094366437718983411419125803150124396211051234085718220720605014839350803426938463694578751826652772525352930489383675525942968175081224556940228591856090513345571841311328273699284758416253040611447652582147320458480570570916717749208789442168284417829568689328766758662363245303703902106853364883233450687865704030700130212197977018621635601851724406708354419323299389437490973513686758772462624361705385161963060961792875100416528860990109358934343850805292014398470717116750828854591694120449838464843821482196037759321685405966402477544499004031615440883080952544183094298062395525689305289422957576490252202198926425243721371951067361483116530702845078675190884834771392132990215649017919246030141267173389016069167199412503537876240368368496909880086899003361112025348500827808061691891484588639590556121747094396139088156104576555620171324320835530337438957026549601075553999805674973841989843291669288807070428604484227448050467037096652689100233870673089292635824067857884978314499520974562520431737561323003038856604115251954387904665938485062223858807382677312648270184640593509900479424782621052043418733869201156517241551374584826994572304658370907647462477114319724919091288705693675291185573589664453598555315039460930124746373637959503312244516339524593722104504093665571791938662056555542110208112238891804450622103664654493041664071652741688582839875063846789406871737838665782721015619669525060281193951105304361069873519145978001089961226558225973757743342402310163155553607210395628172802334724274427984356196518248992446531106143269225179809985120285649547162397282827583046585557303648095647738655761344511664564150370704624804580262875645832534412222876454195936338243198256900990000951702231703717796529728879720687444620038266854933543000127593234905333472523051306415410777265888672476960891717607169407974220943632868182867338561095953602503394134880811630865761112311723496620304139829824779528333550624795484272030317651134292844227820458479628522243948538759371251976536658608069924460248666768160058178511158090342028505865566414644232100507314378191173864108837304781800409922123355489143642918916130802768517180371137313000048973896246570794549759139937899122223192312427695543433275696088647278404912363507388094640559442649700821526809628176661369588156336369578297443681514913221390426184199302846919926381191865181679747653261472608711439290709064059081578259944663583266192099584337431367673520640841949112873801059568071364289132661061607089268699493854388218004707578780349852977565089867540166399707991390535141271970179417322301824810475796106121821686845984744565030401055328636848660879796239648248378725236403500331705432641941502173413556526598592117697787935284261062491330609302307890305177483130277830657385125918620500433870848581197617268956570414922688445545408728470789937221874907515693766357502217241185140675968220625747136516155247296704098787000433197018291336046855507278228427134802358490711987336181562479081181655021595883914761590837419208515753394933521643612413395057046144186716389766960058860644834798883408803102045177965776436753121912887092966504715861849250969235212272536301376256066620931288571128192054054520784186314541939839617457815701664745619565435131540898746654678094430204532716959884766059649313990163579532418615415934713837302692115247832131701826006678650742163098402722738523463514651405622924208085203875395483108425734611191564064886245030741082791368388406894236898260580031618566304937701945032034371186694889626467567134629739342733436143755730910532381422074399577210767661047025748418266369556568471993066451418539979666792822778125975628709766502395277725852922873839347057929305498331855296117462093296400713482511072663214789992625028047440961035884849158575268414103241681576628903031277342777273801917778000768302034777012199523628571656681867276943162380264242615616206170178915197542511764477745599059162471449101933767909443660159429341979655608525276009647776306440926829135307128371125576366654726963992692595426916928097870137755080714571265793359722489496806514819125006258233434551049855353497479651928146946862229323702654076416893774211602609128768392416557510460087067892529825962374638536248077769856068832456096500698684026808128050288590686992478454750682465772525052993486766049248699423837240458714328117023572651773449268623058710810277904080387422507147941025088937257660211116141771737436483710318235046810921238087037591355574739841870398558946844992275571570763941615129000172407653949839167676395584163379182344828331316409584583171033292162942215847277626250581648631019311301832792193421102582995294685260783675941744321865036239118914550817270655701286308047929410226631636262313441634261711398003452154459908501548020525169815423907714479849182929915471351475530725781868039967184075066351596477224641883335643057349952554568988876616689691141282161717642071987154281703613479476015746922401778628884467230524936541501408315464206230693489968422783824642955194332293519414613632243888531760298743694316372215228413177976842915498472906697266583686912190140187752265136993450765710120493542994679223501800033952013170335792423080870164067355922305252978031613304520883384065376469486475356518135807814949678303288079847839519161659457370861236838707397810323402265867473516611780758292474791934501566706391320632398972366544708026401166507272003130469651304747047343372026477238725350135119654895926592502835565220850055803588251113634280862771403601110734747036002509519823889910358037118597388016466808686649320208581456996246678574244862038290479670897975184244724620158472287056258949579484430505241205424056191173876143939457408441791182265135445280900834906562001581115519713300624653766358019973993471950270062397080732458183485553644526512866421247418557050423692052781154853593136994079101662584010493874315554064432661591774694140017346636683076529087132481981170342096332853793619177595900223447759212930749556905860469779982744756736341439712399727804719549986216751407633143416804042522343269511750452416421363146882991868947418430029790745245170699818535358645230667088868880656968294997555324407655588904079378141598071372052338969524120769241675611428637001883496961983476994839279184518520490101432301227920145508234655558234052434275478212470940807273976457554999180565237074669268619631039295255393082395948796573677815024862071459991741167031952616970959469550136029322327815557410655584016778536084478128318518984119693284619253199046359639703803994089297341223667681119911227149831905768680176197168191576257667335469369257259249104530322040324513521092039539037661869591234784336557977573836078379258701107564855379647765446482925599715391970281869358712288228558057582945532511087601215163706796479071551466831861577655459142319620178886982169407671462625262738616262036821107125767467853337471814218453441529002370348945995796697010619297495850221585836027575154269372107785089526359637428476893784658465576441995887398327119123289852948903334662598523812700510941814097181210492610832973395733283261738418888716609111870037494473354518055451844577776376007383077151553905618979591156060352223813607292874735686877357383916711368263401391012129206778666813195971412377706906646044595747179673279303418789251360450727305901265525287042073547497356327690636564296435196198349477755275828135743307248997580046399925762222399497662950409329260926162360850371124220542247088682604252659327680246246221050945633041902404940180247780268628168283698339219693523191725155357663394934488976297827529055505372568371461747044512151919107326387956296805718964839496096680431373601122711701084528024394511874335699967425779607748075897199727411220867629522540654753609228633090053649856065449025260261898908253100158532762892725239297854747019383207514933714541879309829490311338809072919126240760946113525492437732060756053996812063805071408364055833849382950769563819764183381373545392198504757715981555130941847518142636937320013739601851785506535727017336206418872963738537148747332133932994179186214181771131588457942210038972053136791892147174440102934704935234889206400300741633549872373873401136358586849558981397119224398612881190717092441299359088579411566916310570680051144362861475755803646061542275382809315364517128388037318930465414275765986976533691021788407728632366241401590740037997425610135465292282269158415989969059786197250409232628213393236593277478567333228516435577564473476240231047559442741480877058973526963285211905018574520381740716803957341870841099837643151064219879142771106903114236312039154680350760784013762515756427685411715334728134090659937016929164764682135194574265121188190877704949920835359547324357020517454947010648160648583965438143033009578785106975815913689625356419116155419873615030247999207450478672542745476570059560794659365757450355502812836764171526529348735374424369251884332641369923307914301147258382408811160558993961944373323838867650199784274379799021342506542078160875742486165067255452039806409151483732681718806646512997504996450239183412729009558120794301801210118255117535524158537595959659183066340341029027373249256744820780645265416318206614038935292572250533859378447808525966670927611574041440148512968967840162573373631616594186991402378549852854684410435715946746988233219586033631781468579597912888619387387582538061714149511392215987563422879835694074350206694553613529802993006224864306837991889356241553981377717040817021680330105615345316897653735206051097965090223153858572959903928015252822842535031161390637189996026935143480634174268871022327970316818216472808158644859860530437972315321042073430626039828992031147551765020341363152291715272664175009191219423324266115950897688438728377476727862728615065337698999370891610861213800727687544502060509722821210348369530681045268771375965391552127752583580553432015224898227353822018556114122786794790007340921710728814158708793661043988939942903276562407669099679875730972557557276224497530165266361740636566030010644247311920715032574446805467214604443867079542753068818202527005948273233077989340721490814530896020627836724105075362352311812916845574991769477107299835385919010011969678685377662350487962852390042986979889278965019496212091378779688612824738887424756670624882965111044445500464111321780025262263619214579054969888948783697809394803140508885486656875185139616181789248443041479311058059168784901643046611094568939732349832567900119378992165886848144026409085095872287173082819761539404229335416228084655539044411768820913421680104568816496973782340993276886404701130832535655098379008499727121112579794574226312265545180621046073530080961449165676050111758754451248200717331147687526226225212868771679783216842079624519082595595993284898656604977019764251805302556422967717930065676878430046068016081586563783351074888662865135928573050210599501615775150581454181448591653817494771961580273816633329312298155984303442425127760280757325530705298807475063005532108265649821922750267712884097841515253228721135009121013362690605707199082340949658575596887262100846822185240411736825658045742123277201022705325621193467230249307678844502768560231417419746577983767275760086400639215205090983525162697237356005492226871535168312581820191553288025682322214419459060320153009839955045632203884766637519934944106137016041325068966618655241985927047254912290720761300672144996752558310707045066288427478727521082021755084130215455874278609282223775382795169560106644027197526941483531882487976517778650477181787290745284649638549730700672989418021768651683235616990807430288845743891266946140129593355831689011953080872702470323891885742592796255026941043628452912079180211788367956065437905380227070230785809380921483138315504334919870651976919244193627357877199994214780127372948961067547416824086468000902652478096954997977703562865120124674809363873908403530049284986364950900772706350514928356618067001651564380906718963205511051366768771633786143791241255693504753451455155451308419930197564086874589963861224293369182850624666589906827704562065692699345542239859078076522294682650681434861326375450532369411414847677767375886253913419742775215622862253465321807511664969662210667066239931636467762059120246024544191598336070338155847122327600463251869827842646683425596667601743565280025039551586747812918951250339030178237981101046397995244270041065556910900668042560733974061826663272666100861729742089129291870130824619890464482904996049585948810841260053114972880633008619214547756016307927026067161405915373082368526569004319140059833965743556179781453932643068703938732306382698541400654394235484347304954790649293772290860129834673178061031819893056281950355233698209706352775949028252788197606158166996686589901951770102409989585031874605992615091664337780055256557943646438017313129846428898168004205778043323668253609108326293735440069839581402025904805553945351503135693147540691747125727001844583346641082581029442599622775820396782008925629023568904472701625826745691601422396511803432942176163622180859405207555154984830400360121875406919937349600477715401272192316603382477875397243627073995359625006541633493137002739296459975011959468633354014779303644956058000097162822104878222834078963835192704502891352441891691257421413848956113064563167262520154100730384826500714033094768261719177572112122092286119402479700475753986278363116699795004002923343778297409997970140331147659353786423998211838154191535376100235725982728551925232780756016498390548824257421762691897807545191748772557710991128759112901284662610353737330305571523022260330652405243045868124215106910543427627623301349368895454278602772882648460782667234572742557653588309067505234552663651205076653120320485497233370310900307703623997349368197428464476780305104440759816522130268114574128571125783123370724877772468396564654088996440390332670492400199811473426996882540652465538768684928171200882174777197365243501469356009559532125910875792665239170467776688609325613326361917313964752782028486899603133793740583102585880209153678960844041343021011352792466981419821406036624903199635172131936066922838918390984353916325696641097693533285694820234652407773810517003676205051035143884338771482613709148895751670249219874265295898190130844062189943191218103594249001262380067132542445993184591533587909323081881303511868482018398959798707410159709175724455640492048487918920012723261746298642696383891753789541195215858852370196062758515527797094272350923451775260401220877969925540355018528827229334801264634155813163107763308641058700452663070999187960495442009620666105722905030092480139932526271094841507411182659844963318811095564387087813987850865520106627509784425753139959911824829356021791541350676005106966368776701126716529778680969611213621676346371979243459269318708431039460300809276497993581783585388033080069131725529590788150862031212832371328337651094911693883424890261935944423479413420882527570630972116345707348971016752145159518788839859603714869164169841667516304596333629265989299758298944296127876331596935328714358538628074834644404681146601272936167395344204585727666455809798248582582085561433603026027834720378547071575008999334854389405657589915889686174134311766424634709826160381975822348135779996023938512495366317733256480242520147721380977962154847423665916453072975577742683268230800081048004832620557321085936418352115464629688467206763689142022831980746783702338251580224282440169936187523110427962391059088575765590633143602800192513084192932139353039642621453206174087186681954954924814111113863807577901067494163143817380828009786555683294579968959689260832696614499280822781622440218363939162541350669057428616934243832705287967813122262668312982125449195759637295843161757996684301049648265362018839418395040923245504918538366429462137244662315476106590571612861545042850995708298912339855073136379885393580368854178873651224051340622945853877186359721040588021574021102671734249444759278836847700591965305349005669600746881059015587138878947324385075485106329617393511275833697486429439544006451952442407297681550253290777263281276158243437874076341229530276943725844487053881292592007723161467453340387441497977032920171524894853625829532839398699889862666328966166331110081700627360824773719613280714368743804595120246998853811201694632412049608723465854294551183217668798399215567538774629128072004214207276690375057065110747977008708507189912423028263262571528866368011364095971120158967779308012885362757805041638895671264258559297434158754647840354429426386217640754351239476310789029004034974198365943296199418380952086228968574760077511363799333802164998056674551269177553035473295434604658488807661204463585339688280684622621136696078788840680180124655287569642109568819739307799491592409812296280087308222047884305463434833233251699755180074442913275737950370397729741906080031130985370490793478421484008617130451576063438703888331762513216136299893288015856702591183577379368295076876545526139671733362925662879009646480692676899663263435645894687343745785232746315097814945045962460727044324299865957914121777560905556178121237737854531507772072487539146900051691111784520225500801040642240102859036828050594836490276043571520072032842409238444974741264726802700474067841397431408179708690982827536416049235449826321911365320089140239813123863147190964274901295369386023307348920623866403602630395671320995840169758019873736761236476947633606521942739458587342085632035015618267074941971557057176982250349253744474964878989160580729519008469494688947541529387224391730513234338336669783590695466976240952338563720444377646798820334831252353643812822668537920342612114166728551207728006308174600376108350138180755271047196237635700173567434588561266785158928280676406709335754147866313835586147062860253373756065104839668785976875620185978607055133192855024892198571595720610537337607329533141185304561326986733474359671945224105804100510622670582582402923270243012225924900957773583206182406972614373617960229571662483867107513031021812172947885643135931242067289717265914743727813090458560990383404391044075869656870031042550993383179189001331590088297386053807264026376070811726445323644204425531311043202469509951254622421269918819401328750996873515552808353377029650225497555968526511787610806664218131870767159828399160027038057649254150680293248303606566348375568543348934524727796333084357175644024400663968192053339206455285021328701926660013268324548146307108088367854166677632795252851339411883648498739130296851375130160913028438801140364369629167579537231729875403394242680111434682711330688491874017913718597446713551046105801548998227624486392930899700047661568087881235586983565367400218713870411471912582246568151788709168165013885377962460751684721426193240748221811839735740145140860986182211253514193083360053533795641264568701196253100475445310725154603261672605622953564118487764203234271645312133584070531608628142955509079007123327978190899975953670804253171776525930763816134680727530785797042359210348321307343352822667852955895127725055499534895971447410266816165170461806747610872817345469219998763006218042694994960176429268119376081043141145778572557162001832526933705473321089059122744407586225117480262786879571702365580861409566856190155709322785529743655994647777728569716288966020265816582730092273046204466111672880873958574637417091660931495489322556602952018395692337502749498525067818341436972046360450408855604732726259327666687454852292848121661795215208502156684674301465036715311896595161954137122869126207695564136184402861826900666947776218906278223870599304070620517084765419438622511049678336600310926807981312101009495286964749719902105491428515041290865927788124952452389642921023727856424080357243697286002977749198863505792572762907723476359526214150721128855465140699255594937077529138526042867722654708647727864374453263489595003490702087831532847703438425974218677976249614779428141065541279100892162963728914775375351808718181201135896537945555684936659364097862911582034724015068879223547006628121543552149636546376968333021731217956603847667097344650321456574827417896487655973268423936287069652595556006695641172732033926102356412324623491249426647776292028398749133696089471843228181066140399633260566055581682323383410235699149277060575618350147543343377847471465154297511016347447713742742645825555329054960019238021447659098811593278309879270207433117775655247096023424371707680178544187849276337766755918687157725335145699189725689669533432681793777327595994215107103443351327735104724730644146106321692441389678075607889019546008874995817290615917438513409262224541629014506882727384279902982321294923214773972644827151191058091804542218382822165207383916771552721116374560392056757225503841505211749162751971838994780055689714093796681842679190008319394522276602507257497492626390547456531766740447878909703551805286652645212550613322108993076501198228907405091023933224333534344953110387260012642908328067996940958853401837058380079050385807131068131423829195993605382515918306165425069153862802498916794616173728418013672147173428461845517287198609402325161744115598315383400275446548881588670747835982820612361218066862395134048824180171445353364824456042988578005838365883750015332804657759425415260080936982850446823519262535087032552698189958728826456833982448453118281363058793410005064724759634370068414989025916258713539466164994357967712474515569540390107534813624104508232713342072938177582313887788874632408223451146104530453705775803460076364043508891164837569422515082713552707110233563168665750877710716607556101096249428285660688068690020771997243764757803177440870506432806569242813567567477434168271229321392685701174707070556585875914336833554848529990514752820463827689563577546906683975188091851994177479823095916839424662105843229450570272561847399453143681951363447005503220507364016130257242959805286474839190789974187104808379549812824086413721478662741895455127270939902995662701676276306477845791084386457336040135820844026214483463914890999304770281706779178848349824048366076498719198991678852592214058879170706087892669023133059783181323841296076914752132183035387631250071241992546231220371746327073700550046250653249012109497835605786494235818854657266810505583803985180614218432357913411536764501881649817442752745658686517382740983050241533349091192760119644628479817197852390890726710169833923910418180704427627508422761976787157972196801376119678746536064103869592727960144054314594369479690847163760564463634664629189831603856977967745911838873615550037093233548196037859118744956883964094919649244785531040798492390631844798878504574932031801757918474365462989887542485542178683601704203285270314088624117263379759117609256269258521278718473254622944849308175164858300393202034963151875708086014038671131220422285327150293477212052293779588602973407167956718109036505543346725311614070848193616607741890362832787996520532621283501806632943964046045432402999978761137279122805076454386845706013253386151382383255102142390523798998613535739047732267163420755271091523337580719721770487603921401824911611726013603725643663263207143778806753925842876667769873761055735678586499748792753783531456351792362943612689172755124181544027075739074625364136498609858756169482257511533206909956336093294201387402202564655217117836279837167900373184965790768268742026780420527862852828225324482129758950438536830128108498459131138489241631948377730809379082898167330751072099723853469900490427449498319755700941017500001269902903691487482068265299754149718234731325406213826173339615055635061847277388373958719804270692812191474446853836317317692643631912653105121247804272916604992583002190327428187148679828021348357492696797557852657790214000969136734167212775066532432522824236433163744144805771742462519895026977324306938755265820753982032324174832536404959950024703014176201573718044166679312467691386598512175534860102005231477640700774471366605981940793620272292987073253549359223490270680316549215086601257562911367295229383771213830466451062262073031573446746392398298673990953083984010821867573747616100406874542270780055733828127766095825726110697983108484649429575950585335483397309980033721621949371047968590630580215932393326575626542146579245276160932471448384534719500473967637556826178527180236477120945558589866506652457184670938803480076597543094781164782738622272373101746515166649348690710868199114152814375327830754938833675207121888166732620212784646122771877050172334801356295568010551129746128379188494031373659584999240142722922416748949758176507997550145583345096601554100701385877846817645989496332381734650414906588160507648892650449283187628948837740541634111430547865112792408813143714281556124147269405667438932829412793159896254210076339985650205635465222973555078220911994476180047537330643752392231364833594100002941392043888232972941935277253442352642622589986778842657325345343723063188679250974819983420371706453765840722973503668206611497797446322357044236074224212039667512470577307583081769098387706794941840523545457158178709687711775577547265475720824639255353657680911094699014802862638511930199800605392299156403295519639583013258897531032193097039068579275522759863080606417127746181788807919763209726795496955060115994998934860054385051808839564083155923950273831184765829589733308731817260069793866604159540251169628377694746072050923003973842453488798525440769259779492597449017206211913596242058332751742375282756181340050444430227108635206782780833320415343468522345244360488360535959323687068569683852945546412919731096719010444675741776183644275560138950583947100348403056494546270915703026643867757756837058075395187544529565958481540026950584502687805497575951592581251310140202374828061429808552315813645331401593650291018433726201500530788034455855633652616310241975418026270275192730285359316645966492825313728309798031245817532485324080522951684879308492574259183231997488880683836098195227064428361508240786463947968678820622873954055001188700751110821305808189426552206003800812002425467552842283444049293045784058011484714237918353886917075814823016630031957411593157233715625284515555339663072081328037287587164893309145717680997097043585053747242563158426816273481506933037595094887641870000324755744002185001299842896589292505991635689188317019038150238413239612282884217996469638907045865449133908378923222025746910247637351251370945153689996900749985684520076093794454972594898822702060569499085743847706948264930472860175210157448080133911637971193023363946684782632197557062405532041940180941428338787022281685460765026441623132052565981515955173829082864691547134465178806077833268767617976646082442761202366623978277127191177162173675841935598417288517144956969073250811972348292295710031729098364338635927731438650713826858136309904712030040408617234924352214529219628748022646733849016682367794821337179642301649633148397429698643300816730832688415348930273174110464516009376770422823847380139680712935797383691363955750824469167220586485270945621421751251765619199546354785767419137098955726412301579288598118789138754137438465824825850631245505141701509009855998433642308826126226692337180999540852547302933280372314695319128032974413246670399855218348675531516813955654059671989752632149513347336848657790417330566510045161647686473130948817389586563603595123897274623043219268652096516300558480694728459833677773047977668319036619568227115387656062513367228231119719555474319100312742541555471981615024220971378889046533581138630635439639655956047234073442883206363378844811617169050571077037004464690852993756992085900698710248108909274691704271824947768279629523613553426471079967550720005942007644689142889849934517952350905901153466139076001508018844668809617658566810031809139981729054055933204631618093429884150016236315550065196399663966814403522332283931544535360713479649293601761137815829724884407535238695487118848007148602348764257879266442420994578614231466509464484844662637775143028532419207142318866633304680564876482265102778315662894885907047081608198049848763341898327726558664962103864520597771008135035402563124648794227501779677549515728605063658010748084662483238480037941243270396094656118506197430975370655290290523572455437249800858449822156808248346403920676394716708023999173708706357815556335971508651159360513734256580080585024175563308297674933327929067552561616203229944561202112673182165067972055974737699749928489110630413025899875973135230385188457630448482464054090513812994135251551759044517998128038084219336931987684860122563874586818639038968081697112403152016391335554873302480160035753412412446529955521307628076838383062429725469223129450727897716443889344182976610836766337186552874332815938960593516877049101906829500755705224991368353902711974110675279652453306374577842441580983269135170542268179359993887481819840061123902977928279174172764443088861026438478817518123909643214620701479735697623911588296690379394802558326543146235857867598474649331640926878621562918685936056469117885313199042078602226342470286360874432059871875816863329082623260298148885611920423232968008063907867109521089332742543845792636774603108850556249466971004158967542280284367245334527751383277751390827752094038705250420297648356722101749403989937946184934990926969818588348128019416121477371050543946343146003916573761487554701595497034788839102761334948117931183883451894614030218838365361241151710438582574816751789139329942124395580735490686429834829023773387289143400848050192384565694700760584449421224465483576113972644302490002145863534746796748914135237471876611130806871248597691535662589729897904417894689218170605999511406338560887185618031311175861852640852791822777971454177918912549967888758719364947692855772640576270144451687945139019749682471937435887512947108854267665748084617369358328389428291473946959641120634441220048489684428896349035293756539777482274952911299218027215973767584818143107629481704327634228998742913966388078651933139081393614266262904451007141546818983830589127351299204073123994470496167173819123189665675859995461305181356278400026630123001281007502970360146954201438939878830480002014135861993771568557465288421098331162782593802435880194300940859083437552254060675168490443439011572435454140985532991440283129153118759755877787094361252228916062428348085906212635713200561392987455452280782170072376445832775081075454317871755463015131619880973613993992024491380207652964144891525726059611303466105109083031711367047088860616462128710594935355449743860769593001940135564308291741180457407668743442957991389482827325684635729244314722179282859917889323595593860226681803021000981532995364972873163615721717730732989677304490528577309539305308341289854795499679523885615612886424093706311421362274539986766706148193782237009868093083700959851918967235291653117578916211075684207377499691419939344375303300881770934723746571981355898950537891091317799908066504890657008299542851137384478609169306124388686029888405466573618878171092958609096734875443593081372985631272104183703346436095031668114037007660092639180360677425984193890896220551225798145755754566371057813426210655814683828911453138216954957882861079281799838349341489604308679058704688825734235538850472733846148261584022157658339507018179470017033374307967996001709762926246265000830903372051511145869393336841742373969936359636614111191333059527573390485350480091448996747924807349783294301461224216193115668365974637818837432358205269687378552117882015265536853168590571257632396522757154378035873287951860493420178678037006005031586978685547167586558919631145651297368660044334814462497143750939049861887483143665548506067038636535730186296644619009221734602048199645427781619968992171228870952669885241775251205596748363204519738524731022085607452803771056021670259514439940828115662057399840953341674394956467736989744855787984592247810795620392329188074175942505281442668143397418506109537328703302706259616807340854390500097932047396477863901562426595183863085833424506702552954827547044693991495864080398710585419296368523889950379889704615739462384627874292349838618230440329840255927632745602755997375862066137971045146479697579514103089228314102593720701021947610849188505863269123833742067446774004643045402735006378035306254093407665942871593007384994290384370078125112310481064892745571427441304900017416071185336564055278305100048306592302106039365704315242907548135612402393689431153782293524968591709548914933712209104946384042450417175327338343442753771675372843179789781374944170686519293789490702913422188711258039315868383048976633212497767630393838155859827196398259728240415423539326972248491341071273633581981081528098419647360346758108392460665280141685373538014044301702415752314897788606343620342785546780767358375659431037141341699495126949370534628860474440221515238634851038949431742127621399345760339156442995105701371613487540451618970709546496836663820913083401303394400420720713716649853244668464376115897741052667237037356859029838219273400213473476907883666302533437053337243887716569177062933839265757112857598161133688442765438125765636894907207351458177887659900401207612993060580565257445508796584551383634954334858750293799816008141344798694344843320098592868141591387540839110650117298220918687077283455414729645561070172062754998913698579092098560435535785809693499338656443155897567285234811125336436268783317452634077685673721849550070500636421674460926312286306475796519567860742319992341245283668173748673083499652650263120586361205256320546106044606712031430749030631263128283966709076955616142230794385143872633750796605845556476171334963618933156461482160396843937873044764823991233188282063258438496760241877584731312913068388492704671971326570582219428824884859313714964499587280410283136260100688769530866220238658901303427911674488196732935559858237763975848739302259139683353265257268350037150771987253215356192103251541688381996456594734364019538672180199564338728757414833188151307114244245273535679746612368978417021416899387174937539861343344134004855691754448646516951500804965201118314602493974416043346685282493405829122942881692230332239401302947217031435959712542371923724309150452735692520276710773522839103738979811931095545336477227514339227368618999421541468973037018930251027643717363359167260090978079891452871393821139042884052139793480184522541085330876289872750116311928992313773879130920710802244023162322329414385576743093022180213279810562418553917999273045502696116157458065652060069798910238780494277970406170977080807928532545771066226794863314357476038532857926355497173769687716474807694596215804604943624441378181303067601551796497008921794813214371283365705095415918552104364800035674872705984658224293912549176425703428206530570086358958130235888021213488382992265801009030884423924997572762848832107743289942858988195846578195086649764968171920116421221554745538610843075943844488885945974375775655838160895617391418599613135660786460970394693896612605221508185416749682848466537173015979805503402151023293243868977650175270722074917679710262592854852373208005148990486417746612750688995036956289277502021749270670592334923366471584874205153432881679139403253529495121973188938306846513485922426734850480130214831588891379395903820179711175072539530471914704040925909642807533732811567854536679020615317199992731520112657987592130618154948504414155114818498651371201189275693862747723602625016348306244939069419089372564144060856686382477359798762369386658406289908100831075714584445286510197918931882659065362030730936863784491787832056155317434192764579380120789130988554976701163848306361162468546413133991042611073438245484798705036749156251149936272695771028270646591339284271434008441778604709337322285984101761867839826430619218622896447399664474130851935777403641372814984106583562687057475812206743120003713260291767561989837866904744409206099601538596241186838052219826435492749026682058116488830159458872697266935559510668689302308050430586613403677469501211297085597980505577414030083555014554395498975844305631873729733740615633715074690228901872490856556498628681361933752077039128336367908371627677162933105863060440032211382405036909860474867233943885246849485962420809144001978236053795084805926293696434481389882486989873317780060072553674643935897057769484807943601816115988669532581429833235369576567004647443805565363887970112486748297232569756427455734573527945256486479599571293311338954575347417190438208643783448684093350265657612695470712088442924151583808914542221237512673480800296347943861454330189329477418703762937286284594231380709084671197215492216299015972453636249946801701560375781284608721019418816157194221916937401781089718115013550464477762037070255107341720225446210149722734193472811810558451242814056088186573345509671962844640561341235733613626573684235608931186099687534705944965963899430394615109711057500386630460640210039184443615173300770159942935511729681927312654273999213370628220056881687417474029998177189638619040483560939091276889532930815422172486385369040709795779586150365890793730759664254962217924665952585601466815783179671405250196529749675005176916745435337402474819399340127561188503564080525478711064610244017806074167710127682145692654592035256876200807911134553714716632453793658239597021425597427327374310655386163764988548924862438427079002301017908246821956196437842554115971549220357204871358724598892333089680848291296490787373161305326235505227471057236020640875719857749009123615182018472152995609998659535742481695883891021745060085048005588880638913675728181137738193634588484771543877029273697292774512322850960810035474959919679056468452638855452954820173088499024564813924587765298609628306891385024084528626637044494824907125056236231580595842594158744124379768377087938294674002488850261266325394264819559373639783487057011747733036050928905139377760752323159438748411564504199807152626515513909590393815555041458604131319439932499760383740262232642558451513162048917415209168227803549710086690388080270759391102332643578176033759914192272970066176980121227608620726380689274836243047383227698504008504507708998366180651913320205297882222097846419723956401927300705538543941657247624277600633730660791305866552838530494426417890311680435669014322920364871701421349417481881284125567417395021190618710213110983480249745654569619033776351121452640904054269103067992330972763947805593140477484431085183295309366139867005414805994882953994881948712809349541029083269261267043148762211723553925627974336296290974194554194726205155431988065859028845425675612779321368294033876267087527470204810859487923003648432802036530890184082624834217411649510638563757441018902169640132009091340178631746213895987461148400848291734313554548676003674386274445788314718184421038255295677176761526116697841174551772685665936434823346266313973860726813182492401415302295167674486021056502480776038174565527568739605760367512839217930478281729778108434103881377449424466351681035281771286603754237980883815058553865823913277121546911859706049584613876486561545166195886845572684016904993332112822839880282676723148774159967065969349270074544059411383862342970817252190890337404793881172616206010679019556824297503076004426155674919524642392711470851770555565988475029946316649735023687898090107021065184874009315104577001306978681691998132363362146188735831679763019918888070385587814692577314351076491844539742805833134207119951806580176500774629536259804480192423657663124142148076708681041289691300917366375142129510576487268173565147846212707096327244419574046177531077132282011193993268150964027077420203205693697680264442693523662274694617673028071368476991491239498916516867993773174952393077218959831953051705039914399652638031647280607604876708230140386613863956452836279649844133246771301513080156586911065516760094744859656222553453276646888362920202840794252557570600898610837993691342226854334626171057404461368161028198647910434638040063765142467009119447616924827515071922577925714627788480131904158439870164907215526850174340630375695189600200326193067664915207959135669172833276841322784384738062395899618487134813986672621288498121474726945326726465558295692536136495209533801266606296577914309879964656091744814567096567454050674662909947065503703016038778824410803342000345526913340210379158252764655164739610508461590498033629001242874138801281034485998004129653275937675692558608642619132167208222969181974019792267728129398856731324377820473631309360810049996517488294866298016235364236222574799448488827439793747047127190042523531766353709376254587947688700655722678968631077701165843231811574397839786963833268052526316755182843933702537202516585648619247862561100763906168429115917775387833713460684638140405520255347377132733152261975935866042177473738199123351947771168874081083238502679253222463707849832173394528054852532385628232746532924378082751431399488387689005175614806041488941466897621684406059092410523559828528824693084571038346635895826925195183652947697271423172717416371302084777205720038163330509194161712794651079047948035360795521998449432191654622490884031051752289891983666369883508447337982774918269096149600810723121320651244876104613438993736214044603755100266690137621927354855732896563708088039598079936103704534214234436399301095801280378828536671155594516968845281211881330448614161542853035831942418734374391514903444609513502626834140868248437124547889068258164679044647396111399358036872336472903473870865409148302562301126275004477336109417146919286828275653722115369964956882769532467049671917112167795928239492924787335554320827145798639257387332576955363952343696646544537982536251389640488975443006900069285598578833552963974341684797579933609060929329751039831773728940728678757004654321898437125973566014917319087091603195590133963642438809923801790579932191076081183986646431912786457787631019419985631730530491868634307325440635261574638782782086147242300937110789489209309190301442057447517948349306541316732501557936097840303038945054092276207375060002970914282268821627115075319816599355888039872768243183954869144887064073406588500498064590636531308906122473743852367666107099084235134453661043833953418233160526961247486339036773818518349880146493715297057600921210144026771204177729632628624318373194163700315257229667950815172905031612676939695749974690266155051776490399937498932485469962906042653104587705010653700510416404857499910611491916066066482917059622068525526287816859958179084004710376261501124192232639067010135250392567133182814117934820263477203569798045404922474874614907875563634640170609985277784263103354763898450084084856566014699878393063237523485739618788602581157211211254043708380853911457986049563902618786321620991981721761955562365916409225386471561888652278006293609704007550811447313474860410750081451720529875869349046030784562990169761437140321553488189494333497968198592824797530701396033295170670595301317568036672400988177680296804415082823365318502279645098428742618141550266773742528749884116121073359850546289335795505431113600438803738269659414445827974700507717509179665989581962149760843519952650781427278837155025419566088349630936903743518515887730546319439237878844084994304964900503016568482711504418845457211890418474616283338466881265979888247298606485284484947989631670061381398396952521093041517219570650088454058884220642020950905385916837980192970104923571509380547471055417886285194741644084091242556519337543730923844948457368513013696193250433322605559573174411554504458773902593935940547528783231821617705771627542427947164963294723566895338652993460226178006180474335901002394549881480952048222891464375834964280728484142331895116715118904735221161869306102619674817515002841330246533773419027615285319708607705263638958050354312744602657574175788043579220390331418986778862365946023837501587559693753725470916149405028436367816946510858556775931320154721953744205308464498468805224735662912708010310592574874277849027231993541135591454380406338173786006953939741097734165788238768265648628206075167084125710092782394366592647102655034134445592933998311353330988879490224208720934843140417884009775997056458719863220011306429207736260592107126676318483304126639055934066734669120565525471335201904750112995809066224752153947220938771932649766341849539127492949633896359901940431595619093863879324042538209909656847144555359159897518609828086746412474354182422778170716843863165385706190069651113167989102609543009867387157658947311056434921764008056387408794170987095857473535496033142515317030731834931458943602707417535551736857893329410989929819020251451933813095693232227663151375635291571475101299579414458414225418243608379178643775089155001067912253537232649168380143620308044878201190138444108219437090362893895168472666920992508388691952430070707253766344649823196595743655566050823611896279083606221019071147372858924725959026532590512175154213700590718103150040862752101938079335460672232212340184353805350271145144549650377766231680178999573630668148623577593750574335404761506230308168787992270329353224374606243287554540288610347819515656380585899123807756830175748110258678671552479099645325574742518177980377594051445256690627002093453967433779808861439215686127853071276714256461979192301514004604783191205911254264248234427397918521921204265210281738248212124815979845874035653909757469129978155764011182880318695241570853256833309162954251129102642197902577147862849041939684597897547954850236448848926027060690620357221863057680282857910509749896729050713584044699211872575435488493463494820704702528718309937342483812930356594110238225120166077496845992351625819868496081096310124456135447736178093026240609351010135186139251577163991839315846610113506190628599657315142221871594817375270922281699614772308171140304102971386068397076910915992713235966349824200433170806487195923614524384646756679270046363869329677831277084538344812876955750562231982054209292039761277588679376838872489594613544002025922936893220726026486207872966230746143683664287153875313893198170454167793749777826555972343544575279231497707986561289194677185923936063076404900665553742198895378317801039296215277367470261780674376419726773690851901423286833176194286173417177922811407681530668790783208026259651682808002314169718467446677190856820278487629489263489243999682596339555217951676840559744430696256556120987289047483404814111494295002799976705111560423954165317270344387121612436627670849840700307506369244806556175809709148532487007087731713536223411797812886252354425115532330723467698241534244524159757986032882533888875231974539763316340712504121215604569391001411085871463328508514926559091715787204842781817349899419206703137179324643315702678022001138961496754686001593378247323044035714478310951665289608097074145514927216217762526625801957670957790761657071065134018193463465120862694963497673012490616978940801890882681336814450802314184902505183043155791347495454087942095270629843037658653184573892385719742215396755868846591432149936546859755218699958121859628625772187628236308175556910255331735095307624406578089439052656610066960230384744442452333096094251391889481489924741245595314245012746705746163268230888856792116528689260246380132554656105189364430701677795233972945428205025535413191304494447213967315157765100187827769997769802939933484411558960475343800930882869583896922851873163206483547570138141279678237701696538411585370648400405120283197054806414404059657361901913586052962675268300874371489603893102133626798890721945354807680890946261493272568007558414109407529946143649789675345177261084555041094240118928693543762532111593412793019965435347523372260527867117630561550026507224169218968569678799267413952632403080542250110443806379023309729983764510448600483315437768058780023521487690723309533065437647249076475338789698515324580911931285667873427502622892275257236357534489021819021679056257735422215403612517749577160393584483679143604708730058286386500657710978239592827586008484953751704398653212043793022079086637016373929086850618657609119349515665469483982479763031938671580156067082588165733254063650552331295286619166775166555827401242998560149806110591145867625618293512913074160876702818337856119534174950695150332432365032752277366224969443656400991563256500172030486968435619722254513614917491972669507261599324848545203097461141700729224773771614997696660028593014527127891863162416683635879685664968071168958075534618550038894495164385906236208681313157135766868548459707013656216735983051848131791399954968662427755812850339913146642845681461772171635473190816014054219348174303756755989000475271336840662557037365178695499945122749179707566655899583859195071872039226055125640532229775231390955268899658566327140587622006885098720278810869313536508326159814156479048053638065944343715739271124786535279055274848637289952245981717741899857100485376893080520098492466141184827338997862850317914697662582466296800037066600746142651480594858612030444525007090126393464903614866834894512600301373229486322173019637213315108699501928160796396228982934504655452776048643311650840394793291347397613404859261991767646182571543702433521058533460710895337145936222276835155063439799311513343845835577354520478466838217553692905725818699798837903523760738738654086179329620814419746280679145516762876830534571731393393855751872539246876770861900367956861152537222691666206405020763930440616967905776240252282619224521570012867868289900183316859274528705695095889495027472270732334446760146577052777765654219744550225090016210646218843308189890423371901670240185531095645240004740247349065913227185203029053773268292526998202479646360687057641406464351057773740988663352686732559914771789946354773521520670691887173779189876782481947128179777148143984113838047194441079181028783830752741931862531578360841941187995005813128975853566959018715240392640468310086254318137300527344403440478616367035938266354917154577504778206199274573733672249802374169170484542455276431753579251604347023369863281410715004205861324368360609805167747263839256758967751264944423412024559530727948580612393329140334012857792171033471861967827133672419018231630203716069959076017415708775945361421013980092077423402597361780395203146094965149649325351015580490079322394179791722075924205694558186153325927334561192454221555166210362648357451931580359058394828757086712967220576583958676207803039866318146064017445763222562522640937810381277818674319654187595612644722941585565148185153549631026295414231066120118274514393990330893066364949102674637397958419949132331952800570493237678522079741019115311865998182330150260274395191577015124549776742013845236226968619376459862219868023808565322637148801875064471357275199695180783625139258920639936028965717274549055035926238877090220478297902605440882134191481410609447642224240333339857785518988514017325387612517811193987343431771014337051628004691583755872064939042649806565242691881242877576789111405946401154316413997582012189259344146373223586475384024425013554323827553418704842856722402038885126136070426719876131278828755400722845967705732435607860274964358935717669767461935227881928194851350610138767772006636297780170838570634963318588350177830178472071091037847843801148778398923429083019842017244773112665084560206245878602064368645664749846788466218753305498242041821675061962815249588666528841142118814712121163557909261468524835835879339846326451016840459786415676218977300629777961964104672547101401262241076028296643438658255682400621939457834187389771216613429489678465396274723526543562127047483104137450159838019850846374204669338033889417490039978183085585597107763072285630064608186340667524531955463672293722010264682083311567186204138650983748745510586141271405253612737240286869453833098745517894715862828742682211881655932777985264419303150068282647844785984971179893337769515418172222815654604794360553262863999607782843328340577496643263039295973408447204926655848624486344194294446375335782065703635094979610275060371239965815439710832618904627226588936398193427377228482643914510852742403457220319115127545443653839194005219545602088118422693050013647315880580629265257540534133043219189948028201122808567181046887543701894908917032612027811774855282029839096939984952470212075552137705941778905659825700777751746044327790712621477438177597475993396896685438511159981809042340217238782608578787661434732070456212342957752190256855264487527615891195442788055523718545046059034934152694869310251616823337397974796194033190877273845879937885332155564476095465799887232486985307869699219125740968243938505619349941629097196148234150236059287989462283697617386919104163574834376886762228822832457247433014343152635271197047819516935120855607729306342514444228801486069599428303826019506350393328960675233831873695972494334011648931610860155862831403768093826614695754225689698879270898254255354310984903416605209187225900945381382465090317168642416742985008050077169024733295069085786192802215980344698667315192511603326144729236467022759727727460669215313282791863781748723288452568033484297916947623499912059415585051363419380475939175429679561253891366444384167286609238077541979270613308597342746886149671503514950832129796488315582996707681327167626434714879571212624986715119171076243594816810811560818727395689761505100741614801365762632499991708120982044622264495658782536993596918332234123437420320346778264452547657119739338632589597641237098713833392118047240861747565673106628268005940079282653517782434633754306408924322258696155236695625551532045666201340984046921420151524095237368819417193538216706721489724803064502123771409787723589815801550552148096445451123353713924369100743032347319819784841762808223215376249265643451715671607432913020803284133900278210765641242357578730406402800764551659657694347299899418899645020516508530532236577482780379090941834706287933632963508413472441074133221349611167885231622764997701908921645588840576448609376206283188471758662379700394405870502323657350575620269736939183239592653594900845167466905769169189337016495628682864609511353204043152139874353901757025965947641243019567473918876009451695527250292161390044369986447475638589445660457109543433893671150219871580800036151750343476417949397059142372330345110489723732335435842648678181947937502727986550221681836530448120804012192716064487827812400773933445020812619773859743900784400441656919993758038350544305755402098176942616473105517264620291958389433648284869494994889245811777329994724057257780484419265694110972480644561078684359966436440046089457172510479189855066541259960429698720056867564263421419248749148855124516910556863776860642514751134463858388065560065013692953676711815153889485341322383308513530725090001487590883357915824744381021726424885340108787411972167642860872207754568342326645526073680951059566972163022809782978951798272860005059148779899965590846798438474933306094843199349507295623952839537343303426308980372527097420203661364739325543397710474125366718713864067787786288543497935067572809160236341432277574106990703315731050331512186575156311438749626966304162851876078665888942668902144760075592445999877500580879611028561563713329326228651681082324299502902974289978742194401793027696771440741244321167507594340740719583463022098101877879951500912669231543062933826586133175433501576075223179995172403224827811715182464400716448153594538613996364499112453264942874940772886877757579653888624439216943563122580789160275597408836780492530490054860916401483587409070610509756701987695048061700386126499338611914841332182859363720821745720632587982089895309173533951192632915446679153940369654307255529958428122759442594640074326077279889176790320421025741752083863290314824653120814964659148693267722629232305639425169704867114871899811995735206053101068357679906577899970272424431970713655548796624223072916823215856041608578506791217095443362469751315427194417929275296548597986370114247108499348939756220263642789116280684225928068910386628414374405907598581786613044040808181989011598197482513208603766099327947275787132511065619193139061553569464782689294874945560741829583492626825941642084339341618510493784913439122333993348363115816192684926720032064740427272119764426322937835685996964100013449010648316366409922282189236867846898684071676794169111888421360001296907496830318186682450512803423316720753004839673180624406551957699865869954911338274646241109069721372578928550305176567153810749253924475732553596348330933806953574698119861160025269295213043315323435590094684674807844961561725848581406349277239486331359627185879238020069807366048901403471279781887684495260913454499996925801873803503635347284834211417107978136268980977173315174581617864795437354743348152237035958357020808266274792434973019796701224983336555343911874928877684286433754833300884562915394664680884259698304636788706334902729828095659701016603967261121720512220223149101189453216221492220141774952683036357052231690685319111726761389109582650258197159977255590440806835768776898533866780888896877011799394347248123129576409949564784402785052496893250388065835017739414242518047617218440871779501999939182324230802708343326130792940279722447423251681495182709898404736129681224162976209020077041249633121495506949732076340254801502889036997473596849138400761483199259229141481043449559155711938283019737225391508024404953126384660124719874237149110874972347497916462898819346809068734956102869204548390421565118110742233860865221768230193876045048047170136647533807219272921947622392300160442067327022106219076398711489822824315394367063339076793565648606652750803827254704489954412570245527039455141339011923821064431565319576260763237997585903313877102820606543361716868204632012422221751920509910838236961440301231489341060840608023481453858663659564193142559073796596536679602505503412658389476046227365097313551400431613808373001020204049501928657501839423518242842709693704699757084330168326391435454061042077933977012762399078292261720732734049065132832925156843152491555181732428751868507877386637676507993435390152098173091790816363192802437940711194026345062332979378101783549430942624060418737427751298815671791460366110371972533849949348429750127327209715162729908289870175350722182130623326806987373628438958781955337305198088712539909568200623904226265822510203640201430589899011735312528783983631195063658456732008291030666706961719419404025756064535840315070021791219972371013439369568910212020024676466738585862036264543185512906634186826215714343554857995453679595326443113160419879143458588450762777834525682719495801409578468046759141817210828429794747694481679945915794881382675567952544985822433301222090585288647200066083690154163511439477557450268158006451707356396446002713619570867838833192484195663953483281455869704415416563166272752463775903172909423890087069137531550195548643331468573155651723947146969467182978593525185677291299465307156497419045978811984125579521078392630100531306478494657055050367687943629714595964492768999566120079228094674748417147451993370179950083017810906017442441451638915675562791105527231921661791165780316660078903918231514006843171869766049943752060097862696503993163627282011209444594477786316576522930127773074019170885119619990932837982808114789950317950541666099034055798526202708274705803668580343647920260348183672776390652498748563271876297727971519347902351368705293384892322581421587375854091270975854255355747873949319348192640798787691478150348679926130424642098473309009786560698769019187242964376666762007068385288249950604523139543623809110735185624006047027064382778128968713442110605626511125940621896192507306884765148999666301203535705923620786135485326077113788084542792912736313011940805767399181061972086082308584718770897486543955880198129612439948361820612003006817912245617180790130720996820876116479816571071788727846400732542318492866213985510825487896882090514865178265879185677128770840192238326321326759686342050948069810898689187857226107553310487462953219346075714434092737681757373256383168325261695314035159774815447338840184848865994284367136704618692271371498961706822822092010305583260351918972732866046056743889203581791716964793792028368146885359202664764371915054013523537799044007155662401604455384641111620365420623085304614234852081832954803094988630321053498788062946208262453077515233361013113533105394253976094985065440850465472316525972990509939665432778383359405216246732628254111873322816203327088189998966298511463178011713005454908803417288557200926056031607953676530701101661062468418477070080816057447790014531172638884806149173153637751468711089168616809604141734216622840706124770485378263269644608363233627996401838534951643630724194758409285323216669602784189832197351745892090956455602006034085809691083442224369606758906728166117303991594696686765922504709051870223415419078775604671930760884067429119029283228271482613641563470979038848279534259560384874337023144740349513995816415058596544519492459869372856803934592724331127882326127636256469465983584918871278873277502233094898914727024841308922085565322562324951047392530844101066654448113102931081091525673427338454118994861621637994044756529478564620902776863707381032755152274616855909734615615291530311009942496076327530660730003493030471765873967494633769760715180415837152755703864088681754483563794493155024557327967387675463876225904749464907815779924439750251946222556781002459835012289176352973471300286247685929979924383060558642856000839591321362209752331688239001396588006125767241519088910616249545581621992085459297987819221576839540623185167863389198163783272083924079482695847942024887700098363871032040969168562808507997596544446696574797988740934686198534293710179605839456200345746731355115123666952684336984643500260597709567256281763853208874477810454294031660310753245167026974850549706526210453242960642833592964351953156522151051196877277634743550495153979188196879166914219009330217859789601418394674737087364126046500350262797543257264733969232267902014881860626149519118391225764504969364359531879207157076254425578120420992369711477214818514310690324471231521264562889145759284488577916928000090141600826118673858536201143212328376201571189246563252212630725873156225747280570816908385510594049688269568440125916431115109179195028376953155483006548510600102756234780529066596895867940706057642347836611140812551534249636544342622069409568916361040135967030090677574585183695308433282468436185343682713676380460063585738452314748877792347937578967607570384770086563636702130531925215778551361986648096747063691277619953524007822778512466925374249470106315594477487419206522505305323703477463218548151894150293468832340291586177413942553102375598042138625984382176878918130212424381737789757175647164983138903130877980783884340045066478905882149360690677884253364359524967169209503590984430176474205328741292829378386033645746979735128013457234697175219525654362233835763140404674968612127401289512109985497408885253651887307647098258072183132878956587444389691107429749753756948432753648738742051402427034860997534003647470383685198550266249147501831779850295120627119765704523318949563988826202256516676810617777018958502678910953217854755013308832998313272249341577387897738333535339989827660432466153165552078536761884166723665411622399246625467389328105501096585297195437364941575514747929117477471714369270810041580529288135672223430938386493682813191557438931185230689682909615541032445970917918232811335172143966396569908204830092277625253220170946259117289840732331280693614015567264103018396086077386585966566222618913035586166761244929372354311223091522055211926577928973094974962082963741858895655646738411190131920402492016155320774651026161724199689445551073372107751806972564863939157975687877033739777970645698178139492806139920038495659933298464084841498125556349675590512363240475293625174820748270339899594039353135996627153132172051376948037739826270094934443607259322505779618736403488514564863451238879784658766240236600218183585998586607218629128543893490506463387407175321263916190760470609608001939690175299985964945788327809704455109066847053774400217960514955732852406620950711895099503321215035215566298149244903144606687948438682113272420714045898034407071730069394177471588037990494090524361349139866582651266309931874863864846914812305811898822180015883724428922871560270295323278797158755972531469503919705458320167282787994832588394426978970415608012121471386686629549931840881679657575995763411444743050177012416302910277400691899411238086478172932115166084531852160482584830317060980537783812267558655827375544136237806607153474946339320608002022979728523081139801216236372900358937764890670060922833459303072701527900880300363523441510411417340498466238118940696816665649568156167496240886539640423355980693552659904844776227507386166820943255586299308545372967782461560950100919632958082696134617707829020562437621300430857053966850342968606676061247682719988453929887434986630755797593764441708772349639904325129617782677750273601112318868249662558106615091046451367604964100415406663200409376445160297759873701997624652196960652746269863509207185210803737896699509131400686322126436222438852471141678691744343625039641628595044399360490801112599967271477670442714703879728771212878423855576359213139875311022463207236684986090000778554572405839828311730189394822264971540987639593559113236018521185896088071333743457752987318161737375307023873705109487453884487251717044979300694856910296667443897714897716062033385257313155012765015162775375466711944248733899546009390481451156176954417607500627063218534645662433112193693396531411295605002583640908515044983658926530867576352473312488807060273374682465018793210851856658055024013432723261558278426164115092059290970003985310933128403048621379664921402027369407959520515682086934557101816316149727662161075203216665635126022923168702381117954001279058896516677287826891813174695065379624035389337417987889935773321907848523405394319168100533725725522759316260402057263129720787697547537340270982488763908692584690775113655921781033836453365833536637588178921322255837577366513297494018578007352100576624309889105534525457864887827310658514658252889678556605662651937361328223198024725463442644866086546071205801989783937496204355429803281506291787771283375207341159169927249282352735242161267519202377257014202886173819230234708924127051235919200520199338659868973951674350945186097863983024094287847809529964451916392733998366934227925503030669921964965679995420888923033448729674523162214571409279522642967307260943959668803195758157241347931173087271420955109517626016072801452729875969360763685559153140375007261025060162614756300789741405968642018186485327081468273223721325340458411729055996448668009797765645199447195658162141085647033707544255626785541683470566655604977124691436485771508195308949675272778228412889242818419879193071567255432130381026921953087182640997746010523854338048739326232247871002530666877133550291264673737767305343442290082842988697424442706072288311888746826979335589527905909251132066488463465545767525524682978719933645814347610607874535082568849457473890481300576429658943461456656033791548925798769584744055990916486727386726106369225392795446169634434033386830491968229435490711476613772229144046760014701774906104158800181006415428396664029478685396968442341685664442746589479078904688266020723389085443827382379696223003515519730953258711496323803600434162553263001009757916140981625902853403047192132905157822029381711221884920136042520483612431794609081594850878296549325754323551153215269551932033868759969552396113286528189521007461780763507167213231928192882372340154971946422063456563681880547283280672377318116004801953970952481771825923683287477550760712364043420586164247816548610270114362927563008349905814192723144739844433973317181561984654023960529510457322070875659025794913796861394424007087106081204744951054674949181583956020300073088581897812362486383189766071348961224707327578647723681553186039354207916920219480265730967910862623414397071266715366822529209874667377510910693249091708946558544920829712960567589077243196401873936253957433054402852757978159526350086627077615009894364607255523067838285468742409828701249273528050162563756486554128923314182736671267876715617346492670670784155885057446771812648782689540133568553755160188145421397056912215294062436321934169872138629637599650525469181700384959528328869286973635322725798549313253666810491242777606463484330489036287474590467707519196869859116797181541334387725789251328800968496546952656571981993619429969906491322889804017306939180895801506882139370325975266564879093454985368319088502810921628799641634026224191630864909407289602038174338340311800870487267709580096655655114942799025988546658886803401029761124607412812472118298194339762376279623097632384461283247073011824790981803909032195124159698415132217996346982574202324193317776065904914342978037333991742907617165166215420289506040187340754536455866692343966148314215906603280647396453993611634184899159896783543011416125905007705156736713410739022207357936001658947615853213412756655643248175705598470399614280712457897172878021292579220535308775454751409661537846456507172876081425446973499457522357592131901448484300659160202235050090595257246926387515938266577457404588851538974190431577591079581356757436036081009368946061155351590970140575499739761293750405916699964697491645298274181030842688341525220672403405010375978425610050948934602098214448996769888485074105497928812120165582158424167695961419920745142856261489889604005856343717531581978991289735754710661286984591187147278571627893230850692294430982799289031772115460543482183925550336070771764439857176941309206197037271469445307316852579671130352208435460191301811777817031852256120475158684680586339612947460757778762127920724853874822328976349913248603013289254462851939044553299912761154230811492461854703279615797331212633269178192335115448831835011212054285873720395829976941048789735755060027462387234007268547543704722360875021979019026917445016888314616118175614549984084691897995513832038506875385345394528853842397819542111928355911424192922031278213007683307341610131186925389510937199782398993120054322790228965839292689935528755115807897965882720310688115096825442144055077398303461664667075722517117928350534955946972358860472049155118525782346129518751218066654232178671232444804943028790436023538694849015478009704085664948932294386569929550291376999960699678639268778162518047913796042192838342198256023836159523760007514457786981804587961358756281456985519841113991259162345160101697282124579155825976502677373387202505875963738432586583263477095013521573097347792223752579014487264688525460020150047830412091250476687312026103547338979822973395279255583243884666739632666472174809210757900065433945673238208979405146594554412422619178428727237750627195163467949861231308821015517987365313239819516866133732573767078183851557199059191221985473404269725557171057528323613206635287146190642253579973369443464454795849173921141619294249401236870978959094461386954737887733537754905830903896816100734173437784279956837763880833668519959935193012809837277314478621552930692090689003771156856053211943334995705073720942291074906560783009803309713662938562449647976317591453071272672154084903739922825441380378331416804065814763435886165413944648738679957019824507426817278912708621465299758284906942731524461319638709927634806004644459273160342646032098505351046070464011179790993616257693326178428562694234761277403421385335492952480462112741769185411771424933070393828250031053026766710513910791478374127340481307119144727422501058527740864147173745405756233818391991792717158139971476646831381366505038105790482261312017941210749952783731201906271097100916720480977944529581007918543509438917573593183378068676212743097848715063469462007891967149322607051035025220407633159659573353975499086788069154653496853355913365452787427091417574545515451669506681658052884875029509969675870533706108281027484077673689036212668675394889520067025157334351453413191801767416722582666605184548556377068987036158005176822567411238182925465350805740865787324961047905606958460831378809161947389538042555356467752960829549389744741714189450331655902497427642127431963145742044712316109453886856098973251144181388687508579464711060615546371428238114246479867275288017726236855113164151927712967414326346932780259814995250744044527198999101493321217800130184680720273320065614631037771781802553166516281810726257555193434385524836833025533460125012384006901214233127152239673913635324436315609242036344249635867878604389682888657563966333589071405266192146300758419271315460665451001630717480422709109470312625982405840010150206018837353860351612723677100533312191168887382247447096775116992844303518402377771865486087148974789911131063329757885258433670462634146345166526358162189936577506518878759349298723986823806806685887644962779875011990752476369106455549379558109776547782975820857143019024632130698980960370339847100302184501013058736948270873626466980994435184064212640317081026386800378789403467991069403266648309720054873512039712886139090853550062648792293803729187427723333261156839778050219825124641236531786862866244146810296945806720771692438688578459155429274582406906969158923421810857802616558953558101117830631827522582982606633360672311836741804073214405087271187539359502046889675291681687494120682506704936085659765544542922623649869094517231830561257654270743108022785197175989229914521726296791949101477289021359317389482341291039306480693636530143512497419270661760328955262080272888985161928056468075566816627792035455040007012488588836804218238438737116960027108292424067623354150414441538068379240925989117187960995756878851919384913408251854418133178199909289894704974870637145848690469602577788949912992056336293542011436070131666090012344167478928888693827638041238487443910252738443534131883887720802533876491168025862237712003960797338818581648316039119801226961709882704225062331733059973078061537268868452841226730502818704641152748023809845634507129868542495673729318049430768635594267919709860045802446837558144166775645453877874287973506841209264421053821281822884611972067618885242620383370877265965083274586550872549403428908147780155427283994399303367122815340772804836466607184122363390003118048689981082032805171186629692222976688361573809835702399673127549656890656161141222987079766731034899611219211379254715924652323033466933473241474144473276009278588019776968187276866181311269235540049291492273659573492852158889560276204167795345412433298995639357077469977983276321836588156163071511301209630014330708273641418764074884461830262065417958748904853853095498281353464671061749030652118143997751367254373440781076914493605237040437211076226361135214970067915460671933343118956899646700718516519552743243903933303762118209856086779326565744239234539194208868648084155688788430665249633044081835414536529369932976973078490671254056731343488869511036164204504053216299737355720577438682656204123597578573120576899425759893993351400026283823874269372298467904732856820596175670478830504287316599380193350050328510821279506359482859699908719543704641357110961034036708470829261880100965194963819972656768197147376917310366653429103919676560827046092748887966276228793499771781278244778923620291033791446626905672507172151908570126067962386886665055522300710927241633186446207146798646794697362830879804204185782576053820463568154215427368180501616046107370138272651518600023925678696416829269113978741346149475975857374323192241199406493755134403673732449985467892206705951735247269162803482010252290258165652358898602804118781776897350599086719219197473532462802477124481470281270333223539938974133204275470250383591197418874850498811983444563294939268398258195449340461299769640375551271497582486763054827593232908469671766049621265923448495456514952774077898634262578816849781958475595839534486334223405109077859302916311373011792072324654908247730406300895015539845671533551001990113726845224807731205792863317458942757220126588721458655794914484004459140298183532617977706014191002857530003005037254887948995299953168014795306351219394596526473757391470859997756955632381637287073274776577221901113756216214909806414559838603674076034541162069299116669653593862961939749339153384850483947150882509449928849632214463048371887706968029809541930593403871262782340886579640457350534736752533863328557428580784328255162587455537647520709933353813453492631061573874180849557073977239605683387883531448835146725028667794416300589392492410757907103592422179020358555428814912453553315123513494285283803204748952581176628122339177760703927229950902343383578436721586951386836563587392746971861610534888606213194452719450032718521116699305782584501668662421282347521033808405267365617883906570290534080397584101612945573265108337305309634796966552684310936959196322513414638155305039087454049610439012724212884941575141963762861653093854300318375134738831266058233294307713064285741112354913944417044444409382228089419176313403776078111415323892289389449834161140889581917464874726961288893430358108606306083823940255268319381497855504476249338635974030557015043466350217983649048142897480328065594684653996989633341224060178227312205573388062884625130347430754844156863428093051814262498206675393456167038132436529052008960252353283608433366213030710570534224896696058776588072266384995368034653526844943881501486639470155739979483067009758098421698175469047828901361505512771121313354341054475241482665401555811225789246335724884108532016571218790287488679762573917827991545354783596176160367416383835778798869050140743441634030090771550784540649762349303659710330233547270199835837123238632074984854620756796045423025533325468590321314049038528162014728864337236203741336080834918622949617307766000349914773912143619976728379426603705637999358408155579662207244659108514171793149483756332034485712629049965630130245218021254428656822232177569081744304922524324304622699087671607921730024874495463094282347587399781590805605598182839403620070284442524602474897203186781356029825148996572318148577660745451008693364718355759655086140441174323931042747680951125268254671999652738350375010278883288930683440513717165624192993554214449765097157060655637363828277228209344000800645703358715677033289670213945926853412955684332250909884309906461137574623544753761802324100832424485247551949103404297010703149768267377404177723202995977582558208366731278530350649596650674064522858493547959199777929558225203846342451215568245479039328011812620019638792506534519577036980567260235048467842452704517740580038609739580503531633693779780405934725120956173881520971674029410770050729341364721025145352193069990314627286285866027394383616885503489491241391571525323586772864812666070361477769156113721391558418880620633649389302000328788442775840198695504170832315409438623971399546221212712660980662119472729612881723952238891365943797161595528358762271492547378225578268276739314823174620980006708461442827877453828394301418741060395699330666988025541904085029749253888377955448630923295417176434327053305847685785212999360946649940416457451363247639832438498381016119114100416596495307550286178991375151884204127517562430557380187373834829380728091158456233574161201256081663659005671422619124874933846103279874497257693155708166343802920464611251153161652551742489178420347319669672141977620280803620362636892639592545088101349795954124722954825210481862246487880915110013247846094383365379062593255594079765171676742309693168906668695691724316789601023291710140469729246426036004676182199629268390738362267724797217823398213216292275739165670917250635596212879437455756519828968218395310570366983417045366532857000209160844636910029678602248205296981879402443410170052653714318334727604533163915868672268922501153308250538963088020630147554758284278793199201132730398944459541180906457155032294845230917345134218016463914451418583932605832004922773396472190963900779739961892648855275548763364136552673304432035602003770197308573738708976343259535013758678745816442365582120047028474141466964644740515687061856178398173345900358425737337926459285273983263703464711080684611036839652512732156348409944638662434832974437395095815633467870136906881747505291882802787184693888483808362522186853066953963502345057861322640727329713211971124227368628091225351352352299363148363711158098891925311326305646996466057310380779738534583063223333416889010798537179737825968256853614924285317692146618991410376294703414984707350987588828502678459716292071580483903100578485823771805828022043777326515754638269086458489776681778870045246876665161604906320199796584617684561014438261814617761501903021585930826433611156196789719441955830957469246771301682367825075377392316213059707847270931671434302456254534034528297329929464546247863237393633113723156455184363946759429825466874294247290953411759918728698430054266917826950178309601958162498668611483818595678429066997427581212356644207182295154346318482260547303485754351901844391477813399738804262227477584879869249853507253049307308571933329873264472199910447490265667646638712869839378043193696376771669949651167234017335472506471953278132184876299551139049930434461373009511328472827633934762238491134584907076089225829583119874233823114405354628768907713969875582108272159723575531359495646889846855483945535437995229042546289503779035483762590004286622281774879683063980970778149417063423313493382552386313464320281673363728006966247230703082975227416949615679938505347853447726795202641947695376686952108377110408176587235744668589486886501124353040160979622942764549470392121707036633462507769239902899566079077615533232221636091402029538509478923132135830572952077613410742846215466493558379449220186524403415496076107354867356111806241460151059738178418004461951217687987922515977135706420798630221938451719626547332156857818925021703413788111870096535022671174013337155003071037692580177394258593336001236616739152844737235302393076804929142274008804040196829887449208256127460738854724073281962975509590449833366764930517931064655494246529723650255887095203058384950479967990517556705828784023614253268346698142802810911847860576295169400196610859499121521565898449290546224847505003773025464512026355879783961217225322354381186004062001713347013072279523076167010193032540089157287554083299164437004794566105055799861662365334197479911585690709014243666164469683613370205090447110150840018822214072775496251105493617096503651244223889411469771749742406343258422830196441361222044322074797926773139061287870685446952125873684983183360098987917151255239240373966449993659269301065322030805113238997378314385719062394607488649003682737284295763713683775991949774508233263570087927327502982911832792929889656524899797397072786451907070557625896401964061939320759143827405305187712783726248881310323521292529850890473544014992600395793354479722683044207196578110065888870027823138345933236155338658104329460412748657753934083527059431263903924398226714558487262673463495753415459046840426302123297303726147257908696193579492798248010564152516633815928700982313628349553459570939732035892634261088296126263973591049129436904655174243331889951761124382946503855161037566974416880589597404317943106747420844858101579648131922955295927515899694431726426477206889757161119194443455802967536983509671201749245046915405435879616102545789949729974472245345937711393775586981547084166284569701117485618225500110714293642661532531712483627900458135019017898391946525374545049966560221393024269672132479228992266973739499019015306692978140305689950462921764446889412974902405214247693047777250355757921573475580723669999633194109967203987080347895423958573441469047096724396539276685650298700357248972708516182158301390644749357476660823593358932778332034494005559967201111633836920633644050276533013735322342809224414434987875931254940354222371310983461266680505729047037068351991613900736742256713650214839476617694929369451193546350395839575341269881610770643449606521004882929834693403189884799697930415048321195104628823197138007019373817544674261120917977414642970434313401394048676308577916226039152706702561205557183808675169147378973620297141387496358557757579343133316498909897566310524857361414463509280297416249748992699643928661111618656923085805310141406462123594029299047656616348949592678478397848860201267182550683937373804098460309262454065577654995409028910475226505958943595941563144152407780371177671765742843280743687377810680274014560456442713282118048314203908352491042757023959286234174200496003908586874836138202124503969031170643457613907875956651404847070594779326763047373218620649492763336133191282789770776643558852781111346289261311247942439870216517252171699708012733412956989415740510300275731156844072145989074992645347146246279168025157112348545812725465599513799188909723113545969460749958925749443886496519396824882368916646062023848567646202086268221028634586475743782311659429476208293325435678708128908608025189598798817600502420967081888301339364258201761540802230533754009914670497082663393350454598416943976822233559980000011743849662490695926890854419330088520607228046388757309751512902638115296641288146746942549866271622492316218893971521982820186150164578992362205495396019129317198831856919615233212121346254889030804406018393848259952579366328725881296624690357134756639495591263105061142144533928528261096524175966788548197202247382847912067740430713436938386166267518836779584556641105572666083662812842376769299464467182094859907035329313885153233316175756451055115590583967180191651685104345125578048673875308128776757212208608136554646904156936172037734403601341488712219339270585905838780628570676233604679738355317159931963120557531345364986990121669209036469171762230152287354633535388666755498497774567377278688955046090950221248194342143491284303033156839934831561491831703405739307271775060899427518881369747426338161588790563551457574691841279557871707302164693124899199987041804408713455914654697900855675151049323121327594245273833341130121259123874617583427148630047358155743685659703511404500304373269997956701580154798059699861868580352623454810738259795281617211109990429083917806326529904132837867324194182188739378106753359620021155328914344119868405881981065880878245990197478660158555278774162260435249454663895799989357082233470188788113271988901998029485562649236114013331014300482754392688972454822169010206657192583881755454462341442248903179718476265148673691820805296627658668677741014702232882439224535921964218645001398363180530144732968914764252199862188796123633941584659296582990461425288513521684574337550583327936749079140117893797402907435503448723127076185589648146359062461898803239997922869961052329238138657825317492849273382536440091697017591005091436223303641858331145043898170510289794226046310350995662832034462500887436874289727773702935426376679148887825444156666827582058229999470409254473711854531715055179859721355478311738888719781153590151544661186136001385132722641582665252789512041632866221229043310861544586926417822747988276476765539434264137266228908682335607431102941053761175874787297876103735222575676984623621052384807971554700282916357735678259709133056345380374859962917477646307545484809690235164584648972767246485127966673481427396409080132597478176867191866318053440433987855472975005066741536317019992216059953162928817334009217185977898651606531683897191137531966035521776421316089936894679519383785153951997953904430199842947091713200834172519592825632181600860958051668485019205917188927476901133927066319461645449420436639438422000567839797425161740320031705252861302099737098466656953995814573816575713707907797736586144768006763479096443791856293197695568250530040014695359673205473011194502656004026128089037020169193848065824601557762279360045493965198638351241249962829168031437768194584653530962423652736228440415881798430951976743218333659608840971374859814849778893996941962387574847964408004284778468769002049815181630315098354442991454489826330132277485269963406957234771355200614091389576795255373554617501656293275975580225468621576566918803696518184748834785521261074542997413628664704106302715630850300269491106952528924062497430332157522697300131813075521546649528915250362081217766696037150946118394554206668072151778149947169070428449342351451094179934987307875551390865848525843910114843761223492736536622420443841953977557894025867699371410401150965543713799061028549759491545637167769315874473664859863631096371924008770241357319330592341363080794468243267962672897909841371405851067272379842495517901189240469150200521259659975339704496804847114803023910919366295843060674494329444219476049703366246188781632062098150767109132649830175891907919217733985225733140494125654226767818553560533027344942542037079203510309602526051468087738539423230121244879103387529595204254267053742081002001488049913233132747615335758228687187644451571676124360936950123994605549323127975344890540258748365691188334060733154783915646461256624334194284114445127137940992456147183122376201692364325498163068678629505745925188706609832242529113197989980460710941521669379746377898835434272003539047120998779895469680755658356253586808598672230283097113752554780092038371873743800806848356143556776580918163520530549849492103040653159724970221937029358670137497722469146249384504636444816609878266099966435660551863033050404760353675590265251793218972822758397036465850220746494704727469717178297414191894889984202406090047885012665069559533559181077713518610510971635858779766772873587246507232659173909475617259130256155509047775401727735011229341617940034682516068537351873707916782804457401178739609354741160154224807934711112004306967723165134086599308190805110172984830112254620164053880738099682416636985471914733302245803580774403598510665224006612580052960469240864621008543830402324190286830907222386276546542998392237009682971413799741201053932321949958583861289489059742641970610611024857030218571784485204882124776304481262942352905488252651580524413484210308732534658739232375521301667186877231132850892369807833570099798081737837657477450411058132894830490222383164413630832365037076115004890757350877159591094887521115741726660795964931276350566431745712264025256027807066690183098463258481808786987026305867518299320401416141275599704607230591692951581698980344436367702874017883940521313619769389206380797212602203971110141018065603430061344757084300247978515731808943840168943435584395445958944090528186960481441479541682847978720302510035925781277305421989393911590782653094360617638187032034081428014938345915990411769582989272168169812452928866616150267953652136891339655229613737873720108487891584673207600100471061094751345386475744758773213403652109746327910757446187338491503889180435002945871376977000700872968286035449689996635214196399796987766203991163727511473393433772083112501195804902202435807965415731731927827888380915594570465610112672442084044447833809522857499688237430342274763835813343853135994494298758642117708581465958530179839928495503360069224299551189141839312940546346774142206996841186729005536564403956547166630403340447722253634225576820292099792147834685457155149884833666682738718895249237943393527979387449082099044638279984989001694508823575816095844884335380432999699491133920420378651957457581620115652166504524727523178983659754648812110704399628611429497140617067371539334623721431223357010040834445672719534574154952328665910528004954576794829817958754874905474450511769909267110623378074586454118056009296645343263573362093076075203059796852441808709125416635636253813514945871556044581633099972774302700407957389580414092382394041714834161751067503218168952180025741331032276203596019634888303344669541893274581152136396986725077677290490059234961014109559853655935269944369884669546910894069071088282468928327055425146579962094187681442264674510366125808210611576693150821977580879777769570583485433082547672905110390665104312950844251281826868522276730669453991438011919606442985894920555905007882976013756371610071247438120674198601566092117453078359174947992060727198795818879940617176433295722409534935658229843453839103379900260181503789302817218485189182938854336632176487365128051531578906071216957820034402727014944213139113525412409813870243552112753163334505329092026864569703118631583982167281881626476142977003461412016616924511344874378079112617327965447925026936516487865276898162862342381128266889108989019376355336549997593876376738684444479188494616621747550920713480811587806528934131504214132817467325116338271631464143930581080725950899582942208616656493264056358217968025076888847153154948179228522819165675204687665003538625155742431753209973030744397786100332522793982826015966853722919746001259908768649649722577526473537926300948161408997655898593380318785324227555200371967681534128631807880462772170044582887433795238231103194981143036969510522886429170410991854218877851858800822975626914474337617214606260393838782022418850147624441286072093749365282648935693196088619245735799320391634870102820503063695146711008666144501108330682495849369884469162134291036204356432056456452815327178564871874953052767623682914450588445018132922828604684485042673905665540193933540126266890892684038251454075957464131542345542063469857072074801470883106626365106267198110749965193109095155540141914064848199238361166079069359252342315566320055723829283006233740036337328901888397983328041056118458140414818392900216387117154566479509552002974752482042553419253833891015923402816599708635532441457190630915030414206500418407703978371487018428373768494851494963759323003448638565997525843401889884539268792492577953172601432608153544640831330568773135077467705529504998376095028764863246418118411789588761836964400741269576809601936331642471409539429480638802907714234022613747126855470823383725779563533421315868154023578965677434511244511968617880572353766459711481021633497872341147323292754757686315237660505885278042609483978013770186097435784615064907567443588038373863684083239097508113758097425813101801572397799143912819451176569793742718780694157118108905708187732936820553525932455701643603556764262130262758187586797226433886746230980090049056808086805399195613344187647929502767103350912432664013592928852095091620040788274593845548482095580345998370470290300485089542414629701673178234342761029848208061279130004690545820066840747647078190584334833364261350055679782332572654165881836370801817316118921318709315134155952717551528284559980393327852784473946433913848532164677168707835689419454104210552842952158879243242448604348519794692859122952999343689600291354797622011586176291227422847195915233971891493304234320729176867070836195470715352525782569893129678425604630689510978347844895370424931625107822043488513004418590892093582765374146091509399424814147056574333752983607887883547421508200205755272610048330422242294233408492733602029504991177005754681508235246643120591489393972466695035323919531344324595176243797880122208152871914234718717790050565950255316156751340793695474183541411574646581073868688243665399414285853693255044535198571726420012808077382181965140520246465452921811215478347838854628130453871164376593058374811349820539174710127824385682032717473543567331376100331081905387643072908478402827033411654519167385565816943214663965419648749762094323873246197212973397789249622934592773377073688711371063296819848493454151884246981968846632604105094088960194504781332048723783015561878963458415710867001197414010678593887594951159321615399528241997272046559336604255710390294868107233638253229210042374800356367897320772113951315106455336324488814944075361465670009411795298297462675407630733557510770487320342828164112497578491337467502495894364305186086639951032471758813729259760887569902720529357804176823174659591010673012229772686449174599568949407586482077244870828655281732992515400430127549174427104274362781241276231149304655857673621708243236583868279066505704615542916020334482074824744534793834412579178746456101767760325955395638256065068040459513996352166490485451235189066994523473954884985567653030003695852301551507651296714707349379571221569417977921072999703500891537331286850697430365158330705278556481088127911942176659876010787307863081203343326200019596302615498012245060982427492909163752487422590063532163935180060005291749467497716920911514330543509857009063520913878143279735345493029389598154084152854890485794188606102821979091006268065647524317091557073296751714792151351916718523849145364020225695645430367235789643286646626663234604259519192935897497132467737881267695417804333328182497997146876710777927055831404853024746278917202460203556790684623640159963188530517360517378357585975767440494620251892915342945811125763054126002223851457479982236436540404272330494687912048535754876096968471880537888652789092400580405237365305061159523130745173760565730205394240241002857769742258914261157058815049975677723718216960389377184328300538390541966871307602300084836162589833564906603868527923903525858805045677287733170240504143796542109434928396952408845153461302157883957321127201384123210662785663755373371226794438683723803010188899450900552550609051623358915858404558163916343815312740374133609436127453106351344039950753551282431823485085829164177784607894733708634210063688053635233265153126536296841151371908531267807326491189053911710836039690963145674748110962501979548924658037780939843103024666037763503612559309357253115927002918078384811858390743862571379492276468310226578625848312283487947809119828958164476068200808789380188387607791933125341792929436738862853652962818065117353890550326360466496258887063694215721919984513546046263141196872874014535133878597631663969859947186705491438612633380862030821629451122515407711860876692183160267854951908328491104619831266859475236174814525815904605806535184280117482848925083715173934676734792017861414015155634765924466626696268337256627150397815080227337115089909386301663744916741983983106687322314920304640839845414148178617636930948814131329531724473285461707873424043360242069825491943376645306692051786460195067642041349293217569022326085035368032126005287214176335785703921033522207330165137035904550245031930935276488210118262015370546789084116060620222063249857942019108816120430876199118378385360785941352904941425607844465571167569064951454690781140010007401069135264984176231928540654075348948893526764749019906162365181502364094094488591958403381222777337941258805331082299395460240578356507876366872593750037562516884096056983027047453723947536271266128136008999631223290051248511034890984359645183127247039611336460101717787847347800755576307477639526695930404146372639255413602555140440718624374713664102009150296005123864069317263866391456456036005992265564713573563236414969091284705278685287195855125837419903541029986488855483071828005922292863939666703599150092303785212471637143344809937181306540978880541940933579751279259377917726552324734009257562816367671309133750541266817641214077312242995249474190879694900168364777741836919449213254472027184529653511818331262719742696321285283954719613368762438489380121045824691067186039899638468994793829440844185495224100939931517021840508725391774230756955322762048367247705696824443703372337116417195500120313568906748313203600505456934152168406843005352921234520355650866704693961857007294951309621560889302137859046864697004416684291669378159412687085494093873483094371304681404737923846996005297893678180089593157813413322924410244573407342168396414499619420892939748845237980551143575126579834134590948099781064004700149012996281282120820398312633210250009547933690416185555080798396998310735306724444616977536353250489126201380533894952256462311159120678120143414759029192032439398354878575239398106558703600595313873926289838209415211532180847088348489724392699872153386947667724457415610204749536893409157615944031942757886247222051010770405806897965995397331547151922807779906261211803574456251737117560687897044849589545894745276704398349279268181852453049596164973185285032228259508029417868138074783589028823208126533565790569999846920160009060219294546876275253843549317426114750897873707993250761457323647915661527065192482723022822082085681267939791673509517499313796368638433149768348860566121200823140419726519343418361967685607288102998044485535202602099257782706914546124526252103142419407586306549250872567511302892916802675043613368358446384081264223800061052294154403006109137601842172019507075914822020084214430357174394988340885607684190680575646511731450647932428556612423098849322657244206103896764407515778486214880958820417848755320246190783790584936897765336093185138260109006280777655856127392248796393569951157934780683168242100324824534816506079440704926261026717455395677491838227235734411572299989919472716374510558239124679526446831397567234757497292909266204736903953702076102834375573662396543156149968059603000974385362310082139436726554477624505768570713542212814585165409519115047372135336570447878500515131089706438637490007508179804414057888906002710240314167108208517986555404704713730799237525895857440309988647681286863222320959030064117859451442027492014992936431643872403778472829066095257698729665136859094918710804489152628797132937086612008728605975213361172809542427540043812087510366801626616182256696285788465066198177858627097273664233603261756379793850247513790331942858693452024652615538365620586989787400665236177926450000605134733743071175539314527367924513038785411294113149509562797816093432084558490252341300536303942311180215123566068484739616758819495821214829087384035903469013032441976390791417163254155632958983896661726788288983807805878157487614708490144015442899915636806010053717964588384103347170152882816677770788805573232947060143231092838048180693597099746639579249305814784322674023085456731143398322976048334946481600891928426871789377412601687483108489830585524392025425458164314717312819103215691598930519000481183779261468601795224804693321047051435478112613278383077697976408163056411404168218626029586256975786528494691926138888590110884088384775877755414658634504143898852723753003340391383194118710635910833475695980113446195297276125843803195360667407879943344404050815818524627964428417375707488241815207080921966288922473604366935005077026047336118729811955768157238287731333306867694966357421784725806166712092954568952610560073408308366571902449944501003772427621120249945707638092985899928195656091063047758638552993540695000519519846420624372412849327007006900175348672708366716253435246365035127677646667629724950190107099125382533041865204204424380863352672626044962247266386490644035689090317135157425155168000446362206801353711769269337163345014938033626949178912766919873689711361121570449465205569171873308460051332915938828034515875535518068287420090513723654582851813449964965851880825154272849083205732370816400523738141229902902198510462397518708194610672842510051311078282598030535899967176143016315724501986475229069325116268455828969326849495527784993329476911444498875738273950274176406247234822637935360382976251535337916013866128896377618487172662845430372338616850969470898483460377049388621094733483703013782911625550913681109583419532070390776150648717616846021843773019409814062184831246647448056127483516832883006159204342073361876692609331247297858366337082198606302640031744879263423260401212963376559378511374444214680773669728374618914226185395586867884393571498418229810228606651430487435704781261695811442118193402374166493811740094358549763313101435174045558515334219287416527759678558378723228653420026517594190592747016559839298642209377533897018642912721305518293206730665541168146270156087957374444341114958381122150339751912197304697302315906310692204862862232683272275319594090049409951114761188821699839740333435034783705424226360605287666897116911870980987938443133601268352664257442666655990064712029602068880958670982568220017830649876317436130124315229650426928501117368260189613547556817989071775650662105775905796989188182500512484225194860986272042511334000427098007297491704332773790162619198815424147225311154350792404450787425292170963420388231080963144029913374909140060980813293519523501394442385804920052803875027968705748187080577053655377230700397185934111370453290559336988598640181465691779028186946014334555959292754659822653462651337100048901733850348402165206448739982394068395331207855184939119371478323369594881293611736955928960779316792698197707926232220462268091509712936761365972748652206880500759017265037228292186891476921174090939673162379040122199772676151794461355398403273801601096037339697835031760768618301507062452186478673863645445848670577412655748629713900234222077824579650409585908827170583777861662330805459910294071418669309758426097327765458152710841982663473693827886366511570707418257786328404835293125501027807184741242763563538213524396740353770652983090767995897297209579024205047800414349762519054033121005665127727845444633997449347470416570815620282516698617133180540632713833820271772660798478324590124035646367650011562481308210550269115386952745135718312885242168365734562165787657146422384565781197610021600151074619265781996786421496133447749343909298501943616749740448745387618339359375035972434000013993240145834525880610875671639843894021951904170034824962462796886413165722509091188379476393692298720042505900153598070186310737369976966024896585238036989355745532162582786787621503129314886443919699252576796362760345516395416401212637104500288592085872558565665082405801152135569303979978373533511403283457056757441383829090759471390171696543303450854403296321320091011915755154131752941022465028464160751469162607696357197801103325143506374626099025484160890656496370840929521084801886117257049369139430143368960179107190158267867229794402642713181105560875392771685691890947207637957766326023795860728083196461897070276669902288753029717116285997072287728609343912126989958586464352325164195808436193081142136138744078352178546364847698862380640386066730294117345893804745943897206733338116135281666448607632585547275191933470631680483233703998583835108372850844057270105117677385969095933919793357546628947695279477518257649841005867980374319471670399213611374219820606332224587096215505903354437297299577155814833173366894404295708296970709827060245934726470248719225114453326287556325817404091746695394494113216180321123523136806362771667242131657917167392475538909889024423182801084128791428938969099353244481957342766214535687307740300181565079110357373586523592845500964473176092475133581632417387865667087351573115857009206020256794110798081839119920579413087842447569707650848190254949872297717482451999539095343443095628190530223936044022557760632998865254625943847942918959399482543017701963541899437422641367929834413232217814464087860295752587669134624049585466695044762239509682551762021251091886483318036549014462848931416837560457650681215519080250978200120780441363616024446980700062260987748214908733787849003867370473199290535849915873979955324489460031507381551673897676343572968482508310362005816920998213023832702156600293342793482750675794406205298458737697974987494318908974662967243638861831573863751751867931219106759350889374905950434915492283495835939987313375088248712172004190949109639044890860124435667405615551237104519648691489895103674842357204724483993966076995264942889228533529700440336048365230851127242387481776579133504463195249999742710852221378300458295318326303776717853496478303844817653352363424347292652224479398301925410667026121358144570231118643134869032215580584861455807437891682750687224000375410019218081428299089203684089288426110427333576298257274962463489922911116567943190157265059618958891416450706903712036506143147242646804997213197010873660077104755252248115953672586716452673899894408571698756907918768668349914983469040607850139117030324285438265039195570208013924717920878981113080882895727396026580403070058220085354355636357491745809452292095618079956149307911579036229621238215920710173371063166670937295328916228752360838693704731816697389067118362666621996216967982573614364299604312276756360712536923459927954880339949280541161445332287393110098390934173856189308712663362683639218183258403482926960713388853408035890482549856916295356871916680447940940250989426847112946330280509280700916492542098486711442833930875961108218595769334290012937206568549974063466048283102547280073984785186854684585895624258006892445551942122547496676714141572505678889703423807737244433035079679450005603032157178306979847683630585197018088761193465734775531714133609512687794361218444572970387856487507773921093127207728744643958382631820526152978816731463197302954139935597985428703435848495228738012049934445432248566757478816215722866498255478730982106069064597228797818880221418795857209310922951271943989231265085743599948398028158113564177364445677010809562571000629283581364138376068514155627486203372726517207295475472039080182742694402411381324545789563953269422885588687532567516931690786044130074425549802809317409057195065516291433496894707103921410194372717783700716485585395163640531491704202190292228430132479575614381223486795815940091037288078649080850550365844294439590350518352524054674068211751587420414307560633379869569068029291818186442041965324079513908137406060946654681898256159002399762441728670073461071159861139201201843237992306307390742979760189963706508633530675196779381869017171781730256253818024441942099968073749038644151119643592548469457287839619055377623752887005645254524958426625163870829029698745723798788977494952996454500831057194133056336009539212193427450637332096892556484535668386052990569310116512570358799261509628905454001647092652010974292069218827040673938756771305225280976369894042940525711120592062255532997869666652617808289553111156304961395393589520224682957279778125772111352100302327540109341005265714006711228698455880260140636241913076017008179826864292303304659041513980066456769874015055892044874422382399815112225521733896398424923769013293021475693975558835262746872428529745082399931961675959003745053121946444823483364735859615029658244106997635858509827765458728770419362918759927680418709241294265107081760361763019707176153703898544365659236911340276393898894784082620719700046676945342562604982108030229245013362699980354068972886247162398469757594169084175691576361130849759115979098207128895381239858166695208134590093471300976830517704402003710218843282787844356236365545924704466952959993573221965842435829852012554689824581837876555561423136810422756822612544521871656759697974483192884309636096093620700923049061424548010067078815779723924684419383801313127983285619712089282940373765691849914369317788400219012599886572151615491317310447072089438935081404861391660381363930524711865998445503103302515061757815127899471178423225087027872629905142407867704845844254402555975248941824140824970554597147558537585660924454557583338381255747644253132979890841731955186288165471795856655675602869347578484953964430628433531062376958116877108424626257697280518360256545773176189141902666709414224536574095154240911673483963262967288151045991488287316251298589674296524905420862370452020387223081615129373585583134469761726708179240038216654871513435474273535801095553029997106807351087675109896507669558069441681167234703973527310443981746672578506067987167807640606108416894252712985974460852997312959647237595100297796324310911169217297594207104147990781424187887918338075654642441070646402458467671444126332148447214003896575166028449082670394520470192939243216228259091315403646598968801608737992419217693036525156057419559704622074464138072746752501814509473395313300718285776922623676911913546451266714828729730315587823447181095756982174673116321536181271312936425363716272569641325249270802728139408352382374399090286992748032735478325995548552802340318305553554267042559546601452002439724060653082939965811438195986722993975578171454887940707556823303931038906780278298221479841009188512983118256969804576957522493297751074832177466657308168853077246458107514185637421020788726940108879745975438210211413877491881731254638337068610083072701078133309216349248331180061791119444278957764917008044964306681612254171340408593297381475632293777973375016824175065492535874088467419413091411923109328456211123869028860542485629890901062954454705148840100615448573234649163216233934948938670666596524254963344887916353505753161417001820059409942581003595315840285800872977735158118333194990777566693488599258243061105170210409473729601367733015716343183690183365220592335537349325360725125452230063086047448259624296292458138807784309933864762526283058071982699322618194653239619342251349645533563857391362485397765888753917722170836959035825589870408129145494861910940525813689850258546834785093976899619563815030595243488622273506695533279855441199688951920236802500654857902558898299484147789905902972715316216049826813466100934023254725548692768192250973136608787607787247857239303631985017141013878569596713860455986881940310905104431010300738382622283434579463445268079945068514775162002539537229686981270177194895250834155826982764158209759035723043565687508460861240838602184698863605634747648208046913350229597379279832407930366822140596556743838966327133856006651574729318490719328675898330817959321726716300500879213664887145863528462012785885371429082947950789731416102478272333147416369317705010124373317940445173898613006405978959349558195924063363655111575039909097201714010681867785135301194305230331102417207180716537747536956068421414070739085187051893248809054342703606546052882642236029907436823313735836335221935536673977904529699008579544838484821750664350919788733268385961536256464588808216533300016084787495663434983154451480630913540094609921629467423780967590728280753682621196651607224298642638887743573080629752815112305130729804491410540554215636608332491249108118002229717669495716375432729575091075864559835870668061001466642261811869669346301729911503832409372583955192952464969018789082113145156704660332564133977595012618214363326717755936107553826075715269234939575878058413124947252409577103700366591329383603457131368172656341291236609123934414614332395613837735502051413083693502657284559084046968857688563278455051965061589609871733199087875141676769285995999633602769351004473757306654691369675906767559934045959782050903851590603616644365070186644628439474345065696897534892633808935618413750241468273597585680432295396910177468827427967359760739706030194565411690095568427709866527999372030166499514411357586534417842490848899151534659462475353485861728027706257518181121456659337682864103649170858850815895666880615165443101423837357929207564037642046211751599767463630755705843762183927941405102682933868400386501540975391381351659730462131129188612636677935312734515362340712503894397751628205099193148310906464783748576952788226480310157629966460985618290145731362388713497399733038222566937649750801761080116383964852933803209981093043669808423178396919957755003790509663765053009107864363870045185131526698032347842045936660103172477873212129125257633969403374843182712854394171630792244684702114615320004134021061135339884583063026369538988502975163865624474556787682295077447756051292974750382358125289182697069278492409904695768723585916008920412941230278589624195825694413583294300791196619687041557757869222169400965560076395589373288280433800485913591013382503937332760409245253089394693124497531274895094428789714803333562010957232663873785624519352285268281997728047920622312929628861832972896355710800961627843160057610580485929180635622428727289174747434990530436804491927170421039330032270719765511170577755855840044572146608823638215334642565893929042560559618254019354715821387989998499891189723950651411065430975441667454316072579814118323201676771855881444530794896667268495520058477000925702317677442552286219614236843792531360652348798905096759097986090855157998313369133774374876300857998247915190350447226533020168092462690510939507312739001924694921085302340278781103428566336232989677369203765991493729333388570840599172194723454343784744048656035563933868102371653266993423703733559497064073040043697732171178794709827916924725985282686424855603458778541223836846760470162713624295382672576766731770362166619072563117372932289304154331776405469814692378539387279973775311914262372402399605127865010150434773817758851570837948097700588961210983893964973669713055019851270942031964081677726129256025379887403263201485443882490850592481790382912023005450270712520612322989079293498574643884327940674193016103331442427376084324308308328705220747876301701990019037762338488561178597553120347242341341068280778106611189287294008021002226158704697672646874073942360401767436082843870874288324528458938436046957030714994071239627989255360078729674237605229533193318997323642801196461740907406634100558675161901519508890959969250469414662724480348124708664741514823961008195801183471711535126762810048312148361047820930975758234539297668592004995718713593408841278433448244440812221439081683093656742743362221119332140080504067824953741817111114145999477225511913411158470475767959728852779071465546765125879945342020841415346188315481671553492098974430184833297698909584189530835859741070480675887040992209457523100647888460417297206438775776165029441281360702127117067068670768507023224447123203447487452104508866798560706380457511994441142022688172647527206802909093856357836689207692931780446272813506542881872999438907886504149054217138729958601341267327950438792404599510216380313225795734790543342842843275432969173936913322200994179670824280804173102736090740444720785404857320926940085576428384617588126549889659056812851086373769917804446776443296965281291788220320414214503925660317229523233998345894117224779283822004091989167181864321907134255847093042861512929336851542859165586641735287583361333060369039276451407155112425423637046472054848918965142906068480703660359275638048661245960483810233405475160543364315229918465912652244030802496505949199319053325316792093278337759187520290737671839938637462672785318275734774840176288111904541750256249169918824410939024428259442496029526441936072552912837386623479563304256788632533960673429780233003407961034024825670993940393014369830052034722221192186677955329440816485955008639666331671074715805101704572827408006190265270309514949818349785238629340638471872770872903285341429656571641723790764242313858013114015381660002373905207056776305976591162546897312142237599088454063892807870546258035117632210596161744491356146606286069228509399633293613134709323540220615034714907927740807578101526041362131656951285208392363788696190292953791289939655016995857692802958107917195974233983427587126158726026948073522434319650276917782817431909198300659559548646544566575348396373597420070802884577878665647118785629522298879735498890136377024696644850926950439697567671054524837993429934287001901646860804181275662629977024599767912253402008538427842671767756630984865359420007268550945258106709628427816846062361702481194419809457875411164851965751381260158734553349102975003331474259739553018414247901475517479255470982996754934071292122855717078127912578030773996607797794340574916488464002314600386001297979156448118741651877461992982703554511553384675825338093013551151163669503595114291175044310318182476221558021178517014216976737478337052942285443842630221569909058260452097425544390596693170214996921825051879689827944806965359230066349919937004983810385429372722787459570530043016066641522241956744678928125747802853927237329045489975285601392613484495805980215258246317003688376469596707016898406133619366446573938352555746482280665382088434964812710119287809368546706098575309730742954694437047101575460811311019501740504421582328658491143877343695079887662449528033088431654280328859435943083184446438348336187202519177769688547935661451862234686467349383315292184085952504006739311992361022326339045780098000313827287968578276549027614165696235044733112797595531293969941858190334748282062587545398033965972244203507741887594341229846922534916481523800396584983929565432267474310404983828411004828554664392222951168586910889737999780977777285753828539368659009971465336469435260532281275494396269087762452807624210419514739113349558368511386511384387403578545283112751749192852598863222273973517353409195389174361203677413670603186773489149987348692738706854057207414316555489344662151934584248993498980664441707954825051565096143279743494762807390889475756036990941703475657124811147641287464075839405276343216788699126058406497522064751774211807332762425945920952695515024860727857981421763137970167616073590884206521905583366005826378474876969325290690229189113920887046293475145958998987599368909517256782952833382100672815391661131418489528817129128209031706096546659203975342945993737480906433762204597910147598560097396910133955338369595332289732852280999469528867429637683473589331351484952624526016651512126025946871647903938023646778441436499602835221491522360720735257695278615400390275798037660771655569225423138906832453176084697233392678311333572922312273441106920935838368534248165360412609914264467472285777348762090835544188252681195858028414223206619330819878500236829135956484795903364148544358528732624459440291674073076554817469194590216521421249237979932160004672493906038947994140624803186328625170726830456686830050476356648612601016975173468889837041759285624879285261459114723762402845906526406498474221607345876761520497164664047025845210721426590467839050378697920650229515087740496242732062171968932955165483183594042351107522422308347598034116888336488710423080370592844568704176573084604976985392064746158252446775906581195092858404974653436330719998325650342975488641505187273604614578895855228741906302472978302143936431240475259004603821904073534728852945733784542456377043709709797557799286129296516225335503019518462146070812817174398532379428356340733993714854129733432604774389455926914781553576973457380280000098990995908187772813741781429558364046370580441508676341136508889885192063234922603859217410358581950470462787217597979998657630102444959803171737041268818672217836216404031276130411756872255511467620962489886477905594774479416815439757659481120039696270461105530160560136550152541511210687820986895089481517609513373994508694233217194848279664263099237468002205186206365543112566939742563394575514123963548005948992255098234896839195145773691335795597853057823214800070393155718855057801660248763030775609986999320371175979291554264699401837013526732880606232104702350485800102344584270817809645511567674337690217874462901839782095347237413142441904375882123724601824520239024477013001686122204475226003508475969646410472421001354084637367355327276094282084698351529247728677361626049223606793310452413097574288874129458866048076532971243216240115412155168552332086437834676235295848867478719433295953970942575509137222228229696323529815896981488737422450025893828370317978582370505176342148567333300856659216267953150187446989436458396042918865355352428641031839949111447435146497392890867143824685359297065193671725547570598096924325011077405510747310588514917537035173849995393792682514552976918088673771023232786484047059263890922264513884300467803514865873527674619026174117845625925826785901037307210869215858647073829953067835612765817690198252016079892272910042491684865677639978921660365608166176540609966446466661541149533155031443081501584450668046942873932596942165498323718905712536718000112462614026045299556753979830932031691042516080855312163723137405370224962079922066444923576578805440964495266185218076136210304650347275570391201311683999482210981401391511793416837562330595183273184321661060715505145572032330075860929464198429949607427173404933410842133931483706769050890904838252136865748399945432908476257294116796928992907987867177480449986859137743584410674016620735263857701269268464196514764552395051355876479379916419785208811064606600226069649161083853599318043381325742879253876142410083736277111551728656551948135777883060850981128101178488078584478093780231294315539310990929123568871617840110947691831341840201149266459444435873700960300819986509929643052351608765833090363598432485823805510950389901660920270815230101884935692376946831608798350350175019283487802014209320827896780254615189890118732544878727889888116999333423349757701192019448466215833238602075700239364049123374878192649899907081335187695058611368646166156297137217880461481782878401341504900930842232504529592911301298638010616062468429604928578453331567541974828207570609836164693029835837171280555081623571114005174568259459663960596999567913335879319551169692390409247452003599562496015425292632972664970282883626837183081369033949988754101008514987924149996356370066947904190584031694088492696915333488541370051244624431385042690093911521992386833912825091317950299863824879615848236610939132276650672427196545552940677291353135237801236900902921841136825205708236117765990125767112266615705732029979300059193626958633065716673883845314396853386166417014548967901825648892212408483512443483307566489484218338735634369447282139171400250720996958537063455691750336963903903459317224365876883143028340712616425761715265042972245355915002039507224687907260465478325464529091326057091952893946713230647439836555916579525076235998925182493890060431226874146728154145182755030916985289490965452035380101780480344355209270350037112105551637322011769843833933295440907682951244299878941198241738820147974315649904179174349991293102449875927542735507319403785425049887952680630963283350553334147668458068843578124351753869352803657214247745297712436897939288791830396611081072815171905295279278621131721124224753034320746142216177168732396258162400212396567782507723953435763736062874595194076974834308966595373024852640610195857132526834427236055445546775829363443331242125196131326008511915099519300723092757819408145541308870497784449286411113322919607823960616387460957360871350561456150421167814322679648498653838323807887045469625303647320697505608144627325068847126094111725388863421267347969887862012124346574342721701921450202589159696634897498947451495782769661917798413630624185294367713239165154909506529747342249698461481372549538563530051367633904588943592858788176746033361071384606274479644525826618850425518925444155147964552055228130479024064854944913086154945611410360917185884055303666769915489094781115777855412138656911911705878186722497582867147845741718980224243407425513310900492732919305734090556685548807283992406989591032159827068833589069649383734277257293680593337646844940034919952401245295464994701425262585281792963314683031572779024492904640066243686792178920574117344317066357530641785655411112259594497560315051048409757287068313142736290365346840285924370373611774666381892889284285724040367566357365768480295028733497471946693420349028562001468742323518423017916327667530678245262394054360438451251760604395819964168858554592743556351234912740553247720591130591602619775628906013397408587267123965736271512219899476494081060331463395381137139809862616893698993023430769639484405227274440975484555513371896235147003725932981924513820843178517835931377490895164806568483321646175386924481687482762438906464610635138978198407295845140308551927165118031345671309006635231523134407365757030456073740247152175174674067904856188333226295104881011427587508926852241726875485049182292400496485280010859878173530188154146048990559725047148193686801917734137850152804168736808855434297943030101260532793361580431042076545820395156321486466266962057170417338235567267980358310965165488312110694950583469121804240634583830297168360386023004943039485325208355740947051910542941546029522808381598533359882912834158919248261877962566988463528012021787684416744750939511965251245561956201916508924143706445048186292551467008707192473816738676658429240148188286241276085068482553216686140900184540076484197669567025489301489072465399664997380238282649798722041441437526171121241452631134658641341723803872006140509759591332439674652279013304657928936341494453560795658571658773339712734702589804939493851725465158294611152951999065853293614408957882998241114488418824793099206412724488332096012932641749650764524240788641807536129813053289883439303133272329049635591647362120600495165216955669044219297342166258123128105139840057107841671035964484197989781374409292579728755226601491473026789242082891269890810352922786855716979970706718982522936317530907502548127300652948303039346408324322273535570421656855755214347682256169429504095144244067312049186385226464026047813151441387912093392261505128459353520694528490152856237905969146926228686310466351505654050419885975576495040864657807772971766862185940305872656351416279480607184652373814344189979689793243394496252868488035223885687718102964521703895553790620215856127720750147622578888089852103735645584266570343970972323167509344423005542184798762946335435845217792424969359519945293013938890756134500410759765759827815321383261337570874551963996746112463966624254337693700312676255661080398503875177225370254092192912557935381387654444059255842563682032120515499034761399873706613268478482895952095147725136318809091255878504972354911615311141743617874490315303759876154357162456491699778451351865893169562943829996062859000493172075352496004691909461096389848984569360188760798953024371438849141092266252936224774037086845125635018381409969673274114087839914299087846635493555513868419931096140257478162773367687304532653262260890460970265496834199816596680610729456540125640514862628030379987521273765058543541408715518753181326717282144300764137164152001625517211178474817619189396295121061381464778061222750181400831221835669811261577658337892828997450798156512913891659256166876946499714396116180539570342255883230646518636231092128603977207964895744511696623724236170796112014487060860340394853417126388265370723156787673565246977785394838749316913821702628665377146507183146865041657305230345348787645873863727544632116677807340710953723254001705556952635286099220804983456872702311099230883244111941253333710833807355998180664164115998257492957688411354316491725666811489254330781655455461873097213869798477351770200329160721602738120088574609979329376957941558461680164906857043265694844017976725754049897235195771170479522289134532805030687037689435015560385366512447947364127476418751081524108053391506531190284779971173547968300673415684074366014191169042458024690460908714854362768220332116282960255636680821515967208805631386412022340857800179533728152324354012872242759411634177357547068064611565140503167574406439973626495180076005887792963420198904934992577463467571791857604194182035483284833598737965810574930975345229710254661875359695948454352785989426238128783301019151274034323051030049145787152350971962571994535795412482822551043496086345964666789075466620143752439131147767099659909343483191406436811195673690331439704318773593089011833332298236078645151933536775391627028113217253519362833060856586424252197640135937150937484608864289393097549048465099504804725971751259230790180140186429331546308731190546838652346876189359097474823820242501333837854267913284538615585738973430753727998466687655046735174233133915818466628537741847022558446021175033256428871099615852804332797030394763800563597415239600200324154491681360793860592940769876360762815894450956262456382922881788223672817296142831371253953311399775492037178158435052056602198188821515662171730304556822492347714325834530909401685086839132831641894346642346738180785233414168860979035620371004584797173499757469777979365949438854544085243237852375463221247391899790222567415993530066020528142573283958254684671411474448512688826218141419056161448232399680536365929550867479023729945488275199400145277740074956678082964255936916848616040381862563036215028991080088856308561275315283994548190857279522785550100746726346582813782455837753867099383706966858109331484679965959412410174407861346514355897055936865295803998586652074238988374943131694427724841580413360069832713097840958105504109651251952009571838778575042760297083371128646601339215226793240286063625121930000228665639945374777076794400435824291118248416879011722309928676678839716243985700981940447529692259941243268038534673703747502294991633740928866408793758197291645511288784148114775633986033353770163321994152336179997457236130334794489543105839378376287477153733716162403112426014849637148058891781143627240099141020401262119826220898459287844152846362007174269579278448126359976783894860348602388202145961569791543869410842118323463253232285606482254774134028008045046974029962037096465600002810063113458913466755505650472048746637951492953462276196263041003022429309221268391450422399893143045759804094736301026204703188029267785998212115555920055396624193695558086596082348743678657358387556827609740411970022300384757624384798935430122793705995113270117253294850404477760486967978295541780890186583193451033151711264952231718659787537536750269828221910822317270147390818908849029602665314609664442242768739560546093745544390077272314209084207322217661512840340443767073482889159792871673471148407813328745019077780159226764016027858721748481894417229922554050298290074845355456885815435857647301250554343014114676592100545488931702730443727628540372460318958305580308575339797815100200413788998190210606611718278474702478683603548632200239422941722137657583394598930169755373828587013409975680487710544941240861566886583818468369333762982862880713477171758013756449174127855887339636074922393750151165411395354585081198207119998769311201666985196877199234843006826161064172962862197444193280499097503541296711521285040903694308809603481800551454179503316222428800853974072439431006307245843516379841886604928460140182011866629608954820713702412919104455351786803850820232468925096965684810909061096054617635670096806344289650300229821107367434848011624604101083598638332533106817696568339444791775597910426257461236132457685811591893208595511203054323754175910866991121062420084913833698355704862765782939244597962554626618549903410245749035689134190694525788776690668295154671648724601997848614006698386377416381471651114103387851428007336343852911087756625838378889095800518344079706955347756822967445898816941146033544112519352291718917333376187042730181608819761226232796321123030579958712326996804776630976680609730343217123947384323824654750272471283891086307915155092843534197788448763621709268123609669568104036749588712570647005861402507318662008224181489068720699234930880716298231267753382612271310103706524921831788132940350343171601294490897327822412845482499508631675944188542712698451533942872219416690327194779449716464166444489206882550455061216337295169650606214570418942820395973188008072202078033658308804650622546799259864172642796369104296149465200839266922735404333506523013897026689088425043853058953690595415605952724881272612277912903510715344795355611705322609672110367146940008919503157280927929206943176374175702557365547840504034481696311389282681498725044947980185269883474796560052970312457529126083618508801306113066908294423107690961290721766425483827672219580757230790710254106652718838669198071967343844987299539090081446644525494365115122348906937095042588135275301104419034588673036707090747034830314909994956802670891963619524066807014790627530492455654001001650133978292375478810044902020140581763896156991834875627993571427157718613864339067780425284611401950274235099982738590334367164578902622289605494193514758273556986896225782769540221249171231475813242181783286802023548771744940865608474536769991462957215529820237162552469404845824840945931244839171820612499381827748810418766140079721874750984298745059189243445841942088790620403773374200414999916823450044512207536020523798852039816927128060767985666721491312971145846625904614732351129579490362465566976341306267766911880079680081778379383252237438334733100952678118046849638792192284594722854460974793429658197833027911921389495232485344026696796540562130314362056839245577592722564455313843361198088814349996643118872403094851309399446347312530899639939502173200050043738165921055899554681937586962701541447393980929291988132857426720880610894176048216289570247921947438491867180997289288510518784671090144951139826951086018314605565711449587882313338323871338448716173352352952717539930844670983920512252402790758469774427754851989564445701023186202994677876937717417143613282765345787592596408648075871389034147078301858823335716067160371880377261919097440397835223601604979569843715240428009609871092352166827197791763124286670012925204739170816181211540461897765157056488122813751165933584200519657920983589051723859403154149110441414558093996411531347584349295680789533922097569462438330835171639027379439004120480425623825126923573613875573200237356991822204897131177796611003536257938481299153817536657453430780402772621065689676193432360800187614598972753933065427477203559103071399252240022625612697020629641145719624180635730983516668843538701714326811572515562931294536583138707372072160658314090764709875793700700245421745023856860067778248447515870558326972582998072983978511051237347631578388390360124566012868901538280013084515976600571462660937690004574818605408202741740085712423299188353153362028654688733523816643901934789918868180583781140218860607348499874471766365626475305204210640692657081137679656344645434871734837444956495644705856577967551695516053110623647936137848323531232151351093556382421659405120942857109525163059082989875204793449914465034055111782226826247575058771549314427886258494869964636676354273168473269898121106182810403502209443621654511875982089223931389731973178693343098257739609300898028531171210668165094646289697519246029812755400006129110290808800539900011353761362914095882232833301342882225599724675950186391696201398134222551366511670012722867115578148206499488471375209467514093189216165161248994830335365994465526537780951302803255681062331049035717317631229298739987787055216027539980120235079854790149331132818973975598054503955323321415976323462776497347877691050977302969518073422467388592062870010706803656007344362723623967824356229590664965458816998436957570848504552475201293918779714334169570600697494616881056865137421710668984175991210758190750910352012389760863165538403152347566542521998007438429660359665837073275938097776815457665309501003265406153407521065659828183207027281108948267535439227027435309867098031535878794150902011378802652634943998659631610634977859715157284713778682387178337250432009236576806275446726154014274241440382013472827372621735112487241445259737823046218032454029461361460165105761592943116599598421818026195318535778328231171701900595253459184388170401404562532754861687582920537434643615662987907898302339282517389133664266312002945934171062262189562283480320891867260968533717840208021915264910399671836128618904742576229631179278602013614898607834804196820743140294918112238424521202315441477215915147165676509410803978589061128325995677293310082582216471907698284195121527452814534626474006686126853307109978491607338594364649027880758292215648620212653798660309472302046226724426776347411493893493367068338971900414035274417086056443857171105951281345999698262790455292409162227495567539074153885879912436084806955235242327556330024356707098253662495821721530060864528667763024883061706946295042642665579417013109303709978563928648665374642066533239187695783128713399989488041722732598608497241611631360198887337949982383677350819872432320816310167476266779200926801547343491136658421043549867467441600459375637980123045345984367385835508314651576657949169678612515896072264374062359832049587026101556761193574597052268676400029642057510182435955323794919456195998217252919133213249024755109998968736792398021347207266379985849078187399517293634820490873446315844503034592082224576458952633907942380613194180690958669294075428247718171822713401246292850864858678842905063708294273082028133326817271456366026697922209923900196539509730116943198796640367421798199156713644544004209941687448400020520658592768802880243963553333503045668761850313777141937119420693270120554828530050574116755003545652573845955499630348886287952508592032589880354726304819008376705061943922245717898790776671745655202407207194552473101444690175305144856601769771360471409075571768010558389335037268957533968064251829213420598725242655712868625363017524267695346417839156524276713645657642839088919214802147295165278190236691577758065735298187544614313206830758161716819168980817616457931883823753077422761410456390368759222267901731600056537162718941165920454092400706161873868715904312347452342093617871083121476679946943238952850968318245732995464271957832079074556468539094573488778706092148723897007353314444261738713963744315300965479858333485864175857881198986749093180910182575888231409303740980718827819938426595932373534708105411327092837760987085895810340467917869234355789030818262919984542545380616051878285530585626943576644436676837826821015389681268799961928956496163699599726293535580077059084855432280239361066505023276391098802589430422208135331299130828466732141564889814009831353800819263827260754634862597264063474687724204175841415456454607012648618561983814285528912123617753816915372206228972414005678083640886570501668829424697632809365747630794371820198432647801017208206605982603148242670072262862586049836337678504589435634254876075665799726681125584569758725903098068772732316873338773635659377015496317518841212472851157214561575439133049732922142961935144973280610922705052487965898447388489603182223098550076569430167296154853792724354587738390953255855726238492815505804735957437970101063323295315270802836939598072718062501406612047529766040404644207189131423780515902884041318333043019118120496657561390640307484157289545694881432084375068436783484558256739156282652224106343591815128537732521986759675497918581516937992438110819598892842809665475963784358980906684025542017188536564167066073962046549068902530763059285968878731437109368769158828170071594150025189718068087464282681150558755033893986472837702025430010335682915967253506942298959426914905642638718169071223390609390398670958053420525425801708197497758693789557397297397292674996452786488140951291734611847301943304797499955985227514893751947286314649495521011991387418553445335847426789531856332257479398674566642798860095923859751170009701615589110900235456399534470754582200008299231127883570289499909269902007106245368696329799849044220810635111434946488535847444080842021451824023706843154571405453128682076205293317736562298628116085637166066724448507324430951122504456435961394010011535691415989251590321512855272343335382696583655198619422031451257468250419704743736805243034173977401773389141297090752660067339750266633636210821070278639681036714394123209644954010029037363496422004530246607674611900467399398250752593747970258408730337452156265471349843652793502721896383022250316549056172003321473519956977862095734439978570013568991609509221744325262472345364573384602759712661775154168753525508546930488760129623382384386195830862609603189033604729160534683132444876094606807574854078289134960422801872201951168485976662767684027696723951358465964391834037163709676378363559062277503828307959627072672580014659007236963532301321939181672922672604892696517152931484365846914589892134966892374156500926413623558552545478026739599401688469292301844873875083427447190317576779290043649621701649153056706737280474624902734140362190131660327780072236936005653350594608259581097891721980312500135023706882367868365945508579498418511731876749619622193873964668771201543958031742631302017379521473942912160454916095550405324455047537176994797149436668061221066040061517136650018784379899126552068895949136991410978502657967999201872701992373104992746050040165272698170722076367935153124513305525026051364559470824697029934811568908352516339305611923350998068461731254040953502176070793313932734247995002359662847425182871467837170584307564529542606572357120430810868007235632129352263883778092294590444424594117105243335009349892005391769854513024912139457578322966996547104224979898913648935274913591288308510524856397742537969665569488965103587067403867924974390284240417910943453519396336493411044071704916129400619226708026570155390803909684168067993034567335648811824812049159040693184542940202111469079445813463976543585723923900696611472982136171571676553521889166740811092327258304866074738655298373773411427906865026324892831981739937019103972700985018089420438292637593027990448509929263577874125980981846082246495396069447282444847336408950967207533041097553151077004509929951082822793825076020400654648141800485313673823436185364249151672773435275167456477074608529216266960313483889840336198392296471319125483534975439409934424633562676753190195512190465501643443517601411811218388020916896388994142563484778867873572815304682087888593343450391044484556203614760216760002607163820449120306441570356466654592252210066937141300303310734242291410458915206805041266674083382821435165498633115954829629949729137993978734364699913901206154857828107805067894167261503843724846585065914480303350622558018000194553726171524660167383921454361939126788726001041766047779692873681848861804904222231832433585383489821932585258404425275664037151068503634197632187461284230734100842012976599179595249966699203171007218293098446540504114917797501524408407451174850181397541428693341479836646653110217182942193013070207424780951475171533360173086864780984213565407372288884851233278343642858319899468932931200760174976228558952652808391128916681445238094324649712451526747554950772830957788558258182271713668682044260730898714303179470577031459269136707782874067213922488300904387607180392390107226335506357929334735635539263238341301778314171943902062108179726113429401014910682211691628217486805256825161992217515707086730703863153057942638737109553837901136579432585951668837112275189129616674711304264073277244901326071498541751257978772180877376336678080322497173275688212433613532751828977575672855626715937451307309237932755242423993499066026965211506270837821986805344796162780336022933940998875670321581169540842126849669923378829615950016986500129299520713190292595137161902167175524807246359341752469011165011527382422495860325491121882490700832070216576048165536019936285230551758915037339847718005477447684219471681642154248999749455137828700932420197202577446845774815133128216988337314004255681143137308348205040511922762502236851694429491566331649168352684887994484965770097998052554363105480410385733353102716113443837572676014377346546403175296377798834317562708909479875513006458702354521434389883366229802587076369628541656191158583853527110666832631253563866052990826670402257760248802882790396877164866284898047243746510936242029222438683155915880143272475330406553143592699808717990449484343330040654993949566201161601012642652408207344978184507116333557709595736814564217490227384053664029850078789491472695561742475594637368891458891977952604742201964198897433437241666186952561502434018220816458001801608614123746359498687443940813963731011134609744616212120259003798402938691395144492272496975369885812354637317825458368159920378301889035851508302670277654546914536907642553627298132404313230007871735287915124816688603832685962878838803138799442394703644724130651430036655736040651435877391831622571667030006242045942576442400232148607652414156393766614992766141664664903680234889840531937643246973273351462897308545781160550318549667975450357953601134559118591422332712884214704990051672472234670849733111639844700269114986918955930790194851054204711654247773416877045389349344565686107529976966532787731798296885687952467630840918904818761327320852585252387294491076631750560413805239099014627882720707123947851912306441087037855733049748921897493531583119332396592891897059343226358459687831530128495770598338041044739971634076452758115308318599672122411186484803532001626301151669804186326690725843149660840671561765623641930362920086685229954750849926624575953072626541978954461976391080823428779410575076953735640117822354535235647131832005342892446847363696591912326905917949911255792254553847281533147256527112644605306733753591153218250922261358068079476145494851172297306600474460853343624025098908245065386118451401866756299336730948879371460463866794223835774966177005535725696506745089624435311681458036072904987423837149805217439257464110120188445992090533179171100163230895864023695041271014314667997585400039823333480386123068579031196167826462734524900424555789566891490981657884940416942412357798023690680719915108563461582888688607503068432211961921315961688860556978567174970129128479912859943577204984374075259087567865684210954566111022667123750409057404285884000769093225513651187282962616833786049969856668837069232276750107173833912328972822864801680232467003486910586854494690885074672097674237542402432425417514341171228700416772196691633686908074054877289437068065151950418009128442027695048956441169196735473447507990896640932796098974038235474875876268169938583686121670082090350055597447957840038259130100737070124003210147108747437734885992712434556742469494396347792221531473795823261096817962228245587631068000068324192953771598918111122553747098613739038226459005865692304606000138786181905277388420392222108218285616233444448217731670838177624958451487447430219874929411171639385301836925610094208346984694959401300095077874536199995616932774250379664766089944707789292013842013495316628526620666547637341276772626818224485112548395648855905936617688070704753967846277742706065261895324277618667988004736660985384876261303787835104918147674506976294545971696840912888893440597013385398052486131266009343876597144864650346185281686462816519141416443101446792010874498002912256107736625029921683967215925957626804778011684324663698752561991434445703965739122212203855431159004759781331519231277566846336299831025538762867057145549596228835538554389852682487749989994282526759858986588229411578496605822150372109594587503588748567777360199797049538690411904493292403749238534066247012313384697871453494181702217239039337676738778960566641728976665085211976112637204520411732189325924227230446182071043053666054578384071724987206640148179193395059238972108639516584032937180644493392989219758778361997004156221021196539373552507263975709654988488648142566208829183633826126634366455020323019437183514821192593452312622714638128021512856814680358459140471807099026739507141156776612266024650792018308157973180955579712858099092788656485751837416308682466020516719495081427948498864425239592790215376028909081012207429098253778938241829380625887300162843482094196463434245373904839843937959234411372028420575213731309932610132850208138455750406202296600473120317682569249336911983407008994176956128998734121938612945005297742845095329645160882761827295094436748147241945189830375743140076295615279681704635015029431658965269775139976618325129664934225960570187004751625923271986607441979663530824150846615561834318594871942359150595463987067175262717841196255212474297045587646307167114024163794256412900580276083428504297474102946909615733248568501317491640072574799393147640317836504645644330369239194209638321554602480518483518887209592684800960342241032347925518195518482253727414107021534296890651482139006646376562986373398475319100666256204319766907910155048582704481535447718297019732515753896997345904838119403195191970644486612766533433339479595989992817183050436320930799690107758664696818336645330280468945234987155952310610594732462937648340332066123768300200749135929068865687150772772653103562384101273702537986419933924360738646529150777042588025518479109338269707409484212668849145065357397699049054996920050948815937605809599420835175289525169014291077380543806468423942009151086235061236045859417347019899265337301966926526406085613298967910558981626561912362190585098926690923916015566127232058914787145610783342267586869478321080572063832923218247001999111126480394555963841170086671829693390740785072157150153774734003413484379733073016365955255081405055533145361860996022178781480193211406805759878098410157863077967490869776044096400461792676715719633525567058586886210445407885375224316110616814179998955396734502412716557098017931120515246058654697754507055258162035505787062964705989454439941574189937341907089180346990908490093353527363146817561948550199839602673195085060697052153249760977204351779153778176953073789133747092506501269172230725641607844126225106830308608406942756989386100607312713190425175725975993633829557458588614496965870022303693141111898387394064176914454865532443624090722381166666895324287018187329760993494382759468284664350838724672531779666046712626215202070595292444528270019948918557540730808601079518835896761570320458725001473093428199869596732974392598858422979952523606978701608051416411576274539706478658268443400009752580072830011894762923262200365317989167350610634876949918846632639039049245527762747037316555006745803204381204145587669838149633875211513557116437818773369816257197598483829387357064286236628607748173550717010184942677030478943557507247123178542822800706424033110354170739498779362024744179394075899908448080373857069291086696418287344083970866580804141615243810619379198657488696875454853363019549668185643167010091410736306620720215699026949156521671012739397817236109829731008062780353005475894486160846738853099499607787285666464794180043565667544951602390696064241556341829964778142508739135202171442506756531600291026125222918333876420506513641840064075510639992775631870454579755494422747624252869764990151101494676133466426620707811650864664540310157813930786558744343285941456955733242064400656529622281353293642818941594951959670054745906522145555759488524908633927794880371992003554719585253651583717622768653812216800979652121754005194401356421845053246706717687673717230695729831617248464331213842645191594676772713272092044360975504255936002909796106048870210310677058307885576671785428055084215772098964783589557110222534598354784185637458157781813497614121890986148438176377772837546611765552609601119130656243239556659578786025288594722927825050944472633371705024302407650796533265610036144017436462226085031653778501430565837836090314538360640797381379518093050526049960543132114182129480765470362175841444039213944581172668008812952618535248416915153741308033495170013854744074747822002783503527471964026058461810766726633824326866696551849308756024906089593902807205564848913811359778030722880097244196050027840416895995997338343410635499712452616042650888906570954342915042373821772294211690891993212928974238385288915474396694912530156686623583204311721617443012004448469006021902327693300731210704582656364936358595873476568616844098188065609701163812549194285351958986287617992618706461966319408879160121597865362108454385708599733902440034665625887615304665768301032390412441779126369668105219280961194110072645699818953966438317625363460902376506587731907507519063051444668351147517025746315949921208192403795671712362398633950646995394712763997970223272661761158435583513094706445968753420962684161414310559809960646801974883006009680222364574111810544011304676971917895454607918186791253256813280026740530875960942901490206005090841189003286207446114192715984285267575955581520184148859241431408561042660406296481386673798057571007372441712619524529782676568240855612472109974100018541353230462889610787101096685186883046394784150984642219669846878369877909070558246314891634961304545781093562842643778184505684327416649915255443049239418808410291997570643125413325297825837055439735039111619237482958387439470805215593397770428271713843663408379913552598356031323452582153370882621767212821088040271063664192111894102886821498656669008776086769585219287689477960329398813709566902281090481064115881737269862392981837877314070979430926915141871253694314746222314831455836935451447583522492975326040282232540259431132665856442945988725229831249362448751308552627547600000924261004763875076741392660161511688069361739012656415846776504156191214287855462574098882023672492295088148670058950609934927672505878974294917087533193267891275326359503742069724025972859206282913513375619730999402504177592742705425748847014512351989225130785032767294280704142962329322815854389392231672138297675464693311843511677739698259053246291319672074579393873708148147810872135364427363556662969832386576853615828381989715323419570700193116082023958190079825105222015935500773734936305515065760386412576934361655596963605439799268213934451639068165344119807725946116477594073975528657857567316524232655259537647986280890190284214043167859789299276305043061423257451940396583388707307586400826821195993353867141004910643091544785209278471451790841484180858984197995069747922343960012411904648209743083176145704734432570698660368146007993861438996764418814321715850894743812770511989985195121775779756908377173271857896115358013324196963717654693789124935559790315320116431686596073714945455874021260850327425179884751047984318365939477011663787871168176188830060801352297216139346824583608379604791434854000618604181042709002253213042328078531778600232842085901707238138947961827738721919156866148355287422340179631412279283022198465008018729327278123233550674506352567839157047700701642021404903313470724422064944412928146105592323848833025233263091875854250349388336990163301726682001510468550055835316410428607034512061839004214121230723060204847750788768820912834255731846304360763678899909518560561401159448750152121811306630756238120024743677188527863691737409778656579191790243937856760643681663546730656000163769950978957599094848201620704582698505509539597510400189856055341784588106497747318078804772255905408922402440901509278619513474272970446639828946460488137120001999472038562200660005176635593174823047042602219701808455893391640687007760502426811388255315946515822652583997671642233950150277519166274928792118941358475561096510261050057767949627788815547735463650225942114615282929120236074002521609164977396810275410349577194211025069064850955475518008840418967389267342816171705604444956434503812587584042109679364112957045313408589676776325960970934745316713342930085423536812772912523042875081375107376841580699444942148687361862333515022177545938261217610731327193614512871398400274419698371705105641985297237247987294234593210475547898081746379947648686936920538218860031974209451549705839777513791323011982365719200360059285457411269756513530461276012945491524391082228440806075201534185387257156752435143622591604801122631757892891419989836104978030482439233639923732593650590511271299790780664315284063315811328287040433880255896040064664438980554867722912347287384286927076300765831263270593640246906880176712105591442003072998586602058560074170955276793673705802043626179190539971364499319341545834334884331737525010528035999909557598953641572272459044666671537803237358841833758318011732851787933163261599925818945315554161237566766139709270237532741676576888618457733324906908220351129362964656220877861622981246755584737258976936997923531669028068420895515279234790662111700927187531158704120661539340833623740112337543436780071654922619919286198877981922909922162425628718005588463971010532744791181306103622359464100420458293579484540329660266393919633922882733189137120950154579621060250318543516977137331973676345701293113958391124312973997186262242818148297320212170680443356806004553916398852759333826538626785586682198618883008612832393816482678034190606305820624212689386456022710788464877460830318315832277928473612075275102477093016787522017275311977320321810350425902927080466912620010712138020611403350574980750973598267123421074476904644376864403513984727925121426717873548332233981892565910415976029555187931742973988267258270465375143050813071111865231152024042241654746355897132039891523008686014820127358063076952928844092822664271060409575265367764894192747489663034670432581730849087004020307678077634983851679850690518242537709742573250231888978619622589142072749322825965508462860832060944017681698458455715393488190107546387611947984109201855476058412939080114315982177044220352662371538436062663147310868292691518670994579300462519596804644490172376256506358350580446782037703168421116482914982516335892705708035308958140978455126583214392256543409856746103714928719841911465415718310308431849222642301369608497877416068404138490803871188557076430024803370863547286995882752508084813976371259463851538182696100224159893397095583915559116998903456757716084373360423725093123557513452172227474684418186506003389493370882543369752432025958733902615148718616582973494581974121039712927672743656240953350955100136646855426796370355185811625630826518227572121987240403331905186434758725018177038860865819335010216302994561372353466327170347618597939170630060899664330387333010536737885682703283233655551941662573539329545928664404044680236931314885385446515454578631338744466522756397650882706244472534881821825576792832209056159879868393406504806462489809299953411178767905549594955349527332135008307994832616897424836165559945232350037296560813338136540130727893838123160580584962025881165161886686373050573547688835187671542393906509084527848870708974011011873475243635027011139660792219053568362045622641409072848993940387802569104222702770542709270476485972556162883292948617730924767207066317282837739975287033035328772132148667777007332898266159816043861433079304834476952720051521749215773876653199860253302086423564771591478931041359626549997137429673792121825789008117744894359750579577790672056434551379474764156918665437205746370668477367552585079773496004249562091895631412591412782140916888415884853879454128349164663613474039474278142923385353967777350226697633063955596329819264790539058954098903799466427599268706190398102963215298874487894569407825726057755490894260870684592339577550520226443310232273018846640547995766482230822783125097286463406798005176138466010774809474696058420019671210187361545509719939127256841316728145778796710228014313927518691328541077967138627114577281427665393475116215223285335844058897248715763867870504689426371701746349570665038060501778690989511746221986858411869799701685248744684290386153377843641758383319091834832271180687379586620180414169229161559266964841641220189405167862489847796796340058492584681044384167774162759842892699881115270293870612960920307837878029605883357563323442598732880683676257088133759991189047815152325194477621044961737252830712266505007096206769628870584310308265233334851163090287187411546311274281037928391150410174755483302399574337888327388289170252124005968507241544759535197873622933663574575237347101935382313096294583675919057980884540021064304675716529557753505891142676706690564123543891661499849425772919641234295383002478256641459962081299022649049595110653661323379370784119985971373293262943859128074210228830512871803719380542164673308442079505861752536151075214399730219568133930476100330817564338461268121016342757023142677902708591710986395690233772574393934672331705566436229418611030502079414453232645433253170157404550624674166351211152623519301337623759080235826397307783445335265006370149647066506863741078161112449694340897895151512691233703257011571802998759869639048526355365405875695464808800612225098491807706286338383467555746636743532013212532535070748812853156618122200981356181041931825148671370782778369452684140912233507732924675216792032069514704312202231399800424225518883001219357212950168151686551638981769077949818119828026706522119879128496467449153198767009622541130205623995075391918913974509156145575119484980318983162304601254339097660766578792918451871574279343991727243650721397898363694218876990868833692320010083533728923029327146217138502011099181655209209414264015955721528148839358446773746131036135288143839991699543030469201611435737971265066064983284940474121291210300346448941521034764893539742400683111956989165962662564924068064165457378001854882290720246606053913613885695093525718918606673949873156625874034047588302160443472665299087563057388005255767208493915650915178749003253172224869050100862522827878647626109096179351343050500028913570548860898006218248147404778553084813292912934955624693809400475537219608031324177591620874193976473119804698996006278757656052421835902840510534944045947646657666767712019030633658294802930507163440156370704251899158525968393053018184923193379330798768413132638172125808200081918938465076523223280725297834971106513271337194470802468840717891139145136983536959257655056217687664106559957655472206187949836772634840715033928499221745564373995548013906943356677084371820506428706884704310157269206074423330051534763235579943762921913272656607200317240894257111325809540407530110651023548598777841888383528519909587935507727549459528923894280691903393149862005984219845521560626772880944362751019752285325968964564798804887166642141063163112984257117220203975737575488796344546586068464928651428615761344926891019498566680517640002639487189362733679857191128767686538910997692857778071199095992353230206664462652573138646399968854302618968710203881713446500534545268029734144399950364057245665832139574582907732124620163760859647570149742663249506638401113635591441209286149437200973865672065379761108194254517765608180136536492675231587412845608920319977193814797150512145104012375530606606237010935979233961310690883192343287893098575212087060987803980655288313538108809609916015900041746208529004214175522630088415768030679652412151448370698431238149645974945453335551678310848091648408944572645087709881328947329427178603335722836274761565844330911148374811954809724011444982191431267857090274357873452243617040170751289314924121015808838646402504303325008403736621322728941598648223135921575294933250071365027107061306218430394013179651288882885695726478356862888018322117055439948485815476722811933102212782678871488225056176888724484657977428221815462389115168119892181234248534670901942444769189616068567356837017901090438942016074848731415661358779262366956652720432822914057376451709101236720636935788336140728594016550890632411876478648691703143222184031266389215748577579846219840642448919769284923631530122007234854143125760929531748162293480215872244923454423639380691738831654263490582244952776846259459322753759031666069346861373158328653788895129638480945638328236663070833300503825037091009789892177040249458758566292981910262698335796093616642915504671393707241743345986518573052779276519418125617690137802701912384364897710190229688059985993392771742617837773491630351692889414627893895507225331047131859883327994914478267522745093068003602482091860534864032445890702128484624543487615648975784636373115458043726773273693448958596286252441251061426819883482144875382295984840383559111741962776840086888896457018291910542579918677512198804340325675233096891221422444917575498651128914517758996078836358990260621419078401819306766053516044880312254309027405369302980188010139278475583672893607754696814417244454677015135724118875003562803913955279854816423773992379387657044155485660764766300837223004746515753177584640713683953107892094433498505689480055015812125874660908976924510059220302561518326260962453673160864362988269491399718654858779701313457589434624094649749142068249334391687055737821608189522484262465366431438566369800484936288828034602790852468703233392468030410888881382095313823293870439204050184694912567892529089983652835401258444297609494438768462405234588949740222200465778996421867605823239636569913721808680320715960399130853718345415532093285566474525773628092580101588288255267677380726593393709386104943368636781531816991557223513802834871678988563702810729318387690008426751089911480017798114466216475573165265725589961024835651794382250507082776033557465734568880853655067240478667035257227941260653930350379385042665710174388587379697740854174602832559594590988838230372642129597412615827061343787850482443342340882746484392367086906164457533983026485497328296465185951411238226842707396119432213563968368040322334869820524434487785949117410638744319267963932706003359287403265750776932876184353317348031297911164916551771322008800926491350909525041623041507392228344618538920764162609851570839226708920742203880483065130528445668482160701210211915876627917810057769805171759590784838658108065547460331601806767854141343620478833823852875237611889106504780852042719196345868711391071722909010865015945578739614682892849831906661172734486931498830467807056483720776727255152213573228622962625127020807437626656468141945088398262070116603683728820904187065450489878341129334920037276165653585824248666619187685562808503019672170965851623283966363010391037264966091347577160405759225447151106708374363001489033017074961842472836011712478152443426672828007295834401883011716685725910874815378576306342868960117805590431501023778026878227717911152550255166054111793858701255572934949276511350332176756151415444445736656835301798939414747663604360649275445036998825030990991099528081147317961288711305650978459027105791085051552976976367217680312399565337779550167475701288508635287931571912890657800833838385027737015891082172177281031313379222512556206637394016750238359402536398424008810624076985842268184351340197759854652594880278984179970045126791650071585654977847381592763650626265343868183154814543214302649913089252020168913412265501738705966602970389074178466686942371081801983059620041265247443805032053032522388450257963271862861050173926259412069919258205305322190560283426019069543670805618312959000716484180823624149039127495672437264585907468770470667308102981600173480784159737334312416979473283761873558931293618472789915861435476821038233488744028076539012315380801852680905268956689434953203702804657184399745058494086767149009431666299764919765680320821610364421130785175647763865088454026045469775285729215165621393393880612073959400787653718526783108695816574205393078727635621170853339349899473116343430027348687390868400738509049589290928833018157665535314789027175804615192517482006488871959886606555864993544722744948030559143104191165648036067717566846024643827909856013077488242630667043075110536402407718773964908037982228100435953926426285182223293923114423608273447605116529902834018958763797255366662102078105635861658267990807281252062267209126094407995893810160236981869185575176509553419490403849288262313567208659667463031076688944699087299877821121860783477352233390101351364407487252510640042405910733777175626201567793406680289412121860212677660101182767712718568608256194851465419300691912250164410620135141157677526110079317584382156685052747595560359689513613822494688372025860440735515813177627941096429577227310341917087080778544968405652917607914621394517509457318027212233113328817448176319740301905504053925325798361735565458964415286552524140444327851643890962907353063198038784192601710872580592457099000143415310960818287371507929463842453332515918584590535058742247455970455000812732127001048311928908835316719433888505270187315450563536339075247621425967308941734969380981549523712429342647847576932201107891857557033821144936574980568242672697254745322705454197410703826853313486364260959264389196357315589028385789052139139018442331382327612780224408719379754630998868874252665642812561153664901701952334955508899494624569909891203039222075885749867890531201089995117936581361076449478651875313590987781521519837588549070583215106749333469692881597605139432450755735368717382212468055070753074856986759916619013485080110876508069179764496038846237351509543749620112237135568978770284310069354140914637023013591614574507780929687054280360738644483690576298212341728155173259464483034932733566037800048067550428067896712819906979780713560641096696408199623083485316482161375976232375644811285375652761216894846695273473109819518333368772418324615669524356554231473204230922752875822549057641779774644949279476424780799021368478337036942380291558313896404913589684604674471636620990412633645693164802262825195130882586853480082912148527881452388981004463839746894030115716903616223624297411744565992524207854832769067357471681687084552842365188151169753212827495823193461722779916188337940783300316940851235022626464224093903483912779268125613497407483200445259939032521253434988076443413056758456601915575089472189106655175087579400564460605746403710939697984808815433133759116757399886855474675939709439452046334670700055359551341342333585989110391348640767966303389523357055825565010766438122249024175772238872246650259571917327149543295052060904432475024392401655104547759729606011242988221065438510256633639015502472326419858059286584015227306410591702386928616053342494998068764723688210555225125870127134189768193309937704424071649735824718061198854485063772487555444839476428045033095737611239273397969971723519885879729828464335928005076222333684453342717412371749275167503548045401794639719907357379132443809895130582657538484783616201392684880115305942382213695267643489422119467841315824874853362587790691417011440083712379329816417981294890262368834327598150659403147063980211512602386688591268430475482906067112641767395608148289221059925485032971906548852533277727070246014850636348795953244754942936158944530236730708874416285218732742093282653106979953518684310804384435764808953860979504682510632433907749142133386693990639548540261874448612392908318318922560314988533040852694512291984300180358444182399942175078594648773640529451020040862751753471987833411166551774451474727231889595283977008140372438370269318404479801473086809808653693301292451650283967485380420521217480612147486452726779067289398519949444410628093852476000937932123546449294060383904992216265931724212896343167474808023494488186827837478862551011414967869360703024857998903645181923290166963307735503264199057439074879612006876511529238457241652678519805474844933641286771772378257849812985777105217522379546362430335139167211083620557584531149435773416190100810267013442497351436686379758642384738968623662625289043229465380843083213057825046264770723588273703941864299945694473346187698668733652289626305582571589879727791431611326093623870900141165503152591118248671071059279622189278477394588556304534890201671390241656481872955877815030195136465333742312729818483518348135953389701641983731008468834654074514740470929597778578623672108854594690539293094098951931021290123682124049770150307069875122292339140842677901495015664246892516554160921178697874851791697006598460727290862983935241358490671260117990402106115267393577751546223796185652551691203540813934450513119526588838714433559524003870923450745583305970713018865462150135463665325903597220812113251418772522777845463699552114119925474920647714467173675194067820943318807344831707533662442717691979367860209715332585028463316065633267062081728000584274831685086773399014718401436999600022481611836899119571538407323725058360514347363000272030700820322611703196977574969407774578135317117453416485989042310075221242132531026872614364767755526068558728431150860006920631007230533164105643906960070246880534665718497825031070534998213682067192696847803363775492987237372886365691679649434186858584987928975714870665557569954469718154589223237148004648007827152801336208799749650646526725850624689420588629427481043171218761244334337894189307587133645691869283138472173849833676516213538513938786519556652048278016558668491611992222955761137465081824008733260863351579824225427580080599174514631585149867736233648658536692922958952381920487676117647385949729504425793520980329616821492981348872463268946538998074683339040678317314344234143075229204027084701587668059870746107922941438936485246199168768378924507632360990922730475374609573815150713878877499426344534650016843317439798313258396169949375325977950039904684963471433069903623689185748232787820338985012178076569700906579637181432420986415999017125055147094478118764264964849111908714353156297102643945303128023541292934834709733191652041758897186384202556047275841765957963080000840209027926718666150734054790382129585925309509887970011171442684240837256897271132131567487388844451288785159541083226122929097124452320520012668163519869895033328890358964498394431125475342432176943764603421753279711493782330208985832839007180537291866302362358551306984942514152885670848778076059628889897093970771412603071747136265701605326503998278424959640848258902738997773938486452322975280633741906182629722232484804508406849110927018144009122704615133885865590618268912247550813497553236262279277192878319630632469450296749921435233889804178287999235695586115401255517991807339377932589142235673173363053012412532233008518390466750537212231676210953196077896720160978218377255255579492554674638407572399965377751350305882819907935686125754893236179016669470327127522001378888657851374653921324000609374349029394978285886524052420077775778550745259630613160276356395821699797671082478993409859279038119882751525115953016858924124926600791671858737594253375772834417181955310058600905717041726977819824460002113305158984998647106032291880753951399381706209508889069048226263985101764386071358425794837611819768902816228285301764579090946285114167612640171817229423410860313014545914116523673202621826161047580276135492222355560289882692276853943474855581895651837924156575265187779731409334842031840041627005674238047112924135053187746917308284842756896400629277026142764069858561175348475169319126936043809890042300531719656329023532625096323363766522236686556710757459328517064930085071166310835461073348525257453930046936848571372235320341677501935793420835153685959462837545155761302411998219319767185153133599070642002028656093554031502219546479079853040476137223227897801111598214067953473466632351391728963441719366535595159505630745029257478167649694698963855718714619671817090939110668885177982858627492168441265356463483182309261301452784100851597073884811058462922381466303649018964927414028336239242290339207477687823488285001931463637291565328907822269461942469752139535067668747195045675535620701665246964709217875406718093888428212630992413599188360188474230726223883996906215360354545399416456336640039875106865175336462290447582288135751675223557044678306833868455328684266794083081805026178256124588402770703453633445092918264237436107818901110128430156972679989449347785466869980577932896492659255130042506145391215053119042846475683898834237752262237831008410701458213492400885631897926737226192956737861308073418780684370248945698244750754019258389806789583723652398695406389003869035176452496330046462023506349223907243714709225610736356637574100785562217671869576363899932959798357814497152597795558054074172258844787690390445713523433452335646095845437459028352624388252662529562907621205442535281949483204854132964470732103216970881868771652383090601319829282354685071101381954587897809987262172023580217097341574902656596135385855666231254738211454136517189791323756320394543817623559418624394958549934262614616860642815186726280250552934198287896027412986659493523828760128144389020067960714121665889274406486736162116420304484110021832574596149560506447001373108830743837602007289204498682477992467530403237054681420310598569980869346254662731038178249473560147952681055607488812127037050644921076214901652373241565334900548261141257219888244969866208457702773800196384418412438645130535841591208724377342218789138551744716210160468151051248923150539935521539326807609656823867715549022250662974775231587446189993396956932293301075560946590121485234591709681354200595794639855122453056461687106778481426304489105658154859894858703420145553468174400566832536634415093497837073712532508256536713844155148831936973301011240517856962817469399967361879693323544140275391794192377571412699052852315825130047195356380987364442565243226017854309426037613589597682322728051572551119599092710870862958916591423966784997972107360883755230463188661134922654638328495475888559110314509599361249220194481655115687549654944041314922276581316144428982222113223969309160764316765483763718289050445371756584997958828237787333765472871084373863461835635820907234910184307328317989442019941614523662255146356684268534786279943356568265316682777833720910920886386764370624966718549437027521282189819489002270682791353856879757124209765879550739338791407391972347831935410541795813627375311430419203796597326677866595003433315730800694961704067578971977039955560298547400957524453820717519639976048642509264452563779661625527445537520540227767401697004420421988064530536268784939192224045986679218485289252979254168118166735052935077170179160962511287301981209077265523416421805869047687526294652750855814223866079883989570057603154518106704200826833975895580765568490741403122991652028966244644211857345925652983577027872934308930420389404924992207104458682721186423995071167939502696105506483086163009090604726836948585266737433202521143789640234428862128194649138325213364594320041964148846121925185663656835761750200241006930459900285922851816620355915411652713025028356688561846741612214982024503467001134034244440018783929631609723307927863118251737690743650113907463223853411201848746287565762258738229646193429053560264341919600315311527921449951178018120822434297079911021565649689849347474244699093502896522895388065628949576294186815080024574360278962350655830396464381153254668858374408887494547947927851734172963571128790059066694743871837990913252394084063091814567597156748394680022274413260238534343471477591323082564856416488314231018204261046546949840331730382269838484327928143130353901057668018159941417792362500065430486983733071654646234405574737120992544963368011525082823780263223938175109330838577005508725750211960660636711343267634288515815042423854597688710573210489303797329853543604083951297318306653599796390271518713510283431566911182503708157620049682882120074510424034922078914266794816222234084705395565701979255965582245927622599369220930115382095549572440232234817830488648904413784131650111107264531835360479449777559185386472995143250486691601730477875444373836283097074505353408252936694964762737364214215510185670562374098811293448957760906683474326750605559278585831509067541340315425699202397200497960379453402955287391433952108992836943980513190810014711852714003474991949224729773650486600053572389567970141493478341147570287283729157586910709829949210841617198392230474124456786536069671484554254369237300504977822096225529391854657665704933651603694091820735888440652722733241909940027438472837968867727788369107212607043153903329604810429249707525289847579202494263148844899099131878345613136280719231048065009755349005498616750611585565842336641148353007681795023009486566589792381636331258597229717133746282179353808118415568913519288062578643631921020584310212473587826166969217617592728960325611909779357162220873731584783691054264342703528977583548102878446098190087091011465992629522016424824355506623972484138525277949898115078644972801607435590084295724524650434797241466612246688867576134675773496177272922080026031613909927971184219055062232720912084520913778215334696215664693428017083201908338686031960766977663249783343819566386104546506161171901747481085480731805844075869957198634372160114262472359746667909026686314349625904703450854327263190206390230943210400667017870946236789146313200201618416088471318256413479507359700193201957011873726221984402539937419706103654565473158617043249246198942965969112671720448864422837609593246068121242222747622909932894890277533864741698453016452711564867126059390112197785402608067794857527700228252460277714590500654441511687447770272870900977870961536663893254285498643067851338619048815484659941315871796561096066683496555931482392724541828993403536730868883617000552067685148643621718698223024572273375773016777137872077329076431750417724522373796134544319530034740419751644566615053862584867430198991634682240969662814965935686988553609736150613600295994893621991868529588917065394291104785456839291785464792074079075777046815891555468010712458836626540767631422600642477056954149279621964614887117507554857580473684518200535558278690916532555559307477269925660444870940510122752409895018405243974020920075629117278595298828164199267718259338864243283772044990001722992586418330031953844591539319613951947621781339002250421372337846297197826169712785162190895470968575512724515429415961981567671046372600421454455255740394937799240035963935395278308106584790980109525937295146192780795314009114332912528025207571527647301255130202547106213047040825213809774626595387090162350530269038109034265157544466507176268527445140115313579998003386653308247215050662523333584355374804157483155754268859824366577522182221519775156749003433947887328039796919119625245123502955694861871738225969024508327608649083634829075008766673391488953918108405278533705365523049058553183459521635748569496317751326618138060165560493983842853115157804905092625066593396577675122345536694258757637741611819878302372611495575902467368726035197070545365888715132061127791802759575457926986330329198636744626399932223832548633030931398181481730276240388654564117885038468052243393069185029482910898627683726447717005955606658547963520273035530783026503915384640934026890778022423194874697100918161198186324998754140600514979041045325602453854301217539684656281058181687587160735904797466476248888055541968831733202949258813340735817859889526105151722821974027957990976219328504856150302861765508977201213468243713197073830804544313638014759374199258583304917628904472624371051075974968885936191335859383422051696013464238831001451246672418493010573686430984163495549439123681176241406488450934069255392438103627904406589602763855090190270323346063420262309305589741249254189609675281249841233793391742049626136363064110548199324105109959992936178589033271227097975228517509379421835721533971173576490945842656673144250364088507880613015365027330977284862627888351455040860968494644275296611279787843103988451952130879460311166862162074648418857889557433065169455955474043140418348794606036535529869118429163451380036088055469466638643546393197440286176826421661978347061199048886681941786723120590731489481541504372876052249213132352224925897547438712834114169555082824723876826071840666687861449682558247279013724536162564536145292011391715234309915426896737877045473959789002692032135852019416415290691233588546568494658703932540416396984057207921875968606654304750907364663970026672965144777646413135105411317598388921630517175068539825394128458602640219932397988993408138641605243399780685747536754951597808689747792778826920504717099922408589366178730621975052195595736773089314728714349640488154878574542851630580321613099888319909970708098408855517483755719969739522437063990482557518044731990605668094270140026265142812556904780886512717525969749914002343242625945464161015725469700159337482653921656761184274523548520960158532936292328166440086542663360333178683168593810554914308038876868972527823130300963937893371162770620385439055198054547300036549179423519802289061354479291980727517441588226936561473990354396718362192790353356908833005071137247797980722035511377884947428487900928533548923864736078791973002656202525564374722697599053756256371476873215523495723635777298292831661657270818970122067047047858349322416259299722111740496371347814078802170475790124081481706030806809109876379260256920087237201473720596333795382385902098368432267336718056874425648378680716087346527494125332563571810398040982405033404664868179401924110084741406343504020475920506747137913797545288389700688214895587933508738968275759074358819872990891346846045854741231970677111764501032905071686929941240308052906756419961395273123525210634568658240196433820425605129166411263650106223009741273875780032207472379131499747188852245053512211138858958159899202104979788965023832788018398635185275287307144204658014305087994955244357443854012050677784231447161574310853813346571380696883394125344391904221132097475678020015076403328325509587206405616706840522393893799041252279219018234788553381154166673484325912520501664216741985902995431491083905312579169453926494930986030713456367707409178128533275552814335185007808955287148621769467760037022022161787024719676532145733118957814855189929669826729146165326957702776644761239195629605829952018167605111576275465373328214490812604765712283360770007884114619828933404601066338688998546562642110117077163315858260507468100618949962501891357104460166946455029271075187396746872809892414243381414667357458939971102632283856856040707794278347240621570715566740907217234649799791563806965684572783944043068186524627119912375562038507570850261139741191979170471806756165296902621280221112067042242962799715815088529642294785576726041399561741703462242874114762600315493701456060669281873141989550468122781824415336220184447971652615154080208021517287224475883192126911335857015138452865148816681364305989651734797973123543596626250886595392693567536889747341631532509674047812486382543056109730217614892165002357956191808203035335790153963180873778729427545124048636534743575443613584271301188807914701816265240207191862130409160985821649936219035742940075585434831376036479820122569822588995852346381499476425308405736135365007813932053647652408743512510312801299472266277856437490014775121445306046914887840187117215466047711154779733424934225553042550297517270291131946036438677492957383161372572553832587322828466500743434201955814933495083093879333106423307256040532603694856963318646549024538584687643902789710093074474745838371709037196297586446813453861449779216602415701077694337804589472405641502197369094570019277522637202952744842757680072625365184898317170284377451378234164142494327480608838182756086002220705794016270562018473349332324997942204113432532490081213065380960496539298305722431450352262109609742320937626923807003578887014602313620974312810387237790064721037350600061437314561577494078286424851176250014752638572411482599610560220806906239571737793630348411402566053981648430273042469326600291370046195872512976776659295484743135690863345373351290520090510328375247422432972493818555389334822213884103815756069717590774006290140522370964497861898284463552267285845222410191497496792579248391939523018699999224719382159107151923857077888759597180922080910690119209373652827709624324179386802133175706701400872777004384055085404773172296888658691670844091761302305676163339729159696011499242214131276739538091996987607967074914083694671448160672148822457290586372328236453244581287984352388071549171636187186515520732342943119677296238213103481497098061382274900280121000821954751080873736729423845546941983896459772464578044382412914167035586889644942498229601766983730129939710680471950821498745977289615747142987468125059074550589811613524546176341754143656025292525869149237276989033303920815924693867377897506212570977241925441871921542929582591557647978190100153364764092249534464933366325566649834236735678137641694618248215884329004965317445004089433304511658910098127381856423782033676558764889657182663049140761016958025109894821674782733722533605343923595627336985630650612796921639543128168631087402273754860271925123003897270458071583634553613919246845560159022435830166089846795006207815093755646340679797496446447670332161433953859453516124838320609345671979223659841542511196563285151538928198955114305240771048094266559365531705310984115830021464442109772341377164428407793692781637469346334974020520013220302902906049265747613640764673106674134699874153061229064578576881918188495897143419374512368805352857561061095766421988634836257184912076881114537718663370019458901421432066792162446037428993291648902412876817984082686768767948606066254825722706554350430107896920786353424702676754895078712726708202844142638402650666259957699278693207691589042410244205624132822665003103796542303492210904676915128098211223688405124572487823831949304109123320871987254332110102496922262966469383736560810436616293231715525317457947246136680568455805895146545877348053975395021379295479043409287710355034546277093416288531433269776012869394178771574870388934343977201797371350909011302702886974855127746233305655256385090330002384097468862635172324492585100797275077660473296326678377725436654045312018705814547880693275817509834126817694196268950413854499589503204094778412025365030473805748610003953198190455202023663003434122960657125377186594288757346065738076501516091282282813326293877483802472157578072070877041153928669273911558602512639490744604999838099386504659678642485061641912337150332457599111714886455356268561170317968839237128095401448442085470779929585406821240779197120294771843835090001617094431669333060527944291674963241591376628615904275524846241245289875275756031182980995042436523247598743520989846369714976020533572710045516560114832513740548752467391935829294322523087617046740065212626547746081843245191495286751851432921082215583321236130129555961658424504756815742294314297451282349459581969702319309896684004146523407849122212811480003381900267033024009559651481601056470411057548522422882471915892023761737249871284042183235883814760990339496584529316449087768013443467242990505686419488257200684513193438683108711934559336310574312282423589720950153404414472461212424456795048617178424058918123202249084665301169715820695996443859187273283026177537313677796037028795580322775388234440048782529472159686800565694320658658607170735419833033604343731037833612784161130996669794015241533871441749340952518505500021284411700680966691601591866833886013625241417847055765457938345367796450127492773764521786054183474041812064100472213546683849064042339501952128982659606786135323556013340875129511641956820233089700952278485703124199326064708590607515676696163859290665724041289214418477998766535513394008371547875591680122795373603286586952930043963079146212595591630366713550310670177039781518691132830720334267425817792755149538796482168327465519417437209160790356133617816493064794576686142621343089659846885230130260600254159989662705374168537302750407180425680129767705240940620735000859653650058455940623902097543022181204212723309308996139903409597928157409095859106175810779245169906229162698564076830746665123511148148827894071147443103745382782061835737943397307065629016336304247011070481881512053021109889767078347153860755103393347159645414959559845527890893770103298473045150097677904637762438470769253908721066695024978375531735399194185727960671650468407151975638781926759970031267672879323721318581126675939679658006527729126812669331617083062146841990502464149794575113925821379099029764463616031602691643754964305567990596531683978807755648726182755099763070658439163497808112436675830379323760220034716378490986649682044950182491954034687584816357877319538022720746286830551761581490047053091151010396217041738823159082203552894257561968101804562276338667010990058274995298568617161559507415183832136926616783466010292540992715944824075719545780793020065208722208976988475921897289514999423839139651483087860302349832734056812188871492163864053010489592183392066943190653589755408225412831812827762204794574322996375622790561238199138749643230424104026265385818496143961137510067327248153285866955402607053179846773304587076704523093082765030334809785547371207296591546870597886028554695286479336281875794131278492989617947342022505555338332046965895380855459653504771620909187917841392878817733390549097044227281150892720345105459936259637569427974241650874758015064166266608271607957699148566148253348298763023181244746783977634298559239620294094614064596988323030912961603728580156627175399663157333926158799255011765018371092996029029449496153747352472261670333659223489221439967447511775727742595659397976871041750652884429274386045471073258911003707660825499826804528740866024666940447586483666558565075935125001380790718595396070477704450393000422517888805729197578466493506232094382248225971677291710837490645684965884404859169389466532451269678929656961798544277872230029423879273015398591231004709426293381653181425662463715203540548418368131944356766516360170775825165751418171207230045592630442791137636064904510766981650110714982004125848366694938503305463611211408284894982019449749107384599152201338348919066623554747055562888744333781810178192579114584418154956139296975271447575200237955232623921714002967549459123293463147051353966135850349051258715668067734437819082578600605680596727196130606376220118244332562369976661537415829361131906472865957204357049548432361335521944498982176019127039040437230870762138362471751138312633483684611512015981509723573447815348094416566952051391664639914563827069775905112196626532716599430115015878268452314181984637275592721250858473954238160665653272754692059174603128693524091204241316264942413657285418435806303117243095243610245599106143430073723909661049504529249780756294019444865744913907817668074203873607562833723092963177789423418852271461072686902467149180793398418617818265000636267750882111630221373319381903825842011314630899415618949331271604717743153477816836758628449045997884299443292383103091930686807949706570797971360309951801609778083816548008321510001831473225942439673313718685572910428359679399562620158680254971034662387998866240116392392442160105001730194036732113177873889265033205607708157414321931808368218585900548431218712152662773683060085028736223667004706062151450360703208378391660238331873717505237407127940096206231978046325159457557311267507609658714324857610710409247665219350778273760248792109115319724946853124469529461153130267909095908420756208682674838876905295464409245235906438449215117953289848731234648355477271833252936027044770428238263304699677802512431931563203310596816464316901038452003513759652220694477839989784221566803879844576836278227383144785549541294961821934079591295157966990940187026932526565128207222210893968197920923930507977030344322400330822422374390660843370671987696041632070318079050146083624711405313747813246037026186439365330265647287540588598996837490815489354647502019715452091562270097259267309874260938719206754581674603253107903615095367971941253375544181362072304438189872364417103219530269901730203033879392858748282953793877657189550440594456814935798368939178974027130141623727651062420844861468433181517201350991063784616777602838060866121531932970229331448861966281716185752430272945836666936195328282658179130376130638710307948293538195942657130926824434595430750251662292770067688752873546949029493812006233238343189647935238122796128751464125632691489209442843627961337361084438061676059527388127046816550790305584632904332004407585701757430550583032484795267879041238887256212015017653875519216857780889776375036043896464383489015374658924690356980129498306849501145329606637560326186840825780575664992708703922697385040022088983236968682493548969410017243698624913884293274576765643234497849887483687440044318493597620773995122363263463889919803406748265563783911827896017952489522912732256996352950314291045721542939542377613493612273453911299693384004864046977762821290906863629874465783521510450399948397574436723623337634324734851767112190228430681409613924703065978899157707719453599928133412590321525015538021503967165197064191603187139008787966588948417133795040358078557357983851481288525196552529082099129134967754535114804085480571151594165274550193189664397147424156815023343417386600153404723336274108963924935084538506925844501256917769052526256231048090217109731777788002907552367228356880035902028499328071751121145902266477110502686018204705812455784865398728854200049038398834558974162599579467796021727287761956531732092985812163237425752394962621959635415504925721513098062626189012345957037784825045458640051557218649796075897083414887194236757203478830097759982786319315971017945562185201283028080099324156061613189425362760023819642081883585202520336301346779942252811438260285557863604981096176431112187882733622277751332701463565446220638105657497639910168818881834906139799018427278658868379670012919436773365730089698194875841851773831439121219651972016604429514148997195764367939798799468175900144545560212814977227704547433411654189708645549775252779326115206330382458621951268791642652565184116695873874131185269081095437762108379087076663898003781995925100242151291173207655475280189952973538097955280122955898873720465498925393825175743609356381449108194623570351703373570606303349030520704724267967498067477790674757040717065411592746747282246197951614238343641237665118074352336735867891911206868612006477102170341420014811085966739380196113121074380659535455238163416557329366998058143913947561077553466494142184186317260313496083478861867357377803588390730491354046887666802727564167779411307963122383723694011947486075068820377319683746789709107207829766856056134556529664734175174760830927715291017075693305266968181832864509015214480029282678440996395751160828452646008111146569195575974074024449826663873004041799292220926884442330257777306311304469204026197599978400571487406267038195365514650441547503582811543392796372878724994922530915440378759354141908839029778357023675262687633906247716739447012485885937343218928148758473741617268632727417370701247165349731456059119762383064850775013557662146038028406367968661982141833012861135967665865578840164789354037218919635165267643704993304648468160398446054671333024966807734775979539171521548309843986434722279492676214898948051922734995371123404442052116958340709545733069782906049312024044610009391355852822171775785719493326179760981330315011468683490297657746025814385448711330202082215305046833079184586983745168860341897777528065597201430106764101187700299427515140117281369729980122202385523553591681683913301980715953185881494519929496468450292912630593623784041281526861877975948456892745940637666068428522986879291778551944515066117283653280872226577545791173465583028645956534894829081211854465294262688859358714456368688920703999343070290920922210805950487076012706828853743928685939276800951998461687224321889960419865489497600123524001231905589380183425347774690190846946588251963576088738522347241020046815067794571540087617444511283191975651188682042024524775389988717392245290076955583804597281507997553796358488802623765746638433708098109498315479466232241386575039751430029012361255679658309483825105956456164409149142616146211994035695433958090405543966375729550665603874494226582387938060721971895264524913369473291804090552152826188164996053311435371162398781535173842053057634684965732665634221783383510054344225934066201778327660402261460080813694699067679873070026438380123636239369650839639161569990363187378086120374768401756406125494368788329946027018906613879761828690376840023527545962377618816491864916479751380396537333036410706873391872901949301129583946847097825061137268739996443025755148533484243821154546512335767027559508729638703037016431281371286518514839143523271789027339390961932833161646744375108545766687303242361542900478638774432077416225577219268372542952016125561267218079225220242643001872018659042316676976002085585400377400063511823851359447878819251923435076055363423378892083815166765718965168174610102084152667574905254451078091217173191807526844322091387815941647110913889559869387908988084727729162348969827554999531195192214901819218806951601711130158482400986798328152481395952457771991782092177216623736834956736254336179752996862132317929673018901848793949553877045367330204119968424382391099561903156504498604216212435470278445367890830640850796537085985603604298804942549620300328936063247012038339123491079062938344625088087424627272408121964497803854546603332635808092295068290731421839987683780404638463858444527892148838721972110860705365837316356827439365095673900978814062896063723837580302858854698906118750510404821213953968728367404682912836683060536699752818890856490640572666342126103318899671122463475634211847844683275375907700879955201463094135702886221649811709141531380900872966281428453997098732970157963821336321358265974281553135597247403925205471958118643573152669084991468640192181309862086855517112883118060432661446495559717314324252058636113960890750065921547641039546859567122936920619203790315968305678550820853035137688287937175235877714956277146478762253263062477448253982627990203791026204903624440533228544667265973598196542535644595711850057370058117989881940818743834670178633629008610021640732730474967503641732240919527467240130905139942578609692604029305015639503683167566336966683336044442099049178535856683938275992519826245656392881015221532066495337783438215257668861902023722783327450771591948387515039742587829236995956664296601942870819393205539019793399080361778575728254452881290555669028017371023798014456885105934342214367196759732850724312831683841806080911633000592889274030844040846303894973260630868295080942492969131075448091860951454597315175318823888530835951216730287922766123670269691076429651939966001350568450942037167542339069583324715693624449840666535282954244428987283122705559587049766553500094693540259602218186821599879710109864428758370807808944352998405470866660182942225805597586281931552018539366378917640457362067937947276138776208952383275945891591037939599185962149285665701050580637950107943495362004959381045615840539931489715723625144389380228930702771992802466970509747969982737998661563812047937818662211888497744735589821079282152285917207335503938755171645421002394300567664802279308102290769612557710408904221551198950291932885617232198460217616900720923648016968947641051756368562115404635360310328295448489757406014579096315040861636264395163382746971728395703400537742450358127741334135269048903622257752421288127936651941532125683165558307228323448416756318792791302791483489120175183019950755495410877974171803301317391637450581169183678558891560607336741595623536340340485018454397045772919949276309426693240815876087750671259798395893895863471586577559153804839728254540691654984514351315963229107956081730698275865195975437492606529480984466096380426146019760846143962764897263549325307479361699797121410354170571065476512262963284323611285863701870311390879984974933611596442420082313412223790449701299621290780187257183246171804564684124816697761089127759957981168925685296184594030301606228573401997259988953833584636270541874948463582386714629058012881467983447489604949682229525110457606039903236871754287054871218292173155209390713052580071100968905770296882726229257705156351622327740585345419881216791841391594124664505945320718932982480754734755282453890989522200471744895421168517346324474597079887715982032323059187482100066730230869656585201764562983055591722940411299504314898097613754950364984065899614972760943848703727452740582885150692718745271818451594118987662780989406625166885213751862517803681344732218976599075825549716558072113272550926715355767111516956417788038174460729321254451355471360728569012139077357076313565231538691713253227555570505523256270187375241512574320245424286787562052455051528908121964767600320531919711660729647442783889488416380376592356234648542403944585912185786502250761182952137179693848495274242341206584606589852053979857017713565811016623480510234975007346862267463162516473730722476985621541163891450131262040846678488225386482669961124162578108088665517962768952882262788939680173787030846748664356116535842664271475078006200302020051141101875230751967430841450375736323966628262111311420730123785441697056233654314292305968517150487085488372110291623665065298826079176795269482913204431804405181881188801108388512459427957432616447924553390930942003722183822041730079453434764746297594036064685076556803969549685647643696224950688399243692142627964891725222190992898574263456933947593148539111446416697483890237854316284542873462320002239861295119041165439810622612443560996847544540367999566812288005045227118599098607846308568456954803045676305271588483393418709244573439950829758940605422641401460486785777857856924664394765807589970501810783657139660679106407125433775794644807690075671145741364383624257103882660221849458339724809552769564994055993114017208417498095417445451154918681554007546613430744736928922075395223484762849523626630129862345928584918123867326323682150464016431922473118190953889759451708679327292096812030542547271874669881017304763571348409453239586288187594945096823314553631534059881720857248246650562374742930594006637202998429795235006967511842159414192711615230441505031548596072654936974615252987631741587839520033493174836756987121719400657525761965944241497982559392503766127226645339032854961623873788584075246235183353562730596929064198301250544067894283417158118359414526487335683402262154189272864669216109485364226271663534704159740661195647756157406854767559006762611087141293333485679719588104647307873736248128846568117425383982365933364514471743262389675629930001039201834687497320973939008666701839028430011866966555796908203651352269037219657559147014329188785748760381985259056434802055851617314597223950393989345953139002647281739882832102264085763689738700395969751098962848939326845847785769916558393257284173770436528593321744451351429530495613304937777481616138858068215066994135875042828367384450468597749707756230087326857939006438221230924795194403140679136551866077836932327267765843239004233907670476842094824182179044345601158932190554053833148011978180725198246496047626335716491265349205834941974148741722798294386395384233328424984341182209334945926611301514833459573518291755292047494519327755940386994428563786386543740389625474618230298640865223543898952308297595268933819356747670044610864533987364462835960290526346669335419572411889112431244905397797026690880029988772011159755293137658003983472040206273722954744635910547298077122632037314858319847553480252828776953911958766610116099947714121468865884343113573547799766346203875358162783422412882978171780771419129943009408841035946321993719277297972287907480608431360078131890563472894136357893670996171185860552351846952465927143973762965612431122856055825294884127591324235162716077355371901528868300994652059771891541405719636043881914847521820533321012360796358745565253326116836296039783625687079939656556490791647855460388071516314766099187590415327802332155924902825403415445741730215705474223782015090357027047546779420894491876222675933206937567392577271886132713919026296891446153029090571458301284213051994273938556351407781037825488394524022067061409086923279714702116497461028234638721250031296856473416029203280162485532588711109370685403532537354997166063222798113668008698404791246144197540217937604957501047876712329731611761100782227557617133740514160599131564895874558050839512719402540590393449992309574958820292883174710332971662710751405621408727081059940807766622305109593963361489356830892826817060677365452018653052844838823316077367967859128940366892036447291997996170689485735896806758312265001203006214836249174333586172973462008787652377811226300748627431991492967934425404974877756542847262531446876927008935576993440899977696606182130385623075194955716901048354038671887569152327040792749022700521529147403913957179633261614457378183991755245781920623114191389273902744351734707389218379612057925037323464520723121599253291387289028228875872198627858923310461904325518822577217207150491392625044284629889864287724280223197265297729489385811552812982067641747776472895737886317635762917210883115675450818342130898818829646240116963201167537901560667876131456046904171756957753510795722356392026371714638492362348862657210274597118586547263552840409801535680646892506361526881731143964513537477673171393501859942671681118644282717637278821667884691462952864712160306731613189772604934548015820955450359979961601666507324963036347768392453742625793859437191482061807884989853706619760468379092660415355661775721287966443847143575752323335761706615843726680978172982278058593618423668400180401778855537712566692322433661164085781604159268222720955437865237028836894240116180258785033448575293318029985152492106421507056612479819025429633476938580285115476354047282710093435484235722212880568614759000925619530935071444508549217647131262136598315995181981230479722891082828085538566869726493017002989754831732442007735719056598171512621126037702019730644290229383840816745905638955141416270690668761109725875497133771209000339458365396642158401257042379646304583857209516666611106967922624802958126126597683768056623317076262052455759332051969596695378344173926822790655636345978500829713059124623429732965846631385800494200837504791187488826958596853890668508903792846455989244695192831110002543870478323544696097959923536413527719092115316809523725757517482469122592588242742844132976428671697206258020472605187187873596299275254057208986110481150593943036050539237029580172920729545858554080890903424020705272012670031956536574567115031368746289285012096735864858786312580323732275048324122005156375946772591971789618713019902012259404899777130992571037987250950113236803571047022472175844153893687145545168931777671088883973783324933254340374154284562793227064865545640302186159791291590773801893889034132165682629835709897325038999936433934064465349095554848785287321800460081855556954122135409109891813645595917291437712377093527053641895983156831522111100756050163258841684373509651901170489972276354709107323389477341649426746734698714360134326742896343321788075046713302515302762016100163081452229418475426533056745407901210854409668756049957988746106280183610160906531026782150137540000308652385611452587921397891189119208660941985634664011231604619826797224191939178195092631208039898415873729418511678717379357709755195421400265484716409753061149771203936846729974798937035062432291706274935894505478740248611989676737547997897043280552025673706597424715835591223208615338781327862677224904838721029634313681534105126195883647400883070559797396549549731532777939993455966834461278985320050484530711753071383917157113721888999717245265371013343284818279697695421624214215317533246059358560803193511058524917626131929689629541409071466752836918052038092918023535956687756972366815674960825314030101899605026337262733300299644603706404181610323708685836485004379241088155505099463898188740715205668359080813727082727476346792379782377449437879997257709637291931222073924772534102514297979528800090080481246915696398299455974287498945020547727814761763211187219431852847967305019203388217709669048175714792623809551758592514151240072562021135134223363618751889738957942454807166099039164079083134245130516161472885349955294876700150371586928136881827126219195803896054459013117753516966034031156452972109063995337354420484036278687295812900209631878219881638929942365526711745153828525640363185999795766589720753298833299133527401869579777779346320900022290769260144709534741924502891975275741634143507070894417826242123856643990665417203658036436109595603200355048371895058605613046895199695682017371882025431492050317168486408460622127417991094175677117643494953117278717119544505470513240636866039524956607540709029495496686106168271171692284602351109428888370499141675914396582437988726740471359278670360173355358555496130011322783756616049477243887701106152451141706855315865036650565422744327532841349422075196379729029853350210077662486180322719280228227484822901264360283260470152947292147214737125911162994821159568996534587590629504942045037147034976156235444898690448291877733619650738926110323919325915993180536690867361209461252583055121891649554331967730109198229760535566821623129830763788471732223566390209890176655174387181049059316017609440544776124088702228472259804113203801595053575962953641552503057035378743565277992636523954998623981604349020195490361205783439596054670376857286648792879296212137803089273266861424290848255487531617170286486624325702458042690320314450150664663653652965468828164313960160045931940242678399994450924108927417350516355499380795912499097045133684325211370437269168851084911664540989823365786463003733349373821198188378751560609015373054525855925901414722194659343942116294134277692776431654209107455530881335468476435981144012454773313792646460219915621187721072690857811779225086381679754054569861538524034507603971298408448125550138995975451186701021536048696158347388651486359657630327340764679652742797618844022735058234365800130961396156234944740228958377803285454203425325595608942510488425554508677008875267212534230727927564165590434694485022056614871490672914846213731218895032708486800082271683366162771961852771014666731212255573445479278063400517323020143829808905156672786613640098655092913796796941512973749459982991699086558520265739883034801383339804123369665060799253611853972074271720011919858425085263139894588810012628834836781503135374630474559809780730707478189547718310832474292947574962615352981179998132773423308288344372995673539900657541531555359264298727047326195330678256515475282605425307325907820435499046016638353693329461768343534871123386933726663016574224277999349545048667509998575484974044480520001540832582047385634615968470332985354469891156774285850159576870537296183240762302800950987330908277191212179361812839614507369308172162444414451538782807667879548442293192999725494721711175589656882198359273233810401379346541742526260706962185880745726718465874185873209315085867398798671865389197258013218159071496493546938400345778057668261439782384188851259245669368665613214945745263547476876962969304087433577446902457118873772585652654635970268267477764797296164755066149673790865428519107982423750543326738629804143362091845778011994243272276108984971693254340730366725353687901779279740240167835427573303079817308177612845682040982877364476152982749976137183685589273670532800379011875030437400655707037411754612526741004000071873683136558282590434260541790494412896675413036579025065460316429607500137415419497333248960106712766749634541055715197182636817483739341746160635992837045918037449243580449164827723453135678161909638297581715829406010858375685605939651731968314811737764742061344438726485165887815232074127526010378260651349469490005186567717389012765523459825819385542956109690470676848050960720170738663327395856577088460855134143327250226695350454822926202327131223445666632696844307052469101370712181493679393525600864668912368218123760889519738005473234715049523933690180135827691552897236854517550107703378507842287868992445027578980611541134831164996700158125987391023130953123763019805596958662526723418087161446162804274508501661159644162218915751928807390293895932740511838342785277790335387703508821438354653584008171008940758139366258395519279805631735226150012377367877139460202144151341080308485758027361345811191258886629575075917408250754099903608502760463729537075220073350374208996390299028198610222317698947118684713584529617577013591976461254704881634913179504964469166873472451726382622393591039040294479035433363505612793310958961119680056086876795707598252726684624650788821531633878127017302768215103557688515728235905638823502823743917044390202536473395533178476789931491473875945768174417409968898163244085230639382686704987923217831920249287456065126129267586909209773109759399749785191355470654546484761621275509014862674507673010426937242982357418692690804089390329645940369687524875382386103656191182179279395903798784084900349954997488050149254668387605240621581916577496384441146403230010422863983032408001287412768391473388756571446217053737747492807629137184504178483885422431905190730725619523527099589061922751468805019040185381987514614444385544140860397111671957510791145095674347818916310019063592418210163676373923191132605766105558903949684221092851123215496851893977387139472464188983075685493332032359970110240371750677802310624672830119807729886178917946690397289257807787932627244167754065471438335235648981048274322690172527029200296746064092210937980899817124791682390721574176126441135228865090460901692629159952202024850925846972450017390116422898394973549775257479740028738983600915889588969619424829677657769403263716543722892843169685812788515649000233117754897633414034251370891023971304541095992398120647119686562086878194010735305826028663457078841722661950732163931904418151227047249151593758836176905729417361185540063414209610216671588798080028514100937674084414475572148928465358071505330558011403988185664569671441539064839262062976620127654430400514435736502796552227137681308416957587173948402082429514825061874520028062415956773701531168116032750650417082616743459815137223269155480890249859297044281320556896568415523909544035089612462407607620214305144663984860501072439725197485188111555417131531554147897510619246470182952167777798902985645851202328436654507120153007198049283599911688938068888472954125609463106425612819463106394931081255727318488339520151140470546041955232762280333562982985395659618525180821901439147296813976418178014463290769831005376090612149996111260976692554020796506468526912473941069186171658050903374166810221923564155978679944168070580474275282637993246735771811497188647757820153317828078683916805736389429689606542853301340098604499111551202853710673627297991289406910097805354612762885934594206259233471727750421692929973841041253237066965784739942642511594304716143134927010320346567010787506760817472433244759417507412239086020916977674477246446632591941661162731603484735749996500534788651384399494557423245276459221546128083975678519169167225590421362819785479139161346537529482570483148712607483340342025386632713936606301901054198861666389495770190198805744703057239577959505025009418000437368120728278757838811000524278658860237742858801800857572043604630845665912757296970959380503587660042050503237215267456854162164229328076060923538795210575494013532784615920397225561802211818397764208183801267819446833073752510275000843553380318912845299024753620352497381714379032429491611519205967890242235617190136980843654990693968727799358139976691937547797867105793722686453940213491099318037437025523773952818981005133969148340566863367144627574517741344178882058174548229118284464029166904192355595533821076584483554011524452129321802998856249694842104313893370045948677132633617315577221691758340138207069704500294972886708850847129904743781654318783360473490288594132775210027439927811241104260756283411526396770843029796309189095412311624232692704779221283051263305963784680859499573621714029866031675124161333862093581505860450883935937310484045713283942504086455573152074605539879371928209210853435441291266889731268895204552279041206222271241031752909102728627210046414070923947991874929447689973454371447840941197552580509764956562802492171824664743452091088808280940254304264621510908879491037701885885086425225620132806551234405388711736515591370101762120658634962652781067692390974919309653583765837823130173854711931509644925710704714638691780636073466892274007863283830337754265695118991344781406619090768609894734176318759730515419618171207233037558113202567137933425339886931144132186060294742041814418435127910109169093415206699664377800515398610590657404432329459398232843881183419887921322733631830308590866153736906630006371591099825894094811943738181348782570201493274739479323571587860227387606280994667847876174969216428703411004640142060240584439323332217571815693313843286591302398667068020942925760356796269945745414129071273576371648151426571325283788628675993608644224848330012180677405553683854029630217059593914095372662222855431168272072195683621724453027467292355565592086102402285595703693486791798796424666142004972433196209660465693091966289268122699411428378028831210071600209715779377724119317477685113451249577721915343247773076767880432055857533265859244072343017237227163234216203367132789925655864138907898324840332612857211457627522414349435169190580970526303293689926795116221063812840509495630549232605254254751761695499561348605712841717054878844601175773485622510593462594373932371414416634385964069644344243422011642391310061479722555081563474023728310491672433840669325057844243599106563181712179426901918098489821968040754600999875146040040288321147782034011886488592259068445106353750817477784664561763270258435290841722805317255449773159777875292428727336069714634282070458601308416888014527568686855186805475392763548229006775026598384698164041994467291655580858124198144612762095647138852049897633569307270758840492323233532177063630151393511563541560935197031689423433010147913497763830859853315092541269856789007246043513769086842946081263493165296091593604617616808722333473516378350835082968834135672124520395064655181900465691355084521632843079057613463900296718398090205481295710150445515580934770395213346245069076184422667084556152694786813695630508201787960213504071633141600081238197199438312485848208315101834532088497426258955609915299459462078034690675917979718648209556185525433340226987541473496654468257900557991805445755904531331952766534170818407616487160838927765887360294848364766945509746274381791948699495168408915765800753756370544197457585993156571728947000287119603878807726904402038792687666472548392212199464202837341519932029175117926474428426469211474961536017633269191482218246637365999297735397487895179425037387344552183672271221184623031694724410157891583941880904307003789964625456657939332748250673973034683344860768406151458306761591690415881856629467705473497263016883187292823374406226106268907926858811274969651899089011092561873790555548355538536776340459626696706991311808160696817079310751391819827776609843566298045314544061111426319004084232128662537020146361219161214766011591015783329713042604812375052050348872041659639115033450040551849631645692913931492560819169967403857116688813621694139901808316468515097865336733604969151767304709516765984944908844771893275085467412017919392375185667173467255344431670089828585601013311183479599348649046578522770288096696581295545133656695536769108616119230148206621466032193290179054349901166497351980574190368452809721641865795717933988337607660176327058865542987895076276734923256979446230080553265760774500113496549376535863505616249888703194390779593313709851729111036912073846861481983726384287846019047121277896946258224200715162026559636358851286261735470475790798045759895101745629783938506734438680011616273917455523609607363153292924950848505815141349475067353076557612763034436171652496880652679784551451396511083207519872889539050542259836578635347939263631171794886737859946436057149221745941347215818048855482122807591037046537746464495380474418409912307743464072727921951492168827317702875735776289994468274028442107397692939055215456288151546071168411745198836228566486598237940547681623665539437152222616008667886163413199224830994934507232592345512796269656198416510495979987567599528406029334486966449429458064561828318586103380776818877344934252342593703391607527887591148431917327287270033959864165823684868493314126568801684784017620385733051951042951838812539233584099669864006389107328709862440644792857474527320460752102818598872877410373121386529940404764950297446345106640597399197737245374368914968898771379968838446176050002936823476530241378040297128755172891437533170311833186825172047305197354322394078565738352891343673489682709328471666800877071289075114400541004364528026497393370700313580099571863758035556855363486848182940389822407222822305364809703507360835828312434244829967222774622683333686732297061411223213155809185351213884153327494927687011604552239015617097204194494769610148450539159369769151578125859215724068900215608962240457767491693970366443409253128095008557240203289571281072578109021604534165775794885917047809645648025756361092599170801094475968077296679866558845934124479138098054724621946064367748402147398312857606302530496963356738092228826573379234703554640013077800252504192500826696541954390876150727765803811446020374103573086399343226238118955711164596161837579189540585763317458981773626928142641019267030925403015989189419514591355797712802959194882959096886637132731354088796994701906439560859679040012068376482504044075021508276356991892350826812261654071074738074565603155042170118997603477512142580405217052397553731584464109328838084926236163078015882841604407678111683295774884013086761947368251601079803660178845070875437379262443349768999140305584355617370431015118662551001789031948272809237879429519245709525301877876734836437670284489347437785249750381322628200520359273355045259808351687351612156052698267363018127091167170992054174382362975103636967198467129540156442139142503372360460678298423527638781451124750751012449031296296049029317519900363109039294189774245813335509761063360398966203002251885876724061716838078755419137046856535243785243716517516904827751310051546043801834771756500825020293798661301107203744170531523405916350147939458510596770212345306907758739579569434523177114195848802138566939880080365761091065627661242311503743202459493556002439056642941135179043750670986223344906200574811076966436416121149542144468720603257482575536285382204541373779145062957551366901436039657950419003899357546062063958488273108781986857399831375845657562443313032120447210721079112600877401429437856688518671869221418074869811678949285021790104497580842987133873585377879332789280109637793698622016756334907995359943444499708595693448673677189703830091120341257193200425085047388285433953709494205848134767141740696507150365383700842544957830185189503288734440416851193813697422335125412588479657880058728279836359875949257885900749511999169043872009555198954291667168593759082736219566781006304188633977226296239133117722793868070812082045951080095711869740725243619510912913433172487286418887272815980259656031743509689020675831860677193597474909977155645118000372308527646733417207572528056191326185697063332481906326359424131838523789706046343752714340463633389276969544254506920680822097571588455762986822645705885274725353737702461325453131527408727534107032060500613849708708348968094493089743557954060418226963844853399890751960542762428121141890619209763092422444781574120721465269837303820752652012767141270190658452210377327117741029560144242406651770702679528819400491338271357207754725560293718891491043599442745996156879972764911151700512047134595009065292730009730038432327902521427607622456367654902390720276976733973552653069104580151378646632886351097831406103074202611514290423528870337708306038470232567048151096239378268237421716783581844543535361042556202421186738385524578510612525646160103208585198671731244879498640386537731734199897481447212141117701919294378134073205845824580488974537552925458751888017211522458536618879046913403983724560526950816663061619470251918230434449520486438018279634262265985942538040350955476470497569953809332939512178094783271228211717941393075589587555658641699683981676440978279793212461282418379921144381637212643270094112462312575345608278734627456714784647781902896683344808088018273840863957681361531378547595955764081391694755606478543396723132958642296966302632756252308013717018886554847203629355556617677996055697260631519800636587813818653991392797241002920719608693452462544356506610060050860378538588900268321163009187209037870803672922921067804933807698264311855095703018215125531722866569385673311907108276733242853344325116714528310723623616572565809311101556978638156569682431209476742374232290919717438850057876288903057878268245451868901092759949709855069970045797398214954196730559449242975756078142144365141939053123328032652957377041282685537181594802559977016344181415075233524108884088838115472629836038532036984441033901345793939138980985414597349654644628401874805416370731044120179502955404708537053413522226195162782221308736999413032434293572711807447775589608065876948891364830821901425968641033412246803892525131628840637140312608725010038303037208178885483229728458253545837190449664077029649464904626243602143525901699317932225288596893904835218361207079568221160708676396262142393655673951182829832103692971596654708496441419340432705809879818925463104138269047544703461957536453831697143006010349701389240196872867195791995485727967318984174508305683271926566033013335554669878236841929880577130015520675261745502407861928520088917030505935133211697510134807785238945387155496273235889382061318372203451941649980906404137697798202013791623149859745089048324545542882694192737124979951303893763438490822805482649336510336344299717012156711606711397119775493637006876123651338517986258490175777082682054507827292940041828904716949442532837222657434100998332823566786539550384087172264374249440887986797185947355895436373583272829073016325174228491765013046486714544227346446149008555042404050866094370814412290669195973122900463990493540547195498134451137638174166769221105911487051287816666059056930829878258213173969829584488606683540801210245291499452040568591090385468435826764548156608289617174251527148923046858930522608383170519024836794529029498043760135763135223095155821939707560286433396294717086215686747888476849725449301016030162994422115382024669349615137091961568111162214250351578610294700130344136855333647582158615436424310551931518808220137984393537069216773177317922720348546669389740560793966903002481635797435039061244655741541316589558512354113202835891719100028580873728241884804909047706146935316064894620388599189203026816255161472058901108720696262830646676788459229966211649834839127055888937208945882133042427316839522793379086972413663619373071073739528210386865757158523856583637704862476723799091615861103420121324782867867088277316222410491428902178843409561215504108134320091248734162655580175431599702473872646407011590269816764158427854274233990543481718079386962734161736913183806547594424429782066236539157778252659510177645372049920312785964214031123518402492506885907191213978776416470044120063013447854093948616454836248575001405878876599005206478576293189735908404175310748623932127673169893563058446780285602097516796856469104546650829738520945336849100279554974186474324555189918067615342195002150292693585013131959540793895588408868604316330942013453962793995898053708347093740719752708560227735330553920134965587688100927438622149958775739112322550795952652555512947680278480815574618433742853220436203574998945388379324174519293414634395746543459394177245643697282022838474582005822984523255695213952009700928468810887738312939183338736958966937332371108606690964946078719703601654701203278670252844340458116869607960078554210705566972492068909202009593990165004209826563540927745110943989501621869832648831915135284362641291534390069589593780077238814647627571474968913999858541911121806111091502382093549420425074307336762609165057715388711822117120580158161039729828320616239527213063655857553042697504130303857982325767147981868791477875849867105425146834151348152297830757618541215694103010772694490182636712570539834773915483626200379710839119577091388194243300994754515900021174641405937461164375977306344088676878084263795214422780678666225495591882172496578797450872802054069079924974726552150712557394078976187721234671365931829848078271333479839261598489271119368074679285611718302555270949463525214238980547164375723456770630088837750376566309649411010086314854749399367105891104321633879979935670550495795597393248664617088942378516948310557495377265320057418242670232116349897160958878246214590820554938186784433085669163714105038458993505786007527450983797552816626864400855224494893504691468699888831715063858452131659918595609944000998285045904653627711916950711260821662499184702380721561681476133183315952158281130480683901977906602012981342948265000734733307341545343779853129501606667133665939835732009756620948838349183391191836891750113333758826406200117357411601789228860640352199959348903460158208654440861399456308640040388543838812041353618597641876939424693095743581927829365907814161285088044884723278426645539514746152807605974392070665670401686195100428848975110226575532687546816773155797886380558254508902350101696882954639290525739160749602870313136636658376294931290184130969531756840933450600165756205914653793592014703742138512376939459134680705504650026619592716151006387323097612961717795067037314076394603486822539945931006712015542529856752170027201140769970291349253559659096873475964313390608112409393895843205331034365278058971632422621814317863146214862206381200608195947289995470267324001500649445313081135234178085384511160785472765595149049049837583160594730307284173642086490567536400080994467899724167191552090398774773575138511760152438744054900608920352531525600150145422201958794848968266000765177736026308668530936101242082839481910870370139078046476470274421566136158191842747208828883204803644642362821606658301519650911861987774000282447793656123726845750662950871822765871916273205315441793604221748891111937409690013159855233338910904944736697585468370046020942468073623997181663107293634352249703580556699958866656494670881226543070898890427846563420974474749332230448453954625037911289722486108979123240261282880169857767219047310158951944096946398376642295735615583106990957316386337226020703767868598149552934052521638310018958380953740907702344837510429016185780816596328629170769867601714658925731124272875391794031396238766549255486646563086236760269093096629978726888229834042482245489691564430949438041102122799965383746500717022551052078284110429262929684813782577026861152807942050036904273828404504723127596250211927297412180014664722628757088118615241810913378020747289724092982513763377729268315114716937305528682496127637202552796395371348116902887586591868577704349998360252434442632371277283226764416706827824557577629244154625551777022736835105642204176257686947724090293099819572532496763864527761621830713579071458272744096516344634689999063650944198290389555218318770213891120106963614742391601120464039256343085318437640562051375480895932393259966066155101975272313250254016079406750259806353909219289633021242070750615144294314287932452716475232330292105782020373209628692609717933041733476523505492829813181576422364236836902944602110829040689325627722871053108735637836492898700821320010104024258203532162929325974332618794599087306014300170983696867207316668920051584800329657587408968166196721928701438741506811440408206584392811582623473721809839497241977379121018396607330882880264989779227050035870703026889836571237460447832698751107324897162649518862023111758880665902462822397883672674283463233077684406439373436070895413923247488481208028360927837333569454576955415421125316129971513449498122329579873534368484169087696344842517452216046870256824777707327238118195016782214101381063504638184394051252943228316105497453045860291044673526093639675578103827739366635906843436816746520618057151162455442341148154319733926800026744671123219380573722665463173918758897468626887790719751474220874156568654191855075444214552542639563674531823547259697574692914089654168949882044663175235299648351934477429033570758183045367527488288240268776266079500382910590810063862237322735510520222136403219229785968522078691621800927993936621356326765484286502096830117725566296251004138329026222494119792983475564958190184666427251788927040132813086691539421822234964445510485624004699263550235729599792617774530260934700995359475686292425043864976215130770740821838177373899693246861724726676780171613907614296736249908517468303853626450974667269544459791153972248923915704579072724084997692806166389071900986639160081554799306864340964417318667909066274159736760135531936261927925428372007782356899141544432893566211807854943508954048968170577442137218810530228277232150117456498550095311532389420486510847079349958725712217020471158202806660704351874749959073236509530741764168324979230869880186593889306012195272501501169400357366923186774406337445471036759535113291480675485330758903201821111869192850872648557543865896065255937629724307613432643695470309551226867141423280040135266541613847508824173564318905525924106668029913567478307022035654483240725061905102503439257977642224108211376259577528392634259441330535084199707900548714189189456692392351776084471810591593974745787003656430441242593547045167184919701670296407350841884013096470724113009157748071140469561437357746424576442268095980757938733427635418639928549796451858261576164325489905214113331493334327657809230877641066959006851968253133691574919907725192615532233237617375291799614816492164717420446479536238517764119388219397515094326245503493735642661839038125569733347416359179310811325631498805774044114824687588143501502118434474805887215494714494718156890109611018464659263187005187965779498916925516606093448862341041699912452068297990676109066575850281549352628740293987447301886258218870408363945693456799473804848583884498999323216773519319666875354198598014867713092720852368780011402296678169463031994312841293380144794998040535646009646331420806724737543265743453838682326364361384582054169744044092170320863109402558094757673148573990789933145925778870660135853201685386156035160834704492548779688105572476191745263716057705405939676007731301434131430788653957549710628601104366167727232661962656395868395935086240988190562904371346750067953808513167862468057443909269788708758841668785111334794890607931781868633802184437535849010234044032172222301426013639990980962948729699546120501136346204619320528596664792666635358931205560695581510564788340558691434023997029541540056278607555404562592262945604871200221582990804807037510562857377171196012320220360433284018982076451806246267721592295870325315708255513170751467534721285223043750496597089499695538446745466107492179122539143186422267684092050942443292971857091290207216362648029990622626374606537898816803488131149274253276247064429355863465085730040678961780188046202805322633427200489700659377898957018793107953115022519467394831140519241126864548449020348675478898954257979130125987621981652571352874165012828372526882901312256787067967730452551560574702072274061808736089299948406670216907829777842404196822568755395407233745104692756387909453798941050036423065160016858424490841942887201871412102513572644475834426240512794554533113812513478095031418911949731571263284776981807922193058966463013660238333544583325989795459034793884464492104951904676761967874760580073300693395709930772659980620379657841114134508762360376460294456541057078353126289650176024395569041057216963558326842380453102626473589193612849158246709329456841570738405712248130525217458605446893555909821268736211927531891359645597074142096951995377612223363469167962501255790584598406786597553247477551807354925197609199849603692361382130834065408655011350475078847313402845395873042333997370769994568552498026314187630818215404264891430256874725434025988616512215707990966570875063718550004059744175545239792806188510285629030462862918380248324151277295466368446086085178897586885820149955537009478874366893750773501624310616153241033566724347156806414969077278824943740216568084984469430932460121471425576854725729277697276029197302847553430999467638877880940170140280123379016194902290754119040219592955877464749483765459261008180566701731299987510460723603947612326820311780603699708505625739440529612475506806456880536737060178435940459504990954250489061457943795182605757374114678906881430786153954169427317417762855188724817971125457089161719117326365219066641881436494419669474315147818885227354943379696644467433144613495810338714573406119382365289968076349528460831669009141377136656532109225216028699707186544051125271597282881209931382982756147624252695500751436012117100358404011323488330672250071116860809266349195280302340367538044374007956510147841204625957098439229718948883922516091792760680599380076386118682342906213514523454284818137486659188298019674017367774172480085916822022998019058188687816351468041287958364303284839554519593386707958788050745844794779768804663488502904262382094655321823099184346720411594340079412559783359447389447473027358654021164639493983926356100870799562171250689409361236039564482740650219774268068888443113420295075576900022739906412343194578230741691892070232512724590533797464796874815704108613371562787072968440816394249480595007997253866358254878726865645484947519679876864328727094657445781059370874075627841769833781697096613591430659344036510042835262417830845096049948477110289459247153834159009373622070470358260566342491098716252545215571985984547321342234839109678894693134611772402063978079546963333846576230219307197964762824490258662388567602537891150335235602799246949401987499462136100714871122173187776512366301237723141926692983517215782931147348544008635351578500971160775895207568202883783688668271776709987847206847234251762160793840174091198530802410857728195778696173900754083839352450799715643591961215383770201507279415695541961889696938726735599046543101198269385511457865746830424982226118788222993590232538379887498054288040118611155066329353208253564489345859697424517496423443345542767463007964200664072475463394411080700337818587221825625068054488369995307129390208153785539727091456078177423423239969870063950431017928719303550742739090313939570939139835307401743914854752077249007221620955716277522271193347021963054233018786737816164369979093510770876032775043924974423548326626300999844349287959446215387135117981298249953948030082316086241485999036906801647498659029038477486715049475667459365205613332154868179478967763190388948925373660662977746708051793734096815828837976888105235735286569969955847772725162702767884395339251768571157653510851761775917287250585135451518724559544816740799069896314284528054782813988820906688257663731417725254643351821747728673102554544381549869161654591261955989443153241756825673965425166173506806297963943671256786518600252721299031386146247425720381922054880042279841036317758722796055275115725576251163931578327803521271686041491646470999513070337826486875690573107984405303360867129822340058993986073889694705946408424414087658826218903899094741539437633629726825238738902659979615978594809251833895064892439653942215407953869317315873814154727519492278360178221153311443908000784717982658850126232915274895199347376901315679744550413748605516994624987441951444999089986838760605028204485089413427259847873537847461603813131123681489360942503238116823924989761774769439406225166250035358241494422859642487787677056746958204620168191344459169985288621943857587712917862542261237655348942898788952646749835526422955513215257963296269385342002180816147330013913609689714836912281277897631760974434671223897846823188241252402414761244821934934145833015738044694045344495683284664008566799847927431794832631172563025442322075476771988345519845317928596107398376285863684144692597889450716993087952301643522204244473968307354863246994033867914674546271473917081390558178194982815211330098829991741372685903155451923621713453415679730832291488707779294821408315003127807924050460063854772051359587867860642210688395091801803033620982443947076541850404289621128658035732520343110407333735275492218653472380103883405113978861098967628137412463047780936097545196755837742981345076309096223450938146822842473398388719708368311803625187076310633492901927494145859951903750070570206048492902212732720636456844131340644172894333026089714563812512309126609217747637719713866728173788881154608236830377611852201089428028142027242664553989708297298643675163092289861231981528504967223722763017738447454979694230494706191359675296755270439124565736988077242907355856286898667252209168689323839802285689044870057544507337682135578849671598445717459161123477798619269255409516661435897692558705377857081460111512807464784912127604794404835081284737748902289672347883483737740165337758480221897047628217757718233135362640861968615980054900958832872924942919582421100534778507189836842866106664996158206413116890258195170702316449473904251503572467666755250200712705389641503951493509402762535154110324148143937955124983258303352610049630167585522357266914587415166384863712590938669618898203415822177951681163669800563960720155622619064299419094355485846651587358436370191585931025175374564285565558291847422005818848784024148083182342273569963001973929137834312935625720445317260213713783895680450215963224841363829692533425656718279114886489182868708845019165646869111135652160907796486795723533667431051396292098448207694193983239321088016075564971198401491381551133733569980944234111601493101861177105366584140527649566679308147824141150323442207539583790680338847919288981633970662171099291584848278777233740011831412608110038071249718465343440964066205962492918800781029733335698261183978261611709814544963899795587090984174397796175740301391449779675381213630165093555900671878164378385127279972329079834299696180628590951473699659693564853749253671512872445801671209677159775786109091187072247046339387554595395837498622859143135598318410258106968324356022454113542603886835504807762819201783599806623290522697087335555662035594365187804994962363575794973662556191697265410786380802637363701198867856342437630094512120864247614007983108060238080317759790389441956808077077888187744664572349840972015178870588876851372080666228176569526224420975312020564147785026887297419035368518112946565465669889941284805616961866011554220144206363638292308339866752156558053676593637689686119461341919845720377100573523934170110036139462933774489146361281210529514226028058948572328894637890536379572310490263265814077407705386633617463739198672850551150530428802495567770526935912410256539589861104007559842472703097589610912189741268867644305234862775665493633276426012070651031107398222673812861042894542002252432492400022591204547302029720845407593216035859873700769661379450186420991870918427895678766859402181995047382365035368848570993771724819091821442854538186302612903024788702365820977553802560822174858026302705462762949285343718093320236723393621621433156014069866528221514728040757102386178706846467339012305698275880541266114051242154428041330620076384125155506067516835350489127481099893014697704890919022575495723562806073506280567188606954952805537148572715462280910982602709314071385173053216459603253561580584633840460197611078636720600972561975329478253430700497035286272656593872927827835925533980931100044971296292407649986003384173396570052200648685521583503017900689212030616959115333952207612091553261686057875667296995668785437662356928026154208439889859114046588545276221488750202968410536829571286387591120374710580485852496242919936110581114718779153460286966804474307744798668897474611981727805416130803458516987901156442863400232732036906501868929665708283976545536886873017892963418902771721253333551962310475090038157587115242132241434107721966129612665096679309929651290109349476037027414676980391594417345049903155407407369140219175950458813359218347420260566816395443889987232029844282256487087717597917697974474195241944828277533649494638490480830815765310123381025223160365872193683963443630092551092928031451648469511778561226969270928127423510535343461336988356439354585154700110470815276543798823080263800744985987592731626864679699933728031622357108221783078602236623279365504902171009713411460838422803194057564908685889940694538239368500182847865577306960263007274725026488762368355858725747917023279193262142156735736936820621645860374135329367558081473977537349369428326527959651873794680091323433379733297004625016098268057715404360553356094335759679344855244264767715956619726694041434530235677319504954442828930970083649852348625464530541111431162890651201403030919588873110077831521592439708783893258994272183818287841667771305913830735427490983542544943027335275323345813501637475254040760020026230624102579719087465315102982190739426198967071983337271928077120059153466285491017792026161168314158404535775545220033695835209382848104993140007314638273582571275238191382111275477857420052596113057670649191113886572513744751192396921600012744170095291038311736236835588785899607479510920166996116032142070717294465522418519147310916525078023746795398947980746644318355821748285785292814641125354891985762937622137503434149497160305066531091275359349363644643397337053669637927787810606494443064262215184122435211613478323259950717049844489077099084247451576244712469518213144776628606693949947634193151655732381019526740356517934060813853209747935336088453433058736487562787793556157196263651901663744674728180030115473663879345935535203935244836385490720347765377471488690747096974273899242947791366097335471548141630858273264390940130491645625280815396845164360298652849901327865500084860111034428480476997073602394212066373029925605150640585507769440200566338135566911514212096356967641756557909306739798880332886918259411332725988993080253986527363447560408277145271192658856015680181594731075440458908615641206945808750784987520076837597891015769701297030773147884147907157387224653530652796853124250517415705873548518353295643512724612923045845900640834059704454737966237040882205655211456096126472283374693641566846945263350417356481099657025081695486299387532953806397656202359871919815448444286130462917322648699596533866800387010942342983441989035005245252573043720108178640771412556874162144797144830523002085479976619578837638646503793757240934943251008226348727596752995479427650151663472211695087585316414500894045724978220656258709763791269205057834597301986733881601969988663571660263208324542329678009756463997044839638698971546800719981790559122111698001069493980223985551904391824469904128981282441780033527103040939940901708577815952736197419628500384426157523975298507725696919528222121353919134667811131337070873549358352596864460588735337133683513499438704450113191851125314776157327264248257785498597552917303430021595901401885759095675622890536346863015968091637910444658597597502930326628733997057138067392845555996373974727339148581578016943972916316769771807821227074842840642833427948085709907336476425201747491910002420641937277445756031820244905735956536172433957167527924912830241148139715658784677000065060905022941825084972615282788650713729174755265489394301605162335124198391969049719445188571650395678385566684198602836586074830663428074440230621011353977363234536215861070185398608679093424189060590493989363957767286398563341055845737581334705897790020027027943571665114209710716160392587466340033554915157598215614404281726855051293193664910445211697000085454717451216315517556588611214920927623826752165335631790535626690963841271893145044149347180284580453608103267145029038425774500774747017392637312318832235896620881063533424095091997810740097453473456143893061029029166132126145602192310505655920081148447839219866371165842213290003949696481732169135292808260774760418381907412870824357446430525213784515457401696354169161755101567920937454933508350840536188048175883703849933327091867247435383458485527517138573209117949107363179709836079831419564128204061922155660857390474242947318443033850163556816941162758250518851149812192947095368040584204838463512466838796598836899355440209162880666039873064867543509787934177018402595906609332493945850732396004004333044287757781177837630627848550380763492792782046571682755092040880767525225192183629121279274860352548911150361856093701266534606687877870399921132291329440348880348888372458734192031557225789114826223759057385822009734120194930738267148982359721747075084551767112922866630259204699197615944603006231601695646856710038580145832287043266857473379249086682361920066156073427414933501460522828373053529338723667035633297671338987590708032179693949305739590578045535574862375782227907682341165004964605228510088934450940812195536789576773833393844496827105410262534879984332861720823566943981915056034189671380695284806329993290651702770283177707832706004185175688398674020396388701186069968490265875314908177442371986531552344721084663632431773378272273846528738956604373117599465161137341087129545441508653413695241724733656552610200916744225684623203945998664987229065732905489790599957038730813301915057454788615879084467058030312369716421833557114457407211862774180024077708265872491675089851008363549727445840768166168189371167764641537827497654907811655057297311318924549866356712884913421927954553654468199914470099675686808721421656784920692554466910470691471936992000770527781496410073871997572964869696429937762463245257929006244800654722943326860929348956992506758575945468573625478466396923939136839830141522367394042599450868021439045963089681884760247644197966089507600286951940157572857983921654034151130094185715939713895861307812017645058898777103606157217149894802645316995950873765998205616375810185711362558078119345481327335093944473887912021007677349311430318102682720835961135004394267158363457763285986275276271478648710463086922867070322535078354522662281825982013471053123584465044559760490022509020595012270487998752930795927575194549569355522406671641246132220099527311414003205921136723401180947205550658589613028048079147497757808382211912247046486840295305928769663316297300811142409055779877787010121416362628828789628245168216733899030894821345664477729725647152946650730384180425073547351143468896417242158506300176619874889338120333235775213929549980639383833183430664554550576522678261215607649986120605282712781024541081825308837484563071199510411377232232844206300596130481512594589576794608892004010846916638820239643346618466073524889415520348524647722508265893793691638609561354864434305527713021284948023695296301918417905312875985589785545253811580906431209298945160623414953164713522682306716217210426242816026202046497422778687743409106576300559086999716413657365547469073354102023805201065882484111122689962441918845303835923263636704832264689359643558571542930350043672674521545861533785876989844164757651208992866618136855007857570311455553025277677557851780380666873592441951739627295010802320214348474651675361327049153381476389534630867810871746632137412885986290046450241235819640223942896913631062099243718097328784012225679098043950265354410435331095732970807561826000469834134466429622859532615476456505119758605063650536743180294367309531042626067360194600275287655667204595555201637919875077315798386094200470896536888421779475353445508377463792200191762743959300766354020070606851592631040756003691704021353058634775339370447273649654698289345456980506883434782538809236783840430960805620564706310542016459493223956535494796124273253810996420364628719375737885540982977858354895787108708379862680327152775407849549426386984877743683505106165889060930483835190722633270535607421059180440713517522832339343736838019259944216592979857219979960536956759368671827265953388720881344654789149492038624344755804823236880274686744143166326251578345754583137286344395448471979799541463891004802124366259809269470714649805995268811986786133568665951241374212060277416742019286013733925942183130941219703170343992154079710998131934006556199222703036710626200084806103695011261070816408410573028807286526685274375919337473290325908546202947105582459350774438225429908414040223142818595768106609361381168211275699390682997932259725800516741389797334449102965217780324723489421312591166015274207250506465553551069497172321245549577219732918798404308359381012634260679964836984024755992295214869806164964595637609301932419570988291297517855136743804078820398410217700017558134870925047895920541299110282501001939245793575986792670704259952016064602583235375782895174069530604365201013875212094017613705610298838774323867492260507943628292885329420728195884251446654726944001040601781758168248056817970444847473163576348465505135920176855731150036210942928354799590495218051096772571811875109740770875416407158107361673944320688239552580278802036424700313819986650758194959320559757962356183985714379041709755317009150489419251328876185241997876559562052428373816169648159674926217623285875245023238114648771399542629438079911682772772947366190169516591324574391799646755623974964753492592204777112476064011179682989480041746212823835379713436551407219536592661195243511969484900322336149963277869058868914633225336864186301241095722046006805902656576019184377844210150649735584487410310300510215125183286862680276479481332894040894413893734107735189252743850362998437276254994357109575000847643595684250127281097462450037410290392052934881755000992748361134559271713023158412384601798525970722020594602844348253231984995586462866980871329083158970223671010159173376424746132282966845953618891870878236833487115529846846173145204419801382476706500979296746426918488870476065137290601038949936609619999825973944611957982871177541539128952366916881037798659289269292291109461018256944478829094659860546738727869494926613863171611827175810702199927024149034527210495050456860243494447776128414990767476904736877648231058908217277360142390602881826806749056856773355659978984663434159987285029246556243410556601561070960331145488817623524688149744801878304098772100114945000019561517557671974157104847347043322296428327944799263706231012564737572083527787749555458278518712161714074416255789782641091222521149581707494905599477194531111161807871494217866917098506772980400271942194440686039300648066274952533316922348178956827188162427257482334627650055331333428413276210506929070681955702841904935690881904505639557288845460323476884414134543236934142603362957891189913542173414099760861163223610834481920133934574679668095447334312708456933256805141008926415574989586128344421693882901275159406908066465353579896404063238386415696927890309495322562915005524207599310678383511534640813949882274379540116074148951466386962570279592979235901388034069597165247765744331853716149835743349358875187684266374064441856453437181039351093235906483007412267374109082371450380763739191299826406073916801310371297141377529432377011540985779230256921186290627985461088978049904856692477123720992945755859297211474849005880124668055164647274291517398670455907025695250969424615157935190079584276874636880896056035004278063161917122028841795766471784910675467749481653644530292373508529559877411693912045516852418748830156702182177006018401511982480357715744067723465550810396876554453623888029322352190195022131344497155467165008500527180036337863639194316080594910169087833804375100667974045077897237127540245406069725654966655226775327762503526730300921839055750336584197708382532487584494587267878670421784874078804527954898803982398325997304238801601685504936639294968289557054537534687399638563529950648484624434742506204629058843969336945058419036554283964128303716318294996483047399363039398490751190844375381030762886555695034836416123980990974910758034202830801606878829831848313790005901732314612314247434245047751190605465081420767179812056611747629493070295680095224407308755267172410023112241460037880025570375191432423664340260902235720222201004876110156294394043953755895742637771763170296223156449514569355580457714380876913474442119022206207428524072158978593734042537812620051648306506263485089582713797867955013591590533985956657979439564592135957982041537873927543796974488997302740013341815765028380139775770633197237215421134207036347274157437118009374117601755629991319913462078493887009060867693100571188605664851994595415656024567968280882803398443024683737004226090711843065649350444974883407605185174762925825866749436750732913605848031924205068430497810816393151779230604873245555520071341272977445657784945475276200114245352143566261987457188839980605276180244786348683823039799174053568138201825771230613909254170145554642959528758911670057877351033333157495426212628388506326027462752558218110653682571274959963311811049324302339851880087358382384584830700522954959256114048630741524019363168066255512793602240672462443454597224862352118667066192574430706694872547209274884403009627040221544747069265169013060082396318962302912410560665552077728546326676814555473505543111164829975028955587913408553898310754694934152948493393875077544844886855953157707564670996655260123794981662256790425555175782890563643006508628920330461182704382689165645273524939927237038153028488415919836901256903573273587592326368259476605924440924100606531360923964137406419836245531230877837023686241260047420095471003083894350650848795882944723966697617991708516644495080638275638795136701450155805768981444600840631836488051721448640671280319883641662609057533933777306347144509669963981732348043331469476354863272008635734853984280996898630947104719548459630615241666041955321077163501182872512750829675912355106787611106118783184128735865371313851929439758768690247034249452678120404878617309814610347392038372761570856137273010142899784036796959265850835530098351100834529652391870149491779374625754316276818741468918109791201915829059700962141270944839537422876203210736330536112732857994815453663928869288910929568688102096319229407625861599603364261028249867955684845331917929301969336988768069493103464020557835357518191010796279197669796953905420130843060738730897864279379993470010711524173689695555371734571986384346723541611589988559928490767065100864804589776615673725564236621519867856041837790888144219989068383815782198405991804881715929162813057675343776854443119269400040635301502451439541354761027292325035356286976558725620564248659669449002580272454558338738754215843605321064757172793071627754020552668790480419194202024536096572468682431907555920241727237598472417048534133749933247129182534396075836565879076493883082420184502115762102441774422373434215875800896525073509882080752616885191751609515526517482744635058552647314805035339545933292809867310591421176696987932105847112959317546860958068857550354407788592869908717113932343574478006839759227517574920877321404695840675118910787520934243873329540452000227856824980188602145042988101473927265394508111905192260494150429836591946418273807389955227534732049308292828409754135134949729482881921285929791112449457654707736037401502440893914959712002210735400114886423244878633099265252731874767688851492712653971049186525782178687931132344857584094368026031283190830978245181753048615531070336357584342822722536334796625656517214254285029500280411259807626795714986637943186318419273967109805514031533508306812354392129560952116465246194146262986968406246580190656417443930585674716596408040013294970522849779485695001291426895481490547618413044190056722517472501372072586170061722349159793197116655926715529824327217399021566661745491876208077078667116869285595777299501558923772669107525546471801410879801554706489721674987520979986545672772767421106148843251421400716672051872817534395287156910591542777653738027880203440981152671761173037172235669472524650513062705366540615456925422513815117165634203187468254082570780698393056648256890491639204633968231519098624537171484294370570650852015393406492554186912452030932295860660743057651865835327743380992255065411260371173870130228774224863254636996946322764007517133304429688920577504674494994016478524113676873667908464769488385613906424816046003574437726156030725791932948882816819153681177963358003925618411252137785499001935798710096030206836072218143564889919421567158027168805925431531485587167938647670700981326818244165015341271463871174977173439227366285597161565565660035593039480575228482494013634185673464897307152257359387420170628347010405585186293707395717320590394962015068345421788292526552004206109148357309702111424030009655228393248340498528905089876928347019815402103371389238612243255511649289397669018427354536568444345870320907910247137089920710535599387191452633153748557745657908130881654085929994919873216617566101143577510111769843947837784044192380734918000120787246483802849283864200364230105045249388228243848344653506109594181430807935459499614265606231051931569911878797657343339919619630137874828612822876351846210409225120345232447080476041178261889066439764316740681329743786618868938562518874887959924627695057472987087100607760664978791545151542003065048566966942854675165165778645597364503298368948865994779419043597593905692936493150631855876515284946944248275392808571431636368760310004278303930867528146379156712630784645735587933604520996126720679563495890366730339137587919561688629571103801824021587242170373354958905184502721144695529034046531469981520461646906278524362639333824870236222315548830349031326348747079208814445176129024971586636058495905990045984833102612637269923022779778851307274233917165156700832653581742420029460965066235858963131585921053758654963290026553548028953269648656848853030721573227386113597066145939134352613215581942814796367916875023352635694436125778548073013600309789040561417330719984389521937345724710814686698556038874443315187477317644083668724527955366638380424451539463491966277547694192180282993017561301990575764855424121011696815291111850601821795090824544459705420225313566756556161746859770287784639039645773053183646938367566603092334716969747132810239113521169313180952402796172300971799472446784162741958688514302904626086518655737003144494822462343700684670945443015088930834610022132755188475549264807414555368822174204511878113318291417405854491736053306829689408459290862228219878885631493781926309994332030153637595307606346694582320401092175858661467422607151744307439051420467263085355838994173077315935705158232308129679059296563341742898498913923513385265855758056033726946883033506933082312922905998697482596887216590072197775977566497448399546063841288064779649760015584608670639600627680546015602813946680750008104527817026188040478600544123702095288759770813920211378015053117856905741612651934557742132486402246677513170287766322870767452811729078133166581911303044122033812265794476043038885645608783004526379988136406426128106448043632325980529593518323241003418263644933348258568435857306458279366355164708139686987357192420208540444354414978519742599013958740971809491614431834804116060664663909867502258965729492250150705775035146862074905938707360071134242972828338326576050855811721794479127827552165871613510797103175581075746464603810177901290164357882503459449622628064889588220912787610288337672602773288715302218680368373358348997838868885493990213379332021024918273557743301532011196999785860368886756633812497824135050454032861947451262616868151787710662289281057205547491267289454740908141972809123571288220939506289979645629675818377058236245395412192836174616628897757883369497048484796665855512957650820253427630800906143428258701052072657102010312125768979939518285752538369634660345478343187108092333948882686305334322907698012270811274655795450622856297493621174006953974854004880095361310506882807579249535065805587753160502874085439169287060578155957028947789108633160672926203773746691936068708211707018710082727651780893400715645228856288630186930113670021532787044411359608627380595137149038997741918308074226574824490787436499261711917644539646020188517677970571785032878393264359525430254159823803742008883999149411509443064865613251863834298732859891677685364574542747045605725518116776398864336151962113030044534761671780973449469414190324725486225970351154792196442367016768972247050489857826620202409039490589314592430230311428495024906589293741561791420920867166562385648600386474227681599967124518611379761528475637827946014861791317501735634548351641755179966925776922626415553546871300279345640821117645378288787289968682343117023356682355398952414305263987326093500224382144441304962688244233379565664973174612021480109694568220921227580455680976174645990159574249507749563636420170840358232247176387602554886976672990943893814050842878323796426380742777758578514740952630534752251909959442768035962446767943243391743560745588367146631456706416409945292501082362772592465091698275838757986111910314308203033802071620056694537527843320041414026292663657796414134089313319467480112678216232688273577932394044825421236704656356462235471568192344371898845393367039912061421026581247431042041822095401793341812881389296719170846351626822164145934362629588939704331108639486328355478051076995814060745950884420805157572944878859445060296536556586238238476249022469172137739141137629836121358540788599613135362397154915395350527058873501086583305485705182043149649200471587051655440488420654999941112057659345447420297561754400033641104766797812381323607202994288765399174614906538166545179375992722663352359862133889340477091375978202759843627489700603561906298811137242382513959069073023587780478422902719734132201886399278039045909480363804331534952082622868712868782529357821671208330576347056856673213945415856599046656399366852631111241067838051407150088677640390942625415001621430030606946963337823782258908754672119142426507566985356045984159200066008489059970176577058977515268085001306402917466190166500401084699999151654146903525730559678151397120509970623220074126471946097564352845706208260868874557381514664601897813977157966054798578350027167316157388357774818692048786094742889249891235017333853133974043069971237909394156798027157204419856232540110483620912183805799861603828222045504803296096482136455831574798451301488747839952320069046628759642632807363469117568247897269583597183284787067695970578706223366903102487374291441818941132541802014601766157142999659317198684107709219021031501228343470183918597405011833431072519359111648731083002097714471095387066387396151631913329768603259876382003023950924903810342115462051796595352477145836684193092103463110734512062790323034969929181370082276058497735679198775753590393259902939276763052336425766985143035032719315533481330403881815412462270651749470749362635721411363210050616321167762595542134445693135345787323739959607118024093961076108246724648060417367455561274743333966649402441955041098937279443779062353158575913088435539151052485407101784450525471106786924352145746156060858272856756112086882203813309141225753358763234539928537035800564920626367999207275769061261084463462593382177217494151696187778194408412969720249839706304126205031311931424832362117089885300395661359210417934585905015930368060246969039084704795990366658928236490065318967497185867958378586447552686784606031170454630311630088152204567187329429693259546640349941467662631121236996461061129652849077129793868601770574925095512948979830792100017857110035078543155101939759029081644146323595245365180361887495014269774438341621260434731481741270036602669136867744216636910097470439542765421921228591167333895522995489270675688932898086506630814693219716135485303332319055823089536380596046626460539113019488677145005338033010047177666769439927471742935279277333485981975800818533205203388806919963563862741946868653379214747579810818950342040805837731465897899038787426591395553433434984257003559745313904896314838098963271756111287145890022200807942415358668181727227643015744607902411136917822522396280579841048644871592656432769767862748955842350431839582737910337142400154089122235123410467672040290307530518969872114249350604686956365981713142338814915509143892284919820011618686156073572784626050164690657615557559268776486782286322751986218114554946298256210705914138398825043404187509228743174719911379124863494156948070667896096874430601273368282943508397667271600095572688335751822007383649070074601386821842990870861440291566062055418458318903713281008348091294161573608803671732206958075099999433537514474946329457134341476561421628380120132464263409378797663476084716113734838421969062788680103637399435364748277765325407034974889244138385111716604432948431420329320393784175971496707334120300655041304319114949003664253634661580071817643282946114658403423678544234227807025667141401641874009966259896258685998249250079123363660365789707665983945280447527791327020921914734221552041564394440178919891122992750202649625436276300503219900713580806017103822686154566141031395405428362162841327407569307120901640268757192569280428341411628158629629285123550183403085771030237251228949663935392059738330995320594099863336570417444363281695261364258263568302867995862180475848009718352103043686185167672183722655705067031973567523438367259314736901273934635217117011193375338318191779644380365135250371839902804548442795889895489938819713124829911572920446156234423355217468153683156480569193979119509947571701783716868042021362694363104485555749655122257667158295844924657972020636054774271581511475606953625406784291741040044267756797910515828281609314111934484132573470374953934112777711807125069691272705081422619767018756558880042799219001241750423454838314025866486499856773886451655143708104873577052554302879726245486034767819205683926405326529111723111801621344222966884727765958464767582026075807671399525066043021777184431344948618075505598875149203940899554525416045100391284325507701625004103775348375848372474296624093353247691565164582106461831985931730277255478925349111618178398673431946882106736652137394916781172438140294788794969783764968982419451760816196891745336130708252626942483950689851022120317984878576647930301611237471864442381084857859942739098195132730175618661537883499875952735067441248557949093280457266779927864155120454332654408759283428518268950940843117268548077329558389907648013702048034162165160690686558010562209450576802393532140876663497313171218761603177431330803356738156361525686606341868382503222148601768691021172611618105934847023152950376630958931998958560822721168861076207356471712147459978379232185736472123743972789443475380291278451594870281338563654285323073483194195603635830824598386320690050071978238331121051568158868812942110306204433637614285291484214496844243683337009732005082540359757618146243338686612045392960428512093404759711541859988545006917328285982837648560036178063227348845473229569478280797418104530946097990312405074121408700599820565207699645792727349324066255280311101870430868870246039912066484971150493399193675205730228035430904943393667874994329626810351721441915226324520015674493122077799671640089217105847407306829991667027286370538278676829557136401044578360418014078646814217937392094844265138043381629720718858787383419760123695185129375698677791188668739411761606028324324795490248646733380319235321433487904007001710094579556046899950814658055769009776467737974527996695032037574727023589964070773920299685430150250713687444026273899935640661759245871527034104472766162780360587155232607589575381657719391901198378972680246449830114121519253377210841054425995995282212664553031562298974595487015935176661550780808754683398107228475775989861915558537447232686811178679367182714481529109952024727995776200931811816593112225381893005250852645989362634633822492996335969409550916718063417353675375315070488540668825166099588816661325203230154091928686232221524236810617169230587388437444995668838552290746935138898373624952771175070416846594848421992942799166397118909782390145656699724296121839967676536685932997323048904548963889330432548563542556787465967093555409667420085310994248382678618426797900055709056047264079727436284592671742665478803676774403352001005896836662868372003163882860191887588216885192531056412768756096790340634831944658495351194886500544809268985970499120108711822313099760367033000235646338914697018277559743533023146569522438905208748578848278663814389867964354836924062879904522606431446125075512526790214642098793139228246486990106686160051585878946188972576346198944563067055931568318251810585009105914736712992129765247241318728342263733958995790758468829896031294164311281216365169904174444417956956403915530487230793319080694030003087840249712799153859329398253963150955993725111128687339537935575118613219548752377910888246034482539251345266928779396568534410340408541144960062354875000557973756707650448541115639952881978475853103625995505524670673029714348039888944676172190151999185081131277663633809791365230994284829884242997556487825149032740184923050721085127260477814911329528110469537353665765943231843214022288989222943927520173587679112313253734826818525569480139851543100223176267776674101313712060832886962531631950718486703583670984124949303180122738193991899146737599079920771069613396498672105117247256379538421190660070261280916521699933241232508387115893766335343948249694850799436215456003606531563273815574348880336233534246917266511721422746921107879777818289073070936072779189589204705219962827885779282747215082920508084600709636667636272059180237487145205388399819632625583546702178994839171268868518971902469601256471776368790363880314391279846466429553513733333409172366074978862850751442275337322690117045455028489429953114981590863378317362311389344959970853591260082634234391760219197671671171572397188118776007011435589752418955899168750191790537376379814013707148539801823647602384375418904133818368595949051941550259678492330835852212666336566374453866954581630112234409182546425213568549166799182412563056383155881962318226421434772716023085962857791204807763810078251943954453730350819596060100438901571295113226399127640165941670881122790935619875274619844232895486898147838910284623107084549243883504030442920391161363744998868407301531914206669220281683959064022496350653129473611948069104703353051788690691367309706522444362300013559428818952822530158642545640514663451527722543781826646885233413086116105438259997260536715514485034089659292129754544259027655730698998469327417014670587205898580632468839687206529280874826041274207822587715350338204580724413527114374975510509167456142057100357872608148257586666604985275211048118752898883817316510030141723285857941508783739244993855335556492797112115657688259544596954179962081496196769189348650045968376527674359213027651706840805897516351474548623635743889176563250609110386054744862244510982934903371837940825699044005729732417005629077061660053001566201079011810498102934397464439135026363969663120196609755172862892751778837891333869826250938740239694966418218607011754513793162674754663625853307655942401391683947859621066121872639285040342968379934803532120736309363747688017202727504075206586370389019593646489234818497366568947510288061397874430946127469610104076868545290507213534143816117565420533165221071738520870141511699772029200738107698668657417331641635394589815248028561292563642471436742453593665274750332469063353100932550677072599535478413322102616658369159075139838965258323856553198815663548396057172593476012001535194012881934485914372679633294530773743851295420254853280016376653081860156655215540375078376265388394709646329024208744883877028058566219387524590891183314497965965009747732644434841240346281052917132163504760265046486491659306163144966508900490996209190087269859893524972237116271354004312993555028647556293229003322184177052497519359463657113555117575356544426643465487105785159605813242395484719278764716723116681162728020200587531928895601977209985588857017726019270226312143905227920996381239986553015413666836716147156942997752517747664026715442940605383232045473892267428754700093991120242740545896497059458090874009263618243448638109012719810273806793310503307027220532168955816853450195578653899085813862428256162269489953784787786620687543372684502736623850941686855542852143448482307085202577740923534080718343297149303251624135887303899217827773333077970759621442146782655449390118093161816953669982945737440725977039561460883301434142498179604519411073843593534095040954583198221810416801124640462481693870594860990805371673170253816703426420092191214381764913873873223780024442281138237652550016155458185556173007483278075722800023882717535441701472225215677201079523657408053165269597790045537629909179534814698358263023601065182566730302218215014654228492712400923973446397413654679084110793533120345265925730212864672813453082995884349071885446152373559232071531498927158626983719348046387907362592990357722938767228956629784555964691609900098296977537620028080144523302834100505624084324562728957169139490836340328916086408510429509968750579850656127251229849496117358752125442052360208507424763544245823885337654698281928717281261920490771705997718823647527408197109153719791588461871681045780675622848373109281492906420952573439875774574713090786946334370701610781829796694051865481333001591845805467917345784895775164332906678939846632409578338164830141866870148168913092902075218840035456531642089429080267515375509782045169005024360478709926719408155616426164705276901518209004598419806996255261396336436661569471487734887060932434862343930035344769658442065817187704889724975633998077309790929102596759862763518440744796164040954788407067511548667112122996498571019966499992867870024736608061177963865089241522070438520276180173672563066444887561493136488463838566105249627806893352834025233665657431758413148324777292220661694979747325053207246394586596132516856384329454696260507026089359977609210747429944797611240502490274431783910443020477854759042296946578283517374717761199231967024431031323601856435477583599115040564019810861966920648554265989963197870440925363518533375959832412706031428606245316580839192507431971791475695633850280706030274092958322735885317937623911137335546452550794734603337422836402532540699153897254640100073186755964754910057151831287261558940778478619610847011265212343833643730189220526955012605669327248080481139836401272934036345710965475812948091373496486491188060658126380562549554470786687628700997444592074654931051732647283187312081393283500642594424903743886492828776518729747761951087684385450180442817056994524871832385806633480963163026806286428685947544428037401782539024693870109590024657843727483802952290970441556787645589213239848945970836615612128596204423023854558395128033833742267423116132409769493892921736508497655728029267455620976551835234497415215187344905714943580968662254400993887491948562958805520729188058824953228243754968930300006551071181832060012408120796172322814225000512863011071450555030027844132392502099447314716503194993722283892773741053875776602018328990534598041097477567942055556983505838004013368181747045659699910080080532879459898989357983354763118780447521239147162463087685821942945362285808664175983479511202975561142987649011008274981686294013107914063160439363117891370583209981822567996076579024667445645711221936582588234454587057317503026300145998680015055481163894280047158541312556041810627057969385422910249417373163598580059456309738284599467954407623665974435837503280395146175453260786429308487145447127578916581377696288959727505353248214506258050760392987254152022719107675981558848858234632494861014669625240480359801893178718508190104994375525976121941060839402736014836437726033259436550059245548219997987802046832640032850341570564242047423008432597265885083749156372070524576256720450184306803621089103001285797709300998180686668730534342943726400335206387529343228818106708470728732788790106848245913345592368266886388851005950417099141128303266624383867298053674880671895364533220333753371448618833897683574116779336949607604151929386722411934929215588595703135439124999026672559923882759368782035416977137565641258584209749908087157658466437653740418664712854526288782227935875050211829462261060006859986162006341198059908109301370301566352304651453258910587170207809396153562382991796725459262044299977087111178994498782461879480666913859039159008721761468381334974670874889153186224741532457353765886917615200574151214455846330715138505803855934108294794522818083981546518828818403494713417911909783610566468777771024221383496125339390065594027181147455403965133186445264908708335911882138431873591244151327931766411554204341390236508153689251098824933672798545986984672080751277385500224040288121444317871330117024593751213092475992945577951532624885244738031223961616580302873502513078458167949360527084930254066356562940384052830793070755744170523363242447348741376019854852599478566121252190176080034081187444275219364058924115550559821954166529591888766991385870357592560497797286051790575889108588246691745301474284392348638423406449838596665361790750919262686698106181543392212162605904272002494221681308505527245311361445216573183305210253346411618015682993108322189750844826928444260381381203681997589612884546008987042489770535364349555990278987503997209001367522072426632079757840531442475337111487760316737045780043697590026354150156999206939234908926592946053917214450484642769763994941474104345229026941150476577092900912620187585726548286236175964141938020780768699064481891534060309487889867568099220749310048831751064331195043371144349931322438391396858908840740011405898234085666043484568555480257272358537878404815945699252454681461279733343157377422822952078869516971937617857281530802242237588401091525330813817118587974464776792278853989239431444627891431189944394510595385348253100382388765791506138450170153744863871642026200934180541749167781538494951085591227239553516460582305008008925357270499709214234044640309670046958565335541288458288719584422253946590199642724128472101348839896220122541317370790110627032704452916800234451103157128409791040076572931333982601008024643923770510486980295466650012185922490798755156709078523839096095971082085883250031046449945705420957975759215857850441346068167822139840759607512355360955938250076687180594528940790179715946046138648906903168518828958260263906136356012265455177715029536955364520787747010220067800884893085930752409410090209141583952474589774240098465893321112922967736396947388402435136977754510114083731000633584954390172528758555295576560100705978132203324480180622479330340808713389649832480934470784338905150615001823235657540971104876620973932542335331024036569478321640294696969404183049223722042662910986209824620572824633922280817466521654143146473315005792876770460842184655879775781480750903164523407680499661556938082710773010522463088089435029671337570625314203788840781062749394556006372404361639410970047233526850794531927191863537952684392543698514727678390552390835475627463879670513582442184430574367462827536491129487131811101348602577580470036872156631158107653515617869324358703090632908792390009659667703024400901009557518059920645151223331545555819433272045437612245394337515611438723279439634801717519101423171251732850817711609657952191570642624203861324402130446298031371516498944481859330766294317951083419977815545825462816958218213092705428161314661647588649602961668049048706766959292710067754814618161123261758917039260264947406982934555294645693034368581421766267879499534902683824473127514710842235012372299803036881212402208082788140065585181959864764209876796617706861579093278384655270802962459687756118255529355607068047864440481916796980471608215146603615445862553227464765111740865924159168739010837838127389173821707716510397157793963909095511218235686952952783762568503071038240128791399837338547315001419779887694864773729991125426650004692222330819455126104590215139254000502592962964717271969634757594697203471395510018729351810086491526528178157950095462449935375282223683309453115229510607377932505225366089211740027845114772304824848924614878773133453818836283349290443982024558476140267553454603661188150580790559974772836496342407402707173298041125473854623357529213656909850497581554115319972549652270334652358467720694471276316826735584313323961981151787968418170028313135703464745793448728050355334414095918934007241072421668904971525350961721446497376497100262884479947825092019553868795852562934620938926188627130798302338898588890222255797141082652287335621867262395678957486451385866168368807335823492864440929808571094157992838186654805354772098407221297958513642614786746139163832020308377910059534180258288582677217848155266194706419511306497200596344924194902923362153523261845804912940787830393241161615580852887603146155216983386737735241803521231399987068973314297697136183210533634650390622119193943689673632852266118980543968725660045111165107112773665588912951323852253494690408642383884731345710749273157151566578546953280490651078729366194083228234317337477244847928097280894958660153689246819385994537797221798977425488365082632864857061054106229367409747533256322907983558468334433425489644618055076054866156258518262285113068248308143049848146328855668495258729525771584159142152736361720107215674886580249807256763871088920520211292016103234179543753584486448999736183181893585791379549469511249309471117307054670125341299003796337173048798300076484344936126946398713645419172939684905217715159505862696154402122580881709418610200724091373891950889114277096857135575585038567046878066095414985112496171546357225665452881389671516935719783180852619123928129423319710389712939225925803140402005565896379217359745378438824890414944354102074913173655639277902599808231309602122268790882728105692208019704125974149748425690377453095428163819116400723927145480769387754267558686238605339317652281096495340697066411912019629939183059363327678630914377351930801677403753884430347936717399227459707066969468268004405514274147843624907436695691892186788780561489421456628785045887942740572976482602458952325401300372833283498748054760964581762306068364415022016209174009885914469783321091497090794782707857590280482174984868879037223312180785008507201834335530580085078070489621404619686148670156375888564471675917143331305171118268484071215167079218329265816671157797379501116291370081499894267506678160227095113413815510426928000620933827112315538928972215558834457348148305406426705592069228658473084689583526127012659648086166202101430628911720972132471672509896450222218893819380711500353971657927209817336742461078502118598835561749990413091923510647447622593370752986836801546630823221145506195966187498493932835115387443257306227843353072278068120923682092982932209597255190131575749826745120082527725431774456937570514702585307296443451030524788006920908560306955133920057239531958258093189551628800407861059971878597239047289181504600143281476894587854426027676243896064460471234043949663285619041178146061711815493031578591184222323061270603426956999102412022286528598380289483884651199790725472143788059643895119701081068143009478654247441962473001782021353573785725257934300844973421272580818749361320347487775583607449733312797116352364630601760722922540135811998926503556934385734168854053839927254816621056704061746671491259255663665012746719997098614328073698757304085674097155172873343899403010769344302479297623480474658214043268506462672029600137234776347639089539394652618842307069101258259423972832083290300427353802572503206124192761329749838438781818139655800705922692658738530157391979248381441552713621932264034438664435629381219929868636513875416633155491932171157768305986483444095949398651927357191478648490155073473695268318751595513995259710088907929176429129971878493261273082050239884854745714838487494073460872677663535631207747652494763964857617616785016752235796216689534652747597320957290318686324129947958806699174110509376828830028862144550428541033869756374753196530773791694641438453361933471720939091498243457268956970806574687848735655965009430491787792804835727785794056464007737137482326858084968031492506077377832890355772762490610307741330585631066306184915394218215121709653663643630824808059308345099051208185679732089668251906745634222518830621088884888984655692254595392883615021999592363627990284806126150933519194119623238182505224283734422780047915474869785925773664619931251600832534492407655945609291374322037264560574577306420873538832348803028678957276950196483911612025050638773427433405770318758555345288494507625419557168748571922328416444997960120879550122720061125528289199107599983371597700847660803824366782599624880257735605606054844078621819738266794793704975097076980619386786398788417131053531191218408037404661447188251102974600615078304220491837137027982700470562596531027946776314103131644644820648485750064541944373044634077657936376825790197084788965163666536898352564156603986089358396819419830337715998838891828656888681031648362349890530649479606132505903130243541504114146249016281834772077864457534560909904562524426589204694550116067379490125764981925786378045649147404998805006315324138991232198642113795059536932417416201065459938020515618697272000550438861765185167325150517428564108370169674986532528787569203232837337557560426578149645801623011136551981893244032431469490316869913671764358155663612915826761231957113665257030574116917803066403345219742536098111817761530527980810280565860640672432344410461358312790058600068164935699122692928877748097932115271068160641036382065340336679071146107474437208992578486588370393539886737041662496139416642175789616939265196910579171013640609336215292298955276982935232394675339428863654252336949375657857912162657089108095340679724121311980346346335472808665701461796434587185095753413092913472633335591669922068707235738583087313899116171152502290006084651879231603225798902281270341356436461386152315875715788168257144364378896016227594291837029073103848114581672559377861122663529806634552036746238333067682134600142056844394905244239903196340473023187883220159911035865298232299741606231297530421960633237229502806948761309296985907857332642265911631224425322078617109280016007120042934698898504451681020745842311717450794565633291980130298360053104416836054215240193514958369306962121057688410953842639148465997886404133770334485289770163386543867799488496052192113939446491870613134522541021938582722580465873782079540300495013774263202746429798741892020679836243593347529841876986862208449147269467576999139198896030372664164610040501278576130674993306969265099648754473883656408921966244202774232098036689094782842640127372807211456439464785601484229291754789848175296761867219306097058358945214067317655740198660786836317051615090005625572884137528656465062734321864363385418024665321950878112098677248666225717946126155279997991986380053830376655316462627279690498970693436444043937012005517178026572897066944740701679781883591550380098870876407272098590640952763409974098522267041124576888363107214674629196723439333320672922474008697469063014340642394843659679146929449999641604620581660608769170434890826066054981892692553420302463484581726000053320556099352360323323769586624929220815630846784423659944525678911514306848643858303594926710277894041431850414217143174932793056628786518057346580269369931819971685835008056385744785545160942902372113585942453374592549577046370717476437265941759709989920516754050015716810640906885060906793722726445394384012815579889363091367123979836371409860688748298744484418759059455432592638625078703621762438748875244631399886680317815211921042762395207706825866466081411137094993877158526718652350093004246975593993568432793211892687337609433561254408542042814292596296248602415415760278448730345177440706208838307579220724033954380034202715786614309993769090929749044556509546132200905363214437380971508116642385107535222454825117130581865719281080829424843068053807138438823491333217520645519328900448158123235867740849890246432009623574466199093182200013352604341137079879817121108958747392108737242059138548008938752578749596787851893423881706958197692322105036325135466358632634028991445650883100082428735340535199454640047666285638206578069634556490416337163184818589518855835337839139626332755348943701306718565801322635919240913729544431685079338080123319502566874916551586615050819168120529715567159022253140077213602665175449638805048556199314911369707505421973449446558871310777242336952395201454076283356996744777930002572254230903575373898933684464060904062928259035643142594384084694943444717516590369398040307247040508606396876673663734724704496179025420011456910448814748251605289815020865164828829329338308599989204040491548220335576821943742040731899059562563547795538050640814306533216472265841470945564680360691422376563846329427098966104555321979423748959148658269929193511120749540984672020034132406542958696665268827931402085422636669804749511555171484657342387022740745427245560867237670323876555479077617211850240654293026659296486727838459039249832289970030293487103457733931211390852470948303555779047138347837315322736832733442761094185994057670054463302087581929171078403783070120011502455639042254100333939169829723138668590671047300799066783751711457682347592151585165302274368236873237597357690206782167876976697787825117326089733545884751399497224941715916812490008045293527293622866355306009124877727431359368661508661232726086946156420576039044036540425214175651401863082926788684353258467659818242475257658637059818857910721059447238707771567341730525554410114004792234234951082906904650063738485354626877694954155659332798485113148960049013084615784329504437239893866660776582694073995007833876177114761436370128342501956840921485822431006779826659948736455924553776697412078044966868649000663151179931155065214942773331576630441582278825222682365560246538203466041833111886558235790566599480403590996330916109792707157706371355304847294079160857453013962876907042532519614733445420639384893980574001443068842495573816721711784999926372628995096187650636658916267034775023835153277249902009870623693689659184461158742328999181794518198316799806052790353941803278709654625012168338040665734349381115950237201893576487263951259358619532341148726058862029719504363831013187134180962282288370357694356412286885516512213851988049585901549175291698693009346749883776461066417786777092254832030002809511359421217163887970814854144987438567847684050579543482815469647205600961051521402904319650342641005149334821775480265558313258629873750151400064353855528134701389428824498509083690471619712144376535702814562303172011047710671138436736150173803205713327860225336344623576526232432682636789381865514825509515704974097954621954285167301497798936928759152010598317525000774948269227399747790126809935021872896580569277319757734547521903846002207774525629252640490470884759168702320602702787662814617632472777131986262688540228934320255940859871830247478717930944094777741631465858490940514535960904748620715993677634973122312299087403850263144122443093043468502378850875019681670099526949944625695302975855769420826167674226093347828193743915472389128472039691548372985355287805605497992822913381735939546234803496967518220355512535745385398258968256374610905134589713958009171624084458379022896067825827708990681861485701038259432000960337253956223870049956440238000854985541734655729320366774179692976167729153653460271554579207588760764726988612078874129921550548396341052201285096379949159297181558486909313913489547275965456139157610268912313084801020398417921392830278037065293579102714441799178077174822717269557102836695139935213868042414744214007697754713671896861020166587495602009018479435884469177794788862136775856729435240853310515294476450037485202469147801053595158191086352302110380538624612725769345735063261930975511297763334652598995330310738246567026344156869468531612682561326639277570642983535905550873810849702872164785201909229105798621741579365870996006893279766668849636563149226566234537983664603132013857794871668766575678949118495204375219929387521435181570724961457258069843151734216396386532075319085508588119361197647300677343819548008321044131384785726949639592702256569372151728592867729228835012769468059050716028677286962351527085688224113854880358697771542418843305026643507946278902838892575166435938105494248823967256330523419523859650230384418461934493116746087086074526771879175941640931585219868649090336373952320330793095161845825140071415422938297470476968699160996752604737560542865334653581643530090497660754807160538532035084344048408845947657579543081665276500760651472493951694979572129889516339737034483186205453644537320594762740525618737446303965512095729341200141890399050538580479958794576260485715469917543093603194254496843414199141528346484638176453774827963347889262771212028814888316027667593001061863223196251753812856212130839000949524399837332836244788927272162521063123471409585577399255225660681127688990380144449359181112130569925500034603415531961010216743284683302414796419247056831419848930612420250132024465058815880992553359427276139433101571071614647494148603660223062202662193239670407525736955148816494623896557642863973865260310081514062010740244879621630897582542545996623002416158063139648446777542245028883280126655456952263712523591817401906294124000816730189630115813581941195680454265303581686624325607269376846428331411536811156012601155236427980474928881485774578869893456042382822360238253058762337935448481391199539080896573804453917309464638617892115377477713895091976264909929867841104250500601028757774923168829126100483476724992266728712056558879839643312208193630987417174711262174836583268008190452810475054251086968140915620022030684598526237862583622658715307965273932462056135856353018199766565411548337933492589121746280121251407992287693067834062648197230997722603106902348416325603946223883244346310907882629458698764758231713477063487619188505075640778440274498955571686692651933973269011426638235630907908254739992575593337254753150783317901149477637460805759177400895906042816824770567575687267073850142584068494993315428430604308129025167714930305751388644745957005109362669930335021339170622260871063653946405046626207272037361054883695021565783933448260839159200410995838240662785625687174621336952827864000596342304673952027658187862722679905401641156714637978956170763234389219488297019651153847265352557681396034760431336721172289037106390890903277198716749502299165319942644175999069378379649399068551342169447992658534233860602817129011728376140037421441593388345526260545756412123561067515317228798476370000230744635380791282951932027872485012502634762935913444626747489053624577293459642390288464559264770291001095018438509736334992701816384272402816810337176112535533128611131810848708220480406802193080277317069507004403600698413009790641187877874581345480363850294937113767769844710104689015235761977216096156214433678782020109334308641403496093960675361770230395994186073387959412507343051270539403537107923879613557262530093948422163020731839161806553175192447311907970922612002277187362033924622769006668240966415354121844526060167421363393372523682648195731724420504940994499447973582600651904913924816848838778536336929484013839125304103676528410126405706075730076696800263231521156992778361805571114545776820341605178772371581581005149642171895471526248147392747621983628784030947472940333752315897496920731200554783563682030601068211549444976819189214087638796452040420747634230385112558211960479667863312596110751328821923403889721797390846641058050621036199520874302203174441794924531702117119866625953273960140078100101422650288601065653028753025999026492236136694554183346801469251915566866437802092655823493015501662360922234015717506167739720985422788565547100308528116998119370659810308064465937372620057347078856554930589013193200275288528441392944562707224540174945861852609657726703195126461048426671336484964310614289896709833295514172306954044456660273112941747412543787166776578617677799220929263797589951463401248082557721944101230673890858760719051875482688802703451238335090113422585652970163094491136482613131195371905894329951755480977579260963499068731365801508813021669616336058322469477655155104025636349441116316987605212593008446213614821439890973867202069404243958553157398347241133294737139945136094265296888009013922271962336179997048645786167434506400367318792608188557210810945665343286723082496746474675544117628459601572164272589366027783267125564349075898815944151786984777846766958744753409495591667787716365026089151801808982002010145436871090992585251757394089063675316594444475019642222786358842443010435105322405276868443843409485611750045656773642985518363303562387766418927367681426763657811531781729835296523971358091685460203495130146589060802149848274787914790867634007769424478656788097329118603499931755093019603742771372639754959833795446466402350266987351089246645589447525156454157591136550519313022006418547693054481319227583974790140255789674467307827215268952359932134216646464891228732205977547742540878383770804574845184917387473686028717910328038612530711645229999257965708153736453345472366330200446190146047782334689426578343647535142079940705489052089779672683692139898477183190533012421757886203170873285199424296807669992378271480792468123354406483985752585956776198245656628509213479695620280846503235722218624035231491224014032844566387850407565780753280862871431450009637106139241589696358020314756109609446777637120320039558786645430224489822522705213646688515740689092541032621252077144981157471844391427453461448601183144239327914484480245839010986277820217759845440929488263164585086234326639120611372536636964936169366783372474252161060480846979919091241965444476990802036420367518757147483593409232051370234352149119168612461072604860553584881416886484049911095614080770012292598064438223304277476960297590493455811747031400632298958459339283202420441707265205493881516811596840322684194250955019632017990800525780614535409455376656086948486551851674918468083532152698077893434883781503836400436071454155847473943221619209958882777895846783265471978014843081778968352363797086573468885370906157638913954062026091777942300568425287448735600956022695998796968415194573148436588106158989979907976550967640829345143181083735017336172787806212225534542613229343661651034185923889986034293542928802962644779393842171104917602133916842413381374846379709287569740988196940076804604666905627622231416136507169957836335853548793405288012918820299193240813195313256504748911091360437596772769547981635222180709675281043912460820107581970643601936517498945826613644866230508512879900022247749321611338302398754709069475825430276928265121348923423864568664854412880149916266292208397285596986545177527370025662972601170329748006171939294332232799816100936479859985234101585243436293837438241732154295083895170872615598200383684708151879305866407364695937675737083353714201889744215150415868954205866257360859616956536410989127257560233715897988062621998967324714836127693653237782402593262533754894481561343149180494772794056757307913239963078743018373846076568205689918678119355049337889966961911701372284198229616415262452839216544534285289710834238192750743801009011319293305540201873133011064647079296080516777028971172583755919168390810165438476321054410854865411306950479048997566605199608550469820264075092812836508810418548926647534905388779519355372347472266986091561312642773640616996313946412288013375664001225363308605682519860933341880044856456497520191184439835309067831709419684129451853586094316571307643538327791241139457886281605178416950309774716772410563794153322243517510298786135421658868735720624158221400324076145902541922079408571041932476294060343625789470972516154780827802923809077897893373319858836762668570575991754818933887443347664498957242338403360376628542195396310394275523411538948495260667490686573464798360463478160833562358849963700772993918015036803494768923330223351005359080610149288692002122946711229918157430017161490217306231073131266453191240626857619664298443094247704661041245758179835142124472455438378681124333456752613298685152147103330020739949591886943313606730734264449878370882686570626583960154516898530242231685233976992449549444974477009545004235432495917589521552404628733875307991285501704988381620682158303305764013275675788175545015358085812073204439125762957235628848469674510679853318685538280731814045561279358672472588283376344842389697123505651522820636914648047863762709821490225238991063440377614935063362351430107931972195283646634078027495962543984534661875129237759146323742919079419575072793575549094974116530252186474888023563864422746602494076328667600881333940442065622337476927383430127786638766859152853509262332083455485946914231974011073517421111812955806394138448036971620212779748607393359296620556630084190507421384635520522246739424848084174605082919620098912452557075920677897810093870855485828657401456240056223353349847192351550709569542866317680459281901636401743206052194315444857291386513144532735128017613112647384331156097361147645148352393577682168613028400466384305791777961795961481218357403877256379550846174695423232900071974902229514540863100162083717380783810318845841844788537367160323166038222396617272035288919275200858052221881687733764910973275637704360499903533525130822568756354333761172834123410738513584497120157928960192231872621163179414009419257833378379251896832478342698896389923162515731063395431720607693599686968092432951935124572008983061173703659347751471198957598343309958308717217859153364156961071993284968281488090214974756861854157145896313003425502842154454471966302746546180340007094722849270307583225331580489015932321029471414877126464958416919612508886917244495906987514509377624073671387077262632748108189615971173501626238056211931849099071569573570711360822165166656549723710834941961578293019571583032744858073667721443339006221276166574425847273920374532200872599099036135511691146664049851440060835386221628603482380161255357814526899070316404570815762211924314635216894088413358775983928555712540515514790731324922947010494369818684364020383776025311640389450542923575701343869528246239403608281472833948950976650077709441660516573589142924413375557579996340039003164074822763508561522084545148297367168944806412314489781939299501116048614707145887472839381887246363894141072785162961838070757534671381319800516225171368593297094271536797798838001586858854276187081167371833943253190110841002294696121049585462540215172807981052530135914707034603541966676744568642225990544042026630908801677667031362203552906316910877453090133547091920862589415876577528909248716467746601610251430990191429051773121934579514809555571221233733361226396011825261861607126549200747213820301712516831282449534460907880408279103939157430287655188267309864099461226105064258930515618025319341110454737780744942937744018134897289388151691687371929293269331142607632644125338927607120840499114314049856137505398813022815188581976042359895872382844039856533900889405544464600099820372917115834771411031885496243055550427571183401193542977758383965112624794596992640746049048636488430039661492666390210484948939084289331638874748226674769115730405195879698579390414534087259244618552513033326742663380923345437811366638321468444474698166396207327178975771001690313824155428156777104530962480205678595470390511195788935874104681674467337632952222861993033350203149796921058168971868091015028436974272453418547901201996063785409667767097062064145159898021142840684396161470812354143748140960861894464342154930971505134092361324930873366689674165050805701184293198635157376883616628978200975052507110670616050551146439263241685777807879731504693326991008953832765870991533785028145669705018523090323919030329995243372302058905618629655838690869293345801264531853724080129884912252939868833516508697077012464647662878016614797673220297849521338325224829623902203625062974746466245590083774700546139434698120141323034084009866726148958309251675383568373709508825972278243894275168394307630896049707141644234059922895032911631186833014900569933969467646792545114786129541035372129554677322392663303320373265698025080740871965161647456383162513252534899843374726661595954051610091521966682088139693681050646941403534391623549897672806007101131047106124718019769867037398321178865404478828980190275467205913715753639130505637432473939005522742089981575261126895040646689043664425881796719517264851488404421652399794096685063842917448775871112251667412611757831371174146070799539632128033342567948525024051609443435311408669595864811337418268285694146921908676221502180516776608243317720464962991896760514836523229657228422020717722296906747611581309362790859565782244008068826489060597849455676556525606344593395303052449377120019629589438372384600751795387765618852945847311658351962161871726188225368213223052290043597360134615160791047824291723494573011819083221578376079201792992501730991528173696738430596898706515946665375370004767248044837109313929429526279949049626477218856595996258858109403120550218866278184002489924254041048822374748343751675507655691700204387923269062345421931903861906307065029932919506238732488688670835058765138358012767890667493663441618545251629093172381585084694924340596727540972420281493723181079791799664239385594949637506851364976206421183121589316371701163042750804330901018658335257894746070295355826904214576474726833274677645987864855915303957108662126673574716454128580175153283601144673491512195151777906286288489891199606295785074249019512259244858331303795081660651184599765721229852440688465601033161054429854522301145761868375201315354915347223305336832171123174606247883669018809800071009113309721798942071782925082076416038069312020513444405308791535535915283057905304240566791811178774121210247399817476749259274373803607588993920614458795952516224053818233682863978727721015965773224092828937884932068652128229740189306224415997452034852548865117267098701201530926249983527147222725318958801891536789723714325012651223924100948238515493650177907718942792549066890459967277812409258745285261906713917906564346346002125486795967892404768107978794746458145546612608912537505970601890297287154345418470031425924413384975605677681923056488862204278908754849143473365771400693304161735961593586024346630178897712340124108688298082576611060754477348094953427879214338382833059653989777508513265755975069420482196666103335047069364929172063077890027943029218702601449253929313544135540119187172976724342212219230937720839900028991046764406520856977959597253811290025844248835259636786688452459276641561666679462577686682158366310158945550051550002071737565261055147485834090464699776431935554851206755556239243127407308287552107379763712866613848211956928639928674853089537837404091868879485536123394925214991871933329180314037884997324907381224703580201636304809367223134598138397520348596019508731867449788753181502505015919214314915612424973016124526363412910334350828565294138620797757134182197409773360628625125098896583983133414498148533430698593147142714221966641803294094163614122122595131216952429735251643360485600015109713938049904670288872898898756277810715121530454790631206306839663861884454112816662356862163413850714424752019223619136427795338606603583420184016208641091276231344836702522898301995141997612273768111405977090955786154769958289643826675414484946272564701293696519401781630611056836338032181302123065010414460424243502338565793537679430563386696968800519705534712011963967002833924733881451781665319503347738769913589720501713970428290254502630491435774546122303355546218338630794316145689237763129463202274740000267329821527509576593137036513587475447321022739490789807643202069595248294372300679351464918577651986342410713175196828465252512751839805691272354742341776773461356883488752771434492732363626973900414290639507854590239415079740036658503277756694608144509446320169265103499476394089094518909342318980452361302487821442496320512466913345657127430694617684263520326726611169270040511160990962822660746802236129641184273561793876963628243470619894091056382770643200874815288312087679446769408879921912997692871234619383492675707302879317185715778092615699947734333088478233700092529986626817293544322874978478353208120998761654987989180422165417374235033207055906574164994896963005336679424347107018751147339641331177077191454066883107596191514297060003615777189043948964567392156197245217453418537189337513794435507271106610529237912815120149076932528057791321536408001445764447797600193238116303848635449077340378947430875195500442380756937907430920403484106608386870605297483110284021164444851091309726486213705022588281485130460888157220723365877042568835707964374529334369711097256062286190275177140312933972595684017540515915057990874223782620808934426019089211334043439320677362727199115153896417915928923496833229831179127863204952664806283932914332059668579246360700143116782073995159397388522882781849734574483924446621599439468695838533019852928380951547829611246548609529127033979544755560852645323297175101623094931231938097691007390635431953277014025034011155426325999245243706094784970007984691856220277796847555705380892973650318844016983780337439057040149524452898190103757584735902528107480812659420155513487076013975169060940341729236293886355143264773742094609259488837090586513914627693142170901671544691105019372293648535001534204703780499172706787186685311220265199807460023107207306151763119528096529922308473378090918737585203913313060655289459774159980819521565513611615648909364047596180713884537503529981282620654297072557861716291725365989882036556543504912330584893854421562259867650636232392163164317993922296497182606984462476887967350953614899918476317508001907692701237248485154209642478063252734643716433952136656947446747131036575546234624050627757385469898618080298695966215473676579879046408459222364054441984063587863367258718782796399485978149931538056258157174686220781195400731739871714138713630194061507341391488190843878671476826956471191761357850228238464995039638397638638081947503532640817916051798345993034125035257890550963278663008147979915235777422194808632525992769835789844076649105511639629033310841019695519862915870990731008953181210151235304823456652631466909909806160496091304112235594507085297436142499172096826736547477673720408690282240088136364872296170929457888813609709570556010340799559259054313661763183160009842992245015029528290039553091583028931755316051918990759903773520154858134510388271338161691404014958503562579798689352287093621135817886958863710559679518103103722529525404569865411257698893951479009934442753127895693090223437459023610115643327624683867850876081854845888877774944358714318949257714981765867814455535744981112936218129401120156429526516085276046771455751754305227685329908510380910523023139747697731546172990007299911471687058035788427640050663233086763637292362017726565585973938565267306878676847448955638011784959285039632224710144822073785938678682694105385958838052333619350572811039028920018921716336107624140999145675959717094154816896848130956752564830864842296255945592488730130511961341542168038209497070270308398980872703882425040290603287700180784733822668801758891603302723631786641782605708083440683858132573439761790572927718282673861324786475173604351937511460944082679123764997849371864053238683234806365885994391817557833374119548565812175897730217805405309837172062435304505226472300083075761530378648539028808205038951855754748876919346839129476478004479111655475046629081336841788636204495307476198604520724020992898665427927021857055673779946983582165999569181749747766468726545852258381052408478386988569739726086601276891028623637839694071431577792592397677545107511675668746466646610317443600089313154518440445968235300520077386745809336427937185985603906139459671842962979882271133269965070633050513976810073011266040740573570288286848393901164046894419193771042239120382770510144537134179083845705960561569083244377897312873027062284271082244840114537047165763276414107623591311704447986155303002455222116529700253776895550637457201936844540398129419947980411051118786571971046953488401547491766198344514755099321161198390777326500876111814423103368167419945691708150072036981312623824766907665686660017089173574608812204828662154544380927412888912928548872520481466126673169890818683464474463531459725210409002936470852871818470350462688018346483523209679466113444660312993559198816901993336272516764345417846845436554465421691885156514570260350631119965200563533399098556284070430667129747516458509259104815083758861505251180326005332634248105497724235623023770900729717643695668033912540433094242232266072252617947621727069842093769975857611573605612831642969182888325351378003807634382983477683092825100737529326673664489594427117916081080929176914799299543221606633587677978571759248743604133929224805140347597895647735394757536562442946771518465936675216803228332683719127202954334682601630246173478379558739513337772806251311080288336630227251408966775149459703696743860504260906876903951841889005205342110040214303679383282059458445507699776864319491921590287321183315097167005077204316176593082485677817688231332450999308831888601913538435527576135245697168217325486982790780429486029015798622932254583034049377818550367832556564246035279982137914610697956876682974752284570218652535907162680578888826254360401841063443255174799393289205551699230109416200509614324146648095474784653452117427907363852160797751963757116564131493968422205139385471290746605704292036740665859035286693757782951228332859323751087117097717880686705247767576020457422940566235168720702977600831326864706702781022248613576299302937712052107447088223396883641621238732702397063514655988572279228629241673768062028914498941071500859277379455233002867731164861210289938856266240045966348411071655870765198061542140333475875843643341509918167010349862716239772602726856478622804395936035371100397446583699248148903202459801515036405201818250562669297975519119542365554547601281090114807695992106295933505071628490898027097456657728094125229022502120330617737782924960560269392472808451504585203972164661002393224196576633065572993869382312032350726171300492378449815559932357407353374847619724393086095078499573878872179944053109620219531791693702281315599083115311269982723750547685091268710058743781536221895867149609570605373575948896498065757554777261572825751535628597997389855593878722013673138420423086719241529386844144302576482069942479228020047659211140584880777105706634054716142956372430814538514859234279883412119481696655185587605473146390719870822342980886274970346652319767719288769588190343399716918404679794181975917790728745000570171413809159796930797902315250256212740968998577418178002281352020563228874184224341045246025241485079166053484986889582325614791529197717173956416300402602145997327395453650462078884168296835904703628164070745992304935913634464938569888959518472618915169098716633881439733403297634807665798914841785218418721316950738342332084643220508383754210004816225139729124415497213785789716477150046810251422483711497845599822059585278408362508479809754437034442320202746373694940382927749815459724610645564855728127677872338962909696016735254678090097831726828123592948280646589390583230970425460144234679528633698132105448892725169626467427095530187146602535021976925605521085585712293796409882044849948939259011167518889180302634862721464979796060117686975168423811270253050007839483579360389522825722411980656137328576513554596221192517934511934217678390995400478434776433172741860037718449529874626756295939575188707576879000674489728034616006910155819920821078715011149866495050762498207459030381849513307903678528576833044196062577914458579224460311731035828694589902198665718717601456584785975812258318288544515768758834228591781367743730095094757659062089935481141314935789895759918506989843122879368805192952069577557145020497438342784807511780250706814756462727079686123452820704393841312849704835191249524108444549413891879755301585815657738115483414073580855899355474468761784215548399665034455331843233620602297665300146393089231477172353865890970166136780811128583905269045087090257699184512432694634502239056236303422382482347980314586363043850537347912218682878594625596549081501797889295961086941378046739403236602455741364254590534006154872247780839036171187852783195074172244155393232759679033290009098810246769546634961572038537484059660365113884556279972876488926729119686123527782294605301932174425502917591738816667474183762996760749841204370944328572453844699832357788198322148072430653874348099183007993196771637692464295433680535198385836184157159022613699813008291589441424270898968545134671033449123519862508017302686821738632213672528202360141102742297139421696233596315926300107229544958950080042719565960512178289650102484465713782649340866083727589099942754867492527898246108061257284133693257976140484742804712641278648908239916702353006372699700943077734314545583413520588944099718665522563146974007854425774480311252396258250313903998376873808950803434907881348161775162977289482728406486488458860957028499001889879442099989810985957969252011926667533597027539410800461555267711682790071453529826665080709312812651046680803152115519540180417213935285732509831123883266871573152848957097744949067666950777785950050366205962878830837376711034039176451270296272806967289708131649815202722075094185982528060132879331375246632530297133837174697131751565255304993631233395725373446754450547434213288201483632486399245036329346570610062247365105926820688250226381251648585099648745882094642981328831581859680573126850423326298760863817419904761509069415793720145620574820516069883175585569374897695368044251205494528557649025185157570752241548315907857127508620283619910122508390975531813270817305605327584946752148627031568623221014900459785303716562187299469039194902575552020033104349507873709319926272063630900792845936871080313843706624198028476333664859656303762704968246372850487500371611304739898801647898892200890721152559447948265977442606780508026491435539900146086529646614719533682609676396396887058601737687322927540393951300797360417817579535072732086793819320629397951534682083375576913829636097400800995175237201099800216742364077155434480055063563327392974793684095483656906184145295512293397709430976413267442761749702105199585624600059867014807208823279199737176394510076749627719866892180804256182791220329623460174904934834051224317528461382401687416159755552592333439426748220220610349946879335021178865591064104536097604357232681675573514595209599811706368070523275804194542803297028974220548419155619093356043873340430211681052989208416590454088769785283388575412394404109706697665901387077628242874772482680434144402751831366708685100070040909050037771021759838797381126048185523921320876153520462427281512047156082711170669343318209939344290459226702206535317693887312421743982180762363102675682353271665390837992701105848796611301025271397637775818313630127759347044907498460521456663457660767478527644191072340124151850745836735619753860598331247528440391110924413688672104090046943987744657841524475322349384620488036326602401816828076644359223405459237125079574948848181022193090920373326411770028101416331536018149487715206913480708891016413880942952179683429528904933763706461585254093348458552695883495884366117312492397461547680621473511521692127386181771445865914789040401489690627832038138862441214751073909871395871747523213918289353616232206421937271430887925420490542999200496263599123284547185415823400777778665889560712967088157324187205568500722723622282046314469997629950746964542853480201776567217547746578781095026007088272176736373241786328196245642962224272622730210728908590872844472737872443834138976980144512058818589292742658525623770506346360505457558042495744580905723917397786220568868725962676343190865159135062815326988167979960398919400330130847291520937350684708499484437344282050186153905410883348574063531971751423110749797601399128533965501393947151778328396349598263964448860658415438338470074126298115436930409606627512744472204720889177257621410580625279582188805047122689262242094335222326311391305519995814761776733884039707680192108833027679663873121728355670350310230801976627747570111332505506086313950978376823226462997828193272596764632878061757096965518761335379521540279536601818252647546274055132735353034434960735647720266795731983758069164675135588909692192172988051722931667118555990936979391099081094658505981162055828250853748971364776433970509187836977942766500335076470828963025528274101130405931040297138800755197614009013174875779898135614703065962426349334836545807935447606076551970713413625258979402674747698750951726776480598869644025168586867989979302739212509364789718518902333284756690432617742149600067296572620095496864182098327637300727014369475352488807556758119451499424063465261819871947887596928009792455806387009904687929324072724408765447767213033042460715433662133132705957159578042686114219849804889789221898076144437768691828385585184585579132760175224693480153748999405458014986662689059711523175542302740729818712024491290776598315773600587313227561246668426171987410680987757861819842971378936391207772780024823163748667570902341992478431667737259676317311516767176428968597479304309323378201190770784863719576760053131356541083451385264071274062077588680989233643525403126499482871749662825815620937460168530805659461782772513611588793312395574908966534057406268600498578918867130372621812905116625785123924438238732360059676736636612320818955049218178199804084715588287586763817166797872151911904392966050546532670715562151749854072036818353768373180777156923391084999991387068265401969147989191288802176983296893184649290410456708082083371280046139436406706684423807718277472790484735271434267930041516964339169030938637319337735491292481585509525054409629172462864491061802489108663102095021274649822039016033347709371547312565183250776451218287716917946241789992435389361939677954231617773989200732626332757014713367025847484739195805863931673031884108064510609188818785395470360304310009915043927813419230965837479543072615773511125174047908531693909861817983371436399321946508738265497385983528136181301267934262656795787310597133435092323036972089116956739254925277394122728028388938130259770940380018192763318312194480238465146524965396419331640734198310397466769093844053135742428642273747738859819232639681499497718887730159478122465462534116643216734627238489233995768872192548510493548479393923199563847403348677976970486230792341963473743400533095534975757447176620323736838767909298154237568063547598005310846206000048569041071606719145742599481361253878604458088208984751417943479079299048275551473360148061438016696400364751990358633136999268448235752085878741104707439087442040988916669682688756078805958133675194001264534515997022851063645573507039049376998352682473251203368390978894957341685540283684804872589790139924136202718485672556792913763036602372622628805138354721666689000042010448296398470889792327235308330063048796635705096365014302076434387268416664185351298874751200838118306583788146886368749571965001417197355658685330663908057110198364352992936916827735971980403294568375035715994884721092181509943133841380429661056507566941478003468083427861063253108494310426133585853920873525270927028216050296460438325671653122580331312076376856842626331276274890304167831713039703881237542214032420599662940019577429590965655730004839913924377145830475587262637706826257472414691812965054537713418395127194188849495645644231680484018733347240689072495085565027961612838660605985357687047712843704298984645931254186064855656362997477205211515913049431274705459123631541716790878242110520596506604433380927441652610204467257401226379833110334129169918347307218886017864218629895758191795382652406421275248927336260537587265866053054894698601968506281805067275124402993213162317903253428317932582363339834570659898069603112852056157065301138765881182631009571218099001304675740788259404199091628872968626470592350009183909387575327213286870876200554174378336753333618431295333437731015503244507931442053685854482032246140728199131406906531330895733744934430475248341490796650441267637895461381104058335937795944014985075919125906912822050322273505553234018491123766340780899930430053010949481705303971505232286068200444754742516725603171494747351477178442594644533527494877135981331990553004443588237578195889227440789660581923434865257697835042449499324220918581716172034504742201760620600153946499244045574172059223529366307537412299554259907640347264782273785818406379641770324732929339915139636999636117193773554767172203241451038224508831502871721929916996380626171493257003642907185973808989035539820661861575246659102155118734538848113369310644421337075737959776948938208056457490152491785731555271820893512777061790168376020342621169673001620222995404505758576176703796586270069393698842991725928583200530157687897298130396480535275184106130501849263357117725797957708572427019694952348191089837849217396356256769282492987695253188441600731203183255698073210582384911800042152523404007595050992609230220265038946576855761513148445727264057125052364391528802135936493036106150810106002852190584472232496935690096523060083725142766926645459915309901394004139568573699040926233252079043017845633833548561312820054087843632799225898015069886496302949535162113036501270599462738756205047588703259558945509058559569729647860642967044291888184477391564649872393698196804528289864000253097206840311577400682147045276513594754640995696472486527685505677507452050322286070945413174746743304817573972025805754734516544070539804221626219005847602125314971620577117987343779073631394796811478412797419597094842713313219566968633069507181418218771703666298428819699445974371915860179047032512901915762005309597241246968986739343890221101216584382516733026545423437308837065483976195488956834642391775305910274073758168762294587736969608172302922425157303303404193917522532351021008832301246770510784127427101864245998084793052573978522529899578780223493346207223863317858957922224014631149143306131460700749580277861401546850964438959921489254574407363830495294916395225993961210096809192293602885378317293003949678537032079458463529644978092317839537933173310148335405827531233424228385920169400114253469527430461475755537981568107568892387673554200607371251617568005380743169090216105135811839383396907941768532860861211715081257236816382423362737017210601512339541500879158454619775498520706881283540816186394322859698770780607909338945863778680686426257187799765131038679987898238610850201835454071589521567214240542497708877317393438429487908011558015581279657949165156746161036416491178256883945917812905620419808822553345758265962285497447624049208620145649116984359734793662815232390431161076130551345662116767506230871538644865445555427233690600196708536696370879505641596273401815014417095756578574288734036283708397294795206692923935835922694337234733614826727362639090248610967654614400869694688498783702875607240416365236912871262686290987849841372005253494096039242194002963095415583738813249370089542484990789456281611524299982028450299344662671707402470682314696751108864733568974392161197259925579862857975721221790557430182467668502221191358656274024167339215410787202872640826201200511543662952684564733955555154094034113793739779890644349305865251738588648809106540025290889538613678899499084237001806673093310960744339963064369046226281815599921832548280221143358993131989185385426089641674252956852015350013805480477936933675080106990689206336623559331597345316458530337612114025815263884687891010606912765636607575444838176801832718819077112061363664536102457209421965280807241032473666093696228239691787601972290472059056534490364632615029782967830464982102406739770153624227146476784805377684925725486715893632433668325730045084812778078595190453865380767082671617135850902775422475100188419056444749825105386110947015204847842448405035519834502442573451733746663086169388905597832000883558547452630023177447891323782270060899334113988401029284095041371140809839632062529371168298212894786178833056467279089757567995996655617549129197526257105987689580022077903533053038413214099386121516424862629132415029814760500105510021201107054770582815147149767931632046728592125072322192345630448434646892829671491641143453605952344646773515176046257207283175177154497163252087838717025460245231961323875303336657436199354651191014866776828030486778858283376668966646493446474117989163308667237232852587551104077445280226672395323290948962212816646125806856282889497189658501205366639120442315047941130117891633720483594159225345275975037482316560808480292216280185890904291249871524113469757209197664879231917121584136564212871690318303308433335211016156693943429164245994695913619528075815233887847723642234077028264126646053906600307661747482642755592851074410902361652362324643885951909774032324116185387796869516054238668499408183978379634126954761123745773060729074652958596716665271221243668366471496821206160691353586637183141523116277972454871364214500238836089664960108351857842481900411171768253756977047243801504482000774650404666101388708850534484265611572817765931234177526740024340029733860047730060521347199247486179784754848019630408794414299890982050118031478804645349711973610540849961041670175661460751629563216130228526857804979259891902711600277446327230539433542613564680416760972014856216437030564545640631452028028232234429062585710168361665178309848968379509781415208789933974927577109482509923726750839150467057983750011777978046519145307391988907848051380467039727770700678676860765618792310786404678117188628766219327712675954010134416214559480357943705552213085755952748362999304307856376944869248737044142254821458621795851599477342905104050144440051242191636455507846080628406610976708349515053343232426317755274022685529310388803840345290690077124527795598976588143280434352908664919496826819604758177311107679332936787153144620955802510637046669476436179878445253241319144476869096764900645746493053491567962032373765294876171656395910890945926864316336956186673488700506633898502056558837364284893818918319174550548327830253243435998473194307180084526248534883579054248991634245817004901636016260530124996798648022551061128932936227452971998665588759926441400158344070671541944335041506066000231682014626464065078418784121699484641835708384413187679489906376276164263383844981018533835680737339101509030274839974478930047821515196995434923428678502856115461854092005569263828236242744973137024708143991312078251532739634738734549592888825148900750092182999792806060677259796072490635895284503795117692207266372844279388758805400994588519516271390011780411536337102552826235778828811572323659316938556950636548223920917347167744235430523573588078057216116994903984628155339675390604874927542669520994825334969816443612175651240951266347358943410917756345627483292544591499171511579202272389245876005092322236227100728626969559008478753763229198395020524760107896479049716390509193166821006860314125086594245458638489886712362901574935793127727517340731271163417949753092505905945219469124838609343527300076001586232398281523964994722240029052941423913836663075676324484153990952791216697124431269132641692986881297328888288234185633915354891443586670662158484512894887150014370105334853452487911433959446461774025585734359610065637273419654444587030295152796675286672978983925038804022953591899399334688120238825596081022509743630074365499796514156777243599518059456874956362118041051715125006468622246551006946128319390525119238711894124816858033312576392272831332002831225855782369625489822166421668402157624290399925145978284870465836626027697513238416913669627345630300860125501121597057336869961040847218231632632947910302787531926725682061430366691417552821363989934069659098151044880879719584931244837179202067365607667608961168015005083877512809830996760866059897272323667043661344443723060026942344031774899354897748608983647260966207106704080873041523061931706899380529582398431901094746200308390714775169851354013646140415928843043642647563148279102628468142751280855562984623649991702997855604369718707407294686622404038607668817399313618081188509201065383696011550556099974648286574544992587331032138547807400919113733411420038493744695435043670714479880830014387424875062501711924635315478802580095024824276667053966647516408578266755605383654560507943029901233229130027865935077849365465357726875524310025961461288981142988526655115621488292116227949012016173784431907411552554989439679968261649398280068348822886019196105597381048507080319581873527374388005795452675047948646884997145694538750963281084522594393179522198581992593681258914366835327001102426979932766193789208525852812129383581078111963354656008941355965560865348898215209175256403105135310153990345010639363725014147548161587507035643480585529680545373605971077039883496577189393296212241128435304636394700477886302643901627406203894923215672130714397549339608050867948689595228443237876529901871298777108908322155623156169391458525464187067299423362115183160253576630768735604734734394069321690906891707032486399325672809785042065016606860205235640753371467680723268877389848339451211760786913412451718760785657301240562098277840778107389989843219842490608860241623750388021301518420436372660649336750034370209308011519137831449239513134178871189351228206273795129359352011318090306747848679810574754103259236452077107111722009498748335714836942268783006739473574938401507579156063242246371373257199687191258140732049569904699405525178744385113988190134883770076959906122430773193804673844055331949069105403683829792837389083776556650978710671215190812388801194957332192667983415385589072660804697216594864017141223078790572478039596596150480146327602566027504549689123633807043610720053445542232012401798959348376207716652596959946929480272485250442162617096454155512987463672037542583108523067067389189661538013797135764989972871280288586082699897912511952631385835873172709264302317061081887333889461283894967860021290739509869179192595488891806264988698635959811580264110348369761644772671507790244787805110091613670855364270077480797443053448442683708407674828253754178688582328474094046207813728143047049107649157781107881799412409468073372368124524139275287948573152495633048603782364507623964297597073313069985257642438561749210645887305106557698700679071429354951276626915200160785239154707283769928161584581877941087757771041094938478803843096714917589677289913157655333428097819672235650297496286872884182766256179412446544184568018655722757322540221069004905997096662997204527639382828437275393028156763466484735363444861606165902699600540811507251810995344626440745136939983696389770393137721393627823570230470075585884839123429832467311375459102994965467959600604108994922314915865603508260204787947915269880528609993629135874835558532836536841470075450410017190359956685091091831690762141598238170983320077897240062185731052017814138617100695928549195924698325027074334073400687270235701353393684879586032342406069782907589948735360842945884638521702800283731224312477632150309219262315120694509934474020106573147587214693038400080888118365607644642414119367966651254639704623771409975650483008296183761667185403943371931238821504742899756836592661461157052507061172412264590979968734579643175941395281874647945975006021380365542697119106516832083267179809695401425193854340711545216346319616418037371516406530083016258275736600977928617467727722188548167985027137816560003987911002990288466255354143695832633295871043776143422222715069113670283840976822545767799807942843205188626017064343012314467709500716712281357916647612545614892545648882943208423044030828236403849110610616978969077824724335150220683346181345464870968041252835760120717057998004030814719161123673535969228322892345042850433101979789608342984531837798829246417878530765761898526552092000539988125164840585893978420313541252422183415558182029613025227538938163076997455723197725220310129124127391518898630163446117148183369146609330797517681581097661052262909779913461459165839703168831889574550342735251416300509981731648087855940756179369072564737514888625245721923910127481854636705029969547449174054322672191318958951283500076475647732797937246546393817227217424168621766540933705245072535519865062833968519207501007913550788155763858294527030847623475512706124565180703392823048168279404839661446858496216664049118784381356841877345375602809932985246286123883052570102418893049067721811788313469116594321321193954271593597179155382526650455469443006173348575443230413934023327835297139197475622425263051040713481965889447432447058884182777217979529222476314354782357853019954247765815964837484611725231242835699240603136286623594625179090192423808682271419616584240566955898119974654871416423957121538932108574259199670936973141817444903611186365128618297393949699993587666681369036667715110783279602561379734900377114793857266231592266704621924136231014552993660449586384522287653625992937985267395327399689378664110469771154470975714535335337256624642364865818258684839375741211544632400806146390302463532851789673369251369829479456147742299651589675083989478034807238083855720893565128182893702547976120090872033367228578316679322390743625036763197899003308791831946413095087247150914573916994590029610055852995006686409000890155919705681092064276404786053299936526341203281149812746695454301063474715762479254108299333033180621798179498215615652383274247052831581775638452575177585350040995960959239849606163727153149907202589105208028576343430790530160883607123981618646727791570986679315155802732950338568681431911631688700519265909332249155003607147268339317945942569810236542340102319676647469643949220571415655482347841317275236892834173678015987560917476779048756292629583741667037222819982988294320764151733617556455773449754674843007406147151844256450991320543008777868102577386548522964032701455651815236202402211169150726688668325257693177031125905807875745338392954307747307521979611672139868934597104837863367137858042514829321709998066518763756909341936877563046951152683347830166637092470020543541035704183139596361439453431699128843356856269514427063924937730412419141758825473834669104102290260794373009555320663916535440670881285936809573923310343233807782540446822590042184753135393579049947785511780672409533408703628526032091450980685899256287772900933840381228276431374107904080986507773657352312639730649259321884962160515399843136528665145056382366600107544352973596846919345916111677976437635688291326743437557449094728336399548299383226120146206305486300940057494342016232958779154748501820724431337629496513815402135459355447163983918604844088290077754955970941909195130710496867883506048611631919092053599945445340593300396614724033229161809149255734739163188811791001757706196739256460245671392415025528972573067485961016466767754864067526836417634812345204047581041597806104089775497738167908245192503545368354477104281890580231970278623167286732049266900405652167703143534120765603734982378861460952047212030408440097013048039258976048770861349411966748786351306641342240700495324290686253763570307412947969178601054908555900103371265547347425632570158982708586994723649135383884190858848886541466012643408853624834804807816548843339049703592978028533206908498406483190685797950697006352774888918055100280858239804191630639573772389665023279016072095492502582768384517711469963493798792026707801618979425421438581126425550371187461814898475005676567078476962836736709264845174728228509858737169531006549118351753859233207146400208302485748279615352161981440213401034637370511950740917508612430830790961767952962673609795147700294368176475532041142604085977516290632980690321073984145710590676992271747345060243786043099669202307274788303807606637632858605773003852616078931507724916262001656689092046873622196326687823273113618051651548757859385389900947176368260199368288357806213842777160953049909722699925516473841786455595419181469325663441724314674619481454514037252422384049545954652732049161134372139365501408839025240463913666657977498631330096257637706847648178745290303961066947304477583706602263925766174791734387504019877550378826477288831779670385945713221104228736959645379733833407164336905027923257209000882255113785839327749519683363143446827573549406951689570464942522360191175545112221180793294662964893130442204098203039677110570517952589094358532097285345455964865096988578501585882589150872085825239028798252344688791471740022244966604400890262272637520883535071988486339770061555463485349090453447449720188743038308999536789490192890463706948836136508737299202638296344774385299301009778889338745465048184929653303141560883276875391149336119486237960798240298392922536594066628524939100702895513955868154834018683021037576706217446863017990000509249263078016876894020585581612619129172628024756076494190364971291225877740087861870649727597560818545133801521593178841587805174283442974242831525591700426783898802388795610924106393351718427250852817365967321938913768947571307586004578022666990437322817513143691147127673387611089582520296833457069104718186995575220073246190027939937557665665511316290200254658122258308702230828955026658009180774725731741813887011207802996317824358255223704292834945027999722422301294294549251148774511622071009135585114715299241768285564374199582481611036543465544512212509367989917030206146787090427046774768657483808343863223589620577457717816730799538263248459382692114075511982817346457151111748304976138029266658721037494594455724589666712963594802857849463626552502717220433350120385112045531338021002637510877307588137125522304134257218526215711898506575247934085732790617672143290863208682197827343173103409468517790422055057227084536897940845353568316733815917930603361251265217805657278782112727963239483823461418028998821306624437794351251412842368814410425461920782893264450542873336093559875542045026257831263031396574584559579293780888891483085074825689999917757466223692455756173327761862226186030386641414845179424180311288099696424559082683353884305599007294860527517837415008094697461818747077768730472135601757896840505201286881802055053535023381479257161659930391015951804758226291446502601994009153041075919349654323132106190009020080165247060840023237674548229961456404633367193988961700147867955520759320251808725237637302090629349173008176671200996660997572511142485716412939183515128063550192305205647746210580656394385367138097797079995137276484293908195456433470900006210929051014788426994518204336210843062231202557018222176605104471574996504204569471417149226357020953048401472465525302703712579513245163950540802216490874562729280922918615125680749380056738384479727335116381051386324488896464418209783132497589876292919826149036377253124566015715171032598487669161579224704282252193650065562668843893680877239945658406852600825502171507630236206785785747684683162943041582209577764625481530711467768364807177846235982395822845750310250975245072954780785399863629700773034197325262501748791676892934509114220363857295702885706539975698430594233398438980373301396484769168721820346330780063447580482073007296939489662407890125051479811832417558516903999817514039650510051497754677979585246486937391233095138088791147384269845094136440405991739519156875916146283756776450629335280620728791065348861176639577384175408334292151377076086141982181940132636705869311855062800328797771376948893540369435230165622668386400443228946165522578596462484745698907831822683540750186529475435855895685937539275509998321874693569431011342137028162907346923535072479908386527972471903803114875706552327018444152635839201832793898210513686360937298139038371171619294194791988708094612248878582446009409343864481982749779568418488003753212747686203650006605840104314392199469687028099538528101136064151628416007405415731633549573895140042663219521755618166327083371832745357922858749155941328960559218882718701567417778453150189368929793912352358200427398430557829358990773999168926307956298024765409070206321530941832279760619119834614372560253439131260969914366341159215927756335065596784911216631875990057901283612875265893964175579730096506947506582700948446072346168057258769855215925111818297073382632935412256123924605761490568931722821028519658976700113973081049720648130623462760159989722953698077167930932316494746316195087003757379811268049365552949983857836848033917484648466063337714250819479900419524136069897901632953321776974928072352333814328141478906716218750097696174204202871854050007607855826626511559456411782604677979145944696458994902007480942632741471367585796862930764130499828794658609037877430331694280105409199602011629531804015129523033675530132425809097618085628550717557828772710006026282184116176711478467283208802379405203498715758479569958740991940090075775717353336399543751733286587552410162706180451952412481558705553384382999758953784010015568675528610632258491686120731834627915025007976781256137212286462323167053864415935413649980762131762323992154271437821155421072155961121235131633412245282555838770944158953078382897645153236581193300938428114619049679115309917576035782951460499255685059032929565478888070943831065730937777362399392189199173723595590685814665558900227043179965499473500474564329393667793673350208180362966417830023752958967385128365114200617186705562768751050010558827630219154998598388396331253209967428240456194550526379259013428406308961490224678784039897668654411810228966349834885450806335319199036805509827791581888213348381383678977287510097062569806918735815147277649432738644653383940656310149513225750081808734844865452587096730613340369564657504953450484321857818773436226898505989653025013516466417346138625573371821699358323243819500540957457398240884267586829791504706050977925549598300533217136968650630025133447535489254708820187779988894038845288634249452343824635323387419351760902666687939304571791455224303243823840162006476331543236801045316278337286844111567165365080444834297136812977132621804096509477048104139629770978300593637293507208698418893684542555612855507768329505729640543964420189976021635957846116540161827036936496812515613334857578420337244896509885979999804599845915999747044126007302010801109293718748349234490181859620333254242177278472132881759665826956219238659700405056807430005831551768336945195671652996090281260029334402717321530836854045887880694500926758291848708778016417956272242763101867434725643925571494262427358671274230975552797975992632413906438193679026081699919938916540233601277780931437341371073184623410960513039257203017506581675626474475250699619995678006575943199674965084290612372998567071754527960879727084676572187591748734046632935091864280450052078995561348834322252013235067901352533643360200412695534046186440308098133147293667511972990222321523881028255583707305312941985867955377967053700991331124463459936413020745626590045526265923558080416464020077252384270151690811486904174924005723160405270057847420145927586050920926886427140396424921449980983033448248243770474029534626072829060024569316590963161463202280323341653637454737829176693049876965227822157107823821812599009878490948874391715620206328247837380874835456172385662828987254975447161189567791869541676478214589352267135819288698976051166654264993264354181993985620141100279061581282828299400558568646382499023978062445141365975046506612365259522013183731674880415090706449385595653623434697408675113223852849326832109443975426316768275958511731327269732295724383068926517512054434327182106644952146802767841672509957471769562061189141566349247760389143191192454841709872712212408041413347617273925855137885264937007317381612092625941433161782025604169988156182416087745445817717226405390467850694398852375762668940854921731526714611911448154534677297554464641668137035390663060068650439584896679320647933309384363381889746901202028511559318294955008193086849823794599526731241513847870576386060756371617149869829495921909612458961259746366146085335793038653881614771249671743908902147665623988575953981579054537931759890163380536701930261299379844578368320515797045670836588532153527816226603989457298484297241619045673793372979963153885983950612499483730860374911840150910506371927159427941128785914166027744129422397027933914026479175301289470277213140370215476078511104257534132334917423138957796820581957253505907060886752830579872179905049392619516558865254516404736308975458076722875113854367103465622488873902763066058815741161412721015637076814627545166781582539323120749215496465350488555144454078693915090816075359373409120989331761717279191656757114314322041789698911350884325704411676882008436556237255662929804861748027280850936902493458021696753321341827259753684401127405018538810215963197116878588944020132703882432165990307540370446531378494715934818737567708690324213103795006993902303477668512923059881437132385593478684582846776991298218568815596780876263481797330902687003825011006478481736385236241303359652471623140151518481883969280284969642514405544332952870360379849071253133116197002103434910358762940881093672170426218327501522005072472431946732092077933247290694260860088782352675136952232036348835676478845326772737381744452180685918620197540361092297536964011376555233009869874823088582654875993734679996029394262047356121025190669165005658447129615322809344765594916888128292737614047144486028843033975415239423858474178089837414403460753515599430083550802785537091083094998754030508363286743215156365412643401158394563656328402633024274939868558240378702162578915567991192149437892991770421419311344691047604377532324928466963776857359882336828210403329817444465306587118741450666573535524242072289592003359311980300307080826125176466889924625016553696964064231622129113588604757070937652147764208961891190248230651135727115261788615952685153283379772997917518793296885169677968908202157782354256290727939509080024374731128231107601539187772595004273554436717759734777247471563737335138670609694683315914636192099309716762217092186547602914262169364673969359567403162684071486137859264810425394380120512444964566631632614263357010187916485389550220156171202280482949088747974737104661913392288885019123565860716383846432472825430162471058783713495698742745983541927009581904021838676144332433954030391799713307824654863137279716849009109254109113239083252013607315338445775597412421114649693993138785733499243046047684236541731943523996661021286941914471419833093738104968885166469017849593081195132174045643449478806644733831822338371747917317411658079184818660683661778859097746278820604358088157009309254428816802033952664015280033640163098869525517966945577291678609549445048134201844332565962127633103489085833362131105553009089460656685187079298964417879754585099643556887305017323541065728412596484717441183167089366925899678534943405957925636893511170483385755629048115742521613952307356737348740423390937122437687542540314056346257523810192829085932772622203992923263875963031159209879172213208377496469377514701716217133770338987740281889794623959987135289780287867821390829137803468949076523263308886968682477071998808152843260027353951056908204843369088790286629665468444631467880245137095086666565108070138955513738494113891299391682462564534379050001240032107834639072160539274716903038158611164732640026049558989256670052714443581509696613018161015729323604447414316660550983243220202025194581859001046085051773297576109775272036595141654542964480148189610991692990886581195488221434928866345310094728980861228211930389195677702369138733205706259889435724513560168434853686983314433956854911780955851059256163816934972410679733982944490515415039487943306695817528571731471483389749900865654920929208138524670763382655015788642020451691684441699853032356721724627986060902832839790870174033128649596800609767193807525321721604571656336746362908851062453513030581352121369870859837486524871086153364495646804808793437482822231960339462208826921562345968377175845691841128595630596208183740070701608332711083981314360808228876969772203461953531616414975951273095719421169023751970256668048995235821166136956468064323887475592933912134112364991969226916680524891238879892923508524491987997842505273193312898261474084371479075855684764246660692340089624869212705573688449561798298999735574171623653533568683187027705008260462198580233321231330456638031937189646546436156007895443067013505729905247856951414462363174088494505055979089286085432871280645994741586277512849463749997398449147342583145518538220438381692067512086796825482897267243165202768357286360416393437242851512070496446011894156762463261422249001155275115147825520887040249847004181889118713321295427647151901961068302138364392779029157562359447359814680230460952163039158320797029576890580990277143787273992360296208727767502822293174593079327671337296074172683918529162637638213227850040716477043162112030852166616043909293461875152953544154569246528254159445247701012078129188142042053164637642846549786381996301886278522265316334871424716743573852977399911921738029359504329135308021021488960738925380026502477810985226350214232016701965847904569090654456859761263296984449489380743052148230615851334325462695418136425373886907098898130063265017726587492805111306970108635205831512054341579442851571602114839295711726827626169534930048048580704824186452820566651530121354506518131184118479170501873864024974980619822573554666832587077445876633258875636367961501003935838530595680809910221376205905848158676685480412051036198474022128457317201714862116251814530767486563295173913540023797014094875227009807289652740988364752483486846413519936938486635197366329889550644487363872572870651746495726129953037009893001115537078543742461305567768005135260692223766507982718768161714612770235247210951311358979368689884960908664512106039674342492772825701250322447045834271284988391490348549313884081646659424694744209962581586238377541752902916282398814035506098892340006606300678658751353127175809799220471623733649838404862769842098335584700377598207305905554629358507675838040174540167700463568195283916622486426950902185887804225120614544717821911844893729129126425995242673488477358568874853572476227026593015894059795828049816479669511031946922494210533149986632010211520492680986131515430395746401154790373073241322743482305636916187831856917171578153392437045675824540430100020327443366712712959479615280451572219686687479016672783546339090019029265748568553156292626655886662093569816702570712761722161343049229590191999527575531482656557849671872724161669402402621386260585962787789304417597202509492914954027604570164366357726647123895502640035733198972020748753388173567361193990389892584630647697312313698388734675886348407810164702964022447154711007491065851420695916395938435548459987348919075573286129737482084078595968718090407505320955709096541263827818244388003477581670428571980407913933619523490159542733902066961258222288265126510235362496248535942491388176159015698586142058987621577184827860282644143816305479630799306195691341863012501299439583911281418447103020368756047362645148923041244049137743188205282468839358378931530591818280737433550179092513182522679369192713411444422040863569569070624981932733478115965316702923911895085676946237961577051408241762791343964955953257925875834610787424531109159797937658983166395276343893482000562723902905005436198794906213271909197460170803481637422293814983044056952413228363567938935705458158983050319332552307391434751906474860685301695592771351412511984257946499556438426981657736922377029636669729342229779705472803625025781422379385439884573202004062697265667741075165190985831837489112767890305329705483454684534593842509198651503444677429681054609388844363061779262445710209563053303257353366546993633653557563276987654686627696864302459967717879306059767081078895687094904659372964180560680986904968137060258925085600564749438853715518090503159664887176332027625735441975352023779039733642930052096783826305897690820477151210736695493483044997925632195536091871195868463308807426023293884925005472345949410188639913199844957632123233185471491287001564053312597552751830662932597603169616347670320234236247906594723035210528453413622559512589336771833639924302061793380289637954956133008606171696919562757735907224604962087184283282636766184056121969045777133792178579174092200665490503238435014648491393124359993904216000652499007158524215066144007492870814355047416563533629889088776406183755443007689026771584439220089730321469337349060716872049098907253466394973981043380702543035227620285002000222041723405836733232455337378632126112705002016853894350023038760053716493018463707664362833581524091301242452458591593987898357316691009959585118913734263488080624155666046226509954221251860196509106022993275254220873613444734328151310535130808153666135925166692982877089507355029454033845630124626718680247851772328978255674389037516843184846173681085191396920448288965840664444138395653837060695955353998652058408372527751200626101752854009391736802671710910353221051066028168800169369352015720366009133176527516394019211312519846576538721171915346350202496938692020215033530432317740634364883102562224163963581110890219998664380135410756463857686544278746601046274525213492984064888040414899332909276659886270768201555802135855283442966658620009571444457223870667433494852500801659954926725718999004439216838290099743238684219508463834791730482804547239435520759826581807501702179673430857592121165329928940638641505649697570869291512450361844594797489238196387375531540842831894515235744928208597311011046866444153212435358099036981327917869501221452115430925465527407158429189101458391546172306667025955846806362788993142380034105421899324048067778854475482446685896951058274864247707460387727160157150005103889546586835564900973662683916266658444543935660245893905213953573436427881579662466739371340250749962508994575366583213124173276826584057497044811110878801096730255413605481240126242622000722671581576675725849868724146902121015126995172598584875345004928060563719460426817934860319976847603196573694382422523981675366042887373790750968338639324529575753668211184372145060297975423240886814524026157666213728226713981527384834007678765397966450178355527506535002969895233854801625386517925078801212869599782559072276476071252786669352003983257391969915076558530053493518832766860579862566630004163021856402136973404866784901497776365617300922627566625432915586160300236667040160602998306389010680458307887186186374126030699304497251214175962484940635271799068702397277589166367555750743218603314182148744126125980804237877466530408245836736376501909402538515955521410824567576905553098659193351278807557739586768245657204896417620436352246667821646235244630201279150791335789420433430744101654568445440644702564069845675465325527578913415521851064595151882217096188002902204310564605024311974532631937108298253365019876293102315063097079316359776466374664217615181648975567801451679422118927764362909005066149005504449024184912682797031305423646689056390458451337928213588825591675103936457390370541018002519447771674114154209063655796317678497584066779169336951834545593863249068524703761399496545062911047143338698966232644219226696519083717947178607537529455518755831019749588835043649563244247119948554407230614423224931598217648217837770184203320222499859252031464417738210665548569394781387941340339522187584722981421717345848166676158521132926903230436981158837128043597590898655941426426618928992450244896847514594113588862895714237430470906883716973623166459500258876637136616878017118701549123517390438172506855005770777739029630212607544556972496659888631808866998528384599931290531941839536769116393406514539054638839371842964971820204951103897210440036479685017002997476121088015555557868050718551167493680294469614112460590275327245286199688097004651224531441931741088316023594660905841466697012434402927992677386648263308901975611508909223528536581425676826489003081972840165499887028539184440938112605084739287714037929415622320465817002239114370155359097056597075514279002604806927241232389644847984240376663221546599144260432511112354542172875669839721051094444201281305008157207584961029889501666438334533715191372325570338252005519670120832541487037826416068105515389546226595466724538329130788890384066878994207571385436126989752749076727935143576946235987225944365882116215306889257660857302387999227930150792111752888585776919199347834206410655776782830184132051159257671552917471038257082794867579625607433718195554066212849462356051842326173821213153364207137216220431341231717722702135879798830796149108849544204835320598145641665533972110357472765894782684919262981498433887791562939152584727070855528619177963628529090251267987086529429524595947054398428340673982913769475702458520103118477452217150697844726770869613091785351012465243611415894467292627872377903816766545395347795165070177031633879823776687204841470676483964155347080389739149942426689361815902272229860227707403722959056768361819155354321022999200301006000547079074624337047251143454993983162151925723735953407749268621311133581480860759364984897349525478600421888285246796022118495926044433736149947386390955806155705265155111057181921668358309871936586878976039657076588135755492110234315390637300289586744727321413428693696678923058436456245750351325881798460310198628963747620934710875050140279285228608090769425138509608338271708308802069684406422304431432852871489110651155727776440466454658459293204128563961788837043377797650286574921974399815892609223495428597557000642887795065418015259431684408488629633092903613640688992833079576374951802176444582687257362663844385199611055615965148920758968733598758599428217481508445793689162796752665326765291594745329190106106466395652102538219706142339434358303983495098019327522087419791912648332178176723724930561242365961765975297293550570399290469867155235997700638275512556222410996383141524192176568421099638459804818171262675792907994638646642263430798550159188465827883887478199119761138989430521263192582191634685655427182938145038696235707625519635920646143191426204614703906344921956595573528256456788708229600375929934625851303294679428384146244009397060931597774716856453320959389865879541716302005412490801865201709980304414324620300466423813379299363119454300854723989348593818335874922416824210796384727901941101092151896707611686890835368043710104893064789462736658678792418657996518179465561007395222063789702460835234418063317654077795571926026238109232827287097782635219708741407588845094150281478536647610837184553767350853773183585962781472395498242377036021243235545999996112598881051579565166662276408029925915256567014557462263759083329612071673105093825041058537874915596911783896829419494197454186576871734672390151882418517600608310825263210343744077452210820554925652670930109004813670985678652463509297775070744593550797127206166456230464256377113004449338735665672839740047869447592421649438321402712787016530362529606686969669065513018018373072270331221786984232775564455501254579040486616841406204048731248750132113379109560234632019829280820864475081872700924430541121448919123014952222509994910605401449857712122517836223642718081519795929498731725856218720626016095571541157295459878406068353949005207059301610528468818497405707389997724483449282109744553137474224148242502244343490607620869529820886493965517095621531326022645600566373663816657869406180181462443314315444374780413140333091258706929171173118506051137506141074343042619444123983097128980712622914056646747570385381623139517645888402776336402337942890786043953355641556624427179266908430056194672064701102384709321734334812401032661620601717569109445924423766409385687284971072868865672411262303803745876937374383153556128990315347968902111090934483484779026163382467778525050077250219769710388703508608678994474251510242631930086625088635271620855255205479854062644633207700893345238118105152659761754155984439539647155973006396337121946824465289563375012650166980126745473840759658738581654349329893174429938100808359551657240070904457902284140002309911233528085925661935870358873456127064823211637119391602105395658845934081828638003054457128187017697476335690008350560163875944980532410292533491955601736979239557397405392491920948450340355275246223938757851983041660427864223916336773288727138771765659262690036505170103691031305281841674712747736811309807032644562910503607568720864584437840049375518863058809357227427145890835221628560388834349776649027275499901309808044074372348069916493613268826031946798609424401004448749894078858832978929467712366001265810910371188324063072612951579339264939830760977856973011723703812055658838602056703826210204895519928950889090615744754088024372803397983434227022922045146305799382073355308747704005668555501626972726198559412687784007914531724771713571873377129781083486317196804239532253096478031638289266492218883803983691911579847496407920915763754981984814821608246014712829355692669325677999331164415263910660661956474165067132505284126504587619782492377157758745828125470744439724969530485835780717956775965927244938832180620505214328231402608249459093547173513822530716378764186809740963775389715897521281228035646340034339704098447875565374772113839793748733104171770552120606442157994676090866363897358430598274734744421273925185015571631607666255481925514993819092028509029155112184103453251723007546900836484255057818075177711453209116428811448927851122916846095844025916433068644919968286754788216974769392363300085193270265271738242877601679085221989679255882531564994746640136011757283564962255063034665010016383747484557877535776867867798750652194074252705868154937833129641676605663521072629047843240850248544159961537269121787566686828216597665687496515361852986639749224894320995752566908607292060598160396977007763479176179424527789549981838301321679392122626425905651238418112698937971661967862414957274832909713115255026482991764084180256621536209412652538530572723643393981211355470529979527833375139546035988756341202965679978388306152399978842432153028413545842826431199633888116268106128168707723127898105661928200589742159380048785283809203375280028038509192135101577242720073063855188832303739020855332141713690071105254363269416538729878194774889616623387558385790084064103709427949409745069797224954301100206315430636582873813855659765425228982038501881690439238195465677370450834252226992082531994039791954017577200668430597703348427932956599058099085083963360438897314911045075559003410031270647805507614933234559812998895596986664207753054289127176341046172894202160191438653344006493586717768103954012430741225159340708861507899677998084927076280823749801141134907792895970062352966460875703469028799191790888965062902916316656310503599115509984824582436211996351789362850696188840814681474589550397115990351194361022309861227408546624959987832800589506977088629660850143451219539978018027616086628841960348785979049932148898543699483024395950758417444708219648410694066125906497197440099382603439477285621605436516379404463104708164505957695191122082947705435999712769809113795543125829773439872217802267260306587788681451438277930683463423066802525412637801691262551242770324157472149293060817888693339932872676602930608018041031106423035209994060303144400903034591935656971923744096467298718071165491801563831199106410068103420773430495355518842008103216666152237510405326534181415194433609256760292122548965284502940806278600024456075711475050132247865432417375168790457605931754014059049651809965474343870452714019520685596135728815048433598305753743927073484124765967673891222308080826006747268716052960326512857208126018594097914635746707575087895714686296960765699064616231993693612451408933716444896708254390538039084462783926807449446359042040969299078188605680763184429881815850784910443815456696446789232917592258888046488310827438630817400620320869879796559003853492403411782211460449642705434945448132561291065417421465541565817897009868976200386672715183928829384677732175897161931353201748996468600179143253739478780735232556816840113970095387872476156159643621377594308797305719434453845703797742672315549265371397510785885106364173189817503812427178855202571670065498819590984727106052552488272499465308138596638550523879780026219872746620145616260688700507912249009925685221156884102162394516882359762666194056005351314603094905913463596339228537614619677282452825724890243806607725572482977558584878447356173583186327348703966893878202331203454720085050671019101013779246052361159305499039640453659187461025381534775964654220158246053119841967794556281216860939481739596256369855699168768895550638822417179643115316561751801698560269230573184788288313561203064553710332263242721425078792997739373139901970294285914875078247689325776979532979112168799370303239953113357585266528948587875441933042984968328564955564153931557222343085066031790916912852075791654514161541852064678677663701179637159153943960676085170599421475051243917482389561136990942615348069163819406058933220302427752895416034566196822636809901534682466910778641899862180164693006582371583772577374203481574432519399887279332343937428080754459220728230815646630625046825992420558425131361204914217387853863653432647036862129485646610320062120208442210899497459640121650418842811168682658051093309997286850981643543585000975068658983405259869851787030616904594544703639243133222253235442623267948899280842518951803670832190113986547314916981884042609402429780321021087471110150189304810584727687831012578151454292727081483428919037403681346150032988018023141550641684225126220374060306109783675800779514265651129549322464264258552541714436398842818173344000338462306466088668783864791946366897243780674289429424763968522767163197201212430791848856272139314402004775605477792482224491293978725116629525859163182966462391948105076729444753622626997085383041214830117264286302378090925179472211776454156917933881314311671260192458164750110230518666155952130420992919955553138762555414891036860133119383432698197673317535987635759642846364864357634072880288300842789736783191702250094382173952299835719800144484501373925910298244738725157563744167091692823759143167675176747621109692873909587888979175342010202608038524679066319367822128109047014753340481042783528775158902100913547429560164204836538395937218435008247819723027491513185722710442509225279730787834207202440788550707110153896939869830846185641692882653243929777482428406893636023922583174734956033408983547020994382156353540180897587309018693764562605192437241893102250237356313693531191122790223699134298073278061490837691870046078513004650139167571893556911177851629158046460642852220376676567352955222300348674697929712709183274622618751324584199722221429877622737717096705071285245625515305159271328718085046355219404549024915895811400867485371712748590210199184870854102306551701195838089145222904516616166262948483452434817943268681522304606143589778254340416157262267808678671139219704079342639726780109410338298813113867156753252215256349943736981890700736252514347795553383185175695769576239619415828477649625272462020461819152358863889957321584762203352845696276092070533483195393770754453551527917357835005305647659946179253481054894823379663104423951528196067377178376050628230122889127056948965397026109011668381085669349643843159871035426656336296747016202937151158760584912497271079445281171075764038805165105854538574913608337886404026986237961348254113441274856224323344808027236973673616821447101392678728721491231302233240058102742708972848305029072793098350656889359208930557975965403782486634437650724911368797969790641374143931168061246297118378471456669395495850812964270198453961868848838932339375861252261646422084129242833228647325143365133356728831385010720515839631475367978465515396797517552481511523915856058974747495412580530350679610455449655912479934601831884532509041277621733975955262368468366137222318567382298491561975678455368463142996567677566556277372629923971994279277491100305271016335319037602029716359917263743171386031403376400565120779387915149316061704454920296921138865607478418879862249929527730152522539933335177733822508407658956826264498825283319507249278445926870375068951029507476146554812589540282541869407114749074002700459376167859939134382780134013042573898547389349209672894705792136415942362800529988885238692251660221745388840141900274269307280524993565601750816811510320267656856886481788213574082349956810541067670913700051917225177466547369213881155060465708547556542627507343913252706711121764223316455829576514414005322647709844393594930058840766028086553644522852101199467941049731025540682871609903322514238274015392348118450696762417725983610130267328244722810495723389742990735038525251345102371245737431456807016141888833623665426830715148380393822824829473493384495229724058918263879878344658645819040178181270862601264103959437556723364374124446539387290293416055660629503124303287982005761907812140695608748403042593589164543195912260029073596499979812846322840404326491363810580583844140081548140703022194679856137184139718394215032295712919032435329399094192397869396696183174776783831150748290553249776478347274374834050709781611679165134893974211455319009194646300236677236289410989940170228392994753588956467964126312958386307180458359508890168453298762746819090313271338629369120124489589019634868072588348331003655178240498377314144053455788377225957901920286380916062487145200113184186625321104857883586199660014147729913024871366655178838306145787354317083632584608789786788435108231905377154366029222734559630454992883978509260253200782183469639504118184385110619797460773062857261645600421520783387018938805927730246707374649544805977809635956550126257687329829860114594126894698630632680395858828130322043719527215288470124950575680931375160442733485499371896725147381253123891007838889926572401450732430342916874026545713943828453978159653871943271846998996661070753525232778811512426030543859733800801267951612920442123786742301570309746174179638502751413318375737300622804606239676387286623064938573994078496211058433784202556457321282284242493452890570255305736700709313925990019339505205988434283515232133118752088334148067815277191300625498310031572193759538710485767006735954946396627969800504172765489094533963915955371840299555174939583833695674862785339780542161272416309655345132665844240506406228365504460016653681250555575202398697218654381732685146997043272923688706680363095904064808720718758862768257935368286756070587323155253657178530629183842382214324500894476627324517266326126137899693563780184882106900579795980854049246659514167157194617640860725088166281018853739459812043676904705867127217187334157523397532804081533582548485898149123122189047204498288644989038067288447995015784493824428815600201001827040592228336701434845439199088180363832186074294424986874318109067557152483476642703096881205970964350437654355667709987807516251618215005847214354460946303260643230670899306659560951845899084582229405935952790001142626712962866607492360396883581383320238951806771377520105927671019307142801557862442025141192052631177603736397224091383282687301360884636628727306519654929385610818874463857043194736278158930812493263298730819558295962173174211121567289182568614420667668923612800051899462430710645376312634612864139392810026149835395562442258350130867223329871802903545391618275961251928632240501056961441537833290102874151552431629274923002043276750802373569776755388280445056121987989194481514078120984571578363156994712645651385692869360394154530507617228598724288823700420342217490239120729259608976923380633409381386188300927245694559278239666975695763534451554914748900776949516120928085505577349989354195041791774507627774073817656502943400558531129224363683863552721097403400152485711881398917527133054729667883456880189723698540412749653620343653259459223950573466005281629419223993718515542964340320116752978508656561793031492243597665344856716585934692835927255781846470151379012375905779956215524191068299383848907201801454993760625922825744181885769503569801198073072062379377504361697178639194133153391359297016031847786955563201174974708587565599242749915437031101051685327862729277657391251772986093645899112825025398109556692563607594081171496026070042144318679146255917618582924250409533720913434610507476194355694276090196120603976589673368629120338920814262315727872997958404560312080297795950596839835534071769648098424743424150329161439888250931517510064477254166901573795220031407814443530487635732589226617126607435516273411247356011099639037026842331656531143729117462230388494180134262853983561440937127915160599458208567736371563224347696741075009814585597754084004259136329110004948720544713537355656972642116517810695032761537008304703680916276124226161914374063971561428354258404370478264532552003794978308976940350369534865013768912674351656972522263565057246784990241521400128201352231630168920758838560631335029991282290611891085936423032507925658207155410356141988060778998159857356360258842840304868577759276190018134277992515145443770592387370212380683508137261059580664612117631501484106112650778652824731238359948005536994176646797873542173530036385469899334620108088510234474488869449318759888557283439408841657361109961108948102273034216441142263039000304384533469056043364039779690365698958310880641651186429587241400613132843580069325524962414971771392303542993299861811906596767524037691754168348753459950022214633107723822282763378528418062130629769861203020043759361268334990316882385186912114802308156837135035237785279059691649296867095124005006140831164447717585104893341583478125376035793974144044381150640116436274957092454432437712161212647565128970415035293680010826501721034870292097338867842237694583317365814534573180620859220253811704814845543162324776699739633970473226039911903459917683432409153381884851155709394409657950971431832984363348839160349532490191141587178149685404509878527014629260882205940129402476169318556300763580570591754824265955441893954097445699041173317100847672294166830107587544817630326681552060001711576097896313125693352900721332608150236893480251093448143041360570772485605799146528094383296929322801008263392555826300004454940007963335566092975983997498417657145657591603837525717137150371798275591083085390450539066011635668934254903348709307234106328615135687419837692835913887702668842316461873229359975163550129382276860615667659058437057204331853144887368265218470369081877951950110953396652937188036068861095567671923222685891066430323956166302237362983978800606032146754789592338285222743012996181238913110524740699653385779541374488147297991110092415971954855245398650341041889774343877997479219068206348163350627219373450350252226327440767784949683836685050696158361624367716456197163536016944431820564516968174405960323683338470232506916228033562731883198387449990009378939189297448623654497968027117997764851267706650892436553352516554729556735476840215182369018572934987238423506863855707416136650007025681433895629300819379575202593365421045146393547964871387526140481535616338079252264820679820782409867816078702325380867379970309619189403909316095613356386507069611828111507685363756614551970029687925692975806382425237488016282657504082376932695374641619047226690777772155138517867792199518952215832800796004111916143027854335699132180969670783470669854568960952777875921476447953907776016298911301355668691461284608995005835159998875875467447110430974036894495438320975144746599276526265165240983015213778066511030438232811501640155670654198097224568648696700725710610056355112794104291618591844458753834911146883437783264508291598592060253241173101752195564797692140719177834126736619442209664005498608728020244891308551432635684869910795912076133708530341036028106685641125505796376560631411270878447312578675345900221281485016629434745576663850803931660273828739637718288692940961572725622604765425979297901114040383263914013882837305500297370546274487292557894457950920414223561569174587288230114050405980091281343909262845162327974267841121641842321495161107216633481717112069641933452785077256745743668996016815276128442546587460540169651594620184193121498397273169869939017790088715403498617840964785309681915507607334360920907891781914970193542817323998599200631940248701206947277433523488939552794843998220134286393838819890706381921637525900588054967665267326220734898532140375591422397678925914438219901710464831345741972655322441378504497948954534326986943557977960786829830885471572356700647947600351623308122952786566983711547100065886073950760981407855899323527886547246309355058204056552296447979517957074948658429196893662227192527910591296203317084505916590456439754629519999101440465972280206675973485126141194259073034665660154844987644677257068439998969460750912071008911997417712571633679830100347792730516282586768896781710958632404679316258343269525517743360056031388751217098013313954810920244769297176411052660730868257671128783747000154109987344016452971064630301870492739451136842425243735069308716406028706427067812382973310006201584309632590925940632526706158553366540439667934036860872730069177678441006422984006821979805135103148110326711546165311477052209705896546384735620088755868699737519302941217931306736780111840843711746536244556623014341223267289986527867454811478694543950686106235766487710895155463848981165385065309299449792834034653464960333225763903628703645841387908992771589343341090289296963584973829734317640884806866801735600167825369009856147812678353178091096246504635269456211810754558970855221449427140951775872556750058800697607596920102667686432009894596192319579612414533727802428793055622670372419085700884703488388737096478327725099943325025553772793407199869604298935906078025066364183654051978940236597212931258179462456602314002765701396309992518119044417219802697224264455159074224446317279773182848551628623639107112116565638282256714662036578495215117880993166145451041250898750054432891328254001677259992416516395488117996797775775013623909976529146796210182426846694253999722084504496288419276949303410830252422037206221148699856766518339340889843664618870197576255394349304187800925026323307565177691021483655253291424648848748568709201347870661222201514002845233903069206131766522096043467276078011374149102799750520859290456638860813045343117035220359759516121708571611883565051249904869339541836793152187711773564783536642998356432410424406220846462119473102128094028346087051556488522430727299178205083214289269442116081561623351376451368581283563169975625559813631095438397798249545784812332693651764024682591793694932042842382090361978084803047905005068283391815143588750272672334364234034423417970346365026418802039585876511771311710436831583891690595417105202831369225234443936167661215223762569316132242199249564351002791535924032733231734197377326550839143365254625387451417323250121432715062889581285668084772929765297114090441529222713792298280105797651515816608487281488767492119966873425604942619076791881471122377898203017765677739396684133178193476157487334121901410338607684163286967810686928655673876203620146442092896047576943062157782996053659181363984916862884767532215560050191754255276643731494515198646382866815858913342652100055904458393048769020529274595982406077133109245953394675318479901480529949158647229766712761146108568889474591471476292301800169893671804487364704378897837051119593142339122875704724297161786695943508888941163546517016908854418810877892990631608522237891098326701141471516424050851697460701168433865695769254670286191974968677104403919333701120396035060703659282768673078826679815994018732867575023434822075579237527943967608799696114404302624552183309072294257563745895359693428018937712964070466246041518517536438010803717426746469474097521211558614413037759065152918032019638178820613990459606531247097093269690747614346874938434656911345459651468822138749429894351225648831358865321245115586713643155198791331476938908894432975424704382395960647709110150979682187769239277179331041378598346837991138530124812524171664094482863168779955888416424189676788871427380378405272447848023628930602407515247892537282234200014715016801620206175786925110242511578859244751242359759871865695790292746365563060644799455726488596761786440950438399730544986978201355964795623064026533149127902695654298125920076055369162662633666477915612767294405324516190838716989584155293106302693326615975559490386559609728572106000559413867573430799708614995889910895382394826732605534063439831251681982619565264752296974339979941592466462653161234115216529750001770491189251955146430494273516487147476986344306980394462908033904978068405365298186730681199726493498265568668049436816168280289945340745149050172420700677151535747662074825983661740135929965505492158854372465621593386197844105059628261646037169397647752186597346293006856620456485034182802363796955540427409107238412057022082472508021093459978434931460277330181606319390186801556258746083229050366219391186487797880593218046719940315822554654042918112434972275180773237614835626368234548138377655328399365799667690962476661380082888598137758766695314163359285678089052789151015040291344058094344715495104265009123485804877722190391055405985565582282737587385871635523957359573321798181254930656275878881382552417070440686353442187946529968794438142973782912936869486422419696794662254184578322557787459533579669529541609064617884706553630791732221722880907001742527486460509513661507924491217025390884003584351694969401548600868274494078064698353835832867919028183735903781277628347890087216120492092526543421962582199822581742121638936094232741042913628313648527784877713398363806567167215561332790473975466839084206238207226505368123468032806364349613399858898427434809412414850713689235626941107330731853346149189082550739588958816854470127900197074944115610641148071969431820206242105547789836134604460840240884834239757791140775435878400843225389856861225082424854145625533881333959009117635741891564533309669570039306966434046646965708715100775073146424744656829543465338044300562758433223162516851547679592005371723446194846986017318976152949347642945498178538987457493677882975177869834434937547322644154823091773978516663843882457347528344209148025132295824456085494527918455031666997706690820705687733746867783373699528234012242891227217671566284149787094238427062097791614254549535754131401525886250453506454274216986784400213132149898257926882079280918338404067130569922361005327516689132467732316492105033837613538673449770984641469440466364461608604036413526216242941687236649527831046794357644987655979449707711765998328252188313064168209653104751078322123405642488748552182117668966134645886424289864233242520919340894740959826036736579417498194631024647473501601427609446249161428841210892513170671316890195432437866593721852214787721403432702912838878233975777243099225041556665348654085844677045343921711596160479489565243706860727773705143329686905681239799863137799989521937579318986691482721127581704328308220383719699979991788684817903793916058629404596718135943463005432555839554773214197594653895710188579881348595235038902289812347031793230302311438448435677454684675235732573330515989512573525736633634505960625828872917674378892526554648906794899216212396200735502481829835621174906122092603969326246794060844909700584515098614344285280845414815341610420117775945299822634223318351976903009046009637463923655629653089310941391846686848610172509381077760794539832178136572739519363113149368208628512297015875426312099688137723105785499298035618237723827839713322113987994969997630238872165612031005776164597750720861229467850132651477013728658238529465377155255268001384138167140646608640262327962285000619018298485682287677865972859925736916208668013802217276866586427286505167826749531991379529139587354341260916211035798586931700754334579048000728578445339428874215799627525820483617214891213108166325134040235358040576255374239823961080420131396796831111687133978232185168850455187090414248916966036780736900031143605065182167250062607408600992839557461873598706837473135001637615641951192699460184300388485271701523041323354800314665370245995390690654438272056332043240212094519943826666360554075523686209984186524280629884624281324378153455833662039451665274204252712379721925119265602153948903886447725395155314016260521419856272144367390163260209167214522734672623402664080747389245930648962252687443346956318076282824227931145223875505957124737176033606172875949050777582403351607350549728786153723668864895103298690226263176382160618785098041958275228807581301052665384173243612989093045313941361851979704736529059405634837362612314995845311441220675141878765308181619652118196420154862886801003898706529829360967035008079572246776728862706596481115906889635288587478264776375608273889011431043792339464249898321986934568336285550383585862282460166547351356137445384767603334397752153203607675827911118366850481503124931017345036862990166098754460649145287262718457709720756930321575862356203968662033666830387626012253800660753381657598514747600275469830537279294186294981242207721425049116264303713300163779215180262934076612309833723373742124459171999570267571701579481936120676664688430392314163514569024608631061245992570410739395516067588254020587949084215012358431533260007100138908264632270742338987179498178372099080407982269420051951050796322337751886120142316927826809689631361092272187649657733047155985934828884761079357920292678702519496367002938462681398880801336321080727402447669372751787935189767565803756580037445474945260735160818633906609766211315096545251610821771983117751073449544669372221483937140005060837442119629026733088477551770406670727913923642366794700453888808723653835482442043815748041249524667587254277281528497541867100951128602600357223236988625994226243749028700100805308440903438369618592092037265928351721143131672971447843223778656029986734247774864839511184880151271756996322435245561211597744316580966704450123538071390475641437294439917058490038572437123740687305496843068144021571308405612070714664061567319823976085723078015613648924166458146364382982702052202009066855071359479368208123455189006596732054074594999670213531051910284444985985506594653507304187373667935320991257760860227766618768720366266816387305309923844904184806687858356799595124929748416655207883901007111061419244270315409209894182503161463057966014135405055205267052092958076735804954283899008690870196592248198876078348576862235333695155081269558333407478096913705298357476325903592849720470275089474885705524297965580582120849968687939695942483858258573726149672005985094203393194542445310831199804927135422151962792179529556974178767675313907956088314800436947807171270601771551688754157426766525307954012622206706113995000513850940075406142596344620578896977166464794175211218937292787953328940358157751381364073153375701380307330743588826058219624895525838437324571542661818981489693027803239583788346009946076599254596850045303626579122559065648751232200690659927043588766870494723547247658073280091872124707882280417639406136604875948112446627431935385908741036152255722505674198676080445989450609505263428900196085933344613163869506335258228670128017434561307005900170371923432119541513522471559407816375804238757916023324265085103670423864922168374379624551329308758600380712543455489621134335358299864316692978979680314563665715704347615062127776955267339057239325174316969856805469423237957660822129584984738566000339106442604991990863957018995065703638050708935208837966839887489073767549380543033002167077228190957959420245848660400580922208515532649833790239308411403804548490800397716366119148517846464271588237075495057112047088834522193559710760069582350321836261179011361626271265580434096226274696191664500502359128564445650685970557359131260048229095266656365348179807521314646480027876653778815223863313577690080295822952048815479676183120666672444498006026375542120329804604339522509556246150572834199125114638944519728140039750544526925165897305925311650959863282302492607388285321201768295000277119011323981129327639534981547778914583771320496757557410856950920470051865661151951738548136608978616990523848862244439073119603547488578409882280023052687947454156853531327173479638822427019429643950102661836871905495628848133108372417659142264152520450686338801851343736206598497783748541429564668789359215625068670489778115348418181913488273630257129506152586990372251949331116576279702098165669011558850633209745263165822424365950585776364586004278942571662413330601153923816808711948588725219121413359166374397251102781735233649686444515855445013726867939198843406376921451823249954255246812275856532281741911993370040223416452034400399923562063933328286184118252728050762129311075706998556838937613296545379779910057294467770031743134178754345850987530811814320037262814419409353693697166485272142001118133484700069262809299788890712046345536850666431484468648724866548976715556033722555466423597026796583167337023515676426089087121590817042638856172853535269348543698049118811663550989431065567670189490181241966145680145654481057965900827906264894070195865675743615720394761731673282607740325731885897997962913045020747334519716064339238908488315121686926557602705198858301302039956788487936473071096148020051688650345576708767742483466277865937683276057817096130352175465719441831187901066212020184991976125371936433933212739928779278764024457939788297979987066387371227315252999367263737857361585220583379073127055876811663690463432478469225156851266223566179452217900221513903508735745029335438751887341502058055449339709868277262409512461253089220193569590594301059295229017555352532097582368489669521939029563004984995650377949006879077928150522599075368794407376485099593081506209619330579123246280309702413619753880981309800738023500545410287647885753849279344988122454875267054396388126716442297324908741566040215663727396820886843100174630211843660910151858508095921261311962780508076747404701828637651949496753006944253339462584235902358578532120842993002309771368441513675820830602828878978816337980592622916446764892917851984041795746203275332258295384733542442561718065516013985931540348683651842469902632099225172857840598210843520622686572070841349409566678748986917134196682360432870468037508260785310511837235365930348545751731168383325340673120672034685672342293866944699217016045804375711768662903844396498686494716014089780265416630490328213888542344383233537057392522555079612275774688249232208306333560621254022234775028242338458518345428619472959013877755472165671693341833999714636725919193588284494254517279185629188034358729065724136294043861079779659796589566854048654779135741229386870883939249225538707777130258818156173762938891549260731403131406608261446734326155267311520171159916748337060366791326416802390591254737662450038238413595706935836538719112325548774323074367828992007934397199149165685097924728126137610895578205950394556966491056541281442169788422574824200452320001480254952044636020039064309247904460628393894172109248172289690929749220608367062845324415484612218798596588374031582074636854417420721383242683670264876316354776336367530160037664898223292567048098860815849730921440786141243644347889786357326844837430084784152806586688668442694625167446060493606227280571349673378267015833558576454490650204148843677268912965338319783631730506382398419307626323136878324703798851927059697697255578006726993319504003254335325618651324027160517244699585319972609104337772768278288125060284568580491695455246780426215038299194168438283363565215619471411385165383806603449895681832200779808177029044350535704358882289268467738366915814129633655689965319899881283487984413866374477865755796303084874835436733400773500306657420820011577783365548169760662845945724050971176385948639240962462525545163091790757636262086797552590554163349646907207565855933355620764728052636484981669250584979666855977115379876244429488845985226218684930284174298923911451899868136819410109898716908451514991049966155661215139963359459787741848268111351704580082085704457514437841727052135229901986635834411057185639904956310062693194920728095986942958130518475318703845076758212779216221374364921014049249653540408591171108311779864643377173539474908130147390332393164197942562557986042366749959895578830378998523574235919538397129646125730881403888046191122475670663039824892834053724039587991679485162668109387177741127162987598156531482089234400787984348399206741830047604750313074335200888230822157359454218999219328992650970015199254110604199363418618516719650950274457325754039755252867344153548902816276812789409779376142141254470599519645625259785976435572581913461634747580473954723605291518134847501728115397490328691828249763915663338487108407214733556492585230016140150461631148920103807063640470917663562348443527559718791260415323768555158557582403999851415235839647088844180176497612571756699656405171605182186211910857971044388635919665452071240675294234109684037816445348813575710611823643835476518244163170293321685036553106529004555419301020985887771602382259209145010434750305057696354453605483650952225299008621010127720453210888225605172664954802875591250745661193750619638033410364997673708241203612331494910082981470317147056892102358924890743262842027333222782725689488000874554783520583269319172263984479367224019370057059204450795296997459453498746677853417087350505070030558129595179336299200699932516345820694512392459697627113010823160631138763092057360130230066981579739326180750468044134772438358464905181941406730313769469064898816083972345959024867866992964432651360027598049055686529112013686368502705665116255024132626964705329950094619566697337648704956934208838701167540993642013976973474254526929082338780130022376284712697922589050018677971234937252323715855215260842736939765517432199833770427293466082682949291372028188726775508640906618593787626335452211140313583538897666854708090598596269377293716453928507149493160604086995883385510242722557015479531978191676765283128824597828596661634812980142931832014045489007090274467728633314715267880624679401620621889963848279139252731583423574154381186006024421419186516715294643261549747835730529419635581333435191659595109908750167681906538272857164526660233045546977122781073872231207255890587562009920852395125177937695501119241879967134759570955796659942058883430566305655244700892435695068854488142436491343240266412773670605971740963463481198696221920893582781034914714760423899483293677515954989656098222119229723205388374120108384959359310184864339431815078748109368566193758752287439638550230426261613358411914245822789635508313600784346660582259216227177777202595384883714103318367069530641066487699234525029743221039175948060107991499145299229868316261465242504660146822818078115749982058608136829318264359474721623136216325490546335894896342861338101678050846306101321344851488533722548326910009029993374750682101114879451259858010798757939562507650232592893992905543883237466362277695562949310756648931664621855384455516984737963755359853581433762978143924701308690283858382905025010743321700864987399444214838278156879166652634207196032995444873161997985465517886352556633290887917704291060642523531732152833383879634682197584538115973492614207929074388968909729128523494132783438855467553710660131283300857519722617190661763249360443375067819303416808094261393765081833416461124600919997943821109127744960517241404055192372437332586108392976901025854203239457454541840835867452541145003848617979879769145249223204131125473502265877394150203564384790154775200744759327172656316672181459220367396377350861581818846327044195798406526296210982002200639830234433807050713921184034551141290991511325050202810425783695862830583882618801698582560465544128379065479314617006660818250742803055768454805712892463717564843660649575950913917773957390771237749299528681729429914821570348693811666051033346626487984841353191568111155216353255339377313316332795376893572987290754215295855580215168098297276685245782980337667769512959309654049177235242321109667532537619985454985930247786956981021232155115342036896940727618784713127174991807738457214671033729730416396925357785706741619846826150781404350951764065497117407829443816052609637808819853224582942652513001038923687336656246938516213530374336751943287951776267291198599668610565696447829519421236861752128165266589977761726827683121852843450241390206626136622341499232351281172610363646336821450643641313511084640933315072556198818579609482988274499893300968277924986034241271854326525138344818471358620996515438256032801668326585117473166217388725246920201698857154609863269550164955829468174683619884920842031022469676728093629836483217252688907484615556387264501910155194831669358191227777034334107703499754063847957790289931933622036768277845417189737045011995959789699096578639535941573682087001495603477696194807602826939636592524668020340664379797225056411841840856019399677748969896047923627405457642682305715330347415970207504437340031781140456483210191211243668852210311252882656424890408395854746575246024804674684593027109445449832130989498868880672314361122889336167851489291127803729112779826888545478571436889346215217098501916992825220096202360330254600720755699549437791865762551901598357578687893063698638220797892141761906497386104191598164897133574913226795561039125608964132117390569489392791270866395203436050120282077510508864876573173834021280203278637216213431792622270202496828934813902735198243707894836945881722829335971173895342678734400938838867018906396870339781474628208444439408918590055554600826019016426160368678484136799789430430356112536226787691950714451872547244457536105783380220666381647540621551930605502250666659978587685557736545197214934228785145936179836142742646441249578762845526238482440624133995689236816928074051529730176589008446826977632469968772706511281540194974829398275652962218568360465363026905011844253847108033248334381544365853117805923939017851551555528842170458688973074558697162219473328903617647605490164569746929278628740273483723481159561189069219757584127984920499191149623791476465333043005412663481261197763207957976136964393688379597313839364036151749088100935797891071432912519190249732503114539584487582591368275118599968503021973340526008131935061237532230159769055401924461832321202375248785902974064039978135209797370998326996790850426281846111835239229122536980060667445486177985299198412609723332164180152194222069572344395221407938607955222134333027106249308153314515437806374695646824301548022519794221301521152448982279706875113495277447372080879110685194440839828620720266921741616892784694126605016543133000374954050251441889929225511593017597565555484292054265375853368690448392610610378825289664856857681972102743212459081940320957136261902244267793351803678672977432246567004643884862380577215464805015268852661920313034442584404577932536430777448473750273323820191887847417898399809218181003808004213592899045936564729607450392928790554486196980470537907217848190007842962402233992236802125714537330954767156093742465486986602552163939525109589044512951390107123169696976492001450057047902101678588747701755465564537089793976213514468400417606551072717440011382149175191247774375084751139202549361765971313854894459064609167357132479352185988957465397560836176859470853930787637032739161077413047666856524783571932378000215548591950670147998341222863469439627980162427537067780066782741123070250780851820262978023755195277557650425334044637617402960128667033731759236191648018750864149952630132706470276601372430470297055128526359971726324205799242275541303687730272799488084313099029818501096898492210522919601024650593667778745369796923978375058076468417052525451513308406858731190699071348151103562198203577941953770371511531119926087689519514830672147466135819501874057610234323920119838489657393898787514784117756024035339358887663066148506372415613688722079118862739055825410323444822695438632391453168697552555825982853482248703419606181183456423755614145461139072771262456494022539536070068939492369955993314449682320257441286104314777814673271828209770223037571315369550626249741718978951932925702365897431773445646041360074896009046796698410763061536647708240853731610119811365087646817505512202139402886996615885442245037666851958188676133658074772749638250903607028053837417365576985494902839429174455707876796563250323223841266002051854540712004465858093313476937852770195359626393342757872870814139019267801128559411237741646148610272508547112347985949302420908727242601529688057324292437411788396508706192964759873891569141587970875006600008124997210596851984313453602281413528618911622857786285363531813924679376896906494470656172126890657340706066721399171876541149222159665819481633891116523153311654169338368537661436503906336343304582329023579342331350456608693790303978434106140624224227666830950023044334584907913315450825398596044298739723304650806214964536577295134792693207703195432864843237315929395962446987826661198432993882812505149547538846106063256254446422567060072150372989013366442786391068125441183223706784683273088148347826544200777617595700360404718927442418050791872090587579078700802290554616626215397108009102604891762243928752619665240119865762176378710559897578787204287831932215229543724548009303754413505421012681821364927462290182786340104539611089792089488248759614803877239641822515565007840411198093555449756328923983748046167894351054818672021408950024905551983888035201520242832593558262030597348264768930618230940841199363833608453498794570910109676428166073545144638143255877300504282874106416671909935252091233954467428220580183816964061164253535114787361913144936957242263105499157734734419675054164169298427493558855383137081479368204003419777268103830200775805150492241025174414721520465142114693397821029401913565166085718762054442370034621242246880452532316227920385855575344062048766719888158827456931371284583942085123911659655940459979941044133553745180001196888494883642704822373500803298101573743235459204818970514392255251635835525633684011572462712399666409543782820188119862794975147176702929415741525613807094627566880317932152970672877440500393030363086693185022925113344383920363674607986525322362377807056572210017678609211452059522695221769271513698228102072282091369669480875282873634913267979049655134642291981048525296605272422075464662027376970786740355736016435972015932020139799666768171726272602899797419654380200271541278831983066861179299909702707307292583047318638048963877799437438671640166196696414481284969830850784963292040553990218410990652255704959546081802367218035489429081364067635823169444348436383504510495028354160845108751496467326504157400828836178133288162303943495487857907433786623379681565331122815247518311620337722020504082611554022627699206010438023460635195034649526382395976838687394223475182254012393927520459653862250135069072949698242305100373510990954966158111228163724092142884947507268538160464130198626060189640343886232266302932642703795704733256968967782876885437483919921624208671587226725519480245254088415993069190751830807252833639789191524683218701774066295066915247155886851603540637077645406348847277686520374488094431884386155044818399017536744839726165911909340855410397610665426509720660034053238667323674521564393387540387421665043453721515737046818007183542402642528667004431663086872646839194330910190695046646668972427128769203884322811926311504028711516780916102031683528930361763581491352926005329472961509446943376099856408174002680873856460662654319724973544193332191476604223032252542730964224780070720959221344747544082378276805854342792043257866179960298017659856360082360182969633061032720464879544661420534417927789203669021904782612416906794177113116271219592000519351205309477618672891693742026292409478108925972235556372821278175345812551335940607081360451590909573801496337068277776945765470626216921949844714781258763543092736280858082988995969685215219904596534968686419375186876445975785455151686888518772060755759684940544525837031918240484967889910596980233335182285487506546316078543514194247499167431950580609044602243848155165229660440004633269726371687943585932283706331470053828066366871488012582954263865889306767049109327228648012217330699451147042257814603527866134570191474494362764051109262702483248262503013203052225212798277651372679561020351027619530078602584828985280481252942985546961947303076023605635346990840779330026631637896239737325196605685857329130890587771799375184622309999977245311369880984766936485373716596560466321997121401667422648562941632796938790990283344395923644136292334072249156434891993109489220343567859176017291648956691464432192555130562781549564864012244458579196286021774473992319194425127577727725310576315794589082794349068579235686264258010173646931786808786133598625145853790581677757481296527119531277828438942429788813970079688757851236806542720990892646268682685497737033181852375798032095117557975234655216287085481377010045155573653398110194198825157631132288642804972356473279726226588451053862072463537181802132780776856086425472072819246528917495797866630816874991945590265078703323724936232687649991457144043319522246444256289903701560486956579919209261210862294346185136737596361435979327657741116560260412926316163492468463079829761477740649600864647877978381928801804448978668577811483546959580858053663534190037463534830389472776657419493859492338973865099942026911460713278451236268399684505903126814043052655841249041597619090893451319368679118161880563765869366761359458901076546405969392456761309847998232940170015791582738950165717171903000116746518863934089828613329185368708783456096060717584001756738014752517518780072323506988502900132823862467486542223506252582884028128616360346467777732730795976368494207524125260566770653513507831203143268223165135011747283500564470715540668145092114216893036885156044905579672666866285789445624783537116191565974694939000001355606153011756191664943065537190453404098973768387201959606548015644712149055167363723331049115485776848220785211098728801745816045480283289307799346987631669485604565481198472322014799067627935678244625880287442963336882408117489112396282797693726766256943549808195073681080003780186089754770511477146872751704907746055797101314048775842362631772297291503583319814303273023891337114813922934172180242685188419268244351192744567959907672896125744161221128927606135981954327477874235748181517183732704629099039422312167788317722535287695440371532038513845019275835989616990635710186036904906987560155232465182509638340081870132032967887619311356580635685253187134258102362502010977855982434890444982749406934640983326262369398669269607852885198606244676208654731340216419852389230130248708981074852440491467692639376646600008680514528319484446638594104373592228306430705306565295930681862424024387913586719377594005977416004711743065911728787932613180158264500122821380247860195901915972363806519960703717838648360900302935028009869266044652175738569595740037607235554572004537058465703107442385914998469160446515283855856744383161613902384182834752125874053194739387582875688174653601961241871394916434303439471849106946791492430087178585608302742707615853159409384012383516954659010261860047655211219901737244725124988418029689959412741836991482990248128820429015868923125443532600127187070690730786380156733247780024645647780836494353979536982953062222829871538361160991602046790500768378036252854674682369903044396948742905529152748283737989219173158866453993635343720075883340000649680782833805663221694855116970560963021036289467364848835196816955035579216307191665905892047985957720770399608582047691183721665105981641876748024741817385923860208118900398804988028470251704345805822959236920556881872115482895470547660112795311283160015802034887037741495571824588349773942133241599158362082436242020235050113955256274363059603002333970879058018446221424926044351747719137401304882759179818615524029593355085396920630240721219362975002017676806432972865018031299800602445421195588804091489937703792019716654692566532973267517236814280097558751140616748852291101830235823882298446159839200414031107495746600978480877286701809864773795175638079293667197161631997232710190781189222077740129296439582036696507669391456274253837956414667865252265101220882586823852199482367440623440014373041087597378510980794692397684231611736900504943112898544867921927259091097076489315855544905299537338595480632942948203341294377709459539649055238907885168811033645847040021802384736626356162380882164688671621965030838026739776471354599111572765209124924018208519990596001067010084156042921691048285356434679981147382050342126677170495888675896346242680899249011945856047941032268716166227066588725484310393138321729528778972967798813208230675297822674604536345969761483102681199998047461489888162412164511072426327533881580626556762820068248671873665916805081333541795825934145357301900455491327546605199480246521661031191645314335492475795825056164541941216069223615667761626263556802271713895810589966846811789374996381023936622300091420937370214627769619606412123987585734442782977201294876504091424995603377633477678964996109542596298561723448027921936801950238790575779207711235594045970118392110641042310582986812376064402788777762171494529638421653096652687325034008289465362751001029133253675685582258742356233555045097024282745550254089618016376222614054188438130716485002897992655345292470006220960273610092502968401166637685618696881747592331458788405032479613558286052275176960057370430975112339229165458866671350599528851540306939463400005562809400014472310300915732738197769726980269285924949400679827724345375013013702356272977547964083062603670072222016901921674168479346130696320209001124716708804855794262667728065269391645448327519847323272316397835748699703634781416101399579621140155512026275177956484556946741120754987627395102438151587526055987686177847997163897308102471290130234481859947718894085010849517841453810561298762937009220255064535966360797869451130622080810166769104672758624172368556730872283170036233084997334251366886757275731014282657938081049196714436883352885896392681811948628371516425333130707443666045131901051149271254068477460113253536680969139104506325170639820493014423858939656271868510020462855518538339988216486855438327313439609391099751181716981472527523433806023938051360569219250138909126740783899552436178245290408817375630180864848238464572743919296718937801028904697157657247743448799933543107373063989722600676243255465564406027757985258427187422147869193487542958225989196327469949463173995671676057757185584274845156440352940793777943251009920737429561189626069008212664426970741998846926624154833218439418902803488919916543148630794442538388078621810885845916564276015382601612773419259991578116197726759494044140407948267559776020907930226247494740335370244615422173291671889597223271170946155137804836384454267863632075242460192421630442277851736079926351021961978754023106005537800815203340035602317491856126434043032009006081920370194746858375109436655470143919018736604874711900418232428907527170108966254285244593620077114569295817425158855570474907019252262010716687977995214046674448058522767604588973711147590848979824601712474031950727632114028956722413648543306294591930160647560483468833048435275384308071014537580550311069427398984395463904198897259510738174129607752144065062451752084047222978988994361257658119691332612007892522508035487735905371922277336231466059168611091326328773736783629882286924449325416376831432061157893663279939732653682333073944716098594147716119844118552562310741980904674648769686955130897472773047264010043277543166653618679417801062498347425834997895914683173463750060264677151778775803559729752458787737733555281230643884326800772409377080348017111753734154549522228788183564801568062868518270849687375306261299021858516250159870160177723492782390613306932723692282339671912904715912956293985205480591964081980304100920328442125774220181199223195363559978004959661339756088361896029797529655831514096691071482108595938348247441505472645979163088418759414106387195972992819933691205482412310356408336020443287564872916445209348207143258527294559004846797880987755919770148602827228540768765985597495645232457000038872571539327685011381391082949715768327314575225119389301834018399323306064662096013632085329213239176965614011154894798823237791981731331282796624571006994388987307428908943470143427041889510868662794760727223464118200062370657167391559189346154316443821447090552145708735958790682385613724388956900054568551718397566654069882744529746812286290343210249789972353839264858364862241807633474331638225956768583717588028184509385338148609304915137394240830333214757611210109581453585631534332336549571476779930639830108051330850498227809969642529556282801837564647910898980186018761199011240228075218426066652530342531370638365755787627291044505520561744589842064575152941985545374300107263357334429468543400248310305449431408968984676423792508005201497234807631822583841733982407645889628538736438497782391083742340279266517730596579959897363763472761724042210507123459541049633107100583208097930206684102501979008328436937848518927201702676213783482026077131501179410539880637797682915154245099858512888315525871304007898679303793708601738081188004922798729361070421619998257029976915781909880945734237629883012546919920724701499183117261581223583840644606278375492105578864968760693644423971868630855836772575392711226600602031469606526385235614411370265373000776118219017725263411489727057585841937580910553621427395109825251525713155722060105087742509506500732391321596236208223298583848673020552949768127664370425391596705860252761017386718693647160071542858790580106687749801123485747368293415085176542262060401125643948806696262876807885889981544320277414152871937587429106846652705630114645987653605641424804425496750393309037155456904760194426078335164897877056185239779420854585768201611480108856774497213503811626727633622281145697002592203974026042069359162151793169034812342914831494789717749581590497747745140815461316888713696691846423711778389166588076761096292279846909655181288680031274754491553026391466773776990824815794686859979708086566773011301084829256387309642932764390052768794826295669932023618504985185757058888959773250683237572980642068041014004168846600348818581024966378933668591934351693076519793875600801816610951141571775519617190287537762792753032028200388706470979276751335403603974573376808926558563631556123612501144846876010118994770273099193623822213035766884777857349380716127262595414607244742313434362523102739966785352658807476908094949253459824967879268654040111547240483140649884331004571272949260723877562541722106995536923419490985490253721400917993640797333331178125644816854464625708140516126231746667413172043959941417668850927837208581891330610625523377447368115204691125254983747832814814936606416785667466962672523784158734355233523596358430792798482443295364678682801558658032810444910935116535514870184190043140520852054293955002648268771325312266283548608495585375787962817132497604336891640680282502297358729817174317571763483652306135793207698171214685510047713219473740884158400444101223265493193517102513583443610594237483246197391064205636224731816730032919920039419192023894960350165140702577451512281465835070024887809904045365339221239261414019338611774088562966187707355635884479388840334255270502888020176817199456063575136476914285479943983906941196222954198275566016940314969511687720798227899318721511899457008186078899272277224421915217495281537600963054234409338778166820736715092990158153597368343285644665437346080766657805617415555756171011903239451141350185532963291686161271296225504025549556698036484308091280309725679587092207441969300773768071344946013473937423419822432952372523357517915525515120550917896374701069044259136960175605202000259891611444680736646084061061929318366702993436434285320745651945074541570341846729125887847242356003523478999936607288211509383508414538163609182223550321794791085198979906608922723838293021137301124254542853022615587936346761363926837421553198611714894831097414300119589269061744474962630476324579471591757465245007261275911848118752042772988862125926521486109376849308076362896548914964054422914225180633455716839097973022948284505422621512520553632360000650340211980947244688718638281066231934514582692124920898720670792293981415484046775919278851174222015137365163764930781112835830102620571017099918641970744599116141143410736768167679263442236125128972345424984649263115364620875611654318474950923121826423967364811752902596647581015940178615860105144707947297108787810849349070788416658136964350959570653876759985812091789256736052321110421121246652530445487468104358012737075541703644067540571416366660230856985776358076423748355110138868856340887412944425392304072311114472401141784582188408220950919916275719483020020838724170583287249885478464708564234024652763268198529526011582656777196266524492127132125989331032717728895423702653353964163203890345930424491082059128828193189970003183654787476389875543014697173541459696380566991482217671734527988611631614485125992281310993606240953414727222474495703158383668654130134219919516716239596066495774603098296542237071000728418856035483925558357200480796480134073000703924352855872861775806857563955118893940920836976593389105817818303367621209942063311907513904610765514679360163017232391835687403802137072902625823868428080850336398018135915528860178971757113913751361201423263055112554127104691188414895477912968008912040730196969677897724712228151547166024176662918892243214979973412692253185943015464509524828062626368046267200165892564751973249527680770220428672745849741895256716051527324467948803413269112102443975795200967423381353996017552551174384311124726216393011213127960778496512784033906566434528715983239193483464934298595831236888982348624672240448514582774556689847406329352844993796629831303565874401136654833238765758351227397681190775954229622443024778271765817925428373441471960625563114463857712310073399184485168767161850208066260921470734025868231525910389131339785087154708823854701898077933395182375742162646774223304086769846183718143110515343370311592806717357350656339829229516725087768359895614584748191262501742945234943830724587746320866548897262436806031430754105611280189922283319508399941169316467569748342408576177802193887461725009147798710091597164807627199578873632048616749997287061310860097023734931574142580835601381341640134238679849911287154222606447435268147468871617225470755695339038362550115734873390633945416813486636740112309184913080343009944725613276979192677869236262285297951804122295587284382176028044117697485123350364245902279827413798089524476443361904825812876205103366125257193434551344932505698316020893017655649455934453032845176926139736316035270338290772652490372485589747445755928069860261311620716893147486875339513153345847957258795552332777526968724730314067202265996532668933386502488534429744701724633333253211809756968917449105683180134491987384542421366723774736073869963298564841091165690140328947809040259339677808591586520360417485443121960336302205243657643140308085323120621140559023458555089679426220639463739031647349482797094558016060025623465374876287540302060417347614586826097190082739470515606130450958992630905987453779558865102152439883542131327981131625995006051949522978893176688379449844877559359325415491366444326159465948371765104281541192611518026401404551086561895341140743573022821640089392160312504639547223638500890858314211935067264323724252721909455675653535986918642909070813549708567991963255239814325127380262104767392916174507868140608971120141773907254007824590324123616648462606507958852349297153434575995159842271843919102702827607809268127805937825359790803993855241103517408521480860348519993379313136004899860771556549103809928454402447946245220700087799479378758152346604274358649590840785205143719305443678929434885715368494044642846754462660428955622812022242911191858651975483503959558164095227960128799634143042008517914524269156177139617151648845406266517194971496946277452306341620600305544718764048941006194777758177635784179549887816183909345456821402484568068313602065727842446033409867351331589101845173017080100621420873734235918887996890891075835310240877744277660465609383473938519263957132510905124870020453912231348071626658289177478194629033250863349369003075049839987222919824550872783988295791300984002802720902803452403918051214958872605493639956296766182855460562062163565795965518294468874179502227522681980072380399254109667400233984375470989491297683124697209511224470052452768716765005643951516249018422603709451584301116674577084534941281344125086874803599045160945788209008600299608701752692322321912517840527752919813924833845579396805619894924250422423373637050206137103342804321592051026549652047352108018524803027771501042820632325548283972791093162195670051187218506581896894139898608956532889829444131553228249483001824701487775935791629068533890653574915436326524114587817378583681850571778663118292833756040283011695249633628589244005760516020153108848541986974081729487254056006577209931709426630915808293944725975274054699987996617106502435766591210575642712226962251227380144471315586314839590768328429669642045866239816473944484916345851357321543906642328322009494620932576292262690822704111545154779670334162296612812436626544683109873171551051154800467404247162448186814938332342994775691467456932380141021783663895524189550695728563776602891821105932793491693141445884268585259510931178978661476451334990680423144903528635706878567839966046781349212976232177617825688463492991378516122602901737088702523367189721528200766922056539925035719008453592096812842324740073282586964819211557995484065565350438598410916957263527208671560777342005496519318524884673842564004039648028091526775126055256127454344197285895028376742524965704831435847882574388753809107836186701881875354331357408095123253038278416760462586336825920763462741876737455191507509664268578092819049942433274078900914699868774165961107363694382214804019422081133315508680007503896111662289536295784953391743281963848770848472681727452453070538798650004353907202641846072755947070209380527859770667385903548452478390089512254693942398534047180331861857356880474754349141192375147934808332954775289627561985171766917593059713013577099809124707959935320534761401871153543711740590444989338166974548440151857182840684282313529254696496087772340028771579126719460965524058677887037535727081077388692763514727139909209793642516234074778888205362761499481303786570545399364918523012458653216598652993725743571630617433804341477032400730074003853782788807922871951185958266057289221632596802625195522639186228515724838922827810844106453878036670284549521445183357233841793527465210514999256717191051140716773526290336111087676181324025816308519636300870874383068255899617920824527398161299934038219635283301150959403046167209895610777973489960873869445423823667813805437027327956161879378666838280733579139623266482095658452138896901842155735228096634169129418895103385610776260700733396143381668855542664129726410167346580248680952693464506171938773420898200452916769297550287928024293921487957761258175926945985201925445524104096816881024623077660629639140708131481827362935909869969613108903813448798025554710194892940886140411926125706948520708281840628519305384983175512034130445645104209456418080683410425603569152851952524072850419004113542313726811920869821249283095177913653094302140343894906573272214579280852622392890468707496024085421310053290352990149036912151218464011320400512069512689518938703190204994435758787589159969916556396279076948443111002398021046786145532331031240571452738954504427132896533183501893984583232603007603076874203684971906369291682069019482923392736630519486435892400750048151357332067967834248901217176931933046384436496162923140527813352480101671834492537547938753749061928633840738166614599487080202335411772216469913534188705252788084164299084931423246163898351368197798326218842683432922235460381650531239533168350220285138733570851111676334202643915753910824320352730160371653825348031926286368374768419011805328515390776360330268750605624250123212175468962167676158483927190465172127994877958829515447474595992741630709340202426961870749009171293111514286849083015700349532887663961284675195625517779483995177100275780929455707310520670210875011818977002654184739391225708900701298263048336015085847548181832831405410041450959051445434149923012163573841781683494017150435624653155625009489629968803617537999109625048021605605131020778551251870570728380331446128736675761723882579147198254268125618573371999910664674838189595124786634608415451271140866605088802303356909301300304161850323862804120242505161163634714462331238827437516072410123842651203252364591523587248617101155277443016633189451989935586291036654428849622361283995511587452352576283820877006707241842698407088975098968654844802836440667240168533072808193663736515424162902108335595862560038644973703050043259921770130949751447367966064537823437877406513639700133358150089907286645252242682260433526096586847650952166375818789664858035477354010437024964648252676030259154928246523971332320701481950595107826446411831907674411159996671620813399799208876261389060288878379688602179299730110308520177143197112896431994812981847561897109674581354260562850831650621656656097887605760289132029682586657024440224922377026419822685453759318251565136083493431149655010130895395309123576095234445167318975440273032911439970782351960044193455672295797986652287737895403081828988720987573784110360924745274195398611502494766302167098103416851762313052613664838103050154236446312744759197946249976903789775043574876031546978219389738840890935656208232104672234200528063469054746993902633854791264353935756688976143129733243206494561431944028734561928962434614734609702937792668727875399990734045775562814218975138568836396681191453336039196148182638265413667751216856803690414725331352460896519575423593483459050914887905166423177661400440542772138496090594245184771509105761629850106118245845022359811111917050771049002173038659064189616125632019893537786224228813583404994970968553412398474479585138408683488042221242845698836873050233050910525837001435169074098698053099692210283352145880325058966575180808852933540901578519178910544166859109664369052388520407827979525676243803399718388750229372264235219226023836606429263148798089027716145598125620107697577377590632804320064267519125236908541094287967343894352610536585068533790744092927492202292241077659488417452031768089328538061587451961529887053640041298220791904460594017503656670102983698855634914436202635362299139587814124050154257899573755545238608042373766060116359381590816515266606070268029225645969531169317323103285917143822530600191733601888190779948582823082785930856741336260892921828931299138958366867910176062196125359861623286993867918494537568168860307398746614942887313628739469781179423905099017030402517922763390686607215101709211183627645958569126606620274896048909602144781662734175829542282355133326066439388200604663225499661468096916049431054187478789408452998647027293493955609210861624112068209486891054081689389107582467880668735937398119655973866736041615126523000775624049055035299186324548556618320933424612042641290568003015130200793794617535833670026634455431214819083588143392484472497003645867549406609185458198757485579642538875366355637745860761872433658363244128522703585676072182174625948999176291391627948215733285516973508501932483274023000844097841422718245851909491811709640587544360039036807055984353848528638956732148939257683269860104371670930391266996828630326931540673392404506942066648322932592041833447592722311319080371203768358779878374074314552534361645299219176811909845385928521471232270552772982680068364520863851674213373383543794500420331064194419488486808532848464938317910136311721755206927196136718581937003091693579085436230537896434534545610386127382640314712409072606298912458721957918188862889963359947578879402744195908173913838646066379628453341631548459902238525116250991346567684786572138205559084853929448247262396583302814522559730037765992903854235590134571907356346231241292682105900906017417975871589071448904766662669284450798696190851453852212682658686445240454005493009605281116764984271437288263977039210687993866277803701563289672552700659908779473676840938519149363499242890007742758692778194588510218098612220200504234900681940001046064420642573703133985737318246887967902619269125148668679731925422884546756831206788944908746339584066080610522546263043017053077975694735686821679259516946130768700538352248406879153711969597151510760385646962719233944476507157854152087385515868333276517566699225621496422041332935035363652350474541542216472408662975258003008413150916071397562875279300540055979796494801995107378831138653607371944601879500372296244454276829065126774176896082586318184364175180992286379750428245466040051519999522125925862037015459355533931413404674988668168236113456957274989488504055383897579185148413722985112508174263904896479869648908449900042277234371682684001116198129219806500914229854361418169361658812060365224788627576484868722658704619583446755391620780557650485592348961823982107560362624792679646033064087352651706651267891447098453584972782601973831606548404103455447718074253205597534754081856509328692191006983276394395790926457950590393391069890932379296799034573551796554403752088406686782895034478330587464340319860409869730812861777322348492287226142428016431028810653406945624091009173078014161080069348245936857984334986138494123939472607451530656350318544736161275645435648054660143589515977387371880072714615163932995779561692550466976937944594998588995066436137651762074683548184038231913205702452904810139577125212419325746042677406998186352572801450430464211999936047025479454932329933056545320448518322014855726175341688681321683224693915451704576472559637133850656876603826705480792418945002376065168923301929684792223838916802753383025909880395075623305073812253101201197029462931786084999662078469578476529583209980990502892730684684632848341290900027095625030337743560544800580490968180427554838757379866165984527734468923588073291928079047246269843032812950457849904058691476354809865554086979998681592994191487295573189008445722622568944644577803199581299705984538362383120703616822707576526621911748209006432181693649467021110940943321334748361313408330384374881022844303007321662650326431284979626407261548168294512598080573189423323192863160570837734724771668605245554087465861586844714400586575763318221875970363015647979369737074403585865941697204229609804746575878430260714737225531192290603807069710430990534315498009380575381076568413099421293199763039542483067502894272174271348015440658526745719243103398125812877257969259977109643898093061134051787345006377234732087054853125145331786095580844840144838338941234373921375819690653494408701987067189947314846490892209209562107246455108444305974665392502156153434384096806237897442338923650767763200502163134843366565529374714637619479863797452253816555825401844823908665076684106899074652720475623476243555512926978858269190618864009205069064543379771550525239543304590752088245508795240054667228001438579381699974696331077846559078536782805009955376959567594784106738336012600195272762125873216943976717713219718760810164791922439651606650727787305828169656766411308318522976330998921522724430508617975624159289834567554061035312330599089798771949859897904040009592480046707051756006241878855775212051060990215778928921458762625573209131867734531436148163071437619200499183650089618711694389688907562186530227028251755632758321894051293803822129527412212352531609944115155939017631520009235770066437178879549993331784468124720159426221779053215537689025556172507811954683538541960276508917919007277195718633681218937923165870574117581045465707991754913185295144146089501121202018898028369047376934805519970056901324576839342299986002803485597980401713812464776088155973507869399779383512576240809340555237870814799771407442817615858896030127987064977036199062200005654829133654777806936532775017401143802221495561645685032654143403724708273793767515320099309494507377094280052629962852487368417190332692089002420423466084886768013356204456481145575822930609020842715398363358740748259142335426430092603290928922007971116138334937623284465998130293752484628105753066847972429114398076221071054140596786515404155772185886305953195489624105086353790871739974203940091130487588104220538555562335694083935618715295139418716973546288336884912194714919846483863068617899671322587558055667439508966980983963665620302684405515198125529327718782305926386475668038982627487092415205377994959740789150244393410884323270312724854043447931650410064115180767160789083877455784889540647790330260791424589748621947185863112113654874933150755077109571723305592989517753155818502358889004900598813083532756059594815154850374020620757129477297053353974311373975964829939337840296277837986447459789248246928200996235291565421588789341867666065327003282247458293287849191844371849195831409434586655919167669932617832986167570693395997062539934859963601613348545582931402063665383874009451602873987891852779317116084011927532704341270632349150610534245997779412577775885184425409309105165403511848492633311949276064999756722726332703083765819207057780839712054279359418612231079016126214614855918095417798130141317945027993898818141886972381138742981995907316417677407224345168987605985313577671950146915985913514471142588014637946777922376585210455152159067249655687599538870211116017184511203579524417095922336605291012980249984292770747572981927298709141320908687665020859145009370764407249798107706169548636009390724504587757545739546162735418361150413230423679875223199026840948424263938497639264865682434936269186519445925375920848661478377544070807055922562312558269475386934883257334990309231068519694000106163810675188667507004174520346253191491221851109015838042126975689635241099352316076504848066759577772713493979266581527812466209206861771266940456502501469341753899668102534466704388329454263032090971719484267048691362937687185742369672590686674170604487843623074324974172471553733253498878055970799460339446245326501796200827317638600891972347067769260505009459267180677526934305667898832710714887922487321130379608678347701625150064053983997157836548162777596670344684218008331987415773567342231015753301020970510102529539360864224159574087399983766755335360153441026563929937082581277575042484672041768375569624819769032672008711154044452725711093963746666801473992640680068454078298780587361374026124275828389001197430838795776026108305571290850443146506508588035118716742928417984524456318458733358376326254989630289721840401040843987861855078666230346008092766118262520967830830678575798503749700520314401917064243304918906184530622688021902409589729906013854031593267712128259561100906571128370319842954390647160663796392339777651843781527486223056459243951624561402475234152806861960725365175543173643762369218479189376367507278584967340798412589722646536478129180914170728328791361625440757688454095316362045675856111497041707634135829497371855320809810721086741668621543336109390941612334045172833830054536727277216663500998113410859371888171435877030939543738862729746797727992948178271478680548130094078535096065343744781593276900327779602233471264245814407872758692826262840942889456811976424730761254427945007230770392745059393044141454967602299125217182282079980268131245261269144616686606509094177530120376118585086023178552228618912676295595755169355363438633080331551949453148032088336960930386574321571298616128133440651783298983815529622185974358015712135809347885436494505152648471586557309568020867582100509811097903456452716911965220454482521147738327943216073523777845043056744737702595641655413817073283743670418600573769191014277508196619666715398014283273371793506359601596568691356076543600985750312182028744486449721728679919513511728957567086623686621563620377947746648765344202233682892044145770085850482522794066518441133847319260340603449573296573549388488412825891211177477521797892689569959203671680623527782204201057480445241658831758331128841265653608892301358128767972845415553722544732867745181746649120358430817571850605640387300081397979907042093843832039050465080347289100380408719630232206332466282475303206001634978789342660231679263261199602544873026449691781322653597383433607342738010404824273448400062886197690934401221174767604756212604960307119789773734482063638264359560371854592499614252093112966982979121350359387744623282610383014682163924695769276434801900752735758391296229937652266796038150838482761696693937431764601286523237072052275691013352161316338726840085414792591170480815662855152041051013135761705364888671209185333620101475595484968821863509494783731778213612953163379576499756158467650285131255395966895327169170580945711182511313860971692743827224376378781300151840770580383842917237137356763694036676330006243411166626542245698752821974968797506107850340488257103835988692170099494176128041660935974846163898950697604850738789131779368902544987490982971392748085660988351727758428887222163124986694083975624555597999986736620254904007013141681114273314534476304429781163630904029244076091482146733659298244408905023112931740201296544898760526161133237045483203572056767482256306351540571974062221164372483798421053501799650942535289202722787187136382058311036603501768460516702195542532488580224422105115156476751179854297394888901374038758423740018431637681231751247348789130991939506869349194620862083131400182604043535041852852481159617433073256935412208213532064523931018137070644180145260390465131530737835326036326735758029295823000567079089950338782629329956081919962433891545307777187985449156265559835028436264891921586502554548917502566246788008409363651441175503144299984030274601222972213019563655261931183255918177044748416024920432784714310487433926938138564998451905035459046017359437173960343506490372335387199632770117753303140107619999705707448681624962966021339192720423464861106484102897765080587782887176296260063864250420965808092577676723848215988104442769523936716973971746838346941255716494488927739131138889308915696744557050867050131321444776079306885419338532203902876257165727933639213068241857611761817413090084104494767614701415845428850850788910574429402115545301601096690523656941489106033438283768313169064303020741254391033687847894816209000714436342200265684954209328650702676388386487212815126254174611511842917609726209719862869122980333623869111053582907000732855795354077292811184054539243288564056733732766791219055966985694812371198136828033232464807269389199631247602551288990487360989772712386408282265497605559017063131994710112108926865510938270780871368301725811850048214085486551561922248727064491593667613367592395735954161302533277472031764622848644966322146477428760660957767922329899484562805887665177356067368493914453743883941650362574040178282282893176319634460407618982624738742970803034727585708202350907340926958485423773495421934854932113321629558043864189343292484008609527563865059129541321322360220028549016824372467383114857309989141588665992624610140343339606125870718672446551898130642066304075073559826493535782868072555521739863086130119146746078578418863097891133443756555893001174866014435678459802353512255892647949895224911735422635629246806129546135215600498474087056407522651513136697973347916037829623354546324025843778463646876641339742411341180989932490617550551273243400233139476080501478880440690984521343218735923012578090420408188331418407548384055979636307911307090849162420977447325158013475183626131278091678709129523806490403848678397999050246741193266315402355210323393917869121740317020063925642515431329750272129455050930289612503495935505640430306996601024714274151337047723348627075689350237372976132767217471355228473171426688541585727271386233336419111431468601033858907006137247350099735592068561893253857611696582388043204612489212217491247517302897436797417931741415975276180702628669352614228236162442859313275521296565997511443479053734622489064070324149448940121272031833112865913278980769265350113744224812207348085844117049675856042196711207534767821044553746411265459141324669692941430370409125185215857594220429616920271987937029254965575130162955447940401225528759038386969939273803608833297033090528399265042380442659448005912367283504939383453033855668011146723687779900862132416957231263879976145032525540329612740869794491587735254340177746628762642688626350490250129250367891663036947245887446670106999017123523610187201274303530815901743262376062725290655243783444812171203079915775189564484282543334297186153177895457134265601888027938005517204836741035296271571924627215164945773983690396739166819733661973557552771019677019142759910239338641642432889586423078025305066135729401726664134737382831068311616553070188386866999193753677958379455250787281751086528070912460991684844428383554918984598345143821026669510876816584691165650628900076364645398098876697665250008134706657451054766934368349444803819985744025894875753623378257959368522249003902064374297479548276976062341533794837231726771895163619325500111054248268363484040332441581477945334225175082801887852634272502893568843475931721249507496976490726201810832374171882521489311499021173606894687435645651363583512471461379647479511628273420814986370050277711795661212218406358396460009584096701449847854780530989376126935899989713029844965651599750184989283318980842355385857760617780371429347628808489841375926892695133455775029443317615850060931812753502723181315088421063942731248882036626197146508888483092468265004814015289459006720789802787743646909400948592905124260006785047630245316355655114767236844800857647352057278871096835128231549693608293899603567708069544279163105025910752035066351552279011475227654182426853062422246468344580458424817676215838893599904046481000834936670914729955458736614601099903142452154752674112130300966273995087170401402621558997543901370568892440739694780075048396617613562879247123250185825355865431457745679888225001565217477042537192184078429784056229530520964476134989836008688941980889232641259562275150253287791875589388726393882925369665882754658936648859027924708279299991994935683049395731595048427365408104793921616379505757486532324466712451861786376989723641961575232869820421926169434912459121780447082935377410627451264622373717775132471735697274979017713041287374004053159357595342446239734810734853317216871897115006849385700865994042312762861117226511531682310988046760051437814260995204102707308472981862845428737514408588638887657612169232457717700994575130629244392668486296595053752890313004476983828604169635769877997143109830799766671879243078675371643977969819803691746364935472069611213019042548229834361512967309797888358287825613201292926340826353748793397331874866657811015145761143967300371265405648404311889937835817878046007185197740614532813425146968979672967032918869551036682869303892854659362758205181970622649755898348057738409305889025725681401960560441531200566197556348716797609787059379791526689208771154622367914159392734484125776670314110990792182835231261236394147076211219609272815932326069109775564177683628742307564122636217686371011618564753258535643076988944705916397812513604182069580979293459129391930090088938580761727993814290401478240765515192132859927793366825960568161939834191599815897888516343137989650082489491709846550923309647270235633407263502992975695785467709432055335106544794996306013657299165476591435863561829961042395377249689000354968207983076530496477860788897976540545050104520723290108381690853381659068171609852383475096667299206787608530337697066317774886162640788976528081259358591109947695428776115403428360786085577435825292180477632863229431362278393876925416569952085122996146524921405997225890505590629096588237888223546498073328136237040208624288087612589343053312465424563222878175881413189568370961182368300286013585396532355085814178811713643477659359997105298606893730474610755226483650947535246043261998829342541406866866777482092153045006060549281620950404457923740104788021867818129321838633825225303082674212455476923041265835920573349619379938942998391614494141532411492730560383543775487331995391108935672940605685039127227035574359745880795425649970777301412050116021729151224135374104118402158248243054893668241364209632797150666163510971393826953977730402557749881134646513830090525111912212157453094197206208210061515178951194391085283305116398408452479687594049510819783208856778060781712472242960999683173212157981966271578333330374610990075801881365731073157837488841518396939776925028770266765002343185748334730390299119148760769339009204553122785691494830062574705742298133634448735076356401767904098758513849104377976157428571896744211045553508004865414190399961060288813277433444364704493517384237084374400525089274139034462304695834926505706948363349824453584944795691475931571796352086816676231820185166428271401050825094052242680999554060064778832734464569465113791254228537955113962294848707773845940759398518413811004847246552461414819663399682911408861711815478369286901161090242977844269183171444244252024728960870628206098099313681709319707352902270664247749484368880460590625210409320956448556577625303285125653288617487999651719557737787855238901647323187147168974278463558947159053572867657633494470047812982590359551783962397237041499371582099744953190638633071546164807834375315531734411071093276592190947209772935530351684479419346244604520663145702181718055880886328487770780758579172105994391910717227119845300274708508494347250796615744639418079700977172360504638281474787383326849212445237241275896842688795997048674316117445305766069279876958326556158923142262273401733192430114638516010576520485775759978818983867084535250971465546499190521531402274782309905688915032676850554134606205219600083500842067788872938354779656780112082456450581879398660788050885465618986875704233197843671789224345695808495042211101662220163118032516944912705290710471255454601562991078061254646043721313459067819780733084162432423637677833094172369970193771353631837912094963437691179673443110329113578695165202600458805976803432746402901850166415573925664688701531111535873573847209889827762478653133534731814341553344372235322969486394987273140927472982372016052328614857438768066834032707238276181990950484018523603931483379848927388102986884112125676850080749923085515133694344479898962941197158342694477460498162021141501500572518992337652457081052080021857164661626331490243658019946929244966086366758254464306433550525586205966214758349204027318391491855885204048712760797821827916565109121148784881720952771135598431733497588538205235997552560277816118483379898094234031856544327575046895883923985528474892879599778330053669634921517821443460855012804931537296455612067145317555906830895290445295576110815430512622861832907399323489539007973425278753795166812475884122868985461322095832172903418155247132082861083515913499635046302263718392263785928456806405890003901314219302850159328247756564362464932174241445513356711911197646045499463531057146230250048734398251479115167042202566987536268803278904641343145676432810157022157400306989474156652999945500279088816778195504326296540196439880390735677425047086250068261826506922913727657565065665872415627535713403976440486541566063224873055282285761643530234446773788871110710433107799684378210512780012899491344439570159603851701763531291795125888665861074251358577631394085886296225504944673822903548029366909127543874158486807550361521359774451147608574045071723377732570015495268741348637649559093195499520392535496878426318383900507654345896714180661429043827830614567840919425716985025224190527707201570434002429139144381800917767034663227454375917885859124737485350389900355328348967840168868226457287367603606314042427090726556053916264908734128986300481373807102517206462908734179168148046650672236110794101646931061705070007696268422293146915412831062577950143257540150989865590514320951621998525195469067962929722053465239148383421065830274297738488647840004227573842797064223588451767874399913674092285353370579188232972214837177887339447146077371462024105028663709105296306474652534336044431539431454092029363269502987261709819771630556236361218816090598499550527984263881827940440084844291446982972750008278072292411716676509455888826246708848815798375761091167124451848712142613531869657656370716153521480847732392761607779191518511568809065690022159564896916167908633993265673605830530117014961593228242111361714532963617462895067167100437172432071107861985700416580224595650298537811143003887677520975246351663646254150331058024563653555462164757316497465895078992462536976579376771201358625270322059795829353608212668361330964420582980840308616241757310738942405794008522316639681765232967559105017796635496640434357842948039438628034856180055588947644521121673059565523167782557033631710089964061726488634799084892812680927187367413249264012558570538070360184660745870556445086982774894558346150792072939252676823910567924925984677383901084476795231370721929035671434110007218681571833641387870933375851687587243249248044740113065231264280329057166617333850736505146301355159057518425883208712518265258294124135857041915621261459238884397940722080985379206472857128724445854632526774289682487979005892819999396760498517888704300549288277448020457303924400212556341621145940940487761734746310669231463235701852353295370533251319727805003263648147461955794771838846478762600814414605670202666457971323588898946007007456455502441784181570285563800258560693068339388978164777728722160871994299361069869136808469137549739785588307505116435134386777153005109102944506973871792517960025203208398717687725278563510337409958345672052769066954221844636254660199056696223882149328239786996864185157461584912343905036090134375741132022978048395693884679228655543061752792623820156700756061920716424799158508090419933312438794235186830899080194442702338593950204105510355807626395581545191746185995461158726190756447527375081404045244716356112046403648356314039399693971418780882801602056905341505954986395590878924009386777829045140328950968656363449319068240597787957891301101993233229638861136773537332513705570390849150677162283971764149959599927024898190888464543809555788844815801632527209069817858301248257989545643223817026896890170157995480419134454992156767205232843435594038298437022648453621260744957862653101263255085804256815467117743212778048111091673467329458284823919171874215740712386847185220198150858203282149666842285632944554441368197207760705194138559724129773680578272325376101280411697207136774393500210782305806477945423986835816332455758281102388284282790872637066396546102104804029057350419439806822809443140175648336828486187262988253472099641698290369454812093142514180870619430612225640001226035733793324337654355013629556930601053187096830848164541200878716551725815858796172818328506194275301331875494067766813829746877799947283496216633665510877267767080995156429146651654094163005000907192579759503316688348308956808499782169285910030588061671314512589513250366563872660852479279654430476801373419062926314884846023343538578943563495752708555805697590193098559619188917487595994726919087731830194577428325721954380609527885197407877285573725783353529023926174472241640425074241846001688396570045353853576257338400027705536541694304663968550200054657655938136558653996254584334641443117933395296221977513621215932484406803405748729135671088168267325779609944682210483998343709179447127500062924924810184525911223735380978808516265424574402638715454946732322997572887420183527838674875882541899263369589707110119453457323402982857849230484286989194276834923534109771527536605900547598993975778146010498837908302597732282340240253812446984940161775788845072070342323228451514094489285626214236927836810174762065205927486995318206604688724780215693821068809944956090445745665362214370353928234344360074848798725673108589174437098335328345909074813190566965478549101404605044540853785466785047243148727478510067423157271314652650734627653363075936439372666843345668134283877976842290946783988165295821251686845512878917012927865501256291894307660432968170723026593926599326408498028315692953701847137874811153752292619729309319669350365339779584326631438152293906185206535813348411520962428007426441051691462484837623358124429059265988645512483067200166424673520290000940819098102994367045985885739648686388993211387627055276663158062445798979081698528237908903971525764632011107895501769196322736690442751773254075505857194229034576625005263198323657384668829757538931039856447824737601048792708968323795269739029169167536771051032340254557507513338528114402286647769132013170156922087965593141418431363431864455858621320360525736175641499271261325179776628055082010323850712838508294649532579002859827402334508490000198381365953594589718724429458847661722727161513724677782786655551332840384907843950157436192674180058711564137935507019477598403759619478033376047514819275542534511333475454573260469330114285068151072620522997526835169023677357783564179099647096214161028977078836271136954180312614724617300330074172400651204654762680807773365508735122793912137797390948527519863429850010877261297587209327364770813278106906978069304277521914746824023090111757209471789043654139961475420053153344132151169538826687414333919412547538437689252086642293248070131841644605713406616105362268595042652872306226157844553790695497638847931923506526093383916784171251586312501103495638521355308130468353990322180997976224102466888544460672844544915764671543979988128899045845852399750664389722587130621926972898094599599814672827840277326163443433771984058011980428994303756938315973828623219454430728397971212828245050865481732364244892347349838046285717654100056746134511008426051460059286342171124448388761517947318025822162563445559336738462974511705119290551941765493276770986899215942712609582463054980527427769275243809999949767711495519923749315236795150463349741582505768954686654217965971958360277516238532357982903837737135878142438817762752379128960626493789360591598026834399794561094655889961975469096024549367930320916007523481461578575171475888479165678796654764257659473847152801270018167919654192441084733294255258648638867253614144307768055973953721684597245860136236817853348349048915478643436732152362689374788701748804758971592664904400947670351077425166596129860677676879821797555672335322176494160932154745607593013510461960421094670837719989554553219301482700063133635362030618500281184637617645623156359521845393812919903384079687123721160308941023307041321756281534941814849453603211027933924167676040711176059442191897790232039284678585834885108668743681983173060087481605706353663238348264559595950536162684836700479815393349092941144891480270640547383697334927651931075975277019340934572515241948881650197569924202577476213748501830734973751378785215689618124006062456232718649828252451370529503146411282373864135791151556531207271786918673265593347159930052247933873545714694497558214058816557987389187484830935441524526127304660656540117468382936887509607980417075684872096280634765011295798863566197235882585696768231023390804909906630764548037697739973827737028618548020157149277350946319749358761346083119524193110568943043256960486495912552610376529951699892109755332502434324412562888254107541457450038132741482331255666365660479680320893998598138886096667498194877407523517037081035150660412394885278885815602621802833763667620223600016392628143702643029746095680225950128850341647595016868728973609996634322594632228626016096168225009668205144320924175450109193725191510473682702601906342088845109422039471885983645622209531771029252290764530607171383789731423066688404709291025489667536193125220087590902061881001077883528500140772475254115525000528529389222448633122053894214400854825709580455212358847121627139681270717635202618812227281701930345413817402854402549463851606987163589722256213036182544874935140259239664265733402814732416441876200791610429962829221056922228852459008365435438515030669993033066747130821416575733400404140384870596129564099035233453186209100594635884340716781582577489351643154541204434614483538783763566818012481860711662328199107880580785453956900123227571025671650506008488717789095095261839821454368482801842019476528639264561927725187046589554279192906327397760973085890519023625696998188657245621654755477834686822312148702947733495153286743492031754018229402994537890656908493267445994482546541677241645220837427621664453341157613666897221264147838551018016751060653109479963569180502581988848156240970720904129697560082796098872957139785291602677921500254645954527141785772665733033426477985653027019178849779051113811499069584165561856221145929685298567280598754508528523745760088841715600006306998005878309433373301897804553041899801383644559341753065591633234077711303616100601592814673244297506954426350284230309947006469263270946764903636548242464313963995119081648008728797558458718118023923558913030081220781939296958419089903832081694543123725967490550358953549936667034213297148241702715025130102016292972110315681604944837984211787380432517738198780651688529106472272799310614546637026770527677418348249416697285269488270633506177129115075324078519467267293933217191271713956295424119598881476847854751727862948562539415896938591368611015892266717941628578617800265076496989740566138218362804423051168807545560232055621503576103542852502153356775881562864513950784645191025055654058151766724842801857762695508028975157479286265531659496458206419806380808284736020555831317012347880615706618776656730782717544608894002083475729921996786582789831551602314813843111211440484888520552993614894668433437309623633719346959197094377936869107993884273519292535987462257954429399952068257666275988799167184100268414521848919993051385101423055611035878531969860101569093731988561297007035168820318380006009815290759683472246044888387417361211595809667607186084810044832559708472583472194836011541304520089445933288415847880612270311437100138427211042020525702216597999644897771502256261700111000342406970278077300664896248940796332406493769038986011599480591211750905899671809282398567108150995490791428913658615471658382005697145763987622157797741969833861968677416364880810379608065251987596464198109477892761606098915807938878982950413848586980072072451029363842918790323744825923157534140723192516415901812533628841525611852427037440257721604603848704845188493972097762242466356322527240226380558512399699664314043522862585339383665134085149538004243121147354947340598990579650000056692372916270985259553300219590666038907679127245230761535797411898034627532653992055588256374945855802844917538483201383475423514020359894134824253708264521931444501052932841228834570376935942126596328791208338979092044629551164510172202756001533532961061828452140363480145423388949400131128919169502882032333045023789281217682383841211096073694473086959402319299281633633396235841395465484232624948348833267662992253356469391677345818936657023536202015974867849708245012657701065726106230214676335498853207404701776481715615637029858736803165986124927998276732178860450701999124157661838791906703737965233112399153432183005946261368385747114202146931775853212699787993964247703537265125672906148079236087027899416460001378454158690025862413860974209112184870190718061268234555971040436838125773625842795526199190958877547641696608594983268828362136084273530799348928847862144816086371950162192056412046913136206673885962723978640886021671809219985323895769021893630280163437655721677247097863765044791270594483069896830847890979136688731764615369989155297116743448493158392516677548413385539398043837914434237914353642698946472219949629666191276609943449597726106709404534013459614635091404367090279658189320452105760150623384730378945415689213001769100250639916423966541732118627352142514859323469900328578341148562428426974872585443757754215427242090876672386591152267789491612056130432500885720050028492087317545145200602469274693050477047521860003000205174428198525553463731830245288131613956413897220861730230580904394523654561236788518886168301440778303706020209889853951663974735951322755048466663942527492027606466321012754064781741592680742821901415330933412095802724954889207731388571451940556281382137573550007141665969779894880024631089472458636270250849469949033533872885052415231668086738896753698986438447317769004565861104747668422516658706627132274722144850837747358880823057671459325825909029943659295043316133838913059654206911101562974799975030353571170958347435821001487022501687341578781102581067756911273801880519062870449531219105882305062133354960035854782776066178273619643905904806277254164096669944808460719907761452651347601983161017039579474347534670860065717879393182395036061652148872339102470633876396897714499881999331031234669857793138666635450695024511182214242357668441513820278646248624163277125590215923292598447019309865265672283911905412638449169101040301432827478698427052704518730456124340993958064304784972074393415538432547829336344787550064307687573014224161248756549806146269436160785986785624325306812501585351313117460914809549051509088141819359155507725434366337816264011984647872988955918369716539159199057428469063548344532810403953267169274599166861453034545012374510945927578521712385063365233525588280495369534163506887805707306909219095985186591947707644686801262424399127852062274824698844384116746683815523321704666448418839753008976730334412224796975933788373661244503940992264266072185232054976414822701131721849978501177824928998272395756687581964646614993939106477434092627109377270898139820880908630307488130970373854466855181289859491228739732524947371078315645477806435873194551215552681718371867781074595211700832025005803836031097285818550843784019213035129583048328503590563110898317369222344736692994338549481706477150267978978569978437108690757210622962022982637724494772818854202609213833003870510285560924869973732467334593683860674161554973839574961301339554053159970334538697489306095160688342700716223249275748796986635788831974413012358637498934506073747966895885136129820554098605646534375858528586874714931346191040963711503958533388425033546347717772301581245441610343356746058047164362325745568058151230750771930470379270290787361741900639937677343692785376055257834360474253755130442168066088343727929984545706621000354099478906806058015249999743261523892057075934753437923421879990731987360546951498463257457689407116994373384721574037116839293439523475693065340781714065386950371620996902121381294324390570990602745277360121622988553965030282234100464549555997093041969182711819114706368613086251013611252813199734246255466754719082101670919654679864961869685884365507358843223440800320386283860741301027513996723029739218284708412046673907671415552634136815447498136153569100665637843335669851122077923232347408468278662857626940618481887539221470152626823481304719494195027295664366713450045762918914460908885306832189612361307352429156871706101551476999457281851623583474400930939274343111737323885211342113942287000765064844887804727149880715089249259673101300126021238696181451574258511307814228627552288283335710072863776254062600467483003927042246619767039952200436083367853449223984241589231396898570253926488836855821331286808343154087656490467291911555360384160054633552722499612552427630842680402570617848925081785768013979220331897857907866223962131945134644631904246426426780321239760426942803732531608559708503489032499666377041456176606567710191733815880833465967478694602462243254732114180567922352745661994916255721117112213481644818464226799341706658968564822346316585780489126181380385309226851544915359370126928972711325458421133370429238989117436900681960653391834610273039531109867366268816072315179993113858898376260395032506140847688725972154605715421440050301679597261341220906439460942518196904754542142760441370339308317514620384397825083464627263351047600087967759034616006852281188847283323798505204952231958864121325202933894635849171613159953663912474068693651690831574739314766833573108702532919792463367038325520392061246995926422582833393508842980475099318344394759880342178763014473635246947006340843397151922472963939653340527453308559070666370595990023370191974272873312681526001629239688053382244892551790142995409823710597756945794424086775140409345195016662704678402351025469111112285829173830833298411636148827371527887984854704260172241209294156136532141951672281973324172726959491755629090669396001972873804525557828302923153832339843283150505699075204883820469309671430096964651687444074001358698627043774385182933407455143731534063638024105994493875804258768440531306004854627440867170105800094043958883904644001901368097912482963528543717630604498258410391648908245269898634534562758689434082748652781215073324649081566811879067745574317208588012209926159498530108185117031274272030034098483818537421182182075554973019347285789994213915141876342365631085108818034083685811258612627652248188502539425889111688139249961505640531615803342858654525147823730130946904385628231757642085278337991522212192658541764269701128686126122310202238068055963570572277155347022513510170639103588594226830162882229956177493065612037902863487464800974843990878283004647865088988681259671182543292958243253681402368051447545927683798493041983654268555452979586099182872034267625868444056679068044548295741380330053210079308451488280148625841009928136959419029615299973601237884766005472756750487167556466255967557857093135845069235148776356023377213029349492206124133157785510557265300078082835586818644441890085063519742748636712995216266187534387131312218061700862184314977236946195652703751881218674883968823884842824945524119561423981471525032448824841982312010860840382674203428385982008438629088232662186749233551524245827920487818432115130591054107369897846831631364542797883028035553211621619204614589237771265584721229938232747320024977894314352009382929274547696004316599494945155505247939682421679013335955618237289773461859712161802153993383646943400089472278824920097274945844204372185605466824952076185838643835355727477204791766166130890252611256500994833505575120181462831046804671072950497595407468662272539752104182317664702274572757939358073677092544749676281166784718579778637278324232801036625673277715656250993368922269774318603833269627588441623113237800357635894944234321458441320119699318618850230529874249238326629650715821948247883076141543287573549758231940982338669630979343916261083918341920834416954538025493658210276774045899808275386528279030127819777972669212866259217328603200395267030814066771104206114608752804047961503761796237401059378853375921791695728691287515614272329394629808384842189556768374678986412313597032710427862442468046009624487436961322067649195125466422104018980703701771611128634196369228970282944656449642899370384575932079523919096807547871013184797915727990467896258283998654907599329352375881832438290465602129914266694584035286293363066935113409852952352835594191014345934545346815663835733323479963142823143997927586719934141466694742173237705173209283858190878778180402665060238451271436486815405168909871616571417690713440161131886032158406532354603779378628865171351898910769014426836462343373333789611745712518399355689902418206693972614333021443104646212768805709730863647688740108323256891038906908633503877541611972670784572592754637012170403841813799925957868280424626918248677645053772111768074619096825316167467893265582071503043882895346262696626775487928302484679681981509634547872777074468587811377878256986044536695031482751999092367514033008686334946328986563174852996944268897141811578900781832533309438171358424458359348190740489488869997471476691867159448339799786050918504656349218127462306278671774581753821852012867324505159562705089221584863323707830806434529043514056714605348051509921786652838048626634052516176600864113782015736472769347987471151065033468444876062648494777998481910223015391959788999754846313125741510721607291402192262496394933952582189025196557214244162853631013814235013760876262480057953053423126248061282781950837801680273861162283065630457907192171763144308797319491230056103255083792007769322438437478798039344898689114434784222432664196692800600757513928144734224470117757735224632734286774606400451469712674143077323611066706917152293768267201581713366021012542538676659008608067073104064971003626655893603432186969028840891729948350149948397748780736653599470491258333288809435432210863342272415706776191959971604744946974872879362678713983969158423144916414494595090901086594354388060925570016012601188658968313952360063189573569767660232308461659510187835264386824378297870300305117985714248816262282531294127308859079141725909940422762061705747467375698844722376574090025009483662367077275111068399553402701887443384719611514695114185312855238244649078343652097499384383828340055351973114215944346997731282159477573067202339664481772815217963471086720309247462294574422360918243756150521953439594747918410367087715455997143603980503855704031608537979366921427313331860141422196371158806870180671551619241071024448142951263957164413419609913076681509829485201434553746247344814212943322725864556040598161403187272089972789297309475887071280956875316742510772736823176335370348498317528021386869070733570805086494051472957719122743544683344287311661173419636825842559745828218533949062541619609012965373585106744525721408330172319404478074282902319128049419287499194768737508783165968423112138121709517225061446515077520460707977401773712494406587913076861239627438553025021615776347186600285225225605567696363409585645186236612562529670850711806688673667713433413683113014797921353647114342443811342763857277695064396234772719894397856680711731012493238492020620803108095850490024778891905450199248104358204170969092608843445945309156635261398084018032517359011640267455125305881037859476412835523029551429536674949584828083315186791841394037298004664075123363886733959324273260599181896679715858903480390367410321681688889362368042662773665391467215491475073681212658504825014699250080629631583391715070191804396609010727486323687454312519758489504400118544547830831261663073041453509551016818905895986227020993233329080757414048139138106822634122359613861554240566735301415174939778732485797290425964640188502546517311521678096349117579255779860814564998342744946673079112283805847291426292101902987871688671713402245319629773551702911914357996393329673075635178265104899935226382978514369008383499674513381959433113588356200427595792095714191757018157261081271932987586378796292675030977879227076859503863173326070488551738854700742323869300092268715363155090171771332484762613782985213363138711352986228045793221966400967329594849712606857062981050590550710490179844335647595991791956992821412512748662456792074885564647587778336371794912753386134422659154924732366105461637505598319823858959945114080686664889701278829872485473749379730633691095355051400703716294829622151275536221064706556235179224199554230376927760316421429574913305862636749051375069717184825067173724744085798018521242564357596430750145929330653636458447625377491563753995867657195894765043134992349015547542139301700536997717717605069983250845607498628986817181044018266036785780414730817781828916896735102576838470067995320649525938028034001190887871109205230883868053584357592128699052792381164985584060927127447432818372309589322376877052350404295647075375738102458018283699949364320963613843935638556982819973802790016880216280529037488195007755444453357450562084235840251088757377444455487858333256673698977295866352086118582554762239223952062830726805671211717115173253216977948633973898384955522358621749834808393765192215272997743023483419321088142576103808007537477210554162096574868353011727889301829768292349099963686423967571696217447470508631437702055305878891412909191001424075119998424578435783276150227755822888047887767436869889181883115886555509418842738256261986731600452840512482517732836592930928589800554197776460230909843788893192896772762490559868041573837962292764014020690201508667696618761550146228560090501336441798005220226154356405794354906415569497740570281063654921440078089804910985325705865740007418442457689288101129116078509533846795112984006572141244445466318454192293135562722285397082464766583230963060703695341071142130926899346942325502206225722032242873062150220993018548067761953379824588582217501261536575240405187564548305702567207966036340826868304407335620147195883499000647574097475581414036142927394219794771947334169155632298061288759795451570390589754865065930430545726909245299808150149610050090625864292061490314248091383532122670759917074017133016650687988674200307450056261818605146383120949079277239141798350099747625547106661480317809934966556187640848750677182995327947287471140839303291735023592614498879668795558052825086773839295856192993992030769194557489932826295789745318249530778121280116815424176395904221271561934035910775316633255375322591663215262562936855686951268036120650807428992498870532136327553668648155723101318342278112657052740728038255789896935942776969378325843727843086937576200568735420472144350796008180220647517887252777410407629764657556433938693238448045746732158242226493015422209772170235867650474284514662977853424339287953219872723376965340352441421040029235198569502793175582948045834381506370337673383451952527036354951206470349833853048781090557829241443610468048948386540088945908992425514103070071832510244519007062662404517645486710703721469118128869407718862055835767330571652639540187828559261413559227682103492004949441828346379235426337491742029812446285650906428065165335129461362724323701369428812333011944468019323000302526963292733485816005207351660202349784959093642832038005889715941676354811584621340374160332928226195307803258911657419961766245588236654169333972198182921626289469746374026007549921292161176900176580261053625870667729770560836027512655449623907495291051908687519161000802346459066144152518348898229482794980589779102323964638689478903541427621101143293318423454968397474738775798595882319583822311489032893320904525589706642548472306714636694746642552341589718960834369032456296093560525434318886969485782780076372388535840355363958329976398195979276506745438211657146624048091085442248182793218077252509441490300064209396707652244298413024153006658798386318073694450025986261005515797942785056146890065432626070500134789230211701315397211946333445408048020842326676974331076841530364887357367573928342143064529015987376443123703804438982310678471326638209389416554850871501031938069870866744600287453713973683714578980295714903446033458326274310194065389264209019521556800172079229744303311001651091477978137961455229496201688383315275277784116138654734469228972115565034948310484127199106206033541857324527802441725123528674384353383167895089768790847227329178341551063032354789960604803961092424421423950168525111017913751860522527749538680697056593923320622335203774502502339856278039733385451617594985162656167398229171842479998726019847849131620396120099140884134687931929423065407769911391889583408023659258437230163674649796403039397545133429373052100499974255601854760085565132880776055071741433360852306017679054284067725300346775841947935306969257073792561923027739274515401374577143965639062927110050140716130677295327025515503673440043118187876262094318283492614558456978636456293656521122765600290074888065033711273615716333316835375697139679148111259312561053145419177693326058504462529498920825145929227024717794558604660381153079192827749637715233480966236348019733183469830465484223822455910412708717086369552047121374288963543187735859202317848536142903814078588662262294248797450597715511187783816900326937956302082802202083967001423364606753773021903342264368273365774705940814109180411559572316538879614436518371447551862416339423249477664768022562953059420080194785143912925133988681796419491832829807441576299032723107869616351211620956665527038377787217665485767286380858914314274807911052506716200260459118435522536493540363324962754917690172578678406949500480770456667521815402947545767487691621024930800423476423419472891781642343057455395551345654627431540654231570928592413358123198955902736821240588620247922615450623708688174108768069237454960634294578015886036554336519396892753260007701709496773069152205988536640592304108817620283055177777527258785548224872411977772523597970545110640771306814607069931469579116475964473015720528113453942002779921367021802209126469939318026824493532763540961673142074619693819651118579880353213770095694764694541573526394853804833132175171446406860867199874651174761549893001855323809594982536468591692839739749574437165593959079988938299097250247934849078367218718780000881162973148223540632118920872347125036325273079619369522742015166482306085092916175392451690625052827923381033949434129046013682379898097267435898693389267888996825203599922638073141204053072466831793415191756128104017234127784770309396644680686992856539429640386566706612534436917763229667480207360677705032227218013304355053451236374598219847072254577320241935396641462505462274327566144050027501146700027290893081579364937449043041109298041631195648995086366339958389354262904675668891046001524649840646956641139846994678616822976210963583852155246764967614219526552647610452835935982888893824168888118269971331803319680437090887991776115855945437136102700061527029604431704427789530936117221546574023914190526653431934854163795066420918199521122336334498148615745721075713845549645743377887226217636702146182440841453255824970906298931457538301276419878048901407508712312141255610191553077682397647745201411289888581241171785808736435040009383399923450183947664725867690039415807730010096320998839039474664504427544942548005888507200347378552923175875192621762503556874691015840214647753108051942516549505382909667634360672227459053156609126406639017732358321805336328525385592150134247427366696177861631002137780139278703720535402910702161389104206081795678183703785633824277840664073670371100116275581464934645020452862625188919439352156090354846083543327996493018482809186379160913325360845647401347839905596305442499191494450523667628315641440424649642055593726726571689087846008535611038850761295508901947735411904727845865945599631256210672598769429650766852633157596315919760031453589918663420899985328041484104624183567347278816010021871524352281644240342757868166376701192218348888571239528933354373525928720945728570645263329775352511829709207460209884918761970834438680873680340149467875208162351338416180748827935630619175095144170054375948273156226192586006328541974767880631474093415144551792623830071784236173254601379762231100751663146190084353814872193701855607529783294206373375970937386465195597339000806212996949743606571347043940788883407689884311940219218467889862612359621043848630654810117521109201544187210302303858608726850883225098281689327251710565062954883716529159792118816857357170250596980288758352559023800166724060359068441953411659299517211757717350734307153894893429127102572273013298661747196457257232078829655713239374687938338523726001761598960063945566453422748060558552943988560689748503232058874173027196089620336992867222187902872866397941705117429966458852351259277108667905783689717436071226518165082947429084999591147041460721876375981954575244295459613551048614801822206440179821793045026998839462413800650626315478302243202194457113408270940817361367125122422917044418871838458292055044804818508039105760936444850229854118651605023939058583533074914555960993506713873022767922883099594069717047571879270127686971169560988602040866879942453945866477959424987113394361359402408674763326256012567817775167268985823633029601787957171214580979605240152138975791348979027463217270134401948467019958397139556499526797093917338265824755661234917697042102004030601832839700394358172792588190834895688098871699233162800362913326999697226026428408591421789095680208069118742052815966537937943824416510739257006584502546534304320849889198674916972476233315971219956895545642380945560080104428746350509428094485145495764862773257760395533853254494223916449849881284445042785825842988851720490405333101455220926637704262124142803719005137091203550618450913289308834679388740531823521900233469277134145772909562502357214293533299730976144250469226851519073826638232081012673082794880972917263382116048826434997716590656459908197372351198268575580994846415504039214648017333981159273407488497486218332823095990742630651568144365771435916196026981426661657927975388574765239010346732996269770942702300222001940906804061705516127107915350652821258580205212216095967335824603328633454163173051450537583181327596224534557320458411059079844165233104225909797210231398720103484054293609589515457756806228176225278332108870815568896250746995303769169839293660371859038875021601787836022498509350848880995861370117638220492964453210053039098138738121107641021336846993898658134949977781202056070435775730210937516764847521388840108699509638175770988053039139246784872435915910906157560997543044213846270962608138120344222379843658954906778899362462614950297702961119387840968860237974231482394575133930860519893425419608334029298669905085000599035473499397341664639123760795205532963569279131454848346401925296089279494289835239504563895920402905677004404294000015274709022976200824336944579116940842489329188190433943422836992432092519565286289835682439398778869117120044972278662524462438729578804403311315109039052205936224552399514344425998462996299643596269797150841803492494500279377626734612132254635706665421058799669465634454426571226299953642746284264480958123683660413039651598179666752807009534773765289739574470457708570779319690720309617391378481253648512483400880917739956353114813506686381836782524362981830792044963618426694177344430281384114784501373096362360059782519988466623006894054320097460475055912237682535637802601364859925520593320708774192317166011595417810800060242384516547909467539011506337730229689636227664613804237861928811608709226989648494578719043347839265537261324593036446674642628064913021027143610518875068806343039078154670322972164642322820708499401769098152634662899136185683162417014023888373134459652959779446971902884440222039440071556159172187947517181075196842353413834186512449453842079120735716084900962359843774115838868415543079493062734839079423694632198176435126871090556461855881283829054844201948356464253303164457564497879738170561437650856342944082655829035988650275693595570713931168942416079546736110522533729599915228809144078327784671275234917064598940428982937169384053500559803982788188032675744682313430793195396297965499529088936009061037594330389216653221628196350095215560627382057423717343687898833136666241989469147067999416639657537977055662753926438035998609839904902700825224040136943139711864559449750849690651895961512152002537197009541184646053967572766137906869806904846034857036141704342633171707938678666201417693465029673906304083686043152486294422131522267500616354572129018205087167041354508306005474254343384322249620179192720455253383950971806955718486323948183088507887516702375186328668957964929200165132642268049556581410156976221035329127865509028969565527171183831527827457475233244183821417738116967768832411312895458959871217299179860315210599693273310306414101583367917164643239201472585414187112394656640209461259782154631817484657437446917474675320614052521351499558144223978131951474175036551731614758850932683694922369589550063001288988841316160892294681261395515327986732404858153252733456131887022684607080909352385175915413693945809937819957963640192724001119769164463307113079640238279518265368872452500535483104089230780818724336790050719594635151198046600261683635670659248778459505219175148740483415686129335310604779397319247896060555437952472560777388384012438124761306198049532626527448496798741724027868029216349016405757047153767374131135064321853012748914141336637897132396434400444334623215453027763133515561782689523605829857971909307046301838683946156859972094721716310568271014369774089561298303596454111883740880093902500740624928544654597116137960288959390597320437069406991804797299064975230184293339162611859226163546730298154495578538780646076457096073304719190448245970263339975883427197636867713587456960213785073363614645708715668191059285313148693287542862465766246584977416565434641112873170811132118776444517440466722561776770254820807700125387138236287858539310938527272928171933538477372631480577544073681666512504125348272368132602675511606979144871385488405849765045371068495797645140151633872860513252451164164860154700526975949986537245783085734531674024088443764253504556325067022294714429529354437975941188265574080844770823781003355019708485267364013633654295517014820135973008662811276852897477083870163891016633898149669705785644746016620279894763815615043630968444234218215147315073892203286245898061048564709440706974916550257388616653604655250152208201748873914065268192667053499447986474062700918017434769889151670731788816192143072523447485887071061288504984612552169082229347083767614739672411565119239626977072839753767048432755988192397305131595151790663465000926737263401061218763408035384590692861511702083309622406201172147586845562944030797904364587086614721899863708911838081055329069230334401766244510087804896607128733452537204363309369172852616341896242341382480595814201438790976586653325976709652148696273086789794077779734050884423637829258723422364739071409865014225832829112812998546367379028539987608019420698917516188280621767403398174711510944483761919225305857990666219865030201259842120990293214738534994356236861642532956519159308445673425495111481015127176415107683980579868347685377561655700245221897087761172585428405470340128560403369047051865869975533933490761724544079738940535002379948807468448681131118930335835307727160551079417257739843712656365724727551749792316749124245103563057941125334767289904160376497803084716706339199447811374620205618460426795853153142016518001324181733243692353361693848147858093840992997310558578187887662008686205768542653340567114031893686641999462302348160877977907204379359704402538576913129154842201228944266035617855135247138750428755220292753991724500929524074531780057303159504278437499604706742894621806989711611458462037292918124265805567821188405663579362416593553420106625557984909084401201540786756570840772437372281185237656082622620792032790959592918402295808527142292656946843927549550050795328626527661083970400451098954775978721954409600856088226838180646396113467042822868404806457651064341093298414478394482439262072743192817916176978416168439897941524220006415243927350882075864800507274465776443197420482144491563582156046339439892469432266892191986875199001089285428534607817767845039279420784074454035154221043585176830889853813547872351563645641896567943302509199464263702326207379816059851789736411737468773249456897636761000071200039238610784330865510168959535018373053658456063975277946028868733953330301888910739842219386738675884402590209570189346082639804725579739604092929498463039384809853242666533930725412755161514171984943354146518410008299876392790190349929780590173504042980202696062497062035325313291566393972608943324812256099617389553838852257151381200526496012031745903989651761051430436091151709629599896502839517766967909780433774554849511197022987223983871614041083463088615172655858917872156130974363022552438236562666022234026910826539887496993771862122048725998839767596760974949217121270160143108598260138013120374170193745687222442682235985914933271473803015737929575280585244316741840535526085531087599525848649014548030335221695235654046148935457876584343754098891524355525596554387758583417245964548878267551307712431421432291966634266912835236525650479440232563600046620534614442809750342650380468571355967274710219157623200615474775408927080198635085680272242821209548252598147892352347798276238514971082196223604012723229886165879285455664013478777316235948222652485311046483540898394272312225898931958835195777487061827296282022202111045623641065966150269103352028289679437735916513378750132661847970185704198757978500175792499990941631074470823553410547851563913863573202790915592268715205058500283961935662126432107864502269259192615967933770337934979655219102808352376703457658004791989653175966618018129034059134411722354537206798114648732253991696425548920754714988257702904059667465626140338164085791745004799803992099631245518527420641651630356887268269643697060689759684777879064955177583098828889124741547019092898589191829562608569990156840482827393246582040407135160634442026924236533242733248444158857499583226105792958839187975311518878638097278449499176419489840805753593215542012396201937782784377244888952743610949212713609798738991849784978335686634086536537892459048307732963343813382077354624735601203289858305409237361621053422945798767284202783718163202949629942082023445436193177455721667893124241958394809000296077979875365424029115768804554287206970952853861563808296953698003019133903842457381866157491811138074178265317718435505820689707131559715595702249188538841208632076787888172954774980821630709852501127006993608676321210142038902487771217609650867862421479531073403793121606569794211467110925757353356658988681159271568492698683986608637840727534544487759693984465963396158558102242216404483327679525860471169833260566148589307002787289110323537441939280747661443557252569637285756905770567250424406454574229422221351255075364006825325526852931369247066721603794873195143440050115690302424003601739199111957189431783630045015939572744360300478943127154657257791699355600813977214003252364450113450828305489725877770119263037076110669902370004103535606936180192764696070574644551425495454157328476237817310634124544516860534902878951378530530229375127257653952545813964933454149733515140164730153247990463865061081178043574363390706630263754212534886700617429341832357753228650810977679339501735261696709245072582059561379240407755352950346546940418691264807348238133003345197255236498012748964553240224308305042377923351212671355155235351365409063089423095990770373114844647060101506449131671044611443045805421244936846154162546172984466954553719580578573761485377757376837199401642221335582212389402269523910435079375416928375921243753931291688778198916462548784030414056004658240724109344464660979894429452228512436038806296758708053683410379781782336461059203791439553806803512984636972420009349129223126531190952138424806105339009421843170810406115778831732346758847001339818911862212839714563389459598065662909959468943091058565479220100529440768435618222832560742266779560193493890444013009472901829053751472557916326932634470227346447087499275182837237913954423824484937694260755460438494802879984210504896147388882133385940387275814841929089116765403721957166616998303706474345331542612036461548113328908827457275670223318846948110973163615015666847879924625238767405490243210630046642963383828501509167324831250327064137840410122612054266850694863473965134659965029301165346671076472190966756987716878129872346891540628040773042360755874312958346204988075490142176133419816764556825239940017598916003160015695133654696170681338178231327555984354750756648190871794331755527903206785308792803707111937786710554413854334675840992321643059145128377318209213220596632821254474163008517434302302619380169413224614291282603715214395282057317885601669383233136847023224746541548972410444304239906795166008279290411859919692452151847922505679415861651496483885841530735201314744097929316168132685953734001482472329786417822816007302648245080135777761936686410565603384421410293178151016318193085698067208682270004665005585108031978309459674916358218645407755908107756233706284105628867194444254174076290955046720189137234133805456056516016407321653679151923735635253348685656843712084398974829998537906248900972301291101785979374126453781631668144430862273975405836103522619155099574222190498981830823049903464609641780329244929042672209798982896662561293083701787492164365672685845835167850504838121024649139579531670521221557767373660984814420489522283722961713720512174389679967258140298620366835404936903845694497523324956850296390447240023629346661382029218763731754953175541413466667019139988866688026134716444143999253008515093186332564550215858096592929604929508974744010286727134945228282099250197720397367753934459659600131663778095305894953814160706673190575665966226400277753481421632002491517955751605807481635577946254912178495441524787538957043635733795366849669525334581239141336783213439182698258997361747339983145733631691205978767029362786555617398304729315940160180736810436578921344578234891119250596666122623202635775855101408965044063406503286270356214403757388245614155506164962014934497803807659396535463822861318450197885858915324157464700186371442845049859988050112865083479589016294479670194361486657151203828044623664033922833426057069917379674191160756042416640690763029607532259021390594954935530330635078560231415806208871462534638760856245650986458584035521156194896698959319724056294987023511665931638307020584893687266870303235377436232044950861533214080128382512482901639359820563869248645641403485398925502968923150786240423708850156053362802981149522298229329544018555283803424856991354035085367780160958035492978692176936410537614564895189491453413984573780441110830554590086957756127532744949709000502903249853262594638909989609926778667636303766958495290914478558777413134713934106491539052378822099285629874323579803354651966507145009427081366944289851135351078082216838062528864730647950683188707225548054029003188428451572473802068239957801847649773250797927311928948911404127483855313329796641014508507490471795806560591023320356360156339399112650526274011948410691753123763535971738265683899788855593499213862131503318270755885067180025114804058847484832390211092560303292278941782852830481849545267332230839815170287642520757847867523141747167740919304791292335813217078874580440898880472795696020642496794297602030496155108734617015785574794151230984236330998353522515251140210580349747589645987785681799830473407937732334012243063724178224170139729625657316616238766815405241691347853237937027412714991652537154963832486891037759676878728927007136883115173807723393665559948020603937884351406204393196741522291219693311865937182669420568329953000392812004269375527282377258120132884284933637338679410676889679953900922023658695528510830300083957137633007120870730868713255147693770363771525014660084912067102912523130289907390986711129251926357097801486793871934494641227534399207454238819272519027199080660983448657544977766222030480304469730123333098478545703857712378719245018393662642205104206096614267925431299823242821070460705556356110584835597676195010741063179106792300635943578452088782716871761718263169941287873174992195339357213542899860578188837649040004813625243556748269842708659548106729184773611176820898117423828197194322809542515048973352115591575161787699513676594756620462455759927084311639824487393543244783379205265189612546530047117716814843860217709851554478388537366855901368519736086693628112786729102677484204593371771292450304101337752493822082760402745067119438528108396549070919142833621934152356220772856814171635986943511883183799893183683328810805287767151913702302056645536612612382117352655855990011283243251199849685987244505019443674785628788239217113137491123863924579883776133077298435275243576743265198954122709427024779643959556384061123146919839018722613769776068244169395603197558205290849834315387979645962789755170276087768267996002169786708142169022763189741395779335475310075623394365369190955520463718544483450829157248898817165554910978779314375607943890090136598112207149375487688201323475697714976517329005297411605346207879529424742775246655283980351642031122095146522931173255997359834121490673573088397137238616358873508641405875931652486508774222937634855182033894320927824131536894860613805350716332154144815025522446914858735198658866765217060899611976346440063603552623646027932495499526050716579307087027787254381038898232368121213949962432153036385626194485173731452733233807385617431127234706692111148756492043154021153153228883946965351238318187569788764625163071529095511999594784238521691932953002759770510078129310826711432983085337505368659894459716565945515197763382188111744895033888696078698279963369998126759346936006257900917530442817584757137466365446115420514853711690349866216977382414356562638562358057972672628654244432569833079459656659925590922668044522017680611550367412249889650647032885060919923899009825716578831236964022798866784150974847563349484353104310496243789837178494159945244676358535168371423379071669514144266803849858935424707268470274968207775832179987029387084988333982946134377799000043252397451114788423779082906934810843904854775037496548024848977566615129026038422701522733729121227083194093871768757802567114338142756069677962969440392823247715724123893619347415337975418701811622527068369430194599704074983714179819559570246619680554206222294034716119000531250999996005213897229484301610387052567939695487567452400507879567920539556599180258514256827796573979968974274953293900108017698995888581642949491576990739238682915994648493831281371204730999236708707485362093386765996498277760268590440935163009127164376588201830715954181503657379966593124454963158102375791356018131434752217798288113357305654013711339403951123984301443662786405907698298982882986682062090058171020817440124217709720549315627269132551769101788436831312772131053720233499289026142511647039143769783989760229219224392882683827129046908888810310317791418285814097771772479884395123684823875541910005691360025866577637791102891431225163131456054288679327457425268110429674383077100895420916896964474742419279564118744708453021182019524790283027809713987783020500655824613534216735885228253637614605174054393514394341615138809691508913369717475659954595443926136707403255672439669978497097886680485662154140694641197135215439457868898797916985030568248946009997254748316897088098967063289186536249303703638057455787738893067535265729975052085257356505173142402910740295138090870136638241442997133336296021613917410881180556086145080272143161330524345944853827345608959561638306274189272081164533003788350587255817676387761602925134705289446036053665003045547122424069577057592055256086880107481658268839827542557083995233055277569916543758626384407533917459420036013396525029821246298472317196768084741482026786855795001142893050456379984355465571252977202360591430839022929247579347076446085236794516323181413854270872516850504791152230201970168411741193282938022598276487786621215152595564784215473281196314755713857286712786849188351178644212689396611793647313211453830377528928105354199969026569316348291752894245363912725366081685420316623629715149285100959568827640362781310482310475891703869943943790204888681008910770629180736756359553890229458017524946589703324059518074511089224644879957802781894431493911078100348855904758883644061629499619754807738533169642934816267629677013802209471790676187482348930527606229709012011896420796456748774693891489824051094260860821696332855873948039967728785877992533857528910216834598409943458473233322359752000752194947870718161954714843274254967805897970192415646648236339935280967634982086432386505769544792839966033488141139324035947963844769752111418796137055079178354311758557738365999899190269115415114910264078146981214697329874724523765125248954227102224477540079576599411424290887369359600877550489814301132199790513231005648830285168509899314594135310660314131087653315618288159045870351407499766656715907109341146383898088647611862206910989088544932861853169523796169419237665252231261827509620460637066330723032303100983753888807172779476845462160828818913550572599344281592711944174873111424450897893821607610406807788315330669123612376872905560943868154585474757509512183407091253468581490759569750469798301962498617607721602911170034566573914824098769209593436101192590106513220999937957530564937102399571043101232314633439262711032049491046578164541344223559050483236741653511627815688218351581533528797774237409626688217009471687062938334066462999098142842512860899358253559928839656790415642695927042402915811393771955827036856244615245507185413498798008106527186701244713593906888394132202407741867537299482700778086058754034653092906373110790283030204645967346246704546398520053839381378102900575811741005990731064511421559795630944117371362583414081833269217594316467104563433364922526015513540620269376910465740517802584579028069767811760384274954708736801101427948789356806019149512725343500846420351228375652896459551890929792964957805533459759095414828975579578974856341823676167986061322150494781725486857003274578351027467816934039835333905748306717799531733327916556061644282549693480986177338532937028923732339521287474072301017980713083075570482113607872811743600758481553983114425952916937223908739486929279807654104060014673941724292284670157914725405766861135140566986217873112294376807723059100168408863732655417537037102938990588139573791781929734675848419262089105208696875114583567309982653288178852104669209293533552279291751553869075916162000704344305498538238960623375482324464506998913962807412431516186930456569948569944695102831634647599463089444627825592902718321964949580729449192257814464072920097414249176472629059368207903048647257872683585633076023292299770808133808867246758936178800441156692881810941263197808464218000877027441591895731514997679812925065997952338270585712146614245179291031930939555683136149521440687187119831819150937676215498803261039369057924125164364447933574450401055268109241387743921159155198360617263043960750103917443468945308170051703165716549821931981838797354500594751489435817725364040190706447327839561036067364471295242439405723239427605952151418443681117387385023701905940344162985067503213411702083288589030042728173347407915977987899283550234395779474731413528446127288545706570804819455250798684007971681484190190963295442991712571090800795958003085387952329604112154186491507694838007831457732422455046645165996577242867186178987439035955540831536316804193807551765402623792402713987766682157316751813620775201324199457804172329977158193698419955565583581463505643306477409672332019611051979765012365114389361389835177445477813928741842168551976194249444313932633162539433199668017497857343590734519063606144063608767334046912424595758214092244155766527329822209738633851440132810929030520669143602397573426062847005781934623029310262198569374537015241159522608529436032846812895574804670297262523653171058655361320730957855563256250028424720627965815632947138650765786176275814125084095305110629022817621869357430565606021639850368441646128543754805890596800273808529411215468351689175284620680866119469644181316198430814336641851662454117136133242562788480005322722867277043317065366501470590208636854434239107945175003995519135126719852052498052236280784455379383038635354570415624290692012691001118635118432682050048841915148074882691461735586714407099917965808811258763421202700025317220822431729658366532619230243016364592350215325575449724568279558427066665138120265296682454132634660119849003488642581188534699940467088513921309531290864144584655911095310832663939394457778329320264071192347654915797735294894196011515966809581064548794823003554013294067303281034270031613046487943112648020787543783393021880322013255844101383005696332291580677209984218335535726117855351237212283353851616426552384366835124937930696395106031983099446818916749183582495832461869832363362377057170645592380446463457364577561965654141955870536350430026933387621901960011832428747519049424455458518608365951763218553277050593452582695741323706791312413227660055662603529913096038280223445600815775056791157351540402646259505970290331877924149496455880164424477871364660671841311513612524888561630622840907705212594648990872180927972237874959345144681671959023959162434839025015926706283150306601454441544369303194067345314887932160598145755373652496203707044907398947310996817248784818739901809462167526711892800304385386699017764728586170129915112136432564473064481276921084284415947266795343882075288861684344296172086725715057717409411947004309687166700909134202258990908517758352324256072266481091109821135587022450894768114180211106224538173231036920394279224281594907659802625694490550449190549505494789769211004821000260282380287528663869114025314537114201514635005233188045065288992596492974610554902862762229855149019144267207400039055705051454608026959138558532380933723933742452845504088581139337375413942229754693807956852770529835705547957385640164339770758559987146584044488086912046388510252593742991506828120093703436068941240727465778190924971061718640363034749834963006119402621498371735285455101388669224109424937715986641392130407526623688887188493357500048515982306436832757643730514060197422511101523269715329545750489590397168397669765351489226569078723675650104734612185500303048448110565803646857062433138652566969019135899015750427639730600879848477372955693062202821171033409516974495757641722608250936458842129088615256430388367953502207493535309603594990619136541042644548219155264413018481972692612151519208863087193274404791965401777830454818694088834248834630916647854111967847625437251449260753050863035007721910791026301592997840777162742158365300928941187804571611272976476649560793590560186829685223700660284725880633106291880983102009729986581535443489693284859873924567920370674443268903656849291477239274750358079244403733901715541745904576343300484940378801000374252354586537005879827689980483881312095688710049840298407319218640874661573000575543105524722163189357070639472598933674987192164856671873146494411959255063256555793792171812421644982010329370436059113423025672845550701469413978321620439242552633995137907984525053268866572313951610880147642284879712739150715759901161165939750838520350186321378013478478087364823185430249951339726133139538338817499626455024924583045759179783682249267659258798857373947780668218267470122134669108177347368905193428855685992742893283276781442021888837495132248718204190406685362474124058960847163748627855423599029642188249542086627342330764145633362782660810307900117888916705391158804699081270231793387307873055901748255191834436453801360421045811155649723598580475365745717209661074428165723623949648877930111290260061332873644159743360820432839035048291369089523028604866169848703403453964273749707124129527536445934064817703876448245705682111691708919508309566389918834034458741868321404455838716166743689404512286913823627523705936843112194940839984452563666790100437093922192443098903850228923939831807418050858014868764242800439328100684670328287335561460348033984042641467975933014071418846440344315020244099986205910253965997326434049268509872312956910769274881428734369443621180870360828874081978560844018798934086915245893236393464782974154512897976551525930890565594995370285734195262116011994897767294722083506554071901685808592002073480828629845196318127910782876939273350772686369979699710511401222947615991263331468568299468367385248297893978173091694607043071542720227557128182108251779833210500186853108761631758274576660173543120476208481020181377354873805828493222181774545614113471660857705277479315806270570007395777822633999806512582570414021221174011514485593034649334855236498932559781136381542587566055320739361469802729320070049473190633097458255955315034778505949568212248786250896405007335942227843580352829871843752001442172960190071498189130142004012426606778218625623250820766142552416747933034574487379982400004019271617048871934506552504483192428144463120157922537500285465669074973804074471702891659073026709960738413668117558928843079701450306717269445226122988036416362953411873425260877422376703841895221731991865871284681283662215656025445300371685707078467474797898585874718872789849781496245035727532732715049866248538201422520623431160240214708008489678909201600470215933578703052606652393108886701637491976997697490368490611884556971954098773917643346342682728836873667660653895787853047297671054956827873163202810537489457059053845837402126474242796147212767510165057190499771734213304767549584054552475140045579363248841482077332705615662012388829938003317761924354740967143946015739284507855142535264899907446923200238299795983754009640392376541048827427349255228017995066594181267666712054002225839080408748573753800709957856633361825532069531943670174101333811306641062151515104118936835471288628847022999441281673598718265006607489992771377656926442353529093737703620002827740579986460881466531405286146528475348573539888758386638722259420969465914123237110643907064744547980661835593780316044797084553706660180353025990144990071964404694638032153802251734746531745348507320143914274022210656083861993505752706441614007171304635853061822670438439745774348060924507280078115628310412491000023134998134035882469303336990444938857160169338534155754404507404250178135100087525289284539449349465763234204028365648847004249606110309174244069035057760176970122921127058091605520591964253797773525269680269322925782810831299728557951776026419706441689683735784013549033941526416452724000004656762943999643563460111596445164484620771220069217804203969583759871668029377801503477102733964736802105193930476537085175347557667233287986389330422376577342357821166511835060115574809310513556267538174353562738934776839773689733145106593812973921819191021649242034760436558881333948339087455447102357908975540298279876719615930235586851860104665923758322847502295182417693704653325886099912320976305027732036371286382483666040858216541531697656630714149231424649354791287184191940302433613735631540895172289132898116959141611461460989162668622333998782243733326211736594383775373732743573266711899543025062908993066062417579294356195328742313798549815656330258129306967262048606735999808420929957350508740166022800565036540390174829188708901259502291619644285326596111319135734054013982121278488222592626770735352920004387138846768858499920501456210069309634327743460029501837930464759710671714514560241325222345254963618725565797985798752334499139233266461376698949838612084928339666248650359913428638157972768403594328152059900055937400550735761497366767357683932078269468370599537820558692801464727331378034009431095576862028794528809894031761250327567152300739439559820134146998999871606912104223755173873199446875256564181771124031928473665351271139305746004510011528287761599899791288454702834286989909570420311197625775780721562002159621781828844581615943591185520615784619968424887409758219692485793838033212311273312133049830294499084229641227220162670387293621474827622463482190159164421049491466379294024834803010842668947815163261376848202607065155196408905030272418377079381279393014904331832578069254261645459014263245250380115111012240515949356493731756880756577451490704007505265083416429422059432729384188185304035273715255819761571667473954764347087300822317197559410835254410800645019592938136764844850571915990212376546814860243386032118492871566903330297492035955949562006590671336490348725714672490110544051241666024467070099856011015295020651734833388564311410389431134851948407887627848482130865723212925487909248489227357364590749493862680663299831318470093728688397651128274383230448226256680106789038903707047711660171457449612493651805923622404506929202516125915695307366446692062456354997083177597808663149712263657948741822102517362497094269125569383148274788280659311834772319828951220828431540308746735225628602743360924526233150597186006528640678920996396452633302632846116774458614779045937095184805930759877567766580268523732936923411619405981436580267928889751847174884593244399105251332260215458804862701302829178985856814562824111891835762040623575533977636384198861838455427546603570915798197102629056078869813470430909044553452089284809094734767921453287940992052812754085283309553652986184538267989269681178727253881661886179511960135794863061450583442096783246830103241376345997249257806056444630096237253884325735139678859483193412924021098933359798900593897530420553580077563791695250240565841875910061342327506851038469270169060148101094806262479444902988542033285662531705431452878494103740207165128929872446620284524126205655911636806645906039507156804308610203637015323789639522895477765685800756235304674967085918798919099669843024884184598978047128882030864690983994271864482163435400814925556328204269837579945307958053238277236108942923405250530886867191097575457201084845715435642573045597506134044053956513962566832499996016767125340647474932433077602671719803288199745889722709089124149184944536031252950539579286398653970675306326611098045784021092867571551216583174731783675343870006765348937798040491377727852237154587582494429286342729375468992638541828532095807435012777613995157731671498738603957691271166516757795744094220183321592607813387078743249782462503880526593432995260288579609587776875232516720216406397391248774703200597835283477794317477261755626428106881450164335500894545422384271395737284226195187293623143237979834758372795383580871070541975622538567364768560787410831281290825070799288982707013851704011670503045594563828996105363206766922209110855508123393083931047655223158038401891108331135546951605163187629371756498143202702845398790019977459581562061167836556572726211601771026761519653727274007615047743202461149248734986605887702660011848242066074306241501575929172605486853614521770864351452116386570424177355990134839649450592866864463732966703053859347600870808465322957416195214902943834437725644943035709476207846564914624677017847943660724954345097174028573669497806806544169829699327884384979090387734089537024335579097226351769151545290950652476227129143122752004127518114758416481246516985067202526306224315068359243312388586317744613046022994705259691033791295478376951226558765248735831352540271827830709413251168855541676818606023471740789694787367403177034888788608591658453630297374392936696907596634003874930857225897757741317631887166540836380861676286967926074356866167702260870284447213007082484352893220553295117742733939211040749902228751272984495162992069759323437811848293663913081169243779365920905044484813678665591719644783590509158695480164157050688240981944650308478858535938124488931402491563964846564865938442948648730230425939541599128278834756561022785275907805235168538500756968841688722402042682384248807245872060462493787835328264379343083783355245505302260296580986672161386521393623378470693980475020136348415150798229047294331954572284096632352447077111783050379607289579900920346937142068740019296052308470741718436672728233997504340398672606169088486064738050433772015016662339314536297931869695511453023439906046685606104329037076760735643666667634694765417714121964052005516211689665248727082704033038375438926314336346081829963037899976956509405391516763204622165520916839688892975842112361437688157880083797307990030089533177750322899899762151908162658621970253477241162165872904471269018004665589524908861410962407449657589330034496114920183200664367208859771450721999672929358108149365569245065483913297850018175467016044128977041062086532478732553374744361608714212088491205978950240978069769564796583890010838066368053158295063875039043424149836377336582812205611453972449465555508895863565132082943321789037204300038842955161087333317159894038310305641593026446395352081219286654766523781307742072900966727813369122289549127099831022526784246385328930391100897248117142521173302394444444537798204983653896269344038829207985584890440506168927233195928736455667735427776193412150879053097414715097137493351707366040653337896059462912210863686626588065000318607166214411917924361469478766244853445308040647968833577459691679639203344946068508022990963032283650341049633218539123916969715522406555106245577533315168641340496476678909360022256853109450920655173104346634933284105617225507535293304615005749181436580561230353435581737423344264677863800016430768693238605910261451110187553150243699752196780418881692237639692258030831490419083389920037540762429877851775034275064525398305255164197984154670365130792299293810639131600852153248198220764288083085268586648564185944293648111482708087344402100870026290708149883995691493535608639854487352980360581436333054123182489496221219261084238370650679919498976031304364897570243461143956743224949832476330415101594270099705518799104246878925647481606539027615407709633021618750737328403044975653361910070874278855049160931562511963997958981133069582116624437975900871675048216083422580251373954215130365733471717788899738609793476620488342184862738432738979522798283414985914885226628067543680866843430048207152319533403723887258284312938874921854542971271294694050092222792030276417090673000200137057664403494646173071867242811178687889037079150001354748353476789028707188411867164700594760757729797783914956047744004345169665408232035866608249154867745934955564761227183406524257196330169986453406188735437678597307130013690569341079509929335298281756539289291865852054961074618869795517927913593088771977885864661626059734741870546090782664374741350734318128659114141995856306460458211802471451467977257208871968983738145118109964532774127173358266202812746251871550611790268033169184981321422228179956674051351649835462842125960574634163460099999938726043508110057772513147081115530866886670452190486822580073323625988423262350732951313783028536125860376179794701005486373128688837421560280739802921527248796601318783534821142961680033601416350345241115993414883937346284721496246350126095496697356745916611036112259781419480779105302720220462898371034626461624059263049533410902520077952503591120505017014430213331701703137529336107161934499954766934700668813386868354036233086495354250658620818616491200274702462015875610883734341899211544476257858949892960744496010218908890031399384948356092288869608631571276420298756425675198095136620215718146617510866824551561060867120446209455732281829351616363880760939173898682308875759777930785553783223884538505044987298771905369981945272702945513276855404355705816206124430351628001316641038905183203806388124605549703930884407985771532684351532587093776295264156467574553162913040250940776699792557247640624626416088153701676819016735931045482770401091278818956919127802451188690483834185953561247753861939755988183333147846382371963384306330151215466258371287459894819529082188594989077771535108526685375831577538645530525586100911532849790882703038194279023346050068503396844410099753016118314773665999618134565240996062694243397460450251614870033385548585138117545436553804311697761063039037690597919748831331744209605775005577212417070794533740888363033842471517482005735427535851250520564062775178170700684492260031640024628915287232720101295010803840867292669267479935531556397366280408593964940248516688869652894618426613987559500498047206823344607528504971469608564914538270589547697058728620412111082714253465685146859004588300604013450318195690801568367910661377497263393594659624868613300700017144075342001843400687151643762289068410427230517345135800438290169660277101175894678597616534600962405717671609413781924950864482473314753158436013162862017977915279260273261342452153626936373713051534405853268057046411720032413852327993035936072710258606740899070467200836281492327306819548605312942027193077435901066594133807721974609902350550731233885869619118947688010370886328085255349189086947885472067784191454809073412050537264231521501313376247748255499318644554064319491804244692237267388012618224643298393160877993554902619764579284322173937088715453061436027979140483605094650515448311336595727270805786287944012977315201399467906073240532915268006614246331689148896503978065579753554764918559227927637224520716934459472733690741652449913090398905895295235359884936708332198525495210905649463388741530153537886127224507875601807609887894963348603572519494137378981929657655051114742335090459615899841335807831447762559672704454423780488501095953178847664800502202022023166210038115678502917770426098143207322036273687829078450808634853274474225398499747667302514297044455391170469582194642555281056364078882572573706082671396750863506900750749876345838784188088877770812988210655448416327084935806227360708354716647391795507122137838735075046651530868872471864623597766441083651037431311723701824727479962009148608349475572074352099912846862189212702800990378516943869524070936733239840615504339103499192847319354287251719414318918530011409539645620425136969282045552820733395830605095322897810901836546930465626071366606044701054827548280445026854163055097617967967754881975623592059910474358720301201017764281600908554008508179038659086114550584150669418057421484490937262282175751987113718278513803439629802615339725544564224972457586601073711965485847580659741877414673279822404746919946668650594945031642291693818067769780550823026617501200177677662530681766498864212059667790103432671887227783561903503336537490062808866443309985561512251525761743158191927259714645637406097443372534982813650877931779609499024262476361122972161147772277761204883555302518127254830797278890717610905932000500436335977298480676704942836842801872076021343578610593823864770242680529062732228052200740037699426907126462077256886997245493675204229744264132184254355665167053164209130479024130972628634231828493465572258381395549409248956930089660288302022126737300887434816090585936174570249411411864016648170791895608767102492593078206251161759921542248859609454088285564012595615171410238465250100191380187987059596702486180463290414744488635326247366935663273683698530032595508230304885911104819849155377295468287592183595718915511381229759162964277175462250903773822256524570987724564853041126554104029819627744684320649193146729466064838782829641967794913334044444837495069445559144630403298554148722922398032884809943485034733601936235604756459372992843734956266017742983230644009704380741017811790033648927085549079803655953489468125025454919551188465355501808375777669762532498259467289188163895845041029038365470890727491801368235738897577957247164383894386524916861848995246317937113977355717585245708082176273057528163565634729785137883835024972547003619708113875662548791113720584588309477817672980369064995764836168498349141308463471129076262090298666415244769646361108784493437026111202871544016110898484261329069688549452787385783716426457751626789331514429739394405402196928158266292655182621292251642086428156693279833318467317080590491977052393995947949630942079689480918008143876293579234942099793950124743289000619614009446900650358739217942049626483125840146652366075380796548576261944704861975225203825353856744229168528550679725309295780797762159579130141758721582803162290478268635971214270811529868440086806522058842020093236234681929190431976503674410943267334991028611738605746139811558205050647703854079077769939443334426257096637470648897640915235350583808270469098218658215851585514850561453007102362736917634865906496439351157402072017871255319108030479122376031659074426733188193598278924451252552061829667464136421136030606213180909840435457473885606114010741801619068511544867754951191736464073589033623766990710563516412006577971437478702919831675718664797472240220270447735116455589114891182855025544790554072402861068680029448503721157820166717752282888282255066327786962183984036642637732367311782556879483207297352543435352996329653450066952380048979243770319913718038780229523290272701046091304701795269032109593683316222489629528948045231276814995800799985927413874184181514423431202963650508732204736850491550004905164747610361069950321791643316667092808145532230720687023988514179257283451608207417587716643845902712880499800701682913300713626613005224987507410249105970186219241243093917467463038160542291920193833673264634292224012639224189613093410848325892468880205672131664695977020555025156868300308570333147581748100927572203710644720911636461785497758899786915448553205639678666057936062221191500559527348195451067701621873249301197753782982015200294502200895666196292358263433606221456507759176820492273529500225585798531397651654827548802708321814402656813395612561611308751607335562160804634266032428199696067785542573024517171791085718807296518594493435600812296367025543395412604419130665414206911049363441278697847769646924551920759884584650212678006396829451164208591606796863939621750000007808790335978972169789573111824985107550218194935245040162790039353731614831626037899912189843912967141197122138401479852413552700620685954777343066279087752484433799785696004750294196981971627026846138042834373667636750106334997940775481309408019768030853818831758908754002333027907796822436253507604641618411781576351935973344834146589446428000384655515371186983638592996470199033815661112655050960835971908551124535349312970048002012287911678608604751041730925954935391115579807884797053462995788258554069242446748518532098664817692762137914193410777527700879633648280651366355648358210206966713891476230731144664938091182390596799703724933256487784623009393747390350721499949016007504168263186231049355256278039454906900529262518624251992524758209375946106350857488606276813374238897132810307427131018468511520748016653193001894329220135424490876319872656647510099782573329361999631102080355529960596740552186561240646705892467654404291105378178644965083683472771920306230720717982475985080476441246932128635595586846748688652265478436301366842677499350495766149219357195671399783358600933605853966237536814454261307038773278452440939585649154966025376570034875931106840582695601989416431481534411095291938003717884644308273789386915139994581715679497449859413132251401123808404850661016215207489411814274471243377335566363165484093949051420211396943506124808865275696573020459491048211279992044952396254667014715870401413210481884909976503799550358356323973199263026429860993963100169015077573334854968325428641097481038093523684098835380934418803851291661230187707179274369249525417115656900721234430000622735413299676922398158512062913876197212244433828421804137344605422936006345943942426249699244166181222478120527165449119244268832595881545872065305894245264789572354407475179590399116492372795472172521601090180092284296669511937409868732894981659025487146961907431908609196576951178558932955327105082337643388859023490478162906482176004583636728520435980537619109846652977808396390956184242106366427350190459380875509589072614097356854559079117691981954630098405360707714006950035239543297222467791031916925850202516303104379681613578820132145444765967131710199424391849419675389680675464083703949403228230069303155582898003321024575939723720896764235069415492785795167605815852071596699714385944904401185439777894054691078641726209976719785462846188017273621560958048509853447262426953496724008564441653031901187552571781766863072561245082530024256027035615077447961523836948945899280755086601141090716892294527148222472065067579630445631539910928136668848861254707481477835753383136098964015165376415711373413595156518151095087448363229538090268238141348319438937839672688204039479686608783619436079293128567292277493934384428548505413132194275787574595645670192132232493525264216937168305580992118062756805408952150586341956662860573774230880229769474112018323731000942966878114596164368231125022544106780700507035330926254886446253300940159799577955661378469769123143780666542320178400218657231876334699592049413524873823729265587988802708919505773980229846161490888892443589999191440190792425180854495045165513905163144056421915022278783005245703978764048090563114281734318096050455399461594083404426273109609384825015017113719655788291286258776157893275044717669879585211649153997282061250539382842418706340965602677999280618749302433682211528115670164720104533328164347840776737608760562624592963777475833468249729241669360067411879125629055519109541502015125268887908902804439879889049004446609198473824922150007539413830275532538676259650621135202014856260040393664675455719788566726660024379981013739982608854112688939303072229220123417470957935868931198531785178523524046224081518724468144770891593852118084769636364144202024291243710982678822018576030229572411295584604750147935294570747217614799352466311736323824024760347933251353839091435784847997271015853728029962935176516687765350750261999558357520641145262399742996151754029651565187484758834472418879342783175864299366244692466662725544473034771372336890456620720166963861835087094945937078592381856228685716943314915615129984959832934119400705862542615482275502960447656884440490103391771531760591512764168651034700975256045288803915053535390255865926526620416331717353384624997100600776883708914530071415801145859399952972198404059716044975836689143894224969784322475462720831101878727568962905598685785184721827510881222469827569102127840002615931799105049609293046372809400198055809177120944301790903325220677797245720801685245994887156717850373225236213893583066148371712831249420267745833296915878825589337397956890514284768042875659376939649243707742064728353127349271530856384711846728243091953350202249497280970473381055737790618242283477899462429563651242405408253675123568317541581395139931974335474513440757081086550297958309018546765826082493510077184835349663039257310065560870108160306511287810529749051632759169895645229108921683601400016779144623377882213564379132854652539819577765688304268231880563560818567286336450893727509951143411267088877785804169192582953805839764439014912471424618544008958345806348062205042272608558398609190880410491657826563548001621732402368851373790349036338622281602051311345607460226989967532502445932236087452750936804324307820107935226731520145633507869989522785669529731449728888669495087865712010014549764969600211055155482599854017661726332774296734773665571693412497873783798065638744704980118230108189450104258280872032340006471471202537008405612479614881458760002269638444440869574315112760150427556999363128310119838883564634627970356955859411291788331949698997181797896069258973349698029865313354300788545894951589469923818268600759933844370498731994457985465685662656858081233841937464591696052035364777757930551777355762093722903926771949645410831151778794912027626203500039327167835061121874985771164311677519587267157363620236360634588882311269010931149538327931447788753318434182863609320324850628889299155373678790871259180925687082057258128481986668302428653431320590722808076072611491904425606174964884475950565976026347425111314910267582699510570432269519725777300243551595996574667417677848088291115706518805417374556575370867615258384420702766450016180599661945401250526311131889899740478012839287908284513617454992787796067378951817197140656499366491769811898772444314673605303553255094583028661957605346502450418397000734103403226101979191760578400068233805381406349018256574039755246177188518958061590827332101913137446239191079287921211077394689292674933706568572597733631128216901435051151820166957552657571158041297186326598549554066004045618470155542583270575289192874541458970311005023013625672831652686042284611617341723048911643491883337415985515751584782182920694013665262371973715682865472788793101315861409903832907438616113102130031132201715991780600060183106596905124304844549658344952959387368138601344372659179681306104836484591352474536700684452234362787368627371794552224890446323812671514379147748166949992743076945362317040569899473652120243851376075040363516264767101430754935870669944675624906795886367299955264656818851319613025477423795188873674808158554745556633639602135948088936997101668812484427471452617453712653681096049133623597194551845548609135181497925204680701502761532829947968386134655941011486701637730545728827190472630380424447439375014605963762814370425098896244203143669783524397409186341464885278961355913268625444972061788584644659656829032363430593289509719087269332194152839487240415882431891040028671878991458871104492363149840829159031434962994969915989637278848435510527791597309012577951374316304527980256273972172710238861299572512958154201845881107570426193660774922890347330632838596534957038932622966893785750112420256856217858457017612807884107689084465986282278526647278361284583241142628362072095168340951367283789747968397537368968188718488490808271185556305210663324922087268301443679769141090819923700738151579254518159676227363009711184681059345179287000837744746104788446622905891950846493279102938653245694865882746250418185932772257187037487911749842088386144929624627995850784107975663175603472999332102369240395313110442915272970921996282796637285773721032421063534049563453784508334736202354590918549663068890690881550347258098531927860283686398381783678355407712594550472673004012558046840482407679944271671706294287658837128310532281618113823169720993179370423989299791972234259433779369951025511142854093053237757752406562805804757040231572396341395142302353470758526240542154847797108897891254431651015678284796198419599033056086586387382601235969024049403933788156256993186970349953802457683047540036213096639015473978843021206499118885252065121896025971384915906506930191208562670442078823396216286999696452402665161090231103414836549812715849570005779045132914731149224903822081603796477006625378651438759627313605427635221012596482724536554580439788498053021042363691652218199524869769515385957869353246175980056206233603611292219246312680315832005045944685840311881688493211232065493808809437928622414472090725896259675469325314213893966725841712408216598115214115352915907912749446228979381882867314162309663607936346224205455073416710675750685934063443781677291177542939719353261362439360050632610758286553549442954024041900656248684683871853792274599235477757172424829308309656749699399428529216757586136932097808344972888187967318657149336910222812861192974964548184835681991288919662014536783577768181872498428150743564499875622322045906552377529907798466314133586776973124315262852692220469522577608423898235055153531899385754637904580364050098809208866726081479237687121214943486666445568144294981878308630926850883286999520381610387045717285745210689733357589085388669586085485946136364653227230614360677770946917366502727526831438919531717941466768052179293732719667985529914719721978459895349041765734293634628258213730679686201694256768517716736748189347274115960712046721466098719973335181927769858418408772480870495946404802916847144913569851025945172169718467249224105454204913095477288709942977059619825986255792566783765180745699831822943645322651988264524478710307837149079268353781193727564736990236027684207824306170811189831392516217146888692674179378049308407335062055377098919371344125275458405065135365814186932101366903428734674463494573239914473395802527204329810022777233433374038256235221370161965338278965563746689298072145294559784416076058997009148071131801481734175031714956219339007440421822647468050061787037431191738584274711914072812575883603108043260521112393369953773115167500347993147106604952391527542380179300194783801536019672812608421745733782145820750594209896459945429708697621255419791171099385667382900648286748298265375645012913400718158085282284754447974084335633027592352127732375273142676864773130184006676325482248059682598853013572631247885776625141165094203744725897099726116433126272173975267316486811578388332312392111591306696304307973978789212796579017718512457172549072605140440948570140306921969604806386123337703331883405063882155831689940611904034117128424715509497716456288067236582950731475631411553032131001100550217266224243890016706591306051039630008929927993960512866207318021414848701630927096985202738941016632707871089482002057672764192063676704172977438801596695431706962229080123124953202462383384117588560448511094636482646023115155139019005513999624367599166188082496169350179360914367593022557973990896914864482092692945170094356719189251456358774634393375769983134369225723649981009777575053988036126019195423565115212232659050440793678286996452627045165185309513671378663646357140467244342013771143430367697605873376142725082174293557678912377863080158125317542323307591078661042506941512748283182625129570499348321959983722908872075121835915376644080395405834080511678736349103781112789713606387127816597748319772875170682574464604767024354085043393514023956144479941991441161188140002673876963397246513373419112610052915040618771126205515728155637765409450929533972032696812381788800591211676642254559552346374376149560419318430788615795786169777268639011433811374500165004921888945777681492223192312502081439163677125130395701658055491449506794177193646424961902433790248904277550939782656652864134212243295107819958921034067947948908771879002469090139426344862598824519000189711815343858698015226110713114463227021463044608201996765274495688934236198125058321625365668308535002215928347363423388804593363131807128099506605198952957484685090363153999100419598058051510282956763166817723234297263686266856601284608270259090856525644464763146902095990041034924303816823713748738688345269567697101627271563361576281669085072057677063925504985195149311599258844537384079614024338126374835621185634282559141709998096531684781257308263891325003978721327968218577030185882773377143893553451175828021667736194031919815521604520455079169588374646273614022670594498629877882551023468354151426741137034633236469655054578344957694659387727624308849006656059066295575774669188644254927469726445059817163905059145614809927192283419092703187126843858220684351619724637219079336891456467609813268921525732782505353384360128516603171730754994629541616615423711323676577184514368555807906778033917220742938015664760632197931920007378233703058409335556985769050909243869921927919368929019511749447105197834021232118215638554241410612028843410623105191870707286003045818584695796872343166149600822465914618952761827336219791690939312811015874331310873078871220972730958193453538621303061005017828913039737312049743919940079435971422661189919119473238565195183502062782710913327057989183829766982851756183360458455251080868025315757737775938886737137975313662481267983372360609958837418671196947919111207326072503876884995659497515506664093346947361721806739025062792633240007126087938976341590965593764888126813427734221860401822189624411563728353178062070148267582516063907012271181888582568840983559002871571974720044218250328924694089038430340261593502185687126008220049821345566219663642293411507268085811770177532964812484035875881579785022405414486285103405044310887011632752321637799386001216886893668067927601880769954669351063274642732708129506797735701624787574118741527030955990746077564828819919004490804480713714652841460913257563898747527081083391805411071406796790840088081838244951489764822651587938170206909938418660392026098293706464491730324534115258149986083535625797314725157271566854348791094630656170944530306957558838561763673050673755537408979650293110187528115532426656235531440216954175042123988383575125939290925204940543382758900479848421346348152679230286052384513822585246074801375299532557163677335536872437917819810529648939424084863902312139474341534907988529081481756521792687077060765967046773437482229562960194810700974428987932396313927615471849681095499726286547205577569712894637441106082943584109879321195584545923191582447405976709473854049300444870880599113966214625177283222726723971297842069892673515725631592263634531480005427985117585669122973339073321704715525455635562774360676538608528301272707840415621065791003830306005346414615985152020008308941139172573143680808242347009096354379442000953503886493699661700829236218261789455463701265043823622570537866629272784632195580195007308049699059787634125800562988726363334705504213257583310469500786470080781909071786080883411713992783774684133732086389328473925910168040308925766361146042288367937978724170673980966948251312402370755638892859653533552326570044498305605869917290117499757752158039333532033681672501889249565298108503742283095191255840153063370508215814255438477697610072814759917581446000192725695133387575557435965814866512270119692544122485174594687806952292293572258855040450973896420881908012217956684829401967785586161398507209650094109375130602293251590891730355702203780627710095721359863590917889062491189144557616084011519930058770148655578572394028699602415150532154515846520494573922405494388359949892174329472025345050949252422278423356444674794686019121669000589575551836598441138925784861242057719901942353100043413460434697332100036915000313562239719746565581874218198703663090609301697144235200902988314147379038474280501887742240552800039771970253678922703553198236056712559799307778967494071969097124998781802700559818153556307245718416097265424391815981719249379136246865067385024920851816812353496360559529941774935383288434834944641293523149920537159408865850613038054738117304353137716313068348868433501667244245674289289937952243031894216591585098966914848583136313532596787902816188253572882169835409651304352378298067933137039276482403698124833631107818282878524764895494386487831514611249248106898850041269925597240938493419875933158370282904963367907115498026823479209663821359174737712910407167822786813428404965359523538027016201204179665486173636598409822262165576035843930382098329030849372783149289140116210682941931184041539788506632419259569608389447583175955462201310829456819381945312758236502823277165464336903893073725488011614822896766760162722854719301041374685854692706499862917191044894900138882323543891026447965132746122713629003334387438214543608182900500694304816013577445175070158123581050956728122164065778707235657835972614740456433167684300189510587160540977891511496091639217378939509386948171552601288210627534066721955813357559695784820000517279048517072796799242471491309819443220038242346928782031588027510276048510907504072792104141940801191977932850184612930336674490032112366499799474900829520141670515120653616351649550981654646708944370924474452808142764306958620636478514066177295340234260401977787540104053455613727115481204017600047107870319142708955296392561493749024782606402002592084346734098755923895255832707964448460953098347670273012899620807966680468719606315843336924988911936281773439661554406544146560751043808088439302057181382470434903084059097707820738394935212302757545438340481627559057020006054434727666525437123709332379506021543888891065311854578167902707122542263982114016093609531393797396440824864871576709895287765854314434445164805352720745990155255463353875574766638264868373206586296775389250366046341815837358705523849525908973544729958901146963403721127240595191445073998820519664064822837503155719349059257203013086121627537741571780173096563184693134256100485037060659213228594993731254557056192399827855791152007167542073347397326202760044025516883058398238503016465542706025668108612992814463783011149028132037796552690946259917535196138583346963172826696418991345406453794800540038021266539265675294756843978790365412098789497964200239637604999968522589430618539196266521077393760893406246818876555523404070798065137506177145525822272601625772594837540613933419073461745143316150561885526418862006178562416370137324667410657278613262597173567250635742124422236637002162731082090930634617468521137269599756852173960901668728118343317138958925817675675443415260507288126626294893808247776281241651583570843043628131196806633198135716625979034562376346494837634798732471211365107110213012488210871473313962121712410272219171918451986563674851417913452915140194083077374757512455499649471759853163629281375162794996354022970677451078004361691140316166433429223145186370917494640740716696064672364609646508110030540879831126458788145350026566944355814918806077821891746850517122947418732478519674080404322200156970371176287801077952960821577739088168447437668079616960597414957171271426818811940424788125976502985876878104411800889671118274591853216591832253818253176841368163675877940613948408160271583024772110810640293433651808849168265987150749062241490632846687571420976523188243251204077411283505048980536142954948428132684260375225720180930106096682382956746920208862189169305662179416970500858773364433372866937420773399101830053243709610752167781065566050700504829255765812691025691392306919080088406283473461309994167386520500954995860407167354719200905589096193687827851342737001071878376276820014187234298225446116684236948047025146300400440599594948445590698325112809018757193398591307031233068737454886347381489269270711791105845889742069317066527378504974183678096357955341028219994550823393997476565225331778774070169906019605021912870576912484517026053707220004935550566016481591440816037751684024972357741677055068632546569916204036316579584703853254096602660270250141505378522509897633688493244430908445667695041012474601051473811759010945897216762833166615202750803835734868060766142601483596136235161059762261936059190528214339802968798848254327023007414806676995629774507409890165305674405613875803379114130550884893278779203970975829639933925578135817313880310174316204801193292361930814012515089869289453168123896116239430272643566014235446812622442810895565901097729567961275400176072445986560390810064242067200318939784764358371235632023561478771205155950451615395716024721426824266633079045917074593082767940645737100350412471150653195241656212654699649510126960734520850512859939589082115265308352691153740294298655139208546231264656318420970537008308865769695360751991118750288151415733992384892552420917582273866812050144453593541029059957194384231413657394680860622593486681433985599665425056000546687426304281287679152565586995267107571485504942039518138994785754310959772031437548750910973639468580227338735703389387239313716317048092049653586122850902876629336646575044378386705594774556508609792677981868517124545485592680545625654160571782360242158279670376607748512489033224441805850783356543519529110569617892814834834876491226350934446111449401572999359507643589968589501694746089447676247724035847176599545654058160021363643093289937813430720430893825382857541491799495402135943721573386652458231240655280726937075627031546276510893810501418628192314251235499041887887840007312711048336728116733876030058385448156749312273789326336539169466399773843320430718613614710588909488774779368940744496086267369163855140630962153546037443596404883688799630874893346385138445436058355700673621010896125494020785060293837055532735852155471253116999583792964342909488082575644534595862533651937092462382902993453817659620481274435077669331358455437834414371632354074475233642122715007444442094324619153112552731220125347310795648183786322164930370458514718264367784849235973559558823453914341978816199831114595776770863372351984165607151814772451314162151176021253986115078781334303744036073904269903884267624670830687375076715794218297718528055102809822348279961175897099583126974981259968272253865437123961323608566135556871121596930081793642967530746801814874730427165700204013199033450375496309099112969802531178955970026247869565543273581835496881375698148136966002489555552657467756620616048347021386678760802341209759488661655999398914027677180571270268888738432079601426014155435116419139319618968689529306174006188607342161286169074318977320515797340797396210584908029366527300628874009189895200022699535530039145608415544052129760541984145340854480970715088614345616730996041901356495683081292995860245350575027419219127749179411948638685734612733835324623087621535918424521223300069993347921574058219542578905719971931519833448236564470123884399006512013599062899578405801486337486750310483338915049065658393072899559094632893943917174014064132375790267845082303286037194412144192601727877307433788474413732322082836442956499868258916289530094166267611463849630913731221525899489471577095646454073753655226408718997461299977532226375866994094554201393673970834775471407926869616332222939738960761906225113807154693273282968805205617819916663664944596599459788903365477332764250986315223350720866096405235432280882054793541125816372359056306457723504794227466206359389686630431452794482713522114901194975961958438346343132678802533464135756950534182338948347379899765536654029653672375194535524400135126952289929780451032653429957179939365020842975440177460267702094587164256791672045553419869352755790886395365676164732936052272577058755044445293495358772941664266549942668647727159851429758267723965323028853903610112573172999281912069104357268730078319104851416023607674347663175949178760356438740412122542179326929839695397690451995869712947266167616004119539745296058707876807456743489704519301412628760909367479921869315906952020043041531180927080327281453167962134822508169003223821647165230968224702538018512768079926764673536647726736585626997473744284088557260687799142077679546468458457843168188525653847216527293625439191760296932507470762803866690886419746417102751015655502384378229833260257089320779664454371205323185607642136114994596705315212237321567473324506896163344792624445650480331397335198837448578334069752450674528842691872109564200425683862495417556148548325729109310330261405889646813087773316111551895500148710172308586471730638875104959032873447152545740654075657284856222179697839829846514790062711588208660932396753354253834754068843662034473108752960070070201969779792125442083762196787259119582052011776537558573457229810138233962581886817236611510315819758226706140989732253079106027540289183846853473762177925322327152157945988827145078016575623054209804237066215304278597687099062400638790690804839499001632697888458604137296003831616458181598352951328392641006716615809341775041586889032535430510579113723757218486650616333155090497912057513419411096662577934049784210375275954139805565551894490439461135226965733505466859907814530900967525560141342064264735296468885841272047032025521579328252578773849524079323378675868548916000017624068911256054067714856234421457253724263575933592573747496073834309616661153503649131250028959507684888824878512521673889249928512043664281055172420127049516406464847999481354353396585900941132282338013726827357197407865182586354550074031279555394650362609966624045616629212953891906661240173318668401013339437482860095446704469854942706144053976630384317133721602071998547008651023636580408306502278518261077051808024378342345830991283370451761422879862729768901768524016640681530062612857463268088733004516284362261233014451833396921211814225927570125361227668481833512536291128306416558379836452383311320745313395815784644511536302425086831142296948542619154135204413440031302152656650550761111744317007945787539045852857404797934324293979620008897423856464872018528469429696900823807812657347368633490754780670555897578700097322799400031566086070584504937017043744497763332682198882133063798988521056949514276637856203719765368085442760935690420099437439273016294330937512567138954359506550229970831041498117187598019083806630529685930885025757908174724135115264757177687452810318455605165370531149286827585867020831623522380758489892453438074866366370437579708036123113262906865714343475649443004731505912194205522274067369364114286681014541380113534042532099790418517439707001022263021822275019701264863491345117027644576944047874415182320607557593928709602236712692762201174606981087683252279018359535043101982304116533235388190442088261421498837914937873500388142250947820703016231343001678279321169320211236864639187852723143520680874715348385378880710641377288789107710660394098258449809883505503837701410441738332141948230923743608813638508004355837861526734106131384305336663180388181861822121943567477545037308053404234274666788813603564588479927908825527152547314928737429696520242321907253775288229179765453334142208836407758230559921222372003470480690395437048910408241020036907482093944244379844133220281721985466571908517275760795068841512151754985026088923573469497287748157369880333848957897816322174237965559460237355746752259262600439036135880847033990451851472863270837414045352887279836003525180758034561019480960166122829573869698543883910984957360524445656576186813117289100697751185966251186402263473770177799621790962653964221600712268461531510055874849188215543112965190803480412015177453147120858632317924331822512860052351795140735727330837888803078371563885328118952036504851189280046842537796825080573881953003175385029517899897982419643421784092671982308639263140039518657158790378526278352408171729833717359120878666169435446430480968193897466318556366366514663607948387677036175158448408351358899558249584930031621544981569636715829727391517038477889785735553409484739461478092168312440715909864559742395773950568156023451959037781820821184226987130281434381436418837945335614098245118773346431271671287060761533385264362908624435027047220199699669749797651871470094868786829405097491308815557626037227473879860884690548075676497242590960016346685607047561084331009935600612350448416527580749797898804336239398949530567213216776647989424774481401469055688524724327067485669142727084485872962744374919764717602261076053872838287341038809079082397331471703064898160239954559652413898742906294520349363719480594864481523416859244453550252040990945110217757128226082485722211511543539226613228383403799277541342240311276057882524549590135127065964401200060988924637010515339181686285287405736250423971278156650931186148905329731510066023009108728792086592102377787177820226243249149739133783787744124381981088782646211605850036418661401633800024630055848578586532087502930280195968615754789674201814314506810519483316627865977080460125680511572380145550007380570489336591376149482477414335428431984254164954380174713806837576456516085878676205066998159013525776770318838773399319787684436645632796209891881640788163869440523207586964853847187321963930186536429717190361328077054510914935737620892409109675623937744899179124965382883516046577369300902294427256882105727927011431029894255859376244955001896686128474424416152529341175331584781883587575430235273102108021789056959992522355297508458157673468568826216061256449371825364256609301642109119439592038933096808419156697665626711495083441539831376450335347523262515716271802369198220719825443520332332698915092245484032714269413152045207075799728325721846698843861755595512246835746421941876469834653237954826364139146643903262987363542779216427363929594425203053386577321689863221252605828629615654942144867219378840298637874305250859193388102196334986593516337719317777911243439022006538701672327184877873939399638445211817371620753677121074528290623970276851989927734641267097795405814115744704643078678021423672840449556553501239924088215466272210896444455275400080729998415926411131558140597833978982940355557226785828513815657307906420815769704196036070912259322598636437788239645153178688999499806233746243394017914641611859377206802264387122543847553269149382078584160846790948996982791885108053338579508987400926787867179901331854290547278651335311372424344046735561526767265325128588228730565516902096454837689009725643956573019418531367030268693587869374605434355544048536085091538018712968118551628650362538110354860287208865369970926515747789395008805912448135511690183415709233223426311517743376946115570928875118396940026264077040159108612510508916900452466466664689175631027930751689724082444138339601344065233775468865341511499505991163283691041681544612313588072897148007787419008531313635847434465276504746358482414681767815543358863368496943135005799953186108773530748959469406432826621447043117083665758927700917270137888542513449307053570084732807624691794000421165769620905214350575458977302072314768112486381078906819787788217180964283940317103975974945040252593058897562904652226521968906548704785989984776389946109202194146837968757203654240522705625391441852626729507059054446390975587569958009220338474019564462980447720841134722549854646292712642240858308475377801678986827339288801510277648102490130137649840822751143675465302629628067685112400606573489264256453197878760914753052998869825686485624715387562400161423337887006883274164722147046555672668617750251576022642271087981467435735726006766590751105053041381111683431627590795035544001063258944968001736138128996938846772267258907851291231800585031508804344748027930892219098074208101219163899706332077605636767361193602653408914190907737745448640240588293424066236420053449449203575279343865363466577974819679160007252975783627434050857517982638462604597273864760354825264082798514188490577109012695877532314314223861612818223579906259497238632362346593265011591554857759798071083577130538813282838460842276325537724215224193910616006834657607418414969358455767685780737889638084384982066359382147166843296439457739504146929529941120901144618090240735786950896071384095575832856136320749426269287873800503889180173695413591907336308888011728663380460390169813406894425576704467311672670043629372178216774307921963574202908269836233772371855929941765769503270490940182494579009961432901736298672035629770044999354675184017994849202372744621524261481491207492453740693766646457528900936830163666008743668083512508041182432056003737813416620238350040658372125796075120622018219837454862518826969731396628232218441530665252881321946055507699497619602257830973144255627628820790260338972176085537621564029731832155394672987522963786260629225864637185620166462312341316894948047844698962099952055715691603858134656163816780228927055991343369507619276626626806637935401410225356346679772510148702637650930932423248159121870962358447612125837492878857823716117750172170832929600097298842695125363192872481209697325728687835626085620368066291864800319655432489546146923120902472284439068832744828514848454770091200411392120557252378084525431018189088000855210137761715375492093759621001957266092560485346727101783240280250610669158700385168411247589592843885095647776702618413768655958226422075552079282748395489561746315771090216384963756287048509053434502385457561044627650909314033004463015038452346023961765259977665622779734575336755874836215316676008162718598760911097078062314440085187815696978957575763824553332591972756182234442319415497348544264884964091661468200085887731236824834048724822904512197471762401180751764059477901099913216187112158105597930070201030175597162108566511014329792999503672037771146378017389829838979966931290474286986035241681834365086844206628586511111753664806200836475359939472863285401849753424294375442099079841935385252772907006808352618467716459928188174455541016400454317254241952060295923224715268130885150200213520026852099125555708177313035835766926619050961167351008777725976457283073034031590762345111190132120790016276236281062483553551149123427897564524778419587812032604902934212956603045031162369208528515651026823458356582160695630703455903675358041107484916031695853270828572539964568760011952842229256111392755308724081335603564177031234643543627670099234582166481879808328940947490410155871594757590379717979786053731285205613086332940050111275615605081081238340544927688549101388640276530506369435012254254111104025773911420708221540659690575863602092858564251964375709365147674658996412940231428232353577359225084581640451418606554727999884916676454731802622021036067177464888745258518185413965248908039238337572449210002094742471337017149585154973640194890024889953790640460435341685117532323953495239002372046248444121447471826278128087545752409171137041783570565331331181604658580027383998803142202371951470431394541815080122476311884198604844115710827863231656395301334063045949586312491609955645501818212111274560917655858689140514796226617839048243700502105517158875695806980073061675060003588259011384451441611287241656694537573232487997210622387692820700206789396278391714926928464947660672904003188712763826111601117881024032952923939407241096304692138922768959128616465088434645063734488703501963865286859684688903117694857863620772437110457166519387195799696076777937270233895434311945289823829047166377427942076722421080301110760952540070330083151580113903870886754037411118249695167275960390567408202289485355381791112801825617554419755548723702639234571185671279676606733693619290887957261492766712076443273388132870210714226610374632833595380122965924944216572165069735832655407708820670286868067563405608342282187272920085549113736538769422148278236950998877132204936892370335940339886189005082476805671216723748908114640617088787044242666884872550592505527648913552055979683953735820482705790488415847789876379713765790287333158996075203985666394846510844420684570810116990958433689624874838029758244679250789537459409068697131359041846151354990435827832895240915902249843480593242484841691764269456784126483130676992141961463799259894698503735212750399789157038709769842371780895800586801291920667751128187659136242468671089223833654137789740488245286898007631811594267810970261833468937896165897107787223509053977746243100681145326108521765867660853905692173008904866429967734203419891789261442891480035684717921836027140752169940696126951312648311731608650453021913517672042067303030036593562626716358764012418971364364490786946351913997225997200966449812421474707152271436255599298655224262302461264821766035445091880377969915802983174065714353643159420347084767347180556845764952712168771204958551786770751525933087674446335778771586580492496561723823690303261939135782029797393787773910066822433247909617737356903173010393435373035326901994664055301713726127423296143196406070534527936445656983908190421319575829271642254344885253318350836550365382051103885250111026590479627299121274630060867571821677182378581727138768713629773542373622320585202346575809655496045517694291133900271238053847353621575585426345247024817937517370529475559293508723952412846499738555521285355819037004169042780579559186978349665823087030147583430408871540994872469485686180370558057261329423887285433066565556801209360274101816797728014829808128666631679506943176727084419681816453715176407349410113763019244515660373808788594899965808650449322755837072087637851404089387541414116500609836621906073614919354072375193233749975682460609537613258495510531011550260071289059010734125427923896029850511461106962393083601108050952840512984114181775070865062550529528937851530858861803602885399417231815923026641830583638088480553610262857732426676397442459026508298506214486312246054024223169925554632410998298562798054627177454023939464229063206173579924119360128993658304676492582415745825042181601973978981364852118783012687296574253863522428806412714952377316238821422349635142479273946435756876806372835731003997927014458841132497600470222961866679815582352244931061579168470983355974970301309582118221839579156371402521426477644278637583337606670856370786204205340530834935996794375742370070015722721316630866514199495374480770975400387374441720273851099448128874659724232377139930213668552211235523905804988879688706110423437125756213028414056515841918968507013205380433987982770691438162780183790763842952112646687710158890763690018803647759045614957740807870851864947159926186843218859270447447805296327371908546498744632889356787917899259133207508201828268940087883336540789858932613298737503174920442509932547470379671362100711982833555012395446344082055431205174823747978176051032240862524859490451211422785264524787113603494926977868152650348699050371508374595118066541525028313179962978761499681092501136190686526084788791397198378238860658117242423580313876399984905431626263021529555708884304467016321817999371497795195401842409314868170929060821088082921234649798611313120651883538474155504554132597413939352589487567706446389477476865114757570116437856817988686508859015925933158120348228111922677951435073020238251365284851760656915133199255224694999529372776846862444862053327224748705516920551151990730397686832307153160990090174076174105590901228788695125047252740393853079063607838203444945049283848422673918836295827239757851304068551698154876067142676723144268983583197740663147262037942993993545151587740368088748130500256146951480616044602232854086485349502929335945241888072607408070235589538464337158913454948211352231305197370959212694238815512885851302822634092176324841164434627820681164519313441624726038966047928688450099192981176206557208911504504522232968053720277820840343578469897440010740875444969362043286945595327995931640728111515327280373437388091212976564653481725572217560469578191171162900401036229640286401080908418237549281493311910803883714589280349874034610381958060222030034848084260286791646035285685957717251931006743294967753471651959839045789315367183290686310268004160596341060959890198173007468750465493132117603662300126373429771486487215175626124785034873797888093581849853794597891924612498444571617556908472995713022407489636955854182327240754074687935227101521167984004635313407301301744814108226354900431918690968040211971988012807137727508092244668911254740509532324311864866682023475776002516481421162762165312228016424073364126620035050852002172871966189148512179193428705500939769611510403751105224156567830879584692973904768859265237053170334790365855538765342303594826268383810190441919571478326854293433025706352194902350979246718931037550674926210773138439146939322052163834130952126434446189169082534554254529186610818594933348824048219729342722587852354002204689175023719199475981748245308373626377685387778893169424221692721675635575528600731510131622172527979585263669108285523441866096541846628428628577741156748231501840545864372598236170859617029379346556365507458940106964605374675226762615843410904424740257528679845374099341033612332309910117201892979541786820717373912430327921607523937906446407694141458647164664367449995296384930573568885099591208670522457450933369282433834514831330411805688344176504233666095686922625486994748043928737485722586233742612107252418443822644311700297656464606460737982012394442289103854902212695681412772954798206034122746540849646732101914013147616874823272147315724175070841783993998471715130125094229348504816694629995188773406515398054855789332915559123570042045057465589319468201846041281326552606846707523148301960163384384012872744804285014107149067686124250520747872397006550912528495172755233701985740126000229894680082961627653854911400836351258687557732983884704773833576887907354867214278667179092701243597131309200041126474281295682589664170805033043602370113597881297248484081302326108024183936232087189527222877167173282486805277134244727117364514625140976493827996590215770889294482322923312875450489557184026252173520647377318354451915772003508241015538995394802759322361931061228234221382783065680751036282281794745203313025377971609321841469597452479945904885066964164662579825996646639150217740491801537321841811932867670077113020937060493705957363229644391492142249418872633497499574489717358145375403588815571132195315697054999305981912512067218203334597217951655475306431495932360887120408567977552672595617082804949286972599382837979465402434272791559400069714445825202330416884147496462138675385420876494087981471420585561465996039652570010292620022720921549660309373625437453762674690411364224358165183707009298178866633058173879999552193427271915435776333034842816837054842698744793086485965374275427995780734807049357737662899714665204296303446525947136614209216501801147656774859534448701582429826101206539549733696656893658555797229475940862066036354868871554437395441474879433750482569151429604803897677723017308241795637140181729624559611362940587003389091610854136747278731921476909378988552380401678088690644579849376087935331898761819061335879406480864972794699311991516465443058962413318099771392128441929165412940585691206339938726608078831891870761903910026242987615228871133255915461010289093620810877983762518678807803450423932692242134924161537299002537448124816761625701142684291358954272536118158069696832203245512587479336357567016511759512682691227905069565112230055048350096131025096019362589427836319215242870568379068378499176156648341302991062940070234448204475751591193630821408752578461622821865320024066565160882962706405388200357111959582043123330992493072080605562118947046403650942839334818113671459790396415072981684758000100287491679030879835820631683238889901047624452011619282859392053635181678933979082436225846984203881695925035778422580032037137037808661083146207185430512719981343881889870750964525650785903105036023208658024779636943780082405293072544973570450537961030755805666965078890396416164445008530328797000432105691714541575542500086764514290355542716027047294338427964008833384326506322859551178104667099251591084330080249950909768930882371667704948074492393435983069835365377305469059211864806516914980565499735178552471934163586224470528015677813480152902345569743502262251122988697459525263607489745682541051628924675135243594678950976571151222132695340919366477488850615928434474803166072437616007319271564916408973643520253868543155560339021379129379015445634255018564875581399445644431884538105010046537400716078170676524485762171217967936626373170206318017597565277046850256414446578786953654976038834914970158651720744734725686806099470236747736488333242733161879191649515485606129840115719440058757429059265914115277494886078653567503524874182176740382915029838496627122578110878817134537560261780900061518747750899033319019711887711221620086287335026110252150370386962126182903490558779341151313728837351035893957186357045426111924484123071105636164935964671460952159403572190950040757595460652873116198634315654841045574900171353470370452470672751889142089785448742233049701334325380560843360081855355710319323179861383207622368828570053971511603072345547585298718238015325148913274747711079013802138025500770884576119392625191209135920065152273188120049981738160674081983075193514975964660382698256450869481142304825282343222687991195573193001357775367799659644205397020540661525825557408157304990362086009084945711015345563442935972085110855313500675066764108623773356687389363166958225756464081547277194363729330782516991991083890247976459456296594697116254048587590854692955570463769142328179703012597489911391777332575318432218051822166660418963056210404557201769984964736927386921293201335560173137716982376469328799272845733046663190092724313001974748813379188363431313227715952143728460419981143756701325780561655553611656955130626666453434451744721614118314913972913861341057863514247070037785251782225625270652566242302085626989353767704165138312650708313604641480285620726103456329821522582771562515200915828925452271201451011541476835934474258099993746059329091518022999846961825077359994023873194874816289723713256247981393731292917904279121951436266565919216326126289031711142347637202962400333452306282411122110030470453252152445966484872163121078323570790463224347380768169368279159571247866653601169058559342860917573520266790456075914342078442050017107759508747207624690372281918378771765220829459976498717436321059356303589619051448038840996233004134625524565714902006422842268961543529755382506019191817632068195389659393200272377163283442014164816888984868697423710801408168429899691312268678162345780225152151613837899982558510866561367977798741835183805428289232058844159429965588267409255388838987670601609733922969080124120180711431523289210380425999506761490931254272701414778258916808212388199761358324940456746391424160149833018072302426662757653206968821477469388498815267369426273747977803640939695723792177873957319107338823193937016621429100610557464972568764932856451305906160069754610566715730943375907894817696646543621394789146619087242341551418253043174725065398173346443917449534051005753805131666560876356846067135651018907093957901386693771045117895167783703532072629445489947853174788666378942948595742231895998543185990508822873555182250899109892836746911603669627554486001103603983011612713153922200793478209688527940286198830370274789872140312868219271742616284145950928685025191890358189516487504664699375720320020701989968788786833562094637313050407519679483944425110632552625320510765501016169912171950862501982912514724085737808660651501820503906405225060700418581829742917147737195131253408249851437479182925994543298090916122435193016571878663697224074694737185546664956950725188330627793997598702181725494335297809243226691962394771428665307601139891919470617044295352843869838784705119904317706681382369064701899648582515888035736975229150546587623239280520747414029694362661918367743868174663855785987320140892303277898740594374137497225492917332295255031439861458112748624968268349394546625317377343942592782089091843505714820781937291382641869033742815092372041531646148534085478948893261790919882165189509011119546321359763262200451923233243747782226840824691902611090786934617276251769713403956461930824908387310882670966045988460254768942008464571173314455462129739163814457841693367697747846491343949591334402214394505864211225037877425142382365690753208390626426814829502106766176949695403998243046803149411295199689326061262668977174004191598288906571147584846260236458740036171661441734449457458748723633672559280340807005537493717037818217149610285541227098993686102834284475997232709757135432762348584384135067336077147211604563108552909068124205782393253025096053160124663943518186195273156238398438312928649981493828419320721301363814174524565560424881220109048558744813719689044674709871487518189616675349399851026623330651038780876110593921813217339538419039995048763566891905927908079159832153476444235550655816753585337833116373976769539020091374886330064896280443103878965843752703598916580282419046170233411855094444262712864348983796783340009236632186549209125177563707183246857484876412851536479398332880539466657428358063286257286219143253661852579993623671655452181538991203800285112034947201429704880614203410719120730194974239121246358673593830075032270438679512755574101809876549135718450100841937105474693021788246264332256142470360599082653230167258133613464585548167328019725730137081058249778810725269371742893415429908331161633967002907019613287250629852672734019538085682904154620497893020711276324215029078718939386933673301384216567924524233391421330633145930711905743327598804098605857477366543335461118904080418142005818247605320808816850786634634459157592915881582037435561909826003371759303389576211658883137941274707948960671621962902248539455232676847600285851847368243989341003766305737166391635987367512249709161828373960565993066760449626579518205572489611126122106465503343525851613016634794783096238053750323758967945134720592998602617741479813876763002609029361249881654997473113572415553999466131625658361282441872556566117607705015733858040624153950860185256575145495251065992107197078122591426963197805874829076758587877788475756469987547283751764478342316110207494591760864073329478707885023100733319186354977905783628034898991600461055397201732090294786424578060509459005255719799049582951981411124305672868345838919820358534454430430592550980576113688331059154704615786607026000588603690155827566725560282267468207712440656744028422481374523158499614200228364549335003451055970192956673464874465402234317570525691051429174411158454584664964292617466337586875637648262771577094419052340832665689828794185130936650615999252616755688012047323612340386543222248393897556591218213111678837275931657235836558845167254289197991046400294851895917509667726309665251295891214826951314606458960268973717881097746493185959212677827500996831795147142436465564034014050619191726060298847934179819121432565742054115254783828799081153107112477639672346929257401652813561909974920949153708542568088133598727105736229410469215745846565393394221655127578980409680957953607682562940638498004121652303709876637685219370959878402664048568029802059434479643916613166693887486479579365569523113807117433395155341426648136229225137762789329293021410038331803994467623327379167809939712326386692567471944747911424908319670954176648286603004041647503903005913686458714361082377957821377290747042048976766324130569188107529434588704146834043076136842186359717656334262726250742366685829569960128054038915751362724556088305039643543753409772654064350368890100257417493971099722406761028635795317645947799254020587222063052470133880867387779852367401474872437351306216773962246960136326048922198338209773006628760516555677283784376977905959735744910679483040073406847413870587560925485359350882974986808937686749867579271073560792360833886392113948729255159042518538325407615875070408183425289789935057741199320951391757939088355980553914828208078113527519921543910666852569845103966154255939380705355135497042234726486981389407380338585129741570137744870909039320658452617738536572345976403276263194699435064227002806144020363480112135655840453891788129089878871272756275442824969105769167562559297635379967165852648537364480316996124423987741212065400203530719174252301176211288293341662173808071182915768187165959813849122677779437313319487954982292818184050931238609035434084726518129679078790099577181623893241824557364602775279300539651632615724193112161202690561981198903930838843524543672071727282441583771032635017207853131505956284727545339399123039277934306455598233962340963685317659410887388251329987279021115782023449691567949247621510619457301718348613699386726370323117272437594542278682008298139828843528199671849074892951621839218501711438646332963729214578674681929720157684342382400163102192776291175019539680773165715556040939250582626514349051881099066121599059129018735201760867520980645348533731217802247538874613136414294697812337936439231152169333391016547578159881168418518308483433403217036962384387213755221109439612548060420635003823898788176817610502541699133819381622033461477463205422938361463533391703153841762383536096724402844397482669810626578918689843493208280824256931006637806415735447337667153806350866606118797068439350701217726237225886581993527208774568749028402587972222293063952800847874107375374713187937566456785099016022817507505226311907242377801663701885192973944215388311289862748555625101889947966994400257857502562380348091623277115912291646720165548097963670271029644224302247004765775915104141052131235574497622125164743784245974618282806362547006072801641009208280999916579597694243949691357926811713789376345735677610542788741005995821334130004839638650556438479011438622436679092865523768588716535307861188156785208915076402111524383826695683103651545524747786671905223880213605463461503529614618120597207030817273909929836505922364897128186412298320464911416445034164219754491498378650932030384144089462071949142084246241765379682666854319015036174687278972475192789450893748354517845008438811279090759807322515154171838288804597371558969361883239216538338791897311285082642192107799340097720478312950060213578553192647398623700526192079785505381957179032089943090322782064294023784319764440746792626080756039110138528748819731127732815229816190013080147482305591711335418013929988490909591337155320994270265357726511744634035892869136193262346072280468840420509580477054898904116814922386268139029091833669889451478032219936623043681365639719440435590255909309485819124539462340493857299225557507344374657480180962031880086420336858121476038392878619333572342923788407599594985080492967305063127114942392596097883925003462233498515858406208410177282772759577455314494989393797701346913046509035109762070943178501099894253044501983253931499202477055797793235189358911831979039120167753120716917881699887081952464797752382120045345568094884319942616643354297381113734263152971329234126749813984940574075908035764021535727515263849036255753673981517396842067639802165453392088786321026491551741157859638558908197131855955922107171912467316077928883771879879782918422390832339131075408207962279610519231401745612199481987892486605116167236388006745794518987363170052507168638814414802591923862866794456303967593892329133470173805222101470892839525766309652626711708879535683535361711663301628344275607745906229062735438875739559925476189285342998151756704373544186928613181107048681742030294441271534719583435973072225753571593310658125032907943470611413280311599089399299624700774312342336173548190739527605965071704597450989024970083091435411523453798793285744930275232890933027527904695792875399506758228249853552240475416742026806565999064166016814601153855091444756064504948365726898942550574987541971644344579319164115256443519450484311183439345072628059524034561108998234220798193162762202065326855476892013557047184987160331273389799750673430364950072246434283442189884350052163678370109531154326430618998231652081640685732154460252935429714920473413569354931885535180804029471921234729744000326789653053985469485134302625458938037703982372218800461925846951038022799330340096053138256577049264443653077067896827730254115798012122487336329483529345125677506139499523447398212596307489885430480857520514590466487232409423147297489725752741435406937875539551457735584568943403945736004409829817908796963336212323865721059786539101864852763401156549852347025017162957575340489710437156885357424431850057476482475657899165499696235723258143849766877817981958713126002773514629040539937761562249454156818884721307144741638980060894676635138903223717911063544482306190968985442179655159970979615639046998142263623681618836528743086326259714240451551707254140276216895023704719397032097869648123752566957274049114213650463365612224903069715831297884357579664303166527766548089959215539730881675377518792994764025624608399618698662096475476700987043720357081807416864447152621821665263610214957152043230600875348624659301717924477784632896722701667390437022291707853023099306975647490546806756057128352662309201532654107784497831480057073000295157253602781291113996988269861511937161225120243662841988939700101873289002671167917059315117155893493575313901292443746099114711124114543567968378544345340837138554973451390763171259817601483965984850250512685840750153050639400353429915267255657550904714354113244964676539354530571203233780322607429279907811330551550512811732941177317994656583123323475474122054700812622054043929435242337752206143375559885328344005238780895436441351660569312010951306371536673325777700970298087802364807840830969516572536581780875012135071739727842779780528539008525453385017812711599490716190674696488427800666160176765293205095693789247533096789675513340938290249393168557262791209659475529057427503206909176929010997739177232887087677877242979932243448327479910405412706257694686116791356880289419211100744592137032096817480320733179606287608006027215220527673569713885843842178889238370663507910160101159254710618024186828736114073951252104622813856778239517018871224419666924088074265229317522563327301377626554000249048940793030735611742690984359299864383904552302189405747961345763027888144095365162660284382251195413445010183031916532231580473740873680659927506182392401046894467892376532785520246570172808977826470210463317114352800814601369190894967953635486282762412317530976750312373464119266710609366612360090750775518475070099682165212057160911930327464780640411218489215663493346181330404408826392319590571648838965516467684826247069766393158755718006395169316760794795677871265824531069466414807414465350466911786241372967942858274348898748363455437467256871182078988012204169960487896912159014035757971966316003394655602095042316995816764115439280007978347158256609118745446226501300394364391305475930975899332438883360024173916118614279005814549965606937086805726356085913772643304390695986178822581132721052122266814437610638740549421895265037719486466246445834020344274391340524194635412274617340544196558884576429028216228122497785931036482505727142608850445191810631055297448899958379223850184266940546923662922528670397429661462357901372736477189423716291151779083305631568869641563197223304751656117250205892949927574072464240185549824654694279944815698116258969503987796303367266038953568306383049166476637695245939210241800352348369729672093324250009188372617577679687892260501218654044645541429136025628032747298315321486598265545487070093042314668080668515536688784106352368716493272040141500871367512415391625820999367514463220265703758468492366214816805097140881549629803965740024490173819369201222313293469353301704914704370860677276356260694057290165940517726857069553285269162904043487573631535529691683554616431486192943729393002088076877507539520371762241806634878681063131310097547823578422370187695124937382585267645403319306525412584445110574524902018025289857629005965169239363585983320362695864058301078633035338315878777206979336655011014004814164194267569348269691102068482171603084837659995265879520320956583024042077918507716265264132451638244798491660110498208345035630156899841360617888508260899690631662300881450710148780897000829525938553887123380669953824192247869747324529269907207291110389428305706486719821880353265093659147885573129596353681724193715072630622256594364138454320551471324824488487479308271551159938443368701708672366058978441335822751954738159240479499421200653245413601864547790840834027206381632617565628988863146265230102093677467494330753311095372072957406901297334357931115887816306694261385036138086582487065486249353299214286450677353602764711858650351164182236699017279557713019636113467049181190996958924730283604133583749681921724434729109448397102640035429836281853521368376009855672498750733858673032694221702026232764095946957160807225032514540930401548193296728174549534496006765471605091812341295898091420134422730921253514443095793721319332893520464452911780122672906105384486849468779519464259778835043184750724081843124030156563444988143023141258621592320539518052291341946632911847933640747728938107840263840996878717553838828158049176828771279426520562048918666082474627729045362044313166111643470461367122348744126111980173441954278935812404464586030100349341183366284132706442273511512294059228687778162256686660035755240005227548796471798455767514903040845860640714625977916320769228876307565133789335720770738284259958141543021230837965973649336127192869840827454974793663551350102303406035743445668905185481482970379022899776815977541404126166218518409627348848625432770991476524085440322637719248819394098996587700889808144629567142003708037947902120336753422497944089223476705265029912401004848198719928449858859313181097680628050690012397817155077737081625032806440309384462179877583285948802612779846118663422971196087836142969234569955716070957596944061456103220111273373900098994694259074172617533409625563286056558552275404991155364607944569794711072229405233169062993394675520293742588943483958440953153371910010724819555288332265912947729490664073074159801699859242313741916530521583038975311147826895428622227188781859019287950823748366086999662045581000799810227917369846471889540492002053213299532500458835546264582987471426236606134883199274966159054788652035019019608398645064785810449860856373915978313746349306451490391968104456470580702311506829646111476675172412746468924794033184073124425425617533175145819371492207132487038589039684816738843017075438236884409694229585970369712009852551571923099066418517823000072481047825188961384817869209873321671801385960598708657600110226279314581609077789608110845294695503598169083718008528017134422739200739164177022619636583120849187524942910126177147646149672560445002458094222368586430619184584485522588718775282804279946427473343194060601927152580771907525630847806528795687329994919536331856906034522595655786608297118837024395392715426522865728591261042611812030726812729345748021416109820018795007824580407109400424394028695492748878819236235562091455135860028939549607128266308929264376599119888850229050460553878750226305900833523122420890203706689137299631290447749422141678824008671454345130014015043177006935026852670824321317338727815619171317407640639075979275855444415072193695239431754884389336952297367801427116582719322714980007915292434733099883013182602380850367377424570570560493330060473151474207558151975107447496314015763496540788146243863924140798358975926560906650445367132285881352804349769072366276591851338745967526478083772682602629335560049634099337398445809266802148943014585491938140079407042618367080265846272569717871659231988172818213024653080307721616492518137060230666399436463317698091012218270362996564935326268558856993464241207595354483993631729798433951177917141594697189021162614850569866909971223368285073117025703531143473490167714862646853891969550487780200709611207066472900631931445836178129001413145889884186103406919843523751425312563315861048022316520684534105992379635291565452061902608092400193252026036106258734102995259936558895805327173276396501782006423074554203232376785666475409281406599336455278158513014845641940012283652605994013500976339679099613961082833550768163435931296660206541998406818097261852990367820668565076638210728375506760431596793215271403653386399396396693034440612510201655589727230454910227761463454929683117846214679082607463823404623657003465201881640578673656946313670153933482310977779559895958195901671068794261382000306213254958233145083361765180844575540006709135949006635750705542034984468097476889631103390689751895530192733769502783254492121606147137273954383064670942865303012085574841734679588038084472725687967097013517775457993580200304328392442709763210304547663833507567898788897091884057430188031177278677099242247730581410083047567181867984677454218592525620239667271174012933722157625648110614408118516065310326433432039185835043043047999361535088990819211622676402497110523658424689589470061086185117573638453173573721776330863014188388875595340663860378203168386186758479561487535187645629144626464660675879416413018243303924732461193116332883686455494287591008718503949720014543613792234508106895402328633996101325422625475231813341707215840366798195917113474635067541060865150800301607098004584045121059143106179887673149540460305517119441495973306998076009550738891610161080706466175506655658828846832612217885422690508602412052523573641900086279256160360062264609995553356569814954428000024906318421079556760480885299972461596200531695176574567617431225812907838516931155038853227838465144790246028143845836491173262215763982475518995547139005384556909795640304198350910316062121854326020581149429278684262737656716080065694572718264827915086109724855986207455847622201606341152330210612034697977540608100349676958584927490260229519965905694884132262053517557975517763985160701404585152309042402608304894203400175800227722109044603722898426038016908842046053857478616263592243505363873439212672772620568583315505158716630116120048574112664845061316465087320020665615532562403794282029494579300964544000376736381786117591708313998515573406134032105862594161738811801913543978085035689298527770191812200930160443220552245436036446036745599900900900477890255191229421956179661775194832722751872432727974063620860593943566276387510222382147717087510303854640537538406778137804196997361675785933559009163223136439014320575929245015706761621003354556323205561064194337780531293652220654702551146164906499382422255860304900354862985856179478636729227261282637383175414125954365561031181162642500737028000051713350557700925170231287938707369436473294556909848700569183655814547930614906204799350234295628036447506389416895999790358303139475506890212816475428966691250232490859426758853170536804369266840037192109007879842483170421756297978312044299165842846265485128083054243963971205415761206108413409831073193460507783290837546684432395115066082249280392645672438805097249945690528062838705260251837576595463737166615997106471640742501648905972988929805354912478837298518997770144203250387347312821936311817453223546633169752360433021669667084649035134882920384930872801585982197520169712207042385422771748865924349078532558543121849381710151017440114132233815371958960697108381524121091747607508668214661439196665842107199756511203818697749177937569393898981598822470070389567886058149948964635773468990245862563554697776815541322901631807599273502334062821188240189781422411873333198325507055700560157340760068737076516220870161104727571424550679781435055452307175621228342340595426215008193996770410327429835044785449258654473128509890852431907205936101978768149278123221396934197361629522499864532240186347368567959752892175210196561503291824410031054094144749752420051096151006315543339272765416665361474974700996748867089271879584728860765322522620317939964672627020981565659710860392664941748303000324533212858009416921871885647106911458761848239767248747932633228553499697149137128270707275325693160395139512485654472263205596165574293177550525715545530160572514501302415260171085509254194857042423172890184017386718756954173730498744904127562356822717608722530014151081166842442649167972762434803140306086325456991258535649584863829037092697319839071196095698816144567727012002858493352752777089390752325079552523913935885051222834248268560336653888618420411792752960148032520532445607361515589122458289445765202314193543969605529903915270757709809733746745827682962862687276790874975802108404804370809375277228335630737163132510027393802263148621185151081844518535112591285139426346867660316389330135020574682211238075069649348872222817993225496761776398820175390118060737701174575695644462016625811521857872278326916978069568831675004000081044957081080244445180666663009431816290443987318526774179283675873554385362734160085649074786775501832902271808069991087170431195032913597977120280187545977492212747735885101589852052130032304777389780074773343775256208246879943287938631412497812207198780927332201980002143063216679801832204143887122983668746270422220754227531223949452835997929455544487673699469787062949203704974828096232557512282179699297748264644890503391380060555662131117046937144348004403786620203759677423377685005023523672752237084590426336543811553344374526259430244751531477950508992325573340938926740132618949595666137505881179833414359292133610755206604060886102243440764073258988712945583740924156356739918321160106907257898341328213842058718106338786735692288328902342726870389354623471880170816413724602785476407383375833587727549295877708897996367823308644616131986151718788595193082939812082442348174782590088654458992175872143525373396672232175606882892583281131393552891260199723332833691123432221396751290328909231852620677437615446981442629600242425676809152944423337727643108594917780169802496867884023847337584960421075176969245494730123490956567427548063424893999551493936682754921294302863052649973206611153300756215496920805036182087344108800499077342308700625572224669867047426051178509630226195237583949538746228968271488722890447137108878888343718055228113619013478555562103196622282488256609832041225147343604208311115408559361385149116041926629499218135726332952479304459205538189617331412766851394338644852135877685225015916602335058634136551766269032561742260353294731795622640127215018608734931227842774676351919370794266332516362279646443303496830847684186211679025199401455364669002740550936383488239699593573824564523154730867744882121007457477080869143306305091810515051919716478022197532869663492750747425362445715356709009189746505432020313864254875113392929138908165789798531103033159563848120826913314045142431941789549291777038670487855248847993010183897881963908014678640100493997479118019894165562571238782947486409960394295635964520639281622658561579491339584013756198103701533027499765243339719114959114378966444376082081927089247714276963335736696839243282176348182522858759275896546991149935895584556710625909008657430485316491979175096893443267753011842194525019504059741569005986518203183575820857602041911360759937077563823557068756676633353270033207471203725759619336071280729322633550811838801150581982494173262890357272212951543675554033440968614699113233475899657529604618546082284158879173377862132029821107563480827156633475906559263003487782297000791148062193529772698186806350939936343542524088844498125195394915610289091621300598465642941002488863835738402984459758664421334237400284359975201785078429741401596552064653400187679895593403952694987631575296415421876084872719447465093272125208496916651993900872534945972679214040625450508587335432138461485159803613591260724847946584465990848755469271850504221764035203189792664718753924949682240763193108446888582046530742106423444036703386521701804248452368480897101370749293706956282674478062573036514214821069002593511561512926039079613692681403780826521270990629252859951224620906033359414814307941896713655793423843955164419293188769581673388517844204033495243555575968495091998661856511174848192468895527352351044007740567546504299562097068548194845577908851852894073134310521669654402160045261415524200674524669300770627965463864862778008587303258608388660391706879342702880098396277019171680882025622666059297684147366679535991096752206688206586543437677590207016905567992468187279372353824863459676624455250613157523088759691236960377454594596797862673011289286104272086343894666741681700535197679626579345724979841384736801592009714176352283909741919706287153324589667338448350634752462489982693533591750485286814297861046949232537679401928438896896059689696138257328036637003468992757738859122203081345925733388400209208378958908136620204197737793540194841875827926799381546345407055647019277403071107857910757812865052610344398789313726507948484637811126932479284284376368430433352034677953182951980265279589809254030896704864844365933118246557168019489799995286918496396059368952853389446056751787694239850924082356615993661726628544229699617287120915966490696846233990836289991155149251071548278776186040674998133508355697850931440847538171978844492919125920189489030513960486077422228743417335263007150549302906015614278914983022819925435866385322737937649070444099458935223196922904398172039376280884815547783421352630916901761507086694234695003623148442161487252415160427454513127462676400704345504892136021277316150058965791737656762038092341471862154944053423065231605591576243498562533681365788745679603803278707975742451657264987001208443474331294187938355389146074762422421332540512803857044891481901526446810110364679609386654203993894700057141292378013144815614593496588746764021542291311640537776531692846986086205946734886986955531046128008855404062651247784744768815782430793248546705169380927072310717555444640694807103136308540507745689163574468189078421482911648688380684229179128273735347659917018633610099999888689379413652095667219924536848065011495255499366768041246449080605088137819705723444914636791091998287386525508020641521729065845019929196354920801278548982372496562702723016126785294894935937423495503432606426704196181705629494638160293206692823579819780616716770472554748587184245242238950623295474460969991654402872690729734857220831735267269608738674377202880375581904580086653349942051939499649942038075190031604161801396438194898555102803596897359870567543504887113322042227718457674177627054999026686762672370472934412936724578949564983937732736212180388762670041074773341517145957310983251395721739707897469897733199586912574930275926316070345959059514139655245460869659800231073528019632259464830505069634020317922484409356836944108845668363640825331549809129390476444447182642531370355891419749931306478200765740661879692393813223348232759305752002666695841144852153402286027216713340030909373447607028077145322807972586070764787768569138683317937228388673537332743373473152501434534882472878244678597014120208900421805867826878912923724767905128223860840686004219206691225642913774267431594701565714105453108247715013839369201559252331564960071865254860777764775890350752613605654045786145461392349883965845102657512657366290420982996003098518273090516882260676663817153829633713768584479856056979058605294295674467850799949531436450128416903584288624740000606793179053872419905609019383535533559606786004786513857028572026146744182364583827588045524710732861386427829335203190175891397778656212633137172799671901938044123336229428798028976762269489090920738964164103613287192253612786937199251632176962210947530234533854733064319173192806817686576525342645641606891257440266208285095754472770475103804687839425954876198360367787300324501767978591516750940206865966507058439001224241349715230043741168117011813908232818649811955165033662113189522883479085653182155884670388600662950841316503661774258663530926843030419953393820656561126260215328647086003660438595755497752636622166039558093965840365124896857604832244966930044301988649574673200409940366756612467375899872091484781946354137627132921446632166414054421971868709491384059584257112608112723173523667017858819474975343754821741333598592906124618338780216395545376584187208312765321573627006055146551137971178989629867373996024407378082927187829294740626215631655598744669516881555676827872847037964375161153791281313662714243915387450083634444196379609048846257552116939180673711225660186481775382821758227526770617355093259551861260573785618246361031246317535578042960139895663744919979101447068940291829854635778981221026034802609574971646537541752832767547387791007963928362211460677319368785972363005269334590359054961346151269771798694455768327419682170561351724227788743995992339457161433497228635946209069238269085046888319906330903215504141356076252612156514076882077875944065899548978938550054252199109046804728037377054556912746690789121585057284868343063847696394546189571482596797842777979166585912055450385904089690996724475999162084579200847571018955508303729519383560900452892535728031655788466260194515203963351395745333309567582338776822489070641132955323311816927563464308348916896247090821876071015608396401193234960765774159113303036891671201891093271697236579899254460868264366404094306047649270111125403176682695475625974300763343490348989735186150298036584694443804487218150030839906531604423304690799508203892264623294965316674658331418922222508565059074876585932085068462617375892376092325009242559339828797000579146276715625238626753579613853955512440661309523917755972680662490524299815570080686373868156377846859631323303127989421512241425632556612419685372579023766572810822552073060233226843886480634835144602126824791305311450404083802590948071331291602402679264445480992260192796590393719871377086420205449539642500862338969868918851980384334729069526832468262854207810784010238448739284916444816980987592408949191097849883575534461992849048985411552911748658193759010440358454414137050284450469322105695478470911844748426498096267066960640242346962169095709598708087703735043762902956427300754104035800423533660337154179453397430774537377081337699895642946142557854858840603220905916292034065474647135577617226348291863570593730066051022015617024822964255742158685467149666129766106728178500000443942546676019023171549961053776213750555269078368448731420320080200410537931432704107006229595748643258661965942503188759665124495711316532164930716013262052052111241168901248869089036409884900413210667493975912647779394034238914580370681191433840191895079060483256381537830679145985789759606861289020842309699080770709338009114513510486814599457141180598993030034490601556599944743938183054505127860511830839580268574841788019580848227047971077445852627628899312912725160888103402420675874459523891558368763327284946273817377663034983397628044855899798342922120327866700423477832511847068387694532424545867412000683740804889428181834250578993499933377588469600985494977373894611226231990124137118650214855547395229378063890824300634609532720049158021002974388999277171625081481590292688889096043597515629726654036257477781485870890033508649229316297031110335537723495804491500706133868106851290480275712389773761990854647485458676987472980005304157981954095504973600050740409145029135907904339525525987349059464338494680107648720532411092116603712549243126539042599216246760764188206520054793795253744743474978962100906976404978154280346645074367307031580492638249100047640430816352524220198761997462817301788303176849192180655728667738805056680975973249123872037653627115166674394709352341531163288837274471773409077181179168581794055266094839179165894409515456778748840849929604209688383282306168351649607134897029094790164773663406945193145050164496526702551037436961375171707625780447758350109960211717661401424848053393820071039321019307569374401764756371650499523259445145189832491086743788899843995242462973674619275305532841710928105544555321028032524656547304723331602841672398234865496633007955589266210308854272095735247442953358298848548439007603450320576542263711663376623662687105636207742027370528554941495488824128103086869756591362885469834131752391585213258698327033564017330295451878643098404332256527828327079808176791728160569148470364047861868950521950223575788289955808454098583377805615896221035309792131578981351942750782612003386611248520268819370867636259762199309110602508495289868726103601546803749118719987654119876487754218170233478018585818456141599758852514373084569785520472274118406543161931218150699990420786995509563151279625856371151016971496609618390498368816866321172212684477454626020269981555272334086047014804155174024943884328811962180793539627358917521565288039627400105395122255138237860142563605302518310108501150734882874169827114153664792542161663997725773271241249736951065998522091246566490111390832801895893876763378505195434455500992148766641464321851852574170900842412442056229537273691388904634752806777275795710626285376559886779300589324819452758812154577849317481034563498989087328642802308678249454693405780741587367541920019989565283020186497196135252837558680850671479625617411663308163070695430933587364897061622840663341279364828892877582774118195397517024102695910086412921156065959855547388305850384736692609673497677531577228690138508060962445542347809151521556741471202238401609177591112027770496893214410580560019265828698794522354163612024405634787977677740582426750557371938046073299432908535263570418217321305728542357554154653098182314204646585869733291307055678826838955300044434385869326856594569465178699921978198511323243391796687239561901235832845670576262906796588877533154206513184055087202809197174456494540006523040860867608136895421726421832200000476767117376388413826941164726233705964701683998194098277718914306984866223385657398187489145344063122097905655659589471482086663153506639751113367734828250363969371834711356686868516320201896637130968306389643867964607111214053008358911665518187033240887138832204272933282747013289953161069152159134277164155963061420216928992168902137706456596162829989970748204127609420510437297144187509956588500959895849268179146758473220619286815922714272635198050215415710079426868307496382143535981677645132846182538098423033141828140704618596482980242557339422515337651853059661351856656690428331476258328488138525708839445618182151668011527406195846566167620304718385527116489550396281067405322528817960875083576937141371678567117584625079516764651852326207618346499031665683425080847917698002607686572265212965047624911919251629428280681658852490810157523837237569282514383136061608250608744803352658712601576017935270994017977022488033852726074321969161629444722187693674851250044370242037789209011605929448807419004864555717905241320176480837453504765570183989158579712267099611885254489760130624688684483837167493390960167571018962982848037398276844460804286081857022961242672191850520964097025449726774612604761607093958882037242666672672412369727661246229615933501712615234047286481488271287942708769053001810272754199266001205386093384395281511892502480803681689427516312015861824760074072833132262812229805932397950143332335316933234209866824515917197618789752187636449706314486486987380728991654775635012313288988747355321238511011286016156785861032911905197662177872567261965456290855435109602987621462962778731555963802197320576767094904038273462282468789272561841684153747497554679023043798147127640186407246857153339263084577560261551395896357392784916369689375339103700338089011941230884657591221683532227986272858716498215344389961535141311281650429444701420448565687076213236200435412139759659577634180895149660157351020727813119969486084095799596868140821009669875194122102245415867605424279276005372749849010883163787329472451162798674241906810058744137902694478352633842611700037867147548127568958387633476870957282941596583156840774511717422210253376680035082317601068560021209377034166736391632902261243030101651307110051202292301161306503687882012224981093888820016999077358784212208959963961496109410521542417193918593699835195439933763757139496691565271828133437285719793577501335519834444043592764383964544520228899679144627477591853864052457490756678410299664505820714034047669091124717989471272489027059929024302250651963798619609683306584689981405493186410313586473908094734359668637434828719593561250517852611864586378081955613128077051922525292103255588023227256117183265504979058879840896417337437213284372537949669659770903431455680962897878179487192007280505277835638876006180318929173611543437533108076298120407482773531930129473880009306641451872610009309589926224437828818729195656359974685324461587345985412738631002539659707508672717071996404126111904217008067248073907407196000533914349386987533187888976180802834485948433290697589537390634648831911216214709789011033628816330859151376335831665179473977802995132899265762440004321413311660834035983154490551905600140109889744687213882237052102819319664260060581529349089662805318995788260436495408540804516656846591677084285786954821040176093448732817996494880807415919352804724190362044002592138992026989412545767259296908130038847795684767629479089801509080658535494924032898992355690219395427381997618476232425226181382751554774262733718075080987276385027815672136649679464543533861478451247810083307675054427258853641951881442402148786795774753555361219650073619697127809815620864046991586940778230947680142439257056278478205225868194694061342915710909823711942977083247900362876293645637889561441490842537948962339918224387406219249815779576771199555180483769509714092164014056379026235648185489417547218936470792634638753664264145241754165651272747231648989535005833441319390670268012655667656245922259433044624843774817793268462797624432397144719852226869974493716464141248081252293295212026798138790511851449135463400856614775285747724411948138350083753294046542626004114521616067438053328940187266766910511103600692205398758516647135466707073590305428664563428886714201889421474104415250707761961271490256342234001674592525997735510573641269312738398230004132180640623863597624503757474984643868133428020670485485427607636274989535484437848732799229652513333384157537274004768311895407958094910837410431663314381900862176112400128724955137870676805509326115189021713019871776040537458068784286435929624894075259876932878351613011444583602897311021272182229198106741072233263207238963843310525139975361658229058612691035447111526046656060621332263926654715306805843505667421145847028867225310805403398462716578798516702739078645719159374515691049259196888775330648722957493832644586054198309700940451084343059375807309927970761455189904497447511982405530574988560881588412089242806168192838409292351143285476788431475241123770652061493514118057941949171531581401640811556676684168120313879835208808375637218720874998981838753969845074084763627432101111958928882000438684590041411013255970666650789399829171275873531610711121185418085321360326987974057193048825096315911583601304747336222925002570370426501227804031298305668951967747709696910666026924022479743439007988494097297262668300683721402702459811304924752079016008220969319973262958613538354255074829473166836588169285595999702683408115089906185343120737140403571316354511433830287855113651683294784724559948457540934581367407579741882564635706013482485803180125759355593977948990757678089403985360205266898173536406305620447912082492852330368126321545084281669196311521268376555872834005487214792093211792811358682283007517810562166951751922388930931556716208618054826471926296667711311483388619999103587803558346365461473393110259027021042466729733953895544163617546302338199182764863432629504213424928572372695303088691800825012208912984784434551798546310838967727378876870073020553528268395227049307494037197754311475969365843003024258398838615532015453353862683819349347761153482187751572960697691501519560526293154454302861607750009545942583351751959941622656536413883863682084989692662487169595061373553873462730611926462571939150451761225572775486050177865973447055954525916982586277613542439521097316142988140874258377434779037881449618558912747719108912045052993131155576349414329241469018645853125012035686045401216823650492588624357624669833448948275411818102514166073354318005430890520924598100106589558280189733470020079795465420888350711597841293308790512580328573392096771619703858611805484121844596445849107468988433950000205080587002816512947645060553453251301374123271789665956297448002268678876033905682241623415894738076959017052297543363984450392384900890745520517550560726552725261866907276655262889804426702387699431574773362368063401974760374588957856000370319845631485561640538849701081161837117726728538416165483981754714009920201461989686933261340334875762947136174308789882195072213804422604251389904406972959609663576680061383361369506656899695169639678428360644877662713639696287808804946682771542931122096725619233759039147427934212428732675668275740492258827876139195160973112559270912156706093366016189797751298649060307269312924060098978778054648099645527662275393840788269587172143723271294851913544425739248101963676140799012927336271325542302624543614684232439858356971420566122907397148522560790325053028124966865989582222106167320607163712878081654205932108678116967602559866256673645341084161671209887059297568937229681267890463320007872855131895955201514319711523424315423067682429740592880905462043553087029423901879049260067393452594637349662568421386489449489850794557659564671278393336089905662559598192117221883178293909092469419248327845258214665535918607172784250065187507455414258144473471489634187473023804757964758183221691943296348638753099481461662065701507431029341047840364821267216716887419745570227147852334287728623754587387840245990130165923161928606766654854259353974360871360415799434261339945491806653390095635891088078684650013189511317103399476899406093348157799590409789898450947080500797701493839971199438115364763500673983684235631426452149488547834294112978957348242686065427268212668059984843264024511957529411728725132998882408219348366675992743410809113691528321454480769970007491837322494596160599914277562873079124899732588907895530212717547588063007052130937124693038779007987702290512629861735919809825274519902655633163251528091965662911608860437721270336404620864015936981852809671052033509658578121154408971804361748922112855990826959769861107638129646136181479137971252224477526739140481623817808878123551437237915111732221692867036387087022564491641994311624012589308098313889594967532243982458225648704010592711098095155247843318112018807639367326216753083740035946292510096328889840816938948648578825433457276515282159555552642065519053839148058762079069482872495679465294663074863239397276005520200654702287311206151806742227412295516657455384998599316601463118232647526213380184769904635760945528726382851340571310565321144020743759333466071596979544044823477902774135372971812767201347150235022290803510737874808117474105521439264587240399186723725364107226122750457604843237244222958066909090187316072979188209284850468126955296728527930028747859162462692919396116191769070634291544752973465639037691203323947239515168994804224220453046283902922592931904490790962988919042510839903534534622182011914479214097119169033681698794299942789403782837001197792094902018563500170806475494639544176017114718801192348953638987640750196954598189715086383867130595137564187912566636483738032670974000476177443889339631660710955924837408594567031882245651192829778696699537408217317505293721181642096085729383288261100644511130930826156052115143178377775560634645602370320167099133094615852490589613385841688018235677877473791974995120461839762142164734142109101906385237095889515594825862198788470109138344203955026937927216204780067480745813215952173796928029318387893762410501188899007840017696153596558623814226443481421497493510861742972228511630236266461490627924455511076190307908070222410476363443704161754614066579913920493689562475272486191264553137968498775976077774944400960575979884978521741263018496836972018680554435520218781741585693907259989405286774571881491164457545828704512601644095312886309292431202568267044772604299005362181824726441238096766091409851535687072883730277695318453049361261906949313159973151503743407295907234980750955405672810895777868751088356937990713925242091955291608461214266307662120271407870669303181207568089666419577972145105243421004100317523205343135736646324830693805548098229366798794880791185708480673887213439606688330876115768640776260098373651810797067531307315546627417063640795277719563395624217388702285715268469593900907048019709787871533669781289059815878089812906437109590426185985930459428404247430624912906571321658070120364145382377624761787478574958724838059074827984524320503845557128327515917820982249339807731101242189479178671690538375587908468443458207502344318366791069076841969630500178394522324915987865757137758406109011303214633987308461478990418560369332399086053794934110280882504861631618797671620709562464533209066537351151087574396360071442473224215858752292492055878678436832431915712942459370664176625057507952498073106789890903777860858014923596069748453796410658593086786176589060002637877460895629695564483814313998382971431904811704619794078818151172706410632850122106951304214469053418624388146915540935212903779371098176278573916217534054590541178188088048186913316191820135455237048737344771080864271226415463011453789540600546969856885892321184056525954359613130319198103038391088013168352778170066454727555165973699973033653522621118757999761380148749438262744294435356556784553750289653734761047442343462378721810063770442674267855552880433183934916435326266528631682754763778028208717201872520544803151018770852554817806081989689081593054907661469409237691168001833791083383867186864390961436703948097282412845660399061046155584619607084982834252781968953705288661222203790690850420657884928944814756139800108544850015431565792672530341153691103642045693392058562861730518087011046775678532835884723077912350355737764189179120521662502899008764476134733233741626270481180448961530255608144318676837894071747075375773983829850805430134934102124883820547071783850912199690603934366300329111380188677663420030650248009359343782425633156285792244599102654247112812617836508752927182843074718690514239616303984151172122801229898050379395711890984364980016148408046548363462626973106679555821300398662988537172856174109403207876549667218704052014746798849852556878648246631637438029468583489078354832285276326939041211441570203173426705418315190940180896839046457457601421810996583802165398937451988856393135927374528522086441576774091194042323693180414768185444226658296632800484821717613641498978394299088417359394838023942488011166795240869752085159565678866417236997673781856008326150867007151330999516862304256261018810984934907367338726333749197335919214077885904457649616970844332540488950174704538502010552879911705579002234826066646572877070450252622692275609908788287743041611984288274612401591920248573021236195235371588588744314116067957930068797389562885287038542430769064263948830658515145652847684530481819109115166666190657736334003622806743992603541346810051997466433531340115714743702677914107943441388329624645159860828246137471897339634077026979218434170677975267658707415860637935759639718223609029632790998077604411837064449511795817624785309685959929360396423339422509563606715726186374287944675306522326031915486926135741074175434344107429002734564599255099808461974498174483845877103004420931866825032617600797546816425308652289119718888339869654365412398777893928436225400461704634421307249563683356560473789158479768106396802339951567233171652055355407577190987231187642939746602241085024384389781447806544721486541312741252020040455203262199274189282701849223441924816274947468085254740147960925941705886510291654998203036214826012460573521362284807873157616060012264426219114997358586797396528324392925620317768608856010140923535052657971268069285672938412964413492064337787041600621056242404775086393932420440188846370534816901348812860660984517111048980708361010884944238868001136360513540612517980168450189659887484688443973766883303354632695762024636712630467652891012704290327310483090783947047343553938201196583439893520235972666027120317398767576828731804644435506637278803849768742028590801939034853328947519955760769060447815577215028574701016741790315343177127299956119413918438863219542996167093078043069489058696581679623049597195756228195195990593355273580710950861950908504081958083564878915994304048710609452787561509982432722205089303589796860901117703556461701340125153767843692913652679272134008219430485870099625803341815337779523615173810175224850109453959107745516012342633484307673043011025080418206213850181010072914682134954118342469136458973463917524511562724261588557777027987944220732918955259133267424594431493920961887000764833081143928565474857629954525876892566981849175705337380923294850274182144334419343083014519542793018974008292843706419696292605772545463757590152446971050158336983528090061134528182607276644593814013229012355552408164217877499826661606758185729813123651762076241549397734217644418174966155249907973173428159250080939416725690940216392849599365875042401653839294684156965507120510262200366325463906496566119655577069635857582842459094888087410160927606273689280438641819834815336669484964580843440658863071135854651065285854741885895744843206668850011892469868917179808903509223085284658460794246770805234828729332324056416412371152327645469533949965343421064077009472755000403900737755816963410535307722994046479803883511029849114229742424913105902855344432564987932864504896637585636097616410549914016928806070814824100930533577260044603464453013369642591516415858909789233242544016670765643923233121969598882768144321067019915850593221692184558990680779310854605807497674009934034050465942124501246927593473700348417041339202113688824361762629956890460630558250988652568012385260068947429016897434251437643799653811936509330588476538536437059048152270295425170188351039147522869584014507272911425046226534460613502008705479870743339939665605473606327871542016455231700862870671689275027617588347496083557331319996213386972444687987612077843431093457276034883696009569274065503028815588548512232517995749175236424661610593827283123772960767857909108049453872977515613164259078482317540295342157008483286552218999067207754063165485907750403204686512361807562713899539398796000637412592743225739187438288762762198374361304372428530373871208680066527212638656311340269487429266542436075385885177989698269260931379204964522828850647751775481525478997241806231678129204688151835199330710778169722091507509866039923182891041076065699485090341331549134192683503527316493606787541948434953450601790681781389583164147473171423012611253643104851729089691694735024972349781560759168569633789348012894959729271929899334346974237802072167922370215168464602042561092242313049281550573959020270734768684942960644600942258131632229354757620375943334272384009563873956662115142189041626543674877460786458358620303790719955000462635461615073399089251277086416048906855170690909647180733121872205758397869535166425123173634772884196623677388915004757371552143676373204429014864299321408633751856761565728493312787815051819309954681800677547447052354757039062019500104931068997923227555343535600108564690799046148938139541689418996954254220204552296317616775435646930995599377533747668993589259899431228314066190243069228423641840188972160337254382369708299461631269012258068856393108616058887090284995731964592715896156442683392010934128774500852546556158269017836466881552606050561297439762362782354695180022232821928223467025751351383992887504929770250128191087856817308936872970470861609514150777189630425313708701582883961581597429153936869492820404793243824807906138039706434858538383042309728823187050691021707019845946825175728552379806880325258177687991552442030199280310340246218821906410831763140496424728365133353202179595726619187726798149865727346033521905912164908285260910617772804142780298360829811120842160064196128998902254671171543750722789436049674156697612620619450641312102765806112590352897574341002817994096842701670605617025448073941213549670971116072807065881255107372641611080726924247548599091851887462236102041837702144467299331566005042339587532790933974455409177988597995085638309534669289508177524835609343905924708678469738936493933636127713502869860513435277367108939393379987100502477811973365372879912449059875919116033509346571247681469789689520429597085736803501772320513558513531484675173701105562913461013570724875648153944735032989265569459276429328289720544947480280390498404798754227279185958755467195392367931139171792681169005711725341856139198275480886178091707092248575894338861971006805528480249574578090368286338198150262224678433784926446868657215240013672229688721580533368718608651106711426039776859613029924308233355126404585232894051108036626327465316613570784445716262381850860957720329462190193729263094175924183371224860409369977379855658056122248085973308978123122756204635402924377659541516727634391441360089923857414332137164404017265232987829646638255990051075383104399880295862218685855148969906974312382432975045603009209914425684910129294268857455444643109886929793307694653546226582802311204763370904429943749294559953635920285394293992206723159285802297922539355418003097305623815234313916179090452073143934367426993029381867860689880785040094240831144870753920046662602507666761587218431759953383981865338681686335294495998690850452113594009815544111438862021803343919720530392145554791685062516045162024737022380512974538101362551980441399043375861601886318483134402548072560723278502769883311856419137472654443273940758019190259576613470405671304722735504105658606775716059923199602152189136954978773292483438366654228041805464498914772144721028114964731121805689151341468241349163342152310533603491022443346086618971665204395959324975099120154227651441277413098369622083958675462430762314839217583986640014491920542052909670408004540140405825095702932180918932643892181840453331083861582340983433991009437621418961113806775455928295398519584710247629962035142972502411544933543796329274160494948461151444673679185554830734640304437296608734725931398711732764065086763971019953598311762199506913445458081138570798546008191774770504145332225916768552562717168381972286465135517117803452421817009747372373118271262557458091030990074661177022235783341674693847375200639435160595342802167084083342625881851861863115118717746455730208322665255523800690618092563289721196680364024911407443610239750505508672288964495774886185207971810542970771192449492549752484316307449221481007254652650646591241303503849775946132962706938345477097430255166146230684418282675154600033894648606648508521935491395669030625912021797128081721217546098268877919468451492283705410579158086098572145111714361129467972260155838821131558612906629617873037414076126893590383933516931264247201131692117571012430933799192831778060310217576850122739854027424351977501904043182010213468644384511857993866525180896342818527299315751017238727139946038222588578273491451543630674855636580676572190143528887999217593760670827513218400904657152817835054735089568293676606615787373883038832750928789421719867427770388021688580351901688175812536933381899490082016107787362381456921089105104269042681665064514102211957937060313856438224763872720551429641178158730859944595192160446172206929855080870350350400171167898716361430488631530076365128926521021632452829360319161105714494463592856783481759942555433171729471961138181637031078866525480033859815348363744676272463843313036224289367611901737080264944116630320484963908601558997103200211361697111850650178420647379411281053914447403748939032847647527950060018621698700573469200613994362241661446472150209602617511126297250665789565408197663157775381047688437624328878856073877778478625943073111262164869252522931087799591346703851732599694226695941046648808677543474496380216027901317293159356683545212549580897389455608180029379065504548092232065800079446605098880893434405545250787107676766521605642299982735820334605621411912666683581303747437812050520555109805248191281197888895437077788962320512825264032238650030790357413703040420117143818582357285825567646508132641488797821380230792921677710672267065944652681201738805089882814825264360854934947393732191181893564714896570949751867447225420305729252421801403117124233140195021486218344567938691284280254018674064637693705247193792821693527496723185871539652236341090025315475504814170890766221703568894859446386441608507814256718948201471867926520298959650342500511512037570666235464719554760917549141142671752769229825734806487648117259298203707296247428318056131363407153967008773719693029924013186612148132191453947330237081768426248615270570947616676154206387690361672795098981256212671662956670660316238528552436900077762731858750348547250705372972743061483740125206539887050278862316458729755187415401400570445480997433246449823001443216909597372629632709909401762747207345108842940250404292225069267302868709703602943070808323265594614485202654728199948620558136400800222130085917725359507511981865673473910620775776813844018192591076732735623430944962288205529485289557197152141470586528218419781488884993885894126925307459622438350611500779992488376325296049627335973176195609558849671639177336999295308206812085760818033769939854622366615771695758885889831296825684497858809609839255750734641420882298941782873895871190626248245262832001230262174661609448086827760187186146700544845079631945556756398866689664271015837665584662954472637964760355908050185223741677222625272768835353464109322927386861094695856169143283236068463363863504067822795486859254718842935903237336738321964909742543558300526196977251345437583036697934689118491828990348761234581598396115655926846976567343065455245242048987239505654356346730751975093951814194309387135210784893992644882787840638310745145711736297479603901989879888451261309731634948211610652822409648252686758735670475902370171279875079192727737273605390445592389280465119803508555849253678653102400109031291174746425153857037063526437789116489049251455813029366261824549612326712269782866465266410227003053394541878339564743262063183501326137214061963650631038157998040022629590480559739966774873910306319546719039493801842066228743140471928430242682922704413783769152189334812109297669705905254162532905828746360883222909881049754072244137068795683088285583250373557745927238755036145540948087185340051976668119414269534666772983179260001057588437325772952391736374060727370891305420413054139078098748239748545363712911896055929742108400699978351217049678237275289616655038310122135808835885856679399910922164078567278617468310340309920639190847289445886753746319551445681723374399085829037106307277497024255317952810814526467440861601660415520103365948823907717149039505815974770183508617384135275773621259053468802295258334496224260851611901533067707635812382132140495148892797427410783306355076018673312343811191306411745693125302163842422175334756003467096884805155377332258276581092237293171288825987922668230774113495230724053073841333127861996340131271758733522386710800143640997055585476219521640839247434258063136027661894840873811678563573636544093053174132530321125794584808940792899026200838025622305197750335949363006379397148088433670571771239449411945988671502134244864314028044243565805768329081092284450464120999521438502867641276246338683097646795236921257580892492543705927577391673922929333906529822813890536122756235645870819281035713342880289076096444646707911598438763259638628388173166401216921025350826308255530641867275971211630461073156180172356442644474644716615759432893243966986198144300748055001532463056420205945837112417390722309283863729106852057055049750832489453585589021800151968403236773160667756210019171668145444184895339689427353143670946222098254331441055660748937585259918662247660942655011487094951998025060037624334759623713532726384084622523274539758386255076441647422300706009130742676267742943906114622876854641300352752982361309315902341229993139164226991140479668212648183592359356040586686610834325510700093823365323865384504857649435787286079434363931271944858447670902758158602078038196843727600802969541443414052049443126688633553183225356371689692644597698301804056538759673588129791548299922180494615883070718601071319726494675077606700363511478819844462560085469496403843159222368639859084370809580143183063043231489142104135755066064443062843783957845329890994898299104338820263576884195874996684235675151922207707141304867947173077016323278751537981490760347027058866915166388223286666593738493694225621798597770754379907065805012171539180216961090320499864237271565756301778499643012009105190620196391803412166561087392538248281520948173694447250676997608465345971079992923992124368115012192872258512782607385007925794042651338298461439562265662243738653453715426453210128797518195522941832688880089582320950736598402522332311333200673205906328649543589292985408766378150799332539121435807612859629745981191748383887848656491988324935687198397440977186055951314299953564237256133515222875980660155318242381762519014510351658901861882814850105400202361718985228796213913283696008527914907794305229435852367056455921564889384764926060877004879262196479011087412276824185047377980918613283187598884359840338026930427234825950571998131639410317826835731085599711426830272065574059651863844702784807273691392383578769026095731379319827304999382478573407068181862722921778191558739268658560183857152345266890672806607893208161688129044623423556923930820437349925674485252153102956166518325180852114575376826613203802986753700598497887473483362664173570080314037270741376498438105664833086770894065885987413260873146694841354239761308039657798707147539801254657489411166889837477137007122868444403141363674137600873752531668911011393845098410541842113554717613183985426607775072307778449924417333650235732578634054220806086427226529077949615245136925172244825406786633223223429857217762516303294475665127690817538135307477921225764754841357973171807519032084338802765350585680246398209544096626290710606147403250791228481018762232636810000108779338621296569461810276754853710842696466622669417882318544436596574076368755757934012518700662475906263386554859621462309606785161599410741675641394881942646573749132596143904363542051240586763492079792263630164719705153440763003676892622112532016698155323823939684065275534910023684892914127291329933450546884302504785221712194993703394463046227528366085199403918266343490577914662880486897723176505012260268727279234495511908186930018994990941319818607150772962679224794072067497989886210945070230432364180376140113991076037360696865095283680854339725411871306811482628813990194435899998674220393152577164212644565473332458887647642328740743672913327104495112339050222164376120970281817486207399194609637392102954515088832387231932033917488276412228963122092486686677098765719860272818536722106147463416076391079442352821032023423357918788801087501181922606772803700263748704067278622821109977831016503261905515208454621398336852696325400560839891554033360936409549909827325231610582849948925759551340246498206955493372995339842137520421932472918094366928461009725198325567254678797927194755317390321127524261628112919940812604246709024442846769303517291351288068432720665983499586745993003118170682824700458385122231172210679423234333007979879179869377044082484991583458731269518702112328699284097532574969653260929618884639614935022557155814277845534116836184204211278131920974385091096359595379191047117377885646973303775500119974863525855771566129728476921623737522246055831851178846080255892958981516222554069544790998403143616964719251760463401746695550479518255379200095024045177463747336078571653430660024412250535023790402695984966236823654990342595828519413791442258738235971778913292290506088096649455184594215158395065549808881015244440444740443307754699186191890445204662474495353540498178575687617342973798864315132283907179594375916674922644938798898572913806358321968516371545856408910564538933569526423600979788223499383052423066013363554839350688249207752543789410642947978519096102085652262538506434729272704020619012445173978280530239160958503600566924432128491921769938074226278761992279444016954792912174555892110445602704511438068397237377996477206104966878671263787856427087972130346942365241255427504544007157900522905568229837732884543182541757306365703137200911103735278711478191107992511575718112078892285037977397699513726873612257285922275111984335962024536088095580831004268771851522790973444237378801142600699616356592161205579592120725000695819056123689528876081712158047624107064762525824835153286132063908365318087185565989279932622277123489917769454319044288821976804170102423739353635019054979220975387428039885073028969310022066930846644112232870685984794948190800785293691030819383929648913651220231662711738723150965899834526280466855935859000779083820174316294332321534273649799769316376709918514193073596670029921416151462509254091644845932162743464477239759432041647152548616685850760472900598149015693402433875020713185594678833353468623245604110371327955386013761712187502061171044131558305113498632558019960157809347774259184163229446461353622348052418969337719793928776513691669272842330140237134943020833817636372456947711710792966910272092817453367696825292524766378402187083835323356310260674442879727285976363978429044290143902167001989885169596931800238435577994867737856867122394016811926390967153205969422605787604302252922041816823331664722565527673815543559311326027238573692957051174473930905182264185393137834960048883581671199128579661616170462740558720973940982632336010423439648298654562276490195812232856035257573619827479531263667588771485828114137053467947321587067204112747982753224916360691448887491620141270651713196918891002915159390164703778488401109539095545171120696503779352317575528115997862060078637851753279537864524227122911116938844202256269741775329622983254789664078393960828342366347296634604437749806349950074874744132372940529041371236161633483655422237183540761622704660505416807359069048429485433012491391879751863710422447663102878236123160259405173017805753299066624573230074172711573167963361215622034854980086200401106060238955102018122615217139918822326532654975654914625500709646566410047779803576485045375518484626290441958460797391641744267932799663463476420694778874167774852070896051140346927688962252802697789509807756031395459119053644273962846830615979942660259034272520505553898409574312955691118854787838808098623616604876591494006877465900221521935237705388507612312801858582829583502119813611028436327502939928507685453589373773084104395455635910441613162696713847558681473339870136703829274124763784198585036692101635842740730290784215602689251430972167764345690761977668604221975942160810213185134106324927243543798329228710993648930192649538548003180712180069605191292660464387459040789614268872281879034893175283221057026320337506759552318607736537344932270890552606845303062525249925377088068796967708809527329475607981175561652968808707026665108171019488670255890072570219838044910670495158899090985337032102835779839045221094570569809490426434382453071894676384838911321509719421724917585984428904970848260567808706534285781545836772459863362833378554036394965322265325195292024965442146242185865397848527244127144903029996298329908768972275930368909118478375867099368413734610376096785227412198447187768716432486007412880010277903219353835770826652001758472267971921616978327770718307662104544743290156866931602731937209348052575486110561709715963924303823022722436555466729561074195112226776063265667261561210098608676430154540029201067660940846707517693340932902821773936113874954211526325575982044102444352238774756489692048391654802383901871978364617677338831783858042827181757404860661853412942999159256360317273723705971706098042156119725096220216887256598219219552504671065744406866925252940307062655500378475536788771250764994150502534148975195149230085505394016975238546517709737992838062777434696630036663802354502643928127439503005473656481130682480912348868350552925219717191995019923137411596637865461059669086352661176127677098952144359633206119798427409708094415022978920344883352751049892386288606689675199811560142670365074071261721654557345665801021558531307007826265621039728167946177081935509323878055079472826479157837997745545633692526358308081375345411598999109247998836275399592637367343973260989930306089551009586318695857465697510873935281909306657916990232639085179301078496300465659767345100981485272796072999405094234370383319801556524145527426218074831429705702313938111989839468319403437634664404109845975747580236943286165198956756263057345662661293635088621518621221429199896785178967629190597684860629875517203364114007655814603626702137759741443454427825745349179208962695915091950200998905860892487041349311690216638478366587412343709650591190881964882993002641309655602977364630070980104104343672059158511203109638267222893374947500401563353453155647856278476957251099063078280801267703353131732274517308877215266910791057171274501496163344507138835420691773153382913334963030578092718002875741116078097473165366950013249051585381421537796778407313586405724533826760992507613635795439595589859864462633640475235065692006462957237869698260808949206791234561835671636190777952900658921452627808916105084756167521620357782873595438735471292742282260205712297593945811791884083342758117306019167815789182850533326204741329164372474035144182084571415902149331405234940167778513409449537500734889421769519549219187621919197870410125000047938019930795694586065180880909129222884268336181755871908895638249804486407758390346633837164883619448296064623803952164275721296959478633256518790147981531978421044789305295491024575830289537627826793139995154808064455179611708520821222971021702921972571427512390669363863697899744669303249911100459172828208874216150244709640271263013945189410694085270756892165798082572905364116608336775841367589800950777545576228991460088833829736429443810343122109953585368077073089325803301621210022828625029642145853231968330667265691128922762642603598362721976576696819922778535749233994588492606965927466152251333195435708711268359143285821760032674483812911262388583967921810381001814509731210247989291668321164274109015615824882210704407692253693521437998647089602038614192615520628569462373678535448334250712033198283687619418005695548573124438483662464237144727635080654313707853178355542482319388400411009504838425941699459898740487895443042070720294235606377320889593143903317932549479386557715106686678260959074974377588096918446022390440351498068029871487770008823565640445731489137386698667518623283122220027462763769115239693391890359798724546721220677695564044333053018931950709801754681153890527542915219831183609653311503903128092233074633464716123610576516432053319637824402239030475282503618056176381163590510860696404658865385458418021558591198610870279293928111731575809581149369137890737472071953377391295843475341112022288787815138781410116802089881012050333787354504040436747153370697273273970915635697483461700167507419746482513716778558678239321767053158469473549759004669640990689776037639854424475801468006714913881733562213402743073066207805334195149455608476226444997515901945431286751250987664161426772753745517019987189383448045090151050820861341879955492524543119396663214555441792722563498640944418752616413068539905922243812904306982291982246495585405945565551624476196006631170600087096290297943072163908809946520560712705793798473211579670341687646687068473234961135132691549406681765300063858206169463584003614400028971644982279072312313615045253154196369847805493922182484707106784723992184824364343911356954965278968551778570471572344596513023198080116803312431703857056867229996793328556652514750877791192495367930045242134407017217777964560716939483784963495567349902333297561582759359898996338367330371515476541184706088754704796168785451192146028788523299269452469206569216147823705450797094562305388876210306070650588817437378720387961190725957808645311730721268563867610641909354658334044743576608372401843369015491431479156264328926301220206030552289537966341839433255877269773847509350502240707643304862645631437803784246961346874317851117352637448608940480831650852807967309530776937691958654633424055156737818773079923713691032878682432203467305110151335766893999816284204280621229648756215639692209887455248329235048250255090049943272603835864834174888656750569407258211971520981509029014400383543284738989630514661908924878382770299467278497990523781142436790776127058396771870932756614304033828213321309520017642098521404077268175543666018956707989900380317000995361035789141712912216354971369085637785524096806957259809731037214582590293810580701008094372808669704467122272641516723146700023979761533188341890184630362915089403040575546031716770112448221278880792939422586324289330565925663482317437855894196739322514415616128815605886028029963290701125006854043230458275048007737767390510574573007215013809748271890654217460568663292834678803133025397843516660693908237361146038791243205969862685797258508859985185869898528062528217803749072753050684683300292772671224176181846929460956980596166693575730457865098280150563432625084645055916038696448363530363097901764159729176683670411789473259211923185404327111979113440712041873126180531133758067383923370534698329263662105781043199755342400559744067449815713606037770802988947997235827529774730373406894261480892009919866400366296669316032505335656448660407318479441222505309675271673551612796121184669057546144411288295050916887419740307808508846210564153600538354503927863574374772294557234614978042754137561148663184146172843585151540481652430906925795743236727209948693280595704504520095289770632659849146299003333021550865896677732864179840666531128031534092559914941907359672615585649281616395893803462760417253728435042790912255322927966568717039808698633882085271674273822344761035210305358079569993471418529722989150907933577714486806515788371646173949095617944205422523052423963779168635337230579634330188105122539598087779679593570743086118208619658109844787057171394027811218980756921187581430013883052457316783953678974760296245550065422511647847114751219347209419935404897832081662425898298817344216073645551503944520800411979443608621177008576343607395680314477436087063706303689865385480080116255310965389291236565666585607010350439542311550152091987173584791483273337945861250058113081927692799143650998523364409563248546249265185873754513407068616229806983718998303614604718819407556393275207651084166301216099299356715732286274292414648289660248414513214136568320567925130254392846713442743577570214931727871879911942784922958282475181103506814884442480165247493491272766592374016486449130333116181548610002320112848330174870507003934919151852138396514508025409165950312077026756940117273140301686078697958518379323154275830163083116344507425469782305832016795594050385039964162113336905404922970861969471072765978710150296518033358495953233800908222467937707951818785992500386746762702583982525372709870805893067437278718577060866978349476598949115737178345389576462597554308184014291529276691388820837916129277477502581588787897463702190983712556404009036714127890542231165627553070380347186023882463851789988648953063422375564801453695057083319068971956606651436032386223175306227828891339386732756429313155952356647626077130158803615822356234327238830250672353663410876699615165720310051296104569995768169673166632820597661518338646247557409112988468698205122823345714019961752108364828452777246658874780576252798160710014518544754017902715885377618185150738870126168327640205731282549606147336735913778376263771149201218495532275843197460981942050090375724501100361985101538815369776844630586676659014821307902676763735186270734574191603668575864740253166267880193438495157151927478247774076792216209452437935442680691042579931885518442602054013928848937263941830590718268166778216480885094761248592035858102574170379285485741186247770147287955271731113750552576972245002607680117771500481749105867595764340438768075177491538195531724079297565729093178765936006351942514835187562145195541683557267249262630133825330269577349718723494930328949109680597613282044872753974501275723893059653856258491683782505178483377326429267343474286115065133815058299751014169368629603602125109864675276261609168857191045422870394207966428223360216889998003450141470566292704009068818893523114760844261439444372123695973693089866735799934280853125131667064295123492757573030841925251047787566955934786104616470665965141734528354025631912817113720816543595546336184002673240391080075744661880786642693821513440902182265489335128749513902874416587455926056431182178506606615219247252248027110207442879205680129770347290428088276176186560000918829572991433643671788828286839282006557864056264182824623221761176956819456736871808945174949646185122360017952884665038900149130085166343387840992783579437682721791390235053135496241527626353567436444159794259846157826963524325846294105376628375716410799977525232366400209728526269018442879313210861280983918049948109516977797223408446742008224889072420878654451902532204384532641914511084929233052462157502977231237158553972660401732830216925739474822485067015024279157491736586770207395541097401827593743662059978071082595199331878380086513840465054755501656710740488350112993570601041669612583965677952053849999475386532587082794067024104848388455128047671963203108658409874375189110723072903534610901641592505667170710626353966445831952490790346865165729978517367154454186383386868348107008681107643605972029047822147289614540323642939769687783820470410116269796181165104298003542911650071625542336766834370459770520161621857024407339010140297937398767939352688687828832020732772876053937884405333232127357045197702139513890937349878633195462209487951226195217479373032827776392614513686462918433766902821603819819552269277098960551324245646886427928608785092789553536515778066482185221989171984065853329141414867462038580363058448163921045679108723224656736262366870869606338563326528998179766641477856821435579394228948682755603065028550656367041844288534826316623631540010115436758275183951716400147829363629859932440768966547168706271055919881257355899574710448141675122745492628551028817933681696988862356433261228377252063492903903617696732567370652282000662467306890348761892223775672752021663504960948978889088712418173187994017640074864207539657746686881096586984565244722615088472731805031704182936799525704901962736219113066309498756286375752832532833678652076573432199688760138655055038405949395513646760778080016017263858377592429384548764715678672976461339364740552736507788714954644824120634646163126789048831527743794778332149908182145139581496515909919815736795741036803280367466255784423650066669966271511604831136143347956964159004041841831506263467943281072509382677930951326314768780853577287492810487389482616182563682372729690207493930795653488176768583993216677606974808633816371481951548365881509273531987626893335975142913784357775443776055818009991425243971212333478574070382658116975496503016804050813781992822897388361077978400374760697983060445316439198312250012343638050383917196743605412924933734107669108009717418404565507496876660288561305848400074357466341839371069868467231290325790825285394662362601157258187037115752147589959499005491400266978156927710525395951342319240782046685274737258911823524990991587102607055107687660117020616569283198323067931305359424563471580957456895362500480796852454565139890110470254438684899233674991432344202725993860363464610615273744165246118373592237578510629581284802105516834890745475374470846954679539824009311958148869380344849258035337739783627741498619267758263930303290916905752236904463498227205210010177979549549954087849116452101556772742038672999224721841400894120984501600085006267653655941774138037962111739887001948045215198192384142227468954633617588261189342220761075144864392761285066533748431993808325045190028291516257204664592806274271931517293113243798802507888856718112110306224669055118594873276710447580816975993083612186100314068849713009304107883003903233964428548018547324053692609087196557344699686219310031604236907093690647761963880788104677475711330515671854165813431914370003590897632729949773885093299035656216882220231452005538399198058545860391445559618918527563018625436745132070441486405817448837182362328949024535353770186827263730970417644860691573534338957872318642014290741900628867039362002662149337271999713332280402900053007793540451415205660887682635085566735491992817988822293003172459853751566112734482499003184948203977093237087739889764678865341258107721805500973024217793851566841468065794681989319198794998843769506376836314505422139535624877895797780924109672442715100032722115199373818761340338309555742288657397936530609365803628299053136355097899074050174570038062146974119230993209291979476310178669891924947996942576098017348681952191093704015131808479415129979356554037768312305793304743239426907395297882168840548392608981889136394132449033069521819191716487949786099559208454850760270554235801399183971876320092540693111392084229710418798855305226961137156264018504211235974794959030037787572773565341363545519089429296808679513578115573159552851464272999058082208887327645827513873377930579524001310540402654043263272986469985025535763094321231160961585032531932751720098543486798263319393928871539500822838680353165157240271612622650976011830240655275324633518367238159036145799272127605097814613532871757278748664951000611885647449113301927998303130173196882985879638150008304421080966054531396367722516605144268976270569582813178811532977190714352069397101911527408757078672698244334797126541737768551085197523874697347765713409687257896042425673649345666227036181735029697355795307098457336344184208574169771451597012121203099833213956311882543083600593272181329732196053376790256747117305388127636728309356102258897293264133419117987229160295569867680031958757659833420690788744876312039814797934881688114238413084653814656792457494992613895240735352963311959408767251518370506028983075873157303175730524657983570514695504301962893865519585049741236391155272516612697198732452168601416831640881795230084866396546470360290870854967036184203577704035106303618379357022290855495646486227666981798606026653699825320298795534691607570913884115079599394962995061164299519975678702811718589825149361056690673952198490823999350575972948119725340874703076507145039748589072250764388407145123170723038110585290805477555825518825593918242666245975637376031049545290953745635450249550074446910420216591453474327452481256020221280430331843954725539197582359398825419892136045243203089509773705962334864102344031326323427476433014540988040535433139679534994980564076260269851849692154661660966364183070982579797830124962205444912379241250253383143117080256081178619826881503820280122127649339830625476248523757556226435199378995993479654244128297171858254979347051022739602022941082820009074360480985477994496162116170475063700850543881073520980062217266658921809835090692473606853439179219454190733734243247066861461309530155350263190743786276437364953153037253170733587425515658050546585680507851151186335689077856598529263350593237065197071982354991100319995501750656988052658612065308514968990813506441042936598621992506543637268509468316210919757901966724369299917254130841092250358698856228825119622184031856019669407169331865536286657589308581330898053332470226777502876169843256110306868452557717626353829873329962215945799274307915971633828750030326599617199696119236022702345834324963960525898839356080769109834914124791454519744684037445456823467456197529995841051314295535853772954855286941991647444228332555960286015265664205526166902486272975184270722374728522805084393183748184402286839276541068566383254633227672929032515384153079053749280236690818753030176002291194138144755579149255013035167334626364107139684805130391889467800589184980449974773993553328034003525992026710847230181199180643538972169254260112771097232956287316935332487570549176375358141644986365119980101263853741889207316932620187580779827005523371494122806680291708591349592908417921007721193959400885608304644731416336631257372842566186661419672744938082313400419927377511423443197869066654324317460860093221569761993491110156727353999422141928146476320005959739434271818439687006854423378731001527092673934671239619513663669344315116115562661931637937783902135614808972079629370946012422196858910833541479082050149878443727267204867555225466807159578237577271802983004037534224117146570537575261678862963376722551141949672362237674535036118916357082367659954419510102865133391329671539233322788799735106192543116582459607216184274563267368837304167918515704752131099995157091562094213614296429172485151401963790936566175879282577002862115255510274430731202253680987095887256668320481702167084733544060368295900333429762554308609157188647206076416587909619133158100969958962970889746044679538025865192171337645897197462086956909403658042590943817241994123163366167447389914783462894836050176267344922676188768602949061507436104766637155970509843969312469700778092126488636031305557185345690310556947591408694263769501741283709660236964835425546032194193186750657644694448418918457709466381714352249862054562176151186515736005051816705520662538237773455507909662381107555457512663468324721431658569797954681788778304203034885883797908092300649547524781634567415804172395432194775812874995046129824841580507630758145087641271310077143812429148085673147317250499123963486588786048253127395621011954278883650148191790693623247862214504309933697976041685569690552323564967756298158258796147728294842751321764592912855256166298614039079812090172038860475346786333084124527336303773013250216160735162938095119348418291627411285799756059075840237017281854255292740911862133118831628872569182194947057331555792870728408343740881644687953581044512568120113881993197480509892597342779330920276160496727123898213339478307687437141427542651913265974193748620837481694284237467305624981288154615108436059168194385117398358085467921833282296200596442863211543112481035411625481774452386366522423058878866571550632998525734646166399431923371241636610956245156521673890305610434505142342754382559210807737869800905044489805151805835025549742082342286375466067263085050815432000699649227161127115142719984914240400176231833032186092394379113194755170196084567418305244445400798312051918141851906450621037013128234326088875157893144374307635950569964425595128912705960744395991255515508072653427415377295911659710341110987529990392033771029732113120302744873373814849186010391453065139003446088624881614705468261172255047661721459253935745328028990150854938463555403784799143929474150232575075864717573820314655087367329543517763818115028422122123070512252047742824688621844233722337143092766490877439859826829791911913552255494668963745909085372174241741946615743162085304451469414189437776205332463401630703792462588850189121014068147921591166745312634650755798503994366007758200273389377168863168452471868243212695740364350991920912583265126640434381214651071229242716692480495839517069664873819514209754421707250328169544843217659097164613836197060739877350647803988607624949477170083616304347627686654334985267407589586498656861220876949298226563026341552346757077186859697039550482095817935880879806595849192586663163314866933132310078240897421774440183253265506294864491616237079416612988500324742859431095173536596146336065384225009254792288475606046797245925739594660131161381657519417547314367187279529855655220254520537885087933540191581014373014138684831030347637647772163243756777413124589768131612062394216425793586218820380811919131222341542418326862977292310488756866578867596329897657459076448110116273266658684530003867099848022674375230384372459938359700028709126307988453504734001127965920560491208856882154581920188250576896037331511825030946531829056217070995833806791252647130703792820212974385517757416097493993323960322283556974559477639777734673913905428137170475192691609526461106351791697728518584702384425031574585976258499478550721271907015614874398019645605134551923798034717904878554620071467728961338831206318979631230919255974391548461303711021529829543785422637968413328919489437059557139778430290085238066924675252713579552515370312655273178092767119948830718617583536231029310549627388018726090425203601708037975996519187907651554998307481217028757002098735697343606390146298559134806979488115843094217043940158275472770925970799816383000477277566458382057384698948220538594486918470309243994240864704848760122147800936596576123157178129900678334666957738324756113590694686443032673643370219463309555743599039261906035415444974394389925426833392625248591512490164318003238948846757340614813819914386694336439627642079227477440961878908175381714407743098382787305642504903137061348005242897460651680947126883015620694940309951723657640771704103097636514788963292929286145046523309126854872611910744383222600580151804553131262853163196020758997062541582144075742944263786678261564975656386345844932146990329101939088835315393798941335666914967840611129850522442967182301326901562049964806618876403166622673708832247435941789824568143133887215332863414943048036163407600429522158274155931579195285662001778237705489469887696412406396237010532652437543860946789354452205182499651802230270026131654633734512890389170540678552352879660100432830042565603393462912135062200565547549379631529270124724526374156344332281846854115283874042567145448554612324438929476464229157588679783022883894839473911608166964734743041926481346090450870913566104181497834359829159323652123932643528966543484320578356825878867019768309254162852814634433133108720572783507850327316102809723598795926353511977285029218929881408803736935190669338704301160446938947000290769271626993705983331974071511238177574679874280696028152293257754829470167001784887073051276820232196650942352823474076406124968907072359720602732327580114638862697851324875956411736374437821972654793668910168341199181219724927814271329869865590778703783215732415951847751572057870835410882503644702110548520305166321277484728050950912960304515822321999918052158859444440599346631027102042181164725565077839152883944667558266630430353633344846638692251690424805987441970117882739958618049958765031830963871836339088338213058209706609502576986958539148590160442715624858683571598298020026826540588691603325420328236655120276410121774002861215283370443882250337767219994024499800637721451279017561552604708411688009647660915109029509398662385913797884908103530223456358106000132270226456738674394474748487216402815399047687173242802576518952310047856940268567750449188653545980906228048232658933881788167449472014595848733000410699371342658954827779122627419764234870219073624753736393477820857659690796900353824047678702167377977155299917554211093651764496505925451047109227178385779464268791146379234279078753398943212313667763196308578864358205187734379490391369483818688812364556059707204240799135378989390074390724847950377781138803636823521808681752719277007441226529864184460567843610563099390032703619393054395939075476218041798384197695884423150947991133341470501441158954772450504833867901932816444147818422708255463399176084943743217334096866157428442548141128314546204681655841438482147420217582688161482612431636551052906490374820283926825145704729666458459314582026606600715870356294671620827760410361254814359854954683319647549606408553054658473457422556613533606331989129666704994986013119791888386147673796328968692515135061524174391100770737815075160130349177077038424627636653700826671764350386918749018459524797778217937026437164459774215820296890736060006440741538575996120865934673518141928966815937611598675947407692057584184191967947984382647325624002968467964747448942415417451223359716934531503320551858980837226103250740212216786064626401260540261877848302489214109277941168759534609958871725626194802058730783185306822895549881199264203021823091225302120811440350377897912453281037098386854717159125516125150868034233760895616106857926570965518510913782321452148825634593629156861913197536574922917100685461595849257147265226692601293351086222113186387803835215959300321094697764268942959726592666197071822503617799933207133352314672471133392624943066169689044437209203277670854003762455687298646021556049980640427948082521525959175455768189212352314413366948819423933714353747164579794076866837588298774352216520564668493925458757741613635275673351439559862127938195968495439965601767031813757053830247457378972080053288827683944497326776623187859644088478419951144712241301356381317215363357483087828893267908104692618418359204659508702300429053594526401534901058384479501402606922050365444335605369555635625834571703468279161829439767166557348333448227408006654007578858639618784432532629318530464939045753652250852689582895574254906315806711049302473960971662696074655916897046035378928633846704327614004053096775665647970849043829867820134043760424116440367159362045756658796859027641324497849581082315296454218105611843500122547749993755008760227248584484662943744410987896783232826197611934314056086332963853059508320119028465189239218476293737330588639472191322852075636937005511101571959812180104113012062357714056705002842558819452603080565629982300287869153970354317375601446204063648332908593737994630311136193795851332270286967086043447418882632958628238270337171390987415942965603114561959615942872505016396621926939552608045051028691227753120165445594783955453417524536595035964029529147786153898185145778015282087464924117882999961749744427135668308368807983941811625692641698946318385894074850525899826180585096220348174327633031156593724803553158246854780354321038454198088684741894137644946455198507184935054293884098532716691189644703414617670783539504198241472101478905441468491661697109700499316932270641195064403626893773557607600145819885888417757375329395264697855803177662369961644260134471436045515127441845698893918766843729377960026135160040313886571846205761116522692179514923390852923998388176011243139608912959377358085721709717565086188322583848076114283021748264682695853725044921136255209409612517538106292524408901635054988419281411844197116791516307380907859469272080612480886232660416639543033520613651614462152593962145467973207371367304430318419090615081511786660307939310192598162193639093417878964925314156765513640911642657365279484065157557063412679623429146229719082753812941151402024957396713059604548228887516164910698060794563763777598202161225828509198808196608295772257088576213057067969791708116197901788042829974769212502324054026432329230369261335316060562094113632770510119785044177189928305323673705508129434237843339050520955487288042986593274815893491293245136176142920265688698670674604167723305108234508417900187677949940402831808034889058595462969639895474828025441772062007337007755809253562078162892007164799258222598630553059767477830246095247573871105602580865378859184709469201406610363441825424824370316678513656316979318630945250822418489398368213302758631590938429918234916701228121104460679515103074318403407589423589341545088061366280309233189844673276198388647206722729231504864415578048358288849872458265056957744732763316781418826702588566308265252638249289840911102536862511769375942929558507132418628692042246914972599740692324172533899747613550981154179988692044569298733955202062544794067433236814566992511543682107423238171681240577279539413034841901361394219778485082603187646628756540229291952660790912286957086232421026582139460180274962138112019632004847452910013406461845103710280330434527066946111255314672357580768126894181590527425758296452996797740195710118029235129103266837941151112755172745400175326417658184493206905744307437558739407840470456623669263005422667144622617344839465377584475560458311660400038449444854231951038788088298572677756417765168273723094903655796590862270543816125831837855121382366229127702021077619728066430607000051702363719354293040583593940976792248546365094697165746788750156144444250615428684378656145046581912149682760734447303326637308379479524401932509048375888599732125425466744296754967404816107624086037266719009188450651484746033968605435723424456615910365920391032001249745667553840296999351461960861705725405580722877793355535295904763566167361004360173065465614633906021419737133789307851890717229266439561380670953439561598251057662579825969009253927807039536225821278250779558671868837903880457395293085258077509683853537270073302482037923695148275140783658247700041310616408993384134859925356742805661684461109536556502677151308005996836803733847500264146091141988952583988230124691815192089668558154556863311213054805084508729947452772980788511076280121036370533295302488450576266869733042727613359209022150535212074778034036730732501550690212417739677915730812472109845782882122568625010816216625725445662654917576491023649877159724784935665688165871865526808789653908737367462626520806504168204335439804082453812997006447923596861972357256755962101197467421228753853205300657356312862247438520828383021119799906737434232107257328364853898647047064457599736453951692981104866412671864799298129033158866759543530026369581854386801425271113448835664619843593535781937783389587398460998401011958634667062754015539020015881580392643367155506714056676381718911772472948110534971112693279257095236818148956178249725214119149467386489226456106595116233428555351609795759433881019090228299768734759406018140639102705008032007996658407248617853951626368961461671372703521817276563984054013423205762076037530469757689327474883111729663936107030562564262628611619777508298535018379713703913434699294912166597734898461357213507642007800742083403099851908003683062437544337137687158955100075381714777046650002464991827046883381105212628843980105196554020424925213607418659841313434811062672417345218731809527768873748579028883994454227000342764585570235036745762835717324715460403731627818114414068909513187902115742129578868722483085242198665768629635232398065521240747825641258472839823032504240219619698371613008143284233528898939330147342672411847963739451120586074432941125692230826141319474578084281656687224307219834138002185194445276316906044939740515745146002751342025427274705946304695392883071291745368165884395492825491310670165524399940194988455620303087359468264243708815481174176467406603805047088245122717039037678122081120226591414577876742951481856729653192029882090290465233816171790219547916200507997871889360076249672677019939382582777875024877730118867689099316288856757777350350028258587702901979183751576927375378011133962779418669564980582710580463899934743367559919058475249539598431284537015127587910900043042044451698387436804486741003908114703783290862838386027729640753173023110205353095519408374710437977078735866595711115630237386073042218314405008601193697488689380990709003281346971625432643181415521123493506217719549540113793636183494605805944337506407280937807572087590582961607849610071499112891866161115725023250615027703072589408265818831935255044186341722068429300937357362088415454871813794719867084888203549957342528397812381253963483981467991814131207355852855328551712615048643805517863322946548186056788385592716820662022260758516494092151279694655174451380109248869130559872933550335153375916963047885673315378697994236033098022858793189664004226877842657223640483092044085770037575051418470718378758249222299996704546765758767411353446882390944001993999045125568123107118872103644649539198436669478894421610638375980961856485516985136986284685496738187434302972049578715586796456807009523812814072614455794929048642716717704059075270045951105580178543025799744523489356931610659036661241481952817891726820704235167020175718655607190952474838107663011227253048919264513246457878285986202313215219234696673227967963260136346773637943869943859419286972090607068613167907716631626449057306710741507536612475876833472722044242098887853871188024158747045437393325258726902996840261093820371442042823290834066035748142473246713721183149303117570028821428405927275131333205569396710592351260586542163246894805474189396425991542275217752206097685526394963269220004938683697175418416637026162036718415218973586511195543323274589973506194071495106093118214245407632272450526192035274697062269286964819933232120870617465773950923225197083130846412235613661204651243799359528887914006074823162430882766031199853041661562581991995412840949987114497601165431375562991593242348571453501289563512497209729079626054449015201997886945246049255588790009492919609348406529820514550932287152771209421109724215815805638248075348866867093641361358748112563922415334312078123370981274149264246769793023461655394196478854547684561995609183023844536570164851175157849029072804105460502782451511175087187420142587842011087252869806874874066354210893803302644959663746153821761454879265451895032993370878348488333572030477177759272248284353180003829921147031504373168632588484113879757898878599438942118070856642632431373214029158203635188042509765378749647313673346320303727094413276675979090775253648172633181731069026894710454922458857647805768479863199060842512135253464786377912152795590141008835768269483456492239195745572213118712257842785066418312319053213302938127010948141496972402764958485608960530586978683650574715873947240788666088467915157663322089889618880749861412518632783463314802182156729424172682395767624460022716173258882952252665311180468993114327816023490919463114064908883235057301459931721666517316399533676178386810204216719599576395881553116959306608702264145681794404405152155780649469873672623098319003730662210993596499207964343267098248200526505575821102933352484658077290278938373256005407872483390111751417987045568034585033583587816005869963467481615114145334590636050040328570039084326800470885620492522635043451684648608125299113213023624593546595796440315311200344852887554370883881487724726993315656065889552264890970124139062865009007068880204198184630153626847675490171291096099360642292398943545928617713444810814456645280347083052709731241953411888734013136614167887004798736888643447249294441211551971394890140313723646542382115558363573971319940569352954614790993423894731376782411148234836188286327636846585073953114198311908773863794962075649741490482055367594962023735556307396794805436452476302382121137800119415310838548864465047835193425778625991717905376354156177450884563865558915644416280932959615902794497240781100189008436235559257014120346258072021902743892443549209970155384342280456386242027675897544513969056072275196416673278923169592155098038118096947925881924689469373148408146763857173562637919811166638705622547690724460784798974191100567789201893477161278235181039477539819818688098961840917242042940203811245122294500293046574380983256652383096975505799870622874309231475242746840947309887111302257325547075522241180680842467000309481652040723788347220504723546673664427724577638667463862970696437784846285284055919472947946855893125355736739176783678842213008593922467616569887331561667118026226402750066934570632537254873769928102624173244051276645469452294105949414123021675788094144283441350227323987267565825705579375644324899886435146839912988128494632881999996650187107022541327852929477386031783493831078427312268947258711127237657404361423987871667556942438716440466233580943389033325695010645446076074483266615784165838901885262512947855253930077753698258228400031336280339548045775130312101348606816723622181951492256634807677932933726919969104719670234218790474167618392279672551162805386706170217171618382666703723430023426758989113355759317067586690336093141857107742929030092300452708347540336558703726173373037390210677197233624088979406853096571967991518140591103344011683527022025432039435268733962090177499554354852745929808146272989135723495498363188146349625844566557893706236016221681286876789106625758391423632058544154493932203566852625108965845161968049825962825864958916111178512195926643012454611674026933797461195952182924267400717624396197150761485678369488434199145636526196849242928022254113075863162138450682175332524371073112036236535203596771353469530465537767170771619438795962538035968735227681328467259615011610094186408238789882502909838806160670511814513479928749673568137343431029471713802878503788442638565721416799373908806260780310591542341203070727496219426000822563362205283437910523343516974848644914951399031244874753168777868714472143248627586332317106712782689472968834012932251856321602355619720056979251113653438112886640049552560644710251827744199839934101445023605434692583992968835466185518296574711133352665234928347611674284580732567386729775850989896472481740763630892360240333832105637548150042207109919665371675632366993310820086275566789462167544094723969443035444708490289229184833296134294665017247277167798520001228551130770218884584306755471088801778150760311741940520505287120895705793088577980729179741673467032332558667814110770520190088071543428081395480738807887910860077777558037046239324308397439082457729663610589622701723600368858747308101943140446958415330594876533168441638893356451725235603234104245794456257077871564423833728369030665170327032747970095301939905687886040265638814869915443006748610368726726870032934487014560195341860713489646659727471469916084911442999892529620337629935480102060197899980345269541541386822286614182941065557140407664413148576066894693166061203627827213889412062427164271054361353399068429180753231524457054441940046374722688789978041957306052639891145911635798520009806092802406738793023184856029086454891855714501900331590152272711010336987920318842309579779109648488408031343944999719101232208674828546721726180924654710253411660732117960661002854734276520401301822768177061240909442342820134215196554447456179799348109108107733764731864055525674812971325960913385173238755473225037043094172299797534771288024319554158256424330951280703810236492384373224781891779917040071298967096806807769710776633692964303404899324995343630072076016473192618206693989364445360611214949930582885678150786233333726860466955079425157360409660836163796284389058799141669311876795910692431956899823181531865995408431595516955537785851672313776161911518884059335706365518281133925005732280572925463104574176422769133099155303165233459077159985013941389237532314119544950700120893918346379714412016294595869830102885143651169929785468627716312915978590475725536940054273515286927151299826183260368149950110094547182162909460039264046883625399305712217044482842342409653505952749835701738028223263179753553092230784540061369326321102051890248100660414054375402420195042245947189310205285209162945186694348697253558192528349324582663577765673856974709900681402341437548582887752088326884486815787537503415464968109781971606813857929846815115890580269497539771800025893117833694914031278365246776995680189228381256682321293317824479122076050004636062490771768529244396344750010877964984124553584037331206788139859732574391526539262501062437536920383852616936181868166074249155289490713210359727251372376592911739065627761959477312903597481196737610005921447792581306935928202473087237774648851438028541599465216067439749778750014508403884887733415955024276371382905807269055945664007442126383454741060999180307716590366281776115535335014164589775148274582926848844185640249336966696514007006522134430548189382108981323505449968771447310430556709907291255024254420005450475540904647846646617395595184065752941056148655864966082186655081206344260916057367345901412321644240517290299284811161223698080898174937734344153597962019113375826637890648760504238488116894722293052206886044068759870312628985895579625997676283000518011498482757837128554872308414117007265579123305914042396550477205117198988237700275100916417483059212490318278249533505627048186592226408670835328376685580114728314996925737222493877922957429668671908354582648497652384896026574621536608779886697105987560990497138672190975677959635871989997988228543105309575966818679337233809885430704754348002256937938355581209834081034641431977848126764986951174614706495789074867029043265841342168759438617471331417887855283998655592791502356591190814264498956073275265911511572524681377091639618042344196800712920758613116467598314041472674764703885924571162900584717160665699930407723643419923501012065002152427943964953375066374876854912933770900938232406977757906160495924456285299895895475057920612341862276952783566691297195805831932114989130408835869523896841137085315334054061662894412840733925418646336046085860726595504303042701080360111273560365317223846018143594993390701291372538934694860320747552289671261351926080490584671337334505537981343039122656349697840568103990795689625839452944706240903001682818297303994431756928727445015386500521314289522292525169426677408243082889412129763713908535572408215120173041465761979904005379308564333255754916603460724769245459125157949997428211471603442517382271645191103323451272114149380121703613073417172726666444647045196406300675816470909871668690968989735475575604425735986996606231984132731938602389921957849056192592039165822144070658118226490738980947946414799259341915860485804757558146654942314900724140784088053469768899607846046625912237779510359274095583437771845568631295330390046461691639454599172598797704035119047581095937742031312677592768344789441880572014595057070031809954308098732505999756866626558281615379695148159304083471092081323707536267573901973591898068278950426146691996425465526547036515985937564032875746417663329514737419720423672664769478048917196970011465804628189517605212431584305397891051962473984102477610066693673976061649297473037075159306343092304131828407831344163842133203767573212902057514945788854096086574549521582696630143487668549622175049652968030572638110847301383044241875593840208283154813699666000572638058149687841564575290127581612631799839125079319417220140081681716524493523919808677839458117537954760650610935451069057264013436191859569673643140121949618119909157751507295196068606590346170227820010923722819969690220068986013927548904058035429391499902810399891756525150774981075846518714742945439162447017016687571543102611316867569650420021778477197351682655257512863979312273961590612112658148565766869080220945381240995531963927871603463129262007855548179717438659239314970840845755088290437879635234490679988152336835592100789094044825159784499780315395845611488222711100165487059572666466356055085712430667940710699753185106163022311502485164761540026733176568410541316383702402185639167646266885217296230073699173037755418843307015395138208057903242140895336215081728063582224253151628567824979962020259756627805412818646538848985594939270826263860508032551737403008620765554803610249589032011346472660392041023353497006278749088466241840439523021323777632936963959741422367582216822984923192202521918974771956665410554354553409327409361457573607879276429800757997915332693632991154309062199175606899199274724025517026060379269195511221915494577318049560334566037087021233994039059397406542662135122271204480077359939340281992011720776190131971189212474016083944360953421518841103740320119549067371011122938650891615720547721461902419258452624960856486588703743364633469915477583976074049478614169093494105209123800691090552335200239863163834155084967152320340763938499308335266997478810892407102289347850768181686099235765219667773074858726018398343867350035898326002001794699415118409927071659312706683787105137152410991503194403317911781543255736294558566956528066902021999294546106817646340215675963313622088578307049812251595803743673724770953371802722072324171708923350855285023204174021891507815338131976832848772000636491818169402648768028181113078024663708373336657503613293056893617150217386225426570323242958457911757462414527704796063274231957806637465205040380280591695306192561777495462616340093634633579809267046492851629748311298658367874583762395024752089012217052596533391210277004892551696226031012371378619469723071019084026340069791800119026520218405310138323318865191716111223701139553496280213717344399839607584303322965323687747078204956343684663146607267977111091046737069619733077718370624983877586286137311349166466569473839990645087778007523618097032193957050358872558348635622440624108190031595826278079779046346347474666478698880421273517036517500690255399608160496973154284722148169596270880015267310662178525347490355266808437763498056962246578062842186638186081223472980933757245572078478080755798172658141296319480486180981641964084113076086357039793782163763587350792385084072519612967905593601358876313165073384911572867316964708852698739338251944052814765447907330816746942349464873844577494598721558973093795740805931086321209212795761431660122102636376258136881119854914460278465282961497056694921946014652134631490142910161708077672410335766032739399006208109383913500194489010590885296549315728172659952646395916688621696775093679752008391027726748087002298927579258864864299096926851039694895009013492295967952795420344614628975846532475536737135894277273798467721300307826497895962784840535444892537265535200643437673913601004819036972856296666704377307851118953765742477042777839959069698711297503765283557682486671541780764040877982764105907040326768373073848981494597509146462720926408745549093847326061789510482577065627396634622218062404072410627973798042586173740297852658360072653038868050079579218623912673264082708906565408110955115180566285436333634610531136652627585510168123890189144262464621383654196577748074005286842618811665713369800368805859320819568378339246424503491585935099042624912422225098606473032061319304989314884210996405752963185181987704063649551149863361176602578843093720579007729026050590325608666057497536985802393682517534902194577614978470998808270925103578049687655598886813006943543549210003024535570144857687844358553254323176952347349679910640571730171622631136847116473130173544207456479424394604538901110828674794733704726558499972619224750181719018336241081691767706299238402725018626458628754256698251513286902568999020241689712777610744834644152634297157530269087496268259168979735650784413663735400628428698952333945911289829882286663502602141962731190517547383284772388153446666080575139764259183053632373974479131616399803668521632770151410647426217360881959091610869874917385835471331131950151100833068094336106032544178131268499452771645102441813726630746352071964208593599861798877233507123592826121012137808172805250755890534203933860223051428621695605455977326908104099407513057228889332665891563009438904598069110698317190494193550726779508427550089322075144864785797009504549068026308676428796089406357428780375910251305834145439579779144280378538443623561490807492620970345146908178254530372537523813639868741707205121031685882348656947058220790988644762118896468877220507491089878933361272726223384055225216944143894719905893742715427138544122131169542281273387247094963841648396530554235736443217322910481911086005704321097905843118671845963704315952870877810903952482058543436151861440777646121795285320827180526751834243619228385321103052751388355831055309585221673594576092572330695038561943752402754233318772367266854157483931499215041182685859963829238359412606038557660775193055406503111840701530385361648596052860149118780658910875520157496296555135131232594303238610980389354311674407580506133770972983163322726513670811876395756165212281468424148656276724484374292108257879484168210836486725854410938311771644060083217513080355449115546209951633225726898049400987109704617764241527271151502239009907487987220608722905400425188058793095835054238113167224203116816291730432907896999859454894246480809211138357699269336270272705579767139114795972260041623833277669865983961765320598503475899720727315219926861336571414469263970351041604101283719836541024968795057292473899398898979082774523735671848435917459666919628690063325152152373612238972888850364422835970408127447607413870848438670575434636945002311200703734097788761260694255696652509257469601690923755146962352274264321800886718650331451007006897060322013288591137522869920745398551471366807884533979281317258927451325728351278862842209323237426851038935213021622095655002207293578537769184180013501186096170633083127471750784110517851115308396744287592911785021965119934565136928137783212561771716077852574684902324020646341371291016496007007411667744365970303483981544502738510908823715833916521881652549121479360950871313930858316353285526288193328977237626877453371907618195623744099092877883926240152041005161605969209506775320017227471015050019663214825490378191795148690389293994708469190009561665566750044490895255971631039981367442224333912059878816286943516897478518329000851556999936597803216394473581849678048288496038367362259792123018417632376683359000285848736323781976775016429378050018916506861110746844334219809223693961162554869739861766550990269630062907306450988520292921693713051633369706436188715321288234223204682916749006375170022488933532898696734387211349030958865046439864549810215061416638810412821466110603513804806113229676583100602609267571867175300124476598077764767058844044998678437780054457186712092119238333392420089340462226522123693556672478658056755201217169422989381161864756199224826040172555865166129735010070444755150159993027329527917209777240035294911910650616123881900969479967985121793862104609618658861176974138802040644955499456931688159619079422566436736818555794112005502765870201976021700503464705714971737210560416452957494188523757580164303490563767487938831284300807814052776248735176469043857942142615252413733672321718099654982473594490346595332960185446473404448486825714792977519332739912766497021864482721630279672250309026471240317456833931631630795268508946519599652365752013539418728405487776306551624640884293537263923047172568440258592520062675629689187271524358885015816202395877355079307480773039680920452946538236823417475249840081824758960641610008200555847815937646570066137163851091185923769166658907996608513475196005296606804354695867527532105017582893245176017497098061419739971167949237962130441763537244877924466346130958105809523785491995213239473495923206897376415870382578925027151771539000131023052951816392008326305523793778148842426633857846115497469433814743120175597486643612414288818520899769286443237436688822444350431670970626580883732787119618609182026889769234872941262864005943365313613274878819825508175685289090198492173429289274988207621396214786579721291780681861524567475039142430122758041514222122607276955135157066746711034355897520119681872312204186288519087034688367641139375881482961954482762626532839007222527503394022715320510008569136011121233232949599431606576216641185318150897601334578513957027539348441284153192127892624283566982740513568331413543667627882084731315712486464144320706506286738862665756350444339519307508763755533656839103724234731765587101879622354209372387414613316802884768657710917700434423926199441362784420802570666872290600265940233037050975680933927871771455760359394097873696572593736094636570006577391622959672034230433695445427422962818112170043546644673057759311125007256211123306011666775649362186299168007417125250302280301045870350061917963639066965889391513758370713283719699183681308861335471836994236425350485894351868474692213218246148674192695427888195156919472339219820562856595021945219834258349133952099274532628225849397849500770790907915080823072399104521379801003862880963464774700742526659234009991472344142071572130607643674230398253728003282312977427168609885696410171063394827764568238124073517465175201223481092864610564542973131603955062020905063130138333689322652866965651566374295727907391846360746731666636725497217835744821073090849808471603530345995981558637451941794307805071248520193615424022159772101863493647018505840883768971691357172532236154588475803539386992127941102489579068069248974687781515303191179367153883523447505394943057537511941026343908621030613251492462524627948554052787162224395691891948209064831969626723081328347914982501095561459127438924304180175029242245139331444159199832130191734828922273029150905467232604285691821972140920916239986687145874796880058001297713449364628891095562302646369592594520972916726233490731740864931374597715131395933166155280399371544401855953147730842688282303111930971092185172813468131941521977739764422208022919860621670826626545320974027606467546768677877894896900720407321008022965800527552254060762260380281404688127390626776083210328158959896486572039939776847853394876986826064897025420011345652479592101234225938282599954797989129515456930665760453772526131480067333726829257751955642872728056815823003016663568522664743577062768810906252821202682002502654364931013534734042298616826287510438196777001756778748293520799209606372277880487381892594556190882816759584118920000585656141080489581774388169972451195860124695062003503177978327590725708001015511086084798078325657414163825602093873485402311008091633195661756524288906019826566321788166030181807018389519929291647761724421222883059476301019335502064355217913161444515727550258770222172716910458614032149458027070755829935447830906233240295304801648597758142716552906938294837334376682097557106643972178266144543038639333001529046455336173900786955991082979881774964143585018781939934597010788898867509299878400669872201899784062364125364893340497345235277209648424273881102852787779695403793587056277538569211058185871111934726288792906387239329104593349545882628229232435961930643003793223380411823790543848203976430914196637476423798160888214247985821679050011973325951178546541425175137670953618418727330789847055764094000937116801200887322822405015971894310038751822133306298192845651339705095865383355583385946020058374560773704932315784111198496573091014212589594760949721661916019501455608797784536346947109507895358886027886374692866222727349209424292060365877743706223618526543007107209002858655723922392865147533371699532939802732807724754557452310496772330378226797564396987951078726115838169722094503872092805442893751875454937126617714557699119192863850500631269797297744576439711319237083135133895893316722085383060822810023083653306259714561959540093579733886573789550179061854065448597741194503301873725555188105476809752191939316690182175690545757981078846363899788775470390847683911275817105795785454170767643215534884700255233034121402041555740369329625728414753893324531060297886188038929989180784075174983776574702466944884773736487234406368033289395890027440049772910868063777721275847702460402328176220225519331981796996932925045668144127985906083859898965206522564512755203187910400919251541059227707548190223772243743106640942420176534539578670142798187443644018692633955090608833929631577072184242486071378994488772982639460755789952526618695194992992884866472013372471401955107663198800497662785998636271557434710525395992480988488182309483257027147619996303846935676012924850791341039038691481954104808312712993539576282471859498067533872641335660062882470401348383512028508698787663729898088750188138041575963648904857040488103317603737651894521718349992246465089398078249672876917176354373793738297805829951877907404562381592413977756313236238949102434620772282148153360057803219514171596598594157007608972120491122949810667917593162565828554201922858173846512250064997390153499573473844056319948070010503814704955647412536643447244115233947412191945515934045159285141874593225932015643413249042551975950993090360963370341500066069685989340017696131000395299395209688657097394528476202774438273929496055643489047601239425424929393203829922635407880669677566082215064515085808800411147297652539004489561387520123900296978803964666980643604886246589239550589247069975995569686712615747395980317052490703260904332590711492943048383938409807969453438190665005777571715178362074941632006270430814139515658365034008293106013751115767019244685476851704421050926252217542129797605378420278602811980989746207040790475958076434258855819942453784266205398253152803388888937725968430510423424987541842848187843655163380847175784615503792435905881236762667896865294448653809816432238666543118968742483330811663555961964023200000740770745102511265620286949041500290506039366414678071159301428082379547782950205760677029287584110429255036500949729622532440004306162257644078718381467096209316503033808911871095345860947285735599756760544729188321560979415431849864086151882979214495264467710922699662137700164363565688430259305311948730770715502853303768762920159977942415356980622704443953602295099462458677064667116426069416765170316158730351350711896847172852973558795545089616375420013703552158280103381750275534919464713827349080465670895409113666790715437143247579678982563706004458866408113075529625981300240253029000832852185019575072123849755251587327404998366467152105610347120211097391445548667759980323524107831475458984996846171826980860748833143244865852719244987483198067291454354761350563065543534425839903314565828584655321625054324234074564687216870184644166582162108536103430501256502806079514382742780595197195951078255896337659343039779494797809996241013702182347886283043444443374028096713623018817048287624361618562924751714597505621724938212005202919188627095598437053687911039259433236645381606895848513331889886585640889229466455343685940056263261600108015367255863443860474105160849780475527199730645577678682421789218892432593533056772432472370307454248717534584215226304321602055295405576370039381305956412498026235694235171007884585655552279561797533601191749588095356242855043867667485166103401755244558481256496312418657069882257597210688306167183901613461363124277151725044182715058782353947797335329378532005971895377922897471033509946916045296842018342468065485060610845183979613416205904622367213271533471540941532093372243913345348462450245925098981282083421402511432067043608992317711064323078094715007268104527948119641119860265545645295532534363067714385073280660400352240174561027523294032138288481045143284984267076933562330794749682723111398843736473341690855277971240910219063808411380178325001088124767116609840979024059004380887684058995361061484354683930195205035734106280798468306610253230202621935938148129783195963524311770036251628481985093808917956527956559015159368489521983975185953912270861566767825658603477361472371065348112449855404157553780713665329406861200574602903575567070843285771047108322233534599015113029483104670366243451084654448579600208194451548033557933133589875795148010117982483731518333879929410288314969376868826360608684596744179149206514402752765797392780764086746433316274076079785568371612812118510661113495683214513450935254440913721749666410968853566378642174672992165197220874541823195175237033979596600051709925289362388137691780720400805243824758469135798878421549731347709560324756234242934744886059644747153321543611272524514626878409712960827133205548301922228448053334515012474082187934691110357200197869115466062667862301327698939303679017305127363672931451015714689453068156432887234677673248262176490518970368255610896237892313155228511845592875023165661549598860773488018523182213975686384655421395007786841337904803687559510885574772795941424223287059031574745238910611578293830842436398788038153743566214753306000208312841867472447910827979592047055902679518801499986580839837878142257739113992082309464745420459784326563964017160421893203361320461018774938022041440188565007327421537150213818238451737770987391809726400984481922999900586570886789742477817980888808209188234063747874424905411739857014635360819584961058574352531848383105724836921848147247935862315919849829491649618860306845944587910387465389514554917153432518667987887630656725511416222451589140158444830510569734704321714857420776120378174219663676920764509752952512256280436570301859196101883444728786924487242058286524099347465112229804437879465207865295759563156702275406879924443413914136908140316914823569074540046853172654977099476824815817454103949346018751732346819491528100445636965217929143487287737308417177522081232164129402054462488205689117289059012772783316605572275767266065683782416131727843549291949853390105399307756913633003367515553096190553346395533425669603449254384300400053165139392706330799715774105205509592037231904956101759933492250363524525231436261572954477715658820664073111187099958131724255372163444881363643702470954878741606003141633638247138156058903598177507555699998641141872882717822640248809655680269841418954538150112389118502560824478469738652176255549186108718741870814760151253988117578163383044496527337824266646821541690467008273415388480012922162188878788303381201895760929232934000883687412772222521755706048787182529073872492693321783031249517531742141019352898169910510911937906348737287465156400463991583229975183390107709225532167741206131404732954078587878115955030232587823994765040013287199726415561042294392143874785149580249668821596564197674550494722751449068201031239485090532252672941609512179582502279195680871156362719112422055754175736379861975862279657542974566835585685565626876630676644406432784235821663643071656037579310761665926086671182535293421096547918479162405865457784860890431237748473465560254692919755234806986129011031755564712613637023877257996499349543067215300940297741372105078336228499523654487288582606091320021000851881312540777069442395244862010276127151132427829401347872066722613074638299687375727730566986579795823983456541825353964382483423584512426533435752279577853663042256775199345159264218096853982680424888563150562815136564736443402655816890734040315027501583470771939269633032548378503235190071135971704316473195617693732896750582660190853747237187535169904582772902117237272254396626569774495489998958413328128677430746806667452152285372812551671670362274474662024003109031749496215609934570516625025407676094569370029869506703027476047012625401761161382772520335887325386872234493645836548988967346820492387916203878873808767485870688115295574719577027682971469356524469327780626299312637505369023448621914741603523110421151481945737134781414346455930457612829856574868663206615923336225060256430689295750719741330623155244642706506559985918778255149806133026539549037704606072080252558262181889044330218418241618551345259468459848826320326824695237437619272032969437547386600283058903590138679584937203186282381031159868750400457977536173365044795403537792020479149488106328326456328026454172567010168734372008199606057107340780741910109573165962899768654270893416728435419926230071496389151286450352748412071397816672825429613858462744301635300420008610361607321637860783570549459098663588420405403563935039513722418662055171280612681541582421697067749528335434723996401207371189733118064160114049764752059688319673364537917229381166168722639112988433262581787111039864655724957135490770037841329030824835834952359643355874743455195162247396659015963654111429304678225068042060294538288050143953965748594646778856311275182775233311793088882576962188793640190034926549808936757159689578921053097842650377730633250223510264319920786558147884352713969429715883912946089469896052127774033570859237533164822143810777804593561896154262381586657364547030331586445250698410670840689370124004309770501751622641929385242972149030175160474975071993962875049197087120277512075269564246286530897350447838261632309651449292168309026970501634391839101619159492747750690923388465709801077385684413189028824297171105250539453822263594934894193993931660018991259585604776028333630311755445904386632402320587976793639019050576850710764890227811987457096803866339755751525647154289726193782651533726242940475993464530185359649578315515830196554746479343726729616470136983417585272611675143181368203610994328573325073645156287492954371366034939801040781353299901843238484163920981663537233142958041773015557886911776460543717275271839439257478061640906543454653892836208586844488217240507187173966237180186112823546630030991516232969977367008885248542822089311169846234773852030503038172700953782524088811082336837630775549754879198906261182580906769872961079333386583696803096226988686568814531304431773885151590999497375874213595297362929635708950842973200959142488772875017941553930689062764843248555183386705965561571525341164505436401080845652364685455986548177234283514140531925430563345086864733223917631442171801847904614646867299548421489215257057149216365222887004191062794829338545419298888789243130034130445352642381755952911903844419415507345444369788612859336788037062169615279133949202171995150674783987659265146661197314030196018145432758187334940275825649068974283556826508412386393324305667785662579437967490992936733832466789192697387259161848695311875913174685254038692194044132753968942152785313851161792581608587292991048130116841027202076791472836717529409818281254076928136086836124634660426292618870999007190958855374640297409451029122233420245839719610321638869632976230984540566420812612243244843120513937410876786462337001491165415981581339371665204167675211831915425135365811782304997148195180158291595824901535305422419375613344171398627029663675426934762645243596992163910123340594030873370639773388878268700808073521381791442949338108661210534468934283571496037089324411597148982652231204726352895665311770365115406589695810687601926761310010733678946126591497288048936333526684315989563217956556084837498537769361592642706243676858877276614391966747559213338496715727507922129741345361261559599654299039127934970709200437503872773417633799571842755458334843147130321283278981108201280199518609981154211160957523842726016563424639707294129937378696273756062804852212722595901845738400539197550451140331114291078803009731039687004147314773045814824415018239260133753277940926542783086036861737587516097254197216572020253420142280714064727566872756966859758900709820935541866092331042433572006873953050622874764501654031139107729623240750281751215775531724605843403977952279145124653776110541171381109658484390015215191939492307547263652860079385665635087731324267480849372062134406586001341199373878395519320566511915291643564907001464759725756860135161478382006704971178885310806942302150812767508451327148038041804172364270510001156020302507706121129728877578244716130416444934555472826149150565431317051888106392582078974955094018226210015676802879113232993126924415067920539524982791550365519991838197379616668758399419870637886329131498313963578781219331482223905781895962024702485771904055508305032169307142554737128168514289648400772273643365651301389969949078447303008011048440691703672360680369858769232098211915442651290164431537670718943876882451649539505509183169559139484111483204081344627223790269726394415771021436587166163291913097319009891317823836497959778592262758586839056399274431282613920914541114946194450217841152129734500810053434652500516994774693174081162928775743415837668861085199119304464243865278159078511092504622530613316487704744847220318202745603961435203694337505296541443237632077999855554348251736709623933966278776527165999094944218813022662984300103453567902014498119324696947756789160099955299080379347483919731696754095613428150181562397880897906877809364174688957793219315242936774762746330306297729766653690738644795841474476120887757851648732477703990769765265078657874158774849990312932639019415866386200878799413667482083654035791215981475643115525298312802181669562829533922295128530594838021679205510224284648572591880841828892175145178784095970676152993758450931990280917861449226200786356989549873314575338691966599015008813453212548226434867397177261761564523649736743157320009239890978984472215245721701094795189049034760616354041273251596506117400693464417752086165682233231419688657176007875870940926931111424009825516989069150623011307143597380804038057806890252943197057185049457422922818314291335232932440800565369849137766346463344628028008047010212794056961788720892992562683133201213769397127568343575174636567890090042500935962513026199612205171095432589885078928504247403399876929872333915389180656514059712393305377924325659011125651627385997071615713436109969182106359867287495918326639604301154494821332666358484411209208640361270043092751396606063448480313988888674687627871256868131917341473068184695444571435963800929579080635196748931752406751059439326336205597426726187747512444538942200212804961296586620503558851654078050202082765113737330434418978337722196977077535980170779695528055826546083362765851644785872025849909811249890698221002193858873437374760777304468906842481752712621127599868480655899136831083110849302550018765915779041007433609258595945759937908790450961936310344848907479234029987771438198564989995886986004498331456140065269795058246912575453500099670463563056196748743060764297695127942067205179504549549986205662254602866876119838787309562267475631870241779706707169506178736744813739615055359942205014958861068545052612562390794024107268385614957578663320280689767934923528730336685970309714407174963414162561751723200692636066021373729089783380125669494962426299745003395860613077137553613013521071077781697951824576552946026306890811111304027732731308519266517799932978784792246617771789427061197793649278250870119527916162479272120866705590502324158900629857885290721727670039273385423676649364605219662936110789608079772072173917357602053342160100592639841206135729101177989899989509712217160683371669508592381846149960205616224865849409934098763388095343802839073580505590075692302113183138674110027836869426043380130793113292365207869307787816287047927048620140940269639482934356530865299516788387649173825629030595582073896203473833832746668904197079246344577566818654584033045785840509059049365473067344538550513135585453617927952405916152763805395460057141599452203433130907147181213519872718489322616855776056179216136136579143385736088769843820087446854728326054075864631499839843967431319182132200643979165439244811820518335861075846522159392761309044715448981921905145435909761293085931934613463639175065092723143093497848141775390046481846659004271777954778639175371023997508949114490956687644612063602760972711925856997193089053669383990900611434149406450290758477303398096122637316635118668866290526027870164397064002900584336624601356601539413487850679813350474144296358347298600488814681369576005387482479294320247630396799229690079555382962719584069229442562730917613714895000082871647578874370197090283364399204786834686585666507053138507687950884173438471647769215726166457232173686682558160008529238837204647476109937303027336795843413426190497835342242897060961457609474828067599700085013538404547749105249074531433021988994703057391196367652308847846127473560253569722959300321080339123494205229469904103614270167357821316675393982981509985531597233656572322057295156097864977430539731344526950769932242227693642290741396170618967235858768706926825250613469210002581839312338897422493911538667035807064341174767096801818000001117489019776395336372400034653165061980479480382973368293237252240056880771716220720544925053029699893533070000837613017412063542900663591095398995852245139116775261583653656749252335548440463223872314460394049649938614287334589587512651019071000724237751160206905816421996273566064315857334504588468181803929975071723559789890017684281439937072141629513024055993876541624955639588304728999526512229075739178942637140140200025158612143628100823256727111250067430780549183277743733719475869410538566438861706489886748346761885027328894788552092597384547622109303415818639777772059912647207357992288906026119015595365788550774635169827746848577905479658177319792766153556649067383199198397433819956341212339716478380668679570271272746012725835961330007465176319009148236455194578341819076134877489613777252009615883189970070383449576708671348424427585546920976805102839214377633818397817461625469281015504042736366414161901205360462659493952472049951322873083282840114423245395845858919641527625080011410632283145316078456354946582779283443210023593014936441523645595760001258684523983547711328409658845669809645068312222173020270396387215853239997345777974807461494803890370465721787756788056686719860327517537000195733220140700179796924889847732143975935210219202841550883159240128947338813838535307029587893035322350625700867503390861912873994088459012881686048090179309808453535040387098138475028342303451188037297182577772038495222304739493805321491662350703068000428805831151370890538253772349693222159114303107360410411567475794591258862194233131556010332251942683097699973307187496108758675057346748384831660253273929472263543268615418245667393270408994864973457561082768156307849689784420092529795731833380995044210645844424696361606423644139508339305759444801589415386489014608424311239108322958849174311840891231685054983066759829317539885244588087047950852533944206385110816958851485660275352760076037802172163992375365506239221822322807346235879882971173819512146796949978583771719415088680865096706892236114857045238371813477519031484598237582841754847150181088621683149017906897727067040087059088909564669008376211126988359215336723054099299052443048666618042466573363735798657592234953597272248053021422027616417069561539263471483281955378953569527454865853752425672378685911889591877671571201967497678785311205612388467271403277115260354989455412686991938493949288486419115612300643651264796847010648813600696116588974178216930509978700996542220644971107339623199622073823057558533632586682921376830396559274459050858103048865468632837326288000828257988824224728402625138197203063763747341209503590082850763971252291354833811797252558260565600243653616623535726554978042464253816660649808431314469898261481058153579173947599205010148496908573232092456665792636673349705017211586823020007312112604388195421477510759893363881437632687061708667156764410365432231994069651422190525559695360290675121237760792853405098736568391192788463009328339802607430098124337134034362665024087518258509995078818436667592961376454404882034266328517957459270458990581127101985886841144606401720122503820758405118340174045151283625319015448652305796959065193529950320439713283715223867238958264547916760700988953956855530595369241588900864402330068589007315634509429910736245304902189638332692073479129730811596736721171077427484978070778999586441518174705402787326823420099985816389020811463291649013292237361752074734975478844073706893110815645324793957077349668822213212779897679665584854369397788994573908220048642347615304516380803537677038788347150427655504417761467306648741407103384972897358410077564536829232758722002942893508838727626501211942261209180779745108591405436374744180667703546349687407186432198312858830821452376840068772309917708870930265573067705293799575643714532303697974142514405555447543468295405096630478711033345973773428205303626714692279591084877188784323745283242147790055712759781470378152559825481725985344641472806259166607137083354849611402356495360442171812305102861292604232030007626235541619484607259289910539580071097195929729592575203877223114698146820863035988312410025585816418434046739579001832382100958513928095400609634058585918857566586576140933779855954793864447898439736175032967972024063969150581710939716577184220716253574644990456910696157511727666754000555012850967941467309887867553973024160437541685671825541937774287836845934588385638377857600639513941989941632003984684276592681580461006774525862277055852346886318093796094018375215722254097720686182196472350426479193113931168619972623249283677296688398123750895601357137436513178248333720246848601522863474495026269610862417141492546621772574115622753128737393296751439469348231389422754859379516404011771948506964047119113663202477844334803736743218876172263398971217357554609916755579488926474105058236861543494363438417045554280128044150473845487568464472572152722076204076782060663694756926440675753335481670387354875812008538627841457393266252951659775604653345627255290089228923685052263753162831396747653928639428052327555275071912327573738933570319798314934112983145186486870388718074359261168903309702082385801247852252083008884419153822810684076120476670924915137433948287381625222261595507451979400823873678125437253766842901531191802996759030237957294747073511826182459311163001571589001525990103076525905248702812962022925027796990878134683959229938009465167741404132669736078905292326396638337151510718864358961427210610537581285349459760621060320641007538901000199395016853232422917825864384898177497194050501823036185924693910789292198963078658373832399210238697268535957146898647712503552584439152300519038681790372314490132947744393009155035469511713952704700138716999731308677898640201804657133258196228604036674335925520738633410610827761203666895121062147986603349842909171717132335527315401881873167883128392696338251591541528802610538466733245628471114386100905617513175873773562786790472847207447075535642796897649470894626649213767024114112252509641817137042571477606359820537879325664542618001835876276381910472955780117351989859507660003522944048770882185681326203805955445275198762324312914758705475933880470023759515881348558295992754789930566468487056541519036698334634756318067758259794999209067647834022688199097580121200362958965408989919831845720089183097998648218607234452797608257135887139928837002440686895998114960838708135862471690240149895252512524950213093088949658526008027200635888202997776213201229833124926727089214843830410183776306392066696914181894281143327591326642910596116981895735975981080710794843394532694095854057577924312976409625598305804052778180519078048282978465535843993102090056432547209457228306833724711503558091935048614190634577553956760168304551877644000186448499972831307535834017128803091714270545187109866084178143805952408063678990510834485735591081545302476538449646511324779387554112268722125317299546224594168252587516543459847223346056981941214702816101423158044572683285222547940370109199097958816830876412386458010045940874948737001810209004399959721819138604273038461030882936806427935856380256491234230480153145356415961873488434767065243494439760941625580806106944616020279542580151618842504685775007008725271245675388369439910953740806313521971072838232456754236026207120244139380767986673037452334037845104188802811643721940872716602827459417753072579391147124643466382381174513256401524556329380850071584620236416452528462878381817906252541329457246711878401784715111804287048755240873208749150276367716397555864020702801809645347720690020846107098212749165156211131859332352326585536034803377763824015553569419899629663651607828294422484163000001094907607576542954991958673291765335771850130369474484954331523399106235812867980586881561679955190444106228946559707799025288218665191079496986979142914191374052113023816694225134825190921720825576738215531565594018924737882575069430390846776168776813776640322665730221040770873706781594345056743131903423149682402576150689974833856908556599983698469772550547118223276172150935811634866967573284370120386324679317905732865725956991053960322357934316753304939579760102423661852211385026502584314387549713960000003922645553673990496562775426398136888669232495867273165600708747005512609884875809835213873680188202545880579138873931356957323558697872118006409608518698963241070886174208500458172534818478877354033502199974294420444704960720941548947641717315787515096498016186199010747368071295669019066051841364012309162937168202087332524112697820044996653985391555823949295057212930052218752788318240220277177735463538636360015077853598426639613074833893084246182664087553889396652079263409138289987747616011065173092360751873459621857295796728522418016812168703878871101194852281876216666038927277196286225409528888852131091253937530711931084823567435587718531379685278420195319470792556747054383368974990695420072886042929165809273152338664322369268052498939739313031572459236327614211779395752472984130883905402935995305902517077979833596256594028756865172957188046020586241235250957948906029719220009885826082770181559604636608051531375565173469144016052326253509047076500077824022684131688174215250290403736040399321282585262864434805718937885245248487390548197643890460278699535700487557996458825875169666754813622838972590941464599358977075885662188846201603004505000197003471233850493927056936133401148595017310162366683173834391665262837452713232062816035550568612229151061516920072431721001849147849504577753098150096001817312847399550079791859808991742729047560738142065052351836006569711366753515093734219463161023633452860674684148840812368848921796895390021280943944139697439011092353784645608243079592304754016562133083643062365437090657688886723114205352617832557599678116098793350456038362639011262609447870709388845223093216363398717195864774588400686603810825092669993960077261269823418296562473139972410417481573353435981669920963219501809197018728640496393199128651460543627244838415024724514796736875659799054707539142920864095869287526312524069621937868490653685413246274237070519266122630756029735712839997363451004650815348700960946567873749631709486966891666984430643216509482499953574706663720037920638723138712544396944794096058200791829301990386916421989098011070181948577297307035857969315181287200900759725908908020961620618067981997297173542811101143015790495900386785889171309202853457713353227794097348144855268601153419161937393780244842605234398284935054727909452748232807542786917091717740832022684560848919689971241436516574972095556782964217070183221045989841092911589938940521334640177863853837876216660089214193886442207225701397102624764406636909024283221749171386246067191425722689534072615800626667515061643119489812469011974078762224588424264809427898160526378674805350059350765619166987501165437771583624416876148198395701476731604034476992526380917975704314004287330301449992970449256007309830571688313240452249985499585506768118716487497739713987986480908918305641840600259920961804458193483144139624054043906354476544245768628613720150599651542808278634884464518202617571930763706092990512524408856425007019288414867047402308089631364532193179310352806562650362839334794896875389751834275835029465998471762627518104330721978925524692352702602719447569065647250258809758378802510223372915083542928096764783341120277312356607386284236424668525527786873957509557718678914234628508304486541036547221783273880053883509544770412360202638843113420501984442620298764647647053081833668563596653606190076528369395746587486531447313543001713602374843852157922364034354453508692578290605866007716162251635199148030571099784094892302054273528110210458359518314736132914613857636772071054435815211766985411227461058673104349732005773519332396319125922607623947209688829829085083291004542222748067202014201365092856154114345460448453520276771272354791832220680530475413823058836594482874618454717565589839646597011697675548183120153238069816622128588530629406926855417776903790253628170455709667723711734971523885539706185503058713417188643743672967427817606882201662164187746826110687576945575836830006425300644109169115107743252078889988371850050639648794867386531576067753188703221494151823635766845018144796313593837993578308708124690003115147591011741456192258600654832097868776716135843046136716782956843999985955101810702304936098559212150053771686674706472208200083191962610438499074196998074340169809370853828849242211052036901741382666709401859944536145130706171420797225864996574953615581569722338226252231225300618048192462465724516077904629718426153713707384583984682873189166065862538875417630884516831216140255618025633153188750764518255179613699079950616186357859746404805734811363579217729290996313849758725598718024205093997198221989542476270860016272380126797681956862727675674579584394194412588493166151321948324582522142286492529825518416870132392083257935192044570793078259856897214622130993154984223455716183679449755645364187039927447437869988112283933295784655488911664355504422108237422251360049145937109251586369890867222456652690589697989099985292395015017303736823683042900054305128922072521046853232745130649262407461597572826078967569067787517933642467049204412473880681940808321010652065433548481287281220277111907084477103960445795534658374478388953749107780606089650797555923912005567137164594295786435456112145068833599921470296037586888392049285283594485262324720320759267846457067619251374044778130527523008610580133769097715492401434056672956972324122350216277245932830988888605390477463208389500365776898959877245533539666869327124282064109699476396797450296430911116586446050387749802024801820142874816520669517327598185321145552507419250238444428340376715581048431928028723863686975014492087188195224004546090639361433872381557229402832996072018903480438324306249813344854027616265945162691913839692720289077617134492306348308586118714126940590687634415502240898634178348855741800245154859279840552238681406420953822052073754634301150318959431242944387262255375833558408974030275430862539897144797952654639705009998121077523129307477711865336561820002396323359131249029493946024080019858171607203500967389211907110510457541179354778673455273840934845008458297688536441357170533048049641168419309231494651829811962921093961301461883653394077772120210078887258402749233955432832862411863238777705508070924976438772389577049418210010228805265594836295894871416102492459148694743245221920634120777861562991583720438907630720137792383865238571514820173065910614644998834634803868114789523994699252822810604550977373587746039876325747929672073556154904010409020591782675522711417096436857398122563821736555855051763532660092092111990233038758161309171228849046171018412478732121120513354097264312138227271336995118055738962243411078122179022310172463643581407603959550542413237418373388001936768868807389735434727982130668747953885177567277298650179716997221027239924474809299123417676344471084699049271874357841270972404799582970803694511094580654847209468283472234887824682282996739256968525669421269424637547254716517511099157034800732768063422994180354274045768170862041566640681727582447424935321845471883346766168536682842391223876301757938868073143097279892594448289202423453755486558434844424022073931958235239736965936086120853335448167921505692909461275592373663103283723074264737782475971243027829914244664727207345237917872006993836874919305404080552143277043512682612221887201364121706685188900326033643486637417799479437497121196114290658288031470602328509002497763218255356365258469818362406030769802290820921367567500350020544887338764668020298339293807888086504997093449490434676091173201829769673241748648703478325112342698197665956644379625573062068421863342675483092598345178596267523857399889035622216047090234426483993403395523919453286605024502453456940962944992607905227471868826289462828538733026204043180480075864779196872442335831283606599893931839978233344574878854974222610166922691096761821145051926994098563459242255903850178380401837290513156548387075722782606649253372317926045385827948730332548117324629670277959865471009545392902567248009621965866342536557402780416796880063287931269298114378963625362365568254594665370387688653613971195057788987169681497782822460330485967443774402696684309151549115389005168191068393931235917760252204818179059756962206740309847353493113218936449043849226412094785383010089037448990965095090733056646231773621935784253362911190061415313629953528211905921326766362120769223959419536035916152315222577601684980709159700190663559020678301529969575451020220204963408211310636899261277770028123441476267101255855377065385394971734159488985527778448835726989161442725115627242323555432340173378722058281108833480112343182775557481886191545914010404889563472045422908287574214016152536412491024219846643836754666952703945852834650179254932800183205812983239139748865225936747646166278546688863643665916894371215904168037610759537110848908181022829704230125153238873440962199865365687864439232926643783464133283582325827021333717570456364127128828582261247014187602229272758464159489840129080527074346403840274263281704292194082330209736523678738767714323255174906133673741074431174503994762802523785261096443729634646083061234001576614456161503455877093751016275842940154428931495482143103880290013090598951245609657106127136330916269658275252390289117048949462843219418100262679120749170871168478854975630685649748088364169010027528062362039850754370964744270508027316976010166616672726619208981783606929172689782484261402149639807111028050064066138348873903915619885822842066317518171096952346602258722490977368754903957304255444171013429552144748633527605770170576307662579455420912603904864036727754591749618462798541382934856630307547769812332991600531711384969709384160734379123677217810801615705890025892574859797580456446431203345774181689486460229283010693793769009887270118176025133439983666011649341452406695803568729039556310562534210392917607386745037419970295110211104434785956162820531724342259065625564621192722174105320071187715795817756245804732313390908596953111624812705263339833406569882352625904130409030568997867012323168744975584153322544278577189328801482986084189800051335131618921287637457097901057204339235668607919233919539459706487478415926292958501274383628068703034079457222693994127962364380957961518772724307740076220375270717604274604053356417082600921605426849713456343962045109676352189555030468645543352932827710495762141069396742393667497833208948678424062388207171641373947043958735344535289034385793510010268961433552431254824891460568445869483288631437980518986303290839111953727763422360254904739233939528365840664205511435062769301064246275142985917746933518710151956690091894960807111338932341135179790192753602538497454849738850012400717020062843240634399421266769440142632980484217541129222343993498970206298369178676525942345042326135137830149277916415353928069152660818908180320782808680479393806378430243483707068120337518408604309436024976742747230539553155232212872230788704703544410415660447456139815141527049603251516959682307067439645223128990769423276757955225140556269076194490538875237345030806379463995993965226908602773834612638287569105836064054999666276695006197590908187322034711232499290180832537446672267087309977734488721340208596583781900555388569639531907809283391025119468714904063570238145698884658951824101147283308721310891965897545893169978450686307482065145337772410253024429082945896643123986608651811777937812695497643621434421582447148770984607364391755673423830240585285840317417748161220353967771259149903827643482203544631901476540072819094122389136872208249099643992666935810610401937796476695733181690679384631306585792673112979362150591846266680040876390643715971325257161482676232005309450474528770939933481293144854211115628774099280315236420171306591446066113861294433757740916052286488268039765065023940148699415310313397903722429172720396103525608371083192801998822156829204650446963135978974467604463473337596658740085532953176594934061511272573208900911317045846084721358926261068656764682780157222374870769300528646202530658389601906238491772613996302077818794637317382412459605590947451306882394873173550240938282844282331944390591519940900636018508438081006280351814653994542859554446255332039780625439978225257413656178884086829060203007456621869383187520657131123911401269826705053770768573053645154203444489832410497316224688728499235987679821906379790344314419626318658753656625601258207376696489788648878298501671748774696524410245305469690883772668383070051617730021798985119786107214665208019283835855146302626083177566829775479620486179084749063904957677872295054741422465705862219145062291263044275115859510351049938849600692650364053998642916150605048803905857962568600111377483439530079307099293625544138239689590517059013729857821673867245870246468521855248971327566363177188164893460349070639238531741975965357029887512771116486926751143287712228474983873042994341135716438563024591576531267951469086736734154454941741529492154745057440888917286265100668475170036908032310031575057520566251502966320842702101101900729668734907630114339227633400182288400336910196821951082525846314951151905039147541194978595104611366022519670580338365873504599206095625306620834172749596169708564709765220625943093903040876435377556548024922564621619916950906907746136771615413317821635404766820255452067766982428175351358058359979953674719690121916216874569989477974623536653020489855798203331295844730654042183719527178461562315166192863954773115840252350422562305489915545883891905715865256807717568008560438061591896990710839779158839005117679076563385054480008285466706038653327110455712124769555362206168924597315484571304924180477080658048401563692708296002590155584941698260202577011312694598741709140568631742674604064457443417579250085738528542964154898785925666316937120220816270457716293179173916128682191963047347792337407155876065508398112666008007816411163389249601977316925987589783256453875739949664762361642490118154571042633588472660660324347842006581520521583743471061098463768866745362890681130657989952396740763642736897755431189025681674411199222788291273643258174446904589423643718780311096293732199161659402362844722419366582903611852992272458677873008636725238992980387902521253333125542216465646309345837237391760996643014160097188541316294415756938579427733312780711915299740080273026959768309924849259848920290087495508900629353042208115713216273137636672518889706740845299227972747483063773047461529639623827506982848802888341908206271847867516164750229563817075792043708685618605714384584990990366407321515185526004932260763856838839237115210535003571468093557693754976384090356704101952514241333403184405532608594420405305377984407491940999684322614241111604186112685524195411580972554634304458675696568480185925508639281685090195176807802184432135611660158715658961818615613653594099467082862159285163413049247152274136777387523929939565608494276666931498957412830113098939746538226558965860896034978279751452045031507158876903157526152370095764992407139118740319633677302807658824820869173294309915034833214598600746614565119467449482411924790823468783968658453250136480706687294328576157279845108946006810899677715284830824440826336076658946547632341699613536279397450588932448109844153387576012830362800911543236847430169304754122637228859816602329334851986849224102445132328223418508796791359273853534419375342312396845721876078479254480369302940256464785194552931723003490539355226383049838554287999354663791638487544350022416192470813306761825000850375703311447712170001141509860170130221675887198926158723984270484800298696412888251448285799569140826049322805979568310030161432198868262461024306430819660776220015875811044159383049481213071275558376082519163617661301451349934700266764219803463523564523024147739966697121257433791895979954648953878695692567046959671303099120382258373257665649479413796977140126449251084643235517483469761263550120092473103269315898929189362407946950045666464658554550592815506980380367536195988192862895219890314834928021933128738803293914239064766570569704664818679871233133665807658602268016433886694130498082885923922735583986481952719315346953374332268007076461038664691894609744032364287305822570418363807421656449036928654562712406467495332419391415771029329593572312533106599426591748921995482613150885562995610158470711910136233793809466345824931681672834952135971246959441506928386240387404917694380861161958663032941807425150098328766917929443298910837502258363404902453025308176506835769878726222915634045713778208919164255824146628364279745983192733677451527661901490275271832237773562790933800606328513274627247245999811037182579883113846218926069104386050031334083942284326953105269541608593732866548934100401746301631095190121513242655301716277787171331344642230779909301975771986043039740413065178703052586182761153151981942486431803566710173570479789060762504028626304389373662130884439399569258734000507815023004083676586800036921257336260404180491650993838445462977741276243405080307960024363512743269134553858053897457192770673697503940610436039301881166277151243318262142869513336430037245947473897998463609733198483112757071710850219279916279782193051735846210058461127529962634644961718984419808513877304735298087215908313807221428402505370845729048829269694087898622193303560012877938447418398781478657043523848465148665682164978579923498215750740910996740152646933605677183731697877791051919931943005605814587852761111203243307332718389485319419000633826058903611460429421556834235464564223120688651358595680958457527939463686174868427203266804797709830241865678470169487776762469518659389581481406803008339601923359768812892881493428661722556352523781907253420919402594626137819839307285066489338904200615591092621324317475350382115824561633746488923508589790644614154977149411279556510460318197376865581941966871417225318710445485320952438227646828727781488573768560231450426698089244412748216339836982953898594459874600681330867293730216827901933139994711350946501086533318127482915670876079378361817680336831733568762311032564227502988445539519154561034417669394355408557331205904365213162043087315903599444535170124359135490706158845051887956067392499334412240364800395825886542905118048480369116229260936692412350289256049374129644017119595070190091036817702253641482114593306946630620836818425202990961486430204359784913172895252350032342271340789296007634068889718853886029263272251392230359834616959894063613415268345596963305891393100885033309244223096021153836134938141454844461249213223913560532563675430337757973851410202690617757932576164385265204383397583956958337524975436745784064612441194151772541340249513376736551167392002291769710674819677504406605669672221596907907068136450971710085627731379621807421789509427508161398617494341793165150897955138691887402476747969566006171231531431838479381614657606581232170909002345529420209464559161711997193870698444134875474955642183629601095611104589791558714737124186931661200050823659517433056329385451906541675553505987092327230501036355173514974375044630088675586934541981669858223160854315893722608974843172949732846275098838567625707616797940495366809183766635506737152628914205503088225101595455771049676359814271352533982813819965011838263817502174135376591350697011997841204113189311616860554393188640047071681729450850535360733821471612443065592712817844388356514920339321095344470595177014739518227237345772216001090339121407443745886961192451443517624620089665821368612874010456730606125068256844424245814483232175665608577901642829131632966090026494550537825718544518174560993743915937470531974097414979929851224463645627220800191292031977970154129173866173886548240788381159797594721787865758002013911943814946515892566232291142107209963771262362493787466595259269211507380891480995976637215698065167218079446945574604928103183762944099664066204425706974536639582744002801439280727824922958366107940631396188983059442170183154568993955238515448551970655822116390278122847011034952866035001530898182451378252220936364691418707354359973529031519827294980329896746809188197340952715752948395501274462449388184569589570247074142910269637849928453300182189895547546720810407872072213989671210742427738266557011718340260189242599380830236316555294172285085627873028529885135995298269768262534484222705351471336349904113568667455598413392911208912751742583334655615377525016599239237620011556436085194305334261719630628226998375972277161337721461515503138504747414529362964846235167376151873963728928769725451686494769724526892642807979757567668730620062638228412987567231418292355861828738968127365842408942935912196893746998885383819442235738623968787903944784684335181073425986507871987644229946211601552038994275276657414256950420070515162812853190770290289295415332677253747339646800389102413411137996923530059407391057457336397261928891587559989054574613839123691975595174750895831466952676134491740564549314491232498945101347093518051946402801657718920172239341856719107872925218737378185100581720820554903031172934318277293490806213166567117210631242046471391420051561458945879776466218824839275562410036401108411848995023478707408253603903331817984968319049497187155751060918546790253195841973019452382846610524619273641431286361721897912331099731328921534465773946730746076834595081358145869158312144170047778995868749313498798268008726892762868156790268999606750488119159883126514027814150881683358725410215255381268662435314769957980692825594737286035741849742980571394139102731306426160965848120006584260369357324612875322058456058615736126202424638925432733251884391567760560971499941470722749654417595656199542505928148517038499885452125294399973296968816919174825851967246958305384104727889281900028696877777248330903954689180100001575219245521202087733016248137605188578088866998031872111552708934136629699802688745139840149870048224059849221831969109568652206157432828347732326193330740843961255716267541223473922921855520924341556377722884000918958497427106747057565842117752057469532316221700505392830291448667054521904622286420628827284810291224590682596838761363879433830257835984114393902907467818525379185081972739384519030067743655018914679569263123446399614352936357746703648521312729570978754499065380891357900413897704710441834352556467044877269750961580650105184070387999667880584482281912652703721918008029810705321577775893101416513614010472749413490533402009034530515270369940219436539225269811194082086477795719300255530547816051327727584684465388345875269402134998637969627577749365552875919406509316420369942897301738636549094844179943987034935764615693555917349584281281372264272265129215286085305406744776440800155072241592769351695819668637699868713169971055290562362899721696721317424497018025927374903706439195322267514840886277515832560862377630337438331956793685112496570938189936041856574270638461455982381463897915454855607609972981849193373163908608567496079793144579340520942674670875272111449691044545832108714469173248012214648579191208099519798681856563504393240244545139162799324754516373640678628051275971613989343621101455876540669080183661594669285915074431214607944908290019421054419934874957777570243105682745574209804633193173779763614416680584423819633142064809823969416775092264832098423064958141643491030976030001839806108436075758946914992769130297576882296744849315554967442870920096399716116932133258647680859253628566892989740519723919789038743065826284187716770211009404141043888159120341930864335753438088305906781354069072597773736222315035258736164095737309261293199767805187793355901877172312214989837510258618393354764673408604226931646730836753900092954578316051796757203086079759353198248856539151774369365470087938878529125519821879232698809222953616316837408046664120568731672679888175885760938558624297268766943639564772281105051851951970596021218100954028997151704016952587468983113890497975159489117482970823387176090887618841182153611370475044378049462033107589315050845805838615884494977217810024999759153141917117455091668117246023711607868113861380453104993146967950912051723535615185273288940159579135901911394454570879429697403097527903815987098174228374237738052415720473442082589025388234418395564406764376560896424692327237767602166519143879132068124793480759438840736220055935371042332840699464571960917492923943233436847364327331750264210681829799832873968220498828504194121325921020610479073917315354739917305675740351282388028324283977288730339193125676800549640353442063151205588409401487691572917744316774558034736634219410823713229462649219445059524387754495203916045548291171450190087271353219123870777718227430554252598361322722339194162265413053431309959026172685038787575124591095267447810556414117069075901358773100889952740656413391118501640262640752321676411737332674027457121306290323908100656998286754788258193860621290496714753847234837085728624020553816341090311354428124836233220118289010099800821142642984518892903992825998790550213841134772063272842243107284979387470031706135568778929384204658552042042851466572938907295561827853993303513365956261945478343876975129838988554468046962966227526433080709498790741317737715935083042346184459171674390941020120624589875128888842810805399534587024954635060991021303525729129360262777901994856997622093369583063815418208575245716214634720702609190478685864868128736058325659792155567411847210020799482360770231553130326036082569470670649837435200676362104681203406514707724844151579822927834632480750720361398980070633354635711080735522165454523557785935113730725247329978463090445118755305315158178031428050148912665206463502430123991718059520421437747209007646529103743683274407531488739714744064186375768827166293190938726592165684131159249536150706957163080062519858973864577582044046978006954240808582997081157109140802922884189041128136422902972079434851845654264802524171199026651382393578043294168332464754404690467726611422876303882618659063340976180524191883179414962934092295688707047952753633175185393454808514369246989767031481146398505300451039292753539440790373731012566674152395055446738469291178882973952395606345544076908149763417368346559428599939256130110422397166920250307555039416926650807684337345380018846862639589868976256683424151228160788463016014678475182560003982356627431397025773836784170330810593164769539325860642531806202716998563310652697356137013524513237095987729988330950469956334008012336284637467912938368453619430728645495812895945543182376623710190602522939102843403162326663175139085286773495615454210766667915027727668707485363952792625943850409565271069498350937559579299497557250884998638934514266583545972653160459907674810087422054627461312372315693590472845801028618415010838390880473968678664700820958233214090399110183380256898298190403380574504823478641555402689685670823172309335367502814280131269356519001840927815528803533096899446517743992478401570158830305364881374596008147068834605673570494844914405787087697968532670779011330676143826210210131320541804092409969062159696171904357605279634314206181172960879765682873027105598307154032998570741007636262326459115186909495363456555902124515554362808695051319655583255125388794120156884067821834744266845541430369420795377986595348990503619309644192506162133013948039979371814947401732590797985177321536571236444508220396345117977744155066647624875343302367814217476424230485994324406478066153700996186262992010922681844815268454870958927826270357281621926593683708188617043219485033485120178018689234288404857744701554343191257986107027852026596699592351961590957475741265755285443089359941829258195315483846919070917419521429487945368738936965616412684434984678791380909180661031524659106437965642653521625072238041433180023359307697575397278233547926801443925534531955509332656240738529691179623103280296863470370676026291411528655806192082693374335532069533807907639393071010321664941103522640926638830930082437288685856211697550192567776598004872458769855407607707416715743601288580808786875416373199784490800997056357156883286762641232802135811624833978866350687068459592729505131402517771122798757441327440383540380841606404156598133358133243910125823170297552989163506523846396847896933558826702559398894647978394789343259500993326170388579482683140055064337454494937651856795620002307662989446711208834044196639346621397495499309851630163768192110370874880542181241892458691562316097870027303412231013864992356278825583561052053530732217088425833728602669048923750667159453640234157822349989230880385915467143258010262005241211610956890891023802318835667314846014340638466401746320700220813234605991699888132461263142686208928065220931632963318946250995213440196918945599473866351288877327019789928198465031512396650982090943323912126864247503816584585704496578364575125925338438425769175734761819176057649044423539615154956957746081011365097980273796035006852435978991058635274286363682719216984771448568891229489574827082146688999395650956814544244098845028374000337793045390228425644020021588554781086254329708320311823402928729406342774334427389702022343469697686743085887486538257516152865590050544871524746259911010852349481667144803525974957188540744597311127542972047013318120773233804638246978208594951494545260888772264911854062020584790839154920227377561373155805078720634158687456425449583362783534642157520866779687570135486025177042375328489455815176479132082941863788015961396081113334911691068436911219153838097922933664717455032887080244594025490674110023531301445795257805716274617783577047320133511459128052761572711595730030184503550403937875166191507083078097922396665221298329938600006190500952450660160886821172953622250764786180214090963684668693156726536040425273362145467105949383084741944300755293918163905843837347153136347795971509837471067133924354088184017441005888136213406622296567426137258051323174046432798146329978983605094445768015696283216589438283279114592048179939122488488665431114830524299659819935185207346341419255191891040082013038828312345095691755705205895647237255351235230064903711117429795791799475305729074930071438055683303007478478696201628857001960132332573648161290908646804275249986493076627244868725677414859723877374298293649204456970131868535942360403587521897904112040126963783717598424428957423814956119645873781143893387475287319268704593326544378081264542259076109576105875295125514814038716730960268086380530478433741100341489527329325613615840443622568733716685573293587254757912123392526517252609475643362343635882611964049425608606377745129832234400369177155012118655190969315483626434783417083977640121332014401967311611574725963409507964342358840872873323739550354843100237664129532694150960397095891078647986130691107591727756966834996539092610214290448447320510838073499065961269642031053543152361360672291841566614463467406250264493322945349957013307654322937144487565551620950982424884051418730831299470758811528971015037951674981465599474248664181819699748117443169044100347991006705483687896172498248594321835504357375341095955438893361706043211199168768074443890909525623814202453446614808471602219961776394904191650355470016756815214845161272030015446045137539916975055018655050848031115553588067470214172340402765683218845720134539470203039960296931642716296107545661500997642355923265908683408258458854075496673813969362100574065401795488041529225395331864436108375387714062931962749986918539599775281060925618476727507705950226363624691454874569501631252887227195489725923629897805869587000868024733686462885242006124671396445242932167243734420545667715456151299438090927721249802119571933955666209574293635480894345801858386872767434310766577195122268504520205469673320641247559263532536981221614610447957568436388370444921704961203645228510790320414629019363197216478778638647060456690794852102137472012656478318782599242133744709253388235996734145783045578684399480377287393129595378806206282457689885654870319966624528921148591671431120663748265048530953757720797298193901990816460425536146243615471699056558997178444182269348239001067964069939087517284878384930794083740339118605345184042456576749820960653142188367867435623753757342626585119367330449452077474552870298375486318091805578305243228290534667096102670200627170443464879055689955230196133428937885797491025940458744519001115381367016252501609892785666022402601349784078742683312699283651314623431276103996350055058956861201547709517279373008887579328291086327965155758425671463422532718634164282944616037629096672292124361927329545064471788428343861187151499948255910379870356217546921273727008050196907738106425935918184935538917592351651458916505106084471134142782246094028694847792455606989448846494485103375834097751404510262995659572625754941301994124670083275779888465260304774371384369426183611182789154371637284587175301241439146340970536542971605364114668152331866116493756925358682487259354946996865969953747226404957231089057279621476183414822304901345326500196199038799230863132691070818736235469224228180833433042844569925780985939363413611171912202111713122010874051371758315339300539481375304553924389141489681656493384926626052612227540609018664576392038109947188353057396096572392206723262995404566884818933823725593585993094145724521441924872897352924246087427834300522644678483569284936049894065213241787980293700496329087878673314629805571401450654457387616670440851103131371442644041432794288283356653305592122877298347720263838245854869450086126892285892078478338716201835780155131818036654441426714346051739698925172357729996362465485197033506887428144096430262568654939029682084776022282184017787173110730118614349706242356599375548653867481537539959505409284713522138154387959443293781970987090739252458432244483527563838063895302554447521339444545886292890296543377760445034854234077062623758467258713171941617391703581893340228793759264069270034910447302976207204738801095213690636895153235423454608914623525168585294722621589419801579330692640557050481191013295371922310031454453631691905034633909114003563463471418692847060264086146673636469044025484552911930477713886938064100205242183602667511347330020393051330282901752513404833021649369078563571272991964568352400708720313561742131623318314623139710616727854510406922003672522985741352834841186590613885722425014459302352864380030978546140956827935964143063338122922598831083559813089651205600339851125789421650496510405707031115239821770913746001976744722167899405301517323204156068797126512613042809388296134820967877241350175481468461418317230498735312045047916479974672364154441532823913917623747897985494931937924716168786619677634780543874978271660619137295558372600319079384716553982912818464830734892195379898077254007287275106995053583883894023847050575727265896848010449055496379921823458663035545761250118149279503900657027450781604314790323122686495047615182060132314270396046583335281009732940332759544262299828509809035333949135102736280031336091470638428405020463339434001741595960141138698130046852412106119011253722418655333669122547776013063517962164230421699058281667373805425520082753544347056705821676093350476606252433037699589308807085028860122816526251609057632442742321775377573572340313795208724246258507297791647000306562631365606077941458348077960495802646579838084951308008356522349944574040042516092102667166980939348587979663891377797555040794010318084132383640582301143697161840828888062452556957363289566298728793696049075582780291560913182327214559882913675685829770867508838416226482372487388533229498809771680117478184411771834225469300167642287256812703032008502022480651994352966415672924261968612918691371133852444016850577098699964076066343127847033583353434017633675348785078827641188892288223135132895664786788539336539970899355790239197137990758384571555321305049945223381629491208116207276210372587309162990058278309220152973698482202269804883302413947709898475106843953105082530912772575608679822730026922505823965901115440454864690586606466851879203456184100864349919336167839346326288617193014319136628246369310166030581399375099203732740243542284613298566393105697017960590612629566648653403657657004860955778985986175759186354968740573858903642263064785116463275200838920144611748763472673729365914785465255937967336796497062119003095688414669535653948684916413300656559434897961048471561816273193201447917879240352721503156216793460173364542821551218557495557507398927123938624621089859348140407144789803939282485858543894989405925034385575578307989580996737655932633545209136878548271356520358706172547848442592342329329303529358127535050384439971068647446905107644662840207422568200320486063451853998908695198613354362388232372545357544210529955423360860715855103541908979227033994092834371747900422051330697023930741700750275254491185307306594633929132948136941107477731699729916599825593613260145571246446622038509203528838968004157226911851203625097382390471857159486244556189542878822314235452521585746353765036908088551163728539366612667845691055313036560993178671465302253354397911551037125459080045110557307077877565419894212201160542590111774013080643073642361111283018330979075506264770434241879280259425260307724192958064585919212429137679032725607336436569846574075521825991204713117373192449183935370514266684168576949738022086119256530710665091148462217238715084841221035735629840276043097172998778397333122767948524075636495979960266562870168648690480777376828387016216349894829668246078832740395640636675664053026938382053633839987005635248128216759916022757979379581008731051354078679782886404735951248552126496948249703357097559016254556884262753490935665948983726186727674940218696544170319161936943724357611428697229567859000178752497426225583865797092680442226423602976197544826906450249975369755643986130369078950857056721282456292366208728830464541620032582277442012000011875232683744932686933987483633180872131104506674326447504817082922831525177208619999488978394529466527964292083525105042863613975749407869267763863155451441088455940184127477861039053356785144766325194127681507177111954885144083217301666830568968706816459398661597800305714467692423047815526024728964894638770481258382928495228936477738917458276946073028778478258836803920090735661002118712420236062956464609190288344356257293611759135970483220598353787933503565424570664423614970650551433812792392167826652277537786762466403500945624828077214683661851664645346904571904240637958401493877712081163292667215737443056671541227212010661098514997316311405577977780730192233098654162883606293948191328361295297138791344776814249735282584330265447135025731656029162132346889271947763500314523853736225134125334386654694865986200537970392330005543149091659403141362677683719377773955539961741474390181422668038872953076000741639225842565967974818627246979730396033248615712643954868078611767635571699607892085569502308256895454952068400053806282820432507962311430075052585602779520865118750105446163692548792972007356121650424336387736670909778650037394182763622903968782242601146748608144015149165487579636350943469163448423926474155417445514709017960402995767299270541348190033890436406172013029207281904414286457025366423668211000610813004620445594586633273891495150310388822094332567412308523753010202841809273833457465227911967045042786123443824557312451485706069059058674219394883397490969845320414581818874953474090639857571244910105990022773074917008695962603294817039637889934110625847964842835240276647108613131250286654062706227885851628249355329694898113325115774586305071897052902129141492750629809906014104130881640234860959909543444583474369307723691156551039549570735924188682562452585361644046643666050602683139173730999723822626836478213116382701832757297201841013779028167671369170148834274230919887704362235502852639365831368724321555611360806292563728004806627111167808454214661063709888277944790056137808800913002951478355041734199647616383006318358866160080149179466418448667832329172754225218365979144800428289749649309526913432898322617924580323862993046676851278349715416489800192531135624328154675282154416866891878404344413182379245599320905020964382493663830474227107983193474278135294599865446042172119203682811370170594188613841204269767117616752078546039491959852964303312238034436640446949906325553802523271744225835079716780996725363543099462885878643093321871952192913549657096674477713741858408752120608088063832872952738377830510284100122135151598181495934087732132030889653018828852814816430638127491047457360642295529282515433004137866981915100179448513681040501134861167488880388660297372973934896480477481090526876058877770501452173317767822178235164784717348106167546639528382881097540347592538869508170960534723577761368006967496068097435752666206383736198433015669343914238266441524331518621868228315373052461993317583908908486159210413082447033207113516044972552025346853951748554041021776826843726832514875085623673561662218508815692397678273021294633592987550507062738678831314140129144093838751271619578745013804401859643853990301051990894963819575770364988171947727563174442476591241282136025181528788935041285903721554343755627720648431645264660638057476229030147399933316019440620233480376576930736642151076577077832024769465942290438239219699131774833838143498971121775293261936087442552698986558482463336282194585392482219367247860281350556756153171209339333510611013908172976546292253142782087035116685712369549788788815046738679520279066395448060985028313020473888733569365896334566259605406026754171246531469395455210274409428526748643561740752356118536939253823026086149853897948389885475585393185117844771386444922128230941401995110891329004028511148319197159881663901216178657661281386991754019922776860492312590530924168161077272737471163063186727496444648784243763035063469478838912783787297828285544067205820719927935380042503236714505731333816594160495137771075908610464166237453027099417028013453474470743454675616236733815400210054236396692552365260394158584881781387581693026980556241587821001654500203947481166711588064423743272116578949821432134052602803288526681763650253366204873634638882759667931442015182030709837256159897113198197485836667566595725965761128978692960683375185816305129922540447946084919711395150628282440151600306456132095759332567659495522358140657217970276543332952455859342366665640768689722479645060405873935459892368973090213968212084272223525665040246482517198999293565692577697713180337339837972981986769726461886740771681451859817188756418123935099161588303785826005017087828071934862102630428970611892650069359031635540131707578635338850275348561098397394868927263313305072736935165048986082326576855977151462208551767659446644532619997252527218074063469699089779736993239460215944738147652822225624047970174637503760183847018825382791840372887051767142640748457680798723942405328232766495222167245775155997464719824168655154740086718303293417100217936938986696558596282592472922434750774964650666599355885925961047465661076369451762790799447747070098387525321970379309660344446690100670516098067079239453718961553386988472474197618438865753971254027540147818142099045476760384392782642586323823768452796212381837082864997721978668079871230269780320836334200950488793424093116475613432004840348672628576913826589758125980366680967282933793122543298543964241025894068919848011149908365302371446407164931302343115400513894036036793723074759712183612162882360407940934259872420406352287310271638426355509602804631316981237199666793299169231647029364711806819252270517976651303617321108602645481780916176902952963589034864044598602665360716179673534046811334347145831510803431333052605104806666078243202808327585878581762469209975222732370785708670894870126670033087169383211607601859893870409488893673295090747534465224614925244636961610196193295672465834681422598012995384839022723204989054345055265748712964900753679922382417470120990310327647647111681601962269930115436963774229752743098229001640923726266255741194294960358346796694462465025248510047004922060701670134601850856733145880283453036715976261734993197300020334328550546736543440214774932044269768809504374861168494750447236376466554544794408015520083441050518933831681247113804247059643260975565471542651455897428477925922775787196339215674125422665094821465793808713675280836955706577492317434004225985762459072339951103632936875809412028664939553769091009448938382739209839176390687913233474681489609161859136734579399509609262047368403323529766729905069711931206898485042177255510606244370612289213784667038703117900046487052079422622748387890562185884813826982693428677190754961152132053214002298740687956785748587947056152103330072678323707425330997818484527857598452096213850809437369377878473520605053263904785851259750015397149225124907027755308761261911593433846673398437510391237942605692758789758943334057506550917891769562960193134771364023929376209846038853353540835021849188472985843469886790791931522081350111805817436053253646000911798852650287953647663222812641113211781590465330741057277391210217008901478939213160895365369446108070952126625612518023037626935112513999482137665167459236373344029775728493264114523414609182512710272274383042468033254168819637904370961606315910158223166137715512569223852670068978319765007384568781533097104161705153094321029774840827696544779252642679141700256376524660959393098031737293310793909615585260185783164423575576157720269242742756920497918200295035699015949951769146537725706793319126740786117395253807104820209965307195856585030613503814461189415702038125715200277659190868392693450303139902657724058489859419804144611266152601830734293086209402941613448220342368681082937529285669516768111670282087898616699307394710078701107068187703507728678558197767080523979689115180812080046033204864266404301921502322117922892090743622308738993597865983153742339359852180090844606657670110614396063541457075027829020195110180310473634091894800380241298713458302209489666752663315682708377873942811362441333071770152576936246831986810370525783849769629419847044837598941764675214614821883868783526389632013500098927879690054734446278877148740411711991811419604383572874287658438432041104632908121451679883315699557195491545997690572057017198476627050367934309074549101586019634185077599402096693643586062524127123773884448173373003437964082183213721041995792140273424294185887755985586148300689559469975258872101951668513330978371942763806996409582911135582368807634213223107662747897057298099555081024378014628511575730543823575602243569575233471182203266931694749853368333197282483417569932749340855532835138318213207224084890561849450273981574274491309662343506656122140620046805032944701940516238971847412077914338291639110006416036058530675483900073257291610230869272049194684364458389739525355215810570908937388119471834408786744106840976344207172254411112842814041223282692119844272762955767911023244879294531267721219736054680537082826160636930247141393076623794355921347268543671558726200002019577038977391242197293984798429005183667668139341949837952179070656442761994154653757025960181037570699490994275516088170398420764827687547231841630893973231579832736276119504819496918557703274848373215721773183485191769742064642852247623870862661113455349792679116723545737619118853607935745734466540933665190365380827309029983764864429635589855094041947546878789620393770131066864970480348752545643049086456661340108467989973734540867781866990577381710209351620367379378718269545870852819586394994149164792937597624331929812795294178441701393251560360684915779515711206032399596662062064277183635321807810048698861441329341544819462396149695417602572371770150969006626214647423599612850537481624348489979212469065404881224201200145981654705747674286958573394478431604998970970009845235691579693907198102941368147638514059606652710853272601411493403323345703912149058709949651332701199016472890059919438794914542172203926318725985379713574255493889454685166142172042254913204351944050830046568252186963324862229312551285621118243378570639615356468056015313858606455345866287419067628482114532254960216073084209854489792438272533008969608992542589199566810958102629435690643203877943000890760246131189178219289109337434236992698650188259617577978434862311949960718469240908094182553090748399482919684421349532385974924749359367954683651201112845697852609834360833699822649672977696366572553541359587915716987088518756529408043550332063200932533537288353644872755128703104416324368583477366053411857248106818920989484179721394703932459409552318026527729255951051560081730972394748535897341082985340458826594201714318680570373182909236885286591016813241341093426632702870951996315304769987610243294386268008521181750504238783451778340236176759959845655943989173666195838563418997815029874580920763602139349840348790016662950970912915112484471337361269755370316851953239372964741908911207837509544873807477675474255241563574992213054058687393722571203999123112804867341865131147514443935978868400605235976109139129198994937117239797056656075858250752479338831390077644543292653229332611942395006550220435205544324847243319608614734570846293248405430492934613687469972916904533646427404024208041537533972522044232035370507645266410471959099805673582683284555638434162110733891131121143617153765637076189176049124655393357407458021539171057050819290899805039301928013436967024552287732459312312152601222469336358033336329775470126313130994815175017368483801011127287722848428945784601113251978679849490025610271098671012971627111759662127512152430172717400352390065206105572751934119776189931448734566973206869948308640401500878396822199794438918971691191334316283588838792874498293031472087197322523263950569156313053489751504266423596585598557405474403112652359299819960865791292545394777275368045281523093776591172875064345965839806667443494282160925973388962471874976059644275274493734965391100695637483609678934508112382261906660122029162003285989823842163552335998211935094045982245234526534015882386435685580497718346472902931686125423117751127464931022742075209338462502380688564905416173831475863483134882292168384423449268425535712013113540628755756367354611837514941234067435424740170456728145133612155937714675860369064893349576930973649216354954678563594873487043995121468564169483773242347780441440621757004952776350613415189968665070412838630356756468080664908586207343540801555009111183368835736582905301052258953835147230415631219519690937713769531584614395546559739057649972762525000363481731918021401324205989397224129082875433951620853986024559352589587161017321277245212398823094064732709873624511282560249727927607714106987172376262945422322122536342926446119690751406153284897426737176456077633762302364726552769271302935405928383571024623419203920513571943927459433746556843870980189677392539703023790516928004135966156543669178544597392893884941103649775524084643547253323267048152644679789953005003532112487168716561741917378719244178691052584202158064639119507201050248069412381714640839678739252210882681137337586144952871379279408781201714787013190070801318539525886847954231349093248259100875818708469505136244052469938574220731704761395146902471164595191868269878604485793493047089358854634769145758632501813914435593522714279025346342974235623156360106749706493159951752823195608179559828044935683222075567430671017193008439162056142270611202401293240660390402282144484067762472037455697921187777349626955652423396957380472046505502272435852209965947691633381329592019716728708694214368222789006723465091403071006544668582223139074310921667657434198440481911139564196916521548916219965616452287347654922870465962132774616566039301470147746094037642172537653995638833234383857468025085369039345256819482129155997902717382839945190325025747971127515910178894148013354337583423994313958030550189712433629914319964854877692785193602450838286596437035603838643366928329306149612042807762511658995932100615904688327755242660893139008141845536536883119674047889149996015648940010634429463182427478249261131406039605360240425544915033491903592062902899158014456064561167366872829566686611098677100919843255322975281009266841135949947196301358505157373550651569769872093341666219313156251437241200509430906333411389790078996102111525781671073290853342624993675243865382296201616122538096818146886389523060482323345989196370086824860853020680958208298561700029230702535122607354239376963003867226782774417660084082818592629043253408092343474326332580953200257601357900199755202402645350804962749473447807443835458370112963596869109600239945374369384113646017168586186901381256225657809466539408613811114630611706120969558948004567158455319539555670247935366397978124300841515027106827717416284305783639116833335669321693270311275701362691238241183663042081437771735160081074545672048234065165932439427403794103859690204474159910928141119090343271174585287940976834289206636380126675066539180172081457247202578687379501557403262286331176443072127340952195545321599570141886367499768053487279357261284371740291647016355550307759818812028544358499855812084880701114073033174444601424502806054298410751138803050399080646510506886987171501763374141552382344240784692177138074088591738850228077263888337091742013656877514387977175002628153124618036514040754879532196181377097261434769003200565393725806362009845501121381908236940935154404253343014977806193516454444416204078395280903443607909500521452208682157510164222146995610570553926155059183949968596130652562609004956887238388438511992952443133568824012122622882274042972674018965915776358712786989560498794291952623952611992933315428008749866648563945603235156536821990293857243243152155131702921118392925375368946144503286439705449762877849700403822070540006510572168201235244784842478894199270208393028122614278432762086711769864302662696622155739598866684190068117556829434463580224507565361151811542087581622052400335002817535739430643091010703031681330751704227432002677037586975981671859326304263356744782025146770898842921171682028507714237461160926707516628527174819276285156213924775264274646939362410355021683321801107868806221145934469776427603355624487366437085676599917896928092409872532521911506388783620060192710738379718990543068970750746592252407203776148506912307004094395350639753553559280856732257016232784771333399547806448749144379082120480156208913234477318875166168609659654177768837731859866552628598697040808299490748443466838574332400483121468745873691651787613304825859654390862962836607994769876340146751724262006532803323244875325086801556943514806703006633095833638014791413904824414066348150106507806468886235315146591384944531736548178204373901460891142687061085038277809651218332443702127390517308890519039935837928925728703575213861489494915894462333313244348957722054097133443851638917195448255620889168038540139590475067462657606285354318485900202884686055660852877968330646178323894021505925020563236502730538657677583798252990645682995677469441150147553056981652359935134089130191992082249701667225250656464642075391688152277750940364004826020763376303772175008512085275678462042620439160181303245342506928721990806263503560078001332048352516225247038942350541867677091966301631334513545718182908492907732844225706773790997469885598368712244764254505276522514284005879568927468991580213157003625147012405115692740561581620341796320420496161188969944316374628763305128137237079871260865558485103129578318357853412404358816355912487507741237384192924609511278347677354955792850339220457467918840710821269796390664964181184265561034283367208548879064695181155241859282650286669885868992436897740888747986240135925142464568527886789355008355243120129649018217306250968054627883208973775973465587552998631375228194056833504741376392455812454656561366621753862582979572602484848339830055792234232054791732168639450283195876528396166150308984812559090245069758663849424266341129450207553992243293720916272006403919025949017720091799035521057333469250629577963578145221051830352401987248943292314344566453837565321048604177577400309313561977031179638123165299654606127098252706328870471418574688098274480203868377180201141908477747034673775488667370058886601861548209804282745604997273958703775929947516095662142394684096527925205806015565261432181332516095785403367700760171235220759804817740058269846218173395173015293531317797144982434671905012914707313877305314673728289872431573139104669987525593974215033220867276558531938512496564271471491860273231875478930846543777658600684463769309439776722787601723798209156028398627651777990802164376272606008530949912800404229280689645931917185201723866683844524696899967820962743135109804852811354532132479284142800241112663086914936867588762400283042548297333115816088072995714439100016032674609634822845693600907618335277613249360236216768297319617699096662175180980334646759467586478357969874964164701703688253181540126612304407606436815736959076313452598778447701032268692683746733015154455928145078416879462703927114347886482396217497473246489623863553335599226329016159027086974231629900710596745774972809742874816079262165723212784244507833984322604739438848450382346351104478023243162048386197471722269827776616061663018471155434996418860498972372989262049356976255367408169194463537586328726348155287544780704746817906540614101864880704309225806096135602085643645278216481647158573620600519088100729934390716416300450861807239181687371491965263408706898800754070153085881999489082077518515155341469970265016271533974635765072732702575938136609107022299688295897272778861885252607457860060952411836807620717813996709517806613006300988381698720536537091379041691081281422826148111452895095811892868880068495287173513173602409682568772908223102644988867064951967403492178385866336298856900341049821132772539206468500622275522178226789724752288898859895273619610174921845736425654105020234663353005998078798921906084303166264043538900646384780847396396522989088354325484720348877615289756347342662390071408208725613652537186860913511790124366558760027197975531627000946799746620231997574845084310211640454877227243247582272339319086566683352337750615082237762023847552353215408302303834247805688438918375245132159944061044938620858525480015920565030904525940744119857867303585260962940312297158681730328584502984045962379248589593228856180867419797692165167159444808941767601557605577341072037745794521884159778641389334987450399124825447521178045184410439299569387335319642170025646387039237713586818757199675487513215349057658221800809344549197510034477391337756069274476798192152367908839824323646549605161545298422501986112132503620210957740944091551868137184766499564928936932381702470258144984044955825579778180855291253189357060534209920145931875250328331780630683191649685480579500818219295540867915067624640572902081969073999807043518118880530843094835342388851836521423918991974684609591011059049334934649430302003716885554593296498571296544913613724099148452628356442073112698127574568726428954933977668393740833096356597415975291429525261913698558317226296113982455253711895985903389028613265737236718709592904816010384850092327682472657545242462277276926672838438564599531953678821967201393456952884265602694814383931848817973901020395534462359908935193792965745181533093909125566644740354722872648444069335885382915279036128182950048925799932113845510878845523141871665889036564086122381673431459389856213373926560037698718211255348687973616656743174838121822015577101490713513828912634650131253487304533315097081009938075206868267663003719225475355516798274838879852594536717893452708109950453891641194471744607506554392983678736810168787775138587942547545741874936067087634693117621437342572893767110960331664280056658141086092263644548206750830334373640624871618102671202626387885208968374440864150986795984177695209903074078522609192824710528948291488107142448976189251890525282744131249784891398041084423407744193233647948531704407737824280383633672052184769480115681849698179484451297878658992240184015283416103578136524995038027305599158221189387885033707506768223159196855441185279251427056305510895001283780183263403926386645204514449325018391614589769405167855328612177095917336689452201776947390898562689621448975705244294064037899533657819006091058151602284114623834217249419293388685576194923270840140103343630434055277124465799953526798106482417707122273798070096277665600727717929744608389607209276948667450420906411728672538583741827515415997700565169521643589686683195208614848436260747395408541593243022009426484921361272302940817708390437783819534999502876783039966617698714132339460376200824185957846737663080761455748840129531874908465804849439589423089477628648025324493052499102573820582602532090763837959266794569353538614019540592861127274954657429008220595620684649002711494400868084814547731663330546680104953018568179418030205908120978334138018012753486742406242240962245672471258561517990734543685893927257904206840803020282658236696822350366269327811228401903599899117509143371962340755175649299545977961021828372876472296621186265506999548073519121875021157079426784877758171532868423728654364925865214969156579674293073947807148907321289500777923132110862676194235830879017923719362600085675040860091550393158663504074510015875901943973026293867499260164739634815857649801087714282250696896392391125826972432173187055607858601487789767752799979939202917499911529836680478732965192711531496856442106598629850955777586638336161236974519900558188174264308075099415203828122368698134131826252547276069318361664382942539860257657911614418985606317880275630845187899248068867657134479650427253105833985289890210418850176429250486080572531632680083007205375220848658535880928164750587150891773824926573908344778515114006049423738177706947836038120994415049343653798040129238669137922846861868082538197639135373336201618083804067805120212297514300292913416942605832830610499641597956710565645689876241748968259508434084468041338263543063018260724552318616614261036984795601792000073877030904588109530047801717824494696288048174955031390831114892917592279848482783586444140431093473864563137068773752353195705011831492168585885158573490803836900868692823530865268360348798798107101585568795901127382761668282091840448681040885155645520431147313743328567226471867949746036832945016997271561522365872693768034262619300428948250285378103336977578024461263476302202767396825646969110149526607296876309216085672349246472813716536322319631352855716575470116604651891591421528504503067417744971812295803131972143255316585887052040225045316814997049852411263925760219388676681341663821343250257554452371668251646090115482280449451301922375561867485150325317885172619127628961261157051824344560899555506610442975887945960248700579537226377032325556939722854756526628106601312365834065774038280479330355374011666804553323483367896101109417204419004907238242319445740274413133358757551744074805741278034515395166912179138642512202338589142418428864033562818029208248903537741420128937690494660843569997756617007673328893345839147563532454758203382066362411711015161593990039730364623401049997464106802933237273701854353107399803727383577771182181413523711996966679183513784417019626437756722060390189622043820763487546622116037847738991253112330643779200477742492610412706411942672727131192918953683141898883044228055399903945936064799119041648448165658820570248207380081098381257307693976587510035796367205714450503722936474149242604329134921412597522366661152046896115324202610132849970823646361552949204625422546315742309492212802472935476977346512570240712682029255618142598196567787080302814094134747988572238804871621418962188926867698417801532803485294788957469345691962292208756109251350372838486229484026247500446360684714698581227798624957488773202728139645515848992921683576662061489780234230450542500149915764086769073048809184916700363373007991197986775034169766472047739509764594711331352541244372399395842238240440969905107691106320800056452796552739253064930823473087209550627757455135104960202151585173185598402205433816226380933627108834615888037595188650757501452725072014648531302364424875684121520709239234162818756756616753136881684134206097582190097365600988472933585841148296801046772003305233328013758989095805451609183695207078884088565547143998991182763937409333602217619971917097485939393519225763979315190854954217340963604816847202723822026461466609882908997802326284068471950538227657793026042101725682993210808828030506617666163760175857906610736833686445115948917432283885084999703291157698200561742238521399105266013996363773808258969287438815749150875741214521260173173596780213278213345330811829224868663277845603815924126379158293462630141352078125439936859774398929630913297512338197957956820713079759376927826613020068429215020045158495458593590130382105420718545129747668827181191656808149564220315456357227524154989574568600827625452712425828303911375295808810893545714655970928869066202921278578965883829080116026732398285526345687840682699946418115277170308273870920966984141981435538292858874655748554964002261264219030921978126639091689884081311487470763628644700126682042682568706826297927684377124840614545258845033294849674178511416523311510611436143659059313495694280352657735609219063494686655129430633510192533640533285896164778636433130189022288719061430225344490497905565705315599992066653774303902820941751932779325623943143689259429417788173123181909164262728009629233913938946529257734551991451398744205334602350810286541537137160732728864586469502533076270190533023479985127166392790986164578806728446297818671079896008738215487754209126144333506834208302740280603701597499530405933811752782401279131833913777507867933972638987178192292692354190874617358474605416058760657526603965147059068186393919076719292025206653696283237269590492585260516239375493198063098404956675188195430243748626413087866349074039611799615073261625916109864700463541201017504137411373603487495066772507995943405759430714200677615255708801439095965654033391872661900119125685044132800705635169559980450998532016784077614568660244016409398028858815263433608888217553032052585911980754546594171510980205260337444729136835907324548531895109197499221302609429693893800459854288300457099193877634835942807871442936123787314105098955864688322582160516712023771366312363410571042081132114251729565184255467155960130456052961304876712680586354481291142539471933875987141935196180371214603380647893942271775052998571581362209461238048504746133860336398303109420585416930952826185782811467633873308756119898703828227591401729993692483984429188205527991434719778653601235693886092301770244304116388282958178656082106954122378382095813462613157061773425388610276385057943931071488437293686127910019677264048745026670076468237934679418051233174032725706753364935208616250606476290481493713039671853764646726086378127893073649969624227139641927497457174154762524103588558050247272980885015557694295334485049459550407434942752100080641067960809618674796738471899314239457533327084942087502374786478072015461717494304897472841299270710134624011932076005209478666721186996441397007011918804143398031631376844931511163929446579725405328008767863876351208836778332241905834740414651413974017382863603870667305806224151878851043894738597544478074553618156991904653961258256208822462832777977985826970728348264382733080266484175075038006314398785365756536423658132960112196648142549960040142444764480100972174783600458193073997772902310148638903832406495188032070422585364941599068011526937198129438824009680867195149594553101742347608369615205582555357484252475882186680968122331126820621275441117536636339124911836181371993637755619739653819265503245122468020807357212722768649332818396085669207957402471650159465118401070002833318454668960814397444295718126473281700020829057627431402582796772350071670568984574679729431208961092539539384810941111089287639816386485034805208666082586793661950214045536104499355867019859629779184062792460564054003334665970484866746948255139732181577911843208954078299960122182013619539568740182654735352983335649907590013883885122828707306650779909524957593480572925233442350238559916496239025619272468631766965703750991070971266486606392967319986732851468581551371405081631056506122825274265636683745649207937918193547775653357343902407864265703784185536978972485683811039714514644087809246005381978919848852531905006238962604233718408385869621460214253659674097663304747857280749472124973399236319749864601704771868184255894541518070911043869226232173053128627669462192943122838463408049886264367799926660069582659439432990186967213341352174815370205023909401390972186157228229276411907777465949727427351956714550680221447087421292187036399720089594579415409489452051044875866692376586111567306070701960582414939169380240449155500215105461706691649937341106471504204846459230586843432082802801498010989413129018860907108755509572182837911366523326556604536180729364194846551393876375043349856942162029779409825573529179382040680566113860098217132966895292127737071504310425633165562499634040242309912415392986716225681155286903620334223437407338281146723252963635770464631829685708687701321816248988327862930717145891419264288443468808850194664234410853507133787502647717673635275881258370121457227098933352470925810113299479702470182990330191926345428124118261747897418991450431757649109194593576476974307998728848378572960828383517831720252936257049829825392626363414603475091381959193586252197178612170165406995774395481014283668978239409431690569317191504132338266233414650165571506389798334174757873098399189088853793899712789863290743128511015282955309726305343011351879409595237717937067236173971168026216183128729675203011256059967654225749868937715871943144396198348450316292091692194925372554340900424392610849103921697112617496929391448191063908854553589712721643681645327476629898883008151243327212571289591136865637224529153509772641067929815590178571717101954337323274039984613777848375230013672055196110589547596391515165387556883328899737999101828816132842700767047739983342280025320770704123293889981333736316855881348807853729519964346126517594271292993932637060789451159971856069414407543432880773004682630437082828594080535322628410556400530928958901547461770262500390658239202445635918663594763784601348349007794542839262056706561956106416708461017369493432864573482605510657678435457841118633449784331834417442585844782406284211051421248341690365421052157880805209140227316738623341383024387383624307298462801695787828474211604302932946452476295673766105006615962605740175884004835232990165928033540184805167803983391250793788840928108554968658622689354972269895449907841852545900929592329083298079328239556432631809832179759019070521631084735422223658801978699787598466642091090391657097445017681817339371388494145392832090973893411616331672528443103302541800435753664272957044596403603899215268295095651029034164495372386560916081344778279021663487884700168931304771911283789767315386613845216785542631221797681253248331666358103430502007633344275346262871009244514290673951456578563863827336409379351369849937645361935232940731628344922049798706762109334939703955934567367592033716605897921230578736965713019790550432104472861278234751826985728021652223542484103329673950580543749123084100294815904392397939025360082534876755483668946050567468279481112323648584269555101136927372204556810450140520813845922828145057651978910017047179143561317024753109000634345631769572840876561674609084703901838576554305699618698825529041252507115891693157928307021853662271259419893785166538442724355342691060152459996770857556201800208118756299826425876615137177510037249193256760767168602919266698708932756546903564665001203044008462541655354157614645305700319680109188477231737688598859628948626475106898815765850048341361795768416045042534728951437748819164963687682345409331339485215956156236798849807733961436676417500965820471637588726551004175565605631047766521562621848990903734699097078420630697582067182588449317853692143582357588978120482592009936201996528432739602027986781052068724844266775096396923166610827376380805071074604232839169987584416724589208180664398656346515125504804177128781282154530338562261490175268797883031841660698043167784311799520177881721837252031362514636497142173774690169587493387309850826831478269755256407607768288676856047038390170651032092922356771401953092194723084133946649746353445330239958685814900589081413588434596665121693917645298754772905369815200770385111609852995019484688068540418014666710014214093129790643475475127578544957678703821462498326923865902530118635180277627782974840296143269692871269668964842508271489113802734570536713286793690607752441213263054002155614604850257865208924135541664539032840319173004306989580953640452539468051269761669202024355129320424540956188211038334670297883352381796926411669608222296099478443031813909874315650053201634468097918645500094067873151564886221589802364516901200396084455804344360321658840909095235453278922623686697863850197399975770869991301849149930739346701613731591486997695012368493783462710178369453370296120232534196941580321598872108830855939551552814367847630397091157488346540624350332204369695874449362379611323856974726759632825507535821046396103337673385389562209890257077506596150068032403422059209305242191596698908820642276439022832361715244511998592709409913397369195135636964772339979356760240250402759475568208938526406823956675161220104650793209391294841394590710507342194205199416827080265591188569159672320498179736619879084009087068062990467758250259945004128878763886569862891240860160812395849325452335508121415722907182288789601827337148820890218034996580969976298279086844729219853448289922491507831771379053816429710647723266335908579063445594637628837015976260752022323928252336469594012514808257159689446675899566880841542827409270307961245232837869028692381764480235388912638264001779255919150342591546293136041529239677351613530209961249715785296481430273310829602321928379369457085362607993819477686746727630245432792801593732729583059607064095161779878837398290763293603735701559799726476279012473960432495133832876095877849396382845825728045801380366628365153581357809846283317778942482899229467064382605499175954735967032296841905524129549045842604461137074353650688515665955862362662886214293309595585907243604771777955609288687527321638473086003262777738311232097369433918851593871906277533176220266776078733462212833371919362064144584935786675759918017501857530267907694870717587402394697652990138415696422783487029756771312587103228508602907225842146477404723618257211364835057102852730695898219848156343560006040079867790178518039270809663282916500669283525862410779320975660276692857057935208145745073108602181117145920087175398016123444840699793689509311899431516279449792323525268650143146241354950990038229711281697080395657841532111460555851434308314064342057699895865197669082100562336379031367755553336327425738762424823142295207057615904967538913634947613052553465009991742868468503751462013645585075652940972320608700181280925021843828821617412308727218849651818477607485152882101641828452906520673610829365417449710959662454192385550279338660818859742109727357898061106204800293606762653031822672152857243383481453676423738409869256870306784998514296742042386808958485503866188669135163441816431482158284100240843211013378231062586697587596482340707184691739726095034506884206241248675994357236809684180529936768276306497486037144523464663426508976024763372685154426867717574056408544346156695195825716338375511068783300200139527646539212904770235971159831058560457571812834809695009521192646632974080136250390208652007619770664740113808116746846514825515515871296380392545274091849595646108832556670452991585997503337043489735795143940894779226109155086091501239728537315600700778286339565798318345110936179136892456844326146110431723077330128453647374261791338381949941214065686121116496432526139750751488007715634219043046323959710032229458666972064664111284958658406016992636693403972163575979500122901737595661865592166862584327358124500730620107657322700822245530346530022039710248021905479615105223900025573778208116109519826194722370353760640306466427345046992719046028941483361507437909101515974575312547389073230795348492287729700018851015777834400577303737217328187076480922391584102075360059056755499758042946625119039232091666590686160256966986066793652622539360083837770783219421604225703660116919390470819078540458781260450562223944809316259040875133491074205517153341302500232832353879743989582284270582323660531551802679113962379763795157727984579250757188010897360974137876731673055732952100479075973901663359350621070494859387063991728077089300301324503479881666328231284459444785350903186311094381931715355669396110928078220705221140033472692085552188487689094348686022262886337006785510727717833569249132481024514369240554597664666561383670341213274700551668135843136673934080134485239385266838060402035154752968360268258571958753621006337236831828600513084930454532455340891619592670706729327052485067157064789959318276132073673573127970291985462756318990096388230185237660068365581478943660612751664734932716121649150361810607367109519200872707260986610624974256036664278016296418716643373829181547101316310731151581072007579836397737587369888912535704075001469155205634929233583418783186203296931636789641091880595540548162041575935211489636902688258976877840687270496379933365707120601341480583479700598460623750811255134812555208659867562924578800239548240952910542647303679168220945268837579134491877077089870274342353938686123981915870913066686655285970829559355006177763113240275317465088136272762302746290674011261289393745175316500073720648411569375317685093660580169054457548275068683060176750814445633837353940404321426988494444944027366616606908734183640465329580000508325783062966963302069150097712144040101809186944067622395984551976892296775392672294098438021643390158431080140757087830612918453336063932649388664064826296637177597094431482440785155519036371455721413119188002967621754625513714004724647674339479512409011826866463149312009441907360647176271197255029960909966085126307946155269826848399240436250957816389539939513056649381490455082767169481515930808712717287261817596642404751747445752350468712302127694465358482615655867819747289250321838325165803095483675675689862868465061042788499231417659242004632424242764877895061817733429187438255451072254387410038784275968347051103908994631014951535224361745839109618269412866762043152708902845135140512537393462692555891570553082876228688066778304268943732074269773647169652758864480010304005936147428798505846363934966728234670488982806173362648056534246424854328852764832819016686921275383328342446359717588909053789578647803361934637708046961988538546645701067783384838296978668105040290522412323786218712422725243008874709741064589721176687343733336283593028575241896087031048110308222491448567556970370668397294325150260575102267919268622468491378767702632595702642203632725483220783115549123996398247258655285544587128117395141667039252083115294817280771425638876796134420003242154697635469752017847040254593107875023831176885213837710645491950731550728361387483014443173502018869241710990449341600601759574169697361380992198876545068131323862918007054528317661171288981976640575794261117151853456625244834693309310168219021873616195034891227682819398652524885141566005527053527454524266973118548400095672135159223218410505503171056472739651508552806739555038288733244026407833143304604081751984419645688799345383308872416371025224389248536444056229038216584156981465004460339292204290718148528683000170138837249931811812472172731344209492831208933687861908636488363030913700628674447473145407475720756462821913303532628206440285862968061909576298969029022560392047218732339366392809282042269788040778031019903383436554970481962463025874723757844841917685028258008929973122471196712475887973256626737844208590122543139071961277464038349291861699200318354445145131831768834052664236251642573507693105224760385033286197451427323776448867738876833155093066579509185107047155349927577638958207781476467995094444133820632668252509390576597915144621008542142142444642283604873802912015156321554530487530047585298985615894198603817898658346591856852525315974135593094280829080241167485022802882197465782078106359054691419572062566732875138693004360645339672446459432146089526211395262214302231629584693126710400437493547038479299389049451478746011805361624016840330702949709701447512478366041848902706066178237538684319596731708265711509105421821409568284658062031243435450722582947935943592993091915858384330086290611776414597655661414644234320991158190734401704430095313836177964454508289093740128675352295033004935301793383796625896242581638576240456316664237736009963980895060635609352470589578969038230086755135633908061949099999693637491916007124341233193501649715701708214031464723212404917644869980519203674398775756326111105108606986308823103481054924011341330516067127883754761993896110911092444162214147209602855407095328721468443061508712615527105627886918448794966338466507178592295428652368385479500003777171566014589487890218498366245246895620805296675745313044636582342431684964116343930821924960713712825638312119740284565201573326628139389260895504326909768972607067864527851617843485546999444284611881149216655708127871626963836005203005395815259432457037246234143558525494530831897577315471644727225051344971700996223851289219761443377956660346123840053541936812166590790381643948495193772055490844700274750624295680423265969391223677125103287581669079380049805274973761391253841078829929592395058157710522720045840869790248889625388020847978652056388312853552430659302630356141003211877758909771196104248907662414642886295291583272234746210469216055906451830285012590440154191068925184095428537521329483715948365503139323856411770901500052825157180083858581380875412866073240817643904165206157876401368409449649107765023736577164895614493184821795192536356331605943855528184613792747263131231724899443729247575494125147306739822893753365845984995227110109281946506096309245320879010756720396215819486375360235465086140835826213849445153314334049552105903847987724098035909197009539193892419783468848364764670505541405940624516243841517872478880393645231514178951577252442545211768222302859822841694668200464850301626254765044964495122939204431411424528341037575157041818413765015179884102439687981296616675499043970613727697864938602120877641251667836561121055199311173863257136322571568004409032233196394804723000544038977322106849071768381901529701911162193032212228436839046411930816739435895556900699763485947008011072325248902584205084546179684684634716066858819465319950529729779630116035557857960509889243346122200589647896621837800811927793760591781341444364227457758902032212605536930603602761069763135521579323547826172878731019053973341272358675620798919851781900201504498621795650789183551277901358938582405041985643319097804519124347934511469799333072389339664939427951086213403372085347319560727722053097888933254756580423831329606771931593486754015118738672907756674456325343032712789966922042654413512937139384185792741578323829905607093336300793646008603850594066660497963696192890153771654642889134872001334231676558738697868234115525411240365627292311223845141457324341995298880247619475778919964533033517292267742775211261603742435714427975626814696230220280130206857394481296959252481650522450644839760989663354564571867517959002183493474420774954223965367894288668967699022819583505200057141726344648827260186833445691185035939010138542775357750270532996692486175311013013431899481017513516711638149394818951260461968014743400607135313387397112326862021840599433695993150827146835846012026576501023525588303275452543737721733265879385533516915469288292675884047473230290060438818165280374811583544988197853054865305526052196772268428808857548470244909851294544526254688594471543357305588966635954747530557442212983143973931196513780920011030334450977005721376789242166805835294284550875013530565371115272164984107752888891995248696067166206789989930720689336154585826960917084087142813135045770325115167706429444051568907179827912825283513841151459893195693463175359365828246036142660223280708929584815289797189268338313250206807529134688823612599648366252293782234217315902115977439502036968345973202041807892614871838265536908089244452347912511164398661161411573235036139087143703543726948562210370847635904750653171106460346967827847908822161100835035766205648164778822846907347523704721735623938618683553697672581834902104265845249953995697852374529816203292440343524169369680155170982164258296544879689396152308011352562880208090248240356232710938863979283952360653430849057817420217012033425611539975286246415504843999236770766926958003074872727079232960500059408796370639407788027304924973025972589983138819190506704360579375965921018710098114104860166747010328502390956883637570356865042048253229755543774458105954294352930497614310860572954393486563100801862356124505439568446109765279388139582853479417269978296307238251123294207936590003678273673751005729173028617142383235223860904925406347079938746152324711958484854933291057654563620692672544581229611147088059889350435332302248191228551245612875516630378632478861091261114874137832860179972890502902409544586492159076629263579427285320348817372438373392408252307008113309108194999593026355967693259117265977865532993069262757293904200556464032335283209299140952022450970690523727341030301324431090366414470969919091958509596560798166013760960381115331174304091117444027498445774413400311550996694969880614015937554089701118242042540624951934741919926333341986851097462274117119526379656429468844944611553977230433477679035262163606754584616371664824247135264479446861842281752682314058381482762060042486118956737004220411606681495163250636200056239491449969611333973732408520011747856970947744595312053270299618490129949127277268208733528019809439283177080897285979116349188461874147630164458374431686663122675101068948447966519376585879369001560673085441136750634826018162665138531353473680335659429641612506079175890716611839743531912333900335090197257591747592463774040480576823954152622848031234089856096845315529117696700557977202879730831425839902277894574894471477013723925910847106915582536803485041510315258729791253000920260631609160604318183971506086539388294883033073113413623359276086949049098179427664012468983957390065589332617786190125680347116669933308049280819397166549972509789853150264307017944121444883983439094106623573970306994076048092804265544831384426375367915783529263967114522265876060534053940561643116324345521352410738257222765876661922780891577812334676781322383786600255186219344040493339320087020884220441446070108143252862691174455219840214862173567377380325453121732247808523989445340837577393281862424307668255445080890234147013527201319940920469155861791887186866567226752959990565277327629133279474942375806588693509590518587840457583320006797679014329578146742939148658882759702257960577827430434926734911840064701599084297228382716354112044969176371094842182211305217211898622703442792359627326002311361541778690422508897412807417013259797364578810012064276903223427113203297776577675749801903146215697551688086469398589636000926757543492787874328499416969481247158707422655101949402042097149232808298145905820674662854655732428834721116450703560711416416433788934678218370006473025894675856848623510069455368656169481792679710684816731912099256697792294470762925049319801533883108208683949092071212666391285327596362440359645401029240366109824218290044710879428061745964981303131081329712786157224516207341297588467434673059631517605726160406751363846781865188094585475269957937892057764354864907253288380352544947803968849526952727903050161678686900833440286809482523966813778668368013143888611513632726885515289231023232945189535702638890292192628158359560565739032267342109537747944255453605121103259341833596200836390692304630346519128366681624739418620701554636897504613702333849166076071911691459285193230336714284787603122535643251196551220975638176703855841365299292745019967461744175532902126161693088680469114760216718434968380331377130874773028246289151172368458340267127266451735059315367847497717500750042553730193062708439143715682174684532228299968948661813813996367584670820635235327902132379811578331167548457600158569279185055168970042178506076956832886888962335581527448954165736643135557701072099103648011516514859865447292791332171033391233036363093961198172955484818212327879987577123372724191528518549640755629510314659538716997959907429077581302800176137690199586006793119623911237774094624418850164090972786166213523302877354146743175351317165921813079399793640495933373549666876353160336809533794036013579483331131501351018531864747975203677703761216510863250187046090276068926643829912432396928088975203945962758138085883896383234043863556968399078808555317339380295108049940042173393249312298130177813395459346437438657359320699683333506191610603613515148831726845505034576134945319763655535668281590664498503707748014204502797140910975141060833044622628734038894895169629470410665747630917848706781798925995133174096992449221334686858611649670885254090218120132655876296188164636251459100236753048562220254381633749401340279801502175350681491985032166262960038423500832622340528027126618408059486071599041456052018209578408941502029429055399874406890356830124482523117962666703280479197798190426624481003794464991311531587139523072651796658438421276897266624828609159377267879442846625006259682999331959071038774964641632823147914937018824501104069389209299169184204916164137391749329856790996973378875731309750152596284956733013618653352572583485528452865150781460079590000867626023511386358898401617005826776694800923567212564521562768294062990554799444988449392834784499854848055805031681598427927155540113843581685681121256629663727283896524636262493488915377046241532784520304022470790938947940755907192433764583296548916556165555030022839255930723221014601222122637737469423085097686799098612051841983562824201551039471416931662268808766414335546727125157022890698741171777502544961373141256921831609993218625200986893226833206256038017591696968180332126427819013925597848233128305906040990578119156376400680009376042632353582395478940943104956118285221270487718910662655175995626004633149286842340117769374431310515618112189835910497885727624857837302229874565247955132937458514415928527743632500022860260073257503424466558792361426079378583113081673571363583783700958753161088062169714160021306729150821837722692622681135939863247680183382961736242099297656967402280796145017784337111783218467192752512269686797610266407751796024999779786275896718767743426439727666315966407105068731580680731316535596247758800773706369649005416356771313909650180044684991267425987358464193073832512987293923168899772241167205633510972407172565257168866260530907668196214542969773312832548531211488013135032942681172636614005288294970391868350894502313045066230397131993718111310511769210191687339345571928958640912058335285429804523407111512254403061679958740899088148136494366379010627420138710704580723192834181604937084019826368524570500407741049109116886003454659844145744834440803621365662855081685879488437112508843614435477592138885484570693623587019487692365024208562192646071155753764309717000868102018312379928823450500874388908296397549251030370734046374922019555015086608235042738275620753708699107555266666246212805016274919217606710313324526627160722330952975886213349788270259934935612277329888973093951412168870787443966382753465122780354369265844126285456749744315815598050298898807455855392972678739932766153264510937657064610969920899650427878454376403462156062298891887153519512691884581187328029710306502818978753080089787493844655112509243018284026644356865355742420551885056015906939885638602351213878787231042486534520200818822400439232553376442352066039997469524057606508812988829617608824610519516291726801239248335188948061057181766952992799789647764361842006099120126564121221010538593346012819279513150526341656167700957051604905955937106391044264438175048527435379319530818023187933270802307666314588614832761264350640823861260053249574728301069317587022436110015389888268405437555190329072678975628043217211640376496110477669914250679900629804343339695823457340473960714328761772308911183707074633438752114427756831230577820325485142239330621510602707351342258176554899553456042582638438639529592363619818930149947042135485720082433850311857561562285558858374262016484906089318548889159895660674028278979956286780570366861451413031891746407197765810994773260258281995012679094252417018343707958385016778150302404378456970698209585371148143392593335877174986137054527714674790381356545011887550604910410421579085584532606792700947143800210906590782015208471572497883309477776034119363618935406911495730625612783670967305955352865618828459348425424064588781452002251729936869791433469667388943502448333690755660462420163993602999073339319668392895576961201094903515225171799631413921202872002032540432482904178208514882854611014928329161355243873019378048760915554242741615648891427296442786320192940515527628698593626333511326172231614533061897117825793454948414672902410262700780616839967541899941142632099100396134059878046283448836695081481562777184315403306305587738577705136552720323907141301540116118393265790350468779261653677330366506951725614389795081526975348506774100965402888648667014220065318119987565187934480502487145166436921313519673754774031122809617338735905964543719112097731789954096727286645875796694169867252620366018890703544902903599699222032059429888708335434622936598050926668118166459666792738541853182772947287766638468510365636228037889252158517366944063467594872833506613753649211144805464663468866487611907053566382687315541046761386871981634907099261203187922922917454236132049900030330991766053860369558442122993488391824950257314158480397334686811146009759805795493794544451073604476364778491718687674764581184270909686571255483965449533449599701745380886692419208130221811746585560752176794272823501375199826528209199196487734030432679246272250721283645719542570126916636975703738388820303032005263428007504212249585801195145394128368187872558385678428610433960044349382398636527248089951876332079528660086438932007736323209576070100147134277045082952888984685636814535815265503329224509256875985975897965497180337413192807225235753469926531518896593861731099663374326236787789451279460035179045888629531145267240112411533062479317076897283476052080404255780143357285849596225422176206922923728701347358350923964526948636792315681469157122481858423076818756578870865933700481452263250507148187343386446458156975907011374930953180427737836276829863158301688815754676021030058439653788466616747117631447920534387498843831143584164704744345244358171513666726075190990862570017013710994088339924191431006720712827847803579281290176259099509569892033557345720977417920955772399583691731813725935678402730912670876666979617117008616362697573282089064363285695881982170412553624057189742479902286478771532838643771517834706282959969949468227208715979173418789732965776498393267641069037435513734762908561941856853442618972070517174462265347582820940607209083012464816347304695890566834990923984638182180787159244762554868123762643032608838972975230372057156998439889929694045002073511243169759915153476048824675036980913781781523675641150510220496861759842221389434786762381761858169993362756821930165538298442472824258081331149327014162012246930798875385261543667762287827220489376497640023967430244644883783517813839784598915631254353502818532325655155803690330142499849943294755899582323220125629803442561832178691449521278956035966398077413310189940877503536133025179013879178728192850207261104815776693029381723987703364914707560269537542829467670473587334162933217755409971424500748472041218330707481617840198654940621336448891150712417159733634192353107742423465904250737738109319585250993855437144413421309635314592593225751690388766681197750463268338189893314270986256230654223567632594427208517204236811478248200437805112947417591682818999012620012361257316663958007495144592285977016429023713435700761807895566238780965321525475902969462344042095047295359345511416522424848182477604148223273674726558184385332572869698230850704326912999320147908411231663037071514936962060421443095682206008040993515628889884806453724179840987024863016744251155857428855939746661470825880874756471870703955052242766623869560164233296292529997947948594861359667635540348382468298320449429078277023649428607897212899576849397377643129859373087883617796555039041311858514314835819474196959009810618549837893550648508585017689961177201573831021951582332304716011846108828320639153430228494980152193834296974328475710063876136336091140559448791485731168170843736086495350700381660444153025205976510446946974931157095758975414527356564032068676276409497734996285104263545843176094131486975006289788651965223036070961676329334392759612527230301420960077841020845796864274097036792847014551379506135213027737503937192996285122582263652165648917750502292651852803687538880775110251361886863609664572097096212024659283152623341621359788354705642174046045979992013912623001506857954974800804120890706478338444714786167143793639314914230398277322389917594436804546743009831220957075789070355119063906645537850355607207567724069957910515082194556625543812730029784383947981875415728604886291338166836077267525313505751664677324436982389451969601740487544080028311019649748125594836060501969620195897434980550731047267837053832384437854289759139154051729432147032072962577711135337337050231225306038151896695878421726513506478665777050013815372632617323691768624288632745341245051310514439013790101628859465592529792521767188032742644786055715340453236425288072586759385162893546198050446980497494562472354770493257300080276535501541947659374690449107872521997291069567290387347803783677937709673383318900209422760732129152529117848353304841869478143298649017745527236383948636311183710272720071099016668029540576360679100362540938512249601497589042241989614490387977119299651645851955853812144278762831405018906309977559933863761926719690112501034991856713732335343146526588020151380160233546315381114786173539413253619526360178317216622006213880731012461149153134752273893754034151221727111742446064743746015094119724486377505031704251914748333049223115275912674565230219140238926953095763698227497744979013689067355367318264010440011633939953176805722571969147288502156296577728589993445734271656753223940372142289286643438082985469009952240989173156495782336051621735178002990767876512555848617358869778303850759890786883435123924415551484866876431458817014327599261032899228928799809864704508557989257050829225807623046753302076298287074044462778485111162838038746035671337970284075877578018924984281026065866415727030596893413041860724391106904542365362206433279086263275375936928164188289311645885737138479340717588105736614251849074137895853371871936763042303647466620481406670516250139936500550782206920768418527087633613930109353132466494694654744226983821159267397624868879600807956660151664246235398006942107284244997758108372128780693308490952867186623908805475781071582906835438736113493639799467124734796157464516113483260341483943879596854080254412982226096451255937981781768076797987158697388554547192181672265231519936792298250175350892720692841713573783528217391502873434224048655382135925361690365703124802926642334068844991430371585985587804507093506770493409300065371882368434299168982434755826240868746704259088475439138861636720324383933243127951845790497136049318173307031772122876491183188705118170458113184629292516453333254293624439024863697637543893078480315567453982756213459541530473855722579165812183253283559617438379079024273710060806502365662873929087675899220471490748528950279735362348470706786622520145253495489273432012804645291884767116314694431688735670172120696735346217877579331551893328005901492041587931935188623950830917748527040712591266138809821309403533691590694906230683977015570044834853093186361916511244484252883331984599128451599190636255727726704895365852849560094446051043379718797798976648250248757600709950062703796377996132451183728170761525442734927131220069780551634965964045521060227283468091664837622509678757747475106533782112530146247132762155622819774346335885625831148725071830522900056227517889817661927371287219772083041124759642584975665124284250704104274879736367343014972738852900625693915147740096006479860740584392377135569305984157363690619067058375196168451975182676127058399690744591954169382282657323931523303107849016589704197674571103665810276142458965383855990929800218853852380987425493408088560595030678693772565373199583250594923589649375354832287193755764388516770903552802607794152330947780469512260023790938363034422154961290469630712150908563394853348863738323197264574944232698375864601242918985447412359707761445975359317878577941997630791304296830274226412025209523660828426131860817553321575570609546651376873167406333902476453837167087545007235976100652518109767387935947541511433177455855876869986150248545255748882189273366878707762458989833644852768700117109678103411083762503390054757304216120689965386762997216208085350272164336755682948795651077183740055530607711556290655529415277134744500480501176046252601715495464066086121294472628069986818444375849729021999863493720793550735906302806304702745345498151710518955093745328079401927067996155786335532706934854715670979663396130592305492638421085234328206207825318592146216015421078270315638832822484841885108257460868634111752202659087880823632446001356422461320346979329206223341312662851144299545744471712920294530740365068335426792790019822301093264003442381878016701585233248194184543904193842169547956781408111809671343518232962750933297419245618917488821828840440629704098474011013599976070079807759528574908362314478530139683575213478381346614902564093173175789286161933005270062914838891541377060849201313492525222742324807164740703409743002544530566029901979061956695659151934447631105985462552786829695746730709270135313803741533286774453338455780568289476225756519402935778404856164239318745572606528350645841417943442129595808653191220560499318273498741354588430662829325848449641767059695087821821075415093478812567460651897503075787965424511730373784520800135828582028293324995413415109191400076328926123540948826390667687362214289163203548310173606162355422658589346565495103981932789202921705529679337823528344084669791379546225301420770972799622924852893577635102922844207272007960959904710512878297117762932958416805911677921325938923832997093742810150609168145111764060354685897808840855580946780712223428373890993343479534487143185715507557203366203717493741247569131832106325048239951898430365265089714466235817793871793187317288536982306368643079069114193906228651112623112647786850932248915634860488881579498011921816663978340937686627881677101646100209270871857797724163585650222228695517613196094462820195778987099595709431331081955304921333174311927736435573336456025235092298659115203351785341416569549485467676946684140457038598666025811483011242741048957448537120220364744165785449810505924080996778102103624037630403685342706043248483868751518973849371255139917597373568792923238179513679751029994352264671650528318951778295771436428520989842767068943412631036806485725239856390549473155658966292383837320438093510349557397115782993607403304880814170780771013873122153568082142688303497881517319270232860969886551540720617970704758955679569638994369479569862265692543831290212053687219643860062480390079468506748049164527265744408065992275468612700504713722117926118479777381463490446363152478862810135649755149051104975857986929874660408498360483115427057477030721372138815848041212084743234899438715766216868029950566179223215858132606120361798943223172400755096286177287090435286843841970242707630327475063278228268768211648524479039769400824380702003782826571245217731156907963273048921745739567018825967804812399861496369727905204059079026612197453622477837717451729423367301224001173358481700111337338542498760653203521440449554041851117919392392853765083781875902956077135673212200326877911134876988791093187627857033581735362185471358120401514767014837517855635793386788043306530666793183358078737011726906995634951494128517699116163037554429304989374295888197361778602221997119866474407593885113604062370110962533250983184776808591634450958456022159247785209881047445307624129868050316050823262528516442122291231187368298568263160365700498234245717069144486265920097259416856835322526877929331104830213368633548927684344511818643041082381655894224079779419593414169063277982852534924054557651819148314810869602168711899928468864112769880015616025642481917026621440264988402871477467413662119103734505310587734711418533596784806624231969347374967093377477347889568549737790199788102605279581951530687361876693697934879868635309920168812453121712872501729952922155276345764636401588381013159140011290694640940716184340801543652779229964473700523854817215304039002881528330065976256409724625535084120096324127044644966433278907206919430398643642942700624936520641714979635935270093697012172093958517691401188849546092397154931559124100450805895877809864337930355023423374561319962548407100543326283116654688244589982334974137597608047591121132483777862932819359538829690103463967282329073976767131594992710615855550186040622487035883094001406823338881992517488334104377073237504657852283546186401976095989743198628755991703677814832477156469434624321864510739345724088034984831943631588966998808666933318677626873517012271768233112073018564954125021316987734301977251168505170029432463846199035605038377461240944400707953244453125830904375355416581903284650131354046079306339250825576172966910899455730318735678275126639210061193089949998107211448925033141877563247542452905051098225208951897802767317800501191958298788938674541148062222380257462281979335062942080196619782971954508713238095254654660173167716479097480175998235219309302714487689886633666657978465225101667645465159525089014814497270580328837516782217569555766315117992227397591033647312849793739388867256796941749812985480598727553305856424550682713960294705150491811943030599717587466673231525349680659263030896137752474412443675792439925286591390681415923543182676292842441325936137150115599832056118148222088434700775667583401241746283036717530365134513494293561901746164938556503152878040564299054105528570210489343416422763167819770504620538790870576071674337586025433109100338561415310114267948935280489000947928623314747580458571369616681755929708854839677430692868832600255716123339548836290535582832039378627203565808084638007893969673531809568936398125042848066310066949538901812027814411614333493829693048420240879639152872031040201730838594489190253828818960625539650593829150900707144970016873572955199481563183817862918422622764719115870981841847663553563946738955695800122028966285013598982436278708112216384404716820127169180872054796267323907179591648845640634285315951888396196078934044213073235209814090254089500027924001432303544091335248215254463910379388932776244170561948918749591314345123510085312411992085106082168254012955703063060076080261861518489884170822861371374071427293139852803052060321034507909268975057026450976714715404661740943742130094310377780970842485043470654988381821028158044166190310303946136314769418989683044183434167280401400566551510600718254029855863164053586537802621056306226071495163573376560052442623084093934926274378923865504324406931922610030179463033619271695928501751257114326944989426626009163072514621947240993049126045711025320591916667948041137553630932038222091600595865036077279709717795502817561930260112614500464523499274288157426009544840547120982691656528912073262717634780667314234573072434746546565872223733304166894354602274279190709999947575555186676002911978686341136585763071597565365448124388592555033677854867738370672220087223392052564298686522657407366144679923479737994926433250135029810020107814864743446534535822171184601236570268820588959474563309176816356165660855396134158490594919292224049371151547023309664510871973675009130021085769506958918592075192324366488768031797026729223204005118782418225568936946422371478419565820616527892981836860152550815517422248048352290668478890455457522842556456222402128646297869536651605211661550208168597889080824377494154801473640988782466234171957668496127400946688037529772691154539309662065515274834398113649721282841801582222099187732462769540351380562965345990214916220975611466940143080192281421725350280114797830106655573736379193213265235711508288811730751391399032842768062804893366765193227042710398748324649979515300228341208116349434709126223267292166393010333389880015216410726959586066351397936352408437374360962566744061626043747688542433528243661671862742305189804408763558638537738314816049475481861327094985905661056012925288857859646095890510379951543516500631305896025557458632504658254419232172322111237778369114883942622870717807198881610881209341739156254344348477857427313416244025828559362790378697296213687468345148393132784851595956342920136050423215091499581920535999967642864825550783711034569388177525709489681534593788059468904297064140305121993994040169285949918026124241372341897658059778404639126033011891921549167141648058703748128603886767859339114496687139965215705099703446189973372425807135670176136703246518799368678554648955871273463513700356608457523789794265080945756546672940152855853702606626460625324355871987603145913991176890039529462335231400764843640212842145771784928503615310057704560285974577598815819137742999264530221597295057628971031112673073125421007500404677725238691668900407155121846120287269627635683048906830985099378307955024869170680376431748451229611342969220428967308196914060436622811162071002737126439959621474340316313749866443330048441157956139531442539937971720575983174483161220808981316952031897226692519345711162541202169751370063537349376513905426885281129598669754527433478702879151032422223866194366809465891724877194045216858726637927011354098313275618024033441156055805882978761465052287211616919490948619703726516746383239265519317163796443383963490468701467838461010430115978856785042138125803551526933272312942099311263333909091668693716879739195042517154387431379686843197465413455653671075706293695313259695692141743084305174338350593645226725565544409378720914819405182957684858356620680472255680767815187728779707016910238545891777888731444945247525656767382013421420268495531595602932972991307012822074723181853234407932867056056604983862642144525432424151657270439553102716312719936143320747548563053142060390019860490856851593339390411028772885291234656300247657168904479943925212811693802075792378665848223226371689658515318844213204727154886292062166554222638849151643662146628210675930568771551905886505299352659537732424730686465724938368077602810089675944399728274176718995056245556606552414615733772675357936160491024869664931559896303019978758427756569386176218314673073155931512089395495372635535633673878471119659292345637646309115226338621214169679142883660369179235577218003519729974717936065250811013752010648443828190803090066281511150292625194664946630802932485661632942302129700970108120393070188375174776031838813377667116131998160268334869173845932474000098951894366238005182915286547305307726447365308462126394851440728151913083036048500992010810858567718491020109638981743884455895297642820236927386024262257081796132190410015065883946092953252623087833525812131468770857660143174192898271388057379665970358844516665861527569243059946985274063445878900803480776723781926948834110313279523983552471996595444634964109668973285161243535109556084614349383476405865462166016953350761248161245438222647461775152080534452025194570187256384764353851602580113183036181311098222092171142125735896196469553349056031339209092966218511640880750549352162864295104975585373321163646534415855988517035692432596079051779536449706367616697142766788399725705200028856746340796973567350738958366987579936759372530555815116970740242845444345888889863020652824255560832309837806372016645954106351838539952104636816272302298172294003626742495054772173306340717152994136492161902416875980292260053212464912162281936732448232445999455597128812846907492745911344275054201349704986171003660398913490860756153653099369909723943394990538129515604559046920949009435952341295828459350642948141045124332811174013704749115897509065148345422696145524000644667073053633947779762917322603113736976254857190004244659530926423319696356808578960640675315335902728680173339478555221609517314381270295358347143034481939620725685402711974056868743346130918293229711253422254125670323640678510685827156132648057088181722150716018682413044740745934737356129376275051773278254491477229806016813433207892947234845288210453482821880418776834744095665623206942686419646217211415513602739276066616361534668532197583916769163993896953007329945792492477454833564258862759951297030268046938630294155302924974405749604885979429647326739463322812687539311113293533371350988274080593658608675763180537103991296420687731806163056599111996538887690529186459662210460955444984315511207323660017160444144922989594708656375761396347234477608674920836203223653114201353882972604854343068329458244802031373261535482130413087353309467251304834269961031416455945240352051693351428696929197133858768546348637284370566078901585843087050217175915668036802797643089752807552160526261825623319176360821879672597740581117080617481083684795225147218416107351032617810855617598807853762646593511643283986787044067355919455211560956145330206068731976223873460977627543017589403951617365481816093995059554020967699634583834079536143249776311081621107703372425846080809311775069216463067044657915576365261642639897822179817619833785053076019573143683774844508902785314756045467818903580329127140904372391831386621405434068507007726014714432942513648634403404288585085208769894062321106352984318294369284803758240854708447830243419676500027751052775480041637361774220801181660405777823558729837736357583323200955992598293145420821702056639812303867646860128739427745103350380085099961995906419646886765901229605708697034745695041425102322457859317604735764280961669625822043760721085800308666974556525052312612022597410830443150711970301246777117111902411302754307543485401638263036135039057872526907771985673539687961859567136115046368107094803978289744621677089623471786879148113748257482654911473624833414292526084760243698126487406421826095133431845528988542992729702362919010408529415017844215433111792219262555674282169378835760585095625802186698899559187448519383133364976113243604946437872597174175411211774993829989558240277921859831671956685657650712709992183250166981375835364420619447117626105195849844885527969146466790994668901317176410734893444717947990173472907204198232628369876762019876592504831412838800072908476760516176320065277132928338550162972614005651910192360452226565111495946554486907263442402996315043774239353154869403377688357060851626909855173604017305059225394116421045705573526291460806364173665025548507994108670839540271617026233164212433079469537218910597021153588254275677695387524606052670463116446529026110564052607575316014170234439250149693082630968735038917345189360322895134249648073019314161455490091606074696332226211020471907533829637003150596324389103698167188573824618979605747522907071880663687432817867583258150444120666127065229484164138551497267485717544350655540995291933666039845143751125387937737282968252709659828319545397303674362951927157443576644646897602407387736035452154842912539299934406256954563523412055336112625991139281885201789567720757804744157302656888357226442210050116754135081031766382251839639565146784671181096481863280518471569707576812863525625956150562654535591762199896604409371619971921453826924864982082495108649657021203493219737207430507968749375361270253198681291064284798796145330449314318966235038879258797814844039931666014141140233941841217411887971350405938567919628951390016131354787611083175900172387048541579658664449829974960674450510254630498973925981091867040986216677401362676640435080275581332582175088751094874625624444000677226323751858938536197991987497893450609823004700096080365967403381960924873320047795059579663631463957082357183248874612411072222335221764322888239223317193988877013741068698935977360807503240677855984696317067527962280686639243759250522576630834199133407948929154891185234861366110558418834507884660147167304044653563422102099697708075363894740595028327727715718095926772679524714741353940598149024707302868421532485728473843064255533904222187037525568205585044861463351337139995920765167060087107918412354715749640977711092756041973679458997348730236664105782476520563772974229823164037419818645619701659383652860990728897302161647741307872728814959620296038955024765692386583705349599920452921011891207233673692875744785748194676911466785161646607083717226410742189721730454445329332733174624769129861857652524336721344321462581246723553325951798121649652070371663110196363465582505482452335893957232477069058200117566696449848276105475579453645364651309963660924870131263665003266852044299341231847639649353072316915482269719740234403669726494308637140156176274799277601449088607836645256126600859012564979091250407335852637492149516747693977811167181258596979605884726107616136472585821310913385501729416611304308978952652703269241470099459469378278524942734846437208496603752860744410424993575642354212929456666655234084063910505594242783513098026353435794044214420854272913179033925501736550724603056984265157868453987370071631948682695632036300147520218048400930103765839187599343499379297076008852363362410279901045464830559513857807638417312908712172960446208396557099856426396993530472612054918884255880556170933620611331853165660494760246716074398451581542488110768077140851946503132841376150184948790801532344567089481176530576526981856578383936201680755067969240675252504675447272661032432192765389503758324757755433593544105026397007894360353693714446360815233433963032863428810830017915702368182838551087338563660993494270198606290304699999974026402562025220365413020741322084039535091300936730540003259799942797786484390521164237904117161047419389916563919340511586336773239354751424016513015055939195866499994748208109672245206037491077354873890566194282881460994988085729313363747206566569536741051024264933156753817846343981788223893070614251465009527633235352970864682152864759151203000002929696932713354338268987843909979914822016955705688135759373085855200712394887800360578198328178127546933377269600582533691971461649158316230030898674894076114839992116712277028803225625739709837802864660067451567728768293375560139343779931370665714727119588435243215092112620142945135007459300217166915667322945134021001464206772427058389577249535755090902951289655331795778894026304454903810255027454754276204724401109476656306601673223034994468374747892432613888894590508028710960136129682019423480767106234231842830116996313503136657508469101988755182533500805299489488698107678967679799965132377328006057401232048299399695092439926322351701746679856652337769898247562849329307609692010024030460806219190583981242253831227832317589729165522615698746980209438190994556835079851288260699094617162133175617294806534756832542584381396428732666586754876708648847932044783970954275544182494043496840524319505444524026649680745378642087058441176990533891551712580444987483131732522991057113985747524391211176723227602863766667594436087967036524188486394458240591016321530604231502037338848693059097915303777212133576982117432689432976186980992458877845126259618078805250586395597003439212497298197541402149849413894186090434944473574545499757584247852081632569704385631590308389105278438152177969364573277988197288471353793928556632423633020934940250555297702214694829091353387524075549036517136124947803874688559177653578759429866674962575005004727274664243818632720386254491854656631843833802647367700857760648169352667365205585934269369425994287056324976323798342716575206572180937770499181067160038457012654434258501661781863800213440605459942739159965991700036917158761646593832156789699807935713210034821454558752672805785372739650313013533308478541027583938408505343506602412089013600002669240451711582099604300210258195744628663926247060681951021045260203416155538334956471983504496281283461403161954816479910139403575714812587106009977249134031929599861885586032259977476846063319435674914743915188563367482938225130648656915740880248073216067087695209595019021246016523337199645476466968220106429916215149754244760080081412703760264868508876266752863505641741618607846735206423330560489441672594692586190519674511405967917157700516272933782333475464886970405609092228562521611789446539149750761710010297087787343656088474380512790757180360681113933343596746058731850396410036730478859352415410132071669469968589040594642883534689691600162014942885095473836990029507331662887472707597215047558586525084618948729447656789884465725921301491077809435497967216425430178537215469055058437714559680465979762786226620640236045978222914983838665491235834029815341627371436398619408083913942180663725385146175014080023379828868273829077477658573347375086818901964324513374211860026767071040573908469767446122357463823755966873500207680963479863331791004894564093156281426470390247562448983349626384865494765793000802048061009343637590278954483985679548209845726125753821522679964749653687524884649935360897647446043134920137054516731957080582424995167756099434066578179185777101578592871659434442091914224325762154934610570072403877709797737974321216666236519230514698210095205321388363563898032337455988739193314321954148642924960314600991516162471743952935541485101765889375703467507619294083250502095201636718411279772168957020434541921924086168882862818821216862333057209515122971872135205379229644492921049538087483958507779594071098904434784400382733158361240965492656798594185642331103857591471562574710181314683710140003490534891555086349176193449986541351090041160697289128781672047279641062971933141915698231854928020730000174743138064703470318860862696844656630226355240807790203506196399733972589680962165768909268168798597650046534284098362524022957722672697493180928178025379951480130627643841150827091330561512002760666448091309787955626605141901272769881675883879998434691718892943565311131029193610525268616628656358727008294549607552834615398201036057408210635873492395319010675413331436479214360563404991038551524628841012985329838069846780326921925506373350079534958064306488167224647831398574322147597863871419845107688086630656672977230449863926500894200570573541865890699364247074622169434607043338724391827341141401831863857329038505483758722751232617642509259317948185846449829667053962492682049408311814947063038844310413776685996770264889808211053641539013128396946681146471735982666112001736307082444285262219059310637558193169585476778664783386744788792183057442538839831205252135193225956999896283140500366096133825378749131919769279754209436949704258738343571435297033187944677687991011901394276568558259982848736045298771785388736905421834507711294637011985255043720232195005802161455356761287946605464799163051217739790659199214066162929211484329037333011150944911499796002763087228720231684916663167088917917332255622215634036066442871399136387790983559650509781134399601386009280341062112279674431995291783123009542598165332087835850204784609091113473542087169824300371196087256932112383117759170281014083708894158907801823093667365179355833982987969891259912852534910066473927794903197240437579410382594155252820237075268615202532906768021767626371144659337017802718184261560328346111367113570589797582723803904794997018602545751603221689137280675891858766454020429034865281281201411482786109996484056233134793255040221461167720510740875147506418555568733719011297669696378051498534887015072008947568467563339737202052683637439544732134828547792835568045501025011338242027416440572028804952299796346548494112057200929599351544875195536273328057949787228035600297891464034583732495087505794047461969715899923824158518238076323350380947850909748449557976612504554195707325860240084349124761013944379561234762561063096624516894736774588705115966790800481489963054672118995969253448285661463589495734684948982031573838522520902637728869781867944669660017757713595667080300494024035534896764866663384260605794937469192855681415323196278994709865705217298243101961184625606076683230833924428025608355447566849221728787725549047873032692139431351740061660407765101536373073387394409099867258575705178660368873454055544482158057126238345681527841332346669484343133828071640822444159383066128509340035480205634603682673399029824275815895058170086413628837256475741866890756415646208115642170325756808509632373107875946985648359180931620737839670304054037669748681237806654671368919332995058173992187509830222162367269553693458979555264307039194673998186275816078694540722904153399044344534061237334026196757549280171486557799328619211953646625222883142752501842020577708309863056183733410151845620342045130214219316777215402884129552570794607317449228261648314938665217556763681012655861331765434281313401807804907209536689793551848666376798750609433060602851273140818871509222381242505959547235593556847709516747929048703678964942012363948512469493127421400676016133014644137686721206084646522893861164928645644544348917318573009540973310145247880688427556067829746696627085200811356067693349378162832165652630956830064581140115848700167117072392517721569812578968724429486078749389561146416439885431249913962444413530807896126130877785960637471995998537433436138401757020545544183894102218259180463437840031337149866500204545960037713471840121497563928038312581933514735731772289060901525071250171944971792721856797406762127590937168834463977718366864856381858158144595399581066075970523898902675163052954462524370857934261075422306372323787828582154881715612702509868848231418674080181696061832668148410526278381580646829442619320728320090358925230544374211426168991181454269218607868784937905437915014656412471619407545541701365214569656128820103058887093729357791441610179339685072464926941650806055445412264920764369104744832702471089272647957693115193429890441350887410373055444076881254455205027974649458396564092103928550370324334460605023908240280687273603618897238115684336927545374293958315570210748826907777154801681543141192577680095577872315411089614156127715128520908003811948978956431224085451210213881648932814698824988798649920640215733076518699997521884055045576628197247329299298875128540181931060804860058551161501994875734046335841460450645265629812221819148102135115118063198373790326739619575023959361874684118667654204936851149146330941745947620108684541256363954894696709910769537813068857327716232654799008321870464634962734083426978445442828809188470491780329689611288400478377929224977901956176732406337665226336468622917526148146567264130242824060346666136952720183560191827099313184493402727428583133790595734844376983915012297943920460630468116230654821283223631260618499937828000291710361341747236874524739805053874228905278564260202181895418534609839811420758033830417842339950226116719699483797988965502556746160664209954260695395093545635484493818743217081379363588522017960032255178677888776280628729625586894481878189804077099068779931048590406001180191065480636853473947411674559056791942693215927967198837720834080018777114383003479692000443695930564967092323036276754755867679053636831033826121514333639571994167196205563031262650957937796507954655089109993383499634307193098341303411820821744998085051452433136914123720689121000563490534156030021794578049990041738858259173156832615555310066638864157729675293678023086622277342845137030720999762674180271158854248131149615451812991068168953396345967560433348764962204057236477036400668302557065144293470298785721009370321770535813595574462016651066130037038339973486183870085125967685441932198985990264852352182761319695007699829494896575955754007298796206115904495659527143539154272054170168412527675148036626200954151648652413339394116572499944526549117869359328959375787707908411049738991844010810907772354044768249862907250514665672524479150724662169303032829317756793191637799597128509408257828551317983773433230221367479335714782865432100584419880208897031523920440217386219022131109147210589826372479027834410680243505074373731734135260355501853585047944728144076391709246726032567119758105399352127572130857519532581748494833429708261060960606925778743660044423652555023447284108593730870797632493835525655020163470851528694644428874250059871920822703265790866621592211879683144778445418109244618048557985148355025484735209067315033018822633283793944831336311186187294889997221676906622569765761126249208796101294358739194217426738010686426293471380322145311365844726741298360749199906195129193130112473841568781394097474079367941241175274502319745773248047872579080850742725611436784588451291661464576116582333927173057323565627533197908625440328049361403390524625569364564397748531232139432615674025071108214132581332477389896999975417219716838484326195395912076796839106013041678832021616766017866203494085260496248888867399245772334784038566853362186692674270924987748914154171856396797635735307938443386330437810162324327359594249517380145740009060277914835189500794122369765469610199221100212636051910318775633545451148909708602182988982252675485357503142852907026875782453368975652301156163231429885906072109920720316985613634709009374235283117018208787043801393460114350233441316000425845003048186597564696844377154938115597215093306260279335274825737243691901543058681544089651708785915892645428641200250881277363356021994870125860981150824900057974995938765968942834420766823758373069902037028610161287005629058610754271417071169094562544262976319065376616618660355637631947299317360042137426932004419231377102084756184982831136803484033524391046591521836283356026323154662743753681373221262041581432069906489959473762029357305618340610095058315010613255682336025562422386656461465485022203441293038091845739598994832424466569636652732239990916987616771009593992842981775652581845326529032902590876941631214713998230496334033397141442686546599748988062476414634197610656890173869856707538920152074331299071857998432210798784924718298787211457027741281368264333581299121503285396043023785804675221479649924582019493474520966701346222282358346805352983334392829452412432111078957583794855806797343933549109388985182114874874737204715677087632444319615130323071623993662757264639885620500817637722864207011424256928186287451830325253304427009396623726240842375527216170273344715056687859267702320941720484587072511459573836124636113628015014600568245483823799490150148029409554720655306356851260945123776409439907855615657583303876455448928851201180606649676668845530814215246170882524980152781772793804796385711834527454279639776543690128320389717579354600646242579219525950829372725237469780320507508035683692861705879198880021953591928978014726514973029477467039667694634111512363919776948909210749048449205649655525892372516483236884187900536953523679529417787528155648358445519040606449733267451570308295229923873615199363246681554408230574876201572492216240230121219441826250045982441447643530748736768360534376163460511396032194944730998021475322203016055909390469147325063095381181039205116462299926617313161348480522191545217405616774974200053796773225288961158627044794082799483387523938360489794503551604399170861254543276574557505014684179261735514513272041698690763915827333072862036643261729534300775857196526728978617695831721651535751138962326836091597316037993654887533768712184030098097885510898380571648200325265320848465428732197061513819182957395057436799938324930489605826844528049220652846830336919304782533376510553456352622939315947897206234852734789363736222142423880052460441940622568014747423507669875120066106470630515318111130983441573670595396548108509724941421204814003185040687346050190013424865579246627434268798074714001445864513958320791638021780809794378090706644752267265567075229851076799152834181735480974545382173996084737740255517733477356991680195589228275717026963029352337069833206716717861236264210663192042716178602606928287880813964302651257433059795723211786280907769243014187597419717257594081721620131114322009759218364402574471921676595359470933066867960894900134390843458583908094092822048773069005949533209177382260818768749762241416399280339841244128276563977593129905029751033349038367005934207055709989615133299892728185060407738404757978067849609242916006483092678770448974237744883966687001639460600422623626440226777854558635241589345293119351783440996837070903890258264940496615675436792744406523360564875031010802919017165649882249539461637904420401986611816584412596071306912473745656527353007066983112086581470065591920368806784280509591595641201619269893721780783798631351082603669106358094243084773852115123973694380016820468100628934889725651788383963811577465003576806254217752496372784719865770812051256204533584568656725681736643635470813573888859213594666487164612744246106755759684906482356588083311743724177902149519306341332803402996081351209697386784571426569937657293852647438132354119025774080763703105746240863646297041209702684422523372889038302287305733549340080535491727344375568600738787462756925085484978917489679066160894161175585032140783598338654707386985069868862214820284656819799090286800488548866685804089064753884342831471193259209306865256720147251168632595755806646661171445927626321570766811163401495339135202261516426602300892271421966940039418439188205227867659702749296934872941925562660915642730245766753462383690581463548524540017002723972817982261094964686977564021122184236690698188047378149659523464090057058922140565997619660690074737031621706346942501695479132628768901094540417641904068543631558757745119848051204103265439598584786911858906740517028508939326502706014310831908607711187516940997761397477069026627422309333339596057726300947406858586934388016148862183226110917914837336102292930568271855713558415317828770811546633632017656873200169588626802187326521077107111542242813070078462729717157777020607840873072394281456473111125798970164577588120099537062324157503379500056591585528022339545532310150191335319504334196194695571487614392368163020321669444757208524227558624123974422138352597679040211942144191228825420421314897987588769686118602703497689847495912246473180400190122069212561812186089789730894317060006392526430964477006530124325669552321425224637057290343860723882170034008798834052046147622813651236396395937741768337855751631169869529791866121014306536726517366297064315316519212029068572240622660535774791519895005967760249416397166418480625725443531664291530433291926150349808964717833595718710350092762816735354285144089617373960565914277618289504251259458796808568999139410620757440948462161096377950241640220593573417846922674571933219519400857434411181749498963690846219461486283580232304854746073306771183450227021716515214704619936514268631202181509308693801950097399633556147411701113961326268314775188087303827893445915149975083703751280485047391248335740238766047704041159366264029940495802115837183140812170175892856788630066257095566747778733351262045945649516847823668466299408763185840319716148361548571103572909998737206538268254789911636297864502012783195651828363976207293384536447641825378583558504452608178502941876338503333312767969356721110722319308145557217010428284258936027356485380082402312465281178983809242737527895824775087814124234480061855057066476386965559148007028712179640555738371093449816992593685421971824378428446843578474042456327863039508716236371941968601988958156293094796054797590630184698260843226769093953454103419506652801449017300113805351795019551125355226613443455218237169465886384322321807247900465290664438446953609124201057751193549642520549428195531314830226073186813162009732274912401606120927195596003156865550703864603021317192300799917572168646516174046482647245866647837910480398559071513053143384734229027197757970263959136234185988952614604350986837388530543516839131639523414513540966667057901976283182724789621527113497676916467389674086386281315821667422263285630116795890602204620671985014230787934415060786368843790031653991994614714397500278164555884190499904693722031623523047233887648672146296473954341577452512731578687750950636132462625220623901212468737483243958002324567366389509802555529752012377093592192100364602825791460383197631849979724068139119456530523157147498493958216819092414443894637086499916376008525881811077729658398093544160557338478189814846770999832205801270722970610655382955421021354768526714754100822961106714871705051138498227578201368895236691348670935788278643353048742639116981346286534188987866176941788122950195101343768372269290304327108818780044565856321686842671019551238971700864135125608110031543542819999611769401481970798970952851392537800633314128903380492110999347114150475696153650579891240140587985683830723655876121358677833311950532568856063057724236928572112498617667958848659925380743400963806865228671980437700717009005232354211860724597774416028625032969359987394633621548855060252800670237582037848033184880358718005472358073686118403232619193011100418461153013825992601526783743999850454015246589716025278999937813803521405530183450032077634752912035375610614129377683300831466795565459802685522221820277762599557222110211155016421445777680793384179347890680564738910263341481970055519087706490073278021672181227023627934654760481680597241851258374903086401079851950085676049330422699968892887838134045472213183542695255774705399487231941931091860536583188589520936046151599251187645840682170209352345079986624314542627252522320876135564759112730303303759943298396083267350411916234228752577268266931410164617831962388821548354728995522179582162893863975421101239733333043637563440827901891341194331131586760455136811846771727042487086701958713286513283232690024801376319097809395127279324351985665318115831191571888796456256766702817407704666396247919089958763951479011601369588075481739529188285557996659285105051460124669012978372242555866001324484750470604605460497200316581071474376044835925700773253552633433237886236477010255488959808172373755683719613448984142120616793823475578484804612667613414261428762782333796569769504872481591347899247963595957772007157700439857214627690922712868531353757772422598290683130927508391662159855321543221139060803420483122419754067024917641428821349963175666884859817709330767411139233262076665820666398449516234021772944259835183773185623985364051484565533774698430528958576984785497537494412165650932207255765751336897304504988644296827113302344805110113904424987779343167814535181750795707491041131435275070522334903191149673704754933520688699257577843339840235549059914048174182307957257751331346624464270653154737460494084379443768093450981283494271591331290177319095529182476835440099111264127348091307471206604466939993773601184387220678502512135734698973370898452502185524867173493456607596971034470297934669415766813144240545334319420147469586094634290899589979919601854789791913259865480950327042541828927720361161866584944338816811799073604884287134660390774286599781267687715356344658263654643468172676628675503209432730797858409164007075519187662340484309180154809783182011959999004080637796658988134475258940683798594146571625873855062116734480758240523344174419140510684810786032285275270646237693097369842769801954967569286592206970179343350118097118676779385979441004104448535224946945516862046225609376797346707727702748955458012606056377923053400415023256761198585089093716675879992397137579253000866022318700494889546639123805749332384866162641661597572820612403285891132878445089942183612843244198060302445707242338010554903810192637919999303351276184637214288677533486220169264777449033889068685962308222519959974311244503312607347524879582726707950252902458642011270200694622274753413502257331141777883765305237792932963783760317453725051831245096244741721695798367455409875568623331534693125718348376082313829249597286002346373300503891932772973008222984321474704333197699986945827861287304296651698075292412552457164552908932645750523788836597357734002433930871515260302951705247717430339938210872939394010289507757526392460421640125242066012754338343061980167100729246984956165204556329215674426760920135734093906794760519368686490096473398795756130734578524424293903630938931618128425795926271968905363969859263630647197195657248387930685480683524450711896611497891995003825780758967087493088839584264194146304702777208351908657254109464533612915676034098402306202781288422103570877315085823245204908217305790585999470691805008790134438289392322217208940986153849523758244817375711018342372486153455357898363487244948569679670984593670481888674244101620758264280703558010551304704337864680097183925757234643023303260596833222539432245034595572751179416483863409939123026051148180636572861259674967460642347648208085319900444814855230148939310779222305643388599533208065382129558578595799705043279123660476704565579012521636043605454249083662033247451697062133290554696053050918019969238429796633993621454590866464762829326340978122664827201911406649168782452800588673354417486449005729169864785693255091291157160421878300120932050816173301905403965655118150696991316229143760762175959869427256568680158892586441920387050768222379125593663812376795338354048075331104442431139475955949136534644186093194380864044311045988839711968474822226046968750503505373343497006218792755321608014008855499913855276570187650690490563175461707718251163013663105994299381300628428477114975297076030005200643625620266014693398474510086160673664133701060421174537449618634992532806653597793112211467661762095288326402935424372513824448045581950959144083905874114483926432232464482806273029267723284752938348946199940178148608828677376985726404549835633574162092028818447060986340278999776800926665261223523797048698256488711176058241757558558363349530832178051214921149909637623472577345109183776994280607616854587975036269631698976664142423346516887678521485498732484782126873802769698365022356731998438709965093096318075411480491155194805553519498026933639277258245334499033279924315359280652614845096098328110159151843123116425316502993956438193922217136709971618205470968228701629238110127213509747771762551190367631265584949451432649898132111218136087792485051357458393978453781495897436824415654393315775834087869860924725410093903601018783329032299810061402976112483741336166733764225090464023352893386230417711810696542711957686346420109473652957463887310692502214444444019239052040984853966774029724794170225292551956609843536895921360233633121976442786265897925967292860437089427857600351445196804517633482494577461836734221720542214303803729979235143280876170107809757636247278796023183608391354121347943936851889841410334310201114536446081699928764467707198821380672530550704546701684297635056077234467840939789331297899119594611369519750054018281901931051351660093168374792686179829234788451283207528518427566217630864799631036834412995505521657585662712248659783726255806502513930541912021799473210428131782546717130924097910204117773823198726574903216892985094192398716837463023626894550016931922753313567655960466885701235526091441781340192281680551629917072022436990483803933607193598102298796649057437815968362155118443451034605015305027554921727414640026015745104882310231833167383443949558632290311258298715746040910542142028341386468867695715610982946820790086587022504068239491650204525450995792588891972241150235991986001915751883163479014250103294656976438258624958972683811678553462010360102590185235586706400716910543897763671168909363172597824503841873714654238454029665427371101412343996504150260956778749884508463678109440141200687610243958500498442920017934854368787475832613852991340677309137141086394047498295474062449743055088716018731169104079378508271835538254023027830909081263492800577655317340570914197010151238346718949441156084119088969553250446556486526703556199369681171854688966450878045182069480994852504759174989675077337642398047503983482406562277665203017459734745490607292763109810272040728434947167423015546196380577312032195468468509705082498882958440323016053420310933862523947941552179993215352330085595053773108714805043524286353063169682608539391570660292137502539775262623120887529102749814950641449081983582197530195217253338359963697428366506436931294226353896527584620555116668600186299187218843728207463257336784379658478041113534600462003605512740638118381859198584188169924533741334473556858041449439572953005493526352952349837601091703631288112233397909750744536814559114947749534389538424541330707413175774287030717835522238271196109839367189395703641877581537183016210139557578205865794225899637194916677760425638764269821748319939024986590589844218848460260061976883455340084622704522492286503949005739822263613960554760955847603262564961980431267414920042165216892141774227474854643740951102164666771067769855794143945578063920034551313933451807089972674787353145123983488760709346667422716228668307024315256912482248259092894708523483833647760131342729653605001609385425690942605807060676358122420053390908190092170505226800521231482839567431198361898212365571018233177191935650459764137428033706897215682288224753281679079814781304490011966676637133711437219332635016455813980194663231736161067624558903317852133083595547116787928292849972214648668666910112826021872290316876907068955376231621706195493249491632919495761614063085012442681454868163487085317554739902927662359310483033394290648364307553709083318882601133244851495195615508485069806170345625190706403398696494911604316796290992411118450174947010610747366879240814607691076974662955246868000323601724635862421404018013553185371469704924393212047134525384722628649933270941261705945048187718253971551514372525325573947665880008083100172251218957369398762050769230732906278325529277953404868782093931064118862389854214922391277441073372177027196628349405348371360156821089357616103748030050556518614900794678966713526450870805792987876561326750770241063215954648282939198065175051920268386590008877324457643844145431578273757141847679820852321468336896261997298430403440960187315054293313766202315349861060509150349292894012722165309849895931428262840546408566067037421586162234514931081320375675093303336038184384891866379502895150347652222332709633932544639541194387868429348979597336689492375215632246492549837238315770887652379720244823918092289054068258507418659700337793957683545530554458670926873218866284867202286404315530814662698005194039919312608652512568100181615990444457717894220136243143012896931975694562504914856052567583141009911730914258841385681189335449049496071061553121107564924922526808715905316067589272104334593591743573713270112501066801837197155289959650802066808493883938686660903882318855438831585500869632926380662785583654958842088941463228897527424413798986557799747085472357830363668860633368211861477663700582238236428891021943875747825523200964360411116042529949296840416119791204106131741354530772478066119826049525045298209836512373352414637687499504658681199023091174658601387251209582634532499873360860980000487956803719215646074472369840678187020490553833480727995447869878460858888188870852124854411173792735362723252195300597501574396729537111013053721029086207331666487416402026709338490570684885040344898435360662348673330778398150209313557092402347387527034461149701897902447320279926514071778979476215697348621928744403123224417612239539879449023788392415718933997433666006704200693124746683639928501934472297370927025571810297836392526379116193157211867477379689642828855511592077447131430311975643760688519073013946633142111901069163728845695662679558187571978066547168146909152892479885608979395366667770512539828764645459765132973549719333206250695211454663310721646867803117635044323482929729494646084571250626588906961266653686178888299620904099573272715479790655237105670734416158844756801538105761295000741003477271653845225564757249045077792887616573475015957377035440921974815341162224413248093157738280776458598098043301016430132846894924441554876862522479085885133673274948582953445406024285138863138107514711425478869895550415567515640978613743505058756652518673132545241450337540649028541634688105792133171002140384672763508745322802387190062993947691677360005703591633713519463758821257533249380085360965782223750122837321568577124791148450333672083694908567243908106639908100992777938348797249779099235051049701672984166842298056660640125829176001099710141112493595612372141157826601216819724632525565831165719142535553222104008584867441276552603646483489267979862494734962470392887024479252479696448342670191281499158173837544581551876903983526750278343907373469845885010719153513632106082035780784550960431263730562114407216771680206491882746695986599565871247579195315095508116208734511312704240926313402327493842752765549570017230244024162294257578153634778640020216601598612016512475735331377244640468117403628799359043079438538864795248059762173813635997674184144550784927077130865076950830121450025500637825876567346534200155841990804521237037199054261614772716525054844940086499959823134438450138159449503971101319935219738937253794684226269798661523131609952678643878022089171665991872810029266265656791240307225728545330745929759360908849404018938829958394294942948818501278791557187295048275719647056575776197123697153870089694438910172445352985633644645957784408592434765039191898995537473677897559233371171299252707035775937599463253175192280590145984319801590923059065460699487519509084736926526645815420185281849259821700669110667406482688298734436188983814174914642564877487680981673625623146042323546534063208541330359141200441226895867543574917021026529304090277611959765675816044834652163848589963549601198434077576142661487543095616393645312250989536777115532302039281917629741055280013622729383858287276277331342793503803748179261779839413217591157234824555393660165825665530139839034374273010775284774122656009172278232570427062213193220762580378711333473511905516383417280199360696161516181068074421159010152735639550068312384191285521996637531288878752902520882592627949664677691974084513863442587491955995646789988646914725117116233147123966556027029604950828791714146754981364190945180436473716555665563604185133481175171752943194387516507320506205495296643410222982222770347997091325993069991119042569086849166525495527569642625078852389121250523855126199665758188737209063784005230046425705582886121524243771935534697020123687944875440429178134253774356891306428449298576426071573066021445325514836090413452652099577564472064038682030883732552003830732344520216891129696833806009847052817148301179569928559072069286883650293954214484116486187637745245036528532259556024750314423271808199827641515720681761435669952558043584637799448946467186937860628697123250008993131961278509379873840122732765891677719196238992999434456006217341456252093218798393567048032229990786070221538135778399237586702269615889886967913024445076001422911883034476178954491076426274410978432072958885322145054212925574158037741058718676557080674941343478808163320132559426428129815439642067795698413630601316427082831747203452237107012987261579891505933039000818576848277143738880910095701376551924602262405149282188997714976648388462300927336355858516437194035887464724320184411464409617042497737161647824130990614294735408979302449507336915141359422462363193619512366076949522219442378357353351307915346776155240919694505557273572082766504864736469867268194738687265091819497811677779016428424082412170083876418120618797336909671341902687918294716736375920318911505795409339156788985318223391275885940939803116001642699331699138811432221555583985215811012281227589557466715249695453610388261143437290667844562015635455146975275426796289274906322334928080395206351652969676039303026803457552874301374285169029927092927607012817550753703679936145591299340344481460961011225923120246950643536999408914200648115628719364850982736943787698228259364106791670013322016320334941223834668707340274442792105511348665161541606308148138767702360651897204627531715956188486617496481375737226104272217458366502631570995012411515939530436556263110585203162322697767287066018212774254996517111004544758787775087493749281507984990537574915779615240879517146171151074315191815368845469425325894036371933132595703914334720792319435166770494911942243159579122225558610949153623374476697669947103004115284985399944215024799491360240397119003320016873960972612575311012630378091755524100767832063500579307160292053528006791441668753449104833827564894040601894613117450845062585187754830189723734319344724259333996059695132376602432680330223528790213573550201385817504932131489866125960420493868191276797623519772183624781418121833524650125003709666084810316253865811755126236944096345265435702350662047794905917938994038010387353752377891468117891096504305883206197660805457810630226516625542758257932782889331163343283707153430901580212371551358055335725503408556702571386137792240774338433639946298384971908209449877518762664668606274214600034694713536014410843634490955365685114298616732271552388634000312552745866237825653750227555011781804402814445619891693495814807014354479190984540767675537746104494037381225611411295116176112857561809121814564365820732266556907074581033895972533089845401948850910612521367693647051383088134580039354948021936214902354849013046729881176581747122443921559635730479360887243057596495151634893872152476214537157225185476220713686431621087566676979176085704469704664211191691846572182307499009324765691240555654456063760780231083017229863792230111036475179906763977197574432170709905082865369648559005910806587113966818367317092397510267360262421550633313892961091913422561569861207028636649092786889089485615274742191625185902602539705887353543242446139447144688408627565049526043840060215610583382956116952310691444087733674865662029847286649370522969155244462488218749730752701776271242320299499747399267513431397543701083586490939456090938779506682579527912304082957070788971641427101170143814608161338536924307420065183643998423619118213099072542200422085999063979037421432352747765681946597201761719926747498655025831632804377029463456453029120325305582749889984605658944553709498505180401830108961862071283771603106297919085260210724587924543832386053483165950988815263386465276381528309120467803082164106616588670005359027502199796667061281560529606058636742645800371746666977423028795041649252292801917741429530866096846276007615987583366121293168180996601323005659219836563409365977345339915158644694622718105430223533379931697866700700892884741915227174319148363874769934370978839325514861780681565846448827735319029501053312878138039200502674425304665546518872262054249084141956591977998153214165756481846692545078974938416263876843642618898977685730180229194327476401946797044738840082500035437608909139016695215240329677925773820587401145942790116763763065013961267254400647247995135364645263845548316350002352933219635515619772179658981353040722927490802536005635001771484303285363940684745356617777986423676883428076100892204974538029748336765589131549424906003194806296211929214464504094839382444695066495204683203280246607849857307561544230648943810299403381217949826140673636279803657340199898580990438202258934685276637246239559959833878299931383216666039245893945667850450665004066000029819321958814775901983915956348463213147023199784921921785254604365898844563477614502759378943466275504629504275584292096814373888790513504156774865533526894861467362394336252303124218045820635105834827607936217710117583022709076723115565518208780522716852215447853037485572630091816214754690502341327142750478659764976830332538045401183565855981228081902343726253453066052753206889455958876811696963738250744376506680849469958729842959052957014454328511342397870583011316568496121757281143512680721397653077180159360850452734205617545247887334778912685578345950928698884564071037575278626921964625349011575410684413895009672915753208125673048624140718197453474455593467532280925080916731987730677055740908615293244532525524611430000542071272105017585973320642792950830706722258023922512683155551636985110694893528336976199026103251209002891644843516879547236895160117863292347098398573593627760613779757696319851603591761980428548154229103369295839520885921050595347019271427761044938588332956431756663299456741675638439536071969979131887643302960683315406879897179660285264015685111559620506674869115436142790577444138259740550392374426931768213602679308230265710202786681083868791733798498091745247542858630390465685188351213444947274928053511425200215125287004213550042868361709578166896840123001975013037019489436290173412509578943077267098143534483517315493191481710560628229763881693019784920312570042189780898205385725196651414748207886558865229647539590783154712123877790312189792884859666399787999623231318464757148477159050802109669649322270313689791603767784113947558735284178074073081214567654093305124855862524084420025845246352661428070013164229638749919897624385210017076538665659242023168583982262988977983536869454072214325883804863244362533312753723873222732202148930693136129629804207866855381359261195427117093369498854010095237037822102234658346403983753422934043911627421765463224316179875609419331813440129361002563636736949941253641645389732764002709401561460049908285852404046292519837107807358293710980196207256136586221655210708460300944210094094415541266080569430885715242571088489297072233308054501927192054430279638494629398194366766890859195980430269308353224860190724603041913637986119866341739702450670014708682878743524035677761283661253327219435374828921560019821677417313449923001631174647895058516434606713865135340612144803638750862767690082970662528876181510790235626959780765185209952415722993177622436192059924904520946397026784335598128711648271169822817994020877026728053880331663846212653782829886845284095117191115399755404290952170641835473315504763493417400386811150400321977514516445304325183530569184924323668376235850736611081667640930683205530966359955511729830469607488768178277829251555691970904835424765693004726212972427310008858815881797991235394177108045129360783193020314095210927371054054781692767209885402170024293923445420498942570772989275411566367709780398247945446923461747315257753767601718611418823643700973765032279521876690792809676384298904565754835066039219722368912381951934876504628892290591211041818272062951251395793753789160007006221643665539931764077731560529862079649450779344396023158828321225304829124357844964630090162181517278429454273584065819988418049288021771561522912534573777008206011000053704827006489010420602761825305495043765300364327121830703940128155505971566922647283222458209505615428195942765567644590428204417936787448898215208315081528132862711652047472447037167076761542256167917738026912253264702595778489921444897519108756292324042651645549233321740434690688529964203200357363112630325496096819014089972439488594180131093151592391451208313920243929084109283136912826758914701008174703966714215760313343025823438369484391201160113848325179609291440736641530744885581731318647649744676521184738529121570795787419775027952898211678730198466315664533216565187881717022900497636143792427116849396055150600226307228114550719022962621447117679685144456800140416321512456163091387931534364312359244245314583669181723549845488937201747985578473803957917100107696094117354657693600446047898623909447386550896399819866589959823130543379088445928878997277232934268771949200490517103029242675946839079662406099048050510524733513413499870127720561808353856883205798665842554127606561542828652208125315151239561876527702351918455093970228715918526929024210188343773930548322852345111594164575501221550170935807752999333005222680205022644503369104028079896071625794394134545362892817272065523322886127675743790537483938491510886108431643525115187150216526617651357583789214212103770284799484637090022836287270849999514368752063171568915367483073863309057666699323642965821628908826413938857463244729325208001267994150079680304569077562394990645664154572876951104456611548609669762234189269848110568808271080759024702557361242702880029030336401204414419992138323923738021455806052838762309111348308319833893905122019251607126761183181197590869325301292752071855082927803094839734488964341597606407477976564297931670055080505096789809062534803098339958099790110239015006407398901601714832602818560593264928553389521245817396949477680473277779800741353200101795787464914732827322023761929534595109510745416242638893473510155611060824509259815012460929155135977953966806200633208850588850455451958525244570207587030457756607913110944257648551199439609316765036212615476407347425136650870508965721081855097406110837572961058648842621740480419293507582794657675118373564604948609310239241274955865853869322476499017996923141386904420918414092902757185673548855695447900645941016728515970735590993122446201348769289532113951067916195447973195498963774980036228017030322764112159508264210545682202327937033730934617612794306459778415513845786833282964188940201623299803902475875975881640786873702136835429366341658112806001151695655599828782233698476712778291294296350404203612571093737822748562025416266934415972584281282482841380717879329809815488868539158140255951477601422313718848828280365587287358425360319945248677570142923297706880534183612563187878331348590705158853477043188571258300158886902513245765451172535697523207842060679192483127799331717527278808792255282636881542046098958945626127007073395706072229919903353781270020987054024933029103254552888568944908516664223010790848511713497439444869291138738777557880125602921732018150204350317387943495337974820316947905462973026423921786069780472685122226889252280045741418132433664664306912377526167701817721889892107698881553263856100127491634211720028724484375121043492773402211699007139602917040443045689356533528350811304032350915965085511532928512099556113332293946379515902855115307659131404171864129865537018052406596609164836474161013660875023042671667946035790990298063646167798608807096443596273929665650599751349627130723917640464119334654423775469928184284931854793920481516452832750203939701067987031365234419451777799331094034170475784684808389970805332994148308723646939993735173070384925743968755900768577402960665706336685864460714551925237034188906739484008127588461175013071418197011268737935518927615430618606261225050671440193708111465297539572042551218784050506614486748616863437804071507944712961210032674636174352305891715385193677458994537377257537619970927944075516183506476587293583704641662135725201061722443487010952555451729806859195737732399122754235383448260625633692751761899115292419224127839904935647198256626705339140987315812434350895053209579958878442556204758521577837396255725752620748677507292472845847867374385063033981007725735157693550462714863604360060544266661098963542888433351582058675422838100465630902679200475909953788252851599518050329190813453942883359332540270617091846937378831066813590543824551366273527489238478192984611570638295190298218370682756510226950938758406456190467879811096062524190952572135470806716993342473555535314097373303556478621868223930888513164934007763986210077679768248368317679789472071281512430801017906356201061642935502023009563985517217706058757196032733166781996483112656785708292311319482796111924395286323257010546071901813232844480476867899427151593400539047700029606233135657491999789209659540478320217253086400715531949120655635504270629304376304952772869173687437459351596645195245844551406820203602795829946074780759585752990022062965928241886485265590522978077544060080277111230682860096391255715620449223169965895280121073056308378630283881017757440427433090737010017749023456722419301615787262372222857557670558374624382125313517995998029014486000435127874906373205625420818047784623866222107131325814787269531811435809984092180690373436528253878389780214949509937887217405497902175759314408013510598325450907866899425671355415941050037499896782366510139095476652859004107445169382959033275060908007032473418137174644085600273932742127743865275307750863935681322314385291045898118266560935932480699280780276145057097563459785503852844610658435266870694513949624360599676577117786487567765456227186482732761329718073784057323837282155299062375537688969037494455988559410532223165418271585940001127245067292599599139069423004281944259470696757450975072125270100209128628753673098428591056252330142593957373717507835188093624415045962193591971568837130882982565463489158172220376123847622528759017303076914779681990941006905633450889000885680347981720946338826836773939335562963044458989165179557636724781445794726141787516943825609675298368136895950024235884234878629270135305521551626928936429952839571114917223109566975971175623551903316546510125434060519658353679041515595455720572245748171766957295266785794927693379806476813555397724133249411781545743770218027402989073632653213833190705563284851208512790883772754037148737492890965576054317525844707623293655632813960809100633387097959637756525158962119455156769489511867665492586879642483250804145042128931164697944820433283676944517235282737819402075280494681647445433899981902327232516381206970417402706806525135752582498661506130951846162982532461227453032285024387661553257205829472498634780056378165357674261674048063677245475326210201627012151589463611221874988018031726923708760286157916013661264593644828374696940804154434686214918486542442383156594003459771715510198328098170360152861936051173763518630334307605016393785683369525898539788481204144063667380181715668919532298517257359475008972509835484582836195351438215874493063110426817852259962608593101436718906148785919694450336203315708110736182296465910479470130940547928863239145383747107409130792124896013417108524847943006759776515295275691172152818674706498267755324041715538490807969401803712241278398566515204850704858948851670055968197412776862862370508931242527431213494164843024118948675128528117176976986408169184417259557807021490214087724292931003207341292428866933431571297975942325917472737466893010373622843321409359194740030855023156544212052053962885002478514645440404059212569361998347404294380131366309090273738100699699507710608468684268244274164303188074324273954165164254076409395578327624963174639269872029612979813297406368613334036363207685726719046418982632379256554288421194065142753536788892524651997711344419353155702785189349377814958778758052832671808987962649251907466370364374523130718367069591697602031340149538418186743782231500548462213524139330621764871363799285965969530923031269843774912345027457092498174476038989969791972451344731562195768529358686430118332778446731748700991334577878017979593430028867172508672424624497978238361616632923609214899687580689181855922718109399570788999191201175484370685162233120408629018052566962271364414735212379655314736387457510559669994529208735562362429893733741133306984474873211621542043970393334014095662360236585717542090812063282592788829233685991812510831799440843190391948657626547823066235488855627062206931949305950195791519505480018448976093261831554144780568047131155523206414454709295066897006915315177278010933986003206428778325538940565375665750344986211053913670039342227681790732760011049982577983070150054832633319675474086375811870813331129700287961854083027089915906343925564307743188675382693288436225616902147306076983118044317682346809686985983933817171982147165652025243222995731092664693501562669132360281136003946265774817341803957387110152523139214054365895132927092429141958797865966165429428477632191909021948402872983997136603019996535705101242177886819882402846509749834119393351702498300184114537504213100910086919672895506647700471944133626108833349592586760524507401679854146780093705431619941666566843999676860647731022008351868215568377668164642946146824490879220401412333486853470220445091737581088403472888554898249417179852158098516940390057801403609959119037916097259945961065041758113322020717295164783260585331064150588453325642010622999182351529273665823120532688879789466264329506255448970230435390235349394724577398082035825298386421680359620882051744554883364201290417773745426688614784849826742055554971680388284556924031175202265160046528359123977644754742431548264844447548251016567604252604028850673027535185121302788127174569014030361246854814511355140401165930605805331791604214991508952573419088026319992637749610875894645859082426643392385674894350667194685304598344751449232734313592891379861827566888447708991962324938737222590609779040155620343349344884181101306965516522140933555673424045802140434934935497961315761380481511129462074197542699645233683217055994661731676197505501645479434571397273255317445740341913064257842215833185792907516603978448040045529348107041225291271310854703961416478887860140068974621531313335581597167369057610686927325994915719340848537799235258050593592796355776019554770084849847890864238962021066294116189277131823531255671419767711127994053203937508133047292003736223862712611121966221889579691507570942429289500626303053921603625170703312520793036648087605469797529341899763564944318912178034936167635081288070203893914268045373206661259692652697720111832310148585274304763550546016637983760074409437271165196255709360126794797746260106669082189507109905075053487258190718323722023831452780061504850501884337577565048930148448315722441782603048898916856033223588353683676657325304956081437799733140672715931025346864822082482261959828849906504227029101360702568024311215189152946875564379423465560827360278896734842096747758599191001085637535782886440884204213812464607398267594660215367073444396908673408879086197331676617805132266466162654553232858872565110910457339445608946455511796831984650728587489176235827412875172137933470937223236898335209956918243417663071816129973965987546319681899916097964328891162669496693257305173545471794190520573754235477583429951178957356543487289128054833724625132784313938522537429203275414895561652108203750845790357684110132217298367241949987210305030424560941360250379999277716770717458355583330901932286398680433913503207059987007315551674827793918285246474823236355093610690367884430691855767608283583538695597505604670020084619068974177005756994243275586273299346665314378749687269928449004232545487573110993562694029654932027638114930824663943268997101434716202638158744735483520739472314358973906903703009204152753475010516231253357218520182577746194745891217409349625951962006261115129704041001125349649704658541365819143380556987774609352862315536240290966022985016722260368189711432394527261314498017700192988439304589224327111249899991719978243846524736248194716499243011244570315429726900505873857007138802748369246124199549878087386974469458441810226356499470846998684483176803688738451688768604813382544756835945687283378971069920028227276979553507697975799556453717643594138512020021909996886580696469717006821677925141026575651243663326454292914166592782913704863127756896312789505690618607511865948785813087723301725124281300552430924577196065680513347408899118159871210072507944609280893192440307496662733590490402366605894030974039017995976078804202812353320004262119788871791690967750184319757897511082901088087570518038619118226960907015099308354205811042721753853566071381442823640519675451110512874187206531080476392436065254666003612045864226082781591622669056257777771056266357991811734374449405979591296775067899058778996130762403953715162440557948901774845130966335155081771043623434515678388825559377350281862620253130562106062242405381770210898452794991606035938193111820617824511766273438222409354632781880977839683477514962482881362871804602623764530502996560264817430584638645214794218937367769956173599220471540593712665409880282577347991170374565548291893033679110163230078975646335560523865056313220541077308705913956852589266999546514925150418305640779113716506791016082816419714716851449618437505596753923893790028454655476053259580896208509965622459681284494779522282770034780387243940016548447904079379200415148838033111046622767785841583709599299117766562031598158508437716211225125590703558654866838994486846914834916673586002370232637274078322937478715842674309172429006002751788730135508821187096614954174550681355755572364622785038808945912144640571131099416253636571683265358960682825226781100912160198909013568292002155081203621226314265405361084557127638463286891602408689471204519004184387324627377432577365714355252884611842478796161618471686512577818438823942113274601044520163073789725161102347256447639953874072575067924223363952088580041106135060723817568078914304288833777285441006406131682710370714256186247458028535058755083524445762327610215239277972001384854895155869842261035742197228914536664366029811626315562162357171119117304629641769089913898327722076801538266024881477532458887674809917964902450953742477704423461815588201859656202628940521149317429821159192266564902263308333474430097559202083018001641606757702086037716042971644699051458860826500552109266060780401707622250718098539873865461930011922320907068129386818979956357530168656341746595328987299578943812055781751228709089774081642819436343289412250437676752862264956865193176358644635943774932259972644978122427393000327765957594448883672522045845617203955385298108647382270285004409659917388231104995025191008175628815058452488844129899626420169878142608405240123145743336298223827833569243276661841348878076771448351411928306875179381725679732529462974357600307903255034392164105006664565920879625022172572243249060375556451458436266538134038463291714914989694486235521049037109451469240091598824318452286197330698118150148916933944656263037370047412375602396545168959107302110802106795966863649353461299075852682020952472718895823049672913429178793495955355976779894499017833872917781714862672227309860415012611557884659248494794358905834287920980265000952827309681711434029286350607863742332720521459542428357729161492272552339476811031973581578354623966401131799992700923594863798592841149670609521050385972105885205792192741137938518666387986825087406895745911301802794591469089038981311971695547727948681402863229507413716021034142321867965653591629679475379153639214518457521243005350341578147174140708484577912622099325512985760132079036904350471423852134950909594945861727173688732000461451966522570925811653940675392802862474550778632644841677004854904542825392910681673285815326255418434126936303798582168995354684900591691053060829799811206024513653576894871747725459922957679174993621682039954821263089454033062373804769736908544833493389179973040286267851672844430979046254069729024986375127853089076814883793637505827261161313298494349096389201555088371744800574328797724570109641317793016689761624262708469978907000526384575282934023761788201083426487036796547254408834759546745590201186936548088812257004965881188350266380095146076270609113101567259430307451909260141886083990767699769513272780263133656097492560562364686646933596169384792250095634669015590592123650271373984049397382650731915252740972566926827171591989147642954799875176262286942318076146958414368210978413817142150113877142749899673995739457407786862250514039643861017591582674441531765345367974576006347598034850490235848330981530820699785717294133016750255028341615217927436246700554178161619526577656669019212539667473219630275231180156528474733083357525525093912275615325856323269907873098712717930633608306376283001974113365708659260201559714773760049789562593835107190378042303840643289834004627423578675027610277709740813314707534592328933004123555274482438333485821461914788780369763075888087120274834667298995512759936989483185411069295517087777995115283969867732920250247499124650015139649840568309243060178375313287896807266735165484292551749955523314364165963717542066554724448164378199833187903057632543745201403993968406759951808835534991562426703571526821469747354207590812344946317384459989629748252573979298645543054105690443768252803055882603392955004695122192597499481149238695297960554367464109473357084829802322547652041429287526989535899713162848288949895801934629006056191434666175772531109629256258621460190016466098894357537563042942268350589000166817611930690928775790409420772896552162309801363900820123190368772189524192419854820222545968495908918754414321695225972994473226639127553409876896706868279538228007262348939590879040201212925187795959331437592954372822140717717177311821035562416752533593080311563188415970269778348063976340324669122016443219642987643944952440338465065238056597668357635566741683466358043038438109889326992306948235035982649003319895312535443001126266886273938820792756150199824736348229420519598119904469611998249417571140260626397877575698183106279233997182537374088519205555442326457342819713046529357120604401511458657881141029814593556413298426269673983363242617023597090657409531432856909237344617740156960387591179005805933114510901645874568305625547957005704587945796089253606731859848067434438158556207695000413805170539579400436981896854300446658477115557815289690965888331329889160899412214273192872335506945829550216775605424841434724953823144978857769305491268486737076846112831871788571457014881687016647740636692636070556873894655592149254476674346448204000169198962937438166224179603453663423411819332772934557818778931169700249431460076996221064434539817636286041036068030277848586824936140018296307291418511588409706678285964073814582167805805014278099821666046725550112145338113815158110568790634224947857626254204396174665509070272942028147598970895329746899444671703968098287264186649216599817900236719526469982376257536396048728500574818929746125633552129941952643870552153183925413605387482404584685255484109986384139632649511030098346279588173328310500221435912432742293944474007004690301665348987438176379276737721366290921718454094917275875374929886639870834606765914763613625034456523702528563417759463457416245449852621164535595123470944670775514842143683042080281173375368576660125120259183222641811775845997014419336824229568101090351115017271638086551366920245590353515036798575421218385676483022166047860077989674095462263277081840837720959645930291130519324886680132936833522264330433240746220383082532357209956891156450411715536861637000195007959486172225608889493584727730008216067059872697953756090778373936353868452254590441505310098688709279824992369022643040720367602376552242821887319399973327137301039964141369385762982033067215576472844008530987724650601952415034457812820565794294486220334927792735795635556776894567871482572811630646228815421170472694834853182229977537517595675977428810349480380937262393956514829357410644699060085046476715329110271942144329254701244707981937905479065255441678050079327120450963096876296436885401156802288695560049815098409143941701713823355723967570556455458665418215287893711695072110702994263932215985700925749278653642311583281219532893654821021119051879056183974259914589808806324506826222441146488585482547565192820568744221558178935577399908257335410783682269170176132872250595543456227977507297581471927718190750504272760063685407071880993034600733950765144261930246751481372599755854590127845105733205976724318715998072157055736750503506970101197620355587456539021547452173911038125703688606858406435277457059236048267649043609224455850844465736390131693152726130327172254248690818044207435922084935437591337363230051061727968460390443600646998557853665594284373292516165374819092667068956385586367349051146863901385058528935594367297125286425281670472003175762824908229740123778308819121375882085743667499483621874104504777338640224437247837980027893395945233940503740159439604843358069630610613215085238283653739587759781109022099179848739543228962991376399774812384356584226646478787585168704617122137813554540843764982967962809284940447194783989937126145269215517275023602750597625590098461579683522901444192381850371892422522706027692968105583945914031430085394036273181076847863813620871552888668816711273179062374459641829690075171654274979713834608433136723601604998048135681459034436252300661971440435603672687013835941017593323459331937696290695475589848707994355942966253720725169991701015343604190849827610027069141958517686933933108146184354820208384911902125668759034171873792463904685775868827594848842784875536994900487536223174179582816800606176577609700756126348425986663708681076834136001644477690943331433293821891224383324656626438344922058981681228806158056236177530207041781257183107236178473600527523973826087469676256697987655346236439116807838685344921264844950004680716895127805818044030239408475272493591515229045051219222865205851285787087090441818122544085610030909359933162087792192489943318359573808329881461057173513910691441710397280440147107258709252888306249424351186492755202496532510223826507075616104327917494588583859716306501198425961991559093224697937339796758035583204746007297140402557567200586421505681579595940642117856386624575374584782657565418127977511981961436025146613162548377973506609541792555190056594392729525311271987153053060498626656046331991155803314269318425994694615986448963384980282972010050980467669264981557760180623212079775475277472263229657574695334578974230911447116702559407887171094924951052863788003764629090728283351913142819771363293758450146944774543222144092364285421110253004865302028263101911341000430719948670687348753442390413496737228937480204383017982661776625991103363157196001866628717537876831798357550615698575238077309214588200012829338685350117857817055290538476716442179906209202635601939108683333215398392052417387213891334054423389656563551671315089584716576315875790323899966716783139623354148954334901071643981811896119355769969736396465707570980931035575945289510299639668418813428760747712534510032868630842319360722951555337719521454625515419655351246358069788893646498983213701128848873140770184225554913390202214865609139444932211380155396606694383980559130419458997489160379394655189753846429057173591896397883346968059944271830501787184726835240588244857037689335955733311646348353913683117423223398364914729902582226887756524029421955927453222436354376829847309223509552110813276480037756744248698513361728596291500708613250949344983137256237153953792960639450714031678312641574034470878807381479869586540414050964614666530446261178789730797927678889970300508407668709046184351429999790666170256177400365481206559668421989226782802631161983593031767177738984099778956119860721251963966232069122059792953423980980000789710540157980581668730808515398720954727062366396113515307235029983810227091978615194751774619980290452777737934685511463084854726928595739656057676946411475562529622206440732299354689927347396414736620780813213002726929840206647261347544777734250088086360017942221481468417095958485251530168376293225932198570422200597922206632486976508871757004229291315719687078319671272488880788490678294713806363415879165458850182842810356306842220030657626768320187479780020701561944838897525919889281611134715694627023458089978091397675199557842082537563802763784051648883602027744529557267330696027723528817965634312858549575855527421886222262345419643262447976303088434856666427343667571511229353220922163372195683634677969049076856965649904405444165238177593191018790103920114454526850543806490748249828868518930495802163562001554672386738019781380820775086853694165441208227323787755320263619440052765775999913971033838564057750197126341844584361118060323882374531627938392764954374145909898049714722782259375800126773728010384222369705644711370332260705708475667530964638829859623443818207602580439862337836120170744990348726221663438879718798820692354746488634853455261033395812829849399442443242947657741832394727392159008363418141663907339843974439463706909786942697998171867142375642851242626526729841000283917930579382640795121421996280977914229842276843723137110843858687623624627375448335670072504451824942905423683312794043659241158603201846080387848935097895943139033041292693845498315635474715969523599346877788204084214540516442973730726609636547607609215549376368582137700854859571290424219351262115518041906437343367440502625393479839796091871800141840240165451908313340893711472704030046692770651987737171437281519661905533914163573220676269445978009503901186938296222496598687385003432470748161172485587836124159387602957113383077396688043103078899244364646515381088535103559684546723464517594323506130147792014435928375816724040850902026911271718574245965936473378328118825798089240320806065469613103586195487821066752310542901978171817427898531392490004816269890363489296502189665762961032787046710363650166280274276986046925153588099025514152442269282932655342935895482581803871938328477804376170104212051900771673867862694936074193263291598481484139618509606311522593497438034137106944473366959440851628244254339231173282276372543530889671398124725260840539268726389670314711454760434523642142337382850252550206638244037351062939992675251886617975929662105438452143519730239577720525282919124995493167297359544343774220203748685081253360351353269110349930227413094191787717610803022344143977402419881732043026706998021956161664029675645849777308116154849785955125488898234898306472083666144663687851777773517771068817019871118580643354198921138106557012287014644004889671976765859542077662538662201556696324912275637399686836682063846100545197890604226389855959242386563782116272498381690743993770681800834766472329582060942223474832195436003940221407590349245107791801796117749754684454321468393756337807659421056761260695518191791203289783878131196815425025103326373277846359607295929426763516896015084592480893836556754936729439346926009915487357104273152614819159911384748713144800472429708192426096013945463473440729538963622869308485536455741067314364753421980644214255671431378122902097638985125537338094800831714919528634323360053066706717227303207429629162084037365000336948487413920077991229859512904440140321702343431861276365272585437874258523302619308429013661959261547315650585301964033084223991651227165748629744021839565646380394999030584209218747760189241056841388630224910950473342845074919546725184239191365566396676362903206591609006056822165775362970291725664605332887839975676782722607404324099661814866200764131132681169635719812735748588184585225809919280862177420118117745871431488233870583824728378533125622216558090225514064737914305005348151879507005040721671894734190390664460560613078410578443309179030019790633330362544200814010651435233780636429170090063501155935642313145591875858547858926672855970922543788950284284824308614099357604226923984767841966072260519409638958117207732653231671754766203860379928439634278276850287668582881621179633994951446854021160342585909243111513365077847190028387256784612008452216758988532156872645126563893061082827244859311124480418315936264512482142835245035719137514754687255754759370969340695573392162989875821551200724664114669636732053747894840515471738054648636375582082099973966628283904181443578659129910439006342483838671717342186611831157030042574947327436792573121625091643401958795812936625166083641747778888033174725663112170637877300787682604180399221218415421079474790333560532933695854757306449402550867656594809367451390520385723201975618889406980114183937938012792492853731637755753656119736544352113225970927203495785321590259010543380814579572290897169983276443829349622831231211191680216150239828181981426136035501968862243370652885542351547253402474763800008946758850536816468385550171894424600861952824374316306519483560664548552792350585189789005476315859892499871784908257391401827077605486185140588519977389854387019051719382432495427684938704256218527481658613781790325523058043787858373908726289537759076185722558412219110645600947646422214027965636297281514362265414017154991759360016328218307905624282805315641650882820296005815166264674806143207153795991392041828392883697287548741331436089781836781493790322218128094951701162661776331339821050590312190058739618681454543865728604772465840662804381067972058957215117260000469019428554450349118352511390451241045278736931403851444418591623350561549790148783622451996574116097123175110030488083208204962092595069512277851436118913904847260165581765201494748230156917602518945791841217676864294565258716332526516189326106958532562816667276341193827006222327057377989431826200993819383129017116163930114065535766179662219608039501135535783471508922056955780745180795807911759834187820772584439733027490661331301813920368792037990885549872143532114021615875217144980680965160612059616070652492857595775821016182578357610933681234138457253987690142404087208005116282560800644400703278589872969421923602645198416753022094028974171433982654773620568431498777145352793965523372125355125902034547401587589164198159764221073517396204625573984177908624053590726407126565212175624477861573133683659811164064260857771131975268444116834717098439966313779428539371972868254250434114010828434170808206644294433990077042200067246108090254960360981584246271185040082492043679728832994005038022313713531992737127367244193364189768425906740767795066679021198726705447853292745665014767275342112319088773015618228504918184177398174984222308555200106334266354548221809570911510629246145543616613543059315268594527493150208417770760066853459961224431487624573392675977666522589431033819814119409411204179584503206094383759835530061304883021082948910625296229833336846853804628388822699935520675966048078849655100635663337893906418328996434004979381473899904192933249941721054677272041964563469866891315156561272651852328615015014775569652953963279773402649991798350828160592264669417195319632077424329154162456182512458222371853480308157955557384975051364892096429944045175541726758015244533591537790037624991922888137727463895110419391840658882747215218980637299066232841764739508110889406622311812206314921407310780566664366640554074400583959870727327648007846959555777258579781932741040070791687165569078635980876270238304973048837865077495555624864931387900123549914978477129107518344621448255479018473526814843453633591916786525630021173150397567687191335826144261334624529318912737603916457457869614068652479678347610895270023302113162285133133298704137886812778071974574038320103785658756080589522307955678893829671034639870077663261408343954229801707062705145799816458432845804670793102102856514683871017354792319789263065631472882595689521748920044809492955148068358745789613332322056804228487440345706966598080539843909895338148141085000483301948871901228678219297475361321976649762795063949523059984554638205745786171328762702393714069386775014330491376443990135319969220053685597005558424709064067383971951322986759110215650098372759937425479246120689254355719083389991472778118877769442688492161558502818669700954194304445868577743239194588768162603762226224540145911182664323247072846631913687640885199432562088490569893857847164878612701861521905402600157853127256953369065962154051402807800682961035203564860632566682758111060927959642535286571177101262188922829565828230916302744061026103640936244909679504325321747467367767710673388126401870077261390763141796997649226030232300932346375957021999744776790440897144850623096187724994949229421841352998703726570193489382004402160754221313839351121601126039273131026479044623502023141413422382542247053640827258836131968480890794370276151395326367142485369808461191167406675009184913930756829066955646132875169963292131659603085370752465390362414144941348604690607116473753944697662257407004976350806818644342680390571669612327703131732564799323613152298283550818338064945883547273693514107552967754410459239167921170285539262881176165983501626211617326947466418465470719527205142733340539836494656360860000663116251843070584311883761615434322244679538907617277356691266997465138313589068147995767943818250359455270111638500180536210621563594031960947170076934146567411365473762736064440253477550636775859192489109540879799187842291561442820768193903625562852896479347795445066755380372783196922814268103420856455783073709598826361500832611094480916136274979433275080294603456943055158677536325370784024382490539707497251348662219285312761659260167348303923971555223592338007557053605798976230285269984196730380149607730168005428999950720300594221669409988980531555447939818942602326543691961555121864136914639016429113000471356658034620986386668316891535138875844831179921043344157990802117761764322189344001798443693753666529407475000508083350577123322187484444593364863048835524522587129655450735717760487233725771664839345448304413061682630498502761814485258545173284020092966658281590874672722926863289340335837222130087387106000409675303978080983275802846332495818121176336905770040198027033237486866719361453600379865293514340513968918302303672696280167387103785998758290299416407248832115040027671907525190089879359098273609264526120106437433653949854678065103715423161667920354705961172983461144218446552479920734017121354484016950480466894910206603125445319896296825928680330517842868094827534181011525234896535823361200241969631762860608826252243246389417170690720363243036353982559524709877192608903043165398513212559715597830939955624395110282374207480322377096917661777805291960529338986509542191757093079686991749273253397041099170759446826064840651327665847663866491532794653973881581935174747862965699330086241096080894834713861922700638052241476586457095200975137548976353009365309040281429594002755979385764134127687974643164675735726034490323816673875515242503800225769384268516148067996106768255531661296796290417455828969650329656627512810354801303883344160651059550738479902943489433131845819508549080816762945630828959844220665818111148109574820783662533062250052432108490502547524244112664356999479286470112793864292130928318472983531040057631863948639881809766422407965713459791157920405817875618783032711524310930668100047624588503724248245578256295959998609426350957506702721292720691298224526442097319580472350951224526171538170380506177202923353796177325610900609480720749181227115434415159947743306208754824925332952190963864626248786516935451488899853824500038227024863337048739872451386038306379800291645081308833777232989303944963290902747930011148379559146446669521847386667526306591611833673378309326975373641149456300472226099061666143791727680215908921341648996002030803209812403193320221659995129220485597225556562786652720418395183391424627659872455501388378176072990984640290597924450808117156054660961816016511892385055482855882346614428974357069029137916905052167441580980096011550938936536875845143003362189653175359728678363000190639461440514491876158014013879426981920873383796162638923551665812923525523325428951513186067161117742654257837695267653726746820784781612065743153374063981906247348989963217141107179270062895980695035380123748084221113948551022649035008659869481034350668400437546934632647613907310028924746714505733218104121730994238052956487198795811769424318599318277402789489969127880965697238598941804467552577367690527589796637492139914246349426764819862859606202872547907550968651206067053870071143253956221785650454023162255972506556323988841861980564936519095365308688281581288038294965903095854024570377494874347999610363643450192730418401454559966419896132237764527842056778410736986380822448191801127158911796318504826798247031985874018657285210078582725272641247456456930104541564293704475777655683734431466726068256640524514682886950228127793484452956294716709803165894764946777007678314333998910832321066121363645782519794437661785953020165138937651085654578122881824660209108317407153028825860552417472480744960604407742134629886276029554661973165531288350815212878043763654074233885260528111927613762699131033766867376626016575438273879380371652832235360108185168966553037727543969183669866300428647200910248189661728591705735584068185901224519156569586632952433030937556028855056978270516877670943573631089509298183284222628725761145068670038149792752190082960357054482822379053387389200087931362854977854337327862802873835043010909497420181252974611407405571808816113868606373360778941135843324599990345418682716261096553006843125074030502425238595031996139536147490262838197001742994540272641002407525187150787082607540271188033686410357881953884681450370856791031432994301363734852319840237834121277627940868709346042459990795978705413460660954537268810541746582853663942488184035985951957550553397038835248705396997950664434713934396976561275372573815287770857327962089520890819970660372807229960492426126799118073261220762882176369413378725051967718710949886029555288294160755371711278091982635042879247316278211537467616250196449370443613450759741351471364132806779616210537766739502333463701164188438723568766184740425897227495137979834371314336753612813663420573989588236238397371813401430393818790949469833374435833369647128077320027757022442547211727175914255122811874314429371826542644455590162834183307664975850314841499814235499568270756356452595919855250885057021784566193386554594341167863730725211690379361759834265213889826590148654078377090053086301412831202218610638399301275695326383019223856848778270180524032102225041173791005295957110105110804152036008423469035105096521930408514199311161022576578580882421656398157366933330056145024754067934130301432296201224404787513741814886924422790670197029062613754135385613469478252666444356322760073652918844150451460925694144586327600555598779932167952079038829331815135688047145195374570682595771787157496594962679886200770811741422906269858887753322468579654173628658845493932152705600371984277230449482538677715548466351495534892031593966608294577193004597252478038687424039878093364543540645983043833161615107381560946831180918989508872571655082134098351998470365328256627639019132013836028744367950742468899892411060111131878470815240643682261906460702835242586001602143334123455961761814048917147553181630545840657714096921192106206867483869396969428761734711581493184749688256851489285720622697377387737065147877014922480769185512763952395544054680169374061700552536640840548890683990803757270758040918902833274077219813045262388041733827714899928410570839385120262201169765975875716057144360272424015831386755315775345542015776632422937310317520537237468131818036800686992924546425409844719807815774877321982343286682178451363298114144654257766295955053204460956001749543743796761208512943872589567448926562760036568609588481061003117227419650878832532484410812847460029078180804248801444796685507501964312605978115831558541335161119247852735254500422740437907084097589076080268667711293457850964655172571460969776616214953869028933880566130490808062589934803536120224733841594761873795842687939628435482806307053997521495611384842425766309451291222753989506572243344481830844748527186631814990901723545552359931445812999835564141076900755925461622986434723496300884805639097653651311318855004583385765357100597002428156591024329784456412930579895069407916390825827208901162912646566689783373754462414663558277148601951327046474464931991213149521674486210227633362817183265103799074251370209197113253513242396243070449610108527164158067559281626043372502810280409269231195477265883427029789396273498219370425981432789249949165836945595538716076808182048935270132877226941855906597511329541262944381506051066848697108281059609360849845946117464894662326619645846324360936239978459658857558373323339013702990972816554608509921404432399881216132596948044482556062366691288301558940447475264716914705037730086820392037190791025220630908671146560903942966829065845827865725887484783062429965623701387730678491549531709464558471145438670677881954930798966607372372246133419365306901549676843181192019611459850227202741175894878240647165042871412275554869917305747473382235732200502378165944125379880980016034138452306542209818706824480617396546954378405813799767356945633219857285566028460191038557286856087326700096339498466100872537060013869250245906848712185416586944850784421310957982899549297581960940297822413890858447409365377461070351292508785523097467250799746523766649667221336638708896358937523737790408958720902007206958951536350958289409427105971601762702469082184573821061115694280863841240006675172203423934893662602365284379025294305316134841208840940010418221365173354756726562619962757838942215643741798988764652392875653557551167260146265537122048277047222939900699457022334914621274066598545432556904933193902214143126097256008441934145358961268746346799026096759865419370051564492571582640609070338931506032078624233524835831229609519254378891284178928472262066035998041480034315391623366688368171533358153127782333964077761034857804868161140245960895119706230192601471090251067858137537830535091748273292815881428131755610967860395417688612995064796897476755547114061229747460050195975159648798625859101927700221249526786015052966309981076000567558318415978345658963101416122884764580466811338007629051494549089438059364625373940767447850935810639691510485376336560131909725096328719693201873026900147789107792487129051510485000044493803646452706989661048341972549543454481537758833620664169835779950984645864996634649367835472394024993560970077272445974120419287261317958347715330004482624760214583386471156299671698438229356032520262889518743607424589353424187320815214722322529234083746579368920253797373497641006079515834422837557049611667588917244864975172631381056225495417110841884629744202299393047492148498078688298586362202589615584264964190937437984355185871246032939008833398882604745857000317402864106781200837738875723399921260634568947060917490811011668753904195968125487680125842162380999478864826612858956318199248058327849952893838307879971792025871328510234249300280412603384306586327661992009842385846241491260070140384845320044305429651875593737322675684517707149727055651951471220860087981067487313752240815121200472493669774766208055728830224987827442560283684863343605614822613520925716801323806795612167775446167709541292513622740093340706331343496151969201170117188764435577806821967217942528060791431797145591776465620637178443143213317160992355293876124257884272579265922412098877038011551982749028360003456521252964603352075684788040990449843147359166661506192306282078662494175196575512976922003787966599648582451815426131183892202399422061996538505045096861129820714597894684695379661669712138913216883227511608296730937866634995318702293071631013605624892121531668562712715810011815855737266606749531536904456221559383347154328026186394932902153572403983175142686173392719392004879211084764451265463551112760910300681913171976094537359570137672924358584205125081637571416290021744319815355448483488297966429396723624737374183843541730279762477549661196826714221486425161423012705799822203839127029071734264334319150894966785146395956781215191871163714601121806627532922033557314919684882660695598485520225814212422537838411615749397649147668856845453304435731003243419839416279554759204695617755397989032789113763391278570174454169839411753780545608625048960207064074302296730227308826134727267024914677967736641262191830900076687211193220032857378847808829882190655813574029604663545642336227930254241947562113238609161324452228736630455133492917071705684865720727869219131414197077990869130934532356297896697069442477119994375445959564278272017693473520124409123912054299280305774136218117836450100638777546140974224062634991414490892147605644143807643346754057685373707634417812834240902534760172224057768814955436218587314921618846168807802165046217958404357690349912236567104059903802188371785117965018647714044880070313204070681767301870277260679017451149220337788870315954577460418904238585538804051111660070032839004364660516089053103276064803000285545507011687933212361036085968971089732660699549192439765869486798759826213702048914880448696402929614174806771047270029062657087660569605005918746681442430842054667358825019539376565292286761748950961738256082785620005893711585676498491322452576290650162819812142408723476380305302971273873550595862574111826859841463981286018754752322690950017813929914031731645872450852838299347860433701165739463234012710707012251053836482088094337069134518857482762406886382944896211144764029023279159349471773720819917009457278034609075376800289210618099025711016897088495271996866461166059566977056772801780620373790959726266150518333743517617472894183924342843579084671882969308193967384951266721349646086487105778746096172750739714382360078264474070538324234935164543273428822944688577014504167187152254617538234100853860968588060606026419290219611239631815139261059469829453415342049722481168922994555230825130235082101991131935661460025106388311169367596210381483178873393053922840936251604710461469798670091699625789877146492066143661444089615147667001801684013160750195952452062060085540048907903792546745363427809594506042985041173146721779419646690012035855588278268600240744575157417304065985480788129914932033242664621542867828441874246413685718265002794375506889186168888762968112360665679833408087232346873361338623594244174487252710995879451745466141567131438844180875494949422721501615992436422666839960028506051410698760346547268981940597210071237034996861295999622129399426808279371437549494049209186088112596574033991453991362798076578871252869909564471372452004252810506688030383451811360392453173870255674287302969192030874734917953008687936137339488069062070110183097299288597320543485406073416853502524138948659062839118900626997915484804299403701270459837123490702469754012910119897158626925507526990447891131117570938937754062022311578541514362041710604659244190664988174035200068618284330324546460998151176442571415509808641783624108576282276199801320665534092157311834248465001222064159921591236282446321958890533893423597394676818200584993430748750522133281555656414213375690516791133531714303864375634838917072192140232984229851139473759428051157932305926283087244607240122169168917684969358386038544733806680545097907771518364567470680921577204926317482076785585563858536211263241286321894954005475090225852939874930437494414190339352853288265393685609689596888625794970908588880161782287928933237019239146593973192045773488936127360980061149313154292534980033544768313606708277122223123883345630518663964761576466526408475038642428499446751146560590855424448318261226110858707218277213513667123859077952466273609191046901730861273868914911317087426376929946585128611180968551513421142129776588727811399451299484272747301106027146963078768610369269284012198870061457803403467094013401182722643930745144121530276982393712572242795339960687073112462080567156473154798238772361404912467259517113957519938435190369219860226146384176801735428403664814356643991269050212438198712069218323917210668429030875167954290481813871608630731448175807660801969851388036966311652389571046000195855613956711120709236499664662646755937877915602702188425997342917226859622935877983624314122585520475431901392555832024075376124550667183023508955817149898889093814899714133130280149989917986356360837433894298119561324767357604476253322978249737611516298164360904601819544153311870072419811133732113928738395134215876548727186925843691758049972089000844287165124499028998190379847460884372759941030023626618155068354289768821201256683790185795790158222181702945995387168824368073892284010331486489392893209217186980811664003477490033641931323707749044214160592977498917359208558845510969898114295806388382285976991868139336675314200208380162579750403335693011609493269067578646441033213329691316572072989102670678947390589893310639333631602190461186230602775788272535360217586718524937096207706800445574417013926554485904745142049871326928148620285275934653455177290038078863088266210916289944438060052955355656683261476339639949747442754830276575356909757134890443238797226876641902190389349967624286502309711576104114090252265067858705814111519620748528979420492535860050050796079601859942637083779389531435107962603801875205201168421559044865025206072120850328443009338142640359380368279052656754083460618399916703617928849058842666771047425107863005567891554770515049387982007014443316800515690986686204728103357223189834733991842528049455366176513276262747165507624011280368147081311029279342351603986100937857980304610714639857285415565227551891361841284496841902563854618015487738797599003121387046811146832834528963044539620888712495116418062846468426757108222293724895251652152173447900661076376573699758782789132650166764185484339147080223730711342964671349982867166597170296746159678756993041083577448671012306732488627138726871402460248007285129579540074786403271165768569369988489484360672249786218273392555713470092191797197737594717828861710115076831546470270718515328943578400382163954127076739549636717200315351459124304959526533011197983302470758681857528738020150426615541796603701620189546657580662989520619164005854825094176153071050274041801977603931678936056073200126551325932826826502789424201378711134774903897480638193902153421432364805065701568274525405179870531476489532492138372705629886728294445034500985969179228559408026504124054862614838756008925475323376236167662743442462224326053536051267283856625789449602469723416744442486420890434796172262795951458770970640160500840913791332786107435353269349228229601494418670749708541556748354187163432976521660517568652537352875668165879305134963934280554362452206149795423218332252532567078950089077111358303203567511460192568086822203728045364116065125817586142248166513614569549712995713371003628826927075277844071144487537573843781739046937061917656338391336900684990761050963957852908843763622518254055737273836508426038806088085898289965880861532569025562927409948062404203524353124585786046405945344344051696442494054663419141025718391409683193358859285882265566692390955498692657035334174178327151376315890663045414035422047657949115036084868556766993576547566221864698984754153975782052908937964483111509533613613902286652500814223295138162377104117770898906860548719610003998919544210248021330829983688203546527472312834138821346034213776193297420310534028049856021278842561425566407692503094709250894571945032681923731065223478314009694038782708213442872420703251770284570512769320075907719928410524146109557852253331464317161680646188762914893719842443438953280517348751142236359584296708750756017962099683588482990462592315231034685962278113041969669998612756894353512926706590021211047446271729014445909018132511028415771189300163847641268513879076807576638205461438382636434271109287682988459551436021921905799053735886574434993135678627147562824814886901906622630488781059470910577210253696396009795133182577370038065032055185459921882555747555443984846651654429597403825047829834110751989620645625866630583879407775193388621679879518923693631582208732573078182063295132959118375008785484832765614812024646098052898322006610232627966553258764743323842611146888163573408398566225784036029640026551213843312548009315266237510822723384321706405840247278834739578058294667164830442076991339692982824446753773271250196912310207963641279259140061469835094544009511122052905437734964387266268150565946707601958080771019582236878634140606483014061973706653382022316280977034072681434506473797620810895342904559380291465375342579301215151225625251789295103820598225149293594080657457630705931995078051174417536022391051535939385822441002425218384149779181718512349838179760854728140668582944905574460487538814137541843681144180581685267379501387160567441730913740160560359450937712229132028780133533456815969759418564631033821758235524104799018774712535425808943226012119805441755810360603343980531137091201012495406056625886532326664403542850098535827320554492990032961474596283378046674748684380125563307707338949297147761602950183802220964554273682868495490352374339844261807671526692567426807619972402808078317833733859158166654376119623206112957556055371184601864757636641503260852897023603271568482716986657535800846531871866234253039186393721403940935452328892008743982504428635408101248428098806649380769964236832124399975419624326234595800528975439526269215545863060513894922890459738807525461795782695137350300099594346613489794490523466470506257800424723059262040777497843764333137473625689909912613147108925090787244886193708153340506368681637685122751309077143010229834205102953473667421593791901595627846520201770304769428559618276782757319996492216600818171890425254146024866634312272478109792107708304713830750018543377667303975921774870614233732144790546492084917604680177449070828554167121199828590705357509463904390321530382183168657831137080966735271922128966027169046131695462997630045864754673591358439747699703593480328852885313675549239274373219882383223770406991821722174044453687469031063851404551212555632391561572230543709966801660778276453079656054064380150665748157244944998875447067852108031584348248417024104029289858985668837988510587521063583427443224616135930910728352321811632428649305354347180773350957144128837903839107277129614194500812194968003180066686419827134456370138293673965645662383834582287189017266770102091499510782464675009666275731148905388825541927300299900529545512855769758760655954408130800789801244735541591180138722579840032949380763209140173588604019233134862995015451750639334008539865292276788027906362478618089319829515020334582039027146710660636434191660761426694171218955605779924846184717260324392235323833320046315307253754849373445642322044995478580899550391796752256479967852703692249252263685826262281827969008053904485293366249665833402945432302786129547554029487576816803819592291067436955748236182689548190497384101639947032623918941887617580237658715831712572046054185638988488441697409690289053925705210832527691786479194921168490653521718945523265123764234271490359503709154272011306934133987495012698236977118415697310293010726270012898716637515895891694683442581430679429699466235569530477268923997681995188230092076289790705657865235481373100736444613890424665826978644586018508395141770108840057351187510083786140013657015467499737144844470710525292967433681670816392448512376576166897840080647466441451998958581134201410677057223977787576154752734471730178513422248261289074982426175383436382035899676253517510810237985999327577831438834382115889909977463537482884439577103771704405182694011505126684184424890666378529074081311327436920872537758589255116933875759556136248637363460646875988232339702238034942542820713356718304832916199363500718207714452864012446614461893542846982617103935827942106644593668943111952203454992025841442626371482049032541413009920653939638262857144765830847813088310327671369760906535472278843494883449669211969744364414731855382239079144430276096001976138553819354959266102863664086018702146864613013932195403748251768395732720206892413662856494619009897641780145833805088947264263211299642747144386162419913378754824182664351908634707790092615716999249991634134772590566505174792063950991688521479933584930544801856938172939809855519781402129250281103023184978300305542121289484281452004497751567707322025453385852299460313146224665906037292289805730432574034875374938173535988623306010447632653792239294052057357787018854406445613741042965595666669677270712634841074853224350614264750030338822288263296927435797519071912654469886072247317211155062901098297604520360394331908238098320511868079936015485802202039805840412921742793087698218362172090418598898671207445769619980900210244204722117050805275041969423055302284637285987177843607409418507296947401847546221658192421919415351960110038709357308302915385812158715037355691179543422019417798183823234153819418087985001601802453558766280503515714764971265548898502700493424389670961585335766155164789058584202136562385642751259112109444608937881065068314726306383883078571731646396577153604744543943519269591985467765093598194774005091647735472851953611701742649375667325813164664698410185884426189318200297358909611539758258476196190034367406944304285354860579203239909400488274146271685631446315384022103976808609839816180974275201657177820333449391043661795173782004966394208834866523694721278543942568163953091631580178237907603337467670467494060505967404497335158360870633671023812281853508676035968508318525034110595859838005078304267540873110925048990115517269438998304328238884619675240317541066734666237463764001836210412668222171032497694915242292819086233997507352347617440095005042636414392424129257663582087812101223416863021579469147934465099161027492806411508262719366659604414194175896622990342770825328699425910446186195224407897407010716401879158544056940014048274394856028203152521361155565124812969096524055930230866534878488545985840588006249910290391955227637797870643502734357453786773221275883587110192909585763116663462368431731191742734290323191900120158258833613501083100939580100447450938515218242983470576886151347276669604452148912513964484271071756842554098148041465009428075688315786646195432044841515732583695097136245851573200228498617939025067953956741246190777028152263736638320189846654017057745172625959279863616872037881768004809856175677519341065391437015185605606455265233234870840617378905436560649024262331478708837694878463263146688266373470602678959008010970320538880590377415803196129224876154255581878273325431461915951418486143022883535140613580537154383392406490469567904123332048849888431952164473401493718413503398099790771779005328986211610730844245224062518455770773131093556560371173724755563937979931857953853573482992002621014116532430450883318268185890340975869840055795892826127511430886869907830222019496271330205943828399731197701656874263985721559742380522599471432164875746409550063300456512336965948994740201678852762549532513467538006207407235121420913327335314739227464708074667127105235700373686480147097832567036077870070634357356116777406293164082100150913504451515458574307769419674073860974949411274977762095957727455829978706490523832810912877884768481548352742910058751877353296119228785933449542834566311824557926183539370291281791783434661956917250101788862392283593465066853028599813179166154638016534411511948034441608154279943261663219062289469123911612123856613049525913141749595198725872236294248584448796873014329233696529953997016387037141605190057023051042332037568521165486702931810617612063428193360621311040151709511390079459091139228883591162760971636027411413597386783997857415284818836151992406248233973320629108275996411635481189616740173609845903782308394131225787234520663902901848308682892356607074904234098386397340290541657347388996764572692334116948437769168030570556961392899012644209966682045352689642411555907741006832010016511648759946158743184729076405982054563151444075587887186260086649104333696472453145524345120105469239491886120132347535566317899030071299495428667124352557893881168123109421860661815743506464239988333256463830346106613935198030684431490600125673669703998791414293532593110044159799516124337696836339097462991073851071302322071913134890130642932416652388354139762620305332367758978191088655982311356504913822366581113412676919698622101545458513765392432361567315015280492242946242150699650160015264946313030307582587384632627241757332323778295846345137416620478539598184406067595973881798954579183430602377466685441997863792003128320105967930431881157652354416240227496279019832105425100232909033882636374857921161263474382637653403827744605477257916332835190117406223147395721862408898941508595319836787829497258798912691277617483366647688607396050351373700185910200985584000706302620363636157009869796040858995126336174842074320543256870500583524435475572408054817455890429982226582513630554602271141861708270906672714491017078473310443939822837034127410939966899139195485582575197169327915349076431006991219734864946997832885389625880414084124040826609161801893805992999360265041359642418634230479127406185254064620110281653701256634838960168294338348538337973443767224654291308034662785183727550509534591568159112869928605440741939266541972196631239983607086786899242080394395330448206937650326739598107777534452118281411999025914628030371538747077149388712002245378875018718554330444233052586411323728102736226738500906362131576386493784989626263079304942172594626591721194120897229449629199650880892436828796360394845397264471815678114472698215023048109334243710043199137694186596151743430366522542729656787705120572914769947838534830869512459446117293233161074486639215224089028388016692460558237479314891020111915429773410104284769160425886289186740109114248043481894612456778442135495739588450816649260819823279158626520219012208547655575749173461540390553964348937065342064687859155692505446196744562744606679690943770129202501197758247699227095216536186710576174810702806062975749025718089936011658990910655262284837238530067432077283664418990277059211820881025121178604521839796649185658048120589728360908450671613731902923549629006330414479553956532077473131300916857512486775840529490258029810975873628619577086759856287362869001926096413091236124458477790759989360223370987406433514470180398839333759014370145597431387515508133492499728799433278535226557837781810952717133203276073018706988736436191892511177013099578361288857578805459528935540756444457668557712013844756186695591733785698659214092717413051972912724176949352922730089037734650079825104073066082184361832236572941522658498091370896140688058191707536809845123783585943735391865077420185903583317597292371797214514393963106505053268147336350761684723053742416462032767850013708322862270500070661623461296562891147209083463688226759353824327128856333267538007632006927864871492159908968233612336033565054679112816983940363738003668126287152858815935301959483151033572802155449595883183048747987061507271635127064485577252398088405161918059794477614886564341537587472753608370307832721898858681123362522995584822389733804551625847751768796597892100374977590814856440244777641548476106843096917501235155024563674708032675177838726554679748694684266163648543971127929576238567498916699230424525662041574970739512376787442551123707625621708946412632879190971035456444812101467596525610496426629480617944039903190186341733132932947333247422095894865195545049237696848376407241673743576638798002683213023875347136830691641639458581965331371030395550831769707045100138001281335327812789581557260096868851827635291554330912904425080200744455216910113112544312582105236705891573714810400079878577285196402216093781486638633269495121211385064097080141494949855597843834080625571397159918424397537857224860049799615228975003824451178368462976936222293351506106068146342253137898325892611692322521335607570644239536141393914387597658005719918422538724027438369012331208688009785399924900806776421621234555898450392964684598844291718709481516262086189714943387532496525446388246507998372967049980868143727312088357624191171958153385230398846406147843253666312320099031555921111845358899385845913206357224117232742652631611834100123127688739308559893851624817684658519303882731657478810296647917068983533604002317460140115325556203281453206816137967095702909821196107892892567654045474739749456991785914454891641995758329952943810282704706470379637078256768745236981922954891971457220395023263310470800925347628643163703166333025136900587225852713946860084518030109353856430981133153939844739373134149771249472743408976954570136898301149269989942361231030589044669370742076718528825537362259191545191005836882065064407601731085009087346920510768029538918594113173655813203505918662445114514568693777942470467841998678780658103958935567345536935104723482058892353426012374603680570950361612870297825222857669629363803860093971650193198523569398590435002673008373866711763807652198340617550530507826977948909990212278589359207452230093262984504204725079541104534515200593366200888171340212577236289363256386473439504582390129328048022238875963326760852661974656061904683319508430925940084952554842331795471957559059792844323388409764164437834659808831072229469007845614016630177596463387590451946941090985848006909264431090507652651512433509339801414170528853030397081710044793614019883633047081731824518628294504458001688375602107743009538039785946807889977470730458449390736531261975010572284877196019832151841299813916703938754952177333384228125858346610911075601219864607804482091170427616017909843044778031338692517073348581479918464693895370449652794404423035093356978644541167420725315228293690907754446881171901082283983521998887920429883163016763490806542557736060540768698420767361093768207627014731849546066847398494869109867537856860347270161617022300693380059394039801788392446483679604137415407394094840753618165151028443585473819308656501958891032501607319071390537099608888892086092802053062727206434611878443020134884311562418535907604982424906976338946291579958340314376892330877298761850654630288280873770754535683834896811434002434000079594771929753852404636484301012539745497069825784836192914755430096613668786105100788107484031136185453362962441228559356079948021992929496621708861992772166337060534956721106918076883279551439872738416278051085870650969336192876323189603966055785298251848179863316731233922453806133243364634310598184207184440695542010361575467163613647621827819627355028844069111397044497688524709987800850747150030991018700780832137024689272197750434387378256541362300695095767053843165125570930348422104625695755787836083079127392622434602536340870952738189468661707783723145611665068811855862206387605101550014521890959161395883606050500994768335337479785088102152446700450235876382689283659074504835970432177177978064604269166085962261867703214920850768279180819504002909844058769017210346102631809711938046865791961769710400666129594638005648045106676638475144371231912652135379015676102182094954702311660810653388255802199069026776264609020104521734716689543579928977754911086927594321454300878403981197651344530213433633824025788172963838145787355224099252764813601504557641750614850113926730867647162653741323532937263952683895238705961586536048251497940964921382039966916709636155166025133469711643333366001543967540674108242740227161257259525033399667100848134165754735816403241494745539371770415910147432517854031975541414157020073210821820950678126308030930137124139559905815017346401285873167308493001851286705049414738581754737779618494882814408426177022501463505649585265672681966116670628354169978999022970075231338407032618808722619077215942127341138165277944197693065495486810210527982549436033051155803151038525848673408595939643053824298089982176596242733312545955659379237597178659454377424324607505246661530136979343381197035866336255187069979874358487371685384997590465157722879866529032251374955326124974797351336485873659628031519207784237231660934293775146880071715664664823271320781678099011043478117150745044795828032665224103268954451709394133645319549049682874713720600813058620515183005243806028912114894409080653451116477257147687711950871761793548409615113314693637413924669209445347187209034859436753577122186199907493497498033037526548062633635172696992673144080103931070379232430291499363636163221214697938035377625378230989229736684763875874393740198052290539866068343693179155594500458170584667959132750485862438922891674696374734101123184529560525367043880797446515203145478567252795203806680624350675185530597052341927744544867595752267192336084443333568418959615016607028573454744299063199615041630840960437790686650298285829939080992609873466584880358266712332046237678377546791102017566850884168716566006389624099969887283449954471011239330307531289701507978464128308463138187887562666196591791041809447686004262298057996825242803267138935523321820468559039877972571730263551459383112187497345895844834050408983751655549539767458427525044965646254101076372517434669993711117772603692492310561187873543299452454127123177765648001528400826101982554708202808067742350182826117867480539336555928832439785799963439338717054872046396806243042499540355069457615565960854601554598331529620856343872958665941860943715820212507109429343237638428686157400245316375371793875213601161006418374477590254390076563001234830849068638751491411421200397572928531121058557149407983975669519597911465229389585071849013093973402865280169674235045283702860401968322415856909154865963413727744655610928212686799648731428368222991065402336199116241246736381425256778240128041603729836403085360499434215591054461002071552178049711455751283865743073267841598974488491083992373949338873446385459496408862724687213374392746129241091234390336805574908619740843848272038656666362649716926753549420332211157505735675252993989761402248328151023020982485389856979227228398175148529118650778222381241197842548139719776010188602315697530230720790924821715415850688323924732426843347084854815891200934945488729941157401328274143234315853907231071248280804845481067635178548640369793948235679919341245001979924661851216065702956068481426541493309167951354963742032910675681536350958340942941772573404441601751020205965094316019839885736282533839658254385813153597058589606271025927493788589375837267882311774286011230199749588262739290331527163897725839518431001794653099304558965397262256975138606877460699411273267937036313518954891100898516276321459680832722163680875726940962384305127368209884979944390466865826933529422752961827823510261316392388237697280718898863485186908568024901410776701176216839259281812741875264064277048826460474688740062430454808826715056191751757424016062583546361754756784149387322667110602041512444872857193706103874867262103747535787241529934188008775906877813891159597467937642085793323609362147638513937572602017588130719461412385478863882579728128421905651101263990728442642979288327292094234416364252106697956905144546310832148279172104690831503103057205139238598107020538042543399896757768116109212150755715703891325090641316124076850678265492138493753016083942992773222609485958452278622483013387050854274744805325688550635109192621111666929960319203909586429582351373948011762919951510414183558670617437227961044006493089725522161335539905446280315117172450551406924356944674848552448921239148509770082580063026902602167482675639718225769659757389480880936426914164530641167468977205614403815810596859042264181519689490619181858645759927334146854960952261821184541839719296297033355027845812054695063662184580233978883318985344823686291936271798103540042399607037007342206365875877891821596373083602467844773158901620715538084791420753469017149994185409766389754807715961881282495907042333937750557823644579777942542441683809753030719156893585076274346568506851813871578367087409035235481565145918638162553838446529971446804974036041669632142730389288066658258119821166010292536458564120153224984982887460249454717368753771682283389817847817616957992119185507520816814281435304177596962750466940756874514302403592182899121027561737874423437151190803331056326651221785031479665304504627388584334308197201145985628974818199709429254200442591739652662137122167259661780915706464107799944340037198850382626847011516297741067924418447588012095684747683853596314798127248964322938249813371215221435483580986194487815479835526884642175783154246236141978086257223278392752155579740047335501515840429488975045248661346924827429920443976042205999621026926289823908261638519836303569138814410099484609936838936704571418450902236277598006483573827797491681541109977592723618278085243776876527427167400938470634578335100616548601488974965390457536908481259384313458509426534386117120171638032328666502533198251246673773933915535862218930202028326421046468330176560291474940475731776535145181469348080242928947556377158788313845694638472306267926242620375319920331801864950510961939391545397327994732750050548835981754349024649826918173233361543166963296826867185700398226806675994637416025718255274931963787181275126219160575650738197291420087593348172111449800506233304422260041057905549374031325510403106149893108830787210795708732952687656300590385277756535809136789091114235598391514373346777853406613825584098910772295949811012091582049483948573150159462518133695681487358918560430621377844282106111449904227089179471789910451229975307706363252229169809591120986121685128392471859365474195640772066267818368754273119536252974783032649602624910738104157133817303791169961085519797834725660743277869308139572939314287703106890129737581622155813844857263706609189990190081360404219900019529766235777380117638963991074511980635037049460567194019927368033065083666201941092972843584951914333430955715968427478269348900681302396518379849320905925596765395059890953374765916256276935721314308855021436902056596683826931135340584133871005833977741586451164968262932285228598945936266248487497557566312046238853978650395883011618847162737325553246332798148759258965440426208009707364781974734430078184108434419942409755135141810232052175862371476078395789450720093205575107126321406527519476311735090894311532107763764739948518999556533427240820730526988691056791321690240760956189100817302185050759909807356111184232425273318481875695532794045591239957274480097957107947923762954690619028230827730202766757462984088523197762764405166833953207007731870796215251087663686458183164369887440691371556426551904892538140350119745122499591651411025881227156044156563788377960868051975776614185969846619382020068117065066631181841283072376780136990887496678364635870151579828075086348964658312678432867279710040795863829445934338033609364301870392222061647656466808379873540923668530369201071931723003102784688003205761397569508863214484044811472809821168554825418114714689899837152330122757156631160384647469255817104120643085260627577413648446665175175800354107761612934745515952876119282796284636736662581649763259999957019167206958746702929926278130848295811052946224469530499536504753267022133704133903201536523909494286241759459171173893898158948758789210961736354033279089435621696560731295516119076460660481508644822641425008006439420302801076494946224932229349923918270460536997287038201168616771885373407352964910638411805517573408689849834606238977231310961739494950695813672788696333687136704439631632853659114401115544417737756772501931933294007221861806320080319440042540187889304634784930813176378552446568329875379574145382665627718483409468662150547250948230866375222501601495966886899645788073110021740755247459799433463973087397126387321241048565541479113506994232694752364443440561618017614771124563380237008008288513024739274520444746324893318174749179599152218843802260879747835902026368836661128056929478643918319363096391503535495242837085867430905085151238551950605696688792936889252146865520455885050212250580185560689118005363872047798847726448281611423679225010269598387371670482526171000838146654323080228841056757220295423128327698392062885692503360929260155158745903015429061873405853464050312902622943121483532372982592151412447561116877579812002893987874267828729618976382633162710865529501076586112792994836389084212167861582133996076357971801162059867037415384782139009280404067903247445418012127087452077062655289500568662829230023940952270944304707081599154882433359222497488063060742418705217776733442707897740267735093952049054527037460433627337364885891556211074408837466441722480336339302964207809280238993879037251937552501736246738611304957608852128160483659334100736229422493066289111611263510075622321125302180836111999767305676669149070934458230134304577765496850075694351890717057649579940232417249907162317479233963273487819089170293800640536220742534981361004931941197118532074979487607760077652320198620750675033680629663608658866509388934467921361831370820139121044720713679576689146810742406487951337706863164995524786704864360974455728229427577772950503002584914512078046043479570735436651921050891613033297138915480786082962878787433640198562310600432019883050152268374777107576504148688697597726110256599293377463399079837637275046795650094618394816962032142777166923363311269652741062198872033342304430400548064305611960475858274983222334594764295322561327447556818703511086050688811563647233428478693795680078643733846921633643935693338793386040377547038170127480580601930160624591221282531848759444482143203136625784446562758438711011976310658783353168626604382850435162007236398479692335223786152656143035965416348758044527072773546845651676586541307821018615598297485877321512004534400653379529158139987502303684419814999236318542518374133267380503111574244711374347393214271652940101665441633021477647264629728405433848053420610649401224700426559738038637054950952505466322931146330279885550790265289652235457422127021116971530319926188373617014492456385335563283564864286175217350463387061450871919164388969547053860335369248789070116128160004008040820952916107086479744234013597485588966773234520805376967020703184016867086741346296799233691654298543251143264487327219048511666603732438333211728999948693594495360413777496715344874501832139994306229204913365721112743657140503408947329973144558478802587106881343306118403331437327775113977496117501787646602993535461774586937647976084674980788195220973002334613689415596482847901145225904761183095585620063651812371767686988151021190735826199444840970423150249446476388722159522214757716754631015332279219239578250712941869428310607301043897058075127494817010396035267539206430436648537059199193448593281577685124860677190946271087112531640171018476768019074061997263732506519075407701858384663438270581057643913854166437253926211793534042327996308939698048743462914335533041952760540945484454902824266888931180447905569628311830579250885648613420726759449585034927901214523882824251458274101009972822526892184889127276785826749605886754293763581697916675625322451789267448946080389371640565381513072458541922297724060326558960789780275567335105694033988422486648363366632043533599215979336429648668293638061093719677169289340219530580960108315378278848360999579232080367899647329380944297337266664102501849045155230148464882574754342326916502202216471101458195390230531802332866145189137464398681521011687181981969702371761023227226645153715942252988757662332166266178902574585538289019012420497022132047331990432549124231765782873827749236869971538003030067095027643125956113484988414855389060724895595525283081518428379455679023972032031591727134071418799252039708890652505165219853055489315421545493579874855999513420472678187984901921013497285276783639135741142037384758129612838371850553936592634010113105305345378243792134067615258726326688396895775851775993115658469524073609594095754880128919714683285160218370903119674477217227347611158221292401303199843637648366988489273186632132450408259182012236195327789596245983082100401541618360629956231566486423640030660033697192444985976010750529682061540243922441509671985304056662763134029555149804607723124865768992468519636616362761139813518208834889594292550232662351796576160935201211893376569520617796877926731142158587945068460131375143074502364258157758100162319348580429918446937197989777033316082365966891211309328084365533853997594553869208610888294591596878091200950469814147831441135548030794513705762286425462621348187605409715076732475956030718101599099839473371986155092331079323169315486710962883914571171602517793796504933641623634434812760575573885375639804045060733959653263507452364199580295793969318390574231532546914590640635042362539122545561228170016405403917308693871806401835965227608306877412902365253810952485558822467042704378780531904743669241900430210216220732699651099277131585835274911943149986682368941854901053511127524221409133271185757799186927561239512297156749235909999854691064103312933081188108478326728015682771250582170764017992787347998900901236060418583939183765661584342063735991306703485807693240372921065672326899617444139504429596944040337508294010200395880065604039366975382405493159549485699961884433747755431403860204473690477530235030962338486006018213152725364617673157954068569485344370812072119733091972978223292381571139991451393456861668152051055886261791214888957080681049768393252270749077865271490015786718114047958716241533587867958449836938543591941122964577413610700595575473003795953241710103618485687284654158111051151662811892846596231751490313976114665795498949536990659921960005096731711258803789469943399736697797749108253751045229132652088165850708523624584502706958516416287703554059429398617928354821152627294422518955737948276934846339385687739183117481978709579546929963297280908698489366011730453871362216122182899030080391619583684590878030315241973747593059804975373386544364550870150495330596511079125128306225554652926334341628515772862441616741473923884145204078712349937288872365938336530563127432634876459643196383419709214772054852814783141262556477911479224625759838943706431223770420336348680255768551056677728351251612736597021857671348389286391421559962443893612263339414769488230036658442168697407218501237867518503275729799408290366756809621442513911911555775580274822051472444945593467029863400739858128916995848873007596612725015956939969633883359614023021166447848115815229304625205455744397950585538789464496143974487268161158822147136735859610134892000775945566552056085065449536849939626185700098546047223631334568725290596684646174479057364429510613890169231989205758975287165566282102543464638903107370021336536795867206571682204132152266992202225537504664678481662536230633513000854934542210712433633544186676696989619195719421853456006316587603041637214883008109153542775183824410820377452683541092136774854085149376225818707418832175681608155524417930104922790990342780930020513255171255251252259875479709006223462386833212868024666028673056761902549507513042936800107319736840209605315105481132814281931119518086491542904194863997436023977093935979504286884361202241762584556339988174216249680064025022472910261707486854323444092368012484002491568447261279032275884999150578596767639279791433443519866159412135725254139949992352603524550069484750602576773885950140416320790665093785842387343165367151422890320620337156836589971223147303948622542783065456647197707135639697288975119600458790072387443085034262710010551800999166625023111422149938531254718894041463016745077279469277829264217993213583315686683316131239644390761837943834457005973420068659119853597794033409427509490769106625034025327748538773140189660954370637707389658420032734312220041242989660344984122845320992603219089580770532951275669368580575659609637352256436958540108173811460703545639200046877773798693501295497643387552226727097179685749420917789020344216465117416206266741888195107713105702866476715311142927274027008687099550645975434347592658610076036406594297408288213851000439811948722876437206179564321650775791225165838444024972592908420878124356401245390932616807500162909682945389491509280438403938429556179329525560298117271423690713745295363759087968544900699084668569022450384710979710511377003521407967833495661625086471910516435555141054024651442995142421078369217306226834553883042530287619572627781270684025728215871423601401559816744999513358451988002152269393768664264092730581424658451372509313629793343258045927541412534302580014109190670018775959287154402940119904804381505203683623923637098008148459904692537543459621480595370070548727092516564758989687721760079913038638201426208276498073763821808889238887509105149527732558269802531758839995342852331897300025787259773432871724839242743788735561772864797324619743527146748282875004575416269025334678702806432107170125357415081964054031357541355532485250229530667746488009646388912178590109924848493258537656421858182317430336885616869413454103147695404877588950930561892285830684511267885138631663559932043210010021796603305474627536320006015950312166401005194193730008362123978536653057567776304526733891599235783000273346137096524985084872599045023052968174567022812772562681892656758445607525080192468534741754831123647874306683797726501575940883110597024580145584820580802808759206225850823943860230925940658176350459299447165451845789464274543881849271421338812404427226270143335931391654369233740340956585627651173278423072939499076681831417763524880926932251608860961759887080737261565590838436067779286233179575658477982660382836595042106545344627328530480648248695909275913119373272720024971215907472212349525803309670049469615746064331960126466571135289648592812771410629067158037026910006144162811159687210325562086764275197407720043426771122002914733565428818220974582430377099074014724120855126976059880702281081377346621908513717751235277273863296251888432141445439239395979363964053214740823933117136361946087648499293686968711906313364869156931421718509504019045790136244660449555333791562048463828192101503648157749711310118332829683296582120675317644644288085275618099489855715206791425428886305069463007342963715459452476661600293709721779012474917976539279840684749336451015738729492791819365581759891102641687377743007706557466259102880992042198487650956353849876582521325204005978174242875373654308010623252407045636843756302641159757661343253780603861488491755179868546439734002043713253407984885550175257326954814491867008942433140329830818523085048221666314382915059623257609197665416857040007988743128707301642505074664151977498462494608962420950247416551528601942155074325842291021664682643246662411622418810935421830922930641232921110653295510477397535867043358829329892876060167637673716443198673720669218614416814699822311779760534622404750041774839764865302344888392414245376950943907980313011307936915727597882795900779734425704054233411669596657953878727882114662141167559250784472578478123380946905222139624842216772145152638940274962174445317520628915778473784359228849629484299099712313273946364003012083354771658752820261676979820355817765894590898065239293542263181151755986856616449504698270702286294955238074015760176881718421583134694958301237201708135649956952674522641398221753535837474667046864496693904623681239721765229109768065638257426019342676166064489647070753604764169455634037814813552681132509340438973284115144783773047096668369806408011863088296944250828649902506339724361050282316621179045580431934048569970442340364195392715438558309695903533806399408739083424709214498817620310446289164209184133887480952197974996773332243748195145082626105664178258851822501109083422797273888148796514527192482691830157565648626379426498663871150199636685158620775301122677724970305877799785656016256004681731563726384796546227013919551943527129125961727533639870281565423567134720213371805219055311317952578389368653336732261649043814361744769853863683261741006145925626818266916841203630040698498599102135892093334783795900338519064667162139732143102014463306947576376297018527369958793438993682205016695954454164503200995472116518613381144240909147248988917011335652922359538198218631338559281943983065748172164574292176366184336569920507072955068527003381658037320421386902460797181160087251547572522731151142935847636825391522967560614908174224619984235155638925083510253781742523020239806794502233923787411934447392722819991721153902441511169102766124936657936225590493189002250728970674741024384711248318819600633396573563778675290827670453573178253825833054409068206639357668797331515341557778536977514060459918114916045211225840681637129536268798765637286952426738577555626602836495163263559142100054746273658956505845392451376463391507002749363380884383440087995102380641570625710212481587011081576319226594119584624654300022637630868088814675091958023095230116492930255492658329721964692766751498433112234875814229433669557571048467275479164638088089884821419856924169167308830826414795972867151768063046473538307914949436492473701394870001777128289110721907515136024018769231447403442812596690407878899810263924398554362615637905841879427739187413663338993489767821429168338017252832534293356184827213734751954658259362972501615068808247025025480185807397126304466413368489449667525362005966366415010625856163378720513092410639207996061534810609526265107224149574460600829228663043235290545088536102586366232221879248603011052217361418207269009053547272086810216041510014792985450835742529580023485632478212175486475300151682945882257771127101951302375974459506724727341834370117200991746678978726903702949493773438231502668928806742723139473336215315725868393186666826095035542730573484735843824765107037157201677047236247991623572870987313580289143256604887352925530866986153568407410516044228035116373517462731580734967553809981760591162025550681626673300425658404703718791458149480483189212588561478432002562266276274804508612204668830260502693771533072305468316855976126831025593045848130475864055169239376706765378147056165617471321987527835127386543606069996016495878408365533116401286273752493795101417568422713714340470456909435849856064000784955024324180512428476207395693038921512335252354743840525794363333364678221051152484894816840015339133439403715302633866058689766898211485832310011361559203761104017025432875899562409746334700461036375747983089171774512284691421556330165965585654712603732291962370621622964175282439896601793239425658829887567832963205712467833801147988817692837605550641991576834691456008784926053932601986750343557352096702818941488982057229751044062233610619360320730408261295902997250443064711115113028078922034790140999057034953301199373579791716717976637679883667241064989914577070262119191817992530853388813714679300062395781565860808911932585153991415567225750598695048843794602304082000066325545756236560107411681097477044287191669096269342550086199395368556215610971733732137921797753897240336412064330871928239915765148464792727529991712988102814574446222154834612009554900755720688261074187499746207104359674689539567217245217364418873074439976737554526844295412457564874011660989986897587745222699830493944081440163529874690966253330472250033473818836058290045553099700610919388015458545237904360268929089093535198172068511244533344984672840227070644874851797414546691366551866669652309249386356436488592039841500969813157618390996818187740628167477216505337037625838134241201529230499599957037953283149609278020748083145312303578713244040946039474885406809866036451470896104739711601434029529075541232551891167340227771838188498259780377463004703369578279113935794123533201221494890009510816894773628239670293566394892765523748971416568055235527666295782507655274845931394751190159257436840234727250904705011478977635796988089023263731760810611072919254371963464085452911350145872222001326771782622388305080188638574178021047251387728312787154699422914500017974342836072387520823885767796692889340765297116475030468546099091444169105284092393233816498119441753071024383352021471250991113117526338313266235457241616489970064277004121652195820351092845472916583400315062258448370557219100992448218446693856390092434384095588558654694748009591265686364978600324518112583551046772149932927706577240320500071040256782597311867103757733976580809122877613445663778539867458479422963561278889887725346496516655661451007212560047548055951935488157069948474940729098648769066407339523256353001370910208592376435129362650704937695621416877072266687462997076754105992927051749886386381651211291455207141768958058423950977868275824018135672754519313305926336746138461914443925984974883894189427951010918226976942152527947593059336207337986606759478384657530245413837602004289833638701887486773088635090743693574474002041802059858358612431826626442093457239852497631096299936532364209526957428711927046803876818322014376384420924193466884559901313728412662311254782955716288130468450544458102300902014307181040627197931531595857955379830564499094855447538825748642702211285749954306666379584068576043144533212147516430163105228059625785851922885509931555101883798626297501560756827926631701922832136637228482630174097029162030354660213874610049341404657944929455473108957734110370994167284970704262571157359578290725541340369063235957759589099222649826090653740527937567183040570211507911903430083362281958151082109097172484752457844748377963202438498786000990473917192918104292622215769980792025652840801594862185803592468043729771781752423597145892994943368228626524743790583121829033453300818345386873257037434785686799913028478041257941409221608755033946328702432770637366588393127272757045014395772362971596787740754367511430314726536664160294920069307694126247309861468955408186980021376233700841795068357483255811066476070356877598213427888139483369741858390034431537221763689628056657202637273850866897114163464261957789271019210994020895902421176012624955936093031235739317469260521870499926189990904540838283378190979244036466897784309259831748635306918796362910808433183089925784729908453127204298115328423434881927723140031451200276034797124623399976730995008997625905955910047266391996549389675070029692862670769078030584554306773685105914152559199111274398246293845594305283526069962986070330828912788387272823971542280692978026320539516580699392957340896969183971061314239092451774673031185617831720776358604621335424708059276503445651097023924122981689480327734995742834207838730161794207037872374163050678163700620024926148143675810216721207511219856133131221183767091946569251444442098123835567191980283660858534886726467517300641199559716517245533193321592890297527494450501337923650277694699023761391668714037668759231677195580674070789318028853257119954375752002695765851303698192260356403353322712350120404320930706310146154914137275658327520068612774787947506346723691897703452801104186581034290448819956761036052412426443660853420247004827461182774429612701526667856546188919220814895619776177268511988367852404848514146395937800548992652304524177117277023865826248954908023269594081573902752587583809296112555990603836197096185187666816996851700303403200375128590442423338284449486355286749359687088779107181330108004645817170664861419434912439132870564353639536009495805155723829048449887196534527712682817467200348707695503487686162852538442597852991861234705545278346321691211247609768800693870439805217622354392182781770417786734597558020201269879067885414009131789563629975526283537635441205813119862463610853423018977103598620354948702237512568058830316367619641603266819586368783894434677500978983999033902655356130805490757531114457083305282377051821742185390866484095857626232277243848996782953181761850557812809465006295243424165254197521317818720295297201262447884488587484902492493481284332794116705976906693895510715922924959070336576706799323787685801963058176160692785803611552042463389776983208945460023071124434759021938666954138276484003548655169011977437057911126318168636880110516200165427900965735263882095219417529830646347505261784284189113628374422719483294119703603273921429934602909008629173585251083802057233669470190421189550126656842288796228607161075984056763274209531862905811816669313786297326603432700801403788502980886984497174909577644316213880977034134613560779770986570375454979424615138213287514282685278377313049648638584208645757832646088560403031508739893578808829230807420154822649427818296443400627713650280965810846885460960183600813524016878943570543657190590376320684325909297096184191437074616112378422765599627412870669376628710505906358819691135862046903835136698238467457811607045679117584323153525164239693826695608973540699371895094371681017607651860530315777840408500001827596659296889420046188183525267131304513123303525775060125221449243512496864326285628475346501391765503856867857612906526985170688951742940184761324903549458920693725845716483761217287440205376198369267965060480158019718188721036454655730402177590989617945674266864542973097069422158931488487079022226703512708339767246023604381497219773198790977943387097028279965632698829323578454977806323055027818194529069529990366210899430282722198888417318465272157100784547799980046853952104695579997709721840795249649532791312378999052553353291036936507758127415451299757209164800445648599573359409599524534061535327011277118745257812073555516247152665693633278494316915149825113944949191569930577623413114871675251277471372477364615455092440964358154268241485468614392929184218701658742442709369956546182775485575054852032815959249395717743202372152326403323271321929808739719579934090368402232268534348177285633670479943961263705174945219001531482953122405432770167508555688072214239283239512153977290205844362203382098819345026847975967879967258743202551285960601764123373714411357739314489854856924689030800180471731898695884481305967923835208622779220727128064797618065743762813412329748332911524039626202552082342314243783195557618727738912807164365988020015854303341718173620551805965502415233670433098776282959850495808558464101200762077134559932648180958190849234826499359400501426204656385250211192815605746811782794428022044566037295349807588513504526349202182119981859908316322046303417695104775307956568506037166234956849193240254083181776519100535937867631332857932393375685461169643131351021064187662687606812523684329386811951644671074175643863033185953298122407244448683013597283718034230250689278669652213370558916411913294076299441910365060391440787334866122544322935111015018787682762280170040451721659494810695303839382726426848529524061977093025780298957822481106695785849560087641153173637679121965623805390469641580639721539699302073889508823594663774869755017302855271632347815013644571302924329914621540085255843389305393836506783719886531477495872627456866541625905271156445959866107050620671887169958466108759949617644492985038642182609594101447491521081965327578762221310604530456390943993401532433636995865358589914076530114619397416685931627195041069736460677688098797248293811051980077857809529310003792287070486677255494047173150925705784049354003485387119568725772484105262762703249136665418480615486349439732199985000787269457383780317148759800682938556264036010037012854883532018609708459491787950534885352256811334599298821976885334746867978802691283012000872020575652989437901071305516436629499926046512774094098367221714049813019920299840152199798237538828826492179950861977185541111966676278219948621790508899100109752077726369891947652605650186270073144548009338293367861950993423280331387994295144205674642003454564828945878881819459653594270722343627670213347987518181790423545164186511179540773999198814080922834090909533343378623706434461183646660738925071088525661009799346105570872391057879174777573527719610660053868025764747129471757236887285190054610870403876595046327006211177359759890953773153773395648095400858311003077829253265116319936535880833044674901897271202555686380870689819776321083251733317326583728633845969137996887022817696785263985792994186431353533523367185677699036211277098194887140019813791067518181728359037304454739435254907285765851271173439174980603188677154746326269565659726623929787850757874227219910818254475406886339518870279978960546915481624455605772552915547943484595676347348223177321583606643089556599252382279897971176029230378776545483326899527436482391789855021990359653653368532251011089914675090461687130631379290906554444748196948406738801838989160176788795050832804614520826488663498339867691186204957644296208785744841237783741627098361238266155398845915345645693760185200419043700666916943243565594089861194448798546868272389941530507866070784604613835226846106660996660430108003837853756824204796194115154518682847907076825372985352840845950393056693260212878928466668642002180187557219694904463920588139758019384041452272808610558528598492297236415914128128717581209935166485314665131057286261883889203723567655800045803168634164824310788862845459303610104125426180251536300528940549611988263573198688243711398140487978601282137568130993483795026806183770956135337868910537030202127308466377090251203647687103322972897542107522717314953894994962351084876387435436400761684772459439011657295560008101547626512309829481614891024219403312105877828976297542386678867962702220141033275456905208095551305219212721771209241707017928750518285935402751529789369635588059375797447950566747106513014360670031214474348108630644303202537327612126946227362723287730157812863114248147815472273063483010428108563242153621258307287800840512564070833551504907294419192992224295006507818762502047223380077047967956056677517541421927702219156583292061895843534302924091031450818037597001453372750337259153208102286258445570796838980983940126261840704609000438909386062748439341404349564533364798086425374629262049353139978816876250277756440742848695267334122821725589743450661074201288128143984714023592310545154851020705528445574175852266285100977228175626412259894778722384367384481817272326866165536470223904810562068961755699862429821167023697488881803691886159858829631522551151682942943686400574408032574614040724060796937445724669557094260676825106684815704489338184565036706077370857013426391748147685186105450002140394877688017871415824629288008018190190698137616672882683318964201105472781503254306822412192513070223886128248950504185600279194747872386868179675868306429567340260099494880551840805099264028498162190108584455058002852583110245232438677322146413050173556215122286182661736959448685623235673422307877809331754672852165164885755547598981583834654892894783202219918008562848312122433459556095802794371584199140736706567000858891196391867568427842527656124708463239982048160111785525020316707344981967473315878027099220337348486776041551326001921483148957041573471394607364137690412679930074854352691365233660083827294297786193835384454192933013074804414293551286116787715685153317371834029254908726396146034496492829207125561519725399884206232150409372155319091196403518550814291322220622160336114557862726660605551351699268384209199957891017089500788705834536418178758094143939955399037976931183467519122083619330984151271013635670656489291511445697479887163109208279755187086137065480046559149483715114507839240940853407884451298047571313528443493179591504435268311555610932850858308057905339485673001655720938249783305729639167256694329193639396460645563784575946201919394910344260551751597030803902630383404579967946891362249433187114608501594641698431713764181135269868966258220080541463272504037687285286241290119496124853667138239427607274092681981154729381621946422097558611459725261463853485019876313311864465601895769928615165098277686914490805449882327972798200309565002475996286266966319427612461531570279234109318428008478081660450031289629647066522210886977901680969487909877590483525058392310280829455821413507065035006907421162060167797648536510629958240385654754261279323205209246854239829333230460856171021087234520564340781400032783724894964368901732845177629799752376471098795770567472510172591434897042757462531354018330852693401767005018991867033000200037977980277486367506260744779306010808445505691276322855108889241393017604157472604435874886541283875978688511337708909217213186679176513107727457012807683322165884275813406456405237025508239806613923249264243206965319121527540954663698735926419692113419919985339064071765227761012480400309207416173806461535380089465328586354786648069656250149577596576988394316882496636970698514754519885005696024202602003646301444325156920218600142125795510004417690830388416622920066447623822872696672141217947255743455171952756322015932351711412070052137612034320507838756599534661744597583752648722943204662831358361834060548816573039953482329146288052537922348102589350968976963369500769719912408859420834455333624372343726755327162650646565528659224058147342208071592005607381961749186981759053560085786399032619739523395919872490089538993816524040975920723648499313552952022640449278551736307665567462281209516642358803667669503309126752340668354373922505391593943324216935970275763850063164102426811021075196823670784063318141719506817087177145582398115204835406777193210984318320647328885504365744977951797399726240987094471586088844697818945111466351857084714435901827710276748231571132693533341831582781143210058391981538511415932953666117347878937996682690161058152614797791248917037836797428016262445048749280499192334720411279765568898158669456128363685376490505668072939340473744391926883587423266982956637722487465462469428663687786587859050020436781945232682469909157027963048338787079088442452031366989889995532055686348929702094567636528129661469572439172554309681008814529616742603131513580667417320920671716935543655415182997933662691545253852112114405734809692483859440981363279032813766543427504963630414896784501435059117436919743688960681900943459642769309648798462256820505513181462633128907548817577607987975550186561414489628944949083568596702892421537686359911586651135685844041067586946977061244655899812845747621603982735389863306764139376988241157702766843658696964776216576657911302355184493452982468839570840949513026081830894326449688361961563606897918936769438867777177922555599565831541534704191983390952245042942213020122111186127966025120653361615517585356642971912231261605324410949855464279544286746371160754904745507557778050152881906356860403046213462621739420574041699719705665070469595530935946440638518327212523073152760259626853430665695624270697817618954504763179852266309983173354171840199190241453025206785007708948483576292361213880900218758500184434516497203393752632314662750775100130048124714435171766396690828574033346801921874373037380122391192230818335165383019183102315636447297074549440610851200653838446701180428605111779495784875848043810864999565861069553643958826137091123686602909106657308738863239468149717427781597281494520291729436130802905552496431809433201143981091294514600876808408095182566645185162930162824873120627306974949846274584503009873811680868670793965288457783679832738279182654464951811651938485567745281633212295426982968719115474436214503161539146143815232807484648315168957045204981507302558544325506311151031127303391979232229253580732797593221627952329824472864180723300876944030252240521163037123816766429895874431768327315656277133825863585596640659812935583099534007495843146328391747035641285990241777579361073083526140420097751142095942135384666890912089359460079395264792255302368260561322677206832692464107114406799248339015784223436559957810551036800235867295738256255399025281443399359336858723358896676053197352497060761210459449582044922449915515091336537340719640502318727544606231687215446467626255707583014203747505985079367330106583472320889048372611398999385151024895752441191282906700262379827793748176050009778007245697430478619539044772801915927744651226924760782486151434961023101177183637149474340194715344568657882694469387641868735574365960861696729290463261366191738628644984855036343457586044308071366988403865683424531128424138787551223887977823515418527644824700528486671248641494445047902323448227455392866224057611939236485880909553187154535012705308792902582806256067566045736751184765365462174820908373809127518051865180956296527466406841173699924063794720939744498602695371244419799105046761084079660446771273152505069375929285875523009277094251112076491577338547258896394120816676304619914664866774070680691729121554845179585449933221005221105347317593533632370671544996352054246200770851058846614116935368391946729752303679634197925590772024730678718436585071229786619565755637807025300063589566557666111655184593498827429424823526514766348716906310231352803538593159803770471792537482533448911918756568724425602460769746060100702092316702977171866763350379234505558372889314347551483585372854110364706134073619386321733252700443264402512472062466048041314175833856646675146907353278824115399076844896655935411915572408077642386243807408028279060163717218590956993585152714052062715679165604958653511731062793160166550487812249604304293374903975626597246450546795972156833505755229252685288445954141448032702237964405062341921854574815146154294503436570275658609655708747172703098838904210072186285563061348921278047876939898151706243041961207977398398186982265483221111826202369944609841969842216532951895710010286791707034573915002118096593459145341811132688221343653827616969627857428815908354518749890134640138511373891976352033624996564939503239794432853711543306196484622785699540847976477940127338357194291662637751262149616015822461961153748813986298070601943185922755698233524692372888685170318937381529496289773864420837760938080078062186104042762050453598693633854811806326971079660083612406372113076830893000753132674122319078551411594475234648115922403338530144993740909674709859586044585945397213042682359543445263295861315560505097447133906269667055305845031958482207689814577450720813470737175701514042446926676261241832281915039810707177486360642079896901123889670207371059510957363685101517237728302418859494373054345433690772177605826390962238186407644992016145185314842911772650905676634823340553475611735028428424716841076309611535595984970381336316210922737913926107282994738435675479665584846444041766885852610047639095772572418479689352319450839613092470992969509169177715341267247764199581838590203856236305268062225535962311833932428186743342454276586727595250363710540574506296054378749085311641137168907670071970303828970826408273034671126746959570007378044359796020756331613430037079297408499028616535838105070670190010451760159883988482613404631808144397598318973923825526412670723528890726063459332684029283825847318319571547512873831708934467909582143137644939626559456183656235033119154170974195635202384368774020521417188194151894262950390521566943600416251909144654374488621717535101151107154537713168679807916193875047261957794975292871950558995939274919467952400273341804706907901217192598402057230020471836765244463840224046328728879077939989409038395657045997003483888714545065398298559513822439202760491061464415380184183706268142867289990607067738536531668221389981934965664633246302127555597980459503390177519810426689697020133508895699785662400903503483589257460343117321118285607290265890350488173659455628762519587636817153052039674505263013837901206824458563756148586252643337877554102799156830869269270079717797667265035621224509732391840890999861770160127160592330368119832385727185470259261053184326560840873252019120742436169848898670466958723516125658996418631351021131390458654493967193336467266082139242395321522941684629135465687468132148982988454953275694474213198470517664907930807367730791122393822518483837582506916086952209010120704524797959844006537395779987099978090266833991061270096987266227818531745676422631931887102266375909549724088551370709149993854681189218573146487396366743626560617801017227079308141621204792111449193843688104420128794831469073173757493820709233999995413971114455877065782230810051260043690670597130751781237779625199391124152654175181353174518933748545110571074693232080683470656982134662707370830534200924615424462752456576233473842766238048942399375665265892051659028748598687743588653920587279276558086359907014625234636509016197653581384885781171189828838341084747079830833735567148712028875679473243230609603746346873292822594180831981149925030743494043515088484886321961889586679002833551776463066777353270086011312825064043770617897817626264105768924755030080214759390958989830113746284874110833922898674699478751486604391524142729100013421364374222381186461506309388811523010513889693754464557475430949502721021823837318677345027286695079952657866058790402958206443831768613760365627048313263264536990313307976555277002109007294691866207803628240279617273228266407556285065628571248351771393891074016719695036104470596261604537426860353073739946122672654068784026159982168942123700155650940598543485726879535828350238426965674594801736635092561367940882732879015816480595196633300659436886370484877442879230292135916282362371604949295554968914785595384103101173718015994554746782491047901168242266413998769209717951244863950330121414079793980822887887527861500970965101690958811503203633692329417754027982185531365726725595677351297908620636949509224239164212008456199847933341018232156974012169497378933892778681282987612029210336167118086582113621963696094353098285849991807758642619798365303772182928079036566841731854108377617078148720138830193842975897988338368267330740401212942389169052902560165352400742945484779742513687320255385123776496523076355990440129946441068637015643448026805041588192527051618695487068926751929235887967251543390134624243599576398770559199802698427584578289987464216920665176574025526591763318066650879097190072879334518877376059010807416630167459985139011848141373780523203810607821721163513462696448854029628271152100325171530567830743294046190175091247131415893393335899858947449895256585047788246103511014636687265883222703766780237648959704781536952250512658758182650826143068692134077353074278370310695645091895649572836606554136911325337110486391585288964811507434888779677542329611933229473210453776422158451958359227132114385769474302150504213765831892259465690865926576441452331443103526686054371691384252959699357760300464959310496190250613285398174825181791831443322859106538890359617864994722227487344602351382209432637013315976658305693196133049780889170836238975191981698364285274734581402235950577154537992687011603246867905375663962978422699300392626962357356796861319137537124687110333301322001769031659130205049762246933845744236954202631940278976260463262812922928128719623971049439890044996190502928113311382138484029500941511464813234226864554660611989167000179129773600646076914575074743924335643748688448729939306079227692474329763225044678697890115153408888094646716341312032739608542918928089818699050312075749015886709484113833468855103419990718523965537878016419111492299206184154295868915976689545940179596481900904099048174244250132636030116037515845341595455908159851505226124469512216892636692822749947583041658701530121308866896088074293942359891785437353295810579399648478621940834230251084405887646041871065178892895086806638520423473237088007565649733608937609850462545244746019338904858611316765731081888219708088057650205318669969132004070265589568293025379765286969445259916801148642293379249651126081656378339601961120483787831829929327250055780566000203450627346141586321614554785945950579861582596324313207585586827630705524296715747966791450562073507610199232353437868636307693575765505432179285775882873422254436062057518680293377702912400169087548636319010522469001213431187821654479492494221447710212734710236867184501188656509214605774780060375593773216642168746211180393199838656965821612811411590557402162916450454642731102784837706494312295471709320059762783294930594501181873647909346639466032693487934100298419165524687006200549264695551356065954439540885720042237401529530391457943542404649528068088969514543292534261095164603944804567896244871979373342966470224135094839126830874984643348093527688770643134258898184246327244004128511001813021421288882412437104775087851878020652464772477073668389539584005225138098421488939665300016213648372193437109597143061106424783221595331337250508224355194610687838921633952804413683021467488402329922211082659098418233095913628875005735985305763604651275215103633338265745051144183918838577183626587242509369547664505141674617841494707575799391179567899606578261707791757192086720821747114571383075775963783207167203073046069756133251134634215419574681816011622821577595136647592093702358476524768353153262235749001051394502908490515428173901383652681480327603461800685528896416813794554872050393135482617530486194906605693757108726865442473535734348191191644063558979561519398782012817055136619595136552844932861012646491298240806108938603133579635444135184577650608506263987807992732804687553112600000681840658665642988414861686697062786624915142824621843766021198008382067409142225787776535309123004364346547263990389788949275612679657276351798707150679502093928276375692866080361658774898554647866398502524993094126410496892806377944150175481948259540802345076648280069533940791809853451737465004017027294933239999153863195345065816138540927522982427797448046901940316754952268708786019778803866416384507075673210803993718568931353603147991641798740741381890748439752272159420029132561936144276073489238723265491582554338471596352946063415054109808352038801820167145420209388439816774994315619857817570344375752650920414944068560030047217749609806563255543250281411410872970137926768707495097205292495611440659661854188994318841626853840823042395119522461588012727063392012967327829573948405672179150679269701615095350537966105111289906830965816282348273572949419301851611627090244424527622826886408505476244611805142495695783719280326658564305773166204159710528012317068946387794252047514579806718939936857333542964199717495817405816356581847061001673684634036080671743031972225932965103650114232842733004765697656311642105159828134704553940883672706496089853469038901193570274476162781350573518132412627844387119860718200755311538607131203542964571375210640935909833407749533464491828274435295942102358753289757528645073422518811699076881341082722000535910004145934029051916574314678159002325808241318459478734451103393990885293393020794011562445842492383009839311891561712153367031609505175279182230765872396096545642395846255596160323723018118619010325490600018453208001484785771333596088325121100924787839413643895074414797311997539766859738340110353718843810154808370988458236496508380946869770245496009038826437326001224919808084764187291786858908081712322623748904352134860457963775138854952989924851243330244936942473302014655731343790948424345580388723483191480891316355475406753475363529840658842490812435348848940115699420439394562999365466458262840417472509862530880311021259557856950000848988457601722475634300550178420731997488880568716992790802547874697030066631948287763728588450935149453800173219149561476652120473869447243928188406741421438996129035703364676380742410455626315802529200984533876041214839479516011748764338177922035327102490626884491851460832970550161599841527470795635253126195062914806053734739093448253650787666770457676347728892535107747065474446859622930595703534250821413655919793111478473725343588660674945992158103592682283187395098378356169078352477027453299680308338457192089989570365800371515408825999253547760740972397729749645672426994429999886885439646918047209008664554069100525409659712755752926846180160691321519537407017043093510883501205573372740093100480469600037890016205215712640392729278044941088561454495876570859223723710491449399259748195205857051591571325328515313815655239901098688987007506810540049247768480600522352630218017067320983499039503662568117179026697928688749608820595981651345908726258151838186910113689210399823312527961305509620369460782121768842188186540909865797216743856020080045478792687363162809419682277647607354298492502999659910079612024731137361274207007796023933646322734326337166226897321205032721828806278925856815093415154535084232015238712807443758824503580121322490200939640588333254733231943467968662763382355216829418430283890218734796821923325425680095270342445487245388116825849690691561022088529832999908621534942014337504677989460351617184990710873685881669056160396852452406789132735841252048880280557326722879393577718633214364974897405570678935783052204390873749276934772601528566718370921694259583060980157203754227573025611264157154774193410574182768618871988241855054991246039821408242274088651268108928463837802231734727853715083636603283987759998350380703801587682882169882914144615027896951362466109964789608663746106346812189097507052470459014015435122907553156837739606881689931849686851631162741307638525883772704002397960974237544973285296276929402899108853403720136570272386288856703844969123228832485547756194441516239711669346620955803939432993822995446405808256847220928422039530108601361432670285927634961161233254822747890191500226968946452490813932953868956335108418289407462094448797479199741105967029575712763235245863325210274575997483145809664254307921039120318276254810205458045127305345916375588317201759929232585166007800960855018959039667577084219038820587125998534680902931388333456340101863545780393238742266687544589688143038179164964908178273395661938837977392839475215971044356737104876626331069483401761293643392191164398308195166560167897183804750426264529990235469662289832660298213611406803328898264776148378144433464745189985093100628263462858970508161629285026449905132995504607238959740561737796895036019022810491254267159030652502184625928277788794630722562104983846746904349110387824747069805988551678105436187019255926328397019386245185878195676482802618939056627963886790953890706186507876512481966323450999005981802179330465167499761192287849419158846645486894089536467998638532887761691898515462788976456729446207943921338459444687305077735578902886458115762912838150031432743851712093107988508685936358266722649123874399853433419423044456786904477408973194664236563975393797482072552676192200501558581516308814050467323944907540105062894199330178590141992892426776008891050493520551183106598764439394035263218566802304421150745193065647299720217095281845836938801582152569043136336895910288208631094726294914769973603840490981358941460534153993346844447333836196671398074315743216884221934271975331676119839930934982579721838549117982412117750546527247906594669885099699595113386808863489913985798545436325675712134112938169382352521279139010946041289538283227671107221576239715495321495463724802562375229903646506783212460448314653115385597668937870806035349633362972090681665282728834624323421593351972566904251167763945145884314799778598546702970535996862037165625691821771973222970345848535406290044311038322039016738937501795332897159186071667709875967841068557197382081684428909461736366182490931327129408522837177211410858003532808724312767572176712088323136663475595276148853421660716780414595681364272353110538839839404413566159789704470137894603302319334905440646029534082434865350758881581566844492996259284531899854595431370196684470346579778286052095958218576069185741088986359921532575171250135116089264415615352116409326463512190091420902775060532212220870687471885483095506278866421187578663089482703230072720115735359353368656490401513035455327501228364058607919136494556882946572523245146911056236691550338789459358161559021463086498162869474328765994101280529610110750848546440246622388889950350386200009990864725795574579728682651477472845642228189368066670072229802849430094671662194373559600674215470815538880900391686364086169598229675835109669877448732117395507237745413000792529056993057556179409489825501863696947937041757287659614511735445773762636877814473828360564138430387806532768504460206380709992710710750423749621702719365504324548039647025404114699786112322307488954340385162183024426123512050582757123912696969280241731438334157498333614762017844733181131936961467093582534604595899173823834782969117628535799722479392021791563090140795814152152948582093734402525244220913995226922040417875916303826721710669339418314244053967256057413238556589134809246165080998628927011118794119468125463659512462788893332332997055198152862788894460315741189310895815674288081301141711897346261543398127037825099689983178352137555308668473092009897778597831213574110293180589847635916932934495157831760878083932503088289101076466981922480917211378241297114076809725255700749754504329596289419682919194150265315563609719726563842600962172691103340625141963549613123875361260034862236308147677672558266683575735279237515588568942782626264874147687816115355655099503689157134661278852599944951631180563026459938453627005889343229682565297327443322457199026467213899668241552177484097837360784090424827966564127252593875731498578271982108325469378136446621821365894205814893786962955404034850568491260105475223446955899617113947664638780002214390102409892785272642053784933789108387079817193571957665539900820447006799663839526102886604073607453827865744880320713171064123949913345874935464013669824935642000452254976706013085859644634413242951863001794236881076435560201602338892116494330387508348435500842287213184785223626913289864949286136537072453474251655252124365123474749200139635822360237898849763007871877592950112579966266951403712083151440365676528740117489887746102744069496574436862684604725624326404220872965696634356645998512160033417944278525794386554297478320232127261986291278544480888140800466077200615347498609850051594215158136587599131924352944897431244678131063220375626046890408573488955137784319657792073385156988175144660284539956087989858333772416405308918247458923475548654879388998509207217861469838599697594713051552855158596908877461232783688232173579677828444885191420548378260037779111072745648870502517066668305048678956912755454790898694360919727380785988665102812578229501940662829214171832247037834517002931098290440186316275767371698135335580986797593340348024056497530226749795113033063210258023138918894841492441524703323316743562594955614875731060437929085072147497496755876866262086050774702455264356314377081441767175519383371560666636266347740917858346695604488919746274640668542569515023050120862671928214502945199375507579172619747966453743694393414281659144405672052159767715966300837362632135520404265754095757733623581044876409109463184504566052325101945459608350294982045614333233002274223604170345239777691440173160035914428130319135503909324154985472628964166756075010160971425925848263930569591734518833701467450441931390928582720407278533982299741372019599600842695875379611961974217165897101759109689751080447405508187711282470698040713657923042715853200725313167762504703842257889047786979804436547096733890063130890794388819279730079211084835730089934950141240499133456876389204663875067308141979767672237094033480592721015626054030033653462116398866171498812875525007580991339154338002832170175454159029132375432534695387870753143071802592769821799630641112928742182520163973006566028055543822694981133553820154037985525015555703100442961820550387291437902926489139095456057927756193794687638286911419856046162449153479580140920541971627531552366472154953781897009103369086903865292323898931931380163006753799284028517571785605029935287696435327595678238662314043553851404638401320661521687184332846191064312853590989541780792264038861656050238422520310325218689643432347931452751904526519580431452019737016825198911388565277070675560558774185047806748505187660660070082997755351249906918819320533785526554367347377391386825712191324136053225153109075804739887103291946716040459735322025954444509293934786241133234281247503792064447683291203936419731124521872761515705788757613206738041257307383898295122125183249480553242048614571363373627695624946143537800210504423603613777443265693676336292878088582197853884761216886857961418369645563273430686280749637879341062717435064896322567320221648482587042298069064400556255915004949959333338055057727596277930114539470211151844556314784973570348018459927331727412202136444935191954993078717194391603562374644384662572271747105727666421470568886476628800973603681454163871589135451427686953743702167595205873209783827045692028628836390212300516764814702143876583932808651248314289783578675233714401212544974140679790770860123353422013256865501725353514812653407296199404455253797520272694699042972034316727533754613907549437313989124042041402928650593016753317013229149354514358686067448795178232291548683233204876806577184753485703305558601776080826033919999313451222107703264890953775323161073827235435418052822318327026363538869335991961042562955869583165930702233674426067110514233548302427293214708578461091559559943368341797706731098395824398739776253414474081515880988009563515689735602032662272470874642300285266863457535470756441618318537269040776427949747713734549046466780120376363649081501062919887420304273358118287536780924794573040710011366829572615022961186008830698020039609870871435755128031667954717713751239466696738629071134343157020049115062021569762203752864886591304582557388411092940425699252789936541054992567825088837087144269379341550629073855004806902920147169414577859859755626898248226590271663718777107247039101449596762640532301313621660181910603025380083998755794473804540112402609836390414679538696431463785241126106629249640365922686240734307583252728163377209523970450244911162628615168847446136260790889503391473145113724382616073972564639280703498409729739248475186841522395348575388973878016943918230787575347362024319951930528697734012347876948252273717555143590067095932122425121986449800616295608997192364151632432622981160649443514525679922610310121048351672879650367300023741843649906168529724163346551852783406521754343744768136912898401994974659460194782961625448906480698220955646368110945447962901246137920880766941874645975733395848311330777698608589717255945810247824873259200738163999121613369093700642431610670561204530397385870186741410515008140943969198510079561620780804764980252140396777471632677630597979619225199100693139643700548615731141716815862122481516978363925717221725506363564698794508215178480164405316382992323025947939869981475753549820837316614211832556601414060895541397779401874444799044604596888469191069781795314187843449460552614028902835555871120675523964557586329552123788635847629688022362015630261754877647094649831898215823843524526587182999518900271148318785617043425685022877020532347156974961733263971029581059322609848951844787402294046063022128316731140371357276650401861072428358449806140339976555552239315850507925986810366529594056119380114352522583214447726687784994350197641812410061331895716005943421177231691823549062217834537117328880480645826816670206138385547444102990563387041902669200038754176166030376173996500000864875444357922248710336713401041672230216652250809770481666721321931941363503836107961736457708761465499246739449516932321060751701274512814071482066329654812978774792246426557237551956990242925788055770269045125428428366849294320642903389728290474691826872114763756197669563774124577691142213424497338919611374378252842835135925806672145086365558423480040994129480565716739379779630923751059690135972471831064179478664483178759229110898508942010656439647092719773707530058736332830604831753236166839528712037071200181048246255954353463116440450041724671490044763977646953942965811216753551864299588363273655912153215185794921698564422111962165349468067583899797808050362505913687086570859241802096275533146577229525487285602969545148298198084708655557637678631418302463481224188874806018860150570285437124636049559248520129708681903830988385364532479445344825964449800866911811865559743040979621561616029697023172860033533818221461952945185366134690731297391801736334354365506611285645616563952998493672074711105274539611575895409056421753812361126068351976690142190097937788325481551791654272322746861701823192661707477328997512363876756701358880706047832600154517686877683159133083738793994272988580498800847555223454726419457331749559226150860959371175139022114527906241376579500671874638662387541645400681267956012663927695739072181833697639361502149381909727825797180528308491900956411382735579092562910809921329814060361641449176949050595877786833493816396829446034681694986732075160458553775569765249669559547110719198090223536056054868097293318001353109971002018953541127903944600091462844927337985237884870767834126187069821033099669239586074432626698231718988266889406796749762097111449680413791749379473572044849029553689648453487310955448258962541156334641899057741401663998373844174726013129710999884733398496122913128205978710439798191516792215050565296075430445034624859033841629931285051903510412357161263258231652236191852020139105514951091387442409207650237106826183458320916949613393751151630435693653495362877931325744397527327790922893046696135368892285428890561332311898172169420525209580245300510472439407278468741459757355192897881997117451626298180063165665507809860656782299571736602156618564340932889384726534149484758126849669547965249891337499745751305577758254171451009181622882213081411633840100017351847204778243561810729640697171188493130896860763647583102465664771846797794193213915286863461799220918433234695748149691286834572864202519562803331354976468040414512056355785179995434465575823210166157092659675162516894928889276307877191579693377817617536437252605681034699480530538882929545551579919355999242272230046512932227138446948067118795651556332250774833748605240170298057948555402034745789751708742446393203094634805211133858479122624631723031567789805372647229632470734449596982330063667586241674095534524713345126305176805451754004992957495217613550036491834214933042643322609512998210208504989224864550778964776315246383327711506164204606286751614962235456889600183227446045566315863819937164281177937081421737776583242572496084279925780143591571092136192413662331094540216845446642321292277188524385813758939029923628318144111486067035011673378588415548540267604886454839940504208138468694883709833442334602294942650329816453832717774076308194433374572103035496955970848977961342585346385270602850038737756680871634361402814469812632974953601184650167046112632498102854067161810425321798720463304306889945514900651426402753451674385416292633027132382243488273849697879675339350759872435329849232252075713808234778563970502862221177791623791403200557191700108553247626072790106661787849046082103577832127201897286711456107924411061242110931690111193069998244709231765991940718330477232506598445316702342807214962733253985880489078970143096218905953581503610622359176558370620137497336381365998456561394102084724419442744944926430425402382528540714587252358920566605618455426890644082717111172942958859404649452640681774047321709588103150454152504993313777678414831349824147143113972241553025645738169238287478328299304498593571849785060975088292689707765003345937192448556358044661922817863696904576033069321172344070433824628748526071258653820462986240621995959021171745865631687089297660881199887005894470519106983840968674405827949260953025846751393883130942394119254368729152948913781429901335826211668727228536097837685919085619014454598409634242784860221006211416462141935674522793098709402578568557720495180345895342305150945777930705583371702512147458059329316443738183258626980639778012136326936237902615468519356474575967916365841509772204141162595562291889196844988102567579810269545002135228220947546523769156240609091491614857328292322055481367748225452009824499582841901912537514936960022945414539636754888059689936243009567485716068234597337389510829344274699497022545353504419475617131164980586289383818318764267170771038223964415624393792119003680996933202856594905711511398255878277443842229139945625139274745557961483054622794921848034454169632486401973973569793624109204365433534762871193673874839774611831148306489035500671870159097209619175108145687368208821036544882684847878281720782171396266236216411255314183162432472815356789339448791052268103890839077164229966359257237100474975201245467168247537658680611285117868213136281509954278425006299147606430616076769336558424649688080554516193455690823679543349072544118068804774624252532431273083676922752340563824331888591519188250414357930536000082652427093382786964529911722866455477309226377770237083602441853459649798482151542961514115626286275961790598417438382984768124967344157558743403618792618566032302818706935287670213998594757973099856918851982675462578383776256100775286360806606868751257098635313238248366133478251870756041388821650835340502914047550766603874752925425848373225155900439134135593525025675554030321074020476303790072124034126799639163010035415682876404525964095641797953270303038957096733269220462239438544703742882963790546479339329401246054433783857218829345843788100977275418426776733341447238439604267978429194657121090709567453940411490300284651234270129167477726130758696836971441333638646300326009778698156640193781829661537386895619137724758154525436667936786610174581039133873172610362088379791189927916285014445034048346763993943371505740880128208283218028358135286249145241181162489873145545332179983280815379040564902211817990797165588862347214234813329386619753306059901006553280732776733449599665695584951310737501102230258381686301123846415211753758934289703109373264455295088424358803612241294934697104663514822014219749594111612732857645707382274169578473911650473796432280103845224662354704669395817127816557779307455965697964089690666419313161331190898392693939286765474241268126741845960175484816524943891926065047750862455322234743848226372755938308549703480280207438217064151969659426945957264815207910417273949668868292873445137857642975955726601579509426332138952933146161522352555740335091325196520231266867825820444953504069436476820654074397476401629038054236782501413916309088924579757225768251679376645372965606687300064672139864068156427426764530558514449283898643135973917995043907729764484415723112522291137689174380985520213548595798873756506936824589588874700006504176770483807987243949497354297299009718655989166701368940233036478283995832985926405606598374128484975861840078744916994826384521621375658380434429523302260165492120755121621545218232042858061983997200266213232077704711537504677529322384407587396930940439406524329716422285450242844427174491244989338053130791208605874303518954573270911011026937847398307407981671717240458975633947373293731496007404316115552381950360554340586171584387661202725518702888937480373059737878612519613471875037232635565863359918043004408191765739265783657242406609505820540100764518336614762010149371472156841990187350289919290231672406083259760147046462737994063263921695685908358613434776959035051446596484106424841835024196281674077100116182588675076427499966564076018918956492775101227867595634889367484309763511963519260476880168101135604970744019071414193409462209688360857074206586333314289797812273321429694810986998788224723762497477664281983318375211473652627637705594462582481462878558281695516171563723903135033467767580825742973995073345419827114133993063288148096236852897130278479358278620614405210713292763949065927618887194904303864025884399847150975280922530529472382950205945538912258910223456937543727638278861685341969681280157303647356315153866734944026022137914425290179615192575704968460374852417866022469861391064819843696407767554069607217150558536147805325920233640188839977847064163677827500309792133622696979855251098899432061325813479674565589112229452813045124720711378375977065895922977216174713209087477704563338434975556307554609105353590600826932036604566926027599525039061498842110140467727217768304555000570228793952488940499347387883723298771606880837108432730063960537991422875895727522833604762496818779949900492386411047321147762935218429359828652253695539146943511464108318647444462735189776956809062034465876172020649991926934248787123378845011494190426360937689187796483122951276425394706932791633589733351021840692218300800426430900870237179839916452934537854360646304484518064335718174346847264353259981302600189248810015437840606626517008726958583960193479259776074170765949240569147441949678973843297938476905879335481092788236524325025824067621028099771743340201073780093775884519344785622959346978866429821942719197432829621199335548931984064678784292565536612716054549013364934290523095989804399952833905298597488209568119738941907662633816795344371589351140342329464890815110626812606777061062903095442036746702590661396517760894721573822071591225943641408972389125558865562359610892300559327878349582002438758956405499277201844681837178529076995520631052672318147357301504774809720690080970694654987288637398676027394974816011751109430663617827067779445189768968553019385061182642911440840175905853510760599354059801424425512329496938618728900688879346338340934460885136487514659593950342728935335843447711282386746685127656546062046304404643938945198424697284694214066316658446756801015606142470392764241175358303800105183646674736021167681463921973413972554032901794225577458037528432765392859936383264593933217269252779312637205137512482446316636773423502371165242001045252694565933751681844503315023288071473717344404529716706999301846150796198033389812326387504045984725569490134752991017371360639817553787452392470439177187444377912032475233089461088928037676401721948994771067480073184987506872519365772814255449379092524852718045256847068490455396500231308053214644887901938749107901470330944495873531387607025891444475175568352022861239719393888884246651462473087072242696940259307238794554481134161432341705056571621184526533613786768852362565294933163430449881409486354157062683281694847913365000838022440544402953071970267960352328457755121505800306902955920418886886677111533769571715548536012889986911731445033540890997576981629186414717707356898502962045772818664601832201159318461667675375822816306238587464898897278984722132912213178374284150629666248292657549508681454776325328686298542053620348120433328607646248652127196909679862191558859561952873060522161483770463240518828631396379220736866198753993436246427200875079711049035140773154125138664577490316573555393748727521835661534246470522628309000912297754198602181114533230489874002523883794438166467904794065701947546094813036925078425788184637134045870102639557393372727969446789439314460072945386144765238888675101243263975489026900597690915799408668884860846996993238355469483905833419349059953302780924067519837605074247932461320512798688392169166415325458927164936520963874225077700901050771630520052772570530539463668641802404273765364948652812691912721707868064205578124688354167781002058765532175401133224039463713778226135425778349606535012799840804562423288297145910096664412100935473810658159759453265480876837811785293487881987763454865997883699708216386498970054567612710573686035940292129163381972283611239137152733530350135089899266858580585723770050863244331245290393725776310536234222082170988112198409466081988833605401588391126919180871693829983416373388535910754490769179409825413780178402618668202386960053444004654476403467687259768310582252297811220949564407772486524243147273566337154764505849168418892287158016614460923710719252348852136645163070806215533377001445916950146297941930172423461606171632619027353109221509551761374047352864416057290597629045945659021893809435745922511175925476001141641757285617719327630742067847262181451893981851824567125993920305952917224098093429299414951377365447017782297425353903037899867543346200693719931462112359076478497491365459624977064187479868723835628319550327879751049658524177219696843090060273366332568056731011528342123290229063452464714890998802959757373105471345645912100295363653591592294099643315245730541772397452296653924437306202339252114929267001951470208305908655402524541561618289090655646262724758081714219530756957919220497377766460366384038961284360038205471844036345794921297861463256492580388452084838144516633922747769759817185828638274273386503956001617627172160252303147017804905282379578259367555979588288665978941894166356853710737640977897989066758016597358810514905635659530742296438851854533594395399761288915262609396119718882306960648510072106699778911116684689968153478734244591134121351004874369357337073115856232139576647156498881590770431450211876308164265705569836228417477958753552030006492473202264134955126155403882544339048043628672236866184639162226170560038999338047855382602162090690068033232707142324581106548335898356192898101757856474711092314710464456348768150871273236642310686460478706468204126643251112964354845229042218624380026974973540930447650341804833479117216837715306725828702892674736850372264878456407809137544392778121491005777220983817570719990292442618160491056777976874279105713886798709320558769526971114336786761052502748997648511571017595717880608143734144080542004654570198815274088780788137504569122166365503280913571986597923529268141076182790812770828889425377485520731516019866985506730364583583953019736002019607415955351112818866548004858931543180396654647145583955913956857707546067740697722354165295265772683891509168544816196805669493716161082844215699927295023638433570536686423629763896678943787014455968565452670537089830514752607260211820831060970241043187993507375863979142704302192883856466324812164596582257885672301705920078109594372030291156491449219268963376129246606263107358021383163792023021862732439729958252156864516282409887850546350418413068675487744923553824693748924740678532682723978145508268266124404352752942350634033171737970415700946322470376587098096235903208225090904254054892685418278483958119906759552575271520413001034470152197494242996770571715573247162021599618922424087547486107206610691682921037280406911644110724912294069786523445421537896195023240754923207793732421588979795571900968886172386355633663158563059278726992252362232191692972742017794531158408959398397551181543243972914861987526957117937686593373731730338143781618317534898624012183981043516505961426673178240473959418239858740357550416556823697408745546452123103609614824154170193612435138476184822256165718140051866508912771834769770458646257505922854206873822505433073030380384917025868779916847026308582916490753573246016770895177647826401311853429483088970149836492118692660409417989373829498112007402884131668004330745310677985738648582338051165074328876137123928679979994866462710937860051682579468884651661197747209658427067148382392109068749518489202657541127884269479173191910689427554509028590150428743694007204570943753322823445180339560967574167673563528284910289134739460830784105307335329720831894650943582924859973263355482073677181842971632613604070810392562937295834100251559658734318790190920383478911037106908456444721677797147691328711908960789763496220210849793518860635734588236675272583117786041102207340227557059309921365767760826592315902084586408066985196750096638049821867330201461495021172841284383972872313866920944914167755352481992544866919042281304284774921256449286849190954609367842869495006081811517158673982008592327011991077409662395268473385250851087353171512800622184909717653146172827140658900677591565230995030734605983161070824123823749411361160161399436846019837228168287938502928645486209328369036947796375908057291139014561575849185559581203450073696233992674857128503956241208289976765095091228045265537269694844777106877206237639399272873581615975478182415795535621160256199261276990091257553693922273310881364344739621116474002983761722301261260946813561518294762886978812847076259836776141193569627873104835782274524970037583681686129508240945964132497370853974801718562887707351048156108134263381939761073267748483741405725675465881104804325720571893101597213194152783023045243772473383602678115891417279231329366639718144151225670974105107091094710577913520326919426576145024242253287472009142621423710311960288568651947170237487855175480911884508463806101692540584448240494806857610973883065169403808702803239549357578645603502959877945007013655506754922922690026994006652717889870915267371839267319892655765732831427309861794745824968455859039039008292251733623423764068075027968598746106581925960850371520518829543455267371584323634412909945453410930805902366127161481961030134905088069214494833407680573624049019472323734086523755533441488387473903134023687620465599757250832812103531595552129069224679631660288952816994484223551638706927067222012367169845725112809173829897535681908301351037888062210242995310056686298180683461487080648991983408485155094322336977169929032312018579285880058175972778424391128658183455025811946438166771588988606232549907338906437928640349938782134013391441852688345256745968405570670533987449292144027749852515082261641864570006457801209884489028804487265851718265742294646458701744540780415546433337235059241712426216237932893643238913166620029002522786612913617735280464455038505718434165643120648670534260044735997618562105656796238958791165901994423653116469576438983168483304293841335745685607818566407899712669252298360511496244397250144203297673952930607429707494446567540742805923714238076158301307880605870847665519369929951067040058743813890338503543280211189579803631299952449738665232276854859168042016854529260769619007522799235899465017141744658813911647947773358965673548896517411524395175559396415298044290860135559594401563345088824335780283189806784280472221943074416916241614338284355388187788103564454211170831348289241577615191200613546492756345147266912414672716106477458840876794579786800468813228916070874524187566788644816259049169318150667761249257071595574091564533274739007950994669864649655046793871501675271034910744685850931657750429339454832958586893110343981539181227248496321954840287598743232510250916260785381120215657034892165044174785171252425111188650408436016012896018169367041485166871916734245567459087486106625045314308496295864662276583341133721148339894791301197509347122421456768429679979850336384811443524575464945350829436819519458131151086969462225854121741057575728566144457220591969482735141017841316394172969951189256074645113352062318546687217480441022553133181945159295010764511376721087148109268015697433676001792339021783400935122325890185769271791510474382548791667945036355570598351160882537747136627864677862845550573353590885097274461995984606371055377369252073038915928959987832814353665800258647468730734075651813670008938411926228307177319508711369093678403671274517336787342669742137744555775701887200980755121208431512508789908756885931867380541751202611530654960847926705404034785625604508447545881097431965764133338038475638954601519230421265065110678750266536677124585033576749539747377228354888416776806348923877483788239916139300201135470488141166608794871235770343206907034283782486040482444913563825778980961314657327888157683622020838431727218847787531320781807291236974538865385726572343966110427259249287696116888243471852523250188919605292334147451071232771985369906296820957749317222996860270800281726881826869453380902667204916292738204970806684809358814389153422425576995908719756517636770637269462941134122477585602970473439278929981250409375599464127460264224801748043048313427189888592964093423880833452012642409418843856484301196058150164438765962769444107773020494938740378368773574424408796536759179400075745353819111277033615581569309436043020887616821389612815104325221495563227616912132397548286310469037243713010437416308300062853919038041110059912043269172796307215220982643790628708090530590375391995923780801795277937840395845204401162657043304325274858368029136727598547047577531912994457518550540367152545130802454818618288439106645252601469695969476248682664403493163652418689986427486559873574782452780387345118187524559921635740307919081435313976570540427469836776789699547833963521104540984329996223329702386741818155384788308748194402546298920138420258479458078451983087989508262221056531148148309282742938786724056397150154907370007236715577131911343900650872831454637806228978108508958247660900423149855642511610244326749855694746871653775140320339785283089295369006801212367461847017948457924092544787475974635908728190172378811056650782009866377157653549316419511002696242038392546157231631579849143239267719742789223418392490977882226335240390996649432006538893415352770140464533136149072219065070859624237432102166119614166939493528869385015748238979952338034158066564935770972839748561011434813632266849645185472131022166712078607543322727785522537964584274581910846250744169579093974085564544934912283969787013853346630372419984778123133218121289039316871008705209593597516335701224436605299788257270419943315721581597780995457489564040411226167815076264437793699971296248264962818661588367635147767605748045691252932434669078973203524899298893783009543248375146541787956185003003879291268242100318699991167166772595957472950323625979847144326491062199780536673758829454502154030129147175388867181914813490242038791260027283137620096142457278011147841483917125032668907094033337071114651399423220418208215900841086884858821135482215563392366250067553505855270983971942447708614372373684249371851121924148692621949284550400100509099058577090275849428364240962992777405393963045416204850923458717538327784567455067950302980904917689556498836807486524114245459440301557195238272505415166748718459171940447281334307576357570153521456675084423006187144926018536576827314234617038405872353912461274755850863387468654986207280568438959327118378642570312039683563393186195621094897116386353944510425727995554874714690009786175462153852773245641188823875106677247991677956125592349416540024245365384766153284856597730183243909575538572823558493487404236086364595008832748174868490471461795847364753177396844783445199786493179171566956681567801794932672809022808875211475762671119961119951302467827822286680550857470076811057838719177183038556995364981727280103236867753545957017342106933306991305184484088982512563922563565562984323634022343639494795556278347462258576558500416225674409640703687539456398093818694843367859682946744088244842223323753567686212863776862381353799811637916925175495994245220719388821219587585985868179538264581806593945035255439487289467093881840447133963624637408822446973371299540495082928692270606952521624307352580134994059926737580116042515488582773249540087094238570123479309250992588575345610641115798257940842325631991302142044317958876326695814781602218770578102507402920995952890144968023818886227036488311999490271472161690268471240910907521778367924321877048694415371721253985726127442523365236656472987424238182853894397339469347875367874956008813749496822850659989869455837200350390380238596584833062353005307115612507981807051388818235846001478397415619654511261540000750306270403385471701675708718918434870059886095806873679120839375509496869558412229188809455394338744269052608961856224491724927725818253969396040546372463162751190252232300480674887472273496055326932147612174010804786301327262074567681836840859975657474424842102474131805688757732999561609014816835048894787016459597269977552850681747852039826214259919266877106195827416666326035150016263600030929784209654493343559245885039818856181972519401701633060388913388010494124426249446959692111324255615649187218718680970089010782946847686320715119276882787846829623534179534742756462208056611794667966217647830997456191423692876215648618483273083338175667016482777471309826016637679593979197547786197940448958265608154775619976652463559379508443043749716811287776674426935581480261258282271125968658527655409334523459997967860182908046393515317540777505341804347953664370703792036950241574271595843304636319457105311848696201674136690416852097753935956645806122125626345179526765538384557643868329761514045047985809745578603949337675488296616743205986610562539143695746565158799054972509670554675634283018989137209834687264979738980863938419615905006795234531934045805599078958552691544601816793257499078067860389273888305294450402248089908330046727048804838538530449960296849722679153757850993222293266836360229153004911226494326287512420842617504860210949809167998438753556677480677207570292804296834999983700032479310708938714462246638538632074805711957661959249635005503489616787796297406774720583372120106759151932701992230963024404681154959138709239995288247631537847648710778889260116004938401339177117536174494133032063973031805713282797659604381020856559145822673182764618464211834981764532712043797516786321604323380795865457138452548420540414838763853375849989268178283724933968125642428968860645667810894239492398342970032535955434457022771338609339547978205092191831537190326021608965911125744474642689109203200241203217716599233921558385825030689333399605779345087869332808256967247947235087943660403229333449623965962602671808993534104806383332607498849516724187652916333755760333716925234870645084945896776023631791831802829940796663492208056387023898188530896859508064629464044385070830353515615654805650001473545530773692966529972995346899960202892468607247286523801311096281111890868027605289661037460589689126538104633312696878782445096477318111046291842263735198255556539506110265465582323866797335831581063824928556411685795766710573239620567123800467151653975283456257741463447753189204560272603823002271282067125745295622915904309380463860800265637656135978735836868166182763228102121377199376420916719000440990196211288320135069228061479109925058458036793091500171550907981599909501967343825623694134382740925542691697885860436516727763672099784060761244568245203260756950363024759935203014054197373889529048036202675755537728423827934689589829901160178464577495663153166891179362731545630430929486304479869858895993145963192779153858497693431962281282267721082234159918113609453622649570195599758917107203104943376354906839379326587543499980991818029225404974890079523924457026100683282049666068293630675179002799716279665017271087322861675703071208761356851188206493379992046462117447284919592987151590029269775809697245551080402636379031764751034064627247552822847899001246389434606072215237236441175445698337291317773404996376322204481199366660441262296074359422575588977414834073812051933904858688380402614247935333687320836727178266325216536559451500849220430171679539471952955194894078153809217829992334237039168823598925435451777731148418050993447736829036484555342132612266484557612820260827072832766021079256272822031494058851553643457732658709465307016948118012183280473387211531497258876553188187400766345649903150511872976021334779263049471234683626185208633945229103356907080121491091500957422140044318010767079054266660370445536088410966771103989525780271784828351145596328724474321118207613013543650588481195337728706424262079625624999820197914407280324928718671013693108269931761615743746001577457789437678489394852113192335759524392296306050494475683647995201927085991777536741267285406189954900491474087922474375205863185508994505603316395691065481424441660051546731877296926635087142714263321121964470874533153183873595754184864563614997754732298597756568374147845812211748094516260881411736878581178604340810598849328679094441527264234418128102652121316865974825036105594132904373591394060459579707223421924364529591602923072972803475573323060916743594370386238428661900841317210760473334542178682232311594748352743686200547420858025195612499688266807185404154209263635492609730464243097394277233757416995992445777197453021836182914223813330307164663125626422974859066637456866382650903993859267154748290968820061757558534798968219624833564576647064166610115445688060623803699205559566545613548653559075049543059313979969516452507127702534586051791491337629038616454148004518725901165778557218434682424009476849372142076177229712494602226104696584180004871567339940594557982016436145200169557367364740169849251075756389267659060378972297331623313846369354946090935797296065487289818038704334495315145821437962424679738519045820701717545485985819459514868212833202021432822563064926877875600138856886869971437112175777973998797973078991173281764515943438967731874986522055089796920118037154711381161622904817230003157456827741770103785646342818252725388389139302824513800161814734714030320956808396257954068333879020147440144860206616730702558480962253241563619227311143310728557974275879925611014521331466975047911069150632967607953656023651771685834475983592627894451101316395165205910064591155101790590978258920472030629097087370298328200494995989277180318100972475338158464987188607115714153744266482702104834125248469003983644229283230942036573738889159739200476969317052135357005537571737919753664639019712024254052796425692963043655444368072748657784491031369656907829728066286497087410666281206850018461845852746386149692758986384946246821150412462827682702831841719875244591015010048195909130346510299799665650357527055575912281782338672261294385493350571214185103507096560501992741132638945064113915642051267670381943279414665717838416976720220360129986999161805466862662361927144102304579177464033867183635045057690729817265815620812364663202156163784546814024181675300004909254519414087455800579446456107147975157862821239331402393292041254779834750395319967982385093327406471918847653159381318139319792675684211580034382884289989906588750560685135262313391302969130475608538523677993345889480209696574891411513776296313243187723316371573736414924229933457813990361572217410745857648197774799310478598696316498718680597500881755385495272788567623633074901729531924018683350997088952899331724532682082816779045671096099591867150644202856958930107919540742563189003436091945959020850570349579231587718779292167624238824991847741997403497747136040066808307953570252933857179673657416934784411491297126130534035247571940607109780473533515537686627361796969806631276812600682322103063766956020784928904416768596525423361550920916114394602316574684873735496621341272556728466063425192804355721594977053625024724633681657131279566202926506159520253087445057970446632147965308726885478688076633943431690272251095019643066860417401935639202899442404856771821495150724980370626102838394056832037009743227950169670168874956231203794413423760200351185924179665842839755799463093133620106871778174936862667443106072452405345939864232837605006592708319279234018059550224492078152215401469271924375031980700449203127811226202414229147066244719992592870960039991820374856839769575322657899839063351180831793037442213216449340899644201092582328409613092628960748515989407679438366163155143502590272411670258260795325362569925769236367870425408840892112277575916241832646832801400883984932952875425735270999824872937585069503655740897290162675685808347143096418363883333273674916080928333429749923585401937326342707566706496761417581129805133891917235435360735379393084330308053390294597979459332658595223049710086762649119466909199964448257876635239944542897858306235100860533492077777886381718664828264309292426191343231958246422764400695263655558632235720517669536787274991095165756608272082903025726658165217467348807430654898422687786657582838209492501247616492509206057229428135635211756728605162308042066689924016666807800848620701341935712552535796663165867055099876153054519825792800792645834229676320166071978755096806856772192901749409964280555888751932298623217435776908335984622920268935515318683387563962257832924121562383066316361828168802732506548091852492431575847018800027249143622273301689758049216428614757092999335917387015302258865573444693911425014794032674402710531587897573756455098812322397439917462092923845987010306035926045407092083255540368130850252789718042417229586306133292429514230298761046197540591128748981350973792670005878561705797351562764122078053453986894039663707640808313204697347259158334850307434481647384503476934410623810670880894044187734000350100808371229615606810661876892332400479749419665843059909967204428860247339047236043493607597784463094593202046111203757959083984153997351737548275143853218939060088108249880990445960681715153514745033626894124598888061882113596493051422486069808131696275906113143622507107376933664704437245766562149585758279540404289478715330834868629790672250816927601628416928416245048899743249208496813104343237264054692527791101157905439173364958025805600160217630796693940989854310739504994239764619443308057711676257994321980624333976701100410999430933312328352382132902871655395108270997119762400624156663129965844656181307398692157226573857373814335037238003909033054894602102661697053879214310256028112122093227285152931828927642460138811344534936176741109196438442813844771416831355691084958765520467096612897469718186712465534690606914164213426710638856807973109265818873267791671939830435087129075686652659906801684339235950616842864171906256321519409507707995194613169437477076979358951097931365900398246961428806805683260548335054528396688496637878761343989740689310357419184066541113354999715586459585307141127926803535388062734642014815380753925459017753361195089793689053889446277389546143065598115440061787965552457474567495543610398429400709944749582248877211005140025460489046599218576924650456721791282580834380013768437894469538733898994904532366187709141755907446836291358042891497461497773862612728318729666554066531765577304117846655847451229855079850173209030120456812024087365298284894358483321304898485177704489282401594395961363612828687571268656216703158645984614019222093616728647135420731521214757754948288133055285322073670667785991992051685588666358660648995302133468856885042071536026658870957102837545757372238545588586321992715307578722765540145458435177804446619192847171697822829405021329806583461602653548975235910611753387780358158529348648129358861720224445478946538283831074918971995290844661698128017287104569531458492554610936923903409385344817392104296666516856282078068811238786275551815054177578505047408453656515643452611635411620067731923071487184142232535151662755021885831358309899519266166260172340032951771093097411738943206947068859671737846759418538880647279537218484908518931337732600155867722050243826377532364924984756008930521927596555975298953981165931356729492884254850570484302698643761236638461806118510627389380797614460537896695551316251567259710136157761709867738095475280550521167265943275706484927984864270639591047397841071129847957970008394131335574998093675749724281809002329022570050438584458499586192708220726666890686316781135700147088232133906025526034536407216772673793239135861857971810360486396761706348093566298364875238436186360010096359654296457968088420044160485079098429926913843123052148633130185843773417097518317974591036215673346863069066354166534080593829190741018557577413379717576251685347431182753247467948379980984961005321331296434782240425508668977435665845696371564408829280884913820732195836008043262088051139066191954379813934667452546108488658980311331539672539926380622493508003955834963407442849244876458636101397008917975350168901113223881797453162497027680911744236850108829532191045000526846624187397839862767919731698746070827333220067567221295880365618248702836360077404405313478332389197483592379319617139207842032891780043129065892897382727620216094553918470919634001151734430098573308107712012763061681255885001286960000465770168607515593977942289562922049071629010991762571955893238428127992230790155412563470308778659411942794409467742040516220193570277435167743123019255222487128312302786872431836161959391340767054734152550639672327557946840271079490814217012786740128177370563176969079736946607464173916735060569267598698382027939658259654981039569273076601730083461313997387531470426926514080484520204801603845279568874546537008132611584010450558922269208181911859631228311247297034237573435210199130666989107972081074093281624402841236266648113105602222064279058981756615387523430785645552582975904464310246674233864073024646506340437917397551755883682071438648651935610095611532596369925451981951335202715211396184806061268453533882321222033009705237311665560776431535224614360319076822919958084737131663485610426085856100429324408925497452515689778268509321412814061621613630806019313592388916250981193768795808911693231757611488066764134906149873371516980925124777385854120681852614496430183625225193049763105255798389251855791730727423042735323830809560513506412766825365593204763043682871262990843044619161865293858995920909026405271783049751500947559678353525856231470140770353368166680905498097814234087247243535329489408650592597998974840325863255823360512531339429819438047700633146130321662777954044540143012977483267421552342460628222223087814473118945150515508150324372395297958221254000603876155235068495308007947337524504644249748507408032680770120833535612475406461934460344637210010247460355501599876954031369105598142186403322490307296807683844872472504346189559872756477272388142572789397921685665500516166855257967928539946441562858254791177218300367260665623090340420121419269953268741289114810616138448910887260837570571724027353590982042047757351183048770090039605123323830060576374301055388222876710219665380728067222339286927411060890081282918578274874721435531099565467683619575588260740548232060824742283915999897234381536019756561436779008506529346766047325737766069590548479004164568355698900811750011896058638361569271726422174463935821583033681832164759616840854909509788622066025644429414068524095777106835042538808649543445900989134062240109552471107559529079139897601394589268690690358333990694400289503591235588363579238059402014765778419304757097229447975529885713185031750141043550838900914377663480083277495089153174477741712065536635587248545019420656450476410248929957531890274157597006024229439909491072871307871400130618751418058652937378903712565805450737321074019184143805280249325494873522103115856781947037786856622540856592049907665580129500689530444337498814458284331932262825348188598704519551256003501196000112118163268620656118927301683248566821022177252778794193951994037330195086360401143046211292984579784496765833819707638893699347960971430261956294785866390841092151591555041936558709432069556652303493027286206005534713270176164645071269231464498164387427513000890560351455317378150187524323545712264069857763378337924914468904762417750737757850700795301084998507796825890875488681990394623136111381022522311855300837954429562650700274807523414638520614872666902109024679917227659144680419224244331747473419923898311755920893803713396112256419701356304663882838363134828348677935729118267391007160019734755746706837023850046465146247887404223760325692171850893820316200617954291697511604573415250476940273263196778544224138071618304097457848163789745488595117982090461928872472593117531515202468629502067743344060423130845963400897495167072494853105037963675275103223617724062178272230677030535492879521181621385906152593853574435603464067006537725819616573769197682783051508389958275440294115343347252511438360705137315288744815205635939399243950496455066113149169508859705024563520487600138608676358972857531768609116909580374321992047146043313892694226951979486068853492558269364193573166101354137894648455342968656261853668234391662564868725546546614349938710130120017126772459206659260178815183772705038768088734007181556893961491496874636419280570698059866908088073016159867554111945300197788019798690277993308894405341988097435486244442468360517563415458286222927188076081094395656590037033368605821247846968163041507296248144528251365090439104646531389790305396195457586669350193593807283991931143493495551730554356486136768359333153568577328618782912010051807994372078958947179836023172949600305548872398697191305319097250293241218282811018537695405290880911391558180247189493357355689607139931558305659241552991839067922581568819962755596691770319444692736711819109959393470110851146213733514800069955863877923804904804343661027043568746901319777991987490236133010167218441379627864359469370309901315062646837368368426268237440930833586131364824188333875182098569549140679802637397008044053722705969250222769504570658390341595726295027782967121770654515632062546492187268503032103165923632364253031374073781680552281014408098702499097381600479590317816633068669662643096060622153626919279697498248290331884071644621201037914285703811536978514283297371612059170163600415246823394092066416826531630222575304013264141248202156888373118125080163081039658521125293090313092930227616356730176822213057081429106132738925885914232715490042053058302667988218683981624607110480874513859400808612858810184576125926367109005111913938099318156594295690003091396618102178583184942381257509909843196817720805237382845645489278244192372322514606393897690704327299363907676524559249199199712410533642791660078267837266206634751240462909718618772285898484932293712704417016077993247899967248912886659958816336431264129741468948186704670078462122968250722636674798952552767444096100161845954101337984308573861570339318171181504470394735843822707528534909487792670285588401467337353547547046236105780349051922586598299976764265187681182445367005753433162539602121535522607222857935161690869636372740546241761483385856716780146920134064661449169603470422859449453803884738712741726426667958798163187110509716300477843977245499230511822881102849233436314520089249500170761687556762665594779434249347535805981286094520335954038922955784839387189856138544336521432035717252422281034113329123900712004399458699065370511032093507411579586642925856439738064099738660692706387319045552777951366141469921399710560010172167932388292719535054134725470340635923026409060852607112870221985179862331806056465823578845787944870379984559152288649597555203839945685655578042008613337138626181680143723826395619998535799748952856921829614449773861718548271295993693230535425943854491583729607015909487310566812022322420949016995609877525269392746636877717528376694579558351012289775338567820935624313464953142124718554892920830566715908737075739045576813755614102510120800532266502653622630135571528627279266549607596095622956453637642440047182006686716638569141874131503321444311575763147647247691895700098434207714229779715791173587963849132907188521528611441151020584854186430275923197404866660685145702445402151113700642183981008789004282919084804090489861776900931731559997597484451526042342385601334291333323380298260109638958394711039563399927631864127364281054129240203444550728333139468296287037158223778298796344680755965914450180454174080754105764411182929260789154589296125206036750569998854844533456399150652614600966869202862663869103604039914508857490905980731604425881028945307154975609079971681658973542832023919013206266954235045750146265924704612055392008921791994519657748002542242934162532569027248924564444868676828896912344203421758037891171273906286418551168137610130187715451546625848704903435419462942002947678031773148444328721295643709657204668810250492645276129476739005682576229704502369542005664422651347085386607366319740160737970411354232049369444500904209474932140114792946167413253586814072939946146010383358560226604665720282206745829058240781675677818981465218133380505641626816038989250399518864697116193542450399520388124430119729778449890364091906250376634486242991211227968586172557409830793860103843368214557133445297363276123809358535272193110536981198857045249427670940187674317696049024016008179137801032381101097101287224941555001037432961746468106527140867214181610888100983501404578663843537168494936272227867017892927106690409499093352739725209393049493240190739795659499624131555898027757408396691717090072258217456344987254845367753083023566137795196096840944453936465695369175686020959180160568545705209171217746869177523763877709626234473356042066039249166826126204388077392132931107329385176299802044976518845256284032843511631292473848221616160115126248702897588501363978379515879656842939916617228514837611759064274445165453131557441396240887462473953970889512521142744664474138064184761628762057759983248337007827489963391203207268888359853319366143348268557509023650499734527396860798198696391430444187107326544780539099251043888649586881981398806418155472905817483567085775943335999118472094165161928050861222434499607956716844169482994855256648940797572911515103463491948507411404918099329555172273581160911660059930074645381710582142994560801837172776947323066024634206722162222150701626495354642993811610133023522597372379711281871410952815281362490733585255982861111301636528596758138934486374679206321071133934675314576962381689812182026198493338076551372724930033734001554588861246761899044441777837324781265728846179061656602299965861360408769418832381913091397408806750041026582350877476752144157837842565693320974757341830444729129143551262220038422962342553822277016758873725856783469032472053765153305699993656629195523068307467579759246675587868429258816002373136480032364517622842864689639050108717295527241820879741071378325674473380160316487249111719349095159539660101243968210877564804344782867808552879950917117360933098136148294164221634049037491600422296115525478919557262168541216957644524513997968157393018342838746198595902236511118815787120280402539739609909183839653775169927887420127187230093577225455627454270650688573239368197470899704921231987077737787320055922372660984389282810812825060171463037932566207306397996951457110275595192682893711988698975233794615241704573076684269752160859584783150695926006737011841423278121123160901774438111461862431683323798696946196525494261004117097663613616033200494006726816107773267395184326560340005631335541217645525865354898043264882879899321156171826887370916348087911268590376893728815421408157606894648394368503201749250813747049225839153069818083818854605626918102157144162308509038030194893303202026734396305508151947102434199958481674549114802726579091062126173551873039358376157294494248508713327537974482212396800175673934866366960707890909690273646273099480913566444724490837121744294759011427487424967068831065919609443220318099046383214841432517966055249562488651554252181278889238459161236828411496657112539270176161201222339534621064591558252238778243079445405264900733461027085698038151963573439387554134967852225348681860017583945130638690487807764412027568309725057858539142911722356530906227692233538914144121133058310543159739207525959803134558013061073018368588197665589832957479534703319165561486755223647367415866009766972323767177515062598204854503629166378682187718846468495363435336834549763980663993933043930584430293576218039216613033022634235825121438613462999932281284753776364910891754869676699154057933621512466605804416405584223269227921516515539563024606231900684593365847470839548176729453845585281161980013549628174663909736792734160344055330996820955207934137248261927618938972318599671260961103509692046889740041190798007019083688970477318227497062806340029826146954913670822225645162380091438724211381292468128621319796285163268162130132054023234366962095108633456703504054632151312281022737552390407162935423407267297316665817987371149874598447194582618638178062581224891244634968856222222830093282740453555830625528989962829730793942683056982442929621792665126854002765519039523705099752970944605636689719354088375765087027349484066227653582594416962808306925011593355335720777750037677671438315531659878990453034854570514488164974985429268804744185806869605937532651807296745338147755295123332530986582266688690496287050103085917053623979362760522516712777636452247200722028137624498409925597082440809574590120673790489777612742546823413777581086544692888570351179707774827720228544623337955391959678992663038546924278480610475649587020174022261292525971587310750880285358344759234902856516003470099619407974854836373303991958877513588735452011325905957071366145307024853093863245134560608746391798171305131214620303756559451639142273745266762002914151476645870909253438489295668748241346618170892036127770475624484405932710807447050910446516453681365064344295935408934131666236940604917342534500887358419890680799106654164549406941519578549509711489296439554949815699312405254836104403774116156516787526750017447545050044681902853459945593077388817192988942103181298941521650699207256476269749000494548227094533419891395182982118125968283501089535182820846314449143681610966199907423857881465750996060072518452728536179688703518668774601809908757186455967357825761996456167804381581858976276111388449898177389105973677714689684579767522145831358956515447487281446537633611814425928186033440031667969579419215368996558592681466641626759760389141291424608128257740200143855042263793787925865976920019327792987583553327223918435586349037047151281610142155564835799079442280099705281402467690117906814237387008838614314941035040345994390199920005856970687323419951475434998059341809249553136868205887296290110509292814935991170043541765856685863788934362876805739496259915285185847074378985230625722040411735501834568222501640663148112652011136509107583329998679246597189303561504210313329788369706415123713627516052241341068864273053234312884154333390325452480243732447754585093451317100107788237043491771227640407086278061841454025223940740459065993888723432703291573336008316528630822842687195035282670665627031393082917629952103122716909450039582340851051971023509695064780179715058664930559251021300753859979308537322580968645650050971191807101081062347786567995670522059088504251393493885405932648311182885227843553154742830238643151115544265818957404123446009358237172579011980818158728237705300295328309770588902718968295914331910849669267739424401705271676811619208958504565252948666609460265735749806928945832176941921137709828404600120415151173642140124866851276358158762512233859298193291701883469070782861769670253742187419629505172079048141869973122209603938674730453467700847007261902718669539463502024109394265046716529737471344624968698587728909338709467870032749758447235734914921515948775838656640005218355229029657858920634343226542998957287330070033330163595410375494875196768947036540397017527647811294943354711280998871300574584752550863127687673932074890186214918243467056375226432600575101069682476373662660553135566405033393106630970833950169580956146586643800690666192097300227118910356291232488158730454864168677150659041488460282718820903008563626323957048899641025465476785281925679331907550337052897690935240047691305150175803118278596199860099382542329163003492928902319906192082826787928836158624050526667943547145172064887516189061577156381589054560472654954179541231417112819571224955430241646545866919239590411245729169349189360956242945618692713075993630685790482051903847898078168132313395388783357624687318143192711303834024944559556438759323907284738903695584522217621235314500920807718580254624484203250548468948732414511470922783374632166329389097354826772979432248287441569592284739074811707482853189986693609211016826746434990229394853362696373347779277472421529418525439770468488966198995213585327250024173647409468894055542236278578035613701261233769411368117351233437318429759445559860736007591197301834883372911971252413731472740715695942879862354980549501309863035753081099055130878627226142469380726674368185578759591775518358632889441872758447918059763008866843807618966020550604779824476474217789975581913989915842846603005452851795010351354816594984833838754424340789632743556778269086727344995150367251306639135741890344391680231601162126695749931642958688223865947309054246592369760683217174236495404706254770517535950374158373909517584482651785986089858634001974000982635020075670098507993337561240214438382285514337106134816629726455094862291246375734811642191001995831115975828447900265780468012473886023453063394430795477207315976675303158003328459580179989790547986331896873726972864638723639185875177759978197088443967490756718350668617587744301105023146328020615561049793272860779601939046834137135651692717168445252217460747673910055327277313073215658387107237982381383675105115998704997006059252238377648397266168189084575114732650746008357563397475984137767978439253547356141080150575541685347474695185194472039711085762793471036110282058051727439537696677396128449709369304344871768048113673626714994087109874467766153710360273673519504715377237064211364231386451949595836902922054614531706754930634311764616315415064842677943686647837387389712809561841997138136669272125147553335746762617744214798569514823289462638725777183193008291260757886355707242718330452803229335053158074570638984434651025298428673508398957767871274090956402235884411610197914395691550444969615832941500774129371822450782918510818884750179238198350979152540840674085904429874318814003371645710195022507874432175821151394166576234857323130896878848483442099692939014102705583516750433591526372321861574280415504317508768945646063776262503779742613998117331413653364273450875208198382318075583675920599332703992602949360629794994327734022305680840115583605492497302097931009165640825587738054868176508724070166708715793396631536045617659526550299756311030010404250198113252627020267054900277751148540738927878323198132336513206181880523121121668898915982137863091744129038807237411054473675448869501736527309841597399742358079208267352545385802253810600667968692471568689898387434973387688444410928014180604319149074404914251833213730893485330030336289172538442906113491052263759039770299283280592202283705499265296716677665940781664444688353360582382449719119676605012281347109896114998747389231680021401533947003656160186542494787055067563553261553358547225900471828121682053715281774087074630056417122092677142112141153190048082637363069085912545903676269819819368086067968784853135705704945556294597369534869039558506325109704792880162235289266606247824195376141776631941330883957691151982746214331773312011604432440268119863008667006786833659294269583444455582896115038933697196223141792645521826714481979712027433077113479202132844041615445644052483174434017644071821106071893511607049148472243132933848543386372129170201229290094460434540478176385902818372356483288174260823647716013701914764123861368712165571579804237915712247986867746217602697578152667744743855830878557241315458592279531573451184816491636129549455010888606121088486497476527764043781283101033929834363943068439797894693791892512294732424943514488194663307646620190373640436859310779200734283757715673181069965687357486896249636210654295136471591061623696107964159539710629011427614749692043559447626004310549623331449117355221909443299542628186972023441869821081371948240734201432633387280578410542591392489585613477190430292076129357927979982478848880415149398142702230948707591756810698287957895885372170952583255652060082493390063692945005195587291078771653434569000041185794312739779491760191400370930213089077265296890415846690601027510829183046892640613928888467830798976436276004168360817423963154811021978855759526338054999296725975077124595529196847338540635826661271014622692585045541809362446019062525286748231576687125049529418009231209642959775437852776887879734823660020539002741544016367402649749364262426763455415080857598996423834904786536961526264002412077603903413640994841670332042287498223774179553005190073586038280517951711102236430953112993582400262011178536338487427315747511861847107922107898732104520588324620346408376441926347251789468766303740806203640369879415657112916993764968479795764237310607199172486593714674125385483330758642181536601321286075807958066087198274639999092446312241128460529678921933268543707710605839544252898340831886769335618389702954074848341370507026430827158423885934667277668275453678191977986160083935809495121274496189746621396152613525062403709149859079826459604226647543558936342383640891779657931521397471160813958594244777992434703643009104048464146858300262961890272846892741633951229692523334854697304643586475884721723979542792968139245992094978974034778766879892128472404096352212593847235428780580879325844980925052537015576252316037879327521163952683090015257527693605575988290671664281855413336614493326576375768167006150534139182789171865528738879185096746921162647731119892715095865819188402879005360449991125353927966196576318188577387114286003937747462873305192623408183645772538065443826158850692497232075823786782065386583972722127534968357514481306564005928314068291549322927544715625002696055914183396602608587715363733483198833115876944774307883054710206552638858670413136045905458402552555792232894578624836790215744610636782328420929659116499926985220660578711450521171805619899794309914953620250806956215083401162364788553915832160591131442248933292226203919181696999293997281024750465097174808236931159928510326432601366897476630386065189403440505187886056496918539225187621127682685531796614672849030070940957452197322455847706456906951436405764759181195035650681944100854357437583564342659202114656413196422257214235125993722503267174474836745069444695710937381510521638499768429824131726808877368062116200051670798747702784016188661203940175409629491111017912223311182775853926980856704563716200486057275347031890618754962470830835547073674057262598210559870089262948803829670022006891721509880924528258509032982834925550356103808681442355255835844965949035998681289176020919309392010233480249223395785636117018900114279576397543535897442260971429790421094533256959197896875061733041283266913854360943275171012169017074671532429156565097131621811032294344739316192826171676107016449579084611074584063743099258270353533643466138170334410829777994031311255770117770024048556493247667431183586036365828868245620498433330617862426525079191889239381002673196019603712608815780027690033628624628550607740545215677243534590623236131622806190223676679459101168091384924016297656290599865361114767496965580092260424411469391715471710048515854415010472424417116164473753303793012273874815327678544158965563236772785107204101477431839184916418576661028384153276152582576090852122112060155519556912845366748586735108511340547391046847383505101209764244893760654163219568100512336271495400039405830588400336929424203792883083892230929432273654868767708807012533342542554333736235127292215839091722642962710451675439234724333826334112548265793148361791275023281308749058179957089775939247516601714871300286214380553280003204173995440380328303371365716195434115098753751933872377976464410839769429973254720676578943911212046982801149527462093671050183199655842585497462917024840536920823219428756121811957935555255893596474777199347177591977743782244639122880964081424004173800027246049636830603442701266520242392104538207007091690986094501471726560674354104861290486637665816311894141659284347964168849832368041277032312410063723775681661444759949331747659470414635252465325757078034969575334084950135924667219151766395450265138997019307154204990850299775872276147863199486440933403856998011756103994865585287234252163226524168194992577368084917119278885153595722600777474564480130249820603235060178881613983864557067596102985203730382906628604977932755917951045882684668067640311214552128702015322353084778868870081446286229994704619834323822024930034715462677556491700589450880454690422556895851426282055039052232214563899719100493730748852789941035979317470176159402509905184604082996817737641302285303828483830660498887756778716451093710716503051539108943402268976952578969737768694321588969244530929978729327254919536729494667744686006969909070411617490375753842395633850049702173455560919292152061795256270158542518218287980332268116989485382706344477971044303992209758608632400897771365638236556081623950456627081071087643178351434076627710058752103525816921868180354536991377741380746794800032734605411298873253878289730860869854689830077779171932917064872295663616879752660546685744030105013263511546030531728527301246187037932352503468698241886247617317879003719288593992858075489554053574135829765605521625769478248149968271756981667834700722996412054507185757056809855572708592951009393657371575359139085380372206101602183396118779386757663678203219896898582503446892384583292291977896337790968447709310506945557544304109088549495697342035415114963312975539943648849975385523894882321277350841223414212212015000045975064009425344186278235104413588668451368908438833223218457473490301353689242726572459128076910841135338599772579918500857578658563101726174853607943464981818210478855389987654976604685688463337336208412286145154413836419486552725259258589354061473342003215888932640750268753553219902574530620050506019498896924872587188662244086111637124263482190838192788441334820311749966432092719702717927052827449327720317602903771087639967513785956453868562295970182000951477172441278255979091843516210424719115540003210653456800948252619637530920646657330992290919280337213577342238686588059908136308687617437094297195113163507426626471131367517357704049646476317554490113622899422766023402508785564569984430367365230737947641452906594724800311096804210478556820118336473854078690908995327526293249359513309214085341260461640771658620429278137669484053237004138289124004540985459133740729009968697594999548434710589734812120215457618762269639821072546614998583261234799826352973117084615265538404017417069098208556338054571247317725042070445290520101774405123545486457799346334131571884312754707779424124795469703456380699481836544046027562434121420870862397448079364909212114766725823360510546559532579535160057831859192035398365167273337566808711680177617496133546894447198147239148933041582004846997796365313172959149766609764007729567150039894015883287597316824764523322495114841523519324292404321892040227477464582939820229255515975442582360730910652974212902577803930021633428007666012689431432395256893855423148895193810560174808325825438383743053327593508718613014765372884866014766256041656062988603413196236789510579779503991035217007429395028976447862449952720345943875476842320216395652977698140025967003336385744176195383832400709968105062374268823797284699446936458011318309401168454263697367301442592594028824686380404149141270457960136674797275945315658939314747773011156825560550795109968105760658491085622442371873321208291001440359100802122741895320919401584211939621244435296090726251695953863860085301365605196809633751315597631074055571942049148799384754854380742858782773072046072993038033639495572235025484722090797676347606728453090222691879526888639974921924716051657825155802826239524996383577282476147271281637331708011145815657319542273153694135607109489427001662805802606046366957862979615551181571374227593198863322317054431635104563851491009017436753198669015379222224854893461552412665987569205451148127545732679823878781361578637848189445643900135345294463443302269407849893797939503557068426819980576119076713185385806647100831978934887507945886372765591040958071438745791828418904548820088322289476002113121974032016653838878371446269744803003621007008244289974996701565387877071765112728938346599698678081687619464204523280011269942676961342770884746854831991688798940666528382237919460608240864176997119328711604291118077124355869060155327702428953149495061376792420965097471791598367252644448371754427469495770126949834635180824102377473949796802007072441726270578865302193602600871930088970003674735161312343067214643602911805670259153809996917406209854096504237344845558456038848964343239112581946597717397020371172362599824726266610213826955776835957630660199596546355108304488506673821278369708890894675456965504896107881554458608097344527026803026730011305655088780453088935122019845021428059100828628922498216142597364373194213070362797778463392697234460755575452493122040461428157741893296646507605345486010431149916696554536207453174824797008650000388915413474787027046681312989052578578005400673949937205381724876250186290433425528251372621932472412805143139867497296259088824910935111986636381000100065957330130808783340535268438264854276524670600587996450640005476961258247528875046989603356416016828385282223012039025535350755805789628441539603517007016618247452622044862885422860250192730442730826400169891753614133002184294160564612803979689507782914285278892342093010364164816076426886132373218643163139458943913980067804182930742876069057134793831532237491041967918751188251205338420341590929607646408305088693197556061927081321409504059471797931815960448590072072819765614927202909415634922678243450930926258808791323942476487236295921904217853697880980800331610774783927144978477743410279458712697843835958663392354009029939200133165409847418846385124150162586911812937043930015741845309935689019483023344357803653613394558658536616876102635348397758834166921790550005705058951680164601699375102595008735176955782000902439901427249007619192394112327219950961740773801766149740483259059427947825510556603083238697578101013640556165496535250456671895982806918090771167560299578788351260048278162204922017374475068226817804852063417345766623528408681615066559139794453369004714584728628638782092515371323905947155365245840570513025086615586030985720655686381960984533581197470741854608615739329749236904893928488062344412971823896518715010479217425345853329590771329690207097568894468129085164998030256720578851711949555990239522289006120826111531980242722385211475799022048187161749915618882868981818615713129019570069811592790141907337169120596265931121216800263971095585999566568318235290609122974455856328083956251626250383811196526661266879577104073849089469696622670193788175902783350945139083333020057345798485054757242226510465492858563595356244394690963688634374737157246280267814669210905426581360488039914482329381663688144699795771983717122859413933292867017096470832894842665737889283272135658342979525599375589303762365189250103901407259958962222634420093928751507351659491104180904306342830539017836155270549281022806466363033715505712024549509063635429235225752530158919891187813002746887658342196009896692919858314235470736888246165043532071138677011689546301125887313171542400119344088641142492403457092508163336079902552117312336801652500649512306299607061716941348791952152543282311557711234506565830333556301824182769423784801966281612555532001209806173126963007537669039007444821618468044927066451571522980957831818816585354498941666928835082009373256991014404163494987375894738275283019030519405968930817717342816438050169075282961193205866095276594004785379004509680343861710330768669704818123486971691988271289268364040514176163923932748057877563083818611776749002748883381090012809125367099768626897863321446068904058948101427093129288575461325896845947842260163653572828418865219858530159535613489983380360633201160665966389449306904324111335542747841962429022457338182483084963720862881396000204770295939678313312831340491013881746950837786211469418117309550698639690960214315794440181475993062071838842683017337308388040717178028813780663498820125187380926922014220962064741006786108134841632225274695936099976618715212984953961855006216382097917207231075858189608169395498937887188588384287853730719289099666596074948564751125701875497480757959510792980091759763115911779741190625594400355030027434619433512578614117305479809160861965581635078383259455417790373098347276266734771239823122612586694106196972155928156511041782064146693613751577852901272612705519993957855280881520149910929361410100321026130040526437094701642130465998526758084216339438547465086684703679337066243279433497419826786689492821645999080722202068269614090061248426585180840835128173816525511656109402604857692656754140948446904019241894775461441224815634528622656913466816427962460463313471891720721800237105236822701410073290527767111802753150872444765248277553228930994931600391346171674710212453722651286541232838894071564566692468988448310902674108552288047120642695403998840855637601976288094993987042947183540136627190995940693111694952181582133703536934592400901456179809185581929722764965360153877781386041128861920171747983670122630808563975988991834863358827942334907757444129824029547514476901272076621337856283012493970020939174772733035716322698856417537799237486895442971238927523209881404358304454312859010491317306851336123135376030363733330833939280381042626880969265290288997738954513997577586364548750363789306458870928231615727479289848085422987156398935120548666908220058758475312106376712186994171423575499757150363043026808346352802690681662160946074061432270380087348227684570691248759773776626300198827187833776153570021933729637847244906357369512231890583252790179368253086143243407034386631439069652673663560918883230235297804088785526148930325614316646224007979439661479685387651374608629732732769376893185349680033228341245227112668221279915889268355294315951216583068511590109724680953451845623229710465669342110412538089490556272006916193614887433382694589233409882518034325757848335269809453978488896546304967679014442065583545668607890929538955270506894614093068604450009960633701857286586210414726364112493303290984669145490832707068675275953395325443636828006025442260996053100394532975158051718661710259726799833579031786526415137737894626197988542401528242422305651577592900684821040260987563785027489620272571555588324743539781416116496041506035085136307790316792598746666866874330203397692768161044203448271160875358486036917704866467449375421259878168486671775491072278786778851699172813323393371300134789307500099433563151567199045398024548862613400633502328988352225843589351799455712323992710590427278817088408216368445001208174316752326652253119536440314834525812922747427501001194767396575011912897189176116901460322041809824680131308171132367575746974544545169881876458888002876027434591281750667035977707939133844476384805551984104880513485914421782884208808745739684992743754156005225243904598058373071063674793614276363350512007344611137189985961591135980871791156248965674967591118394160379708224369333243476466365788567703280334207475681352111896800465421949344672613566702805334878217204139999570615217751767752792769758078967594967267925442780571405133415814610094390708432023233987461384727586193215983085681449372933442294390975271933765700063268664836578600832815257884125976248888538081246342375257533039669074337611712997159595648323871101457393191683697635953057324540001147336685347957218660501671709421840288053748107260658614089263922134837530256309417660335685017444923714663574366937664271742510305546873656456038408688900115024359386669128891030552114460042332083071399909006014435821568754675709200982570144881044013698038627320704638273400183972215326461313191182345063373853083384971495652799701159958670741263822649464259056443876176066695626515864158971349946471866961355300050399464112925191655890022782820878449823433646320723506517631876358109550097429045681240628322571266018447842765567274704972866241175531183015502531242694458994372812543385991208841538698276403599967775978546653955997904323780905712102583167960502625884728175783651861240244145215489219362150278547482791967354511374027798859844650480744138451875905907426363473839319913645063333253634883052327871378750502054907613966313924397698581560590728630430715462794610776421043950646584710118806221640140278310361569225083503898720926344099489472526907352098382717562050450919291868122969089397140109286403486550742058216022257112795612610276917587748317154260573698654625212210866791655898350844506824030437392804823630026936961827775046407677558511450481723887088065204120563677037526879388171998674183462902299272215351433914522929631445944715295826411411811322962402809533129425873932825292903906601115883337775144885214181359487634983945026438369312446851184873754617590190080606742625751095624945297149532061234332314893986495718050986724943356395443220736413881577389155378372676836512951799728128972176906919642491383092780127811251505315077311827764651244369429026344226295328822085251670593941304028067571374096358902047655154338516834647953905546226102941024641425758915777222078218688679406957401765413760615756890696379863825139129244190569312951497238002290678636024093446511624663048556601607829150394806901782057932637401231762604050572048780526037686232218987267414616361849385007246416060008958565113126551717667863944310847989784372168370184629164016415128963184903531587312328568210698163320488013689963461846978212848416019948749212313167407517352388015270459052979204267742331701536488181153467407773525059538282463827029373105088234914936255289792519641146762341708179725798827663533815581203692759447966152852458259441993367260671958088675801957539997121583911664220977981423459277851798388105387164030109078845454120623324948767023941373401858345007579316990394554167547130597227059052769651773944795921138381268201263757457046681831870260217789630275778547233856255334817798901499693551455160875108216907278246160447251937523218098778572041697924910641689165208446015349601161509290982967440311657424881051254288223404965695074325391190682260588551994596114567635957908349716572109043384455548291862179975593398376874072049962972940771722569031960482595316636120120249784704938407451482446130824549817978891819725830391292397772860100882750618438356242840985538810672245444457332403010740451727311270506378074900829179149989812486003268888556516653838673889240791310909514129341461566266460583119765057872480360358480461612516777315907413574503409881045666155893006000318660739624679795596799894829747179684300397006749387264853764672500236696495427809976836843663618602891589557036077199801525284675475138274405507313993388764247804721607235304625499980944054292701407294258114410378181406210933881509964448127555589987614957965094669768312202603380928325611352340021949023966762880802955835744073093205477948424003949057099747310745926645326092988559503208197656343712463435878937980978888560003124662374974292252344880771707859723167538364054986821777179081071615622606371125364520930127997455259687752598979303247301408237100161940498513809683600801333462101161662111837832989512186670313996601600238554411743599592293230285740749662206029700365703314953144860958773287083360962330235959698113234015654013478055297451674340685592879711020788497181707271020909022378973556446939896357301378392753727377482958829759502346677797100493261745341577869677833438637124895603099001788959344024562468926045345298823266449145133189775693978665582649576004374662213536083968088562158024094644383378690488146355419531455086216709890231924972799855314736885032406272890471091794335627446195727071018062641508231105600521235963980090441145109160681807617053250027465209473029789753554231109711379035799367272410776772426400747224227413497569596526276949267228641411731506483338676485102075160492500447266054123580273068133120447361958236479565468041559210633529020226723552763953229846417033027152777050779889390763267405507590336653307207803405793101495154077475358221511518867171676773185943956617275927737875097203980387029690451310043565141715687673633685058961859795963140765496337358749757447885527042796082427416580673565077820548814396668316250737761447616385793139946573199227836076529107942148136306508962263847664736631760724709774973176517905501433005185393096193669348613869808107119799155763891824387093311530640038110160314167480413166471633860875353463060816071832195305918322880251203007191341099120648308442405193702790972922385269188732880715683728991839226003624849648372550069447616176509416758754455186465070846773784614893281325253738311620344733847024212011379019946755583874218458505112890278365767557909171252698039641854756727401763891370447660356717860773881352627857827464719500551517282406007429125637730913982670876795513002635566836207354992906630884326170567603716028553926551392809040770820344335108779764497861344722701877747334647465763743251751229795568173124266019019662328929494418017295951742944110461519530320885626095156416305690630876265392445395840044948136749908116479386024035197920650894962159509219374953060994464104381345100049664150851011462846178265066516689679970802152063106809770721911042343272387032340790844567394689150690008507805045738047324909411369037558232206388748546499527368302020769920428350511138761280806079973597380145712897581768978422252846499633758672626759494286054665021551189333318586866355682607799480420344991904177224616035863333865477950328028819999043253183804975637899283469456211959123461477069400490621292626764890806870830308199434686059529729483297596158475487664110330972749177075800026193623742773396195181232250754089360943234279482141565136840222159363449002851357479978125062463306149985281529370814241100576805365840072516149706644889852320615026874152552190287843690609221004540388679335929963858485899599613404989957787175017029250622876865114777121270547576440419573507572976209029996123571636094286558809765341947019053498142012217897820714385088639831451812586248553325227688694662968314872683708071283594053810171760603760783293616920927622567298599597614529932228338963272281129439666960801843198817902254911443379876649620121262410418242684650074711556272666255720199507431225486030339555163829701414195097147518437059688270888824427649070170749729680327348026910869126178715890034592823452365215888935847362554221127509875579781332161818601875882906134309318434348236987051599185083022489649147121922631658895591527890866801252882234954808825244327297321776657638134611963381802381855923455503477948555846655591217258093668740409267385939665452670461570382674325528080990891326727662183009540878468768533206078682457109216956257277946826943229153512464285041820312931308741979050293583700399759458534778797182984455128522673812907971671056038625723674382613361098118741555117200463423498485496833071321551761829732768635627941921997264318856584186386964879529038581915900499182905691544032271154542798921196279052255800812632142196409848650925909719751478301498420216478615410471897592260365301771400220148653771576274796735088221457481282758055214413355115387387901133914730402105656367380447406030209491862955421407160074103253853982166182147254583053947294753196078814066739685444487048381418311395336115629732137193742497577659913239488183660817452456478093967688654251777406020464439522595120775934131018035045602135826301929215594726117846723631871780421269587683839652335875993656296747973334336629345698526763216651029573802225888814744511007463204110610776238374603600354455781148720962367158346328999358558292719928813266147940425207366694732067512238448986380248186923593172121465257620399412247122235494875562057856786719427026943563471294188453520183079447121502269840975449863827969473014611770292119889044252338491479275750721955040282544983122775480661537583698599855796413928922672497487798538860216486907466690276646668986046868239538451229280584245629265028731025373730159959843584730367227228510328747866008323219620535130401790802115778427027255871092032168888729650519001711042160814827973331953229760520160697319440140707204338068931884602056340900467910287955483470301539580859119580228951660294365557422990387666988221437637023091771164797546681260978843748124953170472896860620574097432962076256251979278320225309163166703755770548222982590083344613116590318438238794388685936662694949431699199924729162874156401449661759662120822290621556128424988830449499761894152942605464405154635259065099957755696782729927371304906733215294339593439189022518633801790487476816472425072179221479753272533311019090266732062451689004249974411649568446520663741766393423736284995372315165320075303641407650114146498235294267731501482840516325603109800191597731375684339631335878450516905889015824881245629255995373605125768563203613764075826746185369805381160310052600479408968391372647275992591785426115167539756278561797869495275537294076521938830437051677460653651171332058888269889428202971094683630536024775328413908504591559822862837344235875484217031864699251074253432030417914105476140212752043950421977781575890809938865386054351078228210920161278069941553765621075366793024528916903840578136690801571345924944087842692598213248645097689708554528938691330544339205434788918769345588205407790138745795458638698257429014284691859679688402318672298501199448665527819345487790946122946657386937890598103106746327570998288211904635788376491820669943266801505218398699630191968444853367594051800558260137513218313255910472940446677699641656678711442362880759664351671596123851776098168549868683769797128055614291773583872082810243897265512495037583774229317989171014967716027168472742362277226948555889285868210047569924313411000924750611422216720251946693111853292069537874535422771011752165836876983034458631716767484605305445063363559533264690859343995263491866127495921648003378512029380945341865613906436298195853608149850419715449996672046839973930926473101850623388079851766598912273624686239632442884743138681281471757829012990081303189627589229907618985808280945067149344890235578270423106303591122112820325631676131123704315155560657109797990283293692554333083282064137622318532784237215375354638578661539502007917230498450774436393399297297219116127476173022596875839647328972650437720826813610675076096131476293747886850765276157288976299844194082079534372657722784230206567139753773344912255940348802439912432109171292648970946300229786632578693109973323623264196583558140889762212070187068636241629685103095751451073530853647005036531907265504927943885449086110202582795477559165369682511886084766524690117007092276173622393331368739316908723040329565313402110674665842552978928992351093895453955882328511867620372826288724192196561990828274997196232802349727796717460679242580793070336112424950305638446611340907138843806447998267186533680866529032380559565351172790467467840461333117012722798753775841890049985921008017274833839703564565413293357959656160186818281934085505929593336839649699735303548081091694914948518185817479183749077290155980246167212994787175206374347444197969452965138017555689571126510846910746666448722264294316774214654389654335265262882722939724315301075103895193651324451553721211378311752555114117462624858711239807741528200582400553095303800171099350681622393802995545869967936870094364390071311645955596484215836373203949829802992284588126085888601838370126247724164901959471932255132174261281621354439420616158019214442229979760492520523586640265379464609732405785553150571487393061605723475220679487746396050809281228843282678214153137848313093680360420892622178039750847707177533705694725034233886083591172416521382215735662947481859748536404976827591811229455343876030691396195809328272390792234403863944750123882284904420370443964456150867254781218453661301796768214550080427585493465517569799388140733018193306702508048642487022511883652135727210498930778461738797002657076823974375669826655640172519012948338334155405259247551356160108753478014288927740759852389993824506650526054294079584686071293989268070427402744907703457189841431646055477611559858311221238364545746234085792578125740451183021550715365732929394404569688470777658234756998231600346433799465414846153276981921541821739185348877665134488859785154726630460279204739614869130296649012290317922607656921285733602343342501197773694544777169214485273954001777844020689016437244978824456091663209967332082890413109885183625440754092180101081245197293751498517781728189578445285972103598452431990426109120784593943701984474187487195578838951974014198566922380362822091359980459536937954758302301565983606763810983576207547505799039987563860220050035785226841619303868883365104618686173026248024632759137774289632624006618147562726926658873133479965570145611712112980848519382567268810971266842393316162301981707665796863445945701554376786036836706520564014286707722325673005065849237203514192363587120570785545179224791239644396713522493550068220258578993181078044455503887874688521118432188380644109121290509068325809356398681940654688534997279578295158950186991610629680570255384386931067266663645031732510606206429921947612597972964895542958761104132871110558789143881065093683022897882314718594888939083816499580769975142108759498175275319607490162927915813928804686994534595174979888277133974882951285417841189990431054794716670466002453324641546650617491705432616473318274616941899470108218717270772516376374606138414520586570815533613857862364195398658345707666836099205392866095844178582240216355366994897535200851697905675202958720862433169557618960374513877386550649879433247221361401199468636040637523032107136852847278402488772240035346285753030423692138116507692241418981224393397920493385582273484374740582338297459153071535580046093578150925273078672684881887710100480027919157530236090798688946689674158776895244536229114733447923838757492097120924955709171198235795224463745286768732238139133754510629004271959062688142733444592652315435013295091624747350061726778020221947181229310917178880486057795137879101094418824645295615458050220903677423216293435117007453315833449911831431883070454969194275934965835733727050465513486325900718595626113910770129515094126710015898735915663941756251631713401437207998620319217072475933088795097265482409660494514672724077118188794721722714607506509659485535539137362850404910188515879794787807702038915257433962079066235260296594613181397763727407671780126697962683036464244348155563730905266932328506309950887446637158205539048881177580103338118919194830391119877607001789132673399680656495832976049640549256629610593446401043038848350127493688575166730118505797730359326797210308775799273325804437014998578887870849460882420657749827852170836745548488611289196171137156153670320597449005572760585419363282283412062162774320060450090201526994438992775185827357309437336951188903447140904272934340392345266528714001500492303889752603449906042885042854195571379404842454561727461396405077832596787146094314166196504183192816359794347186450036677633450978437919736250368251663227338128661375082363998965797360386633104617443974992249245094856093755802304667398197942928705980625842048871244347038645548547925546097420602557292273704472333655085007353240804569287023348764467501160746594070782603124644931052365707944433588928982828666367291130969856529327295919967564801201169348253282106221411408175783417216169175482886518230049697451371704308203509388973651111887086663749469267539636542238168943098231656852540681574057278291208696241309194034122332638570970558515233269950446263060697638001225705602959802646858130197320244493853409312722035786455752507940781706731091367412008758105276435323144400527822646863937614244089719140772573375753272268388250556880957106083315970814932023601259297409906720330110930347922600132379064432903985297699410231402364378237488987422416535631112469362578659995613619766302841111513393879503627250643593111947172674778741201994581075900245116453801704673475571532846476065525132775831724122506037139282566867642269518115608926757844798935586298745188163065097924380133246552500624640098935958627415155284693408557619837393386067620270102499832941681798924483232573005383201385147890833879564168442291539017299484029849403731835969366023166899345709672215732193330816775842417269017153577373429125753540645980385698955682134809626016061068708523742083075507198765783481327000854061974778681346278049234987581377600858137642845479898514877619868735732660540542051026705823749300170442353065939374356463996910183539443966570069450881122235590925779230101623136041285711852859898712175209505444489070540728413139340859168214508350622991835180849844654272608128339914054100923732112568481047299159771246734328049408745813015052244320357638228413787388508428570435490530038892075513105529871682453766086519974028511759347473184827440929161693847906682736645819471115401179314884275359171953864533919140731573096624235243460782865368900415135570165306103273038908601278478447570361416564292396880741088402210703682210651597001896425780650131000786112249827330385767832607226243181807008940436926944253844387183612155342330737974223679805521628565287389784241223735320752634501030541938518248494705242068751359016186118634989912501999161817207210927992358637262765588700005081223930023999673262259487821318996773261269706786599079649602327313935677536935132442739970119147053364651679236767627229784729600355243046335121157512707697990292819602520938526612646200907633719828054230661334298692142913288315520580427311203570847603996693224440332561128373428899138213320344639133512809356089629034188053478613115155685870366213090630905100193733199486272124495611635086446236834030701997331758049224250647393237627169769652461024519712047600461139943182355078193935697814036183676516507175285036810549630522446367546158063930330158370663645730134812747908003468139917025210991207818233022924433498293828344274521800359817169116809631698137852664628166810313397160488045860467128228866860027303343010129496196806526053806968995644610850583128644136449686118193718916993381404365285305659617793387000039574717629298303274560727251715500137592751059434876194216544237401759965740941920642579055797229577147255710144493341498383083936023522846454331293621369172969029412664994265274415392902545376069800737589826032236701291112273007685877067146380371728634473907995660078521711722666149463963043384885257600236108906009043333963717974135588292940470527361611086344280801176319720954723340926626165888296923595966533157654686067038350952398890197728604714251311739090806004867998577293329189212991876023389897036329253272625444988100728974124424207337005168887274779963169371972644389208385578265248036027887826561911284772323915261977682293382794212504360682394854960437571559153640111237168789100335506252257084729080031452338109550683331902327442478458950235458565057121520850887511829474941237709990804884005922070274161377714751401487731393467517462860762475898870076775642102085475454215030230816393558917660710777009618519175888488562245825713898716039622581265146153163285652121723320419299869523872729218909387015436785395211085856879032248325214970872227968001895902643003270879301671018201127958891491626458142423239616123534082902796466714494067031691332580808151878426392555100167418243920310736005105772393722284454769369941940159657672702880162659393091315955521880460261622889027894502978409861129336846255325172511265699104901342942715763081125428956349031372016507116218757704230680497458369098306751066691959012232070994355532175092296259233821676820106279920313555182444690116717938156261876154749644052632454593731431319785874584868767404742661461676768280512289298161098988975812310192090680108555005904558461546189241769797198945414666629319015260645325306791849123463628559193943362839181037897028866906245882991160202262463663392911011668955134653565334483501665953389320112732391847674633264416082762014032951169476360866234495414920779290993531149257263943042073595470950917367185119804860352884102333961510262586621140769739395494423316730936554956841240926669667000858026585211227777663519919322429291483808977615100801363380844227084415347539565710308603996530640498778357339613797889780164699690547698859200340337566760207298285399244653505488425248747575877502890305146165012949106760020275915409995243853059507402309595666127958096854754563583880501765568390834155960312025943486828273605137215845705272933517060383682770985729041340858342666649273666631671558791588868437854940153847193812340277186652450067774920389296321138713462684594437330769468766736972891724891852490025775952270340495199952475598958735428383517336278458596843417593298203508159034510931958322057275251563322006406121903268195903321800755350948459872914888149359318270208148549284978534627651640065933300146889029864813856174780615309393952811918075473568380570261836069730459555021736883511075385398862091670974015473095978152345597210972789234630611064578226518242104165149912681076031224719101551687973527216109252521499431143757718357579014529675687107536261187580797568214605925859565937186870895856640470562859555209734408373054925055106885404917546825759462539961807117356554597996790148121193510907870786713549213189381087670082417864416140635113192345936713299425165563530613926883791258118295732417154841102367473328277030484805187914544013129504582408011315237618073837276448158359460319119568395463716592729565455145679656125048655470556585799621324552435288374691175182076676899849021531294168731029131550805958616617969795502794505979061393968577473980479597726885930810643040448262487362790145337437849733879711649002739516209608415700336245995795906429649055621903592051564201044378593388938968731794342426006413422672939004511957866089743266040855894814789425316703010786654873342727982645952599011821847287651281004035311867805460832353755552405894312498073954228240290228363183664051113004149000970547052545170174563639808848320436440255078196751142448230990049870413964534801378238655084527214077729453044204994781455241732488350799292747567801533073335988820485372365323277362220038519559902124166268359846821403768595158258713361840705351970093881709561527257094215185497757679414045762931534900514602571447808214242942630501213649319482714576560383116595296690753118035863276817755829936230603219235665901488720245650608365080530121676700255862546948297043793802680555886042762818257954393834799225964279476534585978088951024399143513669888458354446089845101266873632518513470902037180631264164845380204404322967632555406159642092753872152288102955482814233163673969442015670146392310473108154791657584454683890674986816038040431566430260900759838900773887348033963203117581952986015866042924631144316074687142386143278600252971905772938326445335850611751808682966880012567041324622101140043227808069424771476152842281430535210793135745196502858774926417419785741733996565007984020577786002418093422687363242991824871655508588315000781702353560200134248985375678221882171210933201103438166265290410901775169435534197684935927887293269738727131695034162472603210539303399427979737485993268830928771424596178329571373116976951769519156315414689713775118084176918519214367512825590798917294515453063446161559247159673442659133403118273270336613194787076026570369097573228747088266825141598765989899710066335369994034086709652485293754914223331287599513556780302305750367811164663533201385250130796568404967583102975788275159341373981349938783396826736853387546035838720060785309852345802062378901653281244563442996046494220169540741424574226935582335067192599148058746118181858587595896437744829783164141828813163630609202918033985785038838442990348970837023621313927219158187727093715043012620256834929158133762368627042772091894345760193318410358955198142972546570332547156422275919293840080139574071287080491314560942758903946857206893834535373879717318257568032933424985025917816575584842310264451522066607447028887759842021793831602902333653091795943218548953164159059891495736886833315302635254988899282414916382141566812536737642173303625230661625529586547412784246644093772498067455805243140496187552668944032056184260162424697335238794190991809694195926386693968107059504789698428737277933864536972752407564320870331048151513938302859345532796657895153285667021581790765536991606078467530725334708101149404410844068602088602467317606413362240330646988897017732897689661214647439563944335561713425549301137940992775990684296253815611302142779629916107778556114762173832606933570358767154778398091371035187224765709394762347423243223029642223444264715738353810731399858659264163866508622116492984560724351816429170948686001666042879537048662509071414212989788487620915558819480201284041464922313565283245094691294764639224484393135195133796186085988928059576858375855715889962335825005938145315278961582958491694786076311397699609175408913405584051780602996392639122836415847903091316156029940677992080735674519677885814601134825051743175299780072462198465728617396923860918550008200048250084015139925096197865973683947503955891055220879631550204497870507031355695694788281022302808043233545798489169797456410860383764957028023235190838171727021336142204543466990892368613029807874454365074560869274823379776535576061033391845222732981687671766596179638350032523698063353469077069411725073915954854529480508240286669428648391956878539700799107163218320820799074734138246288938737620095005674253349030405510452261773490081431869484487665933916757735556209625883588547919599008687853638221466548498216771815618367704407253739331927733790560847544712486521284563501889281611576925997786898246893186458441687341527821961134174077978625194700541745109421789731028391378675288401223106018808570566533938862146818886479754809430478521301061202634952425818374599488848591518926871797576539040146840091652977115348869397510734432507133205189254240595004552102267295126423395837942733670420557868528126247888907514036701097593865397536134494952467118583555391298385906768357225816779665938232044938068541736011279421502384502589183517485998743488051007127393496406031997505818259721781892013589741582592837002999088066320328675866911340978856026016010858318641338266250054690581890762911257940995900772883527802080889116046151400769252612154367246328925386939182981610842843534048193318443461195811650372852456840535450748509244291785258524362338550037173327963236213682444176666748644058532081429321596207501074998589400177702170636873498423518080430353752445782417647943967354389074065884064141079144711613567356106398024989978244312010802598364449136143365747823974551999655438767035752283932844004032633624869050159580003905960666925694306825862127822163365597906697675898353504104481070397912268857490687963936202100462775679280032094850861594936082635081030012857262384569217709234895541446030957393373991633272737054173664510775197457533305458750995951024827498934192584985933952357349594889039464224078420375815680838026321691578643022794395471851523153027907285655145413673379983048515084106935357717717956051161660886170042304746690353262066619307279308850373759052373160626975145423703128557164912674281557771708700658018712885257883041330018444683834157276845503363035481321188272948556120032443811116920901000209360895662954654853659470110240694420299621536054564236146865962480870801085427771378273644709383708089642602669313297384396072316060373090062539589577715164362392693263769975469824917541724276070921480993322343751313294573859627836292713375814272171873024396288597550781354161000759267052794902282548933435686059825072127159611759909807185374211188818808681017359887382006230604680094259271012588250223770166073721875163789491016418366434355826626788087358845062800303690644100867255042202100641260734650953019594154679685414440917043337273618842677239483107899058324669019962407493362336866763158914178800363463685583815102570389679157784584447602718046272296853709794480262120368158900263751398396328572330468220998794348875412007918314196333157775769286093665396175359656405356904204098974550259476636183301001945860614468980579279672755360722713056779934187118811315938505739945331789644416941320584141538821607593231885743672229599429301316177376804114022284350187232754586230124163425804265049541820181323518516400883878479628876086896785671585507528888614303927086882505454967954683927388525534194292229989280704776559838192275639278909058478811414189078508454218789558887743131167593714501468788692128233833599352540264967654230996980798778030298408139744109059283727403989144547681526103300334468421636975650693896069535151258627319875539230453185476606958293241271705617642746306267085560862265948426401157275945783848378243691475270584514579123790960907635878370587001410063276881677250793094361888596115400870339487239788158649260284547398644276966377667015850338160736176419705988494059431704017610828977157722916967593847439444192759507451694869295359196207325491816163580284983457561023133469143146761462573340206663311876106934622476660105414982396637658436215623552373402575671726056669656810231347240951041259661303590915785863764563888165199196625765032264906218228812025251575075749782266159779747223000359744292481530082279995983742133608216905101498127996485257966416395727405138804314521890611118029317363799810618393263392948125281825124837309105940295362596960750638024892626751444013682003868165615178835252445233929504414419355502151588009205044130337375240091245548893773021771409362254361911124658743127828946662310614729957687110660171469392935062062060987281453253532868625683475947080378168470799586123174453566529249371069878788201335872806214039443266820276923779386870891148862049369229083702292042371997542508100512643740806685007603509731845521933510157992541421537179268517381775705922023033705699103999496373120417436613081415408524101791090832924285015383075860829953572763285942248098682877102772494654715447974271745433063065328349842830304769312119553720717826472097433795425398672401740327159436866285166050179399281682788144694590012634303809042495935520878264345962959151778703368045477455639281480679404420613572182047859529889518986753965233202638891740412326029990906947978297333135187454847048540836945335274787833632204111553381564060852891625434503718119309246458766731412891983642603557230144187467670782661214933653587129909149276087655382664678688392702725994170583596002311628185429473845548245784883560665219114158856019909508052223866888849281405989724347349777576057959540182576486508134007114917656470885840068876743320436272010668688153753483119625365375638264890125228446728850516386140865796744091042576599161577749891475396296002693538436698081554850899476528215869170119634041398591742055420465008836707981870567288507657138962955941645568538725624267480076848792461298637160525386299420938397858677377645534232118835773146423920961865973145754319752623274821323180622743009778103854520302614432299189399609843449769048006254555665262896638267314325244193532165476602472977581872002631343525077274317330880153635000444843150704248177972691694582617140092824943855930456243642140022135757477200997062914537983408068018686595607431328083614446169670894902302528839385999000021868063087071603000716626200494153443960872346597006925017317658109917330022222977344331189296680402944283332258841166782579570269752183780182884917009751431751596269324512890334511572201683615259152032627367194793760741762784864933877675517216767994128488322222643245501931236766432451958502939157423039745609803687204076569050866697082929841045461072322808475843803093651089150478362424703069133189375097380776769526512254334671886762953670599429395377127202190471239292126378507399580781224951167314445999844339809795316096166904469805292798432466678490138749543519449166308916474803678107148603743757892908797167454882308111970364695440517362399740609616761280849584894250366609657458117400433853094884071221128173069455475665673844578426774305573446258837792721196182686295720304660241781341864207916306139673879920186579721658885868766493869756587807469482374884096632781018834334358046966683320441742798231776164994761711968057835241166211221287953399097690750858295655068835283984771283239739145142744215900823909219535490866721064897723252453115244248827262113549775823490408221559107289366673264062038942752032885725433627630581126941802414105788164388706669170932747609753229736978063965198918960936798920954257791727945823897349236306445297372192754387227459169670770355193385677057867464807629960695712708925560697600603540100107492329109565789412044136974691170385570224305084166767850308838798703489914202833342710145770595141822551097946345926515016780336862001812454382260452617941331414483556393980510056541226367960853630111653798687032971489789152134650558679555652905827453293285227902012361629732790443777894055635902239937969956872741514897842828300000427362854474699150203982462292071820147601826968000751725644525202530989670277957676553456790577424015818253850312206753294649521416355543226217239190093312707872580021157815341511778776909306686266986860356456845588643873331757190610065150030319893428742810780122302751566269104755304909680568753203686793978451652293220739108761951961417388383103258576476100019959670133813166588768279664193940176997969534803065566001255951916752413819969430895141282099998994750974353514765845611546431429854624350196799538029597383193351587172806409143323557653820345927089437540786853683494907642776077276787424105410509758949296448993986637784440029001384222520392987946285379601971928923868842143199719051758390473671954726825786044255311977614347992717199354315131390315694575439478108798651866535124904611246597837122032692166995655153464882725892407274724000489143910154555482613361869953656868948953348675699603118684900820750025473269857588991822368847851374570238351252547300836511408293557114858354624701992754618654302714992921103425353260598986638995997215765574756476564429251785244751861639112299455029664018558250553992347734529983354833859462153055343837441864521381351212726645358512140075664990624352088851372185646215039976438735561678477373789413476616654835537932641668489160874539813463857721784216943577176426617072120953871888945242477526218329288764878184772298258064527100863576564562624618135930143881663878416333888097910993127645096447054851923195097616666966899215592413392296449242481638863051270643460442977750044283177843774538006226199332528444579578704045002962045307232990515759969546878103732043102565672246644242494819330915843806555925270146805415908800150899384207496295054978007327211767812845583144302805521880986425924727230073883768358723184772535847695014837445404765306800173176839333249749978681957483184366792030960837437324949720808421763867624793574988162259719444349772199538713936052599096171500138053267434761326627811500300340068130039503743337539430579801385799025430802659214518042119339015203677848402777649742620351860452953429798359158022091385232123609225119168893750149106955439876166446278552940829038218128123991005049007368970931254867570250527719159341787423438820946779149432803765488953669235525165504619762332941604725237989218650401851336634202187788863739759888134173986615107838093880644246645838557397668411167263322124988469555878929717318569635457910526132575125728996140754642671191249291397251471554114967909432363742148934605635516641101549050654063842443455184252670610478811908051013595709278232559560375310179854336363681841394946143030024048105700748514943479727594750144004729761102705746092779859401241246477296919205700120520240746110872932410605790013224853723724158466820730587952164192215732620508861100437343437982490797026268100680808542028158721843064851550657086475979730841979068058757319767471217321470582063243151635268339948848481405924743968762204140277578377012440146245734365334046221741209134834138558921115688922058691461753416659846407496228606467999851620061161622708534172297900546419966663770818448608279285166689659368230887380203000329535202758763943007868307135718449551518249999196395745040811448177673451061905964428255647178057324953870575838170381599917726154562819297158875604868619640837563807939039941003418432790267811591717011441149644003123665751639622910422020152983570132937800513895658696840098151891495962273646572152588860827402039903622261599844419552282710735944500106987333017670682349027160693077180496286963315378924820124948060891782658591138316191586005711192226445543957809427847775464217081494027246341961395179258617889075515688973984545976563052907967982690344948188367669950372298221786466772952752846308380314153996472415131050305699122457918768902109018527039726858040695878010937342005154385388459689463431654982834767303727839511682792052812536732048842929495243397930898099281445732226929324634680646839561145313722468292561210704574299632375847042383344621947954947757900056644686874458454849226904354309356744928930127358720437345090956162901242126752432036785750573370057056484271938422776427807849332340896196671260765342749673356105356765278517666732365575304594415837426877963533882326158269964959520663327317817421574810819611044197601427651435202623912172417177877818711418081966607508160042433502495141944929817862016368639320533099245458890086426422494530991059746205864023950894402792286990478530708476397491022898664969209596117284019791096519268295990429883658397993929584773717020672906690837105599631024364113672550270306732093281308794227679450976154235767918228378075724372214368489785418001372625345148065132425273281598547092721264068262068578042548923614742174770925106688808358357448413195453352039893484371875362767438393454780859137440314577472620569294527400900024076655124016643924994282971239464133868215938040546825883189997784908591298086940279407176649428059095454592598599503950955779260145463170305758277468832716585524020356752808005304374813794631986060052953351844403453024219846464111397381508297446687178982208099529407700051231781947331895839719451827077202260859081878378852105424775612421914144458463952185590028432941378781896291865702422845828657201008256694355839728405844755215160014269916522706788378204695131461608916336609172493602919388417460008540834487216670133415876385679223168065153685272062905663450421491511582365169854256028960018346653366880964742049033345204806396799105548727980744119907940833547918071438187954649254465242972465085106710207502111008207951748126141904039543833489782698426695873079370236301165319451653236613738598039958489022178904032731042150266771416040215542873592785133819151289855844377990003103902180844595998396326537452065725987344995890403897134749371313553302155571673834958370941443478367695542869287876447366236989517903100489841008849091133813989922131086027992868977601129649825955114337525188084087962868104301869195532072841450939986660434935013067889215678215028941747444528378406646856689418157110952463041486928661251068586281793107127187906687940968210196113434202415270237649548984456843362897905422348830775481893737002319225129775895135593332505671056433199077960274955041289189825508800834297801080645518957389367172379910708353539628516218117870766879315855588399493644902009282102269793933957676251405298851004394897117091804362380248793934339283562313490856182360353424800774687359867745720816903367159061521284502429450076403711642892552247084887725762095242048855242683714044651462385371793605439478749361157752126013273445459509052963640670642306367667651442567958378582058826520790137247688281876381575957299727104218502210354865484164514158316413769221656702606915558069795580267215585812030368720923818958864688305945433286748717994091220120877171836849219661261399618284860649464674576321196998698286058020762518301607391771799183409506230819807692267575638990790661467819816883101866714417171861360624444027561624602981683779041707852707226124518886142423222646358232689766521375206519511109571274959963307991049086219676797853923239362293737625276422047614553769959147773756687128149252682600982149906425173159986716853943515098528800456457094031544694044814067220895979426699017331282598974894083441490255241218622677077680812189031597917127629354650411121433774849857007548754988006793701082312226833700628650320028740851546994233011276177856522674895556632535854336117500012783619099619799123061917079647648628939356376694124409579522927028175311414435507855408837840994193218178565218924875869509903221127788784902515163524963200655301807850182208304173139843634176941695061189340828029725367182490211454480853558345441727885134081622985429251010723810424230032525614785325023453478011724262944582859797623607491958196104834205975842215589726092748689455459126996856057554866997025147957476334824125892105888903558177856798923316975367183639185800542958927117072001384444263164568557463819668542557781266338865176936956615144442252289449769210004649089990783827685777036173524439634679201958421023669509719782904867269575735900706034854237239298586515315503588754824912547857157953792708254533348168400470442784423883925533170460656301497619014038508343922001140868697713090208966650584432051515248484599249205573670687637463228170527009422732192213043391734811920004968294142204604720609651061089934110778042617074185294988419744325328964825337026014622661834947972127851748291472173861717015341136608551454925077684889364044615215563671763948191933217370458786876679809738668183714954666044291985422933003669888493513910767937620782397802952147083964909701810500739149662561064108548067094055796642229801984189846430454715673884820100528343691736463625209782507407872419769119457083839194590220764934906824417661800827996983665640744173876886245994155280314997250660638710935063719080020533790865069236728787230651904792995621713289375879036789945887694702604118478116231622802890196281571044874664492267340589046799730557645361704265638766805355220874907312903921042577835365424637036013350042191671824355182616014016044042152575940581881420157518651187603628967706890032770626412338647334132780469657811408588477656277484022843127743254290462883604174516883426242660039109312580113686277074030114132124832843959347552381310505096043186155815851958520725620971905970003006378833566784417802623453656889571733265537028007347319938058941911679301737658297921226917423070764519697986450861687157618813024643286425463006207974943326728738210941271713039898715987194327004305525579871537418734167790542362717415269428030897718423476112280121691672443070809771749217179091157529008530701900568611892735031607698797428674434745855063558554470991851660004618545994395787208297802806364550474686817310783535337501907726888629286698380514203313079079258138732370947538228986273851077836380822179889529208291031468295355579840046151858255376384121891840147951484982010036572668433473048789906468745465221523198303379678227974136514387863161201575674708525212954409336385267484922660589410788883301759902698507289134614729420137139180940026750113030772408939776810366832503409429423248215676117221350360801168777517385859479256343395489335828689837417491771495058540936929488562710811125469407265410360038619834043456232585188982579664452165159513603456212818488006870668497554644846817374965986986822513654529086201603275894762989966425698060988479424090950783575568852143529935819597583570012463655281173595751224130619475893423102708715296187577626520958293390736217415118807620831984509457030729207180015151141083358328953983728361460862490402404899302703137763848260047002618681667549572546503111329403754599477600664963442526212890637085952376404692977331737737367218269233784638188600789514004736916340887918921432060955439440086070884483279531389952948351059267231503798128315969641316229655665700140405312235854499774481938339012528528857783717710146815865784920077103361961255889426981036975612873753497296050700009679751088378171005892682213532788975649006217423548052937047159338787177455178874876998622167031546264862926222561576574367571509520436517510144291779414689815265113387452849353213028306000196094860941482704485094940122130194571577417585866920360880625239637048600900723524455226151353942963810946167997215129209727373569637735679512677239400606662875191053436124225017348519488589900957606263076950541918117762745522474266389259342608105541555686728826240513018439161435494125399250556907314990148989038077641626170111711993358122423694118966767561194899454261203579380069859248844330838285112761239173677267733165165762776257087778463890033497740947874657506301856113401351389719177082758154068527976192739803094716809140632082928387699032631744307114825302567936943752791065995959622207117797544349763251775396761221369413165194704419507278935124945133824210558236793064012803001255471697420429583979949896493663670834339055015026416754508588367277148134928757863248655349431102006860006469869883563055944270111370489239509271693374838398911675145476663725013488892984301683576484324138921866179972128184723741136192849937442120045882531532273832080195277257705994483374864469411888247654237355349149258533956810268188039564583753616983456969307625564973550119649345816962489560152540106226371726314868891622886980030789056399774654546667879165863457903954982517934599014451612309627702458853253752276272272910927097244281446298901139182979677528414566435775511213987252575598766823129858706528966159154626511639637687344834737040534814918497917463449864239237178157538224654076418119161632645448667063311929995484037337535226711264833943817700441308083414624066987391660793637535783460122567516022108484706324423300547986722957089038137973201880468129744486538852315972984332279833934271146386754571333916042935728225791615977368225778424774072795853726286134963152706892583540407333380918553325153810425162541789310063457426119643975485132725482947553723016857451605695458405192514776975705390674932303941856283379146383873172340013902341152810701106702325649459263119694024238883955659849351366895555214344405607702461670701612680345039630017230789621715931240915301801512909209272792033032942637647176628989123711704340563716625227193426712157244303275858928852769431781120777443463774809975532335817962752404387939185190714759740973968559930345180825473206475338915836094896584425568698668768079509438569425657415820771363304689771203075482934377109794577900474190876997945795302364425575375878405924042887088365893336321433170577155683717512978711694413931809463310294731511486626677931229671021935292234871890836711862381877876651201024225818969191107556383735948552376379045698946263920661433436937398096669507949343296181692185154641660383526475393129894124581315678855944976035627487725889325100563425370220737123723732221568130214361041299610811241765697633452167077362194108245106015377441931239295425216317444193903411601974565815079590110817133503821525729317245488158851233478285277026259449647179175842104207421237441653010471189671005837628378183592495895520860274264790483467772565026677697869564247773279264570789549586976298404613326878435290471628312478732998883920975133949283109189121598493461600973906379808593115177032636991970351230741868988299455406994784354218415800700432353911320331982451741201074736936997925953776053973310974572361533266791166288521744584902989658864423595337630480240533757997745086978069806435693054477623192994427789731046647081201738015206055150430366873672595721295046608436764757214560305882098693189690406855755882368739614778078464380693044969990603799698712982680005000177582782160331575501786149931432741759780058414701012968028249709578286409155735092950640093670836111572301371595540831464494752036398212561840617266573215052107662702654057927557681241634986149290893804537063883942583794312233434444456862790864634866946039864708570896124967551872160550214588668257890777059465766641227138961375228127821109710729306316950986172699877255462876913880654149770856002572128005214457203159824975476087491663798473355145282841428878769023516575406660591209642718988126673547434444062759005785822185607469213714137685255455839266914311645512145703676790964592308494860677594933778361767356258240186501448326956874146425885054800582015015638847136062445453227373183391752014936654830795584003173293443342401327931386619599899573569884036736291155931664018042309079972810305735904620210117612354173804616494314518190570311299753362231434696142893715062022834771863362583795558389730432240011673691159879613665310525371639393832799721186103745032042360325688624097041013508077114330875348122000544808176556499981708196704430265427962161877797481703004159705408642417965680294647269429370954068215511624198535716960437128763107491066763224164595109427916312258783092511061811480415758723904326807727545521980781735168889888659479779183670157342157493702173141623629683851122167418109617295499341703071173215667038517782828433773862227838077565704848507628561432663083333960097371184329624979611018137470227588397055217620450239132023897169202816708396630356402369985073211382679803039069451465022226375391999498006424060136888331688048460373224553577783159466359686791184082032400121919616789893589646665875903852832497354623477432969345108328368326399937067446883136739950340496967855675504672551152612752984179351258146264450156132343486129320264961489852290822664904332822722487156669462047714858533603288896357354898440362364293861620591450930149702483747031236505197207262954114879320879891082230156238375945776594258763918874884540151953318491242112301676571225724333064314141415572110772481246200716333250995015309309980172614942801159579161757024315549313793705972054101052283256584638591909979423009858396115747095291119375665550428103717251320059378116397881966283345478612556763449525730382805369145999552612903014154115313347898441764146840665777090966277383345791292326849724220582329336404170553899317591398933624885800147006490387113550503312196266314415434007973172931289326079239615128092890326340270654500274932111169732394262237649065617430196404563006138014481309500617233954178615374723990997450271621991700078176430521021824166110223160061736882993096365962394718526727876736187845260642156988124182957664487451875090336630095257902042184627621738909987885302840620463040924100625822907828408691852108599597613177356826737423880436268353912586786619889426568250673491063587741551843973101043975394233016465085523451727073633721304018565194919536624061029707486304887852311546845396267731190927927117442039120894037709822085021156204696005692885117277320152168960311772775741738521164394570047339301229503409483124395577382142912989334081980180312834041990839556073947466526375015406490674165538945593711194373935313885843294274912051850810017350314192964376271349728624248464809750396795402339093244353396760208590013981124030652002474735142275393901207811404745837569818716269528565608360673784414218397420832306054390694110893981986636656008000219441183330927630470047726262884313516262199462950133537416969948970730057791330020770754330036487617634729380208910503133301824900529317943007661879648314242101644198309944330953671142328395617968913775192501520990618888264438239404836470985853148355261109466386364059074208821930313126725105942257667007328500140549506961752473200788851202763215837670113330883209238116483640972700850911743859188668951136295675087525544776626900418977803641585915430465859856409650241553991812101231621752847325252467774012888595509282334252223778004687804124966353972297030041629775406279901503611487134966306609355609267627228228481251530585281855359544130974420266749947196734346250558610270354354170408881401832790777135756186027042839905144698957756356428504281883373304932267264318404096047998863132083538260438054372958610163352196318275928168816094686428854348154180125924188995522021746019383435535861332380581153025938415071993356605213835411591050760360520659674293623041709855399339848958183072778731811584352133915915022096299897751842050232619516271874366173712505141778082128668748734406212061158756232767841377032407816647865461158866781026549078542453996668451540125696987022214990383270982479995860459665631197855536712725526113748369875457903240656925327176946820782486619175366278316966553286222918196880262179787300083592157188740143582768419422704910137145388317129752175084920404125228296707969135606081818750549367960890759452720100366815186436581822084023670846737213729403726554648279494334536423687873738127699643762248231797711672887000175201117148955800702103238235859697356233342040778497859866789576911464243951381319166809724563950777364050034142431316329628511876161926146609044226384814717620883968686121393587591253995403927253531682390620452921366614130337732819631584768709281514348784112474897358857225895379618131840614027909510384537199963021966039390222726689440601465038367334652317807310169123859402561338918725488953164437529092871969899664342348985703451713558349281172189627779679194420432030722987974412463180522550266698830660157766970275935808802538421297049772124240497867265964145034544011593528968789834259266666917983776430628941387413972058271557292693951000789304390635417801460229000460503983920790302349798882760955886392736467947604792555986050172659753685708959843708925831031158926021053757313078346114628301822168011331335399812848555382471199514869845100934291378592250877270255927832357036281609714947272611675375825767073725590999805192085257491214197355177080215371994130379547177868492310000397864894638479650974147282737015343293012482023288451910392746874523906799581105942656373430261284214652909361019636243617434549253456000667034523400546817757453339927869473002184950033039014084906301497302516106878968411151686933198495238707199487202917208865128068647108290131377315974693425364237281818445144774450134731411671733385002863625996155843505488235893722843841680258822516493882181300213073867985017857426853474073119426291337745304440494383472851464894063823010701583333202239601841751541483333999426646979122469926155159344132275586004658747035428117792727626485099555525769252310662347807488338546318042459006490416555017754745343350902355341553927371259202406086144895993892060576906899118548523145316921023437536771477455315084101856982349799275160639773237706488154155987078253113462889869050219964330766364969067869071568480031411653647428366650505447131104420268177035321530048538165173283149759694592732416127810964063380467418976704356605806530283825734974970679568761570338712884991199107137656016283080823050158473486385796118520242970963162222594491939545602874063784739595193670551880176277929315089174747941213049091151484506875781201477792999979875792486315530350937925232584335343372958674572746166821348639955976767782927358109659879993065650879349649628377098880949453673732315354423306823333815615453679752210839963105070094549025297191325509393725844960347078974662311543237750331451622311823776575171163125340243349651089258130778510787992903088146346894460539818391268606361259542632979524002239063617461483582894233505496391192122052471802789175240832636594367039317836896840077206555136105220044192557968702210760913545105582300999891524075001790854549888018742433586349523329488036596102735382683606688548304267375071865909277050114734235011453153800891620677387387376483588763123444945089914932957228671479929125831549947182900455498315728480107041719924583724301928263333864331606672814760788354754095100620688933476099122177798170097933409309088369151903974135805051051191702278846804578639789376002652045722580864229736341252263922627000684334917368925862417887030916435661338524852184378536473641878893445349102173147147048199127755030097739050831099411246180914945994977858386570852039564390678580951016008930926186507066201019711502993759709089365891859034546591606565546616036105593638547232310301696559677223734436301042414712050376714713056439824339107882937047819240020847356240495625742230924787101867199758984746254682832308080943137972131059700626674917087728221265978733929140531786963142369803708257584949432192692372346266820881685211679920816945915264788380945546671263090913456107971181572205298575997447219530382744061852736216879964075016671679364233439394026187502639704136074253329584254627833654866905940589159452930570714727904394112276839029715458735066299386176991959828823535671630892294625058668234074495253452900008169455498632866511772690758210828320222072338328097444265422708689704185446713918960631750234856267565670764401610496375375936405957447051403839401696718510127701198140177706220419948906962957370027567949410730645711853688618122170612041130730007566964992789925959188419391872623888348154249254303953018909389922221478763242497875757905742178214623219253757228276659340373918789413939711316580820460586107436986142466417910822316320688024350280222938043982487959715852653246144026433973787500889023724439409665284706526948374860912826246543489863464221369160785700526041165593528451567848135404759342365581872137722712423718822175301272852443143963710435264925123092598075226009934428461916933446684966045741149054513271514122765460205006136664841615471233060728881401999953651299979482545435825478218761407070349957185788305080783490936699416392968329358919112922964720696519123098271918820114604141678330098539345305667736226581743937925796696961819779237551021891808963880495806371270928427660970531561752981886823954529927847520252368320838926579568384715114809390048545694769329412178826380876627565582909217536384386561031665242468496452483688744012656240204209137430051179467622106166688678735278385110836893716226947919465251968805763035111332652294717897538602230914344988514612022131045880321083657681058346949674881433314749745405618207595311475386921407096814345123534848295993493693500922660016865820005490186737425485841011308232698730186214932637003385881201461716968455603377236183748496151077506593601125259128382701093043780737808020327661785755091981245406089558700533481132353509851126329262986313810043839948375472650637994918321989940753891101285491924053098385567270136290210114849425209548157747023854877181438300907656040180077932110715675120047657314315140082899150628494971526008128293344350799262999455588398248904823608088817897676957554138819188469064666425983210110370349890334078332833305501308528580822055615596248648947406059650699931733015783650939001983461792582036469386129398030755346333460031907233632449855486920326887777354540968682224467868518849420317114275767295789601098552544636283216816193535232912927405918044876356442413619776578280989437046538439666772406360332868506542244940522544801576544863014928241689480800160407093985932621993915314895589359260688296811478940298817234698611750290241336471867985052313471977795558806144724340188984434500517782421976500851361716125065884836495876788552932132140586190582633956589879637434191132579036884694479990692501308045664233134539605950632322016020073043377715796260401521150806531315498920911139695560512445014575904028877218237353226103011653070751101869569917181367017720408577738067436321354218335335351220742973606318866914174785180206507930379164569551300919558518392485220286722259785773478339382477619515981146135585466605362074975987396882943011627985971558064886374698215122320294841328440807356288294001809313256270633070092271411997923821389203954413222052754248106384393157408550080709940177871493059409742831555813134338126685077950621152197602219873659764954199420822009093945035426570139009938504532698963412981975887915886713451363607808987460207799409128913216996231401290432239156684160020614738238920962210561113945357038527285649643224880318907844749540793320808246420149529450743608130245469188268099128616702380636242184273178940768437343808667839739969611681762868441705326309551740485465903530350477089328528273595797110022347561384546768174523703006166116055136279755074199962979033544320645899330388270436042960667017446237146944825530632284741501766542625577221709684333746742077650324487131063128449228362201069576937543834792098181465282863267887865345644344415805906997888561791818069881452811260235821167969919499228004694937356165522798225271994503210457453795160426448347229620845538408280952321566912179565943625516570096212289726667945266949081574739152446814404810338143719782432812937967216485249875653899686133259075109559093510634805482378107655865740424941688549732705189455772169494472215520367465990491819569224652780441167830848657837062059847404456811444774895941513834888480184609201759528647990641545414491732291643479383255184988131391991206725467348921652141789234816875624449331862598246940527688815989442907276130601737992656269152910950292794776441645820921210751889992912428229697724658475565659601287834412749093687918333339071984837923510826492243857861638891956935105370106983844870428092390780482646729398172503813001894864799915696508263386339221404117723710196586742390895279887309728213476969816858826269269281871027245027711514451589281768268501736863641237764864148854906985777282423908717011999019960824376512532320828572160936251941783101369826750327884654771685622245074484518872674278219290859226129667357615340548499498972385368850082954709984263515105021185694703870420613722109949724439996261478530453933806919007437397501230282227081314940816968087414058154448148004493258178381642567927236491813955059158417339592951491813793488549790869282335317068392365626152403580234703506304905439191382312284557299359331236143672978158072269224474043851649716284636697118777788637067181427914213863557702557054825412598688196429559637589728264563632478779300961364002985096443120459542758973337068112888533050943836815710817670278482357813083336060711130968679047665176445818656863888354618748537804387621950693049134028979031146011787079493074703787120368518035295607349048067249461090299815935103172779176895577679721580283192822266369154915672453953088766408335479753389920127643940849283960179628718525960855051258864874597639312610643557789867055587403633168754412903666323314560718813755890983758901077802567090873880630453695078283725118186658622131530135453744279609103697883693980451594750815434952989020226362584598997592747268856267091664025258845332613840073708786764291467264475134334980663082442809007147952375171096978226299254783815832562602573826027209013158720610875199125894155013304722410655982292570647381462413761206924748520950328427171141837675921201233143334557570566854285353578131691034326159914063233559517585776149604692823682596905340573344460860112242525273538496894059984033254604357863077237609928167019006404546862511566034599072100581559980551486415533856651129787795958321699677903335995007888593169958885348127509402487577151345338772359999045841998184013816632881327550848415519931680873121670132670798808239125046022535011754729776527758680782015644748280088656846340082466380197754383501226672410157090176888950970873165274073524513278926893113537352215065755930075454857137194151378582009895069318988243120518816166005841824730677971087128344949065258093493880631023776758082057656583721549766708405482770873852821368815605766346988760406961967379635047509178231614904916787939333755857641175487556756595579194381216291521226830176780465521620154228107453487127792148707076442737299140579736849156672032197769111521765057325303617853260500188449700287208613447890281766933456050631806680042496621261569529716884782637196348266428576736279326655268016960286662586595163583913369436867930777136231575304214212785619269817448792158183096752877345389852053355662703008216122765591757893832655606869921206264787619475119387873492062486994507116226503307999379031409213801320006967877472284263921238992208156076315098049188401533987465963038625138554103024574073345982741262971526455336430936588414147415475636896247644863027507085059246928065527863994461399725828045576585840416593166183380311878092814759419010025167952378669849456739025493055990906780559579926462574661950035808790921263924671114854135799389708252500013305894015434810255000208216310403833846043040768284491767371384932448739491449709449102761638977006473307348877720762167165184052635199775367459587027054315051222868769233083317660445345230579806695673744945206728679393961003863781335660336204061564703423831176843332454045177441968225126653083084467377939672255095661538671701835316369150534857764668501996690671073003344834587689080617943613985194405263880788878328658023241903511867899934468837616228183432741777440977786390948413528345859841001261304225984725243090404142100581166318611563720644033494932654770609574892933606797860277057296199862760467689748105266029286743189738556760937460445114096983464831375044297482678810729302730144074926395082625266023016623239536365588354971031243943728642485415041866578925218669920670257156648601919051334723327184429170437328831055967264665592095373920296574506063168313903550163233589383304033730819714124614009471451348539060009956914313074928542154338730216106032045212176058746274138599924409843800252624938320023018553787476384874325317827819292989197079602130569096830459728790277881348851122402419343450551480713527527338323596640550499879341246333129419357992454920088337666072656746899118765079714794671346318509470552016567771813580522447258029212809668920533970789103778777291585434274621827611376526966425926369448168512749581633824378237061648984627250335003039645349520867354804118299831970079105910883328581907311168889250526417214763719196640961827304580038111605132370785030189076082164102798793175144211595183332893068503111555883660433634167521651409761804371421741273257434871084299758333042882295351869471216646935832535786969308500930545319796323020390811310492536488788513056895597819839310724898700896949691735053633243199847662644298942442377691536143384679277767628465941520641850687491262499900834243194449881202310583619540419670694456382661323232033966089969966873231283757857257663539163446732587218254800606516419908680066291911199386691726352917836664782392650978792729369693561861530139571760654893462110809674526613560043532474508585281457648682586377570235135364883429580225315011375827399845087928621714315811302654728998676681799435476073449214677621925322271421686652717422916897545026541235370403845590936111770318353208159226108282732342815216802227469104847086677729803149530072000293887850630987117526774321954793952347690881985960969159264070490023123331925450310466305720430816292937769088286745370013947013860429663052109593316851680862875938806185271977575243884712536664748704261052145514461934273671292992172927171933530061994533524099495608746992049472038483730586851301250229462800006046331221163968609978010527053176237300776102583941601943812010945049316714147216166988367996222122185675591839849017176436589999947308206616391658971398289119032842324475236282576269474363636862775150870275330084782724783225401708838514793306390576503635924542410781645492480211829448853384839125253884879029651040673649500517611524692986728226194689407637843454248785966117781594934972952747196254193800096744230913381417266561993897637456252359444551000941149796713322856663947108548292665535289423068994482382687478467827714688262666031848917537752555643669542701588604208725595541738781015057851923046376053687431660652816193437514295197468155121062390324443294327530577050340483674814318668676897024503622940037306403037897718164798944449253195596599079899520040684381422937133452286247594735756429286148576528262358743699879179844751680094146726504918642529913530912875633203331836897231286014760236045270224648134643989276140329832064184439221571955416355447711585699284024278532549556063525684043846613424652177608872045685758235510719598518756442870020024128488848172907196034804590372938069985219013502560800961110976363525796828632492522924377036279558231867564088966039573218419473718118523229387753907822430936335862235339236726824218523790084331745871835726848170033651538545328925208682043978467444172739659553327801904135085622069412879390968306871495723593746670016081704960852806345273837686744488897441065792654872575106448951331090732047593602479779606066998324480238597117243871143514537613564091827880556917687168873344992232298785400962134681488662961255504434557842640247547473850484998596223897047504025284056321740241430110779862616261964139747948420381070850899704835899561206694813503658415915973128094628514145899303537235281828677049475504780779722713113029747845617890018562965444653688445943562304952963763096794236814383429758579499257999354874052976025652760452149723736365823988404888963872545863343092824867373579897816932638778571436202954056173254903924174467936697609424093563898455554582431007447061896857999712488915449472484469009229360818803542303793793199428803196990564103835043309360283170979872915990132749179669916118681691320977667359138998341399590246633237347213419671477818133067853032163541202313872623766953263618098142542823736489679282814888255813620770408481141489058904143284205862048920818408347208309548669635411659097498538719747833247980271508082464075450395302392600450148379471437690827060317004399220295012904254132921628265945100014675708217695995376339025323906908545630481078119297534021979216965496957218156393981076099094569568983411853820959442885791843717784201035968424729993794836756083478358246763187071433682470251055247350509052301143189091848663927198924982325998842457497140580717422146777168424118623592614066039390999668769697949562384906596514278701373131209542774481709374879313305097341495856532986609544534864422193170981139717780692696950889956639628280916237377407887814910318528320221571584167908996686852781497613834150350429544922109713724679753019588882504923511891717984844698669960075955769117515314536985953739868973943866336630716818148330584529458331606091632734537256618643017882556294856874035149529817571322889678991611390403690198750836633917857401153321775655333273648445792917129367396873698352065136814894585174552018950226936540114648101642416812435568174332072250137181101939535400137526469821394518477733783721494053011356002146531020779469561421751129071644268294194095820215746635725336327352091126899948344053451811416356732537326241000446106669400561060654550538777465288321735376191271305758009096848755856690734494073104409790671313956211481157932153698360214448637428402004438325517021161093501425556471039358767202807772271651201144644039951304115771346164435924035479199699481935796670238747748175385605166255920229917863070362201669670994916701359708221709455304634974328875856139134683311737779751834193467824925202943864952459413881644499995899696896587949726662045788339707580704705902343370460584050897924552672324965961204522655392910487614108631237770948255568441712154300271245060649734026717787091798106043863405703672654718723456321081653732888977334992755316653620370394898156340781073296359435419576001815389176508098362316091475948236723683997708691446653178596705226296642598864556719168333358930988266379713208359847442617463457330062157097530054524347556154497243456040632869436325590111215122048351323822293414977067155318833222007484764392182778666091440166763492278460506569845419067287153023812530386283761032511633521073323084252118873250132793966371700515601808298509012856861053348662305897786585235127482441326173139722897843944345378134395971169570663254132475871055704445493938176361590895156494869880545772118997381380331013447429457095977447613217492142015177136177471200527900037820004072741854699307369628640834270265880538744855737375246908943052736975704408019790534186044893318807615077575353310022703136575606556679174443014967377699582861872831621972615360711322230129985706784073803524275902839376425171112258675406652986311813946545247947876419401035239871171924380229387760913385097539372054204204236364648397586275166208145262768195348841560393223996973923428259390934054361446576802637094150871253920717159804996015696980710595009324614697864014634553146393100135285694463505863879527923381964581145944523186642567656578356653007597732660007437369469394568761496777319906177997243495874429414634205903272579699613159320535749657659830185284305389226195711642641176270324793627776949202861132909247789491488550490515720231253548302741285594664311641705764178763158988562585679994867690443899713674651276280831376189744437563469815171778349437165083103690346217455544759822717244057878631118044861502492846282681140466708262756999802419700875374633079420476018674281359485365680299630926613131097488548883889962164215758834628210374538549156885045723500518299636524577598935408433095608718018712220255340754029538583409370836712358164827632574071283556328581039663609017724886158858909482561302458837406620782545900102239846564732152226215277389199326713795245627807203954158152658824841707018438571390532772107298911588173556205499867840866894727799367879504753925952439382268661035467133993734665144705211290304420618830977454157633233072490823956572310935202939653049427040862485906831380847921732968167011932696166316394468831916145127974531181771255281260850134605518168066618849927861070115836571457387260713568103970642889609627297791147529990306783569871555558740409710218600502414120951207553872368100838598505644142647800829626302829887696751831797729266033856842335852171784301322331839447789062882941417053732781190007773760404140133415864471275400934633719830429983383038908585179155144749567384078482578735835514766196249927241051101359325308378025549288819761201414116684221358811033832206409127621182647054101255839358465836988289016398035099829764330798650680276306306388080785525642488383352887359794637981770503947110368782542229205838990711869042543531646269219988087404854639875131835188999069045170836770022257593485359038411153815965527048936970488876232094787014755090869887463994029234355081249541025279648536628313295815804611119847551340469131487347574070553974578200839690584829109174845640070435764345533799338156777332576465897382649844800250806037257706782959630960240582306715249678853327258670264490711575584776490469331057683215710363112971547899208932673964768352949643080930826851846206686672153426391473784041400385569939058177063633253817999912385274028585003705288995395962176571282901554366969651022074996893676148509173711476635447205595634047469336155662356812388628475962905814226796608157266553127025131870902935189155357934076802856945538041236403132191665392780987310733045951682655382085265915591624883839132361304948009246167446820641994133927904436722114415992634878605767216507588388266477168097079252661137399223064921469814601595815219589540818217869064153942563494302455695154717147837506327437424486746006632381733631224438720357565323348356469601294372242481144210860807732456187487691074940808143531616039284024061362604192712639038094682268514211460650458076720114068665177352893597410198679307489186219839415802064735410598456271464823315743397356696770231377340343574714302819046756375523856008933731476375335776420278789247444544680450308324086793631553053815544030203993287629957672360061877233878973953493702681288087181004921487464378629030315065198427940128566980815445555828610710065676005889346723871446150456698701310025907952597496437523620666702490379107413081203672370567246710199482860588259720398570771999802000438682326805640197617480717823296725801153763168336577520956879690657780132754698037115041340448518398627889406527520597268964988864913463460191040078729622718578679572809746429947885323389563902553904163510000000460622221978794467986344684358534248416457623593254196051360019700848842301369376722457709970550225080275908464072377476109679118125393323533383238747349671670556108144202962168993207934088716458692903651581685068414594924888532365862384617401230060488380470609761978094721720081497406027430632256393844940452068840829075672069287934614359267512428090185830555887117333536004888500663219660091957526462685934876282608247408902641565247535101249399186093582292808346851962847824730791534669455575451167596442354228164143387779507605438281252634807505821066588576380703300738414295531629766743277852607197250296299474017333811896271006543869713764861769551420208303077664381017256625140077433142226581392048579950863326987565598785945411607025780930607325107755745373145731591666684760100899711613392992185812385137681099866913019814087436701273652362010445322700724527790323891053478304915191237376213205931432285619773203488348738056856941309865424026090775227886914477532599168031504513499618379721551429673705535185420656013771901428768540365709829223128803337131075647157968728846199925691803566146277096695487226314926854740968974490020027962361906846089873648621415808594672641149217122895606966857189778152328216657805217486222564356292520113388746015685660616438712460669231323283501806404111198513056305645898784021597406326146319518545359428194341213311063486293755708908836965927808940614556346102297719346592033087568956327806075011046220208764562251496476043588553942582306875469467880994254369724553123770355395305536904056358838328231381845875035156915180219714610473625277348607286343464727295338872064771845965367901448691597988890650922791502656753078250795749715589449613254808862046244981447216646259253161580106636165856139633780039457224795128137583097703746108601122129334696704684996581916139420423411067365187082930639737475828561736947650401352126601449623557322908957459142176961914810539189427304789046181304430563349751945978984158337944412514186224323244904088866947717506096437616156750889494047678785453907913691818539835443539541218277380223037295788957872611026711477022577604874328148689381360527592107522756751080640158020244738769745132918330982437003478202170338666509145802855167755565321643414525990512106128745520091261933628593938175392790268174125721229658810325803988096478154768799285960753199911123048001298170048228599960940555942074442347567679969877373764545624454676717086473156748519366092722125745973539027001650675532162657434881738828156072888666610450770841858296707289470499713441536560877660298597903188383509354850277760758210148883515790522670842118095531706967811683528461700120810778380527151193765549550087287877334645479456255954346934364213702045970491214466761231119986760840927910789352053402651865814312374975356448560599972502838037510478674527407489492960070393854427613744156124103077764272383255857588104322783329715558810838717899755961764115898337813171953901070544100987801370980177550994598245049318430927999749117586159950565764419062383669803935389281824393321450266554283935634661025897174414093551179752758534837764501337111356140568359856796465440140319816852124857889523868161973745071832257605377230291734943063498733218365330279953333088179696385464774794520598044197113442793127538570187977194994124778644275896912649266679107560658281608421002393246653706422602346396299726749548815316864521648744307817966545693723222840106390144115980340241053595257861709066634374544668916762935287905555188698233944784104280798170333210596924306567730383887170842688718780723459909622608620630435989711541428752639070879287394920107929338461678749242477902387456109497570575097724789685934777161467681060729818382784236257174102598395803351117738182922200029566524699068461437335424476435585539103883901537846052372583220494822601711090551565783124070802399828177772993877784772512958692097845977880004824551048951319793086532431258141730206831237176290433078478839925878643894834577692477877090667629528452560842340287842589331444734927006926732222863137967324304601751682239126882817191395191465370681997876816579531169693664165105976150900176749480774594052785943075450182167794660781722077073425099670446689810626685649002132650981017212031453374133724544493934553442705305945015199998114683488607428968364839305248813256796959251574142977227305292147972846657406685038099059830465863946023103215107647400500365499216157849294926443924868512758314220470577413267658330727928302405162099307807547505059677146086450355639717523981733335083698692973780533982202388108316130669567437941930853363551065030563427101419676956042101370171408867008716765002701567570208409640214578293658396495617566278080885810823837605878144290681407217625535054961778642015552364271511203528285431204164167361511388446682618308701930494304815532831933230389694873659306115416377797418237416906646667664930081614563330982991009617619825192999440914489284672691262646305427436900874048302507483978628745038420247532434544001261062730080529272666708649395547212720118942280754159278829658988502045334502006813101057070686009241939497860137593572853056064490035889212495699051590717394429145466944226122785181034761732914721047536489213843288532130835143618198396276023121809509537202526295958714748302086555970152723826411603503926548115673871555989254303283372207918107151971386001106947546913353145707821731476999241049107439295499718086491168594109920356891792792908911281220634047116378231224632445995332196675663918093038665467226242461376786419266705158247983753524805786002008448252972615094213103217323747232874855169125707925834297480861090491852815710712336585606747251011137343394186683761248894770907500071729142647572145059917043763858196346334654199170572057770504742743705885507945797715763130185943482457651656802758938479694109850722776251630032605768694556676896736340623280079663494234889672653008567002951411464360757303991824192814784442973504828284463588267964159020330238052936659438630547654631897862871835869870227586837790562981584408647729180376002656966178017508151769488077988047117071649004856133212754476758176575669717389657836688917118618601003893264614832005023719390431848219382252459427958359400598472034897563319804981063523477107738645150787815132465993224265401745045578312191696778648823928652927428360523631892923967550203291289553544731558751486181817313056529161577321156581746188172099492146072328456474932163778851360260098303286751699802625503992850371422266310001136775817299823853065812710992513963831268305464170546068205773463428447155315718697538896978629981340554543254985769389406222572847103417032011757017938856436039019837170197210640581609349936953990864770384446786807661147500182818627873259337242088107910071640994667108233710851775776230053397906624028743030021069540636117541887516005267038753871505271995136189590271331784953574147000873472654161379163108784680550756467934866609134333354196138957065503278016353762933532715587712920123771888753252774382831327070398435746887833713293702741917329206755095222578018376188867797670953983930298044087569062539732922850965463513752841716735315041581843814348727713481153593718154869748837410909399845644258544673224609876490086381871789672937525960156961907852692833339831530086613736963335553130995766336278401293905870148621022540477720921244555376665580617519413822575854877226491731182574545078187630313625838712667951208102369685338067901597769906203459789375105014151540287018605072595031435206555105064521521764814501929044838644695948802406163460847704902345396378892589937832394530994508965275738987258512965216311238530149053462993270706506677140890878077859383517802773041836462671437539431634733292049797896794490970893501372975492365959303950902680087020914625794184039649205577430176864866118079294596115754342704548362392084172458363433530877353759281368071022955570943243297347919051196682423974691791295131567750899941589763132536370484036132319589317945837632785448377641583812462264983269127309370449317175088780648439085859828386079097289372374760136027914608850327434304792091290924602587075767388172342913274491096082456586122406125265119514316072572486356310842218610435256183090226650584743827917195412866907589039220973983587113153497193449374316097227940005476856622170900305287331319561487599977287445257816360481141451936932662378379680778413591632900931379983256563970448806024728620365035463544252547445445235222973860457812703069110779989961489063732319072037883150441974007844231464632138217037633746017660600703098204498068941813289879033973102629263098035497720712732040269150858876317345045701774539760540454564899049071958633710959581960671316994747951865946916526929556333128530578012017772908438235882672489103983067970642956213701090903322691501970867261404615610486329806692827598057656636793153261229008386671450058621887321664396016782341784712766596026122103327676388594154844006479451509073151839099113186651216375864971806139174561665944137574664037080211587500852706356124538739828332145650496387777777979371538107665509447656296628210280754785943148804773612964904587848335197579606320388066479430322989404717255273773973468221926290804455131230980497306846558002811615764905328767403083996353737096138328525298146099120494387321120087501525485754161550851184720223528184120830668448964608414192229183996807589813591381356550319491527134631897688873732311205219137656932623211275153978583568337438176531053594987705694477576885902176760853271715000016990810948169449505674151156055269112647389377908189741159179406773543334480059557761257481373673226028829125268115233351052626310959632403157607333817767567163258932548577797300670545463342033246406237378586147053519427245586170458764443834385576662031041271836488817595397438833152463326703007954906938968533039902956715812770680594917260655840640634853262596489603916221364698382874101739594866353558439894151200087849800300601855629874414185700625700710156342903635310374997302941173255496417307612708979434091576800935199757309811147921174168211679122082797108742437601198092256954327329003220773762684233118951521496880509097424468499915111064743244863901953655584838887661874414623712762190729270830829834078075846081645787675800237174998142452750852556562696695790043745971128131317931208944570150198698641918248253553340263307772115739064888142578309491532463407402997101597299047449929916002347391120603635981692288358191572840488974737472512114146838093179826175630309889318379687003147968767227588771978620360018229340011893092637906394443908716621652039760179387186169887679691174238488337814343982356408831883249235868338959598121763645547107528136592139183896286037203871401779644059785635464683640467741800709741542442005886549642087398262999416272963289572582948518249105987414152383674928394421945562217958217138003289724673223477398190480846272390127864552148512032219383037509544037833674374564937065285936862095075080663134297544649115314306798532441282540321027347579106941616773936881373662071379457529901537052890567069696003740440820429974027723043314893247017734165186169272406029147485434706272374799531395640177633741149168208748081233975241961134593836249887104600408159006155519321700819224773412734307529521935318931201832488512035020913849453662854880747433758105850847552288701908828194038131795721188892782552609606286353512241564702013164272037333644772202528853217388934655612157326651330890737281019451056449110062017810406742714281179108871963736740702310493004716637101013547142062717711447188792065248108817732674680825662824645468549367251877212259673396785610993998704672048584133732872208486062077498469030496832732700736541643195921913423861125063367580387975998984325942158024297757309113402880204180866943396964291866002058991534701622874686124396571285132181007873180541155688988338425310175711899255267058836590591625365962199774181160176778588425289655467795141672744507907435528537991014737127374313253133392439977066864439404290908362800596467003814847165112698747203630715172831639574815768579062071469165294055986124417984914932869338881867301246129809373823303448480088923907272152670761812962241549060213407692576672020274834145852408694208407145678780389252339691420384463986152506345951155636745596821827516604621303904708501680613813178216077903320817289491487849067834189838871090296946817370094026725207814363488268679356474362233988684468308152185414490155244193891048299115783339567519179869137415735958835306630048348638360957211767642945770593958178288917665053140020841868306318895959526594436252888168611186829048473670808332582805507799249123231766199803525889465785489914972764395186579477043139829405239841490798541932792908082563875355582557554047726060566112353515939933803983199835108346531066475608663870233237103362918656215111630209982088472443886050654463302091939176631122407224051902911552594581113019679924365743340531679843244558766252471080878777648496556437599250867629471809403663385122218501322159182002470116772579713185823924122411573842492875959591987350835570870699696458552176488996691043126388026839946288221618915634410916996092546645957487355997554635321873860334596071143621002984856407514639793545273244913990538990797830841916812873848302814942094418979256023958600040734640587594579630709521289335184343188996356541869647705472613284278194748703258480163697070185739614235357917296922528720592315951371553648688268717262572737804285546323642398761414331357662742332133358764895591844921978019058227206329455717618077103658405510529421227488928215042048772071581705627140809710092338550576889834788258598568567313865701637128800538975444401141027820501333268997206130255062088014816713348393506842542477945070744775632717201758346029732198274676548910934433096284548050045239571851083776057346103515355695311207520569201727696855868709848694997052373046205336404222292733470223223279546476089097948321206949067180996057423590751069601706104854299430963685365689166767972951801738123894143705924563125766973719895860326956436525402157779096283578434252745593496246693494614976674940935913708248195382831379007573585493371423458038093096139639024654824933974959909410306130604557595233662035039609889391714235949862774550606613001839332195491748633286712644885893925680669425371278560740442739444739132258893659926192902677857771369045534707355336617972025987205383603687015897082447086538623859102339827768707735774109278864555976337209276657963763116534827801379502307945271490598935152130889656637271223016247124318871320488523651907029503266471600897124193349881603323871049145897449157106773533857579960980907122154274340009212018637459974269421341408746309274207878603633898867493731175278411750393705984455204601083536494329035881833186886535748500570668790751824483490042130656968447224643787896586344877772063322868051805433161771045317839023922230801978203170697993142321424035781912106183131652888806990271315567383895508849299121130089581465019339600985736217494065417234747912721092206681648757395862000072931826118285876216131495097250265754745098658907446344865389474856163570430187651717958605648146007518086879572823894002810852323298458778306866282493590568704101623961633203715264720478919076801814489753331714932134547832252754902786880600109971888823631016576041234685036148189715981797457579979931565138616381082660083780073077243528457161015604716983543564968093517954509486222758537036215477240110167914871905499934914993898473949187462523448423604185992542876798639705724600718918362123940895991488863234158956721536584862071741273781645993217522773292173616351133705223621500562448981736580655902752692377952080771626257600022319656179481444531736439590152171422283811877676159412300852791657869203057220939378810919217124152079984848443854132635564282513444793029540736517864388964957713123030634546915763079799739086563793979534404849930972655977705993545526505319838132953669733298886225122474182898833846350183650227479685620944008330916694384516703138193201967525084490564038805116115281713959419211330372244005855730828905404722876840085504696919241473740253660779881460901869925753172406644327040273388720207946636217122278401061795736508547639906260640033628293167989445389339352859906505040836760760513180458710396995762140189844337870576312835223433593521617894372924657011900881922640249407082042689776151471815141754955462319995089890299847186916213878816217495803774585964789492583499479916169712882596944003872852472534244378693758054937321401472196668569690454720083715218569603930268553629331278461458319615482626188178853116731232094529469501835756992281941249633524836253106111690066113642271039606166783587104318273991795809394950103059631776060679179205742780925722031287856468143030143980089475141279679009851959475958343808032480214815109019527135659528446424254689776063637509017735010060983233386538299754320095185631233870370238456459389493690506808808644762603528811406077906948291046579665127363206759757048778565181322150231986643421949858635165074040856326476968315659912960633021568331753979672331103463135374267885085755478876313892765947015540621167808949735417849969775885524966330467450794195424225784930163976997446751348824979538237578671179361333803606274114062326308706547310464413426998555258491975311283976467638060970811324264266448449354631993783246135285718853250408766363211273145260714963581772729910850231523395182120435019687256561218373228380645330874895496835097554782004564539174420070584198102908541792465297959330942911438257993285833236905266146482013122228725783597372390557693402440440580424597962650187510177849632933930664087445460035256310612931493263150875031940188772522231245744739353048931758446517185901796596862541280493439449849117096734500539839295704041293589218546378512815848921822956260012545132394898629304736763733469615535700693525707555367264479442497379083710937057739254773864594771289077281606333640115923619097890920197699486933000105524782518419877658247348980794613780267461288536617242605779501209261639485003369306029820549265743317913890413185013019435899637078371600400263116768738870848960148590714722614072755416411479423077732721239448029213109788945721282642579716044658603441510334869348566983014083906636111393287882750305832131365217712786419799710263676219497875173436629385411679318405330138885299944099619131089645148534063415595764529380492444665676082241524380447209034682461164481751121732814531075249662969187434322247755505309929957912816868478800425969641259569363903302626486977602447368260164248284724330436131821269548090270524096557419126636631953205570531714600802299286658109223114966373499544881515372460138422896233082642425477609463900890725281213404610603827657463960197700056206289351874245077792733843369225744062752416780940283150688205508357380067059749495757897388876618324459650542980216843603727649335318703947555229689844326148066456106171211581994677985905728672555928686017523283862391977556016315849812114603364498494470378221622811670431179740771339261427377818780747075328299028304654550851126667428546126450684829186928755742684815148412682864535121044264115446752230301101791668273359397155097412762750758459816687392983077548075444005868823602796073560592251099474154888707062831844225513817893017119676097679058919316127424933651499746691203618088202711435875957273467466860334753470760551206851109268846413912691465218897108842128991769904460963739145652082480337220455037706929393636027643543033239754202411977688850604716851064606470100835512461838310450142085163083475284645510516712293791479379343206840068475715225584000305909446490600372336858921323986166584390935046941893504331422016809711829795297098865340161012149798527212101513731741095799528447553046951323872127034365127032825640980006033338630482537126126508760287294811646599373275067746802277401705766564565416400706219152340212524150388740052645519733408086034555732784541657703372698097839165541214421928421373274883371136098061265623749485312315421662326447579354299666365583657403975621332977001233773577662009267908586028330675549331249628241323128281404072895222661868712325069230634099998655566321584081123461733913011389367733753923778823834097694207599992597509624793142977787866340896908546786303040463766918004637255899072288926764823943743867304984091378239459665414501445923956325533232956484524020796124334805756326703419127204051928791674480182217891206925529199483018223060491562627729286732935840295344714394093999466956068031737324774497367759969590795405444692765674602987472913672313567250768343826773268851956572347819472511265896854917525684541067076087025492251626317636742199540804272666707011063008036117501009911255324542641275425178649151260466579911950560725885491877093454181250091336783739135077379201866006584348814490315959758412764389262805127429155276218717109532076526284050607008954869971331716825071883884569144269596806372832803505175657789043526607495243863063475739827811624079437351825865015065388318254200989993227544148202021402076350893275578333220392743704161725445516775894334279688273244049056123544633740573446860776267270439766444413456495008085478856155608698072772155143121357588544590243732276720200472007806556400001561175659294365884455272851871874969537504073828169965321786247774921817902740288195802571206550408925337132041069581780765061454907707331815506304649733937546151134473297928675852572305075028439886193185931605921723334803453243216935755794221232190390529667470534518118835476696052159500641408482244737234226060152462218852897874163999019543953888740365922463787256379980935512462744478239615747935884665398665621107382697937124298743220137809496873368081197117320186846866421994037479040477801231302166702022881661471152582564529422868361557110109647761086402079080588737054265395703859329343450174087017796217828842223853584912258729651738428807081860238676262355795163269682025950075060535239450680057139574861863905703378731652686566245260866647067791144587460254094495225479154890424362410196750008884076749689682310149321185623805085482218426328746986476798130004805763370947956816193518496489754056219271438541833647570715020141216084850843109389999712606449195925860531826589650777698689705196721693658624305569130920758983113899746388924681333931252861246031663208089646977302188527421884281147172217965713203129546279866724301870034497728587851772300108640996434676204450369473759812064517134134227987142745925876257970095635445649489750831132636213119214085474963599085590409623574777583524668291756128745838274131015921693173123391259893880446321333316139992001517469404942184746502561289694005690667794767744613998227657850928167272184136397036315080074466489780126685821852761531354467419765298500518858581817121139795834797847044955285764933268134766622441324817997799601415753273379592875042785657590519253757410723221611748012818414627259389071691673146576763223047789812005917703016739756550668757772472429218226594739382118480582379811623606739244981739986640885200031124881429911370274424862855550773408603298309740817343555369208509324202982656127311453475038928688923381883906070620320858437022067890583236964056414079772957786763956699227672481039421524136154395621810274803582498056065741801840951423788722337242502038788246760098001455829411779425599953832671626240471783285345563327001080181585108002652092631600092023226542073460909431339252261342254907769086304078828426132270927475190514653457557908447856133776325511208618163251767336089689817633092074363800485051461757716419671952763866351946587475402516822965457658413111315239483480096982761128464260847840826899018709004203379724650551645349371836757648218477449208903482653444928500634200914007327056280787222345671282147363800040502202849009661957550539439781488427052516474435629052016406396723219864739265673029476499789318942876363304446255705355242783662052191043563374297710321221053087705400033652159221213358692068546968060535692136437318783888230086081068730856054151634452528442148040329259799976037606400315973449766199302442898075847842600203687348404139660706491160588868379922547169990833218036412579908152599977270356978881254481806941497945184774336693550881740613397702147193998333204836726857761448212458273178153985220168972862541733074419772591426078102133397415708281442831214494157594491437223326935275904117333049681634741974911134138710012527141575701478406072461567340912640070001086602130384458127542601568639902682140446946895248831361827641783487219596401259374773199807266037632292608136727166203932070563867785216675111822527931022713269616338343614256949443571261130523494843493989012384195024168981581590725970860058802035588659441674725738610117856366449380969766167855275183810397918359818517476386178262405487878960810971250232132929692197794450743233981665831593169199302172030352287552898315697253633071005622576836666442294490257980939058736482452299874142186548803977018737252444712033491925879185955242536107082992175579546527207759747170610730617312100200292715552855830563943357321248795933831199269937757504215877412142652264780841928793645964402569909488855941393643118671500244844028331127482912240693686211621491529691004164755336421242651986558545450701011688674906661756492878647904594420360199729596471800998319831100043308562523730799685488863183698039701587343995727284482671456393209884851982614532528855127730446869000337552508362656806039921062934995072379314665153366396037631274445851865665995222435792167709266584976111517587102070332582159692595454886181527769584204135310319972866363918754980186370879415749350305385540935753196301420865858774557856413087535987543902091529821235085179868037348635250852411383903488876521232518621127526723274151053276756302922594976873127494685626119257532367442469756103709870213662407068493653442055971407054310074899713545648027426947870953700119186521222167838418637181132274799752872666745166473543346870316933819887327869738915072290344788064280871019360741961147201676925236425017790072131248826354386613693764070876864602920321962217254060048866561600099788905105996261810685770629754621534028271257141891268142553339710421549249360080542866223400241203386480301863770792342809405231761833800541139647576968614298752226831468831767528112899309274617442718948730488444033432905339054691729093402006888355491426308008733250018097508392632383365989658108266791429380332028235330017574030036792488173021807010672654823236193519101493152803257925378133166544933890119046091234220039590666835492456123352601530644521803479630454609150910866423731673488650069446674699020517613211045400408496905792205349684614757095195025856575358360984606928549762642654962791711767286378469826808469684685939263938382664625697233193334163217522002550746642748523761977140069224848400821063348030340986043198210664365313416587255978173387860692651143553875613270789547510109633799264499932902135854778960786588916258813677242539956917439173788166854059163701729395775670703119746801821738515855143104338508029317649980662496444730607672661155892773657283759615815086964127202384900445183668263919614917324802502854893435089276226818716157188901990340512154820665688620357257965927225195787485944617681162272351035494722436423889783998612096828464589316006181412762599915287126476791993362065039864113429688122582039892858127312759748956077554955697373203891323642009056720238818589780458677052090405350083854493555981854498909730799801263802709607118313323274491318072869596100194579025617488828912819495206124786933743053726416734213350576728842825680337608262833175468446828907199625146315966757543789227644206003193013759140776861539970681065676974100240933417838176285389836488092318183173487515577842299712474952944840485254000272832148274995576133947826648888388191536029191567965130224423512780320863718577124387974691735366764245088467357235758215250876480104051690142788124051343864920366842837554233388465083076298064004240464151869159043309767885976497952565009812935432513211894425391753907562861224628441794409212485465611131183765050733380027952693461912090983606124333870697144268966356860160237816751821362431861943277322400928103219780275816154800146313215842837107113358588865614511454175786298828122140002442723717334131203665148795326886626155818564715212183888385860889843851281995210960014573220356988817456023029529708848774519245588352644283272279235604725918311851185159767882524222771296585184376918656643348627213881703029160709172846087350095004554772339046608423313652399276523321021556955097872934558169261154085266315705931703030071017292266967297344953376440138859588997087875300861481556160862595736602096558252871433057646275920987284505309860824834775445938396439287200746926088877307281132419143858178603137519201121976097415657949295476680420396172223209287126979290475757568585561066213333188363832383943635048662351623242621057534115771445357359324158020309244960688469454242631610861231483185938931070613048147988435237327890205575704623467294795841372745790819761392170608441793678652110377665488955418117405144371143338057317086541000295755004215524413456312621385632150292125042166260329988000817696054231344509431508942955771471584105685040959821093708242912879533653865366334822585125283551656420769786697636863846717913729911845237880505600715769047639166528545351872809088447239322777467488383312806507065213194526262598627314309767663438649213047388080720566456251299133767934094193165275931904763770613429469939077559997541548538321437520490831862328339676345366566800308635749269263818799113653195966088497060870491521506206815782013014148720464450582548161289778506481245848567447815928526348739680112548088635640788544909189281714779505496196345525314617778486268298655226279987692771486333910320546117264743361165542306964381047148030989531270494489656824873850234653846723925544714835576700261667721977510743494684611585584344472896498320025951057672760197845543254671865400233551433890106085752344234238245810062578936947599796299191356720452564062254264727549360047902244835091510619335562821644673536045062892982853974010676986400814614071723916496072153712413068072984564210539543190326057073606090536374592873161043813136811190299005210346905938716106312999226280427289383526968098808754971803900112604326751783202344172683051118042084086271636998501472798673517181843310245518889184304658137022714177959000892616374335025664831654555815888689441186381091491100640919779226125374669507417448211247045864873932889427946671579449766735870830873631134854230535137060864697927076246556339084792022775612238832238208278707841640352800729233372401748571206177431417262716761148606005336834977658818527271443753547303343453823858965020741879139380819678622793512251804152542644872502625408743673811966335030761045080276445428582742474100021249962118787302918949730622532804278336555585926797653935454909047698982032527253312525943218267744822888361554785743171089341117267004005445091945277729025483982749497096913387577708571270302545552685930030862943561878818982763182640639117835234956082662241044700049339252629162898614436612446360878543352463442803735863360262148938259007306499805597524539994463137309337462925295708893572981802566218908107270426674661592150490423714233647969595564023420757720473612912629975682119964061915922973632936810664127784604930009311991399103732427798204463039100927973275116544946002446042489623051490807028310304324885524454791268201953215717140046122375919269381160797095035794188486144118836777053216975745159826379113059891873780948033395968115970623304042950420470612605542818893243495327703222960503884388212708824835258750431858871612468487812630032153601346851134183133507982764338920991854732497879969350180794730435361594361409564234196105096938167357821973279856089780441888755721629067366231933229363429487043594856642469115130644417407036046222340020950757468413049522565005600122919393700248490248519676264078819146848508518298070901357865267427919610573468285134809573204313864412976625646020496606921019570120307320156193914206142063261413481438394919849856758248042322605254066395971410878551142950605594794186912473825251575607318128555540371716442979581193303503015163128235324319730561135872610799892951388300361526997074531210339271913312762379183962277619532414096053605074140342803702869335501603763705058897836210329656220406001120977458138312411103428684041192761053462793634480056405021243567297682164777241967611129204151385398159150401966985388147925982994267870646368130179505816353528948490386033879118357160046176992484230098423447301868144909931446304685919706950443916007292992251331869875693751270784000938372061758919206916765285952382835803487861106265971918202875173436177980340022013274380960790918228310705798993850776851562957396653934562878416389429435017646680443132776041900378087455586101082930051421968089053129435248575582091381729378216819700141323034747729930038488207144607251080213646149037007248256231511986045649764126649984326324486422756616350585744969116080009527725236388672467877163842213610288172437724953512781150262688676537546431112098903262152596959724472318672058400361697010105134117846179184048055604638226362873455740492230727793525960496139936461399814820989236935293517181562201544443474112239639654892091721088837955023896910890386751997861492918973017994046197572504381106697706729970206150583220288579231233373609442602833624496339633273774073621010602146466508790047585024501406173431743942204862581984543354486667368391717943931447574148334385613343665144772399371793408110263166439111123451879225920619457478381777234175210780617571725423160154713007514566055301865698144094820890027791985261819233894322162517110241490857683895213754370048754633371144223871161083586982912985829574472485246999539947831293891594641662526307444496174991632787081121850605943251720204166607755116318806280294178647390469391417783648933633680917241391510462182757731275096745443708465817660778183176427982017422827163131866116641327867861274105277891461106673595789961005668616130395469636565995809644058676106286009881986189576413575059296234609105673575084554692314475256256494739227556532214473701596892589161424984073076066319258822240094149293802042446224567077087736246068986035279521619644436985432111530586351836180743051990009570562200173890325453384629893646177484710341186139963500651094098339964907161050284157919491460522044847794369125546572761456789262649707315691702630496269711342719524435225869190192011257368325901284581376149937029175341238550825875722742426705638232416359393613372658982022637281342442174913816335892819856561502523377079810608726469103803822597028040102689450520969275095304302662484872933032485726599681764868985110358409971755481082322425336894871044769878499323129443093188168569334594537697141372605996670299351216272854996861525721803622413159639993403903327775947679312625501629741976610677306540412192551108766478622964147560380405111455843581004560838884632997507511659756001310873408866742703147946936724859680697977026622949862208523351340291052022034466605824416664893017763900176843697944830694143973901514930659817592469102005043723161277260958687344800658898819165195347308459751469381726725270406215712290009844254024764942366204753456085830771663135748720660462926842073188374501173070706660739594016124274978263792924320455619496395407704768368808529730238304242583489495099043633586769885658206907729633170409777939718871962613973691504979909938390367352000935028623599031288192570860725810080698736331518569419861833250032418227446589757920163852729111331629637387429718736513017224625133731617065271351179041264405442338306348572761947691480256891196033065223277370015207129833675331014801683236259400484089800783038154673421761448777246340813830472748746736859111116003479878490772666554321833095129112677353490800817213792579414848723025045075822058832569800976034227674021388629416071642022030959219614932636318090612670307597335382828870095273571005187136357017655397807647835639526865213602410374955645011390312023220731949266901270893704785104533831477129700900770862172180039282211174141343008301622712608032992416028909194058778031366039871875409267073962082946832226281912942059774036748437024166507944265202065345206946660033208185227919144972207269853266209031879407465901540641904697438716749100605743798556027254745161999464970930040248419439472135982136763950979437549680954267281777972252976770269301145953742206843262834040939372056301150107445387202710841951533035040683438230484406393206282266400817354166563754998160487161287146281669577475445609023245077568904314258054608535658215571726759719262200098847209115611237725331355245327411363291484521425342580684116241185603354103021734617784809306745508511802895477649632132206521836634763688230761366843599570427522854514521581618149068749075340024511025772328818420550900197379419843623843012047512834357713433617259412039102674608523951576158587178595175079586854318279190014485289232083866797864563698494562929742916163191043661281725523913776448986172985199967399213515505817632483740191456591700021099061348856634432786353232374524959238080865049128123161614886778964384242662665327014183394265620317156697871301666511113312749152885751147845941127894188651249583985235255599789955735285871132975346878892210307503103575875745075533410121889602349282144735777041759854794259922001121582539071749264276608953234144036851256654998647634496219361406687537467018978299606734004216267165407098190150990383966056607394659169344125661278958005649845768044011236783903893197090132606607421839168532261477149394173218305612955339516540445757198901676824911925693446198459344643141019755296168352879533130328602879585704412375281119805918413042018376647258148605261218662495073695022299543784043641542722550858318947873883675641000949357588375604717174156793521227056462472440741799295613938763884175999430484096217068715655936586854676108185243616763693059314826490160080215168105544749592844837003525195040993446065604581426824476530843694950369532810675475290291911866398111695484881424940669646877640887028012077042737927650706476100251918388371014707911205938011779910864135312852090067168789029845619676863488738666040730308710417558526231196957240035601608965464066726851354027966219716425821864639999315951394990230936035143898534127945546089492401501239704490635111878160755051637478815659096217352499728533262088495729827059549183323634255147255421460411954382173009859880183291842240377482525415855783241837646195847110692990445754863283876714991913944508327404855842703454256232553571955190744463144005252746009052571923594491421030275211814683174768391314205190544230758987346778590946755312892047082240749672106751643472364622987833016538118254448048131627935983658666458710519340932464250886918293786785581141295217481504167562196972429070943854648022585441059843627950698377259157640459755310292372980905525177315684910185819348412763841464605442430330122846877228134045093485357211579874682773726421132962607383044554263173039495800229179917627012762260506764031592075279898842607106017833311009164792635601507464138443899390963786685018167428739383000985094988051244072463664221363409230536561903942109708025421736386532306257630966335370446926464012068829432596368942289853975318218865246794512835226461721050324364371064573484570661442426311268013472875656705059992682756742009836896185534626874190928230321579680303230969477810071892796735555150231776048014605834479017478682255091545111928033827370572791387184971143665676041717205709418861607692062210304478166536790203673856453721981488396649872505961987700308897618998677041526015629684367414905641765865753649671592039635632589596682223981416188376694479701059392916882915630100393321566892502054929379633123238594306747253027468980599741936950795121913349297365032298199687116745202501525060952080115444054454908225266018492625212478632485645670292950446748393117280755025888885620157140175433483062572854026130910657024429707144221359263474580394954780842186711737161569358502440436132696290801070083040033110037510692360889745794985443915911294570090336782716534751951360351090077959922810014111515906045231236969851951704184648800974960301867482114092793237890000138785729530263427222472069059075968593157417744784445907931106849593479665428580893444735877381710399275572784586535578642309919367814679370196822314936191554608178044109352087827927189512732734822521156529719826884345494051826429589801120152021731420113047734581644563281971602924236867343566415931340748157823998714177373459715103645692987992651136908177689539052211555836458320054961987246388759801437362976864536280361392456118187618202689843833710438555096402993142524113472939009981030898382271819511175154620054369372121648454223779774530668287864211315243703754856292823462887729841064950048998589127744899799396383620762807758876151205086489795964380941531658934632905978407781635805283911098498741276046789361943367183580305134551998757923434823204106729485518226285969427010409336145766294847647909047762336332264184318210570989285967919096298806048999221875441923581182484191160201979368941626370451020909803789172564402101788834139214953994549455809190452001483921301209590034486570140933684577605927128774264857395661889717070561711232219280878653389480746613664759534742973626222540952299255770035261559992615148265865250668547115520495501979312041360682403871873900020117990953950086719855457450151565434325219214465798007378980876369537349866104876528631851821577634597403689148351078081935040817833822648295927562885948863063972385527523695916963689011309174673341466093201828074013008138470985813785252488075337884600145909555662684907449016545698334571012433367692657288949461019731805060664799092071216518056872869185959523561282633298760628218500735257831283033923540319733328812550152774777311928760440295595735009150932592057370647633441355056258845515678184775825483691052910926559692748691460132366360032903363492582106775311749617726759337647717476885781134997393597591531090753164133952777297819568608053493490778310682306398321722001916047336681050014024484286146850330012676729731350018611744623146329999186553417795702600810630279314096416512542366568664763904315479136869048792984128009150271806681350868802619385223502843848010218551616552617549635376070795035911095530400873739922179327372610526432828223990276769426572087163247638901235501914773108022950477383578677543734884578929073153900109698101674243450423851546358664497472487651313597312127036261315180228231328771443444172967786175715941252039599672430533831103809707361336071115322082166409900700516246031540314952618381730231708461571811029111628144719392884555123145849609263951938689955192073081497792020457381972235289633890201938496402115198401250488558882313978214293926046359239927388999795245672675794164704176334191355296802267906458266919273307250929732455126134722628124446464299260939509449104789387997286563396171304620001202772688434382988167554813380377934723024803859952001604896087298827313042987871383381497710147374031194179651969267734427834114900007673288220181603015633131227165254908553753794985501186461362768813953484550604607844152869937210543148391762318618042124695191700493204330692179200824676174214445107608111170267560068298247858749441090396020562779986405376125610546289103291633778557480015821712262541448090801575147653102524050456190432503924861101288171661622316556960735630953638075001411760463339297146751269349988568517133293080477662650767410140798832203295642990453143161424941430345851527105370686561410039227560063694946565817676337497938862190715139257647040962284459171597121842050802408831659931673135753635812999774757279373161700723918264359028252208885118950899803812536808754987620624690145240303857620722332990583507004075286465983497109188932172935240103202649605403141964085511524351883330989130579073846734673635780123783319078335946703343003685384566345234422743349667897900698002478113780341577430820558636623895286073972900945133053728207826973602849730477393456730505311103107413091051335434246501646299837288284799115306141322941933091056121931155679986814378102326121000255971251502181106975084762678335795160214066310853022058737601726809165050016951780858629396048898031477108353727350389798200842833577383792964698296497473788640698456867251092701873854768827680331708135338346842573847472026171103839842310328009343209842090994537123360085863839113607701849013619668417131465099908638469770149192130425274956057343353612612838968877035883669147034329012150784079773741111255323981440797874173436303476508919128344940261535154490731781647957946326823767960984639434758968675693513258320354598898082823914543890924971020408609873065415081181338358315112435829896999186702060478287478231126305838883128458673466335990534281323954971486759933038407069779182123376059033109747161685681171197779138292056737863505725481604192531526555595288195227884362029385655706181209114821561324193341008461672892722311535199961531608932855159951012052993160860448212113826955860169644553694215217420212658946023033952841184730057933740295721114977073002493001032618221746688829191405779770742746399811357826577386405031173216952971766318144336666041827830757527680875028911228459632975471757941285388405774911988298273203259199318191608017336454258025350212738562028955403105881979746018730751859042480050924476997337546842604991380745860119663997360568861910064190807641219797405784707699186647770297841189571851451736518669716084431404458232947964417261530381143622035553319774598007649698224865480191954641178758822692240535050662009800428232999851011378348658416675695700353589922229898456414385859126509954147581899581037355184834863196786036495486173529821550621165199355034790039293891410829998342325791700992848550683714568169139207673221311252973778449609613309015219605695424303790106977836947322335247703964843290429010605422129502978193569268277878370437135963490737751053367425293617497655686371788607563030115537416386848993965579543534469589493869467750262440767775022919835601470444959274465448921626963689856734553014268298734028408859282387128543149349201273152303541386199813759273182149210617497173702220477039404307106724504731365445433032961369583898820647525697247038322449834843185392705617196975558516026103633977038664545394637517118475799441790859880272558135948006049298916480168561688797777833099728220090772847867547003470163447190514378831438872070491512577804581685331045606261840669945589367760933197779474038191331123361994862858884302316421236529470797936257148364729334734177920533752591193513124543129450842531680045935577904605207939676145757959790437782896603639755052509255599147519042655082157861379049503742289699050170282312952036747386992005753104671177997650858486490516059481787676118573025712798432257212450774463301856339442582275709394719946931785472756640163763252575249792446901805394220819067395512350889536706888624023768810770893021439566404223744624992698804718048616366772932161703341053190913546661485359831571780287867996787971477969565785380672071912598317587447906610476954250287287548825137392461921807666215691150242512920001639379742940601617017896034960272593910093855167474899262046619794807745737654256879333914701883307197241374084491541655678308230706548065914482198126186991618954679158192484842224201739747569449007390953566132381518194274317794522559987952912083666625921807365807595420248627754537375019884216691333077309219137882119782589214653324094588133854622609019860649994277474163884981207397336540328655780151563367626149297168246397857646882434158052432281496649205606458775585939958805591422325990571010057681631181780142093470090639242300567904405335844586777314769862319184874848065816521478063486744668432903128633859172638667476386316830016695549024251077099844042692716431746207588587368198921294369416544982427266524282829082353070934762097367483925483919403051049606505341368556002188926918430742307288462580630696372490413088932053305783627120978874104789394960882655863406822980322674471025466344328486046968662825411498746236958940112667362620979747514947022288050325767992088477873506709020049226540893960939730435582465593329167297658253719493655771966684889685628399577482825211448981507087474691528630635810123998026396920891212078206322702482743266499177075565113624468209810962731995264657425722861886075256646842875480276100503861469037957735103025355651277784353547667906685546894174898459905947346454049752921120821193442819685280904824371831947842893979119198374502509198575184672013036327437055377930007283447656453992664396065690691048178660603554495525127437215110141802478940853655209476926833016876079221581023396806565969158770711810481970424054276375892630373733695032377887440365421238331669933999503739380764453814645388061322896945570612867254879290104254502430095645975186993281237196428126681739431564017289370817378095602793796787925886009315306864386193410390493964429225993428981650075033503119880343872646977502578289988959079910198415759255596430030614941229812472143028647979389565591236828143690071445208853642909941995478190314563202048433911002326517233064401603083063188990808601947297626965349347444640495398787995181860877327974281831225723308200507581544753145391264897909492835481889998285689686456551503356217511813610279868310076538583071082344547683584729091009672371049667047657193835733432887105941935038353661049852481704209507175146888678288279819876664971347047090035752442257667217958949495064468932517157319813133468591060811621345596620660930210204448878562293954357088100861683414648100940666142308366454863256475881343131342098783635367635553932961696902706406982216147645378211516247502927557247716327732125416577740963118527144548696707587125271958679009736909261409218678621795137199567208119933680421599691555881122214194533777513472826585164880155326469043170168708208757601705172327607051589242715205655687095039444824242480701398494461258898923394526241157248418826267874273625519115527227660410166700827259131292761518012476530279486588255521915819730034695513040722092217733065426747964116986571494993623443517195385279949059835783994719551345711924802630682294296065235772769979692513546276215400332402624868294807721676848203091819976662148885735866184221429447986489344281722853644607883194147055635600623990701303056229603272915212232640602016290614865602046617811998535959145107729894765558034392811840500022791118879735918721425360017149964551773562186186749876966161811913391083297447228852153711167137690921877844611795123174230026334620063251277445071070590712196781093412224155724190892490556689951343358687465136374525803402475504617479003937827914929679159400294380740296356295264386295177987896958696639351367317669642617637727953833358191455386751156355430046394149482707096400092634685257703813870950532872368645593717204385931882770883565264761566550824704329705911883855247311592089758050599598766241874946322930129114564301919796217239864152349238437868850804107301605108626532130809644216547416974042662950047474649406859254703549037405673378327110307173473762088988930978173102711139104306230311105175036882248845817476445301382154134206483833362325396747037741047128261247588257405562758059366068407860033949784176725109175100005772198801855929224717850910762989989462564427499333420121468904012622221546825801273391550603355086201955100121042812845225777329649803982469144182788220388185693263011520903113918231059704467712838777759270477731578388807039475132810689338790138937933346294285358124222149928423825261480119516386166182679714054011157220058386171309316495240479703445036599824162252134432001135816688227680137065349303200619791091855716570509014516931437592115007929121552116849667305912207457194809100513347549867109413387979840426130724014858480388265484914068798577121687683786916182747580983131602734430251961890884911221253192321451068854177950470712512527197524905000910855657405933566002304253725718169539579807181425547498791001681554286440372930871637554712633945594227576028994285768383258997820583837763824183931864429404273545324830752728532057591884358153677023840633516017070801689908927885476326365785888902963873475697620044763936531602927472855558270889034051867971647184093291005980937781872047630649494562917010561697925129366219300453622634913824452433924753654409063707498615632924329406638903515685077276525204220221192075020072529363478896450620375685172655866113890859128681068591231488492952403329785384271057637437101367823751275114636970267354118469810994656360766543738807406383543110276263838286822098104773358667496792803753165695668484652783944832880611446039836615850920554343840514183423834919917777481864163651056741418567970081156337208583713031916063726664032002272294526158982717741555446695870509713966430416559631133977387726436453088052491806344805345519378614352135136723667764749753038964899600017323925370884892311247937185548900072493592047607998790366750159042561156059433351365960190863259702053392614786058957216551190662403762999620223846000966361271618797069871198444239422428151733756762785023209418329824036423668587479874179313887393858037760728961737313421626298060277633750769245901572497108305806860507223428155330949643743498501626204274949658766806099701889372290478707710099382242698852038904566679909848694024442190821584937946137675388422545948455773240678965917423862124387737269624026710408457510268939437421182500638962720518241969572387843273059233370939783080242862459367410805798238085860254904549167608640798881711762813590386237950476712229556943682576707414050990422352007758149472607143990406371808452599952191743292601434361290560360064684078098586463463130304752349707040107169354638865633449486339554813460871388349411912004171638570713165126075796675564045739426726267188088508694710847109686237217216304615223042317398842727342157224371968691974993415240768954474363479162320036031290675782741635480760879599244362876028038176597659392966606651678737154189659665350083923093803261534864574549839011103221428296624544694607321436728989098272913426120523351350153440457028524722100691379875671928902463064826197497331964791717571859856771253687258985751045902244448351280094686792576007829526846158639772141557228420261061135042477541409252596351383167785506977436166986038401769321687027285975985471441688914767958688047529969475845363732468450574472565204941812491529769357189543507093675258102040801689091921351930318059849372367165332535051882281000860442274391846562429573233607548623820968063884367881102065733750032664557518170026357490499316737489399115718271823548706052474949214050556098437370578044507364799079847868780752985876675788583845933068500029303485977525988854575592624916662881844221122658585209837432039551813558095811122724450871378431488460236605535427728836546753415784562171160208466334966795723431655500624961702599193139904474666756283447085332149754535651966426705819384029211649979946292576431655976884709855468617699376846636794311879840200254285066602339396545763019189679747995411506976641416479127824681003397230869443535406239746437132642522141068310727695439671205118184565433005779580076991204469798844544225467761571159063154159396871905280308158502603554578591023146904789908075369120413431836535613043017656951214421446042768207644591072606280229169847768195507037042010647439311702711132785924383420897614330290401327736560781432375581770884575708409828657913254835357772980753895916746291282583659287208302430430704907616704994468488606268164881503815183873813644787584597800733756025431764700088053765852861650011368698823240770965861104200713276781466990480612830304942857251709314532179778316398921039484111425489058133287002452124684896738832382981574925546192380256254992641009880760928332738755489093526812743748430825578982300826954862898195063999353951560372474953575754012647851211155474881165969019843365799569808325477256932037140619787595078002512912340252919108656398358913382460729008704421160216398744359853339722119790732946055012403491053462690431330800450408587786446805201568572310737885673009095072272313219020494122147847997398289189931402046614895099835494152640569451452080328937071930256435885767946108014243004032147754007128265939663459478422960994576006835954065293277690930077647935507562751297635899193810347891850248319723211581718189978837348133817429318428697875559833909867264670754999095306742879509921743436895963116420317483774911475816433686337828194075722731434933662589735328835912736523227003391472974113294504290238150897745402133974586280666907522478199051212713068905912219451276468626025096413242478539623411369431691782401383584137495162866550055994246276012988580296094927347287546133549195282247526510206351418085424232911956889944014695958803667394237025877554575508023778519776077567174354614343001959327997113225672177878321041349042196711853827468189129868483208263475607805986157510643182659652191880853290392591756286726837280939272498733654202575700350868040276569996490425827091251278577056318721214073842716490387441307377659485581091623300051979502554536690769441099924575040879588357191816078523290254623675686752386811188295724933389031291934788964794034807359754933794547179423735007228432495088219664644182577939932019755549768273137692081750324164249306066851595725074158768080467236909416186702919965629994545293109252331907595451191409659208546138874810187281070926064135051577242351182510736273144877221914855431638413340114057533825765158993677782899122378831672852876018281153744294547298354716123736340203469914922557364309869980389229944433751698683625512708332578689078654118926791176989651239002108539327166238488737485261661111383664273985140751033625235810048966390383454276231372173497197483813368515869677172118209613635674740794932546134691107939697495223398370912292951226888429297138697628873777224087597184539620482988091361305902401337609694711450026355719864835810423269024425409987957154923112641749850449838197030837679833146591314620477425203559285774709842936262180598599715590073113188409554309790368267204892146635577487499284613629523229713296269017670267644548048773210854689254058099014881209354594879221428125494570604304440770537643681252208851553215760965762113405414511511283665548617427624358219045969014388442466538846013804941982151056106899660399655184204668288755370719378674922100741026515475159784743044513279628352006563386578731697619583342435386300049282518446181468270700564973195423545949699868899701177856997537819738484405703678788940087985929138868947142314878497211421582413946169120813578498764007846326365597994399509703600008562870234789711946354947727383918156314241758761881085003701716576745033049142560574495669454334692041595638195210818753829300868494515151931915433971163801331976416995522251775662935492112493992736211720006236811303878818773241303456859667087945191166524991593533717198864000211023759310854070718115119407170332729391347856836072103532402543735957876985571366636622713931869411990637427518444746833028804542928543981212932132288795073058344815561164933821513543175694803050178033664896333367676441100118992932407788839369985413744901865272378147231524238811755677992914294266873594469452621667084503068025410138815467905605775194217199463314468904383847689350504763608180234021472640965081140584104964998207483903166888811350450286806806716465359897715982330303670624244714425366886197514893994448307233343551981852561081159341504780821900141898357076944020649241523341742949434927102107718887750765535102442504949159157865085074598646554707096892456217243065254717213146287298372055369247424182463418832020709689525623735629326567842454654948640469061307154213846588255660957048886260834647205311383155780931648267057589422930707158104524136390046140737192399956571941988404106146648828067693052002256538777001279388709759846527525893260503017703082093532122383553320347339326733002797251044544826629949267866058763110921834438969463283192822692153556721826462386196457192664158789518810317576787500739912397800786923272155390158136304449570864424022820787374318294358085921449164270227007190967137370356512925132358578236208596808952420109270283721177605347081079113043461875986518797977572718023936139421939199780629262032006079206575510532001448716844438664951333205660654633535160690090270039655381654664423264220837384436938974150191172834099613912608807137241868180667262273323521370068733999907772445020251580457608680442837588403575501839154747004696197983608469256453180587863480549472503320279627506815132285074413393945370737082069850280537692436788181986561636747240814139531174831649499707638686448106262897834025134965944719363649448233870088219143993657428018348787095117314765474334279337166958469477649058042175067795568273306004308025172215742592326418241717570364629398824577379690906005751131376950695628772899499384832529012585672436878572898575616016230345562669678063411504024311770683623643384494535404478535899517753527084493035816487065747799132896839345460122896939319969660568320456807914100238513907591348451952564706762052595863598604017314494763880410494447399644613670601787306246947874231424475976467941810787113040108828472672716988021508788970341462979393398942671671814026942995468611611084547309430171239644224312775067432570760792070545528591268063611848146707979784298065788293583322998293692914075134538917816022346116162676320613838488483583415902034896707294906485503214977066435649721590711139150078926076717215618609117340420741191824523415825732329899489275680586181833328173933714202026152481025856290105304363205412905183748219353713716170437476200852384371965762677654605657756960687484721907958321145739972595340128507890178266651155559198957149050916883325440104810066860534318568248633626850445646107993701370974600677227322436020290812407162462276382105324572788040239053374136438029780965012831942414790061847683254267662579812846295393846634615859243929320203113172163524481009440460745163994144417490015363555381458283391054400845547007853175367823898050291822890519054853690061063371995832305780396460119451310683735759432690544497907913411758456598319855178738719912267335268918176113123228142095373527691529224524430707293100652309637664044799529535785989169011662812488292193582066229581404905989356217098586356669814885973392991650482370910239792653418553878963928749217703000593216206670664176641132805211203608101710583550856823836055275453753927150386199877117433879881309870569272271523049721428720839277665276682045671025788357605857109720427841021544439819043944294832043064697784390237039875899086756365009929415515333486245595212733854375103406045481309975579702967472539991334736236301601405061933830901040839336545488367268807975507211024303521259937909442054057734852432585070401154595010356368746644207762710343678305047014779947429517834229598477895909400373874971898137880404632444205087673916622165797637744304197335644727016692074322923851638697780217221962176953956731500419308151532840732496131870585590500699049103836999019643101301756587851520139564528172110304523271379497529527387528765305327959045232494128913592169742207539227420244366634957083188795136530236781512607148219483860502908319555004711124629744000773625357716332673695983197617066379727538058384253348096862791888519299752131956378671081888751141310240775282505367572591117597575790915768786186750083711460515391383067659154877448008191445205628705316845915627533051780116032893871091777984835300008591404484606235774650452853626001138044759556664087154159547360164837923679873557985029792046235892297747686437607057998416414313058185596355163038639931702655177962913940247021192836667739493336172818250922355206506630519042292588187125797388248039714912153330162776140859936011454181728006712211579012908202107631042406598720840690975078576976201535383214220975276003888311057981357351739709901935085634765221865647102042563041571775816691338367459905620838167193848153137476250371117922138226935485157308262227270057749190190903812006297375148561845643211217917007012462438794399845271722423423093458295609800053451938420130644937542986571119421282982116544099248602528513441685542278936051418066654911762396854906682152433972340598786415553413331076220783911575754688486494156524935173550078022211888466216218318617829117900317504055375417777173720198778483860797033895169424314709590678790719057443991058925944545258174455419647541936274460573152899665646675180730815460336484340661953503599462157608909920721700013822287643989802747032976668840915342142268190044970737637172254360833502288382019478392854698719916515296162786570541398332904214245625275523139049064083306199923324396766038178307706790100266044530314600523919398746607643493066086626573447611475071502661006103931697713001517007322679307284687204052552868529184691699145689026414202548456068698005663396014383638266835171854225186546901970880169607791292233163060923169130222311614775903295180139657228258550274569217375533697426879263783691886897538040024042578873651368722374355202359358645040074879774457996797773145163084218801933679911228522115914284261001942597333635872787969847869886263911327850080547920453177657083322778870245822201490249500329960785355766028429146633767559530603352616790582715793415703958490135826401133492519819582438525908906070850922577628558795392658328158284555970938635900213279110111141634817680190794012342257444962360009614872365586624238690289701083097247830291475935910815768236844032523110078622305511942013134448662172016408325336319313571486194309622075742041323298274399571591535253422696486555825644638078123831341393804010994477235789731254941852072808534597559114494288409999654324977703240254236403937907666405384680968633188325579731684712221121969001222101916213195722597326230454411858532063326884899131953359079164405537508355386747164339944617676149566989473139929642343976075178192762586453920924786384339067278702401418522116745079993026143170926262668156092025179652873765528510964922748768962918977252397154777285113999942853565173151775117385560524821666792660255170719858063504502528246455881565908253811620106201667732548469213939717141822139048648922470402823790107074537620459229427498897171118637884760748648290270648180135319644495631631556267110035728277846293244697608441494134827563062605629478878030608389728925470591237453244801226587209261516819565370595935366444591240252975133440953692892865646322109599620272952356171677366457161866763905957202629928841095934850235611070621406422289528989740370908751392856580746413010755424820556000849980737090790191257113173297650989317302421577181069656062244742479339751059384989327452165580283656050032036861194964193093557786179458957057915616167236739206791022936202447402155038812462573421796770125169673654759529913205709687377769424721205216520347786553414149270566799194034921521928785449117836953026818556302744727498927006972454199131336344906929137996320785552654582362849040936697420919528099631958782976449604323897861970140629198786688890004122899598462402488820591733669088958153689321906621840592544759589543531115457694143838364333506054179071913732755688238512191802316896727242817259015693733786972714338912150962424126164623801747256340865304511522300688429510963015896479224096238453363564646773846968923176259868074039840063036973591936926416535870167131487258014633359511762804096286611767088374563198196567615418821811536885898473057040008065371915837052158972169291101628392704637471866876619604733416512627286686523258889793315677004021038259106130767689064645449086370324464286762733635310687159380445492595614502935130581534702169888210604218864559164742006364719293276934261022691114328162715404522561338734639342407815750707197770661430287526647856665986712219355540033824638737601762777369558717856166956081735150341372213909445820086098773313426820119522083406257678598078016608993562759345440940709493243160449460899265621274647497228447464912125720573420308837127342692320010250504452752218113750233369729015519157468157977986644146818364004398108210462675969909048976046223505481315299668509555715454167146667619087694075579511223150475077440396807283471379257681610079463906586768790771199673316374042620550474741667419461391118754064037949556308695802480549229949366758688994656335835979227893813773510992733181402596537801724577277799876492639770212859241535224408684329264022947943047139176248267511181245448644245530077573336530312245431394443590992109457286866097827233796012488910389118633046891751048680631199289869660248030384245823863750096825055382732548186755973796091580326198383270416817655816797878050144245554274572918157380341070844584278940273080151266970689589961434736119552026140734965561419118351801652709536431005716854348387288987763833348206011028074099056286862986757844908749110816570986621256150172358147004787813691097479923672195723597640044862045657814449650808275077792177678789282514213017514626056617866647765021806490911743939285244939260325187693602321465898394484742944764575619936462076142903646690410947331938481309247179886722923416455865978383387693466772925011571727716173201344485240243278577075247870331726993783373403812777197558896163644693844311345644387784383152786666994730794176761869692069664962618829713522478770824690220926026074041679681064789732403174275384766126391109549824046272680279581981178330902367430568310587092653559648495280311387319925343048493386239776556484772474809344647473021988060806676153700342185634447842014746965688646038616208688256237162688917264725869830521700936008722345116699564123496175896749229122426412843685059004444150939322803389481918521594112730078311026619499721631969858036473976320339834417959306067208777406469240915181582101264556548954606217569035098685369699622991809636012931487371517497986381005777415926706098958851688468682187507872724169903182962694954688877387313679004402862788704458512420996695488881899554020976177671946977910422617387043320088032499359325961482217250880919730700578479494352951779491343806739670703626064226562010382318160669597525033917592563042720457704945082928711021731461700008753208461468124416782835539113301976990525228070122843892528140481409786117225605780864076803219070050063964737100264184169880884942609649325272909095234704567857551762884784285094323510891875236354125240763740369485070313465408256305590164672369241935003965411200481116448052146532407133020513833475810821476206842188272810902602766910497963609829533350382132011669359422833956137494269239764640347227821010187082697073250059866111893303437740286383456230172327548358211491599810108111842759543856982974722914242475921172726935715436635776656524895272606150191370776213372729384373354947813767936088255601756508346032339776700734415607465183581581167552029786967499869084888155940010311828785871484543277723392192789608609062165893255564955983662720908817121228374720229346448315491364010145468767901936016219181943790658297459334496302888032746675079923157202487598485605348001798089989545023701540657694482752390055861990406188458025785380803420130724407283420569130523970806603870030573303719316714387916410009218279716051861971012135520492914431335610863297996535268752315471213411736078597703184884340069955147199393355695486319902679382202494716765039380455693057614000099840231153571697186613475737766098009586531326553534816112752008203852706063927237205970964310458210578021397318695899257886142169340575304589855409915986002748459123903543525234113379942504949526680706538892472197560672214474751585125833475456065243766749093529236230625821545311269926392387591779043504777543013124917674397736462465266090355949318086918300962429475696130275795603425593628044959392200040342834338424411376977981918564116606923229441374378191843158258752954159987101333350778847775064614617509255264042425811519722933750654253663872660475847081223704575716152613021096659374584339072866877610991172295671710873716863322727159112757657725894171070085240958233432787952710222078245166468869035551320018120187228942965585743970371783262779330713474028321832755855686884766981256805981418444904261418237746236565571546113412916208925842980766169114053449494842270000232559835980323826853022518005984940546834587206105019317485451865603725508080584450086194232049645456245348715028415854409841058185144989747833305529798763448347709199887007019321739696408395275135966585473414241920735679481940060227817534874039069672168668565748917723611736824950943359506232287023394385444801904325825141793948115598842883716543132182967968619716635468660822960474293137244931748985013630685864854810617344240704666057805202328967670633962896368887211998750993230757009807666487420075229606339770382443911262657142305682910551704638657754411824394243373715718798557613325780939307097245614218405442417983548588634545820207350680331128942910236440305133661172777339574458415719455210870538147668343814794113360646182277070191675505707173142663595016776854318566825472545968831493950992166476070771819135276463311308393692217722238577759045524390741581410341361275172359170604065985894315580988645638369427200234605930667191639411968557618477601134274568999053343496839933639346035154827915444085115386558098667830348765541878522122747547231086380815477377205637304118873336462728758582176461501817889366275322383628158780240471729971514591743876313926104927248727044309700065060428753545809250019960953184724999180199024232537312804119728013199690749396599292440520661586345226949584544199546554261459482205412294280882799456261902225470825676155248004771835783595391204449530132997471004512095110347969736344524045024187945233594195543548796175513984510523148900429359136972156685650174969017755170364772291294190337830303434608975490622614606689470404328107522903842435196680333855284218615434078396658751555141368404938851682773239905223127429897935464737922533972058272468159628393561970431748747308564987254577645928605733420085914436983393432790663094776715077511422241131270964121807782513955825943016204746886474924768358344459111137687770152630689767789804779831472041282733839817807414841585500725337223711542978408317121514056957858116741713451869984325036059271446997610382531562353064353152814109804510763251286318413238309445286337633158283052722056030981425573989732567937891978579040935512103685497452812070797053215714469013656568692949902549763991883540733485202374852074733158189805689348637289325732497737166363674595533360445895073168158593202778247454705563414333340608430605903053547266613343490473528280483723947300002600461926423016914902446927113732925906756319126003972883946222911263763919761643111078642086188448210310047234076206632835200217042041544258710374989111443955301076644880736721380453351228625809151779303541357123766742773877397771237381056093681255179584602981684248659020709989198395794001550875553898648463513858789479208310640469303568792838069092818120920518389444003119819662578495136738087169173665213413808985604944990580007789750861903746313750468838969383921081067544506861044277584521225303611127406172085180750923431795234198013297540544908180769278852947325218986738058127883058453729112938700781234223894530959716658307119454418309092631255344511926374213407400773144094641675573822182911905809928238961640205709104566187292996927263912395173298793167775688778189346724668676690636307614595797942706230047063530513749751017937493880068335533492393987256334442028335778074930775738059239971246129936742496241059556323490106330230632917307523226247580275367917771662622024913494852680871687807884844000322626465172902055919867571927156798487171762301083394258943280669086600242780620957819824430495521323254030743750198493508521021074033763505967596912185780133129750098899268396754098555500949499465079582618963042316282408403139486818192026120054241842592261517983243900982635486597264460690934172678827618093420523664481952586591620299110954292099169471261380357142292370581844923247879390569889070265600661982484783668314067783919221167379634524798227899711628953162055577093897758687705972725438927260565564817104211455007683768960984437019872377671863304616110964567853946402218016732979792361356397365934939052693633519519677018063414697837102015797709041468980759925632473680290534324522830502461050565894915130416873613949606812127341317861598181464516455388126407994386710270240259216682738989936949903688204220763839391711770208487742075016017586499716376850767843192204659373984529401217314621269438779866690177405676054193573736228475468775459786035957615668203454094080463172727497122133494552722678293130652216024514119154058799794182685529220602726722558522577168184050926890355268328302904230558850409810891772217078454631462516697470270831003632707699754261026475477681188411865168767468266137247978653863935633126319180421906769502108689648572262707362375532965655169275772809451974800520181787180449640613872770262789032261009478386828384484556442322877139215742664926771931421019729468609636121917095041159008952299535835668906382898503935011483265218116716748883598241680704718241231505292878999182064362172603078925281816873866089834749661003051977802232507757136621026225412569073904527989432085953765068411175838853356417395413032993286621354328958142777297896940673670254046273028160791944350323580543091127979601917301950958029391071195344957354659020750685754035913245172492260599239122301863559134865348234218449888650467795126009271884055927296199543425103494334929729058022647553642600477913849404178924760564777938312569431562205131873269720967032818197671403498444321559487184719061027648319887789977766495994302010594753134453163280066366328202654803606259752209692441588133580088398466220322858328817978126133469604646007866166140403560495313982852243689919522424367616035639338327477167990144931302518666737480182716007197940158134402102427392886423711399281143882315711989371267309517824780551135934291004219694247715039969172160115934092200855896960533139637496239864894332957602784424408627043972097480959969250291848554769691643457185199956810927372045382670212130150281996234461678810761299235963043880750582903056862389173657200076589552647327729171634665612429696991937536381004760182215257075066529875072064420877438466304754550847008495236717666742617622689765011039859158846255719133181022402585616315847766920955290754281945493984417498030816188853727662608191272192241707095018331733334620831644476275087281975750792486091211644226314596581490814145216675444321781226157865126928798730564037856950081573754414839161327790030667933905491241403909745140105939048372820329149392871964880223530624357535655880521202860699078798305856938913968010022436325662618620317074445557998294265115989935221262899075445317940054948499346888589720648348986451725634859036635138906312889914469932125208633276027207048580260844880944279791996434339665474770132835353672903374504781417411137094649380117137208855839539218416876594501869565861524923616095536077254269655493471499619013685073876513995779851445525811752663639043128319644632952470824981503680261862037320167969576974377796275177822988088150317563966677542816516067807687168513378996916895966186800411787827422116688817198889649465347262309803225220490388139335803998432841124249600350266179645170117934774233022137639668608565092367791045115848814681988710395584383177221476646261370584096713425132802220890963900406796981988555153383486371267843006807519026288969389644120288275680342661315583748666957817035865555051781413808792750008408301091582647160324397965864281356277170293318415176171208340982564307923219793236524115195759675370385430135874944228930269434880411992741536673662431669636517710493558080621796699549779712227982825229296110510513929623814393306467909796123569838041402051892140193921837754638762075795698327675086428089445643187249584064854618041055936702161497341488303073952861478847799325399113222129706527644563912975202271132108759656790561649701545381461855497690247270737749875926083827332891437074533542031260705802934340294044760904810322280117543038910558630076335776703950130907966178275049815111353038140348729560604499376059983151676277452895291930960269318005398960240585265619973668486469726820233725507018828524520484673020751856489320843690807419138011478526715927798349297056702629527308598680547350466382328299712507890902659116442843067418062476609976416217975520910802810260236770063214021377130041419570333730142132266281165229729636061110839993481469611621035087961083164712328106913997922815012555532406092282276581135252100985442728423848663974204187474721694534324959440254245189635104494943092703015437789817658830333305141952785579275556092826374998106622150195395378287481413506187651928798547780345320773862243215663362625387119300174224845449488651538975975511890546262050813002512221073960065842635841100052789880430619349638398110611801753603824948248366357597330271865870337200232142547338605239438440815305680565958593855349652174688112125245146137973183512433886158061111839293508964016963305366133111861856320023966475505348458318981337475359002355014592263692386842577193597106118231551437944038101375294283699241788242229239511374951978011877006401805066162750416252227894164161030294894265118435444285702296720060717959651174844135515847535506289546681093489319059682081518424523671403675493161785354478285142534309178581678467075511026578649473875578255663684581138143487671436480023660187678796835927846932968323722734572425595996520690052573557667686011342470463390237188246153061015084219883189743487518828307820636001576744991728951197059499725103232684546200920257674101345674938546242488441852845640006206382805442821594789203929325168535994956555916860677412164137771282250450262207967204714283889567898160393864674711639426828598035205870793358527834686703122377763880162127159643373079293432251032542712326582705787655098399807225756686669495052786942123240705262769019945139947307668154170589137746172893244673898944577333555352661698065744155829338242959722248867499031061344649755625103183265526631224855848920600809286920915086900916771436671501309739501735845903200926422173685913465925277454729289588295269314733277473460491183077224696215848377247301583280915558711813138021307303993802517916864574817210115048260137963582161385413364560373696635047569370992133238979552575889195089049461384226143934899690979854558553511718339431605484024152677743669515973013283926345927763498909436606628980981927920108932068639368160769252894274380356371201904524273207337656028636502748455424627273321614548313627363600112101783267021400497972514281028847442017075540269066877664376587552018384596559439652133649639011639098680455782786875070093153735132079131777750523050802528869693418784679522346331994411293637838305327651077179559184940237130494112759145546430770607396603184191138183399010109326236423539801212474687125865126544643558731783617283369526421231856804599146127651657745320704761841150337142735761233931472050271534513063339575513858268630513478206511521045156032684023353704783798625636158507844506804572713554425378145138580196102642473466109722963427153012607355815322541956120731761992830401220838734750815089331020097643707508110930180882067695469478538082304854051451299045341780855655930954521081645766622257019850037851949792754272550993187585652011913954736511128870394045644193440719984785111641187152613846024019589344533637918630999351366025478759883309588629789085610596359306960841917235794770783040514981789527991735985186639410373261241265330608208793569068294046565402174518753858433687397269084033205975507659733238935800047836487903842991574401609713761807139197114053773223152719033720064645501337882376039373823082624229740227871572179453817184277460091472809557602497633663343446656450104424331648747648207849571626287227707862658929867254059432246110287635080839204920997187088986686395830903470009435566485424995163980591261540761399540875726602469556675157192582886806464760280563490897659789564514433867391817076582658363155859178335588470008338454812639056884608593899481352851606991281468354999788901098626764115899043718614078572954751203599113958746408778702885099806370313525686894988588855983184544702051834234897763118284849181846561735415570872187932283022161302719624092749225307429169369694949228771278768807716001159113503935139985838033818548902585878784024777717004624740987351605770511092132821581685581777150680060329662342369545082908505164853740283884617107660334795051482274147989137044022341261253353816417943844545020971047886645416420402904408875721997529969152491644887540158898414443976166134991003472839261858097025858912899614279920523057960648902194934391674996340038763891537118590695030260981189157318604353863461859789428458136283411058317410611254060243716865003776416336850723448864137818292763948898231064997314327651784341443553871428716556022451705990487408792076685925079629121470523663136687224322925692086512988172144754479708862567489537613966871029119870925583619787936097170789115033109114629998797081128584590489907452306163721101667190370358243056377457852664440112071451617973467951032998853486610112586604875931423141538222970452612216499044339496084644068063715847478183386366093258633393068858909313914291127790813249988955781916504945053888124215575998000587966071409940746906161191557941630482067669890425878529016034053509496662634683184210340159219312630110262027414730890262583974978942954692542313400319739617712491079432677320853419060354603749854861176389258677500023050228558844445468682339073273019190811496689897824733026894702580376983908463643797576283417403950811974256644253371389195276462992847196592014301507375726099965465734291071059212015672405725209156867046075841104670884872392685340885307138289613581155121055075029483018831674437236107030074200044208937407734824826520690235440117926042649129580678709000532828572117596193410182280638037519512625486302453318066127823090317570186338173019647903534412609412062216330565318311340553295714532080135842350007435559279970799504055365054746351049024908568931936611673193636755041865292952002835651315806918503780586216649144977326786032195181732949198711482593888994685351278783995604979240160195872092592674985699343817515123575018519855221269319880750489437769074469266193353699880652980786427474273162415606503096515513916979201030688532196087129224017587470075803350036641136648359567092807916636079868213509710148385167290410708200135736515089419152131768111869163547258352447352260594007646093554508162218379427881216915765972339420404407394781765278682088949680406567219779408540212643641094809098446434643341403896276320006084920907851281313940772463638629582017857693004537715896352788427971387494674349909110021249361161743431339244700521457125842550009185762928285668886296019408856927828766879773819995626943072387982063306736320564873637350582727083388299277546000494670828186754383852051105296797974977729692364346925681036264282073589494279014196683182609312016008214517009794134779722391362777173320686524217200862718629080027389943296142317746008956797546840598009695675717332950907902385624800437656372045799337426149265837506830111190493915122242240586072818283722282045517080949794023395211317453303044716715005052917712936883096471311361577820690274966327069013402845050109939259077613348921557374831452568150325644126264496248896086597703331749894025996717017585732480545439509305802536981877304524228303819442944887739928652974969025241852436681669867339187955430326325844302505939811830215082750061455533183892916688519419679610420477976019190100542129471729028496923220046672914648849297732259239542047555135767061474010247807371447609579769218978858154015000500871062009599100522716022381193708335487400402248263050728143845973563297323799645612718490163239197415928797499990094779181895441852059044263279860673888185182410473006899547925055010679727683441643851968096664473986458225260758577999122365874716527914407719315727165560834717355720793981444944589009508805594518962287309201919809330731503875365480183684213051744691477315355437764430049623562642767682983982860097154739251202459526469970554673104867887289639002278809995151075281531034343776713986036125507140458207722558176488148690595366835370108106899323719930463242819889971997413439054159848618128434668302838462740467561016890283371138690592208283943008054849795047804449495026657043205621537675883957209046437525882586437090010128644977809491708546339546682659020181644447053174675471010174533727657341219782249542928629902055512344519497547412202306839562661646581787453134176868414789006230234031229735684606626786064438005006470270395063158072555224723116763825296487859314516771999118066063156203371960579330537586217212302083697298795348088158499534700605381823382035641714825924043940425794581278111592273855162059132294593833538231285885098330757912219876768393572529260633900379045183821088432098686238520996179789013874582507727643549127619274874549749613902823578508910232348648509988193952156144304030891161478877345388865706124591600760193202109484268586367979152025038936711536340664804765453740158269905945873414833031950018198389916719342120198696951576818141005482214875676541452733816049216868783008208479228074913787760312047921044261785042748570454357856010372121892881160177514124440183169902453429608023681598443157134840931726242047303357456702323788792768484025438464828545252460342870774236617756853468756672672362688164435709841844265273935157195847803897564329866119185279116986050977132169409974049402576305428019898848309295523435689813243409301894457213887925702159719153073195381468476784966836241466359612852879827447307263636417318384655954860140951580199487791993030976727818632426922965187608277141860694032723871293119603089488843257492975122240431172159927441628637038490516418529712629534659103406322919048370783812280632976700274400400525200235592398508322119948114509878000702060782279361274522699981391431163518716026547088997616937244764079779006328549666157568237170983705015907930159985578220664895674104676900544030924874497136241765052770542309155643752685984899194419639812746548766509124792666915827576584097304102370628566537199925624424385481545079730204605050163179602243897642651585934088734279471414282300757324813114308529188011955741423735495585379912698712138054733161980292391741081837597772596396416929723113263904212520472200257595129345354231659273343212710619062643281217661366110974428248489076188016891251584832479649993127151277713996327999216760178744245708690218053490418841803780795489286928639473584492323646424464683394748377517961549859713433215556856440567468280179374047048340307665467814230226934266082308929630835818578477689398475055937684779176504973883404176329370014646972372823312701615746796330133619570092775075547650424393245477367376953330421686915828622455115401822907475951815471809750448444284043179074622802384506545143018960529747207039121162598088410917424664707472054873576361404388242781681074572724144182614337261068470351106842703011293152876029897347186034048099763164875036813421298425390080388344921899190812593066334865179799536527495647279666924094376661396105956083755590988486942314763502518086139531273253523090620126251517793859893145060515023852336080170364273747898445427196788424334964131066727496804523692528125815528950272437602651884314304920866116854805704252044285782528925157437304363831782218413837458161103364639397574599247385238924326322558594202109294078753637223217873679535681182557562762502535013941863506818920726271475294526319713812259401241313066608402387208197759897038618597149232793234643089055420692064575563780353362847794255783037114737095735161634692457999102144502465996139699297172676878098986625419520222333715825804394933160444133254878444222031589949102261329701754677928351598398996922234101382683671393626710695802073871191664372666725590084121469213587929899796068491401763695809667093944684079483407952382966526529724005983921669388261540356008427108774830009278588537055116704995884646887891309244097543845067349106295461311072335785345039289332328573571610263170395681053338863304346514202779599087051848157215950447223656449341971840730210341112630570072273488556052038783501806588993554096353926059459195744753219167855300745393414482252951620784074402406037448674591979028084350538807069106122740191668962352224621081339491699880301085354794117511353369998202120733508906623310472993731927524159895674817828005023152876463418476595352350883021527136689271067119935748586248752266697061396446640463449735159496525322599612854797976410676533102265214760245671685434364947750198243890002548644599401825778348469282987825009954318846637202832719219574181335430938660774885968010991657899538990891697616905660714461710393471902878269379289207727105918075322765613573433912174954764580633232322094263291027434817893443999823956529614122150401823015275070446559037175836646985651874877223611607016527439057089764489989225448231299064787512461389659401298077700875195213306065091341640265035577925868066054040117000675511450250955135514497139136895431829207122345024182385667572180371249187816867866747605214422330243555853597754871064558832206309886838398325502706905820031165814248102660808961216211196986034421042439191024823146887989480974494863354904165771813695169834443194887738917655708322702116698617739288467195220133213165573324455587671370829639836591180062117005572131593217948107022168861439261922332016188393450032579074218114055812495356294112887503143480078804980498564837965598729984757691932501825424869944244941580130068073262206743930530750605828142794582328366664179399112799478644488921881366155400765706892327669898945096893987609467441091662770948473609830615612771830931168306091686918896531871075119525123695988748780694551570787680764570024767006792318218722978492765653171735800115908093615197568879201173208557605231066866907641850326888994587829746641461508605075496813092927129011952020817827669133299219104849480170247583157828500408999464563697955862317908514857830290342464516304357802521982480474647410798952325185323258326972438684071241698814907959480731497454410084898597299668645986087970559273830836110797593167562860720905232596335084451883054314711707026252830496636807333696713093247995363156589866905884799841444697800357021361407719396286711260970968412573805058869654349367700644670963462439274646335560769600842202293739021887936105091688119250905343247999060395419419482305596922074159683425883959820687199792400947750092502103116615969492713794091731109922648102508298328792912943453037697326933758253137421251936287841721720760356720053834492588241351106040125214953246930075110141234563019925035020518753395926819519375232821234088342472448558592263493326257709103692338533726948311453883670443389013038625899542822889476723756738140907622549503391844094632774394153790957112669825547352673499104524658403005102148573009706045352030908304687908830664532039775173865668512208191248274734906897526638807808353481144582392128657781409048472456989252649029853138750818299882315031343490265945806754274915795972875692264947240795584148132325335377211277986406883812395397420864476191643919438909674821573576022439598362473000197612050394366324238813226119115516534642157581268174626086727692939547247110597100239010199385235913977589897734430102120524479837179874869823010563846862665797825275471186714772655866347298456032716313734298139581658351341580589939001849459213350916546827925423066467446493973404410560342488884316420911274601849217446994089971356537755103320311956371662357367773462689931262645715587931498557193846840791149735209127081538448175522682774947090272843300000181665997265999753424002787603775405209778537338992667253674845525607304808973312720906532843331993456109075702465806019114872165276573246926137700217938351945660433952159535087977597641276152710921854237403927567955177816690671106828566920404440461191239242981209483840566346554578894911400239939885016138348907935488372520483214402017006109329548997170625474876445704145760285656532426494989112821081618058886658464363431116369418156370466914952713239949542589775914539069807007058537903636424274396292589062344651243376860625974180612696044961458218369214413639022181937731709657369683649864418306313890931300260965338133768480380481742439719622399189547167756279436126541250145640229196635337727454370076103730661077904493010145533289022243660019696065832324673310776270838255918919944332324379278745695146519935611844390252980071363641473997425657032031151368997077282519209356811742623946671346415991168135680299014636536477792686696205924447024990924768568435623539656085766058590895178602195879639771477809369083860420899780119155765974374206053408694856144257958679333691441297956410410379067269072051997755266862271834778238800587807189838882441419906774617300112252357886156530108216372747020132393903924510433556871949854281516500571757693326750955556152188724646809353123400359258904780708115306131985158395707280553079936986576664212057252201762072092296015326366696625469518427583832646232134237402633955858128527501917654513324770695825947199264850520004295813286237515324009860932343258948207852302214497361617202044164430601243902697261539613548197703413627203935468935034631572613644336903289979257952720770405143181688992151664306515366037495498598186585828162820560158806679802761356633902784639267151781502147980672930800734794560921393712234944580334852961220817677496174163551336324766406520390009517093430652969387427475887175552538713153450938987824984088847763633901855247781098449175011217729630916230726696649036485879674920635121467383546976362285415199932992146233592058924876512366717304086727191231217214984850724207725217124677528054180314032092537944320115286112438685646468239912256633128611887821976633108636000651439691599332039972944422285951605818974775303111943707018656685972495641768093633969448906810388649407274211401134788125711497816564500211167823335156595721773559605537227151786995693126772630730011764949415987663229630252244553367205231254247722257189231122466071737091951755970281328288240307668041035411083313334855271991475858375175188706366428164557423502353460748623245165481847452566328480254319185358466941245557581567733139103688570695504246303755597722499466339872974955181792501649769961926003268083086564099632939038543570452517366101027715044739299875439347327843213341693105838395248758733681358586233523705048096195975369287773794481887493328424802633477804887879904863386383121788866457107906224840733165663797891663627825549981791826936876034164887518933529725897886824744488431854835900633544933142681576607900904882026748381604143476632950911448868495381485720669356073655034833898105141233731660138375715088391452372525888098566912029794340805753010157155366825455609022395134287495140459771009706929358825158193520725432457445005871178964268796528265844086222557244212629307574973027283640844465271987492267775767483458660470531511187078213800962627670676905866495046986320500578290528674333257265050687764806025493371936240147312305084969681619826864801688068397922627869547562160089855812155558742239703147401398863668284185295622944222820136895371115962170738670404423347885569744438341446343132321990467732073700437710595692974297671782079914204855722137743363779844727053786361007763798036438101100358650350653612461486041187891315882498769889169228318100879263998406359287721093274030934700424338485704728585278408987154113394153772501947120574027409041868238525356653450317424432402542497492883784275190430646062514757906162654997010601196385507699470883060072158942868272475876874737974903331708782239678189720745966588501752206829737222934511299377431059885918756646265888233966675877874680332842764558089243348624930581103501306038483062392452108410229999290666368811478198013226263617611733914056101688662579282676505073426749897561057730497135114162369275120783474309236434505530661534027068714147297926969137823745205941693462452717102545572183384665882512978927594231231767346990366019166647475163000116321918035774385260480627279022271866122641027654130893543592903839156387137784551578452154251187250457982711422413628014183761195902383950267899257144812023711810073446111493242072174077852917237295949638694838775564539506927493779421569903249402077799243073161117001684814026956898753478322734587217381901697214136346395132543896849053921080241844591286405806434465049766544954607657487120342577733168217448179937594823377525058152160667988682265558211710250668327478746759290490707741098204200436112394295112081228749919619088946233028644806621087428234030500505036436587545696218601600146940737053963496162611665714282192171045385613731517354239866078062363756367283560736980653796824826117502828344658761449137503603936338519944959115603624353200399691573024263997015848186890960958377655469112607120128959781855997167655829796079855740658532713830102553441880009257091840048769144785234779320599904342148605619768007441253848678144330797905575098529083383867136955864181041136325419814809343970076720587861292406345861877196297282577664958522238469228637099394841228721582955084819982587010112728022311385869556212627667480072642690281254997329131410696872071302610390500108747762417013252848225056008252926978610347911772968138213143341191653812712810843027724199077515262982545208779351811357511824342735933016878767158671005020651149884577940662573468978129725990088359166680156209356100573836670888992291813645296799839530540284222468722580645044585092579331972369350213806355869702452360480654826946342944130426458847240192963312280610945329998697956947165498615953629550379043202833951070952727192339646237349863931070063906606433324981421623168039039608906555189136935947716225111393134423755932430603861936047152115223961641305780131652042071959548832271557758010680155767294881815952669000593811570206370045989109733747965800867284748226797864641227720720136401709578251304884998283419196257905349529118111365790569539692570328467610640369066223333668524478266727424015928435363686116179353318532985944935948402403272722074585401172461284569873463257748079600154228140643206681370131669390872893282141650373369291392992727511872672742335155132131480988290188611284318568482478593106073328688014260010895080368376517001511949446380870531152389856836683626567473331166506078329920242688619164357402233764307952911720535906432597711115324804067304846456162522122315271414684243264830349718271938555512082668558968063648274560822241231141924857451702049027658368439641924132453949245352419987346711018851636600568108878854924916659216979186534840613990027044489816417398250820705649842244704575166660069655719050976943282496080915647280449461172135199674051255118832171522902489132010490937003559204245016554789703152813678193657542314231831807436839534510914582952912634207924448839419521730623008142998660854532761107649459928495839898307839792123781313877086013616524742491113007879788606504047275582204884926880924811719189147063844756092721197792197876125330119897158257374463232247813363087081566387813364160773642565085867486083811472557878099319094038397025921925191316714960607142784816644656786114771149949138795631534051721946355623035136231232477245191357906997311754189885089148359261524156315866596497959429797458863292767902759996628890117195692280153391973961023975659015768660243470820979320493343980440615428033429303552477100415181466735982137433749491941080582104230846271848552253621947825200186226856061845247313967789141512153485988349226008479414327686254467182426300351819542865665276700945978953128328282136928657479000657416978286567957234691139741538588494483696156417946463136503249125519159779356616074997101630567514819427233248791600381099979289721752838255491078119342735478842904571372182013776468430791493197122254274907471612779550598056298613899856270794459962160174733613225264786862116380374735180069784410200338272454414061255929029980092315756585962638678316433609724723412309504727644067693959570106680274515568108346546540539215038993536335992081693192995618751779436582219918118316375008446128195216803874221887191207267192830432173224981454216875454896067333267077832923060881748783793162163791367578596714442983277660718179492883573835196926834555751973666403880879494719908718255020034373976882288168984934575526156711750147173536462379011453058100020234610912148688523896507263204760624846252074971967340887868132861643019791951255707680379583895275836885234548978054051017860687125467342238261309186070176784743578141950302793276034563139335307762889783265623205264053858391689458009097714947424391206703450229425840696564503542979451323238343203614286101147804318190387864962917612208637661862938815979268641205460063820080238731145304798130024566590447825882987268328842178364966702706835144881391081771820945254173193793016292440720253534581419377967308671497931784863011121724378470123570048374959318027116900317313273791435021968112334717610799321754793315852968535323370362990030540947266125749702072540791359104499521131587774848845908897753012615156016766788004714708123379364805801695228230965179147783671507601501982899184980402092534886140692064561870607558962207555913620735810250319106739752605383670798181067547988121069526570324971925038579915866593240597642520593023446512845142535055562037596383424584944557327243394312662830044231872686627015206423037289166611137230021029909808058444388633997702489352295589480739281218578672000804203523108106089762389274054112495158211124310084544682656313472017551233452411208479091532747605923619935586322558742019490306847063360122780593636443444583188517132529991428175348810802278610525087250741347274866192752954752345619421265620616559805911075908787080029503931466065749616713512035726383855322601005930241748371683605803071399359289609689394149665970902516094915216060258792384936907724147522018721007970009856369059914440966948450208419440209428506886550243672123781815052672533287307314531450660524469486896680607863763076818713146814606360264516543130986711442562311217399409902452587295322729518747276744581252897177422341998530576825631973526100305696185094299706362365374019033923683336614518803050047465131339388677767280407695006261403409003759994848357544029987084537026174170862270526848417336819457178051170145491350739675725153333529684350978601675343670637138475507167889752997217032597657062892221548634390109657157521628368239114784537089101595087950657838019158469979659530009782762750869232518913920818686888867556782837122809769565191164081741033080351183240608394335713275072997296799901227540298577482629872522227058522515961272551585044182190865838849381815905730947586983508980129136073194029541246084896837925498345879441755466914676373416099428660805840384129173576001764999371169681678009497757601784203032035209294170079870549185049457663446888843844245282401900502668785066444207905615886610697616321998230580387138888212813305243472759766680336533467952725517439077878892516014166267820254540711346199726792805275977395424728798892672822875066991468755132567397047604268907954779642321121796774492947428359332914852555152139941301087304309659238893069411808710621389358778562948027047336444262866895393067561285705424582910051836366766281400703142162766509768043994584444276282763170245902161001405348931566382743460842337448619601288048220076419339050129183309026551475557347210366622774122987844318374058042861939189004704753432545118345811158179104871773779042677302758747166381197260325179560029001156876521846678340850788539883869652725592026565256137596404033520514191940549269330442235814579694914072059054890426320146805156304870287777517159044562727918212351482581668953637333333573323342139623640793113491714969647385472971195000943311089211812699271095730835360239133403313306935102385865215627586570802493757015212726243591439201946557553386384937558522284677597078179910291129802818946790824200949904114518262658375191950110686401621780032891245353900157289178230797685344186356509744221738002997828646765630382488440448420535904170404862774990647342903924784643442972280048879928238145511100708475070911991439777130198062283339724623986632544650635489902715894946126008622283428599081091484971226231459003812746081878560207690196735555502122181075848315859491191359706103907368111717107247132372925767262554298648031385180803826578473433753119935670471103277290638980259077572637782200419808086013824014697812977023280678444689160446542916462303857113904692665084494234820304701620630769037362465403578878333250315298852272649412642809151775653843082562347137285253158279279498455815395601109912341581420730440637424136981168349246012192594531055799678875867799284381048703284660973879890923577910652588765648033098034681521915789734737175557955200236546409499294959323257547333912162876654781081635211050930981722018279541994760437448583796478767695323689501603912090995333876356212094726904196858231917449249830647938417638915538363776788300747602004668632110874316129013642706578426109328741031026741619811007109666228600725937286548276692960191886682573629630295764907506700647462562957464726584984902009153346437301880780919526705888722672368656599007453435773755390927818422876149957060594376654402098089228127064449938745669494569264341741564449867202592342884044054333545675182343215594384656278443579083889281741896458776561191497116407081771211767754301482402004429405126425015653034051086606430707711992539387851386109228879246275582758264624498081561257545290568834997445078411897437657036004173945064301369264497923434383334592512411055884424629681763513334318736902420152541306111912573210952493537309883441195755269179461208395642574277703806269795397221545105814888155046569933830687801712364281205139532977944135025199261181334867384452343264875690508178834143377828326639418046088802957961428223502738697050217375704514901107438762087698667670550071847898787434905610673173305589678395628702383778907355519370105759800007104828324566538256272529938713279402829854487804394125591764510764016976038357869967194106358063753401167332343897336076831404760742696151829619673369171067785855093932520643299898131940817153287549142508728480464877501206901781566258944786887109864130330193771239427941894528322220731183314943520511284566344247204851042096375368046399675874270387618469075411624409610946231600265371164454492165515540142330568870216619781331715324514964109969844981514150340772623882661644942089695889726953921375747539319852183199008058209962465015483625424027510092566698070341727141288600941008735405249873128106929469342981072334015627258044482342765707012554426538748368872084887170218568092315461881833279769397953442212570444949794046064390703341680160192405433589014888278490573448062003865985141860997708114687747310765219213919171960533926508630965959602624589105560865894548939141546350565755876117231298554287840589333200158859121883626435067334588142535775083506682234598721946339854895650577708892941479402871076203066878232962353596021889702451020526174722697877914640258341634762561780677289847746655843544177622360565714406823776963920681683946693282619385491419289730089305132808239504611869484784882561018623610029583941024087614296053193317063966221080448174533821829485723520322649856175268373449230724410653087948026341843870306245565703649941530021663153220047454122749096840196522108674445746648086468226041513978475602147851013839430066840755294617931311146164344021870916120462943232360551442718834982728477525349917343817588109912964812784636697047363102613921111257598376017051793187709669146769321157497692198878738631807611589965423856601148151492650709391668079669056880243655749490302534843425757659841953792511691487260371889128017333931763317967326400987404444489135641619785145683403648136349868566199222556215335333516647709117596718909621683502084242741948410677428413552213521193331821172452930673387637070667759861766202624018315585863116306565926404024046400518944839127755420135742453686109396305738811100358025720188400667747625293651889209775576042969931531610125653990906433948834832650026924625600965392252949333755846480851768515814866351588350392234190404569801965193825094182152038545966981882092056092313618844072034752862740523438364401082230709697263226314649685958542908698349094928459458632605992041360136133548617065468605208997428723089234899386663324901576116654982574008799512052559809320814020835134755982123067185432430345320661427492274096826476285229173982449332818814811635795032149494964475317606550903571068124590764741243532389178581441088636137262672856417206994125606486099054495621074926441622824254696373807139568857662922047400382620923405859867488766600662516114357826954445472561587458889230373816516238607636278554351823460781957416750837461095552123936253055575672174778246803919325317203551548826138017348022980190609065267899657375200211636949428564252090643697000649722414877749333782601073823193194866872476052113366579633434481082030153944223666004909910148912713023108099609017336214603717120498009443745474371925024985546021683981326072342331115544286949373002109820294198143493500364103800831784938806487152281313962609040049248942763890226430362775747004660269363475350806960278195698454420522194409238741956640173608834181234309483071572403936265100043669502696877526419594346208374949607938706511038723013072486727051560006716039759481104820276821282152109152322774099619987439739385554723752577477156083753261229868861613262552828359906266316177112997356363312367985669078039103140493777339488489307231067308696083672318707840725237438995704410256931487749277513439358890065644067120197484207375305102357964502386340595947372572076463523970798368437811506645516214701975778873272379103452967358604783099749311759514509601345926202170236072309603346059076003716333979956889688161201215799238319762064718891144909453549317494518331037477471739017337859607239981408364056355965903887207116824079988882320326597683159075990798210457196488992965845720491521469242427009006886002146952641945290006732473852305693499840562059346099186257959478877805704763142298769806315190656491616096950499787719205302337425743924037418074965118460405618482904928533257680283130076027400634087759866889312752714326574040853587397685725259269504044098174504095093609105058363203722206142310919511371605022478089351079728810601017693700305111859831936936750339295571862827780101975442497911197409961417091428775494967831280315558084587501664867828762112657124759888901542371296742260883988720748887892883332030299186322321678852258704639853413250687621884656231906534077246384038065133753633984742792388158745497661515701259889728704830601914917916215446527042936971715206254072796011896332161565600200249728469674099645555415738623482145825688377449949048811150651838044646876300400559467778321541542144716115267673493342521616372293693722246511828572720284153723815389794520672523440079236249773034723062246907917065924893547888214212852454017797463748257123686520686640143623154286923389952862927176749309418591801791329053989050373449649497639078019222059703810462916660980160817013384692679978700143230290692742107674122839330825988576480751508709298534372572240340075007365285508193899055213316116944137402879108652748232968752268926552626710862933318328228765794575140213872205224780294490478638343426848042742595047684598819743901980273161266164425650658637759287225343514655621668214943850161477940261299858835704970545502646686784296386010621107562239129373044780745251753760120144188903502308227519036611213686274167007085355886059254760733480271169856061436059315572985893468945066652538044547819552786790935425835462721129046926931349885451461597789667314813091261148649840519312994161930826794723310540381363764480485411400367383031159445490277852093213259817426100940980244714242378795058738155684645775381997887313368352342666307413283742756539593738701086282919229754522891303396890919192917728488975151687622919810443525095467000906925141018737404332641898250577611944407041160247184598034498515835432252968371159068220633288302840988606774866008797333260584094629031825399917566855637453679449653595585906311533747382001295557440457315284285437131580526031067860779923665365955453044682436726487652361762728588820629912091194530447738112446616254513264645347398053082130603850997464528330002361163343817245159818456242585784617649351292999968180899735917653027237577085173680681733325178358199467520158217313585927957317368341417912757131131934449754961858511176620455583049185855143747010950277637654779587622345913467930143598798667294233321382374377843122776842864870106171286694728729880332030573156481210372661939996711452448664724863028222700858629963796145812484188651818638458167724229510796226239685210206606049411551932376470731177037104130546879509605973000029216796698254802189916687236309937743207161678510664877975335476942575172724792218000986088003579199034958611233440542494429158069453183914307615765114658211040312240933801161002720168336518350299292994245289520593344951799244843926277426650481449123018911194465675927383328060224926141506278292912463354792285383219958832759761682199390212261774433873954156617388223588127782851116454105600502329234970782873416238497341591547444620664135378245271069718938396674008518436297575326165363884769132385734460822525925288096157639514321581063004455795751943385718420369271505302710234452876995742510314034429544096999608140656653054342327680119703580649787164621527104105151519319375570445898318110420673734941995357494503894292454500505363194214500438415981084597239589287612427546671833298672130622740512298585463576616913492647877136044604405240883951823608852676807555446858357000157342193242651707156768865845299045268383840179280135558163123395692458765447124310185404207129892108287493297230006325277830041061166848194670486420322836257481526168491147053277937283746187149151721959356664583504220611716838222515367945375246342517166731350363795537726265054039151441514234209238387863022017543281182863982815070907268165689297282714087531783051596058863304228835276284778914447940248238366991755551167559785059038295764889391912796093167820522191630805183421395364343890463614323764980374354412181287010491144889080018006209637098042650421017097070845406787436886582842130280143314955295812228327457016911861250192196564840968351114473865937340252364968429161736055080938376926993573998614197126233306123941139001948005765587241542260726941988837433265578152563098205106956967997135535807604489874127053160967577485093646284917287778889444554274388104113705416781312870388029617427775516624312817001979341321062763706530338428600660498056162257100294598131684190083012377852813654978408864890170571479765618239687308752820457006172855175663201121242526611840505345369964614816294509080720884106784148942472188678189832927206408632613757292970899438038556693398263751847899913447515804281557577161958306914199754301869834601095429097805098044031938472208559535932488744955785214070052977740192905550108391640409675923333573033190064162037906780250285133260768303653938755928488759044051579334076288355527390399031955833371029326512937579800873452435842675142895089311040930374091654734800243270754302531788108773588822582022539819857910364248825114988155061132498134858934006852169186777728124054120187436922709959494721684010758390572875948874042461877639007916005405596044773129790136406133177347983257955642738610805863432487803128682596583621388096878620050764061737948177702808682792415896365008340349541781394817270697762217067186245765284730025786335702449050281748812779632837809522282964702350485311699698499450074820065776819421627871668870740520184827690985540914299960329490803178758052732220434801526956428768311071534194116836414255252862359016890321943845447658809504655716837716648646900746933615857817227035399641140274222658119129653624177491083666799094707734535143101891263141098753353993571353182430865284380486506131199328783982163954160198753951227992785209503196481052012486618660363095157567066976379342642737892188029591101215281805276082388552309832152663577863785721420546972344549792946809300697801907297176609036671317430275516263088831146192712667712207575343582140306461903738067215542505245812440466161679408200734865058201129317885981777141359013550392083211149694692668323664257254659371272618528045682217128308755392991435285141471239890738675031419313732836092320710088777563954744358521019457792105630379962113375928401016579719055035318170284702616347249754641562028361065914949807801058031452171670804163054510680097580259815067205996709057385928612731847791881692758511340252993975871560197610167156482043316565354858164065986833667262577195744074517586510885482866968924011117467314556462432097991400179229423077683593986560301398616423290648040910625653556449470421970096457401708090800974441728031652543244341532270529013855569411745390390203267950700867254884325862218627679878745619538491746978369904763612204424838192035482627506560830570214130570326283324573699044723786869705982303995403666675348559381024364443056666311388694145741240460771267524117841060386477544310414235006054818158421116955213749550249459115113270998253426353429725140473244099190529659042537559686047516742117837363362761451915507130522796812702207875372911465082226612602828165428751723993535831383126999641175783363452125903053412387707475746883881475883777059666657522268778312027038629290838485402775330617054345405720182079519810582492443279271132914920249673130653947158767961862909523519939992721969490370047108492565795040435565690379880325265138201345151720545235689371381282431496941481969091594215451470457192375295061830578262947238202358875286297312379744521391861459430527584847137303641668099397525648355184029581493526554459076610458745281706169605897845693924643482075224344700092714566182782618205734205271804372886727974962759950324766400694189841611677362829331091693481027914877021844811411292274230230888763842070100726995228933288525977395204239442448626665806819592095824583826421501632998587841500137196803663675728101513961366468063152285905513684161062120689826984548851154504284455032478584656140374813611236501757104231364324113301600437910323004049738778612603583953333793324456595367667363109413648803093540608294818800494249052534938273692234915852501058307218952718115519284658631131866965177148158314327557457293509716536119129092194932823269660558817912705301348550826510687093418942068617131384253507277125080331363209201930167774434669267209124359441216231529084129424925544599134509985915594068040804226223171156074428376884583934553754417759449239711434734058596186989351504795424720574945441747015467282165757708278074387205494082216347374523053481102412391300108269968849624998284461591526511246343241971498215167569551706466628605831085194957021981288335000787240184645186793921406679108515948190077803779783999660845616764802746795699912941875116828855494447952423304946596854850472130450444313871879549114171239903951155799715816522249564325481211206984549312021035882708070914165354660430778687247229926754735594086504394327499206489579271834713583017690720996007214095866116522651511713346074179995104211814305153844082600711863435409617190366380378475253340175062538869057432093803860445678729136427365131385686137746156632723831621777297471453359465127247394910259093453364433364959071097519691156247289050219656454847646021067698131849364398628989435847297782459425806877623973900869613396253508297562977583561806366979141167737366121328779458694814496178303046568877126204695451886215842885538862664875082304995032623569884439883676775381260893609106542844138757297054255569667654424161335196254945135931984535630170618567572725150220110922374198816926841992659641178017739500223679697538105289765500659846290599782705692060567637546812753265627525437298349963723765722072554758839205152512575844545911378293710063955610133533477243994721038315489640117866332791463832004347104085254992391077129001621342034856196000750817551405338988835501933649338744224721144874761831297185958357734249993163692716762308613877660335505008777310177524207888278369053267715353233744281608241922547393145647046418619806472868524087900400955729794934020622401408607951240576871868798431275290342881203159050975293303546512346481800698135508308493004112279936706985513954143992164540937359078235519437759667810522166669719806444070831774773822888906611830980203575501727829875641985997321287338029614485403517008171486920628432917313161979684629307173911356974959274088200663268471156807718179170369546782679423618932851888385336853865898189522128769911749332091124123399991486985925727246568593536943328109638652619311640067490280307420530871150440598824055842122351469163244184381985505148943293864299333816350977534459525521681965950445175055239392413824770950818056255154891175789556751257734215996708983430061558691833744638849829281429281693964771476377757288112668142672736546286262503358979439710095626203871403708222561260007032491579079934068111508443146547792500478472028346449954106808418491732032992052720792009209396634311770091416165631646268244766306179257698595147619171361390902390140363185697030817224741701839321124917733189047292321935808146063896996358074904264945285770929323222862249279216669248581393540167276939860438391024536213915961238481618963743655179859401463552590067699473738161223072767506354296597821289533256637792855223756119219552789088614574862482630881895474408776211982642453844305096910748424876597207161095841708922804700953942811387171105465148522384308124492021405181970026858717409021767175915495336061254141167973266291720556413757989568197325988423014555244724874855808239416419902711704025629569791458471561173853698772483657398339124548426017395883596210994478643630851979107292979262164237168559522527560618214622824150991334730158253488287841612375014360691114074421806742648987173721762547127510988635573334539631853243721123118772934261272222488783756847490565980672039159950223300836871769525200554767384415574097993224738724805437459789345509535414905608852269380237746023833886090968055681024497675782492866320851060950129341712189091415739315277794483972514942587573592638533436584556939326655515408920632338014203571194200413862799058606337142933055008663561948391241429369604154280855057835654003464583032751250400960001543088588516441319985939220366328249251260113245450742446343842805269213853846226593462714294600479724386121931193266743829654370218932158984282645394417354317865315358236019370765992419814530993216957254921860336623732891187936509599731244732131574756048353819682424862021110011660156836822965645976579937329751782855167006464357707049638520943596627532488551570737934131623976791237928058884637064985157679599816885285026245140568478768369403922787198157898581167369286498267716787091135412131933755536509095622823938117424048565998191597211521383496844554635975539990047026910708548861652208369287426638682191005296448439214338174358597683064166345336023051490811120616660504738276701968562206353466331170915232354493624199555721169663435800855479755852553409857524958751566117702155429460689223616274693829722859304951919095419961692312012120356309739911394205706051757632301860844060697290384862889165417682176256592118241611922732773349385975874513793105309867044635385002212582266516814767522738167772898535797486649267940017596700596424660575160837501783253094210983573529753061460556579705791056052836627425181931023178281876853037113512240699648110372250425130074406894758664990740167962364103856364840309087909158964761135137181358855936252944202584304740768116099118502724577481749519419219816864131982363476721196819954591678309532616965168178286508480337669467207445668745315703991399988958553884308340062846480192386984568504401372036413279684191110836402144396435161308722081877318347099128514755961772531952891742177667428267987100749304331454119969866839656430830938217226124683770081414454857432418937339303854054798794213634737668702413755337829915198631903720557762998280330469222888110843776809011724388686320216996603765396064601149014420001094341302457816471867733926245500956083200130234649405090799452201632756559021131126784377148861686181534858150765268083021105414632520137267754027247757512339186452816616864453440428828709515869293612359992451560037065560969002652621862949209801395139181583449177724733300712307776599233260719810723487531029681679106606349465203783495269516757748243479030837686530238884190202536277306135539472362421913002506468589953024455240869182970439637254555749171863373485374470387242598705969191936570408215654880279555959949748032211656948858342960180012794924483359851079355017019666843450028578380684936575024621422697180374868388666764037225037278000077257871227637941156213526378705314775614683478816043665473460165415924078397564516952672204325510801586012378487999010161568918320050257002334736626809622962130768498713577460216750342006725997209584715583534144175226122284146161482195214554248872848859416310581465260179610077039253104776614637547453847663773945090940979585035877047071985095267624516328722827028546319276654273542259079202632918991078472623780503196952326357348326784861805353111119239885224584165539378950238611226255095871775702157070880599688862510235132256891635553435791008788850472077611469639331724634592826864872301014746619317100411403880278909957408670080351772858283576244895240832983356966044896618228822177842573459277215313905822872036461087917323049071120244605599165671232649493390163564675875686944762569307011308650008679394134202716438125139789900455022293328795011186143887915498317014527598442310649365741001843921205288338901396435298866792926419349922833679499513591154556447721391725722925403102106490019690442666731953347600616922848064168264521278489118187732330892159766481341501907450813208429871890542085349531984211162105351971491045265861859606060634917681858679890819560774465005529056066929696550196183625567333557121156327250993155132825287599228069854204314378765542149942998705955535927538051396841316178726730928073528729992347597119450460602131435505311286015914515211148550945093751160033605592004041362243093049628463319277568865062936682658775030896905367891787470885107071030616610601799576170082639052253787617767139437065187559449299261239550809481883517937855046727090538402953894659247140577837955120400027117060616007019222512493504246088929393387982027128294511292734989709332534182617002501935931500602616260514870889365872060135869090658847939394364714109742088885004315726865871830465736646349295963770778452318186745365644997739726285678088313630102987147628760258793295242467171788838206194437975832180131652872023210744983727601275449535281704184698763295981085965984912265894350691672312930969571404207256598388963405113650138175679820214422089246109686300910886652347481131413952047898364078894931051054090853142062562610224499204003114850391999061570179346854789237518441122228688566677461359830981807604888448968119222487087615842133794208169994272387007668298992434491055928863533197502844017411413454948389493641796377435438785907122141305608638874483797410472299549497794882150392964511535437565022368151690469271499303689470698008459798120081535490514486201531316145024951151927353856250445898400155932167182395389818267417558027857408752165466660459377317116849695847160642311400650444298792092427931715747470578206956772608132416336620220541383297152953012290918853067240591047030259049647076186930580342994804881437489069519268896216241761403574997235010821848297435214262899813654986902407261814289720800289694587150289844053797480863198772028142303880445157898949711819652113023073405724161741940050789976661701728177934092155835309139280269337529581152109765566202052786657306856695318970899067919170950259276226395461347476858320127219214358047267290055249607295188851543676331050263453555912265852740759537400421794722116210430050556856230917121919135657661798617878553022858506364966452079847611668871999309051095706383230971124657114996210791734671170972715022277626915908470347978139593980447217355975111752787157917331215099094254558964270077507970299502978149066368930356688297691088444804922490332595549073660086701937904871826935309333923132336610861723590573255670300570161397452172882213699231252308659785158259749788194397525576893600252552303556650971064029886662491028962556541667113082958230353153507888806984080082377940270512181238085437835260824993455674097129187005485757035527216739545368147316970858292972650039304804121555216105442028521603269964079951835695458184183332735826901946213565708889368278845262460525136769622524138588588194238684059466453174165012859802591245931028624450102562907651656026455214406576823679920196347443536589565857444381737394181537666523088249475238982098006699514116399625787446421314893107672719738372599018090555041563936990181095369298817378624573002330937444455968738953787437629103182770089206394010197654232083183787574185676027886033019792452819916208812161728980879905124584672914477727940826458009139738737827429878328830189408332145704677826554634666766972921426342380006686479737916371284628658603036477493676609192738150563422468891895216654440922002631798944060103843499124131881884065413253430815795228574001408823688248023463814820395644620074571849565274609012538225313945004779682609332832211431677860556824021743444438304526296941945840662569342664652430636336958957998950517593425768803061756782475762084025036328932329803851779786621078729142418897247134059200713942826180294874733354739973781506465488241416007993878629725115425240189555226132897342805948413566225097334294508628504512619313266127501681664318115601565543065697661703316662340463955865537897932087805942223877066803664060844888929386453208214226846394101151022255011238483595827403251234779125608770241626201506474618810551222465807784779955058652135380347261594874638058750459492601922027336859446097146461651707176480500356977896744529340418395242318786571483154508896458835304232129434100358047631153974755432533808772317163435884283206014813894622690844578191277943983657491402836424461278524997606761567283414181908452533778080024995935173263173264273883855888965055811001571236856413748976674565399499154113172537908289741039245834878917173117502507720512478215255495163113777452391621068890298855029324875753201531078909882156909994022916423250891296575236286300435950134262430654549685763894796148087383622135150914528562176573974266030085819152164730422222391061579535168100681781714475577179767337375579911810633464088385431697294899777315511447809913723007952169126135363717772080386381461729268840558720835645489882088621931652585006719190127376596361353455983603965572109272992149551428012600243391946959589175897292951411799886881351647080770863608532716676137045816324846781530187613802555703072119101225069750150072599522013943307896140470703303305491449778414233289326179854982567199276276816926851060479273509210084096893977552221739510043428648153891894868490319193910114219235118912216393830782834254858276350261291006989866365515125788156709843056395798764469313211826115690868950561852091169167806061484064564738050781088216718901744125429064710486118130553667530813601757769839480695118368093110573312618308047911490780485710344749273248075388428428869817973174307389767811801658084370648263179248259023513708508803404065715620109078680229200461758839700384996847409036897665536264638772571372774616711783756439155150120939190202192768581738260790272505998538143169083026956125538078869736391200296714491172750193778751028485519309378482808395795468347205142682164508933851464616546596263079573956947719835737132459798552093614870747410706581174832569048944159532027382069846921547057269418159693227200913898083605910862101089745862983272913331947142549609711580282203305029528597607331027568308237767702042823380186956910642113187234363139515600831025338928898761462579165232662468296778775206033879335456096811460148826872051249492828313745506236978833129971359828813417392891670646874407001313327773314184147460287924485759887337238765771333251749834854498013794427391639170882052447698144520920519780027743497272063255624275004667783939421032486371243151861166035810950885239125006051019943074538076343939052932029229778445327095981893807959564357161062246596683654776732679731394802028338758625378421874953376097634498448070323594490585809410929961925165181148621047035887410373824365818523422049447287128215506859274372417613118666657704321877510025847642669231083985654388187228081072910347141333863908828814077220261891176070415319403822816021947548534047283021798496420989434176952532482802358758495939661258569242439517958783394788118287886654232214213973266140164441396185100936104663354415665778295011857982616424029330590726045751344315712291485010093854822190666465764520575287370808888314214362345699324857024679478072421924739951555222968917663658256661984282848320501889957426475810168677918873566892646249792039167517327991540595715797312290581189098857411423350785169417519511560433647117188938249621298542128057647674201843596920418639502968761498010088351906265254680598052286275402511703218367751960813190335495481615679490753609838862780326985913591257359242192105863021976017235350210611464358715945445885172664299623537765570955136410581721557629549356031334534185964501877819239900296248554803605812306602585004308723151120635870438727387902758689895381287193265910214077135440664960011456084614566388381394891430223286221788946416825802164831961308664221236842939378492661456829433540539334817030033326774144397439045660379516852051091855255862354822183166181658187852788756032819010577890891317848362947080006866373509261317929186741075601893889463708941170092460225096153512136343280316985502507583864221415497066192903201477550060626000982832055430866023498059345588285543785741198894190509907459558638954852322803230494632121624862394487744455036636945142185708109924530902932097273786838905384120972232884186512652220185477695309053227683587617550379818473090122783404396903767423507217038169097035733936363288680165394837657189021948671998028598550636694256360704751344990251412075489423422039455063916519840898537992729975268525524759863329278777599974373260612035643442792620720808992078618931159826015312925834316479682651681587537484971040490285413927042068156956126133211639702049130325441820117775943782677310127088258662864036510885920156603877655119427433186089551933660680990864233851646027984785921133903297245853001874808768499796922009301690232120460639522386836754544497842972172036186040086900355128343403179091050252916509310394543194232063731925372358657455796907131331908667091941911551564775471995779845458172655466511056524603890142363489633677328054498151097619799798399805418732960621075574257473531254584499820518054015115563227424772143647475470390890984511389764583978180278916787643331161296389950907967365369652976248551806845902319463881809930502272397336824098193366875438435797474720710944955261302210422946476679940999946654307116180577099877230078669757893398627484474976286629254399982053728046391863498526694091780279856299966759969403716855489602063511488330645476245044750546247817307270301077786148285253278141759894801454023459561675823043451662801563488071360096181974317776034964022760168270910213773946021657871676455802015834604275943996942968517785330625282509997872119104699321911309261428199373108718002807939551298512733843985600291890312480439406580463857123266374116201861802733851244494956665556875385891686205504971445671380663266756169313934667141488366778761346622453186960572125252867231047731967873824926929180548140834698479162543122057047000611080362700070796179822485651578260409730613392722474304915122245369182533942052165024119321311287575828152000420361669724511200063257746397476030835043819213326962866731536518965802855414737997941809285801613132998790725570830329071357657809822120296118288411914120078051209876031346424567752076410743191852609477024891045367056230949612975100722001761754240102505998619075919602021173523535661216739306168644728489595366962914947186757332324804952413000001175981139354533269880914450033339305073456406304186204576768546763284000643152894884871591993503554656574539080867766309762947625245837298300228996690982715395534426038684530850833292905908166249496990318052104415476694498111424127929927637578206382709445843801635983029024840831461845957493891355207239182798603643038267086670947430237561558296242196311811572924334578604160473398268643861720645780660110008288211523513704523146587899525587223649728847021835642685993355457373804165241231365682726874639125192902261148747125691998815102457672956782418029548157989805888493237269479193033966384807650667181223396427488467424105454797955055760164555383833316053361368492482632608883634732711156298319520940197332211394343467837717980107745030692231198592895448830157574680280244989470170911342350716624936683741020064283648005749233960450193881526524710826203721781168793967373978384900170790047480088370558606997368185573270673988965913010061241217303689647458444986035358800661070167153386452319191993463159831136744528264995046923819755895928007083000367612291746129180803680016511651463108141193959118273047661895837745643279223685150141022539014814966251222368865442755579350329008993403721491777849600587870942479060365445133838488550073178344786817652909408609650908649748569137138254079223905013884641725835843124699996181593469352313655816750975900668035017590438560951650077117561550759565626763709740988358583110731662938035215960815866519613856203707738813468597618621300735570401951069432266737719804764492460023934069974428264907543259568133154673012343240170990621773930604426291274616698838247966039336035988973878028055032940203432028381436690751476489675218664948903519774386614317309294301016816180948646312315427893291398247858808832689452641281742065766253177793052830503793254181348241432373954983953419110983119014825916670571401515227016799314637868134837790174501879544061142252888978366954205525586915141214902394287886179973068845405420384157997010542961305617417005911650689273856175131149528795287791557686456374407627222901957739549776277293768194311081646801215357459566538679539717869056764171371696017888934193308037282794616277718592048587095135807428768070166316568475631131133240672008991076654894522951204053117387946034516517804738588964398771396371346227568941411093311357380081774324045582781871005153544268992032921757835833719710167029456126655330308402509845248705839202135917672709231765577632970873761849673857971328748889273439702422745076445923397874920197620385587547349795655792894363301587295294532270958611726256637378472610111273567576073759784248939723500047878356091119522606393359988699671500954882006673053046310551957528161153582263548491641991450068212826493451536907548834385313891615507081843213324084182059825538966644633532344460322198590898067071375032830807502784998172943808581805398133544107020773026600578739400154893023831218019222266898302195556494348385862273641204596059568279533456014218190688430274446265353741507963208267043384949596083141018150033592492968436993508602549663115647920615197556413241128282428081157276210446105922649013945065818387632159029081735859529421795533366109140529668175789152395722264783535614258732686992948756584277819356198631900297090839535339603845797742247174323163198461577711915182928275653170920988943308160321733825082441507175343354884153277458233258903955258409076722946656939651466059123302336991425097742540169306072116436037933456238831763874241121924663525338918862132541648903929102870801109412783800796555291633067425035404205539475501933932514857400320828731690784358357110850866055964475854606645748322641439118544638341937164983283030892182150140599258854722903847777012709647726578994876895662663920592317399132688222284144114830148124078437563941996831118363415944676917204753102885194287036663846605811322427686667326341760436797487762494755730996092979755177279190466032032580489243851328897796770300950191914092822387073238381787336032818350035368351266585405194574596510950778557085001288448710945793032430868862001714290684197227107559644961804171494486614551158049789716360244440736106631859816264683823535061989187557832624181060382198653298402067729842078898965503782105382242417920844269646806372689895715249059325510955146907792586938311855067932163285070586423396917003514871783198161352246280664539635140610469387561575189884613571301867704701237661860454067435526563915944022895342390207461166678069284247948839444723173790303695134044250686269884578323605137992566649607736840255680916482902283205377165087534068276470754481837229206373333985059737741198747543209965620905516034383694963607137220691370779944683234473977883364673869619691211423278080857146605909752726029031931228918212969784608054056564621628383535801618400706995805685991487122695730780424912799268565670437258410377115698951780898563454283252147590250494485377844963815058685334912869059099171464410097707498535508212427544934713595876651196752975798733739997422553078255917673843790286006395828339474685737207357836230983431710395421373616935254419812144071709924443144658271546588966815770680635701990987133522738038741427152233222490065615284310866674425640355376379135136488632743521100444916833820602532478377746707126268577974565166745418931963494811944978029438851028335802385098346198950750670901698685591640380023248478260669218771325794546310630083461194594632083226938311155616505301718369083408218897042319291803201859572869118197702129573984167996096941972618014310956742025313049361847981148268195137798851137298524893365469929452801520802397149361529046051586546777469248473386343391628418291124178070636545115014541276799166181808627779023724467710087874174572386909736085886052362147336100822068011610217974388706032158571897320040899963667112084103042147654815789091165555017141016742652915312005627805414088580226283879075347836897036576197949067041578653866993454988560149352000862242572287200994649341206379640906921545771033094712518292069324386178374655917445694442534918738101973131002775732102275028604112137458005139244425727839299894110489227105162765412148886715272486596234039224880661290295082271946746229065613089450459470444866410902166762932482944421312440977914231953518784385643964408726076198877764252897283670270457859327487547862476950643664770261582479340313431016146375728097534393004993303935156038486427711863552467484321316076448456921100971435808830685979732243843491274723990278988609332746676950651993623523920383702053231303620814662827723875023194080656984238424366517176995118999920340671077226079963054309915231797698996877440938022079063688757368170143256909286279932356131182299617209956655672865866216749830913015148767187125086519904195701610528164319535264633582677180052750787926801561960714381082513490390463852483129652298073604653494109567215708697472766295305210180591816146038707202794122102231960806483332039680681172462280621267882468806522551655032615054731115481468320579693341979492125279290414136835479493258249477714575776012996074086619783680513222672652237309500543597915004130547894863244641332349319577156518441041430656343707494105406031159796928574427264603059882028789597207433686386671580049076643243015607927943621383520454865792850191738332568326546918571895890977336300869382509100884085804579649084039368499345307964138237650269492917168755679341609603396425679064920465403101928425650098100491476353189017540788140541453365255479209768983981079879985542097282854685115655106523208214696342155740386329241152282488601757734914346273971240760740534717461727490641885759592982976465112532083548233661419317959036365978356287286985444083608768962040072930496749473069907171582614390511258352475381691868906504179685778986695144026897134310233184148944117079933465496583104766890815678654476788640867781622676974378268505537682899403951836741543118597171592050039433863819052861352407936494909184357778999519451937541145007518309927933211927917287619189433241361733307522603749342166307027471521954522473550968270583747635957593995365669719107244021773334523436458319400220587692237633223602676726468811150779313662137812920297556407338674873364867346001949608118864077082591845621224421832836041097476056899837765593005604275907049876301804268532587184964563294348028129160396090220173139476886834828682615151011603364383233451708782946786233380114132129869733548383941637538041827325115535035735347776455352060762176316073160288862417891124407199429607988164418365738110108380902940978640248621649629363263367501267672864755958867312572720944654510951876373976042374273844917451977464219061364193376260526178245258046104480352170685567672133526852331115630083460764292493487246301422980909944185058369062832780148924881529177286623338437124386506409513661159773004594168255480994669071461664981806245494195525223030447159086595275653087856914021994159216927382425965728574126506941966234039888414492856570336487043361203375066959822364316197513854701847686343858304727178392632636848691787863480521739540228370945555160152352638659583150558361739735171319323841694749741795937648232879718100678283883319624445903453384344513109434830476299719298758957138017277343076073572423165854561024444802440308765892684194272694757885186502277239975119904380127538131516564123617099341090072317449700279022610577082359358652343687762332857575682282523465182920865445909424805887425200011790737730646376713177674396944310215574279752864685920287874791496368465928520552011775014360785698769025823162128652882732098365392865722928873714146600007141623216571813330693203716977416570895564854315940308235812855485327998963507356114498710600026329439140685050619220053871996071223853937693321389607972834252521380068900563482761613589813379178769799827123127243433382858231606683498850477426560372045275906579910032501943983850615878151864706343166575872276030850416982714905474360994942922062366190020224679361715656142555351580477586182646522453092240063771261688883511616414042418514147211582232112293793309569797403169777398762458222163811975975074356994614476662234001430848481341541904341063947904728155166070262600590494520684337994215579271566207415852363171275481990842311419927396328833597038516979071505353460183782836940685788883188491307227020792013011918911427011498913214008778603409765379826982534639806444104942214115160938148791138798970164348712249329145469446279051973339960515101073209197849260867844227574403496331791382992146664920680427905034206076734854365002851327290060630178813592743166750389175010705293633499753731958854451962506651948057016859330002227520193701958669006361884114736384202139500046184766870410123113645533112899763843013812871669212684425844496291051916683760251479602122224041977151694955223200388401242922418675780117901429352960375143529245943464897940304066656586695900249121330705171736422803560933737234959133676135967022407280959710507691196906646778055000038990494368479145629225543920860478108509608326774019135681152825306264276564197445783705917539534869345711474846999485495615038977215165562772758996746109287434661268268419431578974052423311692365905702238680569827799679828816046906092632004615547488641202953993349263344138855157738184180893131845449038494359566584707595466438195680092688777587044003705909475007424933725775304160319769726222250124409967846456765068325279198915549978273237154550220031868917734486678412136511970943179612449209556473970124829322578645446016211229200618313733840389966977302368928716544490253998081440613850562964242670196705867100947709332377908476689829210973477859807907539927071861988586987577454617588447850567552375774603291454989563083334171134793664880394930207648006978664877188447326148315782849132898094744628862788114273957201976739688011892236894497203243216837546691946286189287378259468911619413217950666510801623305384711991777510295076146618335237814850096525939176321976372589290282499621156040331020921248099903235370138376026273211616677522040383250416083680834775542373423162429177274016196567172929257842174061185114483922671310831064581901633283610905061836471679940839828643116354861131329358577994098785457158435247477505059999360179846102783217919012174101171412172069781744084561523000631226016582238662700565745440085964743541306865960693223959084596734983966941138991613426221763904614724444028449036095516587377770415777565214487815372240738061029797110601658803463354259798460637525228751216851148197110152407067750283670060741328207176710569693966784263501967795032162485115233883907196105847387340539270857273642448695187393768551275767154116917884630790257697836457852494706838197190282852073737825605407757970696964295962561844899462602602262796526230785002843090243281744344267586416294344957408828057577153207425272849211195353090484541116694300914087261115000006878485666231553485640870973876744842678521228497400054674201703344627738172955040073604705539307202684121318381839785789832196363801469039474725142428443737904927446522225639047627232765625972015795730234297792205312740953188917539606923545341988592720525458755242912889402623312917177772341228197597654109155179770336319211342650894744154124119202816082301644871861718556135903220809047266680902410512632992862971432494552499591048368311151606431767440926249547129401762738190547268739546173453707063724492780417544766244362088926782355918360002252153847260020331602057279629634333138181671560820527498897676539234055807205612524147289808138624415026036045397567330161015782551449045076602750585755995808630763779348494706309497244586643730473275565847740796493343670187674341114459934387435920643340531311699633829546612806541034355245576207524991576614389912147845733469784969700492240838161847814554587157955154487458484436804177337981212411024176610012352597048485808669223525495097730550663253473158675002756042715607665902248055855962245200539932844544404399798473944076412502582924336139803349417527886509086046961048915654778859481439314363492319574402865400575278756422768583148913026321338717676677929339190074301351188126501033004657322984112917693117374227238259171831653860409143437642093945801095014417547404396906254077767822360164949106320138178967440037143909483284070822941791797984786026393946984619018813461664616639372734557029852185710996726870742443305712017968317133723134020632444931774360967628415497315077034220243862261096613618177484015466873564800494496558609050723554467463952645711646293841573077507132984917616682533775761745264028401508294763873019894889721842759149119077019791480323493633172387929070625977814007675012385446864025147682256649288785258787468986951801106478541913867049083025989476090772390407760675486603279236432649251575121817444432751766021770094349618804337012255243167931450803451362138785905284052472719181444357075542285051278037950400743257150083082688212891899975212191684438424634912248979924705289826299308426856555294916092998404722152048453093188896062416343311157844019669233504905058836072652754750531809622525028016743295453126090264372657281806625793297229889856345858419814009241028613702274162928927748126405781457505881938599196670698284260369717922458638590425162304147182850284839384067445740762919438955781776323808644860106936841317678669710045675096735126144721521099720985249054102166391685848774235942148749176677011871228358081525767025090005197363531033439388356818558783742080451434423398547911607870427381198324631802861213027776315289812527345894636034846286847550789695551231063281046758548955780258914439357236228071150840653428499257902323321435629835743452058668009933342589766211792998428388073198522498739495609280897063670522834270338140401410982262229221903104349188351779461313207930173560078906112562337619213748821770175580469370015690040541391474926303224497064901223014517883288987525733952014463407250702663249122401368667099144113645087449181239798047760725811824889283737268828516001118965024372265104983026868872258739875962520749076414759582177754518250559126207220785990085205737325884110368342195123420895380261886771684011078260726332814809346990584950962532059210138671945736167968621393268517546099037426323387610164669756292621095471506904665230121281231559003901362502098236338687584039027785824551374038401160908914233518798948026159529041433743126710376099858197109433015452237880233951758114550782437379369428160623602409152825293569127167331419642092589451335710682604727022226456275173744850086885576580672659722733857141138621727799319444187845652333708934078862581130780298033026122820496202251967236779604817041029636775273178609459458933888708712644040608159235181296241497756500153536149304113402833677748444845185063183764464853512159076677370928214129235399909233479643511443205630323758012404391759145394642329980866523503889711755778313824301371269099009700294346834826854914295232949244609309596172152017197564411240374585792297496978110316735523933526583906894361627468606927620652233634355449453095979060422537605043219710847647841116118784124945660106703786138350805386655406826671499119654063972695094186945047176532836868357863524308419536273605574608394733847368147910474490006393253341264424331704007716300240713579151046283950744356928603525363028942756683204565061411828282751207347095604190389547116961034742015067915138098497690994418175521846372745507349636527210186588731039536385964531341999152319471462287654623927844682261718419477363704874978620268979806839260898200524048848426979095653089942232528515893817599528417006955466638988861803467118368933112664151227991761831268047900369155160984148553533377066950747040691241911822595026777633869021637979826319982773786413591094282869717535464459241722743596674270062622944042429499707647031666646290349521448281069660952449417891775842848007263358464711832679221503162259512610112191175844111295933805959392124901207992994880862354211615489068833159342061379322971010396233088119221133695251623234209379301133261051390091604848172707049212007547026050487214393996135630301895426264998961909986528802539190430317113868955142848121718540026466505088707459743270646826997159254493376219985553932381874629214830945664544357155072328324551828000437828198166945756431558565740726886752649130566084583695346610640900285816711412776887099811653598633747455663296361894903167129922902159170027736192347810531031448293714959709027467977144085672512224663771230415875347993597338931259303173520624483948019754490549065049279396980592828575665741056396984204180194441739852641154838787651630578209648037145534409898184320773558421595199546999801461220055390456983510996328852341806279727221181584068936850028146332079935442486978551246765909357905386351177665879789941320573517502440527881659416486918090597333715059577087896678320422555454615318538843429098253679355444231307728361392272378565793891745661180532925068884902824407107169652062905155352900278972799912398374603166410048974437061309589994864118139663769345033263384518315562232717427022995270292081046475859789625834132427923309686470032344115476511892985893925447037861226203066178037475131587717769727229054589581177587321252131913055427483838125023338830356361079786114605794992366772252960133453138706476489677534462463076202059714018932350430923044619193174829875519371729506869620337671639548352898312428767959198484564207073903750638608217751914480223049437533433650707210590504876483787628312792329299381185513656540895535172534533976488569228068283328109167364517653093363938737757720283606629674893369300163378006261623613476585410444835657381819864691739864945622626764971144471552674831466731966191249965640795507338122758525890820521323672153016044421498261777130145249404284495551026804367793340322125466510015516012413850122094392950232058969072656700707521237302086402608294024744076567682741955966352125071549705332125167133865968007953785712690583781887228398285443909532549136445148837137798209655245212725136267597141952668003132726178245642724216818560570581563190459858127164205458469796649757848073305076455209673806556191169659664991770927476865012514838905394729253549471755464818401928591387179174784404659830917622414435340096783703817929969665347600916255704043530210911038124271157787778651414169821609268136022360359307268601787599497228048286452105774981817595436480904667920804191487581862045502737216583361429261580402684545045270614706851679386584696568971045868358883939370824874879450173037980258503482851586223860009049389887997975558462505479446741254794572241083252701795160369129253719093845183401041204025967909703876479775325701836700648976245902874922135722966091845381483746397729469754373510644801609551111622651286295341531469104063127453841507904210886610045197245544212674473400769690493922627270367593001698527876807953529212618165382009279826871147484953395375127264662712606331290162265283533380464325605461088449219104027266086181261455399832753573749656024838572364675010734009924483690167950347324044446485862481615341105727573328450301699969926365937886271440206101262098365431856095840655230306432898298163326975699612399828983926083828488956151904978413674276906176832870811076299505812648607873098404682626192683772796808542773005661200997076828930214671476509803364804404730131527700744624336380778019160381499770162460380321130929229731167870722668711858714198577024298844241237339169635090145928717505992895757578038963059459575190025817819741725926415004044710903488500794028106437612969231080177464033770820643415424812879865256340416769906836484559487252693000222198469944308468745999786348118036374278032944290655096983987456613785250714300060476679582585545917525746952914255207775418914043097027256801566223843356911718695680806377344011507573809085278917767612194313745532241757840879213091180380711583543169841886801827189096459406298382689998170874350811190586340935070716031228349368322648038155985297917097200608928616751447853222966879347105051892944323027581513199485789228717891285479672268940009884336786918353325116935225632888706412888641431078947788255031537545909239896568956114774799131108062008783344277352579655294068973451231995711003114954742007895799222635460892127056646021445148169837289696272025049315904746359746657216348431350509459760532378714409182230457152128656704061611555711433050509265644796814195226104528160069000632863913622640032218849665413613550949075341389416342372662888710825194711534595967625966477288991101663624772677684863657662353977723492393000795417666492287338911250575298698599381360285240847736647667791145561019539396155894768979655369352448217680732235184150364613915747755478192522528991159606517378817686131625384363835157688036600300113519078518273399564614874627373868553673316337895886658448924683695845675806848801485363565831186829857613360946722015310821997480832377334921660051805589615762515924650508710179040496756241520340250649650028753755969404214595250625065890545059257967036485587975051718229341040876438749970290817834479960788164250077002150433989225227651055090923309103714498087521575029689928121968558920165122560650437654364481866914426426627118563390987881332853428863365488628011645192356823120269803968933213811702398739237947766000392445338079276692041549808423533848104211979932152331193580296519333519422306386212060597988151881955923465564884504926797452198181059754385817301236373077508567461201206322065112721326168658596795696790449438138855582720203490092246137050584182661652761267792785896250021402659823487593400358005380087032810657673783850251413096729794714657571502058230156290346746074827861931849573106168580822947574597983851676451671847876187271317678169969915860618864316601835733180213663519256224861838495753066488895992480511374473824309555139482395740102050252362747114123817724944614855626282054421831733325509398365361313816613682851753174712301698159327593553510129885002361893929025434054283170914938197151939953757437010043534192635750755604995485058776197418706094595298110076806911421110363101773772850545074806901146027669004319896461702251409037407839247909576827403184989190477921534953510821744754323422200782951276288468114520295131653822512405112448415063296199547057645544850900714389628057550511092524821129880027406693733420894326415759389679518115616992660731059034751806837494931125985110836893040772689008891480615747345707117229902756077043443058503477984447044622394680180641707427682557717677914510858041935850524396069275508282381660727592872839218586662197028126155416363618660785928735867094067546797773863231420396739661563587218989304450365212139898056652450084686230619063225642103170392877208068145417051240713622913782895229646143751472463451514733013888729676591463046421900992783196032177341551447761717839253068570702442156419635529422478874090801394457400956057484708577536533389570566192137692588213727608878938920154241574143271652901937178259506201822487237238959218540608834197100322733848177446484550863585455280668033953532448568318102711425770282490551021245725245215708525971784722906962183102399861421307818512703184165049681395366070669505490033170160349923530936375333350919958619236735700566010085689078820499181138709292114869858600327696937134680365032424622777268050009933622761193551391919984752304429158267074814088403806247016525847458130535775152940980569755771121440738024820974171668991683911181323206832398652157682667401427319469975848708103605654041254568017717040760187849769923143836381681852301398839708225523860451747647794556384512330931450404112381042638254710366611686915561616677993425492231968562637174177231210673293547463273281156968364354311102414693994523308098177048370360724261176982551926236967716719367413911012366712310121257014625132917989265829127064487558338093877622339893145199220562006313937791973063911686546317390809091178076278454403298620044102838377723297656288487180775987197817743262422339499617938754392882061670002530324438765690466916264543054380222908712432534713354309525856938720902315446448556178057337304529191938947490618819025978284735883147887160432714688703077648061374758623070386837931814135179648771312210084265645380612399734991645216149065344962459554640071781177602542563655366129451859936299622932880208001507107218667590829915068294764080384468965124104053447005191742633013759809163344557020438523981675386139502130175747466795602308858431983588332821637317670779600501511356924478339322827310000991906202697922387965426159796197889729896622762394029732394126565010257994461968488824693935291352613196454346372761739723388327351729038961317000070928208283649503597631705721349942387451963760569317902413204315467365270838382100379886483262093578089249660977697506491433487629338605787928655238254054876539025528640645300571892868821130836144042260300625350385963102210866956526744067246626981925276887665351319399790174677178392289685228729060023532869892351214134002943995312134232240988726012772240458227523700135841541780737810093410600843729934470157025551717294335206127749882943836124863301967705686651506274406530004629198568496047927783772320173177073646131430251441288229899167935155853987386792683953053557726146192490101267949830605662359353436815092732806202731552665725530861947945251224777933996599916399091191046721491223365662006689652732480758004725742305349104345227794446919333397526014099363863354617366072526046846575477162328766759980622792056667135868863001111006094421952023364734067622474548204229904621114589603397051751396857425019753636649658518066473817131700807071775817505457485833594298515905731573867091940004953440186298963903183141375102094066236029101522773092740607166284322921056198415100276922026336543539762957742886022682503039887567944690259740445171593156103070879199089364849456576777032834797113462895758732313543100129281841496241031263399412280265493014052188511823571596831360313404615226937112200965229961108698840820677192670515536512197132608446261389548618435883233307306640746848667781099124025178942271057130144186824888221907766323481837820714437826643672005962998860446303474356853158520403231111874191934443130776914614210651853653125170652360563012086172776638085985601882369265571522258233012157378669223762351726932865016977719017340444812083161118352375384994300309113038733069199255528754567396712959751818591577482582491986696953862726802904818994071006102026099077897403496563632636829718640860132678488492369251320735443627646929441045139756470881286078267946972075343081513930965931689673006753232918519667838810590424892938429700550750750116135013247694721474999119050317193319384527606919578916732318781328352003218644628480262523435370685668383789628244609636372963546654299816084415184071016863717292803218202562046657276371448622623254105948807729744628143123650965999594700004338854670431865678027901435870014865826619226951750580389148780111435229748154588532301892862205066228285152843862624654031272649948038699406761969778190269180244179432464376262676229321146417949475963450813923938037073008388497330591681419931180142453843876595852968593859242300271299872439869921169000969093337548935486608544091229326290096548073296946493483384512263884655432062614634038695046096736133653479983786334222630409283846168833775969042188569305189991692696785491472014019320103152089608152349401977976155849034732644223585601667251185393258906946042857091824770130698916102858011248441859115039872618868955059022018736310871052254669603765396815878041742981858276101781974451966064561901382374428282438510142963823624546019430521422909199447197116790482574016600956999580901523998600991134858022089261042269370114226695821312747495396890468215038932879790521308687600571801324889816579616037510012547750797594125630497926128008278846836979265226053108375441229176178005190558943828938637584669280875519720594735833876438688392940383033561790545374436367980122166548711858279705841996229887810042049194514368204495619572931902907001809877328373437750693433351402763302642293963492130723099616467890866801977943618190872488405385795371867810372274554124522134929551535224527955290834527874405027853942114889672721656348271438442928192204397708809287892283701833086305807524675300618847498684860838357913827382300927389460708092319356884747224128565156822799138340571122886822296758990768191005335826445210016302046848307267018931411069593802795794549230877203755468603327107965967277107591071312908308524887738271757342856979640080584349772242289915629009521733325679496803967796449134961035166996075972421730240937545931407118310375420445012186170719998860169810194801690880083574893592527471527448641141541434428087776670382325368626639510683404734718469338494952086198691379464519209429178421500276950924065555836305840082868846739334599488254188390034050136781337454865264820055145725547355534947938683348260843698368879066357516856339855238126670754881421374778984483885729691705943341761082941855460204350151070941527631917182762104370289136115215480400412657254206689227473726464055782090288048149795664155481671315106799982649737527453891069414425505825607264060766863080464014034081298106098050726052121264083799157663321372235655916275354447817213121613313659068982028141167061866928433858534550563367470551133731338808175948372702897449893928882904128459383079478932218491724637103547210833329371115837720832199335987391576898353367447243196234138772869813603411580683532160029274020182266487786199223418197250821240897791473083186642446348143272260638204378703515332301520969410247496061173733204262968738760450668598096909286187357380249865943780652666091799510183383868378433681039906242317644686558791739399876905498401555065304092556906290382695885730478250375934590022586002050683839193872836291651690389825627701063882047953280150222352706905721513006469025363742951439732439639738264384747601330199482481132786524078295286479385535004396190041159674819000315097612332705323060138793518811788508138937369018162871117368501099122663851033955563057264358144873160647372075822920501897350755034275344835717980846453790364784101056500385034112398611360023498728407514252003425544945867724884333297140194608700989866757281654923789746005426475999310805268666291886350260302360523195445208449595292710110297901400626215797373433191227312755735324750641517614516568505110914946530046453156205668332577196084899349984416586069688494611099847815358943470003695757563360325464118737256922400918082029796695736757609707904315018485262492251771506803902301400056389335169491295208153863744568875609623434437055055476860354352095968878558689592702508179374283960616365976082783764548183423457116397177510829456255953417749615620695497547487730057810483081815758889345407814695356818245720025345692555479299675070552819788676344094363253751931752046274458675494340765144672049071614059877203194760284157776564441928942047406682359348042945987897483929557007198127931314662476937488899265124491529378686892075883473500217784201678626998167511773815447865313616557721711543089028873947117958796770725144972455545872903992888597734520038099315836269390036088020189200197793855509066797252965078117535468807567549606995689860279283608010436086970630930289311815500046342648051457116862832002595126525508297166167437295950914895750017619153994729220896427533696822311044135687002889125797011978974750266957726801844314682636421885458625239058157503827715129194227369015755459873246112350241482693437868099521751654490779706307074622483665506175057219590005583126295573767454081150888070848444471680264881314924219398226425117959713650377510477770111000180518663450325188630212831907099870203102270764293862494598881165523389890688458454519382832818951150787792749426583462680809690583356533868012833104868321919900878906762007728053879738105172005459058450763261536945904162491606016565043886186617999461468734798799936529338636646751699882387669504551643986725018073771448317415495837202057952638897005424661589564040938966006357401957963039593764079817014530726833185977815362575208908955910056794380128549183036898676736446667805777671098918538706239975020528589936723607485626585387798379760432432922451504786769909325529265507180902502073063609845849585877396071783758516860081449735911112736850603029702318537766780370325830140883920498646289365587549650081351745526590309931031432483877085613498776784961721007166331748039569109213820319858633621995450683150875817489457017589554691118475260559636679897540933539329787877691779848274788423452600627410184121192367588286743485564983626859742631583857802881702489697723327253442086709461473505184895133766732813181987797702069572705780044782620228002334832481003440664590399509812276566068747557647139008490327155727729037719130752532027465375510478628524853947401490034326413977254358575067171550345684758910880803072581620956738001419992756688093761893825339045450634384531972049499534851487308139108070578250810269758692894662656272161907602347391992029923663378970340971021138111456484185497610129136447622853307391827920942088273483600578794030811115163630328837987875848284480933700005977701365470532043573359706755754237193216967891342517065523863974543141537657436771451693743237989757196114379940384348598094072191239568690739403662180098494699288585973903464113761742477279197281383414970917985471709526690722246698711238037006044883444906377547514148094259973289867310034813150502453462302136475134191894706770473085968800538425047670329192966798758250999166069463062929312674409056824640966761130409426340355857582914120528721332946584802380155116931015312241537406138819341019855667132494913343768457750117524318316658631583336287071624324856054831449284365572736297042125747248385950582860863385794550912854126613811042426673978537282204294356691936558037711873733204245700389524026985881411574238265088921219428139848152300902537401509403976011536586938233466811094161651217730644459350608469087198042418188303079331452870804383569197424863532320651785692941087310465495782220201716899411955843257823302168502594034632673799069437870927984997775933520259653834308345321593267139816868583078465646181463758233847091397863124581246185273492990457843036318540027009038494834007755075217439933453506367673400832302908665021783739337668671606578869615679363756104933446666065250448474518488344896476568165171616351537359017577635134357109751283903083654441232579247650181283026123887278900437561581331430870001610661846100360592864634799695776552261047252023294031732404190835161321618588940571129225504089884535254359180552615706630346493491805823814144688567579398659379393430156801305917466580054497527363010229320788441285447736148765743168336801038809929938400085291852251911268228252611919096618491914677399468097755543299698604496304168962619642054602613551310879364549342522631336709968594490077787835050620661062316657437008618686883015667876910993984999543325825031357928822608963331904371801706718081241041164848181612756501317701972240138371745977302834692088516939644133303796780177904917814005004576377167439694573656150156025639062649472245859486921194041730993905250420836796044943705864632835027699290045102261024098901783163039414390577743362001515693614111368082510994057530113540718233827920912951945845302075682961299892473302478838867948866172184736103748025131992535347848031773034731929049940351305651021991162861230190648098105827421958620696294700294189014446541416508326617868579060845576827070731406200058634549594833393534831977919641836030426007104200730006066008474963480409948382425334020202492120278565027169245687503943286879004721292519052198293269685088441896150782812652807664415107928766426165676039295867256067519959321414179356231358313926652971997588771997474982798540381235482604119437676620610743826077043631839601237822789329497585610926104502119890851071158771931266316695910219519770743413242270331363845237978052036289577248755983920464231257499679739469027371809138119101260921386628589029666620028052021361429236876888085518087072454249064116103796541365932101939897959067308895937885337318518309184406411559026867453281279042423068575265968360500112482344888724283899012395336307206984309333357010845023275557697110748467398662066348489553752420837832490277475632171798586488826203987691489248417016837396393851327963799802220712751425039529272820835825626625718986788135556260986111138529397189702823975515556425756980048116604321565058151560759207839580437357750352625825719443947245238155705217236724531180700399131016951543411095992371145361378311906292773266961768821467069010734308481603306925279605631727512388161727614622140066784213406552477613557621428233939165265170409138096237269105725375982230482715206944671605003957320192870523831706838662111193229759526812955588226282412864066114040931361858399244597050785424293506723233827529374497438314642679222270073546813099001390030083724511843975206612927358699653387994580529194295680027587905599805920851003848881243431610827139046485906225748474379637554690733259260685209924407422340131691597351494211063560672665483876820164423878898896845632986894001936584904596998512335854888050894606369996839154969152497462892202833916731929483608002964722458148513092573303888749418565729567244657077141792796739847042219446652951544905096946544064258653671028375848218437203195610245743005519143265549232893135562941837774509998084354356345097253793425418866542197867360686346086950610498119267876669768716102910047429085230087780386025079624521224151525480576252107409872283705946736584157963436744415235391044615459877152345719717616609171555070772253167985984656878924480874199001272327618612496958593978333209701760031993688222060924284348176647488315237206741584783040274737945407179989851671434199896658881355423066195344386007145942441159601458508190535407701892306898460105119353625480051035870525196524837963736593942232857103935325920757033964395045010998015122017633465082373410901082982332237057401071181085903417884394437970117457281726721235491798446672608611175238623831935779935446311585889832570885368983377563779373975139674758895846967288336919218509579293014355818979077185799149825855513053263180098556880075438419211102244046641913815079373672030687307285489858473358886306848004907403167755562087210279326861057893263785265704869590055067468988344357884331396021964994673308410430232245923718845259344426647843599348543797331392611687034739257355600300324303111941730483929246441139840223670523439201814008993837663251551254887526745407805707659969758323690172916102716662733527738773796863047414305810635081747323265746272322207004320649248870635604854017638869361500791318034140916835542745669489783852577155991216951849205531237788852387500191463148935740047975664764196124911087417748049724183492659688614227394074236694934438972891065237770529871782560672185013787715186600972641124814237272821349555728455889862585529556401479715302425265438699020352323969115684690705379258562786442035945825811103662740529661692746304359383183903373896730691303203042589966344202536695240926849482168610137557091686700538145417329445509046457146142321662599367968776881182940107184805740177272770054297819132836598379576605864657922824195325180651565394011065220905337534724566053595367397804111210698217771443284222813223164267256845248661237786331740530405181323981746325138461542351358934918929087887197277206424559017497498123743983881539806308143124636415671164300960075122266343852955678994197334330171680607893412633450071171261026511035322284265913896883778319641095654351314856672904772581542951115218581325524024721049952464205575471994576285919751637658034576648667120583982781081795848332855745974579959764952584144511851850173512396402343519053972836891324416491886745465294894160004201356742805260660639184778568999650361105855067850237282861771422294853794690526150271657023974805608215563094930331677575735326886779471457007823402427835003707815828139548153398665610784830263362037560064158150124236201084675470371694239227389122091596802329572873944984781272377601500861785937384339717796992265538439519909770673404638647979559780757831540167542848992937638881475117963838741929357752209201930875358966051123906374022895171592856140030790344978631814701471417640890372298132466670811267635679825509069243610394271657018210000402884833963419593780325528442803707464813378367525203057270220852245422102346759792710884017528882175922090340700391785144090058906111260241153130449543683207925929733804943488192605772587344025563522573468601624461310963524959243570214668382079142872884501087414882189222657742494933321246531642390753159427428839447310878842591491497947686888188168883078092301697165080997091004434595500459870155267038563033877611621748676723705693310913528369824995114944420675373087733315837376833627326312043644931040338003158633171313248386383084947488347380051368626560659454119162395900687597659972058509274478247921222474739555046020336803766196407727995537719733686464183737552853862825451831030092980820759230702311388895344333626889465485684512246833149850169642593600751277590224391643773858702546238283477677132247413370560118379612929825572966944303363381075425891228973530787234089469115771163688605305158116927870082552151444372458634085037370286365766910907344943089294765204096993754811177934237592399217990945181097883532005691807970141726715289169866976260702083072300155982842781569907678545656143157386309884941806048557244150059003244666992578330807339344194033422210797240177185265152984376984755432094062285508098555303124065120126132858797937083163597700960410369694419419521696109384494687346683262594256949197683501333802868548377136260059050194448855244187327587346254325577686036556163618308284715162553065944041597946662866502789652125694101656971716169090839804537067674855688005787507688015676881960316009075211629087652019512590132041260951277183703353067734350129646204029599740773451383250225536639637126982154536315069245172942476673525474110902072067846743325909984631854106765058506747703172579645233024079966696282273981058557506918218501722792227928657892922680676051485797322745697710061821751593565219271602561230724931543455189081354590261822707447186346534609747179910577961275308584545578966520258622001861478379237291995841893069458338242826343664444782032898798127120953670144437612671069766312557354835926154138540580374878001158245363322856049783535587356668912153182421427618356258314482440004711363387024022151868846809596162019758061198025247949997514764850001339699435336178468417467775167612833737129202946251436473325743422468370716023093848750982662729524183677993897719753476025329484830218305364043471425400783865398585436922679857910043607635023137857062127818554826784888540566184856336396887682753563966494460038489206362196410493840729021428062332443050182820490242637176482411441150541009693444661898097053628628171613446042760301189949619410059991397777796838907487073320340199510944772836471365877515586381301727067995413756195129173844152659824417913072461910315798744064925658412257167182313323519565243366806171594840747926095498984388202920912979487176807143918075357356082067267859452130748680618571705003799281016066020150843520503149718800803119337986131659530111823961332765189451710691206663792790537585836107153810913405037379282723523502241065544475309126088495783462130248434027407532283191859586733546703505174134326078451777836974749371286332718785173908721339086315536922553571658825908947416456695129039870715618693490545717103676998064990614517712787111820496097978416251440111759344176795203711929569427575847908667600659072657724447157024519764562059286264216249090148288278025954890339215900973920426328866751223424174767144573893215010442458184299975150236330515995214183143653218211848842914205688313621641254278678991723807178048021388061625215383694830174513059866309159806101572928030281328191709459431972397193507050823821086498551933083030277655071813590596233547902759348274432278290542251375506601647888905596633381538247902920074221649720858631815471296296892616791399117129776986201443785710385554851010992949802902541340894464335839469033010520064777367072939343028942811049996226624653054075469599049284970109936511232009577187168889840927169520426287141465870411174444555634630627485507784298577835868645588213277261214819473187138074380154843077011645514957308514807631789961577189114934645918517564568315874797107623616388230627739849318773563624866498643360929475684994913883197253328408723258433532799539638721840204053244290674904244537220150139200401244704192165975985910155368729344862650761284462379513237314411725545936513075643990091730437264335572154953618132005367777240447396653607192181533596564254362724552897580890092226881849258898978113455808566626331220910143137922318064012196237674671852960254273303808529896322129873027171442361546130323188060000141920404346924280803286869638405143584374605974759926354540819155791360372800791568581680262425296635026904122886510473122014096954089585107198301940903494036183606677420662634210218358675253928896478843730486188820103286608433486539127062548469950385466329112988936646124497217457288023911453000372902655913202837415655039005061652679211189460533778358143011916798702013340744431517787194492849557237784459258539531705423800544703442086907241659154189299313479898374458817059728405800977241217324327044755596523692040329053293011134782325061562984037643235914618751782730777210339349024118546262923722471492668436234987877731068530925460965807335060289213389541807291132558938756942791892384053796463399673700461271196401980483263330384879983645185725498752263226761913093455528946019488239860885798710999796262772368124582333652948128623390146856931574355252608409531008466766286189080615774499859171261231964349526184077205854801334460319297623299536239358789725471765215353197017622535651666989083469456999079851694140702837022434914235841774737720982056454979439321171999758681202626062667079953831591724556783578501305463778076938575647920496246123046872778470525724939610896848383689469738788081149265068358549342661135942459967575023848530217335746679110274568854271148930299490753253768678736564510029837082193540139167596832938880939003639739728551399356539917508501386760778422385262038674940027057948676540740289563469428249555478419460172993058013752737408399829271521789778196886951736746367001550407541475689960087523331697993931402945996113416873905504068287666078124075691292600156865911093086645128858234959419145813463785710309956845293716666846063079742051658790530992016002966050314061691914150268899336027891886994391747126014729215409712229170401494639802142128663410101966181339216619541838310432267024960172557076322723941762426174610130595370497842401987910371616810257737153116920008785369328622993595139032746603288229305818148804368817352807138500611493491672436045710344803135406642465052604544007376389659248645760255802313865112266391529231272728650314052599523539081849945952876502871553130976884687456642183877566035479642012361561391325837227154730143986128255085588087423757029355598875242005483309357834916255787428405760729519089968985556023311007233828754007935006371982217459590236671647378028602288663329573434839762899437700385575159664486992611131885854955792243176936805438158662664134412655210434216891223553120128196404357646723494095170396019457333978400316557627328192338643317156542139634777788877069431754238061157844727218378907118586521049642072494121439530635640651784116582250865744476852272130561885662573571605383616088458736540029491971508429597435326314179371519234803563267168082693278260815681109490306140545496605361724472980912967932996298702067339726504446260132094149527685926765870176384832330436494582025907949460873918090415914201148239792038088397448213144968971817962514779628649043277576838481628084469903866436243468425006875205169131869917532658156896570971596202266259408250876253061319502262462086083217055953013798329014851211679926887423550054535776440143905801574183914274603022473422310627140719359949884515566859521203061484753316779546398214221660651316895412105672057451239316069833842464528063378386780665722041718636918615651862687309891128003450070481551206966909518630546118673975745468056579482145289928688791271801268789137259281179293191119656364314659399197665354774647764928783284699773286382733449141286999984103738339431357011221875701843412029753641065842557705502328433163698253387888250394652873367872528924826501990375238197054481761800341104311124986880078531186211371654154215208019551366114988913430366071817760180502732621266987511383340289676161476063448851809594876708005476490530117233443792708011767162650301436499716109625231181170338220710450167543390963690221791761290241602143103876515754220339001012594306389052749785286071207441756288786509044362567811441059205386756301882366894165192722493195385939190590971750876348540448309432806434130954035284207069893251389140380254644969287483104193427726591465668751350391799686456244070224514813907776571401659135577496788401591292462529364931124716953411492178167662430008573331295199526494343880887774138501019287143812827106684856528141261201928394708720908832545321537766643703499272646710917839615877528118058437027066588363615799447886772641030950133190112819423531642141347673167165356142806156025072597372968137661079244399219084486607883020632940107529514404823950858168698704335246304972019909110288005760002941527374257050477728452008071098638068059860555972181698178374197550497551770507015578708768292624922360032919213702500794995110915083029913698088757145023087330765685311828722426031617066691468692512666313839110985387438966659100577830015819083826434722374041065842850411078411083010954851664208565945335625718452063855969277225200872990694791726900287062290367808299531435150419741296533766406820722616792166790666633997530868642248485742548560589286925801190790506339782261350898534400429535638527035097854463539940384661394579965622310558085894496891892506094482666029790097932295808124789684831253622313672078908038689031991022861041669471774707600189018333353798665221522215407433174416170818317763965977017868742628366348855232277463103548539312635707849219919457728001759870916173484542724896952302783960107154736186750638173445956479171797700346870028241448964241085713554846560081397863692581770755017465744686854714865807811120431044056362419108873139216120874609789057557696105837339988506216780903734586158198413658892826227055634504863521085172253261994247389547087576471156369498301970815041256575554828897735774210837427136333711725962852497269989290646713618920642005994505038375144491713859870387847622687381608107305199094925924168894000368109976743364159435397158515102628234578870114347345446242462520087755648427510351940425722003107619329233230912170494829484519703178582874711931958956057712608585858327512603025188292291553040773787708764500528365471711482376513841374791953209782155466573398764131651721419495370924558222698193817516844003945443614787273540249475827302160004490917820439076029394193798509880365237348135563836542913500937070020297354511051791844922417591828194876440273324731825541577620519090765970443922081542769491006405029731397565956471858644670947773399133361761796351229535998419745504877616395020054982918777092512696515805066455724863722973133881330006946360130003572071281201736503229910531152299659298479493803414441460625057319256659740634018173520608892162429444365604094725265405042424285633513567992763989929644114469241021940644926263710996337692216473067356371848536188989856185281262060546410452693929525695017556843593410441807733315532603711267144236611374304815779617149606595555595217470870394269075541630232636316462745241077134308221680854913722083854539821623728288256033660687799849661274821811263782973037137109631168852963594333041839771347521684536778879746335569407402517371405388219796171187428570895102969646132487545360224482842920748192339255957607242312906583217657834758296504124151398983161327982453052038625853925952654957093620923290937018665140684593732476010530346432623001351066264123694941102066640975674169090193944447573591428954245612735963387285669603982307674384996914845883827389156852633566993699969858613878145619229909552508626173305910370865487809121440781179116375338290942950627360171159795913517039381698305252319629717388330913106146454810369184974967965222249372454075496019994987741655873101113289792015449973962368281630243796620442421531867401589611970484717862151563948382417343713512786781837984850486679089277378061575235207290896833633869955680806572053823152725387118596507257192454869067899926450491595583410800335330514722319989384571836288848184373511404617390415351771852362065728261092674663895522856638091961248308731936002658173129941813506304624591138172517721290252572610477360298682911351450942211457960879450379410920334429544359588064087255284332863912486250557866322735508866111616983587822425999671778461284763590019508057110923481485038992235672293720602704181776342914176953021326809310935026865780412313077993465518168562518866862089975136459112925176587971978595946528412836813033177163999235591245087410971102847820150987484371933158088171046286466039999750169541970264963376647072845836712285522369443210986082105455227465253330702713632442275058088137759572107942196101296105634237244811248804721941455027413470199501156873593186271865940415881567855474871307508705701386536904143888721264533567435977733249038622016896875175940154678992197785465099992194638002422124300660852084376683442725684863777738742935222281822596379416372217435772829750281032303833159192084947186278551901073255937669820291960111335073140997619070297647710097564138900974451502849254347999410788531614425295496300802709950000258546706207906903737733659662054881456574312467372852838067753111518326739680401277475383188061476742468140846744152050037161113249797510316297728324321457779472672651315655712065241738518473745012802177930660184015797062156722687824178711736297701633291635193085809377376164858910320407244632640227600473748886251544262272918153341818109125109138059989306003514361849311033853374867760711417717777550460912069302733486053885474717314825102672772392997393647427769718339014675135871223529726700627724177989870195997610660243494168773107081120542148932017231158789954746314439488694893332981905200921120155917705793951951250420963204743171190468046530965190725637955508726374268582640627732038523120735131415056543253458614166260388468720451413108632698563975803046262116214045239517466960039101068293316413139919464113319320466337495678800278313186501347519569406162455360756356512635002209970841754716915934393394768900581556710818760952654575123003264193454831229287651009642130595729362003563361923402647264129187595800043734641381296543423899796859103294388431036194489969236185824572516272502856920762265804532373996633050785053898352123662705681469431826600191396216830918181907166813959641390245913103948764715590801274457268942384523438858745586017829354250538917220591269317715883770155504830143104495866235694440129809576217498386902425814990955073278797287908302407895106605752876188396306524672807031722611027083604666640206639612197398290651106580934248368679826417336177045791858279308458538510534378177122142020236945701744030237418008319134058185825220223947242850171437832254011022992401293160512121643069665941961081857742530604456705363337500969970447040068338548605716106818293516080585508087812227191705941678693842077466220260709058013694206490957084967682248792596005207422985165839525325062386917693398763786709159926942943459494115166052237206416118022373359875846608237074282936771817019603616134002363363762172784869146453328800473153585862808071976667318374821669823348989307086478228414475221139645673052976067684113931489853447683587177340630115463277981241669588392965345718445583547207087150358249885501662460832101473733869389628999352142610631279206453792608039595256117304629740504293664699271727485229344464964499053896525404482483074175489836176996887457582129822916762054819921573217819132580672558908699861243514458124989067952592615066894021153027566799358187261149860347885068015594352030107897397383338479420259621655496950144630644626101655152872738358567606667332436199242023876959900073418715615016845681298150473199645536322233082142309479823338519835933764898668903986747891787072149185814031707741808656416677143321349768695377146267746668202539583266145254862801460754273005063683271748189781523553856550999109073473187281536894316293158817069607251858105375302110494929380492994733360535688439609205485310012356504787313377070023487360100527205821622906373480768224586832670317285309315906341997433550931997213333967352898875693341960825503895517084882119774203376718765484079960943903299798850351041236092147487011000139638260252868500847414675248906337888555886018015673752955710895010109445371566284087473700803071999321232271520110093411144033572871012153723274469267187539690006631995267707283503092352672813416501511253538491975970144014495895308769509191313848504539130726106141331540917001388859503782445805037837056284480232698134775246193727822624103170770845946110445319041457012965911980311459876020435610845056577156944855987430688584497792066994501485857868330153720946101892420443630102708316225507583162460431044875789754803791459577853637937748735101007954364574753379467736253758436054477559631601133093306742795262421038032222435154229663623568974473717278778214852763487902531516098515383921219148035753939378077961542971398585273912186284651751323203824258833693025721213045678357125679840502948228821023649466860674832188091906869838641623020122205931424677503868085848612727500007911740190657312201226381850790676303180408131563137413427004267689352537646030970327339652461245376105335968841568880644867402851506237712906689419269108181921952019760740515449863624207351366161701131572604601524123138907704367762736163383140705063960262100616396985773567203758143603497331714731831010425812640834159539271468664481914825638895076322393251796445676051800332188311039002037970592409961074548971911694226788795989365238548103665330015276944159713247786027810010049941969862552417906691857437551672873938055979589576918954680006109041144297377312511927718848754508965608371511185358307252208838259470726936413215928989426668799117104816637995792134959764721300400917606005216589830366598096687567690770751821686371500892719689905050498783113856736503505840912616072568035269328546524729192542435274324120237996579712531898241393402069516816847999302580972614604108592187850667521071789598835979157370316362162576244316199604681389283706176302062564005911685346781712237375836646051387945890041035449175569942933913789304180725407778125522339545784096592807813900863798620749530913017634552929374244029648803003389032326884112376152138406946024433785700734922219275240942378682756087994776242995774664874062249320178502369805012958656771661146783209802189636014086257133683258879911387239008790048211484198812947384725582855867965654781319586317740771395231720104795781283235510749480032060241195864581503857342754764587102277558057944991504904497920202719429935480965968820590869872345919060968636083464427473156701655723339588167200597290495239528694167443022320076764235471964563371011449904368146788606751432269052047486091945058087184871778776683746762214547915372667099404333382422666996665488562039838555193336144187389700470611074553482398940549434262238879628451741714244605807024603285970064513160249027697673604022485956714817975969681950680611140347282873425884904066011419172731363788875817399695264552252943590962946512001981851411806320939284134919027839063393466504764765147254350180485493125141152458662651435741642245732418158376091371894305557841448498226878951466661056648863780946349608455091221315590752756346577586718804390263016815059614064560037045738547066085519332938786309028573874998176880619743937132814833696686189393397927830144580457675919579355760106883096657322158723408759154520826110831252582526120080832643670865702529143534119877762136333237624882950235171030890874517548054829991858039482367548325762584459161359347774771840383281095614829656119093844021811111242760812757013835379618782484443502154459252117555140058930204134157774513763146282754608718834510313711932700496627769544006864164086450603405683311291243587734626647735704303260793320622865947753946289174612888222772501829998712357936057300954315571358161576388698444324218022591795650600083249260976978544054938993387016910851984225523906808160551276741697578833567250607935509146257726478577045874077974142824658152253501597657313315498242547020640991728313142988849725157030359064421541971413534176952358516477053188416032136118208297670479961187535840421571247920553934037556165610751426333700318879911262781329725206212441112144514187822410971483813884944785647104763715114463836017836706898347399713442437350934017879959220635135215807365505601353533899057228277137565662496161743366451618459625078061283509037557943036233985801429777900049583988501013696806160237590440798312412031737128329090740881502227921804407048606713124596606729005060274630152287168960684350261556979769540663744644112341700262549692159073324594845230750463353130509742316256742618021391511301148408952430756989568885070103872088700971476587762643200614898901768833285463374401016037341110630918624889322792078765970031458863982332072919981967501837028209374648400751959859603226461580076007796848989207054393050810196124743360464780195440274933766050833525962852689350406667897700712037606362246840089612146171596461978040844453713419596897702944101132229442042562040700504091747043836581890610078489257827832906029354524803439935486205435661828492892982464694579665007750881092292063623675713787245527417306355358580242936091654419181998614956571273498663816064496223784551249183134492973629447707002655961210943946410215961093522725951311172632791167716750861568060760353688075514516779452964651003544553545969029409110191061000091565363860485216606554626537762489704740092601217897452813382870447715251353188391815350069097720998182924481082771470112766855217450109118233964497237675605067395822305316025193418821241627752809839645778152993478345165190708260011975779650441943998876390555652259532086453923795239479860498340782337091368663811962702309463879144709445832646522423335601554851978873532618318632763435940430939669620625316417567814682441228005595832787915343513068710027004171825213770488155175139755752504611581291976871912125292887241415005357890977952166630029428047322357577362420852185814904025310824365029917332363314566448647160840166568231586322870101391182880081626217915327669341618164908200532575817139572446924958109507270422984758634053008604027671961917627781613335513970537534789524373926448895041350791773244232791507876619136584836850650440222938449020590326775570265291826967280669645873361431771117755609926135285071352587587236061412573334509938177259126712211956313670353129343423676449610846970626870598584402023914038028077101604005987411020036260169248586757151092906751758573271413608723904324046848947980327181338456312707500738151237961123325792969285727206403994094636151129557833702034378584945259546956598560114677976164307232251195681450107125020962901801522264570626016946959726207290244284959519535872556443545445813232139569366201584142814462380577502661268619035110193131940080805505848398484121080561374760096176442175020117630691697938965542793893690597909631628984946502642642280627311260106062625164609286481099481832443075840627428401612505665409533653795120856611669070179285507268233864652668186843924090264482366718273585320270461673029429909803348457171004764383238957166498757486964030372296178180960248037429366308020023539394727804597542504352376141701957192476677707070247744315104733297821238842177690970266155688240538750174583831003851751961864653718027712263235611129470749222610043524321525911080476485104885659303084477054927483030823870768806976640057969322601097150122353961601162246819948080274390525260782459070247153563937512778177386565942097917126854869468898826247590819272997773246179264511368607423042436322966090872408289463576757360862617944887940901941868578979025688250038962737188498678085982392158058711749543667632240147044338867676376930715088518501844371440576845599692504618083458215923906824274508507300881839027432339824875481778644441751838979917223438241936648308026046677777368944186927107772491322792918109140555238411690887336080685130963763726447497944108580719909778844703678761847122285766408981170135735269425959119349738682959201897337263443134989818767846275435236175438759414484640676299665571414530737290454716523664065451175868540038877343000895295739928238892132522898842599357277466092654745186316171103539271258871719503775582946372971607334935724026646716513358586409613115201590861587073347231132297338942081229463053394942190608722469794027007953624846616544672024356857305097621191761569856843484244599853957761387750885449080852100505840280476356886514975630385288400051206564042157335879456525345966910078759216450704597586580389711519353399154813426720431121356214094754278037360374511739601794159089419095672141419163760194589406324796735689616404546887722424916708475210234922880201072272363237142117751208296439776240576830386663179957523302944437524932531464206714540750469860743309702043195687417514093691147444855940950929704418851978252958080761535655266598410740196727007618041301269994128740200819392578017013240734073656548811123022721971573412396542072987081767920563407806722956023967577991002703114780610479903935685734481231001131548641341030790012275398077862839627657304408459123578984350195823405474090353980853023755084155076544130520862085252215702601519573079891372665583408210300741837745778159421818993623239345693255205723310335740168719052526203852435915934600626666434940750931897667904379630909390161406289386574489044516606422423035385260227396830186434001310028217954312831956680101282151483708985145159025456837460814871222643161427379760543453264339988915895357289824439381525796474814745358312513464410033315189467381143329470996602136516207435305252997483713435596012423461548738357057651302585329640516841462286238848994414005794262958900398332540487829974136695963530685278918106553264342872729785169719539699194831981331661202988775413623823223199587874025095674321571041684076427080630750420770867100070287242191153147293395870777885233894837763337518709346014410028271397545294334530382173824354487567351746122709908094549462645356008793618939037648582707714533583869368367474453382794446653896736207613599501736562768094646528878802071553209485232432699923144449665937146917430577982554911872021556910682772377603643990874122182225567640685571860975286581741850580115673666911081192368667805226864401467405786372222151471437121151049183708529900762357233525647526448939436279445418926908978153258816180740909250850428786651535990385558733247919982709279748806125318381060748551014443551178755842935621784173174078901943447181622214281611215514935407940266695184541499654465748276995847558791473724147162190981097536891393324658823498499877201058050818063162384546350352597589458076706597711733994952107657378980740274268510373056636814264577604031452940506169010617616774517624478733469328658195927517805935475576726985632390375861876851994776205332394491896896100385636074835494857707686924790863436634652096743034782586359886688974665864278461221793029975701967103199446235505868965846876987476409738386481269576202755154828133188141773190660385053080497889504621119201226192484364579167101701503193558109771798757735049248181463482196973668529515723960474937438492373648903985607178285268008147478824333550097543373076827479557803881760117953219995412027647619876981773927746833259385109530944708439430858768854058586382085714825964928932935307240123946655986476723369082009081954630676257974569190997542936516362404684517734886092329858073349367694573453995323339987480278452417526118827396573652773442917960289557480724811796575428679206212064683632357922687747165450855619111834345871548430151305566616026727311632423117305640738383522426399349218817277855706911746027707828619248035881059243041163803740437533100620834057092160937710882359461895638659625211085485857343809340200789702456002183172761919433721641023688005147250330153542779558992947940226555912085390798520692494667149763924264023891363663711637594058386237829350625448467352519111389319358353166142841991340920811253191422643628454448143223588103026600058934976064898744889685258883608760478777675620379879488404422553836565974270041300420810958110129194411985324903599952868654873262804624782206748504549237899072659099261223944124596788802946618463730965793272771737574283677380488567369540207739606102947707042522699003965036327630932619147408224914710109251693984918478578879927701877582205961965003012567318400583744193937123376984349449145914742789432784042784102530245344739038166946582372239456501423582726920726335630565552568376492391007200564876316594802382292826503578935751799345466356400550597357112228706996492450262630921096335735453328967011335503389403227987609945081219812215674550818044903615801949574179353659251517962787233190608581434556681015982024106914362327424853487257465177616107349420374833739418559123075541959139123452655663977727426972562026544701258362942121890096422332766649719050228854795078613612347267479657482032713158304395566558523677162277501512220099525081602406511153789237434252260306518018709719982487184076222186147772030690936849555742486246252188112244608781305452984029705706144151112186306105582214665438683753099565314217469394312295968425150943015535952043018682962302792739817552203489250362352088544535616377092743643891225483121376162807878555794731958321656221384971543373189012388434025682051564728692880296333287929333879279345126865239944185160817231263186193042675868383442708956679618149603843393327535600669090674444138619801638975464458106349992418102166223135456144248817616024849208690098362239299897494269346328115080547580325693544119207430804804910666258745024226653716499680809687323279227004206861427180533177209811297356927357480297624612170579009110914016552818843441756961403278328634974784245034601021270568338422118884490133573377828933187826266761592773859546079745089329742507491709545053055043670165431877318452621806615908395186246437779957731063086653723096693108130175763038338707514599673531304309841092492244800719623323726523607950158424641663769244704359354741721883853440728001577618950054206900068701169772432337875429543230806276541996372044942236090930281017956974734404757917237901450366169439394538217709941353802998738653407993526176175779296001989267230273726064736755157376446337618345002383023193143886651763278958263802683248319731473871095975535675335447623663116389834916187477419867578989883074630095996381208004221958790511034966506845644972348137139342348521193351632165674186619580159070400571177920224270170505301915874626753326864511813695486635247809847633277150036827324282059581408517306237896747595159947881255689858124614048498314313186944495956851269249859840757883573920206752031717033751202961146182091778405194286062414935606459355951970991630870894141166250041991162268119840340700833625290299048395736626055497151945091836250228468369630283120373497482349360421332622646304555100802082023157975008790272430602755570658765317305346559298916378068004733648862183409165320661539827602062391115620978025318970688381267488714321106209666310512988596345733564406921800329858961079319979979901957522371735004368944112679797470426566393391266308708171321177554289490170413603323955803727280794483381137943126032699379238877166427279258277675154335906826993518804428586120743164691917741053479622907140280282636029986683763765582091833094916168196976939847981221371107720835784261951421041946147533008786796270994570049939508611353857871893750214545944103768266966452420131831438313449940398158624100661519381685515302538693883526714572485009874552013427996918954499216166559366357880065909585398974134575486790349640904859581070490309965000875382110533873848768241563229430356064403628378420627187754091765197728800894754707048644917422528487825244132608699278905377452277836079735914107527060187702216915376475060501038871220783980736515404730982659275411832369531529457223003184576120419479643156626977060065342982637861504892842719275002091797669895544022754059157419263412351669192083573009664852798734865381878195458679257788966210730714318381382425639217180904171389176562065800101105248068468949812829904166372522581472896496308751594892767395235708002576361766471919878416930802110376702642703224703741945029016526975060196642817772764220011856908583361637175766913576791830603046494897878239341211315738705724753279319783555702152561557030540199804508729048059040281887113604593615099061692238568962748253071108868082533379421878163731797323148088212217825922926448477500274352287312745195665857916744664834658266553885160606272572059290904358191244130229504898863771074647527164659002848678989625203538179198888010351028475321066610272611495743002544804267000809244235830875659113057911713583704303223712058468155206478506477925826447794324128787484378459563327659083452305975200412437743350133797728654507970531183388908110823457585276099415260209294684702800046974293373830101861944811599752019871992089622048783400089861470644300455161152836055350068795380654268444843939755291066790721456362796383722828783201876445181079052754388766217250077968377807801245362499989268206391329721896872434680992340329516244771654727764280944629955129887801638755938339695655426524938196831785810551106224921484315951858710981279027901633832819024640194568825573596420818671018407889295091452524247533499967273585174057066030541260951959625773771918577183056184458088658247418944211650348816108339286551961270550181476321462974122838986347592029527954865599583787828092378978625118272519278703921299099706203069373266937171229775248742498234880383508851922653712730892547629383949554789852787357779255501362119231580360153712691136627611838888516867305757099576739132206725645057624011192939622143433675810941226809767546641580895443040020904925628825446234480233270840919858687020552889941293061024748508893050766119996684842991535570480917359576262010707148732562639368095168458014255274730571532756622339547464694722747024974149848389298346133259447300336418032611521543683596786710121885831182448136847604902431119933315465888145630203157153614196497696733869945423222168020211063877780899650483864191717549858488592509131633410784086909242153615408171716446537812046424665308750005463053851560077769615907157348466706519030223339819579745529437487305200203672870406276716250885752622700282138497381872845874827886185733503836691887025990791544080589240608573796419125443038452165195955373927623658999902562651909944292685912425466353200110675784830545311826794502256532699180921963191532593207286884138680662088710483938583074482115551322512451347683865978272746768754281231474170795490517045552066927928803672457711089712085642297068556832231756001110539268841038395168145738454327845257098714673820573235045728033890703670459142613304898416012860635551298278625584481676298537969255065307446109466289648700275851322703925433504665976481378974925576608637587740599386661009728845790501141782369614179108107897393826046871415793412486872508566224521518874921285876252088622862771011953408484943847084857783605238694668930514017969807453164564493558161387950195675087892389794868243451095392247692163590710526596362770065175992507271850762364281393634984468641406204233626998638782461287085383723290091787294345715892530622912953664192374985226191427865808316643151363765661621007915375290852009723539163338659164507870027624060810519941227378703171084395171526951604260692171980158976380169867118279068343790819460671700988247667842457988708551100377349619696360848015142634506422592829784411136133300723045742370875160928222167864351522339223451480833151231491792713900196762646492318341434969090421201992443209446736491993008184972691142605002101549067760969201078774124102417921567977641551219873814979636852363904506513629610885116634921183724736360919238709975044799272125912464259526600690581152460237397644023168330466302074857349641599382676733503437890463502867042987129240695573665741457342417828459134967071002454900820782127848077141038731307796172696900089104013188297023357344827936324179223150294287256023240675204145799513490646167340531759083200492463362523974994835363352388808557342753785379259632446864163273963788906611332574563466900768449669048061907292789353711417002956492195055466255093291032385055949821916609730980020618276397587863413424449433231957174790337345829133980355379158958315591100858257902419707130014680305836636523792622894875276291542196859515337907376198209304738403215536185319092018693685024885826987727875433845927744404313771969055990532139993262855983955733142839676325006339412634275305164100743536062487341214370711304577276263084858356633420780181287039656680451512968734158170702609775795539966458618986415345597864547197235984117905226493255263135858239404014386307309512035476218226937405141351081915130231425739699789224209497015000100690965286170659102554620921089424343836197069341880127908379530618913943331207563782132773850380955926460919612230491180884435685372710953385870115144759354501294587855790987588300181330445149879232881322890735865362020773646571331797787833248046602807991085378103371771929222938916927954558263395380757024268197642397997732646065459487844824322687900115096394760192773404989820625145490322470155608837324461971472921874178273590447441665381721451496343777707426786136725302094765567737138205267921614598741173118051171123642464374913016953845138202380311596793287186621618388122131676660104664752430867562058592078481250266026697430569801621604716236200978307933807901280606288306138946646848430897686106398998949150351189954302287987049653567533399264201926071067347528096929372109026828166827565050468917777884563368363083178253043306703538361094689978260729591018243115591469157669718238116688079365139839621777811312146121853639846885454307253203339776550167031336588202790102001535690239469227871631507371165666219745888868179594504724536686304068472163758696872021768422025969899099210259950203562899806550742814682124890818267892559221899467362019092594997023737192410213261477035790289314029058425800108461659577097796053090162798280678907909818335219083175041053724514786373919619857768747001140997398723726086682768715957777576651096627312267626018127551019218325479744651467952206730298660624321731616127913114647221633083673970540475639808383112968062715024523763178999074367442493277049237608044864168462054832944868124575630663854054116120306718065957001028238170788759479967182852925291907335277254520304569868658579883655912758468268032665835780646261278986914262505030041520521011961427245791149780627436762570589421815444187423019983113474679709179211637147080989113405824891279534435790589216134934791301168959859920275451696829941858261092804834788351956179421528146302225848230800772944489728494325950331504354172725199811243246978294062256563172479010134756914228157891628308226805882824076632209961253969930793613074390092280911290588689317364442977493340351891219101573623483186793144080474727258262930811465668241679961596761351666598794031929151011126838323389390060024797648019102845290476310772184815600796826588628152519629261984923988331760951853382802200698761973694658252160080216588310424919700259508879763153914543044930020200248773647881443233474904851644857460962852537201592675765224684477750744777525026433172365271057212676599665928698559395108541461010809281860639677485745228903631968765582936535880634284843145704210727575371583093728492115057633464936184050730532579050853936702963589999626384701059871222098873829137573626850331811228844894280445955343529622884874022217212097663919134766236568014715345482456493183630792088791917615345646288243321234623083134964546284725876327268540579100538464546582919667194767283202508382753186541511277114823042138600254182961487566922339344680866311667103086086848817589217538461316267987127733058655885079664644320355546416727592653093780711035257634774510829132458400639527264582416060187948256512020383722444477623687484097903083447258942696659237563785693501567319171210013710811676828648812174709347801789418381723442645625048325073851106670088941593739501047546772808478030028494653237198767241410867794428195159579339023232970666469717457776861230108984681590721493820902182312514286555004318916040762155396976248520185153388635597925041595400786594652822535559339429538447129431500060256741638386132810563606210582356244889280541392626438043954702369217377451514440798469214125394599916244864613253291811484632537104456712348627599235643696773083525153575245154578234679551841745311703077114337388985369259031663396373383482665996343613301339571917730255802103500855712933265431022794719564687276236483020721786023798032044543044200063876521358125734670974272109880064904865273800770470028261652165900103196470970227672242960404514634799416541816181611592809493989346361056810905288016235175158521520586918803056122828871315161554311619882171113336088704579744087042931973989560402085312404381915655557594198821175581923554823669425748240017209470086462774093975054470250951943425645882881922906039026087528283670406493009434749205068068781527079405089012139631444315620658350437089271563119926619781332692484074616153631448411027860703370765239653091053477139086420540941359189855667819273082413247589985202990280031961848861704637369333165242090083762091174063513313077753493598472280521539068094242730875178526946598751939758458860162736170407836520884599735642510111557408169383331753917004025278200218039510212699256721495318305484485447096413875334203930147383189551508396886575150398447142263619229275394934511529188171841042702775243717036010714909939684090080473077340178420353077283910733493779280236826695061662243944797206472935176489269676622130394040856886550637521263794472555260153293719461624741212766046016513253075290176128702478202721337804237264180474804843265628836323914273207546547158339051725584574556793456556224632194486162921984499436455925926844944956559782857971657822576955322916206150649508864211756420180235190931564098628715838440690542533803734402353529273118126242416167592953984817310319321756194815751875338368029923975041043035446393306961793178076210011282769209969557089627091329599910667666649616492092505021220021578239125401993495934908301155989346235602781000048221294312765253766555321177071266054283037812576552802543230438733136132605814228272040020692395536566138321515017880214361650489460070284047236774155620106528148939838017910884657312497261796296386896947027552984517262658397802664124656286198347470434210386705687155075514392807866830742085081685489927434636315488227748212022979084869623234037454050306504286568068626664211219665061765351549100879709898466544989535934185346422368790636872921129295678857730081279947619770153057320065078527777773436945749705970702971928381940865172567394334576206676031891218929360308848876815643351448741319458339039224207685304809895860032565827568569939606539551857159762953727979722543441942946731602865058347991260432490150654059976893476331653508058715872843874116270159389393256274444393779582574664166942019386567950752003639458952440715881248652105923308650199719997881884963958058842241819846185944389443989097526926585857535460581907250090571574098028235445807830943022996534036165925951749771367331280874617540882153819500530382926568543421153954586017028584001572044458964867051577425546203245994397954587361877685929115684702847624111323876941918360363763390419545505237167841986301512541951472364910611808536703687488468744246672075043197070123439818034342159930426904956121855497610949533547022662016121961929583133154290453438171136912820199846256160522617387338154917203630067520619236521326754815706309339937218520134315906698371020156148752315927598449463375761883686742285056826511478823760781595094077173926962492676169707770553062017523586252173400585846913897396595794167822856943854367888562539169962151800563442323425339322902158412558420856333618000561407265689818702739501265591411559691145074266194950613159843496388955981246817812124660449877427168575484674275280680686722813205801595555855507180963184774350221481622025935589436073678070357706040524827366810557989154909249307885908122633611331956219706344364530160854792008938094599066768412364754247304644289449993989309829401526414756104151894948120213098747865927042950449291026794350293788498642586588217640559659158863897206663748956979990593035757244907981466362545704651236542914319888092235263346366017557778316901596690703934270039374632797297545430166141372651061500939336971888043330221988958178734340215328933102681789306475351093728294774633028176841447666426408037665346131719683034309835299252727974490240879630408164335797403866161722997266698657031715061811873210964846003034033172972136861385039279657905342801740895808179119150322328528270251963268751319561195766484413506357522207348731507219471093254350028219735253796074141023785539496537309732474003564255308254157927990620066278505747774641016503058725364366046562116235447159134106621777257072682302652244885134326184267976235178731753254018960164541157258056631973453025728035645932886819949972403203382175647252478075054818721008841564170638626611674363849538122849793883926659379675615459442480466600981990655281613817379114421813427432062922490815469528001516700437857744033214693997794468237067466406757435684056466468163021260123913002341337773165575703452767956851297318882872228634535580838445832994320778242385735764523034159795359872947899322443209141933295657520872747950941234221065765416970787921115108636842500360049514463905110668956472146262315824925454194925235832088454125902784309616453493848803755029486939642324226739764235261964583262217868156153215895431154980989919820264640306645431840356894941302537102218771100138027619593997198428027185707194092401556915989514081899879528612010499685215764251755717569428616743858003560067668391884582486870457313070426405054452333992826896907194266352430611133896634845018847285526848876667139377012329244516494657018606808013761121869659699407700418626367751947659529251164415479308508447520786071333521642749282350449737735028058466992887830565592961056605178885727574877019059814754119362332475052156396191671922387739986363883147576265128185612068172926764148659342466193969041788564164795331242186514023181564882926368338422694398187218150923327149385611346018305754933778776359545873318509483858683292558885212148158859184638160978669696985032787604675671186277105648706459324368394687084764331323367437041013912220265514937922537353309615603741653085844441379053559388468213432374565308601713761160489250895049736101549599466530705793820239610634235463525441945652486387678545273505846223084880850640287027124436824698948054378599393675089211341028608060023257674148106408254485289868096638178672198114831463161468910426305936923010876312686880119973877486566117255318213384166450799210095716731018746451321751175919884668757133202505476636378313112153118838434985712483858129335704683571731136448023298433171445589484636727702317920944213129138051702516590045958277388838249664583133583407096048924869269892139715285403074772174751358332420634825085667416681202474068608737572402743724911345266332897503856879224226932821691847083501556506929997127014407562237229746450498080838668539367044976198464429704408561900061662530757935503099940621157853215459393492633375840656353131927962189626097479472863437824081470511351076871435882684306813265471616161856286438021961049573033704820949303462243654738540498021529097644118101260279993819929008833404796822567062515457618613490846860048359104643940780205110823742521133964478576741337073519266785226943256112618376932747197028848687128395531070621370339268741495646700219124682274599567619762001047113005212264789123468843372824328747024854082496688934335365299837828209235999437054869432978578336471466665447317937312029023544147870403284864232582728134883576931292336883868354681270576695782566399271509313551314443292569966073820593521429998854972051291577016197494742398415312850903097575420411048888693164898044486312123614684317834949449183359645892520929556233781602449553038839373316157968554397423622898038214182740828553531785341693133017007182122993838895382670085350080547958460830946631248617025990886293117115317111198222843546235860236809488661599582369179722595084031744267899657090054595390302417991566754471076797633556284691167983207769283700325978471004310965354815012280947978216101425165832106604035152263902577015123579284380308418591139499819673755400416932736791729129626490879489004679883155498296311005624215910934808978208070030159438583594175976561739780018265330773747984315266252420809328090335980847064142648266355928405695740334843590962410416631091511565539078973963607185300145913519253239616996864521909371182596343336829735376279282257230889641193189143468809267848013644299133011325544740575970551409554139425653722313303472207902774264783633809994307501750481667838411644083521254688943987481118340076413567890157447032213188365630436757238401392157825873252838401421532581316682169812886914836166130780872929050952619848442466534713066261658263483123177810717063053466100110747095489058263839437164494323226667890200976531565792738405444225892734813202499194121749448142438765561806157018600933722446956428233490105714108998533668173988005007488778549998711947180055071573665417750203511242927084954581530097757536876185780224031609166294044353535035486895287129597212016339192474702629006029818139634906520313555978915371967285170289183321856954743822935489370772151422021037152816815896856662828423005495330143024435842141061380399867341804595444410275406936688288668868239482327770536520142668058186288615484730807259664279784271217802212798410457189579376532889871360847778145546905945443028242425005135537096949332326903320192559329127362755056604137429724937322254139385337632458292637793470125084702965953069201070180768129250158617239241314003182774416259217127277529563930462463757011910927660148429313427649099707657539205047670674679555452832612418777327720208981936586369938053761624392017142989884905846134051544163803895429263645532320783139987748367363447163248180977104010257185083328804171497792197369893229950252271444084824782885204843659887130123219215294788170809837457793180417315473936496771013140266601451120248159016683835243733139216803914439972193730630615995693038513794885464691297505509690263502375792969524198025839009555276462821289714040781032829725266435954259099049233857059329626384075215854882736401911733562715434036124114328647420725453470881844389210681530635626565830225323643872568473040061156752311378463949298973563879248570722779779124580260558113703456715132156512885017535541787424854022662032547795839647438300115550117673832937864768906967261233003991756986254437912380253974996377654921396065565531340106687568468924675895644907548421475800426132475356366549075797209829850266342409101674244680652154210386165928149384351858888009125393554578304839692148963839114289602166512270482549180174863944094359066815909675608658243912539442403376466626166017655650583012177198421063618332698549560162734242355834907021245924708258708375150822966324866891831062021329857366206714173566103001332856601235841341007994555431295203168462157323817533695165601959595287853987028884695079823713944336716805491307073527060919447309406046046758064664210672522235635981494618169345319740891317053218371992840373888486002069917450159794168866995776410623812578359907685003487444557522146622985440240507557626006091199288517281349746946350968955098838819991422270542551025501566794109156033968729219898006439475134916780340543658500647183190280869792975833516320480434556499739898647264341955322676232555934332556838293089864523895849709470434071892686736581185311435425147946027742007109511572578670523897806132536929991560714608358228531338643450465303496136824535636809636063394872544155222177573549736669662167627368570402077337674203453878542013250570683647889143996969567127842965244055787368231770728717017863198442329879465266108721458501710892592199980576208957960221721566695349914602364726836116216787595718274269535732801290178073236260402393209380456620721066791026578251217262255241795240871753530236330038813926936434507431550993207461437721142408736975933589042636709736788551740231076311207246115377122000238602397232376890934637611025853358610830715545857631345497074478438076292353871970037979389907261604087665171245354245010851371852533238031917244863707829517181891286104485538629706631023032842862315796111964361928336433328185233071096459100065643821309278068649547669943155066318646691242930073021203967696363342016471570371612240890539593695298223074410976178252458095301022646237416349379037423601572701138238334892205409246673779646134981699596643250465734992598914784724233806752228726392275300896494673890629242746896232582172621415709690143980879922925790045775270228510822238876148123597210944532766732078083662888974560982741221890995686495272820669825766307776842760588078251995348994621419467497351647322360520514804793102030360250513274069472473773501331080864557306381931619766736340743669964456316640459594656000516517185948899663909712728434325623634577043877715911023525966743358764611705912267027129037354379075853741501250829313611004196690111233171315729664715791969676460289276233285625386094021428016634131603734604975509761650654927639850913866011674718717105157224746440375953862840889832852297397523503110283964620796009687848597801276811056354838454661716776564623529393987186131881053965855359635508662433256809544834343364847597735114073318393174514134607991925797594459027685140385906984432240200769196213783038070545953350394012264752989181029337598771094540855583726338544037352306562600674355731611897727553786822051404118702861195185975026746668750729590436914753216740715280165969076732581380160366787414160104414823501417868014495756463290507394192068735788945333737858644072875481101611825945585830076376679814788663781397150185957805304824557039060412495982692978333719850903037953518046046363768134095700080770703211349242756328905168431770062642349037682863287495743221792832555368671438256959823879456115083555573532366475299664354871136152231363116747002722368726143205014203494452684053212834752404582428770779824432734060622210680709273862120576132004536945458204811691220073321878165882756859779585465251644404114593264271500741302523900973348027778874945605661558815391177046554542676147260520788097310580708521044789820062457200921843588447183391321775740660909721622599186789153505068243478426930496523819928266948867344328900723852335619287831676944028738686339953728148507554204628129717626548261498797079465901652579056384839576293376248147687967693837269630062705143463844021524170570345188210958060815957531023935480108501972426898436130146471215029108731045693863841532139366227611967268582307657236402344522194138226998548075000140508819803854068573647804559741619321873707604116011787028902556101571005985312635770724977623432524178993158308294687578349959912981841164979863490936736193213993532623701062412442558273690455842801815130055960949885113872714612983470994255340757196269672931914149104652106057607030864937954317055349927935557648276820386824860847511102206485031398336276762140831625907614232711131059425590825720736838524338281878019661495983345316356321043223312160215744006344135552484402970043939109646465372283375363375520842117458079965557149565109304071746556306182974849519781155551493880910683743038732909467904992775208463386339227888846601395497032400514757985899272312836454475465795565061060715203853606021414324779948969225853642715351958684516406007325525781924649506257180390882992313019654667778962546831893581777300216850359600359714736635147758008569658460614447872172493112433022821975461553858510421864335001451778324257171707402968010247345500826648236453466876830833098762896524204210115300176982915213539394161443033507897953308477313028990128369300497904883631631837796585480973654960720072152719400504809567796248998094005681911746353173146657325266111248101700125134324879623595194281739297016373647747868739320870384977959109084309471756713250723078426226614162943877428116850719353038539061652099199268608035859851407909803972434387485992955598239556454573728932287576762144415600597729369982867101061535301005961950681885392165490472039808549506905591203447320605593223513758143586204476824141768638444228031387258236684541396803674430792639226428593936269294682071019027329243944243150501884648395766628403681036274946418988966134891353511218892672310669471225951896930723366078609906344225879205862069512643972795066735908723917174183589118594659820513238586300775030205644276072980885946744254247519382623357923203394707692770417008565051234804654137428888944211715557180403075880429218815348464752574561643338306492490417147718837298303103763764145641361988248898076959732193624945635796690667038198149223748418712193134418188428553989439710395601303933766920662246511782990206594649631082122081826533205491558767426237995363600043761809720850199733417409268865350406589452791938822553555425279753746054996860347704418855469800415039203640621667730229951988720365101751231918981205553759869825953168634179414479802767822157078130584190888661389735093015818524373396487330965759888313660455752502499868130607462246425867576505422512165024808443338804178662199317036553959443029187356303615680493579225439007690817512138460872667672681227213554029074775376860610215040351440276737211905495745430506222967076193621349829973214806649674491067505469579951217007785593593507397629342457471566244600536183062286852406839393032913736774397638172970548027041916705758065713509741941861579254314197574989394411637895376403415335407807989252634961062468481954100429271378322703912410965796953050866349980023631274973644731188679072659183323108627210334456640603780435450060133757191963604689000752731857412453407776769358589734704699152822698076886980596970984855153003386553899063813740252666611826153404725122865689982812302942156452733182176576910003381091488602949458330499514194905406675439113789130024229166547698891411762352279870280740488749267552859902548048245977842177277351943559537617660600259413920553691995549934461023148446621085660655714111734187220300190810685705285441504313469095100766939677083952248289610308327494966743566823324480212244423151557174247800672586412283000321210503374304696973513948487812512846174213649155778603637275896050554283226070777146728782154466939135559642806138823057384773602724408426068092583488760658486668653195993994754892128597048599540993666700095079019899405621206854050429331305364685356820308068440073676362175756163623331400449679023241723990696047662889398646469508295103454606653678642963815374302439552220436535056755633952465365116722416961377747092046732403477224608414028973655176492864714348551697754704503502074754200102842898252242275227631682816358805353830993722585546691020301306997068721558910542207458262976609702844066535599221514776103794727833405574976969895772198919601198783376841824147458840500960820153872397232586182636846470994395999416746604289440773345274953640441313132521696415814261257479490035470747655434792885636220296499008792482800473588061523287244444339643884576753590053108484201780635980772189072606468290961664482111293467947250754833706324010139189565826598551831818557632006841441413785439194056903820494823285941112973481835631749651779671420478690606983746462588758999279237668102883386910279378173765560081152240892006374638405580884035384168223801412445369004458098941071639102834164649274053108028218819767245747145724261108957498343902886162816983674648946447217955807239387750710005615972682151743319566594138443406664037902421093803463730090241680559416023294901303376900864162260944304265669486977680148470765264681741381442950585384015942995235668721325043678065190721858841733606369261550127496756838935398319225441030995285460849423632765492839294219398568214448149689036598143077432819187522747795915320061657379788173344213612755173588990253663363772611679723384950924506029535027596209037207577944423690646416807813807387794986769974860002064517930612752945892633741879341016451648189279174057718965315695697034306341329904362666736102166021873920896687663060461582446056147182975061724522949717102785254378647978362902049861893533216939315752973950918461352401500919310364857653940068856073525358670235283045385353729643808006771579200811376253987495810294018249799518398343532425094826487740844331031815579167059605255226895230711673203461985221496820602048204240137626256291571016196980112574008977618595868797342177068371846033515510591342366839025290710569674913014625588805428878747017667947651920392283292612645751567997226218485587751018323933303845337154058865106468270476692409290754847881909244855459762525455539441362580996999396803380622199495525785023219170176477572457649551771821663659855999303249140969322841472741962321901842234954758792976321261216956270473594139489239318628981669159093887167706461992609776356785867984006204235125925836293522621423382544108446961724377739593494043122357648635253348265274080726212254413100681760382891173561397640129701785426003928261195563502102605692134560217874242424038670641922004370653399244189672266880870231166655524403918146606046176789649649851345813229855607235868188449794549793424837514526204412359300255029826455377658491537528061981530026058852811404838569503821483111196684556777011696938889413808785711954430297995678301713128258246072694989965734553084231305770712685615028293055941297352272076654505303138525048643019114361535185250597338494009773120268297732016453423037842931229966476922703363815857465228050130380712372592988759040738218707690603920397642364121351463468348736174345204890034076318585429144200976319733147388238213937417273796700224295479373380906930179338242375592857015345155822541482898573001426562463592157568842367382953312785365687095820272145017000502542204534247895343819896263620756669861516356366761026133241818534069338375285963317789620627572056935152917698050083064495462349937722831180681310341744078591574114739706917493816100633403797152094886374791742535304427503969661915367123189395468614253023178496351594002276982391704171060490626747402308506752365038992289155460584326112811575121129499296530962012776568972427434345321351646901454183235311886861887906396154766294975468863139239843799668839715693610748078443457693780380338750689206572711244955075530788042993155951051401058599456929049736706837856700368642389294310485459353757129071075325870132267569979597748506320322265283040956663483467338889446089721386388401343119396644105324244420867291616955286660982542291817436036058425812775890233286503493338794205833792053623552972707045034410139346258377299332498445289000043540630640758481715538324771306390318729934909333518448831104211923501632156373207256732577685121794922297457054371198294361554862563716148285123433949442058751737301705179207427360662816684133781639943584197450387445018630773829231871029333647159660420495575372286191646610410933622209482440524825874899823941180135862587316479597777026611192517595080264806068252180083373254366837490953614613993081174469177806156025756033451185749700342353568465853489579470651734368405111497411129973623816478098158640504332547571235463586212296659769154812868104229771709012497118157510305554698094050544067487502370015275274055179689878205193282047114118699843235446793634228713937180913613333980531440561625792260393833963108723414765187421407566308247057116293427049608052545361161014711008950675236615533349306689811995732133800220361959338080177232336231471526726990885421737442204370400389520025789641710612855990903075118451629637517583625777466479477959880144580183231356360398190337576015362430017226073087778828743535502181756413333735757620379204296991250656434232275357081585911003169201094601018864573349461787914822825176831302580008804680584313579476799113266735226280185057155930743314259963637711242656730681248439883553061166808885413300079918181996769374267501615759448759246221235338579134769486114306388907699423114342907414053014615550052129811028213136419439309841174912295615420059095454305718616509134335140492643390425096752108920389622293163835289426683959599382943485596867029175847738073358764165235626331554405092274450636362792193255798092043307414765843239887432504326009402919076588209058232002072140791616758409484973592431238805142984216557211850787127541091023122372768448315102404554539782611487677987046880576589483483491440722175408532393396817598852101919972542511529016089265333010685983513648840624850732305930822578982854019092622827490066609392715074485764369139659968750582529645866703828177343681866675013330823941406891844532669610968677894988748934369833502964134713926373448502916817287249936406908060582888402325135958066850781352234536059654151996112130951241876842577678413048374052819066392768487818016987974750000605748417789451378053411760055684704638683849904526578871709286565870625386748465793294510036644691749836735165745075435297483143255012042987142921453411898387939648559870281626578288424282726559645326562854601693979183286934824631604439845191012389686954396179566761755081988302929688304605007663672414927991001484988890406003930478595355280130654234987904335118712818872279868196285789773860424904619299060981047440647252076837393997273754745539241964123084564857929488798507478773184835968097956817010700754489750239450016838291167920256491952186046241865775581720802854135189523111090698092795723025466475863330770228909071067338007851669016231369937314389580780588720829833135719445722127770873643236846869106263985530695887087777267925015828717624732212139243113725465663936542705318122744963770792986029780891045856511180861715210384898976690423253046286129688366610337156589186895851008074375031214314688265707182318303396436015430998274245027851059585501935422748053705015856252876593562314021305760869047810062758249305302935263294241508189577742484554105524738248529629455438374697024938340523374799006961469666833236661766755185814300879356182975719021179739441931279908178475977160855232925444950299724517823708238266874923580298645797206055853446133937249164469949004580263345347630903591079618565283121062247374393976462356856937090676643088247348948281896306838087530976203826043728317824988089538154108918019597413481373424945760531470723491672513413730857929712450688326875603495979867421604609743081520087283388403946833389603072673834471555210770520437329928534134232952414743223740411315447781491146293159626735241277353657961247282771659431729052349851647237669074949558160201739573250636502106647772626595425566347100230406714837462154338613484131113347527559963306462425870058379035659786459030387608588969300852803841595936602908389524738831627881519328368758239230082298050218574491409964626944799404846278009513945026318447963917176894445751117583393101159398122715724613539957181267984357503554853734139925603202140827523434832422551630745931418214283597035128821561039112482175266894220329023605239069442775992662245897306318567989559182748669274877964825017340038431206937396377360260145657865457544900431282684129181201245276493617605174011749471323637785344321686480447704266649859539782155723040321609056403239655083287259839588045208760088583133939815463331090140943685961277914287045247488307788402132291099808156682784820284956893846263592805852070701305179760634198455457383466886342390891162101634142282398634882361963589797658644724725296593884666453983984317447817366770249492839544724985537932721899336212392191363139995919734741432515715442192026629390424202146475425403482130466688915927031156100785733555977196780873856021597790009748450781478773359444850552232175124957694450106250098983638767417703972868850140277796384658911530615717504049329525713233744196200385589056951200922143703449977850445599155090979835531279538847156351591622293391708543238711763113062881321890999417572868274029513523415641295375702415827378520676015078723508090165986218339313922024000585015165858893595241440128373667706854672367531908947224878499374095032623025943672421340561957275159269081903757525807914272638022091653196259399942869725923803746411724326148283923867486704104691475782586895461601717398724443084948155621221897498785942968984790664807691558805797553715369023534053785718529119721956384471765072927142815782280545625069921924635102106446403176344927264466150933663235489776284613709763483167549525118327366828931542468239553848602730841907258574792295919524107932050731351606294390308938446419436895191122147582007085075340658757262543629861997311681016416513992749006066239403126793661112506804871937186643478212819690602140196860310917530866365677547736873326860021077774393074957637575271116289226869337069950595127596040490171412720058981715871453818185197984643618516207601065898932127258080704537553233155191699124584234928475319004463170592747261528711159591290195613756623969042023412867244007311770132606430141080351668419361517329937361896929993884813246050729298466662582508729864877568719852859637310287317302355510346851404731153776771168720927571534248802411675812215085287533908158177944032391859486676757911474048600474387412915546642509486720407720859583545369004170593910933480280193241900055742333904641069865558605365667428080717978827663870207336267318931902605250541442271634140527977303328119050302056220253030701306350510217655047416406702455516244708304443053523172709577219324603201587871258025826296588096033872355414359680783176663543469932979439683755259106263069963652978579398767655543850574647705044057523047180194221674063957908473383770265451687696119733328530042313407422109544286528378394346338698649156851005716924037697000560462564742204487267964436456379729441240367441393615129186769550640622841113705797474284767310884261780336940948172463043454576754429520750618326909861856070795082888079201617871116583260651173260625522651809843059571370990213302326498632168819449403180376297924748586749267779226045280347908827835421761907774400926124545067236295942011235073868766473558573011895762864959675487709316610016488170333020261984861858796145318758356583892790250154838297721450308744101239463905346372096883535759264258895078371739207742618513053483752330299167096345931490789518870520330343911741262430813631046529512144980884675102946965525049082408501574363858275226190647633194646494077950313356163640769176479191867466216361763108602928902726378433441722679033882405242660937818347810297094432519788392926480106435654523648680828168468972280753182453559455255342998106681936559406405693966716091074347317714341066128877709242237728784386980033107755151602981183101821406067055967218944927482117746787778738000370270466745136088079132056517684519834520641490864027126877002094997407804076365794716464138202922578986404906808866209113605127505178034871074254871996319295202580757529178727353729560354619623169357799184265304092628537717368146724905371282815621822059712139867191474065448001699163421172421384457122277481592855960175236896329206108742330877379465910612774311140394503036326491113907387384677813894844186063637755229788661563501317904623939674708234450975755889827041881166129767990543161691714533227754654436401143945090204385459235695302995912839313760278969151289979646627948056805609111511515554510861900199243949094023581555366681713810912570939668025815459170435298149809386446168389682634011968903335563192839120807222029249914649779618197414056535391723400760344725543564248375590213293699736126102917671109871412854676534793628423062862510325142454165579145249602174270143712731494916551843541230950181220479964842595540025499205350809203964009193655615718548216483761270218999671653469361752334895446381740053256797688969914574824958087005872317551987451751703558203095936904845492055045313400448559227617843344144801372862421507076197490244747193642591407234335211742432596699214306454708583722815459152388579770426183026866420243513579231254226362189110652021826018193942966882070587517292280398247200407466215497376213965696905313426543863643012553313562823769978291273186163200950245074459268371150965421961041459819069280311070862351523432642583406264583137050342311607741087934263062176714531490524262247091086691707788048692886749639400697315649313816604883712986851522055868077770947224909289320540867859137215150017176995157031157866700779231245874847089137347170745582350272384225261971246914861568584826744549966578463313994728085171071130502583333424036385564935020428924176356274772322692924404250768069734914628528490969384492605605271304784344555833911995992390190687682167868343662479542532859592702531107967837571717966435074307587338811607722455139137692610691588879394244154860852862770522644325166303076115025314731953292620642961169119962696019127665561881427770315657480712990769434627408912479165099742994053532894106043879833456237467168020478904848261898603202282349633620437265440715238111837980817005921827246965870119075398955275669329294867469474399141880055707731655427701937140546199508685916740023906685594530290460517117395171329076888208218513470145726509809876755766010297655524685504968858966434761659240404866960824399887027699837736941696122013305532584277627296805730868961777876978222843835433795638573597394674969556781536642739970408689742366038355646144074462690628254334218299208723857010308955322831214258510479703664885796954055036768546888477486645246188325413275426562644360416491663246248917526846794816226182898138293839059059128333776594854770475920791979016396734605818755952281175948176454023831549432985499538383290457714040742105739363203852585365206750516755823172475837933498725371482118273565570512159029622223388612860753533117106187122706104061297294415086898242622350824076569227383770899285989460767107037852155255148561267400645664308582043665754209825308736511822909347752301658001238430688901594910933222879636062009240161266404674592773949258908064057003531303204357207053882011518302185523932229597136515178784119618556943128184177915124915953926444073080664905661369121778742878612513496275407658119927317693442760365373898768605323493617089901218149533842599645006277351653713259717932523504843425092418872716480108929156498558254173142781338658930550889657132069371660089924861230897033291753703070023376426368676894389697307144087504988696253016051428896159122714408517386299748515711322337524958722517715290968273954083512138168042974886314935003649239680220633751084396482974229273706395862717534369402544385473469074444258566364409022329321887218847192308334549281069458508619559067070633141766287607681377268046525615959800319018751766274460758746974983371990961043514873136344329841541209198640875756195823220554995779413412555317086337516006912873676753183808628870604956924227302754070272885876123859337834334974169267994614726281750754901107041755185096875718758633791362532563151201485410720515741666522897640943953059799859654441837774761475260173593042024679649526207376850020340282941213882866999724455777235697239945827435987284263495758634956483329832099994012091936383515232336995055213502765437452318976721515755557297596323157852911844714311195974392471452108224025418340589286457264831411821428379205550804565211943120161268836280664150513943248676735447433766280453921159685205052602840656839442284993519294001633215573638651105354322058158595072239947601574846359886165978549633367016461356089287919663121233252302610138772372160101990055326889792863554476089220096881724706687532510278249227571820298155860382288976585275059643737597432074175615761142656396411078751117001064858106603193230947904661344368704095734188878413091617648475814979541517604304578612664720652158709124310048842064634795114237610418451237934715994002969438127605113704513859014681887125770329747266687220243362754007622511375142422560672931245942470356264443584441573832737570968716413785994519423158628703003699548738666941762911309816392374208416804682398474108266252110059537376555589295472163164783800955473934043691277070828426942412705937834792047849125344808848551958993941335919461607697589271822710809085597197643848437835316137114611527554815908767063381219684865168844519117609635458534295204567485469581166630416519926973947532577482434102169177301502161625598518358820101065230888128423735705215090537878371295512033131554952696476051715175472458424238764506776305655731415174558178510022834190520333505900456186774423354230385680426025457423094775372260908526597840908217353291079586440911557840373032701586030343191459321096489860061514841066543079322881281637197113251077548006001638054750823455239553043566223948900985621243715173954917468032759676977029613007919983439251775053252753713577793022849965454616319767392042451882317942775067159766132270127787702524256440068261171617031161254765607825461555903147224239556188352498735478479623454717040996912833170276180061641091878759732980598212726028578404360284836189895269688440196152876903430767372979991106910944107604073317160010569181473433126616101548887370654123416837543268635639951615494538818621300668448712073835252160622127117302609026043731896801866811633941992948659742362015038754418432576489722467954882866039367374962532803014722587672961090811774833483195253278169451283741312129376263420669127217522856560757583231198093212875499158615446237090026822439363262591942865559185645101783600649670158790313691120692107779273747200780083471388251141510500147676294682170798023812498592413030053640838167740338665430504359961021717844801500651259202437394079019864386738280897468182611954934305241644294479157345749359693125063132406811263488420677056946522466512560621887560523968548332222096114633369302577945532399527939170755911098674242549753246100502004897759359100071212945961617834937061481835117044988173240926340835884718464219871361907593537804647523453717803624411463011365688681693823164228301935099119025588679817506441197254548879579096239428446639606411296225557288929128506526756131235467894886500506721159239637871232016331424269394278795067046471166221476703059299674200572785903944576291422240757248074602790532883231284848192808408461363578412680884663552910040824519822198296560868210821200683498965036372998141203650945007440821447126220061714142768789031945188104918226848493971710364198677843145018119588278734023168513993885959968902795117442688021688314365723036894188082808158808809414195861722898616733083965761943810011320662544890664453339001403840204353051365542327659120345316035847694514613397574603075924900803457539683851356600485163953037371954195323629402109209252449859651016413780303649167752830085995193891784181233851261083635718924414230444440540989676945891816181451704837031327015868059865929205127384742594832935982011661903660165417837599301710865434275543413830266329853131939279732299050699420825431053146318324717358759566694869433116847992569564885017669090938069695867063119880098042775879574481181666716625919421524707969925415140600642245873606848280400582047951792473037838068467737025083403453387676017138719564099519611903213067089285274059939390037323166889932229306142554722514270848738099029631929576233486447150319300280053502949254116241191367643051836060221704613720439762390157442850688066573014682288090793152604546946478586859308308963278003227049466134568137475941500080561712639502039986850740346885030714650423845886476809859880719283317669981848198200190535660624330216714414694640562769410256807486540003345316270278741906771314644751002723142495813564915915252301137994389482558289609535720297514342103569882631859839403615833978922776436103497797075424567194708636433249606895173084781508908067147572626500463757837530323859039359572694356113886821690685975393624560498958238249152676573474947069924856100433003185404303558474097178794961242634702018360053353812911400489243169800575231540442125641280051815398433498069533516287906929742342817736694404011975737934435111389296739735172667019956301012857468042487696145236728274729412810080129862707333243316465890642834897361228727626889751827015690528455177004136756370746454629187574047064660471799255207781624805566305575798412414875890064344947941743188055940956207190099409068171331827380684143271015770306004122167383674746104109137663127045985534381895160327817142771270393028798077889842901083650418254972704030324343561284571409607625045302100178028267643588597018229417079552193366967507033298019700275773814614188097235144826856403476895551788664990180145563294837790813448842719377635238209664563829942546279373457887185986296236138022031231588204028550209177148696979645360265022100410363557502007307059349843444388005887847957491851412452822052812526248388563281393525047328995177091219844117989621720591326472191497491638614081416214871031062244338801135887412256289810896900772333086353718476594795409043098775936389148861746200074993083855180724469962003876861700655697436469150274618460988343024366379176141764871860677103424152199645537782240750215574559196614488151856318385143723145492569317782049347067921458554220867890266955567335256740704374477962994290166529520506934641521740993081355438119354683896921179887808250534827255348836983758433773973886097944685754449382325856469923553944333412934690157147135725620382668843251233563744366126377282215006733558498419058004406577306294767296948451861878795974996315311339906626936212463836681697816392110884574761458183493182150654125928531796495952978780437408105461696459608195587533811313063437864763913518642198639461078669028754184410617915615428024801685043096241778669155543006290538950358803612210372454504217342090643411878172063050060581771131297529497214186221510345552959510678127344059700606692619552860776244416469272839833251238149548680442494810932995339555131517198571075762024090590484339206645628041289296131780396990712840938768786641594201488861516046884158487621779404637638108453193405427335042040407628487832399911388844427354946695811600668287361519562318056877350404754424273826233201064191901606958588816751039046663974261476826480472780326864170197256758883451096835366572759108569562297850915516548831851681422544220384646223348854851386212905374316046099027734961489563140233569045695883656332240390448726070769417951552496884383872253724844679518159406033255442358143459299508181163499896114207249866073441948480094677478217324315181663172359264227039902126494821281793083720511165140407550623250596914489764375490084436780079248745394283217351058109801647565222865345255183481443124478572333031915901457130522847432568969822333517451481036683659266464639007550730192294931235032872940596132343889794821277733970284741902146237473243013856403143975121339320713100911797473842449958304368802801496125380907049225757619728590987750528609019004901077665671617104207258179347099427053270505894766675613909604380014530632651419520120152117940582317511365462117742914391607577059394324930970969079316500006808190458633585277506133535082674838679878729915875034138434518823291269823206301076658944298635680044538869231422330648962135650440704579885250371727646413724161484442291143887900725135667628694127253826248931132049829769378102873320698207898451444170038423158182866219910618828410886000117794386369170293733035559601977953975233406492804003348316836890300905945335392066030498939591877712302554436215720209099119582873687434252522733360777830551210337721959771398291768177076485082980967236429605522177415874444394814925114780950118357391716868253437285474520491833121562717782708460099194655514349930559388049896851554124676398839639832793649099872196739004817797799962219600376277762069076867876929016351632694122867644978649267908270890292548729956283376864806608554852006226762899100319136903437832965996935737568429851700688853300236211120732273130363970148605165869209850803307512850582419298099674804132903903553567507622750527988075513069562241503656938497401886540516749531126241952580267026762579679182392161456711398543557462044579758833298051481238301322233650733736381310852756098766797782789576696648715352383955828519675511763859024344752053117957867384916500766110532685956749167120955046119278368730086349613152340416382940291137020947530175864401699474456168735359474368298900857708883895921561563865650499991732579422614677401746385650362128361383848142959373335256699008226519187800206796985109342612527363636020432038976753857667999047261414564307564054714205862001531611095671092074674957065942120090444820351987864860275543933766870362389177336784198864866816089616799679438877855182793915315283146849051856686021814141006565120664682821787546558580099315921496057952876708046176640293267537298402422560246473287857232440553589701865316741455290933883096855083754813068091799802059811937610943688514099801833568431071508810969553150660763164337921321834473550037952376862778636118160405668941414143343298914304238254546517487509272441581031746600135092424292270354910498938910769840126827217302499894567327313135291055491183862907283717624874877398725935724371520348316798076198011664892832823711824810527184397251860510865793392362867749890989314773861960554435349588412215052756640554819297418686350228197200299375943054202832378365011064051091084228947170408469480251032472903884920744893262871877736132561115893382594462002715014057919537900337060823193051959380998866812930163730563946241501384411307422755658909165999166166399928829859463630374332783070088378706355243558403245237834962157556392291845181194331165430424979871166242199150250672423456737641902127420188303755654506093056794159090071331856880933764992848099019793822391163770753467796169379222107783467438189288437903862398884917977437800895831865780142081656100353696814587567011559449112330469761895316669393009703652061249575148725163345357686240427847980515986038753990239479021805925228757206943418967506525377805539234599439964951201729879101815552832279037088708943630009587267647756132728859580885359715100099460713004393693944937643381028215018075829477913646686999103967503233687884404591604694279482803108666670501676370819926664269243055505308265644691185409983128296453081607739731628396857190561987422249012597798231666417161957188175326991979594994135105904116849840906197723465978081785155492173407404623528518121656246662869344944461634954752754319746809427019194123019650913833702616421855173540094246566553494192016468627797029871958769995169650460239421833204721870560429948893866260080574693961791276285879934475022999900919574563922824765972346063667632589055281473821188512119742467814490261999507733054998355625342502780558405841993439537465710222280057232295830322890225033861373403366187432373768264912545779798307371349545399881577668380575640360549583469150560927072029910836403096994420512128164506944589210218800188028745917692462633300951387149979342549365619346239554818212885404904947496704783119153144133262718646458122246035808784149510235186548764239255166033344190835488223409912246243825024890308165773077968299450295542787917165022827599903226115559671844509005118503908389936615923233827035190573721744378599304948820280138865495898779519622793319453872336694842310352780670999921458834733527028777352732847665727679569812887928722597616018022580741663127767116596201859478829720251071914680445037504446992743905692873199051828975569273050809141494453260857314347659042295436620558791302773358160035633006716417905507691023071380314902791230911392878217870755726134637566842761123771839305943997471453180548716580810491314894210095852935445544716889673939260254493581194260367631102242978455840589670134158687031075878668329893689755991942127692829362162712103658025926841374844849848640700820583430715386149070071996013530901903209408963824971704004263378944172094173758801736922991070462451706403790120732908533502465440631449664966485076905819148759072875615909002343535538358828703156345413748683326734494455346020797885526629627091275682858050351449852027087478914279690031259747567823478076495478319200908876283479151929210781275733776055816953810729436015869515438787591626565821479823983430526090472347832820672847250607661141236315562786276490633635805137992514137371388995149659684085967624728546797468246464337616984242647925916763690812676993530905343894615000244816536496696291956487039016240364170993273674209568572841289354001828890775713781035157455707984093900965254353351913596547995939382429223549290063019528288684744175475649226852321214237239825033109371369222487378659842873734380859954802995470327860542438075448070439808903152147200170838914823099791996236881758414039905358730223543268849151211353464855672453370665313243785579204127530583499571131551911871125661269218351773856305797372093985978609096522113409951569872481700184851212980873780367577493372710585653327433545345445845059047374100114973725650758892618523253833732062221964165541332897469049674562861373681690587764728988158960300325478819005156241460435002377530945547009069772949547409110415442316875543964518405943127080933809941833050495402333059865725329223088229529050234214735266551006961380509717638301009639398755662803826374317132716650219682163013138743883936771772357276319936043026602904004256277643660133316472010826506733789583074364090727017227890663300391391015789035050124365947526344763583892531369502849259117512494191864453115324976871396972114860710587675920007449720587962721913530974998906825471131078467177665672266551374497291933668105587439191773198212747572907920825517790380475462100588653500948084028684851945893738912661613197955707795793344774732335907820875031593105093323832400247272304498897957510614141714039711272946381205545096393297811490026993771624077372440135471725697586626403390052550850851823183594699850311484857807481192442989687191688647736099155809530654956904502250856926724480172907317977637625370258034667222961854806870796757376909916602281319182840312567743808311802064883555170977797329041690469161184048667208456406605554270080917166222249271746538881289736169552063578295626311571044976446686864916766461534979478111300234076636430121742976186793003302977801227878291394596572989820281392224210746017143526218929224020607546607688567678404767276838470132735455608072224061884058959535221587006356978323620046602418630033306900701768563699518806531164480974210244013324550074689291052425394349708245436358281413029427881544047974130934013359485375219889516232087391935058271128490120595071088184821398431532709109348142428057435282495535810660774479833526856423793541028127917077916292742111512649657049891088557838044493866161120487052372652046790508025034939819555353476138419709093602018322735619367657440687779168094159492366444314842857632760946913893148865585441811243896925570314796160849942413488566694568883473089853526647678782298127806530100751069939026863902195389971967356847252189199474819740465899524143754361679980557523284469323739576092093334103789608852639129845878023137110092764879419706731442830712705215761706868097183363195851430216539067985506979755870309371875751822170824465179989471989363539939884233501628524944082894313420444753341423417625226493058525476086669637121169090726089837442049278751281477845881339258495963951118020128028094417897808404693694207649882240878327304679902735802222665293179613391724041729284469596328552590675698805281662853245076575755473774712154568538993703448260353052343976453311761714576966737812827155424208971204700501691071314407688046452451642951649575832584320313709439969273146057361314829110471426500543958622838188784908496184855028338869320511834672336912895216736641205034242022123111712446076319648762953850768052279631707465440327264277599225619844282558874001605289650856257405448123136232561524482060037257410498906809880200409310702741376267083429273166608039765726287338727495962579519331177899149539857731021105235393659386274593182590890125689530666619139606531119269510544417381692879731446391472576373850518333506302170758779839106865914616632121279086723344564475487309271322399622970307288293515250720961968352912870010785642280713226295759964567452437825939518856033619943971991383940559288009371632881394070748641386885406029409714238021206064950961702163330092844032426954207598164507974352258942570480516483937395961070986462531597434266536085979097599269470754732314903737856201651619301883034696861095886908738344597209631486766505030814838197880788156420680376234301267647477988802267730949613365039118547565194427825328209396980789002037136795825468736148024647619868931733953833459152246376563558523570279084129848927016365580246605108511031167093996665933706776786212668304254433124648171048192786342866390671373601218319367044563090139475612061289064684723924330126334577142994034432716429831596595388471455653241193245598356282358942652319670006385205862347459443347509069398436613359255705661552348513164165948740880625516500362919182676489232329255918805220166727432108174142124964057540368361000287249497981200142382540640207617825265527398086281083912366679820771238891420101443831400833959420713084105284736245311567784968471989956728290088952236626379858210374618590833616717237245042596493553407049436206595345819435954424683257966671957238442201038746586549690757861787881862361337841981290942590511641094757299880062847535260204912188963379555983317674589558208417513741987810917803552821410608547942837019356620250771149024094499165263516344725100635609758106808175760462946421662166412024273279210568529083939080000355048274810798877212930754670515049512529498447360226720645207774496699494833270516424570348364002979696292449628321420419668779923906713080988129312117321562701730316664677086828700551502377079783949638806841295720961000049853950990475728192340010191611388999305373854899903344645594060220229589502734432405580966627368821062597065473851797995900218347224399063804269395500999799237499710179008964055454292879499662828718195907164805390479906830566615062343176771630072776812303312771802500678792579611367399640729583908658731412495186976351999944858833720171447425059164872408224752315408241664524722796679959110721636014975238637205394922051191625935267590791732794154271472956836318247727695922493632334834679686464820506269840328139782933366723214469275785990693164445424683657591658506877073094510210524918401608396951722283494465548331474613720374800674007868336658994334947260386960211714266615082555193906505040399720699244437100684866256055562096079806652802371242282716314227663038016050535239519021747272265704527501399742451507398335760664275445403584856657995074240249561981753149894817028798029709494090640769565979304157848000237317732153138958118441223253312084484056616474056294509319537334750491626867333977473557003600526236143460040619984369668658254403605126362337565762954818089527040947715299730148702418732230344563567829405305874678169113035920468925253779859216931469445100505928847766047389408573130106141281431292164112883348072877613300122726802121334186936282165841270466300040787172984329577409275471975589708778840055596850422577351773762937873183209530486048209623222348176953313470594433574767399239863537662181949224910422521251520526096644978045073872492260790279801477025761969911106528376593653309122046019286644621183822008095586106865679142689317319148649800379393233445447069179945789723998349699349116239496904163379092339605368048871124979198110752103335571691486352354217296587512267162563039428410010513455276805558066944213904531106626426232024740731731658782540221361671233842691383089192669222246878681457152033356569955772628032964781593373942507314943308647297562756065335855410906162684795652694667365191825056031961490625631468047611223569195957217502301793075527943840636779334870612979362665917417865036417615550181090760234689964682722462452623427522417435022800343127818289786566385709614210941255655254612979604266142201698767122399764988647982458029335882274908208326629272225038809841287365359496140549985328823726682486667318031982163988486884415305210224880387999549822909946970496099353076533806912065246914291222591428610883870946097660931851482627042012093867918268103482082756449751801365716536759226044145446671792561678937581988946871782608042962408241611185919690788089317072158925304334026865417670109103259067152270186085894479343907097382299445028392584311869918859644537723655953362433390620728792063111862105461416219632402643274303174498411686587811224633469792589751972067117344531497970197807732810820639939276772265556111908406454317885443261536514256854118769424549278219510922679721630289415228109203849567017555518705285726879340240454826940066989559069814390607393764875728531305511828558718386545260091138894564890471417879349306154228994693839351138729043999910822978291094770773547310687186668499825102173301427741750175848225599411531460960234792790879167370618204519390816460442102077108037797624782310480461368598604730911867538212556784404418978732925040168720700989901182997501949427296335851037898988094903552503970310741393113955822595989347674857653956274726744355302896930226018202424037944222626491477391495069584337571810165483922290564680065777156444951658139829429522082843600643649718570202297837248409006194312266844966397946359014238110852130778723021055050652063929076200240343828768123722250273994115749239182238885450225540045903197779375349324599900553037573564482103062022521126167084503118757611598693386005698563453852008092109498169496303270671180985006954004544545400758932551583067082460479229179305643378788195077891969776740724506273399265262502460018531628026096940226200192365512290448383636034825130081808648912398407244870415860852720338723429989488755096141630787538821286268554240598136053080050310195189925341791225230789868721809375113680840718581810328266340818240890886877520858926160704877108167365408300122176575255294092333721943561949955118202170946108681744354209135611402279459938295420040293786184522153961210509539235563496440194904037465101604853825136492538124707738803093707547738533082244126224584349306062833907257412636353399869951492603512117824181076498644151796722254317105970759126509268576002426383372426083841935427865187976704759959822063950790614598910813713900790545471700681269161234860474877591656414104212287389422065024433939026840762876922324105760996686649483021012793264261176948879606096676143262295453761445902772183802234913851410571560526709555363796246756993531313380903159934335007055450213961462722190115354999088133558703929480121784477643757288765605805720546818462195976420290322001385935770773050352681817280981314334033404932796520648077174334358711397519135297920910907378451613934565059400340916954825240396187626782987647325019661826248514958856368054693553968528988909706100140067036557848646438918517782737488283956711631338832378982528507623528309826383111961909414586283317435309865321147917404878181431216810273765084181482307154243499813990700417492081050056802001740216392555781867365046281205835575982652236016260735602856910721840867240098753200875484279995403230278163315053450902509866484161811402475369153880634960269012323857294354348446922126229458157806439641125496323026933333461076177571294999220558199292169116967495023997579668510696794990710699954536461934863216935086610270781948668383494098701050511572737979116142760227118288871406063283871892125297431407282626997455466939262504969402156380445341365752315773581810960460705664019344783037778772324539729458762342799494206414386266147424051555956476118599440695858256494264861103780123799611481469691592315092961404545846121743446274656848014398622736153449685856961322266631665821406757897138642012293533557592591022699352872550306701285002632386065793104538245163762152886072218710036984041567710447780962824104880116909824813275855240305102037183322280424189891368449093211150571549431574854766313160880111221467317790787279735913880731725456224889354539933001743342473383240129848778752026623648733325746448406630732673118130780647910362140058431932940695927033716420901235020799373447968042751032140997592603580844488885436802460980953917057276825852280904264305283938863512348620141802138462913637329975474679787544615643094449314879459110829369804683015449267319363203525252870681519869156322812740000044285552131352989778115192141398110982141927694245076939848629876368716633909674873169405030801337967002908845259646454477953171138732241745470790688338642729146891238219300491304564156998250530720741142327729427827041783398996817030953827682754805388620611542141484417843061629168526510591118772722888624860496797466563439208503454578891704103637675310828077754248313579610424892606234932046701113580134657209342363503648515949714157427129882678088956553599123688714839903865599289410801831091582408134973526167390715550406782207217598395852118557041448764384678371036077632725073135826930394102321828894893193559398655235335632521411740815829333865035837601388313531557057608294993793601342345774949449925767770090113891506568897705847651576866644336104741125170565824836233157428394452290140456378143094994532050439388811959496280218484692015710842725272788097344556439923160359605870965648902147515252868553166395347912774138470257157802455715118048535654927989355571808537611453921639288395620518999291778945369303322769630550396346674712361341916655942571058212205034445628436302370323162380799971752177945512239012577338964122923795161252542963077255241183444813970867060603039589972326986961450684091834991588109808962820440938424272482140586119514046327744969472266957713914400453569134979848877178295290412879446756685942924458989804354611520917135874417420168163720566658312329337852644417785231385427047248836108528866242039478069262264357796173495060814651013323566520596899043460534419799457479993742345203515836291761569666008735892791169557222339600688586782391465481384839600738011495360445266149679853019203946752323388417774538207800526439599254557987932469309635887557765647087335084857313279281818190553362991472399392371189812476106812185140311857845179602023526353902711985872611115555545075078536307731671518633219633733178263740977376889300444182429448215454710179542699036374031950288457676419752610729949756123873931557457628888307697480407287224758893669469886018303657893632835948070061012240432445237040062259954866790869710766703426780720555932642152586040646159581804695396468044677776367948876735067668318329434962192949514759093370182470213365791050923550082408159565997257150006283101104311736472833438936710288940713373200925703880244901419789524026532468353644936117089000738459908048004299061236577452731573575568495803290586376987077430976306829915719447897326456091739567007239099125563488529223584864555157785720990159003709905529284393765796010765397041305201169858965855662894004942567280030947242245887630657709361574247024350707620814707178746511278467174372872357570886145219819403446332115517743547209768324729988006270276125355889011850644696386543031261333215782421895069672679273888739852084992892602176864276992685676457582266549012290439694404943387284522662677339138927904040636778973344834647163234518528381596348893438403482203506974217673157160799245764510017708345171829337095564348518857907480584203751950103264294492047487037814036180044896057676417732541505337558195285334158541393445592949905297131916723446446957777929198667242450124452770847289855462593561338338322227649456627891065766761381611479860363720379232918692604184820558619168058745658196492419583332964959038065765245586986540109329662300009767434782679445479650667537851015193954554074185387973177602898876977339555369832638158000931010217497346672117136247179545745676788911013707034965955430672069315866570467012792822426926761624424802074018252815716091548546365220759817469319017762910415940226003204872527920822781186603539593912805818184484854997531559477724446767429417919598628371097328249371213693849461425621355164518000033564816970487555996423036299106325881844374722504989518403808995290864177533235114232117451416510894963767847304356993682766995952121220954712613763007014873780367409805699488276225415920590752764423824918759093867976960219852881897297180759886599519202511019486196169121645458322622923573002752981744808142188003658373391752480273425998951571679559630718103434712202206044792665445432781230504454528488524814250141097261773013470384487529151174765957199098616824734002785400862471185193058131534607643573118737595439879942240997072019221558653490033938315562017913685308077157390951974945479028195660089962762515330209370216600679418156974116582244116532674269347692042858268546323099641576718000610745109051539509580285265416116311752012759141925084669453132697448968538932062227495367519599024350855443435656759608813019026642927870691280224343522314782356702710787589421904162939193443739640743562374921594778463025946698586507950565121016303470517893694087909465248255336570823513265290751944394929013397941962389045502793598766998121582486820703422299736432469362338372076071153803182038568964693313336368837753204961926725073309080137530233493472152733739701812932591824099941067103608105778748707669713074454885224064940534634357312248583901862679558012474880673975548400020699060484767468866377800074043983720975127510132620602162340495304786222146626683323050773559911430370764942388990720187913466649376681717081058650800089188672995151383702097244126088885936051388102218435119949451449392814503949690434388540578382453961641494707402245392848347952111267057980006849423831454730090646116340356018004134043533052304175174926407676886819355861141662713827335884457602578637620669233671829104960417246708467748484720850186238837928746643351604885651292915788951108478140280620047133371146857740593384863654262779276345906055457840074994173413865064235635865795068525522909961806388977549596000019537313172126684828187192124924423486702923516112586189463170615230363858266872315553521917882194784134607427844746856090373491970639580357965079696780034373710785699953046365229791419996337631418906415167958654758198621387913675833874851461295175693991945182617656265203191885950258496129301749955469417842205578525702306841010814754127493675434236926863339682889548924348918613063848289007695339378416238812878407952621898328586807139854112271286829153767012043391529998388872256171229180042899544850886840643040290574801839627957727278350855888920972510906088411319099511924792516776849443955472349787571728821757245814634315217296624554213495738685921548975581385313429385434558882776771397212860609415638793363059753658155753136163308695556183929407620731420500932379592188297067989149772558281821396415805763762252594317727399546163747385550457095249763914961332475492900471452921054855366456513523906444293558428847168585258049951751868855760207392779529226338962789033286997843254949805415920417550939700265253753673702371681229340021313974065934727017514896183619212001192438739177391121427529175065731037227657799431110913269020740363362534725055067626567338493841354269728026264464888659527701479785610321764887876241118257363562320051490967836618235890395987731439682619166938417155795358041170625816284527746494567495706508310391033753784573897811040914780196315711718628163872098507367116967370547448718646040678579552349169286170239803222236269218208697934507382409528867974610855573763840559569927648712972152766778117948811631171544553133016650323504410713490893073977817160716963932932723720829892832333782051807665967645884257298438472566917694675902000315233636458851320720281976927786119843726072501808734417214367450113484367447903250193616566641837733954373138999093871334513192988039079731527866582287198984366470659643329802663322388636854194724440768214868295533466993878919962750599322738562208491537673777087726438097870412836238703302270409019360623940472319997609744936537639865842242614208461507309598001446330476022767446016804624941294522116574492885638903000133689675869160104507731175369418407805625171506276079365346771483499874820735178472570607008834566681679640303966330677276179959633665153552809305537688722621160872264127476045958650427827914478727969926277630473399329840203279923883145611311965470723743445503091383757212635451856514849784479639672696646467851138324675636972702779694824917390595219039797626985877558688300605885839497945976957350809216864094055878733914893224093408471903715857183174879088593689181835590053473812122313817574703193966309038909947756600014955786823850634706177128078873093786149717516643023347433110991069225124971734117385270309700075880452062969459701309478413338773688673294162502649463014597850120792546094028119118398345019884256966188474015411674285435383766654813601658972332168347841026079002566086734425563563571929989551651044363811140224262499972718841804087461841506385394867654385299340262941337616358408575455426480012277774139260998674668364063895946287115517541885017222454335175562324717608175612490194000995515968473650469897678138666632843352392343069991909679166809380646915117229305990262064614282864711663718140635128286686384178776243785255844295971252878039431924174995189574895583611705560556034616688441063843355380788183419623324202115612657420607980686018229505495705648879451008522801724081195120133374384783414292242017895194351907986408357419581222971902111884265981839841749389497606085737083169101924821612362504370792411886725433446119371388213177438912724869553816841647957796772832990579746776805064381023108155847680916434407990176719261309830068820925623743828269112496129343892739687367833557380350167007505376407044378163456343493561115666184099346089969821316060685658792361308568437760844791044210358715419907685694651428777959573289945135062942272116893607705797775562154129312766088642073506068414885916837343762518928360046600964376262199391843105163630263507735605388698135366731871481572935422862313265095927310708298648986771813428250738582282737903284378771487441068232441234179320767667076971983689462022891052273316183963136349110892442304199093193755667183807031706934465075576836759170250458802409424932748621579622311505922682969549452700357823341620311493491209916212149467224319109541206523384200889937573328781922318162163814587991155676909530014712966276499914844031024051733365044275437925799607388822714586604121244916202330408085343874957550848443597665105307021725345134407179873120200670543879075657886145907448454944500673623254400903438820634276299063032911880345741948924445841163771791900513046759018386042893900946402269336857128515809914046987545272707779882621949953949565878297610012066014973518665495578340208108633193503835356015899979989436798989421904089261747813252266136029348403302048963366636592807572282955200714595032010440575264384759381802729097445700133567250350427057430806611978790763146372357382618938819373200508700538399507169530881467127152352548407404603962419349771162213605851360216599455900249052856891169744442449612108933296436290225365902927006070280375087178203045912894656639013086745396799255980713004228210227330133900982024851747665423327349341386472934226048706187946751040565694158885099666555257393190658750803612851767933539945472423047018758038707451763329023868406675938664916898771699124876937824247499865496025602534940724652259088052698691062486036134411723267895724683044227942855723110702133395517327518409763740684414730585122500569361799977281362801610644917882821993111262287235139022726058954253494753119470156152396251330979246715351945108096482371264003269833911101193583669055257249232986376179853427440638123089810671297406010048591842340114243054223913664663302785180575083572270572489178897872556383865887425282268503747872672553740284436367982111664287041900293890957828903820732628004379229889449499405950322926566730037389013525664554840912238898200432429253975172667997695901215737567587969144563905351539869096918715052646988136477991414805343349793624732715059973631347855654265000521357752493703188844055773281373905594041781160783573311592218542423066334656630228288815626584104390103290220190126058037978136372486163624998990238941739784888833939499047863644024280824456709803120173986033722002117753314511620708883979091013365609872284675925064283028257229157933966831071458023414837348564615567999595406460529686625774914461041672379257126079684951792916510692034782513244793105641942835493927354610901647306663144842865354480406381431980157248512559521555868750915356775907513098016451964320648614018166626281308304717819052302963966367298176999985891391903687783779413635903332597271328824806743030560521593306263463092527067870023817037478495016565721437204222187562037553364739491592409952016264629230646823894208187741428334668299961838318764774820763998293310627966332288420539062775828668020732801918076532708345373391727949378759908125615659180640613468946914289791032246671476593099028359407320235209130406910367906054443748447274871681662013897058218360779991587112698253018682161037739026902714897742501441886354555793576781668756692167553978315055944474710274166472596373253426128966147647376185998288541705206643914955050658750360152043878293389211993611383185805892121010234625310655884824004768053290918943639685926115307408994988803484999653636305933618171817644071966639804249100398329104909031851632497599816182273919296409346681078026286013500027498127944042214859577092381221402476645686167662907208800837819879076769854910610454750283466786850072705786151920187838172481191817414113126597774317990678716309952462463980893066657582078841440280677244545704499205327034837640606686921472499787924261871753648950031424960833839790670384378115146370294946077514442073640144940002221540898074774531845393802808382704609826622629828359497623245642007621782565158765374059587582845958185750535964504767414885715633744080506389708876730090454979598170644306411316033891784264556247800420790182902167401199606065629859442106261020538411777655188078203006181301269587981266098029439620959043884987790112906016489777466261070457822012112493062582459919565522771221161694962368144731456684207173083380367724065985975583265058086203394268311567573982398501451394306478272045456188365246224582632890418426933003396671512085850950484147066443654530005988233926957509797604221890766229544238305636083080968662851641605557263044144466019967557284859412518354590215169683674557804004968892585690866159718857590661663928895714553979144469565971278857874638212836640771181114763425797385938159743752268891423490904522874492146221389387006420113670674276668241545046701212100631533260788611583990431547521029606541792601858708278832682287697591001456500197649213945815037153667623419529690995169267839156398034046052937232775137926144090237219007991965505533675985518685651154850474011676097918711868417712102925098638177276350743489028908898029981282237360967835710869588905455806643510303055103619917130910769435718006992599781835115603109741623744036624834348675312059784963368789212582108467908519712725706027036864237755729921826068086780015339155862486885588304930709472064293388196162304173383078327701519962166988141307966583847946019022734794010091499200626839048053276323762628189200100752772487911863078621344601179084131540385268455006444315223437182498132341235513797064234565427810544652610779240237913534096774367731037821420543545277185682161710040584359062388895745795786737491077634211475024898443449218643238216803698734857178195180591167676106433145563750308286289128078608051297442180745650893592287880619287319377230952188112738583182390102432122829643904353006494530557829253766241913557468518257562294669265873547069308808676411572473302851588521873210700822383229871003455801642381206728406715799391480315868084434375361359838314655235021596455292635784858507067608147573214200203715425691072841626296048922448503345774033581872871539799341866604436771294731048051741467856342177894293003967690985480453103698405239989259971357835042914351096632286060544311673937028771469225179346721499468040588329142562884313609275192018931198526055426378794068595689860548659650186151759453100948881609353621810359830811570337213797782356613951994256824342067549395064170444969268402633274803236702448553993737223796071851111448185078639335518417623103577714036368243498685453612952472938643171386206254880834117233559410783949729475051783058739803378175680634299803186212999433806023375959880526981228421911892490340491919016864419595220442559374059826709132103845757485137128472120608962053594766830572963102599237420387204353252491533908572970676913218238958349430688894994321736905023485813891011196200961425676908366427531811700732307091613550389015974974515568155877015537452456765096489005376725785633647273116707623621797066629055000628340673675095963415058998453765662300057224655521267489003949723156422671230348090413295364976870831298732534414281743856490498765708135499755158750039600776244034256967538846371092830303840200607306052877860389292255159377778538113003205418424775685881340677518271112699082177591839408652266508896428055018040622904875055543413954801838885423369602915431899538132177958819201776271506216085985425423000834847111922467319160100198101441889041154182644197359419265802634914322111755317680217918897338689008524771339309960202404887367119161284553146998171769722019092849922531758564937268214132532774892582904740448155890892834157790391720425376522813180901184937363411589882868760239029097454623901190508734608659669671152677155171763191330968559946829446180062462535133092434171240941692375765791834867209585491385087501001770108517145324641645636875790176235385014191010255052106466365830214667658130239500385777895201755402108282497140941443168710964130254930998898247324073622686216704800849667833768046004714614117644602041306423305419530163990849009428363786915192512293384693018145298225553989980733751764977869071146137971915635085048126382703775345805876782081928156852054724280436341046833865555580495862643039130177724328676887089885602970710932835095064932378541018301786981995771187468171530544232612618699114609110884797822154117968845245264008733480371910855977895838123235823142852163608356226840936248751716996571945481982954204764877537560850562372297874678269132717204017486829880723383080803633008717826096636225447466680724791096407727729849799734453853331118387684956410064228729993286403476670498389811534472523043035991243770919504846916933989793119005503437786880828075955333474641225705190434787624866334056698686573624819973731729794322117810931762191431672035948588001002774586536722024772670937071318556595824244619030360255603360627925081724353280487557694051606068577521009498371668812024179009288838224336808146462172667235817910129925743614556674744177606969212472263351353777069860303141429019671851162513678812794124676205497882526861064487477093767137746186112238962425973835210561760230715741819821218161295739042083412415098611049663530969014575798432600093949537187015203337834538149449433813449594878591567403579275824167156036579593252127345593443899287603343944034680014130458668298596054349115145823534278874869960284238550088451605093177048548320293648034614826456612252930932324998947477806792122100463278596355055491326282050610705986310572395286780179961726737395398902343926145794560001284349163249494456161558602492551244007824082589449735953735293096592025658439447240006474738897802520723983806353116601834353786380960957263321613072558832435754245983680802653032368717349123294287148933286824265666417385372155980842493026951147730139764963431276029537937398021339192186153035210344127409673001693868389455220005949007899052512141430430957280028729551959473225398567331412988710738915859044743587702801673794310032426941861059860742029132804142894428639281588764887669573836550156984494731744352712780421996875747009282561767892739605454048133653990874224966075140559949360063661186855666304970662913942407963519677312715493002701601128750137579485683300658954893818521289941402227069797098145291143882638457852975061571751889048710982658619349399388246635277270902863358745571153742899239069834760380564027823742267991704446957207335705331185438948751941434950223363574405958385824319175526959416737303704417138013204549327194638976315551245450699630103040634333065892011252010419675956837826605276269760110677378014473682721370915663945116003123806081979367008301607594401283406671011844850001913869863318959772200768975170128428173475226061212359113473611112894755190944336687087246687698595797887712787385399753268026669181031495449413886996938047525773946906075861153416712239479389693407638320563511679519101576067227323427913018087150490500010981752438383424429888598526237414706129290671500755652973275744483289645162221067637116293484415312591263954238582168766241633521750396437544728308247670786202974200370218715715911487414666901162612642968463415001299272980122577462015421724203831799465286077607133831873441961386549216411055569893309915400374390227173539776392719634471347859382556934146557167778838745466609721616964976031183358421448171781247563672989969816752599080823718101667996362526206623186293414012261220007044429806717034644878024879196970661923731805832193410834676264183439637695873615701958293218236177205499696279565577282606431669917843856994093068578256796880704689625170930275202527984904415063925956883148874202496580783652784926990179328653581566739186118404100872031992998332377074502749436491862771882413875940252697831129687362703916820144698216541200099561868262601532290622062451526392911046348963252561105724670827968949896627403912206246515346477184920232439680386037708947188562599729779548039527273212293876735878387488054930837818893333988462758858425913896007630954492759910461276599479075041438867191328353924533153130424832398914515345815887971886046290382001323555702483151755127704754410986085226087051939211305386018612014639180930410218810658510027025496808063891595812142816277977352762345112272948909553860864757493232156671076127883845993425718948284691050096225419250626829760682946582185210031562870637090178311460365806426534688299371240313181251231050849734136513177104605011141714333761811681761204129278684770243822963745801554254205657945458946962712963690056321575144935337009061963370939619404075950320449355783341699656142572472698721207475161530660600555066952795420692154605365994177745898381754032300785247667016435333305731861319682588308981950891757032211623038776954801452798678001508550387841521771742139913887688520114558585510508828477409442633615936372097753186913895721666429074143651396068383742388956732821169384968272806750652139257322643458957157950912672529911466195487634966605636373985951375986656305177862882303919375271089061193918212989406537769803802397975686502672052928670114608691499851031652130994040633237792290387050046988435478296042446193755250039542498420024185031120404151037785011197555608459469939866224889047619631859529970700534030138010233975320317843292880452117870450771762730557975429854078743370119449020688856560156891332086760251765085068552157272619582333176928303206338628050089919555559404739761576918061421990882893976108002689720295464393564597902118611685583449617920139302297317574020791553126700327964591577553744942765454588469884863369534043041431180676799342274921481513129625856558721410402046765095747153343004049088110558671346563374935108024721212837125247594188747812309330436357747080603692410344073759681215651448776574035411953575547642109428720987373810939572203663285383633739914433844908422837165225934699833703663403113448705752268166873061464095877363576438056449742854506005673650100550575113811806342984597818687252752464599820088010217010227161598163934442149342235811847893271960857005469478914309926798199783919010769252243860716945733809166489242085345428105929531854104468861544096647873090688944229504045297222859325025460808423607380644564208132129585764997553486605029605601030756766875579181452174378798962596130837027513256942271768184872448885394176917062863561761589068614912150663871913607649015381388553403999900491149761383648319834504377827203495655874251659758192378101943567680515726378287224377859337196600872794318926154814294684676806663927429796868393504248341791196485038092184810441942771621196795720823127444236061247261033481315356116269989696643365114349022267183747664486250177526081335946607404077511275254072087727403445439966912841980232902463647601751988629502261081350601672061689820845313744692711905719296441775434727511212124250296728658847441241579611973474624512026531777748084074978373587809226956957718310063154662939458572042288173812372600609380367180279558909349436506711714687361452503570780222453420439750013070429807769573496853109861534993050314328337108962899299092907327681314509246657125677254540363206538039893210249139294357194070577740321356369026513748836655476870059663455948505574987419554238431054335081213864692710482078369711845744606102683180073333761165598846468975277037553915772186378284267592454838592171360605092018965184218168702886006110205615312977799923789501930607014168392063873726811707376832974051055373973612317566440220613681379237299848226102172887776103025149912810771456424270318859482393076318343032837951481274864508218757498842684898232922630660779653119815702479868113377151837485484599289641922013471135245714091124466394583550926282419634624089485153990672850442099281978951576025696925013083108846612960434735312492902630460096990537317211961458888788233946797182905099377026528761838730128212622277993806195182191209688851220794167182566870447628854400411366264569204898221462169644644568660437285071334613848311019153010300216297484033450850539309413946944141002014308598978371795178881593174336260105921061841924832480875575839149903611694289542870064499427069802048159554325484080068533140260562166018666303519116433354014291837430237428487725279885698424605741913090285942997039028129164237473135390215414932825825472107195843963426282489887876522909271767315270671319919710971388566683634146506549404120092401614930962262053626423535723281024769029231405673742268734696801726664001257395312349523715147542792791310073396921487642968712099225212745978910600771512189060858784948487146770609572007517744581605558975384462946849986313124825252111881567268473185523495981456340298231776534183617817256374871580597978095173373830528499781825445717255669303280059397923486824801850200401561833472468484992413446686654063318022021465259880037350958501011674373879164775040814776857381628310063932575070919573917862260211596006440953345576873395311553001650317300487473762111098247276936095190828261238263222854778060400120289233530584908169701977565100206130982278995576712729406229777187101645510431917628688604735893773714858539569931434019971841752249155753108734576662300723513929029786774579968639426095039089349783730923714520396340194212830821354555936619729113088652369461479057013503673276496494599261454833800760573812975239072602305164909649389383426593936200582723742734101144223714831185673682528772770538926548061824023152168556914297302503309531959846112849587304055611727550563639288540582157030038309920184117400225961190576414383130279293633873924850327343234501228191050144137113385676616147489537960373271265744245524084904836561781776019210646793386040042024535904718750516927454304504437906518804135468169711779391754274380700648978141065815037571663783586275968511656336679335353496797817735637869566544905643237777869010501707519576848470743586656562377916584770380208518202769599473325187059462926391304630556704261733360640132635740992140056579269119632564720937117816514483086710157743802193983146177528817100537897248587695394924517145712111373146312389586859372035110026103231057977383802687788609643095917531672112065654017317610316400070400002233009841609026399329438690245222481278087826886062139815070330837753224085265392410909840057462869467812729751198584220485917285433227018437025098381875084280145968174853709583548970315682925427378668339214606041438261419094728632212389222714198235969539618037709084716724679144687149677431767598735672298786039771092286309974110691230282350375823238647243068959821187439693334283218657382808719782461161438506530224783649809202809606473514125766084315723432063495972902489828710639141450720472571438071297553564738681214470122661089049919875108617824409979265552820309969848948212113831318341682748979936880591398296551601424597780096577869245168198842577069632162819718416072438641562388578052557855762636989216788327157752975207787605824059662390269966564647232336080459678708325616429557584431481774487832511988036923265215948899112224637130784209643064611116389112815773947299484722172504924636584939814826276797275853825008597066740264239004065599931322446641804407520358639922357088660851631710899901502850098380802375836905688222223084723484176383638745443202348636842382396772193660031571252958310792327411877474757674048471325567989150587510716636379213438039546457364706009630820555661546626026901640821469792353069758888408522131895738143512679591965800438822710209253106984911524033876164494798925130450556970873281922127132095044559468803024786045342978724758127884412412721658932544444705581590344447779119161259719990402155796564183078017474665126963525285507980480211749742376727889025481890591975277689695745755306936349663771892568378847319058401218449978002435684435167123651014918364625007513269035592230592940011397305251732003778155449408081215420206636281709793834282340909627854341167500068160446732822547959067594759873849673357152607263632675956632484767272133628465550563681522509200863108069112651275730236733977580399030855622305561374722307720560593908750384323312240666482646872396642941048312973350648361304622681183384917155087875869750740122091912545371238319124176096217448760234416448846293738663792919701202695095083546083470720676634174166486958840659346316673340669693839634849020571155733487713768482501138794607706621466896612629269372827335474911264292498263775916803077481326124218537206013163300811042256044675709161801907742977927874382407830665896169325677458392528361669020612351066906322265451021542616893140896251550952452503644000965259014838080902512006208138429422192134390013399284265408734924563926175888687623429036264963953577179249781040844667270832793614412888188021708058049994296714164772103701577563625060742220434673516650695107420977756003152719515448067799088568857598907259772482320999487244269288349610269567048272417843313606916717198864905302999201868590799946224234325254459531606901667348652141927987397467126778005213926229291223689469213256329205575725577748263572433774043384520488321036202414889321856128504367636210049819295102645803133456011839210460559970246323443415922727518434676277097381746286191131522352079845815240003747995003951913702792329849171499751246091746297993257195039764603669439958175327504075706115548657764648588575446557130150866177995725787686530216520462907955898741514074459467562204118875829728171526143321435939553268408487370844719256994232867539446321089870189640967377681173084938246349597618787910895262563336916669973317616045198762054806229170752506647620208712860923076501543983040158614615194922936025092125759948392099155338160089862627442385195180597384087010664506753103374816710778379641272320501783057262070197568270758154167014397547078365568039821983092531726764754339064341977985822256436494232412947169385968271416865395584258711321420278906191254216760578780219360446346142602194670976617641807034732620557650159701161002119222474831658506622860113546374806645816874453095928051839149732442402716687736176196336137310142882083356783592409035117927907320376206597022265912138318368411900590288665561124417833764481965091673365329018883533687983228713928939453462476299056042647348503293293367200907678209093398430339299956839051549334660714742198363993750840673731284828147845922901368642441961136072682195681644571138612986008757441724562913613982153925883328829551668436865059829910122427901011702980640208508725895878239874732231914708266856326893255634799273470525306783462965098086681588117250528970512094471149998873510026697891328272704015830693748304019514658758465210114706959393291705614176812955259922336013104881410321864341256596613838265975249409972203481324335005953393943486272547585170375329162722807094090769873738492106183141904860107116762364002493827896601951485688269301330066808249973001037295091930075907606543714263254096204144125693199428661409396340546522317355386707319651743252609619445183242094751521185364840447906582397592455584107955692433094037333374834564416607073472955162933877639379168782105347428306327241656668961141111867164941531755305029548467247148261064500808362684970257814295856918560975950335889994971922432960699802119095015879696545189309914177659348952146258520038556916430982449466962674983171585938691867247924288994165327972445977865977581013176454757589531615255002178613036198494667087628990208408557733212044996201223681380956665263618870707849949510746009922641352601949904192520229204224545138095925251095420080747635421125561916678104814655617112017634446027378303665122031431653783924366990395707527048403930873636007331251509632062300724961747907950260658972273402320164938566964384096225582222707369722014738907275884391863481111470829928816063763750231064165986029012969191786022548598756330988419567460990987382341999918115012638817895767679295154448232446628789696798320106922697213360841257673456694869284900064306955112670852188842888704246659923374907693330505620132543771908958168372501807897408958407868952622445407818951774291264463311565014842475049900943222574024244795223497516066613479533542015217178803290172359863076219188984535434692861999174225456371760035096931077683462991224572783264333454942710720235210287638680255448986106574783828104204806903854681971985439531132483297118933779106318645137169505629589390435734520710226073128284964022610068832201878153993757333503489604255987298120240546959408575552829025485072344490378661727030508144890336532463896882521365003406743946972962771833617577288728415752454906106843188879355305694526031306074933701668574593028852784516392069050554802852639070228482618650206307182155936166967044216162597158880801977659904752714064311932719023776057997427943593945025980245617092788871685123855170111243031783826787205808195380547548101278007354901117674994790621439655699849525803782921171926289927319603628923992350417811796897946768606024501744082802367853000940271833420688691249545250887741320302666211238619917529979194573193794108341470593601516748319886626064972800126718360747373982363617840651781915422082495642058260527204828979985516719736339645331370591012879287679132274568412167166582985761458005235845798650158102480839805752434640892521030736896363255119018022479252456960817991331581080904365348664475262878525586551084361612663220470241814414289332788255059978968125688447797845194977894834623364276852072952959981984157531769691059584280296891995430803534492205447102121231765476568992549747520676877509199934104559666763299276561727994146337673285910959194737331785592640377236356296548775552707674086796303108084717615626968998135294417428497996112935192664745220359049666071490911375334057672105950994769392555199157225549028782768130709297616829641425423739346997327913614293159816608328364307688995184777921559040661593144273278200637063357473794715697089992801180684700817292928174817662157160195302389995799117889250813150018049185398539225869597554624142454521899109903021990414742655568561247559888496112917399011499599764200650015655784537393764897127542401336145134926884630633499077168283830211195242839294764234802907242862612954986239253463947391033715387144234404973697823163286906144905530079083475798631762120035324573317140175434957816470751827631625981856225407991214626043914196650762598040166286425655962570409391556198692713262453080061941537317049365803372224052689824788477856065291042105744889519019936672382633373280529918295906298969776968847731231985074059287615548614757039776837558675507252533174767103334081404945661260995476428563257131394896138234534330385060673930746381542845246542347215353984556953881829938578857495507654016762263030576109495051195713139221197398533449389785933303155295962890951151016310733549688208692369393415245395928058564694395573223250778899105818479098393440523717307603080305643339271946734055323736012751787713103107652696740550726332878614415742538816122672588675382764238249010765643106015187885862681023634332237596826397304575848428419650971829600429149031515857246918918090167306658452633546525693397889524760026427559616144389475457931335807694412402647949202774275040875075947108338662026663280397858761500870795120012615629118561690619904064555913392004743517142300807297760344753950387341263019412610773530360882264649394256969012652149469798235396538621095667490017586602516730746054823583093341978086011756169218699880550217172116678441045330016261197340061472414164458008147506554440273155344651130055552164496754231942078802047729469586891175212187372019837888653530202757951223415156517578869268069371710018377262799120223042676358920331828163783563784583552157464903394860113925956842059071725142229610378510379487933107261812121288382710919515140090401260500298052955733079497926049512904681668728636368004398768414447784653390741796149318732905496885772063469859464975374792414698779883561885101514427233024579856807126479687626508665183352128083126562313944488157668665690741703941049634488624892540394685704067766408742468387788651152237191863541331591324687396192538786234709802026806867412253976484136462374691003546464447082631874051564617958998302337019901460419012880803398877075642757482981168353696029529431438579266153613255962413995183860584874199993480989216146635617326408557185844544117119738898506700694952632226998434395683950982133021765052408264016184070909952739312606724510113347752794324041275096431736919868505227013033850821733751840492477665046168487690537397007588360253157494610779892953323355308040806273404268388075200814100987850299362925510064026398246002494247129392110619326261470261984361368799939244180525798247567697371397304533879522407970642959403161571670355819706011444575297969474915571796225690643591100753011597633688529073728015856372382688804838158272445986738259068772411690064074846567498815105348631425229499110287748933308300022976873911768395644271118362201799890060548339888009105285563384601650594972952991797960608775212812076203036125509349168548236867857456054069036116143148627592174843281207067026295151130807029380495760492091085123767092533816894182715833620253313545558733682748616775680007670080145480003924285022755087004539086676824539261731219335308703337860587012111426419458693662223605064929331167306075996871996695035964161454259301969454889914909105490578977157044739782721391226766590574265755390026521244287725613465613547392556314695548410413203743907339732725646629321013514821949942949112368882562448692552853109772003351748850380980609074328687859036976338412163282617890533691008758648133649137933674831754279779590770217383515256625911707044081996453530842827668362499269361222917541178714326015575591217101156963765676377147758577267180958101328879736230687351551053399382798197582551759095415168243476392426217735351498151304024275773799469230075322915706372824708144620898261887650076951533971734337667000796857624134378068563173628294205563702828856361491758292803310910885426935619196555683973476940839553828111382123986487654442975305372824888756382790074352888427002395048053167137741219215113730464986523704042092496996844616657184480519992172164934799678696137370098244722138729487906778321026196706957952496974547449575338182780970644410881772983631491143656107174387293787286232395119123225637805310253911587440125267674047796662331254489483831529140692068450888090937441319008015622537127468254653236081254260435890970233793926059967989188644692130169093688852791563062124591249056580690921911470569855619851184724164700138754694256997324795387230258403581052238013785737900616357876471871078431189843156575822221948910404294497419673493976099548075057662670540526952850687143656469934056314961320457464174222633559250910695875987149358334163212941011870233881078141634441620516876272323132039941788641884073421094547186904908081449772711770218968773635804561612520464095974182278899353361651323725974654017153013506098950442168026521066996036653891346922700655633414210898006993576155621050632241152181556648070683828634959340192728610922731868359389826834197636213732633651174839661240603923853198650598170961263840439180671869354038490899813836648484595673225179012775789085439338881233332614897428091154909808326096333257767460126644656332995726583781670441050334441674335133176468405717670015150128418098723828757499287404348033717370558135481132714335940277427078821427688994010962308261448730404410309126315127075895458930331937906655434438636523610231578668881937613377837588222789114767282277700884181546865987735075337811346272310591352907436066669386419202196954544013458165677085409797006395175674469870070210112822178221467757852594922078798277419826955391671138197266168426076877974105615088501185325291208815188884062199107034118923794321391344478011050620233334184218005637131844878167999433751535129399253635257610220929655906629220123799914605202455879592582567070390917445478055745269537538625985235477547484086151079315652259742413645397168255145367439288408756869125279693209965008339189944836034993811940785023494977190354443355612414835713956390470208569282801491969488045193201672876822979099495236528045680127225439338291807650842951900222805494909016432945744958185784519908661425686263939321251192815463551455865150565525295988792851552536439013165883993075585343438035308003825826073170716612811967846294097878927577646290084340716769962530730599029701875866474053661762384532962730977647556665153291278210636997128761269393090071098027088181809487362495412676795453113707788923825820923949595341024117035591720795423139413409199503618335722977728402104020305810039560585957085738650874898846710895600093920358322555359101622643011273070690903718588869306739308884529237656411948668199216058266787214553546967051299909939655808737672041922092003094942055305207840279218691412561651459734559681346473348869701817338853510837173828968909760849614073918408142086565749527171655639070817495477694401344139841343536371347711440312121675431497174469686815655901995983458159598568016421505459449444243250184039399490572375314539985592534493793098740787168394634736543692696718796789624843886912859553822348197529908444818389490707626963234386428271056924482424826435247064796833334417737356081482490877741385033824121966674179085099700984620311868848495498008631555376850758999326069106212581162270295255443499148450555257800583140981451705638611548184904115399171097816236233503676008095208688422354437728062747568259729411128915070777238317333766194651258498698707044287812924001431383931559604440884263236934226785676036876119916348621236475420932067225744218535291871291456407706798655343321475393440768188582354732105820528140670409963721470313526850327442932469621995455082174649442622553302335851228059541215151805935712020818706013438766304080437213367184269578965719275238069924476676213411804977725435822335439944930571794856937474172951442984534860328518826196772779669127952739189485130668215395220644359945729175939128439744930337498276227775566809735699078743537993378998785102387453088616544377512194138251062936398497577388580691435406138638285126895113218333269836096280157487584050698627060868916627533604817534890504299811522312722427558712385525105731179170418731874380499047313686136011029369655151172884438716763955948400731745033032335587686969435929335945268845010742554830520397656970107376165808190671738652273546442413221874359815993842346753048024283302533396529227284253134327232626835164600435681051930019226355344719623353363205287800636111865359634123138371516036580943954175135535015687266869672718865416172448077194485616951964430265334955023505891143499398434521071847285623147325563760157457253911852813148878979628033082389331185136621710383600764912715879529988293341789429660846405933460559240441522412857441146387120033659027205864684676824219603768481905850887337793850010389999181583997508386439083218051819042141159187700796424769471765460483680379294079050611734225243335774942859838981267479796745652360608929010192513298852995372867603756918470278488322493946592743466910650755712815318061476367430936636714064268759470910241851186729251803440366792097337510701350996301901433521406440225940881707481310266058936829322499321352458158869605363180846897768190115943390564390744903432671865333704110558771529039989125252070673678758831963576583334583962917165521852852758635897080802604327292836147427744789843229010864010605887660240114727339064865351807666684285583288384296891037174968628860906864336408157101649434914849924150424165751597932123976877531537646010773676791701105978603089117205438963322197380101213457538461093158477067330992070264022249827374107998664666954368660933375817726126931108833146661681120061943322267043423979190859464880115759610165914938872551143679894170140157673610680664077106678167366933944401379663520383208613054397994473500516328525585029771625281830300925064857380921780603699001815801659388056765504459500519532834039402539067060628626862444399882732679562655777143017169084249032934495799683405213178253159670035131403624324258781544411459752839815759027686886560933425577480028369446371146026036545451199434728209932994984149293234219677449843006096317358527076824686238809758357474606117619367270661247736854941503204305479409995439753623763297949670940572230557520378410158115298977182427607799105104919623924829275268166859769787671604246843536196150533434306661457866858283500073514819901493611577994180972869849182461355107949774588536293025772270664497660330018098890717659882656175139131549553805540867825610793527153364846138464456921888305266959614373067990130222383000184027699913483341828676054324653802991145140111282585861899582453079068771679440444724304658601997717771010877255244391798088481903414584323661208347446211090674297896059785183736878383406324799341848597176488780616177699878792497564827228882078692016016981543064524528019551200578849568789438279334087978857377878690901942601488179930254310423269604891127759893196523563064904787338379729988584779529229058003195997146327767608337611221733578167683120904429616244371132118348031520697069788968533123754346099776974163323805978151562316503647337102886485852893654161992651671065133900705053670850005353942240679421328941193734258986108431403827266593989529503591545431544131066073741785599738734555223804978103731625817581306761658240440671431952361442090471979414022984618545639567821143216725477231668272305101042526324851512908210339720959110288800324852377500318957670111551318065352027174285812963265535558357451255024985812201802028754398203331420560256458334654003469490134766933632068479472219043977629156467206125831157516827832367639493282518616511298836156894456255499310527861447161661715879923805416511826756458782312721427942680595903416569899007168558538770113357809760292574181323820143803007943975266147184088233481179871600443534347935260875574047268626774909987449953236758357172108993946661915670721974546984425249814777982596651278532668036874134796884871017713447999419053342110760521365050267923458186034381087316857550290864909250479057888444293396536860415453570255607996285388752878220146097321313248494261326973592681427360674915236614501424346805654551371921942486224067155289631186104906575141870559576557608773181345223469496735811040819145403310107390829872838420491291924373871047910162501785606020608499159589872497234705704202791782299939744971882743950029614622964703730759504992800530117070072439377888943943125751056365153171580948149468945748391741342751519197196344080792758383915384577856347571955973114154727627168374141894700785262955715580201740067819177300872417347253034119293904969904844354679336220982002852454907707588048764809792324034079116188539511592331908281882182505467889303178154533052986985946140214632817167412321252233943914303872487636376121829525604506005631039605793638919918097001252749119296394970003317225937230459623093109264898931441514515307823405018063252337314621781791099137379673229383273295061399790407476823581142923331039674863426998786654780788275336757012640271380862233468650245846711637163018062371635446787436152214896688996649638312744326055234601831398722043029903733612315160906419270007667166280350027576094946689141449143598999584552362294893851600851251446069532678738367545485703391380902325695481754962659055733196969796611590578169805312175954653113429650492815113512032864457019183876128872384401800687470776117110006694420069696757393213404796753180715116266237446804167427329480258117699400593280147074891247523199837887331271500405780622083786068530702883248262004922448941887838625247399320383222252093308562292419644137755098084804500186832071340619600859182067730018995116669943024723984419849300443873100509799168352291514375502397743288568086334651096577282695275435123922031334203417401915000542998299074629401433821378373156552788416082166863697563274104823498182666099029173497425674328418518428575089484955236041450166846261763702495619744905342512966937734869204617837510359244604908632238020098000666121768904001355138808513075353435631844685438986284242974319208175885893800167795261415105096255203744524528761467130350712017719096540309315770597302501235048519722962870599910207106956261954460428308437579527959908154892737290697504624849485974798461023978459249609097744905432670172172261744968018477851597564046448587785481392275180378333844749641923709344989909058637985850532061623761115882161333402271969238219358731494161054365579757739566224513101114969425607545785257247618129112761211402438547001002192417584179154739779724559960682890743490733766377790015594687713923426179335884015998536804110453267960538573906896626863016876233335096966152753768792529763414841552925720164374487376205147106759122372553309357333887922093531268314138071837201330282526810302892866683492086501447769003474679317863613444807217042230035702261555337568075375776736669108116342104268683784616669724271355328392036742435042260895575321359593398952901454476704616656855822613404515708917366988698533898002656484850144956700103980564909443747847048076664220404268757196743750546950097574688185922384501237433069996903028767574536122937726480678533273688498735424624215283346469536070709189461331402161375214590639546503871557656964902098244372567192615220849268513874564715464249043771468666099345411742442558190255600713276245117052166546487701832558266156872338261358200360452877227522399791739547623774609365863692701070547554966003791179952862024644073282588390072835066048313537849761266017805756447329472498235315820607850276866779014781579352643460080844323094191722476668570971672225138935166709967576105825800199507714970152496966120494966529010821253020768406510100641079497880925108012554455074181961489968968980175515856406915695729691581272701735749956250231243739285301989169368290436357275614930929499907681080344960724916717504502296194865696989877377569472706074760317017419255774728760249484710550025231607151518220640153690562776769554566905705631883532792632866361130969154388387143581206059394587894952558175563364428102875237705501826466758315669839444476380804382327383219708724450056162387748355726829872327173491746454508852227077023715711105048799303213734356001623421638557677812633018863192552759643483954963893007854390759849232366446392634166927508961154237303388977423868218088610088900602854770093339727893716146239679514822996405686402246505979112858663766767641018535322660201658069070543976366909623949716598876631901486888623197828532734027712128040402901208466150225789117312247892926107366898016857826634645168369779395358323088009963150108151533986230937934091170048110522064885275983428102058922735641638071813412441782503764450463173765220791755956061789208638952390715855693133919104186370271348174841951330490979251514324615768348552942617011852167322963506062395737273764295668406689643592793419066464817505290079739769783208425069851680398499356788388474795245825523033135396510194648698865669078842813042695067122885648817717111719077164124692600691908657280226441610081488162508538153062121918514459793273312160363288331007381954125434790393882509108313194981775508862119462343361137737302462127909153425346073873366012205161400993794868580132713401458650446622167200920399188151059856547252006674165811536795463924587166065749031706402361499638860120455146919719181214358005842835315990603500352488180379406857254712316248115933289367436461674241720921675391095321241499853443681900842237929313178770193348334993750777652019596711516828942224160328342812789400870584297941117849260099501483424045336141168720922233281001939416144520884260169829968985153303736443669818288575480947863458606256113994798620569379394401866048311220831627025600240995172216332751846730647513536211464340555453650117146145899433651200875232111908000460490158642569249135975428609784614084208189960825635665835290239335024119721675516824419818435838561194042482312720644738771466742218888992078808148656884823861624665493657659655128583708734285978828313226584743074759524282981398787430809437827247296355132554386581419265325618882523516331852131204219160186179760171386355931394857330532939259136396060473117475598190448879255427280493762746577636138136102763814420024154969478422206629824129547270524768717700092361178684843661790168550160262126481185758712486292289375913425349040530504550338039951457790814370048667979874854890637359049614375501893338579345683142878328297381165138329524237667113352378633442752615818480148331761214582132828690748664027014400594418111672326854745192929584362485577628060026126212825927046887854487593121924841563865332813485589199853225798118907202869528797800289527672968851806674266863471151492275474533002381640848347852765785309217481559890961817038053862891205925086158216297663825878631260409308970683777835249881824484635247625526194824842774274319577548825307297066776600469564295359448419839484242770880177689257580556379108511829119852147390560708961075727639801253024318855137818860143439122607938397136296344250910995385512029899115928827599626224246781724564036028658021285690542612949097459714426200884461544208011261935204915130055472770276513289504106370510151433390694603354918237622255869038355547345473159088653248891028261314340846267162299186072191996124414815889716054036508819477109162816604124623664997073385915459833020545291764140289062431499136446361523060351667617258572084740549668375790914974654900290323331589734273855804160535432162757001988921578731373804627250794383149089035681410793395470803958089614393636004795343549953228427725514823728664168650124186075070240827257827829917542387520199537601906917268217037468900353600398828710274059245903448473255707074002122747561339869102030581084043585107428732939720045655025914852837718962038272417013856915499151773609200179887954043247406257933980323961149016816064468884079762406383327530679089815731667194974219038885152868066274290548754654600736348348350398984245386006069472881620921585474223146597637169011849389592098748911842295395686014437617051651122221593130370468945589448805046926800291452170620926862237764938926267843589951645693470038373920260322870347349961588099197938977916503317294236237359099950269508409238529385770589208701371540482793701218680470084725082539991067323571526875105074322988584485359452021958476442475444326753065395080296046748881565432985602109778100717312229690330720608222248651371700821188535287829959348420737305608390244558374533997673267308448081291699924111224531541738764968604909505049983628332702668945997073066050785482627481581097015078141141832423002158762333224789881414537803321734850502039929523579623533725347772218557755386413056793557403328373265006920034547723515238083162798037159621413170608992063269713274900058320193035250489444118865940969930656393518725682621817498313498379882362109511680642757091381231456575440784638757461119084077730607902400870852012976530228733525690995520517609495613605721054779257479338964223142796422587643977120092514036246906651793050768147038597931639993737381905089119104972063573237222379570953024801346459705542415739018386489476438003925146270164105551443398809454325596831895414031595414538709592292276839667084098562928833017384589095601274831294840559937865466232235910766533165673882210018043775131298952115712637566813544411842749896241088720469783218235457099527549504424411048800386307546743644434771275602363457767700617063027980817815536939370196360089479579075738422306132771545775058866591320756307575835216736905050296823822295190967295487800357235267430443480446134868135348060529477890887299022377410744394749102418340767906664890544000933127764311214890537311997516088659675450920917451378043855956486249785541029856327904218023681345936008840829862820982503615650158228357622457978350370332214006508935373901512992296646449506458561640818594102875811638122807451328024245487245288177958345108753369238529657759331153865415863810801440970335706063287813837410368627776709504581992438111210485174775604178783743135971384768927598981881024718439876800143566648933328195030314098575806250780375675997131857559642029786096261504721358966899514596873438682024404300152627182313443433596159300206607015769045204303058759605795694489099393435628936116991225360162090464692261832815287383787780988935996935792498168553315810568433707447737831921324890315915053769584097789870780641222802715667514413850037348593674447350078171560269921119614971615001427340567488272283104816229703179015714974932476332933947833997308155758468894040321587774458234263013567164819483213430115693913631102260353336930589661517551090929978582363686107088740251417661448015600900065518516513888677407384019053766844070198538105873936485582412857393031779721195395838878086912200177941331513901182181675023782828610952829571651759556210202496269158253268569923718551239929110963208452210814424733281602397345750449705549598013761069177308744083506298797266729566707626026219364697016777129696725918530286132395493790749476974252867513638154507294415593674683907356891905726125106100129182030605637556729716361472570938988978040164603147177930521860456939867219162834892036131197357255752601406804510351702080158735749129323076127138955768371393237788619667222671228435061438631393014945206049460270700903708051029189706652280118566543742212336702256117932884227492931399668698679037632025835264844430043538399272018500871899240866458632720870770453019332587166880408548122142019481145334268688471119990778351028391280838738920674810262876121253879917112307351418868927593668305940066685625084854962808104694733447060945824924564685904810810491905678970639245529691162212687194678266732904691476528105389817968271031970738275028725459816190220283787564830708310183572852339863674536957100039362816544498671449315022967961525109915221527047732372405982826390050905463834347232198090306251154584037771942367023375672653757563310258574358150050501739733265735235643431385383580056213158597345482131076284507230167462069865185031458073463107603534823477162536881313457404605703600567953276599643752250356544260698079953875411316028908214356631006579952626797559812962869715812640780549528073125292858580247196813550174337665975585860913093000950715250110797643101696641260600245473650935059838937326129209929715493624351888596522566666479099339753087862595731135167372802735063793852317172585952196899049711722547629639644256107606082853952167041588811073234176101871645063946318317142362181745151366127359619439390630115595663901457688165208931705661768142242423319453839625167814912360304218494468427443618800582469443804779050642163154306790453979541621895373554326315405114483456346902820472487425042800573503632830022046625248887199351841698034400538513986152484676372987414578874359931409094618109830481488890017903153188458813731192864207495381308173097147712106964529878664875420574257107028373419132629287475945826935038175898091622725267621581084406039442877929264353562792995729849740702412892216195378995211186965226606623799972094975677992785103046488576101482959951802466610316715936090283672187331909784869254709114192492314828845272357991427374301738195220841424222136571057348429072184521903985570217891304244962629988870714079370480919335198891938362335161203088963028847411007470611250401984330070487344962219700984760805694083086185174318842541451824109112819372358227634091497399400608897975095677524406204682183419226312457704554264463539813092026255663028391381107478634275585404252916637454609284692244212506902175958120928486408254117497853187024789283847093677198253469624442153098713283056065402137557815084376844320802364739000322404142252573882654969599691925189891495901175136015177482141173038163316037779785771759199769422022568981474119278592690537301318154155420018671831660406598095703022808527418395314587473674966089612885145058638178793698170412585401622392426738175754808235114716162578822001471719404086817155983158581937867431494488708293250492095584544641015993783040359801690403039332240671523917090933425229982794545776784907649729859526465642623065097939499203227476024419149614739447157341059776398181546584633947863543904180528105086906087882498837349660362162378235171236765568674821799559860725832515923277248826374813435475863939991691186244500670911086075872329775805284684025602273976215656058404531657173013148494686898265547433010901783862424137083449247394620117234432157343427987626337043549015124929893398771915581625394423573316619858845385096676518511635607367481243500483104005359556104643455031815340250965069812823036746999246056390584634199319272306596517278022756712575168781296062005561882109112125146137045043991886331911486283243698365579692185276608405035629026627244339195745150849322517754745828260656883358946354601233985111317908238966719394665513922398474160818592672727723004111108549432541489603452235850529386682783898273922398339886211774734484992651637218973426113618431532014315138115075907465100202341567636289143560813350687391434097218881892731990047895123139548667105590773766199374336303846771939434861688540025012027302355683172083524480018694828164406487431109075355141691323179550913779999832650181305883400542064427965346211084202748694471221399449388955455221844903747520507783551997569776618816098380105548252688044316814621561155082649440123702995744802118111980240495448052117520947161624514797377031659424800142337129685050038814471731516135226790158759116648739485826063520336485451476784914529775643943583491682721491004644942574188651891898002532719617713051306970434702496931820800677333798225933676123531761419347712421234089881131333679188473783924520601752289865160284960142608199063341471663856001112365819151876286861877597402583376384175411772195578637894917710528162446030950849524597068885362328761978448085960009087583607728921610449107445330577497724891238529474100041560566367168017168352893887403271381000746003588010821362685339073775805949457921724030058669663741170234540648189424634731874954767266531723070624190530246042018736649344788792597066469248011257532243294002905159521617440553167231212836112045983788745543865633205050862977408620385730564960650916995199451936088215261226768122346839648034808189356066681354153351988601079047116954269155491266843421104064332854301400086071033381076060258979164228386177276742862249692224440597246693264037567935527167701265120847033971506296804286396148829619785969500347086875325915255169073843964128725843640548072912120115095953131153393783310093899884483588491138828244645537986484250664026468894990640673088217813923822411696442969594398591897875471447948378631733299633732587686386377734586584124203160812960535963513337051142539883329671607859963960456640464627326989111888977415107117399129108326475386761946991411606754175322567756240505843973212381870503324304632853666485602822608426913434343370311392060479914747687898956901971157462636195641346925461543112786200321548469588028116127524513470877449805364486441756937109210609710722656383448005825547258395647753559117014153769077394399932080325950817325128131149971125592351104469556576191421942712935205086308371873342624498776087571601734184938170298304789749383915627764324157968081981331577822885512931910999114249424610232679794055519928717814267077350850521312415200161730580996519740305602842799150430443428141912016295384589757287283221813300309440796235814876078933484307853948403425823036711038608154018024251421950684987134067177275897136294417677625781917656672409766467905577255012509477217771387837879150497442009280110643871953673771901079648997920349256050690659397676357339215663423989724925518313390062819155474531216272485368010450629333431354561406938084091535759410063805343889775068934125663814841207349352783255301356326924589907797170729573321749628752677917567729405828985449870042104218851627256744559923950972798817152261459735821137054760805607435226367970906325194016184296395383395427915529677402921067759000830345439182296870874608935940430417028187582553670601251047631727034116012426332688748682133485001508754966241730173900235007249406623384664792742475416729753673880808221234005939628134471841422401153081635624991563704187668799127443358239777872476387743682469846749785208760089216705023758567638404203072122577380011136979651171079815685615997295683065797699199569862498084131007319664756351361618867511035229419570035191034098050186504462938986353613706697649414303234469330117369374831577310016943459725374134245468593125625258017067378042757251095800398244308620663393424729554011764632493565973575060261138966819169907962931251423909664515574653699785915405029350464209158988613230224204844906408430064364031595169930753376859791687230712175375364597366462199820803924399344295341259691655452973385734931923413146887498974818695322564669509268515527362569670565192022421991890480754866028518659546075339422727278581614340315290029854070228818418170908333403915368282620319357181562715684799069551924473433624615035768245517945800459497327444831278064966919311377369530939238045656391395409782297984961740893653458469497892101699274342353894443179261421880128921242582792515603758907129937373459637956845424362826974739235922446843864248438200178681904347339619553896251009542079872482425559754558316302193936624737996014936142840332468796154930801179044262347007468492178069669198885833812349656945716477824226485526887425020460211098297043325303341865084676937469314139538497623521719634409690217662639032702625799415527447537852839248796644516888531237313485953340198303665406802655655136370290746622474716085777550235490691765852825184246837090032459112103756124485909606526091559843635447589320825538203674173374434432623111496566465344535407717391443699930391909738967671861829109337607880565730053930952690894033941845795861625960995748122711202547794078662142585012992649686028894073951230083378220679951745915904526855709936824839030952973625783776158468419289338909272163534258374941121979347492401940729505172150397525998783767271891218553079086145956819342199654163316371214221275767927444235836094954143049226043655007561138209753348691675262543832867220046689308171751132570469923462772822532740901230210423080706936218920697319765445439025542533239509978264907082079424744024060081092677590715470551128543426935257254152464034143457251976551488517600356701190636479753399371721453959868807905260817449730081733828571141489665324600964968759070931438755912373012257634432349651650529389453525822146976185036749704054363991175102209777415579677334855486063322878419809454145552568981723120591456689176884758300183394750099437076309724988008905593782678537305074671250533531467024798885557096518379426800913170272233242481301784496645985196670143988533247634296593519304659162800134838564505476424363535848016755238716455541151218300705906145083289597043863427839039498243226714776385375211950094361601241081554602719228382327514490379340998433104597256770336471789033054042546743813983889788625074124282258584861813202431545764912385379353819569168623846349649646512714458210925509826617202905597208357005815140226608922851168288406956312687961654014660673706586774822835820348931003942682454714117330075989210766943450564504771493940296305744411756769022191708181848963100300495417283315965641157663129421295992996923124047630377015764300435170906748858716914199634485621275911060381932319003225787638214158092768815589671712258349094230152297855966226593562165830946164159781500099926987621522814184167478355342873584537886125429769695187806036483059142120557102908518182366081804164195391357198807928961424269316655082635121002397925340146425265687287324243659831041899605440868501490259341651118721788791448212558374923391102820717323055419897224467405675049768437025745964716887620457519253140665845047363891352133488418246365799806948889566427642197112182046464137447388305361046254432142658755320836306187833148747353973033235603765583676232067436943866319531557073999650706180791473866454534152720647403594492921137262032021353948748354611937144026501664619056594416743464367758640316649348995929091243765480816579762114630396344280080106621957584453292349500506698695738748016516449081238268619046372359224956472517220982083404601107972078642597156842268612827314873574319131951190141750290437417709102968602022988630771472424355339489681222377195969308525145957992980824603172650619453296580308353583146440098185027789425923058192009461881902150550418643002985968513101856997064815019991804562581885619134975886351364937948135627044997488842791411332406125703830884672087159123094204638724621004481291322744217084424444465459296324865431574631649096656911755146215022787577887632498615924896717639977754511240465783952204815311939662448241045616820179123263384175273606485548429793216511703090650038475196566994335871901015379847351866378883928939936327747098377555801432073675108572323657883124999285241113534555115036143933104550998721635728363047905567684983759498208933851753822965580247138288704399365576788574129775620768719068854287195328982367363228090492089226438841977204779603682658047354278188144045949994772851928725940985822631985063664922296309177912364813519833378945841365676320197633019891046250130193314025914165323445290965275976333063301659174759636698017458612806064211210518824514755761643574689343382355168773263880058511023391072371804692605733284528319068408964578838615412659287189711553147696533325499624398469741987634669639010350014898928690425436650344414213137392477529387618194844965258191569535076963591195833925183871960588415376991652746677503047964279741216929780015522960743292819941886721575613356398389896843820521947884255489270221724256377926144713085795677430554335560522451405384017572440889605254396915405682190199313399620793676746111522646161786755198133139923069249311134585626434408861930756909070993030579090304242777104626269906118342610747414948236844825719523529630090919507548784768901763822775459391066104809040767727903173083359406646039504101231544929609657544549708276230277091648711752607626160299075557030081046377235031195623746202394100585185840458711821896182364604293582106277073317862443016544857517271657959483251654902095948424880693753909708276992200963984099660864703206118174522371475508304361994529399959013870549452522458536570761322883791743672264752669935719299092731041719296695228735593132080473957201948871059505700103525571851463177593422148776894766323077414663424955672944281517375171450402295740738767739316791390746613733205792338766533819468855268480710735863151512793387279162577424714316729947322601782882235064750374260731562749598960367919038458722543138844079592836865041090771795627455929671207597583571482563352650408331067894953812438456176741191367167767981547241163313704623132853663201724051891157222948362523867507308564314339628882982235122096660555876977378797304512812091057825799070648039066185395677213706490739421438212721317092780708402104274141748159279354596774819012309360256752686830295335662942506166274868384716991503879990339979163305575278572669690669984670225044651613553014313269429277979117399884777898099158727869387580628559833842263840223784343197758110261462822124473975160394584876977387423261914248726369321060847549945546311769595673605342770784264339940170658288654806070259991924267848222329422352070479009961247972313759042406279608040789264329858384861080649934002140361567774801917379963668814542683529505106017328114911336173706346128379404677719572361410647256334726808274543739270381716521293545456186938341943109769918014469480016912958219719296541961185156270459997835916431678699027267703697800849389001024731587905710172428040981287397786921902065875369787061438868062843616029433788670963154280826430700497819931863754343357430805420177446986869038386749679841147240478968138361624880343360423959649926460694843983093977856486544182940935534958174215986757265359580406523342760213264381160475176626355761243766805968390542904511105557438564628666339168643990761807646480913704227000888795220220072047764261576024174331001789219299417603435526349212332444365991666910891062168744832199057809370127022399402805497320403746154568217363106789833692985709378829680687108450028616876255907046828373432484392443994268018304799647875186691488737167243383360389211559414355770615214015471744808619553353202851297199901173069067172698688745602323199825332441740590209474576775218205165592233213301309683134680674441652954401998616295287889742289667678028724969404420266453205230168847809004333992478460348214744611160011765658778349538762723814637395241650100486056615816983879654122283604008135558574744125160950796544977825413267321366844219539547500201900644155646090418057336467282369063304663350617920563737967996907639813900625800849046493688530786485204037430630476936613226754652963354150670885695622376589591612137054339693530940202572445278472117594552478643267262578685006250184482733944069597745474378631834531959178525556096045603040958688874771488527990758002450827474478890785984596691934973793794423296515674351915024635116719453001413062552402855668888697004813829126143009235526094495108052718555664275411444381390209152014140780856444933951429069524280765304241401127299769202997039023088951449562779262071250813723196746002397361909891007649896048741507755250716095176355875353177329332491082956997447869784394102204576983534966149879356881987606074280750702228280047156019253117414905971295733601763592498980071670885889308325195153762446026406959032864910220763338660674113233237502036817070371493488837235632040377195263256128295084497176875601589485275181376722446028424158088995149166030933207320509343574141513958207440770808570449971269844981793347665620553287950213456935849457470476966236037229023175235202058687326334929342992483961001725056762880961500392431621508537095872029706665589244104803854918487987873178475964293136941102029562437066486874351871298596600026261836580966283957509001941439185059012281709716735374193086016513747817172098478110646859252392539166386630380785100748419392367995125398555788641765109169879771652079521191806007628975959960566103674434513511235163106322737143932560982480243851157453656875555818025747080976552016228642886594113795806827776866324122827248468261525798665973267907524798882245697977908400314295507438335863868337678102258036638649466929452433144071170494873395563165926025601062699645417185163557383823445697912374519119731531334910672023875866041143250075163870468887550496561754753098340908379714089137007978707407244394371982157527677623878753772810476840296622394026923197852219591735882591730411413333656806552451042557706689277673010661543124123105599010201940169398988227828056126133569309606027299828919548347078843046713809699163232183371486666201761178258121011190872640539904502498760797249837706308281050054665203941666870337885410873227167757647152633380801521269596324587492288504884919596359111516426122415994238138758471002798148515357493188146164197475659675708716591503786283276101836466876409703499579297167410360365763351500722411695500350770408488196951283431185162989960117771183112372019205991280376313964591970134661715139040667925211886077048353743857883080196909978481319531304538789762456770007392370075918310820606748322022487773490190321613101186331172007078377711651032677679806381108314311228669310122202072167085314922609540258902787940733152282001532585703886383291141499823765097636266552989440885142628111384050858980403111488432688021989638465858616563602544784522783913695414637173785108519888705944643985398551748043827984148001876498864126854341794324192072364178105589943755976088283160863692040678348712517538879220947070410418644510638980117044994180750389072871462477452626482314249830412388223106415697773793060821277530761468588156217219761719150247601008727798235424795886990460825489959658910542507238960821121514664869489586286028909227043450628011028895552884881479530092535303864143200062650041359737358843740630755469026987810277879710437040712858396557036083785962901540773938431225650139655820777240502593369500979835809518449330248551336245639182553449111627257460886300419614070898967947621817875372586294925052802590144981397010416217841255752692532926920009572657413638853714998023857280063079248964831213844782230716532353661318044480738320748980122799056583299190795140880989050905747949438853672750530234610755052418367512581332836762336103302484833449209904027112930579168173560748601027625977685441675956393709784937265220942289912002788608724172485259211314414176610804699873864924766470109131010329998594194693761028962995832754109660340073593202558134770270854712918590441201815282888601049231567313012718994676158346078773431746721714612915426374571239702297141884744147223111714590442490638322432489656201677800915721741109288196115409808272552478499539916870083393419971048452414583195490867812606894392282175802601891366114696830958473505028054347933749544349425544334478306602269356379795347224237465915033405747314229747371937797389954856101268459584432718421469542110477301883231839817439253978406093683674594591850443767762784708314676072906223399803496911645743984486845991173806916022344857837805174856196250567379571014307016556247817527558178837037035114039926261813516099552043839234956905931351803184456916265961223702573904510515333138745027897807112178032187353436128539668418269440749008873798923974319459295605211882246336505116916554315026625024438247430015928230510595525536222129375120156431694284454244453599832516954752654167122120359350837079885712005563293134487779128062312537009578535570529923300490946402000599826075764639337211395740612825149768614535875314100575558749148239182082380398303174446565838149725733161153004849628022918214195636941933816593619143146356295896866150072760675520368704033425581134383002183998157759920602456808933756770688984580844918477984630366169172577909642396935365431937429440237039803432858406246260009483425174719048933367100184297109269213827576445671713611779537882062079024775156464170077260943231503242161080459705599546817003210612469300480948076712215690004660940170395640800195671373586288108425050826188123497320622722147029915696029042703497795711054741594153393062625688300082849647148140151605652086635377070435467869796020082450167684049775533219453853561595858377474722275430860130557576619577062732677826965269385182724754493081449574718383634384454556032553339545577127608957842895746849769547659041434648201617462487520337100077947738481812904030036838481054235838803492609252366047397939172000620377666931914749800681462003023692629588502439728201449082824664480023599736794028019965796157311253173112601466270708095313764034316787252462065962519406651499508670669807272290433221922172942515502550566379565759329462621308905738359999295826754000047084234354832054733170956905460861430063646546033299080906408777721935680250502406777926732092572330150333491548045355928793439433099360537281886980642479118498071924297805131187873842511425168251272478980204011332661927432632321949689414784856104086534132331469251023296714059712064190842125335335794057807745779441036499868516066349079993549772703865245299135807588903224189213429949027694440043499607594197731678671628837606382788060364052612246863331173912774279208455258271629190444797289824177464578407232454095686152512388218424618326949404390734479610053530364886741489204919464572001480651435289057392148443465430408218116183234730007349879419779452021108184243007128216028136421223630363753897800046981399957213645012006698156922983299161219121468344353716951663774534882627041861824171997565977823718329309329708641412578332272389886608424756059786105434113709194423196760023412370899392163255684295884674771952976379317740492840206258321324569541436430480450776003804197087395404112645882553582007478642725926189219868937584528321536337712043030550549884836366869173954681596204204364081543765999862492756325251209632394494190383346471576381666506715602929853287919621176675714058142887739841318684058268394782747531305890705203040873807013352187273699031373109530202060342589875764064890427654761934856437903075782671194404940806765140250992352888740180418349441767583562031826275304120008537130075256420657736990756005209786714707058695173593719530881511549086651844945324549565482545032173987120055507506309872619637732476859350843985691524614609063848980802377422685973641209088949226555960629334959561117077657955321401098648268566601905985459086733747279018909028692656111277856582468180753592608721414989919092135185544237695303863662536035516877227939911538823643400832009091727566999205170135270435132463641230330954190359998792111396944572694842210171118686622642288320954187418815162906874521445492020995889952028637408096289037471090295169708366100718974334409016098492214328463054384603253462166820241745726490462115345808340662100556724261696287712507493022141216768315676405769265788353856678715489724205724654357811961039477249021990488391822384153293423748541452537562843643941397595073499752380815849453199902452947762222317832507103336757393723780435857206309366325123621374650891478597736210135475671815272733760498314784516930835683690824287516147674951764307434966986904923134043478679471411179448320588000460974412667911707325753131054233461153597239112414230857713263375977082338869725511610113762267877753324088384387809187834745037280533232415089560473119040291078181709006211535552359268240812653311648839817355637363739237922182446280896521765597944706393876226023437572822182207354379481995220864175323210743944496695784444152187731901923258514974109836301107552376219933543376797555874805598683788934288562653750002171301809036554412672080291390603225028515795934032899360421811801427871959380188829478468035652012862727439890690198189714327298808549036679139835320974173812685832491111922099216326802107871436764113260241460258500270158515178457222611473907968966629985599833093063222645589909957788125249064822614453872762384679175753962651239013151215378854832808565736126549212347350763008937374356682945322849441609091200919278792615620627144298719804353235299544149116042268274082192882286963245025070048668485154751175929007497201301719412076870566231507834159220531646798459042403453547380166129335544626141570587976785638881150828472384097010193222777178008083566316860097466873555783377517506258938586628418799805668752724549840446812796320312087917751898280170959057933085869338003284953824570832021458712329561412045395127270648793168521956169936978420764841532502235044063293926369665694514724187406274266639380443501287879392231127720181659678127886136564034000431592644711251198641045957342204269741621848118049385162342420221576197857208318394122784776537230909926606689884569745509481533118312530735837464250528869266980052163587248264493460703686338135779762381629465931629718108075809184754320068770696357122940645010381224770965596382900024462632659164059509746910699119541044718254966880597014050818078648672007260971040461085980135332327780166116890220775631883361853512183221294479978457679334086728291556231074621715239863111059918954296625092996409002892854418748338823509461164706786265512963213938312063650415672582404945103871314487816578783567811997586139225049295801184397828727718304783726247104684635167408627230543264536816052797022387552971652384514791103693497448597281547393714117962787000046255434507930558394867731804292461582127313527775541098278150702844616106619088799384973062044691643419450142233581061784441056944410800181554534061726211786096012909528106927134372458078385451456787261357106807955727113829658684093833968683118248387363759432279976994749542427787342340945799122513543486373612455057776087605655126557148849457582845032222089696028009610450753800728991679077666810738560877209149449014164160353259009090696813529546329921191239079544305983077758648665416332130933549402657004622146720325067884579998444833858376321979477137840674267588302920206462457346038005097057681841148816244033837746562404350230602105892129801831809377837334275948661298294640987721308269646048623067399583808060763547166404569893430207418351429817895104923787006759173202456440297073286077717173789803822868386629531747373086204719866669302658528595910976359740256492714275093771962948602298000669821299795471399822158338959443629795473546361750296557307028594070686526796413923998184392137986738194084777964128182613793073288828873668839373735667325022542945819156617407878559185278359765556211425112161265964033843406731722136100689953112340288282884756038844783971268200387725309560453288938015409271553306385076630966880379723152691415294301377522587299604599592765737356136036879855948302166245420643274980882368806788489261670597896052586834511733635645189742841251504156093493834207975033411714902166874551029603028408626286036600414554247937824740137785526383478136259000603989061442907656785420249188940316025936082509798237705647180661177606992363593257515140404921316018552577093582614365605085296217010489271818889452917057799599996060819863748153107584891161040760943363713336492974357659011949904405706812295232244914953680101266392015304937948769233060719709566404330818957329396697224596123995302686952889964668615221937088347591128775179894430045675317430231964882714763732869175239651689054915225104927218357586806965683914381661924618767769035436263389643131925425694405455455312327635849244974839515968875743400213626405967790549418144381185497903063713899083763113149497922954851855165947741794580941561186441877798337119344933233667671139767831757413605338459708661601543727999261505808172254959964640630666714305910040183074142007321390297211200922168670441916109303981072280280244116539755633402131301158523038459551711546070622577443563978637202794669788381108753875041756750673560113711609458553193050870355481912080996367597391104795615559218021208641340657232932889825984449836787992947574814103784668481280951091077952460220908156303379253708421350218462139052593407524717206061920491191935573343755544910260042569626075444543368362953019862760223878376880249027581832608419681709544977514509926691310177049137378245442480681877008196600759134768139704810249506404517600068633610921583104070299394243522719086236966477609525878035292247358894122081230800310608328796045693521027747850463499839407852413984777537608571070945423513514243483623106516742624722787720977408857413320563514371881246735714570558730353398050421484345501133054744181098415037909453688787846338817763271655595067468352960833465799725864011432461451433816851733714988438433124969197343039110902723720107200885637603249711132138311795910428334588156202450682837436775352421135383558565929388229103718871334914238067829118187244497444843030522606327295638333544790725760995502637064998742337035556415757010419262718717843436880895452322243667014954916474923513141910015862175872795665796331841741219792273526738470818632475612806400256731466236055412639552346180115716692760585541306854249490948646151209515188778305273128602059818396202552803973739943062747042240655568802842391349622941322672503102845821530923028269417750040966532775517586214489675706184470908319323766885704081093909524263953119480734680017437451934734915103593365217757891862374300110686003524694879378572745404893881093535008073831109064234027584749795786681459005196711147092930613563999236375362523875609473562271531889325714534694301691459305311994310548681087809270996695867412698864670268604028988208542974290172981822474632558950551053526012003069326308059135265486914685674933213534965347784313086362670907561556543271656791760471954866328223676651388667050743718630961657999055305528028724175344207341435443265955132631998925380460640816494849399648474584801008802598911826758751644361722635661160669679558701550275618350240147959016553596609756359765583021046029248793082425849034787037555556410214537975247250631425272350036497276085365743349515126280617157039368109775681283792848713921925412244896153737474990610219111408054721286605664196714396069307975670660987323840543060194387704699651626207429906291688788258591212665805471837510763952885843407900746473497741157725216129712445607596161869800743421685281535652567528350740427940677591820831983645995545728200161348251389223181900201308834379996012612000229573467465933634552530788207562857516122936280448513931894714087515886573905647968009482686299858962981669441003708701172834354145093301432926422711558373095028191039862168640883476112158303821755542364802522637105293065627826611418435341685321247599142570618751078684612713735172944458321445185218196727388369425329289673820383262724243740954653959640245972904187893266267180327476251543687694274979940930718107833204302519996384937989256282174642859048057311561553698223542665749937748258489004522502831125223135721833712387617328284677100014688135054541193590174886951774629212820277790262857104337748339291192295280844583691458219410999075721009182538731077181815178418267475044497612005109830868899789648783247561090066998047459895913325787700127136324009053365824354615076809135615348485107384158313734410379153655577139560474011765661179503630397354682919256920474105077662687159407564129765471844087027040956866319234084322524767203368831556401918450039781482577009059602998331093521695642051395600315225182310968093592168937119679847450573316352067370286138856577544385884794045755137141825551686236848277938503856616846795180969421145121148519750908055036944404914772992526927266218904930755408586105234889523739470424817426715680501347360763216346004056486549492745936855099572842372065089672453566032072183983429912030430826542226453182881418205926458029375464932660330136546729216815313494761411930910074809593492729956819586411800094672462972845456198981198852126565414338490926210673853933155051793168017112570336012409716255116020085664338521685759542246260603832726016720063091854633832385617018041755059994572980917699035976002589317556559324786753015368064460360100693213173306381650979324018232622045032547787491158283524493684770929871588222706581725585415554312956219669125306520147839455168059073359088322773927369403612456687106433401546983367720606891097305251994986467685562873219912571439256608963544523396611171375481520712461336904154092562472935934174607025081599973966196148299413749502464208998151523686240065786814456162148968237685647852007598058833726181206373336777564556866717920587017785216125148890850579658710662720149371288761911478562811208556511037824382250335514577153849200640006680879469179491628747961670047076759779719848573620409612691303025047517817287080167047646370027103725236643045214834252168466658305679858388129098447253031688285716356179573168709108359225093960041271000099232050944000241831642344455414415237412386220290433498484186476920142473377342359201992963205792136789123359274851308176733765159028697628121784335767091670197519967243906041630733595815655805911970459292535933354193124569179092166291791374714696062804340707888370611485065768826208258453019449635525162997716655951050030488298807599475737154710291772320080280449429988027517988966054474830427763063355908742737740517862555533330466333808254366913646210665437269210842432712357234458731879596863357920471243860772398605987826052989806134668005630037073585349356509587972979064506544504991460764263204424398967762438124902730782327910843426142334535283864809647346545165209893155094850872515217732037288457158650456664848816631482926237232844688260492707439932385575385261018844282824485400367445546730029562576485407342066368600368343277010951462682423947170472479764706160734723663539125442832626173087161411896810043965787532267021180308409684612957717643142371020514063700272467808704879829847230235528710554049625801076129944524267342484223454903926309972332107187898991643985251622501569563435150997701823855142025980400440785369202857938042318289845390808914869308774712338223438772702796902982949428795667119037996053383101897472382476443101921091987853638220322186124375623815096577900392541112824618683374752286824390800733122553903582434813264362843077676253847019711361935128166666415042607233588894940767539244118253076379375733868598557290086198076271373320524702339774728656234908813468374578478506683311614428844285702745218524901972027482694230773771383669573786929976546484648192213887569275725375533050348264289580687291733358767914359355363565797363501275884865836529917137492843287185224644507936973286293029051409683716986552885697581995016127170784106263195678040292308771976302922428573838841453389480697923351887896943440001032522940333179032621174084663469118059440628322462789943582852115419073985670913322703832513925191889813967000913408511674522643418002922363005099159471428667858249578232805150367822441396671796336117375744752355132585974561266090612261417359955960055156707785993863379501319377316510384366178440506882153566899655298797787117968976991881450156557055786922912808712207058177742976182989776737498354185558610201914984792689329050356653403912114072361205935558477334538474463079849120659914614261247639989213770271675410781381328700011637128444222257987256286486822099652654864256172849353917738931625601358606513577466537911709585246724971763060302832960460073874594846420307504174214639196679887675355265081074912326405951345463559954280015180536048703231541764069616843507565142975537413531399388687026864002898960156612282237110527681414924107054726829885379382909716796732151975068306054115842673927110072964558236119794701391709997919683202270445258527231540745657251922479333098940104887172771854951065011727479155460296800547280490716516509323755518391271806430929260026102325933340420742979881094133027386019186801237693407796217907137858160459072172431550331989972746113320304748131127553629456700543059404303665498582127593302645037225636804717220038949477323800489412505474299050218998645837659251886257338983316264331737790283125941706895082139482872858582544685213881880327531155420594984208281309585862714991725479417872471860369007081255110174055041877222212401214417331163312905910801709832898958665034193509651150438309749082033069158584865007303603168147082564886479800674372119923473280687977209668448605095325186209475232341031334951280741601286723055185287370631986478844800337237685750046133585592694336535851603126363867501357360442017431449027512430740383884509123473194797761381951026433381248792910027182803872302546096939958845602036382552283387288927156424444907349694444585765420043960351737302486597315439257876942572124165851829909984717610887681657087444395846419214211859436816806478849906061652887445744996525155259050803877146656863056651271124236811218167772570469354605474060878046065274825312842948301228972905337654627122555041393432057593103977536303771370544424907516379621246560838027643662195314892811923608699290982987038439313500369728029488045958878870380832032710020378170866783922339545955264063669374729100802703826217507566842573331149570598713388494826546590733331312236968250644153218099155054496980756272695774637084359995568798508072425197205964580881674531720650462937348109874659779846412836751932044645856439998330374625232433043385934107764274506826086424881663607020138673166441400751298366785884290119256435094849575153962275154336924410980734325618596277439486819016314205917775955824639976966886006960144808177596026896881830029109149921343113653185711777101537134668281490059466700963722535786476749619053282738739947945879409962816129756104106224574056055825689344732282538842206779823865612711093890653984237914708075077293007017086046457683801799439501295566200517900948867598331908013283982962769890792473567853811956713574562996952860070116255395862783030805701972792004430705426731522315806479809195046272058758490727928388992185886646175054540454566050434436897812095327435790153705333399001140757949783962380167928451534467606189094176192220776333055205457688068830288910802689397470662464056889710955137111530702574839598510804301161933524190400660028972868339372888543080454567604034761192767081888694898509347483678603351950857300032644497693836882235346848129889627764744220281195374314285219966052706200653447663378502871960696741770222147477720708527376498211802097479898737757287964481392476234556722641893298783601341312905638235579167841561258318036823946116736959790350905748764626375300290616615606914113038373780729527342159230548603400996217415855959827655992510690737955761097221663000980791880999689050054754966455755172609674116259041174575951786295472896192160686515356522254208245592464226345248423719588174012621162502209872139177014295951100400247262523513607989563919012597573373328506278449493388525235903362701752865553767115143094851618843273578285136160052369717381515766736677236178620755468825618290067681783341313337282507517720598826063194184871513971284966073793552118832462443882996478618464428992818395473349668051424512369325520840494103489082109448402672443932659653155519151065741652976375034748211265255508331975499229585373570702691843489000809342550218671410937685643002005496403518454422632656482711387467748692261531345387132811578124994452478770150025332821277566344377367437211663603982157711002915963481109757231779190375260444181060590517931731546100671781216044387016669623192743207495617076575162962382829218078581119746877847151573155527456923082221503275145497189485787643462017738935753110240010504386004295535677084247561947443997165878401641518442487455085588640885338750474277025959781492307580051036326228326687486224608760088218681432088877194452043342087091123836168639402769804397793566420841625400613833819835822561806117693369987162405726993972512171635218134398059636908660723360071318039528266918893050401071962495726543771320234661629050981037046117422699224580033105752892520575862777569477918265837781670352853977437335425297543691780134717368896847742498109293431556832337930892416884673463771335063396249124351654173346140950067537388843878585524613069718456730161373506595894781939443406344722425124143505401985297199096229895738895107237045092761252194649232245858090838177745650502792708200100448943132365810763651128965009059883244365081689016804873282237482850305996478758762122487583424978353871547377224881875730614544387452112892929016157476569693205592460255415348820082942709333103897990334302641954967684265702980715841768327897763523917694346400353342517120382386565143898543201557678308064002688269374035025825092826152900526534468809060191041300822229036644713324627533167722412650540250966599324276308936797598674079502999783085164886716280485293863678432470853187540996617395196903081659822431664848974886444213170033587781138909791107897016752124050112403782006959019801982633339447392454281884391964156336109789780548757201048794351858641489737334219138755951527904804184722398584669640226378768528841266322724500710948530996111002130775365474649297461154839202957454550224378608311877688947628312503783153374034754528640213594776518744380672319614863601662303003232783801485015618422942026635537955779628453454230022274375506168099479190138101537674250336977524935119930679895496649044946862978733841847649649599526973259012105669973741009465327083205855603306236945447086266595659455394005946900361508994006800217343056205898217684838844856664464532433143963033738524000805071025753718642230644684631932298882844764188052444305321977569121338024805361984817858586319571496344064077560165792613760851430276479489479111908644752559566520091893113325706485228168256239177088974690504454938547778202158537864285923813263806096278737721729319309759162463337198983090385045464369017955860995100042995084698955238752871371439528094916321840793263143608375379240896794694469956287028099037564606843885982830193348673729354449296429698859329917669409787123609567905391892944016799510622686788401746205631918004930808322740083018428945229396475303429583316830857962894027898549601731136498118363593051599310158768782094016139681014637662980815675935036476078910859420586525309793919643593755531915790761539104913098705398844854681664184719846377849856169909690996397233578721796899079516164787940516948752148160528656357841006413640313362169952319484685569607526932359641292109680788657502853991800274152943118190022736321986786543162857582246338696871406006817945970642229147637544039760896936778406430806598905657132270222627111842040937771252631613341553636114143460408622238182447783597529650275812667720751676896444512161491302726624853789196106960386371135365333157288728477405699414970400703784362578528613879022974951791928742531189620798881196652414238843848902469384874417316339869313527084450247409500114977111182875107949471463037048548576928176083653933786368082149062548069577446939841133442456636633755883060602710391467733581361341032074092805090681830269867111109627475836469410863963089378074158081095995235795372016298500629372898152367593698961829547209643385658124877457081339709260321569015746401598061789405744249161122495799123056208266210863994361648622410213381593198268019164276681981026820540327640255864942878175840861711338166762516140307739870258873897656069860823647333115434378805871401351922749202691942828803444783004284352156674835621490866778241914494781418897756549404262675481351048182878476451302990257500617394711605287664257846309126693071757446091039793001655678355680860079459657995032370654068856349347502574674104358905144636201832306825310785965156996597333694866582375095346013867573508557066286159600769710466410595578098753066219654110228875558112295839938017734527868455178039232712774563253574029253836619328291876051733274391035326197865561541790324741166882857393103709954111760466356395869495270356750977528216140724020190613272089704865191875335540873561474968791875508344767426249083556254287186999651321834525357336309474277732891545785750836644188368157351811881105947963704099328096126520406858580218240067747665900642925837755806147081294667883072434157374512581753324172841086260214244028520275633478538196708560305477952568609851401031423953016072988481084570644483852114079985037752886070315051786986568673019173426890319215712952756092245255598510066053008659824248383547665058534343074157217491003099651947750172357242259764352623789203228946216747516072233615942351890469538861878645712705910983128308848231503693782731321933418643002597718443216036861689475165160415453265070174624123912084406297924795581212488531276566053315581452944821369527036350068479523065271543609427579366451768033874024609655642186809075654977371490421982481352898943904350982522767643975176564726304975291131640988801676167035132159050619109457660687765562673843041193687921233450190782698314477007743300719006023480355974954331318918466566200059077367460687317827039195968749051234187167857526916239310802234544254513517676505299977634757295058104595508497390569381318246516266623728093731386118999340466077478815818332430356735522683658554479798762826351393198036194803631983588554487234694145181394865018217828037006718214076100752536535402716363162710923727635279414788467802418094441815850201343543857113619955447464848814416601270219068423426248592240557405792727906669061621691637979486011513941898270235709102041492464842508714194298108901917720834167243284188193533865402585227997124485145793711159763551888765963234733944904298931667016320543292868835466132340575846826267515689064224049063292897923865354715857885036545338737003533969678154575679541992456316571207156016499534678581050677103230071241540603534439301061143194736438889193333977067594709990839458530198840782674094829924223634252985781866941087050366834340982237242321287127791062972121060895234655849119960633512397518291763223759809032922461695349049404896582491901275842652493677727314529808426567883978309669571396919733665142414582069274139643397335391233000638304814361768450189279919805717687681072987849575307926237575778769124158267794361708265712107468573037217991831424982426291298858823392761316145636582569742256984693383708888592598531595585828635779827637879719932021491601747919466062281453918131827107377493207223886844276966342227002371955980810765041529249448951149762685103248476832415833131960719562150236793526113796490902047079198937866294808546515763962800668096048138301341529367197360692982613250334935159931362796709311662571423340492808753878710784043802915905808393278351676619111833109625881151151641727291770150807958195036823188483176460942402547602756122133003638600493223711621481950701651247014081634371549320887118406275544361143755654130042505584863995674113530727758719821261445692127487195553178263329227838398512363418997930922799444676119807232687777454564011708811985003003800500808163326033427351883286149636283759868114863033900609903733332155588089834264802036233146510499340023703198839492551803743054172119802812654918751700931821943928511355438090417782063617710969484299200705483969782645555333998788663000299503703510997088985884171407812963694109392767231594229751495372351252359434481458760353669025816397275785241091063242169650313340887332496279488240824547634012796804849782354166791947403939355470853588525655271826155610416226726193319669222709134541540908816239112199905837972778291568179137006236803236831371214520405761182497611189573748214336054453840956847138102672924530614661460823669529468049544842502762794257081593403285652548469072512671873661796802478232756095901190507078039881410584667340287619346612638577984305567647720691111843814102615188723654302492368258081233869283836327978178260386625995770575067510851784239433806338444529854627670195168593969131132480188231566238326265687187948558586002056468646415356253528569294135115085600298261934961948652580222159388722178165277471586087145643768391208883045971842640012152478549840106385717582577839709581673215030368881240950163310698461644446573662018567452881211890316198843589003659785416051987938449337189247520621185172949986910309281017231178123281338854484996217359510329288980283987739663977005317554834746190996633908456831225442737465093176182166911493306586273680431520903816132001359647514516410862012058119057430158851783099421762354128987676660091892767072010823285756344070393153913521598504393204646087874910600631948470574095481750448187481314129393153683034830042337133514029184029189670648515703098509117833426298805792000791053597131466689748388203317992331103893121006162862483779869525382275123992281642217078020583524543423293006429127781972777124749548000001542293149637779236683319757308587522346404180790329925968051930634560071202341389013138726178488667342448534731409138158041918841878628112403847055142171390560883777869372074131151824363333628976398782756704962288607482827738503240891771485768629939774619009157089866494360634866947049423908007503694662379855538384971165429969355549670385333844084144505144306494775912145427883664015899995210202683454553671664079142578836831177298805398799955495394026078021341086488248843570895217255156916732066000072665139797905128951114564556102760823792656675813048530995515399591428083320114553185666338274766582544695154575178365012687789772964621023586290084301327924858113086465836962858247098981935949274956792524021916659801890750016038944805171494102341459076778694916567205601478011589733914080459020533344519992821882630555227276240648706774309511240321906683617161842025102430247827035534407297261518959320800490188634489556537662779495333465827695613078866264321302019122466726795466569005393006753953666100085577882792721386385011115706709786533126556261007036833618132239372152995375659702241809507485516119628312479508514254704464229631284315527526002937506093157381456154827077512856590658019926230703960915030698627825781904859575842092110549604829509894123714798115006188182676007323028485479337571748020232080540613758467007556378304862082608294777531510970817379469620337886699580991406654252690689071857069840327053340199997903677371507629138407859147223920403685193074200214299136641900051226807302405158331768557991767247349877470447683617762548255926011971947441142177537898948065137222072175716953565426748708069249000002994007360502504381498243839751486970475265525209980536572913219302272686749924008018018254324129652466554068042996383715353812741646440660568708539561844655903654289779746405702943879011260252667963359357576249012700571291090066033688884261074036406817880700696718246710663621622522580814158542026792052073424378537734405712930162523044794399659563378796777612593943394037079633320578601944530387669387163988928785673669217411888443533186822262964745786956110363857819782094114920938888962067149493652057355876860910302123331289407920766828124729488545892045237090082636867704162910800293541587224998358869962070357044848805228817427986909243942449276134152818187141424114432090108867812845506201702871522781058112457572013597610329618837434638954452405555707364296875513149680818115314576465169692276282892051918061916861052313207543184597800573060505478640297362679523213763280870294063172226593306912182461887558207180374716542459198839618293831248637023083695356025981124760945602008672192446412086796104628985829144806503072808901379586046892622529165297701836406852206672919437070574295577337205489041924019721522556688995029941725263226914749972943619245194550523309972009255940334881439803229596754587803307191578298900622412292377620467062588476766761642294297030450253549384243759546653522296817859619260964800948173111246620827508365281545070625782772314776352491409708009019219460490807679943179002153376394486080884876873800921634228119419761337541361173666051081678751577020940057291187085624518289618505723157378788280907859831392993882278139580106781707800282366936306482668840440201387148610617393174409259339032935987005772862877259485998052909179923494552008056357072750230303804596807710342629907738433753704295168728857394871360988880604623185473329465589740689036333411388525179059629579817053365269539034023832146162539082408930213812165222096594858885306031287469990071112025495413953735380639279785011796579726198821737486034247416297767386745658722562006792287536323974045730684439789896186962384612720914910672425346377028099123340580967965508239451518569372836392214999502321595752375370773956539608786886282875115705218925845149913225143743337568326701290434644529496137494519079090302411517898079275964444894257129131119574283550318985891288663402919060945334037104251967495622127383633755699908982094485528316433426433466236619989999805681126229365166602615599369568831180894680843258088228452174477579763837376238376830874433550183384541833660594702625521859575008500023704680492222306358662617477078149292322635849468913929437131082983965447470963136592199771853753317579858296102241839513242693548982574558267307279502378841598166967915007411786769830207913509120618322334027134171506799526020656577610527498213056079861070428459698807977761113044084952982856385368184619898715335195181966732159830720893728509839899153587480489235782203679530228902095676180702141257679918147184955695576483782393960019210831695800010764869426415856671013930796927578161797264424076087132113772743864601287433039297516546156375145849026739763935118262463860750245605407307727994332640402293170060449127767830395122730730199723267311948384115310048914129284588101838088163868810351275767612588436298641995340195296165834656670575724998514304759852332458399051759370524315009755314977932553328830731109125605970251033521799782064832701669708800854348880230513248619920943242540686070004954160432823219402789673221859575718788052111944866558368744440991001406105388571730640726623566483344088751657823715825756537332443879223011752172115843111342477212991567560710617320158257469696640876748353373277259825714670060178300665923081756537394781349415806483765660689912796892522726203404976595923985265813284400391642848996550023653416448034924373938316267231295340896722056865736762586056845955543381461922089060370981232889570666370160563591819139591441095702552416728920212276040906694257174197012244189276122548348095028489604536466721002462712205946719034269563686311108828684348285497708496406018104387506442083888441617637927047001350041391525706067746597325217568904230455482090504293535851578545531160527740013492114996943766739396632444155586909506299611222692817082337408849580416185045181068791508181661054900705472944202085710340753003258540598014093995204096358530307333868154861843924719301495614154727392200718881528529337299293479960520292822677436350209324559198860561424471656043144100216973559427447941701491589738774135423073331545513780249619348227218543486902743957074249671332740648505430483400631983994536437609220707115438872370880858119492468894339262983217649471468714868735063669607968321038202634051490751574813663386022642218647033269667294117507190442879979385802884816926465746520206393783994101679119051878343538282166406737718702711895408028224237828712167617966464096469615795315400582585425760790499562212929372687356480459209251996462937069824226091324298400854485902342023062469021248334949582556557724884573763887684673788054806781524102002689660038950313486267110789106775577269089487164750256879794030721461642814712668501778679122958640002885017231042558926214510415848582014620821966574138695908285310132309601136339128200623680436562719489576029860118773251816618163920401977632079454423797595073028262226052976477091598406012058133430796020694416628434659740637690141206888448366027138827336701502612743140094411715907956244264168366388252217861321963785917990997174167264501162472724483198882053133768123462864679236229158936722000993827660377708221240268885128921421988098767368004625952038841187034568086107462184755760165120098373291129921547111860979781371599335953734443876406417368016436321988003782519442514409639728797143293459699452367983843381377818756196547274357587784486157512281078889052077741710129279789307818211315480367629403354831148717242918688888955188718716693633535160245496389991981102678414508341048796297821241157797620425128402029051842427746264567204879867444352082144352297107346626389632710529986655685598519037686666564669191379662708376578135742556439257855190147252929295853622464110564886983834713198112658440300081916273196393492931189055866337168286895989150266172455714562774860862005777886334067056247775918056603319708489839720822673184223079219340898873526572803686665764046115400703722830202778724809408747301037350059471143382022830925671259910348027660784429884722965904566529884545963448571852459131035999144756690133639533836573387793261319126343722400288229605764355879947325366347251665168234577604024416168512333233642625334505310340204864648834726160764818036345388194815371294284425064649325772949945375150059341024193200016198199557567463335446603969938224148946573166342420378601310854131616138260020070067451996730075512546440022421714619705523006080574925498959814873073871844812708833246888392159710293294371287721975519331592183383976165578747387874213733757347730657262445709276450309579181748842821767016124342581674257744551983321504372725374202514064117343148169896578739951389101793117388297252376876711719773915497902338078751883512975455266971546565056997886646829192105145090516317473402257043677686472884911435712599135012317052444458296132556456431147208570225187360072742848757783949249189742799856453268981048835464512526115279242397093624733455766873967900109172071049107135510190959716318984053231673051272996271483099872740643040200250031628528411163332553690477536426134598563267684631635393701032330819076859103578499313073950073179635991133273742593067134595103828645911319901376166460059437296933663582000975133976036189381200145573385721290660693303498274404527175910745822175176906994900751405340573405720779262366027551287755838527450663824053846346666177680739289962597255121987518675145539858408280522191256595862236629749994767740268766701050945768940654176965431774335961443338167782736435750331672100261927175082146009534552067053876412625369803360360810012381280661327553742064679967401070176512405502849222235931556029485926558792300743765530445507244629113057247881405004974107452167835672802488425425576396785815514746682263186484880080127053683145268124498267352591189622435667757465874524428122412578560861026558517242840690676285875505068474035875786385498724077829940559159846854683885391341199232501309768727919547824578400496245392018052670835835357867345635558253376208622206685251005184996985592467254702540596964198649347594052600245144105621136442757321038139880866282616283774821894340545404929558516965584042204257223333674702359252827991776021623547997407397124392733697064375249996297418987646216362717299609795693833767369960826848061065769774306503918384678751684186283491723799561136026819594161186588606014505315709222847970514260033243032536464815023122416125763156496761134806650555934024224132094218442918823400685634416193839869164641038317401304553234353367964755774030170925866027128070633406402045008714457367705170275146206946460356105264076187743996259455892616157164733152535173560507654075521355293125125415943450364196398817610217984822815084362129765227708521695031831225077918288030912205694494831561110747066701381782874404105264664527207340168619500152025098237920930078515144028518423490957023513345892772889120538475357850758901286979735691329655676155069209738525120536205682539795781923301802201829508675868172031052271272905394872823679977085189219194565789158259183835733922012091363417903572167709165818086174897910800935104022315879736828590330763434756489061664728244756988460127567117451276474459896274346111919584260633429649909870320288190656742005987995135293189901958708428210350109183778359437369313885424516154908757886532680593580873608686084704233989202570386574909936115610909808031603896944405853114215293297702107666310774437468367912396566079148225579685376655583149003051114266219067972515729706571180217704202878691339872430224200935685381546343699408716726691495237602930443478005449326241535831869845950879452795559103000714035492907627485934088454633452594160961940782645638701360677126274772165217273108055118534639443569176540198928664993828291719277379238093163572429393833119336837743695001325019143595504498548762451516101320420352409935652161897047475271725170504950209463336003123661669804412792644029380822011047393743465665919395087580146789244762195464443091005932092905929502010766626532731291009618344423026701160182533154550388481408297813864035479106021270903681691612859584939295714993028517564513761471804670728948675314779258804705537149497161127676061919581749619361923561844745848548947738322770862855517480577554327829625979475961765499294079516973742664201507533176600876001812845140533206952962873587715478928481269758071581465328493955747440241580107228751608431133122371201740780626387653323593003224906926205687699473306085119355565596032770544388992948289501341592807646996645796002777806978810387648366355448674895562499559950515183671501495352335808636304988214851733389158942182589310841499365725170324174055811948367770356496083223589073996729237042559344375944552606122783861012319259389145911332075679066701207568121777756871402753781947879212051539699548949670712569808416626590954990504275757881420089827381899536024459961250861416670634941128159243930191250771443665346137099541999211531511467863426107409031910513656093400833459672462628369233309392497683472061195111465794027056278222515119031299997796066369051390896415219124781266336679840432187117473702282883114148041194871742371251800578872938298814586030429487793226159558881056675050587844817899127029687222837446713954617712490951679454215163555845642204313806310698394615286951749627710679199488305582226893414403798172764821138206492770458057002549909449867157507740947237224913623990329756622278634525861009272332949726254726299477547720079677639044289120746779975216368301135429687593832749979993901240036185015593016532854543080680523639400432425824181970827987030796661543170762835106186295510180449066700554925349453445100350556589890683919865477178668362894463978689058060964738289783717711191698441321157570163949658729529923752298844055197482849078610294641807793125881566018333146437525070515533005335226729653721507111326981635812656748860101897387809465985338199864325845329345650298933987141620608238501610162231368269553577654048495568210262766820647092506639867544446668540525295109048178271544923111788932604218582966042492419076875423817470508733833945452655005218535432492519106835609670396901736137205388070321540397265848319073119474391265994229524317150661259342434452368448799736491991311605722244568810885023185645971785457576285064310030726430560941239093706299026201220174245500494613795838994460637454465663993916596927286700995836707164595703998057996002392153217868246983158166565230438218658860190976577732244564291282243839457197722143248811363125106166497726593743921369677717122126055727645409091940507286956970823812950011633341496885436349946300952417625483738976770789495322655945954258696990450289642813086629143059432893676610081473185718304378266263153246089955648517788373652380656291792656190589345990506178476567384680001539552887541958754142156655234972655379500232697665547357441213942918134405381151140056307002746826491264684417123270447605947642295602661025099333514766916247980447262477746810756801344983673437313744690230949386660623387444898672234050903276342321389242523133835038473165667645843028983811460237557696743522449335141164388945280370319208471856380051229398596225215020009061555655586222096110928686295404886261692233174763469893736397120843817043392504534007520488563535285738981447028765598703740213631543196944154737821932631227492297430115299885878592393777718060494121574899108042859299851916938704248929035948524096257572148534320452064552392886385440164146308133300023602341149000880953031710343320958578501650007001133330539886312017810202527742650859507196396925091335039902417707669984358809679109391688336261362661363081461426911693617584328127954469655763381740626973520960277051470907422740493075458386184850073508082545241191648767720906659127733322543191342690669578726580029653624813353582241280586303802169464468596257163750290132275155362727468248538897876515167533258570848570341826342072282977699645736746574833442099432962433478572630375426618617588579064570376375843925206131201402792282403511466801930726396919796102627739686333212118244125420373712274190167710595599467000414143436916721410888336700260800284668466327164034724411292842268688386390246744834516457358049729646798555328662621153302901287724262795622114981123273861829637230493560283990043770503908342790020245593154810562484882684864112396672575139092727343810350895804683910919443006867312495040304632524683288489585693872540727244279158771739461955714055233529597798929154223932746022545916869068044094391010506711981552338876370195100059499332501683806574030241032278363814956200585586043547759444265066799653227626906950482270596302137788922080242237420099633120170544391198220692392394736976476569568214801914296035317245240403729309200032623049471919903284183121804847099145313054145522932005493629065328417355559111870789119673869987175129230087672560865942857064690452079262689826083070685314998830488771453401348028161608553382555740655909367371527405574235218992617748418895452732956566986251344517911717331352290066014212049557082900537059878469409480345031619170931586414498594815341741619817948355850865445073621550312691013631342521818759812798114749635789405600853355703672758900835307925444632365194883656747317803208990111026407654209488179282932488194183090579017057777295321523994709162319422099801358498698628083881689492763051967295553867757245934863703359235392096102436019963743480433740191962027329317363102918521965122990526827525036068039215841743719607179849010193107009815419973581731879467914083824326793120139837595174507296617034621839344164986439014885599115651361166130095561423559625756941523424666952535161599516861449059385339274583109609732338136954686012934843724204211486446079451577935875595906733613004861863263650182104739762294258722081488476240005383616875645447015517575887557620339359856040887585495904921762076763515061950327858385905351739938184763434865589826641637284916875042624350674410718097598708389717553184220472915077589351485968049804682365514629043843447293684076632412399368670844902031697189716596354363018036167996594664912464462441765578975683794749817575734120533432821294970789629727300948036403898841616464082248318398449685874489502349579009447935839662693772622461336428017119684405256937719037975737252807104936449014337428686174220069304130402187247627265778154703554708658803870948659704119319939446528144440956656794942701405438497120202277060461692646878200878283344613801014455491020309282638976275126156712889547186340775521004102694895298925827218041242795233436938963186408443916651761127436825469022647937942510296647230209791137036745384295783577171879717893256777756104529225439047168813908736803690389759683306550172945005112307723410608954701742825126457616823806041944540137397238535171120515287641422150693013127819743028950035443902960132988191039809355725611231743148938163495699894168822613856460583096860750501775710008910300456388562599157928157433817805135905888718363770662659959779444218953249143003700675687124972413850183120853591608123051991887423585201620406854404325283449797978258437899088922446416273293926812436817531530058190927969290900751932830832624938196584439164790762225446281389334493999193289859826344666369469838398450344323708096803157683353474147874948779000364533599491651846792537158557020552626514491039050816148917828257151466900053502391739159341689022584035465298509819155082189233822539617802544528861419707427806626723554634543430213463761143286691289749871318450966168453337680398026643896248313839216256286856119386282442591017054825665122929065055389501318994443623612970829638023226244141604419407408302605847907713312527981234072669702510194566127347175471078765232446333829943919713203164484006579569675724290854038391206724806816685382824140682315592645527585279233535284540183841058422131212668714301043637578406165549947689854513616049921900427089291793887420948857299318889042392178535308606672219501349568562158453570152192782788399444739401024717254383789810813723085331720937332728223551615731792278539389036814654595501014002676701907884392275042899626364586798402259268723661223285465307744976358558296665010365262601763946265625928554437181291903179848327920361092230106670300591397549415120296173684787278293250393422789911882653515698411735797368644301038837355680724644047357127225279997149959600018715294507089581294296948632017282602166862633871425405255919242828381222340357431443076399415973422507040759021125459547766633241056575089123065420178860696837003437791363414675957420341702781612456902030502582980889109597927733344807740565053459796624839495847979006647521626297628137170999784951317793741634143607621783229493415321928694931552534038371626548911646525829449884751314789263220853326008558345878812960622354966090785045769691150444531698340465218146460740166273069819654103150104319071388126857667366770514469408156551319453000159226679346357286895170694508658101359541640234077818371400605738510495855492446046859176116772300376704754982199598049927949736269394032498979588850121464251537793783335662875588984163853222236958365931640786655952805903017183945070084762570524584790342176561278773412225411578246266490374003721339959886937967420566505989490317185931697802590703371836439641014159406801964855810930119107693744558544061878323654427115095165143812176625820574221163756702687077342219796384988844559977038523374305205763106648237942718012953483998952564227386767099009501996378788821289933289585446918191053685647788824798002417553724169816122645469737965274781741022612152669453235548915801548268367404219678131118693499995028715263488566232253377137764954384587341763746882361251320659320357984040390979778238836837267355699207985576492207053521646727122760475372648763380835657357613853010200201039070350000809282176397706722201778742571708305305560897151174347452100091691713852958033636828701186735448839288672822100099660171979878365129015889154762905367189830928757215049340333537587937130370097496676173862849483815992192099885586339530374300812021591076949788890835763131480767776900930460365485971178308627163569448958134560047317042523179863782234541375310963721249466647016603057969145442110690406577655356163631363479838685069839454162529877401774383652421143492038843576265360388937819242183789742379414507774523771849766141280963797054546478173211794835783153253768137580090874529159032366899730203750511226896931262480567926133133033718724987458926205873739077074939528150711618639723000178545512417686484773354950930283585785726037897247493246207291757496876484989391394308155868184771618845352014144573587876148221833596400826345160103256157819504435105048384935421313392384846610245268661289749299062163966832209508622803481736955020834357480776190369828095533200494644421187801645230762797942213978290382181932540855742344495495643510072528150568044849356691305445588621810881244742806486559648335564900281058688903612302882537108747628256077263292244919756650245123019961827802832233367120151873116660161255931874309157946581778828341342130414843312542471627339257856905109408088968950803863944817036060958195138376436574344460280598489413994582978602623093822190300338874543249676561180540802246143210458592764066968432983617708599231629520804732477167188263598898065388165172730655607688814258531932674728973837914982388464482805777579882225258808454409145895029863679098096936269760813175022460616534507343031862957085871296696593801472997058710960376438946671822446707981198413294738634293276625162213035175668306351270839214389887643943005554776619188419296513262472239570628799625809830721914439671848635003989090714489373607107199427890642697484958491114880554714923440034162408909274955021357255826480368235684139922818361587825645884151886266606529512167817528894216930564757058484329424991154003978234357233486650614589711948684233481613957988686016457328600069368592550089235176278839905523337856123098702445566015390917330526712280529933714138955276431560259271325590526620172098199943633243310202897651256728886548086108370377107883998946063052059848646895909396219252751941614274304854455137371024041860757216202123800096653188512780118363273429988021671243495098854659319748924314599345542991338464590364827449183952425941722296542962745898554596605570547095525258596633168033531712470152813240772548672651823072434947722180967724855260704486254243067888294990268531828023721293712832567264877499700847624998296254836885529160839027353650655197762804941459634304771575386094228372481618930682592066557590974734356093741921898655396672913152514758741308604681158912895505067766419631865548164590637457862443262009813198036833556883127608695289199694115055402642425061328799877098865484667864317800796175954048616629411596513091612628064032660659415699579958259558850854063335866870643220744725423240701078778926320538404385345871547444038739972020234796799958316518010233742140377088459548423475394089444267432996696929687333157798625474652301212219911084856504325183950399149468787811714820964219503057745899598892483909361454307060294741510671898021188279400912340734575129999236766278428991705869953542112545542065318191937592208442209822468872765015903216623918121936429207096818654681074040777991816810071335739322689369840894716880958038937640967301570452083170393640541153423447097321331249924884289068691121504118434342192170536458170270763921726281787169298926869505090050881809435731817541645653242539407675173530137804764247480329577902434474159651770221318425736156229782572110245877393728972870299493296586834174621625609156010623929513730831229536691814837805225724125135072282355424133542751375960450158919584539250395354967340054765022410951043670406910220118968068253012855864120102469407878266059644214483803372201933168032465887381795270702343527871951322597243559086019030782835321409103575875320843554544770306615503229475573196445219040144308633744989710237996887088190621422246883767074998795548186934591852832633921933686850048889530266399756344064211289856286110992306507751994560808411935733808651485537306288892987327173471016216748489601594035227628010475352825174495775100010741949797985339474990241832087363683225395929130041278413426271436218222050145914467224213731428543986305628176111220595664700842978540562938168172697809089355490805244346465809941109631266618882419880065237057339541034854978932269425814818564161574125312099906670939911991738799113645051215328237446295269409296496795550992841318284361600274140925708567211335018760885718601540064235733421782338281570810003297301226671401919877139102378784737056425877106422048977635445705038359264905624856453206857479218912880904703524003226467541177200446514032979210950643791633028064647465023164129494351054368886572525890505652016707215477497925231033494065820424595575529033972246582070963562083440571567225749434543620772586597375862093003042100573491582523259698312890434231097703465624828686404619140923905675129945438948836691245092618960643245355150995626183198137355348642078171007746213997371482625585582877246931464209827038036311388873894976472992049104617242381435774068983128424086750810119657129048321301689241838871012201742423412130459521445943301898422986753436707548111767951028155275628010027660808822806367516474069261086643893976227411937605600679664639807832700773974332624659083054323075326259331040338337332530016983410310117284130038613679365337174234032714142810023434291530611259467584725336121756371382231483482723626248717206122368044845610415528665721578889773942849206070914754495269513920738624032721042123530769815474458356081604189316291650629741566635280863100499719940973666356101369887993070557854699473877134723717180716519410395035489622030409867309776931043870329239195213422276912055232600088271166624172427092646765019942218982714874837125414086847625694512039721140749865998597426287130750729389368250556121787330912308255671155502155520703403935728247182924572661461553121718752290891904760086226002395247929979226487734810150845291279197985923853792707718408064270490881413830560834283183366134099283002584333030884682852169886707229484662115124061304119661609807416920728212656081304650845928884480315457975795825761338158938707004631268368518191238862911363359859768735341117002100120042743059712440754110472213968701038193895114904045699371327753638155006069503007057273638084927068862900950662106712881299788570527060425055652452522011838265304864752576888168394150078650168857015747453643940054578820550298316007906259427159933266463663737478955229311783125360754212344433976401056371111336674791451724347483947809137334556429744375976690864860274046694501515550196412753647171642579113576853291106868918547353516232398095774739282469774581472221104725524714990537539536228303593871545540936421709352823757150593903757606902661515018379878277392223869068632166652080656875411653126379382001394010519923490788800514370654927112096442682187699919978993210657113681544458275963064859928826406068461741511570092661322398365812673533920209898098728494065085000937967182546685577574439120143944848207028951407589922053559799962911583272538624431858282833887586042547660835775876344745837589448722181005460583921957266405412004807800592702924046664566580298119596253847342319848372547516198790059219124983454319556383928488467573660375000073393717322751561022448384221295933486104325722839402186419758122055258451756040938113132904633689336345022688605730973733907764718560725387425440907301218882373146697859566289063609882937125447875184034676217256286493119232709879183942577569162553822463175193422704980521579189354897434828205330860297607701429077904551954557994543408452166898524856758693597799974536194055415683825929993814243151938367597018929870637192506025416196509485018464450841521089852750663229982787294165636524215596410792518019404626440935733337965278280107065113718570202222057000405799048631526444455268872626652722772954065096616576689848690543409167657847919498223148762342905265886617555244084093307940245897299599095485768824131954083635296704415509699630074254841517756773182245967002707911141502916316388868602346923366257459708441040059458346567422806991377933318227727677414677299307348612791251787300652503950502107042718970953190074176087171678962592700011902640960234509934853041165469985356446960818386376856867667492181264710563006940234139848273360260487986454924575581924646795638209878684513796319156006344427539290638923790794729233154659165215454829598486933206764445901159007162421170353350133067898894610875973161758098177250262032900791907665985184099378970528551601872272393372316643264112377764810640823143683064785395579660201401178690049525648273707525875947822872679482363046428554493226328514875448740397728802035073408763657209096735825985412455176902694956582204135239678063827359611108421901168566441266434298797298857939558740124107708287013775490347531621247655861818477059419266037338862294507486932753493754954465289699354506091229160679419347894324246014059544476525231052123561685982170452048492266801537606731535986746462312510062690149602434948895204520583531015065313311772388413748801815608175757127171822504539343965824430480614728273686591427181258002112210799696459652553273800457086760296740166603144780387442690311643358846143826544520055888525628494712234931151517801059109055451235233739021291075770121956532975435782846603281540877355104136953143948300344629693741164371999652760919867604733506871383218178785771441193620779252616464839833195424773177733931656501269510015891769727483185457910489060942186155760684606655172408391817454574985733352017621069933954682021973575084212233296219526044083997920354966584743049576791425691528837485225989026843292160507929440512479450259432411934608787571729269235696127304633224257142801327227537027310577201256813118239685836243778808452950118724501006214500559916407866288142458467772161013265060749876381844560562042377530610900627003972991655355256423828208873811274671363983959675163534821694822110381991930847030358284937899004128085405031249275656274943559523430566556015376882171018778765900044034624682729742611021673865697428844100305439436203576397419687536926627950325777957009385414184232149950236543858223867526461423016627973676066926237685541012674210425470780658835422052705974466742541130019934897757475978774485961318319444642136351675832941972329197114117339787410994379271626036746707079677617599275935398699998009536006511029677645981931160731103274102852227384302810662046714608751587843993505408746512433955353972791780228461708375479268463720089874422808112908322174755848206890004429675108832789687140508764272209951420260896240839330040480021932368003376629983080945207993801015010028627892887551434307562679656179808620791128018975196884951045478207686171388634561526522412231749032532144681663111689597142642915652008494266121073918897691942989308168825842984291805318988933875564493391768463715764381029616202556617289791071507141832002940501235015410224569385548705419445362334895084473384532532401207253242934536486113631846305476649273619085386675713264124228467457769349889326486448478097843375637096425802797011828298919382531702423465627280301177967527126496978213999400769423459505301735742276435860067773440864380463084006166751922636894771299330672562379200856440583070271400306377229048598486274598828696756730643343819411335044408260541519189900646140187917478067368660920797729916359462179344373169359976204959628533154438929376579190210052753633943945366209419750783458213988968736559671756069430458313565409521546639842974116521271298088417956479087658905377358573194911098052300321941629961148019924964950411358647875696327224264748695290888423033532644577086407455909355105930134236536822829081103940111134110538719981540143281577932346945440575986774980301016078672404602901268708693238599755663373994598744556500689720522456988406212842792699041574597594276852865365055676287042366023885608879951781916533094155782899363142355734252346520632981652374557420946616220120888044843349953998158980713945685129119439637546679709689521326506444258066201321083369210232925608433770063030823295714487270424376979308280563971548723810030008185908590447491873681037873312838658424950317897367112519781553545158210129205672525610796492846915864693108568050351874600044205863624411230870470797549025599473718485522225593433188085103713903726688549136556739235583382474114715968402568521107182991366067950871419500351292737916726281818826536315136134504863757995563519860671252914648670979330127904833135731237176572819967657067873799592637684474860214519110123182491100622705886398621504640575471091544858737994255543398747407771549765722552094514920397120639485636624558279779078781458581487317521716069143371406223053160138962852917374373814989169505533405257747666218553652375804148354482079455710618431788880908064790457898526582935094965743984012180170169480160230456210496207355004597537179162999200220290566397869823743480718968878741700309826899209926654666661194375260162593884525561936423697079861271400073986350790597654296126184380765880084801836537750543358365349278790097609924722353423730317593606655326580001564076200645478871473241492757511531512043844494302631543497740630853494990277653306631392810792479604756444151810973093111470028164661159452467592730597839231382104346459757763091857132701551887934376219780784947075587567025179390858734131646043528481107253828760297440283197866717653270941339517544699666346683336523953803330812604009378551226291717027063434076536053842921740439183180955242145964885243278419643888836994489815243368640398085249058249677477595555793428695604252070797155552839361045190010724495196268456379794014776885655714348292954195892438092671917554472091343615133300204493812352243459152070426343143303463428536748737615168302811187252846980112825149790063727650027046038528105874383792746169322252973381487258533958468874569476425160920136144567110823548013693232465824742953488109815868686070442369672809740305588527061878227928591051309729492549334656634202484568602481352738313613604199743689788608800203023162435396069896644283759394693981084161007580954351913479885682970341112966004149331622777770197850807515747701897338308326974578182066209401669660606230592121079270042639234700863211403537082181608063629752775337267522900029319888793850112043626765694957445049711337654664043214743391273872522722432611063833262204613063502303439040276339871742957516027658739747724151296191818135614814181296333113975124269265017423861991108017661324859471336845609400500928523572186037447742009517763505373039232985856029271990107401642290084120349087100285099051531365708966845769213552269246836386065193336621439976842154847518462455846352839803859994228610949876292226806324187080029482440349104531481344161699718489722049330378961375445692794773299493035366246958266485445782359143892808434670930502359668822401532342627802683093173379418366390086355801264153765580921988255977839268100063060040585947951452536356734159758301869074417346959529656269414327876830522348484450241167018654481731253040215792059572263516025785460688223591152064560062673571838953288221537183311352339766016060177428055737257560701168692796883495962772193707833987844813936186485824112414053715181556054516802796633592214441621896834775091726447209885621122738684413961494434780156689557738270760655270265347238945070355206576091695375651904539276900213200361010437438087074581368454378270761380280718522218952500223203536302345887375296161873040576419017278346224664806105870511966809057376982535334881278887476246465187139487171071880539267972735529610941850910829639196693488392546473878513421413467520121338027157112181637482345098623351927255755470144593352175390957026525145236942283433541014763235535676429723299634158266288955308097392406249870561210362404220567178340131200090341424113586424745028425573865723810276664370137648099324436946102634739660130114293351047917949392377253424971015526571677338282664872327267860550522411379736110534887322750811279523785414231532143660644769769743084048587084285065258372844424679155049460717955802751478284193220924247404791663947696782267684523665991744374388330446909671004594639747595887552180182476356699793736920597268675145910186772324175066403340567498183971144531043002623343307459067905368935866091877096952189217688230765270937326483431828861207897113282210902732833737961861441712988412754408166501281656448702795697839372678146269044855244945252365300797308070234048375786694958189468103518886663954689338164044504111904281586832882058126030392596195921379387805439581469655349894539296108653615207011286838236529664641423944841859446507823773372167304586875148250135526704768448004208948750668473361353983804175413795753966662970697282363382252745074183381919392801319665066860801016587398091600919968681488555429212034987688565884841149064556661339489717152666901625542203843476210987969901571790830841530801054175429377070616126587144464229671253936564990206668396667367286142731595249685437594637450920093339608580645603225877432974811880338902723652503089058373220913149648774859253609491372288932644767477419561684198741873519346759737520757538800481364636026482913969772681073705260283380329280769046799737913460781851521295238272927660723857511124721084340885646838066225599927288850402617190916405162704965816623366016245016172005782399247869072169328469357296146856664247086577119214084751415081550473114588175342737338972066185987933567836736324432309785871859646639308719553356997770366479285015016923389236577586769486924949160222951095726617796483742903838054499206992375542816909225099587414946004380285568911501038803670052198683872671213186198736878661848027928576666158740718203548448816923517028273452935948071930048868935769315796766505382830508702803288579164187309018849493099044301483754873877099756718188837978567523287113977546259079707016963132487979931895618010645230207375901599215933729735705843154897262202128245219747489731711221730179379770776373058647085036622869532700217074637735449172685602928769812572007293982588252370186829603371591959672055136728478579409322150959910716359730661530201628385160601327469962012669370861995908330598460159291080690502108090092519975738372829659921361165991757793542592375958616120119362558219622630004330917820564393979895244813790370774865751565547593921753389332915597340418792886656765513915245536771338675391056669711506426897440593897824830970785623186265791657650057248365280531932586991161306664888124181958046880883972294317683353604300036447929225739334156719292388162771287439234466554028823735936541151971975055512084942231599151110200798197996622964630282690918303730724961124544095360493597623802562013526577887972024567337887525403545629510874328902471873782501926561317326511399378340043757589477206142575371686225228457073743251321385568367299052956455668910998196970791572887629541379207672692419080766759472512216830987904983129895893208918706850491280121423145260570897643121455505032186904525810457796521319858683750348539334572916493407658801792925602661764729564685072306545771624797325275132842549581383351460004370333771252683987336700292197194036182436448988069885757895013363727726798631043005454515661783759463235056453500531303193337134663828548187694003675946662596599100053073757959719782278048142795384581524374963398839865560216255764948465152872362060708585464316862780170264005279817216924014484697148751824699985598325884954571947046444285995627242875912211932548863628369894979938201134361705200345052010739484307484294919561475974771434040390996412462417986710972871048694805738807577039708328196581218241289207322540827991242679987048920153675600429042978407977043618662220643410262643505926350796535937665397125528632209064875387720231431807725225393651801445707086777152696072003486324505936699343899634983873101738975080380967189522617360190046813045480315138653848117618368479970797751713995678186392124417509407688446280446353736892077006791335929986797346281822725717647252983279261177269904620097964445651931452884304622397620842888824316285494274660513482683285084041328438724948416752024049405835664883723319880480935680796904241492395434981448618585463738982744128350188809028402394904339255912069026623695398402973190168269780498803571182848228932052603499943767726175268618851394668669366631229351209029291624040281811468192081391212409142273480782975183949711028444898613240020680196120707200261871596930799146296169484461925317676005690436131471992454691320503421738281617177911647749011965445548797290917966519725507711083624400493648226145892838757812410081073666727065690374319986287562562073014350593604098006801820990878489436934555393415345414793452116723169944325182079632049666770999611849592034663374124482983119358499737057440688642795841993371906583571444707652610318076184968979735584053486469137376597331167236563293994410316193910803361212766760841061949640603341081069550081632232096850553704435240213399004117710461287306741514386260213000942626877386855116484563748453260715866749509911358226988549511182114180687693203612088075049815008496907080155908200054356283653772718170144700736669918220368126165396776127406693459082376266696187396652876111637392956265688757747594559115632078406178148693705995274648738550088904463519966653291888009302661415612328355659360221467567571380356420495872062975961380466810214107167360697593339844641929012190413736400440726463074121852196465389702320932832310130938913858542839475037463176849191985499601562998021498949145088888669394547219945028412833464247924864710218047098912404265257922368800695303237051293076992150236291526592057462692418669370490135130196327585432213190638727935659145025009173721348805049017509128748438072557875449799587423536817290000097117984385920753104694413050864320766949891742341079707862739662788460190097210076709242226812942102625587714132210314679771513901643867936027550820620090576014269419135518521448737417568582182024735034653574247180841423481767639436732366629920012115100826840139982317042903163855696561282688648912382851978177804734757387957783821490867048145546746813979931566967341710705131743786201734837647421594224981582459964063298053400824045851849511912973999960531057069147746118674060352545307203982936006340275325887489359269998037533802686989014681995596816476471923414133998640291230978698350202466851966340563099980909398955930898936586741844580280961515540550482853694806810789395048973489865708390534077648596238858024058868497254125581494477712471805449383657012601827391566548255681269068962077080259312890595721959164459013326851889994503729749598315697472996913623140766460672565340603810185499309079102108943612005835426269914102157804932015519287035099965998286349505579992624710410386756359173987071004314758673163147171096535521532406253739875022854475161368940366344491739895997435994383264227741116332349059512106739770675738644981753933192867980880085230968859765419212453209587767742261697201798701779328494493234647214112670647374410662368500156159084114903359368654185845540953067218538464282460469298702556810432649413568082047724495014230749191280222450955086837945372482813270404627840838128052982705883402858188031882856171983122843600189658258183437717594788332845083300045257349417734762160548018691195680200862579826959889377711909932368563903498860765614159955391841426282817705129311896805325145204643389671276901270201618242224565611107523140373912395848331336690055420922911599906412193925053640284544910967401630965542818868319543139208108095748276323732784023442104440107870871583640880586757904726119813504278252597810439107756846747300265535411250441121246659832642885251497230034606467054448969026395486940379823159978874560759209281984441491952323253223411802018233721398229424576477500341562486520032287001654624428952877124539141584587173059430795548955204042995274301341201759738680740347268763899639031715738167449338214364284990227906576648628953752644118055341340315748871054568669052953663384416418785774240953052807796243417106067661422765582930879702109569754632106621399639540407508765683415250392213291066997562296873260891877793326378073010134803497096118935213601190415627830099880492313926854371799860774664457288160176320755780824659628340547612895447726527631035910710421572067903399136358705410829382249130666061093824359656112248448475216300955960251166468761557012288141442197166491332636808009529834581776466963515857612853304572404599377741966811674903836862306677694123845491413534180453245608316492425054730474030240260340311555024681908202367592775508370542900930405462982460263190423987072030433710282249637038029019166577971702489647066886759006052015241383328610771790170545933404205524729432763986878812860316407953781408252084910184022317573190469617082673042588951243718707857119919480871712734140348413330220893375149510218661517060586140489606552519466586605858402319158809390029455091579053542246752868572525687337523598153421432761767531581602489655629489399767929005534767773241681467424371421572383749434975267534974913364790644261838359943418857654001746287487608981271555370087747284273109444574351271214062583427550344212866840704961037539726691538055708691464479159814420196770645590144136678967364752987395637957270768564460846535033988841073102775104840008302771595589995014318493050178460762885692787439204756966169026056990170352157201427220092893610609989313723996819359322070979233541541679950274488309686522156931053217814124902970773770582847658641745572387970535072035902584283332927736409254204747488463623797311216611324354068385274805001184119717730661854324264316101901390959983659427579646532192086124543416987003810207879352501597437462350754399361413559285486537577752195809785349144472496768251378397406916950529453722996747215692957562713792362595900094934746336824464098359619916510652088913775181387233784311829139597192853796115161915301925683835203462348157246387991206000983690172746597436248047938858093547644755357211311016348801532185196577537903924065283648649710295999454671127245936839106743830077678432772441832652753850854005314305862788339607014326141491802705274963141318369762268735171826485566152238698922250946576978977674879390056602271835462765389972169166770518596310713451153111000846357499966556612793867260573221531273278076384547683416977642562654530575305694988155266656939067626616345334957560635650554713331121197646714118155452649505657335382535651947860483758381069110293124024557670381028692322233420875908310836674622516047534420403196629319676925092938713946399910126347080922182923287287503587193530530579034512068530467924193840523489381577398030516058263941588938948376188589494831923925413531806036883734502816435295146229431823746455026904530866446150716294303143843929913229103806871029241456792214637691880331064720877985122548121093326533884729102668503431837552749625296687171390829795160710969714585224977840616320785428905962142060921087434815477393009607704760207284275083776885484665675431516198971769804443717377574637878637682548498224771753853877293788820605005955388303625659846630112138274058240656819578274929017301061737324558202354837108752614504076518222280911792296541542056108736728689975392416345608944497953473806811281825286113070912886808747099585325809817573817037750954925830036613197015812072661097136876648126759828711166582256452295540991456106591213593591686879807765918619684498759384567805267184390573306961978422839168482643205776207420878798519028909826502361223313444931448940407809121369512525165203057685075116093243011122917137549141346992058973978936147392206694162124880935994569915424170185002141140158088599154377713343095005934484060978073481138592785313746656238403827449930698848273849247046372578290229695082986083022091826549766083356345493490062879645407395092117701241470183547538400021044281096996573237418628003443412124953280677629139835079203154136509414563362421185635447092396002617814681530211617010824021737079606258239022173507425759710762556966382102516081757055129078703259305072427510464124447958263721917712761887012178116011118759450198370727506988568678372947995408390971254514341348216918734917600800470597089674038912971684946586441620674759025632434612321370437976681902893845008260092401857291296324058268777866578503808204932394961755100673281656233141896001198406529528073760505195196558772024400826863911101703963094701514559664434838251966590673489657529952001068598900784819572184617993092542718131506253197040569779542516276127602762154789871968652655678003706665589519923564713029459184166991492823091869482268233485145513572461623708874088569760336424264846885870317351042125132387135377752842437846311575019100632466566767662976491050736332019425086844955792533299817272010956257880990483370538953928695804476044317054423505694111119803852105662976693410829673665686776062686911593002921772004599034610752960072075338599632737395880423632956354971915598411914280896812122784267953911652167026354023639506125965184528623464701053955692723640788810504986085735182013088646419120256022589167747299272216175398763575559345908030297936783676372833361895630771400309597298309112846793291524273092288909761290725833224069252586037370900837997864671387243222609254546690598968435858161474800845655403411549081688601512335228424693162974052811582149739261389581866237577164189720968682569774972130279970027195944388235964886292474935426007238935491756008860372035385609295416345889046351656643452056532804761495244476605356774927739630379790779174596863103451787702758984522479155160922851357709345879582286492192562519587635389297593566671206689533871582835263660016854021198860835475315063359586505561207602470379732789150187024849778932706124011226295313907425826604694952573520507034631531329844164637722489972737357735532605113187688036445286738918255317519369075694146822141812782110637687561128673816579432700467682615141788194489045497087400685619285824351422934615694288641998990866929175752471834548730417443573941009142212845815142215851462078278077126064495496838079425438512833855714905288409006974365744627484690894551903987307990592389352922626661232576052136823710879701155070179822625500261833601809491180121061016044155749835947101737058238147972267965817616828129379192035683462297702915364638085406784468423907556582328134888827926455311859811839492853951610581633368330317978205811757647901395386493610389969243710385505247112853874950325636585879704522474563880254818247174241575529044744888814411259260987212516479319593020909926035948683032727658731449466615404677229692042039891711824349396495050116958449704263876578894388112097575501204944146272730692925296426446213000269567109620292852359595669272003247358748062043442632681942486360548841542908934326597924752562405850965577530652984766137418511150860888284328237858477755000398412824373992232413117881872399665166259497449911268499113154588301081992892729811553477831611234756543070739498298088673971418601724532755715867178375930925713829059049538946996025411774548419794153330110730421266755187545694068123851058536165797580973947375775135611309670036246517766853964372600055462613832241480089360044058854062878388707483020944070249178924780115464559059589720512582705742395734106772799357977749582913508985201009229888129584491105675168026536294269743125910503121580203502156821657787632687721176433226090349516077468176807369829230712226425439464313427942164841957516655538903535971169842068100483764575472178226887377595644108847771007153131568100733584367455139862728326181529539242869711115901585257576101870692508996552190349215679265980814407710619623219244536818762642066291290600944302721897322275030947889111465953866570716251016148657404302651749256218003849457848534973653879161183729231563726098746665768898516497204083794628477047427565894497571040638623792930888524860623143251013988335254734922182997660855027692603689784686033646602480954391972948595095680901744327288097455671102689730973524764052769824556968014889135254926221200529336406749440152320919471000892361791783476970906672898551420157904336215184657627790175884483704466942583133300269905732924178350878042081805449883734174023114415828082254128741918613396636340278135607642547861126383290955969583774253644693932468101367583211554167743657156759553367780403711953180353449226065618149411436363394092998991428400669949995902375783769167479614415231395223333219563051627827850722911575903182900485838205409365798751189594142053567346256710388202390611364139527412498935690244199868186860025427067194914252274835496112080389305201325131200364969543692602542427227407400524154256050801515577161593521838745206268210371177983140847668650605840422213130830776113597153938368020813493201378092439847026456363072535863320055725598318506028013650141258272775486603554055736415777952406899964478280123277891593479640810647298362862740167061124707473888678113630929683227502277773951332510192900641195456175062004363774256014818508302697166124026061389633544914367650759333621219109438250220622773099800193425092690991328084126659969373657273607486779918004964805357408788254676237483182970971636859860617009964855341116148641111529030796126855792184414360175403272177140910745704615559466595094896132454891428803546266804051806463671541472113409201477576796123707468686670366476166044337365548766129107151475704998136787457133645953485055930980242815792949853472411511308217689143955780296882101410101048543093358853146931369493843505110392677429595705462306971939695498446151562147463855322261067278775696998991316225506282544218244933394045049048643800987302509006777994527095677440286430722454302231891229066067670388841618294013549416722702259793331841508366770504771990290458582117220005580016094993409642042932990644183663954360949316487638815776562037142834114294983013981946274367839529651766491620950088963924686128537817608792321134980716052958676121447136556882469322921662972728675639035793751600436211564873689261282596392234450098396904217301676044866317443200024073153170954083747905506679767460046319646520038891408660948954960232847218509310076869758931834004341100808826741415879533907195379627787619666545400301631350804754934661722794200116731548064404304601894468384130344215349533216048462580481629600234450626683475415012415990037083714885164540099955015531087079919666948090699292930864854038214210316440845706877241809472357853758545850854275118797004368584070964055044472803137606231872020462476846039551118676092761508655080135328872060967806464685466073510000660806421787801036227856178927517649672527747173619067887734620080640068406761515327885910561439304607372862206773972794095730868678089096973932814915564089810055805532760003197433087899086313443607106547097484274841753209325741391345215381615475620405765073857241590316224030156155824591223235290041572318993705886497212930315296803886498581988324021541537623879544498061652115877734319399249020497609845226902031323727782127589315919666635459631296648253394476120349570974682314823536925007285248663241729564196882119575412484304920149972163742681141905120003152338264803339162398616120841050277310342785420151696042968462479182134664742091614233258834243067650522658069107579479207397149772988036840849238293742973305937749542783380926221263640500314580410717070936534544655356164624025074826018951851366952815009164272528414615857842757178386599221792016063889253320534732607233268395109549275893399300770647455078113297567771228487607875265424252290566713154279584231099291836343612583739919046858006196699806469487340430973721342458768462449068724345477432997603805351782265568514586986005693125115992407309875873026865140242926201271055264385032512448455331756778659594842392241719716221150880047308497535318547525717051213802626544209960482477584798097593109930601484325871726414503836863801647671973674250607007247025734852225758674753807860099569357420815875211656929755578057942809553665886763086115885858200302402819688678304390686902958335411435728687558318481732915513846994670725385316644109796432618992804449620396690603399432216846114743241108149875617273060944998036766892949996164089076146497187453861915764755283997115867765699953495782603762769122430835877242086668354837292870796146360921480864369653224880690686350344884697916878089928709841345275750832424245102790997925574188557341592811792841965359367228749198228211216069005237464062811741219282089452002601521285286168887567517398653285786963329263671195629111884934812090599561663374258413285658555585417453808028150399120624581943724128559131122433001169237956522790962227425838734974983891670062599608569555993369747244340194676644463423367080426339221269149344282924311853070852831962544084955794812539625429689859904529759907617366099449227272847619742080729132815799308367288654424234515933945659389952017064138459875867079708285695338673831913702646914226987981664633463562876852383115751024520587911738670582571442404708227435867125322704383661201635700769394625682222620996285302562999334347703388350599047509012721655589585202220176659932505687019520867296237914620495503163164273732187291537178318504057633343041320162628327800911749063665846838322045150951801074641331822151640796774198502440917529611543494307312484634181837287661289482210530115228035578134219600910069519201697504979916539912227978450914950885717190949887735969803821219404602759319274177811353767101148043385618625081341104822752937659264564811122558469692404168391585306748594327182349014565423183529739719098812986595781124688239230719371871411422059317302944945450863725884540304979280962345224372540340610445632250947803301152233885896101488076048386355112806518516595862843338815616990867773633272851234659162694836429625525107520762566007275635299864928068688532917137413693434647609843758997259640516144076762605555423393083113321165783453000246234002554265488252429041347110903711034309414332448559867904960548265765914205684808028609731511722235669862040135528621513124216789559356486890376921201467616507371470341515593145317222063047417304816637391832240376855037439405955516051923081639931401007610607190866843585613042223880048917240926708509674188163826655194486438405055019929333705832181042543271412178462035211549452203777849909258120991430030336056211021133812882544103512142904947577341270524042336333674586058375333863595298997061530503992368101707557653010640164162212063220624654279437281046665789889087565047928723863080129241700728755660103597230717077280848613185344600827757258522683104497582510014915953328715744343824056720449347152265806173185194092389596423147082814556629973711791096107863330262362921351667348900654413450014171350132562297449244235902868335048258791460597060011876502504217403376333259895700255430997782951849145332464580273139802308849988193627215288370811962772674107204450643059011800776070570641206068204488918126903100275060045157694218035556899872676761750136889711447030048544241006434617939546458669797375074398515515685028089440564800030836353584351539771393277761240177889632587157614672494197759178414914929438778639072184311502751249560855799010700406787992096817748882804411647128099748666232846245066678516241466079529219327303858928638122934989019445837516578862533155769174749647106313662050291952879203349934061940903644768312441653541202298859533113098898772212350062182410895618247882740278551304512575857541113477109808138808239135410722296162265593109583209279377021274253425688432963818900432456535945213699899814329398678579233022377919359375930342471237715389393013307067260420735114356254839434949348810370444624633961065883050307204169218433533741710608224884337867694692592530650207736482271425944634887352050616704206775142451527082489956943371824803299735306243497561170203634888612731601020449684404383502913955880061127067308498374429777212308299458567520264100466850875294630340283265812591930178831909649057963311577959593604081931124870553982144849078595401533096253369650658831486326688506062144786439710158920160456110563583915638715940192828071243632737581686654612259902286914517063929065642594568123429712436487445369001963107497966619845993101206170083948893632016985773353309586826959704098348392722395570322917980386233855858875607142379296590956682232422232226693599172966875796231379915292670124019495535713933690099175875244910166782517888633755581270002410693676623005317318582081965244773847605140983685055595545745214830876521628112886971000960580920599534424780810322292630752007864483680623723423111801154994180447046701642740866077427133397962268100010500018191685049850684784094454785874737685119737155766486198526591407007227844578475627480072196486738442130381137596565586076356011050096529969394014084686813206455041350648692262224007216473613462046880787061427639451271549351976244947466988799747556967590995344658863347815498315429439049048424816811901984322791540818785262365531765939586754055831476585401052005669547379342873389604328224452367216909762831539809037366675919422773264400445180386798950777917070480780383002149859729351282466163730099499113729229251930978104712282173789999545882817195818953657536422835179520347100793965079271986338223938215938967636747809703692034295832063568575106996760893381083237425741771024273059008109473093640249311660156130389145435977699281722900985150160339540592172748662844604213071440856900962704834911320063438721680146868336258923552309214335427132419403455209523080078490656642444879204648918854298886629936690239276121632706540101533845073595510103636492347483660929744638758477705089282920257679071617016933698857851054330083085349202265577722738805195747881236167912749044785763985402704775299347281646185892609908986939418507928387499428902022453358281015025766411300874675449566270386751547867994721914161344816243757360713610545915939822116610370838008431331935422033010623930564114481319584237016305683072904005535001196180353119057390673294347605562765538387157600590222977812030521309871349002427258774057090214606722438375452637410170451705492918286316527009935240419415954726199564733713356047544715044414356258610234192030292448310421414177466079408723662117732691995731133235460547445622648210392015030684886598506921778728921379512800937570725637597484847826012092650619931600421493863085651060470870807837051172961085247144862676185071150187369971026635338642561285287348301748692869159229666091006326096972903952042509319518148719297317691446891453699917211617503648107056617382826907840512320423074619772836144383509812796062521081831805778296481072385508948822402132351310088605689049211346918412930751590622078108821275548809638996558757927501173958474416428937087720561363239358405197874145013092873290404160930061831617590718377920689951117269210339576030162282807947390413639556829329915928662364348151673586838763056601692358929925683298671734207321542497275631565244520742616558279521492157786005429198600652343036121464741029212266033709920180528343705498773167630042062834164833039601633256451706542488103823056550087393729024653557680863388653940097610162962333685783572122133888895071740564342675270654368540455136282495444892113625288565886767066120209803404169759584245295999018680367919845789442754655522491532406967862942041153987353769955896665326289582967940472829117414998978507694226679864334796839971420471326996103785672703098775608858237706560898316830231591543768505492832472284695308111073272233647005244928766656463767212258089568717787333216923545211281818318488829398680801434896722594307476675865433899405289738239429681687195497278573205233381485475840934116600292038924750259025811028851042995701906866661641180446354309570545043465529004229074427832371932153575582576946850759600005328290958757365234064826965733646141501809349377102438373585508021467594030768022243266125468061822932659881406645251831021736077295928723570039418576708216761063462313734836118840252942410742335951509103572731574184251419407995913196102814086720188548127242637904315612559788868581178211175063774965207278363569623673211905818981347869051810874485717953856326137962431047102745333501144483966406978927631707941665543983992771927558952486404765233035322366009144613420982957337709786036494363990189818176605996525014657846335536184800853138962477090346335706799030810926973494698528255339076481818953885523246804701703752022895059175348224288317206289905723645767456888053117964689061864639154379780538544166215138452205595930473497235418924205491912161508630305022315328039572920888979372626094419601133646392972416946368251876722379958789561180189188810881051002389193599807626629518050458352940454616516016494057485812352981721880986891808002548939384938510825287129373887965348968789450288089670879259454132032869815436758074261527277930360792982664976529558943251620599367741799336783199442994970775324300250949642086853838947208356730182958825349201228283812515289915182304080076721581459320706707091530910251047549246437032371387527274735312975491077585977061984137921920503630205825012849442440193599701783582267288116413729998060743120485278245869273962603821855817112788207113676262934830655179570905417496520729501146025610680940577504271782697542202907505239946960615665658505786587899719037112266634111720821603927142741828608572127269751313547117943244948517087831229592179084651684857636265542201645640928229257202777508281648942840696884867524383759491558241704686429191446434723743370076146959305068401085391486303558319102938012360621860986388647719806740256692735931429200831682907557995507973282097446576277462292046239694071032888825967879444734682039135762768896422845657589019673205530854542002786804736429958197183411527556802624738976282025306259680198272045117336390424165671599268763344990648530365622748279343825207383766479169022974022811916843743452642028500954413939295260119269053837970772742336458461743702608563209774555665769497506627971168055779828373918805406982873827704049159410466141260354094712705829935514592510119534464938275729263598482332660005587482833299743932994734473140110238181795646021587299723057939717720983871761412399637242697699388107497835446316929910595772406836320753702916340434693764126737145613911969872642766314883630065171229258503137751065491300437508705289477352027186289664989196418404566037020817487718114659233396041658543727015459015285234835116570996477921429682263270919622156774953339501836362120270705005144564469205742856252495476865787007760518394407974623379579125660056501758221560723910284480889522932934368931184467793657514223044737695072701178682879446132694872857463364665528109830864151472916694291804236625412215003743991567727778405561148507042711839558148828982373746458636669033278329411325118109145650670004351234101951562423048599036103384978938578248149461743943692107717771258112256294317917023460956940687284252056343458463939914768592859006022598068587340879669371639733674498955198716225839098299946788128317406332024202322874730343839002143036170502396347061831580541229335658654278967362624054571916264431477103824579666858141305641227707478713835621880292930070339291826794930263903554927089193062568278542284541260725929709208439918963626398285707080543236541317302248542890243100578578227428691395806261207068850942515246813024911898070428681703306403372430033238257791681620780278550954982216991360626999798506989076012617251767109509170400462322436926397764278582034769710852329494022068726881346031768724648256578763955406019622528772745570969004617656596882089937461218765127993694490177799249217117387368277697447928820952986347556238754917972350772746910087565828705884593013307894564529361603221378620271865999481808740281899351852043566061820792802545793629790415640451831599223916153800195064449150985516396874942448011035430523661490882190189753625861202693886295546768502812567278903134918780395336780992584265742094182028414661905913760184062324085440516801023389435996330072627483420964774348505098840474647369020218108153600668004701648639549930754307521887320604356471698510265133964834027117994026067043566120779820557167303035377315935985282000580459897824187107270818020052588999260181934735200716582289316432142406371174760778164028253290543989850940560277770666852021690767738130053362559326421159786908192036323177094617058358572328917546835947107052342811402495604662737719830928250725748849058704646245561288177112163534779168794476158514031428521471526639045181632784758477759359392461307704320646286920876185595790955506287404321305442798988770347040756856176653404541386343761446205313824772938745986087104218233092008039178210634222160906718550344261183814086366414476347308166364984224589756278644549334532879218511993076114682716637197330684062228566667086864704565213033937169763050040288719911665580731617920825558791995411032756253239906144221195961166877412805580078290957845457422947590865421044723977970391218539458038528153155996466961355767942965511422674839136293513236400832928165000467420432868208152784061035617114216353731479068396301071082882526665873626109673284639656436023514869100179024060711137426977773865108050487496014880557927264690927620720128978665391036749305177008106921638704511426534330778249454183835271866424645637629413684317179774677306319015144378297655361071641825856731292728511206456251612255890412058646379189121505686234426716167234061432461246751561171888969421218635793454294712404766479342179857184823281955263361361713885146653201580709582145245175833298182945222197267116922223088534171297412595691761567717213653480572893719177166430047821097181698569029153811201735332083412381183262148950964841426101427851468113587680783039251019778362315092899365058307411210535327545545975783653719704814894294284082939692307175014462914092017681144563688135769676374618840913277610796175928928812804293325584482894693819352634745717144371272114916687685324489106988052554190515313904457600295193643017052936912719254232264615080870016407334519678781777744181262882309940755257511201498957304562256473538753068734631958101136315747819819180122220429651490129909876072210130175878155081399719345291825476797113152782996540656849132396074927588820481918462090707947538302100324327234664283024749368181221737705998197104561980453344209659276459536968950483734696537052890399439405553812505303345279718279214104084988837282737162061967711611174386611297550460196663177625681449354488818115753481679770827584522135878304825827813613256173319698477476939910624765418781056880144959045053045437368784564793612892640934524783041433419376248266026338889293890052893068576084592743326090403613742575049672143798048455546409872663051417471721122053629788137119658325311211349469506380887651276181202367105432787307194954362794418708545015785398280976263401497049754571775240179498987305711932971261281069887382770079163925990814623974790839805215537389717823645805353591325053832960358012076121553148547562911573533869955032982457542335722769942670625451709988395246172725746318691770576009170802164013021669532277380259559592684978724903044448877600473516755362057130589612343923160457766973679305640948798015900078018686342655218136320710061333564176786819817108375771479809910774756374173227289936888092664400630737718919610517200335112604715868853596787025279602441808966137451153013640963898223302678973497460769848715631826227345180698993193524011885715144394220591571704040943475932495840467389524964711761678989575724220209276692225955038247180511363681037780144505921888511213130715603153368659071213469219452244677597375821406527062750088569041757266149609659565387082091781739077107482621692685326949835773035815715621925260391971524286335066237170626180133790864246001936545796082524047771173721712349465603123061770100654388310272632696208718129286281279207016344587350977003801668295716701845762364903845823293671023706568340268655950823255562367604657718636971558454093004514829051756136695146088906496404034647108718029604327435063425975378524712757670360705969282610798208012373505482662153039005942307107541864751005512726677772842002419519651465428059468910390165805861598006516131837229316616266793344218017400348557071174774963737392414033760456786110577339027456519704671584182808324500749492919297564026552207055440355944539596834377834855110949891111625976388269975713950024598725117232556591656143736128502680435965773360529257707261261863600046529135393268889044513358411939212422787200883613845296285796911972338415749124720619640581852358642143107826228027436517352918156718573090023466051006796986814603096967045413735269660723382263068870639827410059569004642391229463432922968342735520139271789437753141283164508222678981669798073506052594764511431450806449625355991702772663209563325572185932458711548225026355523663441987934011088583464273354889245714696139620880414330931556065558167057277939125840101822070494222380292107965276253689747024299202683274766532482832686739649570724980873614157262520626635250707058059855722005889772173014605049138228859526276436304714225557061409184071221120334145813317423480778551656213359815244374338479180645016078091299728036820971131916471051930613820161758109544147196861528901245566870110728954838143535430442817269918059671820845448285595466353874947723302018199055746081816513941477508730573969772554392001846378953106611615196028969933068194179463478898699059961683748043810191213494569670707131075496257063130322084748786420100620065900251159503813673288509980897364200299161994914509360571922629557132556761820352017287282656807325190168796166646263373146539724038745443015342084316718303129430806182630931978396199257581354832326268440549942197012756213110873683555466208580266031558956111840553918307346440534309514442547942171786903064282897506703151435528510616855465035892545806862957414064151291922222059927729554003754381921368395307976752522896665401675150753729404594849492011104568865364603948009489453077908248092888035093389251844504049707504954083662542171034506149797751496120723663632416515267872129899842814180458604762126508693356105854009280199325389542227119194209855767654786178774494192790515045924451232656156220422032605159375663187637937145847178459157991551412226004992281864540503422131805407227299672369635770032415412970661385193570792087266682155347871778497871756731148006536247840336390341285268734365305875992070018569174107132382366158495432269599384687003269655705256743348249929021773344643354967124568814951385452426536112602824284918866661626508123904883326621320662161707458502182284650996604462427442707024705735463484039046168944318340393572504247761767529517935348521311046445630743504794880180986318396985364727794720212342710725879761906780752792224367214880556953889629630438265781136287889850322909169290559684575912966446010707828004398218306205306552981857022923134480630078501721056829112497873974666081942094459788757548394077342896135232549293401596763042463897466221489985874396771133255108168737837430606636416664280429120126290034431002895310441229923792434949829453487439418828125618011583598267804943926350284036572209967765168630394503592485141276380909947714831094424438153876528481489083449147412334988204929900276534074201808709283061945366376079614682240010563590616421054963233678969396364547277215713851974275967323558730837533456146434700604496003814111793620427452024695867729325370767536093627725066318482810264010693676777672155528499223863079403794414474607874823169786119983436387891024348306650488434986619709200595931516109468514673250300317911747965321992762071448825186606509859991938882549258765401835056483954549903506363998769162012678106661351948030627465493270565337672964453502348161803126886558267836070593056350878682644384484602668276447279622692424493159869102638962621569152521897598815455457249668570533452482313103160898857496996961621955506755171855184594565532458180644103861122477634107403942089265967155191601021573083340551668021174030978849451395569230063759175055290236464049831170445394930847799243351630334657746915983139520870719925185341359445140144578490117808318341063994225684316062553236976020402406420742060447474665475001272429029986507347764469506583977733829797437615509428302021750054675419743923415334663478380686259159231651507108401249216244913777775966620825589858307385202865018998744758168108289450394062108403544105400021144483503852204173300271700820240369446463958162928301149956489287005514246743229487863823559870536393441891639094083924761013289565772355308704401980005982312523403266627962309231413673378798896398842659025282913156947060794542949674617074147892911315430148442857375604402586106082421183344697622746955553163557645495094769390352909514008583921744195167256582420536767368665247611927371824786079925802970698154676836660874231774950072219533870197943148934907154561037273123634583307734417835129722437093130183726702209246090804709215883453224197637871710526975334582168150979109452349983432618453901575821482705576638091416670977910636318229008632766516483385367228926982629772876927520273832774291188585139605478583096272405577804398602297955526705398686392632283828737141262270040111658097289457603821989859334177454954577336644566228028827896512264671805828923170109737276770540624423589084012189357066906349801210649498688972297002996660782308418235737396338588093362968040323173052545788767805968901674416322820639124209475914376300015152188770673345101253436162981024064721657128932887947452091826186856276499434917349852942483645246493682365046999030679787614425918909865256835680639999769740053963187984790620894868386460580687589462616263959793726142284044943523865730063100343187738140757096388943596221054372141719801924267073277484910446689225965334517378574525343162493420620358335783799938206563360332644582017836608685158438389243179678267003651168672640327644170765386922522978024925509324119158180989026197372029988816674023648793906137489454090649894648519187928633979915732155147293514931589546492494129409622268026144080749190268513368741147921035976893014884650077704060295791516906515212483262527751563039680737209383270984716836600141252382332038457670815748370498060928736534582678798482650831768701156458155297708294269915743903946640490680540196096249970828057821138663525484354600943479014096474762254517358828110557311256279735234943677959973712133492507602507399335197298495267311311156652580524185690434165105406911620036941626668371958625519863886890658515085643338287249916018732813800853756594157989903361239568346198622278055118646123588836529383188215142494300406531524254689211465648363019230936687994278898092686666399423731683808144914751533668925547365686216331535716784745548730868053658892554903273843327963555368343825108050484694164377093861965049556548419708782756525869632963423984292637068029271521383614697673286248984247249879361917773458846248787933460625929389624258938731047612878973295636127428603719667567580597373991480711965136008222085320996554676799533882455398113414781977494461915034851169646280261360233459665161644407156357697682565247322905024699853037660789426708508266421253226263596935608698559355649198958930556321688505330544294520307774741436892611522582551220537263296748547689201204234509057208203036152928026259345221047857995278583984713786597558628744101157816765256568659723182128608762365496530584194519036239540353639142598543940599296958160941878098625337682541330865293914995224641916707630591451270051329372608605756366370871933753219527186976670379611143366792517436575444129004841781949470551565352363172817205907183569409505167526164071825562394948688773488300686968623017905919941169331794321873695844633869128504819106596018690927893986685164251769066850646339222196407935127709531650210921063774020195667134801389164336820638875802344702289079926405521387905859149584608181990883209231701259778619797022535125359540990301912376142875171081173792833373088984022920806202331675010078910217829960241803258278365348794970922460749461398271810094132895560270866602698585546359487378743118651026216183587661816721462708201856560360723024398908287599785431719555831026360069743601912517347958448195926506593464121671182317943801242451017558111127651096343467292674072919916127415682117744796610881810658445298292483591029159413976786149487960148318880551312997776643350562941206933907848648838854507309568153621830355630579015963495064272665585346103990911284917275495127213789775255669091608831876248734231691883007678484660505710732527641671974433064132859865293981512587735131368745719988587646275225749037335158673819821975380095853409986758202049621854288475889329648505158171359984472203148404243733047197837555404177681545515892160685584073261418980736052155786011257429132990487964218562960432110378586072811553555011964653193870971396194615787510475579350990098023870717110035840473400826540276104539426395200656567614939195289434076764358324564501591238566821046327335544752474121309541965939442841405623204123806951145613162063240473748723725412560057612677338445075969551055762904218890338603725972530682196321948390318159776137986888217125789669838538200835115854712567277638829835671405676534714124218513596068217223876089366354163808721619015282323062559412016813012291482768273636121071764841244661752054613739841795176065585233481587613370628128218444027249639914244241411300258436065018073785047554005162581412732518788876094969090526039011601862602452014322792742198525442618878738942786128436946033264759732312730201355631358658571805466155593977106779879348538861787692376188397602589038878437171675116588636356706501309059507904350441899644390122174381761670651406926088548307309330912402275059474861359168259991511936647624974740979536979372053503522447390113000126938577068099124100361369434192817291181364673354386196178014869570402203606241671403120319698301620360154737308098613362877704356468089060719327003455369430026208539309917378045877578060864747141263959826775605077834830409260701816860352616151890539221540662059982541350989239983088646178997340732393948328196886958327269523609180352928037465137889175387354224741864565997828947950907750888222229674509672349999866711166907664237470869306449413138650694670024064910223349483816029076364067817370581719352303469283799923185261431098791645970736513020821875007450041630543018641770961627141369769011797175769227051366262492114896007552671918828564083583360692340705386293733319757628550510753868989551382434357269021147766468369733247081058655398240525500049009481328225931030993103250627966806107296645538336380375893796994053442534783215593527082087600367642993483266709644261309991627530783669046114643881654126524261237501581939441302428154810227198021697256061247344677634980008267741375052432327058027420650608469901368939602252429532798677235475239783864087035664213431383451013666913381762163011059422074379628308713245202856240434139517691572618855830316784766182107083449840263578207779699671326721035424487527455818199041075136478320301374159070352786292206873776160118728989607947228230557667477755482548343284658785596760799339732491331789145059666356531693353409208389817441718882169707650809083985278755660130646082149876230035861431906639074557600475184571347251416116394906373654895749684583405138818195762174832514457277004687603300207295888273021520204473840971989579549322391732353341528931531675668074141237641731099442628869402630878274877774234755604484281867905824941426059887033008905054204002684833742935983165082994262973527001230004380899721422585171560728572978450472650782676110379684571595809496133513238268859670085152063668646411965650881989681386987839827693817902146318876148687745619768354102457203776846199946807426324722383940390266484588983757802477474292176930082196875604813068947472204458600901624010229863086201717299270843709930872367700480617162817459779198977885806315779257592722558104087317175777093574786841621329918595705474385128360492075860950001344077655567750120497240311483427902443055208356770655973403765001669430007074634175367249957846789267238398416831805206456039202714830406504291061760511527735824210048705018733830093200324462373203361577795779547704007442196643228177417557814370810368778696097111227445344066663181528924072590416838726052747650733114241387110281596696005201474864335358653622728475169653658079757496257835185089603652584064807413948674064163489574314318807077712809094307825863703597402903449929571189067806782434705111737184956266910523287104370064837026491560520201945682729765659741878024895126709332049397082729567550414111494466690494534302260101137672217734855290004667871239929556269128156952154199841912755216269568594430068655866511509652156842653615532298724442048520796516024116194691275554173435137760664466020129917192241917808397646378681639410850830263135086147564727459840797690612405590128169284932429372038667802360017625667978139481952773923667730737489877707190172699662573826316380864669599340046189582860336432263930329655011913726802449137131446350379828339707447987470618717482162654695550962319226244511578815454802221061984230286615852584046535428448028812592769434990523702926293977070575985753576718414744740217338444498548290121746158977628869768508909338295519907271632800308100391186294030576218508349645892042227702847484379069791271343889408152501961990611960680138132596774748993454704023304287091489164149190649550982146236813387000201654203375550107802654406026677378487343947946413622339840865571615787398198954275592948223943563153196447999951171423385015270536191258098596275812364634362368769477235722187622161227188393943377270813701228199325613446170683658761518596860031113680185652360000983271893064585931280100214332399038987478913228832681795101481804883924670508477872178432582284804828917064933144661199311571451175197685611810393257619562185725099982955723408548154314906429942050529498576570834884229129092782638648415125103042471731727452188689662146007142515840353352142928675545485273079535848942065362975580095357851523683975685426275006040608824982996019143697989345254027249121247883792188514638399744912152851320718926893617047911428073851418960701387429581855517104279762008175907829286331105824177559807286660485128050539393965842448516083308851443037364119023241759839270343000921243713977611847233050420256728729899915750989149803727923427159299383381434446601413373803880663618469095160861103374492960280045876692137601179361614440053932600169476257166012272533804028956937281594062905326917800968805632842213810916293873511774734237352431693876280798668447828603617168251921301519554794543067120974442052503152804177969375941585524110534522011856508478491657813065014973544690138201446418772912187262036505700635375232331957291805431308243221595205025715188369935857698845467880880336133885405702152235474301094510046509803745290829385420160887195211308441846372110143646092550851167989082086009631586957988041079693922136216538719321424986039151213430597088829260120810110551989802951170054929964296657025188774138296888409367983274538587869274880444724971410380884809703445654742249848019929159760053963762443000854081762158396464593064843486921891455251161006149091739059523353887041784721087302148265426785601863520371144908764775807895250544380694328362913651785806701065558373818060062368619145531880256519986820773308134282193221260312192619100289295043917080166677629013890829195986941721316630564195757299323536867568623849534009287491744097247115306728002602473947835331965208409586315668129040149791667185704397500395835599750347402801958572695433853906278018602819493666967903536724864218612191914967863714799639778779080934011381108233758673302251668354052938950692329949391425024053459810203205371577546249046048240320585010417965049652319402916770538399241276122329658733505531735141715612454107404987537636936486108898685780776932430402594891764180369438977575565235160609729581209054294203515603899916683878609404816821119082519832632419284662073245486886550343465749610101249346574697730942133638402653871614990159694827440725410692412582748237974524906375897450603260603185254085389884209561857997304840196047121692784143241761283595583311823860479778571036767573399321105522975723408410777989601061025204435367989591014727595118260500726774618182685375810726754684882688352216281424735147505274268993220108373952712117099371334258119568628723940183154948689086790825521755398156489796050019176345507641649273416054110336659094945744888406839790554528932737809904385110706126947215781224563711566174578198979485939574236673417656731714337924257901548165454263994693186298655520897368357208416209196603796701154436939115283821958678300693059180781952877865840221283790884184663467276821012722974765110655609534083540013532734469838679541837252587953208523500981138363553976315800686429527659850839823609716777353956057588916779224932227083678092727014235202395540485601590811385523908728546662380962094850740194616909082749155579609726781379266001796498732074578157983394495589090533032283273689450555933754619615888371580896072150146739421224751434375588022107909871989864037070079559314337031376643991303186635463175276896494898797903569224289496221589947637374290465114960556826727168914211681091345351562010769716156572142521150580510704853022146263781127111830040763031215348574720035342513980196628975956211473924870056070218702607808496414031435965490614954184752252520303412709088802007208550779810813052259060751151274084362246776905554121227531272144916225423428460795142696512727249273249301684847824709245988723950048013963802643698209134158536299895490724304770329253372857979832568055057604179332695071376866368796881792181780090641430571617423541375929648859012736260707743390067241369034461057615503662022178295293141099602755741166361590159702035601897417078988482863975631167482930434507746405450235902705277302757736354691514557070963505483905415692555709847065206339846275204645401868630576212240881154706567886637623937162902957850137525298159203452352955792142608701005677993386434392501663726726350486928501529887093441248942544656701748133802558030825617208179995718108742563900512265105473584811064627387465947205139795866988540145613712987104214759463143863854169095814163286764281391114499370271229589197868182915911267543682075586490968401017032240132816261248100448033909143393991820887183605477480294936472832675802844220542726339785980366094721784694180491213007426687751841867984764683082925352295310228584835532186854302243377674107797268095734451942318166730498466192504420655780455972500209957762588685000177725485012688558527648333162084828900446709809138548448104173055942856445223385019423138740696594616721803398434569806135287420066722305713260460090849266231756476125915173061839094093215126321567476393465039015048119305016208693320217955333292093113998611241123813493783609390433498472961078104381830369564700243142347945032310214460418451741700500243943074873709662450973837170159592861386023385217783373824556635866124480608697649722351518485282805157741056758393054489758142405801030471671626490108372454637361508589288016939689595249384841506325866747714877391806963663549139438764981870156232235039052458686106767584366992004181811066413417889347751762893360936566882391925362484640854293727477244362230399389533329757621765674902883418110866672730912932041881811621104064014248058480795057495201964360306238670337835720764558045447402780824817041451187949251330717976258237774977495242783560220869240080680510252790593701572625833014931943852455899410041063012509316723043724676837337682389627515036705730899023724827183960173469673629611739825751562599899195876755596311286877586629511363523437019425387321912504198127909506582148242907864131095541850851288372134857287410549710377270713314774942790936698816094630252008114409552189450600965799685165896515632287434305845005916076895144364008226786463285716525342259189624537042099425336856637506600416797537484434796928230590297950484705295806114685189910009603023004504555612102278008997402939043808196747992708835751059119176617452554179258209408581154183272355825364822189091390619356453367769829608162557858288693499976252197481317561878520499299718991222824158116573749852992582799840671514479150949738977080689931434918502183801546600777278927547945722488666341613426353509047299638691639922597937847947062554660929557333278489957665434802662626473252855779945161201162025238697457422042315237110294165004274520237544173326223995352113072747218049181745642129453780427312556899683421613870777222186714182002490022389994783900547627844364539132807742372926256223246118497625658431360333346755939272802974375033928816324208922088684029463663438854510743666407227279436054755531323316745011526819200106031078430825444813675361475671493325916840959865170045944845954495837058825092509364389179422015937195661548385066858641481447715993784072216251307350826805671287455146790622041356200776411488952502286702336854587058775089451622315962788668343759543673308737995054661974130552792637195982931466989412354021688074732144655740117036296668940161757872550346732014516440811428510476415902722962225184616642938993070032474185789346145064979414745631681814667368371298986427285795773983855213801493728709717249713648462231052642655529444376680175795381003217539504234700474010988822127002887655780333400178864145964584729545627639782133733643914293129781101000195795978596287140208183788611942261508334826156945487211416627632970888819504885240206021003822231377411675425506777363791994793837415028498057081216165207959450568048369835725134602560171736621286771000327076479139019569416868449930635380593164510836800566621925336066882397865524682719193805445802200132888736236798050440919691664600864366163156908004787642917538213498587392761842791578303131989869691943613424977999784900617686567476016409752929422033358516490822916847172978332799182378017753627521393763569949403499588949638816677681003618084783411454587536914888694571230630465465048651558665596842996892774775274179392790694978518483203124603427281698930497147751016339352927454195917334004590676519845073134402638948181522901346330124474645646556361036460092884468473207942408591441879087025081450675126808165540053260878269691454034724570225055078433361773274896722614584885807114412634458740914035644679075817705238240625451149055093692829050717297177239820206041271646782654500009127244795844625315404793182394451143145541418732881495823556164447006626084128028887620065101988211348643355848290208816588719840116721872251773068596324086707434794995526624189444288163530423285008039532577883459126617587818025283263044598242242848661424097346707722320070805592580294540188490989766801494336221476549603105251647263741275357239001134042047826812883798924926020267611794381527026854699185875618246079467606690243636006057434010262736526984536304178072191045137269354648100742190397241272744139843358229753652842496580158892038711607740674887076592008723610412784029072214245432096707884901418064742959696281986243317263343172458809733478568630853768728380369081672887597781616724342863271807083080768188058005477066035992017088408389667019111388186428638240118678678717638045806537586890231334923604305548847972321761516944346751081395049902075342260389163305188646808760357452238323784418396636204496090093072353535737305294661110241394438225658155880361028440358169134556126980906089274105913986873560636462143387317102163326119981623744770578856245381368957338256381932305932802624968644368206540939776292911538699359787773764500247900155681410561506191133665220952190092496662225307300105664468740163847331324147668452311631491306795831188329649792176830619259327881439115338176139628538235493485854498838401224483492293243393848370321282086046687351156408139790636194311717665936267808308392743348254812780156391616815389024326374626456999204044514958771744509260859031132487002724498140788588319984082030358914736101285828023568107810539113670501739920193270810000488623068654481457685254950727396731020462645541371643604211598630131412678695356895877331991337292794237836487708120789767988214394803703143965598736748070774208978912718615842939233584065871838018864488653391096355559942021469477863838703706231491585181886953719805949964501819799624215253343596259487344006029383647046322799393961499245493543146410770688820035873586739928024103814990694845795897147668442658386579470362558686178081364151932604107921285740270613367627610166174888334639913932149322331262124166455828537476521122293913122088362357092990220966715113017827055631558857012927631947820569399738371959618424560175270258479261332989000865497382721382199871854316810267896583510886955685517643945415977369247705908427023301168401834667289015937793828994591049484659846932913366794629116280340949728180566491095596852452794875644651859912925022181957069164689855170212067476685437688241416510711440841200677113112261616278098274872671953471727066708246227439730285032688558686453624602349345276642146769731194699213105439103036451258199336320851781325412039500735432761509779820981062897106555631219837277395566492167366659008722900119056104194710266167660750585068626786196817429387059755052743507694444544814892796727552107747143984380249117609308381878555794497954617660066364843574782042567313476754617868856584053612177744050741538002599682755394983380984952906388381526745072140905769555525541868682612941303592260417121819600752900201555374730184466560106198255111411915777723473037617846025570988717938134610038737774286394404800732475201833205472146419870055868592161783986651743434646524166504621509549540448313194300917356251956829126258269091573450222650154677368989528077990837222776704890792940956406728881243720359676355856791680310878384022463981467394742826973635289831864980032050311971825265121406744152644514009788218460180040631965584881158571881494116402295954977422762185521989170686852682640592744172124915999401188772175032031472746520351461872271424982566213720624741030531925743143669533982050118603717143796818752527592509838948020362988931903017711470639385559449218311646276990229481590659237419252784935362411912594320816223790064148995424207643617500686474962406699439523740547136849263942091324717480252690664460327921649634425943879006547838621635581391706500482274083911363097878361208420465123015206297687850965283851043810959636557483833426681471999547696272393163598777466943744413132420986469299155200277312421068826881308466301096093202647885527335834060199257402766674080653541240673566521788867048819299735586661578924169917486556657820378513034803101280480582674830230377756880931649366330763729633956689006961687310173046507787072209171304974044179406510411273674796537097938252373218816108484450473317124199649986238303393578663859319955797015889974474414972685386062275453706561981955059446627019415965636727898348774928407085033446143902364492667525396651875478413170252359499452359508733482411206645025236632948237073540650719850617095816020577829094497400927209337383633857993106623108297931079077776089728384274160903431355726647425008013232511558364650063749920774705818983636971496629447593612959957530902245647959611527183012591136124199708550793283240625398654965627019775507340261425741913186235956820437269658149276025454373761164464137965600076053616786063010261038122430511853958727164394650160198659608100823511673327698580581002654113483562301598969053220466018730042050057400309494697502243661720215155675124266153144585562478770374634847049910916232626397223567800671108738808370033204380129473080279943101220911899253613418491551344222509185833009050236453393851953594552003223935198952772282267715442213027549872974506780914488758654896763315368937429640594344551319157871607293916809235684174524393880034350003160449646142053206114247789797362461326566624948504686040273273656591973180408264854807431027813930976620030450605923501250260364367945209644585908776754485342930624196004971521235603593132334745316735510330614085564675639593980017493055753552276496450146973519739689936715257372268835064611659511953968805741499386131877072420975076460722099822042360101275622250804837400116795041801922359078294786895576507006944248090123982211989336080225948326693841112645874963503334259285652772478800228621434945492658625339237580046818706402586192616225818211108636577293668298170662628646957124379960183711430439535957614693772141232074651539129300109783232341939695242914119607820822718607855998606713576787578334567970246057717222772300922555414549626902505686219987543622124294861226460914042180397523785227473333324173261845738419435630075411598893349435127843637498385687721553861729004334776922748657362631803892752948873347886280524913638496884737951222676850281007229406723407973414355993643983782422949453044411226754992934206104005426981404655736499473073981217081563256158733564358492517577401505925867421715512772647179297742845674867762787143502205341384767821933060321891014974628585750154436268363102389072429103053019124522439845481174522060693084209033585563738268508218125706044036794355085654689308395881106480312878465152121538181440447377884423288161914158784738666268212357374568123617587123743474490329297027285440434307770443235200455076801695763994915633918507561834054020569683983335921798621882756816773134837433246597555227325236794377975635624109698846379456519836016220065341968153419163596168021683708470808869200534544941296497427744752959316566574914063521324232780304559300781292901723251020855898349127783891183255140503952529368383408104756008362063936401440363438722107637174138490453157032833570596862290616898892064156447536370885688630100151412795594145228945057541401385581619634756106412715763741768029096030110074702260379989049229288183812476691893217883204919644055221562189500986073335647034251781418826499676114226273150120829041897439107176039397900317908393579555473134195552591413360127837560403418766341119302591018029234610955126600983825864820799713141302127493074314229561175842240665497035146845598731679028852355507875632063977737400488811133565389372498536513177685542224949155406635024785117363108040984572904417041521637467408296066597070911542903685507545139351183518511869256950512846004221238592351416034632760572910180600637175784134059964024151087416352563816531479004811865339404738608425967424791546986136847158779195542682803432354741240492021776707917675435731673434631947709768069835845949863236197610428885496210105457595579152630282817382518693335740296280634243873311415650033450973126049162140990324320913714373983821249667104766151025700184863384624538654393756156470471831590680709796226213441993645656739290747858723232874279762066368393074061230532002951675457952855726919658257315171148262865978005540713591028021823651866328643144101439120893159344990764624834345961266983034851048529914306617487091945462042654041499663070398702451026384460836549673701496968743725806862324975475603609487264343787763223237763888127516210179329903571473300481828264462613599120047124108822946366089195210386392362756052698700362838044873488704467440751804447074435676622696354735682562549629484624275679511156579831807275390225792277747517569359412587006245587129020504925582602491832238792697644246107970519540693558196255851242686880342986515134105142579409222149046578069336504646554770251854111676585207600741442527407373806644607725439212598217600757495063345372200761040814691521053723494107067368739654513385806567698434238583842350280106971784463566598786340711713829832274357870273050883729923861672415894483070837663449106263032691959675177386370838977477389098017067268548451605133821895102943597338629181932958872372178128847140873655504767258256848413841262740561384970915810875108959404408352816997125499857621673423145136446012445742636385116808117133538822574018427676378448591220582415281946936794332620340845141668497730784166999398650567433325025039340035838086771340449744745033185429714106968231059981714005357093590044761724662901023750575842693476778213639504367969721529096463792148500902245182091157297148753356828088257613361255903480775631272902124136732528574222477071015173199451235669580621835731416953727870664718670761253509418326776239622979212578615841605829898821062681234082212763101675981647180114270158982860095694635400599316922634800789312180190514714456416693455204492177092976331209551314030893084526458718760496834282894262822993306581798372071068026064427228098693178424761498716275696254817071345029519109832502899593849430226212600624212918646725049209082352274876254754379115981568290868724044343370548555657830421541519893376750392753676325511101113695451999585096074322754123061273224614923927836758187155414597015926573209920416424260616896232666420554178136378787235361321241304005180114401504602772625059169305066975002131189704667537809305426803803987876633847572652994099996589826648659924219251517280342417112645092856973417183002463232104267686835906936367806451173017773535372147166352883846384222427998766731816033960577951435108310827946843451832212410027768849260542946486784654856700507601673798271807753997471888350050045998722039759109620692085194178682107931230116051031400076114362831567812552546477789266290783532683623674412145624240654543139734179651472814843929405017355898769633835238532959363311537879381242538406803646232176703256965486392710456288151199852858966909647527937832435863936012594493755843273865483817113824927570744593564909538436860048132662634945894665536338941284337581567911974821648227957412932939942898891357832210248993668469919052592131018326886117886681486547264284962626866784482697030927322253496795632502015774973197066849874215160538223505240706956985151732102543892518553213365899726022710947607450211684371986676229097927499335915295529004545979180743660344133602800804264210976636643170401016156980282131656147672527688616670905206466246382052802225178022650880494744503546226146603512677365195144538385436733538301012432672020412944434706678799980244789399837113598508506043226527206714848440729772410260153784354123086056524447653333027466487088766671769131752591045588388318103996018145300608135009956698955454824028408427258718601250458082434795798999309210877301522427809803286455990592085536869982043064232245694392357890068258223551433162389720651929341962887501327433441565818022304830652332966243039173470248863220873415908090133329249853891005756289701119457155004446397855468885107108990576819775912547152454490305321493690194466034392210328055931117339731059456595508732225154934006630041961162342482419402900269782432126563338676035286929637334079754189052482351454400834382874368871516028718341759822447044382821998281630572768685318538310721344604490780690066312400707978558571436863731307361781164087499430700163388328220303089206660170979527607722757918573726410989984903087145045206717994095586124768010082388178189631203236041629114450087860719852247119102410085405423774002450059925747413662411244412166926064252440543614403355979810360470555500144167302678754594762494398569781304042635956995650409148207008737506350006094505778474666123939060420045655306383098924266110776679130357807679162846559095927090134123490842869261149698773375533154630953830042803339520008738081232256931316020483486702936944829963065120041830053229979234912752118963933831830488252982742500089275201857771803738918837017731034464393289372507061809629419524193774325303153086816856663079937130908391203297918248757641154226841140256394514416979579741118431080115594106520457639431948758064274602728405633473201616414166959934053147016082359921882604697309783543420952192661548396378129896126874641340701337575077061121614750058462449694272105776449315872351488534255950350631053689325377228252099786745647154329973177487159856185492050163904378504993685290296370716313605447719542805578200559047192882292623230546708516199083231189242429321537381413336527493310760398211572183518106158062729601554273035808868925707429166215932634210383364545997087462443841320738262099080646575792408094996451396805984006078731702263400457600903589343944679399695186540093513061527406349821910182283277307902282547384777870395708586312030229652000305864190306996723943176908010876383815593594383638012474588075698711414796858833682779543184707268004781313244520141256883298587514055765714972318942546842996356198049900461392727279585941890416552915889782047781950844935860237259517703799083323581046258129182609013808470150474713657394519955618642113698599106108625355563774022525154633371870299734136880786293877374935250206304484550711897059798723324789300624438239019098956983628474533076966898984974839854967609975160315706153570684690545422203379487089446789302761285902565232432662428629909814173050920543583989502235624810872399591325690137845678617968748314714597572898860456821284561869993835111405052483401658830384547812012473924899511804440074110530853130622573438166647379879659710698886834308697712631488726491384530516222255077363324054945828200646246542843674503314484655005388163418057428787812433068277494506681619462589610570645810687100970300884666700226915809180785022956164312473257401367940377871503449332862577025697306438939791955687130145844237585580392870510996579312227067725667179216919057666688006763759340073429090433549699276884772066042286934785323615075809021269233036606653377901080960347605587588750775247115308675341139395079657929622559278094104845017523210851655175358690114848947039101179797561928877820122404559249709070283843385365350403096331893782220537346427195892644970172943217398464797568448840413442428573255788173081878488662196665719892365940971032562910991362657357588061340998018648311839742688852948432515538597319210901813774333076521289816415822446135914961674359484970762547845946242103633916764832518041295067158474363414707489701118799354639342436415088432218251402972727702753592668896318254257800818768901264231089163822960843888839387934892676935429727743520122402216239178544624530952754902522934071790346528316831985043158956781738423400823601563883926376896430458589479100496209144305820082597314803579506597545130707301586717441300671633850373084560704742584012336189421328071405904485671219575738377677828713224461261820880962699460051108678331960152384493936975338483940674576524611156215080622795973561611443114283186704811072718052703041179586879506895346756075315599307136219815715084079936475351968417778974819427655957486521215212578468805190009270719948922556900525343083054330664893118442327509232642216828130355571545318682922207432443255896240406462276165287070134971649094150258099573417692889077581358276400062224657824070806082251665906805059681910676814144950941398925935962357406563553355224119476016058280164342908021598878339906037084663968714028464133669419811081960647806589120400156990672594749748433261660713455986419175206498295644895047102772735913148891011952544936827608186079421387291429428055641328803365964416105326646312015960547029557436349479419157233925178225195730124825169270962454077134667163993205097002126387538141963222231291937551861426211756061358826822187075579727860290393245655476854587920173648602143975139547124887780481441961265688929513812291398407876817028498697664879533859350355021383775951809793566119532560325537780904793621927281391451848006283637141090031088437227302161307786047854604344875269846824539138758780087475201832340562416112404068925549513589136837804004624438691648508690155838193484148040561668610784402448735301937308732388087023167372219822576866677970762287961072716058949535652961309908948836707349528577930220568097928913798523627471615616845469677139912198484508961688355341965465309846669359004654034976110528547078901826558409915708113020461442177300798571105090676831567215630839285707954782756163220023060039653313993289780231120243772759047351064302864272496311205159524672671574482571773828647719337265299751091827967090091214855095252353837018709197370630596925757001271020218661048846063639323882648528855242829031961615342635842001062030925662386497340945142594796203563700188656984304475463094242419374983062575882824463332864339082958710127579901681639009426371717505299063845980314839740252930850498366267662346084624916284404242027649319150601333151139051295419932376089669040442205739765591425386944327742649887201826169807690839547608390981544449161491541693621443422443145639601296625953883697349361321698701751969859443674050622937379434865750589648451825459798341345278224235299174538690965051957395287838637840755924031249222132027922384573508039495563497310204777616354310052992685744040496524863904099516099486884843592596718273636403490678378612668790184251081257956308107507011307887029508672762714095431834907143291752794335525315634477864161975725797064771586371634694277959836535850005991155734957979364357056481946281742633916088316814615434410251499756430634378346898616655514626987580681516355536155111914474492604454517366635128426935760562669227929830394335979960948383002902912152122521540295064037518236807910951852792558818825171073428075773621641870707087914128643559705536975656173387726537802763352228943887772283425281507986763187187223554827458271772886183835803670944935813482578711004856000912173023259796533632529336990604073093968975296209687325237788618795128089526814832716712889642658222524890286093940108477643113636178669618914634098709342082334238589684533258518217352592189237696007510047462513464789569530540852597042236626609441610625960712512951959766690673249221712483343050973657055970562033873347967670749226949472113612530598256589901485342501685529507332030865188734882328208148628028924361391881897105281291202072161668597500908870714018815323044093256713545571166187795822728069547591444914501676780554535245971279923266611378228879724313271140598203492534941997771605921971926840328459509155833804199516388508167601771606561365066581767062859185781575700683477637846155173950842070532494385837964671049789522091751226587082044969659389119369794788155807866725784429961666403992984832564079842724750419434005745139257014003078552995202101818995330476990017302017903376859629897789924933704239436304585004385274622480179296628982138193909289751703286506078538912369936919794913128704024300314577470693281942273722740451790639725342009814015475444909029060812098965730329938140557061514519779511663529392840547987019998251196573555385818743575871353895576986828324482315519224929473120422435143740996542936541420738373250827599541334811739494177154086866590070299277028079031068600927500563812432700011066376537482325349565594594633053451684711499276819888764854792700992743370631119951551921020180718113005374275772810160912632651116635160191952340067521302575736902512421413344670404953164371621402672821577462552341027048816572943811955451105707393312385354688052602993596617154987756769197312186417463406345200461825211415085389718032068951650921735632219997349691138814718892096505410078338089972660521492609679144103338447263603718486653506919917861369898959409080977849021857481365285474933130108772710263321504397596717331692509304188159430229569937902559375043009801468253740656854534904744536538196703806115551872029753082771568275753989195656901149176237667579648463349346122688185951611321389317863685428459423822336938862699669287865285160039005276917305147043249565615195209749619670836667417571416910844304039462611170121214256238322006051637165230410912860676947954394020834086624043919876587839353788935950367290906760156530532614584980738543699645563920249505280246523555356725904918518668249691033570349574408647197964256975115454056936007768987425623060912412928935947478355264575198408464660761688144719672512477987683389115540486833064018679938821053188165281285241418300907181546479275916052331637465568876252924266456402584414577084222434692363597492534463471575751002361171060512713065624252986164703817593593720677703789814138272888031947518863724141499647769834047984133424057603178584478141869729532115658298605883301413736201580641602407332725535766383657607075378916182429014371559357184649219383532928913674357258150010117792738310415454155486647879902742286917444359906213362419964445342678003902780113014816843901240068235131621687307177450673943364496887188626314200292295010692902673048796210473704559164128629610895529022626459080319613526563045485425470969890679683642013199642240284429387076079944265448480036912838487976239646839837530299994592107263709018001438329384575660382109688137293171410773021830558254328588851670468829924041983817147273533110245244406150247029462996533062192320360047206272031540613088754149561574658769618588303235244204284145550833321868077643629191385610341138014852728571669326198050112648867911563292788789982599818212140725409388432008858577326666970347414451229688849141472823369807575818568862783123572000696426492273631929176462087860709741325134140422218637268596282019223936692884938123174603533934021235074162527625802193714754028882540429190562737098956646462333875757989093519249594527578040784269337608084610013460433952879876752814545495433577892398829400833227962389885404919911597747247473723777159754635834128003711886955510615255445521483563855116263464122000333687242370745880630080398150859379016868116607638349447940690445447681427135431325173649035929777141550895503973458064548110802801024084951404139515170425067256892465172795464856556365354425641303728341062289577242628905241123242944581806880467801777923017029508566681796060064531822532954385749204958610427353297769235081288592973453874067373849695225332612524378860314641699642799924247295207923104008458387167853822633926778611864260172925868915848234940956968636537059057235733651107471144677525601385540664574417513477007167516356623392891221989820467811948971296088807404822774823166131032697299143001650787436516200946713712643846676938833441732909933779335137006543234276548159625239147813585232380071401016414085341054351354488009338237965836067052424933091317579028747946294360697943451243063636754154472792170992404370860685186757260434800701938272331917671471655203488058781523432060709314512371091716494486137608358009762038171228972123978239308259432493958316935232781468641079863534068278870196149319802659463689319022624485512197925431682135632349239351853973107486106778279348203610169973900472742305623998581256551843459956581649166970743635173162573555608856778261269636612794284815900632428295903297269687705043025365327912373838352140225106360555338334171286574083534296928246426548217830034092108243174162516635235159122236831648152351737470133930872136242993676428324867320971020059947188544890815709140796708927059521682627126277792886690124782981128212791907102019481077370212472907181168923957131849760349951785628279053617921716075936170244079057594526920846700544565347957008819321738306856542513009292035796112161729052593553722240259352305028687488998446429849444500125333161343515413898842479952328616632515834237025123357874024300930697548226492229235937524508291583695483239675672433511495248966557369183996769257619050500817857632668148634943730716527203054539481837061083266818016156610188385052153707124612270258983682827130336458101652599224696949825474707223542233297987855065189788717534309432772607848490486418433408107315360890227684512024177771927946554838883723792733307355852733901846569602803357098001944697748007742275829328542400899824340428831398767182302102216094253760056193062683263058322481048651403710124722281241908476556890557278964425894546008310738136648259369635794571655952771856997849596011151884485507524556715838215505366090316679510845239154319766578444114528793486687868524610731101081326816496622149116937600091846806466236982750652804977282248246573246831868113523061083557500112611893608594591310967812150865809339870513576691869181447843782367485583791836420377438132717786602199582130918297271702311263669203589043014343932083411997775165241047269553134888968066922977746484279599851108346784045666559639618802688222638937628021009544351956021639253820170664941963255079713079303946112172941642360460751055917025991467741528787053301024007314589598125799121890668647007282649033765351552143710179217679828054886712772577214478488683644625974296392356151663139081908420490375168093913077938191707704676238056885477827461424755108914794242559533515817602485078114049278042937353357608268453846874083807460494229938610002720516876728553642699179207895476250977389347989278092310300917708880517894769680618786230894370836158684794110790734167882586763857117926040515613317701405829607150244398639266450078725372289984065834238902956696374238947832847151034021557087749868493410443706051314836954611019367198425313718737435041380510124553467803010204758555063730124590862031311337103151770262974202237811922647760745792204070057630210194128267276798672485935787551158666555099939266471389756736041200485592712515334253684872938174752925443265909181218305011905867310708729294106919917419448543836778595158367637210872622130281129937617680429977811822744370396161895236237282345860439961441604630342777960635659145261389384834347771287285597469499518580653127030656166076682938387569619479266174536908711041100663099764312298195142638163767983776722314980896995480549719343776638993660701779928209429220269315515347631432215561349533216015426235422663594513033354249962723979647893641047398359864468185218114926094805373422945804272005530608442956007840752812057582054758629991647903523746772856174608418781480462177982669545219104577407710476989299060841093769297163100169067742070801868799708564237840943007703359741050425519778564059794875299220016953918486361120132786575931894754449069622733360203679501083386644752952337487507481729321944889847176361140818243137111885131935821668033792779585338557784309219279998952601233028158063130652996486477639856565720329251054894874157601304011425707784883011993761667183320730215810413784997719010215782894293225978581377587744796553431335859355986859603748915952153849626042817376829185823578831066190865989328405695804423063507868798814779360231270924930232814922750561041469816277964545067707573490562396768002265927338380254014121988910998571950816313870889259881920767850133522924258284349104200513852783514999236344648811354556670502432377872368141783003734556180799631088874699944841812208778842020728163189963509908243186310360913132198954950815341098716750124035103837997412496453433392145622577655069366966806883677004567918649905792101920571334568816204933417680243244240429086300984043818048167267196629286742996499490752539045559331394932292387445504814830187667724943302285699842006668812495082026793974089663891224055425467663516464047710437437574586993534682320345310076882348077222406784973029711576694289416458858042797320252781206093645794658099492664201243808848921133250736839704469971006129347744570130311517469357325450933624207025840512749405812232622952282105826554959657467686512490012551405088319409620841279768313457902851834461284634200126051730037036821147282831291576509567528840479668339439923600576685565736516882156620454577072272135815858426747304139745873729056823165924067526390390942655706059768114621800864805799613179614805224866652775167508369297202677049140573861054986913528920041408726146705084975475083365103878714844992962710732414031700455831483151825216368121377988945512734416183138319093022563117322141104666433967949481918811564223136995994328793738281833742404053629504657404814420478077251205513083446645684322719812918536969696082207416410555499479015609849719032407756065834180870032484450656615284099685947342609032438972996057817432980129331282993809979803405463485908210266343786980556795434245070126452340532950490584522228859048679297808530134492329915343437931695412833608588585262792026835116159890355888140501817916143472997364972327809435411215504603134684006875231433525853324175234272767749020313689288376875718489136363477861112429988321998645305359020171174748129345764919830521705753229647923224195723031833009559288110495185907550597460855489598738902405863176404995158582171512581547598309139118993209826360885774102580144803831569132991898817777331678766058452957852565822854659538879186124758217783561684473288183916900050833988286504777337653103850784429873215791485834564064557295712182530947784032806380365671938253982558720616260276114721445909893271387159247272771558244245422005918585049497120743782561129396307866847980545817370561065623416110933929874288989244292987808906597704964163011378976886134619151679775147475671689295462374815597676463227018070804332704510381651947102108800616877987306351551774701314633328005952588536707858168779046787266294364649081548193439280539985354602638583370106974175828980404111912661149300250066170229752728904075604210684710890927497052863775180753931906950652501868884858783155599513803385649300977977044291189702083912485988413942780469107173478835187936336844288316312414470374045771275877792607149949669526686833231839562075143580214562586389791180090295020985780537942563468847650768274084052690864307488171615938582850303170507417203152682551979496642439984706822301194678802483040300332013667492537193676261478843981875762004931256709282407701332483761382147106015279885105467232714736180556700605673490064107321287302412118678960651521563470781913462823166291625131378217575920345212214664784480619323500964421342876494146986315701632852110996542462961870174864392573430325985020106102084980870839257273737267846750533654526642001118793074770459984303565072584814134295244655829434671997664681874166690227420125540995889066269183355967273099806911309817369970217950843662464269707377327071309490636851015787339078268008639065398509965937045967907968058538714338829542843692938287619274960211963395454016459930976666423876438196023664043864369843165650592844723145132192012179712421310344637401281173195961282742088211320681722294117027391926066433376810451946039203632244364984937977308176426726647830014871236630123690077077132206592384578600841013505125256747421550322532590406034281688914570070647928339273411496976794616936748900856326471353605947157721355937892530811153983590978355870329546175937196781317988702155142986731490094532607970577939442849577087701596069167279370721798484278117172849522105927481361940045964410154740569482885370448598855855546842923239419656266180202536199704815488242455931270216942134957413578621310249028594778305907227819770716678945414619802285387753510741909996432109063933233405326145067777750259586227790949019247112872685987974670349241577758287608235648715690900310226839002473473556855314968548331865202551636089951932392659823836053165950266549868018116128332154185666569454556508051641154760145334139257970189417068140417730618049958469404347693705400596358250220767540106325140183923954516643919087347008985848158030252618547881804171676938750656175052729731953862110301343156705322753489414720513284813701661385398529375638541202323674574001411461094122474597532969707888951885369015447056901096247022672616785038308149434458650660923925934221552614140802483387347030192357355010485350452080797296490294895212582693242131027208035548217435578086060131086181823576164842292091957534453751374682167288845274580839497369246544011289826209164620277390812334218542718936950639081528787158313067032861881568958219641652729300004269952864501805200315698630187355121814245934575690933094006573278268465044708799273598090171648107017408171434221116493125325794406924327464146319328786846685047894097320401917271181824387994708953056908001074574500246260026634094283895538490779690990602954046728798019463851195031835903682183677175445938183959519017988956759640258073804963424079705614181640904147612712572557962474365217078725517419428815666561957204397030431010885739106741460121282087372948782556616817329434537962788053468514781716852002300902109271322981153784531170681092068755267613525604324600832015732875952061826758425469258629987678523741500022104628273154122922180496302514096192827565731097063643604874980635276732198259484880454785800035964120773654202178824880368825163807205561340690594124196146617540682675215840494853270241499152348771398404960269203670086110698780600411950435710777523056753936037582825787698970216861646299619602730771156036396628839722253553342999188391834007217191100287194138608413203335137982774211264778382123724906613194547199234385714550756389171922773353924337578093318203715024247680960934426673470420736763870495599548268109862708280274900560865726192477906410597559010620816874917837376122793802568334516142680601730152198613714260479516394721956747113365074467899898968152689476993922049719697759739400161734932647981229247248510709572409925623872336616364083165164052967356678950366276284235855608077532833825611186614316289279586961758287860026586568122663665714831486739515788882808564634704767737627603452546661738825586409837307303448838972897040858292716258197126716757750758171584985183744030718927947329269942907452089714275562238261478468720864351318049764567473638652248372047317266235674758378797230309591074909650220925693907849652226404098485739572097321004206836223948149928835722121121532681552413579020805175361191115147666106123345098706852353111893711112081997433132082682275728422433126618922966207456966878621759267799467230164808931476102596167499156566368039792141468957077360358886625997071033096137898565157826261497835623642113874058300888375793647161235439484583108907625589560406580748229010484059877618380400323087545626510203288022539943266861954047231443169357996521708532966676771283003968730326625779547553533179597888297495960788079702164572304220419028036165577990594465028895626291908085596032054075186108833084842801497865410942810890041443774224698888819715758568069212337421683095398027940614879991045136882760406798526152119944976696930624848186648763587440568420331212868806437335509942210025216778154303630812763063814778538109774421064024019772464431847519088810145250385059036252231904442308156837867001829721191818479879062384088736306486262319593201826599738583542781215179997073972854098023992091179864122811575726135089541408177744819517161524377053670205922217472574311880342476723384184892285492559718329141037762116043161205497780238209002227070746642047017662752521081520594401804559684860797713006360919398258237633461972258466812095719030139462931016296710878580264895767106927350098724721408966864576353875144698760947443131601597598133258720006059420985184350089943754701728083118262825040107195842335500536325197844725507338572381552744374608539065658833082523606308318483281230494187496881663183827574753456294787570467364796349965498992459916040174629808704373412151034818912930463590121283263518261327341837733836274495675562008145241907499202118300886661383497699146495449865154439959488445783757876157538254165603291819909192310038829443245027932077331287030544864896900335842794216692290256205241665983999495436094238264110363187005470317135048518823333600686135071622867514214936106151100167959998440505894412637499181906539338367825918626863092918886208332891997460347160879080806231681082268376679833874715241024753156396847625003522989905205629099461880706116162401782846407972978750000461539987746172792955375453051676633044566407263210566489998468855855214122739893990178319916111006228128043294932719072751299342191605817666617903246107618971779093677330382215805510252318427178736243414739315424705691181417281972851137347452756750378022453460492751526719908969548144027814355367700434917796774089759550272052936153397308234121916528697625918422749686363815321928152563336026632969744542075708383552721255679478669450842378129629605802649736928503492002819230250015833244364857818095101297569365273753481483063079852608438423420704690546651826942119559385871103682950013584979857980227354703143158263151619572966567062655717106904906618123908035248363933505712186295637162576190189359375309120255842633563748840708062077533807424876682407610240094205279924840970205836688277004581177370857658369198036768728008443161811188209835823909681278978678644694529406101419077257137429692747274916843089665802136638236381130736027233610540018663326467388574386727683221452622468821543820578101787705601174550272994714396347550199810838016029802164147097934876683951901877133453559061601361141991651748792827015608685486252749004070668339080975003910313211661769509758176423573339002336693980354591827883278027861761380382021748502611429776017336904699065478385076387786738848544394290241021045247201170284917055015728495851156253439480839088237633096648704322580685333633743246459264229887534776740093630595015290563253758897596481459433603050648140246351440207437422237140193923949463222088229846269874054180366658929676970056456227277271498812957331324846110844098863131154201134191562061625209629344376603051511514049693136736103387688984221212510358269807435325141071688141354375764942406522373542660445494330424864526941444145477428142766892806695089647816160493709509770963785644866662612586080794032140962308134472782466114656018171235479493403034411965535137203366366717564014541412888680683193319186435110210917083669487036841538043400906613613101733472490530073176307465002971644843922910903180785543792481831885225424724131487780200505857735773837200327572210361860111462616682781752778389863694071498366628109113081942934223028536875812134864350313472979938818478910940998302672202596034144021611326656303338435382723113896153517943739648874554458260416863822637820763886218921969752866939420891609251062153930415764934596249034737703210277465181387676804365773634945996322730517666183143123927197553796514726008845402801610022021178332711791887307160864748483126574614048814585425544965279257236588451396809728873789720812472362205576671889784246525065529390018149445915280420671921781503250504909462785731615653479464827893790710040498632685622157343784877281442553550371830782768662792684897441444723477151111134903004049219780329891906062628285654245460941034895959358299138167542478175291765746060996410435515098588666364755888910922825007817797861953281351738882488127023139522282603361241553765322184035618657322578791259240496217560998078513401396949103913049047704501421242077035479689356725430159755706900289699452870632806949061649916747756382035768701365037957126015478355843184602716066833241360464648501367663280349964102849041687028507687671807054623900505075493134784782873821010234093376414845424858322195466314114322687576561324035165808851273932245113405231629187847146969705936201814289989292584032971660799289147370584783372965533643114288373812504451089058283443791831341567220315970264940179343104287128954756283964619505793356912027343085769099727335749386540759861155344098192741413378305284949848098945867095070580200729141082890428293703687378426959762947981057823806383385800835581653526471464028010595326708963566199168977998980919382134318795775267953788472238037670658292335593955684267281203997678729123209316886374370601853023894459182549311725530858699875777594096002509516188332067233941239321042249735433220590697818357149087567429525182886222883103790056061460977680540831062005401935717854358808162600395241708192214330254962400589636257208693690186179194272727202025422811610859655028202592003164181425558238858053921743293844962428687323769194155947490609354785104186481020818210495929440677890867330703311008847523559923735694032327608625834336155374348028287112333739395141167713786855299151089297382135676352589832484253555862517844166585208275142592467658486212858425240436518562211028591239754410780105893921654332895939288807938592439735842743064240771005347330045690600371496571448385523324420918725692529929379162880763770927396658162942058607894555444280961153046569554658661684540223548306820324251228462253982500403154037078276464467463770462153359009709318871717497994740523170539582637355135987434144297772102279056705869138868556458935812214166530259705696384756876535348277527201172875742762272515428942386956664916066293576263022163260936746793416447591564544214657077827664460693026926220025043588098959129344114987616133799637304906761899922729776588164530117970739927795303032617279516925675770437391179941935136388219432844653370162824248439365489802029823945047071011231705756656583965553468410195239027773291514223282315689288726855650787050812462335423985375792329548747553202493115442493263354811362765722588992432721710007345040872647573276879740442142335784345864419111202929451381797324045488331827738897513317130188247728345561350013823269830783963423363333860066886430466050223699103101472322650039917836643543533610561312030863237734293635145735400188461448024684998431010707615108185704392568537497430249439064678251021168868059621698350772296801134077933084591984392110702183391723327229510583984962394356952314649324141377149048546560465628995539131549085606052146338866436041623788856363455527594296997317793137112773405746564623652122005208878616956338189874657736076173983937216506438492967430556143311538884284752953846000810894051629836298600594049560678892896933330166406780589541835263721147951056112336045801748616376474330950665865864873742364885095889475788209582742866059672257731388433005404305126313429686683189400120072801512709434792054985512049358230022058082536403501955175956166076107165616274430139466524645898977065889570494187439068476995558103444878449089142618962048895986985085324901569094566001816460600010824873032822072432606872755787180510230082716458103505970112603541227384504682221743154713120271757245727957302380711852550389205212405046942214290099907066435933106742410449796391303650458358765147479712561104821276530667557895340172890759633214656572053284329317750660606445275288048705459370061995300654649589080857145755714496720365023271742410226353575450110397309516076357689806991769603734301527097902688486842974759620490436416904320314758284159563254519226053641524994722754515310160269164983174938177307443359048129647010393634667002521015943632679323908324068907576295110724423873104979107984001514509895090749963783980450826528951721032520732617777711379392483145777376677598745940289888109588866075773743747924635541462577416721544923871651356226784917963966022917005588247000987297978955393671615005671494421545776483308882543149093320155956255153205528621592407241101077544713550583740432424101931763623479735326351377649426446240766492128327961214017768782945368739318364746652643042425602721774098343072670708329648390116833114291381272372391800164652048866178021752414214638630421779667298833734864720925189034023665895979148629009683485122178693726556087713438981999858625046143177902340913162873907942238724852405692968542633015339921484276300309921748447294204954937292249629579033563462286801591922027242331944397401738622569652716683219724543093288416663921315483534316624015440942183218546483982825912721968687176968931989813058430147623559092903299021583998658991114665376844436333982760705587793196345716109236983944248114162067111246275825788123383749814998403040054439149626868422632999288456722372235871558852890021520996209903824489693542089181279671324968201248155856898188513429352132504670906508024002210393540849188812998733000700864984433591127316054377188543478020026231950852174132282662809582962142949086374972811273685068145246399681156973020922813650784362635899393663113463570831879855306704147031895943118766994579932062197538813025520005437163679684552729352395067517409427238051474001629814271678445699485428977324102733702949291665304133834316639704905541745513373085518714791773085556237576627868038470611719110622105554279084858420274933885851529884716783807950399384742847630683040826012221182016039492472835893354709486824820532761349768375547174844136635343848816020108452760863116928914092019415491121063438685485959510114952916800197023567026769894014320493105629343006236662183739505219191364043562661199632249160875901364962757569496074312247842609777108764460966754628201650088010303093774038696826672033177363347107497491126979364094220240887531190296441961897554777771844092021292485758853006049888133217145955650650874633674468812584347813717303923957524263533049730373660603608467240021113883072139998399003439553306615245264600726372564153354932295818972042500610934364660053560976722099908784166202089551981331075779938897834679545380329979120794656369646623353070781337690469353740403889191116032980020511294198602825408703249086078687910554907620843068477413750333696190237544287407870529118667214644034365291679193099069472309411943676736199163236995306742162905302102728505080587943697439713318051667442000388922810345488253217456498768191562235414750475131573459364347813829276920590185303618170047040500826389561675249291186802490157077084182495837092806410833139366533498838658869010412913433191751797476287276842216823428538286682714529245929310324997298915446014309926044519818597912763353581699458735414353064586896714472034488037238154189742786021301781068301259480763773086189846961090439674501643418231416201259447783409789401691438822096740726285481698402744170255081571614920770232886367961672908039924934478918777429608931485878849015722264221023898646205916455019226133892119606256324475974912500152442388142391680400180803573972425748285455593718878857096487044992337084717265668740276112562955775593609069493025765170727593588920370753560055417955037834131494030431215068223928621845216208704692572779815492502874070512452965800532183428184727278117574965182164112181916445486761844742153990084089160036076690451857473545674192449706859934922862566086880989634334372306512844068668818043211252948848137809345455872237850366897714138155543632636675148391490535329314417408249784948910330243134457873037340885127627399970590603573509133601933916226199339473194290120494864381778215565746323354203841326687751587295956924846747197234035985905832882064790399552000520320070804125479371979206069532212220511345419369161546503303213873162646080577562576608627852371760239994942701024892635306791345553230847737980631681700080660094248225232235733318057722253905982670908598006501450637802179945974376315338795846429487992823124763305132171670429622146775298359362293425413858389657374996487245075120655867634749829616952783349328459632930749193194763186680390869150243217431788300664352347419823150151019838375877901849137689033292767175170032707793684451780462756703406089071427323077641363855618812670339478263116087968868302764592865292425090095953803199647215385072503882995675776790917678821045464753990870306640693906888462362149064353682880690613445237268944077591478144638880214542447960688262718130190674996759830926900372317357894310564292815555650529512726434093644976877007764019395664398573154261867151077841631915129341372005482625506502395697070735022103528660263647570899633586677600304439048814095137135588089707211345437730833162104540927447166492539311959684334692916813600853183179647979386681791989603996335610480218142549317265448177098540177319771001610185370985191913104025550183641567687255917659703155890938471432011483988186402553092789894776418948407743706220625079980128706900025669854565530909822524341083249032119972598119194868650292727659888686025501809943624817757877647309966814469493406949997118652266715595406001823106726465997674264894099976398673043167477822009131681982572549144446996334537821761138156119528406449156712416257263260145623451684284706481208843570106677827820322475579586146626049826311624876848621252768525523299412845879972103138899284541764587492069641202507367845607258120227293234647908034320144535544857569475695062097673802651685542416344400864506484109736978062315036648948378657946995854814937158735864700789862233118143567902470313387543884181890324185933814884704468847222712474607090242421522832014164423841225969931481564325374877206427231223874052876595772056055990069667112116631267559485054751518207805617691515271089561592554526830612815011888802468492324434776256652440779718036008222353478194026138224489724881719638772430738360573609998313737119130422508457499197308343109181316639245578878441480260773973422029768837018861197518727733031751849746215527356192923787888154650973690672179244892291120855190849264959809065063169393324010636370196489610502107359338009877537490399220777564531645686485409770323279003068846711713759666332007270370098241088415345411613093403294870918773420726254878371913181672924428081480435043175281092460732718612822693477749402656771315421947847742518140638690109485550021453441032342427002023235947557805401559028150855253464646282859556955358753487264434713935844597369228954692944761053898873665663815133446692780077185937654592798423566803500408401678382705482276143533547550152184346573698120483052176058086035871867310082364434723441525789972929089689397575395433148790909943683049956424622522217097132194798930805431607144367288877410059161358143752994425079770259456624142100647558247015093413669248665205608093995467382836671956056636146988530458357767887196220253904285268215063550388458056622797002199434172958600745970546892734419844211404252265580065630935801053852898446860039793372444949983658045057519940569236976311636197876971625247525697959978264685692781537111126022778995197850612467474872799449925447467177251847161201425773255404660513628606448397247887353710010335895440971093186443963737800480348849734418183533409639821021790121770297163526144236695680794909294898882801242242213280810976719355966276319864036127336513720510589918967337173377923597868156536972839380855636974216985816875936640420735906732426866227187136469359808999193870817331201563986512791084982964446193510461932244533087077872728702763690598566685481634584001695444563707904802635445585849998352931043404720875136279420298716282874772134918276375261358917257424848096632852537934817272417782620166529222641272685060264567257404850882941722229737790853738747504350518754646817028395803287919811166324845664472906583748586216767572476029333132882726182349657706922032174347937480847040849854287478039717598340648494140838624613053173631173204153651000129939512737647277225362591602857606126887655304559258032935333201093583791648051930506718079715154518353258982775255744381622438034250847937135030176827963475343710086704978114420003787455604002551627162094857590204927556719543623566780237104706233958917549027417507320991814862424654607203725160601631462858806410809141736007546335036974617342119820360411697524890894202154550399120810775113979701409002803418071377889873699126637122280587994383336493501321496020731415869658622500034822346629203034501180764593758399460817377955307455427129226924016744437206470325558946162970120154501904610171987564360729083683466997636458130471002968026753807329701242280862128575098748541779637566621864978847574464582773198836209695145968465935842358186654415502940678519193719187962602476047123678165980967267742446782711515748137849097987942249124605273055476240866751237620612956014785914728816987205159411593160177417469850685300393048578225225775962931574713153212851794813634879732668270300311547216154468250375610001678273301154973228656366827131796522052952836967388786025606491068830114914422301045505400613609258322765273308481957784233089398433495616406219070973675799305272123675806184076334811264004993041341569197459178536586546201199730226109298460471098269968245614657092726306008204156268908465795790634423587029142494604019778946475244141940128083403154613109822547331006577872997387004137761823974189987460366878402720335744927410689097671333403497216593736777242824476454014001783725480299047259287616233674897070033841074615786488612828000992537396547444327492468168325195358542057873235506302995943461229601583888476409957704109481753918513798123102386393007579764689283309279124999104922333735226218470867590332977504361299506109153643836801590195458646213161110023614452687957493678282321297120201201243697860791817617209457549680994316834510742591298737642208334943736159253478178016669646624685529286053412966862247662674815011557091750108372822404650345087041740773627014983178879429222197938311207768505269935680167940750133460952864531708531129634218854607302212386615175981876915771906987096125633878610594869358272435250501602859256193102559247763576137719092378348674254130630920538197935261775970149420700325531052675817311857644265318207262132278364459048425573467638455697868685048321210169816664043766081892085024981608160739220253302045856409759641126537784857787131283814170824742656989278549569684744132960004345219470203732906491199951513909633480280422926465751655653995733306611810644999329920566970204520440560306412327331881709085337217051680867333422015848644137127100214045365864219097383034258031012476106455594264327113191565344638828110612417238097705659473286837286766439025771314343096975148574745836822028048242113416012419132562584027502288100515312438464865476709348076880224078771645671333555666233867658449580865296620986053016421944226254260915493169830709263901303040396418528173979051126826378398877120666531835901655799011703459258984794640434403984829821121789517478988888697843320203590998209187088404593570958159358431967967901722947004399760919334590372546398226878669974743929803443233163382706467304080381648263968827465453869064709479079359289952064665226858516553397792147374239824117665509958836337360739572908188579374075736335701677861166370873739782485596509040468451203815653472194077238133667626369705943976522924820207923462903809146244664702655493459392407733426889930001487534195913599185727696885851423578204000030410017066697698413843389137144557001152940740298034516427678888737155208022391356019945228412420432028198509687382834169722625308375583704195647305462340167501995606212576255142683823655038088902030237439665124860137485935916579049035222512490011605744253045650564688939858423209199981140634991457607895050463791719341410346695644597522431038251900763569183917810893431600865734071419294131147759277900881826103847005382107716956636161418139777474782384887677646354830069400358566082583155353294483375681563967675479291943893849836745525620801409121085453714704317688135645155584802549364621931800079019782561076539205013640505279351358088869471168638314769068373196664849456900820512064184825544993448866390426196959597235525203308604229185834781877384489079417032522254852525123350772205134565402919634123645992325773258176923107808214382382267875903561799751695254339301547595655080099784539173971692471998588504680244922233209890266398419521734865417596178910275045328008517920012894818275905708593441450076679575558885169533375139079808927253613966461388349805602529887491782863911623181818429062215123331999164898988900607538173446867090303974288194610666549622005494708330960799389261138566677888916954912014176067618192838733805627266751297253498930428673285094087190166239219472145931149552774283710169485525506588092608283067468190923413750702250036283234564937661455817848970523348081118393870843716318945756598241079114629522372955968564974598806911894573226953861751568586138270331188604431908073281682923192547652829895824068581936115522501658240917916158759241598800529747371205118190722890056669609215399074515974302778215340939668674445294049853878769972049766261745767000262147218334835116198765099842220949393524608662158413083908059650655840284426794152173520647047096976385659892003027035027479855708755885413392770958647472676729918702640710172650326803720119396974245259194332055805377141707630986565621065854383303674979774102387161541004629088034432267927947462407115212083172730654087244406973868456646014122152790625455920786237947117342772987432650699402123937946653119426538629844396896002895590129327662014562727479176412886859919593107083077813176807970348015331625591045066124994315367289672958978050330041667708668532414192029878927129989492686156540905218768391191475112854957208085347976723580039809165079023541044982080829847424810318048479308917923634147608892763661895020856004039479677479832497178095939871447605796722122094305907335239877199510892988600129581442311897178218323234950822576511994711095746781717883104502027481145546855435082317278340609899789023186353119070528611388923258765926444258091493277487954181421805117839054318110576258472998366820762601942657662684518284185879154375064600431145544306335305836330814500368121425501527658231271270930240656650132575493110006212996542817141088180672903059886654319012826767586602343395620784035383750968014220003534498115617040472632930972112615391994921624351603856768735560476235860968315390046457503127794966151421153129877251574724153192198022456216475259492744569990608082544334082806967804060047516742136902446486197420511575024952129182697564935640522954992344132459385105618242825600770773914597482811545800261092031261687204114631306094319248919749908790361353092130080890607253873600913562788670985666538478797150729317911691408218819174449863822108493823319795754044610818275967466483676810096616519464809424141245491490678114799630746162360857139999486077767272906609481864068385672072208029066005945450644737610838868629351227064342816828066320034444992960230863885050610180603201421938114127048662520028207303803556568248210289808425119188005905193317310382794340577613951079806738640203931306410530577330155524507641373518815974571833283883023012808973300357698066835397332520529396445117238371638877336977873082359068400656892168425877104029100675531475963415883071663322645799999984158499671077253357436394933488287779035265263043599241416772931233377908086348260663411436592348813012746358429035400118800371516986779163854587039209531229668188129639066758105010383357525444592478309053363140950525471130206341181626593317356020685408006169360173063970489359389567348318956683693891783711708759972557528573588635864847574852190645563700252888915680393336781101654773173923740308327997954001635852648720108551213172486217464766462835266732860750645732067931596429139257357708447064218838881970045161028216283443639120227606189468505290951762318918564807916646368542087591971991753231705057537617745456374698676127359816305077686611646044452881389769466229615686119797223100579107446197216132698492212030237809555092399755514087590243728694516365212932320091007206229245053196380407749145611211972761839710574372643090673313637250037612351003809836833563725088921719553777400712145427880054350951754443812363342678104474782658424483549311396121420580833841387616257490621338369927993940548290875367665711856579407322346843699488688603185173621180340149488529638823858696695846731548661724081005558621286535398630396996333564340411329924612647352792206383013295155790140536495971512850817932667534600779877287002151386071363095188272454045100361368882942752679947174229131074810736243700263970183407549674724609091645091188975063372371377720499244040528190453499162796164096823537228524169499842811364644150703700475503158615758319597507120992805682155177637875392138470898704356529859582827186813844738556038341159287291565531549642243650314692978302556430113850273533052131536627727213608538357879027802343108116261349788165356798705617105501795778763345356779440102206481361343885513061382220580371158468498111831418769490057437696233202298278167238388406327025410169938930258402629191489486634542223127370468868666033377342619927293758962586623352784674890012700834766629919026244011694278529612791717331709629002147558194491648086407282673868634429638508654790478609597595773244811289260334062282215956149268557728140888763655238992203851491711952198138414507993270978093333212571691422823337503062640006986105355229846079177518860922149294776957549946008875923333356340652860845015588460148689742869798632964070423566376751305213954091626663036955552476803256065650214503374279616551509727590946526062456407254916635175952633026218966912539685682909767501021786478674971986292442893970444281804208971234352473467441504887293323785056871099449588233607841321501171767114879693095233599240526249077231424251742697771126306405909573949495605854203751607793724004728134306458148733550814742850555649609611462837003734359781417719634141171261421687016333832301888010219357127879226905868770726410298097018797059539229492687924342964468442402761913884102259839709458315991998714317180582788292624323382394623908357285918299339970308578976709145019870537469710651028670531816826976905194578803895393120635286998076144215677985026717456599977722789724594017328589592967549186993799812944311544663508917019265582029962964428160500283836873627430965328594075060241260124549044935549623417784081677603285356593093816221891374214660526266087141978777289522591844967160368045730194130889584167537623331577962802358309015397311931484489275577281516312393170552733500146142454087574925229439629114572842155766102622813130781376655715364237794684502360015471886431739660056656336956354570404573924299906197150144042639919119114191494386904545483604320185933286684755557132006113115565681893176553974241278392272854476994018666957045777496866788621053095698557996175308219104532160293352250167360164590413560958825967446326878387154518466773741028766229953018402088613539239280845706999760342411168110698657610156446843024254545863484319361911246072924655422309229202012540093284289986045343950327498508837147742986958152164379607138876577098144697998992884847135676797860361282962275427146531823196180632091996877215628284156232518536184974984170748324477986180469275939254300389433193429812320783245454999016441810659241842713316197185987533256199687099833099939994242326656380625458318802285524907198510249119280672980891567339940455632684718989084727216096555026065344221294983993705393890526943625496765637030549941408418559863831336332317832868465637546516958137530081826142794716226544967827257513296101832198174637969006524501886129685150655202939504082503293861582074147102563503354372086185873006775079481471876938186750695498560530534802392804882966529000710889494000845253493371218728686453875196805958054405095337840658583225027625612925165717070004702852984917535452621069650264912060605581382290080884869319250567091424861429671127096018081437868583341892516880349687571005541794670864844992079931258228844814362573611138971738808804473645785430455530342352896354481071559605709604126154673193337718872397412182837435153472844293710839844192786953278489952839507496822104703975472035363936001509032218693638547317060661464068398648633329773603388743380421020738888095233095949261900213987599057494654855938420995427013313752795189171301857414221854598170964422666081869319220171253951017333349300194049504815512618175779184382757953307609101770470076727439578161708858506724645773973373447912043263344604385542310541219087704881314224033509255277486094985925017423577892429168306187234901211307585520636006726106742275760457967125673466557364975824020418445304430846325413226840171398896899038400693462600667332251720205720939727345751442057525670351095323070214474241654134673349110769785115035638661922803570004182867719189777625217156037123811421220149489133815754716987939729898554920668969163103092759497590945549717124975112059975390381940582033971439740019171239816606957036868897089968202307933249046856665214277064542358632226205045680694538493602101997989124657427896138806150989577481971186638177803376203393325493123238206698257683029305060688350765450834518459592005647189138263117338825272447471713797543020416505088731426392649575993719717817862193361559819061588056666928818622166891731782459363185455190637255272686786024805966598696638545305013857335205872477951518349554461181326492786099672520299526754615901884028036400362182002625275329544512687203115045507395027666427366003472051098877590878718981346195648580349057635695039209521159989028578526654042112709108668707574741220331961372342570092769137620465835334892871684155299443846252842728057480599545598478459672016004304246769859430315268859796634459224056315207180815614155489697644152210686729704966197819136753656079674290333672250815912589421355822756556071285511770527725978552426003144900335809417642380009977226013541288791038677958819032696720951445384358179602415979462683291364792959467009153235817630462929912874909637936866276756164455394457444376291489849755426889460868513181594047080997013523753124148227920615474271655053537106407219544869843872844975842720702229310690075931469524099732665841948362670840087260317863200594466827787655807564040145008898104404494702359019070802340739934355450173176223114807761479473804636380618147641141241675629573762860542621543038784211189487255428675328868617743920117124826647555906693193579206624237421737574731325458847155677653473474619837610554830378903138340037689048108719781313046791578014386004164494945318708424155304357452285343795817424787108320190137473577057687064751544633608655245368055170302157526908694218403602998493143056179463033555029799225826536335473533609253318850173020586095856175421890207123294445777912257846231959667339341505767018264473814154458514364522860884999256057531345897735432591474299857335420933313114559254363084102332388732116203644949091359990808640672030927359938940272056026969786690918058098276162137481158256870123154933500050731545107447496913283417002614209978246337553228200445321169284052077591799293985236731750680820165147365458798497994417953735901872605632891889779142834969090327734484424758588210497523581979792744481797569298432806209744629179905094254212982755206509976169442478307672929912723475834319012705027845441394066073565542525599774630047013402092851401764108221972488510822873647959030041014080746269386276130245045862378134738921889431695698655237720716486803388335720108426344747584354776961289655196210381054930996557468864703934375805860893154782477372106410572155206813032915915604294970177033354095514506781281730405778648778466070586145196217672338420843162953332184349631679459331424346144370668772439291907099528945901837411793721207535561557576232643106479263342959115782293119375382289873508070281481022783445773740908001626611545417665540005542267143740651077582997474409755859630605175776187760830661063497015196631448436134660506369898578606312403729921016420754905349744302109255000692689708124535653570236070702456171795879546247091255787783440199626885124629411518163957961771759304310061258669166617789244071828072464829972218728324508451147944653284938503442222985811336274406867129166705905767963659846936136147019142107309427114346746597630643415707141704275815911656920749187185052877369684995346004591525493961508655700987983380909294466160546187416211030009268631855757760527522219274716221081782565915006642301511863753406000004676921615712765296364165040358536661919735808197350291855242084118041823801532281488113039135865033611919432367775020556684540655032474969760497059760964977575161180248076575473622257098016052463618534697668049659933306969194753485145922830094092932128997058352857728595450522457634082503270260998212358631229449167227147896089753997366864804071266612544029062423040198586490007463038215386874370386853153516989597482013727186511900422077565197311358410761133116278795225653430665093599084355973563552289648518461307952436103631159834446562371803336105443392416265022808975741787578488415009073783283128306518395429806899614505309860833347602549276719236059707885218324280757175076458421629507948917878336128360798547439686453046346484057574726799006928751679194473429015104768931825127996377599925339746264205525736325411557454683735564481254725607396113883071988042806329220417597715441876947769168060358615266215678734794307012794696568409693283874936816662746218849043008756242169175252819119986173209827411532840080130791370262431867695595851114148398082652589353065448976273579046497149316833471915666656633061987090306575442898910168170887000643833110255957568524553555175258172782790706773961462051304838191103205974628601304612191630421085735657253427443492486918779264271410803541018553194233892764126743337602481708271002704121542368008565746272687611900732669506695109790041127992829398597635138450022371896877872787798765261321192775289419584124560440187232641555695240452574593810377411358383388611820804694682463846588607278663576726335983586504861863216238901636944181842715390835014222093826495209199099518412734098600614313858318926516563380829768165952694530897625413988753821091340902228335676618156805219606548441153570778785467142352535675057371684118857094265887764588485448557036112686410646596675664591504569279541262066235142197644365201119719355210058742211564705420990867625061769033595678106770622444121743786902389362306851479828251506604594958966689264230021674517550093547771945826008138927773963688255464703102246643332376884424009994278070843100522001807051186412937817363889212684617232561236884483403325004854442536317800519689634332232756965386592399405630741876168255364552480935808272106654237410395071301652848991212421149098878710644163544433998206178511480759983954040395699239213533068353519674388989684470856316782189354056299604488377882325170683606276431797322147943802808949313857440410229925560968513030905014922735496816114697625801742256801290583025021657142008732143795402293702109202448004236482874309697049587883258916787373164736696593232634400682257095444722044142019627714073231515196411886385344786507619165462993187208294326627429940546230985561609290349153905674862565344394943841233642521285062556782135530905713619726426824475610236731174461462267296261017828811451577868320246975320168944179154667469714959532164208177332468317300721137589033414021599755728116182044063990473003531274431096496829732132958013772714437640616593727253505146841267674724664076250747047971486648009672331336206535069447487647339936918122235089023003455566211903583338556550378102750687595265140602459640870434967629067057453333009031023962467180724271268210827802043609058302303141605333222104687690771404419346217223955748476766962462333188340537180284089915839948463563298765412289950992290949185710566290897789140713778806068287846923726139803636639455809279405718537813068213569834010400866995928643220632704878698506270303774511041550929982365100963472998815728341798242309462241125544430217962895657553068886105336217959247753933784305799475444181561461724379787753408400012495093075799138611033455504544875657894206476963812582617143658601125457706914704486305058873074654097430602293054944025952060747700484084378593937349582362409705528729598757706356769884838009642445949148236988638104035025265206931880426037947860799130246953529879991846227172442106900452845174151180700744604999113827865582393259804317107241491946877262225696649332172428627890256222749380998652770205354433756954606138996700033100965706423059755325090479923032831935940547910111944626831685420161013967346730218161589726649089760142048305562292609795404697656044297016689495634247613267264627512393912192840116992116930304729930287756258365394528246105468478680252182184082254707181128217935967453376043238164170700205375153505223535028180503827742499304088178779864245903921090098192791502045079146437845709888724134887669367449366632746856364249426029162569917434444487559935309013783360612139706179201628843947976620493851982004717524925455578753102441304583051123898727153074564458977016849611790151520458136200528213412310565334553366591092263849418418033656938682681870933329532097603495099356409005569414339491574361368751941583154389297708955984828500778817743886019465684600465911710361969975349476633625663555218741390104085881181899168021504876582648190788297701186528923878889626322613850453837965197753217272117725623037425646965768892882533749282388182006906740017694611271019978315833693405027717817168504334709859257947047443308173414897636928566361940100506957597965171280571434746312878338905750271686213835003886969133989931370478823324335449972901402591015310564977721105608541663678691634755264262476434453034283659040788413455998842675095280721851086511282380666236165587302640911526465504971726194879160616190032126890578228163149495635040172207994570577150528071146979775600666629674868402334966593947473308781269530683870499470401614807601721035151869556421094474139472672070655213824576414838598693168086498495935468840971429458852325806403082717624425678763546547635185729899550624424633084838310035824480034735597510300603330250312854216558395123040848774636841589857661101883061617157628823452601342694307959639624781152744417283346713417519347669426278262194354097641299358480777524035665776732319105055179748226883809536803084143274694025156396143338662827365383991466354577300590418764230471690276022165650824361848713389683637585545410626048632441002703732414385389543561194758344204002358540940737354777070117456035235118968086513180635551167699704864529184758859009255883834863094531715761021838620556108682536500374118106736224279466045259987325119023694633290888989416180334940345944710909630308806806917217682631547552068824604242086375856146097320405890982148982290078558644931046362979275785068200614310684877411061326168814055632502881946792016277198376217142627103734481231981193589577812248242560190585978185536918976771018433156564146305959325082660978680228260337464684434039540466823142201697691430100533250926311981866921416352916743168086580933484654324046149220729272187354388003796203800093924443991299874661719327634561962610728204096440320203898615052623492536302484413101319342333018432868672633783352379526165594908886355609674515438004414127767135156295406855587838040826871782490935569940834930888777314433117577006968556241762276144099902072488722539059413963589480509893144487892924584115878375409923862681838568051021126500806670095143154122468108773958161168999059389596033264464720852762908288576731358321249959685826579998410302591770344082611433631107010315657029817124518011366997494645236872243424745616709540832131207162486980377615651132325654638434294448176578599744191104903785184209108302076407340922910829861445804891762250135320014365672275572129276622872020213866640149967454575116137263553786739799611744354936885209832896945774440957397267522077102175128445589563567133407244560087362833457297057243440908601562061548925694784834860067947185929462468573522297484840910710865773141739264607029756206586126832324648151782061909008557054046698850500499358754158914604899454028362403134073285301246285753748777063831073445038510259323021292258713310426598144330907620572688016003147072005324305096672128091223701674532101286196614354785019599547220317698961810511410921980937374104329161753619331086310385760134825854268955653519352187863962265551222251506446533757827543344925067828236262349336888839343156818654934093036812779564067715218991162222144937318787388122345484230160375215174131995948978557182175967630061689983325353650736385314688692474235825460864754043414944162897896215882462932226328750211036244425907614047404600998096227738962513544045884704352743527485549442175214346420449532909326359662532683151063912894553141855348687950089175012484347966384859005390805505089938442799424123426410332682922253076118446893696534580043211730995515743861258504682540174855847780985200893376685416106129702034492016344049342940080277504241414746256567831064126015884492138713844733713712939375622102980090798144065602598681534770160900419922191582560498614240548420397536382055089554352305953562091629024949323964044971375561306587044703341641933574567793872310288455115493424716938230427483388883085289385554921981890412732319295089223932880881920728114711110094605826473215296400469496329231719486784961718942441562539933564644924785524168937127050432665983555851203736030154055641578497397343176349897561736163033442605042123544099914690111440773209170269195732154018936881082596223543884589214853382314033117761482107138286192437847208087103080139951158419425098105792907735028973325031987078395537499951718347209090053750694083190498001739054822133724325496512443779854254472578473800266901341572311942706605924552939010741260586858294459004952091475525529166333417701605278354319301954931376548918628520450863623896698646597068719003534904500460504206233351328635679830936529427023502336290715967266932200014412257153499955498597914259321592561591961600049599895359915296967326447501171018958552085823912479177924986385606219519551467409145701936357232290829210731706683296825004198973924575282100038006149928236442483206319097024599863708770886656359682674074797049891661407320033938938867519653368840945293889564279835608239217377552777283451510733448176000584129166889474035299306828907833917657830512405614697717724109381710018444299053653718327848030825506762340816701263271086467295333213482363740746367932485194060317443091907601609380404165893879138834843132783407807217481846570654711839327691680780519761205801598789628229464601161895269679735048486077661493316073639657706885262778557371318839166459469362229984516532180200572663781479789375799402650315521336442599822527234401787140150020342294348853671872444641858459250565379006292925925972053535129547028808990073582822664867890228035023421002490132488762381827538079967239424611414433559545389360518315878454076425751217463244423281917852929516177221338639911802181902529539913693371579137934289266087307948079834707179382367204715772277847311265124076763923250725046858122765682091616038445289562135353897273930527854312477939992213723334140930432054335064498407684473510512932955546541761922978343933843095490582349006406853972596585749333935416327253018939735524203890960658109425238393182430838136370566314681051916347014315814311892348966515365727887266600136707615313987990840105670030994337987861511533087203470891590631447767321243019792210970463411264197830994114220710789601767576594713337980413847117270618491864567855688468366559199938688913269531117353033021657657553101058069567989630708936302149095125727020567675061039839570874007508713059834403105223744757839209303267410945096193769640477572089987850774499083315456731634104388751445326901304388806983756416399866088031676294138179310477089745924062214104292469511908080133470607998898646238008886275675923801474031688217184296223934717914994102907559040467138673774150742139991690707270950990049137912344219969673695338607220986701773616202413976414650459437555037242640728654450690237543666541542417132005373959254280103592197940148636591334744142373083931889779507056041832104497989099128960411171249659189754732889464063564216617702501815748673503706545282237617900177565650701877695515732900477562384802124340815393829926577884673653112168914601201861852718987271464564313951184286058434419367906070796223884792995426759621720493147604536042052537117710581865663028938509025295078276776041482726899910579082062451312308859582990333471938873389559204843345469199704620029407834460658400534222598848110636390973308430317135795235569675326333053456221928281948529845556103949340039263135087818313958080843340380099142145456450230903903554018378235052514254500057959708460934139541031606638064492393749852337103189535958789940990974964782269869672040297175725099547457348236088584240881691128459834769789858459989529162779054799558028588935273694960323331930300188462659854630699376976010290043589035081219777711268225057682550927705474218404260961496799087360287117727535205805130698809593328339646723982172736347910719117320995332678688237440620299844347668460563335838615747790214177321092585016534544163022339429295135180330905425489945126273936921403976615387233885686721954702476880128269717464976910507924199458502004176764767128179751528819548394955706191974084984905154464481864993055951014147749472157886635409490616908028916440199502804963921278972418565462438153900431618861458667090306902714499946639844876728077879953492285004380490594157926434943136252734213600815682611609604197021334561156116096171764952035591207521730513620457209037081793327293048137297646908549004406202995003912976228656319166638956256688450348599718598899836840901009848719343606372265759470872714973122969717322395027115109235135618684158235908313418002622528754221776764030370028887989512419438628067615956535229509374552695776235164068317987436996838430913820677916786969367396205479768058362107401841408874543065130108018578151320044708551486785686666758706072698463140709620419342266319329781156343253959856273948908816309508497056320179633186802663605820127216246797406875441773752026206520917211331761846175929062692432089972011907399503205823447143656824906675335067099757824751643933828472143452379072755828678829206136283349953530474435742655737355767935318701597385644133066032400589493282655716546283986211349055236938529035598852220531511671497373469872982439227289444824507041912840317678245514884995712908987335697371488002673978335719829600801508725100073378352319086114923455343084760476579323482009851065949079990145228246120474537465177042703105675626792153156410422585204823343561049659236834540198124409111573645127456241469828397213878650766433780193214824689198715473134304421666691723399510829124827365190901360624880520784588332947957420799431361363136255479270008243182143236817816909437317187073908695298424971618909417098017593460891825389767243431325800882739787164826252116915650325598264045594792724525565374238680241955566254231770923376527255863502628796491268313618955419084144146579504695899873572818260106328195677450359577372829389392702533244998893368310533933069553921765146514561061879728055919175702829404283446850426150798306494739616783065668846106667188849247608157448752239708896872989872713914721140342726167328866447488863462343430311458884297230507284916615153762671268515268493041675830311666093206241330434404114460407353278474191015193888740419012465888845889983665849168303427039080727028925933350334999906692228461510278824635400437426834610795319808731187844385281904407614679544285582193540483229231442773859044738137661845619965961483529869731757079450168756516440412975215377792511995673153670075541137416122429010267667985919053754049465750196411853917926742408555951090285273892008318309676952951427366298498488431463712276848617695803539831598463532028024528200573960545088955051499968971508933513016351728541116649548212226163606779876775395751370647129420332340248069496890542165048236551511890274215564593146893744713132701078120534483465699456992940650799724157460705672094487484904152310348127987146014968067122544423318318444870611229195308112488449144100211918580436308800484265032459161881450407790537972052179204807222075908530752390825884879679140883770650546914309648227605184365343495633167001091850149534037035978058492692470971268967353757964024053672164087873401590055541435821725001842759269895643132370116783100273923414774474666545125178475648937703357322815248084135922534924599818179127554613676440494054043739337147993186476275376861626088530355970592379961442312601879149501613965509386778516734674632265747708835442627771642365674437162708619492905449044940750662097790739265620093436980884222071766307658538765732276031197634503671133860119684299615417431165371193947828499341474771579169739389409974358944502714145063517496438288428758017069152266915055798787708250219487687464323263790002161407090603380903361070414203828603200117891968796171230042422665201457572181404997874078739476370578872416193279007873923408011238185671228223253294018279968869377957877676872200161287110428433789596861737783942913414531829515191241403173251992281588806062935174030488973526946014542411786110055292707320302778988935388498044057730301562423064055317102004757351818286828486955302313540639866619187966944247401391055788292158477596228313584083834334800780378350360844995466248342868752141251009066026447295425593490194756123017585417010042582716422807948706036192549264177446430602767119402389869550169689922699283821724618364065105787974441643343370727916826584455024089908832077957114594370467283575218698843868402950435944272741268848266278623567570429590955668425991923083630993310667329750380201785040098286883001266595945632126831363041817490920279756364511151622880348880880186486102223908368903518526783321517552732160003248587777703960981811705061665762688358730728565198069897934287559190389285470283049135990691467080216967093450243816826359218897346365672655788788899696931136759622727002425305648807170269966677485820985737776507296437578868354030106692735392497662537554183370391873323018714322785166040235158133065595485799421878507431571921272914726249961358349225582998200978514840271365858182941912165847713949602393617627986087507377058273466799154639281089718940386319826806359493043550128046733750100847040296685917531865540757978587364659959081739450198493281325199791499837852537495022688431157580968077907847049405935075313026365145670658342560260312264292194988268390986747989213535695447912653429677544453051690413382214373383340298126665018823696173798205681820897450307440419291379688454036436496558122830824444327667692184910980277536193778558043975405348553401572761629358219546634164009929179409713438519373688296601189710902451157676675272498990057586054517729999902260958708120228821303888592908276986164853317997182469992131309696781052332588633458952173434932942621368481699316730534169588942528777456452816071719542339457832185774459852590198542790509122247803646652795715311595847272514656640965799296567631243698916694429737836878967465453594191351678743199324112826585003578619485377496284170516791159490888182495799480657970428013077052559072411486040113315593308006282657257943489372634256790804282713413418202086633059182972914023975166811277312125121678787333186479986190078322346494514770376559788620954199262925410561859807460908684443053528853089367030723483410869847490765618515261914827142646648870711822919929387046625168821523764951460082632249620449480798945370886406288509170835068056734616863362439506949249800649039291757871169463613289206097557662396958393251868440887119557640319725382714547468486812286719808570779577757260723830309704937386672016242749076048886747547880743606789968631174561984353930636859710752001468905831072904024631457550367507797805441323084761552951442500965222082807641964020880502357241775709068984935776404935265195358729619144166325141847881502008663235824525357912596262123181821239626077247379287665234683581659997429530668059522165013206591404625809071269035700552129525034347500620268063281347387490423351420744856775420637790411722739606446217842537188261044435713695487293941894391970027674240826415138292054345229957371078746063578156742510736898291109485375134624460397733762444796537640831171319499324762568854218721616978676641972567135706456357027874322762800313603538423813037743851371530064204449986128614093478292487633076094862121565898957570203785431307159231471068973206574163507139508029536473832213563210356308400485475691771323104199635620649436600342625351098930789295931799387829169055674767389702041155510004989969497858363353576375974955516544634204542786666685785568298897169061152007256226982876808195066877273445940500833446550724378736754526958620913581953970311783375290041042707053266159979763552771959450843050221448271930822168334548453304243882016516423470684760385711701846397187135643342107247720667510561823028691204465827925587308907394410875055523087455717391041788260749542154663518834624896707987328073364998910887432252465475430498436422716803681987490538547938255387919073258554647254427288534325762113037549878429149363929396601192677918300216357447078801610773474851128649459929480577202244881090076705220215901237795703809674635242997628992877664778675082203852351655749045780978834040651377762515658006314411282443484418238384788688802485344916036634520655796453551968185849822372907572334122456670927041761540561103016971964786989307880596241285245693463577969562457222204011233924537820654067140081473980961786263677615937899136655402958225156434045705818175182236318827171151320154969926228146736171240748683500480713738337193339050614778389831113044977179095590859819852861074824887727075504108220090877536121168196304835157710716156424075966921411891547212904220029354520533640700443408249373305344887650488645907098465501350552380346537683070300995394495733813380831842565841262961776700923656058814121361259630811772476199662529023279247701425107754755582714738998253744276468269616541569669163744734467684428812374953664945444839959865282113704739792470186846759895516865348991135098684816185587707722922646608364111785615476952523545879753200033046309307488819955752870218297388992975275989680665124430046363577360262466487896027210605818595806113382993295604612877129472810046027871241138547413610024783229248645216581021612288324421452558473798612775496257135799222612108453545156038545889208955134006116608628137102713884646120182967617779108177457120679641393326950607398814653948470972315279101260820223821542478573474453967557810327567100032610041053711682719816283441001117683598076242211807945648232790221165245593164314242560662213202491776299522391219103012728738248883007425613537249204876078141946370916172497299368592141312378943372812385478575081769439670729714804987287423543587447163551936673502420639810571399075596139612306787906728827550351387664047185872542967216255896178578692782010195054255280289471693821449903167327342432526379950081317498283681547874757389346967143925814798089706604332841832583376926622776815670907923600948690207718183402353069801658884456099426107964217667537707532059918202021310555050991197188338598603903816322303113661665976258300963001557106847629473106250116675614598130900812721103723014429118815056861401598522375707193636309810336338084257029263032547331606727070647080125125153315679258345117999093464920017479998080496569566716325519962830451620246664670796162786014108689904374386722706395982924536474869791229794855096740896109037148403588980349604930555558422600571172226513933473059870186032204802826998382419051449450028895522962261512499013745913136151182688408414807568866103180269748541557178578464904943117272984877133045521193307482298277747062265707277287929091490540567270813407291166246241732111882708097566102874648858884240397680292401942313315136104061472905597410101661974135417826543332760948775622118237076993033421668196091728078541712416666938718531345542510846445154904317095219247588097985487145973404496847408305433295639890573340208565788932354281750990037001727994026751386109237042195434085211691787424007666630392768697863114704120650675348579390798269949847720187316003089180680262547224260062960041990596460061931150804234492781147988262484950733595720652788420198055953349626926180484435396783132755124243205001799995690251463889717264176964252318809776001192147651316649435949550274792221112490563642173699675325382862136378457197108806932273772080467497207692423787621412778781788749473242200447624611607322491765616365472064274936755092383408157689812846887542166685681186109669755230519707361100174292079220699430784105702476969802214419572365765448885671198497196288428775160933765857022885298597699713893312393915157881229828554371457682431143283392240375098048394553427437986885562318946168922581121124665262590014849142014739878846059749699209549071826405381635490002000447332000207727069867081463032880949741283598015824441555607408509087509879083180656461592567872374368885520086928513356471611979218701852429531949288747721240845658469114189803994923488747693776895221470928569669797211148279293275493267692054685886455055096766853381648822289063822250646267880798040512454443251645701914263538315940450622589599687000111200830356047107647159459795813275594754041978942387902164901624941395700158549127839664460451886186334345428896575361824417113066640688799831348524570834095375886458302728268839028679158063704944747976252284078123488855798615941835650868332122179880601952731026209173635978244634529792339504659574947401473470943412017794686714185069441104842434011551767998549946841983139145946664018378247221320744537876895042500092927621950294280102848335019382762644478188219054803231838042112923289784449660285090862442438271650188650425392890675827863516019650690393694207293720765803358569150684667427894441115750686177816214564854148106416796646077214466517366833706117894510403595362869200414644391268694542766079993928329599650438662430624230064835661826941394759612303929226481000521243916958077458323055332393753382163124468781131847304958051044767812156875088001153396654720399553489701743663984916195079431579359236025571162071157345786583693949965792263878344835376802936343255235745288227064862886772804346709506167213972495066940720293090280276134576183155602443052075358293301867445109227709018948629115151351044663781351696146938868475633288887090222095460928935357400633950009463918341405886284981629404863777523351824814573501974427245030002803867688157574854932983750033378802419394514688925068109417593362970333663073070121686615758070068609680642551171572941767419792634162760903240155210939253387814710075898323919217615756393109692624323189659222581037999255864419081847243328232259309618632316821063492681299391613277895601020992150285723017508561118535818685947608699298473623398943378801313829065838981184659364105356527689721894256718832638608430731325343895273403070373554279570956433558133095669412832593072137203359807463493049391995024068442712805083232373521913386035464889635675609500200935988827850994488703136016621372119619587377117514966918141451543910712522522199316009280280089731206555102492197365418210518360810800636514014210049248331987210216193026670898433880952322107194602958089449442740126504729125228980237273605451604529985862939592832036766808885244616736739771475239067314360133218499664595901323796425321456571441001584717894980939482188652524518191730294459456909350031060833868787792764931900110199791054475636041750791389390776085160129917833365791057500514891823726653628170025909511407998333611068226690388721919684247408537398303484940069610033101621963595618444796175814333112216868978631204473583624812751170450312328897156671989482975973718543940823583721694108241002035416292651487971961829282947576886553467715495603932908061636799205048951247022566116940281801784261479897816319027462455564956620404095499564746393111136530117678756067725276303589792193679941190792030234452114342183246696336074874986509662618192262779157158434705737790359595127977655899420446522497149331431496343107498097925911936941330203098007748154441580544437255333034772369091087068310895054119139252609656466867301794990537967820274048037385490446103053128577028182715429116561499884719088682198331139143059236960855314584151921022329757801580611381990093265500421968712667531204348011350747837086057211580294301249932276842206595622421223106917520074869805029456386471838319983734113213591609753151779639652079714134772078206476012906946281976874550744171968470917068433393519024359386504814379841692177323840895446987105961941822210289129168463610173597179408926250954652988778365141255707083611706412926162851810512590425693868772911269005427958940629403221413577733903075357886195727623582740927241751588518787824629293730162517628173881808164788924171830450174674722428500945261047659550724537932113265444662960258731691775667616962942901226287659706050960596558673352016182706785579678475022989736317011674302838990118198005826887535008741951301175297682181437053754620194358057757792774097895197615056058400300929494793198232679384622012516802362170477534429960810735034003206771693549132796353676829394541193224909175084583699863676864981442014052601398065033004312955250978644051048145318160018667523927489358306022460833021120199800263415135496560014004679464988625045016650968323399085892964974659882657619130823696550847485443991363261963086077669260299676723273892754332932372818447583529562422858420287042558347082397648961793409714283221993756913695815911068886616416582338626715772411530331197549859931426898748407641513996370062954703837523626258330708987870529240924244944127118895068034190495525414202441157137206271714099390151341327551714509306283674154412764322735219379340004449262663634634402740362704818257406896477039348118025902929441918536423033684843255022714448954905769213531442960864519418381336144327619960126453179571429322824627211448691276961952201346148338931157126066059567684593820219231063000616266735301251697528505892465835153705989992445501328755783309523366895783936403340802037846415856719655431446343690383351539382501926861507151600347499922827693500671907844530826847305588764333393595385115580596448629468899899847777073408136165914173865838776590174123225605741501764806533089802844869325547501191880972647205638438365868363629015718820343740165645715321009481823809101648755524148401360635153048124217705995924975816944210773132861477852554235737468795665787414610678066940510839925601208967721172042703287257642977531901089138342669939582812608793283173602370064537686100266801832742558527501943039292315869894554144982094828764628499668541416570255955565241497198005040168966733802833745304766166229311689233207718967078166729239546036512019398024077405834836046684550569186045404465922408299143802283004757530598350122642786881612240777159126658465704709806175634478624737479452561502159177796095017958306114828223441148574311187305999609935041761687615836828364032022362859146547966217096487259665770465256093659873181496348579168068482792983524049408342362056698458782494529549082513577757088046914444772376076965958778969685287850215077838710069970583828053672970290763764218599376398500034929022482751203873444658737416918556961313338951228898425934449389855871572675082470339103652125253432990108141307435302043078175149857684618186985389889461591858544066721117655254268493260479873329813135882526257744124689592017057964097667937546508116752946876311279333202417529435006005425284704165906468280310148549009759001499372669881615363643464734874121259196243828050830836639760235658849334699515610244458979033486935339960607151489115296268332976300077574004416748823590408464370710347756638220597514389190132717244140451779682024625891754869333833381725115191277840519657529666823303345063822198804067899338691503852045131007485995314460430916043970133273694087502385416622540146507986128670339944742987896654611206982098816008684638306593930048596082852891251032863734057357851550684368131108871021895129335642912324531352984309031149339692789998332519855294649517322020001566822264467700833061717074265777608478779224150398295688164835796843589757481485662380763500130386482157960034285654793487963182613406662523259785931681008043311611220187201033949434919802829170513934779873809162785436074128164940570375213128865876302504428646818192965591834662000266390058131887482604526657318510764835526698603291989978679752522481625006565162857405142308681548748881180304322356889988806791504178079623329169239987106916790687117496633569886422641581720111849542838432674482846209729880064800810115352474153702800764057821022899158781683823979575742740648156263088039230457921610405902379436352113086504075210133641279908431220899290270711360678387403162439277629307802305348284052846633762992607346026080427478534976548849935676315250311999941162913101736937302304734059304552687649281057610882248150854821502878471003904473838967677434844398583707920571568486723080767543847442850194431511993476565652102920441268193518518626166893230584197608480354653631958668589912770857456799449991790807427113197694236213946933922192533109060799348109566529749173799630228644959774911107192008024079430554732928864670997117271304038573901181162055454021618091927014621721696632337164152994026908151198835444016528971058208700439605124752084853985439897781013638694937375019702543816811146344435114212964155339778966660627373907610707624798673144602756664572879284194309038468774688338801674686991951961626386962815318071139062041528274808022411923373347518162812046561104569920417240168750516165406698016460993924977269779691280301685821559558919699037931546430492515234787700125320788384873328734003323178339148657385022471841742852050993489033749739769607817518527213957520609846633039309142413473110970726908950095334793987395261199821824795724979768710396436035215088856920070474751385454475968321134083244185344579863341247743261237311397304190939592916627735665910631934287817600693186023134562346707622415327522315251157290313552129187663310881543110404406728614369395930323589892327403796878963671104467715634778672781252770109516072551887414732972434029611032001204303160265849212297882594614791139425403552699227279813416805461921633109957664614792074035695384225405818640177249701867752207948918183678039760090747932504805559519468194906381325890154245850021172507069659880928348538166966411216865727610128702725840405216989273508975902559968788943789397173276569496318380052228584543187217302388754561298549434438223050586271900712840531142727722045099135413916410077333024952959331071289544952528557540966747330659668615248607178901809668551351150002263845460566593090350614871810805864181556077156344506373104217789134610397874829525597558043010334655503698172758253758074261157109283985888323604897765065835789869289457032720860481140777438522201531698011450728068847355939330036122814752266559655564829083434728562790286840104043261455533781047663569136673055531137762165327841919893107562962391553083932268830567000436523584543642795550410307472642088056889898562643589168480257350605708750607010539326978751922945900908213995404173309979662106422328536176443066594990576680287342992061523470795127187435225165545977641456368606699179035368098589320910126039339036008136059120466441683312939002924626012385086143015428741444918511932224195474378604967902000670071750864435360183302887395220405823639843817617843805682612998933771565736646834208735121447914125957033296840270595632600558133048123073949657135705032527057444736594321113144430666549748042039464914217116354256108253875037971656180578844778742776123225803224320408825493155233014293866865470685178799259404545479743931897302112393150153765917830704754988739473269659830395073500044220643517106283333648405682112188300640223521958304252253895791513627727665791518501793964731192595399231477877996674888147117908443799993396381552431739534022652398822123324086702123988028234989572439735859002247529528351832959551152213375017162489806539597374588859554524531708923752048905830372304542660274954411407659750171536011676416088927019568516993868565869008243133292691392878292085428769990945028751095892797060007386756730869068747555911005099646898085138535356864167988403889220288221536532372522981328889869242559512568745081484028255081335976120243053364397419179891871448185537795463399642666819316897764075466872738666655973084902740950741483496653911203156821214888754653626883773290390368995989134662352963139095955729576112480131273769661737485581843550027228541625015476573562530042555558689249593866686209258135545576366362986398933303748161282968556045189883262737177111274063728234931016884423856204490696291492614777842132971406931235380463351430896748075188953863438355909457705028091249458792319605419362600958716917886992696145333057037370423345618177068257238780178538044614749328975761653173637331297957708070637250827537071622946792884414777499085720797646074036483618044801484173203690976372654472417555554780443280190492521879843550190545535739876685096729462658115556320726168716532257625984028330672246588907639448571608675156165738651712146323003373400303556061182466243310778772414704463130913144538061927763328978222346005115921475646774705842918455546976368509814026119667426315540696062033520932675047503830195205650986338164008986400142579267257155632255837994852466372645272021595971188893172057373110011387018099479476712747909237432907248307797284966565120166166125053682601597331770760294642052844927747792431040789345634226592712199657051610580456615913315186296229948049216253744558612282298302639633042434775950451664556779615564014233965069629315522070079782323908779231561700063714925629353605866086773265753992212409584862327952651907909677008198402465632152918594505755328030551071096545227031779547008021759505211742932393185838628542032706384971674962277038690780014166064293505345392880015378595264370989051238532796596891187164534142672202578915795516686550686816266827958902923184382674811858088127389363817494804929403366135993179176481550973402247482978670371569373330430477837216556900775453948634234701945201166441731015002346508918195070949917934101416003702858294809363713293259505657140545808687188413854706118240296077462139070638499523807972085307995061352241857323117918926387097004851564024225510796692782239185773959738430337604798262723434480318033788596392931889822122062787318867868195548359526005782105629962751955919401517581895524095284115216948459550351211755342823128070965069095561681406371469335767050026657196425881196747150819805156610801070254104983041439347849031103893812026738992679613608958762348447032933951984873915958280092856762171502444167032686548233908643003470857821416849317308472533216787988275886045324629721908772055165998114716737350733333134399058447121943919974031903379730687531534572678586744434538158804618728571476680027048082137975657476315451704968763145256747777886612649985504472112633508483377719030491170468665120537965425820516201916549694863964475176043497263891061514993933846823550047695940744787779749640347446739375697263363337949133679881746790153352816992007512824178025938706382124609883234790914276936477800734983404547941419557221535626255606542698426146869409525617820487930816367397002172747800548462686402472101631085172434461125780979820717300720896073530150110369394759019776682498776621980914193758257402115117029751164140507202891952899156500169074020456915242031942267789587015661714866512241146665757640578162012149137102322728222030833483318400267040110176079600087725910590886153202653454659975457549593667477918814325603149446169658193430552528429236220935025391159678446325874333794503842294093286840335018854179755406490074968063383955405357857340749068146986458384775964405034488531153598637252524719745997873544870228452904902320715890289025514586397026869590101653333495350662642513999796497685416392182530928053847802382550957852227542926611804988774250208703670526001777974179424603160233562809974798662537052027621150695530173060651291148795799479206712058741042352415954483814070822092410846681586717293486431840111119553100839643593053402843757587292658876426324762591739574453745721661040078654746496572660172963168080893494783509695191101268315457022317177152947505863016395945321922091440174111337299196567376384641352794570457512311826138647307715893864347721806611391709208975124504519457665123594295611197490796396775946097059888663950036685004836272255491320178337272889583447880231923716876037794283842850639289562989282259512178557692934386517461876254579686388907878217993708848480948236143570077197522870316103937385900017467939266243189707485644717806470950758021229069670987268702272444730377000016013904639368114144317569010570950956616457284622245333095626567665881147508353866701005904312879410585014275063890859522368620113327356795178407959814955711288394090276351475963568454364733953327278123651500711658000198508870025507806919991435853246950448671270624177378998269629141832086847143835785328777293078726054404996579136117590860784032280458198983734895767205254359308298890574062195405213142351988805462280549100091486052653057010991208029676712168311067653403713612140493050383084906469169830860530898507292886866729431859975108777698874103947984883109957679469247719878956275139895760091927643234582248833514068321676905055450157421961390955954047151869200213417078352199798001100383782238110364265740270216927127801610913055891469805740603165482307209190194992747799726900363526966545933061808305090806933028744344370661079620975281011248498701212465477864569115866448585782331853238309278713458446873221759436300435392975923176665105816887696849407935251166592130216461155436414826632535182454310924465399343425182190469707173429148234835049429238684457147513542037289175177747756149673186911021348891274599712138310476776965018298942745448033895447889514359285517329940190807111332748323348283675603548460679650383057047884643516937868830368304377119395470761323941630492462299847872661093645697924979904278401098969469002666945551141380854593267050262256786776730180261207862205888716557949885717367915811191739777825755157965918525629273176779609723337998681331553632954443404864947133732528605487849338896227862452188906259648380792211128865137118433406498291919466426554342980074792741078115833896869404229751851732272111160563220849316269823322899472330695737503839004227009906934915912133632533141088766812014828178976197143976470242444692065225255180741593399836016896404258590467059161815979469781467877437637631183585555094478675582814584748389441257686780863156248293839123030039075156309234002978199290323970587162748828200010153680221816269592640680716142948492550659040369341277526469496280291486382370947145976036986958389032789587597081938375691355449060856895336941575316157975408057760687742395511639084831575344290034485496867428151114898438955282645707178988881617365685846450824641210271206529484761140134794573934058454987469308488048310991778935559101703925883448549811588552486926118948794809745030473484343026344855634800424685327704423204868173152765811220734135188794282585122292585519886359327114945721633316051976646366623363014007706660351356388944515448248508578459353228369329004850060811947618866147112316014380395051888479407509115533930927401363756733803688843602948165546296821002967712738299490519898097421600013506392055836307735896512169247595470888637547397552848063199049878698786098547519846541400824361084980764900861610923532236376631446500800379203412272493567185365597721877412292376642748878977506084418289239791757687461836375885356050276250202580228749522109485155536561445579864827327503292022929527789601913042061566009038486903219653675656605602098438778801189170534297607825408718633875897943395032185326177361185815789855954431656883460881186825868822126501167436118682748366547821057827012126134072960893794907422002813973818815867231859082946392027696130864549621099219468736616831212635899706414901351017120413091582323305818949476709578956342490514262524190622848639659824408173870268582000411971615268411181774472249910660854969452667415810591142770132619423838430180336637905314520867639553824881760605260688138636904614205772937914140980916368905478004689548808029548131432854668444270520746813392178037212149008890970909325576406612319818600750371537338617245847550948991946206791581143959411706133200766503465737492762101938080331033192770180595205743980913271067816826432871003574229035183696554460736127031397766093606181852942989655468555309681495391851249199577673846661086091248661474672477148479926341355644780134245890755940110518649643433314497244763132500001937083298059089968389260276469927295386312368088387734614392318171240807100701042212602823689656596436738906102182723547786973674027779527457154369826152342257453157078228923122652121699631285832150793155478608217480927444616086823859001168852739910879395552809252781699639689405712724792244959006178612891150231089210233613790216472226283884743372901705364512630175270618989684274707381652600723371792073665442474465683240290547035634996277411026959946413849884447233322787444044114458181176826195629320114096407055939789308781535109887659430879291050229821307410535976449593619180035593917982721469698494189908891493964716431456582178669694256941385932309187502665829152011356761900964438361541198228023945748929657291689673760479755732559928067759799557974721381408571601771028088675741182543198292096956622790745658855335022374027166948399573432903139167302730028679655110288220842290654748535765367890396504697827236119874296756069822561636428871246280192988674355987029300190899354258061037419706960851703734221176616663001761272979894337940119268358978205150012618257637971520679089251508459373461596369709271956230311632755426011789179233001199351445468758638145615086732779669692705856390794602142942726977436777212162457355416509498390811910061327405380572491327314295332884411713808451407091674106579337771594513031959438426562971626409594224951605562572706802446385194824404906023423683034711087936668957415486238723997318809543649516783516394585973054411348111865111709607463591696177862312496677313548353466422082247239264627269552722189474290775083750140482205359593279222626634351934421956056750947606758149801469534426346560274901709757733698761218951046363582199413592053704824075563919965140919836503814403757478906461122280022690994059815780979964037064688234055678034973913217532102920601606797476649948744592818442531965822894394766725674971233402195090816852082706992714300502791466843126114258671125194453908798887886172573284489955909220467963399291410398026368613085012092480221306377960397775466248268186156131118308038428748888163126313944651299253390080487464924401681420672009363135545293783469310582169165161334358913691390448287121123786014387695817846875828495937848658582894417670968417016669223688063235405355504378596697851956057695077143213471153378743333417025926705365167174384665113404041782184458549524228285183453640567815472525582878843475778821196251015991224457203583773577880575572431360585543386248447117711262169556810843352413594734231753975237321658357049749862708963321278443546382333286039358378342299244119843222641490992362776156647374667770698602138435742759399605625181596942400407483630154190190337731147583165218354113176892214499749724844163062368259430078877136113641012333329225533612859804831845556374405153895736677616996152095952994599061379368380375465426138642373840163083745251565285158660540080166858976315878812338534716623196505824390176983920987917860875495925911254258776599425510113233386260856537438857135344039809685144977673384826641081129221800954385761623434738175417707948622397499010244701806105750084950833832584705306400311979275804065502289109202533245094514405259940166661769643267933582753025086078387868022233400135644621260854623585600294058253960277721649119275508142607071058563805192544380177383696619155848132723103661047889261337808116199195265460509282086385190776963808183065778730383618005064826265573602952978265679441746017701826128777875940187387927570051420524214416275102836820919608935654435814398173585713296533682414853145943214346415619840912045165645269317273363119892000352314754103936312659343271188010095945158904091900522861941369466486070360108594891209610632659007507248070306861817596081222761061545480511822672641117105567907170650166700370926946078952469155944792293828589820005676446049552708363824377496604360666708207171281438420164197851188710633222394126323812426786252510988358231648800644070079287404377685868737386224660141697668312512278076343380788076126695708716223819802283247200577771896466791736705968538151381922191387578298659138175169906627664176339729499426961378368016905529844660590100322694814782225135827071767786316788268389080856747729585455273401788106151134396784638145920627710521436834432986955247210892923098335555135286364428977403983094975509534103090353521687686233501827541408885203874076606748562539608776321042920643884961538192948956201417088562103023385760268170901129223222704283266084010279415355598589579557704663582136049614217218055191090189544417846604380968427729405280430350683934916973679484576218565877338372505180892948080695437710929469457420992423381729838590728082641145116948592794506991409861849258460218129491795980780520596167112671426497975786822943083882763475997930931247962187071530386662905202021862684231699963939099243639076807874123524267874979543490076671044699341018258885730123625359182107197037738482697215228847414577124839849528506537831753416142598253682198048130129569352148874138637872470873824929459180071413606658514552838968958484934568570957875420957686921185255690980237769081328884843888156948233295666668669170936469366239340240058717296979252728908906184813971919526427475289115796448945253415406590768187376788065788011100760415388693729069695235212790771134460577486935415268135658241558327464916714476859139832535256519134686194437342810259853257746258143829590608110664891405024671309321098814071550299951520113154971819757446354319076336985100089271692469794311389275402652331442096201963979267898328394434975913617215673663826648626970027183195620770289157236204731623293029561514944033071081581109888072099421894917070578951117128475093066188584858987981998858946695026823389402266549432308678254698349208664925146127390397478217829730080677778144826729649207476442778036763393351414500799830125351874316961927921365827066541682292770218311991774413811781077399434975507802928910605259057445318708000453354521522788801541866594544796916822264627648324544413605010382216723618585186220066973337632426131338987738053819284059350503356269652922650873617792678836097035201459557073867434123914396596003233347771475364333604667153531480760102727698614316887013735592662691436612690709936334063046848178594165855372672809573483038837742625829070268715031176969041573878288419780166787375351453944965514942893261438578788368942341474121454214170129803735357573607587452050007977693962074987640122899217754987561569493392380885720099157411198646765589862499856395289563577679339061955674297690078451739259036258874175067176475236673764414801643250713128563038346535448405918671018687067932052764628115375240453547608102191611156483035638254709865533730216374480717305251530964259416216641280283580014838907510439168535180844315060828712033590334935813916455219162604330727331735589685380949485942392918192061465137167785895359940306274259181327150571331217966529729576786872650901759481328863464986335796114224094560539804685046340390719308280759710212316041986188213942729052981339098019239742392722025849009108252819626138758265899189232275206954639063205391778824261560733365399881249116210935832623794355035741244335164690526828028033493573929434342477440622581744450338286014080032216026472659560350387544689738011317581791934792133692156928302701927578543919343862775583543619966706966550367062174376681953228730590801163914277107483223504536120447206980533428150611374065285373466153136450910757218039940953164964300035358783828395419068811180198946108366528998762262004774380347738939363440466243464191077710509272268731596880465106748408093643517162313590685679588666970455741411759477176850882094019301384547430789050080600180532441524765831709572479278900716432059687529754507418383801061936146152521329859348152075459128471260924564029422919434659152573099228993698108612302196825243125867313800176083781786073996565730681604103129845030769074952032538615630372388056591193669842610988700391123859040214819686594244036920876693662350325368118670075045987051365313482695635475373143256239306795137139839064336603582503089801889344240363145163416851248632400945068451770709276439130827576107690086770022826280503740008133900571769240029697402357715664391608101107056999038329991966690125822390349771297013132804898109437708538455312298257567655164139539660980167655305540978840016323773153837873303047331123091673032033733189449697382917855137222215234300063772329883175785651820224553417858113013137475679103713875517340047079949679141060760643983207989771648806963892612929194978059655041995317695870471366084550411919247673415929854214810250921177804174772867122585320395350283301943779842746497465522946336554020373973244557235579748055221590338234672574181038287825472074962750752137018333277509842394955069709265430108975981452995763933504807086488846874232358305549997508807014439695666119260540980812303440293870232880593566508846892603595138196533922805690452158277749628510271118697542630282996965576196994471474457938336159526850902485885874116060302775558319629907345933768919728690101366575831686235675723795195489659496729159378744005258356862248245681275978204527242570613998874106911468134953938117427001014156321399422824025804899090958164498010682129591325857709219748663490232761616211940545292069708803718560417313148991169239802854088620993676662247336953726817612361484157610311722809078867091292910816598640043713899814555234122595943441489617539086971967575795563867615006474485134727412150756096197256173360864295376768230362077553973680253631501145602834079174504434125002363648796764862903174413458263749502168624924584798361719099618553959113449016986461797991883069950464307841852909236134501502299338671741641668616361861890537444942236073255703117328038400535777339113330497912965670424298655214164876234594243066409491833517102522083601159914157516176896361861651878176239638623572527788727668335042819200539022826896445913109934830362182467673951652564999905680089387860446437943529036978060407584564343434476461830007162763044122055016598651817723573399932826454328232321795131679029028289998472404681870983593496331594463098709966471305004342942631555102116440534541485846855731290505073098578873818279852361740169270966978433762571601123916001092470075193683463934461575896105585337478665672290347497831873202024251351363254873736701578098308930087713819115368249160979081923713867876496074352799753439531195107722297107384430842420459708351059447091934805878324209637492507062156381803486453494810299596597587313057170643162419085672228702178265565913486419234262374550019090677055484579109299934693244497019727124021773778860595164760600805419202576275538720070997810462605824631015971561497750762200552078783986487473450385318998876922031458120569800546931410290083506637741853420388752809721229710602734594504260153601791284263215004096342119935474781326907420799081497651939068647025053411942181126596716801475596013326513094306349313545351847919881496183228995344028984635993672080924256406364093746244979979164604495280149530344265291640702922225708024203596338325862968521399168116548069891779080124687941485301010714361287473850526217421707998668687033709512085808741613811467472594538960507726759432947414104557457312796445228884026448619809233101447371234997883301539043812649103622080631882422397303945659547709448554440287226093357657657258942749548378749142504171550429556739924528189629030764057471890407529765854174862450408975603674227830079099580156820087573796037278722121530771232150865172092955400989156583091316715132260190877234388256299604827745386679440576233794302776206880986993447347499475505968037655922470644911497118248382498097713598171027614484558916042530163673765279230909819618012626552029843397404082345005069081594738650529806229526711410969549335244199914708437269836011618883871505134692713429828670266234771140575111975790034881293934541049606742318544626806022283485696747785502584209379886944961342725578867618972381092780973057620884371402005824083275963751679161486445613020331576774257371343147468221300197872322605939389671048271167061607900655729007923711753172849167769176142770621737927529006352112287989905154662171305918649287718861918621194620976545565193211235600392661449951735850809712599943511599936808079270802576430545701560542841729734624091342734012720708002947242278405552034823348069592571397351458408393315936650454200599404140008386767864236115601099198047820113517106010680329172199606433889284130744559369350739948734696315025327996190283629174001944766139440338974148733610612526560885394069628547297251921821396695597643224146243238435444080517206589718529816643771810332657679688930698090199901588947943006125170835452014295536234413582545891134162049249850572501134531050929946725680173869737359792888502052331916761074583365651262620744262489502957388490831973379319534646809155344087032077801981629230819274136614762844628603573746507884114579544900192619407764186288927641325434440330438950693597838300925906191089291168960219866372697459120335297816693053542469461290034455218390353067299797471588716110897182241481804619384785757898809554609138918689160793794163243796057502057840687469700258973975849890649964851426608918561981324060258999572032035322142913192040026295451607269358670390350727624053051785757339784311798167928197491425351495480070204102803207799443998512619209777249451275471677355008969422825174344870630572757895452784159859912122605884199756801395209585257715621553118138441034982175610490282689617854443077117342861768333617778728294666703142673525011344869837830370444158593232880898682817295978181185102970769061135735666011275285525907335954923637422492801626362615249666760660400023295913169323951138874645140437581628537229124327389172466388409971853442865261518847287754384899078191681019477337559235519749151485761463652544845351153967713889214713998370885390919015513192081775882127275979325895903331270425523984983968662922873777089834412235965410593807160822868304658206424490151619151123289659970841776076612267134818012208078310085139670669334785571725204743223309097794541300031409647135111937932491203244380719441448085828664694389842867851188752367205309989239957641554717488413655537155464636752470746940167019066115039804537237266952766333997985123335155185435487691648293291130827297501446441145978592469747253697375536406556597067439454722525520065094874040205221131916691352980071232135229696192447053070423040015327088975709145644218872446147550772363127966218807397600560871321958035027060545561094440835823921026711418304669874126222305668850123859107217654531080453209721112302946171611862322572118103194949689814284919424808833369404418589199439497392975227450216616786021581211820382669550577069955584516062925004000317615686911589452786690924543042578986621222273077666049211625425659041000085538746173557866235235584933108908079420624400182283607716653564736932190478128431698131404426175245826999055289672873887282884462482991821044143178074086901633560915946799991135518998258838899386750122317663750515654441402384339976275213796826332118460831389700043871508914087372270063691597439777739271858429546700111256707939723744532674592864786189753188568919673222581759134582438609082931444563110528495003911135758803381610881150502668725388811758867587832792533429953997257510820265003884143307870370037510418240705808170520935005810135339993938526416933679514539024663037860072689060221123356465625049150700335289647098152827927769128815289111506144209888124174208929839330766758900073838846759845508111859243416156546123860240721976639076380471434563358706189693239249677508676734578290953405256478554736406166849445018991314669379548644724890457220375075973382672608815063061166301151783361945856591291624032851975310478741823043718133988924677917474438515556817327876070613882349546476465611996938598577158146619649480622018262985995730112335664765008294932112196623775361025444884354046027710819799024389740103663128023441591045157048308793390903999441264097019390110398681816114362904749133377172434835867629766450776081426992973902303314075718058508758384094741493033514258560532936395109594187549361643852341778230020067942051364621124963371268978846266011121063338695590352447575771010782186500206837884560445478137101745574097103855939862074843844062588646652534026510710284730821583701252279721665225612128995394717716127536374434114649232381021053512453410404583753965896097178941300843287671782967535150654736354939688454721162365694209717703417021820499112111574582286653621810189655988631158619773334981503281491113076187798132155523385004670293206785078310525479624652810656916983975019588720698236884413492500089383453543680040493197015403658069618694513308800493094623636676489975924569675625395591917107426687275971193228919019056363401103348369242777397638602744738237812733775060279264969281285987820494283392426282346873547489063007821837953522656519365537788156252742380564911226362063367442106359971093165918962855292499625140520623711944015741591789705785264617911926041040950618414994955450187148886241227404898206076397562216576916117779246630550414543504088092328867857902812767035785774223143675022986126448303855589030022311767022343260710279066055789472851338128669258698176998456356892895738645902045457710542508290517887165432031745696909138307490640163656192739468397625134795786046240957784274633996826896290529969101300926608144442851125636209374092185965350412652722194165354011445045448453658420207878040833717754004875903545258365865847027878491965937913485928318575426718607392187112545660681870286816591636246078714948145202185734927093211913304405347640316697965466023955448949477179469747537638168118560498852580961687217626020717871541968898665202609146289291987549521168996522519810414948809854127861449546671170943660795878892687578675056757934018036395211079088246253856659049470802851008661430465076056927892936543229720951336096032145199424237478546818435241528277306308119259754888228297455901321314389209142353671941156401474005239062398680727602350284636465508480958811492789868590982986117750164759471130893584590618465857565424750267112575354928127987858637597031533977273750245769475649814516432420006611182058976710880189714383255714444413100591737797061157552276849500716997521327001271157075728622377076750426136239341872080271301634550364260679271531727976787012019056605974199215537283239428474777030805827590977409359301715227192035392020171223724756498843111560225955269594751336900549200320567387068374624430928697154337567349953624023750856256882323673660962469605165676222999078107228509852877553194374795299142889555156326330822142131549894992859838590768338947605341879983014003914084374891819021888574097086497487688363149574717746858118348949576920582843464620179472476750825110565930038176745331119911313891297062397008285950119151838419976678495140987567588510062197402105176426342879429143864685109914372617700467135705293040301536860390900037354109658810269551307393103379618553518398792871829887201312186024775017445855373480878693075810550611623980491013514046096734785062513903117787724986659425677957513880556026026634077654895326463156624858809595434126842293180524178461363983547238906329043197993030639959032166993285564542793392151923766554782633946299133531336039061179157904335769471648188861917653704944049218182186410527595788676028364815438546609895093597852790191823490863116673287250946410635698382388874071535525731536621939181504603739191049309945638027171014042275464544093961234488556736634011007676838047283163128821126788308291361129450848716864742058635801871214807035977698752131924263110205717473875776214799548441017793279651542697130829290598986426021599648852535652156179186457094628650017001422002886910235086180088021240076306475801095632888318132740898500230075994098307172335050530326055404736233291060389111436230768438208488492182156448101552935059537919622894802194797085078627706896780923231981534928822693525218773115296296946191321882173608692489943108820571843901246278764965920051034010020053083211582259583519419551847858220498436135366274612948234485497187127158509435084462645141292733345929091606938324931957239423365831477487847621416973216040764409646330844828695005400815146519256117432852783112750140974542604560286319246113253023482465150375602843042434240315603622589427264133582147096298924252900760217195892073825380612370974174278490775144239738657578447914939465237511523950440776115129128748415716214045330763164078379478425384671947235642583246932259778340311797544081699345101204879810449959362203707179809675672191971282689020543721268507933931212928147533319509535443093788667434955668697238191729843000561578062966774394232072212754096889406118529273401962894168701943311141355367970472020467710332861923287490716942519246589015366151309134405146049880535789890219732542499667063708136790344682849356534095896503664443081017486914398798356300064310337045366280317139320264098985562851589776596685963777446493743726553398597710954302550707531016948378359684453729624530627993016399754767740008330850142138168195922629695909094444518628473568115949182793942919964856795330617438040002570077838458776793980592037448470025461119462027370596056332384874950796323453647212603157933327049044486800797660465503377913560002063412331402525528830292014225098140297929928658592743025012402045700404318196617898993264445763817525339605418729788811361043984215163810459432094045889781544222752859984023663789209616058366636852112712765014237140583047150580419473679998848294105986335647700570824658118030482153808137286602155006935098010879611712405074463985500116620248553625553993562481028554235478515621361178062781053402039954051575277451696520702126848459750250221771614100471471643571972156219521961685113275950621298917974008497449899684114010996576469384852945368451883117110221863999334827853578989575695146481597644613632135059980939371716755337052500079227000218257466122594176554273009770693048972782880964889287296622365572696827845875132613406333642871005454290293464099033034751845740474798438715057825770632860550581445151956012554469685163102542003762664843522317933961348614270843596429872623798338409796600024733115337725561476456381694404456176363651301539990050911837195234283865809337460525133592464961541872754206213771532273969546111117404630898133088472553292214116519089870769444628391719650115433050369130855207929615176741048839835001417539322818132579869960996221642595228800307361629714751221455042036459126825850567258422081036939484531359572410455230533258940692097164567190597529886347742262885101837064372912299926353502582300096133771729012937715682838827758152790370911026000657778252333349878395505476125495625402089489881704748229223255241769974017961332320391160444436773286444303999254422341542530572630157882680273884312166060707541873651929747156397013191779872902909626471099493745138668606900813587256836569627453090692858919017093094500860390632566930078825643364788936860481908394725430270488600712421845689961784613987457798770017195514449031173885649295253502910077890540816788966923469209779696029651549754355753351882095185093041865837822161171243761449972938336899118875336231678472058046727997382738120886902676780702640362064426438209204880763659902718344690331037214636101475657253971663794137156272221396469050361671413049280845291476951902834477144646402523821130094593779572572441002851163267545548725767792064291712487068106443315846459192327352478702237455612958245983079167262951348512712182669774225319693228648970189021584022716455195876667142642641688975913165744689728382405920366997370830991808582467946632043552762182740835481118996356660032667124657386076002243662159637052678869223433102713768954486422560935860892142764966750577557961763176012135812798818537057871159713143522431362770610641754370415270032115530377276730794598145734549358173320843521796854620440296635541288915753701335078777385065587550645993910396722682664418385231697872234835784702731221159467414873230419515137494497865633112999051608609650519361819763627077470602308331139109223248398941072319858463472496723817372611012046775192992871533473905652479022403088368692170632016744277294217390194238771623196351706866634612835656209535169936905165417448559717624819689411656790725014407890616209581510505165928556324886373018194051172984993885508366928870089145081299210585941862826621779462114360450073191237883287148998561860961970116001201779774052278624301627727896754365981320263846215490543587042013022880082840467249148198134385466191389947948944080431383807230082974668262873896630450223187846675600291619353246305298569590241984489343416362152082306792892437787077464596137079277409211104231824992861122664244688536925082012970260642653216525927159683558811969884749428007534148050639548547038466413715576539649104572415298164187784055456857903096736448023669579936595573556527377917160581725954178834461560470631805167281571025680399405260749598594539095509296856496006209647895438471202003151115732727908057901028646758846430511180592885847316059473616872513198415845770069345912587537373494093313594721206066083781645149253432987087883364217820373875665969676669622082129862284726189722081294643613102037358828125923300210466681925435676411947623440754121258729460019852510769805010673562116870242159299694968392969792027162793925578262998040401179116828875580746879605455189867899238754385638176191632244355395601443570436841819266818138762783263029354797894146935574180146034707390924639032660017012005875581708484027049438169771628217899546435196576989383944539545271669588709256995523739457032035342087988655242887020068468691152432351627958214563199022964818885806872211565247670989619348981032882750405337603021194485470392785439148196438655090156634017991621215354785631669858340115544029029611069201846474896369461326833640521837669643246034389471814439220660172118767195423716162266166171173334530678419087596244857734563238128385453558044015820422129777831767645718463374213930069908637245110302588150943717306711229228613990648335098874045246509860376837588644960286026234218362547529626439285664565581582220836800025631344505393456014711355020814623637880433966741017223951160868815977004269943408543860788647932598312337182381557505338863691465473691758891760204281232046697774697219071970299436598970193536267913726342403413821199078763595145339247087788237173568607868653737096781394735651339446799017613876435960999347923500641763213839324590597947638575472891418893261364626947424911152315712942131007936488409909330159440303387460648165308262203897129720621971414414699149988347676985523039217037368000385235601170071318255703087281144016744169965415283575871379024979659741223564140003836659011953667985612311637270854185867914584085093785512321970394453606730763584272801590533569626199759596074075708868141917153555885250714019917713785110266930047374227278186037863920792295456958656172847455901269476888085136258330088562444455382080365410372299584185552043180495232522038190779193461327381824776537061653352661794486610646063272928527649218391402285248554405141742693934427250286242729603907758407374521081276153258185013160335663398791053151659169750250161382910529902792320889671002625729938791233112026977352293932845540139604586533810263153980015831458466429557340555670097562934067681354791806260206270114823823900624828017505364974596730037083419425335105688009191861890628610701964627656552713892797542863778837075853399308396773257097031645539168756266535741430199783555743772747503992493315209017399035879977685094435494457260036727693667173886280373161517643115896426105605001686884443549570076804628600188178204427350600378406936635956709925496368163115392345056689158150684087012794942830414876743468962039671908189643297281723028833996011004036573594616912158142514181041025585805339729005686003221370995463358830843440755933356112083435722205257107986278212328447967475954562092480017850630468462543862368023588305263787430342475740440862301308853124851963021457106255595370640910016387220634270550162018297219313738120921211888136066196572175138717902716414619296830690263618034677368986994501242769066628343696434789609369417592479969230611400440700467596020128729547802684254744925438014349860659378113664836925559102210727157903130860459507117305765678529601179127649529232590361299122373668336316744699053671197360417626914348013562862894398172274332120693584217948701999368663726755379602205038266058049641131770310913527144308164953036563010740776953125254093839716581757114721392007901645570059299320266909715514709054110021597521494456546286050143800741188012718058555348389084431453809118834879349753249172339666295979850362463149953556793072292516522983256851498911044064851868339459530326135168584286205018203735989901299786735946842975357136631809018141589957306616361558989320027374325694125176813918952464133527401635205155739423478787293859182627118228066223331287732110438445200285621333377568053916914461046726648781812954681340576351051601244964981537115708626907967074726993653128232893347221634931067949252079638428711663100247751388965525258201381305734864112143223874673240913040870747329938721675878171133063949038029336921558491974394547089272527669665134650053679860081913037739782152733692789766149001239233992220994188655272942318673808793513135871949935048002346353214544909083013574083524128734849248748202725139552416120605738400190602368486559984294723621613077451382756004467509456459992182457156998018656538656579604093332379039907945051265744212344510218844204835958593317275242322423983358601632009818018845778016164288669817329025199261572824924020219153350767763391983932424153833440885763783949897320123667104008574111199605128255629630780982417020298059291350358212320486669869844051503637026399434649320791308095001401096947061778836462045123444194124128719896080964545180411673683417644857681492700431804585829907661004302285841607380926504199834415129682803180179773998468535791272635884088325807276812016905028252395406258831589747120832453335530296196818608242789165609928736624602138311559404227706932381712171124150698701321693138920895906289391152620111765525917842057581221732741767252267318426570093446959254353733226622674130308476947335254345191322540846068221265937682208106371422364302643598349605707891321692170599553301977365133322041777138117167293067457932308429593068941381428475013384349458950793187213170084257112330528307068159714680768842835272888740672655130700616098557162194901696539247825824459730694871132493401708048788307505783045389342807170523685440049765144306227619147980243741136488244648003502945987900254452588878314131760771560607518844698339982564638209658854840869804497544614207269662579173486212311250547836184795594660377221924302000769510475523565852538618388499677592749150429609427845163501761135277455166289865091113603538416356503654888874183354902471255984114529141710188127032739562671061136709509904548375882133344649151218092398420646194826028274790510501657457937371130989846139351994582627461810612786100179399166118031098524590253004214148166487201775815327933489359943947155034458332232813943093455022398328664025836595445882659369994265467912541605221782403754263116012945946634099371022771323172922592120253143390999297897944379819864103326585966190710844653810497488019521124080972821208398680180114213441163303209627145855491278658386795489016752296495985347824816789161882161866019549776980433897014710122393182215320973189116509644198885663058426589497993853245677633555034995131590657865366069483265216087435725752816732589824037562367986810768779214476269333829662043847340695051480960584970475022107949512239223083259072053608171498475877397319491916463245962523027839962865169520456793411308634788582134929927187614253364516195224326854117827648820148561509503493626207892863537107771952890692128532769056099747298941282573325009648437314532557039279946369230355869457475888903113421657865959030809402508873968323545678435657395747326929745803966446131649112289246691256855446804862846858678060020342782737835310010345946605200666063647505100783345904220151013487785867362751045954427464709030376470796971631658339195539090730236695662356663844962435903325521314770950602272763013363623441516128995233347252929603490196303112289248990349907217838285359026444065317566785031870378187367713446730935103751166339000629051373236695820005342358184816344051037837631996768898722934485396017831882721090785144683619620942767071709893565287783940206670610320842336798055815814807976041101029646588600920923240691694515200320254738539518432217567034752129127790015107582860386840560330503472852020957143728863471255383342765342446784804042978536564004970459703393261945334229127654878965693372510622064838418335499902094610181458759023868463596310434129111028693582278221247329417264841659116555919298675409588112564726517204944286081182738780065499008848475683958108169961296607648427161050936622528777183546838161980991982846405938116202131708380640465886021821176018663922360671708231949645007709674130631197696022022167414459119201096559051469503213150956429833187574508357866621653131772580403869003388011456692747385282999654918999791959844196837822634418013035065457641844833096021564534707906782122035265099750103951739183916230340221818766048304815224148610793507948038352479284333919542496416961171650136995333906202252227679855085421988915361609785387864786429113964671107600154875676318315950705461472771641090133459574298902160995677092756464315606289437626974711994608591439582832571212835460066148737376914251088386291667592376728138694149557424698439053628689318969681002689960963646239121138468582321434425845675479856326186150619319317245735999672472599051662763829133623026392954568584650666409316284955167496624380857139491566305162068673320054565879792570541932877953634583688259599904701643304385816415307555537515081411255674732700320927067514972941014342752983005243176237849690282083335939069307348989125465842726565946967366306905862475580345293259400766888166274074847249587776063655475508763244072178796873401339463040145930368448156744721996368780055457337431719661032538615420609969427723447264553662722410385050930751067456371353592746641617947861324646943413604504181639574791763830791858369868699027905338770352896833454881411530851524379594696478245740658743110621917033310448388170403960486725487429390448967341292801212499260149736941967835447928935030561964641145240223110873006197970633163636127543974078049944947989546925496998102538775014307442519548570364282719520400848014405627878188009878681641892766468825528359037535791914427693838942636838024523749778400262220775350525360323188116511963214078151502723924697407477846513020967026508787857389723215440715855018697155293038787904453714414057502026489278330619855771186099644256700050155349147188533029248223616237467467209322710483702567448869094261856144753209860241287251955023382833735665497838043257671383591673571521681275260183686017206690028130824979104073343427842903284101203705360710586758781073171786292132818202884667279059748498473928194176124250330512236357353867818190382328270884923084792437795458415116981829585798749204980194077500705189995565733826696510117913378401823733270776761261240148443176987422103901668393592309786184935718541065311772399831893102850900920728915316485885843163088445529576931589531552804949946663163508689377166658331108753303609709586003412839638738086633724498741348996757062718731876116622721871453715017162511118355052553057675876276990292108985103384893075355843209385448367924895970357138901844072635413146613158847820368639097109886220725213449338774609948149396050485687229207343441414991851182839301207033823699353618772058160172172760403069663473695767368368301333023298064723356232414883343149427903151578980693749743657353563783297268041074758402127902315098037146455268748431372166512887343384581707476526592763236064048273320239700655827118651865563213884739270522923374161093254561577629588695283626173043746406619917044877890486491551177625329009532780229742463694571842527065404794211877236590692679164896467586029707073848401003713720138251696868939771672031786769229992051017653208222095324796818942908358265816407442465397805576358651820412204313106453840534139899184196616503245533141932176935950051491946527251844629399643810490195357231750548141109841996679055464133907903521806585214178044479092703077767573255717241921410618456422022198778908466596900269908038368380599158633907563675461614963554594247215577503849700182104567552080667626156932109317908117939210577037073154925764073902021462064270120546355407703101647259239773747489026729686706999797600300333505644842365345424025640450217988361535237977051628495538999784177516114960174421529039612909644597915758103546849346353946931874775938670151732393054026730427016320980973576240577068648442191233218550507104413782344387550226739246620250780780616669466950737486479661124492525220214019615736283075941283335210343557752338640628679374616098582194830420208254455956067129291063915876776515571633805620286717835344987372620173416436983564372660800299617597397302723407137693025742053877222850353645154784496823246096519301094802386890612323032349868558503629069425687389258052492582030100590587285835195173864072763000008689837896494441598303271102590387611915212300387630028255418054665364858683081994473635507522965505688887832092578239043213481432025101011237680617726549774949297770997415772038122609622233948610151626611032611147017488362056306787571491739251342515339493523817863594198598281223767864519510602635617081986321223943436646027661954374646546839287674984634912063797652909665693614758777721627830550635392677562634734212073640569279476107297407427984518992342454329533847549967381169245729848423635325390496347150528535907773899825095541547861687428313863746549298539314802306218652626943806461636933870562102883754992443782671871289953974372210145421939591696840894954247327474127796562856445974406961454184476375039290867873562159557178154813264751967556813613215823432478110798440824770476498102313842372968824134168065383873833216368569158396616834864838917744594397234362027949071259947218308071551398326816842251560974919326850442701027392180135208883497855009827500772433851592237191829322394091948383683238104957184898255338938463789623594197675541121953261187645667686332758706680214743156851729067982510983001648536716219965828011606359876576540334726570501611688664623012858633664593898965198760538945876725915567097217814734105038532062232002049019339494709939615412251133040645391083202624295786274257232817139250617261303697928764433415857737828970444199769609111198652225758032572322235000733568273773886826395266058223345546885146633551801383128443279076135966847680658985634594583992754092564589573419905435650222643897976839187266684136798732453858104040081038102501786816802026833153275202088716822596939031221752241476109609756862525500124261995804307467169478617772354261766883351682402772605109780544967727770198020380620134374481122405165734100867310201857372490821023447273727416461196530586110583523399871976868740269648535902751718883913243932119781791569562052490420617344923296232109606931284727679008367115877728333394292779245220203704084396707251140310556068283879097598210746507604928012635616242927639801470635337731997272235827994100976371723615645835249171953479536008410569205975724437153430963772464978266551760603034154762369483641284189667505008473232509148854518731199068730038444698452109312384022587811655336891114850466803011031691974214425434737106125114962823736625545751838156192696373212928417700557062867011452648182105554548882433355666257028775274658500351537350070062387716093130599890433860376045556749996586107975130523370434004529292364713912344469959834374885401729027955288297810661948625108061716755961232177075396253344344279390690748888975685232994342045905459995099702237074885427869697330469904973027545512915215842794682482736021819505115036171176978145992277480289926295137977348542055222032197981135712902718598598155960023684966679757681132059698168096424128791580975660739403590128524972649279895143609049190746786828785154514278115341279541377319418175208255285864923423913728827626022068786478382623350445721928507839377623725116189017162318649430338062480445738564354955818544535993464794398438733598659885661465059969239640491706374196716026006454749646187356069082832619409916646078264778147950367694297027059673350089500838456936330218308772423626274968485183782358126444700012278988064673780679418989316357907883178204666448308718956600067066495416177790876623825932223881900226744101948219197245622993268471913210608617222513358655795619980713480417262384158640674328107584921735429522946743641607573026608182467218493911903652742648081135775897943440919234482665490005031790356379232631092136264810569111692995258592294113760267839556577993984807587212067726081217754955844707870919532698994295943212353872978998390345394951114070179717117590163736459004277838873554662203119460668840065399661839825439767075192414291293507847474082211264071364106599297584038375795843248627595681701001391987933717625208767823145891007042973791471079982782216515913122219789284040211855141097381018004000952770491232927610821294179366481471640758097961410477388176431320699490759036469341471273442230798140604753001605272138321665179342061643631999565996967375974429063464348939737952200176200215732236755629463320212097035452754832982019471226743064662450290926539089883076400601252855652252166148122050178334768446885378483061266180562697455811357944777389845006141739318938960578539786124870687057763028858342369486300736639491434998705206805081546730040580441691116394772858155058139079113742346238507187775063900956023979986576332812223899962467193770686730076450590566580390756861950867988434316882636269431535828827334593102008236808214889193945475436994557010071471517993864644175692935630740095237540320651357690056422082941333367988269739277779979713672956054674310273040147088141788702265101308265529957125955273366997872721967566386943929940079746328859693635706102857721049455502634656231164069789199811401913210085735469801054843920377087142944747263472039093898750269563161179448778114329764262289654527931945204718361488620409402843876629271172885125736803577867675394091457337490210951321199725472775744978315173956835522777486751503590910159545914014469440056016416115689017521044432254910090230771598557312795763143956509917795272387966926035600099584790459017761849474384555779980660492777959622953182288403258653936157426248685614247237602236070159249770220781599318751427585479985837007819885412780972560630913455168892754724286786525056506458679831687059235348903598705885799215681499450604636726400251183918864351681066430406007504979866410821800969082654375263881759265158703466875101009929390881939462396246896512633255792979602701650605419530410581440475755846873955633996936305153994835288133529881481931544728001554901200110043466002759085669101176932345298284078836055886383251902964358905746715716774557314371523986005831243876438344620459603491334119365130935717802510901047033275909786841308287412299965133898144524352903610373654951612160755216970357842810356366310970323911453412856371982535796476937424070508719113335795942208288729631559820308703108556863921764582589904246353197331260210849483939468790204984640933331007071919663399930604103159039396038081166892042747199009965422308609039087904196155741741489042252969897367660235948079839551820339791334464254042772853747631158439885846823220194831271187267373695863306575392902884048537329754193112083698657963527687393894225478537593053323316330109614683134411714268196503109092626637563619433353612974822149009910273958961726623467797944435635454733429195572442828218920478017884892880073873044595288762336410332387267677757845355543885636597909695292627561578798972811385233831202916889360285782326333712866455713126684444908360147133983198467476966162880993659186746766010805730298918316806994111856063440692623773273915058815243540525302118349923619099177705554529077824254684967314851740375306766672183105866549163508577410866459464338381025810495074696863428453059951022998277711296834448188398583635702949613386267129171940255738137874710386088230385270316500809504737621517920457813857687888361568466107747508560678140953120851454312241002004044800885146777974906631587306696261422272902174697554978873934897029642607283949213855564298106857460695507330749182661773290667473384799878049704528610060770666053841470013766467589647419065422281294704457818976389070244833555614271286995118711232228223495219451511831329230183040845696358823979059266314496591558782764734731406429146227274522972062014245821903171994116111211746612114452276930577006343181060461030062446300455221085088454364262680140546850368172087743551050802827833852489799793788059172508998426827403039512245642423106617795581390879724596244586270486827540906967128563420501421292653931979893061267068780479016776238033223033833802345527382713415242412920207525600943817012784109980742843700432045228561242731450557392345582405648327035085465127603594641296530948433266932375099217263452519120806875347375722806000759345177676415429029351570161001818508440433762075329382828242287227424116316281040273448307534537295226544825810124934059106160937940079359575615441989265269994116307718308308230481165966721809901375695104101823509847518441279343383015392947276933135830447113120555887065796429110836622160562550373862614577231231306126027463140604068474468999717509891408552092515643063026185726968420166953783901923764266894356099488856441072423380513077776722142724407699013755695359243059504301054501514377603431306033623600315542007622645386472872158481952939005594987007636829456599205690995549879756775871187380113112768421690288267657895831173819816461903931334433938621069662635382264691991608833413658727477947213591690613151161803929539263489375863447116588945849544337144390413741453071696924699143870815872772328685386316097275950119505016591570942542241833976745344969347946642666429891043985416979893032256549930445365312694358594061907812652417599817091124013330417714554974509525758303156392555512599849671715019537174647872000752227916917114885921169073738088545609499897769576719945862928334251807295142046329389939888736447440086443816476088230139715906037750489831455713869997218582668705665656038095635200879789385752633351222730560040387011017455183284072955615257571241320166264054899724383156145998294639892117284000958126879884667608334381646143799215717540948545127484375871580211198132174131512382211179081826105105326522011818281928016206889093627949186017492206083077083088571795485747219095468135874723310056525659384685694196822705897177559969411107714861549092291110536221319074175177675291420558943469288244335282206870168077697369034935655166956026604199895340047604308050600595505475675301505135311302224892194956977892862661307968143797711752006116912225288329109909767548154180306950825022907308996923934022506732785312737332857857369080092350175262288516871663141466441304885411468992774746233055416046325602378151267567774545692259012116583526110187609103314168798096203174430005224327339403675350782916845304549825348509059684129627064970556516802259529789161227459686400748365218587785437320437494966902785883495176009633370830948159287440163147800399545332549102789800201642907130978430817611918429952027989051379491228414435413162304711447249638386992246769324717456585099998163169519859943766929873809160299355403868787352899758136385161415135275566506523586574901635017874991219984202495446190527721688324732944400641494786065019727623075642490150424778712680362976867956296513224561544904751537265690563135260280689562710952852117738183012817377279601726226063188718946049279491773989472128636778218432516862438557739657234442715281090223677952812273833322456177312523475212770602207442800163419559291166429447380453855938746613143689768980474474148105963705679776465101400925605237204145203152367506740469738879378414710598809702478072724833286840252619404890568307003969406888183147361320445976388514723548885722120540907695237681333133758522835229737533450226586784227000728007824424632150799399516928172608413069257600084035173848432272593893122019961868044683865403593871367564867910854369698468445474541110069384904065931632113261690667036126512735007878384209011104364489620981864503429981026605363607084012737505730865955670626861091127279277597158354670645012453821414128976267139638688265610058233432975466031643599347864421118404740993547995336065392118136005592455875263508741292414151195332040429781947909324301306922826638140050284827569961997599984675916556065371965235307246390400791620017145141888330120607123127269494135640383401262928721480195614879713429929896572442217902202793641963400150791807182947115079826883259599417873191096134441881304337793671417249231693916368082470875750950711914012925706124210240376235994322533779949465399248235410760052294737206277698436796392458170684465712590925806942735304836250480976057474102272192137171097209650094000515374451982793097201701104027499337248960020710171705480070509705324836795904183345294114722605916501505524928631731229525874171859544006091072119069653260901218667210949674398744857024048724681532515916851427949387822706772868038668053953151471486506325170384184822752194429279730248979962671680392883599162369684801263206972566521215628871024357859239738451712299850498920778575343754034524700397614426694083343618589507933861649443653178841566524343756702998306015869694508011796747132401078850153522141325942187811054740191193794818633865423617010488989070317265082517266314593972371478035592206969053277946212840176584509128974322542779726703095881435964188352174651685763860108393266152831528123218087104829477595336457594763599255583491006470747568163965505903026368506577135958478671223877275234106104042283986806554840394340126431177375981263682024251573591017879133425569026115335810923421131551976785180254101378223783628222809550337430259777101914521742271656125290716572419538956290999672909867395473587350136668281986532225091158359710249730413646860654990839962038857755044219577908701707664634722176496542701048490013146356385329900072488238962405236759573470414383133055118837991906599651258549154447026516075325335076692785370807099668907101643599618009013212603206067705595566681156583416814376330620865058774431963068405235375677597348124967846928335090453780637395466275620413637357756238073635605270420520200801384535199802000996383241463900502667320031345580377987219451572296469130237659304311658763033600172224999185575546327660629654542465650705479922651878918844690237359036877668328867055276549148377756437064692284118463252544059964931936491555639068449997308153155495633080873769096943817482767193849834620238529432435135331773969682775237603236151676567992565693450834197303060911637890782414093749834961121362606529216546909515789484469755021714262712479456211198303067523482941867757806064800845836028462313426671712715110696225984965394515893333927572721507069645270500293703817805703553946897062827640802878392867139160764220476729883133597000285495009271768491359439179757257130149150406240777654661305266279771260232055517548206738247730760984016817421472869388192203455537954726910972758531570295135291153449791270247289865503970130677778854265809530650869777671865357315521702728959271179399287026982673265304751956033131984842959326825956696360241573487126991229168434081548152365107747822099808212695680724743049945050824870429192668974515887438430931235978535824563188035776440542929879041453884054092309920951268719883579550212031744601253153748065483235955551032993776327748424613956421632488699046576253304273065402126758150860162519833071386127000817191635749501371432407076418450915100338530775118207323915245065997512796009144232994232778097042428562713506976685478514238992655466739707599403840055078565000062299792160992779648537675591893413129275061067618952538129939647479755781893075996318579005109088704474086548610504292886513001813449401346862336468124012909834263355417849710160160150244462315804568958238928072308994957277868526447487943658272183088425664073647111886494501819508710247113455368537889645154489191331743439327715412326402068303021408367516354743645503768081283492014577619690495018913434678027681168208628443556764293250951738362592667848360075204019368606319023369052734184950595338810420894062270334113974501218075440378023771819616108919710810091932903054755614789377991628925442698484234529266268085855913944245987123367575446103686697273467581811873795915726228202033576148483503676010012021167601640140362644255047278001318654344361658398324398078474334893820192337597723166068916912321809485407350664742576702968194124921693500509612443921565496546658097933209660744302738821913854898621741991133450702690919329967344417568057278815037567929904420278260403954388592245971085031204435981853245945140190166525638152933385791611568723018562605939554779757187321927331860612474074494262208387786336306250103201062162578814271212791303013037291964607057229955443538013613217614295497745414815705172267878960555983312458300114938020702078248192270695840385148207832315942719477591530383754423451816169030188920427520339144158404089909982792285770682444249892001467968027850758977582849357499652982797371256291500539169871739192532684416330017437952145196201322712114568746434109707290568150547382075283473380676129486508111578364302734734327711243764096693793269290141729247797728063660864238995552140017201246938288713688786064489807599023587143604985338465382172371890603911908754156329258569809908630526289618981295743478020545022652017969452962471605515144190488745657860691458046207348184125511732247653959488636757422552260590204042102475215420044496126659999427606499047666909424396161676082668915210751686281122502074682756297066739016198706938172127462500372754820080082101846472547559091706518852379264625626563501056072207232589664442236729600075298833393700315769449520286683829384067293694445914430249368288419703424532060464766149427445658693455361349679579352072890355097748367880594896123586231607010233679865219410680511112002881568191175220260502665140750015778777607432363592596609394606163297316279316376528192373668971037166606556096290854903564746483817025773223035878690872351961667647619520055493145538965823203190499606794749122706526776297518911837167198520939195943378589632733451957316160817631299228260301650963479669583851938175592150728203713810688293275270276338631913762953540653926674011369733713838855738327648834752878412213769192062718691027362834365390240482294823115554125010793013978506242838731342880943160519863210258226405779510693918751292995811023656653269957336599696035713932108167003390623831671517381131545603988753944469835470202330383577950812239292799724168283988045836796946390932537675762807025641226284224283051282487097479110322750247440226609904212481759893037922017471345847699315205245863076916995124417700218680787697720539473106793445876990398363857065651808512404703219405768070113292128882730778654918295444458983156997941773914635730878255294196160330405156602281990365600397188553871721382830753211279786810825752181833243179337620457671889054807226370223310202951921730828355496236074404962156780896650205322566210904194546314205813378060398101806245593315065521648227487058154133072859485597808283629815793753955538598542250963223491487805994258987238944654343272191838889633695366896388163107774156815233932808655906578449907990275024218245454014912571557462355947842762124715069268640499591396374278531104889603147027171339775957712216652432469518757980125069634104553751078129927741015821437861546579942416868045153918786198907316150404601247324365144022548920572575005392556303470139464086050055606743381584715796506372609994878396341450173149710570902300508449206621798686355972843650650267247756044022344943126314594236189994442419806530579457326304758043314293697541853318781931676593098384305162302054366497440331081337821305879099873408559286949944619722296621498028887720349808006045953318214466915747975509273849141689845350654708117690277119104428605585448873080739592896414408185272595980753044064309217865278671325909964859897455021182164490221046096405254669066638167822016401986609013352067074001645592025462463986137782619959523259557574614478733197640435374238354459385046140101241437361368727280789174963925501914447880205232013839137619209316948588992897802336959808997835907841620683034792839232468063970860285552228808710475973902888778509718219732393205570282835519182754630179355011492103168620834969025008775060889803957335010124393257743185209163070068290065695042622666064721802760364096836040435873057194991090206029578539364616055854960858673909312487906706095417518915630867415475819629336625881362684459355382176905445808915063587415487444678692139666575387767218938553271130342747954995033305949064392280133735098111977949266904834591556048427902792250945439681276327050193538068303225672218322067216980189328931824857026224854127155768903402814706672595672998923703346339397037601696096345878617067058355722164854970790000760286829529572707521692023303947961563940469209390718288508758050809470121490768471117158912201300354114689226806344652076646944455557892362537365449626971357260974888353811004231165256226446901978611973529392696790234660578341562314890843537200161670289372546252206723621686918336432616933355697068927610271277343918376280497521176798990036112098017576562766011313212633094557311110650643440037567162337847413239512621220584292421596078006109360567259524312277418177604382992861746804469075129074283513459111641536220149289340372874890914599847485010183449519592964445287430741850482140099141770951532502741120620076763095026980061623451301694128693816208805698573228904642128331201818786072016397990989901155770013351460359138937864625766429277144156565744431940547562850765710785748422053629855589814812970908993574497154326792100831098226570503054258672283954899789845330346417832083750376671043680901297942309961887072855133034118554808822579981193557461032651148751662024542148772003633196777662969972196182442094582115850028467990915057134621485379911770228330860416765455779850115767832839594111842260428771341823174241800368998991925828561289869558810825164506403932832216745329820021460831983708758050843878539159274350929028037524422659568824052561407435314503598260611478089863660609141399932866177816645404875381408080103832183835182794161591845070202827170931567559000136452598015906107225140894649307620695220943201070401282979852905455810017565164406861503323741925709732762781037982330407841409604712165588132581521363967817163400381562632739025469453203412722965860436147352587991801582134341738558902325942343966968681968648899399333444194196987860097822222130278162385848531710385688802262576158684356440380965185143319807658453494003291424061648684594191727495653740298677287496329476555687363441818527220461202711927280344344566856397672275819497501572305082555371157801506133258217024492251137893322798756508301015099005142581452182355701711206181444785387827081316767724963109868631917178374884085911595560639950754988946504598810953286329840536930942442808270224513334755925269428337213367726371207606252878073498222817035027627566281570740428815963689089693997403735811756654701640326943114993588539123369243862604857187190786782055265489151512446142782555309401534728920716409938240417309106056568943975273385495772913461217925200108694023997227487444578318070359431590700666410521279399393640886466609640842656182566210705579767086995373890910110004160940177609807869848742713600503654313096303537417219567376181600646985130872708945594253564591693116493528798160726962522394116211532173203799492185562076831946917847106191090804405827567654791133494229981984575519190096542547483243822646574164219257384767879684935285743672039137607854439187829376613384976472033436549342728289327415807227308735667141355946204759252960918164144585051751654480662881549547993165599392548387336676681029919093845165547298584375855934607410869627772757422925786189385765700706868298169389540256670768551203684175877622350698934968640578318542726046575355733813132031526379713795398038423588504404736087728140488735983041500975003043112161732789640687850760790037234919704181176384521460472113042813631817639805158077817717574825440687266653762304903583386183795052845471196847652907084024815184112259591864314283293366038074522032075357982561995628029302329221087036292156752444177141936928948143145942899899189687350507719044716996759896474393025289765830356397498377597550611141468920642954492595263993604998115059905229265385208487980417594872559351271369815867049217438156679507474942378571029174902386192477774868486327399791248398588338969441813007176256058853493242716243632611548839605190328129708600106413063374659842085910088557277351365899120526591825047012875744938558399379923715012596625894388430419865088353406492410928693949497128389472643684688136600969888974365792181293138926867735327164266218259707466678631071662816693776295497951389423432020311728931077649594442268329304486698464518975885922576032572960246604138933299562792934579579089083193510548875693353260783415535087400153970846964090664202926117076757142755475451397734123237009186459697253149833045715976995995455403561469715718043002055794226787599152631868992477169188752979519838322276279448827894241794642086967420312199233638915865406846377872604992401181021042443370007192472800707930286621400985168747183939551597332613941214780330722506033551453110179387043748335296944226047235190620036912656692021305363715234653772946015240066573199707041047878640472865292711981992180430793641957242178239221060408691485142753678586822217949651699172206555607445117491478778342686567134300547648137258966527298430075771898169318138111781193057067152975393337266724337518992037515809977774870532007281386413495457544494508473189079833910703303096021777460899482057700459388713287863114378911930640634566157448347507835362403910279262248974851500205425483753825241623340937487353074658574881378469192809929813832803530184082614278576223975864583555458080096677977693935993336076440125348234133571550593629537904570975991054264739502113523648320886481763603618702885024871985201111511917269108150724013603806423854102064998459149230030778155886695248564591364239734232697153066682902451293014606248267856358015442529757284283642635047682702026356399016022679418829833811247196304526433201976054884213384148928273055209759139008803152370543833576660519929514590309387600394586511570648722291605799591778628576599372324244524550928452238628388551914828934605866778483883917370534744658725793242628509109094110917403402485775157333542644690592083691864595640468514367936678493750310849326412528934877828231233344588674185304332947290295344230020467545969140721357261298018106210302564896855499672985341794272933823397394585333367505682164758110609499218650735997220807364602190360341130168520123791449840305038104552366431299724467352493998000139361772658520717163581858713894319574931503492362587568897475626030512020254842746363655513883147500684969753695358618855556779708596223766865021970799684830685762927332456497986966115798664094828980151686887614194041860274385544412165063012422402780647587341405372155681939068762693309157689362837190539671524246149380374286793836902257939814462094181243859161291875189617839995219232994299504092189096708205183051773238095767259807822729356270368722559111970224849101453785697284820160060370428028120065727626126282595863778419729617733443103906826143397061237875967787740630270623166536036870518001298942512610217954147804176403272502375124157725683457159890236729521579906532726829419097769703737875895636952696346103060065965977888243514344993265502309171271473451418406345823768375944962712590738110477894310451578102274047301527303247560118464714120662802127161216995709575120668551888721073523401564720958004822383611787800283197686380511947338498579446438494180745514681788686654342692191426800352599147742095534003923391088102480366993218798050235036216753682508461965234270633425331913266116108534046752817074334850287035404217099426327852359764942398484491144876577237007243981272450827393748506463610769873787918765682129887800127458314187311800690774204324143116103843615871604743071311985269336098801346869679715474171590036255166586425562019626425116008564313047099092528062992327310732786801020982404490922360692239879403345874533013608254976919605321317407569583934058318585631452265876318491925270105298020966515914329863863699394885953561039249836746674996351425164595770323418764986534948086469166171637744132906150056821489385144319707816726697608727346133350065814899233230701595842341624359014019849837288253507201159561513047246994678792611644923337716780642975201771755230859217299695372761623646085487364184001733483984489480634014274009073439554127325184779565429660780899761389091379363090850551174255688825122083773374238640308940346747415679823262759020019634519102768569821904894197978783774576809186409922230331108197473983546893968828418448519489461618628470501915766042279827599452382424371278666677144656642431649604588361517311107719651864208863803015823373127909335669096102592819590024329320493294649389520065927226720089265079623778047856624492230891979995201245601664002171290860824015540524281407713486669271773328651688175538202613005661495676384526725138067848157465098939075153816640908860670747393216903009626736498594262926278274767926991155249525972550238293011388381538342306450171375932013868595147542388825488311080869190847842606873559038761621371120511785979238210280447795305765964430405243407913533343821870382964412636348766569780690935121693514300099424057316404321344833538112176609849284589762988187556843286700039378572494248653493512503392670549372904234536114880805591891258315859633787735145099907120488215116256726260248888380632778594058568993916028509978144958516465086480738159960306504885497852506845392022221991102785450886322283908808926037781701981036004318279225194375136106424702751510005822433612528464292518764192835670801562574261167386124054676302678735882333966006644543663439277853921684216989658469376989363730866305892763980192487559103952284341543738228603807103442282399017881663265776607202156829045250582772724882832087544104780695756152802778970965304711434333062333190785095151961822228298704053496012148719629779299906085962791516056959329916380058957971826714547862530606557728164199299527778087019431279286296228774026041187644673831833216012369002009861703747584890524841636804901062952885315888052506474849630766723137809335307289945671210732584988771156332008031767220467744732896134350366403431200020079136559003158391654450141779057190849988897077477160545135866617476030703515997779126856709140987356538860499062658355295841886725947326191591339847101887113423413929598549532548784946250513405569588706862200212198229641016240583636154291103981277763006014765289150720069924011037663566279411779874107578517648471855350333161921406325781092503646990216553239770329278870942069022961637415795364532395787534406011496741911263731191926041470113662991015826123022130630842687954904850987150016170355146261185519557197203363850858001839408772267963151560933786096463654444726153237067322544251174199202186721240132015717973264341457833428880957074013307641758671155785141521337749506024846922523973583666504518485548037010004782098202518377697808416008534682756304937840367318181088854511127654916824265917444208917558756692492199456551538223480170864367505391982644647237802403407685857174034142067697094781390055834806110269045177156077650271813037364725761317476699705282490290502184859465170851238738829999173148489429450597900062529193864496019597537632653002253387859361306896915837730147517148962992874646861834277134421402311995785826499607281012499357271130719521400927916512098856670180474079672572689826648062843328709095993436502287505299015860192198086134163976790712348057473087284999624881255880117180641366884430208705316806190866700377267512283849135155672561605402637165488039620166382001244581948925273150811403835595662253581515219207702371550606219335855237973588469172756730175760520475658019852702748806908421320837250270398721055034346680113980088818505686934856669818159004634840450477288312339392311315031614553177473273530792309476257769899974469350390109854254233391379626032119293721676797145158331609942085885740778948538199586124546936154731130199553847370708767267290773858288905920261250424526125605059308548349934895283236931844890329894134887200454930334061069137833565284463308711222880113398467131953474046639927159330406013599077331879488906432512168746632358973018880181323484812902920101112068703741751740845116055226828761602156375862826883569961520801266680148791874583805343190631172369810219206253158036443660943671403631631839691821510294911906714780220829091236045347076183307115276139350075165330425905180203276927396605448543324856679970202159222158605310529154067652288448459759615054925149148769589368243179486892444984826000432068581660166866711415527111639951510155162126988501619408458229484933123492642622081846532507893255122634991770374991448488264401107053457320136482596579513066547359348643049678269065453954930229842547014209308787949096955240845511982465968105033227875053980346851796470079050368661288261992656357508060002162962447180000172590169577344494343424798435712874513417910482137269506570988361218195070217358363870952556217705159252165928761642270122391186104088764872882707447708943000310763210971032641383065440216822961521116960452561570329000754933229759068516872273182870764867988779824063288411018571891489365466140306742281069656683967781125918794604882854314140637793693196917251577103143907808438145123956576247252275253800802454570118040054866024651687786262119266077213337112791447541355195281771261564720986341509831689398219055585051727516773460293992767510521696012001370306752772424873458365922499771315943116112525527581844843444569813930082651933528663932908142076266385115741649598316802841175329765592576087956978983686020933820268767257510628041726169397409286182207994453787555309728845917942009890533371317057044507706120975283881786027089731038926794075830407043643721200916779895928957723755570303963582963826059057276495046438154273436602739947873084143779851674453403106157994669227633322162213370647931511680347713862060685686690885714772210191393395512400718564221143417294365388390617916168045569551685940354511448172184081719598399847133909151939857302754278597404449646781709720878026962700132295623629312732723262866505549785616035815618916869054782601672365073473583916546929476870988156494441632211016471077164782105680119831313846160607430353979079879002351904482387354126458513716393165073466123948397756887522215211887471289210518673670337189430733670970184123804391126898231489328179889751566948668213955593052940851997646339594086526115553227174392154812980861554519097221665899357261029690104676658136414434159023945162826560242241521140302309320202119020965998008789368048269367341420162482506876115907230048837266983087174089461828621534275083557022101591896576390535924887111849118533977547044701769752644679428957525578295202762962113969943935359921701758825183502358769615566765634168719006096790574200482128874406689930270317280807319714360432333192936251296432982461060380818124135527031402961836167810597142497737747304277163046643076446367503996970385256641710503200331750294309939781004906207218881440339604094216233563096406249015078496754042240678539326367401230112483479942136488432356724058104194370080247172950984521199510719355401058011382318669019804566980054672082651451570405008952150918147947187006762817339191798797078301959102178413393796689125845238044066570727571103230404167249511026655502240934153997330618225960798607930564882666287011053327158400183652101988422530276473907408307640781376487391820081094766482931017887155598587758645009706662343666112208352903180163353746827411848186789353165671148437867449348333107907570355764219871222478534328968103418807454402245969561281048071138116057151276548597786868236489068697448683549842415306858101135366764403883844947217279572421402206452971399018497749610182433944007034037084505918536327083694135636289338488826124988895127933184902064038017128417982478970706337176024620442971741392968295299406540360269079576412343560453176354309669921007416834815108514387313504323017950754004933810158142871753992830948146752750570229083379798736674074137024690145448215378344393387983078154832879862495028827931862847924424224290050460272914796862387633035229092598027950357267502347230369403687970041910780000254596529942040882655143207406235352562046210293045146837690789059426513215477900118921624862482755700847274384021350923158448858444471016444160665916500641376372528003534578142842134241967658478527471379957681339523689482559191605865318832964441812810482026904611984895966371896524466554294155188792506472676421155770777822019204007355282752837495058185453683528362378871905059749201235728331658259030889321940465864161334894006550347612421847636738842573738303886815746063017564483553561436321877024721470508132946279913840211772610173020683016003841852532230887684710240663087139155882587592122482885532886833486213000257905853648371926187675807245418404386014538905746801468352415362355618020490469320731216114775563310178515156254168147164424003513837517969325724736693661137232972778959101131138671288199539035480624257958741809627220978554676327057020276184618995118404104307460837491599376990101437558115764346761691207882025437693309597009900083634708835533617865376545045343837493287588731795881635471827135155876378744596187613694157727270634557224109773877388112492751925212490430441740478339635403280752622235725126030527518989310388103281702085159444710271957353851528769219721653752689455391609607662433452174351109977517461735199574044922327177041729786438979368159405420575420676816296491106273109820737124141986971490883492750978320314825230857374492212223789071641222446792499461831155312983307282773175645004032584995140604198956983603662433453006455940145007100917004924892439643385696661819764406701723811580718133143146048685872151513152065463543146868713911428264435863133384895393409001864167214321019924590860621436759385945013766946090714005084810253628870864783950952456376713570036455996138199212173645141646897164296991222219146094240408587966621096602681752038776404851681321421694884145914472474063347876033662011228237726430736667682970100195580642826614658761911172741118312435025437312012682131927424542098018185064307551111578728800662716470744164998357527760590875756515907326712147617264056180506325910074332922528426740737726294600261878108492344425119046374158477126597908683509290899373845843387023054657912257331935788130470856544413519901557856028768313362081061482922334713819642576994752910341262768299845665459030743799019881467175920498220713539390080425833180686573016294389131609503375828182185031768447709642481117470407596796167608897507260467355109959310887010156637725512410239842455112505477699860670990750463389401344683839629855214051443630920274764310423551604177163839490275886527599814719360071637321278010015526869158906944128812391580158285854285644458678368599182538412611835226275391308393290948788728782369186627219593329162305039346816523125921451255801465353829157098229221373737073790604440820415052521663491437634732187646762381812362845821048937472311190054567829400281872445958515499873356374516041009072724938578412286435309894521901864508670488736995684648904814067848217157338441069652049405635406033211367807694188984224313296287238010042499611954052174672542051617680271155120389840028010810611950072916832710999568125834391357218086146415985028230156023181303856135626163638203552912552246794662895827217998068278405117693879440100671829199914559898910846706429887409385475525570495259104727124690787870143907186309935732629872882005673574395492715977077367872375856533808996442207764363710836334587234920780399276273692849606228483607314742593793422220899485097935229426736035632246079504894701948542056491447568226711318156909641537330498942586396834377022451953469927689244481357466745987389243532200661229039001531495053599548888282699501676343385196638933064568596518868481620642328125845430422540432958198128063631123923529505545349200794869330144617919794857279731686196850014124632476230235968246399400381032868579420591627323318530808421184173625555395036401092237043656719103545120287027577159889169746297714471691098493700878865091167467537529435420817394882838319442965222242318472092993841290909484090872840279930518140594328551162102011362143244811562325699671441861379983283436163166954120076355144392733393753024113896163828706899617317561563563191372133726655206496200317367680792303301929294110113302075901127803771645209874030025954863585656354931706153300906789806572726006665745255172346698817990277831882681261923117015377105345128047464749622085720067232477919556704010153409672404743145300057143774782042193528276487429647658962399247282806026499657260111974879464762030033850763229977757257586967862963450212128696164976229091076104288988267598714929804001335920472455103769763772608428836402616901415664616111603695741654543457788485742726085962249372578154462146345717733566789476523318026091816517823631086729479597466666931867177748324911960128490942239838568601307779168432915134351412038347805968398785449731642310674507526361936900852328103534473249887270561336515213700104455681910993478029510821597273869616370686940825780832998223314070580923814514584886021507083345863725253409540482969073980694887846472811114105108275834398104167730051197013916769505575938087879723850229141981325399219853035786506222845608089742737301280155330971457745937452636096436756568514716706815287439458738373407071971605219532380053198352730557438966033015290644213612554625944555417252530050421833522536853984525085693714615049772510763651862135406704565295023424219507092513571922039633043029611140946463888944745260109327541840408344421000156325860715779908882693082476882703579489790124180353312317416653006469657930816746985561259020656597480449996222175355490880776711611264006491805899636251218892275127419494820462657685628731568344867349655811059720174160080022668343635520787888761209454038592267116789203794031235692369864396569304204830958608506899778729928787903906582170864064589608638055549263076708300706900457930599656614194676749117974259477304585239864667556901930032400812519133980926003713531912974361476898039783789280583347970896519029631849931190325602789356954699411133228487774909663144686682324620927587696692528421410278728570383702254037664622278935145616102176396957850937692978419097517655236588451768929178966584436342647824699750105088579202363851080936168857396264564616547239018899601404736925024554629507136797752909903900019504301528050289373757160496833597635704551130399080706819774211722772916309514289686918898194808747873093230802400987411024636443077464549553494559904872021105731310464949215801594336003816956386303565669577672301460253367706152772044408706095698125866956943669033064664638847835126066630151048633854878075358131771339208414907959251661735429190739911781126294545606087944697367988161756221439565316146361508872622231225130529535658308723054652013366566645165533656437262600638435390551888225529744682965775835468310299819218913768360899021846256351731060026155356226731085205202116473933005660742641901782826611796831447902906122767742753120169280277880833868852582445288275902607863319682723176995255081507483812728610364075016016159637226828637686131407514003132309231580574865759746836553134104001237336702258310476644886777773212223290643333426017955223874358284931602861904837422549727155557282889718587846706821869825220741224031458274529972152013446648522167326649747283866120059611232245858428093298947341121771523882886823106877475792577525544485867545266649697994717341181143231087990132801934815741843019000025737145869379982870934693476753905695607370394465748877291336506237592446784399946243581122848183793939203380935757927648758118007588135696101788318541252172007444111828509052884833311814247293954879691148551692896045541193142366479621963728313924213330862580261960859065996379350855949346104599948855699105213321394470548447908273599213893002949047509425630942528168947248089280023064487944807756382789302257177845169371645314110939453513235164270601377521322422747342935878257545752095108043687395605284386724833916736138295142404645947908715122874271005604448401912669626323788547585897655284422563403578562841507822441656195268565964665230335819412185572516920566242404706047017377250198127772872731563363514555110740853484159310430296588028338655411481230351897671695696209142583031492293760771225455875744215741817387009561004228474686330646122400822421101197458751404401843055168641661210264933059296709147206540529721840870396939193967370774136092233298418555989228239181722813717590097436118769066878533391177448613272382318968490163686764107530777877228749918580619960040552779170375638814762453905677012815042342305042247690932954034288351053873932519579162939369549785882864834814642790066978300418890080997778418065593678611555319013510838824158436323190892206012084624046798295227637051537799776335167092060502062987647379312291459112930678630078546836227624144624053148251324543722258115716381244818474662704412125838176652642880995835635993950140479732220019000483699874824846824128056086051499337348882835498774229494368625733835501350565410462911322937069082374466690772615600906773607386915934202649774969090658420416845973165797600349674470633030347012851386970024885489746806455762261910570021886573473010442284279274531740812291155191948006327679126900259018355748101963964731642223253082481896125839244123002946467159703078007969969777913673968618462649029366451843604809312666339983159353315959710011345178760372904555044389084744436753011797210255565567114958498662427344671918423580248657627671401165215800288512861008732308483342418654091368754776317395359350954832453001805459646933073141769464376926712284699157804528706870704702303479314043249357700400831754556759196746725271599658568773903118118564042797838505794678412023948692094996791323241153515280060579604612603542660383364807097276704021771031634449665473066078662720057790277327801571545040905537437966195862161865588040993697466664699212874724900899749883872052968079272644194115571022001220359119376542127295573961158672107122638457075414125298685322586083157355542346032092710933322626215043958755209275131764235671782328523894076894404611273453492314931339040216518648483745775427381989367409644414184831648309318023315559601641306034892702265207960377042632587973449889818783865382862802371492072406617801158313495860552340295777154004790289530329150097362641677049154099364292392190070456817768850177320562949398832092712076494270782607937893712664698201813331963371850993497785814775186649623410437257683082533563330850985083470793431528804542776288852903788121020591769827506798839152874527608061607973206449812842055875676361607712840669475035547628968873171609697155214083491462555326752872934437421653576367065018433800142438000819500018343110600640774993042720961107229067368396021936975871999586326878669625536791001264014393735188366151874949140246452471471279730076037458065226231520413305086807445730382120437665466608984144503853521009477508339937336307408904430943448743775525598322967577083473013999224961253207647229974282988851409622610943052613063791710068955462513188534910341550445258963570725016147651599252932326450341755429998399271969862600059546379699749721936296418299958686946240197619900976919149053841412343634477641803606230503782462872485791916476741157800415846809626356419021882502871193668811245271627232536403688603343087613251222696991701371146398706050998985993267377377943349596986615302328049482923175930465054622792164114533895687165128130326289640617329095799105828199604105812521371692762537044691169027006908643227574730821639105696240381946857676822402181017113546440598511714479251456025893204958703850675106293176679331581382026385908603830636086746565480231146108871586900538527824248507185272252379235840781185228895838165840953994386545003872220836171752493129994707769647438713871501918695392853516849936520306627532970850631875138588930675942341007564601476226559594556617266838726210890572695380357204440889228205340831735889024968098916525772628830869236531756941322011774763385110503481961276008554288891342367996134259331305354889430904656990681141927145619706991757432329552943304442275880156019057837415472362077218904137218474767458507985463081561049888533151632999442935397078590814643607839842983412593913156480013520036936684239454242867168239222709553143711741585648493515698058313377335043416837905567140401573046910203618177665086756493174021220406210442928833020628226231010081652676861184376579956749369136670522833729315849081310913569146655981261023669417676394627294631613877110115430770828464948126851506568993179380782974563576626093640559005769889373464243344769979757405805748231631017703853143142381154421400121405988377019106561025899384271703214542508418875735951837384048027061836087684709747401355800243449900079583677096300995316124944859432995555080588149487340969301496934933732727599973443050363276865972039176874391420455322469554347092513772694973379389249901945985079634314646929703966725397202735013277750339181506843653315606991488895880863998308181252562020878167150143145891647149512666571383111210208852619155925349448579973455968699582957173907520555839641284046930456392692581771023740179231210131295662388516022736027329728618823879199691641783464285083799813463919481183946749845552365313492687103898834780688113687969924247259613696086333200299666758658313268340365693028950160801210311910591832324884263426546237904117370021336294713147597496477721438753498342396391728918140572268274333302612418589021601410224476043465449727456967433774312630274742352253947067111244859408282579553565889990979283823926500027326628614937999630602864877571350771525798169054337591344558214147246700501544362108537209748900669149000035062518781427286049080727448859437278017441335717683368390370871208355325315323714554256242730694148001619094891325909525352899404729749726044495385697287187584383563522641084243045550375133791243726375114633981230215975661244706279169540529149669697083164402141513313334173497576466100190494776532240517485460379763239775714819391021376594393970257946335539841329072221966728076741842908761804698716260707899055409418662212054029222115067679114062315212567378402909195638800697551865055917625941924319530306334488103359933515409039829379093135190454003258188196445233222253113714282465963695249686408630597930705404706316436643278069523862236478781910212303183633839392936763311924906457095181209517951267657726241169200216247736115426749407639566664474884695929922665055260273885745825005467302399587359521133089615560915055682397513683328616638409807309077548240144165372905893126631221850934500528210026442993608953568671073836572356427415477034294037637024421237661121012527217849963707370340627683733719093961775829835007130081921033728117394744758541307600595068745965279210713884427765683573582960318385897344950802041487898296516273086882073036425655908562360503086812141080588602388148461564703590895870154613108146884282686624576081379023686689128091684015377485159127323980941753788292147235813834747574408636350242740082284064529262088515216503319084661004509305250981631797659447738616493481246913616206014931170574410725227784358928763397257432541940254859216994414385698573943767996508949780556207808906928635079789531228773818075494573754930101764745024419371135092082882386244266741631677255207100519914576041877016580476418149027460112846209764474664909350989795713310028515588093581413936612595961259566014276973365548842168400891310907639533449200023189259683458565296275220159195113222610876374176415958860670588010986690877742698833159963155093138365655955084930038859362329078738635786175892194716489704211039801053693736840378303632123281636841366575641778029641643893614132493227650907235315809277059363662510468718199554083736088129255596232869945245281899554407063204732360787543890749312384143151854815435751346752404678547575418115286718755600760515829859626904911269972255504351963622188466390425270803089285791524581259971354861984334216637177058572097925411844165248342996524897378167410816507330684505249352491279882220326348177931429139982781547465920281287353403412106018584184218986129802708857452112754155563333879450759906035061242560546771846146920853941385476353857213256348652510510296958626239639882963033873021169225056313195672160557030683423702242188503397962019473963622814121117251647798319966959011589306638196392803007791432640197210461095275921718753336563827149478099493187850463905083486546655375341077216101969309394505111248006341076276754143951014343342116518323583571049839073321589786961887026834040481724094792806528371651162057700946553855332810844027994343905643001752787108330031506087034394023884235738435527461882498359256954828370816197291032378628724743415811184886110487166960045676836250498278542823238067272541541140549490019719571210079805783447785067626183985460134935045179475530271991348359841282333668534293314535656545663161471536910512156271030696697818442129020051772001401217653572568667926744077357463202330237612665473154539252475359537095905049982268867286852193111128907819255560723990813230390999984948013966010067241605180034327066153377206705748395096941752772869728774365420110768248074965354002482702358184103302122817033072076424718652879599408864004567632499934216609930890083703919137279484963174132006179767881906693000691140166591801172359912919896477125890279395620365584877751008854770270247373566761961669483894872291607610625776057605141763807879215373187048580320024164994996880547042985669043448986810529222138635012929355196282977538463866112498680925538074921895959908221853940464891038891272263518920871376369697264186258841917021876695575909373299884347787505405002048415058750240638773941432987916599197584755051555239511309509864051705803513232995125004658918868006656929818911086777291693155228755322159287235682258975585639949264952981889865596874725749216631250011033294978240297830475709722632083566202514227688011058163395711381183526893116258322865760331566275997041018952871721621832637779152981535887422731842150028151973387511438903224195915501057930276803074526706254797524124331123868947874606070325188619042799446139167462958071920609962981011258985789313832248440137564676922692963815248610982977308901307702364368360941507635393139038145786288729921964589924919102965006868404022043822174257050519131527549579009513312021263304462846808350684360970282854009736724469869552051900297558152695623631583716192862814591773436038864934795199261201740806330311956478948394851780069377532566122897358019344201640665156525129673434524824854409609374238060272776805123444192822630500280174560511662359457576741743511094973088083083758872853333822147143004564724093205381039760382993436663987811636783996937523939311602348074860536786517519740455184023811905238153554621200414728158683339110731309845514239238626120876147410049492860871510860141936272971517368536293978578636703534641200469607066220411966171210617246792652969434602818385805197836366379415558713349282273657224704417947966275883623589246891819398159643340161566347636873200891449286260980931990646039907855044268074310047337847488594415796382117884567023784908927214630973041930496002716889072855740922285821793124337195098916508231559400592241454852475494634891822963419074846639578559555687584893678783564479210470312013137066006039142560278819901986793357549159530113670962830793021404113558055139298295859732081175987653514164594313198158633016212583276893731681338673960788071607873032117026137743243193941823716354734242896451882202160872598661393198198710610655921748864974321693505281395585435762163637665711071969148002310528537857530769666524855853191211402921327296992548291263905454674621345652223596287101303735351314141034314790419881548805226342708608639081951775042228749956709704532512439328994379522568390105826425256005041042405548550930459082298215312562240064172899308297909414034837823723544436504174932272174320175438050967666599278648609555880864632365777438426062532484575039859918591725735342793621296149108045375788867904412614716739134762095579127457712953912424965808862466930880590267982781730710161664865943289260546030439880755352768801904964526143455244763877222815410384641407249709522265888443902997033843767917167144687734945253114197956602464736119948393735951025494942027340072796224070430301594572145668821947647150706491046132099160809961266187825799136659760776517319055567741974926157947217677825520983247973136491955141443848419127937109202760713931319655092615548565756407170397911534053876409007772556716946084359643534950827502746098396180641733753363920667745551354756720677612276346487052474585227585638407842190292247669429842009793210298545624254071642423929219896272241927311462368346911571562152493475290846303157348126876000051689832890526198525783357295956280455934256091264809183730695571126212707503854432692055059728438786791526589308952816471153951008875258484828367327544446783936091642325069555586745964617179896146058503827043701510241255251937308233767167785464574490583715997751290717304975863476657582900862045699637818710572080179627315791824094546768071341393438851887449473132099706661470013072805365603711118759585421678663530735604515632996113499864425045963041327365150714409197309829937396400155991721683352412660997270088582388060094271658076176028671177271390510271759965783944038404779240009632376873748953447792791569562455529469094209748473617057282525826194319783476377627624387947941301744250747752231051736050074277386142876522225153402519614896654249059573232036194349494839075791214339370393031035523058239076687904223727605206725400831975615711319529754618882537157569540511080278920121281629674217377292907725595762045786430667176300502611345085377323844162782888503267794258815066032314032446500241080579241480971149749125207946473305952008170630709610052226853707401291437538074778503698069173625568697431324584980118998529134879073414591468528746268533187157013627033092360398290520008153929306593081150592833993105433083175605110243615683446178477261884244345733428715190719562949804879568636441732966758310328403002089306266684511163321353564788880998023461964585621581136468255694264886524555682215822257819377047051833001686605927102977401810576922487253093893894978806188199276309364912934034513815683522555275323230583436255628808405205941351397429707358317948599193062515007164007472321593017060940717014605800907000629996758758085441137006437132551852629547818129173524087932736659192771224243578228331083189035766715254192530856286477550348058718203788933160824207890368737231663412010483965319696762746563591568541114485135905762131023896172901590817923247294183577444003283625148168576515287390136641239707916701678430597957757000190140154330163596624895370386230036720619986468326253409551359524894815894283758867005359740881981530827746837769362760016216789051145182355179204252102604011678379060883925874329074660470505027511431426915468683353295316375150692963943092758771562102491142901449809718112932371014598625919328228594206628735542387174734797544988199660461738369535067416353270733216475131387344751576161176761762817406767339561718657072794335345230444550472649262529406861110347870295598822673194969086120513698765752514206090439591738755755029569446635242795710666572118348572184769163326732932496624765693486626602446416094239885271616760733536218894997833901003963638345294415770795105609046178038841282695375074418582950606105001954210740194263339119113660181153761023020515012085338008257594452862556935343438335017976614373510010499557597381880532750030718385379773684725156834510438485188506268369042998190426812460339169676767926804479786678972264959937817608235377449093652176121783560921987364271943412123792049597261401449541408704406160780705222985075963094948662328029595590316016485804713430995807839992042306245340764338114037716416693684983182390376634567168297547811568473434068904068177008145012335096891948394752143722669821727531133861647267838433722610717775298795924992064871971961949762717325241728697274663262057401606054029773690184180851432913854407799010791351865511454369115264896991322220260057768127583282965529285608186790666304127072295752753430673372329733321630480883482334810356363497673116478037541320625927276824793444608747416586065038639585384773178310182145167149319513592157928999785886267373765656570149257382139163348733736592379841554805098938130910790867965178420394194763361891041005116739886858119246168502289503642676539756847630523129195946302910324439963999236399884919400119267595186224181672294388760232864409512480839687888254303132618776956256843845552275190241908168352507110841455858078004117483252130214526818072152964195818567033239578826615524356806806538874933689820005333256715921151181367014665843075399792135949042579112230501634861326415460170502690692400450641991669542087373417214754184156698314943597510727209956125539983715398430553101419112131810427676562896262993381027312224652129183230471658815135284692580839090974562717061870162631149438573479178985808229413295300881928591980955563894502084157681103459590697609769926275760067464850247205745787765594458814735376900935849172011009642120188393433145061713505062115019939907612957072818573630273517862919765678252599516192995140074570377586835631997266489495579053515602212880410103370252755359994912405684447122891798749656220496756317112471414465782391261069917913793365148154401320872307787038284226329642615042739519897682728600821005074440127584293278582025880065903780929951429975455770949324820170092722788551353319695304645572656106256376906054377160507063910421821413315358118489104503442969431874669501543490199271949604135663947411388458429414973914135709975999579311944503710492915652498928746074657549364897226697759709100560765085341846306912008569185568374676795007040432774122520816649493126371246915894458123302341086270158728689343369182945106193856148924425411320056460944432037359608420651700774796851631482795538247862523026313406678356764236678998813618361944354479774477025749890716759275760614206704937055641523298211710464409320386964760158285414309175208598212788172167283124059266591840136774880220718877622997978901262268808854488437323311729375560270906255522400535630266040985379337732052582796876790423118798337589566057124883800423332907135643587572255946939729115555489065530391722982805145567478909405116959895953668917783359115352856760600976425938491743893173384315447234609527402862933032551402959937483716009932324999716978152717616535274204559446019953255844199073131598687649026860430163374058574610209246933949775840847124212586968473655866569800216226256901713446170959505877174488843390175284763305052583841443735094157334885090432767807537338820079183187748998115728539024823324367946341538852482734855492737734459149543655558775438758338391485964489574384613973404672152105183826373637693834251765983438682967251059545573684718693433364050468765764364962908994079442599852689782334591654864917035659303993816928627785512008151236707706997206176567646204525259747806449216022863962095665097515288467310460235207378652853557294357677645955857984997038288421613323923542231288826433364307952749744137994246314017758895441634737910993191992834894330164798697467883997286502670544540860050490518665855513768037692082144915298007675995191131295055478909862695475540569176127099748095579683608360832045463715689895346854784080399609516191820218812507286588005288263486345274185011958780079871715296107577671917433983836256111240014256700844056614294656519497962517289880567222778500111309375099874968616341475291726545086970695587106017343187247602114004134385433300089854070054700807266424257362850769886983012135191964651537661399119125266903036253319435618652191012655466265838893580079767329170090523022711112300962766424711943797040725921231262386635555355387005377425440560832092386212125890923124474151349354910425879690696309363633795713746081188364586696946517839016066870299766697704624386614459162974180476306186457233427546116618457301559314748104347399694911110284898251697001955183994615374021884177905135794862323044833201731888740199502074813255135877475482989162848154760883758238185493048822075513071377296689023963952571553114017040914147192619083716548929951268112697825858512899767461334911802734869929495767884987737296369562286166987226802140454297245475734259003816089264223119722995975380700647536756548043267393950031866162549393910967538483528504967756202972840016183681896944428504083709579572564548685974640423634050601524407990942055140182445414744973155811702259237483550590860689241811463760744113970726935304789432691224827104539007723786734122920952679642128778127400473597120896210972531777329855988718181522280580977172772353994776421139391270881307929309791168399202385584896122250871960276286299933315421500803290022485670548116197469325406321126574467027149626315805302783719217072334461732946817756462435317397294462146233951771349216686008893421582210259964796518241569214192407193010369147933933653712403520167681015136960465939732826266640446701237421131781949435603252919302809876954715191986474993346179079048783523371249183563465448778383151665761646694099822015888844859279577031451284334279465980143424206446196915665778904635984899002229161650168179109929065542264268613222088250535887293206188653530330816137630954786774908063420826422894023159831658901143615002018036463923563373184263406596778427092799616435976522975358097007137111865581041316110492964514800148314232681374015608125800074451824436372963167006094762787702825839732011901096660777536881672805897444152558574526174155162520539279075582364759486794574019656270989283482061846823870892135544999435311241721084214108993260825648899079953905100131970262498930579893749085982523893883549922842323626110659287521003339010569510255445798626131986017772480637905640518412621823649864433781358309720556365351238362365913208795255573223857640050888383002452287577115925461105780719363678911169144774579904680693240862874855048846884222251119917274942091786387528479410793547508960559410141864118147077589275445300136326949379660230048101528802887532564150736820110199836338575300237262568120867784961308600118614762579771433146441657988577251326240139305790327114655421887170785157103908501176252851376459008317024219234686272135450759359357125359305975831704863363708730599780400290362482426585223917651296993336831355502027196670921012736304200357046317652579974720821052000792460212961122802011272057476129418125216146640891136577621254301071335988940360248156329444603183469112352681633329030005621782482697975987995762686258104502548242589700663221180621168753504786018363433416289295351382241697112739958663505836416283040100426502277854356020972432741415741461920240685455680556562773819031233190490410368163524969413747473519836389500487963359136328934475727548692025244497715787655544788383896934273788141165279313828948197370785611998485028519432815549419003396749178384549910220510031353189347965151802759461721544188096344830804420940157729697354427664411213523468566985391305756500047287088538989766241567089179549789963429856268404153987051924643368167748283859726265291805305758585593440998728065213686695685605369023459161093057109259679485116733918769916977367775071706867992046610670349757868912481468166058365728257647958941756446350771715673078826819807202479747845671464119355488383234622757979815356261632633147387005528724207016519470613338692974121295830109803979830542407521730388351933009533303483726719220379533251642026577705776162514609645577569579996164837581573638557245191220628832017241414365696489574078015796635247664061132052931870487491131882576851142324733449313926519872728812614813036160389910389422624479769999810435920581738644054277765590156558553703349869933506946420684734518828013258971683935553927539428583633524398838037752712075110800765387443061546600149300991906794173250389463430419205468019166154101879616167434315122661490695844630570460340514904778399265252141140591993262275301685009056761023460502402606528887158929295257124759963194016035103653906868714197731014032368072218925670236608798114548999343095134826820391638498477196941159671747529753040669630522092581590672149672303885124021880109409062303833178309336771340379648450891902207501864852358623398111938815007580200381033059100798953451026649653242828155055041434791897449463229340597660506533394425146516979028881347876296086315343386637027735762954881671323729443291800380518850990321665363558351884944972153983105490542731470955357610138180037555957508978297992173892255938448110081247541127772853530471566701753795847945454813045907411645116902843011586247974159586814887808629905245862647512631398885759093740210444127146701221594936085241046163794866049526132150839390290109494041125393036247949112430225952910273955687472305630824182241215417250968115235472452704078407077196646653576223458442514149773278793658530335861830141480379443914588295972440466198071477455118668112388857572073622939959273462497488859692960930318203382201945720910312946619012921650556654673386549570320057903674206705772169515702539490761899189044829268673644166079548549452385618204954945080941682145315182012326437696261409944240312297659501312829727144537034463743243489930030909731860179557892782974596840294526364396612699791138304265423577629664213407014816992475228518003551233049340077053251755461533561890561597738902049779721807363981563188716181451422821727827789634280040190704263575881666481505668305087541529467837612729179548525975336988607116790006654768470044104560715329351063807475459161143023120264068932067963790499622438826313919141331362709819831821114525670909564453971545018422844630968697764721261085857960830042657853432845306603449076302635346435356127649368615913999724458750522634296164254834643603778360608285712872936336469267259127049599127267671544864582873990997065093261432922770548543986039613078567143865516071308501543342049510301975464245543968009836576427854466925155185220601136560272320708295132031258837244039731929038540705292213257365296388730933525062646066790839494856881229711800264764850925359580307934764393077479175381160378541878533861413899507163034778093030417319346866218114785629451322191547087986884573676743855908716649286065137349284838971144899659443866992825094338107034510257785039500925160312965026700747904174492135523669830089267103764172347032957623667187050255198402623625601238709525119521192735841853496877870794973312938862673791388003705438701944067586370082772335191244741734420655897699172043376012276309744369413950299726153504249494369909246947102716489923687254401035908278944065796322211964991600371364696504435874583770182211777305523056757426113014026666653962681502883076655589562515724686351851045323426074661593895293053100611143417029770562223464767295557362948605364567437414667895983995489247117329779135303976383321648824615458210750557756354629136389290211365533835216068369378696862024353181248073014511488220031361882226866147759462478471700928020975525184313126859209979499987484480387380150260742121821867083815475463658147344918570968762013752754815921169479970851869922665243178747656357207434973234689174305254907305845338995577334579256354769235877770563194096525678263783035631221678913819599980682697833596443022335201797345092408784261398360379477242742280864937231493813130979405114834025129352213061535684364212143327508043283504091126452013413444017174212298173485950375428831665342754195203652219232476418738069870060959669208662806048678664662588585884941257198679720732670536042992587100980034471120669510066885890883520586571247493012999497250535153131958236391567884209783103161361752841919911881511172753378211325332699185130523623969039947330904284219135155522504821073170309522771912215336896221399796595539186181423436044221493574791549760584350811628543705552287958726131829116067314625689593259018402216824618847145378898236783994709048555668475960683839719471840852366049518505614431114024343910325281956350969777182941683883443257262250622466860252651064258730479016975524628810130032370565089239363525326037926883675259953319513161967534234500076519834288300109052949723856412812768144699373686069837506406897998275178321920166229654709794098786307454988871794416370752191238333600703192997647025553778449764396456919005724319814504417448909325375193929309037822307997184127910476047771702518681377410163922171974726347262607771104889487017215153825654430004648489292385564795477038819478766291742295987893618806511144564707068765220131040168164278332326076131759256699386781327062649572732131974439768546210726602561049837957389083885974858500962322702760676168074438172588838896196158315147193816486266897374308492589009058646833370143090878951304487853994259750605717435140080420803787036966075912852798630664129279569218402042067095819392299335346156570755684837377632047802231407700257465873199128239915840444081989136559203361643056414839713188180161153719068599848657322741434172553924494763846477436077515627217793991155130573101698503129447490949833170135948964465932278769650252287861871735104443477120710536862616238473791352889001249800323203594221500814742522271047765790028209924487504057801884698540730593743541642440432417843082603459996651891742413697188076428995386702805667980538365506209299576690042339354879036569171568957882634691698227695800522084598143297768529253213618019113675191561534996297228685204733119429828663625347681854967932741400978851738894879224954558191035324134331374288107573356700571598064658997514448648425473668112898876431990111206377687339511152702555176963543353390568275740743066438540846688072656265945744346084567941738178131045518527105799356015409934251971941117601323448266022653860277084984208703773255140939035397104237697825592298336053096189237703705271687230380100512146111153890044220500888324754639263738724153803501200004161058472409407050113001412510690546148439548765793547889600066138017346334840711970329346801824627788782535686996320631149584986446521087231337511861002986090369149549265995976870376569677309643559379720226325488410961064856145529261077701865342392593153461132977480352464054615825378800976235797391296373463446796656187685547597187280295293128897418750382818634184552007824202644701662071635861953878580134040575042779392425398034858437184561356381800505621333802835550267698538588489978094966338307714564571756577763190632506343115743758193660152069285660924385577271764295158329300097316017672956263989217202930476406531664717753483776951900131538449332732922794579016819621737570607897155541422453485203806927014338522541934371877075954011424908661232262724297296415547417369637805929374295605223404895089862016225666918340424008160563980786393957707324323693553714851924906394204557310862127960347723741475476649496329367594977137468124447065780756275063775688213535884788609687962997664924188691039818914095927310893752986006779077259078516403600906321343754664776624510054757561118119252323878301829977657121767389808467706374494077076931915878471792109985243630233672369078422207361515812078675383895136067939405253086015850223690257791797295105482584051016375614632869363671604071920712755893772251289854336481864759469128550736805957012348049344793483489695316618026760267473045450485942286011652623630814844200235707510960882209599416224777680341430234149524361860493750785448044851893610589288764831819047686850495712679698604443587604101413501054666926215612584910893001837886668581289461285880381836970867220017506194832789276930233330438866914913022274344374818583922151836821792953187809073538474936567151748757409357550175277544236505357182588205028535686268029054843805479056827912039436670420692462412460529811329682388485997626882281112373740947153113817064266585938586565741100220858311867066561129475412422156034528351015515012478048840017716233860748162181472091688656517092650545869062425626712144436556997932311786023323583768199351533213016309804568182136489577965423075548013695001090029737101911250876808331466670351735946559093026051112634761767882610283402801755692119449211192335611054273150050436253598577991666689741791197488526105699986953046678987478060321873681839063961492551796962960019716484960317540597025122768768604052094959291968836742241205426399237702562686893227430411751451039698266734979716186031922664156913818631251652383824949975921105326647716301915077552602439649177193672536693749593522736436356724714870807785919214312883575214884618321580363695448299165556779066323942830614633550295980776067706295531667991454362934343226928625023325780239816919460198667085597120058525296067535545443078292879856492815735563626499441663291724504487945117228875030999097642654020291633067689431674726307322471574821693324203918278694731056714914841798818481735146830226850943733510386303569212114811500643217106764906854758179333943356525080451272795756296556184987869501926812155055474493407788437445325277403155167707491783189854662442708141503420689982422793303184339249965053890721787293861770322981141930396718264898755629536255510512039670841324881924901645799935200722754682327550213341074475948766619877532355367532064602575014114366253919229463197972336378558926496158759910817210436575789089599010668637665735855683046660449348374281689417661659829752486238686243919741198528494819343504220379490873479103649370698005812005506897230707993353748422219130774518303021076284468821824460931148740100456155834744801783419402746094754881428633980351907817551680176295055486580639705697860986816316703762049480319030366223037933886754208526173904660237740755232264929694782718757080550390907694197276172528472315856811570537690108623403194208718145109533629599663099855627298483289857570619875822187456246710432143927096769952493396485837020343998696890804120787256418650735639353271865949921697165519460316836172725566498271036022539639315419799756224570937909957689109700626493297974032547645803382035252961338770357579160643309017370096841129790655330779795967123109551247149793830607330097325488288897823284863976227224634348617486894321172123819461728906361032809082758712213741564848574673437978578415219761196178557568747425710200203866429149501385663177745616171984985821300489140676739572726386041973092350097514654174263390731606965681896572592721192880365555307778599192099024204117589024390297430107256377798467191652806483039897419578046536830630970440703880262386556341090700884034968661579863853931778640066787246118639903819152400527300609046861967993491498368180220135175730724926573199270291118645732494199851339027667334814825689700766966853159030763771744284109169444722752168575937642755147708577051579674858056043910121010612417861338775642302226777703817372507108245975506261393906062851231736787098438343809677525122311423437256545368339740843459740674775334812402837244284450599312680575864702733050458014834568656070051733509184450143371937442503037725524362958155252835976613922717972184111869563857175582637455881603851687541223422214251754540661161093081599345033372429448504149164970147866304129343483417900431376093151675325985652477834178349404493133276439959974078660900333739585641933400679941161640859305083636024434256179936067435640603983073274067066009073989503431373223138243586436728127311582690620512496847427088431187569771555467263571048703090138032633370109349838297605058445036893239003839627405361405323871892294692394038871469436035713638905473487352711609142934957144518883645452657950794752868877312447996385083098450116259207080986602761648646663942296890506912081109098308615413478600903701834443048092222840639833318050871655690213674691640083714332524658945911167438103791178706709266724196767472762081740242976013380200915946627867317847082145209416103753276827813337884269538789791368160338868467643072135713637546320656830464709225933202197959126406126517058632034862745305639984318202658639084339068651533435449631375951389248202449537054616899174941089474398914314193082841288712794986438991964507848276580121581997755536803946298887204016162782507683880830320476501993296302982193780256584612354525096244119527379801188143835123048656982444753937153600106395686021603795951322749264609549455597993157612533051474497372646847914996111224258649572332019655929493407069824582629175254967374899507123963577217360022765022063554003679706824050230580260699029998951426534620241369431372545466064657187783482294025110581507597006187449827893936080024822553557863488006653163819537729172529339169894726483653239092532466691070256421338303702455238263691378403692461408672573527731792426068304009944008441838856101650346242617293928701735283715548130264380449248301984581958468274518909526794848658706820307507549268450232046444692181439566018776096959666648562329087957091934709629389239512568737922406448061866317404978342714799506282274489187608966074647407969745596485896817771650772511957684969572162222122877572714738022824437843349703445263095324673221904558289176248540312940172755092091707543940148194892356215942020004159401280427072754547449499338362712103770768758612474036405335982048296060336143707161143110025695049648113010017386794621610002388229002743668110873323397632137663037827314673806728554360658980498504411593321856896602185157357946610906114153845392949394317477783206040069618094706883940081035638371117086269744413293296320819091503929743943654403599462789822719127737278385052661597256992424007099665723522398120836740597260730580453297273191921613686187027591689813606947190569333628788477304666826893740816386912817745709450401594076768532434612825332552685485945721869844444981787122462042261138833806352314236472705558857284218327295489350680103140288847791054995095328223599350441051764142330532786803622256715711298511661636715588830336299284488393638226587352990120930984028851376724551122659441027566146522461666308643985725631563711926833660557792338301805360268947012568115047858829255598430575094279594095286098715532000096895201450849372229758871886476366149806471614749209302987880367815060775802976763213991551888553661193115454135461935785987807144797686867153021874625815492984946223091418504994262273654344646454446285824171583356259608085529179486416207104793767951316459323017950344283733243247440571416984977673482618580341036909281385331794751448925994528022095930243844166439834540193554074727529188189622711473604243319195191203849509406500605340490918148906878026352481787528915119310547337901901282369595125196638166860506048042131290703311718593879121183626280031159558711312475639425507240780895169504520930117720348408760659188557579873871027895169540532748067570388515253379543421392121130996465883327358980051379770614682195216872183315204078208891633184110107223228008460023600822987874269907939770651663987318714114386029699630731231550590346489856601139266474346483144025155185111212903389023571007988882386685602756545869571183738016301556348887725081495980518526978197839950480991237198489274660673704528346396065399091380365204354106633038184604842325256641737617075860171806108718268118766586710350254321782559388725939692807858121533924096290848401553000650153122630720820914630902162559269689498012922263661728635894048974881655458151866562747492544520225351679442968475735458474991053448751455819197593628643449625884975223103919176548846910556937811915922334277750390071440374348037497927298365709571364101411434915883731827768543942851177388965081098298248893315251373373540347893377420410944044902848293936460692598074305803484876326759334874790489136404942080112309892682274581963723416011775924104418358248352491312851102537084187781561292962165350681791570233007947100569442253899646772387662144590439018335262830636151607404244435960252991637339781477576279519687193496047940043111398893283079962839403878553064176027606481648555498221853324675223198676684263010448620949562956719372871418792860765103854223929123549538301383896465515367434220654035503391627932109707921432237417947730214039748806037252779183331809573403696659864207222930535522779735413766612039746619225065853534745278814754041098232878819961126275898724108679499119460743638422469730308203418483174098081403597706881794366507034920364662961286638896712218475396614958231193532633432112139855014725728235546574921384976870646475852425857533800734421372551059461151409142929942390676127230123764451408893870014185325927030279622919318810793488713565000685835637373650910151666067988736715198680263948218461223742966652827524476062066003875989638065683298329733081871009837958221322437012602130517550955740030539911866087708675664060847493854758661574397286632153189636922724119894478896775413690674058780313397412155817451532785801098962249220957806732695124334524970751539766134918412992779828478551313300702126952132076545528052825132612040040483021242117777294906703169106863074586954174241446972407938284288324891298342802960189232764627503663616319933253161585244947128631601073899962912136773633400536703256417199400100590327654139631186165987631981123626165804892515005797246886939525786184995012032963059043156071052950508294006412239557513978848047803256117039479993399768399969149584141533009264359503782106862862529748895572988431911166234024003963194239001353527915359744402952841516814404371289052640558955331790785450558576266471389389462878134029274500354551237086949724136784853608486092151990674353163022955335192950078015294386683591770682945790342455460257864980160004015113871208698705922458086782373807888051582290113658676299451416362164069535521275633963866432304355264359256433516724817310908883582293856653310111421963392473431222973816310682058923624093305071256452880804888395716064002562996912789549637838757642598138457994349818474029025825968040380776720495159138240884426005767607463851609985295031510919137210069398096799748035759106519045429724866318302477307371667300080505131458148217109858103643584667005798079205752541520999503762360549016308863725542970929195403958099333498310236078698033845627973364453181349562297296494573286625275007302315201852027845197128851514224148627709680878753918773209284986189283802540900792615139140182560417728855143456377390895242617853602061142222450086613808734785340080434333090294954315171767401130204353782427685091550808637934767450228120626821110662006934036557218880984419613526844257934233995964289447790327029830519752710671479907771028473408604292792869510394737709151742182400146231408925322094282395885542597334639659712182696284329677272213144935751088508853554463435789417261638263627798994058942136544552001853689773507514982994482061271913274313876278271108324662863914717824905593306481648176438561172944387546119059898846825491033662618093602620300927036653298522963338767055946859121810678486387196096274481876181339980700645304399176115993024735257702823855771118892127149237499453406395330155412653509116966624416825384365748681096343953814333486461997240245298256830202754757044986017216029070790258991018522062181230354025427225776881641393650226060334723316307329185082061500217497084426292810115300934437316819008088812981275792377910560347200263050805635788335094749105562832640299525237041389038810467653633573708682800842757074408989734541434969277178575035088318477778456291246929022320438758868033280730942795038362081759608208752608064199878504248070879960283823303813018499159898868294988784302388594454908254257409814022084410443669797107298834846863978881329991173106482612150464629658561216859721636807930211130880387656987212621955933271670636884666774078796477100681624346151179690229363542388958053310105683764941985889110861910238366758938597242102145165355579109713948424382126172191592311225196701076980163929567838801235189812751420812375721959220393495632453014372327524812285586370894381200134901517765961104339542845108072714360658042331372584143071969997148140272389550303944129513624777133462800880253231681220866617248293835862633006621399237342387305599852508092644267200633995184521449868128440902342801259693476030732969277077488675193658205032826310093400451635244013725767941965914198874670749075500811391164458225351807162666309795333582297992470020061143131804177241690795500830732618160372274260409434045109395137449167876693091880108409691678509203900350111268105663002742668529447391283731339599539267713246790758506206958946939005066067014866349144906596656543874783667653416938478549100850696796584171777485753218963595555123910850574869791632457102107410738501192496302977539220454922699115092000793736014441535014915180071582769822338609561711035615046170878290647258571066386367033985245259389611054571126270383712996340326284948400506624368065652689019596666273496439211961921213642598171397016535160382029356344600907783686358146480330502510143017380811827361840708123634974297761848652405431675503467971641378445313819248768721580309653090990922139308661656125521597131787999722653154465376022149575718672977221779429664040907160322706271563854068789161281157551382326243265111454405911880152144488507113870099477149126783115438687369219256450291932061691002842645621772537528368546439439396651508712136823050979171755241863815425626251749487720844193638990158789776661249207856859736990687367793765876983085233947757105391990450900006445196464495236909871493180241798739715748191990799175450524217340979800333742054098902681800951022974639275511053890262040101891266276607127769592826400502796003591820859995637595805995572925096759471549726542940754218091575282419867708870820197004165989331409963423256883103753742046665254616724108147785088175709994909516057326812346090864571817029947040867039339147802580461564471318268877274466947674535396411150534245894000611903091967104346919126996573611557121287215547916881484069624080445721570112849860119044186329568584823473196816078071997094105748076280270461564164525104311020536267898022301268821340533712193945878172451501700406014553276679914275841786916313683880134556035509832389352972853165524491255890547693362549086617620329697417050744379611623744135481124772123176964556573182608384520207084900869804379618028179319827156821613783407540163186506958746691296773113901595771447727490132785370332484264246644025699051549924741413260729072361377049176452724627826708638849037269460371589594956614884171921925372738209753093663920411569440837911254954359312683417892062175099184046227736162448633926402277614661001668715801803845916512270478609394250381435756253647767001698051724996092802885909560080241631917430770964968380941827906483780047942290402389414585280380558640531667223636791996689885131813530146720811385212885783757435113089045391024502398612571364828742432378234461695451182489583500604444978035875171651034585751018183722445139217271966337401359406385416296803749590533851378685411788511623556944283688348242589169597366010099304900903406902124176658165668376153134955012411528663334501666878731521022491219895049811213656013389304083901534187883098561474544296441308697971956784367210681012016165350863524481616953316578792396401519026109381687093957613680683083247349160149962817808702809889474615252853426755163003998419948257586807597582992807275998104739756710483603454829959722879497592991524492955920207091791992035034898254490434372084278338657600735584265194456350607258678635533984170797792694362930826908385850346583954545480988610699522498967369616996381176958795326882299203346354779778840274591656609202632630878738075165976191339695382175213250807072719790815890637221683264037702009958046241694116009216103978140485593347433204725376844122945643692488561923684016196657290845236610104116631711482763879966488489058942693276589850878536166329974153331410431581595196851721936372706126122381332802465028187043037075819499247856661569740729610358881525761116183375319896209733224830041653935417485229164060759292372956080227975504218912297168305662644753525847993709050148003590800069022700675133433431671100734931802559474140102550350115799807176472729606637252352479619659331516889210039122955388838967757571322027348564903130360468815541829844186777474690874086348988891452598822128321331150093034176818484058485598246564820505631065202428665862387333805215244574730472991837891282867638998693842410317075888086176741662725338679834867321124934763494197435707853538200014831356870629302081521929011590210858847357846875724393901593556231585820433867044115538700820855469405093426568001271491623346870459094087964238247846610187445823548643190392230214837546106557272915081278928135493339084216492464416509724275180421198708003376295828200758931900952009346352657526071576400671303053440128830688651653622168757607566793914398118166409834015909769367542218526717408460661430436267228621926883644668603666200627754648860406726952581126338257573388985130186047341030079094924771149420813056561645633451565324602427931499913000923924075557431809267238104583511639437663468821008471471348534945722093665436516836454651848520941585490072581362230254298421116503316194501536841082689984911481464142123687039669661176258586927098311772739586266710899683906217330958562902670167955638206109899254927690445434476728835172976290591311965530182939365650710298861485517477608375751368543809699573331460785461214346116232254253217289001346893544295148036172759543954500737753560526516772502252183193052384736514341663560409399454320110290098374730524351838944145324479286819261310754338530228272942752067457213765993820478628115624411832008946286981268261605834459278794578283314965115261517391197653198505011619644468712207788637943284243803385021807194851041721685438646370331912271297194292798632367298676946219146320480310336822880062744498736734485577521193438450807949678421571275961707378973814235357247310462309131183656328703100094238928840821283843509102515765857448672304739129364499610189931679962466458349798368078764348955576240048344713170756750883641316778259081370664829085521047850322801873270745908405669196246551042793490161388323056858655646361817571493784701660987465313339095365907199414415579777092120309854019431199849776391570033978225829441949582389119961420620514181001701082256628139957410340939302501225073491748110975704238952008942122248639252571732549674923091800154066723157095980357139020222555423961477678661759147357566655275300742550479631790010726225414049658870227736064638358123758043472206662824446015153554817689170631687560356925183723099701065652837717852611630110937235336260711391073098728951118497355789318729317546754754601016201287994421560348200681495573978231543616056400171400564439028488680582893160734273523189823839262250939722020319474646465295455172061131378012373920356030529627114913647751273491083215341161314860442141732910989455655321399555545201828907025611291466602948031865476961865582979524653457281473274820094047285187109917245167758357509034753960910578958730019530740901665221645688843290915825873918707731068632651790060838337151977401345259307403728597425758255217097829426685471447860279248610366164257981723911861553090497315352747806853051123683085146223621963802061284328169583064823206119616845287899758870183512659880226942513435332163935157347600342337950478045019885427626661073196443557271336740599944493381974136774739774909162334530270018671954286399946060507395588734530608603264328947388820028516515358351612906048506327502372510755206018289906771771657078562030688555622628612675543981253269383967872008903174172231697138518039658347663705590102645190148870672588766449166913590244594360068582036690956966632093828050800208046526652149452398645685840287468099323458507626823088725342661207674739460882688626887249041024239612783581617892004982960363025054507658518450587225447156574682205077294228575236890033940717853389682848238042842244731535146279678118062231733934145079548390627416451272728125994658372063490839024592792145918412995934822370086434083082745433119860834742382617964577016297018382133362125387370004539660597461100121095220920533480724620801301921341352001593167545218696926923612071776179481253651652120449967582637870749901397507218304429162855040442989241062322297414296816853788283172146126229589653833272977849891486833879638670546286516108027894868391503876800994215860309010149877142802215669784596091260549350011945220109087721674496193663836900709369165893997176296335072912618561108812822943095721462866321318784545162287285140595133735695463613766926560840542537518532083724249806624933272308060799843116984647319105605672223486093220459525583069826583013425195444918009057076229094462705843742515888004002339979975290289669033796378776573157870035617291279869228257580115314748597130938664862066795824021632777154251667148607712962038116392167207966950334679032602065762290604033908990336020762261382607925893549851490329112767075651264848294055493842123602887710153957964750025723127986652793021951661144878901500262741330970725913164593234813988998176146136462484106337984418021697577308051528505099593612016501947552411612492319744201427338736135912617070028212722906746241143084709270543536956217665632959709577674376874653181971988871460856396082044359457385358650472559741628695602013834056465680248694481477422200367969499692757257086943246766967072084762507555364234816514862102177519853772343067852095066222779572503187248478393530360738858038564109321243012653447006056268505578642088372375038990012350904247405286952868125045375534591970982357282939984932262575848682042389838238936721466785351815053564303034190078965130524766692950763799807605512035780581352507651407055824664594647130216365559087230368363950332180218451228886211809869200918252472556579087699221144114537144061603778611232510199122263201184787140064094053982255949022035065835754348125640781068036991906232597178139845716294576411364881067450718023210355531922477777880510587664320643607317811285606662052564269823791871793212828067924655819236265197440093917259313085169025263707786400014869449633065031306719859846092383182043212121692321432044813705821109452608108066469073135721594327012268138622466776166126000198527127115226364340790550803625259741463014533394439779555352106798783891326636953704490517558801966940635472587538597934591579981358552432151360698991940456633402987160439364489799935096560635715900117090286592176668384300037605466230130662111791308357084354367308939749444328406612818533262430275558736486608844353851930409608642769375537453380229860634701613163855343560361181309994614714227109418795899788307927703804017513639068328911011520232425598645650608880039182837931858420969248706182889423419686932887070192701289874130020317990297410617907468199211988834585288599610396609861842306813199156124105600955955729783826544794759998988399376209381125402401526625299683969627267803380137224827187268792129081010905208597083979580714488673146324259054833453860449689566315031566648587622365090371365141280369461059447612786299000667514882711961778967676062454615721737144032691327175850430365949247758342021216021797650150494027665231770055194751902970099626076261222201030200499899105579127312331579852210690362630525200528117174882692077922388962231335524622759416637886179833989696325666077458360825953993136829716445613261169705440861223797080019268286833796105313789031801210918599011555650162853495915277618351484280192179888510383677590721012586597479397693000412930148674060399458339636860546259574907394691604365342967288114149970788539644181401067914697897096211949045327240014091691744248844504584043277094555350328412277432100756580098248605525694926927951032967381101292150070041521689810978384288249900662259629557921445970041456419123015690061812228210343394907399600678190822859146957277587773637922668371342982896250404791400603885455176444201294382054682676828024562214752569042777384774614696009649081942226262893220953986478715044840543979808173844196690906780531469669919496412811873824904636160938278946740156344142225346903051453272673125243158303212974792246307478761026915801216666213074188625931111968417845529139091862842765752008440681183300283855285594256220104573318214069796009620407610977190440860068789355773897948230708257000061996999652717731689152215237254813490934052953080152031727079543248200926636819676231638381145128690804941934029615041504422525377485302041072214267468416337046347324733732210768681049171626160459381002914246640431476631345647554375943204950187329134269728331789218152965300971542406999605078565711140921164282430162573018800532305022874773558334337234294777486707905648112931507805972802522275530105071841043371339140723592200830932076082083731669791393253699394748798868497422851317709602826532130648749249365183645458421115584208544371509117727085899665594293470848867879768239111012536774979328744628448748168622040169251129242336653366490426883940350552321966491926838657304902009014398337044075868086113408276634007621702405027802200225204186542737745644785167488617450179596516909031185828611951937827808095615051014073592811222927644456764015876352451036125568478470106602329516572401125790202118441569557767717787830732360913204236312418566808093369594688826647646892640939295869763069744461585625132300823029724354893892359818153359761530584035613030045714658032720322986010760686385039290248429457938242047063617820511612301219776549112824522211670165671578630622999486289321936330504066254071166605295352510210585298505934405182967070362282852360937606715656582188087330177833937058018410783509942223439216127013073694831630652040149423688988223232840525178202420692006781650293000222901550634484807506906956158375968386950883972884080490490855062913881278901467231396670790305149437645474156718677184978733422783389122515024184803431663703740962327347776367522188026993282877023533348126344811474163463882468910207774979501798351269016861261801069711935716003535578581100535494182033888545195443880847631321164578402780942369765823441420708584873520545794657090461464364890019010850554179342271821786183021726685658626818007807577603928011018616225415588213087941865038788132514760766328348095017761532029880235773759211530949046258690413046755637991863214753532311783797031161207255599829537598963150694303435967758227517131349096502362904487059751050075236684651958672961074019108850435869705168263201717963595030352995499317364526754896634989211590946471064680899169114402979340725019504546039398933174108817567588725529813648659784448752685786357725212420121218218060295181602057721435120912820290124445205389113380432836358313464667898463409131171565582311342609535378967550332451556124637665727749524572124974707710208394282104357303371265068901203081657665950641361449436565161669750255248706275442040222983040227147772705130820117322928543285858471956916977756520842424253369838847450555199283556104769005802947831794387185411112749385752389963248188256020282350522797927157967970074542860011773167701106812756218582577276209270209310036950093600560830215839047649605241689490050884322722057026714569483961145461628976404404860609802166639534614417631697990298769445893537110559592068276008712608756178496555489280913508949582149149630588947536492011657586434478626973167888371455488131432314081095978576757284561580787328595014682198185306703957976030083552418009371441577750717927592343800280149415427785346887057981290681750149379073240425765967220198263582606682600604622025175606600040006778211547137187119269507267665817281006292812942194856751600682150187522178621433213690619942460341911059798142148095741530434222683545434889123358622339676067279364900418154339130375442247165139402512585651048094379853720904601152746841414504588859743546671916350031297676998036702687228698969134039332375994218815641193935590552106347422803846659402964170424605203748780309039917425171069941193292366233062001388949739168390598195669192033357444876973189288299291095290321904821812924055772828330859545695242317365963569916761348758670800545974215109244878872266011093880926837125362334976384380629857741841182693865071523372692030383711198337987800776685964487155773767440128261031773200833437960976133412022495167106714774406632851456915663001376726904127850968872521548126506923527133908928944449595182297398984595258449423977767912741246407953321259550666875685588338975098050053102024570239568540410908887281261620420586913173386814178653527454169160392171033818706286684939478338694017947010395680113205138088936109280102355035941486012051139428775170834521627882978984149390391117397955409032539269752010910219352494687047781678851898087134499986189977471454399293731050420239409996540803786998404475440346904145079603320977186793391154188028014163874096084551713752706225108988847802629668359157697952268420707752789136932870370018425188918255050047100713702282636473626090654963795584616238470933939502055937148055569634631842098786620250166173558737076757173142359692505161388301516957817521422448959017020631517137983216959559206376326646490675705070186367431436278184156594756144002287812710133863711193222897450845876489678336756315676437231322440563735457428820576417912898223743256402031344508218740578415615473745403788870328495131884986409673179827138218580930817367252947883458638473595124555694498225633076252061553143525167095139918330443582155895445931212815887312152450871036991552828723671862530176798413800185840142547969716169581716280486644581862667915921333315417593061856513427529988973260305158985066366342565400296774805642240353711684700827502862352531593014992390553073955093893423185492380155385478752360499674014969099283163422587687486276959760503493800661973063282980837791908599225169119659284197281849969607875724664087516095664659647978641538311177325117739763012428384097236230433641124754413396376894592079802299407886634295478960869220977298050427886987060620954154690131658760870107546486851922496443212301922195521970931470713909996083381894323100956341616596326433193972683348977640941620511485081669532219695272011414968688644713891463602465435707338102013818060033908327746685766492995725699518607590980837643235813329692130007192680187442884722696990480865828257290141467983999743817919140252011078473326196679002746478804261723334440626812904311885334289191598932414548249729317417718709827080897885238627593777582823983035987875940051670375404153263832338959986703350144982662848690306876910283571435150290784397782630727454780905965623247935237952127355449714568871900441282102281960897121112280909797956105700434379471841781781566081971416017923658485622733517221486293175233980319694659621065971353743947876959910516444996152495865321113388252756162237993190365251285801204479983637042129789952124641839596934406678972105675631436483054568975959416918666729246584020935299404430201083479992556462152411934931853812970273516399622920455473411041710813523266796779601936796986681244165205980727861332964188719437102443140844549276996040035052693482427975567683111140995526540775448993265276315900216712914860816726086876476002309057055057512458712691486432620709101089510443117377813875847163309946163222268111236650773908283151868936911484016797193515919450832849506271392125619189417422746047769371337078757151698897717947387287852471423131251744110019593675991158590667685662700314299130092506699893363589101967952770608202799772879595580953289795560182291495815947905913649199474146335810680160605687995692206696418537384510541578604011072788499432761610506722629953457795422727658431425454880558115723367710092804661793613742229195631866507532992501828454612066216467162924659231600765122875470994386525447586258021285820199236411170718033429496736915099975869510516272278330855173830454398686668132680172518592440386985937252639675381655217265770909188548517470019507389374535069047085088807726723224553983008352628309990457394911781346081900588973761173497764942826248146902629578006651409030499477547651996659767318890353201446668591771466157054089094293246929024396229368740112371111184566037768817902675549769602227338084092683693447384253606041392225304866586698696071468576091079408430354228662835998366310708457471855733535391189325767709011838258749880690096380805445897605549312376248143425030602813847074771295453849111352371732257368720267267451688958752753947070619523583091202355371962820196124921065781435760647755664607798094929058836291211519897428272190484495059501865181299012510744659677111402168072902376814267844732964371319351196126413939073243102441073209840557629145511859048235652113267073888530082571622905079803683719504892947311483617089449685268302162539796718741487654324484172607344320473329963061183063404422820527156980119875044503058785905611443156607310847406636307268260337948875787193243620007819405395903042542458277074663416613670988883856516340213865746177224442566266458762863605789141774003425329552257780498939030393020736789891275158426726333758268870127677263233369610707109159308366797351549222131742129007363874238709474474043905001442220133138489628493670975579944027960015632461929665295176363719517398511422391405630340497109104289223436033359440729077694868831132179397731094315614810848119551411213779127929702296863819178876834914027996716887846555240884410424325873797252101180355614765816031667252353828737421706590803206893241345226558174317643597523425662596915038157268703089684417935265057671522260865943780044255813610216530201946381281756481639008115142345503456275167081510096727803223526980455248476669885008984414828733078185399472575200330905774959301032165250719355935649316980572400277185153445624542844436445009214625164572769809510890342566453082959203177559266411414350473844446724156718760245887895512865139917161123185151265970479434802453461954694459011369824979514504317834024670666226156994155514293017231795845368656270930503687198806786654093720362420165828454531311632799792522840149681021284988974723581386888607297056935992529325921239301321895360096141855995817930958143864391951820972561635955441230219524254923548611716930354665563617412220487066583103171582757863662937008465287114725976221148325354372869766500663485873821943987279600450533321075698781658070652261169204637939499267782653420115313888185889360091265972701552241785879889913162725914116600275773912743339412031576341675532269457151568388497475864622723998010613935226887887981088362826278285535098195082402512793096479845141519520786056526593697877680626576466903331364839440561029546552569270033714140473432002486614915668111376116308625209378602710732226569177391300044714952027290392274065111313824310805592564436527840241881743939722813056274468158772336655949872666036017387940603193156439391059249138714990413453781949316119135852164224160144352286641647748737112668908356145803071275524678861553959992749255549966934893784576612583259860270798796279234826703109545163606779706614372676486048661410437213489982357491025250677836432746373634111681121297853115903054717969904353133482657060706463909878033333345452095215143003047433127833350133611291302854742999159385818865140322787930034468869965162516345506904431855754537709235801066648249326884093317850096507835149532855072866190680470037360986247217457620819128185283214417414943392393206766034889700748459230634241472058417125316063123086975460724225303819268088421060761669132397590697906770690179691761978660603898862025243537289303591889387530435597806956938914739572112686320961612490593879825770732649605374890486218719804953518272968394355642064729768131156259075728241312663230551283441328033721598034550369787672117765476921649987305717760318445017582783868378750122313719540611088682345608006144842741759086393134424314832462162207667252102749718244039775284275245341769980527767133716793540243219294339374826642638217964607810658036171597512303286126828444565395579271892526253948308335316679062029190924336405297359706404781737226254564656108963680988080562049529659803244758759078117993781884811795202801535920723506795842152288203919633890884143676347852770832734276642006751442724728742281471003431705676170073282879717434477919046782608772903498278297375899208369204319660188075306525004046683076141843792768800849453180451019146058404686393487150242750722883193305549377914017089451308614181952915776962213445265867437198128166457718116248569126789788534836181130343670162535995447666780765372975059413933054141489997109828523837393464604329220135402705471633836856032181884797543658359629394152180065116248723045358637263785474485746214282729834341514159672630938820611812502166040941336780133933488321981024656060620707621480651965620363610688860306324092016686392588213412077156540341400977885903391386501765064952361701140960847159802419539846343000183407815818463940297254924965501486204381974636514137684963818737750050710093232680220134244989189166890769843465844582308410418289145547994496635579961088877153094930398593565337217968415325991270133047756229290708378439774224851016091131846591676803053177868589387884884745661691810436309522618987609290962602036456589043960259230803982456342602341642292962652323015765770717773142819062003942566780471891457284125646253817644196753128269423400829077038040661372588701989682611040869477011630239868590255028984687123252107755446888428970741997997317209805647520607842114067151916349955086422248808684057457733289211915568794340069306567951179715163684454491796359522001860585506815529614129163136306949738317776742750030706422790258955115517868750167476527802215340811074985284049826967397906696102107626910902252356441586958259238078727132993289007621977109447006867536125088856422964482922731428416511517385242563462041104502235928715984978161182043854877419601395642779247511091324945499832727082546595590569408838543515239051358700035827415670751335204784993264613200618257115718450674165655821352174477359839252799350708483914884513341967454903491023109625774599789586258685186148906794641384603438183577645531377633706456063646409323941428127996781442484416583795883480993640691591100466124075280669497472399220686499264251388922130762693641242317838212962214972802415582918921792647105851155014132657136872630845544619288378788211831726519843288928700361372087112001832106860965561210947641187136459548731424743316432320288152065192645663757792667787320254616187135157344671494217858593002509707303724653925982152795982206669066216561180997840459444148407188054974283097598130108544758843732098197768818140026511076889156802289564978000278733206172676962500072692617311529119605958268973868623864223261345743238178197993990626247829961740408485527586008153526212070817758385762143966350155955170382968699694534981868883786382935474045275785346431051109536088808834129197580384653910210156898259924551197211600813093432472478629751052991784141573567931174408781077745774608780760738302093580470170534783660245484749695390302142635218484450858895424982185585262662746498588700323229939825781972741473953713656127097622629453136438420431961498081235965192464744089461007255251731939974125197548403680093223300350372154785507341794046205874725417590167299244678286187504463415833288066057651820326650120643278303926056066057361309925882639800572232051317822519319299868964604651369989453456435870418499004750342447452948618755496061851376285493147604086628598104797158764921738507519970361826031601593065919461222741072734907466082298346959045428626150201837972596851212892062908093945734789104262280519017670032765142087320893375879737397059139183756361948560334527023494127871481275793188289901425217281394803829466761798393542592239775765403979403358661450094749393141023315657287297511681754069491190641954102807647556822408666506203270211633075437497263997881420776274575554307138844119120082666262755298611467716277744766159086525755740468452549082314646938473604096534836672458812317042379195812763505039000271959139298046104826901000687370568512515763542215876770121270245662647927686602710440979289083148098698110094435365174679033043489140569285393146741785876020883199215922846231160856787585107333959511906657133480551025471163714848680824001739380010762369643896324683458804984082507895758693898866065267930786116151568235861143802592934586147494107147931163793876859411806719443944627345498902577421770194881624989508397849585795081201818978372749617203661970477682161649204700525218118127170608950741792948954308070768504013310252847019003495527605795518753009627608812184082966863746887116792801536581863073924544290139975355061417083475530306496206088096652030738538283821899363011756735233017169124296460756220708003738585918136191970089338282291859148124206894204676527932719605852102125200266661995155488650143945404799237753646958888641228278495717644899109000494306920461412363895098405027656784746029464616196631769491494204828003072413796751943896762615435235917160089295507846736568100833190756772971482951079355099988547979774287150785363959545773945747035790052510052036169431190925477742498335223773680353693713688968161881516532844836980583875438853918658980026329722089182210581439968837057341335450459758730232067995756479290208417503390930650871686916023841977733048824371372144567976231648775656605910935927078314250716408327484448914322026385555035595576419793420166381910035357528265144203951454154041545741497258826602513917982365899975672720107435210957253887565123307517911144219796493634610925450710215359903662795649862118555241565827236617141291046289656549245385308418914250821528733223251196872000358038045968851141565961938283564173769734993208823500857971666498485161347339945111852453563008087948173305602190506407779452664851341288171427041336270147633325343459698895722177692973837630354112478152977916463228825411880429230480185998483232440945521832621433767404329187594652738401865403719047918807232440839749598330700236856351550390140279580260958489016376926698937009505353408566887642451832386556498758796990650676114353958031915061182673382581332909086152580133164707264875225877480040333608862909348775332669714974362098501235568867428428483406508795937330459847422764329736109651247492900558702131492690343637622396227675321709841339132155125731489307612962616655429661704264175012922257948573348380501298842014374631532564951874601774428475611032253565930002809799406569141444416335812988646886622015841271443873991153655200573557052570396017584807925167323143995897830005262744743438051409317045497987383403638358125791352294935151211614200506273112726610585108155881639252392137845599010234913587267905486830552340300774225497508883957184947928305717974443918477330783556986266175289605025406398942230365679247794003208144768416787901402639264450981946919053381950380916032995329345914444172359913104630462104705796436370222547647033062645797030743662998185974494192587008150092645180296372482141232583588228218016278765878158266555968546685913220207204790214637844702845141087626837821595952435706078643021664715652568967607338767647731460577999868424486930508541013154866234249270427976622376961787078014105728086007984661988089079295662092404922318371022504464416408632195084156177760919713778463168148113805827647141602603343314307600332579865106088757941783460815677554178744986257746006707535425465837300426152642476565170020830872612898056801064111922627777733972007995342097716061625986188116275207648154331011508294084706745608246227322272925945173703987008581223322928775499302300071488326703486256334502174144067849238077330189691714134483344665436935951876273651215676690634010686757779879951835002569561536824991441594347333593956009426492838773962414031778173110370139508932560821934655176808507013859950773312203418954065086741946511816248005530226955985891571713167156643717648362498499592723436716968127256770391419655811830591745641786042083814392856050243934192212527399015693937451787302164564140175844446163031785299357515459440013967267391132744811298957476186694718838035024290066663654476909834174083149193651098920552982904606348945962532224737962160781693921617697765692443010122088970353391846928613753157565612556829353035499370508578975165565467800286641174194233837221937446278086671615581202368194887314838838808653363568317692502682476900536260295369211106211665137103395048556353196403704096524629252599696995326858711373519659445080222733375281439601439946544573399557255529895026358779530364936923780293466261382705359459267442878766221198583880636357148442476982083322072823352051782335139272569942273988293999889171143933740855287201380324746525156176912299949058588432565783341196439848906059282635880081907360101809082684476027398289177588275629951645021456030093263957900089279271191304931238962613213481782376540882119145917447241138286427415087598055946008353777147149096379350965612731434472819644784563790545227659680208957274905928461232881653602665462733024606970755440766029488971190079679732074241976224001921463944214911490619231033423324935861606375735875718493305843234632124286203119510330775608400631319893575647344279391423939192826293275184488626130196322009620685989304728938369388170833098215618340191285746090979747548357292951475646104751854749843969047380369087182905295460351119839128095464311110238256198276783425379664156706509811166985688559995998483361215409907688439063447173055079118545308166359019379608577636534220781792484084842025148210520494334701591816081603458324389350334469398301556556011933429662418784114125814895306117429759211594928050519652598765546321866433992808393564855376122347575734612043092724214183031079190703976908745795672546499511265246868295228530803240130289220438958411305796402059093417749263693291236024209388565092177915126859375088176545099612888286221647583107172608901251356735366631103731544098800346191586956648218116644505884971862718585663054482989196383780424684544073504191508029298362926733742787399831085231626139702808352436135447308206663184929239287533411432811305793211650440446543575011779222963664364458094565372623803044113023061577282413304591824340691941976165268953296900519009993175950157519772013557843079206624090010890175288712776290363943582189804673654395821764529337305153699415191241050795672192218678486081687260703788844624981849830026434601860552773290893827758365123219881575398560049780951655164684537966901711693523490673978952374278978535831417493717187821331894697416528550500154580258684401262856082987272402689723861257495294008101236965649337568888813120210244703635696042773011471730280794376654337277391613139931477918358775756865623334948488883276730609925757209355202200416963737104207005725142540038088278477947431379333529102261149471247508131081414571807740805952590678789235827067094028707591850845018600526480883886693411119326155874053099210214240324245594087120634562663382210243865886651473281130421176665307728576802153430877785434259225641611816226142600934713067789797048996611259647963061423378669820616266340649153976060557077379739935792499810368066303780011864222888866408219585949880216353383609627569865928473187170000268032715226846867539789600744952001653199404177891236836905766157275631306526114903650069801569258181422492788037431117979867285766023148629511656980269203204606312897784035022062087698158306098593881052080307084371164869027546218819655069436600514331278140949961901603934049508186207135901611211370525116162383585966096023937166307004121185238550045411352588462914169156701628458954691258905593492750559947595158298490262893325419670728494158140747724640231033740750873744387115367753787453088818039011302997737623659619681340492016493759022368189212488006529452609870367355282832136850697683666457556001788346538687947731632935419832465807519513143674913669373810604945172543841164248341927362225551702573011991538338131787866597644381510086300920023041159949321762415262947721922222248042980535624799334068194633875487143855607219939244486587114700433741374489513253613420047806382363730529492444621480561330057115538275309251635543861353140050141297114225205697969338711332756650599546446956984778816688731618014421173265892877753332541991285828653388933418219005681989274766428215807627489357762108657063851379830703244650309740879138876026949843268464747940781388095302998385979787222647367275328199938412484511225290685561307960207384457611577404188949348023264715346875950490220539589019936974297605724241778255944179119752272682685182556620482771704885905495446450494484683448172891236604876984993766183755086348785863845669304255397947243722194514297765630717169733256744247739078399621824268196301489687494687203480028223910813748803379271332826503083240418885289319133348824622955461646818981625017494566619295385991211323673804697893775456287987489031124359716435754163362587827189482087974217494555974332086027004328599905378214650994314510779180194654013297561861150643008776475147405766170708872611349809617404343489850076047548472852543544484162627278958390097768525686298257558977380416136066032965089274883162040163453293395435882044337994531489639691945908935515237699537349563224165150494586730885703761268518179855122992909967349306195712841249215744666817192223589031823687181814085840075220531439357487962536772655490915632792771464998995501920703284423290563456258749076495624430301209611975073214893175790258800566221369142933230360253221318663212907619623111707654934443541182771904624261291069998656064257072320804939620657697949988552761096510791029100052614030095772335976831113754266830242515941228871705680235719252006910818371073024497591532223556914247906962128795750230558746313157583183658039626247538883652354104519333268937255526853434069380918486849372824187434823609614746631107147513504675317486832945345672308524576145078462567698379775699660244353186061141203873407666513853610431103951514310228492173142706438988416871959307929308814448009885772219960441992749077215293103556031327591320456370518236409674640934065288107543031502227120774207049841431668110612502002950108038562676800372694499704485124467296196855395241730747468538916511654729023456102524807844127225950213118679556998253657595025634292321134051942331746288144640117078082004242216767701018696731698943325222466604091147371450526868608007296790815832722493086002510566494729509924813687193735155344586945986241006347203592707512846042993242678088600071263188573083773718837750311136365306379375154155294828129233522338379089278220534129555090370379553150251033283812664705594869161042779233404418548796234870859802756391598174753431166075534036332578780265193237151520622600098201268971681869841030677052120626815143900532082348815270896291824220383427533616270679106488123609304485743363901764656146633133974448273852160155125993942654939812977197165765943217223602382661716951785199691282432685372067922629830362013912923443686378645223671118163665434697138378541063941404685195661686420589413124090806884429384257574865414940021221961488423384731681542247096509531230825471567454017676967573227824484966284427802718966657435996718556122551695544452759658198885827685824189933318382912900382256147281528250965665697816766161370999990751421648942229484893714815239463951497707646628658225625021708071861802977903102264075850940762968299900182621836038978523747773389775463010437838048091008273870169744232345450217291825660783312509636166602813982064604267694910186055983932076612106828191664392077310730913315436178656203705006258337143920668047160338071369002510713883157425809543524524772464285525029022145545079583721086366835431587225514339652162984514628024468628808784145897711883784087309726389138505120830213094102228994664604320878930396650132359299366571916634114679264296292776036702377035441016651260983144791914584485860100558457474361890973642354460012176962917610014857766268150760326790112256172972834455112185306702937673128573057099514541708085064842774613691880367397412142762833521106314227370691232387042332007359143201002809419558222210083129563632808164687340387221925182827317920173728828061633017573616188774326291384859518563994600172654462266257527887294679350148129758629978868124674767010409768132148248289417036930698117979256714893237421789197318551032384756365382256697306005409216129036232084816811968203096996871348063096287868067780656727333730229049808928285161883119052888803519074173535424729356340604653981394249816527510520048724415756650630612546850856437630872197688375724112817059504337488952660302514180669411066650730714185230835549312334746138943475803161079650658972339178876028135629058807732708631071851898166508189745488635263746777275429217763042106256643357787605361058338794674430896544552598298922502789455214833099894097708381386496731380622050134004947451488692522235340584296826499709886423520858143210901392939135343157664926993226541270780705832816274423161644731889087874529749786530809757437525008071580687460697164176745029248418900381863819371901812827448057139643961545868872490404380459177575020064272435746767685355122944773908042484118534194022643626788234879427692544364770411957213036235439924887367019860377153346214178552529928655210346033790217305183377988558448403221756622616417307127921285509686708419984163466595806563196743914375612100536859120127815708240005900598864967802460541505750702878915100029385322975277950905829090447837181159588026519249083641911296329580498549804558078457561225010489599657848179445194089783278479410517671921203859558797383282142573494589095436688111208144946115874264598849512633760500248276918349906868733921261121684255993877421804207195302591356360034154877258068502815245056124255374443420911935629130059672840213575153662520384405788469342913776614169974729369738962880411228543884569490530678782468538448760857369369756542883013452221115225117520333451593121491557280008725587233272410716723482506743049820697617055383182740645521601002367687484217306565918530846494120647779056558494288740735415450660155054647843856527425352151798750838494977198209358468458648287649929488797927960914791152381572857511131301740770037653450211570266200099222082794359206321198613196862395085544985428321227941602442372139097200943087436938472217047539990493617643616879483608818233324236243002246851974600503486437963056239956744038363398079664076006936891424901540920909360987454729590936265141458574700944074148005146396974965361185566956456877874320801454389193970473570041394971493369759770457376438335682612431340099204088560224118709978624630752885643752541260192588878987800395622698339325677810606403733432227794498910639724020312691696285367579308450573869859420554681805603328925232721611871133269516446487338004470922628542592062785680249060304807911983920417910912114392975380370359324363959701398655479371763717652331767622991709324086981861909294376047101655815469058901944155261955095985438616078704298928144492819996636540193640234075131815322710710129817562993465861411216157805209764226607199501166820670938285105705039320220049119345273109679819943738759464579349791960448694014511997675461741808896293718853339746373752783586325063718427550914019838495477286880421128564334528736013423101562399382975279496551175733264907752868857711212440263408812602826753386299149248265987986839310616516428847766999814098972764740212853371374341171584050165287934709173678564668338305951631789438286260497576142990585451606356356201187733981719718573582671932801801657674171615373320708891525660835236291453709310988924580673621183431316002776193373106742847066535084605865307993657546657440732433012307524464388421836562461844329147205055986854230221538031534353768595568049878511475134560533970687960325416887243143022827192181447367310677600407532153312385970803112990278667961916282556102412878229951106614221765718377693208359020465267387836406460206317799967322182287497422546404098922551799643426892875687794358241684563946142484940143968654063127516589546124704874255580264512603307704501450806247523813741814442358244551405106155738242054235881761793229304275603120298112520921884990345891511234375352779229457584912008839011715042030312646093923320766441180132216003246295192185585558470067050721919483904541319504459972038133088560639956044366138963959541885361325112796792133024905741839706532096000416892828865728494958481487710862773004655522391293326779037073326436529813901312049024849761041513727637445402731807356097603117984965310687660694468551260492098370316957569587931008686861558964945420176779209732977816188912715022676029589436627952453653729739705713375557941828502761603373974976904235674836293557039586543073460307349248944844780872258929005247016296952991513418338190459654000025829491487571365740261259957935460454004609907358993529898905817482149873220351091947538115408517853278974621860136722269950392504665180451235390183885740449967694780389333901747253304209235034136966308724090807015202455000692444408956237683269814091527954970620488953256918135274568893086347850103907843124186869987742678025175098949403018307142150133225697701146950573207694196231253694916993351666386041890985025327636634525769131197436062176118315671505522302240476309066643082822964037072717057382765539416075820473203929668179706161821587543162193369733000209307511039666240440216210420867928269004718848125934660477345338199988703213499654139038052373188268027313708644640356045976146054323241945765208133570728773537505175171844049086781346319201343537321142663203923319779388517602459984179140947346835920421292115824889329265642441852145557293637548755982835279268602272924392985493975699176818499143526785680490655572006634074978960801131004144232245798465071999513695456845413376582731505368832523526407843034062889535946753690532936697183855870111970644977025393802193675386499689270603285412288647548244257504085590225076986699579992019353117549410804999919107478472769032027749453389297487169773719657438091944452723780457915070925689477164865864264634016425963500420887052301519270234432046525178404023950045206273701978105976745546055253665686806236704236506718069774449204539282252880339443621463454120843516335253272341678831453205323616875090742555361919178513306315855339719162964675634525466736671020181056321936145256767924617056023693990977855508999938571513280674555572783544044382740349250971783071453403581758335956475023274529098657615975663629102613556437712126886376639678736046301430662015530681780507207896359232324476498971718979749988468979995645637401996338966934922770774997280752636266875969585671971653592865389461342098533729673601447357108497268462879474651026576077146791047487941154524741173482259007229586944944860305738746855592966158545570606310296984364976996711534376018343568356195108897608712110394079049155335583415016835305817467749230205138771032127699179295044264380305486284484226636750458669952495993539080238463740105606106017181451092218404814869572509462715910139351009605576251682039322127789303837976997551471654002599031682214959886967844852970140705909506395520937228365834228030393102252737619457376628565818370084552211222833258092276921425824965136698613957560820617592190263276021677895417789859142054622499841106852331536584739265177406355288687413703950173761596811213758232617697654777552083660635242498056642255464034099689133432852594499246839582069975673227968445821372012674137741363108105464744909165252354635442540531930166201223636537708754309325346042357836386696377968366309402831528641585666436521878650879209291621097458545920955750620924099386994907561761737239705554347910155587884049169018635766750155868241518741848325185766605590034646323986625762937413726339423832302613207169270644183085589366573133051193394676180320864419845782010761632022888675409809729840780420093078896623947580382228755095426671743319680124475217080238167922198020233879076151479845208972373063142876344443086914525943282429681897017171728851825865693011229634197274443741391148004917351999299539554760525054773203249340294288431982296435860946055344943160410030278602581942007055499392963737936624594159363623571663966290532117111868187780319507391418644094947907507442931382971364624696501855037923008120995736212761409190439402644486200940104117317939590541683676899806555584266340784363714967892543768206352414184039437684036577362993122118316696154823083843322447742259437550735474613874257702789565899592449307128494202408782080252925656792359868895605609184771615401014517153534564771875257314838845259222836891812257353704969514773500018735875800805165759798993247699169943985241005921829962920997833225725934330746878996408633018576650676510920717174684792482290637077855315147642232781192148793638210759363697487321987757793600963017525794548701927827688408759030531293575750004402399133460901014281668733455635949709347348691570338738303527971748549897387618233083854981492143686422892667676056251115180671340939646523124730335823713417865965155443431354385284323478288214321450903903691243406530354644426447153880769151382142512072619812820577973608442323533939230638773380263311192392000486037264592726258765981134774071037163980381300204702584937078077602456459132007757204346898546630673998673037088151779592900376793499508503005902838843991493033632032967996440700123902787811707904015471947065242561189872704863955989828118241500667316633642512223054196172816335477183494841872848259240446315345241445564430547416142420945903082902502135828719493965719068794015283794166425465400156527686761463941404537213294356294801536423112529917066499748833082813103569270734125931064872618010099623461257198491161159783302184353010681397472801710581641493651902538499000413694832414812613941425232474496456610775430140261449291029373435839818077572880209929769794669526514470509378820846910372353045356577748079456473183348133372854021119710740332603902495794267497799060871019851366336780137319163844386732918428208155487464432984262107435188246790475686942474985155755221154581378949148108073107132571972179266464540774894027551209067374785168911295599537782873483390630352306522822701678996103693672275157259245906742537989440183869146207577195641747279753789995619299119306466819676467762086730709810943008181816649880644291633572017764186229225364413739127790029374600400713053233614681759953346023202887387800956412707121787217066559326131798844574148920984013273360056903556584929607615661018376276144824827204111677155768717471803959023343841691168851983457352402499719515805227648238283446715428097594566242564503866701892274942920432642674788708835343162358543783593867435960194925350632838441709403839015641153540241380542628735491799924043556260248978794576943771653188599337010460019876232176556945926739824661018197917810550415960521724318161079657561690642445379727859713779934731327761468084667606118760991594964928507549215364026867847707407078034573739787194903865543482671327545137136157335192252107217354771159043264794125109498354981412320355077442880312238775351247542038084697695084284001205092402238115484964520419318602500181089836679715806643106346684703242868697677425839422762609628719698866026175730358214075556966594822599432427496718233835526042351133319557582776843341005322640845719535918305447285644098183267054203679786818201566612865326829271528159116010328813310493029200388291039282153753309927686081679007630274250323776061122729422541795388135176019132672284431990523718388950076300721256697474133585154408870446798805013055384671503342477128522436075760614327626559507540174126522741291624407091390269863476767156644352810628222648441099301201995741569432900938425039239700571396722715551564829016782553184171331040243715639034685196479472521792251808692449532821571194634724429607120627487808582017227332721025978588974057405156717332943194921667907100718296682419388380967440451264680305784732733864399354293435319544169098073431403746001318228950974403925311624594721463565842641985414802206181790202703168697052495102610588386857588275908409974362240181228155571728103546412096826709982537928673931329893292175780712626675966211063333672923295535483439233960180326132253834487349347280616216187428777002005816286405623654414892985262439593866214023978031358620783863087535930080777188524471788872898363773079872716206582640196549666631089551565559738953098216941748448436783781661081071315236139427879902224444437426965553727646456904773911102344336017764660843847194372341480564637600215176770481108368945660495375759177269881503218205891641797386459218598855776769661369074493896380141504608447700734569131659402217661595445950053178493361041599770216741973634964344383872401669909089991385977382276205088744242785138531244358478902010434563707931213340902719034879086237343158207526088954137083413562103070851984342912236967475443643266824723511737283436958111905639798016980605276434066858304994215189824246528803621108746864317447080533305014738471792291039051718654618197340554755008805538790115217494905701540452619249278813338711100715868652423306366749735754155074035046674303053661541500797720136890070690471449294953672054506544893585705030272439839330376556803533054614945072650862917369572333873096222447679198671461303131381882999940308285448785068417867390263163048623525376412270536515700426096520361142611979359057390958681697368632037273326684289852983356700857779429589450150663613024196708782804608963391936089939762073516756965767418970040882971005789337706729232344937104340261787278748087371261053858732026801678027210701726143851855203639927778276819668379480831405825314210664481680110721144463322302056434016979291115666324718342120913675809708391354634380763299258411307126334529008802953247572617593144381541578700944076734573021972279181533498623135189299618384015381854398624975490843206509392345234405531281573847591217059975287625640957535322237225005838031559631358953670371520890336960912184566741507827233261851796641058606683603327812743185223313724423375578805399336295347968365634524407938249937973582544978668423012173601944527238895377599445858029051837693810760253803437547410357399636951936902687661006909379062440706230377136290938892010133705487046320437975816408085020183053941136934977371628059101063253576871793969023688682590010529446413263373635312948910688755192886403905259863363805289691635835677599738115370556892086801596331652264302321747551592107525018555244920895269100605752487873549462806056958552478784951944424789164941818602867178490177613202455204982075684376309898355036736063144987420180756506218669539471721635587158131312809401683777218151760101162182632575957960051380323658713058119668132600677266363051868319450379027215120829470006362087707908976128204906124796043329445066047367056494241246465455157570358532615060537122478768243631948960161735142063290722737408512579044919256090988155503752923317135011922965633815290373866548675558301975720054187925603074579484023317383287710034248845300790607019364441380920234108040898695263816266980018229835661383120735530572575765508577043334114235404248216342865840806611393880159622582253238898625131609890603833935922289897924818215935548739610421137802391284782787483625403265680289836099048802315838514447426356217332331691849141720789312511077041826705227638900654583122606160938979966703909869055759438745990479800065732697946359812301860959120055208190778342098712116533492129479951666682866626071777746023318585934587180807279224581620848303511843668047886986118656853917888152012304854224329341371768933841837738676782447242217237338093907490398290185838129680664031352023813113221688950961367408132198820373870038245119371888904164082691875332138178517166502712964253322921952140759585079539827759997170817393144858805927805164424648650920551298652774433445051860369923849652116840865565582368223241266464500791360230245529378568991465012928793432175839616557624144011737570508195199292908903758367960622629434101673786039922336832885032260381807349517119336752658459419130249312288917859747404575112510915947420443881904372510971490167729396157361297175646745180211436840550164108221128003043059865149122619335506941812369860509652066390721667875217248936872421798682325345619324551351917926027138082039418634398303808087865318159939378007688604239565734707688424458925705144189775199066881014472558151289810211202220245657803356028797686153329430610294612513862915239646414923148254761562282582925829161484737867157799576374056639090056654562130555707840620730055291878117108747145497848009050494407964205649807244158685805540774863838729768477077334295929923479637961527490793704431911861570805747264988849246841224770297218919835349163940840177452090066124544122974611718901972727636978085452571812358887536925202009150536736719308910426400476069792982260267933486960069497102907917864113835948877608655419291639206623438003882676484384411923745478319897896580990578904600328181412295030655489059639479164546260829945222266465619474946822270936768988944208720733129517472324744975216861194770968714874782888080939633511388510431010193782832196043726603591219879153993320000657454085334378959088962279419914196319530961411716276496589465105468651597873240694083964862744571741544015796106480770992735118209152944778959238412085424782676090627668385551796262482379641318649271047475678316689494175125050117799435646132901775892472117421547299089334608824645648730388394138301925503160103411731870547017481581480075445068100792066751481720454223349101165995655115900819982262071350559707761096900130574103125248083340409519223048191131778335895238776555498091909585641346381387604096716111091922817629640937151170416608516162648169013325870580629769932209178118495089085029953019435873039760058883773354719882440517840911668235708083767358294479343365313919534489522048047530217796626163389754724062465665385203105168049206475438001552470570929661726269149393051276529512173810609532838783901857597378006229287431768921632029997458234325892882710403904731778863646604882427179786490610422928909115170121759399976957383946266738605145832441701186700348163994806114774373851807428571720590836202919431880815190455541559953877003304343606086625188154020325381117454176971943867980141412858938118276172839371543981890783667517660452408599720772215055908551901289437944175638534267201700620157386121430239332516542361161498724854209822255824508606212735075212932090855058282539799124190203253424141151254070660288109887909372517968274708766779310732584880956902591037937342162133355986858602767359267102062922304280027624756731836736523397623919432093461090721957971397410375861800398494216531531464905678015333815567263392611773839537261476599589820396060632605316035455941000052913819429682843672442680303269490961600180512662952185062445840809408826259409195569485753192435120240852984092023689619039851566360881928174673184608013997672700315056380376340852948212719306215876969071385956557278504727885917061004411024046698911956466731439823482322643775362643895290152555163984408632506161769277203573780147768581053680474474979116367632543921620609291147035389431599654817027421317053944703288375297599725185485467629715118796443226865478011069737679571820626047230344774278485516484690317610558895442308021801284330539931476965699097299156309868869408382108094566698788198374049403280506309806901953940933431073265602593595712205514465620419997633768447667012220904524291516478443515469455540162763276061438116305873914934011846337687929724877955634119548260897724531649295640191995718284253359057064393753552434690091667087602970137676473231721766881259411134485037381597449286730867518858628541618088144902407078386394175977214558148755351094852865105322656997320156118454695686826963794595082660581778140729002263635248889433074219737817868885209922842338002762729152009332730847082381668237515300399430326325129069884914630597853668429413365136088617687500971189967368606666084351108223093011917467434257080533161777431831854800371368009220204336625967646818432422051004042886156069114656849601546518780653029054149276624022727750707480339063391854761122875334065315656755681164000094304842664511689520676253000304402624672983354891221682015923383055972185002199590214814522197295607438340885030255000898521058090437696290959129689672789652800692957574754292223113090197661987988887563620021373491986940534995102410095436949981507198321491040902694290961516910097474924965977426308240357175604378381439479185918777582624769864407674382483770088968922629492825524761039633369054465809742038166391256710781884992469012259531114780514211130212956923942044294748907141544359158258773534023472198060861664317272045103723814718596357462090926974425111429366457858613370754571145877365744784814497962784948799310032316619968761882175909599931354430283072654916475116895461922292662834727588899325507867243115705536350029376992606564106924287669786891229607337642920374322387752937483468411581246774103572310763967860563738959552040119012870330285863379411029816977745757856649194535697074143265307032786135718354626046679735868940255893404452037567048499395937332685169317724850079865888974837906261540890233821425744651950156635044765541246964010171951488452491357905064883637028874724397920738277755020075412579383971193474631361771749289503721886791190804395275350206680114423706333734898594146849838819084260239885010211942746864966356481511425400251591700840772190120994746227269287292617595889313511962259858250417080735646156245025281891332262109885899338499471937475936015468723674530853915798028979250836956497719723674933629195167651162634862418514377569501077706286536887159155695292187045424223061878743016335736947010207664313807585602741759736205107848146643109735150433591056060372973524605287517541412551816048524338786576019466211124537369951826912497790689702945986302114075646572347439456386088595276121789369347982672745259507239341196489770191551130017957529113626898249423954814574959376359066479735482205685896366882343948728784237352915529591887013257971781134086130185096027606438216423186694568461123334962261413078077648065976381797484847469897591854671974818770087608931620348260134291486865831678210193678559206028372938607266057479513423399221592720308135887337388010592454903800629050474352895758754310832542965341552461872796839295922637894104909794893033853986074163282578392058393452009890687451149331361686029638682748401743930463880577465512048328437939227772981338368271868429384824730183695398495071653441415903941264870232031848784410010517471097605043147866265740724633641407252026302480433450213701436691457999695022234678781484450428168668341901443141992033782051098053078862405186562672801345970782876327631082335984377358932371948932522683832322322979998960289236503254623142483208716034763817779278913071876695309302192193126355886877821801187218927124528586298176928494120424136595504656051226282044241529232614996039851241422599738704769566698426555973326956294441154259836883267989402463697976000864399373493840689742468828555651116692410430199354973199040702387871983581096369091319848870563854280065197535529383259204845332054959016823604107043793064001055718127917940920410464212300313018369087625293822016274391805904292077376060851582051994911498801762410007248555623978818168114308310585027209225040294178881614618215521401690307339998651937992010801314247228777621709172204909149312825573934451928462529097388079345729291573480453446535024085280405524976907047868249087121920880952858846748440632755038844622135039549452387876994069130461254785326319266350808357933330299114802266819605234997867369997577415057865886452141253886994600897907274350439177840523555829434414326101760603155457398266777411726246800834861795789896802988316979787421282486237306127954957435485308874843426596773103358287415147295823265190975551819261783829311065565964638215706940842675031472574988533983687564798219703333543170394089126011584363223756130477092652398789519091591508023961862217414309366831772930878758226310468241470626120371603615365603270257182714608963601712821835645594601110399118759957824043051039564299574673485474381484721470578302858707006511057412082186099107132418413439144867230854896884494489775992938151130969398804386809047072528711683725801725254012166951665223920745231500720999888693884003105189777578174023553277643519173335892790268525178536936101980483515808227245313257047508753144250270513505900740862755933811728322097181176659632456437153661243864708795938693300873219304716725569082047340111086067121518068697523717637225653161455002969139867892229639295590033308387815679152759167873503614710803865646999103622376533965774789306718010675579522572077780230688066343892754945027194646874623346929182128820015730498125817035886277653864766179036425981686528104223987100265458943818056968377823912560120955136243724297641361478260722371998771210541620959017784206288171806849927974307136106739345167777585794128225549030868123935893028739334247219461576811195532556359095718391871341251741437315055735898825908799032578155378487425493917861215729273559400866998824201637858647609912532102147067528847749062738154266725496660092221620490683410911605616750823772176110073403484108466541001957360952225511083900133467801203706249719539484089775730433460859408306139889745096777562363872934189781569079141843678091010963345111199962594921412391778267668510378304916577006583513025950536762398735868510855739814153304740443581596512241505376052152661607388754106573295865803895234259266771348470687170300533568107974003853278928890913826017336378341776936854611523902147223898463254203365181542943788365324277700124437028926339167400115492955784358236481597425763599794176056426009188681517426283260866490907226411616634695507363343108238186816990070637175318803715600889257018452756106548978740051687884885398368181198726624379203439428389230773646942512471787437812000491734419948362589439446173901915495244989593910804122951625662159855849048555576225112843410397795579387698693830529170868108355265639937168880530986661306119249158469967565065145040346279196772548149666038787837989490509499777848946851017874920418443573506538787282635427057069781901728538653561355859078473414906035274971321708507107273312089363437501334573146542075731293625689960352790239449158828548868512543082279004932930764201420597286665770570327699983651963888085649862497021800392240742348626380419661350475969563939973729520469061279809489149653686711515601003090557489861675290101980102819534208260972536072382053790737285820212054398889057915537584094929718453500228610585848578963248750194688351289116580427556646938109580421690680184558884239084088726934571029907942486103492291005217493055504376149937282916474910621524109330133338423103838969641501253342023173508308178972500591722610685546354712683642380976740026563303708748294294652263232776691635923620499164475372854832593627997123722400723276511406655492819401027950348985119760650208370710329449251641158744982805963182566602576601008010154497493668260337158231264692077682113360844067633973135842356966684470721174512217165344247502480698170741737258925630059114563432711426806696379577050164287939130263168552716627743150159652391022461799649907037931033402696910543332984543341222322928132935114101201145128778447900870931101484852997482665087122589760842384512539842983403858756529871690327233299448927311374808260891274293982778440820252849956071168840538091045979970167030961273549254430604830479742119967352856613948944364730612002863144887416836685536861749280012760511891912614216821086280233438223768533902344885122996181984464940912961296017228353181844309921603038580810432358095301210346745872051945245792105277372672215610651779631532697830008732463208767225581874440685518188787034213184101842475633957939652245737061639780735862959756942389249579837809002206652719948676308432029154846720123742819960632929162034544381744191154800910823458471774963530150535495531068930888514548157424052203240181212697092736169055988656592218534126739395054298383809063776459874596764177254968600234329938158594709564427363014081537284719122566477902326979493917732307414390268967163275231138017073922754774659376236345243073184958746414263437897245310241115524691273544265603449342983347843684907049101930591067402439838712788459715725604156003258338683446769478967851116481253489551354127119569258574891138225981386932466195233456062485010241171864255565026453855671268681213916681077145396735833006050877666044909321811219981617457513120561398435111567659595950320702233356215326976401872495905341946318927296585554536331548287701199937691837921166981228395436286497120544363149825439021769652724135127819986055190076792854466577986274698795378704254694137281925821968658912324637804817922161642074477436968112925883620200441874339041077512462628820069505779128166630543485810069666592254550203467488523296608322992254718594161601505310272288357643138819075942990759513458802027132869040845566451194686397994161122840974952714831289252083347765832045425510390255181336844391112493151246562874649142178863470268991952911936639751484336220327657394187357993608872823179755464605630564678047101730214322562547350918911204236479625255211405396641014475205299189975699237633402711582938201914510872999593716313925124604144225167363237844793630497687499157481799702866092811083416989819981317071804856656884298965736961442211667012447529428127032540498446653576727982271847913556759253658239252337646739046484440627432031653464820765824875302732231050798132919540031677803356078356275780316608258051612404895007436060183239384272113108660681147268263868214817442518388288447299855581392939194739355540483227548056549521224641046673991971798989104365835508979213451222833512134139570044919748022596363002066104383859533455879861140756709085174899422063825394065699529733724730177367455168523919161905866251049075574632063994764672736895345046059763393432949258877632992911763610174932623002042819381425064329083589864028953248418581638880582890419647727090840081440672624142444320630466540837127397455364799783059450590995282239731116360856233963909837674980099809508366437944179151687618828702648474236670133527218299166244977779123500471337042232683233633988337519825462040026621791233349621581149165545424975933347485840640327713482263468034132337808005731928211938105289428695754996868479893541428423167886573669427794914007406705294511051489643163223682513079584668934479448342987277424092981202622270173344891266651432748802082670170975935209642228087370807182119658134344396836852592550764023159390155136364127533352833083998367695980172729980520660409591950076336161580428740256831112536671009197227573395033075201255506296289141567667522359036356417281963816980360984943845886294448116166017345009976555023489679939265919752987496865436667307399920389272545338043107291076437595788526519762236351942052159185743942942620236488618076190348963241190925749900248451411847188610355567080788781501386379942310019850186950355133382035102828757266946695367916063486878535175283199773175207483418463661501495212617299828360788842101058137927383417015485766214450770168720423208963775268473725128077041158458507356269664199598059043001279330715458641011410579202863835781144180857798853469254556345075590084558267543656465251497094815945367954070725020633911754386840313874765466923952724293337834606010631021152591173400039376310050923522780955529986058272796902835142610778543449774959033237353805296894723499005781393685221094348088513703563269737399437885051045561115852088528196458731126434044311054555733759816970222538532468508424874862017765480026191485750359765329859358295479304564332464866573075964683160234523121843771140085386017880951476151964736613764652458857959371700978063932123062140831430781802308589628925321704067537439219132432442000646426808382873003910329562433661238068612489658342211534822984480789131868636418080271047019858919115672398660030851635967538403200365767559540842538531929959096683020675401427551733543467119972928931960580616286190618953708186287132487395560795017580163319383607412837608060043002486567654200929541945422093673300818074667844242341405207367442111669815258540385338408071282269354013194999506903309877322567590030438753255421482357365486264761060564831138940397724500583251779297918990496227812285810530890195770300285180212487910229688457967969540150303033038291016295190283620329748179746170952491512294287543095269816165924660198143180135815208069767312063800205867071048474992079869738481494391159420072381543177074146186647288863991682428423160161735468149399904311161760841405790210675762000050664229449922924954826901656596528306992485447579799771903463988440550413317695439278018565870036379383045409089774714580047108122970978608879717865781478951487722775762659648096108411138564449743438233193093790758822984585469862744507399226216661936278864544955657339927484953551423516677045738736912805838606887533444816022411793692939422002967079454746109050943692910632134003499453022275945964145279330080826718351965246793490354557042242424090296622102116980578664090489036655827592476799722049009220103396210508948604347586423733159263857135970129934665627297954960871355343493748307466779915980410205034756890639840772944930995966829339904365101692450927924606178174037752536111963186094287724839754374360840621119620531494624152937320339600974818553824815333456934067958307525406510698122864808582780256546094025722671234383457160592901667219351006614690078339876195834730958077016421894129728472997188840088258534161371443691757714242117133574154808217193052165921483640202276000857483976281495279899448831316207362116084394583482405052874076112802626577182670646251523342800709967874403158813033019145304249608805767125219635104649944402453293822766712160055665253095160232143887195204887314921118420526665849649890625699149580639152755472422916182095545279403280856602205270627746775077461915929339428157654700966958222000782799806220420227410738424168748943310477664370249749479953100190498397215030134943465284051063823240757833583323411780655052000602937906892874014051697938233358538622858691702496327793812001291713433010665472562539867180321490185792327760353653849625792834651892155254986827283421822245468029711106211844781702694971413097375957510663417073326550271144518313670863672747574614681861782416103104261295946459224932237441974811049290262140077030266371930444729794878719846651600155667979708167157273893436417004542473410826010933673093416788391107163295923058626513710568063944070477816529432315323539125394243080270003603746749224389469569131803867486165560738473767639599899645484017039798285963603629520876065614287114546864354813763468845655126366883563370978174385343470957359225686705630592871192490122729618041143857953814563000462253036865188159569709758452039249304327151484011879951174100090083893271755634021158727739397108458618884653775336286507644410806371416798558559201615223691459418397310730952783274428593072027141140315079779733902110095070404649379722270203129389348083317872909901010724635527433776630610160623045457034430683309606919276506595779268540939880769148633535692112229757754085139910466966409526452401840469797109329448881402004769921379162995367965297477563503053453605572220446257687270210088359312547731569150409754494484951674397842350621486337932901680837907341493593272008988734862110829320289094299166714300350352997082630411562722212729211058061674170816800177733844049781437248977711116475927956930253434279026262985337797651490584871242783795915350836381682260512034409005482945071277444682806820895823801357985738068318692578017930603068631638823659997964403555419780852103759103072030201516908897219287926161489708884283982469866043546321628001018829368072400324032544038188608564337395251439433864659223772100171358616816308255425028622585622689454295010457639551616669742066168784339833157043194880618872134650852491613746509202813838575301445094449874476313713717170297509321430371894564505581627039100497074751522039989608137275335531477743366546688683247113071960409065064517441459703560920468542934853030763367748353309036615674987979747901915114929596948028440009512962196691583442581500351492977997071762209360763690218606653790009676674367220458994730527764650953705095764513310297118189518750537115607612300237310055257149423821581755312008972171476802014582381295746669651393548618421569425791961987619851342065303300475095007405806098073677109917356691909728061827757564834442273333635835084181711530650760081857618730786890848540253870474859739020869107203829265069299251110001486470588786103498127750677184476378772941754665197753216325699874787688364303952343178172175186571408165776686664372432008828921373373609645186890410477049302021553378813817340035340850052650209565791375616519446931679402157404105144921343982120953455673556131623420641288006023486534600866546753195654688043583148877314873664027486594125905661094054047998764303122588832013739195065858328305645853779890514948373067970698575058636360497232053142138819508138926592050955077420827614373664650298076939830444799622820954795975983103210627714249364836633152134783286714292512198027676306840851206776461442605525089078848046979975877851219614577691408568004480608338475446582364134831832415378406314885953701669163954868907677082475425673277448871167009926647814261305113396872385966557532705373112283905497381249579870472592957889256202531709860185564581912290156181619537477448251232157583978791688560290337310829871038811315256229588922752479725404174944646357372156571586132012625235439041222080095874380467287121376119450182751319218089813436013224600451754185926746809102685515712758865221239240914238018810975041119120319421211364981892990928340725132003141258002437386463046153414294992529290696485016325553385111838099575494017837570538082677947001021542767240618999450909935344081384803127145778744939820732865806291739951208707151874672092533704993382550572112920999870808926098091287671987283823012189762284582882366022273610929429731751538729022397068122470084192744432130207464674366632474552217656475428578029329510081084070857593500265947995355577804956373645307073971646299041545801680044964031223623088227531846223269494689949794983061148409549384009810197301112921017130786630927299912946445475514137102735402600279392323029217316919122800925342844926196615201491331875037758527458665288789936790646341810303436429253393514156658497261135912245635381896834246207450358219123805683967499939535926350281737903993557271934130528353323067705943209986186791938473200391575163817536697926207010994231479041941256618362402156063443407245098219032562372563317816522638607820845344807520837198614274614062188579900684914403344402482620389322628879257659692576832868139986338201871263788725753830544821812083052243127550117757525096659126993250219103706593952885202979346406184537502546908918968656405416908691493737856174126609130452229245561071764645831340758593541425902238704987777923200737439372821671298956073671465477332266759309980723858702619433150365839682223410715772553452736593186430453191963373973975869766776051011046777346151544663549738756913346873312371312775255125935964321260909944538817540830316513953994088315091948621292263776966272004852514947586368828118883783591430276540761032802767534914928471107198258875279725685557366076352448414853024865072262426579007647152597680392622278917175795099899239118958365559424221399512196372841417637482342733761448037149482606244587850185111539683702653973480223315800035977155319805828938851714684986271856568282040238076707617898861503285130017300744973463116468538081660583756752889489229365919979623892993909612429061096975070459127931438360431830597195148370600075293251855194767105529943066569165416955330985470281210875747547231530444825298907313784489488407019754512076515001152697027942049208946358265139406562152268367581041286355401595254674981155411003107099904389746525035446589701773518893033842945467781323719343813705873560167893852765129327374640583497209693864990923733500651484593017932644066783873323476150594148930581852662142951121945688379285193923731767477082227587404002777592714576131197620604787820915252796661664449115892995441459217128458836899321453624422406626889375280561426315480598159156083347913248844925971315620360972987901072217406003346338931501451215695893096860412850127398802991436659102840159315269549472364716403370016506991406902479478273982468448748126440223119738219798879359385155255816882469358838316843923791209784874353912111569601625704026547216368757952808503570814045325473830329994735961800569107299614120291005968550816174418818376507846508528750835873728280747034074916529882973882806026792902862103832407361230137056054839600701926511166836351738311631993000979804230917877916756960455676073276036809886625816350523170365153978624415174968004928347431289913563758344044394002296830070634233137225928165017771583576911662523265135282279206699030397390057562092332256765474737005838088105012325859716681918893156720945146878024921683621703717752855299854411858721484314067012250366273070603586773894317876708351094994848609616378621073624724658685561527883889871735531808918276192845157244200395027917568052815450780281554739326865219831899787325599713715656277648064882676251736068900965410155979224085447132125533566234174839970909066638104344626882586006571006963941269275872614278794726746975077635083974029692278785778195065551154129418154470030732906361930478140233011979135748507603387284843586314553825188319554598238422382485876583663591267313991273777258582810708819593528171304027601214037225869560799732528962190063081727404439603230644360106874829905427246611576637447145953283165852120795081456622743330624566448931787580055275856099747115064514756680946709271264713484888325480006236932737294181091858800191729024933995855140761996289163817238821444583590690278788884132258710732205804901774894931446717139508594822144147613460625988488191903628318157749735353700229856887958680824947299072638795200169304881082029485049066929899068878614343637254544519902194710263680963073757477133398271579704874734850688555519016954758005614080335366607192240087866708860751135145969641866172293357389071100201647057647567154424881542294631723625243490789456169433578655913995656427217390955011825359122920368843094950205999121562120929396217177360674778935733586236739065633537856357173860898679346759127230538948723886719097434613918726577635071921956319849940966933736190455927271919045581097260060373661129780388987164210711034704633810013281427742144070379259505053945396122040567690392993351624770179250323381751538659472758534340932240371119848398081277783237479399951405073576426325661034705162626840767050599122765153870217165177303607813561010980238933599885191585825498602949614373427749426341536189313615818921323697443433047070241858942661524454354320453412709081765436032221430335719557731215704568646460276215838769535114901726282006995505871063370194983916727210839629374743235906547083136646816603420254133367989952761846973491187311635940863628155973370390144375196531742795401434355859427088288322354154384905960953367634797974952842412395753089447217026847640516124427452432245020051367419520062867243601718968037690533496586723115393838851253242611487296129158133999717072775290889340298942725527925678939138184492648299877174349474259449362128553284076157497354062092948465869245113944623822142492192174746131413302954087715985358029050198954869884555245194758742904609366432018276425976202922247904576772189528565997817344001552455468357170009016102051265600038758150934669831779335100449951149582377132350187830238533279969216801780839547777768873446761408373961613586236744261533229741537246651190349109131662138447914651473551175780527455340992688374065889137952775701694496208788117624804195232565601191135020605640892852933472119885273642913915756292813651439247534903801807306018549985667742031737240641327985989836559978152324757107284445012975596614408721010406908488586483795966050846421190811749391174021973181813918648838234877369319336009140234275342003380498820203902250693183319462207541664045019355522023881783971683517698629403518972409861928516124903181965254003563636184870039118792680532606408818207923155195430088234135790731079360178502301282926871352934850626140142595484768583124020146807075757870959934353572964046028235738469161537011992652253535003754250605672530398828386262354779022443576797960556105443987669124977692351163127261775491420822038863289360200507431298093595836485062995902619897075649936787982169063480211605652665304490011632631391276790966356519373241028423261137312233774467373820678983423574577517071391283063308204816164856015054886250267780673647524697251528882524628979390597658117949425227584938406413955567675894693692066054794836726690046293208600679988592080730955025301041603660176407887761542447988085022180873977695245773124452065660971836286665919535126559110906017098561678287420297022213673972356150622823045838844295752380797167661304626914607643162398098630881490163550926812325953087708070051244987861103649585684405238148968400199184864508603967602254720793073186035815431046111541701627632465430757209644192409685030824848872523659708738820280543254922558773789289738526687406124725543535575074529142373218989171944870322792216579433967261262833784763343991726505561253389580435488361355485164791718648312683627916322177941510726692755089851425710379552433628722278953645858752712964360509723693098519136770297134619023961433948878118384613209405852114809320583157440378233695079291749738650808121756277915928635975303482362059057368877201001255360781649274450006137684118984296931871193916578302760118495064556754547405012286110494624021283056574348291300269096209114062918266495242608808216296956016539615501875684070352276006888089463005504841042749618519576164031753698598699923925709298247171868780959050701572838696784834040783991412378596747355022944265353402007254403288882755323145236319685765394812846141975667189955526170094516050515005619106821963345478416536813673739739037288995531859607762782181442236921921293639392519629147158836829613537651827297232757355102771161436813144749313875756833536121803068132918710179177418966736407182262837670111175402790063497357615304031797986675350171874241161910436872247137538864519678238775685675278404412100515750742909923026510253021852545871513681174347745134963868418522845808406871903556066245907401014886116364697491776640730042392771874284261935495969105097401486850848928366903261546107055329450910998971986735418179742406196091874753979340680239426872427001752882980101738137333610769104193428704369920203614242270796681823895634612634104904378491347105059622581168938710330410688792246455738602099306033157475020117831251025622860838948010459818778865453541841991551960810446674022707717777221800218648892566339636451235373142142004932862377522171945640899915437816281770898332864359396866329025797218693475872023490671594084921116989564964134920606960975554096480765182714459105947895956052007150810175471464104661777689315298823302438399598426871122664461637711895357888546328257559002812047899912361862443151525216715977212726477311234417356556096554715617826281032249255054134416499712346109168499117024278157374223029650690680582425270531640852354024182010146029357330332018170279449284262868212047768980862088759647145949384562214415339827823854760199829717632625204279922097385628745388631125113851607122028787614837091465171898147988605566396580309668888549208137339514493258976805562900802543562795594767165729035990102719183151642958173285474818671280569886455946041698668194748150579240696621602208430913964889199156334241283206319946570905174474298166091590397108088187249416811647024129763335196783392791141861993167775671037105963842817943505430294613910436218486468410244534159463417818522682019226076778199220960081711210158238157860589765694329621545787924204828892378967063699969933963165551232283983852745351277736684783665822022183054509332844770474093629001690308073105241037615423242593030406295301642324674414377239944444760674386316328490789899054807635695877279938064527312633924130359460649696659227531814023109681818961093185110049210900927424404998718368969331191642691739908864258461181539658994263298174517749038634152534226153846845246594029063402517584982679829815256696587469607971103064376164701290555190148916097289357503427460141875856046610114627549721190895635330169156947489922823264541337277368115684163371672542542397143804255236994944478210670602549652238510467393460712851244412057106287138338125807323055231403376111767799227373345478491760223953508686720719910803054447687968400940060834535002913527193684345004077773137348335884401926608036795254678676067364450715761503306269239759218527902186731396137763635695590854053886450017143930803668250850066318847717406975895751859946727579596624940515155336514294840320429674893829332060850157510126060697358170836296459713203363731132464158108569169605606107994302056632936147414934424902378262250882591779454013523355847814332399313887959691162273364850309016766648722264117148641598631776726698094819986390963451673849237581726246508817765764353917451279382915220023904313086606494320373106237103831892179148061224557122582510197141570137080422279832854608666629716041301823949355377449412720367747683214998575577374928661302061159467202105043591884746411563555268358658844141424400505350708927099649082912717749285907483795092868616607712916905999858305403338207382035371994636741925200247924411873936712470517215922443226228480427876144555914592246344839683453778348417716586481754902078192351664374470016529730630071926823691106668295116828310631598204862459897808742273229003053546049825494578331557965236073337922683864729609516223688828163309343930067272407848169967292261123588526463779289175330285073234141156120619982835961076041548325365628998021632784797661516357246251524686123567122903754304014697577146152436321232512582332342916835947632780064170149632764659724911353640525954818309458624327118315758158704551962176851047863151997655666600544782788665184615165420235085982011016332612670140168175321305828402745236487923348339409411128331789550685439297661180224790774586804872887010008903406884744705196506757521327655569145793021363506120047681167142698363068701799384554929642837846152605599031464628478585787883497371130917484640473708326262234531576675324913770398022971165919614610833499670800502841053702822261693086613117897324403428403691837869240272396629947107470414416297937401839110294889400249393306669940245556499351448265998241023318614520436470525152911155031630221622395211512619466165098924463035720925779802228509376586372081978747620977028530877601762095882088649935602836159530587914078146025473278491218221020818951447121348425087723403509856462548531706901129102867319094833664964050937560313747293988503374441293449125456370273447727430133583993465944649019405323236195145170744120010874769625984298396041689591043401970183499398622806109537508128906137887274689540739514620812859948467920806610512070745767407567479504686372280550615522804871340406382480221985653467994684903120216775006891729595555847681103196299403872345299754912243264255751003905824167392067859054568862018986329085418716834932860685335803816990083358439342477909001776898648529024605639200525115184281907460466224248100872790944660917976727467088241775330410712775280701938270760952268152123429591109658479121674108537939171018257626169559105044325307880897850004452145183389316261479179705055478677324503615000490088029202866707270888253491191357702110908622236308570668875919312843935823315894773540104886825838978993595674311188005705283741268649565602701367426198800819264504470849150417712405733407633012858389991448772709528722407499510260087016887911987680320789631787609146577787823490488457225729468349001348670360561486758757928679987181293297849710837577786473185606195745306941674874997084598714167324488317894222845333045228445600504670083752086222082398270395704474492885227198075815842387335869045410917703899786828415789691589575623560529682607697589770592877117702943605050244237542234792926179676690962346686203301146358469874295827783568943988266253323730364762758351619238909087088044461788588285931794197517453788190659717291831849378070502313164049415328405739220183570820622788973995057871471417643427263651394342186654257448890625795676356778504262003044985352782891476921386210216270512739542045956359635306296113635959575789254693516329813977740484941125307975267830650180227633075402262031862699486672645336512340172161049074317189600042549853228658906249082124179666270580715247705696427460556756057019834464524978365369576684876450999428291183913515286596023883802323031796031479219933508115576436688952166185894448988848225438630990871403228236785545400252030179023592077638086707558930418170969962363943198076071275469159778484631079366117173535233536410532120225791669407897351501253943284380069582266456997255033706890770343672503687500556766055793973836655310588323544644166010441132457002630188841466554445279359672475109872281972064038021744278130539135644720678594181964750558182535124770851025647230108066892716190724891466014163388376765245141645840536519129289239952602360498612817235754894248570225967749342983019840471406734065443313233652890574176810180786209323727536947665957028097848795347744169808077284604508639681013210554002101017043899659676185034113520703707263908423966502648613450095295481009610245082342497270411530042415037279685942828012812103227342576624091387940976812432880256373677677098701389862408614063909595788670128676748290344409236609126966854845469156118526678735462591287319558049023430216327929308723388930655106486908114379357152289561796865662683607875321904396681287642973643898073083559230027064910491707574234024404424454533647007086439208573277595105732826889954581130216431974896609051147169785818156787466245286112222726024996975223579241657246890310327554192076180897477985774225539934475768978744353981616154300533913855360391906014739385179340287774325709200062645796973236513179253340999834519494065568363365617368936742096747290492004590773455584393876232286534497370839794896204679524871482169826196802527330448212642295703201108852991456540625973438871435811512629206328037675766199907715621816827242998003173841988729745183074679513456064873446085345798681371309814438325617838014789301146700673390027496767265664818776750333750619519797467794677195891320059286308406801744729946829730997574426855595153561615891945556823472167800270540313432821585891832318184816091755666368051120226887233519682393312969029622308198653619372599507679684220837716967086681380780037964663167112296676422741313063428365150413227011851921291022095605553009932834680321827133002101911596632643586834559550653159968099974491631843449927218655012654339592630924930949855687771779016904909767927731117196516335572105410232739202429364291551193440350912914091519114413615557241276506814122603308016963719635720150012491115248619028867548294034351794964185836036239597664883245504714633903825712246354898541421160582521285946085432710538770858044460905352544376367877534084674895857380945441282704016422208963675805901267885750174662022971958073542490497930346314893007514392636853984551636722667903056673062616623607899601832201041830462175904782940941421478480987278465903793369791385184251306086071928681208975463855053811330494499292201206596159110507349819981215003537533884054701529887669866255718544077704706214720994191672447740945998111173540893291622193815749045814366830455909880290408969051444518659662661727399088466437814969650176505797213875062207295881422148530186009642856850265190634600383584458998466536189198473351636760247644181274968160359392421466373209237365800578495335128371654084319737334615420562658252469238450034146575446695245617320482241358835511404303438344500617616514908897923051719337224840453071566361912263016706960846227423225791456250261884416423823981315971804010231024581287700306654475629000869670623119189760093040587545395347875666539253402848272186834747480692506284611969381433744830724048350924190610911804053187910130163837006445247565421957800573417969206184128294936310765071003913646076194195166245132088835922790182603354567595915364731657537872976067728521252803663004525081760204194944188677327967280835781945337897272888686413208708859217067155578590985139879577804934825334585758832621500687096017393162082544015465617790234894324739563978548054227375830438329783434671879971535744401749645790966518171667929113227254016910081166283333459697985303464796816603970270329830441749314549303493076375551099352780868195546111172125142153823420447284842126801138647053123357130012220071526656937523037122529750057142205312119889412328594320185772173641006368644183449939111222094876918702296353276837457606566737248511552927259116905967016566933213256451256687487931588027828601524162540693749312661524562481615636649518588320050212041087479270244206272247731459788740378294394034697423694560101426709938918847211599883067305535245788910386978627618008798054634880396591579884558471212351576071218413790885884779040069961285110807810229533776850450995178905045769629761917974643219416005417878234980504793512389488026606520309942787121195011326515017494434041919184542139079386689186896761273807900273831467223522734970558213907901768867824181570411222908640552218490241439883870299721821530843923904207065871704059577117470178702126321491860763343022097362441013576536475327578128152462469504789100190672702589735018542188524676459501444102609787697519611255026421326572382135845903746209711473527746606833051062660215026152853387133161277941557349548418131152432079191677055305566708854282727779912453262169177541154361210790707015894635208065491024373421247350095207444928930957980379754119028817104028518189335824920905096035944531220987958502118195107906018814513030799266865873622917882385111314206452021545982170247208220161471830009977414724038851947962145495025765024363081700889021487269214248177957476838334332724336373338345978741840074661950671909743211526741258071395145373323555079203987141661885083286639257695510456242805104890754388916736071482962115195602472335955892318127240554709680442477589676740302622410644961200340987225506836176200784787862922435821123853951201597940386461993715135369447840034123185253917862965710957677448401563977818729856663936428643164135538790848264870740944655288370822444248020688430394519301178207535217163883781287194665562737441667539639862410862167126427066230436235734228931926714198514038411320554011058909353740956459067950713070478805576880068543735867831570421471165385324752616492287883899961499571074245366757376207204780001874367769907357728843640653050082639373984787978333775845221465485431269203247763466425522109144954809042518699780998091237734786536543776964068349949545659334998089129217073537715919833764167156283533964402943533067085073691249945959718900104322948026819666588175126597261583170341039318958072052222905768352743818213305541666636513229998702723772211997632408338435749802427206738445934912155980846415646441987232350238850776299649791618175644599778800807597052235682491878761330083510551763005110917161404138193897666217907122884944939537150456843445463388102010269951083238416777835537359345732295522636794970425247714669047645147697562772166694149111917378572199348642022554706532311121681512368334599434956961468395975948742320728599697209582936285971402714607033596764762317748495222812206975708620204415590081544395342663340069385713831066030130677260548720955737650784594301203381878045978912603794306055203158810091613910235834775344457660348832979679111763542837397025532499423388387252169764141151476816014538369503046186850072455250687483530121995931278622524479578966668460751196005636533151312230308568304366581195203430647060407583861754909478779651856794381623134746452688476568638828461423535778831092765062815765905812353679941625825675776291599462277295204344443439318890498813985535421969206701255129302437384354521393521982319452603398993189625509679970657921353431279839526312091349941259837242393531420291889587239536935721135288368862313643493516213638084968804109725801493557847515217400559348920400509977725540487572390584131721853226678627796513416933049420305899360467200492956072281770821900162217633523158856891832347101426780308227518894836379530801093745535985094685475467646845830188299049953137554095406067340605806056974027829894031025470700597006401224865717008241476839084665911822458193629347336833166577748182551862565591430824410642496575250228278963904249708106105454181363962149882329765631305835415331412993602532011527290528047389157595618696607664945886769537189042521885372110287869662769394211753284447226395362726334266737429118198011038111015433219533491781629427764958389797004737437546767296971746600092675105893603779773759057142457992075908437254156871079406359917308419784159299290196115848229934718831534008509205860645484751243952055597840183875900763593521649866037314027758088103460213613120583795290456158975356531914520906366579323505427163501314331513000742037360474929081140338441945170492675919090311264155368976410775793067077207373310736785360005285014768230310205920468355874717025030919741355868499022112956419832433748554031793088787199980244929704376990127400721340650879579993078881919505852227638593323714928493085120026325992239453382491543800278643289794648641216144036179901735873440359396429220011964928807582559528497756352816781352700198571053827031915971960039739516144169051537334331383390536854334602052036452440118762571661501596287930247927252365047470253078562322788924990929920468750863593483908636843178980105246793918710053276326300083660615214095282793304382880542961813857736716352818197854990662436339622650478948605447076237410713549941187950259055862062263694677863595029569858391327968195741824715219376631801245145971668014045210638355917314610892255617938522946498508819764044834942166944247128265287306717578176899290714225524694141653385038641595066606523189765661609552367961510243340666360902189366315620868102365919469765229808409026016892164268336629445459336199437018368834586710618443547752066839165166276158014545241333463169052494375823314742888311665531132685573887676682009223889825119218849040156128949687906883897262307919004870198921923470504482752427266229368737443451783437492717673119943776984773678645824768782528435492225436759051558285481058120587321974650433990263337628152777633944631286297806393761457714921151822076873522932710547492380186624073369587016414747262307922642707506187641951271811875063566442752842569028113009422953953602997198724199834033702604034633793541613586783821964199865551258364011152690389871806675465062344079768458394546161177161635851131576013808968724402503477841682802474576911395097999582722074134780160942100083273859922826140386986148924368666733221247396423889206862256230539427801886414515274241644687157300320560201914034916015977379207485040374602244641217289887186514620908480851641800619465397607971692361786614040914506872715069021878543704786910187932651381688471750049128043427738031880728414670713726352539478498575722794524571207197128268799765503204546059099280936507965208208134635138009812628456989863941343209772100870357625926599207840006309987716351309351238011744043246341934028951946838578871910009172139613553661123813287792426244689048586576011633138245071405048889906566635689312299689534576292573842039078346891729713630036094305122313814271798109561946973643482944674258166759300504612917988301250881536976347941779824292942830234584291711394254967898124204330676127828733218515625759016529217179842240768806234645059360921192932518327961771108479776787745605537789102139694513949319421840569229738501798132784626950835610203631226815499237010650659374004704779121884117138588705819962412806904794598492777596945367479731213905271901902995178052309769036293558495808831995083351316251701752284689188267432294505006423162858633098764853249581864519627026916520643679700786945699340265768578998872931966994886507940818040542749559896162694297011534031161291138321837526256229254098026193372647574260439120768973967350364548987305059145614567211385191011746247405416061351436231633455337102455577506692531875034624781206343214889910182122801164620307703354317489626435279984976750844645049658921755991966193896299749494731051818011482590858750284939518277332496697158084947196983722165866946616206422222501457879522446812655249675063307140534538354046296841339428415898917335702979797040054537041569248805201255945166757610713761645876842031997816047847891346203495929591140186835715908451968296276706804951015429663617876841701283801720307710139411510294226634711954268231670546027137221695584235585689894326720945825359753915633739013695751922946172078975333751518320079456829489471587305065813589205037496792341969130842589911106203888933499654150804838314467837949363081846190766488116782421922669705954356846458633497957228260440499088283532608019574562633052099636911630515111524595560587261828603808754253860889204635339592717284798417222057103257114341777940148400907116749166474754135583028604119883618401684710744682362257869648303011370739177851840119678469451370939658575460078590435272920870531739729867171516932769300203083818855013939360262094720671791220973925993572781646349415131644238463976701387340898873776877729920326990958548668858686915276924395172796962648839557790213298135857623382119712639595171927851107734038323190470466110909130953055737552477634486580053175426530310311182943770526054200818601494923520013077094401238205986826533300196691874209589488437931050092061596936546865056210625531954584133578123171854948918109221691693851979161500718712573952022431552780996632954679083864791630845172032436110869958504551304329461501613212746054148780970331445945286679478364505693232731365759643051436013805083594245813109468679075665258230680204326701806639376962191647042624407625148983568841267688218693044053542388179105412787660679697361471685912897333742234428027073776623059306050619572068710025374328886545725765591145755131993791838079512705479205878149308898493468082515279500941721015789080372257110784379103986838731781462588989259654427178277188424486805860312180453660060445814116701820982378883188941390965183997981314838083292901262298795565180227002219956603734303182621579988546804046593365499782881046624083439038294093551832083224888454579417669600451282425738559884291837292069098507712501463080865534798003233171748033523052570946060664936603515447918190037051856328490940791083380406292296139803049190401586881388569334188578383878578664219738337721268188592336153798599645426118063832291337347057214604079815650247014603224953297161300284481405330347089364437538413004856066596442984009191773748958443812254785966323852005474064492570760867926741376983745062434367689246876204784514080412905310217394388262465622657465530819914489138928022365802825022873326507712225010233313447129424445719122101049926504829125699951146639712203094872176591675838944274291954461313100893045235220313603299560256732068642386973337983143502088729210582434760342722945086963152011414897222258466092394395208327497278713073398824331874384085297137626424823719350244056042470785063274430965809171593848338697327850606002331588992080790404306186501170753437397873929773136803159047425590383436902023111366183917362411696505409361948633447569496446541907572920147304677126607766671746223662446687343826996741368290962209704809277765222697438797213346105669314516697919937844756503650443109526646983350764259490685512277129080764818113404223429846164562700927207812829498462520118027210563452260618904218420219460014280242555625550832342279942382525800774983091724865366255029802998249068468578706472990860908406858118931894200185261125985485248803475904197757265892035361645254115332407158154218547980733198580679171367785839766424922657640220715245674670382392016884725736798160472841589087403008687281144080639367050918940480904509315535144650556358026572262019387640252266165514999987003147068707654155051395829916627985818267832199359170287503605673295078659380448820999354304068518439408445460143756785969296099092440077259366037886006566976140730764834078856342692663252326393204537864783411321664790891546909865881969479988137490820154219593177064901457185091409471451922624268191243652329986910754140182318244241706923348655228720250917876242418943437178404372395556783538567301634507249991253661332956783221713573939156615111128370876589469390190363715537998039337851115320676255145936440756875733518539760826228664177241605779651632079297695023918183571226542613768167280402885551246582895112382957664077935507184826420782721008858536959096134144705558348482184843573692557856836336162452205460455284834135802945339609119424914325166136300601158210141404120906112755269242939282353446097528457541214313676701369795109445919699044999653434488816686240354935548791506460299234971266938575743684039767613740018600379006059859341596274618127918914912008303139364280784790866906210935302497724986016210141688015792942121485540872932441101472071554013193947110395708874043360940769961760897763806054723976365981796112938349315686738128029280081113127497864858904085446836409604704084143998146685989094744209422482850538343683976682474662225908298709477034337349089052916562601730889866701375823236481477619445194400418953894325054293406292288187307554560129195417187386946752683420560606629202114725317567992296169128724306005996024529121035735028123283536018237849189480983668666717589358807782080642582814516498737711009168353990866602156101564987404125618505907741645473797521264281602130542850485186345706442781273341486555513994680349899785605475159238807049633104939673049893220720682637429163872820966895660607705197779843254011009347838597044027313767970488606047716684772422161982696110781409490608533730855042237205126511729303575420861927601641426742925990805579888258594025558568947862258929650583741017252300133736590619256607252187774345176980022652623306791195978989157466557239322674065758784699379703156508793318611759451318861187559791292649602776141731065986674382102370874225834316417700068984199102428242082452723241315938844286403200926878675654946497664666978692575679806917709881279145573427009483441873659732122075094998714925193437581480603251823786358081074604473152873920224073558065598213451613580395322876434946105576156923450819897086401712057548319245968655261934925130327886572351294419102573981136226895098603012983597070073174575700298131787739859866367461717430679005218388362092566108293185393975659597966573646528701511024515008714618789713107527179123255170468570453645930360610283092588535617926259005964498521773459341887366699078187691137320922908736842321751435132825450012041617601267281622887705493480792051553964582300111255109017190224275217843217342260211664997088799606720982008911194793826652168371331670937310607285224128907207118777893082581669445531456177236144985138764119425662573587196176395837547030037648453024987882373518819001711401004869619557287420764884541996782549135570642671815448867602449627151282180261508529511825066284067237593488825100591387346089512754441779854451420089457242805444609008046821183636084747602162314825918445699254842031529133239156167121724046632762995371190056617721059644153295659089312316486233451564182939166536380141344949426099804439554537990907229309501209603115895073992866592170746574800597807948834657911579053643450004563316091396835881833989690719504174206864156769586814654650833817084900869350759888595644647155782447781493357856768167557908208868510080787734318814430140865787671556251258947843221382294212348165845517141981997476741231449111741866154703237627614273985141048591707123764558986983590545373454133843662082924797371456086178569932227069091352912622520569493069520884877418805748557979729309919320237554548831877427255222011222838002864499214938565079673893411805439740484544624704629319059418813904600720102431860832958643890974272726755993416601307299249360581150006719661529929577910183916956050888105135715389427888385251988116726094576587383506830199120912756701109320628660069236599683490205324175355608413324643286826746575751222282666889548545855574291560955827688611086406817752089787036282700758404878505346110012116739031070042503456312087270989112414404289651791361685473446469365196549306801146313391173074144794671115129327320382606027626841885234055654072180367082043980911851296959332992921927267442187454405101380201914520041907223609510142295719452352258861784387008689458712670902014552027850026507603831459041388112411948359606559997539829955829484523224585612173612034798076401450878545231616804589168790435943929763745858176198011097102191688793639527238916292090600013054212498813429628984375597792165262905803587303049384968538056293398124276595659359236405928266529682228704131621186851847001866025606019952743494651180019236159007054156207532183743785126057540142715221537145443994557015750529928407884531987135639958087244189407206433133267729613801906945448359394165297797784137027899518627374180476846345110689002441495206191679401640345113855957343859756687885230071525856473565315894958139310260848874308182275056585536013777526656467699214544939672904327557778283939838120706649604233280432497838985012017633717146290849905719996030138610709680163192720803370775287698977383620472379388676409128157752779108772205378265217038514988955852915176783623459874209669418368938061259126007376296138525443042826203735241932870922840058075563426265534579079610266710344097138451671922714796926902212557918114668883509188630332980403400949546506711819337212250969910304373063630368154273448252390799982057986634993471475951734082881886670411098340373396449184671731066731285542051930732505036426133613230962325611269445781022878464231607191880492286405714866375722432167719664602722333962752527292665111238991952903880560494236282132607072313375896952596957091238788024787894694280972478840564173396171921491323224226424456369761515683935014361262738345418974165438498081849531461910068538140038974080806833786589176516106972526146082123004908583122980912367174704483824703257671754881747874026979843605824971462626908288254535673194147701417608808206049260349313489965836324391852571542325554013793944862233716542835084370133972842825666746265935057050446181463971226719092909912536653909153042944723761848271901168232479672473890405675090738347674053064627840272887079967021462127155383332575239622241281522491889147477450301216637328134303846537837964635002326849324135488797834006346736150371442696008677233376094499692655653404847853343982971696725920440861881053032782368733215152107821829095361549706153569410802165472712358043852056405396412630446135038953372086786888622245036609644055737538773310459100594348725981891511066703566207170364335827944162744689507969195696345703781197907922648277532729128476829425812920189823793082307920646303464682894825693430415546307084357024961304158637482403163069632812212185250476001344102345416770454058872894155326588511708905356449246723757341451368527750135020731474435645164135138673029132883720785478515791780957421951602531876218793181513388369536462889733601209733742395728894778622211203322991019786184876299384177543748115839976405706043158892517210241171235145548646303542082528818869503008887746299111488439598073348718005699553446729824771519882626921629277842845002377109918186070570295476027419280405473824765076581473192224811297558348694750135839115858189926349822375682441280178705524710016054260164110193770548789418814802472453911013603098607155816400482611133673498732564296632472892799899536694129977602405634165089932120625159487804070360479082452494436821082834870798866390809542738425583245136642965965655390761929261475969573440513141261478649101817752802208763785373994843262830390245602809804488044756376927263575920631915021066822693580366228389737434758448124394358999798182577150063766120213655927357957922084590936837392362485609956196295119674514435588795486260813069128872610063727714199934635529231510471392268364309013830981260330599084339047136369735186487894518379202087468986938671188585845015005899697503379303159002064073695856912122693893977452464509003756001922811032369486611565457787673225550249688970802811071281629385622985619145641692257577291514826466459678513887878833250084820015350943497366822105260102350042722273967268014982698667654879446358924184579717790930146921850336622204129844769187580535153563058095426395437709047074697660144695536389804986492733908176882165708053449062843943829654256104345399341528639050176739192954334002512564179994726608906381435101630492123114587193084310176333408067231404181823170232452481345720015656166813968875907552717492074138066659253704537393656265801971204370757905930732608815779226824532601493457773128145330329976501635268688593369875373121913771882223921436326458399064820159706187944814541531050455539196128140205033777346077029580250138078617075383907015732856914342365002907637197380656047990505610360317453046474284647601468237482471790104213789303481205596309802954789610210697148422569953626404308106616575661681076181120232292095662847059768896343224854994671556330256527599371941966257937892710405754856470628433515138541265200468829116664838440298541718083959173635539606687872928988799870383144616606069847677993592940741596466965861556179988767857604878041745808271239125366881359004842879174494655547947086560652723746283628167083055902286049224122116076430111377860095449006644824053915900116504746050865963665665692601087462936660943007936999555930973910151530155173349137735034065378320416773253498885779809770945372596648278605107519860969128375309658220082429690854868889394658666511649912248745496555400110883271906716438973789534442260081308407992849991254924763033887846537242021705348185969590836035632369692526167685047417847935302437298235552816790696668861769599309782974784202127958846574288369725798441359072802501438607113810851250893312259956441020260776127471644330050093998832760245615267836618198342202785493008050913792531455344975502502455850114430473777713720038498762473898363256952790358866627398749773312215139250292666921993668412110473489860650246331571798012840600641053586402438061179959074871786746757081184118042468870648686058304572788522712363804640048646087665017427444988979096924751803830447173116676208481878014891014054594804016527753912452428844623900457586743506996722708196870454463290726271195373856667907335436845112549431582992952703449421653206292185283322920190255184858174857005921707237756937824402978955771227097274667023015332605385670267681885346472478982387419013614706560236971610061828941414938661051479088596966508831366550888211922861507874858741736737741202503553583726381056763744953793313414796996447647441755773557874412515164356317658557856266081702531277708095960052245942739508427323358721045027094117470663775557012122456326547349274686365231980074835469081856853560336040691701765810495675980287422246480351588712547294249282683725031601210302615079794345603319752184370417022201210565682260848680192673364498247445107342979880804032403625730379194857482751064123112867528618226064521131318587971219316555083742926023450986881832951580667244582938438102452349650876056048138133408488165629864061432192488147652585032217883296254080923142125399402295496598338949820015719785480348076909601399681625874456734588414584862304697011893918896594065112862910364043680295740898817155597505111671481327096558466212515389377994006279148138743642230313187520801228829523381921839532861915470236956262445202869218032569969529247393743572889683816428229821048941253777665288707473833524299457502857159824433107055815936918890826076528378062440705476842754760217661991125092639957996368035296241080183469120926782131455996374498204782410819885529007272704906763189153440118260268606060289301369328899099399018349913807197229129992716210671302591301191480830690114851987284370053393165396202650167004359857406175269059536554039715198381963630952872118427687364818589361324594990572793216627439118870855657803531459665722296990081060887423974167529119671415598257204084314474098420476883412547288041425714300589929135930608030461414985527539849924244644094777928582682984523450326467573806615779617398537659991979895037958403899959462896215210953909725449962237428243249102438793910101025455756892179168895012118107239445698326762084862646091071547651200317939192627865965293278550090143740235380637843760784616077122736140540177200761618291445990584710007349500459769830910947470741347064439140703628433122581586248823670473731040838499680596906883839163980504327738597768875062919113078109846614074562599984913316643546181862178415689908335235890547097118207992155950917542713987210338474768586223890686106457430803980851395410022965274767104473602701763260098381671946377573278217912540914574885306665307902242876083452049568307368903953858106832607313685395948661786777018814392022113701813431796764938447429923054670513180603446600862491195977758701201082646205754843180757930079616215716122636539432771493150983264937739513201386992620374123651200612484393782021657745098005680728624742472772751071586539972050222475580970060103153287667339449296065136097973868243633670596271418858460034028474543896213417979761338611036226970092861642971075961233446263074356115195937143566746043432853888461346446886538053659485285450363828166662636249432911004314370040884975161864477960154017757405287374711220203288596990412048605808384359460389505423380798181085971426425350969910112580798284726032247531957328265496044529823374701197151162094450450165102225963002073597509051773494931489741391430092547625260250183526707848598429692279217910726655902588409441850843232520060433675454033036499686501419596469685113266165198067889807357270886296328495162301640481517795717742291444031611090686670315881708352259439178487787612703256421037660540461114839955124032054525519033393085737641484271611456395821742181645966169282636436352020453042053688167266057816317885743706986765796534061915013883489937180533083026415591974471148360620044067753276134116904252824673235281142781593679331914329790160625299950948657981080565106422528533066985956144162340166736475013033228116160351896659187451464697479604162696084222882793723495464906710792137438345949804283681684223392096612241899835498576665304482840330379901222018309582036547869481564195250488904022071306553871748343723195650552407341752988085587663004114555673708163787824274693591943199257776769063710315639033056813995346434767686524405753271371900516871249271714748532000126644919824418440462190948417809065972466106052264957604552788516447430948628662634444751202464781839242653581159136413467483357854705816685062742409101868152669519933555551542396931098132228153138920113718125079318927159373391744630016858051787537587860969100387230985068499748855131341657121005628226448934820564363356250836106309841684745062594858547416923850513101546647345409511209548378133140558907981625012295487077943686564061267709549874561206832911587360580548422708097800250204291044436121030422053127738410954316014708195718089419214933432663087409963617596757579878959612684005959769449541380689175423801290363734353639668404110422259842774292522168522907815788049412617674953405654466784190654392452861109486573942892431876929808269346390828231291999869608207181390615505499332953575604151032837448949167964538159290451189132978545469499246525541631337244180257742454509786799648681587050409198285600629059524888873167860611594859392979912212159577609373168200921874525453007843502236372874053998300977818394844519254784619096416486354104107088377193753091415304026797742659647460985955272191262157129206644829979764578925953114948970734891468443652348295073066796690586451908794475835312140172984830488235737584591930853299516810447886464940855577333932762298047092082280408618629605014999847005400222044246383746698019627992653491189069284324635797810231828947669499851250881498588556860268860136695924938414759908912935617401337974439212656117686950553722068754230695994260490879231745230319206117221524356172684330049452606575564405726310753202709719234428011295684364802407226701159227973445754910801437070550896038066714467792667891745481931195810595412911817950486988149414411028869147722443196875119932776194729315159475376490835022213582772240097594901766422690597124371376461068476889176667790042834697972144245253404199721687555400135927531308633991043390908052790506233468986011316270113525284365402123182772958504427158130114573303709506722206946176044469862650749917270725678636689608968591833333351573504349196589666179173230174493606006839640679357903308944805158513467422356885042668782354467770139340668322709237409067450254810663219995020988485158817832768572283034784975837236691556725980269716558797285204345400702751545928814483257089605153994406424005849310848568384128427942196022527655761381446805957346979963593346177494405473364758285978847651241277100681694391532994423501475344475212652719323887199558018249862389160239975554821924650456096825648543331654801824008511778016123321247844119625390169124574755534665150423859102301732625077848947865861144152650895010515415959643764871843110580077121845159256407530289429748279508700483649342036271604022192873173414117686849677623944698110073737031960926294777699495816446907548887424429038384948465641456300096579032815421515215270955208550309578276423218121691994442111303089316005097565841449392966089251129795449887344609921035280250074685228876545938116288271438230644838152900065597863873850867203742620260222203773146850940970342794796389182872591410319257144750502214398625687320337513155580691680452973127860150084122301697491642865038350727608473629728771254129501391074101238497678250598995728373136608148350136131979185998807881689429580920016120413394184025464413711749459448531626028295948470667508890095331672782812759618009319399808102488329753958140188879906707343777729518838805889223318683730687292044804742081719718959853499910869630883726404514530886877173502677874615192271377022999364855515649160530790228702049750333121159514242031142235335976400686281114618977079181797564147330610184837008119797601496394511116697892626049495511224659607726926711485618397101244780352516649768227554537161872606341472446792248522064385494988363059839178816697362463727661165366916239287979754260320393356785293592703327293731042972161898200268266321008370917374530243796485661685964782402212463634963471699763432942488908790671447429002208073913882885923504920693157443902301779049040718496032021209514255050213075884464743798024568372700471781343723657175509760660144740622411006677400864853119184034503452866577912723775054536610909769255275615285891307954379447586017920419829123270791397029719755185998880700824080020790504692395396557219283153113520153205507763803849116337107532206974104184373510780930461306288322779683265492303842818847921336709554931819075587537090614084577150920560006473380071866589759470085339009705001223240343200983479803669631141884459125167220006965574436942915328237837035209189927791692731519459089453471218898273464879978637580162116044093231140675990086872483480720091050684148774137924902500424709407891498514232208886126834246313921257440066914135171959767179288524808020545231423652418806396177125663105419153695413145280876505890748904386749637328517536743235198342787242786741953061828962348805892069902493037665363842822767968792960260151744433506728351521063122195022314110806047632162569888493207269375515266709749219529700888421046773232901546789341195023844106286436059628442697480220621838177282872445759252200215677514853160013917779164859916038024504154113138229812516300148767357485489390147588117550965634404797447113428121982261353690837422072638306954843097031614760339228787164376479336406907783752847079811608984595113679371257125828130495294256898096389420818797310670361120436203265232290433028417149953809135916398085937001384200482562899082471561395376742117846283086583458695848096414083120209379809268340804296208345438754816428106467368919879538159096142048879663480029842522650130972597900952810577275329612929938961909355658078097351760796972081794064739860207582029061198111802675217063814623363358106512809451054378982866934918894776795295538090262717433556520453779893029035303297947854205841167233743006510052512838110712967839658611360253962720316734138535919168912893625148783880616347332522003330459209887355305463784209837308083388744448063383652756458105698293104463964977059479783376096284242474049861950764943330917288718851407708794686898705211322700052695150198864590224083676021015325942073337984336800221664779960312331495257234480959788929671796257153416672877148497897497883918615261717735606238953698760894281252173956898952369490854380277109641340346162797332645751501959784276998380654686283092341147860873429576730304332244811360042694216922974883395770970828267897750965563880467513651458987324857871266897268128416389288222389018905767267895640912629396867266594176613698350051628399322498623759478927348840373504288908885892477782952074793481783009411299943394006290911596605623088295405765129731992580891461984490023702802189205230818470450452687665125730377318675231655559382797314101824069005131305067705102942179780919840736456984921987720335291414514224770796608555177970583421523884377605993089326984246448331522786554947783392044879499521863415143346553107342093931856368927385606105658750056231461448859744869007116164202334307052191936405602501815099593525759948903094829397410103821519508263552497851790453435165475711293493947706919778108117214314229415442457696518191459096867650420660214574034634624347513578980503447874251974300350979831611766589474764137966468593957539120073343997964942008084990039875393055492478736848717653212672995946022201941647488948976841722175551625567764731752421990148966195986043186011662888679321236542517759080220929965018854372416315805975257405605096751197320373258172402856764190049394264638284041423870047133270743605439063142059294590867111651554934982764149952919418407795934243452020043790362607323067548255753564176740757066342210532542622317340841890919290934495480238118232560014799158239924555036780626103613129944253911174188052208424222116955560682836546859590715550319417346867926431225439720666398113503827783922898947829559131839806361037615907357288745388251561831624352512424816662854187822624209705054000662398803938048019667245002901426598168928225218633385162159135269306651029617775714679041881171310257757438282838863156893377407315549108545271241755215538484204442033348032704369052537479104583133939220639506055330370927153584647388559481219262420473761891929821662177527261364955809033354553975853359206990851666041087227773339775965440718206574728336862212788478406050172366561965690872779959971859057846472780308309488172798359117060852442368007627854721778472277714967018887215370566766946776325243573700059863332660187894432989200145252485703799179700375905992641018769765901247970130270072418632011389695135611083611453159713568780293888077803038188438570713987896694585070062709304601610956774925363982173807007415536446502871642838358531855712074218521512647449752210328629043129297754277964637577649982153814068200659495778755443986515870339825792340202984811557231872071148007969291101188304272877304787174287212129307437247471953386240788594268292768351013987010773916592734014347282169658828515203625220391669555478754972015596386426992167073524147972012797283906591349113056500214646564022631289021503220091450615958883147918487960252727150176970043846810485375846680238902672879176844942804027177758076205707809672369637139282590728036055770227700655058722970196670273770368998759262475898095081523826779946355727350162414149943951102143325163226145137308228332520041780163139846486289344831559747515242823637864988147249152558722815851472391041279338800554400886238929812747412071387921244234480892128834124318734786522169281317913597983792992145538069829287144407619857827929423123569890776578888878056105072644963220720940780251478894393993814901459029403320173123329738347562468539888491947822923844074004450923474639587156038706071734600355484945680232564910038583561147478492712467349379091367188683563186254704848938858568648206723076634169225523044139674162536453148292724625922784934133179391937665171425669092432168007241981453943899750063314739444648152956559569738765363204049804476807808361183408572281234982521124926921370436594823029124777114510455596716078271265594155321361604482259496734326822673753182588947781695830075721805903361430026475866899292874633123214246635203668209026924284865997501861843367165539306472832817436040457370676626796742364026108173420169310420173996442472838217044620971970011228084683824029357854576663231779703658312384077365184464144066708560374755894926833397736601079573549423444742292888461914129299432107892699497008544304657185440274372090269045088151015409566436227728681513689666057588941656380138036225045275612331946157984970550420075396736926094228224133000236323775810554097977020839970535988267962871082018177516124765463271746852337465502978225819165138646087554770131775935089761916993033511948392782045597088425408699860329760063145208547763474646920811809398356001171826136402238885703682434784114409327501994463026608739578937933237538244259413902869964444336552493189746167014816326586240931253082106852430928831989138174680572926528161247537521555680091666536655963389976486601865317436519845506619200831614808661026674961454395235871855061769078415283860611895804261213818244721836568829268812009288736962267773412900274810253398550230073553050512419972996098400663832276038256952871050985247192347343440224605896508667141314275914814140089080821414626398231130319267913679194393019864490763549080222196666394124472294886151035357779574940028729952587137838855695465180149538606727581604340675576834315282352118810943309667742401857630753733334414186249498749218445163713375387473308102305427069900587602209190894789340086588096325867971601734827205947863342827592977367033345091999401214407712879875991238452120877107913288327813476577940768723692103766448389659492961063067002150900121044400668082121105557444493459646771080445849175265150034903590277422779603934819172341480806240323485408383466535411423356720155180546142536746724437238525903480904957953484454156668704443102729351913037134403223630572873928424081488039770709766593292726417280743869588498620317026593360786123994759355328644485943970890846923977196770767008612101569808026357415141783261947159721303063205377388783453482904584806741152660896090057549422161149823589552717965725772966137080787486072713987991307911637450763268273437145354026576047140211728759979340461458392495903748673497969543140239730077091183427256622069410198131379870420123529345653016292887637290719253454924374472906086321156076094871710353694989607962230792120628201371974650257051669288736555974238083413395616517114289748619370521502013465456124208245987307005325447075198064177463447329250455237670881156182907550666561574023881860539611668889345721728541281448588999235142681771861809718277916352564675869426914838642546595834561157733489731664136030744395939599942893746316583807583691197780236850920919994746129092942628720356228823444041555267430010726943842779961390956656304785991850024885943106017115376928351360293351121405633023698112206958117894654500592197939082748209461965651898801591397630165666094555777570349150581600392134617555183928032961880228999983686162247416860366228843497883925653794202922342360085034359585418657554825139330496579378678912303525584701982057842967435006966214210441130709455532605793127811727914220767890545426971899601075161278212860996558895329984834397281677487336847936789739023666085246808727345223496754442260301614257304432309472546523301420590184091332943176170934991963611297575309212740798886979849321179916278768901348804987092563550786389591053135508471523557845099392345541157960998501426248875179462495654778039562094391874017717860481329293033674648445448634125887482013309418399302542754724303738354204806831514847750222052315600138939124682836521812162957382379018508093330986074020272674194721666780304261159856650071150450826594197983548721113033272945230006318500572667629458775734727815042677961283369712595836696229707624865731940376661107327317491048680703420276792766914579504009068185527801630829965319753161398160468483330474893900318600705223005465237730941153470268003050069146797711580975820939887714245882637723807729325692384870820714212125370625700260634900900942128349077819476186004827491449735170216406819483894342304317811100308447330354741912479621771752995094140944525932752185706084456922290694649162885654540015987083142626295306214550504701325122163512373566388888336715705688225620591640892088420493477574407352800341515064491128813864802066495396891661102246979005088575651825293034719299536635631634074496849676168983444237339608233009994147536474021215145254773948766323330240622944628589839440466063033630513099789578012000641022948896668973106309214859058601754890709444685262930682324391161420992638049642081389450491446700406050303929052546396526073249018588259953492166165096320647620361734888258670468880739805950466717922531927797170791357248000419918486781300387712483785617181880474856154415200704303986128139919544806733685612042062380698701535870783213139115431939547642555376342640898804864648170567313239691616825005617529070665709260383471603863620000402147181223237767387162179193891779047318268890908754396759365187002208177234508336290677314648451830805926205394436911438912185497558169517213550181479138319148787805231466091181185656120690949488026757933503584078760925983335426143821169744098465469268802068535112003842446993533875265283183692544583885147604508102055373790654001169726314350389952775974736745814555965339382101971960894060457294613071812592646005004817735430938166205607209531541952066399861665200329144219652574289641601411330259685098134104072313165671704544946277212212346022409039091803317334558099702510725283220037921850882912440518638654389625717470570606622469801047176878022560765856961943829226868801923511643565818297185582820614581660684949449327591546039924790872983580504064668579956345002442629234877019111131494306234553654489459524662430242969647851559932292135686766258519107877740995670898125521787763062074475811893686618995053113883507001908832804968064299612782463467546276571106697941681170958899289846772368877597565406404031799918037230468791069834934255949552687242346105342842655031428670092700810003236601269937604804369872159886819293543698310355285335668707740834103907216660659340167812697826255300178844072181676242090485619547690217388644461613499553650469741713077847446949605972178403029407990706803355164745346011083986447642599024303263337998919982939978225607573814896799437499274403079493534471216627310847807733392926348684223050793132487158567773593636040668225202805326280504752750303721526803069718918064277952774894145831536598609443660569890702524213701684196915574097953101859076537797024667433808981053803154205731746622646727003549027548604948310650698698754703985463896882072708434385675949185536753018353527596420922814460338639308073650808164720886333082572848813263164765710337094393182194658886417044439697170897891194616967026266589306306875672238352932144496433271072732635237207386811884830942150005853917424891440046845096318586957226608905811838502599061913490482585086009664294430076493391279999866668778671915696842350839837810123629038879068687827482867873203105235583569256584409174665835973332196057967518159261612077324458174824354745700935344542096395320292151853483889747717359521565321137779918470524457369311380822806040193469043728919481583910664312885759868338894336957955627828107847156434417763166650435610081420171202790631664060834641589093351783059687371885056021069643136792565002241386553728136776073526354462060830059187335788476541021035628117975356410471066279850720067447568668539988166423187748773335077104181943073869937911403495475710604958284287110186122214732790637845884195057856996376784591601971811996364587086045412546508862302505385039362579290897306562046074925283533306283215816104170178826064379556855280008886817688620477527224055436056809570289411284293066693626805717935532118522472149423837045896594609949930655887871467549293327786078804951112620090623109886346017299349960639158195923430322915595207962545664353510225213399295284402984354795397887173545884954371265928281603447881165218841028378873774086206870246760144409197251442747859342426974398287267854332950111357255456388040718632865232519895858465390463754967884247925446818873823995626279387614058467784666759344472727626384810787837511261466471772305339236839103299801095976767425680068018035689586765649673155819408153110483843303208496810964418963438316513244362912590885630259786019860444814239005134048181626348582265335989031863782430627072469013630424860935974393928763112654982050283786262910637565654975214482688649779857831146201083223805567159967068747686441479728360492145157039868169887382582683420822023910927459223358264303889745138346463999236273791763815266539140947599081455472699249014127986721919331398034769446091066650662234702486870500174370575556800212320736097544546404829453903887481919494358702189910779046284455187383485027072932880463942597386617519142213974166956595091306380828983311446081515334471676291004652906455117655589216994794687633504370140817250729123542775854287811367297493465728437827592374070591771696243240715989898537229299303588557416010811769714591225717973300010832207310707003528284020829786242289926700444749856302939606657382850556853947173241669876890675526807586025074248667124159322154672978061861920269192972506876468356796214290351393154177835309298150786158694665681837328458606698568576628708419109536566733835610930005066580008360605241608423737350014167295895055082457627365231686313506543008957391811455458720867644645716648157725451519220740960062443462016437051053814632562636702285895158263425103552007259532311031854057461264475532969205723751867429014719415887243790634216993090699654124332102617503167127882223713047074193946743752576407688345517727530952792462170212384948467031438422054645666176892333655359495457161273851008824643330374403373846162917366207146146835952706248671516849050947953380782856493293047055221736837326385002387993253743283057882862841477133753557867928211482895374248444182148593613571205997652307817265580211447787534187652747148449998035785748336465442345314285566100752544562732691711565730119391266575682269453509490992637562088874222346502301616805899013702933049107858777099515345048322516593889132263429897028777370974188388407998196010293091843291338442000205765477444720370701825793579236092943628412431117330015272113587191557347842946543666414150145045349539871486859250254239572000671451910162214832131950026807823292210770504935814508529942459057070918096991897382460981964987929247621293049207485734311160471291913872508985087222492518357079824568597947275713508906864332854300729492429687943184226441083455856909724116650407074087509926379458796567806565137477098221730561608210154149319520879989106077877970677450251965311779946753307511743161232417890712001728663640078084664865080077438588738837373109568207905442737938336459895014732715238242784482068469784794710646119536218259164926381210285339114580796692627035502810010718528484939921689205646943474032725714109753269919486454383616744904754732717076183322789885652528738521006163861208481281748910819800020942661638216926853405986886802142196383251504620304224919052028109280101776627801661438645945823986679274386521238988700727175542930413394870911891109496634916541175338152174191059508752605262672407556669293780936997768680881316210684632554143654991528793268242993050038077671160422358389352196215375888935109746970029043347265823382561003739304541347048537178739426112467574843501999011974295660397019288182532324056549256448915573438759522363886555068722017784700985571456459513361114505086280800918461926019399286890181516817217732354005142898703737147073839153120864875008821999348316955254449318445415336302801503004954432499855221691501328654244792727229233348641188130607583593858067207711210052967676176473396663617341263069749177725597283823007267051002760825311708396217554398420325834906032177790175768304858233312982307541656191813147491403804728318276845741766429801303235609680562939924598929010856261293617497356333170361398729718204402979952949322644410036824424065451272599808676355705585289679977108927094921147421945495451087781736775020619757882338643516303017252760782807137326129362376399163622100683137919630311851091655813161513151111877983098164955615866578645076045318760047366878037948812153378981933102844049830889827564809488342750999639454667589908556634035405262610325969865559028303930870256514304423710157234014907499028112462502970654955596292473998367142184034752677258669254806755890110210607656668449234930104609078313341948259101455271143668173995160547849458522344845100602620915903867694656965878789005851030890933683473645771622508710979426045677005130932445418971422953587770300127617762467051388422793623101986335372190523064094454622997288458188926430855067159702412526774492792894682802702866963564067400337848794442373462086746231608271026657320325189801664047634319129407022711009525097898346688442413649939958651539229502720520752920534423564538571138251533857969877711447517872667726475583388244710206683063697890019791600448200089747306717109592594684706001596538585275542532214524041310609691290422529373337495094512289932551141670674481313625269063108822834148087644838148073622577790866298097443051342076901784491710393506036202574642193077289635522530870402467673782073477732837045759819104604054018178259419615534041599928123767102434921320089939407036082599297213041204737039443297927322627613684576638914591874056704732637814551177264446634448142050352155970861949941189959864933397723775341598272363837566681536542391208864969569984679316557384287713409217692022664465115995368578512502873054003544328442748282508558572814555978161809014318996269795961068254724791643779493857222595687555635693408682506714957977522443952534380772831001936489950457614380654746804171945726042271044298338685056685182233685956384331310592445268185047471349246164340839859296499795443573849565773590900963405932263334600884809241027859595558251779413589319443144636637091248224363460255793755244359932723623984715573756060347640417261617277684812675973471191698646006931920037583923871905262688270114765810904161435743740821900830012670444224186245245026685039475511900139747794772491266278568751590193247359913138706254497059272207669012860091573037419795064795592297988806136509329086254311784911891374619963322776071340871371944826674171928797599648237190234530994083626292153774145025435842659263843173860879423846305207372022277862487147148824855567728820210231582817848394669011403689779408686463532971073336125687733497851138655035137082351755637461896207968653347634592037936288959492265398667820640433697133914573042065501750030920490903009064311822681702760705048723951722387983791273572274469902599904448222362182217080481670303554296869386130238617608253781258276496576075006398798504095760656987938193374369858397969562813114979666546207516653442044410127279352458566734120475640398692403331826889389126503270718231256648168316872075177445950189576162923466930083291470066332357105611912492487644680223986012491861113084845601145560116452263945857892256971213190648718828981196306428227282383765158881596277465726066960578050060562397527331648585155822516473127108313064232793307135091180674095338630259252543863269941362669481632353428803453310424053305293639823661027010671125987400797164497585834298080029313006141962000383535131526443596456347963759160477170690893634029366722796935073603812505704403648326062391429753277356579340474082512043031209196064748228560326194680576725128266400573051106265310724188985173761134490427325857317886009880235184155822247058167468670293654460518358186719231351594391122669285545982399327992690654713067024775345580353677898954565635188329374623648685960747155373031151968913077750618966759490263683135375246824062757068610301464281218555619734862351134897473853175650238307653844899918532099147266083510322084247124837901278140431266842420798836541186996368596371873867628047683140298569331256680681561929932192390145970067214891370937612303820290345429136811994581355939948947767033247249285418635552732721841622686475571379169317081691068042150290894760483358067861450132282868328643173446932891034659044947840882675378203516742220143028535435898829097234818288274428969873866557175887063592204630571789023537374719682527966031257882034049332111741342731442206489901487645456270690367023776450186579077879795404119997025426012185640111947453371818097903421689503595111637343112229511226062678583195870354616661176745684705006897060979630262823910636388501813044903947254124103443027986202206777936520809022358827177489981694857336995288796471995141642153662798487966590264481578215720179463980445345929697379787783141174324392475930314287512228140964423742173239475244802145385308320737042395983830306046380075129647529343020332259423259001724436443875124375982688306430943720655943454947818466310881148869096131082476282031869730418648824303262974959841091641807147635516141383275707863512740507216436112211963272659235373082377666899562806972541075533122115500808502863127522532816273156662890304334135051472885399956863104755707413507088782659325052547936062459684724384936592429248399802277809289819482730442165968792317914582309517591549155151093057554556153928829005719387090554413783832471672754124293263359119087022706749161208900131190771546998203262971309647823848099852129149064465734228526284439696641665895970416019258675668844749976280904571161106768501771778325412968278157127053757314590508599582365810507654911052311545082424252832160492275548502532170022830433330162777786975654088431520086545687404559874010419761795234522586572529909725872279612650728306948480481105584792679133614326946977031604176074099360216454173566356680535831357997432348557606564182179549884345112935707348471125629426982031270350904102960585691995578372196480174386193692368390776694087449535988244534606751838958935349805413554004641914073283403860508498969098494511286231612062277636237934964591805881958724657240220575975559547800033168605336532689727940462319218369809686755193178025520907773758994683984403351891528396835008248890263759637580024492383212824928480616836124365145688871106265873406920879089323771184634138683890684460850974462807760109274966548777769645235667464120246923695831258972990982294431391662964938616337165453673976665112650688065743920941509830943642643111635508277306855585343981422137535617523862816497299723957283230081191481823384112059666857582197335346732092395690656153037585192895247073833618015425558035241328505468035309897345906222455458686804337132218280555022319854974119444167444913169712712180527422336378406394378540095621332244787103362399389018023826806991969985237872515153928565330644570552841629025816248847346239705626435400192297678741756350803731699230355206958286934075468374524837077795789681893148610974650157835575235928639814699288668382854285581028666056209148336964758968363887087067303846459595974848893006267519389549321975461665932942912868506172372228942297364565629100472246189359613103853143735141423089180725537436603113363505831619282704264048299341788983041154649015800990202971714786775598614465287556486102393565646036395572236381684432679911054986056256987082281144395931182252672396395594217808249980598958974857074097021819460308082991203248116137864499409518764727479976578370842057343679320281378645581406712286461261857692930737250389852255408779431923159428645249135774969417501600920686401536462783404782973317964193818292679647021721550910348354191367441166477421224946160596964176410590544771410707655233227084805948265359922957726421437321294321652656910268288972876146626331677018956126347392071841480583578601659706609557435602521883063136042042649743973911745975827334092158738457774191305694661044410812405027170865037510516779455112591961795624871744557575538527496773280724986116479828337178492301248827364030352209074153661996214915063530276860237961116869188625514247618853182059002051259412202611022117935672653847233737512084736365852872532115727325501980763985124853462347009837565572256719755273148609265656026650824399056058880828607904362762842272390461106379163902776712214947406244048655434814933281975054652432653741385279899074964194689374581266869336084593567529583978823077208093654497899732718222517076671288889913564741525336600869264666540277505609456828649585121906169445325563997843231608934380873411573508939340803062669424924092348316877164338876597441558232853263079959306161592857591961268740006089806762789612351169761448315781750956109334044285651869887519909330167913710732640921716702139636218231847816759583777327976399396353416230754794953452738233604396270016964934693078178824147984200884851710617965446544149275341772762883500965306082253908829694714653770300501863956952847199966228374191613976362233515324914488725448400982218073540832195985523844810025690430512166165092725013132748985497270866015980455907198178974568145012713156701256617804810357799671745574959181095907235413450225461928066054592684587738734753845340389786549993473541095243906412703484464063589325834870766151792047939960676079000342979703486290112979629919801923327115056858492050725561977527323681974246733285251128681182519114443871454684396049851401856956570577855468478036159624458214025574894104851738368562977797601122998196870716221843567180094343855616103936751458286921694559502910483927670056525671487165998015466781758727623183438887475561662594894945842440248992574593998715577286168701807080541911048990196057136415842112749736587823323361590797677244819046468840170671321242646282923337540577259136850087145617252290047156531671553225678098715673875308311568769715453308759601718955082676268525211393746307333173932308022985821117631379976615038998294518584431558204915918919158862165075852016269387797516070364454414937085940794760510288211744939757932649742304720573571441075534094031411340771600063493859128162532862798170827577602362567528441413542554189529394172495815396686150654592236417324758173199467257395957926890894476603400271003299609352030487657484600413407369571172152404028644586768060681455444754910411405533925352199167180084606339038429169596996930846384997940383555057485151750409520599851302935261303963620112364102808854163868487234124464135132360547798098757531157764316763257226568269487731974742031493957297537922742375160219074815300515023067480799930290355637623494741149523048906631536531130446084433126583253627860553771695873685763367965594357871328423079192868580838375945832754867960136025147921607329677626428199504588566055074543028172585194348358273152768856897889152404273107660330187362977313613676308374311189542507190823531046455722246203483008008996967848970177555794169079920549036893138763075972585288359900112115098784069201307384512695254771905257669922525881105822089031233252594029784850060886092556385181101199460198809087100285190015112084172479271287267606655972294731396495349868945437190056198585299705036233694925608376478452740353624777081566655354930691675575696924139762364529799181938895916308029291922609366998304388815076160001498503670433886805642700017285009456260600823236921771621583654582634206466210271937943693832760194508667802703843579261049957222486861064405363194545398425934298811545511994290652382692527022450519208299163817229432087470616737389666546659849589588483809377778882263713749932921163332658953252383624502897062806317264270897110097341968888810169574090062570310871562811263332364568414182746618815806062520924871312080224118098837367721435042123103914662108146907768786735914051295535677691809156363794112446486950588160200126130264417876818032992605476553146908858379172208566172948374766889385735472969387570111740314940957650049109847622937427351363941893301253213745937146553068009363390234335603139726568635936624996169018289268584843986416130825786620722479667767756048297308797727032093836909189825066367756162395415067528969127689577858689447929573186832965978979134854558257216449234975137706137079905601069447735255338958387995997183693412999906124356803859825372603129346164376963638419725077792262720548006439914541091045275257071654531726931231424395996269801600221726225274254870440048411639721066854534239498739501364351250732359453778778176204515527434945312491638503924117512453886435859666709193273975455179982552284784193445612001304944221832002343922077059439985745600323592592304862304453081339915359467478289073636810861580640762351339727833563522003440929517543326096419431986106743944609238838988579439498328386333987367666078028773277753669570957137307224249024702526483184956100300827527549076950746707679300222589999060294824053232190269573421602194326669977442919885244522098147585552864082025230943030283815289734162940809059706543361016519282976549798470139627446724167420178402021518714655770535151431537483024965761807340103534231692262986520311167556199350938236129842983628151770360594731462443019209439466830243065847696981914493299677612467301285347031202431498906590140329268552437286006807817583228105757061224416823397033427486235334964047961143893596840401065457211435410048421099643109632252317741253365884521323575988075172449268797402608586400685518099827049772331796463002155600920166320534584372231905279822548371009692379551519106320720072299621624494298131658752393106707749568271368104903001438694218992380041440476337039789687411713215073192311268007716072142545805694977841402798274918525513833257134709523004339792682973699382571794593508774893790710913787420952167547362045926801507727387007459881660234447368208385788281969220795517616972515171619345489985720273846742600990220166275876253266768505618809808805432572448091487269454897021454228500693303083776913413146228963825760088743671075196516474643445785871847883458224669711742023564262177382164955985500952435918538583550396359740726644257203696716466221113400125476704586361794263950955507885786175377875810306973136017262446512039502073989837886553456065724036121059926237765014317319316897609631361038351961422300336921524331809063227168769779444610983288435566625953647409979478191222616697477237850651097739900963024210363519813693489303520765790724872461300699730877510952359118119672576709418023631700766513928635773634851646548512679409986989339981143009050175213997852919877133076138467861125968720960979978639350796516629697489331075845592699966015481763619396987903118583483411122789821069950300865275072579315878120104740095990119103754580520431508390425687591952425959502414542032395717741823447792781617040128474985548105354104436734390051196815000731873778881746394423991216219401159967207462253426294841016935956277445495867610627296025277974932436025350045425947152723833106133836010834805839023992246606739582280626724570271075350537991095374316461108839345619249378119747074470700910558074673621329970412499910665028448325346288394522143383621574110516673271119628639282409549591743282032008248177648070480824685545783668856390689230143972356453294705292650950038164792008290198576864790935097930422945255936901992221594469098228676195968829434712559294170582852908174395374602500013121590039495904277213045971775670752142402028409410358955969215448334853062579993346271146693559775535725728190839438660736269838658950013470027167192352600852564470719564224254287750156517404127519120178843396680101884435121051733930796631881677395316939030288004500634308841051907642979207859395628473256947182044300509045952023828665436570354786296212475099196261862797992789783220863999731243209810211016496488936795399068318344260878676336326971713913763970724802202541911241891840264361674527933885071058347419121218121066601061970798397568132702373767743937508434732659121279358315767623175032986193260437379986013778690255755776216888393131758957256868275093257272993757404121154448806617607690051769115542608999290605434091301029214714657348391219040638908702007262279457023173865323002356931128404715329410081121412192732512487908917837219504732744881417406633959716092860672899544617769620121845566181375311756072610822374411318347843023293703639132332724866199216452574149530333303079757464052935787066288624450759213036110688545390800521433953273303677814606637913203274361031009422172053315646518040252950812962339864007221051509043739910756008545664663190626854299908429966854477129934701294120731285844662334762559444151667065351734635513690853048398825376991985418442059851390807059847167006971828947113430684509997702502194889644206242668558614757605094923672833078468058005404027629990841636097752653946374373839400690411460606952640321043851190948970412134040594849557906255714209185559469857148380664985591623535473903580826074557204122118477839218015354407543814121560451871637070266624837039298209964782951833475086106173142526989320879883593323096095875279671917124360519932171194353616464444793660754513040096986863007546625480921774630992903002554020297952853882089856412309997031445359534644058678773737020625954615546881987224816167121235956892965963853688611552776137627052759370999404633578283933233427542903661610210978134304955071310515011637705742996799305368285797316923760237038530915669256787980068621368144020899492313589089030215550329332007746686719435117400970098105159108011028581877245788964831453091214418930500747821621723202203991554641736861685651773686047281478681454846832547883294463689713299623621510957015329805872288684559896865812280222237619455491832866297162238262305955424545862634540442778758669394185108891995982573218004875388565439052070124249463530958339660827023392411623384901857775468365839871711129573322753814244748436622824589394595765262820901871871075559440398824598181662556134604299979838293455075039510854033778624669812141791031578201304586856091698150103999011702101961175097987555223272023776490816551827842364282217261517155125896776361984490862353976849685616333290582617068661366769412581052163652129229899065530190700459470659559964722070514018484916706551822952675323172676544137740282354239555522837508925832586909955128148906779911535004696275564654334891514626215177997936127980574910948309661881286567277540511240583788499135258650338976120863340543277616297322340738487578924182758520268104709790654510482101227016391168347190684460198797952382803959371916385106000513147719740548330515271302474071172308311556820110196314652410402589948975682037690734973435759398065056562143728878217445219193618007689333936628989120644728592357981624246206888882748714329411488053789724082799576245906324720596114135973506809827715743847502913181572159156213707067306620211102405123263463149927926866893840487486288092961479143348496464605877766897433141116680400165116173096852892645227742818748168236037368351800997310448400784449820470653164863844251010367854220646631541336182576335346803327246396346117379757227485009508529486991229308553386471807498145163021970192164057870256321559776543697337937792878041318433435074601878369806538937524280893995483310865685505271601603213657692670373033840880655269239625261758408745873443507760872183830519280627625413587051254351830742182636792091778168853078812004175558882476768482568463259379965699212429238883231607439444612487247530140519626589673729707418015772480040612337460267951270276741016709769623844886025510228190592959982133965813576478351916038873912778520069385063594553472556867439300431306343210357092528596521646152351076730753033273057494664997627239489095908904669094622559599042217753868418714888099189023609644460454567375022368394286113297868789343628909381816756869503175769981527596110450041277982779341075930330624090229637148911562437114757013420840151554783874176285250407633301965305953625581425771214024624619903852162057341264501029711169666387501662275335291006502420237035167030366825385027395823890684599582363082247363627597758573668799086243829598030832786815790865652726941081163767876589443478777038287544590731188482279426593810296551300294656122932695415775669056296268384872972751305370141330309167538398147467506656731514849643107170203422561894911521705070110758770624866124961382608970072949937760178616300960317932414192645346395361866982990753539761740855657169574424880267545049392952254177078552627252859325160869423804863984102700435137336098698619267566353641326462701288931760487620577134293940296817797226036165734101591350460848726913350912167550377160770411438857909368502181619397385565752226468751794871373590151032914354088055721469293612126326547769375079327638464062424483625503976032773972037489103227026763798686267919088436651578543284055925314343796189802630249931413044772186340841315952301561319840830723791712504878741707047808915480012424363252209207121465457650022042372909892627453341434096197372854903520632021517606465344116260513728524837481081866435083928521911680810391489072302768408762438434657888602493938125082288802720066939148026176913984887367116208370976469558899938163734483105224562581270854237991087529383972896080374758250716570251828637566247568675136217413321024201211546606568631158887852421810915787022634925484590697701754668695620891752236694971879737377104611650876849096007336373135697832447173634726721185027649931286898114668874905300903775666260226452527169343829211772140776192945778873987918405847815757395997860239411699926888506042267104558384577313355411083014412196831975751965014107422153164728000477704697414395496368349864242736195732254097739487413567627391456934276781930577113876921034587596705238426378302292826512025117655075079908073882429630909604839847066705938567194668882757243293843852181739911757617059179545932489902971875855670791950316596802319447831363397825932499922830885080718179416431740541204720975652834342129040516929797214887290067985310519746268765286227905418887088477036094893659901321248096586263794992996100221723940933595167820001821384876068156893395027552080207388843879453020644091955438388219717244774423780555347917956479676996477466280625899206384550705923876187205830662964579261587216347375227246651960707545721741017513910221973759863078621655049657050472804702665390622920488417079751124842573221399639289630510555624301525083932472463814974244256036733372099905392900175714273747936542040804099727940835766572906770946347209331150444666738378976664724125697937495834328700829119313755437206750813926994013179278846959455270785076092856381962382688515751365640882431600512504907314827315908138189868445780264210118334610115699088013555752424768193786742142722105651915562314626230056606576643450030376131101804102650357011073557965934132316547460371425451797541480751246794266819837113555705747238837395771983759424837394337755831456605882155713349592085080905658402036582781491064107838282619016259803724130724940776893115696977982323785293582026578922251801437301965084906351628359293293109903202531678483725207495292283222779026901571287695140575941454128678251224480638817909474200637801216662254012511156229223806670000200526334338141537907418692800169575775936832183078171622125258157001943674383525339113825085311983135414716011452819531530725028812591184175216200093199673032676347806601034021836947451242360530148058154256371650956830985087309546172495156193643229543347319057731296319023491224819423803707098963361128207447849493518186648532084027915566599099734951671322767279117756488517839990709988559038805542726572333156322245950881526296269739687341298592999009572252774206286039809161360599620814610950945165862735908698743738318058919942759944295550651169551750496958546997024049334954735598519550141758191834867940427446166347463642751410015552703011190523127494660842633715038806690988636120225423723274245855376151942253379469269858829537391107216722574975756548968675063205349785375090476174832472805735653530527305015957385698217519061719879203287537226650734031491662929923605589313326817760111769002051318472331117761376711008471212213369227224157448044169735511850185954484157899701231811026576012603020528826298944638698147813525928565429251738526859164895397957772289492353492001897430347703807819636988176026172214269902511130879442256724171116262260332289819154317362578409674490679170941102885397329690221388236333237616903627847904610190187188028334092973672825195932544946938732761496624187557585212668621355858692986331894675645847033356180716568203392772527480979955498636645447144319688708250161581171450486409417307373224317320059266467740695741649384758370183043362862058646612390752115671274739424611429256501275790227942479120083168229429001639754876538523355131560161662622394740062726228177007161375522548730588561179908538883462621883169630036950960031260513941938701612271660234762677372876711577164694785517010614066883015122378985921383240115107221643535938312793011123777007050218652881418233428991343906579894872506825412255502879587121572384940962025620982942298356197938123436369743730715780843937340457369819551791599416058256916498281928055203869926189067440021309759213619971347498667318928895103203824573433988747226410529162215535995165057006798037924722445078934112879818064801941016764302021274732033306125956275590385933739648526841652382369417280233668989650052624144026193546594323391478118018441783960468554109698516749551318834741553830311770152332467470240734548190002678306251408010724769878764893161310510031417831368818837886898684692410838312433706218949745819162621398859735357271598305167362104822744160285575364673573125812501963348902671526039809146272491498993956885014721597703669788285025610805566315905527488160767741707659393738174216684820652673760485825459227661900106318529140031194985012512429360246370542398689153149224346261197078173491756903397362077199675262056245072090748850619403528675646809788607131561807368840965866594979396463498178662507850922695655344252222821062258995225578297734421647481613726901333055439652121424339369871555888506419599550103882581180671733079645774031324369255537074228187386026722166464980244858835347472946519989661423590939003087374858233836964753591625735690111957506283265055943753201534468471975196068571564723823092191512656189554852950132297584588062734716994110575362437572667510392124728806679810472381862856081384195580976098653569917671718811066907901950579124804427247656079453487484603145118382100453571687281020620652072655821662496828848326834552874556546260947426952397854683649125718023797991494827177331778138327370804653031117382765409387047938007774416894254446855169319396829870972670824396581341209595905636204410287066878774481733895358561511366712671589789421723615993992673894147333524293339157425836396963173590700001198214314204085641069062210148647177979350663852365194024628543325981257674027932157640218146753824173882333218672173151114707912686739605340887582603940681316995978713732282424082363037214201869369896243459086276999862614174345753289336397808097249047957203979377137575112198453200716544181159274038716065793874937544183519329745164769761377625577181767173098592095070055532833020773423504706123704923311298087402245714455772463768761389697708925403815629359432314671896580643807664436513821130355618414159226720979766759917775228792160895669792234993492978510673066429670239305537154676119874872986616955659705132473953651821733882953080022437315090437583024017671648797189957857805645599025151271163595808633928415965630375017171655594898222194982472234636342213844269518494291798992496789025561582594326964393353724901036552168360515260575882613071319955390511809922523799344321316835915238939081779282344710699897008722559183187202035095737507292363612517484449433318756947242473897908211182521536181652632567381623524059460322239660051304575785273356387396288777114211687969534300724413160541620151260424356417291365839980038960080147892787746242584350972797356108288692387841290930905488373628424846859622853090109935540441866625485153336339411822378349006197040627913564778492471085568664523111840029461187202661399965299792769161860954768870156243890475988832070702123577713550721808538249566278709784350202349184725929510612705171028733897986237070939698874974104701898672632680240162358035112021699767975309493996707494613376798011984460969705925087362593429293960906061582789317597828748714125527494311862265910292172822063593486834210131192735326270593689231292989809452448007309923030756765566017466566120465186200474966970906176118950683333741375307244784342243602585832208237045115520985417423440488632892937545544725655462504205497751943319043047866600454641588877352148719840262253201832092900858076994099346583189478234973514576222722393749384404899763532235212729540750652388487947196730414165675001834152053422077911540129539048466073413397404749538704858533714636326102733472351087815949158126625958337889462256345450567709694608490651544814201117836869428591856014509237389228062120987206313112741911627919845455410895863887158109891151707355629451824724743418495409489043549566514944777612763837509135244592149813901022650536800470752792473206845332920404085333027428861485753075551482172765716281426875249557581922582990259344870730333549105527127816980871179003156718667647547794179819724531128623511936450300928409336767477642849670079774575095365374396122946722567019059449561169424685896816005251087233964431468244794183445431517810715602902161495969156304204824080345082181060637835159118510114866662532069038307652802680081483777732568925955369079301810818730894260749407983828048005826214678448677374732484552726939326927938528717113194882836255802571220798463554375756453639351602111257442336814779605858057511917273016722485415301140545061550815464286758115366699249550363489189320129832862966343126033121983245887656412512621466374500345768518834537654588220582935920068173584037475131809449688840442145623888131173472605991446644775518039329119759773227830138392287026011575850984592423635239698998059317061460262968618830718274250315225033321146949764662704786976050756406874781306239259972362991209059956553382123180947676084693221707546578056827139736520996787052269454911964060600223652644060450769736160933770681793412458487158795621151260811274789904455968568949440958868497898985523479082039054380554542848687585267380844324528281490921881712859170798955850382585780502221951067212388107046189019966557938062968627211099078312383161392321035239029343260633914870267288090030226996168222568497950317883796740336184767781414233749747342745011303747718074751243371788266443620470323109244632115560090136118380699797823443908027972720211261214060827732537334430336730435917633242580942354632670355370678484202697395441030355231839414670809762020053354636878574184378168013987493293169988299116425839510740083686149607660410383883886809667365900427369959665610680789023511447179233814466791260667436953847799450293963376477145976193440943675747269235692760330416820034941031054752138162116382862181973246644528549742762339711236367606789599947120580453666779230903030038104455425947654593753050591273066355958002354463888909626079878739232434465144974343446265304866634895538813316150497090487820944503325963174652286947879125711560680393411475532706324591269609070838678819135477078724560798000844852817503700390482493576259978696796359331879206221081333882127128597995463120437958091771660613642924604282533009629873270971912154708550284298719079473190549750919730861022875345178898525413476066004856891633521960236294139691330921932821414717650070345213453194898044466752626137330026146121044435671324317429763033985623776436664518524619945913235017598229532242745036669337709493878874876292566278726577494172570735148543361040540645279394540763755732805091346986875529474930080340984733499955642976672239207834507284662790446109771280057655365859337208599101372559132432615268979200969382647839552928860723324295482579131184676938073601539221774337958058429939306980143447337452986284081219882909320705660635641977848066120394447190992692937730661806622445094300738262579823495003017432910737732121430130324276483452257908973805675283820060411337563935989911853854216620608972042900076105255884036546130744883752350242466620856403017269579545238463705029016722647252994008614698470438334568095628471847289303679689280926199194470366482535493463837877776016258234349748224663052266884275344625513365327517818391984277987377217504154339620724103135295462543000831198270632855517182785707370271716938592659159614289743941217561511095728029210423362383255959849304310049746600595708410079365934640313126492314185415767455319784287257417499797334130944804401154820877998910456329655414159691412111586734589885425611630614452922166135833533076436144900903505105862511205612028742470684928384707281303433619782745392582783137405000616905783335443142009350158695057985688339654867555930350763461072824430536542962246174586806702182107089204251252116518105290478555325027068086410949624741496324112788388811867173137659595022144330438450249135478205923797588750743224910077876350292213070846812367633825963386377836657024698248969828683298537548178096213633540089731697696186553786138205436086220385803188826559237857271349946643848008224439649061468831218741762112083001668900188681862265823147922459179555420279679139588719992431677146098562757233025517825697027315933678006226750234191295907374766958039872752568533926091052942492365476643021399352911625605940755480158747719527320653945315247434903409506763786142392449828532664220150393924770733052850753221311935167129298346819860976394808877831892378206395705183567235249001658680298924522269874753432815849014220583873530997511942247966471233766546720331731800140450580417655395544970781056875907349965277044628380108815016244045314917928456229563138511543941237632543323111223866543628173725103935980658762420233384451271572340745364473798723180856789312338283116282245979714903700570178085731147301722226239305210396245398248499806573346772307574573331708040990611665880717964067292272206218026855885848988219487189153254815241935415711722369921592964887648522926909975121002133575151115899692539124489706550961906686038587917068452785671423011077012721354573695581326862169420169926680739244592587737287426496538707088813707314712326069889615130912011096204829110230863537378033957596010369408276543493978801929743967105263437461959429589670407542438076881466744874894744905376608391644275635940884297424749455441511027143934163409529670638171180474193099136404833256960334150467298252903414429751555151034554782059810771142374413332295520443314532628242493737258771053380599988643887285578148586334193808912230434577797587000061759130460991052471700391588229015923356001455553462755370125220864732918824268245177241414243867022853254293178644543145846849839762719310056823483688489504775166357898552447673267155705230386360528807371682380385376403298021940465746489196547526895614471036282203836171530844946470437525173252212971273709076654966141147068418998714231120475617189247027246273802397694907405609342984559263279021014897438778471881104576510087696097628958878908000571301362412203508567468135138189385351293174768578949978366961010126491063945234699480887867893291838330238090747087661247626508108056189391226749705968936847378680574561961970066146433312354347663652157698624885424682452050428991220201964720361212044269121916748165928747491640505494245520103039289320353358330832719498052186488894868818216376606020328303869357276001045104558619277269687926655118825543764767259527917089334017591890984278268779331555773728265226972533166547507833978182629433495915699650242318747483848666555910594344074837671553260580542927638436130804516402242294641850973472636856046222864541172354703547426679261009470055647970168540979155015688687463440662979574574262716191196565787887520115285523087295106275294071275036013302207753661074983363361626506399295753080580295309665929649138916602069271259858323137462273245345956890607638592198915577305867679741961185272556083598039208531831721326838891932560626442950600705483044080709592819741012541136944559806347321484752785037911415404991284531303404651545235641726628692509415595733119043658441570965887348193493089172460826529460433973009071475129356395108729114866275076337062673495561752213836083300003534303847895275995486919215057569991566547402945615365783326240405767201634874695477806122442598355294256417705722750616883240965562128155164659052275659860910122333095658286265965817233761776527052929544332592107245370355446198142279875190682360950156279006952252745963335618153258246910541437828236225880508241168804547392941886130689786213962654885978065597699464041727860576723318077601866745285693309730905507904569524567786767027174296407712735411481282512652182526751656189613209387135407032978539584278999517391929506937041056043293631508194252497666523903308972318574279729796713964982106813464315585227186003645695628172232156004804641437098808660205802417546377265589835997140162828273755000044008682455901240631296433380860586453437986566207374232868192324812897114094829819098831471160257744698714655497090772119885729698691017368794066819302741611425336682763881490697670998285731144907832469684053146037424091119512779758801590153854350368143184126981009747502865930434844776761804439479137037050076393905101755224613782218981159804825379396195418789561878560386774446572240936515897758412127584985929716864607838785714084149988894642215347694674250389219174553482460151453442146686558315909789861451945296055142858560177686740449832824969168896553014147324537747146931666048993590554873401310304019927041744437659034988669906624627652554816117778232753433923292615181381866491078406560367828270238999065191536311139916068739894150612116575852857851668210001893447885303948278675554790255593917584106841318532748162040887347946234791763107156503178943184150211989337939489439242237456238423986055001289748945106125852981999098423277137011190153078491172140770948582165176465275489524153560654287816345165962358140982645613410350428886898971678005637250011611546389821757369025449794735154622346791192807628675332134966317727851851643278841254126792394977931997968854936177338342913828909445124570963623341999686094067884880294494216510677436930971988230367255750415211941206533341911415218238918141782674854661871988081052074221387109342681722759130915444017499310812846221855884658177380638348495143098965216271733734856014756291999232745425823043949502787591741564384589325226137083038512760806907396089796238205014470094176022498225873820828769047387739915408462319777755457813365801868774623865145837334077785185778634594825885278026207309819818916082269670803902004563868005796459332497126675912391933828494125417362161637469029141306411008210853070186249577199732584830591117771942607142958776554008340582664712723705914770012618024392072829777446538171594429319094350380048677960038119959482215023388012166735375271438914374875214276490630820670368881021338684810552234634960787017952332767785531965207608744141470504944532401336734127402284082166498214575081356880702684473459946410936484539572877833639206136846312493408122301633950048203099926447658398691457770321397755523865974926984113005137766695951010026143341209348166831906467349350946835115254510719513427754459614162765664839392112724853267753807508136627741245146927691063092348817659407010250766215521170250550178740910881647427540012716484554609296808549192666297086287977735574172596474951398989559432927760738618433120805454626289966227986027394279908044944182259328102455385644733372898785888788096635820261097431969276212867041108873620644784621384070226866217477966113255350522802551642462177403411201667256175307778466124949308199145594422434140789574705969499672587534202183483171696189926038503799881485505257197222936892930840132856793731672947574306726886681396020828098574281929085716655159300280004409769471651901678709389303365392248246594516140843412487514150164201769914120328507232548187000516797184620252445011518572133894809300986261158034347698081699253365046628470547144444940718048813059430662572602240127542684886268647456039731030046892238459943880409452453688630318198148928496766631514665797673054348902831328046594577355718279745640430941705307835975938879449014513922998335682964604231164031230310954676432529359320220778554465379647931168155582076989207197569772000508475684813512320576690346422300187962879650459398213770591453544916043499676948617946536534129712717379676853355590141108337243059308547172038826367034940850222169652290864945392036575601918612431368494119422481164785392552731777030019647263873376448014953983917036951114612428828571587977200706037899096958911534758238741706043053282701358965205643619239855216931088926307575753614068885550725998575734713917323581364869407735886060484495003259077482595110754390043354813837517534249631202769069407181027050515958552753522808821639665301907366134496280634638270054761137284395641823828240800476559819748768137581206856317179981574334779975911345008198180009330431310738915960903548740176855168321924145945417177428564060866991741713813586876728206392199588372041851177815326652670443655449499167868433103211310608386884010448850572626293321436313108468868332855872523812577386271613285388912412694537268255304979928994672805923353385904673392522062905596161169536870789459521997877714119759956499118643826986553235457597404800378959135047351747881184353770534745812489863638887523894476426181035097089274783650058582158626987039213097528296143645451898596166107499650635322255779758094751083592455760279973883240866451928940067815745838718305499039583180679193997609039733246032553765081613151188847220821512973072230075183058419026451853163448543029204271635179807840978482088896410891539465215161280568708422369512262765854050675826737822973853838108556125123468051811766962470066150958535810200731519332909615412775341539765318426825242238864348965221812003931538916423213246919527556089913479224356414679831669924440195966631706916229906726641164120759070344283859651174634995421771307951085551704100479235323677697306566074380396474270686920576069597007395256072856866489393652440291776123849391771997480784087742503326872135541592565994195866228795599179480442335501560627916139753359468531016388558163960592265361233655049277555375557833785001732508241833435025690328475955997592602879450387044430347116603914884260650666206189429774818850357861938902527386365030673617629273772256014754746295603980057218493267998740163658945754125686557363880740517247366291160563566612134026592292705718779201538738353037123646364932992307241124252924315039228494844489443305668235636760728449247333606962347587825456768286125352388931625368182484180271149731509527230808140665434899433862679016980960617499735979131166686393140872510576380985295803574766146443011759577575530647806333110639064161252808008245087891114377139446620210111521560528608382351261677068469324756902672255315137080504922462451801662781045868132531063113962032358083397699528463810738721625863570808584847489513300349530382658336757159708262198237720120349975127900471730012720410854455063845192601536050224588718544067996972077186520778266783156747597412758853883774567291422087958496486703192043309582668813065550547078752533897783911434467494261769152758142505674807056072401566260969353836412442672089629132944146581289622827875526823350850965853962826827936898594595487754845848348121187845211208397864732934420803517313298682392608654295382172189608614787733605550588853603848269398854412780883732914765232240822370603445229934895817518143413421311989777730597548458076942512377367010948605858147156421938569346780701914661741509514718278244187633371211468975129984218704693365081071113765851174670665305508187209654178115158258752218445666178499676955534438449056762706468418475273779541086693708255173261404229948511626124880170557827819723469604555066300808167281970598576362984906129810066926633669125407750179688721530950143134564717615224284381298889066117748099994349130898160828072993922524188849587561443611809554333442714230018762289223486473245930749471819058790850028043543919466091865204325641038959430079023831188182107379826766758237057800241417430024036449243259298263365733150897532871492501885083225105738751894709804663432722372306662324355380064642808292443169921972320247018345011549574739581663446469980526644869539611604868580254665823191718009378403962119398219020207258019893427706499602206958789458348732216298085111671395398676359445873400212828387884671005896022508405234282918524834108614759167038036611616956535230627450753081004155501409580492781142336839840170330501920494197633824761099219733207604683542258677736095945143912493995110008306850310065715740027040921696592035270835171195956793745572793055257073390198311533052530457058993350817984484522497176182433518702165880916792831743499732166175003001259776708684642789057934568225099619736637813342976331403762354659976506077990088003011097149302831152350815149266805322101274706162161773908986705425044083006520892834519206601566032139438692105891504087895126832335500090769821950520532380851535330359028187588453706229352657130596962006266924035533401245107027213578520397423914318910681107124239201949595512508022307140148918844923592144128527149607397758812195425284275773782877398357111809906163663825499762076104505474226432632717173894297776680259742241952100573467337936648656389744484976808394851969125368733007658531852400983746936022066418780897399038566573027080371806040399740514011368022588225102828195577950963256621529447021557767596922078920626240682530947769645936206488005608094250681080338866054485261793138314102177788546327515778284950145781304321168770776146236751090691924407343144151397216636638826568814103949587677861659893122529551519048364333365351835045643442063072218966712121674689194109925542773300472171155989335418373328467804583105908494597835200804888655822742501080675476201801048575670871239467056227624397502848476772689754502358147408465856414694562098582202992161427218939192365192155599683219255526630869294820511296822628594299433104505723531948544198154069125493836040015852400062204761827746869365220826936350923005560239147635779330154084175518832808821887958711750451861788052487353333233771905893602995561509264694163528300630662944757201605547075631421190877793286835906507330647471941793579990192908582884862428658357118331862489228228033926366819681484801257819622094453888514319041730109671118949018434839314577862053666506693328149949369826002793711503987852837142585058894260139138912624478541267460668731880695202526982814052090820104064365652570721513719622190524348916440681599662569002068308777901126501796518866194184919326026360627752028859323265456604575382580855339181304797338464523816277724955987591827613872470216840578681779226031490023335200598344926603931450303846973280488320171718856511925699760099190083001895618493780783689572380671802810085865146714185900531307275978997270959346180300185489048039216053588290036697622648344802131375655064485393007786382517619529275229030193484772435260421345388238337533869470382060764790219531365235416777364135733913374651117888578789016158540987533022602387994571186111559492669348386773502256456795373352768272400202534277869184927714514602676916068270769284016564274380073820950435312429519883781690420877085006482918859660537418004029187847072822873762066895232043454769009469026567092529452760934980905572893097364278137181178259739130174376804414719678707611340793562401115637803219117578728252882450339373594021164763575954662719663918965293013016389707907344236366839884625418066392301550960521546978265407700882749727035106503375154239449356819280581741299877320633330089000324695628130812094686451489267373792128455157683795660872073507207540844646033243714827397927082560751036822036022447072929336137881871149612751282807811233761191680299755421276560109259300942155956931105844693273545947436958375857559865685984046403849560890085643879600207244494173130678886776824466267872621226134249383597000478017553691642374468759324315731661893906288697754416335793065808282971411336671502593255022351140187086596763594728644375322606371400123265407043017696912578539689105613917599687190656476889604376621182112940628124747026707723547625563081247349806803610568810541901574742495202988200394496857788352969259696513619873414056051657713512665163239197649402727953447969146580073986813870148775142835125932224941510746334574242943445419496552488100600795594008675728608144092151938897602952966515662926701406151743542909001156035204150266467193417255660339493641058635821737554318506417030246851019294942913101353492273206795650745499750521842864208152093587497844958963845141701734328560160092952509513208202887188281473691473321661847777374888065926338762460571811069454241470044941611803168595252831609866620256594871473454701353860987836439290762845344318804379175672764602293942535180853372769310204180413434194392080279508288036548510548414308138781161383148724775853347889842387827113658606239105984991882241815207118318509948814093566499692090604762606414886581746788546081836321844413505313214100011796390545677748809784544298758789789093932834804032149263471410035291916007207870245417848595573956281706992606736739146168011264504555756060671277907266296427802431148121579973730492288331926453483282711271315865381567644215267235069639850333625940186392022037043792887856532223454804802562801875032452337341028956653815100767051040565085037677822879631966047939238770886965340511413410081518541443821084704232874294051042775627123556780209309267178540240900277101339683218522650192796718362875981952910486342511499365302791871777004926918426741898145937801210976927104032362255153593987548312540816644102842167070940182586409148884490018177138344725871353432796528863878187945912157267863700943410703855503557656740048538561310725567832901886772579374993901028229192815460953266532237909051092560190202329500627287400258319343545161318691695764700316458444077570663355650449176559683496211904475723872928345861783858790931155575051839116324556774805530502226875636640111963655075660332276562498101650346281181411398460995381442653160602475351478419269166239443818555650453844486073499462383306227321773844285785442307138294672923043837399716152019500139911621579026145446089676560418721592763875866292363670081032442793005857301022779882256432172762314702334606349078419798525806884399387049209146910861922291042814847214785488488698066151479389481215295995567295996670620187515216715658894213479899415357215605572209427757045268435656632556814369794482850240714614643986819314109897112438080788897842197256756081648315292171131050880370609322698346692541920791550422524517567123568674738242413613248447947135015203551364508141149383216585321215999476275560894425768943948100087061908218486117648721883261242088894581287623406262501239858948455171175309318430611533879568944756572750954671085535008848277657546611505809112567634344542803848918738438002331762485374066846804902454992886988801072379177205252450843103472354402319401443508902424386596932214708490949873891576726522933130375685044915764823735238027560058677924810221741274012386488293199503885007379427400454342160123663194436619170135579172150930291930411247328170978721053915875236540832229261440399960518556335223028480098242670926521802726635390401912673501903016224130348109819471266698083926578104105758815470784328190730135879004160472736108587344443232495628752977684664909511874282566965950754965813166242162686515633578401896101059748100363376099051069633840922606621329408436163525328143310719740403442590920512492062270181324199681386846551639244276545583531363743461082419891112575137407265818847835884576961405576288008104200179917964431636438161389045919140859517945174222395403031623304114458040903007229759729617779578847609630211217673897851473036982845797716162427387219650773067127336239690989769301631242214069542141490946353773634965328944773891989030319096088611337731780886824758689893431981555801338078013617089867322498860782208416277666663032287114682239745231458804070714615612770140796297746123252042893940996189844716164647748464271545162073964297392291530812553559023201321412061347347316309346860722602774270373772725291314702802471863213927476504065335115188773043200958371773951791737722943874886978154489831554926674008588781933853002372894030035148942472837499367268355788077843965450679057705329539557894319579914795734689246261949685985948708807602760485443909807588442927877689034825134886087568966524230130383317898192706168056326022020838599915702291476464003992795151670380689625983579564972590194907722493734472351485142154410208957873343927766682820528850758618559230317308964810690870977114084712269105289526685743925190049088328933024644851911162101057951110931155496203505056121373793183829059848730628431339849285120059290406338940907319321240299689100190281722096262717925847839376447274540256236973554007809703579933485361133004858934678970019820105501746878291808434545133030506801743375077026237630613877268863500313735794519081627625521230984582559030044215851746220816893186134112265377044985892087049235895602593631026049791822290011523643885183069008052928269587997891734750627692160804162119252369976525043642480282645916012380642024238839335758513683992545979222399119941730233097128418668563383269231240456713650091524200264880608300434572424940231471051130018217463797217885942651657912215716108749107427163569841630729818873802905142099731847623589844584365730027627154789186677539238058673025931803214109701184556295703879205089184307764904213268108525299520949223180315581009958026974249287488821540089851728789710444283959397426115556187025088944541902144283265717549829148917557601292204794433921050284709157123337083982433235330955598547250689212347819234847220627242424500342007356564369662795842098429263808799561074614174281611693561468564989125020284683667442811818920782526477450347599319771077111908576474758499661987581624547688164365485477089542497212482978481655771797277615875929300273131391030162265893707134625414592657374269170683041604215571933229988715595264044697805274260612584856064113951808790895436027993887411152028463276257130564643555773271903196181716839900973221026438762352975288961718058055332040852042686001629942642526085075318699192456745240705456137564963491926793412292304766870077964234241837174103384272011002052800784051972261314791741538827756725365339232311558254374506981737432251694651506286022327352886970649773596995929072660324523569177282304532179199146891136552234448116231616084313116984617643472632418696648848837817207660171237752502552368935125303886512529600817353788462954117747030989388014220784351670838418596831206418884694238846443416844880055892779015965804096016674287544525757968724699720751650212795170103244633966770223962433605617331802556773756541309154160668937467241024003525651931305064529769760664230886528379244953722778199937620814526118442782276709789317492446872642761817456545043063369810735008516228481666015304861093835487659790367611210109624840620809052241865301334305104320563917955022813988615595640241783823864704056479899879819106052932411443529952642861998998116046423718958032692676117425539335296349398953553976976900207678845693545712061065734890233442065750821974160515189434136801555837635923062407266993922207829767402949037784850299773465320175903416097117973085672784195010368993366666310142430889681762292081453687479454599507556620014228185113188453454914419386820257407709174183749269399444076449666520819678862007694425140795353446555620813388585875463885846869061519176659578925424024483217082272930856057895577823691934399226151173565703577558434860223325710427221628899908945375532130068256666308734261495881836698836312561785819599200688759084444022811650461122370943863940327491511379290658993103535758940274760111728483051497744549217686316658147910549279170554089884459941180048430033951280639617372291741532295704695367712547582295674678818473629301084074265593686811053176222886894034332191659779212654246021881154664642296807038619629060512163986818493003454930003532275840338207876960194416897906597375445556151751948068398718101820741485743894417681109470519447389067212308602171081730409416726162427816208934883392120674334570363643068601154537764656691720399912194118698358467902248077304527708009707290098502077924391859425215287581626319156131061819077197482301690426232632991231713672450536613584333876371116709681187122920622524670349428678369102601096788411545803078992302187689449661354451620507719921974040190614830776735932876448872630145258375715468957332533947754660073376372127474320148528291800828003945612588857833000410772801548016190079317830350090090128238400758763912844218389017298543101741282526152556780236860455526439463254762805290290768667058120489591794828506446658903059687794340164108400532804161329577173678195940872479966093404083505221003232445895182682176941318783116318111454035825909706868111865173412674511833495999564528625907531905926124343030855537671890535002581973823462409682472401303744667808849101541649494467068874907823296694740305215780525970722877182345490184278039007739681817059169531599043705360254218829884295764439058759576458339614531534651703205414397544333891407874610764844658070182776244120001315776991315443726667710106825078384498168307968616691627323877659226621456648079256693035559519166303435154058912197782750112915322154627481170536192680984394293484133849555979430423951297930345908130467035131617663613659996083167371498296558236789041960956512061200482379312539898731737213128716024238897442114015636309698882364514836419212438222708129580431549447849694045878466151474970441625726760319209537166723939552598594164631847188341378221847216750572715739232796407160653682264890199059994243633846628790971217636091792254739925174906630843306696925838261601858305769779362236773450555175715177821294163271013135586031728407072881460438858760883925622776353811848331999148453080337292737887316931669922382599673633124869874662163630388276661855467535753639582098983530312356827790299963556603203054840663205374642733850305094882876914167615299922454334098127199609336021637521565299320938152932362839331283575065659059238382672814636752215256087583077974547813372246156254547624795544094954314499726976225033725588283270430981236791949392381128323636009081501568686242008668573206937723862717187154501459394700294769465682615448667977345631261028348167489430019841077001230107835387515563896799732549136783656025401774381509754661993066164164331469771452736372367370047895911070099645614299940706792837130449045581634684560350789929890014672452229441001363467849407503573734532592265660827831005095994582365848213901419679521241032738074617623239644786482666218585774443887803261253696200106703979286960290623390629280348118294359074683305594352805285549540443280069376408060456387570278342298120113832113449581432569595529547931848545504695981438866019447029941399081125864058052369612758658420255643619753356835219123929629711809278771308074238877923373375030561246248658725402782430825000484468336653962827501375223288086069051694044223783532203483385824981797535555534788357336420071365623416772657132238534718089826927781580631466896386020412431573212904863946022499902854148097024817307581956431218046405279991061326895308057316299950298135542851256093364725478574877431965539624725903901764059615829594733982694774780771629566559840237674320153241615284644346233018924042665604349270394177838285922401496715552234057936300526520083601283529176086674525348154410522684067396231660996770876390502948751006775520023696260400412528088096615610544827567992486700935793941054113713595037499941609979954086496228505159485886538773841406073837011081733422851944379416130248742343324211873227761066788008157754739848877644104918448873832415985632916266044806159682283940937810317300757437072160671044778435091779739217629486541941254213843345033879582205513467557729150127962274793597289364055188292446576037666780596493004545514356036826273318622789174571457727267289697908362231839591623509761854089357819054006224929266847101073669993086959779242618210217120805519877880710443118337924616121964509698346541447301363887865891200887779019900804192379118646466745889107383602533984502158350941447447663709794548460328890743098957065768544806189399154332273596511397563998677770074443074229537648053685656474172911365183134523748224457205610839309846740118844927321921987078393639829928548572694014560364064203246557578143956270833597462314804886204872959271494113607385085600168958625000584455910433196096687947227582133617398380260189573201119122106400660739318264764034136714299687569796375750979014452621983557001814347861711013363554757529068631428059622422843438853477791159864734927304937328854679590308270867083258707860302904814191209414968954475496040795843420236817661361042089068836679792688186417584455670942155338159136801196638069866962609568391978576906968345399284692625159097957991210871793732812848516195232217086722302437989490196883242278189846120377842044781778283566646420566689163016645238624940794534393770512721077984678379665532661702623179349007810369861834355211309439956967819231549683348470461529209728719908308735939491180565681491019476954044022311650680707936423850920514341635698136469894889642734427819529745646686915432947394693026575270076341650890281139350348121162025297352301363345538028442526982665739367283771612164791411840476978157793088996381189482328391643362373349111020101480560491433265087526223342092308711198289140484063060818081411775843143219869440947475674306767124434095046886217572811233368730285264574974787204745064415285479062751278883347556255834654045859178571102122249621587490343905877560036927253343792625441549887137129148399927890988321104499068245984544644182782641590686571923211740348312660478316302930303871416666816394676843561794468290795909233386971681559830152520784092642115907324714119037827247401604158268656675681373048700469035414198671468262313386827015898326323010744717362326773039961573585173986055256951824303241280179672474306193702885607830916272381309013735265717622338325083876457716386420154684710894685162179395529832234149490470346782183977174894188040345756181370706502843034627733761520068189615663777456421351890269805409895317858892090874084860728008643583060353363271166877790788897771963915241230559398439881161945794008593610195446235565477533775708873851748585941193337521090741208840433429584202091443491891020299017917785492173704135146640752723022453366191137330615916715956474425714140429847254270022667759836524526832708336425629861022514175325025604741641243754919349843755837022620206280634933111072853816149994837243843557747113756996377200152204290240967043400777597268847847116760445694600391489569537372525112782521619285671765624090632584932841507541520601850603660495261669873960447859964288831304537208651585243011486313056275843823591205526001681894289242833399486411615584167035772635154921031616096202211403929261712666427543409920802851096644827225114783832236236488819145095743982033826103815134110714556483681322883375265143198507992292561602069227241157922093279327147467719909763999683937100031819227238715501797574620095860276398817147368531436309449811052806539285785291248884704211784315842939075220517035270517259608902740634577759933610161411335005296847068485325954225007966479050687998316048322966766460154028124600661094057099371737890084705270096821729138363996807053545178058053463531444299957761920618470416773869474590597128065710460101603314139096210874520332560308531636256863530606879282588715041045559521626290113824538338022293689107351290150196574825070605936740806392099892416312657010153095951498617831553288690358844227186591789214012411517555021534467703352233743761856501441479947116364439572491506956567948950336185743914818176312077812948029545621813498515929683407141017327395065319473498285476614296459203364660483241371602712818988858734582020735328610049342908010544253976613232573279278823660943173275587887429846509585204923442919504799982998160357791296768385809494032322031386698135231374990116937392211675205472908610335642643733220871323478637950220361296776983230467664700196495768649081943878935417859969423349189326456507519185330820298904457007098174431992610842724165870184982369843088540577498920548671414339410258454299794312694483684353595771356717770306149443321076221536424089710047153006907785460208135831423428797560338456286101755932916747117482068496426998108583970051371895620384165397041980999602504448105391257022704414497337441898391080904938161509451318851532984964948888237182905370233616964862477679892075654540299239601291109609010042199406833610628571498402768182272394280023090436368063854791211628716346884395598543693030164629582384175608920369967649766087937708220805560633119441207495029519692803091240108588506341832647415241437985503329830903758386698012615393103093414834579550327989651827879754211835378848940164008514016931195570594847027242928785675656270603190368169033957924952481882903471883411994767987625331689465715944922570382878805657420863313470944898356061924801307403379941353773499652241622353606859634002947456811629369680759324185585429057373724564970860747651365444639076057927418445568892842111980662023075345963272511021823904722783397332974895350847518743524619745105416795600015644842057640764978944559182505855912275271615631585887498320046553928988194118161081414428259658000503397929464467785449208329655884761474689928490894433136146351950358132569871196860308729091508450204849595726954231979083011570089727885338236731241350089742337484282470683503434074168857869589808507291629574770062454124122291342387762365641938574524679027402734142125483060223198913068800957715424086326757160076006424548817170815122833867956450249641212822696271148648856456703098412215489795332180332498960218865751144056748075070003082129799622352815003518255484897501781933824034118198203919398436820781823838405269402017636215597736731606900689290151593190084857031348088388592336643968459335735264478912541053492849864633197816767085185857710671758989391963327925262006020357779186792187287436487416127311176360370676905575041875625706831961688647686267256277743232567731002547974732522681452172149834162045546088482368268926195484897735552865298406956983384348179126838453259208919551504730000254813266626086286032998294823516005009578905906353570114653141600840842226523484652017754100698473629590315414643610957614686515085651647886349938252775588186609939759814055696601939775041970701485293449880525679431571687018326773329243614854914810437169217750380527950716110795407964126743914124560890391939302910240679314705891208605573724094694226504783923944575389735089765143513676049509618558910676577519209922898349792261358886118781087458837738664482106621518600671265782989761227291503527680365365304126171579842266123140371062594753904741467782721353509910867387070462924634099851603406467643249947415199894150523575385906332011865753016154429307339871334034875252060542017580360556425739322401479268517607778484449696369317963816914773432454870574094813574525909252007499115445420445687376025938451388594801023421420193644067353363895645967527719500270284617706972463175916344341495324355391340197506214752133307594276863079499210538784819888064024710177842769552190824524565933827371750855875238824757981614954374745044082423511365122293444372869700640845910807447144684442791763003174369895630753699149612546160084674531569533230404250120853265457509569798161182870067168117802225039524636994201716011611458752999023078832825125959435711387608356271986742384584807974730052052475449677371381823554234687534628122120086462057097040429197659091921694235061894152436142607085710480873177324679497690938887110200447772901800883233049047599525717542581664078118084684745863041205544687414527197193608896009172216719347042605026218944198953986548572016146661395729306530303591247325956616664481620206056499614852451720458808433830335623014637417601940857680431180712404417781834844890893363749120594001894389484747665299263926935927368944139900078775206025165065041954953253966454987484388426210133218320462414563732378990874357871968294662766996543304193061741934769971948698346682305220381608284353715736407439193259320063966550631444374762105322750022556953173624443143594199519751549199415170174684244197999300700255456383935855311973825179492040759045817524013767671954109262190216585894906304041674883966232115598166852126590892664952135345034538312459079671037182439546608405302685528100286180590997320296153804587811858669477797944328843309830497557020358298266962590798525257421372931802707263034680698831485713542237543517158484466493061945294026685283578710824321530245434565750158885839677296316339738401384743732101325209770185960491465393218547231485933651761656980322345735436267501774924821838640908216686152757021074675575353698382122145467257728093820472531611370374227512935321949728324272867414850297463186467620660739644142219015851392330161137484563022064610510514735441647563253515764767202781364575553778084259145266192068845002841194058464508249034341740469244427774567517788194761751029170478593821418721759463149027206799028519380236876922877913510194976216453612203692763342801073555197691212807390458270454548004210495062340951168474150067700312265303275823937859306211709457514166469204818118241544670598262998924013236527767381703133578312874631246580713510282787514239994150228557512536937188406963649783373195236226806334009888127025785951704532355994730992279300745754664398791790780324490014777430531858065933619806466217735690979272581238042981823199907586438850571865777093489482172467258449620172136306316128261389985245009005924647868359820170976427757459144840233158415693702737553976131171695590429459823854165027576771915641566665716383203429722278362011041058225505425716858117182992973840608619999019618471333822315618945404038046767514984412075810233693838232062378541593375453571228411594380797420817632722518186442646470763246205756708409751982074937675721621288266840329816632316497492913753198039287776274033080432377965302821869128754696832296859118770895661849342632270219844648906297894467816725891385006551560430770264795795397832487304696268157550617510781873738920703346176051721146461922968964206223021464323880322762435393391651133549189775248074735459005835174320403341339943936394404365529128979658806936886634973799263593184528445659681329013095354299443051905278656470807833125769036804419911170281756483868477844674458158830205224573189031508183164518823959881012677841009659806568897390544070545179239038863884286561261452857756534426420282996187541252268156457059529856373415074724000457218665761106533872085589211193816547288415919092884074588082853579601694654763538717885771334427226191461468961454759270126757691014893631679980403255577443148906705952726147507560962977825713849372096515307604391775203374874437323122736873681818828050034074414146816661343347017763023843679372202259294788748046977241120798053403370899605160752962021185030555168609514432426695530009484299329833658271458420893651197716801878702606922166807115965190277507894279985832139407381263715540582422838901811969438527007371378247867738268495104827407026369341238020547129449830459734786811585895031700902080625890799235747075724136013270288925288174754870658315063746757805734982293801298822919204934521745790376395834916916401778763201527393438534884768945650159510155146179493411690134646999480137938312536808576299247609221988560479478652563824778137873907021470572214160054154866304339266243294618970122879781933109219259897129888425409123342175740279586313446810957396285465330744477872115899753751156042671740053987121640967185472887643080323156757112845116220989720192566222880962498966704542288452058608549265754401373825989361082583452864105232463812191469859909485771529398775019598702031067313878247495300305257192385497472280594523986256731215482062611423966745953877858455383568721301536508903449283335001749945620173639009368872042751893933615398343682431320176508668460303101105184067458459464896583624594119164393795134343251676490402699843860334892763861365719171902589880197327184414718473189534757153123198033827637687981521450342748034189327385678293335579117862302623896745317631133202880333596420359970817275571037372642303823960726111817674570067275662372944509806401574444748582097196607686189229215818951478625390302717004145319493153401859648790642693205655098732109089321059437393113017643226338558083353633000621017101767481110832626710101630074708739418632854876793973361634258643891194626014492795405401708772640420655567627767522243467933150532443467761865565293741192630688939524349258267927336606846450479935056902190510697135759916861021794703082720951317925830125454168815047900090140874723558201473100674336753029310538078801185055351832534878235996237437228109952042753496628524441897360504649062132914805586779195689559374166938074046075817700555450524439594917871989320940143316219556065665011826888700515656589042252485638242263529551021709275977649683038570448614119216821371902069681575087707719290889046854259186015644389498389129958660952680537023445634402529743454412373827097528757632894805214887461934822893659146534021508325090081030838642749176551567283710460012716739735256823464151652062002793082420618961455153908081564931210637818026641621367911090972861526378452977178596035162816244358267274838128007464668211626261402808793733043531444533112324566535912029924280110682827612737893990735412576137604613308841786785753090953919391943845117094817686367062075231710067207568242177912511517134762474845479517550640161438358660799483771917628660448575260014661624831214580377115502249227792980245817652611404020863416571191714726350707124529894735530252005140128363049410911362921222657578047412530644259770716915722387921384350705236744419051329304736198224664164875339945774148217785381860835050016437199647790538597917820573693686161010394997465034674705315731725784852410434738878733484017467966935199251694810242959181866772077529761208893625994272204361145076408334138275015074490150032914791947947386901778485753479531902533384855829839101117891956708677167161119506160752524703961696782339758607920198119691504103517906677608096466684943905382742752313104542949959640692069886507547696517262209889435761039785944706776660517984042150709773315118166774302008591537893712266872604835006226715512029004617308074944340138170392938450507317381749523987476394839774327101286717857755047001628264892310926461235009999865832962719526221476698726838929415699921703462222547403918853432469991543314144197472949741522851389792221474277615737024615406913338770543184884511871416128091615137549480629108894823502781278129569700233037888670979870391041709356872860046032175625504511778727951590735820254770012573222518752151325440438055960218108827519912799460083869629194661153068714230956228256215972260677162003673101963302527727230255910159984419765881964122999209704798952578578346768809210207100746616455860574972336367229110688618910946473600767484485250759196935661580052898262295100527201679667508913531752755874142912879340580526294117713177678629024128594342802035534397546687138104985522546932624968686290833474538951409554445067170182423217747742260139238564617897221552738472588310291542303578841378133620729404696199843059781083379551221020674705073045722084266552019962099936306169928974990957542707085953374545874743195040848565046239942778951605163725617363691605669217360196054518002788563291172570144961036928989022595106917501741852278787880862463742383559414739850803834922070021515703664397878524305156177689670752697648392763352492936757320020790550392106030160261432812841119437019857305722620383678948807601868967942346340607813464844399231511181357468351314053789742248196680658620607413177952798279706299385040552819895342164354747141396134995478856301073554203057550384313447703600028542190540135620877000778759264981729864268910197796188998842514614948128644852165252066931008154477726270948539779530842392821402538702573692820836991118541073806225165994638744676006722785932851044322326626690438479189261186403246528278241982279129880721767720768073964834241149603090866702519622418606172542856594736332230871418393562603044434423909844023574590514496216093246883269248982560780096382524871997972093432134445404560617907725328054540813058397877368372294525533792923218238955544384929947166535034454548038367297188197300751505073646875818881170615437706464543827162192091852810735442825996517850259617032598458541813959738343425410544288957078995345215165073902630484719230635538867964925808007537379663256792638692940203436209124279370124222951595500877221785615420198644956731694501540894352634863376781286353196579089133052333227806137689598230203008799348202568455156610870379349471323474930722700421549704929693421239824986538937926186920404910074357016417048918833520672471178107639076537262055650289905338396040683870484409371594901262116609204625845665585307765525886066682095855321315165435530241620039496704395875114177864313731277182880788553602486365262826474802343124590560541601139530349840767972676720357362336633504214391139440005489659033869728074580649987088052745468979598408455868832611815788756171303004773063941289910902065713398798532063373941915944694822189495489922471571099283689639192699354703234760461396414678809139400837076587164739647394677867657869325701016439012675087768810753714235053584957696688883431325703130292039807192772775002234294796520273036981971042659317378970441116181886878484074127063701466935962115078604642486697419071932419288230115506811315772329611919052132412541131906196981649634096889198058616717832607639210552905090522608143379549512919654731598754815529685017173331831475425974109984303776994316316877576652970752648650644512981343244672940202394776083881960078460464865218984150432758955183567898933944316160086214591390965090599427386605347058784788698667184379471985779436257715702272999815085178577032685182208784969830213603616925234694897368575687316056961100509917941858869355797790940411533708149179630543122071968220634506872060767822116615472518435381230173043557947667036482859751437519665411620911845372940576019459901615427863276933594105505269041451573133198636531234208199777332086154358898777241143256934047098161506220146712809239682978309351120241873145210159648954144918493019464354982208916214641855812691575753184327329659475871369774174839277592516982505208751215809825660080792356860787249349350279273589561207967433334472933090343600148445196229703077233645918567807834359221987877173735039235553503324476442670510045611691891695370966734696578878900627343200764558846508440523473356004542043421053442492466984826575918142573955928637033694834904503966788763688941019552819248699909545907738011934366247266945884684159987223528381292078736299212860460034652983902915948464632150036832934611621855459640872019854493652344184463814515164170037621582212442404890703609849374403708310517898475341848064410554696020566809025426419266380295086587227724183550209966007122314781956052881382783624117779495878964670652993893783754110767569945658575328572864345293368394532903287227421708891537024525270284470616788433335158656582709763903019460225471893766705524430525250905530603067106012913388273555490528815335869868693219433707211159718810099856085412478305450648028535155290622541513808649109207603316302177602061251183348515938170473250237837643724027658047658499594900889591455619746478947355219448850593251064855034225330223517372667919005798949555310782512664995299588090591376026860892038386274943275331716965533413158716779813173204089807559702502424184536460913001575576951622486399045912925905679805098828349536469602258382478368427633684842708950522050484371369845512470573168053963048772474497055978310077642972209332659562108288082040573190984628635497691869621400824751202564798755773527381754757699743706152547041472903558859694848510969291426910955852851297084988350565348274596187872694423303272567774974796489150813582114256874491910475686955873053447435308152462626725238235772172563548944868142811218414923807651776340073522337757892728025136127777040139394721271303463902805156375574774072088873000606288461419293651392893984348747479059336189388140192810294455241388823625466745059343387982969905282948262633798605531007630457815188705732729305722609874513876372353553905637194831208795693920082264949890494362747764438768394397174223767913815664114484982922600148088397762492251318598162489840124729693880639553263339521331772758754230802236832995061212013986070865488741408853546381875467316678790242787100829772931407377203369546535079816469214382810783227866078958004374389041543121850170760694976342342327924338565854134896289055226873021374106797548961050318079892508090780018800204202403872563455744082828611708927189489338808500606486694162800627342825253678017562773502489945335683102432779437632218942256976010078496434664009080241033208060298990443607835949897448505973673992997434156347124314292585377774103375579014239321800119746036115735485747588619418743974125017335122932811788789328753932731896090982785243164305800329217027964866230657070726114773205526210009698963929174872598762962018107748984244018065741482508393964145414393411236234014365501857706282286640276496324486361001934438987993071307249957411148623704065790861295771531053905873488623903143029861519377753213320878976024397525283455885834107578294755036799744533375979794479544459559765630845779236596511487617523902191666594192989722947399641552496997307586290289908601577875612007191653818388748923995537270003369733092112291331492590074552684125262129212373134050269907581563639185708217374257111565720714419599068304042997512504165298067731360520007147471896306572433113384547247448306521240338196527476496666159311609613034875865823762363070096644061646833555345877266010538715054380386970818049970572056719132963113225864956551780308391780951447453467405920648973709105180810066667817228151704513238356861438673878055282805979851144661371085447039448133934667375270405722647997394138871873851002872480165272473415128491529674130945332502248010680559125845590802271963838403041414553579782315446551925434311393311449686604336774702128562884251939420163788544172707421231560958198942197362350791629168843784147399889861798159914377151110959404852431618110861603216550161231472694928110988535542951672021526106298954508650560297470629959918994421530025623030056909458584684750798207677739093006092923297604038621138513649412108089143886963465067371426829006040196881438268447451378152672949234785376160052220492120830714139785899624198120111854398290415448896686766264715520219513491029702033390887040788559716297324683744431056747700621769937987659792956273267300683090594146351642328005322300585278569720755331164420209898893085822153382806525346003217774395770163076410524729690274742730750954459687426768091312607392528930579965794624706700567125866809593049839291249507934777587121195464096798092330829142948332986904997408839241343958628448899883654003475453034531680551286027970910842550182072791290333954294849112543035163218212005782723280313778620945917608272192474564518114159340703485891115571269954921054255920517666666512138310295411140671391135318259942907012154876611988075474792127711525242519284238232129977251836771913884736887055310007277419526940218287392883635561380607790646325821336147314786519083254412991913337529619151227854523072599182093757316229263996048925663848010187158021610946333655980165995687943146721771533599152182799313431476300873770238695200001413353247393109068049598222183662718727678576038251682022627585933690725695441992295942297051592686275067473961357801685355992482623290850566980153246187266406867942586424357701370455182719807181333314205382728830609302742997716755564011756001144351951312642892650514125411089573222631803672573926960358616479263366736593252974343857241293519553936745391624216898818901503410282204875415318942430353024052568133038666921780276768831567583175572029691795526606920932417997695498381442094252380946984483543598895140412555206807169446719256592774482159660491333296037177385793633002793902395453072080777481343076493308416114308396863362750629343263603194840358836574594374284265675999058288249607482945934293452430156726961208931552131692137239469512384514681277163354735448197942293607470784288561460469983403801248000637774793322967982009905361397143833020859880772859542665787817374075489742870115746009713378294212916227960843497289366685207951498707774030687215913570140858186269613981367830377315272691432553553546969884598088395341244565664819578241114190623420874780808258892167173369219058638292287826335643422059004701646559384418407079803510840339711003109709820622142595125324269525288964241547457783007045466507674146614999773271233611715681997302533729303229187964334723624773499146691407840665609205618023972266450227086471595991802266810545363479273067670673793737036610309200558185576251279107726915848082231678080604509736024191671945930380908837024661690983977660586403337288478806545019172496741338346327266123631602946869037736575242270365998921853929374550871431628117709900373684758603136376288909687694268484752778179839133571191494005637551924618252423704768072018952524189406409851759839172308391654580022488276273179885098429502121235333018267870327460336065834670782225846375318848104329256261519777885420918301450301036715032347274119696101713153836289715694827602665129720779604414064190297997118506174214395164948442260778455496549887889493800215515377087067760773031844575502634367898839775760402453269337299617567659510828848896397369139635721768136796184647033426781775020608364841604583983198086676247299349693427854594981371785003358284763898365586711619554358189169243323102414759823785872504753960895058667320777168941174319682344359455669537520003588856585584629600200494206914197989272321589742734386060618376504297450893903768587030558514623869445484662669508995349706378111692620046599405368699021659769437000160569162089090807198242467521677399838964417549991486113145685392877509366404058280680700922966376495487391061257995904515657855925576927139808285616076913719983329153222565677046937149378805699151111107981203969992996359062946137974711142035145010309828488946152581951629822105918116477208457384345331602889807848598487235988950362777070827166773915594167357006736838258127301020578483621531375405998460654448917626304271136463579531207990018423166024610031247616080761224984412160804781067394357027924244938707162751723991115873976531409396136646432702427072097624506077747137191466190528854235863753558061096143359206888622013459351909358628975824519796708594856813253473242381450749169936607029827132384404418386890652305806976484123486353626902852449018115540398273728650223012776406762116232336965420218897643155120459985084644068588177287295091035910727306106008977685105639356986749770236176448731714150869861404716160240246980318844577520722898818274241199945909241331606083382655800909590003756058908485252642473424285488005120447570720257826106028981236694127440697534885481879569279570977161333151986790955473679090834094359664318429997492220942494205217547422043958697233745221122756451148106616439557774079179953914258699474545199324331054056539345519622236398431632716972986938371450965189570287988779769757239643322535693080095812626384931140977812519501646721033128620313075270386023742098159656613631087513946751705887074591550555558566110493675187464055387085598752614190603019368147004198952713731148989262421666239185949603181866753009958371952192705952002247772431922189051415963185381170979080491811640126643933022017367453672541383252156843762745224194911537533572089534381418170533707404270639273907062719880517280640598417353037525189821337682646484755096717330781653201580313587614857733331589435105329018305290592728385085461553898998944057437733045367709288363397485253108044179730363145856707281460697611880712219857691599358219685458088843935626560190296749756348683250121676497623533272223886372913141521318762480786546815604591690025583424627513920226980891991678377404090005281605520717851961560881156460272455251804598997945732063476013680505957242044903811485669583976283456126539792460313524714410823664114463581450396627624500872765473151992505664376722562179677743916309047262222639763969235440103420559700699578954387738832557715004859865308500874322808124610320014814678906265478994734612549439475930357979353856738026764943482191634860220360861776766515229628855733139047301513778285398091380768541652641492899612536394205943159269181023077692429041166737250556097050007520872201122019172417388782534467998468365605489822870116316750304626000867303178121870465471304586451266287726721618215004896778939806936649929115727505953281822832209206594540276618246327338238790727802456798657816325335650211859069067868283476956877866841741761770813574657738620816629925903030755544537247188474184365633730268052780705940370645848663584582396578478575194169304790363265099937655401698634560658308265975246406207666266986832224272842434053340505405723620642643491403473141698254146028223431878150662580346892576630044386921038620407418372670468363632813775898784827323411883894243781593069283600845560108837534504058934822477649585814242571215005731599883885679345490497500838417944850997062345818942063687296801410113000265053327796434031594739654310823046713807774429818503483277572081538566291994356017053611584665984178700235664841523539734065639344607975737140877320688565590403664287719770626544834081485312682654664709024317940719977083640952403873868169115369098252296404606027625131176351474839586298857063810970011268756347941351740311935755034002055714982944472144968596387769709473427682192318735015581595996099775469047921586898609600213018889973564777690430025653392941334999528061114642389468690026561192459936341805731793184977645860109321622878478481127967115195313115006140101013750750243252862164705071267352545945816634542228041749372651703608464136480974276054298187318335354962478198017185439678751752805387815259048587350912614202572403890100773672656133182278315577944207132852570489204836045598432500268163209563623343760324081741106817700425895073590691976875586661499606190527126258438634276848107785158324108533429824025290258450814507623328007957037101197195137288452795447158587271306513750321705319301465818726958024734981791430574005126983297443455572616849837038862603730113526649909283899679501138168183484968840390599852802042001814496861841690817232101903128014610825192712759991314042388985787544864173114409474284848082202335066002255001116976161840003105294330766416659048531614220597737344466555886352389865236574383182407686053995372177147917960862017537023250931486198759974583765162195457873413335081813773735856576213186113142178248130970180389090339473770495285917799836876260183180705520723258147494865464587925959912864013327394520693088239341370830091677152239682957764441566511517482677015791171565358346941798474709952091263667064677761108830922933920992034274392865225644583814808382985507368246091807616088861104005562942970483488883167403639487761960245536285595000053721225055386200512325733245186180988107599308034814803008463061847553626904317391807835184964126666680516455594842615745695096640087322551049855769841717388963475311310690099311805299758327009795603347824557490730721296092823722564292091563501983157560805429359737756380970318335894784838724008129717589681757441978882462289381971585275578137327736544058066736652387750839239595849683459628805449341428455609877292919827509789064985526186919811443267833239717620853357065997011746580800707723746115929850944240268237815922088888933981073656945832128560423034927780134714654453966745559546615126194695785421002831186342749193811044829472060120685965643436382436754778099689571869356262247424460179318694649495648792186238216958919225335815708175614111774181996816022784177735731363894005234925858618895723478795369082157484650719145942848120389163539121936062735520542632272844235510292566373465690406109341998545913450005176002649639886081852479225372276104772100554123738992252285993891596881199894352173372924947580966148502321922544178948952797229605714436906492325771389583502392615423957581644408686343082325852226928942004918830383665311079315182708524546033471295069948006313173084986407321347157824153717032351381328536122908597315488988848023200032999408358865627282890752152121869064883794083431438007826106247042078147804249381897416450276930212443447374488178793201269607821071015602582591141148045783951703646044939909232516377718999384973163363994566097735428506998752251449599428754521585332946853919088712116688460492734706179484428018690835443159954915295618331837622819148148838070538340991683231185645847082583284625389203410670185081147528404399646438171581269902367983145084707904151776284929361605417157344159659132494510433586042230198376047891039810983020166718302347794341651355562545773492913706256910954764243310142036794767398728531610043495876730521159908492843896024532289297964394492672599174680870231454498079229763289771831859519935800730189004873036004263629524662555895092250762199954911386195272439146572731298068834355395513828246671400921263112444785762112069655890574491849833451273009005914461657690347837841819819498799403979861774661155193277927244258456936419648114180604510911643037335249208549517724849928184255935709048364208729650205944107323905857758256862780162593533060538423474498250786661779304033474287444588507197500231808454011919414477781987719052593449611431612719129329273798714645611851312265582541904315954297677780612125072739481847105925782752161299292868871402899692315647428988698183912683347715514667329973232472020470689299071001375046149718269376249317503881790483635302007755753405851187166059983378834505448148222062384557151710690764987703221666967730346099788071409777328439230646402106443346595089834904073223317702645033948371861807023127756636833677802902562402200153901181851323455353419257964526615462002439204915349979122050168774305377213893515385253137650685935485320566228446575569558284939099046214522743258286901099339010404889623140099200171955217482355161824973009657269801335555629940128800131631071847309567049308305015182387509362366674951087622980888806266262372876229746877940127604883355495950821896365531340039493075221525919345635716436915869447202394703788012177903451116812197363509970592955053993520429326363973240989271060535741742094285531132183598901245497576179260033025134181024622551031324783660684810626528937557283193595048815685866968994505385538475674444143923544514645997100571112213386644911268793231985808621177426187016241648277359655118261672352238112246148796751415816843081583285222977550624529193993761424308145127230122890884843031470066242278227144905504901556856498988339194901339708710061941390503829152553206981261688210771038714966065375076916075951994264726340968423572979180111215849779861076077193868485550311894544623937349961793458814528902881055040858966291667635681017279784900525448490694860024683838184125426942409362817026633097171485196103965671782387438730488303417397372265741932953909035568623951614811943371596739388589777716467939872832620953636296596258603353925238710691680997983055769539960963627587497786542928551095158041720567196447549840097952093986408736442007077667444755574916395790048249241784481405075675944273466302701874247359419177700318096284226491028698600463154694003028478416605083157571457873033915439883191985533966363542431120829147545302557910428715194528930837578013317427744934992304432737043112012392334921920239857539959031036444723251740733727138724779919321255483516091080621073863582385060112442005224841834369464035506144910435583384525363477157158296108918290647241027175123737131381734005636810024274591797031338426685973237666055219454584304598411160398923401160659513358345415922144503199535576810656374284445543679257143821424667551327073914827285798709306334239227980525786619377502771230497356704336998802229468079522246412704652859823598292599368572403639642963545272926419121728031045738998649555040177148456735010583479437956195000402629083475120564019061927986496914481761017074356582622320748156970048425853830529107068280033916505331021816381506020551175276508010984249943661699792616466038530659817586383308236945263705731147293318321417474117171967234228383146398332011138067059981722425337432625058005481007705543516824531910543477273517026434282363040521080390593147974958848852843725326261607855747055752272398395865458650809806886675394931951485523333347891711029720360809729228884393236852538710622698115132077233711130149448892578875297231058893896172419720960955547728471318818430043852389956419554186090284261406359736766186866663173817979666584867859159479918024841348133421636759515908516436230219149844818239444775047222128539142327408131448356762192587987463365218128026627782944090022428244372140544759737148960605340283165381583221199338852473981001961898951952896084377005127432157431944845779592472093613389961941503144821300058511394558627021085905598951195198260569643084842328330522655243297942299733750839271233725810528864995633647403558326176720647229476930502494022940458810796964692159557499708663784813552883741960630105619353819100027578275675168925906402686684080827836202927862683024820143487919485999966341585715482325377271505783457703009273669966196486419935655354104721549802226753901838236723807934821539369685647157689124454908124767821693066625506446918594648157907739231391519698490657849892037971389271503688106466858684395324164832008103460496744642891120649139898297033383777874286726244542252177903713250031420140193449299843873634307533235052575245913153914727906739864276506668761802054049084110126103574951361624214057965446784454060383751396958893325887353183946235843975950511087474843025909682050910546356033985990893436401277175110448120109912163917068785338250605484369533811588193110688811103326373498969322891483957431977615074268114165720208384261584710965578657893218222040916409146653314411785541744041033680485315861725045397222393350550324487072375280758915059455272514075890809659549950716303186160858376419493538570295928576178418577563365152930809453687642727606827749184707869253371456837687460774531792863212497054273606670102873484148613915807935291295150643058693962901736275334356335582200394775127395942756526855117003437556023297817825031202236360797852253628782297611869837738474667869221469899070002258397013470832384571049805943899225254845998690695535436297303917556512007363567399504175728535877635101964033299725707997551730075118218783772976052581459139275936895850964489389419601369281068277884139080667798437680080477302504835306384178718611701270776957786746440311125278956469419913135236794033418002356783117487100805611442008421690806210369366489626032960640312604798563474056614962797308942337079661168423187377140425212631067870974906425063420720802499041754435956092438908432762427157698484353600844901093163111648516323913316064540052142395866837929077473225644973258763905560241613427644082809248613323741896797469822192453705274806909452085144859110988602201871953387456911421296864607028216104358929618825638306261987421062582155328759867720411381175916535418559235708210098206106223387896542222496306697135136790018904441821566482458179644352792894056604544854915276708773307272035844006367554006217037496642667294869679597255288271571808396193616809844372988137427281806157240183426579277962911750612524350631938139347145562294157435928508400437392885776071118500800031996313822007204059899107768128466583867094773870597030271632944877159988476081800926693227142026218901442778661494555085942804427454807401278784545907135928916384741287053610076929816720759310515884640698024067906653481940909819349184522321471480310601971157651855567349782848239928607814302318214595436372113406788464286699896917127282696950191051796267446273571011907776346038671219105314440659979322739598280303849082856008990509682144581246110869213706649138103177898881056864574662091978942776735978741764279451247923681121784368775584820841175290426623171990376646274004446486254687866347613276091700840620548127129847758654543355474347170090193562544532159843809992400383344700090961140192318068005061073089880004683384627268834481205218365125113694079814347808011642925324370369838103506291366070484066308269570371701095185927307188297490925092161904381009615537405485567788099311463874011197565835083942363256501564041779623413431946191571134388159029706705284500922872121889158535098429751017383075049051094884518299102774328174139329364168597537103221478982714705691342590906711051509129784125974972775645458737850100554116961940333483105114077403110315878331157883244261341550102402642171588029147280026316151526793507610972772883750421766273924328544669909316284233324250103337069690952306939780841839902626826922116587356410150574561525477231489653323600596797642847406401970710536304942428742920412423630154396232500061795742476273902232576115249648698475182090402925923954614227800584977900668502968789576904101146109645418101722007287420674368473157039902377270752221002184562064846820136131382210589150604942138657756565446407880998361893781803999646507877279031350427740927850842261335466495633109415017339351532304666591234789997353581007701486424334807692855086450402861675540410581058199514807347200563712730707556856523257717478832340617295613754718091006690492381645391889093788829190020979390861508936584392483451163989672991514597388338037028186179115971894288594942232208208803545247337979258198297665380197181612541131048895907792497208947996204258625446330709323192681201970764552734328971188453627555019271909432608891069633772992507839827411287602855380444429298928329322175847553515195674711027980031567363170873230188331009375332141349444948211067175580063036399835575188387764445718420407429576851323241031015534623769022329976807609640518913387993327157114291320176476283514375804248613044680437027436591914615778200011866782597888245760025859914991127572842739595718665155886073738967724294915262833609640743869012846816861720861793370698472049964085473401677749838666396396709003278791507869098824337949566221463903492659434207798047089560778942068893542287041941511363275548410488532217177899160736722289175043865798071762977348506864155674309494741304739699487735829678541094090350988032877568720582520018998494762142119966566938479805180593945930990666073378679110430996582057598148179801247402386147994795788024750550741533451950466060983797463363322792012465737548240324470001934770017601138397121225496541867168132871881674288145493002274568385256965516310020314567073278939338749862046290206819548137372265463057482537679882344998024152424468223274772699383689834070316821409629892306459928772585996628681274998908767930974125684197541189760104763197266107874322218203865504819106929384333272937053746695676653261270741601056743782959186380680445752656428549742402840870945996967905037432530792037890547648443340405390763594458041931738987223068488940282460936931068352403330432019713558062476743425755120608260528827544598303232894995580670087014569246971667984188673426461287411825223206156451844331400892922271801464045879285870794330777930533532433759667522957548973131408220038262006044695323232840243348205957659606069905810315897023492657256777183470175325217861027192745644342492209265776668567813888363384074811566889440653143787299600198696787718526498094234351274534142871793214543199037301771778434166909895568535459555546400863840615772970570724673287701264610228652456200363900058169984143333882300206888669240185012449071448274871522670584742919107279052801784127201497117287749603998428015732959507383263252354718016068171095557285381580070285285656396680051724103840180505463435331536082373809780600033916661461645378075328768097649555141201380032176219836782023230178813569681374739768887579057050333163565238585662164706870658857543640656423067248457401871663734268195871246622580628608623362556812759040547259967529046927275641926775616315067288257008146377734015950077432307030514966778624459789475625006463281000392407249403471495902775142884501487650717783168854197062521471487923128183858499117440770789145043229517001827295092769362371315307513627208507234644540567000758400456747531068044978098969027784058387861969554386030771962453933961302559966770327885552179628855163639543542937364647385921027274923927549688211109406171191987246943135318440639817226158858508684422681152547186481882699561403167900720403022400642271461371026387939001990482547448645192473513897787575904442912836185324641885329241696240721788232082602733539228250406459070746803816957087596266555549243052908229761197754949625840296540900144621463151316225128021156771524764299560559448351145676622938440368661510833799657518704808159080246084858163265035218439773458310684445889912676482959606669063074636718999965497957157071704404150904499838749348114936239244675610297645533467487377542513513597912497530076997479424205317034976102607410241532040042906331018797402686177926406926501414134242892653063685456541133229270741492703091882389803712159030374241398717370086265214123455888443622821540817940910167063439054504753018496600716408452252283139527081700469150709925217642019259549428604961802619198117190800695294733852724861390771265857226754183107063885876518916806176381623593847068808349962400689106889098622386447081829173539768924993070553006905660865626725080670133687547699817001313893266650193483518545060564485939272026949327451105909289449709996192742849947990364795462658712297970008537173301184462499606945565939592894864611812061655245230214924404701986075053776879653960232554039349729015339182936925145017949178750039714791186062079955213960564568322222586181129016931056132086508199162492895168603331841964394194307345481356072344476460552981275566900509168265957951608107670849437661210924352669164749026639935622425659205825405547428446890498972753791599493159597793244460840705547501151765718624859748360694790530180671446065806083109532974670112342099325194766946471434220629552159975651186457259219743832413185127293603153326796370694130528972251807732849021403438463807268812897906971735079438942307497892980092379150525375203810756740764139174964721760462552271358070900442211864001695617917284577861496898152855814823704485701678157225982270065493984408245488508118995984807260109142736072001700388016197696703936737129444755795606017394686589592781092745638566794942886096424224691324977930559613808699814302325013696467003987636514650244538173553695632662302843623300063560151420407698424955534934457015501092450793251760799322805510308703657818947454549182054013431567080598896136105389037240107773010093948397976636462314298418917367619370830246106470275431096786932954551827613903168568788621013110704974043599363285646662008582634164335147236571086682634410175300695117936453525955657630136138740002639528118909268623615177770594574965494069950034861525903873556646969647232472729510515344795127092741483808609075251714054014028893846072307480766308514495460499324055592404204312919019913815931865114975384055341067165354085676783799919574857480772467035695226921232888366558332946308614447684521728356504038290693039343308317272128300301445738512291681731027569899273417545131590538110340736807926993987773425120417579437591071645356502151462890325163085770434816386129215171575657295084790398508107881196233183886195285820993383900793648354498284585270839363373782703732512964746453811431056018152015499120534256152860548184035614082949356435906248359027879930818442832945069496911861784177672558148991583873432664767799297855770478498263547521592268294342029762081625906221603764171214991393136594268902547651289861645967372437713588347755293337332231467664920956269609293554466314245326851186759135781909364268632059118574178836940069203914881049417059834380143620966749599458930918563656044583091673201151541112939257036079041125003649850872434488820308938180115904967712361693730726766919255200616176056909346326309364514854464051950267104320192284619488972163067324634036828936068975282553553826426725806585669216199304322125340455571066545672528062650495881468443727152815575814414199896947579763232945876686695339949361557305995472364567650633016653480458743219932446332625459049861311650575231853173832971560943380775357634293105045497108534528074966554394412007142452049695137382905711857207559792798389405142672907394862462108815680066755353923516093987280735177450122120852323702727768362079170573700511597692881575629762043169642349596370906701726052222218803438769628085341435518064196635559420661954086926508405088467852368812215117001026804396842285939208793017661281161780759148110400349076839615314476482587269044513380597730467259091893690377355794159624332680199589007261179669074297599318441119193853752019573652662884344478826681766969866613749354515539025334517848974226290700044852958860512491237368697658043214943816660680213506822586865265595552767780247696037327701175012395408129604516103267921316660026368945920547161404890615695573527934380360554771253879128816195792620918647370294262808120624686844954597048341707749187657495864005322608136225012297388626929740922365310929640845723372023926850498323662764596512725905923516099745848264565124175350510571320759320074956539661831501558901932615420748587274425113897291532191913573037959746418864331904078205882901786195262973815353180222228282853213816816897669992073067859138336610035625130968582132502343604791633924332869188111288179410091385529642671356975968897781900308590976067816610075005869556225279161734490275819399264608308944923173689290898312767187739898018558158237075675976957458934466239238820594746337033654871815754090518898775002108882090288708455165448941859697870943856183515926790911544456945004592238754778449089712536541496127605637647016452058446983214337626732183212269633387005415294096045629506228226914352839512618850607754116357835859367544477131760959133343193892897811324700724848542675383273035630082770949262439530345450653834936933567970775105056287659707275177425965096970261562707978986453405875959846758541741984394983492046843650412533536016918357255802381266891305021062039154826621124917500165606318760698411565210148700132176983113459955302477745600005611590718138992983555786920077392122279336566121027546066711425757528790666016392374039762401208782015660799336877427826364456872386498605002153612331752298380833415937224581188525342518107088882477680743740620673928778441211030302821142207068104174271713341149701605637580951754062915475912966594280238714550976811095464269215678685174170676007370262097947133965666524690742607460217504437356322008524217435959333572256399251992852247884252650588459725958497399890282375812171177933892485416380952700645841563516747888017378896888924139197100150725548716278263017741815536566632446509426706628546090727023151300786196248128525714843175067103560897771309963193462513479301061038167434808120729730007378280928317676670728526296969095333319503839072624942161542425427975891657489525230960657606065758287235456224573709735628198181807712482787337174810120093192315822175837171184100597387327209915429786525849381375645132317431830391773700336728871368853946042389371754168429833446099029476145134718942333205256508701076893249542729464256972701027780543559328474067907990745679762529023617356276961782050306144849706053126129566026339386574171052004874452836729827843459494052348413265469072394502220417552343192563058705928140212173538269100070967122016943709742300375727762008218085976831538681727636062704419088773038169536414769230812932978408706327026878902965003755932938676259734093676376197736509570567996088997255421335269177476590692421138536794553999685128869684148917069230835185653061677547673223472330570548314400022290157553340621004603105888782043945750322666024957103229883651327753730066383665923679315462129046860279628229660371677749417032477015260754016857886950535786409930486098217844709042529831772417656287153884568774031061619172282762394292835816774610506874015665487694969805909939452229293837588640853579251046111089962892566646082703174977416864580729673835777260867647831426947025930409678028852992611214018563416085905933404456857180847162680313152925320347825224558643918957690319838576206655500272970351293862226920017229686601694741824263097076958840147086412744401299978421137499661972332958462258986680597520879455457055791468016855940071859744536764247813616412857851214155851977247518510336638728878105400030964506963634460975830194936706525616651354126415230306643353199657764693683362455921000868774844301020312420571065681374679222714269428350721524809008540694807865647315848419830172579286373809935852557060289777559092696897484293672319590170247985972157246748587541032845633847459887002300716488866758444693180758814643294614675034925430271577138350351201034249001691475742475284425194244343826727348228707822085608410080740058659883748132577347036177509355804802016290357349439025398450271209631020756512174421935364789642269707197536553705058614864189825861049745371242682157183829013800098877790008081846979022362938657608585530365401954423088073326136102050126762681387187261371358581438477538717230350626844972005589670325047899906369574591529058040207644991506234495909588652554214242665878985164019654356731067059858576930394432338326091616264679731208561891610050186895368866545060988080816882150081352524152024290112238193629221185430572977854377381753570829672360488375904658093505821721956072266198417377068609206876474463063127615691343443935113513267069430133554935830019768667633432031156520013273971142278143576469420083251995468659997136682230438685955833540685604153571572344084863991504715955868870810741257429705007203313937548772398893511772304872415186787093355104617075915515916915794458328602442537444240926179808839129803410808662800874603467837936440865398666923847678789970281664452861503961083349517036758441957853940293544824255623351381285176347356199887806100811580640446121292681219118175686608491005898677119234345288531371258839492347189042331930873689649073928361804855206269038608249110347206896654627211200150896079508006709360450376858849517376175600906950509099013799337275471201829834555233835131398587838870672942075544476368612834218521911137916708122903713808378463138197217705105944146584356802276951836106746088717238251807592143702077356135915557280971727246089312169393267565689552096978853706986397710412167990129515934401965261307325772766606272708960842692339569165252139192450007101119024228974929082170569423951511247192606154307622873077227152835223344313718373815604937642534623446584081123942830050881597969668335523025729248512879275075517233671416471768032646369528672154303315689208670828175155525836119001035405292306198366553195579029625283263157141990313800222185844811247945622387574644362146762132296322655896068332782361243159479709826546356753993344425803186600647739112640330248381060625751493635180616866310615492199715816371799699198168566177815455562981062222934619901828896316753689721305904709298138229436704202113711612014205287615487232380700545416923604224579834919582243484441569279846665105527763677952985443784414990559284171439808055993869730318868228043710864702697209223841048540389258317364898691741151947906325350783158327994964270503896355678397652410506684290723806655396874930079487425349668006668588658390936906382298936333010260100944391478810124263196560791146801225216512422899547865008275069010294684427272567842905754522444142308339057500005342221087744559577723923988920788752876111778079982176490029188782796390752875342422938553115261491432317655203029671218561976840272771277482167257424598372473486600546006277850883333016354283942088240801119147907239719265718494039455337481652078656735180118090541684273398570104675755436773512753300802045270238821171583445328603866196361942711817348998717061528597773049101046479729068464744167047613481241305701574927558834978908446718613645668874136713988605985686682441840524669342207361069954987373542105798034297709608136811083899254025499393314048024913943651984478980293151056882833144267894389306740878678092794985417471636514393006989715294901672978366488155395991934257031828245300059545935837623488048884405227244744173884827225607449803413542529109458418124443999659878668517691432467796049072294804302810636838403085937303467921091148592830814689414918592332879713720106494388669751884429137316799275178835696371847021073055995306367858612040751456974270349681094770463968130468305720243202720106298696645593109109869518823843156240361605603902236340275815227387233646880420257354630215235081444091595244739944716046682952162811653111028002087599212337122177273913483082005656259035757687969038659368193835286716937954932050036976582493960365611669424217140540819439522516703765561444624892727216731554290398898562042253693796723978153313857136302737222177201368779342987301484394516349609864961268721119049932943005958628371557286991090062165727071358322325214723022505401133709088919400607787770758248156759462158766746199620988467003644963932692655177769449989776984879280300000180854063830509855077606382827662306694332063281391984952381715695474139449934157257552544490706498317492304579805510273867154059486343076218772101117380740428650873151459580726666441760361196055737483354218513563775603467887708396252106797082392266101781680934531196605102118231072052008566869478121772161735070430751247097081764999609937461751230963204179444962087637029612601613163815009703462202230650498716496968213561145819548811920311523409577564900748418830124972311587951733274129920167884564736458465369285201097237610286804115757456756842085976773922379118625577274987621632386091985424847677247203814964889914195507968838738343354758597667920062760420574152639477592843378861707940359131177152675660708387182173884847544110101899615856687423698488096532739070302140730710504780194395949479481562132435947983793995768438774200617072733584956564390098774680651077953046899130340732405142609979007692739769687823099435254785526879698536803768700766535342913428978622526881014701993247322435706908919843528748587614268699925719403407731387672300494734534347582637853893867570678148590751358551251029576198838831273424175459714295636598076647954453875767042872082353051421206197920511463919761523034888227750215261954078879886776807406747124992832936576180928039687429851290278640033914507514801129754451120430409783371910636741343185846337058911712028665508676975715499749365306917589371319947074905122278943134544635386114756778434048661375823841654370588717733488683289483408238319509861359386288060253635312375949087575801829032108123564999699710367698340802692323915599279902969669280629710199112641474914319702761535252135518230877514413068035117633041937082282515233234409934815496497640531146207547368302194306437904674646218045225873181701458512166981350373875004417381571803519792868239941209175298530517957754776607701030808459150736025392954288448518785159171483050747084587437235295760096604281699107556745514320953960294289733873406835306839097391537371924588764108824027335992194813889547159703902734171717145363445930123770276845692041636916459867552932781115919989343970028322756638679574942198846220073973698006426944734685482152161116796734331556746403023027291395256045246918321378509682877147869797758197106536794773112833889262998594098740606023958216358053697783050852982641067441031419814485060631658289666313376258075957328743203800185032963802163374420302233546627235147236869728841371335503122286212792278205540216626038937682186911309867737911478476111027274714520827450269603357751507252442462362045752856355757363639025424445512020285676354166386654841829134516828075991412977594801745429934879710687401441298577775110722320037676853741346184724849729235425732769106353787724179424131810369636204660354684559002539827241803052881025700930477143932612786072666198560018947906717621653116045893926368556421516790523274011531081894596351900054442932231510900654345714930642987252443309836238525639666075018615664030604254622151950543955942622898642827519163749871964153798081946784138695685882845347121424280861460538804740223954100035429624478240042590012092640949028732583766319068384505310933948211238041077067157565453471171094305416546608951251451039747356429293071739548024418803848629975360123262206931033469548628367615799421989887120996692495110957863103750215980882472464297101566036469801156644929802601258812969954752780930447722521957991624692745052447192208690625167832019363484700195328514175608496304035485865208294976251448410837421055780393222814170133667502917900555730182127533754409160222181694995365294934084942966597304283277778959262604240406929141511491485045315160663161546768878688591058039614270453178535307794603119632699772138212922305450112912348937610728398612264307090464027911012868292880825749786418313471376848014536832243393173883353672463423150218923842531506739479985981153605760750300284049472554148880490534433074787626849315518749488558572657748435169081928907489663818908427985403947295055287807071342199287976885409259817714791898071596048791974697834903426062489545314341227020656156642903671126695194080217432636716950491227130017303052202922699823110205398519499301972223206481489806255501064835681876184290754563476810304283762382847222093751590733378590578463674692891051472802517932084682018884657127243727470900384876516429390624470348758712710991856619708211852217181393493943158760830556742387797136383452757836390727490086898721132851002700512175671509090259176150032457882953192611864454956495611132154144632224677627345605943706186413086151502116703382236646429224200285985937085980677325185126877454036523940189002670970051469011885908327203577779784346684350219882760915376344386967248808992137367137746562196282058330476533208468818362929835174243905007220707674313121351060564143300845959378619659707174207620911580216891580968520421098882769947958300622095278610098051269201977838832446659205577751820824700434225278138049481355813742569569467000131488372187690265381882227111109437584204220754697099935228307903199228412692122194779751652091222943499321156448927126650371823360938174780664425843741456553441955678323028636803094291748907618622110504046497315944005758254384464954722850011195774027622707846591634977808705323065886771881124962981304082545416236713997263707845878877073689738541367593719633277038652835646491533058419636546230535482959718452488700615413459364802105770779127511681674789215617413727232921702751861717104356738719422018581501193023994596969184469702860893629079300032841231801787627419402112721004147356126983267476817622915020287700035738121939452809259896371936133759724480656960719809102038094010563259927217069657655375552784598312708786635395621183825023393841941018438016441583946071962796753900045457838564840229764450577383359077792392872596569268527252759843774645334560993614694190316918824954714047541834029477530645916532755468798784695870638448193517340967588601231706343966370258919031487744617291637454954708353524216436927902192289290456891365496438109175429823501296059798109355132329298711447805987434133883686006713821935687656905031234474069199356382455468616494915999397863431295740166764641930925628587675515577273959108846674866486079726939862567434094203668406013762805971310567788700874469169558375327069563406999898185876462957823748655531280761915442461811434988929934455411728021857484562234625593896366494465069654096416266125671820854144531295334643762749327804909500385206761561454097572475857031916270754560515060976199341233049338529860527993797512991427991061413742027342640492830655272676367931843523630805015349261564629960629964165161314313760882863413014606719854244403637840803551848381310641173135819827088415340209621844019834773405547440817692493725777043280928641488474850245599923506568986035107846326781746606400403762508717396276234942141771419159403320191393930617418144645057274077866563042396798966888552788141550974462185476611919839820322614932251678093863909207009498367757242150060646486237378727246057679013936762078227990517225150734652144066203739141530977982446326250403458156379583882065374580102590690790826267110781357176644023813746826957466580114369913650228214821643227980083624392638287261817833082172009119939078094697448474923612784369469779565015885820014790256889005649009896223257302689150703881847427797193570859532617272684033377002480572003604015408089245996767781249512145972853441148170528406145258181283225014544559369763577652091064575896388983714310237712813254965163126245114115256727384197402123684840401300464743256734459466955699127287528940156818856396584535417270541168095944819149650998091602187604056039856427345834167501208238398636902059382103781773430317206712021252541852469237001678495652779556197683606681972018700561112357502235478291381416586003895694416596450710183714806018688792057960794666470389844483055031373253856338788746338699709183059191254318110509848832588729327805768868250508713626923571253533616508688090601350655603815506938608674650249849308121960458384367441834103721103566544531618903565473825718438471488595140016941021120529214128898903884620250205370570564408822464128474065555275919991056708265224830851794370807932646621043121035062047067761786273141868425166635937110868070894573826485239078896905658645695670203053738377400485800715746086622405206076561171532953411065781928030296361802453121794177066702984707391265058518990438610612885807964142701339779047854796801699273596111992184676687632042361952692838145009990950656617996221724260347829874384972149921040191568301479991226436125113828910027434961634246486311338210664084517727218359536325344845888511259950278891420905502667010504223466481220082103298568492831753312533858049859254012563947420464811457110354083564803204523320165993701729069778740359324097725141618125960813709302589845200688745036821892037673714918500630911497363672924331705682707017157219704003779153778483832609911791291284821506375587221443231279657624679000321865988245777106302430090045901251882633428623731563384849143680722808701640601559791367144755072754653217652999127898251851498858189468585709966611079310038295457406790638796648161145429622165721051589232009134885803413406685896214387109159555770090042604290905488946105500724435630397426641610537593405392900433103993735813018357523141771658691183995927782235359911907312995950757853889558213375506619647882270781258854402957831750669614448032121082980515288697429512773155903818063674308590287183356142410394772874291962087578322400022802928722581003329446033588116369175579090048458937173120773124455611587496873760388063170031256628306364551623121996026512371787343964427155468843716877843561659440519956100729040312485345834637885829823893089778474604781833803395974757211165713404347524072826370588020459061881856763791104645290643359048074575822659699444687596233055890042353328299462213630138453514574352970398585917272201221162652079447503346406398392623394178150176151306817033381540902501975423430176903184498761932802342360408064904762944020696390956716028759455774751300282246481907279251342618026711099325596501216334811909064882456593364765960601857523952889108906240997656672471216858052857188818453242174341503073461354520128575296712897869740431498000934050135334791391089129228350205240226189217804885507097736928511779150197326580900620456041158359904001421833862477395113134421168786057023776889625783879370191622145754209057828786175736851542577026270776183909816587127246069964908332589411319755532019295904655847388515872276776471927496100909397338416653311231454683094233098809485311058090345681752723799886850413002254021727986679436422186968378760197838080512627440879986970526630593557568800744410870432427896691407776371784748040892803338287952535427803484743820929293869021829863259281538629917434755634028872271661120202136160094649132955394158334162815675696093641781387607412541581246963943666652137763683962640344177502074296111990098590138076845415225486479225490214171930316594067147853238151224295468144409290035683774129790751039149441905754533531010919865851669815687996785784562363532114518449339190319741655337548729149729152521287376956394994192999927683935186548794313954728950001255619999866051431703981759825638100934881596087654882456434809585369101088198976992202447951511564258986581093491836209425000382389515083134490901559226817633793559724660151982632148513074150438631300720965919659662630176208711901031795670418246678413172505365028705954763233885649372872022743353450597845326439678128973364983682227302078054450523823760847525825612496491000340530702174426095774466048145573914510385008520905758614904108645713159934359452774007169754280578588663857906704673330479982746551742489331286776933199962014005230270397940069139741392885551617974316106752946848447276557432040826548714722483214418249837069718819521396375945310345608075326835430213913439028193009079575377169968754464363270756631982315792521046752881338593870759886371331708774467239859872252140642943414448527353377324903119085601490866474996308874803318703441331818862468017615418490382601082416923582087313336905043540029473269611617505923151124318000835280986206468974519884803049699593801274178152391111390894426028566371266363429831467977034740656501093793701305808330670050047484850267035070521119417532138535894224022485086896303140955633412235167164906583355825452681083102771583266926025722013069950047234158860174665916734882597052776847991986579427117008476400356398803664373094013475956424172878925528447812922164930511171180969877888579443909836621211255250659334873475370499455537437621273191976459003646135261521204042926305649313406180456924252684541427961186247303879199434021279348611673312081481409421219699908510864188376709282093505126750327534030417158477044335193125041507953412044448800128931986616776567476351083006289375260527023618346445245608446496373381212423828602057452447731767259878950859692049240841449187678580941800995890126839521596153704502349477393749860661472070356557228340599874376804856603164152958640792708923477735119488697713377877394876733782727757888945613976965243964256609221687462438385392802511279288186109453918538207104819013820121413633972687935371695918759839389694596282144267093254362952871552307037523603847169810446777662020799498481609715800425754141860709991489516821460708095339522351292390943010127357472147009984675025937356796409744843527291611174186578758173563924946929946673801011029938039649946559145586522021939352245652468076889511358300611928825373525940679600286908742718203340443332398854617458317913689513796286292538760415605445423876418785365238211700146121303586579089167287392463909070974791280432617175016045851949224889500098646339346710356525659749871621374335566259032073852866228558086210908400688811220778452193083938964198310626768378741125664564928787047294417823264453730149722344155411943506842548270299777174822312085679312403278263673314769382267749016610506808423569713137099103771153089594878882768454927403651479747027381754673387555184462247792989911717290104132509072542436400230785613178798823778085853286442180299420232846857345213434396885806899025339852700919364988521716828060182327413421932407528653553331233363053191506090109041138010578824859190453662809654260695432567012493092442612690962307984709505317002733557607184454618845725455443676960510380724088841229511241308359210179011420811051678011750894925908176943732417212957313843836490190731237786432064877894147853464094865889610045073952776889180918364748157325699600967663299686941901200263449597757203463354344936410821435520153426642522658299032606212988820976691517077466443257546578177721882576131523190462579972838990993222159829095824556191778426716458038788115864250858606826795492789560157070264107215103118547218179728919075684757630640318790219057210415987901644338308287504781100763306412519816251404887838308194215775693712487332379414801198377577151111680569460067578037805147804903235187379558337355879010533325631184877880846471321111086557534394752344071714455652228920856614646997010715641809614678721123311328405862674664126077281829885866861538035302221505890323661062849715872842501430702326289272842918855589893252328494238746296199778271310868413739829756631464277728765098353810190852974421172851987277239397925028232428563515339554150306188501645947965685032228641441751945319639202218096792537866426076043124582500428273115516124257338552493010903974799845093080581125260008794465480756780473420326384733478127362973260142980774813707726273284165769649689597622589751231309861603808880195757531279752874233049112882659043002584869871645276691789158969882257997522604947317274899125086473088714535952927550736481998760677705361289131520623296515179849473055652420883668161057321002589364384461593861236761454967302916218623680951450976366894025097909186695398731857042433388229780957022615562591621008954456675477108772638088675703885018872971345159892007522668430363295983559171446954562691226986516419168911304770512450464947524211329950508893923222753763457583641400951593590137834743353658462236200899828786499488251934926752113840887720455411248788400678200749489630846395516852030482520197447699628130104098939302752154644780390861020793342387206656745736693887077641873551498992689682215676660154228508115746072958674673636556956372029637781576593380717367560844588091961515512699243904525220470017739194846576059142706456566294865028061247519071651601902925720418408017242797957131500779654424559321485676969203701817803974964659120712726769359507132020249079871150982936530778746984967883240964592176640900709918054292684435975559115761976443340468901089478199730661830531144029812994813362322356481449926854072855205875335812297346790255391270422501666804069916753525425050091334235832984605487562029166788404214213026553029870389013995719745084018947078051452326059055424039507839219515339919040872885272997029786717282677047951981581374492082693275760413147812483423601726974213918721285194958471833076465649602774310997769011482757314514485372256932447539957855023320792217425426726963431906882076209996437356827462936426564928405892400422496523337752242245951064946868372451555281370360527866047585935721329442321464795226519791067891387812714434219560919836956351407117795755589596658392691234749787358185482861425847712524123082890151412640385988643180931083590790022078996795223191743242582731129261011243327572296708676855526141425779593460527777188633523677123193316800823168229584204052155527570662529979859917889000111397469123445558516111768875382707013537500634041333349115952242223215852887918187298649562529453961818197812261362908960875607960327845318344807014167042456586244475758539057636951414681507826218189270719365958554316552164300769157899406653873832098033578730635225637706790161484688398000309300135660776439488231287016767693106152017876701009693572424401017958025727394040469077853141592036008205617123270694004639584036109161816304500252946422096446293762375892549085657165085672581401654666671021123567586108306256538096024940364335905871119346430012219233027358506069334301208125174258286753897108387133191779912572681815419238414993233866402535518868240655986303039026004132601313337864499025327342784461041892002540957580622465405972840237736394990420420617896267792579386291892388387422137337325494995496076728497350582814313360522014202073607638685002511595310930995678993887769149593594762857003220656600541556734047894965000270378597555722228523215322443713841310225709306197082793532994114012418650028429885298592866747597983425384120487564917278963667908127852420816011259973964192499274895218057479918147947873919718339707708865692753857401614062342393254566666285203232162733273096896694668780541959637903167988564584909886250712937494707492423356123624468732578074511228362259119201551017438435641614884732586381433258757653080375523137425647508304209340093630598991110895968109722779483636984333180338004217796086107163130755271353498666996838386572751679585129250229937535293616678219006066531310181571690883153248105716229831266606924568380542937052925849801150807893347639679479130495315339209386904334538919544875786424946847319270087945568875409453092148262374937779392653744404758407833009098698127043442570847359208274478503122659141503541944809395880142872397581344505876633708191024682185748526423334917397959460505474696630175383938546459662581965350877106114827938477956056357626790270494705675404993313888377818539444413501333192039423063014580896491393467449204500611909617462723592490330983277289792621221823885992820092557157259036171750853842882079524532445360912771838746283569107711233013511374952691080361418900961603109499270391960906705069912976867866730110177632691938460017990672482880998620660843853477203662140138328255329231306505649087106273837503767138349799626976839921123905280000398270336498928577756972738649104081935357701714169923498071363001337952890697734175129995589142162635532429255044871887993234169887816295702384332512540985046293449213761785714951935836149005993724161358093273943085287106669655814068996572733710144558688371971209602968007494724510862687607299742845627922791248913761853377460773086617214561011879929521777770333914103414366655248503301662308042145479891000138466645831979250631110734964641304785801097130831646959551314583622128172706367271364971026926894409008838654861636630055040585982146940941409889011149482391662778514228636909490715222129734990694345610791858501128970025554699301876016222105867607984304694239359061201558079061340014193506664108579890553380136788287058961987105910930939411311372347726941432144790421377659593238610120535512346046921917205864510211517614708123782802506248617679880186024448085307681100380312692981924065768164172572936694080005938061239842670659206369865023461575378285177670872328747519079666571505972155292956916548071294664378484704867316173867328119753941011436994004704432642858114754779613801595802074675987507026380229049897231244207004193428637959820831095797983086250381960167099179242423613994051303353731884700366780581349848017978781947309719600201463145083847421509364357022904915638796955373164122618672293367085336931915406612568021831243544810753472140255138375266091254991043028240010656229142038917073389959959102207559126122745921703002821581707021918474457840655614153753579716714667773144846442407108702497554355658356677356123659273715113635037503701045419200532878374757086727227106421078530496121448230340517095228031286041923104342304663917768030015404804238895210686458299741845273669502386048586560528879503583861096367291136249381542690453349369747950934039652566238578907898487820711172273669792206431164892767536778172047349107054915353368799405188863207045395892801926679552947805294324893349973198202790865818563121802733348417691534590411079680638358391970020061147442847219420743450693959340172743756469017717182197229031561212947077958307816944977579859462347603029902624168913131803722263806362623392931391381927887111790679272797447751634873645575729363535588423879412681082862443308840504201449281856629808388950742226351584578064863943950155641491528164352014618627126212809803241658704672185608636644318948096864764950272666327503604240654018092730243900269115862095996823297296114705204819310103189579138021624905121252609459377387873986543851195516307384083830133490596040952883849390101618583875213065297823392274889404045377289226471449229327257044564384880422317006831511411030352022853738105938106702442282800959004249169155305936641639160251080471525296742585293644072690896873080270351326950335274044579144027583215211990531291387056574270648232076219472486867925772589342654200538378542687029526721285173230962284487515249980329366265612950304343458301465054297288278489580424159193162744404169956887262151946492155191977002622894205248397404144686844854192799738378018968819305950155450288031851345548255037086215089065924765050803700156704764948093191257091611117997076368772818537504375986645634750438875984072220848109245291954303243544048051929550181535348180171825643936189050004932870002819480592188467786267121530783388923910083000406708417449812990272312269732840658615519074791963507641820220417862780970238361459357917798247398315876499504119489995520559445342205338015004670541789717970456837778357678574185830330843424015765362799683555178919580453249730925631872103630745975038347812342399152559269107489778462110370625266158626150881964064614699097032680929953261595046026237295297521681326115207299088551293548936456880280485835670261036541737892366034584542956844507518714751752568780620296757170968762530144780851148983333918605465740436011257295238719060022950251068155510417535936292444969637857558094042054584420886637375714060355549842656755752635916036319515631193057146401534120039178521429003217613973659365328408534523121460999051837184544020557497476668627770893122462219036449085545686354378376722345438565511822875632123283636672431839446450413017200038132747978220815082089187589847459386135381627350053637886228159161284516703807939704375703396594289946363612417522746771117034286986528038404616707308365791670461124651924129392706653024770069192343720155327967946108375389463024725268296642023896371509438201921269020410803647850558172192643374750197986174356934586050816824465488371661200106717526663363081164101686088422412943127907638448171998999954162009520914691028492418113224912471565496708094334217738836274421753495811239085524981656691309160324848470457109483338680473416946598909675921896481919679787119769832457932001896881308291059964015144628744200865119635650555988711352652862978088432193133270845027363128102639534671034631551995484815068115139662318294712667115492817895685406327032667192534678908956650838291599742324226236902505518181679313798524849013781865643924844780493425271689773232246016165937908541124869075075676611176623177823553884261559474511246844857318687083248452511389148892450033012054240977650333482423829219136331317052282742556881909709951839689178416793597373997401790268940756469706858196639817242155797618352398541255525693126866506903842098464354940819275245199978087058537451683126971387512702770413540727282982606194966842017592811304834047847964273483914221058515329796054606508407325544770336580752875460303607522645613677322208955500106928060323376129029365103078271868624796193390563899956439820506553483798490219950807967608791972684651453989278396109131102797091246300411669537461745437732807634225694768477986631901834417341624986997904178025655925467020260762863649469033568137458278356117240278881183934796265120022944075396341108301414088106124791389392470295394411544840416744208134802793063583026838260836136648349415692093860952818073995348635429988046226461749669810645861962640359410200248391068369736714374178809504153426688977106279914048968371718224195488895282702938100820208439155140363481084408300527393443029205380568035317499247639800993678724087696885454442494308844136155110474726135133566074702951556316324837517270294751820677750170933264311020263469331761851814118783596926574419192512420295710695224136933167502803094513560787493480005971380866183679721431943711625209037583376014471612025790718776750590383016658394694898992399452474694818087567412744677845472633057868531435646408928660106572863643452418090902469104552000633473038088217436198230639158028500498053361096405871081204048333909044645216651973798720548794880530388382562993752801543834190767780272605397659273707817651866228823692216480141648050419682728606493186262923795407196074869373835295049624425556385046235737365694734457655754273973919962636821961217241918736635485494001466935270337324789715034943806635707400746387827586855001826824868954690966497787774249381855579196035985932748716924402550745519064385400586172693104909815954004478697092539523687201144990757245222127720822226613086579831140719860018714563058771978427732634112649063589533423441103732766784825461225686019161408515156113890552170317582279901704837254662416539197398463928203979687163646456583628334392224742652867878069859877990879289154112513343704130996396122536628463713743184292262253835193767831723383600076217753609937734769886084779215761864223565357893395264400743683495357301133837064103415545475463222661069101696054453721296954678452160068723345919861781168298020846213931985378784010292211199745703212374506492596067687464268826786075881545961211959208391430939317723304727000199446660418898118539810209210600905994932125577515970221816569434422321047165650846527457681755630991125989198506805140260045981696010294445585598084549359129107870049203351831281588107589126661305411058672388191116492792225049841327111881737952676466153998048724837274427302348493170749742684751848893243265863200673244252026098711377401814039115835250299774319614635986440677886072240265051938559388782190191363047355255379177134068709644327385344778419272677637275354865397311930790583491917588367978285193953191239686245333521423623982394406773544619265327475818436666457962007184298377190156982416902372223302727242942373391312392991864735063361363641339986754170270301632566713554682750859131210538994796787091819149151155447147462849855503059236495511040694583420604003088473976348718624155033190975889549567988270059376351586845185086658614643661357562723449225645073649068780736543253598664882312375415195011814137885270529696339876547795167831395199104545271004169146497193871766865684900338513749679615054904904426168475260017441483255161419810105546237573841896295445926861657010369679490804178827662435077571858933618146638785657710802150144210525656796579616970231243686830980057289928398690736163838854675097154084550925576281617971873737471900270522294371371690836302081538858134554295561524216469065730853773894452763315859233674143640651284584136674701611844587091492210199363844186984533031815755676731414004601495625321156102680608423938410138819665829103401243454645950017553672749841537447736171882457023667394032236856408945154282014592195657040545007122992816379365778079539998896969462532709783027367844849678779920873191843478067688795701282776282251646539385401850616316088466174397050075477038591735987565058724677800544569753301399298781490176000997043122242123385352848044537931248004896093385495321455622822891612285869824001256411124365686853532898061906599649461237941312361944514162467628930913165028543837175687646103200435716668014639067562781875491033634307842546017139539477690801606411647503064160552573343872103311282390895735016007248943308417629639519700749378397158160865517370722912791016216864297176551115819384521524743950287860248136547766564099110209670551085017625152671032642876967794221583501054627636194868006173235110976449030955966983670131036848391553963635379987302275043363231947749879354655851446303445856223360621948800580634020069579082342031454215185765492500482512986384328892613934956425162627145147668031427151168192254921336803191157917109865764767846530962942502817563856473449403756105694794479639865818819182165402483993243240653012003355804944725790127630608962283200666159383487962105620866146671462319604265747691884900206077395989187959848510030189430935526415283589504806754711980855809050653690266922712825273780143117805010883284913868726804394222385474237947976818423308564676651334759201410672078154931353569176870583949582406232501336346468434752192139753866243846677954528196475430369218404734298957661037932095579637958053203493493599882621096446453791926444833860379628718251521157734597751258580141839404331692416159489458761289899466288561229878938139523046160993722423514299220407828943428073554535411186129723738303020705988757400139074164364876165584856022662894085247336352792552713389522342805611366164071101877610523752319360422431517573355123670915804931282095142659221224615987418882942572184653992885828400491617620576494557322577074894318300359153024128936383123511903535820006230887237119675589753684478443390822894478859146922094736034091561325470971755036770776380454896302608852331784858138386502815765594447944498512161641049915922531878984649308611980527328716665581763283558122023656345831761529338101214302159304925824861797377100116029101922112847197952879865499495397525686445486717319891394915063706642099855311571493619662149400744841898709268910929735346149969726537099078825620249158549364703969968308967988399677273478292196050255663104898766835391453098617588595887635735297336049424463754275899519727457794247628442746906850113009006775799038584210105312391345501688159365539176600963528186184516164583362745903131901245352280625829224170596382657597618393696782412603435938245161680321014650230772717686965980442563955974310703869990770234872961990170271371624299938573175674560817848990924933828567880238397475649744874890017003781968879536487698074327871241995052534896945801622280708198971201506983876858394978583141593236847956159799767022338798163372845495406036619513634408166057407085459167590955383699274468179944100796540927525761416663193122588530059539410390936939957921559837922084399706383824773439682453670939890976346711757319584833122889706227707749401192537396557866420436107662316044763005860681531065360607968321463452380818336709810890714296364176718715735704893773282906549375920140240848107933130269680561121224666269649645761239056096885066036096210151947666749823756235460293616223320676893794341618000091113428657387425296493555970540762681832799963198175746500157644786038292299979639402168395888396455559576280266270928092341951266894083650028501579829247134895785798959311933590876257751937720547502776284100909024262080486425314265606198485036988123352468059390027825812761970834053925290649977259274419321102921043296988035992483021604600009167480040979366143894608182338026552633545783923319076295644332219024974835957481324395903219179562483908440894052784514533690931134568890635372779960592584143805409297300651295111608528548230720088712514194607392360842265362837887272848421506463701839436211357702100491335395531005521640160692043856328015839252595351097424501831060883393575314930167028736197612852653642319707336121056196972434650017487470098736884545319174894099528129361591766248109514924702935403907426626146177767947039113815496025262214674796673333015519620784504833801723092446193676838181723446631228682592090722166215922603059018343208449565723112533707126492731796168215118629108846482288875899267471863252713037190381877497119399743729123857114158930904427903952808394463121295705683852979432627692012986788287285104278115858467824129766979545366673630449433660942699669952570482148331448430880241428959348915127514724965487465216349892571592721224336853501435977025628810458990254157053881308038014659148429331124382877815197659777391853965294675217057839863473146179417120302703063046350637278118024901571748604730280045397787114387774776172501659841786376438527347428353151137237719620580428736393744798910143197051045456964550722519087212934110242470910315942124102933012381522597728180198675422659258795096850729731533324293267406027004954083066435963360442097815090850151103159622038803976433332424187478030441807525083946411861782257588582220989531104762835085191968245835742775643014280364177749708847626944157726848431380362637576430572341893543592187375615333521288171461600092515216623934581497959282765063732536220175476618410512680248677234700067137749706642864369670626375023734868440752987756412224852719354050377926101414408764594566466925547598979171129543200519550470667675631221047230904663990582037554349158309552465291164036441188496631099627872837232912505411238061177353488681247306734123813791620155916494057448514280234564613136385333292970753114245458965587482858280891316250945798250629686149733487446878741883946774433839671929999873463288609367870260185443161001244506865571843521375862903422121509318464564676775987136389315986399507325484975323214383600868262997129150210368018370430185796137453867763468499041832012733392510142003136906426828377880461980430539443208417403245404335436481996903470246753297905321932724834188543060014673149991898289691226543843814556982647101933247104742121145868313186947380657775446353185986345552192514448601698987835188048065237249447779059811503190661815045257301518640378305102260624014710803694521512935825688610140394070192905548831515754024798231821919423153408443221846874601727393369910454962923896196298643117318792337827958603459534384898176869667604957001426788410489980552016544764431301656610904342134367379425643005550757674389669520078565615515068188637113378752377983104125971648687643814704890751781716158368426374162676000303007049922870258301327431562246271011172169764914520713621643361742955304694760863938370389915908093240305040552376275886529770609864674849628012567334300365118456543730291027869838602531488761889482294863508772567017351500848955209694027860699998547685961931783584228703433156367324915311634496237454067566323418239474414607413381414374497668292364108859206686747145389174424730416219848827530250553693733727951021128861651625354645155936367181643478941880208944960963133799500354399521812950636385594005746607775352810306276902443071384643322071423953127979323660520818806474489290393965329470050204156619536214865237675990759316118742249322830446724616791805859990509333946369967996376622929736766853315687485437997883195133964988294431729068076191019995032511932023283976903086343210196188415163021387236148577083653248720899285312900507425931472681092677837508453301817674342467434267623925344319866201444324499387637963837294019784017005809513616296354943919956340719590509406015036210639844653610521528165008712112414209766066513524233669966289281875804884507560834564473996625620314315940376349083626235518934353168018519225100336795588369443654494636692372902342629223461593511142407617031393643513129199005465187931586252492748830377163987108086140049013877316390993469761186411141338223225389661452290949423175329202941650886278767134365561320212756603277414448680589913163968829407574082555140608860666514833551487225457476074271298083572817131946987631122818831748976750012478938104656179570743099409183748206207539271518612394337338283163078637725150355004812607365570454821018009848763548999186052522694095252862248305003638141629520010820599860623800853535029020460412150465412256442739787545248328837120655741867738102715425506319391022756540605279041453616264775779349070573538895360281726188778700823784775390033782856347072320612362431912745836999197461757519735583815944514394180764492319108466760416050188305278805798587594456553823168748529043195255682090570137633632435068217250272356196946795027986847833969756004671491839896881835929625195733681047160472650450025573932327860925170376075043032132985976617787379243096231219575292355371717006292929892945128225371627296294416113665218483955043112358924961075511200737311237050267986837659126935901096510540656376782592589964785444341899808573304784078468046017908498972065702553107155245543170233132699836171878534456185304602150775377774100502090837145524328142411450187832080464623026569252502818137507927807388507687747011569504973720236023639765169364725309288484924351832973550353383422604612739895094675444010287793524156888986719614414338922608248214687807458230180402407248549125953849536999862131460399722721984344875883491629419935727920067754490761788416883136289640964005628906621284251189581756279494434098050708712260674510419521267951457624677329147814326101372127116141589715005602718501826809645904110307584263033375091433326288760883921573077701113587348275818027207379433528322456425679342195542205507753611717670309831889401204481837715740270020777231389744609426677053972502872032180924320777431448805261067229954506394314198768567504247806495122200342931085192157529278572974042939295877262226776814774386408515261482343232251115513541529380907010887611757069637001244296772482868882567631005054525056039164162549313148984888142561163897184186708079253460010566713242352714895802580313743218590410003539326099590628842574388158109683854330660291496548662448700947699013595725202499368704640711081510751502323897079389778833618329013128639296151074559532111119428068929807334715640655043712026129970808353913216047779334231615093788726511769137437050578306560984380531081541861781142831747518776485412791455024958579805556538704847010930233569746769863780837272358652079030608102874114638358412594778784168359606727535925459237046378042471200699788319204148561428586740000300621518682110696136364010561229065377907958199279929092028778119180010727440651053445684449493049170947909527745978897841604031967643752376821956303108581621886036137401093444038768290698252726043490648032582431906848568513231347604728808985443163408019941965248682334121293768713531988770294611581348406560388745164044556778064583591418071478819291150350927746497670670663924578403283148725446898143954434825819702647383638838714413789710430548213957637604280070585764782775890423598643052544952249026020733058563923382563614289327342466719808073699487303518504889692313818659734574343416583118459623170593439824795263360784554771638847058158511916613643742545240473507559167114663680537079986921358720979982681276117596750260050752478419408478868548694126532250408729440900749458265473277934691848766800297639622098661963078841407135347668437373473017212776060349927811063188456183325654740271063174463604403480445720769976559869891654185083031427721461107292037760971831198577476150324968251817168099044175659362684627129523261248308380112468572426561633057073771561478711037458273095864764755437905250910313170362120888468272838712729937752192477431307292296317783266147915280362767416958938647298321942711180767687757613050069412178913380749092547938159678967231135298494921948039869932256960879479596661940013703079826616604794384539272991656319319405035486039708293541350385465095252738943063641370453123323774629837772976293846473873606975493157611136116624098978504124265274265869249097048091433488785446443243339355639321895796259258070486310146243782580451265917359929659315355835332319513717234800966594646701493867708075828973903026486215501563256804834766471269216141982533195888154533919746129637480000845977808414674149814956885845673626847322188173490003637084181754345083633321013298731520441882837580678127627035387034022830932949136412301983069674906094431024648068230248590116605401402933531787051601644872879132989681136133562879313297714205233011377627686901500152543754841207926688997706819164608106156981354095563422169979613660562424834680855927003782479452095084461216703135767512787869050242556975271629939663251909553811463228163408025030765232038160566448817563752561074870671399858506210729963072647531094301909727561148922778689861299766188918079911099146081795855039314304357582654051969423568250725915232269569453642566740281945307925867093001934090217899710983103333353588540705426746091302339639034259915144583716113498343502068353348236976750654236724533602464027028847799083592719026467666613221278748357072466360928574836543551467208044667531752987750457214132124160541405297139846951346382456106669613992624534028707944020400768493757346662522126777534709593544319693517245569013431854321005307695437483342240872390583933651886757365750902276465949479384596934260731020515097713659731143435778481416005305280069711478898087318269419848321262446331752591234068961151697057292690560410364696273341429164124393413787372836104081535392989981875099454367456937628777190260971061415596487204925601350578199811659832686743835838082221571823683287029582316957232822457201222174352148860834712725323813999730939860728486287894214167164284984894148605230549017528689646482007295767986575184592348326725059678675057123569553614911333632870793913205897790400985325898841700289885551383820338139278067241460277489599134535991845975605981258063465490059192120904591223709986735105735114488690203176222169104538182395852874823271077338126479505689802259537427004485424451062593523284845906648363004899699446029408989696489217738517794246184302126496352966642234342705148258939992938721794936235865818269780683406615307212829512351957639952678763180912883405884454843694884410099868053909170419846717465839802166580900908949914807355382233575610820428916240822296095967820946460107245045307215234087606507562437697995835226761648378909221592398185991188633637095656664056953546621708986087264524053332763682433408160231470364858621361648520368846436893076801114896755827002455163631517782978968304792659704795180155392182252455318103951892739014592437517724229781444237082185318262218860817794540380632980761304057850222206708816939597937458176711608667735908976456839367367326379485636219125427519045547769613500837570741593584045775246792716043992714855420767814853292581381331687485174925589615149532666695565166988167605802233416820905404029007142361824933096707836725563550864359652420069681782115969903737141429292787372738411242461037359523660823087970688632301464883020003389762343170716675736923024647982663973209318597502909480854485322477424707180804882827883223138639818903910006245478358307788094074194858541283275242491806385426002102124706220415938069533380368970377348664171088215815164402165746055296604230189948629552833237529994594214496010687755634810512873823367012897777621513086343337795860795823765603962975453907118168532622282414605305266021414852518727542294739218035183821430834406405472415445055024669277042869086777647711225066530801912640384886835488058447714331185727862845947353361704733413529663116587441234127908220259083169807900538989809614897011793846768105314403229022139955116127894919435611790295082114704980964019612175907617943025619576516110073583634044140288077084431514917742496421970876988846286686910454953688750199526865738124787506963706415934272727078159357100763230722322929094111974464528950146749448586076169857372950802520132133934620559583448964814767979133317875444720991911736011775537147916907466443250132386923541446654280832794063260613349278632836716305591356464143302375832100669349664721955187701212527067166271095708178905085893898633727208438241923564750367128067872365198143511949692842960328596231176051728250657950161273704384111983858199121899399302192531802225097353846256398572301707597172617313743537470304346112972492373395782236184158266061311285376179373037065171471050021320120981871461210784372473249552333093574754047488936926584848280177589059468925293562192022993945960477195357914377563005832400674183477013910745421051623093067275203371897130366258012199422000859752615820864944753525657768634893401604923248730471306166476968499172173619154023358649540479370106895813462772847807161889936808242645265302630950203801999296665430380069940509833695355543974509680415146290297647574553724449266499656534289211676015394192731461875390681154135630393211634654461861553924087643725985166696199395968072297998557851366443836459325250673547208842670687243104386766810084850778015782953917013640656526659401808630015037519399013041987439995727829139293496399939265915841765428146091128257739959001431078981630136933482059008471185098848482772920652301071112837074903576701864099091381408558892990054540119248935967152649957037371139161516989754212629056667572742287759866163845073656879081511272933928834780500628301076277664411957016456474747996703209426310139212463683931219636721515532536190373125148942412682326733829540806409574526154627069458777214681223872806255155695485067414233631043572067508456813693655165338945848891365637599584776053700158427006458097101876900944625280279480906075488507043213225587573172958883868693564401568698250361226413518953692700777396949773521257954929805618286855741108363971071974829590090924447677285646618343738742732688079428533917361491984036069680965102001051823880396988465785227143753728094328585756608818011273266570465119356546363600617453744043429961248703168852649942019204896258805036550822027114099851247482583284458536422192861982374431540857921390322921966524610124805654794933641192408465693298206968336963289160867507988629355240067519340387011511756390661884663966315427594802184132530383115532514516574185077064950664798919680572524884943917846181821995954797686268575035761194095774021468821452778086005234943265587205209350533200915355197465036124337089966298088176993411582338361221557392179394802005161380044672742477787546882789433465200370057977950583385475610018968844490547438960044184264967660075254237163669395250216706410979667778900821999832889609576137754033020106500523407593015946060025745535044534334550944892597475927614729142878288863791076107360966468707856189905344126215520779991541313594004526667338989582519077027926832411249109960924669589264408644554403328056315940355553016388745656193904888425782807566715048865437872419129480809582479419961702741442880332542217552060543465434434661176471720156272862634820673148991645124889053861987793808341137122503304997105992974659245134706875830059581243452943786724831850577267842323704265271748082850476834168615493883801447258646871855596519062388595550572792792140283441960712538381091607832897868260011125375518965059243385087317512335721059150625006118764921003400941705777985797966131313678167964937874540741194238995392164241673534407770071218763393987596968925145741703853272839143778763509972831882660229438909080483937614467586427470979916288801143942627920526016980986162952766143499957545960012780436954072719985763341309099824638660180812601788341278794950516871913531558547509077098969083875660155578448351449989407449008397231572742109469095750972082311507181869498911697009571339457343129572172049453965379848897824492208209081654255500932377266394215055455890952550847976635862755867698650180380686731339329269697477857631285371386221054172912933379970892158402866633731435130096845926441096972291169239339809284325390594601769450941316884473180052780698239921435688254321164040307920456825825093030880131937876352946747791167142781140690509229938258596166217289135611546372685968943914700681229166020721257003916660520815931501779958260819073099139914980306077684751159063639832772613880699933986245569213953245888361320209569337778850787519774978024615255937941940331143787292956681606347613309925080773922433809370617234971357982014215724655522550551714234896580350198614389036735300801366316194998351817402191643953650342190503606033281711540686754148979486710103584591305507807579877383055734620807964082663805214102201460719157215323567216293524604904326496174654026777769837968261988991031671153389060486518952084433646680196326552225279177838054021404563819613132160899737942149117422526600113623040921357935851830890958871495763021165461831814544308473077478297126113446572492101999659142312252140386538236830690271879619467509513198882649025293833245590188956131386342006116990515150601244759455098007164587080132717038751544737839358642515736845314917282348163209595833180902973432490357273823831184056877386359915028292172534319197902396777767706050180882866720380770036091091170510622455003382804569014649893994992020356385894450975421615707836054500326312107204519809931963060764892098415670675437637309318374982192986028847880099693960605487761396037237002433707701090401194197145308062084607526792710982688500760054967982302862453655795602812244209808979487006448917362081598358214703144629369276730834018051307454001041506287228982229266948689927819871712138916663525150159907754443468167581082741089280559483653472262262113542539612780265480444413147939577357516461206381725675119189702020390049704224807824873337871541189599206428034907023566015326758809437793423917498365676316777051989635402718976548491850793181489205545300488426429151653402798072004497317958691155574378418809435735628562159740536515576907707387128793825634275020490013816519295508670479218617076383641434825554672394495996071707710809203119873643870631965412268336985741757136744418519069677001383744911433365042805221792006557336621466822034592612677857550659287377914241410317728398346919604062370448841946569918644449402625303020557708719647041142938773714012057479592708721356996846409452923898143806190807411625996860893914680325042802007708924914057381195556698493135768812019567313581714841843236846597977027398276350036121917853199463877635007872209433589858766615432471785059973278328758320811454611931699818737186970883580976669260823908329998656586284814066168390318551061352783214367341457101097178180941615605847226967425064200784489968810373169559220384042984225763015543691852569121685143941685080374438044274234124712476179390422980080293952299016237213616737496125841718215414953443646939912277062983862858996499381993657946436704935566297469979092165277496592691012790143420637702845595404359114081514526448943359723641131493315268422881739355435587846220509942714898589922306023759174211494848471351486423340501101951499306387269620548112930916001823451626932401369302689133701773430217347841391584981427436522853959366907632479781247028943311322824790806360511013285890845424121064824769431766781937206123223398805991969165006347069133246601602433464535607207797931293517732506802214063982227126569162177511811169826426569705138254378083591394792091628128259348186143138526131515517768861740385233036177967528850451281489657549127658201868006640387393868379624040661380213379826458278055322046449013901566354608880892577525909181966234038023585316638670331114657620099947325052693615326512364505237490095334708806486520165224653777856376297929358430659889544091321310731397287767645221043109302664623261005177226343453470591050408776363094973621822337784055047497734489595163606755100302362768231983155875856632584320276908461164750600946527572154588723924945669254831324710126233089334900046622099898423609257027882553148978626438921765645828364140502724379866210489973525940554082454122303674046190744098415809643314806262876258311257354710719364997417992636143075381717519464492757827610636566144399597228308385118195489333538135976707567101191675973679277296652155078350006823264935466558352639486247047393915728248623032881434045166331538143463861413964033119522913704719538135263396559216829234108439101667187364223667566490225516907890359544922331165027583772690818409601531882439709469218372182886430898946476173893551181960251835399197340046110417558475044001166711674582942589928052568304578030485416999679834589379066425111070092572048608070061201567689875536975462975670975438173628813064141738764235119105008273541597072980991382125459826581217302984594456293488180233007324917534448458200578446439148787648394108256770509861796735589133448132078364075947094185336284470669249701209655954201701301248827378017290231586991603428096845597600689349366574922598864754125010620305766113614967196930556302984185168672451813162234459253962793674666647436667162758821561164131714406729986180616891174133909401310198279230911470385383648654122967888205073897434866514442767270292754303444491078818771260990306628662957839751074276804076978441020923101818640164819139789965261148059131829309340515150593048408485286342847033603551218245293534332146463534523609651156312302333293981688543454713241632402707244626214458761938120133543905658306337422268609692154708141546476181767296549437972652408763426053656319607467123358047617076397732901651854569386606830524587806427425339175673560484693818200945900476958532080444763874184529849256764569650144677913055041277985148267757807210551066577996855751845922143725972650284655654896986511486774815339754203886033540193948655645252684466912483840181026811177729309075822756843710553649625168320004456448107293959315047612685624867275879459758912458306619177033836375804456914895013072183579112182866425738201445313718056165404857193811505063362533066529704315891895702066264516885022314021846807611760423165194590271472597073913191798748103644481958735165635612941811134139087335139886598755777489468371472564250211956779147107058905693678358701731989898365178653776991469672280179802801401953385670365718042634130745942927280761137845355550998554372058812282750272136710332759268195720455634801214223826279475218911626744341001024415451764401720210990074766947201765857959285864583404874309148721855314604074323579379771740604117888220719588567938589443255464006444816668539286359529352461088216010176348968411317607559372157916823641796424258109777240144706056026750461014878598857332111514892789310176636095889485285341651356415140167239118951642846565649917176344829390488493234549104844735863574088121648293091132649787553784125570749485972161614079681972120265735228085857376728268301304867806303464070370759275634832976877723728104472272556506487454734886923654094897381476736321520069159741420958528693793476801567151682318194738255867380949088242996658431258817861047204372102495485456220307397590936615211082312621629408854312467316826383078215858548607551762826473078141460213403230895664115107764703527264309340293824500658466819977968283765151611463710983782844513080549080206221901570444826414606740654684388581029538095240386222703211723749637695637960945997710098512170363233380468684443261996659910592195440327738090943806741694969502698111454542124127910085060322018873791716629197457485545093532274603182045783229899636745993803813098889866809907133129322266021205195160102866434735909878398700319581816138190156399420531033996622182642777227054909111526966931743623515768640242535826875572382799643705702196049213509762736035553328291107856465388273372296530109161414000891027209302210896385449854624924135284285409496842102250135915761876164568791737756808164166321185005981421968335522779300622498793535411394633728277583622888683505184252225444004905390427555343050001581600818084593828647603494871767455600368471396839556765831652724941603299042746131255415086293490031942177435027061701130116074810026704682090776373147152076542967653734582851654332245442388668379583558245087506682231682586425641142623067632759655540088081699181041038996129652686160819574470223837424255825622344354579208037560501314036840689544336495634519578835368176650435461255070543564852203946034165529683009115254097398092316502279166941072870032735008304736929055975705532186970642375942778548310883640755853591235876710932999680429418108991550496462250576308879681284818408448301119632111777966536359379002256958532276519903275627873621054037892098051127280991018886964819556838608626530529453108511678695553432174624621059319552325987915115214904105223618228478879092395236024705619505724132015482784326336558210167189595571041226000809117555235221883389633501084043173167039059069742813415021791352086707129139406363690065516226619804711676324390527730840969862701450925994486395772209602111070263994376090606998725695007116973823194685561981785730481251497223213569896934894593426933782791163841139904005586140284503695740402073569916867504829334965004613782434244718126131738699774482772733143969473017033297128064748395308673190616065553777705142578726213214389139875715818484633447735636519058389912487279774912625420734630826514397994652122642116456174025627898849315264635047763976722267565560050685378268781779425666406586278711318494952390344817716355862706225301733541593181078215755664892327756142652663201836312498697092017720940780947706289840038983311721733590200148485960906432520050425818700116299696824537514936655935975751329854773502689124911171218804105811680570467517345533943414088260107196694939625341647746239655167247220227673968159483825600691544310082133269083628328904351107120944963112073077410896890068999666109473081542557284256986486953557666696841766386966751858819965546225586705888581074168879716554126710128359725408290443397925240987244641770861132135323922972504464983293964453604966760476368762869043836252770414786343212385366009441547326870289024045766470649225439695999428967334998363265733491282759426522136947493934789971003894166201867835713569267639307749065866730272639305581080565643483049555272271446552577721292966172085008520097127812982176646282509090055843178309076911944067348367038943301099976928740071330661304382356684169352503477443543507945552945952706021315449884491929662230568938500736664475206626768059414732675189848135996754094844500672243025679228959939746753430696092245771816240424332663512795938597816956873327417602045925459483969965737149907689183979345242590530948554946489628917795283516107263993413143454481341450629936613367336619855581484627684279473638614393419782097408847303600424707005720142799599334104169768125638701719818756446046796782823006828009536065430362489309637677445771864243640300217921122205614627739795856289197789782200089058716554692188899805923136935329174555083905555258639092196561690368815778594042684880213173616204701444389742707457577430371264809044757150219935127202141818200942892458696444107768456621162662998814145615658023247894928533840593841533244805941628427045610816068655941060359179494932149937078658042402173696503164393628501038721136320543931239161001106449422839741441770090284376528593070198985056930576064649420465379106894291856383494130022426389485996684973863110621535681030974671129522285735472198944356946368725812425893680932173255185788298486194862984560864721904302575486552376293121607534564355677246538982953131257318743190921989507691326811956684475497961457781586762567918820490541122972567636907957242782993177460790991455942537977957081592840682501261759850840540964828702041531217941491191516712561245541499479764175063108859172929966374752266136870577653433803477730041869444669964450836541464984373336576487628817673424820561864311603264774184571359500181248776600319967990306361676860134423138667606483375556897956009405727284988951936257075064616207926656049599386980937425124075912823391860380702747128298342809905164662119979982135566679285036274547802919155724266710769294585869304616688219694740472610892078294222739558139621208114940329240590231390426660363411593454690641777469347844520684304365662550792693076557517974365176528522851317530413969035900085006798421359181855402838481504586463394071705498053883960388046161597487053237558610506547752084530471761432150879704195576226052681808878377403219209518465960918816984644037386371572788697345813565623434471928535058066861999206004741980417137337130224682558073386378371504896841023000198908928364334304514605705958136709522020775923507284006959545904666979089736400337776668904297434750051290449921891724974460069195596727470636355878843985761694221464393949817724009184653911093891047794113554971093295931061168064862386739374837096374384500377217553334956887618668144293413407301296137159526105436043796680722438567022437160837395079199033573123322863354728018983779452772875961564581289796388834392359078409201491929389592605968266115319430352798277086088417116280124069902312698798783202964922555403156048997699918937036969872245877868559447866684561713545530726950000611166735476305813060981869458039445351950583042120091148218774077859750140203480549402940132712338366148206761164376889476139360180216608140367576723123472607355468248285877964012578942752442230090725722326484633265288872875203090582970740405289873700561803783385114536378425808442866987193335071125541453088848254951499809051142438094524060414244659422195415210158868681775472119729342655016261927448069021120734272582686363337044903292113560972471869807172245408425095192485944915057396107429337564743929853413951932243466327438869241216608566118677944986231694860619129839028770499630626453943789542203871086982398909374498316172849016504571771304830543149380927527807119090989569215720570733041267528775750655636510091234134319066283016788236770669312434360440978029965815214919059316101405568455275214608791211679175598088034715976287975023496991280974382100802557635046784097020411465202861162908091650859984764411641798350289288286621099018045705205992471050830191155858317843901405566736856903025731563188025876728243016167377287786191271240517378385559094595242254948994454461230697285099609145683973008939293326783237273290606721338126575778527384697964015495451686245049260043713243522376873326425677881521356056713341371852620195166216369450877930622551802379740103127280371054383744397555902599332195465462796606672416784588660574936604756939753780244882504774572662226148761973837066887806826844762708603686252537926846316601200106949498216605216645205344057124610671225362185418662624538432585873078513049267118442516150805017938816290171861598110893262308252354039742236949302253700845605471707497920428175017452135681199120300309675132860188131743611585078310169103694817599703857774881315559928179035107752321311998048663776853510757243152771327009868472890627539223621393245801557617564077527085963948835205811021289354187756788202939392628102018710776050689459913980165050507064411704264539104436543877009169838192653832886549351906230339077712606082510739974127999936982583699281656026857512583699843707847056751399983624480720907647229335691668412478374038394522769813664055941497481071224224895155649017538078491617091465770234799997813013302699273151479585627610185307258209664252965184970245345862111479763752571714144411122985113038614892862325203105654354969882933202642432609730141570883841245177554146064756579012600855747857582733654848866483698199840293238409109422865034818403279991373859018930157533021058233060051982142988226011027405469747957688979529533489714893710644253192620594605886559388787458901711956813905901846675341644207725992948683237724774666724311084808396781204218740029083711503927266564206706050340101616850938274526440003816885616147154728894034896218967358997838085819396513355150320669254934899749063559235805029567056698445080181713388008895531394006085721845534339142158246600354309202120989094447371843529533198470451544174193956743587327875560455354282319696317219513498491075913101573712531032097014944342330814034797996959276645535195414570008205444508372212675772971117044772400635579434751940066818582788520407407136328884612518610556750457546129598671882562211257811851560610366643511828679867358188691538638345732155351176738798340995726215887622338351884250931143972021581452068515775638995428803994622074810929101938261428708588875551908799564113352641276643339846281767215391017509098199796586452095045317775184811489157319025583097788709022646863499065850480699735548840780899754652206139280511704499837247497506419294045809193904085030939401011539926228746874249110282095820040833483848066014918057927705963099683149957508776521347023121822570423349744532473284757450647367131401803675104308442892995404093259681517833921332363557621240602300423214031109209853978933680053943960193306521089989676574251167887508082014015903122786814277351431318651141764693475264704136137003638333934141949020345417704830338975318677924099561983794298767062089720867542018417159853119009887154290002098869933196810087956174051935228609509034375631445637351245533404817488476794022911904237987902118865995810713628329649005979649348908875826008640209102143095220636366399807277922209744005484476452755144062604449207731803951060825221711410888359708662031073945839907757060774160666921835476097175935289311091146975402619779114088380179553505869981677149800200922005049820096411737047137245702976345891180163301162732522487848966759386088235943214041131065317005360588533797361250648093358085713057036417570601995477462259596271438812759642371838217708751180786069587876268926456949686690326528768483436800490221693530397483223795250535441756970041952306624186894987236458274596955698808849440606224874964630303194425685023831635671906035812518158778601849399989529059196601291691698322223439355711874708569731171876953525690526773602171115384780108819179465160874547415078669148884011671041203175288044139303792682896477744357199129698600826906872102103428984731962917503805422376941188799189283651028911625979325719031250405252521719135382109568728490591448053161103371633682076409230612004624787666542410899592585719227617869689371715041698582116622951841572723634271370566292883498097252678594922404620460018265418314607788047532800456180575437259965572651994296518161873295661178377222723299654836985796390773910696294454303974638857162815359213885537030462245324806211077349917446644156846612821484264551621063441487346407644575986910318390312431817942884178674183952642991939731694038650038024481574063483503916833015502783813074835834569953242809183549604926880562409019405520402652745420782111067212923355292833260102168262802437961780146618886661061522952649811336918634007377010119916546864898282549361902596792813506793851806256551170769555341402780830945858856895847186162329978842316235346900153765073153347866878333941877528031316564294203338596118920999688785135383712631030481787225486778637674811808761527796989092472188978256044952622070916559455762350064008178566031677918489947150424710765648387339242075045284063494459903784997535180313597948689284052807609337863973335283035482570337968782322501779264486630719390239890569202321641224971623248514892963923514088999368239106607314775063719571498582663836278340313250802603426085991974758508278867872860702754401549320263584738001603583731300873632082911510462960911961581588019256412464485088904010098683692763520388495537696902711642116282147050081994848756359914369492631610069684045200062648071343390079709583269276692647158407711257926487447816365680651803315476694203423547106430787034942126308055284235565305338967027237770670085547834408989293334592035899241368694802658158744368429725868960577940271687170393651925815280219111846245641957741431718056192427173242034301774961752175633346420617848630059706987678833615817712264884464181633155624031355663629160051365982540076881114988938725122537951944316174623086407599115873346062307704745960287246741194880798985287920582461840280512123674515635222349550954962725203147555337722572927489898365809470792060400629582677601045641068007246989324724269764521285445416621786780156861439918098005768796683748953788112331090626830339515709217944005884767409515807235541183736030751643351734821307771426340875198023919768308101185125476938765297778513279240289890380273913433240756073763937757225386805324577900380238141772564511477893818061461674423002584393388674237404609751525808934491126243773880633712501350781485973623924719545129063510273166494196504148962377538519501305233249354317013820058654684057829385253033324482724481438339248033818697126627600643725052862375866367336006961464891248501480908511260958548100843780956475425148334502602714886910709173991102320516924458210787502882116605073239074834786397437683344910867111378553647546909464651667142335756757526337406356301859698857924630969710466126187366265146143557684078775592571524524756708898841599709254454950128756865549758428134574368967468282897902924885714444413625430851255128031102139668478880422375697532710899217706433129314143378259161386209661643208642910679411793389867468616276840483669618615396251507318603571570963306764662687533580834395829748310762127533038654986242817446061204384885074152191397843517941263419313683110937583981652309888790445470507878520646552423440800868015221149545305971230330161604049401535741607098875445183067671138269473008362788929139253320243453029464411595711015769029234367366222791563864327032585995244436918206382712573941609015363366380188382666678593123298669811766672939952731496967395428320233328855014124744786674365116489071487652236353015718978020133176115238408371279713570959391361056887396100501337503371893045148383037686101342900120839034202682561011421501377133325739929132898311333555826212748552146108735696215321786700508361582253730463719459072960577051983224436481132753325365374209769594365099061844052127589347176918768122862067088076396210038808820240833093908216737436868169685905413283955198756018439526462587669127869602541360655544816128302037269946020476383382511407811366843509803062776686923594606712646140944527802733467599992531428546587780981266840936348435801364896989314449069112066523118416392942673201710105290273694825304959889453786453301277067886878309383137976253499672085566308967504839137390139422941093693264509086746726619514652391663285605062597373848954541139058934227347201312779444218114146107894381680022649223039101462311003054013643215246103238837860367663525393062059312466595020518788765387882398137608719436148980778936104893236413339931998424717333724178819473880411203413524269715040753998025491696685838176990862455939991274224707740549721758954405521819866709329477266055605602706210772077496726205504582157377656918747916655868429431526725960875777163931280232912982506762473030313356273643671673609344374460779489829806680288599538056953649825631219826669097100480138084505141182665278214637189614980944100175691556215337047038545914334919312429356916882990687328339512791896321014796271423759374023203463136955463445126251170838693194209099794550961896442268639744179609354603012426386820778632742285574993587013231378988266928096510455778909540803355795645136050633574391019613185887625311448691756197615061975790694220601821496384334411812053663720708983743572239135894517100174427168063113217807433159685774845716693605747941367009376110648161052145102615730435664740624128558592613370961296778165178656097194262669179187120968855531521544269455008012643578521008643484689598866647044433926123197562341012015008556656765204729836531606014719994442004543623536531608255671951308238554804182428069391634989100763502976351374157924400523947827473509178781914705424790446613663840315922166942144590013832131738769999603983560263774804149017495791231194179800554706166807519530232007445836021825054841814512029464750457753537106995793897881144909089152175072022865467331479579089014382073454793323228004690025609320177115229221539956523972122287761585426156624717722547391413597712029564346358526882125629325458457339875468759636090487264773277014011140286406481833358702611138072990453114662297469238896269547863159985916125303798887505955610690705907275409836954798791454032323761794464191525255121479187434889259141611711692106557556980200555961459954629562997685130417878487861241057945052461044283368108849258695498635504256124760526361582483635540411929119691866598012374476236553171482925494334669851149698334892223414338675978393428645446353615493276244995281735919277356442579637665798928912692020362244548038027943405711680506972372226950305888355776441334186149899667294226079335538677759146010114091117339446661798401845109860397906447101512939378903946430404957638973051860865925910393905069330322370452879785123173341530178683683345779211733078739310050117568025243357025742523518217762223042444584533217766604774662863112744910029958638844730169032570044810893442460727846614270374747665846596200953005845387893245147595347622854515102130357311060175431489360611565749787791363926167938669507466675503552583150253843107996736464832354721638669104489913611415163299389471072385521718230210154606418850423868459154682550292212189855267088278397698616856808551135648620581052261631142639479692653675551341204400063324792057221682153284193564307829795955221513891150895083980769372534362708987872488365947466603325999573575420134858915959599200359743882574429075024431889748361364967536986674865831050933516599493217415970360227132679374012884376932753598152365003252626794962774469476035676220034656991409335337928925913543116688109742299179756873335136973473117106010547243800270868051695858543291675295612791810439753228763560866177411913154218867489615529851661664207816688178108903593325789520447338928048996509153188966730444121503339433644733485469820617155619897348713875317754466644629671872156415560116263060519685808663422578530451841081258125802750743441418784158161530604246067543016425203914599538184427583465642865610566631521145552192060356432897801572614289407937370522993358282876826393123410135410142175848302697860927873520869012429691684690349320872369612430331739545851129279912439454215210780119913895647994089732225065104979217874326119577582001185299483089479562173662210262442971738487842592661603415265982575946280043002617853689964444861460225158880514060006974230861580626832925242850994903899639017709533969660881764153449633296984741462981682785292408581042076528576059268535891254939022637507884880675419374448909348898592160317858074449638690677655931405122438375588954681266254371082229239100803561082613778280079897467810329714461073430929086670942286823724111407210441132934951208460177365275002590162425041501342463264749482156541534626221379857364527744727873245852553965578370014686963069542643732465399290042052555399884165731809312518600350835173386045280326979544656013428792128010529373673331027063871168670533785675073272635368448991903031313991928724731295898288894868154586628161658876688230995363397083930189014227263222691430520333308385158065000787709053732832486865715429643461630308806060424192958780107260197560282491581014710515478463722594641965027155686480741231420470063305154942620417683740399449175412655647430830686357979919827759541924576040639763934951433887263402991926517028010294026195791573870514358026121665447751869869395134838349348112658816335219275274608552284093971019805615636346095763827003820476467028844904947541959916284286192001837335391674343127969760035960596229620044345286791699529317255141881679928553249546816509999802683377426694068294581327051773812594659071394125821453662446265674825606334212715771234114706400608651282221380397209569257074876760315434646302193213983048652492926009728733373343901132940482241577317426662214919307162231712631773679587584675730447883570571407911297284040975190437672373997093199321396246681408953297687354279558189708533257016421079348106006726282469217009846751460167247416897842459073778829781859370418852974467283363948364800625261986120506030644640407429551118987227491042793477144792871596477230663045386511889074734707769551392721461007008065943477057880426638158708926519822362637510324626658771920913209657115983574669311267566362512082763013606201000991621552454274444411654984718082301706992237691639790913723532742065486350708071865472140996809256112078887850906229503673046205446385365492714843248758606435672837303212976686388092441171863978408927305861940854626377872798093142025361478273317486981720966927087327279513875718805063639195182145619275298519800193934740819152702510996018872768599473247506459631088082359432802235163302682808225095843054092980322580060005028048015471492198328918978539818062670875841726604048209707492329933473451346351204931435477474974194744788977750178701181813223591718419831243774012684024492603742216346776518075207626530248505970018724338817849911793159077852208900951195107462417041110487282114903071368502493090517484408739961190671311318168303118951855372466620582095423801520779729909882759906512719183507035888036271190420200177772347834753886140312023009773965997776621438207295136368795804808523202096363436869307711470440608642893278482029915960180894831275188167951915641467065881307942554239470153513562545099442985367270414757024752742768818984335976975709823759806331513976155982071471412086816702846531113467304223446425982498167829341848526783596819926234810410262783209039499423547064946467475616808601469004005470913293007508134422484056162118441356603584803349590210331031393491278043086861646371793838798435673701786089991559393898050148192259489163065078513240435458188828752904592665469326032660916624934518360218802057719592821405829836957759471772498070058278046485755100297242296753668890196894813153261357643640831958108732298893202925314861745297774785705297409644313716434879653134500474962044193640100623558157715093107829353366533129102303190952993931334805542199845133419484970918674910638557150157816126135723529117470217563254135960277803516590860066704692484003252242864215856495333736472005599069699248612978647445661718565703575776560074879336182600294688922843089573664601769113052839777993352660094142342996355802167461094891036495462143703932947573145574231194242728376530283797559615441907432818790154347459688684390545480691150555356904515755483717094627031239875576062664038062739248436070837327704203068522206474581616308144083393201183111305084548965610908306727304653994378096823772996178040169811476539580385666113088532776796724212300849977913981853856539156151064261051642916051273672050885306048113329006628806685082802249218240790712262348108463299352944191208053718192535432938991132735556797087845550538929622918611253698232223591123562545264815042978764715678839436903613020489410019821537854574616682812558302316758501442313000711898233851488796022541099207760647579214025875950298174833316621716286562574007528569705105051521612403771036451676446256473835146988879051441088847015702642661734455942487371378599976897135530790854061109632343727663959503834522122769106721262842003944852263017859921497814783639949031688194667144077647977545252712009766149850723945592030168251270388336419337304738627435244042504441248062588266514779465252596122003003216133585361702000542969311796905408488934122990344727173597193712808671310614423040694681802995706810673898407977913883962216834631923177864825188904113687256154966226129001123427919926426426082888637953540170894979484942105786252277542529425788132367949866325137854682739020917822642798465426168696297881365259338373418342799474161834371737051270827073887629811641531167156885169955457085447877925225175006657101407417145406578966104163315744147581393770108018336935030511803395339206608696306564631156931299620429538895565799938905934094133830858590357589928170807227622476733377789573024036381592604621620569659008303243671499711346731833048419711250804813554496134835518213771279166363421251131719477863015688195218321618686437920331741249330431930475966814673173108105219943702734047453356949389143133137743027532956248765118493200133583848867547553909956265885019461175091678735627911013909541947911447874163292497908607459513324459879463687508138292040082127489013008218374267709526901796628281060629469986353339838534531626339243037332969337028855250514942827477790139418019877275472644617867221008715501963780004613020075840991721420085597983135059884102716020628645864269584357467731561151612094729962466260992686615137192628492972700032153656245865350042343938240148104702564647493916099099398648806823864342895152264430586282344617262414077829459098855322077175125693024647751613006143507574224788172606555584706260303763020082121180930855273387492754663951106675790029817228355888021571464104656631544906369612844824567800072370779440817930074656496791014823489250468898153134300528456631683847030765524049553399850449224337559558861478573274361164872755879731860014850700289493977763876184768249076372593518260837432430413950413302128681223906124176989344203185833401780670717521517959277657929087645548201115743197329973690372014326757226001420885359247398584591774317546860309446929421963946468606025517619864193812213817577914796912556022185566810268343083668425525231799768713056236501004936613958208824955557613304692225281596830667294506575992105096360094209639798643281254299358090839534513457579952772932026895624267067419648414016785662521288757800464230707933863950390772859724074457679989069056985472325935715157466879198346605152032348482273298122532552619559609383420699926556966440782895537768137808412735084662780816541114048277223267139017105703109264820155318374499990376322267587002486298825969454902329373105613485209549475763600183973657662011100201308748213421485265788415255976678491001410993444299611549463005191823887683713548004564187390226051750218737594905971551416587530886681847998706043331452424742099988576967734161444331371386034384909774337415045731233191556063727464577350944514609813503847557082731288307212748337730563670475319466549575752663920186350242345372084494604897632296910401559484660448439795311513498050337768627806478562713828697725877194221729380569382146956414535193413633288134515719054467310472052655256586036490647440033639626676428699375257373433976332656240751898586191532376703401096130370279926737019184502013723390808429531182718168551512000073690436413457425416029977930429880813346397511247717478318520252920294759156469278956798465797587784359845346016037337393087978896946316713271669584386339461161929543163122998145087350382846568017998151237260972120781413494594076996554879613865265586946909301351039902340752558463045627401181253783445311927918054787049775272088891546854682086414892292444851635069283018243947448934313417794575178749247406745087088463130160246259656827422670026717227481774123317273451155387571676293104737059714701806875309144874275394620177155432472071563611165936381030748403773741395139582090968569884774809955694879815520396852782644377703779950351228489865095885556688362629244128216397321778987816151433311685574814616737706012796447085934629211759467895369948930701066512779446427861364375988691031930159491515062613407663311058799297839859664421807272473953390603033907789020169989490438477421592420537578001517534682728633915700913722695143382370200449550589657198173903908939585363720022596374029639237296355728056062862825024747434208491182644665318841965576329807163084547298857971235183303692120697663356874679162122074085354913755690733971792702563016721092113251541879434429700649281923701232783111351526081612224922366734284100371991242648577542213084658340836202414010165160234212523478433974899753599139589236313616994204749770137150466869104126586343480252040269433806758698879497375964035969065592779721405014899706095045224660790723310090529198455942925160349970476963570443730200418055946233312814814275881632051405566457285257348666871910886545088358837817542317571504823498940083899107445308968100924897372899108527600887449333244373700616983312359469561349767310833500218893331355984663176270306099904584040898022608660747680682257821321974988842431990810652080098109045529140464477999558655217836321618820450484274243595150684732670115024435879874662088304527719578197970314336023474828672796461132271336024017315555391595248426500748508431586586308660205794293076206558198011156222911635665819835014747307364453636075999769839324872814734235537639575388929793228985190331244709517483248655023751785046741086217680876835844144531313428334239211909832860848531513362997748992081950061398800866602473754644286312162299809217925636948787653864755330821234865155975604957726467140722697086642082965613741445354729385663027556859937019355701927279598326635315056575353796430111525862587667917113471965254044881333226242533821191178350421554776371498970071400537374758113182953736102896547972186283402317983801990853645778771207442718875108550680493138208281310187885597898939964636806216728455619334122526324003616807038099612949865757363395638453117625708363868325376113643128683123360090958299291777889016127884813614839829523486962015336535271609422153787652893711394632766337546510652596873084912832308125416419879740324891007517781516245583741188084422601938919198417092264273963399137831953354475021342680615284749626004345723028637140156269363945674774424189143582464541644351938800695913719002908763643764279070001558737140149256778895590842200582732970987910278262056634375819722400448771351200368845296200358362943053427287889563578461205165362056766456215237414942345594958483768482752274307908416872504905358402686744050185970738296814255425575706501685480323259582466117085391873460171307655712414550907531555170607230572026549756701582728887955538843759929320783275710672816823467637273174775258728448648150527102980742267572041438672097244318339054167232900609994248752020964186903028331746626177190418672955168947516049190403270409636235984449998906118204252269561583539893169401333928167771507304185446562615812573242583674613231191102328029548551495807987715412698296089311992552470592293816697992294820046604520242134165296840171586436080243927934699411792564903633904812987818044418629848761337886800609732036714021068310628419694706942378318647949481686339352251810131908629331493113934858097361904891061507683866701123588294640992134649295859984437078560060897206989194955513423777992894460224258031572294362025365931522435145390632160726614341810683847169703487328542744373705272732083230773944038503253738014976745722725516492176147273667820334628136888503004045147174992371982393645346045234658300339532297111065106613890104700589403029501727715526858506344742547545678018865131559894592400865163507587283619681227609191947366105746784019777435660549264950802002686215149002118479829766921046643720758087932625104113430988530384613868293432977286917880531677725402737354764306245904703316439117419113699071388025584362830535417959273799379943762382757555785351582288492561301046686545092655293583179089014984235032103004046533687329715677594370673754338302288329536828892361843348525264720673897719189273387141763498147978652754511793757887717636154344010051963168921510428405067401753219606181641170606219568613601483038673939527302693783084678379892477288467388447191210345838535096733558333334128554026184890334965437739940479276311494582743343689569044295816007695721141043616715301104121102180829613256841417332572902791084570397409560890376009534454534079811464939538479164281416680909152538442759485458870715826063166337980177375529898949060539909488609595429326821152234483855247884230144437745617761266290755791791802622707854385297474595388176097811964018346657616862390655459866572832517706607232854639815839978816670000206304846824878072739861483245900133057251222164288161118350179763147565247651581245595844657355048582621531033572898803432700193866217687486256297926880104787315660881305479913490506430470512938243166131943766168081486243563635138226521578828631494511886192931150423759429298898666272340447163385175311076196160654700894864857583766937605123316440984149739691615539595984068419387692934578592147612058054216865629372034557361938044612640712651484159654768777700247394599182242732846008129754583942581717395585996288110799064127288592670652307657468707475662050553030302977313532722645582711865189373547969638400096533008940274892726114870030885106148218373757958901385937059032107459243743362829908568500374655809354660669592952454595591465422417218186814487810795908540420932928324172731178515406744632409070460945298098360877199069301490145112403836990694831758097699287830600094669882279905711548719839305848432239812557240574835317747561750801499683922038584904396652844707240873304169381415169821665950891497502598799437873505612024150578633128572036808459457252681389948445517222329109114526871303727406831659688353822468686924311170851659204974806114745761073446011263346853381958459576968180215246253595520640130750233742283862818068556314026096006095315147314609926125290608205240619912382901617347006911542458980117597598141659491411314822043302310853509394255912941843068395648180588908218551900578451601207122504630160502415321148610684209103382355751228684438121513836378725732500852016524095200195581855649927219849495731554929889766197236824934520007439696698777494334038866545647594978914514858500127239219947099352570233472755563835942022006552777190839309662209623008784458081709079863711353777945837943514968082099196465945560581325868967842380330087701350998292715632354661512117973411017148050411612510550893694122443729402546734629498525183208861090141098675597404392289410770840148697806589542389202003528441083890931183210736961544799125595822020830901384483262879056034603472059008112489907607159214853871536478886154986671325040065361043390764507238275918414144478485132422235493102624555362246793115061378665271908398390118771081951889585518684233028683010399769646547045341963619592105539217373918148335339722058243341367846524299632459127033197056081493173719126914338641418338464021064389513782083226472770323468026288608456025478992580682786879737582801930955717926119019289711954753666984338952202804808185039854319463654256326267134706779608433347074970068134092631000107762071535587608838626351944306514945705508236511987926935558328031992472460129325746263169424434055633389867873731466770974201453542021438216662601778859339748116873894826603601738866139322477681773364089923445118527011583177288245484552103400381034551535555718730645298908129068443091900303413927923569210424913004005949386532697047480256854521638347658593548039695186589803217384115179396540483293475435979142665414760391912386971250734522141107460472938453335711736133162014898808051406778968267859229219390520372516272696461443317701834069791827945430744791430469282654879454177128608005661808464235587664647612191723276628345809124553957359085645182785489062691763311854995249874069558306312257658118287921717609208907214119942398609089622718398037573617148666145476565732862350858834358502769748783152447261438335256776197165867790245143290726022222524941178047342189067594419418916915157813313916911927755850572128654118827947135890713129112482923733676225019224779438129622417571150713090752705039330699477629158627695948097669638400458694310544204315716739880970253014806676554028960659371253920859402181105983189466920413469935832594988791869397063392818642930525054422381440323950260993431264425460335106758751015406000985869056421811135897947750537221359962352511869830456573298428437248370707309793184777373133110960315413589479511682182788170883565926380940060617081440342398752167441532453353594401154184464217756292207001146294565143769371314445229592502973523062354498663846825706140773047245609404466321145854068110677574278651511914516045473524473416340408817589773993240139561422085668453702881804324742931792501832024331573966329667798521055787247726759011369674766044516057261449062839311324143398260958837640172774621206106836039289082352011748291004505016281667306228309189842245729022512230240615725806832308691931693873639417768712939731389066534755573384356994548687345441912861836521596302581400831479236324924551628647932977540078656667544786416972491118056221521155631134586383927655822848532239356725948151723126351411730651901454844232661133911327382186659067852513170459390490946180627521973930079998078559671151747073882387987923056922321922981268109006424846376692511809409617489804106517633049572831166321256478980452692617370086674350148247848183292302997151979527321235405074781894562700197206845959262433596689160930196821438420489534263242912327415519742003332889447058264486476994138451686203955172572508944559214279034872623746162419244104112707880505041077429541309673254669197450153809570150021535535040577052992167092895442171274334177729796502074973057043873200869734762759837193472322207480433069197720007624993526254927288921240148527306590696175767743259239720492224733588191303359795578110828829409916471750716532381578246036844743035094742262879539199026639726296336450171528659930526232669226572782009710559948160981366623331613148107448883523617504475689343235182349710522408720589813380793536352702045486008431418040070104652504652930144650997948079703432007312679794876878638114205481457693639729794631032112204315262444767409060404393407452071476372191458994554840113300782320357435432843450383926144504420299045584506152580174152525255121186886132324306238973158592379836230834079986445013646639020762917906120727240637474901547921524852384604395482681837497906934050865501622283513029487777419134489703421082023439795767842757329469027613635455922090987480517068279146478841994651472456744399774168342508212783585553489514747365004103219276450558875895429725104562854724098894248933916621601862537766551677394156223244185450063835347377368208841331040213782197136939238690611186245261760791386370246869846152156472378134299133636023199935948027606990127857613825866563343577560355492532215261813575983035805466797675396474212626671783397032339054653964955980263774582088996156130339861062140090740784937791664747871046011366296868077049851140032917958896366390562778614069805129346616225559980550948030066088847939910998219765746440944886939813927110713859252874411419048316068907055106326055574691218011266873141993416074553845381388768377402873420573670820473007787927132206493346787884116632058913982744817220730338206928831272999585448861617123048733663493807512885926523675095965408030311284139902640481038048312562204718199098900975087510591820481946464584616287043713052949037204825061239390108614396147475041092248710995554941823608024440551036238175928617221652197559130300350822698041581195263625206318276101922394217524785743789364447419840321033226922885229456269370143450008820544144881531769893900561170157104056301635246840881614984410409002623714052524069635046368751435517740721332454497487096417895946351340377648779103819487289766097956736244062829618770661358751954840374897925147758175956171696683436873983530955448802840138007732550436428056669420443334950611270044864074168647169488846492646267262455444399655475495683728556933129538543873332295607181478446711823660032479349538542925768868903598303534840443904489781968386509508717377679251773363697211298147364964201661324433140362941825964501002071076914815623524604595653290027979379317896920181363504939266476637885346708155702409465774509135566476901187813884650882175190665430104766141477707856297643679255707791200253042665190186559026805920134176320448655022837969256356917706678116206375907604032887532283828331550341927315223476852895759670107375438927730007425154895874289362291047701226747799965608494663992384698676633430092397652891280906385054480550883077054562635374435579632915055609218788395028970647282177450489238278270906796239054605261390075787721163859152169316954391139173018297964479051862590108683293793632952031987942530779498906228392631244954412955665443279835369351539433306687156408906132939942631858302267056026484034871951072040008083368564916101188243622017503983698175864195448220046166301660245035137519697640225829657214154173538651361041780844586652333816320892099788654935178104944122824557288586405188916526581187500838675617428061980261238923781025940004053478818969725277837792090536006731652382090679766668883513622173101794177542488936069612568712683254962874567635151589386981196999165087331456552995917012543999726368613020292085894392065697614553491674392816540670159494685232300623774899655002242220286810980585826450549121673195376566422757891702612248423395520288508746745718662752476782558141251643943536718453879381023330279402347652284409982272885756343224781506000764526861629877336192811775744614733012553141888630615456956209076723609832355730681212007752217924704640266980976010593917894775456786588407658618177830272680144875663810226978236920578991621552747538764134975266992648488500908484364459187363393032294563742395179695031301354911202784342478435095802333404269253752705880579167357919757876802190221977542763396292340497245363883719721088768090752860231296300023819857273239752810331426163469847183871825254887550738255167378790666298659600126995315093861013631748818422642198286007746822936953744669069152766504305284021882279834892894147314304018240059010280905720981198969070232348712390925763227019819570360423314805595438048609719673344479159357000830174612229949484364933357132011079752178037997673080900502978047893424702287899838872441298798225597590210415705082118566496932605949282998756529016535765766175712991912435208610284944636362695904261783485207304406589324957522875537763584367835642497309552276870258767151389371447082965661542256823125309347150243577006561317496991553689557967476967037920566342646018463916396307571781943512446163908529144582343820479241519877700362752953141279461215065284218343166610426011769203164446489664109530372274412706670648992694498247841360846743050729046125865057422554200779452329995451567156086346309924526785296495399829667067498645047244609607550239565907509197131509800754440480470195886748195051828593101219262961101121429348973629339231602888743342171709995037259740268168611509403192083707026893208470885391241946654260317642771101934781894718256893364354494698669421809740006417959791037688381340908096706895316114426445312396541138328791586260816292971765511996876841808909910445027481763099755292025695738207301631759886515773443137300171353382092088600442417725152045013462232826898364008446205694966271199662959903366217362631439865191737140664930836882896803809967378708826749776591007268313850220398624685259347578072833282724114467756911169930850556730763073044818053259372577458903271073239784537127427670670110835475520802847678793314902319774554434667505300498280461700955399857547419936070780710523121628865839584548104285577193162612975364238672374244375607841596457792472124960821440129782529959412160506607925800803844944854257644093264396042340270723313898542118732884137907916890527568612765773263893512821129306663905587787399955110881411237201445714588134933434809541127240168554645921512625598003638114519030291335299261121051193124527057872541012695391806732607201959751037179526649224763130002752198808285981054662413416767541531476181220564744971178087728241069605784195633259808734983194502901870376564510948150022155713985164845851500940209628999146602675038022498168107395171697461738872396737527795143482430746377152367992789955818932472503990787827362844492942764917679774027344468124994238258603305474369466383005863943668388964276334797621734649223165739685641022895964016202263990742400603285962393414706170968350841540317555085288039534001680332625074563633027557459238432455979079916718541766341320132935330224876278454006095601746925289539549819483106689132581896348417619482721722106562931697137465128056305174466139764318140106252324231107649821786627268806563662340187817897883948742623927326649679245963851650673164103240212193438448183905675919185558454972433077063201612265252157020842719432415701640303360575564012940138059060550233022099448065760591137302887901694765869900744372883114287943764319466584249550849789680714899366150609961965858641532089614333178622456381588378976709659476116631616967625559231332334108502731052697787778863067504630242090039468469308580425055448920280035835632448759857538450500246436142614008737475574764784065206978380135763929058713884543387767646956424216489672609325127933224690125696262354317933503518317106120580115685307111808599158674847737993764366277252977066116283124634180585403281045783519377587680608368598473133622757310163878650266940182980321749180004937783877778355419439511286345510834938996297960929708665675997978103894285073653844177277512525899258575932814796839044292098671939918412777813015690050148381539846452155208662559604849270669878662245119230162886768333962151973322950285479352821825812515721242085079458095508673425968828329001410959421578360110449606352803596032154632935445006759213821019034331605171219020571984234016067700128294699757976938610075384647686005958033410020318192405083577813810199521677176554555094748472107142307519795481657690115704723456031800854665639447316695759131897933884839277815466410868582152503268359696795495966455833045635433735196149739770777342918727884132487523555537934244410387546812990969131913240533937295628177099948225069002480813024830282609809505770588688799787483282102111706707098405220145223946177650800259467973093556721204358547924822260967991265774456029858531909392712133430804077810264958972522775307635942754353046930979404925634710772024650603505984568022816459305723671795100287355548089706976650528308453585079151968614989295985555468052637304489967904319007586599416676472327071561510769797434074098461423082277164031893732135847029265501950296192854368913458820317960164419650590979560588093289752499542035631355885608974632374376637541670136383156086494541506881104927731106511347795444937936373959264328740197746431005087494407107579731342163399436257619989377859920439417070820074365177694012565514729618774147579600901353642140225252812701410875645426545488644440620892961270175893346186327935933636813000034865065649995081612022923897689857467528075229658331767001619485643877362196182275435544287968650617134250417810459177977643039581966184784577546234538986144068950898707287741173620931618397640658327793564339746183291917486798418041875504124692894788949602944487578068315965170015715626092862711287922350283914816324048330818543981953466008491046619490398541734290212598441648927292138484422233551186395641037306158554394149484504976025832804110038315087460595806254859797316717506401018161507810114291645753592264490140249895102702393400166955151131093989605620193846125743482274777861547419512278929757008776799415490895247201801552379290640507895932876789728887011551519690726175049738956866020800961351115004121492063326090592427552118474691409007701831051436792629590766372602817997577469566543838972001794864162270535636944286828219316339733574765419740862340533323308020074401685039250498529227833315061229139666906190364180478783080541633549880159655661270977693781302341974828045933119308744944052314364110806644212930444502014824437113203860223123239498105190203871914522102135889971917890299076142474751008984426805479492512681767235482681536285311453844523651221583933493284546953693241430114048092937720135417622651304996327774004800436559604857758088738863170082651950308000060747809328320400446755590539802496546408594853071805122764793432429659975329232552944505425469983293607483326840866130959689996871578855681819999794396998190329384959929776980811825695520129350185442746837809241308567738229400299505139245760126935919509654078230367483162208510947259093585192241741513852664852049120129407587659542535228811762778523138004885423892734146010401931457154209834816357179809314322479926500331780104937577988780348232893198306934362089342767594393824268614701117008177678785830267498000075453820712331401938755533245685129632037669143986999604539989503289038219410331135124290156164127731211805195344901623476543005132807308516494507053785770463375563743172750771116328245723151379498965036232412837305579119680575194607642485882891087692244234454797124752151211387962153892289361131208481164807885050001562937045717840696019138691937240084232523920865196754109664035037941918913362365598086613648108048280343464120729050474361718425883943088923959094181101378999909197014468673554659474371543981621241463117230572684418984639855240748829131884022540004812481171048988451237840482887129293108516571729572193027576613767020544303336362661061377961166453076422550228008264051249900873954476897899005432230378930628057161409045335047263536711610220181507482684091670849933220458573917224402007743461481302312963531952964937679022294542466280348622786327596188526685568218183725465621582517333986459812015759096670791127403628262038140679445200963301924540611651040346234881283935290180879538427284716369540036932280814704406605777470687937717692174589332654115219482738685422244175457014575257590880112251016278679604699907050157653987403505877992779048532070019253016436371339798830884893477924605959699608147438905097080511043912033203673525116620623027360852092270151789057657282115237702950978059015913648017230173309704029208864178327536832887001978414726416208694597931073337778225789031030300765658001979815486762295197208323164283149358242686667533900706946032811725115289288720826961098785214038927499226265162404856759966052352564513064196287971050153542726138136594771845157643753901370412746260659926983073254127404874393900400114391381514319825437056516707022854910200260187168369776030531714986911263400894214392683198309577901920672044214089698507918317619607273157117951113068488135170697176570242705792282866338640164096209994997715831772387838736908323606389212102561618584519076322648595840583591004663691549132696480578172631310467095487930481907566967947195005417608778011965890095823038955285783718258930376066466713506366340700434968208186765492962292422209103481050325689651936538676272704758199926273784787599052792025182057762268859735766577840699511881621004501463617630868514462918045611267515329258575024692989856149510762866310362086455081465001253573242002647277796757328265310803477808652594106444686309219240771984754188748474552947769128787140776822370208731073780630897066493399039957138057200578665922387754860206321752529096832540948558020928458990703796541034247427361342313998854471154886367255807408499066815042370202621320860132056690778104340923847013570978118643279550939230818941424349760605428600324196275272204964285832249008197678242875892018101192960628836922603693770287448483599176089018845599006830540061526929468742764720201960032405899523503950682400074188917769877364594711798901980090883196410737755072118216591281215707244721621592060942452707156823749047197592923897908882546635829356580680417691223005090673127092985454604842783031689219149787119143845049281048253212721757019359103090556117498112568607685384429836006571221153691125614468848264687923195234720656860615759978929463768470171766063447672219322967263190481792633939029901838450130063279936117338279415044003677445359058875577205174021653953953115758036987929545198797514628814077251979930287753994188794464707686223360741720482087797023283616695673785889699588720779347591496815053896495616518752667728615462262740057258486682664286968433961665204623888481221156655688015555978276241566374371641217444926394421345785851956557305188143037403517816864261300875053140242216542763829157761040369455934318266612946759399643080122839507337740217710487667576576419976704127616586349246772473246701171667185868356962073572326968388763312149427311434236895294865886102233555754399582800962383772035413887743974427024604777580878858879328037209568535286169492924504666106697950232617440107470553277410688685888383656491948479303154855936689633431447093096602802244895018608602017056082073825450698956478841850460517286573578892294967927174214179275715949282630505816119177680852605010340421198077827156422336272414126902316021072673785619156675958480879180350184786072196533480367214705243449811265812447096916960489310067282224698342541943127226590411848920224654077844615069708295191565414995741146350983250092451120056094783248023864290797053896212129968900239589510261554878823942130469042665825642603876032173873655246361476046986642265060214541900409243093592260280903186936773142199765813603587302315728730972106708571875234510709065485889954513906408076554002664936866200390788889917664460661760028044818128246065674577382257866053281798663922834660486935854112123470825820680312450261118777945432974164819161659866433819626468340784514422107373704695908812872600509482705432934758622533184011052900872641010982087421866227567851960385158549391393049304589779308306076399072942263601891524433392877541022280798642966767844407730235644912060438235103657758446670243087786537299104877813485284017911823400617767065506592443858484410639639525499543995268239486064360282299029842816643960539397719605312034061172226482682445960470147762831292237418619099521340515752100954751601571700205431725209149802029760199759133150213087476295797144114977524391950712116902710082853254857389699159365938880608875035209021564721366451828606270932618024344148378152033895184127594222584420711624084541632103972991514601595567090273951768228564358504209479580472314533487406874779499072870830716127056076282232404986845660555750472231036946083912485619626698880791001535160458933639276488197141905261222299142065812199337968417875703217195427695799518086982701742495187523353329971950204771074375510815259555761124875978655274914177436628567930072585282976178897024274810253808790512517056883038473727028237057101847930453756673297802378864806211626294224601141845186263021680479145158267881812572397091718099851868848582860355778662541982943477786456022308477952770408100700044321256558701465571664094560925436510168553895905407752770764545002468059464747757435135529988161438275059672687934648911781778780698259439213858275165996115866875873448833136632726769819371529157871005916175187367120234248527735806849609528769188416103508815035672260594019599755338630019940328248160901526927921060046093613077070302723334365238860360150673013690587527790401567267448959737854237156841447101988973380583709549699930807623620588040970850344727337808339043081699598093411112191525603014628497996909336027002329422144149065487888167910413079555113447529010984094379727311346007615509360205874997365729264132061023005019676428406571809358853282305224658307961336307983776029853898585016609646686179662319841195623353585410640038041080541832404600032304297504343065678532826533870642331514438129084509268810642493774790068037440933218325377460973435773412385495131539914670350646746264185763426351537789818457320403385278531654271453122367724374504858878843543584700698889355038126880777715016338072629575418197979193168119088398004713640079274937499429764401794156816089058283366571895104381513588249077646540330975115063866581532442985547841028655409001411631398158256590026878485976519386161624776045381599511646862229031946163810060029622528620344217161383454798748152037590988335983909301619852984635701141521167417478444062233120553186056384251588955380291831551258790568795676656803241466542696303102190778812224946360891988575175273126432639784208146112770360439159378453327772777014637452418631300328742948716218028376179338545576646877982124907655647375597959604177605653070306856817881022614051630091804239053463506967660629283464303780041868448295146035369691527865244396201348945609925111002200762858245248752702230731141625388483238729108982610171549525913861614337813107010936987743822874470700292868711447333403018757620595499157023030514103294927435812759618209669115627939083933119337641464430531158557825858313472844034402598824670234932561424009580717796753901349795646710353583720739031884329538920781682455927932571391014290552244978119248127202210685577097864108803356435286876967392432970698401684902045429473449070257907413886210159845656872668276003894971162687449988118816293381113529639712128162141590918603148106403359365142651505568529644002967007855896702080849218657902913458330604799311353007012891095272321272176973848540968882701452203665061734092360361957971722057009981681458089119413818877532952885830381291208800848505029068450120005107436564799316016664330284056928208761607469929730836929536779781475184535919202866948653549445725598530742937489640756105336255806346618897767577738064581041733376451574804492676311598682786357779170261749424525275980927273537016988260165144183685841702311740414645024328101164622875876596379494688955223880843362548721511935309699073341794304561505315209424986389701026480449953470610674090025406563977037077892520943259561260570526782662143839942943103925905365421708411451400593801136070448853537619152871850180111689910795378087173160432148060528050761620453198159153201841018516984714406902953759143190788526657662884885094755882802298706916812593305628901711340045455020526268906224026059226960009197733969546633184091531204108053131057424631250939844941975788237172588343720914482527539365072506322549401285480125799063511682918360290751953231902018639705221178186378904101139000176186162500273610207154358135501478896611474076145354060199169763608743755845365387794062977443603852389627647927436353996664247869005511315801353932592828829419953411546526798816203356679289771319977640480682009175870928571000760582845432664476743973755589433938292343611739571682250493351129020334848079737903954349593995832272611396181917034780994420228982690291700850317971628183960397453697043682665923402395876055668289437366340190837238969447479206249357404728428254307501464887076308405028329510462933448958916314127818779723250628981592773486447406498538106059953366480898662814785254250609658265417073260326507807815059273130939809939398472954333373495461905448395419609579667587991797699468939606385394968156931159302100565774151428577896096212130292916382762082889745226097444095504090402846746633065332546439021115483378057760855945161102049886882061638823408084935120104097522060827863637763424553549309471360508870897634549433038535053146261481780325282682970106871338060295897550879201200411008819450365352824326272968779913617478850197189778676214729671430111953155789444955271154399907188555501229901069073334959807717490161176643409482327013032548713167355005500342280993918928626872179483226670357787703775611428552946090741734258557243001852225054685225559420491173108370860919400401272158086648317477204978456274805234333995260745267294768436055569216585681460013900476187245278205862447170324337131422717568573979606926418349010050883588673236374212292416943293038124892453591294827926753114956515730178042076060981712943798357788465128299368430991987802161744701420553164340390501454370346268930034488091918302976413100540053276184643944584475021920871915071598011826382297306609918347691875505029548072749198153497368245559290120816067037981672685687645163766637960410387878465166215211646617665747816752267592191173969448475234248217578525783029526394603865269049179048524922712962609031721319407772510935572201863919005839624039944346409898007400857209339120933570142398472757838496800924635947468594845461644774156026529178673723234274740138651104596672332314813044143008242281950424758801118882676026590925986716493360113865920093456827764649092433126189625578950520387364299941029684216292699163296814834275118606964390688708430258978251841395636401997725274514445429459303564006623557997886663478136635781761839981491827264472542987445636515325969647416570206815443267426362816175499172661044287422417173323573701101325327423050281715070278187711677889833587179442947259986799837396655943637524629290910535749106919834331816061852255578612385280839223399126427894786046744899003967667947558237928305357552666051587367854897379118257005618910474569992915771108532260767306944413236435949851791668654725411414428845158488181958574591739427809314083186407052267225127816049495589254552774699164092384690308601007418977265942827554794359914964167891664817826979538346435901422202752204697770423485626057108977427506865600226657573476602334997077819315056021370879736920626656422605056683540612906672714651789175217556756295852495183267794308084622209063613164013733606569053584408985574722479453698295508326115676834986867768798073058482938011935883373397494068827551172446852831868575305041435654423330537341290034209783327143714419313259741771266664425251517893766547926933836783187073074255250567357692944691568908288280720134290352636531639149836529515110692453612447314479796672553549123785854342530406700509708241974771041438604648808203340185468320458845727448797232519675586818774819286874039673402023356119492965071802500012918786201616904479253964392655940124482045601057934352435771802477473868308193617480739280036938012466520492075411450986215941536815681595612517233074942548184430318259936588100572735231500955658835923578666160331971609295727858947110503657280499344443034898627865024068640754511783745700116932061025633658580362457566933319123330777844229803701603733713186790215730455976338703069468454989767955633550721739127330573590056796855327218296277472218570808548684635367097279672794944353410881135165036703781992416584934647562057202479570738546545318750470178159902532936199934106455489825806717210000942951069355576358738790100943093355168828408317717898290587694651567407848255740388079615592195211871641655229067907483345762089551332694702246147511464713888964958708974304595015201236499808361151121007646769528347860122649558979130177416378617485276291969300772539607725905512685046005341583031153031337313858676181591722628942006710396497978748032291423274676927466655722921689094676414447178331063765789841682439352736803450485204287287578217250413381681050590236765177541965110609764882201491289155455829454679146402331319204897252707589254242377122151164399669280659309896745374923982997984573812185246777084505231385434608817454925301833675217584013710895849021990438190449158454425794444464629652064081315326259791056739977470870043909815290364601072322573549353765141679521985896183170487785947253020350539075809165940057803345706163646599786592523603939239591117846148235452738236163218779364452044897191184429200983506649595651198220117061039130697737747339751401743525469712768811005642173175826209008923499911932411002708872594446821959556448687666964182174955146449344633355553773017659231066992851226558721691858182584714758274905136434840316492553263861151901066024926965497653300539627321759917641130326867385027641080488360106500100984314561369548294297467261537932184315679141869642171934362468270406055515958263600967206217645553824544538223949880615699837565932524960693308203650963913954328351268215724512333920472118774904676343365086517331698765398072770813416097771375868282174100142568059864047786513562968880536418839407487472321455802539104259920680378203338487247221281072257377184970017661545852228060485193573334696787973173140473204523534966997164624371849661464965076030337044279496608666553442045386527021251273904107002255172237307056245316687328074708626140361282884421460966512545065689701245829956921026090473316155448812712268204034367959044477546845153601261241298230675121552414899946387373371559409986541813256240229779128970505319689479477148162970804862406527964250736926146592684426859984168797738384659392544595492658409717954424068808780614480442165422533076778366682880865878266633548665709627086427921139162176102951030791802248135890296192671577341196408626396503994626363106753313415419243441202415595249336433375721307844754916024165497860983824217213344959794753635359150418848925185498311155334840786177411162779231436981638986534859351732879158904673382221849406786224653175127569636848116426272562900259547681233437572202117511069287384274651944614176488602003212573531289600849890186861572753877925171261418422558394134735818139751826851326883093626776720549399232871930432173818163301362662143719042453463143857165791349823397547941378657940193171124984329344346686390763622694637390826055685567591936567500070335109051468972277381100746413880038463042885897192099380723124109378620698965127596290791742884036173041134884868018488047346991536501240431426297280116536810075779596968904463754347858907543185209496992814298161254422521458982842839300986751481264216668865118129844023231222113625049831305554886499904824606520608419814843418410173371622986134819545526343175833456459687521831637532689786910919600987008893084399338004244733879386801993412714353392870375571112605506015799889996171565255112305271879515647463121687967352485203468524088191913718333576223708612700265108318990558269750219506094271588270545930066019932624214952981157672172346875980937511123031463032032657091706035521794665438357127360718651909162978407999034718682665723162362461719224364981702802224491851913913505995811452729826916760261746054761909594454861253687937302377812492511807275988558748287136483077408419699755716646890888477603296108847620435021204684319592867578344928082773824013165600816859236064982974830649055498646328611359839547334477190749765827582616189930711203417332515827532244563947844463131986702026939180176855685571238921758875351200292453956095069108019030175928467174966521805884454667297506730721234804182562439023483051310117034911294333732546111488878906336900681623986838963755613512365054597252012239844751518434662390314540965528230416819091094366636217577458878047843109890166600019929131077934860487889126568481926875401890043177432762164476395358360071770971830868382643712866769569749131198898627735438353122998325079496804330050583280043313195836478622840724050513485969412277827287958424034195028237632477987677216564337724861702717730683851888796826086884873155246924153414653345814778606160686542595123573441901144178592958707988048162411159115832278943781629476079398943830182089120338540170000119400679063675466176999819615752619169972184551756071119417394786936219178734460391366844943394283180973503525670823915976866291400512538960897911197763517434638901919501650501444876560524438439123780713709787649460243161965700619276660084396249190993838884801766447435858515249824261051422845093305131331988752340899722855505381799914653019693972784947846083955608989408864794793590522289765328640102209427132992703273956960559069581802360486749587217088867486299254084112767825576032930657693418317775126654538692555996038598868233433651347373699721919641765424066839450003416814595916797562742050640107110829816517280255463476047699560828868246659794632270919197393407267038232816968931049174755454812176436515941655910160045860503313044377162093203659537094293323667107662437552811961037348353172871665344184876131012098810191676009008157835921641807654890458599598735313687595041857177134663151822496890005508075333594236596759956134420284686594076249919210440499999766852476382805761056769122933620314709551137471137964303857639187052389468692303102444100420930802421993977250574451927642433282281603331317371847047268898847203595123791383040773800314544272244870837785731810556284768121457003603906370384609130466714538801108124661380662580848947476700898346655650313341148510924543347762416712017746903961794798693990469653779144869120962127876880603517633104347828516866762749301672107589473989613495351921784674804046304984677033070516776855119285287379448230981328771195596783872695844472325824130840461374924355159973189845652658217809216715204163408021013598715032099762245261330573195255702222231827077592102404071142405182984016394742073076302497715343346437057642233011920902331040314767362930719597124200896461254790729429655835985458218209553322488102300669404497401486194413476415918036831141174453743635759124223800090198903085343539653342221929096401269457405766370713505348574044761089168895944525896620636517603710226732665539240578742718484475463140727320713235255916108445774776579372286000572777543828909259467052101274974971041825233730518221470874813928967867102930220093023152579029867949459874235146239363983922585361830963725066768598520303277369138226768913810503643830110036931660942411771315254334510310660981522654071397308311415943303701608233511815937881579464562384100507993492322286499365739013996472528523725205863180996058018139056626657295901013683766628606470357673561829106023544115550710247461028668786794615510291495194121131714912205879698243028985116587356943412689896440999631439792364703807722843217524320334714692090027024459742300693133997424387189127792072770978114219532545316049632325629106631561658795369263389016154681546887744823414430621655989305853379243723181702561868318315910753798061423458216562816993833551933783950250442784635450437721601616176709822534530721912660415511739139127540372852812749226767722784419119415393205214710665742141058049474925362650988106848261263733713940222519633857379953230983242057835500428115337842939781589321693852329020232050704765521134209194282656166640694245102061840032994544061016515526430436508857704679960643079078119008523473488773481801411385145954564465046446440120784767085768685383996426122573227403582587299122799643326358808847148514946429598438370683688231249680307311126091252081474767551156849964728123691467685473177738871727350931447917721189539249784128600817659618375483637874596851079977762764655785251556888092414239615793698012450457306185509241093184150314755845161536484217957262943666271787353820114523210786778183709464722230503711234605181383279038696237871230677830847826999655888504180824384749692108594923161530183242020355310348464205621772596184865095156426174711343151297690645218000639877436371331006201525951297036167489742108818368380778693103695541431707172375414061109599053015243812882869287832949964318909193361980587849466583016560547734058554577086983995409322947709936815674930820699570996610835389584299536213773922413048538416775843324927673797990087802883393026005327405385160075064304816464580119323057857129902839549255403878813561300361608809260149022507385024132244741503190348910141822125446900543357317953467273837028907511082240276444280317750933423220726105711188335213750380098464248267539353357885884945483671289956906565471653033091268134283038307737885134632154903785373501603653838989045980690468242187001846526978221871152140998195056807346393048616800027933543333912730455278631766643471808332607256803132334986412861383440140071644736006484041584097960355038576887813079359535462692799564847470232275424989630499975651366149584948516275495923678717215539829531753267774109091641790450118697044255042885763521531544618261024459447443132253738705007920114526363792809466450030304280864182865992444717735224221778839569092098597711537003164580213782544064336717022653298542502385701332048641273008895350687440343010881821597080154874905173016715135702754839526744376876462892430362296844924824060692289258301371179213823016984752198654074064378745770692932912522061261661224706340680407372311579582458551869685608224936317954425337029494270931238700693528298823327619492859513153949081634955995591153156430273832286153485684264376259098158247489969273356788553370122926940261207815505729851491912198230034076416112025847733861723199102050171828441903281839842814541987781744227303159354836104476933087090861767267066770845547250249445199509897773611598854018176434332290056286817143411832875311810509835030896511309476580895898737164080157854315903339634380921502271487221187646741814822458891059410972275415338076687574834378924468401336886816831226822478925537425125963757675809532185684959776338361291636553709983652672070496596939602852370779509684762102855291614564515846239075315918782137170729451161009753348474514806729587815615345143297367443168349607202839613341004146779906884029995621689617881859862563103172040690570891681439514121528926777928720394929885139796294494123832177047635868011022444609244782345649021649091784861556321188750534131769142939435235044389236716977151145952230426178121211529780528164164524828492360921220220895162882643112067528064570854916271071912921484544159875231246910106072003685278227995577961683021421988324380204338791728177460424528733981512812845235529186325308656078573461387023987357574804310155655374835253758795214952614915942904684610058668442308819109624130706125638320235814653667921090236477090724474408489527741647776094107001920305534004539955271645041826279635073870637075369486081347129768056015220302093021959037345661269993281451082540192211931551598861782448944094572762436998580590615221095810848426450873903890654034171567157675482911412640626845203059403033949196326407618835492477865344777406704464428327841356071115361901663512092774257811080868496879069787343475165209732357618569784512458503716036451492988714834184861422121792639986640084475232603603887644888974107938619511524167739996599418492586770522914894894972985757927528117776800263248534540671623756955474038740157749257627110732235803825739566937895672027864744901798676118318968448964921371198668048328169478153836966093857270542878497665258326003878735501247727318194083840285583084740444680546934692371344000586799516519477910704803826596686671318951838660722227930838865886574260270592734182688785876015275632351775726053098260920118456281443190988462720849670641669655162071704827103237307668302679078702599005010702629706767409159932642127562509054682633934739284311162894102644562631418510737487673921062964886254862356389754482023611496106302295466999860783956100453581927830933538616392508606026702974702687659675093704942423977708898357948295232964996561965274774365614489289393817090610019141312806493403644925995913438180072190295881218907803180088767025661791175409637646298536464697667750920832979399386395194261016689061495442681472445825499078931588805793395236563212750298850335520784563536777442294991497142532949749772537974548518499012597277831866757939547440125086917440303882049889058710484384235537065004567309323806216367983336876966583437532782062468052957608653608385324538593023285672161806251612426260553088762722202376311442561739343849052555092709328939110707393296288220452171173305633236268158873163453230236851776544041067393887821041777151875539475979912844872327684894898156086091574494784110834481835750189216619291861330989453465001369081014953622717434743357422547529748143623501181522191874302419110643776189084127716302267301720249271446154526693136190735124194659772903261182556395736735551547902267884612418609161669373195482930717480260389306473449196633487427788093019828217345402025254399051187307297743946303779717637374787103832281516996123427626069074605351422510309940224316437968772809515335756568756478851117922473838742231825969740396872217824730557317160542315079469804156070808707266332862540200355491847925380259218210224075569005246568194776068281140020532917545026177747593050362952667457418313273447596433026096076061047891027085059057424714554641056988729740123601232947575310841530906517181241209249141646253850364973190677736852060780511890148935112889046783632699619756927685343049821354395898839678897903494838792842599536479188979636210722962140110827745821340627289493914939154894610573385716946109439163564076771838803214960905300307132223013918942502416734535005718393403863829986439230442553971067608386283013872322784702489354260691399410404516570460925469472227422304819861803219825098143135469064235531024139106204898387127354123513420777576448522146952341150252367517177240923177859974539587714720104207688207061779043164004213198818670044491109766636972846946941920890704730580821550157426716428078247398799869901639304348409788054364126558960455679091071727617835748037550107531266863518790167119033212851274120119402589475815161323847365806803176308187965837157457708825531291832205200891086035476557777000410972198989876676469699231130169480590556772384142596388268753835184010388796887652747389685120420837013495390462389674981617499438523402218542004430262005124115871789582779801029189838578289272427641037363614607922651725483915790812820877626077059714252662704695221686844600446514361555502406848488351145783842048603628774185562696488524102459203619176363007620879061803879056054028819615638509096915879714115574121777331752576587244609094559803092741604130040556480830682360241635103688246845162723564551980079148516488730950157553019738223034383339659916583705724760987145815765064603140893020657187380336376482052267055960023449435538237824603763505972073632871449044996513386958118380111875056326180375693215393065773042116059294370468748769852958883043739034898581095406843190666835066393733773803692308033275151959830706381173103777592268085528837952486757741107676635717169047706536330335923817903197521555704814062820956199746455538750549881671405543282935610331426816279162951953357171065804521086552780554550891392129087553890114719789039025747249158221651287198572401870304502722706488195347596708447047079897195434623292103919241949254332146259819769132160661915806446132445220678534633140011676822064032281121436452158138400794071956430826716735967088049974640316747971823675848890845636314875681594351618984442852801369202568438972964527002118387967094536187698406285096093028401249315205333931164461058460012470230204580863276165395886124999780521226704930257442514700087182176926491515695360005303797509264729449658655546498309972011300871752102875820975140990706378418152787102768144265691663697803791153296512349594001154416312864753269818807286404514645769041173851905577527238795022749522146886952841110617222535855525182118255390341509752135251785988966180717629020225370739538831982747396756063597023808745434132184264127547841008302078392088999627434233526911896917867322421732147286154729103898197478805502342381791219659418492350891442005410905130906535104523107602066246897782148528179860055085325544653457961295370142178482380897598922677707435552332897245909355089483563487811193841271725914041373832470168089233199152403271987573621985247820307775720541849889752739824739728218028920422793968580326342197185542966548509419778007920131884879730323612392914101392814435149311213060612523213359045642659610137127953910807138689790266750694101714838815001330565840595821823754417604810513194044093404459660854453326668079798828901773141702932168689941034050270994180261251793431532927222366812112159452905241505395194504421668158410186314286694018781295416164078670790628016478005539792602890572384905799625629914384977882851201141193424398693707890044118691061772674750554856819236214184645521324308778513493158056143190534971372408312536088360747055563429275679186231528100090047543970904572709405492834160497873741556460307159202737686047597162731632400246631891908211546517036131312281770944936056549297967457506908927446326042288705985258115785239969881482778362470114456199513844191908367707731150261942744764393649168172697157622012611386460593520362171392849911269244810145218691257850712936006539356953965970552722036803447062732832687976059183605664208576289115209971275586598505322477159466679324284099581460176425202678017759855009588310415406578085050142751534049391655077391110354203989876830374306104388913799857976596247701568809052500980347717260192479242336777799163674986720835389549777999880435352785685060149209599614405051487731728823153958127039193567323171814454857864905922214865840060125663214123320202831823377794774288412091877935483562032650855878243668184860441392675474931029514760790034265988706277602620397392160242388285004427557557156136340940010512341719814526719896813251806304139037050371216354432940284500448437718460986337233183546964098770209730603632441089907627415106877640787550853129811760167159954726362099223954218446245787096217323073784899920388702197322312893358149209001028501217096154622386811914749342996626906248289608204359650609298092034986651911598118411478300741122125484486711034005896319060984999229268793277156926224098259597600889005879389132661123223105622174022511507470672269451154671921317293089353256478799734763958783998235567475220395353949061128772973786683581090888380988568179839071989206996237292261526546479927271757401464489460589287537819894366185410191306832384450644793602353002791688666276570387723987163658455425073864015488507740126757528382517698376520756179482559374837911768830898503337710655740408035897868064067330667664950269827841146530908259887908173061652906765343147264303902124567463502735192218770918012432980015532561534840057973159170592768131566147499812917978176865935851228484173146636481655644389390689058818133628435032872474589660103629905295900622127099584038291108758712407275454441420903384277383991577444442296299101752209476072531475105705590493398055040237278481177753293720471766663173968190394998133714039411292191274485919470494087111651332380122702038853873480552627428123373607065055032021271963678213112137613029291294763595929351584957888506261419987835180191801598426568013850196534329466296351240271775553384551366904764625540044816230739687093017260945641846363400013529379735468940184265839641008708819137271709163246140434650382646337246438321780501636491518975707031277602712959551801201172224519800909876126937975827008292656100041683666804070240282305332440035275612248434412770951254804656261526617966184993794562674728225085594454510737122689565120135420981691718493736235752237190197898128245966275858719200437617945288575460531379855497145334636927378426367431547513837876202294134891418552201221119595200107582661040039396875985391807262777080121518599868818759870108969216217666223693648951100520985061790539837295144632150310924304951289902284925839371714806545948581514340941717597170627108617201858505760219386789650816620849710278313887389748060273928367862356933012107961502507774303864416150772706859159981446945368914050300487227131400403103500839424686143039765376023876373030439578903773140859412169992548531149081424077908519631317627252019247836172520049325897592333849256095073168195439374281101125121298169515554855770492864457645942889240314725802669317833047815390188776368234265628659684745407330167629015695136680818983962547784088479008590212911222230901603733609913011836402446286066269820795532214969685128915015592341309917437535043046421272435354886161009817737822596752584483263551085620391638713242293064479483008652211952936243036504964093385623051320513311395488660538244186180658424275113500482722829276422221666027315948032699980248853053592990344329560292058362019493942150445308872358420409432612660710039016255273201257112012650978079553659848677564090708214582249591883435886962415215266487063646052444409880894009799296467753300712412498670344379977521772670021390447915543912904630336779490578930802025126899993964662700138812015217597564429921054512948167780657330328120214922402147509499898196719940901980272729859462213712407193556984017443903571727399727273828298322435121545898563211242315752194821058865349127077218991046975378003123876520974089382782609550845240675670773720286133650549333818484087333461693638802076558150004651004077386356931501855389657759832683498208810813555870081215157778505168944143327892244034250413636478682055906938070215333867793261682896327546907955173598646094133558045813409374227914903323741862365794310681181477880599729154035241158266649107222021913705124847614066694586814412200273380834106631529431371297470302524250554646380709865187394752563364401767441458219644901823498819291827446949498881798663983095879721099638776145109747362394433350137384615872578412328132897063793963252168170513506935568544333217363172082456782465529619480398158186895085351009816957031881386512955505390686044778130143286527770073502365891300030764824249793229866631686983145323583347966177650374248657889501975403896037935166112228924317478664382664588149545823638693629494469720935441623856460322285415047993124899324531467361989035928591434067448251530193116549051851917117381225030629065415305726248819577903670608743395867229458454773394565548228278805312604381502480949651815034279819053129354290969465972276684886855851966628546097417295829022874928121589248404357184398916221237420753222836230039248573021013608219619050104146066420521622881890555043514832618928854872279159152393730561881839750073063968741907420383988957699564407570591888000793279351955171586291344779694816983489204194366074814599036257146009988886511377539763853190555905311138971160911033412519431708501551800372279489119094604941616382760310423102852069031942094153515639691691895389610124814212640855408263977017027105331117032773084359079288295524872742014485530696255535408041054124382674744609881952550656324028351492368895073596573455849991101275043434488460940276861363178123946196507083114084335577314673457306287906006533942855334048860923430744600433790193177839726305520400667465966997980524973054028035553383175787591088130296665704848037119762273101566550721778880113891324032765158845013339703096145035569454283333375186900065073038096483955785584626872909107369440853634873977513338412429570215225742576378898266222996818824957628338489581221507496349403682597546441109954809711184808769425372386993446155210535091581363125112974995223819070762780509186923032384129393792774126770809561589534331800329618296904236132861751178619654265998458764832881896240793172202484628803473731066189311710658857287744802031755545692477916680076148424892993678204581870527236081613102465735659751321557599540485022210958441581446672820482322120985941439480492552891773794067399528742672127536536360093103634990376903098810635553344239101267287134667505345234545540049664583707123316513588438504119902187840939276162101978863758587980501306388810618081110057206009089695939966549387221841836626063762488428305822018152555716988952098108098563089197164521236747867289064670799657767637914663909235373060276899124092382029091780313946163426679690899894807478549288730636047265152126388528218070431135934983135477597850312497135615710904437146416944401967601551521347322172513462672321197570356786418276597232532588115037687015472974714282893457970032480886962089752946617791394776174401499669635852273410795834422277702853307834282839883076585677153329376659534526918071836793741547405452994127230232485105173302411862372200754111374298402091685454770996609298874382728156555106450315922262066858500018160922739425091036483615556186652052244429219782251706102830199453691729313819207025654878358656357925447917541800029500226576734261275745675064046481257274800008298501791051003146201175178600151067640185690449952307539459548109699907738392166351870987798534268633278611239771910974641910211954120894187008313317380932947972004264565966971642187849472953399508928160380447448349053415177959672906703176892283938427348732408761757969502520355927547059607265669871227246747677405287600578672154788512699691724194516592756363062512271238919342896719479037597562313859649183111519383298629419086996186449469327247334099442897972560085889055661429660718580805035880482334695849229733876432717923675314760714720096338578290770025775886070936141287925950103468745452217065342840572648459678802943684285534414972828688728977232531327154287419779674216705363529130258053849323576804174037594469133809236708208188881591041284139389140026525694489835082372141789260561390221036222727647776727819233013535189783387639514142889030596873359339933158498735967694139007389589483241218514809744092247620306851993118479190350267677460823627985658143556712601704212974975133515367512648170397818399183906138394921972116275882729879662686051023615466726573478560442406147267517839325396271609426875812174095753235888428904131721712776359682415790571255773039557371099645527544383378387556417014595955307961906066928488677665656496731872987086824797489052063186644170695880367317517613532919215083197529832990278200932114862348282270417661778065021116839725087102630204889930617360560347522973060410425455270583108847900840731520990253408683512040301884538855123721582280072283574413764206455872266092911301296381868744870529052828723334878960654906673357653765439458886393475989070746251690165505514326268220308969967138156791865508262629855578594143990995885147853430594632405654040774657475694743635648685862115389605590400251125896365475930792504142222792139257562789445516071607197617906863030554709302625098209579988329773873775612785626286430895227977342087995722031612059562286179984936849532927552993116747172092724239225564021542176057758442312202496915682444191124510403507199667594601531306512189501149799344412182335868917168580907640521505965571035778016000521050527998893557697637262315308501938865545851434265193821404266064346340165806815392344808979498001218113368024088646608855479923908767898080359203620221753783616839135790333436187526476491204314147830267772922306163762003499565875122607088817236000116886825610171548257372447032471973132585401739496273703562908761245475621098864581488836788832777874300142871600829476206233343435803996106801446677896523997607707095149334090250250190853590058694755144996468937738445370041854965168749616445345382035607464716420770592897911218312158809646243145069152124358555464582546289434587015496638781819207608808580738316660060691063950811193755244370937298540117730239922355084311440897370985779008081396283562196674333561662541742950472666772180867476378212404566581387513581929744803257800785753560911943479320581164004577091129421166262245872937606450811183354900147936813256362577601345765931211282480727310574370065728336257662094923627229330654134435727102093858602808019455413185266014527913956497757294928509209621782610548451085406546750124089554228522792166116619703321393782419594462857663510216772531096318147141451729381782819922357259994469463870765204215786948911391400969036586961254199190704407874322845873877931537330864521053577309980343013808691766520560914386127361102935502784911262707278540867819008742034542127912888017227685345708078767767295493386209418433156700348509048861726248378244246163573917034476383784963784598509017352543246804484161803427660738772672617596617919970181055396280351994339026482136746884764205255429009163533465494043997387893521049914368891259990086737224011145033731196517098077798196392927610442176685998753173394318745177966619608381533598117588793206504199051500874255117211210175422534570600239246922607413845816364394258983502018645868104303035427017877965820261858762845030434728086517323823207894289496887409557952679789335354693409796061178180476194249320479687131558358295689784205835831988751329310192051254116901902939598376702903907521788858918203192981968866488139469187927266492576245786655029930298787586038795740918376301292572980543878607965893289318519984537439077896752891181180060235910705936009513272492748471548885929873847588069877167635317150478014487885794679357575693941220018564867811709607432174591355194653453038360890829348383540469522904152266665184020872453735244947520106582067944168242480034777290073975950768101785337101510915936157589563734065078168391860065201362113142526683199759110018956620624548164162595418388709535771006879150279861592792281519695705105987855321600273383705636218465967713503817434776909574423228670767611289618788067854840095893114539334213900145291288942856567796242690633508209464744119425322280681804879618433048891604811628737170312308267767992101953306288828708448817275578944247999519756414739018753496586676380616869215475798931078690127221892008873547793454964934176368845940775774535630476321127719779315105852112903005818988661716961828589237145175121370049834462510715477667722490719495106793546521739582153038507683855342468420545251695607715802986280582276065699684639731680142595806318016578795743864387566669021051840336468465630105052606207385521840086722004762114502519835373374129868921975550337454098521649965664528647552049539067273520668413206785968381397901485590524504468092140024227666073295985609628868418794434612829987120832159909194434968376986691775026761689026825448693654928308709757314006416092517768381160181829128157838324987506529485375467042953164735974014514546584831727310822000692238238959329526927686956230944100567813886457835823461006056096896500146226323833101024400573343408830804431078563305553869710279248677810700097970404842073871022777046957275642227182110662692377738302062800898543092080272135718299944171021215840924232955146866097000800748073880656645716313487652580301347041505193218618291703897745431469216005981537271940021412039451370166145919195835689679757357013831773554769782055990775742676774284054423947512397304809919240792305007749369900765406033380100799890564866676134676218124748341214323562123365729859861319221214097991530177151777766987600527126676516320559367464730006589806474838481395839747514999039507592157342051805338022511918400829411564523259199172551757872890467868751129444382154413635642190629980722519936316661785263992209248259826629666486410588012305325389956313152520410906038952883053801150124425495292518556556608953888482599494412174015614265446778755328440908665179156442227513654663366691317535333385979110589967777799163759313256580639125376666515794870251193922372261048755808645227882937955500329505505128141726813271123129796523269487402863545024004304861349912552028905651360934825557393453089532700849980821856929573871438651324164374738176504969385686907761692383262358944081385457017079914519559364777286905847487667104097663363820080727849020267546444082384436242347072552400186958737044814606448040339443309263202879738020588694544727816471262456942303943529449289633887924999155830234692593872885057291965509402333561056440392927429450998543093253668989746713295508949020301948669366538515838348204470497289571341837975950129349482636866661455484397843092306786535325350450072636709023220936426159477248658951273880457891484839345829966653507460919524818971444154888252724983576869919493665053496233419043575587848373518225080959884275041981756261489008787438476511464947493533624413527487081050181994046702100408847055762461558842289110568561690625640919960189335544608466723430797622884699062384062072787275765639098860158138159444840495105878200136516428238710594742189320109338540304688001279686576693929321904713741906449689032058348369463882037694838539276986198050374431938886290382070386173263017068788526463839218729268953195258683758119019688194510726932284704086818817645475242292444099813019337255790800177831021484332048245093162913415102398451155020376136398093739551961151554057999213527974735699362784057536069830140710863532034468090921817843883174366851384515802998549837428787958942463780218445830614008049371192108733190604847306236618053044185433191892771481224298479920725370243994804958809738383262282410447122764852562808074351062541788826265377092347203824746184195398341366940559912299720219676700412249876451133961495832684468162902313420990734889512782683318097612130834773709365853603317915300296376425636050241391245538936375599006789378945449150614846359877962817674121976065381422517982857244683438573720022526386777066423694480309276581438360046649785801177106512829497217419919169422052415455928518191524283579361403654581430010701252506128853996542502649881237769827739200424312063583463691897726697491993834213549531718103553249298593497735493045265653860216810599248133495253446353729043824807305177664687551061838762648754019779507109550506671959583834747725716156410288716301759350072142396642979879970773185022968482843415141269786251655620533633151267021989885427330334591742846298827564020194840838847514800198745016727744557266415083472695509960530663324592278338848364737020945200251277065266442567316632783551141121455477404509997040530264381347624779405273686826838499586113418444373611626175521353484209773488766295885815355397549943203863798740540836545853279917976216180666436873155084277861541775870897449227926263829954421506262910785129222152912043241450840180257768493882830131533390027605439448948524004856179398016288163318758525546933532609373961997837394900846074712830925678869809944342290510818743831830339842828032318732291236245758509984989150798396584750095732577434668623864904013003317308434337360198462192109418229785217317211689791144456628392785039506379978252296961699893416696453025315521308396215092784951097398738698221050827663117983704769381977596036854413888503878081336157382744274854322770546067706818777699093321833958739167278357920196041313212049387911800476823949033535809234098368974880661143711789690560937152662088823804787176113976052653454511938454373987452484975897769171102338817408177955395619680322313462840363881371978096514798651574615329503943547814145092702942020945114112488516566393772967702261938075071255145824571310627718578475881044440458411727873301881713404080719621448960209300111694461506781384121769945188499081240725885725839764787754803817433217995949434769497884075925516391123898521469764379339490701680836092276412274461276496293490522194275511966155914268922920834944654063023065099246702489766532340946742607449731089675099284379720954149987757110859087795108413854819430418378798016704070100146926080185635091315713264739038158863342466957565389250917447786648558420578845000772339112131927390316439578444677134375867801100493206969595109677043050139287902758505739116867246150236225913905269407870868163537464848027955849335770184935640898042117680330232584792354146681056400293853746614326059369156639237827351238374432154218223981802602291968998338602525042151211096628358936411253896776468725724225048294450139985670867520292887668682793778907564169156776013707559226292294145848622836323793674348988132444356558140631058211099509930977181947366286373898557351390855751087185116561835473197680871807661655573411501148111503251232619400950758575594941138261728411717250466131578638660591205036889484480950069565830980848527628299337984421373228729623939263493825664526752638844947661354012921974668702772126321271102858318120121622167283484528443928880942421665474194267640568384331461098011556216717838298742292228453454545620254472780788664672806463804818630269178615096290869881199354878427094564662768050883856151995504881494393306014507391922698137539658991124343283340926755176978047360037664190887369698052637989057832559639246022259993813137810161557772953608847065339608558680925079536407160874074566245215391043501451678172989565867898391537161888751309239352333146408589054935678234232465038640835931200056887479789511907448049727278280115839788422482328099712476359996468157239576575931870816559186890878171598474085284766892150427372564939166350317348067977791525051506433450388342931242465363681145578277349170252232085631620242704797687488505201244949725084877023998397529947840614850748057836621096420630443014148246320621350868702436505065405801274651891964061498471738389206464692617070874438125755401615868708608199244682836672579375738522293737885288978029172765657387295821364531748779025673191265877463689073273266346211716134836986664267793006055931897283714523832046298496763468723699763334988534161256095096477351218787558913528450787398461583319611765576052236730747832060418750639910218034298047573291776657250715483439566924436910038447443912555265026816825108550649487344269987165187362834232032971039862023442184222249767992725134603699039853056550449705220678758191298144617397411715268898581821950141282612245223456567917013808031863063753782904030025713730708255055752940065432457498758513570940486169797472393856889360848032502081194601047440789412938228311428845974210740801138383758199743792385473846892018923907942023972964847285721008490303736069773951764360225008677597798059976835870489982246036977207544309545916145754883662729460930468453749250208346621903555177017516039151504737712224466488262490087494568878888780710453086800780663047759392139753564356007947316893106912273713193107831171880811239078915756177241009896457252663331964090475667172128878203476670700068862590419867333545461295959791187921372179505357771713490356225357178733435731712392713850855582649299613742879966525444158229441605767890743633677013816921586639137754914837424592782766982383795558786730554751238067011035840255586619584299439791094745708335094597180487945392916349992380485230301190017261582640491067895982786633279926756864162843639326971416692161926952955024757219333896978059318421711353846803553749922230451579861070948861669896760178152045429630856550485847915350530562054110286647691605355442796164328932091773827586018400948381256694672936141294602540654362698962126487265902972082173747663336661909273531390320672506975225602138556710045547871946988217075534731784516061464415273336146577131429263765071756634884390970883173908276691160808196674408855658044018326978101963431743284138049604571887083244058448456873436254777858725051582279522572460486152868510650556289507540212558550162101179266134926350574135129944102074216833692028611551643904909258621502194645926487822994353510614271775032683616964380614222771286186422434259728531883184639230016138144666666454755166330366887935578516569261859302320486268356231539438274552218427642695448586098409363515881107284213444556883196358527882875702717409360305479740148339423351443308178754337904912197804037149414655179432279006896292070953351635661398631801126646615124517637265257483243428801843338023963973501315651161508091819596762673757467936036502327451118829122819743954236110961155004912357315324142428466872001252968297662907791022627549216145682759450608906048033268593598272025189756278550579655170010662697377598685820884920997060376830838280304745433752048149517149366008378519145721953531810790385412991847383557011709064825237861491001924207379594073820671744594218898495344895532527214295640522855074356719705436336902934188089770278611863970426417192822418901255682565673544756880100844977331178931272642773965344384393940238859722133554125425073041990413463679837136365062207229106535074821389960574804452739108371398923836581094713958084013417393161809836583131050717621267276786482633874981368191281651804952669945236194772009875667386840019732267829504377767514129578854936682326525830096964979727166818300323124107551048393227444207234992932199084849633862322707081623003076186028381981898098025474806576332372299971278428224522550046848513703280539557395525345880835513542198914806914161190872960696048733112336600338004150108310644768018366416963772945036177082068201483979105850506300632945188758173557803093239826949036587792110297694498972500518041894093028016768113462282704062078245718346332270907332497364151798278886084363630255937149192556346589844891964042331416688242549714072701825999477392756865990904770882025386188340944344599208479358746674751068848320051931986809893485240178559792213201303091426504199746450622417991980741400160337889371417433518358835731675049068869031175522912132526727897549311463292601886932217668801965404403563776973503910582475269351734781788804888384265414074647614398967087399485801260525821896595991847470892762982031342759704379095050101960667287202669456241094545354013438885410850310920091744207104269066660498956382431150636217456020569473380473016185435442888923008887444694379917965603267273242332541984654618797914058037846392113210525290583050118061709511673650251764944181319460144386327094761731246653218798184681629447064366177932252338687516909362112115647172789381308743451045539136201116051358146712219949295949069325611984716163037578275953510789987831768976696597393886512836635870029964723232776920988753932337713416952001917632958878238040441135272391447378088464443684192956122611118726807215859003794038393134704443342284462571452068077029006160638644187576254657649211334015397216822636358831653607483650902609176453604175722211318530807674935310994416192563201238878681180968102279036431846279767737952993329684425348067992357508226568986995679917017813295620818359848836265448635928399064850020664237254523323219317999948391086776476964349633937711676898067044971071496690513933147427786224519843101649829224521771599896990783319290452117513705947798396986717335951470073365793137791112622079818255470200653665166787891767773717886190202986064814933991863758740343697914172172232577002832221533088155439724196092373765869302897156478079969743712865164514518552053089207636872376867083953336085711809366736968640227944485758793534383908120566352167827272904567539266746696262101990838488434400448902939724832984707919504107963486184006746199582129319264066732340269731963406966461997932052936663878401196243921533655873926863848685849499443653981018670913704134623012095032222770429032633504583206290521962026522016188700059241413506023692661025325659152063727944864293453420046304925592412546139902385211503538425158169789349666124144161290404834491699482073560613261031179611099733063752741880591900753291344868260177120301410020891301260394348080140988485839094867584209744212889386026888246214260971357391645625379285424467643378106916969661627185124530199186554842928306018428097692282533011629697589802730526154642815161617297972223889492077802178021822672231665839104006174510781949081333883392325363053599864794355688496232152343249999675827504504866941904538912565670432371837793497409380808754396620935021056680162273080695933528202275639966255856983423015654223354759508245016140794127312716822432096217758970706466706039863912970406543802663426051503900275353547569653896029002069662782826713458951779153134794438048015111020117041007830310181883941143604715999189368720946767481932181475920824509811640619575302138474625885172401043563942132385146753521665604916861004664449708930681191938993805848128345336137937222712583932193849598551576551150770751669719126685281100261865350609341213450241185312255762882160524744435771236002905238798616104175903864863827278742957582019403645761838485435146307239393745267856687685520692567792455214571609191743047433133959581812647338758151772092652328139037728011900189189299630356920727542767477656430380965457536837212487048287785284671537826712779171685523779264571841911000272153713538380688102069188148144941519685292087732818180246428325330346739774242704177312905881427831656997069620612535673456401522945064805164729315568543124387643739915582690067138693998857399620274992780100858912782847707098947880485854394427557994600036376921577531487468518286628851937372310429722670412882868594521730522199291575455241885448285971402648543614478746398861436595526859451479852868296068352453167114483668835320796904978570576138006667136377112920909500020494854006884955531704458229548956971385859453999499019103198398709112668927478414239898487045583610908154930203228248828074745536469045640270726972935741778989215167590089704607029369621782988276750110683316711593577090905965007330046063138952452347484144222588685649480114906935347542269253349672011232291573010523590391968827512314150793498878049121481338647809092190978116882850567573827682733403578330272719732097270922246789282337501590061343037058532475925269730371670152654491444869419322216338702012498377537220067455210890006571368974489540608497668756521456085613270522364738102484331528978565371529871939549903384143656615162210292407555313920123073573582293733759662088860119171145715272892695007266196574132194947693276566033883056510872743979234728951718126950656021255025607076325647146784745872395433757846153848245112677688221509529494977814367930194870290905795471691401022393061635010201827242715556450536362077853945540250322718981086407971106497487515953634328473405672827610621867605594263904418149700736562943636760751402516994172503514428686811270794760947585918634315872664454772447237096720292127843802118127096274293851423923376787725414864707258107464426408465439744706714915504389595659399105019206553886202809718089159204356835061119707775922577942129068592916284575676077932241110468914787191060529226075864519618289938312503937086333498207867301741496723101694668296409199837990274211133512647922429268457766881450064100250199095187624044947389621294175454228949031442503976855224981393665260573247468885452810854110499212706421622421316225742123202465494270427308274508532042300053206070971724223879282367726816274824497064635508816429834303387123926765773199090112769835070153247343872979799607787146064750224760971694533460259396254116713237458407974594051685805442262128203640666877753053687875652917105308788596853221293569986891832827275911447144837449973287899112214730000789029710302426986814701978811532678262575681517305784800403919678694768019962723137422796488347099091510619935786859184725143198930037750400974064106991985814127620965424268918891636041869026515451633967184931260132453715879752576005473774132234968815018768838238043598533537602410572192882158942250903334026727672906659559878582197463724472507239037361757742205168937501937589874806467853577385365200104915552596637121537896513838132132406164830472884523124703699031032581009973902367949066476472298321683400609317025300300251652170662266250215260552523277127621144220303149446608410456622030455690188618865752121369313727953894772524403302152031786384517706911010555108357884253172077947484968040691882953707870965658085938870776869379834206135131474359882658869934788574049541743849075407328825812369911891380815653866680944934512767378237093047360251757124312016469118522928476620749864616351408049853827439046774952247321544315467849218242642637581661342549017186450784106530219228750620885339528333231223724670306588458736976638073100422270661126733532237814488350614875884190732560555513875407250885342116525821263701022612400908190377160133539239944725612403111018128605626094261352695255139563897582521065604542298672554512117420705692841041361337280656717198543710569227981996655530599504194877424506836080691437205192981486967131909455731503037735079552110754287396989808327892191470661243501361363156154128371755539096220022291299567248985316780693125837871398610398427901813783199312575104932343731853248777560012847702895703934546721877015270937959531897111551363266723857566197003800012924577239717706797423371584236226630803174695935150138761664161368523234035932288886343016251796488435606131119425124253397558190775800575641889166733375230877649499467300905303107447968498981897824307665516135378972332381347058661139865844755292642347189975069556764079718037901893071975977471420757241139892337846017431535121274322636203658586759354143265695453376291831414984695157476851341380904691959039345682268578043012913196303247794624144036338282750760341567580694714925162751208566072242242302605709431676769991610301016217479100622041209856540859091270782818684453092867649282331097051141124438835091223579124801952197566902167215038030664757634417367627540834398483042475488390785433423031313186121631961416773226836261150752583655763233465575133750003049645743269216483773573808644318030787918401819237515151707314439647700104739403396501246398632072532645049602626830524715497024797273512053083206852370732703375226401616655544708937848563807238766877995451929891120012202602501440572579424068618335880693100725706646341916585184462084841150017716201166978478724305258763054302613319333990973462689108914545055548286938482722183739642967445453002332957084390582625975264844638435200091887341541200587627722850829751801665387504127472625609715723518347909391465232228265086136637184219795608232649776463425034154497208405746738193244643014332911281361355482373269373439683798005748566675214541694697380011632760616250056167905156883677350417828252294290079962549411013940099501143408130666902145343157477652801104996419281173336222642493770963241531136203887937275898307186727575429290958236711254555871302858828709538590040323674364438186117764622477428490536709307074576910060410048920693178163748675521671503336076650509027256550633415319812383871571473067000439340557832518631840540615642290993893529507950646172927062911540284349422807532871305271427907360198301706387457385628837998670753481432595769456374015217775573796046434422906194502747332864188212976881708127023688733316704226514212408540123950778901265941906303302066687721395214945539425192950369350101563513134611617773371966824844738213318789431658446837808707863868429325112745504211692633117687637557508539870446199320844608156570846549984968521418148754849761740637137830553224968653891185196099479645600260071649183449979662454254310589041778766994510529803026172869162780673855241844851974340423133204368465700864131176562138797850409511961017376167243896875297595040831883164162003888739002933378204157628340209980832680410098620498936306368429061421202819173889642622255125743516929166425430525555238497858048719453884135458701065146400182349597240681422524252165920288386052029160224130461137368453138905050085065421022087555722437824005297012291623109917399881455697317271096235818703759424922418390535547886111331473165801729381854667363618355397101758642495455196624634818895348696581706414190491926797023003806300099413704791461263166103369577963945469922444318784233180132726350723848827321508843622314215097379646966419135090563620975757478753995807303155602026103444211803515883319198144888449858050881269065778248000739035188864585126554684303630191839971102321851533002286980739715752341651439837705607631708684178838170470064631205788549035354174583129604939234810074494949236380266399113305885782708114606588684303479501743781307637904479602878673901307820813073324178589409883265209218696334385795769144623504610852586339160548889593385637722730140915184332814901184250154792032061124694723072841698093189767818878488444861322865603555282140838036596570091699741181320432076820125215107405293399824572647643923705778212926530017758112279102710309393958782986437754972642512525454201688144892592783522904015532094034975497479984005749629896057929443598607099857196646373217000822690110473950024587284747083617005237978253938724141596562736280029070702406513481988836325941249111564627799314868855721622062530847424820747010653870142731032038321436985468738475091705484146525724204752977601677492358203120577831825046631759944799300633132071153574171923865989234615235261041833637027316713022045607486561929916137481635445435811245275160564776727374725752239118286619441558076367426362973900624153505279059089853242324957443847445382108125795670518621410931173175835376799345744145059458681345636339330648559670406735867890478550353077825830108747596310363418983667790285614828415492297880782889718067659673721393369991873728689656670532964067007160819370003255655067723070392259440733729055625890910063918223172243098775767295532346146628994884407443897146361915039898248018846426651299448051310273912994470888515965540789249613697988786277651100777714997250699823997730965054065906219666843761905068374450513525272159182860689056149832331705469831743421568171994755904919176220670408349231171421733170016026691281459212895817423544517640370743086494294753634447652817214373567710618531137029878164938580039310886038265111104337642226670906218059407554651911691247332417554814339432754897389190387963413924360900436293929079736303917985888889186585617130836087770188520381216699361145256934918839156823648610435405912339734596574341906075268749895875224474598083421099229714051851502611364449029430807537138753248872209954964906932606824161384937180786129924043901462850949665498256497784808939657380376972082209474443004129070904599655228018877575686095235498409792556235168842424440962949604701833866151903224590295138321457067342505168386265350364639606604997780553430890998486019012149411228289586434552735618144725229456931303252508583030327740590289658913985322568112800054725825427333374302922435950060376035505823893301587397858552421263316623735694716179577204454338102891447223298912760676052997077744332800530087114468954827732761039158644782831977759188133127426826496893115463510577962227137419372344918563307250847408434240274761144117317168777341788890783393202617270509709227435526749209668795114394542891297772792155496166837058808024869628363765617612376891129997258863197510059771113954724660939407576981069244932540962761477234732830243788088205139949694914310409470156092404228902386950391757916059340731398461817000519120910717384670956012077815068346369657176936483254658808921279061750128075937740759143200426217094229907527592557222898794033965440788805789552817309694261435061564056247038485637130065163723009032972481532668857110014213862699957347907878444319170852421242249594175266096686306536967006155249202158584655310268799191183907186204788022464056309284811568922094901548491112286239927819861327003556734063391688304264224307250543849876683215597171757348787927427427622793488533320178199114195249191491851467496331540830784397146781862148422148242727977569547214566189352129041084276997316350164691214103945112491985013137668205871248000159284448057007805438287243508424820048826289315537059154201749912269621290176970755420812618771490243967854460293647553720917575561344453991249590421139556610987370952139223277531676252392176902582810851734381670411073858434882052647441055055996518292772174143911488733310195923802178294707704793810073517816163237176165895176972583215447862171055805749430005712077204632565237432461353235901504345556915564776776204308517505369327327026089754239607955985407015424258119199915264899150350514820506018914018067644919421857871067903407381634224281223256366711287850945954529406693350383232692819754153736439667060607882641672380216806483866970203927347826949805462182373992704060831467466470487609360451090777424845397365098932766790114734834111398027046047558522634432048429178050455421018070589551422308226763668240611463227637343688386871833199091915643001707348593246320085043343139016438278051724754279070688328186476665998315790844066600648449594559713726066383165969749960090168695094031565639975115502113811193296621517945965469363252478858002014231955820747821037527636879710571206386999385001825674147113266458734256851506669376694402156180781483394549898260488207425617829019415793268647303080521604418894044629326077314037000605784941626720217938481052051658783230440172907224351443556884501433019060243706868863677651462335464909335528166242947488934132217489198118350327896411086183582658860288266314695630980509314902199332689390079422089042308726934585450191476525382410996124721372801845927331671815066411583283703438392315146346211990461573520369801383608605170339275846468969142423001091404172107729542282247891949502991030065655932137872457413556507369756070893727588328390617084452011780192492799273724920680567625887156067238691876463385582562427454700511189069966189842050467823706836927121379802373962600283761735598651556073569701554999146467142447440382646096186864544670345501952383602692132906258494660399021696418411271210866357637735835338344944413180155883684706314966925505712133401437848878746280464180386369387279990233714588245416509898030977747167281596330235303310951129035837025306571223373611240662590095733710397327885753109263472694548763016626088577814207033718870962875105284259034731968954894146623574207234627485489239607021439867299679433103098300983167573791096765162010442388934034613712050674707972937486043796759847812070343902147383150918371983251715852195601710230632195508383014949368568053507111653607571054387283323461845220033321243647645997687475904193258211575167194649890248297839799297489928137338324375037390446502563105812612295374028605736274645865320611517827611794581643409981664937966228141438752705417194710515672717915384659168448433669231366490193987576931529898813538112499263412900229939473649377974880951955459574688215958040349097125998771581759123566250598945620521729287535732889106582147118586729024327155038315284904910668768005262047747454341852691032820996627635735289584077801923821248658289853843930296901561158554217651070758667211502901375802423375901942420963570649935166175406441669812694513987801084626071686855309223223582767247333033968111522008465161375275298294943238350175165009236748645139314188902383466093369335751054638277632786048715228673400607111533986409686740860696618344274187693066505277508127832107596540966844556201215076610279940808203931083075295164877211606704582789653779949979490374968975338221094284732219707721345053692293724398041540318379251415084714252972679086693208934542367430205697177780181336077104111279725385566254522624819453353899255840979209220536421334432593803035190584660133563609546348228449957402025664820304623313918407465964810912016632762956637243341242981841240471636374153002024244096358123735559945983500477125163112653571207420580243735051278303148120102401260407332769331267499228389987460127768838311628770153509635794500778638877618099022155547013882727146918958486624577537165670779824705181627540518111826141208057368305765294490069927697851793974456172495891636338264352732123778284630709205813238914413627963451990875367297520679605319372705953088740197803880341997675556301394710052593281164304112033466511872001671316925426610668644342856882727143760553966698908184251511099134299615323938016379038367812243528757951595855761958174650644895554285252260977117604994725573683557054729667322082763600168239928680385476590629757572767651892723166166360765077172745944156527755571337507625747967920790924367999114020494155370061668309591627651871601149378386730714674991581038118260476558991043210824895588279630701630795566456321228300789237116666719037552550466645898637610785222244671499503220053618605518479094874310569803801384319085886094620758321229556401065440843279048920475263467688393295608652338404494206486849644121305917977768574536330301865724933410555318303769298610145785594686248269826210230689605303269382783737393177545885615480823728874046258012014086172652235784548227211149446489473309084859270080359413622847684981986656389555325046390572334460357606049858689165483026418195136451532447379698852656015859431671662237719664390526462607861669283483867704828644864454663027208652927856015152148027429224392756352549774041724980680185431287688374242907122636625992290885133208617204978857639167343722294091103510210003189511997665105550268714581085031156170778847533193630249160166683020388584850195548671557807268663866985999954768571898843424719196238661469232068570180206553519648851950117858213365631545635780714412655377692242720610919005319921925091533950505432650134873487593162397499770804467315236746141683682003301290024308571349346584882014724998245685305560709566480055455665312851856268900543459159764017541789500309045509879303500495601856570303910572484224423436579473926101020195840193720814192536615187799220170980914359047664751192512079649653826201418026915265491759237708541435894867808027965149457709463915526807693482248649142307268166357644903204173373202574904305089345963743330722388697036035200135819060625401659395536650806761230092220540348384533629271133886622884375880409508026948500512556932539402134639323940083707524543366605106713567986204116656728265601402015746829843401281781936158788775202054215599549848850045582107818825205739665670584341601253351330847230002677196112765310543505285867339788625730852378299753786802404491903846413551858124827445896831757721905697669858933902071252059101120047366895660403408707094331791982570947036996933222821404843108123167686335873465862056111174405057715254860631805284815202260506902834019364886822421544852415133001120712397909487701668928346170280700621005810124719631231008910201178687694581160744781597229894969632529848171513539300793057287236659043732077636753634843277273626660429931952575556452219436179434591157015723368592759624511911233462954733128247923768603817203765296479243475168099453762381960727620954667089949149335544265654247264817459114869750968380775876736734872929177867646557464332950243797266137176209228270760605092615785631125040885550715511924053455243883989399628227576151608146682856283824906283884826077574462403291307036223723854150479884650240277077817336089425301500157833970841450011791033897883615496715656918404841198805244041887725470961566715308851095090260683954562241818744492854421224490004470358554328666365857779636251931488690032770138848176338066900517000992226695418948417026516767400236709207177674437938407434624800822269238652978678167656922268803514565967680641437707360613234471632981026202757808163130580024890966973303137549954747201071637783943090952720755481126559632647116407428888317622672627335964240232206821666583654369571352614315714232347600646958990681845180897463668737104780636646495687892042959108412738786950035173270542329439650731020447443466853528997396170563861551294335321372143300049193698427771180238288729253837262378169453903755771074819055523715945930216787552188966543026083644878756424691881996759639887580771116005630623428025763670881585926460753891280280779603007964901150802445645836427996946960934650537392252912808186760347269122345154931755793454921890784606657626459948485515712765382985419761999048321634433696594257580207184401032300262095358602969509588415043290779207673434697594075964284208834132031008785626033501370775417191543567010941781951574489026921953088701794263096907458958342158505172118476146322244848987197545713856517177328921245950975317860583100534395345624354964992984710458851748677102780032130104649655472247036640435517240698234030012121616149530340865236891631307792261766052220491217669108479609468376200225940137214159805147271532154023729890209188024437008027021233103109273002818721168491423873138003310283291603217166822428981621098745615766887525234119158259292058407468846390044733689798078794156075297124418369499675020873105964816692377024529955990239252783557244760170989046755714936913730625518885034281239399715602264543092916231007041428286042166748740276860614473982890150579446579370847017509329015587612732694603868627118929305602261134009491437529721762245529697331741707142221401536466080528330854042714626740661952726363098183394494177777485081341587191160824032152494787947142842286158758295314275238930452881626811817645972897384717759308921189258648761440365628952091980101921944760635784516634347407547152660780582253615663003690690542386382561237944019544035279815421279360205966615632851186186708080384545501591846606845456793764718745651647878204299896577693987359970116429013503453919556764239064600147119758894663583969194372188748100055377791298096990959664185411552472714884261027311436039172475374774965713419344515529625405957800894319910141735124132958647022939579428571356008014450813982254336082014380271891475088013428762063276465383156463222938400990096159926256307754061643229397509810831731888509791895772387444591176045289253644368107904614657585137819240427496619430247007555901572667212884626680027677659234840042233921824111897295817021358497280089488098692528576457664120777527516759641149269830139723123954824245821706515793426477185091370147939097737730924638789473165988928953712003308083079796464668147412725546359667523132843831110958193416968534744165922365671125301171278869027489865471088470028547297686200855844650615728770413134912298587772733060332159855808870344665736796096636345252951541720444300397314444245518416301267193283258023158656188078285059574913043604881935577817548323195876187731411659352471792506644888618867276063565347348294456886450535533243588192229325997153969907165727904386759535369883740349593136597257189594379557647760838755549580460559307240699675241792064515805863741529182463171234977428132991354272233436561944849841252662502337310673549461189458617480434949504954983764862600639626974420194200483088339137926143865184812647457388766168540982853782890541498770736673542579539872396638833443132066495776687511577570128571249262413242814132880756403858731753148929375090769902671527364894465534771510363183698902443808110918266972727752366952622476706600470657469128791087204023605556252614609393206653221863786967327488409943496996272456151044889616312211402545902235088330466766360104223212902880155453623227182483698842699334217708047911996577855680642068895834602342804942068736446182010180278565437607920100323766295891824202461498597084038748441019053990748634085454298660444216799954569803184183079395237414232717954782539045240762368155931044976552211644719055066213337360561052115295195214261217108058640333610087617946765595555777210877631585322137394316493539541152539046511650556822396406840490410887634513557908455648898460487873790104523407510563556631410313622712655456422844830791057187652500600627167322223729627977624769196350609587993151858674806458736153396596400247949283884126605225573425360652896316057931817534533897763712846763784371927256706259918460047273917645838799033552062715305931694998678034790272576683636476865683230128444829803056150092018696264642874170592967685027505828719340796379048043314531332343185622088086040410319073502327571671217018107655337747542479945003357881361221432333891349369847071653992586195972785828106620822898978892247240088887187103852359285460018962490750767131234444423932960696215722235890219008244688432281969303968852467066253423343951032999404155583323603770686125406658104528295039145849113623018400641992391073270481498247443404872133651813723329527078845204791027313604238691633325979190145230127080990764239134468114134922111738345094276754314920360308701201537969413874146733388607568659425626856351996495939864532427017800564749460611160065120591701919082052985750050774360585884122863288842489267986946830426024471518339123156378919906097205845298996414937480361724857908419922739509779736859684828304402757197191329356952608885891094412860254012247219624510354023716237213192360393321364926416389227792389003623682991711369478676291628377366101428714744708670232871247412087895893016590261966369467041502390147355466659559581655111014931259392984401017380531969808153092235484435764954015676860584881445016093914538359158464282817505643920589379035356308431083546444380433848823682193399303086493324102419206947072438857631254212332210219934485344284410440322586388426341041526303033987165433641018419551987999140250818664438544872781354604192955227364437059366394824447955617026727729139879109444250270989058660693433990467130912100387066495191387397314850165364998983195566132741792825743574085167447093477418668558956865608400060368812066072055194602361973146003623938454177539771884391706440349718255740756238569703801984210501138725134744671307831903695608063714430420424695535201601145495398292828093541421688531770415209252209526744007437471516406565660027269419607030949519888430559252633718289633765447027922094620764230805475161481085183351469305272212180378891878175414630216021882225189686994468464954263729010619705906226944122773648176471157282741233746306761632571351735939073324051039967591719472992607640147871866674251454328447032495366734076178450283106014104533595929166718720487664795017544531611659740451830089730398026539303968040033269563803782572202498576146026753369900671216988280271843464539126465184654118375584135341939048935694197554749765913599443626654141777825369006640000384991599263341808193979875198338057121420347030993888588540417916109767721688440517135721396777277622444999575757597212419128605763292347339925135314498484513397432649543046957604706197259822360460959700852896163679304046064188320274166241216674274792524308291512250973318805993933184399892684617558966974300341232868190325686802831370825637021046527208952451220815357573547614006941978388760571957995149374487238988378563522028129334633635411331749697789807295029096934604720863062140309615808157916973207059173458933019917991608653494043527158384636100644083516675565503652873855462001923321415467558956141585535717969618042247928857287855703192799603707182573219298904509361747318960775361530850921727460436648716822625731056757797035022051655109222301144025355534762092049335290366233506581047514009508914799852698857015305242281006128386372241917823765871340582353654350284139698112869854135137165214217370852127009054986302944568378968775576245913782075172176294023235115644205041902387426012859532517133573184721664108182810186559228068364715955926663776843673839697879168935314518088852470904084443415557003859274046227541390361473201778990069358218757933725252781414496984830376890271011738497675765556272591972323859002661663565921648427767477836759201143729100240128155676142879486162038239221557307892198307622113958739267303965654201678901214334211029688188203436004914403638552050202270977801580631574154416010595586779009321443121829422112313602598772905334481507849720338386835537883634375945972240953907516916352655182600696379212063981286358661798470662088049968875225799183104204026818725570580044358187253777290098823130013058694222088424633736831662878907620872864990166216779723424467481155536898516192904627095543909156249698024541576380575004282365749154804329480803409976987150951879142163154684226386992477036183004955380846622793134217141609947238226390946207062301625074581841475705984291405784525091328071447669908335691922225057989758247159384551578685714757853636924018670476101203251375430929580481341043300820934655418295842306022126226187416340156864049995503826469471167949388650243310756207295695501426789927415838943142349096089382396149536293008281431459708819715660133133202630148956188640536162478855032272602998950366793751669286261175197369582911007569262681679049183678493859460664454862147590137565773066585241674114633749531710363767139376969418567453680904719142359322347190105238381531118734920123022420711222123338475981099122505018054700002781380968173158034172938771804078570165229017709803106757859496626744062406848677354934935859429613740949681106278271838943141843507239585313419030993462730741802258232866350243218415811162881716240673302496591424891840417206285911411311813059652027820643182759937751012412527738426299813850575570688999712604607221856076757093944815247404783157293318724433714885496329358113444114475440277828623480633931957218212135439251569242041559392193314656604818239682138729645078555210960211168901498394968329320640874086203613038369107146885726978780939246414230748589594638794183403965369882354263432914636833519548547541562661666926837639004032617095491794098914480511032811612334186296545208327956854325826638497015283564083740734682689442942795650955189210754215552009576902921568734978709035142397611018962859663916944143911983322358830530264598192855413975438639149131744412676804069771581476389626668720200159425294459354376963932137223198761036246549665567641207114274070576548156007070997449652079717117801697954074380740296375940169932516384445894374760072297227037309553983702620138058304719686455130513627242380776626281739454375128821715740806150480013040742352218690491583326435472675787674801021008148488102716031040191005452505699008994847344307063031596397653472510763176492167023547871421279541142230648629224056701962767031608081401368734302314118918578621777805432753503762078559349958053855205145118203680428099691634063471985198193776060582784898828118076828598498945903965223899654103953079388396740990788703364328182738673850717998319838018999904005887400924045138819087084914591256323103375898203343747869344527373527515510560167727379728620546868913369172516413512616571842913301719047019172834260025231542373925573725645533268390629476927196126348013243564096851404694814779229475285842100248573841491008584215140872617614830827369731232608702365812674643834064137761915302747166935904286835836251085573690412030440095954587388219568078681172532275344626519631119827236488972881340863568934541596507038098773098614387721144539643504637602580343133686659339112732793377381034401750701199681104912744566762372296860019377202726667380040800269051615307831824096343424434729483034856878767871310948395361521635371621038355086175178646597781726314245784300257816698280760130236215381022138402914244347212462646889022634045516691876722416445662908750709832860627523898633933765017019037502493062237578185930979628179194658505395601197896873075384161482564938752145771469390367217077321185947056968018400983754011017598768042503797934972984472914306824685157188684885150636797489183237527616464463428778684763450189161910545059349999859457098888551570799710009282637844339307032053777541370404989426117210130412691890603852800662339857427854007706845271607569837403109226446993229875989713762569966560323012816761451101983352213130036215974134120488701228819614902464945376697139379769290197899261583635332121184806858422151449477650420330629026730681683240236300412380950451631051123338497440255122583075665650530750587911014253750905854581991250747635329151584100784986645666935199962848076470146074433982854272923236741523105119676202755827526984832151332881601361367159627524040063653660362254187744328342919099432673145414974979017087551290766755505827710875485026405633854496162070931898546004444074899735197644418212060326124382733248238260536356029768135626732974851323630069553582329631978533058024086500397176994415323219621160361522787535049982809512659740714923493421513928775785796545279348059174310382535392411445023853626224568721613207212034127486170842078683964093816518169676934262006084497153848860375358261364098323476760531760380132005687073775328211165849206531859559991790274525526174171684678944398297379482469602355921807851477112749763454414048923455362760582028120343016945836236598354775914915378930127571931031633490021804344768904479321062421185838133285363301199564563222634844404462561990523499245846512945284836626447791269138723610399558824120522759657392786463168426863589268118128628814413163034374083137824867447471519234555686754164930702695604291270887735009675862136573742044004936854497856731288516550697406007211112635898440452695023230781570244096972730796958721301705885514113416935452015127376587828492123720052365950454721678060143143301288303122305664814916600691267501871869199290464379655807166292045333655023974419055537540468156224484119831644637658472381501740433055083799757486498562717836725835038399383202362604298563139397179080786349362157710715443873838252043401247636285239495944035434977841962688616344223308637641034837545143066677598003767045241261259034688014658040132850440319616732129583324292016677160148431903691262010795219444546832091991999776168000472185287865204527903873461335294416579565583575753812854937425380770014255935001265067628262982917011127868700969721494088204388591725395730289704137623063654364359749385630522987609084757621081643084318965586280584759094895785559770206787027499924710653737818560359909731047604069723498638444911310770702563488134079692727795736904471945790932101714083496364724614420166089282200571795841598914417638857408739436860787092215469294548364248944220902512051937052222736430639829220155681978022570684965413870463681149910269515161197649487282908984029037196196329752885016511233231705030413400668073554038295238749435883972287316183343590084327307491235257432136696990629789113508659421683981454514420558946460303533308351853600267405367495568800118092269891983654390438522467542383994216694524065029589239074521482108306487283545109197984695833809604887284887153468810330715273884060923435550370400617823045283682541833575214199284778337234700060602301132071926036228330114770300686305189249975282643609964133136341689497186237185635568907419499258963154807739462995514446459014955954094859151441455478269128059690240791766829885810958041033341453907958898635300692511805125497010009863757278806526871250527699509346159994213593610886555242589789623554026915601844499550259423940004251054696168589187603755302961866307535046679017128951429198296266087927458129048587526479305509813158308506348510524077279819725424202997866805176539055266013668788832474239599899673081955398666016063265477284183052000355125653755701096156207916250505452921774577446820113699064205639443708426067888739371790875605548086658342740103266102244434092732003474684271373073038542243320291134511079431503589292670134901021988158768934543991485264750171688174639435969523588267800797941400070627125973448535839260735718899573197959365683952019261151680354214824881991273148579365135428638250715123437316909083341522264547821135028165874446931419684532309134188117913058143850520479976439512905150223111514964069860955958717872571208398883245296487808857526629154367505420820727317096436632905345995288891221988772694934405492964839129161562360082442061939032064638806934634658103652878641828300335139508309638096292661922311554890542255990779963937890017268658679151675971797123290534565164329535635729040721911373220267900154499396554369410229437261522249592758573844922428481937934797192684456802289044779609262098580845227506950618942205578883580922950233623933285012615186274471027334871977259121068520606949480015024620712706661939358074061011986527158551424707362525082581797760888914086223244220779993212907831896703738395010602428401268570256667456385317692987860657917160052736153670896757805558778988080264944661332517432791818278165855435605186014814756618469611517398725510260180199506754970154023480469855809150050972225507138870234890215587512495776958254945836266784910960674567403664150648394546147862243059624842922301265121336344948549826321396320376974786796715242518340196569270911759740661258817723801827766953681290328992836441453579153072018260576271026883828820196242933099222916119647251710526463302161720320385464582016254411783975413008716356037604397658553720864509945932330854550849836267428194168176651578123494954439624457934225066332410071834754147583518932743400141573844697591540685508482257794986702333548586754130290522492595637503143554058765829032535724970788111237276153817240972668122080316531343943645171902187391957082450443196613517855326686084596112155226830781246056528929314236315498589439604644765875404203882734559462326428493260341324801707136090455199718899424982716224602421456227504060330905683513235097225840225711694522210524201628595367131962034758389281179235425504756654755624917665991495981744307407011078295952509986553454387501146375062469464876615956176769965607920991331348511572332821459954574747259335348389640264300899234205357384599071183838469725657856269400082722836082274585122198488464740968845412165401855844982321938356564643625939548918347195269179594251120959706949264240874859972830752638238482567689411582311579672344296954049275515558243994264152427534857790985981084208047925327909888400805047559658760508978064317601623252614824515993781974604947867331578883338691045058759623740708178635806825148940877521160431233001462302761082667504806651162979374091280377924937544741826843872091453577468588419717245617583792014218031611882537572109366518924502956603971343403251192856356895567554283856890560897283229100787706068565133910493153717802434670936985626962974685972460803635902262598814958971169353290322014329384425300701456501997060944857567334997582172131395867724707245891519193388360211600072342210680832889365306556895699251529134999592074265269383130383629702858268024850505624915319652037298351609602878814032834541888945255795587976372087815326883143006685970076703910848463543885640900232942093947431142273535055920114183830133920846903573830290634244432987470457363194410880880014156308347353783141679828375690964768169719710614709619544108705600945537394814341548445804620652515867628760595401368898429005328608298754891206474011392523244561339120064794055572288489171491532100086038496769335897595314559322782617297114740143592227030425436402104764711124011421237969575394125438345514687127472738049371467104229589881532200888940513712357790932752316590602224399939784279061528926297339468149172777258855566501366585969728670703892078042650887141634285020033027933536778635468566803823046362162547569416523178973327275439315565913477385513364832256738688293973608571010786470486020262904453447039560423410544827714854896384655398699989937413484638584556709065624350312944744155568522557404336952651817955802518096118162925680263357616036189505787568671182409006759790105431606806388479137340628920369894684572778301119734757045891062744427396835320953506294229308494582759190969816828426566752860242236556257098751255776714917559599789859063833302293007605047981637198087541292554837653391093762837266973658848667598659504253739583757711241296006656151506010879142955986184544965039073223173886158295243477916041040707786259345011793609441960208817591360334812108637711769301734597110660898922886594209255463923840501125705991898857371664247543007118074639070103400652750910939792056470532566881585509778533439954394331886584102377275977167769678831710644803301967093813585109638323030821396894617205981027180154181898429190877838630696695607313366191273222128197310819294549200927922656647508778639223883941043175402955608636374508137707722889121582893076374257247736291983105102616409543653454432939260525579913785074988602838637064427431561933085217039150152157129432506840732548089216537472439269007988540299722936954693439219491867112701188191068387404421204135154615901798532371903580495031790279338869079121907340225938057768828819742461688505709072766074689109088869268918222108245580477095284921900840961969282401027285706318839754685790358669516405552949113945352660203999107699004924681931606969148449180549197179774028453132168989843581409590512535722648357733759128585778095831255532568083447395859907207409794108838019749551225051211128952082447987406548223907797685548515564791969349980181236301237994710278989641196973433425689366157474037822090515871736466603513737774281452110059031898102203724116159880496955425159077406349823233360739993400685062293129528456632162022035375229295072137568521571682019290479705461138577610144731685459056197194845995768063968349200476361738259730140149366348499852073645222948111600305139851990930996980798544065885591161096299941673916697732801904756448400634201973097183422179159475110910823457490084636034480371239488345394141415884142487989443244971351399522212085786836145740717643443166006493071153034695891829822054021808686391167683126498141403355878537321971327836017285779535120486181979533146491796016622042153783426361242300216424030547496056684888766098971347906560945014364501717333107035217367325292371391270307825419908495663155473520746864269310146554898324527529748082764471204907168069065288881152480252420788496597560076809245287043890419917115826420058496440434176065662900939951402117136050664537159391129270088436958562853983826912486667954054588516527109285347325683503642123170412807978385162053941531519518206495647372357580053164048311196588767266550499154952588919623750403279434282113680169721368897782813767578110877850344655838068308641835312408415531301873691545066761730683318590800991169929748987367842013281880145927368361866599968193794631232567533033349457120654652069272734341600625697993181638755108682812436173743818482914522362029284845953163166335048951760642350673581968429193664362822050008704082551409737596388952787273965861303884461580991714411241120882791743907345015558516799767667376596051889924205131641349311650021735129604495901608079804931029698262676918546643577044913890803790111871321832831656911023694945283950770182645516366417425945851351994292911325829494382331395301779953898118541130978863859008488814327059019247733557604620820988074282607074798215163594653191824183373265137109087168344162805424608833491704085689476017156526590130920249747872905400345076835069968219776800066881566881400307929664719707820630588375993106635928496218123102032094444341466324634519382235198039123554497433861490637539276717479348032142167891922938129735964301347931774772632229495318153593678517626989615250426635105892166145406102586917819039102440814847018327542662109123305720208972933415287655657665574439106212860223568616240885906057505502229464636023089270920940939778689080345232148254964482327309532755943285027685147790422586272606638419253185061476791431375574470058231365976281525110746215342636750177325309337787336908246849509632122065867628086089196196928957475114982026153236867775655402335577044252154107912327159021076757559903782590501513616359564701536919036001356603881855561656100595733420225132278052237534469016590876310234584516709867553832401840334744342587101472496981869115110031012758014519478325553958699270341644430466313867456756574643112141943252371090212348320601757228503916961091965949506895048152594541145169903737676296837057630350769091623611782078290994551897441699009952846282898178193994271223167350778369837126817121261038604205414556186395206809336606273957022023804444117049677902256578057558149867612770484036740396031833075088127380008055537513433794413551904101014703159543029206819310121372299078364579607569814193257580380351307325819867611874081843247066988926573905031490847422611397400965369502252575705933654160582780562246932086581532464670907512530698979503743176326230357878161533734074381107446108972850287704671986584478284315081110791716306380394149940098888191574299202164864150114446594781313911181898884417323130824741317597188667728661394978231074324470938536927831965316332855980315365145938176698900404467314049117285480187877640178781663578395506919808003992103177605775666686372138427857008774304472299252448564631216678907399807283134645277390368105313540927330853057081317186232444106431154801578303638322356624766069363050566819552362618174952663404833170063809119728503787737306277363346027757578619701031617957484547477166648811847110636490364846068036775625980243670866060105542032704481999789308571894276817198066274056383460642611091304065751608964207578922908351348000642439043339628832454543944961796822717673103300385873662141995087418234600528328051991109099529195274038400545930398598898942749125062601316990584907517006094503397994510908353122138051879891239914991260004666355898043374253823577988725104601279411555430049870940786029177769336350229877601551135306519707438021066192121657450405486189812514862704532543449531172866831434326404455169236386781240173629374089655730048577719291681517053142943297436162590515332785424179756667812808186759916215664500764890253639168135497808855456617773032702594176733660406912860510173932115722128320506408674939807487465554258706961550117638938082070352014234662639897396263939760543323773474879407446607350551838473723182568172660504950107887360034709969079341249626629237249548452290663802717293386247929244954533553401065557500880062183401339340148514456182415052111056980635550839220937821433584814042792908220709396217750455599570237889525924985693293822378600352568673435032484853354658348747335204696833092911167024878547506312020052519093096960756143497526642464900698698604624485576091954230932769317709505892128899706736901512564031662857123672185456441760901912152910241076981148405029021340661214320773693291369020630953017329406895446397860174355052832265466694753227220407720557099477680769809751439757776382617184038146196703792468738649685561360118967429805053850652468348196117838892075226108167571622164964869333950504570497714511155448009443322343105157074656261166402155565024232752190683028866869556442654045639816869924092045932734421856084930516340206130181739639388562371096407996541313550283885384761964139326254614063926237504923678837707820302273900526426326914889590804489064390142547628263869849485246493587485965921803617492930558795895248225608676668739469230692640573905370249896948398269310134106224196654726111334315088026197528405633185633982842896647461443547744766687971640558759730761089874089931266002087404197975921214695902276427881399968721143177669339744122713071666255595999659069064548552004286111364712467523692389565510756518134362231284324902035435071526052503025893301743648203866030406979539604774612220559582315068703036235212184844046797705264606582127910795155295092412138653152631716187064440604263278072666035943609740838073352176424425495849548395536742907686510886156797526784202623397001326364459342854928677751385233814219226059365991806922869287308999072616172156032287502791973202818721859432744579344798448155050053638107807599742613046960846384132783804187826322826992281077188552094531472656583546639138652872973256491325589927913136644220427606825423235100852357504194406421885092959637969257815101916951654812501159409734484382462310373225760094504999829471662600753247226359526838881053446971112846927798633542310013967784411171004902004578026961757032854542029300047685294978986177398941384784657524553788529604923076470149878002816002049356807672556935149182328597949544243851369706943205671032038619827944722646269378019795255516273810731190166081338372489230869370836207035710524834530893652233647984914011977183155385953206001839229934028491779096512341438115607503098061747774989606553225172453831005211926957892260449980123146852736570261411959311472031074988054232152154800622566853904032711847406030111228631517494993863681393858897271217700170444991964239159581045783188563244399600325133503763217662092879315440103376971658528542109754829085868668304371962602086245048828115108339070266475849408365377799607110120889870204726730285016694446315536818980851329935620773433722441688643745011532700357557908884483022493111801255577642738894832610891610097789997736546042556213876853699800100890569073078902478313151694919975530560851030375577416707901537206410334702748663460323716931016757357532418950822063900867234926734834960587764837504993662612427153457785622760431391083142407360678835827903285720073535101242698370203929983225506970749827741435814384364546889915713270964883820820807682930952024967861531910620525246691934223985747788445662350153375705063903820669530179981577786692090864437887765400926317833691401209542355487144967067552345617442711850975764872705407717512914183369416938890569689143856147702210103167282868761673534126290298789871730376206644439582218702528449932412931640729793022300980873899886371733694345847724084781900835127020820172389831208139877386981588829516514773882118070155622504954853489107726365973078961632459753142491271944322536756881156154331766448936022195361939082848219500857745104240790708849680593952398172199562809569055795066268333468424548481727147182961958107674868611890150552640186935151933854096832313424514525423238681442117386360980522946567860161457361595210017852941751295628131982605349588085919484642833089032855319882906151553383622678795959747577913920109519342828885077315786403945234857599076630868993203425436145062492463434309960622248525547485202349987958356188564617112512302601620230573052019171440470255957585979045070783463980891109577588558641729084536951015051255127094702766382593748112239742543865262832126281842293959856551988198661655519810141483763841112791906460187828992747502666608449404117073050523281662976427914990237232219380134379456714150035659305360667217722829024644188335070022922005242355841244722763530633546608695455784817656539201357384221487104319920650893098463653936273323522204609853338580094086567880807766700231685453333403279283871924040656319720112116028364636380571340791902801023212161751815428833888596707379310044333945594396329830965731495259112665271541204116846640946694278046431504326367566192798818064019016037914431042571461273966095593149608770316866035760163671271808671503287037051945523596705710197813456632779209357998358300765381173721510995178616590888140334027700069144388275483983557542012931322056164449287545890686506844778301832307372231700375146282942816355910084454100704311513089412493832985531228715294400951448238738640542419771626147222122086070014848167812267881419782351517960227674279739333503138659841997982919136236009941627737268300314521725351816417622852013704378855871745053443897235138679100278001240373633927266434206709013149593754613039070418821364004815211935694630366653422737484611879990640218321054952099495135085773263566437846115385700805706425758209129127758210952600086588597238846194126397717471231504185698347807111210043163245435128715844679028730694391953521304772264214011379930969096218927965420617952423381365788040041354455400943290600855002503347329649016848539573762994375465165819509255446247595050709988651286531081444088438219791897376424227761774687298675413665900008896012559573437253750015149100265438512189032242111309807878361619133916285509405815597448878956534019996698082236891331142740998540299486466005526137059138792407022568949030284355637502317855050866398585310822231833613675646784046044453717022300695215307661982383577540016302843032527987884190221218077368939918742319066575032341547106414690076802540643359364734591679222513157546389802041884422353516708954121763308318636268365304079668048082549277146630299086070032237845371477369988857061594116207277846501972248743656549057458084520398683124451381738939407026339493925984200527559524569575199800183759161049107734394406669788381800609157138777601157489664473289186710713577287538723439929718557567068245235680984972546598852332726985900595393559960453919343974725293061805915555654911689725014785549607094660763030021972076918102887522766398518529112839978438507059701759703786301104225601972109736528436703047344410377927243602118583940856159258899311979123644295200172146263078624936793901696316827187474550126408848177776451938189138254039458191789050452443158965936338094299054760670643934676028395562794416855763149018587466860069370284111268685691791154688507017121944310821918782100034611915516284368668595019735584997591633403899883472526321109526765589084571656117604698133396270647215074653141907707062384824719611915630646533532270865968700257654391252796549580647907702905317699874182411294504489989306081327678613735310997161749345596504084669076551653731952329960524720966768326390946166246442169199719704620802743729842329309103891313101997140410801715704303827653233492759427735430522919480411139763925995186317766979160386358421922264437691804521069304978734079392024882516314891173997129096988652870611869898970640566299964438657710341537337168703361236852606031803660204821120144638635806114465108910764884266832674207013825610423936251940085631757699856732017945743281254573324234465180181573474516392833154620133259268655664011807854137987623955063064929335413484606393826396047354283096312585344722245952042330902630537942137872115715234475007604540245491831716230287020559657969014522756905259688361794398681558423686501612506470861915060747892798888241426750990615135089263352024589676857688958720605623985468625337096271682907876090058776878001367442103965542435310884233506934450311049273330347632494569573304280119768693325197031472936649523491016302791525215291823207500050903593593073522839551662818200187372249371029851790650617341800385821697703633298077505041174817962726684223870102162929059353043820324929647761555994981854887799649285541599348286761409867606274167856615805653688579424489660329636434883529937826605697696642891324879459142710276558222200419124003263040145935642168323197684897793438109968603427070262827116515966668193213217017046015102542496386012435692685773152076127336619899620455462281003202529856535046966021550001292191075509478041689382332904638646893481195112525028459309437996852298258018265552658967880657110599533858319697269526928456657002791770408867911995769092432711659082657359552964573486012179873015396753274649420430385158404443802608014706827722629257275288008720061347685140296069174763903205460843915844870395169226732826982095360504106253479256251848819788376448408885730094289376987632062784639014630451433213217488651407950583472600438569634462575382133691213617864089410553031460176126373343869186199420332267667635882272762992392129581392595842645700702472061007901977831257555486168152490471967547318764400108950974242593834770193086172233955329376949297794939937553196622736366592234098646575737522965443114792611851175012494724208793504079728871749896858396437954533144078662931455413620514324134142282280012553831984033342531278343738813489875428627181507666632704631110618184676291906430092966785054144240938226517261234798390826506447270647934942323233684122526645270115599895027496396599098990227167614325740169725606956704398343139408266508987496805690410706244470430777478395569125933079209217273564072933846588491860072337379061380153899329358653594431753257226899548125505563205739325179905136801402727190614578347884093897484702918007201753021927904785243061533769866437204657816482974616019647989737981713088450955323983383211647095281928557712936439329707026537399841413142826082646933908091195441554096525377390186048153533855946858357321727185041425137144604329565367594555717084648366071392417069386790332538680105491129011480388515575654569914414848123920488549600474907901832670932141631986868121475558601228956908714104474123449133835173454885430875599271319326730336780963078894688797112199444605837564055139554261984988095575820804792617482503657316422194128518547379178369478920091149005540589990194159393370211931244878800898973711503511726550668060449513660679903113379960855574570274122417427977104220217432838360708827468385566642269750249096349615583189929349670283450385320565381443414292011649455753324520151958831641253186694931384321176181780838243329263458504355995359812352070276792619366221005891299294927392453197831564303608806413837002477621884676870548470575694031754018280363294620924829731517439190977194180022842234526599217341093721780624973528741264872644595759831156753653526246087256503956940591553389865017625471785691199826477127778956598135096502422802885152990305507105292584589518827072102543545260898037610712654812313712570917242570038865137929923645398964959683203966322153261628960856082082557347475473056498274908132445248484764008707046071203172433328385547427865893911663408527169497639644982889247276486672925385964075657001571317719851839524727211871162493625075374531811298716036411270745584749756838983142196408799846023955385820037536601223885018194993697101675873867912912274496525971176526531449662152034721863053136450798194836109939665355280377131641361637883360005225179319550082729823309059938034631530814105362093831469687905266286948066722903880052814181187695302688577361331566945932551428570250596192040905605429304435404276066586534319269513430026010110906249028508623631552388782171629252360742951023600477423969401659832400675090711086722338101516504961121092732965340206564914487902613512928797513919367054674503051454748689635917480434292110263123958459159751643868843423032435936251284021018527092596896510700161899458732208314225180839677380028243188155607325085962974288639498014037344147777762605593784507777192171734703917797769612642290096664589858985589814722918431429902630615968801044853329208902958137976028134484175773206616775493053733210169067536455030424252753543401342081938212510102904208934714841413469683983136005301540943065450152500428080262734221889846897033654306699278838392278630480631155706097915517258488727386391489067089655277670216390326204793551602265506221986398620927524697655304742273018530444026644810154916661507306184349385560078160031523078089507815010259547526139718404102072390431828962041616131985543785167325518114603524372996626319357695948136631035427493867502661320279913583547070637159721852423166370986529115897909193196830671022006085469902778929577725639158346921183511816954536033420234965350259012607448465248807474192726604987860880835884135314373791141545053450964041384782423224904175301375002434981763693737543665885840449287644112230860755230832984107718456527465688118142233853818302782047339371788479299553393403579542051767658737993359904441886911373769312300815973510305413056056069962743897788600029584735707520964845362757367339138576891270216706373028028065712354414785394761215976833024741053706967037431154685573778553771736199678094055477561392421610969344585901551675549745941322964959740864854155175829114962502555319541901587950037118709498242863725693599411244307786764545252147885665576232543021492552768801096804907868847442091444936817418427423161971029473416251412616706804264654896850416336840513135781746310347784148180981252196943603322749435153552172630178737883122484083442594285420061943047555956685422160764461424754367353449874729495293224806154295726249472032941569825575492453877149699732318009284966596016770997653462838388904610023702425446580557055425704620159481059085944736815848526326159224917642539693324725432874267314802479927081019930968998331330808110452052162519553104535260861792974753640704183352057312781862748981058150441260861193101981415052262827157274872614504751732775728537829116952738489551970485097753290911357018379824808770015656944913485997970070712588394072289324553486188292067305231369433601610725784214999234137712081143097439659024582903028716097788703830458955443060154468035539827684309860364709952607626946522657296533321453002919488650950479846377636936651575325664766401072095107949959101007766114641684190033558248030927311559866366364837202804743798507555241791256070878798744001942077622899552592791932941943538375515377390272264184533279905596547903894187797437145408380424676937925218699146921956905227976540104044811460786620959133965435935128434934305067011636287723330648103642395443945491586207643469975822282278790181855023258160018792118541437622619673683816544019685111396119323938535122872109436065526117782910934855956680265653398344878939169722967032251731666102124455851220656492113867568786887772336394397244759773154418967101966555339889195197764996273685963011516188365587227791714122690641331529728572130913262785630647659265085188065274493597859485442104720837360360640158503376504008637015435706893738188126782987803590546440099597166680062485001165643727917546781853357613229797405489542434632519583709674602726837297180401106884138968840411258043882308636814352861191414900476947440465614072391607857778766561467965957983236156595310701718123988468318876501887656257879511314835313979408936720271768673249970723816814487241662713217313379549356793482854857400954708187884396409242409308351055223014793648227311461905897979334000149463788646066631280417113970568092697532451079199295126679703344540663795785295733665648800934263737876595845123425789871422422223508391205735779563877518972718387851273647174947005463377603816772857169040330450277552257448499298684093529834897056209786799810350113818164722816421275891018987436532478922788081504628176534793912876457847504227810581153847965665674753150216511817222744333002321450239076077723591556317092586818716618867696799644984742131486148424799687400248556659344188191594715555923950453262930905028559607295818125414904865952528448331501605351622239395724834255226450778768262176915383448443744818363120016267460416311498494671991000725139485893226757582723446480430898020791955903321487061943365198837288759718736511132976551945117822529188090343735785553911760564970911561776814514314563966190125559398141421582385956737534801001784472510345761284943437164574136599319782849449983774358664453213789185818866566049007039393109513409305311926033462039353231564269324347092176261214356456876458799280782866234409591191195123291427951378919075189213298976030518244867535904823596799288685060931314983760508280053606560154571875575856670268844929730926671518380278692115964768818264008928766982244035161965122492060683158265021628158550730307307168341135024826429390550294831765534405048219166961509271948813216149158781532979457982632402539747501370417803914272450333406887979778233123095658464462554954642059233950262452095021517256405845376201654633433101446452768944399243004591948611269464512122763573610816597542429041373906694559402874494020905634264118811680249817805964060875521107568677331620436846408872391853009336833436349870465264773115374591239457697868266065251172821773266201338832093090425846373536749702358067728755068228695625247946533992525535786300183845785530946848544347468904584541490839536432346449847815146430912142200372521690044268450296148092430680825379270583674642528057959289892126293576461600682992229148420907157265938299039847534994675294421766176500335275432694151597764348548657126776900800805800653309715864628581863737808411840281020369932153604988794625227242015053846066671319882306436390580900307545520577783795113851777053704644724639079609724076956859300752280104416962830338557750043043874856528088833861694743114580857271896435959956184370028627772164784074140276866762372508726473338581527313205390773721031768542199039991030309030816734917167496584294437039297338584875836318620270991405435588583336640198308648586196260310978934459837395443388384978750524045705149998252432121398079654509334231244830673157408855572887169632609119724912902753402157802808766618762949656606247981140555396483897095312264197042247996435586536869401496905997378398747712019478126049936863443243994389893856176218105870250641552404531638813013247150710862131538787905068541367301033407366827104880493529846440422515424087276575556701575777511276383049794052556972454799890457984292986403556779777674622277822429193834340035675981971436329832257291355487949752414617973961276171206559677425006631304616989354089597627785496646148924463017597743843528366822842304343647387462673841157386007317072345988747549937156856060448483375727567664165291153563464619001608565230409741331998215465865751116842083703985517413942152279819652077098539056180350988633376059245484809892564797073452966949300600037522087765621053716796657294545752986022127627995956714365287784352804489796371153845885524714325924382448979632123916684609081125757485130086953166458749250726914718313940298366386864592153217589669959513659931688188648109023672014579127511523922783138190391891816139877054095473345540837387709519798477796757582182001890574456629623937822107671802101604189241984894451811451130212520536924602643683441131931704647856580440861401635112542423915232941348824122123621547175476333945263990292976591914834599526848497414702066609872699918370097811250362738724784358659431027677444830409402274793108338113333780076069722539136458031101309457034044146070475086816943831690171730976354896930947634888751901514211287744150923502049348509760349495226580757467790942628556812207025889281748170951705543970861239404916354133443781048190429286406981297319720006726066312145543693684136177873048035993804041968635033610190572080286299375458337569984860525450422293720396968010392121219371802748223899949394076299398898314209620283204002964353451372962614994581911393138682337047165976217954155960588761806899508542233053706960418114126431461422744588618161136820507419052121291040976797940917454256444404296668690665867491336943560419170135235692875249647253634738562210983711376619091949421514758683135131885652985346642579184327601075847101723771974749419036631324611041706306436271190363398421522443805991893175087206232900477865242235990462560352143942789969350497055603587921693730964830198137849979167190895087728071534834619347600110595172169283350710647102102647167253355921364799399657376039853214669420377162070335089799755659418840171978287129618143330260934596400452563421212592801421892476101448730602083138165198710948864627889394176990736888361455549495020311161854739733306633600012342129273809214815341592776869603732547481179819538428464984765622875675854208799241384856016299668371455275249993505169285848933857330763186334990186017595902531087605150389179018387997772728754982435491257122174610628084305685342757451548634005483314382141158574532079682818956032937044267368659572159777396733854175354821003896876415143274704592500721114936864520095347155218186907653739703568585736986220660324099742643419601622420775066659573693991013303338074038529375514536908793148157278640891088667049079528238943497259017440570489526726379132510473150973724083242647969242209379321566051000784845663148989791226485149462912521389677262181290859330455356405431567670221786058361969998057215659420116935476950811317840044243258514559373600223530917320828226877688389030858642437509896931311884939833496264817383060991039404241661022942269355738166435908041180979443978664366977984347564893016274406739525800751112016741965137283198679011120984024467624824693163983351790616772748057571296683168553816907809629828402639886138282237877363173528428714894446825075856387917689099011576431383299416082493329471985668370807709478687775560080757636149943075681682917989754318295476478116151607787605828810609518969737640618621508847564746394092115781149065676559757920110804133591237498617169107393513539168105955083647535785078199279201523597893325165808966342292837160688012788708655756853417720972510041478638652080096421036029557443206955252406202442873846031552047637975353492103360984773442322762788170284625159605506558686281285557130861292839831089612859955315219283438480211132190251586041083507527330877770616064441461349491937982318148062693671675357924983364949447528497658234488782352825748254559234391285332094733319368233372798529077830446449485993689201766903229435489968122093907240799312535760714175128921643919817512524939837942764812552114042779837932861028338687596364615798661630155693101519189845184809583096548548870210785162698196464021647591747805072893220409271728151630763481053640985517248576419995729175769177960160457540726368066865377730264657946247774012168085953637561443544283526564689248620791727816095700123838197155135849760818366926238120001318859249413291585750030244541757520235315308172764227186680499289313932085361037853837599127533573251942317373302448561989294129104903364307107072349791845320444274932870147029015730646122880888324050734335956113484450615923190708792861069245972377253378647355025059399989817771383033229790716458552843659678861715562871295459426376202370397114614663564546587237559977584729498906927031759997791450338577910679936680972744531688702654932568397964088358667629625886977172785546181996483734112220069797322931775396615152939876429401864121001202668860070798658846249936705388432313925883025506095410052886436446367434437027992293312590415632682738741847855388200589554630353161324188424551666279347157473878442380275126668616684860480061203570616583444410528741045920478593121049739486848256432887135620947910722859769326062817708818620002445129210793399902901245652948827744564929932040117521556080754258264712049696904442831719958185062444852943493968383099748631814697767873764066271294607625092528697247182259413415679901584242475614195859347369570511322757369159473084948853121524494730662210516614552490595606339293851875562166270312467238975362236413909497651766133816711334233449605834770464855003446448418690707099739393099131950920140058394861579798373750451499630757679991920657836265054457412517544978824907193105948241272268644020079895208467631902214621441485259267600101479206976237780792321662747096173192137768568577473983905132049974974267197933860630058569104046027080751381809855736340009679299118791801033187713689028606100355271639440015941829520938902188646728662311506507466647898780032734873185084235464406741371988480173944111725193051446177322564858154073589333540040685983498810742149420113592030527449037231754722943531660049772149589794291139566875093428592169224752536886315398771410683225503958615001026977383324466256598190923307308919688588138186552036510375973443812025131869129109957657664570927188393422900767293487262951750399739009320066718003298497983812552744501862345519460010438655240257446793600703577678194826520782743487802318622781374117961850292566230707235628266396243670948644353507874153012876016223284595212408998207562138754941679829088022120194626728832819072749952888774643669793593630980567964696753857084909707019865240744453683072714547502254222512738486292539107301603031977558096326368073850165091319334880334923978689662035175090874318325554011852429348300120841669732538295058768449805344063035392260225500956686918249061157433517405706764163645970014319509682859111333701148081084747512699570475982268921824960046165884461329150247569136309231789054578621017476801281335388536379464111699247098987379497151511303355470950437179494788836511853255029867326551386667355910685187523524052957902288543911281695952867073451527050316687376778768785829316807885388722193969905870756697050439122392870715231892945358997624494759262552975530891201986531793288012357157890371521536379387735908444959857536730264698232126113831223385466272646297408546818597428812471334706351731551594162603561026122235776328107804457413859233935059252930999987260549397521264962066041072021033489918204526889703651993401168992961779590886200887762352615980584919671814109153190578844416064877590443614125923750558470050193565983652195281015609711205577569376822707532730219188317715799599572312506008372449566170528280619247095275893060804839774319805260773561771225582812609913133068728023679618741879936844226194994204908302847748691488868294399722969263685691662102490764420759613105818214423859296628692516578888266082667287107426948835669267808714276680879348183756471401975728347198110968018141352253330943289932570011678126730248809826359897926166063142036195689130051872932718658574103388706445646251948469880312736910139686023044174279073630155310845470863916868109552198638924770631216361363099616301530546699271598659191064240185867966512029285560172871317901241436274573502120410032797141509689115612895023954556248892712934613107558393059056480946021367904544383713922116107063212021066382432777683757288464869139494843429130156466308119345882393480722044224798442909780246687806272018598392313830834203354380349306374178676835742613058397683387992242672389349703847814251215769102373769595947142469033896361750290643160114889516029177210381982962350590605601161567238432054859482967996451523504455814990781705541420873963197433707875411617954385416172000999442430629024848929782294455760552752034611565928587823628146662002134736325481277947109607446856849815099178671366393585484430871371061638481683468234063591997023095062322975211855806702593728759316040018731946064906198632951981701004896329383537131327915414999429636661205150343746766589865341917054868931200273159367374174459843232049231466631056080533794469764910335938025259487622937326894739978493867656811347931651169870033268377540871096167361836593863221458396233277572377697365745134757779817980609353284875463702117846236664096825226937758819362799304606149414677390282723697521555271281323806320909217027509482892192355617115484101319643416349822722671570375591309380961473646344522627402834352871025847286325770860749372937314270722601713852427349419456358300626429778542203677162269108104195333461282078186928937574977302501306439275225464683720821753387209883179523921419181309523346390429775847355641339313121241073276297830866862948776285907993368123487528206851823166751779599688691062096037903099169083044309626662928805992058879564233100720976893465276850211705525570252360185236208695347835619835704514653958031225496617471047893788139321353015737775109288755863746314542810317018894976266237291257081981229963581234021710688740303703196876738605220856184780875710574387552175348086358931994450411825618157856919005800978328067532199213617392203016630562418278848590975277954007325110876711373130307931995193243336677555186205719139001173093346268776846171772408963065580737122987306634577439217055230357602276202361542139456593083322718761770881891087922761711445785889907531333828104273341550610729567564351645858242196573935949930080430434455020002112733645645763619287224958280471542144323823412832626660515157024945342318014863511910886337026627856233873507179263919461338596362838252302508856978408408369298791358509758195392429155166681052482619742363123146884151189441739000052024497873192051093882434515992715203678511881555057340348837189435152996158238250353260766956103288100490465460581927268041456341012384761819641189695216431847959743070090218395926332586903679044040822981227957207202331562497544159028240237346607012572784894759597864011188330058720448839879811379509538735065087880105813594155879215857391429061561922099015806838620421278351159792221018905027448775169012688692167530667622139899309036181233424046243561271031561601479601761684565840400040072439928237385219925803525150935282076823581508484442043139308139562844962921441212414372316397484043695495634588131319458783800559305493123109838688638463202368717135824191036153616821063208357890984124018396661245015468389147594789265937903124408023558060304891640345056272428647978436533557092755772698081495616664989398138443938901107474376254914697416464711467575304390616139068663857715678850524680748119552358806629790078801514551504713082048062592323713313423362935127493919537906897237274595467355298540930227906591127869098657429615153744525157892826148435761640114265701919854024159827588920259304146611133778467862433812685672466978205288767014482082622858983572299734842393963869041694372519356567440144237683310074125549500055439212792785534200344393993500159834475182790665450736862597458037879410695122471192072071345489534030218028370455067326057134715527210049577517127697277693080298873397410363399122565291110779859693166779269890482579380978687018569368785615854680782433641862367824511944498459611543103093803308612511920743822171998477406699252466168446381051570145905362289127382176123729771003318555882173909905566940475752742241887390558183131563555532383691512639784294141347508652372312196626529121900630805011148762071566574263474948521524307538407922334562357696020828856581333895199154934073744128713052461989699416199602181095630736015189550458664809565493092926858773612968940730595172473319401316269936437069194815197804527656313894741136162005048915135249030866411575340784245519591503918221728278765698751135478498595239165800392699182972233171462476758527702783829787996062504813205791657044267593089012603010636598802485952642206890253308229122173457811611389027965404125286900776074092297035027216046248094816412931370346087071506105407535928168240622812026385716694511757195932349974520526494050315668048222002923255686664271859700623301536531349348628330384156436575139031682674368590921558541198083460755686581813475019588907583646016210672229472256019450379999451142720163070286517458529506034479087859722473059747949244684363463474727876079902848002201308921580833395903504643073809015854487345381387377725992844215680057494882990616964560613225076166244492127968402964521876241550899986358304019635238253972987111300058252053680234709998835395330684541239457701343803565384779584949310938921278032755164165851286652964915987666680918155437009026037221865529525907756755260415346029361428918817067208524720963985627822033712342154883005216704662483038214059748849610121421475031282361567584429016779134996776407803524405823812525412573568951799185929348674633592523628895956426480439665164893188453399946200733902345938775025426374243334325635087225854834398356303425619227333487116566139927571482239265469600522558117698759346766762293453551290274743745209869146463000089849594677889289508795162138565193363580197622140987588887589229553553759939938252806712726121048735343022205973142915517294097076133954540373440877929974155748286821510554674799673144003185831997663531116014194046651377273798838979459069481199588096076346151878310805695399324282575167221681183274267647869611392489479338870453170001563542792367812173752547488165689773352525304466048032949186117441680536599341990497189374709958458455720822851505752670261408549599884084208281413011216504069954916054947546854530095968880512842803359205801966143551606775444843093901216275266142887507421318832642589381025269983837231563143604073964806508411635044141459087211065966574955033609343227550280605445694848367378858956404798393192995110931302369836398296579964662021057195476330849318510892788300783825267627365286938469618509974331272216160554078055078653063232496054217667185844107826443290236165606858894073086287552780877911936152271024188507454978910516663864526744946122908971350520113665978939212402408893726709584045418271665720440200590041645667017907928369166234396548103852906765745313564372317640564866920918039314656240631004342498253850410814259205482849761682615080642866026253743574669594956109672969443073731630667481937584685593705645594599527769412341072876188436902783057782189551782781228808672567715564253852225972125465519024254288490312477773228953876990919653674732871367099620405946025675052050008153525857377351058494876683142639325273629516102700662322084370444828188370885298849105658309219919769209984818724278714507422040733239454281656799884976363879027030819614334779758837120688342663714614932487186934590961793084340613163560457146646964859776270267608896195088736118519688860507181388523075789066066619399254646130596658852514629445726516907194023565358593235215376344047798862206006743812360812517415348348723085199341997095597716044490215470457409406915886704205979690161264489580555308971723956011810958739810968113021173248469820434014876320641225149854305805321876781888144350416255427735386574167476899267565977104030656808955101870124134122932352581962330216125344833977119867489629420538831191225494624838874898631268534330888730872997858464380120257396794748694904423128426816460036679198356467820161053508969416353778132926176789238002080315417988037599693020334256545650431756562125785530505044700199475727153106282114320557934053319266476868637679357765204080484089387886907876169687428023927205952390432989463540421571299634324611692322108745469320519745612915447820418749176435127157805323923356581890281242840666059515020668518185421592084179815302697182561412439229400241295941804288128240696757643852550331586960732615822186897401944287210450402820364918529006776897087326515702147272266302444306250721088466454701831738183791731368557253214195879858910587894831180565928775958562907339958136282594306918837583655088774644705807642863101679883140363450131513985442839681619301902654628747310142798218394875873188040786039152054879333741023762423389161881305254339692127418353766568096548120577597633059373573731442225475828501893342393880688483283271843626643082936638849199299389459361042759907436770667861331838333434064895461353000179549259829601129461929930723592331453411401368137077752170690985560088177151235622497444084959642834508550887516610982509697380129018502922151746732442465076227889779733963833805576618716749626272804162406492814314073495951318770558209823469216483238817301846310430358773850998137812161797016595772158937107697675343627402727521224165330363219448853682842299025983838850036354354475717668367507747683036653948869485168481048737934627595969529500461284733111459086034418673002912063059164434563431176193237675887045805180407714876222606513657414312163939680877844237901444897171933369473398483703993085195810373359921213149971137096962563381838986979761495831239226762933705150738971457239926291643500412607025027068262245846913791880788953259664224003861841707569239048022715416556247409963117385867537213830181635411858238773756674297021508707568574987507971851626833943792769104899015259214775620612253555955457486874627625558317814087556605218797138222045525328203012310300983331674024991159491654833622705649980600772725331813282033755651520595805519278003962198709911501274172476924692057384034494371777188573996566914529521487749438819188562118950323184194050394052026729943066425629863468387000934573849534088350464359530761561445631111819609143827602047933961877596123845609850081006223415413719406983663440498268654156500539724182340200365767254284932464367231523715799775582975517427729427969084667833492933070083280861346776150563877354889584951110677474194407151903933556408177869302523244749909789842307419632451743201158151262219096601158981890305030059598420024436733847934186603890866122696961755326486981459837455448526108818206212935201802215342324807430469567684255139377164531627235727452328439252858317319088656794067879761178908529820429414564081650445408566298662517868330308655052519173551622646919773384934651267923107054300223641471747445954530871291992846506530411061016422860917612211906663374087404163907266793581346717692036658409418447306246000625921852209254780466500739965981571301634170634279774660254551301319415798573474061149898938166641527999990801175574794847531533696873404522280608703881329914624431098001307976047466587207089835639485331251393056051068213975001825156920091554884235246528276676919979011086693091228390566923836774155624955492467918096142294783163961628106668594348330853443723413663500578208326508000901655379192831300441110137699845328803917764659490095315794361493883407805545472350539618889632801643267436272741426181835852508512620186243966002149759933682757991259538105254443933282161036299625958402745054889725196790627386611373510937715889347526445583654846405618471014431723336898524906075939288186782419049773295833420762892915625003176488520344164036512651507956130831613192890280268742684783524007830750459486789111000928181940533873273420806080133104120099495049747710124167009346540556145037036340340165968977712638388862111673055926098663610903342599177831057688933072214144412146214764625204742907554228877730106727769064984196887839961808614185488059345183824218741323728425640790174129123012565937354707939948433185577151053688251323617075477314040853710465328322813046478922570429512977301084186977554867734225452307084722778227462822859231252394758420973778653784384327581767749327740915898397610933657531302974465605544764667763562540046667354673254057318810963020492851699449352233110984951215101862492727250641182299835550285152566404900449248356197503656448841217266048619213581888765137846626327457069900652667166782481195384053030231042521472184207718418561097800958890183985863724233326226839715690677617575541387426715173095674837140832944349868468013690317202551738352539715709946070251461430789460685014420283640874264909444921263830674723447395632213184554836445362176965361131386364701731326362454324223222610249097470505532867375536770065192280505683200266846908170932743561164971925385054964477892281481226590859975064588068688154931313948525313418770274553669779267984014078971919684421026392494641039381688081455140384919982320629123186298573829499852437981422963875495380491974510559980833645861163098936480384970683750737831962442065066810797721493105834345210469483235961984144148599061871854091346531292690271205138560439610192069098241494871094318879928941881470359380049276738900260957388215773488574876493653767680521607163744012851666690220974166052367109635600082452645773666880649768078310931382364681168534960911412213957878751968006034442953067059854786993669034292016677502783034682026177572552027085452296729291542401039178591912402972538844073596525904380670511140053572576706529010303957000250388580952950301015842198206041413009233854386130323858633988846830425804801870370159893617579366382442627976229030001058979540561748002511647761374861739820316889627070052265306593596257487321860241344923508965899109389404678848659975262879608768340940685369036463918902945475958645435561962815165648487888183116765368743311173305903244698556256359327944139024637274918052648392764017999136760646439341769339987072797697546222866296847676202918064894347925191329387177237772057037160568910011220775114799789824698805700087867469740682770729950659232814030357589386212806267468110856415532481926207529351021919862456312736613560597739623754572097239465945044760367264960239335940214202526819743330466388036521687758947721471974313190385409006526980432740155795324041941424971214689366158163191040332275947627001245079825550295314966851158541544064582101366078911581609441052671788749137951730706832461617272817380357878195680307598971400028328597903959083741655518273150261106860545482672852300261977526621480151135783237467369388998829142469875746461892564591209715753107922085678399640774156607107950770657289232591714531842452201026120726954073466230505314755011384479919684278728862042722289435767754358543412389713893778305897518196149976096696791652021451159004316175284410063351555061293070981854579338854975139792448229901901484581592909140596318746883415016058589784359322784598361251241824721621734966568800477789793777028027144048564932794125023246494820427409687499114928519369854615287930594956541632229197165834905138929042311147840712781608637103598195679546105754736593526591902824495475423760148052946644616156795926786034705884531904694482966129893585307149769641005023251458741486204946146399819948924109859255755211703540362731272614886096944721550511499001674829685057696548615835412461077304274383323374171467945708438885905953030693054819588184967552700495157823625023924304206159794697361932825378655385951640147254556071712484909152592755331507060331143440239995421041186092565660509395687342289299303148942133509520492948832111073221782745902844612052294708436609328411259269294807706289927929806529303174552214322389845499954940901125560230045744142460505498680986083409576759899810889297841478308082620526502965661889794876883280746678536920518795459656286443161451567264389602004614410076581550222113217666207442712276899164220213533063570077277361984914050480937319453086231392546911191574365298100796152358557245710228208448884758951174070315420288323938427573761432975771836414749024449370733370776442431775763484511979032408081358756460746951555123492197487069353091063274280053404447352616807809384092273129478061808060803550187169421474805148006440762372363307755045912389215943526188386594305648188398474554225599612779670055164018767562219912887262433366587680328879271136206640618091201583490536640630207737845084246676934465437549347206306608727751969303171612531577383657598362694903148293302476295368875674108016535099123591717943987928358689014887565928937347051173472453217611084479212583150306229322961595188233998678608305185177408037525088178963028339146198499275767340691174080190955149607968396345672632244883280732920614859608795306734822348394897880225144176117173680328978819038800029230546106732108701527421609766883140867509284359297807032901475519665872286744366560700714553460971778472343505342136786709463003509470497258318892544576880626977578514023646977152844749545410189980796250348295310443374308520027008651716701286531509125258902665402028499089879670955719404073629788488168891158318199371482932919420006046203330477967199012433919286083699312635641643806969861499835580549252299802416960831927956954411615258381559424273198243386833715650360266996178405751016864540624720271819081800731530007749910247991394163225667821109694576532442599968428988406736782026773424795247431172986360293016119790923094219012081558877889360827838178538728540886865640420834837169183364495150788071812521488474980897683039618309654884702407450919833509731966146663198210046666540828748083592284601764843319228366612882388088146407869482431178632027522142315100984329881346036944645545466044414085092934822179993861735509843670564512189437950408577667974929057480586354585412543361066527223410587407525478012606229560710027074381366603004958841763021031354158786690000100577291634566177981538354084134183615870348976987696856852588801194753355365466690213271241056188559728325384287536181440699718482510632060473896310090198985839051202461911030570554997435266654177369200659192553554525990502285447546664902309979631402286961514290729735622924846029703699246994407684229624443519956569017652668177813001348985322106527245087386125925561540147227818461535259959348189688219431427531996185180078795528761771784790436775992820059749404458720910395466352443351282294546048223831055421505153223046409377745258716636205369872020190061420303929928174014038447249037730674081148914930983810943621529247920407799257447230560910909202315595039315705330079869023342168715887444515977997923774050694199269075027890278813083807303290066590887387636412464116555496294310302750393433820059395390140002414273619918248257882785419631589658956831362660864028493243502610508954330667595774530848008373325070606764752951935326595621757418427579599958552564033108370598655605314978708620277965150541515062840512448207179043497847476565742156999822819203838612963788602439067346744880554813982582856022127298998795910618338809870061523609775685442994558552361961839000156835237705137232160079251882799642547525609618033504922275488012435311180416521233371255371343497538859416946978665515513606510162201737742226133356578687616018954332503175450092850370925882988103909255726030604590981230912314184720355255969238492085686421530505409580790760777653366291861139848120266875455177723602353142815007652847556235488740697918629889393280682007242795637756554068285757275256312243893891328019673578438556573188025535245625636389588347451520831550086304124972872611305363599652122433795918832780328517522386656013031718504008634658594463145569557677516200265849638115777770866271934037643607817137243546146486307349985805479552793161106726772917955860629536695489903199285762481475131455567293545302550253993598656482573010309268519965602760933029992730147842572274443996975419442236606096720521097338764196839874917689032785715884404083678193529890623287904288525366528898652601825882335093673290704769699212032072518916608531568238733145594702806562261763143996229332215974778281359959343441703801690392229943607220177936638165833465461908000170961879210943880250778534825498702336399605635290797862913391700112942964767058516987573760406980255394015183932646840738846221755686500557953225797231602445683376493196632683669441617959434424588938473425197075707156522619479066457919499468636394584646877138473631425907680458940409537754195877460258575247370997053312122563261452424898829886296560700907870876199651717517529246714101521173409418370651587747262696700897546520685273132263914833317965303182526225588625506455113692953309268712212161359743617674877322900478341330789409018053532771851716941039635009504825616006313634296625402493688062920418845968899079489823742120819586330783074468226842891562584358501327541119277014010130251076934936759180110763997909992125377542300156895112748891173963103375672616189794841012015310517003387247511469744418783264792201055069129066659737297345851757506554563441175951450980407379988095504797342721013246136502367105300273125652659798645548643065306119527889078163790912923266920360118666360588453539224391368700300525394771064572616466512997733381570659496818046450488524079949496346053648987037162846180848907313609279013193464614302296354355159580113271410687331897018813261899077653228564082188667100727921432618322958089575524774745111043212076251473881676589697387951942695371303933702487427811419997784388778923732063710530076738069424312826868886557565295539225084745876841811988134488924056346137953631524774397394307331152419706929023127811927957360394811895160388821458143074547936937901348278962760718241755676515872605032247934042297753624896728599484163440922352124424823520055706487720640381216886597972040152136451967738374800372446019135276017103212969851802463437088256534112887922738624197732681602467974676886382545931414040452811505300168105802157380368732576722202990020390414582326868546353522343136583570750667203127561584166004691625327445156347512970583243156864037022044375160444674322427347785895455996166911272111464798920909782220884438769361898843439643040962758199493018054870395348701427636416351236512938314865304092060841377165568186337249883686158592424027924757740893428114000381562834367117444524681224488181366488627140326124434642683779463411775116937308139261102867535396859615589356144514600599138178205282191428668609991181054967716647570299941427018087032470967789707612110200628355067029435700739112493224293124976256993417504554533919534181345169358608519412779317923533518098962388436133487976296514131448882800187983573741959045823650620919465608140999106827617871484826613545140319920713895158258006380486635170189198196825660548363748878217457611056583305655304676340759613148045844142996644705449564351529220998029319872122528207996062264612115866104920060333251091955437407166385563904081005681968306710304303968666012904820919031184964484422840360746848882141893377860060372702651837029459569802832398138415751327606666633416236517009309103015626494629200296038844092182520203620613409493477696485268461482410775151506697134671390417103250692724575608659918313853873351348190887878336875711722562889027752395883899612481652107321326248676018557976982958085538562561879910949305084151143617737408907778956392360672874194932773269905131862979142481604006458346023166316241388872858614573104282540339006181829418575344857111426888465352720406262051463974228531204641489594184954006149204976970694779724071137388674327976453224449670243388037839968840461744996376325686094919166803560661658395180334961630495713017510278103124874510231010971579890122022395893294688018179627965485670033800308285882386612002056577793085369796972562211737108695202461059201424626555353558373122025389169289379949845835298623209902522036696514401130477247173685029096395011845767020541757064035695722550370762032209040372073428112534022095771868705365832539025829077817122126833330907271526413430063269741957397463191817560496608633011846750196547560515471276353874427217317766656957514664844890031523129128444251358115276789500570984756224319539791867585941293238342218228677018249600760212010807939715050172511838349436893962286392563266786418597073570394553572278441110154418722063522344305884580456140458046631246137640420991446423958547163179301436522258897347520203886151441271865994280275246264850209328630718596749020557074517908992677000276802596207211625199353939604154062973340398559758975926580325928844351353322930362183465920792773249376885283906510442192753686561741131446085345163792355066528385737424714713138474449016358687035087340051940664498479603709491614886490808063996471092801649234185751633655800379292068138702100063099193884911359384814516639502114745711060530894060985915506287827384361517545770691014527314450370185298753744048565114651495062464230627715083464274183754330574233998577375548158733294916214090113930267348795997288847227891064700993030158430868012337131323348124532990331450559000312773714109440195829548989166213185769864817903944629529384138566305088105591398502250525503552377533363707070635008229845959430827368384020199383106111888380691352838309197810291116889239977765393727689010600204398804070208912207248801483694812143537437785165187015523067400199589031463859064277651238656038874556282164533298751084842990729244760217198335869837495256660428052803815151937904816723536134409572704918956711445881133259345167593398342532725284014897319712111101431180798197048384479932628384024203773927789690030110181810180880503558404051211665560193471126108611312730433014723955998348600607675701501763260496271882401618591462752532960743618104965032428115442353884228382918484425357298762864254576939966278474001631974803435563746340537597629684304870605303017275701051992775990578816855602484498394453963594386045130631660133990321774240699696107472102187904020196427377615616779979197351824208074468150176964798054592207536689909693812797033115837689045207697136092165087759737123887477589125973841940283452337404693927715523381449081156713443393813841710743066821223771606882380040733878314895743495174807950337106052266515488207039694413021577950620471148584964046707199617546411116346108933751960192254085835799058733499963361494754671243930228820946153949827406342919363362318929420746454729938867518944528788154991295382627674825915244265570094815907626321872483807755379895293167806472998867757438001318073934640688372493980092424928111955427269717929338355672787647843992015152004168398984127626985677125398568937370187929934385414193346690524641365563620661677733851399303610709838654861740635289822413408187586459288778989985757194460809498325600031553155924194331675688943350594442851560470236894685900349930158940884177374173419663036497600414599063153895408691904352098511839894694405361340234437859080550159447775421200364984849544941041541118773543741572545300781493579103692967956255101164931351154631868776851989314370597997989422019033575603447466270938229614848824628445849441781688098933476257595355437366243279590185123151659145856741665398032647737711606653727651530928766095897454114750628380738301620057160696807539027628536190868138408694045730021758928516608727433293176231972907672881413838847289139640163788844837321104776964571965188343218863264721745443495922140467233989835996585516956196259835038721888381920953759191918341273603448911935387976503280190510484900971547634706609604668713936085626046996202858721360612470835623911494715484497890250420332509889595424518294643799757863865473246108841128748752797414214390286857514419181619786122362772805855175988660176413838017692660881183874919418190135161344561718268685651914518721081225801971148085319535346264778766963547562191850124949102101675524804047176981155995748285262036579800936427112520170475050713278227868867128667293847615762051140713890152788784419969142750064293573644295293616104666076292666019798878661440240103852594540562978091886857998568927753933601605554666262869299312569459062999293798756919480852046781086178591466639262870278869501525830315493671901511069966411669526990289310086390213397747102102193316819767926093344455671237933177848223110420313916468967998575621448245475748145576850381303667923883035253928858288991603864563051963313417652927148547217218496809702210281068541039256215877334908713073260102464420368702632355274755945571723974200926536229762994105365092043574055610345924679905778188965953442368749217260659789065835646672425719822032026041177369131502439961572249868370189754505228617562952433740882769827251673892519525976026188364378763157414461043063456650775308053600617549899467597283873802525175476425011324196554368355235451878580204077467305875531043260548687343454285327027137971072727290596213921059245137621794318446194945518083051755095970991328042851363020684812363579508992737283061835766672471149395248986559167386899153650207911152525341620444212673047339399661140171966916454282100914396231503042644722575835311499881737331012908062151041857680902681989519522714230624761679998833099119488179632947947640004001925872536681519041076268927234688652238334537788053544752419677942187753309014418675544031250899549508789858458679578238779735188436065078434034766325268133711083268404109148336326190079885015691646308341313767325733500645071247383015907395016683491171653280919192788035883909282645650765147803849586063373381470881787427299662464107589327174489121216088603898569409311128248152859342405958812758584927752507567347477541656621123594777907737017410463500633622245134409051876018875334220399854962747828510067942914860517942320802356202059316338167859233085954764520312879907576990571795097153135192333849546829193242247996367845984596675692811732051872510609788996491467129218917628160225408429478194764609777720641391805107774606216101005007265570159150419916859105773207991340789566605789442591015706817121191433757893418214512880230034749251695093579491295004476191756625184205807727791932769512671569086640180611977550643864888220287316575161528337476963673293524749783888492392982316567820081042052080783350835429018409723244993032736622252720401420953922353952518061317406739168401923669904383869868704206083895047687666471356397048258967040876288414035136202907702558762746247748046930641422120265876777283212035392604273690791411012408454382198342417823478455107645193866281388487899795892289798435309746976420179836828520517301850309019383610308141412929513301653319651887235274353977922426417630132494367111824917939848867647737568996928604291483286557843047144455475374411946842208030844102192571698431860588795627818500070401025709102893912691170799613032578146730196066025263862193158861969179917354078227585731753755277960431625530226199604709754633991357446018927124543027148663677469800110065747150358201087959267362337845664869560486595129701952912700455672079014249296209972939667962207392293345840338131489512058070389982455769102566255581247578391356677562032592535372757675681153599346986691634246109854520013902484669769321723967885436428683679885933810096534790903034847714213090816884571722094733321373114125910222686941179338405861714578993720100274109953068838337329549418683840000520050762229850779839910418679102296127493939794206466162514666980287914205719942993601913535111866221927460547930902673319232604811469200648367396150814384943487773407939911172904942170231553391048923721503691326275018222693403520347520039717808276695059233559832170293498848019380241853297690673240031649258621860426048882231737054382994847193090143412866472067926514168554061969370472506310411778213852895160828281061187882417073786986004323625367961087274152439789942041902022886051725380588904327655711079668039815507785660653318610246730168048027337406489797751298635231807817249078536848968328284465989888441041777791758083962625771637968884674215269954618237721607541653205365158146427682122251860966854090413913163620306642011830773464490435016912880372315411879706726889125751995551567471115080328150275364115705919679425667112784333665845611350468329586547910057021420983299515455089565504614587742161072081514941202742082431531131297528457484902588330791323119603036176155400730235967783070645202882654935337870366115339657714481100698550460497840430891073353282063499355046928026028423131059699135474025063543664724102941283902503631945730068337858554068440276395390152883241172961118855434526876043442072376708459389392652621031659065417344635550637699644921019837487069362818873536512210036260928077774806596949703155266515266439317040447817283992588865874568205365922026380462125228605532609527563603409908455711326059565808830426531857473634381507421966854203502997432694090800700478551494931066505360083515962777927776272097541733230409824822587763300278214689436429521964499380416920485929409123162017333009803832656447241985843120152960260461304940181638397755100416604077444379942343885507178398003202616240104588564361108347112688888585905284915477875600314165428530607499649007496192949255254968579046781890714131551258847478025464992157148356066880390992213804630068161215576190245744188308553061090369692677672233084125031089611839273395122240970431480145595032195428950791449049251529724320583415649091414692055073127422449814430742108954269337918454323891303787062463273931498907390342369421184436858692017453006140611693864977747824253230229215159031122569112444020082595583649155923538933951251389796647977243953764395328561941317904635591946725457074060678180167337116483552518974085823258020408461418058637054507413544917160058690611304538667546969768520916958877892270720707702142917784614647875838271285474005896962523085167559340483596339913252821662472188603105970238889713794250814539398028913916505440429755881060377978541493760791924368167083630439732933734699875138414214013483039669559057479552346941701579785860529507361460181856302804194930514988546380942977555511864050191413388673561816966084291534350797852335367445087372417273645695663814484805419598424925321519293656258837613916621637625104899127712548455992458540424213190282570056098241251524757205600761626213590778634283165619452717541901451529862233109852724132820373822322256388832171922084794352338109393866418264385465746987473026518320166887796428715132318133169215492980561693608426943982681886543263501063648048321152355684485759065148199463762426740526366674297451382396326693001732655030082316345784625997143373002055084347087501309627026762382180449284672789184759271770183035517715521950890598866603665129746894621698409365931417418693842871740730601544101828459322921162525542911443976395139278565004421407521714472868703313779752651652554028738305645176644654740835730102352744940698962574416459574296512101516380335645969848726488661559849099194796633941141121725689419726664532591536884581064647387206365536222783193964915883413053549052337057936189844593829812651314789985143215809515011157509687191635299717363337342998741715970735576120537894083168148218574620547457800428251820717355827820397286968627639212957405299455877158471507125520980975248152432050436083400521577284174659360925910301367693134335649644808106011282097314043200944884676416699369061327605888373181155753820514722543779612501616592963669160720820515327865703876160031121552832645285148588670536838587672128439916706151201634185782824045618376191830343451038762201302313112230286390775617724648265069820775817870075245017982193010598248180675436111590663238522610984993411170764303800596887411845795514662947348434401673849822833816352887837256451449542973871523636761607966295654510515471461035509234831133439950821034465040903330763825250701207674966684740230571805885160305312346586428404709725987930616951067978809885501966748403776951819986114370821294793492654139028924996741336726657538415095555731164406619703646304459961469969861870919164892242759315717223530278386411842415165459647267665448914091506982642234603997673297826505017170724230018454171176053277768835336869447607834984951242913284596526147338331782415929863072644840294145671279908795147607552574853055809841356712120962507598625336017813401373735136158213298712350148596073322225314124652080597742065867079838581213033000891290332811762504367052251154408110086384966041023688413528663421103087962851920087686353520547148613586013754072515394609422511426889795766467427069652807888000317946256022753364253034122947797678442311295076915473384953374222508894119245775560510892519096754658958678494150958184992388620767840539025287252657245729783515437599032628894439592364722319617533876233757553625358464509619966250861370875448181623717439180831842228037542639697126448118301304171907094596450836182167251387532535737971116050594745780757152629572977419703694008330690612058250027562839069715488642890691322383075645747918994896918354540914805834188081300568696416183523449231684317388063253266148374001225439756273131744886121705110023381201907167400789113262846536505607802853415050207620273082365824353682942182468929998306098188765250886406579796663098442585988163341730413169279454838898287715872529856780679707310406848485568662833592551575782135618783164006690862295056051198143389452895068695467543183949493955718277041502190290826380717878021024475482853047426515759223593815872682036235559254014646908928198279256500519699041951835776869311962817525319504933409067747549030025962734026578649804759004498669449359031715779478256611256089983699030349540015733887658412649582632195683892332814725201354627886349559592247589056550024174515828639810045461507136039301481528227009293016097542164287454679705622610783437318250370551565407447272571667346264215948944480888815435200601332586057280773502596453721350610492201693819784206026360677623419607150495168448463870102821678625421203151047911464731641138839586567125272485457626266420816975539651237050380834805063923657150215709711202286647348336352488869338936345532049450620398137456146451295518768216520408867319103367397628613109963860971662038057824696003599279397090609709410357382290584407613259844176640004763073927110397176121103803522539995215794968411977197414857637779952697883837620639606269388120644059942697385416928209115121806431808015837817915389095665720921643205384250236207306162375630006400676701600040939317497588431986883491159666931978928652867925395275001088187246037424320167990548660099704210500284621990559512265009738869600442927654853887326037924323871048612305376337829403253986753541314890637133073256305481925272711573758882861923419721849348967785665702863489947669846974710610985643466356504977728650561868974003887671792109133362400848259735761425383737061466207857834243086707564380124354169646855507823515363143945039523523804334197725154305039890677994596307112922385593052269420819742948282849739733045510379417199871764163193873133683059357535253485188193048528310576805861490245550022327146483875814142398909467327200647591955229742913498738309203050145669893849565280045437209930388077515634841988556829583943459464204424055004381989681351228422359974374770475105386831579767508546406359393688696944627907631955448921239770762627145209789848923050635426590683518218030463316062185546737357928883852278565226810366053699001837128702254903064694791304904148545748338975115839454431153834836116210228890336467653888380454832655473869868374530907897224288594735562743061390854746050851366672097201757035098963223411412620070007509882707956860958263518427705116400458797608282976869608175123902358038691734240552391849207715304278263680678498523728174543359217921093408074878947660548559635729706640625563287001521827365733492286786421082215691507090269843259054148068796442206474607905309211521529219151531458663133563233433581652929877539292019563944735068502220304725991994894071525341538670369671718926033268871659232384011189093637725118978878797038304935390336720120636172758966686199282188228648493264113274055048007613620490031998181012041852607438932726851051055052252038120106558088613394763509761850183706264577626991325008326689394109488623243429147960098947876550598434430884502292236477575664222664417530372189188229772487427283906576012873022217728693523743638251161599307627356499528618095446567696005496322011539017685201449030899181545634954512819180502168440003907871770750380150335708388148165899363422798500740016501597594539018351123547830447171359673720770011409656820750268630181672809206898772045801058492224865915874584303659698482003139555814945750418054941283773282197558022252191963673441316198483535769474537660205652606398014766225234055130406504098450172124618409710913459899573242836235630125256501999856747669997946452811680617116608195542544679429846513311909922192808231544947661614763743242460745541328302214779434618893917197751608299997020901157372664929109604319657454033770487011080365294970982617035778714547146747919522324452460554906997941957207839973551212751058769151713864893675570998166388097494008926920924555684280355507105497033106731923786377448241809801553226861084201965865647102912056045270085047968177297643726378328793205349571983807790316826174145515655694573522526942365770442189035980148568679764513866994729561138750535426140095302174296076585815460740760681936711577288871163585932536680925784488017718712737315682139405408537143825759958645578099392408899565226112805763508331047381725604944875611695620043125854116289150654944735111543760897093310335117550544054305619807024210473221591204113145415417080000082246424484578043754033216407193149637974023418228290442054201445665134904890733654436358088144849303455880464989686864303876272337955663103266826535449221251326792334983353870537207755540874627666996478847257577220578593638699855015263001594065927421306460181051770489092919142800934695802197006991910063023296765017048963511334043339960893933511409368539963002854188054010918239927100218039858751660439427076515882450680801122263964200452297684488070229849194823084783804932259771596326316634976872092257691780528766564527193772947233588718089100739302280325382790481245849327513313488453626497467800923523154897608557600737534960077317610616489011647150821224565530259447424784445262577745525119835826536480175130155194346256508697986775382198787749609976932185064034549182494647932680977900306435169937082110586675441297499178355081381502876567759383566996114054661776519919906198694985083651448320907447088398191361795930128630091965417151617310658339355338390449305513937923339130360693903521250988467176044992428610186553189948634108529121216607652025079322121478902777828666115482543888773841457097362855510159317876522751801738993915712394141069331297085949800820245836010126236388767970440953074503834199735219690669997776745958232860570208412122976712561149465487940822710064692371628645699145425617371341818950337823538087161928129540825852999004190668706613996914150035789969075772825119180163529218763616030537326410581456090946421692495490809855781480368232923443297519959868754334293094107807025352982512938519529232286818492284855531434468392767853947354085899846480339961321737000386143516726881453744240353456508690435983506805095751924190399378162507356547354381404764884460416283361837307767760373872989854296853211414437946514538152833941665684636901491610238175203049190816331824071043927872570969993369786940905825938654096772146005072277781733810375943009174730920345307891811173420564216546822851183226277496801443614456026080609595573042372597039331762842041614007623604847700800961153553543586483592699729375662155976002755687992735629842716769097075909963558642279266865453585966853774551370516492980647244584052278988213734283270491001061094569393414521190961785542807506990706067969929740331260001224363520176808086237875564130262974815047908088346346171467320661955776932478905131126627577501865116184373953449308582439732616112817236807975127756011543442996057024505661997415676050252490378685381938101940632266952218516158703720633221348473555582775064351014931486168240973276265090423417794550101277430853697707362064207387265355134485211029165567998720290416239250278389744319932931376359868671946435021198225284231171207518233359304062435843048652882390503048450906256841544711086663941417357020066932821361672671024736923000918073389630194289306759249851555058801449871286817690153857687762011300009284110770956892371419125720307159920869932155624699743832976215300854143104488437472238321798790732530957164294953496009334321608914500598400154823293765340552974525366236260219024735309158228615574324970304370118415053190646007776926915142856482619049868422393645751912979589383337031319821786715318361252965339837460042166083841308371074210866708958064249727648589612375445415741215443108901830694893705108275472930618930543741881441775443784332699551414774544697696198929720938668376920245767392788722342843041230263425333223927849243323658181518733752213204030507809662825767575025843215265301225449541274687508634027392447008558125564860909035503213415405933712769952089631971650708431761326451566208969233503578007152976658008903643680767246147504217605809339736989779277212264960469016070401484285386410157354796327509402495037548453479844175712101984306398428832453057388027649317260995145712155613399065608254695955409269030946321013665194120856651760873762652575180528468380346989638990950820963223869291517058468166188356222012837986768429531871527496968851341957354933673143691606028351499006433213780308154683117554122743663349627321112586251736918317354736734438727356647514579818534476248356792631918950700511840014999031169461696181222566144609013322175021199470681678827509978813072928173538513511268532133507108316549657169747040184419947568097235760674081383269994706738099460608282395078921538239550099702233092939619872987193255463974268613615749246059524118799173044125456103219374285236353614457447381788844856423191762230861797876055680855593877892661068484799135375860450245609126640184682905117683425739392032085745663577655586231116034126890994281214850914648327989839296319837444833240088656817399789297523401051422828185787174112866356516694453464467283455928930134689270487809878841080501482743690645683629728596335841337846508546234167211462411235080036138873424804164073988926659433916321691092799741038319797733600914671740496938273399539742846265994019250718976198453388355009113051747322061569580817845898378112472552524313006904125294385008034969402923744611528539036370278766542025049735723134250877496942307339583874417213934422174602522498125922490714615118977340601908748515165029241251832709828387837027413639748426077270849156300393509972925282037485808326068099274524845667180378413583653824984490130699069313968411048543357223841705154010390253738022334104378738264686373450210978888807953889458887789632495468224919852434224519741922405248116776514911102476433098249127157138649931980066430580038303991983573532309479179747424067606571797370510827486113256176020051335319720208145305102525589108543736946598471303032650421425588054008401583212862617592432136606336796012669182020184137700141568047811542058266169744968946330583305130720578999939723826527902249278552388394465471438510648769294050006127745682309953326434765803576132395676225010004850588990652954968426542918418897719825649005022715615469227438753267149047265062658057673758553287874752479816991592155973230569605177162642242545802041471543470722967028387890555125489294341110781768795242814160084271536553391571864972786630949443706132638172674978559986825093747561758237142490911477314838249504471303267315629893735262002522141091119084132291565288297156854099982363849700495971633957981517404234731932882048948768083595345787557905452475238285577611398313074151095098742989342534251281894449212281635996260817355082725767078455594715032993935870197364889830378306415119863534402702903953165136589975531450206477396205046624967069649402886630067046498213519557596188994150355033267662424697834442435445885281969477051056045693459684752904883570604996631853957528995643864484907280210507537518052522043417684408396149899671084744051513787672356539566848754600262162889727357443136579790509451801836367110737361255717636191624080397345334587055074778932605186661081608983812298024187694625487920753018883495583044280523971651565474484636792023399794401984619890022960125815518118247066386394487681741982047443140898158486664005634600326529093581248189067251511138673076166382111139751221027227677528189704125432608766654515897118590595545090450839597562943368379956024610645230494356691683402573634719217967208976205511929327999977323479559163289849121688673261422708028578288088376601585227716455772195868909179785639425104678136983945647255324087586754613364062584759316461067131646630343090756279054232097660960880484904056060407782460690363010190384464426022003091104903071957486053217770092989018124695370353887875507265011811200403008930245709248119840877771445935709851540779844455445025311532359909691482837540762546836645552861470808669042845093840269763732979388255536128302582335551784222655632350103859977180566203947640397140737124873590367042728970302476712723325813938180508489897915071942411438772160547893607054295089426140067552752752391099126461233237162403625050782829562439590167132754400238266398325090796075830434784366713159246517466418201359284222862704402812956188301048191231878640562790077412567339332131404723471673033763839118861103423059990373814047624435150351348882729963977728862747463843168261008821812380444258232999495290696714658742876821331951051037296626030450978664607702039471086022248706684397894427448859111663143139871247498728843632813562094519707382390096928570881758329301156651396894920909345126966138858692148397554211764727821136768013648667150423228057410230159632574348789368962873615424793943127167447823285120638752843491350698864076842782218250700473279098303084483251827111481144480858317129421863353304893910396602715868960505520154724491778656084390752369444312949846260626298525586590627478200481918223023025666068902681805279097291104891779925829003923452558763336781177393108723146895062250344712786115683567325446572250856991861444533337063158080149945869528591545614201802441071163100755797581203422778453498677664777114203716640174601360265080280205251297524474218502107797489287128786248254424101322162185563484306817475144131593609522641871678833258027388851632794269692529135404838530390133938264286612828802622671494519776252551384452211399006087676572857654392546521806966553130860462934073618808954784175952104008029050475210055379318142853635938063582229653153862499697988134047540234090716484410640246373689188092740265510423083791270717012664800380127703281083644489347451917370909785345271224235405747906664352869174885434249924872157688822838482383661502675966298687597585282279606049540457612375411720276518598756141916957163025436816949435793485261697881958888813649552681481267273289103660492576593123591732778350473464843576686290543613485636954813976363658977532592067346849312324466663270408102464430267735347974780130777804473920204055283104095507910045985219784748898399777616159956451564884880237012563876650495811795479060997436076919531542724322403958391287054626033946901660114954876592663934079864585466115826194574095101381818194325613701168349898842659231785584594964968856282879799172693032816587233685332328700673520145197253491376753293665063744393868706266341905282553713046425806998875239708830160860139704064788305626511665951584032492267959257920195964170307040859136980458014833436445027843517121574842848298603838746241217329091699314876117522913919822787580687284791315703995459743378305373022427595000597233954607118069011424262075735411711937038154719776566029328312428362025285616331804796028291017918390912394150433968263944673976631450269020524963868217068503867778244363397674230570428500288658485792295023305819378924628911914967865292381050092357470682558235640765925356888696529997997256659449320305393084558761432731475697506974417908845802581997730531534098321402270953449005412194730030013282355981992148637824597526576974040512620129041917568096539513658965791888858151679648999017301833381750376627534679141377429271035436424471681835423453134845689044206195917598938828050545648041748599849918150966532586011861244686795921939017113553496554240407850760026916822316176137290216487484300172100097561109900835071707445228647909280808509107607844491197358046920418345253413168518884509995523599290438041766735547004854029192204901773031066393261125318154544328851925524998899154142837936395636354479004861802523944959617588339289617985961834336896974860824374278717480495728674784001957813391983617184743608107543251039137940201127359969228342662537046757704296617408384097644415423412660781230871026869783449990573647624645700502279237663612619050681736779300141962585798105572814041180504998590304120034963789789672788133702541593103943158228968398299642741603035049330890750820451489571462930733437144448547640272089674872265159091403518858282823159825732236390040041489209288365748857141476663992661944384245227270166203211831260699114475676291031747442938949431811708445240037487171385477316488114575215874710541524064348079004765594974218731802141568404650070538289343840314699902003499459413537784024908578284126500330452674050803929458355444648417451189646278119217466129552528481648974005906403820833604903188920103324627218205230055923477017757983902087393882255926774124644898311127471735206260524840144109860090861449795506095256356332168004835529641668412073404610840630454593670721331415043538902358683241497264822011142159511590354573675993663376634015352613324796136179660062623925038308710258037413380864013013095185607354148265801007916692934700170693095099333612533436842259230541642811084554044242662701466947136960157999703405199596282672617964183783270941613911592336876545701985987857775436572579105656112952394047672530867347477112230080257456043391022309912639877030492047283009762801309945147028757144839326496312442732577146640515717861257384403775581316546760245632205103547456632113994136656938517413602103210702304601415247295398050642729227745418863726295956804650045425702694513265033773452219016312362809618864462638226984681352228148360419834695399624372980306220998910184309984679323185149006410383180843240258235537354599488452505065521041916090877324021067755049428137874386595376918652307328658675538408139416101835968789641080040008263741783964585527613332901758649813266785440310767092743763008223676791576926922419666016449209797628070312950825249916425414589500015150688631987896315688420432416408855763853152712974421609921248181098334232426666953814569894274205603560219265752935510250768005759709092242660500759368490854161843910433212724767902603656295826558793758418202277615643371947875110008908939182374416768871241722750715756556913093807232865662260004570917405060560482542245298350924562508771881002317261897589005172543084714835215841708777864003468389411597769327252676246785715009024539707256876812704738574130459020182710571598417164583004914810051311695292489644585245159312043079429736655292546836704983142210053266572508143718697372110158592219306144898867971065072879935170627133430925112414984618275466565739257679930304411618345122360587887171963931995116536529127936580156694086515581391888790601898569310385810172025366930930798145732661971404882223119720510711988441110876235310143514274387071982360168602964350160084948828982564159030649484795624521496146039608266925037876444743361976840961956172668836226446734213157539628079307014412878486960464786206104800670535187660632543877602642937914859797957532226818126372282094629665709809686204023866679103281418975265504678957263997355013080356345808997046140932638919445988897515060253791693322132565970336593260130268196325040101483719825158019385470684239744881856970601861572764417624800502113605639149780327617101080359049925106899692423397326005597549475394168298717962743999656712620769302083828134583551512115126423950487516550545480335589919388866015285069955190382837194252727721195636585013936144208500693111176998648093153102568586976350070690189619049498664346335048898578514706909289821257349978111723540953332761846264146386313745633192767256110437586354604689589287224646743761506812046535265988779867827188847993638510821548074957357051951567557711083970236344617872875158643608653462369875478682970939526689028805871923055103583316625441641424802952706251930757496621117188530147969071742250215236402487126366676682296933566872597660710706418863471036578547379642905752163619516552827586314564446633939233438369804810586392396604714833182743869168852610988816352054006476297612247773779361365991643859942234113362181695760177212662630984019191636197290360244822294569424424090541876683581085896382826277632247123486515400763718793781686702356122453908439180610707449753166152172322380927483299483582637436244182248222390196941498649380091548156409278219826995832757202250267540147744172345561295402641333363552717722496583328867671700762045794859022959565956699088468739878223994942988959248503256937569044904477538334375814557022182609556948032462264276485751177439435656997350808986761358257639517237301425192627385282336838642282923782088977081759055449566449147457248688909376629980042881669847072788254531662060458978996697956433111523130139622058002507037702842345026039590406072558688366652421136187086349005757318037198575210189970995460918512311384688519699210785035256643333997014073702021321075627242116522821775132342382010348223118362330033029789359419486154047442358963063495198954629321136393794500178714513146666430689088432124721056554322903169523689037752031992015551100427482247250343178859090294090455050025287040747862433417236389438707231787308198100569327410259563989622625669441403057624003550832321705812105960461993939360370331871716352889067784395029703111394806602526426152513491147849369836571749257080001788771053937047022442533358761716922900975024245404732151376963463025131994991401983732897724769296635363291675885720708185529735060202137936115088092153954153348042676611095658720588957188618562980497912668319607680282544329575100026210532572540535233387811754435713740868317208932893393245102817007631720642176588219062348128890864610197853494277331470664017700546161216752037085839297346291425117672968163930779836918789260106847356896118509118550530789347820280561141031127766472998564134643126436671866820659843034593632666531263834405259345968404899226833556499779390543667129570613698105785250671112036061934010652566526677590000458608903025379735162371122780797118586218264315738858751020713400150913163429047708712796252881918919393943178600285193038945792311367316059785533733942410245915881045744787577334407621994981432915901411121309353509078201168629085292975279031963653607232224761218971398971451225715206933720275817674697450234760467055495916484048258898348706303678167329301575138247387122799764293028375335543138794617398540068278670181356702853035111533547215012441404836374627986902439704094482484929451580210569601362011114013511814878442814394794495390521817083931572668334583321575699552412134858648962561746016809926102083762270664841498132492757928894764023396616559182462676033588352838218451303701185870657531025518187913140453301670245392935504732296387989818031748498639436861140678126055898063117668462253631356706227744088528248797721664136615322437145469491425658065939899403313264239868301953347602579669252128789586409643520092841333249704494903697685848971601447069184369328080305321617304286509831575345476656655346876807616181325179572935041244157230364087124357541274760178623612470898978799029052117537307918408646483760212618064331880758970009590191751064522646388633778843051313580633016388459977319195208283324286698991395556847246377930234076683070676801161583864454133982190397135355889075576022413830534743338324081658256529014514992477323938615772916403635741033077344772454169635225194523512975777709758601581079696353248016224455830890413292771162501273136462243099972705927582439242696327417736163863296671710718947884847620725460662124718231287308536783864915973487738422968127330066939399906631454850715927345205664047750564099602400961953071607356435230225919286591783545093806113136604356749155186016920747311160692252246539203258054903962188927742348914397215043478521179470283188812389254203321509839694396307807086893336500925926301619179635532449732601111716039866445848282602448882161737696813079945859860018571421521703741332019978958923170803142841883161092429816110590216812912199893908362977066932024670425738798404801560767361786246552721863158656222042375023201229094740840002944706185865428100660595731873784959427774659763350450878377606623578761673389785233432107285929839036869667844455413676697135905195143900491470488344800415944192281690793431292196540314379023290715407741865197666015448221954458766634594952005825623764938855837952010726368495091835963347221774290508596722217330164514858605854302302388465034938606413670552687574347321422003533235481009214705008107315633752692854853566109559391342103647099907115352033141096252721845430604350854345152288763586332041523279881581349028996061043299130135304552236446471938210110262595333834613249516802432939462349293613982383671624461852334518735680277120387345031060501128309547668777428023468582804611898611078688443944001088231337890613250115124549550312328543891472414141707637490745551415253904719335149976657013518432842144950269629995889185568489407729357827371350103575547703081493365677991745416950903987209095508380958350441172802520870636187698417006417671164468811630696792805133719935943950721988485822330970008077310900578025385223461467837313741112330211828996983531920673608099212965231899487635462057620915556533155975440718118419244949998846003712461197244641922379554661201565475746741561785608674498671505403762642581470642404953368346556106799959035434697445151199622933026590252753522586202802935705506229456428832635310906880818474105562294314909946040042158790198542471372438175187480733378326630380141020462926048531876733363052915876736269630924721049495954268544794156940910271917480241441436010975913247780287947379380589639803490286111685473972722281801203926436526760155855187638136986743655210512207314358120707383784242887126137956553035655998068574797872964592958967015168419744845283355903799215420753496426852085081229944029134197554122248231991005239046809558797454934320862918744317902722967627132710888275744180382792012497266444142638563528611813818079752002565038384532730203320135891489610779665209208501285773149957518237044391270357323162246168788669314162263623116818388582297187840758137056801395085129337783231661672033531679474184581110989414744242400779228477190255683165268699757166692983225901830655237182031306085960700845651961989338257158653116047479365627177658748680518574398639440398907145124063672659186584317876876064553913605645550396159152621225549120879851701195496689039562434946318909143933449742891623847223704509416229294308475552451165935593253127589178862808915865875041558439804649598902084444313689210481347837542148755281714836006601740782096057719589777253272571469681870616258194185677473676197190330524986945367141396343844872089591540203221276251321094381283944223314030751111240382462890304347610788539390727690733246844619486165884943418891003874533303501762066609670928517113833403555869013136486238354138255451681907215458940284929094090518145612460082287922153653291021205298881232872012516151227460007464369893817062909087793370572514265187763288481340165888981698262507440250435340852537813087577380975826065066646790689118521317388101738913761685688467919756408496822995637770751947258914669698696731331802775857210756634456694416565491885826123133150289189018410596062006114327660820566311863780756895429968558212952180182235897913659665986812960957368511216636275665649004877256887045218255555509090170418512974920748559854040669013283138515784215437904422975016624040732139545136449424490828937963303690819329348037412593407914268786107045559548630828198871969835531479716759431922148668955133387615255326768628973692372163255555265137810877961063472081856743855573719373868941359486107753087750746748624332527338299905160991630150853689123283781081879565374345599403322362492836389100882618860072615456946161174417727153003636730478960647191495804078411692525176006785684931111721127113509529425205551734299268739852553513618055815939643015793248888844829734598057426630695674741736924669646247183169541273331575398125058894987556525800344480236113485349169486410302115101697727570805631902359903287130735197623593900638271140804046351000858252632135891152380490861638088634377549686775606285932268563991004278922567871473199190680546352968943759851951268587452909786386890789712115818263880697574885751421205083565373384710970963118297762296802197828598990096841580566847437246448109768901556040956121180062950762529242765559806636975118023838824996685026478939792741139587787488246511157194835775129198695656311160723494038503811320523100613750194468533461327809136627434173090317155179057130785779609341390930986578901513323861349462224405459641081918749431391595100078456049183929082184249976779040591872934647183943978107310267473777713315151226931057502930337755500745075720434086518696094358815365450867851936915049199136221685715208286356233436323310510142566036961231324720722554297023116021906484660259933670337067716229123503189647322379645207751738931142974783098906371202508236614503704127649395667703822950510245224901692748163741820056901838663450440607146250627868688523712676673229254266487979572739825653785853635408681859093468387536567947001448720282184696814335966514831259690659392225168691297441807793082227746482078322344878622138295821715409148438075106224907033274866165004047836940897475758923008498284741530365650343376520072740543641010338223520697733428330392110379205401299808324282028786644347510230918464881607750752060047479449843834055244321035432162573000375205541522919146991839973470732177726426708730155573535336411672998953796633376239366435265562990620824370441358519485024155810091999442818821288824504869606649894603051647748144229639546130640116473974984175209044426252822750545121820781208798680876922843672520832239983538531024730300940579368843552907312379415639465901476103450115468420363582592479915252928294214161272284650943832407698917077224788041314486849603816632207260907687185232524014724535370452245214442850825862156479236009453980957830884586130271862720544382380964851252532455907633508195177990898740883705448315256539619492922015249088564265607587787565549414299858646308783798127866211757018896771756938824446372759659561481898837012394215721759444277222793669114035067029826328392488545971368772111214765185908279315550188093277016101756352409007196917177817789772199522352568734587402573813201835627114304844003601728011468536087175732837320372057736122795539630647669205726523466879914021546559873097408812173660220629266705972975031120269786473297395956098842060747908982149983987580345572575312057559104074643920282480755315902821466723960637212343376016179356667152532722748808653981557071897135096306426938459147256015892106178847567948252564505097125713703749462176720171405838093000036761220782483409493167157390525366695095009259702536748111765519497068596733619276106488822415200369421417754894732557015542917641675890809778150150432419383702494411839085904963447507710473451595623105381880873384650382817318655225126624340957563180378684762688339207395960179436196894174242922218992961344634204186887510236119487448307670071512524986356312616918690045709844761102024877522301333371452514773876128033201779281992162728399805372972387755268416711040245502976752450456836863522736481752930415396554381036955761245983054371155577979823894619806907811104914738265908751624825004787803220348338322803713382070215205083727254623617703620434970458642309031715885265762413139636740049014172296684108652477074418954964797670509586840893818098288369877012619258553351803595918908545072225409040334867366461030714723414417285568847776039936892449910468699006245866388718874216148122635557424628449995964170940509301431546284845113712542558122386872148330459556120910733536272686310038920317347757952922942737286117502965029386445958279012361656723159705299344485771728915347875969777144359704596703462386575026143720358218914603656833674035213678898319844051868184885383891301715902465103487912515385915125027077450569689676860956728956627482366514235619506021155347974778262317257572195475723727987898147197249993166136010841800272126963228052550169180140610056458449849445053459269283031677912521783926453960706743182189348388387804973663577989545289161686887799991911608852243524068439181519208382480323415286207900781137239216669214032273579381204884740592729068086248656384020710990742075003590902793499874185285315777536660314453483316545454819418196947386010520241598924503550681337333976750107265075716272903821566628984858505265320179334848273144240271458266057119096211743725315835081777718959706531544830227365356406087778230098481725393410461467782883351150086551758322348139422875048151096830862818625361373898844001594144005289142337866466899330325539254202271750121479239704431071387137140847226947305523462854693125671809710449199875712376464086777925828001240047734600772446008854085655665477868701618428666842536989618887141201597577928907914627536807634197219884834433198900375943287063695093942565823116716990375629188605593061827857194958942154012153127201529455159354877381619383758001397118368357346614726916945698019345141865092596686774945770218345404110155344552707959450418872050145278599978647284592030364297275970314242731895873843600522779851208773894204341041654776451050972658820659452069308468742800304665090634441805618529005575237710601999082098780073544288760801547041811326041022196993205092402323735400464506333202569270538249234043021468244540140085990882803767848259283894462992166036065266295717728523585460583984580379244464383379875262423280604567316344735979193595304087475563858431859104582249425911144074885151348351033143809895181735502898380820385052317767104120437279337669358031843946588026887756270729232444920644919104512552363070127565640980703104708582065220095308758922522390909602386916345804818524605321629807245302737501133574709151135028276598304552138083465576574530361856657571807988813848119320826613312700859552168587873951696280239696660524082784046449374736415549322730959636251015643865159927610794592891329630993594153449759502222322509706778618207556336406590599945748319793318010986091148271560168958236136089821568286264973254229391653610645315899299157619673371014535281288287776946928964367905330734889453171191356844920371955970495537416210425215593382565218313588744203789715150853756442472228068427722681099390163853740282618516803662216492026236492526582731820548034454810723328264955819039317006557670604413230281593616476374434466381615465896953557954024110664798526485230347679705270034335559288660060849796693155318467632634705592884284033773509359305593285183205573845035151376747805011877684296198597881781960255480165881629035615777074446878873555077870661419129683998238697285459840684751235276539646091016663259227663570197104533225836198361506431857592166243165799468544126754705905499330380962104704160919432516464367518022321660759209282220067518518560714745175550771574035900876113416057953897339407193445352924680105842783400335672860149349662307049880448736895301115621387404024433945959995200115948152575587096310851687137836724249888347339291460292982225781180469730261326545091847279491477246064728714158719401307682688132267629811138349697541926646769220149051243293594048021662141298741995952703424625896747561165538465477750707493640115149898443831864025053337406959189073695352565333729334236102592643379375619476637157538137862277448285256939524778030395422232301864659259979317003743794347333338296534155686290831593706166658461644182063540905802164272865197379609964527278570261385684310069287497111907728384704950129787848501692221243869311795002548900064045035446986441539200846577126928148961267587524946139616344052673767164442537545107544722098164982652894038081918071131649999139214753274301215691587675223568034803537877999625433400558629048810081518512794319945433122876553391196385018226278950041726661427098171020824183445345380078446026006920739640666244485196101785572320286720208383669764761797496206520477154550326607787794763827315025655787331955783835740398523801843522737710237463730314053678185584484508596483711489072835237316073532431561170786034182613097703613409453217379514856791439872461489490417250917636060030128010846123848472499650155203906817479146055088125601705349555389495206421690373860504388030562913062451867100217307380284833287407273376764159451878065657660815309655937955999574715021437922356838382731928292584595216463005717765356486615008681557742149652195043351916315226841212688023289982331062590611058895686931197414119035240862844712341854798781849283451657961917852500782114709092914085678939840326432539128016420347260321588351321719517311668663316642812347435315755394244676568736238962767053995498728930369389416805287639083765450715202926801006323862729374444486254445114078282426477264978160919025357706753873828610860238495615985354552260396618012903884714563726361395815564692035249001089929816061256218077345849178323713704083701196622413398107279295082464347254336027569611584191527864076514128089474810774019026410745658768076744029035602699922552430500742297414907645152750971721360431283336284022588351253582942540368556628815461422689555183324151415373003769303864870255456817992879048295318911846353643766518501130365377370272930418439142493601218987234574169830589540023933622109312119817462685519585824661043393849896718512884773316256866396596610396447281366543596342182287072001582375399355340040500867982242307902632685740739295281619164236884434213937896609327002173810787613907653242411448869573848818974014422940070195934455392729477109560579428176382717960752928141292292759284556949907032984930594097383052325726554418174177796844569066798957592115922956729873197526566856288120237636933724116215354971292851840330869247487397865316013695132657952951026820250747403104237714245619496589940246027050821797784792729119516405495795527078863687902576713449204886108891182831347850769733780844113208157296931633529849076279015014263486355047887466569451600076471242063613773496257764427981866331219346379388580309934514620690620976459906969608313805156172654561234620018699234289674028428078072364979629021772526628006622187664580325045816707595913005392316677159133440880233809897135197245843544088708727382438658764449661572782934381986700683373450472615427511455108752022962692976401545318110327990665634051129041485441641971180986879794532952693396300698091049585056119064994201155300887743150612609632035722979788930563434356915260155906500327442634385648386627375456779492595082412782111356301514854423531412989992124687147183178651270501781837294513291953754810700240702541824403219115543594397294688141446205025592515309893472014536467221513845266135680799320773818038303046308078538766221117916009612096809622472297433620716090955934656285162606775720037331118418173611079251109424397053751813788932212064071669253031247606308277792208306855988842997983218025152779946124352249213349748906033575539031816356075400445593608924506960175968798663384802881323873467756388440822119069932931819492857209552590282204982544967740118507458730628839678941000311004629807596003158963633754179313909276981468822416053816213743737607848166154577880711589399435554806279578300555825511493098220640318488982854296561891236826800355461016412859892571560331484139996067471027285808291767476758410388136704918848187386435674884591655672423509765057067943115392178242982199088927398665285927361981478441681980006274376756421069943203802031265043010197024358851472449797960398836416297628349054431953145361865003234503674231074400989222158395432817261676693015254192013311758106358259111446487373113205646512893429154431156722745799696364120146623422886393176700877700004745896518238755813978773006123630931448430478710300517719995323734860726371143183689877972197129168871034216712185876348729761008355021144336434648992451411505936706889372790766678891380137717113378465185882822852824560235082385016548680143676392668890292759704646006589511444406922428047695535525493881199921967003576935788234710040509748018045981566280120658030408007032344140313254656866072888499289344206336078501424878328566129637649826282047218308687603842710285757929384061368199180088551033530041986177956805762388579575784641422944293831121366638224288964572161057191148365110219803223664605937209886642052947987876752460550849583871740398579310924153084940348942831548143135860457907346225023047068755804453036552563272201094111116479552865068348873161912469429741799167479706606028013258179715225366650251437671669539767443610169737553747764146257628500016941425993925718058096654167949038229433063882210000533222621493163076298457327211954829186325263198189417183814456183967972842639061859829056287006150190311966928255646333819414453669730742338780301780830006586228981575043085156508721137608626975688937035949113065873335663373829522341489240422632394507370514658934219946530311727403747856388141556516591857381114777255827986758990473050753533359316848663489103777626920975470159902882389376418470392595917531704530813852998874648870888188701485998091017640873698211740950716549597549930910638721909417505683526417132122099137320099096074111720215618260667400738176277767230942240386879950129995675053897941191039203860531030741104306766529916553691091173213695002417624080211198283811327335228012464453222902987848170257635417197727579807419301543180895052549289228139292351414621234419611443866687179470789043049515504740664951764993673766297945214271395606799974667516460097553308603631186332854246777818093804590257444213546407372396270129756965161458841417778930815984145391336327617435063306065756821103113862215923734598855188569869651748774257561884726524301055286102647218563431517932603558127618835749002668390072974792684395068145260429902568356279637879674465240682601193664055511871362786085799598043211692170071925104752939670826236916280525715959877950542423198482410383440161408804477210572594204348368148483990514943022759322023219733363734146970158732714315065054755795897866500119544328649199638374831138560744978858955094807457189798049596953984589186851005399110263737369301513185579678788649750754185680800921617720502049964181792276552742977522944722419146097160153120333487561053858874978105538793623044820547050417138213628960914735647617585593710422275064843729461450493700723803337467757893249108668887117329079136501790216183743439551643361008017409334367622566930610043969294356996262253023976438178468853353825901292464655319360947626482716880991000444131045892704968255357926845545177775015068859146772840572893617601024409301823522029022575507627928790810059046671470442706762537600821083407213395892365468305621414493492012023726670732306760762770021324738273535237984061534515815988637859428724334302822954249524317981255784507902767880022413866631914451079140242238550448976262478676155027320277487705027129323973992393770414592965491060488832036872353862189073519458086015851578228146160222695680662315495436324672217463601848504304282413954033516619178886389234412532535312110490205396090142708536558737685226777609734639306198712157704593712947167486158385495639521573252686791019943192153703196036630045455354524793706673868335145274493291597856797343997544891343762081213028339572345285939129420930258705213830069142971043141777880471311396031589760420265963506514703979060903425422049369097024587689395044355203228635125016554082882454110601612280688689272528362393471176818871008744762466903358824289262112377114360530904221468583632995682837819466594268213227258926832505912673458779962276026887809233282788105283151733584867315094984500023924965292623651733144155948007663016957524344640657127715252554686429880542211311500117981478127667676449027810947136770199958922593986890839361393094745797854015021381537481474457748224829206683285803655562090234612405526647423301261699531579500584332752682173970842842133846409938288549795721446754497395037984028215465510036099141237219976555689263616516715474640609293238293765328274920536758526175689748358021672960968888384562069982234451178255182981345121861863124114503635920389377928429457341792556456424285783886323808470936239126948608976182488754241875359343754197029241093629227079652554232139016803021104180983504279681713113024182109798922443088895244416382749197700022646742588699791857721041603301834912288469357580670204049179213892344727343295634591363894382641072482271181391662420772826462282526260621211897822631874461160745172538649848573296976275898916288121052298774250598233163390619725926372057600671449200148563299328112081722832326273436638646972138890327473910531929398325287026550756845893718985897119105978839833700338682604737318139010611901698189160915660370134972618777639890899322766968604059082134756224962243700195596342893224644914725675352219036219195389042576266594415397298306172432827277924269753060462902738694826022676798977270880824263863349009999558521795383616306303592977609631250228905042031424397463327975524318712985505488038268698781788919707073506381230743189628138178047786041181633846950073038691786662589326284746527473704617480635759784077600982590208585118736461242423721902585125921345327665423410876586553033617216310602461537833894685612430687870610965570889264007983895094344190172193191189029083895299952745883534283085108571378827546340136976999292483362499894458707813869390365643438656533477740105314064232771676741906985969106783218887763490515370271560104086970823594896805933971559904916515639501950867390484753873661463950901504947870137057229673802885753992514405778564237131617442832718588787192187506747299260285872815760479141519347492711129678908904729769213988359042923140931468142796900193555016358629181827365820029942986169169235344497187135246838974010273666835665800107465549751968088926259571406398081472051870466568206662757651953411452393718112878547628476822462994550070321517801013287650323939566077692684918131375737181868936066560751192846906682574681365401371908411096753007154733557927300516525822814809944693628297733815629770152222406468147026370401717062991929039356962974349690679062064239358281050926488009507431658094600689953026436184737144076519050944432414840294545293391637032506189295908937984654598467379964627347393690297815044180933445629248376447160570571045204935008317495389200151815026577797771596412276146602004833041169036688803519450509742579970094286453720869509234035793101384221040895407567952560153916753118883064313007159249848140952294893414540295946406056051903809278739353664305033498850309384285983657327752516239598336420292962698157771278491616577043101689997801644823919566879055839900887628920325435990769132452001120124080650364816376224432069000158263188869221322225744216890835428788803795814622800958644287610961247501888285636113831269938203928638073629898526204283537409147374887019494345182115598725494009044926625520907090133495945430475583341130602376241246495671522083028324556690112982436661937558984792071827424687504646047280337609093684562438657182463636482573114699479082481234707816961153560063169758369472849586112664126228128630462709948736582111390573885266612686057288521051839172232660501342350345023762635334364332226077708812111743764288522853288912145474554646343661450010727294921328719568859996572478967347078741814989992105861664760005300846212901346861808097248340319414418984860340870678385141953032501884894066048635552841039456794422705290005053796264013114262256789113336780436324997923408907640691592553969399055463602080073935169667261982545987870130399162634498221196906768363428547897435034359338245773787508147704630396411630222702551235822937892066893560015165281314624627705649107084124991453598425489955029648793832124004804034065506931132153871860084204697069058694933885270641358999310770225045059130780765826624674921628193495643932512235908624338214405075868951610733737579957487963124456572621057437908737192571424236749931079342056679570925933881023033209573486593089864419898165225899023409102100282841706710121825311661148451065943511670826053826170941539179985220523334433919864418698098455615518651692590955028575584553296767406559232490209869376864994487944253811774632765951546079067601881076807617839165827756079816037792623013476009078353349158647295611193943112434362533100790377274082514174620439287478808618584981308862553967219199849479415898578840856246969231102690246719751454875200885711498377603556734612837530975241027708628021766495596575742144416030287518969107660191418204329496922456952014925425732106964859469440613938313113616957343930397823034815577002126390854575193661210338984042349837999923109862474326094711253179995100852201367205850508690704878743695337705266783519304386843367042883489496703921987778187948490298042526595288889719828064183227607353618599230665735070228457270433775992674009496206742804217728870734204200264012070723599892155234881626720004345922844150208582148804675862829504666126651321126704620736187999341010546533637900568522029426010142887128388077017718762094194971410082785761109822298841288036035698036303994643969280710246979348367196728873847846170064631144843957954906492885303375635867590812929058511048733163001335238887266102110911585440143320800614239937993405984012611945853375418875129809829967516520861903552254644792810326896440870911173542134379617873539696925700094150857733415037589762828453121493996436185366927020740857012597331265373603966060725468479468864614440983117435901698231307892070014476995743120406966838608680546114192593624374422639315192988959593086722983757958545714439748344772934128709030310407055899688679356062983301302193299028567705631063298927123536988067364543400113096647470803912102756395749854043644535313655843785600497351031857497998595119544372866012042264823259283507649259052996679816000213688395432037530290165392383095843998895431008210616581152018912157260177412224422645904626605276847481273150097318218300340720463088890387723711765808896040039786451658542875660702037071993627879815410620511971682535367645628345002650421430417536656657845368037753203955735477883864081784874266436296378955180270636809051593582737506976338313009264815172248626667037090874678689361862105883850150233207478113186283066620578891789382287553386781915650360060719079247649973924936088618209378693709558662145613610257318367605237713459168329818590752630169704931098764312471952538083424839303798452054759676184987122647590609775901138131021224568418106759923879335076965983509511917624036146138627965127233032608869642034115163111196667011906805705860917007472930016781357430177475252109165343722505243660993489116662203835495468072033548063617978894984548916258527980939143307884930282037064207287475289146419818939017085826351126563380720032412819038675779219993735437564799303557466911303962018416599212413989029094028712947266296984112917941358622453383452406714411512027519340721660336776118440738234413126580890938543798387097019383940186467919474865245932044759525128554733803817657314660551012154601368578000977937351232783942844235244604600240017909326457222491720266838349457520575895300789918845554707046551940536175649342125395721238466233557544192138451317336350895608715767429970000299600645076968564333787272374524959352637027161408078265098474116415549686653453935379651652992350543091080246780143421728632178551214323198273862999411822519648560439195873810902568287285889406772288250095494760326742827732655391804651960046652085509634823315721842285137834021090623175119199563105039942342361080398057511906284674625345726201077875951834191475902619160224472816016466349642113838144326290780349783464936449425787266533887467958947688669375221207988561721295715201798396612256690027156533349482188422440214525416540009792904962177400976890397049144087766231790341324626959398114285572799428332104348941505484308622924683811829846828968120124019075086534618981805383864802727940919610696360964117154803521585730156251264824323174293802451284346613829985741282440248385962613240993283035791226072897129224278002186480261095232216931595442645588621504841882527993088031599921841069948085242302230522773672842855396463530083086623564236413040909454986010199688109472785143818165533848988666213245865091256328069399519050384411069439480189264923269411441481942113865229906193068876862304526858978587704719922710921105642972599673361981537221451145584139210637362798285930300107994468106565739960200499840376491502197055130347665775562203565423851604397987420603892963350366728176174530099627402407260391848878068286582919162524681564346732021908875273508876780732543074770115800355982687366590560707665566291322632601055401399635375500639785139192409459107988358187366396149045471022019591129839476447119013680292574228154844785216725926534629286074155493012881812831578673308183137633675879375648543859277383819144436721208024065172240662767852373705359330203382031176604939348193947522756423430077336623083439839142848407230895596566560793034853795728532645254620772184860765290051864008301215269422481381880102797521739523906621832686981225590846759106140129707013101051736622371522031851726827635629798806863521176515232938867569672382396165259984027162087373834415900188708521579472592215917215024357383009520956092750102798928733827600096829114845713086767067520111221256137711194803402060420482757062321963920650168543897427137371689590614395444909331132293020061438035664633883501269402398132635167130445733836061938113768802332675838205535045203713474378303324410554804118189777065285939726259161146822922256777122745388414319866397799908451718531398385800251688709786280522907667245208155718031037711207178819659856629368118737472960571770077301777179990430406079895869987771273925088163487094691434010066778580085584090407753583423760065373830699894764404605096817602935911111851313852680069144057132044445133875704624328407133641434362378348882348540666083942237688522176534872629014681797520340216403461863078271382732287089639763858560291066057203411720387230141225665645925517419852499287129490427939906469703427972384949005929586326026321371817369204183318698889280689818632530331535549218269183223493295741047342234688347482224142998399065924484600027712697146516933007509176755129113325034672341008727664902717722460739602304219277886428157202119505102179221242950280536681589473225392700111996587798121763927922258348910370071081909830840832580342136958184903465278193925505918653889053364844499177982215115111952746197179038861793569404311652073470538644640628700443480327463690222080952565988153947475170161876000230849891149217783138167536015099037014934009707992920254454185529911206289742316969321864101755238223741625107741126764460353491175254037060913298130943839232136250596964589710830000664487982588208718381389260165434890680414444547503698167786964390875192176752868753929086437394881586252934085701469588416588160155481110729451465640170132259170737948370460070512789116129091226076774831867900072822883378620830355517468840542149577221397736512190115319402144076042904243817810722271271257149180537482210972208982230712386856628302334710848231592266874251766505747164191452522292482534771129056527763692057776770767948394177451392988212943874388582001873806100352958477086924161274812200192040167159342581922315870566147552212785539407207652020263809460507211203850970356254875541187455828358259037956355544066727679403542945710690097588889498677629456390938825451163434208676680280923628118428954823608833489948264968613043129695508016848315437877115173701667437857944485065721787365743089549169582556486771916801799365549215868506604308110291312373866390560338373960814939683085082875743786135451092457797881173432158481762167096643421090468750970114751631118723377348524577436842145230262901682595221156730421888192631208879843675699965869207516516570056089012867965420198834499897563179485463513981371175185288815729453703900110602471687786552952941509534532840796367520689750464058007856278767229797062421729134596846234324618003332026340092009254523044457196179134273843281946218470836468698565828664222929119916588550556569009246516980269664222309363963769289355737500446964455961983406099242767710928791633817050674553824052507883581880154106518503210512631510827152661533501828957897784805541365987038696739772881551070321381175250744976631147128275206957909668421503715978882613632398808714819335757929508106357084513805598871903893853003769004366039856711943309970268236788940952161185227294815869036297877395840721434573667828078239021395721772765140954259189587708307063798511433235287862476055264264528706194967867985679864460012029420007949212944378099384004764177655365103001882231553674380398437213636151487927730409613993043160184169303525136269613109685364294281758586493876871889385478685953581019807089278340600384602607202706630842472567323633018115944139087255189702472311403349261356313229489725180965271264355558352738360425597600807720689990940074899365257099151806335834877512111269913920030559131045684040681307259451654338097071388439166354887959857525895418430105602442694311794510256086649176527584715199180843420263268722047974201339945722132651514971650423388550899697095235288878707215744043491314375469423185064027766421262446841282879111672126137165301409874345128670248840503492491211022178084901608740616758300634315424664312861187253491673663866129166548565203889688002970726543573205411722524740048323731815303917785201389397345969751969545237695112082645936653729333180012335813104869032858620137010049261462761596065383695788201948226775273730410302770282461237801377555313187666729089530065297105920765084974198233437413239620909339733251143691521571608875647872984138123388613857954926279723564700766755981074895243704644634316114132166916801757212463808097084830820687377441652715988035030190234780606168712913044438531566808783133148328670337898147308249555094107340347808515641107248198236558774441545808500178767755538821869228360659827599579087448868674658255069272105777122173926304007400583855907033179546060100802462308471674843988616796239629118974275477688141091170145437158518242066060175178327290800338390316156111147405087111760937563833451970394978201843855978903950046902199144459857843053491013028645997348457584145026344898121483589114915432319137146474699429114917449034295526171833118712957685972139698004062976812141977800686745058510670251624748768131663607152937423270576778817359695992096252646769854876236466665833593909407537156957271279520279379068987035642855349322573581947726788528065960038607010851523181529969336011775940116175577632204790755412044346191528998748770953748702178886118041510126547455185362619263388079419686439654507019340018868393142341444250477672108632737923548804752938049239570967947525739661974994515706721132408146963901462774019413625422203889959658339509443529573671474792922665180046947020191189741071319327432140498314890476339714045991799636231144055542297452614744050386615192194839579123885060493567689740458912540396741444522286044576304852386680121695389365243984028152369425559528310581401686234944216717543761621189957437115892682057793874760717924838560344820809835512922655791373384972497347820051657434062270929712941704541347048397538799840761925891019224727206829866441911991296855234725949933048550409973057958299119919855644126348224928929048942164528359125949371067017810786015668085739626011432092471487692587315138976251157207068646343753348508225363580241273269646262822577442643947872519768692666773383636619564105583219995518081949876255385125533813741200643228124976343424152036305275626969677890361258355070823560346884670705607600711427702922814895733449737227082380650222933650139603760309824880544355461241282635542434330407050363312067208202899744724623575993603705618594832188901683335845646345465194214999334437142259792172064673054801214806666601979692394358472020484641386330692492673902007643751523037879003050407959948369194476320114304467542404457154425534257478194425546329160598779052883484364190263824819267912546185281363297241156961122767701818697303834501656941338252071986229796041269801887287621809050371050350065231337167866123788563218734070809276235140813865217152221099254683373715594481182110460601963936985053317508417819624906684650858227952678892535229601395491300838976124332657959221346906818860195020558654123648585831173869963036116260432443819475945530281665530830481639077917138629356320807030928947614418826435262589193754589077495950448648429486182664914344010592191037459725150180220484358900279580610046771884777746816218546225988220360817106628877291015665452656344308754531420126062763345607256202806070232760950553986567323736415010066149379297431220316941770388032789338940515020388148515861203581890091972617724505197895947084638696821400974981461286959744196334765484880037856667158264368643314488511834483312908215724740733982093970034589757906405231154125682100121014631408315055420329758027901539641391465870781168382530091219140110476123060864392145581588997059477097087989111081472226091043601918836399119754729277401990536648205105715516971633267976324096070517631701615664853297333430790353356043581651309894480438609792887140007348029602257311814293655959537418092849377355929240100431384169246466777301479047727833073809252770686804299300144689607405163742426426713378483644298210068827676753718778774771710421691493702102417878909069253181304148623847092317438021487454705852154523486666773315389381626187657425413463902251091873196285749064993184056370709887201885679763736723521891397513825911635020530388753282307434432314581788861985055744477096193181804906186407037443151048736923851648788219852639835092416339326823964697408902971236275536287171938712954628060248513122788671792707979925263989461963353020701116940874875303480960837679156587884586931845580869512801350197578797495016956365790981481276434922125419300329593640974355354331663325469556458607668625423874338489357120761449205390673078152853118576004983352038320258456541661086515654002400383766659599170714660092326639081931822329541400823152046473836993677072721742249544680304928209546825226597564298795918719003275559852670829924016265459630733894483526174913887548635876484998738887675894364056843065154010725408948930138698259246344650430731255608452891567924982969401031411224784993196441714712343530694323024183213944360613638753852933467705481868030291407797766962564272255675275710381780914385080798469139242669992889508250415946602530832312665430333235191891403601330179717979770867124267649125464913466934916593983670673394402901778902930992315937754297818088505008406859057950631608407337006768930643815814364735904542386639447555343824031759601830760445847944853961030949404552139783299964883331421822318196235116422979763880860844273512878202466099186457122373206331404002852909821161173131501850189140071344181190156825571436232849599168686273249656982437473046400719429353926766249896558120949457919875704357896966095118370047125500338149469656933957925027304796999650277364398630134279875420548479964066691725954316272958540774288303916214392121464239460435601183860501005104291868251021629784169080261080076298527396733960205071554674081143707692650723180572119349286138895856864985831009162538110469995796222439110957639467779602151838330536194074604746634530077260825083287311655343476140774647887388370944936669900503200903228194362011075402979549068712668008152695429045833024435336054809948623890631148294992940824139440380927899524314279477746019918160914271725585308519437172329057057713193461390643618190906559971165625053556849823973872578068047673105682310182754772271733616628971355005910679907882803318758502112901601500095738471096905386209888453730046743857106320867357538945607316440844018151320693826261444696735565720288244768327621129812568994862321866159407887057771164221550585869890859970346277467974690337996073881477069653531553219482478557997863765224539694971554226618307016838278393646708563611802840367052075844901006951949026961564630432937212133392913856446483373385390987931972663415596551024133911976443052923106208368204125530418949335357059870958931018973490007753110948489373648253111158991703068618926015173303135589432413183738170426036794431515065928281023388320840302165793360024492783688992384102750986144463977357543482151383316183558787425883025310922787245763232234871536910947312343711923158242533141264168426446965489325868234074125986100293677217357347638839738147164275181035914519061454484696859517300306162893087045655605055312865003987405494503836432000528766035116315668007994858141797707885002723366609993440686656839635684140051456535393122631238873247019024937142851189744344147879864204567827977844391619153760187872173463416558619084930714130091427568618296406633888952429548439969906425990990031062464259940618519547424600203983948930391169669250488574975547190005776019642363109266023260150358039961508765748962486115612752449305325015269164379739518181667896732562015741345827041182077039257199673720723218598072000106228034625839752448996031326605374856204196253701123171467356265471848103402676179689916905899219445452772232754374279429990308142366990465441337135992402905099310707193605334232046954293997099571209307270713845181976117545145345619818935721990047181682971548392504894873036571607254665904265688703061850272466160318020823502170935188508979667040692605205042977714560728635206776387455251619022284834085711555934273650531872487359670850319475227135281759553053501910684551559580916928272652758449399469797499549852837643563039928862174214319339142444032409300139648447127581352118194822552746182975873984165007110100283185746948443504525233570522550732522201424843951073133805103610971108871501470744017739917936630460672354831068252879429366793152191048704627456832345339134339344539803509439616242441606783484685337100191790714986139751583935195771413658477519251622460613570462086848117963574367367549176486818889753185802983473448123577221870322850042503607318086307355091531877855511171366886196053918252844636124861232514897337170051534443547537107177229726662124882396057222293605508931012739222459075368103087486878955914937203697452119998292906454654880719925447686973500479134158291736732599030291404257113361091627581030880703466174619285413995948544409996858346044356629676231921366554007130974999006608519722318820346647924446045296931601142861272160509051299275433879017982284648578090155827355078256173020018763468515999832519643369696037212572363263810284373493339150220338178687532173239554761583510043788683283962983156194720101456527567106551295683496679240804102935683834452500116681302983672907225378645193248321616587551090041794254474935170935568473207762649003871795263498881114166260814504680956949591630230299997875616616386854700715983497202761288683852166637514138068887996357280836882914305662449322911238422002321296487727613143548435300817555770778875936040007817784944034312462618765111933799360146011323978385632754374625421451283723398661577132871096235005277791450491045339581783501451081476137589032078735606814774408193415166633581582868343566279442201966694351902145759556978170006683427712755162479440991635937891697668250392164358312056339702595885762809334145413511668493466364800412356296952498253910880231777511433184608674217484519671908060512233587194751816272916464922397613765345066820657962578589194403490511077104627378442080045860994516834432962481732280371161418719282578631242998483413592330143013428135950875723713730639047545252566749804784904106460477220991461634587586469855250514295641498971691978505859491793134009999028576723970924892452360134497004959601568112402231014551287731769708150132863728562194372405649766064288992599092483039751538423885737569482307702908225989443962460773765100442310311570808901808608602602971159657667765283701736570673876768875307425844217938097378632616681345518591385455713322941899327111173133168280798598436554443961330960393473160152215880993011204492916001431167482113924587149648382152608001247613927296543396400658281256680637597992420192942188261633944899875900506922710647059174094107160860661419004092045855214038619145722307618219269855109615746939180488838177867495606466107204679035968334057216115424725367246042422632521596110060316298518893246267422241805343777457352119446893082318776893958995434833770075122225910001376056768829612359205859521514975718701274544596571132813238960410774335853394078277737765593091713648419645268184083454980477913346830102953118211010961942720133910418354427163567993300391200465090807500019665221269300509565339299922083255498824900388600382985615008254382932037341161169960274910238956760892040616418576838815619352510830313859979789011544942470116035338897205882549491772486529791217398988338197279150127144103541308442450406039230814495711628907483142933024504270365148836803926068749332093204382091844798724225815676721308414385003246281937893660569190546287308211184591480544007610934864378934029453502405146813422575240047877615840272720880811920808243842914593529372867971719423659757632164241149068356519809755589177083439772787397640688481009416453043723965243628353280551248427399014067674440098912614938010230584530943861424604670382026034013599168685069106645266718741911413171537550543042877550331291082608469831525552410757083525984256451456135187199629295559916141847131760878847449377820459417055718599230140049216148892228396582731355597771577952036782331043677588497998234609189136108745844289754555667999552627499366676916072642807090364165417827655835539036303299779318641765416457540121894265547008668693335772357053959540267963492475726054553926622477183493210553328524818561779644625523978730031792472767835660210491149810330330666952321705175267344631627613398778658060263259612662472232461403584433507701539831225483778605685304982226352007887599996596849125745349230890072919392632981784517237824264375327117474087107932145077093239759794420586355167811674917666541142504811049335346915261322293390959307004586598760369260134207780363008797604974678678835098667912786249961845493348749642757221273892132188189453714235225531255353425799217172123782329405789549814922188390881806778535923382433088587095828616589978785695855032994467524506728279720361871365999267573249768813571836579214988902706118872332839338925711443489491709482200956630835581745371574805398427210610562212234384765104744886643759382281461864148930599736710328494450434489360773295130487955372334024894214176920212704945815929818333730977465647059970776616819000461593285815354787877338296614300626822816642694610065426571600054643805862351799322437293643465404795512998509544443621363559930101342141306893661754227695194326046049503975915197256808299580744213823377559550694187535300514424808739886679152884709367407820422300785855106029383902555486754184632646768294338206576580463853470368395868445216529810790160881083072599489337431130083384066569225659083005367527187348716817907372882307483472772346020908980022222226064751992680679946901266639839637353649125686810405016000604780573761033757485515228978992972263760268333027580961074748860715119655486990811507099497308220221275365937712783800668264088713276944467772933241037678780092486374682416656923663238003845083224766008325433745978885266255920924218803746521444560435189752683694683686665322308582258886758572892506920031708459135132509487686673618667610439225128432726105772169368669544714206804793727412721455877682775935824471266167503468929117001902958132075641597349991642511691886716170866812340411747758761671756019266872099874267279298279201419356002396961498752227480403560353080679143347547644054569513439526434888959465722602715137329824736175547783851409931896367849932607288528024559068530251491537962521868141267037935207290782432962507677645640533437550654013488198651610063291924465734574625662359485431635835661213463184640766178985483103582410246403203892755980777050917646230710124861169193885082800644737905043788345971011277579091351948900911402113365127211363816196859641629451906261634237924396459750464950659873036211519545105998824300432664990952715970236198603394616248008266418621260330927412674924015935511457793265205717214512339114249898867611833259950270347163125113953791213292304535748603061115705362253811332625847409684822011921497604259032695347036548958160031087113034025782861702328098770273292425875100478768069641001378758631791182874438704956819341366249381896845431833416518749130434816121968637181817944434098464779289746121807614430940681325412711291297738764782204491745229510381338575589228434077291540350154296039942201024671298981833410930447192165637419281160257475351112889555421226128092874455247723797335760960427927813600768735514663566424647774926739311344900627973826099298576090114342365476502770337004729750307174954686309665163373202827402660130897486916451098736748912015873207609215505081572605106548453142043150456444332013070212994852205578195597400245020409051208883324862331110481575381321680718145087197422200002383644712938697452000673089520214386118101592221171291186075786848137849447202387113874151728431846081968364234193406075137855809259087346979281041210147615553031306564077844121707774394448668280211549611641829516815704862581288981778273390442589530292398358222110197582654861552148510600452425300120356982228680616046104839729859496619744388845517736619289553425008427059595670152629073582036980229734748760769675042817721071780877341298085584368752165329324295626524396195737674990759607765025911714448414270537110818588710111347041162838843977197144932591577406676477529460980453657617997936444451771886034034260084493192456865778249280083504794646705095196439705630267057135025034300646447725290522859885606548240480667393764059161457498424678412225515351983532528647739985435200072085503325759912080777375150499518947520941530714192731772279953027113048256199852390337973728599278041718688119688022729641692894033194398749332557664669506853828841836363573027222168587739393490164181510933494626523827124718821328239149401929844504246124120934350596119779971050562926807574783676135414751353301406544889004710252472300020613002450525687867020293678513725677322765418113095110409175450497294107845773087062901162094427142807075575085708894866574473473271563914171830664706008846613548220285992102009899176551823231157223148128936084941503655767675538611770194718294671257892211023483534980942420848668347747396370522425390798680057600763523231512801689897016161476462441013202085047427216553534939831831354253288542256576395314635591818680869269254768893060842027935916661361654878006700351387901709825586759144128695665833351603587945048118244695371350686410825075530585644086126066891536494695902656562626469307368150135352469688765565139517496048573144483049416495605695942424414730119490464726489513353118569167364347215642747863367555427126453485216608389177233846390909000530140232318194631136758384390487474161734543634016712640798502533433007105657218532765909017589949051300718348055910359102744499412381595011925553302290362117466765657573342443056382738302591220568838528659362783617744459485334936312983568819303278170651396295829927706825520311421580699158234575070505287198989780835179988096907720563432727816449726250287860965533601486827144645737312323047743811164828173373602937911048329354632148585310535218090877366034990891723161214967913739399237115924888936064277969964330057225667764211130990900071067844534600979381763948751204734217377903799158996243809455303095786970070324402001602444712151873270651741413661548921389718715728466723284059499506744592162340466415600317341615214353492075179618656295768169612421746760061909820405641671838482705844200715344673934140716864888529903987219197694528415500393325859116884764381785423258148852799382702621740319482032989867987777148778938026246359404316586244653770368158294920782251286779051864562792731585469905015162836048355595812402220208818718964826727618933439124178135353353479625037319241774078833243617351758283975259935209252490877200320645505697583773378757899883686760934016588094536003339894154691579130895138463742001951328375214036222539284250529445662612549057232038525106676816463077473490347852445681954362867729660008081992015771798126667302866158304197576006934989840260728084712106664245502644935472611564749696453474638744022712441115318738114076489275200044381283182246788026687042872873147541692498510760115236710484985392160854883183947973469873976106163920224549395201174581359559252163611834356959152982725836403330054467637001912623988998298499940683484069014375433824238170912147175068571202928256388455330631753270234861149919584827736543145234787717966910984819661328783625054800435538497320053606536448216812773173389971047239369154235045557986383662530289750838555074653649481032637469860719637076814662595583138717270058647678671034224529819675978469488700603153509356429324443466477520472054432382629172272893019476481259654132428307742373257393320666702432040580843910202638188593388980846202208371483997572675506836356788457608848453993176232367752153058261125832840546289540658605391334479300178063127656499699669659885770645857164586558669481738751754324719843788661578204152894606784175431606214358271836826347130759572183750961619010220032309640029132830528422600421479865083568960745210015720022303042248238109638543091879003591708463076867592940278983817495558331701038869821900914369278713271188153120536291639379310397582835881268977589056126241147269596063821957608464844716010499744432343106440828449361963189131015131790007987100387502689392537599336279818769757362325583608253365938176647309667749107733630458943770314634549937790174649512799651515107702530843042292911995242197334055442257463570665513610265604604207461598494865670172815476810394459133202300446511971613119704207031519642173911684931885199805012183853257815303303140193639348544744279296423777222361176356568062793762425484201627507316352258067464471971946342058411163293894369571975146673826412649748930470223121274101968843183386457121245826156339729248016332804537957100158825466089263082156632347334023220584627784464696755054225434692138091957598475209141651000770197350146283912599375450281453513423788854591095839016994051685120891927047996669720867783398028981669806719046602749262711702153200823934725282604154354684598581549147135752554123018051842149050212467171572078453477067460589696967171746750628836841581546220512049159589996502104047670470731485145916252574066646271792116575589206910349658475332959640451877416630009927236552877956755752910679907668643803127050764566726656739049329422925285687073227202766142585304893515473761582082000612347108974504548926756929965794461609530510286931668200849934885507630070247657641926882142285220288772410325597789192602797264723396552525955650699137194690883029221233095013101246188934059242650252788330537067746267531474215169564216149436340199994066725869895537827532945752444813640675073869289737500587052710951742463395971965274034070011904846918635352886596943690729719414000645964835320218621008899084922199910933406047726077739744276754319323502921862667948222622225399908689424979862708371579256511351644328429599437939860179210327163460634535926822414928330844521668210720811304040242972594798051461060338088156786210520137882991249736700565509506756075516874403467350071314451200933157615319755489042596538373299285840593870482102804326400109829577004607996108173496408780006759579082857052382073902500091123630424436588934673625857076379490692293446847539022250369758905996272189960823855458328480349693244286056144038422251298622446338902754163825919640541934285730728270661547192705054757525397848569900966493533150999884902815375093288158654839807707984234796135165411619233240645050971609462640288811303963887981645700994064616962967012383328123375451249785342179777911152903236151096728284763664521271799856482457913352696053203859415143875222056904406516013837756212649158174537383457158493555272224108125990746699021145465692855267261590047571612323469633897179117338831008426663844975591327833874688373615575102964649006209401120942070061225831679173695930015587768220823819922477838450496719593698010295505515957077173087084124405387518646117122300417275455586993370739626845440843645911716774318757606458291240081682678126030295896964502045683881908257174077556552754767567782870029751407489453986271067915668113070722748545493996711803903919662476786017543135177955590432374310983205502620765882799621428191217505253755933741911743018609660569522012461795610117200156207305740078738997136143201578414291993525142105927514762680662864468569779538097965708394487353712145026595487096287314454152728959748894082481616692022547142611519715342154891638848956378091832826756380704149153146233882995253103993243341512656221557073951262630028728238601676738667764114919688281055341204338944887354218202849982897395204027864067517806003799032689875503056624011402749287483253657220488256969136251501515705149337100314596478518701232057726170655400490078295306294008624261116154379067961687566358941891479953824207797425968386351683249431262684104870296712694658862427670607173753502100051406666727438771000848964450387041514577713178964714216562383227228270660901535122754663627360455321175899641092080017371303666127857866464450493265432483569250282769936350210631296844938429769518282649610606051988000106106398033715362972778969195604291683971696558256751227237949128232560819551442282361145088798245331270602701870772870770661089958982304118805596671640637503202557850445682044471055318098272594083799635566169775232667596192127005717555433942935716464807433884542854536533265822050884148918096877568065624459810541660641671974644045453029995916423008966604974968670453793682695037561511370470097802624416417892773689983798158041532830329296297176495337715279505043157502256002939049813742722178858864368089647570387202981727699193220349722519348493261974112714551444947005346715771808870544447653708703075532941072048494776337687664738869942722747035794870793633716111649666378726503361006626295952427870440312482570073152838208541236569624205052910630963331167970742956724889593186189775630108127217550765566659115412074398353139461778250735870865307216766882679778068911928655833808582423081265444223176987879270221533511943691605626636800165443601795238061109855474236439674862612892742105303743618385632270156187041809971262987812016109797338693884066571046791210263425847384043153242972264560700391549166889256536098187139659756516558887307351210341117884514475367149658598453047610684406135546627349373092535190040902741669184418289882518348883741049698663472833391672365406728400070695390299633755344372030707247203298648247330774154046368459967740101876910973761871738537833556217431298700926123062312857264735018118518059002294180430555008305889941591485651661136704173833824437809981427145622424950710872465112181387006447269226322279150027682207448531301645286495498281943503028523161307481346688475388513869945659271208634678048739528419484604048924126210350494268807356721551340499294572442270366607974207851512870895533369890457072423793145277113789139851989346860110570413534831609358164229552904590093886727989786394167617166165888743363586506864343240079505529320957846285501920580297804298446908573882756231116977727308978749104909733639479606336221367856059153943888056895517969074629308092371878958585008500069816569462645104415676348972432337895099317151387521743644270157821461967305697397122091117408305316918203306123652531708286304436190556899809338325924062364513813568506629185755067513906017448469273296461421007906902980468322269379458999001054140360892649207510339521829438348096121431934127715054314494898023917307317834617890869774802585309134316028719859476178220016475073433084277531740751842748678866304229689359830042294268384753818093708601884440591293053451517959282302024766219727884606496618048954951605270600500880356624851135318044748140758409248814801333599709368667704927057565175765684299370591045277125824861077745428170736000808702210175190276282666818434484854233055907561666927938882471010656017740849706584202826746131477798022396000376020996243478334846479965570715114263273665407690631301812894111793240993627699487675537874266741205451064376452119578260327578614783419286749422055215115862469798235501842616762317916503858449760109999004927377021471545662435263573972105427586934662488440022540385548883383287335408372124846924840277457453212267422242360977039117355887514024263582823121918114384965662334594273286520593612969907150018795039488771011595972671365459113854421210515947752766636321183345580079427168103267984080799934223984633491108507720763089438126711173775073369349459483222309085433170301947631779872079040264636943313406119446168830125607389772712627018015693703006127324827979905962850078378895386577340901587329952798531166262208644874864359274269692453557783690902301826483411030829793446699774432166705895835003943620884722334443534121816462256955921275573901426398733148382250843857578200633376785646995148380142411285662731415641648199636393880454759577274194015854903154729494542746687534108039833638334537479816897595718728284529033578730011820691015892908055148894652067514266225558933817309479816748540467662758256281584789686049074303535243783657685713145921941013113870768676687983801152563249779193394917782095688468382706267171000890183932515790598003233793465096321932252004828512982316747594916288871837068361808514805975775227674449093762692298106672717258163154384679627471689122810259139618723820644378857602249283082543956946789544478215351305322718477482951846641892838719848051420637070268473679588812728117055101782807364801668799266164653073567885247384485464368832358224923953171176458654511894689089853237001211307538508597826047712312977598984635184177066875862581299022803534361168210808435184620153744134494608690995178608448442966057958169439150531313570048743532537169350108665978595248720297180957489005047180400508117092638567733540009369355328178892123963205832347403619554213010648510286030286795795138109486102259147697171213583546814462879271105843055356761072360143428152558229568208234321133513066551646590361247261404388316542348616543314043782073754547174923880818714403144522853809658761044539452025530585642550053757881458127300371442007558318000729381383161967191720384720237789405698465435021604045958762061191447898117040095775572136758585902277133213939883677275508196364142109393215319084845950274702228177732627283601363350951780694755591861108527403296697530702180597265309346426744964191578235608122829445114422836702727563916067125564131747343387764764241688042459184540083656956500658742526786335118552694151849500947132183591075048380606144381941736434017499959365022863989903950595511942416823001716362097370770949482699249387983595152704342460237121379212450515513172572173543025421590651417578174171965310189197763350690799522618711644199747777615758374159736341884938332384841585693153108805468625506099651397275600175786730101247685820647806733602607601630161972886297718572587498199195296347138714396867469048191597251845380757669072327599681658827647849559036723373045991192814576547170761092079443505248076530609600302597073114213687462054236727198473751673619108696654122250928943543519306705992084224311471610825878893016023653538769595633583985010902289191007398209469302124087225349376770597303838627383031071282493385268598594275286003591477007882503000711139698716306694254550433500909433533131909167146546956800598444169860278186578072051118489600067255159444993891724369166910568678579906393740457553623465143842710875819182201003495119926678660416022856418337675820037190790385531569566684021264899036416288769992335553681935710905340755492786987016131468998108785034563284374752256082761279765711656045372866121758723232014510823063729468225437654901340111987811805081479418669529870934732832484822555521494756761003321396411299419912973368607729710804185345505193195327508388072341440872257095490513131054074659560773802719604573731029536024077550182839598750887046979656120970899100078327887018017168575592008318906012890696243768793309609554035294604024340850220991565019960811902932940547021637475404817765939087850061183284969508262909296413184588552397706769106839056744080678694186438827762883179381268570632089438546731030313670580089925566561906706357383905550258237317048318655880636161050778239371535040477710602516873390895561581267560049202414331766751062953297776123931534151882750389422853442116318371418500422587490627817032265880243880916866922360880029619792557497524420605277181570098916335599043867292662741134289956153382743790412383885418657051733482188523261324064623308270260981300164921290750090739055896059836554145393430303708115400399557038033856756244468867834795491953772897446147336170509245343379306866691261619484425911179653104875049551926232769192843244683419735066976024284897255695650402536985606751346476716751812864420693215166062428938530748282441915758362782913233053214483669111906250587960344308410424983890044415706581926006220103815081817003448688140289308200139007528993175922844929155141012363708559684659292061134407970516760391229135777847082548459311255530711262832791770685548221932391147251800475291041184722103593553145921993340867279933906462462725524068010528422067970434910242015439508333092202075052038696910457073056247306535583969743814456507962851175340209544418468068227342500672891048296788325591932868696834861633218585322612722332832715754074887337278820440392693388445096730337590599846346032171202324876537935649271676041423834121080107348207162692012239360909893212818068766161613460081874191669930206619747593499724660041544300583366550620736544555428747055982233438126239201387478245290747808652253341627915384630810280934665321425834392891506090952819962119013460795683578236055140434387111216859459418498855501433329075938461584512094818269139049849535826442395447683157976064881250860575731078147759490080337506921752263555848669312237548478636447463083728712381930206674305696495158895688987580023883313016530838677356805398774308262725063618803731053786215789388911920492958860588041032190449359111312240312433012215373780385500403559506341701759123480902662413206738770904909797292007611497028991043323658824463628904335720037752865435410453514465246724347966908970749892099671003950195152546153397847272563603960883658167150421006365261825168039090966795887989686108696548807851664700909228381889594243521666096789534033282618058077050774211784083759095564412261791387965942975352540412010126448908812510434030646719518668956873173678996606641750541855529130756288908249609318739002467576789975949926569752761285568301539772972384453595823634365587935197858207052903322372755321654786373835197515207683245565959522623609533996291432303908533798946738754331094504135517409852993489692648899522735320437374747851749505621905246470628072548256383892798005309744972366540071719191090996073951983499858991519030199679665698433149444980001359003774403094380211448394648847348926561085284769354655216958347349866594832729891809576985876677733092689655655730961400615582475954950844334067581845854449046546717540608369859229453802054482414516185094808921704181671343871337945148805557447030569693568580897889597929919564744132902163728636040571095091290462721341392119916591583778942979562825018189249669774572304979203819833753378601887212813473813141045174848514850032871443960193670679183380652863510277578345391855913187503210177512652082288761849689198001827248091787935661542185901388658736800795275054509114488761638994299495981188418874084688912968025058328190789880160781067318937209185585596707114731622949282103747467540216299098458856239466149149014376694531446851500968945304938192428309060966742096524344260531158623707472217621582920971349046826401053190078049112551744165851034374947077300870068234207756501472071892934114566832451428344223086628796965563405060998919255516070325986880612288791344575032623133197751141200744751481456593869972898480141304531269762439534904227146442568925558928090511400417040652947560197868307498103856964542102138509376723179971907442660604808878931245006523669109362708948263262209681226155141291306777359144216575829178460673378885481919145520106092101713518669015100669557555620771451748904139258198763845541133949809470710515395428710466967934877416194598493205875082798103085788911939164976380041822252874279658530921740176736761488395063723644810494397691582775606607711817354073744355927141869044641691743892506834339314100767536842551310583568902208010668810625392220306721575445321155489516029157034615979281973502657388689997534545397549665166827703713942375100516820018485006151009216314171986439795769805582769535742511436065604733007105878706429942369229049846851205532719271749063545316172720156389249266360721057871224186848976934921821581451711917076661860474706403239523380619045727194458615958454706612299075472724107021221236168377593607875092298400025292775493811461050921813146798797267210341895924417153633323793283853708667926568379207102084780923640552245535190437690998039403283948895397947472846730087554632260703602461829691002660373553006686743420285660031082339259106041397825872187867244877891947720676492522145928852224325153757254579792491845034980514492907800124115345460465470589979877317952660418299681011781312476142780918398415144468855291144955620626557222487066837506873599710996546136316235799277849812534772873517641404681091463773251397401696964204677036826000700236078679039567392112457393632505238265577458487139813068419309814747992295490042567157707075486284045546439675158766635146778580918884354958859745154515038779046183083789245786243616567833702779085150064654791463423900209025354637695461853141885223699363438110591327585043217992274155254080557216880385589857607893945292363231982180118151720171457586167801732959582271232005757395707724913062725533372529681063852185748998289677498440988615387842527324617363713652629378038136724989673791027310672861884814520977240495559135283561882804505710197531815681992097011645148051609945131510082812255423953150986371239163379289763300555424977384829954497687224084204935185798211936997691938220754042043354290344030813842143838840665982858310061517592394397841626220912974530067938003226415933788134057584536859037320321494522278183435047552223003426670164702579686046764199047885427137663599012986110560588741049333185932247492270816737647542871165418530182661476537513059345444191522403681247899424808983427443823605529089473918489770041051794460264172174025301879626967838458209338015282766215177835026790246837056305540699321740796744465981755941770836289957139168131807698146155117527431962785049460268994976320406289832579215136388301032917649022508212136364483479465766624689212436801890650597506075833364785100637178907282940352963885897912781821046145839101466482214796885041989682337748744826647019515673496008196016802570631266077365611893747380293064111248596588437901562145429637423702818569813856544959956268921417172000344119405583163369997379843093230373933251018681110240398446368306228126953013919852740148945947153848904980051797624451459978990634584418111469661256512956305853329423966356668469568965009805545340725722754331966147913527508966012978379888764658548617258532452742900928978523598831265223544533819042580293360428432590939701864981506488472099974833692836969535498867526325684477022183516308085845006440815014266011716083996939437979736519937755122316604649293105547507988914337001895908641306092628111869778071112546212167536927812162886652642731860061034494954121580790842089818705132578701701964841798403041017218310323624444318182291381726496857078399064770696304684401482086384045953239786853635455342212998975055341930016282933521712923895018603918425904763133199825430311406493707395584819498694251698442405964017148790651056595607341556772830090096011257187974878062551301832162042244222813582613249667536871788735195306186843701225371860960485680827408736017175142903613020972667960477695255283467368436296694594746946621131158833256695283331310028728608878824607602051968183591057727215239999519184538184977884333685123132651763799433214450913428041787950050829541327683647963697833634781080621114697576141896021581626893832353365031417726398744139232559997664912929433858563995993370886063083220266798503374042209787260406852842353278666862602659546136638222868836428019836109135964609612107141095781869975573633494750050001801144662136800674257568213009443255279280303616527351086425920119375137243083932953297355607915626009636360750052780429696045047155105271059043633579806787383625987325623232754829101767446721527222143383416390327397196133456312949811996259872880115490766530838291527349607108134745008597733987083025653497419841244294155004101378023024967012915323058565375820870042807814486867781058390818304525999053983281740496570749515293741623462209582228951965306994651941259606901957077858651995179111384994660866539011962655496717561078526339183090374459613455643622428824840377094757657277188896839679985814438839530442163668910231107631967247097546338406584334387381800804732940133151487606821343193467354037274210693077233481092278861570313713325568159994858784102296680465335637998801181472523622076034717717878727320257200196842828922117849084645898443381560036451020536312449953662020731646651841936137818543997793187967391004310588850428547719709141863417487345057331032450072770131769940260488880034608556267105522802997858468373198249810660980932650546206875793372168229997798622729513908951636766517555891779351616297822387032024379752018479216442016751966759934831369943579290814913419682376557934655212686287454289262155323738030992921078943950706072771539098204567031819118767420620649747209824210159847104368100004207243294475749333921844573083698193839039166542394998500546992109971525309823410522632683802521925771513959219225026907540210952044233768549943582839043138222191458814711465096114424208381869234305744561274388694551790184782844429930870934045090472857189658534133377745193565578079254763367490986179902350776297798444188806457082615554719799585318479085949177399938318542984218370195220186948441418056142538401613235418595795461899859007358449929110461886240412057037052919018891354608687898427038631478723789369373995705271135178970969938070076419661468644726652854523044533652738035908569386993163605606833631268716463801141622550932836397841445966736428781534634992664125414539219415311582854388393397527242988522037868467720681260293574601805919619837071232798531815144683637855300983666669490209214369366030763889783308050649996390858072387014899181064632695937372628743255609803957460745295938415230545132944672665206962216426777374527780260170676869742062024141558699648786319184476736167434893390593721148571124613470852906293352829602053879203839709682325426955987581932207878003712265438249486248853432814641261088574875505272218715985533985136644898180939074238483946073239292664913802486255065266797239607268836071280840407009210065864037629836853374609834872317132095608068894484876235530901973705570684202001075052925021306901195012023937573571368754933565122511000968989035729396276993563930393092721774663829641597581256286356697470915763197409505929132960881501170149678936077764371256246579288628774288216597748236829698499664660368742790242303492483439539137756258448889578708338112499814835663484870758426741943247800524572424677964478342512136005011088152283586052669488219199933918383627658912351075668108783062254466328729956103628477846919010244811214539031030399994542088340761854177986969178476203766017113210300176460796571405939373212714142640956002004875082589740878014648838201883491905815581798869751672773829275915049883060241148780216796674498371652882672305368692930667587866790322055626186338370724524305240165453950034072659371645322941128592112185285823525338763273584980526386697607105968050445136751324493247638761882904275862403883679768001799107009715991399964914731645956589078028561265870422415774841033937337985890760542677221999762155814864125033557084900675624216843854540142683080715800432716687361154358273961101830857207974105964198880412532082766105858577815371903439161265662230834987982192254551562570476381457402786904509620248317388367289769603523629813327047595950087919353352481281384500012314316116018703128270763605010828840928253808977922164638917913274383641725258026290578274376138977426505413104106775289743206809617576551738825314260001454883833737494789664028604723604314023669355203915234451013682092094663524573445555111923780926277581808284641491795871163114491672485134332456082217482191280675433339223129890358053560528559874709437760387078638256184944956281213205569737846455155708125782672719623242811030023220720910500616941999200316362524582331490515182036677171145093605556771315032776588844728730574515269990264728595495904780529216801151710323830473847762794729645314209409885490202454063914681856765086037163020832907871885963080183148508076791235513941827658806610880359611779554449681463896408994373350259070508705470049319101768323670816821903017164481149650624314814100813259667975890786155617909227462216935311131781313034721860715917451087461284057978600774019876556033828137856417951281252571762041768584377235688227565859705926650837066067104897977738211669345590007399676198650386272007640009612800862915364438054968168984727855497227130280058892129632152095905371277057940714985400715943289960975243149735595720516659033635812598128629916471735986608659420249862266038729001827629395983294834968201464279283937899512755183114459782753751019264824814248811166095866675001855505332097688716275650277310886024992732799539338240160899684697910050000224089718345308519380560841475856818141360096605389339084896711597083398351971444450084731851882060115810791315608796659837120006046544835663683612771638197385370000149281409849785343565055762422954442039991121388944475125365379867454816027526460966808974822212451435200685530012803695891869207723360534500365516951686032518889270715771610060082061582553537484240191958592630783704013012474519802433457142415313338510855866626287758812156809748472182437534881616968033962710164635372046334510164352667268113865040587925666211189113278038175333413463296909240279791198709232044558590258779595326256635344193425174821049432023334689510105398451208062997189848653970259800497011062638683695911484710232097467415521103807304108684191980979831512683848774847375946541396115793374661611789852178132936241082454630799900162443172618954726149257863649163762257083440894426050117202310370760617895662789060063180542728332198766381625963942821283155354324868661975870068596921340445539249584479399014733660316789697123039179479594293496169531701214459768469867382306630159508839035819121286257280792643412353200016320464794230738346605355826540527837689307819632374180433856181818817006460502695908006361796422289077511534573596534558383688356696336265238455713528701692510862329623799028998165718918542872714706153245210228809911030155015766746562197383161281289920103683355785644018024482162842583523730894039649322939384480184053915974266319212805784019694737024978882787802723334722227614887876104211635353960953747383759209167167170499179618324569736410454546204195334641701151691739947644482043522391990240054666050001596021240000284951959698228162817400277065900727898578981695808545618751906552662616309156896405926113193100429035918904529976295400155276007384279825781653123555494367278846126466478519284870835855415095465054864732085791590024860388487496024811299512783444007439944880199348339977727109442025535616848794672267157511360985121590915311749253275161530151992660255153652809313956868858420359519487714716110069612180695470767829808829768625546938492918304392806656036800662125710053234874719790423159502567393885602780193810788329694119018710963529113482159399689170254222911216785698711577367974874488421432539444550454784434531252648808341310908424617132059666140625920162911057568464639730836098557714039951389423118996376207480207627414516391336590594691081271627156700597372770344818420741873358310466145586527373992933843390593115620514057539207874832319228544903592888298964889204744589712549024615217670763718138083727652996371362079617321082145354962538482929977649956775298612541675159820706257563235387121488105296987618758082288201300810652747867672826262685376653242819839413473749584749475980255962785578414178698588757193428396962647455101368664546799847738433168030730224185828545083537957275108468979163640765094504286748212254303529652596037916404258096778932818953117764703093010046830542469071881874035921746407259118580136069661238184573131367134804018616172734481047319791469260713750620552220949299806695276950501037600690218726359355081616396076683747535660424829927551709647232966568400626969836002062556728796778871578377148696687872341728932791714101081788799905023582460231564306376152067853860545608395654899764673007761481652374279525209424346262802181676304037362546692653296677191376160853157957539575814309338407909958991588133442283408557896607915470167170702458258606063457827280785811394589203074958189946026071304936428591962095091047095068094312367456947422233419438697259060135312862860109102490040368816561493109472837306340284463759893914919251217935287484745810332902927909334723802098438364330767533748075480523116538889907174918217276486859220489094467945781083369437742386325001086382948676461484181894261460454223350441712577601004933827431069000061681394993068414927046192968980205214628180307123054311974566405053758772775364563716578085159465694134299917732798610322552060491273633382283276303373157490189293066424816724044905185403379400167807460614591224333724655590350490983802612969372372183090472873777247641064770645265962729267961834408662688278831953782451211951843808205859459667704014950713460313108830910585884372452979160710127176927106673312420997033324976640268678110316382372882314037252126023828800936962439870928476269699472635252714115645967789671769458875531202624285310821508786748113418328230917044819793921796558962743842150854149387661947530727507314088164711838713193063470038807236816466223550374762913599257003807701151558204770350380687194954042332227380857427266920538327195314604844752280581403631130801799478739983291951810945158751527505694283307342707515448791863319635480637770211209726428080735940933699612911673043857401985541205085643790297531090073399923343593873857038432367667128968037936000863730995651229261369967299862276911963075687920850584445158343979402703563518533720217973876414695012694828038624750957518882207173479275959177990278763481276283644068007371333574029598621930409692001620828297855917380110708272934936008749055750379035574165151432209148626145322381174259903134233252037757216235045186061124769320024904878365667953208523379220771174212237493158190791844412011215564636874832881215978445906670000646705361734191906533886933159709026574230703558469095588495646559679496239841116221803461166891763371697592265689402284130223226991224647015426410641166193139940884121327373189846744158614710519817994570689882541236773439628473259509619011523179875938601013583414850303405616508694478128496450158918485579705918024563422423509999658596513349312638535760616474122320076195050303618479290921100002408992065249876727242099112341000620451153990665528632560194375906595841554698919967253525006624107100174166993055591340766407835235085671707973301706801110449243935114291543859399550786246668938827573171477831697241669080146135577280634332742698146741621732597895772595223290907589712268241784313748754955250164078889110804431780390801878568601271082212469075328422158693409420290118243340659570155392261295172277397824608386405054815650946523913615915344285157111124673252084528794734694633211684480946975439136295927075359445144825957566819979812756504282375625255304981077564205113904859223582853621571077160561261357002742027713692500096524686078140740177309371875392179950506183430729178983303623877501277967677459828598649173692780458245274921067380577530351406759253829275269733257532003454457975955795433797956351585748024291143989038091164081072719426111358676223089685029534148463950713834878764369642877361653057600154866583646213637461030774991099468182215838491773437928683280078477811950558927059288458073546103923645371928486913605954824922174623380290826461443653271120454748410627121390381372476296795341290353308876179670878465200802890916685804850754211606988840894168853785033179245952542284510820757967207701371984044924956684073294985175764242284603989380590598071713649663160805409945301899950389981321914372573479226754022832718631759217133546256198646461155876841270695738991997992121460126675353328848550844392217074840370161010165918040389039437982603078756764199756621226782482778626430590864283261897586879748526358338283836211669112920402611131425534144748471995042124074407535391447662047981404688891042634203834117427887859495343129012983353687922138698566045841204063217949202512307587342879701200802544258403953711361538180393971231007985979594764969171442880295940681965314250452925992376980856128162297153187835065733802024224848538032834592211348522447428543676892336906377539768230491103613301926587669137634728776988438105738970635809877969845497475762910707623344841028630292351768021830368550413356243464436981534977101126184688765206502200602759526853536285859921901374046649568219670070548850546476166637235097088914032103882205344958709722743502418698484285557390500137689219276382593188394606445292242207370688231532655947684147674550359932216303244371499297485638862045530599058636474795353550348561948354472863654391879199351614983884740645911994258794221927765101126345884072134507421013123979250301174534839750951033758971383340190336270960418950914666810857469675122664997512312411974797362082596062111134585800546944452599237132729352793477979713530706588331139678040385190939600052442257269393369715788198620014626763466540712248662671442329280614509305768234796161235222992266900561305338389328717103836359916088235065593693896709579160794396458140098261686722529615633318245492805235160088840269493025490431332775545771001449594329395411729979220306476413949098852639506003041028543479990414545859342601994467759139127847637162790833407805755638995624626080905183387269083629047194822107951920997606969467320336560810719659619548019020246080633920424777446552781998042642649926686740904556642724446480684880352510218903321301909513178494330966028509593382458807472370417231946658503725283547898939327789867282799833454725586840831762882165288311825223737713935600571196279491012665578671695161700408311007594236702748985387619029558106890981042472234879345779382816107840601964550855512714397706959922846774250378593027697899821968971085323550971080322545698494458155027339701940652718387968917087496919254102343069981845466197323286941974288171823242759289718699072762999192224511602051327388674733754228176134051908968261344266421508099720111403404171237892774927362103599174648651775856467310133602999517473142014972572031791281041660620066419457257183712974467618180328892714312890949701361293045424074062804631084508195239526860680187961478012463751760376894092007412615155934014226681678289273947581324675796438959447816295716465083053249344721607467742082923406662329466069871679948391768330230058056809374143972388094983956842647775637230096439149851411437474850462125954926774796166379584754137831738992344755275514786236307685171301947523399615894435900363949367545790791348244431766390110552083298715600072769781424770122284048868123519917283227445720135967144726714792483497349594386968489681889639026843992898628103259361035943915675491991916295739602636950806903099871427559771144494072693778675693968037400204698482738594690676514597301215074051005662273633354194027407342126300706216863964712599427942255073684390124482996811934804984824934282553250417648562625732298779606520643951760813389609298219751406144234772220814165000495113842378998999495262720707397793555766276254803735791244283576128073297621264128377577380107924494872775173429518125021095431354652229366799380686020211559118250562526387426112127613927816586926717916099271153949511319047828973808684149097798681709779180195994784978988417663128193552637277169263605191722348394117160807131008645443057339502014165449901866523251830118765519021185270011741090632866114951321071954602351153299589003944067682831570732177917849585289828576307609769389980253468888961586910378656108964610968021600645435493930782314809431303323117430100993181816196124377503869332212175972974944251618332533376404414934318727777314632326458691820458878276898956990932622211052537303894561061301932747060714787269244750392562954691065657033020466728549832008154943801696849602069636870839838578902989736711359844662805008125517542948279593556272270631005838766714277399230822256237060327022759497341978720911942460051470699278894335965058429319572500202791133553528895191872730100742050435869467744197481490255389978586884773400565540736583896112814788512248624221940056084448719787068808674806642161973921201719977911182783613202875809417174760443717494868096847195408014960732928799368555138976286992145186130135584751967237641341803454659076689640773797853068704195396453002092729506624379827518932055923671205558389717074195970104934708771175077820587652761477696107126054759777699803835036033880466839495700140881863302258743315140033269719092997308049791675468011666095010508475433867577445762325280731807931847666370306038919730430015983217024119873318469052550545780116504753159075461060478687595290719663201336553892025795736920731231396663388793169921150829903638454978831785176143936827574964642372638690450635939746044592278369366692133104940866151582642508359565214061670537976632360970090183057169002336839099595831096719868320035510898453830178199907554760909556097239068293218821871390623525759054313981082673408798236421106100003092258553091844205207980937349879857941829933855593548140463233903575605323068435143840183240764842180858791249154212204099961481056958948532526856523118803052131045794256602759303771420540234510692445828167636214039256770674331222464605301975087534424795401081911724901388918972202316855890040974559212117383874622190434115901076812845754339579193060503108356470899444390352073637819878371430655587681936412068972394784883307079363761380579922599504354175367443033503694611624584399541808166443722739850613131759533492564744477283218722321025325663829195416316523305085552945144518618473477059860696203442636966993391326167934621762824597155231891032998919766954553066798632413032344668222421012613506341993794247228902686269010356291567138994137493969831525727181872839836473530730575987489754781909145022376790266575853331818899634981530274306944362613092468200643579208652544428657110836962645517627821925458531216943233564326902106686382817819316139058450260455624024799606287327181291411187324306953097043811486089634451551647697682267807575403019830169627183400813413791199802117704829659155858076276408035698335528075150340761785887737607305328834625709536481492287799444375255693770203335442880642828737048534783992794859407664186434581503566565927468757257074437159355090283040506689792197352132680595994415509979114958151913354965743806843569906243062740799337095433405949985608356412868168928881224563686817422358077434961168700613578883722619427818807127551809189560905094669845462884280538512957997573611231459014139632989621280056460168740811748062011939399365893717436030775477905734730405934727674426112685082327515334001296265572569514866760334479828419766293231529364591034158377868462882788107411532280304147302582612726465511486447029752052733718540936875967442259823292434903908714538650870504746930999427635737404476253770570325854429987068916781578473987803776653677472757249782181423076846732191263660774631438004486918717155000787548897039893054101976655115824921329373855657389933482694496979240179900196228794277244658269556470761175645859836467211736370563091865691334267705136417949751515520305340942209011473405683310332545832976327463052239114229334795256948830188645340961626287538000521027455553418544916067479884191920736388938766008830510769164065486940281683050511178838576451411182190835407291711838267112387917987223547941037142000916451424938274552070746131368932661367719532010034005132812464472340187731217193444987968561638769904718851444224345830248399457442242946128662420803162435355997030037177962768524386222608557875386134523986468855545697351997098964126996492870573035990725192689300201924926537392970391413537642845533068341586435188832145415526463396262515429145104000129033387584946888067660389355569717109274554056997328837492489136959022418437992118947327386761746819596325985328033548727577163619821186085901376019459562040317203211258296736177221597309609546529351191120063617999515387808841445466377034494074671789412288342109530831111145627704268427875064020395631195895175391934819583984808530499642826401894801012084669628107009446288328800941617507761943722323673741177126379787779303800534844510066996575392724127888900029379134301128743257041526039960736154610242163876299602737780755079461923601404967430062171907988274682686490222761799588696018601384504214273614260572149288394804641103673908834051154735272959220694469114684611055950252383796613662863142453649236995219584798540806569381479173115919702388892197571122183346700600435659976213768269265522315993091623506460675846713440610699410641200739546061196167559411258010204738774023553494056052536441373651805619326340933895588442891741792833990919106465721921318433549533028360288028090926274042105376748705520292157253735536167589569271059568861632838390342476032587343410696060801133871785160771847861771259689025411879178488204724514600855580129796837273281720940902797978789500706603752631951205925476992281274104468881524958258765387774238454091363589921011180472644741197988715709933924215733226035844050715442576752596082417990622301639873635974693301653112478770239930497310947906498242378825748841168152428684464445245949228193192550372702780945269986593128604821548266214747932403915196789245774808764621998899062295774928683316112162104210227583205232767262551782509032230712930943501538516537430880161045051901230598472752317135990629115718120740632487976665300587499532073713558490341230385091915646925742823631557390510107398224219640282540139327706258216674229270172353468805556719333156706348708259693343952095052293385147703016785106831843479017111291194373070157699230969902832488951262356527739501323103334976971026772478331379538367361540616874580142071128914233280082042552609432752494768782714226712317810035936772660395409831149025173328919943902593218564159801536622492404527893460368682033719797992651536615883438363142947453714416932478952733956168219660275785671893512539811147198414966587468477184944651065665278164182349234319830654437696591097270739841185986372339992834821159971453007979658998639363215189681050041785595181105603190419755440394048842838449777927334152461710294343540135252977580987099633016133261390515422117372235085363454328375071039834889086146000540406306437220138024810010919846839612972170883269794741170555043544988574230859679134160379311702496465305518881336711253839076804950814301545444037609328497617133736418429452303665851977876896444156011271671955208842330995548347018354240330613309384224812486617527374265242161515951677960391441212580923048465786943177219953372491772668174472877785400067151840378594392857466673178454561465926107304985947643832693968989844544498479628271661573880065367199926638560901508670221553161617072486230943259553676127230905296492466495192102758337869513637376304646743364085891559340290728492791826274795085795946435538090960375260322666255086294213542529426888952771461495226656691366229164217119904143441705839814502690391792883278443470172034034869884544529414530652896691383735592847777999768133324155490470721312363612459632508600628960133959867226930990190379250916106870583695372674993765224656334695087431879947224092147309350792554648214118048203258650307064584772763208165206495174753780387191991764112446602121105548786076820880247509377232120089738560092423247576555930444622384100027881591943002331448758210443790271999195158783409431278420338973181909092746322148443199645947231963369801183903648709773560068059213142217889249146399489619276586129311986926767966640538888683172983862417112190798504474611020575737448457785581214383051314397636178541606057172362232169516390039585946895162423961034613068032363992021548059239280710562128315816331305073631883488595324322590619615266623590640000470769771923606037713663571654825847338753932689055963254846002121290833948826057811515862584096670614862977755561959025710585641715871390092769309912076459818212752959238216117229828372589798564875494489471291331385989582552780495223899726790156919663440637950015306362604980589492281221262455439823498634652068130849521238787614286326170193110158019041793776544190231122153729947650119690453682514961877874575662423178836845680920274533281749054092140489819693775980168547877803981666851932054265819801535731968163972619645357697610735251134909812562683824621937391344019276792428804787114473698028980895283750265500397061596619296053462578542490288451170189973532509649124489465033489410950393407592886556499956181420952356665496649398852123028172473007546274359543278193478089838053501307937863048409302231628714018835261619895547552608918140791161062190147011875051618655286076240883192246361199495175629631120431200665075884223963882238866742472363601507793007803824017513240977255392164902795070583589794546953673675779945459150688866811453940496522546521594368497875648449074054300072899143587361590745037209372522122195119175733684338267591731555579828807209704201444052357005520565016073379960404065289978345961992143402018025736424669296619441248847743253632033962975408633325048554008133127555235176995631487301370913393012961294958245453757476780328012054807078186651181582678139143893841248916777184220193223437751564589624551565690274095800847558486303510824606996565971382861127632344145982919926293538864013784491057573054527955452163036030879276988006904536413992226598403931959814958183977351255698287109439226475349488701862887967259528659740709983957130266737278847290053808430911989679366610472922654510693503949898028550211918970537945974098083666601454363026908989681740160005961857212650772830730059359687275083068465369171472833534335083300068726051178401155977226279958535821318838906320385743727826299754217980364262129322500099950427799906532040260463371756691888210793043164959574083304715389096161473445397012686116965384530937710952894424709956620096359657365232870782889356845064357975680057775349061074354216618945202244446231250373279402661474888446754945416284503048990755529005350403448960259064022056659413963403785417041521138280842940983246718108170084285275299176583910825422621364722335186033735394420417208495945519992834857854850613014745654748416595803236852320766362881329634712506637788919684025576236886052151457191846210968292498008713065756753749402748421271680831813534391391775565550893224019898188412827669654907592892048622590229655121881245743192372286190965595024601485199921166255647172596290581880866911124068192722958759589683405352147715647392457120157838976477555572631145155976030368577454123773632897214979445493858444379263381245037505949856569720610957198025810858692244796861925576085280835812749949956148494304791221256168209050661335474029436113145461037986811597578834902121812961130711523620238754124748909920986535760573422365983199082802174497011059115973586622238452998997127893136504599471459103453681202266356074697304694255313884967065475727314922097712906950879200358026814534603016117680855745316506994594438606926325687621740833573049063440774360587724278553661282214800150957642483306447561267622625137956157638782933736256972798156534964257624114733999678891084500862841599856813594670012445089689026103572649006821759149249580555005714582113401533897568204756931831929051090273238241832336826366173229946652954115051534148441217931996284541330299040795152887554649454865856241566084172142466130904776190474882164521970655184978526767847481965285091731250428315568134239412249776123868175752193429654506485849318095699608349696530403810596309434402780326009558226997516132068653208424392625399673871537005219907540142782769791618969710484034700021054033877504996008110017870613295933736526038017552613313792501454521350503621690746438522486545942036969564145859181328618316379071116545637074113272825901553482914463303460499139996368088232050834373627708834520632497709872954174337105015088992473767033937036252494200792974396461410765270526822648672884698085971525081406402513978653548550498933889533632103683045965181672603073874749367821703157907607702855069223258078395539535187620489638741421243558636365546264705602352088112536833835392040132022326253992886459123680266207735635287404630599235782180651796576886041949524516163098154451167957939428408594108381400483104527789085881049475814423694331832703299879441330447902331783411946686837112775382554368059604201886385641541005894715249467615871097753273284646592807515644814172334936535775840638691143005224814330121033937642736121939216702155261723010350130869247542762399663662821656340964488454935707279223577689234218531294370659011406270269186032858517404819542265165208124769682629213159696541684124007048161462874292940689349575255582647487698545755477444483597865198454579127844991603623853288866711487771203481702245786932359841752287153885100363970121741008024108297322867310889090404908920413634205731035145345161167320964329382075797875596318454709616282157226725615694407395737123299622781223845924578534019826688815810838215605819704805536696922702288954694758363437242173493264288174322673436575894387348185920222573761025705247758625880886485873794987298793387154881751487794871617324897766177048654651510277806647670757320616547798331096657864759053315000714898130887650540258350508643279214250433499580047154200162014912053673454515402171034061023319251970839231929575957459419876477799833721128750053003126893494089580376517281390254419544985851409892085242749619872702722946393648064342971670100680502318862773348130167061002953986994014317572918351001593814249472001664511991971891095099892626429821974892135800773777893495494913664303917066711345531560707817445659052750997179790113567179055118079992310457929723602043234922463758312976112380958624004731761288179252240000482514172860506662055358146732725203766157852334456448967019953461259949458655537860522072472115074023311386426226354807040030352804232347379602551608055749706828896461970571988733749664385584210414393690876952154297522987334097464146080387715453249204735821883676907140265131607892536429472733153620609283239162418448626441485878501500913280977163894226829216483190020746903047529679027051436096659609277694680498217056008798775465975699317437971216077417379820944175276749212469527725620667723467684290639842052532636685422208462928236766931851891851398373376502847230225644045018032751039370112111290032669875636560243421534918182003017038296468881373380284868001531925122381168037717562264521682296912289264047057685658204400485346005824202456415316503269642561152308382774110457231418032620430744359930584590537351308131789723406036436299458998751722421142831791067396454302336946720875749406591458098494373789487696214158934480954432855745655286559915758649609846540562363804086887156789736252086384609628220427864121871372993295533042812607448531436412961275705219083544633198999627676865925979704329907962075366965573861234638299512519004658806317264776211652521686970493543949521449336487479953211312935932266593644723485043042716214257889536844325971776851837120390689541114174160552883504849500512211261714495532700952462446437689750427920593101709006963966707207203623314742703386869350303247943821772188025857515484326752935519293986272001348673575416532753121006584621558784539065234629151838571955008196502481994688740291801043863960916776506925695163535337723018464357059537958346269343217366196524463384405743361187750921966866117010131483342242426089698861578736661310189687332138596871873334099703606212550423618872488542120386594405952544181184119840060165899140501871683124459709667890145342310419950557682483326905005798196776926801175752588670593313800365169579888499953363460913797401437886858042286413506967121652836219162210932857998003706442593888818820269869715225588353863817908741925953331408291687850589564548431280277193832478021720310064207697007399211289333989469346043082852937462900317861917082816163152034675206920247760768791982380592564199065800478860036589994571899802878964654793145154095759217164390615352382997727107509134670976443220582879117987962906361024546411952870607536837502250732765945490508769870190473647949337960589281928952885217331696129403747547384012433248375850164666988657597685686979842247308968631375073606258480989544277764214990920332380807081395313606972840682620667981029589502432922315521707899259579199338323872803334684995199812445548274514180203705661020615700348849971845986867856127906082657767628603461687115209014800490734112141310013318926429467185189420628452435297769633738951265449932904501521892629065407171651296455201549247204566232553077801906427711079116069780662995658194870838618774258507208209296890563700657406573393913806990528063587647840953723364356475896235982485224160077882065992792359907113039818671200415201747785143789552187402802829942175526061371873557035063020199481155078476727039174758318626503722357153295499522730207741490166957036225884582232349210011773464822632099499237334520596714230266027956894001431864946783798616121381544331767994242789523676187589534848536376158586825434474031899508799309536123158323619838258458281628565336946528711673313318870455409474844813182308254226024520717482118409972190028813481644872425742430510760266902693076304577399987593847204520750239944481878017678985180991505854968853567684810658130647069567252688409925137628254274785774576470162299842320296392142462908795780520081469968844280583644252593645312926727955416419501458467551884499265948993526895526548689125914781079802737044377497190352288838123904834223702613438618668326441718289155691825721318020491399092385026714321812764623458568717569266721046798431976377177354922326102987144778160009039720084330088517105823980232549549206608328622647412688011677677475120573379058997226540568751860270114355491726786577872606989736321690121803907241547784257649196954090201608366972894507308435167993000901341441824873807257673658548588839603254466697137348446807944458175304766675671777898410112686379797413461758655246695432371688482657578262427013284243742149237102319165229439970369653720937316308530442769870228321655188126791072680189822551974780295854131322599969676688311459375741692808122945615321387391082833640850277456066999044267521483822629925517780578257201104756169434803886497360975330933754915758501561312987391302339839531871103884372791427460151742104359271908349372908125386232883061119236146726563425073632830393082804308556144131987565577982655064254745316585272159446090625576796434084199892701921044707391437482362839616600309146757060924631370449180981504173997754428446848686851457115874777924412064998865769777801047699509489864756609494352741385994232621446510396372731956118647432515342047628679597147042697771936676550813510170980109672430428345345193467166640766964812980221691981613086256217466565184652062325250113309696000035117853000679370572109632792941341664908858008607192494613040512991405009398032261443436165957684159865725903073243125806915589621541077607946120633770121758919394901967738856261614482127839756449826823391319722009150067579009662586442519412353333489579807135202065391585628333349561920346082759955721832452174487844305717000272625254978779491221468835348066653128947736439236609103968022871395826283825552515600427989532259013563718677054173089642557967721227285842909678831329618687366117051225535986033567771745199816867893920940739730884827135577103033468965022831499228521159743028647013920800651366647267797560705751657891102670165597768698844412305648393062396487292153373694744147625306386793303806769101927896055304303545472287138512658947070098951666055382653816507507353746640101433175780958748211824583623495866182643406792133476813507698197077503684421319457822037258428213490180878895883354287412712492598455538775603952251556277438082361221793204418143120432398446273296017994119360898882275196047826306158361546140876583241904800100933792105867421384037455004715429382288114434244908294230155211421788558619901669093760869420259747232102297127264861554385603413168237306683216957861538746332465467592765710080553560572430116897717459482844340304707800981062834758019557187865376524921537290110255326893147660853433878981627808056607030212223306233811501993596440186034727109201844221529930158473070842382634105706809331841876463102017439293640213522581035424201285918139959870827049868650676018393162008466705529742816364766763767154784179819711319531295857240809785768573221943665830341238408725651729933407217681648381534709212374606608534455182764537352199071572191372743815979787964012677491059222016941761219250817164901740171047241871214482439799804906329622448269698851080734983531664165885899640047256813668203092094728358964894986349850840288532954830137220324707972723555406113178021193026434183953924218477713902904071866986425574333040479080727538173797063213261293287325890816428672125481236685555201818792152957281420833985738257203098938986527118080798713924517292147214390150658049617683148328188029148498719891816610736581061549744466181823577599539980798352736516176999383835048809535291709154616576965541709217228491293065373465613095110453431350227822423552911289982885548966128041694239595257528386390345316766720411772258918751768951808163100706545094642765083694497392975513449942397659221590690490737838769200978090076691389598990782679817863969839543788094274267517388374760436280441315396277444078311444585811808560524383526996103357388999885640747600753387775398596720230079791864249338380141646994203390230206322795571638889231183678557538376120172547778704996568884640046738552794807404286278979945130867271154179883404013055401521803441670491091020817766396913316094956338792423698605781370547076301152281078679199816233431077938594679606033731863765310849082839695361760628245584324146971570366234993800188903180527328506218072284571964430950883982198869800939840890799364009824751818308473861140127857434533996454525774787245444862185946729352538337365185515606010474863908445748044634725306453185605796841574540016162685965222583020125714577077560123414145392771522417829131936647162314059680198978818392205455497321470726578375316207219133999248058566604381977944030044976258670634926910742547617594429389300815767784904723908044729993354547010478664109467062228448697222682261605425552438733309364734249486106461481964311581285983343880335187863314205371847240715319104145809327686792608099380958184815858173807763686724823003474673743560695359689674475699451799768148671904492028861180124017322211967362779722917462080377497736332359277589220310418647880510538990601531096616150706901197536443664629836977059897119970952158408486964630930611446859370711867335606178794483182651027361912105206230581304169054796690704764795101305501222781261878056774392668538314871153645708790474666912456868752882949410291266016632400379448217238313401535315128717417772769102980856110272382663060277062950516033722356842032617014519976465298196756558671526919350850696057697024150469660678603193990183586688943577478269288277127321094190140504763469787941432479350115973846634264950918615396458896137232294995140464528459307606399918127434920350316551540610679171976939628799716194340018011874128816570615368695516875855159208564683178591448990075908154225662398682248897475031181970258449736694069052242606780286436776588828208079813882246339430581749970805362754735487354655057888976979982773246270149273672127324091883155344143749168784452606263529609759254406436505382484730779230323466188829746014674263209615353555307046636564326289366289661296342568983055598709758998044273856398355665098941480008389991005291934795437324250250904392756544063220611513083636271753564729800589802166959490758980538447118518230850596296578483335317962577508112671634088103966242879662911586200346637939686568916518989698452691046059141836926393872863040931500773323914155687368849009677106435520751856947458346615174267293414351456072076267065122329997233000829550687614665368838214227875513873470817689096149683829546865538875894327891616825635288698189245081548396679553442826056179727318328058625775062852635024630071579051395555030324404338979002751850514010941278960291896222896011012260659659162195845617473165415995300785095114913993283320002020610156113059747660012376320415963608709250588174960290159831261352841939640609809803524062447977958019057766597464023262430986912505241215992937878235425776761666564713599352579779084920834899892156534318639654278123980215097736250914763908368463535641137148826177277463221579904664267391255722709737358031571881197180617217558567110301306079895134340696173025144697440363905410811649810852233449268027834236398947767374454714008099174069609836697319611474797465311025765997471405492740253060086278795148094805282015630815862087985459245572683705604635157267427402739888274669431975900393868284120392291863002971509541655524827994624617980029715289836128342539739270149370802904857104082259936102918331270399615582245488726582812197146298860641591928495569507808229867234596184078516280612959759855047898695637156358881043683771708713767418445042444571633131352140417172545660168576301008795560949998699838032987361223285529964964218988865211952183140176640133544225060192470291711284667900074902080781788657582374112359061347420968473856497925328077466670277560416634828648062948684232144497839214369625415379035876014338614078296571571856721140027425535294247262845313620638865965602059879744727282360898074727844224036657135438242388196740483868525185062350033305780890140164088076601007070122808779330281752321253980621074107068513124835682039998893909349021567757054545392090704196805382742611959249341159928046614146842668199784404085430370472636679170857661439966753957174774592948037336162333389086784949011195596716851511941838210624848039931492578809519042381108115058190117131433223297945978292376917838310869988227829756886685408300740221492736471908120061896295970977751954986360775208378000335807077211692307630924914469953346071151807082943297711671352932254818243192531572373464138815903484802528552664870281705135019611717411118551292769483175938451967580089194159425215418143437879195078940621002428172630897885186714621784418026679291138364983039555670324811685669355942538497945659721901001088233708830931482820696781988986246683226139607153822980214041533823505123396109258286318348962594729127778169666188714511640480740651858851120024732255907449590487507964188432898921102702958887014714709856834717274346418309983726084190581851061802840974922450990708925322535344051372842243117884029212408269490535705112829372992142964661035187809716646289388421337182257963184970108337220860070501109733370821517202653560001092313098898297193058625677443318545036680718123000695891594947472988431756290550615105014502718270244760920979992967463795784975428150646576876574849440459235487443029905996192224310537753143138999797996623382086823596003043914832706657792470069577826049957661810755811346596862214634055305021814939834460732801202972640515542155029179568002975675147528298719039442985810342051631786369775035090730299019023524849265986783522928510112009806288137809155711930655039577258830144333205500439079396060049287990697779730492484869317786230548089472825726747951460791567327224913458828858388546610321703352977566960765404696956661493284033387975417396859765531414531805722802030482931059799810927762468080206657818534615409825260393157605988746796089962268930653128301472461191282491176766103094087279983962938273525762416072141517769753406786685337471472383858936303045265788486580734107070159659844002802850056444743425448765636307776471723878757833205402270379903688866828517204177543444114509143009653376992536801814034580679037996890709353546613800672926929983217675032228068934841010356075351991452431291089537277709791822032650603422778374500380705055400609509803566152521811034923456824639056229011192785367315636885127398582745740934641023342806789437205737905232238109555119200628535933158714821687288234866826772437450376008526017295739268476421566452563617489838005942887593798593461853166701669305324938515391114155384769190857715239758583941732410198339021768104912756699373114235571688843175973975826682200463790578771621981992989119954176708779722308709818346751050352741908617352998762254533895323307237756837267807166097927785250321333494863783265431133302814265223349872081661314570555046971141109752617302772531649192012412908303850480094577342349142824337624589845981323460657547450199525374770131858500300286521472489295060263822638459156830752208644306371767977607107877275953837910338561079020234812963211462678721227741078305143392966052565429610048578381742469088601924402857105907126547735656296203124649878784505536976755193064747286595598400636907392737084521925178207807255402564861699440268952788549670697350098441780750935377927364974433938380762363869351333039668240229344192296176249863212103532205212932811163636189616613428186668110052998043555478769210777046273772230605281570987466923365078456110485613457140107850957902610191026080975972859048986787817029940285183938076577792692633611648439817435196504190059400825784694119440081942693083791322393545966884055257091324057300058562976571328869345077692747468794761095950482539265791198526646931303652111901531418947409804407085534487989194305015884576740100431867971470300017628103217338479906499725731801382227742742196841065400635359947170682588238335315561360960719059482780637396939681167428970493591167459680215322555239794352241425984439853648582779645612661099000721537403526407184371193124544248751257547402591746292397495961169504024293196172918456101973588702085611662651810368202283322469249812034692389746668084345726414190454841670929727566027699043084080403261973115103040639306482299232791746280629350475004896379549203348918080656211330485190291263726899815348247403821340387285816906111586055150498042072628504633052833168432946517701364317929109083609906956172103476585464649504021620086354561131733196404352570716704685613851054332723570602254375265142557388452221975299317131000607848706034631330146193363508017090169141827233362831620543110299086150482911649634801859137534085255505465808285151178686999486691527914643894905077987342239132925077323681265090543636896759518324273941551504031198815821198717435376082480398023837471793013698751389228531071760254052869722316443133915745664926767628514037102670435861066501869685464326049411860810320333957753997063412273919157848239475581347211774545934961951258390248068440601150136987102557844748442970408948591407286903973591538103673896194244995470344380474198802052480044679349819196841657269382165763153943727639796978603750017171686605468267060563714646546136293081666478208916205271658032191296657286579231615707846809256343575443969401818052465532380252297705046748114822237963338371475453318652552288039615415276370695100817044932771291952529224046316155509771796098516260067495386694693321609373177785053116797153698981275656467856223110106495015653063099810111335626088282539596024487083108541779849910020943161441906151938099722862278996982543648294355106045561402532899205364655441613048934885746805289510839229744660838796006192874622778679231481998610368322654065919838833559574285537006252994874569216009799384638201493749245631285344236026040933652467590806776167110569752898903897737967322689169521571678821332647199968134153100228915829239748253540043351731025306983315813747081342118199662105141295665032912167438007060401112530309754543376477893870641911872929801506789009557005948495337238632453450045451466183663085459410823803594015517215023342839685120039993990848213879394754010013533570987167639725642864952122603738542650379821550586861450215184869977547869018812963813614038935447037561996231429962582230802524466482897844207997793516659048005133151249983041921510166808964033247474042951787693030353088643067143498901786393342962165636995229879541488320191000404232235732479097341897325658968806673667273139260778771653651935978672116872184049345556648152804005484778887944663176215922583624215737349204601790874433636027090432722515278219241622717857190835049054258840171249943001485790642462711539033440712968441805020396631670928968088645422705072534249238854993669727824915219850831640235984609114422148877644765256526242037750861918276898848436126074690751193272047513678481538481711653035100499076137044147231439614255449145035411451276569876285170407421535102541693869950632861271034069968121708588436104622234219291551621401793716976900921610234460965112636747806157514923540948271085692506021883165311118914764236048019430098988328594452165319131340465377734299094258727553254868843594636964125211928141555563242930780139621467231672220041193787916412107597306559919914463984482661748661877637989422336618279339004590904630649797055924450309505949970131355029889105833824314965457896443506925233402544229239327220513861977696557574027046291446443044563664853337139422530290057776746286539311243003135873049899613209166679576354221823018062173446216945817434538073675224348835659786078206367369901519739714331899559812937049541351095564081221771027421841260840854927927588758760054329598604477668991428968541386196916369780723621479305321533908696212170693527849890933993001116063565720510158767650966611369831008576769306196925162757426196056999341325368451466992370396081614691656580345942872361521500270198806150144518228036943724882345089874416491987213838291464288077742315838823632860498149014833856251790845011559350955745179753225651077433832499482727828504595989687594957513826828611512323455534428859154928232308243985930505844216935319098783898787605986872241617117250243449305339147419059383460027756326708298393750804936752005822292072728699568578389421938549611669114965625193865917098981439143147190012426494423099396711904657429522200826658269843885289964454014433578896516583664525478912018727573375868536099620006956316303789971797527534519845392540926765410026132982177773459673784717613450260633871760796907530321760157674388280966915778842346364022772071917756394470665926450954990795701001926383223080852620211188192217215584226796704232398848539177994496352708436108724101143611863317184419557238301061476465709260711488160892643458266846565001407079223402133287810413760794913772080221408528220482908558415386507558533481624627387992812332055382761973539467313714093476115443644030241407225724855269633581223816839944273517241206053949064147422837845129671602794112942390334388844610269758051987877105672443260181929558641090754206753027461111290871077526071655965168167614654767240476983123280000640077891072158612447552297957790191991672078608534464279174085196645477679790171183804774966834549341531738225365791889875912599057710837860998327800318673790439797309078465312367352051889253824496766609417963744664077593421003525117956006394716048371914584121624931423786132332376082512675399541997150550402691346513298954066322370927381226925721684046813312080424425903028235266564279393035587093113494751607944252357909895064611991611550595538230768484390787989754425068341535439732852246834935767937374243515757846341452704449547285987118217651246161610084063010540244536056196990933909449845844961983017334215762322951515808772631568611571677777337442749614292054017938838734207156253146732730926986430453603206258006910510184766225604771945627085741791403029058891183757043371656380573006177612819701222878088064504132885692682907447950337074300811077616661191537323098722273109412989901817947064894242247377994948940999394550583401374229783992386315059368394018191273232734217303555636673005291017563613272032200825654325586535150132965350317975805959879188355651899216293865816238913158551256324751818438413823835083009294639323189554242816808796335946660924303615863954580633123602233373400568010839699276469942042966145859009516443640215863353224761618976790798249610637068490379807521587424670237131110572917511622981896577379498224820933563106020414911574917964999183031414509226572614557043797041644885314545560397340683587144175090519021589980864293788657214614389377511869382073833210383048533162159894004789349607843657809782343110852307648956383845232297370087201711083286376280009991719046325891907179427507889286803696730283229449238673653517227560208039457235252318915822271589044859434095336574445325261549980202012195155468179580224870014822319991051154259939069360005443342604230642261319106159760508494599832434199302184802040419735543859073479092667277391544609956610637212655572368263461795593808313707866479382774632423617739295875512459410315282591081012467306092231440519963393498117797794473725296709668121944097362785060196028913750266830573933176706791559384409486444774035562927259676490579194793632245943050511280694653111038450113560853648974470432186673716556231489829032835225148511865811650043261192607939548791075958949066591467412526063949878113957382297494315350873830427664298796734279751566979876613514627624689422256962824492020648413335074958756258354834291118578998394976767251016442808302141105803722985229243559231887541876548417441364211195257752736644114367605482644132194842499768110184767954826647911593123777521723170355590775010244481737387188743537017466397751811769776288549331317506683668358884456824731362780861381355788418785131422878029727757492368970717813625562855536439135514982788336554109250046690943065541840018547207587924207350839900731346748813371949777875531205860110267473606762415294545384884683106416091292780725721807927317509343771193814945393339000033889754209192081113760684121139543061219999018464109405695748785291221383261608454279731147696212239490170687879853769235910289335734802804735510406356543805826107920528365509937705048887834852562553262146076517323446967910046370552654569026654951051498148311757463852020601736115017334310759195071502992803746040235651611285181743834575249748077505485918405231483661920724681016700581719455637687954109890973505326587977250278367430235515091036564750225426328176723123223070689236133327386671297491569984649530930942190782477416430096731975536684944470886259434241675841257061683552024991335538682039902302129571275251465114250594725549181840956178504396290629526764159286538116655363689847711769603780283523345511407188882026862361007809264842692128336492435305509627823119712963924519847216941231088099770382266209583409658284325141924815607783851260998621324499194007085895799211974388329826290193742703749528743730534323334482269710451299397871326873336894572413605471628089345700004559317766616552457340912141581029476693321687806750205804196491505032629647191929373343436565597474972626615720904548724644280148310721195356202681904786696936504415465345881149657757068475555094578455874783408513231471506341064702155903217626316662194827072820937256022980539572742629702810035800112529463666202064467701088848841941073023644123878263895280442490041292748955708831009370186729948189661701465973847994996124540352339297397030431041423264480265759946031659226429450845663194576656040808023588285368835845362794090032391624771784889521286904465800539213683255186362848261833251158468653304806018359714894124603103529336577197602829619280641715284295842808454277534775996545425959575415190835821469092564969730155794008027512225667501387095452859516953399500692800828011902173818828743374379472677829200727652326469872306275218441793847335269175772329384512827431830205864109842083960494067998065883743953559116082021814150168828423642248112461932869839699103116423991083411118842035100509207884661828034378847399124663965091145753625928097261170445146867094672087992536180240098090575212645466824766718749420131625689564462402141910285725805083252625362429213265660876690453387083991268011644314984391942698826883204753524295735100557740661762238960729609360737670635610847077302224494372828478525226421127859256414794159383213489067510929359957992662713338388513535114197407684971429896222497348042213460899992573979434678504419189975852588920447260169628820042496618024526149667564842670083187921459115352507783804329210254684674968039581846914677949431999850622231149038185285957371193695667348636522241510046492160696696937686463343471020918490735478782817013965034770138858944344433573232472002292171114291908821068312713849091992795798825888216572150253142022555602823138169865719019621480382488488244026639899033706195933357659021565840476535118421708059856517454284866526502403397640526926506955726147412305346526221792740328546903395370199482063840129543654224973744779690185694785551450900882472846538491769577708840788703435112304512636775288607635932298111510707616207201810198303718305368684642988068094283467775095099735207371302997982706900267356374490196648103166438314603211175441777504689704937523168722742230556478958812506205740724353955763274652544603079658312191027689525606806206329629574893856722539468538876465557419494362600525119580673073385968584070463594387600281201484386392541465884737742406740021154386533337290079239829883860166178585463290689560069410487039464469449847888837305764342853706813046060484628559334207610951119676630427517162922247075447160381884382818777355073243619994323008523441160219583914293337053256337081075304060445937142777003137636095017381401664059804829574464133614601430019448113867512354676603888970815559031536463838835357303020839079609341809685658393989399569561624537046783332081617886704087453286266564596901402042509023501529657539619530357182537748002504353732707927081742052971579591322940953324724098227722635100976362414468671056155476177216417333028610131223608240466621299352811340642248369872510788883868064625505006405768506688092348774663897709020697164731787686502724807415229891660510556736161842885488908574385749860779571974506527490470789240630402188701031671510000475307215499884781364508249537507872218452816558027929006864627683389566676063562969972754387823496439751014506176305208541003555741753105936085081090877780420247838911720475187746596422681058997702693562624443317080856662239136533816425190309902280822301975888462299634050407475476883951288920039116219266171880914255798304768569477091452162252416409353346561470567237282968629097433018745622676706120845339506842007530373429047956462166474014840353354580550597519014120229657733296823807352900872150532287248729064612436985388419644586104778353651459221075376082222660760952123021142929127465188494036913748362313641620335177726902076139381204859246611656619704936993529818558399316554813585337597500529242213020775376420564951342935853647226740609917019725443434940892314369588332655990003811471220616551630782230511687529986509042543750947261525447566314269910636387374072213371550570805606690725029696798979700856265696696377574236416633718630439110865684895824777024648432562767318407736165926818692192866308691399665399188116788926073722683981522198361925573698024425707294012870457237433100545759144444461311746520819115533338990020928578279723776234275085353027283509176835300218524884116681298016935622348860910788266677165435044788043737137965823444799706193154887354559621072315764773766002651515470165292356127917315707357727266974902578491095883038494816666738538326984531671093268473996145483618911774756952208435710029698568418353298732955563877339820946724994365070363497463823072354327755421549136352534877660840793810114147602687775400822856547874707400011062456207812553908867434886946845975512976922719652303458027986040355961646207613060079658738686999913948646270449219024006939804711325820239478257074028933050471145853797498992221882741122762944917316817525470656066974145526858672874342797233592208948707025596389014877180844956345123879613851799870328507810339275877046812095024228875321279436793251341086445658066528542293600966112246012598601991311820358818144540490665090250236621958696855202809828269785139268742485772053342888182772956891478013725831125444159471740827527675435979880474038269194102495125233281655203580919349243145862320158814284898388688746036575163888638338398515718518895913480090698993436415238590157021988027576555437465691159004343410036761015029391681547814288957269094500285563678444219448007609243854896730849703300607494220112141605758654523213829814044372233117104926557862629471283155099859242710248287350283645218617497461371343269392720046824929057174558315911493906542685218886232520684256111886170079340426617237969003084216463151604199890583188509243055739097967037761657407479657768559024050721455111903907352384379903467041872571612863358718441914358437073691874702225228020279912806185101738429649205399981785688969059207008136406736649104389213971135749451883725935723250549953770737751397955946345637924547726839769614818566019685458969744471423071368493643386441886837168085224015876014055972398927811853796357843146809260370540516744511469639143937507775814010585135098241000546185219701374415740047685795862957930382034645606461134888220874021991856568720118008720157285289505134842842037402888989998040609785166820169112759718799607838997500988942017005487377268272542043072874190372691693645512900159145904257905740835884145429945543030177645792282578830464358072263175405927852669858447745399141818315955149645388511614185033550895111361661715327977710333937741794216837722588444025683834232940589255912676597128154099860311848748377980434824627915123149094050694830546677587175494197658068210683427168395900473244141488753526292292859176510616231490205061747401680447309832019727228237701009478485444898602985386767193490766047446206928570448891115869367258019847088108155529878011807901225055699660837233637441025547536883339241377815889252525418257411983059256413117371359608816844000744628574238445353611891291762913185711321274677166903423724856218810491786646776215046242268794793430560591352204423866042446399231005312881384825553097297942903939549540581561771093903113969324833153379665221559660330926960877828748009526365054564106143741744895537452461881388548978489112409094022982479180799269458241032329009850594019336975791465571741058950315530174649404529246642580856481002077327723805377752555370351457886426911160310939544463937675795503827333987642100393889025858253155015518987147491758063444443223195699476958130450220696755599718952372499177223028839798411739450372683814050812402076484700379027549237041781876484300422395506521701587415367420605912457306659202217115896997708870258800571088613203798300215669263634234847905384509600126130539664239275845466363432929335616631752749339235938147336918126130150613723144553242268359513395720920960669604364167229762400866231893931447620741675402232275395597221099168375930499508493411009872991795776270802707795809240378832487822949385902445869010162772781518756864891560754231724670574761322590229831735195069323860335120127672801774940239974797400716646217468417498968887455854906870679972607114464609293790643196462555994409476517223981629910950925406733790713795685747748911572537568048484114477314669592245438634010055072909769164881335950195632805954141613750271293589888307441986002277564831053897011913872330281578330539703951808254203647411157565287310269991712824584730356430235804048116679428090157284786998071167658618161262031587271664642860777772242530119387223303574664257279645066205146014196314209912438401354378334012792465348354173623026212070536470190655548993421457923905876429105679037657480337539714284459767955206323429619431842562944252911259593585670092033135905018682599780787073105778740658915066390545368368532439131069807474334550261428709044781527445461892656778088161973726015806202773666397230599700083925276364238591543913402351704303036985969850386453684117482507467315504627885999329870705970907524218390365021820741910108945454645628640672802418674165776626832612684426190311421366998868935494057005268959894507885631558801249423470639838291498986594850340692335051169351177075194593013307958360045899597880114348965429629510313170368926429902172403719738737201995266409818329687229169028503111335176438364622797912747404548184167200745846352842345027668281773196499170203220823001948691472194056061765159764829289125178086981001618373151250835914883215025339579798897972941460240238509612240319706111265185889689315161121053760356706814638735212667939747056920765808238144993584660218710632239614209030948979540105268605842577609317559389502271609784338871283365123280348880532987765361205278848981015054708089112762145983215342941338269914552541848627630841343609409982880642401911800078236240649153509411207690118980557395613934840500954582592175879856714674400911605167620735049838699687065615130578186506097430720420179959528144455638018983175109899841933472311982789902245942272413269145342812234333462925414431694845715475755277158355269937399001227091966217821989100385825398673556568920095627527344248157930284913269148078966150938306889682256714724474612146866549146354533210316280917789434732205289968447855864387657473620407425996822602945739474977267634113627142890195529346298183069684464904647668707583938241828379307434903073302417103398586913579085724293868235649753498615752909119120351635865380184204914350937967619677803676007164017848377127764727344567609748037314101873259778292006798649050834762898493845872593450740922844946027337657437249037578506793669075097562814264065572312259979132920566999361587724537453639686599550675598422719437907738370260135806906367461388723963386558450530754750040131978562092564481944416216163078763727541002425571544406501024044167109951163209039451991623523211808042339496169381238935236740989695437418607513331249538368289515091744999408598199071743348654060012201063955532385024146504718605562522688401401770517233806199842392356102956541506246431892290456530086896215902843998299364171224972017875097009368523544941698973132909085027043293675281097542120911809564119743132813897191378998391517405066659717142480519311285295995538365375371979445806597868409054480758681073127180944704739019221612129003399718286135050124945333315548740432829165438603073029017976210662616327790525256992520775787144373978441120291685054373648956210859052970765288615115660150167215207511945064013964882146509868722223556096866649014818437596914613333852559746852329364090874848341053117353330874523181203902982659599291943377862016981935945103299064908261324172530839787476332612231095367464242726300892656635497917848864588204780191597712679745659870470462779155219827261409432163675155581431863834612067154992311148235716139170067932539350162862290424729656707656561075565681189575832913776724366898849741992369823071254436579191106454440425786042741305574947821163399290120301427091323804355652625014027365894459151468258103444078922241676865505300792629105980932701169709139995217132652091818451624232022585930332535754981532775332626437395153267914872000461490771673864660824802974667370968130587347055814220011620905757950415458551721538946961746388890801073551757277338636104200660930860189286642403699929570398594032700035541055091339345495023722909089934875862579138987210581658052373720684114874662303550980871717512570064715325200731653684356932141103294725114848625547139154164161278800478996095220831872810639196431933093164622981143417631734661123782644527670211102988635889136443537356453980477920404602253128609339526593968987687839448581893473280363527085034764997182760796128181497526776100040811525327169056675642977699420578137655162669322273973065335681460410879816577071066451352795368040481451370870337129764671261314123953314082667301237569354524267290643183914695356723141058365459822581075099624687411491613433577796062080668018877217713032465720067688207768776825053848691939375621901039890876476838681046309012997126235523878035066574709024978707615461656063548868043181374497249848087213439188529407014346855883522651482933947628620524061790858056218605500261947028683472682819284837213264268716539652705999506380449137384417306442535647390900500120202469891223507716666160217557138230941340115040680096829581791053872458140519783377388257851221507971538368946918872039073134317158756738997328622441222809529951204491273418742231044931011046619143311859507119098254481394641952350624132711473680711047366889692493645465773749818566459464359228691127226900526698261503040708593523975089928456410583406425534739080719350201830689924079598465885103623138451167158832592545110022136478177594521734568375078647190820090005092171977735396799588434081472434759321111352130314810596534536165832523573281796585806023835207808221229867245351065899678324941038610013682181505380915784508494562117994145594290487707215309070884803698433225120528602917649726401458019488184698914426274820765708939620867416613267954487230861019354623341898717407223228497583965843264228505570209338350695276663049962327377918510255755605343562196867966555792364157715525381275196476709513076863997409259786174273103649495507656872161487889112572767408366206741130248322767324503129049773895522630494749657449921288099465854125900724624927130244896859064711739647815703165100615542961564571978023010323620973140881740730655354195663046367693101378772846352101448022322137985444240953972549082090894118552365469924707961780702304384439921867783242571191172884735386101858872294106244611799101936982208596205774166709225777110433325828483074196816582452578784219903500991635593217389406972058343021683705749104722730332994449113384034804441399697785600248639819537295517905979214363351479896289020951688959832521901550072994668658982685999091864429071151474893469549466599987112166099030453313119252110144693110875302529454562984490616680382340475189873337258590099137982180075540463973342345786304674445066596369942350953846423182612543774772435715424721698709544101829384619504930574921751683549527597776930718623215991841732725684629503774108158755513062628135923297163981065105552149971389006518378403218009331803436069555416325779973634510016520050341867234015307560978275579619911647694769343295179020103614636461112859693805325165909922704758238572865985255429346919669871140517612925124546092797074068041486853834559349076017926571942547969909070978229405228124867573623257666994578991978637188064224022539108896971289625496510349044882999979034396100697125504458129331369313880048941325081665943846234403556105096506297069740548969553093409333457911009438599565794258948164548687350124371690076331459942268997749841050535693998808934095880863380452627613333840225916278708491282870216980766087519520815560673324706759824423964851237910450583131699190021676511932423009213116502144645956510717656964354576924015043182702165751413552547690375657150558826665262397826163321818333182122429170381679998672909777085914714448745542211108021712067240957364121417749636871682007055108799017800372080630678425527704814723671674410910289349904626600535144791984336868656571021962015487809378200705946981902780920189747272559900897115890689355190401689589792464031305138111353280855122848839811916589227025616214509480561908430064178670331374724404367871427823153300902905447445574528447786514930133710309302499300790343129709427583024086474362885104195309225923926448876828068316382984336282095818024580892477866547231395121939224038660362910464448406203548513355948743430202491936282299345834156593815871844410171149315958253864452612446049577185662027103669682697587261501336611886999718447076187320677621694612962619167057213549615063828592833184753789255874844107385371061614300563547810910836438346188793251999067996215408033591108010800804335029542838850888334950782286276767222055880902493169722040520528957710530333971115581146244854321003056484133803895645165350480941273934161616890883144651784360781259959134100538997679516213164869573887637346611158318335024851811682436670322244464701300380324544546963615435653556075003816941229179586928176447409955896715248544582507866281362828145276008398087408007404867068470375023523868451454431050064482152971772144267209543346508570784192786482369222103923447585877797321224494613571115447395990972739347176634352976798449384429478329422115688583599198989688353853964350791023532775341202427099172160158663730809374320670797081792790179832905527528690476662329538324431084122544099251818294047903271091234287320912961481146381785521764212413463786640046269654368177396966418382825550746222745195572219872064346692612582945416744774724290596324263967654715073265688324315282657570898573224147189414040787476850821153668419245747856878228808234778392833465830609589736823368598262842694209705885810573727860609839607231395260459878484102043519244219542594324964012317103895039439874555438546113504841430888035009458770316227410053886456765270686709484668085844314382340919774722421061901288406942102968155576615824602358834688176434097181720897570285124998540348912244550859301811939476300872856515911012534008262165627922689774684447824394253239012302789523248396248230795861093719860160728818019325650281895574450455357652763414393471138434167080337285486014845593687083049389714812193429865953956152120169415170325598422875725007439970242513796838508091483877979840433500973669061059536653664235471745421217982353781795147804929328709486676274503997904947482594030746306800966519505601023069276934457208868919280445302716144373093967508796644832142160899252787773948769009881196010238828599679670126647439392186555053771274512987094803622964177105802128011998507566775865718665695196148733032706113155103379667629584831159616891312688031813572072451750453832248257874911561349000213131038056372204222730579673829941764129926162070679453277533404057652123181744421500304497716141896617368225928356903563807566155172810377685488128442315553246785957533613502588320046956563369859159876487297802823949192041018175950015725741987517510242084980410218894430616792830187131392683742389303727052317744236368121271715335983527871433523227733793511291634614229655944200696778422301142419501798848759983793217536794571477948655197613751475253067308290650916839842679263980583970566700406567353904296590155422184231349019912124749973886418464184409104722850060308356377388975543789512544038314286528526128651983675455373414444717086139550451744829121878887536861547481388588764316454211947843819619221804160545523359603347441292329819654742175357480118574231702975042321488392386510716110959625909882174260365100890690176768877123264512303136038330029166812250598044384941357644075951703873290270040238508980708172522901564005910068685243915171489566530337301259502765718820567666036871374876929251599290766613426472256634821485260489080692440772560340103185326621294382465547767295123983955253793194158215921872177601329583279023121815310072153544938807891506319258364826893859725713238912352306143731848876040684672132007202898103047693909427809023543533883672995201063061517969413183340905554506289933238399987257638534151622138506669145403990965409640060927572333710696828810100108196346541468991319642023422362737582063842874830949428261404985397509685801234991925302924617604496041128310607862973604720165961622330954591825750702195948766005327848118718298136807886945087571909703487873762590186449560427100436171920249321208027767882615308534202329704349571729525763978517533088579715082604039716799783554775344231278216176595088871385605369017339892737030624793109109741927669245815987949589629630686893557137845987585030651482580912492076664541170214387915805157528027508813738614476551584231060706402052054635469525314679161041478147441873788994164057585752960363376737289060009411845416785048256145375586845333058617435796144324242933750903081289258651022049830607602513902459326563218137253653909906972111976151935225016433821469670506946888091958698775065425057641154092927428583872181148695548039635403618196135880830439343237185298790139414725988979863451942232706188728288521834152396034886082196766540241180646778782963994234928640543297872396006155379546315392469441647457320425580570488120336950777626999677511732936423984845013992242219320639554814403930394131657950933777241629390325916320471816089228629821723328656807511427966978489552386608261205659625476691756294939320499483003322845924524256328097222038591425484159155140691139421307388341362088187472987219389677051648637370121088227400434376454220684875764979943734942248506376012517437881657815253143394291171487473649459019057886289193871541404617757026988165807821624092468158863285672767282898177646248569712275001892241945016998273193701068139825053665538324579944705720676769918423319549140982796509627095320122423957644208459151762061196174969893121403854372259198841203315475750189278620929707037989610814986521344115285343028992428007260625972919699538338576776908151019455500163060163249169798102986510136641938008071699920993028152824437741881534028225891814686839714251679351519517305741881722718925147194436933202974926434408987922174168611882139738771531014753073502294891998885690703423772842139064602228408795459465568292308664378836811189513881794618615127924421787239785572987322362448472879738437835280988819777813073584306727460626623183209810063285420707652432153619849154921121340856911542074534946234715782662120596614360667723881048614899346715618151195278588822090513831453073784740026268776622210548110235925294919229500258124534894198451352901517925600841331319226539265033266947218235015650290177722691897833021867616579490843011224718053760447240719087553671939350284578591799168978648146011584767445296034164217993567355421939799032328895841055767484864212854084471042842044466315151016357926188678135108472442150457053672498066234077635554430716265497658418340373639565251029282717410198317261551553783142345247254229520570124319275310732569615963635597879481994487401322026418661543211972965517404079417881727676477248722985048033989362309815877194901935400215399317760151676179408232362799599594342611588192027253467179759324304634700736667434031662905589985002902529225558332103735825862405183184319396042052507848401351465013772090936819382563421282342384409900805340696591725199336221727646941194766966185753522665826354752601480482784981232739310820536892930819838775974435078948875789299640721904033608186616826901313240802127230196716739408890998875970416953927403300098626322910788491191041378979474444292323192155944793462603501240330610266131923205163348622111976665300042313539946149726205589854958294925049897439287875130898134085984822674017119194353426675106080018815623368656479048445324828895960157361454088813328517588290821903218932893949042492930175617610907366628968454990337432941345660405925264058315069495317344891375034515400168973145260060875656122010120883758389336997237584011376609302699453300254985761369668560499742812648881230250113324520353153091788776215821631793944705304505240495316126398454143034838374641245287067826778472908222935763822587085052397932455002992715192958169416635771931386120074352903818629769682478002775888338543836277006220229392099530509604257990097924821540858093332160012422389519802684694759555803435343214521269823995504098249667987262679108238273304048284503280574102175951254366828307380186159703770205233065114659432408586879057703031390582488547846290633622702907946964557395619723830173630291993030893016099168257047033748180219516723978805432350884290936004648866785322525915832900881619006276294726842020017068595123502470593891962736526433074354374449944812654006926414706151475707452762315345777756709405048746798116239361359007190815581759940861827765530518436451200380930025910041488974608193152958824941762054153318676791607862124870912383036699546954116800946647237192664403735266757446712273777183503495435784304046561160929982075709302457024857669396807840100414705835084189269298719481824778587841114247775924409857446952313306025147206626213418692618302349277451283607832486069119447312002020875778369075576496931144127926583538286592172433496642821299644691902714032870108660603238976640985060088930263864614844159287219211051851782532096959090882674846935757425112762058054888385942605412173195552074229465607992312715843022119476925246329992557321087839787687836845575950738635357475223173540076996823729469079788275844470217081013643482602580460130273158223118724231645014751502443709139452620598314084793289041670038262876629601085064273537112847370687556163770594896762555498837053808665922919820667053067519673886098630528279777308378203361870770346668661165254097516131395710696540319713370795692339511348226110463284104724173123687560551417088062873716492681881729576785039797491607709883001619304271854241729850399719563797109655363088916626039007630735896625314577954512069758704173696664154832320653092868468636587906508392022403332724351418241567431994360877612100945581896429709717776785958526201702232195779403332677946624752834843301721620971830244893363224440932411286083765773123565802451336097951093003500107446874060475900370434936351432811623277390783401019892868406485074558466336967629945354949190702673514469027703905182144972294674125934537095326955124425112871601473758838818774905746970614890001944946627865880858080475603076508416919213741338674506216167349518071990288461388390476003778398699443083394473392796373207109068763455849103848836533559633900833990481764147090650466698503202143975881260191421884974814608379128169229136188808313560795408478222100788283827987031818488064724503041851211070101724500947190844615595165479066095361999499064557047822394029716916590513256491295872195221050034424566211449201793780162366179192423068578029515684366447246574223034169428587970890911127610848568473467662136347220738094226122665070900928713450629139554763490385925801722019966909896647482431960321518835272206261884305620633097701651826720068440765783356440583086819309658717257858967751757901217112193093133749654423281402070583432386087611629293851639017535783050520076597174579183007504961495100995306565659202908183455768808158979567412410329329603062605785551446510083065524322070774980738470707475798533872509704041106928655247376262261799716564631675281931380390355779227468226702825415136081223069592529851853341614606217137217727731867012930004795762967484992823096422242408814529155912194722260444013198189353100549729844029792324179599177022352116436432603896825038730345432372581193122822951891660818875222775769792238196021729189870425508235569675558297492162412757201338480131198581523360292310110645463021193668375791156018304494785340460672159728925345082746741849423883620387571848730050701439894304786986650313914185213257993542784874516057561091972192351152389871174947125561368374422484140342023528894251377683583699662237609966253005699258495408657814421795954821863671961975619211410040119962994663669839850698098028210249013127723972038451687209811971025291072638232050495926699071744965450977219943138333279968692956305990552851827332233304535035772114741983732010181716787705116758598718363343216025703470226431881711099964998779192089083951009333821877911690437452065005525294482546796671897575860788681087986899308208733751170785384299555314796146115721949751820415031075831755846356758715246900480625350258455990414424194719977338370022195475132327084597823194170657111110887665823647350663464668867066254891434076157774578014533005024822336716103313276354843216661792279081376254508861173486616414804339151390539594336035210126959613549112124697529856220981475082664649130869150158215241216982865818469516782910680654058289466257819182418514483470120932613496485761320234052284800854622058557434273283826209846865785541056186037854376473196456809735076515354079884406632932211273180796316969644992433118390496216678460376540887678710583147414132406712762742227818657173811177774662789024174714689771905459524053541522801974031478344460980933310936377036803474849895945125658776031883803312330516697376854953325488723798891092861716571092664632477108342079577283106339739374275650062924984479793124635270020774190748336041547072345801186340673257061437042258490382343133387475465221178490925579537239482092419124220921092143125376955092276330711673066692717264039339230384090693825756250718124274120629589106756938933781835985244383794333685942889978699628955166615502775015488288375209450571206842910973622185067951135018697977700706169176692619575083864403390328328992973758232228477868140866998261110215405845112264947716509304256356441743136717358722863290414669429327274998877371909215464946863059135679669706651747102768530442447997932976813550400275298777040673155933470427335974045396737598793109285020487016041496348452053839046147750656998129673201094536530782502753296117240085550573457226462482052036729543014883973986996533135582948069288193624215904762985181326715246692789558153631219504930393259240272078228016792865590370625912132963544464450315156037694465419280534900087846594576546127694842386831178871630133814917177931607786972669738409981771697646669136767962777781000327753765147796688066597617146080346348338583718374990879080207840020707730003499975433299265717338669267629265645391214068657500100156559663957812589962033091069688360456323286886297504190012062093460623859433424013703263325572066506202788295158610053916040765402311819989321287045097870327166785175416226020122377269549275191896194957993770049440093492725372271271771931394457035123231823615018588384366490542391454757812153511709776449431415352631397789046417523678240375292534797815238598793901931127812185681009259249638760239848104800852534628637047704138509517822537369356881452334575271729275558578476392222041945057477858193787186400190303077065858319213773418784875595241438876344322399093483782385566031991596772705152773977381021256046504091757631677006713035929669416900316388802500650845039589894232564856303607437638699781918192353237256653449264094974146915268520330355723159769826490167034259224043584761610332189114724776945704005792019806056981921507239813241914084234371336359231189344701826713100982442383312172735375827974523923326557203319471639432424998513075146987698346337640972559283778347198889358046342479478355191954151540612772996421088299072914570953820246018086849991002863667287419190855310863681300297714464018830528577583799035386675319759549587404293408208378208933965063898500202769056818974969031378628139000399769710715827822985760906492909963448278111693503486580032007305739359743585248259006414519833003798026280277203660885548349145888529200491906395649236378770889532988594649061322035795789572071430023677144198478346625638539738307412914342841989847627681467817468415580954610201751444461695084243544958277790782074434220765479365262123159867917736889055531143607410385596660889988606622867165519886598722693916012249258879555661446424520891273204884338487672236887372354178444326437859302514587246308723923119773123231140432871403630393047453727645674344759224412929260365116715245434636457763416688324391449216353006422514169664291042229692718654713076341366974502263580709090016951833840286375728416364833382821559159409207804739236031330160633853921063628372882904240606358358758581304507959860319009639017662771020821262017691124083468572845453094085043986558329026728819409735751158328192358347197035989821986822017010512563598189330820299022118763334723118757450435974220071386181595847930523186447839191771511732693828478301190267550682818581009368535119108224279409596664615528181891773843611130484445122154537935330216333327014141195382261942741536212123830803411666896380444345607533960548977356815586071825244354895846618414655598263175706214560014014358778150917716916335521797170023863444636407497762226292748644578530908335995540332303177928860014936026506102941923081563882398802538075166637407235072998142518661476498525591740219771655640565146301801229840468813623955184577525761245504662449759941334433560696305991204224717538945792826859887064691111620295929389240054835600250030840996432780888846450725640730402534010002114059264082340798453183101929945842413347905137697799268494300985886131543088444657453330600891533441245026644362358206217231356774471847376314653884672423537007464316379212898395352772189813942566183838286084701592190630952503528386252385556483102323776445748895180006066757822824820321217603140288323798035632286041132864217910967372348912016611840038424153304473303028432294740676648204640127661786465878819844965284073016886992795783835831929035286654979256482300935177531113381448454045678668063997914891948897089145548510733633056854827770270890441574526362308480180019564872570263603491407446601810073644584041897328302418905356395478509672984790333029706105544908052657164170125693073660928393988329794558356989416463299171369950084739894026583329877633475393373910019235282049526178954058477861138467875598117272110905858601276206842054089306426818019733957915617561172136631854413041854456256245932988211414602528676259028146349956983979100510722161599166501474096941761161215123422028514248672810155675335022313473471546229993338164942629901686562372851637951143514097926545187426043864285433199238605863049276346604238884483924532659408296757111534000733388574377443315249660767078819146460725900906074503696132227052494546266501637604145755740350134389742736243922276519876911799289647632282325685142288835508477768463635021586562268242636756903348939816044401583501582007813630387023157492394304784086334771197378257764380559473551567216376906468757562478940822209972887318090592100555105340300288888941351078967064663874750825129998562256714203976628023942839412754645866883053093343224218560783825631940670872361903698993996528283891860218985195454035704494390985474033353650188531665624236310395496973032107720552752206082169367825474434805102572419440972744938121966818895386778073393285852409687260320282542572988273754216797406997271948014618771933527688604893964285614910071108503251622939220143911687570515965520089694064014123511886029887764556175480135916296138890144316815454526463985593765996643624520332291331804472333640904812350037135904445585936910308773458766633471043219816035536180602800478727538417331107494266293521836158634571801433721581041154541530996200852271429026122841402352143990700658607762003191767865641791986368045681464393638087151761323048134884014852131931462205277584600185967527696287149177047274335601105912494419827952721000253931540407123889681946421938313802516929851476545611525227848317850260787374667284636465591463830924991807534377062742810709456553392812037532989675999479706662096795563652577044784624738369171682720088479651763743437082818583499098505632669122315620847480412845382818053004885277396380732921220462632696933718341213486626110027712739851650038182565945680440047089657069896444490403885567950841729529819533130020357212368524307788727000376214847056159231410201919775124835245583149627841056504490665557715085308895723388139510656031943260324695164166597022406392558071648211848679977825551559501593379474362359061410914398658583667347438933433773998499605630033507376471293386839969276819736113054200845838738200937126310195240978756906772251288955865233796290438294698550755148950834900465991921618713355044386427305769355933263962537180071283501692172137725198426802366716350582595452875188087967206554225667913546902939304590869952629994447051937589720575741993060948169496205769295822585467420859639340223797074950202959878234074403390382579984283780838306941830570346710170050876007145879198370031023074972253178112597395524898847391745690384056227112847414777287537738987967205291621312576680742082660821995210230532941095053529209491771421435641344592950718207178431335127652525703069296722173704286549631041576143128365546416333484634217010688871541152289984471329472141999822434189672304726694988018027649205143195596819295978338826818440315845191647210256510161059781953414924464225558146044658984509496446047426721092934876844180180756786040081055536392601776119140040431407419111583339962524264751695966150977267431061209418179097961014709303661733082973452610562362718755720965160245166358145584583530366770200941692964889504294299329000508071397667832911405424134692864395248226498305509352535888844293069875498325641597734667513190964032207747597709553415786912266159155647536116617419452999010676627223872358831843143763915746825331358488050802593989463281043910015738015880890095255801733113702333691921933490948919637868847464454184941484870492996731254101817742124677316629600123079651541749697164715479294093107653570368090865270456612727446477936967310336413075130383218367182250777142869774507768242812783335772560645613938213749347784087649480385293508052199119484307157105722768458446370779279262691805383098411380554553706961536469572329960880509605256453864988762394774104173720120634451017946373863291477727503861947876552810977027696938286983118008376432061633044059331911277116757048371096562290954687852650750079472695684540997245145073954529751457814633380292020269184856665480991722146773735288635578226921781694104035496694302156376986140391745890741483603185000229370249069608122091870158280698436434566059588838611595919930329213747498025530443189392874095115781347856635208236022832335772837427089498829062331168569848292885116208212596440897950661882744181238153224207085755307453875694458092941294632227437803554504505710221741253827355903780228671442384809359002596508990546115470434998484205085823486682724825893615659475646711544243961703748804328178617976895866663375062476334192972853504871575197811559343086095116350791142630090954420773584310948524738350652241548614953724668597926991275494985977365330824347120978700811956951531885021437032502092339879437378965711234106738627698586985348994861877835551626068232471949392454088826175749029556719741126112417775762682505851387358537941726259907387609830650448193085100881853238243398130567472666518349610909330536921882696178684198871615479584545682908320238073167211277300869709929955207020945559388609051248362588539533622137812531500572617812988147376782725188751090789939122435310495737947660354241554135007175222896305293485421752965484640682164723168427462772058146694924798474421824606636826891048068413407036766054010484963329755593743322429151207368075071690187867413951194816404259303289689641703876345404154291263102492446009894089597052636723004791442747307835449415034392776947100627161154989559575208124755877902558545950260316527300345120950857703401093242853348156132147390204291006440716042553419188923360750005758095677646693357077978171755184670316372010503718612213562502950683125596541370373818049334320429297674837137110355419277797959825567913806635910341312379288615996983505718724707403804221016655828815607404511997959457059653187711497366795013036832731081209733946130646963372953372710900997230292663523058060049794243503729670800765869763086779336431310779542666067529403371248405493081415721116822422369935698683371250844217888155489487573293618164047904236006699799910500965616707300831784305127208535688654262594171462255402243229082695173927792882171619713870978187120986445475885338446173302348354630418529120584778750116464813650863194710280149192253670976568180172056562608690313235875508470565095827842995813706123628204289918332676463524174439282079486119146111979199353230813200735055753102955968447631666050640806710759778620788683733858438824038117871878164815388620625321148575792273071693909420215343994437671074931692739674400763267317497577001726602064451627778052183909539413791203526963529648541033986765125169443850689581286702399329282942479539771733374021323431463857116406176880181391283205239889078898803197352341035077728869270993694256412805372446797770563725027596836450342409281583146439545744928925803643516466385005201939425064709425690665741023107723181880510580279559555266828662688013658257077295558230852126850254950914150749718126066539866783787965660264119427087200855266353399248122636601591727532210312326489258794849269212066655589128636046868208165622110260081122520882940944567237666488851310841401879340157107503026795474125934415886796467489589107331800577805140641724071050353093828875890875237275744298850456986462382030054557063700703707889775848385809915932333149439822882091912357648525928756042245379869572741896903150225119643742645491911206471952113583790062729034033793124720820438077267467006867768405168662662916298459999173511565531139586025526627128935500357060145798619800666645803551508340649403894234564914384732809601720479778823646560792013283012834197849192612088626652185524905104595682160643262373935149207712732759440344046697530693317942759466383390384518662950545035151170161212556476017157345522717133692056195926154531036672877621031459025780744206505759657475396385357549280884276483209352518627747419860150841721140119509428517439408882175684561570322198874946957307508864185047012904665163917014507642411312976169805007406857129794418365856453224030081691682712138289888757950133493122757069733184644387283590657901028672495821459795732263613129322173096133701581541885405210098687061705323270360215234950316155951296710374971335453075947786812357378728427394748871605335532039812756509676774570649421854877247428985876409094608948116540368616755949961184644941474369872210804613652221541849762606661958992720367571315539860897621963190063291836805767072160956829532670416515063229393924980244136916830641274508580184614921436826618956598946286645034922024975088764657713089753121128967549008063154182528806278517816530496532086289496629786513049035201993614253010321961731084288845037886157247200017222548473112482812299853095348427218920468478343846058017911099517912715391896459724521025278902799200552507564410588013353485558006316263262338029448112115896313322377089206103648942066391837273065192682708431699586145984363944795372565976858971669002209735371201860231374195829448706486449690631309864322413129845059312527459123579152416420030870424953197086304828992099973424656492490023218802396360526439895016277958212427697667431014782279218191478010639633533187393729234441975629911771181923031849465313330298276917790802412031238289822746002790561572853446712833517436718841496169767607243420244282080833052809206990164425927121776471409361415322821899323551916150313889274756839849090161945823630389353696551508340306553329469274119643119571704627246121285878390804121353202194690481169967953032739227308729283813944864615276262282252269143466009965844206352461284166688845659869162858093568759749423235462789938169915300177668333162626238474628933341148220599874678090056167199378135636686270902021276143488752643013674786938261904365639462271663425674258004748613098280324541605941029534784892673047799695016504833794316440383989975518455746486696959312202769996688155729415592966968852357032754176285394893164862869935101826460709882586858192707266836048499032202468744271431726738259593529291595273064181793455511988203879113617422771731425827972851310260936051613884227984642827395978322723649222872388888812742589341199838799813636817842951612737195723244863450777983448659788475501341110758662320553383043359316614408371444636838730353191429785339566285410062900259413884609915548454660931435872799487238424430514305114627271941212151795578186090782805698357066964862538096972022427066208885263072957849642272551327964975539339785115087641245694712414977889005338495655590788678056287718410947796893741914032561801329320569953860557404982120051101834528209563441421021112339321375271590720634539833147374322720266766659085699362073882639758333886607337644829746659416698672107813624185403442794078819162035398171645477397897463408147035144074342450727175471561591947753974900959553479742176918810555777395411687959081560965526137744252394377146217519841143019443601662393523031546750590508872444426597351738144161824011762793454738999380349687153750084650667789933366094353279555646467265963171970990980952069258557784181938075440178128558067558665928709915107907080888899468215558844259121749234752870346949406278801242871027121520166176032126994116491093540251693454050700827377323636422878478351424259305698232888328411645258218826470872563728698196727416132686768597792102047478682409715881501760235315131571404639436539144054852911353244907799979332349929114137399692522699868190202008601158296001840230230266758526150483767722849020164374986562624903314220189400400253911483775813942867381326866838530915000963295641070530257456144129966870863355267070633705717841043269787564982777462588421739838970324593273496707916953984992091454169846677790538544686806436786099023337125674177503662975285468661820255693463690624201102983601746918180699506201394770506424093492936822021069972725629417986754505746360204540748961516652573487721557924317861983564344686539156203668423340309032842364753788650290085461091223845149962076196193121459175223342641648866785124500829548872093413234813955590055675720253630075323533462864433982000354582134325362110668890991593485605761897932335831856763661044852620453235139744646893440828542557049885978691126373193883796278510299685555673260061582259598727129117672539278449818521889119069305217021503506529929315353208067976427245782498438325196817684997108984464439602678353380434803198718821190332265700714929159985149980802811303462063946896960358823433329665375509303283014396257952177982191227282376084943471617513648229144794410465074419496820061076441000465857755779910996353321573572603172838223786123033302127634660561305604536755490037127433318519530540368618293054842767312871475091397734472810776292759975896556450163774410199442469133942168452171133810310919673595149636564803021000962619192432980027700189456957586557151394387231491326504941427055498563674554801577700391126223139810500369210276357735104404990447597353485114214444462246931716880629807493763561254059657728922583380628320201489472119782617924680609936745870822904458695242966664919313043251037270428271581316799904536131147009102844405052534322459836416657037295335868786084576405452317331748599979567174283467266110797665012139307324295889275491289555995081570713394751631812254214239225690626603209745589371188133630027746162503864328609899839865988361764732608863678399055741397643434355037562547375070238786046924166869627792090356660905197668184678462956215089646068264741978578990488745310683129920104328230857995350700824451812553227825788813313197056434535315849890098094852002215123779643668385692370455899375304772882220410634632734241944793499871540576624159568584075884602371133218652369235711632111343696419834446841311540781801777116740211597196332568089630694622605660784180818037891883830544495099309280365917666706424933859787527471868352545744198249279598519568170171572372389938697664531432183621400489349358314218928669195233611332438162393489402135979866900118799278546199675881870496742418908786809156298440492725024556402650168773633569014113783457518076476194320293509016335896912069861009021301875894282693999182642966312045961353348008959731098148101797835590949219219824228525623497865021679056766230325750629493102375405789951102617435006600871096023047803719113098619816181844283980288542478155530603235652335444675514437688525033188765033590153086709880429972715461679377357324631504550798656062727089662987309989650009423120544704706226854562546010077999957852772352756080774235077229115105721483204777319877407266483745006075607341039656202145343798880155738134581207047476079091623431998435275394329977961092965427583072025185172059463036456953816669015220817674909786438273670179192358888293692561844323575676313977030073379066986799032702291207083187210161228644555194356121843397831524778902887347772094597149107446866463947714634257308806180648381926964029417036352723062554279201003375096283061781998408798225041143687898646400371941513778365660768405221215924647585293501132644128158929925463748530901669816005435997754828060153922238966335024191379214784855434322176788276984427418180124177773024059461215320477127940893152333559730585623008032482745416910129155324121350311211625407313582509650196343724808501140408148244146760767022024513152143521653533754871469926992708464071867263291230829060321338328132537209334695951045859053897756264011184039172136749693650452838298706037720261352476243904762978862741208585587152041993897004328439332229831600986586309880046243325692350787390240412269041957442664663175676667499884643969500675045090873982819442557544469256685882635341599623192189294505982595971150338013325208137966155423787616896830302388184811191393507650383200551596861290318361827173743452353039027893086444560279038710852594277947424969358194619853713474350419604031399999304922538663174929071257586708214796856291445174949487891068254422809075456187234994381371082194948905039378110781658720717910215693156632969326325807680912012386899061915113087629448718640103798589637615505310182391446293082119759848356790655218030768381057759005734784961630150815155759628350341989972310004067132689863515320354310639745436548790800372531227803036611173682348446801467837304082722186119615436175495721779800119097151862223864697143132518497274533373762837548720140486687204017173173131832043068092313797309270241205202198043827094381788831192514103126429744775733547951318478252103949506772928240181090786459229867957985016279639468208857063508861250356491360015931716507529801468534589532325874191995881151534530094544362804958436801265403929813643129772098094885942071574383050385566046424085690429590293248991882935011042285674289115375690139389632465737950894977361018369237884659462645934185368604633918354786882652413699698403494359960550239891589073962817095167428859749466399166962321029807575250747881264420522502218637584289557785502144487812501867232797360421971157759218084525935408785334188937023094003821064464235069704419934964002669071403041495258301998998349514288824698940863089973910235756022742561936382287438688834524158674447167666366400961666497260480586313307778926269823484139890912491565097412636999692911681557742496138804173905678246581359838379584087519102676902371610101483812617299969253778044492780605646914510133106419563555262994224591230270747573231108608820043611409096495505247006262696044912860452643748451650715385450624328424680403393392783559958165421629059822441864929630988128186143757430293985081904828192378774284140935613413592496890357269871595795682184116995633747457852460872388679382367915326875665870245701708814924157729756689682940718706792133764158167361622504241067723133930029988970397984727238282259996711778990847013181888242193788003037630462727831785676985001095874038684055161248464612732833237645386223624898508799900975440481305525282060010988922877172484758784475547246058236548025841623681349082699714369020829050608503492291863383883921761374411038947967572159692525055196901956280629147412715626627128863775221550112094832068682737027669158769767232731529842890521930951045074556317797385078407257556646612757926410255285135048417652357161366063657489592172774046095276917005237406538018501379363275490930020750000021698886275452657032937412327804720041556337505445254419433882201748724012133755980942954719471551183934219661728547041105475284399286539225357685063579835105660581747671921489010198632386309964337484246100351698610236688036367533686107235335620029491790997263268712654652036070638680233793808158067614826047335715724316067175199377617963353123071615154341973674306873320367288173624157333382640086284917617712390515667383534400072374088890829387353832618253908462318675787243452547559106571286747118148480713381725192192428061246052831120887928314451304377297147097000278007123397600205323261039016413360938835031157454017014966442999882746311760923569909711707020119330160998115927564697719963839817117160460048238715213391109068862176037886700712620244899052831072739550819560504989778928272938428799109535104939599547812637198435423985936358342438212914411430676851235108383932249766398063101573394755819236867524488069567112969774607795403236116560393164586539819821616277335674329127455624059967059481071725960248312224596285966889595877222412131138882403992016009568242618196161677397522702971508668822399601570255094110226303459033058557780488310973623576171223956950862357258782372138128750557120173898783385019718641530739571553329456791204586853515401879817727896542478544818759685230682472309796727462659094979407093108765414513320748502492862900659914266014144096653845673058906840899470784825283933686552991584416722244418716108897803687180308641971281671268130297837581916751877012651235832093947645816240005271752045121433470784217685090774498918622669455362432756103143452426361467432229460230757846851108023074189091303957618425001386395337232657310040033723115043814676595090464684770151393373879196713832977832709914616359309088805699966912012058559524874033333277792099051178605065725220587880384847509851948551858005691089190150501764249978433228495605997211337953018762454119067506622631915182923268810862709228090511834315146618512944023072544920266452063069240643002166411157749099613287677879742889855744672075156087578902917420288695907499488131145934964202249774561900069086077168213029555392819353440044523729978243129568680679918851690770187932405737798322606665221012682185519093691430375925493754653413918352554241471358193168436715650566334738959654162243803882641048482868151590462767186262151580013767086911798757336603872429934604848292726538692861836154943601040589667704242036715605582364485758279322906750331026802545882485142974815285195780292465983768790100112002450772234070359544823760921839756491953747662603125115336169957216569953066052449795597969415343030490736399117753994230785288652145762262350261009128622550250281177020131518154341942318472762673119053933257103835208703252348143799905173828707872811133265397296556063303401448070163310777915969483797293454791645761118778760971661230437819877048238353973196421577207823790033531299321809987192844624015323758527389141733103817642285016208666565818528135206691791301409843105275704734552265248419011067948026460787036242995457932446445318493285695438695197854364835107141533147063600250928370813089078212857501377176025385361667614768780501096439191433205365370423840117755483499995549459792552909171745964599576706336737129605179974469592899842120265926935220964722350694129841275113574539521521764764914816087723424962599774404167851709687816730246990606193770970255162296544728122647324232081400165809671998956865914952365707525402978773115394397624642188184106545784961838412355887576828672923725687164874886182728009943560996908746245037194809603725754978247078382168840821214709176865545419784076039499288763208022174456895168650975699760825176372915943508997184730808140754871204694508644016399962960504046172533995291570615714861789906573855471700583937388332039503755094540241935208282120216397324845219358856309700585593559410238199728757784410401972226764155793650610322975750533649428670494500817064030100713642018913961681467524773015849022006792907174349479282716713920864302920178648680900012330232059224929264168438793724665092344076347340970578493574654694721708475126692914518948750866538293971601563148648325344355339849106025636801099277350924243368601078607354355939111846691139384378641687607795106986462392910755960828813222271791756008638912913977102360912323278998185875351255639026676563999791585505993484365956829903936985448984585160612515188232538210259059946626574981389761608453537828079637671340370071620132358790336085731224889975212841820773968456698398908255452505070722691166127127992911689860835280983044775899635036339104713889075284710494558912853314390590993621633254800781908231527734842049233019522891408147092177941385629095447946246314299020466710581414765354811221794824716612870011543344151204336382019330384182128213101547446578437384877549503428297796868134114373372772174138771044212818361688579074568077894429561618032104825936131718174804680426360114817314364004619524796320436547190221733144548777740654317114619547348364414091138014511479021600620651458874396047410108166460370130011148474258571414910482246950953797747439327201186263061393212573495171445145792982395065726520791702900137797227879341057994112738136973421818007890706356792548338497909258995140468316964978324138295739607483611717594032132881730813934570033287955856507508304376042799376009490610214775476026570429286415177050694467631034118513643648765050942815849142094055297673179754879018315588612430429310755760206865945111594273039113025259811422394072076115245868755274982866960697851109821251919388999102442757927327466040256950251018690028818208989951304660520148189863621706864479508000523993494911747253007171421022656657688541262133533019639460256465606095987958026752304779609476042823521358817188060957352139477894494902386159141975214546758831925608015577501041808634015101605628549554376009796310850913479691760931365120975702401003487344793408267764742642193079011323651423379928313398484028111275114519176560188805576478674755220594726830231991576024834450125132408841766098140766554565147743095395229986522567911559397284575746811132464165617604969738651292411548496675835902727247097700079030006567263541273210169454186113836022862932642693862650338728774246799548348758642192349096899778938748224836454702076689914608683046130948586106790901836901051475710676202213491215475386670435488880328733400678692500071165962619393954561802323423201724342881223670946845144294641361701338951498892012987860859728688084714190077349628008352007407562671638272994514088692753622873310420531252244385801215925496989157574539600452080582282089618077531809348968710609871218975743293680834069390623342189615073735436987444785623660126963762730577634195756993925841694582785660839407473197282825868832255761360014214732353020463876076135080673443959549878608919588350856624340221844713164448840823227500115487676134493197850425432617237565510509299306067480151646726424456569338732448005254134205944070725056058112369763189746304483661879450673129083825575372559518697812051190824046371997244742095815840752533788040927616336640645869263129363029444356529741137701830709405161353295769469863017773220033724129294677862030603146874104005527226669678580532398717503116854454709206180150516779904423238190745924528086392345463817677203408119912475043227201347520216314981668751904740216367448404667353706010856687965333971548780400031895538606054634244155056795110886901154960158837954471283655184748221157454547473670115244225739991968026624346763157222626826977681143170799584435157080716328331790126554230462560363479410707048831146957158035681786414925462690126127916687273102584678518633411573819129065202462428521033663209650817160537274826916221110590730837135205511997827367942900307603038318861141912687091476652451622477883674943955469895277129195218767336888594175728283206829142316691191843200673124196890650790450900726725510583785060670576904880357098553099369563624492647408991841502286650730693344383600309257373520430093609060405548910036148450215685538255037536375649066399988030493197671599123470293418215961624792417404382374864955617172837092649198621118754377218991042044737995615714469322867620530320919608103320635653085556853864713441730641863073757300435586542560301215803652305157112253265184062547667362407434448525158640967676690571026978431706909688569775073665927396196917867207729480262534474970150573164704194566395488560150297036870591743945295942111499565656936078903983267389032682349867549851897634069554672412128853937642774443945538999478781007485901468482001815050427862466394322042956345010857945563360450010667655786925729275413724224839533386161477284381669794018142047069629297140241713701742027723683522957468682104584566776395823523973152283702678241020388130320513639582583624359590788380839678052646832932183365950825565319168832453572236418424883079072645358851831761558988941054193050039106388788424352822032654179348671720819673254796590257774920043269869520180506866445610000000192611888782414076467131283914368331245616273457793469049949784976776253662979200525708276952298824304582250270075432117974883809066451391731798783134821720371308196892518459688931321614339664100521328809646920651916624443276400474627479105506155689276983395638102037590342060286827257138565195729604333197716820311715633329660346852228891789233155498993819440743996732476116511210827963778558330520607414014221867925483855162482034689551533532068494400012898017426582576708835285117560588460747156922479974428810475125007502998261781523586451225790808179477778778596456208303880301459016001081233446836944211473342091581285729531388894600331038967709596225184717734530911726781508260542439425162554476950386714671793070598052648810599073202389312788816954767785935932338970503618901236565444577961757598995615809560183185121280040998255810237715100759470565999625770257488358061794085136061644500133749967362043427667106863064466954952616268818363748808440490532456756848292205023820812794951256400399736052567600035952185459669433730501769999690334725187197059028151536807770640069910335678902745895188200638916253970938058236987589684252504553812697844650853203612345604450210658950097464889887928275028311773997635853927173473373019345641484405792136811424911157819641603055321193642474100594940868144163304436940966541052393284021789893139290655244398742105002405216306311674330536781613571636526063521469027365043138202366088132620913156512037699075892124027254326920035309943681912126040616366600535728759673593645004678366959503492780842170480788991965515388993166967117140073622544560352474621588711362267089738728641317836064935717749623335952656201979593186506083189619494765544329262076430725569649767574317821475108285909182930169395238322342106423947975542310200969468261326412182204359103137563293273095162956547835147698947643677972208197580054600777049277293817216087583419680656839339013989484337097830488090933634090495926569355466824625523245947725165305283008979422009375640281504981192076948753515744198104576357536531586379635113345376979867025494500350700428168339896909087257864031519486146599986031782312280572763627931648846072556217610526489018960315138594927794579096620610402093799805637939811285829489949171071141315588921674982435309191505304165176773377217572010166630373913367064168931812449721014602902285076726929506220103381623883249150423849119471083420863114668538883351620984773846096815352145545233895388580445769995980415683749407355406318519579034152714575600233913905543187026487992102836322241253950919198563124316084170506584545496880867506631577160881995373106980624696624220302730654745034638374179380499548639085358535973095458299316657717218801159042463175070694685684038513907485446617577758868447992780912718223008753143350714966121688924540387693644632710051742073617487945822954792028339656065680334621441493185392243310449559847837891612750147016439306905294265157623411986729329544308885507190228542043806838593919176209725105596280239817814008999231064269443982942453419006764479884331027823177979731907651149074029117569900837361548215651899684833128733934334057793975835595150332465315696460210349695829984594556599201283037317885089925380273049058349384540206410434258560382361138277446300003502946926444499785864918931938059406538244999912462519480694764362007919545090178313465881405424494914056972361086750417145880638861995343714073559959106549984962980964829269334566491646969128141266968349629137978469123865062641738186303440585302746969388611880878781381349868443392498073550009523820076570573916056926222884435230631287371428318621917626747363247401152874051534843853398995321714075513134498281322139863580801697105337259664835546049475418512700684849699544628532108287026131024353510176081985532558265124216450142897889339311532835029262814266505524871898172108955056361996258092003856746030935779602995783615790074129053364655570639126754067327391012668219139183420133255819088031974632607057549331011585535093177849524412996689786621691224122304457116589078968953709182652086536138309295552583112289775159008774247989049126684927077867604184841789890817403268946790326448762222961185675032208908500445168678067311894392531312791210406627824572164268444760663269524396344746597539502488346776787230953134702615531754550079971911459832085303558432261727722100396089704440203170347042654474793340480540153645830451407957920189487514287547746245987022776692188780015239933232712152508433962840968724208338757156245805489445893143408553823076355117290078832053292834277699384679545048290211508382235843375095856543574658339516820380226313524787259912310911575927483357675728618082649582823841623713830692736774836249714798763243568895711413644198309914070747787373595099458390689435084745168931774868049927809523499493825537078146962078190224291109731390998415996502808777235661242313023513850419069713187420253744274590430149464696140083521677785515216261790935400063504924032333655570238528724719583863001279709049040053854066493748639586103268187882833895999894028493966741620210274348941795040754903117475900911715372497303806762567733301052183032944536713916349139284418027942630413994974546418860914415053208397231290672260293068776782146756469757536788186896735191462098045059337015644478576744807087701585957767588430892104055390134835952474059310352014231061391433926411887900722979984424300312396837155916566061759150457869115699369512031157144449460366754497328703688502776174147360500326605379875038147388287973938911771400041842436290724135241132759734690623300753192098944789650323008658095958953910513057462244924328457448885993405171335135347704440341143617013001502207084419477339595761362002281343692365022955807293968299492321313787009947606712933942845899249004608702922995352709471822003750118353920020576733668952694660858736206644835465690471259685123694451737145065289766826820924281693984879632268823294202449351977996086782937209033544503898909316369985282496047322306005699625614569347766162310465992141793954098448077645475121270813866505216872861347191419766711230573615688303975872263905359642008449939707794670011365522589548889119253707821681634004298240028606336123221666405288482774610155292135323665637919461823900129916204583293096788270694369930194244812899573544149914215888066650854353426440204819835909250490615572955592484413506205614761202082023529596919450702505748973741984859879593789111047864087823162457308654716323327480480187530828127091309429481735406944161781883984853035727141401171566125595651379196512353147259360598117309878681709567994745605481849191203326004339709155604817286360038082184186470546143184358619825876925901479405110189256488691413502832969836449184005900221504046465259861295006296057047361585673253196131899417325444216108919164558260522874792336170449694690568503398874043857481865940856205359504351913911517066816594422836651980644702414341510993216159006439136852071733669208917911355641693955054143389279850907681737781028832928679224550767839508085299115357919887733951792371817957911126648579043813962936445714099292540800826873427703509307295238468855229422932541447703858133899344230521269327241971115537034578382272308681317433154383007467680792078493596873091214857654106398289019609803520482979390135772923065659788090253644733801172806145604886816236421546762138158998857900060660073212322163944844497013357784289064724604945744767363998759200406257144668689086047792376654341363537250039990788528137799788520677754585027424374643693982427738625330873539386329885715489421876547554439692234861936752281900394653009840722032979696438987232000545301201779385913281752990101128849360745036328058363631585274489749063334628065706470743892622951322284899972858516808177181635009442510370254895427189403839065331035243093485745970129508620562549368213789762993863947050468840697765038547927269433900427875322329174578234011135083307523666328558691744308661873489266341927467943033065018718572342812892161389378170957692871754486524897799351351230020512671028106505801781752537687275936676492742600124988613122258132157320357207790321941836462417961455077652071786097598631725030823909432320838826022338847268779327598498710650811186641901196024351616576406170389458486675133615419403012043959596424885721390920349835759161532974804415621839234929433733506752176964950949418969998330737384823290996782698745513462570209122764771931198336347943423527688455351290949700263231969498688922700871065101706235796066089841337013574974698072800408475697146446272882598270477782488139628715272792623109891135912876089912400836872872564051452977543179287625461743473040490263019651286325572219618075817235782452035706321255273370061476093317264665701802339263075498329506060831876361950675951264034743805051441809937758985430057359393767041021183712003558268052029346849948663689205238918942447267437386124735163430415423595704400746890922448240031115143650577690782121624540643138944064853026191743486080855374066589126773211435320485429949732075424718368333770448528490171094701553449867244523228494253564841036159091202380971966981339467951468312765186419651948886273628664033438651305045517188998732326047293935439600339975561392394670789969055288215626744235773976376667771590196080338887243791383677637245785873768683975120704969983697066676275513748971238430707944217137027938081602098547134537101847726005402718129205741428435251589024224616749503475797516751267223589751283609183356411083695551783442204011970609788045733800041999480396558550432592577510139209800399668427735570897703788088021144493096010953134687765223234433022909474732472360917016671831535520363757058353810439958482967928976487287356843061020438634771657522059436185582769078817966652873236429672210354418470234118797400446508141718328885140286100666327236207298550689834743930774310637355151032367803123017380232917253974079696196154374345258353171202925028872653106213644544101877587797501968813215069739216275060891642905730837574981330117350444331970287826984274294991351163588510785198513456498178702929491150293434416203155011731100305306285936340796789541003334032269428212075257643069793162507620185848378300935021697443755110191102339474875224005407186996997832384735604770128410856442858401701390118115642601380230546725153962281210227517850527298293254260866721336226947440252281719051579846699074274416943314612510140436563153020205525674140679803991771057305359226547978256440241534015310212472622719674357283046290969951079464038851512913574493039984204887143807192906307003763886488918510283777282449041677218528672653521596375221047331091376378833077527850575882891300265415150198625148874603764898672203835367056673379318309688877611688122452809191315208898770837691612373893275174670072296974831338572816792805066966833908751046026277875227280387711743484455951678004496647470662160767510851390942902847508044442699024714009729776647491779448150975860857814879261052534265660136742518659129612721188063722508052974691086563399873358910375389599179309829417933360802855375618241637489315852440103524996418510133506464672659785523058608520775121152247813717126515959377319660772792589753619025993906125628829228148377471528106722693895002551885104147779699867686223233468626521256809038927653522681545667067930807874988806887515302185325791431739011196813763140382264163901487316276850526053069600368790142081777970349797275974303744033896611987626768411840467422612397912577955006189749550342474970300231254077350450390390402186679170292729779993379111901455504081437086981240483177477393403301008362921226358124738209907758845626015204843408123057478034311348539775591507517272981509044293478949227709818506185809070980453820699274427457234155333239058332943894848460773663461236709842304517665071173601669683631331884484327350657035013708628778843626768288884332815181522074639283944695794144478813770446014508777273646664557337117636543876722941281730581247996627707101570429458333491936393478514466831111188040411563194625095337506724378711970601379348035333812879530611149606968473112548709702140091819322927015253044078883387813838234947106954578679442068073021079327262815526603477023365265522680469070115958941744142241538678732229679049102515284045080199041123087878762872396145417838508792997903902934717757223091228112277915073882468393604559122425732736660249186059000132535866795894612222934093306854174136338380978060760201369262998973768033472030070540552214831831283991432239773038325738082168496647555355062521336937169512303908825372235288739650550549391953465889812209305112469260271590694987209190453788368559419064120080208046486458747732216751682122154236214466388399114811980689963557410283171494953188699233659462210871153153528598460254537444584765110824368876434822088272661019495856729456922709142934264208618652401106050427591534177470938845219641675372391433006864082015327722941126734456485777200467147193053766190856249970597642705951003036071739399181750971883240005970979831853282432712818636570303825345305342768622000232347561113691245692348985002306529623981356804393130500717633582881164219802851427149059313071335470839407093601394712896438124257714079307000964489507673231884249105620102768443148303362559634887715327147500219690025776432439858306510327392783647626410420034775333284007018119618668176537000283496011705597039121317129245007695196379375917200157217807225612100309248222729750172640597434571242188690451797962724349987303138098123385117411815202405842022083936249932027949692080750093948214908917514678817109357412699670964451447534708267416644520909742041633802564373979212914604659421469374080220682084011197755294192598948776498790477684155425708810662568761616588141908016227822044577265730256077928252723245368433125473501270921752069524658326965347449152919918656440198321563263145527655630445059977386242510091834151551178301598520822632489159654227038077808796314847327255831089085397052022317782938808697482292625906306682008463484212428704942700966257174250181687283000429075079643213198923652502121247126544335818409626919877892363273185331281133063245535358269690884327279913026495659620754758411477441290751371096443091038966979180342748536071050033903408182975338229149761036012150980034864856168645088876935601803137282869408834095249573694077190374216315631546381115253683847925014751463172274063144821138887206846034659168700883904369381785978804859996568561908993943834245028358099003751905669882303088676490612377461987423674641568719811932402073426347313376935877188695456917808587117783165518462163934927607918215914903946857177143365819579316263085051571968725237245140397488178777802412619580899639086313863639391046686322573296229823344940729129432530862292960904505151063027085059788528692020285466218808964132468074113761302712189562499402930483433548317424834346253933339420010746684328814556944389381534674947803912136537064700824092544551333280535863765698758952214439329843433946043414426730919546847929037381689978695332026677581117927109251069339792608384264100046005966111782155209696910431791593694961222123627501777057701929811772467429892177944172171883054651392916514409199197829645514602907222997673234566767597321809255424880736600706815370775022517333283998467927695191467086291318726141413486726101036017061909137188466570002159761822486070900094152722008350064951852543427633042569238231466207136109798622380839587285932069151654449366888515591793003367466853434966267852526683410552768070351499428946632271286722569918765851932633590357344474470174963939999481005232599465510640573867329914115875346738282879287726166068979394889404829344754204503456558113409860605579971500613105821014722122571284239673439358725570272429481604972761943581714301220254682124226685597100171838605164585797749940443752450373087592693827884215242501627481664082756436561950049263367967439973332601387197320896941372703472946226168451874853209311229116093118129459292516989541784416915379675963317557110050095980868851788666709741123420721837938655549115702241951429331763810679033982265321319125910799627213075900758522138652462750078809691551737459879738016488089227649700147888532183815951586370688531854346497967178944175727472570769538416285530000322003548020230901413276078789692597960974818034632591897958622994027718760345821283749139972494873233944041135416144846512178549416065216660043937670161930401673980298769847447270771175015149185903982510485657538967984700996575723384689401497712256731429911783646778261298452615292423609369508790108665053675415238031611995192877100037069120334258343852399999903919250526253340819133533229238415476122457597787464176403178926574081452996974876061545496567090455161972232798596182666381420369496312198404031384562367818758337866679542955299169248519386251071197271447354667551186383386036235070942955573529949740449817928275171642289786864075816630139908094877282636842848856817544149039565996873062753153225238727829695329679155705365524651739266576615815208190652191606077830113775211952429708779660278452562891798805541109915791595985622486751158936995691717518271785735870685916411820249735500489272369551802256985207904814539992506616035550726141278419678500726232936874585712077414617737959945762451458993450550787206008981578942632462839718242822401787086414508541497056763694615025047452634381406464226772225784880107026739663061898329817732752080107923545519903932431198134123475462568019638352794019495663249796766453027302376847866677371946616665322803370449233266313062801552317672656452017358504862432426304627815712616247875035141291710782424310345841675581358875246927983812046126858429286436009786828753326832593724779713083624807871796728759376504850009552034953576287962424012415130930169850907550209727925967588207620042256219171969511535755041074922912651480658927893571962783345639117048147039291777824190949295493250394904167413496043286306202145642274245496109363061562850690147282079551897194083385392471011742405661901556708772171610030253675412375368273343663185955064472925850224781425272595122466526420455934602172166620992745172300242127800933483242470428140836821187430797436858824672227219615752426198959785934871276762862118313788938624023616622910989627436666238141930219238360399411214030672164724620314208192053834965550798928826918035916408342999064023713823971194599346448959498604111255167673460544079017748134629856515372817590393966390620158042964725168582949378225173032953361742153367109918646521708893040382758337699433418735587814624465201269677454202855053166805449499981821495723553220498509317126718431546282818351861084879349624752065033023219087499760168928462314350267500372768855831377152124996822233975027130364382417339228930938462816150313293671934300701731168976285822298954058770838384436918078663363403728291517245751679021743004297459182849518143860282092505317478688084184451743854563851393329445759703232645647310032993389395750343574519788229096906503225855768990530595994586643638255497229134440933776145462930469308814065806639503948668210428308474868924429603441913207534730276237782953077436705405045003939332652725237697144586529289606839083109732869104906467527752309812082271786458064139802197813919574185666770588756825238254251887738429594725948543596386384850211219636316686910758283971027716903448282800753094508016633473875119413319465669906111755603651143087060629642701838991039816100655953539293236378314238339667521042206096713248836201102630304425877008222578754120461822651379691554374502017036322465723420019770783310700809590416052815477769911488608090684393909841710515707462028260373241191472074192755937307786052004162459560261070888866635482715010270442384968206161487633889373476514458346395809289986923072007705956836611201451252840379767974762969087115060645042893823905122932841630488355333635082445838419734838427335281227405844115153870511161764386728203284047609152602530575261402698350294177917248518058550326775287229961239353063973798220142645449853316655519911898325621571904952235165258548078973990207227031867612725208357300438399551491958520841713791032743593984160840903107885935199528991200759904042896319777190890908724225765500538950237469339623399480937832903025851612478811946629730848254350761728780615414916021939667630190864073988326864915707754918993605178310573093355303309444894285782209931787679086521051474730311418421984507576385580948261791380326317805808600493721335338088958790194238185439407059150166750316011881174356940225141193904532075386386933884270111066695977187968130925798593201343197741927787568462141139876725344232564190964758507008894363461489367953274361473002769241775746576323142379987812685978741567271727676323827739400524903814223599568637238096976469103219208043646187658912030094185051261212422746989698650278336139826590799075676667803828233647799295712235654954791838461033613068227363721819729006275465623764642861322254690114536643552509647876123364682289305825045305221226242817766379661249000810014554030461277977066019093132268509518174851375377406862196045528386784068437547022131442284695157101336180389675302209717706966464008068007652210694306254978053987940638593986772026423679410205473271205489085005637048197175162283625915492197587420693794050050767752744911450590659498817834941502751586906140246302474519759778573806764007627377570645874518935289274173572650384720064606647571341333043736940233814573244945277654145975519562294268830480818084925497404542317391745728310856148537701136079548394243892721340121199652238700254512029404196885967592415714478963353088540885553988665255879543320734680497854817908748722202482028744477694202164439537091237344498004955202798058304937163761120618126284362540516807113224841869190187829589406232860524221017632203685233073095531078107281614652415613834044859505356493657602147345093252100217574929101016812787704385548801146969958463951875264525669169546298559690084147103687487066174550146149458702297467111150365056172785629527031701839328980229759789444310601648433129312543655678538496172111149698032621841860809219529230253629396501040685477627636264951441475715802508360792608430239457300855972386201400523943768105923883404837379304984305994290454911438856355484581018679730110242555698176931637801115576845325004370724220984167389667555981069440983547572582684082165963427556293463742071790433917980279306085924977541869233173067099483777533789370891716105513624112947744973909951677158181909004525156783383752141256763690458888641402087796601393568377969897188171518657545687200752251364254413462658916756647865570019049387275704909938818064957019587109461041122713169309371448556644082786709620050336521111937677504808179657863566548382340201451578853816820970423624707148991779896496652886050793484563385287501900561240625103181957982701806648117150663040264783267450098678633448295335452307486751082395650133640350955793935018804093979272657638453325936012213020700151463841338704849152429729587139245656558785060123626635026876960498014557408278032356307594799572804533972150986768241785895652934279456471917363395810671973935741584754879204141718571842627092194127634163692166736129359120843261191038215876856426792837271694344971232292113431278846773761738661306975271685198618308148223557816127675908650785479935540390584371075420031168045011259444041531588083875661076733880885270416404452696748483765633698028681198038607456820249736819344948040974512925845967852218803426052178273440825917440186886260491662587534350063020376428678615832382155205296731735482915724186483542077416400864838840225403877634827643524515096092727376039368215093016955094451778711026624243364766681921450454621250475913748556769244785295530991244501036695317762955743990897021843532327402101824771269718527046638259695620865998306602385461651198699218114608621117139567663305603293019862075461962416603441344288349844971460611930028462315609088281074490533034676104609729756941595776660598317572330454690013472236529312583236279094077841590769259344350934905422605748079754652728889697404106253857453977133659188029490787629898348300524219555610853053681755955411591597989126577212027785830608045261648074538887462044137095199652822568261788597383579042723896692796002759547282721106670622025395441900322599773462099637210388451710726567075377826702357397202996809493473027318500217747725363055367277417111109470142866890055988932889861659672062630859631113929372147831235039317985166492333941004684500861956490122177053022274742891043333780879155653623897171063759281701992313101272951176122453865523222502688444399458458726105121734829782475464279574056071538310192210277718824782280053101560766728624626807852247608368174942742340138897073222190204937071233312673092619000643469850593394404597461936360836124548172717021818055975138973817462448951048733659373015815854401783882657178476315858272993480451259418623639941721860914877853370112877228699718421861155547798644909229636999793671087736468290009120194703858540469255303166200922846349978508425539952005729125998232793236431493695443276264863301088992948982042159445270874536504706178145914805033401225571926959776747234158450888498675672734025957081371897583906887904076957931234810496437465960077915736739302039396433313132847708964193726762656933360117236057947349588561561300139751862293477263604496153663871853026917983765393147555817262094864827471824623423907333404117265589056195540827713350467796864646639448054826761542095907320249726304151054690308330763046696095127853470018360483237572893108886001127780840296137691831910435796090465343008522919036100606878958709601791286030408217100145371911308750358631071331596026591315037330266628504435837283443132155541607245259228986734696189356640438284341410401989068360945524213200145647504308739627591471261506846510121544252432680306700682728739526621816834885651310353825650053198739028415842788471724923097567799798175025162535156909312663279193016239454500005026386586508596980474497598967471709721124780445335275866885430963902010493010901900303730497309280726874647013569343915924769862684812060471662880022565456386590784277702606061363366110702198522555498750445430911008297250796581541514378897123671403706150756616610520486180097560917955471750361544338209011984644012654017272590903993930093375232713883716068336974991431581999974704772947707657345580760388342714311332789423935253970573819378011927788804153583922660262479489964523425455218897437181547007013024571391629616277263831314360348188550767116683383924991455155158430707480081481054142132456584716621803266794084935518558410733409349381365243472852714948637560692275452520708879839414649499743884185512420226501851756308880753502063786006664878914265199498227063048824714699845068486261664965852076326367224175154181748992525732297284477291897066156857612078200892390949245198441742205079137769360779246421874291394132291257207042351216234964142080775986611662849799836270931531707570699657496013822072725033226209465709706243043347956537696034250593841344964213503209993152063914970125312215594359833514620571516777968712393346084826629503474674416140324885354584252051290312513324173936959604608644180558051411061533496617208153191356599500636615855946685852041639170760902187600869113681412853365899230585403116840897034515247283812549254509063290291935804131736664411191556473830916466902727862910933100525967835327512825249229433062476858152439443624513401663218785082088880763412398896555306092694524045096341374656387601754922033048969172552506632967831656783977330806124457748645644502175675591946623826785097953283321793783630598977532000049519997051012619275707823441056321861987821298693497053164830676756500948345376999231846889565635487407399616608472981147119415994069784239992893619056427792735516551910390260477877107555424970828555224407016578071433106123923075187069372510076525545623800189616057655167859117215115550353302444848017294338533968224402861177284401796612440635667915236140559120044617160066003831339431210741434902416173730842616608607615790823283051211500901905644062572499067487846977433963321147078472809614534116075477693820562346025095417038713752206183678914055567802266264734087065532908087737227928525764346509341205757562462646769164929511754545538797920444278993000467419593628199136232705968692838346525363838568790551884098261313349015114872471914634353085714010434269515777040674291793499115825620074465802924331706563807188892640335902631694032165619508092968108359280238365864181860615545608937150660496535955142412729661370426070492804961203861758432623334555884513504583491217374303536185322612971454716675792630148353051801834577541585102794878778677012804075732673785660136195888188705715201061973051181772770543007808293682937695505672412168663266021092588924345764611035957408830044327131980599245829407419340640535383514307044543534379618653113492698066219972616513844640733304142979057052286540071696400240458640726100542856135565107218297561453676032555473263453589370167879244760418657772737643095425194500395777817673042971285005667961770428901384185916056837828552816217726544913413997623074260638564388050580081763129436554826952148749066756857733232391800408822193314087388679566374468109401249083861211794815524658812134707626143818715356128827435347835053653627296517083517974067933001229515622124098044478714650837491028244808061714622490686754842940631501798300231745024248050608711457602208851237671411003426741747421630064611781384831064342184594004035272589603232116961208198059890078817912020279455595732947536287529057831909072340140163122063695612509232963123025508257175585001051950144017848447838258702424014211304970163537975383679466175444739562352127648622182937367532997249278368422935825294883748927340929607211255044540609016476190082587905293357737773953313321587290414984419103599518701690133775361494574800974592636754708879879175153056759788806086035494403425708336324292971607025405825349006121233864736192386899205825853454097128549858395625107716636895043544277666969944584317368873022377682633879058774126370819787060338472833833917995475686395254625653761913607240121279836059862492180654573671845921642703570030429703475571104681611560664159469676390742838405513053058420802331843347609144187336274662608269858874842841938688228005502473749385506911338309401723051447029488969028124489851232120460461393334997266722164994422136450789753767394580420309193124614102305344985153647925296042154511748243067906750339072291674114089690449506440549170607682997263982357831110181198064893402750992912844815667590458556680065367513404449676799646545648464120542001681871965596947642513993654206178262421345968506151885156948214251650070349770110850708022987618582717776633063806870591896195094395858819466906159597101256587349457093282710246159642567015793653820858126957087742201159022870382718571688382030711061479734583174830335524644522309931325516743851332750461329624143570977341369036675000061594500510177047730854043750427709824925350680776452795853737443714157782976970711791867682716153586190783213285476563489049209218729505673508942228981180463577885062375479061774276120067203923952552276942798147083452342147379413213106275906572665512685591589205095372051844809503704965411679506909573579483798942807312310555654110643633524478278361140523554715692175815919735913248744115382195838632683950976426744637145665080853866538212990708505194304948580194747626508584159661797666349512646225325296206786493174567179493702548536922149522711002281883151852479302145808040353092821750221862796071001449134621442253451563620887101190405681679727614334478942454873621609244186722717007398265828500329907754959200934595124893586040055452763139306782362276982108246203969212957064924257816242443609188491963121981469682939248415757262197589673765322094397878236503811083928248885821283547285792183658559020649330617017112951487237135405018874577011758564746188286985427985865795724900872811051197321314504911025946206762174706581413386353504883759286712748905584218571272110617510295254328060330746054256569975404712820557664050694134750543244406104947304419839112237312570048103712819025648228523185846811592451311766806970419918819304762097583806824449304982541948427104239242179572222129503733128607583242548198763226270015755510699588924121683356671438811293446383809463959171686574896082541012985851276677438641124829676544254720643009880415260839063186126208145761873859043347032394558216308032504207779427073725417168728119634888720113742687178454709725745594517904472671093506059596641147483546056423882298325503483375277412242290859148173461674230278441020846429677733192325913129704524965450992601270656034365016175960671649233351075777961220824283809964871093986046751423687076816896511013541834357407590931653951957687908505274968399268306634899077823351890445173963655758147435766427206767259751876238590390474961506518417642576373775454605223998420364183486563202563996445915166850434528250565989866492042770996369454198235435043002049483287090455029192318016904356582601145632586749632855153386163061987186543386094454840793845140539185278737441212885814145768030113040817097928137217621428581346197778731080347919077046787923305393150525140149124986611270473828778763897351637804714333035756551436231816127947920953808671214449781595041913866703071944398692548221391066393698585096773790140853177210859218343225903774742139299656909785043181285134538088170014098169027498208050590702795003857736128434052731228950422500780856751339867354150576569248538865106784888326602768551183770933005838538041703759283173097548181760629520232974616101047896395682380457937507151382093919257112850287677281381646131780181748797731102374384096363160820518437268440975237858905986287446505181008797850237531921336918261881631447888323392813711650783174725856801905499747889754235105360346211241346121050865596545289708983894763830913984408094567689941253495880930544964439856830276977228251282944029620582177689140554579361978918882275987720801312103313538992027649846179486387682152070546027582612422346559159723596847583938894551918801898243905404216780750567530387090556953519528360466600344839151017707140728285715955610875871639850806033887075780497508420801338378074359412249921722249979233072365753202098839834607464123048183345154554214831208450419494819030640319678492048664023495565820819012635559152849442636950904825841140532351764541628145466367604392249078198840881130160783317289302938045056618989939966142853744059965756404036689631607598914851022790100956521806445533364209365462955398672164756925100733446178648882810197813413570913477580699170304318020920736840485347544917991519739528830399234192831905371148112137825153498028212213031337549018901913870647487386745078051545577663013632815706334369459179544078707628803165808886499193583961657274283085196211008460551983201893498243773354975780578426593612426059547831957541459508980530078882957853767409271717155390674063204558887278851357308470303209856527974460722719825458324386272328038311728734944859831393080970106211691434266772555241541695671979600859254409301337393554080994297745067147411111544162559749495497416837953621469971343148501785579604808103150802583879885318986419599506632682364619936519332404139996751069838882029365411348811834262246536124078952829123423187605247639626461973234997300961822502104420228898041455573257728366273593186358310987435399819906999358399227595266017648651567106825792110952234287420009432542412197572844156526019370409070697115595445040784511911880859802251504493306292286700004990559998485982116923686678002940038041197060997875356947082634383848881461712707287847647858273029663120549104517264187875068693740013032311849421702220948145196874767307339923753680509623736068703865389551452011943222971532126769145543210690217139972308405292066726250874943162753733163826102397462058007431921496032338948692512904722255524396527366863821141614436954772772842639661698245009451910917181554038326367376866383444548350062165466094965364956171551742235778458417406933316156105303190429481600593322308062713381922831301151715383580324893298047237862515874899205478325966699897983502494599789212617851353070139487622305498619161541725984658633124064615228255645926468823091098074992424328719904314674414453108720918945964825943544357095945452879356095052524218017597180935216835051466821892030340012965441685662891612490699828477330458159976370119989624947658595460391883873672593534326987654776899209661596624196227569159212561267995975280191853494340424786086646356263422738400017546401715854144903315762632655154976541475262625236554898761813445048307929243061118500241813988640159203395401809218128519032830271105628600031260923521077835686255965495223459003888161050437956725569977263171709795334435270403216414810147328001385588253886176947135897513511363196196466143997423521015058065681161177125298058432984837599130311313489810606766564237013697279891931659061495808799701764008672136265142619806220052112065867014539972118487012430141857519259936995535253465244242953556744337888929916401502755439285031854144902081413613208182066812132947687999286914737338092791600837605914655653914020504287388986897837355454355480647897131513791633794961334314610745190660916770969672925688995452683628428110486839826502582209919095876035533200744450462476733668762289793682591500337777928157027094254910783178976993268672888160698930800383663233858855306445398185043987288961226499444518742356514741383160060402242561178781390629290405036612707146960748605972528623844378582192087620879384803028848501723890957525009391473075123675935026691417476891858372461460655342662450922508479833184474189716713547181450212534577979977709358012031172429007573674501782664066425597380745866410804150011210678196075504063105331672773880453988513695459361749870100597847268987310910022659714090000964917864285075973843597541870837606635411508267960007087151318692973793920398242898897944833428684717963611014700488544964727624270751777308467124146852569515662156251654782447224137924319730013880486562728454228138082558131189566053839975775884227929895307425406403348146736311029575766761830139280491759952176886656145185966217159675719550872419151161164692871533948438345126104777300262795358796512097227264190299497880565160524490513595343026978464225650844372343407566877198502628028707557835432485320966248708422088332133178955370337986890353623186922949018570266775849050093740278323764234014334173357686793119784155432452750709136435483590855210439874320589245629857479985710781419765963416020433860679916422937043182818645383761552612623054976808165534162775624816506569937503483238084904671126148710573691037321298474768260480867946485814398419247485756811041765896580839466212917229753453008459447146614759457657911384906659715836554693256316147907783780965484936351874010147558440882330770649910623530503167222010544714302093869961695027591804174368705985342274271501884473148206290236910931667914758271281985103199332434510858823493102926484731507959569545446593866091160385197744340757281276253073561342975267413551458594946868450109587335167650796501971931974646774903387709339333693619816812337859918000964443585334023418839569076130585207810692109091613552476165898449516939912311964785782999921054066496230330236789153679918556247517782156406096966573629381496613626707541121972606098164074651572373981527052162164990778413144067833958360514073515957585165887382224039320512651360888886653561183185205772041612770610803756118064381621701675548025812339952411535337069225954244562845013541687724368287277674796856053460969605775829787311461482402797684374118230239647995024182874689781501350741599116496409355963604262853971299000544207338304284069948015460739218172352567664233227942686865198557892477101497901264956841690524676208292854140292217668636713100603509479136294530909943994365086227947495818801849173661022315502623778582661629121215954885246374171980463465387967587213462329549009008029040332340271443220905056188665165281597452539120044300928331042953203195557125934949168448169230226122744523363654914455549492993596228938503311117281215724260954213372763903387624622431674130166904799862504533761636436922330238017969456242782268144810236905297345840042403584729240908252748480009105234063180040571898792045972680371218214463085216619313003706908726077459640446311415645766629473092923532540013955658574101592121072829700328998826822334263178756686602685840192628515233574769447415966358099850510595119077777831398850392333033521337711936481474725308491031772894005441497639112057969746228710315518584400615586988542690374372455504097386657416856411136498484570787564878313870472943829308250418720221417447296377024308669434436376211967770826553275761896475354278381956498668899180136247883079590479080696913163796063011906404040946089695072278731550850700810028412665660496044746231013644165471035423821475922733992782747566729480117821893271492742499329301975125142918174600347011698217591266333817150440827552399817795838014825673769503861409496973986982257471103626667797038659008400231156166259135567037298986599978332668323887978886879362520574109808634588432904229334924870300817290528127865973662186924169061258608401094563964818092559617449204378700867471966954515930945194179235246741330369030416597280202228352052264884534930840275556879924453270454609727777455190357523374346947930667393175179362282275198325695408121026851380902752280491998259215481046197565003366897433850563492431253671020684009127512625432090367314080235304362268839207127601566667634192039489771515333670355886267913194850376317386081167272760931762712155729877075199218186636685602018790792739291069060641840297660939625590948829669098355115892951200094162936867551523711195386501989452356295565430986111772156849584740942794078848309664637815283127911747397159016600763766286883572089046658083944841295422035472259256090113317058829716784825755698284047942422529208217043520804683320829374664127080560302471085421145104874733656647122977561695674794957844258635684704284791638529819493534917233013131720546537121221925490633529659715486394680593597175137905372500828065266255529499809181175424493705412549545241514144617050508796681186405787328576540899418064990636273653562828433332180634404867237424887824036672683086575666198419747902628639745806399554145751889717164481716572888003902628846539179960014263287654245317630486988481376610309644963112252370040282178899280965270342386213760199570732850503083008981499870520240724062789514015673639945755390019194127470411128508118230096675855486748463452840310153876718169601345115496220674816267353328124155523240915736572904523515137906492735812480999953368948364910168198108137415236018440644569869946376629501214276732336195629645349255895472904398922965485317041848144995901991852081161100640787706393298960874118598281462132943539620233779902725361680989176490601212673415514119618831336253101104199887995351157209189517957013192992450594140867649747157211271699073269335219913240409767448696401134766156860590484466975800286123774560526590481438920008643362880126833431517848851870268259224098440253970232666520997528332629614472380297953303565892382433563702809068295786357177213175384333271589677440071489645942896776772046429672831554863049685411783240656053238861606618703892691018975504399950662772913511397713230229493996869973222351385775401406000059878840882565259221871572333961586959949023148616329868117402130111862205168105236158478261950474492853830248050560784150041816726601962960495982754101663435744634543690776982302024348065424957805962231802008025737105025082058713684605313415007790408838607488926409595068745545569058778532922602678568734326751478009205406851357526408538771711775644917645361618414424394596094966321032351124986227706684915444793238338560174556484654868821878940255040264607274499882979070905039746123245319154071615563617216606269964686854723651218824544129668362214867105100975581908990705892122367785226362657404351828023827882887379193438579000495638360810514554934271045332991899495081638485433010604926997695691136366770311880196469779200986436078134444317144180162750458366923597667292150501858500698677518839939371525015897811714893576296887934938818542509350990608713654411240263900674025914663675050223786040048257044505860070324161583982758613446709185014785547808543207812929880639725342487870613802057781647257021900139021918623494256772442973489172988551020786701963942273041151942527393056218386083702537716530138324155880511964824049164434327781022367551451567793729910733242160787778636441133500542831663733905015367175211375710750633245184385638850727951077186061020507178968894684472130502346633819498442754829051774093134650786883327460339617471951472016201858634000023410067669891524783320210695877183260206036079071893674661623093434541874435014505483005999232094557096533851292992324839970646563640187045612737429326957946730442512165419665544824796560423586355210284988348723979404970699237852443648067923915977739683406487072534680969226838474154250498890252926365794423920178090077128427128966802305368257000548001029247083073941062790722704553889269865586243643075486134095259439707713257494997462433242376756359061777217512908977035326391524116066306714867569164681863728120994698523037517799451607755835439611925345244337925084007837771399972625666004630054981056634268470447881890370515976866225123890086061048048557903165490051661439746117489602586582403789091389421353069921437841430339855994325239278701795452154737376648680391312224453351294332424440891160373360391022430061915526825917043063851309628016947462719111601669097898616071065113526321912853213502153379530726019604704272509021136863742690441184626656417224857269566126526985839524803630471098474732892666509339532790983758336421323584619369718201455139723768797602139635277151500808328328316686065052022962494595782955910047076669929580546460197566094217641684046251898800492315969714814861812602863852784184557281729381324211871897566759841324749249600328672643939948437961417713402463089236826376713724004787632349275371319186947761339034986367038647866256467407130972761322848274347345965996148662522537546098675838528170058827584708759149442114475825128645330810331320720382077336137459527974648316558010451933291126971888536108137557926041695546202735065399352615446864298926000530596542667354401649856526499962644709811714526118051208406513791083725424458410921023608203018371417439396039310228672445390234791128208382423401375991106327549359746578141518895951457828174409509980582363724385686803009948139668365011246371104239619338179419143949735055398290869099726874303017304689742657316208776743688404862170407969435614899226300740234509242055837109189317073379231161003359608033316071029803402803943734747736819134854503362905031029413550617960743965762595941019446770835935491072739748453553845230259558950800060841817309480592756177806734128588987397896937487575443398345214542026150132186664180476534178390482458921086091673713693028563061467330303427489591262052021074931056487198581291372269100802725312288457018268966988840588887862814753943325165698271437950892530627382065078419548411868337080073409401992445658456335256754781488990145817166512371294908968651774898795861192145558251434030522845556372135583444165627650420656826930716229861928153822539751151632002253557578680099951418833683084868660772498716671653505796823778648062681884605365642506357506909085774792395037175625801971461267768436643505636670504300925765933424914736026721801964425474383083153572510690962841347724027054302645173029588717441703073703639862606150134858495962921309521205765942210988474785412844872970082707464943049648691136046345062728639253490323990930549625117762648675053748827475233620651220356658001208640414126675419665281822953563699818631453549690766949823291581773300439409450953710008166875877937672664461247501222625031826512819604358012894573717686041542170712791554159851778097236942142619258917213689473400540813705413239355768535074369027243639657924962529142480290042693146569306381021074781548841389392535410956707572597969602088304890297872453477808293729951140551109391767160661424261436853980709602113046478257724049757898373156790771954125223563470042771123231821912961084520752189132150034689862537437128517392455540792532957016713056007827387448510065273331395102208637198381765640261699530625819647457388707462476369687563385848559898134112592390669076732784057621559578685070272290863942365390837205904486007563554100247315163865965717587530243737127183147281603796710393160777063527062237991654714520233984601382315493240175189090273082846873020945161330497041318920614956395571599033184483674673127105181267961819584523444660680947513184916307782862553457441392834940986813649337068003777439272644018241279687082177565901934756295881366969180394005629126153833866073146686781544847289154778583748145913644739276839408531934878967966613851862039900344904260546485615959796000248766350175131411078512790244640414206708505625444800848191343184251998126225770176594948386258850378552352186629279999706711097576409823965160162503430358770707826891738102572808703426369532043175079928355970838788823625820790807392127889108082975792103167823941872343956923115599717187580930457983437424466620578837191285636184661144891566665457200173650790925290652665624487060385647921571187036554332304817860582372715616006567244397404909253324200545409254329259709722366050164825323947614671508912562328666288363674679940721100248795804709795561857381120805440176898364324530146822044341174698070242139626169297753654724959684959493156560892586077543800847225523729057896981186149334624818111635665511646371310052191733708372043705879370200773508840241356194204218416341096284011978543046604073230216097113865474099363068163704029131880700562128425902390349305848085937779207304778297607635597746068653886115051776160110251027686670904559980763398226763822368037849418936396349961472320344209695738508066381413900440959144453988010388599378653232305063951925855438846316378837427155267483364966585335041402140720420168259201926442446170111803819302750942685772796455842888057418099970416168125894611992897773724089836995498759152742632594039170213424913667102541379398894472547092092688456622359658937132114342667344195753880518579970182960925111744013043365695581115206339724866111937657045797787000852395974124654458762245211832318496158882709487029444587479957480741105844971318884771601899510056466566102473943091826219713204871992702789827938574039904553436710990220088164353497837183981984748690094167488552970207222909757500358935381513562791434125857988072283262871574320711898950418242541333357488366279405492704880762721668131842220180798387155621508761573077075417398464444920028261697243415893120925793657866011543071801186044759266266080088970756137393314405537094079017911715677296577775315681242669504003622199168786769914775237410405508693318774117953958557978676213511998654889468821225117992641702611845211159771542522682113615491672018576493712149839156887579040714324531643483041123873540366174904383279209863219922538834486350464263548363264468218045363356787953736828930965015859775705599739631077221647851331508224093980391336000393111968774132564319279075785996215881437503379498877742322110066861368747005252951460867204376504910722048705701159913796007192307601730638199792754501581509660135643159048095962737810370385777795250282073551605180211040316188176301239660625211448943022747876809805518451009632465406915932934037572015477100725491099126346827411014859716123877122278138460576417432353234945885232936584426242286673569335875825885595174161257712520097242878774593776903984000981730660207841728352405088307657611516820894731904607989721508493457038326984372731404314122489780625063598016938634791204272816526404154852825899308101737520105558383056083250961318674570621028902406960389385585870933203380736292578888595039386161870884084202828081488745214646626596380312765954491443681791865781821051435111769285012890933203968645977184899215602388685144068229125746206787388249025703620022329823961993588115335561268378257840692670164421030949615130208010177567549217580523014788064197248943314094121056773665871347170159332821977167940711652383527934877892988506725526193166963487958257801256396938466121040029368076136948859515655526685821034043212543857489590204783685709620767381456971331271857044033473316569427429913095749234028348885482250581754684445385887349084642346540918245209994021151317328320293106062150190548152090940386846393766597002286111811718192075013579580983115690828227227522510777278400346706073711525086875918875285035690785485004515840425949250671619463763835353200783020330921529246570259039109659448826248825542965738032103823240995044987601064048304588800553509685352724593518442316488976632913442286675725759987318303764108576340559832927970387768618236854468044806918679042376392016591373670548063006850517751573162742697982497456571344135762919436086074785192049910584100365270858412667860818683443645436811554422547967431833707280060560693357530369722220355320254568324275107196679640943464005245948900939042179505905643492820877365948672651092332606420754809386697998447082432860557927406794096964361498532652080604829280531382744055432362092092747533458499556410304008489666996162764444387673844555659138667896648530544684403966189146731548059362201195929036064111972198344189436907895424723920165283248495330756135448271282933450024310651555891214043276191447898143189824585831544528502551488364789843485701547451919139600389262984115507575016272628642244915759436748081254646118195216669186603988617238674889012558293758137468319135624430582856277596334723918555043645754502612071198729634089380170045599077846048692867607363198145452781187318463716415076427082871732404510818039542727820876456916592394754437077837316484074551686320114613674892532502523329685341105422402054541850948858937702931255063094135398912815956870037564530051023791954226527365008630696262040032081184567166470446460500735655778038010780873078751030726494105447938695087513985648714886659238164334819603318958477127779354146166262469773284981118654136980402134870542001352715396724944930018045070699409219955540755956565859032620096664115739719153214255784858826807405257266509674275470373823397326106496335029225317250123226810251574284009768320550172336436132138466732270568201599721998266238267663818292987197842126262652942006091420017832676357379458802189797632419681203121441340660227279322546631444681239564256069935294717194723852857120192742393682340111463337974187901553982233977359728648058801289026128740326289243710780086622305430229437444786522231194794604139042683975426602009591118537986710958267656648564722967935152158247964461762962100216250871317954885926325421859146828420566598996894549551699699127397814700790458457119610567097671802474378850820018075674495057466187102537696078178538169618528535086707956792925806099264903260128794681856861412374075588245624206687065265231334962834487633485183895164239345290207793803718893046845346935648313916046277038982235529683562058797463544841980871662764726400426228855596656277426323384519992746788329037931979142441830384432645234366224159936203973644682205783801537565017387872398851008656331102831923416727675619864367917900438978450212988542218783539747257305565324315635575591737461858469760710307327003769385264310391145210001164610194353847706587193612613738365487565106280993011452843872438968851814327317336955629523680993391652295799520122057497868482727995895048306943269807934406668176217234315690516237462342058936721303162373987916778932509500094984655727250760897077522545761230082867460245457463064384461720614721605487114528010919052159764298505779464986166233889012972065399914823913048611276495407234277600817259915142118557295133993716808219275085026422391943340890921499320261476023533186511008026541159123080329998970320217176893729720674987713958241547609129285868376527688973597005036533410572948232049861974007806017447299872002575141827283728926018738996933938943386870421138830366990298264611749537057511180640768074611340233306170386665755793924119656619880408523871438431394839313048984467609496113461583799711892887740829081176175002629899423469138116512103658187850450621979094468166338653844966348494410679239399061821625166479088674358481588533641965114172867889752770264675257525801062519662514821762166243237740159549758641060906612301900681852062041942306748072462940115164022059573824782227486202999451673642721200883515777040079299379531942967143546043964635461491458176614588719356905633965903639836523878207195232865972087331103522777158543745632897283901724060985662015882789313001998846861248156270341656092205893905866219298974987419946305301925079584821669294398137718118077430583325504190173345421999802676575390199707142724580362615700525491490479777974360461250327298816207635825936590284219948346916808300295229060454088630466774076592674061890344800309519278768399411981525072646999009985427281539232054421396344619514200907997032317354100732448626636913254633657809885197894571041016044190965575316073162381522170672914458059466634018759366216248068026850884962564042555826345521462263969137015342944790421711067439956707442922626949883513072969318236960086081268353844747029275547110272706716403270828838124937793186794532914959428398433248266453874762998183611611052232539828426565559684621025935994614966127654615785146005263626906350074106618000265120942407360271920369765205919332257573468121048475980071430457206511157714158151356638226297019505255119534332376385727064041071543931013971325260296558671038107931825148438793392278998760999242815533626944719903356262090858268345925886445975585478270950269103789079651291459748015414024520777061250657724669761837129218594436313923677669750932844199853202677952057668229138782766988220560447570958971201834523115991947672710196988366707824966391964440751955551885390462418301167338293379022689373690270755879636023404501489782473179256965151683941106474005764414553912228507076095685134615333732569854070850195690618685652385870464970521434940203772538623776309538977436783555499860014420884605157787337917806132880690173409404034603442204881159090805639727183361422166408160256584254846546194236657742706521400307745868506659284715126230394644961693601527857713027020694555616916639941062171150832159432071973239850548927888974353623901966400657639399054802753372824040663014627257946367789980584247736748395649984688231157935702204839507723311064621395244723689243971335523660971765760039518012103991351378389982287214365501980970669434923895022116410743895759376236011998055953811095052023143664462887532302203691363723282530431802171168869130016610407358018362024752794813260350337251396881737188310442365282079080175835717569184851200503657725563883074379863579819788833550474549264958585572409953237496837850759559706941989804246055850754856707966304594512209380274899278301835762389796229876329916116034333121387973168604220606459509175433825619693095886918866100964145242298336248538602563689520801725674231324325556078653676526085136062663270681153821678915635742356996385549643275512460384091826238319042538220924844633396317158667029354687482043774065114836904960042382632132086937119047038763193236750382717728351855942379985201196943515676685915245712999473561777086584604868148038770815857903423261455792864548715678521434254293408739119765597909728330737216634558482592830007181142001596593583459851069221272232589716767332552471572990576812036961100420223366014576398253718720590068864251869030686970223230408707490599083027711135135632551232325983376408776738288062239193018437393539576713118336987258766460397118078432708590505275758418965203948508354222737176865738740364493307850817991033936588061400931833013879498826122443594006622636939602730564013469056726486867346491071173392796229804948525657405431410068650129455694489438351853864679824582646203424139989397392405904199001912321190730309450630694270137994549377593511394041533956689118366298055996001867218278341581959533384108144710613189806553791640670203672852608600505445716441093448383381622038382552673535127472572460786456402378022769100111600380494510434071988413241905084317191258280568032944071648664130226772073215181463266147927624570179615282872564040400613827508453346967520080893539575182230682354515199939733820591777954318830396301113564040714445688007256359034167594835470267237480851990405720423549622421695911116757655170221651155007572736204865235067996326027114437656785729821804472780227846226494264385120521653350008457491055942967017286110508614208715977498485663692120043129884968528998250034333451771284940284315682624042585063026251487905676431908735199644212775096773265737763334572020047944424066915150604873788513111635281978869038378305771205031533501442782795429476774785658059653803911656045978194628845087598195395948113071642768633513335437948576918846356722536491166177557273008822790278638588256201522643295400266965616311654929213192921140659160515434328299608477594692008725938378596408275731622070536285048550073309650212466162840263934563042818377305180549793226483318855146151871416438690460537149759480317186645355395857066917618924721237804903685470744169737657922799832542486726892725213235422502609026977894762187443551439602071488827248724246265851526765492161060830451393900021903481801371301014954262038097819864547099216530684463316709868840903573864396536610435211459489722033006211026784344872212694203848146822251007573556735589270745638973216659767209504739188080951206008839840692207546660139038643600631739333986848547697924498155884257252178400163681386530357513585847511836432566414869096650147188341835731745030393973179451910971838801826525094249114623385486493713734508232957636406498867756600688031853818433279879794293957608412117442459085703278004069283001064483740198056641440349050854242140929400461605763568904671103077833159914750180063484591082502659943200972009095459937941686193774168579098677259643183707799293099106773816155380151035629287504993809531514221353143048553941978147053256753618339350081459020791816562942062241014334827169521190940747024151507770150625721045456478967487095885691012137675572008172951304289259662878913416357739851007527804699454994538507934795870590787841100308641978609530921702215086630257675225059515510419937042311155266970076841728157008833279064021399617084230041117652800751805998544759413462502177811077221939667578736365117563379350969821919011899665346577546940228846765933986598624021147479798183158213035872892974363996827331541327292179361670019957740037784237969548265658407278673989701362044393788066080092737754350809078698285620797854292300519004303377640286490054652726697347478012126620377077691836872338420134360004863088241256675934099026025963642638257204965826239344870727898243738336746165522913438669160998653561428560071246918464321508598518319973384815029753169315689186848936171848276343227934747285912697242079198089754738938536167879894249414282222098571975877081107537065712504570458861148453895165462764270575856364729759416203558029751803398948438292975846461873858594171548703497255175804171250963297853345115099118050177860358184044682244757543751464979896206122411585455705147521876200288976693820722008030300304281763975285893025655382173823186053705713170175421344438407106367286366356116600192368585590304047993445520923462283200401482690531368740709597249013835297810779641798850098908485725755105380450384837593922376305829769541151464287498060593452829703855088876533694467358566714071293579584782117228023389862736146344019226374139794240991402049274321237851637301201164107744377052478880200393333925945182881632060138043690699965158811492365893421840853726094260517577691818446040816816137158357967684571718364920402538683450125199038028797602591758910836634080888987239238227955067444623491562618435383043657097817154065620569736753078940455075703058027268471601809647444034600465611651908676359971510541603957581491916402314056318155056380268903574091945686003802025441382426538331310856622034471466409607233191915805726032777029514140126318285616686053536852642495341241646991180157355634358443709847315467442659289609833859196411801258994331859739214368698005618003681479151767593646711476661662079145658027353218469642536052372820653584429445022775432577873666778587221915388430340436703010040909575897669334235895357645028989904649176898075336468617851706480760980721160278931460085582518918780470994029002109777315057159538678294667017230582361462933369430977017713799008651500388410545874464190340844547188479633264359932019031880096528082270042305611292690424149870019359589962456617400323343385149647161542672993823534307169434391918322043575933397497324769035634012883640922226247843967956518176960305295062459138928518677042707907884381143770386987209619940545577591126252120790415687962728523032689815494729632851609653352969862351854781283168267680368930392409921119675274807376448480786863816471861836401748977652827649763363675083022005367628948265324831913500114874863484784374799477234370454964333185793614397244288084358577171048578824393561729816206204945108334655087297157025221233856860751249179145174341522940538895862577674643283753448205437983819608570390451839181224973977653338747403035568588821869162691704921636910231016349715386659239545050334402181598232374910348903795028724066330156011584872600408990086265561934656842180087753987128087455106982657106691058783122134323599328334336791706815962080967442343268512686267560036849549765563113879732355145604505307414896001911726691838412862422291990536407714994491850016633193119934201494228172772267075337201339503782036664008159684311380330427088382459129743607490809310441070069313307138228196898527785407475254765796439704073739386422778682654576858735381518565548868379664638236911185716778450865449748734958972527923657958484648027611111652816110353822126160701939087804428540821078380360997532312683987372321892390608354389232295274089453665627787344353034734471604456948249828065152795389240785590886463688366741749811931575203589196496644834247770953162885271956129002642611083804462786707374594250775840976171782459014382077908597341088489779298626719773728320844758393723634808740160720906954640485741058378210772798843595027078346962586586044400033912774290066072586031223076214286537079133624468339843539041244478521228481359847275787793880007170277413497707837569460666573471104296152559374925843542047406230950227978726210524120502462327672527866789623384100869925539511748454271263825232717129149477401313185886488792502500815127016071797508344093476624320763533441671559895359469781893080677439555745482118203339488387716809948565889313835055150886971466804886097500882257937719266313594081988108548269259813498119183998620520584433943290223073047438650381321082491094795206417404013227933358919959040184671329830294389282227191828132899908713361673518709873493409897124514252391319740282841018462910187634317268633134198416457115029849783198136908519545942397219749374963148193672345819052177083965340780296587634059939630723056923526322736802447575675578883116191957276165039379791221166201890388447493706455541923294568095469875667118355571932347839897912733759336902933023406379087788810743961309460168082851925364466023697660581922405214229056309622071946219437402443691198575696124429009273243919891877349690037204539346721850113449374964432652725902038224614844450985896752871221507157800615714821388406102643391190863875527408440974720195198431430299292644815689182914665562207510944950377427154512713785695967053285217473187314617534786928344947989203520612488535076489373207297685056888800150088005803142752130346371208798268712080479694661426455491882773537845005039740746218335014787764944989008702944572845541399183746968438493082576288490257179601576254888704011684001080364932608933255480831756925937108969232686711309974596383523931569864388300234734893738267929079067421136591899418706809705436257543478759069587567338144169215738704017492060813931853552511443279106905170383774443047285157044952253860726093253238717173139606127190731123245351254860872334330304023198916098145140776948888363238275344722441108524338358700702274749796929663152312814144260903571259798620208728645751459966467617373322202511320593593944108242924763348344677328962327561581113038901466723137115492431832113075036127865649046357371293232525749217259410889854200107529788213104137720884584569024088563636336447419687691325941497631397528437753815604200524420544595049354670443242631984791450384377536169577112011081230444831239968391842518069970724637045962346238036643686994840144743349367921339896491747168177276327329188324395014656436686823931375250567853913055803072910466675008371847816605450349610189532147342326613970879145958580462489855671652229889943971840936719565082101021365635160973010784885108747488107822981742737777087962931092077865494553347876599410951749089380127770002179400200807474152875834526444100244139526234902822209675919220153160314053680954896937765549646479795165210293105553242713479183459272436196449571565689097548591273593095271348671777147226564368807662593546968072251910431851470152656814661384599463837265179014566413939524553722983544567427760112710736130405220575964678007687306926961253480417410966387463115654053300347905409345202523613796127215613398445589192142194864884469214681635153175054283532991206042344987088408917551595463030333056887260277946232923461089888534225237120379900748086014036962212257271615771744617588191186725640898305260149641086505875470650408877364322181215864967859338971071291400551027721953424228723514313832730350128193626324495615700258963621489618437200800472307505993113661803129531774798601670158957519516716485021758094380447082190145811153822192357055789349444575536450806468477111122055345992167365171475889804107942697233119480217240556500596156103099131032670236390371072718551133559470128864604069616257690876708930876689451895631861251265503433270918141137714545110715096980843515655516469828483476888476967183745476209630628023626477490187027619020435413992161086426187519823278276397102790210335558152792152733196903540744587526806760492724812466086352401188238875983980583098573270503807231175359170691467963711057767334687360657589952379313491265959424591668198874312445205187625378656131496999408249380032589663848344024399967467091542675332184516254488369689365675512929161714372763906189551334546281585593982047693958430266585214708918420266332218980180453497206295959769833318340741654837937354785268927012142007584499641478789936474458433227304178533434036232661617565161412643159169876817517891042588708541051402933390426005850540765398437630367120025979575398240120920852464241844610991204971627935788392899917940287627095591390309025832197923533476440541363888893088017108516816895209496386712280611781587678068426312055711995830590554982625173789593941111469467879451595703105758503559712372121819655819571367071847120914184757500156251590601993711025276571106759438724640929147758473883773980895008217700477931735294216248954183637990286870399005424705457098788882829900537255181221927199075585201143692730497672918535752037236390013623610732432206187618671131463043402255596373930531065039070202198409670246119342155055783950243051227148811623324993717438049245194566272196324190831610655141030780557605346750034572126844306474244282890834459196176170777504111021645437454541509068569752840880361034842177771122023010680718112549614288908340412622536202042969576941948121917760911548286220520855917344140684630209801668120699145779809289265120833718153256619773496128710945405468482428135535609702721707554152075440158529145672815602364449840859372758470056520223379415981974112342446157385173666062332712314686622797447857070125828451482722632023703337005034060969990611346976133748942302586268208682735912162605988908002631627264057169315971118352655448814038571796207041258531304983019739426455109467263773481746598594913696853221580339900943552065851961702882223379035882082249842292998766740474525870083477382700996693803426880295687981839552926159115824152672648193625176228565593302321388665624781520791873625952155612461684752895775659335722157108481788513955935287534771861037201242041044199860122831460868343441217705858007867074694915307058824915187726033119732623236871538615311409031135429483882942553322325628646050754084402342311594999662946497270367823396060643977660288679325575667725063637982770279950851217459475707014675922132993078747902012415502110501431725982044588145594764370801575175798164394101589765594694743542850412628722960677674017229843348109949119184975164758820981756531430050131006738922799537804892127641488726766547903656051832177523028011222423566604965097669551068170862839558364631290608315083115277615607935539996877488982342468391476262484647883662728671820993613733796209281784009222753724764613321811042207388104746371549991478289070400848861629404920127574752657863551863060660513368870626398882389034180386460334849906095891672735528740260081220407841958285941207215473609665603464468132252372700134048632717407740525764311280603334752699537488256135740633758083013496624203036403669665946505323560831625118855106215578663352249562680149103033756711777165133142173610023858284855619462655893613074346925077639545004704890383164257535823596830041026672137705799012812063153259771503633049029924355597813954487206867139299451180462103965175362921171861320698334722426437359302663901986763879233337579830675980804689469814332074903135025606133259318045672435356816229449374255638306188685776095287317957308593351845504127091864992815323864710071748674925414078021641949013672771145766522809929103773323242760017605069198898789628952477146455039772728706953494826405218363043457071929141874243455565192030164379973117270254350115586174092971408696930951558880284740631494136181123745544601165500609377827764881132944229813921128710276825906925807241320044949727128291668757829823121019135354556621723962176624955208376465028342730234709108374996442625228664737478832232555062838886031831249844625729322116392163390820604937956167539626963908836411550658042361365436900285636027455804047699121017697235532518467632838269403779036204589058523371927276694051531174862235435695979461450270545185395687318725237690165976524540704306460723524718209388090584360717508033563265156991719043427195876923088715165933810737766568437722678912398947907139486565722919752019507954346993224715758676115078733420035944948327233816021724885624590337484611303003461226018182212438544695783216372629247367587734363428829242868269831975696870471060909268850520778996730080021807150737048015626315440720836690387568289846093801884783632094435974533736621653972305654197255182077356445950299738043489832709326636364477740709058538990480043982018021093495396425944199172431423784890230427316407192755017855065136730492938882810333536673207120269260175679645741795239443590607761203130864855463221466942232297764202721786977024501877929580600329467579490572389153342342026782941878491780506180038887944074645736767205408693913979251977232514997537755912162375448299649197040047312142097985515597594899107456793456317511320275953478297366992671459663464858511565056879568205365497066557965446396630427666183489513010441501754225712093456527795497862624441912280678852143057452941993232724975633898863543112295750938178214867315197729173041882328539430774908645107554908962185502552193123264930786001227012206676987381443893619197896954146393380743790397554860268993845348441612361571546634102991775236924115335224850975033447113307789154191170397781230999206055655202039157747532914229208570078718070821898151351567002406581996128307323262283024059473854005594072735787978811831615993448808145567180890586791114921798404925681455444676507429583690364460871028962622886653332292699944283556943410180343175216693942314197463297554064643975741500801861795995363392904638856362062101616944030120733137532352558605000682500166724785861440840663058959452790286567079880584372681675505905379552931172411622840912096350442345611093937029590010383625944671083243567109923913350471520166307325066319461271933730548188533445978516624187733350250740245894915492163621821607973245629966956220907782193078629449968091306806443163941592728703591632378318790224198696715459464429843779113051393294118796980503066087975158077688825953219463926215698910151867860329405782648530695952788056565500296267444376559277165889367321567519963576581454172239652634230238411054356581655725123431319248099872521762574630817784133135376004304134062996222547121661959997961690512089444975620964177874027440649155028498222446393418903841405419940119889998401553661429100251179360145621875689302643739143995848247797542126344581228092775241989200447690357333538330410431637127997026757097734282974831125364607280773157936352214930787089094029197896328120320870476272505908128477668362811569538016766823132923755856190763880089690262833883561213457549872061017455944727831630414512108196635890382074834735003839225176131503012054625724915264024930323637663022650075476708338790724670331459892632544512093827739124260071852951441515838187591551321500689435189627755030493750044638872821768206826428585359715589843727081137073911125276282371905174106027880786833266435174780300304183482130277944849587049861876139376338856803777809964989723625770053550647172169034574314397613707230718334655506758934061165347104048941954892380396324359302017821323302760560278009861088840739557208009307532714877256878115580817406234044976747948429267565056714407089108315632952710343633244206370250178385416830309753553566867306167976524888461381864015541350398771935063542165547231017759239118985943486644970145336369860056685723772855986989682848363532643311947488051344157150919873299459781212023827107136834684323279373932845071879786415719157294414595872886858370356383139118484962181957224961019243100355603835092677712755968161090859768978767283270931915146794140633799721432493490948986902211337426031648023811090802100576023892468573784842255907694849067466390820007190745556367725101500891280112942465408889345801333480267609954570836414664883165848844009754930338827951116154878397802911579810508085891708035586920187302946048195482065440466776200659504409605412415145873910805775617828883227988116573233828875651257728784224997095736408831376404068337236262079499721972097966244247520369823668878583203851928114893885416596008760872414224087568428103157202429192368893153018774234655081076538425158546378789270357895120304062492989441885951775592691679780859617155115605710603985229575502550154112415427064104393622108659284909604904369010173127255503084742743532585144117477890300574460768816759907122629267778620472437742198337474613321694503682543149106757894165527060855665737714115487304987039126811021740770134972935062523539136080325950475151095186064889047860203756191764506944429547988008135451547139208926459178525325217620804835769621240861723645843778626755224522982230871951193532964075662162909377958606766669332037820989528203868900978712299609941094687792043506730873426795652553305163932318877396181803171930184161258574219733246768540632842810705942021663294782500353809821048304811817590714502111122342371688012103980205064959657267799431779559750117323250445649491109453287596531104727701038917707482112009781750722901343847064233768030598624154724620224081624764679401634258368812816030473110229637704561931108060476966283790213695057531011254877709182733731596719357166831085335755609133148394740452133104581694571027342747301413887614658194280552612740115863189307997686589523381304780675760055696914567368208462562913529059960632419739656557459581417457285830182848202012419061154364528978311624894508922681187536752888052123714217764926368076994877690782062320299594195074893456623120030407206817158694334726599206506697132245789519705627151804316091160745795256685953536857902404306968526435680429727045222032920433473713863289327336132618394016736941325218906225086314998653005385750174516800854638831777161958354138048334838952725131063078659593843284838373739698487560590907104475560395321362934388971344779497074682204991875729551719964136465683306645003444673666756897712918104857388611148480402703352008959216258303339970071100512738346323769251932115034060709441116077164285422490477309109451790887253916513872122786798715106438588300501660363025850265606954866876759595194602452597078029907883804152360697449517915911063109651050194799610692040729451546438102817291337934880932491426116522650619367763137321319791784212300739723975087791627033337741014833062394151508267001358421805449429394555224305785979154699755541935218543964945352709611992518107185228962179208693429838808441473350448328316560369570289879056305360936021664671530621038581749653830988171920395859121472786482482779000738124183490498490180689814315238152968297324303834236568505859978075631258366844492274229038802415575772913156972899981385517270016836375443104904362813390080538222346977457564344642601310137000021093494902062575115415149916584702250007764615198779170646918811557198496172757190708083812630394171312927177894295800574913680712091989134113832013459731603591527715256330900586938798669157858501552881170062125971254869791423988313871935688812799466205347493694392630874184062957875109527614153817449491687303544494395803412577498401501362892960230549035652001381222096528645336464930394788451250245121195803864264838347861871766772982950877710256016168124284789313911303616855705173262121135951457466774967747547715338452813184750360151128891529369268206852672577971265450207212715310178191450947681942243568138649933883828898385731083473133562782218830427789448740353348349062164270033355135044543019009788791577016040008038967457618720241267305148689863480040001134832793938869524289348505084702552348888453078933208304688073000877898305506267471896418988426000174264528876095671211947375605703207338494255763638397024685272312234791203663619826796838159549106453943785252469154057194889918598212004323436845253732642167506418633318759776933294320891706477277645585261702812078353437413803417196189016656366848260045579897224312609865164897335490928776260367237637497456643929732141182844607856340343335615447925301590342967501075683118213196185662311575597596068983627843350568338009399324745671004493996444057357947476295799345352753948703238100407550998220047879164620195192450985165275644927456665095363872609868750929520269637147798182351032159127007432194802133227781108571018851173833843468439782040399546290623445064837062686965803736062228129375528789638083693751754626373156847052027573481642921893442629747782438353179812051490013863092579845727376280464969162701615752079667888328327715050722313613363412951770859743057488244582593104246201667850227154913808824694773511286504406114944236334825177681598385882000267243506603560815742863213644792241335389255885194874910503510647121905134223078603281685950076174007633292617991934444568080646157112250286770571043773165061711210038147056406328161111015412185161798551910551202908743865878681914080904145361368390996942449813905299415848134697707636251281377844730089619059352261321653999394690317333465603356922212935594102178257151139792151715629243006439631822521462246285193034047694857572326600871383251202069352253004688021183917277302070630146016507620310555821849087802867598097516883991322454461383639922095064291043374169874600744188030592021274157393378801073572467526816221795379047238342602961582308424719560938209594233304180295032402004791850137171367091082378921528261924580387800646193460245025480095065276448183577099904124468019892422433644454729514264062219877756182355284132643397869294552713240067531759409849880909007884700094790636129472577406784916571653989685409600621136551842072055917633118822661855783938783404432221513627425849134296538350897812319222330519268147156379848711266369512932779835162533669307554560229675086152543094677691637809991971537335685273039456469698502144615483105975474835622985844130889647807906484756415917314797101150931168714274470890079003765110247742885655233504497323229648418379388181818864062425079710660303309657106254260743300302817458095929622844941517958752355099926064543176673356368562960299656674866861688489725239058526182972650880384224435571357699784763464225694089824510382892385818889701530239773701842591878353275824122028192709054078504003590650191914238194450767612904298330972812947994596073932216082402665709070127876639658736423622154505848203994427316311155676916168432702489683543675704910454588304996766306278853133017561484404912535157904584699508674646457469683351668272752199149220883967327670095203971870190341385097317267696516152334014514884918397799727285908790411247463895697364097218137716344485021838256349761694338091045845553054149859005191993222750785351871583398059067535989349757403562377752968544731177639291880708599815461877487207715554322949008029776398409049873259939461804411774258897491306640844659946270098997917091481071145268907778463103970028039681199177123855721965540208948529071473291053416075729200388177676564248965819549229624301921070343166712728879716021039533249922011890869325668441001504077563990840690212311674627640626668466390565908513971653229002062672078495363070204731827833292102098214646083408852579885047673610082550737412954318265238376476964274526120446022646571357817876774778647685172733803060750867906436130016937078560457138894047725838246674868908967786070294453450373100713935251411200060778426823911768346703661694521575327429084214680768537518356347253583863673278948076941870174597175089662844536322407163631682959065284408128604478767337887660146121525099201337112890331653465157895461880677835432903989476828782072315753797316522022369839050974336690048215755243905279538854023296455878719458988018293137395334378695234366509833402124011606005483862999855811554803249637037000440814218496254983688627502403078246819043970970722348982512037316868560463940769025918410783079503297625057145364204940608216985447573648625067301146616792634079009242174294803988425622045744773913814252366290269686829256991661430569227222431466189765032946093579076271829937836857389026450713255494097588851594110895164283472596360486154259989078594046013763647140299003264422776804568983462628460849009772330080989087529634150474696918187820133093055469594581531889403359391466419057255785124684028047170896686774950908958500412913373905481373326466437736369372485585751476549841743863203843308235362127626339656679038763013986741898154926071492827467493538104339461436326465263590565470978899202544302743614913730181314542921903148619163417387076241513186578821043751217249913330131820447446584114510853849487953417125367288794575321146744173411322739883431952659210852342489454862723406412722155094824729567045010656055951461140624568214446987060530661399580176987241757605057675372076304948234723937447551844701950018465667667421795430476960205215801228680283207413654415718872408485273288317433561095227498501020290568468116634282665153649153062541886279825021741147135290854091157684559458779761666067589006649326332368480261274737136960195170147741644489737759183682513852833944562007709929489567043099178488134435357528698371259430127136635986091616184013296249532664369762404182473149303433005480071527729070084624573585176012532282525215067978267143627447131254990833346595933602564876141351529001945162182815776175120593463379238253056564272102464088763906395909501892870512313320582982505099483376301602576874146203327849061655583061457821891934536144502881832917024777209452247354289411456834483657550734390460832820301379150745408884091880429948762815369555705471974506556369607725311617663337010906706939112615373419544501613909926145713224557184263662489199464586607154373909607185002959960144415174251219162528138667561013303201203492741886332118835841112887041648943809814476455907307980493551243861598695210794971962745089472001686141786535258782561805682296648104846921302842364450758245674247178919466299943518791086590684700303993652710402667219320316010928799579941176369107610798897604600769727613245074372012098523619113068478250603278877674879841076532264988296791617043938097019566816346802357008876509137545800432783674403856884855877454738140085154661179697130398246286264762854578773809248379017936936483693984668714211245558074293093238120859566336068846903822135973075536273924492793177535008613203249319219258558318801050542191017240967790032999265918208354642849977524206631275312047755796474192068683866764876572666984867684252214762563505808774307109597993719729024117046943839698846898772116549965454000174748160653698629104314955075299549061927875803816522330919134757818782552699644688742408511605156124621686139749987227303826545153396421705957164044814075275618782676888354247707204319079785648809840835226649262743211062459349453554897480114904142507843409997739762237556293508064579742492314962988100017872466603125001387084349798290572750140776552749434370810714549909388639676282270212614309024475763781345252872530613061151527959095838271139145428858193479564753099871665451683630209284222966441599126589528640391642271808810642654787567036796102712923140198233614566733910071193775014138773118929451660797299636676809725875016072632186103355019640557717190488778699071136968537517759311251560569513480812750289462836698389416866457685321889100618778129429640323778018682180166000031827749107432479071203516776723555665860552387144006051753995829771542663697381678170406938918688494339720389364042454220618135997378806532849771149138554153190868087079705253116205845358373793869073610927598975193656149423866651632260826799148761237573876905238291810449670773499066356859494734552435569652262777064852461346139006739151802691833437365097782936402741037697431944008013333396601089365580240494473845941160043868357280290524130345280223668017607165460540317552031103935216014492900714908275470456673365504730964190724910841830228192464527919910381030580881657290460232127465104988897107540513797505788928193020475584399309024994275691367017272089433206005835148975200152820874073307105762544085496228328610395794949091445553405276483873763555746800180742248016453195521806656436833298290835823432712944549485434124603683689363392822403831939004945259965026859886247693207171917572659955319350509645343213259075343778876058681004579360240522047342112365201639839610535303679889895443788893361251559165330102480721288526510377617421338482365612022868709842711432351238808880594337156505546498140646323539350154692185394267316701979652865704189025617788139963831814163894833681111912050273416278157989133618777569762827808345163768383337921554811336216962833978468177418469836834039265674974607708867375650172750497931708206590833483726569740548391777330471853000151317564068528561222773073241310499387350255602010245803499984757406929782334578170202674836307217844905206904199600178632026858590616533809321458671488803179802920850602380375114922497237528474593135102850374451176945044143220560120171299928132092565314792381609809455948180495790901540674893582937609962172840873396431395764547842399659011985348138774059613691588034136870891808853423438304821701464184871441849137630784185879688180322753872784922014001534540435495158330755067880257438135207959142317696997397173455546717400233629665066284323994374655494466970359012318997809212595822592294883974613312078493149295704121501337610825644319937278197656026069315296709357787877356105080789854460319631586916151467917499741929239627610220170477314350221660991760187750031068315631321594427836692433472799240777002820900217084165873454954109140096750424306142261246814336070631330047647383874263673434955626952496315440994119886511703308660917335962173171028295502767570722510462307540072125231533948112377806728849946949730042664521111080369988243376106371579560713605910702290498174568214560484104345268789207411015816742298179060099669375542570421354982804177607749242652120264824876992991404700019700139993817622893311744305006179278937259716822713756845466725741644074499630426440942654979777215429532994140366572430636273245860416827666464350591728248909959375184807914857896656093382292171690473308741427293597856563199610025574534798894037936516634644021894215846770691260364910404770606081653341536565911996308213418053139757323136282500687071745001601840871128041681080075732794332569456629012237196229004485592285726583105816197854109089565542773088476887055633173695818864763534413544603129357651722325839185276515814263667511395929252669206176426509533249107612541233248977638551944903220313047411272132475077625780976858261227270920630465990490931178149350145129395973538652162034595838359251997890022599051845082772102490543408792959460102458476737044028694551261246516963072494576283449649388379873655458234543546530763802606993309006474650908336293321319829450952873051862371675506944872533225954677880814966531155762784642831312770862519543993726047402501391646562630962922879552542835828465626971232101884612306715570786513299071312529386890030033273419058708774375522881597541656649031846394157910500908223665115893885843161285897106908760225961528345746954760817868788079620684675448510281042585538212957924912026215125447430372081930388114450717683591423241482807270045817785676766829845073654105533566552545587517894355296205565865206504253651436080199267045017201556641698769428234786739867096446632971421169668835998177834592475231595593146801991521975581021393253946828105551358227971783028744335435160730237114603266737241007126435382656917560436118268800113284411257342423360238814440766300611485989873396470682508818525755225405231527168790808041004973819645513843070799140044623774200381628436737614020834565074839113379916505587454311969912248118309218556752175250736484404103969869961631360279461958538526097050995271135511398578284897272654205483219804878385366285087240590566547069752765376450529778874418415682648739211612577989596354414015975524782590436642496022863976203264888041122489047436859953637563358436609720733606128999960959665202589504466793767812438467359450262270876176003048513018912912064848776088724719865875754302145569027355399051940378020951726210657661472671513273154521286042740592359185804448530967190196945212944045232844487387800588073234324167993084660672133618208558993141361540546211094473683142586271434214540751217469792732060197235437731200997470555604550131843786402093444540227736719942055318403518104593655400980912226311290296637808928306260925535010146844399469434210715551373475104835407452659968438533951465341647627093179956502671205605588897348458640586515065804736716423844829780003825439092899092651679454464387364387152423617832681516907252628585897520923694401680209897010223017281681563391241199205284086178850814916872128576387282339579433091897035391823551814983262203981316583120337093638185771964265479010258218107910681826797076090311987510164978571978293986931554795023929159951784376242374304418902005359473205319340480247375427050953094582623719340138867771778550445990195861710331955795006713838406625460496397863053817531471978214371182214630534812717001478126807589483494852521121899656633541627336707273671821301160076248089994746732312842187157935213871284981548237806719608101408716683759536930720932311736407934413159180646527005580595783855381966100462132428969575958556356095324764621946404909376895638162098945001233522763327801522823353929038835464476842856029741671189127279626346433534970486753789566175652639275900366729574826810577687780504336092717317539210869174482000303424440086471655879038770665241047753390454235964763317015687168055563984993855839280703153114534978150953672835249664992819131863628411080515980456352047647226158734714392045970525057876232873243162371707011265746802572844990521623596160250665465066185340162232451848535388719303164588345958482562792014685023186927601434510708603244616977738858685031486537538353423704312312455796883134961957710337048262668144237989294742731824836586264890258738961499428517376495734231608060168113610306410453408036075746088733935877830192907934789840866264410833411954040524173053186310137291765726229497640540975334446761359439115177983282830089341853714188130681341760656337812182944807003494453471803070208692996390854855130204565056149470261660339066403173987214974098975808585046582072346988864654640550286159636295554109152508852377739207390751062381263326433452952825783218219315140258643598132249355664920642737066171799236082567698097584701930698935636838158375684869793492156158418384424313254400630635359266861419449296100818051621431757165000347920786632369511837467550899935795886068460153804694066142127234365512362563745577164801691631052106899147026768699485958577940048961290649131054641989914311099854624699259410208751075448905468622129548709704113181939366812263962890466758392946437725276705372963734343130751993542882484448349314175576816918230966836554868103505797165689773444807236281211197490619065681393735583878513968358972274496155098968216015823924512479466617171110355462393834851913959294526971590399792631638846176849687212836023213279286081119239254942470556539615426859148427407610012622818685117397692780291105526760061563182862449256248042046991578244850076880837353463097168298296093755790995006655061901330954621231450974962961473741486838586156056342079067003422625730144621288283074522800196561652774315087876579840558470863280404697983912319563611393931914291596105052604066099468828122706202562493113359487922632521664492843881086711613562472459669930584832781478808761640349682012770699702491632809535941333821538710765193761284130336452144667503202827015372175020656409704962858497143805381186755792781479192848831928965810274273334411242105662135204944569213004677905304016854403150354141611095425582864427278026734543834708164183062506390927458973296696111894879390170521111349362566261182575819163848778588715713646645885478063470503649284739135277926370871806265616504170276471278166471679562606013203269805805298000633318611555992688817826016864890761720143752994792104556546408161547058019578579907758486915635438730208424264024247733676922705861664677207774335167705687295277194690526326164011953605683274664493617601291780238195871383882913573743956093056875931201777302142102202878874942707343335604299344161556717434697014416726623180054397767692804869565368795697290381348241571036309824081020993662863034611342144756011856345967625566544939354219982799516077277065724936580755740901292158614567605257847651336556936485570998349495618749481813046009737419790469207353836161440817777210815477653135190898541237146533572760571124242543276341979586740057819025686861184521814000025318646626439757373648682281190523784247360370581009096000258587474689229503498936906695326016948349397867898129035500193492395258343847156015538360861712670720026262769357083493365445413226400831948655335129383893275451923111634518979452244162315302775963777520685364129597924614416079978615935238405174990479611838139071387209794888080616451266866644722708616260927697767505714423789834161425037159153853595600964148126986439387830293300814733489986185565094722735716465550748563245518953408335506927953423216080195543793274688676732570917977138107926975594203923638934931471178508850441830713709358370432009110523669365537730111231418546907770097215437780082272251759757629825682747380498132247719436444442992788439412357261377632415982486771533084882540262186128212188333342737278699256903631459530319712533522379301107316034965472954339906383820083198154887773788281196316862981640585160208194178879291906983278112411808019299899676286224728454740481356700274133469331377824115661060395801660534409266407843002852572587178794516733967686387764560796260402918246450160847974352944378899217397540243575989912187468186532282376284848288713279006866172903368508027990281450257560477070168480402548500486247542085399663407530121600466219264476722892026739134147517628340842854251432118625149939042663390413981935378129629152596640217727774821243229934934923992660961894943274152568570996121293789908810205701118606272854838682023796311772026090641339641076244235677463162763960667706480894640582556973972667907416137670335017537336201038179689430174414350895635155019241520112189408262761973988758977642214373705411517633092143204419521072279784882206723769268215359121107405180286088403534549276782328122572346575650356667493562637477610361131832271962802048324177433265563596094957546162862314079865766120641984853335030475058497737375076128253760385886245655785834443076392600052091905184336070496676787029666244169098658048647349158574837371949421267774051157428037786847029311743943174783780443823000657712303513219104122123571401786556598948368091561224697726989359829081529683860060150779543468079492804446956475245737187665620745794322758717853464560325002703390827199532052244879804715551094846072168171028389900852181501314614746069757447324353729722498781868746039680675808020417155373054000057512802822900149675260125401184360653214447655478995746704719893397653276235924672753769020249599047953297464992425486903330562406925612960895812954536497461596062385917988903325572688623681655742016098961793641730251032341161597581784180435142774227529208231726394169505892163066340249252527816509707595399558777267501839380904004977269281527642583983882861181406826514645821591161975071036064639374729478120702181528736243363379344086708036498279581133554883873629525161696025305061903717052528861640930515861632485523380182951824202321299741911640568065229203187505168388028745193676860760531165260958040388857446235490183976942586132799467472122811528983360451541652083065653050623281154904543385320754581744221165507139093921420031466824470165429568644069027438736216460745781667912188892819775172657225626893169412678514802260765138469595065903801247573577749446315261576545225757212179593674138177512081383752889633969016723696018822164606315370715208520546589119494012242669251916191869472752800999876021933709043559607608491940221846570410715886196959719880242980795301848025188118291916653993147923045034209373961485108153649226236380530370544099461436545867307447735329696689460341460515175031995205850200521708237657606398924156936588345887579240282284578642219260414789664198618457476789116927263211227585559748858612663270229761562582259136456014606973528849376644762883551630238080321837548176893757524546277207298731644139148364356498016944949761740287984216103482088931374017192256405306348520589163905493451517174179223154316056173955166377983874893691863608672608600918063071117065910353932320168426627573457068058804624221807891550711988997978977526953431592512354015759635089470458290816728053133386639804912709537084656042337566796410628993192020309974513937310613718694708637971526158394431078154570200944808552778082442558068613797160499103949715926183688486697831066934084584047708947500732286976419204734642866896389317513577531337738791926656094433311824821352040675531207457584974202167990589528619176527553591006402231001628283631012457748277282841845528757166921520377991968546960010814458852516535131022450974887999209691167563730978557900365589114535583755427063992981476392135781774829325648571112351935307611860940739280418524315052272647080970242510337014542014903986581226153756568431410410713564753631906397027476024521026219695942154235599380297248130049135157448869061614551124308526196241627500939824398678670107444042395269200818011577232303322874446186064406738070676499688008132564765177393036175040301896983554850498683070092553708013335857438213408882443883026365427249599024053619797181124499060106485770763622949290986576100628325874300264320743264033305760812268745840016540919962496987686313911797753552201241891416960272346839215560119694022571621902625275731051936522441562321418781620060223009879726824826626274127649967070061126448779607370818227378635759289780121397246789984605981060265904129736812482150124959847707998195129083549375893379950934494668693713245963271978653709199782063964732142920048126325085664785484098076082396918516012690298716389747057239086432315024062905477424519161275315657876969242000374782960052389723152878301650368102008948409474574674440779895902884573046065539711366185664312946800459460210448445176958036973502705286815850759895079089844945281421035275719949029455297257223624337220425837208752005328639002707287052103250107541784030579742031828442126365801928232416826097181814140008028288980316608789520329910706876918384712768338676218660029029553032369794454498316443874248833476529210123416918525615519243276037851402709841046854083724740598065370885612094693257025861204446913559744671479892427098102040994021177215723028472470435327285975168066136866180744643161055515435951581333512633159311009145186495400129656544152744327564821742014129732375226836138573529929215640369719679156254529621386266689817350538006122180542332132650126073219084963857405274950834625100287650478399379421920747311098269567422842841282870307662277113130793594287956706210789662742300724492350397072073600855629805557061449871390616286166087725713459106338702534065459578138165749181446009713688442474448415359108041822696685606440649375413857070727785022937618023880815234818852361277771849838268037167162751211744917072098494433789397591930266392618249531508819789897696378160877608269882256366865139686677085827784861683838931965150432765333974584897317278081933158609974702813580590456801462012589204176833428995604763691063032593177028949435285628465311402018195240666705321084453051693748549106223262228680490418830341913917790724259605020358575959132575838958437663125798927962936442537041295611393523398185355571750156975456455081585020415433851752290153011374969522870548627013575709899839366344525121139681283697307565562510731047725366213233313032263173067021048542676715753320898652716575476602282496703686200635487100388148776715502513538883624266347547110059267725559289303637214878379090228948731435052299344035887228333463665582736983328636225954188001341093084916707459009523314911177980385125829025771244386923706259320853149672272548186169798996796290893541179290126131965153546848787123928795784537402327546602839624269917467156744129901012833013137724857507425213380366551309541303798206803708617696652067831349552222113430455470654689071936945138593633912144076822804900658134213000327072052980806508414824652671903999889298371039892153391020278877952794528125646149531195712124920246806931539189767140167644147854592618303912058653667674941519714816474717190660992145307210178576096608217599489554539841534790125692209590044016981521270947144199118053738566992981749406837730304888204734018320807159435134502478730650578517158607861518568118851902469285691544095288198680113214489201150587442661953980947934591491665544834125735985036889896182427123557015776976604964265978306775856653321923381125418841086920324340991432573851290401518447395491871088786163255273447974569284415043344101638819508697164981776645381174703281000034333529754127071757965139222327713867524095912313656533817742603029191176928351322598357889762124108078529464869066971558833907456879769089498600160725451747530330548644668107505363364637137741750768068372898220487904675122421907523865559973836108575216217683680279945072345921772103473295776326205528502573517662197395683937444936157184275954995428272134031757576504656596591725907490166624846813228884951481654802113675506958852661994995036670309053745049727874709544258154444611188105692141107251116095688798755146783473745836901953589016847429371015201027867830069332244421090686447471919614717986362274770672332399398515510951731916175077653836838519156781531077398210431974716099830969983876633126891405069379490639554216791151104077289669357090576075040262705932999970149680736605603461863946142249892543781995560317321170731283901163107420622593759986324521654608797650381265315003429952358772367140074947279891127179731065941808476440212667658317163699403472305864355860950689778207948719321442774061313243479659673897398090212575778761618554600393921170921686174869053929182761756791480256996070891809033241008853965731927319373567644813117675916766935056178064279164027184186008211013356410489783286187822837004718208900338484215547260578851964242868916378015535945926965760294558578580550715337636258352698006953223173447348985716075701047251424287943173056046992932795235219536279700157750723645867192693280665481665769426803562594096238289775869661743603060131047468203242398581031489363198301929447529614098728485076173073963402915785796842691963983760799336315464374209550038550563706167157449285364701923147793402764340450699544965923886808899964401591237701594593142994982315780710027202450037838880767344141699414529756688151741724287617138238273443112386722475032172390144866349153255826459511919498333501174281679390213609560269776146159339393628582381945357359371433478907177231973700405277517406867316435347720682005248996877600453787547953713912576231904867454098768798167408373945128321935995632826268296069506646192170747632845811583270171079506369693691998800603906013642499386464397518130882873645145187981407783715415358784869167752435009413659145512916014960622023077919860957334124448290440799686216414640872961845852869078140607320129537014858600845611194540307147962088687962324057076765838515533109547193421944280333902158869623159115215034329742561579076285235676968205845247404068188413133744008687986945722210776254663746782779827542215757366814048277479499208290846590139097350161694574699042007631387619688584343916251291778969543843930591084951243895839629314359592599891770235814376570724957315808189245889941642211182761624820343584167253217887881250536662784790736207178715838120780755703700915335661132082409946155477035526878063293703133511344577713340034408418426509009663071643828467976043825967096603096705943798232659527363373563129767457319511776652085569417482120611413964946839049373634540089183292655545277626519752822186716529678113068786410613771861620240080954771313656947597487193818960053621667472792556680663252147450415560114716476520305137269378146053414822382186364296646507860914374536959638420599172737693322171401068520208320912379040121287490174981046170438288219044623663741011210774124783891177182224734100201234537389042602483982331517757057623160598532974005249168480762989281168388865389414148093201962258151917700382681546214049578061774627373489167398847681779668831540535826498307623573081633242696070779367435376191476912006892140547733431059685828998869257955764730930121731888822318368861725442784110398696819024574049762771944755995944065294000020722869991883499976485823251140197809392183034715765498696598767321785173762631448137148600644141487675195416184772212224453973663782426909113704537034293848266375598361936018783824313966148927909282534870868659527104899964346378097927161379554569152713134991081577054734892877293953910952800474867178040327359000956109449976880581723213522091273312917211788396189246707257576776884916492097100936900955156089760390033965610744143894374912251533276856500621828279000973612207170975605212828929034185501437289532350174391015702820965865629676767791183770839911372316761974275848849310444603071885236726638522914871439734031253864594791525876429421886775863421578201235980766499321756427594336703136009363682649847186023764610401968189613716451253613847163689330409809154780963335658466644007579385791426341185053910653813052718938041995643652720176150059527382240007703391410478833830582622227851774677713910329629502710267351197241417793564987470213740437998953786696099286137492142922306399723234099879611291158223353097898987710933620671861311934351987933715992250391957758793997927585978661734651244920283308245437932131464201742305887666734189162241801377221167796564701869817823220576659871665846302866136220239417697020010072056319124716366013494435497996585170117881388890309053780692923840574441934638755639081024292599581258071547583858786980158743873670460355578853983941230468726224035012548731186604419291723515513313725709116407544618143481398652520433379313116952283247652979110292655862565711065348367329354013846120238244621263805746472561173808745726602966904957208766780880329366415037737757993185053249691849610860147226840198226370224804034634610661035837369189061001422655470285020660382752831487512262182572558570554029321224839200787086895119966951253129240401892511003332633880137649171521025218063053743660373751135847406948315170788758385549357502960769061362567964612356559637761537345595403031956135249141370652485711138463661090396386423162912173829100021513470817895126435065437550634597607503748793940725116867708495292295265250933377790190378837343217933175569203830877471500974431401357235249622699484755818393643844294737887045177833323053173727646476415642649993752352559266984255187990080445866292448630901290623554661301000971595878696352815518916455796986642707485930100216572113299690756165205631859574682006129090870906128473647215999311819435540165021469140380327651693535374195008693609010255753771746008098294379232969676245605781302625853704931620360809430227550066483477834806146335323377420910674868559545055253829227114441024191285338326810109865299270517807797138110509156813240732891373708480317151208400537969232405661750226711611581525387327026020585881316332652360238609831264463881664982443128389726988479837650817584389385008783466530648011339719748777021700680047627957533980043919023674956827534885287316855924290518146470212749756624329517630604055077485974847991701498966577032488050347704330568234084256854966489504018870599177720561053732463995242638835638071194938065031498644756707012036147515482596581557614383464512761305708427447476079653676458066892293344881641208966104722287100756284378516336424753409994199665115988392123531028812278050934829703305858562839970842469630404217099976108031677066519765488260897693250642636707693199817883426436965981965447528362909406555941359365885607070592477640471659616088303452495328597642835787068950029700888534084209606179012767957196293841116317704478349326823409926476534666393489806578470192349905495813106496589436057022730336200887243183863804452760868520701183630712214134702515871499515697315341108568711252840089591726286409065604069451081880665220114517730095499109827402709940215729026988234674094208262971197141654232689598536642123915713574400222284815687280249779572222003448192435758929850860115353567701892718145034884991948602999506854587730657976960341248622964058691430917698302773915197520172953195103559203555693686889626407378083661752038262398949993433821530701271065883260299806735214781861833090801285906532367484149696190529799181173525199268575099104557519951438336008617822996174488156471941228753779237135991931733002028277513586170177743060838426999844541043918271652763207532793537868086045655479208607062585824456373141810260222056876851440426556031719040322829755487712939850094583231166304836563762716401839007870568875916283023502894757518520082518679779402208422255218931290575399006092322031449965158475977538647757965111401938256304657385109747252573049106739479848162754093367231168393893844859441715583200174054869281396317457047655302772975581415776289682725917856229471898538398271628197234803173511716409486825301916607588472742883658976773173148565956047616488203855162540461189449740290037330408979724578082384727313387761092769763888926984702714791747006541482612291944306672282124574641632159488150239112440778913515437058074213904035908789232978160153484687615790586989736649385357418608193434886514042343805109059473339260523410495229588529897463604208842330978809021911332688527643464099915461322697094090401938426612345703564812708522499055729966655543198852567843757335765253805043955497773725002392686634513676485157983862534787915553625656887458694164617557196669004676697651749209603332902596225809886930933510134697023599508800689259198837348459500200844224409345915351893915266599737736434886457272162729808592206365226841129930156545786282606317436463604454011399437769918491261282145228946177855684472150980362996937109386346839656456306571526870882656253948055827507294536880704073661229889289157664485871668438831373564719601721294821140369952194465272110701492725035811295353435993200887129769019010348329708948565387218119427980908958850465103983912211918545015576475562032801824444807945150320468455895380369269066879006209302305855942572539164353657905097349100693105716760246002054070557096053368851225366428224674091277882139620937025929846465992139209193098639379931540873855658553776887115778288318272225658370343095466918360229335835316488863523108555959375115600557020127860580435989326988617110532353926519207050410293675700987917625810460802091823787189528527320150459309759887574003378008705154095653381233895679478444024119533375467004188592188686336676943585008749736718189858312367197959783700521348086948777431476634860942543967051002862635804062805186152313060990593546774381721685225174038105133201176941382765600666113566719628766106882152925906049951253948957410401297042857876891499751451199024301596280973789801457182997317013736786296467807362547739005722154821053727885536886995124490797449760829224314195043207029333496456526522437049395410723072189379349555219768601824149425610413191463637027777861087319769616144652801439648152244271052003779017574267267031756994982145016920833971920681240038969777587473155938361740770211834904078845305675596363664984875379652223572699174471317195701488380450467319630608497287721754373902962505009439131848818791374887181823487411609402989783309291745034084068504660632122693844082981067959879870719733931837064985192926806171609734264857502838404071971528238203900859753168367103134552414196469230753968689296990905670159691020050426456144334886050067846007004578537725356693821762121126092631053273549595995793567285903234892460251752219992551823790886830005968435349045295609174717423140462269005688944265435476151241714196130214047340538445358724044509408835178589526502085512592216977440048978545774922424919631871981854119189105044177053750773676651328001276032179148223262422283346180341168642812370142067410490373710856836794841128191341157225035664467348513291762832617361806854318230254399694184203366144775835321949101845719175649421811256975514565328346378407955102136335892281159645695442420407729215697931812776079725708189947998477094715578567955193227034551677385992930805202538396976843986300477155010730623942692521186689052899069567113277652070108663639511784347488154097809437023642601515571057549288505037226312071062114731837600652329848080773099008386555802586455587816857182169400684703095273611972086429679088277064982017273829955305350658635613430860283904329485430382489458334428441534600896297569631513573713098749302237012732683989309050942123925945110933824227029649985970212161897225868907741952637313686505359231665735914837112850263621904010542643660354953789457682303853279515829360342176838009044912726666963770839367949400543308409390816860734930103467228605974426958877551426298551796854048936009405704045795707507915073827782063319373922673874678014987671608445507783584557652825568647083605975653244295086175551692473323939955336729637599635834860394561087257381272235000503545183558481274129156749513137882474979653551494219532924450902714641262728699489501346071528970807126587046021984323214583690808970621775841380333525843330328705590912195606144118530086889869264798657591956548625953183565151050916327393293601595028102460184263604361723763297235756817858246505120796338102061489536505573467339101833909189963788148412990438476162358339027497984790080501591597737175522486631152840551404260331950132011671795937205626828701508010916689116494857016807767743674841369820085079915870536750612584021372856438162001637129457980820200188334760613182600024352828125322384646345847732204813945496618033878705529249669590953824996893492795170823778853252625498240931990684911698405979364490241936380144081063994009288445559036693231412444239397112097509398272378774928395754668758751247692975680329530181752578967117758057647548627743476688583959210228867934167956098893656614719206962253575252733725131071309335752112610056923896973697809059184848999079776202748186757671686441529990862201264761524892967643475143879507937858114000363017082071042387447681063924456828079535612661076862650834809733337949689318200750965013823843829541925760034976132687946705822696406149208709751247303089441158836932516626648162646134481317857706641701887237294772499602999359948073604525225196264967027424649173167911947976728750116134902768695871884057418123620365223149399041935699858653341339147649125436220164175309605090230852496091427711040628031697637965196395467476108069937910668122232225148964987045935711399584540528522657272702244192335054360676845754429466913096356488926764755899797787586667218530829157354969226074596867311835909319953413248547610845670108571680858658483714655445628951678446971826695506125835933254865347068061765285009812450979169089451844706339099881140262577407021100045544619918119755690787407826824381396543664112665905596887729283659910999489384113327381178616635970971716810780014219813985159668560673205543199746622421504633450822168634056951572346540861965334372038095169001262694629899788156570591619860706873063588606742982806329517424722595049730178041229949983091619505563029442677942703133853513171524110797823128156106392122894104471581542306635307289189023552597849881136828282373766610610934562854908053530289585582758071355080784559685276149012958594811439269188525299995125446054721335249647331775882339242803815376970365804375488278857262037062216355028462946785814832844295962267428585213011051153675874823629045400745359323302586114026013567459642915765617820240456433401290959797155304949228689351073723860639596305576401464130088594106748076704239925148111871122876802226490245370850271425788463674381464131710961144986741579542353852348356078053165762591814261952247035775626319233915130858938031949550143977108428702099358762875772376966049586850909189405875333292158404508580057495883821048709712093220476662468575649679835939970874813816633094523552729986066431682790331152099308955238542034212136043179975875074158496261105771862599964343052976958573132420012966873628484140973741345102799279420736334571534161812136757648025056889646807996598683379771067618570841514782043885101744596588323060296768530149525021721643065692258179677061651777724217445827411508936214112132213775998237774549386765570471874824899104041108017253797089830557638593586059823226058782970523535506534960928175798950508168054052637530524288211310799795012828966087546060809326149789495845195207206125613154833404783637310103426492467843534033266338604488610502037042111763826104354744985943137771314339824740329220310607451697101978387362379562000456667474756512681451173995424973420247900785495552706648279147581549838589821330805758466372772035201553156077660860106863614957576287097139021707709097905387717693345689710926800351116373691014249738862919242300713020875999863913952887879292311164960497720612594262773383539705365945922632052475618019748507265234787000299599923058447997015863022545780640073338044928281389619408906609184034484961488594367156593169762063140052678734645423057806516129706247090851938306049941444895332224358931041724459328067465262902795554163746622616377890695581449058013324352837694520603821571182055089791159453450147920671412085197368376978473426260196101141206383011098351246990329244777308893938083393643387664648879692631900699991593881899283557901575838288800370492081372488143689932249920376900690517383352911331773570118915515640932925947778446393186821257948348938077660343731523031948435339012991728758637294135098394336392104909116900940921910482775304568495953063118936310103637086419452289105629383022118711311147744884010004222315304367785222922298261341585886964086686807817026622349821974713066739729837775539672972094351987055371215289563211261236536193728097293755358240313599982185519200555164278059295480580540087331882858006042845126609311870211489240546818402913853114506836185901354218611042803166374856124056534742524879464645641166807749691840526841986338868995163248582482412738858586080265846026987903671838214300454943136321357642964890532320654841660693809304616269183597535454815484538796411760158548907867749370182897124092407291991607556745164776131420012939562077821609717348951283861280434242899552171531541454310272411630818053313558985715223231351086402934378720068599936808206202955059118246760766430989866279731814148704739002032211695211918934888660458847223730505759404037834079085191832344333827658305129378285311969653422812354141943485248484373237350801696976601308891880591025896943380955131878368459748999186790526025240968950648425311392072887266095172550236475973616971267219813028989804807595794506509052635867823546346879371402475832411382398844925317106645404145124103424995328367894939409103928912145403328937025347802750282183278399460618947564164404853775102869934857362359287218573188726370226753367487618218565066755938169381845051440805522585915265088389990431183830446801644916058395889403432443001019331341854659528863217851834789565795624338027471874525362910766077567499751047792544682488986916126622844653452179438175121568457076331038768661053964230904181488213430983743968414332731135304306880916077492471692725386381255392718618643675222405121538197885068442355293249016914949643878922732634239687043115085252226469193068642441261335457618043636812164128132136966899411944151701013092444839577420467505873726842773250387865909429044660246615844191443638897105672916018766135784403289837160662414632790020863312998840716414872853236147391192484111803442348606914233950624717858381399486290758899892725664587637959450767229436373872819204832713097219788243615458546249940209523705487461388398742631948466608418215136901897913983849130985369899460041966529075152901650515606300194702123340719209615616109389275391701229256537927663995087354359412229160822063566602790910055025491801864109481481536345191199997790898089816710057535706292016354972286743908468972950560320568982364310557607892437721111120514902590324561395413298425706932099790678504929001424434948353964810883573689421419379735271910469023057869281385584318053035024781836453771215850336448415442257450980820609327038222961727306515218560913872010858697647823431943619780795756233692785675779626262719888235860269823907850733900392905768915561691667457078302264896092811979897941618455387706063267874586795815012095038844145307450981216270921306342022658103129844714776169440755124889115338827427861540720842803315231933754946338755270191166117766630240869693568531844477906976047947971027658087376966733595067689768797174398371357945274218680884025845619213156703463315362784157163305260797644767552604093026024131925131556208239732088441589034036099077187523731629061443741641942183794308498185479448650065075166366684417985500285801413005798276929340216773950578360724599798051624277143541242245492287014859058517344493775330616752253864570270116025748372809088299082213552945999892660374940577892606823692964101921337403153742888630742196459428392181866437204157732845155119149858220103724242500189729606256629094061153208381598917513904165384538023346260258360830357377265471470329214593329818968659044936014877618279015889465802900493053765880067401511321212319490778331564808322888707065238167558246278604913037103318650660704671397915586692312036468093652940923662542419821008392059322468742770878901639070683695524251218804476655223525236087273551491323863935656206581659979760543558218153337739648525738755553186100951320156854805730660644089488477307412089735904061010640576303549800923994934490292971318116184986706810194431824423791554033991188850108058797708635927827319596059024047401305592032508272317409489506510611489260427438174514329116740671668737121692005539149072962074405057065549818301620452068832814878860033838653211138479595372512785588932577632263517395796898402927075541722894192441897924555450990721469015283986572133934347213967228085652200538670224411661711363915322719599331615355264007218002296623171527735887139320735478196951293269423749579160591248573434836903152734950949446214781306296727329461815399634584296847003474525326786469200809681646815706743879845697040182581255030301565792056237330429923937208534490511488979689812251378328599358358275527377914067202995897979523174888090773792263043946738948651976442098018889088782663437306600791956407264859457795426204029144228730946111966701532819047938024090424514652093445444910648024046723284830130044374353195052467046167284095121434607675119403695756856309503456269118912644054393350462780441578704863530154972396851595273661786827095601098269243883167188059943580722488687101887203691869973568369019363796288510859909775901702470962758154562169568546942567876819383070311011545310730806485356105457879594277258590884329786647279129572062380445583981641173542243091527530438282488909994113042660214875072797744041967813799277745615381474861511647358941365818071958441541820773775529132532905744678137585676143628388587325080693609042491747666128347050357001023012854282824303300304221728342928081044959044382477917275865551153640319039125614142474669240053555688970985707075950668165950821268891080092755443421274740974654080860271260492750241394937030215533019689150270642475464937702402425106006886902380027585447082572792162712145131266249212848037967523667138042444954917896809403086889060656407302234998109587890614777454042005774324310098680377477820822676123056348477213677089556358566889912968334825531947282805113690639639894321875954369531765863183356533536487607545514880549165158026437762529845037446120606920924885639336674817147570388838694018306168281478621805053792727805857936465757515468381665354848410166564316723681154000463299826274127038291275971452481367626664023633260259430026538552602387223357071353401152127916573737696358454234631563003938524338959181118792968555110295737512187396275879690040984886367689824584630977499743035277537933548259637248798512077834057846039273139800034864132121753690314118003008856264446945960925383076754658692891028478237400272726676688577928515938456339217163214524505091514433747600783948426347001890351615005346444399304397324305814194044542282657225111189406572375385726956905891888557316741744137556380292382046992158533483892972584060785437277688970748623841632815764466326753861496119644107801333490511045137661502626067197633878897261009344931877537046015614476285068876441030783302644472441770587239073238911612382576474592272795216838440363128682248175668023382262104346550893500510611812560595096143523522338335443985756531785052296627150502152062450486528330068048835839296603005718267143290988755402840585011944858256560981929773475503097950160561283502609628642081244660735769074298030738281859813629237908536017809615081147724450080176308207308855443165598680699324068664061711796782464345609209528600409693604316153163057662737360122830759230328136331216488765475930619567003064875307842275520165022957549301056622749491875199326465669658512210397904825367465495970951126395034511680864099578348940387346868126537347507978423232499776572236084715268553103709545863330491553370354918385803723050196812351151013404773427069556030258174764832407895869990273999019771199189382699525897506499968132377190864990412314364373345743497068359632257585382397579994154013353508533915374331931884853241398292925756225583643859488765321333228561001188753928226577067627966424394695103689981006246848095977698481091092262458207848342986623873357587938547053475318476516326017384078503685079944375264542634447235743515378638460450369772050989444054179421127781809824467222008950228852466216815689119142902311983617613295128142737055980440977581990014911714008704730040354207117116269106376496098955127201104978773947257397627493543604304477264358220270426932922744681286045836609331685797713611010529467613491929927911865204664215245062103588329462634299147986219596098797525184763742300728981622595249237914474662252521124532097507911622539285908863289000581586628499116009043317295150271124647574414620500766199110612941843892198821618397812422161442341130768304901203320394407718048324156910684256764345565882453917964830556332119121992947723007012654391296285100066998026784044447816336406352124067780531096554815461727268485768040471740626652150112741344548359550335357343680236415948264677142211596000924134662027126233117571205949665746698098851238167189459442023855948064266949446501233271410375023935527514421184422351366550632668269930742685356637357417947604293479347913205688807605124851820399573692026240986373356461010323989123107539188872454461292538876086150798379862300562758214390434080449149406051395064507624251276489931887088782867289768114926126545280705938587196124551138403107446062155039685679497009782860732922415695740712035613613810624940604565024976875582054584231678724530144548528247427950263606508965274334392389795907155484033865742236781496665489433493033435537491360252367165924619992810104431066927953454676192717615795817321481126272966082042901607305541027568966787529259994506221928844338355140589464923253009190498185432722986166458177851796926537811666902649441833376380283642495871514475879778393810984088014594351291657622747647283456953092141256658958279236628437729916073819049391346576446895201281509842102395690710591194189764872974753478979209913114573165655277389556854131721415857513576132064849585266038554277174934258489606447870098377736325940400911616124495553300420267012765660268077961224248950960767444907214567660391891057556127578875748047700661098441773614060789033809522043490295268049342211267355613227446719663725455079459845122157331300001612896668511793630450550929800970238976739728294821891157432886280869161965337919914621987705797235083257183544675540104515756253845028328776495478909539095924706840596642107473998932442813851564140957029287822503176768180815248281205776921162827520738841443273510288551822746177990759150793076318976592355729544990137018245458671819396974913066216333659765492160265075977435163038596954347081948378493033837720480772716229113172456658635117277109684754120674452832195973050721477809700512179977346644039821873844553981422741719177878888455713391644360706210618794886088400514953972185607574214540949768599066490629496666966742258144697551117034083072214848691052008816105398409235191265018300675504943264247147396966707548692299058944324360306735869294345732590725076943946695611322162581178834138059250347725238409146173426397835746196394571284924821954209990487809951690110705814114110437508789076213114133653556975095834314187160362189036033874765686037864362246786882991310633843080747515251753233176497857745760491110780181648528190862274002047692256809256847463127181745190169090088195355519220331988466220715633791805606150866897805347217208284136181304065034189222310163574234109617637115006826430721820511391571347514180468238190226960948506046424456349773222000897347771993718354660105239430869605376705897160246017951557992162020806046464107586879054563597297337902198430329911128532207865115313961625417614300221635476300186713506660870821374811599722043323549445071359779456685267540498882496892999927387039623511067395416856278621082083389762838843114263121911362066584749379454716335176468412778546156645941880460321549051704527839794917106920598861089860131169958730502910631958376890490648270945115564046880079695094246539886727801806039407661531182356053821048783187342835567032117079472712799219994688365067585084046518456387656566967600386907660950401066560878920536394181125904277108511207908728202839744514517901713808870497389238514088774826209108278563251412845297814589321035780881872654556010792680789821127251661119601509471838386097079068215984504005017167315165037973990820037609853002771514873391713264761780589952964644205958681819795666829579647746621110295607456598675383560983429514189592607483360318541258388289772472205467000109970594258377494115292335019783277006298142889112998510848741268032350412694377877045087299135672464340250183010890064552476408754206171192468375947010013355439704966935909958337871934899486424197494349332734532696358763976177227193915242646044732984060658706454229573143943754102535254704054698888220659355733835255433249086788433741334576938118982028678082569561784748834550303511840773106271602678022806383221497542721173591262857345174765115566204071875178104342102628224868328247167361846039623811644058069979307337061946741323171492907202656117716939847568152820281335411089298939099135172067938492524350403629050085420308110270735068177030727865515397162554646917895752824597770688082924681029629075611304154783331920258454851813026411733503716286202353741666095323601617918130377796055202372209839861716772064274647723772433271466923734749716957041712752580841800822786934130865939497216078904279542673367199543520854403458592381573114239956979998974704978578270419189474489902620947463841498185662406422087721950354115903474747010622909208889655042263144055541605150432435126914874978182993294372965505826246506230543323570059942036954497197815661870016239623000981553449291695365387929567889220658791312090723122399904102292465648541612719005817572531165476390919732897688443092654508091381353976570240975623766674987324846770936033988426245070780782703699839832507861480181578687639983689619619564820813835436316985302768877967023732772924283909832848946533732258012766772180763446345266409856446584415902743354026313330439053144429551105168344477759086217601941428122546719262651725164835330673352175334357467413114968574271263592852404734082575758709262035138025435978914661761033174360383164654470409093176377793472127923659793869307985320457855945774909506826841428103422834766293269545576354670333189652375352458439754504573596214747704788041222940386443477598980988255723305790709040096628745552013030932490419944407357171859930484241539048613790092705258614690987900511236208588905263677326951168769245984577453223219236209192180235754062606853753241934046093204829707653580224539213037076859159753396016111142523628776614102710292870379970604054723760467746638967095272955254956208807911131912797550356231963869042926026628979007321264858893995731092414384901161996534468152102190426452910390121862922267391358630871773904314047947863293416382198228622801182090917040458919886198048913077225675967436663630483289681581425443986821576482471435245188789017543098337608570658622684532630182922451440834012756909363403356246896561587017791603994739013587508990787386108652983028456278949330829188426386310907919976445281029791419134968972117136775660261303497575278484406229736679413645550009227703705986930912022803414360196827361761110980104074150916543967664881555778285794923857743023630602355230380502757345857168657887640697578526224943864459285988348893257003740149431306285593952161514184848788311601860574440200682071209491730542280179719946450700499306250058952209936460904979324457891866503187747540429118793462556412134439822977808164093401013048145294716068341220348140872240281908084644944834903123455500115669137901558533718984762972381824020515927502604357100527982548891067120195404701898985111486445796820759241164174915120170941059324610578331537862726766646968270508551637465209779125692266756935795044509025463033341178902447166775232121944867271389808391344004109878877175227560988769076273429657469134635236840235420212927533398178095990140485480857172717689939579097278957073793448663488775083297830400472261678762128526313585024552432744529178510903320779193250405024921868965598712811278016124514799012615035087454948322598591890777482487573381641607579298564635756797295971385741004600153463830435325848164916823869670196182956437218337732425252630492867840136374500246104467018948122557356683243658050237241003359388870232368094944803073097321870231622234096161095030275270777431969328162290533622286989697609664851820026568897273118129703008147030585532381194615107950634264739094804402573083882324468957382348565825975184866534627195829016520336845379286727293525126497826114895585414787038543727908265152704501670347309120465692395668984873358962975601626163779278856012885444380213803082061459340544693222344455052661228304263876689180128237209222989103848567619540766431711134620421784547077279312016370608720284064574923888394517874191414164076749367552978855466174973284064782731533820979747953872612752170359218935651815014056870201142431359987875441615226646454269501269948718273151408835665006918233926499230356275040880183019075432655239574363508850040441262366688858382951069958848036853055332806283927070344285069255629527222786116263100847473050723358127986425147054604645817562670924579203866415467956025427600509257329805182759149550882674939161075723331966530106987375901055306847929375454821781246378995476802510072627893035058178504705292812884621375170802454155889723556220567585830343246689026934635204832962387941709862595159677041479017732023502654993902000682183361587808973952308543995158053384339466626007787943903144183578383106401333001643237746859408184447531640393181491607133509504786168693283418822554518907845132500177163724323602797816329879755686124436429418276634149919232162410229236125776332585649492292892884008976638459215131280438213278294913272150721315751040772916889829052414041878712094439660628529499320727947025861985124454710639571850681492035144273127977152752810486610891922129931529766258945499740130377459151984772473260748138638439570793917835548504059348161274573013099476182475942064024517623955548181096577106864403674906963340823340650076035992239887985688119744005882287541233413520580032198741464214014447245460957898808914743713416751355296792779753466057539085799869376754571928500564747712331166557900258118260380501671143460169342224375242317636176223983428856357939677340071252377155824230040203642643509768313907338602755977797922899679149416827234911005121612899048504580455741434869040181815965727158550001117207583331273635689507717756963454116041486558690942371614262308903406258674936022697630093742669374047605771223967513832936141760430637946900134676642676209428396979852714981539590777383552446599975277370837024795064716632570379892959958131390128709490545825535296264440977636701821051358613286433908102514845394230427817604063478345892127884291959208227037523658941675985563543815524626468314104294812192139942824050583694574836064694939103829772371788016068554713398390415509305790288749096483344036127513654755904557373569919172303909882575978180779955265804677497316047201681823087840309053225863913766222923356987531550548200775040052710358315700960534619706111617236077952631120419613697690426776190763873160025518063787224991165706718997988706337736483796809200699477210178676004237283178590933965188189284576388685741197557322578284358107604851284636271277777233912845628962096903647719784275692600596541272762599691237915471996965876005037920728756353754303251743208265947333340861660219773841124593781491123068131802899041713234195859958283346782696598904487784428377205117691750733665332034389969242857328176302563438023107375640710966278777477686510107351929959690955561824825253709614630774679562885030572053307857190466222144424268568629440502484241636263506168701558933249298883114180567068860293757947347599257919202757509807258395588062311458922779204419024661683247990753719401733179588527639824517196588361841686329526690942477753205484687326376952869009260028973193030977656592673561951401249027196509003801043602232259063428409228625720862662657068024978226259976038238704777575902473742739725593700108932473344347402629975779752038169297896903675800194823144417899652382639387293501991978542498749761340390017102000658370137198377625240398974112468321147451749170877132921030729838141915627845651196273857527751766895274941614107682996432804182464536937393469391601021557258833379442647725483915807346932644308243325849510245705759814042212214712720718532782775164731621505022784631074409141523197770428339311719174005158155558373340898089815628247200496053351735559636414852738814311629635730313271565615175961187518142053166534180208662758400666544636998470194802427979247748877551803776917636498514419931502289403593055821130334958082516964724315511360468715257106322206525518877764832417118337354640099600180141311160462082123648988482280513688813137931891639485827334079833430579734021870462276716710864431017969862305286448407605984845621299562652448915670030118050325053937401832033774137525865378227002610257759056454392469555442855821146722459149551606354267347666792990140686321684398863245193315941273505064390411820428455644557202355253736807845995433542194917328893735510588546193620755812208677394173538080817194687230593502789102462789080708007491613579330241513602429562153095898224418820589835222967056575635967496747060215042421294820260690801855272640710744110565470969866088991449416198772177508748008502442931810895168303433673938517301707982270300182448523403635909010564973091818669904743223201401630248631287482667275296625916156946693517140154701273121348227870258462915625781314800898871314619533377029152648508680039746288147445827694495030697384926088195679379894946632544968141015252030352694188134956106659888954298196903275602565815211383071212107670635979713668802092366489415762480128657588932054882630935020374782478923061965003868004421840414516828336598320873158965353573987879534856489806211690791298184314824901868433561250242768680112891379250563203488681900408201436025599033208399415756532356828649405415409269256733499937629485137382529679045034683165178260175703885243564815139678540951596635996936720190070444850181177730457556892344313151874673854138334587475461567136583549938220393865830808721839625468406633643699207245138999136096690872395719543319828007602560968298717349858904209372497351997035499946033120729635981149331382508796356125294361386179050511062735752050653036351497054802478375969971228995053700783319853183179551192280642162798499779788149477280781701497641119484641551347039081721402759853247958241018239328256677497543153440101583284738662396602208908740898034447571636486345064222190370562251202622446620644104313571025906668277193292767949207071538327194007808613202021054354292697743111719380924351154935434960484187128402918610836484082761456706469752819033230258381687914966893874453077420863110131800459136179065609626044398782552793946437953426064498473908534462005945405561793570818494970896978758875178268701284621349425585568096425081403848646007713372625980602034320861539245461771478767626886192572767869742246728514099776063978871961887074544327145834119755901096295061713885218628810179018992952253474713091032813709825375409673532382053662323459717632106177015966355940207945290536913076444546373503974760015494763553863456763897106826343157191832443922006972504305480614961335985313931784586388421747593330059553966228185770413500688337717123236517830164577001887486332626273321208769802661578250812896616737132260314883764941108790931361481992470841998459302403246302469252838419315185453440120236856950523226039206294752847094335806476905812109191598457929624615837761664584248678209869661538094159129513787350049613694436603038077227448707007021367385943580858782524265824635051707872542472231071135382285617168929378578693236565198816661270186154241071636429980603247213944341848295957243118695714907648731836505756098706321109709154900101545452368718764438005202858400156578451404763457043073395193560351744741900301415360291370585327187318094143042537157537727661813722003299466285067314548099978970780707118285471051785477294422765105791402213799324149918935087614033491327746229132284713023063462158495269041004117607137550289623811549536247759222228744455271451865946972976247429905508772896221347049233170916300607273080125608380571995272996667662085758426767959530087636123138734543253097811277142281199798088394338382954127757856493529864561369992857121843269457848938232248808900786584425868371916671834738087742776255711455170390868580137059127497012253898020057656946231615772830338472573979923531043465362711814797900415160602299247478001782567121209751612516159581469684507845644226660508462067105584133202365372656456550576311140023687737016621725370175348823017471212033597399300666981113957374659730071387400723649900528849196783725989318211968315744550749691138353521541824268351114712708482404238410605207848204265818657092609610667850263771603283457262916051098042386224808114793563353174552515605264788477168748654065453526746225281243547960590398844216030428993656942093018366508479065257588580757590528040613782151154196219847121628020418942046935520775430702837990620248056169454114040981348461929868692436280034120241439278544904292197533594807696787244862579676720576826976678748941035698639400642025275911491639665328518006144848327131408499382677523686835117163227842061003636331491456966946847620625850993200637428081630584873191561762261762090044845761488610713933010233326874818856456575150053989224300166544032696104023248901179011219962872442683288281518928887035127172632580649726045703584617114888593532855972688012497094224862912477791931006489506974472419717167220662134783634216581915704214138564799244164730539763117323820793826255660294109773976086018496714779035904457153710449943662301860916896586139275915516036872783767548774186114522364736777103994523118759564583706166378670907322528981149151717214138423627505886232195904869424982309705823123259762372998311721887023604727911682733733245878019389954995394734437111640973610965320794756049708088765789626149138999854842615243881152027444175396289156522802492231769465992133547175341684586947804357919280492607901491077440966856027804382959949236605906854414878273034719315012259136839232743144438512011436134336043086418718324513937983726094597217882514433076711120146553475396820380842994922936993872974155214629709651085473755600476222887053329599092421768925209091259690609820314846965228279651586509748258326554307994060971301203029322623390897935611118616524621588298776150244497299091903998115253716202029025142819397644101203017733125122051086380836687098087783161927692255892789901028406186100886025112473223671509228585944591751931893521532146382535986553069086981394110495503334624526271943312263661191870016383039150387518500254770015568358350106904454894451899318726724545951781624558442197855303076093946430374902352602533124407296917937615802481129566277070675997320678384921847981233815572589181810259447272006970757837517533435688659618822189963360423830523729746781467804880455933930568666512528876756532280725911850553294584896725523893304790834782478575573030484372903708548640145796857204535338898837611049712634462717447121086751094010340255096746552182137088294931660840782384392101747532442737156467706999604450363990841806503003368951703940475077592489780352458593244076928198528971307836876799172398312667720766790228609682433934820919132656092229112250538165915890230544822275720766804614277530738755840711223887674182667271479551795829697996632003268926194664458397118939021796195483782240589247208057558265125213336469643779341479019209536669458765029606139398187226406735744801639481669429704905678923137394039813268307041713858693144420573798217301412193984848223156011528752364276029470034710704825613686196545692370149233294646458366241967251475304331187566720354193573332784802241011818121812374611365910915249348683660517644435239160523048827981694960026719444402216343542266131893438508393386497664112855492338958002953301347332370448159799505645339233026502740875942923714480334091875608858700061204191757005625393348099851310763770490398331009617882456287655040673409571017131659120950570175859948977191340103237683706607327259582434888552604752428997071384484895442309658020925810766445153386241189259215196053757573341880722831720461117103548915245849248700945355170392306393878978444585673507439278789104003368843646703237144831877772145533767033105079454012814360819106467342951720589270095256761833119256577139280538957246694661162974539288351678832228081357648980729391352279514675465677786082858196962804325324628342086766674298188830560133002689149148650602670324812143175057881023881326745951688046376228995059798942471076281810376257867008009175539002364165031691739618753129904239488200253741276604628584651028536147710081609385070297951227469034480023719229032970320405793123589049267615302137962796758835561943983289337395587386020391436364994871116969443648408622516391156248138384311902570902544588915780879911520253243401789022051836505129123799468509420518990641941390708626829063802731241972807119403461945640075507207685837492965873468352766191198815162436488734813722896428725482363985116214941205463067068844882958757550677254546366487051681526301759275985896167929011746341194239693184055734715194888951178910429646753482563066149064987642648190378315822731346350465592581404532953460208102344098923085620926299529153828430466684419691489551176309331849242102915815391647775920097481859432699341172464224531560130143834175497374043133427108633863264472885792087220775496326298312855966792395365030332458083273933749844450466346137742128418860183853236209596159971570418504158783379140838685325134733792250047191212173428629861779563211314703502920761289517175395731331704282243186646087851353503263357477396832647593618836186521144976124670338847406934726659240822994603265413705303810550585025274459213463781876983823818090937568339243305836000501827772273812336271756600888940084476309391814185136339957609507091780115732437279564301606348129974404825405456603257250727541785517623024477659865872291832313929728349037917413986495783029871692468515180151140924525685684049593056193313595012338985140802727965926492919893443206505444691856688088274437922819946198057582411623089789801004663391800473942087820762852549684353577849333628095333947375616245154632263299308057834021399009788292431281932057539630873753838597113023666424514935590997221346419448774725270811083210659763959574769910375570854558959848643781617802913121494775532113441730470074177173234910058835872682510651517121117324110510029439875965318443450988793145593487629977975555762868534954822344089840841159075612329307309225625584166856850450867486955717431904652737862368631880223605847112871106274295278145057369338676907430565551622662823077834166030619301112899368226720244188854045445334699458161817618122153335670353065647906009957448770353474387325289440916931182728026453761229007921123059956653324085456016200399597001532746814021239893799651206371244780185122774451330087761182672253979655877382825403592082322220336820762568319359654280696856334886045201348404343639192995146468218029064402631165408284242863028355815322813237772017238621929801556910957704163102660529683638160836380720734612371588715419980763621768871826876136549983586466983172180134755470806129104853546948318551874811232552150825166337110896558172986376712259415577208043538506374735601296578831725359656428687290053348013079075272653152986163052911633679481159213092511618047194923983748766155128756453101880049559872737500469422742664275735857321943895939742999608104522324759552174426054108200462918088663070632209883237336793102800169185666981409457537948303277429928907013746741836518983758600216242001024837696220102231129673562454706881318043731328339707913557621399789740521837159749729542425177510341918542329353262958253513612253857968281501728524505294793690768902782020867093845044281297268889900429726022853718496830087903920049230327979999621617107101152535163809634539091065780721411738564318994259456063994225329391619512346922505218050066818253122955586640131492556885130830410767814730030437723262770199612609168466786772319323964180633726021837147109022496303980184097907535474626768153120201411621236755965261958960019282598425080506036457083460477169571961649231624171397901581998697070155521272649169241749998183294802346954257248191102864208098133963649394656808706317105144032497087622076109053476545502328334046550090258120225574152661009859622576923189224452802053091846090975732036174569644036563616705619604412343245276525857464983416626619598542633257986890328728336165178401916013049056931269916153416876336131395390376634301189976369679074544469623135999115490551785416979882089606365675032945387160290267414356798367902969199540314526951830142899802902425143389422526904936528608141372305260857667241394427314820096500478892015660080379036109094262152479614486087285212937679272742600101184652670089501466590160527551672237921459366962094051544105518459442114444716675204515561525937822337208979696713791275983965104463484162441511609423285668261374857476052617008080294362794536894256226647594419003659852113427303581558940340812285526396924283354495178828721998746055494852876971734579476849176188533030527123517119590277391768420863992536478046508950765364369808472712712857444504333530321859069028200911808414545095498713061888151057287318143254529462082434428704606778291907918700857662449854690416559951509407060643102587666288326846921144875478584332920671432719972581677313109789417108715910712592789231850156467313584316779883906484420297296597061819870625105217088879821912946931798909139832497056402793711156329756866840288446006532232051009118427387489552643969899453575436806045540362785858757401804844963705572922570858223582638949202145720407496932470801577510975755075656677737719021068021978988628625637240299730977096956060242936047132083248503036126852093948112934603280859989288573714416010633836965324192973925639370888703729028316469567178462720627748677439691444428141499601763541869252830493799511378773810988739688570466783246445165653277604467786274945752918894305671220682017507521743655779119673144327418945780983937135217856355431078897790978407119317745353135026183538050537918031496076883239824337404282470584831272224974641100821909350338485651908485107712518988231030930778596135110872409699983808236063284985022772983565808455073275094799884014034574327813425859217880257338634933070349368001886563463413357953229347763466717455911343538716251426020957520492205698055704517044737285207758407261399530299178287919079853037128509396182852825538566183461548250075781026110977685206028445822009258759611378108521771015076912307269178112241730885084483650075937769185222208086852415780125633313459549853745677940423081686545883116343236730604737638668797211097422094591828671902008154869976040058650534942149240946778857294416957987834887290189567321542447778802049166636913481786378785180725792082963915647015354801652190796470958225866058152615785458941720691989691936473624139376623433269865504633013926628532021622463192020143629472040317251396817702742358173974021143764620097025117577644051606224690786285826892482744936434590573026748024612054118905770341219037260122532922252820380150577486061341764640919094851599405240981701462432408457408153303297265911619551368442832764958961454093984641937512775847933294799312705105681878216866143166508789483803170738558152936707600648389457858877883663224015657208310083583391545828936107939918100412155451049597617437825368231646705998131969104316971594969837211455656620244101750220409024319356646071279221868884958301905904404175864116126667034005662199521698578993674273901102655977620986500879435262666427852537773390544017619481033587636724295213344547529477793381718791001232815678736560735324135091335782045678456265694931196276580660747936829583896031741259689071574137022944854213127729563488892164306302318127235530220742498960808001095532935425375815522652983837880510163590363712943691625742903161275221334592972549873479619907481444772034805716803875904152869402236285149185329284050616815668275019826742794405774537366321517173558263678292191238940886540128756614181385223489784613432295448647543386406383001289460845979597442296456633085076818760872218976136437918030789080350198174146216782633211931845613131054544176491201038856093142920772523725440235724938065410794855842737997168683027769583585501522189657382431916332480653320638370827279085074651446737785952446539161510210831405738409321869372662986823907658634929757677430841784413824339444402984212133618393709794303156933254312425564450179298995315971898754745140741079421990816687372355769214132052514592459706448584694781281161896311770967794519215314546318569651500076456816295079425619533995939374984389433390360752354581580468684988978822686260909949752341685958512895024745941024764628563881804152822524719979938138658944370151863364668237916593651613450247395751885236633151659298244205349579460617441886083940903531560313708977347784202913105472756266118699909339971301545692836196005930751785590124265473897659975202971692728769116579099495689143839728525533804898773168352864928124211782461644364828638892905117926373929850151383541489729944591371137615935202009857000921400933749444850067132030799403485184601819890099150001313332501221901885050162979580248813831483078950371679980652787646335992370702692418746714170481539338406172828158544532618471590041311766687772876619782323577010330555664545891606130474946772848376979487734636544192848557326946728120156392041709229810965487030420202805944046265602534136105720896266612895197183619336726507810676839053916446714466301398279684807977785276916566286787278841878902098735154403899986882653534343490781873072782585852315415988361842815622619135507111821233975578576928403003457107973579044929396959986916022185167244246714647822715295490497903319617343898704387860713810819236918999197514663100247711952374864260806311099615211758326458992006128189753553091974565779283825230782753479148068056773831671341556142764687441336703793485656569956664668550102283253955929142576562436219519606962107450771142389341273590218815449099472876604703385486490545736402266547260158469389435187924881683428663130457565324886165218915194729348616592155441565752712433372227874845960507157730698072415998970376790520775098844878696408473830259942971604319457802027718884866032580986687646770003498437306855441391698494002074558224292975392075309648804749842820792915591356019169287998646190805677073538052205471664293473323255286230648458920430620541000090919750195017270701942410336453847727721048818910868945504294073589769699315872381435790180111241896603682525107156723370914377596717691781766486375481701479683744371757382422612096749035579965134822336300652092314742089677717199417068432882257719956778688103416628970583370634510802065098805866860551887688027416711984747518363747713523460469696508607977389077398868371640631203779383533661165713995315206917494697401891352639195287423050924533663468897371000875605168618848721209026873225310863798415799451632542935305863722579604466070645862879770562348759112681523230108709027920117252513511083947407253359609496754607294496896050706265370694012714166565321661365207738086481779476781415953763985370553210611478496679153333250984284163729688509844892144253602498344913999162166403740279095767716950234541038647878662976363481148453825705203542530576619660688874283668370084653945294413836147160894061927198503018133480130600101750012598533086225064448035858500309573782326996047039026965332077955904547163913321538314171492417392669876701692247601050807536971350311165306952711096988404920314963305038781641057777012449211588819661390336775376821894472582137702842397967079613800503371236284970659055828489556792328153678439201617481611265427192786086753753342206976671099995905667850440427108569876622423295497779417855573886119406100208422919007789292489119478295974494999716921664085152728089087783875525206081945381572944843091991673295591108468648959277906916836695527138489226970861221205820489646760290946553665905567036771413387134058756396281976360729538349781129662194263778023478600842863798553361643844823103619202781289731904361056418027340960438107338307933156199816727017741207284651481006340623372286621320015405690805789476650001568658118425463312788257564330595667558421392155632923338995410330260328113486843388838192297941477191210769602759609501573007073003585228391027735554866879713040046308104986758830262531453870173768570310035088117138769800127950091036552447313785381370982220181677001265265426165810789278389101207058855152920891152366759303986926521481242192598998874369468119683777317479299302608850876995805906776632473836552948889049940477556207120262841758955641394004796682605586204353020703029558746390998078281282933609645548376688763631951846202127817306024770626476622293435446988443370114673918342133873830688818729728322467950979564213641865260830014677494408997892088020190886579976973282713728556990874847156540920441316247384030761368181251845303969567015417596448157753527215643943798503296086176357915265756514435296545187274711517512193632801515588979246634321320572211753727378973517478149433302025618647702082925489964041239613361133741652687516440458076103767669324853936282632200351606128678380415996828339716748347031432817871887169549325639943695095435987555365347090364248132522612900319513456544281263764962866175950774642566826671462048382305912868088877067878031779600450311725305707672876308573110751081372632426282317091948812509445006273140023451059408587939401746524547817858052237806022243490714965809049185346958289645497615952561065459166480394407185934171455696089114843499562897119956282612587128833537389111665225542748588611178486668780500936861383367480468139182618434829408571264645118213801782787542453793195270739533833899828093646186279548442800740762129570740223709356225008424954062854589647164242124050592785852251965071635767520081595832716932543838734967367037386748016891799969007103031988786726943718060248075049372536035289111380357246214447740712198911324829934066557022456738535042720091092829047054329976687071173369843893876148258588611260816933375048940040387832082216157426269300821480738705878629754408904551084243907103353858067533331682441774835907657166169464272213522435353124860250034296363355726134663494453975143449210462738211017928807287110885071066730916452136617098728648726674754783658244178019646741111235978162979996272238328734862921705074530664479945307436005726124314397061080823567409816933876286059482158522413099877081701926589403826193122967245908439767444149427688688289111606646131404551973054107278264405300295195330631887062483375657137177167559366635836398271040802914902402114937101463156120541959427702330373570657631303673640884850788984235941483389799792915770180447872805186338466389354820889059819990658761649165926717945412813645633289010094291434459852442133206167332656929814709166652460493647594367986298228608282600817626207724976931751402985733159087524291127672617006440017039671342376242047862442384457693593498919690473131766352951793256954289837545626371096833530018374672860859779797679934269208250213783528435982225153913929590051957206369602017778273933143229167765566872248810979472659163649115052067486691374157606278762843440083504984365435355295970942699762487315386995132836983730049237040578658610746473497901032258627235196494592256553970614983939941711173271570116925253885605223037426501643680205680464964155300267095856956256554207989104027453369066305158232332729258142945605147503009998191294111458267220674778044174598754375666235026014304782736050106965504000599172402870394610157724068979511353458584107431770170144354206181874675590796015801898380690284305752290696568580315981580303576919181374044511297097760650509946300481628564890213180653420661062364916999573018483046483854526849966354477203726901153682773153340591177782851253768115129864739313988806024320389152500955943202217207774100530035975582577896330064905678898781476244754954204192826017094357985287954100752087373489740897416566197304427342859224532309377395677039931831677824282267018387769866146822392327844332167650043833185539056786373235271441271641237225185560338770898319146755834565850362025953320632550215900926625111147594406676412826422393071786464890721100792429859673384966594388580068716937384522094884962017427207689255155238138377337464112911032438249770319979235247315000800297048499440298329270639490576955656599083786555630420370545695299785232457320202122909962068857031381877298586117135550451479543090959019858205270826768869438885093305555898163849157351107528567849132332029701162868457569036379682945994341192113805979964961014265613080175925137281312026254979577418600947336049500227074467297656125508766626916311382271828078434447258837229655146118194979887870694733392581985964204414094876157380186051400319325106431525858339694575659698522815362956598673136869903184602301909741305178214814632736076400585749888555757402072138161666453184683156416200216989996747333370687865744775677781273521160719220336488347775943088956796488177616745471542876580008994916207394969181900829164876853879795311516002655993293575113671000558305955283190506091349162254617204685641883822369082675462209655599259782889196528222433176218940431146960610766720244122040443869374464878500451955100870969704091956421918718801735414052343538021841753312070640102428319968700739394383111236126931715532171614713259749890962443070776868043562315775256861246231439315433850805319627298297026940310622425900911877314502532952220828257196009807162734989534494400619204907860257145227965910478822608106244218422359386495201603308473010522736555362190851529904315702623217130866609754109471180170872008354471232140364398319665440305461739128242674527790505655371653949138993147064423797507540426658799915042434406112504558105154717371846909699417077745033327975485037270053958533418956958219112770626871700692344499794136490438429790795876921960207698740750641007906840850002893355408955171164588504599937119457051540883984092193422377462953535604036117090919659033000964148221643956086457477205812084825613447595416889874685887514485970710861311056263550847879665307166004302435487115606000235861089079503670728184772054035937968441182961039541304887014323730584138304108445521142867161259775814605238787345815669868335854632590193739738946403640281998418847117625138495703710028639007574027557518011588769148774918160561806019820610055973886535378101117644961093361260311707959748247811928707126500611288063856103913448550279284943313583993480047119563316002025147351891008951302106263591939528090896458779904167299518414642310328309213386608053564592977837085692954748399909287535496166668757315559744810008256027671384414512132751759869139279799607457475389281323317215824180401469085353034913537145635074896908967678239350103811952155349959208951044945503315435519996696594243796538748275473330911329620986501250051480325032444311828190559525614337734170563836698347205906261579874306576914299446265199357502623566913175755133668031760075103316311445099166096460217256618039591628993192094399628495957202590609501142010591110071836492749229980745892188402733171048721388280206968302840372584392515476253897642187539625008802391859038654491399309991148696811033499212023154856735692093610033099673513706463090162096386343722134170462353610340726289123679734857946681438526454914414583765343717897761926406879621901718197325947410764371851595054382265218187658668130806191630967345936028362844961007751342637291422085599209573366859986850591186693406751466339184641016949534633405002735985632180650969949797842940961913520383705659832271144558149004782852372376678220794026219001181104456941702557080828742854724849344299955076709171557059379038713757329466495366432713531707480124851628555073668452456823714661590145706416274628303677122963392854156854520025517529289447859403670256968440271338928226821779781640979067442375393118744475729883030288928511293925903163616715852674948627380970674960809027854461961804614323696023336807854950349838548217365762040538024817074407904659429759515169750456145831945047262681616593250920216192236112394343799728657303370103802238132577897026486120166854483175497516704279494397518456067875493620584713539967881058436859653086619715843644515297292714183306163961910056556235550502253970213963042260266746507193225045000386686353866363426180082216151496470717844326712687814106449956280015393861324122706498806248290165806407548115791931608706005180812412396049288026045506063538362122096368409043295361184934940221209713824016580302786548061676755496254816601830031973270275114739724533413625261783586370122092076922084273398067589444860043467332997114105902405694483213730318010076897374302190326820799774989744806724743586241333508845418873972692084999102798059707590471770268207204216845210317717106470023712925828092451862619137368724265770840047939650802458021151345261452007940365008302612251166269432108675892528732571391921386888396016054944986397763466358279258439875872307097201119948468756477768527505178240927886990052757181557499050557965209951561968161002543606246143331274115152057489482423575513972909803051056864086856250020122858952538436759700225345786390341274393997338834406411423458001624180812925875483539377311616290478735930346519059304372859507066800389585518366131298130870691000495683614480210506882123068736989500021240872207450890889292446611558841295416804460990358469886108856230780734761402067877410224174626726889873455786927275758122368696335437209107029552182974821365894421625629679727130002424963948534286945575933618432501107208145920712470195981172670986649053547567664051507616608819038992027519100768699194402780109328397413268622388035973159955152429800951188098267923020301199932875326020903192558893984959479564205254404605165921123088143649375716020178066936062268129247483863825213895602876897672479129016122996305704813991121738663854015948212947601580330711694563545230730095935596147092621631331774748741520694349597153293639002398653050362375420081217462919700708584263732857043238336743117567516075154059736953065733986335488194768533818791229015748642253735122300949270153350125334331427484210926824719213447644785748460043076566704124057790760427724203990928680261228236734191299793053341195501102766800970589153605974951460583186662317639043821379539946793562954636953917280561025312477210290442930866937315342004931070020041423888589365865904434148671631281957570528286521501235354764423665143936239396395730243868168837218352681983755865531634566721351464954983861484062142539891550380170809853498206658059644320070543763665856792670317456411601410042828079157237110508955975218489967039728531614741099382525559190297571093502122315002669758855341660266484521740310866568674883760034642034451038016825783060853823821724967659310946183818263817534218225667253318367624569463548157774205213559093230721040868024140783172112398505070923009832716303877735768371144476299276869741974240748215755782610841224470989642243642592713824191321863128981261568925154546980737740402960163393852483641157930639235558219803108349617690077898408006761533843893998192948242906242328351426592689897071063741894876134892937119552159039288199568372046197644397837511280553526501101529903937800411815707784942069260754298447220413045913455135974906395822068122559998392562844554816686106375538303503540544923028270999240741710254976160274959465990506880522795460354628479521397251572090484481220328031101085957940089317015627561373562914686198745469030329216495651732154241407039118415401169793780350772510543326744437360860805785492557908786607960753638825040650145135638795008274897391084998331952834966465700334203057051403884199628791561059843300106146622020017220389403856477420718380632117174420139838768338193846029346350284128915361182733939290190523741529633229187988401142476019363320680938884677055775490939111911171680355889848901643547227143043277204934181608068444900338825154951930717918068157863722245952594849437222541085567955273022665917143949462692199210143721201994913599429359836852447060335323628828432296868302204739289532367975239734375800435118264007336586048381042863199002407986326641233945702338664756895487955778380548656682879732594294560096532259299442877519092737052829910823619532244911290090299413745213996093702392612992533614209184101942866440238341411541896365450009886855169835550780673717720235351351740990583427851010271098131162758127362652503531270567556975693872772590105340212798417131353740721114660083402280383477058696473933313506466871800495287021622431642167421462449035784823492661699054096228060971033723110551571833361349016361180479933943245553991833715801210309690173607290215724704967485652060699951793483440546647701584900504663797481732686239971947118853292024876202093151949486090431838035196302082838440148470924317886742245413388928248229523850564105773849983891491033211980795553244209500873410234670050748672867829430521231014089978445727164885035594894498639868827501342095447767861752101328752762950863416987279875226419367515598501537363450911000680737655953843258320218631330896601218113919409276657024680867294959539061585142874855371116072616190163110876876651090085461321045101279085003212368332198314771560104382103348620329414442093216375856664429893150315511323571977809615471449036162544643001484619224295389331705661381926856121133208807295521837435218825191808363131983265074388487185123613981583942498198197345895244593052488887374353727178892088800644932676883404537267980109642864057136023200471182426548330848960648777863349607525917671923891887261482086012224156261189699650404276527471654422620880513764019194735919005395187610903307896909537528804156568008431859895913566970019951267525649660490592146909226923525515761855941933384733499775221540594203688065353611382703905153778479326368880056058649219073872012547533172658478998158112626871253464776859432432315884247392284354359643481347855728043126282778787469297809145766214956637491573774719714781086155908614569515001679095585663837234753935589858488686553163977271541641780274910121425119372453361961652603737197796261787591647995304578813135605030446319550284801967471901397575197984799177200498899634813535221980323295270380951201611102976065479524322266794174078003253320974286490998804186806943865483069837171252416450981257570792129957916033174188110009007978556666654549832806631753047619627623524118137161242347213825448411853320859704172789043439884685359080500515601673985280568572639550106397465757232329800730841964846744556338457395034101515726972352545205767576679427832301963903518525064358984386907513482138872009807417602327673187314701389212083549256550353795586406429923426245458682277144423683964961819387160880342024611668219132595105837578824515791163379064968435893258934986322329521640085378667362194193241724734714108462990104636606140248233459139540026803503787420850741054564531158676040509139445622539725071134034702068055069672609870529498737382719933647151837870864670116995597522010714871323427527873754872714083633400064174259299294672568370768517899460484704726979543800260126329520079898274474745836325909115433879762977256707555426390648352673270185262147158955625637821960617607024887730968720359157078558283772964002224007955780807212547551836925959274483602364618325040812798336517306186919547434757194983471794377238754938512305628864909538662571685200446307872468395821611167651066440061410461150797874440068229506823101736201980344206953598042041521779283056444891528325928597340540268243462479246763276898914428709001268926478741151983537648908360413074602417581041410654412909968495669297512742386023299781063501558110045033687540177131761327712293442872523616518432412374372702673609635097589797766360257181850536661661959523241505631538733008738997668737485381295420350726635475134204724159225014499936052040980668512513223613677505166942402628216773037766228013446282991519860124176023648769691802126048883724612930494738247353974901168192436872791041767518495671636823277172868066785387609976994739742707987703767604717715205763328924642362985262008347288493942603308820830948417483033738460810734277166980636849465807985454660589160969340838334683451742562098645846328227516145749709898009663597683792102153756917560759980224131330118311555939851118375000622532886205983635630455399577146442776035726121199667171438344994661329184341989479438117962103585834856506990933761488730360574148762604597635246148071627716894650032480074408064369541941520273880665600276281209459313871966163309130513396346918161785185024088252877935625158699512306971410589374763412580085183063333076364431196327896091054977327309980192272716183785016743801754882453747949378475876454753862705170653704930502757621976783588552342786817913025823150078387193301623171112309057387757415651273309760191116240987548047085339173417671041496689953139785814717579280679574862319324958056037734542370616896729316294651817701900883879371628829214900520550239682072623620343586910513750498632076653341083465018948407360062158133994926413026403439192936569003943257218720970281922409436086908025924610153911616325440775693762108867158721597046707204472413289400276431870530781951640064627393682071340726955401950007670077658373768502022138911805294858594773852142421553242595535067212180105902011293935715082808063373680246306462181410383723763535268450419409608944242506415348003889879651658091173630513522216530148212159356320004926009043851475501688074040282506912516850432328761884397065943600481395291513152635055955531178807611439881496501405442657179848466077602549569171853894732417801187631023606039827541290973624857231031771986816274355068139141980734545508104294527128159494730540687423744194899325023975556225146919901863683950616709289043183880822511259607505589289486115443939662083118474863900520750424336169236888159725124192684547734652475103851290921491217045613911670845086072334522623314153365879106527558189161618541333624148163997511539193819430761119973059229949855282902427559290211209229382529331948165449600361029046556598863873424093676989346576320593634084093005020981865424373800960586463867629317828475484970221958691269119404092894336807895082379747241849346155712906121558061852761506930525584085124780651099564792363284054582477130892629371503422667774555794951962994001533973814196885621868507314348561492182434743421988790409417561280265964351349408899095810947738854500562288965694688805218228606332164813651803335682399425035985426191038368608807756032670963127820426675532514628656309444003340016050708984760769475690464554631949036427521984880911275526335603472987926247337029701039754704399326595650620447402971170449013539010617933410894720595417859215470938095558253029618387716056538435898971923703682425706895336516942094451459937691320291821615108655056268069035126349387400365576366917401630993008837293496022090077412869449381425064767102400319585020448681068175164733780468330963885433955487159613537516127769967692264386236980686884592466015459558978040141379575696584195225240248478647164138319899045594782572750368184043331268274697552426237860966005648984604592843950078214119369815481263408416678247174877944521280404242514086227233587909278931699068845949289272335691489487020817959096659708801400954529219144715041599199093371155605892930661122735097807928960831308735052255416539623272185735986799661415988335377268040558146354376215907495966402784415098472593155010001561215722924500028376181740041064861304916380067928044872085255602464881606749246727029735900694041714458864856893211079165501269994926495304259914187887194061317823595548517225258306037242549809011204967756074934778948539168378409178738655678243231827457687924029640195972116774355885288161158895016292363982314342271828067386522458404988078579691396801592360910045447708367991622493110164919179015802614585618838847769315962338976569185883421923135281768886005164036240524990486471685529205567945964466927242850123414571756255470417626849165387120406677402090102650346454403055427591775084375969959004100834652824503653380104915812741902087540837477507242761572207481818904036840234814507491654646923735719066168610250218799779176805013060404226715655695763525432100519272837552882895271533301034805043804854021029920734952800054318935993209389933332172580151299908759667856428023226341385519995737767254415701243726605438824649212289933047047650169437067965707086769157958905194259769211467241790347157182606511249594259829588604242932109772152006569530886102256866388427066220929991153008221212323394373395747611039683732633051613678328157384812693588535580460367758985394148806921253972614423347526229071273844471165950448280410435794485610822371759899424823129059926344215830183391479313485027250332371053007067409033774438657489018640053239862343366637016445828724015952319604872798053416326862233593198419572828166942460425755500388919024843377080716929816717017064170693426847572282198870724695437685659079647098540678432601084704823788071150019335231433190063199363957762741403759706989812337337404507283574304545855112934642865610095128549533941014497596368759420510836186545885587244193927815630301770722036926528364076303976871659505013685641701945396062137133699469034347120316346410102760485374305542311026030825555942971068219138805314583560640306299205301905605049045692588430097107251070744915429441055536561861025062005602934668404920232945934647396586710440657063243909500699360455735385214977361797855600703531458081552912943984851639600624666110575640765054990044811509643044439830908755453416707186724431415985837937055404269187153977746057124381442986907542467786227527480519855753595319268614214226094938768452776205972523783648369988942957450425320577713111320758353587380507284670498307420850937254229509833266510964854991725941089338303983932263320187254485661525709603475809667354484113351292009658574185924102719867911697411177754405425763422441283267021710600685000354200464602510409027153680741187991663676443807130146776046154759631077234712320446243681797610877065208236828164208891873175303466231015885972449359520790703668768014133555268600227187551501611282048697065479221433601622191525561125479602749690699269634730417008936168153930605014812243061659104677584094646946248016154338354090502335250705049980341273194361400485725851739029034241362068150403250609118047290815390218642121327545280429962344668923678269943909422739902039081027529410325921172669642053388997097684843629131327646493002081275024181283517831359676214220322574095901761269429433064656806404016084180037075384508454928604866302989610756587039240392898604545897041068410272590227861029429401689686307345368945187305426727342153677882585732609852252302587664239374911876439671292556248988749085241933201059576785882098693678323727881454797573984622114043209367868006832908751639359333125113057337066289788717758564421796880014634654815852146799794071096072893542389391607215119673240449575752970881246701456112847336574575479938370370320563806106588031614590727544938423785302511362499979242432285387088408649681250025883121791787615190503230296190081811786340391254146315243057874484656288928368267302233383017563994916730646339267374709456914443885206977813593517266672803899959555456482446933591151166180119910870795082427595700631507540663695881107067239688004393795583308426811182999615531877675386642953338823413562208781353459102903911365906871974211434153002863219561575433893712105807777211383095961409574695538376579059585983982236315496278631986441625910964852011848391882184127205244718721575250632546064869269381266033069731876041714549590783503801575700825979919292994205940057320991772867273109870149151810568811715274958020826507401412369286325456870507707742628969107015274337421205510839709224960444477090211443166612662304695986776348842858891317158415113735874291527322961593519101521716004692694904520487865127286836901892275674790639813521316225402157968369207625081580390367366829015056544394146301071425076033536632822720082670961728488931085706707816843209881312548246200210304201119135794686038336645689147755872369404688137925241684877697806717453252948741096859842541319085892949957856592816833926842563762584273909104480401967964584712710382982291368495912369744032562798934102229513143538323195584414003711804953737817047742733078210766608568075556368910047575781654427240042587606444891686266883047636979540865336280443639914680201376120914562098867251060266301998018218604920822908308207264783466490233840015730574619441568761735809723912189938614391108558576190991933582355820707601041571250271590574162035122820572447096019522797404883871881664139237211677050226533206658788837834253028698357196466780069238352567817517862604356731269423578834039660570640039717229392403254949981984867188580295868058460099094810919459192974791081828554294809136223450706788807848107987586658341851455490978419705727696582037522629439104921558889615812228927172324482684329009383220311345337847141716391584666992326885414936458835222591339654536052636425367334325003718641058909657917188140631995452264213111111370269947757536320276093153403071108794774619664633856537285329705930734159787107693468977045854691548084291399252712756109872770547243732835710246282132390371286332535320221661516963386667610963874071655702547734334699234247340832766071249778269558464742852887358129661678772089901865076488312178834068067424886992825189600840993988397138566600600998974872297944262228509903979256687209218522459772926987328336177069021946649932079467181687194827868264121918243956902678322830420279943248115508365810578937650354067448662708061106325744174464523324093752443621192487670377970745505484566924636675754777990267433208719892030351703898042596959202986029683378775945967179222987530610255651115758950785920949716001643889818154443612313285809873126142065131842527539701256935755960596264701096610647801490371438274732844271418154443095481058146752228211510533427494856282313300557230059458376309628336419965434242693663896204192837910522937603229001638630066183454023818010912395382100307639486494189422255707418661391427969254748935438488740278205473611988476632705649281875781671803740269792858541049111408869199236811918738424915422167449198330589832869616128065983723846881749451197888362341068441417804822356803427123826027946042235987101073248955217205101503482301014107147440928233175500815868487107960220204167877591820220828889385798313136758657198241698245564069789038988951522519538162150011010666697944544497844768963817919490562065452626552868851837878083507593388868756459208809503285085337453478804938943034470252060118656704108297760023596885003549515087430091779376782586898814039379082312135706972889472115573625073446225702199473837982587832039783124591040339849094912418457993904438735733851532497855172835285217306345042868576511807485631207460682143192250953987434528444296993761381888526379165412658201461610757048987034474357317877194224741843965731309028007614796442697429228652897844681200646909844282510684093790258865847967707610270416762035134480217359677924859666179066175957397541629574129482677905443307582489985206918700477401352643934115715539038825725409087365228812603442056894319727105167471802327297557079206473546993833680327337511108457125934793514036682260973514172645279596833635425604838402056499643032333608912612275638716728504137459270720034959723232471776485341140087766703634343405954492243313425525502072949703820676777713148003086184973522428944639350525116103498121167235621981990686514205047889377751004300716514833550233355844824190544729009716585251909097481108542588943700678407999882206288070649050277455241128126773678393398604919853256657653449777008426107622657100536405387596508048268649251150065342158582107070874722552520780671245865948873571814696894105602669920584456606132897138962239000995425460070350861222989358239508640257005591984836098299066217625814158241062835364450125886395656758471567010459490563062164049641810878670257728338001252837122041331858911920400799146995401466695202102119485585090508673245014492027962551970856771524081837638827474676120238506345503427092772249795554350668216563521088737812905454510214840399350577857210985725686404196753359759551770578753146399201081551242976678544108654006777500740035769822432366837604106546549386134198448712517970650014349748046513942510065231372836684148852642341864841077975173881041823413949317573430548720750473776964409691551280102294869685746659105855476476559929384407446675095253476226499454233151864438294228492190051246961285282597575001892280812432087987679870397376376578603049439284582699321406083877654826472075264306248637364242329796771299496502948617417186006857704921760233087258959957990686993085615562644187686379736624962558537655508051224377632470941494535106646269176773347612831291113672237213589584899987908805293176330511208836425316357747762657525130108245696356781693794820543575002932893922863244685863529753622351405394224248548529147083808290310085793346173283292278756380822501911063988268554631464518414147762412777250011526347125425589232642240272442954449908827380683305741326978926738893114938358524421321548925933887619674104348080308864482410733877067346866666720276948756933820303013474634712984606496226005331983267454265604302765474603990689407299789321330200297121752666562165835491380490569362798265609769753926933989560007981953608925410897076367790099980047446758665076884081494449370671859766399809933518868476463267376761814338555020902780445664503931658409827798146817179508450685976107284728018045190791950761720570628768864194112014555600595926478435573923164031097695001854617878615132520076394378973956786281262852166252007161326572760598395366972811450776510258861258961324908985940131263566138757277394082930901853833200283267893286646505507893376758268380302507749333348573647396639471775492703839184266657101575611305766826563041052696599402183177541744700523011260535989675848971915552970756898395148920886332343541425948086278227406289409508932147498219759076676980161471961422440315033693653202638532082610244302219774470968608014169205420593808320391548297459207593660629258025186441713704771927532202293557122548616087586609869657609915431874803688751659254621861081362547040378407632164485970498805454752450524202660009432231167649426496317336996787915484577978335689436319262460315945494099117889584349625822926969695264801706629191746252901369391341326440460425651937050476698781061151972739439262171008397585908140799437581127337219445128420034044282863756713165850392685041952057889991426937479644089055299806597337363496823357526854314909673474635700467371017225392200175067050545986698764214054893338447188694276859500064631673322243878408061055903001692067410213360358998516355772580747254311535205510366812205514441809413546783807446157837363686786062071885471765592231861203016915893699144188827035317398697433678855874689412206125719078174157259761660834115769741360529490485947625707018776820872015168756703481640190102892949526688534499967008835376175564238702251266792964629245839388531235590054865017768050611045935913993511710086851190287612160771679342687495297987934820826613688301271427856183151899457395572548215737233958869143904268714470147362967258764618003634480254171247582664518078253277662323891853817838485777589995249377642010414176483301422119312966632925183592210245048199550258033944231032963599243185074977920974008672480423105054941299972085779154468069562949210876870291965601372609151694375609112819934365638232954494269003735905096081791771265923450045306671286990462068794682751168703149458183281356998657426844765160323944581064622960126240843764860983924452210675473502514563645944254098955675935518229530076064010041013048906811453282992156117865383406276472531420787202380786768708391056787282697286521615338145616331185573526707244217334711589336997358111903011428803642349123714640109229118209961047976644776813057422071109946788422405414132616751972061076312189735570019829978802154559053874400348603673823900215158161187782205994461042989243095265916637514074947767287173012955510732643497653140669396501444621224644808060215895917392024056612651072633290758686862762715009991864909943358817272580477754431912747879888108735950808288705951488862550125283411019797581427414769466559593112803467224084399113311821601415301785825142771337905042479612511546044051752984794106972470563406979310236679182642466954108657591832649171682024427043051995633568264031139638916009611541434050720394486148622307957850161161395606333142666708149525862081374659966752964942344460001450540311640667698368505042692525244440143191400980961655610373052837673609167118805390868829705208853807968111410699122965023557078016513994079725413746457739618561933806031851820396418392612098392011219129015478044094522046604333741224508349340693817249012218782500091670077715573414132679267004345920833107897070289101290962148826843400945728342124905305402284946603746406897708952293398414752304543575192344284130924181299645496736321622191837118637551303636840122661896791240387149678514027563650334433828559491716446003656359543578463211218972156681175223569575780773782509997384751640903176479447312405347197269570735924574418533830666346968542713060639511580887781725023716043673025507087056835310062990928902147688906892050372522728323876998994533529150403313366091517146181452910656013122392997454630649234627031422681255336229144425545228983041021379681214927302473484489983563370647696590032402164775082140772184350327281845359272967301081914520435467266390802800600967282416156373549505984460155590462504070872014524789419429083967566266818917707154125125594850962635510621085070163306068911051071661111930374522994139413930164854884650300403943983654578996048298528836690575624994663893531033308572049561254344908400242111038768787428633701148691619563405675514566339654263967016760437357405277892050609980466384187620982800431703761895647491386371346604423857352918949089726498261199904338949937557212418330659113487462877165934536465202806403551433237223948816980977857812172297487835223259824745535085168014914878955808206802381459284380833676269951881441349028605143390010813698541450358486494730011868718970120575395836681793878590659801084071831517565155934221529661267276379928454246819347708712090607151012991307976501717865747822811817882305182323297755485026489659085467105697444565432240858468799187963904762827240798095103280196997993047248071784373386392192745048080934999247716535328473250212154631212080345530299769319065972430318806360994097690844587690592213513983304896526124981874011201590650156567678616544018570426816333578995400351966365421395279263368309685560361030695658868318560315012949178143495955181376257212478972688222164513088126285176496840222310838480567090887532755024247999923393979208506562633935491657905879428261279396940624529321139494263923856659982130855430108672161186434329661094089060891035634718780275948453361363760510293473463483050051165294457312165372617705876617671936903349805623081360207689784692927327012466355003052310287884150713652732383495111520105171084026822600255198770368420382191640387075407576938672719908987887890150220649947554826720312872050084515629444222478644826994181000257207937657916629603795143473477351365160527557923021959463318692336176365194566863518176041980847977641365895376414857913030287559648346478856395022124542060790691433460792510527489849358167462871557615018811380690913748282452539348422931306487564282295637148520610150143365472272346081227299394209053544622718649386129141776379336516986769852099685201266980268821073231924830009994177714465011050004739205750562798773760606759248239206995851186439946125527877278009491846186494668473614402564193539162183072986807567518089074116982127410890998960579837115433690741505168208532477376515764446893372441288095469144608662704964012836242218089323591221557483460007525288278014185118529535654552187238657922897674641449287190269223854696572500011343293282216383280866880935037809230949998693808971554606893365168731218448820030445817802147288589889085401114141769843312372379258622801060237694266234755768984373069391472757493866347658072372856806226330789799209226770439250596127213869733606381746368940470789151246960360766354798707152338393893953548610051681417243396794357174711387400517303162029545653048167128773319318189817170863382792287732567265280855373731743021202332616506655962293420060682812229696498494755831120629670836389417605057123694036082684565835796065653585958456397194344407008743056574508887847863849293265577574296649050373404626733236439975406444972626653221632437410346866833790380536624424873827919953873779256412607943680898870219637088836600937207963760011993925411287035586521566500697247457956413191577761377116586117495753935835481819308043316201465072968483838720863644567366850242881329945883228158340557708268406476658636338764005160753486675365103257316722860376578696179756955524342847132598336632698713997781120077093048361437837091268676697905914945617309670260950151681659634024680573588154953810341580351202729693374935507639409824270626044012101356919068595144408516025312370229655002194524445484095114333650376669806484566376835105263753463362082170509173916232986122164377622451882432882443866469176943348722757221322581537281121823770465182746940148423573077031054311083901947592912321457161963232186385527079721648493106826789308886724456309599364583758766063341581500060186210969567411052466903816454608589393695075899278271474608165270796678843687709250445371869164073958913097935196413759454160993766197154521814451517631354819547475838060510948819337389438181833195297714366972230626095910467946789708897455252063550122726865283195386281866678611454412155832896941722298919593156691403210177898672416673941405653024081534767926238156723971096675854560176857952999042397721464757079879267292419958074300741279733072519157281534802678769438273614960216398247262372586050728879355000179930719500431186987074928148483359152767338099178564972530712572677366651798303714207947309896653667952931070403117622301547048291266449781017993688846890643494936134075185039142025786853012866686191167271483969992969152186332261194558821608221419309318023301473836448843084617682901384479491663649023048630715694781174127092013180921539260588836421288589628117339119955602733831931014156111628619500157536180181819166307449260067275794124427099661000115144673884877156745286451480677783189737588765922344444865371904900684762778762650031343484970711828669577198309424114018055930765512923232565146380781476858890400232700524002607269736678234937689051603200942830797454131154348721010500679999608101350437809904008959573955629602070886356365326787494831614060481701821060220563961893965990210633397498400023811954727701551755899336667367033255040710054098016949224438130031822056144226886305613681982284380729945886277970716717111572416185804463033593898678543297826068838256528327212430010631623589762715144839068791116981525658324307817125727529048352818875326993887582109506164106453651214464172849867521162667858731755933482813812627379560003401897945153738146771885271812130042154648393123659306569064770517796996453973506693121278980464365368765433907246963006014597461721696878707026947753879416850668012028121348159030418086348574176857931530517401356741175868119604284968985044499396890068446707273395659164866440284504370501440416439704123677583183554843480833199100101628305387752329416771297000270623982113167304258994358474170041868589091351063628283108954516874374464050142865578957132462261800911579310338295051876801664269376221167283103337605281145924097011180759869160376208410405399360295193421152826900929452540722594567866158012629023014842015193428532896261811308536924124339707799691953866040450233237236719496571890458166126353757601222781805210645429720516434326645104483460681286459228681767126960033994487705052868791047660676095957350921990977883183931647692615331580548386976705355115078287260981106463829094231148001527863757363289561714468778656778692671749800350203280721341996815175212558533989913875632562814087572017896812983796450716014958666295157469661683750750628534805859138159522610802490230136983263549486737667723575261972996169053338216260955495090317708475055140690934163893039479680423815827273559450503094227363966853247973947728091960214127042042694619945120112089058688237075730116549107653234907079690175338149243893295897836230177613645634957482759583436630998497213002132195115895926157786244187998547382179276439599873264520326350374724931359994119986202791844412657046569781309301759847075725363154621944363924112328781845019573222767076617230607530835179767745844192140523683825682420833300648700338587960953117301517793307610787589074697748710586325636952956277324313800083774075119746786316540053779697015754185950851204419174693432463706650288644330427658141038161820055279493824640215941019882708217318955743412700359001805413983286501390084971767519310697020213313085005742393804142671722795693949871353134473437524035898286892646250824615180622798545799288379857595224553899906896692773257525322203295191978146064898102445754249654372360772833341268875704148457784679502458851503856510904374745843845053452188579531948734403814617574780149736973137029062829593179417942927345527870446854204522755791934309668953658454921954953180813386037555433850021466287229267054234514735307445949788875226971330094830120666617372203470217955678022487948202472781243930506148238313480475572905276676647499460654236599379042360970857501623232484596388894669968601762849749240727085372470135230220081040337313783011188928560171511562475442193932310975130837667400146757975676376499405215150104259041895821307529948004128225987253845518587659591385595309676525030141053957992362785058623553015305436693364858600702642787808354998436814563198766433694827950293892335280283584441294786202597336301991349975837851286925696977646326129904736488015266728002837711044809168421750065310782434054238891170398881599644499839457920321662908479030543604408055170966319636701265621142588355224653353466604678162280040050629204063810446825740006375452928656393889311922294272556494410433005690998152074869850043343005978081643765308515922227102122522910423193039997063551867699843923254807940236749114377414288477678015330081726015156948709899206652707534512581421007245248919286908155425693070148497460402768050394948025643432536935817383375366470758499128716379785873517847094607638586042506143503891616655314843686407852819987681133000533221468102706097762166691934313101108736593422641743814681203567270185915592918387528019700335169519422897229700609611592228887996146320836647140311825187582217291593510987268999269283038764872512851206292530957689728602359704389627640662433972443487814234622356691125519051181886161146142750999849433630968228933361704438859937462292635006254915418991436921560645578293336248017072010021151552127487701895303747720712540354284709492603469320145157737362588338527234028941522630051651271641564923133338418645166551634398822004039423594952371835876627052365142442214904962561657698085282580299745303985318054858216570453305625648417727742644684602252311077688968499286750491704474108208975678391355261750313639643836897826598501701529255986894019452414048623814928575385007734069914078242315800726807443889132123146611044996857685371643277438046658656205600021053219257703272128902317045724834700109148264114473168839990974186421286344953625155202700959853835619266377892187830615923639276301190431909510922777020639166586870598337752318086743766637992918469951019889395973241711020052880845997433457874760585479494857649074285854028870720822917800842057252024547102948100619616575392092296698608569892929998049533382153429846998826110917544551416896067961655822514722168901881899768423899386025661714172780691320937897280735363249474696691297219050036713722077984906187616380771248110791820569239413488644413413563401103309043737146038198292705939332093272683854096089070470702468085512547968286259301321689188390206864517608580319625319732904625583611661238068576051750768030022935806547060833093251881076562923796635244306559121901113075553363655669292960908421547885816832272051714112599047326853683470281034724748634164134125679756519603370382937047280325675128067368543665241108282383961394964437240030128763264618247411549181080010245661358694643993481086531056649449598542930068827273303271903176678399493132535859526347671048537845028560683542260465637362251148951322138810477433665068361171219338129781848169044396347551099457404674383888429776514675765914915973035968776163294254076348141676492346357401328342618790883968076877370725453799536880778819611550725587665187221863892293254045691320931429336818672891122876957294131895088934760794916110589044345162029189013368998394745561347190271671477591545917194834738605448288535791979746626123963594270154019967413465949052064634795789162539843355409093341700552959221072072998855907494135875676186242515584854995858414674447477080710537082808183235355148851359693931906829199598080609555614241187469647463371361930592721342871915064986527168680903332157649655170420668753590730131502091856513093438691631179455299657268560632470333545694414069459326721837165784455614686412619741638332817728065346744580315821073119065628123237139431021505312660257567153071828886026984400241355323073259172334885145201069518767407489427451088910018366668349524069508348609579800593285942578885732688846847348933227536962323460376987511629067669059560786526973970215250323879027994555279931348993251358847257603076027454582292815220585615573201023042920996315788245844373954799542017138940609512466970077284732905251701304243494185791568195852803502581897818548371097954810563311972480882905763654331358405728472835518667009733213813282368107568734428026437629642296560899372089841334771117809195413529417276213718319316579138726962873679546095417148401014239299203135476084752860107454746212197313850321283413092604607184814459006627201657549440509482223267401365881488701108040954236515809820964322149582629404235753449312688791145023098888209498508352986675099925491853205052249332200905553076626898009488866390174693801270625571789882633746114546611456110845386022419803850553174155418254898510932088322810640314973492121079815207332544831915471125744096806039963085939527512738623389936168932465748779358094271645416321822865898302765094753789747244731634671724439341963866687142978739093686239817678559761171324614644086031297873680225161245863654636318389020153622743265138134507226529615393027243794539931864942286415123387919850564861156914491962033253687227277757932541465640917555479282283283369727745251802551108668403584598184769275330405170921886828208134054144369863041674238703629300929001838942405033062981522905148864243449709811581265117322298137266221010248154477056675656262968457578069261939695405284795770332524199406465823067737944725369548589014834972439176867324985843641608621099856399645321994172942216848955877876224136092082845776227589203785584947752876556508990360639598727108919962861510229279779481667897591297789239284902932928531788935511449974570253283927112143380107710385352511317529731420475515748515582681960977342276376671014319659298169221784399376843900492873479579444300491653740459441359789503393420713567785132061101428972085850652774607287104249177686910575947890155366975154535418602955013677704969006899486355970180729884975326804119535629929997821912645771518552419764736201314176416009014199808686335277544153196855954109134166619466141414565441428627695238610305194902731228831912650151581606601458981038189492631612207292302171196783083873518513785956473283538377819061465683874344785269275750321565260645068718803258439918504375212518084292059633665597382757927602193490983209972974102423628869625066146729017822605799434058497128430611448441540288290568625012663528006702781282065026299285179481015500282259545416592183913108488114370993098868072187046580806150767137892374798985483479047072508580876800117901398783086159415729051167477035743055373838862862607065102341734652592433978772308620461268774326775133643333946094903538848019181510046609932437397820836210972068451493511369816115184698565917990561096653756382244222619975014284288371435418758683787616013690151361111152134441972617434799161791790951825236130675329502485144925862950455389629817577527201821346970246795345653096391954095052131055307784554883352806308198849987661585167945869539532682204735443917312422927872465894368892768414971940074193868697719321047999014322433643912995897058124495732097986695464653594514475095656280936667552044793245537317995065193804921959750896334793937345992375152045269636197665990237205823206773601821368216882444553567363245606452918889865608500448982648487273786609757607701648375345898654427981339769181672981798926871838446861951347526278050212873561999528971788541535714137968893718108321951127930837468307413196405399555765167896137875911818457259357489573735488098787804869602626261636733816028409981584053279675688715512991081394785208319582756828394987932743922844510950291525542712882060536399855216450479445002978788455649928849725504334647555308647392124586435688278061835830297367545266492321757482421200686574172715822231495596814102580292853648244153629077574476742649398987927872539656837728998477153370193338051795990560412656121491465996630018773564363773958832407871491079396182555154503636173640923598330349648783379950274803122952601087955232754704406357351475766448167241832305921236752050308845115542676783722817466895396404275666335448698761338409560772575877159538700434746590367063267207359578134704120634727291447495081762945787457098966800799028424385341832453317264554023444386571894110073685600155916900917220207875010015974386746957514423966628860826879775935084621456895114608413850487907195758328444397234134153233879098787729981735249088409982209347291246615526480539192897442442509546382335391881586232338024861735772084483561743712457489031575810001809307939361675967596030130968461440266911261278220355138883155943837739090716041452221828129846275643823177686154351741775933147100768905689788001714381162722207258808724732658337899865506612547580614170092980467457554005749736728992802548741047260526996914018890747049468423916499658174675219097866724661969943282993238683635222446110858311395301149886758853999539292224165608955397178995615007436240836448392358131985529800523392986092874667028617964506055324945667511811506026883455427658844274689964068988362832093713654167873974900490944380803861885894305016133842945804867604654750252590462973479809603130245231176128087885457797546398601783604970009317676653537283114738927906004405796549930840566505740450764745033223573679931679460859755778821433621962924158801592164161922371451765095876586924257954695087028974253150755874049145558653648637896706023920117214222131816668521042833616565116071740207345684139703575408204419778205312375711271747443987904620856780543962277354743661541305059125279356753922063571407113367447128671831758018636012096381538390662906971990109809663322228770424338834973049180568170865746873236936129880283208120238042616689052731390620518011069097476008085122531461586237900219847183306209976225433754975172320491191094597493856740386989177846783803671593723025886920363156710485444819188595880528658840600552430784236095774192866567889395070594793282399854767805238991939190691509017489165020587507628985379071089770776544374992615515334714060318468172214652926767175872655580891754066350155507331455347423501503838371369589690605954393653805049324455022214553546905902187210256552138206482835901889621119425769462114355325301653698841979308556038589691446133913024173901464479052412252667970891422384886958710915135878530934105956290776430114352532066960584999554826674953712576446239254065141815241452097287101772756904896614966419905735742267123732942008163726390870257377831675458064099995643512975990947723578169128695845017418575808148852442073586629505591996107619903355336567486947137459082193360587753602496287131080144450253772173640555847758240895932830536818282508145429049600280828271212225646597866752253105928817796350525169691987542863791244638342577967211700955800789969826062794021281266310906935375253364091706262506369482856985919426391301096572864369344386539120564187063123733099818294982132027830178839019191154678127572176755976312797204436573795705254322312439242329220265449583594224306726370667555443521638223995041958754130610427086456828133145196997340000877533530382884186251743918283935899032339915229608839342845009036418547992798585452121511987793270292127733896742758929974552081395690233473393495873516088213062695911694090439147898958648663752756961472606531191841673234823667326321457898063897222867037699187389232632429477829389808730450205278404054335610485032261302864933613843977469253725246761337232388435489934389168207789786643502654253666917785476692477834208060637374679986367720300321334970585363577971046077478566961309426009915476806509829043977775172775217785874299523075171424754468410159334790910442804723580135348833278934162073983100980844267371884222402235821545479928330519566865678565283654620382491296643190189232728206861742486822034222764369314682743856985763543114565191554321392658259654626686616037695037649164255386071767636966267566120857122007043666985829333379346619515572438866566205156393257791917257413986118615572825871308532110729028750089783996662486837631896226881889638166596080448665220673903892082246321914435251640048901805366026157964367392829113233229663656299819144683970307184139505776226891613938475734600505996825350424193900875252474459685904410533538778115725741710351776499742058105385479403839486610757646869503302123747362077516192930287551442806861680921662491915111655507691605936687354757140367383541812755176846195998255234104792118558652143703448955018535741469389371927825583218989586673750812085475282544178049151726946680434973003568079271299441081502618535522072405319950152921379160190760386632532966574777024451228667571616234718021631167430942710500314234471644022394334775953816814820588285905243517727993881303241522695598204578541925873384084181566131310426221945916553993089583045630764207582515569973807662113037337046979293732156698617034379781505886360155093135729077877426482121002971215394448178785423455574650206027338934066888390225129096720747879441125308938794256600949265499467663036379338168399451303857069232628408960907547325873881114435783180555403960653200256245342138074115144941869151454153627233609645753369842646412282680107389256173135474285492807637930243583955249158474546333537660534661502155776591941786426838338066641359218065713625444820990247687872055013974878549796189249785202187484243907692965775220757018448247720421254658275465994901579996205329927623713400887899887814755753558779207178486238805910513413167022657634712853522447550527909573611772672010496474662829010119955648989622479549733245644423441342802317240661737937260772407900938534940955970172887611061459894546162337635194149945984109502993411905661208775657007118602453223876718134514732437308979172399019166295427394052286069489712140162963895291650255961331928907773465879895724448085733173307838483333706932120463228022744951070108157027106410951376991213737480940853759639619393785652238471095073497686950198136423610090651699387125798472811177936454451191013943780589504307684871121964028532574585058216568614630046965033644997143995584583306059081767553054535968213265772532842701099741807758660575741815421560076528556785723053844525357196809245457335542276472788971409846423042387289620160128270709366375130581214350831864177095056439141432464910842421200401024582345969174764366968218596170459089017043276091618498752964518779156095141459665533315027277631341989594667934111079364177989549432355370125619491202614308197264036079189710983672414510470414271395698313945593292986476224621753692904692770346769837763620233747548599744049029815623447300375298445327766286984627840709328502679244692289324069208365978650801800131651782857494430495465434851512882612141451815219723154604578759320781710404903436141887697111052791117901285788545005700007831310669205576653500996635555642556468933886304896510259934578130638176415193790163034579275187724196914065348793886570352542985409149674092446739294136800449520987704146142675721572543381115810591246880233308014710664083142908473761158418916649991713182108657348844633805293431160856348659171720612061739907974547036643306727439937453422752223611174104367770428377416040974823771982411850821754590981957915295363695872994312663961964664831326597855012921442030235003526232392814566024461590004085829663083940459154031960123579785784527338902998038288235084633092944939957119424191778127443463845600198425891844253293995945767253858879791501120907214266894794510269996759303990082269373969071753065904055020679561226928305728089283090834594753025257075931754160821902655009678800711561373485663089799538619488198088056033795883826138677410091078857640331221952281156276370772467142370154994544881590114385089902414924646575424440834625070641926601138048328027330281596522636950737474611788420638701329945148195500109690846285360160058844390886030079128553345793343515734036232641370640896139252246790080839960008643329043581299046688268099615197854446736842346130239320855416911137519116805081169677582163322286529363692453190253920652164863400231850895172883514642933134964130268995920551151430780528341914571194104885535154179590629308136961581137158641223973370988407248193802384545964804806936726649644187276571402820978565967451622896906461340487802177895762162740165654149202305279445765285570866698805511535727053872767731132687499492207958106950416323994381688858113758903067300595895008579696317092033692073429080514025496293867078545600036939292770836821950794798805377663645764054048718986754101280411716150405470212175460686120414393567904222607027524744357071097439842802212752269671066271613514173303156584902209722097430740315837547487265427974676248919952561076012676555677396364899538697288197754074709184611436744791910761588762442229805730123215802822295078571008054461161952586005034780080198912356375458346039034021366658057680528674990073730347731336613925344194706402864043448518768488210663522148221823361348315732962402738054795197098630378545440291978303625058097903804840711229463301388718605194804670794452840976712750492638776863612393047671005835603088379204873834750078029081557928454584543232008918243732441984618825908805061090049478632524800606352759306331447658233561028753993606202642120923298730372790034041841270918780665215545509242124383137610716957596748639008302674944628210560959953344663179073587129244171831198108824615088316874833033158960622152104768197712445829551162634995263422205143781923389269953766806672177615190811702937922145712247003541684109920900277302072293841248374394562032203472672069863843041561688140569631996183479636702023438676076650478688731768514270644516238496711678666855193140921265750943193443218100746804799270032378252696214298701257318368962274763050178735475136016772323373628785887168481417720148668662564274766090517912501586213339523742109056119730927425216576809223175088420952756371973681575181494066429999784347358140553146414792770305164478704098523124947933903448634703183665790886183519956429488018947440274641777773110114826934442881995157473456298221889735760855137710333067625541686530409904712854063364190611952972304474139490554838466941560108346016142165940304184619406074280338728161308483669273308930097759848751334097702297691518066692974929808869609339944831302114266636986295087617730794855864578151190748017316379844301959264505433177958987628367917955391317501016217329674607780696201675108304608979283790525867277669163547850586634875177474756190843790093214615596643740404471151710769825847123862559791745319071215232801153901435775994086958065108314665842568033508966217743245015292363129747139854233395285874556556262420254017428662803448440220796021066257858133356500499559533308433618855448903564742814945205022112884102718446427025895530720789561388355616413146238108646245117637034025309618300056213226959094927269479752349689655804230855479792912879212845121741371816606473368079385205441402678810342288750547301521467959364498872934769664659626258426541082912403345481601687899795073148736871477660997176689718386417835335619771705653363136066472759609643127489643105396252913826589961003499147206905984454245582995187352036762855450925927888273847551464893209752051813486495517574075462146143327121609909700360653746273554515584646676102030362976363700427318139889998967719017941498306347511982010816275266109744775284028427176186155294700244744251959193486166396140814603144426556485864577125197316378841822943445660262880244310375076275029535132241628932600758230279501519812757975774959296097529834843884374569002800748147211780889747266041299660606756091769920506771654239967336195831838423182972859373615463497556728453167307184281168801316477811002602541699120060906265043449631717949905687528602170172645698556530894169001965851175513873619783321112097347116007438913382376689354401968871470934126999260556260939529261070762337042859927722115828944368976621510857503306558676664428309149313445425542596812437815850415123252782555062080946984941862058476712781265163332392693620892584497196532488795119695676189461572432515687375754106834044336184387970635297435645174246125482060536537321628977290869374719583166158523205229032712293144279705351018655649952839474353109696528609342871449228516269183785429963186472337547448635796939314451767348713724951588563685209825902227806699305722607507121821490858862238340695455299066380849851200247902924056418508863659116870164129475431979822117540255499710139941667979330193381137642837786532306030801899895782264606750200488408257342361334288757695347930926855125360386472559671044168103339569153120717075522419124654126925700530909931458063403144563103893203342763423252592792482986498360861812204204776843280619696616954366621762774778669199451992031860949401613134849341636920999541875564765124216161193521842474389610805761349008155651486165191062365552737406104583832687528362678900689178523276968349529908165678669650174451314440695970801024821528101273802131280377140255708714719624687593836796674923153102208208772344398872682767618561788887801478887522427063822575049755783859293979090764590816884989643009144903950940012199118246674270423155265442561461089027150622047520088557630525748576389830897214364049019124625530134807676711620111314784707127320159769155073158970886806059625718100192106758851328334315122590204785862103509382020708333055213725264409394462844747887349198471995623835312525570752452181718226941775877436380401084530730513192346010640169943097524300366863446317515476795940883190885168612423535804633130832410444265533605644037602395049926446130608948438454900334639444891733798335569284557492106032498801260318978273814516264485162691136787273088287645088897027592575405129747895838819247504545069281864674674380057642599084779739352914782447013980102181027626533706793684280248267314773376858394176595508888018587547387017378968844741900146217110027787422657007368827789079023606487808338611530915664306785217819465452584904373003498950674468043745470638045252642294805155080621072095383649115857753247994201392641291220809253980240870253426553047748231661678366366428898665824449679856860815680050936210035172709088671845882134808315335390252391083070138690265157518113397273202248912787322796021780810217024818723141660372108847487043398717398849278993063908438634847803301289305898539023440614003078334329226195722652573343359486356442217113706348175575280240484124261704935339534784188224664369555556988499851808965913865515965850867937123274920929694558734589221503771359038208909568104416484661285295272501928317384828162959536371344257509361988872317838013505366134666697433413723894932740488743995900372689067473905765193827174384063454861602462583517853925681460059156122189294539368420108504411828937360560851399289290196146716878549849516140318002409227909930303756233864944356888016359522300079263798964348615677240697510775109898172644883939330188274847437619471464895022908325760081262319437566273627961126058669191626584868162913751457139108425104818390758199507109843756923892336936602456540180928758832522269681667110332653268939798178648893456531724206234504958338670556993435977608961306047867917866528670749866023002048082934007996532892276779739158439135306185748466492726269121256965911111342032761349943676098319886655857220906186136837744345376751018583408530835880586569453921285784963451140527000733755522084865558064134981931325976822062682444051371684715128318769826795274563958874000272939112518258434464900576609256756228741523401025774673656886837134891226397971752662642427909109155516445658890484585613753731263262257653445747171271083881943454823527013605544905993406886638798165051631650380044338220062050260074978316104494958198863632982386270172458655475321352741380668547573628112367407276229961497290423323914782209429036198932599426375451311740199152628148693651102259813323929367487127588594420956274866088373507329174776108834887551781679402081878803618563865236602337196436716698204818065769881901947116686778639328873976775452991786757503382293770887039261544374504351221559302692501206190586063512521721409406796519509693649921696885779353395618827151291799288059222162005481756477735114461737867413144921244973183579931000153894885587952612265664863665056541213093598906918583980074624763882802615540179605532708467980787452825678509326956655202896054728188335170905301176512822603253330975212545718874927015682336373001296537448025438306068614143032248259512925055733038761011160095504303146018563248507962425173242541127150279831802746583698732144053009279160882476601009886518434553647848732537512827698691927228009615530874046889981948431839585457706010328600765798671527226817472335888633114019961552972427525517445538712381909051519191849666767320663922299469423636993937343214301007647543769560667095740947852375722151935199138980708591558898760914845063834123332720233572278114608383549031075536990028972154492422298326187507037405840443618745441216201324811661695601483748166019355785520286334631732364224297937057945587272985162800400908430073647648122054339795894465389775857966937051750875582168556856916937878317261327416470616984898424084924613203314350995305445745560075065645975945914762349103518722964684854932479824483315426017421977135722543450959353018097776391386113171421083109169409380345284166530251805664553850821989046163123639157300222280838871355094093518735750024127136225591258584418893347684993195223482829596624272429451743904517699331500858078018911907039702566848942977640667347898353960675091924779338978830333828725533486950338388669347732692783221415606286465771542024735518358848032830732958222791329112872214848647180494093482203951510838039262907704202496350565880021640007835259860252945818974875753666865985057284842132276913366772876123992129552755283796575512821581280299643803007752737266008215821465483358188749529261245741977296885917573010068941219227902979091025448506680429466289496019807262239424725402059023610333829629284861044635160495772693179417803593559989164095355416120822340495387496507125419354376666614031588424771513721173855693907999884134023240880132458579561896486660471030644025137440170645130341232410154294958826807582881217346374383324959436963593056250495773681837670883292931699677158295980523152330303403593413091850094383092671558216817247027162559877010016941755275883575983180646742477593822997483220517785012733524089825150663211448187086281763630798651290458528925151516363283728402749124605787162180708161754324541544499555983335474907917588521098655070835995366706573818997365941755273947641378547055727195540467798270463781890221059548632807394428388468505576141517314994756760944055886166695221708679094171420567823024539870370842785280318914163576111396158513055738267251200207555718875824156086033482904970017040198111565159340645748238802426195676342804825403458966348782597474192103737350689887526608824569404239356107291668068924940505962463823159968019778937128924838991782005567144695008555068820002421132955378622193502924619644628495589334627619251536759312725120388272183914108275314727964792133416969548854448595233152372968842850603988067176305789142377881189907597726660967971067636698404654757799818249555097695511277469419254510115063914202200943861744945205615848952682410443368651831388263948648738082622500839449415501758497665280267995342713320200401070474960008919547737153410887793645581536795304127292639120148212344261824130565504604200183602676285730504809623540558152062675163544120242467878599879792072248408906886504888307121551335731937142741769699236331087910717482487943987900869644226539332951172122428357720332380123437792100738500056533953370796577593115357201156609250285041699013621432025090611574202248637572967157834980793770417774677166506808920911212531362913380682299111838672369344583683412066420455115223692484878820609068141316023242587002201980260974358883123427981444310205992347277572470901495886534038012223051449655204733066137614281122029591241987329859859600031386104124504709443152913994393234308200989035110570523719483563901130945814922221928782647274937741939474744124660480185186312930546565900525482407524806042951637051481295316826843228284356414212224888003576603918583559914760733763329373561080971438654569806445528943582979860735649613781730079307083677679750184899706187509208628635381266323373122539034664032005601154872281684327171753750232521117408027642014332467740034625671810542706504577816785424841769580861673270986377223953209468103824484568639232920971036173688805721489502538853017448166279256714437364322060100632650077893905068455716071558698793713261191033469645689202936634230653583120552577389653337747038296751032994153310606339672331753702534715129435132091235124602807369279775281108895703758945680033898729809161244426105443725650564143398657506395259783366442977078230048819497576295473716341382766580014689748302055872618773962655766141741281255311415084217619224390112693333707367858466932451517160347999900244390446915557521325242825629442786194360758732286877526188158924466119931306219141536225028477056435708363882953688588850874094554105833961514606298004002160582746061503074518308234299771596108706975232550264319551776843240847831094771362979763962897039659643037856043126647586635519712206720959188161217388534897226426111287695672206172476815265482115957037489561323640836718989045693214500635975804230453633836874909523942448473395685593150358921778373910833632750298617982929314658771716694122625954464387806985291822516175488334125203829486274101744238215921812069661325944926763339272136129567087027586481547381240296553773636692342962738133960767078143924843971054268803219530266004010868422356345951850892286460085595282740233306846047110596781282814216262863094051369598246938044930399948651382213252477807286453132565966206037599308170447513192132842309807925148505439182270757364814860232381438060213954027922563846155414018964404551030309746812745096768233050923110893751813933098072534381668869669809571686344317916063224439114576395671136185361924336819049656959615458342915677958091598020465634131414423788269457326876879579262846122283893538757689629782834978198122998614265557521823050607116030642338719166567388422308821860077018339557822471702345308193866426407877343026360714396212621609745795956524417712258597399632337483372970894429270700948665648112185635292427804106726802004784078364910842872717003330544345062419776247530285187889570586689966478300898240719132455970628848209718495636625165595181101760040554004869748987775965099811283317842944361662116595146672940956148772723699040623504336177103902196816780939294688019471427002843397464637606047367331123338190177176215088053752458769302364594599457547042355116016707615625832031476296175238391490259448879716103786303571858138797336764932212898801338611598938287703068806459169254972203151280592029648369737324767582725126447341985294027235295508711436426873329812655631889467398516297841898265385651869105555381742869880935259125525283377827207998389496427655847190276457693736864219276858774880011134733977486507759273192132351926990986106360563990919604778345744620767132371022003699758692092848415265895928521125469885306106416190342655064629863438418270193964751381061140445267680986687027551942516093211303658895473070341123496581895083830709779876347628822430904563708266749329793796014980644787209748150388929801076837046299063249174893070882885426009738244760440154288110396675941912236650448752263200290850117211281990997948443853006277995196448259439492428163903896701521567329656639956017516503296308442083330119486712915117970591871537434811781603138422469446362456047699488252468661241089205926890436291003112936017928829342916324494080537370719913381864561940863768472981399268870399681188259987732312976626868263546562307799676840896757184675544959471706488774524997497803772076961050751021111284085101212310871726964340282280233593299418643565482606026530451796545032269322601439119158203424224199109369851562953478783024718032102638440629547935690324230586297906441133199929048534336735885585439045058658765363099775621349172664547227874762779034948438766509677443036043641812798183434303527653150112156997268038571787552332113071914987739498752762371040275172830710519802692316184105869513399142006173590189917148794738296624535197229521932950597781367815728864503892885252210802872747576148091114741620314466875082024166716095766343132341743420377147417033827378550309994068558655720671699498977776052279015228709016107258235858939055639794860136330574528905125727863200928824616023714538145866178157428073933746558927335676464961537516077069948379854854012459470786180806930960382500261835379484025203507660288365673630988936019510592448037328820061259702696767298250596969421237382540333427083822845694531259483004237656555361935444173173681907556242996432343982539206159638603509054887571170035476775585674032672063173273566586400544749503824624686617877100033453316817460865078733884376671637073937341011542994734292553350974279955367537959045289195005319595627794065917964318748690778225047029877739411577132995766404878705103019923552061680682315979078234921805218768505021783834806446484092810698180779545767487510210179372634735731010454042350176290444441248663622952180844964710653101464176532275984025813268515514926107381162356092256884787460212601223180944415269750987571644215298854845990621475650944052446641404061393982126690746846465058137164326446627156126025733097216282237765082715715556659652148893133141157019011148604100272712950307577721816294400009034198621702016078467723132874900978806391746714461794982750156670017869581451182340484633605062935040922535071063249115639997370769947380906949944227327703778954243091347369303120021897092411907594276373822854471862213502786884357837347768870711807218336095353316068040224339031096534919176446117940251262181550531405135069151667930518572730787950930878854118208139233928577523889901451030403234751866285249460719717016041658553537439282288645192658941707249088613164384197912117901488711701957441664609323849852230405051131922457171796592031880610648085425797842632591186026314942753521097236546068146119411512578590205553398548887843607954267394324727713460939140178137069808279074632726971178089216968565370498233404107173464841618642520674428381968942016897821815799484703418561846599565228103719478180749774037011335022953456952787763346066306133460008353362286157364148298965808695685015417842729935104152640097898275760507638582602363710067033309112373834831087113853595135372328421214279291898903797763211214767163018852865208975294417237951618751677598726001282049678576218908241993602066963001332281831558374371192429902306326533578681402287550618994942343177522008110963501605147599321693637026024397279641227937375678168782227171757741916123528131369775220614324128511594969179566571952255518245591169520693088763812273255219825954983848870282599800201733538083183869296035541664674943044848346881360399508667118120971259566684036410973637404596304335654017321034416495286596556888030607417659819723312022002504499884212671012293866537296917580622124907079330450415574477910985594660003541842384169446768829045355353689492315256228534991758173845406188130962533050512481050093985769794395221459571157425136534105393623566857144375834246705026163297067910100725874721779518954244976419766254728260458993206137196799695289476238804800546197551689629882877886924523986662299492754772517643883538022963247967186432129785127545961024870053026497040827067733234741391388729485897857415090740142708691163180816922462193644659005551525666539195326479812880771491774860487428859910461505343059568234419436036012517814991752936422117806798573119771672044776174150660095445436785747274970917470057772376608027692185174366910560908516515991735569141699105114489049540265237733112967499699269667090746793043066185022049261951666089130108152894029096247424293944919253477313936695208227226941115085624562008061743069377985016927044833220851561389380182413110791231237429051630923145199621858069776937758035213450540863850383342494019323897649921449861800799626783876038636813250550268135392263089905534646242297126258012033829248040827548673523418716769906109918066118640541199084167306514409920938480796139846562952346637595142230261673193184828872223749747136070416267489819831379429455471878076472079137033200307778050771447937029905960023761596503324453063662223973739662011360694912644636786066273910052901549371006276626467912801742020638522615849254525294081475366238092543067817639209886497767306026102306761257872427408277433533620437540495675855477753067136975318915948237956510219445879332590100350912267517952896073817405366993601379803834042384849082189387197176562011014773947667573754145828891804135618162079840166917344558927433135529706730995910208426795404907300855211380124841588293537788848081986120624340423690877244411609207789131019609243188556623107103927212423975702206996812411765635158184949950595437997017871375019912091780507672006608088952477949168864728299736130600077636598668351781481258130643237132422622093060887835790713157263642292808498292004639264952648422056261536989064440201222056538947762905885088268383026558445067848149647592054420322901826475250659243665358516924523448086768771542444605687609308527940635261828360513389467120911304494903024152241986783733533230830326762592122238721697654846671397347741633816493462070207667703552313704519214675359625067636454307180720754502520034136442411736733126755601139704292895715434123817782852580296292038089391932827353421634741504312333389221458712764329620685218446966515411400360914704445712504497851939493779527644605606652889255918100919632190153688393221806053814072438753899876150073118404939077161270376807395348214840692371291824766160119184441247020930001040846615659800675689461043356906307716137097700296827059440424645913593992936082633657243505102845582638985286603009631269507192289099869381346139820490488003582246266175911954948155616634511003478762298666519403916572098472882087325230789061473636014983758990027533595537921923193058252693219786198591562455420540847249195918180766420728819442426353392104586672841327336463819669448502810480046026293406913787638554308077145254140652578780041491283653126906381425491148773580086876636482284355901421089206362007874368530812375345589239850169480590226236776063634160196406595568049792826611722674500672006283103254416732470186349870471788177766044389879509359171248625768272727126021084704259114560887889894758631357969913416191711357190434571940323105566711548315590645577381602365435497057234560089631589803750927033421451749451315246393903093142692189142786716886119499749797852723573290434518228987873769226963886418620776479894789483937278848272586320557976215022777245201939852235531711264651139442904777505395527131434794825409548450897790948171954890049936985610882727150642808527948740307399028617754967935377506681607010356578769715053542370933356450761546716692193553953990431569907165094907993630904269822824645929810883017159001588497457079164698460686647341189092557122146338246057028327053617179908707872844825906068631778717017355802272191970590173587187536999736883291285071698021471208084613025259234111783120260553149359494342250719489903454397700630920433241364841288643785075952612677147885403225772274364445300547243107003271306140904600750654363327477499809135868876119366436194808305661122696431693244359974589659265014251863126287448855463407149577742291684041363269626830881611700491673459664461664361219575927769074437155824389083999622772026957797636167508733179738850968679203122536700911789454505789222906771934146567107603131468718781080488889746603016089496134825937819300457824237733160624357508151159139512769037454298072558049736986223851857911116125347933193499997246265696686723457479901482466852219834200453922938298527813683274102404943061896417802445957978824279882487750377785772948958067266066904793263584802849079137102567989675642473784296814235919376303472436149336705634969903230820478190728891229275944043474431613062648067430703327090280839529829782098596784957855655208100188505876035019022572535835222565977880240247338994780700912927177907382252605962895905992344635560727981689130973781403560264153654560740310859919500645284092250064819650449391714974367447418321261446715260235107345503927364616271001069760556419646370650483562911682666392802546840586201770344277616779113957371531214897625323227504031257022219569402320632001102156697698744760604499062026664084231974017712719903309897969904224835567757693788255498258028695062520070688666226505644445902804283812322856490598953683354112061586109851450770520059189774927464257282672776821669155549104069545220808304280431407071422274476140283350863254722914738071933089335882418694889805199825549350427904142160931194193427695818149690407138076242800052387720387695721945201629558944422131575257341451974657300692148861403608890198835048076260890408581740130989972811937145212712706712828224770819085023974412661106305688789565535065566408150755557440903028629471817217717731364467177937745745820513983355048921318387058707887129406659104524782383456730401432056634857194879449032630139917113313224187822949782742475464705151601704092208002552228769604141336897936188796619241029372140875630214577519730002453638003584397011181573944771006048507007146098534994203269226765571968225709242191032219141130097545083079117166309567899435710719026375872238139744396389970390927553889670750871106915744996890839339663201600322536538796810748484157412057020104838356372708178901841744077303292837477729708651449393387247519624573979547326479907082509276290100007935715456166955904570932388522874246814998122924285912256885882249752757950400923208775488047186385203560372189427068693618508045353093411439547905448106485752434087370006561030692656979251708554765709163475644581371739682792936259708160606487215032964614125337989345665034515943947939689733260771667425287223479000925956409641193153195204160970777135120152301734157022747788815642379487957571836149114737867461914687793482693810250139229359974807069276512693620481359717017436293806604208636471835449767760937761760185266670622512719675820496851665745816475339244555872022504112736977562865842053226989646356089326577474133205856446775530835097273653067304579048188808573424477490591019471001175653800930870045872513712669322845459762872029608315987897756865101990826547067981775671538914858256219512967839415966202470170490177923204379864228844371448303698448600021051187618228215843801030256602559615740078102852375271047329787158597931261709103321902567404758573672566523143391602118960619081969355338851793636389096466101876758834459709106575513206655067751098366714018590211368830819839905652502480980086313904886256891137984054861169212884663897640444844307660808335557499887140097799583239831764866286586892895982700673092821321898678127857026095733066093772013589697421632512991074397614173401730090256375242066655961115443858441337297557116499935940450065958769538417786575535895041098582337262525969398441591087670822327162317057841319883410022251431330176606941921410939287749090353397264444125984899632450059097219034923527770040083515402929090678662967975942175820428405243826779538101039976385677261853479996883826798394884509665742138695570169332454471706063676626092025852721467579606188198723825582272421876122144911469000438065389018952155136398988731157056701573660155057301254643807410142017933417289904508499024999101113843919439821623058081325971617117983921370529648625189215357098694870859010260620933444418152082149060414091993383796781829672603621636520272993981962868435470299356224034035964054011102357146483519975385113133150395336753080543012308988317346125475959501574222146713930124951370364030475883723405382340644675265207348757154717298810272854497624088918277928049558885188129143250434880478225107401171968281092595369848501838384158083025569860418129940214628905260549672251316937853000020782183107152435283261263407624260175059480182257105783725634467266972386401300225920670024663669873221819615113975577422860991295825179450647366695875284729627890911847711942810962555459490836741349659285757009822683714709299949627024502285070403047047201054863625538701498357674297825932974947428245230463357075105909921107387772261804283095333207085998843692999958384982700622090723357650383165008903939310344094803962882719197469463986727029938237118625950003813870796946562119047124875135062509968895114104461110790042598044955650461458178662357738354354401134916488137335983487872806904273543537588549617607426549957140450364734552399436984841090589588951852067322993363261172948583678895726030886868362958606133326854173399498043308422603092307033559841644744729666725069968533055535866396800531040784784247610797766236717941875073662447983792218299781656420053494680880646125023364652792049990463896153390000492127897927951186280356557855644649486947202443864919799651483174396645036615651846736744446755938429786247747011837923483886962751055704205226958064045984919699579827851565927981900003605098648475280191275011930289014463134233291234034502741476726189224659721143261261849397342620313797088118739341088256224121252910078234751737797290221198553200609437390896557751751946368618926428275695871264408764577414947835130999821902804246906054940112583046452508034974449895315832068487862593364456753762975802266709461525151621971345537582773334930929956470362677855080238313848093427166242306915983645181253386419088171450091530519154447227064143277960651393433875731155132562401772878249762231189697309747401504121727089658605549273627793215526248705794552324677134056804245735373468629082509272276816328486160340774694844262682846843041005970456669440167221640919364965142457901145910556899774291702249910354460776810404359748344864112716931558246067283653483717128361867289950978314835987928656272564546785183356695004274649664029323764702840785331761711214685981148906772629760888568522880756807827183172109546338709546736456062364787404065239822201083076377962017738202077191362806952324029205990617162808112789313888782735201020251889595303090750130892142132842897660361651394444788873135165213995505486679330106442566940016944989932036382424767910540586665752474584099342840708471296845703927610438028456530649500855290817146021457239562294208948943483532109290776490210785829079859931059188949544938688779175985114585785570958729309982001483383254223098676217096822193907639405527496446632786702852819492505912856818884359704577264374428098696498230337070551772983123235611725467362101397251245863867159575856708650832472839249438795736518116480049041037181504434116026867974328820660982389571031103080117380740902046935663281423499120125163950111646734973587986194036895607951958956296376517116476507626484237754198135953587762146526581440803508267597107565802496709228908343309155231845870776396710563995952755159090722724920599330551943207945619319947209735214248927480851951139140726385013955660220927673370200532850150724881401421682462907498788136207257692522699093014859692465248086738848213629642878330824783854693260417639885096303695002674324857717502969267205266040533398432839115494043773853086197446456027354050855934235154468130016425389751885929815172752066156066769706248933647592687713543514699908584576337570607357817986587921493274466549861684756556101495874212477920208140677180904173283303521919489087440936745081428123580060340779477558076945853692655290153616585952440678895281118205389903150216797197235749485135467935804534967305365032002748615558768895641367929893605664719136093034044588831829313937323606230282573060397159265536391760065235632034044163812326342052276112156597696130135165598369489927610588488462677657387257103687109105997982747547361794632879005021996277380405652221825375926132251776908335317755641561501780802401613625599238384904883790011324862927513070534241705129988286643604739753905646116456021763865865600339741487398473139577768031476780713453048449184711712763062684486147186539862749830315445942587202794673195806826419130187889476687161526551287054237142511852658216829901041826907914198213788256976512189976634158003092313640480775994473690749386576701371486382961271880927634306925081932430854530604691385586490917590961548498605740135499764978404913900969614361360451274105984802526583742081727129644291210524005335555461965582675617345644705330013604745689196873695826243698631351739941647274725403150831053996957246701838829958855718683856377766451431445725717206526451160668026301701085692109313955070095054520907076320974448585712684817761659297760808483358057464597916099272934521591387650953736784436076901419989703243153714310649837554196396069460001862143383316211959426559511592107671484677342966086056280836936480511403069975768183592509082523899880318483110882989352458894813589169779128274080238258590777681617140934701751071189773564668175386079449901185352833057162307574287793002930939782105001435586966708254182039176707154875075779168616417155835239789227298471088591405649907285898461893376523972582537264802737632019469468997122880877927015662500272741372113906582222321927339732403124986612442805366790265856637589297162275266694282060418417305485264517919923191753155706099022403324174935754874441491485723499300632072351815332115180028312017208254905130991322525226088981093848658048158894678000168510433708265152156965070674496283594342048206729923572676516236003917017415113976157704065396736601298553980163306053716520660498989050587530318905729296998140282345533875754955877998773824424999370277642884475749900849795403123662786851721176884971290156190751699728351412171976308339628133637638500789409444064481136346312267457671790382902369504302247021564317475657158809647973855542810508724684968324052022656521303775617164550378451834243518902368802069898700356768355036899538380406034202944943947463431110173360978113134005423759513821540049744150549834795298881261158884630564727812080184916244680721627219379744400366200509700561743273544466391381775397877298857914218282319273855706213296879548205494066544536429787905413524420165101693921865248017319029846878162852685529161892616722096677856868156812155840233047960990827641254762773508472826695882710148650401063003121401964272367177611358194757984505628162490435900755470075932865835297101063158460957852966180904303251583010929222941640055193472004813706294101330007272577919362410756238996241565829937606368365960015508551019626182765906611851333771636785346239668312893129031188938347597674373335774794696201608463914291040525272026134597688183281613160618274350746348742001795695066000470750990875794263526220329597217879190912965385902598015144140856702670045045722685934437816646077684432253894735108247551101774119571073359196957782768009284923185678561431531360671287218083474827421012093489002233458105719128256557692775025721757716479847205066288236282802691477784024651076749192418115725315941939331606372786034830030567062885451561498905057735507714749933401809441801678547341969487238817723992521097346776218234781596582489733909161900671652294597838728545833881434877150019260116978004973418770342016477388554716731785731984298276555855714210871972177073947448996829572270782293576289387724989416041458401979144633230375416494290628843645829156761960350283222817683939214425672790816466795158297193123036256174056402137723012137735184695215273466747620721538103056703180855886033614243411707560154600756376871671233410446883902759536707584175975560635500546073862656560693728922583075900294827967226067182856672162437662107706622534273751801513896898384641068143169984986321602316069379579441768876522388749351138156182375936342048012556887291002611753706935639418546772015200634323241792499201315431430385847024221370219045161057485389589703794316965941275712522524023488051844978286278606614558587504845332643799822067627877088398622838860139373437640561438246294549614331084878843700255682921211740942954638466671377951148876435609947540227667773451222175950556996648037086130183184092577634270732530925604435681170633000422345070355816320309517819013763359147297691128034696561025282150813248223838493098049192184243776120555003090395839320145968368390512724347630568339823678727444758028060875400228361206495914800599944038285565138286510229070873609659737009612940686852783903622289194227847470486781343789750491985267291719305693980368289159217645145554960389869490379589689671664051337443695592307050445052385086991482380469560270911474935392768098951507921593896466247038290589896735526353177925016727409625996736622703837209333021378685093915262208651383834216936640710023176950528491454755298786897273604097628688849829046581617016799177559151644663624292315740567978290915364595458272057825696260434526361582465813060393606232521598034901405008630319823739827130693769554093317056131232462605511887789796125056272073143908769662124205100057911561379329601677123173650316959986630006274947169428799401153168400966147726083378571028109294354261591121313242303600473701511334027104043057920490898373712837048545345063705864921172823711441473165667445404784553031005259734228429900729095796148452980613272887457100281662861262929205465218366199216762718047807220801145001785540168604797839565928462124570349998958728877925465050860640295261829282785227068532841153757084712741535968314945214020920103996816275836472881514939170330084432776706824793142244631263338966638896584111263954623608680968357671820488652464827911999176730855089484216878086509269650408439996406264419384578987430525688823988676294857640464029794816386291614527637698480524829869161599550114839883757374826079876129601478722873118640516484735756983574303444831965564192002312951165803902903677232898377068979603345876873215918099226069482175797483971114356422402014585050231500245760239716339286031703507420144813200952655160770135620124114955389615257841858998769894213670032786745245616640133754399375844932505393217946827530856000605320641038649976502787909971763643335787104144351685951372100285915767494857959710594042690152156738118162932914975615047274952247375026199265744001030412812548006281612372695539740748809933116500220995578454850292852637699821797165502042751807140596093089942494317185945319674743437405876371316370552973083853670253106385485158422630125182658693415095490167994118864685800838436822697195350875710192879424641659037524755257825035151836704898156555448989895821889087412121616408505526242477252152298946733464973909877202636835424051130437024705931784370808947661916350069789602442401445567643625875674890091242587796547294684131269309993163448999951652954735875313789139159799122013093039942309828358466969656501279125652196843482840985862590081592698259102936361291520827779107352183365260750141611864616897505058147037178022193675181420356507902571026063531139412077663051643107466290554246477224106602432504749839633865410162548734255736847603699231563970366287752290311382832975529210230314963951282806011348585245744641765877129256750912024123758825529257749959517419872753189319513335620630483476669469847028212340062389193614830358405301372287238616460718010221637767316134887524687459445308973565665061066155003554602924053714402270201119325418250009754053985281844266910911685326764757768934800808297133748844724058994089083215269688288834837841746994973823662846124854650177823510668350769836184682059656857161060043232654788315689637472483130660950361491434033287872810813354666419896029782203251159104649004082709040091946459144755603072341509690976657182117770640265927232540196993020013274389196340991751444349372944311308593998395700807679104767873122044675562596029966550182963407415452739906812217300938330842610195102599704212205738919753622751838358519373900873417756861055897406006109388289642734110774689524650894670508665033686439579301301030049140297293949338806755052024485877188271507376670727279771426268809622991186124105072083549112156535688188317149084474883148616171090632294311580235897226759836298232687059469165505691810067770555050798181437420033399271379207373733369484402819357492207279183447380577276344202909482529955539462860500481721646545364134986301585947765526367219958260329027211070989280700935296718898234476185778401170611490127356892337505279136803843740773599273189559902031758790457410376053279358681955940841106448904489028597190987783919677092460303606222669319880081061098737374033424946315517445634381757263381995792300633727498068166330559252684104574356921510173798775979691881943167505817101800702466892271073950479334456912841088573613393214650013728630537047904678282666063404527355716717333179908308765222458899576836172835443837061445512352132353452051107224169744355067112942239953744235766848617460141882981808088055984519982984816810153319752007138893751609005272310316815279189268228009922457068946340989941637655153510977792908443621086036136017452692854309683210390562068843154408644456278283365900309551991288265865172088044755741983383017914364818774242763213336049141875149258432373915737295842495183573096803314663799489635105958872733523559727171363398343233158569416218641786783392039676050282698739263690117658433801932885963336628983349683317208258607685399146648848925206320275038659187967998565932607104742658965709946502725614480983294138186252647824314391300856153961426397331146373893967579970788936064818577724317049892463998588105916255493839938838181566832061701494154770580545718740648461968123805598432795027054675605153963476076456654380697950064749187013438415134603273805539585541859274298686876447639059311853180734429380912090545872129040325192686379987442924077453733332546628874691322588715750080531430164455082863924216765188333796983847609003307372462881387288379533822088861152877385193020330335322541639184552675004619057753730662426964779298474617575189132645686545824070411523784062969946853673995897742212916202454751670394787875884514216480139266484137456431440703978908638344819673511110584305553984363321310974164938127228992333267382258227495402550296890828194676051398463720372569854135554945437757232715940369612422047696670802494422049643125715377477292970034780641014521370044650689560728226656032572853110719284183757202110770698342947810160187479278490930325887251214651654854862642969234745587829045047095868759873799969972146838369628967186625333242764476458483184617356460013036762867062518844080793701856452117719929851336493408438146544304148203273284682221475587998703015079515874759225598720635123628936089249240244704337125486895016431121560340786186290800005872387960122132309339161628746789414189150983519712858459709238669773497333327930921490072112887575793649696335754290330343529463469706833969230698194893427398842828041384915083542507066148254070819212659177750061868325294848075617829663031387900570235385379448139477551722509374864424129159902970605730373790256340300427925135469060170194536390430060991104002992090444524232757331438180650529930914186621654401753115803901021290738135888786204293855734786292187154308915870959501477068687098426608317525798793984266259050204527137731429572266926301932197095870591444201090480416758602413603615463740889662453357246789958670853933896233605197256656309088655106715083054650896180283750298287642526183063982506694583186938377821278661407722984254025853373411340912117959454057983983090963760756846345842767958260273560528492034560150018778204710033249174677660320627459482446556946055989600415070335497625496376349047816956761716710628376396320256790199691882136657372146742349195020162874264105026615528959749926633560773596637810891551587208585046076032710436817565179317071577471888586649740301641320487543743791722771608499343135691196518152190664079415862897444739949730949145564962923476110430535053757667728941212381998673714344926245249918891527036965002486739752634523757107972725617710531455584896623204893444670797928599387372016807504091820514713462922127672894398017902373638132331691492834503178808856214389281491296233037289517731008218071401149133888307627847903164944146120805572902044650016286841811977827013309710345895941858802619414671768472131459080614949010286021568222737695008170965180960362595854223160161004292929479573559283210987539734111760161514392130935321688558169425735271263412814497806501130899909760677404565613356809819189940114572004421749749732796720285538684325403294038580405972559477551692613199613893677616297209615636647059826139594369444687175754580622762315565489923534350587946056839884747189381279793147809305130779603117213213966480114231319140194556227684217546136646109836432164593338620056786005493617693014935608886258077416405279301405657076009503529455388899941073383405150394996211460710951548005368218847693430141599642947674934269961722706742607451450218147429263749636938948789685021540195719659367423071054063027059886941844753625261656918827238794176557371290518936064897801383367608608932294813689746985419056830529551354368804114466431858348616945222119350391237459572283634840054103642203293189979696623737782505581040960990370593221702480104541245647529515067706378512127670273760228053159254586831547409207969346963943678129307218142125553753616777443179108818727197199608022236610647257723440070839270902074799909835801288412569524233739136208449837880944796677691054306245700850555995001045016412681929551312632353495806219920958081525023496173312884761569714171731896345426628952992508949302911826506298984101569662254727238285216360235439415277356085044564954011314292767525809324123252413787590352055496255777943235155124684682196643721620953052787460667669536955272466849908522372049060972034836908202887542086482428858817067901516031277199988059078845748999320441531877203113334414858701324698402171759043621604681971074802370481251571441858948965213425639426602301829501903628744967469376364514290457716455830702677814190541668517752373704885077108735512439840824141821285480694822219833350599615846875125787823448004486610140666982283412067012516620851154342800496981472772624921049412142107390024539161789834249856759009523164057556628514944488018759682491674442415755556330664582235511957944950244115934130909796161402483573282521145242376105532352042387435802356253555515814093146773858895384542871515874051350096210039581015390837713644499081747418108937270339814399126917293690646141777254921365306102073496422867491654407071908951978093091643050216206895349013451861846265497721705854671387941094290479257795816061775961039104276892753223780316501904625462921813070193204768289375739708715961980300406601987807962274514533225142331855898017695375785137243552638397421278199047444076278693428015416675734309322787227153976288167975439568345474133884427210589016999543223411749942385751971840381391738166050574505987040745783932824011176608205181839150107637328499890931567294072805025047992744999619183247762028377742298368597662389783061338992212930482320012016221054942231468245721645876847334381305169362051365515608277836136071081504078995133507159491657416944385640816049574744035249430031478481206300988899536024723711347423389118939490105052493649142761999140159538420359272738987551553256070376482415879789421788123846037796947323875291849997808319267868695683674405087183742544908407682879942544143762688501599518160018680354615429144079105578548871498079622032444424926824007729693242874192494793281846858563332145408473052709663897792935166049984758265582219982798701632842636866518070853406076172899984024832970436440168085014826778466122334489910420914090792438197412719759934650911464504409423313871313732601959822216183266033607990953753828397928783329670688610296683886419926391595504599785164087199999784156738390906763658591658121040299180244901504684951785288536881868801181418452208013003435310507118487670421190470417934187254579371451887756355962087334737436043255810935968777873101503074996383662743063719028489940316699785704256916571424277578084292133938310632788135151122925266481589637513830350752868550542310254785996670606509340538815201692275633060665614305048644528658436486808014747591763401351736207158550888487050402515065209674171144072524208921169703898239991699027478248479716856192346370719577856376023921594046248070593312365465996373229020181780262551621095995957212655960948086663246553429743656388467191552548609922325922764031219562822674628771082906032633080660522465500248872800838385929671253688674322029289382084197144133682322217740229917392916356369322989206456471314028482347890812953423483015109986602367737431900907356896967268222338066971148149113295798722533751432461487186638675362686459603254581273599136305962161641759421185057243588146295891459078299130960698067466602361183854075825395050685283995973098559268584306787636341012404976280522799253605105573095216213288500329535819244021510771843930436319582725060130201216232314695032888719350848754858837772523490354718680141470036437674321152545223150298230956554951431469818252395555807606330252785551608387145069534992759253309536586729898067375254213768510071007891852537309188637240163890195189425063601164136968876127727439091636476892408200837118473564852740388653483424559398497231250761711383117655241311287864666640144523037568190949161194357553002765015737531365610418219042739453513890578181187488845855907428960730997715766460136404661186360329943377889927337751927484855244508313992779623504935904163601916043373178968147385008743814949882137566470290591915230987816773218530905326461611971517271149158129038404190872707471939223715331060247100223275437005831321383362939069279293323746975863931522780907367390223873026601928496471736717345537432537225441948970800140422900113173162115370371642948553175726769229124407966374949504142148757106816077805171013221866566755612979290304915835411009089427626476870024939377573096412055281672194760433958957102178016648680949563437299800214589312079623972323197560997455796483130008356846678135592535820676996686296959262123151398485773262381567574555559614797911117248112500387254313909642721920924190505161188462700589061665356967612369747778782046458865074255999127120289423697123442845081013946457073410386080039137631937541627379224296182002858113891656347242260655248352767037228720679085022052868002560658699763694388780961862944057579358229410640061222712346794376752445745826519280582836986867762925430840277341630116144249800104883882335221616471429601139544284461224512202555989389836724032137426969965832313039567326201796435030202671931199200244640586245294714900363637155209861730453442584375326018821912018502152891103985813671105177689740510479265751527897325657267373527562617225369509279869564361157886813317179647828845443705633024304473227234695221335843854828077624015860986248607699978468149274820285484130991667996055989725813586722085980013159044384911342265492631624602577082039997419685358711991672123258387207941447878290970434883864016087014001356868517666382143854378899192186837600217900533605724810121796132046849952250585225920827932506237240576005574776347736407133382194971980132212535115036857629252999492303406256969451275080358175602927146375043856124281629488668307722837918242571715639174512251910631079555756297536824875567807015982647624532477687027276493920473756508977900380834404914134841707753221154195659988924422744442551498411011588538507637998453629210812780666836193784607532432341082930331481518296277506287142225055216405050854011155955486096633448621962464911851104738977111755518837812400473034541640299702450366793576576799699575500379735082791322349143910778626395903413188623227226022545033252524058727538731678033723597592745782330499476713036158480849046698218156148178152566268069339929311999949948580172299670664361933361318414991567123455379259111131254872429270387644235195531440985203564479905901337280935246118790942347477196110749011789438857554192054400824146631885624874607404988655504730414841081711818184012451114868197993859463765862515158586792547318656401325947746479870670619600487693572069010645268507661413368958028485579316839482819034953854588148449654013544988160115701845186925353238043832236469180912237711921290109526972545780535294958750790782281189715031568048606836207709244831873293479592237498605341527752677480422063750222901240153889870160357830315851321841396075535533807382828735645243890593362815117884243406698950499027085904572407860550896302049667757208068376918271813860042630482145890184338977343675220466685117502959497763328786448936361220087543545452244873332799592513984543817725154494037444065147698953668231219032301825050659571761552533883861786858760622215112826319419473997768613593438551036290194945738644894787806045117597149303043674567993620222625561000424798099309745177256000672404979515817861339333268040749555054995736936843235557094379910997336403829320567645260126641819976358684598264439923193509457816122129764646790684367865856762932983606129966802283533673433428479406321218076620984061596132499313657363303311409305018116102170520072683689037557810503371250484921170138308250992991959813290690419141030934106343210591659700683431628077252975405519107148506185196733782115416577131289425553696487113507495665688618268151829876351385618256369873626456699061546277915023459214361492290139878913720992209110364891512092079616505427882861222608660337593535088960764494377991645010279755301600467284495336460718705166822675416009896925163869513703270198970092218802357820566088178013023895951383208672779567767505610100978861492886649884232986371208828860547390242146994203225871450804908520307040763776064311362819167435758971874373482819941188490703789192307973367132623328712556708189487861654820299688392259882962866451903161342510921928429288314594102993729648516705328346407552885442923729203841218269512147639906537089003511887277907855232905506710629371902997733067904623371742910511551929627635193617418693974985859628739704809938106089256624612191923767402729620085669674738739753497184536379714002848114122621720978083742007836904442954983824120915957410295855122409860173569160713349631063720020029940526737364116767979198304594566653263114354543707668142971655301410025213734423370089703673513296921562201943414480968888025363402485907330175113699741916476652712141987668423935225486476830067566856567247262864881271417400953662273086614835545169482363180058997266445829800606097657401276702032349180324787319159264253162658759562301193382424033121401593035292308838395379173262463780622843458854444593357396520281311343474961936209844926449673160295690186863352853931765073725143998594542139068851661100560909144385648199941794048491030864551273867289576010668366270173727531962589311298420673732392654292845693718642898103343274245855086725409364059071500295674046128145035923359278355673798194112385637545558837262257801044891074053904639799457374535191893309737094614514241999759949537021824349931760741549239107103775899529862058590236684629051320606424700742213094227996515846610093853549588395516545111863861008054027259831516455028277073081231509190150324151091525082443237306139931502051938476064824648221448239377219160063395574006806550278608248049732842307088299941416881308891849846926839474376004075456231922821310946097728324985623722227038443889517946623146974724686864604608426568602004524088762162910810244842731721178598579931204768245096724845574112390337083736550126939898973889140989830566418275444591080201601294942608849128481007722619707783385344498962106979392269258904730725146414474620871913283123436538512340121594695706267004721245554633580697788914156785636531160753991609673287960458336216719283264931352349256157383233467006131777705610441273585724735885199915917664294883722703308511815643683683837777934445639863746955749744225712021591006266535270911254613062734284457200982790407326076712695519369469809028241535521143519622265131609619498616587215101259967988302847320441003768855306524477634814483790433694253816832329553357876804175304039617964170088576669726595849916494312198586118229750116393906884792996154821655885510493670284481332912588878537072434283853603476061329587006126701081087045576794243247325715238927031044053687828985603531891193457116228898001023952789447385890062733281560334553384475280939290995435797332599982828431563828025169468971540248843225299849935959586930430457593512090813432610805053247702912042533120916744437714061615632588148989100435013213610218793961986540239564077028705575795146962966617519321716706155722145525414660824988654618130957381058225087239167488206058819120343113213438665469832666013412958364270969890519744945891512128223173875412270161602534860817488753700300324902117234847406680061700345703588955266823022883220676037013245087134811805074506872318596054323468247418231617157592981950247297722983564600110131918756501417031526433461345451716176637060478607155635393611512640722605466487704686663013842994845224636294062040110908850588326766323218176135756841771841693412428184743424868241483769444335195530849472717317817431729952042099829327176768026230324870252200908094751960398855331221634364377169849941667709169185979338151799860192445731051814689555509236895179563091401769438933400521844640200878392681279492459996186480293871046567728503729214910193220865579275501144873346684049677107939475229054844478170211161697890698916363625431153707463001123927439635471329203222057715031681706719791008179696433590844518611184285120859473244060838829548714279213728008798901385727136653699150699600115627081742174230426668276538030276379034541647729365225923277078876291172964849338839964257041729310450317355330004538914185778734685246712651145889561931516593859048588558157630290566038187615583276113393901356975726390349364773893785964980635168908352147150158026488089382030506421885763794022256082224581189226695979233490034274335312281870687632554605531608163972446531612005770250330210525548074877176305864079773915314132002538999208318090610880053485765615318908026591870435724710699159417952307639165358690913441688765830989677834736094316551193381539659294788337604748145844390144378995411438734054777621235601636459364984822066405958348376468825847334284236455891773381662522613191822437582518352867020601529471526190300366393807340546548457004512148906351341620283381256488953031339568868859437685990254111508332679986479665504793227924321133064200397725845987485048250104207866581336389089419830368386606766354804476035094802504023092589283540048987054821241812675909996285369469411361986010566081022838527204714144791172519833987665135344478387373143706018996879490651929364758536534161858085098489453854790111037232680004987397965587087673218937505635098583116919603017845946025714876702989729922126410110328142081961541223036912655378406825845146419795633201378801733183394424884093086758254026343182804842650561578190119243136335207083355934659555158407484419327057448063851421887061876282406939810200734964839434934979160390810807670523949909062281144819461358830708434217641281571315411487136348256041685437327428762292083355815458483152221357904065280586715826541090107437074763999583716590762081219706214613014338863726164352942520168748850364389096822062590191923988256786056370205246495468909497035465968165169456185425197511739666269852295658032996143570851736713625177523419662528928320934233423053510723722248518734413310974258392253577505781621044805280200693180194600209833279043439121974393010066266970164951334394177400431000314115768068670015617837226870268050770192098222363909085232919518432536920269884312330695103091969889333986491295681229194945130229635057550308410842691694596944035860138832260746059929304920929081654879188091049179321215554294033939294008804330102804224827964116055889075943169482739929052628917673513653201831198686014570128590374378918097901611417979661576355431143554248762785857252537584367901326708611673246467333786349601124815556793576765843414240549975245038284041477095289433567988922177196990825298291481051197321451459974682699442271372402725753359754673563672930759285414605092171558109591352713074634484922146513085590034390871980240901148626189129238456156335673002416243979137120817610147490961363593256517566185667672353613345978516283833656660155956155744284810413011954409501885650095903861518218677428014061369820653765984628945482030345119165025160540024818870284247927474886894582289552367432953459102694996995407525662489534665517960577887594583179515540848116089543921486227953136975377226385464946433627148576748486347390764553230890205651394268257658937469727067508218203617821228508983721267248987510715049372167297050168292674988662625471904209192815690893489588120608356431694074865897021557664428216633786359863758945045873896535130374634773510404767019779359142844036182653659573142237378584019406521056700045272568084539639677807292523982182320967497519756160913340120475777362885595091600806421617687477962310598823771597974057396701208365759067384003898435889084998151743796295251580900104539771343420769002763036583419852435997873569522109768790410922645155366614186890016916409609934362663416228486959765973132238340692781336030647471516076164540448010727287622953861623950179383879515027862055876665173646145569331540328798680460730504567978227077043495254896884915365790197800322815826757305855911700593959738766833784080239338234369894364032596937599370116087492463984553487438927900625033900754572409111409146790415898517928158266607253538401614022714941397669431512530081053769807163824501442197601191518158676026201576005098822841082980324848925736125531704955019862840838118519772705600193699777368718112762302055648340135061010193688799180745015266341531020600332957754550113299267131632949979681746545825671564054836109977749226583172449785445289268083894463199712486060377573928017835827220613391929619170232407095344399387166254823526882111262873422788020395882892916157482447623840600383475029946182379271315274186706989173045573217251931382720445498331318162381436997950417813522898596520657499691184227213345129306967656909571733090512933325897140259721311092113963566106059126332264925607197765338360985841373724843116741868154720419259064920948790376735743558912153085288057883567489085679266584177913487434205149552248646215854025079241495534500878656463163413455509281772938232793596765081883166555705344763344184603811846028688339945487132795694917766165357544507971298591925916623837764604985156013372316994430124422456194313619620468067794717244200439117467067850192959115320336228360849243396784405761120240912212725491695342582915252477783499751784836998363766519327415942196285697951639498799104906523583271758115707392842168434012773712054243382092721141226591324709893903762200264077572246691319484868172327470280189087675842431465132583415917687593625016902991091376976384163039694186745514348646902171293211999044227111519034280867386395219274635062351640310364203543869771621260453231274147759761674962878268070028430280983058707856346830430236970533186952207893120746249013260279092118012119775113790701060978942952096422366159806852513871605152936068326192296284995386684528486745446626009832917073424596448023484384783980557332839833493792476152813591843254544885394430924479897154449744773148780194651308631279446183735571837658231644224536876778711135025116517609008517932093281112130814997374125863563490344624401434593036628065284670382153460457920191648114516557522620958411684397909163041030946568028355868709430880612030890091339347543656582475214619617758610279941604325408426837472378342781825993597775661625181584682293770189173695402730844492342019556988981141837223127749708955730394155615018606294670652558700629775198839216896494170276426147337718303838146900294172101170484604228602574721351965434588748298594015922806725553940951546905257473724689427834518051905042447126625300546588603852683582176748238041838459647568973746604465304738793669768291670454335189198958074997241342869135063679216302679342108386561032395580552631539818363850238691730457772338479112459586948838501601509892256008727822777622190856048346334318629029455612105681289440088337065969052307968700584380777601841053530658169289315713361940547900989308848648009402257897760011997333406256262938844226806544681953004986556976477748361912391005576343395015623734779522651045716343552456085297481975036528220684987803556655029999467727777977171767531641839961603229299266312653678709467184016854276750931461141173839054376237313059297276428793966723621040435339936434218633450032492995668894581572038765492870240237208520440554363747804286029210812767428836102183703085104377709021180314587129371075234317064074743986770572381406517806163956318662582790335108341622282760614309269211168543436575944021050329377674089092296618377601108981746724559248300492630581435289528284719463607137514100662645303575009571837007509938559478101048990916827741090780448565888576254733126486276876938594349527538138981298331107254799906937908257374793718824202558205041886187832676831130414512480218645667071893179035403927359501663132318641389076111593710528262607023870075240047471346830867942591919261718606904024051645478055227650061123143254284299258658169125004618436122706222107218064920465012651259933940442210323123460598323895117372033456896435326561819253498586155215335778126536134610483336275079572494643624531351936835253565517688307277415182908198400220922082624338229840724617690860003213116829533049164307352448719557598423372500299413825308784444138741811788252220878651706536008308729986614002925207091896668536145938295274274151772371402718287824291428866850741508183755304529908657899563605450589062490171874716311989972233085302029457208988367239284130731035457827132492844199313015436368261818869187115380094912342184660961937790974055045689417342748615094392356111676242739402581768164099859218100574460377505501891324774642050554201296561244090068610885282894535360377107378968668776376209858249308971853081887425648477265868890395240418531130669312257626929020000758267339753866159851802667184772015984006084998645532923029756100778256711672136011372373372294440759608682121129962845013099837124086835065971885150642560574639141805530665314213588644477650036886832141888017498795107452927404424200455694244649607470679569737070244047961889903968920460828606276468609320959374258260009754239283676495216912899184060216094499386734545141263456233790624536576866990176975312594822731577538979613540446268295020349429287956467039934418897975714213297732545148583591952934034131061925936206166847175846948250344788345364353808012441148500486745316725875959316207487688578777930403924270623619797296585143005269921541057651371249407388351047770109405441740113609700350779636009353236147473680719459795076312942748645573635316544716668136825863306163452904687090398031682702981766397007038156316050597925914240311004320177695688910652325422021208268407438584398595821941476441842208443948050536039579593088041355445770593451273814121298476207165539940471106109440518891544497988878066884056586394640083307325864955088879194819629598190457261065973819699536306432686382588949444072678742114212362931817114501533463064612328974709734646529147960040060877928303396448342861036514257499698574977538317029494381728064164980688188045951182310581065066040214996662910622587084142321649574414513699629403896466398885503136813269931260892322149278851536184031595820754876513968255855164744073273593086338834419042130854614010367445178366051809272081163081312939648351094191252576636329490022000010021379352738438788213225168750482905708296682217872229568098742173005537211809505847120485130175840088954564379203743758536469145502874524240482690932135400539068720076206690186616457632398717280833078642368761271044782923176430586903644893503872015860954515068287587748291773044185985787083460618298117595580382989135276468876193318070202878831022369344775629257527250706706852176351829005723515026294042265340417388653015680874353140945548630041637174869849244321577301619087089372917067271610491511722820784390292678049259054919405778033005602231784753213166142312033263160441100717265857555857128547789783679760580287038658458069451144755930101953853211426306464421467186387094931075308726835303207837879461631610660577487043915688980669779629884698992735292688773060838683207077415160383398242823232145527482347063877799971922055524672378618621574545943301040396720210384959729188897046621249983677236904223897221283100984917182714721329274298529850337721739201867368082035809150651719485533000190421630141736972243236656598168614327855543229609222873153215774302291042712289897889904983442935061150792435702751000735136578445993536761154050586342651092429686481064174353270770294933379411760282414906786146238353201853355018829733556558306495307960959694371908065002185188716866955577210169892084885343856755574920798886075672888161986794693510135215969438734431841171654679684813683186390370846233916753645811732050557583934807029958157955288807572975319678589710346417524502463873341568701399320948538032487754535050441881332019560640632340470978861478106168847801076289218317521872673221252038085276610827087051185702918521660859881238978451808990708652776319847619021205659312381050057352551177449580042073458477081391486605127337297990353906814168470267505332946537883284125875651328440724311491988459410391639348567527913514530249463915766784810820591824463520912567052172645998903855351898723376209639484297335263513667642182957281604646127515310863524760406967587914025505616210405595423099279651348541496251858227268655902294469515328104427518938931702894732023348752813256575011473066399426075610802824240679041190690762756664463354203579765477571831788142837613815339586621099937452782747074970688278382889160418295856135761143704755758692180873571782647404148575790636901183562429124239998454467300527807054298775132451465444440393313404415337205583624537520158510192401618334201894662570340686800832106344248876231677167554799427434738311524648587792707591915375667070879931579089566220256082488229326829003522092002109308583506259506982351278986448220800166732443980737729832832403246644193851838870994330391530249152896017295071801416818543631882755744344484461996045760668679924891283319162608936444291765351506009335404598317609448579631992115413434698578328505287867559624864957744444838833440689997732998562410734695970556026890901687469978890701576609045360699552320542691670659168701255112984681547972667976017328077455588864421286108952332654531851906071375011029675187079071500940588354188667200042222406456288097066245321564941334750029341443574534679520492147229669776277397107679268245516514857168678229484594465757205088478847806081408595202143650550128007958570528341636848451155715868705639295596748953006234107113559984087264641998743282219931917447741067824661100670503078887429000348637098249796094958286100818864538360024433413445092705910623885082314908914680978946264855164619989009151814301983032687871876663533287696334851298220227503290826702918577665793832487759318322930069557555513959769924005461730763731077668063202436862878688287559221129475106791381043418109672702218691111727732109963492380349681566009977103646851541604147226903986331754556123221529544391383759039468996671179382886771159814324665836248251483373688518338218084734448358518420205192402091720326435913934845983407111090872937112827240078791898879429241666318348652302143776001210630981282449519371893999382775282258245924822937322237479938456945030071694337374840790665556327832327402932922739632444408128039641970438824077221511767171965013044781743548168647709543022915261324771268975656212994591742036854575474773438436420667995147159126607646716900303456905744207661845572675970746190398247202845062769044775166211225919827644693527409529554684584683402475685651003440851584752069737614325278715219651839706315101932495882201686730484918181359979977310431297775070909027231784395309287442107923165011874122806240803640162681132784965819960061540316194441675066707813589626203380864543900033607330502196586903081113771339046833946291331265770965264245157591979997333524836450105963275606145097054255249902971742999675459836952105253121199886795622964969635317807920602342044782809024982810506008416961183490345792068309821256887673981049838571153810195001133356248203769261157098790082964870867092803189047752284459493714554287301071424559936890646907736387437512924077134806406396375897713906436391238332819496906517643316311757891091981596750255036975521847527842954451418556379068025181640478728858897471958412550992699797211699108715271624217355155622200439802100952056743551661700712721083882785405649858568782849682133225640434914170852279447135818516363914940536616546049718984385979927432748513080764697213260831808266552691397368855126326174935267417363614322892286411573783260123278336295290256721525234465073800074156799153756408122942621925129036036183127326176375556365601929155295650968506003424977156891653892471759820676917579112027785506263418311655186315397127314529411304378776796213630616363298535276752491090376698921675553208578933743752069656883523636623152101715463211927762832682179123244865143860211657348663149947056212751892453038469725736443525005176732189789029866074488692938921583579220690456638126318403982713089566448398722068477740284432801694815792596794718112477560484949241516186738377642601175206708490810841825632643176728338521236132137477822707404696898276082872919253278461910638818213879449064080324525479645275128175663186020073195772289473997876201649973273491987896502880026531256285517480555426796758716845699673742747242024890263502042232572249403689318360846499049060424854948796619030377620795438372879137422852158993204215020646911572944628128101739088023281035623179155755572568257805519900600124373524428948042789995717953986156926224461339072432258846719071133580960802503383656017405943125583928329369431747404567006773635336403113608540711987498493982464605858940026978255017502706717144341940924190263455318518254669282547126281329817339893715668089229573955285204801335160860720095401628036900062763076592275297502739530861332897410260820509432338914377624690622945832122193013601447876630656248638619269890663041780607152680996769237944991692268482899376051679355122550977800298692651752650853533636461953487329599645499624656376357448969888740910200705135698573058741253462683974848626035590081985310551720319802217488344098002863963725069493639417319107261590967144306796200394555690413068061144006158037506035749087002394277443192217958814067670345665457004316849611278404344505545957546560486268227296501469154229507287557439207008096095150803286546936806312577506033666875514685686165796001781987676153222255565920380649312327774606282019606558658753268463961348072505821555351769469160977423059678498823753584317974462421828801349802483107269577542212033131714481560752408483411936329623566428570368816662654050517030780362928009861933670621110700082454503812386632579227294851008127667958120929710436864565540222500602885421310779986607636241703904246277006581648764011253090335601965161666658934610448521223312217874939657770180714563213839388495746545822855419580742815450248138582412526627846585507477630377440095433809110311178511451279330855460268339472379702178577801862300513671612489317610768663441689762077447716689437131954515352802919984564283405357230358815193868570888026671308133720708217782009592141741326097368940093633027222994796887396470676475545225481289857777253164072963575204276569439200431538746347460433363699847153775953146696302134907363141700341969173983573153505404272635707904914409752066951176458487699629865263535380581352879603926529097362039797575594106027102119588001671674552009158625047136977703053848717086145792796690936103287103890381545216162637587784604354818208138564237901000846500309224124238897206314119793305762729312855505227680622584913630103187017689482202437099147290196564040849793331631844694214095922996670208241914545227285088428534353594406659473875177344207927374245344431967047053016872937409383715139686981914393797372075782076447571384726522200907688051276700693159898080767761389345382779218195868925469500155918149606843939579017791691883503686980347137072425326975155305056417065874503937788725363017934562973421388680949473606751294787106777268690355098497167391579855701782458291560728668730129079869622162947545041382931461531926491869714031665889489876155099895939390672002342602191289059679573906430177476222998211271708072518727346649990271791961981361976940910185993877820931029118891927088348590758550707962666137345057368103322690872742004003767115334790328407454394879896569664842758359616557388789263486146451263092527869146605003434377513360472006212959612715416976853309555684220564721193010778371462615873917399053063538566977483121954207498388392484254965590444398812810259433261497096201557635030712804148979444829665808209583375228225500464320801186306585682141944541579119967884387619517917083087501899061635886368093487925457556196513558436719248026876689236924980080637861017542994902102136721218120375909657018718397877590911000188508292866654537147646908807301813129229553622019682289697043312875790627628017268433659772132024569171525783545338938263223430387566770073536132844765882121853463711249433160241687658672810784460482240066933355199164348591533574688875890319268393312290659641070439219336579372818999100330580127416994084606497036585433495645076307846120014031280616699458619847216082628541040218702186262197254186927218558588643578726640931538787664036898546390830996755860864728773942420780955559672517563302557209290711850179354442664596346646985122824355951736674777838479662604844377102755587150977464023907680030691334722311719503937135517999834725294898691557819193137290990384672445187332246580408369666828311774398120498371687304877934478124934461594955447872556488486903102334841477786342790357883759265733004061779926816827899976828337812737866862983384318134746675585924390928667896134950567313625838524248868572643272359355426074617939939438457215811728582887658638170844549281907582196644955808274667073491483901141732270349377744390715741146787845288468710072581332227512377609670253533645895498649661916510940870906181319603677762541618872470660340221686628159784164384730208067081224864154050544813962070400450200609649382097398502582343083462344396245242077624324462253617619198232689623170202034896759356749858564039976087463577074585177546406535735670089630707596779114870242986935363170627487664766430559304907990810588936825766471208337434689916962459088761051135993661344524667527135291608282990699633992418869780011992827981993629722208853518178901443882615114612607540275708985465970450343837149091307366596810881181061438355094901324441908837785667253332480235200061987284425128013769712186821988038043416945281970500907580836556012677661525248451302044646578700142373344040572538546255349109053712923997746266838992626787764352726457459219148616822979581949359777892717602547702160063372779215353192761197619613239568897891816725852129327506129131836945260422070090167156018917234105629178683357241110753188973702757884629391323782795908646862164423422656153717828308342719921247437513050667558325961604815759888192210984036235270129097441007190666492378113257770114815101388319860277825435012797779431441917163093666026494265990078461665324513407090402405768014319367408123800498274579526827545927267911210049507675837450545695410499297980135362656943979450034747709473608166361641485114491191483119114918993357814296423818442559708591448975922653821297742691397854283675757385712291111287700685720074106482252392418854149724649321358255565729526446803708004287569520358998586767167889360907382789477352225301524142398263815247028794173228371759734033057979636991637373425123445041258743119607537616160030286253171944125491336012940036166556462666639933436236178039980575158718989753797191937657585653345482315551676852358732534198188468182061591533826627999697322420274009406794922903366851813856527834699884562549196280903087234473142730923699143885072564418697072302823345248542504057637700428429661504877041928923904303000215651800174962643627333022453301875666196017430711941241571505133341748755829110657829911399247626971895829414341585080849955584098707608198659600851989699713953601642309048520012018075696844730897313767041770355136846008998815814265868929540591756695198170709801232728413821149250633404591093498337886987803953654080228139939689448605011328122355804305254016204387168435201269485745873848524414512388795020672379635720342226364429975731397771147820510945182188793804635519063651376825650823458296129148137350741885903395932988406733286893035249551709415927818688200951126290956505313348248136567772906923175849752029271896914813874933146169189745981598188068623374273427721015290323326046874727174762522346412320268078153550536890622027508433568686605966914626133394944557945755110993025602393249445422568150757976238594113475090312119154708509877658875924126072155174895860118766855900336161943771011575665489896675799421679840090663269460116900436645084855179287788434934261409330849714201913500528639704680561770484701182843492513638924226923306265487404489024884886393769810870390746707597494820906840179836159256413777626959310694915693562249868892100603343390251479945021823779679849433155152066826401883994475258268737648862811127626706978207117402832085535002961836225240024806601690889171658471047059818075949947899912541242369752316162388019349765687925235956579587188754526910236387431035360660528178051346589955579310591928702222290685664492483269691559106172979960766968931446056036137582212572756182177478204124635793831108724999440086393444281563553696416134057816040395604588404732165648102688471742228784033284149754128833580835995139807013326795056792043656792830041318644302276008057868046277398437717042507045181012549393473113850404203363320776297459161375843161475498368500307397130855425832675395716561365570028693915303457387412941241833459748668730223959221123047619058269162000133426804818886775368161382782570850640475925384584997685513338177175674119293559568926755087625823878812372516051378189675057122344414509937114416736159516280736155369515814618952709871237450704185733511325475513912115410761222177391647615661126709089343520420416494997157764213996821980025737650030498938673809945311580726677274275891965992157690934092679617642852120810291363977113536934442300172339123216330584058891753096643484587516026837238662970064064139512381918645227303709235608894294077115070371214659212693449586211878573786950907065225755116026656154980633257322885862479065638392582564764902851812239458386516513714778310729452156920967095996886259229341333528175454717235360840073001402209020084986074084132430795464766566245402093765094203616359544236083841188400488368758351060673506138227832461627860287220067263661512380013851537752091218067391708866484484153009635793096975197010429442364378736254904626142269999228936443340533904173091216021811154624837780335570618501216806886866241103138545132286674232557120883192795891397295093851112981238438290222849436509133217270912433379007571849911797095843618881763472145242557528259137054720305649020373153446230817673852487518239955158161703622975880372180661127842808551015499560513053040196926768136699318118416040611405108694683208293330538046348517914365883910320071756972092348511638966119121175479671094042522665118352529689751875177109392131432418538794070955831851862849737146232411642256673651841141889732825395343514463757069699004709440553090526988771686487942266498171634045602549074663695282057703198976325213491849903656589305542277671646263915133496898589069687066194940668419169805422078215073216664162728630789586333600415102635968352253183015945265477314062810031096869561579674362561748545757131727343147884651445298429757887407913916585933426302888104324825007157170980300312725627920408809237866692847714248442585962939134290870579956152074267070506913070055309086114118067842753208114264832298774954314682682675074823011050881218809758373186768885719138937455849933507478642879380722863938041874280618886067422400724859018327948354820926954028116315081094597647107326064674531106331371983785214276643610297400429562380251171554351672972631905481813896036897672969952168507228560554716661041683639350701694192035582475031610688435855269841755020614645071273805392083394690175113446155958440715514548816167705724249376332457659778628684819184656881275876144421579294174479584439697380783176253137202176991014423267190741028283276867563403516778552364557361473650822442364997184933193294692506986577134675084425317186556684127054063911813937243028019161206616079709001609360393206142066276071583589204610081668904046344431149382856918655568558738245784793031729599562169927571820805804029208259057038314800683163259751506931378973215196290894890716791102026244307187152801174075405326882832846123682005873499271722046095624281157561619590725075358935065620612241809706468438016775029972284802944159690191918427331784945383611599310870557433160742171748887199321712909427233588201095504189885210448134847433436128740224046071682561098895874241724404300234089125287337017109169432060554920282090096865724612282562431105442518014835321507179558647884144875914555117336688422275787231122488538978420206673055815272697748643654480772068816320253834598911021468752489876008028293794617919608406950172485594216916350567175088951002933804836527155917546331335039705769134796984889886937149263329531966647362929215973400625849443499372498590355562509796490996058390034622623616523617876851042125067900841014222050047269142963377696294085893086646920851077676885352752510082481796006390240226635603682081249470267764978977336964914705655142496733583773838931325333020275382389215076029734409779013171867862058552949365832938192402079872156710005805208039025336702130754225916409056164678961510173491695227214532459037872949391680008053667905646564604960485331791408501205440695481960666325937376784082710653542398152877992884348146416507643218938658375851400300754831968154427682012928092810391342610626268906356987301944317517422737362336908145234325935502263669713448403610191422510066578468803296821535381877454643525786653530032385041406426421774378278761421845366314497787363937694302283962667474437270275144125768020024018108539604365303681666982699966325289468758634429528975947612722056626232199376737475310064273282348631294768647821079628707424511128932011229951666268687905987111046608081198117925156273857912427282190607487863012064655504810243780646621148573408427777171531057544699179068370994662388733501992977943332003059028387776818599696038820865113901014939754813657871141311035936719794343011009754144496169040795238922573094342551710169816187539583186288162596073251273275916696473287424318052747279607730850008603316996720172564795339295414453393013407688011691395060161254478081877529112163331996618806494123678104682096794523149754804499673219016160157763829361152907102051042799892466975546753256176205798617678357782975971941329587205142340488642182606435272084180859915659643923179049803316634149215428646690125096745142884957000968851953558843539289163776927676975494328563468458909394015623570230246863173504545705725747384345304738594901820661733136314562037803154885939924826210952636705289189034982602731619919817328987407113657435166642657294139802161310569413527814701834900336433157221828367001608607215713039551483243328195281981155807276505362062676661727624723029377676689921573155982897824859916306000709260936713304318947176738918351862463332010951621568224362278174371434806668572321257639042228649006259204764862571499999751614977608515315124880587092594875119538748441792750654658230721061837440028703942063923680208676032561775677769488781097586977699897663477375150003106925893379463946184173092195788200513251535440245228157164152042517392122495383926507386967426406457231164341540205792379829739195864787456050268875611848016586954673187208529946850995865370055442912539464286117217309022836958142168431621747543507491477087364600149946148119243228020628707662300654533383496197683456359351981369426599743712169916843385714181018203590694132368779341569804933695269992245931487388916445791388206711483408149386318489428688091159928933124584243571238200039613823949000606493089677549888603211337269551519524270887937310854632709833011867647648188711612651287355578045416739806782432898886156896377529057044713028771940650543917571802896304636222709900404847041085377139934998060624704712363649747172591215458858706322389809582430986238225347741670993589012937359965652599691113015815930298807871450189356586968622766463564706880659694303085669875822269090103098815516251018165683093081820971795063571819228797834881981218550933677926370705990648475192563592952667391005293412146306270063738235145466104815100528006027820262409112094887396840733336575982115953181842992170977979366046241742766462390706905735773674849254059108553817629794811963376899875465704699146348496418794963896722053634174571390630067696436732309951640174369345657456211739835793712880153227717967236147872442003354403330939697540975013286567976029217062181316897677933483577232111284330908267999311681027862630683644055878737298228430005567229044553518927697517956960455958156131924943972763170438972293967978614116152275504053994389007171226692564780924156260719416837078515637183599643920843609412175386306972550590243339617202040485950320190978783999729484006212024196283773999361135956579431377688418664869575920666798234916458333048824424046704361582078359126538525955627195693500214103545606415772667484790155174124174548597603084445367717260052439955014911638499915837695578378786644565037672856550854472015280160813941336590723777660870729467247218470928153590254054106523602971765805900141030024118747761210749385758447492298420888459062428852254344300568991807228340499728400958503998286485436575973705273427222872517472445671204087539561618333619523720749398590390868412964206698121465070698337794961775239510210321393933880938527408637670839919926643199433702653551119970379595617631759938422785769679597403526863422895650681720789361698672348316380738096113210964175821401880067241561877199856496624688655058276355683630038352906412258681574966866574893877270398006191266518055378740188414595195746129816584064832778485441721816398382509342380120116978674588440098148771512362247945180511185315392037655557661620490841307224174566407060964845292256583708507860124023262023116033379661107153940136150211923654210852733809129565545280877565729432793220548808414850896892756752275753220570397747007950177347937713746483447727529569831942411181538267524174545892632694181919533235029175172056271114350102675203155096538242760355351722795810543697614189567643743355741505516085118681837104470654873649854046455456272144110597460182299369574218334704026734600125653100344898326749284421878440667815471909366710389872156830889142612754806975473608813613536252918348722639208713309104167057383937143113655770966226932820700003777185639051190019672623466387813392049735796616043910686784365584497637431377102631914160701788572132215587031245015719706018073128657535516263576757850454958605662378830024825000021076510666896506815616496316813533136930483802691818251714948284839020300437433717311137485557878819366333300550468091437549560934462903315025939480097285163866849670269816269105719893325807256273963211586325672385136220008113513133949481535434704824654833378303978309725727973037777411440224833319262268546184764648546630622218555503271895849988114042827337227415253981801230229596973628358161461441975273850927218362410207666922614573360145984003748608178911446031091960581120764386202098389668129453322579714862275404769569008003140148232304790444841260479772785222020791350581712721813965382217207894300925281590570195695351587649413056938557590918524932938760462564007662088122801499473492805014837037777091589599804632125153204822740590504337317684106854994393512437410376187160130285591436161743724045165117454019513639252775093111328667990588479137025331198093587539697133482417834468892962270430995472130392114614019560784250033113439837445204305988074436043587354192340480015940158719361434986819875993026184176589670761055209176158088256625888827169898610950538003507924223763671794363942733637404558589428521565913313805134365775467269175476238658887902132306886698464448167420498120340420610973809446618950658574091351234609805128130623020238086546376971906225251651697153331921296465466869227699936880954039320548887739857355562788787848607060612874117260974404821873953912070353280534502784047301130395751222744712822757727301099679682498196912587878402759170074731037239625350836022957670334480310138796506170706931118122714291238583502883118580902957696021111274397461746324382058920313360783317635312005167758743300189507537781261051395267351460293052684321426259009911428114330566760163234450620854835697782352610837055432195589903099080013707031859576208566230361627618944917491267044111953111455670812113912310592762488614156756706517131088879164221273683767366858663398195784839409492263004456344383941069431347216725405536241638787129395604205790560803093088751750213400484906408692905454695157196264818526504203189080386375674650475551221971829406779879061537029596645387312547750389036867089800223181849163993370355173226932749684085284109076062879514614353657666395169727375785387178063938365956545267871896291766093258178257326345671759559160535761067498592078946287975853940017587617148469629934130062263028613692840683887607245262528295064209774882785511152503726901934802965208417266294425595451493733312162419565743047196005584999042460095577321649170694163369715201034605448440615431652212404745423091006691296538800156913858823869981094036601951075814677657422436115331220915481055221215482427002483645218401589256595471698776269630124320409468976478349194161076430049410073289017699665902919061955776701494752205374590298681154879559712620826534201245691555556739912235034241491065989783897284721110959066246113240179785460085223313816513991956103153002168829288260222729372553996955834669304712292808721523519299066855586937308858280722821003967918739594924568453360075184834930542036262332375923811520314212721017187541218994413698948582156420314149650660655289746776984049528904655081773039032485042774850920593772205351089846902405999357734320770446273670894843190921628645608609844297646015962086682688060746432643764492333559738588582300596725485424032185608688081252314378615787308446787556250474415467150659555916923989307073051964840573422683485218490959184046226825710713097332389645289817266431395094717506790507039760898510690991294791355091476805866516808080379995164989507044935453766089074839860781959369574892659753383513478836412098749186099751125173786756890846291777617583620273947362298138203943981446920471142702721390550647518244434349394388670316171143402056271161951809035262291007587631230220905633192044796146543466783672067202355501365958109615954119791469460445085959863794306346029540633920334294902643146089565299344104197502630450920343449796311608256601162710702903950122004168354659438558120820733475743827332718388586993870085019990756885634669820456206837180216791949839194369593713707688664798175240915525972573785497435147835773139343149167178142982874784328044472361329043669829948897284695854690084278008573156830532305130902789221349857964035476808061275339595012745165608445989152982322524920040739331024910528480765611402890364496299122478191266113171188885914691747938395288707179709602250899737589149412759928797078243719143582260435043219452194013470690279213153910149021515621940332484526816430009513545678259233594998418156503091855467305694309374764154184724041015384028076668305608157203366790365834120236857192996488506682612161299436888229058498400874593765880819781581328987002437552440205685939251645046460410658716937912125439195963702606851850238797417086478910738846306662227866648714044960370340922824169688519526986169347403064399075766883853570114346480802624993700055136158219541051169013455327124644844970195219980173182936963539744116626507161959121526576332442114666151775502775848639165404687616189668945068154637811377240160389628400775292313609150299110891151744109324966269775491930578053842609430595340101786311944822110058826415123288637232753207986814421032338365760067576474346478893983168541240356876377822123023696874339408923809203108436305923605807234205582769557452856966430294795864706609552399747796739877922425005323503582035725084012243965695660399034633782357138748671554982584937426310222794215497128751232090685119927713711598522608312997573218575103183089068222264149707197058993627328288236853102954017859424394500225158874514777653572753931599309610279327425778208314384545765887723330488486145212807815599761948090288746699494607784510685508304811688817630101840968804071488312536407558130178134629257950136913093049131505444865826105021118674439632313284613588523193411235738973607491124544909040456255400907664065673476489467156732929054298720288281446858225847694671028959763859613417214937419112557189956746098634677735775152515205848016003318372831156027901412717328619133678938772929867390313673299971644223900014091067738129822046846611602512272641968166044995150716452546460663207420564636499488214355351668479600014520438200680476423517543251939121512699137178911765021534486427462662777074289037525280484000653928668921951358383198221492779556171400066225282249649569863923476932212680952530008926124624897559779184608598014537655557224090200062229115552101800235031573771127233431380272249979218626119812925584067836206525409389278549396713939132245538037979464642192810985359136688284238973665571563084088427674361200120795353763226624240805523448280469805240336235525231954767038665641425701008561191848681007409720840475195615558447426341857935035194549575642858140251035047687833522807017563637980453615666420274075848656340747885546057113267754660520538614303762661557296200853762043044421196915356992391813548833813086963271803576803243158390526620521129707193920716420522106078795826850046950616361675808635815037753255766316178376188609357401124060731401392542082960870723938367443135970027204726305626410449050133107655228304015217475610653836467214763822862792993127254373056116563513761328317275457165074483535072674504170062955369425523044037106139515823288334867433893340929642259719645207364441469737738671000044080740643803090123038305051533013581885718671205479190938189949752721469394249106353832914001668625906364582078403242442636460891273813619087315411991002562472532729677679705987203571894342281525906466408661045253681736143173924578126862842239870984230182927574038014105631004907407205521963379115732358487989804545416663012312343637672272332325514415964345315811998643689671218290743297824954603535609837474104872495233534710374529717245820204435575458193601477118795031282260378194198128296524509135136914143555174854647795246613858496239573699901003927997910987706607795592999038226374554248662762609214367957882143357583178171732494552256007799011852970615308318925125447598424956424085906711335441627268549672855204224218578914395717069953170730778112630794333450227589457556955710409473726367735313391716533632451692632328000083369113983935986462497822371415847250958056166951477843276567543555649816346845283242705073899073863555289276761147805007609308779055388313810558011273201499493046083966020657810953437033569098141429746581535047802088905710756666396635885922321375189907080522833677613899804420843536802811342794681955761906018949530924696616612931727589055915187210871453102204322474067179929476811644647462070894618372874097037713210104373014254417237553391368224579297843737019445593651309960340856572107220586407945637172110207500881791860782385352451309234783406968297620621738495346593345046377813955319632645073701404910524709321122208691918524612088243859676032236307072470535139955687819468073688450824538763963379071581618756200000959988844434510245766449396870989441438067032525205790898987157194654250959451798768801262155690073205348732259283714103651146834613222029592513881676081387787492143559339473459286537758866882534622200378291031712198092461428472746467771847846357407945313091815466573960898083766560617857234990117716462244276081397914913037548473023642828789230355096526302456464554290015696292279210633330557078827161394767811310751945246414565158327681729556551407985225823726332430724543517826043254158535138193029109710569441171714724830209057687961665203764036553378991462947470986210595247252002215727033388231135187896924941811210917635961642208246302586694652329135429481630443546537710296955895752019181433051859616662742294374234509765704572976796760360987249288194827100744747497468729397605370278569264881155832022780949723792445537282789259970188075596603212421768451849143209970166736908381548638925972529671019276670060952343406994433152894834626169787977505203228577830139942502414236648552057149483993515462942639910831450576878748936122145780404236596976400907618034810177707978982708628176368793676056782570981706062484292791237327747399188699671431038984964556675543838399016785334797953139644120683868360336445490853865580978497589649371367325491556176484324546783570701452105517781762061531604918464419205070296705759951599598780531168591130087091713967725234703101262256595085657180922831699830372863773914946780519895833336873085746502729694224659751958612961639873456291127625490091485471399461806969708090369440568401504390986144371187642392728707846390193936344646234434846900017097034161733248564304398260032537218834677431812288583995878643440918303337379515412462864527963063131467122054859501677915405469143641759861188464539735954219895956530525897208560617736785890534803596193193202571484473258546131563966069021239833705915186545158212195506704461539088210724922408363992174792860856772235637029000144069723297581841313742577349115361490275863288443310775740506831063395950964923377954168400417180418340486195787735778628486149184947417219593088812632517170793732305640723150449545459977097242874682347996105785114907734241935340790848972229842768980644230195433653528130207106198197783195965880124686028158816492557694502533104174775534795630993057989443147085729456130496801751918559128496889591394780397089351953216002969254191822829856783753648408586592139975887795748718263441072804627485800107067559444491984186461460452783902728589742441572954298829363628849447758469918452157285538218148711731400200227922284933024032390486881650418906339123747767830802391413993435096958499938018549163063252333047398187437194547848014313247711297007164812503229290802875320275502181864003771846992942596750242194918116409391787224330645384058753239669897080441339701478427893817191129920018622072371155869231899308155957307947521572880113931360706997502342776763954571010517796152082132990608992904545707632924807019891619630394688214716574155601056387279598147041993322675975023554333546583313271855503992335114715873777903794131543769754168925734736610782319858242148259880256948178825719140663678780862999594486123915636677400145402225859998519153853454337353509001872854012267724013856771055898996343208808589547861821500385403502212609313885528548540262972181767192531022111963843493073391465705187848489936149403148108879339426304920835505045024958566139620674023301282069466549247506522793342062363769001232848601903320063712875450140460791044091649618646252885372090238285929427836323434905086033217559535334808979696931396662443686939007221529869867042473083983093513884853271865685817872158599923123355289202340250547998700828620608900385839747729237511460634690176817881636817465774365418194230038159024235527242617621305245616428152563399889415188678878818122772541725419837249401655181166133223146195422699982809899488211083143434609554518639740018275611051311449325948330348431628663403578473331293805798774621931491609664868812517402520467540533157210523943383365973012720915118395959640885499556561112880487528261736530587989992012832418556861495091613958679121730738697618114471357602705079974269503334871687997714009058084925853234520712551147705998722770524917333480895669107261260900360163761874455938035668202846116089487562431006405998523984596910533157489643747747183970801835389113758171007050645945659688023665786516035331374994023302471199530586972101356507836933815768758719075713125638579055304494816293934484031064511349510278337544359550829414786969047168619506499503083285130175771900969270643522718006272531070573448215740592208019400801323738960475733546187709590744104284144875950831799929786809789209776010421989919325412544715415590633991590136077844832799134276073478532228725867484431934844052213828506048783239733697920037805698336253868568847186196249706179046301906639973565762650794961488368400530282094140456327007432578802963313806007918611690948686071185231658455759384223652587380261009530167823094177119374576338992984317101170127361755594978378492543108220453344591550020750910035784654375378646253257082915921719933621853180948859138838292480631590828659485386431530269315659739172381876240913973117859085875494759778395660238292051735823828100203532370276277058847425752055273589823796045551400029800648279820690757305677463320391052661789685234572120261876123989632389707120328855873771555180224396117475170615730190886001535591856728979307612896713696302336618758957277094019639551290986595673578544313042769674639186800721647017576859770963435797039214555622685398348541431670135700987341790656514024584863670428915616990912929155399273463645799775389478218441619256342472592689756972515382815751424777897104061006155499406013719847566438754892490090359031959911079444802598837896529383849377127191232745848232567031556596163665118070383692683765528864454934845804399146732876444264294547302760176796733347871434666126626757060676360215290405290482560050552091347116716420662844189073459139120457990557847870419772770580576544384809761918553391604961219720905421251882005428902231460350103325782860311393875911054659085899640217294435575099252478023550294263445800528196840620092173490040597651718988832950637257873425642170300283058094118570630796456814551543900522160324123683395275014389408613325510109141454249765051872435517438743581993822098586338291664920236312005748819945865367733373555536062897098433462781159531693228589249411950643368509461151145408636198688390625544245594243724295874709053467452642148112662623734813172976344754006060767520524943632629212627448171861328658271017638309034098024843777767318848035810015830270091826015297019096035541874366400688575676971594445201575860252083168537514250855470059382837656013229241206189015905793492441380062233852693907586550297485976026767413383378551400326450456185289073293056440779345093325992390275249112946717267549252684315527331656156116195069301421867180168748746420591564003222859365305657932705154151655209287373903065690516684737383860931654923749179730460718398645607344141787429817174807377340762726761215028453349117815297328949233651436089890733020358537354194779436793635540812312952083900231842967952057159918706075748213286567343128434302518267771859789781914217806593240635916940828215175442159578096475978497011919000245303747874001872551785967195319892786945533468597085560948314922606885451825344845210747334564713896688009584959644820540596709175576923593748799069409860530718575121070005318975005847514416430825843324814767271616581244382802066915772640747593496498147327695498631635316726399487299861301636673970799737127777358877015752807099493235163007164299987809564307950910692811313302810078733684608963420695753520728452655926261659541210126546637760454328486036368043457062391629588924794901212508637195016535814926986598099644700591471763993174338681973503898509465839431655389092631691006310425531943856661720190995954746569653360219855935292048359792090677599037930057106469493637144004450284457714088864165684104370483195046617156722774461931820992722321693924563860896770291224430467875454082418503483331479344731866042502768389206134143274542835447904170392028971402457623706577864607923826537624123432569621535992009624650564309314999878251362704397401406253026537806597529969380692448725298123260411970425061217469913240258158549805936915995560759501027402067186609082252765775624104590245933494396523130015996023024189830435335290945628704243964418955794403642563610075972240223220074917352652235682315754765866639320189206965393832997554534624804351555029030067105965597544162998949706486996980814319363458097026807910995225717670263053230054858629539726944277793505786941351805383327468244561656430674752718605824756005527131993212769109352747334609808272464002101728284755581127666275352820653212308391923511299278204012115690341716198423458678677997752491189308937937403430728807231173634950992937893633770123279266055568722912984210573216858418966861329991778337251882681567539288919676313828232823301780029438344998410100370196946378233747332193501499911591643889746284482288259179001422397666851545873406509185241257726607692589739998920654988046773827865401881338358207695671510289380934873146047132953872839387543711964363099355456137561399593734916065029329710153426725775012985875707612001751155068770219395513210998264227760741327804653293918194539453113399696527820373767550305646379801734997441474196838997445566888873455582659906786038844311951140973522501212415553200624681836602159314024243737057442871870595190661766465881819671584479747371172579732118608099474155194588193473844846052364853638124247444417219204186201388673331655654554166550301343829228575153661917046536621232497723032482524171036607440635523400470216853488835781627021129369392129142871772921283326274908002114969419604944284399050687988923485932349235960964795467488379184047195259622518311170932389568808559799823638327815945307959926693440455191504270447542971247314948860256366586572786549622374145224583099995653419206638097771190264313992502904588521690935613525582662917845019547507045137295197978087363932118307579898156538615064214638763799500220409235613864792095357260489539352794723498408460099334796203860796564961413807848470372964399574519787391930132870656177672727190375842366267594015949513844594840381930789807142963543374420734938888087021153763828521640885751252347429974660257456422685691022373319182474517382851611680950368052881830245457071240106573326928725083650835769101120115106541329566712459355884040702282054590996926460976356522210179727979414279006031132465418678527014157463226568135164673294497625834133020898696636718568731629447723321291910500179977242326665560652535339365061230977069152992379312635040657149863187478620727205951661416723857219642637395394897323025155118397208899543901321283734458554985068614288413240489017370740191195971984649643836882949316329441480927402108513724756518999138908017462559330784547919999043749942811375902845531920011092338085579029505681785070686391637150342868638912100753074721845448711944167203776155246726475843171762703793195713931496595435171579039746666541178024543943001420958208486683377179871292766748345085797060958977900563666336665331445358878192588924751640649424587018366921838413655548745268744322151276030903316038916463833285403636500146111151131877146200912852219956463793546990388247299751534048751458943572484194514974270866903962576660676942695058260442887343358197382662356356170493841485634915994850796533617078777104153370246294712463207564641791261044042594306550848218877959325946692889872905851603951425761432727700018176400850511958005442860444813491300122563544425196714350245319152959513413400398223093808232628560117453257205541848036489849413900720445171190472936486174694639866242616601672637983733936917114134881154795002249995054398915996621708505321309091239674918254656232799937220089715830537752180064159325531545199129757642758232051340027729012842379455235810618462448387831070201808859506181015953766097067613172276949774780273592212895909019922431559206247311703442742560524494762820022635703604730937487694831949178865591140071959673917352133367433359818986084797238110470921469755374178553534916217603778125692316183888852095572235149546700434067956565306458709595986112227097821249465802122472489959565262787236790174284350203960883581874744256527576150225940942554388881947096811950307746140379898495253633226488443488322064172100757678008149967864619088738230039925391754331347969112654418993448245183351341308614851246037909394949281444697751999156078939441020415757807000832761154012622558542529995392864342197760113915330437985749325265056330260739983457411020475850944517885747105263371703076833978603615131718179057343668078183876419844517520465727871769828717379235254464323850572317388585939306382949847783540831117804680244018120198320802671801566674176817323660936058716374840371140194776642310060635076237912785801932046354564625270114748111993229173902559091691916061041443514191691391629472266609775291086344839834692074546475512059499380560055309877858208407164020080869212984348261977069735839189361237004872663931500508117130578041148774342431888234836665802575194535002453587097312195149204548730686066463567775096152894791972043923186693156451319413169101894770254345598384357325757330850614067950349806825633661791763760351203893233455512166137142621792123669761645700414873312295940019234261105566067199067874378869291062394038995836893146736955045210916997297323015978564216771675229583009099600726034690343271615677354005492094241333133414256703227153285043365686225955081983598956737336632312959354136448849792434061992518522644552157807505090042401000853398980852659369379787949797369390549993707932299978213820394561998041760955789428016514500468349967106508621090388358577652289120313855657356974069206467181691140563654617382790556567733969254498171657953587511588068875515632231802249511576157007937326380749519845924269951628963576349490825156004956153039954256719056263697600496337999398563080163424899765145708885597704560909432684544212734168070700487866843931564224048614432153253576867831726959787448128371839904347946410435312077503017479418632368215991548165421743556704622352864005817367433203432858813089051774783305445958907168246364644080641126122278966286411271600300392483514652974685783735516799702339035982376484106561585768555176968693810647673324922513673614029137420307908901296907591127466095470747330586519498093315350516470652431247188521262885119984382780060029340815977645701778748210400194649542687230263390819718997592753791941008264095878698946018470994825641208224216787274877858158752274126058944923174459402066791467785888741806531726173308199416560850932839570208526088271193977402442672202404229528793462977208577233429612156061936961004982324113397510724267321962786073244290167393875337720748323015235228959825474869051485514698674649945832978481836446335930008665393315486276195191513272033858246693629861672178942336938539352893208042104052160738105859494631554767326506517857176085603373850172292486365764557068794046052613151068131862168696587381816642780142725039299692107206291262682019773474254117988659236855824194664338189969354216047416027423796071143958493948272142835114456017570597291824219359667439955614097815801154386845186673368406246451928927119637396171008399555570004649355224343399956967449662559084171824865091712132383765228657211868211961351274706186802572913792884672162379469373183142717746086305047084533893717126045620435735170979484646159646166669965377486157642093043657922307764574711474329662920294300123840407884218649519942650117362480967141412229846038528813702182360845911547890331380688969629419534631465662147622835514673413026467109310340578850011989011422713276924032070940712683402919355138000108519768053024529048850808939921559281237297685499471791928655889301799047995739235204579701562243734564599830395165021533560359796942451603863235722190088903897462591669345394553322082859575932200342989836054470343124259684784852714675721649983491277212869871088273768661141352769783332752857115002426556726362122925588513481932787326598522570743406752562607281423620564140324481137527658472970356678304096623228714753918681998946102696981923418835824172939202053446705525983695515046653114743628789490466379268233120157498316906707603722822932125959914349246686186850877353058705583677476746424010099398559548976740624837869702810546726249309797069549289188764162287576930075420127364755737704850993632625870895095390099288561265156085950522178072757822314081694877102583969738707464745468001954612799600837385221964037888054780654363325893969976791302285019846242955036658069629215245297072847039783634899018192438236250735712234715842250398962675427657804557131652711560302172294325268419484696390874800108499500896287821905537663729553225910719180856963115303678780749636546774431281604373312685303687533635994062155121785290017550792977108629639385992815988442590902825162224605345647588371228820268497839334899316937127504573610539418881069129123188300164231782798877868227900601042825253159768718095152095321688089044873202126034973891022307429357871615577074104199009308434211970960361899334292831250026046035987702114444044098549213515716837660708974182754890204430589967000778868074342070348043053267435925042743700103668518385666131775952243242208305171551030753832631133377470459296710890947603928773397342811601741237851759315740443358692782830264935059129276383366537099078240558576023374136931672554555785821034206441241899078444222090595065145255198357844055416918831258034253744843883771125347286351209796794468962165206259336752732971051361907298525737466339851277288622837389674253903301092169508373241582580556720473234357520277736158127549337115487779737935346283090674852810105674514900329161237147441135605670367557049808712656044392277171244745630091637971686777887263962068225696284375772082535231410141998709898648023394757918735296117955360402866999633571377523713411941399817128509990641482529673683217512375936128001080403735187292683245069295073020816793688486245664818266174691685875122020889164959645474235042116013221288980119793829869672451669206203890187118849597119198778682128109505325507899060192327593986689929282318156285655932280587075579556028881539931824623015570677650801187292213597712591650777542683099555591184653751098116003718296471466360010289807076800040164179974382729358700554801504528028973017710321641591081783334936020459921772811558630925674395007447816003658048891927887963829064908414082490364008085840089768791692442143405964702190323689267771730677202328202288137068206101902786477221128918701974832404620862521857016840805475933671761260807267901218106564879231475522774147073249606571565072003969747550841010206332938669735898416054419941254101208610765155654588497428686270641812321449895827127136168802589409908044203325258731152504545109971184652865799635691834400650133438633219524128349819635848527263935272448080427440098267895424861907145277096577088279004794593215817468021588964123762191579145325141167051745478867227518825026760607112377204250108705253062679328096585453124084215589901683073226063692931556448620442208641327009127651453826217307036206697301652105092722156091246715493078725733874992809606044102202004995299327901226137000379023260318940993835481437609633583130928821485994698465148065234459270681994429541122952074208203224979600502676536912524380722293000909920309814751642520208260699535761865934051575606522904595772231241041483567634412382267568818669315736900344516314245627455546441992997724112345839075802132067091079409148549124520787165999801955461644609884015675637609099715679516826463113201331595707215412576272416868263157530800694701613878556915336889553587311186459031780350382734677599395729696524179039068824170142010171849946609758496998785089750703979191040126301202981681745548162052352822002981922903032760380957740793844984249232978202609438673602612868161184266524379274792168269853486113844461767944326790093687954214948526730508887197344458892174316295864714433952003755875716175636929013447869982660122337615401645185701517584572782024800111237930149354999926924845958603674553727078979027929191043580408521496431332343981572069582932980645893669177969744482237847883768414542900507039566650237537562388353693105914616124306566969782963658906299283038637248877586365177000110195579873230832906528383582456030509703806963846549654954734427676912962458094404950391768061752739205701541334728481835178835254464620910075678933447827957271854204258034666908057476539734350798702011614385402514539732913961694166214657629352068463861931412982879420762867365882682472446250206233982153213885719006229506825192086760143063852294347439362080862357531221989318149029124928692460854960262858842630635472106186692256274459913877878559807728875671965454732922577789783344349543652503798148114907425530030680263704465261028755153644704274554151863842173654078013271371093738343714035807121433818511942761028814284328676547596930128196553038317700726785271950490516619412092190706576776147685010600903267261982326390243296722697429613350778722829022326892118548117277857842524517131287487138989246591904259365351932904599467109800080380333239135688687207602297538153543594152501832950496354830979917207897883484760000294052734582903812524796483079064756316489389045511581216163031110195763672211604065187094094653790921597376365352685549454356201335202635208024419657419461783696590023822712577600421396877659570249422642865731513778958564765031452541648338887931186817131915531522028512858837603108433800222034629835248154622753442855719605919538845781791907742558305982603856245743103407546540101609400882653010055040750524881209963594419366025983809467358296781642579139371920178265144966628325575920825259449004365628528842939416373904357775852661564623222208374382922661807672117968474020049385894602554408721008730675880687498399182314773066664680601404534643362049204903208578346034960662012726814673253384005016984600867967291627405962057459471938586834972936631894771994389934077086586450251865203807556170032601585386257240322909368190874832920906442790235596349717520455915937997959989385230937336093560004854526270957050250949250731324350235855993169938099396702984098900969848384760215448957172212058992919507869957547587833746932462476781587627716638695808518307946760007191401712372513571489345520604931782112449188944618623417305271425813253697139470838900221962519291528215935505292675309609905058213839644899068018271346092891816815537365275335681337403465110318591673349154804219292975172238558675944067454749657209654172828179129784531372997510619831111537865466122842996908365403612493445473010259476665965202592064911094042753087799758951566954062496432549502945181009289753712116160684166203457749048999287443659476609223024832397111660766597672536751209204393191747680023905145071490074079182933134594122318289410322448904425197313419258401966104987355864384551003435172674451329455646816561929866542803736493019101874780910877014348974681775906670678429563934428043277412720316426836319971371603956478467806151667107584351510114103380776498668301857858080357335363448298320286591041547821205874943425997053541172305886856774697934576747493237533446009542566656448650693223405898819310724809197393525662146063428077235368665538439477493298143850610232291028829187985886421518715662628824060616942884498898638441459949327769666783139578464347774124376674949755059678085383796701552985452948790780917857339206461550446484372753721688425891542158688205639026132414839358859654570837190851588448392666975381457674934142255623905733030971115178860246184876173184588673236702354504995946035178024422207157749611026868309179359793586389444333150762908695172005460626125252683049952559805859675463232850209851737738075194145077433029100082818307602699490963959267649488775495488664915502647643957414887414599473981110175935180095096876790461687302866570918058230088883295441800866477059394731489402002919276033525522903006385864240925811115807537067876429520848374325491566102027331171560623361542087319137250704506871842772146014449018236468286772749463099662159053110675778527664016031021270227025885836178989242243947774418854909830003599830516185728661029707796000551213309691595435348273529391844434011378482876540143801360091314060808562583234345879252216427954823474053814261304233732206881799187639058832747042824134781436339063230066134008107989008198247338464891840536028909195468339789136488684711429063613688062329447386997859264234816484759663880442582327688078876500094055862868474930140789887982435629257190231479175956846505971074289287551588172095126899713169717139463355217128213556324463491148548118204704991090609920969013744948637968060322654193254508008371439116804315631957497001298139910710543488528236108557358257516643530804351937528455927350780330101174278156482986662209050923475652410294930449685360180088815828437230453782732605618899854787050220294360547388064164683791714818333936727849756189690158226675670298280905463011339607555553419957851763440085318848491575134369600214979137267721845663152908417050440711133385391647794728242564248403945354176519690385957945341330057743175462802339851269498411919013779195794592682315438964678154066713128842364243870868324070603606396756146433026097052438952532382398313415994206377825731914780413607824367627452030222069474572096967241935873602711065996133433079692789729032926704059674592743626181935667923639144946758258780758284675572306428185906747237367820844430398936658939639990260618496881399993216463732619632021898596328709689620184320110955121113767147862361161526809095457089340438871087531893680162594019234584152379337108690037539658288611952455372894781541296985450113315244631536537010911646433128359163451061658758834248427289864580316425179045955530228619799215441661152838813106222736451726914128616329807593958795539633471645766097336105543363034677922868171260159534996776251329380898281423444785038086604319171722547696247771798105596131338821487489505544679960576975302208523469094928269435365009403917280900560342377598704641213164308758008127894516129803929061691600479226332577388703355344969443245657326154949777654783466693579224547785243784417128277638273057034322618160036008737583142875360964063022719960958258830194320881580249449216639074995263804997485073079081757007369948237632017191269627748748443092234432718929334034512937388853805162455442826450969113466362841778398682088870263780038855190529909334395649899882140101633813329312872958138868324263056857963169774976978421212695461901416357318891785185686198171503953051789656100759348108275567439916351714854214626047902819515331288245975413840693407170304711709345370613454891163304934264791203453106197141972936487693807248245383380264360720723464430062885686968370377493255133306595185663473313391249110690233408192512083777710983975368522011042215440094093872760490850921462755999536437756198990067763740381421343319275419270352331514188852951355652402587776030854874073150295051563277106829316132020014690090451508202838995646854060563850191106813861851113289275755781476221850408241472669944096629405376698330507204234764795868697612737357934137159703440274845089700565984812378295843704064656827227893927217583883858532023391018241193856547487256283080119662337440110721004191017138873370300192604776824403151391765261652844518603813484344291570030277915833073842512645768998460160024503777664391784444685923316146180097872877496869360358443099562702576044815531207533981456022865641607589775458873641651696318250041351944364062978447931872487221565548122218574035124191581921312832400616207819985076730018769341449559016254577255690018098357958302783055629667019350916498970273764629707685235976133709624975466745348187018048354282893349071163096241612322517163113869022650035016121029557535551682317680909084662262821997724841282241611972245444199870380789269613552134051648993055792230815852436487586268691349286089307506953780015560456686789127671158764530996798254282304463230269157047800629059205061545911004880785052738997967211949482908168363979880249663393162904994867559104175918978097348146047495237740770758946812896596879824968411579089875368645410526387599359876893302770063231047511076283176215645512037854072696544555438000295282807710039501693289251255644485059265443574116035477018300583482238328284001538190114516900493919646032174657265302031668957584493171969949351053499542159467902799304376886876706897167110611353949327105406533256579493418926841899382369405857761294216610560969569320294073686484687904249359078096111177963944385516969662992757566124681760984922010013260252635798976165381610454773594375104598525102529993312293636679127440307470387374404332889817605735522475415789414470427614671655805671691705898503445618923405752831199436191741713183407795917247961399977245276778801952872412378281631547967896242231494174442495551679087528566741468073281331272149749323302147931922903821429187172869344954605634770625037612806025705726366881429327145862731318123025426751562347546859968198008916541483325818589003185475384638712433010855204427045146714560746068830376824471294032680690199633124202399347744824350061387404870991476184237250816951902373726141076863350801491056398542049303702411076705314979081523824167740908998777753172498319675954055376999523456315396770166876636472003622964245287817676894535835683239067202391506016570405620507276310069002877731570109773397556324936620522169792420660796661672488334999311279203751367177776150471822334297757351890473062419562132627870076494449349540378967771102494298197682182021076856819771190378166584235557458689836506707578623152187433424800775307499018447968954362926690380421015136726941471428002201641354516882870760688502352842586839428847218543263119691472992432767736723201974974899868910045891689824607120933045613353051108528103194360364019617436932750914415721956316434573523964583610007228203841283978252311402899092119995841757609830577173878979531593282161128327905783654027433977918974864736770817476606406056920260131872862783609219609962944256472162549871085401661135661085491284444754390805820816851683705908467672025428459092804718650676885563575432313517228157100771707823021565287243583777851668272708467534322073379798647677293284556149584556569284601955781142252546624999208373609060349751664461473406020462176473854730347990120438517379147143190135076446623500963693688534552302811042805330020810475910873661068009501213266728575436079850841644161452759668921112220479441953810308923122334890804757908956478910958680436165488674402654913624517872980465345589254257046110619275052449126388948849617817983171373859339812118371483993836371502300753718780125022619846897522040022537139948200224313906439114999473847940276029562334272185815804854731030366069003164734938539955390760225552765007076302775454956918596250369693077289929843254201699587547955649107077051798201434896451544929586897463045028684101049964792415828646809169500831666047505850489613468130547897662083006012628830065254613403588852562769756653527637968543784570850025251743775568459674598669902615241696404107695820618842864250715402188118924931698114365357580175429624613580886351922891914765659149754132914565832958567288681152827136198178528831127876908517802821161101633596109721088194120505380938924721341632671737460103374798552381813554796908947909565998500217970408023251865883706751291472709384266203753040038644608045620797951838665270353973467486519459180323417314723368845897861824658774604952335799515782356473326858392056261126371513378783094472811340070976269426179307007793232875806836734762580582210547446393873231434802513407060340787921099743604288015373716466187784096592108103893975492296101524026620586999252404955063471195130540724966414233639425624263798090161218050715112240537005881115015069720502156940129128254487572325497988793601915486549074423187260339552197459796129779984808923699801458361529422540281757057624262731243148932774832112123237563315578905821553612648459736772440639178177388490512493688044900676436374779091246833414084243462026750782409373058016716437818369721805893519308734287983574303951341420393748405144422561771308844085020107623729542306654954411088428621777350995599758290298527696083425895190311338374616816832637526336573981152269293808178103340118754142030162144832247859973365467876176461183229077094864670685651258744916105916263474002247920571363537708492471080992101926167800547214181580098190693998760607365478845475849826196407452618833304373005864337730686876438270943739138763467104653349751126716465729933680127414337992616064925752145232624687968967633183693915211789913981963601737711239492329650587628691062258023778880137446584036607451295517844677903038937455053718736620578921202940331456195460764813847139840771894334813251311131791140307741405242810584243224084769504261932696382107670247303605151726320261656446705387404274299693568691844745341576677658127473079703282702932420569936708224639261401840142823533040988709269518532600422798039831151169291353210874849109205097533763265045540588118535926767599167783741771416680939814945142351736521181481821687062385568412363956636185908515478529416972068040306697022437301181466116860269511437171997925058637993514623049984708916155288128874235719571589023409276437506334588028699166055625187698413729028346414463177814141558093478458060919630852685739652550334175826154859213337522718609197638653537443997945861979481755767421126352651718260139706395194583576824352608295510389994117129073573791941380051617490329625440170806971406483858033184756837841760095056812591090411250342746127382469425193119303258250524426895684203595624098317672527094414118672480196027787225592966524328764042471264569856212656911024263145855361968442541704100028186407459589970332125674403661825658164207342031900059206131097355691827893795698761496024618529646047576115542629061401462362933066429775879126459522302090771276244097339230509045419629077751140923203313169569307050835196177632040130233172923994134243897470641162731585823965754865638672088896989429373081152242732861304745889708136742230937059743200057354372441264770686668541322353079174763794049373681384657027625069432651955391968057022016357348377320934062216371072743019117248926304872181438854757022226795482813011554954116576692266832352885636704158063459719625723927521551701923809829854174416718856884897789661907493606069136178034596581410755054047950533099363244383039451758609121076144144756256788126665432626173705986552371325939252308267767551817448862619439854170287983560442845698510193989299868546443012111540250314776625258023632810402520743303913317563762925760190905136978706521099550117636581390839364391361125002598394945450805143876706939547824317331342735148764777361971834994004591879931589965332259329635692601176587580761830428274919946052070693372245334339627033764159035061590755492089454593042239783935442076635403969480298971467955736050005330909052296350374005443741340310947527559167848193400686149810194520975586774854176045482290746845331974970400138463736614500923597249581912518923819549767997012414371687001688845908684372539964080964421001790762961475036142779881543467460478524287992020884900273459227516905286797971363235436801535993818114272185039080459083496189356948677064151032226314053460828332237400863988531137951192529024272821842896996857377397165308859132031469646003740325438536851015334680887309066160384000545310353010694550913021203878747791029278708059801105765067429921990945614448660034213294968426371263559349372036035188265181831059226391418437197507309542400722887236914126284459821939066187713588205333727887092980239478405916397679714206020531946330215669202391547981243266997803185520194402529056121975729436454072077893568153419917962883053251783126975777678699748850298919329536659695719610608137371961505838612452636509989983148186953381997525383876408045711847779476965459284430115979277615203902827441366679860764406132651525032445466988448235663621930812725700359829535678716422423395025751460978070227418548772211777447014987127808057771315015832764600879247395763446168229018411559692530766038986085038159273786598376772213331548506301259616972566240280419669888650793984277153558705333970201043233363530330578967011365871318099967104190313338822256011867434043784393411070016433930681572535545358595160319452394784328445075756567678079732161940978295126506574439285858388783858393093037154644453319185723553715771289701685276011478028064896174894879392645996721952744251368794616837100076899719435292965659946009090828466069816293129879403886064640318604901713597901281897550010236558228403694841095743957112749581705142059217325676373437027930222114832616891531388536194963384615363669062554314613115597596320679572876261452081592815918472718674152949686503177220809009107206336685756074884791252425228878179266091222366355202067570118945384474326811692438893488950530700577017337829324942439113964018401794898619741984251104815358364933715873634570060880245348542633947381246323549436912725061451755589308717818294763909449880643361392366675906406983902592454963803941755598349795534307968044440138426883757181417799230822915466417283112951407387730797776475632378826838757567944153998916788356470618362191140278651859419748458915248351789473684908588414264536205399471282518790520167484732562187653018565597734799230524313155781213022522041639545959356341078904191111638649177197290801771422233729725917516535639228062462299618216249898409568588126222608637634015091034138852500910015907080144496726032834581645650169227265838230925757084930801773725720006070531752192764194862863526627018451725675302600727753075488931776729939516464764692282134095835284144987053573733349237583038516459013907009822062896686049129688844464282794354127997161669345367190728626859926235915084994564823901685344327180545933731434551915059839031857236216191832571377218953338202907877707519889885491896385011594865913715871137065058461676227175980048072403388480431336011853940168687015595169216714691957091285688784722928695879450589802975895227743551303833939299760199960321612704200038545263598836369218723498001108911490674812957845269797773216444891564703761054748333492717499473491056888964382415953610042973685900574889381373159827973521948833253061768556276766449227407808111074654119952041445728127512010322940627415136129591380816788431125910748407694135386028174303753721262523077141857227724799091272535765537792497220074982799433251759939621324668943993671385494752660533553658380163839600363796397773506463531227098637725412488762751437808681006835503074010327675476286225520890690317746786832417524672839584566728804139262374823024249451750218047639679658942144383778733201056802021753787972838527641964260659003014609876387636730046293628630748369369768226439476864925640904148251267494794558246061658365012591406417766462675861096183302729253470600193602748443730207459724299807669471777563917040486702640621158835538364048646560359053994621474186245247327298693669014948842516288887966795682078459739064152796628368519058311567670923835980698887066253984726709309570196262779826771444143026607315456694343901096719848615499290759215256480730364954740971145639506736062236322455852382636827407289246188848391978685597512180141827122356051621947500497845458143577058003145172081160841661739385483744903885915767275906258883518650506750087043164145247524562553335076373252372206562703557907843311053338327027095640650974004216218632426657575896972107649839916140626899182586181275469555518268655245270243126479342721303541051948435586378802491062232982900775353734768061599952409966307851878087530331132153190979244388724735947380976629004930089433394277963483289102895984154392168861323440344270738546034409076317208396569062003293324337040380745015823373499719794358487549145293447815939410455159558493034116486100062891326443342767908043252217250318437977444986086895390319131879313607940369819540156278870657878374915773030188343601090862589413435993713539567433529178951635050098452357884797352140271620254293798821416478088213014120761242446717692674544108318294802769804692368781373903946442152987606698383845957044976240564899983448164141479690291797905222132710770458841071388134597877724898429111541424444168711511916259678739026683866730618109518023208323738547996686100711601750408927659156223146819450700441921870769729579714542188442474887119910724754063181064495896320040317626009159863249091181856366364031817199039242345946884860283754623457922875244851659895788273514532130376211615509323778777958287975466896978195729251290125213640968270568016082025253238777130564112032685727010658550655122052257396412811808948789920414079731911618414278036583715999996428698258601619528593193533008124634996457798544863899838150788216681447515900942581905778898825340604425683106745764560700856571589550554233995428940551460602698383277399125362514934316925104160310399880006973536294446759513383286557848576215373246421034641726748291130389518828769123784058121551171593133901630807615740443816224942137704369958866604007977098559268217095264794934951761993143112269438970568581534634836599736872218038820495453930934042063218185648172730053298767970693708244093053984422806287344535347879512370835535081886683478648858137210399162758857163808925235787732759094212776341780857583797056206750420533350393937262648068499594530349288661457108893421905290673338424278355331502680875732011720314657996611014629079910715521759951978048673614103423808059531883846200549826202171702852519191367496636849877929990936649516630958240635398324971602299209185013295799946258514254983622651607050790715170936200516894011966282325543183957715396962780528929876210404821567173834983419335774138605893135841300127940535870791893428592402955520159406807459316371450960702365729432394498952699244836799587894031645322964605923933178963436640961232741394500564296692760233386220607486222938391871119794094319915394214459849695831813018853573988152868993253726086944364315357167300456243746448538412501076038094621394084000760840531610587707063606267474153595676078409732478917589697778457581827800676783577124023527315592358263780715480739160515221111252220005122103600801323854870648686036112867881559639465187861734550255772257008521252143219861092962914200523225245351174881109907590183780882314950804932850172621083848110818399757220738190558952786712109383955257136803515979673553693238505510041623170061801167689083121292360936092663451290343895313205678555276475472228718260352622299627048028474806933321237267962907233667724130691391552289842501689732687873184918472387834896922384792526471313732991284340349759903917795470814764607352941544034673163831287403620689058423628466245855121093719148045507862488128166261177348152284279093113491643848011675241118609213397844899338431374357266025786267071717883569441897790946609206552825392769075023981354844222123536344728121065491653749870032685401390134322057986768107730618739179351086223589463917114556322590425322379998092466996563781235710292196652532395763458224552408168944068867683078750390834061154649477328206296152518614381641614450556681638666270788285660282658485618036298814481423660855887693514342608996115235909444641734081777501940200678038555185099909368634723000744251328985692083404096306651512154690134172446290883458967568050789572461209463215227257453115285107245132795307168405401827978110472994404565083738416066486273759538596622962429209700920312179206019098682347333639054684852245987231807962913658461830429018500410189180126448173541646521358510827601308316328433496754101056260369902233550251848691624453822979678821822656502691217081872744773030405293363957493724159692253789853958707708619919783756402558111647416805908947341484323162748925293741789947729447747469797185074385611453672708893941692038104189630040034894743814895678180428675920611650887004728801532657354100251274250345598312377883477392634800851379041800414826661536563201883112082372538445536258956191453344716831815176396509784196579840618434219242502162937062805859616696251749416410457299643470802935737567007803834998536861216448552541993987516445664903616577604513161189287885345174699857758998510869584196196632678800269388280609605631664814944536342727891161805476262558909530487753812475823838188663004294224116673968210840090599342347117599183974977863511744677391399195007526148299081816949984205314803213493544080832564722994534872301821075602047151772156762253850036928935952081718492313074641822805072559954185869821414403263195332772712349339718851950959709227174028703844187765589769486933049902536100807678237624293895719315297966486612139979498370940693700111839680009485544702987281175399081892074664490588082655788221376624383496250860751651746977459350408050737863788055329542174414597850837183727855464933717084568070923946426739491287517248995440426743509464186449438794681198695210327674633459345451852430664394083563947434567444861394212694924919525831678151689527971598005723237890549239050355674012787635892373972631738234970134895856996238365102798956901425418523877105377373402726960488091901408068126499054801058432999967152129054816585506644278136531534450294876869203447799454646002034436184919864345395196268233656847466519222180653431836707146747216257555070458204694744167323049559130339473005618583802412581760301177221666331967603392758021605893538080967685165464769918274729101699704305141847469366383970201828339589017107844770343619591647043542554129318233403482968720572012111483343863182328644844878570708245688406790969985836929759021386570201200429421040368029022135355583235103428800612986099030333304343661133237841427798811744271391710603203319462993718024877645133086271225801346999994852629138905324651903123034620944550941964888573579385106630349582350331035981425451085011121287392079976465215439260469260236843183676455308220814061040738732871672563489571362756078800011572505637447884438119807070706016795248592902663810556685517121831847115578594384481342992740928944457817137848752252194364899619430194954472784257674503314694578532388803821560606727804726016644970079610056831827393925597847656946329865369169737705738597149877401809019624615174092854898958435550961534070051033488145132426640551370964929292792612679901770613794892546906826096290833315735633083820452959766794203428534497497994966265803282510228097078794865586008307453096387370755185655602775008062192171667776341638752204675064242938460673619864219630841505376123995641362384220990339335566820696589273992326762248769599777435056012380730885929317396399793853841221279650569984537523297652473344120077123260289803011521102231924036053094434762716221030013144148448735763836397378707407223086969636966502998529471195274127040841514950376206418817485915984103724606567715781670063614398954688698873164743998316166340978356014822705944842850451947958548333890290486211152392660912308257913810418689001914392826740117678107235002938828948388958923588205868671517095785608923004699128429663694744889270434800824921740192058452154684363152482434818912563284961652022463704507521392753242154002143616197262952733784630709586199039002500491068476529965189416108101461498137541073227239385650852424866391558479140932267598968617020110105785379271337397061878676466285938881371346482718825925274148320465481990557971843141706795537323184678767815981386202087422277657946111730483095337618630208295923392991548401592321016816578581210836259712547064077344990604032416977801090699888093390133411923607283403072196631404217190015214345876560276652376112685722179369877409740075585887433350185014715321979734679330479366304686493604697803249198803888060274230285740494426380942530327874303024660712347467249982238073053945032046171164326298249904728423658558227351327121634121741814021561084073138072115093439222171225132047530950546723493411538004421991378419055331679667529138831196454670658026767347765987172018904305069352789432522284948949931956267961816934625987937444275222022489789580521331667711539110692063391812124600388581006100597474111001130774512275938125808246773081892408159919957494695826333439720236630169682654458789600554446683985740019547415146290546749852772390943637878541348741527911739872596238254291093999541096674435878591914568294041416587831615817169156856773093455035292161679269179955158455950265670587874849199101847908171030064538023250504341301869114631794788117662072373878587751529530246712459038597823393538756100913010523425389841075719021754752046569905926691021987385661387952767603719341030830346138726036817340331131033261829949334134652884918742406099873209660244756649096659277100616159207197544603191793170066774955231541478163928211825395683006531007483779113296336978564975104156044577895690786549811004314404111680826477461500593288569793046014820972639966065323348511665254085890775084807560210807871048171054670187213631719269460171555059069361198247325334345797628105064210238888969587374833349012688093523649437843442903849727691351873172406170681242659212719394147648087175416332793137404660136524537968209050775732335588479246006436478957403697690017663935576788697455413449532083646931252890014054516188267387384195695509814011414922572320150389816820604304710016904953003523956303175174065012831637025608766286518433542291454675064534457296729983150646453735667349496290577659064262800962492047666533254191774173199843856008601450311799391770350913354028276497169923395744728500444334834938901334394628280300053545593371909814714719896492046640372547780042070685138765422370360524258295391368054854012871536993386573315523205074756977204859421970918342035853204121530889014344602945970028355737017762733916029621644354494349867107402195579378234782049414553700017345236711446254545486984357976872947495205412838411024653784144846937153025456454939966402502449127265887682997632011528757628128785818660226874719070521181546543273693010535206280806294330952461713683417586768588116268863837230493009019571742294986568085117606315551125835905937991022288714876698980358470769768008735765806172309361920944546141222742291287854565050420897451959866927086634769057706401343426138674770411574633565258877082310795922143692815201302298678236861437214425970128468401380322404374070367812119592544784537878655851686726947876210147318866631328225316064406576443222027626232218308410002491667029369375269096798078967919113538229518289186030065016131335641745993873487447664133415449862640048706251942328714320110494998372339289236921865987078255732008129239452228479697849387065773645713454472385968492024365532554718404038589513874871088736602156990130789062873229888589583583642805636460073594257723746301371228002141340125131292104148284949751292909298507221979316470000316750116306873903617208260404359690427749425639445988417216874734288975885287973613483213689261995298075376236594313785415560409597480098329433893257881490493226479853513141570505427253363243791154954680191508863172226174766016429967208401831700280286591453840279906634901460196445260665263584048826509362914028004087936588188197740618599713058271061709485165447465702300944090618865769662620223122214836214397379434766426306014241715401149923196289545594044716254361331193679473834136542307934627949906084531115623820686047984487690814652053636494639606715746513069661971259470416881981575772560153252765634269347757191605828614776705893389099689675220498629446497284893173089008595852725116673914539543839836752195085818798670852230279347516985871352093827709140073334555453530490809694110939506683238863808099298429473518732297211464574460468906932428658117044152406266972693322847938926087952232723806466524979506198627907470264680270591135284227655044921911044334182900011618359427346321798126370701320841449725705972840607248933677210956583636170361702150063823620655074501940244023169624152509721459699258050888640244401965098195186557617264260938876815139675745708614986130743261735481811544890925215298304470197461168290947738747188076848997599774154543183654087787234576521289344841929003499189682790090521375331125031209290234835778115377567011389902757094751154338481797183591285207236933713463868584699519409164644201471968240990646723449744506524637214199334563954845840235665818718114390264548798399001099053413298711128351075239985465484836488305923515113409834655279280264904968260961630980194103773859269302354097257146115409790356491216701973387421572140523313472055684160182087277175174693808690923954856617688675650708630603323696256726576356143532543790328582404680594946901599044193905825373314900071618471828872073305309126681271793403891175575973213782301736300986428669258235428050547337179131469713774819958584522409832690230809892293554579585020964534665787211096808442624708466703088036454702216367928096868690684229145285880618939706509735807310479985965064924259420115765943115595671327806364630590987443315642554282277292838981856561502881006207018531451187252293627769664283104497666631569747805031194133773664550544525885546317451406180038214320555398478795899416496366945297085455292798495561251157353580045015320552661235535042990680257660477384864181869662352358221143713945026131469064648525741462272736531601841186869270911013243489371213016669998470251950529571766019338037487433689870990555437428451978748205649412363006888217744822880227595958288762764775001365051079945450048612009253150494619383167349273114033309802300323303147867217089111358223478244414246891698675036188665586197828255711355655737156997575439592895012779031772507778693864281867597507422063588666664700454776036738960946733854561644394909217630371475327507069681136074057279431172289579292117320583808282511649546934097212050708254547943341225880299560772259963526324194702796898165262968042509564683933178870650574668979393631985204757713925768729733494132805409652745551141347762736229630132242545998000244136597387971106758211288248983351838768592642083330516301746918810829924232537943775674050790533667747329479292531176036374876981380280129497532910938592698643245355634237148369781758611555322908574449036219947276674811885719655082835564540356564084055788542726796101848569312209434011708358576210391228139621936362680372010166561948364704841997128733667033350686946269939919662865817044069134523157912160728041821601534289908948822897555611420297515064983214897674574204464939058235397200029575119422001201666851239045679211748706797905149173260782705356150682916740233022322050614846978629549301713660756904558300537503039065067447171098596078792846496199291357229963128607993000588011064586843647092706421181647863356911899331412461713900153495453237074485001018910377821108743516606666808126656678555287241327724457577195388423227560408795412768270130348283962791238712587906476715870737961954524247346142309167758295244386043937061357977692652118264526640031506606175132972280920500668471718588595652001722889897230994785779264663383897339786929756871627556506385771853526111718865423293028450790140796579168509702255277572939300486938954365016552319041434491232479526145301242592404635368757411237802820246095439572168466663611656920893358934726349391381599893896009495736833695823191855620844282541186698438882521068628663694532866515388697567472441417476765314204318660268461109026474410058257168339681440837852560937897312404968755004904152676398944055554269543422485044487095664113647020288580116305384074595801977676336023017209790851422860145461236024933503149407876499233243702721010288742140098188765519835422249499748190664233534772902897948649773060778159721442315248121558721749521017484616564009680885349678966460491339026020940967713497184551574882881825173632232094859962754940077535300153337782865263869272010728927252032988367099637146430521921318477381633122984073678896409251240142867270895820134451275003878717395574913760098350836958179674196238783574243784428980331894944347218063910576062864624394429635652415240726982874540758405427535285595673681990529094766800697167414461550048463318771581335359520914402057526272022271739224796082453972711755927307056154571262004549305390941212968499982261551555304897422115850431292153065835422991743478899391509186314601603758870651365407189235805952591186588080823539373336959669962005667872121570909474025934473120030046602841388233552261734393195951854345376541890649652623804015400272600002707873934008580316519033789625942004853812670260580176587343282721296247791991951098138698520039772824083854099431822664987296031531899382910610477690925973212580413543370790609990863238528739956857040403525407317254233254210781153978000247486141450304526275137669326830426920366199958609172679529979190867115270974776067221064566014236237409420110850570818185647656013246010890176828122262297327575550046757336280095941348709401683222950519699560692814416991622209143069676425788824698407122545264339019952210313928146378741418383658017476450677159231339940088286451917232461476829259447832242516465149860681755896231544354893502329670536235522195737389132164789096461269014946343617881151664431842184546502096291156665024812471779032559606860103603849884628150681925543106746338968607590355241064643379596569640415381790344698443781358504714167895678789934298300289788295971191860984171175201537265773919901555367929673653955873247917950501450845204872037304544271272391956771610358390925642606143963184646618107086516367624961004187114698281446893060039137824456914947687981142039199653077873519703922750114158919669459394115004894241992953305875342011940949930621311624644935387377427142437476526235321537309917425320837708948124329581019106483745646749021034914366562469858546359384998605595140058140433469540475975724801997334599595813757348933828952033830296922719459029848761775061034091401460651574862928863712678901315727084658013490647722038101543293194718901885643287978557634438540895264291547014978928502966075841208431551216305956554771809062995182504687372752648425082123718042359516983983827805488910120907638769896851783069548817082769124749325399469652450110723560344495440457353108079394663410489100116379442737041411362518525904677796751008412968662490168393232556809743272955256293346205772647748038781533959065390630353150176397948577156023824414944014526107969585911990044439788736515166395199385683734898723667152290016913697339927550450971673344539245079542262574782603188507161982639667456774276616768231196597363080121091415744838181322807272054738242360326809682092557128585110499314574531154246310036884039102935721002145864922452829590118236603870560700336767739060329415366929877820303202574091079672816077361826981484299752049747053327297318808861273098100450784231015836621585505302648917024517250444035550532352664852138846006197959991473301718396116825588594287479739852918228893448567911609386362047725219481616311414903606598298947664773695101074767956799975362458105440540107655352500534503280481889815228223716736708674881022672544868800244832110410430547533789603819832539017482818804284394518543471828565311411745900112694098725237052411221792310764797351638719550298220730619481468270775115073408594520057989194078689505824226558900173462508431171358631820724462992263385013393901629263158254414186294301288224370739841990699332495312487491946576266386907852815590788229198609699868856264068031733281865239477333472425198045454888107388079328443840595493025404000408833062827271831175376388416719357746084942661682950999926862949210102585593307819126177039818705502535800717148154685863141864402258482527730146556658986103318303430402666633046956660329875764326691432454250650308923699460266933584326426156452132173719826450567659065883027181121587571699849233979969412104911682025294376184094093211843548999853604617820031313734376784793708973681018153856972921626090436465800555956067382354458662805652586698794437604909008019288974199060686924489541913933645998998553218477330933855202327596856532608917281918213098516883122443638331613372994156690721675000910389189778435181422241136519555933287455318206762085438445256772512981879453215734950909893351776668621435907549316449683955756122573802552490017288974759990789119322552565269467867946483336515169585841200095636923358416775882199858704443621855640065861184118569053363337000915648278921749558645010470861223263502206484072640149957049417983424202333338611295733930904617414727856016255198839504268016681053312788942879982861057008937431759350258651484938815481348421387057999562082107155307435095096564368470153586110866836628683235491254438026083052545436481647226937685493954566916795955276586362317008406431784291303970083241401083781858791522323604236253537227509408648592835495608968555439517880674080448584589486723128524015779292066350736192707384484356079700267617027040016079854936730410852850979901792358113815627422624589483895958992430991946534174616521132227337981113336697342771223041622665570294533797386461861876891933617143310300451256849004157963864173796214355384514663027096238994132484909506171889213616232033878978308161376458449446599444732698813844087137906359611856312329257347284709694831204178167547837430795453557846190732321534282467806785152580772811754122489648165668542196842469330403924965365355522073304482790288372639524418290963083255842291733424827625917044319447214195975927228590563520979781760299601720974602736049411142060977074885560855319864906879434425583735180596557500194569992874624336470678792763793485026419282916283645162468296507351489296167170681676080395545028640338931582578127647132367511462151587023081514154634059648064353507892039851183223470012473405858445337835008635856569585304438466980875368907872847796455245429957070027733570211737470585607946969297593297318444966463299022606079326642577685514560962671423638049705141921222266455260183072619343719952818737258925137592648032054276491279582772750488666457310955089118557966889973810621392442999817154328092518388154182168742732739348499927923613600262323841832087544078957922773985655600341464130263728258554503983982686061358586467277372819608074012294879882205375596301789315242906777653232738174954749106124472172635955440641657065794003325658433073103676544151230551386769738261069653822976832013456565837998069382622023994012362739300977076421879565059421557935250864293121107886510781690693946066302520020017283194875606180521570158227836319138935889853279924413808317668716935513069061410790337953904800608182676039230445735887272402316445919530088101363885779981082049690327847117475556549159686620550367626900009202825605699576667505434731067803743889817244781634035701690966015681763160005714951533900208798988190044783488047878411683553598171444903168295418010562000284697787352234011289841864858085295687644042160862350858963029528601274587151422204109947227156704475964907661971296658908002662368463352297508509722802241324786401282026919014366818197526811728908822495583122136122460652806441369091020562940076163539104365661095564587734364691036105740245621642502980602266864807652072749414157394174774103759513881414812459990889709570904559953163763300778421861545531672119922087841276019464040363695284561942433501943385468757031348832596263792671350540431685985000814336845231702039850427715379170745843617942258565009599664073412271649039446194033448592822831371636913693519495071253436038674168158982979579561242065333373448885459000478265029211145589695239343321287051270497393981522565630273539252979656632209750897266991342938371044498158519836276590052867957458472347076837103214551470006789340751161208183900748211989720797228944011570255207397903991789530024037851297897401180272552960602667835985705080194644860500159823762245064769173617587206142830266742775869653190636300596571654334705894134016425077059149127780662212654505260834050193200050261768808996710708301705314135603572702047893046366953684123312625907493673682942025990794728596150016973255899119919563578427750443149145535206247285423655044275109973728197885886244542855431966298836621687089209942374556594794890798017916536126964360251156223898789180761554189091574561820157123345820632362311889767337668187523855259943556241394931675008391404668073783666875317481850887476613406486804571155393081309336911060297650881911157627120782425578088716588376092447066826376724400856942206623345959729918453119695580031710479750038113089391592975971936417553153474788653266409879759397368139575255271267980053799315191586037301581503805211054545930300205775582515007192416701806747349160306968630316792489126922966189614581146654601456135582821408482421401915250615325007702521688829908830644661924896541712847448143664694745339564811597783115363607912739050713925821497211709467792708206378376334592485264326975338361271194938009650083082286270630961797555632024733898848270728987052070588749396660994303472225530567757169398704250647636649721331523814225159759193365865067491638034927983667058107415868764849105964169317997416433275522198896050884270670379139793760160805104464113224363019990606095134475636631172126503428126762690973173329849575286275587947409328555726879305735403736927115261057436730081209589356084193174106222342991031438994043293544109619737433674488979224473322195033055765094467011051716168904209944803032247098838048103330229346758999969809108785157738315457506496587649346276581106053702267464149406173969673559885845426411188980001988568771382318727517397381932242636153121624922961002714494209847083924992233009497337683447238452526521335300107437848864000049001384567455020488363236003372040733654861102769727157165463723826603512082591373529210853742094625800251017831555772806824939088372113770231283140171358591243809570770841298746646602319132017885781173574779529243207211545248225941227578616713998887520826453008859991723332939667749552475035270338525785420909234836097163966728048206191855876782274593371540083809974314690748538903430511125197898574130874558569998155776060386338571053216258680767251703103218032205153938457965866488216887518659085602099882672175430731768065950087845958724192581009515169185155445079827640545852420600066142533368141746071901071998607629375889325162628283795622062887841266521604921566139794780570699726510890159555577017764850521797720321591445103325364404031093227640760523189891951751242391163413937969676678074598060481858904344433958248645558238674526005984202693989323405698612882814153160232511025093815772351187528306298252772501235660719730803889490139204074915155940263518015464422041348936273006515618161665352193788419861766245215931756694729450219114292850429462662148150791323236076702277126857158906162425595359058241810060914117320633921297786078740927476536331514636759217770912363253806902145896861537143020623481597028614774900966248081976658390467218707332631214259661445910814757808808307397710811854976032962164223620711566761543888997479072270766877695734191197274721894000745149023529140447748097436454705751244684792436913561115338701185526372670104364269944706541513274139201870115710524618686976006204715548019714878998463760550875694881328862372853266618660729444489597040007739116972502364318862053472171579015312649146701501088673927847653550191919537987652726499790305515416318047744697670126816757293195488371125576894695345093137098528449769606627752602117396790186672819254232634368256932969796399071766244290908366780064962993942087585945196407756186436873256912443845517920827081748410589954665909565887266448293303445766071432745438210435156129048723368514737097134954744467880064935137384145811807544022819317322885260704731828574699659838703296920665013240616424292107123936411557309471508539250896009903986133014277306114744255958228404231137657319483835398494523289046010771411040767957287002333140709295589012236892084543586149186158809938031212113857956904327330330195721686912303228317744524109265480832517210873408833362707182855191060023683072931655248860529069333878521861835760167573880719078559508538549976639756595623244055364963605235544186185984566090353375850051782511027426956441779624792133225465546683841827625642127423217606388511810280753602770563471795066046962724338495217223728424831163777135409459323175865470809791459480304052720727816346765321832529866452556210215161376901048773665493427043639889027243096709084482032013624122309602375896697328457012907391827546227808020185155121421815064415096069961637698399217121892099416083614790838576328920409405569964430732704002416437695184866740584822014989271196670442401526872052885679558739503566128434647064051669487805420351357246468289781961303238808787030363328515878233210450038576964034222440722050050859835750039436536109159883216522361895045615689095233066147293099377292595663393359404448110884830000452423478717443841144681650690220919183626282803021563761647999763343817619821984545708517559366822359950829205291341781677261842354957719243931135829236632710743782882850031162933551505133772096776050447395426106395269097366550505857069108623767766863634271847254055865739604381032981504106762500032884491492834801199220282788389433677992963826809555136604497066890566592560379045150202477712794744626159651238995935776735631006810675580466259248560136559701606391604782343071678267618957437913559263026623456683174770660803511222192095543538580964608612479476741494189130812676789200520598768135281201343753831476843201765704181197270083790663880061960973931740004836208222864781452487277654246444799751896118234020047355275706415836248543073462733385569929752563702732231333189874342462299572107678358625209066519799713541017957580461577349341966936403550193281103333897235129753187018318877410615339581579987650292070123515581574934117830683157007266346466503678680069636586915863912199988994941151377703509217756794085893153847624925189521769873646584852100334381191284802650131466924011534137748384362013354977117524983446323680063978634019749601702947129014422643600250714862357136434870913579718256024258339364084821527131193722189836444544589140836804173793213502991541502064979427776223800533150115300292434851860531574666388005694685657729595016452396277177955577990780448664894040744485361311017107903251529440000491891851959206750241288104122284474888869325622800361479409476497228406362508665587145830178432818782361573101289601765960030349517701902537098262714354438895707899580526126736211556633207336218239989871535635255133922499797911590068973533489400918605351216427166507492605970258233023807717362111954656113575449688506240998902473899749547263026933110468651569314539430741265957549418820689663448227941364004706125294486046741672440650658213186470732983968210455671934222458419480544848477959477971885963288652318613276595572259078856290830830117013700264913674903455074253263972893418650922329435805362680255846918213831726689970230348076660061941338636685080699109720221941419829610011313232362125602147836092480924170022738869895543952186153433734726263587788939959593903503877061802277506249124932538513321379491930153227681001325618566879303902654683992517496748175522692461232494858190677757710191333566312024011064816822458098502047909881380133207548190258773570729040982144044118689632821745014861901185079725222205242623893762139192784230074495168439168685495281534387748826146733276476360571008255297234816829538833709116883346006286585000847775436638897095598611393258827341466630020490583734599151832193516639054147771877060776362526443502494421555688369627439899837127201213241022473118375916231401859541385303962592176957145237919471173453447690344288605462880162621421075936088151545514602664021501431491028990453797512900260491393803334216059949071536632663279252135861454583729021296469411193920968327951858762829931810996553047722793133355290871279700904554800007676286779250555210415205171029636115530454741209591627127315914130302648681555136544016738936076233375362654459167123679580911806855434436782149570758562631451034579000526439316653719277616306168217246461170646066064954726385986818698053443489439868498017076083192816141134535909580462109843858640098324469487385216427941101577314791293336707964829773769991622128485104145488359050855902994079341268958832433703178436694730274269097338052692375330673184906848162690885741344608800200647954655019426235347971186856769129660556880915960553107564914885091019117648841922461375394509793973284194495370421267836674248660670246937107541809822327665728639097460266707250862203621507797920485596425709791999052264433998895279443938952654817302808942794011672344408633395884732732845874255685132341145138956114317329912321569770491855253596424757825612048930665930493547869062335108503561309384832091076958126988958374101839653240794792682024271523568658146673798690110314589201633065672406760043063916962750756274223201136146397795035556110579355813660348229694615777506378296126518876376746106013902801386874475342870554921353690937112042283755480873600378581884126436320436870650844167874030837953786734185575271715451254520651093247387934283641123333169373229585575055430577524982611086956485937148155833700614731560320476286218532637150502997619318763073313992465378456349117082247429160438650315194053289957037913461394985973973705681088196637124907593744669271092623943353761448698754888722357644709079711400571388757306339295934107502306276175314894690578338456430886714896176943331114809675765433793310445541177718671675795339948003528338235323571815908732240970255861018759306583528815395101443096777026902578703406266570915574687882693115743901173579368427011901930319883108662247135388763242631098492268704469514624137464128821018721270728325327236728065358222182814241366916539594550176083220733000467181389914654379857948618389159955788612593251673310107294681578298307295786367467546057863890251785650822648854399437191148349875533910869599238136680134557511575715326280505086002330021474525313774290793819051974688054783674198032059343383061121711703133790146235208863083142173269470561867658198904816733970139967351774647876974069302208322652493587133387219948138574801331487291024967621602733846725170135737251619450682586047495570344507147732614668535517085952211718261025983611117192534733776374967662384149379042553849155533273318601684631164873757941593454515178715209169845179398006973392239963110961319582658633357170543926424473599722282739129726886474237859955060666692944241140612359687151983305312767585577498547620922985067340929253487964124662251353410037627402236681480646079691657989312586615159674062321240644260423588451212967303357252786183117113470649543396916838760695227763769179182870986081950542485353054274947036455834594868895491446594011928048822304968306347832321468540483677347699437271646140070232028567363590740099536175268013800854198151022651735593599113928042476502368701145838850539443024554634284823814113773951328370098024822090101782537867653128437228505472432530593449108202662430040239945710593050091830132549906326482181788735437449503446315423876790026328164508001539688874574657314533953912619033651873074345940041223785757646219455433955513616148680347354542202259976363736920790130949167006788690089391543844599707150061891573347240459007940221071064435048655487398696697316101458797509315917774008254221234715253530750855568293197275848489582866629547102667003755065972994050045683103673543644078768530187578092436993312109789170920597197594207267905149153422804642925454476799869611624317746263376914869446537615813347020512633949486659016355938872207486779876889141995446228882871477315590659310530912951568670386870167103993903090086945347952698714029567931510083132028654136188809566946363577434930759224796013939822103135105463370737501891045245848101102917891445607336750342167319056873057361819915860096087422746511181366717903161114983219587121848156864702586357317250062811946269666023748728258516783173330464184081892156721888922186209627922957340870970501965340876720119870686828391178716306280287852717141725583211287721792703280405081835335425255342749486007918991653890138654223481684879046485938122133754110372897409168055523851200022384228711564844496831032917023336123296599635245816499303987531006541138307099609528451699401419999858670899140416639250723070972915606233418804864483561587440064729228749595395488680419079108871031091432259903558309399301955748483961597646964261569643197812958099086229122735422957936437624487387944461823847560545910015088875697294558262141950815099868507800235266440478053057812470948756049111715989637983831894952691838042553435421586491257488985758341144954249158500290353936174189642386656517605663569426677568028247920729885005673826255068283703286679513030650015232258136346404716130016457063963467876429690921149620719655501228361698296014506322908501760134986246734595221280331695854060553504399933581840598986862586759946121217473218999501005883125022466293983053813868080877550717147736383520940990485492531043251772407835068883670173069998132786269488832653460612192176719625586253822985119185877712626521044774745478362905701326289333347570801434605890504596217296250306425643409980550265419796297073388130684652184232526341327710361539705686540420715391577427909083311524948470377535693745301313091247840188597080843236282507909592084760261089246517385496031007194041196733372418035688996210725310081858402955898035828098271427606409579390679141545026773801333758837170536548690208713828386556330351673973919519343565827923289600153818073699148108389470532113119427816292826332014880603783773376089209836657445669005711652135237610099963991847834717062154449945273132741825369498305929391914005281334503526086460255850589188865408449673705597630154535575551909748538912272308737881336890944680491306166334136169749414327206870840328072257532661548148734914025892569286243800152272346521089416277035168325857229000966158279719280083556385059934613753517898585990647965683073657507376392490061916193758634981629815879102503799994187198791257422663292146034423407743236597415694816998792469091070163658225007142539329871433423212517207058306956276271830974086123962274226025386043322306290061553011400694219960711563560009265523111525651524396706839262314420475444540899545786598591485785944109941421113989750048069563310229274661572431081327251621357415575339556295728023971546273271361493049048614359099315814050959657003364118731479638608066190461419190016946597628368989555352540521685695810999832356238809180070046115431394726909145664084729960469099935086436783117539227043541140973292055936025439690643026555769040764509088669106397783208895532986977890857925617405978451714628931691005652047484573831721824765380916755620813800126624918999803345727696339632520237390428524186663031742916479990961358341548620714811791109987317041995996103739506886802613383015898574044900511040956983114184300758736602881533793036335478494377939441443120731797416418541575501319461497541989137242396833873531026787693852701031747281130823734236087450223613583142129898797310760127918087637146128311285959452548443610937017661559011839396938218664683496535824226153594265827512451110040813075161948704685607301824722190925296920989395446053044569144981335371999929296512891655021606354227557650617664805293403992132866784333998836664015633659222885061010779921920476197895994497793347743240589803234166652062185465346333481114536242957153054583666915269819046903690162659219800654249287297923817835109673100256423185550382400793476772955046530029995967888377239187217225027012223579567780215495662103849008913319779843248846312002634976368804424473328331817440583779528147155951585030918617606961519735954618998263565455699486271822439090120691200878050888345760976648750251889650975107002638779290260189171073146299869409540011638548968216101958344758236278732507927336120472501841215607407093207136214284577700125199948996713164121159539431107159148711897668845436400636602973958612411930588685793622613455811444727670804004198641802461324892191580343046103472250245424250762988951316316453041894261407090204646026871257498209475737193265630898157635764650386339818123734231555002663230026014988459943410151861074685775053187045800869415882115107270049316669047791080529926782529195000075683309032557369826011610782156125405780182404549294071728581281981737618161182665682621127081967811248596550269926861533844162229856354767823561451986485997195504379011511421254599525666391284966903287079894210434347292019245974419096481251708990135945839015596843587018814329640213163510390581126391969206689324810826733184968157028322454176874976195877040650356987051899158036283369818857514897421712481796641216754879506668134380828446454921476145510559724970872054696233333446044376871665691146028083810842483226392612117513425681544428092672168861315919034413936445029052292974225005825606147207110458915989300148948708393475879707360811603994143392132051831233104928336941753173433853931091252830183910200298534450799717092870595902633361828809383328544403605777489900607728043506942907391934052761524122912522915947060192108757631158368145956009194440876554746568683900888668346320165349940382440550088806765305208272430658504330567767937615176167655830864748025319445927785129367012641491036612285353470622337459770472686062539366931253233014398353570698962104544182440407704893206770934586198381298093834113687443190188535443762242066682147006450559112388366831731752216240469938443189316007037299440478762784555492451132125803223118617614867142716125433294836223822126071479642888852316761652374383997295910789122360732869509967264173872774022141121792840185221839590052984841174349996349039730998821955182729412912619661836693567592980620170526210343391763556958148876832419136408983194460899356303349209188019764032654427962229736168809357293676299186606933092297226629511126329101623777652504122792805820445883937532297225497391044740963213881264676578560741326105337650299778657283751278046151626210324748069331972584995335818055296991911072544115359182025312055805903709384993489619141381765080278397708633546361079623400358616727017870451889856451826868812330187292124743288178817620030067717743563772057560757994729195762063797908914088448782449278970098513641082332674467295475339306612383472578669888835789433281004964520603128082169576832794063559361032506559215208838697416822988406898073452142594982685522326445364520786151534638382295997513618060197437281449455657123216346184164735044564081827254671303273338470083550175544985516828615755812633902912946297446698675935100800886413081868268650297851059637978626495776188988059053076200134566808697633540140223612456737207576934350040322258501044811181103856928896634818756094116019077367516292062309086336950958478569112195066406656138158037317964724220864760411499812580007575082736972189890492567606435880317497151522401741624669305951754147515557147413189843869197611819716896135827822686632261656208887433358120662901859946690541851555475044469500715291897706348088865773479315161130277710894384952012138050203371263253024080793841090206030218590394084991140881788924050644780641330025086124787537979553411099212155468829476689782453619296819989652003106697368444684075266475348575563951901436177542178628524211074487947334163384469023356220754455801020549528097866029350080178781781894548981876120172351095094785365293695855492140349269873898889684255017748162247436223255223665375802362318811800331239296783343094907157670038123551136056934928093201569245823128817250362126375902623494069760604866281792262624404756277279491447825343241915902135816187180858139100998419802886153181983986523378555391456203260472573255720959373353299208490708135880621458793000836650508944920498054364977540655022665320741291925120130027069076714520719387666269383014852001511483328335170957805802655934549297016482265488146296160916327632515498272766937804309334257290726459609115235723792309540922464387824304565631678715822206216079608618719242375992428542963859346811206494477334133414393266794480490817239403791196460802432752583780375698942544096215570178779435303163957667911869668129947791324364119411377015701243070628717116317058863158677080539207569694408246302728680648721718371651003188019114128515475661949391121905582474745790092206998815905473880795302173254141254987783043254387475599837074245716175709030581878251481512372467369046447301621739522714583171683110990417496488651347899342527617673106345329077728015104441798240549362045413327596586102264950452076815568553010534034246474794003323939021344362168167783625613700713092116288741903011273659113757414468773653127659343451650705975782553381299421814713361177583821132066873501978565143426020075172340534291759210039554993919097489441610902525262872656721333023841415350762568537481557916810591884666408447151952124795707079154922071526635736839555661009853420902458645147451058921408137015967571756473748768363064859777436982778858658174331372877041740831674613456690943941800695350454264148539925041015927078788907144369239648522871176900460665864016669978138351366631916163370560135299332089145748585929317576667236032533887002481063982481759149772983107581025867223296933704053091683379649730541264435044544589872465179147270458591901916592359112533518370636721798453171612378780775973229558851240754672680732389979950287220198912108836020526663755320621003456223690225347387254353992740269417971026380386851971575641409741652162012279100855671143133540889576844970962317502921832879306031076667289128415698758235426286536295047164408492470094382244050186997723820499869738219234485520865954180371603888350935275464800289598540479325412796316614035329885993151331961386782007249901534686777376244265360128206264915054602788492827440685327069217084016653887198481986579725176633873471181151625414464710925585856234002102741262380451984414995867086159620675264178668540771638854783434752016269468113357665627536182262448958780295607887858526689045857349294676701475755821469747283789959045180157301520146090886634077910591498928226380970354989234589893830407163931597063558807273234577631436737921443757025391124347046487865449555980145486839335482956882943438480087324882335484583636508065791980770610075117819651757494535416192050331852929206820360068284618904744786149340718232897466922660822199215564586631859268109882671494086858198336257387104135899976376560166856783901663396742885867503028901516249433354867413788563965520085388672125307931593860703925922467334556594434587368503477786493783042136334226412276955721985154908955313080466939254996772031034144965284141291214164814419712081630564118147857666645078069120090049551391632367427876082664038105213826385601335255348960928333689061168052033209423800098029512408689338862370244671081375115344572048227952914900341772788026191562718029608730575570811228053671685269544019146625523472822536403466441572580352485832613313220353573644128073609247968231813281485344220390828758187486752949146663904490700474580420927968887390421576460284539016127521947654275962615345917989232977214921019788406771492792308142047825307926229586085672084853239327232709068195052577949771220094087528457891480149213074183533789092879354063257119080988758698275015095793912999206956290371807756673538911530419086131580908288314644811359057078005722294465968603721286111920710061134602353500099210768208528423300952993398714960728923987326579706236418012586151501330032249842102160342966105223776809497279167059632180465719494978241865997394198013615227219330159514873484144057443763447648534776238717777320038909284341610949606266521253107261118010932192894234937732942154579941057264679663245787966365660916873302720299753951439949858918527514736546425776759158906439580171760545917517329423447314026506409756970479721299939997158390571080747087314589126156910325291256905565113988152204146226073099413348991780010781907877114271475915599304316630759920698269864807058020205774085742506693054778748095917203165137641512579644634891280511163581114802533503408568215343437918691208472624624066548141919995678899677798822471882534231406823373340857425981613206918322339194017483619186929242929881593074414223726011347813009383507328332743671361228654593299147469113750360177061186018980592835311833767585967954026468059753076198853783258908769748040183382661235574509237630431286042587837700907392771035736081564722376337111296368673910738682034237208941848235186080746483047052821229446185770084171362818054570139518188601435059989307353770029158122467551312787510314778429990776532313559765222508790200693319209506806494990668892590784413376963273014313111089692009651431285927020153370521057594441156622853519421487380271847421797552641908804697499911630314829521147364162162969180287245346834107048317126772397422568900442104132697366670883585430480669552095319264863844219917793434132518506833266415394866131065287340844335198583350909284622577886427028164783769407277260257272737501350865205182432137712729784690215053232962670971843620321243667914834663411929862306780217248653927365957601051374169296066472114553535371388811543654062672412186932198256390402605773081201863061274591357009421944386984911415645417642214380531197769817112502129071702852017080182982962155919102663558017606443401186374882413339370784622224283462032382869470992833336472358632591853926996502158118304417655995614139598393841920888705345261991137372034620865976092204122240204603230645596342789272520350716019914403141949718959891688815312576782379510854929114376944596548739832352251174637118457273586119683535405273655253003392481639421129809865888850998234374549276064625383505643647727243884198302620533055192498779012603566896193990105997728457153476837184487598824676399012230499695749836780235182776800692461643220066378876968094146715626612096088643195848523063743344488030345426255587386112838650566880775862632578284018289082105437859219625298584215290802155523922382049292958530197419248997597643007248881899197933983039844253113388832027649287025327973507471223005356493917278110416113513753549414167822156630272139405696398963729530685831456061915372275468724284930963041518777330521869137717813273049939505792724814066474998551463398314651353401955914144613475621834810861510747406643341949603805216079877119328294422440479022397125491796466471835017965257569668514827613066929526775511716954608964992728277566972047776235308710808296639218263714203999142117215388741073517307844090406739734328670050230836438461772322889276148765687153771048932848867032448199165815611377901366133668968130744387371030940489240264479589755045469147127705487703322404946895345157339396302829731937960049255580836731364304475539589871324027951057392736579745163751127194101912099099099799664610487559307917517139935074446865133414970528329755860344197011552832843572430909176197081277912446793252064746565967077155630353818835832089969717282676428945610096780099108187540197401790064537156660814051478759617629112690433157795248043241150573755819249881159021270852185819127990086981601789769101711476799803065544963368643691535838825031832301676898066803088447231451391561091798580007273615998535371047635882367468675638153855268652972406651182974907776801751461339437532836224078746331801488602243398043106952256232658958403559430255010102543664137590624806555235874021555487765959728998063616255406587203822257224861543347571382157664600663104542396369829188966365272743092466210012134278734751158992056983644306196904620906005490989320039203669383271058558508023945745926327900432434061456089947541013409876272828405236147973321249528217839888407418217000457749581378493034870601835869796075230418886025119227616851647282752859249238595921494779786153768884836651717710161613146628538367978867572502019259988250574028900347242244059246564265760526070961372038344598128860918500535758333069233205371833623137839087029093409517192727419063221342621338712850062308091902616235761110391631689158191826482221784510589954755770495904755242365741948294489970164431798674921512779328412241908658137440696047661264000982584651313114107679598750578190737286656255665169770907894906436354422209782734086974210080020428188750493766558909481562821491690848771344113013719476552508281730548204578549640164037873374258380198176457729583457859789720268076541777187751957957501242443141932458974803797486278714480283002812716476533622803005393215999562189604489386103643534385077270134096755707058566961591766746727580856018787689286962299607618565210021503712821355926064234597474567841608621376896284465663005497263706788589811868642004875633067772646541549352598780960178376959312712767664214390583827039427993176914102802864604238617995586118941405119900352432163334133273137620653915784863201755186433500901589871524377948514868800957130356423478718217401259823262460814041620521578609328135531570645578866660574507605751716320831425898362340491369863696248533791607450276963671595132260403691409278211649805057289259860995738696329858256069502758819752183296051245862774495862852811161752528533044837714330289864238824494575956650499454645099745524818343832527336153426901120734494481884534782627950353758482750109370434444725420446604614484035561471199398219785518491798845659012223326921326809703262345429622587236030177113855537293861839407040616936502782491203595566127782738859449610578015028241586152277785030935685492768450606155285622326893415129372696350136795041628093869870104842738309975082923154057953883581755857672142893444467000745293108460149038463686802704503646003389451920904664212238653250161324589768676281314718991818237949482641623500681990070334948936693986587511056333681577736535860627583695176321462166224036181730229566634363538226858673581375766853094361479984153194421207925968789250351155672467311594224404873289129639530526281839990165895609097970358517751175625266035893066683049550887175287042737510332122282866302921177226073277359709657229011329403928074120444696443440201040282035921110106788707111623031486370962262304435085513438701910506415074815566060124277882621828919609545125359138145255839261679045009241082069612753485851540667935336465086193697656016180864133916874372248933485525128928723315496583842739833413746525430978585806844374524538983772067477565935030566705824103643371113710640258655877330824100954020797921907823631993627261674502408495234922237913617935467483527735280062961851057463220570419731056399178172150534635944788832778513790815574275573680266767465723102609694916802545304367262190315443542857634131679279757434572848083678966712772845281588014155573170265197853926783935330029045143484183023082486576252882613388983042949876548491474902695347621974935042574164446572229772217823507964930284704869206308841884236151141467897007890520922376151419978333153222829078380203255616696101444883354330184161647393403185681126685837118680134511704237233300384572736601854162609808706955036771876594573868044200288701996165408043662585876728323162428678646013694422271905618842598141089411235481110375127090967504005583269395685994673529994440454545065665886820800037903181703303573614211958669473245300893607179230909979563298604191168953676891977971239169485509372017205198775286940139504783636514739814630498012981530948421736662187972428748114480068049039307760952209702456168123608346850871732108033924695384548687959227859421599411878374276815103133914509483819551890059901789700105529757868428863698585564312414601435681179074953525114569601888522351735312849551045948061686528119320288022871502486819389651729368341005227153993829242680168670025312730191366368404564890323968846090678883820986703340037787724082321292621407945526850556267077120229049858140663367717065231842652184280417463659788168116053946684642901220951391023054802780465746741226548654843957516460312243398823541074626529784505399743038100715225290668423771595625262619207600417933576599115338763968764880679596101082970984174002794355880805731500557562101472000328583246306346830779494706004003367087078753836744166256386696144895714093626265351470597523463061077280868716897885022291006558578793611979706998355382648306364467056997849300567325172333894500790083451631695299388294224265156861426374782878549140018231512294605062153718544011290124270449865763499204214004486167199807096056406966827219377462751464519122382936612942668161621181531646015543957508745470889141824426661793719845565791661686249541283494388626985256539168330976979726699960726163243042694069620202211706408162683231364721338710168394070788584588341681815693765314116337932611933668249136230755610447480726042955696886707842842668936446793701187493485360300349873105242243105744478303090090813709873658635176138898374788978698162009817734053925614953120369324963009948384097625675077648070703008754832193029938084999831051769676133038298161095391243258739965994632044099411867514158144130935645151442246744708529675684247591413349074118249612308127157121218121615058233674212592111724597191442001163908167912974333049011084722686472269378863482199703185173877235578866887181487066901624778757208098083368819899143719536376132369517732064455192097135832659251783121611459818236452912126248779633241330774540021521782887503711352392779486946662814970528924728521927737370686795327060767985652300555299607133221400337195139361188749449541327783416037763908107396769153033320558908908851496716854640118818087139540155150820652621328706005678750248277620969893740885070022829676682358583783827001809323126563371923064880659976973338788913679064996383396831604175945785708236468942148168458754276406938238859990897508507331948140819141337564995620637314921777987423737929582183969415768475325092372718661128182474421027312838665209288894269928862796641478744466507243809880221892728298729173774516610999963631658628709087250606394855989143005496702632560620880929608649430495410386952528219161697387451783666394481820622941754870830022550467189880034058508940170000367994644431235726058662604539344138552595497758448526939944350416240660226825113898140199602559195274836671973848255712657957869892424464255883522252103890674749670242448732659477720622452120300042013790483539430651320436428577410733105411899409121857488348884594145569655786625181696684707392432700164001371334322942815019422474910811172825887844699381351734019037713546826840340745488245558946763749321453096005033647928988333734238445181530966477172115111728250247318666283111649839967980764455416898252501848074283559123990210422163902899107335512712821462396612764334059592862781271077950244372174489208220401854631997057765112283945843135555279502401904976676887389667864367818459454190125384733721713514753626439285188399286703730056988894652601807617482390561561017069313525596738305111481711003935545405089873206692495035518437452315176186001544456405882294175514653486656639631756167606806478251922979978162490077897625882763828854339014563714622481979454169327765396170396201391892620726818372985363346993584989718926471111312673249715531329541146389970587415503487658350315559992401556762356783197820723453169758058971752347206649572734153121808901276687166104914381419544130440848397097546119191848591622871061005750605974353605069949249039998928169012197244577582534887114785459660858071231121388209651257603160408056247774240587484571198954715582425687078353877753310071590275859290987661231302549148797703465596247550051015888620791128820113589393748045298021498049657572499832064558306589292573821202945575345008902824794166878154741243669984200010211842838900341326666899289842824729072702512389839715692570841600524746215689255371834350819816974506501538488731634052668010219037600014304453275886724805490813074915772993304710555063936660283531636619310473364518334798543389057954087341084306160854588268844291651065533664633597272793202786553394662070576572847724909583723673176765778082508363625844270233579332555847422965808489886823359119704695244560619591261383250503153562497810900884475511171085799061907223936210169832320793242404379508482820185107010697145845992411605927303294475818618568953301669097279951641727205586820651285089540194290349066494025455355532777265770881073404643585030859734222517228938197042813309377283474620658140856879781266682077177581807117792651189781418691849740906658302641460814334463306764226139242182955201517302792552911519288974991237290104914049201759151290007110527897004995492431747790381902161436443086636420707062312000176017254547238441759870912008082262012434591136440061375844364571249695318687129818427464580197464930760447694058675911028671471096983411132419074365965398608458080989642518895470556181352653745997570147851791095530279837071674805717380134172205860785633880377519840593038520259805780688947910480589807253091203727598428365193835894253404729549301377696914967784664949877933965741027154691843094867614930488209128644079832350855979681420793939619968954924701320921069849284153363749327553770175623443796861025914865733936382417798775511790875669465733800548954753401035893236196764998363558287588741760829598138217521730123021043840174969342827332150202554052958443245947039705078064922092170281449633398635518996271592986069248231579550418010129248997066980201197966164218349428467471515671500334992753278072093221535145255877881946473761010410699955558770506496298695611650300673685673697613053218001265483153732885283107504464577399459589144797355212409339500939072546101266491098908824642363397458831816092464242166112250001172598547281293588468955699740101261378639099863760398864221224654057244552172076755858124653937505528979155529995411125346250706834714215050671410103146487923154874374368901102349937570702676854711232121068435152882034903070130838104321944193620565957965154662651044496331751491463422201330842473402010670205163682478536464217474959698508174067775283055801457910456641744244753602654547412700981402176549221701047650405816432972401908753436678347506667822008321937955345206533700236038189402505120763206813449523942764374089805807044621536085700232680939230158595226057152012664475497248885250787307465389018579420723450396187667593356875485607025665387557998061907934329381677839338162036581652774904751791679591999722180575609431593836118587948744417054983532653111823385594726783321321404376932986830619185827624252405470347433393521748397264818656352188548347640268298165624888466181181826777445859169645699509282571673254974176510460766447224825691539415185922226196341822243564224917818176797607657154681043827716365281696766633290896486089784477325973604411250529695556606164532079914184005441038211097146819682233778900825082400868405559835960670767883784430532409600865081882886803694745578185817520593677578772271251621890074678717861780248977693509727094217711863351633410462641990227312410477743811849263829806101053145532518584087645598151981916785402679313327273013400181931310435025753405877597741665194817135834850475144142949662974987926144187359418436025831563486229890644544784710264477304511799813603113192194358093774844259801272420293219005639805140430234519775138498433295103306382665116025147306948172018588300888047430139783186941756483528971034453401796318159113661284008240348221534965648724487162451833129027830190768615911909806031509331163417512333462094232483706885481294317565247317947300789221141596121100839730301859655112081757968760385519933960609766895493130139161745360211742172387189951957060839539117031220517652065186003920061184152648152383901576703866505302592870688116584831741797327996878906325633035035202802844312245417076820194435409617638709981174979942937077184145509861041462035565334317938635488557247107114301265977681155090441582607626816736793207744929177243435872183868765834400330960591045005775467160232793687212889765524165142398855293312734781698191932783270738802456747828751514538018431038245961261428751093782558516399845095430047120980188744392783018086116116495209986392721525564484274931880905262907488215367605887552815094843790541476351171498175705286231678164241070245476458468020779684044550738344323924261581032139414587290664216171934038470652401507203038111262402644064189325772928037180678315059924798554835129151893875159306423337864691851266816386962663268290930600117762192485137888714893475579929390395177923520769097762844959161747004760247856260928992534658043139884166991313266616362129313668525280506057586298295886164189623045689983575850698230377755701626929925756702091022149188157649252187390128747822293594372378551188150067073540401943449372952466526957411113362141141262537899032892930945338553325778128100505982355828073804866918858239425600604383252511052927483443182885469212511111865780600675090579508703473415892347833226128721614942321449444535835062184657024602689806216118816675684843299590379359142133784851676291005173885994515825259472390886351353084806112773229847841480904955338317353513986465981617910590625807837630279460399553815457706110140436832124896638817888720180283312535851279745747824844783417301050797967799527393063030173403612835753344932259660480986209186022168149172880752987211896315057888909956233201243038502631732879874552779995204771086175247545035235235122336671415271693468400334079173278758833264107423149779801045545316433086551822676848134515478028141161488083704496484580673438620298565266093795330557857782421440491744970325052345512017819856873745073283181965252575447581853671331016473443378816818536589355772764103527538188681518234928213760004544064846992358354529732049768044689597360480435398556700164003100197207303145284934286317128030451364615985334966623380415544612179324855255165180342981084767592644852004633404398220417676344513130977347335999393957825979012471211767720326978178686650612893653929473289335260981799044773950030193762882067940810239644255667852371310272733786026035700353617404133777091794469035986198069433160680076897977728321279899810815466128701838855495067945904900291249099210341774196487260079776582226249125984982623173946760077987405044790797894114857016056690563664421144843228878872404494384043310467229079810698077844344493336382274039036338308790185230458909270847014835495537743732741708668925985706308519125306847152026675058131531785161260733656720944402647776250792215477023640514670807710612676941561407716200390485161931678353930590853490040226511643659096295164726924873974299280389544636892265780407475300019237871660608874798708455857647208148784327608821939571870656089017629464038610615198137294516365772776502875491908367098676678129876145961433344283861611648337553013259655603019381566594801030012044062162238011415973474274368113157194419986938434844991724563274233689359287616761484552667917245925996705802354737380512860863551868895417318305538496068520595227117801542366794249758065047530873134977050379748094185058409750969467078936115025504173061854899179169248866782560792794588730387384630751925285770190318631140111077500026775115883250844579180587854098452319271248235906067410367882859555262964437763239302251948271960728678047900699595515111994474850598113661558063980536605290469421489883375474890117670750626723356907603012227452997132111753488668097210059147060988633894739917958179920624022889301762158770902030204477470251260993201614551378900934340734369469980501752992572388945611676816255142192116070094993341223680601034093346242538066546465737381077681719264005203922051981347173094326465195733417323780719058396991592319070880843881389461437489297138501580160366034520029931643322935675994045867277849339768172543380575057790167569792638545506797017519435909524094515655223242439545811229096311230017959498975887254660492298485129842123906701052467792447982686135862138515858177809876803399772474349508644747258665265318971825795199439245377660854913630361252464220581973113185475662992909773510124517293325398385543630437334420521413956365330829776661334791314377836932971377534458372861053303899130966273121291234819912276063903139810279340651845538032364122235790411862752101519325598729322052484679442760990357180416745365762517756453081895993666446874306480209203080373511311595734453851729244932431339829421578199326412817398672419945053519183867053186625127858900700115808807463837445587839036184999915681533618916062849109659596357339108284387368968304174387268037351475829576319195313155599785231063824951790913504763106609473909925499484360055306769675799127994445481925062580927848254820908670675382141619773595652031635514137467795419894875739307235172877546080825835073751654634100965696717029298926662365903948295455057765088826541007487686041545457724217580789814251655207231365087806415949976147652758878619213229726991630692363181569131262874831505648592558448175865477244205077412820707232682384167479031552977298896423699838364407580656335307247526823742400351012424576761301645298020701284074362639187722329015638189197927793265508765161473930340277058310622160078082863624514242266992851267435506912990063280434870094298936616793156572931500579076452675693211164471547102750617760503231854969456639827838510506205716016488050518076980912455098826728506406119335847945862403885791331642262429505015704665385342238478719500245105780680692887513436052291880257060164806110321013074197080951002987850923285627953207440035926774265811338629555597410121639977341860460479209744423257417695458330559091051314993957686113746788645998146553129464140794125712857551429164419900734441331011731932970515064528293627906492204974810104815718015572231161870014118333160043573213912321026100487673917220371573999826581333685943008799758303232621465534385617627739810574918402576624614364939665264658076604948289384714382301911204585026278271402733325982407488303256612063226811840318670464342390954839674606050280802809237335506782429022530745173106484192018575935073134474969987531806882589876237112493724153440244854905069193822003340067125048519982016561494818076297778768800798196841236521348154189405547879754908848115277189449902678090420414113934508652237258881623585135996887408926317787384494920874125864396782980827590733269206949924712405588255323604465558288985076972198226850944538098942302308021371136330740548303403597091769090712640045229079102406425803135658464444512187804025112402643508785488588159275711450213023358529207411020270593957623563600854167705937589043155469658618168206734554147397944895381606227236176980684063914550113539376850772169776760532903480298977195724679824260018032285939460385988816072185465155292044919844996853803642114416436473649594343180245941031462396515580061157495305932848350942309802895431481121540486720187703396722288385034567883853314238929529906260880898945413102019170359926899556975766822057893093409959420765803936837185846003754537478731941356081102516685151398277090074321660457910320934672233059772212966538888642436076806569112940726570330806488749227629733049204021414279071736026520614584562601818182678253174011468075216624967079615031687551169284020535617983327507212973715011781521576660852914741105668295086481773100790036883339800654410004395469706970846206126430056571629775015549568749021109326764161822538377606956413832035278202362766781191376821539502208093028326686442373759026780623908115450082358385628893857464620441656304943841944390692245697623121964776364712182103869000280083052369881410071089734432611287194906310609256355300146517958141980315483985074229820804038176507677503505979722757560898257473494625911741599197063487665985822517139372198031883324203701556848121843334434539550772516852328202327068025383736100850524890016032222160077846239999387787082360316854330885815687902372177924578684172276299226073213078432857353419249314997430253654850296102405992875148835621086535344244423919766727650390996171557025940061921648918802536834570554063037341072846957491149252882850800178933500182617927460493475727784628709438993559804937277257210487440493366346061499851909893989102850918589190735660971499996698366714244954512303329472657619925491897413128348261461505731062064610474350703965061707597854375894177465559535822655908275805504732032646763981674167954945065587925664422878220018130880732323706160239142364222048339714404925909228534914608235208177263689605713487617664274951983834655306630026318471577532907308019828759644765262410346983451508831680200580692750414501786704266026874586175345634268167109111736325265556444946116818696595901547501188343547458303232718316329720542045758691921204744269088553886220493775523020523347670370197631991154115945402478919691802306432938159519021902929359765544038273566858416660903449320873923781433703795416665590063251535330338273085588942424421578685365555766331480256726533658410233037186270485550198336973225002794350375222819703462375821821813205258846288193288583273475626453863219578020624141197658433277320329646729419305256561502092843496365897871245537389980154546909195263583567526397425225647544321868946098264488286069469795459906565252849228036295769107654600222751421888560919143125432412422705661962256387184306311881970655139369860687803617320018483353324303417528608435695767095644292968418211078054499945074888530846697386096680685332550433170445849743440767616611278337665481713803019344671483417446715981354181270229124799865995561079197375793243069395364401637361259739229273087273820164329159845549098448412266644618597833493766335341776114379783694180358656413151959294276283594204131475815767308305972430878106896357229037454722479126825488995549088867070366543323779633713126024187734415618887767030498866798661804554399637136698542330899736223135808642030608826601711253424088128596929398317897224821289065811630444952169435477693064879732210258691932814726784604408270261892497256381509440415616390517255885643607204848758536649941259038090928963501793672084326501571136631787442854447634505841742368702867235962485183196497137090846889929802098966261455050607597553924967072929237378879181846101060361608735493312150757135669101716787813174568787816820421693205068077173227065753351653369992828823241632709901146020926710464995588410777289339307809867146461794375125186068186964704545081927918613438377216359549416851396545762054699242618318464223472709535310699378858237547887177653603353880550238751284200751096841927896238714920060622555398554308484606745210721299966443652230900277078037848429617539472549196090748019502433304738352348661905535690655565757853221945848286170940396591543187350290700511870988443384693762172313324565413150943773458495083303293766195713666977633985251330433061765276461824662028923480572139659582247169214438529471960248095467982819141013800276285902972880957710065822116959435380457379744248390254875511851226731536871655244933937233172086981028895312620314262806551168993196298618158683301152832205220443532890158791625420114969800036278983199900796795553914481395181867582819893155029637012821988287133754190096477767486314628009165316429056290284980478676677172259083524872310076069464154124686796548651227051542822288045766956747622612791296104589750802855016486691779616025491478167638054025777356940189658487839071407919868633227274017787570362642186671265126779711685426688000329859536360599991394852630599689108749913237125004007816760291988133266542718181735782314786069155189705606422269720170237796464830510055884494173431307356448004384998162648406471023096817723972030844499908953291084307060532619005669406512957992444899829713800486035685417166504356818706787568921814235622060797151454279319402763934682821506025124592268381097044177797311839932084886495594616764381877823730003808766526294265121918923296673827579169207310404282465001309325546471697822588934590795957840378721142175301285665883130008625897486378552429090148253236047662660350465176366190263828938124734231083506783357950235758846100129008293924503094482723643500484367820927355649698129686574749330407453767827891946854442160619149809937458925591068421063093850854044231307412394809757793527581749150894252971227689289690385589364094088111131772310694143671940859810641447096668498582801887240682271955048477098750044590181955163652898419603539928056648126653256490759407505993670963741447672861538183162837231964737132242548804955196444096115672922879665757050970909809048515225594545920891490917862310837701282630211836902792842606345659047531418683074011869505932592035876317330824518297214943327126053890509450451035159354685796639364488802619002228285782138395160609420898541969341694347434249346721597327228360012616859130627406077156214664545266357236133560408845152381795938833645166557050613288907137270328957448599347893847183252776202695242739650873406823044266757014279605047363326999295996040898541755645559372017308074216151071440347915185335414197019282201687462946415360482771053067601642128929592093505459796807961697623502271542465877815476500530579844372331159183197857791083296827798685991006187707754657498259465331243826291747773044558424034627003228230477826501791422968530294089024258525909426503562163653005605863791837095789719953256886689279887891041645368081504476546784019676025353390931245067162755272483036158692313108512013420734453741197555914344487354359350977549115508929131054639871779226902425409974765595234210812090375639808736252330051709310583875982725999132008415921163276106064281582216952842767589979998981395387487436577929485549948715548129856136345305887167383540960177843365003618015166713107160070071100323594537735314171699529714805769706199128122434322399153362170155033954713146681475631507555711918151584245332961089852636987344732249857593112721389061613232885525173277010069292223787711658414365601684576389308511011657832193979856440690620805030758410470756379660857633398879022188600824325561254888071932216648104654080857621268482964489777871671158764658152469683721475194488712815459391514906375780386607911875102092422377756571988009468812550715525984435529936690778149672539854432275000009475132117027126577937132869628630730315808273429687996236792392541490744760503061864935758691794170968943886703286520255529375880233850757011987615408135374051858081445316147728544200671604629930489054059873594226922537016028830868909898257138244330386515270492626656715096811132288412516749664619625222634954707386434099405575083624271285447550677996086734922049637488144986715845953073268875366890007018892541890975139270654771952609810531609891768537005924221893935478194918870525822109868143494358774374774540007722498782762480442465633945184724002376249277747234690360814025947454094399416617893692900699448327124716287410727877833762125211387914235468241190777911104226473003804370433775661133354850321144412561519075604224854755167235400483244863939452753460754871556723306501400327283636758409093495071639182767926485037920292803242372427283956992838248916560022123105901708564673040995739276301612443273645667158541918326505909172525547641999247819534545135521306754145923583220207325255514306280914199234167601627909725907312826161570221985835813675431513864861670552615302089666086525105957460217041018992799072074239998568503482107437168805268983801633982489272445949574857982129147894996457972977557848073512866718107267319074096431691703156900949152107493559032064082691548638927657033703745466056047727758584277313964617840774146014013198922323753752838906566950873809317359470142862939202101385872107804325046909671623737322215612377881599966214056649164294380000322775739761656773586350583195449166723527306144391596793426195444898135483401423065033254419689569705352283519069844065147399284690308165730583052118683028548313497969695638140347464682014213157923192124971407442028856339047864741918061718198855125203737703441426247786642227077344237333409040348949740928585728690748146866114648293448665958652639173273698177322775618279175864599050464732302802823980719923964773996213246800938628202095428183224431397735221653842551254588239274900593142856784663540988703479755323103728930864636515054168166925613651962370396386973614211343657982555296823313238260093275111205337257980552424798744845408142918758622943016682390676689753993486955002060247264036408183378980891751940537168900304811004885031762824171203775231180837700602539766243814408313503833662197729631647987510835055133610601888134031213728314490198958026808327498531907392349191711068624540973126993155915180785271777786533215805787014489706041306590183402270146608708569675380596208035209620041666528494840877700943149861388290224341235251116432173400670331096203239060252913969225174888218114710171623132214223125793148424013562527706889451921590241751647960951284751009935981110957303442219265909611809232773676389318936553525974482087673178822171651763954127502959232206733669494736826022691517651873289670390376445778371545061502994556248222808696315638807260472609035556483167844563730782366431371845803009930451179663285307692508179504976551020891540336076497020478738003748567134668315298770919537726514088577978068561986372689891190741308868427158783443341814326822883159042453859629544745310200812783361185494856177409364533248233791315452730726746276032443292729213369201532744799920873574705864472292130704933499652084308147485503630207834607012330862705262849052848391510589030567084519034028772947508344790288527152802847719149564424636748243770815437459533868486232765296185228966722699246559105288351377355949990554778305712507332585987459675072223597123358122698805239312107253122595277580290184689232587444887264512013906551791900504317258977085020207936048700210292526995510370180668227849496967980899734758377931273921301619689466203229694167702343337607887146821851351522635878309436197236819237073080268392072829845149975684612126337447742219786744357155134704103698064801930830748236420343539185515481145674848042304873651603482767385377650069002939613873701027335655220065197990504995428765562622448681537802906733699954308263568469410301705483948701848810689619088634951982097803250152532309607802569661614521640748157448352566996872279016206835408053419012908861860925550312243692302099923864880153074684846625384704310633750072506776019947255135635697589512004618516316853587835487877831204675370007513456235357729878941748704786264940014094604565642575895777133872301191730005185025201537948331969065976743556711797870094730520305725579785445113608963087338320953665735069828946024708741224456814617914408908979524106384405600399843617235976470463858928216507365239784076285287876682078693373097284018159674798204810299454605185316061523249610801735736958154714386990186666823423447448124284931968603737343202254005729827941557984398068595474059073866503725447974076119050204364859654209802457987353624460355358464747230034841857047829769772448212962922152235651930841366562133138677979266210749210986487648714672023166012057799322527929903832224368044834429562901315034367391160614325650060710763190237877818620967227428454766547769453903434386036783940998059431022349954357868124047572313136383841151232504308137494905489409748962315552858013892103292930674846907658462307690789074540504658152716761366922779018276877122862080742977778219684680391368879565875618412094978292585046602300426726112902744215573728328132937667281154216225968889856603376359718183378149501150127612600790527369483775728447307856016112556188776060576924864263799119371563281387452991327465343256560527126432403246805266630880350205325799014286703832754306048777401539712775993452832861110364325016107160172537252901266873605240760924771682494862451632833054616307688298359736419055864298530989468719049724147818419067048762498269218999539660728077722129996287299247225649489728230136886301528239327615725364243316092217156115997523183242567434475812399159117667568780591789745708883425943754782965981406941286644944542673509884722899097456853519076526921279283791035009350131710067627679174373510504228831329478922196676980727044913275384373017996429977578111340483929828281218501655439152050854041621636618892516073170384306194745253453396740404539024983503825283271485782647816054735152430039150830981530245011632869630670286579509689401054855479615629915840508017524198415995955964639628240047435433375368491755984481628858034556236107532806451196760234333251152792279697954824228438301458829137598249099126534995088761152201499279563949178930384481550900442133534391182244563165384343816478651933850706655584278196724228751935770474004474500678253684927953262985522577514897484351932885299889625478500119027013825189390682076964166332292364473806363688749230676007654471539057104468819384592867521009895308919357802757519864113871402247529333094232398273462828100974735131655105519130139628915198915434016736780388695571548879795289293007967109098588581946593320551330909087686838428639731974899468225535627421591672303854439877191333468118117875978492287187140723118159588201199653207232175393742708105529651092788029515030579078811670416301942685235955608180650038451137376234968983552062076024811399684665696554423408812568476967764380944371584227216884837511010127548073349769768659353119113740434330324660398340106432984724320933138768446210046825844444787306204441970669564417800690114609460367858867123739098369771664555666204517341738599884541806868087089765482701690528534053875482310917434177129196663937211573423874618213097225803888726382917873097616629158491746571573617645076322353938289196762018012913701957907769328178322014765507867086645857028888021825536892767171665290890266600958302632784925041997843460891192498909100673850839830112455950864655936356586923727460579610645815324154364634713155378277229481987109988273313743811761248627263300748202481635125108660896154344044990849226727756799316713420986378615476194236329352594945487609725399151493971944448349914440225197383102879012514959594034510657175595437185761928380022754883863379238987356047999243963316828000179785572263678890939463988508134134708191740331212630208291489512169014000039189682203714806537288347963111094771883821801104455464684026491665285094559401438405419979441414481569170841082337346726353329129207358119754707233779724005303204552236830285671053844959167954862295189474869289471877451475427363611762037763768482983316926269282388907361856956859521566862411939853764184054440546778495546957175443404979232295091690977820356881726730926603572094630663484231526438344429078618358815908968516024442102655737331671427564199448671159377900302224105565813641260310069203021137731035063357082368586306478462923402421370390506305488475480089715001276534244983368606934346092366727671052712753259736565745417014153412611475885192449180082490418289625485489223930310415806954194780324308060881853150436302123675297218115833113246903083752615587348852080296833162112389663222167180594327104394406724127657751049140254898061991230140857922841447209372580177437688573530295475062375720125668941671827259895865946387547078549511962087721884807930705055732226730415803836446118366106885628492936624759029089792633681588327850750089929499577787922767993962860520754833264073577736102173735071273215451393633587513223843391422101918922677593890296536095258665446064655755850611394716522223361301847118298636812924172186178883978172996200247326599828283073079772880251271333665363840887793856974368983654718263574475683830269242578498163978366138280245982878402285151628016712026780212817068822617549461131842568375615825305387005517927858390006395682023188573744865124451876578292274446729057142582639268116570309578361519463365225139607269767664515021237549795671853068918826725186894511606969908448160395977426864188131061001135479826601596104349590719969557828653359751779745371795736347658565295575376102530561474479488449209627922208751535540878968563071665035249186974093876796651248357536628081628579790486244089525615790711006004069284965225174212778853671013720156101278615208931024823214298166445703729835797287420378554351002287413817128661206444891042574479956499956692849349027020171941550279386284331611260656046807349607757554577664073472397348568289022618605028111010047637042690441836187537193980560812139460866233774701957740591526555970766422397657245748348289796360104691190116293109543159884247791194690867079103878874903660258206846638271613687009860950017827282789682746201796372847732313719478182637401847251793746078737397524375982795467923663656233921261711659296999705934566685091767328801560865552943118700680141286159141483058769142447403387878318499015892751290235949739555678551155591335033568587665706701692471968981571221594871714450011030065023243031269909668463686971829533387263687003699779239581655412840834617883073208869617658328290165677721663005583654432111741111429383382826542889829171602063035333154275067482288113884602960818310686035539486240141454119557900119513963242821054952502587618904008301116686181171143971304066640947733282058166867682710832310283887645216884063797955602046642895206666880480953395650177673094756068464177182435180504145227316752406870773383358670253449376785918148860675104916990243624281647281600165208007140679229370783675542735836363171237329239320223620556992761901421546405090107871546907359145987256247360870139427327783904863158928250410379925758839098898571282681426553324241689857196762082611265829368888845749275323401420973723113914029522103255347445252589760669046155672086519778051332310230518752728097062580745969523988028324021406002454489179577206967619102988883855132735974561192132655191488294388854948634295667502299340488038515036163350118223592073251124135476937082965656859022199577433731057751551256802612666323258708589099101970392806798812366075821489400061968785707565766289023416840481026121245611584722234183086713425290660220465112493836499129553835561060137910053742291034601329810700540671442391597011540920615451410350116769568947292848131576844193069478076705098753977206837710747723363996620891207638607426967967675016461225225946281929384409011212890637353985626239183056968779522455904224608745466192389748636940718678486294587075790534126402817298717442512329132919814594749057727646670373967721805465407691218526833254041622869571465356514056853568457350240988661810272099023590690009204623546610118337134351281762809464605011706506998462268830022645896741760690709520436280351232285570848299695348743490571844075176452090968952444248728284694033707668146023226640527151157896548733764000312315842514807590387674346282361068018786946380955965332247974398254185231242149792081778879480587210035234770983392871580648161283627718590964547832003589537592448298692088274312569294794035073394133343251721673425949869358966691564792392490216514159258457596549205616859314073503752074842101138651243503000161462898329780598958836742903070504708952629327555852571021308550108451622062305240515851306091896993746849824469017699904421175301376924330454028453693750723950719162449937720138974601888504466135792457793041115494348215654346409200051298801605083285054037834257922149883017144518904408222887459943424136082459726045266070091529913134507746931890709108714729418240427420754447971145106559269273094087532615991331397496385203348911095651114112882515337223320474015984065835461882374110315064398180445672228042962489343592268070238260323253777032233942623275744618616122937873991181265491160354856936018560287161328286771413831539499396432283254735997599914706232659368321105380120690897749827241868204935750340404800520276074820776110436165489371135920572205772038014031063986979689942898302544928254176716525248262897839839751365906559334320269217563165585243269591553960674099967621330258897364101937605129273000716925321122155688534677639550245781629889204128319841224567434048357579144929304853847537968565738355542016270091571858391897958492848984013555510069083484017176135420499498279875356798541608944840960484373611196294468241184198404119482900559172184474755260353674430545586962881317099596807429119433133502345912941331940823053048402268157296437413584114253603072110892383451433850743569280264740075400763578055534212419350358828398854984823001578398679529269187084727104022695552163423841940834550528194491075406497647647932754757815899559414512708643637137109659236100213680423765955435358095568820978531969205861273688807356726573353738317496739276498351406919979086194098277682902529291392188748791239161096730854715585772693505341190878703856357536029454727922172399279172163197985165627390734124945840681963916800115560293852084966936115407672226471142233381248096842500447141082687241483519226655537883659265486196440535028562166607970782581410965424209963864675581082200059808554848367743631237175491735631999472543890585825646727220418919489264994855680428974046645253400731622529423543007233147679684677890400051607866776294536969882446945173047111765999691988729556974943953593832190915672412494523737031787817759938822247575874446965442172793509838057164607245701729698178150857692075769617096232805101515784958347249951205471974467328927398701684953312582509672874584662761213666450377276343607621444046113291308175818963801717570758832228261997973142557269175365165826891019683142827115608123384932422723071259129892785562870871995643473117093363431205385735955584242923329009168790862114650172795429061217331423752456924981410344950944310483745731720997492638064504803491289004898692308130747112969716616103078194463116952487329070196061909367335737248594134484125881426720009444436545727021653225872400457235394171848647521153987913107487451795965340698411684382982321229283619479213447415538551989826943671743426216226338826220107528299873304160414934989668224893286203048068577519289378629779703077102470048827906334927749860381413567962361532444230341765488525569784588994995773255344417214682280004752182812080480017119435646292780713809108566553801739327536025868223381396578450546501317149025583557004208961589961319310363291391545500067107179050355229147512132672199131719236013975507617467272315200510264284690057533890445242182269017124581474644377464117918978179375378028425391389027714560379968666170308486205221163052211465163802170720192946045213277745145654407628207242554574907710596920114980459071893949138488227652461124540967959868048757546028821209089621191767060929585454165835178540960781906207014361104670909049857843307688222431794399571825130806645537440944337449403423954869663232718575126898558291474761445373805603312614786991215954070705861296020770274595488361491636894506017413473871666726420816886982226099538401239801345805536673546514722626930149325519220529938968362862506356433274387100012438154695385612981626607571572048344097243027095343009583759455098384442169906235704628620280804979338370388299888343762223382942544577894091924299786496441440299042559586205311624900064112630792558709183821957224352094595006498288934678476847407486352420783743631372843729331055018096780281534025202394826871781125476167842891334836341017636466512609960793285608664776638090823383897119564027990738788797660551668725190371199144574847922686725202809457801001248234803023559015969490420661446175349599161739706324877328533117033765870938612544938197854461426597520841168403960491584426521199569914456043462213153006763807170366766762108034177770521086935318905685021501736484003695537491009337234054148701866550783709724767060510615854358349873234032854843788619850112182608189018653901939791625785643052056229238139262599298501350508478400147671026149587894647568650804361486483956360692535534132277805484413271373380538343253954678369818064583923774432484245093079286441149697280253201076579998900300454990061169642743227160116700673682269316506411099212175601942301636217043460477274593648626894972744954386955593341584732960009127346339852047325931737164788470371421821449163496225043593435135863133416121356876573838586676696276511833191128100095365251024534909919977485286726950044147326063627725501749278146621873098841654842129599918361626851863459644596443677399323066288327309753428888731004182334337186532342671432287977098969625015732675220736786416805775263364045869836587322711697672503978829328415836367922440385693658043100218299388828017713513110567193057102791778112739022571254480136132411676598587051625836327827218043745754349025908077744441870884315851590947707605257275666263515934743940518997806428232150145791018272505268806778604447514614433564286921456601274543691958223446541040241788414656387734091064661209210831887892212133910711113309575899671412893405697654921312748881201469879778291792291803843955026327668175661553216820193122920460380648769159900041060238748743662395640088024045079043110779224405969982099811962389720713207299169296554270464690392098345447238092048179695771177047793318129414126110167903436763777038228188673903463658632849353721707125403012896992286291546035532862703507072792673731950775201292094105312586774238125826513563617892091348115039201800661451700283630646315816671146842029202155699308218131814828923369959111627774862388820043357186798968849547936572424697326117914336893520615434931851635770912663791437311754056282657135753177197493571836100291295772960320138590644547921474916674854378960222107744327601172722394300003349047542485753851782926846611254645680692647738801464211845734175485831778299040592350860707755175526340820994657913572846674921562116188645780185585114656045158154839969934201758069517757346028467401658071177275161290657844211790835870341186061074098662862089069419312538689824585697790772774705265000349516869123698636375483167867728457547528544019045429444179980879838129559004862861120796877076325339400278079015237283522886444644135190128079063559975873880072953102686270106796458952331866741470700443072771002458140633326340252690304236247298887750174268789843446547494934048066896097402152524902092059198280378379807409273406566311154166836738404985441012765989173067754575734446986703859347164255493243414775553627781312918566897665220523772996290502063305761129225370239625178612049587388597372081934455421129576627276616602018629279472542566076587206363684328490238407530286661687049828670047932006801670298996460278494214666131524382948905502768592022553553832763227251905129067705788945707814589543493439068470413881448784752107727694151225324029032386903685879838827292432694661434033129168869449851490559804690669813225023119739925687019596960972020673789480858255360962755435181535173775372577672200416313142693082801853061476507530098254083380875795849981131585165278748452886122419807056473707330822707395476036023909881937966084144572690260289785885165640453220293217552618546560943266431089683933759009576301724749338287582669044623197126387106132228074481563679582670812057634500325033410640049150519311446913855014309378110013054074442002809752826127074633856822258227853489044977017450897744917266981632295206502683058807436821200464728289122736965572196668276445822967675133339506282551249893962883793071517468935978721511864449379672644117020350890697691123293369820148214863096792513175439528250296034682647450456706366815241817073152495502570864345441129266318484758338424611578970683335373982150742204055960340440995930123684269663344201542962027817681192324571890193347904724880506424049985386098238637853823273149325329100033569012154632066599945862036701364376171207056494838170926902693204447949275012140219813349338193971696714360156352333347020508196767642570572436750106032456146225359935030669991715433997438173843529911703123665821461725273761986337108568341073522925490198889483076160516773027875720441135473368689656857054993683523664978891606133131808326543209572048861995190470398542754400160638231586154903527477137206488873788110096752967580302319677569956539405062607725870144635469270616568020248515217168270148852435518927044011640357835825909139223122941916143507333140535039108255584410163767205314160465224856008451022864326268737595930383738132688893878108840765242335838442978829961929382627363006616110342736756733122002555175030168090602852396388063446670182679814193211707117723565021263277647334605731886905589947995131466973922465661092678683655613953546740266205050706416782756360623593694368450820002746487399188164317366986329334273916033143706223843260066779242880375626012293321154239747200423649305395117155532888337788881943140148295821391990219740564017893457428492218315615444961189765699670008404782645457401794644745385971857008057947029844725204766950327933159245380169359778813933978382614368084099505880768809441398556128617280411949374736887518957301053262159466605412533841855173597601719238243820221307949633308605882934356997125219684826679507811684608369514281139037087140316110746051520010172879440392683801961650459821529870082256697464858375381116416755507805861622844613403304505284583786403858988551244176594082757714581275115882915094542046837130873136418830908933921443814311603919221251880037956788362763313672222517770300659240911223123066917030394211154875999914336156220194670385345005012400950281899503064093442995996000356835412863840908804471412790246423119849953297174989220415431682748975433814558381543829628660257570148052426686081031774684638689445421249217623278381170590840302087853085651742873458925047439918919895229533060963075993996365115197603961031246543199274009831311554217712412805661127995652030816534547151559502224050454517614139106847180471351664051178379948383543259231253682260199244229092755820823025072119966679136456737892025613025178150595598065122592213856129277831172796159435561586450728185231299315711804440206925282221378988296318500707636026150948187824282073894436362404054277095750624307272253589475431832879174452141656566679044790060498621752984877147319860974791447198633543964698690674258019318927031037714825528171248359078115366452943267595481877008798892753911026657762442041828404006103296156607975426296279608426335747530794799320728567870162520881359932084661675038916174303032388810029717812824732416010896344155053247999811310972605634979584181506238967882597207596633083311336351918569634056191147535172702026749571602004269116259444808662429275469189469148546297852630653222067401504894694684027589710656610723974680741889503466370667013211431188011990913575525083686103976759054062309177058178813881278895226724822171793322798627236063826878572023751265556897853847385113424293616950182012124395578742650894987374148645825381376660052194556907781598729788743230704111556894056490373044056194410840118437619079955693258237599632609104489523697289631265897699188107293339343536337127612833556144976527911267668203867881241212342226384353169183554968115153395558077582288335026677606935481221476539601133943926899676648062471713495203333432679684814842946597169243935440915445930808503805316887002394288836579296266077715403986668663296812545624104276813207048992486723993775924478104062823821595052428703703859754605501001278221150064832851632980164323153098692032465483962203092530376935567324934337843552022481118858024665899653090733024205274620467622426758978793981261925062874717871061389055682193157719949463711310081525350140190476277179669405247179744324695584165587186305452953344459585638104122879071432709900934705326630283327368470109720498902091854738809860554113288622216036118162166719934624263607215462798035584801187867637253657902198928153853797636732025978847192285458721109344953742708563083160073385088024684405353019942198768682970160031100054155018390781018117221784801718527426035990792353568571104586354430273844772312606915077651083499832335507731632043223306741597951146836314697936862350878839624033892890111171598177108376618020489641989674772008671171135343377590552886859740103696980202860969274920026513329407082793509606309580310078227177837467299965047069040148231805459526726695747796470453896593164837981229571211744664185693898478954216714863062997216001756915418676275895895648019505382080192668167309617436297812311720823909025463378799291124551696397052294954170795414819001694828654361527529354288994994888281675300787712878897246714561348715545779012952489566607187378709085458280326270133702100552773815269186722965839486704887073835797178853151413309076514270762816501848009331821573569130662364177558296418480982736083793204009703262125763427323673691821586753977972542770617204779129043864754789744132364454162883692201064579208867516588309169240498647889517534713243849908414345934750532748238583300751836857649127201361290247750648747274815545147867165395485008471935121844408342392786909593123729812650110747826107805196129420370034170119044655128669325861123019539611742234911402067845170336472018043143365020112530634130961374939763371069673969624036137651830393205915537913764171891308037845723791801022402456059475384530926019191868069109925861019275821555203232913757284948954500084578442018654855595168669221704346424914197036146354138570483691525183384918190140252162992857825460502579776263007457803556915733698310998552869737434277151731799837239916633921973125363894880102588759189143394147276537595883380091202990028872534357198474264055547699880198518356268966083712077666248057879379907315300444503431466175821485587477104017922510700711677551303832302233524634417566152435552074343154016047354175897905400048413738323070939429596930547054206004228973772557435672011060386723335081406338379067136643983259492663102106655804959784014981761465048524155009668764261302047654170031427565047212982247148146348101839960090606524713972273812440690338452861934123857513217562202143119264454997219151412482681936332238453158304318991953415612820540803030189937496789138937757860620445610413027375513536590994341849443711077025779081716251761066860921622974150554434096485546716854544859885384853144574451428027544744599517752365151703564312704159244803189661989611087745836600056570810305069687241722384623315210714406003992400376092137819650081893181341171243593083257517566084037379502103044140957192010728471352909785515756587510237238293785075009198288866733028480676081013863640484453710765738631098594243785586829476154117489478560705639100710264704305657838772103810114067677921294420820193630077784127557354601390963523131096049260618366443341897481398575176169864179720944527811597526019025681681545763452774602406371830778829252719256150374140774234387086764478037636143695322028273018120360455297186638170277232757974994486595733824853526913472873581667271053962821240576128494248870065192402692000182658637350229362489775343934532587772074782863782190859096187226543876683685894261616847781289971580656692622249889134757651996678122280243989530343835295883287911942509412039120242537429295661413574474468253284717118398351043971730021748739325131458315596442207714696574595336354818003193585798089309133627433893836668816399474249249310936341426091113168104285170396763350368423700083082527111527426124207102802179764583469636726382301204128223647965298359220027955090658921342148441069145056804789113046899569283497488095007485523145195729278584088413754106276272502577198591241912846269231914161983589685797981520202757466062509394410679774722601042845576646123736161494129078085186007345446790119556206850808652468976308452330196626569146983969903765410357490641786556496224085738866267117592755849249280904214967312562282294118641158504610299294967119059663067064500733264279946703432893151332883516340090358714237729701831468524768727354108383130880850805059209202859864457842183659400027289214522131891439053257010076813707184213953846880562963164533894446260155712389714807758656391077288225774483812521889415520368752290652459769553580525882807721033540654953095454819517302968205757212395445205585048159152539552396273577324905459526904913140877711315418663527052841422726107595538372981835506676037145172459649039716260738967606987248809392579456011875423160978929371424896373389283937029100526135462593882549015529637851546589491051827633905729517065839837828565195322734513708216444665471701167829839476538725012777644163253907758670716261107991928062676888905264388967187003179969366684087217537762944846039230210513212160610533344730956303444443744003699428106339956983994044552518487360145043284833946025809625947452871666159931746205735864189070310800006759046362464304614366779730947183244167457396958007300032090159036968623683919579303842030091626690016806146162357369944955521205527917430407822351711561943117921945490366603708164189281099527454452369381544698945235976764098832822034840697952285688415345697827537057116921952381451671145664236030286797725267682810112637439139309817412240541904161181590283142490709637111786023441690930714636846053187352630341884383164404934659223113310041699740962308082996501499080349170247503099634851766611128233192604903707035001974561394738555918750289965270512729918659523194643121564269078100951874845929849850348328607089544836821583832544552315542744447582990251172655409331408485593536682500042081146750417903156083259086586022545058318761047520357395005317949269843799254456780990728796950542213535736997362908966950173244314365391093008796612554097223760350405913162697117917626833940613996885415412912501487250621606842971810351327360351953019105369025430682377711851272700820791013324511997813754814160296509586916566914013124857017513717777296201279897356082783065330279624282805590741809459793782542129604099079153413724811967661510654683698190938272397532738453785255096892671608312813654875452936313951917205828865337641062011394275860384325253945560318216516079926095484842164901701113484476375140120978523835411725412327489140684910013887507590586049780968632880997422531057165357047401025836830797576649007524562632323650842101933389569956152877728325768183057222229561876428219125230931726190184957253548198803228132178605972104954529834163146339942742532556524518783209321132105497931295190638127371281912981317013452934465366972243564970908750170876137359887248869562941752553319401998352549549384159162780405386626741095896926654934031326090765811666393731997084726589209445061698535199496292138822421452146332774299216798186867713718618124931950629308950856784912261299266753630085600280495471876629306587987857979648461756303203608220732218229769985692940443392022865694537681195590108525900682243560873464218247094293405969603384367142788904563632117858219352905388160621615654500082312585078495354340300118715474753449227161843661318700660247140518355214760883779599347593545942386186590541785860653921531800228852803641460573020228577940716289433636889108465500737604603926423529955314903300117173249492840883847590296780456341200316257101879106740867388561286413483194709375875179333200509226399607540496480368671411181545188554049262912720722809351892973500604988197254863406956211662110417701052294159095932967583466808347758521380254110909712010393572772518438262507127392833879972098631057455275736545152764066671308569769023304987631115126768638052033009039320994650882794786426040917365953271590904218791532199979026624176305872773175244695330614684237699673708815387451502527307428063472814621898551963173114875370985602999726999081628112842774309275417261244547454795606854750719824161154443997167072591846927133020383214156052281829497235724065396957117154731377678150607892838435219133312699963969014910145048374825074348057807617640097434323795078971944560226644064389460007775204192385560846839460079112951412160157180892868823154756662787596097542716582527855116754963375408586054808344976176134080676808032355164970802998423912490732353894774246908695468422744542153809951420936043927515438546673462002166356688146076678589185376288906933250504838470120483477474962473364130653040481841032543525785521022643712246846389416057705000066396261094990849850672843853733588236747907036230836534212427421282311175277434394087801930257835842145894693827538760399282732871035148597863816588193020698636421056240379537084520675550956924752844751828517569420363113511347407052290491412747075557670364033036193628407902722013969231897391690674278907479747037026646587102496315801328462192343573735916447998804063289517603073870931363908331111743067423819704398225482858503336195658373582073822311451848055766405698974221688950936397224017198535489353341619565185728348561275111180446724128802759727702396699063594872099169895841401784733262421211377196974634814493614815151505101207490424447088889819143905816199415075432020246693619851768932773669298296544911331949885659151786291473078594774196422415557653874058305564724802183135746934289288465185187371545860099668261512090837338565455099070180991907710451270811411058094692057925175305097957922455596727664422491516352487718079856825074572254945538432292674205775236698594274658151394501438576917752120382544071953910883575846986285570635842951332423596210506895977346658390759378643474513712272036955732735614268872562608114840654555543470892898572209474666933932910417108471116804017383213749064320536020105554645561850354117891890497922343612513667705061344973222309463191222422326071431152859936277281431814654898289582242021055356595585306308170870277378033361551991422034895611748254653478736611693363899989531143942848910239965248617309867910137502397056696679527548806337607826679877586659572234516168454511845707461553611361377255526518369027863691296663688743858958711111356651106776341779156367954780982440362323414596967737481464216440577631386983586996638502581716827291302794554626817108938560741673695362075653759912964320276453521130688673515872125177115296204048230335439358396827265898055693550559858950907412083128995235722319521098631386450370956753050439927594015354130104859041671037498413679055644149817237553964865774684171633006803950999801302008867394967320397089670000989060837067296391126405826576479718677240102916097424920911696478877835115875946895470209718043095081829243254765825575997185111629420064476086066042346711748525109936456366610291543541346600689151220174992559299573832323495626292205456769848349266017246068152764676691621912729994868418336561394000634781495939749200551583168619144885207787835490060444260695015189454026536248874136022163262881437996387981875977042396402819937439673062636573519514898758972327683443201632755321492475810508794599642239847924360343740860294243127794886921053379303594294919361169321482012164629432192734824540681321928583836056908142904796788784464987241336256679896849201119598450576209614419144909713982953398921543014160493482535339295697625232971873051690516882990203245509997071052157033326478324277983892044462333609436859927302786318334008085285981299229027842475134970984452858731450494661157156646450893651213379389323535203956491462337976132588684919229668428800791582756591452686909728534978926275269588384178524349303629238315065535176373073564415558480935081936170987054589563287080128901131127499273529803858743062920516042878484587478991111390266907434833087100842994764446348874151417967500433839272860659862911334784012113565772331590657854020434077053538523241017741752723359748332580273144657174842504157512641066502625354734641407007181670062787023296820118901513642054811999860840669462224142953723893675277072815476416012277418723225818654414879404739436869976533689215808532189109126539981887152214819806031406405600393120566796961429483823257704133673776161872080818405061174662007137169693141111199467746121396760212520517163814822889652770011837924455622513685982229206012699293555841951443154077999368112410791184229707772262719869246087660684078866793968299103759678747316020226304436013175108177964073732691143514187986494446485212577144500288803333227279660996945744339941965686593093280880872147385634165609699726017661852208649813130228777449744104453097786325282739319919454870960963894890544558530372959075170442152250859618508337284806933692687537357929268536905536320434010056775131049956383541124010955947530961060685809857806316278097084990996577970120870600416979738036291513112311290906807464085901551573106292859525771925524656599734815578107498730538184051554091517400826769335455051389018314553174265326136690442437667097427041185265818931551029208599416232181280026386017859236174755091637327166957739463952536051982384130812380756395858202779486172071762153684050115446147213110745195288052105057972291883760261436107825121967138074634395649362723939079136990537310333933665716427108646990014610484694598357362504063772884652968598327736786891462113832772891038076718166508039906711108767625330404481975850671293083825755253086899359502753477739872411046073841487124830638596874390705983485802108337457059146132105999701388247309292361298621218885468271391539292162143136152271017158897423476348643932326818692055125136078487934424116961875374755335739861503286013105134126462482316770639019235527210416984651852030577539638641897376734789195480781909360254457670468054247482164062670255519247797956927291490659985357314160870614616995767219203414586154154144302403749139091530995984969667071551223523498059444570112698887836256345120912111659596264106946201840072185055085839650544296544682315781876036441751347059806149684614919592479146144917320968977267763783617514585251521128766778610965788527766041516935479520479501668394250365792613030816865822919180510399063438055914565391824660852641430910732810593310514610506167940633652209633193367240573918328428690432833700385922396038409748377324550806297480332763997437649182307010659603467390052520749103617415259959241916659980297939229302603486602882379641846786187461660477254056056193818790345536906696814650655218038577032524282350593029490652143818272218894443412313425132485989725099787856853971742010530915352067923462330903206514245608964157208638211725777662588061282085082611817209516675732564377265870112076958311341044342472898870135866682737099230271288158475379563476445418486263351529789426789745408082699927204168346342627573174464106325789336057336498343461909593347428926889610152839180199533572239960945726623693590667195052544719291378585030514772032733365054826579881405188166506046814803191616767138259881455688016186654939469460605897823856109428333176462935859770280493714638205267495485542092865365208426666036752236507516033417022551097108462132376105840664271495458356384879493636682488049909548247067957930634291675912013024176242295566925872672570307113556256720360156028890105228937033458075333572919563196141965555402283481360702437576288409866583218776583606026464963181902414734660080834605254067668155916756871637895730819957257647417030298781452213182976877300096380756424454458096962391569851825405600307970111172775807316527050004933010713617898505482750852984640445491984278359076386911643531644070081212260638601418896697138225993778111316534489861613447579907305601872795562110085914381572398385476949150144065193599767245732510058348931802644634851708401306776929669882097039646564717395651147809829930542717300333373972669102236412442216813837869726778767571425266456920611576461681194300672267766436633895191869483806176530541764835373403965252558826085509697861970683811475804108779656459195706526390134048153698544853661151542204596112789454175163752618361780138201386086774491953024855602003863526317974922499767985026573621255228223507501808698583793008082489020628489146217664226574193435316804563755965223557961936407865876516034489483673329021444400164069337744459140175404527633197143322487778860966845849369872949478351773351402355964438770592236547564700158244065454369319990020566813371971278122189509554249280283729612590815543393604182753985239426120840064368004194328942971440902304111880412175219969449634039533951730086325064405009751040050802780494291309782612663375095455398786585905293212243675406759915845173824212398444941470580339152258021050560144979404955335917659458726519849844449009083905786947453464737294920137447901108477921128231226926756128895198221548868916310121735654194264466511532039195475415912582744911636890351652163482270664821543444493292670575262413046729869520464746858166631631897837410334369922223556816837963964617441189691827126598943850504199551413797991920838305073302785989929562008978937733927811980682486919960883881001725622308157981039355633016786102920992594560231636069378084298034247632469959863060386147950566908881213229462218682317309056412557586052148526785071578387371065331777152694197054969892764343413187878375943243020845562690703694148428762704208705166669112270531045712116683721572674898843161420055181108694496562960962762991986500426386155478287002870112748633418666394597653444438629296315219142805684648140256022613124934815351341606049230964679947484577392400667041123339588693453349785202935532116597131297769737927210650537312123158384812475966404318882411816418238843276639641065696220592957315909146320298057909926333703775466942314803628590897272510942114161773110766372215737710661520215946899987095318969083833150935914560445632445389222263500128506529998498671656767548352192493802060939903724211383652473338145058222217049462449484879067452799133544121781041740992158182165807749317777087132691807636963008237916427073813552421153704762697817905834901350859553144166839065442463282115188045758483996956469497883867979257625293930662195847702321563099371930834804518355078856913115485591095749356704406584208268394898049638519431448091618955937818766486692920161470219201717794493887005079996794563414320820246213484652033279031979591462970960205661518032571085989055596297466839907574663487016783541848818014719528611005921019547095214206548986269227111507523643954896929309333935704997719130099398153555499000246778068966697123799847613552769405942629730355285232075426232938648550878353438875927481211740830136573304750559559233838059673215406040930352844372725757890907566559809074312737544779185811567353251556617708483714100459409027275957208407064480255392842342386386722943281421924792061362679902006026736856873457633104857675987930634705971914891753941541997809503815999311688693485332501971386198595538958865228941607388792379573684899634344405890765634353010048695118457617711036973481213582437390391756298432437279085448921752198556952669084830427633054142613943284572716681436816782439763602210439520806523624704055720834769054539692373107709748682390141023354448644767266866315181132916842182174666232889353877016867699879984428579244991519414500456794425229748480007713433413767847972852319678605245249553732975860991386393644957336654965527350342297444103502389899750307043968636361882523607994083503074097699507239530983955842966660944584580618050234643469301651723866600398364637898402471822170203515344345942261028136732646288133446934598642249283525088243987500151532858599907860881388234167206064439741967197553088598800170810736246734164870516599597223089602036935734650067186799365979959381185801441158287229139432722346443758946728983748586544711838551664603241951742257341796926454488484968109995899061576832377507993526965110737746654729207135550802143060243272516694929130073912723273196575464627434560430091202607634793926475784264090386773712466482286363404707032768475607300855962386736498003889234552602219022836751367711841240107742904341962914918560484664672789702991196376841201403505673926698268572217229316461633315859613929133523444184912095546049183555314477128772289701926103462450757443225394985368349653418714041660270867329999361381005334239061756183285949303554564915347417473474139322725476516144829951317419529838265682309612083134108448847950221350558170312215021220585278556218995983029786081871491495657147593281117053673262843709204333896275358216740574507070543768023384460359250417725171364326836826105259140248951369267663817526291036352465188039153737290765237878080045963177461307329859793003437388778961541211868492671062245606737791908848133004364226945304735952016656418984242564297624983608937085242018530756161179575253241334369304097914433162153366265708627354671874430953000609303951950675621666189324861051002110554862353833930816952741780654086910625056037295457806687942886511965359799351877435453828282842527238115477422735325122754545972399403979801328239813447119536178298459324699595092542283620158832548465507808933372560554328639178373560237875135072814586644773059964324513567622165960793095482113034432020543462915225149905028595665027324113654785588678780108913625009671826546347635972228423381949763182110370477672580782346324531717863660019749080652827238963683365719175894093429845036951198886845159541459953830787789530427775025452497896030329195469775475666746592946610518569237819433171693196060089823168742208874744147698131646302554110419999413217223159896887162904214524841590164825963628036823110826833635174443928990039517032569112421724536228219466171169344021233391974365197685476153836453640538152037771462754741858826335271798907137805923516953430775291611728374688271742455433918210477205791244031343003734432112785283188594293060576855529932705757136275437398402655885540643822224052314397598914953051740069033883222581335711457264345071614293770474040995454271067806898556637222288934296742692211777085937323561958330263123299165278341232790931650718455893925136494726582624637019842611017293366179748311807862317410737386376502230969323813780204055581457198553966194280371375502598888220982402782362727063746250206455556183843173799405717936834807431041305802430440330993964955181220008018733611232802543845833386151457997205626646183795952444927580389710847246270495000200064615299992134770094339248535875468878067795620649820554303141765422547139341838561834736279926806919713384547300253265760279167357617286463463120851932009648211390986641594972125226934283797209545018483830106460333691770396608508731188884449185758824025213415688882362200047214516368153890475783062114713343480391620687456335214935458315126494047087837877033362430858904868331352816525786758936125569942982010996841063001494421026015248327605344935565325153118721431956535996605926454515981043722751043040519879407486862882353713068780327841583857590722116961422485843282339523846867163709336760742774016180734766189058054079473846159181991966250519518393746932416629031501076997398543163844803725093954560255330758772107279372932576077990686910495924491123698568989838744095843028488294096504513227918301413288153895432361566986605511478056173194402502985065632897639430299843903538182140487553902751289205324007421188552094337064855077117907829753348092569029043218979326119340032905311980649820763395026361025896001498789762466340160214085677862472525758954650932787991603237947367501547954136740398576113841223545384497278365872404571410089757149638780304964474679318270029700578649225170282771835372100142129239741993761835086546430697703111340319447701745161063893739634977488616402675256182641329283322421328662511746552021604795542693361887575118680483555075370801153332362042832822986473585306432190295679108020580251441429768708417534930221084304225294517058328688012823305248339293927728652348971955013213662604931227681927540399873786502024604436408642877605599984144900200713180095687291928752309672305306783181200412929572699574153939806355231376077644458058513349683462679675436482675522492270562002432050675506832265783843690902495513104360713570901082320450550436413662725884392657291870159446012769849268092354624893569445001974240694741072104413967270354297847040657254604549429842632828926304357656458681542034141000647210035871686320120163638906507876913984194913190915856617530585202326542958225112188993712114916633986068605956171956554188576112826305735167894462815069690666144812996378541645630186595525662594535042385495329571179146880366663991682370327306409027279258487187063295725677236439217826295485080523007479230204798010827082694381742681183429697703265297602527497199591877770316358246566405251025169599841722169638419883151637257105975473853820710670993263763080623616169099542665930644459223613359939351345934510940770833742386501189327170669309623570367191513260623155391341327545068335402989319553668692216258345343684104691402215718790151819591906601671658445045184947578572993885045586932715470166489785762957029129314641915877005179284736884491479456763356671361797903563755065629574032491402556983093955087347769272160947439479376781650082333906104720365994223648968782386486608307569529683730807770278798383639280775785961829580148932928495855074271973924947920205219447582186821901943165706958769520439200200655345793457939776224525702994522456055535629040697954287966695346480324085227253483870235166397678846757050623449793609308084271644207115935749561872326882005121508862808333775855656198484219789626520509626677201948434058987570654750355165258676531614730262337925280071309637470293939307489696030828969550647023045048996953079206276201173940191662535227189919387724337225307894197925882580134856333094531647314016925934273171876942050508239670672693524634100263420751863694353957938066666195483728638107388241993259388828303160686420485933531797644861007313890159878059746402962858724945214239856480596323883355672984944462230634743723932114329175672469788172968274591711686602211702474957820648691074408478270764191898944312718938252907947051615482634835569802810981813656914296090503030240266695887007865393717679656879547230369072941972889373919661691124949835326305290584405291567287633518289201957183456418634599024211233895527469183480007157810398681824344579511342695488150105110328531958871494427915494774811205456537565514916130676528856931918424222606023764336996592198681140771149888275043178442473841645121527650922451969361613275595498307525881378818803869732410883523507136430315300343898215056332296189445731679319436799697751657038395984063971983622998146084637495199627533470364771170141643851780617661694734511627625146886453070848361218856405721824499767868838849862289107912277322401035912905449702666041592184469497596768064021324321598523402617573399709749593178131132376256817057574656471125990959156572774720514479216071998473817587372201620106634052806213489625503813605960071300768541243227678352093380178252859248335368793991129511384078381238306027042221263834146972999276880594659830657324580744769156655678450529158328614480624298913273342071404557141440310516853454010381998528142046508225060869985103278245281117512524968982553105009560518124848540899800646551683792925902976417122619131816500282067333721323413366168008584418007278629249561765279404870213842734107039719113079762186749065767703021231293046933992439523565414471717837380705772472579819131068158370797546743928723309863888380972582880210825013242735765245969643706844544305655994687362006706439233182753000686852399847598337354631358107827796237655138139798074079111348983734236546017109537526212324353053053889433607650152731167012240712441062472609378153696223513118445767375307367584456007502368567154226266924223085365784618786683265420567732084017872236388335918564798268543596305429266099892548609321282019606801472397921428408886724743042788965554074138931374356950031874084429460100655655912046963576389729927420395225405223278279310692433311621141853893869395827237806281177980306665620561893470908863936353749840530834486995496378539158656353586345539292659964359602225571304178055690045345777229763359330063260361472983800227971833728017607877689299057415506529423100514674775941079064986235305690385296346848344513912679517324929771086616883626045478351899860759296337122198844719322570417154929768584585666101985979368662470621018260145306340521410058763772674723943244373663539393588575135495948347119664708699023388952163655209096863121124453305487810705602111983419428130423189562943547789578470621658642859748428973138235337834064595407129241827575573958197193231128534719804550356927653816632384158584100785563060222614658952201230093756929761644551595467315993852524830948406006699894805126596120696081791091967932179092184051727550419768514197358419292137097495709141799994123411873140606485967465708669529088432263547872573440667279257023340694423933647952245039986044516562430082120033225993987783026702485158916956335265459035827124944936298845289217367190406429307767218615402225555668282963431934679720751457833625091258227095288612599636939126752327608625782227889392362449831779437224085483954241674547763373011637868737166700427565107460678367805984724553483956898341897178979973005911963478291773044505198268419245617324646055180729571958681339185756451556670218546613569734538104479730875642407056072783929890042191021021107309179263412294467565189183352111208565079174677235089839536358165374810446586280533175450780135907506874790258803333919827790389984194907496626307720784592836757276297314575496593525921423954541251905155913024377949504532728556554317891843364073251978572704466268721375937943303936636839176768493259466274094241656647504267450834917460551768948008481853895995239232854931451303195005963393862467322784004604245763171241453894913288472032850494265040651392736032846432750079794144925805381662580174079867676077802104284960029383064019712336971855882349848765492026029244202754153849473305094163937952602617410605714659934372471979764266255645082825399765238001661046746248584111227998797074063369047155353860895253796377151161307614644275660966940935942127815122784187751299459206856064300595900545626061014797698106329258964572482510563114862249175009168119103843643243218505933591149128104026034171455102830872500855453188515853529561079974351970020656577798404258739761686081820516483022725859568257538955164123810012272101317522820033116726837406197975026112001044679291179125131336809603787733976954579820618033005360350302548443969158949698931277201837110476454120565111523561262829960752679590544334723933052001918966695164639324782660092417123401919448942764272270792306407566260578160249759638103399325044376987846556394032874996467809840838214888439883477644839412476209299719916578504860678739356892128159669327207547621146360251179900503012988107632554685210289964460184612463784757634127134611784482969167972519966949939158750640096293891518114672732492905056812572380486235716898538226174976523133485765120533472705864763549689715132520845376119546476740052306971425308287739802682619617363511770774194827199402969557650030415174044433827949752193663134514403338594021413799531814345085324884206713696665812639046331312328988227948467260986283932989677311776289564870109323370037592958407983435269688004622453970238859969934677118051406301507851801221291801539066620056960067760840294963308955321688541789797902544583371855271266317414318397587795563918577945904632758710081665308140153615798201559268283189356100184915013156528263753158549487001239324147245626670486844130376342946097648593526657673901140174200866412788228065243280215945330553053417503292372382081375530111880127420140045623586615766809072424015990440935009611948267697241612440882999301768094163547722396944276600877379455788304150383547236827900857448359684576207317913982327231968710860216572924476284440047134242761644103198893991408463256430625247151986717397514368235511788905753608733578892734105448598529571299243412980969013926616387143991336808864877573530060932991413220574056114522525794203866276595241934306701230138131326579980524317588893022312996958320898199453212510248249032633688868752516014526106192251583206829705849902759181858584684652505391636836507775912665029190935844950284633511924847026626986749999038487819656424969352238347408360087321880130063476031834055042121146255248400076805879264118470286666393412911825887755443332872560191585741601993450249111958168532449049482585753028368959601190573120330673733605059923676489829020999503108895240811896970266444250498175858186519329985224970471699449862355327487156419549817977595016623712036195794935410932115180872999486861969263393697488719283709972955818818174347524260940708182589557604909428674689610853039871789735599626183934753332123074140814763229142566808558177675950491578170279540648738309901508565015501613227072658354732141817658704424860213484572692107817505889502992628935208474928887050673071641161443894418604701313209538340915101751334304285629367688992280818451336303680857692309002836142443094190326560606908089063303681366422312278815012388836196589241699935570435050082187038331237600486565454432201036298219478657289078332006057437972143577689399558951573039691277128108310514416627987422349466533761668015791554542242022314729451256810124230279234735813121011226408955324154839266040203666898536466375801995261869169795405822741906351835366905600641256269171317996910586642700538334237722334937640560011762732721041606530403001342651745510884340655594411378191597494732571496277926469593305212876714790864593413899076211286076408215592299259440685934328934982832614814847386981310908472374385093378522426295597062382736097278757652250509788187407511877284181767778828881018181995090488000887903975349541605662840810328781826170874702730828035704658465305168780263677903559622758134463998790858931371284294938014418220716919260232327475499835380590626322324501313190341275025459756583471381941769866123668032842514651454992255629551926488848394989140714138987641645749779243579185262239758611093710948847298321843307382931576749608819190954557887097454338945908573194120900650932960050293483974976411029582773608190615338298109464787738487911232431397822323743986737490802710383182607155307449185790115613010935498442562037928100310297727393618039907272457611116627833334622919555417947111914191517905603163795229597013298941516277716322013463769961995366290346705554280084726494473760636133419392240160315857980207440353097729964650224471631732339554180495102576777548155086477356499789521933025171572937326442137768554166187401079466231496252651286495300637195148340640594706835160333207357087654574118479536275131150667258448327838599041663507266571280905030453398794794036576519422152874038844903083483133585130727715459438648265045551792734677779815535604489073247729796319848388187733706589758629108903226735561278016906630315159829352527267334484093714616544199664664600622330943663560814347444046746365701382879129449984107014717770352663931601804989781817103739083081246254801937764351110812763921197719548553053524884772038612498966044732574950789768008356736295032375069634649145818109819030755783559573679571618225703702491807891654380148467104364083124216572852061084712420057896646879553707033708703475318837978773879923780371524644119399687869988531270116855121990801772107867283101584206494491865725875836178012669264974052121318859880806952366693880345974151625454205541700212429967384368349913265465412915380720550373394047825264885476779516566866261640030675590201237539873213160678625679210702483254293607172142978173180004153028309251383380347237971781345395855819827479141345084005865247862323206622527431588788266749495612112908207167979888754108965012034215622010455113067845853218375486457158608792782490667911084773049175837724755239117804995621926492574169755006668121205175562591603871382803159482425886501894279904767619083254115597754384368056858371617905766713782808268405607724597174433512470102836758249857762794656028282913619536595252149730027577124518918858690147147210175393145204195772284228345934734371867195096086390573656106498257618791028666717097900068443018509247867633753741227823011469939241981512527818483152945320790738847366656074098314577491077490882372455611701197338479472575926219417716357846612895849188854640371946439704154299433086830794807594489831393282360850394736038425024290799165893318267759655289255037118102794403025750386871907294506454217306906777160554139433817755171224625686489019460652511150602336421160564842565764813470063404036247492339445915902084072377081745176354502513850529095911862613558853338576714286200429932747939058589460765206798396834364797814334751010864480976982278047474998209042129829086827813001814583609636824358904737425152281601671212576363772950738485298509895696010312497347972600345389219649446893338413836841971882646608609515869227817059972172879849808348594195094211920820876238288221330405362187644633073513742480883922072189353858719571762515870718661855040416312384487309866857865342160986148861646813483609810467555662541073683610729613394062510836165513381879499030094637233205505658007055619650899244778013527228047780778112846072999528920173890196444926855796806575474588537959462166207883570041071432271414380299400712270325726699655943002958794004134077535607352419938125823710669422749095960471868889339497888681703020273979279016540742842292416696193317212253895523137830851631322620959908281454434034059926408228047682849917023873281972511680537520297046046417199825323266975207433228198378094722243515223256078653153807966327310710719494427196574083040347966050323135351924501796168268828165850296987204177147031340063783315396991364893346014837233635631507719807962415308689326682851566635283559395533501224566555755855206575461359721030169853777850625323949438006929965869110573165152706295862669170399391832594541528231535231789044136596857974528087514668313316704872770242039542531069768781677267849493435353708731504275686543900542204471426276899626836412127301085307535868720041778138793580226359872883100350498373029321544343536600916259856373347248863598950661283544784877074858501642088804203902806774307245380129698166778293477676899516768590723143317536503254030168395904964597326683087654158761726047132376342546953374532919626522910184314470211200793020741821161026604957386395814843606062325806920281342854386244932279719561180949518951777733087017029012345227838599892770636484839290165317282263761670214271857089101007523377060082902437685950068443256542915310784844733423911402230203593116203839046971668923943542751048606124519162380966364826029675121439519111636730367639431119550227599315805147119606590521077330792151963303795200311193945012316206042592152341793280134714094777571624116282342460498524384417975158330577457787395854542001123944917533142581490545939450875440815865294944313194088001679309560551501947337470507427234444191522743296772693411631042815197193467306003786050313989649886016420859969535310316765129698892730153626366077079170001232178735437439543208022728783394904258249330630219909471412704447880932473405729515408335791525079967500736948301594892815425717754140568382406968718071106532144657543485800492611287580803626786967283763062016252952311476014598487869860369873006340321530667752204701160184073564554975203169583541776123805333209324176141360859120333522952371897782130269256290151647758799630619061235917055759607677252657308558705720636216571727474362608528062299403122000344786741329075983925458209027922825002700218851515592625516903853647748772535883044344513805247857613442721541848762347978902885050314903185936375750332821453968699239129518591421221598741496602187430581576383964763046032404364518758391811500162962235296715942827464479513682448736957044314236388223756541475681130308395755616540835070339070035564413650626243149540767863469585522411769192405412798324318541449561878823361801450278161896230630201803360411169648400835181787119118776611051530484208554158804455689666070692470296701295872466215678680321200409548300691054871375254741747400044503969820562816038797515372391959934310616491704437879750601484104737279209008300853050087262367150390967710959076602049951805853693943263956214601106843361776290537202366208310541383929679299015757219107592232926725004776986086435868416459406659399779947150989359358998620657066678487123541008120737797785498230037246854595323173020279070927756169085913073968925567302585393491927181817228933599098189686731850599463626033470975671909888810995977546903364358368284450786337525088955684971940433044658636739698266421938903227897357917741754670164292546789752621471457634604256646782559201278608874682813684203276524248103647753096677835898941609985787642190310034695136727884493554107112144037475493103191655971101812790649498159360972086689272190931820184529652681372381491322244218077746540709916773565409405763061845453730777492578397209448359176849711549418956827040728246311613995283892756695623603333152530436591012255393432496887802484710319287137440844442077671239192421024696752761869021173184780001485424359914706652736961025520864578864981323524804863922398225761081064820012609121373069358080706850590021296188633822382004055283238184899613897063767522267009681879169476848558156580090073507598893985045241203996850391538615413343008680067136755209401854938832589354107097353669049453586056403134199754667885268242456708009333580350924336613042742496333608673003613620138373085967636215484908851715857781997087302822370301986771677409783642673638633298584541170882081571114371124927511065982884355417989462589628390156205757908507530012404239948289703564003763957515926676786762631564167099485814478545193601449510867452195915711353581413090998112574563917183415126976220353189141322759698957517339433361757744819477791990639698904342314559697945765057952506138197170266827405541372331672194825066963241656404741751122138461270417748981721401579434449742718927505573584835780244728112042018670268943248423425481775154677950391661172765682010032373903532972314511806799936617960644922981007798076684387181630698350839824011750898931555339014961336225172927615446235685382157156747063258486789158370385253375988757126593583104220009902318601951395480817401903603607990280615093223466942284363831387661206147246674493311512725068705912766263254441856670218251269725921870376320547522825090084523402522658403346136744276428615386514733987383224145668964281542698410243827392138885669096573081207683594344729559728093994370960271070980960982842608494439829054427569635893266842974299523128702145830271437790894863888366290433450186235383446745334067731037063089804009052571942903800258518507312429098406298489616580995000803931936327764299259789690474490240987387251499467726473365031654137077038908668641085020014309653635873159327113294948599249366945862598918493296689917222048894990276662544488526704500089166865812842103521680788678625459827983068617883638779767563706195660432279236719985652753693288396469976443352189879233411549494531055318528169192463501632467672987668286194503483420478221233648838616397871913837765998904476905509141101580612769511612477593950591345358977920610076274441282800608700451468933701259548458545546036127166434239424708754153669366536679876481237818580421956160109344934943417086879805631022314702737551159251132933997160850267345682181695762582919188624241279943009675715390411832011716173238033203212914485453876575743687057773531301537791308198393469938995596123557067533190864192579620308679066037204756542397465737253940969775889388300821663365175242371640035932829446118586030885304802435274525199712341131429844420452026480724020918618263014430670533665294534585633469518085569291231597627777866676075389175636292017509481697670704194149444069735749044184657863331918735608842333896653292084340464170184237963055251619054131522997311564744938542245885090755142038791735503397528082612828945740485038490395898027375963202974450988244573293696914677382026704908375514519334066496235436842531036149371253554367326199484720637342090784157473117304473683327621182345827313562255030886760896457858537507656324036024972198347798530264256604141979544254627671419509218652110489554706910918278182641316352461282904258952334756731912053673292273551772349038063805137009328654953460092322527631252590256670866058236136336663318173082372525836995351954190136217470540664873576327671096186160269178497543583437962195660053642642828063621461932671035376999242843657460557894068701192180772790371586921166856645551116423736464015712460969346346773500612163557188187047421018012727060550483279175783631246081878791953350077187682248693849211104263494146485836493943521529426656806350891524867134402083947420792574596317046987560195606377988637599888468623427756451542216578359664665614103155154890311867483222738285092689267405070674851348262532516092227716169186081122489288338399569079777614402341454850183493311015052890003110315011100516235397096256257053636205996872179554775072354233525545465954946367659353592180336582056496132638111286806276792261297605597296063352985762397219035040169486356892944416011199715570217330453637871085629313472985853168075195137997635374657943822883264166454826164951111089253216607586067451692669962340811682062560594839460291853321683604327709426078725609210054191185472172135222212040078215192523543732504363650650158669976557374842530772829831941863040425023816443981898042515522216926313743873679405429453512385194270397558668397247939823464673966131395606461152023011014034242327779369656666564754293975710527902330869432016084893382799850858635962582811898703855530360403385417428291764236875810665398698737753416578327306518331014475466213104956179581366163148305294829314193477818503075644419537003367062971260518552137055756221419321289407951150676870583061827546344210055053287996066159467386197050924448749289045678539410133170393494775218068418556919844585778203042009042779671560547231332424206553836913797694243028593040933867463307038937119305369342361306457359413795611831920500229711143049529439079181279911494376297539871801051237622673122052457971798426895565628400242243206103625572226646365011915277517528163018381160735292704844931315226331923858749756128869765416057220805358426315913600306580842089426188191220021981985553285687976019601044319089331130377976890070344360611436996863718749250100207584932338577507427952409968157091761808371705180987839980527233950249709942729506083227296408377315618829480346258944227066687546718284411639415763212106043545620625437689315820811802420498760889906131959954010744875432930013167790321814383128421254782910001491852747743513748981988007801730697369392624561699984964890400643220311794529250284397165907578526645819686128412657588729560884853340492324208383737555923572544282128313553664107752911409191238008104118741635859056914113596322053756787909390455569142079602309537122509588118236487846783775111348643483510173664927904832631204703588666679156079427971651007537404799677687714851161622514173817609514963574704737397342612581564681824342277693968902813084210236759614227742333605418841743209514724733467395576197594861609720295028974413169824748047802270448410168127214173719229526210661380664772026546490582494441365248968362653506068067326916398539506879453463453739561694445477484607764575446344182845404240435395141952398558984148804193609432738775273742104623472716353277697217229459577111086719408203932394115028236762700012864700917948388253230904311863647893996496848587139413429691774921127955323682219222015143467857262284030854502565167986789977887144941735719661936793894509286983117936158533116006067085911786857644744342869275922038678554991782886540864613427168405131735973362772918329892954871243404677710413343275859322599779973887418818558569700012148169735652995045943466894231085402278346737436996057637130086208804990870270286229314637290150551532692676584168810162962368204384608658408386549674702771113665940488168754151111334174386896273656066479437942334860881058764565467264687414833716681490174387681059705265154080293156508897553223398468757586529611863749235910530463950197222258747509031022625420327342171660527015296186432160461862402251070363408071633614423621042818107099069545742645427909898690809539476535147794783735140879767197903012973990661360234977279140335818920046792204741978773862350881202887221334901260744291414603980301956165571973440581265138448341642952914269801502557085051898345200047798549240236285212782584172458342445898761518522766875585749131108266329234357523964971378384911988315097094670079007401760401409986761207351894351058427089727374828588041859904056637043311052824316289779519085790100081762560337029103951362899563097299810847661171491375259883315889259825364891734014466123263639677703704898083356914975280222141569936943162707463822198102881544562229396599014741421528811454093480745750249311073209949613040885781865983298548071080569541575457099106828666197378403994197267913024821787700276650690525615786231076121771850949557105511143266875629019466671655656345112042218844269524670843917403404658452032275812417374530755893645758760953174088796399957257003468392001620072528963016213429801653713956616402265280676510037156870314350110274482805367784897958289230672910002881181656596826090927720379715967420881646518366348709782431190397053944288758322272771367721178387985942681616273254470179946320762828499799062556604915095991578987636377496354459827484559734294699874128629052261780141577401978613556482880007935662433828061564474838375673836634033517060539576914164789158289434397171452640739781214278960589416971892847707883045824167074886999516188282748291437597671872746258985326970035847918772021342192475217294302902508001267360487789979778474983236273201306640740189552803290291603814882175377348737344262041405422196904313702802026340363261980886474598904228331812690324073925982924970177217624221177205921106335214767019444470939590756456406697456604755260883070255946186537335549416522773422021133995229445209552032784657024481357291403179108463848837264099805940816348514458698999051332143795785647167683100886010232106318594364968097568059074073203533072628681245651000947085429462599344851524636232287148773511113024372221669793154782226219550787760627454227302800886330255955391523934933435790433932808385033964857270903691568269438297672951081817462299502820300639644757437903345345556836829530131856947192065707824780924713898022004066654448651736637597367774343335559524190723471142497090392144961023783226988668674924971660510948090627437453912150133443141927237795665933308334655971147502394990850080089787409085739879400968912281192190815471911988254306339174921774227432767567750296712296437340637668976000163109253948749949157267120367029026237125778725184621576898737536846514199205927493701432429610297812003904966637349877270264664845474928764783210732035378684171116991339016897267756373814440047607922359830054447075491324266594206297929678103195817332529013276927656484498737433852650663802767577087835470574486683378949708817431209705451998325511155117948743402939875731972838302932991751809759161181000386362206118847555748811100931075380723948743747667481745835106029382684373966572595240631491957137626379816382308288211404233607224322312413235570215968281571950876238962363064883373372868327956677302749722701984272595872353680754459368405356543299327590979172772260650223915485283531328937324185796002519664813029093915422710515498032918400276919882160136507624386732112444853294307260640095219056102309013402936970127340696371492970640779615879225940834470882972793092244041375607705867957442202929612525914207000710323056775590917840780616336695051043964738109420555801130432948765867630787992651275553481978340433102483481587453835193936479993485714675612937205561164778037093685128544576171709443409508331252569312145898549078200670569167938676955470348485896386599597962041336894483655913732249027054420646856272819134315935640356034392119296893230263812645108863097234987123913484313184476824187538937869169437433186598358288150308847428016058643522779361689823903475860968845477952881788249627941303279690595579817793424818804610865316557389630194277272181154570694802792214239855470715056558653414367404112751914768376658244513775285700015803911999981577712076693952839148131902283403785309688493007691145018896288584823338874069102517877683746380652304485741466709408816344607336113066217238633390263600532480968576802388715216325554055217610044597224846651860847559828396064054448292176861167552725765492714130204955810954039276031359907554847389959176812696344120224577098310074058977290085628311822880854289138210226799482722150566293296688714823038266093106848590675022072481147519315756706733572315977945322367115806297378071486449326263243307124256099920064104657472979028759387097517943565473307351156545582136715655676859725361005921170631430315129915228747050356052045912639930608995157733459642180684347311276194035482138718685485004990037065150502637895935657455487705691420408804026591601814270528380596385192714577338580561103842043394817479307153284439449369690045092406279242863847179819575191098233115854557594516943466775812858671782512540232218917493579086119609216870859858041816055638477558347168921642655617362033070315620020797904560983455938738926301879475384667041530937464075954033090400864883328998395430128128320148697414085190676704082132035719944944870741147160707566261295696089878047297793225890905174240192033332467057437613451819588660622381916493802938696389618273334839156885498362725670097224478730866069837776373616720999938581356858044941223743624085538861070803246943957899073187896579095377606485251763600795768779298271413064106551564301695669357592199206373763419905372120764769614195977030924081287025302799584105901189893524247633052714601402969006089223511454829326368121068600074108611372810680688393208770553887848309604866209647779911012305238547280205645342879734321468207938345079773194565320774963157467853344889475522546251752087345890208841418795767183839817498738506374664354461291905907812003998337821274217709520587634296041114565695780220784220861323905948284280217931695222168732745610903424768968236889735455851061180277060070264535036708173273290754500257659197886787953001115703982946091402628348261410395294690433828922680307123482376647412876174235146950619096846066041731230092431478012594568308875843193655755277400519329741094722685784138899664409656041263631494061874459953414274171928495597994161482123820754121711847083370053054084289652553376393824368566641697606880098057478826869652149468055189839860815125006535015085442505796489061326510277107439794201478566192266801672821591281858184572685315423364918761086894854802515110956252613143424662674030096542224372457918353238287292176623754265067873862086865324739445465160435540764372060394685110269149036179808093853551158050968020836994444939037090748066266756969257075331009518176425649799310310846518063329677939886216084725463837578452785923180851869853610426306165510781668571560124104843425928705898282378842198957065766297322890290752429850562552525551332608975440060770948615210861774588819902414816112317470752789593953165017734703600045550336388648157661328333826468047212314237774853319867625383440613995959811938260109867955365275915075118144975766547709761912382397345038390891033206087511556992057354246573529709825924183455460297212436972187717559173397425259985656917780133977205668228822735797202078860853463921996090355309143035609003631884811301660217066642183084280184360252664242587189778046143688928418484626123297327080578514442715275895288641699495234975790043553175121574923669603003164599986525194172274808721366792322130226457636592978587847922384085133129525117845148278702939295687139484923871049356161352742995049532656103909540260199697349886755650002050544271936558424873715439237587653530256823118656093119861615186056666274436536530727745718307451236973324808412282961609437916887296297802148126302458615415925284155289967119629239340577871190069643815090570541909534334318382735999290796553656609942208147900902507492741472676205042223053513949697170399580082662418208992324622755973055699673906942136495724424286445305991160366951026099288959402508534850704892064070411325832832139185925886538977553545147965288500491444275418537206057126528078643150527218154772929636161725707467256119067975515927994893367870493294193370255441576547252789766899161841327861915940150236477100105161440299054538053996275458472398192682891212496781820724272724946705617620643454359400766404842024736027074310147947780096968313291676098713605699187497475367922007246691829007264587971740705042346829725935627641279388757712356708368818753435430315522296787627409040054173858697983452401291498041888607459232822048495010935443386968826516666193586891401208983022577549937072413948345618925385101837619800970181385156146877187187697563489832581072234439756325741337677987747016255080556225935719876223363751946287466904905377818223848075391342928554079173142090316165242029880461699799060063599594327991583957261003769265052788939841305576531505036081788924543123376227299179980656923226547176066691767968333566476534255091541406345444793083385827810422796344730748959743879882984804245963853795641800006843974292758220567942618307458033481707648436189612115093833885328796220217565518583200411875036950225365697477266917149536381789452915735652452472867114886064530433242700100008372630565380151960412941686544750002927860027169336800004100809255283943654768558604176213997745578003557844072172304845895563787301667077889675304642411589929854505277280027870499376128858994749793263610667090135767834864951122121715422614499921476007521266231446008946323510628140840694664818500003049727026708392837605896521646293891295413233233538951177492924996873557091401841656598621143888612243459813424854170935786638524767315811964787511654361959143102060757099738434527147723151405061079672836395224105453765775732958675902683538033974120133653144573343734433053157653197362121931465728158515434305832761178938827304383940820149018605416019651338816189843370015003413240284785354806677570695876386023173821604459248780195253578256985278364434978553910451583060390910851104584099908322283769847989632651923542448987580429472767275290543493735434165479954682360916118775320556116750837040710436170190399466410866835407447226169768648951521108473524303261096326564010903784047137881374544870963415087693731851984810484161638266822556899662773937133241965272745257732886923463545727811346571948592596333022325991474082700408501469743201287224764953761978402690484814880795062505731149210301861704192051185976206946928621289021751708154998751829176103623238894461279007210040140490706446854076577308313477930367767308694069191522578135911370579387300616839819788461833788124540521263765734554311151369994213896399060814362187672190802783053144633284822622683975042931837463080797613836246362873695526801678122834172609043219256699625464897716994319299516304922072113757660425010653930707095271587770501984234010854887862617180877237495749955065674794712290599596641326759442389468162722764571127058348110960481366003925695726424642157698330534784296052433895500784163908516597419307604490544943230376148251116207979860577897242138968605722938532147496990238975494974548424361295565292959590531735131419574756953173153218632467896071505688672997309576659791521332383317340620896674550602643408993094931757798126682027494981257342490667235112279956432701171020092785569565112910651149910892184743762416250422354417388727884789886344071632697139553103278674195906839804733122251543349102525698111709789444508615401471298273346819307244597654571005837383341722897867671489389383208674123591833330524161579496889362365581841738860184313368913172678854846943240905399210511334054999084897200242665087588720999196107281988931099378479251180464406060229883707314064753176180323412051824836243757108471983404046057228450535937905479336714100041335815033098993783311136176105297964657384464544804082105307150673255549226804379540786523595621608189524979526753328046168815818044889630608964014707161427420556860714213521559829783611691479374735161326030629191705254412062387248604232863758984037382612679114099782617281283662632009343691397451008687615680717562816835937619502236785345677070057465898237900711971926743339362995758625771137365306299154530152609635518439651175736127924383215714843987074282124567679458942837858918654079515200703443652029362959539616632540797619039896740775133465754199535577376272079967732300934439994451440674834209879983434000553447074419420119414505107939011865994635086593575534089129061479437963255072033574721842242294031831381207264550384197799810934190600069527228304761592818226747725991293880042568024371850239014902498722635141388578194719606305095773383449846469086031873402583294266582474262559310400082632091552902315484241381911817976315125769656533613753649643659262415888122333977687450472431765524465717712933144222144557787134935058464297383279259934730752192387699747186227140577900079738182939532331036354036593848413113624973438203915894618962313842570382011689883505756516921248436099395906256165070700808448000914036276512821441680552440210004390310822038284156771479195388473818678125479770159685759070847239241685637242738651889385838868504726240136028925490447912725596844395640623014299008180885456142488327115697160967798265238571095008964966951703029133361253306935834426234219411108842932384611907980583451105708298112228583078593237316375091751634703829555997965934614458061258192760215212514259276893193654742118532818600684024932888989819904313641797058398893624223563171835753675490999426834707668751650460681798888320585403364907169246233267554738446311729346263535615519247507587589379857652701863237153346533661314628513476573232448802643504879178146192394812429895131175641949914232248113058190558797143330024173060934478066246124660376522287678049147586802915452487797041295214547564558474380896163878854559055040441038892418806562167765440406775540037587604028842955026970062585522110067626819315564126839495679166688587365680385932597028304955364133040335895750628252814493332609911444142799670704494610449582285808072677367780782689272265390888146211059403376567148432707460345875591396288766285828588875976360414860069183038395029371745915461404925174911495788861664935736634608847485094017121430132115139298549586266273583621141325895556817089018114209824722457955893870759482520171761139282960283137816470631998702089790841042365311057308052962300831926713940172334599847219518560473300598245211059755365763169511042000766437785886555380605170975287591099574150860019490325980093911697106816258017354917518434879219740598337000008764708077780867355392080075411081720434847098417751348303464542412976887278230726410585073930540524864971511030128407225020482435422463223657382860897644012757453756589387767255264638122457963990010128069542147829319417021246954109358263904975845603444665230388126526946139599749648456753375998657949454829624576619713447768069208138471365252768802921432480130323676180813291825782687044279522495062135193488258333171099854644888376209282194020879396393946335399170710944431498441957596278587579495477697724585331628313680029014026473636242202282874688851548861715766227712829244555778320521440588212046859203353046230452286525869843570172806273063465483901544291710279385616684380820456810493026820371557147927755358858133384537000483557613638532947278209172396706583290497334999082073925050165696663040489469046305081451479584041491622827311626658870292053045093269541217338938938933718941965028448372209886858114985265891969191850802598035707940331016036311221143391337817754412648844202584478520339167972991434615986682082294749399739369277549462559344294792068196132466879903037339280417253374624120934305735126810576525556624028859444295093604017550658877905011967774326839889363649576754389359204413364909109197041879975649007221473306244545888117755124841422412184201994651510937462106635160573253237395212765625841773933387793483035331762801469961873957504057085678204713121739654555394601401871583475612174103060618875101841489005419790156432647913229473520905026740811617364467086191885077498565905033392391651238678182437870648382155277226888744467082506444540935628550585947147531660544407329070235491629370526910332265035674555662273231544615572464526956285515098505126659883747842312271769767456173756540703783919419283161940170696746018468878777198460665236029515654449685426818594162528419414895303647112880600311189956682277012930253612165239505298574514474860726613858421586896544964780535708103742669623800310233546583965192469821958416240683242822856034595469766004704950481750095574967809972947010014696322228729649459672836050797233212872737157851169221255709712109510189594961493029791679557216475125358857947415800267861473263843957744998364041894910642038291277741978625130601550021276509128481737673746911158320338109219136918348258092945957078259984999519186021821545573485148822572182138400730938554995241363640773690146634042734241620315898517804310271779749967236369373476267312874183154214907139349913961837931082655693126981003125072060658926141011652856752714602870754213780140116028053200290979563175145355783146077937594240657574926461078881509061686468343286896388062108388154037401822435341310990402537208613400269199581609685300319482051938667503629396021658176308753262901206600218309243889808340164325833088308465593783566603069765252489302523797550455179702315215155953484951734388508244308559030125868715386554723971409477597107429152047651645586921815079087277623873049174801522951672788757888168987204009237122091013979047943400561827741168035470309593243367222546487651595955061746435418893913785309239488890669071873409844548353515503444527667991936426023352151561878741465749229044653283013082493536169176154974462487392940486489825016458562060888062124718877722844855931174437262007180425885541701514624921626427167388783323594781747183767018371869613430411350243220865282500193808502850754274864469345755792284074528199896203156193974529239211091133925696650870639082025619646088307625870734655607842081668358383658867481678585785417743901232335871022085157762798694638168463843588711604821058241516796205164268647195002091358447188587554592851062277590232249837120084544920424805860717011004572913299906864396772384045968026267619947880235591867780973356931079062200535312780850717465701790509835919851927690852263110732590834644033112035864880704344275009580526869038207867880690091314549890620095444001666064026552788166176707263976092270396007867685517307906776654031048154018591581394355710565435854520456175352445220065342083051641544786083921403683279722159069176773050649171689333608415752865190115744500387754192817988298235136215007452796215100222005710335853618254182595032679074565553073546754681204327989975648481975193076021137225121892741006401349563829898020626006236527982577728737379971905857072028507006046878019582489640164539586214341693654751484587877623342157012615968972845586035932129496506663063179140157859930011873959899522912072728966064322778038836551899934005571472892065753916694716867613033793914420566987823100964666248163125309782555077501103546487206261195044541220471226736434245817039251605967495737582547299677405528116179227812898883520510561524446677780120765527084706636382107505969208504582373523872465641971175387557456928391843906723301516223878458044627959877238644699647457066395082334142719465375615553988413254539538035931857935621420901840626179385265506812493901073617675958616309861365146115610409456849133031323223792389155636669326037931731885326029482618625789468482863319888777626563231516675096173770065574573033294203404180564553147964524714436214358615568860635959735037290134607923988620766388565770080986187204085707654536526569599939446607672813904924789828057686975447678859689089452420355019539562906405605192978030866447774922095951015446533812156725262959340997731794473339791222742180792255459168740701901167425160476640831611753513682964130747643821175952376655436170606376806866453857842197795458207404776347131627054248223635037549386258250563341613137893375301535634637869465719165665141203393727570024718167107295330756525828019798797061154785993454161096818913969438453463246474530397383363744384478238676770471980036837418060654988615076267191524806170032453086912115127046131561784419989070740622573490459182856141057595259210025391678337671080697328658607776363245461796690976861979329338569257628479719342750878184756843447775716080895692888229480510015133434785833494719018579357261338179347682361276308057399876552655091304132100172838114057177574870108921185332339152233554346326450351152254896582455858019065004784339590392213171753587958662283579944025020525728197336068820943149460546373953354524972257023856458556424429904345609880749496002412157870628823760939538127111519160478255623258566660194142802582316778303847915488353276485540967063699808889005551513319973681759452043519308493766576417690712087556742673664623704266429743442498247413344015287546433279842151355115639791022359066317690714502774676612315783664837699693579786208780806190778277705735224541122586246821404162596630577220370315523045608900072726557653452418205944674873849950999560186616042872570687012225857135401906867663424429490761899800499120111929925768248789904515012866815270030038583735177469045511846714593361324235465248339595159831333116102632804057229625484435471886166055356288186324630545430798091541001324965184043305384516125867440208139827752548440964118616017275944595686481828633738965853901869307886034906994654119658865881001591041170852104889527877399643554125801380450242585152449933836774711248182979655989994722900813817398807604813227926308577236846424809462562528315255885384204825966803098797303176282617555837046796778713549825883750947687640593417171078125405543940961802224686470088040835688101032170213084550435846328718261734796782283284611218311055381812586929226900057595102802490527901525797220257256474215318770094594379733716528602149422112308786695159165237597441295263971363290862799272977535148235813704166853347432278645201778829911941591958619989050834366179873913745075736654755576399255557510577516235399710531520951140970596463558780210066538881535877066664610335150580612333899316128563703264710180067277326911588290650071552066437986976337320039227233626104905396599150864016272772876898198372701294994782171876136151407353649915772430036190871314908985182700320446782594882136402219670777682571072108757117286822387547100489238660231608470353814201166076879487686653075281937811048414233629669957835148121735115944189215587156014628506701005211945553065805994473958927423786815976388026761174198441224715719454225216844754929462507804921023993466899662944108189631663219637883131633555173235627173732498933497320761805390147832888993820232663048063108487005193497540808921360985022542241823345469892496443669520862399630895236201657901257072321154271325093916716826885980520051131265108349529059195538807189731877497156818038377150730412710284045617709913354534077244495782682492845469139251593329746800572977994878818322085765275850779449435357277910754153705152167649396315379060543175210729599213284398436268218146587592726817227765629787808934995504332281969820994735119137781884241396672353428939887280214116298699735319533227149686760815829156013048800512780525281428639374314596398628530943792420020038244214637101718654416095191006392362078232691128377771692495427345911033989568207592658809689920446173216475106459357204190018142480977203064500596708553190520510069822364184257940577974389901125606567914027807580553517657221065698317540793835596079561564406131645851793260175924184317768537725224501010381464579099455946977546720919006563348000771183630997024340325216304006267376609199388149347976712817301900083486106285868189260842068722203141462086349379067904399013038613208826500126431104693046284298181962456063291976642857366522111762438756512794350306289713144247827104839920298644400688794301912985581281203297503512316789764070518343121526047313891918128922229610870135712344012234444014051326911154000071314182366207463075687386564296156646713993292308860140544696004712562725725044982893312258275703368084752855339980467993622975271205744291905411218841282746859268858438053107386944686200634783167785666206639532378768505631236942554142923374924820023437243071323754701117959301006788848161572678250537656021454492201853108356105112217002723805103971170275416024367488598353997423598198896460505036832901507648010101237232544198763980179252843691002830509037577075770617715492459729075833104422182685582575614518563500455622078424219262155929777631835348809731289030711459664830509975059860349506175124365755969557608069683936199868673650998224886854022789375383773390121100160132988653253442260696320061997967564522654450513706918195176028151157141804007986229743855997660438531789098034826250157914358807645468546120396864436817258173836558316665413362654621572125912259224063270095315866731801498801229202566751812593087409714875727504617741738296789677330896864424120004327798974365071927681377591926583531171941963916829968268586329740202611624282194729830993751036787109417666696244737719673846524921764759653684593283414436449850134924059567019839450923243501422057494429499175399135937023058837357527126076095780720191141250994159964719256315617124754723401488471298604116419114004657367185379753122066771475783517357809178367873833652818767815753264108954697465554569288423806416747517394007833840276074831327675454204472952404251153656809951584994246934234206776629953350231085732697009213670717004575428389001028572024411700609959956409080181261546421337535699012064219621814832892512797303398237690846817562629982980281060532377277286485091308681847543590503131369001454044019776029110482959064927186596149846837251308319997797481485765413772233298902954986054016179135040982329369350930584477652324016918149105041894836758766712873516469656016990744314401273435882562802600600742627608353242902561090749441816617146207364368936521262292254099397412611315677894614828216296489279651400292434851338280609804701684184874776834752209622602775916248003365268791051408688722942179862480567723415137757027904641466109826134242343925069600072355716287096640637804770986230466248125672129684608558018700240249541041041492875743495233624749637032744072869637424559017992958635335073337413716306299901279350119514666900855877659910040776484493147972627230187406210649170849285122987542165509709924392675588890036936772840683330556125508624758693025098510526203309362535093529711679197296841291335833807215886924453385931167080724411672487736127069934900765309174851157229864960653435779682916515367879771331301060271253404577495313070138695419961801563157722203503222455344603501295681238062390857773422787439798510095760928608708312097653540032851422585739025201695874254430617786449311623072795431141277884069195382181589241780458697349662164138134292727537790075368502531160931876184790652168078755683880525818188408817524372828231720452190807078626205384988522423764003927887943032109130285548582081679468987040427179028655566670639260964975447261253614339219136497584864978774474817876923199514197805573833408364205162902606565727028899559722372817950059260703743114763120758050806643806597522698253769733191301291456549568139594521549398025325127237526095962673444119167153563269575134802974395554727487066225688811848722973759280722288981914854858811766838333329964081687682033575475989897250836501274957365306149129809592411972348458007793209816630715025239002166162969933154112860999061584604613724738063765733168668780011840525227913679701086518074838141890862873961295379778987420013765908191951919779428577140085863973864379982015038041522508034072303363181635160033595797074367345484481704359249788560663363535429212388745254610766118487720637912584026576097584741416901421319269530956453633911385741771855571335852685792102187912453122151518847194154866087296752907224130466409346385932345704480235597167757897353370934725573958414309336378460934222427323205257445960151613104772486793971221414127074895814734124184444621093134228409661609147712722261315725625303681613179885673743443467043055730991977949928066940968845467754512994452465171784501690108401901326906301557828953174255882344785774485033761889306508512910202705423476701938940152820820908007621314230650551233552989136398259306497712150705185923133542351384953036341437650207336013649673498439280788851104977082153532373227760054460918043582504571207116668460231258037147506561637181649128316919585164018935773400869143779234297706808264822815901837345737586589267504706824348097879466767912085791106482222295018674069703806830511124674609697025880596451913887908293233657409515370007454211325727244071042669405196874489002773828331729270547277378755796755821678350327352103764147277246534804801366452801056975564121263775080728182977835464452789275038762882254200207158297892296662695486432427094391000272057149056705604861900592947743581350961918089045123800889113495066582134203141758583698258358806724352109832788159250167638914521559996110907683704875551897529903819892351506279849047611192655785975304534836133743603389344355922545280708360554965997035151156367881689798485269092480818950647792651915123740190103407976343872673204485145939379463439768605097185720589154903651574477338593450043788597094422376239682554656208925497304041397744736100955968125878806528907916852433591958095416344473271897551522504746690003864302818866033891362888980332986898971507759381464946582395029654069127363210453446811982143018198563694806346912191996920223079590915556253086690928069270648806482602406692517351169354813780127384102223450677427838444006594240546382770188616901384150382845860923881355393526597192984652085997975883300036465876904114813794835088075986475736408673551369451941177036674208951503032553812537810806467407196982068315663227926942163243619042184662573261013219483111982359494632093892719270880331023308520754003453231846532588040717142835572533221653982141300366689257396786813639637517904670793230254716284415763683895733672059954980767040681575601428630511701047156234599238111045169593071001132188962787678183006675164192523211190032942955822865510539677793418024340170748288732658192340674305648634994641231358727645998529547850783826659278809930573517247746026296504166922303407615965245618548484983433033145151567784692591838387784347962193898077731397185454906260862865895074969141967549779503859301829423249584048580760490411852960425251044249851803273301412861100640738651725279576818267302677414594720778146053641106292236856914892328219951398561925727579084010962449148519101394789166792002264222310737760062831428090659037031572626831756297269951765105695282214332921569751865495588847332554327466424856794304175933605388805570018663570270977091691845449903070127039022888261087069788646644540973214952434102313391193651821565211006611081420479859308199215522213234329754070251895167242171813649274061459143395792600091858769400829411878032138314277913983565122168180934467308841562813639917490351093307276507025207768272091759183061716664624796054845117355851020227457210601801218944215596658903586817249239973613521987947237781334536783686071041003389807846856787188176899793515182690628903109093399725594875445734625969004771653825373800766100981935656453027045347724111637443363964070169274105756614825254846647263942822236033318337493931539279423518615223754329504957251042473005063128806964710543273735043464023850422326966795612072601157049005275821250550533664573441813519695422986952214869192396354660790572092330211974567057829420431192263080550074324300545624815655948489535278525689722904066120258806419501786981764570840156785107676575077065052243318193984111047056654528138873980405291287476671759009509414570442861440616113632911026622919475272603472486685901277501932935064920197597513895126644194101580694632716763450807031687689465290837711242888463278401792194991766762559468135479897593162755462177015279775386304151461342250154891514879714742639375086536502738379617055759381510159084488112631357746805721004689522264457327805043943757310459457282457963553540910332492986332367628859791090205974070522238783610764793935018885077988554060338848931838393771653418154669624083005101873135048952757252880595585203390523588604302885709526599815364209727539179769411068915393551171102659026744353284409022847083938923880628176567524047969930629439969425050034849922866144032927655894802306817254977549776529818859295672085687647854101960497668559894321253886388035588636366073032068133554075036556031594288607504167867117697733991288200833760727673872404452039334926514185737283795549353109068057581117527482123882633322465775752636233025795664815504481386223971839767104689935200642366659626373964216176376086622045483181583732914194680365013781283931650254420598158383878506960088114515992800796531255558281180114728429960050283780358467018146035528604122785933732548668376891189909040246405521875647998292159040453865026317914277252683492978902583766105685113824890304847807412558776210980923576623882726087122678847961566784070578828926016333155332159662288094576926353604688338184676828669928094944989779483721216129304103485874679592792560573495812413397348728705713108755652676834229256143705028037852354848168227089901346738350706839442481475801417893892267125812724932078197168497839181278831886416636834948023917065239570021558236306875370007956331037265943119077349391108334338980021497470743017670826531143643094600824724991943587232676011241900146768334028577233197138915592782065974924304992381609237385078983587839427782461901267078270237596985282671539843803585194143179925421593160056113633424648719937111089464784128918802687819299007072500705626140640632935779965453730943443241218968934931183055606047422159823177901092131980009463305398175629817046000000736746239666940943483586004722509175390863238838835970743715401174491214539709887531560277305915580611244774961475154273497725594275279855539304556297039279715393554088390721216331775034375863123610696297081581110545847475726422245372815313582301269294195586331201145205937523865944387736411357012684526373828019885079052995555987828547763554312864546282920700301787703529927679355172120820778742793776161011884915221475466670163083683578668557832164486048513698846963073532136090108700182245999573058824249269469198328270232256755528932859150178761676617926084725274782714638471724761096270113017974476639355283590609489646106821761218951771631308574238591053633691663931253007307721091772217432646277001087648071544047019469067967494017958258435532079247201234488039899405228034059263229269199897405351743304513466933212939645670806378030407816033272522937822403921523448354160231980489394604243916727690284748111557106881072638750796682409837495542938164129832400248021139205125004982792975108578734622010954009490787885178059590841788719723322557798456034911917738224107537665608777402744749921420085055859212906619450476844095676234225106720521395884665230645537344786154846955110611685053939730217257737494113134751862502574184592699535725700666670822608169932140921639493512862444107247085751342771951867285319392569605291840156969384546020679551819157513553654772960706306743722665027614866011268643282907297576042702957066643032512713024061940630776226664578136359629030006474662773182757270140336182474374622262353861032597684985064123644208516253286115728820904784565725426257486725034887949055639879528045658372047213779301759403395654295028863738828531559706084974591238977669759493788417074149165129679644438634864487989093389526943224078406408084707265979932840865794713240795644954624351177300074090276284009149324044204174196233649737328504233237603571393007900023899683136967607614328858187138238311388526324850265086234493081095108060712686843217099356575222321137914634650494892319955178648291777368493249230446279934872147254999692506619963762011712164289170703988178624972395337108281013730202012740077017854499516072196578176169570061445771824214440603084875586666240839969395955650334641626632409490088012097889567108167308289796326546883900602882112219303015340621100998637809263963668200170878748765274055376052088833777832491444129284006600087255384786885008970760161921560519589181502221788994464622698294458570551037074169389284704804938936867454313176084440862754376675486837314497469269815445521598052966654992223541920975878914349618039840072401561846007489936990038468676210970072308843745976343904545161982054023133188364174525418901088535247241522621127416685805147089303387639742283380603195114238417501414074552260024386366903075347170518181481990113885686550448945339980613387982914382164918091500788738299360897809231528036883562128496494358147493564684472360716660348506180366627816294695225920141313973073614620459324443468213438745104120488084100289009513056309366652743533202996840764045832497158213509046212579314962079682492344656909415575890336971652375543867722719384191371517874247018534209192753260151876027424509742074367756415250865833438676859128433849462109112964561226142514235177911633150321262535962567775766780291742299254540561981426046809744397641097341368117266203222851742421790241601469832345545948643088385704188104860822770181594409066491824876595522495773274469512643851055591260918506190004044588026479941638016811908431420374150058147132740513873286402381472499930812630418608993267042148756138942615461024721082046066453630724994749895211541943129820493759365160947669868686127212188975666182302802218314295674875856201307181995911188530139177492849039352496433161654486719945495035683122834596668042447440056371115325050059805086328821227014194507590607611757212678364629573083778143903654049339617337018104914512223354443107287077540736569806410051100560868864189023258106958071227575160558434283159008513844273343065001856266752276350486339641823369323654192577835796459904319483047767032012108254473824667887354566370068906605705962567304908504738496987459753444290747310386904972956216541209742736024124162030651069015912003551005363532442014135839589242322316740132905866987318772358651149761391751403201270833374229010600578634389372405673806968969437395972583145241204158378524607592653313771066749369228822659332693511613799974619238642437017959435184659263841416948389964611665668306232005689149477416213714554351253074597464889161443621689514042806014097180728303463527906313249659966898536570376028642066419688439078602170887663868616869965250312617692801233357649548948890202224324902320627630045233579762406485182855723526257780034950139650853475282596484575708760606654138645700389878811143120528610321340259501359105591343886600665361238156780801702395147294121031625146784372748570665942072901512963245731245892253264223154349098386746033358305749137441259171899917556328940619167520182557928180416677276775398348831029163930480861758227582126118964693936034335390592358111940228443132117940130075005847157309424871893427278168728570454425613600664645487140704087629372321285390733297501532190543341591875566872209306431632792105797079118853087332965334105766176918765850918647013403271641334887753591308426602130496276598231097712288153548093041785195067199271191966228600045983657369173793765207303544437338820264461193049590035021698324382031712683066902576448337092699153115414966503283394118610655270044943730499868036776455428632704768948810184447792492997536577612438171858494300896521512866280741055461504685523569538820400165997163052992098985203068324881050237346551563559992643767060570811939922716905359098368876727696456216927081872819275308015540833818823720640728894571153089760201425679919654429468607000920914342685922434700729126388129750026788621859532358946385322005088848890814721618236230650008968133813652173774171496275545563641938585791382518853483454835747742064833051435089731230033269937116466613164053509824055551264497782765878785249159454199014840373701816623484457942101843795650765544150407683274575648573384776134485120775485590493959242871022719222547948728020638597798925623862114387017405266850400864513522847157787643197852791322637902542517619345300701624604131849941956456011298311966744658544013571373684195525746436784883784795266084575900950146958862051247079935343847734144712848300148983944393555412436296618538662824675401280922997418632606503590270531564706953640050442230320731397098984044054003009370639489115235350839514196737502602488369900254293365512897757208379620388480560747370097046269572497318780514181229701937705581537342240152294534392895032781490732904945783905961001125699097760225803296925154478214328009737082448291009802483631678001775863464766702308593753359285089418821441311512445327339447253999461131425690396145714536198863576760628506923085709525556501368458765224821798468158638316213500761292289701495024626515921318670606068136807349273945415777714852730261911568462195923957853452701842544643964672742218848723443484938186016955133843102191137036800382483734904898633092775578114419050120972005829294575055754219258905932397131484687564873007750423865000613279294664464127284563294362704967316605943918810970214861246899095291400545422617824115742333771936548503254951857314501026339925187070500649036258917447393236094141425412036328049252897335245544513750443794027224055431706442455513964433216181509716680757559695017751319601780351132315782586542464653377991006503213564329195424668345649731686575988350796656327828156369480231118128045403037158403310823986199519021083492594319752882737432601614625752093871489681100477598741641041682938108069040283648038910534942714591483533524341250335494239683406277716264361485057303880709915827533677574575969477680391912101725786093924691361274936798200814208176445350715470184088211075177696971950398571926799909751527575392239952391174100655605038346440529341182973757800227397146993015681822336803580161406908794593060665563056093298642885282041864905822556876244112477453199684202563594650846336653419437688677556205616092046920132538531365613648332038150581537603454738892447141287958306969326253102318817258762786599106762034137113859353314693075262382910113078941729734271425629356917360341862301166208691747084697670100593053304807128637041206584375619028010125742484645740063496031979772275156210455579447959317981353592008660220090204006371837271910022636567755149047132868403437602758635315221088421955682998531527236142267104933855793153938571943380068455087237870163044998677887622847625790611757532877247754740166444529448767179058183460997236530160335246101031259853661410957355736252357693928454131964011956221460382014756624584838090563595249738040709401875930291253487636574627860117880880411054373072467543893443115214935265793636514094077123430025465711742584694258491316797864350250545637521736324572294102482453428113223241007097322853975877682269402209423918541415830801385544462984029912431914184536970754918644403998227885059626868582964805775769812277326222556406036394155714511673371890225573923820010609619269959649970006550502741939598935525776745816794642101880522153611683008064270776227377010483634648046039189702268090275090076609214225529898684142186401927045311177785991898118016965800688084974889735237888780357218901681763525661883290625284594307387102486560429272522687722080734521015632893206729055406007286003202431364839643035800104150819719539586996807260746736789746509939020685785846402777100274778840068912071636046837491778593988299089694640042195479814944052734150157575685264729739938251181671929640760447192837059000714709315351365276183527949863623019724345189533789352351950035349170545436308969216365214023960641668528253697101330870286991568562104710876936258558463182206784394445030834548915982886868461421135461508673650768352890858154171209563033151754138577872366924774014168326649026523353845918967571520848015878473376517579963971399774687970185921033393289048810666366355258719640113050787689394113536091320982180223144270995761130532229842862335687684835932850204208512294274640604224195341753901818716160201695178238579313099373384003503726246249346056048610552758017086576242627333971251624232132726540433137351099678477163122551194770466539554203946873646496687177827530606295147769889149558262634924839574181708827419101798063885459697339922740015680399938704589153366914440665563692194936117226564714129486525462349949708613095156172678811802581765833192540930956649111316457902304628794801155977797299374992573469318941873494221724551695200009679587275418104024782528036058549683786510551910634073777066994586173607604572859343349342094844333667830991711284825626217898859456965211988882807456182666782553927756342052690193249358925654581942445595797729013073741307290466242329983382553129262462159259447154949655970155661819689353075410350406796773389498552776035874514817441191033160004563742102807350748104085760489649668214541944611586942471218737078804157230590448327490353817906708217842401163365545230477396631370363967665212725382269543207435967548227870077099007036198617000743335143230312193361979469440926165167437227169935887578216935582252895396746212934837159634675772083505015035686064858277218240494092292929236762027191863391801945728982910978753703480968642247581506154808903040100800156100418406758327163682280785475163916160109966309422870829998505194051475208217364556408269703083594623623816094272215513875140839626662779017525099794819815282084817264498475450732633245282636707214499102494488109538416912089693120370081406522507440649714484439260309118233398129747760991950125977323436350168727672952834208648861354643371839837878440520188172051642374717140804429309899025376469231263612466036041869185189815979107370038888282071559292377174705780643329629154156963920291217578922902240949863834118947795157418490707781636433981967364003251202715020166477812049516835712484937566981480096444460205241311471519198686415506515654143930542082459449522687066461286652118863266812399885380624804127093470476808346411040662921445763562190991026441424500873604986351872740715887753712241382264726245288092720233579956429536317938478805018621841556086837579521669613612051327146198706412295080767614539354851245817330097765058613522293739488892861819095157254009915070233725182080731317371115150631858515729554073869608847269988143002988013376774223196860214900626617257502488870485721575511825607046354457009074845078217783722077420148632839717663554479368619676322896758136168836524019523583680047390519094114572113608421554728590461444361934566049800703280428138122038509411306001032809251157108230619641398928575876454474496832352544687581136289905529906882294341106331812010215913433708668836892788896410313015357858293280566169984456868940114511761329859613226270519290008553670364774118999065645243391621405740751014958043458991498644319761310742847673342896574809444910703358034141701017940989607942843767336819586603001841822339383806335201627190683246320130515418720352767257140097685633353703291272252255231822717009504986551834321411909292963484793561194351368998003563745515025401487269991210655700961839227648025884819116953600038861076833575647326148998607754392141603040695902125398875614657234285371435690055053061417162869036209308748356103067218375614718463229659912168986955061595722545005450918862714378784162507084113254186687066446325742014923910803945465313279516581577581204027001817844478799593689011866753440453956256404438226532711956672739180772166742082244894893680981379364990225730508575456720724167272471499644009271318610660622403018972197174556722873982392964905542454691651517981636342137941117003478368092505402339986577571862996611647877504167372824843230162124228102189552012332243052789284772592916986394380412553335166123145104879676014660015708266341074241661804140209398753540496708631743603787521854502429172535216584031943455444160258082276439777976496455565949734071559998231552443765496565163444811409491436894080152398179985119469833046070674388755350225280745066260959642850452612999237902130817433206840473898214447944516122532069284095302237121420112244344877354393572782596077609349234194877634699827564832034672440103530311820576566146887980077500511081659541829813506682216766425304626877859307575808663602834249755129624672057163803443491924780829951907238998371209646570821570615801273438905209665139044416254051654294531086641904687361898182771513183676072266656853955190228132596894310170404498149227958490288595330251172897743576348841310018294480832623892823540965073896628010969498792795162665416084132034060116427552504498859774101932773930654402570677293058419909843843984129548522768800128263524642804071996443940063426576639978753573040233752545087961372640986692978308736660298689609485527978899388590935806832087774419469728939006792485883979190989372196251441101741196005292597525264022091433648455636056849600123742609082216770109203790448866548876427153474095123228733006277402534349692244859849791096960516496194213635134782923177331766160145487749402781768294885692986410995697038732012220570554207375772831818364732857900754719147033488818428495105509009645453163235955127966830230904842799582203599287104802052991706705152950727091180567203670475263584433395001398450937457885185433194300686821154918867773577831966752017842866861327791671407302039976295517397220418198478919619583830917720473710774778545161329259574837246828790667049982380963149985738443716099852177922052538390958805238299373003999608724933659437568647896065874898917598465463218359975314397601648477807533063165962213515505836002914361859576927767172377013976485565594272860376743821780498653967916409348239359592594062194296185542432171108434677143215513234221861952942110595825324796117335320070857704329269050289919467870671368127323157026590581856530580393453942922944414306150318122683020543331844682043540888758371747516706581548198765761725587719243750572946320523753227554453132076836788922638188271419816762259912801795509397769589055967767507153420059453721801203032668113340870350982977607482174229501184599431479328833608656053173802936818270473885649491081780307884262386614917615484571536229343467757247021055131395330184151892712443178306325178834240418848955961435626729309583363109745258673965222043497618629637039846366589777630089492330503601451275481032490078012899422238113829523697196935029486579804373569185702703516374749932902494529061268997085837249487734457382440483738725478031031064450225959191127301447294869519134412392609894319039065214683864702605722946252509847599873460199758618389950284782703123160390081524174511693233305050880662827806513832828599240077447752345483917818527755444104977888208191812988707190415817086885187389159406135909326362434751289625874298993056355200537398623272725596972052630472140553323919831896879656447801972203642416309137665499482100024141571097633684924817481283758845566825583124538637940957362817306384480182385963964897646778283961839121640058374840293480679179792634337137982644045196106315272550120325733149063139016881660263106951416835827485123063759356621491353011289308691875775352057891598249875143808570120836866921437177231864714068204435832679606077974922696558841324539906064809199950480027052766540343265548265056074714023440621089261074139642194832178122280645574841095343997576483150239762859632172865993743077009253331794632841592239540849687833527021024214430802442035101300618044603660327285889539445828520080532143990963297411792838054894986709219708661901960771589387560203948254214247530604617931737703404147059016237229598407609412838969831784912171320835010664016902421093323358438274439045720866013849757418075354956566712170150013859576770522682773879721082659059348267084552709201722604864147947837640071938123982743341291726946608686976780325004533796364519774322764848176080024548261093797883879702422677022215384104190385935629216238968232381116930789004633660336402878647726426222006285840268466136604957149023871876824641663460818160229701688494502508950856084210443905781796079616024501387108359177205187121010832099195039457257974631738831442789850147453123349433686992764230332795926927579279643613127852366764882664406195916435629432274329269875808673456017696625409191018826571111804014766609796578508019425653550991050242743402194861433690069654851247328570225683468458536085709385578029728852305406533557476111029912294502602812931508928809822208772696159174354855595006160598754669583879855789757434731102810225751790418725381317154618917392783390936144006982173515240591789846506579639829441987351274743346843108064423614009882615239260028468646717610729155291322230127054516150044215566008266603483121043382860801099903811619117077999195390449170324350844355185184104050490417305763427742975312280543270396934820067894318823492859871204368622702363540544132440998093215169385234118638992993043931237165140079221848937939958460743717387089459384162464357736760391979487883101067550738401833387685006307422923175435733493728145386685369045316301742080576897067098254251526930826567594444117635318868086050849574799516677828470811090276955847529736057866395859629511318185980671970629390330119624405028037956875884666843419783065964107389212408954651902588683999823067623905599195628740939850760122641452915251236455043827730037998316251913616152932948655611903181640712286360125956275170904204218950505857454334484499248807282574871201608049993739739831424881329300143206732043023185019367803833415643394178856562454631418099801576087972019849566715186372863449897293328802664756434579405296608593486096962722368460983020080604554626706488082701053472496186690692756270160922696091920220034709879749892436882258179083047074495319877450165541769346485076023154674580887597856213459085894552060491549890740683749010301658790050651811328297609027086680559364925093578792287741318629676368709005493696970276127464977610565550675032324204206959171467402066693961341953442445209572070238668402119758472130201228316900956743157322494170708059062731035234782834105607967193814239529519992182065164026325254272841027861965197765087541362494338959099698378069097600068845779701520811953573431371211248513677814012604673132242890225907941362450150485020446669049282400112227902992770416048498198785205893758222423405121090567081815029082697978365675638445554501483762921823963567304017640061291212450900727402331957308990612964529667547699902605430053745686384048393400644369340359147842224560650796728046549111392459776865365479455815738151346074604356261050290618152397895467450352056678900812273551005251226910703832833679112017114204631045103229505092094247150108801638188214775881593736188382085180961652881613387334565982775702119808540284327216120862129601793667893956878812905301668702090949645646237851456476696222156497365411720296200139223200194716588144572354254453552231790373326066599690963591007191425052526461007854640387874026652433380131728571106568352777016135492564958446404262897371492277522956680970091166748683550634000794935063174859912028612789454012237222515659611979821364053567917575328266164708533426684556822054333170260320341470163719811460377616380050924293589476286574494326755481864518678346110997603071123805170834836916907655172111740294590506377769621570391402161721526341096209627359673198435933681587292765544015958829733825181004409454451892810480112028698102079089301236544545403674722282226246625957371515047215971061359261506093626914207124775426937483078729964222853829918157756680126547288730261655301166075615273131131413087651021177320161202631464512474670273403200515321791324516914559640839431678044050959904334173287066139468837886154250605436165128141450838209086526544354588953970187362039820016386657192988627888703873708576141348775441174070857340353262148479499489261583819245034264956043269353386444415614335872573965195354675220698389767553322134978917075373106689990194362359339180375852018641933710268812890810566152937018843768630546205731680635488779016486994153749594529740231461165607204813949394889006833257131849744760311569477550670915887723687959286853890705120553510825443167839848189848201476561542791388334747884004331696397296871007232431405466926563204418121125478676066998239939361601110930489694988020208874219220293556325439551885221442221027023456494055839892975764431064373745471056319199084693135773845974445345042435106616252977215700783509640538613487551831023675068129497413104070424291703942444162161655170916898454807427460194917671243270148795133933422228629174373833157204712330893062419099712400796264706874069790622057332181800143438954781218436199628989075503313556666625995004275664955506189661352723898092789463844497521134210670728116597540140810011918683469171260681357022611891329323830630983522726728663248879775725066510236166999913997547551065452290981935867279434855572448112241419671599520384705864400260600467594548782431624314598411954247538679952195129671095158226852212701590403348770134155633327961340411109629268226373547944317971468838309400160082044343222831660953084713274026655119512954233650102509025652256952661074738678709592972653803427617648507197496443483276378084169996281012943954822743509716689481341475849511035616976875710885785235372031605618665207413122183359228533682497814115890428670957975165843220323024601907213699072507599363250379984718258213987254814698905384049481561211712993329404790417900958836698795892034777090401981664693208166092779150077171341090726740287838963211973960531458144329768991000880971588051143479354442558247921927101934300465767957245711412598141859963569219057599489712179261890302707177205533892769503563387458685850798475738083449281657922712228743378841037181015407792785132464811410391576476736964359782981432389726132730526936770170275477591295410722319978186008105229357057951108392554464916572463259596687993045554325159284518570101546178399160653158918961136203389482085610985173227944440435833235209588499588495062298257425422355271228085789489935033897159880713100028188771274652567764084190390999582252200097794802202676926836747807262098159632261771558628062761322847858886545282669439821887282093813517890334394883411694916603963338931635609729040851081031635047881076601695952858992951131461579916945654979249171910685766940493749640824734395159569350417694840064596209985083723640286078424389551802951537535138642317668243071582383723969489277559840712556354203652216913428620851518936053217053381200344084527512163423247334203711758265517833528326011820721210684100370383028521129690008600535201734267825646730066709305362765792366657984548483319580438697759196462645066427281371898952834504003129868752365114044966117803161063863995101891784314989657054419261739319581512744222548991016793780761413545228730030878971139932718637821870875681020010618636473536656728188616255483423978408255706779074259732399314334265360071188513899942091359535760841131105985537209222760246597385578748766443444927311087580144627514790902169873781919106356865253744503793465397561888157956514740714227300708887761514756314734728000063645595889042661511789965431714071004819729638163506624676111681696456249549385743484291879987665694386839123410468728377409514006272925988214297552206310048212782469753805141072387081285755920130711222237084794277955203667861108814040137447555900757057385280770458467432279081542006503343113267849346258594535071991590264634320618829745762418845352298517984430171008458688466073379040740486017939378531028854370845524447992182891672473595426181822094353570260487265852754792079669785760914549623507856234246406654942293781464406746839463661966934064704314225588370200772571971757252736177232180457650584461923994391657592360417791362920156789824204045456520814192668082259153658148898891203210741385927075284233235163007139261940867432058365033217459159269547262019163783274727244025366252163100959612779596736087746672404095761279744079798338701619288387300280135146154786194515189953999648031383231031922827835659611836352372542936897568261971703698655258735489866186589464876099573473421337521513652646312971511944319302214116595339357439702581806686248340927297725602662096721772324475893211578405541705425578714514577114977027069356740161598074567265429020337008938898099132793748886540068832417715402699673466208841345766128358059885797940572287743294688704063085606556547774809349660702486883238394213620600894328679072130246429139537881419894019425503285154312727052457997805410052253227819775020080277363891030621274132450107834856083633250421598614147107648682325009969601003067057042768160844783740388845684473110797052686590525087181487651193987723338523522252062760101936642097631458308318412693316393489191308812602698483468284591761829618280770838021582806482269348917232003720167934854481149496412202586461215331383700506008261183593831202809646058681343550103980190191796533312568033618681463209938343960070836945121661071761258175255493714557950228722075642751471407417137575287949164208154760628219420157824897244527111780278055046133847111984842651053045254612363162148392227948714172508536191984069498366291443606730892483880698353096155877183360270037960579257019081468888982541239107210560863113282488939132748034100691646315209267701916960445914492411123096082440435259649858787613355965788408352589722400107976603225119011347880420412281553690291168690993727096578536066585151504411427252666851624176868997694088961383046600490542632520635534852435933907791727471709960917743535169313092436779334771066053508351626327522571098831112077523976220201296080698248712111508812162619866048957512313772053001990226253712500109594430224036518127636013393909599471592597585945388287708563923131401779338686924522085885938787126941841477517720906094926088568842352815022100094431347135385739365629188982527983694294071091935907644779527152967426692786941197116685234335577797717714385152685721055377492526394463009083168436593105906015242761708142040099069033402685538686634559789724064243121037057538592840181304815436394884494015901505477838891825204341822348814326450856344204907592013565290158652121231995379508545106813752365477192149417519950385758104496281476793813896532402835925150749824568442576713152126023049340827295022502343457842020403669274415795498579873578456321044949708793969664986546030660890806566722504902575821537562600250603050436761810797664123875930828346545461693198887451050629963574170864675536442458045064172048824822288630100202604973179740907174089927247982156482761022146816854345109983421039499518034529468060631963847885515858733003649207545455792561464367086525994799024621769655686960020434190443429435518668482520211928837108997792935356097714963363853431524506089670233073021515994769383132830242601447558677181570339638513396079575977266853434438955546125638912773086910714593956774226060930157737581742455383496028342184378522644754613637994112620058006708463009694212560827526036199578066181865272588561672028292760010003761758219687982265995834794892845453890766680431004517264857721985757679022980445591810491229853248738856733944171121830672207559870256511740481796039436296007643007679661912601223645173928795315582037768014384121797706930749184856982500120789387776416822524932829101265380071411731939945761644638006595006668961049411998431365647196659313769528710809663048272114118343973061295792763171079260726619096644104317330851650138912789460082718861232183810066106600504562653769216039139581824090245664018730471883543790706294237261515398506008639564560020147666629046633703397517390532808018846232765870935729928575431048816890792047589223347671289034279084669019016631510570493439218183043673439109133173383596567780783855058556989817653310254247303200016828683105456146003119590778505607533449864463221993609152796882018083255670792704196466925685492328795838048086309016911765217891675399851894977706234901679432287654255810726144855171895636622067832769628466167451470322385477781419587421130422834318382343327136005165415949043689338717249939754290007187648327143527088217422521088907038476665655965885474974232265647589403226908352383559920433933100399517413590943488190422910849310806090739826912737406578925190159926239156305864860832709380253927316105372109056923428633967767919105834493659161150597302749174638382371142274294762327381621791182700108861841872728392970643116515490417731288806409665107156577142521437911468610862016232228615566924514716280169837547160187367734082983302983428599281033963987533766355813491627641729209179728243383560735956073324652150853572331052898391619958209806949471952743357834267887566471338300910043274397210439290660443757249489717701973384531936549637009926587350766029383133686948728661651786658640495680292100464907236105609106896812947764287480672268833334561698103248679004886151271690546259510796215981355352384509570734469639116727133780623037349265315331111044343431251301483425022406063150100024326136223316289170604326102383151821164202910451899894530343418761897454803471561861205612530661201478726765027085563153230614074492456167751699159086792722916507046211582880039656676575992312023643286523233935993058306881535316185127814118563801754377557919185385357799350948985282533035031535939383608434094406398816683440222041233447314723482134578182442094227469466801886475345815929832603175902502240172541749900698717134328582532886454471713196045784254753698046339018331594826187057520122719346128558989356825797613740484462966209058103504564978956566152126617655260562821669917337042589348114493149651710126339585030924920120301435188408190509544693863401384699903427513582841457210533083487661479425289132566242468297886120591837282290168186164741993811780509626524684645895293181075063275288349415322391395561003287027298013278929465635425789770918174086460519236518847416008782649202400984669658103132305753346707320882154276949009523270498476121457769024623725219210491334506750180476560322542913056440276933976188957708518937472790158121449559127804015971681421662033844777229412517984533524633136404287662852937149992802947373826273689942966988838554266756498795783217544901105734559849804445850211170850735451915643366792464570484381041801674059484890921995925581694386122172015207334651718991965007852190731399953661386419972706008632464579244221739391625001420511152369257211708386245703467486994431925085675321953342898723632630956809765836423483955942463307746148719901668643528353696580662368758990169086102543060279210598477910497566643479057652837696801438360379218023039160940864850556628293041077086034659096966530317543146831416694458316737719300381559216718929961937587996768794262965175912047566785800358689712792829283976658391174176445489236665610424932543745360109191096253934656415384443468089784270262867809643997479756854827724462368049020201020165961243502968495777458802425121702619294463078936897410695269482301342616493265057062658441917148726571009898882181724112789528631686812615163886455316836646887591026751091231686302719512235659538428597084542312648468602634800751485143381339061983731851322568180685718548211871727006512178784079579399286483408566482064900535646422731819912369332846582922347808708530435641289682937013760265100561008672083092170596877289221493004367410631188630998103523375304416710846625984249525010057831521807345783390487617759051570364833049517652344832659047277886022716808076817910010941758682574597770367930114159776135425777641742513906819678753239720967618692856583382800097170051128487798946853116046864761564182263677859688345107371041994591505326816491692229192407474219134570003522254646779707842663098554713831428018350331601288714566343775236870773411838897124036639104981115035032743115083044888742880587238800800210879879646498159084017544845239972075252880848106874491472938359513968091781718004577730460808912113653438016910394081640023604812544035075857804019809637994040695877456383836936729815797811015109321674734490872180117468664379949684471547470858932697247095010169685904460914140964745339921360149208363424780977410301497401267372555772542997333199758347076480463541718238954485271034983374760572024887442413948251689852514353250747373978211550978529150608977515728985594109297645760378120609213284106337151692735856618358860619745799109301711915872414380566603584613385659036090151974629772834737475741239698280807485251234167336968774396050965914466038431586790957998243773939901237607666700681662397506043574900376734361625589808720958427284309003556723740127107413257157129568142924494329546660195328905083009087504262452961647161081245423617120718967802540276224024005627078151279809956546796223031199560335935840516614551356391416152407579196589411972111346964707281346105727980640623215482961319536910604492506291906293591109015008269044140984267597914954277739368073536163739547546971082649960688227847884577600667196314259251002436079988355230847202077125434361198167495842388057211364954460278706722369169580763463913358381505107916864549837895412360146117812612204353346194971537148369426703517666027816326696678333310232200525236804994964722378217279028486586525403602531782367950529163613562538043807768461673375102828105965136492512598162127743618301890322483825444041521885812029342704641621304710086467315324326608542418133270342358546003145187146495685478247275317447823092410535398469869076245453182029755902110990069732560239461172501882234956510509227126235776866661919058041322613016787360225002235303661776507377633882002498759214466038045724452328305470132538536029777537708929546733878441890628295967614791928685570743900321944679868495799169952643190930181996670974745891397712017961999236322163615432391591106917132625083828778438152755225882713877180304942403937330625582080783510307738828179565178900241399489274945300255784132134957024541463795375853939751953772454348323938750921430785112297483769113316421237905474959600127443718952899356001445108183956692742181655071196136035657924878191897200853929155202755133802582771259042933797926091488519719871124314982713746782263738166531694559306069727026646511898177983052361575087297725298960619035264008016287349699614262817616958160972439646642576119520385942580523652399498242625625452067877497793980170224908984942442791695071956099953816064271081509591202123415305930744253859279993259053801903146816180875975210708103652605488136331758911732043868644446473305046558981909846403003511926304494588154907236915867562830547797917570340069698696685749571454965851788320560119020075360986895167844826928505751505145305804769930560057009260015567922065105707227342731015054659601531077020917493509216209675797412909514524463406749966219701429959564182988092665823528095460605239568305605084498682347107744660908073265730565467919061495601602613966642382605803739162133319219078180327016539850320135680202529932606845569058451215019234171355590535828574621253885693520483534142029981170026852081152970455210428962766088170683373170934281262335293620951605094804430075140477514506446323835444658776529412586030922462441936018215721784536784484499857656718363458536383349360853173338877820138054696550905186963547565173034031059055609093442156109035726746343061616376591426105092130985740125846367189668746095234388757187737412277447649079995045497324199292924918259420049851903475907977580005923268536725794587433558248173982722706819607800165948799501276376241002591540125725931463778954233076725265254732426233626924180090725238534826267675850806451522269584908800421990573269526149992331710755629608605202316645703464975700830939221566278688381003927291513939409490930068821140115057411368359634833644262825511376420521743567089116384828313364241028152891749425889068795193067743589241974951099325349741352523565526782446717139905460482703349077534268720682576809047334107921227864803393715945334930992059021474846110530494803982951696989921324093519072860500763233970998724543388066616867282836305491588073182842185737903617029308145991980921890104366007959946551831482414944282420508394861132905703109814052448965321253636079706230924794977164039395409427916330480561421353696987448752813014359494654358550419414682812352387177178549842592816146483439097779705338435799930972033528026947698016325111103168380375172224940009157761761772970594601113744382356155140097548825501177992809097021248383972477526272891137024570990914374377463485714357995972249460075710859017816824322444882832840748993622382255906104856872235727685822771013259646414849082360628542709889879833947260204255293493334541458245864939898367907031772084178853829194952328713951610780311862765476353788360547249711822048833215844242479851426959995770208361501108221746465096734660421214545456007618657748165494780824180664349277992187486993881625202374720121930524124605271962110555520263837736457189976291762508501802019541388999543620153330077847359115992082337452587874253443298892673078484534327362140649315953101864565776884841456020267600591945011758713112153106226517831040659488139791022163133208482688171178514774186667834173743789826637679992592921966639442956754328112656758150033760590161287487542987097217185408980902994529993006898466364093902868968455455786890134539406179281063107765391197750605157654050846146341571657139622176383842114453165190155701889066541607571936366735141939892476974780462653628135096175118040350375948331553933753558386191776579239713219713748134335119628399873203404903355170118892114942242475446849545946731719863563795491507884551126688287648813059278551667394431260324947394237728323456755915600867030531410617234739636518291079972272661531166354750954331084703320968804193218021414408705680599076083968004268024922984394581380961130884354250136154783806471646163614922179493194358676409797901859269053711990779791479825939842574585537853900995869163576662853769943869982425083698889157551776463780411052373919746119685785743271861874026385878195993565579064496091031953362890890250805270562549172594867576656239214257681325593643927904222965463341025423273325097060812964380004930805609801012484514285177282098067882374831703146086943017398479032314230002375674874124737871934693572436551869990997309455384114695476418295175830349071741540518031899367211504718017257178009020882772798768011928107709243535407299788034631017918301464453906061465209041612869579698411347060576449883573683427968371357296527977343969026730097419038267498215225122571559599349651367260426165303964710606050130008775484644804122930266750263199701506141166264528318388791434334141511179449875776586573371551815487892930281641683813966425251168559893692254842249626555725261655155472166814117240448398640989882205676406602165234662263480002947501515415681595388375639129001878577945513036354340173068830454549721976672921863846247623257965612888114077297091816386465518601475967750444792344704584605608268006702116288415380137862400589920034479851532497015558141070140454976275924283374389335871441146061707093515167579705015015323594622317686678806098245488134346602507146912446023887618889071142249234321227072428412752957670644962000144143928061830086097970197066955192416711379136464703252639066217863456577445927552216270863522532248715164107679147703312581320822778379896490944195887877176709227472603870922869592998193335450979141205229954885637894483434023825105846230250237214066814185987996194355897505011091538706314494102296319573670765082879758022658560755037267709589353669434981828328692066239091730811737964105154150131962944138247816541000670676005236000035929768409092194983291104764661271294487203277522135806599949686133342855052707883524508639823887134674385722801235104537243362291960162670956514534798496883517086445303784452704176769406535071858748231857143011840306802809955975132311143847174609303610506975874788174850297212765152233289541272432646829363173722620216573049239316701722127412701384109663339442377482029588336097438392562420651679710296251274075888722947648341853172019873052205066851593914332347614771281714356407522690274311873613805549504944977729488131576985395309500282397964296201084961911552546067999173292557656330047401154203656503694013765837467650912714359698287340451980835735185040614337222873995578954929537137472236152848071134561621089182170035856743446747366786849233998478555437820393279914576493729942885369272918905161203158581047003359063734696939870481447282161696167519593381276840517959145179754740820471983072086072906682715773319348311985932325502368887956511684113842656558257225743024341926696685131165561892385411316082287468345751862117011985154613323259871604644676591260351442513869605332666335394813272118988517977573199625736673786086900616647666999088967544760072096262563699580988441020878120576376582954457054501740665290209094180380147348151755688866785160163302490724256178896259938636000766458389246073051970710856545305719821687038841607130805219416224457922252557917708063983290559328493539825773355182765902556050323977160077945183306485478256599048023911362206828646468266980512364127009774208273312567536318662173162958148630506945255726711968871762448399479526993898672611037062601982615807280517037188540633040070873824848662215459550922986019719466589870287674529367928973648340223709478915932677557886306918268683994098545320640528410686578875605762706913405649168011891486934506509741271083803080429178326438106980312100153332269984879569049230094565474825296243908893486916008215408425191631408496273803054051248325124480012339140782885917072735804617492881378106874005439593769304959509938465892162695608268717131135222605520259663499251748173685836911005773510106237779720874680083300353038791935759658528685296251992206983331423682035626859053227420081290816991966878678740075682311172568543730120152709384321802323088936217805331431394989017251795253957053781945057000339786435729856698657285619218639592371907947711861538021243627383440735917562336103297778433869905338523348987885298418601255423843756388748612807149634680014864699694916454007427188334265936208506837563355934853330272399255787481873118476173546561065563678206256429674785980501000566039939847225502810690179284727444709024893195901348971127495938195912304178577378985879307141836925276397308337204332307218759009130489273528157247911162203326646195550306501763476785455064089374751733806533575319131854129150034378507781337197179548032659935348137747919017786360348524811952637803814168695258175512966932857468635203543169573476738649137018742310190031038494297161856348622589153677354141978596541117694495775192547535071134824034388694337202639498616557310284159391896018613805550649527954276701998488299994606916102949193468163800325413693092929496969830659804276958229562733805791074212562632431579948254173050696370587611645214977308295207500523497267723530840271620434976280733731819675801177484481519905378756512956895626343554574093566289406043428888759789415190139021694064791124971963074524650717740755497610473997354409253856191740883432303611719346827000183768762465577383960926435174562839447663992722064371198089462465541459634410849089382161029429606903450873035038335849218371063687136660293271380129474379764787293721083858248727739128433076186992355371435356386121936085504190510200023481136824867668782236486085847811819489064304263119328617810844066833413947054463294262387844703288016265420924530361268700317202090021612359883138756463195652926377643140735349838466372084987846634053478410122197659024800149684092476743425920967110450587271342796642635359668075853611284756571351561996912860372344705192929625071442272820667859005983297237614687041228799756193126913652541014609911934723113420057281783431763957407612595743064868566051106628753232897768454310031122949532197162458916250134532860355322905134795450470988782294997458396636983154293548014148741110222078367346411940643082110944101209805492394269081505442228927811238572657394122006636727447873858530753178224668458150420058488449155782544203220764131958745123922258147874143879563385061182788219106378231588579216515936624963557862212630484907473715522249864194825904153613593036329325632731202752014999547618583455003696120522734995007716248216381475181595103638482608258326783181016546741869937933793559201855762989343882207089815651072567917690333983831000850094109305308309654317303813911984555929883647809831242675587286207049811377132000389989095066265023578010112993217961077246693358571332808543510923024545236172332931961386036641044704899296823513110905691669766160475682718901923945908815229439633297977941684128183466339011425018735811770531068546881888682159604236349106110133149676255512218042925173661703820652742305983584352503645710699296895152755692482120806798688030241782668850226413949266700156351604432556425554294825059381584606823115676982410414987573815651693492150858784200366293791155432774835839564185005906899220964022494322867154129049603357600449303506599881872964545586381697896342780172093385819996948960405876386592836234495742882055913972561544582972693562710826039459028349892004766245036050485758901861432879875946700677024253050029489527123641644169354512261746630645313594490512552343225025043203203251972071927876261215449845512297061705455629931913374791681157219537889398772271860442892866626289943513044516561170881717490167641308950451762455499920452319846577447467871958743962874079532435200614427030204787431516659406201807332105884193468624457720512718713484156648951207732671752262304979339148646859239140872662037451814145497524278379229826819129812016503093304347213263035435969535178636000321249087786831123127133654091228798385880070933951184196617937112762715493282960381529440202622291413953243029922486380485369658507846312745356041695535250375034552527088594840469100097999309436078810141870640097856310006280797571763347862648384123366326931989239799436776209187452066332380352838064245348901676211266007181810447698760407027888914412801130193472669561568087622057525376992598280387760560788489602084009638374329431479265908136712179963166377860948482864553338574632117935647389271086645374542071553817666623639345473689446845355378735587058898818351034463281846627628409858459742202947935431528600394682281667413398568024377122981689816231023409666710418180218875778001875860782244096833975882156544694261126878725230267388039847869847984875546576159175849698825516951912108519441236925181377919039134371206988156656564939156782935072921636813356692959005802576272978429269855828540603805171516439874065419819751243573911742767916012771466295727413029170093033471646882453949036060970716937303645476895692316038969049311722442941945940223242915123268698994061590379134737440101310809558683619298804080162198203790302656651735299891593906324727213146691165861492523014697445815647009532033456646713756734218233432223571493246633852887197434274597184159835435336201381299180435242351093523975353609815786980462339317317313427961942302878430288450702260269282457882571427639698869448449573209894173650620210219884492449121659560354566949611640527580678722821992257201895218238820685242963064337805148814224294880350515395263302798288235934908241082533058234647311141386555346860733184755330292963290725428409781650633093724647365529722566191677001593798839599867791050678976671839367446299722126058143867412759224676581541888717737002062553042531515913872888751468630603560553605115977916398563131450415483933347097532883906113556873923780030163274713150540019523099758247675708109508894706753902060495524314207436699381773086797144573547973818197300308270434323874521778797564564482841023521553738221950224961739717421907781450666399697211911628710763363303452394359595095216477861331666233695571263507474900123220214074274761686486162703366513320621981807631180036470875459008230357059841483012183350272689029433306873743771406283328870604756014036037818229079639480909261020966958911389094600206993580940092597619802951251676051797717021273059239923218431216088644505891649958667266849901215641443007937270038459016013591997222447920164945322686917639682523801543290902675311728154945654914184181823241054804970219872428683141299601949490771176089335117375612033418268924572737728572633242921644140236716513051855825504172358022522966325793615577862243648724423495940188822170663875712821230493994438291007344460660503429690940095283435377304770347171601574783400940760849869010882285722808627070866890908130628093252462851792342048314731099262715855911175937698504702373443620896076301542344161038895060515829061364012815248489661238717063869441646078885881416818543326309429711980428849546283024560598692522206834745558334419790132730168745262907148782627541375263150927456125829952414392948590997522936404613744101074698907807493373107992984056092024659121719380477262678110909923142060614722657634282756039136188042354654411780744167954644385830868975397277241118416898377626821653102888150986482021854878951003875141422668392826521452153822040036279608107421805250512260223598256018598002969102148127422088156702411464586358993464772035123142045800090883574010907763166189161777269431753869975337126383325121458713930774389240825593936581469702750561096507074852227651183841526184493075085681147438005528183187918726466394833714938051506629428105251620730125346688696623795525731684576868310381577068403762351401381295372257645865073598321210272444426657199340236060490084785864818484973417974923350753823675697987464975046997003118212116887315413323759825742123161091366156291438382125064561615389581903196904618341240830237640575258218352862139365900265032088665258946845449751828669742404503689661530396951167903046700847385674592711440370327587137309042017078582553211065149921694901839675115746954773348252365210478513314304975025796393231398406932435934439964333822854642390018895343756342972614000870888011031503263762279167471024243133857710891609307247640489135669455522141433297247821874570996762815277776283901651026881668755487807686838672362041380297967977055624531193337276986128616399393119228601109843521591976630508323077877973628346992766074455482459252560840102836246024939779782455716167874507743616376141644995476286066602851162225651363683603925759951094732130558780391317756516818418830011092850553491909834787384988435030309020947368558289857573082039129152740921704595941735662848965868997505507234359937278161400276826665778000223875348695482349434509235643505468186216716427664414818027194865707484149446052223349838483665213078769388885349719062854881730783899804119767027565178292691619709096941511278643840816681124207659556579152234767868455538162333251831389042320555397586016576150886968517655024650065183288196092472179643398438413789506089919194373573881116039932802281236176284452606650862791525797754384001035244484484290830690188943997289502020532952453041600581700904035693981756251610340767220592353008059653316944066499501408184151967871087905569078509589077705815285893405266145956054342811134080387084555354154414646882298832117949321967519485952752607496708971351563868445236048898399773538167081938138966220627269672113131609265988145227426609376424517489710236214619883601075718348804508579777404310700162311512092722610541262310192456143792679355601637816602159127446524295155781187025393047778672890763005110811657498258494531948660695047597258356015436402835892739692192357128152017440656599647975560410471199446988724848650971815492270179251254410404446763033828542874983617062527255133917702814604390619864603831808785602914813348235723335660744953683325575612558967619753313824374981194548878097935552045867246819220211798954258734606160740576756984099318924220026483893545285914214280867749213741477589905449974972584110857815783190724237457013325875289659513491084202055890114539092761277598847390772630256411719156420450571829426045732877626794207388720926546905041461475617813557890414832169928923927155737982801863308074719649059439933867339611172387926372927826753441087091688118623866072111447079962094055901235553366968518050845744570309311787017353521199530166082374658100258192928748477676205018500861639932799711808169635597280936619661404191463992677544993050021306282841963603193626409092978588445965244828857902400281152363627008256581644024260987589213608391286855002531334384574957934041117636639984724288291080731531984538944169527611285228641298545609956477777591143590167009534000049722564998963937374913764876144899514237738203834458351410628987370104750583392768099340898107431489657845502729997526420385103937999963261760560330982965007585871015626496822064800077865873092501946677164684704311745017173484596099943931974360105766730689360399709688399610806015896824081008328647015896371770954847638185196686438668263091963463879131906493615224662172856973191588441099240048021247041797849936205370046071961389920497253032170756680388146127937392450158527738317895501158454091648382637349227230501676983432314780870774165898311731583396740596665858273396392748115706968901694064879806836934163969215541732717566807554751807926089668349612866818889901887906773041401005937035835063214714178349614476798711443700316989049079436403707543291195532951565066933317909045525683064886674273035558310695810130962093063689924017640504399463511484908926419688529190826761958646301049697805966276591783243832313237101102850621276565993075273185455453997715194684265539404472306268671494611715531923148159023663270225302295433828950640896953373278599349533268356483192520506972289788418186097053527842307338365442174174843132548110728630605852066389120544014942319923247078810605422276464498441423313384057970619552743560926843404663829708352751880236542710082414339521372090349358271087857371755833216932556651889346785322085015802086883971823237905931215219652401326690884209624718552479557819242833563209085377703682899404569174689708883171242945334793930890286987616006927039725550338474956599818559858245766372757828849941386849247573602926973869418800491958645100703128697734166218872010515877751822676121876323762314923814449176788359013535594279154312280975950628381263018360098321415312136344303580116216289661887690773170339521233676680126339871190418784936250312145335768186566150295059924958288712522569819232211443618269055322575406532623143529343662734235291779165373635460759564323564901527714721724729221957209220671105730209959307535226250082756582618976262606945205878262447230842865741061293440936674647146656561029975308647853154649462358089728041828520364859457904141926020086721257817954353618198941216334677602457691285090618680771473705940475566885385514401190912054778691588611434861438742743590520441139413960187743590867158714705606580740627431316223935456169450423845840828970500769737496567781518876735794153408080832448342905651853400454294758512776725019417813385652066488499158674956881412939289237930296028550215332630840598740311962850997452085078734583515797835992000875053555179078435658752992537389773726625151898404970592629482962101803392959761352191913930447549963543363974147754590695013548886689195893500059217441705739028070255136576877102659022900602805115763815136361627745276245882515257875962372221776914535687913624120164607796798926676040248629789561108103296329472924291859662684699477871061571744758191642906485063940792309919883723132330974851117279292692289698759002714142448224414209301375266431835921681902180085110050831072628030046260613980008265383944402550063724160940470738387644089937888880203368521059873864178081136670751429645658867146551316590004904350530778745866914124497440941564468640141035209182332586663933276685022098153862426889331747239502248573287504416319512962489514963021496776789302103196567067546765806061818602014864794191445307581315460078163909467486160333581679108174435221915269198642775731464189502534207316414895788467010684000781271633407514767623447490324465775883531097989640685952616790187841255396000958028792241330927899902597680321512062375576053790372755943328501161284764642327065872798204455099234165612520210703829128095727922946636381071283199038324416870916585992876337583294644128007178129850809668553355266017703083245479398586855760875660552883303102115517474285073793099411210561838620397930981324575623675688787755541175550338566472912649880191079999788620393844548228787600425130612089604254234313339776068151070281553446806537748902047648389485052777003491332831347840884165925168707090244972923728479298208795091654426839692229026770916060899351924144963619807852944547504940752106386917477599040210886890669210649979605162991815957909856241894222101190421289629352076384534008154229212806421824053233898832600207348108103002278123364298481790539992997044234014595391664412586291055245971948416005044961241379989802116922730768425665395971584894407674420354173024864456206129788461092879851756778326448999502533293707434284246227545384700786075895389130575485773376855034502951033890003303265825490746080262040537454755415486584249091841726529823757170357438316987557648685535981080348929710921338847117068066374335111808476250140411473070680005924547165958610703375089115117432297861446597318256449131967918877797480631293142220242371256585404329705647491369858850710709568481753905138324035064653453369598128313881704963376177781567694817244292310973785988336054545658473292182911456919838246060477853427922031901238344378383705269147228594307194747662267867513042551618150970838626052397585105187614900331091601131694461698944572703887519122729015640717521580880896653533034943658614846632455207884546828190345460697501441352736608369196466566302660342185601489814654749728687536144568888059281464505301835852803630301142048054928760592607569412610395400779174311687188082196590404752856801419836229758528758296991988141042508404881701270749013793761649395785790555063947430634545549982335234664179872078113249582601778202480710471285679180235326063445908887970624055734071545617959001479148063259225243800843917983710677743431424743365264399388855860886300873603360891950780983816830135234646049218762511145351142276374245469364110184123155192147228607247570309961277559928275390773184679379308674934607026162786655526569990443748664148145374812001668482552078002964034478115242440662566053764821808055397558680416592106017996563914824303053802041850506787241972961717521164446410836416754956971187013685073751641829527121505093089112979618326196984102159412950465170631423564282067041262230044929032749467958282078607463287616356200549230618049336221857125827560411690134360418644493718740901441329437368630446810172780511263759433515260641751567727264785243803131013960433620331869763240625862493692127964475038375981712803288558862169076092448561213732885309108609964582194612188236002640785425794479470468229842806885319903896680843509447646134972583467752125208172920256531206468674272181564097719344883398547492111770835432800677710348050281155483097430122426750354535361785444344851612088833669028197637941043813332587026962734701690682012315845241281888613150989104065265241223376078051986703261413725163727800881259890918569237097792254794754050316039057161653632128724486338776936101951053171179156338226508846209094719997671968961006583791657332146643627644660124893827268990255870916764432555999868132593284655909449334384700899629610572739529299770192681173240545430221430013313072146423784497303365562762561418357448101174207364553124343854129440231261488705214501391808949154807538392052358073921644619381038905077930750170008175458183945562162051525901051172410426478633900560774041869902422126430593864277486661307981426458449512503278412373266675940916352855166783002369448426923025591456185378611333027572037652857358736545396681920239604625274635241579034710972784663748539077097392990099552584865309324603243519409512054900794260694163465456980732366262629273121288070240332205356773932224295702490988966877486626105790746336384807076114576337202605903893775439745974242106375071826908642399797081977154502488601664329929187770416192285973543755290779833242127686773540517830749667775650351727898680839459759683338523383383478038887062287303074245709466028820179448318176663597346231112149988714747728971646310825400159065547106871781314024786354496950471784064021301092865781189675277637498134865695367399153679758756500808726951368926834063362181586111496229293652119676243131949267478280228442114647081916176384550120749416362626398629734037150664571317548681862009680891435567525509154980754935713963049414387859362045993667567560091183648047825234581567804445640571482410972622520575489962212027532500813669598449846014298302044604745762021005212172530562551970142799232447067087400107996426652146039031997135518187310016708917823851180292828127363541691429047676151814263379736743328294121301847335864426797911671986244513394466985042940896645526838483949422269152926726700116843177905091074499096882446574676301301896836022175211003786290786688581848935145478814610368277359423520083200459922759270031651102724180635622308480964092761619493509435519301041339452240149280491348675834969315617139786130603159934830517274705872153091463222170535845296682624620707323240985144168155167971301748795970374818778276891878470647431547665196887484083360595449500674090211150699872115292472441400766862459206800958565752760501153381396182217199676304189125643677241021137332655721146112828291144521118567724595628288669153682804759207565106593472405907677506474664463583973181490936746255887158472186245008584776668288705283512492585060078701573008182430507576285745296421686767543673449992966747133817225901151244163475132320074541385821183261558384577588479337943057991190967902795670652105146143215363119731691753810678467718057584023282638244017295439160748524623707530327368983315811148597821665780280985695847660024796851648056546205772842676954636755062762637338807904982432537354051922452194381904173064794357659356976034026365849903368995222549142283789917166176135985435124958522561400008482812967987473681995150197562377543746295406624098640218755781324109568984418200166282012880146231688766373548584450788131067729725526282830383394693662234820928314347063528918837616809094847348522212665599341948326434677284615273395367047852948131193911951530071217881522012932954615707098014370556080214063557946753218328624597443799833482214303832534064379769489903405769450253241298633521788652911364630593342073661222602977487891859529085526000150634620756339890576060623852670837467322008284340843185857694176894450639265976478554998820261669942846891792020349861693286598527847554698981233793207270011679108117082562173882159241927370788723314925244625491740182740184862487595861733443857826433802131687637355581713544630802577235347031887993260545709254978930345967655677798482723168778911505635115500317398146285296846870676342533825541263373982983137481880672929168515850126150294219372020167061548219893346712779819914774930625914098234462541247821590762639229956503119397205444011869271626306580575782687404502705408276618315063737600960902049965766367937515598569074293979992861478763353333261123772130939053478577027465692350331608557252695751712595057610265083693776362790772431349308592044613465511011482494670963610244737192239281815252463903343734446930864380175502833097470060808155223537362649277457207253964613707098647253907683248045043368413529977260935568951169941539511470724393184385702802882097289370615550169680371445675697303558770143121273207506917750800657252386663658589168694312244265557543100169483777688558719324232239403640957566037697868997561953038801326733771847702632023450168108071972084879646690696135244460024919243196050355565685746104922440446535369775427410366230925643564586946017315912944123956371476335921787007438596631181123631977560579437114234246443460813463235346748220257095176991894061531900320220110900326256593438044030135080467870580702277084509766183950190934004280580399643725403488869380692065881380856058384651389920083945660281129822655986712085453721146608428201742932989123007053185437223760932581989281531701364869799323276183221297919126333674988733423316955397415093194175461275134624239199908591365394649033148674669363714942926277946550136199208110301460160781765847851859313816220012186714451654945049816516935400409650030861681890287021201488819896233113492000315697153716278610248086946820854423809870504194073079892467438458417323235567353950860862289303569886328485423158996178995886799222564236233481241125995183435634076262781301603514524972761546444952458129714823005095140432500701942139984747174806295268183315413903755720324908203290126319569468673193288896779120902842916184360564019525814676280689151649223707472509562866892095688055047487938253616259450590272060401223100729935419692125967215894102180286328897881028452668458169631317119733987030671340035784238128236507174028771964772355674071864548872933761961164251036050558835711045279294678566486496572124441304200088349927139414431944865199720978377516814676041257559260376224989817412257083598467550117014482468560714745653299426281752648529720687533681555957923401722437620093722113379648530774870336590506781720509443031861345970970671900603952143608995791669151483339043541652888515954025107021894444011122905777036446466665274917917938883438428153741353897548352141774911243113738995674251675081828453547972929118010047301708112118699873001949014187777385768020648601149736283985946882105733276756455632683435642806139805744754522395390055706352672158866023200676974875575574838435828473109724108109842724028839952242034616780780900931014628394903899429569409059305934309316945820154694589625092125563577147827717669572302291480750822127148298725772728977100117124239896654455938014594557074490285600992353886593415694660931996802577278024978213601192988666282720352564793806279077912551996489984907091878468358531962590110945416738337684001769096145355615020075023320764241031564944358066947517054539003765972246036205593813337705258462238168838409376195951451407985824782743261984824850208108742181362844878786958352787460895990371799222524168718333349435865323747412996125580534061232672174927824010540535488358467594669276205974776682755281578491816965515556866765886179314718843881873733743136452613174096936285892999176297616826034537295711199541665922906231678009966993318445822682760986780010237897136046909194105359682364125741970120433785866380428389898079954154617391418992285372991169209126879543077803864344577376881614572633601571310042722566196721222641527390680189194926684648932626038348403041198250743955399695123513464301683982062631226426372222334037056631805619899910937434639005658278827827717646734637645271520292210519700882835952608627674351659263857628153615852810312896861580342545453064518794774889125558313624883465211543599944054574951447674855426166167994110069882878295957328266789014014347520758057343056876579657645868772875451496106739781558296860054943887994541970442758113337949778098908558524680806459119267328784861997617131278677449371001472746203981083569946865828525557438284754291977421218763702706678582991885662642821981456312716967172095506028857253965854736940883807856299777411187158824265333005336518356378909512097629656174090476856236087236202085256102658410480331043268431236546458193228745338937349763579263972305812480346088418817757977923838272061081218478146630815192631005261172868216378009489115486001200385680123371286910468947907252198217969360519388806644371727400610369968585814292138504091164613439641442576840757733171319122538933904507896141584690794984181061441749079312665604611813261111782368368409918978976279208621169789676246657474638601237737711880959838272109818985705194855753659845377966871987526729349248441146696339734173248265314371568808859930153551532158407022963898788800243469953805111826512096597936065008482633089962583328923977692998554842750615605255492590247793511191771555055184710482306082375566198978490625428265415116632577046809707415130330747316523412125657750697949503054653503036617319605259275144248310265994050027048880937617675431474144381001886217714942857723194144230767900036394798927285615741572540009109433307637542203712853038618634048995517718997316032143048987719127987542184733104347278521167427693799715613642918742714796648515090415257444455822671990533601185368463496388291676550129523061659849860578877946265507410010064061360713814759207215191325653128615010047514806998442777256520493590327445149268441980486181658959198405072341106840668179762902645753313640584424543750126655322552199533652874727698536568890893913374337281119930924701776365917201071918981412763290778818813755985817168860445127526701009861441654025863534441767236251860702508476383767402401544929248703124551414237841286885932695993680813814814746976260498580402050960656205004943334732573966971184087188079003948376702404399471519210496616709091649361700484040461258574866047317988122398144413849179740001996608261457953589238144103755087431347022875599405959061039565075668778775968657788309509869143219003430972397865870078927552522574287585918876050245107002180986266794966335152358431397632806975579429942514354751962145520683548731805547135128045292368561320849393837082020418962260888283062700472119394941519148719952099014854834797540151138038459351789464861463554726353075565957599619128161777311412702755832063338969515803935358083593146248453005522578821621636726584912008834129001059584512190136632698452620383875090974651814785685172760539659628142728948520335143148546488461562756991702945770170905078653243895341061118746657266543527427231461204947329637074220520343548676560799917737023679271360971613422240742168797622534411778876118031623681163873771964308509868452696747601526761971662447367156913468522705846792143096845718968937912662285865723593117236318128539859098081656980792399132144309688956293931336726352103372727375936630140126422448452005132818373004454336168010829671306003678942047758077704826623576763758425691852200188416739274399160548779484649738284134020120045740143484153095112006662289539263803744624690089628483699784903504733754476962808611708479575424245490299513418577091380919185338512655155752282484888699336842345544150911829320293340561175108455448965912060070413120116457203403813333896673988919266290429916112828654730126072470459073801437485181578935618162132666483514212381151565113010419804875848814356742787189224885596024340275881227438378260368674440006169943626067389674417507225514160061714049159896808921360631208834047767614718703528388856355204585912609151632415994842980101076861587788724788924436589052607919526299716103997616332050604852070759591623484732527625688422688071785860450613885965713145295037472128054646815329628393283589163268443178220818842573743850549316832903832307508696566307589340425002035021717247340234260067750871340761372179056302970160491640674754868048966639687540701703532233553525822455091696978035521406772897165709257593142431019671505394961602471425160987612368058545833239545500609546533398266217937614115635483991061184136872804780538724436650805702121777577140974298015377441342429912853056734755065770795011085845624445086323822637666836961397789027810672205545811126518789540963442756738775402886667896063757741578724989392092722069157446209857574408848610942028982230393930707143466954087783370728489632853991841386539614278264712741740404765706056750802821186590815462332745566524676201588125074258684461939179533890346570705818730081376724543827709045561021317452641215997277197322525477648584260429986646647389436101766747009174997020242865653781494764207770628183031991014136677291616654091734805636248431560312254967636719656159319071233381803499481978864291701674856765796525072486974053703317502621866539944576518399417186641343678987174091611773287562842624363584563326904033823711719942509940721515654273284438805205043001777552836786564056999734062937522107047717497016564656429283472914913920001157305813454864463334970239795554751366813733882266785635636282753311625507518139620993387961474617911051566849970073161254180419820379561687013350824769716888960639589222196460495298026646961137027529009552691779735697892577136522043876799720992081550838569117636234197605696237362521468576005444968824610377346357025298782868611410360939240172500484034474885205549634240709498446802433710368414544793034061736767721013221737219410685752594345853710026593583789939382914261663552391449053665194067545501464121306753698334617783855466750651400345231472535115892454401574620587052303209746136597438638220950540169500741549870930398287650678829833372634265819446531272813291404469550669141596285893279217897776816311417130828090101723340951542222479495667967746747366334779749495929668880293238453778538115888178893670566982541761934640557293539692478555784510082948459233329245609905342580215388117576599218798830807542605057593289142157394283541377565414428402968356279456757640961874115975808692927797414445362295914954368464607721892336117474701575228499744173410590270798342970316974428798046327412003108304505106686245708230851445724209983637167529681769039112687769664220319919205486883284383992717098655611368027984201571393706486171862609736240955722198475154685033453536822870921198145599626852404127604595610165519049010297500013221168958120611947045807254549449778391111978242898176494826586004308457915645140725393497682208943291410572521554606800898434672775424279580330863771189405813538627113723686150542155549280427819536571839475204687110789710705627847200687720783156391739437826094695057684384061454369539463823130649506798015280099460726362620863515379154202228542607634580399944083656033643463089656918063166226026807174326365622290522649952200739510101677816969557354190654443935353761414599061304754220448898931913527236455722877805353635591729657319644827663326342412515791407585497882299293250256043091232091918683177553847198523783841205635566355775358696005499369235410958856170316015859378214481804195645319460000725517813456368441016297759945033919684459664820451928584249250264768182101752496971142579344166969676230226046983233025398375485602043628009623458990768645603169007193706884466679262768678649801916671907395419176506011278080066730955191145467557191163487565329577877127955504521103149822863130464847711731801187597063044736387448801475690459454454391299858854466146895456084659331883113267474086256974794988567780245637035154014144611301872497847991772378041662196061324780976459965707349298972748814397579989942226286767697538193355019327897747261828322785351835402130909821772198365753826752977838653472112411872289037044054385308497731378587834320183431211986361073863935466651920766802294344117005710132514805440310090881770827539184364290280729484604126173126060878331019221833160895911676222288899328274825131158064563169557749836567005141526897960591202352853980105324065565688343651436215068529167175819169736465809957275045875264383613751368571055804876722507136443387973440094153094080921403434037711144832517536768615380250427303234109640155950723038509592742907128207146366885094744764407618449784451312916996059478731934615312829712247915081462078748677961192631753526587978082704137929181522521474331813860074890586317823747971668548237763494003985209501305021387182146753318913007647282672986789088936000676560863489051099863004007743025690326950654687002721826071081820757754015415034244585903959596572671049046552805133343974118099898164764696759998999297376833862772691906859822074722013799778260606403151539323098390698640585160067736878818683637390456905023971617140448089409974685661135769872442502013011571040837961641508676741015002956394299837429852404807611505660047174679137448239273358987384267858777754209369940287704351352435392624826567596366320101284768725416827381215198712312518538198556997381655111409435536578633492117318510168146140954240279456444381187200825832305892155005874764312738111618252849412027006498447986798168996333566791719986212115320139597033698026428700689471913918296215402197656012737032422131628927329481228220009088783479394767386973138595601056225349624706815534481822056682535085199845623665390778596462963547302450471324961787578148994094864425258854334081098598469641238265463540709504795190151126721859140948840963549911210960279901998786241872326781867721853221177069975017184459993039512762372805697508368741428996813891648696593444957149736358910088653290827110025311477626233048714243706092475269000436982886598225689324218229423051639613704093117554048357590378987681605233934727670476237184071299662524827716439704794315730475275600170894989848097678907362662136863432834806318632375741317430235931668509213907652949550583614564992496248137682826620930288184558771111218260292960106979996090895619208297350688863129245400230004332144499716711743031585448278877394480941885486842129661212462648064736339217173284824766404880468585178454643262656776478672560815391238169525937059028104822033087118423446133895748701408015597865528339604677575432186422273426118702508036489322777666016497789598978217390525789938203198394573527314961149548403717128224221825840576793548089002746975723138181732454856024256895299681120617522786112836330741296920040752590171030451984841695668585794390408320304660813412622601393926699354157074926093877519427682107700140623276057835877185743739776830609903824570595505861278791656554656866878240887422625783021851397104317291368824230715508926510945466572092312844811958691966735676007322898570002930553082533513701292281893521639944287581812780626477450827500913144096764711924385405424091532784579005906391749873341786641840913369451149401753605133885426064220296567352275203284232464438165706804267425205436307498773266931338859075680873692337124800987451626823574746073963262650175420560495896791744150410614688052042268695842175060623577264642719767515661089021400650319368587851878328519444697160638249327961674424296743618260242410423369432071234298263048150940687275251833599131826442115476605519057968255357623619721546884985049607914898377837964613949459910706073867707635771945392998288471179791800126347812134226713147478257371399742032911376102648823568031844355971643993312378252412004652292734424153612856021106060239851249051462115991269989854934775608867386341133869436818430721839849641620826534276835503230349188029240912649194384840379093855973690697721915772378882048275600868650245460242381544453180132650264481867607489338488927382270753975482538302193738162013212161300686374414961359823667599505652398529911377180811365959646871382207225259574105284051178212620422218391492598890132798020432684082603194607821714288644516758420923334527458069214440523587762430716905921777183223925989455518425024073573009364053996127417767372145811483032777815915694474392692209370633002920476573345495179709689268144908062622971188581669771449676034472887162510571486271070352708150845027785832259134656435542531810056858922939479879143277349121628084115142521563105928837664867990453121281877131139144182826067377216286280249433134185563550517646299342412053161700491066938683568007622311799858890918633458828057569730947747863625473476129060955733834766307882832090630626671782005993501418996311556082223019819403898065471619410375286589901477478297034651781705553834657629272122220842080890042237373578757606457806155105151345185348749581256080652824074536318068609835805784826930591099720864485099555220660526891586682586320132431370222522700439663216179978870433299088985025963312300014978675943485663125197256526550430139647949813793651231266880169859733437698039915297895239313155641955322339017138431094974733620286816879815080392591826103229999400829090734811925706797472667773068487965292937679393211144392971189813178298297012626285495318936875710228886078704877966752954386045631346215379637080562567074559538385142609754273355820599838813669852746411848174417318191556015694633652038523367952739545406803131861611463105649302631604821390698129673632800475178689931277017574478445084262597662520647771430625632849906274941952306848010783682895231004635177783601234416325845759057232508593078821387200333402492791634125961077999665413080126631123800420237114528032474444741454924376410003164041266903916467970127321071739563438834844912202888858461764279787167089025379701669948940124732058159510716119703207921870023515729204430645584748985464737736358601653090525301390258356711319451255447017604904727427586884536634934764036776908600903980199986605171919959530826669350553506643743718560561875208342695462332385407588541613911923224665501762977730785918038881143666867881289722574216213981442112493141516774698703183139192509562367369002606332600457577745500186487244059545764300455133051436796696903034545915542156256826382758501572060711767078768469277597413939177786395109025072599302663865733778675840974677981063881503667968373821794315465926308367590742918406469437113674773298681827471970674951752107873029913100482906458320679054699791342640577139205724841778370206508933483950211375641542241897077127952734562580616398987153258868448508072028037574273830769925397298866991462749731511074947225973692381751053042339561311154467505904745205659868215501263375953344530246224497393351910746295470542893030573740663141492030297478017902329278319262296200274284799210763277105390485968222574005673117700457084213614341892484670241547562276068144208320679675309382643219165010947214612702233642938514896094726959701337685579477122519599266675020715327199614761762491718763709102235223283665921792626929907543042853951558539122278152631659477349649118154081957425693546460379458020482648454794799299218066827918948775156424545435482368697962074703371151875269556427131356758642635778150563808755174368102117060761733161280921555731526733403889183327566560073752305611130403922965672367882733149035149832520750147373498390570154541962568244849424007520674615458828117288985485450952024833453662161413261454758011844474692144512250341994529938968372909199145134370272912436378141803142466639277787758476974932547370092739264670223810128080185487527040539158961710601583084514393198017479829798937710267008990366149742526192924538516614730423617355191797320698981432610610388277641408965966029496854259483164981595112531161500821741210276094403606697349697643394701236032963838750555774854009455100176559859750442556916349733536028399140227755319521892721684785227987339535136122926852072842865722835864985567284112389113928783717853917209721425161992959537346280936458659971288443704843527757655578117455652548817316542673057375382502836497441054599095474196540837120099443914329749625292322943087996765634447672580821956324855206772895936523942232962596939763995854452702100582752185206061136545443859293349530633071098239702710495255380229625506284391274837990432224584139133733147966871235259504814123444891472735041280686753755900975129131853079518510929788302012240548461978540342171510231895536164247185936962732628804534419046188326073263147597514361445005607358878043274779631627322885755044339198030347425456825508961914749058237930093711963751256613452318949817188217262239672419208286679892127150015608400010024589163032947180254685758302059669489823743976825871644125944992272910130150490982338309434129165054000293978560080786062140210869201383342125434347327838477861966586703231870729868676024922250132355973426878152523653486569077763920478585028211530220207125855861844189264698897155069784644666672543701180355829450838708139448232452154462551238758050993416014324370711978950466611648141741778978338569057216214498390723612887971743555984765826669247877294069515629075040318117932141675166061143152458776675017108549819766830277594971281576814665293712636470493074899865164249814787741847059396063049207939623334047852795369321582985452905754397931699976910732640039854143557332227455054325321610541978959965164709700400706535398412911548749900914327390527656846661704302455354392017056938348159153332310421279517067943971013801311035444883554479675185028546484210311254063456583160138659037242164701195158183117908216754978106835323006842715138350444023275158609175665391794310826045375018683881357647758432728991696014233037411942687025891369448275213092596310235328286031134167151791832188863917374589911621874193032349755760323219485817229848126040576947217632845732674798946240908162375262167852981160169355107808124815965148575468594353656799972610470386131640835490999527558059968572276794729355138856021497869145163861033179557028503404082463460887783795890516771352148454239109254120277430130478453853985241550581116927649290768146939981167100100305820239875345434125300902463333610456357674829577031920504535571944408846596587131269592910843272298222990239298173275054530130385974873512245474562152203693153185197864440367453137760526713970277629745413168388426711068433257642480691749129542663860894909222231017603598625591318299480507605769434918743996813381840756516352850053541037402259821863779460710343713634362843036912133341097964497536180607360331903986456618355441816773594462284947652781979645470952676134148016273705385309404567961946064843342785163526117982866818324995380920121498043396072218438900809670314210871930704186823590344364790056918035202583937263596472751694485026735940527748638566207609168858937820613822814629067972617379560204603141476655792059693096115417906687082051800971898440700564292535993059994153074072743164790540269585587964984515231881656859959523947309783273861992167720200429052075983899436475300562306446752403568246777863316995046065769998379392957222492657589004797087733016038839778949872580633582296715025550789772315720883936035840744699955993709430430215077463816542827281745264196106437727932881573721036497735640490486659201835033026195556408461159796691699868141130531639843693106655177132977421862330124052346027168785221493403258192803111146697181875757480762624612077499526331744889538782502920126128837139642446254181579831346248620942263508345222714392504152234279529142948385649503229163434073743553418608537837795672838719645603417868773622530390008301303036616590502391598484832567264425363903047038428839931935671200010722382713593137255178857887811270082214490560999594887403836290679709186294909155648033532046584257093442144020905730020230481858403327439799721867584841940662906387413212154364315191538042518047904580380455081911881841872784164616656674985154550678215347509829990347498596086572857011532172042612816687817638838026317505442840899185893604668267896318730061757679929997868363394755473465748707479941342071957351444002320199474768079843721295917317094486060566866674240204921726869784006780012656197950886431779970183253509909376869677460157704387411023231877574138449795721221224245275029267452076355299579596046433744290779192120574014111136704983738104956005628121240217632958804905521595317640390440475024703914851432195065772831895465484446806368281601923345054701424206215559248459405610229052319383528291411111364667589784287122467699881195645874369641380011764020808350951889312696591878004238584487323623041161545418429984237585538502837328251684898877784721383863928085185630530027242834781037783663518232351026457733689745594712329343097717072665396359991829436880746915270425052548726052060962519416275418881894383863274969289663079909559335405179366418735347978814815397713544695380383611843901573152473183624694595366022908043296936446454894722242725733100508619656488091495879178219214603894359642322203816852627835669158500369213855048226993740413686392489479101932223543794441195613398211062479072018524766182495384729631888900437821982142532624762249187988353676082047069116093298655402795559955449362708260426242221851270784502809824582762100183331858377799692185075326017811443605290770559786716081449876956375248045411495539597747468495983437072102179732914466600320045676360558414804142095130219228512286523745269950660968781688060214332531324389449689845147170426259770594123710345202261827067795597338498527403251894395238675815133482750507094303474652223505362270618647010340716173645276802556488682842938462989547016862568535606569148921095541725610914900435805142192040510224046060268209344061865533480653212101208834707185000869398780528655424121729977687515254234237478828286743119099446411577865929697488980548754924840735704998333469872950539653256663327706595728148835704042799762510342370176879519007360251696731474154813523225706246347504894236331377141613431510629622856303584981219340633389538319866981247449437432746884075727750398568367705368934020825955763221733179942665306901930385315750935905309537833151674143415794753015390226408653260074323512953374351018970198837552734612399153225888116017895694414844797193635199878518809237818979999956579586166892413935999758367002015635998143267916721402146528242654432230941416214999125558592466698455005103762656423318896579898245470862068622461284993476326779190246861968592603220817527222060742791874305029236175585594971585347245308514318663675870459414687604916920317856127292844641743951769708711864368980057578603031493132559073068067152751123512641652889787207817757321519407767862216963153685263633830578396019581520235632528873691852820036672776076955519432909548307304779034714387317083286449059948903208580083324684573316262214504627085283277682420627177530977453440549034873396683229710516149698452525466155655964043943258681643735269154913213798494964058807392806747661700106667757284973771061998619697252320296491671902040867210637496433778969618590011445230206410097048465816983881024196986827217300920113421807267151740456765446015073562792824714552027758433946590649310883928842781223312179282236928073004153392424201105391029183470497187109114809289051376312093063487433723664795206570528092228093084537514807053735088648557565775377876177413351932240303199143666374043232559330450649933771890849671813462424110271271778886576545594976550352299841154260908352105369924027376762024700387890374822384733324107706297582287537907063757630545473736022836650006272523877387794294464975164042968215319450580790935598103570190150586964140400581066526611336020809113127911220133473287511023500037474260154690493620928376988365913269690843246270703443764337526367030920515605958790800332428886238729357375273464381329517074157623968958483035473189490224837688358172505422609334262252262358742554732341335293185292731077731290201369929410407093675463689809349630168559201224472363009718823754578799568329266599302993148733780121275947922812937792333787744461705051066112620607699019163487201932161500847618902796921355281038387346732137283408564931843923380779164427281276659003633146939061075779531972371848603435275607862948506409927759625115975477646126373993968961415527673227546608908453746416870068550901951759975270209308493502178805376333570093002055813429325715750568901354914357381744538045014640974210772824723464367535841670397101082074038327714928979738194592525796999121389254223229899350665310790349940464956530294340191279746264903823306118341426603052318482381217533812718958469420071394763302291871462043631516793137874805833195339565560795501917074737000816220397544341366299809198159147122343751650558703435505061306822217900153844481858036776469318456011604697501311467678067020850267498729218154151480599226991231406762485880089337088420215839728638263115471967537485734616806182669726560556758192136892177857631826191393745473858529915928314605970209695114967962380265566134659649396597685282360704695846237132503641910828518163491079479599105646708831105541216940657358127037415521490411069859084561394299014990991197227482892797383320753869118092684233889857605031455921437890098527555733217842063850868209413924557614071107065547478028896366824646601692236114117080081762081360642691300764243024114212215321828164356104363445342119554043400235056190930987864294967738968493243862975831436806657426826303514228411920858260109084218458219767188330297385054724599424122380756721136114371128178240589135063195619389945861234754397983039844354842094572461672462054848140433270213684393562141464062980532334472047887823945887394885765903130006016271122201711606453096837522879523502108210218475416257574451685406428277592151151607333843189525241565180959439084604169800161576397925814799107808778491103908596633050148436344604049049037091862343024584052604452789952447981281288046136453386631805271530893253050761875081462503125855382034803195729898787833158302925186712233275838070906765395868081084389052099714280356953712752193874201687220701643682955975313311165959941848081012799017822782941113202334465158762693380507550201506241211829993431395306112161813566613188658786715199904470896501813457374046556424014700514835858030694773517706242020397661932495495780443576292702077964148858463236699609082227338271240676797196289139986379623331703893363119828544671345935319705143241096948901346661716501861363082168023729681771900355632744798890937583702784918866369742096942180480704019259719819780273616049313621665275864147352925091603616175369335143044634217813810862716434017149430394100845953506891496762548265130322803480714001288142981540508488712156118658852988856606737495261349241877333339097227134899415511510282987328299827442753780851205177852620573188567382302661121624364755235431486878485940225753375463495526942480973491077049666037218155095640050799326497239379161130790539668595312618601439711305947718293583392952727108841256905275844589441411376318934046906586653239148466182644984330376116098340011222417957000666920862985263604195650792051094133244509488919512012145294927290072671965282651163035354152116927000044825535617287921163469862669510199796267982034884133622728978326618819351267620275730400306107301866018032276075778985160129327549835033995240642368062953192826499030328123521119374461755048941565521820629032930229450020398209269649845842370052445531783123523227377835174243759631003377434600530059972183884540956107556773407305150844885959610127559063833481824288912685530347690931272011331469494510587526137122661743586442239690452032727188514529421338465467905224985032131966063972533596926523513234647235570716614754138667090601719853153271244101196897152000904070959488895334488919088263686107142550757957005884851710736295979100503609255132133812851883390983917838506004511258118443541402681788124176851465825603573132542023464536345531854082800998011766249286591212155674213950427220371411598297712688429153296130254752899136265589274488825378530389734211253835262276981659668472825045256558601214015080350960616718156342345294627259192626591546433388470007329972496775081006103832278242249448543104340702795780531442599009917797657055560118183687581799864052151146231093777476451071932088775103371715958968526530866383856894699958200189182496095427324527772771462196861045511340947361173803977090229564301829838985163591350585754601471655460892981261501679515243941970767276843994994871852632357313487292392018816788758955997660186402006008044679188495795332031808336213168214378028185095555470499614647566141454543258610347493005960832366799340604884122618645199652332255247252832246471103794786012558561661333401388470812730772909411929116022253942520716255369618888936933784144329574100369844659644416576701953336414469433215859212358475626329469516648147250490096455148378583382886719033791348942923469030181027669284825273962651663948373537591358824037891317587085874187276519418260320580947413473609944048648655727634233578732717490721960722199387080981240735847024939931679639491291990126744581279233568937414802194675345949003426399005457275733476334738156362390394541298703249559290128037502589518136244730848831426681123508068169587893778449841950499377129111441657706398378125219888323884215793220318909491710726004085884632854687778933929424141562793203742023745713198012927515777658714181188201683428371891715093781613490995357444545884023211110519919683912780300516507299902399936159007112616117798348847669024639849259372569749431971376371840683181584813131875096801318547346803962786835098933260583524633289293935679434642581864901834224350001524889993275139008762684802444852849363671878523722074740797940209586858695139088799060626848255426283101437041918041816929294221037452315078835107785770533374379661396446233690842044422812588401184785229481231376321454977994202502300217272018384982475136059788356551101369271619654692723121596759116361030344178600522776655020686757545052439489689452638988062559886357012950548432552223333343683641266401039662887782941958122689353004404759692611493718946102296049899304353977819863870010443927160375424976506797256769070379963081360703701030065317359723409011439063320151261240724236164937877183434584626287403962958760194184366814355382954529284761323530313379170833454488615527110265429381756612691805165799382963794178048068530823563968522358757183687986864557105501850974146599219021134709071519059065859485548588567289148901750319300109241822911711033271886210207958704158088149249162966111451907147101147629735367137088083087232382036877956552393305384112009892331948269876923875942662737499077596573724131035224789305816329107950838419570930406088699512241444693491539687352236009996526265806977300694142956328901899947912348880935418803405920397516523595624804760306491279999005913064859379956255309116761707006392767332880132947777263890813675150311489273783544553639359453162478491355305720712436674651154636220806175327428230345155205623249598431682996158673252612211902484493086207534573569427758713053837644580985761895311715952061503186344450459701259382707037285756995584383539854927927912453235871878248387699596150404064548998242415658723115099087478956517652254863711629149474458590133504257385121868449880408114095124538461002556918167519182755572305040568692292091608062040918303593210257570134417308422398735976839335518905288927578995628244276906581917584823872897001063737253898300752595698916048472851602766045417919794131898189155004741855722381861759034562231154585201103668420994745684612127638737974319450371842961300438947988358984601591511588612590465699226303637008043382573815013890630629202891603710171597541127302478824462742140986229984293034113444175007437091523060196875079571931989883111468851953439274805272868239487314568878319285645770788731418429844378863399223332436745377216815974634347596270901769961182495984982095888457343216768473371679354711754278712316079552124915794252059482464424248130558414466716325256828226824658755937762983029935043344753040062001553862505629915311456825254946609850236452619546575929070094817603685520900550062702551158740548231312853062313537692500582152354102475518793061159076514539479533388483028565175478398624556136067495140139508173918230008729545474721113135125738123745365705669488510900946712409023349465270283467041748794732766921407187177747672136183695699507149576724159763109253355294980938910371528836021829571554634856770954470043582734943189917472402390527887326929395664002607465017052247693443385460163481482998222592658991151985987056234146862171447066237216062631904562874204601996342732751498156080117502153817672112306733517042301624387291307188173064855731323089416500789690931735544336962515615089765223939023801486981717706072962537081029766362709029238705964373910309396513773467033735008870923676643925094017497003149325745428004590772641973284492568268153259748216214761358371355335427822523770903649722260476392083869381663266380633175386792662290617340328563021614864055060987148752824007802966530864394440559614240986325015669505849108372789018815071388256457515064768074583838682364451578522376072943851550181949066974720951926113014470494003628097538860376530953291133062123607139305464466857354283654326030543990512240911010529333422681386284723414465633086474572960204240238744064857081014835079041457358686004193982382219642340457394097344491923676429517856464915152750253284027111214048689363207797570326274148485738020528852291673308862511950878789082869069045333777097831073314285666313563427177913597548821960285383561953859456748591352620186111034198522170685703073535446862348109656439029348049619259648155364025774182523058344075415268674820504514804666362357278251751294830582446185090722610736049343970123329966247607599022175378813746637356625594105691875952198018130172404664130502697019211237233176497168543200777187316443763638599843244778102640310862390421244884759429582801480611976951878308038727745251660930944857384919318682122437470881861194003929353894070319531894198733524522510362577484454732784579373420382191304537660668785632209362280311657892726480336954185417632830043588798921277394939082403144228712145306970473043623922213661967642650257430040213229996405074785488151050704937657848539489135645595802419784005311172283376901911686040376562373040057263186502675807596014167697822993896736835775244413958717804338347574761200427612539945560543006048889909820439670280480659235440560844976044977466307416574424924829885034332357084760940708059219272344407401391977277167777799343775678064669485921566513173024235414556165412355226502846947846866827626915897163108946148749911009107150364820704808167839935799499355626906821197257965611393442968808732382397624932256042758912743702908476153700382882129502488613106961060515749617061564898445237259308277853678781606428433090032398354870841530455006206501995418998813235172035544246531000274402140416537413244163591337695744770672521094743682539280545109315154985750641398222369157255187836324790120747647453844742135067842084575082615054474364110385058328733424434547117102031479057428329337807518394810833266737188382150830571133992586057844367577007386671210227283640236558984623810151718310454846970682335294751856933953499900174360491044329726726408077763850477391253009991815267153051439311614853953925510597054139865192349228320972615063035789781708218876494236774126949849395135050106902559114994637933333762967896193134569726860468850738760243319642848210590561860856532708728636467003457280137267678756724698415376364774064107687536750482656166116660392379619738780953821289851530128858680609794796486218466333185889839712795317267088378694456499539339713085882070167616051059773416194420712800981565240354744192945509538147927358737999498291005504947507539891351666278196119256012128775460464096680231691790945200604118428418711302446658484755624233090499469840775217849407907588444427342642455359781725041881287484860385709618703106232680033855760077086160093805371671301817490389769981055024598515796781112320715614941400485012322579716039493016694282247805381103072065368545438352775980845648576320952938858607089364804557072981791063585537605018057947616171302073177724198303090583050270965747936136640638660808407164799646170230880295661568691842545919046106936466883007691666685945383378761327807723279224635923828145299618459786340326418578454584235831100933473647494845461594067584020196548142970965687839084868425042826537173945092011003075966578413231028787652404645780882347199917934018309200806999978196770185919939284488797985985260590969843262310229725881885294809944970536788582135940724105461733787944270862972332740654876544261929140381048794307790208087090891971412715776266068299272032567151272640618757270649799137694505919821910086278689681782628668170562165920333062227061031640483340483375609052596223489686892609374753798050730528970549039963312616615472220794672993927794056468688245292628692667125196475919846455030524816774695137737018031504861208154058040221304866148983740889289048026675118378889958041838727775956895149912968640682415648962429393844706097600165975761578822140427467893083312398656060408265400268077791614927926403702545777437311738274180361895065763928568865028328636649429635883036773288133800585992046450175196328182356421391498322794925045141351040996410445873257602455407282033548930479962309627073687662229298321371611341818657611157720282035527014972367822518655673901433665308163925567420110450017198599918083541263323066468403558548334058853996102481125980713283917627409971849813242723079654162680012065595623444591052917889402841916611676397462890772618425152848632442295082241934927263825241628308679912271872392424285097263865857871587550528141455984578650337720345186040306398415785772139642902736217711493881033268100387576186563894868675944222737768538398684365949818603769315875303536339227205502055196340029923081115502074362362516269202439032546765841255782533471504714247779954410274198364253852033205740106461495516227425658458604277472143881431549207889767347796701804913973484941051839189972904178554192765245851539097967711588718256822990238066682048236239207932478824882511858788247287244705143310150755824691881120685820644870079340724926412349301376183692957453740193470038000354485984650327527469920687687092101190303468866196181522717951761982659318554558044491486286598049048369752555890194679195182315856909986741228708834400908329582500153747912622850925231866840550584341395785997442817956684928733942097401618866446089396647613468810565443031128240492589802682301847971271567365295230174538762092317930893907513633534946157654476453133512581604012650164524929764218242144571834377382990743389040735624473734989052218364824094422033485797549583169390601103180776128898190644484111730635977242812642294976285612474942670251528295049794668251426124394217770843464119838690203726838698885640723876565130427105860183003120217972380896087895782272080073669098964478734989179995253584203765418010919413351493486361595138573538968952721996718690102825581848880053679896655629928520320450412509622321636890445466154392416874915415253888287100011220366193410973645507855264126965423279289869471082774548046487819849934362129726690782534122822561175463957801895261893666974904244245564962183849685290928619327423291935275742847005002029414936967867352961611007878417862033824321669847344085912153200063216855321316880283276472783438124045231259113434830560808055400077776861031461404958358577917554618409477773784684090596219467657890023609731187125794409913557887792810589413030412932757815190652344060732321000459493831334185853962008846736322259498739503510240457314689654808472345860060988765078835179780841437450794241897748068907823008965307309850067168290467486645673795902787803362065561648348418537247251996779914923814036823074471436791969672710166599632591612852153862557493741847540536767357149149784144466074889904131619309986097071406099048391729869393958796642960685547784632100110784759010226647034329740181383835564221786354635767978725916540092101129900455872032373444884070648559274088110931022471700706754100431018209996619608347080413036950526389013305198628550833660904501332616609092023097492302058514413954843445761395756084419166772473312284206677539071391197496318564989501709591671717380660604148656514758446037669623982647973473963019128948525512824400000525278999260521648458661959302740080203812887021466014859689671881680805114381818873001504676010211913986664755653830661225746543039113276252735737262067701477752043502383421255013837237930247290343992859431409466255984957904731648163330481120542060636016672006368063246265516111414293749621796702018490343413278004216054191025787846416178558201748666784844336073840187348230814880613702395549594639293452464108001813547134238168448371578723085457252030934322075662790497189016447445772252467865743778246177913894629137950525906218559999286520803724112140577406617160247568942803247848181426416645920236956540887508270345188909774622349741367734704313564923685239047714951521225053902714552424403070305142418324956645926218257603685580934119800519989328211492582243080224480225882936421530527933516263092197356348418223062636023093757114421624835344075140583266711130240178186118643015387621645607378182137123769542453865375496938567410819065270839214892456171790845386063284696986678070370386038065089041611951545376122608679431355923006809627244055123283709297038555260955609226574831251394453360549054712729067475341310031327253457259573540326830168139046760324052077502013991297332771899802233676313257745527554338011558093529785328796824351406252858060187855020135661944665254145697279010325930329142479658384390238745453194700818412242826779458108323297068167417896079203088735691771955005816185148301136085876722649064740277659798255478554620666931726008782308737586583058358942168235389269761485500694325756778364013589046688111671351582779254026677003783818969684059263646567320269498750908950451096024195367753891269790665432023182437939567938461790243299347043725570021229103795975152465016186932018631943395616037823705449103611179985708096136311858094847643088880911235800230791022780221491208264131126119844402099515358301457955827628041504255682040684821576481514853919347335646696264444101741921838033742695707762299698434305035466926824325737947757819342668246013306046743761948150428935728157962651621635878978469926324028769581035369703833325191257141756554029755202074088014563851220255945844620664385081972403929722257052633210964282176505847364864850167320094480186369826132038712073785004210929565494005034553468993197908084662846195302937598667971149112437767999229373435806090013202133928373431939331600336625604236223694082225367873849001213909850097650829688492657000236333092955226059623605220878249402181420399834136963220611474132384335922275925386320510437316280449727578138176453671097554056535187242471628545129180998849910375673825481725787666779820470666728625552259768429292645742304407071859621978778292129447283549874041977606813512994537680479566669746690531365108540348347228561920920190910968027714484183077685044325570923386371980909858553875700164704723145764809094173870442120354421828895030888530033361621001033958466598702427755730629660068074005893941065058603445351173947703948342716033293467456354815740786513470982938605973891892802022098073256294475841907974669474797615338675950184861185307449267478157421227085616467497372216566543632440030564174389934498016078996842037912315965575166625472407190944652736641944024091627208393275242781683603995202699067520756085270288741057523998137515345506775200884400012303298448458633993979640114510334523745577192895278600875690207569177637749256223012363682801140233500094257694177449573689989106682883082683491252301285406692742308966214144809010453498963071884183053793200769494743401859635104209685811483618642894745517209875698824205179125333633422395168279201015900132595192641838682305887253338719188469591988909622614585685888640674355578385435390465375799541834242337231946307104875318456681887072652919957960150704919803581499920590107826998027740278266241232390388828997757122106226685068479232929448013908035156230657170003298606877288845403234915341163683928436265658081859596889423600495269147655308773351636917131908750927002357854291637041471466010374293938630863022331980851048060833650494296478961276645924517893690790530140469254229324248967726223955518052736865707920212867865232866581589398291216737621815899962030222294608287946897530286022708777683698842015142797403405466633106629142213910348352454591771208544295056786235109550050074646871683694521578941174024271933167098370888325779744521410838806255270734703406350823068350805649619458472081011362128630509652431878013355722351823807691334936815056675026059479788688799444082208751024792545441437490538922295746390004651475036491284949811065586628078258533575262457160169694424946266494663347717971876621344101858859205967772096069651337111963167836341121814012372492423974363643094077656974026399194347325291413713692245537576764725995118761621749396901777528739274533264644578607412171325722289973885793145353178878615977890134707039208447984941458668097150272705841083385769506652665262037214461515777575269945787061712026781206745640558633889017024332551453822971759999613897043531010629652966727133613509128281652728659698722066715760913131966803649069391695844386381147359260989145306292008741594227031532317305505460390300581954332745947860070476248525298151464622449865750778587958125458666484593106948077512385736330306601914421062992610646006472790952009843654251067036187411348002309131777270284519450063206426695081940793782784216214491960929982333591920674216090537916533185334772988201504293083125660824881620121974324974893829010837308795785305446160701570793772318295786670509343209325819108671131508114586952789368037852025043939608271810887073504935210713659644803417309693914306682555128793046246817467500633664567097183286187383077058406612091224769525338847803420444642062181471465371270298499769834638237928879826585719087050432027214052389547712590471473714633124654415325317749049041085586920591753097344603224292930976121439727861416829034200463626996367662081152802013018024783840547470255823067571320917859297353979646466765844418019650707025290921906879655093978957222352932175655428594384045822960805631490721532462107895821130047908381746265386345521962045742228557059442701220493997635782624535752242427789392903919048354992621132101485736503099666214531724204390103721491324513663307853298771234391462903048222634946391598239206370514939672356453914813001619716881464045432384306334235077039793510640005132098828428766276783747384479224195296039641585006366971176906491154179338881446719730157164185947012347154494360792103302507944493298524727082351847296844350002886259557773160688994722266704503880861000331657107948189830058770092692814613430096819093364039680149470369048186475309100217119100069507225656662532494305154116664956953567699302855253129523096476636920207643067556953867396233825729729232345461865720945012127177940864246179880858778166670958122046583564528552857008423648414774495385825656774678654693126841995749496409367200542281418302377715295936748849060853097265621252927185120324930325834202153858082427586916063158177012889181377497395791008347430704898504307528641823450756165554399309942491828311508429077933846023685430828878254494702484682114487229425212536339937081846953234651002875476164555061224613260460942883748196197762314480707713607354785035768558601742698425376716255191369947959456493018220937668730555245327536102369739852559943261830718003745668327312833942107063235034851193003907792110418000203892313304592128614840760667179944309716146084662452124351609767712441358117518590402381896183603004502685354119181482707027405538812559542454370193514057566695989061769920400272471613887819198532160930296691726966159684516727513476317768272335658802651492463479204973269653675732637063824286585191257185470105548805159580694427165443057412655448555086288479050913598907390912844691648123607867684209761047967176719474561956659076306578480045531886876275432771490250722177512549274617630899728125752637354276507640891675498186026576087500749507954682210843804495000275220126953316717049977354453964482986032211859660245627768936195874241675496742648210178740042511453910032643136616916551920741836141988049818062415368092805683612565772497024065432725053661782593372312475933027888285206707893664541798464218654908472486828017070548352013468412513130463289383065813312861248614842302537705433003482621357673898666356502157856260821009309874138417807401397546509641165299091605339598307408956645960820055976861146111002000839645058246687378428717249499893889908025822080086924939690710983340195742988420759821556068562795475719323044161830639072318066446419907433071827041104479061372603405185977657557415394061252148637080538954681951026388777827054105760484510335010267732196494401339856521052916829776659354463262722556120867529733691812965525138342600658163588798417546174543409241621962053730775408130425885066472851269732514290220256104231802708577905029379588334974986111887005214356869689541387886462472672851362083411162363245529361613514322290039964410233009023646979555615226804636010680360238685933762645467509897445604060058785920690023301081851617867822927878714802188951966842483056949271485761205238791550269276858364419816127058514295389994668135025273887047204521766019133389474237977610144078717931765334994745294801444800066239876125849034891301416042216200754158245291771238516264113680132973796657101248507438258664240719584040105407489365730554214955850313336412148467403025676721693494748354917619007085011984655049019254952357615634105285533037062273152050247998717463565523676102489478150557947446050909485377128103148936125561993482293529462482940971603834344984252911566091350966809715940046711178805163251993726516458448294631026986530758856942231782708329121259590154747853676755419570768017153262834118443000222430409053177842319761920057807189179772639278741488576630494071951081773077195356104520148165731876484145774242048341137782380401028337328623956940309501996282331312457574343611841188459511015007610758546649591179869342613986691993539364956370398927397066010889750692186006709839555676211689432901567502483921766778185758815886188742634682789475083874756777162508121292030075449216168986931579727791302725586927513994800736485789734414773077282020905141248822584290646826991511417633922770632089522952773361859760887505005220075018146928946493817052834065064560950173464522128887960308345627268417753599582045502723384597100336061662760640861515774467217209850498411852564126338062971176427692972552114885182358287567530108936012724730773192898275400467581483373992627750871748343322680561202786805359498414008449870248999949267358561892224579784793920427247903810628214008446610730516335812314805078363399617210806319580072880614572823695089652308507780068980508274984467744572276860854315621278183486999282658090821213738894991660663794646185175058364948227450546089599244132049831686886780072730375485554816419704039913849172208654982305219828226030424971901210759978242980339722154167559656954687012024225336987096182585787555298496924944461485949335248904318824086192257542078273009344308734077446368792154039919547724380362886766229969458176370390865764369788602127475870837290374281958658487772588541175210704784620660435453290779007879511393592085452805457705261276661917465317682174162254627291929747001242731823265852225355237615172551383554876208245520843523028808993800579439061666176979336953217693632270937059461765987711277957389762574119432169013797635356541254573317093073288781959744287887850335190777344776790007639028302209580196034652445519013451926625075387270916045177655566217522154393057199240314750406590027450642541723219520296590985131213656772939552882097915500023927831157980275665865733679326540421843183460426621358147610019061407741599124730819961786517573661039994702286610949860653272354293763072819931677293696954976622351521425530800346486105285716855931458912565558866982676443791746136826855258619390958816077852846710838886591621718287487458130343056647986416035576365683704060021652852117975296521461707390904835178787068992473806343403197356877848514664276009266998503016205068798592841336668107331793468539953302543925680020756468890997657034113071640268477855743330913825706838474585866702270988800671037394632440900988838665270970206898001598530822585248348406042782351845485168135703983640229796411954470312506709949331580878944691099120330768923707840447872152312878513659519257236089772783576138268003545282370108654898660140566389354678557546844799080778577638292690587995066015870217276026856475709112671553291586990672946147289301638453887373830462809823714938717812130319513355857011336041833715011090353731094943945026726507604533244008985695494132638587385882897590399051908643655620702941786534375503705096686798105545670646034315586953957841096063297699817612572012703487440116977424582727050906276608056000472975918082949704227317496279969613947526639213628309266375387329896376080037219400713140471521574986894293385642124637902138218243205394744613941042219681918812907899719174243364836616854907507426750496222693316798019302625588172313659084216115249105693436051483598596019803450951778998272716221445957995858148307563619299590874597310303209714618736694919249218755670232618525509838367065075488918586094404963862741767813684312304889435437849796183688886242667245788340556851930402446753817336128010088772040291240864111210540038445959584472048898415236301076544032840763394105380451258208588489449054865542650341270884015551039759215860897676125544874888599257291021705776439451682023366070476879383274771078123657640895804005200973371832161486497636466029107021137835320805966822429446049016644480999629555921792515432158069872823265020800914275975755859840578866892844100819661974576269286486267415782201316483228762349073796241215820815419797445231815887184322989972316927678780091949843473828049305382098795374693942042627998474895837530005498715717698200004909498432389987494762685443728754152326839478815134687851860905068108303782570587533768323823552135762734786886280707302931981114543520265191412631575447980001116159411033063170894133194424877844475819620623542485277089964359117123096855555071183929810963064317514016721678231736171553754926284882872230758736214212196082259754837355628848144742967063682679092834597528289038001434122499903532143054101301078786225658758693351179072639050501324392842737661758083106039623678476019671757497539348672827599465685484529238840784806939975187785109831331549692819754935226382727967570522842400110694225720540705896478577168281028351387373346184391764067182232516261034662485444544998054352871178726473794549567844434577233362495185372387199990108651300280708922564981436684703620250035400457493449593898655998832127512481397512401556049177326786210482079441346141222732825686411610940415895145071488155570946833949371531309329276670452004014098787411746144114708639453422357999783312950559599773046685091367441934695784804911987845839348451679624282843854778786725487985764296290962585897501359564784492237271988837114506464641995523651201124453798992371545632696235014117766372701752532825456064560627094080574425711797961644071729893849902504936539237159895613215061988656244120490617127435466827819738909430700327910896351339594867954010320779027233110647866399393914759202929911045696083393446197000837607235234459496087128629927352589167917244684350504656281250865889407765594810980153288004399582031171164782114929544178066100420551642932704004156579998484845205983476428244939687410403779174176777642521397577829839618276126962542761884142574033384108112891287900514836753171318739239672494327660181812503738862085080840778904850837161620397569776360942149709426265732814988966752737481501169881389574050967088984707039291101748071095835469740989769888648293843002663109355238315883707267627184451583611609837846354462625939522227816758800535469464523412176335042346641897376095837599589937333313148584891040855117216090411498082301446353575323398303659862380677116025766582384806790455699582330136250170867654138920139257710972997960892387214938689295162655307372793632513090079002202413023127582119868925147405706226261649187279784128282555429700549994288793249233178988638128622004724614982274898200118738078644958928576883982640449314709926006896279703293114215286379456368426892585947720227873245483460028765686184545411930141747977870965132937827552521843076250820689073809385693944327046311874799413001237734504870432782140598787947445763400193593310559765608467108120697404871921863979440810799038906987288955775724393771145309542979928782789169317452021971765056802273824785616995306189218305319589429707855354356812686581804687001201245802641678357891906030099336609007320695838038132521733187687459568728241321896070454935052061842996353172383477236860031206097521172382277142955116505173528536858258789935121258314711240571429093862921581248048769706481700629843200509153272416949420702299983514035850928922012642681114644148521129541341602601556946511465895440638842747099976149298270565494716352783831546466244691653674739430288089714378438149145209797585244011294696949895966956062362859812280608103991703342701009368007802530335738613061549638468458570049134658153033550443724577416616594018927614011776752443863415604018372167684106847260504264851368805351812677982201347813683357729460953128667132523611601809105362478991327724941934726512309541851233927834280088636333491044101264284977216317149208453288498185071051903658247076894873683184821645175771286886758569247001971686454644404686980682047243198759033468185941430261658720701052746734507274451414822490490314243749648619148543108624709131402997194067453696025053778592466763930131775466224258813848177403270339116211429924710209588012681331685471904447262716922801365313302392551859050400175104326099788837887554505069121312661341115259610301872174199934894673285810970818381179027627787878541471754988793464611086489897601601087947052615205963205496094350001580211295229048989420244485799482331787268389661471458696183218795805481555943370373037457364222729330735156065748811982458170372990677808840515675128029681590936375292107575973506991960256597912968307393421703033204657249762489597885871094324962846385438326275557127939267177267139123881444636953470811689545167170954787182888502774052968567683868879223594734806788073975295695753271518759745360196704907364520785295275306022085351777831158717493966480477952707612761456023497080335266025786263826787867353922214884218449471363116284831660995326858291355737280993870579130256443510874073929964368211892134049683308266288830753705171767497757031156356824078165514742729985364129939329616170891276810129997593979381068357333735984991751714237371466704135758744505961265603945264661420813271808895121639742281531339209018240316420418194004437392981307463249639618618673265111614460764494146976987735021478679919890832158546365785147408053351886291638853110163243942861319383395014274010594710070419347157660406081925236583970907068210321192006397196203541302044797344712057989655701215325747999129961469223141299349564177019801893149534932374972027232295346759985338900171264673910131016224496315209674409783521926303944292049726748296591066393529553560971872439839702672122270630899632967546241998369700138891239759628721379810449857052195654014341951122192412620790593009644438212739321160529548141398586237452623215227498016634935917113078076092854088824845027281643996375667944922121508373199722076046629917312109048494372818471293552422936293761323885876374757455260680235106052861521541766342966749328966547562127989705290526434815863701110911893640494237382384622018820927554896252122872238182465522932246470373258640961876910756207735551969777623131393939677588600164321519943620788499716247862237588743047363793817879924394775323180300792832791754905112852280416693993256767369561019445630703035363501521342046174461935501214448999243149381803297812325052671580932353950958144913928200941263549127994485233067778449958082717456741431341382302938002949602956782877292835767318419954268276098988075265570815294340498154446755240660569811352881623116327433292242265588893388179638393112443951724794407533581121477794109839564118034657684854671176561692903932876186830835772551042121836901195329783369700262343820838716118503637585706088664510685037420881950543769786222831632893921452087336979954809564434972667251295115906318131540949501396579432645406291132896971598708716386129497852201396894491117544723824172047908735467233102887084580369267236183588784368369691769473731109477796173631661712044621338292904926936609444050337083717955085992898216135857513014378660526428081667113437973666609290665453916609407977058787462290170290648372649036797043823148167221676628642152241644456792502024468082866623733182306987392821879567737804244060907854624106292748390358071917596115494806495045860306894222826592838983092645363024417373693160739632391948992311142443840306146821994554331910868328614003812466154056880322313470555425518826129674362456694074285130040305987296436183036320898322982258337254189882261569932735595042377379262491373765375221183643921783349847270981080236974806276182531929841093982079464576389538182813284739565513575111485376800318930272656992791059297191897227494855651125174517614396027492630303041320052366117709919244701730575369274159108214963732064870574467738472089131003362125735440404638983229871185270490363229571009567642125477438963970532756623989530357019829525610813262873587165506034531249189703127974587971468457388564921083520551893687439937100157497729802564977632509789866815790802124055439285870847495502143808622138496519939250426662757678996315304046858168393463535928980377271200588205711692859243533174773704293405051372390413093917644266823834206152284911731192653822990192668791820550429943901147769005096141278964805741215255399534630081477155228010416133571755053062467711977931755601807889520900047208583649334276630713007301847851134607010346896871542595798373237735898830933113339678411048272078138201465195613266693052678428008164215837318659461731852954995325543781860322902679364725559531213895167468689127233829832462660676056633322856323283024458305233522788308112224120113048294656137944802802763593996715979896093414049874011691968871741142742707309799590037699874704343285921006660754156391926735241489530624832582788622870781263914481665804557523022950766718119409137275248818124206383067940545848748119637327856490638563351820100270992792578677346781461593212024847888200416368084634552306859204846253542339795209771985900813079081183974958800915268418743191161709084947390792731914484775151201069917297261217301914940470499793691371407208912144221902811369707422004686152626183618600074225821815451556441849546147102107723039766021644372829222489734689639248857118288895223967261567184053925834057761702331628079934698699601057724686670131798448771437741677614251876807574687987038312817122068551903789118766289846082380290123799317301324718819487225892414690158880686731651740399506069719103921652149647529773163174254311761653231759367938240098373415360157781820554415641570705819943945405254603037542321129914969058820425204742844585764775587011867038789958034545909919724379278913125848659801263502872231141025998782394674379013069525437962124998318999975328352228026681166039954158291504424057369379061036725340600549191446033926779910762036264115591927278603532349474188656523318375054078239142432157123369174001445666081459467910349389012707153039826227859234989193116669365683566688439104038830578503013545895251167153176647491887386720793871332818152235106076447126363249249475402020849587508841494070453445662226417982495459200802410040254604708844476072431168384777493885273850959665841383197351120972682208758686838601124218957469116843016796799562137799015496650289681525170785165908765563613830894148307227434063875779350358903392484794940207003742504869718591299118005289628875639187602345302613622658402649876075990740631681280990421828292616094834645726379193786700363900131355008201119385839739847803454752917210703906816895105173178581829250908008687821235520957837172172539694233494209042305965529666209472783475647927971556818205037930874043142971692747402988537029733420269829176244831473372087559555869834433817652965985893620844445796484582856932521165456874327845746292212985834238195498716235262884451522327025480766738623913539367536003889167127078213408360135970350078773926823754058999463289276244379951864574870930827393621843556291656773435292096607416881059244726188011019697042556981833009335636088089588659882143239866843525394909110147146057416234289317864052081785520408489703901429348486532451006199449747172619302476794987057883434531286752164670581947155891884759130361005084068478676513788134070780418098776426116397512412099822216230657332111612669577236179809940432499491256822537836203557545380921390989199714215245049005056674043504547314823770648978385516547794593437842041245503414924811314972485787662056271351685883780747942959288165684110438372942952529957514306141013994645490196617400143561930798012447522256111337712495719629516680870251332917910516875391802702109008943385172622165166162731479363930535144950213282359077048976039774154984387086816603192343481442559986579891733601737311592399326167411904942709767319114411162518807736927147279340425864981899580990116265647520865202687023608276103005926067095628148744612083515942894350774465754559909805788466907572985344726516949960552287129616240253951711655356267275641290485617110878879809649821981743924308200190335394794629600674534545814664134789147828410290452975668661994364611445366864665130784526208158952430605241245577175910152668953705678332870081359402532977269252787719014510730651065325226665972508142162643862068484445788002642218022167330750702976787593932391333081328099965200378300258393867184374646089437890668063468506303506129147596484336213323618604294429318972051607468893136029718341158166437794077595714767032717264991865733904377614335041249546876970760168617793807253006112792532926772233781940843730419271572162708829606769852950800361021176896076414862321332621593560588625251986349796208416738329795046089489071281567943064235956050767851633954713594733667173076229114358490166229745165685811450520707156908356230216819114228927933008091453564646638448090028962803609696730285736949378173736333728083167591295997929435088831985301673426024129128322808742824885474450478300190323436231417241238285388420430859602088997841672786336774895196779162478210975098288603562339365457071396498998725196515093299027518049567942101236096439167458698506774388071380961986988843532637465188610013013962569707827474468109963793482346904943246338606189297697175773586674460558891776629768088678904999091521596930527502830835575370965813677050216769603965617647777770643220726338885236225871096561429726612877481067727720755349153967977725944629067296004225573879980869892051106325028662884013482483565395620841706280686915520822863291531721097008520114432185378214558667660260519784918940770722062684615024512211005565128051811356281999790070295293598248952874260653066811661835514224790643377482098532632012085856006627466834417850804436379574125045371214684643049038969316243849229990835882612794995946954315704840216575012276784792286303312250085545441903972791149420837689573419628330036984403452299722815098259392766290800499431683959490806576693180693432447509654695983095304155681160460679013040733765968490107014136064746946009152556347921860617882533422229811733208438732576610233499347480598344355831084727091228535313223560362906715957063986686661550436291487408914386462485256255340768275624665325099925990355749053332708481502546388712034673913558749891295875938994458534928256762322022343480012025383410867795302262225598287945580250788246128043094590725058554402470635196868780499621707080944986216348270013788782393721633068356423697247025150885766930676912695607449145380114672478922805256184434137941894550944918235134758848743384493422918759534411423870829900439901069542507922825191279315114185078479238805059144622459346654398872947357908180933905236969822141915328471425406419476178830340629373239876161583379434033116544144925395741470550884890674696970740216204932925652222634430346718173423110686170464562015684569599611226612232270351343353603919953885455808068398529295964554429796213108511970519694513725458535860337734784147318379884469893393625026085614832004660363738830139762361071070093435626278039399841847572245306007344868631594217901632385452696348708958751544760624140777877812198315305200479993053165074031728574914459690149227599889027443934939894876165507323053982288817441278338292760637513217607798509566175393496203707567497311548007248569997817049157100898084927107778775335284685268929486222936025701814784578050991775338258278199584588710445900230793055803046966603307252786535892762039824155969211087989095633864789832602496269206450068573965616900045570597354475185242143632444987358483659854043242577855866769728330967786929844958278725212009610978122899253153882041691050018895092829134048221368237285523049114383981904310219628226482889507693020531560816925753270615341399704575467120607599211916007290128766398879991856843006498416586064713044448941670243847411304751547110451140422549340252791877484568098464865967104517996480497848560150355512280414293097897848720250636671379353610365658738922413377821144322337933533153625543553582971585348512945310702247118620234583660549145323396588271082503862921685885326530041549448149861974763776349270715434447256731027726012441256161542860164288750612714980375884000059079691263206192408498952067410976909575407593363545600013509076709153838649970543214107528304440469043360115444950662829039998122829050939173850272069490314589841106778399799923862542408568078780052643133043398995975795601846426226188703383674765155193426085563332964175590140839673690271896451514223082300816350357618982015479203000275032417311139161898619120573948122375191620322025603425721548180631575146832716394120964323440655158777285225436967305024872779959318016651452091312012583540121595955179602624669536054339669875126523141417089782477971774892490067463875055146045178759653396593848027570025320464162493111045402266854810358369650309229193309962243403978587996276230164757710804874332163166941122646631272447280213378731427244490746382714057590595228156561268032677819888018093257460557053471208753656724136449665415473599229761119180567511219032146477253866361667722171459755859774654243273104266199691016295877457982202508058614873674520570789553102084923263712456287313723902546574329367415735083563583481307912275623388046677536809140571974665025944653491298619518839812060224485819887580757356117777323717113219279576183333128194375408769012272271762623521900521596419429793696547493017093373819092298024595054377006639302022489873940982557521379186302897269375223548366999196455917411126672134638547469108456084994452648052590886755966510967907337591327577327452853365465016205084541380248741300061627740586287989528913321883044068104407464587888221211242417630454494869503122187948558711574350284451757893326850984176380772258783833861189201424924288760090641645796512512059961622707029134871305572000524880715727999598523926126830313531506648804556704175837291507396909149618442562454907860642572611979694555969896461807564203442887069971641113161000719952085381626006670594211509497584280369279098766644659336437207613750963502244973192411208968825650009812352934197369454306907234112815063397889608631459048155838996311489240145481052510049292947335150424311870346717994646386410231139142604308640311677133032162663991552277692621127343015392635631443270392581349804070816363275034310325838185985323560888935365431092595516786335400575957315857041896904066124276494999095816812506781247754914487192479830401303436952409733552943776843980516405484155216300175503209705694496978349652720863036490188940492011035858570710348403048844741432755017212705835245075294331757579333085201337502559379959439607374219169507429199306869968635350915563059075941473071184383278133044280120821216743182556697134446822942415795775867738518890677217703640303778034018068691775079627508571065272798616547913567636407584705225682995712688916743686461681738719876332714597168553901592980666252615889679841781427991896822609683677002858500532008450691654533053656541996998239059641525186822870937055239963831263716367902661988099177938703450681562281153745789703330012995386039921755589176855199339359697209173080494481271581822181249358087181420973652942821157500908180807235051579294878223144141730815132116618391668088060364497593603421050674441786317616436321328894755607615759533568846040270074071763149646707252357562145817156908501738127648307452772195805174340334657838741762023095895216800312018906705620424105419361953592566351673796743871745082638114785445719349144435460715090299759709143094328649900640247395093991182260618369084435564868547937381267710134713920126723991159562649350544841585056679110613680728166589614236266292381814163892316789088075784649834033284799698405974186387761552242024186482054482318310274244690975448400383408310357314561351711899240524007587320626209167537639900735781165590851870018892696266638435293586582505381576307487104162878054275535966363689157093931300217894985251397139517227487360315116291570317666755264125844232063006044143020781420296089712912241962792731668750158531397644581285552545094537066592893525230397479431817111412377544596147043590835568719584402346994847127765217985368283550615865537866668465483966436353004269870954199327256395915158730849594986569810889213294241809040487907618888325595984776534937245716268957241514697300088600954484098566913747386055155715352077113303459189782258096868470377872773835649475524932903686306936500548587242582139792582775194014314767370145138957908844874137662520670060352361712773569696699474740416069501000127705442532512057211205804026411546329375671566059252850261095205602909118267943946212500714503636082305865936135024276360151716960954375024748708545052694253792613699939481097286849594905200315942860447970958325812887430358703384997723914573366574331719283175110239386033720260797487784886114527700185493803286895712654618870405618767164629313699249815646253928800052914640976381374148228468739803601903674976762256132606563266460994378200254977784310827521790154111891507474001351703877264069868256096984759254778056613250156227305422539457375450025355344069349851513158176895467156362158799258971896452657107512019350012356414256375843268926801194795020328859058368546280370897705880862946888336917424677819215079682628484229832053113582408491245892021156593410466957132119298495186877574908163873850430208211169867826841837892052461152643876583224504853195168633156207703941136013018528386394537772514859232734076180481312705426677869310160332734757790032428703203657088912582469649417483213991185901386428049539860298858253468840530247722409045457328967641861921561737917064998281506229679267549234570993157193199133145342987132706854851650865225272432410994024677697292653560599082012330876355585420632186736064412283212268520133545923161709247403059998214511557517227444241938196278385624551984519075149946570087401766448974520590709116673803142930860389628374877989859156973722662563886951702186690522493015514663772323051880386687581549567152109948255638574450628341010792320183580748328573613996131306044341768447703213984085614026218306030635970051198376543703172140215231910722186733780906498186525563653785572985102595502114211237274557960666045062002276457608511841244460435222038172121345439106252796571844869172056717120279844876832472424972274638451046202735116086370756697465639464098878853020975145360325903241707998446874844815615332799815872858369693292976178351588132863880797589192251893400394957281589310862017734361655982101746224602951492066819936365233054245401884675720399306427619831538535332647790506102916158702550065384506064217252320607759191140246473438485213591645519027209327405430083954670173383411802849819644904183993666235380975042533746303459543631772332097790328220538628664850297712281549716505164290475418113607497407428658530970663196479512829685056833405470919491027104067938727023423218305395733553522806124572011188713265112644044179254051123229716421022654105256957702023501054607980879481231455128425534670322669421266914869922200340782562742836347904890881650947181092022006490770575678750929210753191390860483489610895488005674531791733117361416446589362388835432526187597758753813691027692352789092207281182614967356276955795882084183072676658932737146392028225490950872702878591167255621722256908678101575524766968652981042396191205928758980788899429008276299074976645382230842617278889514235775550166893930522774975798941457621961343018346431820236227957274252980673573804107456722084208633803009567807528771877287224581679520852605999419475750998567866817387931330523414131176544309762396031083602407118305545659340059912826011028466193203833255538341465360475316142592921773669526934569671076941735607341468930109442309281914159162351815534750680404751737439745774790118404469966393967917050890182348539642034287066637196001220020910541001049451954748564308058808552100987483086154022509048795991031245595906344799574445819578669463176913340524115642939410048220163659929156180015790189833390831663502095147166310667742355374938924275306012795319054364150237310471787370607612094568421225988190324887787586313245214124464156157732839442018219947246378440986977626065580890941454823982789775911062653828911002339198825520386562802192054094907785178720266477178066463321837152624276770355708102087545869200496434994212731625730985611653731976313980312172824532924734544152753125181703648232321655558141762128895268232271805388836804078324440774134168358563304520298832122338328810055744160302148596362755795596660984614930829868249357118538579718844390567233599341724875384627492276729224830637275743684371333987039939650400470495779458583791480821510351790196666366301878812925997865252067146828972140437867480030983889097842675343353541289240839740400090868319126054492209590321753134000306990026773975626566748479361100898786014957044420018397006415014878693304860433339384031551037514292459627329310180996514932473152086186910835053175606845305506515788289479949957095251971328785696906708626291459569684605495168886143949229241477542619296533161039488663953801967988630810015385222578740336228220737766219087258107540487670946005119849198550363838878729755037992894628205746870080686512992310939388835416543458350945437238518611883272320078165260832836465007027873174585409442085760827549178387378508468979381326096309544455517572576459328319753818015021569195170665644244854859107069530475720275154429935497804636566614984061440599155906601757825159266380691102175462015003701289504909197004023138250328465143393675612460587881573203509395764525480095700639147474659191724847833564183289867991379486535365412913766758079884532276309294344397993909760005085502359736827162019686726282709889961761815494583214453725123588339915766597210720174526595080028111429790607725953286027560079238383028274469412128174628152580332318899417733320413152429600519873574634025343076938233306325853459139487790849426305165599236199838154378589946156366013962601069926455903075774426972725742809469926010961239485952241782695989601624368146507953487831740404208553282559867592793195920765216579339693400476131746523074814256890734088139680156015903844294397927120496395347709545605835057974549491362105815912280156004139084791993742455899163276392057941861784976365722233951326197595965579094315569579203151832296553419881945436980901673641568654375492588063321187358502512091429768049010092026816041017227693820432084988223778809447881911996359614168855595637576267354713570693271724453148459699074512001031737419325764608989478482797433424582416656397504729345290870368414958183347143897746169037701867154246097614697930188956076737707272657321264939712111695749197969217994160894483076531008780929275737058894998031919705510063365035975230060477113072809157431046797038066891841677749463797580970997927326482365801638901974459415505427250672004960120422935065803068158710798049372096777130343606282813227890977377309141936719835620802890943446994789368741244915379917934992893362832785953186087803354855586481243904479333689016066074931644901412180939368762060940328784396763303779008277667585569560712638848664126129122836707041485205006252223948544233766225216431947003851946362018485012529779245475916437347370867737245283178088372844114192609442863333093315528358196666369856993271734420678153771132591667345455620134953335129032817744429114651407088570870092669522958725005803594232134658650722609514453243942611471202148710497456545152470428768929245407564182438835195204200846255272277345865957523378462499796657235446489273292347462976073098108031814952509411873018206245599976650677450793743578110753547919066951413375745287745312487545089097977323675164789373782293757175754969920168068563028561591674938883692341963364877483408822217751768433742773504993394690923156446337995049541033847295629619350544445743412891266676985745431383311309204251448271717745326807866652484320810211877084067955544839382144274120351266777029249055754129105780369054941441530392538348565666042551764826835417012348472135004452074120752929780136627486260657967142894256376345433644198165932812965562046565280139456042749889485216314247721332980070040759856147596514644983338811631165045457307914912704244068727980216924479877536174361892476544989464332634081999517854658602370791581452135975154715949734576978012343366534054457515756372751904709506736118864412909044602933222095530347127060135277596921146243933832358779388475911393728048633595920348172492437566455476587678274961244927393468756236005331341623395362258849684214220065610317622476653600411450291152154077350393807861645900778382281542675618505873747157105153245543426821380488434704447235115830516879583517508791963815672869765500013512536791889126980817315878627633208241052477188373738800136475849865124979142190433693758291648282860306209973721374715667435349490234389762477897503037334075382819230689892860716008735796410786126712755184071614349006887620303069792558292648024638143237030135883604808203018860194253320083296571971514479832436901673380007845825873239279389102290969845111139303959217360336718635243777896003599502280775552926772813731914181061691918568058830789777775763445261713364532631058059994934686487191619751530439961203292566398976559270992660609852906770749729292491225018186466899537193579658498189824518447841622380689491812739068809063761668451809950385160720875225517685572372377118455281725762373039955077119159166566149082369844233675496030331898842177981797758408121073440670383510997362348656994704424085179859426520350063195009841626180672732483354461702318107270658033970638682640457935812408158136120932142779580803751633328332314753136861589038786917472934255198360379249774833924350615283976682894564777054002342104957970944229065057671705589964231574530807961161082390677080014834058655489693431365985876890475460686331016628404580589396264620085461429480002677914186220541074127746311048425172445252306743788212150516055491881575361424976213955010698169377397246231281420882017354522602631457243719079543091320501609422602988684800117138279805366949320837481383518467140312683215262600640226890494606292282023852427203029320680851920780658606624447264022699625548316379678325406837482008697057506857320490008850981741562944733591971619752092699182091502380792736938917979539757144575037727025683931079795750396760329681989449201112910306783965314496281534302921872463319715760969914300844036046864025427907184955013059123126726201317552645396054343487619188592481452887869751476153872760644520167607727151167667000953585769983017322226465830850230510917897924653191806651511085334149941775810156235449321914027811926332043305741250268284038445114485672190353767918284800466167872591942062415480107872887752572280336096939408231290643323143068432008418078297248418208266687623065788423692713453505473461982164899884219678070761606243539923821186210124538907967090934542345246443082172644651428670454963816863160300535562651192649095449836822537569455141641116851419253158682508916597061115029739314267644299886811937062641097980412882142286839673770510005485554015732628066840325948510429360769732598387211267474731650258207459222264320162361915700507751291250240275445069332423968299677203295839503153181059897115211819185089520595786366623431036441812485778124131051428881698292435885785836193109412597109474348414216468978520668741490899753219586126451500770819471577773557627660097975643781752496926827215904717679427529115189577400091618877281702783053556818668529488634047958791532929579392033214324355910720579818493170749394973729283509913172581708842299178449202961759854796762007802594959786039969791047857826973604278262430773975553546796829075494490058558964803556300285992253341331044001499855923124677423799871322142961956342688211473464753000136909602378561517348031046703268852589373626224431502707869105788204244945324500832798119167974443644724247099614476442356461216335926658589489359537050189322189610019877264524252197626163886411355499677844983627632286567987274083733813533805505515683618724345544836154585154035574936727100547428007249030147646714461347653949554009751741530277191115277497748020608797754148297123628975647452407019079107598208225517369140643815723405794004835648783920245126108100303059970222726119682982131685023536376943390972186763501072647223235692207312193244857114842698641171878669856256299406188917400925125198976391687072665811695245796372356032143008509848376171264362719198116423476199586248601171811815966276342925299655839719614607392968431534870223460342838889396886012367820539610531183798157528656626262114270551994527104749069424260865689356815486959866321026923252194073201752579926837118366185746424318842855940970195824497708540187817897593683838167232202212524915173454108478678745673893702936021972734536764917223930830393334311298574795735247570539257608266721993013903533535082644217490195553887501005362864658025703428835045245580179745115120751408858743812156586601558274966384666745116945317724445720097953125406181977776290622552667500265192389718113200721336194313395988861412061728969656429701380377852853752624670106508369348709241497351212583060150590338745482678008851468638644466824732875065969508951741483163931540761195165270323979353823346719044457329104539925008709188416763229157457380169493336210624627185095268799456778556219781653609124409733493532683785839997967877131146250424833661445607125967466128695637908729006424310046715521831794715004152451453317164938409604240774279743138333785058302852178918650431605520863037947720714396834891918690885067827287185468547292025234292073377015631502763767804990971803814563295750038550447757605276169673174363044347444670102982553789281965679927686047754807883612862717694629496589607589432280207674495587968210402750846664242492177695491229923082095491236553658282106527354961274260902782600039460957278005334933709927444016892668310342045352750176787008041796505003064289587565657867503474972940143317040418413215460518279304661802841905248147705601453953953988440599245195501981462052184541143191121652333421878189824810198804317905191508999676842035158558308236686739287306168656298646798031091400158345548219695100379239212191782074910312618412507182659325101961761862437204244916820957051156529638094746162065210985636934027425645385368201391941593601555530250752261689874449348236981369987217381701099989795638087243977210655609880321951449587051400620937796650623057800140360218181874043391634956978799385889013562960831056552789550031765574528797066341525465502581719414651881312370329413464953997654721655672031389555718223199940509932095587395951224039129589928172733900287315916604733496042381019096777386348521401208431935080029130158613452558019304621406430750224295840416916677535062753688019805337262378054866254801280335060205512854192698352492244853170232433467938866456558853777590607894163901429319178241891644536462948581038196139718172378111690238510635066463116015539956668657241127617165893537586696595516754361815917323016304788501594749870578576970428636376505697750123606415576113175560435996438133346983741669076810849581304548395907139615825992969374938806729312225879573354867294504958507660608947151084430277402413393282068606892437223616874018781694586095527554825953335604444709594069524852156004465880321388556888747789011751258825080772704780727005761039814479578523131388974165946415440156669290878183346903684111527642841913781296386429268769425888724869417100336282076477671643746024376726624487219818362711863852360359499423614916125992972650068620466185572234307197277932333594008579241260896066633326718702514010773590315469666847905637836793312552929008164913669194864027517457395779483502477130218101715707118344619258040447372579203376391777699659915322468257117030362496010101335831767864428754538081969591329489008269887102795073772840674849417228410103019179252051708227174770934596289355015134040413656792253402433391719912100759741549240798839298921257523836376807294172978148047765770336018334746609643464161376974810059616044836239420449911156943622114181771053544310138146436470116779475325920198280697479904169794782952823321518474713135547328853742201197545597058547084355026429143005040837758923117297094968847121279957065899137367427187354331205518452073032303611093197277316468396837017810308577871681556556567411241689506512041113489218253536498236660436116878490542415922292289908133931368084412739491355557179621623501935186827232264828402745951529274901882671970708234832111752913595320465752215149038189029043705069562471084514487427267242502501290302128762196808015514163870151687371365332761089257034410677956227934433264556336295856181477309717680200127622056498430380721611181264193312022150577463375315990876141988230630119476431233476627335959742560603808451349856235066750199363842501784302102051580720013978351239918881156625585354343780531341058153615581167988200890473755339825979482476829524623805436705084962080223456929991608098066810328772291951603800977474851445441962546611317268842992182856223258719594017173977172779674867279099780952554122065607120427182515894752556865704171669642378710968555723606075340421364972765402201983774850630117506096964080277145946914594757556346948741149473304416870205664787430774854667203922874085589319342252567726496693230431896479998166802417064834397747405755917135072027624267772884570484355683174327860480341830408045648022146055151250706148790561658164982097618440263544539315578565971232701362801477134092657267730731340496087719263130367140386114256528539084692323572113586870624075404451787395471986290136319524033446617237214641311816829448609760966599740920810141808522255141222613696737053430508765600959538739356976874339779397189787367011061400927181030937802879542725805921787659974493875694923249699582222561348948423021750435736408616228381989381670487870646174072041991298009436709778170714519561333842998382019957731946609848767251101871494318850481135417655407053450458307208738137845318306568798201789265894248052276533001909864724492930637841951248442364054102675398874508802915926398871203113143945285806174886083598711262739737674294978735950142069422925553757402753534026713872411713255310031509167814054873129644927000155523367634807166742484142877245886948739389720857884093833834669108338245250482579913589709495198087493203091703532351566661530227722104850046485846880820806673345203234638093841618052894549579694052524636097990754594277180833526011891806210802249707121881032838522596385735625304163184748608543334230390676219112642993616633048251793169870530578592680834696643906489161463263792854182673070278417141799909368292107721003860843654544018693213361814482030126264282314816049189055621851005714972389002577309554259530775765982947929674197234607548433634600109423827847418193494935521171111549916445294782955082142408021836315339412616091491673893237478116109810301899047122453636954022762596691902378421194986909705169523967645330630507327802933405109507684715685409127576156015083522183537963179068898716727856587193892452243195013527035521474744703842827529224439353418217397558560638750170363631373154460559760603927521646399159006538880458102857228210202896314152708289129489037139737700084206471314325751098536168854276392431187003980100732911168410536641408756679871516475020111602319132171023074130207385544799460929511165210139121781805683419856285600896232701253388602779218971412397415031615285752831671194243289627996228146719859124950743654530271784343038083910811233636669131480125495605075669677914163653387182652801877126900309445611956305605600239690899388689856109392926246800665987796920909872182915798906138141624803271613484859131822602807353183118228167777368048497612660481717042529637945621248487175467297709704796999454901676309438060156125876604387462774587562500327156110668229915863158193343276382094526166629152510292262819037940695079059998206282311869793768682366533583060914083373588714513336951725792240640675039745089728464434256129443889353988136077923041574575414115458429746869378635982048073206474611810349086491850156983399635519272652567593640980383184038342662990317149197627907477514753749698865590866808143527326706247775940805325136786781994436807478240274588555365977192122475827418747585987797646286632581520824594150861125499674727195354928764041379968335393963707976738041742281036304264401659344615892398718140470998876725310671873350209220023914404872447389759869253641192380834364703546221630367259781821291588793605083633552794042579443008464442874812450740473957753411124639378114992628196282121377882633837371660969219163344877476798493600221505936411129495043315408885682608756079473340916535054770662387377359945514100454880658514709159269221125518714031993163107913316776301281998223140401494301521460302173543698654216864614379393818724383211863010879453540012298591965089526003672213954487192769384148297031172677647021687637491328408666812843733272494460313113097620821833333355644852301453916540745301706808975745136375718982988566046936210703191619158114959326418740556652311860478965837541380149824482064307782136433405687963285627118756581991522045892790235359265470136906814365583129852757538247791433933465938449828675628807755959219170581832421418935869835897383833847756288026725270860938085245333634575184252014875183489928240517762924154242136772251812589496641694277320841861364677155674021519039692175170482906581226822256080951801070677516488718510008675712925090192790358004105425809581028994208765057434269738597086027595483839080064282072915120902709184824870244439939027961390207408569993205538944187220353608702798898720815082895147345924627844769191719059455977391340639063255439869910990226887336119570839472198651219261363798401938779951430949252233268474000793579530334988314031228340438603038058397129436561027002839079888949837729691443747258962038046884338996042879845494647734307845139020868858225307534190828236644756098727150517996473887877815966024809026804784432904549514617858123601963859272613104334997054658824676995281562529817376640051055334659791677116683543969748071676250075140290811538589716245226940664306675168997648974936190588441166870971561084487702089512790930538582240247789369693834945382608769835412645916347467224125378162969100928362717358648113646991926898055677177161864026542936900164704461021756952103960660396167807201136393140567689887618059689727841462868921412307132152517703129679181745749044775115526388008761669032851804582716062515337353920066757339819615164238208942253129570601107155614603688823881762360843572828632328090779528878470556329302272480546649575727263944318601867553291913966131234888034199846648302756251611361929911789893062443447900252758405387895257518185468558895181878405014186938051909637073271110966237257076558176700302763819256918211647632798497036497265038465220930882239548421356469321017132063301360006061197155289409751634890739978569011511548374864566034725007843681685482755950688038220775442510901074987233749228891241638229505456236778702646917647222814599015349992485211931087508382651977171052543706805643409968315356649196442031748714424816637946312631370004390616074895401489871118481622569016754581656055719067898655765858058136034396160554703215160814371270460788448420447694160489138309991230063775172847211175321279729090205693450844355779406617282224700346726203809399042410483920705545171586511569312125218676987055867545599630880604386315698712663845782278212589417861888559713205931464857957071509777754456954843922982852779316667356304301390242824684044040755860686065305095737288643422539260646360507687102234997761534131907018520295378087356173544050763158498735860401963449452810884390084337215089936627858109596301570264797221055858490247114759476742556411133846786118379440932089786059550537830806822488890885294685589644230628324575074691015260918663280373278522480229054882217853796946769339175520629537441432203269128906959859572023301243972565926242586949754051689871772916407913459044307691781656380136021756212332163670746452156240123026917971882832311888798812464851238401304190816514671583355591308417808736586710643824578113378499906067540119930398386001742999954176971055337851671854972480170027185292087205092381853076661310107274974303762293577579976278533184985944462560627313598177622188594544850617310056653036774525602344495857627956609240031761239426055901444536991225498629402726918954484900918118928850207195343448521623819281876039971962806875597036102989359587662272579687613255155209773046429356657334883281314881700954933569642375944324124469938390665510414916840049940558049784296939067206433305108489852912357682020698164828906362823095569746061938024715421323931785143106959920017692948328230039155714052899293777112095505563190804805479006533675137483204356188494744751498728445065230167297197202986432757708506171451261543628808223822979338458048847456552310574199542079278808982622700266276217819178892469777503535522507706255438044902776645069799596863022563240804173442798499804404656654375511100788696876402745781756453148226485596601529391136919060347506445074034717083936108221740372680584045589064133243635654382751784876371716700232897643892079551454524863156541228015965422747868757574701345606269357291529802712016588063011010667275531223513104881609114878563763393997457301313716842773919463001766290276872075110543149896849170119626709198420705846583077982775155046743819868115338792025207857470098198474766803954338518402627711396536520015282487992950416065232699618024868229299766773767026515589937468390998566342230098812109598490134120696837649101180595279420267045361556549448987188555861186171523918817915897606175223895527153508220023686643568845994566658236631047072103402806033722430395259011790742805566960368033928188453515845715283461165190614239772465358014556924258891511369106269654890141881112609214569279247348553141664571328887949404095490689747069339365698241019757385394639560505630284690288533892695465381470263533191969592758721350265634767378465844330504600806741303154658524988939621742752114474125272728934394305297290770722914688552643034340135555312465223753066058650027952522904288878880788609105752682159089035371665589473671779755010749397395051519433705967563184078535545853866478338434461277355593482614886291708445495674699580840906607419468185550619394853212017326818644395060577926252963143061291215806647030197364201349164028614644992016856580607241700735911599748753961417015879378412464603806063879280973297240711300640657390420722950947692280307271510441852686619860421319585034001266864979612817195378715666322908536949145266376765875957786529419368794244271637850108730029337601756809737483387707423074984422368126924258123173597793173165004143937655105959742696786993452527683157120031158700899813776097702604789532207270165019729066461126224074310105679719721309086689598620647905094702886160022243666390171661546576817489897078992302268822206632615789949210718175633631655486579886284620665941188069960353900668619592413024253868383656914829500607119825239159015535076514689522400757751884473907053026597065786123727362874026532210397763171405437820552663897439389495140535068959537365412795102133292230633873710251289969083236261692298262608150542763680020436701248068857948740144401620424972730963709864728427903745003254995004579981957715226972056835209704289419209378313092808702897153901107180983821833117864072211496110302082146974952472589249749124899313835524423595159371878631798868286474771920851584644615551712674180313673254125547078713733037207968525531604096279974414922926879747572484480630482377196120252339007858268980988446486922956539134463485194982483470413167881076704570873525404417189654063596785107038017681645933941992721170919354093598574929538444514135285735405227027690193642392985057637803995661663975660287929955831578676018569631489609923373990918978554603947773958450740548175571558118281796726531206710642600460032236691599743126311373962831805554310652224261774888597616935245223716566350826857497154458508086132410168229084459527944828689336063594473708329307282272525777745292041036299256702041295811125585927047701673988081465791533627406455297918304276452273704619599832244366080286615574296581381049645775505604704595179136775653136475147417433414329924658421438408068545716836890474330878853108380001673992026690869727436439269274513017431248067351535207795495304347405632079296361985714544013452452883250886139029112464643214055368429381316258347827991805699010718032105048580894567184432207721789304950036038551644975685610179907577211964769527995881894477924789090899948281994051834119690741655641723275008528740276924269663450438976423070110661913399322580043594121873495716332946809503694152367231915519610149504048635874749036271656228239739360310140664450942974927104646024425315600901481934549538031408081656231951822584259131280234460656767423055063946578283455667700758447984343040481297557164980645116866038489724888026006323909843225200877025508856526362348457557292383079033209109781579962560797888265997687037754058375830246442219024987138945005495305455974344205827610736719280025212544031736655379410360472950380449522534735827906867608759751666375554122147200025044001107117342341730477951840225657662698676608887497514137184830589405513567753703563977409455112045427215266854200423641178314263610153763435203316098820768928733207729581234514019186876158699481342208118328535290463319038602157086160339125657172895946248587928422949142978604153886403064379701350931727689939515979030708359332810695059190970300859601577960171323304876692039537402708248898086617612520139623833148194538391566575056596877169660604563222998569695139738734379085063523789543916263199428876129355363561268201135540828439446409761867744205947628320397541960842234563057995240000876178690051648828567678890751963044288250806044537506880701819662769131322759262597362032625158451016642505482575979247231822182031046307783162073266836565087462158010446059346148475963968742826861589019649240999991517410575091650189028711656947347995178106580883869374679764321795691036625415258457942894991815929952122904409248967544509193804137468546697685434063969059916239420106584840603811093985549657617813287324291148592538077270292175524251812901390203993193242710461347110174170116868114316039998661499565348817429724516123420423867447177312066756575865670904529576571102084809623798188892848551055858434340395732511735377826018496421734904849148778467701926302674860057627224107626340151863802442108247434495385415861581140056406236043069016990144097544160788805611726851156598176122944037038181173076010141034665812507011643710157456560624302110201599442808570253401719883814756261313945692838184991624403959010816758989368666826487344024151065357238664608753117426011132035748943228245103131148589998557141245531355439815294443913040641715063791955837086148897385412729790190393584289059291245694570579860037147476201680258582291263403098724831207064725198603541248759250967149369741716466699717304028336777298503180446102311229963776846472770615233312000951319500266988753331169196102062571565163812280699904234310018187437700582011025468276223535618247158702257419026598768794941832383107510192415229153360087220705693173306662792372161790094909245438892209776715252521154844951821935886739488882545648100558770793072279463689140449466667208591722028395677582293548042669734411957721673053232365342191029210657411821981667526940712655459982951799482019295024785755562603525422448753759378410058020276858752766252560711025624082143484233303054958773542451173975353736878027459325224944639173771077582980415464129229933739278215863491308263052244574556461135595817403915670493382934675113937354677335040793614531289537009644471833230731189967902714916049514245160116574936746726256148726847567591125599673997240688111717129967986722984756164592553071231675593571838953979618711641519621050363165258720354462969224401056518138760903399928365754309441028905007347048489867857066169714909041838034122273702936723253910007349274039345607827944616320373361654371626203382005256049821252124947367177326234820343717443756966101233938336866374275544811045195040651011374621004595505427426318821903648700009101436572515931683602825825842209868459680743197077382471954744493287623224908099317004593079006257581751784472920081054185197435499691047329299503859295759531306235561041525929764738793159502282221008132376261278662276581887063966743697239559486933381317410525398805935217232977960499661908073031996688368643227131931069182547872340787622831728850575398868296131135077735636106750669617895247788942974634149659666456302333670484820310526312337979562179578004553833493245290982668722934370161232897638315190909928975424168775751613523985027321452034847170882660345510453636474856651404313539948982394323516839225007707108987386911486671069314148969285164058414768294082096585811682277654248949164969098608228096157950513521228613397681513203011080683258149895855206075241495746521517565546431785475856056882507461436553322779422187037373521083627484963844223500675308367104344729434696968746891622407206928573332192655198735568842397523050151342165303791156458148587595007876832790181977859461253000268457663874910383991351028058941136567013499549741224512144835453548676366868682889687009214102423432370825729321914060931046423168588314934371843839694566515589302195736497012293997661189483224321268615367541361205023382229522078229460598600815863292842499979380408609157698578474818484796902046126869908409345218498067554384363454905808082557523662968727088475357127216369555749727864126084612708610273514000073758478125000537863980095005361341618752735364948627793508770349554788849500258242280276974800611811584864465483838980909586586079974644070336212301516795997180594938672297569493107497527431522782631622254474854998256042066105754571361734346230342951481739989806547925839997111748042322787234325917590227747093132278235342307312650009040092487243037247141834481414000710205756214247643605501060670953812834337611351109439447382255696006461062086160478650632871625149587186195838336810826389022981676467087869342947284094838410029724557730648081187120905535471819381539829710733427787930485667714526773817602821880645377618543202155075985410631925382851224349963772668888642485138315837031196954593010077601860998423370818727754313542289490338751763722324110789129791663407074781164309824920347501031241168042191844117453717879178620582680958525598768148018587414725527127862019568693375153983262776840394301794922899827873999372122325579362439489888632713296315373069906277711108503425556347190904386901064946581381416167438721915562258218131930388017554427010473274234117560551222746349321987968931040858890240634528045334563671816649397049084561766917740251634319569383450849399858109372748588003661589360204696025474523018059134849426836061102968873039101203935922978513649697301041356747619302443483344561422406907687866912468332395890624296567865297088346747683846268459739220301790682825862421603508711187035614372487889571564071068627834808401054699618695673025567749686271990411471058617921182348882557227862519660465028084498037795060901090622218547103265823627537045512464611409620901220746153153957480865176464362004835288504502026147663564219152876479449321118499441847602326861145676442209104588849213096699033470340522955159204431417030995542128091064908100835150311888632762850415680619916871718667444544246180790873831529121699027400097320781560244407043178548917731195516242653531050456484501419419409879766611848718053128371799126083486734738323990147233670513017477751716667302980615788257218602295387896088630685042509663468784904129785025405914867409472017314520860947058934364454728359271022969005976993185816280213653390906546759234759126505921056966878315010190834227957282394545805596820154485904339104226086954170953410888400863144491443877803440650980921128763216660951053952477662585959431589819574638123425617562497667858033308250093798579460198384836887815061159924831699135521583692096660610618093507281040598849238201938317977915389947941359040100073106423533798001895197647619765253434086602161637879161222599077608612476641182622005099004520176344592596490114311898768774325833939452484925456585668561755587280226718318303460217519335751364772431016581404470126788572024872920466207957184461421888949403067717082182120991134053654201511462850167781123218519693284698141026592484449499460105991070901609203459584010264054074450337999691219947114426669451289746159286397622882587225676840356803775837666720085386175226666552562446328153187785020155158896387943394505268783235814153178426717905310979717920725311754116225769919933657891361429933303938842029093491155542099730559102509893018427029308196802263567919132205427294959995557915414393988676409694271675046493934842784667938808779008377804953066713490084255695322623464995494173212472806317625021238341819927208398563294607185857973676348353008167666828430255911107259368507050054869172721611177982417327699447497844061399382316192404839186245462955213467752506640680912066639235818771423385549476712828442987815633187294063085706589843525264272543512800830246009560931172007339290553998403923310212091664947128238479424033439514233904084661836714381221685546864296945699664418111114256258422575623744627689453917179978776229622947283073883238776906599815357380572860972687486249682886074959919386146911153083586955923279112399091056424102206742309896570006293313915938460034698632947727972388562903056933480234642698692402199470587839524223226882442695516770158570707514395702974871969892437335744945133421633793514434058233747419021378890914433532812353831874088868111955650340856342773629976729524744804408316961967931904126777300082463293110485375212171214976391752312790749711842662596255979917394974671010993479935308721096599756029558332113428172787096022397317197462180367638254403854855211494504454234078044570065277128252375934229939170363003217274754411280616221684593433969062212004474692317281100590726889152572699039747343665985430190686432115283367500418618779536380173292462614364469711361923563710751098494727405166117565748389796409982696529549468330019119113529153885231102073917434811529785942699026467908301733533128738601686909622442640032602915759570405451437878501791536056580175187448937970166133871296276181666480929993750426171227116655580297384688657255051785037175638536534061889436942628598416000019085793128767015431592830990532428555887395444564718617240764840053746974702420215497442788888783417347918540239812475005589300315154761424051369753033633897430288622732957538252104445786373751271285859426249882943690651485260008417873719886325774070102545641367780214480437800409451090718850260811309424673018153646187341878662653686334933171488035310774439061736786610884276485313929771216400643222811578381610904348264948341902418962472588408607913714560680491028212700064695653670947409914533895474099438566247041480695433568623360024249242191154418603910887434139141897261747010623366483714307616050829980439477708990918035308665740243727734973112044347078119633269878663538644410181196766738509451489685320306291936197444028246729742005286395316370052443145029466149967167267492925046701795055425935302871258186381760882395994100133619175449984290543267587481701330857540653938632068566119803454007205927208296610502948347962896325522765654500460774300569803708306933618551900409675305925413591876904487279799550968669474744938913634706951714117738858847400064015004341934851478762714691162599616805343243686019370202013140155917151726789337757588981607638315872728999526899570568668739699445104762746617155454022079802664069305846837696020756081637829350506658775751674935035514177038534056153464498866133694502409417987347320421089559920967453835209483346779460509616857712302480344729832475391046585636086348323549079549893878968416258350682988885762601806311513195281841160106061793330870469499470515726291835109712625209839838669123237548747991628475185671437377994843653468098896039404136421189329211523499698399372260850588773668125638613653067894388212201927277488477457678910814210874516549455422027072150747618970382185758934208503086689115717686376204903974412618191080882612798635607217062238957031628726480738206983267954528297011594222746980388128877033746341112776449340213082351177226246048872188347524219394334994944262406673941967758813880588081618656898408730625369012205994837020142391028786032454968615402143750647882434896020297023313415145169614548977283329684987819585864603069710002351333331166877326902492632463096269905451935097671945723494087922412476178993308141553705800819202063302860002081292366369646390858174714771074893709014739825250105944060499566267010269118837367519047902308268429259402147286314606477767502831929815289609609584832477388272282836547494561765423311370677574812176816120145607564082181459349465899490532311332251678700467215423618697277388907061754096416801487717152578793809946811028009985826257296937396729354081337858401025743182210928655095918102322564565218505287203765774471229370395741522369362541920538039475422930637220291965177056480884790519344365536415099644832453209863280797270394670246897298439157271288657133925177078196388199006964825417889839407817476401882697701419559408073577197917856157621973175448984211679949964303752128991403117040589806265506179980924365663843521118460701832510034273170190977253974212264068182549757970373363232849815399885866979003433166214157112845280868135572145883251723173852848209865559340885761487721086565701011593170333402302038157826882282454377518597790411572053900813775632790991967403536319953732249254363724076244505111774593886855433241299594545905014463791553036719865348988544245234632913248718172960478178090127282277326455074378750399839918044629719105417476661263292407540450424911812507157347438247114495837506905271936967757081515252754613573621462452617044777847810218472087429554278927103193116576909397834972431193984855089312438979303259742551686192866709521788451114548322719552156473488251649785394999822772188567727034327158532452599623331997760914809729375762107860694410239896215806529762667936668559394505492852195836476154062857628592915162622499848634383947360577032784253415836491605797229834109228393079653988102350411102700811078302175042314856719976841610968764731571456379982110660938804920008729370554834566729233360960304518563727765476564535434559815413958419269681708237356529465221373206857780988840686681539454099478070575200367886978419406058993399222589743633741496247703663950805029456010424891108738102655890132458829282231518699024757108278009899456324411781446546571278874089212198998799989486561357519470681829763964413567986343388330975443870627627203704869856051613958585623759077205792528945150130598054990140352938261490695944471074781753463148123792262383332346285833172433139823917568533850864739567747021093566614444856587373766047931467152679836887839197092328937907061939249745526078021146892952988431280427249193027151583440004474696114969379845256840574226329321932405278649263660740157308539662920534192499493885751872776878800051400990060180266681813982534258557587362993243897083123367389360446273757837745315960381790334363213882921884316220343671815560541538424457114481546025727620886506624796504603252133857016929548046233064365141385814794871521466880744476727432067578123380598987447488383637828293466145275867087221687724299850083937550953882246256973916924067752893538898429048389418947292479514603924696760724637726298921551401568424011245042260920229045706256399679869444708206501831053167681027364953394174933020341335744560222247846375137007035925507939828218440322770380807760556452292505547797807252334346709364264904782499872901651655419089204185350134305747906148956149758720786606198268217828295871064737358761394976506751257698898835186238273813549538977437779017002816516560462965025255337842882570159079113987726204677167170578434041267321678940697871251256839240283307640319713353956035529861949024906078209102395853910136269050687106696474534611200050225256315393290680579869427107796722880717217829573412979898079742493951395837555741862028315420865151591711372821187947596067385681533761702233028583374376341166695348455216589848095488790360705440931369988620776451793795276133677716148974620330232141524234095455271456577929853968564569491889882910566520405605885986549765319351195718743035850303563015046870810728454568152845060109936373942062634922519048958774090328825642047370182791468475798135482931648594451000406154511721694866974430462686286149627676095371877816603611864647865006800848724235751596944196734208830303121375822841018729414308305482831556071552389121223055296163371953447691440784982894905614986892028200638967389474057365998917004707031134619965576603207104725198502611999154492571502653307907729183227811394443634653008183354452466373862986971978319707706403636485674037062863065998329847098445055557512554589123762595363253583141920763418784197256363030536250657667021445877073082712640843086089145323769100685941947195671514730154084759336376359385156854378616510137701208780621077915731872274248149098927730041840581509119453746428895728261025293572484048935424733425944346555187641132865458931202373255083403815258139858571005286898712939296550903566295527777830447125241497513547582916924783758220281890763335081285615345388729959428706401710032668416365795944137003071584544777982204337797484916813299786191656368614829872393194638880087552651377388703691856452111246025786858964653030381555010275336392621277412303246222370586485897094482690506009381722550636820931899364084946707086172303005080367721399083689696577353194091386478545447733417558276698361805817485729320130711675247622468471253124020754771250555368425482507889839409186701020032179409129651089044216479092134560814013176906662726984056208419306952638456965725433560496132942134639695926738619066485170441788164265140456043662363083952125983836788043857164042889462114417595278556394570208148660993433268861110094916947003403298815666487520515298638976613375730877527262798655729672103213934091098837148548627947438098685846558934154032800152974734207689134209944588897432079895998218033465816753148959965507626279396290066540814374399210035211411508072645172589524663910039438134427828488275209621879045417203792391222089363734553665182115795201679587856116844282673698368653397588608248083639942853735707813742534610979321346497367206167207453167487838335893659364044889837691825090617999294337205315452160030704183038051768965382089048686001490036379363707106425469169167975792101216073668446296112932002425121133372179298242959563648531942643838557772348732607402599496230752567624664244828534585642870431887770160635573028864633138904066785271438568516244398162873814156161169539624698990475699918540398526221897754699230603435444363405973498523347105184057269273456841013711639983512535176833994044395604876256341685246307945290089162672710926596460036788795710838829635032436059675071802066412294634268695811028584194637540444022212913768053019921623632162588410486285353928793805670084098787862733360467783482471225174243114565408369826090395832648667690441958810958228909971737367814559299673122892203695816562579353724652585638307547745077510174403166040354148976759439454296624844371225157529219100304506955596414868370489897341238678947857214664001249285590304593199892187983738026745070157686715966465974349806138160669855218429489297809457961833878103619972533500392003465432951492713356706209017651856363018778121384163035109671697780969560150149805282257240349991433661948405460113629980162601741881251899394013785334837803170447905384544743028447881347713658277520489266348210606221875680544079572267564728268070860918462458516362304229220586255073775973802800894036942409136272515985897010137010599997909645770695458123810991863671206486454941330795402927624897098821044147783709153707015856801993906082128376513710227137997752906369577565695151542759241502506464446527389500709582614902907781440558453654875285244261262207359886036095730655096894469986969037256353259730113493409621941479688407008759723013213992478794264529591583138829294826785104792400727563306287012541702359813822241284978927527708940059313259969784202258982190631548095340849566741648105924682427402999136974693316809381841523620406191408618706192584516852923410878561489909761477721964738539111739010144490613408352306229354784323820047849459706111317325117826574414923420088231563510955362531499948256242538841131336797651477982902435023631308166608964620529580386738997319524341248570682354383637348510852047504775995886146089577982855974005550989602415648216685372911412144324502322840381789454659390078184997258578684576382184989171811846027171829832867837746808012660116678063152336996867194512687905466652213600575819100783948336201773815219341636113500982385097988415923045988959685142106067345408766811057421476570315597795080780746932681813357967311423152322193794554269551253314683021437899226123709997839714918622499150066334408914691095224848453872590084138635353150432732426226436205197365312514973682297971251670024914134344538824276434490052833936795461218301660591679758692448236717594476435311698320824543654003506628631750540720022609522858344549016405742405008053566215803515188331611273026143573164742645437080156026760622950521605678973708345612165591642324367376188226622186583484114578174045220814543124550679196931126161520790859774241618693584017596503788294132565353040097219428622705377933516469082899240570166052581606698175323739156666226493559093388562326662992332279108386640019670933853304625838689812177946589467193225207249533780831952256843248463896807423761914798700947662922990250744600220461421938390000682444739215038013942587888432589695619734464587587376879897926674146134831933361955641803128653420114716999317645899769183819836618046707047817129457566595787278712219719568372270213645124691145958836340506859635587216689500189459880789134659478508611799557864153996274196405866822475872258579380750783099168248488283240437027339200752532571442422482673224698866562591404345554706345159308448852609555442353327934410818078790247245421338303273619968265547246287243652978930246822528725152424755499552245624379569414217686877581173243880369857275137324002338693709090253788588705405440260720427442680723199733723620529557785131729000748643606654806833680391477096958149298234260006737986845838550582096531141549922676847982723048834829842873903762377919455609354256303013931023874044796532173910526817196723053457112867914526381479874664310841607058346729988260133099402439279215736586320337089075484627102343175186658191599331483511815764474118749271386552365297755589570732039108571215837328838704445566325366049833776170877506169137252912867287927893438536331964390997801931452466111771599706829652686641659141782246528049247226225567948521729016416571194347313207343200222978780644237270096154669053866282874605826673122921543271575367296523493712484336004967883665325868768658495130028356477205933001240484893806735501669760797656030900438764384246620908778405559182278741857131393063843760097112431407599564763500052662503363029520912880772320322736483149433423907656855622186496819587687234754968763579603065100879380322490285976448541669325170677982346498966420700068774639484304651310657307110554041586741201063877134111864239178840743079057752569309837882759960448282502097630435888697537574033056030680611683899944355546575650460189826827017837538469869798475581130015238528231812152205859844484996015126422262531043097757139996774431172922930446540002826859414713929795874725654534777738472233781139986334530253931274768256884461734322040722293419431493055261896251612010011344579999713986286367310568006483385307973616469745077870251841725703085651066712872860698672759252991800329234250142367195044913244617701527892981055454628116430635437183339104031744908000309266636393120894911970297986352942233782932687396456854250017779078830875917873807648670440954337412268036113024721818491779985889661266727058733502279003529120923972487491960650958001436782629922796237515638758688608218595177325504429865489015595417345432209956918343646953187439507905463809076895074091176181417838884292747529319228677466916610354078287148989727884741274627372155856267021697319195217525653433860915480654605061326106604140294541045859660542420884622471494903027471204191663208559323112689311128220689908186682294697534027700072734552294892799858405628089204251424152900713760820543486401490955370961379879318319619393952042663912197909847998765758420999658179583986675882981711348613691073683323474822623561330654298142506460341620010114463867632930135689341220012789421707386928812679819166869668873358810473368754673584250500268473375982341030995485708723562701643674433480118705571763106951042985685534893521738527065530038786426616095610304444034164606985410090912556070567543183940572833532799519689283101974904323580850527189880768914958233440863412049708358468751515139471810019609145070461052254689784353048153132833995272157273028051206515253793563829596201631724876220488759693386917420683560291974172172645083193242906904861974658845943014295467128928514756932888711893547387532375178887184138289202211535481963989511138328319078699254270067040794763010001580987405453186074375274200543935248042462183928009614771322410285352029980342901874031856247232980350952824237985435573748820942370528224823400160763278614868938087317200864222907716140905936091678265947213244288605555869190899109905407062225243874497719386851115173399167885027583951777240307995389788101135022391543708172373393116564766238936618938657243081332698274617680350972308882644499991268890274421385615478357116579545066598676438605714959544552902220569006042946445494370117227305942262687605238648125289543930358205015341223526661855904594660560741723515024370756211771887387602631512372011959345613365891347703657154989409655359218914663131920248437105843964899909948669137967117251718979566279917588412895200802428095812944607810508604083056772196415345926080482429221552691497051158062380152110188743302902012692694781340903821826729597297239247968135353392678112736072762671880658148065184136125089111840868478055967223560116681853627505902428136342903384285006830400014752314462526614107315978435035100026876846171215788158564420045045286668763372576202909681995252023079594609594490069901643665415709233227866112462139562817003583708323308386781753512678166631816748623394272174844931966298411603486089865520619022778889952192112032820782312303924918157790721030699894953938974701506748219553545822072911381049682499683988066417338981258636704261593777999312659229596217371466929818099271487155542902784623386254839905184654455198960431784526263438886672104660032311458015049290162784204226745074497391480836759968551046850672990371154965675253488213621473015013564442952772046735350678149889860039154453579266631135736061259152502551699074854016338499447805104852558820687290461801368723208802583990125217068245185756261015151838323544058119520238719738693754579766893752182621176247880868582326148150423742246808138063739717392827027361006318263068482654045867719706051069796408194272596312632386862835626137482925455621895067674891090839205808931425551776559658680494542881988367028530435984525708266302821689021598326142362978162164569978987330225749470851224560426866002144801992283466317118165202836313071037959030017166858159492598024096969294198706163343365321220639483792709118225663718783249709292374938025690397710265331715639509626763731860521845392946326502340594796183477281958937482248057030322758081195297136002833931282313252018983082023600003148624055032104148402411593870457035877667074823165605159851802462170146841340198321306914048747824125442361203110221830504750574583336423254086391792597111923737358067133756007694840039522072303098837003780896902987509724161887317116404905540841731839977776860798027579397297995726802892859399622061290174721502441739412489197196214224132632615528071579960146380347905255275342766693443636569778392133572939694696444785237511010918622217426111006833263470049562760751934590936934039378342525249649318438218971466246632935317683982978344211984951250108451642819354050605370952396820060042641740957042197218710502226534729483183842677121220200282536778725389650930447360127683629470324592868085940955719271133297451081522708612512180096095680357291684734601391755393736120417913512758634044710651728712868885746130453009601498212656685780881535594945494502762592534225504907479129168984552048512290637124621999240125082939067712669126570039139920554456352318369189870997233942626825513854352983670246154643923347339171160688572020510933799318567393358878525938923470903485239687378315239395104157023961143880565370454840531963938958351716021774789302460502859325151899639205962319726411857011480684435831351263730247006999263674198173246944236329856974542032997979803140037456898472225899173818556701376166373206060674395172337715533202014486849636784786086662388241680996452493490901300368375960992817941987680974863460308610463866451573242700815548235078949943902853448851391742910488800855056779690733269001589153168363655770592925398620355909712132873996320172683612519786684568593846310387355330106250345450847183973964933717288968571374437055855303044494507796656438292522945364427560416892405272329512428500526807167094386500358539181216390372708000740251199173813336077073398812301047889372471561296961036493677437380063283467844434459881405401730806493295331481370846355573989336467586694454578990936377079369048524343184911595376411584589199489076759350637298991481450795068645193327408859818922934736667201186656938172187338765727255756815881226746561442819869115332948664377868459163533789037479649070455646587929921815476983425984416060572265002964717887800531313781328138161499578939463370022701623357617134311643615190510631183775646578918507307251282004707401322407720657581395343713864414880370384986795412454645944436826385904156933580034570702097336640808146202516484271670548617389583609126474219338589532112258465765618327818007790063017060682277585031079574434539314877716684394567607528717401876231285092894497812657024625274593946632415435438884099648708380600621791879112816278493445426836907301244159284394572034623704801436627718476121039879737730878115898341289807477768478202864664100829637820960981503841019957558546873995843822154725380918657193793952117296240256932281356906308073623350167058868563915688343106969794425701259425704709124221706685271528296874364329766429006723604197791620270406977350091750152718987708919921672607916137698960730465861970364100700070249480424350232471668106354454152999960116805877734193436599307440191784772910620600306823005166160693030997152028146227335470627469114842379115619237234970108220870839829887635847518933156117145504971174182360472148473740420050368248360065814525487633916766909411023417255964764354365756875580276565904850059408442712620771203808807616043502856957555074906503791395075672358977015734441630393212807749420938499385892476019809349763760337204177438938033145201878495086145097260738109012650872138902854028199839326939254033318006539817570075257634151670693376805763724684971570530038026155192830808112853848825010230883184011581098391059704218418985589203674302108295386524262875506363270485201179093377578939423336165168668376405715330472229145298629821686724843443748628974658613294812516952296928753681112239210274086834145497384206676350798091898517609766643717528131557987147818033097487848456813308186707458464341075843265173434483353704161410588787390220827190379672269459736122412083183084239777128823861462301817780787419868138848465304966106050612742242692738656603188816117976719229443740817741053627490969447870820342698447480455287979164336544173290474121039511619602707203785710089183680931283106217558934004741682430697240799309189579661790005451031895730835189797938750163214690928084475273427582940002730834388692510881630219249495333707349331011279656085575931879001473835226346487465129277191025068533833997556898544313955208741161859068248426695319609901284099232188680746985748200158412322582346849424157627447383864857961393824601405502626305962579153630790428386158193926074052414848250189857200485808414319407415976591390541059481776033282694947095762895133704838580296012600951664536877237384120155499728009695817517131570439286895202504208446914627685492664770596524635176726998945492119127462299623943160286535425761096977294110317927042190919423569185308710669577793805787509443946428886886279355528064558971939937121011191134627391346935595521341549367807361989943611423718975250962209493586464152177212720696513779611831545532801343371247615182064460101829919691864253601784072002313118985116793859509925934753661425442243093037791419623573273265566177797663508944308655930796113834874024180797548413358707653199010701034033194893098361656669565784530035569580967481390901849342089727652822225745704225641620464669932807281089956518766635578295949758515641284157440473780864092540921514102795983679447897312304135745463240768724526244580454543983372153496004515241956271855985484699262972122765835710844862935854028153574180032906744795315661967596697013742505632982088350023414590786759401981506716572896890041379954272468775496587199864746851622074191853089882901215556551796664780684171267869874125000478517310988359975424872766883362784844683004173643485844140636498242731198115616850895044132680347234778274588706077555339144985953325066623500106327771142169161191269276677977753665377527667840194296039863856028216083841104735591052499165793753864526852978689490322254726282361884506872209285882876008944255629811214872353499666213379138695107917497021349419768261981483671460059485073977048594550986364070313138795302253823872714353189573737011509302163737506123072258613199921429394950630487630220468040702402286649488748784708344370292463933981992335440493170439130141392460606966728053739507159101766559499087773453888963682067592089879244589502594088100004066073175363429275814172184965888567421940479150256111092066381173838034056623863475588914728160514082138270365781759037283742555946709990387561098823968212128555328127471639881331069839917146067329943819114585507575332233286732838468410369247765711648250684103076887346143890185486901753494387205153015285981979456794080557382100783054726870462576570807771264164558493932698252341310476851604459078850811936065664374555321145757065910639837845843265937629199014706457344277722039436498483329784874281274514435026397021670524923245230340359330802585010419627467757928577381648133298378154264966338820505922085031091363648092703896097927603536883789582820727868345775827532563507579580649983915664270705107634782593268547200523150823626934556014127261279385536548986640448710230372439033496296558249529299658727423493952286047317558908116791720152807446478812906827481743444806216157878231069334985706315205701417776422459277779503704438392298028318248152595633627610625563844849656724453492538924572768624960826311568400479966536766454565475690417765739444896513206073528627245021017957781733903764216436950729177269902001004388857649714574315730764598710210480682237933664554086359984826802665905322679570919184023168131794723054607243535853363085369496900166027788750929001801269068619795998322629205754561147447910553310065793718152177027949197792323697760225653765167086185052072264736830029915675517834294348232926745121605536021315778493668712912222483561795075144868978777018850891708426535752767323988219879078193148853401910419719998595185645223966086523267960863716767870459505139204447698533069239563203798253922493976729772010901781008917575693591233816304328128496997017175694813036620705717173878624544043832083435548023233524729675096406425858915292150450321858595570693861189191180722495493550197569102528026376104450822032471597124253916717894915407479466479642270033402236343860354486047781549509844996501799723556326245203163322662246822896009748420318218115071216230901633520406719671081348432597000648949141823996183859129653557142380297825178767674278658423485605196352905138557361477773750313512195763599702136913640631177757927867718855273781710001771293860155064354339923426921690275449632845861765227285668843147987829791946156754194750624671045597173699324074015616867257234223271347067661234442082972195460375932281853497539492396838119558541087253404484289956495789089470069632823586649470142145015305971271696589778177451795501182985178172404340859508825720654167267870324141647779477081678749109643124195613614203948771672656395260298714008434448392077913271981735605754549476122219473837673336417361382194141836071086573099223402052249751436336277434115863637597732655806281634430103208462343073853170337010316856293320696679546687939405770698957030772565249794674996939379004054065020431030226587320524038858931964916923559439030758880027432227988569920291848261613884500089592541814668637882807527533878938173297721687311527715079124586018895811245408372601172018765141226392281122847029291759285840827154696004460334954562104532640023223236884624846503984094455900604787219665683624151531207166846592066925444076414901346480752286531661582301903340659240819367470796422365014665062124717231253381204601963634306770347074400294823428977967513312431780555422975733667689991047063923172317076787190661566873572978409123269972186896071257795558751093740013253552893629578734243542824045822845816678593405938722568804108403944842534836751929878123215838116421764909961033722819653591762456134306552261277066607770137827263629987724764963281624440879450976935850377814274643347777043935925954775589757503313347660333529786955153581497276367214324848539780717355013492722154805763712878284388212938683517608108098401738324259051556037975371399381298174223972630535002725096385634927554528347918020750137368743107571471891462669030638636128838421336568383038245019837053463915192257864781030762403488385699223876662311336745124739800814989419682005168408010548566778001764232543865032561449478738983724382361226930459906732239049129648473768203691906907910565527989828178368221874063889979725866045168825241099348502949252598734766149012035503775133304111590571374000473871932679010603502342634843029493535319175203006706300411682226960465235107969347492526804288476927088442438867247567382148804126603623168031783538296027266289448753814212086115204424088422443219601161572293872185044364185654556366977739083786227097845152322412500433559431052149125831033258054523549529788454030149984951432946562811424410473040728927028910959232973314821339634704888713109416052166722795169870988436542967577647293811517886199644163865834738738874727635098667905664720957855941429008680160593870441287903054164438624821064029761560365576609231055542711365797922386338875247102527307345929358374750259855049046192765867597169092819697287335704827966560538543102566314111695262805211196956924443438610667676669077385051602072131624953612099970077580528553438780927396621962645499961100157429542343477315295919184647070086972175324511268747174901747128663629807270624201675736261086829558039143702325462560388892161110933146393881345497351721889079249129964104245762618368839662599085857265036368689848847267959148347628604594861968444074467854937443534520206993375218815702175595962311846517135103724683039591566173480303313076469720460883779951225945412803746645155589701539302163590221865833472998049339089211957044841938487676866546102319237156523681946870850243843389580553091287514993597305795540795812486052703201665419158142695011978998178165856806746092776461342769291258998871146699681220322776415691276760856270975324114621627390815482135362173550576833071783938782004571626091378343117682096316082829491314860594012428751366216223345096701551307855981417541308607595187313041902181597576575719676446128726350290126670526674159196416423106209253735404868039914195558206761538335137921714254797362216608441093165839132613528328432306398309723003755989678166757827058900543181877647971178923636185738714112970735688041134094382319238260788556513679283591787219795472171516765366696823007914960572335797942245116554926901120463259700550926173904287151324751862267272467369223264867493487366936590703681488694211504426503338139654218140446073324566575090181048572106867827485091531012100685744549696110198309997992004052693918099115827569246679372558802729652177831454968531710845155648625491985105485712568324711029890540818823234391142165987548495665301856687873191247397224912624851569620171625284446863337099154633786044586013307975806795453382275599113473520160538579297304086454829479978964025940870676442094975309019256918722826627311115321910772786964811713251190772871934886480093668949015757811829294701794917484182931621322101256028625674486866424318154321301060123660407464534181522830479221120760665098022930259670869868098354959390074521233773470192121656634735559203240749388902601832175827515199117420133654786670187729696615702157932797215454303178794633824290128505743430220997805454135523624497075087765264183609246633922569250682015769870750997288549755789363034252012029068145669411592724875479264116311848185043211828813950613474510140973743678931471972112884654870319095507082561169760993702166783661326416163957410576328090524293234649760129581124057327638111146035002549523800851189201487679160653751677454764230185625479077438596571206634675268906875061291205348263644554094099820685832308659324796303825679694503102824353230321511353040632666599988914324594023769850057886898158428524664878959425803501392447353635324641070819611093657562018191108939148013221209469304010217211519482456090220410912872188880224804572855684904919435238171247868633413575495594394107356874515414259168496315625142907302420302745337402215401873459776673280214605977135953860406968591371102253522661894725026519467959989928590611896184886602637231487626880471386109654938132531877528607142859058575882658573063534603879113641846068990752354135595375877628404296166025380655709908304564985197996026066446832635258370632299147738350408275316492378603157331375397484695285457386853386063990726181568240961567765536753636777930364231378104180688695825482460755893686063588171011295489045918516204378116664488507726255315047293501935137622186200090312010286900228123520458462350393240223980140628983175433141688849666996122949665180250048492332998860375946314632147069591778509315925896097879649401543427296461692409472843583533150854587297826767935404972374256317810942706586352068546414803350159917376078464683389990414914741773831308662613892496407913263218272758224823372449608419454986324521909719370384810157931548428445837782761893923707563894327119114467421586006218098620701102558250273203678785314001945504385206038598683314222687169807073215094213888647643479386268823968306284868771737819842073443838047267670270579490002706905057632630366772103661890854380714448997558688768387853365219664041227752027522326775019805149848652998485478437729257662446645069898827545928060881154293940701359435792203185191446409210575959517987281335097850442669339897926799272276316639941078146753187940656686760282975966140018300738045327150082738454422308331913579210080309915084894604612219762299221014523810687367521146486259654064253809966014086285531726833603826559001212274973743495800539912204743077108557490738347431505664602672040465648182290219405278781046142952221472637220788702046979931225088542477336262394691802684834177110141974976691760242524089613240159089986049154968574064825279985958973857190222665775465707102565601102353675212920088257667660079907791841886001555681934411816827477783045693666041989301845121825059368021664176802706041978573526139766364581285820020859588836984558561251157202118586013300630563560688626346354844179398046362136946226077803821793688971161923836020665953710334504399387339139757348636043562883134449237273778280020811650901433622409301106987778598573282399576451089819402660374987235291586605057653736042678471617297501120108373260847089421947522412861029838483063736983308956054804159695702479599716866320804111059319026361341659130150597385841897437864311784295278592475884762699922426139667498189671006052854795586410721211010343953758042608860553877868631512829446297653999189887216675650380063963892380942332342345183475714998309441888329958045657966343691013895855668206258435997519857137798533286111150297731924134573337432792585156296122475357917405908210344034594329966163506612943377754605931391738290955880964282399008380627908983078735392185271486233359984827679643777218082495905859910403829365658307658150481289143874112035240740611916017976038675958302075516941009533265678164513061165105065671358139228116851562129330760688763568444441799749703799726070847243786803522223157177863718668231471130409294208618052350856712088810688659679629526263635330272902543576824903179613653557088539592976772076052164707779611162657769372946219719554133469716451113688917678196035939096039999447225490653733858271167766661392730641508631530217571293219921493456996053217328959649105619663385924899529447064831577890402638042811471835140973647216297472205661017409364802136056833107940769910798659064048676206729668224434547861530340775184157306598953440183485739212521281994583826331209332337862236411516953050077416911990912205996466906398901009535997210757047535406160095785068959987657896955192478519087838068033479880728754048879255946093045926060098457050692673536050812120751563179730199964064583098718802942846282797798994044878269739568866119912176241181039465246604449207597121324194699816448913194030248040067341288869096845797249683368717740353523910794391163577528292357295184758398180650209607730890309634570028433707023464619138530549460309911684478026918946403009587795114424888673184854450699498574770554064143354881862167070777740765649917178603837808461287764121321284649927620011501052958160878880867336055134823430772211900206406441217479684455872565345153635274706817163770730050731499766209891332653628822664121438225146600936322779221722195040864172194184886491819178073019618518735916139306481704834317317178307711353164600948553967879475369854380948342138276730444185768939012550678601737528183636198970972693840189444633115042810822869015222934003678463240518847278314372697070892066381088850082120452964672602843627312542739417502080682348282997122669150968488149167302029178246194028769125668968988631871547808773514953007287701711657513237679109851214880678296634779926125005670217522238376448208743612110603973619142984042124505853108526546534742725233036101058645901694890299320582441794439249967423389170670540971157489950028924866863980223261278868302973346766191662161354092800920066328793729201804416965347184064523079928405233488839294758568516265552796500582355519927288733419437616893450093139320873776177783347093977080796047897108803285333440861256810960227898199226205521260804188401791739397505761476635353124723486873452136458565032414838617056539003421509407564507704309515848385482256227299749069676608605950605373562700064777256302210954104764188006123345108017707483553353603159611400599483286152924939680111054149639866720122984687018171233359825306074440237688133946661579889064646260275363177167715747019753791062499398123098767042958117431486564292417508308531727412303002565183249728054488977999863407954376745651088006847703663327504090206579162639938639123441008242655332126492555450395673315903666599968953589395475978587663231086721256274540625266334131463575658489636691747198307582350831053433302970034013034702282959516595916844039387119224363845881388032405262878173408276745433419242017750498303860432533649870398197133032141593427338862236422814722889182153510800001940634692527614406868111151235967119952450601411572326201138872087468041330055966600160886691196064871792883709631827387854786422142868324160969535090211653327084563648999525562235417816528576601569045462028944016668939230045266000495793665115504402718525415059904614894274054002030285372954614966180566730533046136549474044259062784713315217559571829827399386531259965302783261544246999918334515929640590544696163537984559364486194520558426431406893333385412022463040576562495809399497619434505005552178900319921131290917291551445910633354370954093650882292161555306228294516344662423597423393045672494267142911547990080816319976701658218369072806922759419370193693914683683971566343453104810349026430705263303340705637979579304852432649252906731288170209490591086741174019578467554328607989251726230336049933222980086813430749708139030424826202886431423389827385915288439586024049359926671115844994569475285610706638551777380691871401156147620154456577968849043712466035931290173775694856138289887088820016932699479446267104075002105572566273820539715222828663882514342346438863260201068131925316796684173424988704688306489342145625542318773613876937616680545107799026279612793721955898365821201592476687085685704427345562458729697723999789432798951210349480137629373936371004657345406362523160304178717912493381545129324639203531772255015406545450611342335405880674087892770152838509559476512234545710590212632320480316386288101227281820161894914178951707902390308599586891476950915843053875155998057474285341004062268178457732387956306872512614454550939276038569904416012313959386173365603760811156571015717917959155549957555630123353290442598230209676332361865998532047673873001104219310479246812979572258152927825648059612791740674419003050523226723403616839270258766826153763542676014324328057273807284985330889202603371458537964869764999331018973982779516759923328804912631432866761090866067824718702097654156995539167038457420428173956670250047015925973376034044973930067286403281532630739718014827888488385686613411883694730361383667464691468358096669866452509337924331552787973629135251898890351783495185626821079429542621119082970758544546389220040397989354363409365762618394832912508858041150327607768623964290691328059031767271269421119074482182351269480416656150515971094525275718765702158737334151205678982617301697970516930324514951984324576778933744354488357620761691712457179547296193492517565664933692549645845335171704307157331477426949124354311098177482681011590047626813956465535863325368502221629188925285062475926109823010980734387136389610448375603011389828588929731777895409452468682509677168424095932332469170446778168352060963689418506908292562130215077759163488727047689052034331158420811756751130287564251067095608860330272515960348857153445138499690046191782519798602104362142218066076116124772544832590534517760948029428229229841803756410344809131960335622622175587825997096728985983454889309220235207899654855248655311154343748152817458403467533628781970162600474651134088946323648252666803062158765003768234378680828838223255946252792925607708480194045636790019887505753113628649611742557147726520283548759561020125545310176181199501792391058392483037529143421993034418609015461060405704293061904096717677110281617442953094041265929138333046359337605650840452649742140671014922240289168663179018362587717011930048072113216687472751463404879947728001676819976496156196742962679897609383868399241684774643446330864715094317951968656487768455866846551760961717628095188855494923791084599041458441084329680724432759006318836300397461540768665390784643495028573208889439271098766951200740622237279466647970898890187131265769256795960510185585217535149807371609696579859609209863830600611058575083107114103097626167176734057174374488389111877916414493369577468531597759570628939300198733881171267906875114085533007040641255721710668661181102183514878237895851984581011016635769691208141950896207315073543963169049941501705249784780062127498097714118683126767528049026253877775939300755771980719542899447580206877243589955973497787106118443954208950804834724992139919323961858440409919711531646034415851845824791021084937412667444770579708012991104251061538381159841630533538580570502608713230006884678440820422654209074500159704349911186978398640351464599046923487161326581303627806119155452081960090047918871432521375102554663162334489396745881599766162497306779824357540204936710217050025840507682723950251582473598647439865023888279706615118497311241101393590839589896918358846183015026535950998921009232413188336581183803480166708418021340782959637404991184036847612623182107780304890290730634251754970936578531798773750323810965417778027212319850680693783435349485656614971421313859208481943423984381726602833148134404556425820278029606249566459839601797865682883994461545131329468364552619733346803912480832528493600273168941605326202665722222914196151095390231761301711048465339321770821450624378998349123143955840845097093719969816393407699746393366367667110071025787393422441949736125493898019483692108491170104139939351994704445544886900175601443398135177262702598915001239681927780529382039145500086643986550866385597879408341058885216698949879030159716664885111638244923242311817739873269744330246736307002234349818861844386523832732402823342402239319535184197023833068526934959605819212670627225457027444536395783606257119882288737017467323709529449725050011862145749584093633399654621489101503788253464843739026085374631058692986484496994571226810352627231211884976804348148957656109551134087293358791095928104170371769466445100423976723695437926699428068835926872784919902160272784637881065204801762882699666088631741871461470184953983315831929734968056332900687117707894670092701273175970957961979129503451096956940083881232755992743130258649848461625015242318455069861109098328993939815964521324629703812170228549633400714848464712184172510200048035746717946503168510812031128836598690103892264240359855776755079238289135449425927163422640066497287787866599840010717079686455506184107698304119844860949808023813582173647070464478258920835405403737358804357800175600676032541920729548652265627139126593944534643417939569844536025582102999647655781341127334097046287751847188141047691165242852237333384866002714356794165709064118284219387491405762202840687215407582777523294727244965101010657631504340590342440407310487883264233417897939303438232818268014701136888974394159655423154163974756076875401477307926917396675124180906023815802320089949465142347067166335432518970107719680744307048572507975440797778993626016367411149139956727198854117113663328190153309043907108139127670340859831959566350148238970574791476462161548363981110020794800080559408128124503191944535131174903523451588160084585535028016243397689757425976770844452744647660182200128021852699660377828532667992769362745897064070311405034822351985587858643596615129340448835506429808389072768208344896117782403822068234311378353622583114244665252751888141084797985028833498826479534007990529172924653500825414669634183277805349978023314560816649440625679478559013137759058498324644276811565394785289234301699756983546833238018121702882333898809631024244758692551823723915788614558706086845290654540525885685560705567831357288638694419651425684192075986534582857510938436320045166984561384858915449434741120403493997568676867505132665295799668948813931162971074262301092761649275611143847837510090305570753321506809803305756289773948713286914676009466806854663199251677251345991600841201047650400183707264441042424970646194857652559723964545178146125812113444654696530086831062977067120120317990683497287281400444495625571979276769149799426326445761985408421999823221989019507531807932789252671696294149684174786818252820908683426652757986129841021967461502303944109466540431300854663088410804703674187926274538222091384631425373195485000647280343265153209586864882255363222603807200389323089093653965478908788841929681989092861109905409109105290495634052361724142787432942431465452761821015528360251096671197091581315760780757939809837090332997437211463868903615637821106264923204108462658313307514096490873252630152914649358920845348535562961151663210985599215052390252606040554209019675221288953041419221841264700265263680892694068794979323100743329755886171340919998091128880453320524879939813806296220871598657852165307980960630047867345784102305890933908840871464082467989163508441436650411971353621398513932058074156324717951532301267216305866880056092733140923935193111578088987753480293614678512076024772886500194958760135700109725946644998903333905426313412768051137955450000866131563495346532642849991966756581299626003625192656671228417505076928972449916929665102783490073873032585191500014970717165855222474987177928158799962377632519550534990952836789279594535006205550651753422824194949556550357065827307412794096498772850530861067430888332276301378158636077568728477044165053491517645126028982646379644959297426103466811340095633313069163777148361192455504922773214216468753998074429392661356452803145287158422561468030962777211469389801696337483686876815792022423905597966539325409312173393349365795689745820399309236429459211956868650039627186048921069176921747515862372182180621667517339118614190077984126109485089160041872940444757461721918695400064428008048551502136089194389976316554089851145283939327898899932287433109926290723380927298961051475346622821829400872351228350279136135444768846626202880648888937418110104644250993782092212982001647513317942130552143130537195157527832149557569802236812445753542572967348227538301990876738064787559993056934247371977117039283695643377782519430840254745315539523874057066611771460577261676143542874027100467928884882848654398689710410656433906156919437485461860471881414169078913786587222879983881273720418879833357055111228475846567874392607107631473044453743905908645500503850791348213525570017858131993245926800854054949198447807385593671583723669449638538005952026025013367361986617053657156100431783164105494932091380245534045233793323010232642236708688396106022535580464144713215890467782425525306316132121055916229369457845749400252981064989622404074474740409475800722078633420245300875720015764864447999124056165320342859117617721784259013406389367749497321953969983315985915047152634726440238230601054888321740623097148695260797141047505453226843523555119800555406205848817050357738624103083509770618129945697724366586048852092252905757771839450335099390853490100932365219510853679657462622618914282854473617594379444253785120127057602124533459671041127078258891277891518995040065332977311819661271743441597698199150611126241701413638442180131741222479968831389491330477948038050075681886340514603676614758601449629376211421916972221171769272645115386684128437467403132311921660559223979695252962323187627301333650397347581384057295645441383288713808912071694103646948364405878344243071591794727488247868106161327679790286116046076352445364760629129601181162910722759123806221754866133968916894406698319579972840515781856703322897657168610773147912901423124636859013393305874090592020278726154404216135619826723878293905674679386550685439422645341954384076548210878396719731003449060311635317646254433756031100871399386484938547881188662293620860220569143824201318717178250028797107812287520658750132155270465959415059799312931788781177407452859321418037893524287333428956153391843535894822860158205814156733990431015522215285683123727858262507507073900772649545661282218196663595634706702790076521760771860339794090592423044685271840741316401071767173572420634809753913771283481958949677862138976408300279791670269685548075060518679262936208829589954724285869773382268810765302279527930636573165308095799606049648138430823824527790143112740646075609242128973896550959295118107429035356153756473272243445403798291226635255170995254051732368341472228891517763532344451013641626322778481643660949851999551206969457794148487000835704562583174755377032163541718858004101045950477347696292053964965248277124143855517900161706259518069853413543761890953229751422021223304958506759433740739050846854727214815789268885715297326131057665578059952215522468029999090646679234323610476838204092965238065029626560473956672577757769457475132079750256575851461451600362063841549928888513677047796136686328160057467054308951315027558990686748649327273087668062955471383700454027182812789147392409083261653392666790137229144327479291730252049212041440047166081381514084552705701004997235868217320813146390594303167276822370704409186766074478520581811396374281592701937972405980835726931742360673226326142620649239890358525705208549279197668406437050544257384009808958656100972608215823219962898671341311246892057305583801055482408261683580858008233221678115252039852573136891737502448424553701160792098069278846482093762985441147196213629521714650971401658402507607827461040076806797906061598261018567084398515045131555211094377620828542441014399991315720933266654057538748831438309232449059589041836850880113862985540671440436934241077187890615031885455982734649409277822498717643358187289235749132495935522907312668833291488900192146257433439380252767477124415924792162113797439130295005527555773684795548068477350809738601798278620762234127162723738163991891321091045297827242990296741997735495440789082191292968833293362314881222154268495991262636490694872073246829124369494629916693707687739051026555102631612844034086555697125494789911000616937499755598531351781924573165842894693691058899876689363470767330114957285278948544418105207546785614243789395178547910946632061115614627539301839422431658034035795823747387755655907016407071981844655001338635638668613469567197217549769014232378429438402615269757066360479243771567575781347150116655751327916162815350516807570943565897642270370285614046416458885937090309612740037002442371678974344734997008369148251171080576210920467925547701656169153366081483257928950434355182711387632831609297699973656054160049413116765130897390305909208844056799626649223992468419283716379316218708997732782150425117945201880703335889599688030739755055640545982976875695655666270798227394222718567183879473180051226056125304881345668233519156224060375238311879269460929790051211426031298911166743941181060782314762495312664919660613155710925739220475553557246598190368715291768273080700296952848876438580479489828576725696237908752147917309042982564718416425477977611703989719037259682990174114166149912091885720065874041168507097814547797875190125897447078641865725230645256797197691129189090337777473193287440146251946780696144470329806378391622918258010216564250124297715686701524211238362388732420256335899185884919048626083493588070906050337927715971355833743904954612050976803563388429913029709409449307873189029441019587529254499077372825927239770061798310176742582411218296342628866469077055107638878250753070644632959479389443391622394968500053227113967226766785937109939778587168746510718970234583183824328285731567320227202641562860619569975423511658254395640308185816645797640234838123544112566856368976727776326115608837735778571299370850677044469033139465208839803942937654076754067032094369451875577132005244066611973978948832480957351321057248061485276217080091548691149168983126796114716921675062835072933291510639373783510712719728274097501803280846790366328555525993200481861923587087055597741167692296999827327738372939263534942777843902812060250095663933627176459356913281770844319462450620853532919420889797965484689055933348625082685182818871530411500685096377631947053368136114058817353980178852932728566651009541578296884435996757661990887239330377418595055184890709190116287084884248208535734195702742626361228021675126590254918138449273969691816619319940602888117341137944784955282461437323639650787233569003963961122269421550785752128576534772344641310191280304069133649341673318639459547487337951932528569612860412972074033198348125784772312836768541387310608480942619445482000342742414363373237120923557849814247729633971509166605106607210103797359930903611967052320938973160452887774316882477904626411227993869968689488639316559921821470593664112622281624851309120816336936835128217983241919463003455853875218413657609226181633434352396286219231152362032509935434204519201859973091254201871274065651726434739757315495821480751580297590489122600586130585351959629630340529413384564639725288479109411538044108980883947620844743431797347655463284607949914804741783242672386453110434135948319005260700070029497447358747170728177289857288998444382039064141912979753312206240816611729204018872210893527774833290561061020649653944263369662311440975842652465206356251312865531860888364904464991358308924548090637491357534862563369487474816870243471727406737528946089375580076090862901405301000478340377538408180687850881072405456377224104290343911577332348827862774820058154516607835570518777347885708487234381062822284216676114385092703021933722128763052050164235676001122147897436245690180416815264516000106190399874641816621782776716521084409612739282846273822185147974113281769876763312557752915364325297666373307805455877607567280697066638124476262877080364882037318820502150294753138314693916174589873685325872303039469868999267571271800121899151006052498673618805692281893535816642619887790029825727606788044770969400127541900050166231924252280070527141711099653008870672783690454517364574430083339612771525325398850895812793000716936791877801796293676310245458472657885712868935612261786846090034148725178243633849466118196970044443618171498279128332092646399682274589563694579425607549727555956521669761444859935409054730466782149864752625750467630402343117671548970663236712832253768170781852671724574989660096173315037395843711125832232503939849051880331449316156010562656883559055571407615520514090573713182889441727178743996351807190309901776845822999185974078955918267339265374310195174140899712214848377066913597735743721002599473895222930320073398785751621648053588465792980732952978379736713623432078884584424069495882899141890207354892474477251281379374622981027895808161348595544756223555797863332651627346271338084505163026936307580866402951057784410479777685666424181253088177231496157161874864704335805835484844029596860808703754668037901565462679120845031284277904525830115420693030417986313030354369387806198909860554137630947667617481604264730030136531877296801115293531709113568561480238780731761189941839227056857823510112592804688195720140282937314007692723893459333756886493763034988960272781791968241330579836625988621780757630080905539254160191789420020880212832893512100045716924195072964939589762442532258577211293068884414700929243418147027482125688880481137630929340476269361309525571460087004546066901124245041052557977649361370622649187213485887948776330282648331715882652637330336249783735840059973618339078701613725262951685056334209368206509644411293314386224481216940237196839301676830887834999094268021834983347677550714375930923967702253867344521148233646606042161359867375153267229638218465625477304646658900875207128389725683213661116605728809207833584092196555419682771129433925715637525651391470953976115168541597111727915583938749343967082021088994744341118393060427104339360715161994977614437261337821959603748640647076059664247561644912152180838708106372574688620616283421611964032108325657911044976884009894165473579890702103413407006497878420701859825667983821930889321456727108786786925295537216170355620188515321270301811895636833201604820682211380078689459878282803029880031824702302554379260785375793562831167027955405772323412213273593116273689646822830770460996464700377692519601784072581560950188780030767311553196000224186629014544771886717019101896408710418755098104922967028349220133468222854198838593323523337950963231177820282653160958754039246506951565580122711047590592141973382280271557344767421405919021021190683400316295836218899990048898899885993065912505700707347247451243843702085294787910270936260419838637070590654191563970352767718863354560672185345333512392210614518706558202689012180467838464512728148439472898201513249941631655594925517767027864959078514513493721823319215047147124959901707413110645303047139918507777113398599907442105453718239655680394408620580866210638540120280254415315654342864552492699147749109259880209823686333838826154094106911819099158840674380997201087215053612557845446579939101897897136849419426786847921103264554269380183942393289087188261090658060380199464417300293390368675689784829664358546277633370896683689234079092133508254414869785677042644377550095431860269556241975999934792832164047868263127984498097627509105730884952117141845519632626639783309926539673646814084743477785543500570438741855467521504865079355617137998105244313865937481165808842146400682163326914217338372349152283537640458776872673498774448989865190453208347195239066849452249491652552147273478479645994384906425627657036525691382057665828972828396158712072352181048990060936080581595781244538220992438395230138302094804508801881292517103202753981464631913321251885349504839444379626168159177004531766524114344787650863189827637937314107955236022972358860462529085114813939497190917184859979177945225297950600614941713970019496318010474038174140442669748664244889572106628676067925110445106272936676995843430341536366749099156535495608764150393490636361027438379054221264862911691043147059098751406232035433788318073529260280176529912024905990025197656041942045948606420127553198444933908694665220048369035363457554659266457170476057853670474393461711060405244407502370883169661138491073209081583727037188392299673385558865713576531543541269541061087874040619152151486569363890260742561385166946904432869834788490538679149725339100210358473428729639886465895645760753057676672083638731874917691713149802720882277448883550949725982080848868449313720727586692516753173509874258377762098925032388241454961655130307109373680595683380280326791537111456864380617146743175941562416647492734760232173249515789223137249337910437746006555598914784484074732896822338924241602034016907907317157176252846374632252368245247540524678448486638595581063898845667854302879211816119420716888262000394424626490869883270768516424200911806559136405486289050971774379764371449033729566147351092581908560851401275124770435578931459132709317877527995271129721333371584433534036847753543025271810168541604155774894392904775589507994689606294632985354239705027757719254149686506252828623278603255312090596539788889376643435105272178887208155513438302168990799818109277658416141982058547965063506245335036346155401358172275320291747935679816216558459044490129556158361418006409966331878700311299273334700419913109397864288266508101457411850226198513106495258166110041247629192872370602180309784368262849423590877086807892238593514932518028696213219707336341068365006331363304072459169973872849292719148030893133950363374593734869023880532820350278558210626602422555375253520577023790827890121652744185227273615719779949252446078261348859974533265382088062280602338015486280149834464539941439820358715931321543126260904100262471535326963041478752777248824174186470139543960000061187394557991729803730039311705848032811787862471542689973621960893578951218920654571002460205748228338691398169390616812095051292938525370415415630355205167625759286224566649390961268603952172349183573065290850914507642293522378229620782348715361511188968158912442000801041763534870649064929951464023734222017890930881619200874403016966811043692422434158458326988290072331219652147961965154906473600506581196221233978091107447489031606194692845845056139246777901537098126704045354989469116447003876936164866350128315558259921735570050434110653841822407699934622993849512418479211829990007747827792571642472412563511514618232698189407091809668728181372833857961084059524880263834282145731371951678714607724537292405770210322064730801764145263544142400838641875193575217088220825996692890377453366746503008001102114648722168416448664651527599342470921894636982967966461708260304436477887092837344168620080270309510887091109188887562471372936742273911938557598773212089172080157461442478944430199421956107845538437526414176432822566626397562528258917350496268528423418912412257564824937992348226869829485959148909688372292005120032488769673972199012511825758859814534832712478306849031144554168003159242596986764827184077641300612330346015860657337035800588007346353135735036963354585348122593666112875199212523392308762200181173535656873114195599657806634404119912872022717369425636097496911735410596992852703802714646815567754578306141134547807047583066603042615695378714197061748906313885090049611762772834427380125527512887036327954738342778435528234917337942788018261607357446233030509152469255948462924973353639630822047173245985458743604792533755115534277496406935567180056790763852272335077475003047762219672107531568019978930935412530196145312453584448552144746375143843324610470364244311283181548750625937268871703791998043942344619144574260693271702409858213328538472962595569217220629141830826839420710486677880205243165168934789163238829858909624847838190089532795631973216089254366073490844938196733040319657028487601965442788953587363392117031539777133831568177330563119052270660706089084561557069863887772954568783767615954569201749413879659413405824522309032254294028005065259911927790082615772639014068620186922910513203378189138851112830974112072339355625627401782014663017025111418540704244987439712344314013790596161373545518531243599380848288986313051368700736583181950646616649956801411085555032203769677183985022308564986397280132676806742237228600814393848541382172358938961836171918662702187440879636775469293844722993702502392528271551893929593968444251016081789667844674637101330876282746363515177492477808623552083707193948553446009109338413895895091602860292560610512631060170371710470920248579321719954622499332089757346004623931967676704867575006306127451017275892948575745103801360691664783988715454318628532371265754761821828132075448201099818840153556970312694706850980434182403961499294532067338248209366732755698119661558574147846982148232755460506888223964427940858559047948438557562244984512707011496991639357733105768776426472896709502481511324900137047386886613554044612588405920808124594323525011816391468011059943691003839019806275534015620010312316499893603114295017133934736970408685544681996424869898290793178522092293071678300075449808053933935732082000643187486359015015396391387398594543740857925917145987220389321347954841749233328029584133849617769425147590292546491526393646987343494469510140565230496044971826986644459118478313948542155076601664581446077972998016434092520548855760501909383746480328161505592109241026161546406542339514643820249660231459331650448360553877846027789923294454950921190266436401282052776508549840231037240215274809236708566325978961412484438075635019227640374497652850496666699896037797648500415070260585639552583044990338773286080256857413227790838145536066872462287558678259168866816480708846902896984252207996568892426459250971657679876069709458072896179497646731984406934864465031282549342054636671677319397930914935762730759109262158228844254092720464033018261655294573388707558373320944108125903094620662041236528491515298916687380458444422999994051584321541836159651281418839532942789809162063059460558433169935940646504670537891350734317403659677820661586800845787414525373780808105768153999450831820472806011310422040676594196728709568175234981382807285469572212846240376947356664947922245156779680858556513571276137229957495504038171243105677095962901773851257726821852591910392480241279364140488073170486026905999587815235783080243650664539629653488218457685775922781153273899661010561300557958389225570810883776530121594076165024794317415239033067211879273405565142468696881833702674506818811542828548307007355113131519104157472333803403758673817083383792888838463141425063283726768506145136545808539243357175336477506822145730929822400817035360993752075081361776459013616265653324163379307994949193601243530006116029452015153381524912561395721133362947491514314204599003275448022584904270272754605875652213538827137073526065853095959736506400907958297484106273098290369363529250149580064648718535189535565016702771815246744503423450146662829727231339306398817588010724283694383264591630274989795982275343038788352213248773327371639913962634311121059768408971487977893538322731927547171428935143293783323808682296875512225711114463741164337840518901059808582779456373713893030536681768399747675180219261068148053990538463890585417274919790560823722803369472510634024120062106301431055176724836260264478296079261812800954662406983224377455103373452557221752461430903164820516899798639360987182371374111095207748874760778347207969586893270610980818107936619350374434554325759119831361000699874431310700942830763307528790379047250772290951853913763270815078259627995212644914914462200890254169037049051573783060208434187147606024043793327212410706745005751520356098042455988243741403645762613818373139985854329246085394346658124405954898843210422467995881093409188405377915312501260862387230028666015100676270494487136398325863598026873581025369286400330983485565760265965019582414176085311976744410899354225532022190176027276516146329507305053814187618925423663503181799258032953966411024104965787763400624740744494723968496108755123044634374378674922619356670948536023076708555642268292219953317292051198438248249673759028901172249208563165770861609819643962637324219050756849956962394407373929236467924499051089841814014004890180247888062007922006023716926767166402044163793808229218816018841794979452575783216283024416046282493191921463034624470995758094256969434952482774495879993940151196338472116292545903103602140132524883374108403845815645322748881880152838425159049665873528742049333942720699069892085498122119643809040733961384558268827699076850730848545810026756474954190172573800411115443181636446836589933548598748758851289632013722349097118219943263203925603873744036324185818645103733909235763774949608080162022819048312562426185669193157885524808091688100894973329261006582050717423107175658415316124031512356833693509327270795789305172188124776214270290603587429339820876780413844048184626198475222074968696935538619240386435173211753200864327144740660670811703889732314019857375504742475215402371599203635306413444439756752919834606528790686540986974302837446128097451281876003193751980276352257554519793299563409466347860222103144539864050781216548925572414315624889892205132714571692184487881909612308125019942709872011273571007057076785303758850537283523777964148939204502329082474419565619252358877280410753938554687151975713174103493724008244809337576962675020904796531372100570791262540710218490670759554048147662122913540087201784972006450609370584469685033789673518402668184922581372724010876028847650146312832282268291094322856948911134545785882151870979497247010814213804825853464785377453259942497200122227313059882441838063925375883328221400962960706030915500331787186641757695505570027323422633239557329656567510246957147565736358431458277758731372660628880530305596920497578126031002940201718619966090809354990238980001584629536673001857788420107217477859742488087190143862755481838324807013488015571408258085546798567627721239615271349317457994871734186164105441286903106664473638682524363394167140052003324132968354372566141469410845374609565274727588476561322514126260123445754749899377569765048383846738756558904893821279787883994518256030052991103750887269697697116773787604982323787082084036051396838315535106344924407971408412848394122068632182472902323687693631606877777184277396061095143941086771465490782053641452855092134347092628122378775430831122733941332005074514944594264470020950874639392281248779748406362194775139535634825668627135826748433965036847164170259097587454635133227469433766566861039285372592937300221391026467962099219396555713711567323600098038815905861163646009718009575659142052532996401791491008148815951931666455075564897948571103212278134274825700204077712007411302803492663873626880540373056293634441428842165261325311180110543975188672810822378402489212778634394715042377502167291811584695538971904736091510320995246162795016206421289450422596728320933996168374010896050440200123692718153234132530850096468852201098031416760546083844530686743688799694498746511112360131032070661940956007874817242060937555484295218557546858214170038940601275275117240660179758132392282975887068489446810350214187864442020876082353062611417242950140645651119564580678515008117984993787709666107665695885285784246144765187845627202905436025793404844115783147907924573118092132615012548318148294627186658372444408350743372928506099973804637165299557343200482400295448779328286972389678496820130383624447884974806065738173742121213338738472895630454947234034198036658505988454357326295214612045629660532865832677630833218373600421270691294478816707910169693991281620635976478040836496806873326623446492208491139118515840335494290834744354615146618715568078001750163935001378236580063952805251304188860739466506586237061754731927689390884476776555441152318092392080639100487302232251955416352752016612947242841420301302610208506565685840504219229639000682171257242358408246565856166082769859366355762081779957191264924131060505169245642262759283138365013019101604696442034434208584691585468680467536355915725260779054139198849930310781658778516972650549837014519960616425152358413430628024798481887470369522780719177867381416204845846607571492988449585814342215986740057688706261247900754859331135112530873695138164144408068127371978860863120451704971409211647788829729064028286245848629975710794895642440876712237748577598485250373818159894009760800281411887470370296484810398348348664630297392509841154511152056683010776565348838943569067434461469441778662989431795898957248054916455139724788891347209452789352065857689901216569501223477608045604149281506873039584690519437999909645348561110294322480365251780299412714611728214333193284031965131453759148673066231732498190550728088934737515802593900105398321302780353228990546235433797242627845678828478045352818445570081665281873417680714577568655497631263072230748656724935964745781865422684262899291047268839353758516928762436138429085133072550645993531844926879312084239541786007052959403458862226797164345764769236472808818089662689992526226131559904664521847589212461340100978376720067982581474670752396117875084694590104684292628019744923329155160550474724409068526725372618187604342437651462000110844049286232106775725615831354475270227153949166268563965127379858601048665104384701582069621541513833814286909388053832121798419205671777149984943043452165737034953050678780789985117206453644383784051968814452693095010861520127121340642411797681556470775968181865287775288394754594517314870697966613176105346041177990344478198765751670364301297611660666868343547646894378498686218885731441944917463348000353275050527647212247472162360535846074230941534417971237278155940267648375670356360224524678239382417487461849186288905262697173575260288576713600288772660235171626128645095745714570353825189343231672661918204399135856128895494834352197618792143356609920112171400070147362688552888094058963885811244417755222687223326224175382130079156061942723968790588454434662480889116001072269053861338922550105967613070688363445909949184281428200781756879612451279597242102921700683069164988476887878997669298754401474773325801622781623992075497544761035592703028357355326603692931465261570370871526210982095991450026069711340394038081854547491493745261404696163824361372936982057102815108938286055446640045027783669505213305333377956684904705767807377464108380077239056843728737052793268778510663854229037143918081255701836660964876416057474967431603876536500914864951423839253413431194727559463979563881920392423864848488768465187050071051653438079226231972554260686151627523452023473794596131389235406201045928611213095806096760257847440520848432937848873735003150229344739779846227073214141105566754945898351055891221251881851948162179138967321466181776820257007480442046588054120789672317384387455764463072831961646278392515602824223268325180061577253255940880493082854561195783760638160025454153362905923246659850191027672297090453252604037112079892884910955643001463773200365091743294352231483214472222413427477866219861737348401027627415892483230947325073029570790661577290433332688793575591571978115694717083187435364807286168211161678463686324920410881577635803168005117296762939655545188775386280495600412159107052064568177558221863353710579928925181103158749742755470827814636144627033911225956646611682257537014480785738791095730759531453565341029289053715499622800986677340484059609720252501174338196586820871528120966473847600937999692780802201019694017619898139704899202673146783508782033881973742150014594151906905501563769111525201833997658748700754660371798058321452339309462633588770609594984571624860134099321796239551925235216912275692930034610543477161360126891894905172647341250010162766629722672280856362732494618133986851313213280803072005965243696957405105515953952494061091204110370330945987099395061410870288344661633981326782892508517115837473240873062463447368070022014631328533061070641588632371136206209515485236629556540145578032066585236988071881108489738794424650709736976998835278705889263108279174282676498359878994336514427201166454201892364280407720880649646986343128071957706099986497817244794093271099614217488119443899241939184693013187313484878616903283701584205308408425544290917913010764922407089704282920224664000210850896839758658898704820765406809172445999012768593389690919343030508624081746079933255608952494745854465101572302334863567217608817268470087491243563412612416037057270742406393891588516236008574513026321208649139492839521512801129372013770915780447342598094042804604791740074705631318134991399848395263458939802702000311519080739000351770131923710543156474907671750956199189436071853140062004376041391241496691457603286954667839275472207308033413071688552695754086720521339108258832762829599244350106447463021343965199974878164118216538288836842493566159861665351997755044578515785788010585197389580432014993223991301994559102867770898551940970592301704038770466647949064651570153051040008784566061015460111084139359067836683257099176237357192914452778417463975396729277717603036529563584701551442024200010863673111633580972232989713346073930168078461801950631040987151394001993214221401178844223887717351890797491435332025646518557819511999367474534634468346676147036004306319164312141852798588148509130007521708001793186341944252218118757002997565418974065389268977205848570855016975992854940808613234560894370520252194189269244897503159506715955630832193444992068071466737802779344254460678809190189624537244239710182741289249381233692016185873376859683830293875623852024775680501577014189095414034729351405011036369515409226568274060517221475380016215950978019783224258082995798891345476966768562116316819572935960803163982490924212379648557859731468366353174299904005424993975907495962575684464908572412566123909032224502444461420069409921009916065544252371631338287219082769704003783076449873729937550189739523442879579311958207683051327699283023186550473058503284770814789593527027623560907251419268797068431295898867002856346325590872536428395377819314479458872194262172756512773540813564925265868545960245855614889998782296672198225227365941806966832750503121867813711304293981426767275120826063970029142273206593652506926926400517444074427293037305184652567060204224526891609864314068624988930962597562640927826479648840871010451113486129627013318790740663561087186927842454495544903921906452259498971061936814373913762305062320049866592030532760412923878098178425474499136972696677552586861192187148599773331166587180587369399607395110240490290316661804353302770489309638110723597520187350419409494776693812907888127448821479754621732137177644640881020830169637362066769114088754042226060316926145296685600972610400772653699465635480235856919030777022112053305446904670168554542541900895058116194229417149137515162285392627470194642761021114039844797085195683827797384310674668424571686989852207584825649921293386923087367793400588694556641211681889794794367115475468901756539502255514553724743535718939586842433320715609575618770902109145288281473906327031731818771667870604407721739311725661840897510069891181188817807595365526404212676899274257374303163065489442833384598227746030460987887485551612975763444694006163352907200403860728907541374931033719712107717301935014753573599503944091248334210577112346785117820933968808475362064056991184771527999109369079682116790254352350625696906621209092229144639257812070767696487573858634140021645656548136298024887912344460051068597917231674421316711384664378777828564283206702127301196697527312982784914559968760427993466948059859647588420170365183667126747098331875228102627850674420929000141997680843491970479170583877431140662666685002683564345179851403735424704217900073569864069532227016002005224295247261191087017228269652612102962709071621035926226690982952442735493584605343132624548742326508101520693219460069591277064781984148387164510817751098123103772409624534335302052462477102387955269107071316032472720445445449290365104436094029944918581899579178741084896503032368184624060944002560992305736488906223622787217335528373077572385120391192085424161906756265524355042704406205010264806559922396686273300546467522109557667576808996967169126528777560369927268040522543073204419493312845469601568746342414030307172913861921187442107399955288608765530860638370636559205152769909386373332421080561831430894212877160274306881396682383797250096804590429384714689546672750611063591105751328828064483823050727079899870919986648653295813787785483171340519722422631950211216082026824329875532482506307265628656982984462331822056674613085229811913034075427364529910730377964186448616583990903145830079643331942083698577548255710567328545642795029793266167691906607257294451933412880283607424855525503724156959498847548815316344991762903492445703555209662948108280348615566510624633956742852745393514468286445019153898163951682909875071823139602150386036825937557142381888341989719224336586245016522248958299816286178331956437400454200373215477798920365783736860356621358010843900706123988322671058218685940426242569082807634340183289379704259133677906851879704226072515354808517455768195883563076914714211152804507735290625586952332949578008515732196974917534118666065305926019286715154689270919543643774171690050547770543629576791121009514164483321074611031106013354700072720787257233603885144968648038203331503998436053166986806645730137657776829879533735504890304419455348526652876118166824769459778184637999970412587390398580775450354606153674430349765729050891546440180217358278024589665995967166206866550981968932667879645234269454210779397388763875129653100343599638480465204948034214067834371533609995463006866608074115456819526572304232073286809979378880089018061191592750481586428332154715155971056430308370592221656324701497906210465609836673325792640279336689641878844625384952885393744606045610970156925988763833368073098714803704578497275545278756714190380862263853010668830793307665541455272514543741584628574645526705708448030929173430118299919924672153054436581677521977767574507743104107124346376844142095666150226231378000479371372088613449746986067598049677093335168705802604952054967325300799386280678722509716869867636223241818990794465124460417058620654153131717234948091487372598721697799238361297965838032215017385490562953498535466263389106632429781567570220156337519872621278922190066814433416703675101337983629393940885945220273855581911590604188948403342181124940111320832560064958039749882745150580806349479294498590459328131411545963562375098899109241716676169233038727382560119193193283315677377583070027207791790010449503701989771219484473961893386221841349809063967204320210504423252923610704177832535087844442847142872865135472214802176629305228386801697069555148009059194751983267334341348557795453539248378068040821372274296080049983082953249860767121550261027357146377838015388956458320495256652819090024940601166105713562738418335397658589460412108409449982049775796957585390302843589427527736111376589336276510069024951403369814745181542770737065153661941632298809246653254111891149571907736706424056316839063680854771977013435050765560440433258387751007501897447050971404460596366656138950608377188417033980225686660932346914868636142261246442397220672290087961890670463627611138286498105902847034178147645761098672820837953096470812715012588663523682353549602446007691213033451584761212906998991503223978056683293854027155719891314378413041878876244038914943712520994225608262047258569917201378889433625672367410252728880657659209083507476765851914607358312902748564417785088055123694313467150889537562615420004284166629324293844717173879512789720531460596011939099366055455278984651085074178986837622388242504142605020623526785671949209886006250041905823952497676411396568588993564856808980304363794956877429770017912890020414791890060067408722448659585770818019365872118799264546474032262424326433982697258050305895845203982805948963270987717355506916559610268805967541505696547358206591077624546183776472047456399962090292863384655546393862760304369159324906685332529722473995722727369933165977356321616126423017914217002224008372858560870235913075706051057367681495841086723063896736233654301531168860462878523183375546561354694903303327465164942581169391599755704550175426996182797398280719097833976503690336379191328136858723658785404298667110217083983367373725815973693761826768032729523727762989108547496008239991332312608737735993219610850301934437172337015072179511382323049296597895457645416538799795170516351463891191858338798550162155830843731439419837098993276668294137572085542872832921450194200591172685813159800491644121963657616389331967525775549692691063400667517008994029642229100479740253156230341142345748322111493288157520175706987158111371694986468011433689067638123426959288336298335585790031419505534261817545678718474584356784603565686164296861029155522883529125041396031352406835116690303131591942044334197855551794424073705479328573267356608071454451237977040442468081187906715138927129483489539362220540610423916624407492027795212482791855946551746075612524603716555828403777746258408891991641326686647340008928428176770952618193495028190019134512719505276048371720966692948825532963209398139599296931931066888171942720099292894358096880024775918825082808210302389764864137135392042580611394868989129696285232408020336662601269711951664578272459781179670058282892552872422906225309090855185384008492447919309991538262409880894588012513012769982022339853283860763372038691550256626967114836678285608239424896139267337203062531810318381029233599207211528980449458733095169709166873412671037952974936033362912922771540579541230362516439507776259963460403299453768763785069754190672314307482671276436273983162997351582755113353496364677211860620195625083583927975472479736987888775624466185575368701833830646362806814494474973554006822090982930978139921588685187261454144877449495892747849045771701282849090124131692593184078197055233344911893990199025359038666275576517308027296256934574549678963551499089801534443335509800736161712184887743894752772483147235270783547852649709209596417150601430841706714848856289543775027501293648997136956805737901436197600358248979540900385438172662123238197797678320790293051960209944525200680802344084221159824840038068031913263251107221450941484695403225758140458022721201934215775786962812978614516416814271705006447978772788659557099343727043372836923592845421505006706562840670874429842070521020478734328473899142716392668905541331792498537975768680922580396412710155537990399566878176455150594106782419506896953941701975722077881000566182819724880681183058500476870820769414147265153271793931014041178186172010457797272509110760118581068173158354042801229677613692809784740946341995571714128410714430611671933287067546330388724800314019372294038776202652004067430695165430607287853517346139567764949168454536306392228998165123626031189476747563726823558206016954430685185990177544076493575130225086852110884220849063351056745867782532111912321776220846014007787429807111388541457489041346793308224998038996657482796797319013830308171624403915235540171911961155945538656498230331338535428849437133393059492207938953307255589480125012960482004751151478504613346283624991380513756112594610338531696456976150301818224332437607072280669919181107356861551342877420058555978581551915056196164514562245130198163341140068386433682009033249557390664875299357240497596836336196984050895753646995468759844193804615787319600763915273713267667185362940762827673624483826352900162216150131787216110006979023374113397842945099399800713653138576610823429339945312998903128140333051295282063150439471652000781273235350091607831219313979053291656953034922353800152713057062723740138108400815277820837253714704843516029650360971556677416182952468135892178191034352303457518584737154847559646496651881392998610715378765644671048369863963284129257730225283096109504894214227026984036191435953685740910293239293304619065318633399700697017370312214040362138508247802177482064463971610359900278502079534395779235978989559664608580130300725266479852222746731139523325739284478375920914183781279805717197013534635294420542340016932283364501312905302379275792410694821837496998989454570058178677609772381135405405171474952937017738680383304522820293602130596725329644933787663996089467897421408922108532178073988697543447705544247916468002900010060201947904517972683858649672246760771120790551894074008499564741924633823583711492289223199295974458825760414150884934834542165439523689066239466661182890501242131317219281288286225805846250909085739264175597568889376377377355131236410456509207286951349628394570230435239953942476838653242486914439139117654877144075857927351399373482923855561596791815374153686396604301476855192027913259252477084395071121006853879022580928453226096706340280119929347553157124124943272168014695129329217092273821350965475868759002737306186067323236487064977562860579515828776399554066863372980591176487225737478841632175303167718164628439746814374001302939693293565417806663459564023564745032930536033205737612436140831250441389096559761675880711901243184251468317446529097730613631959818746871229926304548040986426030911128983847572968440430678301137912403176817045195651332920039536415212069541740681467182755275585328519438899240306089552973882380790284510556521324800920392731576422486008379191125901106763588116591433844586896584108091121342487506240243280304226655911521817387744555218375593713007905036144935545965406991307071734208530622174198507912239210861490222766571575846688239316478612457082820915322846845776322335691999920745805871452161493230253305315857203486757556205001929820284522365159285324816869394387667220581650351182271090764392320478563783129222491459777231434393371796350135775074221647721439246532378328518481337299031066947039409636351889576858089499459063557771676438239592854782434729922580584549000076037532651262603773661940568891539804809963313221480840276363271288547995261677858403931635095084441993570387403996329372370272551925604821640590665394982718032029282199417932058022697242473531493255909151693698792116024273499664424111999820669338288334973784707111522424329083403799913503713162283739017341506268598040242350276103457011724796589841519868590204351687442681574559411140896702265959077274986573206804122733925323629161643635401637219850719125170501528309535992379530848217131066107957264212152712741548795083567471768400393734862639562426772871726376373881427025992093937612070306995089816796894737673947556649254228145263039639729443323517189528131257154526798947289379693044601471270265216778616078379557692833379647198140761329277334745119699431272427386165359663713152421330025547063436179586815235896757702193124805802597527628762369613644982623250201763626067065145707081339654588576925586492151593617364798096662716311867138234075187103228581345934185743996246403706002721216239638817179100669796170989279787663018041516443877541910171889577884100348612317432363705892041632908596991130719671196637234858945794531631296485525760454941776976045840910638832032374104963789088178536996794474440897333247261353290219726685804366878748823453468207158933196459328368005672654540037435436595255571028180893029320578358021139003241877914359735946287386974842396675634889007288771114771635926557876701536479407292405753737083647176159280660045227106717487146231910863613632556276520251945354255441480254504206687728057339237067439139639838991929594335785195477606265223762404697888951907964789447222983912990242442452806716426421989246098787734144003564807156380449738844219086457243372799409411694916486226932953313064152622128449455119366997844434706507939539686896410771303628322301775757482939700124266189144573409948538101391795087719136219121585541950708900240814840559776073755556878120826470866140018785333578100234494699594935339479963098994734727126722519813751734855727923734309692594779001148654233513197353003521125934678008786786265873302183444581162320364852853367015372220616330813478618254041836187088774954315058000126657558974257210709026220079231079788294254608622714266823039465183383540554920058756589380476063253624028165224424205619056516668478673269282318140380144381324032637730428036222810003418906176639700223149040511644645445920613110479977472370407693819741516320914372475012618437196259932277666110882920745760144311314524546699791653707203028968424665262541218406838719952558079872533874887510702239663964625397709218345437093775363533245167505599940652536007481040774504301744188307892635892680947800155599074484623808842357394622991252622876872801388978069530028634783590986062157147011746416615104530191506519257453953759696368253490842451510979661879598837572601574127920176931008981634547801565966959684779924191878808584135746223431388820852019594346936395841430654425454137705489451572637062043843200496823648808394466208576536617943025774711430772757320464465792828923912629596587927080158669421108586276841957292709430953011782849447115946032957949817776603625792547354672628659039789318970043939951494725909858556507191357373846431572477851826722704875200992572196238849613992976768844469045926597026879165476528436352798289522484833040846290178319411831553222759343192560509690483356461948274619916006384778275592091090590268574496235081292356903908319868932310314714861549868593353554981471237887045914846564963571103754975742721901867615449145850076767317636406292730805388153922939739704553473237013802342497287672121650480477217811293476605011052137777844449945785856007936182918573801831768432601737794205418284050066489580812872377001305298466543864285458357437167427593136668611415295742740393911442000051729480091034234617218934296241454778849938059291597192299336907119390395006475282806008159217200381592179315586931823154304991254648690754562277684121216125894314444639989540410354902291541056959407368293575165000724147231018115265614705485801915893124885589673116177789190447569667818731310217315030144687679980819282351846066189741255600801518527821132512282590007676527328645883162716835608179509295137012171345823910897499145330696223460776213599030981571211428857097452206328972781373283626590693217213867451007698507762968684825910323839142519314988611559619465927777778813101513395314692593846969520448296825420403823970392150343624738696356935249832242538812861408670067335158373369639391828705907089333700443381311066075979587468846486057473690193088008138934564715468350783595663206290119590958718253555491142357121174578652845173636513401175560486746857979892015050186003082874586250924116437963088451651553773094398061959016896489172980033415002787090415912664693813041003855639709389561102324356901632002674787813012001708503327475176238986130688999759470901191723142584157709699158117461034003968354189557368519408200607796635995783513705342097425720546206501322285265341710979257199056637797027783102564410263181585594990217530842110877700610153533115855518223670771672686762857641590270455921259745536704928089571744614900839900909552203495743192330903941929022515267264804985185501973313120280284807176209776969223187032207995427181618764879967893335260560482167454378773787213172330714793161729594680140580659318271348521411260949522792170948038249834400810811384907361866944237508498058132217126921236496709811733547800461991454976910840322759921132200645744541371291619290378816391701840982213824246912822372770034273604476831210886941548925929322382266324338228426401165108554279951729911006753424788002919930557078296379936252793930317008367748850582154507835779920821008373771631635843825345172392005991910333343139894360762567669646211317341438997061816646465035901222460906734904995895209423589188904763756842174325174456631100703518965349440794320282663718504069654425925656264289075031406628620654131976672800553477321557209575879461264901768712487972230393843521533663009355034891797840225986360142873124337944588131692903562582378483678744087252082691124015250565578082585049622238945802928231588271094902293443405068632808119908278721420375691696676255139605034921940555623636569941943457380287274819475563600828092082445558435611444272596884307827642723386767337746533256000002325256534307534916812391436971235428951977574896004215991506468692257328766875523328173171273140566708121488397890457067341549741070614355235967493394887001914092968381154975681230367659022718990896286729387101915004433326462203483268468108968046449151236911450831385867872701243657740916469899064349989314962003960485435512385573782494654904119562569837911550320360568339782769036506261491757638382301239562924219072695982274840659412377318641932395935955989430496135904733969572587695896346190870654149062275196748460188424211516429109928700755746649830256550014599424626506282560221275816710505064661215523301386089401683882872664352024216113280879640150511494312402118425144767020453670654999984385825198261351295988583567762275093983377853295764618857085912799211841744002308878262136427572046909006268397849949887943701609649826210372478834302112439384974147241772672170992297314064836243187132555339796745367335360494086464330107731777263663184926123617141505521434563151344016252602331269128221419411118276689286128902859691716045515812312113223405933920427529294281715007318819486759864081588209430942187298545361480830367203513239649165779909194106622019417212550678096013403719949023914849712173213457607865963374039306830572817020535181959583840516960146892760025446264918260818179592074051461179838296146656038481824359520522160192195931998438971891181856772016585576802487042651913066379589230092195799054481670330695420283978328359539559798128271857549325016786396110039001389021385564475088518895418315472942346173667468307279312719301854452963867254790871017478623126954767056380904025173409477944177907990407951029069089392747727891222078639758048208791891999320986129613838395780474243814319677856592318071260481596816309925112237037862136723027645795176697618045812437743444436756353885458375448986625117546740047997158745897352588308472234914898506856425515422701739865413002093064651875114866061170504592177159543146933967848788759541569277814108015734247804970310597825329822938526507537153956638453280381411656491839148627997517879539789497035410489231004501030135813994360060150957369116174077447541929504052561703499762370623130439314835220594452395973728689316606914625027419120989913078071580497018333912893278969407830632719400229754479164971320573380927480009594989541753028509336868749410452313913238307090687598731537446254454422051380341692750251008524761972371924805919245759761945712349816067605303392226622968037687839866185773738007744809943988728590472016756673403849799351574769132621682791068742350010045811931780961945953327164252359872164414929739161659430587838824537813525427105433265637463282615118302446111030213436857081090735792685235245276947274552160222228250665728396718021619985473894052983805893877879708935343690908406553002370779664281942841625708782757134009944919692010082037902348229204403004863605219801031583545638842931266953481767773078000253798447467460945603388672255513063953216897556676987945263079199523769797549022752305385585562946713873328804282076795223175286240524098323406316288384695294683849300905394898370025503328945682672645274652452687169896394747127475344129606587476777395529990201181373563624161545170804774781172708824491400130588461463543865272177389594047637204962230775574993520688060565867374628464133596725595125750797075179735631145770938400504985040444239355686444175793299823874593996164419024284284381100111024619505621723386758200023532588586217918222207216539718590068672740551498237487782113515186471516274365688089593520532567376765065859493228738503214230194001713697721996822455257827595912865192544675249939919144848819824305244812996690552596839506284133719087396879459482322347364672876891289115524639432694228024135152619834498942288782732161293584390154780947157719838021762880998514657107951339591664897279833215193030484195271115697657972906007966540981974249486862645316745091883072057268663532356185884877519978498094964999984010022760251461621752118918864870781814296919997134222510285275566735331662490152747900680065443576142058219108996379909266722723206991578172102063717709918552586458179150315045814744467635584715916500811315839031314795068065151726119142550011251879085450167153901667376938205818982707448610324011521180614106875983605476137813356926938549977278582696878668958639325996977604001853034806211337293894110946369293407487757177150894668655366902526746577490230204616413466127614059525910393499587596351177655017989277332381516700241135839794753135641397414489569695684058676101886325228299215366557969827264474309805859252880895025293086824788319357505770721499485091728531497731293522248344103885292014092105145179155617698607508727938905011566210733012080330774351833461064467022884884556219802980391749906895261927186322689619464875288189461157731327353391999590410650920488266231777849930453052770324683984269280917381191981595782821814456308635021201602119593910110502882169857599822633672354926649241456122568520362719516572187940096248615811961327928454091281859320556716838299061863881869368445421741461888693846914381790524593224259462202244307109233341601503876658646346438406460297251192139166647647253707206391954181954580049036965220033801483632741273806646038041440380281943164380986624067175404880229367286352729670114224198627015350626386707122996234980232734328411692393143675430199209799942352655321403384647462344480248391818381333642979959505407674512536654625624421043156016383421616806290122552901105636029112575637002476469946131914174649973333636457245113912281722307715835216469951540260526451052277874450642241664769758777710061775274989243948943567408291051904338199007005970383996815666096868175651446640295991627825285763116802987938661508256413619164291611424466034527936230678701678741155053389582255608835655243361823959341670273070860042732723510985019702509676459373890548564241663734347748249335170584524105823127213485593036239459362986933837025887739780073630485008833164880450910537909605100514398878362754101776580543841665299757911122655766694874444359302910828026894918174061895077642581817326888511759462215719364880401443150442162452600163119844211727321284440395642717088349348335352271146874970692895835288642979538951002167283014103469673431503649165799444022883490212239910549932094396065983193749886266030675034552007755121357040559943602610994733551236495036776013611855604080013981143513572708158729932662004490776238042295615949123105144839850393412845417752044888803752088648670216926842960843113964192969444400284991200448852150046373674721950589563077309053133627539152718791700740882789502237541762976078311759037314017955065791769256266995439285979825611826567264786018578409863084761668369457779990326245398053953276374509971353479830812846708043241400270325506470601814051439096498876001474870926964786620159020162336142849566301667734252034119951682060002104627284182240091492337347606149527814584395546314682422405885420345567630732738721038686735562246409233965267275935832248495452793040445472808813041207696962502183879093305999100669002114309005919801619964431738340607635176646161265564290614859357384446340664576163829608141308065878974068820307492662557795784523870003378569032727395823823020289885178172927378333703579659623937848799541474795685484684059866373427439990079718964500801911615734370161189613252337830838096598691424789628403693287652973554899628733050500875317281575188763635413135224433342156941832798598697729613278142081273886715314122742866926611567041954630982960510089492903280692470039812411180700165465274221240327181115626189042223395326558434753750770031929903870596875338465981136322395285760803256277367893641501545833179784309390955597493614694524471628705171772399000776679031384785289559373989495470673153836725107258863822050312350327688876597386491575257818724480488842885632330487573099480214232721704229492596983881547656664629157522463380287515320631600978901349587588388315117410828369476556871360114827720318067901870179145050251228849940103038550713974267141027828934641572981523711566403960441452962286913513580230596605367436784592468256059786547008619906133363594583688416608863989278995121219210091769572040664386504289581729320599487855810874414419397505574179645728365501505506220598539341014732989263861592740011189328465554899764909859475002156664717324475149799477420120190965727160970504568882183264836728874747928468724015046136339255036625854779252805514204131651357431180664422310820606484905931842141240873585922340230585978900954541293255017546775158888272634973518685148892359565855557880415179174509407687018304758416115679347819965777239626817078338443064199142730969951631601083200958170462412525432196208651023608035097044817344475237270728577506438478945902575738461541600778839847305513243120510389045090384672051418586551308852503076713428194234792436206214268843660295442414112648034509760368258024007294876758229047871991401831773764674928303352473257699727188281330922335919726274411791436203828461499302233068412123742718878843464892160320790187251190385696878367009299326690728200101091598683683064231644384737735129431947334199810564723106242006405001317645677436882660809308883565324347740023449265073309230787784745543510701935549919552038584447002776773325879286731197508388729542810125546953793006957507348413700576170331556376106685454951273863461758530601885090663610793781832140994358801671129669631224451888257258919977543222293516724668242914321200673368798031664530679048448823745577562827573702891931163422882492026823726690640855031434482984436869440890906505571034963812147863148998985254214048892913920922726568841508734262765434452659963583090824183421991473504730397074650132401706963890491650901665865787787346789812999109258794080994193159416645150993241161197097428761126250591647975723986717681857568207001420051245245666290822444863945544478534284397117445738325511992963791932130693714750228232836568061466447514042433280903413416811843079332635909817190587146918469420549634074379566085059504455678051389266454108072363542183369347659422547724758291052068174019158834314195751879286508447685625142948281429687140174661340632146893192126053372664621503721994176283851616646036893424069986456497322931372761754823791270181587247104098966216177014577478103216075606208624413658365010955616150879528565162189661371697180538943117528052272426304920782395598703790821735946628657148236725453381377989871245032012573813686749569113929267951910484237752081078194218462935757335861611415551719526841483514783975821960271979221365805171139258775410038947268449864124090112946235121145880549136963645743868377423521243715180766387936306164777729289152155394588988741176306053846051976360722193753253087483469317309074248887878263669461390701990268075012972167687430035635465640503671713674644208834920571716488464051963240260368242314377943138032738441297290101517897027674771864042365922944223116140731047488122463104773592642954674812807303342713648774747197342504807939750063882921422957036696639152991286238215374193953393584682583686036305729622652248327288771257009024212421368758188875120953621819611411579134412326053025134820453286259272153027778941212563698744039542414013652224482039327665192758524915456970504810743244374018915423206619279108277206527019856046737136888151746766394846322229168353146685845892750380987224159389232694022744989084506767211458157012792843634875138995041955336254867742534318320287977263366288698255627642578886048251738061012354190141266607123971559590608948401807780297421699604913325030562597099974497440650419040591175509281682762756893127396277166108448450416237063327030164581413395086580510756150166441109394480333626987380954266342584205173907868890071320430265540829426796736929245896887969138076562103724117084498748819370567679508069117525105190643897580118535846275643401762668457257023352446560642485828977204268269621233388155532001354504103373551349563171207970355251540002867066457738423974134998539845377689010462593565639658340336020990778886279136376851846415215550484527681285587119667218669018291351789077360160434135769146221255243967856930200848497362342356900572839152066170161409597185883216293408585571851026513300434822052131781410322657124840749063303805047744363881868867522343189064070125121952229335571136693621494481281652065834242581976177538425016250820485226188251585654216400702223412263627940060952235500123673818362402283642000351046609486493056177065206336993163409684001642211815216956103228927504045043610000398535646648476244123590754454220808653058467293054608085657183855393105381862581826231571969749689201182926200289179069910085337146191725117140346253090138273310084198086143728211318548664312892361067769444508832483672755608476391285409406621574088641008914678156039339223979619414129874698645404246083633219992759239498779378427938718650445908097184643174794203595238233662578104584119647185082701365097801309445532730113707051882308035343915781962354452557753984634380782220669502485165847071879729515034619184697878421539659459495658479952322999597776258043751907197256216682967070553147264848459641204985403269616789780926340002129716089083506882682292224644680991775990998298200221972898018489397829184445658637513246617281470532959643273434165761798546123013114974369244957712181603917404751585590541327807141249660156933529989847229398758461972038704162134771016537781104439134096408014561947411628714747797811126833588060871099731998337028660213989095718150605243603976410327330133805907760711242235316692942906705649184702227067937918339554695402673341984355444344925727032924501446013098554333675232081109180174748076282702607124987432726673591475519490716130218071593292781720941424603049809531607814259983086552255105916374168658697026424355512936082549676712578628214348847220000238636886770310265865601575839648367002011923803481707133423142226959249008878005346729948978539097813566580821234007927580794109898180426590591161817941655695973471991518182260607963844738510741623554731331484686580919582940983433772099783357836965571909253781128519129014619643711798341308488458037923346908506861708019026999030599003500206297990821275273549104811489979866391226145970007836406044518188925113459001513085249172082258604733115493577435710425358503463428606464312950397493646409236734114547790456886326678801660130006313061452020322430859201316090672717534255957344163215035271060534868814242369223181496466578004051078914421861348455613502216263242846303089272660910360063537121317730153137491835546908805192336123185905880948583961717357802580848565067204252407371493382863750201031686063305477052455155564682537972018958806102748615285096086419307639771848069556364921171835518730834794491743938801496496191088887970595098810327320844874625412031655375578244975323580884517856920961309271389848706560348059181228726807906412671254359650430358133213152841017355995487902082087698037803798023643220631471232845662907873144236144495421179087369895035662764401434276379612761873875265203369096707034558770119483454308756715686703819264388670926914602552285544371101170474138569066330604961649017621646587176328208211841684335265838816125301024038257421095007022262033766387484203522158851773003065278072951271179004229392325413864606166515960190829900041570998190845539399972368809061415869685645970719739237216649094048015663224352935632997974046333305985210940121041174871177136710748266080820335944744480111031505092584055339011477189619130855660277249151775500517111775425874128157758681675480285284648730645550536843303252065302680251858051012338944670806377255764047689231611045000749926767139873824840450776877766549327098835045269374948561210193826906870804033569668992287409097404528195075389108905981733434576459870419895435250032484881589791912341734236548200467910546158099506710734689306574265939891105135998725500104373967471250177855900982827564934476778648477307944497927367734114071913825165319493356887400880671100215311077671724978446183618399953622068025943583447849493624969791038996698760000484686440666656388170370021704707756013637454367834236064752208429447917767361215698885849158517951791641228314324368735167340528158326112923929669357589555357184080827735092263815418415066033352572957048263261445717002372240814172205498636067512961502553812438592882483943482015877139277246885078305696404209967488115782087078198683225194113162431042078557353462418429655741250742981202178773670132685024951746255194784547044280053211163671248401576546186040223692328444993147787474144396011573848914252626328045070553811464306416620813589074638434484810826935554949924035393961335629111509888960800003168818624046879658352980686395329852237792404335963329377686709303179889279900842100025240348119275492012808322691995067221588363149965711341992001234336677324802305978824981957217124897720885451575123103588702355876072591778159743829380220202557155986633052334052207769886081290175075726564949883653981641296723634240334206606528688303350933864518675307886505482437412543804789629665044480976424942441060497943449190297307040959231943758183053179277877568060497646707456747038401275434114913409319897880322636569905143053425039554097734542597004836833115407257206017719135054428003705923206041422611194584919439343437874050428892231284719920968874931781326260844550753606104083233723543542992399858459575825648240131449196142980972102777694631770699419072388844095919328374714501476776087551068926274328562522637128196420802319285250993214654740682867399775697494595696715424112003612303759430615189020149378821171854653836905387834304712462080744679685965277373241431225737916957761172065431438057611484088226985458381681758637923856116179122834650088249302185142397371782278087408010581205983755896285425765049876887591928627123335935974707139504486063785403167391676881936947845087097237447203538356101311435362656883313403821532954163169936619836376636267997964256297384340877608775193793678878281447160431325262971089249522350629563704914120156159410286982763322258656606461851208381935619731284644087995555610788408794263193769430687268597785468347267397915179957523274024092914591356612159910381084705840303578944825305991352311242192092647288932571107994636802176339886208318299949571042642776356068623120789156196352114587219836779440064518145025022863849279202134723190096189929318005684077770233245924093946968808952357910473241143896182860016859827110407433197540810786688049133250353754978181704595721359716539015326454373777395474834269462065142771953717722531821796156644462319115731053792077386857098404799007863165806551952305368364269286166146092620215487313969749005603066486888584735992713924579322642914832584021695094943511283406379458941446958953401038799663218819059101609979118780069812488352783157164844229203016130988569529200753556887378365127884882951190322788416967456846139233399144274481146919432683652342859381547307773390659907921407193073324014525923569418932610840248581154124803800549303313562861125867468095798617016861350141184331322602518372286486117211998567669577833702464929943243541178160734692646164309593689221872480794370606965772693601996138686424952395154013125971243354774878406353930906396133974842779152217462586528699669492905568201024693534063086410601034413478887994233215253026620311877757912234164492630361390502240938209913021014032928617254084430760265098837150593234834747304014186124614587187392143838330755130875659477864870756027342306031586686753417003937909137896235092184903829004673288427836794185580552828158157376889917284014042214921504233876141591839655076790150051228774765731603193115553365379336681637005675704116206273175998272690199554635762801902245847031217424986914408828811767996590860744528600432532348866775967878290905528597870271683177888727604252880204697533029661883830286782028148851174912135233595940394329515540055018522296001238219010293754360970650628345595440338165108806018988598091397047853424401124536462026518178890733564564003830748934639929906822154268459797204870710332467462270367000353860468383861906548859425111482397853725836731128992523105199189008193132681870813107680096225284624019778891177987325510526051103429817378370519547618294196010866275697301144150700216598786131799088463811931407234234896468356765345941216231262903642278362086433194571998972574641016876305331178750715345778659282141471527655825907608690871118071771613045788640322340827903155636185609305533408785235684649643885177306585548200906193109072053371425301264802000108549975457644355874683085251021784594871665602545616852351740098044640507676132978257401567581834075506937487299128504090480273178677265792394581219280428446827911956938687935789656238015255286784154620137552319706155176557343890698605636513527071846049513108738409555004918519549686468893504353793239988018662395505476199611559432644015569967101427977834208311210765486505649315516397798752475163042943684814894534207494853715768616099429130121594511246184222321196756762302680832866857886872303458739700875015241917425678213232956903185643316863132445934969827756190908905229111287492782965392440067354658153616984860684169252260074828492193814338831550204650105583161312805485363690850050993555156057614761022777016537179607300846471209383259527738030048187877651265109770355673281002208753113951384277030597767638096463359068667721415885042757029812329276576146242982335976283430360374280894071689954349318405977504434524115833943654310209225124051737515867739413992673586866416616406723162197380306174590089360920450770093389676239771537851733730687939178864170839809945168392734696109657752943966679890598262574918445607184218991485357903341812533954499070084145033633059879769637147710219902046645175828755726743167617885462516032875231897305088910771315986312906309084491727292483485408405505766641589291415131760401373875330171370276411013228398812216725466484537454146540829612734764800076394389282547721560245195536874399932235141703515452559938585611528867707797823015439474417870548678834719315118510217971409089829129037721933240061575207836581151114400689819185495600805432137031812809549710308755550694987251813748641497722024494997836608699852280843727541623647569148205384757429366022485892783961827290725089726981649161279419541376933118844633057707045215865799531815168334845930033924731896861657035018300082005935664149670654578933312671646361692588349665020806324913564897041184267603827512678722662667420736796512150387786850647350696588495474930508953337033581589194429158422460524077421865404832389454481207832483206711374969520982808671601855593395457471023000324716474204320256481696689860389345127276836366650773890310355317573098087062078346817547180076398157034009641007275606392591276787230682083487876927561202436166425327466760039301442780533620542745129387809955211630393394211940773303456026717313074572092678145519619807388135449478539240625178854195502678782621618379480035942196136873721051898288027409613389645473833823908332953795166434204238865064380488613833853700573930919650029849583393622709549332780838764994577664038399646115228525158767616490829222160733696140671879257689942938537142541781354365372327890355415780896459537291085682311077830613472418734747423064632570098174618189433912331886850696565366965018469161203011991907022143297463631832251785714325752642213225270348077641623729567450157394436261225002978164864584767059593285373313373524463724979659469873029858534698546386738993241214176266710115678582729492893579026101292516852065129686433130516193102551989787368906865437668107031666469500474664570934609067958736512134574695140835741366885704163248685103701246346872022642416072165590008500059404068547821194774688892038940027514377266990224734062269525569857349317136033330549931341809216646890439222550267010131004586010437447774969276828805591574243071574338500392459509401525423529196487320509708300076453775018736243922839883018366083635656536692262071001969720581341542726749689078159248990448399521987191874422249219889316341954245888904117752805919988705804720289657933737186208954148851763087230189290944599683530447647844917026345864298444523452670231014978859654263199236559073748688809636481667387726127134053627977274418663657683245453520464543312542976164872570001863859397970604397668811708128628745285567716746539383869217610293488084816892863918578764734944834773079210773597298427998714546544421522496221149003427514358653481948710565767273210463907536352827499141686317694397709035467234609506750005116077047421523753580871043093262759950402233755772518716874913818157754964035345336299348481161215299655376441669612416821165015856483203300607264024207271185399486031108052238149222717994382156824613459758300021820838999279460325396377594890653907674953248822342613078073092778350824453536217996076358212081715852014432922826525560982875394238445629520584797093820215763835729612391413286113577060076309058935932106580483903864771798469475894890177602616683451647561409327296468321408452440288076159165373016966996512484561600710843358258478179291696403646093336775597879099062587037917289860479990047363435885586765865224735994098555940161919527048722975990614737263706088770886133735070569122449200184696237705625302267078837039890277089495835655234576502506807390429821771542471126407320037465612091102314800770270139273453047238188332444095516675411911408977356969452397945720271460211261930673409104537053160047943354037111128947309572503070428112785959981012985075188401434670522410925339532292252439547928137586473836980856711648932989819625741437814914747775559597696191092578160158405619246079315267536886742943224745417062358586402094113355395732653915714958603307376051703116570596663229222721907006639639425752077063164756426311854271192913771037801495655037814859238101388717703078870618211018622990829494357291840945434334831849110700179619343318984649005575616080833391510223486104965551375830424615168486633662496777587254563830282237674304769649104441660602096245511211897770921666231064329982477820695052624837346311020010845456495567841497786820222392975983257405316309975141032210300206610000255655405080620496010827635597297034226098866660444672560459485229372441987507709379166326645292036487441102083136050259830284000740241454900516691960830326242695273682228202594387028696440446750672068438977646753931382962759422313502383992453247907375180496476333292197460071372244231473170723926658628659727292422158207893773865678723781864929664206062922053596258981633906664717045964624264620884648039581804303413007332975480132967227760985637990785039549443616060165010546253872474687124956104191474892242936546439884098924253980111113788649676047988927610728300339800321015334606466733241208412232869465400185044411841336933588128122540724468559267806268681489972988333630543028415519091413569691002997836861770828504123096833804995687752207681328583544838242824728390409826447704380435433933988070126543608577443198189027867947310665540130084288133374554902716019763773223894533576108049681547495951043317988833706475283372477720145103316900365405793608772904618704341692774262742102255716720813711416108882808784123908659110239632477857709017880665809012196205629935239729585006611627035414728734984693522824452029472246020628197324216706010140433881861768928346520630086605395227054215581905638818473543975163842717176918530117407405119308694565587024605769114127228627634683252789674116093701712328907017508041890147978667588101507553767915846306866908210883619711318215288460284036772782702607202694292104529238123790739060935474029946614353272242160404140000158159115815797639301414527489028213075707837921568566684862711750870980310679763899201252992246622750925110260470769590275791450811527284508726743519062325132016071535911369223416140824041916084267252469143460564625816962846073122288441340898810067599624311815119476992562863638523826365322700603309865687098015739309023978612379734176715562282332734195906758712660326012974015953954358657104429878327281939459350862075712293812056352549233001628701006238560246151324821157553289986583512790928791589786259392350101257643762483440383484418769803497987033562879729944322316248773093299531655558063867990397932554809738408028464914742291147787852343337259503473823833864183747226019605578017018786348024673304224447513884493598527561049776657402547512321171778646725412474806704867384026509777633731840098729872188954724411449286642922708516787469783730118339565376630825481120708833617324343026796124370370933984178968863519203842541168956872050343638868288641376357291749919562333855736260459765150865860755303651761693072836198203799888231839586315228344534667831972437634632406189217616197419501947830926654153453061802022680450956319577047361210319411192007008656598119292240231836002740749418667578700476926206721166703194361102469510282180662237242254214327896681620585989640615231998733143541124892599480682512768671890609073428267576522987683348779007803288169306952950064048548821793310026977079148450638655031254711636896324260180017014928310750368469822377171187759087508008562652988794656377051504866666264470138600363933802736897661365803093918824189548487342952936476649855687825889404972242252625439952241660112030032662947432120561859967247366779607691800963374531630672726918203335106583304647948211860436087145753929390092484315664538179505100022035904178475085414472834384065891722326828291719906454207127163221538764483058759837580576588471332164444237066791076963792743645441026141782603491481964044556693893262536289712124212048823863812391030581724931118154340001999441182331920841649249765492962903339721748560322354024314452136795135603232265396127669667581050675014577043899130763089893808298924125487316258665045675612684587686375290759017918592827156959490169609666382856834117470984746324574901759066112110942697848053670744868372892554398329959270640134979058393490431918415196040477072512603574565447131216788000908957632975790897717607520928976308187773954998632340178487466184916744046453325136113041521219300231040047405125287214842190800650040913433613758727379312052546491610823888439624993300550270491723732064228253726988368047045210972936905484715196399431365672303017485595894290622505625506145041336402389375094817886068283881583653695066068985698748319243359928112036900686036665658920304068737674336157420480333668583851871740191800959428328700487805168842182379721289908200157477698616529030141266448087750353049466904848454776766332935501706001511400644502604450771805805336703764941223650422368980093245971528486330575445136137625993869574144011732046248576631687162584107878473559720799082167509484082636551258267165475135644919652839453630075411523480354820791367486365719351568381304592929272771604867350027358276855152675573273199596879678368337393060590333094100581506635221969988275800368646931335252154307171741220174070160901047307951893910365617155214319653438040612062735521103644498853634340592100701527789690037095994377605966690335274011277132071380833257058336062439203104422410071193383442994354788635298524800724555234101028592626212671133987145469823732080439218706734014306443890548529532218668795021025460423486477794804609920091802379988498436195610962510184004799904964817628890754457357979527723648685208062301519804255161969823412026521712500898584013370585718683604807161114040306789946184970352709787940991805058616996622733521243337746924181550447425105600059626199736300246006774948665318787260260790360138275606170016578630505058489396530647611844056810352003710426901445705235978749900351160576569472442919417802051977200058405420406124179008593345089567623751025443724769478383254456795384299956374841608638139427651417476733332192233629710608162858025597704003828694681415620083039341294453920654608124428841220423551627269326048197265090037902747172560701451546565858927665186683204269065342023143519070849800331945211216654592928684315357984437494746409225437214929297878227237429604231577759141802286783516007536323129482941731451373562081705821149826731129593668137433267080664728097989891061967357923507177606717525316078062226471442000788930652521562956490439562806276756644352701377867880936854940449580548772270772218904115096861708801541045695133265394721090339760553138283916177949449817541646702244011091841574792273412185171063463694936641302727182234805949910463943744924887676954926084458894475641225160457729512805634483023758356884195275621594739784968129232361938499410273682751502087298390639406309922968453159096136225919129756110866634317006268458146854315194375816112892496960829402217674156335549184105347034680955121940581172089951053687526789415946454297536268831777283791719219396130790907794045548127402379552496148230740122764018856477093522756889579442073859601860194702416409496442579777035269417067618203342126489493280470194052430401195957518815730078007219728179696131485572769261192976527576102954452812203930285350978622416355610781747440907866101256168523036695246175933271505816828136146228023412865418203957210298503735570222851456943856537333754079887412984223253451714700948957176001383967909869289277509682648026974573806564714684315432445353094673323569565048799029136774351559857038085807479761722358345048079435707374046573887988808064259509519216006660354659541490102478381845871824754840836111481424283970026902398725683309643759947878714507861176328052203044760028804591445888173070235843031825650389532868271500166444799580739439636441207348835880768823313249857092138647590778829615603239351224394239330600192707699947229721410841884760917769470265089956890256546225268674858038528643103425526779164643426454485150689959264250652450873252540760383967548216952000519563717097096283662628592315900673679576200913846082594374660131604670603002272782100225885577217111746856826860839608991955844534443917440677802253921355512465713652358383680506213049787954070911967188483444352101757996394865994059657039203418006058678126151007764108496484968887682616907800344301607874168242594857094102830740762584054396516905851262916931055064103494637653189995389758219108527826274319525197126378349418645612479239381877937908644955714965405899600814271790491304277871634229169074403076663247148172230777825056275034872116809372485273777089146765067009780599488427687223547259644030402352342287592702131477094270659179398586705305014665960851355629079358998814548236089665283174393605313622106197549184588513146841450460275760966758205358017382709233457572946717443606180022737489007669463095562507000787889180851282206589718453937276208545864955586077352267493988886299529070761413888342785118063205229267789540579991310717622955122332714682701309025503608032230327502642551367115552717038289987043992046788919115865267609504134937079137048809788083070409202415911220410702837314769447319455663376644797194208258265261934272839460019162269388693692821267367197987790061367856233169104801790135724765655900522103527194251390437021814699243680078787314541365956428516064787502421029405289907172690317271087496655780005057259388569348054125844113973876690854295291039264108580147462845531526278608817216181424135910898596780068067104262126630112304253554747068813212783802498682564391161151474657038082984805421472196305927997644998446965928483946684109916839559286416330020144178256025142582357301213719166095602705601599599822720777561524382753676328480262346455598837462111846040305862316330712023032641916923194396080896311871373489868547860011960331312530252108966336234566497854109528855122550644342410567896160495162855679449643737227080201756649430636576561638972848052388778727718205322655530948044113884594633788760593566655028414218543505028419989690893702864825297164476225654118375550241294444063424425964120132218418524320493139533942825787957115962431481227552860359794420879572745367856872523783634239639872495207931073399667290864635520960163582684146134800431718471866698102525378080484970111809656073964595268149098139468848506552716734526334689718182987396538009150985144078849393866664949138413585903343574858096641914190186059898449902140735933265332796840020204550793038408032717068959859847516778847117936364987195025326169146261039929965308890605461177136758434564302028560066793667972262767844066329611179504906156382179466166698496633839610427958284386890329792694085319456543497625470205505234993118259942603261131355543857122882130172109627803241810951309139135993630267395538503808345299195186046551944522035823835841682122614982657384996773726406748487754617645571012250059903888023359143635470227065485485370100568674574362049697738925602038030955798648296602910302064055367338574228702888514472520099051426329967840555585561117628296449758532801526716711955473819275891478204530474571710240189556178614613375244938374053232065595458458265993269224097499972611414851738085951632118416478733272885005468573159445903693118856433427659062618183212442876291952671545609254123669510416540722384058333231152851888932895449009399582108945362008624453021420499877578113287949014161555494987002214143390645752021666660733726012024581180673520024452246150465275670796298731518113669087124075203817767295178794803529849356986240017030835841312572112964712894666621161850430699391445379232392344930297690811855220360421197151110339634666696856741728783122177928899671412874893610545041068132937794099658996584943110106332425556342827723328179366765252102734507221583038029700601024072199362435875534085936973040050315379567227490503103123499437639572859421780716357872213365050922034443748509567240025024305393352466452017573960846065827674339854404384507095240373296347004432353452827571200277719669632092298501610437184630700375288696216604218823733512440124503811770823722832468378566932452125290216160510759578038368840603119516347729622243748481416008230483565113571556636020595817902864025668755598178901253625744767796370914788332343885894227199558770981647422449837613394350801929702700919738780510717993162079800554454654852564674161232215863081819064205725432467100272917952363477499662372752952909067701650317576873098051684375402612049799008954305227625627758569505326550091934559822413378535352910875860523007715733387118559486536075093391133606031743526986843480870139369069597637829088642435938427682919049058550519734002214245338762776421354657207660932380695653749229317762715108368452799933398051721131479081016284255552865550226635472861838021120382310181383437497346892501925748251437556546169540838588117296274909278673199309510641190190814672596958842406629532930716934415069755293605606537448608123179848526261942117247474451537200210456469132038423090890373291191881561880789647129358425461491238035495423672170543772051953331778689093315080905089177562538693694476723048779604829429586268655419051599145064720202057093121713120196671286239952945548206772988466192681395964492427726402364853905895688031297686787612970631050941830814688061312222157576282802715545370774922088310305865742563764460157351266822593258222356938198596167378218449015872275013619539911509324433183192226156389224704596418828227011785352337010108666263065796901568718020611180444753197067960191115087283033062106125842288181903867257812139083207391950563447655724071166924086916412459583824977133884879552982935115781177755760619627327036770856661353002418322675342090507082251261824270825178133257650874951756156191616648479741897851731339221457292588582055448681722058532767948415322940673615282450477379397392163238470016289603285919320795378704744072417999895685933370943451170352775541713472991126981915077486678066198723613882893415070232430073854990487186428356944279499825741961021055663045369776312189112211140112643093394603843535193064455534848118246309481903101422261692688875114048875287052078915478669416538054043489336596647430044025500786616824209936210555559122412190827784025258382973783734691764991140871840942650150416048533849480407360714882862703668333635293845661276412866802107515960584566617572204802416240359421334933936357600833579496934467031802488113303182803010438392423830704558066844484573440001618182945861554164462995134206719420919056917091998028109394966457394504704882540548585902941586544499714338771244020571303726489777676750651329812596142648192303689142578587442681305204257143746150348354037088137427655644231187091006342307580593978777763781599836589692730109976755108197733080050326856733668967293427611941476526487105893766968678057435856238490173536101945160839438471962360665302799147911988648919466439311700088132967142228747985203347778054766553316137015443639588337394746517531713654418082974250909531203194620302375691188172659371351811026541446418565377829464125633781375677047336149623244861981899094693993377347001546774765999240249070084099547376476883949460554395588500644136198530463283342882155170829945885025666051190174540005477119780310832864972525987313955578075324217869844158060314873907663999252755675462384025991289396330350770776226762959507177805788168796864393911662510571120834028146178486924854945446321053330343952219113477131407753246968742245026527224408299111969266097306916299863486102053296472936441084930153624690517804883121799410383432268550166657310613570624969443259749876346538015222935023560679857214353037639090752038012488707384207681416267131717594261425266547473336255371387455940729873693474553254438119573659823539841252090964586778491958629842535723321614732496350416836897627462308486837099726813284551207315853327424754272008617402722202145229115675058005766384900229962818886406043297101652568210434287574930225966977542070153207571453286019662352045627772767746275897715251278563176794645431887915985299984242265449945617625604397855797592213552065496054093425026448965980865188614267075889205630796665252852702382471597922589855264006257103967805357044246694152545595307666228538159754211558487391288541832808093358943664729105620615793412401425254551613805019409237207325165047649080096234917391694989917255165346732978817915617580838625252290267657402250235974477149052701844859244490461257954629756521976274346548125657951917618294222365804788490303431346456017470880499488882971586677623291233648590957932930243554134250221982329631448854675799936803567758841023462380220611624779717815144897285382155788316268040032703928349972941625546910809933002042406366677884418580710241554134084839561544473568509175734556470426267712758041905069654034315178349064595965236046503185049333594992522995283568514320333914427477874651529210805727805497401469424946104461999836576481910337129092071402803643440466975159209397406268366115640121468092569296284398547103330935515912519293278883829069911197553725455932732031592337486068400175755755175364492586850572638089813509313809278282844397522786350526855306240936668033513413481185693241290605832690305142555191330264820611705415303338920830811901721789153234645986257382021077891018414500707778681240181505383199510195565324440240855337523893837663159097001901856915370048905567304441308337706607964960563760913610863301928179023297330255318337611368666300123694260675930158819988503580100535279311038951641074256900660447792013954499599474531373499561370167931568088776319595573233334779355366279487001538617114928818835870475800280729591694270121027418400937144495788053706054316694333225419950410004437547157319294410633477092031900112753342421414084656185699257076070678327719926977276189083884098344437697988261961538125700186280169450020012933317298080115324338337604275077007827909143471999803942416993874108883548227575338022592034540203548623042107077868186024936436677826508477205577396238464214823813479730500508904960140643641259620891039448987295579352647721833790529228923917348317046143172951361430042575126900922917946744038012185308580633250819854794418728254216034281117438054344010864764708775940421486795124598140888031834136819953725958442805763814524565446923252902079444532407718276881158581188244842097398490338198097518197502244661533662819583450806067708603690924957277156077151135596042401444407671293826481465830750597733741302852543615324791042507228924116107928363947599149964628480426186410441845016241943360613562058507129484888440042327410829769751757173718233091921527837685252291903790108280208111063631374906752751354316271217851868803524114296438996319204967705465256554348145115335807319795465571168688495767941519427840587856495095809252633360249455649657719317769828825599368469483630098314960573367284875180632117572973224029320134535626122061954395972570889057114393367601217398700856438662885639039299523948294716400665146695565229285019589067185688272592912739523643173506576493928062859399299254146205787264897548200528112448575211880820974481094238805590522957536370589599829332741170964657050106638340526930213240262574959080899704218147959078191421302612096913442836653546378011813859497072756323465143039287299303347247741709931102548052324860793577995386442042924510855841878605017362463883324192972744112781363360967948612827651510726325926640892098731711572944451667541314371291161150553410895958829207425789568635529439413404148608801082793809313420672171867339197027515861129634936057238859324591136831553281326108638143424852543514069334518319032949210997742083583440635216681300529066264693317785913989760496632093401348209056460564797861194381977631408544798415268248892122799516283388845807801210849487888603477374059742349324096757476615179996075021165783070908408709962862571773904472019172210339095668494087370664033225848069883798002826580288184775816481491893574715911826451448678332695569771962097731868736020856679970499992153391465553080426375925402051778643555868892567765573020167890596706710553451278207680293168331172512687846692322651716791010901683754556643445907720222533374311501131575022501322503754432837559799773451524209765674235071886199036289005917680901898837508215301930270961733060527283853603165606544891880012099218253531738402441178935925637678525785816060926833680102285922086461411621804987655603869458192705374146902232012486111136288287771818006223548217061884541149356897635909986688729920848322616648778108019899204839038133137398912677531969717776750005574480070557191192442727510302090740681093651548856037985701092631929147664438649106955118634585905207124922155784639432122696287168103484797984607899296923934415501334457942251619035074317135337746838353456734657976487582592120935997604871518466426388803857066405816506705593247190657875349058134697487204494263153200837833047358427032851538659197946129177387816903760432512346350877077087151072027075103944395250730027507915194205729259149371823990128666720384523874806588186573405721531618819226040737035999072693843518363511721885585816168584872453198510836136214575337201076523624052194550515696282819621549029990152983208436482604275592287839218486238663970414432629598265150982273849972946853273936774749022041311510004928393268795195815015802226662627838830993229090342018756805492365305902541238895233339953212886477209998282175064471462049075820253644256538990806783764507111285275798096864890132116818452137958595201152699929373714238803542290577616730911300210850454546285772489573497730266964721798268308667700729885782130348007404094980390265963640984019039927383970303673647417554003768844792048509841984519497668860638244886936729810538993406317516907593176373891187106875451288217404360248380478854069307010264072702748614808919405801578984592894007556427033073576033852644814673324022143518856037100688822013361988648495692990137835871956520182436801204081131608296340088104939893460389404899479978788807378915518605918834604114675592277297705094184113437399858239596281317651104571721731750412786004843469726828270499457790846185358972919289605038697942344977642031456423093092099524365179346711437231568248627181962393882783174285359587528243904135169748855662604123616539222078541405017758566816306632317976107371687150245892968232674858399958807384458605517580127277917900609291045821091142791780572920335494590377621260357673884518932253547391110955456107912038859909945462781117944784962521376347540077702822126345405736405421453002344511748895384349624069947885431520194356036024990574653347731722853248506962122482631082577376533310993501661001097427943631720450686971713323914673600269033941002139553132648577583400358958121191930530049217357103870396837646444164333550458022627117782306627383330747032450808495275638582401397711360391684380025884744059077649525404970655073167223370713561893887649105928037284380066799403374273793961547753575009076955169252055962298279503077288207386567174325819826524329585821141955435474888951644587438549901945529350836354947859137098128862491657279981504897093947884555915911711803279545018147990285924516596564886287634108575654754598244881656709405244376538058453543216867509983697725224668341116888742263856428762909659538662952869966815900431885793252499904483666300132075334856344385125548038236370942170008562160047692773521974824035499340724597597377629404546876119606058809222292461260525380140207229191757462771423811332926574808708530424285790618075304174040952612898914078209531399698517605196854877446271382636978471639073640409147959923177967729770050257715163771756027237188065018448872193410188375144727482306488966586448320665929087775731248563665825180846441496507257329244548438437096716512977863739667194315158878286915056432225675331124803455902039453559599462117140956441092075082357301551669772023761331711763280501454056312615715837160658344329689982100411701291099262301589227825896668323122659575687001466334611911629817451475715882141571961412889310723961604337241803741157677670146216329390204381312971234078859237422889754912954711520436912973405716133518296803259925327787404070519258850028013091345275936962427861518613462829834944959957844265272633350746927255622675031558624347404708932108494439356201720648668578065082782648723996483801343611817937124406256863356365126978078239520952572520748079191388234158774520798841083450091933511923346653975724645721722915955933877455918807794188497673162728112693296153222493595903869136203678790852202524989516093803467109083035079204032692038407585677541459160208954557133712434549489147359802611439701974758768712225869882837559610886260878012687579143633573666339477001106846540175987732828870620467479835940134601536025058356874372160985317223548185869473099667451165790211562837219841390505340924976105131555479876024758650484866290177968668152042920706757610208780039425883295236432060967052510175449849397201047115671095851779695303949328468718683965552400615015850769560198466881013076491549248327901202416009493523381648687526634621393443958178642732674905480031472178913656095023484652867810295022446049867221579504911519212643562968383114590080105641047942943718649698946750720394241650906495532051607487968994670719579584269189848521289127598418626983408721023422217850638342293387148399916005501068438854934121945354787186510326674829492401649129037434841066009355696406046137900326398332617929274541263142355345980315650684934772027408371391584871076353274779546034599252954130032062187044869657831530240801139721808583737668843552259438915826786435681142651171290050758077190462086415808075656389879116864346954063484139295939786371199215832452248965658045177692764381900962151348439676046092046242669297250067246929026164105024629266927778140313621539260633072103575650799556833705465745906683625800355988781677561755117074296789775798845537741066168740757583985838838462871412912502517816364929385003308401397432795658687056555875751605156129911003712673382980705972635282049627867800290503533764887759371007121769935620488431005178326013334606933766710186132781987914433860208634284092584609190413878979297052412654407784883290519677860289970039037349536254601739755027924385074805544413223413969534976394424983667484715838550622840311255785392137805400011033851998028232207315154991024588846787456594263950240250608051283749010457734530529019909232050166237786483290051137931742378434547157289745303149008775980797146427315894969023151495880811589523861582576906286373100826710333056799346923891478261673937268904697038368497166836624479971563984063767931852148839155603905576981813131868677920403430178454828131453739340772101228444522797034307292818438038828369031196102962644353500417312023817725303493253834161039804427305442138813787102045644528537887502998629840814457453663415074322056402249703271512375737473959473324717184630721717646504881905048237240142616047057238925880438838631203329844756469596183361650439357968534378398846621930384713366573943035123291786047369252127849369002517160890209362314026035505241175109747409591239687568768624799883833183382761846960747249253871828501974133987101582106371290157479086885003803970828393727263775724496027226997701351084102463598672168420620706526643787898179171844193479353345928759540519523710825130627177683656173947471090031110846017371788801863619165365610700975383299317340768348295299664072980188452570513279479412291664991476036396051512864939018254734223129569253432579347004451991292359776301114847490271021394112582696338810098518500571931640209536545775762180669155225851396042700759862481175295510891787697577893509061745897717247911704863306943919850230358478941264418732852671477118390151499212545369676943100344209026797114285607537951988684089197472535360616450762909916048555422195091541597648690734930993666938980760214151129610214163119784638946819844843675251609535491457904155825117377118685540476135821303766204718692024001466548630037427439935141561334391997510415274514113844355075266540218453188145613340200495205263038094114836044103307656904275599182477843539801870445586411247360268547389269954363044874429871476463933461996024820980294046293707858055762154346516703468070067731879251548312116558597038991342609673870230253923718818832121466541392521922531395648997560290407239473712437776736627181181276188819376739706823789646427728917259917030312072307360693481043749666594470557218530572353632650254610544042147374334423449785358745865850884228139251190507860720736248272772054244343990784987010494081089220679697108563896613732749635635521228095777444506163717900747936841098480524901908088198376070295635813852112373374347729250109846436031075500911358851054723509608657718038701706127143476857333270901001767295268528246032117898180097776286885103797787842219321875128084832460281719122916087801949054742439038785055643753244041292514948320093312126961838506396297935590868708634902513172861476220154589753207850859027691272885515773893685622849471106974689168793691498140299679058060758300449396611153061358683491536532384234990048463671612647246156874835987575408416308150192123928552545076652864358519695558126559464627989842247645650101574504088562022103984639476267675567231350414979293307080281288664248760071205415751640852547848082706264352759231362933986954127648137182736860885626249357083752728778462040518202956265500687709031371786968597098726288596989211526387092239986324303509912350102365233053130951657994835569525291856281658314255059675928501936442271288861286190342921875195303485170051774281296341567187534474820897608521595104614886384511668593124228867523003664448085796916521718689186701348282936614202915601428882845945471906360590037476473283497657444357025849308601879692811234552075410939988064583359967730733664877140137506641941167572429167911691292099608107288043059192294534598948515892761860100575337637729378864018438629565682759701803847469999949457290744931101761675966321362104764344624064321847484709253594222684946659798791308331682536634238472397808642970178316827823320756258642826106196589407672593942312420114288049035444559662528364721215817326720953079599984620448221069885336522224538185892645195876717414223408297631482328891663201522820417345525813838004257679279300708129704772897836329859670915167955960389876484463345122916716807602866378652052712900392858039191874001189383940960503930277492892478830909192263895623703816269430318133929890871727040830116371430614181466037944634954474366916967900043864220122686742057344354591184763918088883013596589577168287892836586014900306527466737227629012406920121868164462060019515829680714773386636056588367173121556198622349195805982138041770834885253054463835623358682163221753097089424355553322432274418209554896355625991919743820943168992719889552789290205242451317982384928861134901830192613521180115021061816129707795638297229352021906482863898263282549104301974585299667840655597078321905983360782259661347642864492833012652648305899436080765879257870654752282755068607400747661783113643801043535356159783036454909510331856495922374749524556931207290393056309894590724861225190192559182802529496941558858072737662842393018455678748350720799931575669364199306457233928026818488470855245850746591611653301650796726271932495624878266851537895173684932268717506942244748684562023100336705725537556944934055621215255897108499952861059374234959938034282484185407483558961492056904858154184073818993593616095293419150477039252310160747652130867125755746844086682289815981489094295484947844857169822620199611936155895780466787803368600445558306321942745634776657649420595697800817143460545898234486651930825544160332836212226887654225277898197276947747379235828760657700234084719812536832067365380311787959748382338946945219201589577741060833548951967884671258078370309853763045056740623382085368836036547224942067919388083511484930695832740537125033883793872018185300141142465564456145185605099025766688686327729696860394197762178158240557525231005977682697377923299094123991208023034751254543875011041496211980376489921809663417394546069964701772548502543496208433569852181991014643613570390006371556250328515805673835920960465976926404202729853270467422003465337302936126670737729757952985351356272633187114102442819689122479078619837984150123293341930268732192836904360011845645896266349788683097930285661453666787447955864551250468914954582908878206417652276424992320216758114107604314018264634818033510415351123321253446312223690044726740712437569412983259699897693492515999595119085220394024981151524749912203470872615222170142170986472318539406967276357344957769057419795196654000058074495273660162053976467614089626729595304796506518854287160063544085498777600138487019901046746236925862212863932193795649599546861548693614659626479965657974060419028810159791275175679152989785743907025908345189291539841010142776852254096875686577731885467689726341001462788053103976563657313791849932091312366218882745419227260475759084322801911503829372419193501958565761514972059421746187215368644082258403641492551859448631466734187412070437250414828293061796401804505040082465295452838260366604760383777839159491430943306114365457774645556242909383047456887669647992725330803761303796892829634344516412355868944917707068518949824632133692019577041160014136375184402455068608268233627309886816966492245228273807037310787452878886836626310975109709452995828435156671767906615390876422060534600082569016231973476213235932945794687167877159858065626410580862862402493326064883658988858866764926336140107283903089347524195215963555323496617205011976863101843381106859218161579882673794681494150634432309183545072419060797818792000021803218235729085266133393424893673546435432191287615232072368287565745422249194507355749161684443251396234745248736322485210575123339858260154071632019424924296813944626686479525768591326771353910491726072803511042443375703913088238476553983181302936202803002586372221333095924005333782878055586906065058168316905542661047970344839291503927481042796779258830376433694229617967338961626736805005441297245203026475836818336676409423670756318314965316139881005779173929827859116961635078767564443047868887902308571636088019437568161407281424934046148311540958330249165120484669774309556984602815685627485178131405459901654730963862852875920475953788677750128288572536647117732837386676012289529003853066422341663419832747453114007697801439539429195184778586746444461093069502529844461835047261326523249199097306310537078301180475825175733405374244257076301415870683148351856889233692618123642945195070631113623645352266430139752516681970581564290433198385474825685779678874340949601483990788653215822217304381856373578287978130734977717139800385693710460943307939588739606852634478850227727841308824467220896219039473888842371741435770314287372938596040081808059616974716219290429879982252859716571354642202569080057957856918001577993787047722496854450412843477625176357648253417280557663509925626601168699264050251157778932459526600346116483005154685374595031802204598454631424664172206662783576811696974423979763694155116510968771879509892808967496540929450137859102511424575473669702385514054105175159937639086923447527803746522273899825684942185306656079804436070402702080400245857306281493893107068647487107648666135710204271296515299035344574428933749675160559232133871492406754302626720756985732847473999104728421338180302661112713811089256248353826301822238419956828568025716440171172209783396061694491100814023711201925093890071379050828354483050767357506355670635046156944266573508454792115889022253950035730333226995289712901159253497314311895084922164945768987120231561760487257309447886603217391843075719193721231810968932179449729062015865120541170641104807165601929716182712153347052648067467904989659813426833549514490496287454759182516738779533543699265161093974206722353433024910989579231502685214054692373401791844204859514483503416780200546839993704162314915627254547497948497548081818686491486292992014217444546174037465561955068327865614387768555189962037926475324487592321537616098014296469856393320901562192148932472870240672372726982999589459559741339886192628946592611610142027465726605370963811891446098416163283643400752421133121434982016744982895134447094215750243413078275194876650638846116103796096285291373180320236905501904907803081878688969006186512756217811133218846503930989388021047376270604212287142101447808750949271441222586311982453140514776325867285794098944596062942224393328751539108898266997321839679557595956060195790905386756757120069221242271734766838734234227531135594370294189915478852617001083658181680072218801335916484948159049964222401054604677477303036174901708949461440179767575598373675626201546007549767032666553828444791640410545337397892365862617451932786458661973289735491996304300424926395569665138693557716953343010712067445398168361067494794943897735378485259640641072833098938025389614023393172393600652380611676719082692531563364637601828701841258858855764527509222557388597447775989351057099932414789348942004610701805204948504144197000151475235678581014923390777161739104997053161513059369594020090418590735279061741594313309477314954976131130324797555219670609628416850599228327920907166513956028834066477046150882211498676206997640335994112007880262992797933910602082770871144237373388627207768126432913178753148232105601209944417674352487681695586921706854904837331173025634468109775224975042699611843522319864539256953194027996046634753983879546375275478357589370608121158663548893709704351263446030144878434840167230777852918886854021046341961560653596308363651196297020172738768330166081163385882630084461148762526674068951659785918814046244882308989438998383751922136096572391386436378575882447661160436473987361131349649669143509219357960197199722934177963014685801535340418031676329095082302698121880344377251587659668577304348534816012067900755895438404144652860888602314717896599117897870906357877765265444008253038647218603879950550262491992542881830356526407290250800567135720829756092312570716977411180645433338886916018161086036153920701175012578976673109760026118502272377803574612901037574895698598441623006188845225097510921467331806810304726878834634289453314586629026178552129465840142948135672854950038195514665052315029348624946469046393552536045125447048780963908859284495230152567053649965192918919640151265467068020606613945689442471416081418491789760660598863018369421256485978189297493505315499081466223311005239307364111857916489874254644159338919386225500375317836894098281674817607249393049351058179980361451804066587368293334583006580909415278822557870294841477043538240433863406643646393765790642566114173558423172269131508411332049060373724430046293639956741090525703056241037199919756012802422546369243266092083754688332683462475506008866263068877047391734951978808091609834941357946935788513920807723507333239469153428040925049721748967652644448931188465762776956256823309096290478724015326473026703148066248649912879771812705019598011406850057453025171871837684234301603609518658377664345411329781230461259412338912289227294494094017245718158884538421074417682470746448709639629853696746744006172232286910812637372253402608521879832698063140969699257377572090716180665152506918882003968620713608233188859874519092302768562101329635431438414987522336731332239970214732988171159697480968943806728712691257330389422968847363698440152835903514815828686150144395161431453160435941882857265223720990678955970662977374985652742349533935562206834625725111586232190658167800508099636755041404351919127967427164375135196591263861868914761564277430184690105724616291157239631827687091970988310333522944627949885186748704861897684118793409329495537564913607394899563399085665753720071963400421748521796098399053730882696477597873531654289739967378786693066624090958633908832410305163969316786685010539402828076826213446279299190563471677082613960169334752874266644866206795777125740780742002543925507081440702006452428127015302904174534817438748271455956728837166212010465230218151309447654007340356258372298581995400710198411516285942842651004716751774727582046885482617873455388257492740938443363990871656309919294085717542193131000156363702622431617823414188500304071744673494243965053252129464540817948283973622792023627855048975070168323002814583795921898935489474449541317654491947948652566328198700380690704710456955920523938655811500110646833592850510003934238808026107776786332438524574863891205402130012115211439906911693804788880555698387354104115136805560670297348432630835419373335324393468797216227956184029733931521119925801607252793702123334123250347301875286510208535387431634740234039043982468403998732390772720904851529674030021374585873176850672852298597133669962496491823473897032484827112394669255062197753407006501334834343837336651478943033210746568527173994526424460211479289271985416582174551928365299188532606975812976397873274372922519800077807355296731062114687127705822079856744016566245574614287098450127647636113350845118351070267521523700689461430027680181571072596019065861339917385499059794141557914920948112797153343269149086484808849737178285393602095202701638006769903856582507055800616923308605362103245560883333899437780462140841922759916142526333257803926073855548674800798836830717863698502194627997402209130463554340558849637032051748774723117038341858165891475911956522962392837201733785708077324686607919954257950472772489925342482401849654400372471733604380434257555682675551909470615037867407644447256592336655760806109375852854451284336622923726156090534612343978191366471606884835687039792691543585076628752353494320856090433932879928073237640902308975414186376854833311899739217109978369209908493184441880749404002081286653828652440282701338965710488809798735501741785938441456297380834224226655463462361789383228280293950595341180363009701049206271094432460561036794254326742996123363291205969126845282247240071887153153837002671067894823735741343477664890266650484929605232293912475641619943291658007250021944697997324857174270815729854720314701076207535886304443942458131673448298448510131369008995533805430442592578778818948506381350606412068495412831867561202376853476597552466620919916979968464635570666549003426224491477798278990009616217946312567829345617290044717990033346006238910018758504228882967428678382595090033184096394685184564607416725050839264439603261541987938622964835304572191787872607095912494738643823850386616087885867950704228401277342985007904748295700806316146819749112512399633604535094431929846147676627587624715727978929755877879351066170222734366688205616359079158766485738351451510467755058980391344185264427638777861008365135813539509373245517727725776982114983402859287930318837240518448728795215541952123902258891827093623203490238642869142732329508930502622206454590123420919736992664866089445257489421561885703217291410522344444157388533628964027029165492229233603293298462722258506504157910843926053764802176012934362923609013884232909795650933179557537535598998272959441318790643228640942603218334712672795606297055626604756435743281141896285232104473218766890063597506620981519663278471781205703315461726442305426661577753713324268930807266386437664450507584495411125642961916303883208349472013227808598579270423472129642806047530819982774761493282179404761238107297877417711557150303515401721928420467256504547062316984230124662919028513545312459831342580841087455407406138927789524915223779784981131866338120164613102415411134659137474942166648563220523361711043887686518276746797408090989271798323098554723872985969980085527934157757167423901183804607396372852483260725511061875738377515554786788388851463567278211971220292324041050476255458940246768360111717623919259198748209203527709022903348477050526964891915229540105132579331993054880068606803195694891649594985442676755123145912573179576087102142400942061052740615244310628391327413175106112178339930358309221479457298429091477574749548663539041869314085435995327225663345714555398117320496443391269215964599040010965428674988349669568575355660455543240248758370007314135422356911894369648061175456487418218157696198404701008132969752275047179555259350387141825048268362512670247166366724948715405574820896128349184121003282171901846584388816164081187891770559240177995258279014707082796942837281229721206144035894519438750666126371329431723701582128114325411318404708966578918297797810346441232273412985148493082860068592824444325729901998397166888617613289585712111353430530570607100104792177759719962177083883170524377364710343484613768831441007494318818523559318636733535164658336527155926576373514967321414671950091312320864315886662594123447376983435886112335635294540080837385316628181090192426646223094587797530793136015415384468434951270184909843777838024014265386301353371218525299038111015803165866461093791542312174473541971572996018678736310162967602357905777542248581100669476564235000249506777255992257616794580497075082279879091424070577514547148167108745992722881248673854349136995093130903876038213374511115646788801480586846702897164002157758585826702762404626725309443221973050741719097709154061824749452273873915145157879928151382968058178402276760105720905109373901687052933179688176541917111248696431467830502422565979639159903854167937667291160526127803437843980990879696147883041513357105674548701072158550905282497932764246551373679284708725839020239441545193200974628207664974864144531548999529464014119613292779919699100529136911732363741306595931641346599237327114505901478082756222115954543180251782386405614796617697053829650643568239195574432721819093137194073790826383212784395108304237977808003668875638795682868446172067436071486592281059861368387019065669643482389906298632729070122225779357903976235873469282708741510309787809043758545821583565986869771507782359600655835077902970427176178522420551875497178942087646501685090637436861716639848843445560620829832493454213857041722300330895245017786484998464302740319315118709582120976490571929616570731883782977745643474272992731155477151358774645510803379846691454206290580932455241940113027754786675157417182418742010229310062638129323663028083997298749425179218773089267547844863024522775371357839351388282032551789931126856429670700174936923268752980858873164416254096335122844183442970684730035542380483091378780437625653184410459054601706400789685547358363251993160308921578634326381053775999498463222485393364972577377241497050959236131538976418201348602564625165615072823561544596004533562093889993249664339320388708587040636162324818720124180827462639910379633107431342082373164872724928238833476292003019982563385687381329426472395486762823298421584675064584143489915186392333178574909595965350985945834171366249811306434252196319720440542235225756585672817959441303681716689008231011274165254657129109512091468823062520789038843714808584949456435860676325503140762967557686847215222093039452123853058214727345270681908464265949225380836356712304597282595624573379640280245081219530630522743171231956477413654463813730475029972682871893331248231274292974009080053423631272448249510630118315042507913617448255278338403858049937323252506750716222397962959335527155301950699426806461879177516730901038201302151853813632653232880973911489543120337526049453449700610429493818584067007133323565147428501068629946464567133123044487721065991258805281913815003015350190621520830984525856659188116530793607180008542000168899336748262011399734441932066514817912533848258944524372934242435684643714023224366426701580547188804026035888975206851795657111803509733714673956797150281347265507962705922300143530886494503840188862886468126672630365990429383416101666896305029162413789378130934391600977139610748141523626730298222364472614430415479378226819533060887741706253104047652153640947712353202504688954079078192560180516500211428641734756139493216693722738692582402628690947701118210631663198580369729491728139458320266227140259603104902568045009404161859808026721915092330679085957070678107204015685126079761477282139065709859067948501805542460323159539695147616304708964066991770632562763780309771809056053109641660978161930645229142320530370725832871151761139508983557712217883131134164597655104384520623528300244474511025547380934492223106233179041264676230676448121676856112091238923176240307062752875375217990236043443026025542117338689231412570961524282327804532135086220110239254726382342431131651852406286491506153813919546049658547038027422874950243570813928469643655181915389491083214229890908162143970707537425710401105206434218240134374525612233983943697438951183970551109807105481730152430342776565514284012821168641630774865353897796393886923771406057835918946572310864134771972042670246754887801725763227158346039877139496184679125033113106209411466018656513691046266382421594091494269079864970249624623954611276535534499518810125820312361313048696457808738562542075813299269844424542569092316582084771093074371181741857846916112521018001973646299017304255947630408726023821031204876857656397681017016081640608425532903418508845439138173061824733171982348941342960892609411753537079058141016306234554950841154232579620862978970638904250353991151680147395273052278961867369178121803049071413942660886914596053592607000748856184103677755315435107769595417849272005668935037645995866534878903457589067989993996476816043824052572660550153829697660133714747774337431276172845926650886588880616590700998895145032644029046298806283996105052569574861439967496189568833603219371234505409692179389092335088704019696880825048456573937743581420713567856341661951087666794763787102654394945419403144558450921491203680206106130470978516752305251234888222079571687203921199174847790958258020094256788853251494552438816330168137825222040149990102590637775024572880685832490944707343899063821727240929305220551222167301470196351633194350922625333527853587874981768701972412325902759998251130381630280583763721115651314825415432289349748525808384912369424923204994700977211925966478858498026053140340090471631065542495832643692666370145982239912444334836603532461008450996818000408131037157624465080413253828981582797619220887475010886774739639925226391327238130956749158900490629081309229797381923443150743570055673610307820804445020944910963776591974277914324888898857924776854548523476549299043026089613547731128154282239378314213875186110556112390731989084086606577537169258658667492253655585437998781564073396518946607478616988856267030178098860154848777843367304793302031732729084389725006778002047289771538649752662779726416321802332306112619569216949029217685264092401810710272528250481636219689447361236792423714501419823168070051335802037237041158794717805880058055032509658865067856182272884109419630163560645752611649222768915840390502952487724864926237771698176352779563009639890700799665322863763968731307803232320053277317718312500090975838008218126963837217357992396609184648219917548464055039710378456561751517513834254600904926413881921853002289976033945898793726911883999969210299702694247001289110586283832152060812961295196272807939609312437875952839235187045332642543183270194528053606395242483904386508715604122111856461312879857099025272721069786882791521536337800020902525522075296462291640296494368700639266411117869989446105140336401468682867315235892270287447516975852490581863933193622668950993016528471499639448962635878103597523698801053255751100633585664664130724627441405278766107213143205820075329343743909755277688673860063023491220833050249787717234882103098042242990422702219937335649634073284279539782047497693669502936113326984513754364142499777978285868174637214384304512566519277457984536055324600056486474402292434613526384296369485047175995359527966219912181345985716088691841370929148091139640297954024130831750872263191038958245627119830512935869621828732396865361439130532019175579350807259159546108315200604931529889103859981323083678035561869624825291935225465432682689071136379055511418658861802503433083271928148921113611942595344849795632118124864368944500651432344184026003942760843289674188694587731409368052339123723294187333813575238342768793530461264681370157452614228099416386755353175765068987463907830580481486727528182295412889439022716213250170219551483627248773705933962212817483574314090927829422830901254189975743701782662508795097211835407536732533269861221687669299971439865817817070983293257450313847318980490712165499775611346492086139188142861941968792531882848839033333679685740306836442095383881202309715589788313082764206180958182261700684888298636913926251759266076782027593135990451024735534446509146474352302222304217618607696095211999484518241115907518300371959219823449488421514583255744105871143587040654808950688334373120007847218865208307953708572819614774914384917502514414001808670702954665602081739111882674031727961185117652666971866244240335636412584636161151144034526153367980379762099203194297517411006670274211452545017639823276039220316704284719754861689935918049737430153704469797553847630197341551100931819252145165279409013112886886169880001137332463466004114977647331454309229230034539183661956126664235886047241038870202830565615331194813855286935180066403337504077654083675081573256284476294181000457324149626674394476128773163824563654392219309698692227051462970664455276491414291374732098221567296126877206750940046295036056128731605258592750614198223554978006854887779890311377258090516679013674581250771621040057621818348884671835595549474852877035603266564045093031300180338081246177841664279380078545379826447403911250055047736859129460636356202870428700142701087886855649843656130450150200702906525287596297917765579990020810814922484076738446307030298798572328932235837645167115770040885613525436126792761814609131953223473368414683357795598008213200262356084760297935838045779734477293734902877586961978016063229443768451179097242372011645355804171242791242009717576582551397105790746342912357054991395292825461684009049053578485075745090252499242164457740113258062857738538754630694856689074726745552566913209581166000408245809299650850681789428563036331693719039018576539390046834873089615034132976458788508392477548731474016898694403061984023280392299131508790570208104366331315432508167941843802375168772350403702871466014232216087873884514908779187374301287143107896338464514826040062181069116901775270291317649455920370161162226322212483034585489317235256303197966858025376503827037226345368659364338149203541199230991011857874576707751608286974844884239765488738034454111197834171636841134096316409242746001843173992396491540696047430722689230498660116928498345256899025102625437804528540646708693941677219502743864759670381305688862821798059221974016265072648587528465222529624431916158752701125591164121476645671397884094162438550062363626435461536572122971221263755729365497561391465146568189638892404581022641893711658142860180867025205139053790752966830360788160125989666044318640623014065456175532913086869471512249743948769996839013474678334186949294883273436554907715910989446382870106753602234778206099087116409514130259186693055324778320531235696510278946675010871629725708689665914966409478957338862563308415056419324453421605125126629574416466819298869007045174084230047351374346409256379427547623713770206668387108414450284629455737259469662724008291976321847041906107589875820230811283973576641569990786490538454601493961490317635443398243832659722739805460141172594115767443917017120821085588896970056481914053314814293209415441640459366096344532149228179792312685978844010391175051273103388532719092768593121056706635784826381570329069154714379623546155695188453214210598451974989619385465505051819986672829138612410088198177501377907929058239240017461015635239658009962504022784339571572954269663347354946374005126871401463722877580188130638078532926596809644729655183459459181268754601914671118636432477315719698165918828127019527026490748113217483919963612244026447440624267973113002513371228606235060052329840401373521143350384529204299861531357896849942872455161961745063026566248623423643769663131883188591014425012158458876676896073950617573924135699743689162810919281544583116488929099011015769009820877895484489074558664179465824767389826388458792687673058194220361332175299117477798550935979911421707678923983897607552626618503196997792848708189333930551345920727491600182006206580324202733348750803020834290970053283684462891113882586556743243452874165644748702138959657842415993738473916353952102964507535648445786045401969483187045459764157330965031175689051201277152700927992435355518389150300385990079951822869156257633401732247617163093941891210616559239434146179764340964138280306524332999233322234709400986777417579154344803990500263667371166800157044384133289419173269917252105770092150271780484384191012092184882708428292292992379212371018917174679601963088454925668406870485925142046515402019532404574580964947792657753274901358813241747554548782067682823215614192952582922740962000050496150801547880342341833298435498421451269946523102604397128832674224913276188765938627094647814328438598509286155941312180081794702392380786450142432312300426780217041099312793672806146371069590147257639284318044178474432607342820975552016018612623962174008733970810163069268458711252993542689561244731555587927266472791379868369387656451481247064038598894884726012825001689896599958419372774916404584319656978477436691963095257935601428638844494272493252395448450229761721859177688253983377856029367922963268879959538292388455030890924575353453890696349530884940661777379794568086682622956262510617242794133550980617236125192088706920530707776688539816338164853293054707744701963373200301078426989762871868805093357933640090920872741850633126340943070342711250589918502237838916343053509963765631770308079652142119346565859313639417455494456493874585476138713993609358919997609025440929916117659428377907843419791914854648050850699858535522183130530773508013343517855956314725154399926587379799845266411001761713948749281119770845553415521621857920891593912801004373640095316766323166764284731332678359223842313435681976906844740557772759468945303806434971896651887617142600955646741080386980774026846665014841721525263072878279844827639624645624072485130180417412750538544645016517420523738986300629801583364316007858163908740152747727641588869276913587945863084005295332558684767433306326456837816405371432491213160675343532956467902241921239088920647253548334242432149506946421065394524089874472205925608777711193085101800334684347834706319581106424864831515591336927779126833439962525675958426648281646537691707443898359546559745350496704827460728246019550914007455050194481811035230295524194783008708653338949594930884468982330148301966653581968627058707971061637436842517789411640205423848635223895081391203247411587455753406440608115629250125470623098076686429994833638770074013643804360083270798858546544064431436945865157643628885143068650525039948787151062524855763733633714185685085265828559599558063567410671246523822663971797812816198209852711020570121075139319073102210090405138345757941635511558103721518779874856873338540798066505790037949016507216023798372858630329799290620209362017442989471401289247796580039142110433998104842960611490164930597864565759531757405287956668511316853762094865520279607978928721521750931734651136332354369962447605839944893495088198834989379488707709392591978367163438864027011355156567409257360227689377362330484835272910203586485229464124690311863046529241492064899021836919262061852354699810073924676938318726429183433215310019898652023528181204741245889266409827123897202306257641843914814518346604338185847047465893446216031052073060477279765656800013374646495006214906069172861239176478898832890642611096105869998475829849521355755880955050561176829899364986255379781845704453156290613557586827003348653067957431955652240123304966414001825089439857470983857323506121335054675487365359340544913801357779978628823436245924863582568946258275693654082337188422703695537546023485581129530165405992967087213835232442683595686809585595008376811951790019846876292834214692368236887131178712960004635093605475025771117970552450604567053493243177635075580316050909142038258900454152444703829548785892660958930289249469749798209403348462468833026893350215824100036734010009606839022113906265674088747926236536372860335847443286470427071373327635340952489740647002942914943178101365284186486310386909944723111177027259673824065857843199178327400578886780325660073125892552486346036496255056408081620608409733144317149467621350056525410574843581863056892974254527173267594712882942295548231092062852023093647526364516798483899395017641388950291741175990212317569766166750003937761439988511266140002673201322467473389029889568150666142722567378988410534957937523875102293317487201889873571688256127657459197329801877459994856711203972878937254442887429231018119204011914093414114811398945000755851175478087812768398954802669799605099580512586576139319745336464128128562884954046223956629324906693673715875154906333066477868964904427537939286986051907256123266588755612744665821651731312653459234021948169429555104323746970896460968873377127228878494140626829948640148645003742015057337666295749011599688923618875477222428081110941702102429973987495059023559988202125117703375694345037189124294576085153057539645069053202994729927191052994635887530885727092311610608518270660310698480997647302894584352543370924323214857988359269182246812191904049140963952460661021856108332017714175387069902119659490524560233866247518937561000618012572790520390314474292218322041190027026063211481472354832841980795490225600951480538900006718333715644217901502214373988268720297340352459942059767294404934819790830739972197482711097850039218610186347500803692534607715930707416355258985312670746980445171800107791400242926467796618312972905731385272650002477244800732665088176943819037853037111283908618269849736713473034327878214531762674949792511345170880204431153574325265232396877805559132164459936339670721180773292136404903782714902881782471618910290021629306397476951471729640694776557002764542135040124341758360998079450592502214367261943561759296733657151708382221874734437544313995742281017550366877390355379416356307978656188383528651731421974748467892281629251999862829276575815514277950592662784480570828240578482413271955276785466512089683221982887337941661104575536127571250351944576808943787212290612303717372277277620693058537781514382252204470752550639081050591446148872779551124372310127603819043114252180703087173936015984608050306616381041761197088236349577166363814252325913088913796972894095969429458698195133907645168392347853085266732269159512151316951874278113896114023782601448993164512665812213422067658154802360108818331872531602197804974588196981589172934995931073610398016270503314143304866736661331359078170049008106680974040283321202429277899417689007404423177453356393296497205329625364758692562848616530145915913827520839194595686437909657245224523451683020105023750286783139977101318472707334524004464137388059921293273499742108680145153646666753221966538167045333431525770110652203384473752615368372989904946688069106468168339825781180150827031239017078349841339390987889720451396487643287182865713727971828431018675380343431987795158841856654164885681082204887489487345078408243596147463402876415486474125538776550832045257096673966149723889812024353230251794649046246188700467600761192930713409607840746764133301028731541000633870099487275246796355512531688856260146909391756345979532140852342621892832905666318337805885109573558659802582020704505610645534003704094004988531984126335432841128940879509545348089866831919857598857191906674792402487342923201625099436060111176436548157123280316566553414678366609383870460119006493938493501404952858752994143128645327648032589094335672838378024396166219448590348388500834918515719654672470096840950884860891623306507872085709856814459123987382242480273035133812431107333223754790693100695391151298605511562253257475573491383161649449487139951659857468733981465081530111386581511977030899890703763045112489629009105319258464901791737922590588109779746783852859625324893426706350125549980119601955553908664367231547875859098611799843870325477502703125724148507891010874329457007391541547059609801211037328586642118712062778705397661889834477564776388626237527415624960717516234458458073496190630725053728771015334169220763594989235168549229037956547070614819468262148649310092734593839822935108830500275299108010503569236462501408265997592728548201486936377989754001273823878992027220766317614552992021701884468354314447716626229993311353792955459235501003089092703158477585172672144870172330309830631334436272423850105820955562880560768846436718200277902125308719193244588385590130526480482801068738165642706785445582738157705240880193771450652202429586013523232499040467635334864605258010776253380689826234074569626509769896991991689942065458496476476189718361981114048634439595855224878751370896436889115805358516005571479641573631142423665302128123430832734333584807653099038946004291356540084837611870282090241166730005597512944363378445566666210801925900959430003264366071988008664135543997372085190994589581715448104201747196500930737837385718021161402043048550236244597020435532983793572587527798565771880059258543149822906498478899463023356099124109662529173034406743634216891823613847722873161694210902234506279934266944305639492334324401513481293062814091188297994650845115371154991272011458648413736421140863777133402384758885844425322567401265985539763988377617645367217049686773879602177193061377734363425800290658267482757501735785796525739513570084927975624981655160385914585447454455126640803185641199181123069017967316082966496718667320919302521544243680483658845023618576568981675809501828598703399185879368443467689193119347444982566881953145369703677674242718806709599615472771313682994625913055597629001428972211475214390181612125725345504854015862596152175345158570053372786878268854288701497015619612741985165870378708440513999050518537252870290051132825245474597705118523067508507222260499821972844926092662516812353496818731721113750555707610616537563074133140239406740417200217546029084267051985937212608690886834600199036314335269019367789664757773499406568649269122819149931074994191884040301721966495346798752196774363035768902242878736135132609836828128194895140138371674324318898863401397014223162389013023290117168127304475978687217268551212581091334573335448431684644236541704958227163679653217527480298356701860209528688017268904726091773104918034678160475759313401363394038962658969842212081997982919860763607001923377592875510150814821825214237137068138385308970236955974711497978925826214250826192904255947626678560080351876146518344094139292548145933528218046646484641137541128245326403093339799802334537618559511365868079943637644967198366652638693834897534205661158457960100042253772628568082278329767784747814982151955918577041754841747317382547962223782607269447488420784330435313234934214173465226324422427005707252438707935623586405998402143526339993367280221884328886376510272105780681690418359454476024880486052978770910055881159767455601994316848698829819790745215898334714633623059409978581012233993138963692458870582810411432688218516701460168340728007687950803878587007773370663089361252510582052521812350824520891111844159859627638433624712374163476685742037064686356191643747598642668929051406496302142522479638084522280607772495737172300171941937065226968589314108552082768658207592375539409456128030918904377239349999200892022200051762987230421286808433689342983887957506336172950647639973399392758742515660495933190303937107213029573389467877628186308847447007983225461393873592941982637939621989484569807087994446941216148139616036801322113197441055108607869980467778363252016612509435590827023011472153503703120014126088130819638947345989484506003657689469494352936900600861176825418738068011530520877638646893916096032903921735492426970978569490605911494349328025513810259075393470631999007668175044603719139040038463760006082641701905882515365990543160224628263520779379496440606514706131832348738484179009135748497110065374596437435573424430287626154828713455308616200594992357475192700295312295841302824961292179479897058528315319005516637615597706312732051753981768184410619402526276265970164586577419271942814528093506660929488570289495536540587413160768218942861658360077316047613451147351949754130518212833483641871326132451174507228734463304832770914707352100533822076066572991777498780683228365983572454776049074037683500896540340774241943698403230034679790308687447590705043150999126851862503958544985999726146222311635167776617181431348336373654187848709083619966728101906023863093467688789145648461542596180439395748099254409150390710857332046739429977498781144051345347514616470615251305292436609840900860673784180176871106610331328957206956348249330431130679569606841649401762609799683449096703897530880981000874415860739076284394334640782839084953586103832211369267981941138106207165476617444442378625267489920986201892786571990887696875952813096735865116304258038620627227862143977942354195953328861447703608394515366936412494116577256070544868256002433826091309588810521914766744389602116511317539592493730364159060514374194265348324425601879698005507760891415475998571800028720540536556042784095298986724200015268028190392056109767569168007518329695450012797672856418014305463845033949791318131805561704387429746928869575048037032822737635146434315538067401034230223464930193213114926099663005705800126567264559991477426780500648509367883553582566421103501823675807333886900733846765969801371042926952957426335217865447982386829591857366248140085235574892901822937778082337893871951441387262701738905652803462245604056084410671701539859366229791575146672574724120932909224699250482033323918190981175892757982599903151773207442560445619203857800210145088308005524113488554528551873548755648198765061115610932047651339883875374867821667117235599098285842833790297342851878334835698617589204965783264105128940954321465266271188942972899027427308271162775773713371182236145744392822563877531878424046690561523109729859954926541170748642292264694518995311272273844130001647357970491345193710170617374670766010797716896172108997541772990982525949772317559370565439219126223937596572677670829795018599952780776485668871816515032353387949052333105638764962005156014564531418005388748888416120678098909851925709118822850407050096947817552456003121586892712943131591477707613759527593711219864973688480505438014505763875251728068232855224258350570588336597162782114708689939522559916255711163244140366783831888853021540596116957336635264654587522161329308123197768086737816929842571643995565242650483712335483068771145089532763373992584063545132628880139522446013558071967622150452483381983138847224509711246344781503090924947222137460547356836482127459053226342985705916480022722471467465374708012925906817924357570972215424184742475314796851488558915361125829114524545020964906837103719387766442014583806108817734995085484919041133767493260131039357460792583736627451608310706489272570526928941365128453984456446249201378307604859147305423922679154237421512249378099066573999751402058792705203427748092767792234055095504365845824131142624886774573187291333684414801901004337119377563415000517313439165688582919880087648642035137953481896524042519148603953558187860126551298498177924808567325492755850615735542213986900739833239983986487977591363901781496070134476855788759366729854596862232847721951404665082230501889917830713218456309063314898785112464818538213714536973609143408052910454150140849373215487124150453326705179902792972152011426193813049006254131719001563398491493399428021256909652317636245898567820264922693495792134568906364142602322892945151963419686701212753291824394168207501041383433843863067481734120304078459822415891043924546338029857436466479975972199843201680748639445016933225815455111752616342070336332393208653105872102887101214492495391704648484280296953336537614427754842585012254861377022615227041845736769478563885404671210160575158429552448062876625876709022219979337883769701309991315665499587247223053340631984249628990172502368367036975080339310789238916610744825388942353998327193617982626969628757707190626759121991472144427439032253589340825404613288018773047500900478008590729522412688684464252710066383167509540666264257239262643012763411899549262293251989197908365151068426512802702045925826108612827994187790346220811306265627246951506942754656636815110855669447361852540780734241147243491095961460276027594569196100534515893831517356900011768715845963299211319947770017818976285216410162488710936837632361492270377841756706610064502702955244267351951430877552949117521902917854013876152012481270870452418871091971597935874820966312324307935793505618628628298403093394365240806418107659213083543230664402561627075051808199027935423728754528787986834139780899369025736893303637364505297190416468563020889158442460086867080761848497325847589929250484705665764172907171136469329523870634106412247746372530113705469307287511215054925383968340229857089333762200264260312175385427122215136900511658788014558539471152799683296808260921395942855421256425463638499665911260052180707340519174790430457363271177863227703383796838358679200322173215837406319681975107275045952495748906069885667110377796689214636107001419856130377828767037361962229898262055602594500862457636201923804259242109539454868780308143890854334448679703057969113270229952917110277747681949772707626269421334097957643557940130357193667454074766078115843575653640712302440412822049499135817766124598593019937994924335312829716880106015995490561511404093209440011995919613137564711687215010574862223822295746261797123628050891028995671617863828717716401463679433206485593560152526681282173224427291442163771861005302507323228235879016000147359658165391549776109538851458309318759429118669317948436619183203347218906610480383906269566436527954010909983769734676282896154291548937616051499950265165732370863152342467718539287463785850665106807073722783021148174664922716346240892729022770194381193253338071207201346013308247580162185577173900549525516643143477254698795192446845301657349312338565303876240976840346708199249137022544999741098765223082769698678083922342851778448994553459440464698854417325414189930776801701201958828822131053175073437287316790200211806593640369028956835068016112437945857016552640996596027372646376100238414742869875373660325345361750600578959107296343017614253361833654060018981343980519608689098780661100737006965932767634601801593073260070205273984597412381334483489136326133271494508834738195620170476670913920891852521932603631666157497909342587132551085812880757646294539966003370927997041557860816382071943885412450474654577503942495063314003946767574466930562259512887123440970501375797822344139058033002020986227674487552516371407862370490988070788844608292526744060836438531934575627820409947906948231732975947561046783576294174822268345566077401041613946848993571366329436081500500642395326762091234148693734726446134211223939921859064351497265378964725964676068980294201907718126658933096157756860294985130715036479356460412075316127784582192469853949377117029539730228119319503787272992754732629453397131306430352906825818832015669267969165905166144464549503460651915901844132376032436277696414120413380519747772919912523475969246597543182023855094893823651452380882118056593111440717338222734542399536260986558219405080016334332332768954690085387161075715071973113721225710882538327573036834363758128193912644097041619613233983538865187944674947171508636636380973589209923514750025221164572783578509011616027559922816254298497937064655304387213000317147629238488878699340993282743078617630054414413763900000307002466232051090994203600776875769374795986040500838921682092894559436048293623735925638400710052148017964346742563992861840905815673225022187344233207898900813684457592997250958676235846583655288397902324706071241300218040999685284864338840028141121541516595804577037236254108025560972493015530974542728642008940449013568195535758233366147172888744093584636006617241835256459126333625400812966849577799958449959609105863283063405987165253351622427416909867297601368458164923192905241669914073996967910103807016573858677520112127304605101781202951928325826059988914544934153163645187530807975396616018117855017940753667708152493536517299609199391781513512853972191505560539861677300330127799021828852480378475844160249713289624710592225595201987046551389397118040745885892310162728033446216689326371243474132760619961331664344123086881409156288591106983965424597109293429891061263351033780286642712894353588988848459816962808230878770432605571657332438745545159761001750442449053354760514120682216546487590903585242886285504773585537768874871314890280086561312525376260669470647177829596730375779790831771389877224837755505104463918717335640134944058085128944575395835783996659541316527942436476624482981873581031783550997987825621115855499317198814473162055351871888352737254703122340509611357818454264233827444711123588914941850633460898055903576327423856063963287015280239046915274743268050983777306453150381740708792689200547303062329210303371574826940774982765630467374777178976411585464532253589904267444069181144167931332955562139135982363319329123722240440203517762064697433193430310766802079708446314581432439272058896231962471846565458645023357302245358967057389385352470962041810786898253842412914394180758708872481902266199525714585321687939050440901936440679131744465655779002911761300662640337573646499087058825510302011792226414318769831088257088679641037542316592581512386591214182524301933328632610522369622715199409591271096650049180812655167298520452479142849667315850808637628207560749451930350742367898784673550398800687686075263546833271107003015780239208243703953580789813621192043530727554722363028174014579302758347468254896129741872807061718480108114054455150983640373141939297581833833112080517022373166966373420863552776737547096804698876403451907605960372610681815005324347741584832572838786061930122337331191428543543140109082320196302176100701751349737910549043285951518151646014066709654406258728674332597253155980207246960009851714780805002890977618294436185359486288576089563327833360853098510074220934702339979375147846312807635160051860801108658027661887699128444108069520009814835006600328599325024875264450480240578170921405815776584953169538540682153581601870845356612153413513045505045669308775005831681334423127407235801902672667005140423915124141084674700507772150927997960705271341765305281742568866554330278406947825742064414842991314452364852803814947318110165224540568042211728094170376511808101844239703174892481544719206643199345190009271886328676756545837749801866195372633971935213894996588570256684473577824772562817952556879319329651781046484179708855696728546248804067894448570798925805051772717192807530385408487781113766361941367124362594747028549586120868310237992309330568918593181004043224113120338760592062879006989084767116741608735528784001766757554953257026085767738366704009362092608366527188038281748899330798085802446829932225143907797239711381001865833436314579031732962497896674287120254256335572102685758274251581427818115216738880125184866263207007981955860499708731868832432112981847449515594815685892583163120682657024388542700470454658061230376161215471373189546078387826093527002414914044205013472354709774810786032467744524848589512447245125163075767924994449427206699196788077797381998581311974997256906776362657166375041334495435332989879813103254633581230175521560326701360384664504711130795311824863704330247277585713302962123136203842219965360539239391684682110469317282638811317762632603955615464653476891296412567326097113649853044006289262961422802531353231565600595150397406701541467746707340275433082959206141055928585880709717648247517261531438820729770192477982626990239656360109506405275536402102452259368958012884298536632325044268550457859990102880055329027913254194754621704197007014453076946381284761244336394337572751929255406557873606157977947132387295714960031778098454452936005550013598578004289374487236955414292054716397024411981261792383015752485318807351545372043426351751029869173341880908167494802301167083095117321439315848196728950036669105664559461383357385631368495644503284545445759000549933568752645861834643460556443686234569176068689974871410380439265674661852415465923733144531213893084100712558481735562983985801387602694087250480732558982282267045021729607252883898200935469609165232697495008377810323481887527324968280584842431127021225053157063225775829876724549036800139794664982861586393035697578643645599501508985153695911023471110546736013424617256292099793729401434598808330448271519238845148664452477779365188606714028765405523173429429080556635705814449412877399472812022069893731797560876729330413816448254664986720073457900840559819530086625821002258901776414625802543098063998717123338015834175746963718213444009815186523219770245383896965232789342846949430462478160124700406605869875243599616269286824985567245483947487855845549387549648434935542157177102236658901781079308771838154623781506720938372825814463514602216617080266403650151157407440175455540613804993221202988518097507486779338771760270503609610658700504888215740746661876045522664191594172906067726518506829099180646600562781445205451609152916724106327374128447252472063120743778421663899144671893728591601851814123760208908166272638099988297328782730611840828492520009525412506813096344506179071990563686218045237835038602646463767141534621749381670289808207617042394391313437756476745188956240530131591816147799080749891716154883429755320543289827917291317667584866822760914244100585791195398859303973186966441510655397277447435891388867762426953020787898190758839224134774032218751431502557519137489432727074768695933433106786640358239628797899824152796190935773051362266405511206907013839573361519634296769930715965291682318544006552380124624411179304491886287406982172582001085962541869884608143391978124117019435316548521930790109083967353121523788147925641885678824602144822844652747961541037119922306068999514666280135707958642451803261937884845837438659430503738511534747191677152613802363587839544134053440969134870071801162451954101551978039371514772147933243005787657942872661649064367276816430941242422968215214205338501656032196311384764022823182779041342985422245683360510363814595059358939310611292365548046878666830491092652280754054283675736096949120743575542303198101936776177197192547760221778817899240474723999887325329157984927793284861623689294564592424134474547402172797618711538053055354095716987767716474963563327751124347634364411356703498435853243788879327067478370031766964674110250723944330764865120713413754776567087741073644626583120396004513683194099481513014329915401937877968713267670214124839927375168145139544842426570091564383472630558841376752613012861821319655538209148100300441627627146341246952251518320643347510751202133595757394557406212290122701542094575968184919280172409256815126641396454727272905287046685843769447039657066711068412848477893251925232796143661963346711793463435449390736448782063389382755151814437039186124992432272077562415087356989403722668563851699093828749391595150588862606617902737607094908839432598588410245403535815331137801306054724324304013948483268416833977019605168438136807460177890291551887435432622215470591705558250039254249134393070237870317434470711287536607891601297286177275571641912176526133012382948221638061045471295122311511190667754069935715877534137565345778546797507156348742558487521042998735082138278230919434406194321841228657963026906603151495847571206782042610161038059421373592042322860883056357739871099195935724670499871949335246874821603066366663390495874348989465707547184117733418789522243158330208235384423562177721872496729294168730194167379407510351929622731744408789422077994442616663875639496394598469486646287160745394934853541341278048800731976021692071401431844340298817115533717765919194716413082031616517441804548483254221965728623493816977086748345409261607571961807362677451409031963396685080885900762237620995373163228299329406672776624580106199292642426195044383457147482759704366489910824309686245772619334168945248906509063102615809116332470982983887666988387548134074535109142851179221264793599049843663116685158595550083867254870299963394829014250431949239378413403521865443208111702237482343695562393471092382140406342250397713188838435239580391919131432216128516147324108202275250094562725004553837719748039662328858966113587461353119330245877964967747677497375522741927527316219736819788954837652136557256650932580580893436774674980373420375651695206060159426391703767560511114632129701629455448341774156887774259983310730610950247186198363719849810180273562753299320170753684989194853058638190590428692558692592961023986237975540833944220295164403143046177130244935045585814857886990000205597453507868660068284661515891567177501634795496809178329429498951585258645402652603023662559436916339883536946285905061067205608340204166956508311406318519824004469258048356321323644762219139144381071291679035975864325775299687298835345789211795841736093306275563020969304939459208595950577616343856056993975025017881025482107420439144511100385264961004351441744707889926811515590459254109111716045408110836762142751622088632140123489171217908162481357524278813552781262671887645993759360076539937071748270034080089238963487875718672490246170103262089594782318693889815979667707227542527221791051665318678744442926840935701976609170295172650740255382313382378954154377901449926739484716540094000860081343939718169053393936633503423632554920466428970573157593132425373038065581593757257404366488830107045194550395967470469596962230250645506081062341443552769260943039913387822137338002272347399698355372057319889073699407182516583021442820139739821990726708504599952979767729145132527944255032995939794423829469911116653904380835368272872097905710691808968794949939849567551682555157199590650736381538730718455627131631384649959098415614101444024886866181241086948451791394418610047258931603806459775408168627384492262500683893704455757450402610459569340667665062574745313503306007261553881422903297269263427644441081321726765944823037218772275125370190809606618388793481107841681928346575214790716159746798530025327886807793920103179402437929981262289653168696160274651990095132929040970001966334354183795571388190826775233433414997461634283975994468863823451718609806209390069496105511310498110931078368018358068757240352645635723846187821933335800288036371037573019326765110495706693735814718624244307472036357244526126759763241126060084450154169177952769600279622121579546949194890781407688032273868302441729845137336999022009444785506128837576659338336222179285797054215570231037208067241902111378320748608460751609622745181153589310650921378559054591688886632030526138810499732572899650071812257874228948842294669120264983455506065047601678096665613046230676048505133258960597198249281878692048189413299363008971051949253974374320060046902938007343340405380113109016091366615290337052827718676799878609291321349265175839947487736447219844455521560165615237529942683524515182531698063909248925731025825354222940395647260211081058764339294964754041553552009975856671888908026753127918256805846139870148151476177395784052844136097945897640464241969604902742568009820131762357748314913343134479628792831969469020903506791169721849046200081534647306753478818624784253305555420830094401144560865250815385351416394820776130102116702920928558116734917752508071903174058169528872155820463729417898978349811014524848339930169576570893714064753236748359788353052049841647484244150215984008015471328386266614706736178256228710739881266852248371003545450914005226290733178074830722955886521360188488839999389302279925478112083437457026554992332406009025341247432297309052291482784986797835360125986177191531933995664052994929301165371975561811296039666878430754384935775622510454065148279988303956849108541012291052684073352557184705407347355582319076078440625515218886073824188800686428566460868687731362221745696248136000442925132547044652812426388840809727178930018060546721154538688264243667109443393768618399385133889737284627411465402583168517898161395977158455927818488092391167850757927175999384911038299456341135025280538379086617016790483570462979077652268367721305212584807663347969243069136684382716475868899360694713227494180625472550064389377942944899619177016940115701052493994818643725094473560157595143274655493575757295973538623747925901858887080180302593734631577721902895219062755309903322662580137942172432299104516336881532308079887549481019444604258423156764814747853904036165801683714075603345452872874667806387333778178467816129485608845213069064928770703148505778708758299522845016967760574028892623275602262439917932349922318291621344565720593120005233803385015792649454485664744178798002446807469257334906655908742349789352808749352719719087944558450166090929893624439699117568446838730038624775437369038230337901421375392727960384887896021479565741523218253632727567331130181079435600784931515209342740201057965310839315144844800804322867548049735898282706965404290778175982137217440972581997783137798035569962109060135790893117333017199388569186275394204117334337394222853950664119885250560514861106346429189008783468976881834197949511239104320274907217674811893377890793543512095122998407576298275873328056393796652572691954670516958370688418594137832214782637289326156466877132080661233115752597723814131147457583160908234924708143365127759442906093459580706751990453543135304249011776103316716009030231549292038413734234921792200831111520846102509412337305916321699269289684680819337929821105459711425949031544003235933764931172462120483190166750245247760779175875312881087850567153870317478853944798681326611367076171749832069922662547413671415694016235682263251033047153279589380919653580503274874430869116850243299740128619832516773111223053007533459309973609171469334476472070726633780374239444304857161446427990237758606186950850152341227339720318434794708385053352548106769386498516012616201699471440456719233503283542691954016218085967326819941238749267727646995594799703160089898461649999927231588595319198645843041223893361275531625668705589342913269200777954781499135616345069608981669364152365471090651321954433435501434326138160049894726892085223847191768706347407638540489339931861975216442453538652754110507158086979414040198682249929177222212031777287208669677705996418496410875827909254899067503873178231953389543410893640757017182342063948014163028327572573961698343718257366391963980896099245745237621331127131175478475976276219870164440273338998102367998860115592492618048081093656012357381430578842844039740543376772252883940077255338308031623290885224729534636907749149536521305882525778773871694500240595081906549934433775932906977941693052388443308033370954534790126921126657014974194757500098841614947588729195278136821606574438121449755965420392743648922866284176453681031834558317420427193129818480924305599556745489430429911866278195091237394807276866748615212167159154254845856680444915113969321669908112601501391878154258860379055786516419896719591672685356022792580981752273713793542634301726599319816312006640487487824671709519213862943108825062993563193023284884609357311002487577168290547732067787910098854704164178518482012376631023598023320912879841607602958992174156194593955523018431630339719137269768084413829881093929914086300480019065585092657638316893945310466734698289982952343381829927606248475635014310237349994691566724299377026776761678288908265483250339852063259030813837258879712779160308655238037264455531111034614252393464308187832511940240534946440260365590834520266205776079181999734487372917546889270216782850037366790025265672873760954909422323506643684660281464346712717054917050131791241649119614788054084835506801076802999358110075025327472720445486048182321989534093634755069074357848598582159171893065470222364034350109149050785227960802761599410045812776041581091382786724235338715557831379749300950033358499497311579084507168954481859983529905266834216199697261576708806134428863977769797642134762190478171363066049874901956543493153363693565237913402744506779742232551298713678650664427404336634170980762851496929955065696371303966062547513611796388687002956458124066376638368063109758838843116831396909579862775618393512766901993191129010524218553511448676979635104307535828954611566811827679394116743957940066470278433298052640956171895516674796382259292895799594362815381654082738577623623002270668282799971084296868266312544093122010598905858129653304180705747393880308053380655705234211967973214646352792277782729758255973732793418560768929203624889729787611842035273084244976828837757100133057581532086454662179949454049233688216973651771395216214671366777059878291587507723257566811205358002586695047380727075640444349824394749144529124454110294499034320877750214415584507646824465380028097043181714694493653893334991799271651784883735329172608812717513847910197577961972888458978136340311561105527399536906652388521220386987808015241964892115031244069954156249864864164303543251772538754879318534360725146889570783115757204594358144773756419519778585848688003705264025527553239672722522110808111892895156769684157943416927357797749926736558674514334690247854302700062990711470134437927505320998811914960066271755238977924409718389063664874105355693940548750022897215490565755328253081892817615372346790333657359726190970474460373073967150888387613843823054431688892317317092885622792469760780698533922969644257288051012048035499043077449620324226323735316258925339432086590336461539465434032210489040991754675668112895235378573065066738403565927474358422009194158959671249855334916906469824063849867607069954844924248481668703746650086230948731195638216771381044747073592721435836282192929765269374522066282070220174137904043647117040219667983314776307387864052617546910352786564858776259474550995064208294375718754231174748165067197370612770702412200366404625723380632046942958708131591806833849112916358827709167215359996169926739522500961980560255756715442732787527549715799104299712196476730848608433074852013954708381291659154965382423741231768758056977734307831203244500199172939883162353257121672246084727901755329447966703834402775528119839534964757940522110670424077649151924359439398013210305104126569617575474432120004807854539901079515194243303456402843000507789143336427101304349229052074520541314690493651236303109017723520710205829121653440099738461767684703570249933747145305017507303495869094050406411176663092709375327856432250915227636071574863555885918147073210060940886160302920891308774138502733239574920130698800493811789249739130316174246545098132458048986577189504140254757110799193731964761153996838596579645582309150586311427953810290008365340561278524785210794477606922532247746675088130985068692700921023335284035924963163705428156540782582717058946394612535436188667253809688396459729749660292553646779429774294189230608348453112903397463149533911334615772689599451031998805004283771719676345252875860045726219188950721757237837304579982173105225526228103486914887274780839188382024671568600253552545244710932179659056874938628882726001726946103361437905826455470225660217142944162826191541464122623723987107132204594003378711691493368160173207135967893322951444257809987743930496320495852243314355158815677810431880407786345943735224099217459423208658296703357888307254385428880730888577849560292120966547522936989092269003233061644704064503914286927122726906622493052685497472968590298226480621198882936450896832946664434850876996836654110287072803918797137613234177828050033496351493949471845671551301883094577146711280486146129576380805219853891355213483850491421811784517880995914629642721186422887843296112243337658815325484588490716430637334808515345611647782360235166497754072059323802880253667653606990847414970397065123075623800605749769641874657390436980855336797008019919322017021722683191514991684898374350357798834067158857594547149287192299354034132317608071200409646981621091275363177067697770494615405404073723703249360860001003034117406394628553641892589884127517488561473879673323322834740208862517319307747527463076931006857505719107521505191893998901941453814698302976047717888460629231227678086626832763852613656177211393683256502767657509257164799248309937603265576292505256161765548806455280166293519309275862995243236503932828492157584518609552590353271868415771144285991518868001303207110920468502796322074453931681745795051951151822477344212807114079872434282908785243258934107109272798380660859118004901548268742420974723775601217178743274366689608573347337656826642382392609268527810053378502780787009337815224145425932255367810561037706230118948225246827421435523746447863041238779759073746201127580116640406052305162494086704774616561737244170593260789887773642681726788331961337340325557602903627215013879556741580807754968657693575087625124867557458104602296507089338614762267467659810457633779836801104044794835134594479839820690039533642929045990367208862257420096773454303521100959618612795895815796043812522774036088423807370318487538776581302163835201088595185288270007134414253567711106707513514558886634460239448838227761673710279514872056559661629929779050078313904835791254087398554029081200381156472949342497498821070855163721920095589523231685768263334163346536981602773500728972628753098147511973678830057216127457636599604605704864169552582184567659911568075685668616316459707111665919605631375281691851912466487609967255848327942240513136561939026916547989967635512049410643421010291831387841287885285212874582331974006615306407131871884629348735750776337459645584607695278855692651217037201233244331185281444461925812269512545319808611449302549186962971117907989414326296134890134378434705490970700084484142643764669251368725239708903490974039839209055156197472577527555064820532485409761455325346845983257837430339524230221086277067613726940040466084369067204520204534380619757049183193460571709239682237113082605491093631181760370728684699534099546001460288762764646990941358238925012996541196369851654564291575883132522788168046176230515325326194875466607042521974325030815504566713092324574402882590530167095884392593182576992668721903878776927820143553524768154409277277886637243851163938463885244342856617881495911888735416471229564660730587351484733226073114029130848788393154810154896870385411324101763632640172418330214834154781795529680747739432074305066482814410388390220960205322294709518854685440215675549412675917725556635608777117635370614938503026171420397882044791510775896063805329188116254842299697882689243095071366532869931627209116637472513678068756365007126190874931252772064931801113457729797031453588259856277131495106350079509985562507565398396060186948611472209956803822601297041500416613293925128733752813521715435945470636084556536507758163665010816958823491004125188192012333218610115926287925483895040338162167054762213817291532942143895687504507009314662911788734425805424934150189365962200199503450151029538723888466462138907139433396202791832909976474612237702404692955658712421044908794903785515277009892231141354573240677997144011451557445826986252211686668172516596075640522230033568660075816329827478752980513022711891560467649506567379850113900607154016774135483693231344362910170433291335535236083548131372291046278296476640217845214716272691153664283989155060979359832323582469281495247085409632471375050577001120499503193424039848834307400350727559387808619936087290633297925755553324407811105322763380433846822083257262981778134303489436875814979993396713222977298116614614851446440440603492549925681652022110852729587865133780874071752746872106078634526776830192192666742135689757826300879894798993898272213043656030901499009255080561752959086612597550882673701565122600196410696876198186700323411374995930732089688060152837991867244466197213178739355191282258932816866352613206288371266026915326974775136651321204622099377843046380555528590549318289925363625992116798142390625913498905595976356346231367813601094056486297920190342261001041294222609574393568148739725765870039598996583349384999040569338158601934563509711435684837901670261409909121954122575094823008742103917842767809449479423125678431782904159905193629727067823669491929878011208632457330446536699508388968374344974539437698738402423903830064930925922317145549811171641913441788273054207150033897210079245210675044092399938031508797477789182421877147339371019848947811436839357960841457232168740335180414274164154826554732508032779565857533580550703613413593461843682883418259063839953683878780299890291254014206539227085393557885035294339139552995743367205335034175329251892279126539813807934061210335552379894546209543013558745021022095276878240252506003916690270564687774233659339395501737628912395577932379626832729802328533288703377283716529885946809061577678404542327081912477321960898498237396205228016814331324430146771509253731545796778343555397235660633539972462112850870544646879754001078006068833136951812310258219171281268447922657053771437462298770768051314438577430878320343523370348802414905529167610512781912227989172792081475153656140267095306098335976112381574963919723947891824458173698374198596842355714018070606546427390282160319210767430392067568568813391326474042145079609128044213995150637012162287521002914166572956627015328811118847951087646385859657137965907969022914652840938770975932500580723406925799404726431263615789479330806064978691336946020027993971140847678898838964287631770681886395234119319457978660883486360995471858237058260535767621509575114241975483875575870732070378906672869231817192518473815770346560140665516163327030116331787843599488215381621723202937657750876808117156559382174355980976020659718286109793976673777571754463063048738826155842085644706380836442542536663069020504778746067625714965331575400689080325236664676547633733963756942361339230227854893012180687913593255547608528873699942514917206751640026579313993551655986348098373690666138931887035992251625239113600505154022180070029367393552231082438037653541859334006928076453583621587564299568134906558192517657655697577775694392223460521411319034286287668821603965442905387054013077731773422111543236121812436007850844662188893678090158787934900635236277397451037025280758520693562344314219120417402638634142279926732246713810674997825466737780013423468271189380951340233356687333851419231746186184636733435256230269420857975683868641616944912824404878751156885687195365923286179851210546003658544233771902487145263297310062263774008056139383372747434675203755124430672098335633547217814074488898069462697678534378087073203955257349753346740317429307399424073855484814829886418387251045863388666667247761512184928353838209271738622277727148574119585490058631133091361209306413533304155492149129122609092360879993650229695158888299358822750802221549610728756163161407124829497607137514959912973092433910316515429473516665694253919101767633266880934567571046898255883666059227246116871327725986057956997882062170466130196830156756207611823386238724409442794114715270842995633048108816732978479314645238149599090609177859137903872891376916821077941632004045603579056444424677940952204020270876236152110399932693459925491456456914111713463301806359040598635286992820190233780300322130710288558576945457999762055546413982386510535403794582704885031652028743096006945105232125380010979232104542057981911116241592246173294666110242752652663315425107181718060371077655078263173929115250017414066360595596480895941378013438026797357153431253197873979932317493863337176358742771215933188957969289627420155556112230951170550352844877822910969587183260770568487110816474081793667447742921937575772856821809605321871448852843128880746261914149938283129689720159973786271992991233496615299249350390825688701308071925109328351030529913215193061368450365542335004442188063483194900873131864047185107266555432194941823670453005139938279626545865309694953083216132769197707740846526022893178679160950708163464246581733855280150227253554559693755311183901091316719251219581702910243486231255775176886993236301670890112049008524272134306912442398511036769829523056033753068559557222177532377831194400130220522004727792506633329530625415520477800020754927660014609207314233840299022047897196519903842038656732392155495627530605362269018666854967504212439735222273800900567711350135287941418244143119736877438193670942765865150097613786519636515733934467612632525056234677465012698056761078308285246346858391135834959897360524141650677668280359315905070976494889717814640351650117597715366901243816438099025600857190566558459733060249010841521605532954856035385282719890146183333281664565637475483652363496683538460566283233236003333846220235639695205024636231180031418042637636608453938350644973994852101665009560956325380505359290519755767794947797145779358187251244725365328876362797709792826975675996231765491924782791318673957388729976343551709099202294624789605743092207159822068872751383744497083513675625657447218778730903204688946191859502352256606969024686396454526820465219326768958520400133568534385288643822624571558978583877813784123293243570313592490353925279279110098403893386793454353663068500797705816562922620480213527996159092181973981470226631823118406285884761539677621607613708839950896194812865909231194575873183146922294658815215674126815637499162075486010546670270916279595849567241684982925046889721994366358944175243481315065139549176072739206553856663766483858293759923080334663284465143373208860183895712286715342927517471652324617545511931878671545077014957617529680285423385522178831790769871621728953320391914348125654081000045679990782229792413512161974454619476210278266912310487070189194151724969518304412321184127917820420771835560853578883449320489004164118402539866517836410016654131923061004338998823697920949384272660690974193206328630384634514661482548105534764121137470180506966448170424264239299050454196501591542960211815680066664011955247707328497236492510485351674784123005179263787043756599566343920787246557325092610419018734955621299685811721805769237284470553932682021992259887074824455493687606760795489989122266993698770022544724163378846083164923137215177408741301084114114348019942575233651680335531130722434211969464178951934499952487196353669236250658933031020311002291101455920519236936458929862649280180336752711278854784372800149741893085129698021137328176425458914552172698973451221230030562067479865001333682642443198885069480865425770626742499052492498673887868172486390546260954840077207287352407405919652860397643337076086561578909517416226637447002623085820510753243901577006903404029946325872429055116604083162174784894754561842211560787920184765423755638457497292870423947060229046851841837106357684950778782539956982414190340892203094907289680991978646684546622734677174285940052692236694015915534840686233642380767408364178786245175840222465656495793670267011905772182413525565124588374562285961142747948333121878292319586126209182627399854101105155569275312266515270250600725305574480611657397296004262650709126561070351081652595578303968092435596955622075932137052953192071681456233515890584903792226823374997992268654344204168091434638156154036494040303613170305450038228752434815809463123340040585754106035036146366066618521782190283190368418491009939735357954458180928402839584317656935615065515294294879026278178719500036976288553381583368729174614709642890266051170840919114874763141113112035982627979569838129332895494412800227938968445078933083649695142645566612839427095753262581036421717683339387247035408293049362158861375500470531616243400701890795686369412834077420617738804199514847148368136671956642360782603667419344513057081394796520909326565274513255532824758918539684644094850767023715697042648795758473005708261970804168540263252036822882080294314887184490386982357599872772255437087024609648443584591509733258765312168427163345008004708833119809928871127850807536143664651410903276985035294849160528761745256706181137503706303609526162927224334590504761672988521360344898614405043804568250551587669155321593127897315513554468866576980095442187909718720039982026097689094089255733079067394048177697538925407700849539351106342471378382918341693413163529872580172592760614771744678332276652852938165378696016767258090886341656733792899336593635661877472846679595047738687446564562437071579280452668583272782109045351200140978322720380770680416093265228557207315875861452911034076782822621704589210589678799631943651318002028920497831991065263768725528092644381517592864791740355592824358596743211419010297432405697361264149564302387278276095098748855348000086263099680430942104669210410199035504474096943853688842405165140637927954002687057288574780367199877131761860344980630349703640485263356693465059238924001615175560463274978986568580019133304064831228974597702038332645965931742988093871665595336876987707988226884141091027862581684176048800247389682299479357942447901538318114782974186930664237864412268697918609112480718347975442477197134903529289972445895785228836131022152355059901180355056299085826781449523401446293565261075333387134376451946142143662815764642784786171882901030365198098747765399493910992542503569868543736374427084738491023508731218440950805133569421888373653465886876412259552657154430219812569332418503854883759677733934862596473805029987456557055248233270239604968155422081412480957503762529785777084581106920305856477668455468018128105389360690561850872303767640462464856810623266731456869704038642434893310667847160390200521225762903208676655080847413062291270298806459801915787857493382331832251165299799679954897649487727290965164360392787795381324489987076499800553599259104867074407991865876889747768023030685563550989000349017603838508943271214737286061761294122977632485590062177847664828056547594730235747243830250888574842529700219270040698548567304507218606167261152717452126607067191234889962748755082872816732138362599609551650534412322302637676233851924001997101471183006269068147385245772528160934915236158082135440156590034576516616258329971135206573605637030388632857781591538322376495168730953901332270781183190458697071899929713572542985357877730211279587446536942057978956002027069033705310280582252819490128729433204822290707962735450091055519299464885667496688570899344764969078450840590909277990827159865588708315025917555529943675490042309091993306125502151988786473454994663594555913064150273366158242536998430068409216337619807496361604517668391419384684043974423941829029349522372686538102999825800783350424680256124351490528801391808768581765329577514316832997836839100529246033852144482143722845123104327634993002895096400479739896444825341101084539836724752846805934424395185683409214874728042418155280697066803658236491218104192871470143978321268436420657611721480347908578759574471069499737669293167191954837338165013014893774909715952040883997354661741519790031833505856555773104644615839479049387475642849933517543996299681134904746381329178145315926773007372814134004157002455985024328183892426615226989357746402296494344828927718828212148647991377409112118301500776538213580097292344885825414431322426443743817164370310224925236538328704138878392821971219007546557224318138875178476559037887788037559372441079006303443088883386394553613661331637250323489793742974588148697790344054828614079904868962159922375756878651563896207038675122163617270898033566878263309562008637725332684025087743743575405779604125959997451989755393877167211680177673463492149788807540346912275902670096740372904199908589911622919192423911825403169641454492228869596234888556613341774578095196749663799097172729870425157692084798017965034156507203077035985026919069720369530147955064531040130357100493044743323926503959506232319352058125847925228037108219230238219047822542596259424798630066473396325895878221088817617519410390554254715808701941353297162357765943914330478423175677447820967688873753852552664752098701929907906586112095773676844542788124077114865247836157176569257065491602967582491912028831899754057996587002277439463956840249839550287968401035409023596277408589935068305835116870807681424848016661762187604929550690621164545649331859802856032586206327533067595041712635760759789162200229015374715041458086735017454004910328310574164712326022686993649530938114966372912496786748603292712506569748667966906987762180865126161226623639116292781673457626830326147174605990175108067022157600510983192396176857485133679340356110167455890351778092798326582099583295373713780099016625941345451037996000007324268715189646684412278049979598499509942915979540304729426522343794847248724799830781269296099317519484632739319838231032214798206545253399271809480717977049086579005820895268645603653236920535720127076987689075147715141747740085141885779318862027014088489371671450536990492212610047919096446584760778151056798560854985425005343065932912402199192502642152696073659594740617596795827460083180044919290484962870527910330130475259475231365801350684062065650271654819961212498630608014038314058603421354747528058446222212148615893467850819320360886009905698816095477395299078664380027426031791101972523096243602494553876004411552008287105802569199931891249004414586040799385269616879405021557275409253273627405951311519000157323782180113728326925663825977408814103011080237032820944520535529912801785310306453829307189340866784264193566102755831626571922620713223669260278974519735522091714437057770953025740192629995277596607680725367612251833021248622307606616042815569112505650457479327311981942745475890216331111422469975179147015528957632080771903100401429398659300632029412712135101127202239727464053070972256913445949100982829326309730166722389817314647241801970376260245425091609268326682540345041416949970855916524525556619803204909308040720256471747392946585081174985306145237070258259552585006873486772022501360895259461591546928326307126685614138472668295558578470984922406155081091547250267654403924115749743702174397253064995227072016038241111493624411315184764364935976359024560761500292458184541362041673729444630459036545985844356579702304827575804039525433459777504355288677268315782581088876903406613513312168733468392755775277347723827871882234078975485077471769538933401930031083013838052464883629388746892874441749432381597832737506803815973860289290400026276301625285952646303690065591307068154483456620702280892169735050816048819093083466676780684397264199223096523496800556553507817516908701884842144864226737604488172291297594369153646742303659500844376071549799910900746076503025213451048791284864741938757959846977793800675009976336481450705363541180615160360250265798943324583252233130354461130360254082601606360714278130624843233946129587829424761875740879110181867629979383314366233800399464305209313258798901932127131096773779585697423692469415062039001270721967810562243352834230872133530947946384306970900102433561780461078681292025021438517393516526073701954954664753142201353618154906123647052228496601046212512827420952590932875707715355455373971087491635982872944478568660749567067374800301644719178615923025408349621010765481637103246017987850097988681999566990187430689924438564624840005519024267763272957654026325606902878697339960729248533911293679286409449771933096879927514329345970918396113594546944799699112851754318985565272865829657904985663940211770303646102573187023112499804516847999810696225980217893594709782378316405845411335931278275863760824886639942916362126733928248201011421593382720585810281930153699491142923346833897300566938648776446405628072725561043584912020108207747178578475523915799272712939717181284826187370476535055108501158057328277043956914150996889119732122930490931665656734127761687961966201953477073924211879731740594667211977663801930833294155657438167835675892236198805426326066080394988515523324597642431449417750825015280247006639840662986940648887919493121786688002749779793379188983431031444248529281712692118063676165470222505910492294113492247994875118800918264856823797713442157880416881627176850636844847433598671876223093615357890979349756577184254220913375327304450271279081700922750829393608716203656108786885712907512080388344735732804261584848926384980163612181593635523184313253746053938848659738954623663833370479704042465342689151974914627937057156301298324722823101195038878525806017829156618209304732552657860355475591511655958140800242175933577103771033659432390731707379291563479364363655762795788319666756811049014512146994341807024613268081361273851825361458915441767970891113178837456402721820159652815548842864358200321417295693203876002064529777958650328574265386125840729774836534362207570111277974142973036661222393054517338918807021598779816663262595168609900052719036658666309973411450161628706391877379449913520024601894000892552630884910280035850990112902543334024451215461206735401711483422429698059510546354340523148303918284949207170657028775094309985322714473271483948229995879282552602844474498898411681659727963621315566097041774528474672999032537303970289763086178357491584277608309702136861363816718913358368587949339881672169076110344098587645877815041554097978687571501272384489978193880132419671910761211442089087343592103146276356085619354606009475388770722632018691418730474156568013066535763597611381199266857632945754079918262796285368568750260159332698742349453062756949210689097985748987288819363306219080703281653443285510534205588595181080741680549249083546666100336580007733180680133350010495435992770282970428189652658441323445340305485834731614910153787480445128884074647486151625724021349290952445868864453470881876348768833072263667388172669948230225590916481621117510477970613391238159742126696746246491135004818116363851119373867805623363420789497331405308890393540502270384689764686404822099611731611397575980782094972250560147547360889580175267871223283447303520691628092663923149091097594027823639527824966382400612234233864793704274401360041052744074185425325987836876895896829097985665895212463251984632135526784070997016411351078846653437606798353668717238019652996978272285432251075604284345840282580167086644201637877417233013445477423063232642076397385254258869894536192073607036411438581456136185998115108056027993145724268931481808916369878902473706916831471504066609631436613463105136064592912202451075822283403731073022161183984603765635231378599920068310525680303864039015003721221889769140960715629082063086036266794242616682721308460731047136914145328160439352441477220655030576035549015644804727374548526230291711819423042563295361842848011623542220515267045196903142452716664493555852654024240985361427546685993348465690206393344108011091776642473048988362287714456972483346111414011592617996150429281378715484381959619776011590225288154707455263374642738511155461547200293932008975165467876974184595850472396595838024988552971409771652218764294235217769955860567597472034603370348226788115488024677251974259604156658133073016136788473160208040221756911121282409909761759585760391617870405051613169614140816484024747305469096732801017418003356250085761764558404765697006043342783300509712979595842038559443433572077725486230735457365250272345140647859986159592264065360586756409203249109938897881451929072591804459471662874484133584043515920339782669567583000799241503656237978518650987535683950617381303544841688510397533978647555932180021460289574484598694152980887528626326864602312698582145729633649405758232915132852437925401730021803065574171350603907815594834122044119026572922395569170090223022216665159676065458233886441020135108272290914455490913875066393985500644782738417810608955526688439180417095032594594495292897555135045418316834474535617467060570163527626063886289319283020386882329752461912837208831106885409033147082466228714168019936667585781772543166562784188774922469231325242407270084413180609607008463537004825679078848801230821140185597474818390488770205509503357488203625685310050496432851167045370671433949781636235813051982410679707976301738589300851004978196004276649398320926659461275591616237485777069015458444665755850276498227174142472349733634688135734662583983048121240922900705148118140733795384009007371044856820501424098048572161477177932511140597609745277883687672671046347245660915555628287436329868758403921616488858115308532480738830834053125013342069308638176308584484820691588642091066440262509092511186536065955229428275617990015900289789896112845924344216361757783839741778595930714363508767604902569182374795537197967919272035253379439697643285216742586504195047424361347848757871425782118874714323489307579457356312873796107553072787131390272622210927036665988667680016339358793879810370838627797140000838282503240677151164983768673248473979567876476369591297509542815988035700609965412600143061839322192273399550631768005575818743778433385163628883057900761698271355576090104312455456437343293758227318449631248370994140680326538766607023905381070337915231401940017880337873337419986756265789337353940133541022607275079094778127426905215181597880522537117943855797619563701668332401094614719338896379842366269696712484786797277788312556725362476976941051510589623967048272207990885523941931036487597489055615897247805009882314778457771261029548533497875471741541546961632071118049675649364188815041196167761930192626930693223964676824140401440189871599649257797141397389910667349994781275059938053110775218490549264506530424963613642919587517218544289800220003014512762035063820647338263706937611322577187486057413205608845041689504793697991002687885139888688838118332901814943584169088279714243821954097473855540303671905476625809109825019156108266127426545875630265914051670042229466454986164540855410328632649301431669352082392439556028675364744545035093935897412096174549369540786503843172546165895052411653484386348869850732249581290660674910923704707059195128484428509680253244146651798734658646291841930962225341546457626600652715361534225379067560478691665601243597485048242836041678544735481071537059456736852838087046643478702111029604510658460725124035751957226174903982080809293390551458510408830347598581005091442731028769721308970050746524588188129969936155964998026416142468048919065941926022830474440343849280229769375410044470694388924403155934459684256918244233436334322843219608352092574034974838305009708382035879806002030854968468413313700301217515469876875772595722286779070967166410412007647761036762346570958289567881449044390862538099963110067236732815719166155551993016318801172086792031017980911060515292822643019842812231374455936294940811629843951244801217048674257056793768385125515383436225795043834010154808778102661237629458791970710725020386664931885093466148960351927951147414421563254694766208560171679731341065781578799405255476007946016591617394041960365252910223927289042760350010510876341159506532230740197407355039596160161348047255661435144403237974920027260306720122558062214850194509072995272458069968243165774645679970802240024191284287659274480560186976859895817524068342603647682041089059217782103179284065332726936522245106116085610970191264291347594594512313020811980353363519445025855997100833341775034081214192532773112317096131048484639816751031557334477123959986762556979495566064544092170649556908744738254007966397126209577610478339938268541087936772782933706544356212099476348167463743558538867760220297591456487436222382507736664244380612273153592777418962344424457881016551741169189477360284227586362119699570032544597417991993889788174833139187358681400443774671598171495394979645103075766637201332878856164305092770392436738902453209150384140175525223170364989229160909565517992794157027513968362617392325784650122388184831891749247742650653904319390485812662876881211341319391510195583009214853146320665640747500849996556312870175636763776604360784471872083236204534976769166051634031489749096650420422376721924641064773160723311264227004677750670753200484179511711705655411882411358691273088596732525786685080661991143962642969548353574382386968900534630695412521988960047096213073093999370966455037053057447657950919422779885686941951109988513077562328737410578415907866992160458486371399629145795995072285936262291573448125736198123321708298521248556505217074842428734449055628253508095646027478890844102407458560059961958476122068767586566504223763854116467713423821756640347549057973542340233902852574211791056945044755223000416074762545311247975620200778679217188497720148956523158262535401829235510753814987639497916614872578369129198805758428300955003053552790548336666447861268215385787631870738680786705043922332764333789075244375526124473879836651338288137821200622436315102888938376753617981038829941094373834247807370342634004312080125211525676328853701337939179618712545157192168953370232676630657490513601152295113481603898384604808960540794151906296868315597558344227633735360158307315162023510366299683807771336540759425667701202367280383827830740099845602015827772189195047964190957372174414653638389356355901270254096969005524768092238085597382586641394002661408813652487365812106522460659565134869779541301477740154211696467731471473553291767736924306901300861125257363843577742927521332007495784966678657709494007714907263393773825818717677112357580537860469461029146421729542444121650651884566278330716930436435387774602439207838372485947579577766695817123097522572437519188673839832431973126291558645365496255220948286076816782581197261501021213550874440500801945838025274682518337217834943733258175853000730693174526529191020095776342458903359477000140678852743548551237635200093362408532986930021426015575967534295895839600836077360087314998461812890152494196023419475117974618077702927738354950786241229688642019353824284658009576891770784600697658578126545776687191179475779593863511418421676641441660341880224101060584787130040352653933092441004796565274546078013481079800365647715855324023008465166978678345970227215400850352571145055654615229982835662774050646183170766540054823036922768719616970788759890866557538404412347326731262645931548298189232841971751891243203056639635271110618591627209279511827981246654088746796870859810394055643848354336236074381766097723580140429024885741280000804021828446877650090169174106790922806028559370126997819107360020332991303959323236877482243395683183269030165080637836557851704477960506890570692667772812353653045585429691368252665492102267095071252152632286278105291347664616554810695915249560809031463808765683244484204526047683184711196097595772846690725518719028765296505979729161938122824568324243721324581868410630720887000033797724826906248091415237221493553638096356988374482817288865552617027574450938136173841767762503949424089446164759915413363847893812522196285947459872920479995140647751570800142968773916807700444679600233213074869954657827094582155800428328970390352853702487268465159607755359966582957442544086922997708452540271829281325203241543167960788749770122326608199572821506175305497346326448358811252649428367611547272040305212919557388291124436113305038470228272325227005739518526848790122530875687836105152073560062874157589496613850477150116647532160070236772576649744970454094303763204144984340631406318125355456758427002292594072402643424453790385851473615858731756401626290730711970169817489620499703000095040764952533835313765079889314093475488501870563294284865670282361733500054202896155481499652740468721819787303002139823439142942108722214252203633044732827879066587833052058815154413791753038843280077547124406837286342445249260945741695338082748448651117329502710809253940873249559192634238183349498584255097161020342379249130179206749634366453141746864463988439479725707237781480028836507720933523119624304835942832829012088286966867940413841390931709411803177374799595820977748016810611158724733561018132777830866022779689586098885582186542874059687615489002991733905403956112531710149289165239173281810419210995398543055702262801676066944967600160847655599701237282216949341845275238910486557211348278197384840093998145958428189987884060442376357302471678474033092672847524977598231476182945879383145445600904964050612262934833738130766194007375165989502968972519333977192568516265208058460507712827037150487476239539067266217570507453823376537941980089443540021062174631276917927155140097215226604960760647357292970484017017526317696501570672847341525339975110973978856060153820851457116072499327624673731771988448031555059594813097897039061048026465772921500291572801174303738610618880850883579836664274799716970640473999118366263473103400968740927625993231932898729713766780406881352631149328706572077266033010621896189578033491109392070232089350546589213022315718627952156744949095368425180778730042739723690781554277744004581771136969792280984161630881962507386635234100072101674308297729372514811064759357753206752915782460831958715971375331851056733709907142562117042638429742428339136586377439968114476769739794057178013555044794877792957402480442422458283806597778928213495631085071910033078647262744182292833553029984128022461418195175293875137463408356059003076421360211985604122155950113605594932541970961265090310336925358806354299502474525141416534402171743013288290254683292642179056121412091058787770832743593640946536126166321071662567736839421694310538497686983128590265337177662066086821463447497265749715707626133666913507364334718493438840335571314716847744307301772260238385826705835202557204817428081650640950148323682212793376668696436771893868920925858242718074244977750574541261569182064097680261164274607235777203558359463359452652801974372868671576588199560269285011825605168621044326112182621947785432224628539335805570314615639690969546998300310228606540059206765209527119205524919360878052859556919105277878824710194389092835000458520282451972525085331067406785706138631985020321892374979434683886187787725869188678594706235069885048619040506286593098849630667468705806593246914825993496393297171880400795523359180852240913578899043187384311723524163409617248561058304904432389214581210525668148749470723780820612404549382072052584356595093537240453963878465040031835541277666873600431183285516554922492313125151989368798483474033672745541877792669687979323826707199648250868996314113043189534044293320706455392502159997708293353985470920274360734097463832482456680631637463509423549281561475156769853163330738566194504875304234938970708238123088621095580863619242601901405406388561581833056157899647146757986691107438051351881052650621634275397546615591483668686755610842326750240243024366631153138858944337344229129870748063375956152331336860759696091734345852762006234170819715732442412965216233410851089153983510982280119551813889993278294351496569028383378347132436528872741568675065714355574958246369621975531411214140912874957598751195529034847830081773067144607681506106825764212178130864880512121770613022613080498429214109888081259479728406635689432736463674237633659058072089686171397953798648418459137600837313675910841494017496774754849450051095757991173713581526596426682267024495598940806748095536972233102823140143366661441036705260462017471832215137353928603935241670587492705248914177097392160492686192752689912739542092906901599520518145651964513812469597923673809183009516490072277153190223422307529892790403949549295999884412304220416306203649443025995540344499212068312981802968205416201871814621022392645581304694919664919220180501628094503450760257291117802907390435804206518470752712570867653556235247916730119358626333117272983316275184231347973855676809755358585067685614134743828626394356422107108334681721961635151400873660332303413280378169468232553511368800679822634928150069398282161147288213521842223997317518403236414587463659236911699192620161122723047650490001656760990603523492194201073963375252544923552738888823648315692066385270732797874631786313003024674099023442314819185932528339425629342952454863244902233459844182387179301822842074274417158231707912345351566617268185391032907210753021225002986293961238586461595765019889730805058206560519096903637165878482086535119087451208060736778748188951351405531147403321462151100894155009714168918255735088174862472081829777483282748760135926318331409409320711381066064038780586603256463610660812484330047538275083118910255854470271698942079334484149759553097760659605176514311207177498665234972504328881395280732870416977900833829198427335326527403608442350035656996358302931451900921317084920022225489190255549322177216715534822681047781163802103781386904333704684566279591459002804063310616349962564523227529010567138145012198832545170029835379036597207874875429095355864374231125182311599539831746955460186543428467767731665920976750540556936779221913144337585933684659949652286925043962115386368914685125635829812702484405303373044837288170083328914833413802674323788278709899393071133974581084947515555375274273889535543222439175205362937412790321189508430543308959094793521783265933189618078549816224088846615244479461265158543721016985674095236137171768356801824293911097753486892821547139400518511301126306185301584308874312627867293663390231604619054585497997876397902864295352993003117643672939688585709188493696426190806405016385751875106367108547717936653469734322612097733482421155345860193635796473467913775732360957720976034104063242130989050133636999881990102433565493726178495886303933897506238640023101542137866832462790423280737031570975156912973967169517671253822121565899128055983412531735747492542818504783873563811156130738752862097562829498626740710820343976884692172913461696377780501117790980096790509286209233811894713887379403626497982251634041820665671227565083275382298504813373579825979966185149489962935337826365149438183476964491341750234617702983331129269836674660856438370362043203835048020361657826052134139398994558585672181291860598393181785194212046902246803898971780851287707841585666472400848575446934050228872573003796784152868301545439746397353531408383021281838711647229335278248742862460411298244970617500590678803975269914714167014830133808925869755115943187503728160509507200681361554589150572258413860194390923937471899418689428045355227014508744688930073512839218593293888356895851766823254718235688972727238450320617241623591193542894763313994097158861890876986340735604296914692680780425939833542316315798455740750597709074915502188309989363501397308929772742686753271153178012958255577077047668890939637700438220277716657758079347783136230685745078079900697744793162934545644273671992131862874665561378985515156658411569126900998001871398814886986023785248616771745065247702650229378943563967900142412572486063290104847415386381343932318435578872784676751646654391436672992708518403589227914546101131069987762343225856928364185057276927962568500685984038677210246345964636802641959797701382247648289689029731938282525796304467619306047149884340078238773376934765540588774065742768526324049217457187290003447290457477674662113396364066038272791839344966679545738629563431783878370544746012095856041756358307425797568601867171234132813399569956972738808800775957013982557836880508961386926716918595411173140393201516055412942698153091477828078116649997357453043709874873701843254354015957134527177317009907397119598395342254622815051350412895963024463635707167486916145892336433006139204098902396609093081559866085772884240681699214413426923799368828057536695563311244743027662844351553945397231732329749780229464906843724976856765003573932647411813221799170174986264152552044888272740141474004496559794276883973905523047203359365252488447004515426482941936698656731292237060439682980291900523830886619948509316953913733881595273565047316895673825140630019800162322079977015533160295690054798979087712478062709355888982832080022268887822262382093865336473104526951342568552338154112556783792956759745347527180686976082876500703869794928311058679319646033868559927548532646671666601458196685820054142311375614750869378920106104231754079943136295056111671504680883259525893412598856656633155325872113159201373600645238610044146067729871131875131635540809992777974924714112330163820107553299301358759162474517242959772667373256705812334282798090000767251609000153122415957594178463504989141202984124391852356279571335932023657508655219482948047727754544573441882420235737850484252554364725770489665891682126643963695568015160570762216100093355547753270334809571460548644815706172912281509799012008820038288805131468526312082363471980010330754148589419034256449894532074749396398805500333555877470795874011053440614409906140001083394315121670219388778611065644698972085521614404053699471962711748864257631047304812232434870266678312925200876105156253612111835920542271180907406854935685455309408957917720137210488556679115890923355197555876232235788879907339125363417136017050355535217889730898984001568531974164770613349378083360388131135587962281367453248198848773661248110989452398056212608223560890553875762214318846106042825857590166456327650718881926646864424902443514363950291698359845849720278466476288964598382268020118979235414968087879019963708160775784247403958276245770752145416199804554703265802668372751462824339333007264623160960891627226096259188745872409617236866770320076968979187269145089773056705284812893179029495400659233234486734574242481234948500580788733045238752558163087601211369122177387452384243992321869738240421800854628612389469073844462717697445474889261577548385245393076589250172590832659520485442888659138983374069670293340693809287345608276055299448759159725924044063298976427133865755372395828781657866070011730459580970290140748100294773968778312795652311881736773231118364599667403077519382915013152931428788116728418048142973376829752331222249270131174239163311062319019235151509721179045722817518724578623939343319072261017461977802646547228473740291451226517899053103329787560694652419159787053051494092480948206430754465607281225960604519154768777972638740480100274191783978736846345184581686600278710023986727763323677812958173968616837967506448086687223566436383760506026956100700213552785708976565132799628611041562627174306313241701202100986085682790951767173808819396529086504528977682560713778641532657840480785106473313872076996328909218877964948068657964057234878760887701345428951565077202448333853002601819511957177498109550958179794551398943267937905658741604448288090455868005021978587910260580262928852631990505566359154816520201691079393664293546572190909078378854898904313824779302595065649525992776674178623194105544111586648364264672552689341606580481183488930438855541500955170005259231260620338468086311576221299967068381754281754959156719582156561408967713885411496665374817491631207061916860201867224440356559602981012758614819231115813354669182067689719191584609320370487574222558963499305014426171977070624021837300539905140805418135992674053121197340512896486414375864036742220676785215529547721118321972523348181410107386404824390015378010048656425184564382473219406309358166050448695215147899885672587917693910646050556391008737339668308367544352466838240955291057541651090743289466744422155419756927505549422089921115963032035230779273222656260945684985289272723704682370196786855966167049097316238696109665321546517606927326269682136546774511441111223015667228989343704354919007581859887778111949279555102610136391774200604055547415653769329592219065329827054408851848147933089697481583218171152561354939191485061427257884985075383019726435583439997973439820504645534219349983015183619106912514741510521332069175221926920793063438361783158217913667374309394912209293765466337532203082361709688353410714093952380806462236546266712179412730255791433690885468653432157759865878513655820883212918769567194178893212793725234867652052188375695466279558946698748692620242026511578165011699364921410316864379292310840695138219582112293259573489552508781150705591772494441045353436452381904387464924541323598013458593619021307781958477803073775602783488021063192750655593333587526158266800026534381746357031525942031074398305699151873291886747035479124305943022101721962699565975889184622704712984253451147402647837092231891372682704568185844418271378371232570390567417526694886207285400598905685399557119793961207123655391502887072851644774620025315467190281753168454615876281081774660879999428120929774762507890806590814602648785995578604165280199096453938295855218622590848421552966366229424670243106060560627383445004033783351331634513591159791471340328815983510931786790885683280796826729189448943854860061647204855452118515530207918796414004549148808345595417403090654065336200724808925139944195215112570213416493866142059003922023504243900563256103595007446217082801281877542915900948080441714839722567663809020072676694667209393741664914764385100748654801511567607889326037346613411864409462282249453784884022383918525317677574813965778068313410652431268940935181587941204587759132549200996121192291685844405005781867979003500798859664135843644363102990266530139292165065185828318715062719884640847823722554700605196514051878206731239244723224834686714336536497034406748982738976122839163194887481688842680586094341212550182219136354420981874433483653550130469999886817583010512936340662363820249607583582171826941005591421245519465265661597344726674498592284970768087667781381943305601071738717356289738317185655563420010850917914659598861819470054858305362054390672147617132426543616787146886183137758649715384885196480537154054671974864452680866720908926674726668711761515881715970179798897879617568759380868315309821710434195849374462061574258420830280636981095138645767288912563646632689219864313547529844396391544210902769158807040508322774898824535012787468348048725925720699951733749215646731006793467266726053697721860067873261625944226065674875308994943787497871993475788861771458448573505836299701572587310537382160965709726828667094301599530051253465469956510922171501182483264914409590684379709633312523235423087041185512367847924746463381363672686948896558859664809946593561303841968097762957678147498271870569700867210391399774654420716661027094973752041787549498857024552224476710213093578573323826282094060447970697154673413528873158011424208851935485506089128841807975704936432052782399763741853087732477830854545289171141327099867285889683249370496084640555570488385688846033679052546372523157172381066041748446354521987623848902120375859859420313167714480596375559716275244236423888780057726159630422793612127250970194642718353295360776258599372358103514004025595369758957818872836589256482770654851436761813481842784221399871745453360955180371359138911555131906626555889088975167524399965648164983331548290559499125835144517316754541287186107724979148317404598229950622393494413743803909009793403862296945863009005884000522515904950751814053127000613885766103584117154325412118038109482882126828488042512876776922865014974158016152777503254703446245121650054031728387041463137209005163685790465925814398657241342652342734614023281989540502330747081665055608763898899596502516061115859214037794883039797386872915334873325292491078942439833869247637985373863423175908666925977101567505391947605489396893100731193400265378927523491996479305053699201397404947178093008812484832411766679918142215021590896282756141374304615688869108488531249076780617582677734189412380724290755620920436641751902844996492727596665093976614825819651131038341755684764812849978900961573259001061176607385753073151980923118462078704534817434695165286497687395075194895015734135839900385197378647500146710646556801226201147776393408571471198644084378541664639620271336027399860813700886982352840919123310819770997679348646214811444702873652557066542502463422811740376742980918177085039213712222232864738925489598301559069977877191390619348143115028090303618436807046372906558137379276034075044868541845953302273262696572729706726038691417881626101355463029287087526028947712040053959012483196424457055914463125045958591142271299161755839490612800002519146874420101555268548658155461736827092119724973487900706521365693552843810173149753497528768072811649253963630843205704320461975326191855229214842155771832252577699127560449169518578435464666275407979697001605320649149701873641869987663368235123846024142511208809905632866969427904109617586262171851872930427852981948571927577501073347287592427157162377436625200487800022197452874877674592140874038516643851750939899851723207933284357943067409912493140229355187059802425750615262196521783133374984304170101972856408970518419201482891591078512460196150532854882126900305726129494188439889565653030018971682643047824926609711397945824517087449243990219269783003932782118813444088172086933826435259557205481528020437011231713128592036104057001451708336555309932701331380653276410755066097403921136020996625175726009902161023728079035530253279825403672539524213748069044971123674662204911130397792107770637865931789912698016111578656414512138967587824788172556392609787626658851167145950488809606045188540806251421910169418274330243881396467713545386199037119673745986405127529370625360717387505787444347580416309081280197197551688788332636076486816161460381878964206933713836321765060016204996031240865242639066199064644855311614338573044930376319674976149041898367846922072634126321768197044811550678931729632588909408264063382370219959357577714913924234752035960676792194666617011105072240298335035104905777536203009969750594803566502857863103433749706648563787136331868033703480057814539810678425275518347188385491435818453077061276807376518971646521319016625954015553551789670204794101119203082518040464379061442768450746648473718667804072816959281410587740426555364328861268994466315469711927085652053553377014650690887157168388273085374205628237287312225026049201436004290474973983820388767144874518958608719864686790177161121720739356456128722815987170397044156194689639301667045319248463651213088052279850409660154142977002802560854757909021174679412422224299621887093790370257281003063712815643802273910797948563686847424522348662593806038130071196334108138327808850852497303798290388599992196238820379385201878585705933450073672292328573759277071978709393025667520088383171051877048477265811696590747101970788010203406404224619985781453428224896489228176236083863369839903255384633285171413200050509217828693475042742189321434549048191595396414864221114930095923935529427509511492213441956321985104984753628271652997244185849561509638718045628092929246604563984234772024028694230803591295293794450828937264789465106207872057915722541105788268605104841443733139073668696819844911518659519756234734682478605157620752845866466733475501009198186651664219708138279513208358814430499761847002979445425240366534381007740740051818951268320137718687808212438172375717583958734414377718513707186200402162206544464200279826459332128828485167413852650796628363387033628438280544166805564157456788332400383155365020026240410904077299195868383173624690043652545074825354414080704769918685932709892448417053738247249178853201577984340773459880676388999089582732605244800194824761121602200111348456183124126094767144252474206439000932361813483450097890755639726313335785453371805995863927103218808501515805387079910820113753720294589499516067045898408292815233807172249326368769281560586655843150637444600908101294942333051652619390135670211959999267212565560150604889174938994285118503022602219797446437778440183985864685578768716122201426532041270526929649333752046171943186639611391444090460469580329926140828181898389721581029531455790399817507899236317002475196423990656974814226765407447077394727947737880349872822273877576704182222121076132490239545753247566389987963897856842365009276066474340745499202130683043009768301358970441704932850563108468205252732002881557648000751087072187203280677422471968350545960786345421392376461233674544009112504645110374047365601230305303218096048300035551448350929448084948515455238523062756331516947650616868217589011399520124011211226519502432336703839223220637107571171623094962374983048893829094290919160033577503092013089401358708475023300295890042354784013542901014953704330150228038775316374033599938447635099243975600472209739407903388041373132094960978216749166968618591892145078626085394511915244628183086038760685752324542699310707140822586139118427131716585920323185154340708417386434865480553260397033940452228425981132667549303995260124701023400679341877246403408299327593187524644564420333313678688972254433497839054813535213682793425381729262866681874893441059907430512859470868686239932785290392875843640041160328993949790420016318845382601017427731746835869606462400964745057959575229060501240133493478140335832577328669825956642564348279283902248603295552963115882703019517278202846022563701028362578925298930071153079439895722824146243824084824192203782648804022109090536305519561147606049412215462132321917380537962916207504787391950152720073724857415355367309067609883866701768039103920329225144487954820780930309885805525832034466457491752808011984433649572172511753760998527990245017429156487310357399028912609935239029991032034110231052680456737261126657528255345914979046272966125880349645088127009810538735179542378844233409646811688719378254669903370984031064417100772830683939239063616146566820051413026074349002041454214679109067899029720919523585372244589496388005664937291633660614181409950476986734056238587395242222497056242331958566092361270460559503234251400792811842686671120658456748790499520155629198634370478631827604241680816198748047371632197697502214889366037494235174683891718912946863591499507140026411043921270941859427163030786289828409195987194133942023261146712414504894165206476012788848291932874054692722564098285327129327226632535007775918854030340997243698496436975917912120784759340239047199001336705193877092962334764451482657880222144812219824715593549112805357395588343367834014870000980798030916437325330430526102193435039000500465341274614728825399306603498131252883856508813365832238797662433175477002517415171018766770645028783361772344164137580817427348357508297243288886431685548679007587612686840217771832065565998001351038637021516674057195543190120679512801203091675322757888487513450511829217891395491835311995961020306361293613491829562608450169565833231988263331969160970921511141967556499506225745350603951103232948621254428737487481655364876499576554146240577272385950308006430133485923057502971926524166166969783014282406895407267515902106071522311714599436745405369300938705613190468080212043340269378912531854206547160957610860824244851092861001522305853559750848079046036278060298547659605839618013011255186914307710933405583485137828393523051403604468745972758912489331029105281270770636885683251363947951635969647878179425841289881301235281558317894390591806415006150456392799515352969133085344415908627639329572914544149804600614981727418596128289248413097144002870249179396748504261039386493751595566606628837477308315868874763375451740995352182761569015779502322977399221583458822697445085551237788022178370943880498453709677676792607025837875589353243354923505628205933724084719549796311216184113705322898448379909274598742432479058638269933153210039362757004019854197371581118032643634949616623700472727362355838641126604800466003222650715938478507708731808158977778093345268793873837546603153407762973675434109634329709060910595288616707911209265579619796225053568691601628714013917495506618410028831452087300974571851589088679144975899141156575069551913075280165129171032559781123665150058868844545530094637213268681534189552688490535276189957719818957104337061272226862327485125923984591663562812453023931821065213955981450873022428959709852520724195717298029283009363929482320040247443431081026897427897601588966435602158756492766373945299084426652930068604618431115322353630549984921299220538310466013862701897057314637745301406160603286648862996815494294771580407997266339152308330455542894420662100214988075740219514749311914720143020304653535895420609912062418381563977255371339885370100419616837954935892399515923873419212738861109894689541276623586107015006319667613905707627456387606251386774267143716500055133740390225967722709397301859881136405354176612747610258781425642438672768976650958288369046608692702013903935976195284808411992891860415345873972123546507256588554203964867698207873369276826891035371110115881611845232430923173607406935967034811761808223265003711066129478094586827839275110630693205219025286298544300829873005042866564018206083649980420552416341103959778568562444315283595276397722229155643711603823266668030030748456847435182522797944913702520390441722589257191830561371372892657546794904950918995437174637221012335959899925582018371785616028358907170063644143497778842960545406299512977312546815503612107216469750073890506455007636558814879111169720111847280351497392367066969148551682449611654059601684401031050725619617007332284330452128114863846261841170688926235693834799010425499825545114580431572621197294578969792772766420288459974924386641781900000775643870819882176551539863642009091162338149566857156497537877307656393745167352181431427664006832579957594654869578303273943899205583763703957351646110886383467692433958417976603606219501232938425313688522285495749484926664553275554549041520532871638951589687347141735050029759561003362088215811760775050083151467355598307063945875854291191818609030341514178495852781467390884792225306381753705126015876560894322537428812048031968384841493155497448266556156858796788696170355107419682187830248703745298351161811658494208359650907932860584610750325848064790936734607076573656571367354921925197307958296033581163800421931253796711025604595181909635914168079267338147932563986005429578737656567740546581215891583949801154350745568858044584378359765012718463872327128071112339470667773588245224899055366365299312978593873339558747059607059383912112207430410701098466747596403009549048627235299256558780166024828941507083975069224093393622962849391157718049216063065723557055391507984808538345267024657787535159003945052963706431977366030649153288291448677487153038616414675594754946195599529450813678632759302398472168835528377884959096905882453303238564066489317031733801673096284546237985223075374235738811372390288138339971361179193899142539054731668190957591738209984852889486552565423450750217222803153001229431032507260258449580436516213609509826922219706150591438681546693535849348359662795164351700786835735746086612484975757236075321993830226004172604243428502724668020377600399034248785438776043177308520785553624520710369033609420624866237855959185087867474443169046050199402603661589740585921240728506254443324750776718791359187512984057277658665631485913451602346744747904379128745961925500199753589278987145073666292101416457903287581015223038701540240335715200098095376604108264510721209768832321287161558389907464390895603233521446268735578059827342425400193440609888826940015978102349382490968093905974387313669303401250293558954689160209119828017191956353441975263774933721045553115152852199995083871371989169982997653350491401766081163866765984675914212724120166940552446432149391148197198363364265843148321344712795619755326102862693413541391784584452230914532259371212302382841291498357604662956089941749481536101293709237475971034012867986213119338234759893890194825071097796691232182113882970535957271325400507369467010854949228887349730736977334067374450091246063364841849804405237718545874993161294534309076377549062337355210782031469432970338692226955226693402196631171813117967138896623012833720872827463524138694860260710796912365215913204954700268979525175621830604423081772661710950070837973306965149130520550807752079692926694441092930243901996092293430652020181028316420505651778875571806953963718670678149949173266509818798789353006756905878360013034483286302445151180522802913205986192575962876706332635279339762492456058628404587727439045541043419621913458913532963879841400233924723172683625073118497195172161059008624595871825190123856735121769185430636968160964289179299624111920769991689812601607903782395133829250463903757411261747477300404515309931364370729739265628873668076076315323475302838260921135412386000101307973444830039804623129452865882876352383436693976602264117344274946037912751426411754506858713047363953884475355924134520744130209818224585898741375083087234054391560742865666477344614632816890535477916283046260600807130060722224516283985852235975801245364727880474882529235143256161273510959277899543649396505733002531420663807203794124241131012281617284287309222805751117631379818381665958113513216741729030756097228801564134578662832723842859701236450314368593321226885428971379905078204941440997589464908334598355599878528841203946988774737737915195262021081607927399137834917591274571112389566668698737256381285820779459786714320608038393914265877885144077569831974780815397368546239299168792410887045176450584414898893355494807827681498533219040011418867539647885458244195846765406681312764968434993673009653986761447634366675321180834943004457923114589947279296861857962679401843708501681873940503902619161794389200500109030100335992889928105222538903876154739156506270962437792084613834240551467298171486271599152341076086997578697907257995673818455941452458958140735928034232025750984725639896644140991274111888795425176224775613986695685250108201736349430883483295342069405893671118988829501329925886217744789431509000438969151360753481945884988606127967342557313958872856974153617815006745521577240475052394862616086513769494607015128719266397978187379405689580748271315178663834020136738973420504980949615268207548882084422682748109461779558136219427990291018232054726138872074627805157610115263864146634936656820172562063490358273001909310156165347964882894915252981603865977119508399344628230456785163185669326113505652566648550512127559485652762696386542285459437559301866901001278606205687796527273914372099448595778929439185956740872230748668285819719493249138473659841278880003315901289079267892142248826615911852701097722785349798095510979544491956283040161194403338418469582901882900578625828161540004544084455631698995624872273473225792089414162608754158193751240011447393039553145141471739575762882666528489721770793360883611936955258446921032220705284193052382749681142428368428082208795497085970779227733321300356593259118079761261079746116777006215925986685496126496828323150327121812770305726953583942811072153307033316859907942055790215116805740404064343315585848015604772163803507941585410626882911963849564115450797230854290850391242636418854976093204432756561495981962550899096731849866545038109262643140578008797458556418402737515799127530713946924867191459062901102590589409128220392931339935872503138395343086984772197566890894297569326181612588605152280806030295784507304614911300098312563436739977018079319570741969683719685439992174879958523819396431475701360488725534199938046130861925768602493602723364522579720027869480427736417675291217760805914724209052737823412735474826920554408662604192478110953497298467381271713023766051487250617964485940542264037037090162862327523750787765527376959442702870514303220480763758112465428088539329791600530865190989441430729705771417378683774574652015765405522136411612739190971456406009079922115295522703075366389907290064866234695695634962377177470812546696854315292628433583403531213248154226027946315817166793688798768952689539012565645410193834266068261552021156095261203395791581727192700133088018853829957150597783554977583544607507117120213787092884291233903099629297496799781447645766905303241454287658279083296227570234875703104594112139903587951205811906892475671002793914098897707411708290254521709295700426283778201896712487533728494192794762773306985945331473283688704584944111743244950810239498975004689245583561582328893439429118708941678701617883371065887325734510764585784571705611764511628091125877854535489547387581097823361536538194001699938768132656768376235227407084657706367332974104441515136445323908787194056910919782439169599917758532138374773051045159782392356686782099286247583775514664116890124308621901592300801156265831528036769813701893113880581312107016211703515419226029271005356030260232433609686173851312442174387553776271410468285451283160984879344019693071386998292654050598315206598774532461088942440177623964828803222635556799441591249414209869110247763027115965075115263981735859506654005993898353452127955222831613262063951463192295641712120214823985643055927333215282196624570400771176764485846065109452983953775258097955344398125599159056527733295833584347130519473998310315300569511920408713163157849754403391640348858479976516769241828175194715681508641971387184740434676135936699950864366349427201097426039701205977028160985588215308915317462588589323665978783660904496968984516126143860731868321278794371004901052981041677525410513996370848537044919437797732383594279127119242412247805435118388933977743227229025140450348078550285149391787668709583414210626998469690385637761871067135831509798441456431515068190395634564592403538651173060385075899210288078728076216942384596691634008450204371369092945368939893930166036068468316690367986716976723634211098279322493351498653395431653138965163230821648435568528211321756930098375594777293941071756775382597391303148591729063210467002478712678151585161563476143482950959842459262550913515388879925539962932129461740529873048670155468478127997644123502128833108869087200262211712730151873112741055828222704450527066238589446251568939277770850118678273859535489179316990307604582421145027380668880952362626467022648985836510604936919332326825886944562759579132993956012965487631618974600484934321447112591258704321035741009099220169122521270649796763166142292632502126531269560435963131805468865942499441033146839651537970883276686282989958523020553622721968838832243555390433000489157425538914950598403810488831392368372449602119873078322260028763544391339254420062374924022367215054480080578225135386448676682588153365363461184238889480387435265164860971014348132419839265981705587524929715478402822637332348227325839365078697739100914952450350404229981079496664611824620634890959917207707944474107043068981146176260339671222304211936083590286418080728053343753502859160529790908982741631774599432770951592701280377517380870612880071286890981338361235736810112381963397998745166014808569840690700877071698737625771838296693101300870638555599613302134799727758832065481860751631739925658463336414211596043359082539338559761174033985168856238994907954059269612014423184931485677410562971837835974967632578202114627229938861812283799968042522877371105469721613323830407406166918651963142062465023250172517995910154417063799783019814760780815249073534630643823658283119362567422463229621990773555003677387999598112022102505899183900440444035708275991919396108536099433585363933657179165178303421782636181789684257783413510973983599248879717105205030671082341325166518875498210264020793223225019153766564326625872452329207751040433827568054044202594635122240951432503626202450803593828769556977394640027342280963739302102146807529457571182240162183782515667829081795292151408956439512170284494691948698679521606185776743741956692774386278328382698941929712284324724153215892085564634149844558854903288069857470107244493550828247885897439320272109133889131022223783106246552464579701931649384317836463594586387009162341647281525030314869239675989369093487697719221486631341727546271874243226851574230481166787591242104591363150526347671891629123394082081953836185062354350891492226261432559247810184894800537307765954566830545689466144381662856329455879544589601443206324780589315346438109572607567144181866175136787019597665931717063783651900779370960891007393772055775620203812347087811471288174457431056455512703938077135227300342889173569074386491307856745236131338473825445591582914313027112176180015081264816437074320723945876918717915966920545721170215937424676147853163887999247382998828022131588906108092298685813175547261744801251349232227791185012935909157159820326338130576072323278966281483127816481358094592467530614493989393386272573377460087033107180217462418369293241306961375683461403997949789052711775811539119381110310276963905195463594612385975908977307608801517182996465479662041870535331533136391489102854603473095257614411722217546075511394752236901563782436437470160788296172530174414453949433690645086439298749542703514019717312091547078619926753727997004053872103566260555587301536169373133475328216277892969819313237511764317751329380573490191904334128756374166815988267040527914639768772031849097292439735481085190203998203865001619969914081444738991114899168648494263672577597137546343867124619543413691783895820399796135352191851119649042159500002842819577147461326251219950406188043433605670720652705718129544528384131012858806653790727092856675290795955033037704271809550735669806836730979708564874721200125392367743777728515584058058322898653584789577614773502691622412795833481586048112585616207085017301955471599369732624695106635664604398936789707000400499764919628496184409870978570001510326651029602760364878932824387985229289433834514069989524793987264939878943195646228499777506392039786344612387127331762691429591610569961016638704664363039764800051140058496293773157089720458369159222095027724961215828503267682058095117192352004952815316418816126383813015595841537368189384739951879462009409311669550109933889050006984722812425118988219546230815801347846686319613381346973027096395517535807500735651904254243880236003455223869838329306414711612253556327694414904842987958684684400904141838653633528221759096705743042427047172067119537144407054218821875363009594746362913980668962707642639142397651060545910824787542846502452017384782636030034410135131035934890031342674074269549525900758465401129327759847529912229755916927804390011806372944400476552642806235587944469842913294376763911024147153293543868638521742986583437254671666273443264346171548476643983559383939945725708291011902417722886577193499665814554252488064707466497798913089332298504129270012731454992495612673845502903942290584984253652607496270151095247869678333145899452581764925386065626753776513613350120842256786343514975816665415451757135382083599810229346827738357934370479177630976481489209356057134847206094935461337905578183733636965192360409939728354899154704821703175215276754997226306441253301223929366647938280094870163590641749736403971198476584114087803553376820590767682021943487835231637414103158021281091771445172702221395577176926436780449123744826593329319495392607230974483984120256794589748271345664446812566053509915421668122693802268281136335134126728553796781227093942630369713142705564517595957778716964138608995037710323533880345513094240856640800556848797192095433446620466981467208027150277238069706519517794306032875259635812925193858741858197875638848852857061591425583489011564575710206227487727483122869766141007781875991701494388701454263090631290448281056698358582121605554981666240354688963661443283412411089041366287595137600822521720449752949040413850903734558670930338450395229453866808333306564094374529027279053865077616131879234224717638150113370627314912682205636378746451423587212983249704929412893494594137030080582155736084013509193103493248213863689375212656180125543843621554064684838030004485467724451960608341946776786323880774180705295923983692827013669451043374905452538467242564620299152313971578117541961237769372085022473040022458528446448825610009375505608627554114972308042288347540430977144798634734066177244810335674339954324036452316503541984097681822442944322776319304800687913625786186849927213140434097394178215559355798174087250915191690656683374010598459170522039140334512308360031457380186293378836276294355871718705756990962054380580655698377184224309277711362146051799891474916228818880410043419635392248720648956058572064335408816312154003865971571549207076457872376785849187285965432674058859561736845506572266485541255234102356309311645204388157107599463371248072927329404310152533604418374087719099408926461703639041326074168730217454886782827540068385924899822518435856427624685533423905876795623491501181375810463103511239457988503113641322659918401239861905769233188138559120788161505434332639345017963429063309741887094746917682240330685975828342885046935177518440146431684892778897824625488225472380664336474801831520249022034666585253801793557230387349489617256708482134478645583208134165004340333929437820137429558850266923333048667866472113249006596049018412212041856062286935109675876787933058623113824405759505859594307120488194965547643931178877048971110996322381837698394259640134143131865224339817061083976325023679309643546870015342709542726728622856541136562893399122358610300138781660372653220359259504212761874390288353588129656139775765915958029821577215083427863160027308697583770474676518833621596781433374760044291521579638447987148240386759547252109232318337923803118557274340640361967782674620453656811843262943666577833463179382447940421250552189951744591650948351033502355122652593828823126731058522294220914803530219644858907106151891475545745872407509241662167635059142623960155129125613638851598173208701579774187899335990261593201697170494661475049012786335041350438947581060304447613080000363879353342407645044721968141459198760014656311968574820479465730533306531971662588941342501199948527717271002807489195296121896529413171585208742561145306066071978182234355366166862468696725433457341289317120238005857733044046692288652968315601934893895537228065673729540461578742691442979114736820779146543979316633809894818625017255619482190634358175652368895462190145606195349719853069176166622996720212165012274677920367897044478813198650031548110483203693846864701383646276947614311403788398965016387067776465305079433860223391331237377379866821732526503191437803024128688385296380034338401054136767227206945543220392985251744113030505448658028623841391452196640437554984073136839092113385235849196794609191719803472890822497787230532154770819635893554467818401383651202969109835270448293115116579608900985074184500639361644881254625225192654968017679829931540564333392309078224311830442195773290917028394753182841675962859742136111408758043756001555403132392506195407379388443907833069395100795034099928863985165489137759172983348371353180731961494780762177197130545303830623059405531429086312246213845051727781120191908770816527696641999572703501492452568521431879507386116967711817724210006754715579765267472944629880497959771737785767530608637510218589373550611218197913679535280261461402838154011543357565264673078936092710193527269138702954579334345176178035805937418827536014972386259769994020518679660406302189986386268050279186652025337198269445034502622425411316703107860369453292242162142182349941686097990177533941162024619720660144892730945498269771535350118901143847293425408989125057509231079074239048501692053212098067570270991193421559650000842907620908574095894471259068412068009911353490848524296299881733377077584599147892718984029956694675573671602007899420005106456823641423706498703698897681462993700577871507062078694963807837299458899288007714655885405203866979204264654697117676526775276527618818958353541890028573841305488466192624602491339290604584131385930405491222725157794465340449379857355843140836068899967461080666900365238880163908640780137464483712569955962767253604288291345883488264604235384667886935221362767166836824832840075478566357638256282664338116589355740481367875119067973939822699276784792304101358069815954107727470663340401355319526479114868799265043990657054916492723817615843570263399840134957593031556804036773728778123656030151479681384954166930185562299879142472727771423004915576633317526741285310085166768220101146525078672111564725952017925718132047438591062801376285401691177822286245620350787236559054615604915229762846920852100508545717157954602555880202434483277902137999404736122014403226737644016239266314364343120883862665171882458646531224997687313185527601600850105916542218379119269662744919598597824817309455893837294043932003603778439352162412752903342915171351054247958224727373815406560634660888736121252844194349573034165350669767252017181638444465952540764902768073791651135629187966525523147948533905470721101194592117939842802046407222470100307382703609595190555784160101015455319728455821944004556844288882459382763011808943231330961664366991998599116840323190837375977451521716838220371798396826076896800246350093751488762517328233375903672348355447492756723540205101942769723990529873212871671897022264899472681817893105549296582382029343999632151051089614885161102803043447735310902808525882235894368303816300061592145565466304578180155960998965117110278584486148815578360306777497597851078600130758916035791429795979699764751162052613912201474361077308722165921234639047553383022132617029639086071216046151925504489169806201759180961816794760598172449128930840267745599747784987614759008343587006502023154905247828503325190299901179548562080614805025741427147576868491426357075735786450267037607117122004696909852774488609875738187741139169598444208696054750250075725538350599205037305650930134642402118268999697024815952449821150887635827229682957472886561379598722701868725299011498159922707023230827036406436273785986798311250101296027669853160590861212113045073572787459731692668343224847922423861518727913231166283674558857990532531636916259741127074996404156709162726822040145121262856016277501764937189537743912514460863763096581791551830247469751708007966258458371235163419967390661005963364244524902380996689263889299719142047143264891455991806643131653543866600223200005071200911225625088937964241432015245902721150943196549440079133326454539130366571217839309006190786014041012757186679601405095738351017957239476657245963051126930413820613238401567305299658542150311258675175822368704738154107507560914769324551686781339394457120920215171760393802514103778385217863959131093360382056865804180999384870234712047118607559257529577080789455879119167274461791297783670641621055695966978225856597199158482986772598719602844490499494861112191764244276064780622238732076321757245704237416597105145003175282741493534035342495343749485168706556211520867239747528872824753588542304256601712821571969602268187595720187225799660572134931932008675399854448462943285435554205932364515062906038635357940099213404150057397217847751904758434911976705967276466920447257249786386943156707018369609005336447356540055516340992113617757387049350514869294362773184756141626636189963426723928117174803877168468773781188850386992974914317279257811983510419596059777822906491367673741248066180456122403211626550637429209097149167253347334113527401436407675152395709412547424989823052500915522686002603640968441662497868722694416212997236709337013677928029829216275344996079080981274943345295861079171384294233638577209346686800676369286229886195654862905889604913622445578799990935147507054963313352879058192880475426902552502676553629896599063954774568842042796360872135692897780247608726126330293695635070128973852000680333783593787586809962777932140199327098140859898995969257241736891895912280562779907649911243224083065799587088761901037244182927417924143385302170675141230877449316932796750426866899335188734065481189557343664098471479018791595748162453271378774353735303136814327020768283764187477669648476748851820611670945387682069560381816080521863091198515466852985104173646280389626379478854420677336438638531465871309887614693269505685554895052498423523074007708223943060418322950636900420394070891400224440683380634752337622665854106857841832750873992105396945383074790167633761180118446163713734995979333147587120034109097996238543983292808586248131567706997042960677579736635708868742634005968599653755463053796704337993334959481348751498502337908955253774351831462836876610625327153936668830720368884805791397570718538577130118676313145915802147341504619238851647075132875848264773590468735082157529456601066142819469369848594577541364482606413957336086777935295818288438106900874118392336615604867172553411626254539596032141712746192740913559615999564999622361740058612474577144310172866999656003264670403604791734247020710488922874337963562717742890563555929096714272871355822726540152948960916275934268443548917564318949827429823841661925018783715522730779781261597881966778349007215566757426345699624961070630348122053190648646417698805078207634563284530103348364166142065766248879476747779135761990045580675535034406393211686093088785698221339297321530148005555243868352546915439673887963444051653151469734803506614076218991692711028978619973954575170139318441220443901545232264654838153504042099717021595194624472806769144968739897487075557184023668191748072435045770505575498310738695885689923156080687812554844650645202476414478355610116670959026154944178367935071669081397698063996088617536592174234830462750602886772158328794221577681595564774162293939935882551275614658081963255289947283089913861175437325912552287432981012238359101738761661179409995734377565637215838846053838880834777578120118459647579790142949394315257082512010643324987225431723886521106508083186570211077003698676656621781796002154720304138605389844140942434577010769612965355310100349484714153806354597928505545030761211291229687224793591345527059826166627747832183485987919627882044655074528319043070068640733943942429426790099606700286789674775807432707476073191002123410241175374864481462311071158809725492328333257804446367021072433167373553855994525132315851685647730550162310444556897999599973324513622812669099865233326640607556204453527351147842625493175901542118297415061311994845202574815158906734009147698011156716084801529865446311728173555624722158030247889661594605292362142890995855902442563189162668897815762544817132962790593236328792610267622666814791596437842104612489524800809732771908785799515643293870592385584582687960372857888927376031154741944137107149310480307687449444085763024933947882640030805698750170439551033786968177065473980885697621282278777992084395180633017988603483466706497325248930317624370080866924004678571793631182590384969322068338538967764870162542735160353958279337809592286907103451764708359166130103649271002831524216832111693851831880412551663943815120490719493630713196566746507626722888466069091222522374526820407874154657317262689685009688404338583359693495993834828329792265176874483391748973920898566574677904809688891103664971968554163964327150555514216033274258874900420454462080577572594065683202897486508076928207906145454033166778822073334504045171776365364358951875565765915568312432722268505686014970131147443975187282097808544727199889502463019206116537868765917391835358494541095945848001425529383051379430308986150734664328769167320275571634189866325626515359307009636419281453608751638392866400966546722218452240123671559906351529593105234750942669366394917943448397656242101708319944090348725128661759084217792238178622441421789696202635666345255518925584546569177960866393055895348299426371405956797848685480055488429616840414342974336161892517702662794658858034313217176845947529406119206602650939923670548779245575544610314241939348245041397311798121574767000551474546293956793231386462584656013993138279216907553246543988407734429458071233056946881335803909453128792809553941317277811760388773507601066347570904888279415948184200918046738226910203384851739733613734000392598283576049469891323055871301084575697085957761249787423819435985346854372846992588704324504419542106144823567973854192387249001968691760326543863761914671213722174802525911195499052476106745343734524977480986912961505329746462585727381241591213693784247725988678178711007201247279616829910208455038193530371980911425639291525677321772532561183102189952631324014756168272486172297837649391412731540982223023292538952078038344522857278257812392105644810894692552839898293022680788381063935523563112406665036766422777850045896603784377894177082345127504301962328293853302300580972707044892580902797176074527736274139592529469738774407193284109603184253008599951453680441212375927394169272127278230743693377571639941900249931899914945948390276326372884356851474331759702014697542744002444713588178179934513354619992763624546862820663459278771645902899025772835654820574297873695466643553113752601541949051436730482718606656406838040751644525360907485485494914819952674629356920178535973381707287995277630057459606257710079873713770571408357353938580175579087787718853869063545512165274758325977560961727502786498199483623054669813631627666679250601656045144982259776815760438449471353761103013024688426853992428266196634096374132747254757831913406728885652589909803131644688700221415238363060571804520467549225031911753679136491186507199320034989321978920275532310373037752011153805927548406256401842959340675821290849660958681885334159352460916736899045125742185842340378852463130491839790154921292596811955695266167924609255354559099228541947895882915543637790189372024797447713090580342308281465387378988552493270271301978975542351240157406966312693791105682319373734836229271932685827658374386790629661837830355340143213567604163771294122401773936617835018963181530727403929920144500452620176977349145466591898388395999170797440840728160670511596702682316024881762856479542275284761989811017529459225445940653976116403397960560814770194837102779173595446876775261034926488196069941034469457170203703814888552809780684859387803098476050130982137434910232464925215358859048935788159298700088100533730436523739466488187150615557398183875356029566475861522548464646953827185515915157230930081030552323484904032501631775740067699764190105558155263153509125813146480991691482673042241883418304314038731440313768542691988542945747872889676570487852522237635162565406960674177281729509986380919213253613196323289032292908918951507699236912403607730296451058259229972798350046405135934600254595291477170831460781198420743609459582936332823959257819743013160688481669549120794825078196972050750334768843815420771353481203124574436974240195503533112867668800484921556166297058756982313588751813724380781267345246848593443344357382747131371988669027137819484612885736625560848575949593375151198008003616140324744927733858247491662583475070575919125946586677386369642010297322906237319877689511553774226531048192477416691527206631122760478941417004868167200396155341824712241362361278298499328268989975722573634040085070637689994097238160765402821786860719464655025904575503881747014018818259047148377252514473261191439424295122709593996892118508779987130532024464235668984535516414822169372586744581460507977483210408518671431247630224961233591624570271968951445686611813202426873843362487353266752762529810577449852423561647497249411727091932127113351582153554884909306174161755357434543343991939358172812825120130903843822831531921256548798462402499895813989115871830951481992069838043303019172696936304115577023650230769504666024316921161495032806903653702093181529414809742564861765853516676540215662568618760415882869671184355595817411788679280813152988337841844291288419755602850211645830853699117483752120553143298671158263812442292391235045543631037683913209515866019132797163260576600217294349634845314509969639062520315293505014656226696346943957958016980299506128242996855912572083912268644715795226421414460233435353643474108140889420804370120163190215095312176344966164263321089273669456231909035205037169492066192529022309224922486071873863791973603616155209733453559978464363791351744132239881726631210036226894116221578092582943867521464881933853336097799565999832416915854497090174742095008859877138635368900723535012504797680234958102403893583117044302352135081851695899990552626566945501525296534142724433794360096115812250859680093763227767803141776249291186531633418559507952079196000639128261930799695526811096781845633569967877034714059398242637947237059543694353468069590872713801522130973484668939458548896466531177153692629594630316747757636332198455351456254769075216869578066027989688951223022980796806698530932484234414530356244693374528311852906112912197262543425329812666524390322302924484328549657075805518948394586452580318994336992780409394744613375088363260018457918021215429495048209906730341162294613687711379998292777630261190084242368456689892303625981651357037173965025691280207373158020177250625906413132686458138282529611880030974592949273476681046636812167516702076441935090491013119597878418804643182750381814626482544629019963702348915859135678088570565703594913386179057269814956998074366129910647968007909952852274576739406392356496509241632952037531183278013632172135897687711797858713545450027801375989801451872268912696304836659704090937603188701491477251896180539998985040779055387620570392472236536640507526479923827251789804791961165578846142425343676576085092716617655933668343806117312619830695246577259598335007769089047479410918491343669541307653601823899199678159834430884093932365297964043164771023112210379574094588846372233771011327160391441069005918044548213561374292123321909006548208289780935775200081464078449929064990659818377043895609021160277933685918831888323099939775306724305227650215148623342007038157004717037121949846004617746011181092316223589534764027987351525476480108802508545370411075014129599127419986258524980390288993547697884142119326334900431578271739381398073835349067207164666354865657497763393196067893560657227274751346453415769734439017501107856653791575758456236082801290440288867517449446597848904657010127980261106860082279999508122964092555272528539757500055190944526109703912484592319173221857635136926977275431376165513623428264497873357064004981779354427472066995246589654778211906939055366458754311941802214388334495088892800503944226537363259809889646833989091711844742451360553158499402583075930785377138914394098999470139172475366325003883325484820283005021526820320141239858835670139943541056698118406225999539667005300581172881962394562665006411271556813311563572165388351602378482570920271401348599706739645264528647964823708433185555674214154632631017000192390692197945258159858813581832174229383679849341315718086664699711228997861465953953281704034559654647623912684454293623411725033889360583190025951551780622842175564421789504133096605121747150059139829622324533067149539713218881433869059568265796250093634277669073473316415271875845788687486396852723736375674005351597922030264856425265708078344704678386422005237334275488827881561362169590941860474844348866077998979071887275272326551215275155584784143894069810785938948474420615682216322944657628582467806251313731503971627550537669565472599685368999417077830958159634730341653433667131656072213762862363072418249384415723314348341717020982004741260971220411390506164440472004650406638958088176748385611588118075657770765884176853004223485396643832616539031515182125717952517580681459157856992146086551796572447052693855007215813824059546485378992599473025180003406999247244369228607409672365737152682878573882125677189499839149825947167011695858523290534390998985574731116162243562236010118102396123557779252029151862025631344992383589945656486219041465207561409764984435177348411140865253672850853108168401304553399745203759999353502994104576473484940697954816738770917632669622648970331409217844094066213538024736935645310400447711277531875298120226101183543457252372601444027935007641483085380803532788946618701437217048760654161049801053684358307745515321289004803336566711277934964733366927468861282380669793927822779140559781455002436657898224367668917662506362302783327341704730556226417238159831779395459559195499624210000233712321176805474361719338429132000193927948928038088971505424829687096354935531900594272292740285281502386047287110886747102240880880850000812914048052386072578349885912011396614467028095933560523566233058790791396822936706023896686947015186497697516296104752249012087559869188431700947321399654019310612530739604977901839303768803941896063182595902659369375230188520618347689675394960452500727718922446462603275139552722190359343078801591732622616316463139105537341069524825528114398289806064110087691642148073457601896172160035654639666003119232779684315981678579985681958587276926813807224337379286580523335599613541590260702194037121150668050311139682508841360577081523438111730115564776019893404723940384345225562564724703589935724555729084112290191878096539039002402175890140743782580142220282630707812101631523225742024208228437971957873163347735708283688369120684344291788008804346704923113899253105921816932416035344417299253005063092082191456962452691786831517148642531964804095817305752976050644997580657991563987711434621206876748854184767999824105687619861973650047847486096480688664703136983594351476109588324691325809008064692778648759848820533769404638447607338087668386170535204789435903079816982375936774310370878134790304005768768765295757791529702263355016066337867655530851192129791503153258052891065426808107474620602389112297735307052614094994464356883298293476148716780022350551489105292184617186588895567898428083300013839769050310771144424671924868064258774933548362442340748696469515708402612012897850924662788707369830716357808650776845733224663242071199211508545300498667609012227396677284133600210352029033540795906771348200386692278441158064920328028587670087066298072370360116321122623369966556292421856344860722554858608953907100424696610679350515889936850270252785884678683917882785311103990085520057177292675463668642426596475659594419804663768213748411016755923609445875137980092230580050236766248209500942551013095456464596075873826555600383714222972517132133476513184915887109238236808240389725765060618557043009991582172895096444199488287920795531083295591479171498335216186406741558984107377912042278361996055852531630051241908421534914357212365103850274031149353660812648369952404945483032127419338541669062939450280132332922032110164421040304949717781526319153601455771064946657350322093250978948647583973373794482801348921896363582796164054758624229045514112353655741469907893340600043559165197753864627022007262901905603509661094357961472244024536076369076610231804932110494152362631354344718250051543823429020650111291673483132882799636773863157029871806058397359993565944979355418951820889139649490797283177140674454628175982570762576153394108655976243317190124156035585075552624333157265198562197368346353690518716632461517780615295016597402723131527259477566878759583147890508198317141900844873848773026306092219676572849303487830882586275308629502004891452106669603213466684791238845520101447709681773264586200625531635554371602384255389896159232073316759103744705278305763322121842507878272082376074731603281265866224218768754650769733924347187001150199203398415259261474157362521232093276563670587148265156024427353015833298531581889337361214450197207618061939482086172295009306243354630667613947726388445405468568718291158091823601586304869945582644966345486699351281127200357400909010145103612542228206435699618552599285309275582880407101654373333752348492145190566949394124034860631642183513705383338449839265464672131790247005907872386004869756457100704824116194864038991573136421396825326495997885547066777909945019737631756591988184970002370538137188484886074361395134234171491221078380184820243100041555997939559181578249169722014221469094030230487660659338856036649117418494818313760805338181905011230998564540744950601967698459462904830237581937710474470491814760690494365391044325468532545186893252224702970827912363457449978385277457676272708987083954699650455933751775451917210834158547011594210046724129410653802508238393773207142627555895912609239190928374413467907552339829224147185990076210052780204605121216953588576136650815423834506475603652317478614373924185315893381759476027987934839161956473962443420557127206312262827662449326632342601757871728169817812406202490795026532010746999406619707898034065883419129987173250674748260401818836188605241301836322695453071097548534486368514936595155594633730396234418898291345188781873038344234795052420860539232977911647397523141052193611674935299108014525220046446951073156955199954024587124818379463458080441578902676631729299565563315526119948649170394203341529527421586475340311232910115101090587911050140430053281840911633731536443842503778485169582248828156620201320808796181809840251632870233924627993697479825253881350208926655212583528896938944686252180455768110103888723354183830743701999411610371464668760130710009802630746187637088409134967212221499614369725693377307904904842179328575993817321542402446132950437068472495219825092649752374891254815435283103467095517787760520873263770369501679902535012396375519402489876579250333819166877826645769862058779628483783671294937836748558411607582775942586167699204350698966553721051445105593049158420540136383252507482553019128560766320466489995296032794664999190700813733588023509493927214217567431379171825066646967070015899856701468428174541647694325669642079270320575239700144681290100958105065857639798714818157302029318364136938707048903946479020804503803671852601339494008432848005717944961620526535241462973439171521436585625796574046684663427088578778058344837895785711819993310432622244657911673683171968119889802178542459969630771286589522295719483589235672594334776772646928402531547178221818686813216174808145434149410567017424760560874341152951129796844453834506567039004603488367036005830172937589121382341001960713202645286710250648407303872394745382029901915585610454184397936904165214655567249245514005604098067789604318802911570802146863342938308658613479703354802906945411370230152001403596148077314004050911151324039710184748882813909611310300568702327231337322720052572124607778073420665039930664612452546414404777330245763249132351655432647303058926165696126113062832974713431108265963174030238945642945453938134492473916836585749606936884963057521485855536727348522697129556036512221197253211622833131669432718124382866789190037299601018738060743584659774595436715654419000911880127612009922271626043917939624374972438682395905293633068392469435787522432012830748543787904216503018085639247562247618091849683235957022732190143881339589170361119650536449754401517074049569618735037725168018805045428251145909110637905407169774991232505361832918819384430131835162166146041257514592096175749528537961277141985389979908515276263825632346967295346517324528384294918950538028010843727822428504802536490447204490533415418503563526845058137477470092391621820330784087738026264081705406780814449886674033610640128251146934827439135689746707011504696310661761041027432379438036838080103382853922269961183800083969222797121764582378156463257304204602896526673418473895008423566602860417764302538041589592243831112762558156212154673070702795415270272618536519872616618646816328100822716975942114425691602976761050941474058589002117614217142182560953268543650937171708379364997957581797219953794788001783228791250631654799645473088556453359638396909271533582595975682631195613598686545006748393363628319630901541036702753940017833099784466898654922682562895097088220602507831038123766134717676616442322058688487630837739370715289104610711101134852056057961654421038297298749328984991387303257096711475458108894181350053242047204968001393817993969126056416055590076092851122582118990953342345138714596080131196499586514579208658006559433325821377978519069758163883213455499581863189173041146956881968442780051969835501149984256087874699117460830881697052475677868612649063019167239706764574052762340194963617642765796440329244851411621764494949181788471808913862590251649408662159473545213898571997173664513529316738077083460549693102669018004470294061522602409510741560336114236510838316584939325465008702912075845224922066507954985176857745139158220409287622950702438942363394531802339164357016768106780133525683939802473052183328021712422063725556619850293708722773571005647199763288890667543849656850554843773632178768524822788099357596499827735004376530811676990530611467579753806648139571649277651869877392082807640130746163616471377417840382788660003487795730725316824233613461400254520509516194748963220552182608088694982888888967198102009377453260803096125377033812464781602193716582069698238031589579415396631135899551903559089016376094887018282831375687570384692053960590525084556951850547036243374077843289762747397708610451939754491636926055010865662993254789182411280251961291902234479110534896745567022603189217176908050150321641484657118751454994958654438568700341574267407394506726578182909837308918292037244263040515014931860225860719291932276877379324997004728287085237648284765516490743520025590453972023678270863584408420710756305101266795620311113791662262363890127724724885000757109175478972835460830210373604975615656474914024638704463143477761595787310678217014977371034932413880076162547052706722011004391579582873409937548084051715689454251821728854625650090281268366977190216413342188434086679428026518450377975267786081667716376633421617182963747756294178850101374697222996866153278142745618106628421719838467161781920559165663760739513757994030771377153118077729209221518875063730026542239370915319064909831653037229583583551064372475319853853183056274738610369842787163415192286548658934994627629983467511471021221685427097313969736846387190193112813788903323578701408767021304906977917430873290483161343556398742290537125239322558619334005132801157935473316239068894230716296229210751826113877746872345599301833296021477384425800997633238192338531928605212259234570477605336371278852681895952675306494625693074298520919641957580746405929893337885487058779922285086654588676044728563983639735192672922331688986080081373870833526453971277043669286181079200956310208601907018310140898511865632113508093029187037212616480409956696142013141619986756069588651724760850902805006232642225268643884550850276632782418529836259144706623125169551117636919676903823691785502039195824866568618221030121606906226833718888662190514030669284853373434330210333751656123772804285143452004237402633463461830449806709007794238309720705900482670277925805170194483873495972921704078331325268714478691900419650435719545915683234885700833407995268040765729005123559283507634102273741113340633778070603870940177881262436609471100811510953234926816942169027249148935974404833297079837841697519027222476258080806616838166337086777015268997052165245671742893621412139136458991856698636172375678766045973805115871750848500681155848764582759679063578544243636652088458260851326787218649479041299477267446493364894960592178052214918864899920081644248873786502185065300669964004426827290955365258637713560560801979885836490822329918497045538891534155625548438393042889846931560683269013706773675608601102653368037078595131326611383472426864722061897127251566462658844372874113275183451494453138272461028245140111677162609828314977122173377990937867469316987245763587506961090398446940388788187214217449551433495699999902505956882728343001575143598787846607709691544697459620008105819851527302600879841805320477633487799173999913313400005005188181460319474208910473669901720765684544730965438870561805937625788948473627205076684423717795382832798643968093596454000317805664353954380318632167105913345344357105183322425378668560749620125248555166455376643341478211145896041277330764824740455937704592940037520372699429604093137980060281218941316101963291074364595205985337751655382785665003038784827513853215496579760633564523281426750332292538967402063261746016650985852265968158945826470173625825370686507562272336294835391849304016561810755554064762265716417571466214067209905637219806042506640433116464197848864242446184019648030889984807357671838881013510278779729282838677021719282118770436277743514499450434689918680087684913205857506538378709270659348811710730944726495446125185052109787004943595062477634960967908396464514578715763871357940834323526574316116439895940817614654145979143121032072221924398202071664604689637586905321641488370405988543439640287405292239406269508131871202579141404057116571746508890547434380867585929215090917326833531057107266122134639298004073746061129797108482376719051834708434658352945956829843312428144284249408842120488354806048900546113874781649047545644045374493798847266952922696906403974321080629364138918851373482197887812710599378559714703974250505811797448082545503418160065607413686604466506775159946038548712679675537558127126153918437713221289437547735667074614640937310522938265583284922245322281439906180578002165287573002204967241423665351990522299998152403270656394660054441198985553269833392811871652436172568647082595101278556267379852618223368666410607264926878588464922507239748053624225478532932422454646010477409875314531418528053414623824328330769388890768025192324853945708680612459512236881482494028453462426839264922669801871637358909204335493788275335387785726416109141797816106586646405021331198563949128904689063972749231945414866386128701757374992122428356282193385887592173530454005806275243685760575194232049950079911751156473596916891779944025745546850194870912238449168295723511042761146682887550460078714435754438194735444907501916556202124807080316673515385606465196016634913242405563384063004072498957813576049604800543421898078338649423410814015551508928916731076238602298317912189726707721999157245696820717675725744004076024832341662810831927331152382116243228665961557570320463235857259331876003372232184961774140297742596785807895756734731936879487155733317226764170622618802018216774317370252023571680424284317972178070133584167528790922619397001153395575961627217207249643167196649849531104823935590427223427018113006704719618490728803963284199209163346089668129032099384342805870121212688004006176717173311252160446190763560309461022231088334014027486784779035246998810003381105770924935425374680735194758164094856901486642408466196486693022516662384917874114061625699374530635521651580825508580296023417976519654452879073315751254885582343581392841252474406638463762281480562722579174676448239762439632268098623715368107989794839649907013705633863483591960302913784750691623954570615181953935393026138277574627999430674135251465507247844793519044797124587121156947056552856533358208862408130913890778076232497952310188158151557031438543220744043516313041233250874417127070152632780899260947132524901539455869704858683262076427466706004603204718239350928118410049298717319069039029924619442906116555209101014371998315237441881781051013074773218872485629703547857029735441591389108017248163012883565201061946722193980961727233704210350123033291305207838537931035793293860739057383159432853351767554667297310422002449656196721131434041785151939744136935484601747562495890643852817957705502519890044874436234774214492678092336947511016806024594985465088002398377541910399265652942431361402511830410721736513243126509390640967511046740963376470395736745854596708135559600380783099000292785634685314205833090942079097498238037729356615188289649769780626429777122997235867906474655939595971784438208631515271714983989537255638221756044443759811023834004290465977245598696957207892061973657922696177117825601891273668073443584934350607223964745107658679087793557690163557662106205188862442007274875157781577761591750353864390140501944761367486708620951681552004909849816195380664004374941556732371208618470273726203437741759068213538336941973723101551594646404929651542759329631843626084977300294295732731475587235295584060059279589160970744230142931933692911529313812610569933705490062876689644504130604033550023846640541217792766573945797005897025292138857541727176378438212803725725815451561596844476613343120010170625291117839273530576327718122361323011597584953212163726027801700772962589967010176412158975523032823268559335706497750774769897931739428175767781471790993288634547939611855699875816708416955283581339141258028792599058030462014989514475980322233512585080485369208528555913506813340207280788227081195284167106321945701741597143176880570761184921352126615402462703461979537568765590585578733048609328735541111935022780882359186573237576803719745709519834011836620840595636993482647780189098869549784157679651102372839990620902640551774489584768239977995147380254415380594531218635799807948029865241767366749880923435765298914788766811781798657144793370288943290732166950008751823727912788769445802068325562945351948934139894168761005420049067700705254019132257025252091310648011684075742496278463392493656475949599996288670530679824626609025855632160739314598305261168104718019050181711330246538470483876585118648675942319657336024597311655592266494865898312979707576908292867140534082677253212355817800144315434092971225562391316069038835757403975374732083844208683061830724293134668859742457156497969331304004298912960606694463879408093270100578145092964233028889024956178719426093989420090833668946742279409676346828377885648342396776984178032434597159585925368405250178911737916166686626165561265011823264146623709897884188454739803660138943217284270770510795766813708464642323416242766219048948573333383480604981309622052386287031586573038987305683174809544922269180930116585057545492214559415249647169336955453973526958165882889420963322715709326402529223645082253023372966609660267391752377478520833794027864450148961868290177764472547490453308674892014465606045730691756953416075210796522976969005354500394916575817937736685106392960584473530022421206846329644854130025467458351715445121769441881264853640796985072521718588894464653193218871184928187111000187252925700701359310208298342530468143218242072413057335136361496602298213488737985875380207499951566863352049723323462406844910043742135472783734613039159444331551343054221711187441265949661356856898684535023061948504757194458799564849889684498277073915249683664771781104841381203542526600867176970850514001117983079942214161205438984536356235790887192537651462358466125459147441765828922905500446596968650287743402830712594756833498086131806872978463509481982703114458869423285422526350775294435484689780756284089210052765884193210658973868466489765489345611644829550043325553412484680059385535368940436993941216125733319672890852410608887758169660079431302935057507701726742100333612855922257101025306517742865342210343055540404469307603523672251536250296335478906943429796768314890076268707813838815580113037368782243003623707317607387002633743079497459621073078500715044180982403678909740707916447801585990122878865541193736342176064645697632413178541082817426830422590243782585918163006995911166112644556742525639368811643007879114273907314134484876268696522818560782760055734470945647997366699705478041727059421486929537118037215632010412414695039318613728633657956271292178076762507886891717133290082779159042431832651937412315333072586696677454996530959150415384247542107584486179715464474066196391720822574698022920190184765399599415140536461766009272647528893587721217399891663504263832962945002639265265406612172083764828796988955906024921394664907884704074504750857315655801639383178635308020511300225278911047589491754271688181989668121320337501430510853866467738234430204526545614891291084115220984367519909116663500829066723024148172160621270069747611089049469065771994198195299293849742053849020897563227888447653114613823662827331745312143325725670301061633712810819681055881390165457801260918478661992751253106544135505136314971766855864327594158755324175682759018666511618724362790042819587848051829108635361617899679609488345445622774016983813410444110021022982112618029314276280327128289210591340517670509409585290723025804175471841871858854268854365314086068579818465658807923652651684667814795592373799563794404673760099553700795826603385557887672594494161150610565754499884937700126415734392587398680665326176279436263173760946264249441828918902910398927818601523043037550194042803096813112717513576183580418457645052835231291273380343279028748496646756270229717118379948773487902615557535666677160741566507295208617942535983814833253889912554041479602059901283354512401228277202112524668070149872408140333164260955672628793615631386466041818470405996050646646176551357599852310914281591088534359588022867944911809348185403576428774026880611982526049524275936089873545275748473928763646671543890862774171083360622417554893845770381002092824031185927855166508435280724910525463620500800829655764172567736095962336418566992326162161452937944192379248708390786533248727746655202635111749467869474360050722701657561588289173611971319861219992031604068681801646751713820808085655424501738358311487181379754132557946143536529832417538082762327458726532590624325672360739007179012511548348855276324502779658234566542985423243037826498886042463326043375934439605196381446979937214246863934806419601812804889537848910534569764914037751984683564172247509340478066844685624868992539322922383542975531271366983046678963549630382676620310559491723190708452250160474443094345497558381891866549895248308009230520813982956402574145138777664918875120353926539731794728738574421245861929628725291560974737300647545569237913833244690550580859050191620855039074516548269269417244288628585061290984434455438287359827793456936998098164006860450756291669507088516862170382195529028411357938575557152353377834714958224689283894051579974965032333331703120385342266210611628808037485659961153311927265700939977554948490900494840108834424985413423334285802769204024863987909733122867118516590634925028654682948163495034063806379993295977261257142931431795945485157341194517427169341240875147856589763117251356200153476351478889025503504336638843800233623771355615212948941989736735571254230877076361360588945446453709356225713630982731524286386577760643707043651440450950270888919051894948325437203436906699452654367931595325876797079429559424933410035951589482928360299359061872814589186713333693989974708385171613448658960807531332990946729113755841843483492807209820563890894886574153530292286290477251761105677398245587506100772647822232452196566476548347573505006514006774906958989987984811202918502091069681305508045418117013500168797649113211031132877277412401940040015349750252246675864453147232620927363133493668243111887764957602879054799875037886499497450649457013245143175468108739284747110699253818125833672565436604922244031273210311647417868098205825544712556941264472007957453554911601027661689827560968326462564781548215417675930077077657125471978160083908855225446543726523173077802355314380281855603739767623310949225242176309901911812435561218395555554173638532930258502776264691719028722306173894719368309417481720336414203958293820070714426754490391618933676091735795313636412285936017134834744546548484514319861394685242590281745756926560400261172073484513396536320627977983633051893470924617483857262273448563730970285958292328955533688568419900047561447801209415342390525811050588872095645879144852382851514600291636153224652176114580284012174381928214371497196741681409119615482289417516701905692979881463366078415751361534126441524268760947435690050959845021441781682731712881224298741027551431968564551083585311668987116770437634805767213816134496684066985490818304867833202513028522255621680051259245199097353179205639186426445479654023802774782279081819267502734068101016973787769547734906057379902881988354061178343220925693974329419916148167349019825704414591124121071265240690079058491626418402808335087644182438713774370774818317497783470201395196949040955776821333416915859729881850263808188869002549200818478050691287331388448232987080630385352705914123315498023676231314769023555565176667387589440902643649566058733073457801674788658591732212383236418896290221327510581774654320955595266086766527272359346530163620880609111027782149640414649428698255481321609031668868853612650111941586043438003536765560086252739215990422684121412295286218953524960128764375174562301991967892621282329778615196961529004111503608420508534147892965219976423751039119990758199705682685121145780905942990140189187017688303322859102036406110856618283383155785915239820665422063635532942338672616831083985096707982499680446638154303557392041848809940703588431330960878466891224061735457786430104175766907197963215398151040342599730249083502830987275430756756482443034362098089696131529239892859093521869582354760984916106917700771975333994359416475142217448512238944235897224303143214170067293061981613458079492841743925924202919367074338121549107959616077802577468770023488508716120957963257256316380893775379509526267311699596636900747709308210291626608399489973535619322764346648079623612188658196672572033367928542309140099246323918815563421946466721082122944621235620988265865645187580469777902078486807686298221528030995246975090753915541243339825594762749972237040170671582042619522389007238429166099680560848513280850434027197694708765464243580875007657080351107696628304154618774069768174119769650324769978824656896220905459869486474096235998628062403351650797423984456532429635680693703872492910805157697697958266406891444064968955337007633026330216907084099862494809759601174741232748599204149252535223258919909694344349735667369713819295685453311894635841881184827171795829045718457987192632481003337385964824009151560013853326524723114820478882947007800331437728073301809711384856432119027361869455380140420114883575819096360260044450645978146859250148734392870133104187633495648515353983835115601236540559135923540358250618333379849888997389547899736131897155793810956075766282705921927666686663593845819743718534843906449512076425711102739204555523610672124546090908292223933204660260464289624629145283867099867979563789172439296046367041625075814821929244679580313565622543953315869472280254186485452121349731254662365155105761287497116187582556336716553256265034613997374281287863209138177500351342584811206949928813438555005953993530646465928957857287307083504183913738969302313729384668406309760505991490696922480374636590495732528470501098172415057088051625915133944390687828274916033739115076145647731020055575433318525098817354999988729287608949509164867294555009080585021431367203092012291106490222565746245881665465325689457374226372644568804848791391375113802718725754347782455606479292518684663657671193621032725814133891470812761716273115805091700084123997036872980742942415884472213690634896126449128444310803368860756051593550537525197414165606124074473398769641020041932391981418712525197867894347067663360811544507375898936447997511519530160386220478458044415277536462084790127534944245831165683342935324412036938129474103877553224880728286225596855501907292523204354104244419260601454431840091072649890401260941510961411937056116204297918512355835220166286565450345076242804328117624373119612049770737172524170388377682577434748463265041662408506835012371991119886597324378695606356188752474111162820830901223370146475811338022030794259744836822212855317270495610989759693712457630996091013246361885296562140510117573257266444951055879621195692128122024306374705468057145689385918822178849312989456446838520812743779867704039162117113773109735425236336714930866393047218967669302775494471030139216534832185030166693611359464816323066366595353918884528836541436829850169970165080719272982533072791983574774694130965333052443320089032257330806521143138652236909155412505602819504239746681637289921004787816819484121291379285295156935642294019077719229071939069692467356703573656989838772821953140838195906575608273213734515150789385820283612047713504331419609951455477182131079155061733453079268927771220420221937477096633976069638100229595991847445051721335442325637371007782672981768234236062851708178318220618235723315551660166811015693390752577328327026073274765046686580829893360894602177426084292721247358954770466733640255375534641175937919670017642179439024031393583207832270294523497836342024652343572159235368165653900446499384979038498453091470068129317620804786924165747554372330140227392810542647687229418027607060420430097949325981969808440638156018729287294455051251000620794367831604916085129748097775988738207568919046559062419753664348765500047795677252912704810984430778623303925976074744834660894253943145000027892158126989432543831766045349507560502972175068250750698726048966472780540437927081566041033714150600990853654243397997263128758066378368310430694240523936288756881624357351130716703264752871751714766577852538286141181966704219846508624888754926836441086035983856870481336317272717964973827586228246701801621588467792593528346932652757315498673899057094368539433876728969400059976702440802151957563030459062862889029391642649801627355356843261761391666229866267077555400089536265337067344336633233838190083700549975476685512963507623290086808236108017883966139977524587915297384766078496826795894341584098418902609720676338518935277253225430031094801354656936677674320925107258028656207557570825900653628697310413302363301570487107979692298090800305910044197173076312399212163254195729869625661422542128798809884056664591110330364114278417111791906308679478819596051751892278561895020529925410712759674018347691034198181692816101223452973962900133913322577965961089337544928477969329716203432905735897741057958070149410842946339742465142307601963064375662693304939600100175697172505344687410884058847223161534572731322237470060519826959997780627268606727372221372371034566862914423671530812178100732602753687721946590968142719460050516288869459617967166994065092787426520959493563120801146988911991054138673920806772638292650772621703212211964684006134479318050828951672386932145771096299030184928608555883531278288920113784635359644951075951850554070110374941948302091754647424741529178425966213992756101463180923688549108273733136075699745129887647518021602426621620860173791076710670941578514170832660163397399723582337515171353171968165789196552726464897647697046173318034988012513115095241187376248328000935848852367345303535020457954956790535648722552853047326597751762504160290675420181857507736709230856149230317063560739381083346278950082358344825292339965851145987574952775008876924253951480742929944043516267825702637469696792786687182318799670988555087010757506249769815710111772583063485654735899492161649734940689465445349017667489709047211477594032167000488328492286141627272194393042668491413038503603412168593749657250754725622678461446701268696455833993392965701652560807390126328866095248038285091139047292239535253882531610649281397191791439517741631976142602642729844044178758533490546443195267467160237271622968673672731258305499524973435856540661254416547510198508193776202601408718815034085768532324510420933595931514554868673837472223799848047350928016109495109070447696947367303490906850623625163194372752090788039691868770203322843205947820545024073366350063113841754143641772179248319073041587629302012671533960775163388774286905494111837185775239527371532364937614747895340502339435735723767986508658638966114118409509352083676879353271243642707858277102292836570620266471576531327588212194849808975638373788945126598601272277009468416853251158465356683074841216915027238839919485370728824365479559564607510980150626100888903946726799398804420106043623601712355424671647692109654070735815632034732761175992209962592835047756461169655424595393760544938082030285826021665142834571455380170089471378168090089042962206086830749431589126236629341823949880321652603451371416132155133436567972613622649426734115602386803903427346359618397095408582918445470897572606975961592814615642357752775908807533495913237731237101719906744783200674294408870012025127463452846846872303662568566928904264157484698423863093664753245244916997930328790218522657417185562992335325768306972497204997228255821757260430197434220764096228985322781206960131450909588302557471486083565573430292556792415192174110764120639320391946828812879365048736053776415918783959765198855684326518290890051916974498376525539383281894248460651145249685860308598938980870253668297734160983755156541380037832361857414421046553102531290058840224114427956438305917176043835039230924279115682066144205879974980594627663409336446492485759009873743674767183377405219849336804411494602843800279223394219621627905230724325482151888270519651997771048286732563875347335265798692364382302998267254243604844146393746953514743083247131471235034246155726615424062820154140688504959002169808665536637364664554133817447404354966259266290530154734863553807971161916131313891051520246447231854536577694387797195881906471201445343676763561254343972235135330070403987082622146496481764553843364328514061552635376353118895411289335152257842495861475559089525718717437111978800746409642193801119178437914339966935754665705054051107689027329867120231530281756375439851792438459872720672565099808787853842043415196767969443385060236741514927897734799434892107805498307482327798108759810239782276496451381055894743587895594375329834877472328058311469602558385235721173630512062383180703959372828628861878801149224338383488317774002766790788710982653289869636717877015391466083746502562703609438749984759881223583332610183657105636245686855055433052904203869547075572702473810760464713850341625767264671242118586344606114748120326878672722083150080576627675168704845487891330948829417855262111130889719964821763648822411591303388963009029128345412833183921004013174550599339086148161687238729336441197552113179416124173614155761009537310840647123471212847221534243207279339070021921647592025761237284519599072554273027435377746161509983991735550388820793526827794303754104313452099324679070655182769272000011643141575812491151128847222277573815004681256515923051764843579509208308536841292933372373076379019524168402408123829770769649841561168947262639187886630745117865283466895222912949401518773236045232071050827256713504423917785990215436866731257816545877889885803138943730882538332104596452660570642575029244595694627300869402542470256368092004892745524637055307931282287032964111103621821904080715097250907988612243779432046044185318410633146618291415144817540492900891132152035365843798980518022423803640014256364165074075064796193473138098207121487428509857469867032466723362427260666519053006032867661653351013671166201344244528559713696257359594017773066428724042418951480951863358872375599378181455117846791648761779326193510585164729338108654942692899141765362602100016318241933600849602601470810761128693952222742457312992101983485182792265637062406285618977523701213160268095654661694776467515610311632186714258665843128956123131331206420675784678434501435057983650363504398488231439875558897009039098073115438172498261067200607348813320440475629895956707761673874827437982506510587571865759976843585934437658276751043448943818408560351871689670668893443926518202977023005350037123938042271531269600242005904285692577255923476511265914546445292593525815880047895476462536134688531557938200399128676499024106437654823407448237768064370355164645664694197039669581373267273600787233131529284425191284904022283817216079446810710269723336883639297720074075675018743743379795888273848853841574297561003984823896816230601768029564678512233364563829432648999544884537253773052160314478557850550916675460974518611426064874129682634835631651077635371364344310010879455629904593395729119872562456264115562019218241491786396256413189918479437574823707498957260554928062326704645155316725009456728992178398819397064418922953305351100706576756410686205860929143668209431809378835914932150306584709136999997998213733623053416428060550616892156032712128569117616422371854550018669794247455803368419023545430394780032572761939485417289006786794360689245500034583482534384988640495409100851342322807143179768721842134112299566583572421877649827116652304768987790544819514729837880733394073998191491648694970533905351683029091737877448827552854112058665082727384986720139027615153232792893315511656284036660141971572097824615711485091753635232548511578900457556193095250841481672498544165448989283714039021434820155526059236687502305723827316208285770173417090305467871165174948998364490184018897558896735352792957211524769037220751952299222373278388323407962861887571300339924854628530158792244750334307214161488118475937030711812939626903328276549387956057355619778734047321547933905077365168473246938702108240774716569144369303682720862988412356681306766608339252935182241556232306974399712663403726527182152921872686975969705577678706177204059086913632269184650743440329379759547672347264128460144836867490941724717542377081380912318257060506614724015026173509379246926318042696623264623471512909413855749951331272333928244751151547478158799321158557783660574584324165218418848141728683898761264183874361176337525321865784136942834044447494013310079555946667532228154383091116618539138728094341808848965895006099256758831235121872461790071239635917260015501400184244339170486611092967949412474496260522013117177322335889983380784499736253151910373789517872656964578959661939022608389297034882457100201011317928540434449630168904398545506412558383678634853401419804054212846823848668397095536147744246272339469080285796006944699554541314223965571448195777353690292880989123469320995381346596544094623946189301573003256142309459542897237720150792444777558580432377400047632611876287555590041367496590745906080003012254068069149312770538929337238878385511116746280380640967691187648446702032848943703987100224987501349970425138453919581900690367086709958880674917143242734169561986074538329187484626524985952620201752927691353113759022309012340907543530619825452275721307782186159980582431646240932554434047239318485485678356734581148247953257681395082465938789308217994211811119055750301521570741074202077529664930279536814905682547139942480735236681257240522163010557588765025726128239604938395484990189529315616611342837503977846785784125780639209155005220352970688225312221131426104322956917664307512469044975609980333363620666618409385170003379829166754881876849786801116880688418633368474677541608201994837508235085851000285570902121199205509601393229681176727767370578120860031345183200534660873349617888707937137358230366641421944426449887067472917665225168498778640998336708972540715482017726842585753525518271474781157166982095658011608379126147371050936594594392054287002180548380355129753277089644814720401857123656092747845616318252728186156799164380734677140950033478799025008673074320344621944737940152919379314064392981182964668643938952984661985629653375959359099109912892441791184845207327569152397662901062870112153659163110835231570039035569257511399783003316291512042095920350053041233338769862552260691790398635678932898343615775731134016585409432965290944334926753410473219557736321657163176691768869507776993587135880596351672290740690866756753614509389582170845957343028657226958999679297094437804081920856561924553144595184171643498036543554317144111540491922923621875610650629894573329999865447309780502765889446027425381119521342855869872306811168174528399229029440714220318143229955932167048650630974908016185167795383990413391048541392574206170903657829320931034045435668698064760527799264173918636833124747689047044793091571676844662066161795399256957359435455243844258858851796415639629610519110278549278263466594589353784324514628813010185504722618969743732576443210275899996504826737232174475037278393872055381801527889930792957464858983123006064931864033539286157695403281355851864023510823745828078116823615319947143960613792877969220403741454493266343153160884389730082271055770465276946893067031546552924262506615307824261796351163258637210277977943303922513156757301039177231677031952286689448600191981333094367425375956708597039811182384670691064557389637969468158431352735238052569404485926066040900887875541449082252528713412709125592348687019335907381183463137150412297616832142144196581539394550010016208736830893646922174939960630703752436982269694951267215748441647561764371972798652137831779484854305458655507008437687367577080960271901803681969163083615227247752121480104294692746343577029534605273201951471754814189572734168616760935277929064543919709304073268642225257690759189768343111048436491207394816981981297219070430380622194480472405101041368636791093964235970367330482658284053596474992280132213594792601968189922774180828163396977525775341306287443933049755534700981324324317709977834549991113871588661548928014380662599077146631935942002779906615735353761226263299928823485798493857168323802574099693724064352256446817861287183143839345827813262420423450484559261830494964425666437626401714113471234210006815281141059156506678406993612238917529409348856189039907058091704332550752993783758850051464642635837647841300803719590839584267659747498794810360718901253018722098738128057089227728307590653633402346085729633272466172261491862564844336291229390853456893539568033019345412465000146726321038672594714153472037586842458987755823195997077842360911710453963414063968631611985943118627929981657656208530206530262251102246766011617656675606001300419997473138017573489798275223027158868101870426749599846771163510793468258640873513892278248634959896828024959626608649131838242348960414909782641237127544348522459525847480327570998599363855180413243306630671784590420251661406087631713368701639135968912261260199607662395940947649835549000597208402296061017326297196700508476057041071920182148533265252805010458372681408577737755111230955460132672907589142068999264049972946696476507687973653408707674498179476483253709028490563274365587549580839590000910357154373696175531878194185006586056007101037596229172996875501285900183620016066640672338862536044558025613898523231645266812308194605946103175849669108270041810547591714678849549657798999487531770267131905399944311259696242809206020763249229821917408021148031611735628043775789308673313779992207916690925878840544806995439269506664958942058512146777613991084331998779159790204940256365938077024990030532854503040334969849059236499167780070443587920961253021251755311719597339773527556939168687803967421925089572860549693668151026694661993070445151643062256152549901473580713646922196296331099394061957110657610729464346540895458318599317882073844317273675667017299510047247573748611238340574505451753284886323519399236538585850151738211723101015890739967563527140684150815254158104463499396409773462640592230351389674580464977672130447691184810604093758064270543140017262423867456936923725861620372095290892900071542304854053679932610655614004257705876939742519946137597975045518490751473195696370326518864646335278881692126028269160744133260986413927778180483844754848382425627816118447767413129563138310342891946877724065314556586843142069188203306576673480568308760472346089774407306484597779003204312364100651452960454011177496002020866166286596739721170779739619840022894499184998867834286781356923545770242042855950203695027992945288386482158975002133205079661699524290262314937652632078089270080950771776204797264196518467198305100944066897231160650610488367262859474976573025730995115470370663152212101741508357438283607262068700311188217109242987476925155089137548640945530483886395714043516139216906026696992243217332917762014703169842413720004620047963249522921493299590880224738704669625034688265273725602173691378169770340350961149965866679030873373356697553172174314751430356231456377517172036753864923626434986348429490148184430290591669210304615120418526627503714626751695980298625959870494959124377140366064773737902678382248506036079033391673107884287369677329467718006151616412399717474577583661345945738496461225274351090693306402519824247035493965647602026898034444797004019567683192418003491764006617351542611611063614804537506711147100031123680220618094103677500719684335564478806543744860170223409432243193909729035782517776179838579431880391171620024061766115866088695232154118873093016429292059830812455388646247288467338251520535554155700900546184197592317240164632620243394022110792628525167448000106816837379179118743076293734428200368621744243801686924490885352607650390964542615463269693743537730975197084661038203725455449345600115436892101572874429866969110685336774834739649373174421244463624620740536690919496022788517644170743340289374157734501028622039454949435333411763641019782120201175437284102087097565167864076534439020715872630439649436361267082831797979820100148888291423210306384318971976651831278825340843773887580578938418198331313889785160128650763286808033719357025844174498941724825771831568322349651029181483184144360976388743097240418439438874245055233768683162175488072816610484265889110100086433925592089455776967497475292189342888240415773726951876555174290045698957920444372598124852276544563683510583964343834853996907209500609470312980356833243717637231689756668021977615711881552826941290455611656916474906170322866271954530469661102794398666895025459750465689735028377541196357102768431594205417814390459748503097867911643895358290252303140842234474565041060846206162669879862368648745977898500720814928663888449058344019712695144480898656144772287823995059863995610145661578201306183328693318505223469219681947451618414896358891471786038226544886410383984304565259990520400013765757072791971553099665828243886361351632670789320579829917718434782591131062188040727447195507558395420764724230621238791878508217842997789372994052305228910042948404972681839298514963445733528757339529727711711958727238435772757413644393247136646074652862663718036475598566870579888928943992938578154112243779871474854429039634131312038764732622236705074198555869023618487815616572997046540312676594206420704303903029538162629258225861449201150604612200493915579278499956956007883969188811968528251360248632993992806158441249227377881286327051511024044721420657865438366516204875455742294186395807627324957551352304698860805626251976154988501320481651058279194996915016331198877710550065074608468639577234143454158285536284868898407852739684665772639249465709867653507846532104569021521332443890950548926794994411569332499968529565194239012203669196975819390449935703067308021494050531287145645818620878503434264363465401014456425791505714717544895315207511600825378944101503471555281468746674337096667485022351694929107330813630227371973522147475072095591900537381873455009313915568056617261568602617292568060186603887093184658291793211185569922910201029885293986710272416381272968138986428521359036954747069954970617739367861811534216879873921721640810063465118941374034271195532290029099814398248452685428622138670006199982505229921379327108303369627871968321713689134866814091139969302582377526923356613731091651836609851237131167184600028529939770440308675583667179494463471713726785123268639270643654292118789024919628299738362836330916947337672379739596090277427514878491170471742572726941987155583593279427660588147096594842167058417327897386141908403881276960645358072751076021146292464950481333468015474811261863291267076026463123967488515817826718458264053965711261655051981162989441391767557657635857233627914802587364613908615300649251065477290139532211360911000856260517948791985235835760546014374551237780685833428866251105072518950820109593803991120986515145600200379110775232525903349130747675161992522265741092277246686131242247145091708690607795817929270645219046187157705987342137058067269430514535596242191521807337755672097152519670137027919886250387395698286948454786446360546174431514447390865137603828822465864723934114548252865550697849766307503048145792984134702647801241608157490827449942828204321368563299522274864274145177411036518788951030493682997490946745169105743028184046445683102502212890638433259689356668300077944733166339410112198247857141941351496256572664845859713371748744064574231729674988721786187082886770405838345188515275835802709691770681583025605597232480833315926483500524775965695885294872798994520132305956433659738089430700816123467628422190907547077723610764580762387706284480860671694325058676406749362387546567189585411110321048671014125982733608763574657906106713136727888270703307148372100407226616619486165868822557275380937505671027908958951343944095232770991255188772921089956337293939302875725965387554819902759595122748881352020471896034276541100515477668288978219380583120994776087125145509949344439928948433472519837470410835872624995748353716177566726969403421552732009673911268912109438624559349286319514635690304928595605698142544401155441158552206769675002881858050219488425734874402840313475761729847215348168545972314422600115799058878952096661302306964895891346197532489350311036514955792338593347239422010493653615172398134501726347581322811809502936763925733824153683148993500611313134046913237366064569211296606516203168596804069330419156866059292005889291505791542607799301731777555054723274462359127888860673883725143233859985959816292778893563981002621616537815587686743495253959177491715990412847783721256475241245234286175619941193328861460961112369548500071373439809653280664616096586285504924462770751477341353480324280219824031804626300723038958542659530674200421309109062601337768546245189520401982582675417301795208586388367546226195316646607227399720273932554548780454976662889392917252664852134936295016190041119920145461600449062329325139921663228627510436442217002353060359001266171856548991558226468990462288032376550228140548537356593153280512521558017384211629101834640497848048966888410187517649065484763871538048696346052568143785650318595583491943254151883583602555286972000627984565741690132408848405947248061563405108531624468532190090961203943289916384324464491579926974198880790510560620773228681842396139459228038901052065284571025240629729329920513375723947051918254104512172269529189584710829545413748460979937691301380056713564185929917162251927767397087310917141914873347905567227703668608767913586393557873312726100212603103675730994758626712384818237669693391301834845630658622672108825176056325403639759756765408988757574445296635401034505387812834221797326111160007925368289381856174261270515062957620868742933096894062633334858456501119286413005865716866556065649563793798752517142715440434426942497540534220999596815004368221957747549689246347524268822426227364306077023166436334686778187598740193456262454723926063088726217137027800509995249076504079116291122925492902232409787287562611233573753118047709184499998587387741102646653434011742208455439812357298490831678035664050055888717914328033993472502602928144554663804819671904931720475838034186096871578391943853585412225501149909919327948603902121482417371610477585197036880199543283435737905948094180357776722358287759868660353032532719409121630974320333475063799054555012988886806207350995752131613162758934222632911134466208825400553322649320775266457423744720183782683013064925210838521130570539509450897673996849338553747268555633907493628595202252814731949042142933290114721802462668747444049721196515388874783572930224351029156079559987296078617609667561721487217143460912134104227833783117444254017397839792440848909565342684561263988261735440294447690341776523027065082925787038948155373926201753818657519799333960190709172106112198801403203002499862133872491602919680281237582161751807373702680719389877161737140263674906982224512122519786594205749199966984457059144446104778701961406686534450709776058706338698200753835164995695391655486435760027997145923689360647522944110757464582882113097814967124692444625616297044708165348357334723544339174852616122254437622908071302764225643995537587195784058138425867407089181658761997146452273139431998671913782045396801431856575151089504686958603273162184923641964574515358542718622955872841439465810628104739425321413962699133965603361456932457765156831540220217322931624436168589953897111149966927215051039284668555171643604550794436686389377891796369850524802379230280386188775977093247402233812081739368285619210523588098805848109365535016876274805729850649125820954435438094716369114674986684655859361282165360404522246778533413365842250516805217913147747470524381544410574871723053024821812313061310697519596058398027265611501663702679815938644820604929420033389666741142850601978699965060787827033143034519648826990526583277980581810635887125431488030063346727398183230797905252560256044591117816434725315210721082404107388917989256783108017472072582219278081559448303020745150626502909466068441820942607046597049718291806920919847130984713820168899195863891013207191668462323611871347834473415641284784882926871575806800998075500554035622758989909656715647805591386114090211426545121696583250280249261832811291432655801242064397325910952743583706285238623208736243215539129414911463798323254989330607211381980245349581228008306925881908241535438295746451012337575483916571953736391206550409732035645925278585739860640838176434012683167643298950165131939535161938428601741393766571712745565436951802677324847037572120475430216535590106838858436692022169047821037749749979278979991816417039585053325545693088126553945998894753976269295457563414764801190792770583424611348818156949184227089317682306549634427429629691864584592447455798127144638691741708708167713220244005159516147955746428085372683850630016715774087629920230154605402374714091523490780072157573596633758549752084903170560511957376251071612867447522083710225390863144622221294679290471365491208626258923729715762416303538182575041604256203037031411465847388309349515913564788353573766587707976986423716964404371880183644310631947494281281250569468561806943755238572845153845076273131077995505174409620273283632765811669583883734120480027687671472425796208123080567079501455819477071673433241181621426890026930419258907572820918072299292039720016135709071207139271419317523642082321231270375293606698734877970670792236174915549694797622886518190648388905572519052239454525738685623044158402502873091153670495834266257846800961759500756721837593873014844285671826573894955459425530209389114465451469819487494490642050469427241231969221987690063897983150707410127582155784765733040700770704681158919490827385128568088877358574767124876621299250920830783434073559400847853829566703535251810229397444314848073692463685172630762395147284983738959337506614294173844857238528867565509491855274546541246505485436977851004267495479883096046341735009063200305547464843215198836797819861341895849003613154759621797612883398003648973820483669270703339234775099106610885508655904557657521016126001326440832591155575362219250398521862392044766049562246768433025452193013343667975476931479922880938250395967487871161720406761447663391367145032734923680064868244811729340338831065306482718379564437333268861068982167530153776286943501800668999397291690459638934004709867837390647523513316670046607358005120866841863237096980953182393266129528673144078694930225186393871989122431472992830384844096538940970439935578556609277261679265371325378485111366539767204178534218080172433550349625303626391380760986012998859659882542892061923379511120350724429785744827564820336097424240075642030909794187882381974833219564243665517083122271774887200552301936537436020965890961638133423027222822965037544484969197359660899665259148330556316796332394957331943444195437338334280705650645267814799850414088580050970695041558733633495603216570941928688441148266794482621594702439973821932634182435807219866193728433570605426677741672002318639909948525933067934354081758007813911469273491257943849829161899644022070424086562977115825141437887908013679400834554086030416774414674213655189857965937052614179987738521260423736788888838605983136037738392978996476567979659853605557217929828120022406317957165822218517552681673575247983264507960617258356528831438528766805586018914335159083026063589331201249800573910501345710562366137560762184718101519962869933736649473929654760456550498746947406537561416892677924872904841933749605392795723593165458658176524268577852765183548942561353648483425646968479274659958960740945649821388646949615120688195567450607116591042724351412937500056924295353434087039637921118349766259331840455067669986927943210731807102158876776132116324675963938817211951808756827621156037146472686416308029939329350817877547764400268855379013635553146921665103136536317068899954432364343957214220208188773886440365919643111323590764507107722882722454568455606812545512941896435522708564826628059537101613236191300784253673533401236286740109481189508005652418997721864302756931935782362379898138023552266936443009894209740133941743224205054873718458463375080733320748287513102692567293184716727490568803581114056245800806703563023143608965011548289930623836778935283431660641485056590069516507661712359116709740524006306253028104764742554235256462929632119390592517347087140727377123017212953408523556704719024421275909630780482964475070042089357632403080474656507605309262309552777750827137468264023798039974792099447808786275819579777300532628601191469129689871084289809222130035098083071871182570459531456966596093019588773678563252752303072564666193177486779188676456112785611517797430919907162516445109297062000252586988449981743389862926256720892765961982598420948257626431029532305537585650811546031779927423635644115297981391908773727468221085850117055884638064720434095677618718650815313732464120175711242203620405164225648043406434191808021408360634916213867449236175187361328241447316599058487204016877967363247923548724470707140419840064999213671959299749682750701681115449344735068509585078138651460417353390163581888140848094707176981132444677998523876564087814397785326328492459348363692560910029701068878506197089124544207955527414573882958281893384475749404321158666623450026244707811840063822895206674284737090139956340137145311560590559232994182583377256704774312175251521054192981510788454499927740230757847522759273001095334034073750337728341086722052866479378894868338472849736678829135045639377710993291133237162344821446190944229040157909484706620957676704645411659730539532429938452124844852543665643793539430055674805276019638404707673922096594363488169174025138346669581465312387508117438480595721930695864449927681738370384342077601364163784339864565125085933179116984853942186359089471701592828306443520471104761164668155730534572730377015409636491247066480631756720245563744395759417321694832938342105307414195597544466645643278396624379275818507019201889197830517540700580507751909761427064037438942305811287188476712010639649743555600249821198720656893290423925686659353754517186197321523576695041370679253729088968855439776763586372977673072239425584640033893541488783464314124866917704371684445716981000157984798144072391544733117733602202368530680538474228822538791027794283964097951306158872561226713036224543562204602851335220621510923265136542317161759436844659850541160654860570937009935307050616637351788389688995399266879316677617279232418053046534082291607812234228919081484201270316231216297019538235272020863587499630667316526344415174982239591274000050427505828749598203173207810238034453556302304508868086298910034580348819759768372169355538373830449252703836285941957654734926877303599299278046468482797506959998570699908529105307616880322633549539487890257170487358434393004708765938586145108670398016784610381314006478574075509771248756323769698398479526456649336220662468002066529063407466792312529264178718561925371626564874322981687886590862762745578892439282768952431347623944156297614114365362056185015621137415911102971217699808377708044712354167142012789676236390762054173693552137002578941668272400990159518344738243095220003058109363998891714216623641221045608445377204431300981134141787377086050932126311192289164071363781287203646289236510510379224930535931408502255279952729463574547366361433924645215681624737807459367585022993992537425330436634735570114161660440241256768650478530808652830883385017883237384315630947540555503933131210036865562616054507362062243489966418127041004642237217686572829903150237625096939951577276866288418369257161213427310767232252123477843454732942682555000435730987531761199881729801912535334764645303164155878509893639860182631838394152547740801270653116811045274532389108695386206711589554418163440891256580393876021195386015340727535388719726523630473987770716204071289713531182998068284167471102274162185999773874718057507062558926963187607635280471646352141857455876847242893882687642933046704004916917235375281544949074342460921873083384498263606581190769301808419926715903759066446569355375758353884559818091690726292757869634890412487654481861875959193339839810423813218870915118327111401292252188632836986892956800438649830938516932196799797588067196308174380706942920160555117910078962646471200634479393505107155301759855325496203515495841287162252745740414485055883226073257073797363663197427721669361919045702037644988329215532762992549229353110549682676022886608690364027061513420527309868086194763024933069862338967629844036789185113064095907447924501135206521829544128223651450750985287176750523333098233741757601170888531666741770312140658545694016642615621901951501632270018911208178128094925090963116454660375638254087698727618987303411188683403163425881869082677699973882965544915949045268681444740658928321851774085975188747633523009521302849421962244912508085970048340199216143576130527674315226203263450254023552840723466703118566961631724341625810273547301309732994381407540089868533768580095707600530028391854727400803896150664465975634761894519481616811862990077174149403834554019446150870490279878024142564131589715839937361263218267661571956584557136898626309468635826155334129664461987541035278858272745829616346327599938295205346333326223817684387896401653718651306258732077006440863545188701881080884342605152393091325491226368740134670448024968956632102548969300100643066442938895309704490686357056102844930874354679355602114543672129749361564053343569757264662777271075904210316698950419355791111971148668482357013287026198338193238790497724911985866997377584002551833046021548822071790323546677615579726090236166153244486183953918514049225038441114627482616950395521962119032602537477307726880608807567591727906097713552286063575131483774305371795703368525920759676908236813819609570550938194591803055524211706029889674764585399342816709986310519333436677930383830562329086199826211356911282832894580999125351821691562348475081957833737652824552657610794924945553906151564498121648496003720158889565980355581807359847153555811344434855512745624016493095571301006916655436372036724240006239363241224961348186024658463013884392405653345051643794401256510645370459081447940698418585247816748437026171197024804528999751501374228825730207700577988756847086047877275094834143996410567036727637090926049070340875500949268925268093040334965398394611823023055837538281164342787890031947708871776146501906173406343774966203518688557020338680470926005186643292982086799399891845798798749917831042185642839023519465962007304102401885600142765304615512076501903054056611062910411466083380303974653192950599605175460752164667932186557013452843541819025940313007738120665700897373227632364663831011957412614060928966307695178340452723499059028302360195456902095324741670558621281481622347912563274501972222863007500674639971701554049546679825320032964046032521421977701213338099105154607006665243389947058151327525726153514354547687505672419269874659144222780257122000212296185089723509331481692750200409168356856413091871893738818028672872549336202186805316597857370067264215909580814884178312094847549931558825348187634348808842187409630673087620092610392243108067857599997400369057969270793530593921492802691359903179927398882411561921873790786250425931487956208365158624973999911705671339669079440284564789413560641960159110443496225265141742155134332458766894171660169156565125583210755855300731798485017873182232938804475069153978508250242905722875139593142846514637526395071007726887296902474131463851813777154962342815531347880432190329831549308493108815315300425200985822084110779616243678364187646534572629337267658381272405059110462300900228643687183010026482380201190860660888731581437918784050168818806005774247285774424839108497107579308616097768866189971263068485449561060664375679342591917348110588457626334652622774651236202361915518532193288371500371806551049336882515943801788945207798904881254117565323740463501913333047357649778681724970943014497028250457348372271906430443160632289482095934536091416917306870802672249940650838533968671584836122575517748676856540392965791825352951989081334600942320009146100073595710199725381160521840694543651297522123850323112896174054085622372081937332158060480888461278069836296528452957942551711001332772134713244899845078193311653187672517890443441762341255601806414566850221049283119386882425714406652879951429468230025313001095500016861930208630527039281361076670337266538569007840587818489966872510915816669645057203455132051522958592532688612214979049098049407999768345551970331112301362893775655469398248483445877143552778035999766706209743474278817982367101644012677781269446893934658366836669462334339434854144323432344068005238388981354223726943220255268704238299143581695751036178054173728136173619807994705911823684951504129231189182064283212107772986628602211648893863486250148346361339461073700223388680446331263082453752117359757640112434542268670097566026307365167747964978344866608670105906538522030830840720345866388716077112771625397294991113801732616063106155818409176550113685940528860113920678552430494051930092340038727176616669618682216702643431094241664668595127651417998019904554641863345075853061483759456347386810516674659920970731532341730256903187404000397362320219408194861325780053279100719094636944589336708558801380010770201383561191071427416517066373353546286957477762037228864445679497510390938558252494860477606549583370972715134545882648203732332636486577343219710646461439633018463432391162431200552754057735862167565916858234109125495816195244374228278120623988330892400791869394247639718713544111666316472832762190376866395385938235134902910554620365082656649047647079953192202572851452946249809357725714241426009729084578295855996537576688011140986619701145771224459427678337085883127026104389035846444012820516023561371324240839012231424186318904505195637817469107879410697734081015927360218984028327516894889752646299177821873285704641222624533067098696869671015901370180383369477344951613442158760606338926036671048912511070495656541004090183811466645045865025830022917977008352311486678191803807497951887654655481141582034304397787359021631222509452405191106097527391512753783510009314191857331400956554117800955900444571467083461815879796462151449659724841240413645217570275044331108364860345482538101613815229831888299596907771343001855029882346390575258009434931022752138498175532938588620808663536527929606388305041902078099125987003641147723447381052132165901342030633782291770699445260200879526574677278792764089215155381393444548463734958619845329291973356624991234783200071510911255146238996913574054781905907250464466435871748070135853809627484830553547156199881208153447934348820242066445766493995060799510227319866724443043006058614670546091591203806837724732490313619210064799987596392669550333057928732186413818957128940401954302730526618488256160143228848331902647522871388203507168232247818478044802184349624972917892115593479466831568003877796018895232360967264167782253479404483672663571037689888514871175808850958712151589454380402329937262511112231753937845755530388743979233015537947240689292219524755856360877567364169769594721852126399765931892342848631624976313655140535328826010745218003630836337061920060932189556415743224277381221341697039310569852084852523332042925604088959489606517592717291025384691737625378875253827936768088202241340709623773516806778243627389469249569977178009714530129954455017442052732558150356330542806319716199997915034858486089659225582857758158604276862852591761807815334517286109067783859703932364749424165667795661030304534102201951363497669595958776864593875785007144813324938888627059418128871031588386200010889662836005356987954885045514057201535814742731322880432228716475154300284704896052799406151734920158335130772596435733521272118491706007218278480720554299791483687877667690961814185785594229492216624169411267785424200735767880501885981161243813735189543214177906789313108603595548702181120608114301941377031956014633058387775307474635225150810475519005495924579859122814869043278936207651313349958691142456457314153815482608562011543444328495047407934660200285026189190047696195906577286208243729980781120953114221327205603366103655220481294670344380052168684661568098135127811011113231498648563841703130036953613073609637964475620147577384048892488071319675706852008624886797249911553591737189438936099437671602144760819220760223405329613755389089084724697704843904610764928159165498282948975243196756746619683299163331742827397705941074457032193932423730680770973573566372817502752092477085812892949946957994639244480071954882884319897722157051716758031246679189774482899290408307138490257572511110600140342266746569725598116534668951340207704645462759726619676276336708156731577557409516738164505149263963045201043140944856939826317437418285037991564820951921761654478611608152170246168350845997934744167528269242227335482745000444652836304468078317605738556637332838708725254520666685170962709746622375168034385488313157621403068123356350620251219292849043746794428478614326778769295910713125133204471916685467978778209881396231131281124179997237949247758742112752256082530279544316125917500504220899689226749315351257570352044053698476885872231935237566152822995244424052720134375937462669290089396456551077223761628646745460434292182525780018834753264486548006687719675284584045178047215670872228510215359471597289204757952928728264981386005931570889049586122515069053000366491750668227727169199698602878946456110178353826604819215407263362995044174959763997522916318117699076698749444852675775628638720320416637976968594082413469362065890895688671070363219299864334979332077469465482494581058836184880562307135500353417345021897202288383033623838408438252824593219219181189823374964628961247142470711296933320141070204514992745988104028772720108390241985255962865842800484000524557841201191985897012712895919988506526369137896223844417724200290509177777967401746464461360874659195813790064951032328049670440135212987238117930882754283196838036193976040347553952354295570219838486265369988884408832984638041705652346120520612447867725827711937349301225870797916569897547527173444239275499684243647630820219604054279799456811016305783263149394057391689467607265941059008474876183670048390055390972710856258471738831566669867595072335034301239567391512692201451857913045143010811709762217742166390694693993606910602055143684000450019192760803935259137312359256683395054997974685579712249485989606916917577060935641324598715458961533277247834771033788789045772603251804088697038254993002564599020505280848369879203629259144492106954915639610154273419311840718224581171218738619198349902511848564370970500295715501669747333700971739901247727200269894706559095417798073495720662456856240881642324958228792833838785607561730739617130162428452108197073766469906591757042863606048102846803746496656700600723930099486389493531645659585994728538366663649842060690863756275773578205404254346856342646791768854260537507475635910264394837257449550240462820767312148971188425749171366687238769423572614369071369493943706328952427278634282081539898868721367769380320378220275148996871828450659764917758317780933400772692596565964690585420724519243848749891549713681776980988414019642806206648819158009642564200574292152310534865482221309708303877803365185411395128140917350654806329587957987795371526644224776643328305301395922667523336337795222399852361597719221963175410499887277418673902960716338918140323306129098224591222268495263755582692808471684159297576669280853862504960494463209500423942061680374842177173605931884003135597094433580671274793154865678049279531934487313120550144281699432305503055716881029917575969047915612273586757103664943822791977804422219901595575173565652693597310984039557780397439829241133769284524972534305540761363670046003696244610393765446649133627656562739388524142652344450576103613159143247550842123216830681827004397526929946503745340111657934299365367260799710809888300966285324671773952699942252571162581363716404215367809592106157427470776107070895170736835386674101419570635582358943422461193991806240465339901373806264384407286370599810171206864223278192643672975622824759425510062302451299833294970174598942899803233974952645254357440763944398858586950286540502692781097096052236468647526222464807156839754984946921077831636599202864220697515625501581331278035375133740752847693575192375337997022062057616727819549413615274107908112773242883076723393064096897289150095244120553046912009275760537080589260181962896386849866688342215499931261485682518088026715600134580283901830896587852811825152217954338941031745477853883225364755435117483799125513300242977054395798807158621112797092230736294551006592070513526024386167413227873729369004966862477009964723058042273662289360660229989942684026044287291187507315955757565587863608546341489184090161891273053992693597691982000344489645917424982671035321083595215730960850479611026615149417629450223547234620847566772538127025840564516217663873362336727168743808205332000301765583171672321646494097203497302835493663449264278901133227430744618836117251568779540790933672050148176371426769263997948452988383835439769179475664941570080152379232371056335626530217671410349315547442777275297694535395450611377940185816517609453782370454325132820338833477766614340167186551276237387750924823191757064450883749864828910558927578222891534222092107401450160361431931739266833016349055608701738559213019290638896079479012601304032462361636008291673858959706299131575820729355573705780077444848925790030846690916344092401285531494783845410092793405449932760022533774034716004419997852771547833982609001977970518629829528998691735302655686148868257862366629652185827540644163185312120896295765893453379867087692486816712832967361397465957922185258676392110095997463940674299719676073641308461432955970340546880969864982175307950695325459314102777246847247541732592125047044358147549746847266130429741116113634748972956667657342478036211139993395778392703145278693812496192033607724119161241010048761938233063396150928631265445710164972529226422869619138240494752979228203385848156255418433123523894730913677690980923468648814132169128031251334245974526864150246752984025326108303390503215285264499127765155856880333187484079453532221324266691867213394779731966751465865715547819871741727278546009795252238679549005885274900159175064208348188405838719020424584487630627495390865143153130290274519602660001729394232636377673509177969211258252860360920005719113270114201561545369807922244171390273769488207652832958570031757733828216391582728441321669915310409523284616139540420436961141870972671416999169746858309200546823381402199360591492381078166620729171473661468496941863323676329802980464782801738166827673813103057530083532651167411813374447624364329644579907627915219505338212076731181878498314660204129463654753686362259139277962833065962031625402060719774052054476778322791365662502661405354581403626141208900414555242443656991410760961902226727991485441138316262149545036313872748520139144787960753565679524440823490690181359334507463153031774586217714698608476393722155869503038762304423623407659678199349420881270542675815963913039795761931480942166019560088504046167081026357608846133884050283378357531573442850292596552527738927715130414857102611120666888071943699103137208311367393640684471255874047593198054418744259760867328078940895753406402734291685594703900408625558485484806651829051628873877517419678917142454153126586173626454010844385249148464212669642321968045219762873998856525108321735879862688509436541145517627915919181875946055982787775754333119455897280997316617209902059848596464022704091104686091937546347643455032504196448842866628772036993169567393142498782540754731081203603700620060942314387296166937825141748530258206739785830938197564838533524777050535247838062177168785964092390465754476237186097937417723518179344925237612500789850927096968956817819581166356981162070622782466004676292588649190016036717322627276343096013734876666097853163753061365751164359360048589523365643714114850776213185681819379871512788617966566959522023137421165608630515477492024902472925350142724642443275053325303381643568552161213604528433974793398055792273622236618442802880062956581359368748475971097655483690994932435657896037486251631577761436917332466165927132648881118564062726585524090235893150987395502956845281397248900423902866113333828274232761718433175243102173397909393196174835374149516473919255731971246712666946070705381522936382962289635225633818714849312383097983487594696018288039501467874679851354147697607908501280459247633380509780810582682095309370041028612579621339044405519471826812557653152168218146921698759034868300245578337001855147707242601864683266454790443266116372094109692063494609884453062676270705575789574320531674992137401812785966607997799981903742577259718932011017221456911250887421836256844730785370499876614454081808715638590199056929598250788526849140549235570129158063992644149100576848258563451607114315668048726706937870342880266671068032180543805074502730481550998203645249658545262040364547650857873072632814652664242615179592062742170091795166419542062866782525171048749604302169890323062845918403034703044732119261309193950630424013813492146804149237825655685400693400827009711295689706229007063710593059131099861578475824906476809052259803509498390777127069634678795109765822494257174164352763248367660668854645574071434912586818795599586685510875146310959380561970483350152298489887313008796454655865196591740859843058497378723934264967487800826611045230958620558806881030664327817418622954164751917721422203976618902577019945697851926158340569853407202912833730176127350408586319656238744546963726308039540743246283788404231167136780234925787328885308880825490801850951630686492045839126386212249464106838025726011891701062196353471692125962372237924188902196999306361500950837242910919965000810064528527368896929811596696630887017756484610104040765475182423876439911144784619955327323702291913771970030827743856888351520171531071435589471671866906587141344260126394708064332822345721535874531270683307895431830370732486695186658976687157152944285490379190324181914624204757211728654108406863887631360739451411301911280374662665505619719260386251030051365927472658005371800237023464824771651628107943611742548208937961541979551001012158197629421776635411372772888822212234822171560223082668954386293854888408993478489188092455780727302441576853591425283941751675405029168702101215930748465141794820685287663918037088981559169093071712090032758040857043772858789332308395837280055004730993199164211420860682810454035964812291609187046166575413946006974325599256367696429664693807959309956717678270866663520503314660930532456312888670575194591185058695184519773372288559723835469794196478802860420185860431331457429539305314891783295179009572057477848106954299515044588807918780736934040584785175793945627784581111471415774159341892120399404253502310470971813699141120311497448531550068996689214748705854565912569924136049647043248959407359003962355855550322875098169427449120986288925934488877472641768661501339391844898100758006631100194991081415182031523193180645014331361919948173178710123543568210485973221680117383513134633270957510669652112734387338671930142806164421952869209000632038251572172847345305773228608532039994607765864396436619539277168498378190249158109031684477324286257712606252869325867076963259698645212606734526124937659205031353970994096490038931242989614592577517608982438067286786116222917075797366015315487122846960886297108748702801690918845580234852515275186018429957678607352129714492083731459909502918818783939090882903194244795919914147616551475550288776911320255610827523640993203052174586779778078134377861507813603059083620516935343363828832501458946863224622220862670608034299824723888731919993264603117798374587626449684396564424578585346174132924773141716112914929278312774343324284313881849174610392694509660558008416699298184727154101258099062188187141596758890595014608694710119021882059828271515480094113094312349905676031712582907225338456173889304575369896175423265439217113592850013759859664115908557867724311759331824726334123263887070973886737324359832061899558430808022230397984329516295358204052226280925693733295419016297521211217360536911347192136350770177166790955380677657676414232628753836941581268280672680411629097044597604530462701995983039004694355281657603555159374320382448353296665990577376763039937004857012940250585956833422672556802928373467266449468150631520182722844693771726823984558327597509624170436604406520100168927743600758949319428804654298438300991315458962018614916402270449309895200201248076439229095815438333574447488793627376200406654721190770184701314914785192735084376952271594610020259310372190699251125429747157614943611180368261280423212581501767517863361205404705790436552355612623156951486158133259273902244373256594075597120922488514296543072557732433491842493461731025756524844711333019688603990187037280007603283797885804371428029318481933795824140778218421554104540237134126470412755177540882949214412316333988250424337586783067728146298209977227956938049630951394095506233771762846304896904803722612786084265154116977398999538390843275950480549601969413613885549206065485478071312384581213143264749737976454631356183984172785123272955793167565230046431582110526926751197630375839756608847940316310922463573277565894416606285787092679366774412252529543639508254416886771417953819689763251553464035837289857688170408279020524498411932362419717914817133640063663638418226496719561659430415267609675273533779219821657925793124945949396694415963843535583193449621353300715940570334617680471815384624280109284230702686429147482683289740151088716653436360832008917770857174157828970644749286888297016822784108269718685100213125305157638351115792638146062954483665660349052832266634918875387803470739155507757875199660347806300020729477012661952668576232255948349709827133752791681039607325994024580728916396425420578255559373895609838977149679369210025923605666307442108014506986379107720681322340335232488317418597330294071237355828144385090291453996119744863717815699225486688995366503503594730647599068576265562675967883187142486721008770565553596989785924801595412688887154655728350298840166748024030828973057203447363770664020434741794023295934173454766765985905077098432738055034849249421420646949865996866932206079336639309805650198930861229884364214478147026945747438736616514215633139311900938823184914537080270160347903330086545847663074016212932231151600641949400066344156249875897472719816565401867296032664237274556461534049341688431615905028122454794572025373048329596775730695308596857663131129980915899903568292476241728964326754361579840019233182078254015710646428348395960059716505744759229227252899115674382727375677859961396513901238237035939027980992777875768433121160412196111478203042906816241663657273261552348758907195283583692847471949317441769649015124398951503741650154694735085692372821868706139767031797421622046764556978518431969779050277338570693080870850509437900303639006846872979890681193475212642700344569154458596330280387605078520858770459567693490009135543247869708574885641070627476377316225061373943281565573940539798858877374557206994343219978455821173193591327353741304927900469514112895513597019110128432255562899181243215706403761329181051130281508950883683921370716234405732047803046162836804954583952612695874550797197855338104411270727280365281935617397976568501163558712376735634112426475865937837040126714044627031041868282816845618019091107652308426599745663517325447378686934877300123949537452102433620269373527192533275663044454763696309316760753722293996331740011139342356230098755062514557507041806608525307195818029193569493566829519075058968565585875816488273992525071557866739432359633310064315449456231586928223788347502131195369486522762114025782314037453180170041368578648337054680566470546908936384446169035010723984963846900016790819848338064770636180058912275647572510111450054065307861457171965868324973374696933330330592615703778553248494369458815195825169727717396829958772636079373224986213819988819676297498945679114487351361525812028733847884598422184758065091115611297591029507026302191969192060520900161017133229923355762743308666161176351277083643636001465368511661993051468219177325632579096388512971538212674068070086033639459388071418281017251599667582891697818358367156222762360520048783560842028508565382919104385529569535645680093437698275413428003459359915706103496576664382636794988575490041223453299550332879068975298970905515554971923004002235006580478580691081106099018793644036102287997208195393735070783992814139189026044139674431634504023727667710738916347016544006972056634169022104749871435944440389679459429987184045933963515756443480437159930192607422554579154215781848671156482547481986216438333263547058910735425399698661762813350403079147087560573491571301215439435036712448358822125033759486489778109259741055646149235594228833133735025704723684402614151499676630895723837447768647952501367810731958807009708842048078328951982569720854538313530067425511492286286326695885619090914385220146991409928224883429254526173512353381751490383915299287541991097496500710661095373240466156977214699134008281566952736509775975909929137450632176054894188489141477142827846506212129061767812082615640835648646183152354239665381487513985721510343349765273696783062675304828227518385768702731794277360373896059421700993388203397169212000110054793332129743127776042757054006755817936460288731907694823572852934881023860356515964870840194753787879584077312309014801559901049199403206897306181590910554220105952499813251444985343867935335004994410835366739065542836016090855567094877278703252819107024734212057191502284066056386920718688402626786452975083805668438911414988879700671700848208032903168866323208451578653640149072522072546627786917344760131113952038462850686777995278213321483528155888576904369716948951741814258363639482036358328134469843709696640732845950614427694113510148069779688930402297221789648550193525495735268683928159513647751459340830495313115123233652736243838362320511034030250830365186847828553891813933326606841941253057217610948302326948734710633609541804575113967901354433614852723806210463379644983659251618341973946496164949565507036838377879001460718913969805681224730773385264866075228280209831111565418795256603923915725363206959964611970565160589488670088109665376831081665015116539169924082159445952694255842844243477135498423541599101970677612987121702665659610295369340725901873068665994870868776738350396013965458447150913874453759656990470644077054578136416862989904367023789647003136101018322871785093014228970767064478300743336976941122668201516785708036448772547069819436071216264810082685378296852833920044945792143621228823565971192682947976445039096307473285125764935127264261651272868946695025446442912865903756472484295918675377581854612668625605997367199713268973105028897165972744209231043870133420916559462189858877142878530006958738840989516003313747176456350837509278248628456689514070161602584426774376797541848796403213339353262078455517308949496841488683197372203432749787234817399296538729211076515751013796033327114605588865110031289714278070172837673810465232498762848811839819341468394507916280993039752504295893461962547905958177035264211814984515674674726764577866157039199938578300129037559954362995868801922673317484582231073561907478687666106237870993044841546472701705822980237154933414132654407465337222273562355038423223808973451483027809758884282423770974528302403388944663018037914330514573113971993955849084379900141105889614118544715348515573909590739585835941136271651767170578816652383973930654609998232012360020823162434597781942325226827518213709376049096458483091815488391601354725305881639708221899297548699348448780313035100266394539228373557155332870900495528249738902934105907089741016305076258823631559900896955965364629007311348723443462807086991449438931889913552746419953697355514820179473235224423948073780896478857706845012614403549523997298651388292261949915667098446491053126244462805150149498132450164088673972479618813678922217038629990160880698847070824436170212085773004326980614914804532684011170792553817239018299763872627529735400549804184240941822126650722198705115472949575164116854120246186292413995869570808686124750451242885198969851639021182874248835843946850585859710634909552237578972652123058193441362287922416871508291976493025370086780675596745522131051105652377830624261830106852309522464473789023497148562109310020667495761973250953325139843543607387986715377916924343117345376034206897792805593407211506193952144851311806804441153143939420234597975950314144979902598579141578569852267966047482068144805457912368471447895605960902389056107955363969361210972839696363952992990936863554218499226448147096320742976986321461784741548919246984686217482135518752283926857305284526483860886032357162686915583984192705169538715687102901398547922521926234564173667211363025305059443590695140372815422305953047770208300352580825102993524585421123029484872207669136463921756479771776114289742820602416596232534597070394484364856766979325474612861002763639538696741808147597536416372076321376666109841454101526886639955443582692004187684927639809766513448547043282262770266783907557786192066625261428959183915161285941971446988271622755599804746830391363241161251553269043334150533823835875730780915342788203772136345508072421899487771302916948415275165956468576511137152497769491881494825375236415713600242979875288032442658399638922777035606567436713180348316081039520226721531590421056890597509890695614184492768519066321262895846358336551685139451651852347899596397264978620202197038699746309556889887536698981489129800247980291806043522709345796007050851376969027538947523685188321616492459283735887310570918681433887259443625468900019164369525578440989988044581337992801813783668326150775678629387359314890593509129951003671940707794956381272434344902182114856080301051195816912346219804803957973350608096314015567196410565663532805288908555243547666226571753832147772427881444874316850367214116563892508890001802544152463041437582938179444553113232212022106297128155626188159900186850885338100966509735817748250895195470982354662006454054884683218596560914829203412963099066717643767556505676947720222065794464285861796910097708281083107484459430547721688396575221089536206042414767807341537249523383391424462802429967688692296270737450981775219269750678737722970702166821155150113057632710885836298761009187644618256306452695440787137591949143876223829928785007809320806008329061991372473223046679579841692983476399545808163810960180715509148515895005919021461510641631147435613996312932590870531904722304496680632967458430210760879886677037038937668919147742796115787837718851541075969028570387255959730311700822655045738198255934239840025371225404724934455020023203505501225992716833993729779135737258280283347622262712536648622622895692259753022628768602401383203013868487497695671935915167599646368826497782311775483649980440843399296349630522914432888929518058889461413755390985623090097768426579386313886290724318881033939959672161938387261735930612338880248978282585286418814999099205993175671981956594400865135718563164761448555409549538175889499407402139139276425108758404102651552981480150115775610893806101626851671639391522270026484250699223327444294977169523388046464072786862268984050209643449758772271002025164477818610648247933628437476619352825603830289910949934358257994198793942906689326733766389886441942817295791009762948227077294655179998327860560342319333382584137508845795274253496437572709089473677504869292445779442867273092234160381928968968009938600082304961688837058993411050460033709755871547212899424849848327873620512602664558230130360549788927742566347640696693296206095283316151949084404103372341275558209988272312797972442197606063567469851269650112315062224148765967394192397834859375598375378902894655591475902989576851677354747654987610267640234544244857808567301895064788911433481200558507077307137654987577640456304115075681942662174542503662240398075610056998043414035567613956955212069557861321401951029692315492498510093932213172503630138382259240718768174930711803597367030681178654680969203003358276953211463388969733222862784562184083033366874430160416566545356731560050580250980467275914151515402960644341916867724960687232029189897392719199800771220157354615904545564758118700555279776910261590847425000835328406673716743573883275134469948020703352392913665723401750861950300626775444843210532558732256505272730712654192635103298312882995923299228677199924523659389417810262078011190239759235265837045209885869085718948551429920138308805075039779783766265664757136285710324368273787701967475413745244491065611557782467575431865009374407197628157061958875708035500685433244483355424513596445911020222167993393997525675149419744967851006706779142589857857609304641613018009348241232574381353096952525160201119678310100260431290024104540746372574674223922599919669618719641180836208244091808747480651388069637993137541937349779773648035157292440505159875329457802049059129707153016040112186607679081095303608236936989606834392290724581352092262245426689901917099349356112293766988132472195943913081030138735878853527900573848024226577607767324479476455014191862314045413294385801242697909965860315904235652513170583006884875859962914817045044437488689380306039281909096656360608664817537941572862117520508106840566332087929966483058102233333601597531708458444120260991948754390970236927554601003949030128997417147148535993810083875628695246723523928243503984669869304964695827476084530440755331617294609110007096745781711279934053867466008139470009666932920295428921193255165756274975020055401286099635143151587893606746189112813094232073786741351470560837512975670197692201835267253119338483873847814312636613323458691526229201443488068314108998867021397295064435147638780339348578375940379431137530703335634051896663311457805816380216381618569818060693626495125645036803321581716485659264687640406772615585572360444947541074062480291295850124826171595471853398922283671313162417774544988411920826104874476716531242457369634833961295671002467250487048689222281006108756774668452674621476871675576856170510283237373320080202901777152985378198430854228253438577488738212437395389808403617712885510319632559381843364220056840304217249222105360506855549499771143028112237703137842731524563019506872924740027364175326739184926287457961996101350004001668693676479806736310375322838479186807307195826870703511447733510113761422563363681595684715234024179930678400260632576001356965656742893010867736711373739118051449325876963014578357071337109190830800845147902592950934633911830612972668916906047031218950233292847216012178996758619333641406097720121809190150995763654367970754767302126477904557182058275313508845852246730714568784506015035006368172989979819598463984709371579381724216919847464687575432316418928252283534560555557720512754609287284441245173291109223339579406863963775615080381728717601467763295960456979472239508013132636257019184526938009003383656694016878617231196678398498220240181466578271507178127752527004165682497281338632444922202040819776055189299093565278031482828039335941829944351160431672617307944932870378848552140255264039936223451508408159822017745005790983923633155066067276285199302507217682204785873793934025804636065882075408702519792979889122647185790972534914442788763327279640580494760423672225239466926030229804369935716698594399562758425123082166479457054887916953873317989210000253427120670670696034503617937804697254741055375704798744081971274381095853399251426895861723595148684304153188129893733285240608896245638625230835687532421232156262582761481300076160603567561346556305116301532535631740832437966873571797309044771615102584351530125739770461434265996761077884996751169171655764577580862137615119110176730938479789431821288954806748327054492948076839956541338674781603173201098739940025649675051711255633667741440729460178262468057069645124515198575269746869883128038140096285075137579148390100290222538626437798442093825415581694916798085934195620324573128676199759361674321190447329287609089045552082792654257288981648597139290053792615454187084147143996294600099238087222882681782852161261384206690795118136437895656521180358221154650956829689326162763608768062609436346309416628192978485043236848498339192650469477625682035461239298136271307430301362418223095321403877548542034563728823193506500694387918185869612688386132539998411573437276916753574105664076851531357545506763204507900356295392773806193824491303323904582749895954053028443667542571422697303789369344628259793409207576376342067847088805670128632688560941375538803123846091655202125927863526938511615830758414984467938198885311183696645213421889029560889209499575212972126885691678520430943564194512295209006399024714070962479763949605155668479978295284878170527459119362352948368513444318602619364109563172367696005295810449558094098535198758371525043321521131421251052177117964567090278120400551477663629330211727751901113772785379319407728639154136079372836866758067237333603532539232777275039387229030321138804723148506753325208444739290309398165375546882663188515795538281424808475363020624268241785020736570860813883745238208235016386554994551511341105625286948538179693330584764659834825230586339098241773861626243768946426025444996504968627797867950669876109826260077490501487930919950969135866243085526876998175335072302067406030810926997315383580480155766985201910515397477309138553871508417423424602730330429756995047395364907850062148031937846014155738533988255706746898093705902747596828354299933985744416880170055941660372744872306845451039410275453740850334808325784357071983833884766389842236024482938370119483328125063071800900562682355748985380560434495653305886528517654320523615739276492578568658421967050856123743632282959550332272675349593390449626068395654537183957452796063733712612259531544517070894777962998180123936764547703992322878672625578486134157733954367010716592521647248829489964835937665572775865987742339077888312584966490491948464835233469344200278673555701185843428874195487407577481847338995708168841118078677104218301436655572294918277618218132598487475320647295652830839499708060755064047494085941673076147362497434957014778852380620440760513982893360478447344572596259843652222305302340646111939514241078135968585000914657552362256977142660945913977203004010132515410675257703394415839825433779535116292247700586972365287314181837560737946790964593367458215025343840425990986067076824008596059303534325183821857814521795300832006336411257057647734970058674555903484645338361745438314041871214504631165061368517806841002598003718610105295128048996538840732256988002647295288549041503036621077838367248628152897234000243234252388196470127556352657727143341604447092863275180161447128965671708415661703845942621330105356308582439486034680985595586814272985981586235289789650434885182438342824758615344436440550503963451114174025199068282103903021342324437640319516565768057188302487955663596310024706646566219451929965017024061015813841448866583415860529783266981106081215682799196836341340059478022264971666776045499863332970717418387916323720003163985149745168249442234195121709313707732050249535831629816918757772468106055206379704549173733688455891494464462571184282056384773614314411305068432693671647425171382178252993833254282528505422427276113272502900068665808512267001985352837363662152687093175601854601270222846555778833093952076749517355731468378873013183268655272254029390100488091951139545172819887633003171815587993774753266024258257425983306447025123436825519509840279308664551462200451838199917335295107972956220493844844688508293677413160463650039880159005137543398438191140316238314673378330787187060774310814615674092591628593990586630964900256953106335810493219014799706776319819202011307768936025818747196195704239195044071346309789344342118578926255322276363945267726269419437858011022844836006416175060014290051278920398116145252120569445139374240002921480794785065853993389753952097267667557737127174821928127088619610603567194273391443824888564652796975017561390021585429646510622584782290827668759741769884870868504663132646110728450151331884445315217295793225233230837398079293130056030060164020299289679837528199889080518787210114133654353512865666815677351737665066603713310785832492225485590668603230610394324533040430622112915037229707152609349090003704942776639335127519951296395264295785882440038259075887003328421986231225008273401857649685280028459220465431650906860824041614856650270292403709019864446485888924584729064817807521448936179377759301424380458882479753626274905357085140292982648400717534143158788222312349146732332320332643135809269829394662735230850238840130670722457835702584470133761357741259937516633898573316907448937332912287145760040746870713958477518371282541317831658752941246890379467117740497387687122179120121540313863259739573171568261265813051229197596040372606957259490956590988452070381890519547152253561292217821775098475915492157302360580845305584144899071975728555334721233192899507898635305589654103577755372997956044860266957690586212017255099168821469313825551286298629181267908181433096940667456861611408577557323992138613523888990666376447586422073355960354568149466200533173676919973129223346405942577668136948218749976174442812647096201218760198272683634462591717596397598278213971086641139333515210115183772666908079607050097669718977695011161212022832176462631596173472319345105531200380048539045743612139811525125477562226976959614575317318446168973856082801252497766874737498906040443225870440497066172112389695102720629175903981438904727852446565143414779464418513648926040796831359603241616762591324361176370414389134627617038579450782481907279072114787766162214400974198247280552140882025825109326971967734359409783199852865361660121272304764723024616665838390753628452531524004262832294607474582304647902978452429474053176588017190134908145132597050492091079672675499081531630084107439324984694977542747769834925711180948685091637758331713489217394612104172717953079900544708212103053710655690202076065469250183325789757254506410663258174663031596158700738944116401806987542250774576068696960176162423351648116709685765442937655440724075351751180388929107544860012381028251767718521696614648818216924480109462336065604078027592826479362070134729788677013749715809186126679666884685217314010947135539892101468666736558368701971198768070051696591455533013608179980343675569577333734867592775186171983046950732681778739596289358287227615151714276701783190171601038279050028744056177989570483487547902907508141840639564292076678539642063437782733610448984471611453139625482179895089346187100242130341769883625716722323505785568671796664202328984319641610222618443187964290546185363482874963307462922144091842424380456106031116573900654210312635642508554971238753282574258197484313315392604130815728972861171471227153321802892161590613384455673102092618918268900142315362316916429763072631650531291304740595585585410168628109915235103326097611881912172821004458333881754346150438505103972312330815853757783204950203979540646501251749582060796648849724936220508183734736365807647492822715787152841485361745784099962405265686636669653248090658027834917426374849290360551009682433853278174930612564518046382172618587113564406381649013391528076797607047644986195628850284433758411317254375241120302259663590451612644340462585914660035299631016169409271614943899078274169544005428405373872750793750963096916431874430662054136120511576474983988383277480288956692257145532323280700226407262147105562778310291670871881974541793674805838333857018134120364799329292029926955143267771860867307266270567515081385175321633410161254988174156740363922284881125269797847583096135162070263877753778670459122477175822932390355259937383337622590386069980891022278826594560553579393382393645541907857157253791636777678554820144381985822608507720271689151636099862301324709652668424028419167691484360677661156236319533194400933983935444262493752064290360524611113193701079505165536479175156529315400621253557875306353581316559552657082200068007124370787753834744965028159545774148218935711367751902722584843956395696383928504460748041579991042380464051709089998723066668353079094805945354092768085486422311907162886046829399008656632716511451843998131798018290600365828229008225942785474622157844574584228834436466995974361816794319049003151995721582399515958910970726052950458987928661282940754134366085035999392435800420194760243002533452328490818640879077582632666606301070507850478555436651461017924111869299710547843072587479522984287961133854142176623692540568234607841178586117599965425676835320625048923578826285059153628259773416382405509792535615557129204490719454451645502561677918215449706943333680439406362050592036886750316819939870286648328202144567172877787880172670958371795574285828561358170270511566370718023063680629343673735778540151996794573101012186328778835835641570873694147529181024834133454169209779858582918849715187454219878085149027261870965781049060471966475623396411634259338959638511053101604826891055930506201093595689654034822920825990157441396634182066552550842423677011649070363099632828600395542578240798645099288217796505464615124710862172337563014087438388928883373933105238275231768799987370560737330063513162163862600460014197677121152918407516641835831868378819484786028335296614380657934990114770803837553719610834627412867824989754275832456104374847938128096198247442166384846359725580900573630344473258074608044818967602735382467836574549244493686585677562526104538304446180538481740030029772431686631235019643642694348174687291380198243037395156315433950395826223260408769214695558220828625439694550963651926744178192581875684988477798032821173313963073729192665015528662632368199295366460867340464482244294752627694219487256442546185459400565931561624714611317935411470111507930450470917411681680715242657222842297406159935021763794441389453770708290196293458887922960002287623023627149735567036911880301905196146005624847405409517874970659162933211025040074124152969444341812251346034695638605301435792320229387768566619919956489086819272604363214663377230897988484826995974646270544106146336044572718994704737125867671008213825054886007921092720184140188145356854703747413611020999458124592146439503952358758860666675219162548830156620335748106172714682915147317560530543092627246266458120767700818927054254196801052968479732431563454279720950400975215281465476933011587624246746472341959310617027289398903163369650550045267553196171739834534205658654502655785902536800852943272680561028113797976675029966011010985339872320099716351855328582450854138244969613081784722541805877338736633366043288640519565403228613510691196044411922375444214125230916859970053917957032912985661805163398546210029093378574720618992684515932874446690116872261210985376791518602076707577564690932652350487686952240329364643772699114573591991005480491121687409216283516866076706742084803825877782410827026462175264041247756330034490508324080380795710676061052591338613552258444077531904305007795091337565676435426865517202500265571081432243465747329581746402016770895000910989504835020456351601818312667695587914233413518127922328638152944567002955825094499257344797224073082974015230713184196361105783654520056029876225320906840545640264228111938748287269323074980218065492144966976830347910654658578225717471127490086090900015404740000491208729472940844487362515051194724615462075212169034897884503465634260070542997680808783612314002128333751626311314411391348540881705939253963237487592089124120583752735023067356368022257270775618324985183578233381676964176165299157585791551931633711339892975737007679951336965519300618910777530114944189960667378661272275821734847224235553841288620375674007961738565664925421435057423300813019051575250007321332991340561131326100231088067895886637806163122784926155846041116255102743476299050920537279977132139118710062460864208763014957890946920489329367495400211681539396086938938291619760567741615835611349788489016294355013933998749239752271968302575804414768713359627266993796216309015970207013301468246286666897287479138011927881961968367952814382341748631223392083110660091190463332706072886949784846889857004331560691778166290415025519637878609636619946143601731200073991089017543495734701585453299912478517213256580549153254463847483444054459576377211489736367770093241743805806594595242337119835903997688864742046896981202978030294532318780191342556558267426153715870045598082990563307166546407353869614272992863565191399149915212056228535948683776634016404209004707630234306965120794652925291054006991184195230593869600086383005321138361060651629511026930869241756457732136769482813195743265321206537772880492864928716703098897524354449640825755042161689520232534766115308776965781757514729937743713868354726286262638843353062554211137576128125801639644884357108544700311262596114273829847176136880687355669302848472998120323634204394932269670818383087786870250792415701648378267570372206515636936371043992032547346197024403949910604057115001408433469331562569835501110529298937183293106624224286214406969282827400805374509486346265339213969394749337682861733766935575605282157578111917252661347910168792547685547574583441533498566169144957889969673820637791404873037917737735421985641514738410098995188563839853482167539234759026063859863413944908730743243217770965866592770627850481784066923864137473216532855942095180238177926199599446929035086629442625729692089562375185837130664568448872262971142371351562818709996176370991306366889168807196155681433154381294977379095191004534985394130569963682372511229642420574070994832658835077004956989110603069532643935394178292389259906654581183613577957393252700982911955007361209219981139807752780183560795474099568364352655527799848106755538456736126236916572591287942230531151023396566330860665688138261456518786819013253608834642240008976753517778918063050273539878467170418724612839299856146482509220262703931824927498354950181021750099831092373059510519995763040063728864354580315977624118705435443790686761522445105344033600170343684104427791405880828683382876359801283715465834809285753708029773373204604092967190190319506390507544149106329199830442640448271517698414255739421923456363864081302333353256085111903785990278767137131212007444330778710168414459571983923840472210591527593700562527838691394066004653541770650016920097276486489055760499494955171644932641162447910839208309808359599868536468520047927301491424420503304910321900010169371406853158093362104484352451231702859274166815712233893733611031916519702052753901179259047837317229882055715290024555548142105794545137423990008559553366149370958747030239189433429829096908056702999923344043859703138894963029300505902160140140865227124860652144967966121550623419014395759902930000175160980270471340078595350208719838368022168695167940693611085302690174654181720372958230248283268580618157072377743929438888131682646062238186445958096030965231047493392742127195263650835000205441092343714613047460297253903295096228134158816496432053066520024069479760012931798602695824775835368452006410510211433430473760334468740227852241404186325563908631892200889506174554417523893958167997518535182081836237541256748172486601293477089972429146874995373410074930376859939303094319091922820235305956010972373086862082520011726439730098298957402030693591763749595507948992801557861462553916593296053794804669509619198513759518326106876850465601940623399837564738390776180475783336930872415577095500718235520743377849178378456507870462437490585633247316215961842057881280546865413769414091990847812710868498624015483358024471542641991712361125237629523707508483283821811239234944891057802195022741138166498194351236878916590489128071802370174983370445709560538770617516189607040819025408148752796452977660449866480751278582306715362617253172386356802127747443393016907822140502960742008215901506395199655467989013818852601509117485232966457535429932517769793255626722342527814690593112602322996325635640522308837473878717711741251080742825318232320863972928577686694032574332156943977271904205653153529581972420119863681163555504763078572162933687573562448822721477958897792836393704734318999096609035064214101432588124330970570364656812480352270152313693232609227232565465774035869710147553608392939317090642046505048053096558465018694739898250450886114858898189238188653295398667660560404426647622037378597071784590155644760759650050872524121124831623569226230745140947134148675977724224317055626031234189090017335799432488699570789673357763667408795451444610724541310343636870038790587842926064264328400213580554713941782160523786091297149070806423682131071150228321929029091607404530221413725069441670743879001407287520213218965428421795954114917456192370852052110179676148542157102370510994391980419458574679690986314309388888153370778135200389003100988328955320482785534272215997217163867860229713993320913020295769888804340996393719000360266963416986538758203772542892831803711999489569727443379282569391813543458640559874944893323274890213710473240590132541170115546264669469898528253552397803305880745232413691002799658213409054868807537914991829235250280116846943805744230273535666815340706687635802281946854401772316634584838980153758157105373566738563919114378247916953708943687809693095034479580844164687335925346334550313945913408296303066030032622037277874595766673231021844014586192914183716114234298353499613009279614211509117963006978771988873433372315814723879931291697549340581452827834251786213281725226516901414182132416503393912244446790764543589701277298704680475093343004191313788850727283399959240885377736009576124352894378521400067923182049155781948449499179416923429972267828238611659817947088917700478839588437462719439791115465446065939736180358037701278333954586524539269100804796218849042464661813426445008169219617312734240391993826876601628162718247949782465689251013824094702388871768120889559545857172050271742408500055451243646530899413820722763697862804394938656612831468891522961709187274844759246927079164806522309800092366879336486537923609968340618821824548536553939598539106203934507759745593762673362019710277214951159429798919766096048079532206299198233613621914296274226019809044768495796405062007257847286534156698196633712645019287442832698274285523864469418859107494894448623656927654530061124417842406744075671348627804196935640151255386003344165903041434013867208860251177121822971445213962967814785395175991427756816679551381840332180379857779240486064186356996408172032093637037055875200232463052910740177848756826049167665512039120398499084706138048679935447620372223945750030026519445487298412001116641778347202178619404755776782175677754229173778887033635497008948045522083729477872137706826127281598195230892540656679295424725958255280411841635440125751002810834646582892962364685942316064797833648902215295922014754870372310028993386225177402046854752866644580904799368153203113695579610179485133351080682553069024494770888345916087758338239957938874693745153838092134519189153057034667384168856146552959018371948884025906293757207012422449397687912460710459234744010006557486329147659298807734694094704369332619634100058014359621025462449157892787958468248752907342281684824417911709831772352427535119507116079656481348355425748428877735817006582745660922705488788855627287561813122502527088390561169705104170851366692714533394442670077292413870465239912670543878925896435707981598039617269828905777243685360419303973110836718082632814526375076469792185086416850892782788313693424521731443956746388626183883462481514722617058616184321303006235743726015066204970381743679077924911410482925243261949780195184529806027258722414935448473624780068633752957426103077521623525744854506607848237410655129173873400470068070248420788097429546715316857009981306217921714110727433753176658855349331704793496717069380277479847841662911921730066503759077477950271523782723707879493602878679979622859679958873091227930807517895747577238554598729207148015493952791127086342231323762606985919258775638326224032504981379072710707198509858791126604568091036587764973581802325106527570070125528991886487077724782657362482074205679759709636759615929241189265269636742787139278069965148527462102446458753612181207353141576021608347175262841757403477573977420490433330713977701480539572635108903465357838353563516253671813210838566954578146693805782667486116533652177306632033784561290315432482689943738606581587636932227317125161129232182224354793711688071164230318446855960125332579033228412913325486947187843899210540059396791705105358635769297519052816177433208476697273202695847938878756317320201365394225249100698687101912454540070488869100477296188666827369862312651683080689763228600920031425690303193278799253840255249105314412664358145684617683316809783848762337751789274323689915626991165571328183739726616338398190858382720907113910422865945042099489934159093985318164489886162906161282659722803750543179852196789101220759633517853419885660616065136370593620552838604671105473807356797653948642295713864982924395235312577067100198281613835054584773668251600952432010110438007185809094134063700964097288770249632169280624345593509446449181406328129998451848702926359528394013775074417927371921037295881635408909196904569057756685426595048877898317685442435688918244341410183626271038104066242612370111587080808768954456539391882882773437691490631097650241009204217275493012279135606793025568751121543752712967523266952242052295367870377848547955498245673930522794538648925317275038781824165552439200125837344985052070291113939326476509960692126845196264896901239043978838692273679425137814579325233823478942141616990666665370683337974906015970271879573269915191204944986078269875522979459865130631109508855881680243745378351232269850540600398637752123975166198911857381805106119805604132365215484921702192067545120566258397934658714055769433199067334318297427652804475820271587307067058482449919222941517518703779981628203674817367940813715087235148250025415820877782832732410976560170866612842816671878699773548266306858235599673264117187363092785651201907077655350082182663943480381586989700010107579926663649763915643610604734062034073323663936293552516355996983499644760425678884639805040878848449155975359200976492179200026473256238253389730049891879197692562039780401416614403957895462244064752374504465118875541896167748691971953176876242256403351133210119578971470202302488550545207184012327565582947433591140263349259757930692294780271249363493090599998218583559814708334603791451201926519545231813295320524683405074820313762754523821324746224611570683082653357009377986952009023152686251606390805977587748530810162744635460029901946557928244960849884247501293278816873578733554695363978844464102246157467184248699156410637098067846393106522006808404692869094410120395052312958711435940613656723311246247735862240104517429313652404555534993849400883299763956316450448926607444454576268923925427573959994208846643354360168101395968082890542210811370705896887331683315350312412846560898609163473436123471968474831702184090455282999072155512298460020350771388913023768176716171539576814935386305018814954805184751643452194869187029383758767310016202428820118226264395738325166463115412890913678508979852169666664049192872652432545673440225381248100298034890300039656487789284981020264510944596942278628895955398900733956975670310861687663551719753729993028550899157587864801945012449560426374642088016365690182128914113756135708658812022362296790475941293129213181527529586890646570918285703857428511252859668842165498297450060509948302076300907555979474393190578381461569656336561587084380625208970386632132414257973363272371660314724109037392874259328034713274811517428992304547993687149720047485611509974585619105841827983781173257908177886061635789870290662948183310768515641255277120991345528489841487007122837783238180738479805193354960877810761973698563692554778456090859761977409229345877860867614627382170817494872719550361634370479198844386228874466824395583006708084157295721573750155685114744891948652862441921683475888555461559339646010973882853693755417410550536337615184455307942221142831039342396150683835515534566989201549607288703200410113672072263218243102927129479420887205013264019073308265729674013759624662548606199805451824265128938501956429987851254667122922496840077405474577881536649913388292472517975099484670218795566741060675438901793782482167059376312626741531041789722674164282125341936482614066297805809743559956045087578211358924927260200604696255763284817097019434761918246184226215069085734585573680214373587405273985862537122904504714180103250073403940357748686327446799399827792617957125819631437350244858894657210000165750460947439174488304619461269276774661120702493297984660693717382538556492536048129371241810249778798399894288285763731255155218210667459734401616744729434209597034092993951901074776408734857328003697057201235860343097128033624896015781600136041831334517437220787271256316093518152645465896311638949448203720850616540809996973595255510778652710757874176276887028550960887085829664932527537884739422883237937044624303204384417942312025131556535332810014571693932932689496711803411360884822153591082537496568517544875723877840536895494940625028212383861702220610856225757608632660443983801693203837283839608577494333745402757903682477017982477081627907224363924232648213064020325008402323511886256218648698368814090192991555099349031847876684464608153132984623935378996615497111260884742762116159138970601618805289162687463213915694733827978427564827798240937896157051197313173263469282475584744777123595301853190804717132573944032133743645398282273424664821813288697748694360190983712272317740593947937396445857110146496351985406351669869362531958160994558710145853581609341417912896544853520427480714391062330308193176669585685532060353176915549649580712007837942768769145114576509179593490544617749503556269293118985729710425948825071826832279768640612431993647830126967504036975212443620161618391347571688732927864438179091355867662288222166920124276529786698009956979915802307972239522068544510797111983911869860160596464224820313147260155449772256890457521037103260699668558902997141737054542282472065937707116238972191156169456104474645196953073028656070381262550607214067510447202550969202443536988949652251379630852440722272598071861400100114114236964348982719537885921725000304663622670760145001249387814179685595955313156298907507702358562600033463969805999280430307894663935371735004639357532545972175673030284051940165946279520372562384790192974540576152142354703298952156353960685454766047699465197838723018673753311337129886335868575872182812064090244615315612253152293257041877622241990600312645165499009035893456808904238180062665555758452522110732006257903034849306772907812978216931634792585694891493946589968844855634841065513458217833869032682970573232270020089645172745296660435203005115341812528372517185040508972916358995474187936061961682540201179991653605822194993573022106989664910178386701043272116264346261318314819518729723852954662118038730743564802156331362831319425699359914797230603197751021839572198497014593641474067842159716512241855708200440903296645508718963599131961363465698088853182462499514821130005244900413368323852979853961544237114879527576598247389643363160950373481455410479680793050505580567111696815131902143063818965126453916222153100069981107609390844225409401399714760417084657734705439328464133007230957154667549885553984603398923923569024698829273392056621117600586957344591078987177414626636337641577207424551025660673800106300218506439950719754912482165802018977324886886452386980456940537829532347635288463931078809624597106784283339579311564002969912558199459203787030779392393066795134998071657145500568808822173888724217890136186673623798471542706450902796698182765760636264195381088715724185545342726047581703717783199653206136083574501000039595994873497080393641824383214746348512788985933110316789605446403170481352768357949441920433202783797361760886548595893425369142535004958259970129951852098848124818980207295266826025602464999264616768420996608920853676920479999632895077687445677825152433767501285878419650400198541759316951996064475266493377455732097456167169666286955009864441426253722349568482472844217618406423317646441412286984575737890487468433082741672383334527812728010684276775319730340251545030467106805615960193772094314344830555124200290068931733130571298427086807333144120852956191755935162429118603540807217059033328876528966359843006620195705351896590571587148248658985093956766523653643169661230339966851085840372550877614768733648508175701175960129248276790755717084183334175836231131815707573070592776687803227073259957769564516034701201507623110010060624833858946545738551643500904170143463274917959930080321758817303563309223518340862399168918942669720669590267248131180492242807718869365207015838565781318432987012615832417152267150672085857107070083581028022602667803132026587621824754799140267274862731858499241001371069435974075460518416573062995108182472133968310627631538496793069691490203429888139588238631119356394843079787225644355121973174216716780200971769055838190257713482784243013780625467965499696369048568516149504760810009416413048159452035918277164575911427071575840348694876519994599064273543372224377788591389006118728552473775907697085905608978346088377992503637388580460377791623676267806931189562838349113766122569875470278016831985789598656266806352900516786345679222812839126601980789232206633221213994635181915874795694580924168706326034465712010748968062020720913507441611478103459844455872475944639110083886096259988125870728741570924890990940445352893984811504836447936079659333284217245695874598623132123127066576010226973004452102427850516223449081229286364602354774513481636425616043704169774654650609672669667442302868524853697960933388927819855432157963207338795969761173399192114393331063741083800896160129111740335542972274795234846257514608617965721935701741094988198100884701886989964191236773911857711938108428614337591552045305821327909297426542347854626942044010082416435597715523030521887049988919552443046890605969267947740358211073508865228812382894075003699788819183679278541941072632097672953034063442161075994914099313259719973013881038909940054095244499299344097824304834645019800746407194643844946660115162974027637651155705943722288727569142990945821771807929994840969948487705990857297326400366867741307625388436398012610369185770142787034804056339071424160001936080373503511473199067351030303278813338435134336808580903941834528585851424059680487978352167214662753818097090554893093008611028339218199732961657423979929000866753762058437200512602757802742339839660935816302203027099465431511067968569859540744084570079761450131865954327698071627600361342732462058780600798353431202131886691730921571415972765958496977077861990215642167490331662127110942732889765881818883730981199831334968137109888629370597403638573521948201466534090817152013390953232894787384340515757231716236586616638966654482998265975934464331711145952099600064748420388140411792107658668825766575922897887632076389158336658903336089840396191533488273458634424753774382684349964647589069112108803833090165296484649785495156496353999660974848366451356304947552845482876333153517083304811635041331101217953020725759598263553907509103029582178779146227120682012025334698695894783281434742138589161156523910949692134658046270584085592915181829207223704419530795252475384912687984933505085948812847809302687171074435257087663017004220692890065261635128603866896643827122553253624314806956097615751778072382558071231273636792091552238884350255990549617539632062262391575572683748835262325022490482723375334191347822972046950475753071847222523481768314495415461196810677811443217640146363512820271975829551608691293765316199095834354095864274402413245565532925069974809752295867509244608361891975934481716137231526951651290910247843838492811403781524638714025089939233618767911585801191398985871698601054812560395060762806181680642150824872476689901627654808565389733291725355880732251225620172452169149888478050071176489723532015649560397846403350125596843399486258361483788636458970929803172561382699485397055777027765651070918437859901752163197173095827957281069964811771352590086061876779266397193771873012551395742411283733623949013489924812300492172688042368115692625521144806678082655095194571694592178751490164564230050505975571024908447824047261001998304902494989876769068112369131715297365824005542611545646927993456065269030632206184659542342675883150300100775730112560974719390023402203474101627668254672486614920102477685239951205089649199545466761942275770589286922784767135095397520268650732314249265745983150818357029357478894632549136490528968567722153496383544326412422966848807356868146472808342026669923594383088771553391868289415143887813274526172002243839402543177195346252211053513313123161427299421912455776946980470597200920962521551467587644911871122314089836045488371800097804247795130245208097910455367830521483594964029600273350542690137030747644327816290682906601312610506411528831813197189538991809363737100907447948761823374981627669347994272667061532559145907999881819063574299056951784064217389341928693832389491054814774795650710416281964702841160389315709790475432154411706324651716023131166748147135734440199439084527184141942716901286584951487688529637366522014644059827732251611038088393127028735591464877458850459479181125712320234122817561469390827186396399908396328334734685903425209216793705283707708368288343694436172605215813708766881122107152444166230729242209178394736517469320375492282942177965551491538581684499493841319433916523083659418561926806625210656726076093401768718601330657769669880742968244967429795921175574330678682662811743295364181643083817164525801364680062577136463801742600565761042163008680239821934836429860190622004210277959661745486740463517064183400580605968780674779299929943535763703909822436283680069460277610634088210679311117055563537619320651659294738677803985365892648316202124231198746456616133933079619293640704635897712936190216898743089306044097542812182323954610829713885865051992093916526523900646394036926753385066854603499894555929913368664599890410974958785704528062033237914821427233065473115694525308030073144540785208028413584992801701263848963785618721722431641224719555644641291261271538777627454034543326972593503762329620840066644585840926059317397772874376640513811505188005510797014207883523534170310852244522745115726043702641060275773556655241175206958111713419223334656682659905211104066699039100280732499669214359694763604719418353960179472599558696686678513707663955054100448699708702329521655264211603082938801076970342925305136293512587463093647159185328124524020052789993423581445226722067557606296399303099007658709931064077573815271217537210378446537859595562482741920448230366085147020839636006734420081983054179345488866771053114646564926975267817228597182562847294554105023999945220366957016275721614997191216398381178403594773106331408390710479155303603605793016667105316094054068254001824486437483057462600168323183853551778799452193443648200269008571501530055692375080440534025804798986079983576114085798364214279165486988396254627974686244289028959449685360498955804323633094642244969757630630181117703727197842441560185973715679614243014119433087826736079479978943024187617251914842819192006719124961606000121250934312509434191378576597877999390017874888113323707222449414429949068829596672683990788526283136615386784832248153186864344923265626507713441621341891648550109479176968259002093776501292046305935618134952108114324719326846254771700987651087169777338096233961942402770052446984918156622795527632864034114767376955430282800541341173985560655274832483995319200472068547746887702226407876440055668098344783449741307866816058494021353930739295901378214434419987628758595095537776884468625270559449664328761001381896275086794818189801505125180153641177031079814715736719904608867462342315089058605686654252314195331046824384733439251809167661694112747400883703055757529237142657339293121158671689713259126017030597190237305774158349472354855529701727224444304362000498413538329779820102659976289443586700340791522900417078363097643203018811234860948609526072244082213119870650213516943704677484473107824608017867326351857176500140528347306523371575479974028112329489226392818190755894592562225076961731248406044131612290025414152649136093980644797356269158879309066762724036301839631446166441009801840712971404592124145854317509507814106754660004707634493974498285960198248318112209516229913393918972582507222686273221617001479924060450367959673894903794790923158893025174038384407215688586192664953324532110450351376011171846922202399184835058803282462790723576901793527933140778740697887241593286709699972749507668481238952467334124866552095522485883852129441825602445537502917754845513266326758692612198068597071969895088832037603642767680864866766175350480428760989578475064499529092005692209786717375657245266681143621636933773310990196123318254175749485433215655250089625372152752278790451340956313213398261480708507742767609672769911117123842703427236892417871879909750111659119307324383620670368711974853327783949501938925927711562114494468178677243021813356569192729288790781546074907546353709435956237557128414556024810330587928222572188666640068299082564565680078196642543251641485634137516462890660849763937998471886402098721172997235877135778927519256136844620338704468365789649254015469058210816259069741565193414619319754918314967394978145322235709445240453488868486591079547707215461494955758171106060789983554300284945768044320111388593262285038127534874420000340360391748060907692096620543968168943247683135134279109806848372466769498338795597462083593761458313216108428837571516941907138270637540411929249789013945190931537873169053928145334954743203946167442241741901838931565540970062811856347430837830730154744320212628007530209826143508233090747027734379061580853629219800132417751278194745000366809427921277324377257797685518542129983789404311214110254056428561298524401570428937327927086935077162499684920840603131845573298276298460759099860675500163274563229827483130800034748707567068334222921135570846828682072902805433921507556931385293495377002887848695731408003190076303573128024091513631263141328495651823215262305868836378335248292602974027950527745233885083148809188543108660256121691549598798783932155951794607556100207744463984496096408448040860530855833193441232116918755847078837769002442146833415745738749278185810593254161644452375808694061455910609966557956031100593098889828710247965841899665983861027872672169093271443494581225786384312564299823002353887546761609302888512430681523995279986473900796176693056305494598642892187559716295001836744489372625392580326105601033691488055346271200623247507295237517119486937126614632314414695772614756863333869652350622104756806387667390779951328429346547301767226890900584858777878189320582460817704486472160774976877194054173870397362387567867681756940398785661981139004637425630735095760577584363275384513634464624087756790818502828652222009647768971482568596966215843948271746562527230174325000331708783634141569233684004988092775794868450614746777239392618777199483662458456131465434936139300126408211577370065646110157890181425956905510052927028294440193911255105884173923768978651676668930766968159440495829700219252321020984720980706009227659185631160346617677258272691958251199358027867421653816106241209403813549320311093519086812504734743780169682978824514294680819692065529481436452837532203159563843937421299673624680077769582044058275403029707508414241193047675313591664390960431675028044396008046335409215656041820126474129557369220226820600056886963166985533079257689221865796703866306495894407167488771162893066496813521514016462942339718147493657008745655788734243144160474751855314336292474556832455915494782307053531349438711444688116884056300582416301822900957211858904291373676481641206124784900634735044596045296710584850640118295927162261864558095775596246606184858568908825576406667017569446668170443391735132896916723734622636178539126778041988776903333210730113503664925137894351133124111948109684093259084731875756650501990545020342257048265430876505542653021696066606352788334735365399111475404850902444838270902555250907699047932087116335875505298306614129527150086531843036935373524952361727371378148502459271025696602856659451815647758896188148082631958814406000146271077660323252935411944042053306834151474215370246336354884417401670460690707554388591398522855126763933466376482024466629985432662139236528802855757606958425079849975822592479752646456924999680256625320437322121439985982855946460859114251559146202423764615500804480176418490890815653532509388889379674631258589232906265175510287879275994330651858741343646122558198670602532025283490237040837061717952456853136650106263458183276255828024299688291052070886124512839326579287676933635436630285432189182114123720176230051631173281978997852692148980222390683816375043111322962243591781414037285722900447087771303218092960847976316083724884940715410460688400191378337712260235785370842004903672193647709526107134748295779051822413621800200858620064623371295953859427627671476074184523855144511362122448768337884015433793437815497849219682974070115035587432211348758066271949158652261433641140447067425664519105224987109288426968795632937360568801221027260670985634517017216037176626964524719479926353240318636541935543883514731696519857926303752890097433014891890657862117385776054668327494778990632680565538588907862046550603418333408397568126700156702560923326517244073272029742482609315245581516392435396806533661479562706919397037423058609193866670277506234641458324701205840079629623055751008116719791940964466525417781859919048502092155605923352182691741300183907776519369933831488420172642247277881710752510252725249340276510670891747340965047625768639962888818920366950142469399930810394689720202894771719170862192667995099681313540939057324342965260906946723451397516188930530367594004524763804097587518302806122888000982605150428775500410085421092190534065912925389302430918065818869359874465197093894295298088399309640999596103871175077228960411445221522125425414634479902090411798086555209582764738393441176092384813394212613585681040828681994422916198780367584097153308823913646450258717208060381323124025670794845984055939943997070608243146741987413308868760871914393309540107522220976775255216044058966189889607998432103331391632339598695504905547824681205849681848318372465352043506010917843428541853723892865462395875526209291075628497720277342894141509967039690513882562971192560515038117628684079065444156237413930950995606873773759047346239431559503600711770874257840391554627880412929425978002808983418582616090231013172796763353105090341689996036588707324772572902221325588594535640390793061145359073167549817162082058197759877647825297368097371835335296889205231691778464751247658590389454732138721219284838192091107295057913578286381757350722561317055909068507883804631587289082011428956685781697814554204312081048566157078327296500089289708132409503471049485480770156753983524530175234781167887318667287773938252892919394262419736326771864200712507411036003162410321398166241035054041619492345933350332511196932179740249880165612061929652314717695899233250735216959997065523584569898885286472884778522527664271753289541086661612479895636290200823760065652257658754570002638992569350369038118480741590531321104022418161578719484621676064425312967284500351310867373901661159935860740086809447072635898971286321265024416902630395658823749898726778551184322956657666464714743019115585745448276712082035163861393732947651143463839044840749904038604762140821986239778065612320366374173547369459996468114708214703449088779199683197198991774842783546250697473494194137172977073250081679651036515860027440248063588261861062696952573205963474981281650784674717581338434235876955284294448091555346300898366189603275729709925414945809734185287149991514635009551434016596159389064337954865416407923870008467472082697689338825751463033668654611414472851054516398711292090032367253880547165420847716282656147253432898350590148583436105797172331327784619480724774795986363516786573044018761141821017221392933212731575739288602968988318537249745476789407262179376818922895121035182713271114197729310555599661418656808133235468155884019266376533970888534596769963977227448359468867859626094337089508152434505018313852275859966097851045686465562923235476344961273923958082684317461672573284525159880500163904057342961309737093920789761601560765749040943592060130846290516830503490773300243772255665636992309860154835160861419498219384896980522198633679473284142652355662984196865577837379485054750943409571974862532192802706669848687858028041094805842318139421664776940374185670696005148167885557462759485808388259781415070796391095125523699675317807259476392414036715633523317910862487706418113088093500843725163651298645999629614419058094842196842016258184659081948126876837986397791314586521210732680513550974362738797678083639866269027236476379757186668640696256506845997100568447156956178381912570868284346084793592099143524753054758224166486935656771154418109984417922043597750293931401866338909893215007640835280742570614217951851979966055313707484758418968291872702449793591261519462945462351290038923952563576944666927666834945814215049667497762430704662211873942191089563673842453738336566414929305150489736009248266703579403754012716686850109963615408114141206631135037101242256957672610128450470388293571519265034676847031365907924089971733236880003626893811399008925139682950470227528453345156138142277673420037658697054430093363599168738906203094342601603080891813003855643615816866990569295782444415707786079128771930820297077347871569938515286766687923702024256040863438778769036176350609346198139872345971295391774943750401115883661608712287477396642475874418256458259813223304331858942563748305048650565414831951530144392916802914198050392866991907884105135795270124244926666774798886799435077459279483326163667993650339145793850233294413099377940454499640977218885176701562133967027965627320164664942799211152591256846286574177272540479974267211150973559223536378707669616298918030429714919361602597441261097358086318018461941085071854283882863422675619628652226273865233813136331401682663150760328679367358440788142703841645971543444217123263837594658078284172189795658659824048605807006893400102027234522345247255756869069771510845547332569143742791221725758397549871010851781600890428871897606490750800179063565341159479704027888937192688192189772277709728421465182734386501768938183838653353496414637130539956043316140077149425567738363383385034496689200421343179623946578208444834852866281258469883045258556392626306758114332442980776404025484130412715762093508998807983427642770334052353669010517790117424374461094520392185507570040384550670734004424191460377825459272313723990415304471173523578708751061122476572041709065129936102880024054523968327625442454795288960725276040054262080134378888790092248515035523652027801295318973188200640464701955010486483750598367158795135496978315230873100433149901158137659500003585586201508943128651841598563829881468273051162058812617224857347672654969388801380199045536827914571789046453226984892023433052192176114773476104296603114796412278689208109205339501165789579859377392150555880638738503260739365435137008617704814623392774882816074912334585892610469734260643715665821699907944145290231062551316999604874603630168070487746989210529912480012878461060842736658929833833469055094800138979612445387885754435544573730970072974189389647774872915777783514150675713653486116746212640024664387212307019579755055530737650691194575145896641762442192790541523305115724295272982175609286179309503508824488561234974601395964554566010861886910432220700556417031634633970641885740482114736098957144170576578728763341064205983081948332293345536728942921824418090407629093640524682720775022908552380322065778552735029549176476681122496833726264382891433903204365465818076420203762638027720862484174727132516097470940509395796731183247617564927100740138080029251910267015047273332508703841095491266858722016095110446518419535878345596249078264433318099477975648837782663463716477427292221935945608559404197367242011836414650655705210848789076133846013898086237669004504414757387569265648389788927368719325374006678511682541193695847322158569847241004419205794412443204727740985606677479319767355004278090864369112166257134027948241441536954914808692671353009786269799811396462636903295498688083554262360460520983330018277003269907820814708435810878145386288242771005349895949172238687467836904044050805039438984660661819455758721111218050908021504243376358752379552740077240713602879472627671927204293426230896827519824532287633724692807201877895863051389183320933137434999217286252472133965394742211734230825473404489339712177410640058260910675849618066279076086974259121847878215786083891541686831713613485268126664795088991775086943275689044758861526978991452960513145668905590140877206403056595159934435828831268101624820359866544765895719978533451668483830803605740775540102338660679588116518212800679517897538741896647751760260036408265093182841149045763511953784962842604435561876755267084772358490966605450425122356688163802350446590843343730925353365511644403673322364436592869173829173054724860901692066679149962838307748466015229607329893720719342444554697720330537628101823007859396720928521859531091046136528590197010618528415412373546046061758078268886875947032692080303717425587466900081826439498783870253769634597569138492869769536765325825188951771788990417147355914308990520541890593340233904268645735945585040632008517931793645514063744554227521336836434176620286850124172403442734517110730301604315713062037370747658302998766482557340880459594229281595048672115498370525601256181014880507507523335783154638698573684821643183165982713909037612621447713389451293986618840668139444681471086707127185970792926211663789519192808941239910333797118466579398875873610118656027284454439559554285824892156420077339945708317189088492261980640163125853435766867272104480141218802112412481431323146303601277645283320227660698273937684080475875756595396346780466871433589468380687407402668383234006028298357244887767039129675674005440025609129436399360850983895971913312955085352523360090981707319023498972191798856520674957042127372133839082566344329913236779075215931671979921232236642117490521447167390202234717385640121270290926341093502300654487704478550733779507043320988715279953049241688542171710543245878947124032134848747190730627852219783833361225508047244047256525024037967740201096403929949487798185786850136976171313338079186359052513560219683466085426681119113542989769401976398508350398322050451651574512755505507060888077112766270594159677583804257668835154747482250069933336390021803239261448790557981788743631650089341826306895167939430391438656006337190299773323341526521140405964748787082906568614963516811483986597125551926994543261078000760144652645661661788999245020016682489173689788926219025558662998308703069115801022555629477938358351745641103073863276295445769164920184006229907062065741253348515125915263787147775518637035833081172072728054992437662758354285805114086974705165458229019433486654746023593962385674411809647014208476574393118496523619408094871964323295677587568363605397584666735443727250115064748203196766358224864406469370953752052887706387105825629957191316111021824199289136260408708115641255714788034083679596067807550017720920407244344034641589333079380904916678760097831353750691388123610930291954676327864118865118060219586953501168508211404449982841323799411287645059829527154308359528322224558244705879050173876829269405430628653418247218193589995407056318460930209254897178468134476672896111199117227033206711994403995167117040100970966834174279202456132368371252597930523059219613533274779021611127293116161883755514492179949062482848500926970606371749360736467464814171425374695668903017795576462807015804723783801919995857244703722686638812068827398586255665620743748941697020146211019868684782094675814455500939757735170739415264103794768737349221818106617418067838416393536113397766709661659657052029778937153137225344976730383421064146056698011813402783574067734334680623807037731175721298888136901762517261644044318201870074970296148227342540525712290379988052883262177918372852654912307233834265452437721245026957238685542720825884161647381045586009116443741981339532169998715764396446028484114381725839869393244181079374059330594707211265711862327102576185777412643308991428098748589824955053576230229457371151976954547374145982200006825991639213078485149527098276704621455736290560201393522659308490336649669035989526642967437253925937316449699831696613481195368382060172933051981326672004251130594679605611048599836454153641170505910353398041647001659296428229101120152230824516659724924923303406827917623148545957075882730320024375321847578548064404564941928920876913560929950530320430087328124771483185697282549159163782251676206181972482927942587191698736944278812772478700352330701490670786336479505708342582563307355471372049133426154788271786758185458844474921762319401418537663944810193679996483872992027584276309677190765894572476627403368622834587289750843846625066416913815965222684559922741494344983479619419074055589402931382582092954633788139346558718194631137811039251219931380347148348296072900725643432117238133771793792250359108861112015778470763914681351989663348042467228635324680335531387324058954420745708604166494674444406737704904444099424247720622702170961933042476337092260688765338884368625406353218106536990438355736831674130521144724120385549418372165700887023111558039236686191572035674570136986928484729176066323749528636947978085113458156223480080047177188770931321966074736761586066564322872825630095869290868986207690547360448190011204847210066230120597514019877756241443519976769394541439326992257644683893994040063357365214132220503401241474479733749889346700993727213591351938427791088839492834361587312539695817722352211965896324478643755855816770156297636595863000268612886974520499287345428427111352392482807030931939509275927078199467017739857671306865956107802501310497341691821100953504067989931890727680638949593017761235216158452404212800346619042557492116587962592224934167256068183622872795047115133713979902361836291271499387134173567331771294349202307003294585939755217795316847382717732649979057297364224791906360491743603288062914891028752994559698041005269155408498787535022087370300861261498667164649678493921897747866153331380599046818860947319369454605761980995712791486946151814516208424830831317328679790538125201529291295326035073314669420796408943529125298480521905053646768039140579074665494304262086117417963568966013772473586790066605710848013325886525826462212656992169320454531197101460816478430762584189482840178483352156526696749066720663287211942874323628573327029416190433082884899413392898657214745725247379328123614995750800654441050591214102678603487676300534989290933076877564685860898172279079078932975558465900393791487646311803123005148238490273757775695270959156601245907511552185302324719175124627200139506808654668312043880094716139714041508954897244223306161366917150618487804553823623027455751840017600936606283703553405170132945748461677715178914548382640253282484262611009590641450230208901656104204717454433108491612864357741174123345059286197051126490126653677678835781486698433244250446845940385043829334099419657421266619113576411179253684595676429754381167766884068849852516686523854096211786380536549319138049225772536650072156779281480870346369892952653031719050334888818804711665390314906940012507952848603879346889032526927197243390728359184180288033341790359108961169232542478722744666512871616689809087672444536131985273385532112204903770144798264228331741432371023025424755746722512538973120663388878228273808632506291267075568587322813514109770545911545002904174082304787854244825332348065308884780311026468767687247903803393911510801388747194519059727068062293763924308232075384223491735397578432368985258176128807631163742286258763933293749701476505125126614995905425318550681148383691938412940216214017363901073892350812580628822407783474449279876693145293216083570727375497861074549337589272383430892062139516510716030174452742280168187937840185515418157692048855188049222798374480322699880710429200373750428305971539382129140337765626322993515571045046058336831196616477484279143472406463410961367083387218108803771148466494243106249423549968829180449523244221665326760643111003386251739274031880293186710965883239208797040344608156788410551426331568451351836632447966131612334546490653386720382148883739618523024389252039591383094996772324430752280303250763553810257959549819233124304544639582447817654412362286525794257462255165312096221393509718862349918934805857066813400833275126691376445343210901208254958152254174459431898682231306990402219606161047420147494113056761829088156953189317883231030516115768640560845907201051134218119149587717169048434592670462684145624192473456328674226918453707072556051804627945021210279442485843462508034204107763663376083356174132465015835997062396328371169453559055595623627604349933464494469738816195024214641061859360817424102475434601365131536106253149957921597105200590720522843177629982932603804134037015262738372093809762304425750085853967536283383173003939799481056430636033043323843646490207904325154051404566183603805316654210641952214595473038600362848702057053222581933474390201641343260701612076607517081876721179367064642699763874224002903120330949583129673801765165546311202300113046378734512179509589152668826860014968954477788406226486659646510233907156061410685333356446661508238926070026297358333721982282850400782916477791500240186191142520609643920788765698023029647264365689217810179611625888786215193196680763608576856960879123159617883699224044847790131543892776310065127769020540110770455861105080155875395106738005895480211592235294875129111288844419986317915540574550695100337297037196723608050582642709310176335931233260044227308523391429147000230660681746909007739119014756367162417493482590987770307878033677175859212501090935535830228308940937919266049117261859813747810304154087590919570266173813277306912753930560311429640010005636576492899384546978378730412075970223197885971704174263286505653331942003316145970448073406224449709565155192327487554117712771076901334747717501684552378976538644277565578105154526547542561872324529746571427679588647602648965498095825835687547309394141139350241791137563347915941429739157179247544238494932233302305331152774694422708901833025625445087906799046759957516693152035437993000075526800063285895493066140789433423905561000395645907242441135145357740670813773452358332008926257034467746171336843971273428543477246832083157977676774560791531351946354331002577930682280401534126277037727930509139239995796090974034460656563484518939632856520929782497205984296538916724145312721567503970794540594223721458841187949078822842749949709294833040683120249887167382765441039970442189605941770372635805761987835486775292026162503500169722444525381895947601092481319796058237295963733189642330920771773873719722886766515487675645960515773917847526061511051626922536441397994659079405823654234254500637650975157603923896737082149956498084423701047422825451292660153739364602063078957370546002170545118157844404060603557871920665423210896831876850291447550661298157717755567553502356433292372023990074877638497160133648939029626236061525647585171984034685180964935569675877800881978457115374261370626820230318612014080500062261676443239526908422941463908950400315854077337433010169391824026971229837827776840577836217763056675792229875665851914508286949596052440723959894195424447430658162145405039923608351002110131668756731313296137705785003614244455359892520970306756224567179780752463478641903543479173219875824630606840372682853729583602963674044678653252150686517424916129746944362740548586584922029086380692094222005836567290043439654819236497313316827152443231826324552339156712797784513072768607340990558380311772628187191072860283561000157567096096000155822056330227483574719796067674062817243632054372812094366446215515259635286189922612722286740893739250044615942158656371200655188973480768409356614313396855909193201022809615591386756932662765906162320761027059454037130178809970357501441280809747826288946566520296981961138222236972932215871337154733719037253875351674660541365917787373236664653012701365241755676105805764187081232429875684492194750606596284857328127367100821438667509781575900867098930515130671675026124067963625067333321886277122691192160888754637791629492131134829600151662557228714120611057132578869669217492872674772199354003935904808092514717958639589489640862058140147848786867433470730056327343541496200715482976709018207322414274388579880159466236983024044060183486494054259233827215757086736645650102409149261957484660509468606754330892861087703262026176755565931983762984671168081761450196993636691899258269634306961886878529703543643016880286732864340761441517563399947519027975386521788679370836892043410601002311040720790228202051468525452092065757691836485081962151982344801742313725572415226646056587864868695382156744104620070813189195481200447200378734964496825920475511806440564550760268564142237944462621172229216976477903499889554136273557845850027993279838516062195347537347410658478021774413031147371201543063128123996451874572989284630616619420618816831046538654780865297795418518077160353090891121743496707474746120814508824577309029178136968536333974853901947065545660576392350916488745037479287488082200528599221754894241630061011337578925332613341008129074942194976612223784805072205526347403254475916240816554240174812427357328060859713205730738493984998415426724290955383319866110617050622871865979724599580267685416481928150917163750984562208439378085876327915424697628531848207471163583046791586937914858529228222069909039129162081960548263838699229532992730569270107681278198832806403790424836438635143935562974009794781847162031848359530640495327536323150758494375827136282716001448552787754706393688670035866082677396567257282504733096291140687695868819074039045192933124805648318787814620141722898126003579398409270531540116672546290295434648726056412498209218288575071600590103244123649413815003153619343927406119586458224623157243350033987237136596494921091848920026404575662121263267149940087639725104974572116793029401113558495488075110758208990182284307645301508681910400007938096776435234216642778970252250554162110661772712907175226824802002381262454894089138389826120184674845361110717648809224491664007084142167276903107001435619969183756850389975313635001879581966628495521430286748356967849210471304870421367928097212746775505226847145581574419965071899533989819423088845633705739478604986496244765472060613658225044584697775215166444531914870090706528294088163350724308545379880886055305221893959331346852097947985445847796373331237100259094513627030272232229376060321849044289630129302996023669654075709201476585387759928667013217096873098765188277108881216990677091403584865198135546488254202969823111700862878058242537610956386931459864497844263326585068959064183404695071030127635626902270598527035578764308470591459877251232653331097629233279592009304620688612943197205008067781950628332035061379411211857361227392035203800025197933624415288251524317590344360678476169652531714040316488481675053879932050785620061614644400034235464310480800880705509351835909290141828005382106898520588629007639497822842330399799791585283105086321707683198480070801610940609101651401548750202069789560511679474996810190524111633975084431176488821691748833323668660275482285341691659409811419113222940825987191543474427438967475920656433321715200508119241692959230342500969574797765157311357518486235555979151375688973457526770810035158524891753456730708595678528425389711309546881884289857150435662119567278423806521441116232400033260469433553767764814565451265880401840447104011760225466412088062536549186022895489516913048729496328022390072226393353765027652610166153739901806623433012310190408519286469961855697519013986766689139173942979982173352732839192141756172248410278505461008663783613115524787688388095858087910552409841838325224931620275522126682189341414304823367642322268115464638552270917986143246847497571642171005717030668869310965953529526481467377558686611228445461255250788770711165271855609795861195245982322582097081915117923468404129948426380287974835472024520314695045220141867653224002947144512168789273256474844148524585139179392634224566990396413083594543168355334114628744749409593010170136231336694431288335714526307259560826052042347477689329194330118491086235179833071221253656995810763571439310157154196047443307378537777827239028025257068886988289344552318195650671531993623467434135928800603606277313524310565034712580817843620868890759232353446628774369297328063424853547092036563607346878047469646532215201531700708279156685954409957729704467539770866421007469922212451580656610699887213514161049839656201003151859169719294602609527195486478650503809765267166798226494234280505972703636081424783078916535513783782841046196298150662596162667237400933591935266321752980037407152155166301128013498150752988674629659190273563166348746120471659249691608117172660476172884301711243896727317866598830652285639386412514968280714648219507550581883932271995919644911764469268684419072563327237695932142634763499826305203141737966569712941837357952160300397787492117385996047597313548727910493057208195346904555019463954784109019237379980614894125570017565511250258336382422608847977536018270580061771015813324843159046204115944187714028135863031815703379003424850901090635869193729222406130757165846619641162474264979336899014824264575930083536579827376757368343092605146769849649220851386725188670497417376434833574344463652347378563247665278950208082167169405710027934879408098048035086045192765507462555279761273784912490301618585779368608856614175393771709274968251781123698393094470435731270968086984403621348363435683569937734233300351507436645858719529227208606242496400323530284265562507276920112111076169279255108061542290070543431947110965539594902593978533355961424785870058744244640002931650029891586639454311614213392681726281853688116193073447408022266285899839085917106964913554103956314796927812581927723875908833087401015312090648811756242494850692093376167947218180705250029805037237830642439592151141759387647346885583844738885282514403580812989523588991901319916553365074420252114571668665658953230056645828632138828506167031492771831558670573570135527161636230305446898339725192344533085643430297874258297672004942323627722268471589249201592267533552524463322437027559313414751368821293939767200577518908857404605792016374636475704242686439659240123470594690660641680789304763018758554309633259840007176567464134396153385973484549247040082251799343283511479807079820790541291406899853309358286580009454235242385975084113419526502101630417114087628855752690338268833108941172082445979267162846954872523242591710163218556010441955227344122836699301304072095213559680324593558851023358593913289927353245988228684670101018003296494627037247397905161898504840974319917216509581487771381952696620915499817672172428009242438337861768507481855082164523658425437137555804216710007128220618843087337415770170281852711972554977264281946252183218066435066803263112142150772669158794148570718944936525885341568038477857492098554132165066977074570913150104872272785534336955040795575869667705522877257657376548581619182813549467821811756330543567609341820598749662496591124949471329527909425510802741411101085455191798821688393855276217042789561648813433770605390865480326521963193601626490936993057323465082986152008261678766975875176542633578006700731804817984991179097481309062718460203874766373916654827476069110601003775521314443909482896692563284530247412866243377075378542953269954420842808979896940132071333427653757615156461857338777989946677176301865950591464556273650956154541885507806595707846081508341259070154894382682177745997356092489610758583395451402013132526987611362591671800889070594825338239503099145243896703120165916185782562167756248586119330695204280730696741806336711334372626063196406110253875076964115862667116697496563340925290060171050521365066998347752688806142462960008066437127827925248737659808992161267972777296775811678911095723061672761090511285313189403645372443075043612453020726509617371439121304013700403941568810216295155999263846751704534579602956164791756967185958504373609769084474140295932540023004110574317120058917211505833131292405696402765556217910054597285906043391718365585247809567908743293623224813351655017755518635789919315139096627118115620412938392682986670031195648694649430944748720996153474845577146859729516664215516134600997139193502684705709559135031789814721413627061907446539496032866013035564736957329266950457932288350124290101178437800426453878507032323616256078278280912760332502628754474642527085542419679233824916755330411972215454751459871567040455430607326367330316317899100036071832250058653866942860491422182399504121599153469639713511156294884255779647529623402161250838186874060770035450289407761453410623540308984166491486424128904012918864534932388479692217564295020155565584579768329771874540177627954472275475676309167528595434679005758962333820126487371778366416347625320125831904060799562172333351287638903886964302270217576162009444998536259471986302785566192480326276630312389552582304071086620286614804169168717328043594134228974340492778070496970809356744780570897256471153984148377732776323552921880995820166491908909222265319347998155928104287346811118011121325242160041241888176691466575926292629901473513232645508916481979420286002890146680842775791066948152101625690576986236929083083550145541804113618703844068779835274046039543889942278771004509127512289736369679342817451747126693625768238538537859628300378951520261076003295614708871918806052373515628417763049705068586229096932150684519699220271099889105805090231663673790379051311626401053656491820275526845262002851744844012774507695671685714696280709036360619433135487582500201237908428661819800515784821141404022998203947122526672935478115458624780285945722862729061464564557607730800810778579099867285380937619811451595504097539442033982823126311545051488833717826512310189468548770630237272572475655887870154881348540656914294309720617585136269944444322415598747459836003222741773197913941480077080172410030478875165237428609286427143284044950194427098712771761491743062225422694410876698935656278344922555161015059290731180383069300816076179181244520974868311277193247207106890176743957160787356831548909490325938854368923255148283929100664775991547066372839087319381572407372692504832499148152555148998145452743205224533455300464092493485553971803027028264961150844935166326282826367755057936487581236964856704145521860372532022298875685012889856749863832626247172031442590280030950893710277915907079178504218047555623594192364644315186020525165954914029533957943122166735459855357509571293297398050308784255340516344385710002925966637120834389870705213557334736481202028880429060633312783928097131472657480240561016156086816362731012381721841182103050971729850750865001492740005389167356283338239988256614547672518519795393596063087160321662291486873226584255888085583940794056210582650583184857117263899894911041874346417067030724660787793767583369238717107717529425827257036217813213663655479367959570661549507846519249386699469108110154218543498477878348575186313300777095127928829745075397577142244842495041836344081846849068788934306061868392419713767390710348330250499263010376613795692745010183960799088202540763683410006775025461947295381948784449868345572178192359873105339835593031401164262318034680160195492513364867091988828212317355927722107865601235696809190911507660597247135731133712731391748928976003704120040849688860956085353401895311197217824877207507788229794320281167662556768716250226843532783046693482879708777262939806865719117279948981185020748765415987160503183309872674561998371543441724982563719389384556677694992647646682870172273464125458219309629868215672363082671388480770262410877214980835090492827040890107274889929020116282055238137978124062059895614103621767239945365242567778459598958304115233736934193554271862150358677278631850746805446317936257341797242904582566588265855684339667066907147440282645197097100547835873242002889367783526174435912134705087185583233405160415126102550656145403301000303450044773494767427928359207063396958296272973348023339919227532304397375205862047416671272907147138244410368636459381007346761707502337817719215257980133175560273784208709110386000810508621187347514652200419200921207064322871535602375195603403334201645896652541784801583193372063723089146493812502261785523998311272874610949526930357883395639446155432590252250328670182926610651842444208535451413732066919663392336104931641801673685466243255561728292444937640973692163979268852212499911798704793890373161719703009210032486374228323805105200331906848219113583634771613523064039905234824502898401252789643758077485004598544534152438931784249683691749672780489101352783168445125966407481839045440492670141758062069990182937856470563999717672693357856794785073891543207062879597577981911120798565856247732239792728965509243900016256754597146691451584576094602214227421270955196151176268041178131900686682034685794524045608619341503829899694930048243904156007289859926417583609261005805173991513948235156083830275073688790912543601921384562726676523195155095767591259271023708919077093937833253612403161516922397429624919169024094017552616933802944561097187351346651316200043025113233812612059436523657024605337839627736146639718597120892137754654154287129241667351511584453558613066268923336541950357616548079610713278949188668551204818471477760227356356136860546067531079576845582129469263136511979220353672844822733368249909844131647157732269264091011652483945875724659749774181447807605905338459537126198512018293493909905085182022354276891122773166915847719927149446443390279123701543748852474802635255282403630057122142281743446621118753335131241720610809700131952902752298355853868905657756334976580017055327177482638882349678599687353216495102477136484441126594509104850138287066292644583874893078362965071759324406288902838489193448345428401494445165543675587681534591772524402091415692466714357146673240939696300908610718157422032451043325202775620132917333716992302516606749908375794196407403943536460032532225098229201215926044905353173518069568824685764850127183504300190724133012006165312587383532929740073763109265398493698527974155569838352500442252042652110335695843661512547606492080125500055323296831796959342080375079141094738004124606358050329247426599436648112167290900966998987426768812113175761002963775901704753133114063615295909022443916457175049098436310588619076303497090458019798967910069957886126917881425232587341466652396922244723396372939159299164731360406740566205840908835413444370138453418078537585597193589349192470320816422331135755604607211776197288247761243769947135105754885964372983115804610502875947660223521140180362040745098757327407314655466578634544614334507443034747282952979049630705849731878773279042689665934320957327316769549683170786518710536289633167896700626134406225694679320517803444743885677923485170769623519126883196433369019806465772313052326626170506883081389939040843720551923454673803805295735959211758481013632631980925838340328528171564704719607053920877841729004482793877240496622035933115684002334693854117462349361329358902923134705506323696794519568575098897757132718922954833553391235181383923914901913246133156825368178071824299835583941297478745846812851154371778849274998411485594790658934124070441697737935376544854543797436847572110452490843175861061562025677062293579023157892803086064374362319650000832241182251647211051246088308546044385834649622301870470483631778654032007188385547694873821752952379795589189337391174354037832792472414929244366478109431743281236316353752683522135952852010726621101722767232617540441828883035475435058290854175347479562255577636177019545677546466153388182708184100741323893162736906782211350330638110915642864021452212990648974148965909986350155306825447630602573235004146431014669336591996829899396973048473691796718207977961803327220722792068220316942735636515385175105755858661596205935309934270820433387149041257926549734156933596604277547945666345843829239418795809987651775754037229128384699124485399342653777068067224301051527632106461286465313748305427805912741488842417751463544095502012636578923483268431334916400026330663806809545418029487177803943789631496767846880987869450591512403388576812356179890247217346662792958262297804811910022090671686597073000025351179151294803925652913368156281097318145950015356428746424153774428242613403884975296921859134822268243178500162015860157487125545471052783032571190713098949936645598779202195516327878553856360343204591401081765349304222938553957912007041456640597070069185466729503026277057303963372084503077945156578837743193419959808399977081191720386429592768524945316722233878089613776776915547509045683061249339181285897603786267263319002416152729759390286659821304149520031355918267419949184618888090850887574241144668919825008888239005979734987763143169755364511007144966702817286519892033358315018941538058583809973258190647140703476812054539150514738703746674548507418656932353331071710231268319629527494247612871606122961024927067543858107104943200434726303294960375560391408746173973162286274786353955896047783091153283777536828225049695835973259059453048111850480007334649262926748319354605854277770753383510718797370246286360236588806597587413805500066692351268416430090748468493974510939989106872569205767250392428610334837932303469047804193077144790650331061949332854872299348641641972021654304390702315094733146348856937315767250892206908284870749807256582476389660968300056549424797914113409763253620108961689637838792578306332953503020834062542658200446415353240110594798479995860225726037464213128361839767902619503026949900062106972221967671062290582587049331642692845178713632483542989598874206069289860092367852996298588308711364210247811919336978278703213542791224289975253126687960888930615670302174787551166517849525460887590054590337561511099029854903549967074243526793938109148192547565478486294608976159903647652431342315437891372155784665223080480241227045548636998026710942409515625228010844604824264280504204505252602864411520047512828048849597613535062400499511438404920633356022393156659787217013787251781661736951946076800771763349293793120595924203543949285175974422102022209029338391194338235187929764858895246263154607959338268662780747161789244722902437221433768887911460232928454736048224747418772327285760447618749776162716723371487507747344432187754585931909999365068738723611859828509780576998982670301067635792429023699953554063518358692542079834935985402516662896083740031863252726276345264897062635394666414053083576171948818983711772886747368424440616156722262227745900654511334782098152162981309259060775366239635377067216089927036549329601460558582035773362090614378073000366197033720657183245072602709115688317921582090176726126257789644510123884153519891508669408425055236668740414587857259941140345376627845437470603323013923819172832967037860724286346780812063920349237235805004883033279545912686411636609498611791144000140305603727604704194233410578503031756403153123817202689996502870010875106469100598676273442679754212479266064123721710818302777838983737705572129916624441037716462693765989276101700565174302703577377403801029999402541833627309798547384476139819182139894363929728704121001451740908544942481147553917196168755810209835820607839022699515505403298833942295058614241201849735988903407912832713072406985633091844367910813093735812040819189731549209192692008862679353889192400743813148451401537266537024596777188962770318668754040932342383446695407378905026313740823905079785626446552365792073117987833874594147197247096920242171521079959580855100161856543824867804319631864626786799419965056919524679630328652542773861564258194896728244508867054886926606633867802903953164807013680907154221923546533390236750792792811645099194394739728946001486459563359358867283434089065513203448153596891663706937838918370148031553806080921961623044755529482555231233846849501318323836295096865200825383606088214958896980682964741671602248023798989913208211163252966173564055548164009569170412894243287936612564406011724316562167423275354599407310811785947340267431939068546804131593151901261219980219683307360488430933561906133683221474991461643248358789058051231063819669350977298712931060831323947193881764113346570987122707822532632092517585464692932428999265503521454289357943943533714227962433348913207996315329748898461311604116488657093041238000202098702788369708965393654519288156168084634843498481810107285771264587590737001458202005313384753250469986810910456937450312048565554717130629885556450653798049965815602156896898418283423719324427951257594590481185304849469446801864086657496289902976442904599347223420882128982980610293399060725312883701281843608166244852190802742435569773581222721843690394554211056022705695925431763698389217875886001198680603061965489941036363893959377912519957383183057907989638976613829277091850727000475951943968055839634017955326988151797215804600754020690336529899572036375537134933414644867805986259709168312383568237316142154468102982739297861449506919076156974570415488911648235257571418818832981562339747106053532312532998306410698176876662249942248128642164628032282480121820164587292633042871031642914361100770835158139353934482637733680896911027212022899858008714063539282144748778694742445712472479411939012990748612082843102546902413600863510944455069617281897713603108615529190017283613589585257756673523502388192894030628899694904744240387416075390541630757996493201931361706005492116071849423348559613617697826156893665772147427790937578924551432340991040881684237226044890764819270278649303449077642709151513588199171173323412261154413975046117189813809539257957721184256237737063280824635936568087298032868829490522580994860268955911827745853326835204357326861484585249550456671603229042862482996967401027151339595525216822788930957133966324130716994716296519781499084904982066211855105091437991088723170719465730599199772957925147309125269930070665420938097725196183161339843546590816703994475420970010456921788906431059484150034401086536361137771806414031633982805528529017691479895388629146337620490536630811768933358284716814216667418027969032122414043837830803594547568207271190064165187042541456598047566215725497609309568228903494130336295775603791260593124293582878075585929384677657791929021862457801040123766121746741177043482657314802255235663681062018256466093411483897921451489747823369376495401352249078250457276667706893838725027009693425102258111755249853382917959450566162056139722564280632755745814213965657596922688217708025849416919824956478947289646408234831552077026198502152001415520417548481950416620649134975313669416236541266268607954627402412002965420332132168659919954874416864099780131900481137149813463303807460044611475453589140238359678899846583005840391896220417550293644075953412554924329516216003491372720494863854215625638541486337925109179480125746259380978262125034263730354747322944428456648792744505632868834447598712718630329719596137938343744793955776312647798378495900478221871770277977128207445657396965852891177322322496130854291651901551753758293124279195603841326025337201282523166637331309113717880912691280746320117050699812023845467649031282787117726125468380162168625085535436321525005700469367629954930290279376539205235450355953616396269996297221142885426092407143639656129541231641004378442902261592686483766967509831459802921523334289477199812048451505265609331598804763375332144969703828701267246378813988216624697943907033058724851764040257535576759181556488526262160675662285777669052389764719406760727759847672828310665647526632815124978251178398768679644984035291173669361443503829111711626027158650600348229683861031341122037090794273551233385806680199619374278653692026567989530744932560687498593145275036338470286064621846996330860183945807917895390647496353408735519018944440862453209022641125680203173812120944979993273562488437228365006248943265169127164259123954434533799663125675507271101145100100676759676835467671372891484377895007075131492945372963733152901609255145691624243389356187654392084577337438085772657142464292013980423430170758621531819005813678218340648556715914179868561433888799378105114842004046126601377094463080483751632353362628965836169935745167432833676716673105196224400214932966529261278185015122767785614193602630480428822141858153147239722451470777734733537065811405168253007708328062125274463515161629399540252995795965063820164212859909002427192905787705373622976885118230157428182907431537801207461414855360495185713078424382055187956210083269826533533399998595790102456853553151621423059124216809000672252729854212669574149535257437899661496180942398443201443468895666977596033166836570898851005835849251909274417019725128049277300249187265010530623157874204419042341840263559657720983539589031036129413597400847086788703933662548500567197848882786666988729191386239368004058683340210033322265131178079902435923681510615011863996206660099180696398648572785742607737313039646863565658682508888127767084198986392711526111525277949705917920930282069305260215465695810769625788226199581285102824818772401087611013745474772993192514129751437038567900181724631840975289566136791459333850531219367757076190019330418914942994034420213314419775682206353964534220582030287928201592529309736791690505513611523070205529494237430280495343849608963137156889419169017578985279432226203175197959619819292656871926987631291097807034715619661184866540572761384168150416759442974721541302429920372905735319522044486985122903619052756668326401112636660617692748320009121610569229147805630134087898602585567082335295390140596634611344605051052026306583739790565449492761627308913473379698700615897519923000117398190549606373760026269719471341338127145334365151861816576624117733290057577891163688693247779605524771376212337482981174731430280952395270331220893021217311025562260907016284796599610374660127567529880943369246158349656225310244417140915022111979553309170370140673589511930784481216805986209856089179492934055918901080865284705008495912511675293118675729087119801659631637278003286617674950310392865215023554425664842802203291230205784013552453052986078680688399469943049913927121203739014069520136688966778055892076511160120971358028473682058364709752184858200097059470431235216590604410920404795649681911511702522463018103974032428389978806979926675649670941780743993949247856598295572826573619095353994938635376092379485135892582349260257625308325876710064443076249500435934619927096848401517970932753274679192545490620805254900228924737421985694991464552698858618809858269096420794100926746274486037317411562177908764329589813228711776996501041975591119195899407031044500855728115853354306052353684053279762643397866036100174133021220641681864515724226463129968796540407901297048778167747139473727010352688122565507200492786514242932380505668990883782995440498419735033185626865069848993725221689101536638867972965674890913960787879792840033028468794941480859655381537312979556208647855406518961050402480134350724509784259764064395037536036980721531050180104216382101856646823587072312424733679752372255891885726153473973285451260850643206489522048311192202085243904670274753908987714457747227637596423744614268864039922274595538021716134043778065174417268968919255791913463489432442940462070518574420815411829136878889729386397826628387586836181361469427526710141689138771452536419833218921080471109811930927331247788527812464602682438685865101165787382962882951473117301740514248035658243121216951482863950896614481074300510505675889285559536152905583857782253562240711714021161753175148352923267254961938076012844969630644283023950424906404360876706002804210533290140192600392825640458860685626450983625918728247222220657334929341367112704861237701682453152352529184947152502603302915239317009330870696867831299916417234203148189785398988372045859813668772341277329135581918528545953441589810386543477757927967186788142657277384378378665572997233675592351631949744823974311313958603119042023147157361067504694392189310258722297281008409837442806158853841288761698793452240631886555049728614269167977135703194145672519541598943699254630311506436401243936704064208441284287713122741236368282394405823952401994922761109511424457778794802938097808788862239613139101153848534550791395358193620929763284035397004235405452656566650027114308745398572216976310022838023422201273582860077883590877166005606229599757301558786635805704692749053312130981243116585043890990271407773487378920999246541048976360224585154220506867664037856981488961569450931222985312173673544078196933968951983194202115929613387918049621924922884612010789427352859181580998036989573301462569691223483749218043099950912562719029770804391253745131372916555458718055733776276717651243657538790415373639093185673594335453966550048556989005361997384734413592414079874808118708328052125540751030083347937535400501652960517607794673049408953638260487481137170301459554285497244434297400675623692092340052670145014948653743019455083943431951066267674678658557128407645695336830356363880237420046335596833036717675345234535932959289618961015780594383061744541164304511188194448037963897994830715232506033423516823774671274112970200277436783202173632478027464352443211589170350069364298405482447655684215114791508473160374564718671822386074303101166501141372777617664617968924127045874383945461359526980767600182495016678280428563761515702710893049227389701380059399215370058601301732318511111457888028486195375412147744950063805818002252549196829862129799919493094352344268114186471294155772283279017606244513334055248815055432005582501743680027562995640843069560600477148472064451115303810644261436681796316736512998457988023701530433528335733057007159380024831106548439892035216740986046053153849864148012564482160792391652367702841328703241268033915421084168239896336793744234349787372296652138001374774876934057361440355931961268415812216306628557812109738121369959390243683704057149678240244832183034815346713003566417983767967263491176735668064765470247590381445081536660953683583056554864784180999717253414163318906087959208628318908804073339288326350154911686321232230600367336571220008604664776828353702762609071135432343814481651518791342543202320304466058185940467504297817607811134543571641060795857256287700640904740732386255953782899997259455604871697769636469157880850894754853118270525411059079217012327799840800442785339988899369301569969426499325102820246946209414861820061928738296536363311211583324280768591792741285851627949011203158561776678099044867889062944016389628346776044639713647338079326609148691369385809182718583720681456007256352323741540922688810266159345988967458750443868945514924123315941614038108678411981650010393928196176674138946024000095104876907810582900941441939072243560485760385492975728648942042319147453355370320415982635622763772336275931934469242209246874943397620481258449290584715237990232687906107044725797727290783441087556785090990097214794044965532621597436669628002708982619465861565975598395458205817979322178674494554380740292205184449076821996571644144832663027478266725677034647649760574934411176828912646556154352546875966219643049049155759646564270819546774304212495117288017509088070645548100859874888522906122725815736597145240128980819120286610105148208923423816460557758949442767353854804196616116183651628546793039248539704935721410468238653084144557988516940359755597867736324037155636141862384414083657005251638731650307873611838843356997581887606184181502703387089107863098325666145226960743978462322488940917326942315745103858320634302034731433064922876387781422558693360238958367804496670221887263539639497759900506286787980633629344211810823669264564889429016030300644627122313079721620718819674316554501660220129626761513606058533660478381503017875331614554490804674448626808681913756185690298995035008752971114628041467552335702676364801885944116333334365426947423112974769767749969902427377974220821444504802089696613385922318075741309664202331056242619444011224277053249840069956184499424102578678529426952617371837297824338113034414392217290568414347277097269503652928453512269897367978312180091979821886699392175231425901561312144805799286738396851639503468330767326651266435795100583817843720120657605676740986861893953504559814737010328919886704235148288080594923777385070351268648907800156299407226968261644479778325395033256713263472655147282072474537857920561232907932787825149487339459203169472247376482826270653382777456462517561519297753863947652740498654317203794099788719330135419965353277421446134221248572300770705285107248161860659651282828897894243945810144953573737208167620946861915977678397874856097072838831497935534308875185818097600874654053925235129045610743402015847775081574176009436341705764037417748536534050501322152761088016203857170433018965419849507108163426785649079480000390444093681667957666741700959473967504532940355733173409487159160867192594131198796679379584203018915064091603907256459584676440496182593575528614011043814272390483562404960080783133110998610414604959129934419615962634764448883396464256566513591732501378028486719199668044897206253146802097522628135946682438758226047458208475191854463411845002199985465459618662915656295999280576546794506276911944851516018055153500709994826640155900260532611199498652301223240939681908860893001504929839594233069299079726993130848710145601162025320270575984774799339069693089222676878810952832287375650535578537108853693072667758855902397379388540854518328092441138764362914007305739409310181367652313639314032672145780986313852244443180141975589388214608693337188175165744281121777970159330802510928822882139118700938808870625401972963193771228547914790807843804240856987097429068509531260925505391128656613982740205147744891381688698878183257856826221206717065125373901346304765701919613475721463538124459628934983861197053107607609528980480866373984658640992982272761462457342926505520799939222775867658811725412782515415274377355390652928513492218968422828615376145169288695678455171822875045345511931401373151282986919077138765969931138115529726559832360195628479797864812478902647060837101676726613258136560406052433382401408146249995897728853411894860370422484768470513325266208698375699833718611281694260504529625157040037022359029194303089161700286332832779672781858003968676095571176480810384470454050615550689356475269518733164785763853848955370383513353131148192769381323315383379328851168920794269956215928563281783056477172959743363144058789554525695544599346631521463988539794195269610426575174796396419799079325250848429900908340855100063031999869280695297422254917434441026927062723630707082348829179029216596329835904679451328255970848093403590110741280376221946204704800357120543425863049282899437771535374187461552380300627871591952869033537801119576033496781746815534034310504847198744541700548328882568585594655104381707779957243522117549640250977298224876129288927983080656107987820180847618053620381905923315802170000208807678729198465956103804087278649652233462383286626301861915616158202569795225296777646490471512827947611489143585771887506310655521046774341458401356947396998876298421442998888889660010126252094374067977089602853913324300028664397189783115347509823940150731812630518454662978296183597358075669468539701830728979542195500171751558891272417280076143394500390333154396584211178163984080274481421318273257128419696283589643392632839955520079836483290628988575135069999412763965386605332526391952356822034320795573414986845454860062820841386777641501416727143768263738795533093984949177467435532867180660796789227953785972330898851769258988384684921091068766072359766814706709665379605715513457647544325879307663329512297509668403784506739346078233187355668291816050334124397167800684751572990799129694740581931843349797484059711121638376375441936792229969727823000102176072117391023823255004531583298217139639434215349047890707916945247710474935678362001208241544354022997581387750779761025413286967125206409248613998092291282057415139287578195187548977130650835489764520091630010670487000098827272069330646923060260933119844624313484785910725105594431494014778098386073492573797828646158658594480032602213251500384476193163899812899305339902944637634864619339385018695063455927659092246097936211916334346237103750999697764332453635375908931989230303320904694142167789006481460203724317156461751960033287633295857180095853390778961889680303142658067344143294086077215371590706589786924837608636117308665122928476609328340285669699065662724046823463843005239144734329712592481971504878318690991161025239568107543567329196709556524413318990749308738873992746508308681071001733634522254537526489815432954981180682410498817217515089002300643654013306282328121023450017109422314484267092894617514575412064409049408037179861436098471964417057409623311150857937416937726267152309960886942620741707469276790007749733573531617596593434741414371392636462338092788779690690981355658534763018101072678542316934040357506082842159191992161486151608259918940067968489980583688625244371598012071978217162639388917199180004787000561789976843235985796350718393210074207023760444095811458418976668772117006319851376621397566947002607632759966849614482611005812816689190619164529816667076833065355642843998849885387739549586688201822733451658328777586139141974291974059777349798784788920875754108314497568798862225341183299791791959615155498217267511688205301344644800556133382256815807349447144114408491828206520119147324167539884932772551256385731075833958235924973780971502534513261904032480084850270822999692582700975080463327717553293602667267311212709109392143059861615043377641904142318649943162862204538738629448679458986840807743697239516343611402731694530534995374924413021753024095095165896246163259539023438290972895128407968144226604540444184137131527125961876516145192360120253765720961753985384875478020940514509334027771502560266830215954192062166029248509831140236134185619984266196839275909842480843028225972071056201808708537039151470206693177883169496425818527654543679658609158727238035152351659499158897047985030094895525984526549500410141546607590645684382325182816205570240225688777196187279138878937534060672261293814387109987918609746146430140406072365696630772138048447685238878695271946321613684327056701770125622206259892168544896766615025777153438201698467419437276923793676668808594911347154123167124313244927420071673410163178996345303487762773241537874619534817361295205847548612326453012857075990812987900122357742215944656191733787838384352792749133956117916941240158099357299201769593171052704412398942859402793553204921595167168586733120183456583240217280646467219727114520961717390149155666698318376680942389284304456252264753849115788509791045284507667239050143201068796027563788626087177215296761115394913145254973825914539641708835691906474786860675687389372842324647895685857064544463892676095414088268790588651857727530513226684181622718410520631950934822244383046665154800210550454853044534384564954409519448305941172101346800477935406138838269629074176199430787304850413115102364257471726503315506869580264143347340621088111946048209063003322145274874545512475195321318643040164870207894812652753380838568131446821141173977844807155605201266221869132965786982583606537659710308848210017350937516512577442773234403214318160092380241452457813519802827328980096996406029431761278814937219309212941574811051443705387596150880274665867405130422351937587067744041149615188131927076250287816242539790232571108337659605073944811254110456928601288800635862477423397744705193434585021303155262671240875584167974386437804076408136849762817074036937976936759603100078615959705437446034081699728421093816888930229475140619774284465847262223265390695566308881132330900792987387203531565176527296700815694288940253801249098988718745555412818498628962876997536958466510153527818132251672180422421707132430107376089383282022323467689226052196719475544244768024110860702771841153605714005502135939318166245093422642115120441672155359372015302074053787096782606662178347159774720985197535814163297865813504635601175734878470566516716673916985775307694348934867087352084879494975484819320827775558825414750504274882990059876693898315342277867892482098116197509755508503702663543706089403373635369008245560309764733590774050776338343656291480280800153644562816008174456769720983802190682592094229646172530169797304743387896481535791184053351368713597269278262361035152332137579375098789506331242697805555899931571071310480939582412280658167298433382932291361104902444229687229659941139889263816955117905142929155112447877443896424020788519716491650171858895984082051129271681007489784425866685319578904948385651667246940443470984667461500172085350301821513763350202784150843080665491531212904921361501701234961679263768309982009569980234486333293025739986193272918743704915110685151178184672522584318504637571276206044417624726600521991918125994513690908260906657082662785105218890890815591035755087004997343317090035896990259226797634151711682429299481503785505764852066486091638948484919618047331603226208950477283337835584000660744384949878261071301517141131851779048232034389589389153393751714991366597677718681300711361346010485117867305313615893953273528912503433183550873474330279436959015941839107975137809545771201731489646807830763363822173530552553927285196339919024253474398655561768417135793048079834734057220798883590920380355590453261608451629613190911696691454605270871508475097990161479531110752690499309030378424746724984809288500999253049143324439900871238788005816707739323601072936377849722271517143712139054742817643919827917405515706785159482165974651336378804070937709820699473465128788277169206996169844109392809748855863503987902404719992614770133940280036845199817040986036613367166181696812117234352500328039117685419255651683191323077142717466669390747182512615162696184553418883579096122232886485234800146810176646292186644289730974263187762683187855378358385572806301404580981917628279726087411750018480907355595868636395832620915586811782197080673455589987338557242925920261289577492677512247850194518665358425003657003080639483934984874040136035875005145812956077275527150184195341473816307148657327004313082866061234204238979027731218088743021259435322851167507271190749697863935695336717299423475883928731147251909264426591583416944028903024709238588644740677233965878671142242347265033323739984013017039788841665114808094081676152126824779461471689641872439919289934398738029248184517132102772769116945891719011478440382152509604375450484701214111254722063213322835782295268563993057161386931899549593396855280294087705616184968835495083338123418421556386654126222563444229696428033304235015263370627251478493927057001105162084666085789679902243075720034732162962644663807914567605818791197907475472088379734914933436026399370543640076173363052941233653764752995007870969916227572437277084165167445587165209777055981056225663873887036854057656142219534680273272974860313337137524471126431189680576474126339123203656535468183583164597516129695082459548963242172252655141764082697197735827074256466797012464787794086920866953964003910893786365628307272350003796175305484339104395950233336156415750690726353887721768803269050171719378072001499128432478909008977457553908374710908374866140577484192558700676837326469521083706653821109402355274188678707554979385859549811356823408957438639664179309565958738152284506891863512226199201127388553832823021683867428955928977457675376657964641589248605581988703779929681735610537829844277560619055670971960198288534446145932160558690932012659737016215508774709346854058914835573669585581615646252141953322005753017290580881752520448961343003727369219764548826532963524584559624382450395495753885739359855440392878208707539086800349948232793104209527449243194591847926193260681269425823383944242376187272358046921592929519048197433215734823597785372249416092959033381580828642202012723198408807310656732407841109988892081706681522351432529011347827453074639325380879295092165555701392814954437099330601643267200314962815442694742384359499220158864691897389826805464759285866197088848108826769511314503575388586827477115283748755349603286449220199358536052800929582046207627214222458622650642674100862408981941704761456347952103933283729876264496712669213327929670216123384430664892461258951377481170637459515212076954975910821728119217734936862896003134256084437135889709898841290405329913483772314939829456621774610233685558007715313278228740267180861781899896624955569023621981627775095153035011083573746050404469788808409827397675199752444921225466665486500748791516392764617849666382808894460866776397545542544019785395552329916792238135968897641184788587195834907155190001025599408269393597272874899963958274957228085632353463344809343837671260684256440592298789865330895544802725495940577840863582324045757129492583917453833049078128078851136240821670721487411569705288228843471367279848375329728049783075572616843834410886408484188556200442509923573042288120290283148721573786833092362914970818928077443365007710188928576642687390584023127836894828224024476312230776647325778976802598990243084495451064773877189019955614106347945261857735179861705695524257113665771267064542940695195416671820270413685604977092888059199360229176296047015010484318574792124990537529012587854982659729418545655796138543487346034594223234141712607974039807876862253041080403609024468854039184470821973020594361219859501902207957516334051777464015604395676463213695090896023440039071792585070205620576594117428513561414114101968632280455502312152513844468855235024696737723279437509657579984892573029309690610854879647472765918179066774237226351276786977778307554079373297874797823995842906079021896529432165594874181044709885961001558728296733629832224073870460790474475543390999034865949056931187227796786969432718013955190638342198510626722160012510802535951636280838316661492750921303500494064030276550688074806523689670941308051140752561279202816185501959147401649060979854708279645716587388467065507235476781900237739064647808803504883726429156540283573460764014800004240826200019610107939594237466555492135606823222318840601152532320975374140676478442083043593093547085257452969712667375732376000999173580050882682475069156866816652763498553076425637778436660719599480951283331165066086467387725809328586298901034350921687634108269439171971831956736752405397451188407587585621088559079450756361002292993577503048095762968157190289084987296702081207792043972140029220169413522000457651627051218092966249052907402463432938304714150482574588761109795115494157144533511945253297913253235128423333745680770783240240438680729655269790412978255864813637949772913962360497823399787176274143103545788889242059046122071681892653253764922028599648069777414103854478281845226887915185349777140922145876621456030038021519186772254686262200434048809574360014334991158276270822959305004128962043124930448122026905507920335952799556547534586774578753998638647898463136729485984772483381320115556533838757585924270905732424411315230754627065290531528746097663591293582111005767372629583710939405852357616762025505666762480484411940087283497125069575532594065784843865745801594686941884899631139168914767471450182187351251682706683413601242158142122805060246793807282719747735093968131137446491471981880235547526082451076920350455500968865115026518203076137370420481243495983034521540882189533336011815704101578544760371921495040339378831373133860056752988431110757985677851061030916728335689992113626603935418247344539231605921387858550065950559922183649631253623207795192753210140367034447656290383338051015731332814916217767802924391726062016820154925279193937278201268950555121305784225420201139735509977158448178768664548269342554884505167068295527631280024268632172409268648385361788753320611624484325570464990965767390522505691650754897323690288351016064484548072782911135684885210231664548442869125538711492898606394460274512979974377612648159085234163082024363760298254558750933097867875689668575572780399260790757572489044855904519406497688126790225589188343743300281723799542918530978087488986024663306762090851893683509116326125109276857137767243015391440377993560791598937061849686443093566059503345355535566536998920046177527587078470667183191766101828731192850830009096867605727842039468324966167518355641915276515231080152912661762223117284486312114933021824786408913254340743568402948091172994192934464092195206480825170665323044622820317840983542381556188125791147073102757444778413560306709639070919745816520298967981552054819611410981692843590278961764870062908932451918308922064365771631345775142798346008833594246045515369165884463321836389567932374081113304698123069731816017304544712056540264848885749403270141728042925484235181442867142746553103637826448907627114917180097418930508779418594916457354829046155886614479254678599527780009611909953757849549416636659695938926830860892795160358937602159123673201482829094052568352306424228133667476364942626538509957786958532327091827167409056095879682841090649149211650519162841768153535606320882413942380575678690559732762693359881652484662869280235813490339259774046491310733942834447530963356225478605555615908769076507859688558600507044880471081432200408532062040601245528094252602139980241496485243461192743003342209385800542650999170082450081284613362521898521829824063956783540825066931669750457053060672645942011605421837854367640305320187807804916876309793463463999837416188103430666832698879910966876380939810736911519743364805172427773614125107309824845113359579268835459653808925676212082089875724313431806471534902657613214757874201901803594590920632643315381892956523180742672703273438220660304320464819677722914289615079631395376940874897748493734279394967043548555148210968804275736534173138119639710555943796243926702412638728765696080371877132186531788318921542855357208413129624011878023094147030699369763617930527804859058858664042880317782970737456518777546635237969946336642037923437067507243833538373437478438762643392385482577466305342727481795632006234369357026083127569933720175410201704791481932827869574462556959562423094988790179146172805515592631120718338184661097742248749153018733316532958918536166553832172210755232478248111945116047909308081035897309962257140716749396117017107828820992156345258465384771319143314062527679917349210237257766173100678367168162766397780103405680740986971296100582666351543206436813323232867988442473569982324159753328564910321108225556946886384497330346915353829730127549722982722838289065260262248215984782176834987313527507822443809094709979786360024705855277130761740573373401307582778633774589265783707686963552727036040431602754289988185871679807981875497516884209844596401109867295074825792296364568591530146711547725660995020400372450146710437228129437660379993127174292966898357782811255327707792163043996624063414042680357902527088584116288141356011265236511271054593978063722270382337982656183941529552027148560275688485527169291429626957349731288580814932290236364565643828298617500095852652651028127024149948126717072726496911221384740476451139244819221014860952839537508285103306362007533164230018184861851539434901145321959848955855493965586370519300090983175778855537422811912114253094860517091870241527444460091259201129469987523464221796484226543416373192830184778254233052723511301497344515759711961627847680846101058476481120940180217852973695676979403074918420324147874894228539148707491283047946032527047472429697586034175878092022256495539905247165730423985411934474185811736100533175243994901726468101094225309566400385149324856411798352424387976400019733872027741076650843695402809376521736137754611894585626689220706010549375113362540108030062760404132464640150743848246799653855713891472637398208956441768847618985890919740356975788644798232302476589470087914317826887507365524918724841320004615857510972322224320499661636260712631117048656294215703099187104822589792340541738582023059474376686330048976203188565954180394588321581719361690380968263764519909851326256364840941514440046169876473495227416447433278502623781905439937583130619168254917975946322522442254792383458140721079887290747064988026074455942473257738881958122531662009463173344398091912360903495840946272234175479761022466812698563550255883051118479864160041509409078577788473173437228527923113764557812986363193971577237249856124022315223360683133590282893393332604841283527123768128192963608780935342229799789273359716143001093416228670592662691185715443752813328055228488867249171924532447154506845478965324575282911497869899692933587262834210974826306109294406165536583578246980110787973122416632779293186831069186072442327808335522772916831248787178126068349623915770904803718603322478316030541090044815058320721776954756834042962283748938251334657730656134958617278316405696920673437390761391856452549301247969191695044335191682883319835080323943093477378477528573093211512931484123936330453643934964377464910955585258284598225877134870375484145632716623797107874867620610303374524069291993403537928108574307477992097864708863849857193539610598578002518436300164631777835627300857629264138726576253219676853478749167710074333440435779069098522398587490723043335067440272819066886992795766046686116526075003504114951028506301761384407077744586695033394262463560033279950662763651779175420589241293793135119502181217272014807596664569923694797665096081154610746544544262221714765916352539624498593829299342006921851786510837381775580314808437978943332522899312782846346171120552856439507159808002051430644266895723768744579704565902069866692495184708646710094662882862883407640146354908414870060004310404829120324258158548441704483703404733043789704557005960061563995592419309823007663430062631589860827567874814805209344029008632941854583937083845833691421255536197736533267401962891728382538508578384355044965966642362802845646729794649330815058100404272646152726254889069767205395654751796487903419906956242051493904455527569523399871300144979095067575956658174730667167249387598112397666887239670721471183238580438139983553324525569144279278446657409163920392709719132957357663310819196539688126437495739949462442100165569275194312227543162545687284848248160902630662710307296312680956701554634078887236309652490906671488673204002969275053687473157804215519701969617194645338120171148540178323740472915487610636535140719739754730859183717954901936665483860323657066310235000002027108451603007617392545445123506524611504373543234743685088810189064759816715191074147427553179282675738394647521171007169801205819304945167166654841038134400640580401827103207441774322701934503165605288609063532018315722136834943657690290803378027816770562805772128264737768286880389492754356400616412584745476046389762059270691779200701651731587382498442461287607541624480537190970982378217727248872072104090436444226726102427873076282231403257401609599026680875773889809408550372950706879395107964165579317797871752732743187359214718055052873002399075935168398468807902732251967756351951737944440244785148543276491300810559869497012793871197531041297561390664274199342532958690383744024011466291775744031990539967870360880405729443524174807043565416376655241155587921412226454066898667825149873135885661645380974307392705467223553804927620794339542993410055423730271235163693600893000257264287168872058874804270693450814901049684787694302694918717597035273653620210911839245446848596622038641330346798944237664398642240564248048332887324718156102873645926933661912923488447840189112094340497414351851097977178477219183757601236175505037408051550252390450799155973162593681552607907345743474577738232527837461566575183978940422392623919931559573222016586979083589089922577980658713339306736044007442726761342718444374241273899568963250759665739004869061851823098164130391631162885218232016838096645723308726751674670402331958934666089188903771390393924433068113992903017120346798632636612544653347192616250259612564729812550254989273517382887602861954921156851843150842533459606554713926060172597610099811703949919236453532587208119200814186585662037499924630647405563154950322744175960898961565519669950770188140972794190366496677052317531315487127533006383065849113760079280982690244839525591617956356947701554870303672938372323377313209971564650156377685540042068856485492444489091481043917089046861017158751360670301269537959021660006714185365411410075406467024447266118789062091909296507645107114569184259896383399711304310849097791174807017778689552778433105520961566944970799501106131124890352774337186538119375871492241698528981672359556941235541609399796916511492423820255209698220025430325523912647404058327982140581367036175553122548719715062536962957704294709980307196852299684835427577110191910375668928379532705048056960404677264121973704911304973637451365254725779973675994873032089033595844460641447640206707256617529508150084397266615005033937234302052476290245379391308916208289683799612801394687855080070332321844896606731643560827893561192113678671741414850314749772974166528263060740698655773051415142253341802674570847456226608578553176732783248140414355415989464605230142958841305910590311729689529593967913727483542628777676045540795479856365515250786488034106027110195731268387238174214355636685022422788718349346081513416978329165103350335545175640133898193059659255122503473092347813508161597722834426268410809065158529592448966951639818574313181099239414040189058833536603963771636212491939140404187468182189009434845996955728194724199125632662033335046344942573263565090436852072355205316129472000188157867959700371285683016449612193822580379145224079972693907458594824351336547247765913568516963696487789140781413614603540645025187036587161087438307622207880909975190845143946424966459338664102545739271467065791164663931261874447864687230061229811618066775057921965706827970886797478945678735191287832999305239589275756290713402047715297764402584755293970716601876684887663010622482886137466398232393361292586278297687711542108552460458572530615483687397892075465869614582588211772625262699191731177146734124625563404181914429059698312734493874936827869217589589299444321277677684130169981981798566074629212487369728314272587108148287715330216187484288641715176487602665264698681065369495311241679064065834993678739885127223549611528657019713311534779721552110359512006499331508718443881437585814616616628045832423963651400366483448395852288848675976139892450409346711534731360533508577400814991227547154017169974244828627144833067706147148640797495059995263959073970113779186998876060352444019975927840690679638998343500145807353951570600739922353398815044646378372458815644892201062547613329843509139034833441324485558601497965963310688369827684403159622428457805600346438491006654459650492643154547502247524066706408052900174970007522160696371201432767072151210402076151911109493819916814904847559541046684432476896547757125111995742509025212229166390766384068002740572368093550552741771859906241963105534733821650644083269608734906329470596261209726366872014207169190629389410869760026357956157624077826245458798607547273017167407509919085987338166540836667372845550094920674833603485606917359087871090040663704234100729258940535273435405529142821986861359596812032670740421873128001126324511000127482194877345847442591145102442383527258421806505910315021818019337364667685515049361525042896685445405397755770523690310251558790568423450518458268622703885289003586594870296803498844025861514510144841961650385895022497630819372712919013724906497802517909655499259678933481244075342663169722513725568924931336983441965800251752816043976524631303861316243862565408818693213610623599241760552396453610719832316052540272210878492652594160051440035461997727432179868811563838538565588292114006478410976744472132748004611283305494556259045424759861851083825612921717552257782241067689958034794844581222902271684596320918803915151035494614409836129668493634876130451181868415373767619190671882282367691694667901132231770869521936983550561479138390892156811603758680410679383910704411418415435275976404482098853314271786512624056523222767494645131877791541539980928484994808354541190209076137132655531782958737051947471335002154909239128848908017204210058092396320270927574755826334988686002968852166598855804808342503606430088979526444614328025873431283686991390425826091153562836941817729254741775464506007544181993806119255147761575981267645618233687326269017215377712900750699287093713886987003889469012670434610634812343062805318386872662478008777252817706318718265398202299802340107579089554200220081051905188235805091778846174072786080235947057723145527158320488550563487686650976662518879542044585252805306630567513727423831327879016420519362096792554062812809104924906474697821369092253108216257295118418107186496114002730564204052148902858949886407623770974455124188574167449121268981582361576252555582199609622781607590608870291609833989835348755093959405945943490196862164082025199093948965568680967686030998443648504578953706484786502605790626291024723169806232262640929839408276801676599331578379992470023237157779066811500368993779757723189496971753484184897311689655484585999375781082086668657084526936789066392972824145948185997718018317893711811815195394118006169691016246934023871593845459606730358918648840750510766566028482031556008999002612002820878664123623898754627724421140674148419530059009460533590414000690936234907215854819126585788165978821243278399577994982888426592895632843007616623700545131603337376448966492969076263784149175572156571748881097498023757295819836188337603055796218361783724819654871490542657259712473066727743259878392819614749194464507850104208834466159014986281556868817615168067560863557137295177176520527819908991696135348325990440598057520146980099426171321205374551872825098125671824158478034299929792246814375169796504161143062595702996785889898333288365707876550565823365639453466849410978724201359825234424870370185041717291720445937756773023163952650779119341822434675205596982671126230743120304314964484787349829926013910178403595003127293692201243114271892363526420841344936792605822189457365667727929879105222322703133565589846334698092797513408944908797985450471361078201049666856877436712824166171229654915789850730682365598172542177861492925976776094954967977439599619522502946005405449810483122991402262237293611647057389275975300044744241089306363807142674877541274151406384288310678327272011921845151340582224187862016513006516919740543461255062868368039659448034310834025868704528803422107604978729729254458228847081244149404615519168812749456273633098103026543493943697237975563644564441429147325783879656867388902960829854320402902027638424920684279666635625252734057971926215690777132588627582476094773753954016761163363224323822456837941342022227334966291378665229378546165327404439507595580106704757572677340284995053996902470427598255806332143737971193451999987294590682388499222646627623910209664288991297912819224523697185170055926633416174988027938743685064324198899880384261771799248507923090208151630623037215087752204855973875442567014515941694862412894518837029736605569005407957059667307095026520884988581716114974644139095706182581222413655814782881982158525857984424799669596830201459001645835819794735799336514532886861945041712087573446267885007498460249156439210780159137080823682228960030634354131785152169449506692611246596828046073849670802592826368150790595627725388529975869272535115900401265863532552461942856946359583246258604633230968990648566599103565111967443153969228933346644749162633625058064469576773574331147298895417997661910205516517866104668505854861846092553886020274585898705021146486921729148855827930003098474561985753131032281784986706088497912845515432186738255436651991362072033358515631284447490429883410198358068278668017043745451116993729012127154078922324557350259192231572222629282419220562749880350854276797854940404146886851788717899372751840502421204705460133056776734256550507515297787421778459770034308051025763035028706675986119409434912700553875802138013696937374246626137218143863453766268111308116975583242361993347637191604591992823644664709305323496359609085453846038971996629324083790148359146647064834836637390012669452823974626375571268644667161468511417798563945126462585203865997497286326815964444080452861159436990458394115799670896390749636860139959050611050724594167059467401531219986661508965441558224606368398398570124725995131086559728749055065386620834909352967642861620728090205027299248739102249297704337894385655943703145829872504722973987598446423105555430220764284923124992383853378306512037692564641270519939083473823520827932500845774711385661424266357371114813658053064510860164368173925239693833651034174787968610590622396265787569446659666294303596507223928279731627768752549411871764549934574214080106626674521952411666993872670854781606681088147912274741255310465298163787596542159710530571831239743539866905373074438568500662396731225891006866621670667646469573366347941002179931259905275593389989419882994081508399513018188176957449126583961143069353217790553536596574751578823029584380370408393002600980537883012838450726763877490586938443446251878835165702280206108727662831062378311475031445243755480432295077001906307215246682422778926784591119857524779322117669020935469277324968391597694378842079551143497657294153983639133747750256228522602892126521852917148966379780821331747866694042210888724097762495645763273509930596871868928471924049949288743268741753812867129596087685421706475989949484430834044135999234354603800281504236850284385574107442228402939474878148179160694158319224453112292814666150907263921273726720808919201458885913026798183296259507301782828443358399661589983753346172734069326299765167361373011215327960189357125248809753042701277984901738969806085414833095679161471720883631232859843163792257301483586251556703574841058164787596375695623256226215139983409714459273810967312124030372097358798278148808589940442216854786687099974289077135256146007752950876128956736157262354547173815977897011070204947752164203713402824244616741186383970662253835170585125706078253553681836810957004030279154816187045797000317764692697601014205421807734820925049741516698974206512179560210698128187258229782892262936406749877548686837235628259148456519059341057168427203874724246265678745730627904491157165366212554933799447887497245652187277468196676903407584661908401257673223205261870340654822966605036705434764801831254282371313733772230914576184675924604294288026859480122498908352521818071221584972833277238036728454956327061427714703092905397529765822777728144615455628282793091748085134730774602714099589969585342898240977402611542765314961775089895979995131218014449919202635845064716708564230124724835353933536331060271071940640807735117014844278893406314933620078337453453087342060723339893448393385604137288568563881259985617060300248614558170448125203664032485613100925572408503345240591618813405729253648313201306434669220267015239057267264045671457427202478132406987642438877998613822260196116628447652433175933712442179652873397829285766918836436989827657456224153999764995066819517078134206717259309526998314063611218197413137062792234782411755665526788398447865565688047927081673795168432038066396007494184136257690978816284291298719883750754528434437840834011797163209806819779560809782343470368566771044004991064894832972508798878098800888289834605029133186191311329624919325650778668601706739468745259124678129823287277066844622342929696319005573694400532877323133180986957807959940734442767532526681527203730259901374907016697890326244960468081929016206450672216144122460502416293544277113474938211550099767008393785245954973656880120044092871139411291381275309403551499943483007857296675757285807212331686519137210259483410579767087365842848602735584116892146129903084402121866494332224247389055432831953201036587770264176971902083557785026680297841142618660535171823857065517478581718730516413607396740493495234843468971965117596765905113190072862169441446022441172135247320673137795361490894581514655632754378450776492176386568371774722867639804207391644107258021185234569215189593471481632986224725718909015917215769792720227664688948372686949090490055966523217498760446907307955156520362905063776918271054208930240149330024569704501021980901561439607643800887385731326601162328251438688658480454660121605522511910922949406434235195692414874085360084678437954770903896481034027959503647473169709401860110089033071966935759346112648017545109192741623725855952779710847870609261833071144659085810491503466777091048416087472763898861247553555025979332707383216263128401595694196668455373370896840818267365112395904561006912899291613125794193209671946052171773300282900470259049570547718456073026037182461463492759115229605813615319648460032106064779630418487454218032716999263572776641449844463644026093350109143559571409163549066975024259819880146626840302686383320668313793207554574814720907686803478442884346015024020262219642132816801839853036438280062376304267571239242587077092885111132155893645870280822879927526667030347900674370375144072499031170516123193907153782632797700786525674539261178254070911021614365515672101465016774568213229732409067583888976778366244957196254938005010793772815492848248456071898308464506362252878044273574922182686233943812757255769503326861303938553869329983525366495759392429323518910664813063904616999705808329479719096396106664866251822478184170002777643328097221547031072386471150917601564098195314126903245490831841691414647104504294502109679028262347011757903153642311619996803864072098640523646640985479314078625301009195836118490632468589791797011874959906500028727247184205670687290068993924499198674178992776187543641461745840398540554924673419844636606232783277941134433406836463601517975905692438403319092715617079612334874690587706284468588561068132379340827550183221050954084104297658766340309971960978835536846138869241727644998440850342924110360576695594966238594108736155392909295109820315877521339234136571676645766859738402939333462924432142760758633254789059949875681814981201371182911316834045888280573413503260385285896587193968822263231372556765586499610689864345356039432210570127883283286059960812936103031591478867341260607840754302465724055916481008333416266843033486430093764856020131012420067876829315469737268830531455584414464509415834285553315915022545976715682591001476556866852942611194651422175560891386307082588691106833147460387567588474058645516017403446786443290988106055234511757998584826565328670817970554298939344421749716000559863372612789195304037035699960542562219770560626270552817974023898098017480153701384721310423927044247327732282432158414592551295291805446393988850746393552924280776410103544118042946341084209888554675873334703811033776151859197379602673298904710446269125910324607758824000539557978692436340102822205379968550238695323937181279912068798668371738940130170252020122834968424741811336773834812317347833023013952498201644797455471753738239807021446895022683654321163475446879400273246839960713306848513782735506329986574096111864584451830123754186226317700270093876350990449725331065418935002736126691180109345021869919158194428507355425105939369867201149677835387501524237917516141689622013467745564251924772913647606189981552398076124578969408074070545124919004733784732173718278830582038072569221260939855606674050852253585371578840088738351804436215835609604738070063803691105773811473474895280509458525927935890359877196938595020246270430767336575115262168696596100412147861432425791089306447691121515543415330186985059971423691755787487926626226052097053028042646110763789571063949443829705161467885528024854418130882363398345437870937849272633234803509170079902933849457978891908157047288952523539955751199933959006124373711895854950241627554000826054446239864341878643451548798761811871543636350845796127884476253220286099694212243992206591465278124982454901910837134242922588981745347627654281494976230115291166641920942195477922266450553333297692491920098155130460367767941423904728290129737566766667419089572070119448640960402576563758959225509162662270948975935789342079841663267408405009499504214025376513114192874412655803034698017899794279959577156954298834410553368864676567379573744778978688695739708164047810086630071941841230083795023344647836831251251768953942627288400855660265537261223703164606767694224800956543609386057031790060434102903594553513986154816273102180111831807472446376221354021649325466948420370300508022725773101467701980465741645425754889522088393473078477932690200530661557473471501602310288606714136839786298729216258929803578242860364825200228602050425320059573558533162688940694244405454319250838099732660117631086112881771808305588860024082501049873006343909376988044054097429004215200991822517431704113520537754904833281931603027604379936418158103340690264679107622080957291481338509786786882327572742467935477803942373844535785518723388915162970550265222120500468790993347326182056826983167534687800905494578474298452218305914656736230744862603353745757347910626407805139366254676348966011194663175819497621794441098756128247361233703256986986073509717938018429051276791129828538716393886998328818864110157259705264490016442871272157490515658855424777478583201921009379878131949852977541805780958951733116034541236060510681738077286834434160637722901630517189685467412820805513133057012444366631653975930567727593158375745446996971433661016628800729480550082188358636813255214685215934768236867794478277907893460811965089797331948791355057652227001151466186090005382885599919112579413330409280657916726701032954839139164434546595051304799217716496018458069250573320948658773179663896620325118389392359911717930848700162686033036099620493834933931971282021957146370859942016654604564906253408198760875142270924373782556907072877673805755856022837952728990096356038578522026667044428660700367938050278053591337235463286228880190381878622558993068573547720885924084229037167165884188853811749856853056421500925462355061383648529960817004150181948979772425473865342332600348831540270336437411487063418127126195366049906513003593766387948934167458439517062421486633644228039843260000740092198275732535467299606132570947680086834175399805915406671037478434483963890697496076427215324245680927110707482502022920987621318633559354328485594753732276564515593848791793475189590237751246762634650390517589180389073974060284515813295461093475580915947274257664068246458959940961964931016941861948933058939503982734211793482645487931482425736595609093233137554099713478870355943752625548572648362994353643471977090103558349722582788775889549779368639936700429107347978608574465165476783659436344266970168680283189888377353657491990595760888854536855767410986619730294393713697456886342959802823007083293089743644855627713663317690850121978687650537712489114700532007735647974505013039818434881797338213950862120339094167273836144745016690990498081213353925187408924697492365974745406140277585447925539669271805200214471152660072480045134097753788362685909528771199532630907500172021769099530573616305755170333570663268096257605148318482665255218237143978461246953182484576023445378249117501421765914039700495753881745412039956853662425111098553381640179453753078711926623029146060024776050578758404992918313371334240070604224198134677480742752832641191657292568427093425826002481769346050775784649707598157774726686695905592420361917849605356857618802561576690099254723511194704368036764799712815126709035298050643677360634785583378997141928844337987085641378956111426521327518292838080237442487720198027752370734886481454412955608979474921204896766398804938695862486930649151306676689628546030311023494152672649337212316932899174129434327616488865720454986481565924024691358726377184115753656084901738548818869541359107193480997184464386331579155793659048555814837100483882635009694497868432165001509464860895424459119085610635550961124239233714165851054136144860102176878896816446377136330599916216159091882001135303835432401078897849516327704054548747315410041993871065463359087062363150200579577683441389431596334357464016066337507522120114020612111606699699656506350398772763316704433814469476790629008702581621623597344984066355663163388450324780261617280986688174078921364510416625859888618143978799949276888864022998776448833072158766246629962718990699807845349399564377531446466600038991038694422489794787388894863842051505397085909398433463402867438959743748452020593389304698919408637493790864660638069702978277079151595610983374741209965387008047518453034781974100882891012160287694284463619528437196400389557869442046255588070339716888737291322018186259776627291488989252332444585701245867830822968867652273589174920260563220881594431505385450433828110887781737059632024411352619407955476899429073888050297377481888481039232867577857354317774364354006713751174744928299117839686139493791892725592145135387923823565012911365965562179782799802093393048201888734467871160332979460293185691406975478052129722475035346262315417846104025015803264742824889802181281534484220257106456639847542691137895605961333474375550136996232825464382645800343444396045359194972745860498936535364275369619975782033545231004325761090116854964892813231021247304342127223171358693261053857826211981439552567904182249887361437719603234369524399423835059248768634948935109882329292611820138465090271362398769466408588970768294433555823828826266247707388184104456420612571953954346862322178006587216940964586782798732612376510421286117007432707681357532540284216509252686380071645678586915626742740922248247556606635045438938456044698701434908168096271795998292937700603251988766268520495622049635119522905429504055353419654049108129344273263221116263374433820536602617107634375667192274336231705516141588349226183237986634549723983397449936823113597666727035169809183806526779533194910519536428548525702029033622483135999632167142419242624242292304172234011343882579534023314078733987714909799590844483142507146728651530860512110472919724422813479224000980247265865312368534007445646132010714677603573571897054541422675849094711017209132510214051279304559811900597413515268175439501945830910819165635712541436429046569747688301287833246000050838085881415004403049412156647361272044759154663074949656031306641528632732907615797923650797080663027160442632721087538727416283503145948217302883264699624077021551159228151861323763381975496793619973261579046636114123315067791163877734964244690298606472419838667994746988324342956597684887537241820358417801823812745058610447957068109011322097763863455777688874811155075996345022074633677805315842481038468623251071527889456617427792978385841455241049953327137454199126755596988977491554417020886691292850594716106640575558284186539896440934769174531695466223884169802468567274645540508603715350181124122724573429324633180072425988404368985004702983223845576450289134259200940893039907838251735270128252973023269377943124088885987045764688091114656487986120598496841645490815143849787675309563212009354197274571484143963490123035025367891069507112217473199200844494560598562058331035724475808587132497230257304389226351620470053271459723558007951673558388553187957262362571701215537848175962724404335783360577387784335449176073742733044925479446118765898972004949210675551488777297255034504268269900525400833341486346325833445574049618196076202241791148384489778203108794009521111100477260938606754190794522742490835184739955837054342246264325426970809673953738102547144935382242009951218482076541025600665697411235460113161536214987623651511045787296973894864651372587124435379564567250029376157785329037271999170890407350413407531666349998267589219765071423009979592360130615236233744614686423488088671301893500733563785917663119096915539240035424573961331366477330769820394501340355912581152550872995083910886948754747085284277863322583735330852448110053452692550017992475275259588234684563857527372807489680138921214293397475413541633077053696540891370206774440177268416438599806789222480587950633544344557647270374619025951241599543619440310758336248339429510999271250035033830618236033876531770032721643434312780522060764001703154130919921106387023212039311889135898037719918347832025939417930738068130070742716329197014629666263822490108674923548729422057273516392445180395412060427745088560334276638413494466242326483908543034412970784001268635061294226684276297870600215006073243567085323429273146461174167656661060058339387362176508812058194230573843351889522082105240719223477176710497364068348383847748552112638471079714581348254290650015470714591602830826296922065427727176092695486834903883549734375480995306396011857919668923506595650831835087455507785406193270519185659745075401957111464562882711296165706743570460236771046488345300958738840947565250683105410806532211638960103559697959700304248568312459444599072912794281027751419218087719442032462025752831182410371007296533472901178198424155962500558300706937061761261624040532552159639917484589793565321268766981758232434229051823443599065629901225796941720550972975679346301607852380344987809692760276673536943985523921114137534605760626724792243856860991402552840885553371538936441682713856979603793532801828098725891325329962778437103249403357038569456206725302248893725768393294654807514778503622339217826297042460339428479701759164361346195040960489787521812831396724386916504405584422407162168713062933665430068679023188486508500607563303119047307413334822869028229765330497755637862930764710663789629330496842927217748882374419100603343168727170090985561598366445127354471190880939576780607416091221069172257553179709952405521091925496914127354058464625209701092004839459911259767701069164809466348958054268504781218281957452158026655115143899073662824459396932049093658307157632903602938350069181159692599383849115225161659054153098574404371570342663085661001431186463503091995636989909671260966835455360509315326230891426917214693680481591999403860412560828301796699347675277399262582414243247973999335143681981064181488497507141216647910545912946388364979419698008174800594719499079935426869291906702342711350832179402663765353322552133211839056704181899838153880790799452789775820250996618761291442040352534408861988992466196041341317305600252116440255840262477742225434317225861371531088379189719068656731978906485151457121874729956273492521328513512685117466660505324234276789203530627929270770668924680456762392770044936917752296060663267353853719258574596530693483539638940131270237515452811384216587292878681107335169571976092224303318632961559212115301014122807658722986957062612673921703764511345016538110053379491208564707865393218680965859983146316932295933704336847246514468880307167733607240135883457604787917531142523163211924541553132268106551840315694317252148467542363588801990645556546101926494177763457659742039830425899793427517609478108339113490884395888631900597207687580086476102167173815225903290292205322562748612589681355437686002129823585682642510790732047732719440168141990026576340718752029223539801369983149703520617639092123589181843746319367829441899670005572605833429793829299268497834383052524594899133248454272611176450729482249629758985319906026180513585755877998183629490747851233059648729507841482684919297718898484373709511097754515721028338273375218735322629501637463447293713762473688485143736770539971435136134096253605727630766911771444155873803480545600177259608747529849480104642307221494476785750199630146861958692550088693599590651262493443375819945158079040553028010616386323838438605989817827039325315279933602057640095903822034228853122917202370331844815322388473932564210709347521402433833093872428775539706668064720410053623461646901431181131425075055315040470052268955476432145200248678805821379947337439796224585412693354492142935054600395096844944367625161795916382945531486191137071202518614823218203422653893723212985013067988506070958573828268215659741227763020041995023202544484625909750892613533584663627510115279789271363388961499830640689147652901864832561835930411766018387920309284714253462355870998439469326338886115802465411520183284860156094283051123936147159151434871548362204274393553502724826734962385032506057362841633579919741223295208568120829724643335026009378913774748198252157285320957350379667688853078084414672773546178529550303768888546603406838249795286293395922942373372050706878757397176015163190121476923552359680298500770644945683036451078947501369761447472208592699175609181242881696712537274294057649352945151887529638709938604039229640348879891267176786749746232923063048043345241309440485963146070819213232908860857858352115486994928483099905289901162592911343365676076444084683841283428960811365287818149554317312530644775380650880473186536636646645450772509634215198974562521162758933906728139166286238745294059086126854381840956154398207239537798811935955949201938119335540879667843554930775260115008042807343932334469317237456344517874532869935185652131630410800915377366662072758219657002087988319020983388673082352125329739630500166923123246855263458142518363659652950583377593633143397550298891427821596299538244295310919971006337538111070105421320972839103671354591430170985771072557907993170832445021822628243203493959657066257942088872519452995823770506472349143067395260824005018259133626741857326062525095456002133125128155877997619813470398239733751396406316221866873570652821777899555297141343039376848895820072809452749607325637735767762981990485597370131090782256266030147065212148451833687081491024841656917909113261339098741357160048131247097868010677300846459133924420955400808684453368332518198165887115220051443862418364858106517412525847372827554945414225907482912963942577490125845406091939781711365573885001484483184380488490647552401787670580861509353443594777237643697154987750509828770683943559504752212701382426104576977960603806337976366300120753276371275723141788870125601280683168876142728274416654439774959190579544839546007542139664890222645079243540683193362435302250093580906864325346721401148207838431984777665691842770545657390368318431773584221930173925790752560696028260614708836980852759137594015735228090100536383719100877601272905280498913754096859375643634727804251879195637117252761017422063784712956158774637408995529810681298060232328276501543921521109429295055222693450166089467303154009834129821223166376417912757428068378406827160678370624787506303945649195970378894915736303533919364396632486632218846782716403423090512772886713259122386529923759787895568393159860842127868716262727261335127312275317102387802936413993617807637124856899038018891133401160328992561676697689136629188184304571007406591963463085496276900964631184401645343112181063956165433261022628140248591089502952074437809104665614232613942962531187314244859136991968836039361438312717614011297744125398554542297438694646363712643992739923856658133723577933888738934042039947243164119077569404044827223391886331337689603875320767892344281413111821694979207353985892725293350562510039844088520994569534579452745379237997698853498473032851764506442376967085366377606688013493349056737714124552082301220010445260212752233126905916786857376922680199061676814314450594388915162630261194592159388202101404357881430893211348172345685650214000263072946670215502974700840990993118793796805003685400978112231381502020562098652829058860064932839714114964100687048510468572875724029975929271640324280694113018419927069394193628842652748252147819828889328826080118617945733260466966194349397001194220038344746286960813747690596786118902078339155950475280122123865400450487196685221827476627927492972635846693493395293343964694269695652544305260810358556303877711990922276815367155578491004748624151961855264389027836595783683313968757627072638346253849215281469143468091699389283382083471336069949581597721438573835184850914835129217947798798087777874063529577185528709778792375677753480790888101628438262724711839941545708256418936450035275778533232992445173027764124527262720008533081122004621619059281007044567608358038463748055169297458509670203272703292645158704453263678311315912473241834708075570374986575235185646428034573657842155417032990446477255668161075834585293019724959315191549360807718860039590314892722211921936958737115774386660125331201713726325971418443628133359068893644532867637043814041617152380288487775705644281109560791722837300500285310166615808595116575120376301648768967156554468385165583192671853893849367181945729389549209514820832562847184483135646549792818961195955617387237720868790183283434739811092048521600300962374527765353578520031620092921119010889717969417126016011790811005695382152018338542368138811686338866352561802931908223951924998794123091683731882894646483893759310316266182302768421705623026370697158792168257117412624930407746587653644725828052592280163123316736971003117626110731556781320778377229679102530109632510147610074934062967484033438404773234180056640068143180477579990915406194486120860398265386473160851624580757087331351579311329111650242379772872466931236938946916730537288941169502795882073242497893742140529572968272648615506176139704576091936543179458133720258209666298242314092495381408485335080416646914944602843752348966418508878897145588768453940123913817473210197124031153404560385509962945031249925038201588709411072140629127895725197757551421306497601838451580480488295641251195832545739990888979806189251888092085503004688051626232920934713286998654232026287417503445601435121416713285075651543795293755764170982716909790849090109677523584122267479657244040715937027561583942711301219472755737189434709409392121635360718327324375024668120768313021834791619046223390627038663005737395296738253678394612572326299895821121957608384016629427396377410748433338254870100322635376593505477310313676081470372741187955213796818181814566975159011012425661625399893916853499414675293182450906742351626153278105313451276132242967494881667998746606646939649427853822160138909921549667685562585025790987877531599342918178407635150976694376719180806704504169275795171388613526910251765029544142963819535369192147154731845657842915535878689393834279797758548407439312513073125013596580180675994622042302968769496008010522321449762879937643289680943967048046776490164674343729036715236286464021609051373675220712955611735361239551015970138416533154925036115900677407497423049978436183205918044326596126463798490648363282779024844710078447581993340850133453798810345086656437571219363037767736097057801118259587657406799016676550249053192702423882816302415067889520268029143970187361716949643854536005114176777775656085439587005063043893644414794756631912878895254106376231889047996210100589559740415624161623959903314225556148118415004271474220204656474996627617186403345962148984639866425380336808217642324630304675873706738928352738404922402584017646330168587054630925456990130814211418488416811008355267123108502285988643838322633072829230622590237805794322796443884802094969445839015336467932813962406849945797466400867444100060003679316139559706004515778108806382119650756971193103665868762068200691764254801432283962103159504692253074245870503904733966393135736674854085185484289904385223533862491630972248704876482019906779776428942637093846848023769288221046258962930501876667967164144768566585065816873554491701055428979287272580063574641410332826014587463816093497008194136585018083436295429532384838731186394324581484790306323068708682574427270810309848318373881020269976554994842156447564854546639351771974166781197010578937887615851121731959885291836125782557469679994698092522535968132998461836648291084560144165595538821390099087084566076755086424441417075553446583254329468990195603366018123122438499640520475829177357309022593531895609956255827841366961582601361521387233300265600686290277779522206794807209852894198527596379599577364687717295399520918968645138966407709804455873740645378975726978320508715134418458157980307322703150102993545020702766104764435411795997815573920121295940099061241427117431616888858682706738563828096949440811516013208657818805118807333274474879938839468021611717757895379384779241956114056593763050032921839109959633162581225551076915924376087759619965216303821616595897777877629565518689116821839976707176426605775894435960640624680848718815016077678614327689588097576635269150808927119112137978436302415752057962786869025657363353697391148122286449660813803475766678490090482863252820751003303583673034684439978084429399224877657280810812480103434688172901893968565208709581582146515198346379594890196825311129510024293280744105041187693028133419603156096191212174825644414563181962667066034208328980927557472562299835825855093611768356762579598350664467357436621326684472344633972845422566872875801105164664634030133018613467373130353026188171707629594961384850965336988190515250748608414135924569624077106946691263714512968553997851237493453132415513888227867099772814786869775017947915634635314148153966074691626071475356101229196899099248321045822266450214773274114733300669825581693532615117305633122402524142622628369147228914406294351237882766116957693544656753629186956748810112732516928804806357525113435124414370291463568359801102761835230512230768190574867807711577959046957342898558803552698619557165787797551401299536926180394299935439861713817128925971454540725716144221475362376743636471518676739025120104127062373139931878348233306082663716623207790120058469318345060930168799190269883276870841259642340581082437990735000335012451553092646120172011123289050071321032957718500914270300033395840646082645692579510516795841438375868367543612689375701299802841032532636195515737462265315540122243355638042868909339811117603207694745430520010909847981772747634665078456576952756076577409852921910704556034310387861281590012722971213677145887944454665653357249856470223194891756885120507937484491432634758172941155584487620444911450999358065007917580227668047458828548057225819373970326656630480683767921060371342155833321317286776438435959065205356029532289424072023267259328075484578235678308389539767158602446075806967282345109964273803368610082186761279903611488911428016450770063264890121230804982110390369965598847405005612876563699613352559315505122583259788007873119552430307255239541421998586625285480764721850609599284564612149690604932743582236206284304853352989306264842751294099418997490327946089264692474128377324616747908519297934220974247757402370025528261029143212797464214926927214898544069921945869003348526938407540067053403615611034931429335510862368990639223453271655679473557618326395768838623815794852149932583826023756362204428970544973712014289929351263979847660907924743071787174565619747947528930356880977780388252136346599502988384604026710667856057104564616999082792141819999363528488000200078054459654463892264737366003068916534989570639753827465116365331015271687996672610507898910371402392564395843366671851769793818232499838708360984666960446317633138642845493432646188071519973845531262446567777780787717148408012368487206581837974184173174906961392548689943813170838645429584983109043955843907267278075860105125572585558707595543760209230916572945489722243250916524610542254004949975353752684390654745563334342877393465744854758883647985838288452375343656543719597220058406037721421475935502268966381477524445984298898181076005070065727569342316639374384265552985094931389492476988862170688884141264125209937832810927970977473067159154909828551504231872303578572267034838009912574464008970439687852814719939128773465755459907533495992466163033298758416655628308821730176811104241043343541209717251331007300537723990839577683024990454975561638871525065006764011535552610765306771638199854119877678631879813106297211653525503201207294730537348837698124308803298647799206910114375538672552667488750591462465341188113137665866995956610804034200370658676646285593100015084776318627465126209869966107144170114085646849430010946383714939823364713207550845914662118702298141774340788504741615305699391300087602239507934781020989245037731839237947190862659503390966704551886231957333968747822906585793872756964798939815818680114451868509305721039446419895874015818072905471529397436536671013920027127246640161195819043068886024001059375763700142109315312841234130750017311484409878384995863822433957281414590443408991824667207246797867791564703078853273376268737895213024622866063009984773000195963222501054336568501077646710874170006006562332547472485021558811171351371530005751248383919509564828063914750849314761996514328507476386021525913592711036345153159484809569015718959534024779589549763342911419978829738763205109635948425104192237296231679654580451537427615576547265465030081216911150248995806009203224114545181776276115051601857636337368193826780566024851001094111499597350604304652557116823468205864400388540655917792638824898026522375069782795902301012305960277491050750592288957643537140263447939083114855987397112145828039041024619257595435356604284388225235518461789110286882766242519672322706389774454071494445438811048493741981418715099791200846060072127990355974350869698078748041289945969861465289846692691093001526336763226234073573252730348086709488078705249548942751823163486645334945136676327824310969966876859090092333991655550225233373749430864563369636638809706278637996784371929464445167044345630373350052680356582565040248333846351731589730465235336495423222104333200715817210764040237114774558845302778149638515582372643326518403602208546701810325866977022034275912600518125803709463520272379886827631253633304314548405090914598744543331342465083400184965783218074109850750152660321191263941367624484822026762296659306820348725055704037054991938256919835457993830724403168981165705807704823909757987017763163616548637612462814150762611569425107413179498941220059828112481475293562257724148755244488427651716352411695913321521449003328110731630320933028480950177460591058804774530800313311544388444599312613657570167216157937456759600787953807877072191542669476698966562651102251830131693849900527287153119969663502769901702121794884588045407952381645195378949483235713845238220366817339507191108391223958515922469630339932170064939135090437960195598936410106300202616343064330503699158932523909509873945950921224764387089008939226651361439057182738461948107133135812980315424268789980374868736774046980436605003389332377022143691732691770788897228367069140392952355647698468814691461782712529019916793091871925992743483975711773531076181331638261742696847269638817439977877772393005612002895345370359717316948555280198997027479259231267967227430090142912271357235294088646009845319558271006729594641906685079062987120304128034676786837535854684737901352079028468354510442038675923573283205044566605760222061558944698954902070952716283930506796077217341648061999659132193866396126249093141504918804204544170404243538885095232834082411562477310930301162085259825993478476010723626457606145846791637044010206391544353068361561244535459401022599650495542828778179319096305099470918440681783506411058074000513314083303463295335572890810773962839494435234876254496386494369059118045585206804833956637833831329074093585121931841591783231408348564551731039476221556582368924758551210958033910146114252518700958156044923773004749286269194188300052638698786394594359997107736893287324338965145213051433737404342612990862939953064743984152081712436510604038183977961872083301757311976742072673909471803403116676967003795167570381932618192135288112695248491731964884748844362697347330248540315229792551223441861965223172287237370252620083417329578748516652863719269026376738850986619415961029917708399996558676007913344503077149256552772123511445867200020826666816137128462359646428786025533212428457476172299384822857166778039770080063359829567904390884950991097091795184581576427323984388757540266127436819025574255144843621352687659012541507899031705824545260975635962449931133562810908863272861978091463437871066400205477444847640702773183484068657922942326021798421626545523655344789526577420089656678905104740675216895839017371953165829774054948744812340565873873025558758549040495219330036042435686212799526229669383014007495660385151007896235788584792216381466515155224325673144198084013209974681546063325905809266405122316004335570870426421041343214176883417926018557798691447396881257693596589513422025689371461242620927575964611964217857122587736675771291494960970964010514291105407197267888040002245804133383601939777167633862814390523326200990810814820330913409718220440704802813760294594907272467918286821603062822702930601915190515001535434545404168608908288854961677120707071964886052597559816089526943659700158951855441836442713464464078577044112032623413207811143225638780826796103113157703707484952477226891473527598810939450370637945573574089744584595734057033083585420460625401402529171323194848275249575317514403757864640701329401763444769602731084087637300257575427297725233953375957527943258646799325810736662979554480493819860374683474374186474477003300816776037820382587309257918691986691739936220416867436948525963169667967069581276466142654697157287775830132643504131513389499700269356543592422438854829118993601204700558732779051311376027167893358767827934809081529350060858688284432822442585457672697872493572082265720909195398344072706202232943022794566638588213111357390790698118742560754864774543968170223934416573241719201154891354317204486960727985857707307746068041488464034224711065297510172890031851812259916599500410145920077498519945513319381329041122183438063251072303049367396132044650473060164889193337081056974599969415545269846701415215808091273513000903963847800976581931034529691716986016638314930728385369073941188505955838182975352845394035896299283380262156240402884572558623748407995033528740306074598170692857167484621684770773180084561481773761784820106289299040510157307703662435223581875086520948669888403084941502747438097099982595705448179209145680537421594149436828718985292158703959180280152079776471084869686329142451719225665766878593709345584579447292306133098546152595991072049861238148728846359062945922314508576549046000803138016738944921903316901277197171013082621583854081368738094775011375919995297125009447693408490456770863817159111383092227144249233104321801855696036361615690033206647478435279898751525627902444668720062496383253752263293309493539254868747473924040239378629446577241493258564506866498379217971455392707067164944887198878310362890490124888345363261541759660040538969942361860179848705209788324951394228650877069804846109588863870724260664846039240294987678686736583352880962062578805979909522675118465677508453872810828017441712449051457324185215372864880486158563398401089550144015141804283936863729389703892872173022511691513515694588052424223480116127400002293767379897104664709796587871074510124081287371844461640377206030373998130454854906418387205285288741154146804372558447685524857994186326005365414829653893521357434531746778636629234946369522885040002684980676718739808267142860279326820112376497878060734849441629934302970789338875282229245100976470599888563467034853532743063174673931309737611494706518873284165810220518504990332697978867467395136380653967989587501136155544057649980026698001250350436411568150023698637058029929557348227643463990044022364064355992313488321581202701024313561772149835426628795824280630785749337993880719413502868217041500378544439180098042571533291054494774313899165002261376223681988573326342068386006858605443680886242751276355039212898584641246184217007738969917990459879304552177111283308889594829038614906599707350190769239324939903110548692520527605435492528712092623341905632993092165542487011033456046095009844811750325626550668602836590964467397379296011213233465663629415853978772472429120187707652682144017599578626598764185511800815244554681348881547701097777784922806684119089627137540643690003464555430864102386757904464044330518712867159994770187242304969682553141990526432526892676511234892227721505494102130532421801747405479828647651756949042348533414139480183417305086207617628442293134854869229553911931335327135873971215315301082201052445618627358995770926121464465998099575903905111494641268559704892024840445486345892522213861303599117594622431442241884920887379437038998871828098467243478108734989777527570468315192884066527475055580585989207046432170590453453954548921106797867098962996233275445969214070133173602212024227749611202648070089998442446303148512834163026227582035722820968495913108147789272813863532920323883455054361157730664110609663760545261485002260655056672296787674734766221971071374163226844982536921824333547448640964585401089920823935869859365474836854350859581845717372980371120823725155447441214233171900372966341147179415385427471887357975183150176619872915320087643678086437742214090675190495819981762130462535921658659649089223193281545796690924470868693535194127881823480090992291812322468366526232543871620395653936331530557869232958959815774159524458685952449539579154887651742493666600391394668449652938950643301410813915133336565911791689889673458338367790760829228778456993766626384274818130152221698583514472193446431582892421901405985731219999954471330460524376428244203954536507409754867038376026956272591405653194189183544606940652206017232701606966862927613878186253852703025623750947305341766609494910436248665325956220708062657714868003442336986862659487502549798993344543573471317405488938965605454997881836553610809208707311113210452073250448470604488003479057951507406313241423461585680880599175841920916753310270386891488434737778387432306086059016294834507860851678930825803789664060256967295269956128927799815176760409901754271997835375518888091030262603284982818737871636517028516017201944736418585035958282815199005005546741220884334712888403868447160184480456445304171147422767234939566670834620243090563405844379938858806892444519057044612954966106783641194087780502996313970811710310212209189978521437226268724697484026779607114726898457678908763204298264197270135202201717620412511623033546197011439246753079877635285064328483612705392181984052378806053795307233780326428990217319408585490031021220151734968843934937342880415493431015606381037887909182695358798610929844066723754701807768537883138589855748205195834326021449942023173570475478457274849893080645336764175098128532058534231219369265604736494335064015010159381537678841662832720586536038214631998900106772462572635324878468187679433848086740395199637453671274870267109729630670894752262306857325098175768591847518189370821478156035029373753291283047191897192074035412643385762339044331169341366090679026226079438790324107272503524877138906998050952050298532737216886452079756500908138799842022841392343453002186436115811628647532950243325586755245805020072401428356302792330770893002953020102421731758802136508958762522578562285644411450597291712883754989360642600677148210365933277100829750797117614748470739321025295772260910171812924436570583930394832260457806388781225341968031838604046142556853654628077992169218688393888588561020669441569151752399586555528136693865420017561222527814823089237818686214408103637730825051253013231953306037401057584939369651332159488572026438863789108057887244070697355232603141689443696900348670188967667422325140011135635933791862094582679368275463896617512836561051228197451882085995818631459825419471917359715023937623081873647558843407855283014490073600265929236232571560179664056606249121680684876358082930451152656164009499493365284736581812673691749120604203753604518034796239669656416117036616784268881957264814953992569632881890367065326513583204406266752395702287729573034382532645334367384026012263792665446682298576638292516968494744717077942087884291880853892145834095973168900335059079532379878519614629326051903569469549917847008583489383089425468989107273582549124086674176783663228919716184571540747750705921287048454850074063354728209857049945731802985008267885887144255932673281663132881821572669351016679866953792201789407528664464940708936999967969972023295891476022204936837727660380364160452062541834647081362731234858666442621415276372985275326905273816569474982100344029557009091888392986785115013341711123646075756711290580394723824980313582414804716529813732076434887271844738186663887496387424583048524333800260909777805407928053986087976349773492556912922175583793312655050839430994817764384952212700088571005195249630329545816966557379251142811481839616676835669908911122208842148034411500535794714417463827642027174304939150595553260785160394589669643941797740113822078955173167928772416386756700265741960111163063288080062851995434484899951960427588755828461565544539803306810564616828021643983954256966539664672216966606492741918734009841583378303630091887285592010121829931471353089894828398793885543673053338235189670819510474530580829982469101728677309376531850761926337808638873850602156099256550082071119969050019738071728927933754373173173861530354100631313719165352358249478931424466579580661615266454361159971462397616189170438324421502290920507764480203741776512335463002552309385747841374611011965218029137153002811154350159892329066151515192206381583534908373900046940676118193008283648967756426807505996103106545632961961103335058508285103648554623698958357354397059648342814398148452218814392269861558855713375883385359318119677330827057982245558240541819822898469317896892556243903037738461245849811849125811234516192221213062664027623327214411408088736340827585637522101724554220428335523217888244692201309904638926034159434902171318831923778378872600332506332416112571649490676812798547723991105985525732024135316058430701760689588173871892830322732616343322425744966578158212336530618016746752431681863574882292425315521761717559372029940952036768569880494144706299510482905277494546377504753290679264331489690991017463755027259302248023659508539714085391924246323567613119331938523648696075820537900205784677460834423097033835117908207957617766132892717507779831814584424799879122303110650572097914959730291236934532045350515869452310349123933002888120768127273900379343268788732584346289720770407882124055910287347327796882699785128311255998083064664063819122544053951509470262569214568499225570885709098968766366314859020476572709288366696709178205461383317217425541349362588833664008760674496605531045169430893915418235687036576388317791728920116897682039280980966645073237446346047911225391618694450254986945801248410549264345207934647934340732250764748087804093457037639991959292535571787525786588029249607186275601317905576702473672284470461830474552809818378208583308740670230164248960165561000236543678838513131553149244296497399564662523815324607861355046703565503737809633129042368835144953835748919746979838524845146074665196965179192967351440547251583121013209857058788911181507015364600608602634688817876215582311980602704114280727397415584081992154525982200396415709663759695674634240479009313205698827240962430799286713512444286351677739315727658728928666728719781812364791475582892021198505289686526833106764279015518149411219147350596564662013659010705582463023483115524005061963937184721405488277280260445982095266221734317186424608365268522417354120582104553792788979686815678789250031549477190884152706405610387407071683313641904449621349244500992977190428547863080803542047406984788548637380584551318789279365090766979636895243691787574757845655436854411791807484652912816254152908437251152094510155446144401101437617831976017106010415138562082100049498450732566054057696964985493124870149834937380644579276392119295908624547627965465287743178584217250623771296390563370496067536848266061015350960408755765959561341147026314037122374154368842258930701136210636049566511653496723519133768742663980853737585622541079271197845715529502106920669157215615313224102377638064422332895265057863995109180111771606234341684852658449701225973337431922789598695513921066460369059131236653513046741381298421605167834169121744557896498446011029611538982584357209608554745299796861467586086604483064757519775579320386046220745743889507672651804887491231081522825226953455433440504600293830098887698997744931491553274553256608260774066694610490749959855056443734805036728318896844855704159328304628777422081374070363550052799697061769086085855352428800221068865131579666458913816947568088971414461178015245296631486153516599630141535452230380724921100651821034609636520845372179985230773898580842671529342383862379833985391662646134153631595750941066370175774873866116002891515872891118517187874357571299480578391292328214858286709426337837226774186492455800782960887449130505554814024214981716171097326926939412778123340593329679408248411801679104706569796029598045579264809585557074443822464728676532632056987326738917982248438128656338116342682234399452223527282542517421500248568421515930822814799370156281909535907944227932096453168254899014458529332107386395208841140614111320886119423598762312206733183337202466881099249799600635954903599471647437366880728883760989861320930505985489966190407170688684913750647755808941458680981133037460733342935752139545326643270121185962861625541167036269886507332687140413150202617293652043914396371990762573968971685491678168355780781582708245346700838801388054773099998224440495839727563903794375848879234070391377414289931060219550148525056014357677916467305258059641873911589216482679495373301264157486382140551080919025601502450276444882959539834781671251824757385982051858858221969242510488218353555828135392540233504540438517139446627629787872834827008029829546933992595707686410808079779590759901697171925011438327189360003273378442362726144546036287362832411418844562280821140112239439577887688729690627047337661600378951494936980633838870176626138828593459344427804473793755421735912272238366070591802108116054421745638096739696380560469915129125734071134775931753870788199274854451724467008567664695062463071942534713914404596508488980418107279667760384227767857039301699591483074545450077587028834879630782871443395679682532792669919511821431483562606738828439270520904514752338813834903726522838839725261686248605941978348947531997219306006117640131946736982488184961091686887176722710101127618651699938031906629457089323687011465421684443164227712469170670135673235744960941878465791456986729492884893261859979247498521629170077424836003248371392233789491845007937341221904930379074537609854138853049291765690715021689579332602897668710521164581968244178975713173337951942628086799403267914824277556301257469709048099052992075510802267480928202304458894411028808269444014392786522117926419393803341940430011860938319477905407217443735789000751025551220777371871470517302513471773956881751140653158285206052383395350660094873002077909319661474249757515827130080641969285229778114153967816345387228717402172064329945849036898908970312139769778274087370405896173039797805566108564027152250085627569542820171679680718373350724622629996688419236646651849277040130277478108066711579632002872603610909757864433369089397228055656286844612804494133937720216605531704641608184104369419538711224611294850181865572424211805020088524291510014729912039932902592583488807185068044009930169538637094952687743802117369988175911901034545214221713279111181583245057922892084345871072648291729901319200702489538695956793311125479915034751049685472747182103949502699483931006328556091959409937088113025328072714284366124347997531522077880034194816577444884574045375492876712010422509374967010923640746531908905558442063489785338028202430281424334610374123202511455337196909336124359607474466859328140290498366665339092743720965892224587313551603799899220381376520626926323625187287278525930061806411186608468467885065378453709496946504037944386808010624461650383890606138651614394669239412690111556971726950844652931559846519914670904480237577706145064710776487953500419096938129033160637300080887373109038236343504397622505869905652152214748967276700397080911169014263191466007337716335704771282119746583102854222467727050499953261589590588598219199283566795519386324201587096789278274943193259467170838887602031126407121189574219139292263219220156544824715972161724262073159345246578625498042436189869713388039113131381712412256810713305001624010754937462113915902513107289298478941561717272999636527397470226146253036056597732086800235540504680560976133141306450186038153723215240105300351334127985848091780860292869269042234100787748807954362935450052350435591525128871113956798047955669767098744177339766689751116419892084556104390345190472972145457191325768703703197027868809738081989013633935568810692742578479462907368705653746142590704213811786558761842530431223684322262347833916590200198932996919637001340732693484164193835500960778711949660807552989591833800322811850120185177496542572041274492785529482824055761030739043706036521906507453608934629673061516382122958739836843707090866839760344309234476297885864119404015985328169477046204953775626744686267842653423421250743653963637010306391145133045747414443447714778634001592779422742315909152661269346092477308278491443715561007636436899762334219012621665082776101572953552583460159246914461280642855277069341708437841797764082169136220765826911234091298755351020433773231404749798809495554595889979882427530983357690439978699828053280464341503364525209274159303824227018404815427941247732651902494508335345282613839147471760243279161290705514574057425683946913123273514809961956667545928011344790712100580302945575102333919881462253404577148546823959588250268858244824728524463836029327518984766511957338119904129650666344428813468922899093976401349895452805191839769293073407603548554709135747831681233600615617444425042756442251669283957865481168129676481315642199529848294397235238209735441258153425141091558038860879733533727081996180038745815447885551158123561183688053163675843629878905056968627767066133021628565634114001172858882660360184995655664115013208436094913356863206742230085339703890721926453096069402295268210420588356132896013287063495890057574854400956003784380082740129256019090041496191950955226149362189914318567548122122622904816786781492551915630921697239057888405804049821186572644057329348718806162453363647697116692508158859952068560349401964467839952832992528685537792510195235101481782097666386471015572100296577751825905908965264192146365880205693723828836389651782154853499835124329986630674621248956971436826456106328484008091311423240373411546236320777387283140591412308315536947672538065473563490112820537659343277504735894829554081932711081110881314127303804804254548176321884469941957332789779166389637147771444849187256673463139205747657234900914099831575137093629374792026292630136509160409359834883035025889369045502894195489022248152252630856766603104472917236613587280876630120845450254533727927481757826789746510270141606015754553644827591255060995574272587442893688434485006034052707524249180450729624404497854778109034569805287109058015293127528275819571068712991272445908972873468341133307207000817338008638745107640308902508812714601713073609532788271449634081927229839337041996121465201846156268945354961581871013054673883429199946396152764043866521832275754649635830015918990669798486976653665102104114532831420471341882773713332482141986194091134901242243165287146449582798071462814144500623286916112851097306536879764489266333914241081820241325465607974472707108102440528597463886587181946467210147873418227440239239271967091440436285664274738626280075208682227418350287391926408363386340908087112920651497578509946696147199154612469071848629454331370583059029605310956570125317191490300888479288371858342462017549730951405366960132441461658631006095047112419932579141721169293776851794189098973060517406059924638054175276143704619075643573323694202883353530462711673864094754897842600426857675532138292563168167274570330669991680344776419837576389541533389487843945692773093336937505495294994465296076862342391030445074263606319472761020738297631147096536008597566636914668860752535930612952654216635229216671470150201549060330000819937728963619037002713178764841247308458822910697880702055940221578727034446748397791691643572714554171328635890132823970390879082950225413682882101882641747487084340149037127863537063495944187754152853849969806941657315395496528977277881591361109081088651381784397836313133221583472577828867658928169842385856907044520962952372795949803357621782901357223808905403961168635136336165356176259266644415458820926865107308283601826468432310299246018648380731360603962448985883057778711298531481452390713176696177758652853774929667722226957794810823848642268218933533638949198840629300190078545966146870465989382353655179403010357922403344280064453236092421828617136995803872533467110613248826606316238302485249022703077485071927027907616425414122943558821379374119372074241717689311792353204218624331159767301656661208143869489479790327420862716699322874468848699159788662105356753590505750070945711934340950376505529536909367826132397756747507774071017147848945494308158875122718915907493484259988304393246310130938247025563767618766342673311058176685148568142477565198614084123804437167146260263921329249900879463973092550108343266502724080453856746805682993934897755197620653888117528627188345656141026110463426256873598238080598169452217752313865154688337838925137036904986677304944210257971207886040691653549610931411346334550701520762496203280706783252770188831009973490385674769979021627761281542870965637757082802937249224180559442511131057929495337274376478634737717496167885076557711169773254070269151151885534617448118210779479003377367603935172643668026854265711975240861997478972513612104469365493255009839032273426319275813996716718834665000598803341922700024556664680119748194552432120273590638763982448494461586169213933636199721906882432708536812150728628235471452570190476021689976174340128983899608964560251696081730446262013146490348629315420680023317614206328398020191613541955605242804299652933159996908598621253782656607792065860904681402941764179314674141760777204464817051312026719676498503120964341497983326888855822474786630502008694212647054194538446427542059948390528038241080802683721122949234016184121187182929693264058965233050715090211545120470605813364406686887644885671064438543586937471826691253432553063853634528336862436910796286841191483468442416905169292048197902101725184469126800837813500677345505223249297960596049000146513749917850089557800407263852716345733342088929392536833420371365701471638958087182749206777993240070138266929954365808885815257343878032639914422285837293249064738445679024206857605421046627230776862028372795642374373952588522759821312247444887348614366480062125055658223927559532488497397358064083954182137865328677115399636795987690655145522113453827617103306185823648300301836410212430528663198033371804347124960875471712766168020777673900904734763311369317633625571662397425773521208985415105022144149298074399740478828347713708416764650436551475243754268602477766649314003017338583900298821738630737002799002887023664227678808999308045276633126061778719053762606924316336417574297708852675881841023831268817608991571142227565270751629358186620030652669554386188762535650002738901458579831565545490603837158660071892234594233916752418605183900113802139876179582501558128620455792095573305772210901815198177222267528630608776338109695784724581131024929663599793803833588789007517149048627603859709588223716179887469165781806789988241899090344340105448682603316085631558063427258324935838616642808276532912120039829219376635156215766352438828444546562485749408472952917719818600544311260466769741127120160561124415443378780915166683567935571445218554276515366489066746941278339681995187099284518803097035487275678525581831033352862436491497198801336450483105310242753856399025934437642059964830644698275136470118135239137599278789050964779210558736228221864008437556112485297644808515389344180066322419489383710996451598092432216694701391882570146660185681783119459497785648735552733001661267218061073669713927164655559490379504562815613062148364349512711461493710462207565210789409297222176145737291639230090159587334591905643235610026510742335292527674656168248933797429572283939847156890284379788621886147422317772197070567981496287652334137644411778651884285627285767598700582579206146685139391488620271465207867916946819664244722187873774532724640302978671801231418053443836071454150487467108024769808361779407541714105791903725209078611531081434706836139007327696785185927556785578976174541353670221742911709914244319416831476730117119894403754853386051896987102428527455785139054742877668826385829441812262815709722539871719297546012717053805071259337055059698316230132894182153039196383191527065298967407402539877462193280139049996407397217718788979779180711663693002658055973199370325504333438211725118869817242849565097883897489268139622407906102322341021560172724940266084747187750915694284397672632395005755066715020665897905386783956109310357257026575102208945441920750713562067372801628887629656268663239816346492433402397174906497233645575323809482381529123592308886215906704440276090781462975772560949801086745141035173020082178532989378962759903971013949637717857861008187854729095725718575748881280991685498567722648418806022157540741612135877207416337874447872080060948188686747171221286322790620620827652854296434265491995677327091228304400179567822564193030277098622431327407226874866416384214590566605050248789625977329598749553409011549223637117170123220616439343755822842031109751802990121210351266910990818624793392732229932542928389562414349513696359794858118232415078978962220414537975873847633106385645435732924588932030307229943832590911108458554866297281055211836975904837302680155081968920313713775607102343205817637409742600624995396074061119464769348071182322567356123875340741523703993102383670531047861085814948235274791382563417421308314586221724892053035172250470623009613670270232780983111955041952405820617599710178119824923450211773413833872408972721139999658146998867407190195963843622029545586646602437853461659069305500951692702728128934483226556137524961062927613619176336147152899046105763480339253978051398723456170845176855506978923985835714015039881544159893336835913173319717672196020798331001088808301808956346104440625438149449665955775620216504854856296415869115680184816737737541610418387809520122744983562520611963070325491668218116139799444035528805752901562703626501598537455735392653808609723090852102578513187460492429592472953529034477380200290490414192513474920061041094114654496349752693519992445364942190342275332997292776445606941539374016913991508508213373768608538219232495381342288508843840486947103674194842943763483653976777580071370279223461121454262701730589541302361383802921136474560510790255107629353708107996631731363210764399728647842481784923842618504130408518701623840607547451258028332612296179630453339440670825151408557254558313956408468109321167541731098503029463586767162042299072096794426793664019216226448025521189363370085971097049769391001669098673228216486985982565312229385250267219753426928664299127311448081660676273651373334799937463460173992872471394527642775289977992125629676339606324091128554758163184543012015213520465007445317910873086712670838025195469234089338070600747114746823821149367009817944934385347376196795481393778088635346952549893467680515960781427263358272995117971413747541954729769271425737521351537971918209859137581629235414235534629854116373925493018186543729372085944391909066098123420527155754811213062377209299807802607275846280325747170593070402365376361803512979743986343034456064143208616903804422918830553969346749775701906839979007615378195138915678658463215386039296809029020777654072443860440960814502807559322360906445584699598426771261275837364418295800629085232652149837798004572641647740187395192895166561742991576814799250115790650371216563150553848270531965117172082715577703723945727723587296507020722333754585582290152685386872027190022854131075866315227690350436649422943892436585629867613344629627179965765001587443685915221936870523745239812378419028384366949478017824457106059959554794205936283853396830718920900774698305338052019114480452961057277839493104945150493876829242706638433229946754159135385849868461257722910254015033909793387746044983376555438331122438070542755018459425960868990289805740762996854922191611801724868889696798346684927143175216372909233008688030699731006765748694152877294281481588321193983244917922917907263290268550428720948736638937341253714536592449297687394299444936425487105541605914928655294809771342667871373406879304568718116778082322557195333270831348294695214403697016791853091866745879969241149985080008873364669132410309250492818691420012157602473747260428574268346911304617897302230540586216735260252993201652946518219141189531241412081269619844973781958409696104604870030208787317990915106784166008240892579785381325337763950280535011406079157954207555853953663092999328368304166198508636899310393802752319373480370810498308755355423517679914080095616839888217506244718166396066820916703695923500180194344895527230245871294130067646666563338485598302706365200191440007436547266309535287663426698341763506939128759555502520275887065088093410567658987094865392189381645354280054793193602164794773863745398553893435934868338589219797329113781862408479289859287832972760058950321973227294731800584966553543675953647143023394292638129095060497656955793452342500468813435845857617423478860018557723345988457792597502999221570737879619256690680899785733745669682144651340881195634840641263341864029390977049795804348805339979044261487108431187206813678222058964464750418358990320525326481175947223715538576799839509331892413649404158765011227906236941295894143088063376824170347277971235882877080332666295536318274129633190970334857231533846865798529442046502287322117340497102181632696452936046009072235258581084320134091701906032551304390569889461147054517558866657680264609211986884446978493633212001234442749346324862208350810302967325105137065793223504042901220998335020530313968336079969040087542170740453425750728563044408725193592226638135028166404619046522190881430221098916336144022479878383554525378363538219351263208433774949248809968081759732266175510951021825615480239686331945477206337057316439857135885001879915958029649425622137799048444265711415748065790892616805683677928000979258754698163772656009747815809250603081602077472517211506616095239475172664027276651411442832974344609603278039993349074620897857485738150170806445582592124672445049812592911022238905892597577108169325353620894084888769796136016793338370706262842257563009142718979632750059832450152140187629575878224159713864326093819734524467496395144953280684678913507660203309074785125626701437065224100845421448885702237450038087808136644161085071367644666472843213089565892470461788348488899171215058519880331582924172576364749662296272776234514236455449457485160640086767072826628606241722242770750426082962339717437322709513796057221137380118083169423480882648388252396272584760225655436332164914809139987641930021230930022604724856999172179890651608061348969676147368083612089299597447260664020934855509695788359657660316295063088071233376235159491103723875246210762939299777552000962200342291508668923159491683175869219599026276802404908252682475885936823742385442999309583853636921348313956191750153132871683041674118510313427838540109086417449892384180627992648551752782455769854222768887634011748114477980146689164243434264544418730105553963685126792086255714077756454244329785295724115842354601775400281421724678585254534977081183689858569139317075996865591011066952090476263688477429886704695923701317530365660197594026253217718492529944159239331181287767386321890368239047516595911486999505781753716187266976285086207448290697016209785474871138418548171565818077163836466422942892937021470454855294656949494213606745521331865115980748454169272035659598984299466258904819321181634164173117819871293316909571415724942196131180526298063713048225770686686301968420217140267408023005262395581109975572516455623591237960648835994013870412922159756310706191589470901085690219402248059547174858246417825920262455847182739314048754345929546239839421988084498648998135653215325524310320151874839647954755646352740985713284870735698886192102284907849512942175267390120115007965011033281381354978261182579130045186266279820562122955263259847794551226655981400555924137518075650338472371943744375774577399780731443970802511495190295307024630647750123169628126973096910856408817657157666853039479226801660191738413552239194037481082249962436497579400682738169427698968987287829444984786550827268888645077641698305131424189797372308597533526781255222289144060133612753108185650977982376532414101423465188544415102884467243142306211266326308173667586803731256200385434244610135822057832989388643433583048842103159063816924248021573410530763206607762185098354598604658242976326752582788632515113946801066789473797961273325995943053946789353668242690342066221335358923385242950885709179934650827452622348182023271658985748075867162074616566034016792780472650096961853391965630354617128228020221179953770238002887789886667107517005103067100522057173318647779520652492448441057827495024135049430132324451270300667252966932280153710518386745696897470411196500115591213635371186723524150513379593491745586275067944016235508092968370794872152332233685717258703377450964755242511043496186937599966052791118164525588441959583144812806498302041119438098653118778897513454358911790349504057871448220376282855205163326562412724702401353192125567512132264201675342101211377522730129238081591092282632239429240234414206081377389039876989849205302686766146449140371317575492126434946516669431600133245899449091573946271318932508154152448420413728243414948359994270701055087852718919212051206958638405252909705676352800681931993623089635416797328301372263562726132174454470557652319434551869073056324201326174419104111384156475627671035706529504707489449218693103981458565494102355613253502946955249857913966494268071264233417582816756168604552588875475506173282493145264677840616314525914176639960383565822496838509575897597718656964332025348417256754077345713015943493144666756026925317112684095368218894566341413715607302570408576769152509126167943589800288524421019317311012916567245453988779617024948602180138025280081776235843307124040510939422392470010229146427851270171607068133919822602738683389830492365034776002326531422225514025311338523970157056592293831313145144862898399144931608802454819766316624660822197258768364242019408131365979152376475607992661521910131218402036443840228075312249657106199530764865992135002076227135487993902517247070150166303800918921609737258742449904727477018668289675170790125902450666961991968405257443504773320709297639733840661451336641291404238600748998412799974789033918109337227391264161702541270830234593888884442245048898701706912217313106070422780294000956104827343795937452496114548501124939381305046040921906602728731899964857855956380131650279266932304062770550551808055897884635685763401115389801002369985374358263555172374381674409540429121829620196435096455203261984820766068470940369711085333518542092895240720493183855774352008149994899023375081010861280657638778524101775850088029904857827471292092185567856846301848488705275110538762190148271046739207369248995098640329162838403178614611082003372134264742011006990478585069261903601592800718921120583496017242011135197309785041668990450259280085703106675332823766662255982715076016822750221323481419583725415946909447588222551412985490936554999046811620462685112252349351274346459974263040914011146598804638458009621524439379711553098332728406467339366502251132629500487329491278921758067557422695175323371958971349121132145435810516748557548071694769284946289880776941452013068930543014467630346383179124797142252483085787521941608495645206892842028187132355783490668395430461895765531334272157515677520866228049268277477636149134755538934602194879850511903457307445583411707944326868973467553707952434447467770511890566866097488653697447273082209020090539122323312214278454119907130238114264402394249375525790183208334468601664957569639539147724687742785147845375884834041810359333631615165055968246220478342609244285770868092392114009895683288842853362955047813774905233887558595324147960527348386586782024705198853694862606211792247571993980164544708800253887218430527383136820068765713691614415339685728075116359125454978176719765899273962164994993702614306634085071068908151132405327542447966986083879225399264044285029794631497793952080433599983398412058493643573656890678500870979416452801874205634149325064326952380248930364426422981873437368064140662121356603101455504298536286041960919941007592227934532825439806566418212425134947248631221915046188600450204901583508237610196106162152887307304726027083873497658492766752596472924532717823120579818501556795802047300239758550236201468907769127962184397874757586030839501677537025847246503323585808792768907857744320268739907717947966878787804762293016978989952290656056881627078921077794401691706440738731249479814558124020213971125060751542189878996951864993065275676112267894116478023431309474759038474600426044203332008194109572006489999219932979151138758198704399068445125811267101316009538788544703356242960195899659059379221964658098246546283110622742646388903371831953987537454575315694850853620754570651852568539593606384832105092436529532401892661944853605562769401343256394986340446706053640312556258950875790488118586154081096233834606279708889323915448424078968623971119386083845409446523343895723694008529281168778282011108178919664651931765654539262820358938211109140328036846669905965804150252899493286537995470164709748769003346791772562331774642770654439246082695340047466279386953272575738144950515963714097136286382612472583670141856798251480585945235592688770111066844023121843108044904062536082947549616228617899136403142764443993979560382687656338974282567212700335162544949825338600381212900080579246747201377073163544423802390738713593675937052368095246178720226683895918862851949989993059276758467998881751114454163088981203803431077556067053531996888341240859525268756696911086714114120997540842815393197409554262037447161486371227561593551539772372224036493667693998099933126678605790461608486187576368415249002315985009184444750498253050126822839401388641051633785309436587227906209734893767079492134961820011262864900584950126672951050964374616970506108787161768105543916333406100590994732192361511167898509910541507891755627972146466251816578901186787368021005061955619019745479037531016953498415702393247239979729767564892453356339158348706182260017961605088182650387080107837732330354388758896569602452390456053972071885799188810210510302151367910300866140590928650748360881462837034591493850457839426926018783306757849582619779333206613579728272206440539639571078613815920772782878933947118034561761378610463301753835195562307502018580761434383240058370811330185695670544936407814959148762354072527783516151185148142439221228967380996700526408145996384706701117531315529464120735058256499732848582073161579847504255203456024943320071758824966684728375569568871541877691020356687715511432174963624818324248377447837551380895468857333250778995906139789144171124824352057556879007613338032022386094610283591168334157593235324410439738693048222937136851986441718712674593556453595570229981879644800844821221430629460706103554286280203564555829161381167594972378590290035253370067088971367337791155923004382828528460933994659860199267693308699304576710620071632101404581399348090789153921874255910836541178322135367552286589378860744667231676143871230938081467113907441156212320981754674124822081349801481298507996999289183408661207480742812096264688638115605423051250325399278854589470700572192916847807495343125351899184267987170505000228234559516043743952498860293757649048465472666791189310321411090419826837163576913639713900607947158441268913583109027369449851634553633847683471090981798709480576591175790774967450225859545388364786823754900493740465300610976306053359956708119059292408298710211286911651432226755581337176952294779789577236547176343050158756542887984660775675311025248179668863967154800208173592594560883477483972898394528474101890225667105316897818100748659228993641234803048441060388323259991623491133103831428692859856103762744319922138260729569268764676761157628939949154914050039673537724072474689625182796578327458285077766171912608137612009137644548732561926408652330072050614504076336534270346326723440324923673732987046753990490228752593858268940596110275061114355189331431071762518919183308411259317575198613683680172403935640367973990972042949831311389023752204576579053990106324295313778673300309154378422175275151810128057570165657512337659977202959116004223248505733596461455935695303556105128831730899585996248833368529197269227982860333861076846195043714118648946378928352813019950245334348416447241140699762085029686542266882987388931759165931941291125596612419252318208756086867218827195252480879286515656574976629383200459292977990992664983196278114786383332464859256215705823920390440292955544605389008955677232060821297306534004756615501107625740482593631431491322256414492921349797523471891220348205134086539918739214298179994442350717342582498865982256469084107567704515201403047406350026525389223892559512527612675570859753532495589494553613744007187474179866426819277930629112921608235339142547960821836345284305622211293816272931954638710504758015010211413809390506637492817731275853435669247358966804859903728374969893701371909354216914907729231378588605582432930520446759120227104590534653573321640122712599599630499136081487206239094200519101772500273984757470394361416563024516352258278419300031916345351889352227344523858232492808171554706228842006315764873469548658130082309159452532280774044958026430068408981344248092137457487378404904824089085924124798038140967289178546962373323525362242070337906329986458136247768979913906065199108585519882139731587120957391618519566767662000400520255423599113484615983759116985234482493009648759120176066762241764038927675930184913753929562322115203216548884839021586153236937587452085419535804990190856905131617299031069199750625655804934179185489509335127395235152832675992912590543077072299133326033252020070934655268804147049925701786865820932893219129280756909464474670653510067321993883071510717173957807513468897315120537218434152846650720147819670611842450477989582108906123590328100028091194731603944310248269450473287009542360597745703578996815799444919606369455667164657287614656043108950297892245185591736474937457346427800525044958940162544083420231503119272505338743190171494465700822798611185472743547827596548574760729007607082831896939766502142124611242695855677036585562482541931413022877282092451269552424003643469009804907246393506166921700527195494017872868340055738900657346282750415087258658617774252624473706533238968262646145484934876465806542543747779278444747680490912516797855205797942575398881718069981492331826559700331788727874402674015256694396371476346008959787659110152310926985992820164309318600453792990757770544383869534655696058327357316124957455587314758950576492783044066880374707314125106104820437270382468515660212381509065092657909773751040161270448339977756913499593461972166723037725163269852865912980383169127652671803058509835666243904207274502752208901294559181417348955819790767940268919963320958306528502092568305631244419157644305423755381206820391410034123593995522321880448967972062517452090883994780382671003920556313595439547477582358574168417839366032710012326559058076455611215696577852730907634301817282039269907018542532250821723443214159576533688709751625168836194906614792233864853844216776492475643734908602050914455085543734910583109799072188429180777646245978448977380365903873219242780390078424605674373299311221922591466690114535268510258849229146188275029487439227715399046382975862416643292571368153658635895412172222926327634142957348613327430507554108332324619896562216258348902295860000966561205072045472055755292726384625844136686698560277128573289796137719424911437224135566829512354548782204370643481149365417169793613661690157766228379179641384022251462867429641144985551551463696622468275261120179393413875694635603808876594639416591792523927378735063691685340260874062850046625742294487807265478036794618510002655151106257227767442861318479646213834699328531711674811360923011981298039130243764342738069377221668895475057899750970132344199323324249012145214307068171158567206900714855399619710232638502569892523543574595926993804460635322625851228700568964493933226649431811536565064318462112214563436750656839091725243533629447433022393223778039874719337519656247544982373031448296303130611882831988766653879398857658759694044154474569001569047271728775091430566084068543184537820661005398433262631085240525672336003096351874795520281744980604469510222698020296650435220855462334207768624806225255201743342628034253101516149436086159096508497078666028260687226640687531505983095538429639563964231155455009529049100207741286087355321460571246375697088962003186256282461813566549621647909198759600490459197268881555561313017324816766030249308121405501860908856101811143412880144015821843221929020194189609711210397873820149944566324946806636033953073614500579680043523038363774186756810043024426249197486424350563530841631723846493372540351374866102006534777848281398953693557651768299360721400062060126735181837243903927763622011817668346801285318048212854552501673907443488506533274095154115069407463928140347112055978361007653711321697458869739046635269928738397824879211534123767299971236209099536874768490381070986878839455970284935316495946320902541314307825242691506340969492928779975433742161064373224044579946483233667592904058418377596417136790610150677638594060336661321813313578092831449504890299081973083094236786990021530901343501789345072146619779952995362219998264345161567114645286012749055798656890629655101601474208160282084998004405654895504582410704155852619407918674390307850413868949214766356735387744600573180321486175445306725081788559392741368005764834654614276656486978502699017862817406146584624287243577654245520178318164478073983139222996846846898013986226865822685398112572479974625517819437772934513125218008603673401235366503007740608777367356571881466153797826297416095850112827046173190497899223607384494117575861573554605290977642952000895513797917452318137889203347854123815163667702420085474381924121086737031480864681716168381196285293772775232207666215606790545948034236544504743707931096523432581632485895996222890083547171631489833939482270045391027853317051499480975880635145427021229083830141358273196089014638514021422404888210511017619348757517321315650298652657690059018991442882910252421338227361693301163390180491087137471612326538924360561842466107592541985413964875362688189794370986082009844803314349715580607677140503032528093882390087161946596589581642313057466787315707057621493840430089937064746686394142727584510627453057819895546170756587334235445952440370592797817089961943128574780825004438176644394071148523649766448575677602789635864625822619869333882076577129009630641053585426796306445194619022825030723408214117725260138586730297845817321366496249246089050114073070775728367608058648311620133867958539104821118759305974546359187338636403965658701804566180281348829685397312797303513034576799730066571128865860478536432599193471911074440698903011223763688546377042376344553617477350206933373634895725110646533108881284093785635216406316582409906425791874832385423758462339963300238426484915520029977247211861513381634393390955571875886309171771335657713994192757438415361461036511181474960652415574025451804414752435288180764076267541053594565263475405912073668930373522953921858349340453599045077732363180140138426542096235555845562300050693786018606078237856018807612793357248203544413668725662355989807521004029056482908796997110071367030766311357750347395028032213439811896598802651965150051751834200275376273550942155686571786615975822166104939649163713939720580308418632140138779810234914552325762944042872604475024492194797324613518031738383298630081098706078649385244087440867330952137684121827969264352254786553961339564585985338812148323909203865004681927771463070104581682169399032195938791348078248334685962471841084561196876652435766229625350247072728157672815321085289970598614585997211332795494907313320108209186880033597241908894957398726915078228317328981939382971979707824977641783682983181823349019624738044721327311265265934241030407996564172300608809153419334125960652462524379102646507509080622459565152886692316208104453802552112355454922026073523979131975177788249301686674124891558196096885215360002727956114493326561384200118828014282265074939838020981303276892555833564088760878400535640071747812240616134172999877336729676254678363720203901214126542640768722622625815274741288983198519511355573396764543296247817220748944821803196854301724575666224442594171722362774457544904570403357935502011876437532633279990256837038816941894956274489902167446014738202179538227515564909872170773627244767745887094480986113893643423033925087700717621543076588627791098490811672594368629626358214606208079212821204809793515115431744815293875480238494310441238470513940073816529847942745144652193796819336593710892608079936988145308020605119606007916998832644293192783441239957394715812088553050582194982785671028721232281239180252117320748911905442417326212222403389531396394839997537005697123633646000250584584574666308406799896494524520169555685300434001467312954460014049983610435786015516313705806402192240399737170600324153015603008545547125906384116790479169593283017241449151748357633272833545180874578094631119068582875744314098704657867924148448823344674776307499139530544380561264762413394259311042561181966235341853317744947208520092434450951411002990156540622124398404145780362526808079935018326155773660712929032594797854620151437702330678406725540579922070418471574825893467211586799693024487368635583905806865512119061896734631719763818459410437708214910734806625638629165831728621538448040293014322297739275319108934297032084021961877950124093761186500076143980456308533676789129501854203306501786243017332041218868623114476539124023026801753866599805074127548036948560526423663176827560224982183428831936585409468476418080178208149433167821877804259192054755904408839208210004107820404518850724002074192292305022253670758966363680668996332113545732460495111629416415154800741038284555516977636637053843753433942235340693882558712284252325915393937322914032525429882974446570519419716688573434597026295284070342680288629158715642728136073045908510378219493854259394495853052941533242620655022230480460521111349925656101710808433930976742994309417163299629115196143971747171121347589438829044557158349881271046112999851250682024747611187546277479387379900427332236949496470689720172904214570890894646656228947458496073350484220055908288690994424504547620454759223878321712593946408433257686400968416982526760472615014670797220910526049873079511818062406787667740788090755210042788960852987657029593440162086096497961879766503677441184667578030351996775177993367153901747029897135858216215450584336532492694737911266007705832553493018546019728648596174230959073988162826965888213215766882952372710490881765521978145982627939724425514302529110261758553777543057313004159255041746073570698905033095838050912473128710028258405175542287636742470452287463666016758276360976972190695157753951806453056084576164551555442955521226641010473754600680183968296684461325876508254705821129345188182777325367514454514136747539281322119210686820779392725926589251569788968941202253299668764564777353458357467090878671160430834496101744287167311608780558686225622327435933095645098393707720696063262609542949147454396241281786148432557119963522744610029141451692251688531280358291865024168288069262994980144802189278403499558344231554739782837104323755999632354806279047369394254884690876641913116345019455324280925403510134747229104979200111304313116428136329593515364882333851085293250354036071118051473893353928506896693998335114969393057681003107756506795938844487685913806776499321937905951041594594243718649034666817452015470900022840038532804806823311824115313724707755216056418234709242913200146538325829923628333324872197587745470891126459178307548980429157727263603501152537197469539310300792474237423751181096992950013676304732006423074231122036559440906482727244489707540269529501957021998353140040641928776242882651876546726506852736539598366329046002634629028754969101382694293505150012894022632864032257876764472937954931460828502309025025347547719193091442842342716063699847427958236053224283680368107675082776022316681332594431651161599876593620061654449772661310726354400779354820163812464286406325470250176015256491203712361346890651884062955444295952520112017985018634363432117720098308421552504914619489195761218352937323787255599812886830406252155283503784809385620775149111362977202022775892006419590984651953382056849197007347306102415649590759257198530554030363605703173935073066296008526786208960774097012048710480933712278482811255990579366239351488305805587941893607482264863048361184916029427933660248580537786321225825629788084909927654050773054574699677488407829870612795825965319321916947419473737017101153427591883826325132325632864393758379933164936936307358146036324074410663144426948904949293965761204677585812836581520882660036982940352998614293740602462776814364930434583777947809450273055440416036967462610376107714584286480256598226126105455849289734854586028782944691251517272690671639910924494249397244843305549422561166776715073140013321288822412568057976739801749144014848952993067783322783128052686316396845695456952143224948042461732979904837358007392556393297196318571617611267374426465113759116510889344037278099445886053064375845250241637134569507636451112242473574330926377337239050034794697644125169833450730327876998549601780788125512851277652955256783758077149093438015157340080195167077893403142391074094283618702837229089231988964622729971959350444621439993116810708536609636092422389858952681211324205342827598477770487303262792007327738798160645114551862141803713451694544534538422457699859684855934906279172228622014001086103549330541451589753265169636940363022337676581177230852069024937135581808418019232793251995123404381600913874206452851258705812863193714605641828549964461446803560211531843685292721161323066941144160873248721702048350475414079518712146065127736020357603374924538369763929656505723327606611104534515086718504842840279078542070780827330119871364750825987032251863081939822507221103014249857188600586070828358983068483033845789306090324751340837345157603291727462097642248873062185099013423152390733308642654977129997597125174283108961971676983583190039551289645679851976199369975392532911851599809541869374978134283378773703678987391340271829443591834815970645614756357348798356119055877881335187197948462546062532116007890979024265505799486470231038716389235253303322394610814713376112926242230896348513715156134810573839756460712497702185459063246913446575031583100659749141179605993667663865039177327705770135566047520979725115654003216178126300057966943283216609405628369997691262775983751290978705598736708910019046435053033129968605267683744197954532490332357363165421093444964842494488909466599808859209288836599406229758927203687063666788484498172954571880089178417807103006280563574520356434858147577367818781119641853020174575429896383332306387433324921248587881048135860661450807899245840259899698508204665507428087451093177623467814514806159331730223400184760247349511973826206173927651470176664814675463701643144159935472103155284283571899432741452055918405002286878747063746367983334729538520232648457344861075615972735536486528238277370503517093984062916295147760714003047466600770664749053824838817655345260348311509204315290829295509967830683745670645255205645288494604526944644793825031696430771744356934591176655869505350372195422689434304499798598850602357276564001031224812403838335754068532213941933781221636256784973749640384745159210432714348317084978520139331551977684540181458446760401904993506113294736567455725621409750949943051253639823116589853102190180057751322717180763489829857650555372920662904379088636695966515358045696756271938490741988807245120755991602429229753612435081237212422759785623121748040038275572107474449994990198617905325456199538543148830366109095773425330581594039150360102522760207887758899086704173659602370614813317252088745619298209248922461492034572974912660561561057213168696422485157800917453178687204567483889164220117808898896396723444772281064785122340008495610128612302996409195715426060397194556179275405118362316248797229816437366718751138861194376737158001703708400724800238388053647168453340310126198012407565807707988528768097227139283159996547687310384427295842845255142364456271136041962556251878729474140250322785231654758086733877650794744828447523960450271882403347569523602595703152133327100897268489161675745231806957906892129058702825951223603987585208154366532755698674181446773327449792528514395865713732087056780603353142076457149560067073934494194634995539016260047909104478380790847921253500215867910932422418355505318211290881538896838000917082209339028028968498333756210136248290529072283983515219439163986499167946768036449048220025318731308131621665180069340156734026031233065778919427038631029188714977960941673388869741621071477738734859888323687378226729802669581852513901214143979955669989860490057301495272077791363224153013027945162381311400285223123936373538927151298239792152904605393201710751927888652969182877223355693456011095409137523454331937773806168187032733446826717826583176876997779317161458727891326695712199078154965853337461264656315666517804149013610068509749005379484122402830337165047342576280226548938821883845066438393805217044819341937865534965066954821741092752063348350963569057267298943577568897491424409057764796416844003787550866545052249886183473768960027369508796567364885558078490526120894293705689407316905682351464783526336782322153625577966223333712972826509199333373825228846861826892832412543528622404257484875284066535736247562549699590795036384994094385175847968326889844290463147245278200931905020336413316103393538921359299386919695371401846346123917051239721982306610547941322372263500947808221981818286900789587700682711326999627856168011562872116891568535930045648991990086328760497432720546686398129082641016567190230287427990138470739726668020071488736239033188632885348792745319935444174570428697718820443424152353431570279645067191276566534528722974901705323603632204216105683836133855121894037211413492139561952551474228104238149533469079744069406031969072976357564784682971590230708378024189427208223160868373465143801200645711078848082240453797419126633395452107872713539005935172929492088690890622405623270412080618393463948538186440217581905791068685704260373123935778903251086475878870179554493370362712600331040751601403298991222847868126926348310124746990584467227477389174592345560906864907741217833214691941677032985775172456854647062516870752632224319524629629042728128522185007266319044971918788742970152024635365401853452564197805776645902338514768421654887172328106139411442390385646290978651714377249760949880021900776982699936921942115278103900654927236428073299982580410441752284025810958078285599967013395277801046555320088248451295127630639129932567609181786490755134656748613047306007140779012921807687238014335397426948419238034805886621819331334459282168423374969939077313533561735425040342386884429398670853615059092872462712799525850778462713132619586060402500686458307615473112573095390311534382615153479173184292477323974452529186059667424896773318085201913317171629004532512332493063047494825130870934188963695892898902979321265509595463289696454373127937235104686099805217556740119178223085189285059300929049242813647471336682017013678225998023575266539409885874396777079555203584347874510134777051045031785628070195285385839768923547642734876099922408202163342527866628674752254669411774577238943034502009480869150724650384221027274397088786158118964151061027107384008274155174858558330082895089765766026566437884963871368488651064097873076629470376656382127828006433343852196803160851882814038336585467893756098212490710230293602753085004920716785490663080236879342869888962246288816573897629881855809107365018584417423185043369162276992515283839929201381353443432282230226353599111231850958097279956934005603816469753818956927455175725542232346265889260983835258362548806626387442367263508882388333982553405877019658706236286319454760783491216154177338195117294746318891796224688657735633714040910462076271717271889566607579122420189548767587048805227365146531333258017352271244503006341891964429852486264433194098433202704011069360823594131440593311364241694637815809969838436568902715429276256248398381077993812550481744285706738548079090975369007750187226922485175454625393460546096422875666569592504913859364266498539627207836239698629627742946617147762643273279993907775835828457119685172624601299281626518761808996363307207573896999065844309258378265360307898421515639527899934549524120340655761813709217890228669768802940300197147815655026058029955286912908775213128421274418581915438266692806063814764316674317221493505136414713441603991848710930762166943845233296710999090355850685425497689330192504506163686278796767360853750114411319061560538301222336629661449211117511679001971884778369158783164990336981414035788940838399394687721280854289376857286866252632578670287570971455660459149187865939139742801467602835524832515135423064635606596785891498222210530096205125250674012194636014884466093114194115651434166448262929512968761580633943431408589265465787521011525817193436817753295954380853769360008262266104971141620302835668775117101805255377475571246708569724519202387565760682701001175186422031299447508016958417989853479297640489906055531940471531532316640324755206169725762300261432680343188755208650392725048797429229119530713906641697633690472725392916623790106161717291879011004906464805182441290150418442477484556755074609284957978509562565213928548178309399059574946609158135546974487223620765421372189720400652919963596676002872485566780397006529378222606425250458609140891676954695796097593543904096299754279175369979213376251614007035937951056489029082121371774488109398299813176249059182601159029827030954643977035900327513148683619327093829376214064626011827440091881576133934992856118290621489355207806295427116444269204467717156941600349649494084370796003116587549670557814354605713106960982478593910514303134336215663374392305189013897404017950809648173238258685490670289818352951788986221375134908437096851803122992017520902903396814363785559912816289069560617939057519155647739125494576885154211339470554026241033433705321553463311252854528273997456719553570853113742627648657789110705521863877262933808800670882916604665477579356806153981942944700394952899979114785747837101342986390664930738322362739529472369145628674090205712771173821515282347510075333090735302074254853049873843385109914181135094397508818066326821727232947635933625408466791823303379734394446518149075412927732844265750499917916534789494255682858708864794048583542694757169878570073763417381277420294568967519129967097626024228248410684286508588246539191099013376350184645882088387972759208729795115338256345008625432013170855349359805413577739804786895114833318516598702504486801330081855361437237572066651164214852383328929447912486948054893051470858072509758072633062931050760123816300840371693527035840307256923431146720016433380595811322903920303674733208446639178650399232341261224377460330066297628290747608003329670582475278742113027726306204061193554931487239290904977080175386698415402559211304003550319261763851117040386081161190754213376452985860241869912022464183004173679187048365610773539198503036762798466190513399840185537150113156399095431461322136878588337558287409310781925435603005871203544030949389235781355319365639232375820938835983334294495802484356257140420340510555629541064118249388541085498716629366218920876256552204648227137490337593655907249004228066879100054210719329606914370533285560831146743547212489030515033502714573110133025955354884234950965457868873603268734570889123255117869414513279192454216255968874415193855990158433225508322466717100510915325648123806878072812402056346328251199421698034364080039170647311928260815124779678690052652532971645120886195424030148759381980443744777880516632091279557536379258144437057412666601926249991294273927829565138362935733883080549078070410859605611266307315354786219174500222135149718488579829571898882405501546989566927736640564391731963204308376796144167166363755688539933657653097116902085541628379244945891593672483539241571627639612648276881772192616532126873505592772233740488665081970068485733434431471103889377500200731328656173071481965958818456974184313611562346220707759950416478138415751855113692990559013123380360364927701577573057627697488205938675864527891496486850410172614070986175982083186257143359506732403227558782332086182938104995387576995015227089957725835690784053913833434533841835501830663182743003686796989319628346138855209647141654780067104990650806202490953681876418360315066914796028425898236651765839734533237780364009513724102276598016749410741368502012268567694447094919209177471357292495278164531362334528080274649194645568204377045515435427601918689455203933002042770111624060216288920688820887540157487248837759310516486687438381803205805937270812318892945579603982873345682976023468544822430977007301037486349551161589692344508533197096523333339587870564672876937832806136030989344494675196455691530353788812444528070407205712829923705148274304160003351116449704992181781262294771186708514176153199778253386517928133519551218638614792747177133924286629081585816609244584466762767980321935136340386049179763938693082380447861040656150901062383872425719282109112003787440775169117311473660467745520373363006491387536819753109809005231873958645091331529599636216861943655811280441794651104808132380102555482062672682499713185651723642439990340194424372493003224709882532361854869606610492380693210415314910456270436923370109961387289475107135173513884844617692072574475061380198867544496566087905417686933388854666829053357263260098604427823087270786223867371357783553506225303286188972545050672032419709634929126344239579664794111084271507432514518143913983183237610758180670402821511652609496615868980018349870037756141039228290821052535778629204654357055615375049696725305140472975363307422131325451966499927667976321803809824599719742236529792645852227235143826860883139800350542342663207079859343349433513750065067260752479679213799751055521813159742007438698234098030381237834213213661609008590239393252689065745810907765568565600242456380981401449831063952246084992194360763227063932624522227921662068108031602149517593502956157489608771938632839235962650818685973143995352479255506055702402772894083993068178084548540813114888930707544350103725706145393113701046630091920346701733754014027284284755707625705081377309972029610540148767827186530748265265136007187145348963992410277331658556695379680046332278254220183580981449388195031470314884394475270467866046125471663702078769977353779763295205895840571731316375390166073902411294448872973775299892456754590383453200413925776007935718010109908927957304449431510687384528454191292950057307517980894612331308141060607155755909863914310377933964894173964834026764674752740231546975533266553791570140689033013814876128980138018202035654964435416190772006638363596749105109387022338070574256366989728741119455844197866353139392719660160642097254672029449440919455593031372559259533438413518911198474456322676662191598735889373320748694690462622179375839668944186610363237232514218109140790234665193799342527267557446531300572351021506626747874274534208555955114223340377582336089882646242338519936157352056259862547721521695679837119065955387776648521279879623583513726970064132798717508649815221484868833125448199810323370367697372317769508817897458818969976547091339400617971211170392047983408213951966333690937420480303163456546883508160188687672214832854384886249497518332660387739594288335046677827251203168662656341907850475377684141482900217051357198585322316368708436102862874939630066710743814586853520141534108933536176245232266374933596034110043637287306398189240566062002366673888218728336819764344045974730054139035488628303113567602682004673411160173630970968374375001909464838433305393749016659896437965853988622724964320733394056748960820590715227056675187609551138412205587997926708029309899525688888165529159066178453006031147595723551746248051896472438936190767675469608299134123648302410145449547226558396281034986973300491392024138560017944949034260514673461721766516938661803763371991032563827841721210267366591876143112788327212558124055672649412045736708195268697437639043632637299073147849239008251762842875148105695380990176144343325594357134743443191045197054155712401835927009000068616938817048816821654516427945138827086082817723812577046331352048257218015574708365091306439755304176080984958147151609260298484076712225279485382636772722158352159821643198701453602758529426065737937343206088760576403513558062635421241534435171294052489421360429864149555376064650961268416393077242130296803376674585951304713061719153359805635359339653250160655779494921390260564918009290990488319967748110801833300285578975574813391511449103755697019869800996135411624936790525654984229945046401828565980789799438376697223074134889952369951094990345708420002780876062703129731420779289585593479520451607452829793900229171711060249693930689662963708524097570683657571523821636425386739449890371910280518196578315882139189732887880853473923975053643045552854926211840226030645138614900546484960533091601877031138679248955309451568085989138629463476062450600991472489768548251517795357565395568817600538635237811443132356130768878695462849421961741822014230139753934956747097329662404397073737783720543315734905571107999952174020176237044000913280131918939468200717208195775167415024422405796765245667460222995219044780538727953591828209936810051626333535186541059806188842120491435809666429174130276962279976259447185936332987441251710476160461961078681525092351787845927004722338170619405535732288558474605619433451571011922232463019293016955192253197091187282004678148221779696793113884877926876517647216022125166222649331875885857008365725944490180540539836817180236468717181043010988891253001983505692024803592310315272942282839215915983424659989144323072084339418253541440237990779724823916760878012381945892632848250832537716285408289259473738018164253422842158304695676201024413370782392118239823965139532327650918883304860854245685977983635910891141391978869433846655900783600653542871578347919517969280573251799729283408958657504263549169471848235741552779231642206012141673702347265802376627847743543169753052029049789172128708136147493999663182623464761961682833647177401848353555809369209076178638300599507961773999188024576463291180621828669130737434371417666017796590786645259000899800479718887105808497086575019469925183778147045907793324179621060283731582372362483096788186237488827187970187948969704255893138234626318915203548469657819572259559175366261989946236238521603653228812494118891895586806451032454013489757504789280021508302983959741827681939669308594812142648549592792486279218203407895678934453729616630597135685256075795813106170451114944060662919419142797097876984988069174091973516385870854928582178564673742381628687237983645868016055832544404343188424323468769384721013495479195170701373555161881350372246228189284861710441359278709357215135069960059008555869307789939258083348553654984805838681546053220977798861903130148769626340148831657777845906494454429270106683798321926625515673021618878819908008051443484779165194436510417537257735694492447781247004588286822984122609057093245198484514211852603875091053435663431650385711237514480635272092592292962130135752992697841572420255359954467465412690101672043820199106566966824947462883277162765259649978470833812006420238346475359469633653853909480626873661103215566174323001672265867621659928368954593855734883233344585629848392279742939412545286879332994934729059284048580036542022408748508483967337754518894144107411006881976218693121974977091934268744567727247404651501999291992746132324233394511974597467791579002922078999177986057312641629097467258152497760345421229571906047765772719181299023336087115991171734451159767866445314746538416622975936340594917250038754388257172920721170594876609091789314435497291622625541254787700561330353701295561941226703872189467575479344099431049918245053807937398295139899435786191447560341111876940464101245268116273073352886249428937883635679803148338534189601269016055828001964449980991004953062901966738311514064659811820995629930250823328861749864944186068977647630678703188235848620433373371139305314170396011587269148813871417769036636673792549997610279994491158730512441340061611984688764653854112955294582180677298921932918711451207651331239673940739443048825095302798273666024785350027032429447002234796425424123684743237821917690023823181259617826705381228766721106839292029979884773497794510849845566320866249990728188830828930465616515877127702674123641726545572096755755102164596432588795510125145626598703441809450573040514320140534258559466922964119943211567875548943247144747443352841613872454169911087735131599198322305101334297572196115588127851540092631739866299224617784720555465553994212075665371393140168858533884675561410970621281894567066646713152527023412953720314365349554545890485273270224780445603562777913485503805800692510155187712344864093308317986347225512913064101582964811807018898616432980716824919100314278711869974615848644518038618428780326588568687644083814811247612997455963256056027272229870503085982603802731117257049545641228282511266887692229136464505539246144521964717476814071182751075430174293386714949143478665273294554182725031020757498426096248600016186549024822492335289489729705940728488264846622557792582259988370723254918402602365987697660475201626488733139077998193602485116467644417618866275792122496201689674966124898559741264899971034051795551131532900824167755106395339007184346381883893309084804598703719010043846576425670749439306614308093074864800597360989732147971221871183569507863876530705529517638061263881356821102043357520881118981973700066966666467843675365384810271101516177438012249579020655116717763807734272318486059081496716842513830125958713321259507715165236833037651038286405427825324156937680180109088262236064615391547392303559781829818081998175686983636513030328707941659092174880759844206336492822526595433829883242850457641204111732327087534378922839107834405979642953746041667322559308182897173273695950852374490268868305957709427624483907465279241840719800225631326606777818233499173158167715389851649977892079371203849593791462182782217959015458378716375360365301508549040538156520936192163604261390260157459795425772985885521998354114374394834405678505175806811810035570675087993903984469641013099777647257356175178492976743288200744890780098388923242721054492317206530417270087629114656880403207447284021901888415042909967076483857891354320983041019838343221706056608377523495343379154912595505757092452041869476975291911445184153364422757645010508337593723890233132848867260791301778358717750541492814129622751466955384892582408413969757551717280334979714500599441301042276036160296100714414124031141176912345311396249199698079213455783082568472294885023853173911221016142943571583636204561814368471779623698317541987702986368916466753632195306873893717291848959994450719983967184293571993434042989333524381767681948688932993976406423138026162158806922858178816321992668237481769232832641626172830381231868513679499233325538549923552826590078966917302623293124801232056382055492210536009759251550471289517728599547519862167357261129712719996735453110067281620973713293114034229630012469196752716286633490109329377247912353188143928675677868681947344058551569313298040009554665182522599685210241202757131914203640969524411257117186930361059951685751512317844813225709636211036636168403627628907687539112925463065853154011736651475822725935340722998729576916752351889454389675978934688493528424041127896839754951851204985015293615726901108427417877554798200284724246719181114743549968492781749420504643501928581746357205553472286855183092447902606657963888184554504860831097438134765342921594596516685865167701999441079134147823791652217629924130861803950161372583462118513577580371721927433696092107890323109898852593837112051730509010106300196688538123610083093560245898699175197176256155913206315308526918802515523246280385215216032917872160961949625316724143100041886304898620067763688977415534921574568265978698071578297016920113801203351045285252245002042399771461126828090700039029887647318975980822045063239266878149993456483281197322328508029402417669735277299421281449124687941177625841870673894396626677355228881766023829443360038538392404868594376309643403746516900643921773260145831883466892308943376410759845078994667852667657557428078999229697928791302980254128136721388781609340275491627076236938028093524351007267414881761993232186214621102415545333799146347038053075312276751303090566998764685212194938972693634822263866894353372640530499497708757128610656901076886231181702007231427305473591218695891094249887219712734591214970674193797432467714860388350772370236958928610709375729395775785800115884312524338802281316547201556936083557269577946896202690841715377590000600319029239212982208628566526367380949621956366603111533374748584088562520557981514999804302009947835379439608636809556327634643469811365006830096449565131652073217989752848575826773269653121370433700555907101597356550424208780586530975807332603156533445280169515719709630265601580390990893006112134204987728531998126551060613440236024174242633070318072458590158434365264958062481388977683357920285549086015197419626728718810558268170238477938722812559751093116397090407329256043296168314132025822928603915406361986212955406135905705048656286513323309781899862287273956860155971903718081314866060977972178187595327984319420280883369323971161539236443922354147108734782546421971482728032209184728874157640064769952996982683747072090054450089535279029285395584182787260470456122725939539426054954454906674977007885374714218594549933573195314687173389864170106388806474877728808262054134995533014177083852746806933166544440882694543880013818168813940113844150790893299161916248375313215177685855966974517225625577098253518298033921199804375665463453053802239496438859566127547168199317108456054105719091099651318646348923546261720343172159672705126892092529378035939251757538674494298827527680118245898811342787234867423646082615960389312492781187413906971098498401855225296101976756427679180911230381318020059643840416957174375972498239034439289853385329822585648740995181172030433720605923761124543906379535627288876369511835855792663350477189413977232048057003883458880966476559538978583378166668072124403578910730633645806913608691964873153676040220394242276610308202599850700302651341565192768093442621449957186578267052720214394443472320948286319943825081801146744535765577308287145900673075230370492109164991372762062218515435372999938561434466695521089357099073590311604571993395194562615515520006042965343667186399853325561698194039393633481309042942361845952643950313576357184698140030176632385012880106255556804539250555648234246111955308077996132481956800257216730973593473841811841607582654429108966994732673252027336973725631284732604242052955528189836155233522086334659176007331376472338853616715119416593116347351494723473858525572248066618891258035192977676745271150995413518385033629529359115134226748701403375411015570670863272236369613304482458571386004046318918514230112999228595933502289285311993180669828691895813217086929987120990663646600709719741959537692377735057334639864795487195412617564555583839910468199832259284231409724957594445185038128686146610720512626357378058135442311184391668855337186510422949190350463700447998061261442961777645184390036481151362518831283895469365759532747149142169216986486590135471659320471663447093924774257981616163418362884513247104425722661833848159948115008925955518996723924247932291685835851191162481977557987645956674136494989937397184053759542454757944075266019505893167463030957595885789808620509435194853355649291527433194700400291117893370157117406416024724492845644819783333629348918343515016968754536736480046061987102756117050047605994160479760518060916058913775382229915222566100361832202246735161018782183272674377580073838933472374077899833780066080325852068911897141494035418322527448326301034406188359585260667385846237706651430374713299265920331366014516180323926399780841381834858194305114529023005481432393421907716939233020709365171482752564133589958549576215625665784218069387703499666082138484923996001326114765617317862367674026885083830317422366830148549150576004713248960282377927203937174799245186715175694288774984818775177481536973032246102226907787587681440315162044040303319166714384760462074142197426418370663396291340343812465826324133173702316894905344297271191976858968136305538115945112695474107400035092151332873691305088039674310995018752670739671728246112757085204755320248493364155739594214925042535369615811246312092974906563806745090352747244363401259586050334898295801705385214860570691882644501226724589084480102545864111199935487646371601065386600805288658894202273951628764066584633258104900723173184728059766011357015980581026794872527987801474521631422708125810543439394633766148101827040516100816845995737990407253632769785192445802067621883954207759743305400829916774461908143822456539804576092954593458608303921566867501715901701042830675819073998520315962942589192711730046726599403808346859379187257926329861437610050320578575728320367208873261949346096020673920377263629464929990470962047144920044864792873635424429110239242045124556897416853401200735905825518070559374817673208272105970792521171468154368514847013987571192944231995612003177174017270086985167025169732360359159687303972594558534407838506465450786623719059694142851463332923360963996837564702113928749539993246777597390506415905784797402758254408833003062475924180259922746215006979796238917883536377206439911385258342269705922396900335874007055394929137468483204962909381955402434657637115928120694617503041024555696763164775737826889939417946269728596390355949800946324540802591234808632726488078149284649462461546461059863055148018502132707645544876119432625082356721876063981479486496234990195073564812995395697052075224227711228756600618737027994509004495662994314353082880262552315643625557659141950244719175161644747687579679017554665562862427054583668115352725220730307363205573899287686222585504248456617685058129442534686408299190501702312323718016574943900558845512711108669713605095949464080504071904108251704903979721543026571589011368081531812343207163468712121872502699987976043756446517574188319594694126132032414172567687056980159684420953915937445339877959262408123170383595362898468619018592226006276060982907546341206016832968373273245095148112004770419055352254007817460929157523455460475409156317564289732373993889911463365386642993273652031150547233490165252297323888930181918337826075812611731546169969565593281797488995573088115051500320575243313253260317562227358121829184981466571174494033416499026808115564577607671694743396445386553475637227180376736184688033741087431504142831154286409309814691885157216210612280644126174167019552508203346652628505629914135442007024016310935533076450695491118589460478220165364331529237000581356757100324216228625467298320119270776054415352810860168836287076612397720334818446056205726997529537402976701069942904569122796326754011671747431838246346072594278755533478024159065298562391805850518954084332776495277916456878608291467794239131720246867528983097554656939299517070353483407500886914557799110266035422776832276856519495267669279779763504664902594889484689251515462400597692276386853589958053305246112507618442187202491186931797420301276027281758287725887181333902256789194980868406350949653932168941810852896341554102744529117390652421210932609903606738534810392543566747693041884192237293135505528846543283873923276909159960193112432333591031240563526599189765115132769390647584160684329522270584464515906262956638526275935673215020347739079254937609349729957207245694230813921549937172733374913850417189567069293035584303198973997815790583360735205161246299405700867456114838498152160946774600667945156509403740424828959744313361171800345359329248973074667779047695663170058958633554346259862095870450709711354208206549999255353353112852205849930303727923538112973700434273972983670766164999923238740926763597200228809204669931318926590904839993760585578530969049237236904249805072379477353693385620008452444121774619790558713321514116103623519994859290206161278344508520806783971761339941137336694789662325627239176116288062724789043422664669947831596856445530548496005215536535031289045591713845683537568537544794486142435671050866722462380719271269442332310548579105642926172360597999711568803358066437710083329512098742381583950114140164550951679347245660652514096632835289879914012959070133932369774970673026628794008662896379745969119662977755846133658922336842495088278926310435141358138690917073471019003213181855129069116409239119655302126633102909520619076358918568445171521579195443317188114556984518455173093191559723483554352703749823865216951776301497817704155583251175991933335280463821422285374746857304404053503836518618874364142781046403005485062148230478736953506431982113660244182256020677684618284974597787722292912204903443103737553607374626943281397231797285544918288665803805429908778889071943522644440574606500831413689901893727202366652122725826058641657474615569882263092154154206070353064157410947303928966070904199230667550059728432088299623951197059216897793219872385551065697159514789755737804415351732960083347273377163349458904762768389056261198247888397230761869865091996383544848455464809204659723948030954541106636691991018624966744515723054227176834216865599387150061740212358009167870680518847062421369303940991129876671080842978235457656746596680722865380569426868963188941705955080881327131718227573353130114563170374158241988464645238246433272512518659566649319689236857823940961351645805482357017616116667245307316266703905230492274130913166451579640381536669823987439952615462901917747030810873783303897613479177070821057352646337210906196627017875646996875177071712317806566027695053984061846749220375468918672032310984940808653242331499666030945139936982518213137769360173311195956606253586901096430843133844353841002562451866430178300865428522158539066101624976923841192753911583289424945297661073235788622247570930285199812866409805827272193065384912951399426860134566851473255398630536866698137491603823068060800650659522373582691270753533523662071178248872258344495974931497449172387022196220837233234472105982526212303419451809713164620170513640897644995765600488364673224414301903437911748656950137343906970954871805561226507216256186779233789559565368034180229067624735273160981817377773778771178449987842599606503876565311832371486077648272713093704245307100074641500545096908281138079067459824443534777562368052119789422179169054042083005729568989829191008957434443020520761486350013821055244598738441070703476440618489776881779531904666668291476194357772676814799064931672156064635871543616760162264072992704445792052534446033011533060439674918345247319318243851276739873164389684738230834191943523660901779393556030497861235985119175696566171162775398345346895064471555312893434770557724759689460934067598129816282003220132289140812284309753981972825304598583124813534099835984258151260710659990468900210015458882560682065544107146971710627172608291766893519917376990610337503335714101869678713582790644355732501724557004027379602603229102787679397872822949768955912137641062853767987500631148425445582321783416390440114034582320119727735939132101594678389127010380578222377447570637172415584461557332997849576801583392664803020138461634274054295172495188763021263984123630317667200402315769058266880645876462051731316385992008515039217263156349413871465787474348210062044873477691015214760625946841542347918907318238335854076702354499441333010384442551144637008541866518672844036438240885529646905238403457505366510679469046819595927618384367064845790423267256401883863061608762462534841352571320152880496874647544485578584738319443354113586571203128004255367034533452901063591888338674378694651594790150770138676679882549813801797854713929535765136688516375760256327423947548077467500688562358882355597672647398513547385199912733726308809236725536029489639777244673648006503257923809521458711943211659237440030209255847839867446863190515128295068097166149538358816492985481839175749258668958349918653523474933403380096117058358201666341981105347916598093682620465005149295494087056531602881654669829834618733217360281956080552240747396234266882663321683908777817574533025443930918874300944044864222665021513556963142702625115111534755621194200185783277007401206044712939756521420036453870790342093509492937129413866746408826857607824242850873211620091340096158024878690615363664515276492601426999131962143279118324553244921484504396445225445551860638971579524693950317829697995590356054940930317352151742636975066654972589711290781724831193855287952094599690488199730106880967316199687760023472751598282762025535585460482459679312217489844250728287033712739999523218231651303828832599413676897795895945570574797245928059980403780962927118760611559858021017323404546433994369944984378633575191039314643711355463372276509673613154835568535850751615158321043377267959931166493196184994484322825334977993255881304325613457014306773229501205932894642801128064756322436279595654705206644563922919480922878589181687695164446895166301338097602345672955937894686633220714807186665673949561742660002390410667528386997711664519150438271100983030676645362963996845953398036926972016290930856963541957136982511367939154587594362427293427584537582100320029917803188571217632282572025213898736070238904857719687616394262050407762636960734175463704453403126412771913195643051849274015089098735624515607018954699412759831704943492412138338344974824851493177048392042619311146170457549951191086905502566466438514909221561304615179098065063341668528200770955147865694300395622789063483791609657972870020098577708326257118493404486958954181403669989066630011215475786942693711211249789394064137435738571232863491769035824291291180980540560441156811347998510755323965369671564074492119315625025919836941062071680443802536270818204511544168711873181568036160142876162739264046458341227748905695873925465510383696069635796512831123142870581839030338984000261663764398685280042488805235692919486252286227691884455256120054859628153296377802664759187051947959628730473314614124724808801007394723823865201683960793670178921471804489976808046564747958096408446529356450188329623467655243352799355889482983453977148391706540219114116310838747886857561555439982822436039870751990358182485109120303137669335991184739563248206676729323215391943432671781076355487406772466035225352891714965243886466924580264294288756437818381886488089498724225966457186832985137584706445051421491596611617042329568396267939958170007478880186727004435345656962335165154373666638850999158519494504403569596637909228725400702125099665654815373058256852225197330072019027208695243329936636938553507900080397797237739625145981654777443539360240285409825731338397315845871465742542494717449128421223471236324921571960643590453915793073528011970355098735545376364397944039860389372832212606001190262393934997431699726425792595183267903510869984108907098124192265611335751204245556707583128491908727688632862164603083932913277489626715312130641514081251453326464750632975233130665693319312504841086656351303955778204324154543282751155866511216614898524430052619602098662497900901909785897840796739059996523721367858179856922772359081936604156142955309703237951419491727996529507778207021219051621333951344952213291451815911024073318283290351816651449354164694332548275281160393771563697015415438873044009718447958040594939411859357551184830762075109966881813472117180461479893083560636650940061716342710960670437081548021585040804866830762494848264520929080493243345043291145405566925602449092314027603160414662281622099620880749461194496430377246365560938088077282252126770346594474072823246583706014447372700055519272354178091011730804840073691986574911569634223661090005208617812319939159362568514037117921812662981345007478230243622356646299628594850397340771743159120996041858922631290943669562315413113669526440280402778925909588849685031032255786914863519397890128790344858350860987655876804894204427011314825633267840171655854660186489837523839309860445172337955038096480095036604366720990646186849499514496472689489955863860602790954664634728625811833901279329694577919058339895986519392872729814380343529800278944203152121361753196793428326263696077246789295120484022271637038480050985189171372992445665219003663327008250003030998903069184501015687619769359432853413930011540878928005950311519741538681655906799013811150318658294620336134710683418273927715260305801438598080681831846516582336178157339756584321404372720849738266728273291602364094346263084755379055137008680040880975237656535303855658965160586742694798873501922174056655557082993003623191711275181742660306299611538145253340930435490835438398521151446195143604204272623901157767347468462544972556212509464115349947548056452083647329623080230436420363947037211262364216783621745219101541023976812500890787631949720707497023089863401048439798627844648883710628713371821842578390739559498606137253092470496610888120227213047282475182521722955016727426377277487943464518686169654728884662640641264479828501493208254415909204891707184600274824928682040877083001784191205687471766351930172293121517012736849223625613575777388527841837422336487430757863548820545905695817162005999788968905453408553102407501726515086805383791484147343990027753012398372368834449185416091500840839539826738759492175399107625773637200937719027729580121725106441130397161539696460604198846431270731746060294643512069382831717062954202474998884496331587066975785476959369447111635236902701575372667300780313672267442906182167066987575470360607093962844479190490702284109490635668286743906887812863695406975121894729926417394710362102548875228204373738554718969473321156313513664642563516092490285908206654903265197630378731954824487041099361071651676040173274497387431679827349792378600197433367231729860366384614368684609997495128325008442243788387232909116582737175756905727383349511664149720000044946070010618496924349820379799458317478259573450561877971778655605430782034643653993705344121846242224867819235912169068981917665244815925220154337328596675187598781293330919468510281186960317320735767535941802229448177556483633902117663300709234721925547741687055033881203094014501461422220546006457319180079894701671385325704862401435655281113494874515796252253344375283775285555601422934671848164665385093306208302544614264829013148308305363890969872669390404499099211565932752712316542403154083253904527892199847869533054438874404585962650518547916936260232863574145972497722402693312800978316142970277390486347998139747858719506234375697996758744704360333994725259217068819895428902256530186010973069786895988529267158619327433642453481332069785075993537113345645406507886692117273133452624377819950877839764226468548600831799510945586122373263810286104269698981833538635796454674960479506435071032064677151472217484580481558834100391148480851744800219471219666629589171076207410218463704188087408006021024725203023367405256039761893464122717965094827745379805431869495860327278546935627349812073196371765137073098873467002256722871851955642742050473423070235706596831139321758346290933034947410098658140620388415446776477750043637110610120002121624550663249765088671895857996327586614885724878531037063587597025912977324338002720023382414931858491868410325329210860312626813530000587174719427514768991330008634017933313743966822421653771922795969983945182034111759473529996502886966041347151947167928465649747729597304768415323354187122043015581362852267615524019436200718599886311065105547164877377534222654317451199544828833187550775341685205482309849220700976166349927153319161737636130170010511370838642709436870612589590853437152219482292424853376666470366151277445948367489736582573037079009904231357807080684311535529286488171435253599815465335835093845739192863447764973286695272384522815989750790035209237227110345538641353301548257510009570637030342440149070989372079168043800108504649768375697390884432933006768531508127985847994618913207932985241788295750504538769802732476790953629015342770343254929334393825254452555531898687130820775318569933173587592972607832566664323648239006246372866956808918666969671091114756167377478340192895439291816435339241699779730888747636307166966785100171922772553415080422974527027340017225650323070402673103608112497754794377571942507234673855121187346049662377815337115111440439930864740261053703974880815344547838615784507328958695012718776514521562017179407905590819843058670568718049693824572882554166764567003982578029748528413670647499242678004479763798554750640510508842738439415061717675239069613682343764212160181297367691591668819288840030873652413199276333785089845255943734273321125047335425806105807469221217211524856701993668787583873105337509454654977867178808366381011995377240319451477472026773873893999315536826851868900508387580311320144408744066441210491077116993551633245074526890753505151583054630018444639620371045475761323461642453122124924953888173685375187916742111604700600041724397305223441565983158589150098244532898288193291407579829110921648568230184769413344762508436482961600570854847441630257263082459157025035811511451370130812885521322291267691536533746984767941920449818459907771139613291338600943879735584304547783008980719253998128195468369269385645453051124464923022458952855607840960093937433782974123508715673055244266898099315700358835865717148737084577867945950669778771266837557855281664751823636067670029339818252590941136149127377958690306085570210134727392977890681428971851664446229090483797406363767927873030812171482315111071455284939511722527894798032774946073222075259451903533060575091976489199826289417504443851250029718616195307927315485371469704062814372245475968694396437778963370989248462960752457554393341561695166351897438124638365039819785972509399535809095741828001417493147810099682829343204841769057791299634590191884002337706792396578162047258558573237111375537095056709129132768006650472594626945480846206338681037242022245562052836521735584384831485119289546313144644642895948860218955280304614030252394391514911358001203963249908544816545956839368846618084724357219962064349184568328788465701151753254502007285382771542586667876148981446917413744778798968656457160876237091013855591173201984882592113908998409448540370678368531700821212031987578193704858456598308032129741634115260446455978441460509017809229036794510831904998350392795434409230351243136262517092635942400023183463995358585735274854477729487928874133115767949542769064661060483238608064396726733419771186843642461588610897170828389339928737860215174445807182742483216932261710077457830276753994376485110708390405112085446259410392550481279904402339568695969756949053692777166415038106702334555184052599509724105901016826805260768744899186995467576029765827925081088970758661721987921942244742262374466070318292378612177763210902238534835830637461711344635657082776116365154860115049316573927127533623563958277889452516751398367979894919655188736152719472801080000577299207991094261357222924045980530591109827188946894885893624719038226508407455370538747808195935993267945045346901503185430634845271434712390804194566727816098195813423962590526016403436850199634384543365059936292833958019964799458924760693918132964159753507351228130350508847759187773688626229714380535304104854844921949656796183555313518161769128190431213136356554293175131401960850952853435134198640425982506973872663599259240100237739434801488020015365997695544863936582880500157767949944438564460049407589101541088864986621001376507727613860169980188384925425184575125223820375635859561835573022455101806291347670252752506226677261887828183162629565212986781268318800456888105969736629201475671446436751380269594699892538476499941447008926809336296041362291717149161114720055004589544721926666254417833733806956876766075632039277812884433420548672212403632067713108267298649287765320554392660136382104460497742715090843140950260576205956723129503468416953832023384612972024806874844289234774846627756465019032011278524348947756461144175529708149793749918669990646408035280991177644702757005774933028411467014553799626391464207087733837756653970617498357928204242651307618133896705127984839532118570940241497050769534995162792966054547685409492960253090172870005723044315650618678017746395260427323907065549562260313474918855192287180192196522073519482528747834926419382572540170053083116979701622764168920805087123363508272872919442066890780159875718520027022291042689863608298585213427089768718989135205907625479724706250576284646310496881342456495931944571588285722778707915800261484221945843751304381909514150083913651591694962099269367487807714660072218495347569607360126834437450656484845289248433091561954921851517069288164345462715565144782126423222627645842276046769265989857962963998652402520327137286201183991150503292174404267138204159044392767217950248102143549156203387122635286821881265636267369588736232781125136077744321220700634266897303723186008423089166484815908854424341343367885743678251687127551359640961058355384985722389511088534770846874932967262721776333269658697612497499822116727478667901210968183457556354081134405103444206542776913373800248690483090675764988756480938256925061891353471992429172785742783148972628429849398194754730892911259939714125371508129344371058966387520680861560753561445484862781805080075565469272749344755452195588168512563799544992072585123932665993497535595802084217497232146662854824286646545640860788760809910952401224323153248774846436362320683505793768776278169324406966251974247752777187287695663229259259274141085985541875075824571484971054913343560192188851172067936403023452608790303831159717588059530162561596273554628318664018907980793109386287996044185807145263395230884368214725802584627509094107393127071096380204575615668897297277862666922453577620848997983286948555426474359857449090983569844973177558732757315396964858605564673792205626356844092080250109662043543384921167563749679168124320572495379901874650064326425629152828190587271646513414105705976106737557855766949535016753267989169099341794024032015347880627278149514426385724581327838748577128424331270721738997293243920675408646304705656014992071532852437678381366767769047622087508487598306830536435146472804849553207320044090483136387346620366883421652934793381450179371190603252543835130181520621855468833001095562946548492342201141242714379761949622973134526910611651842797271253449928811378849562055781568951483840098214451452263878993894047338131102271974135308095762453661640502221730512965721378385655077180721367138531551336026789071692309368483378508682785683518669169091073430284847742262302287599724617027393201193044774376659499289341805330144190033075184091409278791039497013504344843707858764133724058631403670426602702517712995700134369975676233719083571840219600991073455837944195718320153470005667831065240931570934504757878691987095248260072282571820675183984787425177254942366937907138546384811459057997257725988560278692436114870045746445669792588417781261748476494341147858912449936514294397650928482109584931142083018753793756790446523169624606166804620249705959509022181617260681179751023504877894551416328456071113073627357491443292505452972241880432399153791544510469462421035756207484159506828679219406534924832670645524442615259231684574209134943901019443444333977673565810981079537833329126562252866126390917569099153677609713262107117893875418130884475561364508753823298836791158270726953395758665753146582289014747657064680066674251450280848598431480563713903266318194908701515497841540346545539325186637941763266266071363702307195036913510665553250813854095293211062308208058091385221413772236841967336582580427155483776408929167290015790792053183222979483644442553522584789849213214547972218275774281350185008324966747665541043555074305598250104576749007529109796977603530659679584798846219957313426505874030444891628497419758368294749744766771574181445741342303015366881224315133943715685423636368014780682079067521033258272501117058889535634000947796673006112679795311958218584988698139789448259925849901970657041874485251431082868045126715410821787935217190458301693042649678045884490121646013624556593121614859420483209311926182324300185489296375675519129982477406822559112902413339792134501173798272809943185286540275532315338157941954198498311919645746420508683060213388912377287999039682923935884632972523214874873488426294524165471849268723344311622829356304861363475041406320998614915837318205090835122649082968578351271577100677071277192786426122964488282146819544797535047235887249571568700494690634919626887437106461726763314968915828370134106655141745797271443352065605776233185942172564463390233828343611108404296453520413264722816999142777778005909004088599888181330467831107977813289293325373416845306735569710613916130897300215154797102609755039602589752471893507355777921231925395807668958410467066040510132578978428670241152159167631728985764621569445029126347693908752321157644903221305743491894323331820098955086649353878888572348324626223355876380972771245226752341831052461509610385361295153030768832310764977636780748423627441208706949806156478547979257582615600234219989839526239001867367867385915454981913615325342245425008333998841633908347634749644517196857039660721266813033980254237531145096295074139358526501408682294388775404687333758974584324441983254179127502847229448659901574663553751666490544851795120415447565973932330872923366219756735225678060050970187502565730346505510304533591801073035052680563882480577763629503683594462500276900106306620576596460688464242604092309606899450369056899373269600872350465231347866147300045919661068323337195806230440156949887902343903686921999191864771020262796656091597871805488508005246275039649605805088147414831382186479208189404766096121523337361667977681543131002265013632437436111932304870976426228236810367048484218549208382812523953734999935470387648858595177362038091669755480951193567407646681527322944580348428202458717082403591272256200142877911705810018657189415907236654342057692633756508295825793413254583259357650410381634987948716417817855872366285819387255344971731579446851484585406150737638274039817114622755347938697760588712684292665410189021214194940720142200533894672689411570791584678531092844752804513817813077487591123744912910101374824087416123224327005549336320938030756862698245888102224728296590867224173958542134691025229356594917010400938360893456010560336900971702498680516289114636333966896303933686648999279044395510272334678762714724358924066481828067445921207307210734241563447483394789039376555928633400780742287521156308876318011058432821912414994414544901809367930518787253497518831707840906705563536290687574842559141973555217522107115356066783954517858420894564148760719964684718311345921072811988720697366090357820868135964087029207010987454502354534635005608049529325148999636290862819875686417598462543632372232319610295110496480128134720361993244671052683682620975492438419422798419620137671968926622067311688764520336298032836431792988585423551596102932089470729906409284570543932309845592434187455985038188175423267745869552255235057214308923076873336363042577457311841320237330827801095729912834983039206485522927403014328889640807552460976899673407605837036011903316029679063930236671831309322485461180708862010579690972592507616069334887046680115329274768396637399604209764455433506592605152252444964014954021290372697894544028826134930431425918667350058381238311504042054400119883446942890813810342522913746232271211848585525113470539754223858493418616381144781972575817397487065018060041622900656563229550695130283900573440173781177868573852281797387924936136263063578056894041225051262237905782272011929848310386835856141959712812575887861035731252006617783587397876274896933228705716129635565670364906191100166897099891912406803652850202182008668028145199666918098804536239464879522147636157919455090780500539736385705908095853148298078030477630979617985846209874450277171383426921175608922409088399420813626855772048406957254597425934370269572552900152407669290546461211927113270838613014806428012199958038400027333058286208178699953783901905570379599367763384373610705949968780967243992791369014660376461476294957460955045082517866793318386643654603792015879161601747427972105492264432805861257967458020093888914751214076516705137106075562737255183687231326022975192869044148966025802574529797378800656929461747147362226594790284735632259455803741101126368769882156434609179877359368349491854529932898439932126569124218019728951331780506712653688919646403654831139148759182197166336808006111444947690223436225701880384611774322775651582181413207617356575098387999499257579535215052897495960240238572743395072622107929729155492603599767537493862153567181969058179395925897530194338822818762873547037493701634721451046207532488713594605221172788155021294185513152260089450882236719829469948484212468060694815878705124714007879885370432068333089271910781706851854331250034828137272290889447161432775579725904366980662383862826522820148855924788666889207656503886144728566953240358153610932949816974258316078217956208206112784326602235208388288030053414949940554407192298715670981266584492436566843846317323695901679877482962158057102559229345059871671869847905347036052247700529964555179472600302989959905162266391773349341540068785082246594614724902619379299121817059694956830389228197513797674920138083935863502914114259530909467564105258629336853928435131174764473820331818028821639023956782856639198369277673421765100922505238915597346318540944316771552557891669000026472622724476007430015297687465385888812083876885317835667289832901592844096856076219186077938407851821880286166536180335613063554352506304746693164785429955776109527027984899239638524962679768707780336452808845757746913195594198450986468632692240026316542362035610954512462477431264510153125975061138620942690097592861137895618340446736518935570907727761903025716093642809088700488865959364605475750359177627131060246646262613404302370811330411893855431365209241775172222235883648235027751548997031815803961647753632695491967568733008655296923350302977720714889508630380918672860445651836688090182043142605334325244168822020644065642651402034514716536515982934782511414762313426731005167662730364524133146121950236343889108917048456790273108576299118433375944960434720601995901072111333614267856392010674607683434336724993000945952996268749290003064077390640914758998041141058504276565155210917000703772581517191630645532096702079860652352807310981342908801443583161581246675906290187005406195698751706035007554408080816934125827117565074303141609383722925414436658597613994634438904876859378782042268284553576292423623971909739304492805807130286375352681339420507120749946277732064885664710867612197882118016377429221455736929486671244465645965749814669786289735158997297964189904531629803732774389577017374860208455532043446140542407945891025640766016737921194405807614357659358480193315953286325405056574514109567210264473670326102086903386316981566030043781650948715148980931863997669684718301492804024011491232770551603155273071463372357158729695855359099396404610184213775722192193291438271636037120282110831917995715579637462562964484061716373180181945103457595646312985395678110488233736830531757033169210512901889751947367601043144461117131881585926727208723226184026138659740411753736091418083433032570769971002313722354446727233017341013518428280062361650392169701403897290216412887635743541188007292199139818669893427809772754524571810837589873749514728922358013054306563624040745769803163659772762626316888536445619674566387358606709019796479464371635571143408594364307500174666711483225267062950044071673707793526024802012216359119336424994457240476219338142774257150635102558065600677303382004190033002605813550964742317228769669478884553723870964109182225413302391451322473587780289969674544545591913242179997354224929313887655974163237618996165448528502591748006341292180201773496458605007142420383961463372615717203192406864121318634633768440558945024812512181451941781014893015106638320820420710682412626303804826039987672935301713348608275477490733145049254590651618250828608927224475850699454801903772407443461111987384071637287963491888446076352383740261947073655356995098132832772582046832652556118842642301849209245183733276848940620352794551151973649918906828346471568580983438177413969194459687425548823351590594739689999573084987169512188921720558222891961790151367842091904225358406693399665596265361166674749066299685698466095522445222139218740462082560371700120582063378339794837536407854478854569821845019834671160294924294447114842102076903326752091101362855917968151228982049809879843296721848582311686104468461169256464781825888563257020260105416581214004149533884504424953467003252314332359730273654168463657297301963071073786474616575220892444594936784922598280846648653187279151716460773735700476716611110507206377553805752356694684614101496964079508064041965753889549312628309544058204359689291662537456550088081973235197512255773209387893018175587525128121194596185722854664533603224933760813773367573469545764441131412367177535196592989680999218055555109385303078424787893488904388278926812424217473791874771835485023808569055879599666858228418877039335557817050401279648079157109197545108349048512133331569307852912079312770020234850996579306960479533913578294124553285555261856980236317102378093307411200256610934200785703622102547158501569711047456389571720982210617655376861652414953085817527703716905392027498949771134857504099182894139683908310202756350738779750915959488626035467102361376809950783108545076251976956463543995262212518364605820536002593677815595149632108987757599156231855563776187961596753061701719298864179197505546333483059715592278596273767539494778917440404089636738049313253141707777505938902185933877539382274731599792100100244597891001421462936607461649998278905119707459504193184282869003233209092457858046642607627952728662893646369259815637906226291085660358285432047752189461037387355129725496275657779204877082227698492663579690987823840975611661141257821675992498926678729515316505420980642288364255224447260605026762161108269618940230765725308605570455201908914481590075671400799352968868696618774729017426676729033305096919201491948078055261657649684143733596626192493094393051107326054517417272856740214863088756376211074073750466126782500775997625391117903725422180027991345180294229690372841209321221868442426000843285089589162431260037958452629955889478569416300170229786276828990797854806220551656853798912308377373985762434444284260467312070464905714984273747221797488832829081728713665259733858880825902006264706831176768861472812759141478235461903296731257116464021722072083457240682631960000164019360191056565386840606209251572975449272314289892834599115169480930683375560409376824544063731465503654995290738310997205306412792429531857730947030462415986570777966579707530764396886026498543461045661203602711854568061866885879361709807430012004398322858775818649243761141638571207316783888014523519182212453989469695792228474399088392885176795514859889148046524876302226956406156265092793655362533124190865139380995741858774508645387931460949172760591108864206569438062132403790607417010452344181780310043572757929773882285111051520562317402084566533755762653013515610296183893052618706647328265699012264273478388451842399467575927141757859861655891264732044078556766935611429698938245693720123983507290344749593273657558233800095277050730138296803274416550310217352738730156542003447870590767996705618121628811802731677051740711616158165950327597992511385047598106797281628481762999982368263143521388016599170488679087958026562910440457416673383590966901398193460055374094241007086250620052511596213915544278827931348139366832016176925721032902659328042190945258250688529901957317219415444707125538877168101154625263983190400930334634141135085184691980242156789412378448453843356063998473493747819494833051160345575256726515769654135166113295971604018713997192382177208656135586290911267284594788416092356683930105832343389468670033604320056746067147902086183233673266623376042065964393920802570802278066015757532430702158409501456069543472551053239510978334737031442297433856118037658892986584699123597683281114405861862582724518928182498955248629930945877347222198768291791696603065302589598126940158367629900666509593912322436410502315472273628429193285962242637248944444066536590713912905453609891859239585259648230532726408673005461171719454306304260556674418133415936232383107120581587088235584285037161020448683287407745313970011204446328865959627063878929165393657984482496101797317135070103452573322573006685065453095909516061479086904209583190796527837558843690012436093890102819703300482037462168903771388519944761665482150293076907601057188588877775293194199253907081740939996518240623317705490237829490455016168717644906372731062888493186950487654137912436139710199241029483572089313199576715740192799941394309131276019303458679895810612147813871786886728963672822969047204030710764575814144003643182774741398499833950602142344983980537062701370096220309841218101586933968430610682131014848620425219802091427690134401681702092325173848442840126968084920429263478872271703022245453521745425821128457991017845735244440032698285263587595631202472819917238465909686116302941061540525549337870550605252684817043259990864006299414244364564681361814818670975809799459561190725617645210878065540588084826296393502370657807540606150545035929142041264797682002865343919844956153254973282464077653524561914761462481158652862372954360123934060106876632893354361768870838503359201242305252962869898235501394911857035237486430094560247535206059117643053328658588363760381776492548672978038330382230988059681414464687761424862116074204227358675286101950529745676763666751439189015639134086652784369839745971553956868527285905981356461210729521345496852748494293577167081499235345599309493154806857359830226316450527322368765991453753074664471508068712193477976517020181375119728203045801075167213006456273353887554728063832553216422871632775415279979188593791872477441554426772688292189330239203974144855439485402494571060671488928955056431357528508834259430064923760963864332007690288904470931942086793721355247753448116379408591400303468216356433827113272824737136118283322003008749076225816725271249878632790916115817053586847794045188477410034427391035235471494315640445974546557410183549202017850779999627209466589895508349216983875358425529207866161060208151185832342151684683993165058783697941641638708573968213976633276821369599068464767944814901044645896301285366939587775134604081086675221778249205502917707396351061277016076615172441733436084074530145258755732025067557847674626868330058479590559340143117281487204583985006894351093538266394617418778689811921461310906939971712015666031914119365191630571433581720000737122559650749489999804636660548203810166247194188120539466387669771424028737326757749566089089114129310970642222370396263254044846206508003043275471135494055786845334704210538621862766383342648922490434224433707488015673425332920970309176322584791450893030718866881574483307951539309494717961433701663320779020040686235362695376450587566210512485147482579311090336763805073421024588282833758132670922869322180887746604974821578116235715528605311682074429378293654164854099416454424852975292504626550812501513786846497994335420746668642115613725060636828676136326850676656271838861258048310615030705761885018094006797109545797642693667595494122800939885815099095477740711271979854640333690438176132175829375023925908644878580826384527178344999387908451459367453558319952473187800859963633134623587228978351538353407486534774218008882751137603498426428969616195299985045134283092004836554233157393707983207473681550888294816650693740085524242835671983236985211575594021417444178418081226500072470866603842332178954564211539073556757044768323922572082542412966528383660957313858695644427996023678307908421918284756125038498261351426561172956074373559902314482872363694435412182649957467606561476712931899466883202099110473469469370066256571323368727473977027866318652317020371746655949203315282619658310137007675519264625596930473327764756900054129446722769361288903254775777047637191538164880484900909674342023993976506268468496938402487314083746151605488071216182202129808954823538732612616978986227922867986702762520511419035892091545059379577334217969263182084655961393553155874414836871211719861313341781355308391747483771465944751083867249727060888376103246298375869568179552184814352133961997407394558385944797264647115025776553708975577654164046206120012597817158596481239412651772393898435219160362551651338916580840813120528047874348804889583429337725047075283477249715418687714348785150067090678313456219458556942211852160325960351339731881943153236256255663066476417627073034026630935228653238963631672705112790829419582351321801598419943120432432731670664080439143354024623957363797815312252115536795196409350683244338676203212003703308199943147010358586762859849835255111637466861255487567970441869527913288085970971700080963032351096752539284635552909353444737418650915178810432740160022584312439338341775465283815489582171949779792036928982039932438827619705211670863603115053813319646714590237657861204594320772408879991149336178522060310102540196140626458241879309133397641712216112038788846657736681294467642163959992338739084169489630503517782496056922890643632903841176725629104667233769603056804909562021305153762709354411952680007673090253078092072608926855013007042814257892810023371787619273576223468914250877506491661631416613408058147178173192665873862327065183338673284250264054624517327762223156448842246778111828004655206678102320240329724534887855183958649520382924080002505388513589248468586433683172826989821867838103405691897171375512313028770210389433677118514998718676434211459330030197835184069645465126635689688406460956825780229133327488854705100723345569421734895244115847690133227585987776481272505297748791804435877987183246017283600271678087624215958778451637264766349131954062264939027944394216755114510198924371837112357352809359635429615899364425463237192100349659915481766564866658204271743019854711572938308408128654333074303294270273282659699333965814161403362211618411551716468907297361040738965834612888706299567038606105228606606790662922181109016375651076530102553706942393788666930778201813486767368082266806451103256004342316398657092837316154249320346751548593438075034831522411948918554005459854475324186418689563801227403486785456442504837787630679510531368437467046524269354842429622551908141439076816681537954188330216826586912647401484723348787203364971158556801548596633834452749710975815335061041564701856976407706771790855509145490760568926456649714534435086629858729797241235122814503155272675145634546700847466459483107805901336808942055763251634612262544321327792573560637531308776320360799843361376020200549049553750128541090340034142711300478981123198873369685997873568941751154349881501640188305253104754097563314728076517901863090218392271269049370323830276835463462308160499119137573439468405076336685688733032112927515921399693235074113944525179737604589746221331214288377631252342405655334453684990334823310167521442927586841068137915499587001020870603516502848676835493591152616999084536619573763147725177262192069354626936137644883745371584534819413534550826875889864897223670803112508592610675471331926476812984440591067208487420267688704612040159149485407125914633385200835385426238885021420948671350349921856980995763805461472600160516307449808089519080428405117851974624338584187012875619862040865918727281822515836419069566365623064522027446308497456857517643047813239827930458859151709903996487189504743509054097388154568671643489299853251898883727530922596039634029317701355298815811355060359744129502099675942147736852758062372570741478160960916492783808701961555964599903228730430594268310042945057529603346471940482969751062134615158804090310867515472194147333524307883386658630111370315340207743194625844556609434786343852857963538633474163191429497017003870395892070223287213266608763990660872820730425443190173721727241520472664951054564175175554490981044004953473204677750830717994364222608237816467084974601410305908687442848318289705324467181755843816787203421263115309421101226922593085011203990808705880526142396339244719786157819272821001046867288776202051516105674330559924127998593848386779946962527906832947099130888007705205704945484094832525977504157794922417001425891352698674504302569393574527027811026030247937282808633861317108379982626273643006276988015085902059311470225897121307747575058351563343004796708956858208076026566091289965244812829369416704525474051050321223129666857395360649030224228910528774536103003249044614091083103817824653065207180117926062281241042988320220116951587915836205233806771485406814492836885244435018646799724910407800572763043132393978676077361658008777116459797832555187608592982631687964325679322595366335531147656694642109422969340903120363845516872447925477098258935612283947417103871896597055873799819863571011454431447472065811437155521123211589767827973011653717983515588364133806478351483853941977337325035829755486585681610822857714411032187230823979936029052361990792768225765507102603130998135315485120895602596811954343412098300942840540595445847937664235688326403347861312461794620274653909270647117578864064952455533948756727394207325125160278454514273146209333470642695492212392731273153510117285382296415990567211029505031524335756696039921665946238554404478264289042894456557530547728490405715639175026600509168125163250717395417092894886682414405246659531917805299708265472643120786079839861791053954155548094223483312037074577601863340132450960151050437096503935457764098508271475533760516250838675086890357623529966184540957407873922589146064178595013361602416541837235921777083880947998446448799526990161141052545851222237262138528587971893418413970975197913697847533912036617619510258681829977635267449453694021802316310850595696201023532582021528737895957018900021943864773288876394881854500646056183285267999908521946053460375771625053489230997221501969886935025046789890808718147917956411873895429835233133074376859060411543090508103807101753924838330172967068799868711373890324930611012978635497273774139165681507540832444546822002027958324595875051211485361759267371261187881807461985210841015888445354472447110776387433434733062980432024560540061521673300684471601876214808096052196795141077171834434666637881455340960808645042053527537436637259390553970416718275871360899145977435768435520867265795365078352832512653734107003217657294055862271707694262928328535024420237576185955918208321212650960534089763127719765895559037258348726444611771827661612402789524351708438370788271582914390569903036583203487800333890606742611298170178267651513351103906773524894347376892251130452180905205921977227126001580188646997308409191130144430664851911912900427499568688336218716617744150993204796347192545317748223400908595982714022505277765295611725230601568834534666385775443903524814160717921069629790843886661428159772805752236379425997774902339898697523951071809136079144181243444608730219015152624529538279832968226926462236224130567553747070156598285251302847331748754035261560552981477460019209289489572335603081031492299871836428065252298526225126820469997970875375643241767396370532554828061813394299720695853928174232749883551166786884199070379909780443209188106808816208753332588065238147539775073956867767221557421984582098310379317476815099475169700818970355524972974470798545331152706752442690522036884358113804084576992183690560661242474323554860126493539702064146230238961933828979703565738841380837485074598447012948671140928006535046356062125698856740906852512239578173491733657226471175377172335988218723224156698925549721445936950890018623121552287680990628693623386328932375364090183041007543242251815983284024602423204201987125581768629631073762709151851875884396372531148668983005948006354530950392681318351664459340742913987245701444478324143316199954202097077233563360702239526207133266466346792900571972865106424799784566114830449025006228529833148594243510057674941499433858872242374257452544518048556577381728507915299317880792857607037181602489176523233863448073443847939063030779508600688763302107779672944194777373622972309782118935125386222762072986202527075579772511686254167744132825465876878694044663277134418966354274121770932835122647374948318258803542811479626488591143448340739745256441982186325478147998799775106300752144512772765822586404790229414804063264503948047493653540834192281220566550605127311328448627847159958411512078778957385064884905166520053703579099284165931747912150943856990416775275703406881214563273118686833404051818978027234576890368308094879165159074028639499926403092979288362668942196957297002155173136879062368754054520583921959894551594456195768214744008564280360137212702571146558174755724353843965132714657713794003798486396745366877393680940922901692233073890274493713603184959692278847495854134369823029629405282099658078197947822028829634802503546220669562565583928965642420478465287212398959670703020990521231314769265530933376172334158849645639749352608096106990681697067725643277537470069235816820228541283800647037978099169900451810197456693499692377585882624641753270025800783075302653543342255353470150839977841388416591732754527817422676045388579073730728410415987420229258046763567288388583735875899219997331759060156849504434378233616300598713633814568665916062659767544512674399659019430940447051788660785964753651274148647565494655442082166929943029291556866769352464126881080335002223942288381869401230507029037519075117854288731317975670249323646836276524081831209427360960604599892375177000787127356618356901122827722243944312636633792320018016079793560894116704726225468099728266983176690574997394062556224946139000294000914103277529208299063335375317447826767263910651110391529412456037916393872049365424707426208412759352011832162238800466302311087360309902246852001636757002713164969377987193554138689805271443378154221786906299739251609949498848397296603609878339776765293249706330572579351003913947503305814407516283440655207038979485454674667809354015515853852064409736188046806940168049962122860518501518410885531587008683956572746394877651487940624744118277310541141817955166607020612569667780631718589840961293399384810019248598860286626144785536134407431202357563703622351932257037431567652152146829631941864142447711766816970335531450991664753694418300457983572346697582376596885958348739960985570953404090210270618796439431408541254556760964389711082271695648264459733158511871444213749858524949102110366243885999080811398098367186798381390720237119667558667158299393927733683201143287609885768787912040411572453810276461518820243711691642470057160065104356699228020438022493040896715309211256394422410515487339335185048570193361141175336461174751321132391850983736999202313692517585361869826937782843737437320693552240673690274769508259585291949932531700279189893952876201854346072918191851858214234422810349325597996448283820290649798664989863381963013169331165372914193338599941153483057521052244079573534344269117123965800715458704318530779269250159542220715819457074657057358426022973529420392396971976695493140164026206841066396640221260540064013114565520505032220773739463782093244022559842105351673162377390614292447309120323487324691061718641490360489596723884180840298962857186278723787361168703162806478100779593844092119373490692773367834525470618122214579535096199624071298338033689232280857215697752613693506126186450844058392539742261380609872242425912721220630087194214548723057516241378795455567134136665442155295797235271680226018856702766022588024078707950113360844634194988323597691135020305657674939566772514436666932375138863102190502430985728485993650095443412350886269410643821360851600880156616528396597759617677381177907220196149351990345410828027268352783578081284519996317923534989053251222426559514029501014057016421959089374104299938470553140105245716089136021930691662014496844979132403941367568306835142311786963714194958877513379267300763251692902709553383037739989387566407931273252921369786205397011233229828101069739703724735470465410880671253535018729399312178868783060065276258864862788278145870611673029697551151270547917958138931887497414692929480138042516600022425641526703753412465115656856322875693435938755173119729604137608694382062254084826555445465056598257917632523840347096246791389985156102118240671918898061732366660593003334634673146702277187641871927020572834227064356480219902352497620785070898309470139489673074479070746835905795787614302207254911309656678957515452375990940641648445910068178276396463610452094908138006350168471102230914753406051305189055779010032832838399453772872151336244165601858998216922269019847787220771004815166477588887907240918005587741079251882468763055553942648066854297325896976771013451053715883254945047730420610562529441429276484066398736340108872539686473333166876877419950497783166644737886454164700307486980268643813100333359003453172289048386171623158426736653324339792169883578111671055128096906103329328488243250102810046539278394986116197092136612552330054965628077007822800186090301903038091504492679319641221000701757867270813699684480181149587661834512761112755298331693581189317427904843887279152160335076666746820645513712672732223399597373616820289344663751883354767783327539536217708032019169755690846912203291539018432823438202719367491124356025717984059623538790434048935648969003279428616968003959340864108209820326522286334824154303682948795854987783346492024445461657052119936106171915791865501445981857426695098861839670264759238402437920936030009600298616597689165840148789856972245571335593040259793895269398508865453871856122390726529548022366561895608398709125985109008849546247854252917120971114406087676560428085617031080373033069926174398313670266931495412830130361171025230869427645926011270104818324122036928761771515777813945120304328418560618163844406016992862324190365905734596677740563172353367569606136203339244004678743208509189299677258983735545633240124119609371222102697976999533044005499526415935317188722740817728761196323972660038447040990973339422342683216601723014696396065529094431097055702594546992649965892883451488907640529798106321477622722297108588833819469894089799530008986669233794677622217797605392248948293042438929674676065976016541831541476488155401404439769934731458378740927106760678271596300799407970891022742294852225259581364690277550421722417800630718526713814720809927071171664955383832924824711747428593426555907347219217127325019064812594754946110070047432256388662459693407786812306979283371599848891173199762924747710779340570115729436968962759112259374431397660567286250869419825105967414062827212896463293479535032488042181724198743501884082050667644958808341625579711701760205810819658215157844370929827600268687873086059256881491377900304746332108889044501276467982274370621000672129232925650536452766480152269916750849171839631268481209115140776072428630535012359123027254483250696522312383046426543538130054692228516776478292013617569242352745267499715715321888344981474394299150358603848563553304994989700683381465991441907341848407383726648604360963995770343226156860683026755451377391496430360489228338003413707537163024689320789378886758387064683624941395194104600322903213701884763278011452466938726929157609331338264037156105371249745058791547023319239894169060655148207180433199843868002855544251200520787448618766145626637639766258723278182085145783970532631456874402407275707233328528766424511138691893680599277083605242108254689711025513947276762057907334110144063137697677283523169369758121669615727605755853713612562761009668317691308512935212477763673719111140574186679379275487681351976135027567922142571098709190389216502937411034549842433800709274130693123854954497685321587773922950105492899116217287604296635626352517092731075880648690503505850708912685969714708466005412340054198922263779705492805929063500166950971679801342963716530318494848317836080891958840291268811618463261221300030710522091117877314942493958228879185501428674930164750189389916518100393840932615586599583339117877614595375032736487485671754488209487261427642908509654747180362766016211837369876767467762431693559000852208206287439752246273259029186803155639539116744746602398151933122897361628855987503118521940390475048106756343285084078851457174755804955886749963349094352032685543853819140537844269622544044665712908562980824699659092643901286970076444577348868166112762441786308697630834122701801018559393403163528830029962319352294121370235173894006335814320393155233840522370236835776472902152670394822986818958427986041129680845917278541619180033589555346183790755932281213849033907871010222272086535303090021154669883669927266696611427215342664046288726437786703956749383938403746077425987378906705876461464775647937852056940531184975352854669736995916216696330152135518612148005124696299263902397467458433175262313406295279554089192436767921896536481742018948972649714170134378356760508156927987933460725098658933074087477330633575938471769781294410929880145201005049539406903571468021246481985825672501905233636607254962917483810259314157469540415001135811519905761784303687411027268373459300281090797824852872658281346635947690318189225461391838052708774501678598579514038305786802818871236009902724257146793870401201759142198767560543413718062038080596914445342257142963564199459766886616779787272989385054922476062734728587011809314326872560816629376566680923701884937444414500893359314100269616748537223418833495547785724706366048936408369173185214274294572363328432886178327026853348812148657571368288407765875825879507707039612270107573875833476064105673302767766872780797399783970696830624577417609727530856364956548130202564544130413822909330040337728519310481800878911600958763567658412631357559506058571549271881430516018460858553177432228836691419006303950461521740363959525188275564614687908101859776288328745077813891305422820926933405641122090039474317766106235086253903213725318784877607224171210160689192005272227340573920272423067195433340026647644801396077101217929119350961835162347544869559329223315022899769140112202670679458637333521064263525438091889178585322520628150853857421158520668647470924164941543035282718271402374575338984273928072940840933418036957563732070787428890956912547631928827706443442281601471017547232875379311890034267808530350297013772843950348683671360587589256407248464308470930127245690408118080162817540045501674247244775853093513915461662082744612843071827690428480559470063766624497489644095157255926413988208000000018970725395943469933875488692341543332148050244089613148171449624063756491135435122525486123049316503737912453830366455902219115492777810541130162358283753406372681904573129715743110698296753703525335376279261396664891474027507778782442174718517876454848025753020549149296852889674669122370398474553693085403254616867571578993353078241012568673173516558244092428080912193879920139301604846284761531701668418394921318107914130040527957219237778076289656780261632046616169884603412390139757664145827222656888825580699542132798281683333190385477818676667903559066948995237352586867029804801806860420876952046738161445552264401299859335749195952258608887421143166774565062261092393668686780220609419679392604373445218167064902911806759373689704344622649746466814719736039266029732415957241088484617936986756278079533106537094346814819269713964359322505516152425040571395066934839152656076397385089749253197865180689157429030820645399545968069559686653516296953055822925880700051785708523874374773976294440698825379543723183810583449113197569757491289745877909440079046256806245313877747513656126045248724546514745380136379846532937158291274300329652733398899005360089073082281845502077706442994125940988296990268599581869887167555652642838990589949740856957648397187149860342207207559774584297061642136057341860395583222683492338285951153504014592653869206767444377536773088181188065516397396070334866371984309245013630722432564743872211557380221197274108120151604563087243217808602384386085727415326052795315241793162184053667921055946911285019231507425985734272575488613283632915574817649147915971932342850495917229400232842915529937098788321864507520696444683035180091652476221802819733046568909677377738127644248087075418241997940748159241995869410629809632805202728828323781666132571239996964099365177864134896514402672786317355849157657157438623926305506557986769142656093674091827318957366354280393698967391538385141030389335722940566400900662843522415265127574408254787403586201538214065627770578464629161236599530056288489156212382864003157782213416716981219497174006643578572726973888568050836100615655703674438295206189624509766721135970696430545140305201623057768947573533560122908990114416971776305659004277994756044194677998367038578082264453178729996647816594140716015703210522804625377060967629516026015968538883995137300252314361413206759164086001565290749473056319768988344350313124597754450118334913507021394951552285262821046335328180248782338275249804139492842341353056197671768179192360270358117197778362222833911760890927847135009350330500398668212395342985013625741412629858337544801480319783988391784571678938755785581600540805154828148757305754575834230445414761945289563030941762050570907854259097472256792731653958944810232497334893160285262063118648873641373370106237303562866587946836991245604746886994045468379968955528257453126331634079150521901062841411286155821137672146061760406727268044333958514428596335478695873076849264887121696254831570090768182051009801975978438494694397822769647889078980357805943019037423644131382061168578718109001162032967117775990919255653839413168647032777167519154500431902130372641642528796058244286378649388186028178190613775516508294175006151590713411294580407037166789641581783007750954141498461833965125403944934416306959123524606041160124259536945232467106709271175190033147451655909504732781841795932990302276084725210353891132105593307104156726371163349097579515260805053374438512633002927075514376746931103683016461254031768266073015202329756925350885431631038558628981368639969349592473625781172554882683098444995102260885518989999806149671366245536087366684264084480174428154508916327478541852906012159366033526451934990123468918357710580607516868713404063338252613450337139878502175980752505096891483526635359895008077289078950789633712924683100472455389106834378318765875299415413173041757779708061769567661407173121092666259206190920988000104847471326052939496807512608965029737028710441869333999585732553077077791522567383755928121288467058208165976651120467404367238075469740347372278872374623840153040686460807547208870595439571248926758049082997109342036925599252051220654201200567272041097339925192962047433167337268957079223695028786033242643631855019144767546187992602183573912550094225344126789801196548026843908203165452888170711429087535327233832965466176384955945586195772562504423005680097340908609597127840012930485878593561502031089658635116658944245890637362334712921708100273538471566008934210147043621844834866869648467541418077292054712799881876665043438045225743845352652511912650019237731122501259087797430521185886664331650086746386773198995652595470883295098411358147900981752938208621483862338657910824728675897397817129895667758773111059684949558885380575146980503858227507166886451858487464025908328277584313119626216314676272262756600387781403368141400773592068176939869927051193591941815356430600708755937950077849436477999452439623912542488412024685604490110621738828338495270172577762148965989802595561136851070049708423884419939560047029957526739715675407277590815310199630179159180339124436148965826029906749105307517756295330007700254684167267571492645853175672150192461083225278795287616122051589484189484592217400819886898647686832163817859001055323548666514849506389947267950704552801458579047981147682988961034387116473092355452934622423719495428588227932666401109882584771151184089325066344267134963759947358348646101765956006813763985205596157900266698664641295526683071747182576370113303412015188808554461375160197118967241875595651466034849213859617185955585783105247686330142725200507422695266992438359766682678529316025622275881660485634805020741776604984424113945443375370671318962753550645659816998955199923565026023974427224748876954247057163088204194102341421176865628957514315166245525582109572040195602242794510812279411959826276654162738872473346718454609136767242098668616839340779781115397018107591749791396035208361142484649241813598237774106073953364129847367361106134704149198507035017599231681335873090693348891023601101288374464089659953659410821322769922365996991570764574476260780939849407758233138859735397768030215625929634775602891112096335532927854441345375112955649845435479242424089065051713497787762204745423823232522503947077108129191262859587259612293460227931225822665347646439664690152630444411792761865882451309450257922188508582702311729260364968368294412823559818572291283674651057852370781368815638763344613030957086116268004843048136706058994970949645044862274430913235594841853293147868126754407449633664140549107990327836717719661975459838114298882382261899908113636550600100920273605268678315494167646058346701905630296462296273501579067034909421882067158057806943602234093148268557591859391406637623397306573699493670151176374417094251586120530472993616589655714488608491655681079789170482717318851980875262936829785913847175421071541396428658816507321965923658201263972664462111682218199468318332133419729190079741720646146717701636739599713319627607500787886563906543706844580501296418656866039725562396691532817580237915021667955931859285357864363857764409409226914833761832315970327436849954906830879560879670263794180862677518202627038566221591185510115807262043695425240999901512918637315779746995861995122747591987885164038902704848964148647275775819499202848542537266950691744397177824861422357277684642321439971399337089565904567473200679651495214568362627021225956225982347111039859362125367449339924701210346358464371049771046240854744136179782877805947555997610245525349298451463276688084303886499725751988589956026820276710168096756385147599968445096738756809665295400654086388785784891620427478717923210487326602252742371569173545757608102946496367313621295210745060306742007479710026408461325825250035221756388555236451050878948104818940547619213826211708053959923847119194373401673417103872075089749030989489126393755225054689314685577580568095930897776295023416267245394214204670448527200497451729676345616101097280528294387429843424984805018055087403652825601346918501142458299017707532047998039584602206185339283694478845802299795571209162007443649801569449727412553698888730353706401062259381610804155743620618688730455995287687899866475927154298483476001010238078566414666549956513989682693298950673011624859441054265225943287267908033483687117106078852713161967471967586608937656268657277312346332134099790481726161841463628074882541870295837726511606855120415708542549612852778584297171797476985272206604296198139304942392632161924599097264732746009572900242849801776489484751431065715083257911126815649755144972924169446286791275997172466438980617537694769560399964572903436120131531251976652659097380999578968289579906096739537034897947261131222837032561577026044647202604493948486446245516345639167323192895021289203127019387557502336522805484353090102590554791434075086552834944032790175522218434036490955688062714630710961690637751163453299193662889211927971320907101944348170881762079774147304195782644643081371788072701634981127195422392313790155633195409247980545896164732368975821048173044619359439243106793082736246784698924630434299345477592734148943064936543538178254217547619782534095131919064097979522073495378894470819863688229554751245114751709843290452664840190882498475696418021895151521401504111520841528625395028524796534915173311342721588831119041976748984344225478590983067703476220960326245907342881400239607973337809708831531202353982376150459506744151142883818561381615810855472617248844790636964466578764673296576887755053075019748564907823055894355917284796959283831689411931253180702140498415827325659862788081138188008308448801648406171818710944827602322536432325373901490693792660376030771650090298330062293290061468930409208027954213227790627436022966548012814697373542049373083360331428116303250267085248622273755527390193305468612324714101430929242879909646658575484512019739321462469400951336603108120365727945289381118419571150309758120988209470654359020502152239999371717125012800615451163717871631198588311773308138456960977473398239776959633509660870998433928489859779307623874463169605019919629646375024206669468972023206529191403060369873307853283778634436752875774712519123445908154719776821412540100693432748779790826724395306322853238715712836053127927970672726119783057363627281190715797815127809512007347854861175729265411552428714348908654734532357491038571515706972666522887550489192268497258969844354013787621085294751765724538205467075411890054422795325282396655771480021757226409151027394125987593268450346324410577307734269338031917985461291681423588420333492657232192832926553407428136027605724981913078939048348499272376336515683134577868740266737202325859401405884719772202700201634135633317729881283961259730582887629078358642760918849342862568536876734869375421642664580150056600177632650002752978868511254341096129174379768015275290016209844638898632088544148602354836631945521402558423245168091396126358881228452192719553603331133618220845776095384903509668150766927778402977351159084344756015519624536697060256457586453798573208521670832817781503891576109708049623120379036922070465574389430471351967612928355578060011281871487823157837498529213725514720026415226394764355111428411131778209360881885377484083775379343006401856875694534980844374451394285006125401715302887307464806650434024251905417169819622907207377675376617563487383708731471254625187173345898716286467806103385905128713625643615027551927421365329545176876690497160316537199922641612689377851618807507099853191954984258617031809431808460088423305954075537138175902814989048683744491220790039662421747365199853136247956321093954464317349155743437013932373066652957491407174222654478387631750822268972430832309704918166139931981038128673727868505732647910135569245957090924186476198963367265647993424195399951439694837685502786863767112128068398315976877373133083516359159343985415539943299009378374858797726346536757192465348440164988865824244312977886266129812073754089571437071696975485885947910280800867810225112235854356493151247479887186591804659939082682123763456873738303183949569353424791797594936648887056748320686578714337994466104574611549059402349909768194244574658822009735723659017699769539706861783994229906221728460415094285309162998148196779330969548609925360699737715209428667700955116062704382926466283846404470553019571611673261156232161816071948710550289880362736707186822902047248302677065259124652644600068463044596339839384896218751319908944188408691175210250016110934751636156165934343235488832831405465646341623911291176549892581831514309598955546521556346899433971611627647996558558168267564477419728893339268528038969036892473398121266428092805330608776228499010144857787872264943983751546354365445214544416116573819982802313139493108528528717533408616013811761799849172337142060522335405134381421578855716480092882565836797554223228987981692732465677588339732802057809421506650218709947750885600102109311815870969395482612811373456759542929595143089389178148313157611662902823277811356121523611340292332131216939814536526526610689616735114257407837799976850150416381819129022985164461864876225849094903636211705359297401412704144687412484786099604907688580359397529335561181217160223642133079744172143847561220720333164783473549931845154335269460100019176351038167102815016445091009582890294963425055277639533947176237712844386673740466922694343460938110577728214299048158684444023866088002194422982139848536658887569397451177932161183593248353852563063269227226302335613330425890939856921824754984097400129367787492719905933015425559015461122727562919298440075206205843897285442470179809308547523928520802147665706211565630284463082117161770953552897163673391668068261753741743395801103055363619469808246376553164123711584921679810324769978222749716186457562319680415852106882520643047163766352078689402647134723782938110959800353836535024459883335166856349629498663511032600319505443047900422313853613433467038695852492706839841069527890692640094844644870261903016447268926590468556912054873805093157086658406462839634713671216642646195611631358986575076604695960905954583874164200301232351797176295315394351373106044601670751353399620938249461536342887876074547518941357470445394715168014553396347897567786014239070808775963674200970698378859858701426024741226345499872931233069811074176254884140013050193103441911977134415323413426501812698808758419544666047533923730053659313116274035884553336793390373220760757561667810960475567802454912566957279800179507326589757586793462030305417361215431649004669927685626787850192553975911857020206581220420400161239670195086810207160611475935045623874054849510111936446782507098791168243752769761942438506940607054301015661411009852116731279537732912330703141042398679148320540707865705464436301654908665059485965630335524494497509083703691493092975772204669421975224985596097832515602120019349132471921232145209417421583615395732801641677992968886145796960160942364161040498456890923667537618032002906879411835542075121241319248831679011099903774731279287199955703282677778368587201147222330548631344369476498941823732620880502791429276782641920043801937073759243255706613240897231251862387085223956235098910675157773876717724850880547845782810535593450756092184135578489709012808791201097580305089070167774156621997416161329374110426778536902722982358081623193933657356613155649928577346619397299821439349603126145716357027433130414300929714547904457977682845368096969080266942564148326009331020053846238880758856743422335766725359291654979415485708497090200647348571626395685909596700666604527711426715347970936390280327776257234180554190816535548037809180233446254088219616072771670557064069376514192508406575975253367250409248266612564745466807779504036095377913807781395116314556462655465341313793511868082393979074219935728798634248250301980321157131476452912406954603983859689198820358973964911328480761377964208230620366551159940028596066687225640170002212708848494972836920805949712576787715040558367530838188496099021661846240640055144411079116071818257648540896828885059932010199439331302978969019474545256221925761872538394324957080092609228513427077558083352393385615895005573161411870858359270786300747920341309583620355918265028352637054557459307675845727606457447388044801827227904146532833636445000730134143406699809603940436622704831640216755546412686645119932919609496895936863750182961297833438979741994896679580372680528141656808061565790481744538636717382293860604373808774202297609730958886272626081288923532544396062822735035317622866674879520807952480636742849113039793847029316901899478515148420507676703061344987357874891090826145454135989830277602385846141287134120780530935011153520239054794311710726280226423703792411021879741261870344041966211113427092054181293075340089674193068083631350035368371012654947335888625750125329516253086669022844056954455733224057225868929214087196459927401568002960136833173466579750767851946037475518516053022740497471136000377512180968088767025976433398770079576265841116952506899784121007468298663467992997875819802584323632352009341516365812238914069874330572184028826795787974148261091664593417623611691642454664760999629642448658603800195034627934730329284190805384400835488596827149022134414752347668390720526339999502489646949291340246823634795083687797002188247271613071722463399968028581501634193978407644587654965782193561078982009749412984739424853810777670835154784003452521796501447931188991056385972789153013757684850202976243280274261208179980222962267276558179157570381283473159252662781306615611252538613981669911163366773307727808812643023827918280118706387104158378204758015300664188682689389325171933693553742094924363003201638442615369710883027749809793440587889298513638101950707670044947024142003765072069644550406876481325730346288519057788565519196441108535677654148934354227418024574720948619340652812101896604983801558475777465392573238995937993553048538741639943172742405827507426968174772908756073219850595309572563005353222761761072266959456906948912839850181397336430992261956001895984166096660651354210605853650749846066995057479743795728845103751945973205502927219355859627571978561954551450956463455842574456727419273700557699598771945456913878851815410358371868791214226430077237140694241922731616658350675752470881855973158239895185526054305728767012537870987463547646909405316045554140006664856581143161097171871883655999013394085028428227673812069310747834164526028460337294916914272382789838309464061122813466197284466894433602726934644583777580928245239883034801811505374672879814334740318764058644797844425498079785171234452491445732351081153332790957652192137741602462415131582072609214615603697831776712291333410942575284813106146208949556564740152798564128908485010708716256081887930629324510601823867546036089772498941493817722039444015809582743455907092700314206724926828745711360747779676827283555007495263127112857549688890706687486455767604501285189968626408313951897424924166793025056494257925976539322569004563818875460300118738856603712206149062128631424085064214108974774759273418399953183023194507755366004114930046693760467837409124663989632231546947618040988541096082710866836252731381336472982282329504720084341888180347418965595650108015741203503970635311911925656055142930457651025521290001502305227616849552886821569033969972037125386471395969276346660218134907909330117044393273952754469992329912427741529622880800306012372421176177251640102235162017818226991433042829195035673384938325871540058521965725024080902847424104976366141230150482919965734236919642136842066198286575122182607719620701648772144530170045711120483374296277480207292595624563104674520976870140831958530882622992407199508628376238681443790693182072818124500079120610883669472031521649811426953012279646158681967899317901738093325510626365961496546262791866732861780980716266544372353140742245228345331039034554017883747781664969582279288150914201697498525833047267946587556936364294322676178475806245412654414219115458015712204224360105936473190780578699407116840587423404688229167259359656143841104991172039846637679647807601904674826557834213845714353590823137851631901445980641291468671415293453073217588616628349275930914789477880554378647192715253397148479445115580212426351961777135463516306141025371264603550055631057999197593966487644360923480018069694498774277642749599437433639754452637885113722461950362077206230136503795172221187920372704540548165379846419919778521050538716264528439151065239840566676948012727278672739839527266393426396544294507626772314258397785975753518834949288485584641036348134846368151969406602982020974773127378297968832170738960724690382852715367755383907236532665812621773780340622444894727101472642171269860411682889038560793273800725038550220234665866149264425797510470993803386712673692089071442177470186932385652626844413827305317761910659644512070805105928790863927712810204292699933057556862461044182085111195823512268344162920417838967626786675327144187517902635446770133669272709560100992594970359706023071956215823388053611248451559700973473387831237620455453911446084559224457711602563992163051375333301680867610871931054494993988103871040303003476946535124552361545206272844239258027761206024888043479834025271315971176514346597054267720447954590890356480565773203755942488712760595792373115894140720711500667490378088482320995710462054629749885677121156540095607792763930484960347097323506867786420581595755845581357334469709459133539110594644028072789436357914739586313553762362162090402940249267279065785410163250282351892238089119954398997169838980160891963028317925470493858509861189554430300484072776487546492912583125805953780390843621103764419700518084110779061913781291570246875835038811771631191992420466667033508059368339557386179655691254481167797812784084878168113660202925558053652858692880859905363076886863512093909594321153619371545346489614860971497338622367686102440413280550347568253695312967186323505809603307341717859188794278153784249549979090114626793654147436191992836554430318290862994754679829970538967933128042861763615702368025208303153105683580764152149331264854921471653030208446581316441905335506743663655850815059434885577849995135719872407152332771228626854431542289991763301365483175863333865725156360033211476422515319835358712374478263303130136449062049632209274184537550895840513046051521621222197527265248208496746705014458388194471772677502577128261366959934042015955869222303987403243770777310559022830549263769688214498202548650274971650703814051835609101152530947425185996849162840550823578249596785144089274033471470778960966032762201515106505611793493257747377296355863501645921743207481371482101858896463460598583255783660421907049255796436950527415489279695204563799862330124380056610787832719955488456481341460720633412947124592093733496159376865445556058312718880110414915194053563121098592890871966253808167841948627083715264028700474314913214842799803677299755593469942616981157943598269541451327529073878907308622508068119148436128661464339908658997576441341988334741298920159546195021747162684274458256676756771604018167127699317490528559188904042619763328259720135706089844676469136612672384938187348070289593225690208816087830094143827705398383193342461391462736461124478661981914819473509945489898450144407517594281824492155718493461933660338239240962779678573858553785597591408173056547808711917311737666207636071557047986786220168923512804443592259467663952364327968375802220098999682839389412641560910169211839205950690574320889387394419185787713731542279861791903983592777709420896390282620840877115001343572889181728990852969677240707232991950132297646161404288680078338786164708417266235605433388416855247987921772685851131807469873809622822561249411336188186957501821596721917996666806052300358449469225192871767742189499579084735890925173595556513631393937192986743287612922296677688840026825737237821698322054836336150538506179405766876493970149060130121033154893197713724521455714117015992446601480202137089123770612984297183568745386928807417728327872955442765171374502064182402261321940063256161354794256949549211658605507992400633297172708974033353241903689479288816550397784969369266204280302270255740526679676619880100698632573798163269866111246973353187791075646325949982975980591321485834222177363224304044368685512929057410984638335461943005138018295583931384866858843687764129306248423600300914667988815710476785505219334640149854072454771075638104109478440310946559081282278851431616343972511503534846831476853316240973933788462086941738260803253779493064272785139964744155194823987603097067714757040261221395341108512728620995006705715790809460283464113402266644768532212321042917594476385486229426190352350201325164352176373246170515303163616265998719759661997253582212455500156573252808224750413241827104386546635104851097586187548596530184126983912277028293589533420094233362168776201721185792662250963429898135784787910738270073528286978257611643445602904320682756483967942441102067380585408515936307217692427672794769188270254557691067876503665083611269093060328053908270525250521648665014077298641773159562443846207559844397625802586457547113712581503401161650352378556692197013723085566540655021034929982064775678572031041915650872578172922307063767235680185373707560984995905075331107671320133037935684369954467243482419057909185062535618964067419901915820925472869049169355358947996470986782070043884646330180099633619562333921642292509809721696750143432099126179414816250566839345408789405416787988102598621434319592541595557840383181975805196784679478597550360259828980433564794679774328596062782750620259921343131975470672809012724911619358662869553128797093888627970137163366854123637326188505864312133043449853583313982030281872609336842886123503261179538936428073591970356391488015288931289219094994721439872990625866039175236302921985242444542603090475623184737854916561427538519578479549810992855643858934293224724280871699911788710129542818993229452527608549123744080963224012078384133325262349583713901147805849585733330227260256895871100236435429162091409755526750091458401310493341297861563985264061911118738744359263703548350976310666500307882706671068056858085339999700028201851396450674170910063848196630772579478528065732195441590646936582101737021455668068755999391245583961238026257547386335091387252983587106227361321854325707835189693234942778320336902331559568070267064467026073637445302505430250063599130736270261703558227559547541410132721596409781873084866339512307782918299730580555572072569771669254928056767652280459511167578290440313673232971392762114409616917416879120459011919767769653396112340459019304541552717460177450653114114967167692103468752173982141116072575501020294366426574915061633920677271403448289765068851618700974124765387253682224080438730473962444270359477112736095250486072907558122952138681755716452191308943508641812171681078057562213020475694239822100055580873022800315437944567224907122392502076483764329021184126781088865862504926092710792303536152738758297688136375341830757158844805771585990501151987640230107062948690637074217976518229019196114891685660907665609566361576862489337541229676263025263688445802659552674575621901246740193170564721699042979613652834599048938725864572920052497580510821508914604473903252421203580590392016998327775722947508425035146272287607864205797860947908933493281938032828019600967228160244464232493265643013861482933621412221180798128310141506040224654865871630033380048969265546906201471652223085094393157287588617684358828458924462439274634099232013981160710342283777442463920124838605449565199860718458702947067820503843380761914067619116544065586608795667115722940998616579527618533778239336427469544319504978731870623802704330183317693843495131176672610040526553444873970528903500285251281084772341574896264998037711801497067084756468497696047700434017186788326539327022486851770987751152159017202701382578177743100561241663360371062336274991881342030185647500102399016804541223087246644054553733212558151776110223158714566532489008239671240521202264508011038961949440090745730014083506495174957786740854293113402053202591635336025895013413298235327002870856281551124195250741259512766219274087796971527769415404101566593312669869948989443991347684338122505494066841963531453556601177068822523102940461747708675813135018362545559498515066126348400663923368238348225736626772380980363047938913344929960727569520836124683423887067780762836430474199576465847360364133536905532172723389464806530336363824435179084672790138297753917571501286761491748887755024343821055702444971650816576199741952195477531876728297183089134293687579686111622183932146004684991329456732436283398634693367316895201029673322056214389853940273428496416066249290775967012662911482100329682127121459774872294746999747416159677563359333583547297613868906925341589038985884978895018003954649251396865775371990100551609649546478694377712202083606368681565469318458740035532052395939640497050063489284260298228531633010463826008829388393016248447025196516445687582397199493372929400456793624185756319934534768362366203034324195207075804401361843115056781763326536891895161155019924348303277987243515578624999204543351294331960396748529188392287380077252789234200482715925258135323151579642223035460287378889157690495685956704199388457392843588396371238898849772520591934464544514768157504692597325123712584581061336991879171557430437551024479203924178674511988915822636412704608382520205896537333254818706074426174025819034811728217081770279079843903801537085945046851286231109635897933255216824283756619571440733577089672365167043101791367296528361816345212185296132408655788206147153131763215931129785502715389533397252600157349747866357694227988026205601271345733433826017116395434222228442926795975692067086336585792893710780208443390855202655464852638955693540982317229621580376741067074065250095397632610420229190143241051151559809857293337572992957017664436407194107599999206590242150786129603757790274551169196425601884153541195459159762503715237652894259803589578462171549769174286059556071842569725510610039900714849857850464671825002107382248843558136372385560126426650091845203251727684566939316103078689359562957001809478205204540100995840256228374398505539099110925456110588689571889531272475062024092768572965237201582778316002929467899141777034590603461924880598399649536457086103195714421315713263933137041693884647418159210330771527403492757613806178221320380545411099659639133341781113493487742318138010007442062376805472645608951235715921836714898383283895025898228685112116323687064221747140431412128786336396981706586294487226303054546534530518353013631637495898635224717478149982045104367640758944198318641344940560412686448999446368878170810085612082365610526841591192688269923500885846828071039353238169737477731635804488537071262880834803750753309643466993208430315585389549715845431460102720933423323729594097035631368987073837077497858686347382427581861383238580391572204291297053033080303955358188882058172414341525356170063718445681737972693576075431744983753038217985677290145927701557101899277105411950803213838072949627234834550351249716848174208763021283795304909796411850767530373137687565591582195991228930999554369317971281633009793796572434208181270009269936213894277667838284622536963273465178497182482902580731342663253548035722552202241184322087110311694312402364358318632901265370632726983222707764251055405172673744444393123016841656097866527752384759694228254529982032897088936310432133281307409333533751640143725948971390832205205550602432896089130662017288609065774443478604641141185506465352838692441812376076198857037507244484861867479630456391791607094152195264245252553052091562710941743413446753652808218273459377478082445583517076697092772204438390093432569820722373363849123107438588312343015914023084735718793502567970393467728198020823552666016925646426235903675523357425781222325704342502808744487988497734117582885015176844767096678269668784874302697790914315468244813751412389505478846134946487287504222745698643652467973779069933706047671450684127690507167094259695084423495168189607942382880299758446105575262535973656834672823453687687498896332927604940576500017743755537737102335444997645214739714568093747954858170397461774777592085050883833333655957418061793863774408075021622043124977010198339767679045138151185920632195465303948399769059957549295520438720489521699584457437536802501193370879497316065556503899973317288601997785462936458572061731752458960545982599046338514387808764578350914240310404187573722775974643485822898034190215172499848389284225945339452873370907931144120981501934288750665448115917167907129905648205724018310527727486598343307429514633961290124911686881667252339665321901688748583824495333200319009835981327435746810470342023981728638455693689014073747664929994034885151074984965545017574229780683421862635668409514944398829726703168235945334085948225256571387545843636151595262608958411639396792417859172177623844974241808544394583729478092068679167417037727855513906067302127034672724023271103737751371795818687716970666255146909011225479115824567052028911212508238353474063295133537246314249048198202413031580118503161790686968521563372178091815832926941545566306077539839725807387969032360592509141610446286870511350568562469548856952927847113191561828651977696748167072017136475701494733787202986834713331216731849563433930275754417471524247551118662403723079450703465365574592994340332525731792904445810761264617680118823569448281709223518063356112305654337107659474323433992729446201350197722112208348072249071135830476857487346283846937800684003296089822941216465299642249285395369602490758186079802025105812637068270762692180422070051148189914302701778986234481228956060164389055612165249969512251253628800907379419667786827799736903345278328836011868255187286036213682248565482345165284992148127889967552102742126085279295382522006686467732229354602990724681123590208744942298761846184733767903234734565854847843003603146427496267556196818946528525738405609379143404493954165851978741736869300381223334397183974984141405346437658520166485383942492989831991822669770466242492616484871226484778379134958102483529232987191159405876351669242654844941155837472774876987768265462677241937788765921560232075881036075242061081123835359093740937308603936049286845969419895113085057740894393970463046120393945805926222976453461301202556540862794897239915457163875024615611468424945096242158453983323755000428189988567232783117388430425559237024075670800667427959286588483257797233199764777488449342194966030048746951697876465193520405760344853638357631231407088661306867425565986850156757607531572116156379739733050080091686231394879797185140316685968184386141522054137308139478317302824064732408580781939751464437241509877390878992749283389261373948348312857141129434227842589274908279144134928343126294637211206858816891186995696835135487428963723085278879664753222897406334625556764133615149035373872602622531441548249344078879294278249047417770748342467804057744981355140812950055725974011435889482157978467054407579067920331873612618572938652458459057752090673589966417767072102148612401214735813779184148625027337918082318659219265443342856686954577144933483190052699592848674402304278518321116453628838363657634088176743459915980342382192965725370805256135896571286991050287019062976579971689066817173948255430651749479585272903902745954825745988018593716737323119870979714158121939265399942571814303383803077069337077130119679756103179036661720388746516256872889094941574558727188797145601204431455639645380681413294182124671402238752761440012280215326227631893684118693599725030842223466830282781792908392715790549862177158436426121585004509172175027833208252084203493920179938554649256020876752285767976787692287606419895952202864238833865725896948375199276149574631585923380625208189409845566357313694833012084644093371979351254317494036187788226735563907582141528251407427035425330527626933328973168206876628651358633053368495626860242607376199378035500681549296053241341151801420885022909368218797663207818348473075328420999510179880521372008087545035155008411108896562230000746014442758037385250560891764576821108684239345393298887598992973089649852345899760213086462867500535322658607135505968066454181436951289588465080001679157923026423924654461530695977799818254668321281608583990882355549769944858217856183896906900110219520919356117022383437560115707826258143107919283796109037731778805489405248369880790271323486319836680531743928302653603187841146843338539204984343359910505915270089854798940357916157484957562148183758355717110727456642314364441798974352100040611784278013695371151035820663544305980815625052498597884063958980086049439542867477118644873748671511494663321671868763836265578697934222063033684872269026698873063396474445139412174856770227894643713928669625533568377305012521415561432680893682533631934749995504344678291317874918008088252946249235783991028309007444045381885496985739289518478121519747779789677556547740714942589956107511871622149899517411512809496237433519355026473878274988444930747519489355332398351723778139560373191084093403000821320157553946623699142795341311926123617223300336549907478456416405572209005751182605309780765442190585212970079244117981499336213540014964518557637750595842342012667223109644502573193431146372071192677316975270613813896490671491313245747734077437051491565786065515338524451517179280459516423613138816516305674384849422743070976086254884717558732257072313520455992921854021882913928754670894631324140154131426053447804396447219120485824880427745432786863234594971805858648627940541643915345415043623417269456938987371642279483793455787949165091688246900711227712281859619133358066082549529773692139806587757657229785068876296100155514902152509033924073438897769206881413873891309537194907070617069861652019160115644509508048783885709669110326778179226771957825828798155048463182606301844431309154532723647614040395353647314229174129990987798550260342408812781035643334066582244759709159477176264931893714158717335679990313008989137617939139188356841531502440854184812590359693378578214309641817387288225509905015957779616630046577789619455266136986419369524681329164669679223867330435559113636260739296804910603162196475388511148251312060524631759063623582680832951658793756501379654891474469217613616316822541088231326794735252719148137702771070345944123171401498415678405004802333249107873010821133059970259769011086565778741922510594689209653869240109387204121410701605612659998972069862682428220313304571155606723787531324538836725290232301980896442335989695062629438608967431963884255706188076561589873434365829390559684235909808012672362343986002343354523100240438371366319489828088178324153215870831698006197457660361113626520107797767102834326993841444050867763807928815677637265993973605971725927229624207981028836237117331971659365023171047108757472962033712474014352197347201655261812582324259386448382903346485926220238520035580737480637451908926692005530704203286018199052252599121207659641704411297898201237035724484857625255885167293442812517191909222664839496117563767991849604790399440298593309340621979738012008940096963338069304419841508579611146548135066248593829552841714314958540382232930826635044494967884535982434653845239470537655251811341215810978066879715553159161872934979520762332572979408075135304305283384072589980252815759668021989411799783516476147131552373391486055398389965204511113657775621158604915755542595247169510832413540302043227015034740378297403407782999938784970977639215496446569314083384085686134384821165699200307693252998987598147622537196240838187794380043398377572284787622076663979639046786235142707512318019350157586260083036903091089963562445773686012374623652646517907473209194158961396651708851686987323517347956952731554651971542264989178774428479500219180646369841458340295707787203168780503734200803267048117590575527580475354569532541141856333837954994981312842613122081477279565507984920711765663843612411485502340829534379801527908781959361837104725361712920354084347854555867006744355410369504731950888128789140655686884643418847075981563435337140027867998865657693221434812281632815930781739538953897335177653364860599944906150795281420507526874353499061900739653322356354548085085497846724922901616123194184108640954554642814888973099840911955923655183232254706594772486736179803512030296901014674255752321577190222806146981967016769672247653609234292928838038218481314332209208934327049075070520951352298254086588150926822288285157363272963311495773000749952217269831075384919759922066223598862097915153414565944994259218455290867959952381376113806903617666600246054557613209762408091328171535735307663640672851244164479746554984205227765207965456142065796027138068828565854218465952418956653551235574566133870748392779738629748903477804203959509777522247407077981988817251815149673339908474302146566465137110812979088533286420097273180804714116470097644818682185389178451161171064231917677598186475466887050887517683646678525784626702190830184100074545802673747892428345911858457127757167711740718312329124256683137010411263354529762578165439280205172368708849157622960913079222928741949439848703945389319098803181252239989386641252342586163624769899449690255256668295482876077969850644206418072752160574683515728383213435640248098110984615983239867560564996969050794733233037418183910884195753428161128761892103336891368207924610739796480027599591463693235919370685675963692390612121666241832373259930852777826102226347202975545983409376401726967952128610345976783967129916615792969400402525639417297498806211023029387726080891707798111075263840392524287560974084459196985446891794805940770193822198534344298290750009551974641469015170334297845443085415940605002570928143242359761984271308184551247703470431892116850556831670178229353479455682100180292334940272283023202311446651967925027386049159439135573379174382399630349460733451140978966675734947115096075175335802526186994272037702189362345626313427823070200545095512312727094121275231695475168235156100351718602026875906061316110137324552159070867641082906357513651082524685020756329426842379916808645746995921612770015669190597907072277608347521446115615406623027240066068248665571972505894741156057511249169611513512795279786076465124564070114686096626349368078126126480878539962831148207283744195205070197897329195933274282642813114732154108110688775340290588243178443852559543286598023904272226419801370004375775940513543690635864810374128808816780548751798095967023334832085057135151713192335078949529185364049610682754303227821640164699167686229105024135674585309711467294977875524261983464241161743211985127613374051253411123642537210056734028793563133379277486481006659438369771057711740048582606800460128370453953017889971682617082087267171398202778323148478783089237855299719187078517170702632071246875151453676875482125879273113397255266595754763425367103716105844888285189681948052514709580309730635177359872936490926496311489895891358894203160881901829868282961020620322118744493099109715819108019918133632724826572463928748084608031164789256563497846651985456141263035317677489894042346286459786273857064958424869937066168201697570807671781429752071542436730507396059774926405963202998083615643557367271270402544562552047090599233507745184485519993688052065496623441398314858826154782054022208908375584609649335571611743873727561100400689555313570672196863037842432840703474297483555542837160678341422332857349264596010034040026670113148282188047593436692804697091605878861085022200633219799700126455448300724028093474566664556974155084800653162105681946650902716506048864137668725509853155220750925468596981520963944445792198778103113356677923915827952415157610067829806121235976882040184705442862288031927041657908942467675471289193303837426393720797783954132249710021016163286115009901878935319990352788222110535732125426227433950505163332852802640318019276183519209629537813210797667429021912423824118493788670919158005285108705559652069949508583188737298038094976548996512134120554800869012255826694881198189054779072534828877801125577152032843127631501422399016286084928217894948826817657256139847730356120964545054994453278321967086704182053314817035079927995073880826598019636971696211024756499854862977396588231720823249251832695596131385232934788169347138734255347736729026948140376082523736224048814205551728000996862492122233192761193571168698458412537240381923938624338073991092465059829269431314846815278275465580958478441788562360030510689020473715557112980702133828518365205891932503202493663071518941957357495805188659419922276061720168875291926320719751282612814223714026904850978804359441890061999525819484988484472154785812702273370870865619913176084150508211802321636238435397989891538197440030086189732622571657458223849736807060965685878080306696786702771864069127905326623161055648135208350897682542140334548957323182480970069810312171473998494608767592386394388591429967637442812595920215959645593699586864370672599897978908400691975295464387448929507630206997700796252907897622583047247046299885993795819518849404629450297536299382082794877946619774459366289838897515759705004389814795084625726551975154808709688664525233981324918068083659619574504803031602255481461668622629177723885896901796367332482977413624516394955635276346348786822462987342977938652517474533591907409708933728182518804432981793055858496557335412604365793964339828476300397996979858543478699310632846327086999972782681615504108561638424004213042679517145806880072568201135365468421937419016561818882614770442190438858380485948442629650909182140189161946034907271247766488446780446274844545716078884266235443388685393359570803378692651136619326576029713605236457397034601164031374112422927283597414422596414519261112726320379595881327023645079533106756782137135307013268685677259441797679168759307993306357162685793447223988720451042354876470159827252031417919971888910753242262367243851978838951334811692228022483183259037410211367653917605265803687492328720559251052990621736786166680515308592033904186492658073756755733413704227732012025427560128014554904654457619693823583527806259305388966868456888764130039148168557994787045262043833367975957471400204505700199927981806868404516521431969095106306561261974442997654698121355046760807608013210766354641423450397712123464817750019964157673185290555837454643780140310208562067903911576100946068081790310583360107855173925325829446417442330556284330802822138785434043763025265666675809662860563730541743477176488701870474813748904477230242340324523237995298456725691918609407318017895453487475078756237733000597200194885149286230325699673544391884145720323751474736226048173505195884226112428244260860825516732234606062532890869882225112470420648113404709562867177632476116809259562474850661054366706249881080072560821415574519255381393222336251606941427292098393432709909546516260379814887279952470721484095516214001870193952287450888478654727604443975084899539093618793608296203106881913683514713283410815400442653821615430835593661796047626257919356900147129383754632166449077220509445125512222262724913977684985855088301376504588670403465106627985703829309797678877098604323085303801373837988812604378724467224028947590280334728283260824845871863941805799108666028679011046500484467846824925255930180531496817679165978864612596795550948679771665426119589980253931455423773344512150571785257882845232488408997632208956983062089765304868143722135840526587956589363356167465987419970518734820845449718504015775471304609176627023338759812168945835654111532262607905154257425021991253024562445479807638059698243568326119945844907418112013402592624855470276181921477243836574853055643955968582536600962994016866247384677990691545787716231007248050337190143919086524277758186142216037756201755436452587735823985021647210431710026036265614570100402826517081506970078550601285023269386776268684155713350674465842715777127952139365107573644300166605171011041797640945594796869429186547089697881595460073712552283687288296569220875992615660344565362983199759942390948602617366358537941463603362851774506182615259422826972137665722018675538435935494092602507317859139705162464296430256482648798394889251893407500124487630768483939975065203710646029103564223539651119583977674924463696600448760567632357805258400706988552685917888298286668546959224254124068025843626488947494632036776944782689100112112878469864400570462302160456162896071248682337202450511432195555782278843342977541513827586668473340414124090834634669559816999840939440151517458041576224773469518823801929944233031826786505636173018572636989457053341570790998827756536720640249901469286088807747226734740493824140557820066694972274784498383998755849423764841079804402093543216782684210946717024268709741552763389418188051763430897628431995376524467709598030396894635640485551156247002315673631871372253974403269586944312966309076406596613475390633729953485003840951180409436213251868964303257650628577879691621139425543791666541614179169125292063212293336418725958334632262471096398346987837433756141865914798883488973522519216959989193499537353378922289386475088914099734227286397304417062333860422942643196631819070396597243489512196326500875567134827142121959736058157714154991376314402564248182223643220988423784670069951877138259855463224282261506885992169543683061144546659179768159254713085465667216245953455019301789915364475032083670052093492611475315801359577829805365036922375623179609684870886529944492778621367398726065694539426902578063665019173736573817136171623735329400160780751801451068940751065766958407738591503669223167996533169776883933511764889872162048751949581831393452852650551911662859620143739178953050513575297911486367606724795444137162372178558133161083517614961208389250557874779554364207905205408006218092574298290035440298820112050632727826921935445043910026153340087778159690336693717273311335892301063740560997318767457949698871291257106854441276812144868724924265784599668020203097988135636738643028149474864869377770460581632473215641276349041772879570691328542996567714656305285472027010827440740956524964038458102622148974285159782753841062137509391047338163184267528756827630397729913304265838872988755934380630257085985485337790741806212163822176660696789874127632827054192559948938640682904253942140961455095768165570343667648759756241658170023949649232712274093420887907705552975887225460742865747607241067894359531714092885267783382372209704174648656392412670894891948316579642573475134439265902480130513963582931274993651971144733774071247026192525180269085373104251284091871443113575141753673315877965314757124659658089474736921366434449854141283974012352755101975018073782261517763994989520580851954771690235173490814370937587097196230190414589765167479570567493425424667252948128907554894406231364293840177549441582547766846162811850789479417161327643231843907043954818787538332067228831159121453915319218364739804002680844978570949139535137868952088435695940068875836808012016574217911747329051942285029668346605740864139759176430318035922390063069426756419517621388105643689821190756645162653577817897721289747838535222806444070324777161173976472712445926900795159275915933780266446510026209619204451673436563509677530019001147441034556071079728768668322476428100283954196612550877469371291805207593715869983250030654529416839614635439439396292916751914474737800333074308740492511591783997930563534448317905043886202521965221373818031213870231323474511324819602847280403694704887793418532962869052816908058906115614988946130477724429928465248564592117449801069968202080634805841929934627204403314991588694302788329607727046221782968048452910942559664346133098307020176822949613380764554024589168441809817245612790327334601386191573935102734167475050006659095033260348824847646349966544551658270794821405821021650946630089200822541335722956212750576488809195698577195880081128701361321634068218586610002714478830674594295238819111332950336059910322031749387244700945176249922979641758162670466516414970704582706470708144713799561201875903544944743656572064551188080174715357827087119673581129307294055242070606422873061136542190069959586748274023812798688519916309794342186047028207987188924664671737627673168958166134043092064421824307756255368541619183517110238202981526938003267872291395382692357598012640812513387152506667885233547688252362466096235847476720332325640305964921131352912255839159361704015327352835216398047276659192311505784975673639021465143803605829278157468103945675484672630626217765377493312124681695633092058614244418447577375017038008724962859224957670983396730759030565443500544910850710685697828589343543016319156902836711211529867397871907016846703941831591707294296116679172410043939074694899341970411856096792208051162910904879337193934719458665215296624543628791278390877223369548409190502116433187134477611612425385964042531830552946081620682471241846297360966435883958392669844376223840137962121574656926583011460723269629795436027139817396995770240657051401267950204395486689100102136185702265934530916124839562953862880773514359869730023976269716908809035238371503251125709047187539568407593224107860182037687446927578206487968715525150338285085127934312536704521836813223566387319322640995008425272076694421797742723609773111818482427966843650237869395636100691680726896187949984113252077882380110378365351493643190737465286721154982409209959782247374738308194033960717491079130662902759618199385275172336801881299166986497127075510158867203930531791594511189164604779486173989466045236298019756074056509112638601040629652995879374703448153376025454013050451645564509724617507328037362516772363406028372322938882966652828665830053877191845890222873352650426549379727679210357694163417515042158402772252436406430985929940152240828236617767226361396407377619625102872273647414360450888143491782570422972824110710296851594667525396775682179224901921748865607014455942160265760591947731488462526958860609903927855606590212275030058214263175908351133228864292051837527333008616521004309666797295313333461589598190438944939258759015884837193009768172368496661493155507593898688479888942922282012800493286531525425012712207844622145907229658525625950394142246783949640651009450298907908261455170349419491603858512857174881820473227673150199839873099729353875927858720481748615625637880060618125370250912944135709957077031449588985100300991727832609855710428992639795526565925996024378050525559123933769646375160871799782481684142978216070496157001784465421291510141465933611209411077150398105704004422107890814032168909809779466731521887945317350455005479075097329262588355249821969309033323854309947153824095308605438791338471399911450575039033170836952455135105568680426308435650276240003707135568978606390393048207707326024971632896421047778899811274716987177338714270148233174649617052457522539761717682797746360927262091228341240445887232113461908442647216125269811875155326961618066849551474336707412180931277212141218995963647583725569752477877029882553757311716054691379589602004437010121378956883071616756510968779368225059259289769562244752882955605003351877674756856104305923234859269039095983828926821164964593908453800382042279910890672196324692401420097129387277888869787122282824188416874834876348002734776737898523210114723083260506838031330876171093633757952318529170450546926386870457359703692592002198645661547239959679271673486963497381169903045502675509680040048668457998291935187189887070148188095950399139043118172548721227365570937365018333203258013051862859354276566231147271558151590120609245432359857343997204009095426719102195164619027467612467434048161384686446552827198943265465194864888214117354293644135090766135223619628281193225567477713128720355557696802850729750678077897428083666019407096922298473404365023991512642850742827315601533384855139650752790228231191001863300466009014335738953219438927146169594700568504772386335169095886136980218319063354670488350143046306752577374041688650408065238146561473691244515696149403465216507805910209049211249205799633568084548640637401278022791845784975995163487743965417224756231592145936454565307703367245199202943367877406109950293479136953430930714628835998203018991521074755225953207750283264244420344207764936072270943732729488004128532469626291999125520391649349601648797313507795022022929579748427744492447349090012673068304096607501204884623513676109460104719028866689925595779874487162056799331417584366143779818262960935500404356036419490889196977541755714827875197734115565702767509682524622536890562791635004308192228266656729423475297883919706488344652604154992242161564436668094221900378718362552476396949800750535024858718915449364413205732434741272684143771159483248133661526558968834078415043543957566166030387012083597658644328493083846898420187165004629849017288881152887088833047197131756385611327141675796514782316910593379810318388441893738995365222626037343882894301049580189879031438629346830122557262313993628470642741831057755853617711643518703731625516388788165791980018294645253511210384093299606149923927805115857244307331556640983902330928566363796863062461710329544074337916942038813080228387171433917785964098988400999266957590091726435876553734754031738737031044823081770084011487355956838852525262615303749638964674312538694811804530114445849536409584442459288093983332907651298291410920637859496386820165318586128421766973960922128777664626485451284465093530950995033297810061764230469941832220073134189103666644624787887059742071560633410664552918538174131719832142596970998157332617695272804504615407078727183962057075579733292691077633275915951390566109081949429711836435409201197356471451001538965170107068315744533872622521736709298850277094736624733422016592170611926482558752944343444762682540681989532635450899188883173134923588435759972939552883781999412234508903726657658950103271507405456966220487507870439276711198617267591105707011819128708965233835659422579454116563650760441096645842189352702676312791151697026390567779882894647546077938519689743390074819836445091457156151627303799563555667458354113758207600029107692783989384707832428357045759004770532610826209888372589376690940694741168896120996155536389183391181654270332848635506132679629867563960595249990546093508056425290099501268479353772198440000183138288936034574359646359340189731622532437250464965804235974359377772605194168403045153293829962007368701692727395857534309691820106345825214006421613375741908197890042033493810652914881902535331611490493993389188172530124801852986292866152803193888882185364052241889427263937661031665172148459427677769722454254292301996129561559527775006640391116105576047186377657926792082554892814485450305243976989610211774690397592321849876740397942364229906193560754379051987324603942178920266224142289093565860303440159893017001101452393329062973361564537925804785057202759716639997535237409484932210275103162458590156596823022589066578705282418465026791089357190478955369484235163356707627257257486950288943258705256586835415049353051571922380919235816867931031383877505360853143556203476598727482155737152051861879139112740046379018479843419589675480117127383067439415629448074070838571896856202668154067033091304817058060492656781946386114758380816264374547756942939321669703048279303637695963560184682191087793862307968661721267111883639957333033628378252910215796670489322616314059196460618677985352740702011187290199508300048602170460022134289579730149964943051755347717597659859077395598433270643785712011525747142969328569185441393627234537579577107149301862844161393970886917565720676675925747851213437561573412728796132204399186995680971113511000967478416957107088484016448299051689710192100876216714475347259601143960752465228010180365236664058066197245903734184108836493362507970110539789201481534470354542812963718267168608929110892316724458696339258257770044309670608383959021676311483058155022118697948228766308743889668447490923515272064845794715394075469862762416737317367531930791278401965384619920585002325851300597888454647723290568190592771773184303458727398824690653372613301573465476756139330354447703523704058487943627926107255959630644203257460339528557736908418232567962625640269409552055277510767841078182752095785429458467517301651253581292867504162207715064051585988518459873605519511037452249668787498281343774101373229103368330889604111495948842655363497938049748766245433499090573480007132585851058716866102738941687002942254155528237644272944747883220600845595605939359111293595931941070347738493413135085122824486109050708905307505822155733209895837389013757355120901335879881711492817405963950521396444210226537440569867703383801459772852877219227470279830486535203661032223057587442570584303732988796851994692723200336995637984490044199462640402819981519471260255118702456410364682138766455320777582417459465627262283913972105678493840666604830861857377316911270721273995224313096411220682608808047446338894049956062357188747400566983525333747262311602024475980274648685671517296861250154604969741526262090587887450177055215299415823020304826430902923388006542603721873682889019921377095819126510150308708445569246318641665691678026026439623521112684551338773805958925481533387735936997779972395117986173168696322786293111816344014190477067975768044552555164626339887504101056043259609749960212154857371057515071063160105107453289572867253744982153305070421398856310564972652462667875301334097937681776750755551872495224580466299667171613654478746273987087287993256595531586509155573892926744679795431368375990095305161370899510055377373601420925474115101645765278104453636410281884007788533483928557611209667359148410923694391435088311551886439083229439718510173378744046937203433586626578244137445565076774214670328083531982050862651229126840197692560215900538082269313930920125192133076480036923569544436888388451219441702731308472470786941033973224786033553149280518584937564924756058288311527292575988121004901810825545201305564158033428278845941588271995444255170758710167528560373800706235787290033756231147121332435338206294885237815092257636425336345593526003891184016902421205846154966449063795298508825197475286953762514204603824328318905115260306903705584559898018877237563269251637713559598462305169490930824086959863010384122084616608073383919510515542125614009859370455821099026188244660343630507261134623109190938250209550821686418177428344700283001097769490502076014467278055980627670670206597578350589641324379226484737203616063017055078480298515388298713409932848040115389828957595970396993738011257881932893343852739363558475644988090921155146921332322221499479204470934306940839172160724115313729470556574127789595720931936529785800338733198748673094827637235663930723321737966866580103736322875819053203592392684532174697463118948202454750445914341764422068269919442082739636942060728756911627161342736361967447274744560496543763430555044354457139875373414305687279939878706269857420752564727753866378100595849621972304054868302065188998017138006305463857200221154935777630139999104570968072102196325517569530192491449426280591909328306137124083573508855139418568722015223577455669478315693944600529570403469850035761967867793294645638609571451709724399832883771584501524569961063630652386449134460528304754674144362432941266788535057099925901339579248336640463266977639913266505585981922923654351033173798234584781280596873867326059556837955843839834978016232404303368781407338772460434668388074835131800728615506260782045268104998438995780246077233712596229508856636806111033442120566798576220088306737737223395024915124724594716364375130426014273229758786148030506108870163779798205922993810575193399270339678579955725119177325024448038720546342836785311695815927275435488013628183127597867665441689817129783400625747182488847869362133847278280885004546841418816056135642595802056430634744558254315701073758225909490728654998263797953235725269939891886673285653638819025054269763670909639725137356368767570448431459426219939732781745480591922895938950671624065202742124764420088293630876542710821290138872520721529172871298874269294189062602084249086849956337199969052213627100934557792088581297794324049471774567752865785798311054320202010104542898745828303958769279618217783793842604620774025364637469037379455195493054593601821854033938176835591097510321562087432582367038406754080415435498386263810656312929025428094557597105539241680978951943096148201775547540367550667676338615960863662851247237120214647583939567890189059378654430714312185872779373485334612253507228880782882095136308888570852519866993795222099395500953807174146676403933982543303310343028472896881293021433585699677988513382536060902536488804858262553461360776038997457558554026552512575575864391392955463039538751892124738923721294026178616229414149682349860192373386973284133949770945248303876914537987622283541102348040706963024980612203028696571742135654034572057111648400223265618631922940649641793227080231721746634660281932705068942523086971422862311604819508606505115385032631889269132793412877465120259099152985877368974572012269469650762134339599741640820006435223173833439453632130784427600199418550530720300494471279783042324708495010112581489039833873856486316454351884744218865037314751213787371277972185320465033010307546892533242829623963599502406652236015385844373952017469103175455680038683950998622899042725337956954113376943676125781382002801714201481041645371480617716772102447544463919071214756542584980085045703128081452286639465726049364012490891673371884141167638305063351482017561449776997273007638743417782506461338971427992673764214080996214233261216764984428200221258255356645159976458499609854606889903419983178851656662640816302477342234876925961035746989206853096787275598455271166398900657582770565662325350276368985868282533060909590505106479765404455174934172351230459678366769618887122790666451169475490756690258680832425028442870843981691724344356856030015946242161271678635685831859381475246969759838538195939998957845434163287889208085414769423650412012634368245623750032109371024868092696865904358613804793849521154412142644546373653106467896153116409852655352500247085376638035483767169014333581352910892494574229753914106666548712630009594509221581741207890357564290307054582559208862060052525773312738454969496777640909087473702534716899097333410451120080595037869561326294598011804471630003338669794461965843184217840012492725594886271607574269109256889125980391105092838456066219998430064163525743689551733549957904339498992860437330048123492317693358241217978627525843860391831875407398953988620186351686741780085484397413895625686626513465077239540943653045287236231553976452698470983732689987511203374402727133467344819013670627658101795194962532099496327213177008589117542571854058434869542953853373546984092018268741584780271388116066221289661770997074985324165647855440446772453176999963470760393512278776410146912644187841304376496068413545649564184979078978804346045138784910914677598613642617280228351213131726741222113784900750349128581582745975701799406535850151240584100472508172609557412609528081678045449909254030189217881655584531724506999990849701614253839419866909726315593378899296997166101641195431324989977461702204284479179175832624895044773519803769259399279659571276208041231950409149392254777837761396316102207461005382196602909910423802647578530148952410261338514605801089149655553938265196903485901853748709944592575108700239447759805864932221930713057709961176061030734329593583280283779084904514469479546753668448532441720154254002548980966709450211893352831636838318898204847442464282790615176732141129392439748866237203967791647942311268392657599400818166899592307657869358122705669367248251639188897964144087946920899563360025678344925057191069145035095522093720437736628257303639430726028162851168039373964490537999751902569339410827374365881605232681616154056526906136663659236404358700510869529000643199061098717261512622255605743339423636747653688779939410051002570768312730936975929380488742361105323563394480325535659265690915103612263842061818477217830524183804414232655223265553388096548789659861727563242782429523043558765701836758366643627971729395463846304616121740204050364405929479319249667211810359563807250418065474876102737657803700360474653765225014061410947241485229029545463269302652208186123427634776093644996038068283583780028003471831813950896508876842821797476745159990790686803529292297184539239632063224914023820375880716114044674133901301114554085644540156432733159224094113465981178519820814527830879576357711609140238216392934219627055979383527154230535450017109913983032859579283369617343777846047654704505652404644998565981020875517724984705693463259180023258268575025943057825833868529363921878787137710416783253536648847610504911819443230901816042734614194192923255683178748267793505799146346487120782940696337390116149431762681998350202157644252259000930555534009484101242009017606364533539529000538882196321950439861087602809944496900478495412922788315481477258787226683299937389526113301521499352503613630229630001761198623626139445999991860575076415901063708807443315850378903361788583096124697337740157517309979769429437354365962534144504344589400459545151873089587909969204732246871473173602159065291816334380468642236793773991766251489971041578523268727095775800211166436935708864635752455248702950100751309468562609402257225600393785324815096353310708142364266118880518493034887444166343407177575561609233276008651409146483993070044168749157248587772208925786381129440968384786754524807568949119144634542065782975027859356624005633125126393046872141640643086370395294552448551944034634721517875622171548422045503405666029417030579402033669931219248915226382882653833145944095305173691632336350808090610963301695593935129060068341204944878954143005432413852603081239456044445552561758215917648468727642264600386874777435924399457367534365233824465152566498308802573309940426004965366335228575967921228874188383365436166608188496032074940509007731155040904238221611279845285062233190244718782672694372871604948824275628812435370858635553886596586563988531433314518980010666655092328259036590255417087988091981335630725711215168284835628666988540174104499696947253692473101737964836195104723443366627435363482676789681820905631112250366218683427228008622656439731946293330593887482538189191299772005156738475991953104693467899982350068474168349718355592647946608306438527038746959147508759555897411829193099178265098238022025910543389596035454990232308351539940373590166965437681753270497157326646866082173653657677899961983415302160754815134506510143521558832093894450204928822397794225891435092507903828205012917739808471578246980797501239497194160086805672444305649157763799397956456662802882149479450295888778597654684092253949535145405376909567230366274545596829008850992900802628070471948362423743930623261856976563537859762259257810151987370566226894450993777024654894333952268227627670312399007690304028182781917222367435542219979124407725539233945620384551038044066020655996588540561159378630670681011938959369429651940863373203836529779693878742801638674208918598619547768065956535257629688945706172166753617545160544569179648296721573594515089312299388858785161560303253530111791530028018631559841917790135024519401177976978483979371277461746761262764146570728316250743525978988050318736307222023898227467661824506442897649409069013406935324456435221927847726111474798282685470347432000700243230005445806380355499344887517776987446357164999406837948143340997500230906105751381353159384969747809084089675966782889494058746949169035939408083072902621375976906476233258836216628855717269907100407369565043748328096361629937544626064708583426085180861747203258587172678731215967167931570296803410695660710372910138285684806322057531502275766130939554085863525440136222614202583827225614971578996545558740605401817372748719030700838344877437895384804822685699889079234947685074065422085818492558265405915087215128679644227240760586827743067041317019000000148250015484980525550150469038482166791446203073300512613293977088353118393772566198693189091406318453171785020602583651618826630005487036396853422270253365771827939333817327054491186377760997722474785025117400828961009890859343142587144149474762680890472283858237955255067651446924867684998482448631177262635465265448414024748395619710442852786629658518828719874109096988296486991318756490047532772239128509041419383278201911416275618968234404849621853025611513866590304349513934587389689455508610797475171117153524012470902619236454772346528259088915918267056316467958869916543057055380661644681287605634105655151451737436403895852470493981511525788740961133488156102873068198570568108788943788689331765357513353829629432509478863711767499453205732594683028138414152029935408263873333244367562431590139124841299432413925088927327021634968789025426469541408120410028675572825299178775458371087809008826922674238194067419134877595965060582362219696263184433602926336615746800213486920960666088384961905245156108163833080509049190246275604630795124329406537199278261589851596097798569598416130037750432539762531698580633493209849372899050219380416941999253683665297997034554178288935892576144300514843884189198273812324207655526433848510331554145511734307133759202263433630009600636045672498702486699175487466323641368975928134221968396490800520035384449896400396507703505735582780717853642451478253901968967108129792703197810998512510550089062689243941054099502642952818746436589310659610833166461956041615352482742906881664464490347163781355465612741259616400039679732460657824114964202027279451688769969469275819141716892532378322200800189632891447560326366410112281402757297170101453937357489691013164237781337496965957640658007305205537198265044615134643133734290246478997097375872846032740719575184599561147534677946616664094792057822976522510941395245114578757234861859398857116899405689427218659053913759345973120890216390522378279978573107079209389155697220236492358397671055526219695143832663469835659471407080829980602993680347708824270686390469413160344848066541375920747012351419457934160757883578624957802774837256727418616183494995351774932071172257883513904558097556503583468335067583362102132830205628439006663181442768952237502782588700724070599130934647280034063521960880862339933112526732564223188395765305614145620220137849156050030108527875281454833272150903473274527335426388389395013947556893561742558639942432242745895180141927647106953745759239243427002886342943405304902028293143067916347703992708306023088667613903953967581516878992569469772481718401883115059191824380545050134940679122790679184792741463109307203880607389293047751701709474037822180852932638603676642512367402849830449895749073865706898745355050814288538684476503439296606994909114971048978493966638261185195321732435206199442409644618761539347133754751845794244816900218584991758474396329445179750144619781331869788289336222281265995148557272335753794991764213630595268713990068582674259931405957758452222776125402722555152052669162567590835608218379965350853671320675579456622343548432303776168024048599998334492166040198174786782688415138479466194941863826625776060308898236777643246228215833844437228421576777288996026887824834791937521787176527347696265659920557878201389542522112739939683122254345127033830055668652319709388441555786211433666575974523047995229638455166146339809231140689156866040670381740285115897829294525946029206860927153256286447261877381111100947472568478640633194161109943221478440825382150408828025667387185574638748585058609146628862951125500911457042801154026645390122781325201560457285218590222962963433410968397555287070500380591540937957511399507111812317178238321239686032744099329699719657298041701272864246414373424581686887620191364296461409308602745994699464173277692195110655726076162569148733211926768084735221219205304119108575126014942914268670091333105764108645449686779599889869288340658991307739046395799169679966896491285472398026364856685682498493723683311607139134491387649245619927327666105090620052673755317803921823839085447094469240556473093991614075992144504886896549478751026461240724422018177246200798015412928851264320083760868758130229416086575377957990655373387376521623458546626802335911773606407568913953467210658471087072813001598659772569035348341311052364445038478927463286155080078031441641834611304476289958455355455702248276499111666185019207256585939934022874928985432330997099740988475533758360592299550781061736882504025762609894434165626093651590638585310497194447440855686318832066518546387329172763782961584637666417480335206253445210864957397328476619896769267154345568797020923521780042632715989621254227204685588929242348816389537958211265069779983834506246041499730846444957986677022287632268004040551662632107546182263734631760750324094984116171562228659877944475194353225407089585292984888673002810367093349272141609652841179820457653106037358161629439127159465322237829538286971232197065450006700313934279265509954248163881698950021884269452342653950501294781707440861023494566296845278311795693564091527536878514829649797057568421846785720109030773306908217119783647614055386120109626854083409661076112983553339385815506114971023994892773572068852891932067156456021981250552176722618295219927080357081200990211219327326405431490135405713385881496139952785223608358357134024979936032490409680897959552601911657715618999148204129275984349273164364005312100389041512698465822145523671579790892598713617068819385554352356431706150044972607749913078462356344345113605895188294955775268879410143241605250950175587281504812389384051975096845172200049077132058228624645966428126537276023496167095971117405242525982249287812169484980261940264889634826790563977589373861677321107089080100428010819392907397944866187392037505394325815700068147897870055008508838892773067593395548926713452268045147787267325060568630937106423182543715850971119602825402057599493249773451959347954033631657736087642328559183650126081929583403607735168342706010433567306170693273219602892771494627951203605724874719430792573691802848882819430281796789748297661398769373858904050840019690425631553864784385262331598612008527290600582986831015803526764128020797757007816734994036451771178526853654867734151910682864832896729130299150435831346301011318897504983069015299629355799318325954844198558679212536337366659182144529476059573689881388133701002441464595774702661281702303319016800266395805103485536515317113447676880898600947711473353611018120253279529736287258639273211301568618418810188699697452463996010152952676955825816553562112896227173997198172802733593222168799349010613577085505314296293216858110235773155626202337146721754689847064304917991251504827198493727399366573615804681533774368103714282237522792363262373662615107544528591617173208008119107029411006833605568159768803771031295981242755227341558567299141931963024964983119043901581919922654055428381794680538774148967563908377906464763977868947591718030672925246906068426414499007404872903245890669622181124603566557226047976730264736461006643521769195967597442477277461594292389662855614090232539019498404777418771879510642889131264245062339555619986927563926829289966900596661998289200870353349414707947895794302531375607147210046156683157238636369182687792332489719972539455944328746312964461181075479516827339187749558882975285781625779611995226346697328105629875856726177826180285086456397543896631094129748229982649351085042554115326594256355859425086955821737971626635200938109063924133466653971251385784435491835037699254236437507599962826154037622920480197847290178480624715428089835797772307362985683108555299046756911324648288386766038903047238755096825360520580128965450026504593668359468399642116019348442626153024314064493651165911150024276943220270822530313033761515627680792447628010624355010825863078368336291264483177770299144464961199175826460813749643046554627216082030934309473263669430342182883569977631667025081074079537886372529353079438457860678765064482314560661004383942832931137779868223361286751448436115365763667125044658665785305911348897216356874913618139894664072772908268402612873263797743795160128861939100589149461109140534814133396359912255553155009040031637102792757809595960346912676377633973354839551732531109967187001069421961108384573156888128572908369848325210537984267472914793160083152345671603714814449746513886005338390606424198679718231332296607434550895039621430974011744010805300094030797628639254356788807022062035999391380097173591811098165598968873532008800424037010873450427688707545060874593649808445299641643356328624494839137661819347461859280368574661055020046824303835681660195571803408317966528250689731024267384922877161533590690930663248333178852855878178121851172127756666632624554867216839096085837759638331590086614204782232643744515187165219460352866249528500290905466685452915192641453882934545220025748657315300279471496141613377070501428497969595140167052338973065063699570348873793990510821824666515241645845102308068937789656927840011806591309765401364087033208027880998520333068158587465140324640777987867284516836643302971074479086980553323868715382998116566006703785967781585094944552935229556957556365545725718577948534493540054206430629733245598082657943665703033716690049589213634965937425251314021309649576740705413415836310222910629428978885868276939914959789208171449097898757373416286155160724893215835198233268492732428177491015450066925829781115425996390632633866966996469614937573345298585367963120958366553880393484128133878255887183282331469631533496562362484781329714076582907362476917141676026062788108590286254115176383437762137394814386171939574200187563474392096181481084376676111065117059662716725408793854748731287263597012910967224314920113645441486087680762588244113746680652524877489215324357620995740365521231242402514296606745263273792807470311273906591160327298439047270174634141893752516247494554942679211421240131513591432635121742617622926955486148579879282240727350140266134770318000179477013998605706888667190387531143366728996335662551808810169418812302960539445255219330015825268495791760341666019962668047253053232655657432741791661244965214714206785465794013621747148222550463465702778095160201754978371436924452417914078698996331083376387903735402531525731507626580191145353391634010895379175394129246496705981456825937260542374742800728133826166196491629893080348240298645548599525296813893819738705656145612195801850008034630550725639576203470455018286005146035471957228129654302159599188804526101201930977626187573842714020663291108645364296708162343309752999586320500870161983782270910760454279294336929393528647817888828999223874337804933535338452209436576557645625977465121188686266704436779489547182753242227774023770779551296456904521168423653893051736554367580373469310239742844560892891669775297613397870508515791796014720065466321541598636366002922413287285531119949885616880569378818646836880396986985173071207318540050821737651420920553889710773814537665974255767112553385812272103106132385173786220870821545206707523678211853322445841398008137698480312481606086515500361132510953523796757996304230004606653331981821496615807354262226789351198991784217367974574048209901123493476248195610175777490543542278010001284826639162515509565635274531140154017756073998083450410003965158109128422588867336256769165994386514622006074354422199285511627516024955904960583891226381506430538993619419416005430510718896006827639926429490148751806481154692800477912732609594736595042137976886994307760562201060731260994652551533102398086715282751166136920268263021434190923401492498956669054621169051922846982874223972840379260257444056022271517626894952565162229158478882097316598653683996798432516275184777211542553703762997379142341710269320824560346580726468195906376137048198344332966362028410879940235801979613448396528384479056225083599672498772835328424873851048390152395315276002048070812788024652114131247810452208736868624813466924257186508089562531347169902562249325194792093441014095920184458218588509965296449149035955172262337714763187676734645466428373686063663489837762213694695510036508856857098915211066135245234708008733537726590650825914383788167699250291220899765575514174745497736998402189110566327340041613169556868507637194545313974033369459133670392643957800829630688272495901391284659679877914797354845649601531429714609953489368987878608254691959607958725989091842944533095178619776020473150525393614938266328878067601238900146286293574772556797712681336331642664233144358492818571689928629587436874665632560756160345284769363607806567411680461292160926771642802764071608102417785598004659263723728445748442159686761572324965101480262138370846282935660214488763111943638313434460879138440653502433175521617310434758264331517174972305225765527377786405353588691683421488898687813565164508833188799996319123810387698346907702021161835086383729407460228251028830417998044779087073470308780124157980094045105455687879626493572467609179152507301231902810721429329768968561183897040019457778090729644713330340147873866414097487325427912874077672925224601666634322432797088539349096703086552974043433722400797553552510608908093370147540999563912704030775201540994000157342460623888866304275389326285877463511672098711292615523147504494951067837615705147766736456970001632213520788413523548638932022996890288209013901343057748177696879085718385643668320029025675046171206409758327724843813870133911123749897037468355607470147778040505844432830446199007914299603945503464020191079398193946906497571769054331211444423066039915613996894450810852495793733283013195294039910368754832238551724496664756251060524204937153784260276485463241132843590848849264405122562431270001691702077558468530662603641634855048566993690101097299793211609427632498648425985809970802551381254590573660620600215142975714443480293786965845781086178693016271432118914003200261189397704526894467826293270215719836553183341466381534246770582303565120006516030909632436523023345536233515498825268423022844654251538018229911191615072405553884769704301286425010875983342011275649324216926440227565758817809144552406882386252952946548594672376105134084095181068145565768507418739004898291710600143198246471609058321305699942302890708216695881222766938523488009555812600865983985480510438546423974494240911911294678247011817642266895052689833582791973999576477418485572245889775550677448834035257883823804261893603887038161515004184166101701082325020947754792546868051391718383514196443683479167756421569343835654047494851411122193142950096342458727258370757978920606570035471590395898965358338353109464479025169294005997246018205944130970077657891197895730871322790665933404444607891132852570751123270562634295208810580823942184022551350999948024347699512497089611094408386140529037600887716913930291803546870784709905203735637619078210758899617386658480656346868955376128995116143521677318278545295187859437121658975362182313507458018543579390592221965663080056362144745577236924846990485884088826520028425465927684980612618064046800003414976805920476059659162281818900815027240456380245805606596010233549144818558306237602085336098286096876739025035906675806801292924537640781193965234033721874047883748256599844369675839417092929495749707746032283113171100904401664273687573183805013637886920096870940959367603471716314314274557739381266353061972230939598811196421633261298417443672685851239375389519029329681784482227325019645374105446184528174769718204866175533966450348373972562265369838220769261202436955689643935796117990159921620916685762297636248557765458743864419172525935042205502119494221627083339779063879145245339599446315141729305552856180849619162051156492962816608269151368075784510464772778093158190630839168465516959854088080429665898824203222892835399231766365151376352020742667125850200786877323530343395444054922609356498268317889581845724411590122947786636188727886030242400576281304913613117387985621006164937276780304949794043107634998286957583362972304787958471438792631062767858418843336349679951517519558553473385917906885312410691975383031165624941441035954182859632340936002860214302118822147034506533665184320501220860444621906094498718410671280512337213956117675481780660373007336760445013833307881217989867116180820362782593600170561242058297119973045332247998854552277288156078513626255960653786017988352070830065219196167212793920403884943377102705879525792223458069933738479193643526259026287818630812027192049008522815449305126385799078068432363089531880817427254862687214405971949808401843597218864947177255614811324486256984683741000419692053220106805586895084510890389869950524697727481518170830471319392851339066916668145654485134707057881421826417966501132227520653284647321033609673914455924045277183179957638025530543237693672574678712751844385767198950016704747726908816863641782628470314758140907853747473005264000774677285052738244058552745033299206610517093928440280761378806511008167477534173566694878542157798102900322980299025724175580307815048902945726647846039300676790253680957026953228969907668258769371215040841339746214622416724719050056328287884841626288452459682366171921130973263207603815577913278271034584683628523732051863301957505764463247474846316189117177666317293576880005153136227118085075847673997154211313112147483896982561232595960075438853441409672194521493734129241905600370475256948421646358268796766810915816649744907511655052147676052462008044966832070115710833073948122161269240590870548844432241721442342888218707464936126507859788909923847658053400035280013235862196556169323976235089651278519136957869001454434740555734896958336575863486778313649002230564953903928030451655045839884654907334506037994739348399913035260310789991259002356615289312419676249145993949840700282272249354588245444699176001766057243907791060458408308363869916587681267040640204087349681689739376040548648902729317210638167376308943440618401305321329358504910498892543648041101262429862693067925734443455443575478388641892417732522286553827979438145543248958855787851533711135192258267361400602655891994375208327389476152271494782802929658225665622013684067239406446929885401384762659048635649298234286340051440679745323163970531471825338540456288889017735996277201870141057266976920274470334890324683703268753914140789257243712147962631005645728260592871323768568743285491328059267427780203328136906505639279431945539174844925329519423698602343570611046401354937786062702228406992938298071077184502560927051609942292601570717403938996283711553897168480268040951655935803990150731593610083030332721429797923634912343817273697627652363553877624439987131000971829717596430837104890781788070633241321146793296887634924518291960825246616201417665212635328725832209781467501277124409142725796280794841550882653795363844662829088028185825545554070862298018763666219846949162156952884780607467090725079091433559453409231736719828710735713521997858139620558970639294783334546474470305232976161382942473541494726979962271246364754194687440033687315191131574795600108005092415338678201460960740010559749210812586038949698241559189535787810193568338510115343021014643789630964732195459015361915200140353020648170090288892142851782415082910235937766003377374793208614045630771334899961844411114643802222140267073965397907199963845039638397326077099666654901227795237320649607978560442072305019554644869393599152785561777043481799672844822456925251744672650623625119666233365057885489799602309027442004816642077351208537880017427839587355115869082603203970694215720052968357455931022096016517023156491235304999140325053520896446675356923879012880346620317989981742352619081520872924766386066909378331325346947830398564303322850591271782814550560187053296728133909679924408747691689596423513032818598099066692007153199775529655937423693254323887036497660437328405224918916763925412652461308012431624159189309546435908863901092753006956921216576631598349536961801500216028539962091022094258276129914118127196604302779825020953683671143302893001820156062995468142828309415362544071274151837038777786832109068355979021982026278960904192589513928691517826084111725660177970163257334013235116736041676301726804869302073026330233062504446643082842467870218918475089302703468432306554420427360706697666716192482472009772718972460361425177278937943778993955144503066445482040128431481523470665351384531225009051408594305780654002420307029146349596906349547347429707942848596605695962387975289796309366861604576297169373059248870733495201015754282006193463671242903417333825960513844343656570231971500982601004783720978813870806726260292376300158692001924034942355151479412595594364817430828055238812067282533710079450875530345062336235416004256043078730238531209283817203124327756625862309901471113927997605981804343946477573578229207192820493412480702057447228091580003392871453961243556507049947273683807910440456536636070601465345987422259603983992331354187527257083043227890129934603985642123594202931571951679529657131480835632363452572909112618802224305205828653494963454830205570453932132885739286131500338972509324411044746146996442381535734123168109951721632883014181355863323603934837580472751982010434304453209297241180982041829585647139393183523770310817619877265539871647635776203456530257159515852254076530876699493733642743177169906354451039529614457999386608386417679092145502215420679666848596103636080208763951927283315672386968726370823164814451593712994194306805901414376458802849763468805453776351307873981221037278728679705599059639692193691709087201130800396728691383220750173467347359188490460454238809167918485004734893006270333557770068650088553610769783641955760742030933173193329565929120133150088616353887556429235490695072315670446255158074680673831452827610884624827027591104189127650413244915844322657259475071238450277612556274972137956160347742342379899276836375961804046476276392010324484423678662910871195843015403544877399037192597149062961292847447006422670275297973604303215380058215863415417638353064730255904246176206282390547106794836523174732414559238007228617417943920146248051899986107315117655230944804211441341763252311702693083255195530945633779623710286676828476943064489158873595594239662635194080891429126667099485240626091405388802378296552627498465538671448683337475311026979344208643937751111690143948270459721209804794104632218460805995985282017496112901566458660743424496907316403779366629240023574463252852704361177368221004885618873030486377759156173624024006434223328683006682656989839600704357410194354635131895736276059161429655784642279860735508321765997465057916549733862077733723872965298811135530638565715445731016529573891567129119043482523843445160290021276382287297250847679899907919788905087007480880031661270496907748985622273509505759530485108175461145555199029573311598189338170617971100824003708688962852200982088168157051817826357721538818649144330350301326563039046590011948056285285036167023556250084385689768517842210578825465823352336247067400203853103674595639215380688088545870157287181157607794476729191781062906945051485952394285616521205957287351012711300877994764753780623355829212494128525781815571011951287483390693315273067463233710378258980754943351958882732286699800432534322280611912230558591342133572694511005372128999846762310961955581582579408464895923318096591335555168522328846166413970988657059192677867336050747750667309038205332835298664236360908186990668943978809787107986349564352356124355039773391428176711385457182906928159381578674249098354311541755022647616860989816085952222984898430045144211461067036786348620221221824127014921956460309177835915702837459120418144463085728070142989766182737829010162400754429096193688930187319243086189982853288897052352118411030849888604706388711400305173821865509672278616006364943330384097394256965184764884406838723184405064759232581725536667895706884011650245200004085941707746375902156079697832169269420247458256362939558490825016880872948712044774453744520881323825302490986554429335391472899230645438788797423229273122014605045109594443948496059070249710053735139007026947358756815682353034666458116988813998090087713288855426553516908173867569813706040796718574034028889294674431870774212079503090954646998440458045411789408381325143356588634598593157837355220545671087179600962480299638901864790286063779777795592011305716186059347194851707613662920965091511211208763523508646257469776388234252051324051877048094897491266778854572950359680883033951360152137788666486441224873845594399589508374581888729007242461749762137965450512558986231223928119521548050424159928015938614376191075982003036912286267792759913629296418023731559363409289824996286624838671755999289280311139557626752001435270091136428854116820403171670195115875146675155149212933160327109771748188555186225123541985408219111266671872357527794981806330307776720633962710408000733149768198707115884509868186922528552041537655022461161290828363775457354490856481860113429691135561549924168324175390486545810515225719502263043611108612353128909172430382457490998260423531447508085712391364029389282757504018963241912701655781652868229640215929775917631360063721729369946921318499166269174932735610692561723888886142995653951109751101793129634595499917165588321436867327489073845850239190767602813417350272295448051405670074958352909649904137242238171206049679772892325388663598045639037262408761901149090494946904373838535146999789779975919888746914970686052612577607962358867466872489813701750491808902190092181420956591453085804116211634932723214050037993610693347179423007618429029358205198652261928578081043579154651371655014850817295021325734792517055513842065669371949708562400705368575986133921544993995705808182318895070627517799013717286510421484105598842414920165927192685672036624900015135756867660018392751259151774783769392240974034756484622670598280690467864466112291176239107452073664042320690070433731688100048492911446530272677814513111486043820494839686903800552818332911721429184911865375140351625079858839612987069922608300891231352972348834477451221551962990864653226925727278078256303734679131772835746803860968084441838782447342889064844404335224835109167633181716199409876728776134607671830380969800767405325227913901494853850584773854553691107318834545664402662383004122265924220498033616959484864841409906809451234202549714602384675629120823793998026919874094808831621325453317500039565454559500121012983322883517792660821821182634282872249102713511049375428693962204341276404966907918362882397606478937161352681797618829916769985551039754828931859145266284416832340872200078615573990371020075029758103577037003416245460725613281142771745797651562514210169660439277746819095560471896653736674347284096899710461544729144074586291053850900996147146155754549520593178454672302466165695154627368212032353587550121912309409967907189229700662785590038025520425687099151506230881852737079262624575946959515996771225811927893812785609425931606149007512540289031505368819592211170625620885943451073599378164375004072761876777073188930274850145170424437295607799277163592079878703386711784248300308659567517530526226872275426745320396160834462246958748582397253040444252232594723803056386211495992278918723162729672692035494827391980522287267665235243016893404812665377265008538183000708217770982508986006517697690935812095366185688230935516202081181497826167828076276195804414285714857031100233743108757932087105263949874968023129041709328705699781310458946680187709461395045552576696086894874783038522987381827395458646220068432955091949156484069965762650900642361811282938034248668384765749060718121916662365194520568370864256579139793978104323159615014638423858015070881444721965349517154582724778351493020079882913280478739627129872580831753624022629370692486723030031457229440563422124531188159393383482711328754757776508929717128244657547878141079187857738317025460069910650230078436562791390995637366200001318765871117476405740063632367184933498480888532350171491774978862471628138950166295197010714217501320328969035865335250529991858253506429625739219348243946179142709608456745495644483899068731542828396569440612743267234768468679121088607175086225558674325173142459963057446471104391645120832854533714997572158783295565587550902983656936579460515274024337181811494045759262763077819939079543366853687218986491160691416983334811622143483024128222790128567236035330506737476664321618859674085757329583105235174724916532629835873812046402678155344782156881647438933416471557057880273164631521624711024292161178814372333572641899226123891740111632625373702280569511503009507437401311923145993316639183944378863954700818845279074511694799966026382015115107135637058431801365362700364367136393520143439419184397037608273017220385750980881353644776656384818720461211644690988259536441655937114692306851795625040130903756458670091658046182262036360249632788249877527895868413685526483688785822599053100098811347402917839384089150115761725682102400383478302455991201649245880467177727331184784268688484630751339231648720288924197603210456785303727031314172670312344282190275976742895231967884636448258469325664740869636564332809298343711952715611970013962246971861323638097759072075790356421286867987420682715235632305993447205018061103580012670383131066803034316124087064277852973987906274755398761994582435130138742323582085413149248051257707519290343313516305193926599761652392439813567404303002722104882286260225394736984301747212137414707847965037110413729885223021891696246442118468669387161884354285619966175121521321914158961973305097692673663228871976960831841301766408714625005944855445648657388441939337801005994666841066549205850273840438085550639964373995598411873355081674352259410497722197027395116242624034156633038002216823705850951538549812937058284191639949370507032809799860764812479547778978848936398444497768103272894017891611487973307973731073555721698897844296845273683103751178271917920761829576477029181131105860737573255984468084346994320849550625105339581658505870065414332177713208345003549929365294589063149945318421915795158011060165841977204574642397970376473362425115232904314929655713447835017931679541321709030638655902735691553228378901317715297845108380921317510051069617020962677909756894677056263064541349779941959372582775485928343722968086790563843206452143139909774355662510580434228882630786479105785735020418402066952407959472987056410381183336742668154584185574767583052364778667405947652532404770690863551881625366188435375723933245333462793566176909043746617365117944686072450756346506916540431992345442959606244762473431157807719804941375319231623294478852312556499373816960828886043876688142690663061832448899219920462102675869270358849811170285313169600860827692352504284273419731574180851903895558061139146729790261336107849160246568064823206490879706605818709329493324806373255374301064825732061214534030689558310034832190247172839976287558943234290323676238703967533979572852285410030759764192019814166190360130108639726237205421997408166728610326020036702899832558843161420843358735674624640121982443584303194067583628930046859009200436769300958385281463204118739403870199548210167305948492392096426452950245124444170489313605618747613843484141675077329656882731721183603995350500243133720671816204191118848716949705425681951928527145131849169511840750867431733018357228961267017690101360078828174109089556755343877748097225794935073296437289938292945194306394770946414393194518804032665123304821484621988119651165614100558601657751216734723452374375722882303712052910975159213761505396604981712924903210169317859134050803310633888724646703630373300865084885327791565147159239989673532848393755287542573665638767784930834782160830329944219568110179869860059023786590073152978640403212828193412261267513120582450298646907243423892284831495843688594424577414788859780577122511871046706625529720213472751855945345633561154588770494814062247837256321612182074928585226764829218680058136579492540366762235627217186937844397599140978185035687274113051907749020878046899229621272868430097491058287439064251410512839231303897201653337664462211409888695806482318186727111441428693335632202137210737750443494655374956087160199832307310801934549483139064804532617369043190623049283867748558121468956177309901603874220553122975504153269148537882984378028319954712406153437628098693695973679898150925627468548021095504442934604522566296669499360745661928799016155572904592752266745202112144320660480216395814111482830486886723205837067336379496915577128167241945681002689835357679799973221681969172981583158123363949989917176666647495925161609811512798215415665229754153626378856127000976962453050182096827066013422488377479318641184265119662226315267940250062768670902999369787205671022819910966746397533783536234983177305998423191690015332913282850955343575605279915810362421164648982580697955616686782840269662770422466838795607297098886873038772882018447885905566366973154716179223905152015899693801232833408002500645471010864470037815106936440756640154320127961158835120583834306281614306964356768354272880879924979924311766463747988656876902633845320340544034527203656877447231227195653861720428174803256933884570882398329566998582782069661132865692790469100381264509500406315446684005895082562501132164408213239847349255999915484991687219551479055815728260632664807431743856250757819222172475340946446639284448138175070340230545426257350747971019237922032713518442969503444412548846858476845146158305146539077931271851563954110222978887526375368052363312513112541501339716467046980603926774037506401528515915336763683396490729443261216386500510182828121668607222685815233108732131794584941592668851208856367166955613718612703482952844377989543797093312597981206648417159507584937935808648879507239085324493842301298888803790109072249003357696127170329100379030853675920675013430388447323249216607838523546439551516473060767868833742340173341115268133711487142516710859141404650420974981904621748729263401893581736912325332523253255589658821576916929137968830172209406299132976932464568783130632954667718976464741431483562972037343292958720824985870783972447686546071570277508974209271090253947758431376875776414707055077377541278821042705751479290775193545346600855482880546506955669563846844294963304339810962975250452095107098175231251090574309382202235540577441032709875372906005441118867336790398282915066617813983646825418261304399216686971564681030777615751331697998560683055670927376357035340237721825908562487229487233292390654513405624216501249850404228086013119558774835014314441671511812612530398908544489715518119653020255652418170522233269882830122261235710065874145794304678908744608796629706957397380157318318364330505563653756352995644129231068032831314593752759286990808112421922209526790960021928861258832834988281156176241335235627825576211679632316690436472564465134350329145925631169502080373452866301589710822541092940377760482381296160506780369973781701689741217358625153855888322975988671563559971864987511953715037481547672150851793259761364992660913253364634865207346893177666168316932938410924781230520093825514295249828621250408175256549642464843285316138596005778700165201733084856957156225690057861763636750314958540554881531223712831378858197751455411279373927182236977812846585147875301278224721576143774299267092085764942258949731473354835874913493116025503836802938274552998183650519386382760485628631135760345915003399149366417979553046583583677327863378724887849900712987902762301010270644621588708748143045722304994187140770086706005954738275710811316209414169046319652382310010287217468533044787633063391835893757995213587724547952179050308327908985608435318095183915349081532667628592555733802321358056450883052866237964482938329780703827212525048508244626902482827530145105537076697660426311620620667579874790842149366199927508415298976169961202721085889599107804061421739276891748645618552997077066714272660382636667124455325622382194420735166136228692529633279501239956714934316125650997293451046647117093795321144852378497213567585923833905096758152136985464203737763963074418858678183295647466799746438636423964950977923456010944999028856818115945659567899739016342235699639851526163798339618095750196780656440842544185805545426847641242336993961178969449829984989052937588955960311889614385964049258646422713353599398275358245378367917750685923903511453141181326494320249408445465310714681076638384776344450596548217636066872939030441751710112860568217759534377948494946084380773958940961444006318174274594025794886123528944117427581481962175219118674391470491990180438112744730116094792726494154786792689141545279198776045353696588017075537677272665291673431239286132985278296541984608079893794250003175527759803280454854441964819002936944369301244632860237140038553664496734732953738422609761846471771609880542797993307034819219600743237042525708455497287326260484947837061938558774381946586985481922663444788938394168668702789566764933221181815317541271229314513071880353997288120530355915108161145566499246481089216486591394705592064682799266375180643193046649453803771775597678123652781569161562047800499521078645200204549442808635037665572926809121158101700383975890509392431491287693598972727381281422558653431706212829510012754433434887155182908474181563798956925126923048716704446074710033497774532811825856138689138597538790250393604723703234666303026026664943935302717627695969122260108851673322854190424274299371132811910274154210786993951251382292747653297006947275006996126565536703544822432365459955476892468104971875967940380589760607396527535392088007817392762335803026405642320979445119113300496990403703166872289395631526769405570716303219383510402293957103868290384222971397852224497688053169744968009035422134691683898134420780183878150080865343726409809221146480556243686876297183565151801227115260342580313783821027162897480468137495536697339225547299063968671810604515863521709429295863545312687213548938187816211337516346127067541979871630860309270527655277578122866657470850355505128804287663335980408880295579153349166469670958552035735042799247272674287789047264869759694087060744649208412934036841264430334984800292806482071078100409043590841012281279093567847932502098762713343381342167128622770842529655600990917706243477990982008889096135661836843254810928166269953690423735923209059341522516913937479134650964693143088733579073590591108208390460313994845592670541293529720006579888531473451108699616346315688162254735231247639689379021439449787426209138099019573062409449013479419761656832235691243969678111144018439072131276446943709804151442150933520873645911505646160687191163254636719044786717705981223731986816527952208294132122755989317142543553501850381927902957755013979041000475298423631105654508404612856117455018937631791741000459574044682744342604429937997830566832411632794067277864626515589506104088785860991971605638669882769753233549656304966597659049042023011172477893972653697528400138026367075458160392862667684851918445604544651857300786530293234288805607979146906669475156664892613148856299457608921923213452379223806284729700187316281815714475778017907887069338471807884283034540597574721371241677802983167037930313977472682030707367331396851952669901498842709895267545755266562791182425922562873463089312156626644879285646414938857732575718438139730489369627312351102933842333766814067069803293480511739646048983052129959191716629859951955572772423496773826769206872781161436065526499796107229921001287506484540708364871678169506715806806165037091443834788040617796642610268403518654470572229109065476580654849751541562272658240585289771661443275608439958888461477424010870271018142569634531751660402597631028871785933687823961194975921237288337363516753060596645490293567754741035188195663845989156266903617587354213361215120459084486693339101564790488934410395646677790675474599040757459106363349656591971601069344328289267494870398657057562361398995968481096732150412596527532957002033889509624444881966785223661227285793457729365489777237804510538119644719395706113925359670525801519140559398810049693718369607867144580362748534631919616642970113581370924997557252465053423086446031877784372995453909541287090449329109014736204241110637528315741391326839783519967419787739181487465307855818102080271168590586681392674506808476166671100692033695613764872744932207095275704658043407605354405806667630630719650770688167569716733434702340233512850411408017190464309254168453436121125460016875178293369172888686353911980284560960848254171059884094572309893876612786283616473610757784898489683193619268641607533948145084828403952575706684079965284887666242090659027049401371468992787446374030892782805999112286956977189877245372965466775691381240417869687667574691193526048971609479002465772361645552432536310936153102474810471331949172355456365612115108840794797940504280456914532554149475333781906574135599235200108977237314186638578853435766092646999475689002983313774882495437329123130666350864226968049425392182190132890568599689111479686307619624385035109010930061242728182676111997417891727506610053517393779045950256650285622995639027429184714377361308140095757545613923814934949275639617777358188268723100659633415394993354536835426917018732801734961942794627717865063486006146878819088659235664635008845455437900872224075149562969408583983689573643590303820895610096297543808081750385136007432637650531585316922918636066288535005380975135306125647662759653363505180902208171758780405209733686888708440569766782238290527567177225017612345746142732108174967715712229270950259983032749797399715259081089212386874966050458581237060006504779752065736440650993435415860816483084173881683857372822100933244834844289047980020467995147969726205360298648327257855166473061183037860515206713505567294576049137988354670279389478333331953698387971377219823023814020553555491788341349408393919790276952413724659031901345045753314598341524028385062871652106612597088767019061124167523114674470605592222645589981134646888706890175522677805598354765351843225807852470816587477924043903783355533750256385274006604423067561020688414620910232663109195948744467391943126426742564165659108511187976708553072654838437575445719852776914148264637056751608359733882008199415086039564500388950837851129456422045668852542088101715283833740393627834275941407663332294532324445305162550492006865752809320696609756280673743715160070907283000711358951547469422938202161152558067269129254294255828438815363492708206203752742518664505545711775070468029238944638542083063629048987952065890884292081074219672284659939743863992146104799483198053935304473643497644750344905286032020212358807630963130314597820345512441213133995971704366637451219880170543414352053652673388772879972301755273101213510306149921190338767630406340113938790198621351998784582982420207921411675689084346798252034507046137615000546431801779238317443965424031627019844309962104279537608751924461124987291323866268461909709554304340738939757948343429771663978065767041899582616200563583189772372292572410390890485631056493936624056861465820450248813965609300415866706459192991618070433086990017309366746033648566444200613788544803028625969270994303509153028090355192151466339177545076337650014538143370629096179140025867260270208604450880903027597738760232117536711221120630911172901652369535648250274899856760990392230801420284918251749193254143297257420147394946510528071324744492324376616492627690792499333426088892713457693869337970652222105533006538822057638775980486448635252958156426934541912438812249477336323531626025191446378783524446784260528766320945989340494156403526620943076336196190451762505551989075295076951277250986677407912987349016663812998900545385977863540121619904346097898988715122934525419290149827935057263618675523088282452326248806771314578546162770314491621639053482457757246597545369218064198884678895407395668746609695345884292714668648222686550393417851445335910483273110343845065536009305822497682725454024974238265235219694662645195046402413159064223234392928650043477168755641822694734664908973152179337874291472431631342440071923918055294183763950582030400904774986641937051294277793434468804855595541817488409424174037201970724519806042680031677944257768787969351264016895379082318533629035022733493086486081688437452516724460708211206721287204321810636463228002414247503808488782398309433107370164727179609000113524129743160671626954021637706017284577346779438981331187156236688798174502062888698505514782304890864277624785601067430849043900559171327379477241167496601853612176862916726218002735689472808088514128752791988651715494079729043710126441843818208455719238694172143844147651024013698094237973595442075817764554671179393613639986050411800418353383480560273567875271262488484223956169579030700080867699265742025415504500744344993186548311643191454879951563378338436607136866670963529839812482988822363328299245606275113991605740472785034766641248400964052976520500388822537053352714605551447237801902436225182778140735697900212232128925580777668464276651485496234595894344870615966503508204395539881255503660785203146865119385693849732060384409477076647825667307230652327349712972524273244200157538335789514213697790254156033447399739578809137793650286449581094581424798448520669377910909392340037993932149949444774792889486385308667332880198253216941284917394696376972776842415497330321379555591552819984897180686946237923085030910184210581217743630543255636275066512504845034453190283635226085098189267207257832460951066780473134983135753275081400761768059541713653281074561340687006463740656640170890078608226238533143362250540552636739258030938504756666131214491661561548111780143149657131585319181044857561032012314458733559244312410910558570458256354591584499132652749792660715876414528183729601687905623660305269667292440906384883512229020247454588442065832768050286442626518368270127820740900028905880692093937246574857064470664215536145460726212621001159155098865577389071512902330881087255927920752314246246449569135974915238958406473126189984078784938850417853443420666332050708154826726879273345791640178774561092545233823450558552003188563621439124345821087872025372892250140591797195605765718536347621438042977814510912024089643936651411786964632986403299844603371777240925501557493713310709934520053824746127336665373929691078457076292637331999346479562252243232175826516298099713467794275710342627377110746486958467100993155588120005781525526137227963419077399860757034139197372337122323817578634393143485410467465890951556544071722877477993215084387135130587458452720390333688616452745268658979162036617979598927736935983489304300827371183468894677654680426476654384145472441402383009193429292860939167324690143626324647666577401396692559566978850119529185204040030963218950341999712702880185540394467446964764702152086757796344482605950637216089179535637946237079066796354279733016232139624396726136665624520288631620305519428193187189232032095022987314877581889283504041239553959209244514533056640169870461991293652833158081789319842718978149313435445321876126409245692051818227713289259498312404280143360196970862675400340278853408301139181837099251798355651962316511677466212143546116912770622744797068863369513610841148075306741402061518124139556420522527866243180813515141018656873618048372625554317470164923856648905789801236611303793177231819211993406314868762673190074599260374535284881279574074950626520768297009739978418128186093957206901760410475553082198298940765980123104627842807895586643851772147877495071733818946790463085393028125472687505956541639847564984002078371938578381927724388700156940148344561430581723215197921558973613390701353456013380130712315974243581812282816651599994557691083475484435188751427028177217871150502275581992874402156707274448041354297633231484574058574167876783905425868597524271508669218636568576983048410805047286337876213822253566577172711983905589263307115923394402655221752413648233580157898352725681996160058931840023913129419397185400816773626729179872758549906965765297581107463731288339141290199039864327245093979315180355747056456075829230185456022040649895684216079803550639302691645494639665746534057766802350933573674224259034229812468542854074854290129185647167365672065360662384307410703076406288917390201405643959298415909413532291170974237990809688196290811525660739664545802769974359521514373214012758566310036145676954335733630527284021096179964469614015960058607624810920584867247359628035297041671268080353900267679422302128043789680237475141603635869165048684031771598921718014136677032834256148836123776041706316891534733718268529601831118709031982026765893393695610607880084944663432807986028399405932074414117867160141242970599388167492204434560569102161098567157444958314703436866834579969621890437502975625148988286204154750530993262024749859302270043386398021846404158758414040634443676201966356227763427566660946422518920186636410670547035921959138273133231641715919888075365478985075249097309724348607654961345432985726768437376690806110114076344606601406482736847457498885396781075264177035142833171164975130402184106564397286718259581028288062951955742286757224745595059616309729002941543860038044586356425310872958956450446336387443109304587352916485775992186439497580974040699134054519020310043011816428618136744129756079600200767449580967214341615424720908187079796508392072964611378851751953781768668023417110669757522474185555364235843516577122316984430694736817673842289538259372814722074091344398919273411725907221642456580730096207982662392484911550235174236194759301268704570874753323178082219417349446145523696213754405194821474604942991015206021741175267141976391762880513302473547691005974463608683092869640621527078133365451861820880231308499501728510918988957224184421754814386489245359223085499821147472562972215286783270716038730802637244708444861070458037592610181272107733449370308397233488344480885703195446043376386316315390455662404456690483738851490147700803683140548389071156158457965047334299652469031239228393046759741333329834866297318135891413103984936919422362939024747169998999748867278965132066555025332341367240678276599757002530213189907616761499649251682814632716412983283130249629681709880097199905696353637071228576489043467976312550682579465749104030579286533041695915092046546644206096599328058604267382597087489560638937126428447739264242272572228380185888579207711056996357862015910004783490741639420126420424601071681952609175022323012294561415450813190096574076009213624763734153916257798368891632616554834494998502736144739367555370390814759784561236503237680113995486477946932708698676632881851371615342470897833080034878052213991627107928176188328375396737398126046550666441243463114617315888025589638336063711601263409738957028401780968815423866753339961772375701294590931704528696829746575259959213208677128957547504272336484664868984611791892843594378770976671187374803384432442679160804230452183627760898913448560234808561240460126626881227664620305844423201231531175981778349221963794104168242086717357195682717619826959309759716136283797275380595012104847327462438716416285015376386246827258634628413164047871663776816540927319121900857376521365571581178069202672586420709602900854215058050665099941726015041634950056403021804705841623644237656202086282168178513276676359540421051372737911729232488800568714676197152790043423531971483381478787911271203443843209376222140234227267762714944843042804192211329857817321129571015412944786864775280036700188762634391732629435312442276815977986880866729485963693932092934328003644179116054798373052857927794210464836564499256468883886472302696222120707343540969735225306376763141872834705855695552212488083447714413338631029014061280331514416369070164786428081505669737195712614291884944056216035065173009880819528354667310700332579108606977777779004887647437855414899260655873943603988743817745521321720509615351564056834468054723607027169335838253963861456379613739693023868061005704055967156003691412262396800298641187477726664109805409791771803171072991173533437114307266068241883720240542284247914138471438366264472840785517313049356848865438864374816639187503072271673303511801136537970156679461204795377012334731540345113079781814773516990973763231642668387481889397277478992702786335219080432357359929279438452545251620704738166484121266354351185728726226791669725965126824668457613352576871307046019750655217177469940208985657741747420514823446156303963140502196582467257779954205029582978932322611806894521568619916655782089233686549060166285890369953363115995777020851095865314912881803229740095584350349946490995247668911442771040626084667424019173185020588934711516415035910857281579946388729003586630587856067959048636703379813525145203054651681387463655867295337973386513694035613283662127754308192183623456570599405036067499876051241208034878724597757217271300373406289600871792418751422137920152686312534674383162870288813190257016922732226762795314710632450933440743595335250484133232644861019934541439251761229403370967338156377067646973596541065490922644067260777543989844171243283795431701270775169802279808744781798806098436004204659441340049202854460702082718260351489498306552539285145161142797818501557882117723257711501629783642982361975640123644286971832296285951579535896935025800776973685704083942543543382757263648620209426174062382739254416210451209386583877545397698427925118641908522759917025831008027408818247865392074952291178950361209589934807989366095254950100070854891757176124156912460700676257541445992048581326240539528646513964388623998199444022673002441880563200576539475637988788744806702937021020372518504695062780251851652672806071574256089444456977385755275933065629412065927787699747104717439961138818893183369514747842952078721322485874245225321558605543647843509533503629248552098836216584741533594503255992499185175153667721610111143093971033493725201463120343712517013852804398138305165495486537855847570279151796288472649634454389708226433600327957699554867351291843433651257963174721971794019671202648957417029489383408509753410183548405786518830926565852191585993099244882994658958260989269976919342710440547359021181161868744047797327441639370949348706342379936715090918357037987028376390082375521584747200012840932048458907686152950665534358092324794445207817948956645061478118476611438842730935091364014750401689320799061787650004106040140563853088280406232525888358702516286176820088087122420589792930869213760312868893112591207652773386197146428497152162141672380067980507573778081261797839000485601822583398608145596544683535458080483039935600712944215947529453189246842273647170287563827262354826923257108739775198980445736294349097314391999998228092476251820971533129806297248494687612556481796447525487505473176008394600820492841122432668983949650251061899137938141901034602770238392625151167642288218137157846844487914779432037316649195953099323655604731419919543604658884045393612389852032104820313094689139092067921381300035891263902029227496543007991480095580614380632319974559870080102949750073900576160182903756911789345320871496398808370616416600005375481796939790614904030198788538104244864827383753259583880377922192008360864717765318804397459134160198483310424365888751331608426728891980798995753541807188204611824338310050585172392408638503192857364710702767232362120599235478501983226869778130500080535132955323496579736137959201793782276067505972335936877750896698631438033953089946134133674278669920047971891997120946146475981399228999744922168307307118009675721060720415067305840446721422029117064198641701262765923101657514156875249468927631541653534997071751927042169678107114698631238717648590374719478700238083822717681741622353002874499772486687600772655117142411745165170648211969266530320681793965990639028532702284974210207374549144705791654922553201394250496761111767780421392108593219107815647843869165070124712001172080885830188183182176688520108680764314394520294131731665675533215917790052422054079597468710117559822192663210253462237586877877233156820154871537024802016327398650816889623083644029236076607879737594013584577007649972407300072458923808849493596453921280442212777658817529724674850175519367661111411115268189746228335558003411200078484478492951211961854794518478210297171248342707732481416990875734648964492987013585383579547040180379119099309842462086284852147067269525679240209910220222305481997555360281651471812326399018337976742466745931841308536611645533426899320404704113920560668829889784059764922370609752982049820358356394430126486968535847941685595957419655023517600903755988299614265599350644914285313182199186421157438398957760323205954161379153642894499367957611793240534159289943666811700786030016748782474425678704865932046994340321763822651788335198363072896621324404349725334033804720814557314852643073044326064703237089783037881454831588601883126400163056197060484894384908151542543838054311635315651722255078709167796277939427109279795848428438163833012902121966595250208605088778594617053506638092319283795015012025358249163770862508400164186874924518387324356223264284171041224401014534142390943584340842470961519293805989580856652856126279939527950043696983379627385769224695941517571449839513548878430675394002013958105834338548467373983052361334381411701437695219843996945863105126828836511103908656648439802439912864496157899964612124522446622255689253237703798589735566246309461077375150799529611210978946474747262364022551519894587342845917803593959918269888384831703695779123207858355948994178952884523643318491503476702882721105317624161643877237291416629485228879288193509060195216301480352484273362677471774967855100762398920968935152550131976305303850375105556733965273375693744718297220681345042148463663952899718097081108345108922782781510709172338739811648589673416621216502956986067326376153102162049650779472866931129309535478740353333189258382910400387973978557365344829085640513716175954520766442091275766930785349702834859074967841475223907516852862784475641882083604767744438386394057633806798614914752698923521176906100670266428234089274114647955558440569952496187948465255731080327560851697806363720302863692913776284506957715329733736948983150524213581887847658142827675782450803647999348715847501707106388738601791315530644610043569830484791171062726742936700629574379860276095815186778920001243410819932760326469121308441208417605694017596384137950465461072545531982007529090106342597125354960292183267101424757768913597669231437029069116330048817810655301996188844523202420035653236122409426829238868812631216032045112538550008908484516606339115640928707931202289429503124583453054573240936082739119051283700701126314434961957294202199565032463049798312070632017783362509818145996653510747945350281737369233909114157284198866889512441321312172657440130857906061883887762701166723094535780871496937062619906183009000267261561329293490706775258409495085718898966085626024300764963603141100747104093540674596742564885535588057200630858471528982078664706341474586218675726585544218650176016899950685824166006393973559839521929776995152985261472015574978344953839794985531011898181081700875346038843926222114170596951756688133636685519494312946729673024125125409446639339294948297791862772400574092109931198437554023319184870391435963264528376397404108774474770305206833294947929895551419053385375711186105480291812974665993885642243087200854642300893172229400115628462337005098638488307756349961254897597986957569552300920422658555618087058647956226608286763089402814940935855393142602311067643763502768665563610828808070769221333245824923125274384646224094477712171705682954144421601358942074394353901709120687463286936698219248107527401905597225377648246291502996817977902608707550903412660690755241491824528344351184281722081827285974384047618320478163983264489551138868667913911284259515483005123521643424082986446840645305111716147299466563968381369894090894565431476882399382162590325026750722448465688026096590869394668631576295694392847459691553110787410772462518508579150875092622955204315488343013802546554018247520943207306852738156497959246367084716103401654064858383291713616841825629449074492728311990466373049077947826606300822882208151763103417759645631339289586164502362506224158014734586505667957304919172183359405854587589545484354567414691386852422347932608624277159744413371862935826703499967226584845868543976469879058273383105822580962024278021150579957941759747257835807798991207172782440567894102026319727287944572209145133266288450061579300097387650992096544577863084597086330592015201422728132324890087365894199850529982482030816795378058366598263032315815966196910856069370243070459931092977376068443529175073619039143125028587318222045104652849652746839967547140385293428899486735778488842651488842116782658650973655433412597129635200282513820043494138654882577014072313205648036180395454071302997934406766914336027802612880260150487882833223291510810915492789044583821344618627703872373577659785750724781953038204978639875898302310800872380630906787700705542094245504528984728282462931228699212184477319058077291939732166389644716894215849703803527495843679025854176922832247139411363074059242201234816354148536639935203215838754621625187772968682119543283224359163720691562921861446632454772015903305157154308461706527177638965710585227285189524633981444388660133036345293919019550682397153703460631468303324628850366308782322775134613036482673397775120217613936632687412528754843154992932182460265648981507893184305518764808506866304630051356747165259967791329884759385961877896317771500804410091730656326435565082756504739209482952415417843147174069027604916423563765788034920450019705980670900542698046350840655845245477090378481836335351303345896176698023840317125997409945512861576706260524988860192893722223344658979349657964761055923625469906692649831707777159576816437766455065685116008741330794600474011262007013706569097729340839451306250911876640644069219910944899798069334374112887006254808941159048470625344952329811627176653465402286613243584967835413674596131091381692194157602931462211368588023860633307000339080998359436385690568564727769430122719873869122196504053196082297980991553740854951950182354733689810592756643356788987121424124803341588293622092866566348460432460276540659219462310231986034472859723591031001799910198756842275819852709684471043733597847700866087355241262834479834365301810887675801153783313923051067927650269073045162221802730927114635009296756381959265282627917028552347772629253046405346028175696101317158128030462884590639258361995693039937624741236932300508248231585248967947491043442842418346063238363396207788042855653066761899659262780082897247979418581173458011743980718232585269290170603507037565663278242598511432722366451476861346823659634428906946267776295328064230991767269328622671653474232615832571828557723527269116942881861727801022110424274409544160843333711399223918001958429986029156912075913409530250446920720112579038387729135431635849706722450160700335604924989814658357064943877093786334660791548855367343819531855449216767183329870219542478052762508297936438921376385547958666334538608588275992092596827882239326258696162566947033282982483550473034229242532656440636748005407205495866850561157636811664071085599222642534861963743223817356508687000802716571555213848750139767014640385449089995190965563193441091016166607022610993447731076626598165468452026914686057284998297068075107654754892405153615231965027401345700413854042940099405885039270954000695606998325444922354270118067296722695955828414210740351089852911687744965240863385321038171008856493176397623746896664443579496437269468796733733511076344477509493987562251873113853472443641824563353205501871360180699185971913391887974371097533898648406390036495319640194379323502436640481671016628547936991623993442960469374505482129443164329429593254835616399755967783261467710026540501602439901170464918874358835163895823634752052298983433123153583514154625849572556971492328825674396774954498737297272889661479487664279333146723857974741353963896815344279800762744864545071579222587629312645499312598608541000346794828986354541738841457313666896721461360930080396395450377984340977763312365565197695064813002646545521053121161691887531785494133468672420683443772873793988297723755194945724899924158095458346046723665059917234345783951461945388584856472812811695329948360253906520893321870409488849872757938857521035670710890211840658938948596296187311657355280318927597287134377479255086930486974624142067100707095537872194629520007793433398099041111208745801030155073557252040352993291728288816740633275702284157177125543797262077726017316642208947987981584740077816058122168249436670776706678428366097045181545477570126312376876676974713771812814132128176332016468662163737912780020938229809876894950270845023003649080411603861024836932310998048626247196654760294448232968019208033915058369359578542558488481980195893715532641199216054221755475546847759379435174353395495952776554984612211758318048151647102436281249929828086504606353340929348002359295398487077118611390249965775110108993933296574000084900916908193244533487523824849060368902606114823922272271237015737218389131616177735113807415093120604283623276028732853322930754400755057853385701218335117203276283369884090609678940767484473317034248983143200961111292173628752695840586589202283860265121328687489897844099634673462455258821253702531077104902203727822306633464971161135416440733000216875953112038722788206154854541775277943592114768171496451582814167791757059411155435219728161624260588453591856213858551193064447478881025253953315523058235887072565415741363004204913712099071790272551226836316533776705850211732427047872623440482871942414513319093205026794769581233802381959452561094015573564084189054048535769793128478907727990419679730546219170823972966654049248147930386537043045575824155624938431760356587735503837864795162786866830443970582252598625313883896390995853197335428552428105632180976298167772720100550726989169008617387399300614663241026834922129075348709176051567841120500294108156593733256972650017738275209861167413955117099657933844799542069402070933973443502888482731836891344458841420965569603183677140422903604881358661555924432971406248363595117953631824688322381579456585154509910501287726096772793562521568724012024940276877865963854364413346831099388183204083410964148947624662010434618367139390426957752401184386182541695105456866609927759795932930621493623090480718540022482888302644443579859371208904878658645771102431738202816374145139728336898015390877097752202670823322018164071508922937787290598429214546923005095369556050814648739666365070375875956588174268057074579951301323659434346819305218253124233252092100553049695264096933755446497061346474640272149561098842585157904039306814034932328714220527849197102785271481603592834329355143669782308447908994784264713541193742872914216117640561309637554963912737635013934444182802210582215820314899822439413262610245119731314103177406886939309516241191358886849508517049485320025457216057486802862279316574737577920815752718955824711834367303140966160445561698982097923551832708294459288136980623384647880783544015291751260025820022972061863937430557634604916406674571660208137687989275315150250224813527271799603083954335814623031961596244844256295657650561774292077470288097956319861511600178373419546881240074388648784187029882530496803204792466537465494208373502994449468203831397449650215555354087334038049928664453106008677511573486026314995008483530866638732036489244499205192213922596432710288913980024314213815564687992738734737418781366284328498633313291188114375282654398687267881708021915919967538712156593714350350822665574024142646067235655978735426671913023993117819674582563847715262277558910500319188452812808434034896619300671163431906185639382010230495489285253823384904158706045909420618111697613475816088220915625058539413868874898554143629527323876451296895022232277239640460036090953207554549004725356461109652232005017038149421716052242307119634724708616897845293545910551141884643545661520229512998886061111408620475320108060074306572126689086229549812814488867979319952335576895149437592260765166943730829529170769818404001548322938804723543816852221763585219888885689885584344537673028680105582543551429610750978661058099009004324255714337318305104794642451047261216201122743391234925890620625678806664667952317331334748404803912742619785217576448470657295476100411457046429649742895721867783679993661260917427827178802671563853599704911987638367981162302768883438566251124971867461649891439608625531680684016085845693173146106414680169831492295055515777894394984563516015662943197994971885651517009599716702313328515446084285534241024371903771770452130166030606644310007239683385303346597824486268220598726960971063656459277312854789522463269776143895124292975518218346340108985780922519027239224007950703118393040295480179785774565434320033907965966248079144631092750259589695079971733872808617766993590231088448245394795636871963433724334052671567803373155929846986235800356027285327163486295718122954482264122928318419126607858569533029885600319890538245977660412322417080109679170933235682593721113727371577298344168217523364226111428956231716771925037083628061927477251603270928498627853754467095244732411160567661041752997586402147134878274065177675387019308912688007072272061714890258657143794811599880005025842062477301786398248469542251570261483115475921378831929578197507764646175044327717141036967195269401941138208107241694122582517685111794036016373615725320216858878319354098942605998127727918035968761191152542535959746376010394638767701211146588499319164686447224313362219292879555439227979079857315685815198304663214040420169450991477100607600821475018961756606175280458697611008808764787517682030823094809142805782559562562655179796883292286142725228354513203292121215646273619921448493819011240400065300237308015412163087399969424695067827919481096240220513391807982511952206120217581414817814726655667795961766146977596548082210494295366858803559015811107777665763829981435388111618581275024717217633845381200866337382382465957069741394127049236103795568375347730804837994989711373980990027076613494601114100374721566167171295853394910182786821135382619964010308954098962139348958749704318306424813073840752364059282319136301648376907705983550303041610693452707157858495069258035155992816440924350406321442949146716618559716216666611760859180670948634814585971155779452469692484909835195366076170781937129017999874901301368389368561689323008320814858569612980427451077079845940632922021538656017160415472112520803870622176726465833968802910534230310235897082283598494268138233953915165022022815469715691001006689043392061902020902637318658341925074350941212735488427751668408205722628227781722054943433796183933896654019765095259748119824426992292250224384313235138357573862253515359178331667187292016955444928926876331580288093998129455226010389902082996943989851673441848387191543905938117778138171195989030636285782762845556753199068518676652539973140165459477007875790655055641970544459198050137746049718548641638570912873242369961578846352067610469891293296381556676759392241237651599641163540265499766345779281947457156038432502777328932260866669162997970167835198279394118082015496722083359741714020475775772366703931832253123174371348819401590106892476665538836615451465901438906536163953711641125261531051359309297848478805852654610667457404226249222512191683075707296205179286847389903186379414872435454263568087497398672598434480935604448168576239644120788563400396532393372979715125560263373548561101559750567111262387006159659976398866207777899342103693202643926565866657441587214444732636895111081045620338524237204641417268239562901906886469071345719961579817473561471056966012662585360714191987587437119482085180940650062682476314368945745017694321341935445198610161675117938271103526177135268841170080304880069828353707893383325049288781386388258578620666467247544080573285397020783522694963882466416426443793266619157429988135059230604476419868282139783396166099723325850260692700199324951695572802322964908381301219875664386716753832705499805890820722839811473133665520043469273622994923817168789457341948574273111727208600960767769524636320838455620757361986882652061822482692664669875965197934110052225643008359274376733177818309460630722962899501351010413792440780844260319420920576632402117599420213402813394399447012128070648719139354142177885935774163337990091469461054191564381276369660307939566586076111784987138001990774049005177240532158243209615771489982205147992301065993021770861012036184445905389746822978072217709951245917604819160544560025984120669521956370766050198365243450276714470430302330911606436738543791957271883663597078710051862217795734862126072176325648423023520421701138216605324549746765957533744505412300973333959776258221750367411383864180016268632442567118419473626548072790550968727147731993083986302589613824646646190174564854327975753020849400882948410358463342264280045400362906252330320689911281840896715631066680984607253096435857083627398471069141669628257254000027890450487726509954250732656684871866922705579462734197430226201483119460166373610292187736779589310801560572093963878527411440048607582907029540253522881840826365218164252879518805575866551358908347992395199008335332372126192024588073193342211260823934127159131889285296622951420026050443241019895929134111149573190670414365884490251303148834251021712524577631160596357473420614377929526941316453795806760827840449949183533120879829132693819668516801308381351356038344975475371383090215566848939367428842413644089063216875560889199466791043118463426549315469095584308159651809235717156262887993305996880737246224324463613799182822091230605676083615697610574128526141390941280083116592419297839266711897273791317735704255074637659985266291216413895793745184025514182528258203058167335079352895077504309432357614536344768013191003991839281750992745231030408590405041923419342093797711721639481252857312060417587883651330661489206061234602413484711070042002043437386439964843001879099418195749080543237059711036994613723932103398213747293337823622350784614557710360553654854520959091255677506872406526416505250019115404193616218914908902693488730285318151525212957976635998971451306289550677482806660492400121216166403153882867277344872774835382341713459963743399418344385940473839714770827726553838724826095100382318566295713214308705821543036857559590044806436616622163070331236424005222329821226920404997394740523010738121654885386055999669838517065927746087614329338563876768233560102325711625516855731662038435495091197437199094310167239345424505444978153159478819161368125019766287414432342226734007399765197968054749615931476005758353532796815818018448673304367347124693467949361553236739815091301843909692631513041701708620506562763403909894816384664297891012795643829137474186323938117161909745540230659173631584112658965400644226538183898784727707793489448975335711567919523285648902647935029288320134084576184390253867557939354914695056625313291139335562749918575142533579591438529424817363074449824775366381026729465829962041886863450570437098197829810636867902940366356845134105714487280047723110557813579608840106038061746493806894330132900301199920259342163600015147929101461973463399188993838727125534919727866457196643027832339617259958772002897749989595192310024933436498259571981342389290952510070039976202906907724280648635349189661963757712819352393975785126189792229469489969331112344476410313850950963559686635431029262055268431104783645695851163691149696225138897352628399444986176053295039783197125014238741997593661144594843502229964270396628695103779280618462395396252488425796178522991534716040296906803669950519869563013452856074470011157982242635446316210484588126094804872245447510868400519364946349439490760589603619829512133267791684618284889334037429144327129775564537575487492300244892940818069905928416992264916532488797575806850567723287258828515518168088168383272147736681654895826584646643434195982552901610582192368498035931784666249966781789941380364070028564258098952505340023812131204922298245304347057000997647530821958489613817589951567344092518675437749168497434369486754314510971046673552938703204313933044241105768403736447118747313347821223152483445363726447303128117355969023583073536651316795851503026131682132083355768659631238044095071783684977015477477113453238813269755337017190209310531499281016434393341887118871187262578598291771594506817395720204268333251246634082671635445121959260987911692003030936623219208179846715618077390246223843086919049678970596967875774133143281261622318956595823703191556100143521608658429292554827127521436417170613657716532671191613582544475852280820934026359077280020573438042387863922731418290065026126285152285344072192616313983816440170752691594403157155284996022335000864418981462954989144611361531508304998010785866199583955835484644969313405042283271386610103927584602513526904065160628108527744824616999294775542635292415905907953844508636703903069323074185312994427517364904205457605994662239106585667070454322997036276274254646736405050750696785460604336116474398849322069290392661053713071515957396259108973402356536361552800754454895066745602562475011452705351173808731226115154086459342402697488627120302854072943161234820658016546786709014705973797736618944469236782742148633948179694385123497989555769141630251303847659751997498334938049429652088581725207425533390009417340321007518144076952235562597678132092067262226857763211038346740526765134559942311574153229791733015495957841014994348769329454152663555129658232663479382494229982081106330692746607773319183238670686401539563309255870978387991518493427259167687523910646672139889895266490083723709975038844884136254305319158280240283079141500226511496908431457750313928209538019633713793970527991558805507778719499217274512911270611825239475850574302809569737588224249357910686398216610084093666556838593362205871273522337017165055106550499231979239581693122277657580010041187631591118953005703194940436897250520581822400125320254812895188301651768787842034730103389281357698213672761915556177243936654071144236482429375863018366391559149839353056094462013316659644997603918223792044859455365130241950681112091700525331027481827259371375774095580054529052669011506072784677470662781420698238830339675116273941000547599948689348857656272495053952295713563669226465895146947143760307271515316416618828508198346333167777376518516864666646347107168258942765740354873876842290856788654335893946571740119283886189602828327460830525141860983199133805181541823845871599375779884445255976658174305019301290825657255407241601226023102179488386280503235388447659330024635539287155953167760224394715577215523408078042145384967889312991968871620127437045887369319716678676655344502601923062082055221536415777939262835878558928738477304200931219960569409541478979791487048598717721836994307417932815032907710139687463287112163267049809396212205192697451804398205738315142614848358231967710033844380282968468530220067603765234140890376896983537334764030243157073235846663828132994686371533269082510593160743788796129009867427298168818234364222611866991855444212875652138122467833050880001038135580297981789698388385136886556724263617759948366272698074461135400644731050771442994815640412614498454088936301214745470078645383977116433573741110872190622081288945429354483869614273950181919575203976731173209753186758081434080576784149117046138594459469730879004228646896190826535274240158189094043741175561105697524406570202455292103697580157744603079952041184246537816637287968009033408301640205542365380747822114092932426630128594364106711838448228743519806844203856519702470490413649496247673076531269231476983104238629226723305857007603736172546845654150389434093398124924723925248162037276415775827269400585251059809319426715154772589666760769256510150550077984118990557137724441153543080465692082071963553270268245242615298650505131363118199962695144726387378896338179561176391012867654975088054828947024865833633709086125734472615967137194238018282003857781641274469845462240955229758375055450353319128330882763002264316010524151138463571664491746291617559310090923393292510373323986959184176574910821300084834527961442024119540945259254444715169550651813452513972446775363034631171179393224108135352286771998870918152661394330715253227936586554347080626726078931249643665479152712559212753826388406789370721384804112880454418979501133627234213769637149812729855412550182837023259110374754781739230527288327743286259183662508255050067784221377684130757674683758032696137469222113039055019304563815778194405349506423764323929602024170635263931341124088892175504118209159145607364609198427273122417741572049494910466539666751501942519461924170273458269224801430008575548008574556178095604694073931034698482269164045251049883057555932881931899040536550124142672827303907145013126024025714357751835521105510232261053191661884580009463374089425725510972081862735050511809034232626990982529695674940756703023678920140595213150108592124208384318970310850246323226418356889925271624293159563829120475343523214473119009400121410411116014438381279407617740721511228198373859451086663649233156889152124090892313085392044809952948878934429946029836132290963159658009153797926435336964789238607479111413980027046321282021018384881452159708906508653631272091929687544511905893936034606533642789715120819131160545789160089844149229144812137374165135235857160667369642256462570871455171282608374745159760552229092654890325155447316393197692375950572964303710835581303276327884312591841846349185177349080511385298951384946395905012582554154043614419855804838436188579629847295416291350232411466425834862335279836206755084272637359377696101725859679920906882711889488410003196238894701258036084935561639487816999204438259053190027792359609591701188581705696102525041539557659746631269516755134031808428521363888106898244122913511590909801523551174451712984391005628657830321580698853945387774783600545920192721540664077142008896541274293868849306142697304902696998091644291230954588449667776185829958115917019569246974997568720712221680868467776303222560544386984887246299484829264121972440599562783774817634763074116075030766761555044441785350057271570164433856125395631426941330069359811975505500185806282940840139268449132332115701042947901118849809809704859487217366202972828063946777614231082605581996321185925180743930378841012585253023543366628460042383774607510305894396468167582858120469488642083925401715029859507949459111558973831764581474365496493595413234797365817532846744007841371504376264378839656536378189132595124425568459868345363800222379468844843476574296465031914844502213040489786109534972397895003791277364010185371744410340911672044397402189719944717694945244900481770565177391254636176325351642285511553625185304523514374706178401868862244111568536075675344558803118326545752543010965542418754583708076314467039290929215126424166682328346794001612397898928595712336513273707713323219725398339792675030730720696108488108502056234520009928014243205238480679181331621646787133667757532161749919956812528292042810178478054002615482938505541245720906386344719282668176129733505726037749518440893807341613084782843953493277774407019734929614671116313274063679399234124140273018036554480959363641375744488820861835761810315950613769506035241492070032997362731352415037842592383551865202408079820505670355442379828501021875760875831889245271397387851976099062703442391635312422710320115538789660839886736351530422973898549872114307695568710556443684795279383200444882765374420708488249733965654163280851631515882698844644331227989070918951966749960561303298048571394007173598325254768026480410192107784158189974858512455313859288218136104753809870544011354170490205566767942708027295953072199134562157019548933821311512817537655215903932085827338818075305164574252622388153383953232116513601911284114036709081975818913097156803153187387540258838435099243091195067722925908184070478717284903188201215691778632786406240336132528702386256206962455591308464089525144958244976032556409284799666156003584325164392095750546104668033782955054839593229889851130468305655423770332701096635420420721690540756318328693359141838250413523038635736556711360268163330721189398747336197142687867842051299362616471296712054295371433060474612651328644548128491244693888252223130076258410149682756427102182885665075406439236169427904220809845840620897236526067726037468590258840156084549442351702095979345296128426961716849010591086038807416918213238057809790073015544655141736161434314230274454355180616615980657574358807149013071445389704054926032080360974280844863448579886551570841854236299247126739652928697201853089243986906975367379035924038731221066788836588366586306302246344518362902840653473413234035368358800667276946842453126070709109395106129406407259598621718742784829846118952741226015838133417207248293902759292887985986750527221253404346744187426763320083145093284084173662275348785892270622262782182410825005971831315400562971653708325169237859777086840776968692948368201935256592406393445834976155422758586334558705703785805514564279388107730944642149404253752268161616050686851438219569075897293152394941041354777611407927891806549863476808030572953585633605943216916913893526634515272853795505753675181162680132571306751379298497808333343502574633391080918291618169161200762299785780357488850833564380854674552928430412295845388268086287956601750233269946371606278239789495424720504332776526069238153087787316622978049052235194847152779372496607828028685150342897336023781411338030993643828910057552837683920984266855250882385583874622767014465200035760506336770750776574025946840395866719427592229273004433109987517076619910600437933637842292507817623200268577451704964071852972503980366372486840294425897044972546580702261952327996147598303238044765423880892869111899602721969021294944026508432223104799387048383334449894093919691232154262029860765988615310167995996041077046526036917576594026087029377308762967674047777784208584612366059209408273430358909984987958643917390632435904784627876681241112650328788347534187339201970517062547247042245892034472887148481210121859990843637406280984261834431675098675094958278779874256857952997771850905597887478113134825455358163742477969039069435677549945444985221508160816878116132552569855578611884236289120654503890566490556584081298527893674435552201991304481608735188763218387139451339046032337197916815528989509137047389668576413471016056648918367120961608837036495045732184764573565389058292340252567715601657914589377523450624135355470610968440190630468868387043308603454482685897320760316023822280473702957351317753167524992511311523817364906717157829938149743219227563775345845918676784152568380268057873356482272666036121076291715664755724555570483174123313547135519602885206426754463883347853506532435613652168790890079675309473362665664145981506260378537034577176872671875476653406861418275965922619260828540511327233650837411845747309758197066132340821437380855028034647862565325910109729234444637772646569123996754672592368374002172949473745007467815622010744980978615612316343101860144746841501523188391535263966000942936544998323482308789376733188104735129254038936339108818700048287983703118291962214425168526531034143259745282444755946254295196469144284947288793087035666440413776619401361247476373690462595202719078360730913725702179395042996660713127257669446657772199213139875765746807805236573100726149482869336690449176873413435047207982854213170354969940386158350320423264573773334807033972176763144562064983968372284753410934034582579327762134716948780290532508911935769078267260279763014744857470316222846578935890856496542248980161986632578942685965251510851597015160999198425631298521354173942048850827365592968713107516729759506713311829064477234948037255978932212885587177875704435153502062262993419128439434579393177886211893961186725519640940750889671239605900271524793933518088389341423032379194836565498216527521847885365492762986458683252372465148016164846023514259025906077696666368478589409071273138369504075538116089627950171325314025044288577187007650104462872273489011329119358637485718325792088296172018296084373357209871947116847617962264798526633617107126191498057477406328548587145009456707139124992976539750977624814818562578037352222321894386315138178861623298086517707848063332891209023580875153012403652071478072274988669949805386850221181679185619309904091084621830717208611052289158852149083109065230558908998201757144250693584843829678799335605617093830499761229446298606843138817032239450772433284032474653392670970700562882875840077187479081591294285157501432935270107258007898562231216743631028169436136020714218329642879849296302796945457447828875908076298218514618895815910908197860059179275853369007988829067833724324908442316268036083726447718183837894541699225378445932570187056638980525820923100234890622069790567849510593325059247477260487841686188011886399176974286990942413229819280481875388295350466064070343033567620755815457324682623335819097459357366813283111755204604790004652019359904851770658885495729483575427037581532050895204444513934717539969454333787462885875371793349357363805187858790047817607955452506921821524651841840660005878303703794360666087661622100666463252015365220045375966420152391434858432949308691976135394898927319773171570858827785506984588141126861913741574550384206707068173818216567536356009666375137819152174413220369507698690032577000974390788044124720189322591477836253384821003625377398778343082402814333469679258229985681412561617491530853563855879371017379117745047567073539915835298556459147109144808860734809591045731109378823228555254579506867923581530464983385314115974624273356178740286420191424930580757555527748423526613784414756202872538280536579254699042120888340328487893853865763641364854584390264930467810949533563634838000538798359106892311666427357165533981353738690895486525738372542523912575791396005448031684195985024346919857690034239442209448016486536522101823043378664813752449195696198846847711690055005020040312404061790333135301015228521163489695292154196818419746608661527204190148961250405151079159889505615835046308331764073330074646823496173607682469586408087248561246648732832342632666925170555647960191313809990941237050547958662342854941322972023225409493901844940347316157837484593480516411781766433521330429953545284454669208023978300187408284745842087904315844578837108346566409294645325179015225714283379654044476377549840891192484964100332817458744866320694373013207552108572535146393352672481540741543564274941118828871818111647807191022498160006072351530587400207489236482394198025990030190440286893385928888993781801372775335593561927913106867145198578339520945898726045491532919087500908052603926699313426326473872505598346534859191233158387974922472646660980473907049528548599784356453746620467419682720112610142014123131280150713364863554052860146589158418211591704271775015269376744996314841781309072786337087552920675916983000526129080696285028267311676212792826045817459394728405265171871795801023384637670506193171591156449080562347841678135817744261498019634290891863093136710626074539382182196804648916886162379237133934611530191456904688131664180645750326785323016021630815721664637239754762821371422349482972290138468492508544089624721156809465253048919781310459457369598326765529372370099033119764662483864439989960614225660481417413377078664310685780557769175592828480035021155474784689558291004937614936265626238231153775336437480941643332920068704004511597419482122245963491191004066301877575438067580103748337420925841896842016694674212882610522246677354100486481339437717460023653911526149057825792663364939885731838740053723850008590617034850078780329972629359165629498511482042156659215793728439159290500602235715893629428000391794267094899173774500627548117916816359068906336646420570228107908716801045185831471999964350036598183837178774765030499177400525241256811532426149657836684709312866641998823121973434546246174189319952712710338778142570407530784461313930791475434746575031687885161786878381006886729952743539841284597584636337423202115388761937121036031243386494111538300883265933067689413731126779390948726518811525053532138270104820752723902426855038500418059797825097319673389314532775151634658606444252500867525311976168217083929126168808577062682392338841774654446708395333110934954010942750735905260779435057903479749098681489063128368902647816496135829072520106043252481377020785255829812868897848033013312539193800477598758810689461455494146724369978774660675879199897898565818572461476925024023070013144307313059785126734755996119057301808093674212960950436786567397783357190899561841151709504179460668178276998232485362501606889117641785609640613620638004670728008398633539805102501035826156335499244834524180697887044740558436755579172251580978894178033198890366854535625036927306016531925542373328109591034459314885032783247527415357892115839725316773307493136073119938868688342665246857528500622231181895274945765888247409127549879401588065662396631718223950855338936092887238001139092173239452730038977672778955841687439444794715327023412116979414450731394361755144760042966936788090574880167220036500541388077827279838357378148808257189057693633547469689703319311622096195280074023459946824695834319109748430239612337901278547092964680766567307754141156616166675497029201861190786757073368321241754333169606457455208451585975394008787761635230119800765739704462492467462689226854488891615122920121513833074786213535993876962340508151842593582514814456513707851438040269223861008050012483341545541679781451587703597999016933334905928978076728287245903191415263532299833331929583124371963062017826853290520372486312845192262502325426312694646134552549050237546562531605803849920424495412659330397764933773208723241450814718657548921365455618095156862565313948882070732738968351976571978964702930584902029633733921116772356834284913878581902211871651853665997624287727263965388151927798360060559140953267583632266713255607828645479270903643351386373482980584747876263915229539271501769478465016723447403233320805718816023724998463394435728082096461744845997836260265942137421618692696158222978325903529543684292975600993399614613166370916485391456836754966143897861330689183346333731504445078756770592825598516874135609389338058069802166674931837009288308671527404211406430043256100982564099836102066794485112960930105089091245621359212530986244782602245867561955455715298585462737094684558188069367847838599251770182284338026889846079328999774383579228872655829041937915041576737319244877307747279125394128927392293939833981262940937992607361733560464227621944547070589250124521481217141636087980454465707946211398068612074000836677127241982927388690921934029545616851928705220666122557912920287949965536652367942146105406776495209564751449877226524711623173893791939370555778206147229544237444986401192419521388942406616076169179064281118150818419854255267499594310919218035890831520818486083282328010288182750230435476152105021367126413507110375626995294712266666487581753633620984391140977233769918129787088441634054436831381216939217942101896816053736165973678696432484412551541720573979436627545039860322848119645291867138619946859789871842550301005534361008943526088511413281622987932236683518622146769710745333227019810858630819714724331381099931149012098643027788477735043494496776080015055626048528011329486128251333086361239418632219789885371181551187894315282570932291631435301714315701607611423187718745674800232137700591699044685817991285682466034711542560404157372675571882614734853452444609180799945831734632869059228057132111574149209396449257867247734939940697253112862866055640121577355475454935635497591998396850049117040292040508241543245801942887374427252743072105765468924866588245667915412180202950223244412924234679584026819088865365247678013460941943576122118254042005848648894242412480639202979133099992618873290343032144507447721142517794927940265991968259801750688888023151691189148466624003198628502950238441988715427349920324149443468754506793720786195526925725882026703849973538047918864554538302644712934949394338008608476472154409058015096266677274206431426744668002887179826959997054906976077627261397152159355570739711357015142413530562162635311410803716227036752568404351803725260469690030718980377413063038055022451219206509674375641884496769220728090836794026572300331180294796561524141611485685273353125461785760668166831430152512316209865883058295666334399609602682919046604995394655684612796315647614978228374924460212055354540351173550839770288692436713970707910965676105533273726428662919146938106968614412221000822783152020524826181119281717063387433990693624502309573306149702904301711211962285188141213565879676930273836797837353588790455391925818387082637649812156397582894327039960716747249114385849810008973878741400888565198623104856876819710820571859887103155980677754796366078946833797483945288203683203810166280364021303887760757944893047812472136516140349097419875483705444951231639051127392034592213763448961252898072797821607337844042918517862483735229680789524253616229217757211514826985963311935208026853366550916213348831343060840509171634719326257748625738860626511190935392696328643714014097492735246480174318429761852714961623713262867404116143581179339215067553373245018602753845719476734135441518721694560499881672588771365024459241364336600955494291497172571193841568261077783580754021013252171124247416167147197157907336359254597156442743163523713720423124999463104201470641440068414713658966989252366120524719514232065282830821770509814403880530844810552088839977192645439536288450884490515193948874746686422115537553933123921872097661258610395099403655670577551332764737936449172441447423926416722724090054416390921559929906280932683291370990328082559835117932971994222525461214189984199382315243331625923658498025125147455739046733297282973015881560503210381132897935379974538377661402332633666576013898865205075933349720850761249711596925958821279383062563160378083634323747952022042295020778483214901374467379861866767531812786328275913096566911252198167791185640943318074897024990404719033180087043463959371822161224220957715233803612975852306662294514204707799883758495658618629921864754249142187921823120075962228101882042933386353871701078803634334055189837556569583881601071933090925425633578543649749470690112159538917961547852338491062183986540895083441731129611756511488756327806585522752662471891738042796443072650552670320752318379228138394822948332963629929020380140794856787236602599072313866032121274220457397356103239475534552595265500439219647937473627300156677655697031505245473758117627029289492094937147980769556419066853033667556659348890428144015517043734397216382104626732448705730002532030337226358842068554171561298827630383166330230299850673043917488705885808329690439856384534585639912407186036319756366938216734549518211122011108580848985779092350343315139057865254495026249031025810678124150027848065610278569398087905928591326297822867234309169507525244817624284141160094944088792797587585750227593942085108696100736917117646675655459565398739706898386595657481682208448104796379306388087585744910006693831862723158875671188998486178838725709674710621615267538486012630101702558388527510204426453368065897640242283065206905881259882293648206850399000897366024289185673003001611615463755515907688513316883994447651353883810567444764205459021080239177890309473806891411075816539771404118618996766528244986877056453688928328527949049475234285272561457142426449068908052662395082783360980522671984023057234704197922137354454133234092070275987737206840329159275826035076223892969278321444079793311952463828897038177558237625060729117764632808642516074273330308151085230232503552623381876166472677428812515142774560538517853463727556660451308058156030453391111991137014223449006760955648845343464387744275774373841034465560836467705332101681616123813832860338255548447605001640601065406054550836589262060190448194708895270904450227292537675655457744020156865603643645889037946415147582268647453038586622444417849256255968061934447733135009981767171552792452092941047342477713991488526698924629809333894353472436987644143610590805654177805579203173755389114635986270424577693562467237209841362124070246789206197212673230173797604506192478407868768573086555252898548759357739093532626553144760875621814742455898516642202757217881873831775532052577228814008861791708873164611563108817527350797729452905726193435573880674270834840592167474655024099357618483928515420326163759307640945703155394333576284252466848094694470416413889552977917296200395921986709441679633395046773781189550097686403002714573509534256187543562329786575120190287384350442126324024862790230444645802850712833794054652907959889636058972476118016453913576976593678924330045093145452649503901784000069354979754741184352284296817563690477748883063711692262121852832722906522015085653911558115043894682102808394001863804809189882312298996972055051945132688313076948342541162168177167729692486048014290044035282728374907123799648139944228441507829228873243837619174643876720794785983884996420211548666880461736125825510922604115544133232994866040161641352435778600627493755992109127503387624019989198439875564693601665697422389607820083551916652713178629168608763244434861202022159720835593933131612233268567404218673952155929413774549511277939908210283081390442238701705208406406252473115447035530883149369602009721830043874715907577505284357933083601190114725501325494592859442834598636469166517932155828280187492419760517744216952655598955676870564072863560647381997920604228136520770624887500250662483017575391031549797890659081670574666523836691187132540760926685828774651308897570926750526778736750258369967527495080423149250821144415307321540424173517612007369667240043061433695244483991202650806590930940097290144151155879092852014134785380936875371129639687790010246148314198344613832364256750769348074880253570511327320150668994759922009058194148486526035056136982832846158406517483258510908522602387862977031716711068054584494323993875474726504628784794414405554780127117772145393282061742333968963234711598873179185311772938820161568123767393184683278965591976099031793889432617646665309918024469631851623823647952673548972545429715624909288615390825375462244803169425503683005595881170237042255526316901788011880013562332909117531854296882759883213141954875460136780695456779497346185438827907984318481011880469335629224413668390364791069156159326653402341979015603760343627608830302528472608892755263813256706854190316766084964864768561709870642061619397212446734946438622483266975566086253101789584711425486633148165004629659193965810443316488190383562124899182800489718735300274802646935170356663741100889332743616336135203309198611465985765385913552597607246114562346937741269937138193634519046536836525407774198918423657706964168583076569109880053548014431420043162891034508105521790739598159726956791197376749166676114426443955232353113502197944297154571280208904149722014517659228231787981304844215795139275157356951799251784644662088766973545376089177601016592613330989483948593391854376933163939510631289997378429124432482910766213135698763542914655773665715418888698531061981185529837450586588211805745908813343865865769792771985909498361840409467463091067893714497858430959940727118966309920253835239166402367032938881646227718747111581568517812461756810469477058867242388634672359087952815661892830865527201136722165181686895826660185838424818300750310986275829650291848730720159015013886263503118611676901203371349798381992403774893610758626594309933159247920843737080939297164865933894162646376944057747956590752754840740333200627384745164944480647853738746615640009896422353821295819322392654261259685084795104494159414371326087245313518200204306218571215960795141925179274869369160968875593287166438862950491915173090388153226471929320813662288064357948382886000381323103441253607105304415070845478651718039754891168073757587395346141979683878555983393285677045335333085154741819974793975094398639071679767648906954233766737794265965564482124403240975102131619634457346334997324744274897163852491312831926869504101070412583125296985291403710923188476704962281962864260150156806595340127951221414661902195997734291488938907122053991076640628086900800431366179095135152399013076883232674447567157185059990470115320825466289477373418983596074329691081854297030671204233128517413662728681504693484758899935158234520280550678629960478710560215305499489723135343945693270005978626712368285707393448887230830033828151200779164931371838306134093144098821941850437593006337849885232605713158157065826610586552539570310506055193161791781959756583652901712923758704497591142139818838048199025778401434899430688487312326413378690622227074966527069571280196691307699816861606537312437484317516141222715969514428538087772386577312985028973845326232698544656401503016417263387511246881922699550434476813946406475323914758291658936261578277727252799505393172372360209981613237030748092708194640217102619414978343926670276251546309161032338764774937082276555403749603809256734486478835099297306766542112269295545095134046105232243075975741638583579387023314955928749471152774655288014342188983300879607973323836838978900327620557590933023724022066318222007639616339378198892668309188157352369726047507319345694694938110516717731243725488265277708233697098474349476099964615156892289138918617052318071107337113675321618260109908201669931234031932729446968097675905244342090033488774513433906593225813483086443975536624306453057841016882849906831069172958204544084291094594206395696859173173876665509195950340004774343223800310471267801423804463563573011102641529171954011678255416558103484136898443912872139247395762711794206991180829886987785633060227877571646454243966231869902870889043686943333256112365511741677796732158722422626398064973083574774344294171910107196075496388962536620235934948958469477596922635524830957916600919719775943851790723161196641148711542635809887773335159937622988114340463728274513828602826639917609472234980186586752807165452820829986079848739547167523045161893868922405375126527662256062377009656564776523574250165668525825489332468642066557095952625958059590752498423843757565110626459320530536034535954354096786198735812411395612325808667827892077089820842456184594705648292368648120423598573765145180597626156466846364702691599101654847314736347023419955205363745329650512489489093058466292874243487693852567141010769374964725100402715375358670483522484726335594314895707539448063218208927949058311629017692466959498699316876884722706700130360931462843821337088887225188416663748823524022743198190123706244895579203827172742366492001463436411319178108989692745624015476555310237631882349891395149807023183181060754032426164186813966450293900947288348210198812571412457853207365794944454804445694260463615145590922524070197661432851254681236051406497470872256382353408841620554904743425916865751179353476510513786411015826207679220604422398921299591762671912722325434355106227922829992448385806665771373089374039212138607719699651648208486579135481113462002734646794738387892267964724986535520932978828663408585716168744102799863255518258900339989906610743255366282513828088074347973216888087986478277281494673239807260403341691215929488678008686662589732083419161953888466874625975125409873342889787711058584228293559978742496227678339402123655314461209660096149573837976525736482878443452599775176654968964310580631497427827265743651165492207517493493868540088895017496551304747399052585991799812650232964532299911438108723783136855372658120575160583679840831643267684431393014089981066528966363367973148550113717970031979633642425815062336099039983296861904662020626935936482227736236902343118399935707403557379302448059038335975114006425075895270749611537962952382001414732044096408118040289648697057301503736430679674815585709354433403091932609623701310103553151941806250300716121051146044838911434614419121765447056306370405025564766530263423214662102746738454193681097872026696027016469459110720331439474565449838569802579018146435130874138229559214212014250781776983186336498255225021701983937596239520304385620832913309485603770949119383949712604673337245478680933953150030214512849873591399720468531962658933057376605459506143722066731848661483516908116625115993691882392722132059703903264789486605429157681633166076988798032247397892377601429940500779557841341138718356972966346545768425973141521756137547512154576954992158846162089233844629296189295637128510081531087861585054349244557257878490612051319238499929453037006113373566363195810500046501978652261503681232141152304806615381040921085628820358888517040014310461498196068731351064583908797242364221647949448209007001643791511014766192906099923348071007567573390473257134683689642803583111904585029340453321092127397940894570110600459627474212669929030996373448540630179084078630466975360926200482672041685199650268850050128348475890670392065895510278075917781929482089214188129832911022041083400259623419799982632471122972931313571102375943501336182289120296186457062595725357223914573107065803984801718979037723113896486193430845322468588479301670338908171843033120296810713271965742780570639224941858369602104742596714019937920016802135375158675821122444338450551222805382574089495210347676121487663944308371641804996491203442790881043616612223417877900854834553090357036327669242765928744071810274244199853051409721481287941367042720669830131226698280935967993133919620513310087283214432133239634203041698900903572766488687419115225027390148678779229830706371152502680296830265424334412461671154743084499124838739008522864747558133825103118132008741744468250524183923538325387807413190762006819050847739215676746288195116339022155443963225200446352354546345255462733351316817897649524412939410582147263310056245056074028547449457514504780590387763997259268305152906434092354864970306682340043984260762803713466607179072061298959861279238541393955989273509741500808470336827085873433641375945007862994358563480924739741320078504381804822076265631441858019206454190277598917184653330794553356507148692162658695268535342019134265887745994496320999230708493181030299915233662460939414689512182305103836183362757456542992269435575535974064101865170983013978595337519816320533028331355771726171581867227434298908079495739816604648711449625611250317279640827778445482406570267924059095469012913860580515494809496115281333208480474633515189735222862076744727352313504733651051893286428658928589353294058939626586721072567844646370813933156365141570657053008967217578984937627700866962451566920031997478585258478937834639418388639181783434488486238607438091814256254121762690542214934245159909825152623025595594028147157921028024270897422063293080202038693629069586430463636520874230616385204997886006715818287553608289068649095420407633108517383253260716765795515686375789807853609364525737385465255789873657154134896333972180316069152900406816372411243700505746572806871495144853308970012372307863827046761468241139954239397901166851162467422282322649814591959146338181208217346624938222685265575640569455244645045571484969338940475504874603175178817643529858410522437194370121255642107720698968475983218089244281288400545904241986227752082698530120287676289751661951355818876132397380198315177257115599741283721390244746605118117448824029464413004161695281152968199986809102674998487039169671393398678921227945789975913819350197397197256070282718589427941590711548690053144900561668934682919620114941202146638267059717000714096226285920932752058844473166701095745880070854263170909925296684063267130126240597354052323519064390144291618718206893408397912105093722829320396082352940479912959505655275225099602598077871018297923149393580744608153814797455903375037177376019721244486589008820182229679925719031128294376670656690080462351649723850194894807116827245195402794637776290688642538753156815160009624550913453916265549487987501384550055312377881182403884030023784041005174582706410368623503068432462409282308200591318953449094597411071391810866728799001946389451351325740126578118683561961147443969771300175097288909626182101719538722837111676906865346988811533515623374132941037906486105142411737971824702639678171002127372775202815373490321993442531287747408983090913888942320237563317043499849043084497954424649717208395041127275880524399470828385602071906301176675686949860642892115738837222459605334410687700487545189757485925692872077184853587603884866837445778525825033955959415909052409849068964615138656975046960712704889795683173167552219983501326129246030914337982089496571100833308419393120492961302891269573059900698534502825056919805698969751482955813252207239846557588559667223842237243703973075573370262267398425299835215209576498310074983333880683750371406176805411565896789270040491806909910184971186006237813740363599367437878824457926230693050399948605999953896254082913198942592496651191200496653208958890613359648354829089048846196868030405268914246845700279826156709131712319561098888578088799869143426921827663852873922243323812790514204451167437543676895360790964852875772753811166295184112197842042868330456771281611819418011674880318361055736387575301686737542607092528981889663901078873647467161411166382784493748883948914571178509093497775777374342893072967268936242105570459307539025761404789112721680722717792924337626454266215387381858878460710779882667201026029326503275567327657680862416636703012953181008602642411723403542239990462112719171478564020913204582886475201910138073624811239659451526927886165575767664216459046503716226684782019207762779187228247721857391045320889465223636778103885912052970559810136315463225792665854180058839641211499348961670942656825744795845726619519911600301036846517583091463650458438161055417761565138053985531543154293042539069576182125544976102165816484924575941271846921984412281685886565122906712082716702979934529922346479436202184642134229890467307618659601656847532512704718437103891079329739931376707220600743018746602800284309494594090518873864507830886109565581122596179099144725319141759080950663819903186975147394410053806658155850563282405700922453742110679262008053170021263867436327331355724492776945254243244808259613134461990357289204270958132308484273247239114735462548922076921527469361022202626090856545874153247776309367375175321273590464292887745847424807223013483133503861145999623117346469995070996341967431054332301530567323074781916102408703365293287596507423261290273682918673651233308439892819498941257737388009597717488547947930419529014931666167394716837162588306308700048815047319914766470478499889412597721083126362921772826915380486613338111207134847106504322053532707578607563264994491138664858169138600669736579811024488214052125308983882049877719926392232977522733812917477576667761203068800538890017665499216946424567358561054152048599628461436864407484457531380443689284616912442185688123519358742048786393550511927717471940893509674469238018687331216542589511939861254058571590797245708672247347801485273272591913140669354422254667993644223071011745227067981434485261302617097815084773181467059532014785290897955265285522586328433131474048125756111022272689207349151427490542583180276701899382082449983021035284025900997589876549799610850039579625204264087931224019738376246216607577051546118489350601217973896644634668505362519112562294218455155619069809962524430075305148873637028727126726625073849772576039095520512797536446913154811110804859189550168247836237316494133989411031835598433327158099893851413895035475375024946048187261828594048438244260404905546045163014239138135442127583007262771768393600775625409570586018367159974816531037060499422751135826203494783072816143861018368777388213832564309486581002645969866432362813220055031825281632783251090288296859951936640195037423428380897097127614686930947848649524982785882269082759120843096348668987594502422651661785677487853218322140671259045544963179479371030678856627637104836237647708698492876193292955089065753575345699561756022912881219609389863476690040840216941502313982342126339801076912579856230942894675516322868695929056255116062208848689909972975988652479555583820190228966078464198424200922637158982551565045134678087096113332193953209505642985508139172073869384301035483814896757936000160327948314481696524382696175992303901959093916140121764355276499595237152004460040431076294330187865906655154066836831911136082142410950797118497011535729428955610805953928226625044470483300581931802049285667983996544542970613759852445491074170213979131840923100608343657744576724111917270096968494768143110130176069753154831724620890857488322619989069829350085904915009685587517898603386093847258306238958446503055789510653366352372673658717713258275101439941726215266485321063199709659226238710962985615267262867096047921460436454593905291396420712816835182619605950663354131257310322045627813130850822788150866190588250857073528817501315634992174121471858318956573501006596707401444231803427526095649763563414071528727487563225242689990607458004224139299139954120736066616760023573845222385484481546397674624019264476818664482396367985670986580343532954140394566532028023749801704886032591600814914753122845946535543921344294126549788604313039493477844988654494643920041588749489089424245470821087291984871246221025115789614049891076281416212817678753134490715644558922582225386472413304457383451889848204772718939741908973741166322163763691009330011900390848113834044679197429186604378710469735561366135588655620205743729258239881261356364554167068468483834473761298591010485691334381041439502930096316528424860527827908785725016457280748228843246859787710854946710768353526619432287433635293265172326806613820540591413422747656527974735668229692301100358551461842179224038484343193662362387219038640351373462046981908186491225495054700644775971683850838107496207015411217339367826019599329904898060826058678226578841363708933992881924004923265184407966425722701767214245173524502782571180616845204848726060458744913253095894869579572641733154487864064616968547272265083922237141871098898047833740307490230884469030148049496079126251401969454687841636261341943859715085802317021579682968452455197820584335126207181255023670419893823783859603191339452243004539547092108241131718802213842778002491198826757525427694743857851753739943424488662756930852898506346981725064209377545159337226775139753118528937785188569779647280032984521752655323863788267654862408746984347711687476962075499182580104834104853571196008675807245229778517267977664090922668313706314153117485475294628935054202754063454994083750023950361364393870138916311221451372687488576322198237346136242737761241510894075170350889472495000990014297039081597335584271486252911570161151572675114230984799966797818160738423980829623900455269267078622430873316911081657079219101181656163784404625244881637121865875395518681808257508661947687729214706820264089175050431684947586714141252511089564751222707021737316722281951140938189332479896452975911022159426011817820028834704000329065256049622308834927435699308887171945587150904826961599093321277453903948454689822879604956102741461789752690197227925550025534392069059900803996728646058419038349984466743932614624963135023042586630964186411425397243033330764582694445318581647603604362435360577831307479566557584351715770685582107139222340266399234272544459347167791131431596554057350497623365895029924148322843619977640216138949557056413034812058933648418226013958245929782013573346252724396097317348719551188251120528399777659675120112780477615821817230875047341995737630135252549841166881120986432936546014609305491781569234324293034169440794893496884616811981462654656911744867530891711818869252207192998190430846486860748053955416117024995738945002888518420782222133765260633399737787744891338170185019842125924959546156501258042033660206100551792556445423566765010166683705983056205820475348105643045212426377820615100011670615036872923331563906084448738930450726547449978265399227315323730586080187471716839222392554694951405932692540299747406575079986927511925131905552117074782933922671215200477660048244540126656957148817074823670112603744993921207699216979696440536734885662956606097342073366520732784185536569262270200162594190894049429927031360488241572487477380557721797750710782084534790919638819722357154513956241526711294025136824131828009898121965324277070416883468125392087872382490578899789968294131166265701969073001541522841949516610379281911209335920158044273829321490550999857034787324997877230057518730058427224173684989798314192475125864158770142457141493012781925150250822099857327312637038357495201902234119131532271013871470314001039095981349740607254651208218917661246111984764749050039413560245099973501422734492780354835648595410992705089101364614773058034295094420683189244957348925966367408636243673117623450165137291931340080798554574476968756041596062433056184902888439482114203521978726880311338107030384594935364635185457102361922659807328806435343307410093522721737203539626612120750280918832005287788043870423672106346653797773072236881038439485566565725240044723066631198276092974874700331574328848288930339989757768189499204739859016402950222993650747846371504919301826435223736075817163248847092959767833897376288010060929249083343156273019196170649460527189251109969784323329936833971229345507272369328000350122198096026557839420597911764242164561594827952168971764583464343028464955280565447578730165216560400530261702141330612368913274263789747788586447555456429605042435798227634924930855230197435092664620343627280641515264090083229968603891511604724771237074769693000327717036638103704212347509087965374493159957595937137905838883831230370517121591247681412897249754954410119905368493387690982183089736239380332604723848843783303325498718643568117470495892464888812513241038763903484330738766129545993410140042929548246070923474014825172997136821781602512806488427113776391403918470935603822628182537802950308914418111793167369396893998636418506364455394321947088958727754637213349242186707531928899451960411562420307369489659936914619738452473829405058012890319036140882903937737843025616656590654712319242854360983467137338861560503497697627509843426509865086097921559072855427238971471381315278675956013993336247377626440326106013384598242200770009958976686259345168320869625969903305368528086974917655019269722241547272229394589484622385443395818746471352205190484509461221730139183007959620682677804964810934620917500472455294513715131365515467831262044713802315972205956684441642460699906599323549714640434361189988785758509106510105518872904653000765922036005865263326680973901426716219796939904623037040429886401665266942383755530979977872439723182868454732010869745757971793309790966480800352880544832469923693518659805483340200374083746350248537092195616701133768516415894625449733635199771054762066795359834263399881176052021199886216554713104125064253586488668257869225052120430551536216336758875463474826888742116309245217123785564290753207175296083893629412648150234873188360418030982544306749499699713575938350750614920626846155526518903210975150719885391116827178533707343181857227565037288050733672355286698209462966772283788998597644438418306826189752843665338367933087991469722086419976145183505281033045834182328611082970947130602440801018489613909050484506949549190729263875919641187619833502789255148367048884154072973690091808043585081078548426967619474928193871939831846956635432874065615307913873910694744271954077643390638101074223717080130992849244882121978248655673859252001617291469348105212304108892747990382522719011837192604559169350440540348486347485725967279682547736414726833202326930583065483070333264920856678687601619141106273330130753892739519141871579238335866837200210868741356940206321196037651860883446844809200475653270613752339860108872612055822629532595973253718909331757688318408405921557497747973888858869177093179384779489089407627471381906246611534756649884030263353050629820416063534805857403120099968949182276145938353569801555435740281323853191301801954217021646652382635355117427196823475484109659306440259544867671114741298201302188396149719864214262000162886704694641859287273775889246021948263089290226922948992281153835543795835247265572336279901241235924584507401638345252394850172462542118723387717039268094931078286262195568617347195827948493083820846947188023224142354698181913259339163656311125488925001683119818944271345001747291955138324279363002544480868944947275938891601113366010919032471645167122054095832928392449686547570344659418668457985833046733177314557023931252006036767036374569547532833484717799701527794293541155833334236265731665062872290918641700786392342575226297386584604302332815445051098100686963764983594026936632810092491779272806496126279070080364330407616985136442168986775807247741541436986891890193747976353413351138274983148132603432622827748959682985385937967173085024030402158190339302744184909418886429512210531266493243945237427797698422444300840362916290572297438650007212505297915259037633147130312119845645798135140443221237000736369129983011187048745707307597370142568267575931510871188479726037910568012594196846764201122810084540201212119246159375179867304927477170483933126177972957678389086640906108377817603835486596259018723411759284830700874827927132502076158913713478171372088257132563155604019741790676915342101595352340050559956549351574594559491491292701981316309505303455985780002158689261765229972286413205469589047711193954580984530580767835732580865527843630961782984727785878549361504144482795358496619694087348024590596894355492135793448983906755391366394010354424943811462841893224484800252434387901679183087523589531761601830752381447798103161842667250254045028514762289320487103604533343355654668710192362488323205197839052865951037047735172419831398934059390978587003252238539708464882107026835052301540773053944976417871381635262545779537866840138245745667522608331525028655313043922956231208760232501884046847090213673540996823041716930307465844375201377464720577679780640086789063920891751574845397758025205266125087953957834346846465545233440373240132250055873917612678926438206625245764696324842704076231361132066530516547459150951583374813471697234537240354703236218267741006266498667421847737366438950355731228765689169669537270526773218005025082154523102845119637480720965803035008927486999678692174296926738929902255146090418768221218018783233160669184777442884414513951748235856952156559308436133416837702131867675841668191046748136548323217792632468926379248391869236063032609610777722164488789695206084076109173194400866776145545194147579143020031289337207662026728491427108663436087436609693723685431976242132785968182263330001275897490244205299312169495972233948052454967065093343151009481237360104938906072206099702263972826879009247035659972499592758579036985430368885286682306553850851058748385552528212440889810090770433091506383380703971419638949757640830876417341526497593692585635865761381814314934623840271163292589256962691700201579144295089352298103123870869841469871891618813597320145759852131760333527111255103459538470025958668990641819383592000539937363564202742300869211892531969541383618085290157181454001719078339833302950540844072724723461903630582706315796203675378335580455805782389346327713588002054415715212366323695008576889142889253160681730671126524469215800223700991965128709523145097186312185974073327781427391229387142233774398104325353022845522147703748313749250005367986254270203836570837918023209775052840681096563056785229912219462421974318394681025075742613492894129304157360903117676366069084544308590174588136910987677795797473092488275914082638176880171550839179107104832969131163673784006122727117967183193850428211410529516454725830736952057721023380938592643089157131145221926695968912648166976183230799701746345235794198258062071337594122724662062516748957043029589360535965362324159931719747619990011694843585349388956646990945659417976591486370437173719125814105898919761156193563305996243104223938297814636002326887626499442768311163601518579529362617591968742069668702409654951656259099432028653525299004834432420149833676971628033938972586817383553383674568123682306368225762239390879300756378741025666778335426523025065428571474797716148700149002492149953447348240946178564281092073247379221112211452924127882337218310705781707027553680315437226076670771062129099465364737541421787062104874618003685408289822152532055560346427081780532531321189565793034383706274174044861253342923407560829391057316581178796850681190724335287232344494213693357471952061011287613057082771770416562451711681037682281787251210709103022757804279652446148194611969362944268192082716930461777969043950644096691661551490841097888237107308114547371834546779287304744652826020526297799732931550382049703511494666396359188665353222956966566350644191599325822604501736641610683763389515821985694429056848930252617260111066034557001307838935876619763750410236290077593636160147516595532026772372242978907582450720315702218495184799913227710680647087911203234408418615731802756909603822422187908891419166728828140305038878446064939066146942943659424005346222251038426049339778096345752441095779535286698637859597970675350770659360447254513128732811645352317476663049611291301187986512976885088787274417979313280765732416551880838054911764964882768691812850306807721583161101075806223153614728096405123376277271914317631718883822326702646320326028531028883750057709904264829796521744543765442326061494508667714127025602663870447095615426027202305298090427493003887548328438263901791073828035819360241593865590942759882622083800949908828783665893345401669729433425948001584092170264192792960828044464075960713328191637580071628369751722068959857290944888508978185372660678091089009095188497387490497127917173359817038548583702799173049378573918578922959420289706097256925565571616106674693468818507839873004765352405203162701787402489011203329981479616456691229900386535341198669732780658002184952390953191901107081977049517545301949286246207360865032100999367047017334713675307580895241504660779228742190968482318743039056660790502994880733554912962929052211100579442253416126532942116400393850254102318173785348949415796006665414612581660697276714322511738728664877747701685725466180766294432840867855688143136082250832824315173078672062574045368351950174215925823960839444582863520292820665107463237942089178989665233557076899326940406434926833490926279393408853181501561389364794086985852726994709315695003998516162245675153051680364764576515741219654031361311861193691294530016637069711070835207879840723831615277109223340217346466209748730846619458218302215076370089923889335297086320768080389913058696210828442327343853994421325302580814608033280670001077140254963117046580513074657402407924345339425335514662305734645384531328709016303012546260190274534229481942855065787089207392623361066077901088540296082279121579491134954071813531084506700828945634691121282943658746341604925814510206521246405504271812199057384777453753494223469696869462569705226627520157134522434083439138656264593203525818970886684606676711038063515131982564687957894235730557765996504560973414276205772413080813067457538447784559519220226295534291948813553799249668088116149649731341539554055927624161807611365175288524406387262854753083394984694348790946118166224343653330457646166508631411413117367695622810372990549220058700346432984038324883282797595184761984083014983116851721147627566194002058933601160123285521036273745115303622749537844020356166722495133020564015536009471584352952344548672830226339211486398089619008436221583477064586956872852289078806437743321474786772629128023264625997538015325020155610343599061415181294245728345607570465249209647528937575720189343483133595695004637560843189671193335447929897128432687684066413615323648826370641048996767432069039203432919792973353980806864478063953930958207668476105549574133480040737121077330078390285684738049616395516824097134268877379089741875943494732706580876603890991418275108864140136329031813402927526919077411238252621226919568992647117064105850648377793446627090636607138765104724133354698795640036537827709974457889458638035875735831588002016308679297129678347734417579508353764265437360419386886595584380398126839402057175622155985432000143715827265976670716684289991333687119808483645875924741246788577829649816696743597634708013730239707390072188602909013088928616251780899551202072997148538526321626366525402715213802403861530386619295068850913766030955667619899438953157672713088219666091673975404157765698496616569615907623404800733396429975410360436057401073054374815405468007123330434389031369798700624903384597413427390251216127802659216221701198921377391129130501827928875552760365120494342143635005603062395668832987403253034236068930234180291939883065398188178316619713880294252355570722686010674530895778052439078985168860132125014380652369733900591162913003048801915231917486110206394010480535335286617905554276091931489860827310543787644760541583630040189186307926160718086451315175844483960838474983605303517498592950384257486491286193548320518126129077473224493646235213138169171090432917650259201671246295476009383408235316349792542626770192034303401383921423366075171402138919036007766659692944426641835231868206912895959164611398272410536313540869691091457618781092144665049273192616658412961654182011997540642088251402139546182188887407554843174027645612979615459554675804356935045576737885720405034186388677639331682415474325011826044424643520002839844829953942948638501319857855822409768430038651311375715403634347496318447240932091213408178544723920704722304938288091506164750924083963105581920722813998732172326121553308466458368948665371180808251653642132420457233200341155642963524279090584534021370772681628891331097241049319428885002399767040669669449193164464438135174216733254536562992489342045564307470173990010573696738165214231277890028609907220434162388410584194085917095484807120533227128074118709310613197726855231140859636018633635526458389617285566842539291086592839483013948408941620363735375374986871249261063759077386151568872151502458057693757723251717462747802565412020982388922912565339489800997866389254455035140423696212234683700919886457705350827938412877591400401373776041709812276483800655394644497845125381334376161769304526717673362202947224210310971538524384471418068680750676726355600135292483321925218727245082428766566726914115240702246019721346196065977186964465616841219186196287005665319599092543703990529488208281534414080665139372471159073447429308975815904976497896784045495342052564881530778514204146078966692263015451824534349372756617598927495072416323344721730244026599335370905314263892511683003254092656785839875977754834894789879164133325485230771004883096525022367980036386202315744762984765429592198134434440197650837434041701871566701801144396885733933785103907977444128215956554351728951511588036338470334017911494720513360320936685200112966495679091525377697617340834472615336351745340548011342060569336929446438766193176666292798330708845400474870205160411701893286987009945159687553745801116942404416582101264015904192671231919966474031788681808636325609012307454241288400252525070117687652264030014440353468375331406449554933618899426864420822507320467505964934989834269225898392969237271217025167142186285420472457572578120140474532677327229761719568586935252933574674051308713625160755324755464582228435186986484780878779968177946486942401131206741528910392496353199824724546242386267063309231048914189429863410869136037644802632196142690454778038843931112104592324930623103713602125983216296576060539148007613086194632507277991165457996051407736141800338091156493623507406658571770874370246833272299272556987128160598561214654844723829882058253539987066965401613970754987433971948675124884721593770650999644880043267707530953458282865622407003093559577027900658287041256951659305055318447998331241571269143551914403034571112919290123280106214029720171033148217872810064714958545876665655716368779543644789577638909500811991445035063781149387303609375151354141919804613813511246735209796753113490608757396564119676768242308698286128095077299729422047638747550182869386211517930369351134160158901029714061991006894766309629394560518159763385765155217882666017330518618439215138965599580180466240456149562338871798932867470939620232490418850566241881474442353364877919629528826879852612809323682463947205924123990434417968853225290217335373227843364725454123536245613314826104650481158716561434089766910409645509079359480403453124603102379473573594586584794043072638490111074602330040032189973543772287408158345732853783783117693886010927086095479882415947502084413409099085258779124089181230805335528357005843286126271790347674400221637995595836152222067265214137232420212057003331080416823942438123566542858544647917477620011349105678032505046558763294509492909449835930432090127010517458270788326078541863146832370726328341443261159665939721866184106308086312758992305637599105071904882690600805368300210161148933268301263297298837007017641833846067307113398120335939450486335942753181523365750047820468862971689689056683455030844347190343189216874784477017319751182522634581970330491111844844466785012293516789019533925508729421725482299816079047174927630506973512584636998993402677430976937424412067735920994812482806538309174329919160728279490440918398550657595299026764345374590087742314807415368955021208599759444927776791725545191649448614065334270025644291288893938192247012900223702550523150901280466599674532577999940854668578082830687337903165787541964658903096474657297470124799215339906527982458853822515255389618513712221984996937214072536489919871959137609689263010826183972621053579291638212014949879452055199375785804299622727279798480761997036735647407886165258334837420044303615630063833117884846622809457037983482020545197819899529880666604385590755787122062145570431598301292029936743197648087312720527155301249847034986755923205807848355574970156514188208652021369831511631015101647406817176203532791517911184354863851557972628739163317840718464745983795616929876322478331199465502067003998410304180787988291938072621079922015614067256411600429969083982351618633170653567311451224449037190102740677039003852059486791222768240840641687205538536406096096446229430098158200800335628269078375053722959892691707438288808143656795805716256269190158957249726240743547551749394146764193269983294022631406052048583394169331146525194609589997315415941609861703682363861284307097458345874744023759947274485806775418524373216157926543114698653707532714276588401653851655320210319846978529431506741532755609379249100905089716378980780278482751590464425846958399583992716104010066392087777381782430654176248351527335927836602399180108263963538799763646849393202533312082344213757120416760003378100981916494342037688895102400078372230183356237791484674947997090177105527605653823878731454534503719816191162265226544480992267541616135372382036965878035017805448746834212333013809628437192929650171752206709308088992765719932374625958922155199551236074111113000452926749886642330223594929326735637637854396350477756402478527330109706680159125058059842508828551852963678943471804156362068379171684426660240512886621939756235018832642865746231924180423854105088852074775564748739410658672876990040045896185237589789060040809343352824863692556349166177625510463559965378623266446577326947771507820527562940025914952841523837075244891955053636480185913017503022461654325857466535993464440821168011362693408167236034532032826745388789365855020077556726212402630583013611953883573307967798756543611573670680717251343459102887334224549830048563523204524327550910791917068151371355105258381199575599095395983850317612002001102006375708825013664912700721694275975678130701246597046430304657878786167355193815594243450252218010133087904170155796774439426886884317705301621804210936969869021628474929925835733754640883980722822134832972642566851425902160659576491814964134093806282086878855121506712371696727525077922836044790119925469340677549422840151497447041162999559026523266757675405092670492101876934280312489247285806841640635917362607592990234318186209695700115604938745386295059009845065562456866264513924729838714081304389439496373297643063107861866458090045430897342855485570645323095905001878758683642098398617892468693400704148250449169988399641267872889503034783852928256123169321118100607268172306143101805872196091583469843145521266496035685588469995778897172958479038991493706611182790201060724461637506309029520667156022777147785017165118322097054364909240244859420426694128711083282009153863207451933127636854793903424409807234207975538847701382658979351673496084137626153291303943432152117944409155834446674704488886946040044516086977323477672847980542775850331214786333168027150165310513483641133905970448329503925440657721350491348666416586008255952388629887234441378969152028433514321878789280892826756546123269240569642277995594901563502568062280240335029573049684911608924770037344410812723309438678477990165547124922805042123554251390488140229800614012708799308061085182320008405487605302780029447428437213967483643804823066235430652535335470077102162188015080621787800361037764755055566910951033409576204166786805193925501818537397591657210863062447431985484650917454455730746342941928595872121086121085117622531116617142248171951702394051527939032448452342618254532047452752596606104108243064505905072127443436961475735549248329747567822166459890432901597721811951593871518739183910549945956630610214018077461993293734357616682737922121301783925677950618295481636438301782767604742058849588633794338372335108177439974390447829959510455372025201695975694669787035504594565972471663851661437232128189512039172234552595847415555093121989024812270829409020813550158366743882289060784986835338906768973779045571129172129995352634853811167544032902413387856443701904041456343319716500530031316262413451275325981751301043965133333280843581996794775667466244061902812488010019525071730601691046983825835168585814774681829915164971078996035250260075696336939200097957869736284934617273281759553749662786856613182557682604481248386354670281068098524069748833212747876474087022927229649302273770615010951132556840771649118386039511451345681557359806623582521840177036793197248472531170492600063059884485755012517916151622495625907778046307759273327732963796823165309924392262752129319335256913401839513097319226520996720362083660932745812581336900986833044127913696570345976563649829735304279340729779947205737177667857666135604213726650727500265069529592524570173948326693063169631532971311956293858216682051082271847084314172707777796685912891524281003372319161736788189368303791760310824970301814051490118048487292834684545795363199206166824489765863542792679430015348213694071102647128491061228347268162157310828245452185592653152912847110218477498440095842282601615852037930658766596098640027573003413789012786582502577747560119437768150007996720942799970421222203875188732175054439810718877165377298971782914836087232044521346761617784023231188196322478330666880366757181467865969772925101606879024077622831988598716538487431284580336800462437004318524130631303160040700659675270023430869914269513057665345051688039925360804690660369583241461920034758636414566615198238321785976843415794234134979392445651542613066981607482494544770249190140344485283199480202350755814109306911411648296668795979791713501607702109701487698135835445981220058208660251100665492021410099188614051678798610517364395542237058286869040767534643320392589293877291282931733294647357724124921866538145608112233848345750583653236186786445537912327151336306164542271796022024776095728457284527103593621170768214964187643197369858343119305604800681434025887487700714261686905606817260238078282487187169314719786548580160278464629935283073635899967191087355258125811600653234432569426208128032450944850980879754137731481877350735974207119541383452841429211930989453922854805688365030974238376786523529479455581716786747822964107043549169489183034873771073900238407497042543561021555766499864350934018458641426301965746742633926327144629600419577850663499673284895253573841397202945014002198993931050142295468571397640785161062883144597039404410490552300932200882423764102480287153070428814398156918380154138897110671780239630715456011825519593290724577716795097030922492378222210397642919902914035394981096709946484433470233462244363937922027434900773626759056570245225923161588661368501797465453655754034412926081746520661922104300940200731261377177321636900792774739050641984653765568603318586545826906279392758387532089761534710175505957324953335562053194914282224683371943775399923623339462817632276770636567421310721376599595522095026726175756037330740696476846661290124493804095980587114415366990617046692033294859196296456561107523716199576923861523940355313693577656445232407556825077244309954285074477036974666022763910304104797840614012991038817273474926344087826857909509569807209211172592724791508840253121441535220166720007555099570727058569482630667748387045731312747823493900372687507971503785438032026396488854023258114528476739689399539794212845440626487305227276404206377618705761040145027645318249326367083961491323675059965351082046867436599826760733697920804718706330756422890816912887067178687614128959938600204714864116014596828168519367895392333217552104034970891955963438804048515974604175728012725902274662326078468067164285174113636626616263533248291367485192528565691695640444698713813463210488937869567877238867948432307570135641580274185927834311134517993561600207434229702194282440607609014437027329353722671500605494214940048296055134018678888499009530981133059060053558333747469595579569428655096542864076216056800795408307204077663053597077707449878747627264927766384399447837538001064211012809483955986401960952494492458624099969856406011933200070099386355946379497290670984199002374443304064346708188161051371762525951472489754063247353157534749690469493064107756272237784233464075348620699591659498208585934937315643198872167676679469321308903179723680712731692431153124796054819142608085722803217508840750037979405282432794242997849067197998899129817231890929183839821094575366486819309752854246610136182265510613369246173206131741035345106182339356332631655504372395376200992073598351699311693973259104768475023470101585905375088314483126244493572982985400769960813962368007356293312510804162831328277373942243113077101535772307934614473737906814785299424984097749402835964828516185402731688868677343530595054965006529391508574158880393510623824906947208837669235276390224154640350910535065087604420763299123672124346540656911369633319569868644789753690183391197126524442231428699843067628468708583795460203373006654474960803789786010216510416513909458714775750495682601045248879741093366945950319146189575951132471555173259795550070049342538261664037179550757306988104638596347908842846501468493955379095583952127102591269415891582917297045109064421547635101159626455565217079155396140666068283877901267803708478837924214429597864972520787724997762159432163855779169369824304348733728613959934784179920024131101920389879953526990654399063096078496636446581118574239221681867735921493163923028046487094429305057933537268544923114825176078661851607515959102727341612440642998821022031785463801514842216282232042268505106631676977537461325686816550659995509498059627566298258379593684998492530673420359185703355598052102803218357475728164456856959428459593162237033372136010523571513334197196940996377704951680884215075161397804257682695845262579909572505922594030874146272778032351394638970750837465671217697400948302569330810966296811630603139959312096211756347874597502861292162900059197487228844035723272011996062101259692190068244120558652659506170861062252966075883439092197759656260086641695884410821402564194563118014097591106405099713997325102873757407681489009994788491785687672123338251376636783009837704359079013124453958893813441918373116870736259655710793123654162962900609398407621205787787242447772615328062603867629131578688280082249931467546088340242131440196398378324386276142923170391487465248961972335698577759071793492381391202110348556046878822894134900751810816244317737011234273228251269091657067179525795692890180145486105843683588299657988227601330413500372106122479317111321183982047232968300277760569285047965575165211741075575548561015184738653863920550783871457054273775884532985514357903196474471940001240073539814069401851377936432560127575589871979824781373423654376809596040118728961896741865271620472554599935094689469908386782752963287843075588628979338126855705204272171825847737316049392184472332549621373240530018221115183757773624112068472340981983871083561040304893864393211978857536984733285221431093598861700045188527066138258258287484685058822979564580082780970827246468608931593809241623427896465647880770490215689242564716831367077931492602564738898925874145555057507531407068385713459537953695065408605803084642593612029250881471728076008859553176197692703142547296892732387404617179581607265203884330920522950469918803532301957004720148613021249942786385719165693764548111501698194849995718272540122072873320564593238521575507077866957584210843402086430903765295247555610932075118475322992069943004424136130333083941003262528277720660971349038979587796201602893958903018498339889652099001391467279809000705298293704997713595384657138257561019824434609356853608314481341264057116997205028369584005237179345008404976614377948743853172057363663071932640797994906918880110979601457197956266587923525728168847418659633060003627648357784145499282799403386330669706794744344966735009531394405775093643485166422669944525253060255174034110657357623971117282190409779942628973388377798256957363647171531236545082018728010479725583359856580211008185813389383874049074063758881245067989407114361185547642695451717931775112799658252961171098461334585609134712178769692566175070689499880836668853846050905558077404322506354872775864285492216661751308910976066364261185320574209749095567612428463100849221588318068800270907555023843439504543589211333268455796602603237046737923581535496349299842313782612514872167651813665949214650120679010844835931559107831273948550140588407862962382779418481658155762627626350335858863134063746413755850804527998004911218295145321809870459699499586616243937991934257249166692832689578266664839931825640383170644414163736847479346225661785366123749809291000833657041621355494607963580656756360204486763951118581516341857934009085355069841958197042626912566657906241453360088089018466832220951927337269901160247451990211708040841664131945755507528499910108591457150175874865084171062742086130134442341184698436639139082313421194518558717704724729377741126494380460359657437614870179954544671592929451033652609955591958962133002680556359145690460376987507293841888779991847202454104910668085456253475410496575156341506477770652840027623217193263047470272849669294855213406366144379752384624444803275370679861532950244227147386908709351618937195382270297820334809688653687636661861720814974675786316282741347454358540762326698154191678252896961361988155968578601483242196006126149143288034319643332236310970182657513364056257619911609521516312410349469568212975417020824184662802546945123175554529565260604243085526815526951053285151127132984977130209936857270431704953226066695748810347460831546786266966827677458562917754232029742037513993549191919206581424132746770852805369390534041542919687339949202390590507829138566235990765502859534299703569197297546385593577922085913374212532580770813081132883488336029015849379800287722723803939316537269146730111960062090822237094513090690412977597578191001106478725195826084570698292171201376944178220301088414617990561747196384562575393414812046977991017839088446612331618328878293778454791360546424013780178153571267976351745776503089193489237651654349746345642317178323154419642251992624973402222577634022374043968142784414797942411333553880472462582966072475305845025043724665302892968849663302970838207456113166852422541405046356198655885589421988839997646002215815513576146571063265311618679460281556274011486683827358292038672680371886915096219060793279757848156484273067594137661592859670800084021320314373800580653963644116589043764156855847280903215243366755427554174445410260508318273342592414636630112332938491633091882419213240608137926678873800067384234324370413731938390644630683782976842468648501053239266677709612705581613055961324280165844886314594518371850582978353921488306854271556663073735052504946983024969526205573808215203864413544212435195583444788465071853258420760990741551481401250502481774027298479800391308261138727035223126859614783491583813023497077919104638858905626409136188620895289580042262981567186528876060431677493160091537912270583793995857887310127203178627038971772812845347216097726625195365089484512682659047083719797733910169169927093405948344356886738217263907394352214618150572229468443384758510849352363148343716725051346734298363280776223761317478361933823240094156705876230650840397589173640160184494273018266599520342540675127586254550791112647070863183391279703847623012999350202798576696044495511771497761472728031160989793486387699838573809720715607215693308178145459016084479340479471365078136038549878061053215691539092004546442125047918509660664545695083835286991553573291904245502563179643673891386539794074639746927874913769962845661249430994275538278396006668620251215117347036431337488301779889313895565329762712764547631345715602727272725246961991521988601489653960885953903754595307131746507557697864940544828534390757619207085912489328069642328685971472781948548129007815721221823084851027107514359207354531053104053660821524000656501038077530783212008451508927220038896941686470844913550004781749809493156393679228749388087504868003107295450277956617765135538189942776532706671660674549059712445610877992772938320833427799581264538987223585563790717373138820160981733140075566253475608285414649825566136837588138066568248859513918790789971439709395563846694679320902740732285499013954409430667240077460532997371038538114859774482305496870148001305777176617300297979646916041591630171081056016050103230056707442498896117312991635592518652143560171393364080222921701820945064548446300466074851866855020518953558296057822207240142862625482532486845358024088532452943863864293688512827646984758378252740662088722496144604157856425071356816930072937495293851254921632238887923164497239101786019813246969845328037854692839302695702993183978326556831826605239995893999993448843395412286331492704868863242462889210349878579325128346460583023037154533007375031238567740189991868987638112658636317601601733293517518529673889334705817788998790562080091077731305882558357158040861038559209663775321948393390029703987667435160407362468756560315740020357795986194986986379666913021385475097046023502213401814482788821051861990412411120709564739847446799447617667019671911338328395682897573036929634946875629827584315558037623822260871066512271165240258810834600572617013147172583783520215399013650986862858772761270872251861456945289006977964285131730160810859460847346513114953600172010485686773760450716574748085270499815719464275780766280730787162834088957432897042536755702452511475873672496272190507082280945303315443321129174067082033677273453211943997815310003593533890918262270542444014142317453206173589309007169853192345298565362400902003441473003903835291763656517736241573255405118584706032946274567943899741908221501469104751864229254762357654552242784693226691581771526852609939323303015258129758085505835252882557024508649730418961097228146257850200075983715674908256535277948621932083790848985391808372431471766365690129435142184805012845792394415360539742880759811766969350805164968231216509577766327697821105891144729146252524402735528257456438115413734095098066236299511692512559484372520192186614181035796650094045133975228166995296342319439591751159292926470188786393116620609349410576454960657640854326408141504423540984041451424252234150728870886655947113021712234960581710135288362618813649351365948638559406364659136631563272543246799645165845131018146003757708888771941095730702271121549909224284074374202707040008759501524872071404718637216230357121850210131646780568926186384183169612860757813586632691679116593039374186286317437487693192739265528398920977912409174055856802501414953573424372150772701342961686246618935957719978205767351134647437311855087337286538002681617792627643366865743172593344013312352501135378962731979919437644684368574660829076847717992079184382743680042262097490015802670982910943762396342709193759599010388305130548647333837557853369234569750169296383472661680017073833560433721596921186422431926846664171888036049761705045249811495889062648121385060498000823132877497653993811132989013419815326023363535259844562852046896765094996244639918139090393249998667170495008727301815594140463720714154913369113416606081899693985590125451445090263310647778135822629102186384009914526821897965914348227848831796235409389059534329807562664808600447145245572609548581783674927629847141793653262663305685393413176225665489546511927396894455492751302863610321937163716873033791297869055661810241076214414112500753126371146046332765067167257425585337238033092978317196608900035566048569671327101558109622638149769923004729210656390662504227011329503807232247377574180074105797612198782720867453236350445034679141817360667299290203163520271270741906064360456343148610872863686368373385238269283145376889483134854725516678585240849645586771787021192308726694707554453456036131435076857588304130523069680509639591752120361504113884278349909038053482996436660840686158499634748151652118669516969719432888052557781597537863574497158709678702725900315702914668868896945342949199834038078486345826179811301929669516835796537888667170144671898795565025924843420370742356117663448894367391996186005497115348729835175963430117638078737691609918116704479516212764701849112011755602628120462282749887186738338199763291580188050098402027535989252848685286804140907619277978381767360852139744012792504246633527052251650466793456054906236163459767154375934618786132990056073227787991135872271794821887155103763821326965178806945431139809408140111589801177029961791738845828019786884054345378907377810729886498681191544200504598304882720349257172436894794144733966614032622489135712176461486502128037804963542522286558052042074526130068731497179155443976733749018849478521045134343653648653907478810949299794150522276306424707825132640329411767392382568666762617490755666140548736469623056777839128225755443578616725355253813078194675787749453906498601646163135413501310805450685042468132239095493920925093459155195753851824991115272165176275378462806982242061959624985254497102359248456463516141983984821812352531630863748033188329572973988943301644672202101694584849621494800464138756867070921053936323993286268825873140478767461570795363177354636396899815440604770186585406422267451490924642705135208626764256327129853059415242211302385919146460245294950840944135403140958255769997088432727818092387585065841523632482812195718086513518728760777561463191439011803913270834105834605307291631959321057673961686449121738767574505690656290539273889614845061565221784680826057927148315522117290809918055389064095044339883569462223066785634363511753232032511199354329992232839086720687200684758952880929939221761931699465411281100566532370049807216436496213074388029521203226844163237524262503510619436938075141939718769836568988716566745870389861079574373813589267616138742008507433906990818670099281446830564606139600218182198619884108599948807184152776188519566028545512957135686288101143326362179620627153096263931049008843477743244442366211185544044446787495927926345538406699599536239517454200518267182036833980493987064549817102411100290042799573324907158436363193628401671066973877572139419596230308764215637678507433821726371335286571821857636289527371711897142176014843627979466033287616787098422874703245828731272077685482045443967411018620774969536411199086935685173728311209386921249954462929940981557274315511394745596901190054749725997943106239749675243351642160705204600240887972473595073720367157384266206315462018762684485938155555291088949786853443310519183727950977721096756265381216112276712360724624649737028288009956073775247248312383740935077796305228603357148770253371471659396673184977543146584776154365755618202022730824540434383236545030020630086517214828751487288578738336138927322685431570777890889724778393755509019877545740733827462868919953391163132852846211115625613157770772088516694426549739752147626567930576495355865444225078361786033830216283703091930068043092567661624130152325836249101361386849736702081709929501865103332418995182532281447854454280448198603964971204576832403546479251239561601364656779816806366653035734313176576772748564624113911886431328963472110597401294398395117760825774672172776378736572314105852743351755558331162441077480989584184588573372533739380354171558761737786247504818572370798749313951049574497189662226272706759066364308884923110632320386797776237744725878458497743874108094104033569287239549936718163483330691845486090420928957457600577502342380450229416779250297382752805618260555319905786348796011896629644832716688552977188403884428618009154192475485471956940536331871776297653433750783493434919848195131066196492501994460150219336752999415473425490724334661946580329389922792234298599626851095824694511314274363508127449687493496713195311946609496584062998941302197008503714262941390114495260950989902003195432911898358071421066408772608838686743863506596661160416017962999873638568060950380008877781746688377474160390801085546623361710676840638441141543514852499892644323807401198939148485948690939717333181729965856368426377911551128691794816605978218061512116815874117024561545939196850467580194641735331649977254648678445296449692897141252173470264372977033852914167086889458201470757064407362340316539299927272828645930022587645922040402068203593629905516607594165705927579148742471550418987956149842297643196727797301231135267801576934946416684285767303468127086468658427256353177174405046416444959792554139487128210138513325744059110471402339370610956134435239061439622970193786843793927859902361146234801101559313720251232687271617052209645020658742476063843104307015349396638822601689618023173627617667065776446401200287587870923576894451650846113105839000481687798265526922769495034447281963186382807149374152445382879258406609981113568229477576781692543089348926215591513136871006672741586871552070679967880907541737852647528251917645933829982326264064816261729155298665005868555167263420588528924106767360948636542836611602367393592979504781300139484143055293784373039912723816933207822122203518247864382435815785214754182614755232199105918848051006810098442477186149847520856812360740331188188848261806872047580123742614686859012332981617430152330758946200486958086345497557659580017329359587350778665896278868594594143813862806795009809721092897599514743403799953778471621575467983055903058353791280006028840560803645744914547258632840008633235904280480894173130734302060104587592889395020599460094800175095755839073476112838014315149780481820723088502426599315946655397164447327628350501574215497887140330093388880453504363892849940670720394514449685926093892717936591116799990138093137542856413692997702380466973739774588265551507486382369328040425770798468993884697879696585805508615886368458092828819124282749496558914587956688228461953805638445682971435360148975799675874095783176332042927028072925310144585740133063248568358267300207097030152890360217873647350867977275687514333053142645090989159646746426381802990684843050893383796688604889286596346911481741020207988438944428771960382956238824185915663020840981995108455229546507668303156909185503496128570891625657686894627893350643479629965753462904077745562312412269598652197210472090270171553187494460100742709290296493718332935172172118476434564208197953455865879934706957971706911121166252887665433628897610507567547571789347568960315552882014171199523982037700227001810103489440953615592033675038543258665180539629433887438091599843033912223401822631610005452090471193640309255091479780763824302629049800986404406843927838810036510170511728506928623025659542078694535059939513302053725257371641128203746333479565214451093892603496024437307350402242896340228912196300249797615520954036393956749596111563690796316876725188862182605026310335371369154834836209705499646944192258458547190483884802247623319617061326716226387063146930459248183732241705491523370959001170534069486782645160943336279248769399295297550105251635315180673119252562255375280755182170370351111830275783963870421405077080298792614262240248663746331153056723101385932891957007191941532301280232667757492504894715941361378363695498850043366642732844705546683194156607217652807382832951034055207203486684363251456196389731768173604014140793540332047267819713080913952331146325082576319888272250384201942724474076787305893864526345080675685393609901942270100451711804991371592879952018451159613754785454628500476912007407638385164869950271226764444049186895827733847441063835412981569841525851394380997682643971788716716318641484452874408097200517593803711279165564210348107494125069242719347027289105755508595473750349687710486477080711836593895955830400149716074970554470708578556718493418492421886107833974984887641691507829586400909126974607671506574879670689935201826239591984803653552172869019212411501946718808681268726973080666585651754983872031506542411585793484052852129780425255294828832313509815926831976944285049863328942851853571566127163324859187337767741880666657270952279765695246037891614150702549498230209338372405957661309405859861579817914412382861439541436840200950982154042063312395558348870062018406496029044563859361118395351906213517257144860131290021848672593700834880141557308253213623812172053694133639257792086793122680144672312230922516133130149996926050654424882316669997118582695707112852297151144511542683309998422760203079571762123293140619747731640554372639740514249423677135997145672414941412782971348910194571491431346013357237309467816951589354768183627162081851146802009728381589304511935367737053216666467112044288805236347833941767138523923290311290648022294830539943721610978145513309059792941681956440655221548507161301286829893156702190774569975236264959082096965251878551738074733593344217038971994231948623549766633158373806564042570382972536784049784072855024017184103718328113848872591398097862127761169034487524007443295219941532869275418545234400590410073159344866018737130927677080445707080262775396551138797757017051563121466431562455276433376084970391854397927351476753739832155153096875161090992868019062427002750427402344642782231594514298435120485846848266764615078129808376001569252499005484732845081131552739336138472878148932828629478652186460287911250668292741287255633564278920434664304494052571886617248225312251267055693642049439140439643293399231954956104852889514050179211757182916818531683572326190022788566551725778499854594418163596308604010515773755166837371341833362762886001046879727178207615827784671124845613963132364484188546849508139525420668073348857989293746302571402952707308340065906213837978006030168419913565445990350373259889612328660153660633930536780014384909961186095421821454704828359443074332058616225326819570723204816597273904415659657370306506245904641473668842647534149845674160248064789942880588087618675711009974706031037433301022023275022938497234160420340463493304819112928927567735079559886564444582051297104867388260257520133147523275508418419640174824229585978700960735759194187689210756470040495179103839306833815778541133543923939322544000040995266860645916111445741520687846633343026403175658532651484831450320842580633004192246744702924471582306452391831095434353737434827112262309078601683834848792258966432557331690581627683438464319255509535049293228507422625261944294441234876422471128572107351580235667779087245127698485381791308308623324292583603954881520034261158636868792058284902179299602040576153533731275025735838088899211774565989417385400763382295378473926278918996726045157849557926522785077749732366312469632964882480943313384209118870999671697072995421529216751650359922894625847935985587285636659976985921310709804353220246831680383100232366432620180516799199912911781787696502940298985702946824354203718283845941636293482774231229625571573349583587113262015811309775569347262965680124048001957157675987863877089593991286801043697693080657240793323363128731710191230593903808874576449705018620159209387057010755703505047790789450343343508311308869461971487260686154633611473318611554129274218709391588870482587407636294003321496201188511272559597600082071981314179294465878032913489030731214852146577893921046318046236109630823183307720049940703595684639653091450429750410093225895931189602136537719426014016140067372932516695844944938136024456011447030898500288502432472384198506795700731480342231121843545277378866967263421086833579119241953159033328932423379697493258093517394961840131199587866747900715124138374849427135595792147417064147192674266281961195483839075838746046847113652348411302305680226820775110046315241545944426304440523897705172622893925379349533258302661212137184144210252546452139447931889816472388082305443288379630177768527473301900936531846024594725143654274862871972827575105076963362496235534282379692469164878492610022271432101074189274788318707611574712961015492109971587764423445948890871422620908052943602687156057737522115467935445368891610720936509030339718406379193632327026908722157280175703141902254537394881585631716548193328022937283947656462460489648133775363902786439290117583776978474843548564828625735779307253933134279839592517340558208050306662274589962354311027051009066528117187286969954258653602031612583337617628365807693927877899585684610118697793460248132441691375173388244769927017080195005230808798459120774789996100958835000239049455324780596858983684952080863871412465071867601911153503244114630123117579063363177301936681836092921612883571539482339119176828527032352134076789279702278856753366646300873074136459330601939319987558100352775566699282356396316847478267563883354426747273643097018564228523799289035503583070755194465459541701710124858363447337185500679064130016062818326246349761832446542902275312547203518970935215938829152965598448497400227875572245004920439334801718132428924139051536669218591837660061238970369952761480445819962622225315530465092798160726007640642600451374776664597847290950826404832262930837049888178110834100740369424122220895764661259130543040671100234930196253671709401105749889410602081436865556635164108166448862739085513943965620007395865133229227517577457988688071829245533983603262304448933716917287312362368620972000808103518511772450339481291464150543811687038997654988237651891457643309876850413709654446744417688909588213279903432080203634754120818925518499753666191097270413231435090031822009673167217761005707774609142408532776619643641755588669775269244962671724862004562329630931167860368167607198743433844042153276601945233657357989014770465122074933669078941423667562148513361924054972044546513869759821135833455897022778252733246367480180381354758992020584805428059639080366913490508270105890321589023670203647755745178532118677731996534352031679857687242161992990704424926196197704458913497232104736576033327597817094479357581240994748138790685981008604807024201315523240986717666590717534155644646846161065135306434054577682841656691978890565275393979681364611429940730905998865543850489591357307292463131441142299410900780838778813453499281746892206282514101725622209953916620973640865856423187536638747208317294009788156502719149658091397138208666914483495705631969022878097249031706409354536292926252492851755388757527800060104102326409735246590950444927500272687984811229684446989847995718757592829830594582029515489941948712812085911664907692246627731396306919574320993844936362256177484715728330473837482195871930762669795740282527163833487482628179853482781367079603095142335116859839406377265219831065873358977565943406158822840943828713267105288089286036527159535618705536779892335078490911894797389029527138697326333386894548985436391758896082947312031693035732734203984017939068084210691183487601147112351867466167890506032660665936145647683503308426022320347510735103426332433790268172231002846160835630683289037724494738003692066877198495297781007943863213241149992474005822173229439798508869275520803894623724688150304223493500044669007026959416330984548759992281515193254973336762243216599970359429813142971096428942723914481480918313621619854004707237203700049075176283873189476658983310450318013970574864532220843595908553973181315681681083057189568779005728216088654435490349921601002068725145893466865694251100612785936492191035231711472730893967781102804229962117168676422127064225554051139205135458319007312480251516088514023859598086818678269131756642544768397556150563016205732866716425672599996812337809638263607201990775268434366775292777777259632319094798538334983235861809883504674788286331526724661636154471879658337505280220005187672607643844618097419391134257239463631866013699801943563558448470573558829816170022083125126579287898961417463127123864206881835345291421983273953887643228228303724419828763041396758448725771090106972897866779472706592647911124726961897597850753283373591120528049785713984565577981290097646186442853673559197514397087989063705979309934718969241031644098003153595184693420298091310483884572114005192624381113502415272761947303219939868962174769021520328590233450973438505392359893968840914129757766731189905291367590813304139316450392832373922162036777946386656532606243333637203121172867961089584864893809904963992732893925790944538749468296888829772242090925441893769388136402660451279597613798424959672829980753009327302055222298534458311006085150998987592001093035082820915448888997308184125268992082931453846266509445873851735295990969584981524693984870449339557793446495090883040185285224600943444990238374832880242869141795967854186207614718418314363842667875974074191377152310148750275497086525838149765174984344292105824983685517284167054846574759757673485520200836091640355255188421021674963302248015631364570591841541251413770899059205560994044679173615305456824186499681657143346393747617771089937100385059557889500590969591527040629738703525930346973364544239147325824760432007308050971452341684211920777307519018303451634018543153765669652678877341635558201206008074396978986212619043387047232374747647039387246531647050183659677902539784999820262946710517432861016396920500529653795001712239698466755822034650844210821871714500549043355398918863027776611425583540088692967633529625060973635702198780669518395803122916345003017704596240071732262085775113828487446237234843218844659716438374714486021647067079651807473533915993355297166838580359532116105419042309125703832954202319690037314651062143241042513950488961777482222352416297763221497415219896809529537825409680346770531900443492790479596989245580217797325565029227172648606895417975446118838080906165493397058340751295433838376452024808383189882127729906771159172808466425380575798824682646301567209408944515403452709072313767912860236495835948993956590754331276600588666753123710542871204873388317242250959843398552188176876184674018871335823236463667904307747002067736522677263268301644357870382459876113611707666007258206765329577770014272132833558296598129152231768193984691114658800949529995866534138633980589995473713521748510160618074495621658306356071354302843075738431914126350843203742760558760903207456109258198242774284762001494884984238694780165891253572132955685733728076196655985240064518611837183260558870498258418921931138709866701533578385177782367852922689245272949283394163150640785143083413604555511742239906618888139294916289097318336726146630402362038706398580595915300623966140673010250277318159111198670565315407018691160525013305375209162995488406856970027214532278472316745465000066621669253263194840104637092877082194784899639494696080654515044733597623961699851372977051332340719143807759831706869948778569658755648223293781882137490597601895629068850371457398040494748518931250559530751821937525104618038870409500603897547245679609244637283286639709588036517044582617699349766473577594899266124574979584166478120186815314702493675376757215318120746912307453056898704801870374334125026742055938500921785140720663216760922495014984885212923215229581137632973998990444043926278841470941533166463651844664225809765169866575716092660915965559495899224078501708446621452712949406460020940887052020626743547077477698550797277265805821145593960053690576802054896291755076010016299674081693874769269403798881146066023992176696098531744207551322737953708219936114787341899456733470459359201765235220653046214980906148360734993532288499900012551374393022169100600673832799620661271236269967193992948445062190767082419148995362171517608737721075116763970629459549554960940337840576017261391055617634513231869705503902135223744304949451462230436410877050609103092558898449276127061299340273824582006088238260809326787678086025664320279732376069844116933466942193657132958857994128849807983260501780738257813998256228790503472585879175072033615793721864288286488038761868770396496699453188663640205563707863188770409568696399056312956016930550682477910336558861216625435694405956889758133689685454763055334978865465038627292429772792171584474649707371508541885086140370955837517123020168952177203007609256536672002662056016936025411361716863452431107614311685563420348561246363740968043013107027369649818315044715486683917232608606354469907995100948429468792365288291896882498434665092360271843243460136484209014156499929199589244119090093668042142770977756455541703131036575122573383308303682730457187646985210190161805826914341016563681729947843810437281055478077993918483367534322984410512610214295086772368932865511858758484489130235016741324015365834497098258967619592391053472452603854836942238277186308706111979216263328375509824426797419999130330680256005436826735672564487584081468770443618493462346275879390275452138339561497531466133629733552298555355093750970150274150203722062754840772746696530748485085403799534767474115827552758242609576398068555542508091518470986408935189090160098151994361239223350195858445141725069637297106226764880893172725492854180452505008280310458240133363749969179584821860855968995817530418688636875980290853323942040416155176174095009368216044388866027502820704173191619204281752323288268626900815897399379693126150894946332961684308415505390141003028628616611014402420322675140105329126437864391802226652926046355219658862936512214646433537013979111974031668565502971673224857879959124022931644974452571075292220536205418793576002185604715453570185128339964315539681183164562423479532218701919682062007548504968856879758287583195870214149524449481805186144676704944869239611431216476087268970202656712981228733248724634136691773773168059270095064508211165925865049112422705382889133647743636520790534007266477800310915089839771170168135995960189122676292478552984954829657462221173161726116188293805221689431352588458633949277063336475960616018441496401063400447720922126926208988332475998755418983044899858912282093753191955757610125577165445478488939521200897845217546936596832569826191522110124448364162251699673506940955505776687027320549473673856855173622217367857728904019087564289668793413324705000758584337595865936736404565151287312036000459066033384993131616275504856318229880190156836374823718220937817970898824430790875177641132189064334802075272187116191732775196269317494061804208054689427572223553439783133892894471630377547413350966554497395250615299527134507598498481387140515964625703321971760183290867767659422715294253079191794198744050304996574606777368068941185403340835759388223985744389545894755133053945915121684436983993195977741710795875311346554442974321612078684236075721097230223522236318807275626316161390434861299845387603559813990837713220782714298204346039916353724990900808638725346111761232017037897230899216437539709426711033266785602005670354184873174146807454499820504439450715287418056145695809290860398615564424945366577838269358473655395170975866583261466009205247963353080495441117707108103436621204514665078501718457942561993130560704814503249199415064734447390673450195085762664775827805643377729569677425966140252226104855860450179091358921920420993190217949768567095024266848542715471283358477236863448936471372325216704376297111980693186606915190759676337992063785881273984970531480425103879952970862259586166321393421764336836515572087593699066765735763751494587301879923686083913651400637547995555431846536791738135712062170657176538305761067532820392794998573422644437007940407883401952919618849938873344073811617237743854006530678961136427772753822682362933869789441566233983781370162097969922424992718846619841935112194623413420840842292172474965701906295095635014790988658638935988360427909751416721873163822910864320715432010065773758439139286146230260060071560971188957496257584606797633577246800120718466382092642788761096256038790491889814935907390386650726803150072134237326922141998235454209411388492907546417801219450430958017370961989925223746525841038414876788397156841070065509335278342994888558042599746065447934744385412931536457383391299788634542636301845984182237950908346226596985833325813063514912796281231506602069594027472681055614531769510043967806522171385111703403169286608934697411904835909601228450413292765956368989372401418141660502816041937861635725863393740485305523885945046156241404218260269321841395322363477370499408768569703588094571732937332684775257474101879475623715593586515474785981260846385873145618500682803179816779017206772159235148718064850155243892449578326641643549330691331517801104699845919108017850674408260829178903885308492482199589092375233777462590465336682999510414275330094390624777463100801941231396458880272796429395235162614983823534940779960309729974559103142842790085281845724880909969397041359052214428779041847085892093864383524063560207600785257086955169850371976967183383877670207192520354619605877004319565382146720410332554152611209211385019602417021486962942437710366371489193816058158829981651290613556780563838235130897335572249603461253264058545582489868455535971776765570488671742311846513194320683313604471445015672839748500288176301928808789863325545778753013193082436130089463245310770396364502539287044436732673887984745975675084736091133368736509780491057840803775701062124752599206993512900226237470323627890160828547958066811881570911833492629575637809254275281751482683107100728861937106340086106455857802659568860738908655621695945955952455228700499837993569195880818921244786683054691349873089894079558319187646068835349163073522217140972503220845788072781245470915848170494223078586582476781557664016103431557227994546360622333562381074150711559343494470652639477256179581871717156297997189440913413611617519265811544356316679165301947115046153149994430467031090015270486134302057605208620538072574860510105137774493549448520737269606001004432136683618116489759511530159644486051354476116572071599798847710358658278148785757498258540545179365056416198013952144067921905869559297396485231038246120565109599447879179842298307768254568153601035862097645989391061788362325195391705358926495581940817729551793458014794157987687837806286122939529025148160832239894071332873400847600362948673233879239722710811505144584411383200637487486416981314048331451626194977586497987933825597855683289005243861501424275570252840725891965730046551556615211645083021165351950044371747673771183933060912624430123616876414076133899153909961640626289728194451357033104634427804281726199737974392998307676262048418441218311490758166789841230327341604867664783199322872592473346291989148781835767251795615849020228823049780706733561277094920012014745213066839457764636400301409555831401036128531613512543181435434840199260539495314955065083858676145694561831070904721704374893639563575500666235470698166588270248778878551315425338456951040535142415452572996952740294394077457747214582058405513216155942283438408338386916520087364232202927244298182204976689997400752195467205873892469634052611561505684479366657034320082833185521548922570838726375696902295609320763338521898350602937778917641747184399589714187613900388957182954043356495327742993629011019367499710670556849660232709012330507702368301587321779367340908368583517721961420153225814501793622966041221801043785178811544400275385810062888468089714208219703665735034268377627783183051080022259758418041702848181293173194941177947521126777048138870602331256922044809846067208397102617473998071007591880855506621916156058594463565904576553031120166500847081778627052851891163895255292564510611792735438990370818263281994583445289411852181967339228291821643970344801452986486944898608624467072363263537004371071224927051927075176030920204603171196706323913919407668518841285732938327332599204276970894156469745092797900414966498713139764701876623648052830692407292963494357507019890870604046818422777012372506861020941885353185779601168912477471832207683493324101879335595488706226201150872528691011854515206343531059922874745514921718057911026363733698794406212675509767511535800241783449186754180319644732614757599713948950859849158938856589706411860876863158938583255258362077616145765998636285088872611073647652523465732474885324785802801082839842394209528603628721371723601350610685391210163911357884202982933985845194036756312125204442774457499037992263074852351083771595897399283634824597776877088537821123687142772547500516785485967301770272661269128704385098083854006703080598921642315200339118434489981123311967698108180232417243704861528078765033982783555846630823739751196477871729794649754554056360208165935763057818563310339004047532831103026130227833383676172530014442850721100305582146741997101624694298794405138759860768794000671520000702258302200825206851388700584769954430138256186777701997378042090313700288111818463250775982448347829849064161865958289961940918591903436526146016655871185409438807496928235138772035250906199321553718059936856350384448753862208659656174425028846591478213486409805969188925053887883833728433485692106775613111999796946055227269321564814448352878739343719105194070702376427062398330279987707312348506956643170242119619448148835636223700049435871443431856503358343663687692201703149804003046643691147854737064158627225669058715456971210646867410349164686872786635816739468142916155905772284828772997677417022444027744716245803002805296462094076719360048174223106979073664673109153056825331878375663800101572464487639222870223580640922712222631858616369983275369880558256192903981731887960571361693587298709970826797342188965089002543563700569781072250395106798496357179947355630520933277040768668550623538044613901320203539629397619582143690695770054105288429617748650041110561112771620825724564452363284448423263702317729465945094832806834435527248998470256626271796225090852657156986732860883025175244122358508216820214086140739929677485018596999466687793302360328217250231769729222380432548043930135903191424400548794851867328730952830502186832334583935610294045403392355045141824453240784627626382753730963232041508912359156022051255238545856339655761227013457724733309758985584851159495667429308057387390304516285401683111009458915752504868256906068898322598544962234180992798214520726318491826169440628152013054198952477778730089157801722690097820819656171823980873171920399917964549712710575937276445760023553170261067804698385335339674277161542569689900139385378443985899753242891722999661984800143816862090892658109706204812797187657861019971929716474665631304766521793863231400854691544809105745601837726122557493027382070097493595665041004451474365139448945476812246880559850428539276311065285973083700569459138399585277783196302759439270844529483336158026292271229266027043986921746593891767344958338762127757321830488016461193633870472628076749762020981591500149225444996121443796888267118816350473504038959071774660156462238979213687812775691865803790511784968478068985254159273772715228319392963047394507475569906663367170143602187840095325125445700646997508134135279878359161427782606104415059017011706906217611638583976778964073004824024992520856977078236561430680595866743617467257214628908487027082259918984503654277041443497158805380938954949178646941797421830204002312010134344906939871801618078494297002536613526289285978084897047986793092641132944733778437087760276775557158285240574435375195789340728989585052883693599862573676903910038694695103002976536835215567100396972616127346294075738544966996316976586054825272687626363568108592363592160201818849980568466317388616606683782925881197662514048342760988130610686116424751883797057175708916319163074715713392727254680590642144288608414093520231485479462130508222832788771953853534602757506354725874320801960828316018316507159943769369902743629245354473889883383778806182463818321241561946687805382358190268414484515153927895555780269186145753661665475922991181010652084081297083511862995179852005306620558487076981265745134942071057014434059066845636670210537282376619291004131447419073179617958884469594464063853931886818402429970446767474632177133196698530100423946895665061642730442974187840854955306799671756232321290993746169676276506334919488795745808363660918459469577533486251630266994143259235501026304993390564040667456048086946951911397056648948333975989492573925490992512526517741765790059333567455709874398239599253221399590552923951535356198847726683340017388355456086501654145991411723052898665451058232421813515295221076943158991875532228133550084936513703532479226116708272436616189411040110724067793055875236847138467586857070774328885643073643872962641783318231049598315420438011124392782303160581495745417762888528014603119806505131673431765791310306043512696986518222581307116425462935661348882241030357649430130355264461703599974232717991475549791911780209538801732504596262337656989359050249155581881790149904959354519749456820595720369816824174563521977609966416994305160011324680945185933045395322118189510158521390440282901030912646391719419497173021609315638061760737321807054759302794136210278855586486868103243109994997389608816035452004493517464791151220892660392589936459976744150256832469922944521054222946671664299578225398879898896441289876685896140770154707537605700900326516572163540500282370625304752265503979655755722489859953251851723538069256686202934700866134459807757603108764766674837654923516722489432438033864160460692296867901946678701711758304523796321724369077636739505639446030656070473760888091066956351342353143414892771900009534363157333695299717595828060503248858179903296100704682197458568757735994400447068236927102064348696911166272083079713909727800581842499486080379058532735255451343666320797203396129765164899531813279922126093449866124940487836249768075789994828295572706808152883111229397826993781252316701664648886654766818929541027352539862204120749824356309517165110075926006809290329646342161728804720881800389736592525653958924053547208684745757314201362543075605496069104117256249917110715804430695295038332534904907371819602460040734786381484141288482981965110812454977509925848562242635445961160038824560362767594241586034833053874344201514138579135680938591585360020153123792247642031144713174954034305171565354270712908141769183472788496319032353426617092866180288322824820209871589669060487733518968724673818527728926460676337358558280429333831618868047839781037897271964776704143871603654357308533571252638135827569434235511749173895990339669814091712368411238202256551163402528673551196293084804441174551749212999000262119014490248191186235252343588264344759717049539454656698847879389762228059938370191684273594530905141767486584711735700441102665462611931864587598852744965201099518291256023246585449980211822696421098552123469711094489535782935911662760348811998550616183780480785428591571942980175291667769618024709897603128547271020513004860260333416582617998236042080364725197967939856845827422112849014845205301527458489449404808641945849725033627406956003590220828916445573087371636227710258221292757400657315693792655056580813023491473666833381482379660597948292947126813523722277927378670039432208777118592992067121645463555438322348295340700340757847130877925009236549548236433316354994665658450459773630133937313668592979072158616706023922790302749315771212638752125007360575513599819820959491691369561492577667007917577727313605083450103696402667375116937196513466370836998887825358173273084185952943606748885657298286690477225475941912275480004963384581787987064882540128999463673057038072186642314353794679518200744503584296343667665985978587265528940683035159069485395501457681344071282734907188877989067766620558679105919150978878143765855786155066282721155004729664961429361947611770295326927050268335130782447244972620081341167761935063428616255466929223859711725114771445695285787371666411188816751467762903391383516804017189474702586988274513731741956256039369212947932577013892308752018944092239280138865247671258466218643320097478496195424537851902007354132464071654524544476325093395301963781273149422339804026325718803478514888961097595539559117650749113437052977581712200548986687525998201213507810320564669562486133094377543660803251128289432099330479986477520740752299599663811124622179010663668024965760287186083830376322101084254883894645742231393746110692761512254540527310684624941158348613689723859622696666777575237652872520466591037996976020479252163697834625805935252251574900572202811450146750753698946842696402228094281913579347458388677406839424081521839323968526287942515669561789377763965847640250487638051822644867484582051159360269250114473152934552589732992519562542011505192952185613286862028644038720934488641856901888773204026190425437881943387913584207020318478230413090105116281505032396984608206108791257178771748293057818404635754601226593330270706948939842297652232795529677630953715006605191220221440442359179746310904115347012453700489797032157701564584307506268053209107714054219359061512136229306138125803438738008911714367201872312212314752847979865471395151902974469924433974558975921417870142398658575210780223236282850110891899233519710994056309422469242454154839272591276109002782106712605063366702309434276419147593965637073259389165008155746966184048979893496890164184427208081648795142977974562947955325464318638089814715920762143441781981633429304839041734934932386372928667027765931016837413352982438774849943134282936284745207400059547288390284461023199912768796035548191687975803147080606608133007217371449946955843196910423528624724858309809022237879155311443726216887937426702467469420773059172110437934708069290034955418462094650700797592713849092983449975473752419249820584830053053875985862605331031004567078596760246463006339205704800378954216229359471800338329165399782022266941651280973879435401014535645054879354517233768135137148422924688481458081656862952855019224841465929906986533187361935096252055705205244293675202883508088523459843229570769269565545188203450246125773145591933071184724027629682502938135358636099085604070702893142060297806926974335904808343838824831598289724090372961235759545322510292439389998405635930284538926273584016879158868935878033193463484303741766397406971951009691548315495160416317409940780882493485409164648757012726115513460620115786518131004445705258273584182521644016049349850305118668259092715793701179226782749643011594074330226316431129114486802736944340916674287618554664292313729195302428603215612832946752531353747758822427474142595849533445720048662023898635569000790578003826323700769605496806398248202961437890879311793097045840868243301368378711557682433761747320938409435308573742036360893317930330671283288586666933112222715887007332801922281746839552841868261194682544591823437246945358057544451207598087304825136009914996517156878109338166590552949378555260862903918713557055483845675283085337036119990027779761135447427610082212678827484075291956380599861812378292532452118869068372943905073112530584706952621614242759035936022274615479676311136500167311393208148108151448399192240434901235007124239599149841439052531564028979796795018594700438639271426001122792884113344847903955126423280667762112665606587266951718936092232166771570339372409002196969816772354232977301557001176090729297933443770390134986877865514486005650703603790696403388821268456659827379066034715118469232328278914229381941810187260697411899266275092787160279308819723391551773290285865208907306679235770419375084382185884317118571207222564819426784165091012399961744704652382073801239086036095048558651286276322125314886057226055986862770034677484849622475777704754283687735707373260854700502227879051260158099696027108893613669434503448038158350893543050956657214358853405756598864095904000396330394798814065461573089641765024362498339161541732930434776072942458056191971133290027537185986667303449445123557467961141335007258356025858461293364575127233905044070769051512072746455027473321103168553429353982870999560465390055226478066174787594681862419669622881108099734702326269483618530544482228396893611509011152165642953114815174584493463496039269314949763173733415446602974284511715138486616778778804472240828262248763900156857397014876148604432813883791304939010474611752897858294361194308072388407803115006654868741803940507211916963998599223751229161188353808330104453366654235558752103573512916375504868543123124388912771528777248643435646305941968811477240993902584071064520525646509301374289616493334572349026571020618260813372110730721081732853945912982019722061833550133287675752163665340800872005028599318952965038611629425093872097977989578833341222656081365625138374669695324158586377163927384435195448159575081940420954167106304097798098622582636562012224557464488467960725002047343854710936689620267615052426627268876095927949849666820861614463997726457061908879756932852560064144523669348039755961631304200071817808473283405787536526960916687205891687147908733355730326267436901807191400322367007259602353241159115138868933010057473517321726626052638751023260850106681670137561996157147429089895254978994747268613647370462317539277468166026170533577282821459472772833535183625110574149999266671722351181365116819459932522348295735036843139922821353435997828923618749406294073239234391194300654359311159543449040817620344901169092005909301942554781329063040171640046796765747703166832455391409489302730320606722117841474515083112285421151102268527166159349691730154239070536886650154200762092703532609841874096838071172033742099050292345940710716092095728216442743329135927318583877308595027886776978665682196210139150795120800185123999378772035035791504107353941691896442541536438470190600377466372620057253435125979282738550575760654514460734284334474888625645112710388789251616762928036245098956026415643231898216008456508880860416628420613847711393641222663561761948516245676048759542518841195619588357920815333532494387068390999859960890672459134623497577412986322170750543948448701287555483202391024455028101185544315442998187302548958349869338741143334872134185319454879424263193541613563790928067475533011371235746389175027077582837292582824096597488469378259414986829199260099771433693306350825008150699683723116611886053286105848430026096058442199437433857210778707364715187284480426146473072984615759931132678577665638792340317191936551569317121753916140267609642798312299629532842327910598390140270318520661284175358377010398933700280462880613899432624695689210779395917241547448938082080071396106093878456910863898953176847122854262173439334938160228451101363795385006367801877441188754608750105900008559182483988702570996352291911080823053194720119668428169519944642535883401667905763544617345658548619151872756009918244860209512540064235897320510569029505698004787436090963690356274095923857037794779540065296012632905785558940785240829632613991591733981717452441522755302553225443937453709185837125774793220560917625254062330729452502269399319366475751885771546968953697983556260438701083819731797032603706307557885793938003264470182485865064704373701388975197336531350069515244610018570754518037158202036009877954356383858493676998711280500484724800725596115108632080889172488492411284651308998556397303987000058730607167869843981893365040625726825493097074292664432095285485588072537653536846123400173204856792009570765033214190757899402781342430855069708842608651625293692274295260819225645826424102066594869209434625775361344167374325991007637223994113822920122289934665849991357592448661669567336077499536974609284138278536180318928857661983771991186282375877133591902436640794419253432936556887083289807331302958781415558702116967438996855141302671512400849357451270461101847685136752162606923111455172588748299951921875973476465659541758788046730815751229490283606293383922186174804850953741117161013884114735484112384991755012309193945090156745591422422010345401157187541609665231403269390299578498423392768436138857134513848283146065984845365947164821238620038604890981960281451827005482502601239013570542686502130616011538051144345732320159738995658451648410075414101082882827317403015474538459703927233624764897441448970201851106279763416776347046405031781157485573572076801517779179386562087228382373464044958956518318628644575942188283510592230198547987831496125514864829707670311351446801161132947898054880060454416291875040522142000667106008537155033942149547904202059468574704939898691085750785602569458149788747474029337827850002033492422053749628405434982597901459269463767066355022245205083902525846838576967889529706552370132507840592009135238222558422267453734294790505780781433171732633978764362412912593093029346066003469969128712074837461217165980628651908835347086188472311091084888978278373851617757489554266246861080864071099035726196736416046022069550148506409234829127235716451216906040834567383542988383754184126207110583606754983318836481305915474613421352157240238256172374402277262124650444874555416255359694165147813683027568646751772435256483063153790681875827534599661513934169636656594342741918358672214732950002458893329065062622483988696244216505441549325354337471641019284880304991799150762968269559067466479908465519291105354161195838378522778168003638229376208602380447183560438228415925195683327573487788773174872435831090036478159650059804700134274308807456140784421097680710024949642656804828125089589199771962485731849449129597910789848715297694112019917243602803180653270134821627471297781721703575975612481168139176711914641161895988675646110059602709412482771127021788950412292255963398380901982920680639209307204609442128987416878013889497825394691947046957496862273086490405165046126045938622746107885758276311224477054318094281832476699666474321887104865176635038979737628252923669733499498232077112921949773733685943197834570899123644948421137552545309096861654571423172184461805195393862415667065423253328804649929708369401103036381240419137560719817508794866876651374500223045834186296087431622483471039282124932636095252852470939513260001395833604591613262040177449915768786270309791237701374666064339793981556821374569979577879110340295998562507060119145099602670446475730109685195934384248943389096675190895570031910716168165723592884732134506511121849177172053077500802595240708421935528154491082417741536903536654412177121603581118957250064891963950988892326695434387027805451009143323874841845995332383837835530017933412059296634228034297758715504844076233464010870032886899962576486942317069136724134472881942670400201473742433126310887590744273897320705757005229094904055992086453416921866133541915139510262453002676537196274738536271415487229787952852138218977683089784899269838922083557193081677890298535251328674442370724323663633706373164751837453169098785695458092871285170753459176529154268313247523684159544707563294029396652237836120272651490758204415834448472301955089032968579475540279523730985274507476961256626048067753925793361167674732659806792871475147104149441721150540704208117157642031780328667896377578159484789526284666192553419987125503736773639864825796172312845657004681831164869547561937300747187370982854408835079653859861598076130048364655581231382257689250672319990852745401745963185069731487239649679601656306732599989332460416500238631571219397109064499137363843808335152611695868921895030130877680960520616753925045669445786272866183473425596347061478725066483432937616710941372241690106316918189967146278085149970648267636319629552945367263819090228359742743889767089809793139058481303638171887998547793195956560173802207526378519252342046393862651357693626989608152183743153154232915161473664098457828302482066667773030483262266836356925574896332505221641553087100910385217530237263584494362684915004651613263725044024361740174375387110713064354998354386698506517513173238642385164326145217968425611486711972039881255309753287599182916804309490856940951695643028166169253555660324692215253717845525850278965563814790090085397774772368047129729262353950504700436847663582896338245911425247803726138340630924686889957466865536021273994921604724482496496386597317820728082970651644734092451097563069601411386052672150770096174253169147354710529479044332182909746765571932034504152278175873995393405133477405962591644416851076747036267788784489464723219228816522689878996423949911752630819524263057936198654009198192349047846532528092744396355538724547643001664422510529483196496759376972630966963545084803060300195469951282865186909342289228141696703897859379582027608893810445314563610835985684045295084008845116362382351122183999405489569190995559597006813281435415292825558101754706209605941006963342877481062041201705562534482174498785411080645141807533268092943790571167625444017753516974045581105935923848347101577268492924793191366366438842966889931116443860930253327817114228752795468728680484740744757451748932288765083097399206619013407387079995930391514784750870431510597686091159554794157802211018583812372957395518123268929953866673738278364941998613443002241916367635057700478499681654297577505422469963442516328331273241466678649860669445098202315173741573062728937860688255174702605312455199200494745200829291147159037458172275989008772157889237692869849432678033415287359257417775739640934757731321348888105546776762248407286521085432992956445301842070329714870834990100443405035647285576231785449926120881590455766132923242525024266906731355499215321006503210987480554934916755007541263505298794441446993804228172844786509138508393031269401696798175990796009608981992791288840684303043854377095871350797739365500356912664880182841147648296534231241853499489202902036077435827674371522441181449005753318378407420244383813227112780023592504176674416142747612739547773901797279025161756226857226999820616289905803329773175222996039799527862376609579731311303101509533417599283347491840209023260373763667722627067843234322249441616559810570118449530072359638085770896008304578518791941470172888442787713214220742154898417953102640284001169781941863406950796193341722104883131018090369506973907523582281280456434193358337050882906848477898209162078553773701631158368517021670962356949708566593099891029792370380476230033707412016148731049975823613497565908307352194823725401418584745144291078074871975031835330588962619089306638441214266538225475330561893289072497553625359388526751829000819459750138736349897978069592378241436444456994977219305423514945226742870851922943019288106911847704995084029049809930792047722993940905319395941672776764690157595873942078917648167411319169904133387078034107577164536419858286883377406618200959725252313711754347611642366034960102005594691855477879558411046221065378448628729937651723594212427360217448050733475070127743289763290877854568007251822680022998881854466886808402785092446212256850103061622748302222163603143083375657901840886841363794501040422493540498932534925065024452254877763825811781270342524241420754180053966830190127341385142541211434899248133036874230082893630501095513537242288233852829231437594076171534656898228335676761052390839050343631809406172290139674841405040273047560289867683403216942825592984408924885807737337530674527286491324002022319081402610534610353707062514644690353105842234383815096064827901192901351200238600714513344602771787278955440789169938758077053485913889138571675708564239050205616864243386165387484596715222389288601027570699118443825903884497267390057586346762041004744504934378191074061387891455707859400641095294963973877524521904497148133863356079518943985182489509265466131231635669852709166551651804582844152106812309333866617645624180133345663747919500257420910855375800025352245019943947587111795843617646270909806375653834155138969972586519896656185919515275806926349957679779950902114767206347181756590278969906217977157723454586663154354004103527212502255212506476968128498951519141094798503738326770803193142532392158291975409133996719290885560803351323906791192373697071209224406533190945026756490894552192226073023225023030086755901857998691727504461326058641441771121486928884216203154992394714126513682030638871053866180173113505664997952444199811925497668993733616987618681710026232201237294265041710204258867160595251260944192733978189883870385306352632308506038591420034959041010354413441186838157177888064766253535351598273314749412785648772276094931020913968766023366631071775376180908291159220190944865596783951643621266842348858055960940245831227949633068830977949280682170343162785458269920415573508066387913395910937506978839801187403809327894623509448193752541470861740632893014813263893028636997690668523168383162351639206242447290892722688380991517435489352076950259087558056942949553348392064702803852903510285320664983522356080732999765608575442090698882070440605581482559457737162774375962423567153101404159011108430523221808595533169768866593708103352940258203259612363826993702591587283750144381868787646807300986706497068729016769878599046382220753419615053402698795474540705221809853675661134092369288768655510734674276828106579864316764258431270069493899227528738399800798315609830104235805088165633566730659680367347634860304687060459761414674937798230455226312664600694388925488351519863184215546353566882005126387745287483205792790442669364967777045045448694447139589819423700294190596756881440071816380019050982434908260448483046526578998288471611703253990167497129625237539910800861672982741646503322275939449969734608275038250794053368357737347260220772423427276761978795373159109232591615926384629142201104548050259495526400609555210807561104611758823244852022009065025098863879427581693259498480111839345168064963903984321406667474259794906174865245774550249958750869255383164127416162237204438909636233946372368065883304255591859745617686473460241949649666909342536932137966769597232579663431922387334286930756624582606553405585398617127627864439458504639632201988424268186986226646441215659632801690883993203461511818443533072696012376880270035249979205495020776741662867100623600562922158666907297522055444841214913153694287570868191812504017621477990599209261115321420583986598046193544529691944096181411998365537111844987976531226294514354634279972743752354071184279930227144046269962877682564279464288438476353823858160979171078800674769277043756858150625326191533242124708859953546677767630606413480142890079831335183630890526800373090436511665881953477993634119002142377716205107103364141403165016066399846067825299135387282936357431557422160192286258672473348224737494933782964398948711797184088425810488969855891576815170174491766285878401299762556960928287647209077308499977961390708027669435966564912159734904809109924009447282496593377922954692828097714339510215803634204872639588949262280768579017526320008070820339073371215187151496358046584040114079560898146082474566871814516317181856814468607148573494101328019776304939092721669635036746196358445395263744402232166791599576652240147886152707562848651732198583579494242476182614512403265004691550295984295076712617798778061415444154282939634771985309795244821676364529933000148424980576817641087126819107693587673481198726687763979844807522749474925982559792379068500062998144428370211230362493118087842693674540581025430132528083699502832234417910812015995250606543203728858944718251150487165385530955073408506933620073208734756091360232887654702462529097413867683374706122077679608585996406531001237033334939365379976454341644006569057315701922875134885336582191895763415379373157229292116341437647937736818117628746154904993509654215814422359235806107644258484982785525971671258598894096261794656513965723793476528935708746610382943606389697585861963863103648757547930283239833334588121567735275829618363599691327949483941086883180783048375664374350219171178287785104704807502018972708698147080514305315631672833034775204029141102720339853940711959861688446291429888079633303935395931782029429950054587277620587123245746014506417569026872785759199803268407945892466783130888208850629157534444934730681794207176188783280731756459994279865675372013038957991168300879981390686638095277235109654502627377068903896344832659059255632117633981996372594167627922769784731049005531551724152072301980441249153067909829022922215748957766433775333788252257705932491586147345786497145866199950427807189744984552806584669114028296809103102943351668052302200934244267247906855038210633274149665967645518095057285453366682534250802176535677759291392135042233147096158176816651443606082635296590848501648003025183037120580341062518700611115904683290446771864711818879522428451903590238021735895037521725265281298954387525447998646698622792166257824647756303893716152202076644369439323534734452918604259222395952765180653617142057845879421360086987106611587022218883698740820262898494426225429575416190334440393249625293762831633061816084666052508714147097741349032675035247028974401892901820747742520610868448572856457586300972607216938247686370105029836106629155778322032549793364157687237961819679881868257662371990543780442844619840964201775602840157155992021171479075960955596032043431342725332393295936384482654748957314853090705969915889010977091960209814209079952952309736482712196543691074868990395241059669743231657107054130094833343317674689491207562462220335057220398369647004364240786421581728489456969537139335527953897150025693196039917137020169751149636123315905371867236441156729032759468537714205915602004169573878599858489642357413862591385354698718247009676508490832108730940446267635668580970034738283031929045829641325269423971552492741963893291356727487754931826940378720291899145332890514629182787070239348772254288513611485045032904896666571039310301919982634009030215462891129504986078618064647500367938425427040931946345037408287441255864546520765091807529802198038343864469012740853548592441683157735678549377587269529196081371637921462723542383575024239521340042496578948259619736176833155505992360518223656803752936943506701147517878586368907609475054078933071226491088465946492864558855746760470472423832001976541556170124020257725894575594414597957897906033661072301161172622238717462060615956663673448891113927798922739936411932834535849896341056009445491336022487672456049050184788570585277664977815272853579447523463954430922937891849554497943842796298670860433876079121729249948136057051631605716832021128716147070816696859772127394877755904481384123987199218671778678230422752142714849394158576916046579706569104507314479206880702523149328591904588729011585312034344737618930609492438191944897508941877352882843682930452102770090725575766668175872131957705074333335348327769631103771381229642295332952846124925279121856656463334454950760199791296216136698748380180083606941770613728206990636171538931692895599236329407967472174106584794770786154416775634285614947189709272175169244254143436837822977634411928404939819383965433639387834354866938046813561477266494747276654228856380242882085062787065556638811281731743872041443927526564252823642355783087355507055684658363272103223713208130463388082809917512230901368804072157162331935407071340497346488063059437557994772321916018811195170349595160093080408950419766998632594686765909428410580794716091048917612312919983204043501422737597943485128146473043220425854216005695607871842748126349215711792917476055471085982087955661413064964053788604919423843026595048597825030380620536383016701799202606632678285417200794351321781438155302089167803645540882204833587891696522529834756664501348354551032784864317732851088471716928063803209192390697814296103417886400677125262970041426488427320271351973014589137530996322907935258299090788669675620626319345624127529415820927202160741522718475801363197456740566256648375399307920851058655477382209673478975121177324634238128937145257448700614888965954291416353109410893082385467484143980420712184471188993008286972913048190747327490534564621946449930126429747770248273711971409691503105623638515941576894403824285488745606480127691052360897141577093199213948305240488446177717207901352839964976086604228594041822894521236374721732095327220461262760919548329268234610763223369956909741021713846481995874984385519164847692989666752420659612935932752359764567525469277053039780872156232894066632595102317145605460660914117768923955389437764304921446376409312461356613239361296631867889135455755078785963569634393171937776806969273691757152130421409949587231737729799013271870611847151328769967256276630063521244778692148866498193987509933074887676194822915106022206415337126051090695524916968147953296446244093623939365684293642283908547047178755327195864012184522576631756914794989388619001409428851782101518478832570666222693939699466646674722476581165504872008943628821679956393693370823107359474916655393663353953649614687457073043694123201966731797944725867905974065859843155402070467938761456291767424518096784156628508996543501256646076020175193079318473860844243433268331760298761199770349947553938899981168323533583346235445717988014158502900868075529326710886565594078410231695205498134024820148279548800883684966041772954915139819256721708690552002904509890278975886231709237703223084628084544747393354689285073078974025224702194026773473818093944011161523792687178380494348140147057806034987871536026706516823805749447019643803297241182626971646203994198659152477653010404981937799339516344970300010963067994798316298945860170292573917183111305355751099050174158563557550350257395124528072304841181948609009542658628255408387333172749417234169956955732128120349578449242243049008620083404714251304536152895770491559501083160761008194260437115134959386635483875607737891881461506417393218142153992470959535801271109748994032861905572027770908043128335396196900479736258843926227945486556333940810942703204325984927712803319712152016740507318921872936100289153827070224014045807647254874890154350004606916168487220065842254315836037014230278054970392029165249085822802899394859339930311347078341312341965263603158121492970839567685955052342438382259570193634301969321943598297013684747334412369431969056319633593865689693543187758732080506158812490480411126657709243396005133879755923534147560299303638627846871191084739743382931272017483987754309325899310747178833937283263341478491892897447594592554157687715006638726950275443211344704556201047367884121165566699182832340666340675588793255889242103618294934220928522272033313993370085934904479285068769653634660950546370847295106226888991921639892667332721813212519756919760086484308624735644355669757451766418115074462041485878229001546976192495338142417987432609785382084977359169844988212586146455007233829192134443401313125349265861817539222201690999442312261996210786544483557966004488704338774589622136369036583944253369424837329544869215795090567229525394994316884289882594044380926489839914114984313319617028651135990657463819006703683119925417579684020498624414697502494377292583425763296129174004405649151579350141581213655882738742403320311434407657950951923189815269880727303746606740090837941823663474418170145679129685712655692070131058142982927518495660205094681403667712165528656131338587525968622431844150477067818213712728460337261556140793333177252931315619030298619297716736241971425798025140410557260599727560628305908771360164062868384416984914626335358199531241847256700170319238007494575440601355103890912708126310256975610406137884501730278171775936864909708384071665234945474141167169901751208543392123548704645605937310854583318098202177265158397707514527411618031956385658224899948387634466665729773130886733551163327054983924449840600533904603595190925003881054400883728548848954976571167170175725669665068727742281846141322905590127535799282236093222068982671459234630828031516628590465108267496494359153612418126291004209296121108263720109564400544844972458668995079026466358032355484688815216462660066175884397890631079944939900151724401990538288134785560342294055223308317402242613345387320761127815524890696272234855021199305560178046863511402587369874336724041303408549489079219725630255315599638587842682319110160579607605617469284656783780681989384674227417171025455774813790277818550366614920456101770788928351906504618658412348999470414999418281042948745726877491484636379877571169942835133816470946730751652295389321601936992145041133030249773739303946663560297266825399643915837191165033035207643956358339226001383281632207621095389289661039263976523070051119439241967936006622786903271003701013620510071436689035419736330804727630879496664718825366105347677156794238260441733110321034456996117645797565481792083067421516565954505041587888880237650974270168124702504626640954620912206577213163118911956681121253383434877549982124613809838772243370979046927824915330707603524964902624903150714442839636116842370102639530537113815312521562112180514978436838338321357657540782363561170528927074490988432859095003717251904986853992270954400279721058283665356822507376665399871142768509315274798235775196265016277641011101108132165996424743524150280067776704413272850436498084539643709268698697510851904646494271524880656795982599328836489813523086940270270653555693383658701486153615165359436345932030519430648573848462566511605897519739710872596167083335883460900696672198610367636337260734601028668037654350355997844205511450597553922003135144580613519477815432233968189729148600569605647028482602814964118126542379304532231310497226945186424607265003474739078396025664556882692324798281970832071011625585169927772872294292394488335828608176327196651458839263070153755792177980333778990436314630151403755056964647916506794725559719468598697219093171787194333693189643537326761254133650766620420063043811545685519290865633090030880512472231939971072616524928592735347537903809871481577772416975290950766026583378606794739934235953733247776349495111279797902927856180029722103097721453312739721702493267950669224353440140752372438727823806384178111380440080981771054913427477916136000323071327844289371463300967728289549196866275209036652249185846108287222244540348374832458676138855931413764332569125085699758212638642021741567946489491958378978373151749598508487807141921327383427365497804361124977616733179148418966239083911470207875619498645828473086952599521463826718560086012231443898175307432354945138298539686158509978056881283564787231036804831278126679275350101596531900118056438823318712512656612239925558694614795140151430202362445414891621667015602729537054182670328468052412613619476329367765871057883944221612235995419396113113550836028957629474726871547968376946740226812421830898392227342427254932407543747270619215593050704654324069905141680090418611604148740686406207571462918191833679277173382154763592382592655806720751549479869027463138692450833285463039721296853986415581243310384177755996980665856934084637482685851821124762021866877030649255070221478155487414491269683367332126158647828946986450484894984285531674106270171097887608206402927118116871541985126474810439997159571315473168735431059852432788670262163332723588372084647130466271509579630934549633531841547525353413021467231724417449205533194880635286496658088052793741643981346716765866089898704819186204017287312856484631826015950804578716887173899437812601611327069001142603739164697589918956028810884991955757035172212342791731169043048512825345520756832177851940503595229984383426014466193832091517149912486528588624409657792776431441488402868659764754567933996631116193252252144124679145771878616047506793380537365094913461131481960470383677929766693716662435384162451474161428197361496792998272930916676266073672124979834722786562851582281644674127437546620878985964623291554550830227442110597708596504475063251155987602732066322770179711089445359247351710768954524272755984191971865084715950010400011401071599962290745447419884950743361742823481487271537934343391920156103596422959803319334296084086201683914744933528228852257811826279294831479930379454326055468534938182395363761934481333625958957071636752235898661026744320746427960934990383239811717726257081070240174930691145326180703940832518567916930569793420751241032533655755205003532663204206716366467266701979877808905756385813645759008589509666464433018724802362817857730264838448019322062130958542255087085720644116653233971637015149852686969485649517842867073425843588842444030745386862360388796158186828182779675080291212716210223305728656935470410752668641509580674736555124302143534392017657101179354147440338042582145862700995596068882771837973906195478069544919543216588384578088168572338918554419369205467169230735474369515820463370089729567351649771231834454890818400076185700380982015174096245443679285215996740203541731919905009109078575518364471702599063997419782907086908340598291878862046123850220840793546145860079382617273317017837183106205346924419608505363179669061184425510528512759724259837462207068662910487511342954722301043088728943414204455832441308003954173846065816202553764623613261755131420424693853574071185658425496476553445241386712221902757340025341725945765225906985848958268438547068960825915820234515815252976206351506436271759905206823328947793105495222015007049214046810356414470532961336882325457545284526212061716281692940194207229538763652401033026143227373694791380901756141362260081180896556710212368242139307019343071092096651087150707364009280484858207095739697086939872069916060634625783572757592156794940255514605226324343415247172468586030200509322122883324873232627251066653598607315414099286034947092858046313533603412491505933554640238157882651185802061198821096482735049154797046574554431872615128713428576477706950379033964663258594056270221324727583095279985098412580721027467045430154295199470580061652201903401984209014243006875082527212569780473268945236954151416088520519907737118574774249275564646919041003907739086793803544747499783653658542148736013786416731440694809424689122935462158100277416174914952574048636928266926158482844605052383205774903533463849991044211581930013477577193084832901791386400008721872366093762708611226395541263917346268132964893188128128938755494017854010217105704462551427828038968359044548132190001244369441328096791098019931102936272449157630047631043228190400186292332074701240779170121477217825013176411545173097171646482148064963951307602521134218147778104311148983079873042448497970547910614545423140394124147751223422233208229468197068703787314810852869818043293980766135163771853509529945257858447176409272923674157974825797511095730399963542842442344798189106245937125800747189121022250938401599237462360212926950964907042362243577771930040324022624110072754450197835239041354895743004968386335050229888685386165872229454298882261669434634751101430234327056310157116863943522480578179220091531522566457221724856675932899565464184626980291578599640640172079508872460736576308174272985657245431807793746216617358864622645479469187723698432912896121670352781627169858553339320206670429125802236973565587216076419958906130400765213213597342469739470170535572302368395669214845885903900889256582477647665548102758031809102457784098026010800267501931126582432516307078046821489858525255431040871246409773455582193480002958049542708621874372275010579582752047608973725535512518917778160768924418266314983716885147479056460585987372263049081954113075198791629068710153026551267585003073657027345257213436807635497210864909289036252034220746916553239494636282728577638345042579167772412440294482266079331501092789955482828482033186205591833544385239184675959659837964896296906325658706273604153025802747547856482260736630646105546751695637473126921837645250046639860947484785647635593865177339511728489294295885046472045516033635103793999906575823909352430146579791159415649490046359052924699302407515337916519710068534870521324954246192562671581964501300213384839849944242636912422604716531187414195471065050840629562563991718898874663600941218379658757906393565570646409889213398401186028651876618466462884134035336459387524007564927810824841109934440861823990027463382367773407946705852553248810196712694196646621943282369636248311669495044452364461603617536205595346337233606680770358668856188711688372377366804354328440296802029702497684093361401223092620739343263698382025480735875364777938235021884999977693637554590799898473231913923152932671463127588310884462742912493006067328595810967660131505505423526268761826634076376252456458479336223118245105789911462006655205134447038378644671234763227200836321179083404309113489620539012275127575078107240902290959059204417912335886064007829825121423123776011492415151639148297829613871114545794311200484258188581077637694534363558824237764782024093413610353912922381157734955005009045946411213617552198120271653132148379480273139788162622396858186695963656673773289075741983190193478645333648043330257355060362149003533791204278687075691428538768048633078503059703211115069360712611640641551437822348494910832163994237723295013694372392877272414106284840693925341923168180873213887632537716693146654502970737822156352478390697723104996550212262880029396606697677722450670433562073135868669444454895249690164522869826321900702036293099434246429233481300102719686966786789495648183063488348074389931519267662446827131390193903859955182433792252722345285246851125805628068600876647796620686345451576850046422677615216490443415748328358683347372588700882950510566944096158769812341573307523495796358227975931510972303114169926256915405711708696078284108741130403856282066740215575546251471429945472907932784139925563265710534466132905196123953632440831017920567851801125513380146366752901550860322589701642894438073478086279254638492888313650801953377915456955918133151917913009723498240698382757811899660483254006123508988880668198351736790244580082610395082092699986051681137346371415498823163733748497745181256939281946474733746436106689787411834227161994542871803896509978653217437049240843372592007358211810451882887931954725022541578812579745325635306659694333850701957339246468092475304313438990998042849941159925843941099791057917616004767980833230638729677899770180362748223875833697759320741858963150928367002554166331091827657316219853405001991048858850581600045524975226230886857401689386929259834890051622391803361852801358629431403312099840443499296447486876766360351250919652486112674211298984581169565928700975564298175663742059990084406703561338390176939394905291268828210794856710091746783496651330129263971954037741908565004074406779845541593133328192751857858506612172358591589000587375091197741481190089484685785708943171146989933439409965587237093309105312003645201798839068199825531246176238908439489353534047202845133461775393705200243102719357526337012964164902481330817751333396841872685330368422540502193807743867619178987715600781188595670889388818192688103410806157566143368766014394805015376274036276341607620057715528024760741854885175076170995262168293311586907549059789351711909027449086113103324681455592441309081751377083669666980350036260757081398925760285748021633339514670106478527785125579712894219267977827168221605051241233775388376591992668663884876062172028639761970749816285426408962452757588796446204532479999847602857172843025280186622535632011374169947857002856184030664512254970760210415221329715457591521296461456580989015809182177210667694550710393861464415984561663243026790804168495609189696304836789828675335206175772021874306675250422709563378112657976084830536475411640443031226913436890208709686122990488726456984973482631788560784797924815434929161807364694760318697589042887620696258536728246416825344202547481968638076812109995835950549842260955615677276209884786570752110811225305240772077808112429669823885927336307739681096490272497451431102710699591998127371347395461729607484594867170701970967693642848389878056054627056590496294286837686694948006435303873286286949440723960823530100948189603162899969113021465345374692823595369113982555996041395217356339871840417480528928490278876995119739668961920117219291666321618854780070804036237345478562603794361186150664148212852609288852459958989033690456034594134234481021475005439970038853715571646539258897999162626853015552127402996462818038370951086059793319346809982885541234720802551624406787542693394101422601502973798538147589269525319539577549324182837197556159123436342384317222706938299376085197566447972832890727915084644312122046087512459061832768480537161236276772355913276013826769114664839802283617102790418447658445573134127162571869772103935681693431507199619462067219797626973680559123054587552836254937971240310170192269630757438507847395260960291515439194938056067789989680990919850479487380255670074244990632813000182347365314994180275821005820108641715562128764875170238038027333612201203685998988867474191439382634342580803983504105679946021101748716631371472401066768921412024988741211887510857465423321442358650284772813608952086144313404775650456755340093041869764973931340137223115154178216351949196152401941804676986125476261071013733347012415445163170859260276762361404037512583272219249573729355792359669351687469220525907171938908110503427897849379467184668811855047775836157313633144036852967259873453359108862701367698608212686205625129088207123404930055351134254784499234690445187607280337782805404633929985688031355393918553050096318562123945907489154425779123493731048730189521217520469721260988103221332331465891054550582383140313537140368348849326538591361472626961882395329932310520060026652991004007753278051221999337011574828205224651654405012260556437914167687068238827106842080110378859525160834122224795417629686841158453541038764181995349109754284741671989953129406946442045083563811157156993905131386231745370119781909391283658775620665310674675397640777476125095008001929775477473550938748122010288146478388870273054183643495778615024650293059409350624837692417622914524027525260272653852269774426662894705962457798826778935384817473814957964297652670021470486367016758671311904915964824715563249045419951633295654395255856259784101355406891390043835077885779751187426614238522306296056028680179636551459602649907092008176909421280940572882234724599010855953502948457265456993801482117238150301685436174755868425142488644488356987678035852981175823068277604624084801708662613628145705578677726059373952951474529120759090979894554376949321664651369897134864311772945625300935218166019444025644565170946790635635066271246298842651240538811569882595412077376825674004637693224887893617155577489450516323009819369724483227453651412180268732163400411384791551994696989516369148984694168557532879779278060833155299702921562554869824353330982650952910302918271981189857422500252875229252563506475617250794653317441107412469866184365923432984367070802147160877664816657443718861861525606658125259824602102972128852766009917807743844893540639739192092661057899061520911828647405259894072160455340399092065869141434110070182844796548724336039616094271127519211335092552694421422024291427331343056233975439316444831378806888092616143612899931917663680857881912982473824255258505412837918007505804947072145109186393774435198655640993824759921083992741169397134452044942695445599696814752715719077897882283839418440848545419762636321081983389663040638251852012490579465531010375705880813214804311475373136475383832032429868217991306618659643524619341441956575275233045963619031615002881276052826745609316448295216759041583427472640531423909093659653604034464514780795916294620219255236454110402133260274204366170025089181684078844616406897880467319908858695715727019086103379071431725282204938633980500430282493175648455820140930522506390442005308865631183156176296249446419920431968172976133816059445780184468799251604800652744157302945566483106040176586658618551599913232254602698965873521111260127196251173668407419535855044413747971827182397417776190673552016162815612709633436772020014367209440184389548951582653031483412474245192848618026400164893614505605525943702705186019339709195836426686873505618457869499177809969385637895333346305975494946725719860521960913436190561648601410281760715505261817519608384774456534917015533026777317012709692967561614203604602813565871303749002179014805287124068205744442473182374327400981661863960712637015387629474555788168559657009830067646514074750855032963803156623729821568247419837820756048981439655510146910432747780074483862800428395648898864843843851870543498421306728644742914722954815608368973763288799834067556285204513321156841005316424963775221771415186720333653657891918655772138858320256447128660575469754908533603900440151484665681372250337431763263305611483042103706696565893778177511820621348377365827862074562222342481407540814170872319794400377837870733606618234048818361101513431384783321330410863323322622439461934684654648195853226773753064044543187237020881370090839783065493353821056871235908400653390416517315819045102608155382604727774397445269788174524149830873437509417992488286032164419150067833630796560663183530522960117678405907472181257369023586431513099796624137475935665915470043404505394051776486285617049765540849190840950416607862770530298816763296033152166415226942801427658836491690317478850458031944600427154782882689405413278799811485477368522847543369377501149496772535653546252176129943924877588709406409222329372942503819939243876612702279274510702668009627427815913722933631426051024980612820158908472461179507992773438382110184686909498025342088536302634427793743206635784140944075759093118212318095953230753259321244089820013645068846901659096784347644755258409419213547278256846616985503128237758030520956436109822158644351001769559244835653891640517483791523126338497084361945326979302339275298484377552314686469850473158411211669788696433898130855903492635799321208108938776796853512569144676091658311299674319740403807878522766422764226387022150704284334614135114385675735053927401739970317720950245411658694884837382267937741250157603187962620534837001481070557008195530580099955367372731090802681947925158008314787914610864879477466340004851179948418920431228551493161648283340118428988089809774062635012198006820718482428354626376352382653759616371764651014857766422681853816747779607130874447521736080620488816572740131890590191074090479660965274585920223103707045547761893491919317613854474859502936449501811068501380215817889348428588795479993703580798722653158624010109154373957273838420713798334598270972619193990166905021774103513988523621185395291927161621969592324458570425734266119205261801206759198512349847204570728214285793893605338125252462362376065304849052097485856463393156702929128854382364779697342504918780024899235524524508056624740366965030992972212099264624119517592526685592391576655090205000143654459650484565288753508578153620613036978378041020776415407176095097047039073108264176635148030626554570691984445636514079410671036670142816145218835513507058223252510834914231550982722088092868448508889915161168060478160645387068765163322566906502372479827537411816350941764330155415968773481899307229447333073751755528177426891359373301408449294584166619677646018772884665573116440150100133566334759717707577402879428207094062334483221991315811034084651871318312059814982753743337813805983156854135306398984944661228567873579120186335596633430416853632094610017431786241473094103935045723319667235374753335210598604999251671533390002399964180106073710056758875197229933524315231379353413080699268116847042129372514722478858713929415768661749476822058500964387090013108061409234960804831087397405504362043987662449435210837815170620079751892884888919550878671186227570444404670949888171085024856955244326027403427218038914302547797669474444378096081219883751712223277587896948823703898522392964623590340207901005696749968978549764521079064188267366063747208012144911920091757401605232288421035688986006123212154266239633648231013267548906510155299081582919875357116198311394079029440078252445764107573021179282297110076621211344299908485315099406468644833501200885055641384083378521319938835321210884576352997997399427068146094783383462107584827325549778104836284920988724849393993268167473332584562538106233547344035946482528038117218232517247565175074555325619387855979935586154658334367905538537677402242886510364230873530629759441102348149514009805525529553806723116834056687443448628869780977189162766373512370401084215529677298588228978061997194845320372355503735886087834736844182628035622370800034302861408380591581391541985277555714075800829314507679354883270966028436341426139573807327219266629439906500613489791727127853859545379555169514044383202036086455843924497574588645725381037087570301934436310888411316425824868834786367215758659358690540030467986703104407676942967179177455344311850270085137668550169401665781417880836321364178402405152447856183952932708354502366949542158034669940116959731248710535389821602154839774539487916141983496659495354013815248686518112814267335084493937599864397249494002747481659763257182778074989404664437052871498917891112736212620190845604529207278703682744266039349024378600178368076032295657012703010656452679902029474615084321550093188436777775687127248070175245077573265508810664813104931923982152493327872542601046648199210051484669005780741582034787518237933073472358753104035542143878489516598353559675971507122455950151943405889498653189820046870981845614389540987328357417777875492960649302958794142393064163696287296112937752386667682559337300692131862517130388724507250674833724072958208537460114119950826872161156576971980835160563543439829803166401205088200300540782366138148907565669760304320202379488561969732678372839388322490238247215704715518208743344855123113908825584880943462885823190630130183391480503867684951295375700935796789741964130595478782840814264523430488886103176016699885228332144683190141474162030279558882565957905065504798501564923894627468996919949370788512588446273572546557495657092825917790993861462952859466367363822522899334550356389792522531334184196606004323726831253618333580960538880356425089416083971225299599449197511610238445286407885014056777041163969677370300796748092155759760829500886065051575502457982190956769866257850519563608243198372605183591578521934957821039836630287179452241335429633821031408061808904199135747714459836303752843964426923150086688822531928323465353208688034270711920576447423302056313948276864297971383697002181005189618456651989224113587678809011567252957094408369866788648041707875037839574030186059765805441829933703972614843992852708606005185713292201346209562271579116356875475690217004483755424067849440905911153409629980589028823476289222241742749647314238478050786413732553339372501020579438512517917131703617791113523195818923442796080721358263989381042284169360375194968660190847493161840769285525935235880120846668188142181150641970980980207225032008461387427787412014807536991623605402217678333772435391353630098446160924658064197816199450264507169718919930574929586010380348032695049860085184271610795694973180105833062755813709828896967448253425249669605445085119070057448938687417373769894213883810146284802288504243161696546394218283700875572636974501382971227937992934478273616161700191674595759761302460731827480845852962385583266875990935299235260905113634904391027168339902030442503338732419451140953724245920021031226259431631101523697820285825165001768646384011583844693276491450334980139093625433945830366459410025594064465029969234983139712898719663650899338243250996388157555364655718769776828122365809619802836097194705016828820888096015315551745095893717271560951987396022400368134665255096722766798923316377652780537130186934203490946097280783673735945150553947049833008555945822388116101226069084532092332737958227318624304589178081841305944136316344971769851397007056483064221592235737304728139939307136766318405865727700857762468584173780170349981021776236740383422114296814444592387324400735722904878757030109211249592751797475149945765519091300110285896996059818234236268176786931571490037719868440370040873698884120281585851615694165615399068684589528417881721763098228441341553933850450849336465020757063508722295697391231335628014897840529015032781431336400197758844931592064287645997994512756177776257094763230772689307200157183499258086701262399908856966115204416143876701038248758575776928962497067333446858423193762016910376229690528885028456334051068206972491174478120532674176940986972639590806099607943115391238900252386944336384918409599739628351537698688279810640279721935695709016094994647886115530167027911079341333992975397079505305106840631018265517640444265018284622846778775491019590364678726626751664391737407085666944292173537855180342995309288073075682313842252956136767768787095898307670841906382404269653937499627785857762893211646077473273187044527367941524896940463463489652347129055052158125086360130777579766893790343968946114418378591621923302532601307932037385146658630206595710969694798426406404793247460686376786979462252767537330072037980856895734108519467242799517746775970512901553341365700520483632130415309985283705153972683143211663228622419295935163116612125614037509349400784770054923276271158458606449826237943646625395065319885658857095026796375612352171089376372585698498604651433594716460810575681518971743163054939700221896772782021075424281708477727783913673326034155515213684283766351493120499398999630166152034542783719589113012204099410711577067308937610127081770657985237694321069873831135692036531684641241544113821090775535817605857241715049688957499419704964878350836503267306331493857562793452094642832180524183693468845952226608643129688743592716112218811968027756090845919364707722013348748119946304712664257818768708639278632460995228172314188037798725525671789078560039747503843505192487760331263160872158086565459949469774161167175738505648945132121606570035497602410240589985741899907441390965976510912566914158152560345186599761837734797228228540656996134282703441256024842034986645999571916467241678378312365930308087547040671641250900955708662979325497593333437134764872647125056535399141021667609081425374466805192756980247548180194502678601975935511306168849763210912035768788584162537794849728638594359169065713668103470087089892425886869054970645571078476236723956281944032910754427888830253007998970788895050510428400486200346308194290096757995430788163817691998906343540380487691412923751746180344152256622353225051733567805617663061391208029812223435351423173484376350176216006857562413324136357429665992644581827995277192202690448519098605176878821055686276620186126866836825914921844009189057226278735420441681039196153765337236787375724895630999789020369103408149934874677816808223376310540926426851763318703627769348166450526951731762576893304899643955802137402452205970928657950264075313973069198138860032008955416436265724471116864008987304618515879634297837901321714558371129271596660064109001683341754063092250534438345668161396102182286383340767185944345147162341464092794723736059128515156082911595875413937283389803808434106410441296670460282063189847427050652976267114921707783146975522427748487674634790677964290021925759554999228159947885923340083188538214871279807387730514989264085263995459232689818809031692596205053051903483511655401724831959836321141830592943529333594267029165955974326033280681978249343415215788107604830233585750592150036057879983687193880052938591253504966160098650711075565552518175520530928441997067630418953479050384496200472441263699519286207828468471752913574208310246613137792003387905467653547600786354801799546345695728922331259308382910492752114269016026175379379539721552797679263162276757032892645434735207688017107372552785008562435802756336408150998938626643451552621390375748708921519648489239027182176700068412781036333311988514379797920915480483297947751133870082846988784515696781380099020998864448060792408564772231438863504068341263021597599946307258582531499270312357733895343672621423884266423131150736778639156686547171610728442748011832018108670610692613157643445755609840227665963612244799568983245310858248967283057544070577849026416407733130118550255867314175744020614034355636364478613023725864401705666411666164798001039482932928413396490902958349333037687094687197973014647509281675937907176907697315648110612871317678957782686255088800429614217970261028013703395737266875349946244346834695530781600612464933485093010478510156117488806839975588547843704837411353449094130740617917382295242623056862012191820469611175305729383790052127851904829406109382719789262020031695317157412956803029726516878524191423775578675752238290553173613888992423665818784006223062387328625304628047503953692981736217451480992250613812240866864882770069038145514946234758104973151816684862579283486518268439014371285494284035216689521355428447380590498984219677667265881880353867287335331416167680156980236052960816521765873450683449134642150769253242223549698544712126242883619143261110661500736144716433240530060972007448107105087204802215913824401740671375091478037793313591952886500970189476694950272331146369756217947496879306673583849722634714301423921262528930181766672576310856071129587228555328986844040217305979347217503199110920082859835318493298427873950025743467636435359307599475484303215900253147987209839560649171069259247891443324809841381992500800098593870497693305314265447622019964956721500129242963760954396307771710967495787376679356454951126144012535542234900187831882514348014672228450255416841652704889480716986897928646544545475589304588459841261971109641579667883625536174403529509045689207942041775224966162897073441664254612758377822357821734807762624285383731913577937057168477441519392695810504675589876953894236554277520943250483489205957423401400541551652897016903807268825247608101293472008198839121778546559545400216093514121630232466944646489966133120713248424242535440947641139931974268453317291227093670630959602206595479049247651573975980213373305117097091542290591843077855388817461391826201397775181790171759300141450389152623710315457792427350978617873494503071707952850005494228908057333407668312483483924098759410608237908604116910798455367604784287453748836835781580807266000443649880596270566245204869702618609536019158396619798038533727292475106357773651717639561381377358000707195510374833680180231298317590352940966720823833691204734334315577121600749555045247969198166814367041328056851399030203844174321275903663545939846715209820288142014183681150622115252255136988044845378300556727583627102168642195681274660268328916515397885245413010138398920930277460218727465868886741376412924921232395615724157474589791134835852631203257734594948079948573585811340130516442169453723986264182797929033566371752832813570254864025244252585486837533316612089839051346762146632872525705576557129607176305722527661562647959897607106980053675384792486443175758492066053719734544404765927118569836774809407480930145524165007727699308611292715598813827641434314212482815997432233524801721432416711034793591993251618505556568255385073686524709487115675470506358590810804819822468036188003013683018319614483587729192029191614035270299880279581573901302736774626695556979858422454979591261029139003079155739339205496002141240579370358134643831776683243031604593398524922972426072474253883710668925366795875548653828209095130004726247696221596470909470993296025473282166115286891238497146915981154887678798507708580437611601864466216337868264769439016671045282946787896457360480375962150126493970819832940343031096582318227065176281502727117971548436700492611542184374658332585452641637633952442300881642702098770900238341568043047187227756246860631657122612830581929904300734148800192985322306040318189998421576626818929156683252941668126838090485607847504811236838274279733723579047443910935682255236769037666277257130407094008915130467892237714479008636791322478626095446243541839946138288227852443441342146963779455829727895781491464646160903432156096895772161379115352636071614700073491099495978013440660994090041347881292497637020838271497282689272045842329163277202314128308726492061334675954377589413381216961359189084837866982769296335199564832630573221488515545357706720800112855925795804518607444657449025629956799991065456884694185647059161609950728712864172289426020468544204983094376003110288178289349658914600841398672466118557464590006613087558570627922457195604491137745922642775682551929817756733775585507197546705206640282378273182352466225005535736907092370553785582239387684175746857466158358688474146210780066964091783714999752901670682289090364373690611230219184180671075994299389693215674155993198783865073217959837539829142060291072307428876718008074693546167323502771552768069231368989186540181077740655680751647161003984541382833035741134357787044484635574827634205876059425088615321798019793782269538597256758892143717947759653363878726969680213140913247488259313564216129620891694995450460256595262415611057652554954899311505589218139039689318436093828021462554390681048698906013155538917727808107370836174704404522789730716363851082078865542618554961133461084994646874913543757696200340241487178060067163460191122215011043602839145153255238868173046825108632271995998492492786079309168520680690519862558239812356303754640156332914218501889801645782601912282040243189761283500336489354918379463424001907924303797004954188950354162845713968243023836474771477580745412916533922804151174164280281449250854341019642441058272599840191007915264729360024122692372129729317958419709655682334850390260728665915395855901134689674144090985537261347573793315930262243713564588372358433698707859170166776157423634780225981786518450434550889750845260602716419388795810001975693187217273296441800932433270890629657778406473109040881572226378763426544103864044736625664594501782725691101900711832960643262089368777114836605582673112296651362401652458372572730329387286305518710155808573852750916326280438613367381931742623571777530846617346419570216355158369715691239352956525538634538838573018326019722929489230654930533372644425701081757132832469929239687265719248157651726048975370004161895675182392056311518234790970021262309083197229913532620438404581352862764092933049317719165980955301365934681595711749375481726664322505638081451119081483202481116140193524271183428140724535805505543482312634534428023446379069197504575299692634798711001398978322036500152515597621984714972401147285451559318701317996489457922369834195172997207754151343186799380905377543799114422895058610639177463856333355280257102035479438699170657481455461182642140316502019267621358565833599536546664800608332824619291609260091029553385825353958408036860927734065529885339163241492277825950407311664406960532573473293253201295590343147281110324909845588656152698445592774261636008181622832966703713933366975158526757884463679885844045570979718318523034282258578104098674644535131977264761896431965446604526003989448406269247410171431248419812352915154973102807714136477163781929998063907298651117321658220964500029424872941307568555990295602344893581129444992449710401877507630705668730441538881014519493248722113702020625666216600956311658591301917921194871703487292195009106063819826336688379474680865170767318035346309264010372034872114847205499898119631796805263600221900155604702331402114025089356644031390033759674547652380437990526982447553567231983195397876202864502680295414697558284338647034504314807211995106727882093628760446690191447364750805640720647158859283903631278050944371601030635851649618635450113953391683301645100625037258459469474166354325361876461143177482883229535026747739602011036843186282682621450725788987918859175945675562801968232827570761328995363025620674057329201878876533646820606788714025868035315617083747374098173427112927766481076577121601179994854469218812621514858881949027681662461544931093202652091003102924486743519413711318478405430728809152638226411506660989843415612641888191426177313548804736421887099432825738242826371853700571537438106591722606843252460576673172890959985594726103154578012742554952805215404590136887989221266828771342381715111711103128583407597823599096678532524200319375912123847652814949467078006515175282469185886151262659265225120783509792836583711747783117998174167462859347634588144995721885333222520528875599335261495768483929576774447253847760824980135487413769053487451508540020328349760159292346265682198995786757627815197446015607150581162717558091712912148335932571760724387470591826900478404463402652925081880633097790264601526855279771628558075790757180530184846375195306921210295311914289583733597753766274915932585815405519327547289097649449417000705073532553600275894202394498041656341685991833568965534799475309914142740567970057830418627590492866611165097346043071471628400209293757543641046479238370217639429627177439821167490532542548892640531330167233964353085425444449914318443933031324809821061077895222762293628586783533323939281758198057325214724646279296220296705679440751711478942943409471784055598696569682613347649907183102341230358198485145502572894141887354822994662047522265369013917067441823219487436437836946047508574334865987931039962390844674346721263925002820008714528330287317230216957316999420704136581052594449776963506602002208667203205179852026118512738574618088366662505808717789859394490685381135462886158379541769418161163966470931814680408722907691336233761159372427394305661797028703564283485724447253578331339701690882962862705314177227663600595617748622661732742460288915433947088265601511251340811172994585476870966160435822074804336105559700043310638307006261080566698948261326556125082032391796294093514501101747626946024562390469305392578539763926396009975097229076680735619621359627053762475822063904920660451470432474584309121452914931086268786485416347330181155566920314700334613928942738317635838881396870405473837826535375226563205677087523743115647428680744827316801547514645033534051084244939978991092419281896912236036697941171240338825426956740150247677504672435777992812421616708737629163668274832588051745632565367868336521515758888336856341034881550539345336558688468117402937351902762706066054525960445600095561165337907752784282004340940579325324267228356075375835194074185268751659312332259899965009524292233251261996869318729810043743723142639967101008452024487545411219141846651809934294909263232995278710747050812206782989068231477965978703219275999919367496170713506740269660453512741070926280773142715145982489913199113260482225256468014745883799156388480559349787159051333817020362104545373960910799622484562705830592749015589650667492052103010718619853314057343752870588564221566933464720620799423600025492260343185371846833877473185484732961960848394820549510679092978263828652446041915026387433956709554952207359992368233576504259184059597313165642487395603339301307210447202580919494496537163181829549190514795018970138346294638737454950461569864244116314200008600944962212447935023220262804868719016482800531501848292373024069695424606066133346810462075186978968211659034547933158473384823800649434839413966879486759333067532600336929884918947050270176087288184614326888817416243716799807096047267876730755163884465991761183215088691783295021240129818487408915913755939704749575187889948577503315107931307123022824036272172577047282917149017937349081964566978127205754706581419588102423860820079008761964785404638668803733811382890317921353263841146160416724623277597258403107757630194986341722394331363171205719389916938038178603359262478238912396644394697685444666784392877695354231863160865118987840047071970114632877350127894125528210109777338782737265316321521201136795696312671301913791973421684885956348123827361726012442109721796905898741841493751352113508775970212055450040463632204685376620717779120910961341577323798055812819397187803678641690573098787233670116815363507019699220125050227503290939351811661968562315955838817715133218061482102150972847606115632954700009750715965481399299936393803305852408568911421200979953033416174761751034205957491946608863360651854589768035187778238882235308327841559052820439015029838236456956041956574722831380093443262566174200042127171292159078894940740842412545319000719757702991868742714303954555772987992417381149607683671359178486310933789041094263384652452862343538957446856208121663019215210859037695974483506998850541108739773966072880986887692589479911903386641297116957871397201963300467099087916810625919390034646946937889824380487049937798963514463811083094088432184167936480709713221552961730898008578827271065356132747094630369798701793392552621585433806382838186413672924484616440322816595764543931386747592722446013558855446976450650266455625060922555418232030466349618080340263243686799548041633297210541655759301516594180052138438021159762728576282565199271373579666449899697948342723456741569868200608201170448154342312701863194303373840206272897017638131471941738544343151787398902031573467700684641675524386796857892391610356703713795146108225839839562459668775027962468101977477853009977135905810217916820120338313778605584452383192255591987342450941195464846369788861299412346585420107713362633270181942230701370557913861520080931192721465888825733404489177366700260705272896443762794955259452720646435479333777077258555137900003666579020842790051530898487960479779234515535351256584189015434874388987828069408631971413922904402857140683593570830179245775938414506390634818102372532243072088832847034620813123230696193167920385148611823296294647058661220791068234847113683671199322496951356986877846023554774532775558998065272073152736043148546141388538657770921686054895694211056495797610128488465305907831305626707381467010640048231821533253521561308697020174436764321736954348023835096740574453793962055759430839811401767554862098604896375297960191763449503655442485390986513659605009442709685371345414904383418062402201635453144115511637815754073455643770624847804870564325213008041828419578519954734349627517035654791074107278515314462760899585219816950873404998002941358423358063543091625517344659258905585738282445521190656576962448734180152749216374793511776701154091103498252359467095855794143779094404682047804707354274000435043682385370002905596533005308957370663506814214961395533573950824930406817227298595638716025020962784987915914561884469822385843318405039450858252845526924105704438463552548405295086005252023003061503699793719793633385361904831612897827859422925227096270680140452802229090261437709614469367725468381087335434441778434683419589986161071843806706918363937921956319835831083586837622770121999395041115293462614690806526262840136270097289392003128174260902988262228809813248309904755604159572391660049500383473118355140252281110165861162319966022191377229420547435533628531020374141210603393566504543717120878421724902017037335089645520133150437804403695498648087079516705269949508573836464824534149896965553904899045127816439034760843769378967743079608586673522826660673003141089579500337129517952468849983148104178955356394317062494364067585475735018397241969420492055761483500361388882167842307903828265667847307673844639017724004265444529383095655453817659834751290471807138945292939894459393929166659832283349022267395950122936253220894053743422883274914473676006069527822742982002639956320247760916461369837018848117921095948551559079770118717058082794920136102373273510637744365499078916306438563858215416409624706206855407743455631561031195542693987769267221487393126353984679826155195861822283279311563035015395725488934642673304632719833533709351905262811102513039291762143910251918214571448912645089839496497087715100806877526783532912227884190666370771980913077674688937487460024693290498302417005316614982311707101745385645702781421202625332252433752269091704158759464697222505073154841963284277935734819464345675801478993260188030394731455349780093369246146590318971694285095059390497574475052770600564033768460526588082013332356456128339767872045252726637306833478902228288898211791986695850894552849599719085004646714419290268699118177295944527338600273473110978218364319308024066162728303177770479974889051257707753305919143812603048509912323544235991782855563058334023021071249615987929081773930438411364266887287165231521158283007036388792847283390166286676796462518635742472246274156903438705259330180299243884355252067206811550093521319531921488246178509064815819008884954896511532327684780087490085661702905437413220035507812056193736676939163054564336250431390570615718454788735612987307559519233974617623537145164627832987067444880928218899181734504907826520810248498719995615422926000910197266424310185184817146587675825442910033761929881355353290455132223644049255531513379414401110076875371810442472470513856136611373617055798334667608108751022833995056531067591215581781502582645800263667139373876475224214988913579054017618910855450547750311802177667732442079162727362337935071756288641170167050162752793835668506592655729197278807984034885531322591687084945489850609698530110986452259246412237459470386617429923000008487387080850477799692874546590607928430321184610908575915378975086234222050378391739260218301493274086984431906312401123878356341486707254472941763818241172886195018024241349140955851384689880253971661587890630416210622698520307153123484366822480956641158106667035113872172167501370800391480545955934290017007298088827341935063878326581178121713739132621912980886489196214212665663590890740710226468773189380975873512652371360964606425268136384516375166828786876064985996439891505010133988080679231687292933989689542786701288966371267571991847825221321924288545819530394942412962912178328095419056849237325049116384783080513294846892886959389565610508102287316010002044164405659500833727885867691406026010593346049249371284520277992226824244560627083038684160287048470407936109502082467275166406645989550247293329548522505409688742199789134076464257746429450372300462332917374012647174756785912303879325788074471375726748431314107331268865512048634063568034744490835721316352338596684502856441822728116627521145826298635634245033737549427509854307702924697251089558598695399081995734491716767901270539495672410622875288955905871376104176710991501299664945285104903017443595553027126731300540957984001962024201906714067629752167431115769315329366310036016982875892824790588164043063598512884973879442675078876875218391738267579834565099286958164414984407502313656565953725638165392385029067841981253757037868150345047112444268463426924201653900058948953213307448072944282803190671284078250719579174800286377290147499384114433019910231580516925482320034635191355870611365575189559090502187059242707741294085844532352778779358023611098186377180336816766787498131248391738033377225629023992105986721979427610630886526336281531259780187181729074743737933224223404689734391598852503106665812122175717096461680708560923110138632876765295751449190912663135236176465101247845348809649870412050009340683604470089006701806187751408704614381798700511481860699924307338746049754618464344150863002214619772470577306523842301042441705869497156584206434508138600514482853352899814796046158292866147156210217756662362923617738168639938842203451056976893117582374066020330908821881442397530935256137530991143710091262825564457668560045399633257099302533759663469615969134012079540853233931024699029401884321006299570930626577415234666698035798319531898427164106347602181251925126018225963493428391149533172820728382350814557608133531204301851054007886249115015897145223196554199700218051249872054362127455985171395643050166942037629179455207357578904567431394571977312096271461067339293864641210647260479998073627593742465428517739682054257581092228055230609005777396984800141228484869283604454782752816271306143047231505239264978788498687205777035267700891922376615283873775665202836846142700850645241099857361670485387117004931332412659246661778137690313771546836457020736702519584118000023425365939438802657658594108144063291510709335408160566503120403680168794840770771112390293707734328302621090572880766008332604067231625914741105185946441195908003827779743948889572678111232726219821959493920523175325909987234028844724685359623862828092387180519754882602337628656725354325753337159372207621404718219805225485236613288170212731799035269400720520937279692376615303068151060428550525864882121479619917800802511338847335408694736805239218494796219022294613566676016765459036236364875431098786399091189725278653273919893737386175165600656172303516948751740831466145474772271756671235764316383215574464761865121860273044153245772323119111470133723898147438686122325658656051456196914354732461860252296580419999623004171848908606061766044229977555278763199886403537581243770498145880697133394791254524740387765970045682430599656751476738249719569956137553536777545621154243029451061844543626228399693242599132072589369058624962404457790420113842109094719270469509386837114046396712829528785857174318577438366745419635464476363940766671920389076138320162502864453736425927225842396304911637807755366731750022496158972962604088471220180393519802871020175780686841758643614854840371872999460306302965819743067820213993605839974975333654277632617880475939114977510743916379448777035014170738196021634287131899897097113852879486779522809253981562704577591414202499521258552850487441673885040976653130166236863965159340936111475766392353408305031390646978453530566247541363267068405063779946926508870935867312194248291925283057551052363548230413036334220811257033400449979825083156668113791959295329129950228960225455065390028418000070317242189550152469041482534522386390861171106100950776180460927583808797355863860882890345932283893610299582539825738220675098070609918993622630629991188134558242702384804827909221919372903060048157155535728972134007595035465442751382023207863982245703592603884676823905070541931183366333612502795793332802873417566810861839344056026632906029870405708466310992264245042763313181587968910332303193012801029682894215530171154126516455022857349458477510452214786290481526999260573488572642831964151363554225405906664242369773179944468130971558958618872183147668908235254292027730442800801554894472352552141579718193216155699141408802756393071260514924480206504236017147255554679187795002429547022912996688086518886384730570925320059668912972166986587928288339478794619428538507125962025137256954052252332299955186816591158241999201373023331646507032293605836569379034704049938014520292943828026385414468292592916464975979213594522675450720148787406028341134725633704545170356209199742112482968705328612480139246487020362316239459071963443835344489816232943327312804433347874234744734131937881421491319871238282898972694557010011190032973561647116237826454951250367255466516969658653532297033321736170935404067358827031095510036844673650248103461120752536533949673022262829300245931881143964672812388198309745484629971975018262487330597293976392789557282935864977041232463293156015698548591740835361329051005035787435467040975989005296903441579767117752508086000749719447818929898943002776690115062700507922201446644437381433042664237974713455204080668472466410930716542110535067606759154712266811723912785959339900981571156683493240917497702136129366835124289296711511045102421040712218326931560224312930865079527895710602148440445279194960605386483773207221479255042842609593253865660023175576885203977130940307397681095901034231365929925338148406063805318523168291275740390878255552698737449988899354931784144308893376564717287732230485593806437216065540495167130875298441616303121115281241327920177486541846306220607947644616597817699728857207669235015777069199734526122849733675933756608817672818477696070921015658097521140225642056526938666883847892964781840600042131045756375589194039334207786582609578274849795234599025363355610995469102972005318309176264787917675489153852934181779194658887825404372470612439948779517822845518363258939233381549039665014441932291950904063647570783200900758923893486330054102476690297559534113914611993236470109096560286069807233312360846961723311507534448227475122167002086442044662970515991273630590149181579132064784509198844735459906509798268923946966199867530232429086773087566509060253918868162966944167547255795512710514518658390319197674390660059077955404312459893608325302209331761080028137692600506116245011226864965498197499895875052462627234375562078002164706633017034144874103659800971096811955301216438178036996545825694024393119507339233258928599072303420703189261916137588299564125593433477228688070689167055153165807222612305134069315757989741874394751667671062428339146584129086725502845578976824187715920948253769509655547026688830348129956931303242593525020197761219664730332057786209218023223257729725013466593942362014402123837702723252515587010020651907027483227409731597014150642872723780816952201246670131198091059833128426147971415143255777192100147134222212286380653468076631904893387306261905690048045222741176631784759927232853402933210749994353703838656901673412305863651799066141128084931364607609252643367258073451591589918480433694471884503051106459050410845304016373217864759188024765124344903258190850345280364287824517378629557985413271641424595148499418630089676139131544286704608917452377780586336826454503906918453858583964022487720682748760097820210318093055789400114755217417140465817081461846920368301989673096309741283438902409831821785836597680529490869461437080382315933133433093484604898977416373136116073250768696204605852114750909193379939764476869287695535020083467811890949825198151418395545235730787128721748708603243302778119605569884453696983167053878800625665702227119427241246257437363765456681347907710863578155522323657418095597564270546305602607879886456518405114447567019682547457437827701374505982499947878192435779590121446522132559619030904347769275816070194208776198127166971374497656984437557705925372414600573534058235392766140930252640342160452778931064742041882929514383289676707279716070334900918177337047653520342587273041524409626858376038272205410216744648636906161110506582683065538994705327620168472119655605560179992393436529771851511346433632967901562372223565095472844247825347360231325905905300780289735171086206921329408231131729023287025033637672676360910362525895372810229019323661846403320698960114728475159302954816673440788451543843807817460644790129652093010673952786967274107719841504394823386364791030330587076055762562349993701944183294404599369701497727046781509163644046868087828995326844433464502157237566236901917078678240595127527913789450328902574732023280746458650243752768162909203173172427776891182054516558437121110416808707757521331751283103130069563008157720818081049697139662006346348503716527414673956316988421695326369350767799423366022089420269139402582211787681886555330184788524046899438200893401374966545904989767389673641624245416095173851338120483726985609605048503565739062007229623793520736693163850976492510460184075151123313333787638261093824815838379868437148003481852268567263577215959008490566902714927597951736036661935599336435534796735105872421233187072637378169984560729430930153622443890374891986691704515460678631914633369236091957327818762424345288884251492654254283556702074234718154839771796095050429806158988148453688640911448829418852264132804626112682808540303565667040164764873222453576293424682720045102377836787372661844671324841888951850932549188808810290258699515311223240897096402749411586229638576642196266344470878170853321001263552808288400689778594231713977539913285264933278315582568803527756725912044560973907674470876658422300092082298023725081271553770152727747587852374499540665977530649309722909144823670109662942037357528398214552981501667024262995860607643221676027470582944402961165579883626448528440124581816253614113446191116372631223315247808181607521574600426312257741478350603364443534346100951958918108686722695146458369655916236277754134816956022818490734778385131751887636656579825169976043784992272841424035827312685757814995437731253789815590069126421331615179090876935033260380013459500793187073747306241300062375525935010863436181723302628018592280538869908055772526117239400001734551520182602411311251180046008511136082783692021584937238179033672757849838119760651063306607969232024291695790818764225040576062580781508579310226497841655023710707655289424873095134749951083167721654384599706799858473309292302250000156068134779890998380372879639333917863263031675946580679110214700851619710788557494612160593458119871425000439478977698136106980640008182672152160255514860709603721064579671127303736711622849799398599304748462257013711209215314556345975299181623131240594071615078557051407119499734593305274096373198947343573310193688991734172825460712409511401113301198065693641372763446961874900330307635127536789540750272725427261950806118879585177483113739174337798999514170312217581674791616859647237834893376010600486733703745389071998542156136046724928425926700658301939120644326857216606423039986110214156180949359450967923055025172471954509791338635073005583570760547616835582648103407690992377278432007344098566193599165835008714743937929627399485269192965769272036759585661441348834324205279301130241390660270076803248058297464487576490082462373008446789796159234180920423248239023884631734761388762157704986207401155434699901338089728171928456762908687858253484848132716528869340493136133692040868565433067898327749293193076245782705590793848766207902676793018282260715686977382680980703369690407104392334825359442588361479533256658902538648206021333179636855135660224267261755132224548006332361531256765955549799263475135002602823138537650110989605117247975908655008140864787240237894654463347479298960954840040074625361322016626654802993092811880305040050028871326127468995340333960001880128230088646189551288890506327076957563767796149945125492578481304017301990017909011127649784421380099083653115050254848604820439238559769049133578110679674165149543063466546671546866267232498711964264288768960760504452797301747686381134761664742604226661378053114378721707420859968552707313983962392789621884393088781866742950313776893874867672105671575007767989788596152828108966519360479025360827324535109523413140799055439047522459819828077387080272779561994816335871082039429707178968732302754089759703239447865350893809116291622814018647442679627276483459368194080867895323252228331916661120508924972961114761482985544417284164091427627032473041052723310808461599764751007805710863744427478392838115643144462424537594925844946101629934460808720647491945367567976088839059900062506074040384986091713305271104359963284941828942886551717170867624937087363846889595084045731270954052334209312663782323690809076082456731522816519391474893746047162091842717871458193681851798657331211401833968042600276966217564775392748298536396034919677097382985196483905521038344053943738496605314705829054182152880488873550097616044411412355775396500336461253907639370237030271696351227065694080383499697891457060216498231660669044340314738969157210314372637751383413562036841683377379382089208329725970022546773299822159524002480351811297600658149863155859011184811034571187757887279904857592267789094903936703732816394295754730893135764135533570935442562456729116830663069048032167040994385735083129865911756596161659038937574206505756294460683066782260534802993156023169698904151282323618486706627645941877918989647306139747809304735656715876210907974723890705182982180734173277204668130717762234709425882448171265284825291758331278516554862169884555638585685560710069969503670800162739366230238309238801774649576825353596831139843173432798043153890444687034287923895562322014765783282488218553447991917249624224583655968779929724321016983438915359746983941011894513589512573833314857812802870006846828162942282625213267875806757772351922585394760795587421071852079784338623143928547816995080824638302136836339150048349920018284785184479531826136987481760527318754081376961225863086955731101692541442505462740470733066822802491766690984713137810733701420603274171125000851247416891298775948178453949145231100172753181319987417708822926885533150579759808295568943494493083698297719629960943710909626283012061642525985101801788192442024820949312464827570261692104443757554518151565934670314212691659230657304475433045860043219555802647577432843241417586997070107852838879871343036741428182608815151325358466234295270286772197909893589689884009302875179648274888602481150981100964259232070437628799750464334484492646437069635157863972830338262126054375751303301148958465887786982832914043452937084665926125611584127755913190879115693011858364714063633167612190811272058871417122594537746478323778637068514688657067458102617069385488847345770112352813094887282511366549854375185260564361680304715076264976457345754625945337037500852994063153616866694878978267668289386195077281946013293538318425267742963728071785973451523424463959354364513256150675524667899049450474840775195418690952961363492504709458609124254257466580103757923262899591121530008452805419115361036096598198310144590385491990057994001301893351895475154199432064611185000729444755993859331423720447288238970249473870750762963419833137235620851176485055699596478287009247234245351852339373883186000077421929620854769760773208644637899938950939964963672276228157648560437669241756236078070669074918130574392758866608168267125585045760323128188485840053619890992349991542731202753809673582312988570990826352222700809330304625596461231783509380606508756554936329860448056720138764431886261116168142199153354798792374215077654715129557021126969888741413893474557725321876671779561742367353549477775580520014627368750589261197181245713396666365424287129369697738847471976668265317619667328589181357182564439035470577979750454213683856090309030841836271439268621615762265158767272538214704536794679850168151203862192858610820672434173209726947890352715788217242601747606937852418835108660955850730427329240568544426653074247098801118156661669831894494139374108837051129942956823865852220526210334155155108887287492595347361902825052677098769805152659968454224592511731169938605810712449256573769952706162870848055714630815115106563829796511986829063718765982839829170303870239125045779953591435742147599795033422662423405959642487895234290894063058368949702928229267959255663859688063172720181958551652445105686944767071016822270430600293636567644095870707552665003835010931410755618081807471851690642824765064001270277355195408454093910216670359799573379341965101100199244263780406890332189460704873441681931616766343824609570542622348770502020826420989632700711067073029583019069750162637973978839379008214537352817661758394789053427196915404148866591665837488389881879145581222568763295109414228134538651142626754186086870648042948518395391631820748781484320173496817635121919950633917988484131078522307430607307208990520182682876882055672237050521745829148184404981455132027437157862874980648707594835364882467624546658101185518716772256137533351444107768762993877690402941847342341312683603653695535677500327065674030281877728376190127652412720481902508704831733650038893951018505966291954876820957190621083524684981453835186327129786800829086992359199488393720421597433480573285982000897886724450033951633619518128999129034307990713203708636632703710408452145338217562040094222766122120737704130419337077142005642619147910232093137714892528712875762017383965587000598747176850040078882007171938222517766704676784385114920909165540015779872194422807457584431682676391188847592713132671388594772022939256508566123528569593997497373095115969715971004321493821738088324889122864242866850796523047370703102292316199233900652604181459393714648641947847482773450176080755176111842308662780959851298902655294262051963546223819431967117266789680570876989070700911188777969750685980309584261753328253319902448189296476194593828975243829272807906547369074301396371622842933413483915913654063421801968448369093851998673492732486661751498665582789560518750242110216587468821964397089875256762515370539913511744777043325740679959568202941912153585638851480013853689738876592337081546671242790479997867009719103308592760719672514120654447645914791398075519468336446018643769556791691230681384864768639770976222908864682769255100671897404191834437461544927231910526461290602052459582726911854019347800855965192011122765815064533702903469666041054682317096763998516936511865604385649249753616376698989654591862592428610001383488714674818798009340665385332354629779332308336493454051164651891453608457133809841103281465978772966445077399694889148240743672286466864256997253834288762193205421180224947400738164349011082168333849101578778855022071715163423129494040625709889661098842700654963931697479113666734221510443695215725009171782980567103178443999607894518238213058690971947794210199873833781541080956725071821090534564528340614144017904904800655780517767056381395399380885858521657124129756175049946332626172101640974523851770661697933672614367394102789663640959643622769433518851041253642535426190961681504483231603131492988025692210838589585252995185578856148171307210492000257176610781668533245766886165867641216913860044974743778543505179967326958169751034288128441870988639165227326321618667496273255945477779269833768396729402381584546532323987258076578382580138963803627582913154185662482728458889464942500974290852140242884537787382711024862603795775590824815210198924399066751011164567177548649625457490177116737689760575302491429000992344655058590809895902883367089788764135693537084895956824017711593771460197812630447905253866885499385691287372505226989046278873953035835406985565416725139424149484914418156811298594134645791455632547136825864578001123222322246040208671492734408195117309969756052588575697034199860595759108854100918666322847491782012733015825652813250850414721505562350512434715045797036507615236503375541922708041200374561472595718785381860071374089040689001497404810318428633052226277178995991387533759879950939490837321436080017096493833863557309108114450216115946946987088960804528908207530034654541095838761371309694163400806184961542986634267107236373985025419157412639086924854215767960071627012738780422228427155133216719487855906286941593962327755763159841301383204842606670912977208890252768021321779294174970314203043487638890129419729202400864147163297731118496268957667541740464030454099034344458187649217651918769602969372990535808036113505980392854794440940903901582127505042392295893092131466417126575799931603639263358862441422971717899955352197451013604918123196567511315968868374553758588780176049777320764114311338701551237487316571339662626766604992350788414558104215371904137719651320135893071283712804430765473742572109408882606892711646585004574896907421465016193074063468265671416434653581908026733490621927332756344820461141002838814053510638930777539266370629505748027806744961854967663340539024142140619935108125939519390604048609099678800968314310625874123661827135528476400799405451344911467470480875429688077095927238056805778002662408073532993219644511804429615201878955642105382424136210320409793994210021873148034986708842709545276910918909717405162089718907005066076774360316255217121702833532057333680499099587293471322222969598799530046383610663059486062246488179655782886930596115696648390619974195306078858342320632713181260408894015786962139307357394377667121901333528314102010987273686749554319968620348774618587726550949819343040595964417112006167459661978687841938388286240816805130733173635573563454543638909295010605754735048667431941727236615955756252807935226144038233726040135136013299223793710470505897322584719699633671242253851921404750243938053272084389298310548427005174067980393660485890882652006865416570829830123217224484294318821878605601578712917097770361991149396800818183504177812983254389831709253590623031861941141317774865126480719523077722243256317763823788081756800087625423401510088758620616635605944052621142197294733550972279076543100037410805399419610952230989285386038385174383265718908460795486114749825658985760538814798872961282994700389149767333610268855516731730746449389271609208046783748832606665121735184029995525356294666533748339999199387395064196475599225252826588273656459082669338417255475489560238794987357167082809264663015538223733677608655826492725860433356612620876592818151298955248592841420165191145287370580377387607672396077501064428664823081567846148430914761697577289463313476640902334863483146538544051801499621280475225059381812069960433912174395263715207453573961880434681993595750069235355854641743988682988155891548093315510886385385366807165248411261416795130001887325998173640147916719642211352243862790818147999985842132277819223756697170925573352433420108608847556988271912575087598210469068422489689917062392842922855660691358627698629204563823611117155623024932347213757514274951237518559998423133207336136225563940704680708250653268049395143702912533125917347865518388009098169898058286963760825726019247823520975647524219380534441031702771639087515285820955026063784896831626604035314020550947871120906209267402869370445511531748988200008032679926743814015272460481780462910058262444367748922530589925568219292731618350662009892140963422071005843876581134424180686172631741524689986890106347483506383513479296986081010292653478016839159014227692806393746768195347124307777496526491237485926850510251051992744430061433555633360760241362722361742470657696974606006280964337188917782167517938517409611236751202374753390183592417822992729052882609696021951500945414443572152975468895519296528459559934015241033768871191105068747173100616949684598611954901456532305529514245649358691919883459874258591808917614851620401444389254348060067961765509666185130839255857233822910052283271618924600941508495359436530849385015984409608780460471953690180222153439199812430508411083018042044237257221555901554876801249676097151966169078682974549840057219779982085254210795760994295568000038565630100629770217766466655240000776210317081363396133204164991196889651153351743973438982585632936900213771793796557567795048419003582158314782415197796018436216613152173492953852457252462923684411789311924998866272349843928919995080141647508776960284408313955553013140958199096348044602142799829750426882739907225749826965338503604119787292346214561382379952534541840523772649847107380170721570019374861460444015188841669958546355048139956721431685454253468867315350559632164619087791778289437769373474158101352927128870038194443791068362918188965507511186010363677592750427923735505049072821362955840834109335703112926425225090167559767920634835503678507123145508256101598151114096451314861996505157687764321908482313605699839782488807527195974548510604610599074653338628495354397783771069195810461865644143496569557673828769822660296645591821620413613634434767195827795516248016966124334725558570027369304695547716102922006086289950393291642495458439815601938972235833823238947848986294344052517379014951485706988061616223963946907628383253861051958233479177328424094682906735883133291559288631485394222119616329982621381380184343747039937659386575808635744991032480727066513475343360136986955530301594415332478456276298182064688930139766581089667957633442557692388547336094402234931133355988854956674468468255172077961401191321580581475161002457973145284187201195171645780576417864953189678473299417666728981003122216605356396448941950459846237967962976867112987682625292067727721974416001481093198946075692408366818015884637435040352636894260893361445327549870279842585346654759365348604593842520433032520414702242413953795053303327355738477745261050970396199508771362116828469232379284694845898511707742397129188451181318156340912347776612768340274512291189843260599818444132088718066268039128484026573851886979573124962206324686674516890589788830436440401080407487114756485104851736666407572368031113065614002541353529852782476724827802831632086131679846334417453269878606772046917470792287260417691991211663948087715555824945719512401590198018144351303280709838936313253378209462725798261611128764422941124277797538688310187539444908119020085744162932947784871102173872621697513971705971783747133348085861985011000419460950300439344778960700838494396183727483784053688495621064122305810445431473745113180342240531216208059220922170547904241850329611198050264453517510791141989512427446119854565238437184150302196058892474806002395892428071540265895215326086599837329069524002065421589757413689815614204758318399426995629091662233845316823858203372731192885740757058855922485405921654449838311357716102808381473877467567511781318973613346748475654961908614342773890628708429346674173413181325743444642735654576456655465925986950537008288750285074874463410920153538569200157498092868359802551542539798723496779481891234408821388150413781233933890691121309338026827765109978855098990039437708305951462902817334146326478752080874419002703424115514201267834641478653113659171421564247361222199577350993188184882428918829015744325219977942620253339209733040078446887555009033704400420953764456827115659546773157814448029285113746356991134001780904214510570891516340174624439523230537098517781233749996692757000556724175051516026845317394402163196217179923654351324589270070140895946350948286368836130753889744149952213600386572028500653565293318878638214183010901295088844812206568420189614265185258461127754737563953810723331186698677193277777732506466210429874108543901517316424050713673685384524018434507105928483261373722397819911416454256396308981600013195866534610270977518484894251673232565080172431615781750495118807975684994248797053502278447005931358381341685944786565282060382155657174954749268256566343174210454246722839832550585855601680293916489249953764693315529648818572832906962969104054719547673650417574296672724373961974066573526660145804512715232325170601526347323530881158795025492531224575520885501707072884418347589532008527727814874767870899776533518475958719592366039223117930227719457893385273063054170242288387358039018228080083538117755378202596053107541435486205773982688259474747162210330614261055859399981817362012819825976357292425483766250927151698965789910106750056324526565277533860831581074937064427541229950836810307302561296830171279237880746582604352419830900265460807408045260184709993758257260275633287772329715480972562681235205530129754686346924919091020712961141677453586433164460190900840432393631533365739236786640325945798414462845414872080700451324931636458572938191662018084490104659528969615774470830476893617684823376579759735936443507339384051505552552136080874203483828580113478644828065170434787646663924121939682655257869712664725254139260153759070260439362093823063056214591149441705519134926239378194274070833404621794616763269950754892167154164964710657219960985308438204989668564895038954737990061965586363385060896484618735694088008258362309858854231337163220614868817220605526664025512953362963293853253376474795334546287334335989615445974538781958658030331441995201643722066324654814238647485811167766426177735241643484470135039889471828755589645094977113560671049104384104596570186674642889604799373309837620642992862127915640997591672590090766069921363658984134326148827139622672419793077927473262529563612859932413879450542633114179161952997969610003886322365583729373114481365654474005360586437557527256283249504793447873728337147534197076419440614084039511753859719676678851279041548046137804239986607120158064503219828210355324161656744522637906775252761556841389675669838818627507212398201355632084956281643608141696725402839049383236829167019582048068156329792928519424530878480068410736880210082334638221409284453389645169244296979970075897928430183035454702186965524826813853107251745081730208034821547573260287321082891955752868050038273017477590099780523825023370861899706934504529705432083871344681377349973624820532124064631965324152378747067668869914512727421551973502018366587367598250643864209181697428208256479357484577674191094556673505033752807584206014811700465136456762579456737702681620926197578293550280449554294485258871262250874844103558321151495573404867338439468258824970316509841239147718006308693579633447147734253738075818878910764503482033936653288462161345582680493908008974965801858732313292988173724247835790742837884969599678827642310600827696425698899173648617381777647497117450972405754903728999100690376257700300935572395131729551977694951680592141335834146280506266266855111121378946565744992393721257369876791350893149774707243771366451440539425577473316944522783564607822032466753059595323073575307668723605710642222293952385544037799006389711806048485245852606627707480603539665685101564285863870073568930835702894567101924866109257939412185795686612799091149895857200783608440338515536777239318079096640309118898283313974486936256213190867436040791457264686010007003082902911762864313163176805592906720031121148161031397788274878747578330938174050796664992112442380068258375215402013223634592203576865143822878500021076968483767941815054853640168644282265621625761371329283442207013402571277734126300096217443447625447882511217428966175362141279566706119789077496681880385702783895467517498734866829976862916637795696777090204814342666134466724975232878960030392401979836969790389667494294367355281222411180342423968441358178538802202427946993558442058702103390452824859383229827574277788264734967310421524454072834371239308366877062422906115798148227903033317587430313257607133797276893492375270946451626725313553518430286913734491920050544368037961563695625006931299850574209285180631416955841152302111000458844153239869048932313758559738078565721800728867861758474038481774283484878274597944566264369746241029312119234114926044089591038323202161419896332142432718828677157859380698169935718477673132861949256162234947818214757818549751723629874203003059986238565491726187274609890759986250205996668067136734659519195040133285911611125481539352589246649625174567105402977783839054691888505034299057146240689303313042528090248711250212676468413005162726762602785180481092037447383249145379795754961789180180503811579751331255076279677017469261692192873422087021088228723707975208154298339293409282682643558300565709975272529637271635192527712106785430920511304289159783617190210753236531691983433275301878491927896337338344084676404975129542767827696673047851038173857815615038612694973373116166086621748964023993771739102519380805920494143138819114753897242366755375050644701154020142373006632621548619975410060067463676026695096073543945342086192663169072640280487092687256993567430312309515338155738150693525705244518949517311224452933963064196180873445199594787978121901331239152326119180878182319411941731300507168397961492211754681553241359788105278940565008893396945486850508584984468274330727949261743328073879982603355111902119476187718760708823173225424824166193710029380688116822218227306335500987830813795576904763394275879624406522253348683529781933724204508543184267341124708122351974725732640046433068126174499339060593320707236587632378581504267670623138101856830461553060505654842330991744636103006413967972880181725559021440251375903171628829618929706769428305430641368732776627901321628166303913841220455501392729616070554502619843218160928794600844234640711846625963505233755739823914000068120754646955683933258435001596497412068261700934354550667962828763032385952676388589517285929819453477547333447347852629082379738728549511023400806404419784604044576534475666388535648930877850217400003007592637050314178094251274040663237954283767391020406928507938555741246187926622151205514305667579213914826800577191879887487995328870421307891699437645565683416731440579066213438100799920389585169622000727322186466516206311696161309330011624634616445859884649461234745554642659510057325784830998064883168659161641231894298681643371090894420063514638433163769331852136103160988368458258709600076775624086096316485695740515487256072389745868832920394460452277733274377445408792665522157762830775561770761061903114285360272634101942307465448971173628552774539654093510866240580272683500779403016245246293811919208757997429151891524232310857712529987863741438553630499760249980543386720978835154304398189344255193063497830851388889681896376926758525752353030427623141054723817745641075861587586232638070859760059439925586900303814910137716786064434495761275822564199289509106549142011909060893980017565410752946617411358936386545874280502001024649711234431875754246026468861689918948073960748102343385031697549251145051386465077638739744506643146785223402806451600111284195593018205535231147166705454411076911007121375605228554908185985865919923525045689629753910074362935953961784723593887924273046622168241660717939022399359765790116078124686718323072114360104474907485566614869226675406360679290301007984619530619334843850130165239858520409911127297246471944450626796409669211227862886239111626197194324704267082534535825371024157697454594287871876669853639623154595631924656535996125496607499876481511400325423802441181227166511231638513142860790395964890057020712047478390220905569525533265700719321289018467152974594345227125588933454444354069402832251412208236057573622201488459603748902655026602349691408517905043159521658271122181338223739589964227381415461612036452184896778353160592933790433758961367773356919358407025432686105992014224647484210258675819279304573554889975502653666866734907262725211294974290673168330018531402360732347942242666301036404827967124514043483334239239459197145839267440771179309274725134016074464552577643390089269780631521735061033462803699272754743556487842990679628429563576317587334960659481734964880785721221283729022929872222846769810496997263236482756198865075129093969505633577004670960704267772353596450427979844968072295994638114303704673988438203834790828276486172710479746637151767793465020813431418998341439816293586187340634047958758156516959289364179622224023204546346732659548823167789399159396481864124429780017693165841218191461465315361563750799283120952944429981648127359550349112716628246548930499171924349107913231476240357223551676709901730685185007592961374537570732948050540325472599179469211764063214985014255627334122439095291078368203084603016177103762751673073519938597776400677973282181509376487814627922424853221205459137579075105929565665814493336416746070225766537535627294339116841388762547534233756272665460652215676095115141918331151977005572884803056741250100667642998338535713135407871410614730253345112037274999163166813183890045613573030763793669118793583530723902869894714022045471671143952385973583772288801659616193490578210596311483943876371045348280297431663225571315119686734551043409046557600347748486349469330814794822146837086567268259318908155623600665967725395522958744524833368378648725791474144513059012631448979058716922127058528475397095074738419726135307931323567517681754719971386558039257025097694515110222823985728635193865146539585131462350611137591219183626124026827870116306074139225968471458746330898917101263835449008098779981320268025839556495390566857240118268885103409341041584441798879704537214952574166673743161091022643278033991729960195075928278782270496319801658612456302931631047693009620456778163127410128457158970566130213028306199800988511588830620539381704200170419199163793418642534806281365553612945139523808083649939072935027466877499295400524410986512763754981477753896648982978035798385015278454613949311244353108754629390823975885481983734944676795155834465510732657713891134526789651747854358510114518572741663183747715033148822667832605974645306809688482058707587173148948632576252429001849552332360251667921582999314509361070269966454687178747090673114051273914949240383377996648588658493835907146068934400365172202081683514552971820498904584216593868927146415949078036644405603020858432251366696575207653610552699292872164703636009892530821528605557576029650471571227925090370215633212354076022109956442174814956113710280190218932381741780258378565621446712978708716798183844213979969068154918706861325414025369892694651011848880623617197792899327252634169232870223236477129085861617075351633873779515188851720738084706294830578939906623154687970784393334641475640014168193779164569682699049379887853891216097186649698838218784569037486082462438012047427111207246430327677317879894623268228013583982960957920454608129322083777392396019871750597398689571739891935330161759236956743708007199677861366519162913572201706689184423406132196330836536485813501477740929649061672022204786223606475598033143948339740378578891774777817233015337311362024777665444767777345268834421781820807839355890608121380819908676345931855313072447277037543265592337065881433248442574401562030146976617612920021274204577905400705959695946248695343480533069159712715875648724644258959223025420393699269229331508145868506025831352320508096276182772169153857658414621541336010368479005117336926468627002212029151473629733706350919698229343063695074515524444394517235087927060018029002821956522024712715409907980140261589460429591084112579383448367610660820000137082218937000286571173565259848754102836559155143152201724076805687156316653543311369043246683885181743409612111913263535808414854382649942783523653987020779082676372750538879423358460417438988511439935891661681802221723324695830236214432475591122416806287774570977345146865773073618875529179037905448308190738206085596170543962409167372855824936379589895336687069253995542604431086213338570961814251756547716541814688166966910288769713945006108060539724765691199481344005105927702121047725578801067933213560551019645965025682061527860361507159085202444416436752475918940599065348539439345886168100284937273295444100753942797774376649559374163352978040807251533596746738824703639687367008578625240081046592936490830390354589392047496203834384926594005582225988220308534322431561423741515181256457712900443753177471224935949339857464606487892629964691656381662489502696190328363032770181994623023631654006718801143244157786966890767160030487959156670362186171696892159011674991976692965140140307186072748426521332744059518722078372676393434783693155963798554978092632150198229473216682133320884269006294367231230634047901547528252160429091944439386587361599034756912029676294441475604521914923731108936414085582822876120433516607430992751007362808943573640375709735492823090222207252229264356332398145940152416210440767214188772113388602044900273410420516274148358107965815020604159558063847131031156656351466474883682606465216275501680332381035684466738021405531342946233329677520992402671069488369578287672783830977501818890405782071800326184093639682380922696707026257501356929543414342298895724766753096555131509059711984418097540737422401275894677709420282823160405124137207636038900123798948962610591921803698481009567407143519813900260049308788182506078904598534072963583982701572730356355858835207045745778098919170022890698779862736866148930518276142097861614072190175259771145914013341966727302069902900769675507095699667247369261909633428546468818749693895500862558289261775849421914134454292411686545130636764386576442210781832875413741552793139748032177345744287735214261913777640195958552909904579723359906919602740003595377422976121214454219239258765252397686771377265406987316863746786903307790367398795121714205844918468364364546801781207308987261481888313939697329269228686824485364101537405276659668573045699649093308508885283857757395944708850717391579736199732663000163549399850350139986302053350828999451937427398833695038571851203711495413701050494973825671108500980763549818828489708638740225454737246534669926874630706627782312569964420283843559922982747468976251919767972222207025582933190193892972599307468269439328747882161164618578585564625941450270552203217611224785116567671078724001763748050590471713782102507432721785581253720948609416481176843526543267447165904135104676014839108733453633921546112668590342009405590811948392345116441352115624548835296089205271810106106367153638594569086574291688604432422894828181691483406712315162607665040995683656999994217022198620580623570063559243273501022090799653292110920262327998646977263876171870286560442936085019224322099525607995422979185631140456778310805843324720716914071460446108049361723929565660222097044456016363449184160167047150006286221408121168690272663533899674941107523375827047934902848794242089058707645095598038926938312478641826411694168116376337242693753236075937455474828663843548403459186873395494893305520223444562120349978847097492444095664800186052320384030278120645927048850902646944528136694836164307837005500824523431901351362229289792801893333103244023572591726405742310095264623062064249419081988804733107083511073629799933049172394931838817543739182036945662970745946718052263429336997310621378458446596219148413358605438347674308140699624226517941639867701496085295863686629574132759303002698907493912947528854003226229876154361954769346325867101234706071335824914610839980260421536917570398143130485006560895514405075869452770419398990063519390720887023629116374153543644463272805737362820738673852920724774913756491744085629303026794804828311252705287413471015618539120119056111175079379345778620889336259623172199362697585274318814882698910282400999047346172181368823572911166888667779353836088527191289939331150791462969232245221334012451910945919614982084177901144336674455460284010980736309725436367135780962390696166897665703850795410688121427444037355663151130607906353326622070978218628112491636939633619985717637077738614450771408014791519411946234208794161379337697993680365873814216199770309061452976511333301451335963667302199444909566356736664086505748866507909105620353057528926187686690213090817493163124265107711506316501341901871025763433033213264181441450582643797148633169879705027543105427298186004160715453920397887218906961349330228138450537744785635764570936917774416481305018045924289300853505276291751614107458496331574919502638148108915067272054552958565043167096320943701270187733483351517250493280773413593517087690627606302224814587429129500342701514089065212052861753999553726944826441633024379144449161974149782392697584473080405749226901808551541626363221610712498298312655196878366504282706934839266828404732616364994434617118860100003747092947777480233907268632829703031817218324520182798408169908639359197371878846255485039170281837248148882112511812260901716808642724339038078530921699751482064459253752722117867482694139177721414052532976936368792838219636436349839557604230636265848743719884997757786127270024283135066737628437949038161383985307903047533883877263663980279385372270498415983151273917607452649507682052314089709419655985411789292706474510806913275126401559986122199560291114537445776503398330036921039301015172691014485174360632522899175380098832055927990022370544695511053711791781005035033921282686843237760959980777419175909895039810946008104987242980996021835873720394955781583405427738950161430653016516699769993846902573075656873948350894179649285022970649563642233609657857964002050352876619317689387717529364596457097871583124255565475001513498190858736250876286181508317067389010980144620005788968509711713974101953037901870374244985195381566473026815385938224224429640855850160911059528542925817460079634679222033212163440465368543146045243630422390540599155313937039717646105321288898398868267880329549654727093023347051674554201223871708244254250318854577213521651820153234773598309097385191182181035069128219267386209155892706780407076423526000637595598248093118234142955982237092829672997307956445918010209277351890538574168442671336285415014027423427356295639078816262507969255319450112271415504854128981484922747336432107843095651652569450683407904081020496420141333302674747667014256915765510201012305778433006106138864625919825608041644103748668580733957475776820803304184897702972359514453774083885390602063145684524622097948022390196468281522740565302126624095097819864267289223792292834606791092632357254028718058498499850704913656574665103250711157907865436282022136968109841445317877214949737634232929449077605354700624980591615463353596999913152302833292872156372851220270025792408684800624218780229103791064887497994264024558523427917339117354922649307316054925816411142102489855717972961788495186322016673729522799379681551119923026434337424393670578111791205135755822573000099300974680035063947917544877046645363481416256233116983029320655541671008008888862487065457746718665024734473414914067713072001770656379112859688635657808551842794536385129429249205531872466981294195181055220290892193919258688939001946414274240626790230033729003966796011692364505009835805988443504327510592752637980968915861961721412770439098252277655726105788693126955968591136890945105725582910871962516898322437934655613736159097377648563294727477847123543954007261888357395386485140447982669558476447165485546829152411001018207549931233810815017447190939552456462700824247559167475918646722723844937598903173835283469416767050448135859334208580962022795990403283391272406292102688232634085720020843514243854066276869093213642379292940571805256181538930986013003892711253949848647866638497590685890504968014291513869826316604124879819084396469709854516007230696917192052615537621871393248689657137876080168160758962152163848148225260640570572469951201809732225676954635666390233442168180642254333224265578037565854708668862337171288469070920331993698230670447953675966850682692472229663380786075352443552276441704505768321739334775615119399186815390443361770833050302489016168389066411971392837121666860244543257315310867211550740847681844537646387239409317554106099524912307176624622521514212692654925245591595483841586005275858568308634066506912987789936584871464753224702946070356058449153276756499330953006812796325038590520673948013828192404869811312972234900414289576179580127031637551075724043859169027423903715601507881232550322091355992245419108321898798789341692515761928729233647033463654501539751629371704591630891703420715869361761331602933849268102055456860867523057467585089762576545561695604772115719634462376236455308042028084728813396591291408617798171606204958188076824837575307534979806266451179785685550323328431197558588918636362824150162861023902511267709903289965914920315713152601602272142511516567832631543587787801817874688813436773669188458142978774671502447167561029901698136130005684723321633322949077223848738786696421952775023203383909377312770092854735330424601015722445235798339442394466914631300864011394326381651963194633316647805527144538404898003185716999357114386305140065629184813468790249039298499959887359197408893494584729785496657811780780047359460697623085365764457203978788670089653266774353847663927035063990471382763698568409955059078550499798917971402510774468713098269940092369231430394464127828220390204594061330911788912345721705278440943730960568445525242856054747167512010888566765628798629348061870642008638802673243303649594419847073209452302695540678948155837698950076208889403159183706240462812414511729065575367669775266583559650170595878983452550859755604738991960722978820873944200541223577625931351636595031977204384848723061358600236061393299226710893605438601415734762608416670949390529337487654218814864887994131472464138803298367442411334882610759075862911558679548438500471955064673042944305062910581860615889933152801003603539759312748380720931752923689752786774654962022107851652613445513391732893406021291003635537151973236354795230562966045955330185257733505419423545480079728413490797287611041679486245979470174058271366401591040049218951311473846642759806656631045973405916890009878175985388807673973554067411472575793255047520791297906518821574583367520319023417184288431168734236142481486661501929522470135624515817918192623627969939970138050379543887856823876653348584064535581132535890982558259798231698760021147770309866697681712724802495303645879525472819285499125525211944415296963153204115925597618448521431827404826505395275485514479045286298840591754410179785849364663144746083774964160457783522148543506353792732071472726642319736505993168142964008094002583035638909169017362779282144814811645059265495563501701752256194168479142148112211893182234766566179478030033269981035065934094547841333383451690607016370725261418449665805349680581771745264841020663080231403738473097646862083489269770119978649915468197264733916693519891832307780412651926538047240488592048599177687291408142739004115235798397629814113998669189195068235363222324467175516450188743866058810321823948280242939566198375938719256409684478127051862063698502867880739034980824377067205098866700808224535748094252672521490103890638023728787994601950776193013548378249956118886835843657492461685542518759316639680527305937643296151667593995199756876723780382281285258387994291704236739239480815770607965406086324979521869010211938650723840898896635085084503721438118619643711230616473784969402408864390674408762650960892990002945930497701646350208932527407898721508627802148693022045264200147132416209373453449304805378343156810079887346422964335482286992039815621317064492996186166308434880926689424703373970530312963848450065786344526082306146799731953804009665179551442920149685787410209154031516769193916489308882978494525131007697962605911601719288233772346509211182485671369322616132034073425034307596367372416941030182624057294329945744128963164604249010510942543509457564989722467936683406845438640586090571795313129566390512995685280369076239691303396537583482511295708864583976151452334234554595524131861061582257841112027319898800797183219623824034698568199424688285928528785791205458046661972471668581702031027122974582651283477428585282192237741760252150539589629300398208437682562323973390794996353790861962114867910018861977123118875103213641715302651140976442683600144342757824377525722293904647926635425870387622162085187596079339142624761372709511027779569292681575779461224307843660089112165216948389718243466004060442732026074680489000780264857197496664777446612537686371129094878621556282065420556118182776402977716774668181168423148147978763543843584416852493357536185876343235382134391886335158568279833410441531255312297895915217257262900346009741085083964339317635861513329066430855717352238039300394577710327180742799052862560943993774147409090667412116333426525225428447292746641305228093308368837901658067690831114941227903136288684296635264927203178509379373779070304811111436423002030274585475658838206201306447066949233916505829032427776457934842612331545044167198964066441009077267371818194458189191736889504456919532574435489075547497010991478065334866017202164269624806627886659136740263113908228736176065443092473886964907583639337462802538885669333956361662696046763435052964045661322834475682421856941587492879037420964424088782414596159761267633759903277944121404662694907130593787592075366214659386029965452710359460378656411066218256905249542301637157691969956961438815594068168403806507832819465143485117077371115206409916426035391163382662498568691009551942807326298538300713218606507863792203470436417851016756367034537709144683852774355230916768473314368642836861254861552405049572022888140763620944135425697836617422790543051399154877930262439778428308513904305168005294841652231578608368596742605047057280588226092195630496199499894495687512807206045873076946276720961931560250421637481447442152401230239546398163478701715662819790387340959005366366767564602541245490901472311573679335528294967909688220322099943879369425048107116669943222797459100362471402840413403378561668529137402366120924470571458044881961496143037425488546946235502279310226780240965441502155161082980387281703434775695937368956673902894312242695786015725382864642042465814174779116621073642425522727388326615910285824875213972339763306416096026260147703282137266111411270775029975547258787329460466502733626308152431916749009702624639580244898636605388280304575269145391953879248257964609962873103675903465665299453881044741165398024917984047855607965483877387406736424962885393631418116103259575314789038546649322881455087900512474307874160927545082816084431696641196383382494070470763772338661121413334474478327802777732426044910229388617071622721021741245408046216185359626977886191559644423027728651706612719198896549968086575541063843871589130534702108390074900670139427235815343183814449568240224176053783809037461563645142774564183794120666973684506081380578329339001323970877523682891558973128299782700272765891528662120289414246134227092845011177880292186516905652172882090705450536325207778516614436701125416589913041435773684435432228614739537295492945197232328766940635753575590761437885938373966241620327567550144767728288297114947311545484221803215186513164005141384577529344847341979815003694587678298822191622501704290836462067026847808720272654533118194844500247353212531900855136374974777567696432161075219373287637183499156744112412605678453143380495172189210746499316866013581955115323402283925078668821897362917878659710192094014720154166533184827991443627130369271033779563636471342662106990784059953260184200955744731026045822802847191894439936952172371784718563704520156413462743389881166325133230954007190271217421309791915989631907848090757773008753226311466384116026178057000298664159050892979758404889950935646732647900576819235828634292055350071644479402086145385533346512970564899190869507128547668326564939883159649756435485884562951606754845290380156783363946347112736157025624051885486234009071059693390329584614783013353406680477918122346297595364918296511860983941564122597344483922463494791474362853649360296331609546521739739408320975668289018144057117471885759682001721935587275304697829379890387273144364796148479291796179742000572890335719526959059492077943099148279593372907477466597156309442039986401273624337618447410004131740728654076788243067477984634397351859041578013968781238937452625431047136563498218681607639462809898444402704280214855461161166125555420704498690982720684086601956719516994902208069235691112914520840968736586604304176814807970896363834776350549054263508422381948208197780298918901428055751836282115211124005470015798018196695371906740569069693970331191458427563609983943021603223628127886704645455346962543427980909198372636935296846650796101084842023281683507975987788131526569632189235702345737299500976549308345108623920682228068556695579780204841812979677581092706868793997300006174207008567658732957064390166856749534938549486286785411596658327402892681694075512142964694041245671566599780820593344069389325659026007966977145209003520778799948905449249039892566469144499208367614660691960508806153248096095706658386289631648123940483993556956106372169767069060550808170909782071539438173509473541917837622993193256230144520560978097916521383150856525942437180004537427655944888905432898817196249858163871698466170576253818934448167308343271898980356527752145629255862136100580639003146695412606655280597978639270534419076270249196962765260141000032402218192456182354619608633488947347405591363884795293986940547449443395223636946076149689682163902928629027322520461279534479717214267703337875458852441613507157392583095107032553575420898155540836276662825934559041066403635674074745370814975425185079846914994205880321080129471913246658830627144650912272859302137117613778890248354946715555560068283488210931781589713573910259326947344992948409395795277046270386645863119193787351855063907121837343461463923363847272682414724905114100119463319884538531583719482299047194488930100269712719453386017063801474691413841828601825634716214478684866580020158335558790964087781673187224096704709680116614537675047358730341021343561246685952386648045074694811030284045477301109714978299789042314905235489884568912281273148791688867277555756892169086091597078836211820262809482639714273645994588787053259779525231399463446599868323938521296666809781211628740157603757926929489424719551505066045369783438001557402532741373350344396592909296979153138340638351289107011217136991016902060735707474922692413003251989644595251977421164361585397727209771153089172586866193272953947640984246146109201625869077235061073203315805369183456656155451719828139296496417469971812167341362072744520869124415844827037529782955711842864116731529221900679952704297992888202558589151894641515594380546929571669683211859596815590824275850339575117801508812329435292555250530613042535241257881649177008531355478913365506958927983292442183993441067995792078260177843658410932620521026723230325888943583782841458689097399953920138652936800512948805155296240942707263689133656348142458791620263894206999362672301520084039477124576033466195576874110541433610689653124241298145719038073821929291453170083297001491282628333498955055185788653583367875034799289966048508059039295627750252597984246674483620697199284522754899004802245418092597472933474409588262580137295227144456805945911665801928562914808265199847811959140594478617062571113025720615230036041631113914293823056246803781635215778296639907007910268803206365150786063083447821408279556057255037644371548669011423239136072185355995656273014099771959648211861370337234481011008015147504927772660153330704651759537658778642655569685248639132154337119116889208190580924211228815000267283717615606617965560807621146547768315980521764062040649201347994675366284249978309663728960092947332500236271550600180752311908930823763392537380940373651429632787144043644196438415537948285374224406144953309005902838002395187500024169600627045202508796005974405915978697723687612731676652138715555148629601899991177670199029339915221725114783599901174491580705732805402072874845293442261744280621626369074046454023265384113886935902733005921747184872127210563118619188350790507021445319002184806944436255448338091863397065717475612270775296280108227842634098328983864549586956039032206687573023711832227600260171613301308470480239887388459778541404290087266245452249731585149983642940500824456161786036036094770291938245897788066349194980077027387626975189610117672788654295164724563841957783839161927455181886040111274059083648490704937354566160788987479450470333423342551941600872847537949140434446393261886043204391680753733988118922626606828251760425205322775137962084820306188251952603322885606495203671277944671934691489090755489438448191839789575831261511155816983738346162330720468983294264633154937636841505004233179297907064317003312633900274887417384168949487158911629931902450331653411851796309184781713015476463704048475888647530402822565930010292024701582833424339620336403692100245111128336337544239356557498773919736576999474761853675391842929203393972197410410716659869609827671819375192871336819904775567579455473182864559359779584484026661557403634755774181406083425558384720574769704683325813341618619210536340000568906152818858144492852450036002061759330680419678232867873975895448680214280444426008680341224268007381285429426258011626852372644127264075399677853162835509584048833156685633199807488095296574958188570253003378024772604635753102023484343270309174409609267895458435968734687454052836532571286637545183817903906487966763787558848516616865050777202143146176276523406032596535284856648432049363807788484746794877741803676218723159973392505571819798734140033043058415459431314171444855768680161054342430638273879683783001052347060911386461020429598065967640810662336216906622705724412254249537416838289712607832632245784756200538184345040037815587668237628377207514112669067302107257749552290583650236430598697613604227496514293628599601371490593703743763981357745127639416064714180570617533213291094808844684935103141875633023536528781441700424351788453374929605722461252600770646430525960338430458647019951180687427760693337205500815450776399237407888122858497996032506478712443419601392764340734867864107431525379560335268435459180172651906657764054352557036164004775321748894603485016202556756192612927472979384953101347644353041249795734238006592627651873889150410587700123768060431366851647324691589708719622792489341432434860080081649439149393571988815517657650902565904071976999611454933212772898248094162604577257245243230552841433219531100850310145659796230875514054492601639157989556989026453408635249716528349241286005348606300732483463743008190725239902316803836721476741605732905726272500540963098959455718572828744207232439898986219927670893803788603653376552099131872764266734014256920449877766003706526548098644770120974819810335722082306587130933847392683604143389337222124969549581207686658476460553737620941834055861313336764002348423419151111547905597653580166685977755953977656250472414865356430808978956053902587834675039250606116110154394916291862831654926821774322892828196913908368201253214271745654975118924494787611017515322694993685726579416570990669907262741645030642161575758736688760856295983095991644895775933876460965290212176493653146168342939784511912579146687993570279635201394070701995579165164846795697610664238879720644490500729453663516778360431853862811528116236378957338056754512952752241051799189937627981348752230500033272572311776595732504481270323213469688863715966076566863974135107819820745444627732989509479757270675275757690218627993129383223006542914041794149459867629075728600276291413854632609333442184360422454273304007489024874683638796674880357723656917965752848718934257441356864053281946667085414833872749730968137743798169946845833874039541014559986892231155196920667350892150984974950217120637349064530090823146078685686101234286069781955759818029206825540685502513738586898567924949237463050343994946653839563619309596139061254398190055642583009462594833538608588334687966843148820221107920013623022523003868716865733282537174986274932715855598268834669026414656706576453424638972954050794785721052577989229295830078637645147026764789151344520074743288829160180816972758306044231844961680325502065807660852117103516328317681044843284754962034495686585491386610732603464880759592015086601727289628132213392112462087659705631614431461617740925625871642037443250993010212981968589040108829046441908898180242226875343894026083016968217896463602577946316855076669665663234281057565469425213766680005674167282192414806130749640824580521311318800858436698465847854942862891965840250099989853373715411405817366991768894684141497608604900377179336277549693197700764587465687047488884762567042630751213134040572918392740548462379790152019318538590938865568373430171473664406360993654418495405981086636278101123935764885965376699728445559709877333710274940636465856949671513085178394462584218134362393469447390526709576549548617784719015693982659536820218757239160658226371610287369087166278532565492425108466328251817573482992337257687948206555454792732391777242167069447504736491917087604213493004462290960924363155333464036344459970351571354455099873341638476875482477346322962272725976131683335861028106362470754759405984356273576545664317390203414515904157773712716887711376244422823277820910111774666861527859706333592333201075402868712469145339590441414388924780013549822330202894036132006077039940899416992749782281337137602804657304858417836132197037523888279461166659733925877161970586455430214289035192722891082558355564163697617481039850095457090124928078538309870122858836921664913620238330620176000920400698126108113996615713616798328999571165386400421306372359040699250761762962998236589325509013183665701106753186794889039402587444133815785259685628714338869171879745872238193337999549769064838621459632827635586479040431939660565793943690204527887329145724919598570629805649949819198202851340299071603233598216706775843518789835542374750058269962161352449797340378217189191254349958121747277438254738918056579328062239389015310795526595395278599253461613195692738367384311642394501249853327810855672911861790939584152141903160337157882683085371017902685981369504798636273566083629244092169987975647448743734120455487318223643278961245425838214852975428547119313352864056531557538922359082021886439450665957842643620296225082267298395369259045245823377971738473694650897312583570280427183472452671816189256755541214204611154036889905825856268357060819153022886160394017245424333691925748313199123714878608820422878014278880667884372573405122364861263270089413133306043246751117074513329818159823725603162891600552853178137809160920333335037362355455181816525727158023065242984866019076451651303112624084724857154292081034855928269875287358053033883349398863554037463958162312987854641721583513990068890851322373481864589788326652018542081429911219467615132174560567162232601608285667008150900219202486454776764591651505238207276041015109930339370307354350503591759041685423194248522464762869535759394318207652045606139292682727232229153378207866446068094459439233977858392067321242601834124475347164044233542183929869965874603868228777772774429454076708780479987543210196004454809251946247327178625454353101366020283989378289541325093495645298384957012916383802725138193899821420939395154552029508199786098828334879645291978335587542635042484489319300813256302257857494516501992479410454764476766016485547311071338208705859082684618923196456325424129453046725137685042781214032590792900254100444316960881441569716172279542054487467822291628165643249206955306341322838701178640323612644985773191674865565350063218099423548810266079206391319380883743572855144214003224185786639178984317978642817496866362624634236274461952941449642392023976070741187173046910299466044568546801828036025228645682596293304154863760496054191015218962496912091441807348952194780671781678386878717994691073216271791396402821358136383392087197396369249314605912984074704946126703412988677525306746209338713911528108292062348492891318919691959803646468107731860474404472420457782525894863304989434918937430034570190123857622283173876310292710168623276875855395067217240293488797914988647847596838959090477355575065548865218686587598548128078427803347523166878872242966133015319568777918658410443083497395491587374564073996274326554686276606028012411423495654390589205327847842522850658381830464838055211282278495204315316311741594230861774257567432762149597726971749512143682263574039037564695105097664241489442711327670376846890493935571541895495429356098755658509100189398978945332085914171297232871223351799715839992909645473443735013799120798464594655748324108094070282798751375537383952220771275868519208999849587272915092252415717294411179349009145887829056387325490877949327575421082862530812245019458671237530942299069928816612555742517569316581160268622208186294028343375068855066954209959462890616560540728000804175505256661964468601072897085122310118961066109635722594773379798279749376512136626480268379046661451819526679248368369705524481891747179304244967423564946383092207938302487013355171210529604310433923564809569769762760215678170682426493529176446921639145847756502422011670146307250313378873519998322896284976106703086233469618384399433330826496638689627371730877580713368915498891211114303656617498390503970510186341546365814611121717317068219724826832124737029346453727231822372084644922447208685680288250825046372260965494062619886443410860735698738865186180537731066125913763131930626329287282911983514412018465176763454604251029441028748815916132145697060800729604041444350930363216415468085824558445454162012399758354299345778137931836699817294467300722552957587721311619589222108357514083815475701901441378048349626777989253964256529718296495562343076764276018370563360913759063733600094073751161321846008906835224828454369304669108149687891244492286088511193776880514316912875340251562815770006914513338099031631859462635238554618038116440157346307647537647589406278539060136458604171051088949639722326282891221324596903694724094124167149732913030191776337620277772722363493094676198972163743999535006878082076915742017699875727787224776529311588642950522160814664191554875841917543521168647954427353239232684733514929630978278618535074245544620947755386652302990890875147071219611088105921430740432127632303481764842998028501046923827860250576694392763583939431563915302436706280748743652653099544671378432681559140632669541908576285344352355916309757213974484866013577954800376341609481872479603983272619094030324721408341502199386097887580072700697581721504612356450817259095269607800762607702536989333123963039011651760367021321496660412354033620766056270984961709280439160805077195866967569076872846497871121393649454055501823214723125194112381176313654662317585718407424799701506712324374013520054586235064546989921752077180805795383635923814954112403128298170233234718527783973711655078571098542012873415491292981601033222720175567125116702550893930896132305033378320964419740951096849609234220280265068347618180912986799616533902823788462363948091459250430986938362505336171948793640534711094196097922901827540796562163115604340690009729297828831427059475799342118417581135978528291776024314315584502902220313200589382516713042259398691395894299077176793914365883413504600105968609896058256012934404499264842429431566652733583267431222473381257913299815882043108571713080061192410719716438250909625868989575554922236951198042123525068814970436962083729846025189226224128511610933823739876456693175242880397497393619649789391511737736298770768818920021715221239090480319662333097629637514736946862608554360600075905298818517025429248563943566281454986552589573491167638604269351608982407804976538696472617368060065560590590386468470097207759591226792858577134641709105054349658370322471427176454274559951867799203028623409263395275762243605619395898277490983546716040581594507494485211593111009119578605549663409294943747136087447200332232116033313236726714480911910134777944575585375517177520305371433660674691959925611762967192987527841913447026172227126906640021083860405390342513702250623331573056254737696171850850857422687982289837775461921621718413664553488326344761433890747010520596852779881126942112410620775335113406504506222986907266526028889280880273006936971632282911767215976332537177301022296642179989715885883970703676927971789009511553442658548648850690226114441126277772218119561052977449016458303767069994119711369047148707218012190919403939522800335697822870059998390475917269095330021131481944984972217864266705290641914872970758728868712466243737443462470512705105762011509315869144485078569038096952339636640052444679573208339854747170826649684995348862209002645836831482630910169904251092845781182920625543343844604654830296712899171525757163488128318752901014188976676575604506729947943779788962177287684036072674020551073802750569956375404743115956486964998507206065093207060937851503255880640555731081445798191982109487696369304015241179779610470315792414521628453568763117621950841265306070048986473153570463462820678113198259138046116344280535228050105763200553964523955508837736816391822087641152057307956506266909460608306784881494562087882721051397776954550848749201323208887270708586962080104523754978411013830749696308649685604795924269822690560170819074208022878395095465872278594467673423548407366915538655186072364522030020253204081554083580701756790120966588944174743898381159268264790889607347295839602288820862154287340883826164914891896241840610990819118833240096442138345538126232822656357430832014536617306451834714433443672534607048763702971693243631806052860525681182177369553085944038995339587072530297749572119989983953133282935951864445934263086660855571724186306858514160657639194915192148436294633346096268483158027685728373674574398773690211081131051799434775682988786253529462644931823476108724614951395054978528422836294555011511980215600597240974486502927205814347615760081339503865652079914978815358735636210582604577717256045352378504924072545897613992303456854848319695538053610916422046285616983562917912402987725986898084911512744794721317758674365090972340760252823130759070426743595620911363213111888199345378325375698185699862978958742850593591547655397222064498752947241719474729013130302699165304048099593433418130513016650829758130218255723427183124127277725424015296020815750778187417727374670916465170713904140621388936643487997802822515566649375112133990326036528729034702412096474777142417153917634688753536855725979568041208018114986343802737801764604657540644066057289472115218685387666582194637973575727072096384129781197898861772289873185496964268135757466264400004651209671771764607030589212888149608625551273673885719340413481576635064920907445560533745772656533007343234048990530978823756629802255963950899793728319795009480811848002471516453606019415553881450413654381630084610095405715427964227746093044785071906900613392390912211631834119622576281456379348779506407094076381698119262915195089455000442375604665593925065941008797769186393211186033894667096064049635823902091185190674327573406786227163606612835137236326272271901850166396526398410113713055471640804848588401410367295401366478515080250348329160037015029576948961857600133923346605147773462095767479493485126723108316563524864539567504125117577917670668293430016385386686757776004958768957133476790376789909893415560619010631278591802109036726287492775511413152908948899924570315976237654154711896553632384342572326862755585025760600130736217180058918899992646028689235438338707996979463127332240585890140016549781714016896788877899914033722568237895996848091054023557116252463158898752264569662411155220924085198369062136974604326076220754921829894104191806647756714919036477336598623100421035814045268432153290110557659964612301705892358066136766670971788111355892262517481502436013914140998149893362674308110645197615622202411416090970465981857654466031898095174931136107317461769509942685629643322547851814416099879318746337743626722133858262295907501016688723692401645100006386470387676097345237535234236924067379202141055434353128176364610446373611784806993072756881749114568219588527319890485744132319854816193398065126160412701748550710348307371002196114666792003717355432689868884522385866128649031996915934094327028913997274785875542024007316616313515731788745217443347171010365386863592297422339950088991253074685513111294239063984994206349653624932537493878639520761505189397607124189963459679181294323891700675148424385081860303568158857051470528725081094338147282503106650060553508054898917441790860100300878642578445906167775102947269751376748257810378228996261296908432213492881511318031785668731851692149001864482859833812145923335834061608109516728050455659479087043806970210142065178820423961153216691282778019098118528320108786200661239249482067919748322467747687783276625469291053538297682615538095693253199070285242954514084992641214819692101188792822594446218677496737200325764446238953311672628815943375985272429614355968685706560529893643688904524068171490612614374744140805780864752323798112419145790293954668324497241698036924028877680722360568178583351003037593245586475529128581483051206894295013985330824173630702413708988153365718434540617195314360649760559108030206929955313535860942258497792833043584239607956211680111933891154838334793065831088044286461371710788334242017076033308304800786994566209839172424738101722862764174381455978374411428325010194605716640415132852562765738461006755205060036475017047764721262574209581888664240945079402255609598523460505112840467168746944375397390987395187123829011693090430284982645981033604402852552763952872745774807085881742611045132214770574856579301877658821924215602257452681000683590303270963600598321924062690153179130930646850435333901831354240589344065820669922209427460379951717434572938460816064177547199455245871533629702559340024154851744180729540015805480018240938354832842359321845092007629197790213770683479184854627557114243465146264078699163761775155075410639915038644968193346178037312680914832623647760334765989645620000024330950547856495939040687451686232286320065119991365415525928830150241079373835617884594952130339326398579952685793687288726824006189990526992265913389621538596280347919552942109964216731595715945669543301718575832381626578115235002132890759875357443319364949219227726696849474669076842392834134430697001832442354168744405424115247923356676964878686701077801498327153419840848386759278763793053626302663146910230127944039942571517817027355072510034242624296057600347778418845495967167008421901441366884642307525642206499072752985232294350305879542957848869357629024756744778569442737161347374468072930490590461227727185460174297058364085066415071514582453622655618117245334567514982271029782375160913688797467038284831795007477415457615162715288139910538001617271042457938449642678378972676308693916607827168036668918377853108022233892188737368101376083348893060618171403399563697530731634375052836852685068161226363621262563943383589483164426644327518596415529888815422352826539630862895916880264802749778007171248427371842913854560904565883722039345588870080064342662401768459133729884383020213916785196603981935655338282195598993177103687756843086176439229840569694359360183659583380370053629668100858175221963166260098174165840799892843996756149509149736815898120587020042169919989218757865408275041808726798899970176005783754098189140156182664419898728991637430920651007737345454916679677020527024205594419317448223932233710620996418551835155768713383024367268387317551433853657676648052792310317964952695572374294938470279773971551859431997927785254058954901107736724385270999623810031974727831553406257969102286944268310778364848670589758258362247466657518480162574489451310949034128404753888619318592383763752308783947430027933444188611282907498630467688574497660773203417222573885311474685041280038475040147093978373093226401009110928923982152118503829254887687870647275904554395271151028488327599074107005086398811166460860859310983025422820727685521237396160101242898494955292220555398317758631134659956049234843338593265898916084571437051270108909552909884418908637883989642886571111509811332943406806864403342323590661933348964556294286832398200619933578547624099535591915495854320605497321342092648727498536399753500800179149665248694223376614020603022197531136910837160265635347944866833980054578585835646605098253928310960461674059818483963589613420180944592140267719856594448483260004595679804291497092178057008472144986084767331240211124012375819157440575865392396686216582145073984453933636378876835146731653720325300515969341799194556785852763210185806674327429618061937061010417648276318835472439254338977272463072620661457771122200291296847312475516891539065884380662855267754133582695049057870472624360236668135121943625615474091325712244771059447003099347613400068641533915639322994436553223544276408634481491562012651865517529945836565902518893204765673060106000541466647308903036169807258940305651458091464960916755625129716537441786722728264670641741715496027705311025550882787166967024724813176553849421571096321454103636563091747562632446622230721725658523768749731439811951164170381449834732575390347195574991900585253615511985725202580408195805737444765823367969486425354306489437659284525973608736444456635410784515500375999587112329274439476792091285303539286717512674613884197034670421699032225224700731053260724292529032702303630090736351101916874238330259334557292934234189148439845391092839085607271141736479317534589884088292207286888055436124782430419188256163199562300411940126160022053307970792140080926508170925276174386382701153554780564472716526796204323926414044057995231546028203903494110989150927872162364589970886792938996731569941604720047627147111458493896787696812683220905516620345350572177124938645403895581943161975344028310676171953481894875397172778465503033278366630354641699942397504667194569339066690705255414890560780396829920300422298638432096887863637789219865479997905888382132191418387303923505903824254636262700652781280801294461782127802613461098168460710839156149346250347984481636715378432778797075010511942805822898560600343537402491416768633101193139127942640686316733231421377638795787213577174715536027007070548133549734019682700445396363636456693664243662775861034854321781543697332214663212632409070198811185274934234976324770949871472054139931395768104657253157110101540699570447959125941703772783565318293943057069321758492309091573089076910008465861649817859923076641235636069410805767549875304317540363310597542552296050404854932991060865879731112094818859354009397462157453298820017327150099421532237076116895874779604668142487612835189676082967612043694826968986093135149408660684756992118378296870770872710563925961024707555071074061394847141074915355941614746415122194776451443258313051165623063636937771028628767026785434463358711000137326517563353422634469243870440313746605495702337696376699080997131327917757535051809172460116169239548061569545338321996206459826704248509058657504069443498592759347436789095625849512162179400099323856421911812133092513864669167394259139129348932145308811835837531867277821007834815313874487776384731380017445632509714047469117103868841760609423169935071102737819693942552328129866551291828241726868803818342072507129859028243637723219715021725383973535510056870562461006456096323343127811371049568632924709929854946494289627330838456273971379689198109285405261601488037375990525426927099242746680294763902608841647108059366201275355867749857969868991020962293008505501023022820944655348212433389542451499409171183246645373247601390469020700330139145826813805980423101689391756902507142465835939232992671371960808119189323032182662715961370410771100170263433909043524011120743473806143194463629960741736876921402070084058394228983076130369089649885445346334318401196928789819154150307601872490675943321098586306316034574950193981322889533275694540251988364059060476463770462974904296662698872890706784740963114936345273086424232102020010350442483556646449113415051809078284128741708748171997155648782964872564335045932067219579699989611333199944137417653437850795840017981744675825766897106221764710151907381184066367020089386216868002245456444508584490603623296125590900419186024810642545589894443385558789031083440447571669530266486772065719609059823942139056619132681800356085982926253703702238855004996156443182234041171078205441117620193677300232219268752480316870266230095715274404391798930123530101761612878256043171495100706915775945847775658030532974320022396023663307659412514082195945022369885323345513359300169030733039489177891781147969112080464506952443872361283225870518827886654841690176262620327185906653126960543829869348833644857962277435490936499063925788028206960487161444547149199526602973768068828190088682243478829418569611218614722793185228008425410202880004104597965652994053528708234452621612634130075742380818169469930076634127570276351293846644384087906922576556589071448423665554742061526367388526746350440835153242785586808197515979581413175953432065068414762861377682881017856033101520814089471399164735686274721552456590701643924506231125139981464287229588569789525223749642159555593880057014337771211406931450312812348743857365961549084034547633436952422518737489835687399848827885142840020108043509216582205329118259681776565382068235534549085987129161914638418448003240577383081021915165117838109437485385363593500097847448781185994229379002432111661053226817849319987907951739251009275870541494186420629503108608440767301452628487331366871455564900538298189391479753475009906379731879104650013508036781155043284287682788626874461258665381124729666453563120508479576263301895104260282365596965546830276572340250738823102326156745242010541998278587789764742800321665438816478095338883510245341117893414266823755738675507579389937669611568518548314805224495214492471230995374187384009463383346050672736799972513543660580037603565425347184319775381488352625751668894656704401706383621837108534739648030560343080610727761416279765991829008846891192180921466831238249014695272469034650863627298300098286653233413399013469353262515524866678647012855867143208600129066902398833879487345746244825893595109399543509553735774478170324942108081715728463478930819273300005284714302602469238618233909619138131112153062772081173606833937426104382375258687609623798345511250891087187728304458214100669387368919890219344676000053739571482977806324145632331309134316171604072001496488624661777937028742564705213624993136880896446316292322552362647823224381060441762951715027485671302275361270671018118592516027583644654967105206715523781299495837866657791143424725654447326110132106819914590336192694387782501818966367178449215552699066149092325477043817092026486782772939134776952751625765947546298741639433798101626133170746431512042493953216119428772804393593106080922312571642057741587038852135227333949297036033850561680217842072169141761960942056962492616268052018448955279461660216848172769700860328337617975119956055535626489470878543903684576864729760230672262961707466126244976563515250768036058068471270903160159741150947711269287015833503507313587565576280362721427035558155704236574521792126946716979325241046302212711664696708769606561488464818977424946510141241638780037912906912356439765984523184719654776779575822440135486003564863713216224895252041591772365497009228120648520165221686493330636284553211022190573993215921562284814878078293148890157408305875907719520451705284519007187473816849735689837485347676084387014478824067174691128805664604753969740354806079297339069948302267937774985634529618046490355164144230272185000371693844891566769792545035674705939449989986301988223362444813499565629270012902377279996389872386592860311392445409508755735121863367169283097483732400415302245637123064159174353932642949542479417905168708890711096966488667847634357120802894189747047639901655395189479214172073446596824698275541659942913233920523152648203540355186110620815721119451735651421290983976654316313113934429908905560602157552830490604723952898143934356939824534787004336202967737315838361327506903511887282486424211496333674192606479852760697212328900654739562312212814634987121456911916681125368830080810234541620852767752449522666437372540992346772358488499351711686434382340615956175253179417231534466378914128280582228528352707696384371709401701624602062413925143532810749587927953294228022283959771789562710321656461274089776490414810083003915537806801128108062055266689002971679927509927292800070507541919017193736455042838745417366435217690664993903947584387444525171439998301255813813895528342011029006374863930455503844972579955460003525335829954020898529597747197128007764673344003236017894568968050992850262788183458374731171872868421307720325570693451959761184126209030240923209934400645636927067292357544326614150922494837495415703729885888442987254788594371319525440630070186763091191375034726313453913458552883426439877838001933939944619223627708395564708354373648748163950197129037534949664459428385324699904236737522420909655836220701966130863530394804635402544649425434179519454783361876918337853258554830754357280288408781925550286439338872319616254771084611900959315939216160334535625672207126412967790629900465581883168698390938211255659416943745379588982488801878000277434395116006212560061678851569459481508570030353983740995860315371020950464310319262890473391370661029127462759403973791526653122341737608444938937722434260590203924775490145831708151790942893314697521706824576378593126162623855751163843273861346048180308893661299167025739482239364802766733482174389003473570810826244609928573081628804621777355932213905245134270063785907512422184926772667292420472949183148579736228014183873873263225151125540525016647624859078291233938936513573492107351377932333689958731060347319047468802706723900574289705383178252615096415242510111045432541076092897594137284907130955214473683104583550901926320593762068660281219564633382084806223849982478204358972424400895992035942769735338571515118607224121011430685203009577393043169485838254490992433958494346778275772801540803956725127146021055965772611915364917374067465900314773811962924987555916887173597938311940465639084480657626569019553948318836451113340103342852471967637550422602694661700505229592118591544462402793244968815799701038419965046740912253192111769466803987425870568249514575862811392972146932644104328821896905091417218596629465787049818115169379325895110343152010894841319243685492767300949625633866231066708779431217956672359154421598337625381503521026744762799073277296344627152532433470376464192963429280802699384797698734433179201827506225047594222951888557895461294959379731426757074591079637691773211828269874946869643394473944285453148659454290139168847674758400415581943010893056276509756866461462841217288651406731498111199698109262002245289395525982157441709486706161884435228373488374556564421663953304846039679079992645955880344172988024047040973079762365769407931379898443480822744168305980157091223054048684563224700563447048737663323778046378453698465138990178978234004242026703573222200263364604107273093770094682943180020725411035006530485460888211871416801724884865122830172317977025778589901021285623191463094219530206044165988911746840696004820626143594211870680123600703824554898781458991658224302219093170918747471116854780824490379167650925815842700763758257105452477168207803014644471950440428886615455840319042270601226544693497234230179355341587246659234503958507050284332460175639945244220477893524900352933087626620829483159671742340178156286688054516729344388800829005246457999742648866904998245113872051026995318328522831221227998533989525167320413874167635095870511337311703601469355885095960902891824103328569443132904489987438289117260149297639563663448875309996283062388510802366020331321258131042189239292357557855427399649534637867969207586971295226390563289642570191458941866257195354870457393909448171172213678858254959056480686174368229515253567668575375095677366497547744354864570356788281415627366321226988350985449342683223695414911443065932908948577572979265677096276133323011236171863900628468289027959401452256147452830853687132973937025349416263884288431298480540413249312478073310478622841728170242681535657010797156512919980162554778040517139947817147764479737412173305789344024673413919426882668824886938762856479642362460700010918364213812694626333910780478840442051057248426158203592713160355421506296119129281733385513562923218771389662763140596815361664885776697409558495583978641092825668561236361490370051226785001794681380547316645919882983366148470057168917245068781299369112940475317240358968482071554837347885136300888721264561888261568522027602520255916261873547474831321761818670366251215117746974942531580697666760030730030956432752644881548509130899884297186659368887012722807163089043313644002355381020087416728056596307554635530992967261396256020795739641071098082404345046557780486353614224507803267764086138789517193018055560722323770420103970877865100026819710463897232782234032556908222315116691059787136491228813096348998635472963681847870059529756420437696359241500578392832193642413669247558355773586294536083007752422426612309701906455942076304910546043711595192347255767920901111768156696126366401373247654388203989233006402216318569409809604652886468962576559736072862654678384672697410976871066777293448919811114846278568028084973025904319558679130573026761705642909150748645827792707001208286620041687423330588740952846325356045379142206410987135838314446426132528597261800183548611451076119754239657820815877432384900738324081803168300188995517560426494255495862472513960127726460654131571309288713338884514348720026538353815761300137913565036852158616090455026814486663090781549278132641357973499837402605401398369486941868213704531524157162561902672824454096241439807228642541663706676349154926768564986322904997748836785529134670712073715690065267184097488647023687713142163866124264004209908561272650519806871221276487705268763997521283215781108352861287709629997810318824472154118800857273569177995343947744056728460993674257857146552718578498097977719538868035271333385576932280468577002237053571586437506891721711601551380645064914929457724204093032175383540409441263402524441759411522075339373618091550648825243724920315155121078335948235461508149589706118874823832439251896671069994384003711532933646344744474966509523391473647797882546055374363889803386415419732038065875377218011631792176020532561711580258641931178888456909027552942553174372565244924450717855631201987107345981852909594896490369536388392708681770985011837265974129658701422727774633450980068300908461503698302910825211951285098788985993554685150797649033689562325207631385030738531693334916540404145627465580200641221784493247995577011472537565982774654541949802998167887150262044344399537549641029604671825563508907047385848307048363316269692696278892686527861932864022232378722345044685396704301552459035694448395391970955498400824099192652273590539027069737945382165495853811566357894137741948864790607808473725757990145687669631682282714035975187646937733358150872778302046747743943642072977100770818999310403213508408362325490825526805484539601364490531548124173514588731246279805772592512396757490604151577872033886294502014929624838748013109003066064010676181798343814992173807742943957207253375637433853254706917585580459306339596045848203063581906245543370663582742588099965694493178272280574301640721561336040906366876886065010715174186852674414186694830302799879696103572426579531734655630234307136099225192930902908596490337995403890151167888581410673263454668815286379019512655754500062371033936282654300826802592960074201241468444436851172690624249099870507921484194759975305810656875068403360116672525431539786526226515415863692541685176443716381047004677909178918652270514978584464791979693787558259693927667301846144995278068268155371720812236911370503745246222681959977958896794911037992330196766266766769289220163614958381893771439818531637740866388709197160715846147598910914668527928563029859635715913527161508439834791826530362265007947173096868224087505724672602754936127710033017245360496825141320674064365375568319856773106998689721931278046244676572063214102676282393956531661663761654848195274980914013770147524140218931279327613750999927679461335703155439747460842832490431803400755675915062188894605018203819039749159527759552408595036783751229767161723496016719309204223218212708215063659087374690895973820045415587856990769048207795563410552522155989496592592811394465148212346846456626745548570990412499354705914513060385237401440612079979717893063269028928870232758573400444953331095845995754216559680215388552765717137157650198573415470091891506689036479771345292787508034527184371812918466155375201926884409398100101706366222228933070467024533148729581567784951062698454102079943430584488601184219917403388203759731396684121172081743619221083144060382224455435255273319888303517721852141385991828790813684079410676484180812507572432922989647456070853355853206652826509462242837837934104453151544583939229811751570450505217911360226173591758821845127273997936942357442523582597425380246970039124389442223777130049878489290823400358340849372277790986177051476234277367675696305401482431316996052375729424416534254139275386303728585204604756858067628329718734480377949759283739586429402657696716759972553643525143265758978050456477596113587169921240458133235566741751412234992128822344101532752527629922926347121328592487347966101565114567233943364661984915313820481942691448553722615286542664818562618116424642779782142477073968626600791308628913570587714041674161635003153548448731115338037319198974797948914366915188768790036816082987048687724757806509807932297698322742092033550215934065742145203469620856074664419304213874730119853332903291489812164872797752949164698021799673774033566647000237077246139615187959509087557669871519665295225527910284683518466290991261350773480916364734191559631486009986278648949186799154876007213324076026098142245749350982449549948345109741551136189450382604001061530748522297349685532949498644890995179933471709324245925951337231694500134478815749444994898450163420139530640835590804621862795346170972574250386885113590429250479657357242189299082597900231498427561668703536753150166612929658487730032059883559017163265768240094761362651894688985866315317862066251499119803218240074178573270608309532589160285505913528676834124536348761853272699448154956799998208682145730232162657194303777303043812158196909315066408680053264357378360481473956579191218199718307711841060954289672415129676974794195476573253974006835462984540096998494176072495066179533343370434921618247200307473191037860816519466553334401942731032838891585087961717159403584259588890609579116101519013382674254989250126867005467513996622508477656625941251711917215797567128466318494141465246716380460927885839947049259987127897199813997338528899174823082845946088764656917217326115991536516631312349952852250383450518704390566580696183144938596643637106507613155796885577813272224538421369004550796700914096764199350614462166141554947564146112483008216388269057475744407152387758144604514817333183193193476088485475983562358484140938555113204219399047478258413578474982138698258376917236875849876952374711977880945017842557440570746043906895856995956494361994937713949711688257861095469082936839172063130102546625748130499546568754931573743649584776108507083795855778339347806710608171250379942964347976471367701624114137857133654348207897019808429592071698869222772504909757280059143780500456591531055740636925057348870440404136806621151494923855502672198424285891209871863330259499895956426996584455890754172979043140255494332448622957002207090810206709017828444389118556832253478890246335878534517340498010580992436598858839286482663223174600365030373607846743218465093807109001159077916427513994257830415503491839885234021797856499648533372365711845190178894147485551110313971123159584002077804408055647318356874101506413716949739213582786135778016460068487277737058619596227109143296944372954187683043793388961462107005640378825498977364043806574226881117635563743107311610955800567357209476268139254055862426174447050987360188691510326797142851047860908364032395117704373891163375108698656519677859278981380449640947706688896322322427798894213151406027462123383520380285131530819841353393990738007076444317188016365519290423914949739974759807198889626767713350684948899009822492591566404824767021315321245843165131565535046498735246223451017692950015432632027766359812453848685570027717895070555511896626029800346131138908091160851600987671925495170330900511916099617522982809205959893068728002617356776714316251018984686499259204665695743673630224104162143530334986245522173093419891807527135559417665903193734667794147384109731311212830446641411331197169389564695221384880196399352229908047409367352137256347516179803639413767422163821807790724942358283086349242684061570987238011411944534280911030164588027600130399825238515074377799036338646498068163423780702466023254210725846515528453987387688236456999332149685132096659323447364447716734424233703315073596980482023933327412329166672148487411623897067927314790724495323714113073734903872411957042045627704736030830295247484601234834874505642278990570720710911286259895341778924222294481359717065667211685490625841144906184363929819057615628362752549656500364082138734554353830189020062072564385173965975268853114966099586845229027539117950671772424294172710143794378179869265792423093310227839023307680943413360271573082480171852039542234171598171186822534057185539237693547271255563885958659537666080415845350562541100866229321534093660260630689935807582672307205840350162690676943751540411508936562823880627212043451131742339212854112184697511305154201403958765965866353216342956268930358536088102027170458671501913673643466851145684896056951295450223293732945795171509963693741048522983301047978608143879570158146577342295897584138055858487132722895932736702277456509719229879234213015986532883846119557060612610502720368267335610005336523141931145319332798792356020722429819280179998394745136970461345249549508559588469384636399984416421549033261392859333941184167343916653527775175291279004750514702689555843563193636881205285759013914117654899802340817871889406850323055868814238986156341849130042649315050300285091132266521988912503879845756898969155130652481791909983919758126270252369681176302242891647633739592930969802579421432833508300497132402137888035287369711679134988809091774466004422989369133784590254620923575804158031266061694699384357581832255745716055486013609003479579913032259003151771340532247715251215704089173388526116834766223534692695174984958552892854761401226299954176081019393621682979480123900652566242004846464006524891874544642738893249136876192008797100485151826251773676934086101037883890205448939564482458905752149088382928981461685466994636472529193823734392398749464162386749108237265459254324671307222422357094457456801054405857612994414541335008109184891823238690914663900965863067190334412982021301219105559074292309862952597204121789707925083614883237683230893296988937401868341978697576196346233411341559429953155393919440205713110565207373025516909385904895821516488410581127403813162363731977000726217545746584043299139230997281966228694996331564149821618430073884206470375831525383683287220241719534940152806575602198747931012981680942589922943237419426774364724916846283363630459517193750895000226789060947688438175573439503089048260353016637645797074177203824930033678219502140623744161689629115802316134902348361836228149251380065944524345460177392812909615537116372688978166352857321231230243944864608746668875609055565577971495521223096296527797980924541378335181915281699102713061710871161961217374113874606427196667227382716657897064982338224201870590200422793386090077956532254233349169468317359473489524856702623526816785926442988738376900244272639022025539032674929781262940476015089308189913744403295610880992661253345186992444774048951854249170176441751001564671648001180645500867769391766142937696434845486074128258505527387926981780682788969806512910761022048205593953302997627280760814261256419835872160337970775416769103439234087724424806856812474064022097984701548339171559975133190740746076472035071946827128668461805380260200557244831363334120447246018025321343630744148168316552833095661949234388152764390637406722056983433172392739532582357477094288011078186393122744093819224362428782742645487597760760529529511944359071562824835900907336567832845339216476968698789196919879610127636905483869606851034060848546068148722765780923181807724633477366394823051312611529564600399059409342948474260684357891383519026466839795489480024759293549848790509034473374360708544702576426352625525703232906152056445685410629951773642757529404180027458216787229688690005699904254836371452169120885015680795982181087181396903487774034764257799180898380686852283150113004445758263994024113702363483193994291091442095433525575566183707795167046830595038207324914325547938105628826895670894364574438756598180514829898830609338229641234832923806250563582588487654175090374424526025734181354418891581005152185964061097709219851405293681436785939323526474441929631243738345371602199400250923011382336488164777297434975262987575521704612132129600355436342284768027301345355714846258508714568847102680266641538162955401863475112723460170078580512378910619771918822083991500516317001688283695722187878750656395073597813273193179507644230834235050850277205730105159456214482954243101672669568812957872751563722415599928077777304082624458637097386491936248316874218937778864781028314568282614810103817654159180248713271919708164954670478235764654654850691378279711646875054700208898329754957549810485829324098363747258340637492062234210387420534377129880261149585514014487487846726121670405854798232255667084633129856689297781322905681839014066282062314560516632774149316684665699878780573807024624844387052126991219091136137223607731038843137113120321202887118438734501648609119722881147555249825604938861175958553652210206975041488418739988875603323705362083366343229151336921918765934517171905692393182820449289032815417031391516505125443585013480625984234817714400229899431362671091193712596803253937781660886205097981696185414728194283697274950463913175831171591446756944074500175721581494451855689446909073738084819187715658389290057228650598464037261837545343493675645200672154779406053158893464982864845221608411862449965666809088592622463592385679935406951607403818250880112002645674584652029435016927424166858924848709713869387427495155563200601998908107283739605622042684219741324182529776991548026816711364721333143920570728929183955959626078530351553725349531119782549901236224539322021839015038201459433713377498716000611910703289472440352817005053755814943940067261464539123321653474387653067360889872179851355613498465846757612580513977052727357564959302563146624081078767733363164809123920057327071673666726229308339333280880886326698282644608133436262990139244957997083772449755596893131584699840626422278075386261446826867025313618873680138543521525873487280409174332523682804859824304575765559891026522534406520366600539923848123594462253544643346962821831795940639453994259971006717868547043739391672370602697937297919932665218735368869187378046488173902612122052884200298815386251588038120785705193543264163776973432466357698499021046842226246535429783507296642809426005906617407083657517399418227184074744495736967675741613565040654932860053473615408710303819295586788427425568178958947940046870635866802878947273624590830442453234531811702482105191437399081622210427603707448310401357312016065632580982240757438963258903150248611143885380387364371229501087534243733705494267947346894495305678751821855174524342872492602572670436877533788997887540717319166207928143336578608920506709615179820793415060553147620084754316210472723976544426212088839141998925619797249312739116323302573892492142424166082617896528739979668785864084859594874685715177562066831717096482811779109080916114911841170114271668180822612824323729441991757129455012108334323652307180691288481179847862399087667555437060211030203808886974864997085317039380799339957655647804336981464291731791390267050008801551672127938915983405726431287094181774509226486655623122130123348201667235145213564025466601188921080984772969252223512786517654503545360115662890827911338337809825352958281723654260540766806096578990543442918648403925292373334234080388288111192679995644027714723086122183393544777996278978428375141945878031889138689429225318147470324482664241204300379887582361458303933167099667909069135246753479027725830877005882276444960305435450298547187050490062151122208979991089728614574812244493702442599629119709447123879698742623872327698056082265549446341490686324855802660716295100008196241597510996839515058274850916884823180367457740695641931969840994946762915229279619620584458721309048736309247281649045394283271481386248260444169234378497519700089431935861672038808371157181465414333641697046675413282919654130092219810303666395030853454801504489327424635597727117762963106511289402393525826671341882664589981198958365484399013999167662140127778736611966919682259509448193223890484599268271391236945544604938530602665157720736889887580153991737200666834763775119560928120437680372442307035374731267736443625336168513982460952624403561541740112143333422293356756500657864275577062186079927824331737919265739412383874579003455858809102614647787342077432974740030492013355171493171028625728293411798502992496952719843416652434328902626479565610457239774143450013509896227138257529024406915391749981354500000561192048370796429033734277441575272560124964390519256592642208960430527348127429091949004437797277489695693293320968875889482861572516999227830455483161717349156135967215328910006892685159660064587021954482119025258311477219091211134057424833875984645539528228239240604535703752004382777517992389776828606225989374785807672349192517751327267384026880890458123535532409941911971947318204254655986041530182568981426255209706644981794789049048121421123908798181728970566422380335123474290161724707059826511021710887912685352977311891696516241083498646444004602121763606427048240203960517938652145242276824883745263716306170648147248546685484367350287473456892528998055546746533580939682973872242638687198362297683830747185011197566924828408406553526693368796778860411268221385782808322659054228912416625544338296481789256646370485682417475457542853742310507473665306758946009998789571484777730592730533345110734542611434285430414439896918612052432511810561452175259294009170199533358613536134006934097903650359915646492377730072176681312846720128849551608917466812211412265145519806357144043719469913785688440155700152792976085210919872545573616689571423895879336627499250144532864528075675100181610210389823102674555243985334534503670441121098021255818991337060246158633099639628519617367172680845506870213641977376677161808860625560662362329166258324633573394097736821604691881575396261036060370962840723347528610802729840316782291328417102684537451436580340802863799695981547288270611965095858320678161918682955929072080078636990614213071466896214241110574131067366567038385847664382004494284787206370121912524042711668652055307356325366085027512832956332417414116490157635103934466096471968339227265243760715235558969369268744511532952548881668386560265020791200532084841171143875287792065810690165861308945112422853060283075211040123125705304647965429367657943036944604891175058027024998076182293472060570910092737964162066655693675773834676246797806709105666522758720144320277223215470594608109699933102164121320680588868354576126813811402182581025781515544480921987992150811662817133508585777044500070868773609254555276424110628245324281584021291396945444636549341149685361978034040571352743710966850768058648156071363352099462538671514551661774808457830542255947089128657733144011347279608169772595614796547404241279237109739085324977744401367257395325558452023174039731573143102422098309090522887636230071490365475357560035060251281285249350408897670508675615589658676505503141043513223480148685937307347561773634397845408079008104727141767302102764790403452177715362237410292148098750553498348255447547899978741967233072315880377138791175880583336116327522860927842629092596849487585286390382107893551880206600748500976690533961419518884985297087916719382123944361321076592887465786812220797804446450722045885676789388243065872507124318221802236639976413606301731157174497155630561079252485313779896270101464534263149518370062294681606253761814058294023230156889796802272539697755161880771901065410415488657847366236404939333641918153896934129759497583706311792822346810322056632309502198876146044085294785109601987005592859927345329994682791133829854095936078556218315478645831921276110304183028733953990193566358131046480005254599551561869266461852198107944410693657892531569047837039592903514704058813796056123166863188325989111371537137880250729141264411887519312940457474743159204399023548445386722830691500914403415431218701808680958133069240139719188540673701125140672666179459167290778645573676491596572820980904160717268760568307083314066043440390770725309644782270004659822669438376680750832682754454616776865795996617818097628794357804075842028432583637406889487371716185407351280919758582328849524643667930134220258490200384945035081117390439276977673107187272887553495906051367611891961266886263338751465378353031059239784695923755941881745914996328694885036949886911995639889921146343910038244192291114990257220527771098601477460184998374679675009731997438029447698711073451959221027403022569416414012014680725872815765626735300021913839964962040891047378107629183698562110183806785518931142536084758501408868211371437196215342322578508160962260863207013317800141968130645745196423646446050831750973723882774382401248996984041492621384976785053596265174380167372812398948093158968776282325773266510252376453805741422718383026890022702378028634621002867900776857068822776337193545079401493074903983439271808116327515586369032640824342994306416005285371560180960942715228782043824683066131855169201985921244136161356551583373432194709833481460536979095059277023800952729293178983572058786586161867050242312275326511760637690460787243139894333045974275525287913114438811954878473149429524645971328347015054416007078708926202260669403575784702710609326866835609162629663903547015789248104412265051974573377156598495683368851000327844021310750278493892520590186502707920398415165970759067996095589579844723151136892214058106820035961721173082241015995497168194619953500296919479111806190600445623869690506580630445131885813989089858362839029885312229352089982769280975707318256537059192817613287641064150663125274259072790794083435306863170976986439608998967917078383384293917918465606110730754585675848316940491451284207545029872125711351088010124607126582973048038525720346789761389749103195025114389842161529304199660590948229967417352169200292466027196295744742453449379207760949560795561600814368467441800440352670831776601502131105759047393069904503122466560272112173413352027436688548414875628947824615187707155222617545724035289944250645582862795609880124411732009982258224494550028644868940744498970135500737388691376196922175760095439947986302394618669255274150421132278666051663123443512647459983345892880272591884611102600971823158769588598277913941796225869123445388121744643119751396321126071348956755569889487657405515749566576481688796028494703175228912679101215667634020800961149115484009013305306811582333644090042326427428305800095065489972025770330585686745977093188960085422559435693524407819451500766841547393940325704707591244269152758044805499983105249112703823343494193640868088371878526823527883146698078833993356330601900951582571609160726663311498215401612956812845559489060400812225489735200393363206789616564549602636015217387365682007726211403127265399550444519940031471433390195528678409228096251067401202974427081667792753437974539641712489879481183454566631458086083185727971419284311684368087797614028614475924689077729962355074978684588063375536973099800225175371911830706666858193159205698950780992242699853121186524126737168078572083545238037405157507369410390448518989584627343405834629095631473165173445199898026011180168199051900163641683970112762721798516987644356981308099939295940177883806846934803709394447084209720638865651321620698889072167267865129926225763328097522685178922686378446740223044971336339109269566604335202365214286850791461761897085830672202306214028875489810506225329114581319524849799767143875798689131122494952215370573003055442863572450899469856142741816793603790234286903653034851424296591149393301340925860462936165353647951068775222459734858135818118685992969965538797008273082884903466175254689041224030651849672413882649537911257948334452618007052288715368583803249247493569409529221253950493522139251665967712879293792116794986536016385277320060727768885115266887575702277091503402894941681196287442896198720653393319169116268397556543458313244024382085297614050105514732664559248336751647786376963452540866233151345700201412756839031987567527160776864540293888765566897583782403236152023001754104078741681814549416983879817781114479114592820933489558000627476138352719563624582334478715644627825822116887507325218517367632796450954078946799261890365426591900013990862420324246440356439566975069406538146622701129699242902615725165401709885873455772970455035843857242959237176411750462147755944609894833857026101873093787456441097430146530251254496783150085226231371663772592043582708925160308045245167861459527293775157535444378347766317529433151940537214755913267320807534611371276993716930392875221004014730592377456019218728924627144988471964905893409131180310615293930501621226331882502070571721501843954520132281670065838378208831773400644729256218118892179695898505152994931848844045029571595588956060211743159367087635078527257452352868053234410125411538895728311541554296131281845836204687614896553364013485172991749892317143239778496591793366378458322538542202752179649369808576518254547965352351245058460987381214959732493374400525836522030542392040098815458890418104601579545862180098166033741186663852141428974686937961658954093672641942200759211779621239092586583412677612352845243620072180167422541524718585935817780928634014036375795557890388970934411085631572204116436929837444789503421693027775953522492825315435297510514240272589176853976396556947322379529812511167188944323627484138291372614853403949576232161701547566082062782188427719464040549161661193067079159852157473850633365223919701571238975538516741704432282356850055077481979292348939470515770185246436346351611006925380485272014089077780326562191083059441146065007482518452971437272116072473057657236813514881630025847504763083999132908087281040458145738812018528193455387472649801790338031134634886174187141761528541622087651544071799139528191175313580385265327906461757560444617292720546978001299780834043229193406523670764437087415730183875305633170166221811679118475690577174745504535907713339006165277344756573617175311114964899169779221634174080625854077369384045358932626079657846372452120888014850056331090253524101242335423937867853299967438796792425191123096452978589102061401541525719555376879901875029293054371580639437980301342437874569503187808984965984689476537950666173216069671990971483517211305702300580597527782963541197377178001371742419407205628457449498901706468957316000489296720354280407707646693254490960266039985156820181530363361747004519419525345854108648026836272626685521826057474785782475991027833531894028339711495634300086714749993259566921843919388679777296625126704012825649896505829745548983689536856729254609327454859518482011800252728550801907761968755129853814951980572072333172220680060710752438625272393410402353143253099746237766846163888159686577486674075910689969179041011666866611592214312393387735557554998280615284691311854062584548592434469158790495158053017253523626211070106745228028238345909352831631542581659056970526627445871526244761036997163001232297472921424356730637117222876385989710583905727096362361332177908496197182075809907548716392218473085508863508778336629264410576509116995485242752126307742581904419229442897160444182261620976521575303115039068366923929556172107656805276230625576368768093353896790575242025899251526638846480599313183776337331053190972856669380396851011170367295132216902543029508980417031173860450070534904624494341645201519920627346331904868299311114665488458806107016855270247045259160002331911601615588215002998720557297615444950272741094453992281966269772140333568185835750099332563532891715344660349342112822830577488532205741956913795751914870931151848395966370589543201630497731182386940720870242848243813479004867001334263883418094381039945205623039107157399602453140233136919108315242784239822894890861723288423217218304052011384248647597840166290518421845641127359290337757422953422237367807712477570461849905992772731339475642557285529084351922405455556785436645648464909603469002681695482873972012940774563285374404389164503815065590181855221974405857464415704305776020437050256358360101209817052537359259097967836913153681895992610670914728665401828547101060921922505243968541118979360433742022416227017967945752019355395284422460435704613320728740826024990179592374133417238992797272175474126960089328290501384551539803494875843192016178861788917789237394405181303282366604068449110786704929005949060212158705897780165099443938721352420906144192578557219761733656652984741189399315414911186537783824256842545410618296270215197913798182665875916006806682390203492532783777965669874990081191201845808749585950843233159899180940239594850511687720734691288299386376020540656507183960168944974294793546903248141701792436873293698841640629680955286915510146013857569041090779762487478138512205097814392908279486991067291256244997980745456240719605521032101272661653050266255220731117844215897921747908316198714627185503902977471014810712667502593132019931686904198244875739239081929183763430853064742181252295058680660976366719346510926895769075563139671049884206274103212739499767397833302068031227336084503089483043469109966500928376959240515112823265798233286914163188223455123876190012288004130367174271103744268718351146069177188157847024373489523336561743366274255094685763248439107194250809588834295085549934965860817363858995115411511711368924277522231088844593990537774646380876245341049019903356081898211246984999216015196035003917556036411469211815269216767466875882017480598769441532452566763276106429115968720498321816709538483910223317674120210593603572490625093723124627265306148830724528829887320483962974747328846305320517665001963428427297592463857051249263618340406731465202164332445996764288952638972376512385757938502705023409060372020154664876841939185197460828797406936411645285172637484743786768747044368726439649077883290171012867701612320966212802329361005654922375096451383697457705878482134810912540832412283807595166657439423739012300340037772959540956806142364071287377839757060321855127684052106738017357901440295384059869719143902207667523665310773799576086471970344087075072526721370823991433046453578419075794558146204075804373530399603135071920813816038265897921182353073825953522809147321047105097093153629248001462727809124709752560849104732915011425761445399777571430522752957777129391492483566001986600282676020199527935272255899887828164586571523761261632341458997587077806843692962816185284744358445735562010061493700874384799890649009546929980876367388586292798850708489839706738113609095948092667569166753960832696209086231222202913743944452954606514021239029441103069670116945516709620679404678888399639016701164055137600911670683166103882654016007742452790652528928137651135671102007554735773657066943521502184047679905437073750884850335369247180610366773475347874873247358829832817832472743619671378570911247886145711150736166848470273316363094833801251638180582595494173952409415834400987581402699091902081361895021113004906170700561042040413890285462954374778043517965607506920215652756640648585164401418498969367235074484745971663656850996980916532336155273964920006242674978793731317676457481251977793736791968554658398509323958162893329272738425063734218189844884330382964232955672859613249975472720813889229740929142854770199964428193621435170904475824354828009606600554119379571556836646091012417863876629471864775348735849142346256308485249463741370399876034982312902085938854147124438991008845052662275323547883123896544603609142127261678162287753703555970514070757269983703461899405099799922530520897766880180236497187018417008792113715170568870155168840291039497950980413582789074299089080837033277929433128243714437394679151041409813732348086252793203534630286996687400606521861115048350894916233470556352646650204016079008149191672322341461094281318741911993431053986603414470148376952842815988717602449638246020694928912837542166665602901981449486500408836023495132574137850560074722578987722613106978184469313611479781789141638732350007518633952357601967781235505820429928103500710778084960554483816806352355674759427206289161392752460450221863093401322476354273641919160403427746982926815736045010922536081320465014541643805333752701783938170763831051166219049149616641890657307010091582278423932867829683972071130889635315685170251254713789698279842179553316339647398138157569283896544462190873915304685100073345023506615810293569814859431880745549296528901603726865525380053663546698135019211515706959787436182638891047230456220776516124795197732528137613280761960953798358203289152398735443060068516885865035806689251728363969934672902265844878069169849514343591864099505299344587863222812581981140169552438813672920098442247577280446302554199463051763952354269592709520724515884654030030520886863967767069780103125277287033232581554472618579900871007689528181417147812537311758600683560886599744813019876671453032330037582179790497517897896958613248660720857652366898484146318166559314420203707769023234036940636354762407667317620766489510779397390170431574270926453795446702673236619629273088884685281817353351512431861513483225046869023915652184215608172388509837022827207973003880252590466630264329742795055814735151528625532218986822609975807905122789816253889048462585157303296433221675132477664830178415700104874954721777486561962051677596191598867951171018040919845262001426898942855489049769020043347154528272777562536099964344762684794434038197878553054792771525790691036332512222000261577583895428467829167185271421751488278479146667024270061805186153830273166246076454160823211662843966506064575911025355770255864971824693800271333984333947070959893766928946341052017421534805226542577365503522553860507560375179292287846747437599438336999279207001447065660083395290148085144664796811606924324935108285691917857120003709266002178721129130957738437764178400432389248283102103287709385083066023693775168908290552059954293072253480454156526752424546497883186951122914353210604655371932605073608106816139251553960742074540003777872653293259943366367612390687096031911777416998279869400402732910512956192132328976139113644338691107764329929492020091062429163802708523162948379944580262754976879948131946760777199213689913140081118770664235381213615098587436265539912202820807421330288938013976565816884446094029541761476764136914687944715412720020239378839537762722236452245047895401638126938231680459490585966442627545695555355913999300700085448940234667631855408534833892132174838583056227024773601844911657020074466141812971940919670032118854166340001049469498491332391708593670965844589054123988384299932000587691175412624553379923995697516975880943967731563770715232186972583339374989916502370530731981465021880602883808420494724294475342911143131152162473002013293556490813006798737610830238759355063079822332920046164612961625649982829166587973409696139006859118891567044181520538758020153211865767765299680492735582389573477196040447794480895203367818673973371169430761909337576681745241745778741335310203916393038972408576801254415813263735877856306878625289046520345504928251636397158389292326438920707392456016327156944535294541460655556904072714456530101029883267281996607335694311151313316222591817413095896251875578089705703392722843719452817621131270339215763335542304342015807010145108057213192204618528259124014608316517863434952693607749715794186470767787701268594357373803568525217258191050234066400603668046036515991322097096519325945808378518546571085135720851027365722716006594346784081194828687520293614381017989246521994641031033927974192867372395610564857018071650025186950029548193025469810102057292782950993822959120658210381704505405139166158133291274466152987140956057141072872190171902073898628138035117396703850384893636816123631077249883396553189873635970621865924516524495494660173471055146418895665578801169660916954392962438449072510128330780966810597962952449561787618759656792925173246030788501170985277607084842452232971180485515940351679081172572301365917408356033173795150622550198452291517055574749399921403482043732343934609350129860736743265807157193856582733190881504647959246837130847505812662126570553395744861894611105241318155368388703557203041676216978137746395036731513898132081089225299572587780357361404083047816697081799727876842941028757531871785691382338477800320377383679269413228686004775739833791819316091388865266485563610236745881411314836877860455193105388603457070406030483187045458978500885276755262643185424198714821593335765035345800751266247648211368528943850175021583815563650973165912178662095345730996441728554483784315084666018547132165776461988096686103944262285003433290887216182929719814327783260673190057643791196653601164350557895783192283748474278141228671187087833716525880137748847503647841166815233664142188456428208363604955955485350363456730622814478195903799317431512699334406018092665872950242207988428106729908422979490640110162210677278446134784834014245638390493939963668498588246274895704931526627771887572535820237083375469028200421260416308418451997141685068243502149548395461631422458083955113901123659758974347137724895413899336307891419144465069251411170847699106992222479328375027415275956700667998811562453325526620527409331512536652780938673426737546878912802851239868720469293291336872056906032202711946519589768431768839861929026616816622765470105520945737951431750950311468875338835412694115523836205335116590574420729847088277369528733060718689527197076289863745214344590794261485629362786625737466579165072138170111235524257934432436268290100909078872353022013577089346162344805315105307771239571243426250812605553873580127575863966154528079094314128628766245305592378976891256506140633145312062239647677919109397928783042371987403663372587316438970240992583011718695484662833005538109052156602179940064965137555560311241414269854857893419940872660323741895575721655810292144183814473344273748515320524466889805148218617742140564493792127098368162966502168056674718916374782297363156279681894998624877591784425240316673773289092554472857890811682812862403650951705820981317447489667800890215254300416991870972812774456902343415962903341595667069390153725310060583348414642027532209713963302356061749827244521013200562187573004464351306053426302841194111484488760684617004390619661187778732982633323528803436653370326926718048789135716198813801788875218262053493903502035420076366595982764109088167606391624554832055698715002481596031457512577562838451290670346999119632382839038687960858866256325374223824995009723750548329165538207153163960132341078731041187168489332393329141076184506681741326837923253514917377338497988605469103289966513486931770746107796972675297618324019145037494283076671169308893233728420082816723376566925362644247287415402415941442633929744764326738709947201895651269379218617774533070811042473695772985156283146254169841513057139766101147969875768542902591978852239447953638925892139734560609612882106631398709945640080313078426368011794005607680406230702181034696402025119388996323774870649392369208600862932613787559872461548352247317026859984011775706528577169525646843733261009808943847471102362612506257966373874263921896053787998583956242869696144817133191375430850677108411841088810665392842111595116388226721570414641203517920601308004038439139098222306095752974245354355679549967913633742670664771880554334297291281780751655122107797550252041746573538451157041247884956225406077914650142223365486440013065942980023565084262973937059186566144104812133826316445714295496617284372304560689521622439691229741006600782525970865713611743343495036207681361549586834871698425552485112910641432046585824047252975107775383893817922267018232588951779042441369347332798161167552109013350214238554547441931100151143046535513506385535585956836371584075233396692925867014328941196821367369409495415518683232990473678453204089690492569952855773288032180891458516029460091531266885382821391141628207062784609549687918203032911795104192566768573153866018312337571591757529581246363891804972686392139571268920523972575948781622791957319188593451036438539376712594320651135053090274873557799038975031551808110074545131098302001294642127148241524185918644152564049629820228917710675054697460452655142241885192596045026205835371454315728913371007967748118033006125883356321971871769583636868027360438509030183624418605681657405699752876999368906060365356383444518357176362606496413344216241581010971910116689679353864757329057914826028898335979895660357517931979820817187941821563407477904242508486074824233073333875745926666214171307098807959995770109330052989257215497977311187691016662296030475608275971148736495195669714380584611936234922417891156949064538068237447868891895787892050394064726935589864467883874526869736737764236571050992124485420159228684926837742784757293650204624002410249048623466024979979477195255775558780602622060211712488626890875517013444914934649431350751331759788751882521995723704719979132343449430736223020898186663703879624861944527922925653492370130033872750953537455712275946361459035486776381247986634518003132374910490503259066746807639964257500842689352620565495324827082332599774670991096168964921607726390283461565433159928802754256669652442574942746618693834537537200823485660574137571724927452387938709151455151503790778744182415621723491193270525510005777899883224955668524762685379313007319436562268141479741203570014364890024112882590637670692199197580254893150463338269540918286813774371120250520069164484067017806432501572145463893216302828945526330292952191869660567194133781150943207719149589250644390715624366142969127240939431647556894377342136601328946743393722726636048870859022653237338496418153369099190197618543742186069358775555728458208213233484289326852801386944549264200147637406694252156277197458504833100054625642945478340027329466038143355686758953982494428453925378657160586977568850793419518376770140018434918832860841397293828240921176376604393229495200795589810856465779138489537122796367244825575914504653749695285373127350633682837342409066201612381915546978626241025238948822235463983915750163936145967683846907557723539782817089152995951343379384213733146049005628779011628789484992152527035740426061261773775606022711352769578070621185826222634333524655285060196024532847158941874911035248204410139424734843268748526609372770196080987086871704578649904420006084470085201938394180450244024601666759021269127223940569271065943648163617192688570185758203376227809047340819631218851085180244913852905219985893258893222781688358990828601860191948361050921290060948566591678308039364195025095356404225950320916671722121764839530336398269836141519101786981982577705181239795514363244378477207920434971385574105165568322181576998166240605908787013821669615988805682552548935944597928596928340726482211397762661426837324560173199972272499578953781104269656559669949117567535722247648489915429504476169478312930518496388279765304207781706858581868422660583933887092095767752424968301808951160199477863139689513824974118303365570426714931584750765228601268656573369280378503536005135804521817597034409937051907407932226872107356767960979618060718470584282015388345541100035812095391458153487533387590383579073290243845350766127336110579764815838628002399173134896504507489847331883012572013965569250582638052417108244611649931358612707974828128038836971937340443318453454500241776277416922631202273277832885059814262445410597607565539452446550195398194993617818487406244991228898338695319111895017059525293184986980089482317463015697475297282852035229861071551091534532045377347154511943812875876708980427374280401891323819428656189792862806489111756985671113139193584110286747508048280905767353767830337057257604683413936480897692025525825411295884351558651324374785586010286599223778705002237005488368494965979795225114533039720335137985200643837718991606034283230607214265682130681021337992877741192315376129233290071278767942489900075116887389020752379412301840267967793747012035546893057431196929652354842236227315999776544881474178696747905605884170526598134243345441275983016026248592724974711935969614674499567285067517956133848955420052261305107635795428340291784490861208163208479781332804635888528671372956805375049418286154512950951634503390959078099986740429634758985018394233973591664984707088310972605693742797025495467149125854459346074993616795036827553846820305284680205582481629732801755586412765105301246163000887614229940264705314265943692046396567344832802746968628119908424347664757576860660877298179996942688329246370871662541954118266065081605737658544949774469909198793777096741858357179493287667662393307338946532118145286124837060733595879288761271322849163036040175266280614467609789371665635315778523030078838089744534396632871095918630572920986286830414490215137577852509716687901990530169646428855051448844704596880580231076470927899731413276440678207870920520578472084744489481936530984150162446373785569945232306385534342985903714071085697210665129567318179299160597357978067106600117798666908623962682870791306944051678067668557229038233295870301191978811718021283828545990034617842920756184897452439219844597946316635664632823713268123644895412070458228818146380504478405510389077870299577594973519710168534619494396190955030567766898207761539864829387587790422045469790452200999532155354927866905171059215367846077702822851349761927140394538300783707595701183853552142335522022236635028854876141561670767589801502391061459045815863792557611933344534930904494511745125860329108436193531750124478151290880381556426475903879446967032010046429693685500686446673686642122869151422749263479611599457290236405903375801542953370297406863472670356169614855499368996957634247557978534233204588457434367111102831137547981441039220735864665299239390816694083817022648920522153478285472791124705311523403323821783413383091067073394630347536817383371525785352002412228852268788769152010139918321339228209230519754719210181544987763574286189884375786138178932106448412343419032945668520133776530550013294870768083905660730597041591865648947057155367000848908995940339094619432949017626996430069173723047230857572943551184381256547357099005065225185735034174582922207220695955735888133214215706032272905528282469134607129182459163620450917195452369286326282176045910524385142064303779533327983711271448802999920403561740444536125406683969297496806824203053686896927766143724386211186199426602815703589334694562282084167908901510509952100194465869884002225893058601125374589382804798149614419874702233519769170626625920730773890270166247393730678758505252957124907625635411891976075146496598756380703921224899705937935545491935760299914792847292718461214969288116227937804501234188152558616689853828616291029024711058885251720053906924122061566450358351544401808919706801557422139336533490737522302185697065274293522207032137301599623507551637265546793481496418636927766324532062240381848875672879665738576567570479833811008777860819154208176615650227167407752608147423639984356980374222386317979443216114145704970511166472085349431373871933360127183723712634374908287565894548531467423211934994207975497223548410034738101343576956715372430451812945506800349229737508811767517697591308859830306600775373806874612716135869149568502129939728775138362434999780440739046375747055259559074057783037865335895862502741607543317058158627073615491280503333524275740090663337587448050778880291824632298916118556831920384028073539556480719643643812302033020530319522332193793396991711460177275771428984923147807379677458841929749642606731433025508067302175773166009341093374268542435050514257125630835573757598194721515694063602399147914941895927566640894916734080007210592756942812386300780762277634703723384686698195035526435857436821883613203493520260876859549073504496127416033583558609536410872136539667989747894991643747746829595343954428641183165387639947527673497207587753788845626477760740542113390233499772203185523863031645456855234500353634396308660795136609516768379049728093753534721593947419131377961014612104518166974555637251913534611261298072596333682100705623134699856272521520236268917947000714111328469865591163129804427857553086127992630924578795110915562755698922958619896602089631762148519171769131046884163171058384221854694260722089667818822501678883860343502826634390352861274774078664545995267758343601477498437249744808601164433327300050746138260356969342276501106793037843962265579780795900058514037942982190553823076592021970159277805322719098572950795875329446751461445269199399623501051726461931934301599930494919810003366095251537631976480722740291118602941099991182085257630978044549863237923788375818471014440787225183786475436807466831630139150922282787028146660140028045914794953838605614168341945794037582622667447835209257852355933233278126307554081642509216410059462021963744643965123668014753320317007816155740433996343687211581258705460091914046537330034920411696529266401858163664322364167814672454412675016525564611136926947238329889921018264827936112478945854829497105123785909061227443125303035650562175711549965320136870094146198988466150820304528296382846485103418910833029075248467477367474280508473137947415426662112236775396035883984006790977152437878614214696600572998571759491369144892536885842305019307915796874540223470132036404295764495517242013339433354237377232614700912615759594792892204611558419225054846885369121431954983967948786518814650376533459841394977925357686741620991846200580178236198424808908452578222105465905491968621749421026403823732508459494546943056541644848777111027687702740484845710055883972512754757112612365974394069643629168568292900926736965801149745964210329748248528196267361234465407308198853870503671914194323409493487776732036932069033305919316716258334312954089245709839158704472232984978083828023516516909331824824245235139233921013291868966700471366595837119694295632176638248769596083107126575266658374643947871696902124181171467890271556193446347595646867232343129649801365639979738033513624037752162952919201777503066551827263412535582643728630936014700688232999052545009875277883565909533123982165811398502969437164116428401653938141766135096338390514182734404369812225232590148626653504827789305349942868959579869025018215204592962909180270352392545514515244258359706046161767048080860011610911314533965996442068706797927073476304081657874599809730982115015118662257558776837044081259946476026288543957287800932403222737818606248225144241921269301671188870055464244683857871698494101023699103257155632302401475960331220205012940177082286806785172230320506321706772372356686837293535915496740110075806955814795369909789963842715369453756283564107513465510064496479800371329556630726587943299431691176067910686516498201698719951002605486074894780354594067003509880273210244966963981863123394394657706666579835148053831732092676798595022239704707533260238258171377943364709572032300386138361489047521797124551364998736735300714707747127222073841001527004924383388740362601943247368167386511974851409319444240170890973178988522515289470122367365590425790098909503289336692471331846072849506436155103347655404282341270591795510375879538739439789022697902183947688809599161576936837366042011122617015040787761851984327584157819133595275415278617433451745930298786195152324639990345471614053090265587392415677675754392787776922884123033508943868146243479361111450145561645642961387318986780152681218845218520322192521279999783713825863322391638633029707741654445606905891705242863205857787745694498481324090577335763761208765699694170058624047369230732950556511940143971200979579363316727157821241166027019077044506946556836940681888338230781305483148424748986110993445694870052357642669515232741539801952829475054926067439288010595164405493092686425723374085784019981702761557873902880232140088322888802573116589584358980904711862361011859124469252000136434070475834110192941685427685482475641069378257101062634145528170727424266428360462457918514791877997689660182575272201552174393370157721067753839222400552700014730663908453617886475642066702026233493093354168752658585827267290270553248516073136415214252521391047265160289297806476789477041774559447220802400244137958416891966471367388834409982707971727625371202604988763957311767217746716364121609690727642530283021865541799575930366531262066234314228626121663192795847881846747402335343085320521988406125575484436311190056755155056888334803997596400389334139334157582596305146439976994239640892404764972494924240449177929314540018516208914258156022599882690348260221598740995464641060003749372425058350823057866009928962275574008908854528175168449582378707226342089852888979970475435215994502598697036706050003396734014956573285096489125843527805581181948897620198893986203610066170954349638437245532765817866890757263584071218440998416701729408942437334327531718670328194529504012265226450563711530126847308489663295174191433413812209198366062983272134674878776354855356794125016657621840678536477672122747607014353411917353027744455996154019717944809591481853267328160126133202238426298958632448904776702599703437554837480984137468261911373854385231297469288409613492573092577959286614777607882460135111184873127426491051220941716151515434105215003299437622998415055343567348404336568624747637989610157683270138850363891582028866606868437162253907330415192434211390638519487870794557247742033522088870062733571061691666725588182868009862119240958482199974162465160269702623170926915757493852903953240995593042610982883198662494252782794042328808830693374476038393786579828824589454058529339015702987958119654339127644363811521628225146516829726840503603984662493090161934102524677104338715079204771649004991351321138803353641443676512041666556412313641291535562294170517461325975618979713495789054419963229756762875141991652197278354892619621844421478309797732731843699248771880414644611183890570510279695677183396211970825452596003324463774932003531097360056265423054417646188985531394517763216161738540903519535642043079791967067949914664119896787116414082607019670696636450610414706048135580970192437515434272169329568409474814418322175528387176591389779141074441339375377157537287163145860087247683624427513598741049440276696335047559159690050645740567813729630971751141332295681852175834685636296699719153837309310086105820099104458174914456892338184422246722970502252768704674982597882901388103765613641714591543040555142699537530606367282794686035972357189130373001081968289542232867061228401402737754260269872948588025670900334637359122165234140049163754130865861228571110147901656978969753951194492481266502003061146201017243341500134918434570900111101635870093958925575822404036037398012640216252994159304485746985861312938940645568315672277965619130180588315235340714272768858769537973470661740374332805913078456225975922544188879770898800654351699611836255411190950829750113543173564080094881192765258020857389862617224103189455368270631041874091513035096600536212366575195555807030529505785615737431590248150639500093444317031839287334233466009746005751195985577200693978258306131862241536586150772562453226196312311332442785293171450600963186363478964693440586700316845581679608538465930085837651228815225730899431107700445318422853677191066185441490884740992129147908717222199367622758699488311888998651654581342972298820885702426271012557982040980465932809464613548975190740865905735243182004025635622393942147270226005551435052097890889907543144516300585066751966018779008981990206446934285457756027035107002392697466537028385916810363755562677031261886841777986125824718318098786909763435758053284276245265871129257096226025741154223789955961346343420355346100107840078141224292254109734774031050881663851278314370550960941543475514824058246975464720460893420020957853751813031984727772153546224582810101984272625036618389609524493725431086558257461094890656499646314166437946311113209110365608610592733781878694600237688223220127849814207680468579836819325180683520581025481765099067344839966824164940146889183462700150346605466542119946208874777560412068652745158726556386764790092023006474660383249063955292194522708156557373394694540382848116715613133827563830815640733133578793240015550914760049547748186498092863599302695171643975479036240037956379849425485161290097984600007390165219133862835654222413105606472404578335956790870501442449525935151703317292172551891666672794529356116572094766196721563029675942286350576080455172463071230944614369144908463276796658603488926993530918844818040959863975252656701884558838691924990112833780093023334383593482027940522981103745970931216265118095054972240712132318247536653220325093657722252602940608780472305101640804237730694221682192251519444376607700503062774805049164734119481749685347892361289741639128529148448649967263913882870002558020582539840800408403997770875455966789776359697017469385182289617124384625796287290086579875680562827338922811580681416223000694945713580371731601976220386334804126920330515614465930990406063449861346716871453018239592864040270800065323820442173462427310931691636278982746310042041936298186765332305603530118296129770986307122285537851096434436919382189745745657953951070734477859849939107849167249317809708168545135933000279131881765171560276011998959266871449428877446365376394902752329034815247679334255799584092985534191978956302560026967631099079196625347940653442903819966577507093705945077666757988776657976899458009647486904256301083054617337409331440551526867149814741777265370648427935752362064027187692006610083563648047020404864637659182264195270396239902769780489096127933219387317613249280700490846265923494882749345136523873343719360027968443625130995349455386164347168244771046690837706550153585559443181577870730392204232987701926848706820781703798656073145424113880604607725773694209708304488005556883871819159762589312090664310999461571431134833837355962809480147683942366502264193961638788341242480818559284863897636396536850497294306642095445505807844078964571858977780499081256979682864573692893973972978642088559431224314387147427221274719489193831399051975894449973525146612815808752694262882206370953694056881463359271707320709759309596263534998966683221841411984725188400236657512795398503558158118083379695636950048298108772824703782644874727149190302146133285335556917477124017990610533620134441071976078018592759232190081958704263378446676014494128019071799285083418281283670001605756268695867161611582457746141747910964125016330040155287686084148101280178610262313768729092185944608586887545328705025404502313697348986050523475757781607800190521561069609921258409247867812916409393745723192716080537891529246022694359509869426426111692276888744932182839179276653019260811009856769617716667987007895612263593447428965487385530413369125583182997347918000490574510877502052572513776129710963496022688658409912213541416749038592748532165840876751278598546451631912415323295672184577851594529642867989104773399908429928935385331115817268723231785625227964055850907071008816596727152009296245542930884353611722812857004984583376587547186307614880601186619604521904012215254505655794609000849185934050234791386661161513419436129757652866773573961164071130036019640275637696540532685392557715200732473030933785624096910286810086799931934623330425563830494385207588261512880899281329873500043842627224940102145810023318969011791123955199531749870066849543958638774753023946999390716541558568339690989934343066564258246317165392045429107850101288927708808510169666187538411468633326154640407631381426011280014246643952925109767578709169775360418527863494996707931193386315582793411137438977983193212044782155354922137754467305758578079727672165205376326687868400265851304057657292291566379414005076375520737835705586856545362526297798697021635380744759451969027313669797074614541652402970455315834243030967703384019040611442779225028425070333017104229684142631589126089055853648469663359934267376368017505701550160847258805045240157257965198263030372978823443837798426538631253557497890526935771225763037358403656800978148775805986775165821779833343065206951091495111094267468079474174758804926709181548766191261370038249178587098000646612788344659403464190132783757926004058497326661383391461593648246205032470154464137121060809491502137238360888463488139194477522357774144509573787454383467364196474237168707984627615599160509438963453932137621655642751380302455511985650709951817098768840129646255825088396928879263986550070018983000202504850992032252002558213070502410862031007899185636860092319739286038803516977700885958640384217204701277078725052909392413481026421386692031614448340562612918548417636192322122529260182290354720751016830254510770065746470795327986990805857380137679717164517055892447907108493838629233093480928037593569964769038468123352664667909605507724941575513364402380523272817132220721158761959065049210368910585147281394597118042798239028786800373301270081593017763339220612400245924571995135432826468077246039611768568938952241430313288622641675187205371689912925870449357790329232815754641321289291236204139433417652108223280154000081782157441619765581217494571782851299492052892368061730477095332187752240463279881995926309729491636112802256159436377502308322049552871042841869038324474963384954186423975352814715472218650087728388538193511124241247574989823732567475286258517775862834147277031740169692154418660317520032141514477942161034492346590970772215077859264737678728404796624930474108473292003848351599815334044225758424040179413940284452611508720943092132157348546738565451747830633177198240233050427377222219016270681503728023300168393199733649153339123285432195060848626909101303991285225083673602241540535392478338759465247187345930484806237464377050352383654073016176512442715848245701893532828042066301928935940343331097323844726913371307914472400552331968072278240597595388791088269891109909861363250979021606736661773284222846655254936095681936743451654289001548090743518465786927990268319372812923036643253816406572961725152376612419454530419590383377866297378080277926293800823770412886386283938733766635017921855861907548210050535587978999554669677978058961877645946772695477131650084512513651138731056076133623998772462689869823599250678583578076981368319225885173799670075762771210700259448373104110425766122518824146573168099976613298618931004476188527943040883958355443042603590089281329902814045955248206740054848795833181031206663749182815349012675009406738458542801436713436820627997062932044478553006905324890404093296847535572509720231441948006629223229081168924094004879087654326814491241810482371873804149940240807927831031912873675523971638609969596827755540942651888442185990864695476209765817199334357576264614938457239564011165143412651940381329572566097461990158682393530647715099819882564623115846047897440046152516139966390230733793070567310935434788684367197099869279697394396729781417149417899940753111357474967665262933471928826899659868277685548158849693585861557946529342107028396088205217647606384038893555005614908930600845456003668494006778105288859811187488868464510335684859441193568677207838628997131111329390055011258413817679886143214176864794159558355379458972229564128037087645524092518830964448594673351632982400578205219753293185779763962070114265148514779103274139328142316601631447961276538654736707707069357948054141504744724695032476432562163982299580269772269361468118184689091264484369365911696687196102941265229148532040361574691494196295196793953094800734790013417494857637977742816985686388906362654882615357876017552119169559800264252150711366893813450203636462755599173524729967455351162744594548889760534895155808650519685190689295630675787544279106186417755046138330083215314601826345000502084437182952917505208071253884940699309981870613244726462080460351132937445326778005838299142269180213215072870075814734098133310664271994940692666904098936870477059061140821800838634489398108248279611861253628903243483303617494001103202417378153609348646487391458810464662752277090152899491253902120750230715748520122401703610175281689867731889585187234985232338819689582707788324675534862738358088581274496860153372137466869062464336745288739702142100091570335276269011434838547442959427807781811047184847808179736151610043487073402890606318253938171450503900713164957255357177792404113816708095919602656462311912166179409406114097376492823227820864300041294294502014444237263447735974010590185475155214862527666061472733977688344024056078032035295604079629260105135218433729224371764337390942135707200268229872369574125130741147810355828435865917807359926539152288580622876181878365008093398929170233319348945645313635888221676803165509017231154128011361557043164053018976006158241563347097093679174490301453789675204562927395566148490101990051307908278992206819269755227027949872220871228042054125496546873070734982373901451200023195411380332449909763554956280243707334835894317033186571305347832797194302209451367646407798228421857602508300044718837994632525127652288689425684784690236839161318090228365351833527220758663727651477762235601572886688406151446661365364436911384253478110502493804293020426255545267304048126260908889299044483976423578814286727164427794975546167692121895743790633376014631360173628050986795308301317096799258703509634416269806776836615584881164802587633196186743911905175530396211180348636081729717173766040699758993455492086864483982449702236667784833044115070788035668520524012480169669170015687355996085937751558280031793974344530510767638210402279124971263334553182461972834024724375752644503834942182688914513990905821632412501596616060616628693532758516028197102531461088795740233761062582706238145446800249605825187154347707698412506097946466652257513182569891643402641333224325784957765243750032076800972134818445923396761733533054567464414200926034915155457545867962056796024436516819715006938145007179483218022294531575717462712652536417922419516695091280200671442230921415413817932847171075154793156668140376645821117844049936426398347701285735158776007304579914330317123686941563174729919285216038004965043447250394269949960312038875595089985378319283641768512890853826572449634021136687828859297180565463809066856499920609291507647854552175971089389264468279834456925070885476643465280068461771911773225713416586776452594113224013337526034274004278817414027735999640742273285209015688202800838959809526682664272562367669516715425485169812659128883460628175237303063597117030230378389805694153066319444805476479369795051913128436547445026839873258790147173093091462618996822565924816264887087299738843193505529196202443873472603427770377003218111252019580715899115045671224096689644133366956362233473084052177204615659051632351688536460982622589807600315092505658667303490380310083288889231874418573280305775604280781921007027337304380491738600916471798215995337095233406523753095054594441783732998520893744969026177493020451441783633504689535842571663023216729178869157331199063043022870932741204199191072312235329343354338807770154101294798423083614262293682155545143511320219002964064774445640854774147588984678588638902885599353308678828669286167816370761144620921748920431421445618002081381357683616319632597532767724230334279315122269386135689203578157757036197613042939247267222204431430828126014284255933339251295706075460670731678041503497504328424603231753523410290371753601976893592272257564254696732675498854252042551241131532058690397006241445734235049356710192689732187540713467572084617775503426416736576882711853268084495513387062338485531411557074439352713032176314459142639216483497030271533480455313491240977480248825469304260814241747227367019971971963209731248119799787389217615143825148149657471950427684379079259996389009526603537974377049069469232850541847756540115800584332318590163522223102578263362130435076218864826813593613202864486040927011657402094734556627667213116943315814473770712701174518122780357797874516717962061033180981643284744733404721825515871392459458725783551507532432237457729714548831032697290495479451221409581555450542173155932522061540687233388104179766555739721453073820341312990415251270383732520401963325593640777653015973505790694893928686878994990964236518105400910462808141647553031585452169585042962318048092367066595740490042743495627747667508407172193966499953359822251887328953943801604748593331217181199341746381349454316046856916480908425262459292119615672548787447589403355708735870289294293178693150003068301604042379594909104546688248924112941028157590762006759536247119140168949066132245555478536829189557418167998936450931966273355635496100234016313689116295764878530443041907963505559754331062340801155229537528161679757680897137846965721975448088045943227824575980037815633828040404362300427905456494389926190672188012233561421671924925121432192909384200365878477976399070796901173540585203595487336066470458501526921719788374675420754236184351253566958724493055544461885239947663924117042756513717972668474991765700465179602238804500386683108797517214969900404302327062105121458321705237531813497904794331497253838036267153812041526616574871399030079521324171458375143679862778342252242629251842495539225476722889921436818989866186278058157122860214027220282058534827464800727911856750313865707724694976983257320395149437609588542594560143910574675758323480125768104681902504774709218742811795246343644435800342026494353840869572474763620406524593630102943765809031443194727836192342159800060689613956623394357841457458900632470562033678284941267632996174282102733730582977351011827291176021136351917313360388143639042762295032489956347517123234779275367692803843762445047521459686322953141862714319620985387171274447810167433898763095049447970891789393245205348991480381712377652707451348452690758655845842442653436011086800070334441713370614625411224289945814555605291067477931857584700374106687130883737749900576318003174873375950722364143224598218183840081781004230089790252688883886634278968412238274815548584077710299095258144176021622270718935288836602466959173638306174145553217699968733790922424764005251116704083773928528844363598178732659719116072071150642534943305673936952960402053821258100773039111753241938441032717735697542084647638981435043309569430233160994006267301251614666817299405910116289423870230758763385552689432385423468026385639809417560359612008994727416186779974775276767783603490667107474228039901796161764743409445621543936135543099610617389980491958024239453701448604392948736757757995930356983724275699571846901623211240219293537470823206804561906494222365902567939275864732896911119267001699952510696686006780066327199245735778292860295271379025030954524404326008866351253520122232749111862635667821469059262943530996362431518621692521998874897536787029634845830215723142935984912222616259310612371228359719369163696388387168409694156618541216482276172450703970181988589095695059835755863379200592991125248165647900421384171304321131028410944034065041983703728677048771470432080667801624117212084043725904404109151325640112821544339490916692075867967047813513553440776612824542578843899696155303510051451830085795387930948450426576868367663791297983040694527075474581032934024205042075950538322364453556989009958739405110631339672701604450927223192232629489007820613609547086057815344805649909487032227087186087853901198534282642720923175627950866049825323158153992439187422203378139209639572093437475859420650838451697456618054708280216561687622344085232392905015736952221485857699284692964560393944442662776518519040142721396079769214200394112869229875160675625768336836605582840270748769126467594585022115586028747529515566840152765388912540286445688258425200343657556977080079146318387450879635613007041929831695796618700302335573151150098732660403347230236626096745351166310522761225698755680218118014986549763051605183509990317304454674014403462149563588786261928798508898684891806627529336140230131882576565010766700933877444056940205920941328110589192077763684502361311284694008205805079584955974172029331444418068084789056518762557079833845561107801097956110685681908933887944785759158982283719252897540643204094105039789592921859563750455662938160094731614468369458594448782677214198386867381779626399618383961167643201129480379026507991128092783525024241544907909314214184782529430083351600773986084442751320492950505543009891650735012479730419270755467081650757447752328294187737923667246661448394844966832909945816829827988776611781293548376336118299182906120012979347483547204103836238485675053460099226215052794138546567060851019693677627221601698754497264665619214359683264746192162982122813909682213171897195721304430932212265574468847839365414215542273740880777470886345256225652647290914358579048296640279770543214956086158716149233185331738166728538926128131864770980486400853830494576731941208732618043054074786927017099635427884177695991033640279438763947728351496599958676392331234056330775069818067347918869079664579631157465162827488946594063619600741057705153351287050224692975091913940080026252742052629110933588760928693172220730718079224463291470156643450409219340676982701780897224861162038544738396189622494838394187596725469913679652514761355022587406800514719925609611648332246705449123061133059320614866257746961551675220138244495363184747208843864536294302637264813092132333836195916698412403025578736610023666243020800176703395390070441131187914450012114681469810691119092937151348877975031445151402070761230471348637987132706463552095310817447120259553094373794110991635861836824588956177790644073711886757676756879702920488780116896165806388539751180301791137425266686424542915634092272306030717649438248666285029705032498306750441937492570257722246735715939579189505582506981500857782688399176322624112361021386796751653323460701483945195554244993971232542384646894242004660234099118153702466718734853070834412636323415511836667465617583818481514478766913088895272834570502253755638723110929848246204738368195083266682374534872958989098893696110412151098334157082578610448452563591998097516687269171699130543768550315069018278618567817516844145764467698004399750436334684345661990269053527633773844103233707517956715538820578804223313378803618794044075296300208287772797809964880195709303702506026525092515546004422599515794712741303148662916525414507459364680832312309867417944825990857116037890628557495677812359434064730373072492552515857549755763124072151776416865391044804062340280303815180757418210264502953275833259498475822242876298559828959645089505183738227398874277260311875502643582154964182343476879034106910874604708472616578281362648633418507798859257842936398590296901521620816639083491360705452286691695753504320010998600931139100502342982626693862501293299361220303230865282885044972032073530228656780683309732715901189489349763553618698781387473119559243994692519212921700412142636025765187420537874543116238144621665462100601916676328522627666818903872011107564763335429372751242324101159021316773315732061291394195979512400909231231003664688882099604131924766689503400221243094111403218030171689098197495032709119584227206720579186778557796558668360442434141912457555143440521879727468635265472485250419200690209900212504024931286941316195250018973679511928893144716991081904964192442542201093870265866189239837651348539590217223317834124431422162234894608431517289572977952418727313440773552971837996437557864157623100420722543431255851753882822096440006563870700291152674917480574264168428792381150641015734810271232127732974997291302648570169796809084530015343999126294925290775924506840137371225724098717709241611447425882731488093497989056063232452592914628043587410682977907852985320116966368107906015389773343561448251329399344334572833096800545716108094629824653211762606991505522179911470879107620401652052189675651508162472272969903173801008416712971638189487780301094410280449237200197456892447267203522931796916403302884049928679217132007924870918351925900440944426616743067746661170044836299630792005338478452740731675961619036519848660617395315633068517390773518952845685413335971335885540494549345644292099925734541965505975537814074020973764797935952203543739308670086941757169681316823749569905228633872596315949143333202074318739052942134776117190793607683993056186579959617205209149196779355649524082042884078361015433050517851957536333746762739573116999557722526519792555214337933387412114700854025441192170319050718700330333907773537826038395076700803433438971094029154442905650066194564903028458928210647901817125553432494014755322162302366259811543357099263630756613263666668519472411177143178550482495514976307359534701551115878672896883037707875507224376669740168416245329439873258050832199500408551145991626876949726951176175764100628525824387135096213369353473097172581343625790096044995890169224801229131078837789068054596006265745282136215204842466985539701721141362247311712909251922917207330595401457451388097587113440070555620902746555309518311643964052605662134549615713572746721008453592634815173700392921057906418366729079393291415502814311176288638929777391607154002258239037855387009095722953995520878607296499870881285625831854567695741775646220223960442493219176848086585851797386458924019279236228915979931531896695529731227811655931914284839071321181258824336897036289961628375106916181238567059949530691807578469780342978176303489810143457639334339726226910881543880647534118117176502188504283310833878826080380484329300760105687832138792581358450929515964058903674264276741006029074294642567902719311295556844115445296559032911592535925618362668615054195109391960225123779548107216512514982163955184509937687744945097813796325056124109125560350860524015669961779596030399449822999556776000674067153723623899453867231269752149617489038855022647334635767447017575887062106108049009945384433179430026893811318473477917555075627425201801146437698333501745292213280921937786647356104177876562464772681041390084760456345532298382804768823633180575305496498403754440888072663168215462600489353583092607714082990903404471397093246867677694372942259876166892186903110252671578320038677861231985152451698760954137647898118414932997475551867070263569638325055915813187288972010606236838768790603201596630532253573702531222812111835300315793033172616275955934052554439181843203490537239016936016906856386171820982176721321595108462828826427295251658278831298464542518898567990231530088024962771545340876394462972730895167073187477657301555142830984980607263867402157160541316626302585225588601980147049282289175452333334767962585510270530381768868139625436918146228228472922063239460788917630735797299734470860210138780835546071696380317590000328855804480865812776423211282886856231789000629435224755496181504794678044481121094991671240950922940870270611354999816128839434348392894164226491865439915543373131463923210968045289298523790914467702421944339901923734967144531786421934493051803341463513108032134007432807568951232146506547723826875819039361730268940313573110427750429082319502252962054378178914481482062933719053154829138571320981139142722742214587016862921381477987457852898939712098559303609731911875594682735686406832776498070547165896323228044349588429230064686149676104634349534008985611454029691721654898401089876287432543485069211703656107621699989597624564936030973289337328131135708539203344375396224068289352232621449720669022353917990904381658522626527684552736778641026363394879065137929724123563654689000450442853065528152426610899811010548370695902489641094359981981391659885199063559349994103515882172262551483199743251900882101547073611566038806433337309900858494268104452813728531510039890082879468141501362844449315728695298561359741553728971105725256640728040339755739975841277960504469395308701833601559105392435849433597231422236579947118073293340821424745938799820315934913686040646835251458844842499876395938207551115256336809578478274895903846095169904955038746844385422857359993064891990802284965518896424803658164761186427852640623809916324424574182263158816256600767117772911605160837445263535689022746566719813604582999779972785912336889374870363358733039626520929673522444185772831516850724196338977445321785978089288638116009089142601851111371892673872089273648183336043803111594980253514756001019744771922354994538936280131696987375299936166419211808836226379581131147557467854768483594592970402160141500958717658851381319769140316229693194666812125652822693508458706905828653450411918147530867591736202515762227637103988794351934821373023262674682699912066754896011552191454527531171057944454530837696402879835824674473265449096464956437824791941229494965680529424554581476276549293150475242006067299115746853329182596939608309935156238564787628330041318087914961700769504989968550224542335087524538669088785358873447335479733879810013194916528305200607647694201339284448856190388297072859628135986820347887800033880645746250192892028485235836632559197332671269253770768370892154883285787780652724351101636767781490937655667971993649702846117223383586006528593361891255117536380244223130262084434169297388324741003928743775662247993551447605498617979692679248151605689277480718136093743162039293457770057305214808796682702277124664421270315272663311474324966405415703260454811770754328444807320366694589142175882052737941998889659257613638608602678686978816145947018963118884498266195795296303323649431138094239684759181319405558869168769260712278692334224302892836710069201699336686648238144552032295998495377661612340851460618740275331369219350441089204180330884471648460791058989506193808105515196317124054575907613485443066153465882041992291754032159256628048460320753831279250644800910274821334557201230375764702242790705770526351148176704454881854692353218074447195824184204574004868942726657368567617244812015321170712506514021305124747652724545172155781828663403275121648895328586874700252738236272365076886019669587160082199031243644530252942165019680071735975489934807114447446292750911324325484230870234889864508394423331445552502309120329140343082929540079423025824588977074514200866781458331531676195030770006047667578901127626857899261036096031134092566165212736738540469836137989147692218187132598617468921137024194895773928886460044227116359159967439212714602877856546575075089179871143993520166917153512119672234787838758550929896620411524490467205166214954063005652335946283151052785031036031024941319161247844419231431217142351159469172755209015898093904646065926030940651059311246123215029495151159863462027888116122560510589328689087605950131210161435410485661594119815802635145413133308875572992614031500612102178123775794850164793034141254550849371592517549434503669525863971238636726380080877275513913923594890805289433958384102451278034561684658287469131170286438994701849308795057490722835393574344585136047601264370472045220323791079118122466006283732742180889683472993574823571679909486690219328483199275438128584531862127672594819808158399900916139322748836326003927829082076197746424125206920284095523898103584625744802036031749601648241205306114005240533281260727116008496736057508869295789878226785516726294012966518734926325709090677509249932606360795119098023816213336778463280414200367152506891186319282396289113217341585020671945061267464640063935437481980391185478503690209653818679838803975269224812168943426376568954523195334995635052235489661389508280080067225268041564572536721234091079159677283800346728713620194559634814886911361525774982431179981464488842804408828940866147186105403918660431165481122633309827297664497819127903693320850239120638340505094860949102973859908160871991213966371738034985582554690396804883980171550475762335119054862431024332202052083449039886504869402360475082791648647209369312205903025343067198256726824860483141385572152104609055684539523989327554170701523840347317141157146566989194522771729555617084330576928776218654018676170499762358342881049341766972303533278470814794110360473271186946789526322955300148862554811573355870253465361162906898795523633555193528998681621231894676651627759292236897275867862751482230494507265461511407454700753972534429836850837623390739401358676418438093962569249490118901750690947907386343946008935043227313339603374990115001033190777973626358933224289246375417496267878478661928469364273079584611786460173356253383796759342268109537922215242997535429982373540750875328596162052481004966238819273398507741811295277697450858005277778528876779657011974415649379072118338120723239142741677387245164438832467381317684005693111231349218865300178458498789089311444900930617169779255658646381728801098055674333273874331244682542348261321307514180855551065039110398334101989558246224698284766801284280443617010419822208421557414781425620461390067772964099924604785504467341712559727463217291268967838692603294516533205559365636551452384325285909015080187293726195297498367938005878032506126045860649521492434914066692714713251032316963194072860419609176889815103235921929827689678952527966392184453827399017157696813708953785023635288454363326182375670149426961381189806132198233323495609922448577860466189027094110409305909259483034262618187748495301333784556390997116273894599543472496204132687197054176409674853904195703082633270846603708318194645845051082213818189881064315231505152217909400978625070906551470525244574290526400619401978849640030157811544889248180213376436948313656427095881975326959373561488969552415867953476034376238816481081840416616721839818755605687564063256410868403349485267378864882198487603807106898941171972467500320298604764528394185745171785632293146131235277820463186218372526684416607590689812610586104824050963713441991950143827398804373366741631913513574737992672500838837322441083143516028649130603825055142706794203741947904691521222498915940778370971334215054198774015860269358318645095240274388612981154787902627360215095426742164887035933579322527764415907844766831840445041600736552772445214257336294685604748117498411716087798382841155385449706352440782467614468671196887674747003978229282099749476972486980019882034694922376078126473036302394968209368915743590492812122000177108162673437918880880669978766389563478653864983665192283640289217002505537922055933212249406639980052331526037026185663540716111971894685554774734623475276224557961277116319315954202931913534141911491727684115907499812720744464756376980818174853290501853766016764781602841528920091049808780682787549510352105752232447800191769695127253236628711651563800958901135932815590162364870513635470504650510839742117184985918392092517160621198122557631405250365383319522888274899208804882528760087798400158194953220123171795114138744864278099808304513742197615084951830843003432927135841922208198156289501655734920105245094087737919648365606703055651874660206900547636508612107632788646754508245609340482389242901945655022396621849251608839975218891536821341086886640321716619305920359434164726336260078346243238388970777669725433131034652074458738551620534264792508248809155946854841984223705606433679245262611782375433117996469889351982057707616026176707497800791434049533328707268355285107774625562145138326269372803663727672240854497779759496601811485262785507953948348841647549065706157203975531661387550097659842342472899956712014657846575470715056970412068188315877920787475289907635834539347808411484056378665969309153018977021984584386420320430044700253917115827846155254801436472342867605959233509062951775696078161653371538326579716399712310196775604889926545359191819118042923077480605099398662664447491766438381726864390535102445125081459127873971814823427628795806869218111977329982844602329910812677036159333162678671862392877560875459242226139418249691438093769644751396623533492467746158260883798111986367296505039784903690593715418957516567709458777253607711652469820981981320048899935136102767010878101341306475039888113668867896829784764792159810933955417335797891216018192652506834998897932574309289850346201816413630608264419033509648642242492270112595103345879814418637539050627290882755056188555987325347982317002046260316792484275151573151940086128182089077504573729859062953235856423616263712261660400947561910535344687826998425423273535659965454338496444564638586693586982069291347727855174790122202901835467826140200515655147141063753961565868578648806814289643928729457246840777625027987186842079363551960960940537739070318791147723784093469701472146251704689508776638687278093477046207954422498566834642624935882433658453704571262380377849463079308343119820479979188372982263470755362805345028851623163486312697058871612230105387036254760433365905463007548131721718235456866047841139240834918935583120847989676743960841929717725462497233509985860179421062868229454013919863880657150385880164290800677243646249038701622407326364420705007213936663719243472812678403898507296246274148623709566968586860877411486137331666041834546805046895254367400268429701199008742216363836647891298160466947043732930615703214893672168199548452593757228983057160588920379453844149963284499640377510017440571224968930410873085802842352703920845436609490489101931516805659907329354801042333161360882072167387324427110670703842674741963603312373709640918274503946697098504027676145750942640122857644837009543124998613187957367360062631360099414500260757976856427483082400758554239002605054540033063641088336512118725646872758870915901703085954352795403322439542983463946817464380916670468769231852501457447744008236398864391404473933864218841529693626564024783632939633220450352479270732906688045251605529255899724785892430849248875148949672690617103966017033254976997920011187512913703982133422833560396551979221962948731084132564743429435806280644835925908508421810112547429194439168991809143048479240332990183437635131643596695726527756369657977445146067184821907457112952649809461404710307591488017780383900222214878815257528559602574318136682070254670084874639406503238816151693684576799730489713510710914566293825214041968938322503165984988012008814086343437718927509535144871411407499135382650837240505899297593409522092549938219759540474100247221030241252665538983495054927613486766435977718346023328957132233313940848695026660736738599091867516857901052206432866986815506671965319593615655391512088089986329444330054998671537698508996765208866076462478178472435544947489628643319122987862116666211425622349927208629116322897493390794226286562535516926038622684124774787944482840977773159049146846358522430119926902387304084423542167072109860868631370377074597051509495836496064792025668072472726908326411175828793110848101937589232446643902118503089705085932120489375121364333507752254756547297172101836599748275936766988654572850881985593304546631115155384500860718122698021348297270779991629489694530209941643779949067630237600710522095874413906243123031135935079708280082042953900262939377913520281288843904664328433736573756643383188503372655641683327973186965651631654913569382277831227948256282412676167966709942732720051466526808505451034266693686730959235424705222961345726636901600511457083510303942093770213826119104446889791518822401411159080937045800491740220941369275358355750989203119790353841296236998863690920723877304543231880617435227775304495983147505436009434757827445028892987612172631635826866098903689915524120206302416904217745045584418247549574124157744644479587675724437257711919551998971109819159676597406964499583634781553724425589188585333000859905192571510331466288530622118710701039234063859365144855802709687407758201865670037801799915596746525977273979503420973283973535408288242805263109528003319749732273264579372352564545086261739297305328336077777112105899961777109606672844077062086177908490065774255886186643566989415253698490564172984237426157058527675172305386787356454301162937049096823813515089956846904994711392265551733965458940621406645851039835942905665020707284784541467391004002936409487053427668821856056173892748853633861662418188886402956750026025787079933690046915127787066062309016407694976120757404323703443281327721377052722777418451524177891641077692227907485416025411497635399819867847703528580798809089356046974588400301533935850646265388469020188384045032091085587365936042389831680235036630001355083201912641569668882434211427119201455429490850973840530592364739351390596499060842000397638338977283885720277070339030412172140085432869371117688749427063060546599044182026714009752305547414898624488607878973357640433751779210626708258044742982284052190649737544964062111614610360687710428055798406670559707102544318833490892475986188695910247060461255738157056380408909090237639072524106196596280938214839739765417231893677584986825341293630524889852619142582917709118547407735117427642662609674864557787412078661695002283517711076337532503797669644019832927833095742054390843991299911464849151536874717911650499612887199428706985161854312976995802334553394265111814392359012508744922830261044047315739982237949124027542171206139001677165051043056440724899030318316490870412282303299256439851880307342594865440193191854235481758030558338966955799629561261751737409661541743811683325710172327925780583284174739642263946062509982566637233397185140988124247125167887273080161113761150425146826014860528529089796788802474827191049116768877693792951000442609897967414787801036477944592971980097319911870825438116363611258610625271774282223691162193885936501403562561677934360187576515925431083414536486193869776561267651419936706391773718865219109511602018991446952267741922854891780748376136036355616057790856522373533565386214728688742549461112595033585406765380637347953058496588129120729019162041667334288490685159861900684690971802549475044111422386050535435849197174551068523294223351601279108883957989470827555218612570669749906942542329750216361890922914571001661880513529079711162175351081912110564920665384613030599683617214801704509515687176701125857129278403993228885329357408123468634457555619742374838804755452851196402908259838411825783996002574670479476433230844251473727128374602425226601410606208188948931698642037863511952618542848802451622495770531576458021636023845228983797198920772542720955836475804815862424000567070714155650448892407645588378672754582794600181540766214296108610397422691774669313684325737384120466867863460922050055347351254655779055776297089530296118546122726586372082386438759204090457924354407635059468746409734414749703096318721033690252510342784715754047449326279856863830049954421635260904829980147760667674286625561011381366055753648487280989611286618019289237005637823396695142763318969768494810068192971195605315040566728597411924952329859730329073250798323497437884701402671307033120859707817900425333520632595858940729968559785970871055931394245859737479929154438223316602855237140982295283571806089797787666961932105726842075520701062557313158798746815882594063292650324434074374725791947938805925850507712732155914480553036003203888678358901327398410487598003792794341998506195944839238597813764952875756540271251646667169463650619223169536428753007547552701907494691615495130232121410810434544882482884830244372806687662668943609911945402547621052158982052874683679278816221416023264826461440277465320166344997674161021593864785928358980791112380251459714439347231896273725063518566190024909082253451447812967031578004925489688938602120810812493195090973795462310044441370636343811912853618221277318085769227743771933472744770536727429366623455533773789651016907924472629080669730757491530038932638533387413369947822380690290597337795483980742957371358729500152797129835530813347649791132639882165065111995057396877346488848400762138074976802848663127392706004649627639038922680692722166584805013373092123956512377563532797190086064928939849092817661985775006657350809698311146567643528086889625554290394996373491266598500069840336964070871798783572170004022952070666260639654364116463529420084871952011410907779355515406128124841460628544876288571377387993637729630025744332089333678451232485610172210231728327419205857881650363866944795143734387599005205452275593806463217656725665011061735587779678396285243421041633788137367386761899346348735775144391072909618161839529925181754490081908127424285600238224811249991333011040155670341330400159512028370340432685778107680450843557607823982192224896470602383688222578187883355249191626918946754021437237359007592126309258334318538173752365707306071641755612964215809275339783617727808820584818031037711597535154677543978914895903838004204008152658269731956324409298893985079424015271324508107120030286941673642683146075132227765210148985848897931302622844173377689039403616706994648166412812849163808595278458871900902832296992143080407663193241381353662019518028986467128299919948295903511901390111043943225086378937914047993062280487304018059502714713298892519758286021548878041021024671454269552872379609088179168109434114412171071155373763945200502366280228166403589441649968808290797471399591473766539715199336563885008765350935063472210422219868929848624326876232817583968605368134653651766813473054123295936889144856470285479310458410447088025227679677556631683981289381156039045080291847982072252568409703770072340607915562812599434912037341000327728672093682225678290123604883775256794709887637128937524714399761463777254182788548996670873631631557672932705546816469962949158283456602034917646252966599084828488112648155807737304512612959055061955046747808291227957383516504935141669573675704478265296428058485669844577315152030113984836337373798327211056606455810509906322105715769318791719882897668933483006179869884584967585034706918654138021155996819111712939572351703079558341578731600435694505338296234227533319973508135264496795914837916271582579166593625241344676179652539243810261268827160749751628067358300108176394791151408133941685122503875719607660187048994126356237249494657817213561958254697918154296005443154251864958479215449005647077888736607445343874524309297214776410928027699721182891035285651151055444654743670119581218479451691344556496137364520913500061469360283097429393338742935871848378575443960199088504084977664038564200309567368554929494983776665126739128200549979126741513000888082764921120006195101709340296782460662841428528758847475800818418028047030698087228067714640612544964617458097807420982611413721599673651370322651395606432208764921060389390732276985399586400977146823001419647221412038719179753120150694262225066648304322195064656716796725274214693473508977640194265780109198241936321360729426550926366346480174840055461300309166116361551229273496880501488596530997803104886058355808681146234996918167412249037135914378051600532760932093367866334573479874182294550108260857471905657751428138422921409739768240327668436135302058818583074683202559614006763516963065038252367576512194270498360887336899190193165618797279415801538659328227319400101091757229056880236428044008418707828734117943095154888464660869597235981486468750394295004346598427131887995033587239906459233677936172716440009888105421773929294961161302412790258291621376890087339674928747371157308411044019297009928809457933571891501668505913672119086496954233039369233452990315189630240725159150747476024518813925011411543223861462269465683413192395388183883932106500967372686429575468749762526219705420403332511078559154167930091680481447207933850231843998222666673398299691682573509599292753090116017723397438438188465621817555402839889250248951814298455011169391967546958583133466688648288836047263067920380069297866106522400401863112652678902864061893692920612393287448712840357099192430664001953072748573903759884697478010600738822222809735364143614399262589902011022999463344044203688834842783784288884828929154281065628578616470604931628204545389444698026974985342710759377961043513254241309971529650928519553133812942463649563578594174757457652761905584975872673573110411494766608641428362856012905406048976986801573133675378875321128579256501269609458927902367599923735248458248133385455112753816954017233745459962081425154678981482425617862072087398954580738165205555463494491960012590885831370894615515536586123819314054790353715877801999682940163385762152469143959517039260899450779184317684110171000609905780969135456481702125299837893632990258824612409979218973006914772048809393880177611540830261804559949215349362211422250518165543307514948224206717617649007745772613834891678673615930527312975630587557168188201221701249304323739022151214276043778435536735082759993297477599895436189624500077930511779662101989625802896641687161978282512041452416048407479697717623209938245644297615009642640291655865950874158953015506053664507881518161316403990253662019857981649652468667512688226722423471077543228691832141139456386869280356045019305468437201272943990784931550318425530029826526526028708515318035357888328956390374847194530740378978834258829865289570502925262817460964473362781053867061883281622813199704499131089511610661032582039621841054901626554188986396401076937058030333155829411789697897550635447860983323576094854209392038123433407632144338234326109392824478736323851632205286280031733741454105526585031682308242723831025262877722564915753388621938578444486188854276766668864433778390207327830657774363581543967234687583329454092738920213346474201337869332233506104612020367682975069630059664224987464337835839802760144183376997442408848208229593338894768108205897756523558451849045830463016723185093452141621069451881542426780104643074843686947155438841094154334200052783231363799770870773711135518481310859265156055891371125964658738458979449813799618561884894565728503739841118705480851243827084219680259837244664275051547062873148160307502538439811078987813248580554273543807465008578867357735768915269192369731490847694999517453495502591698823207858283830883044662383153197353447214303574604953219243304504249850652324050735123690473269814432216409953839674133229820021256921613927703810151187400306109165532797316054140403544507037401253270832562847625704736020476721522949078161458610389406427794033323647645429554865192500826258078640329328122890117427605892087362856424198995862180962364419895064736519992277811733425500771426013375867230141041576269266353469123341545711210279733527102479632128534481424654665261978319659141448538778894125982217627002701056474361875094133730090532779052272337551089793615552466060377351341631763073664304861265454854503372287547683409917291706794703334388534061244704361224682650016091688644409008502255248849208564791176977347369944208206581064927712329609083275484111338189562380438794101276372512103785998404329344634153936503557655594600797024361109853086645309985947852212547380336222128088648078263138426983079464404352882316048184573015540598887819933865844756268228901541785051106897079416861511768916466897968847121303340380575329029330748018975470759513917797361459309992707994050907887369379122412263714820973507297930004987223218040862272782921276970481601780877435357370480946112913014408566508489509016852905903358973475721892146238783229580124559650130304758831526353199088364792537015919067666761025311934627782745637275086579538287829861120432388045774172670827468230870921922331628012749019277673695010721694572537345034561544627906843477954172588527152877293105031348892860753126848692875721779527561560446082479447178247596768873982098990799119601733908938749521099701416692222805981103856036502591809653470045284866474294508400891065328522070838105096623054280055174498108395780610535814660714336400385856442420518296669026983684994499031183383825922593080541374862102067035048301880173953639673832728931044911275172722726064193191173009358708311588077451888632990461564671692937085484021887363928601984093721256450162138027276235491296158262456150021427909397254383961948771253900737165055148286846838947723611288504318825942598008602373692423501237080013348760591084937001941639112003070073635698477978400189174002611289048156985877698654385129737246512859402276635509159715443721023683903340289838290548988396752792097352763711741285184646215215276092653172745809268231062403365758632003208941043381443594988394455886593024582474851023667728958331324496478685466033222525063615438614901613079394292786739343254633273949815445616997098252208164763005941651794624930319058304807191578908326667248139403339852171999426276262190423424329084058353459024801807485780702109179664133280749096756152911760885355111031333508202995593319951768573405164440711409636709177355679446987382475099154448224129930303934473720075396194035217493057856307324025452383325436635079682347120774111581119112909882487937023214173051825358901101429684211002844448352371084246220917463859395465639539220520526202128586846861807590592350451756802919450631191991488479874896005454357368717044332479201521297244710386749320480950141519140263258602177813080942511993550422977389355791862823668088527128454196202655423265928270720476460786966474363056173026987460895791158549550898447509060109856787195385147032323087292835839070328176606074963354299950929056395436263746359635759475122418628366759622197831183905260037316617165510531410486581508988456170321855743509366740122968657736286897237051373628174672709382412841048806321034902138712082337927289556018585302032082045753348161662094288413236529341123716023255168112295400663560519487407590697630092605840102694497012785100356989104837165425934144425471825420339669504175773246798029295803198962840271152747627263888625401564297807979710348400796147434024595583169436050544377671482804212219255799742664736778148166079669477467392527054124144417800541556376807929945314692042224737742759737255263461178720123528621980875263895373549924344273255222940927303086526049331134090433829075707424902021927204480349894148507374399203492548177280806663661688613839881924132638282915034800561222656710815034616864676405097555896959075195160040130670022423429667617987641246780986077930748285915071042750985863079585250931419887350931797854269512387883538346575891431085163897641978387095552606803265033112094308258139557592687755819971853927733172500108981343546153089776220828737078162485074202202323696403027561322838282276860834435628417714998902917932517689886223078699109445453566128533732637210877029689984399288851983037591713144256937409638168035156096284446747436458034496717384408093994535842859824161384786493812479455149584769132498460903580443325685361814537371456952487437520764315586630284992895563666609899731599414142497215421312792214649148279432451879325081320564109990751961379331206928073009770918661861015439391804898822165225892484350936734037458235955917618356309086588831786548982091046990438273384103291825459945014926089272729853369375892818655220330373587252939053554655611550719084164754160385303906030903614814326892389840618920273971854677170296735763469446193533487109601068830985867770846416626204151284089497366875640804063946601818291724153876084769272452344795616657178470487044938850886605635993407134614960025970580142519383855577808610271355140569429114460685962911290974376308404471241397276578619125286167472524967756683327293934822388892918037179233314391944903203275880650247511806007553870929069939689174933702051424343325656546003587212049252797905831997975182776361462247094958725674818587377158550154746067769341707378600827705375029797552506706246830910736086618711471059849867106426994342756049113540050615567281155006151959861405982287668297216762146261232849009406699233538363848993273420056843223813030745530726740480138239498511685052892229653727949137219994146023450603349363906271700460629304015042899997334592657347430873710292489710611472759078680527727089860066044628283967482585283493170525778462612438852453050924315339196290301673284033483431542569534053513504279664081890360433491287256391525888590087545425205518066168400915519710706213680537754337632636329708346885074866425183191442468763107573648148801781710957746811279024520170516969014271617547909070974388839183946551173100365273671372170932981962306832542700861745218225373599905417906895419408183027863528562939487530744246188941283012535452576105051516554590096562967461597818664647650817402081446421954338893987761413960338368817606382937409926783229311127018213457469423777739028839039694393291489475228256140438283534999299203193128794601122528091764231530259052252489011944766921555788939421203738869591816258958501255955486107286918182279988870562431839797661277400843283936229670234778558650911947370229007312008654932522885987795582009226615703232662451934413894960842817777661965772053527532911694034497280673887687793560628303597600046196272446296924136417905491721370428267415972593741388493908800385709911337531614092484538091608848848348880395925411759339633080903280915511500668615360621807270503817263268609153561618107448292651155171484610140801152509009764801807343834778063084152271189963365161267170960462419725559134373216186321084883471451040858609597878607344746816695228870458642536649702160203305295507085215172292042894975609042484827063932547675641580454547045690354365690210139047634512006058398080995079265213431716575159662858895682532675486884491880564995084317908492738516024519568150174919065807292684197975838723798303946411153992746121752881300425476589893559062810232445948090295570811829179196592389057834976446249278864651262408464542030163547861563191678819931090470131507153739820484268689856898630455406719394155891793095034095370980428544159414451324160299276282161027370990219475357723418182464942493948485943191579199252388019854472768141650402171706313745545921736169082974671194849656738408342265170739166839513991930758256213562342009806938726529500179653701406614517941451506592813453856822771276722899720261047263105672121133696305757496565001649267576814495100487312361520023753696645450944909803517713601655828073105101278006561432758559331746567520952021210724170880070558056169458394600762541815171117092999671713006535194991711968446789395291278342716920211187164974757121784287944542701966466118088749199872521625570172590648955018080718600025898954824859148398522407589749749795678214507951583383683133856238999362181957065099099816388182319618968332485825027777328815663310659958331399220818207486667452109407853792697042059721383214054539830080561054517484342176499630807577646403576091416475196842100491942034585005795393758038924840038134918934667577726790439576098589125940456267988351293054412797837288354812621055460890314235973816776962703167964208474477036862333887900596726957538711433017004106125561386627402217147268114650816149366699900503192480760862111867175178048551132872458392197574608773887032521883327151413446818284093264306617430859607679344221084017992534396351594094726886887809685047838405477887737171053092007478849875453510070041635543749322843016238910314245574129355477624234793205619691763092302511964674058665104682152258344787785534700966709433571953226735250929328885418559429763453861043852472844340990674834156531742264194764745687781905551455549964971423183430914615339635005597477080374859009095518866613185941743165882956065919226784002273729763062788843082874847455309521510864251117099646274883087258984022166997020555433665320113522112008053315205870840272619191832185620815854139373508487856584934918327893776447490069883978450049870578673818326916344173322794711179319247318216629404512286915071447835979383836151634988230022384379539831509195480280831914740064493020768388615089021820460453482885639981201391047466589173070403766968647041943181996213495821199209127610022561384561967064347267757136598313279923913607451621220622975136777825657471882863185134190114742980933687568294746771702987179176859084450654688891881567889292104902135751980375467392577895879786751480523738485330051835039070735103693403665574044057952276320538297727945363924868119001535854184949141676077373107797216568280416300349601703105934849218713593151807640889136652746026269842746438488724112129407297894458286964912846110290261938055650460605731644353929973078142595899468114931298293915841442707828770659710872278095997674508345383994880664962676474364528680489783689351404763373683563493680055648018540420080706558677529576805491944520645090509310733306773765385266551965008726739980793831185827316555456778864709654955137152756242289102432069573127976490987084987402379970571473227424719900497374716139116326167132779518280308170685360626447378520290786094126346772276884596232511707979454420780403244852403348735249529942808013895392762873502371486778694741009345310114697234829063092007140325388051773916217386038112384714532250660254358394181951398960667743062252124525085337206411479971383768973811863352133184693209165442181721071880938947537601673593127522958561355897589959910447656291876641333921882694822479959660280905811408258658720418657832079168283385265398292209950680404406517559407494134808834214212817309787716812711291650955845768121072418101141377855569809916736576143687832002472395175583312219423117959717717693595465739489488946606522449007872455700886190674796988624143091203785774869109357764915480318967072710686112828887250142504662656980306762546963151505973078413549107754312337067318560944462708134263274418345720702618742376261761740444649625968732745628954287910229710346467773227711349692696627732997916024341787898161674061949051406854828210574023111977497383506034996036521513921164666266300650803269107069499922138295536306204309730815695873701302616726877419892136477437490632241675573184160318560496017586144097731047450825519584146298391474137855014536082270249459656100599845245627601590027999783933390266860458456033075108086771898795243447389002911481592035984175763525593284154503020460523948747797540711721891149439574976526035748321286226168938107072620458941491004685932656272229887954625778472323919661111717827378454477556405125184801737120268634403736658249025254356438580985969318123441537642273037993518308043778956457300219313882073092892377873247096162842019494472784522089075614451123196995338177753363766978073731673952767376877324543348081831877491417154491859047631456382441254727111128533985425486435336528983448291578136109747194085590326170276074213217727485488487391133612854030347562636880625080821385437766501435383468085265722948023198814559093179377236832300639338107270432862541275416104297519696946480796435920714103255335050101891568960711028474837225723231892351958643051147219039371810553142425950857404211923910034129374252969466111053431674019865556266136001480128451662153714731855944132096812032375663891938216631387280871277583474967580277318488838881221978480313341112274598414753499754779869058360866698030776871941984763705473524444752207121242867882496740248281488146422392939505611325280656264738877445132539183081574026385659431621373279318757120904221431660512271993470722319945828733641823892009665237834956635512129127043347009445019656106858142207041164281430413656593547939386306923357021190731923646426441761137453643596910127659689634272421083442745727888421238776964142529214384689634002334218920148681511050197441470878706526277797419129362268483448120238667156146504451619942380880987521084711985767450566823740721490270664612914891851747613978822012702905949047106489715826746520539354163643897109908104414790177937760640904433118247499292524624762196696790191604597384100672244995841029357146084093230760715712436205074249120831527440474022946235148467423950165659859193041791788151618183669949327523185317542181697441439086219577602847857571113047552479982877374628111152447167981145715254108284095844699821148040173439293260539419062403000923169675639131647345516515043017415560836015489310585455057992676370984842239657982906464277893002536423799947193855718494637961739934648461781975774686204950384246924768650170115863837670955070813199943795323487844882756797693212844617884882111494635350319776641227627982310730359098165444252564772783728085776279802807895973017203802312111849631877091651895170057670012541410839051503416362685850468187205228515758288305785297050697787159493984812364235957181302915955687222716308539634500929555032167842354311871356539710747076266867336826154592167974703360496015393514650540612399157532800983004356263665330047621108483277612522534221611405778765329776687442882459322163863996479304329406563889830188395447170656744367230264329395242377072167092609249470802146902921592146271781692324717006803923307992167430576403642955936309810253541090975081845979080097103382604793639499511611333968569648128320676834637508992631466600376972437758445620136610167325883490864866521091729748662625245942574705076499654015419707126234429889304479232044007822087517132098856691615439796241941694556147316493209659855621139675352487705617044358751523755652524138555917453867765726512902146834077633082712852509627646339017343784511855151644787601060333248373658008783143521332538805622662772723050022589062052185355699583290897408974656835438213636705015357631352092354814950238043916640856707592398706650604171457434495419612780856706390876388529847705936739623314358854756868059007066231948267100856600752062164621747895467709939144150877940158930245670278111027464371801979177394459639655525727028822287783180372914026720230082513600304652592739067699982099689206314546321791647512856811955518842683223375276573613230968124127828529947638396645787918934884122790986404867535472974803332902361767272211763514420095073234527909920027305106810223164391974803658010537504193739621842775200128593131703633491472888603158876775764262938605124121987805306039562641073821755528729338806342955760431982050282598267561993512897000198735278774929951373424676461277875891627159703182864507246311754270533989270877221828377322963657103432832270499262149681320787579018613240584446905879509241155300432561301754816204777515824854444132086278181932674363106450518501378706627506922167015211970121745273601973694545878701759413690155530345849180391342334630110128465386292434375177679191029533112872070606034842361445693481830868385701551540437381311882514407300488664803941302821212069531597408622686988858649056359126748294407160001412928485908576203502204400608304347264959483319496207578919928568235494256487641775467809738162520859738577288755842169009906500697015517281692304892910517510346975842914755458059021299319154237564850335723221951415520970981866743834335209804115729565607477558137053939277779044794224777689210413952200011526897801966903703780230943179902146622691866140855901074877199980626953578298351362632122631819764368338381873932199882152144782181832364503773932365124180721402961369153103338332242086300536576370692047174357735356992135565194595426565575391543330194065568825231662195227254447921987953679217892076216448346885498640479526983196766675591653960913216730213075059971075290905238261363880324521152774353741688551432970679064550308277218167758617766604178681608550452982121574465497662629110386553626686403462913667037394243127090471786235284460760112192683104319600791056171701012130572981491417915682682447807866349405280731667006239222591189923268832246377350819725467225371116972181325799308736680417689127702880301068134039574014964777863977224299210534039625464359266129224367998913000230636767660148067860662648998599251797712894020658372075197740373263688900552142758402333557486724111518287935654439833959259431640804500712180776942279411518458892844657630418422635429861006368086611689904053047624977631172202807401705833643037609244268531664097704488489722300120258082279442480449314969906960779226618887745131715542951955604765963013115723436495019108331667972010344390412187272225397810086684912622971407794887397369134673041735158239256261703352641641761187926700230600597240659263254437836242472945610343402130990250958839098829198141632791277545045593566059364908695093807556041751580812920908270222784672738181239918145647673087018043620719065431235481083201592229623824075342355966801531706034107390750176440457753724424088374231418343763040723924779914257170323926928876872388951059932507924004744529219693371861560957259209727717265887522084403520119564557155006970645185377446859275864917765120646629513826853653291865668693424644084982484689247557470118633974791131397619390383517753445701656793990952069950501832248515217829218752280735145506758483696784996607438541668588096448996378855252954979181769522880403152949294321767750390516943980404513610349398658206590342976338449916621102232968604215057957373591292035327687471096069088865852695313696564669455168201309153659696993160466847019877229400881876203492902349211372484475706260268718576681235353208673876851890624324358054088740322280138911892138329846787340446393269603146389359069154095739933096462711417892883948003869527989368907908780884035736585285221264257952058422583067527858373930707238426743321195267897285343054321604131874876696679966679593847132651341676021572498497173221725882695384378997487544477276660487238635861814963512843885217374633424279620053764435478802716451636803890751401887466831989601913284798249726665276554572958328326580067522599007974357626315579560145380303068755711163710119399981354429270826329702604334188436461331655446540360461813535558459393369907845737588833673475995272685925094258003604075154591014494687208786207193203997055053387082221208258399725811213240553391301113204897073418775468039801025030058857727208467899762882162654159503491086852453506240783598559789543729701142933730913348095436606133251976388447500426886842037631877597760277070094450548895954414793268997837063167147073608195928277939952904899416758363218208835241737093813331824300299297745107328172416798113788032295493762707720887009480676761480367415886513175134681229979831919142016374063840311236706294823381096933737621368750104141833394890406910123812113147972667628299209939207712823147032632262874258300801640639787020390517040404469273843561917997436462696347847390511353785281118002255639002057534040919905011295202830379374007576539892746633241416898413595296598098680227167441305820274482677944133157122076926850028626264094072442659717744406190699003439807347980768512789796416261584315370823439230627498083715573889428836777846281373809628572180996215546638710838214134294396167884498782269307060780779103033049607190645128751697207062272418447989752480342111875367670980437757364034556990941847314471153371241356773638609684911627322975860396889249918423728181478164536326834234607649805236185252256140939035369718688409326768694983359631354632953583791933603439273031542326020915282776797455089339276266648622385673832270717521861183708535822215882827416225929362696658713938314682345349247317269302895065488553499304837145928980196590787633987814578628038328355118191933772288861704041254317031969118313160663338895409140309089664667209288192549275477350272582669758306763748719456863944986183949171827800746499122912216585175433293488257589097466243150691030086121674793554357957174734843721045740380178450299338807299671553261723342069059269241785404200481225575704878694969234143928559917386146275590801854750248554382706690109361063253963024331600435548568193098991256481491415418074113403893076163437800421769314057723625639593578585056498197605805020440208267061570809920596599049089630361204431241894345153756643109761479551097263950919824507954764175723572358105932391018602567045422580669882632722815474847534869826865937924988604900669252893886241945207001046671995268315563980874347642594591173384673199693051807003000699614558583764243943572333995953968633224238708929704619544725974234391058173650221936936736350545741287323256498065692427136090300640410669140822540427765608414129439291223276003621736868486636972350259041088141261674769252057895045067056586481832343765989494118531025468366639058930739968593513457435284803954890166273184890963541382319416492274402284676342701118476325814787060152475107295060999852137739744501926278560419586807939858411898555082213577703049319897888950807061681167867747550039440183768082218020820485693954439773040318320844414459601710203618883405455724783120484002826464197459116037793825687019863855725079842972933041788191584280738637252109793614300203953410945011554902208258839704138383626407663144482811722395883963718333542447683066011470977150991054354672908761155705499686901425294640244879079207890611177006115123877279868163409224627491428896034961990354260147504153658890833928801650848811462720024903386778196185724186864759013150487136284862986535913323593836416769309145235293840146173450025683726204739511169735449807880986853648310071763216610300922444952489031204959953788241279453434262986249169132032694428645417651913374725530324674661282500750657010123679301694415719433678819796691337820456628831698150079953842148626394606428464500173790014856651406129603352616114743213143251800057314443819096484570013972885741387463701648856286901818318955096384586203758714146046326429348098048170803247878091674831466811856312579344756399843435779253138954278774688807087292238179769451035741445177054103067725880216772314418876279832905969798563742719633874286960027671675884047431307235995109020213668347430852028438551165968445306871091209041815330595269306042369591050372208926918899405619777660182263635082009535695289017947543391098919170955694689866495824682550134865903677488387567901430591317577759756060928895475226837778491849514702816512862869233679476679682297202914187740792179133663264737041093058480407139693946591031226172712969949326331632702506129212184452098947226488304617232624179160566540692186416496772160544884109574604144902425649114905528481582532807118693468379441702675002985401194107707004522361448722564464006715111757770578741104108188838326844865794872957415903219826997233421856873148988004816634425920812107938263610397784895628401918328079600145323453597930367501951324304204675516415220481171513297167571247371274248723664588552628402749757265905029407139792696236355353206254117386309435957570617069120962956339426442039783821361341878569034193634475969857516565880576103403287956253015107750842523173100869520514718628318475802432295397221564680599124318151477263169279920920052706757430367597878543365715663602674892699477879821642716674376335489812710573148360937093969974382892976360361711210071180670905829718345412112529239498552460428098820008936855305730456009326341907513994782128282502534690170117492156427288734952526160553849485973013850762057197831439291002669293416611229756796457128990519161448972612443100951112814202103849231099411929650165251067556780158349315351377923180531944285238860192317481398980367685487623858389996204364159939201386781426292187316201038018899116299145662224378349565488115517270738257570376040671282040683226744025836833497657188120882293750677420566015967639537023400806777380223491516865898614889177539635610000330434072133605693619055134374102493802416804351533975114973646732964856169436465660268835871406546915395254063993425386061869834755355240268151076769380938787351325144259715578127985733700147612774868693458136823254042012017004533352644819396163390108233973661061828123369977457078528178600376466701264713490734281468641677588692502117615798412071052696540531735509238162539570819176778427000639553798573526082670244698119506831784497977516084301544707740040112670430623870372493340365708866001916111292553533187533708985990159151611180861154772556612991054238755226673320853684988632606885555402151264286583668791195713506587168759273304789213478759243738529049556952309433648729798256480558829890222209962195347778984630312723018635342413950623097179715381796788514686089785587735970043667958753931115826882660298784038562375934466251224559716499711237813625574060925166575985021732761964846154483870460684838602517418371875834916668577130399946002813777465400901867722013886804427892238693754803729665942775276777894581980049570699034907473329615167780919979758100805760993252306080966788780923766162331035105413562809712348663402870130182441425498346581234751867752734812532554459974894807650656141598477274759033442807408748385782374851864653863431713582363678844910769687397298189113493572522030996787623721775591435027119660768077084313164686378330055017193315067633756269796491349118475768272939348099186456476350379996863881607742583621373750681929747809786822381854349354562128888728076571075471660272157446949943542299147967651517112657958354123964210870726635796453627439123377043207593663935247984686223119503205027608192676295800551003859682989733339463655225084685405710090962323221290576584780401359567756894887834675293692188298578368265740908996558390342097963755323138745141888621670796662254634440433316547445319747075507048908251319000639113247270665385646216558213603581564174314807542233255227152912948571866376952274468569570620245150908637021660555975486485005591856486791860370480118073170436884220079432680963872950585283984449932484689841501398825088680050342915464716890967623010606574842330034611126968468075564186925107773502137732257248318765798782576728006746440674774974163000445908095169853002303958158794434063006701127224078754074146104418309375346954453593588069337486478737886609748212149229039548055404064523338131452649588777771356083378876081765983468913025443471817063567866737109540870055039639327613550449868173083221208310359570557807042467909607467092380148842313121255677926821979197555163043239484425118752312853763149639621300072464397895319148345311289136118511151435280577537244082491067178097040966337026166369706824156451659328537422710911871227641335465120291277640377977253653639774933376438331398369611669600955134742126802599812128962479875068788973884031036947825654234571894865342395832721528271485942825946617258196892669434882062632798889591935246410780724504517542784670414102227463240223198009759101741168982793597930987326981476983890788192189751981316955812717161908870683948659570084482516826669790271712467276124891124654563551956438063054228115403600576097736938686195740370286377426303887558747278938835430714063605581073820293970824167008078753215532105485262833474204380982232714177198296192136243673787992336916358723003790440676615233586340759782577971881442779859508902356040536680957455765355314766035226425465322239110814966624447969718728842309540835523223056965502397453444838688354781926475226907751813897453825326544295215474418604271222775310837022250444541546023655240640589131047583438436640482186097545530223483679795317894577974197025293551060004663970368025774842337496552518935894820547486000758377846863209649631694122095794423846856539571995185223500548335455848768565374440535714770655838134581396600304026006600698729850733606856833164968443374756175364410516815826781699633535433754338557086680175655166394175989246299216779901421418213052481941594139167982361446070845981795556835389276864546090524314960830577637511019716067901531322168049805469996704151373115954557605519746000909885284671382545667458953672396484628117771653039630616786860310061808058259433835488540719205621091176784114821087962392602188973359703078193290931715460641322695466440935453932519507087295859715199287568737452749861043258143698288894694275506837148691591067041659423486872186514697613344988493241571503464189461844198559116750528270449467631476554463654998516586989375956539207035008390430551147122454047111170818883549561939608149011405006843007641364431267985552173228083455283535382410351304772626020215867159633685295638401139983861980385268287731284278251976165691327874984394828209196290234340840251951175078353818334606648650144377951712709126842777392456442842874093768738862801110945348936252592081140425736140929663856466009327469712632433676408041398438194294063572538300549992448379867391447787152614896315618810874179329324261796785381776496061863387240818752810836400526024266293138239485031587684265956186859080884807887647751561455892544052757839114026695849045411868585313027659494646445623741212965866032218927653940522936825906741048524028412666259680689249016939834633737735702189567236647765073148721811839849108847562046517901577591459663919127908562008662915862451650693708908348428947962685631903699352314833079318152122507722336489652589969896949171440714430277623786788471646320225692679320315150218633002255109867158535461881818065599381738927155980693299066805453582397042076931477784925549702643527461693879319014138728313845761809715010247686130791340923879745088878917622538273337707251744173630015876912995464451773852768868922815329494851943776564628908686289974368860671721117990262600917644916945163145349836605937734735856211390269247481503833537184011048461978383771875038940179290332018635660345040177383433588122765722368591467192552878763728529196360492193782389767824197803155289995887426280091459666796779608278055055191290761307933457606000126615132571247981811928611854671153826686423122148536162883176040262930944240835376807255715643363534575298683638227257649204391797435625902948002461859370859717705099274963152396369282416374276003404994883793158774510825153054618776676065336345160635003345783401600396700542856000474871164870200414931232507601273383822330327957276070294629381423497086195246766301445704849242023709365324996248936502167890593700445050721569203287256547419337048487530075044623052482254644225027629571415781672476282155344782454370904906414768782988174598737342469030623788970070774069032114514253322249913374725514083028353927671123463829488897981006069127570391354761580393251542438265546568390293602726393023792332004073768262679310176017801070793871654281426906748845239392590884043238504260276353120129176373054541888873318452541147674615733844210061709202231160613039614491786474919537501046094988221887010847949085130841091245859497746333067220620240801430728357370734851199883796455381669639795314196713360713599856834495399572031458073420668523441025303222217114043871502815873536811236819049548791260071678711553805640616849821457872192776909004962543712639532181981535740393804884654596028268029447365441898475600870727445427732159073993042266320270743497987027075535501788866013317554051420810252324814019074549239900071532757082365871597904849477650232995748256371858729532580766685624061913671407523353094714840890918077293235442792338992079980835514232905231553246790734463610107430937021572211090388005362074437051237342667211865453216350540457762067192547477634955834803929347914355823701617125925199426934887911148316793467050417367031105013348997504880812618771960810942723872228883686005809706362494484556967662392590274343149804606333048467053127157060853395024986448753711779017438814125688262796667276541969601736010298651920535990401130420250061752156341985941284915882643406567118190834971792434037264769545162254671486642211333625996013699843552572152306780072462492442729327363352273718998960138073911449034564713027999901749172453285008453630215981506454399050491728968873959428442615974079022891509759090100559612935952905147193895499662818200529637732794122908401956591381052121969106037472763365279412407587561655785520785314758393325200892857613763283047980977525466955920376520612062022418084738523019215317904129827579694709098851200040277280651409919254795681408128634086420731034242319781732112616283436862847993253644500019946288565035593646631159236151304667265197927603847655358628613940724371729396930499580665925148202706281819159842094811584637928264759251769285778939766094529496131870880378497247537431035574831022374163456841587063363039371017529130891892325888457762337766578177147258704139131503119826240470281674188580709726135910133795199762201988732480032072650978924699980861337886699355259624787121309127044056319400123505284918400970934002635863123247819652413016391670316743749675810296300799291628982243546216348977931623172433910110389372477694639868446575123467667738139406576525508564772833032485650839723301202035058316533424265772243697116343108967470727187218173814799632216872990324712265866595000602666212618397749343801590568059753720528974519840238372173950483327792960460034456305779888672842370245199659168494544144768951384040546596690689434766041475250664807764801310193305331257422687196939484972025361551754414386430861989531952798024152517726572986865445031346321263500545855029292738325424823881396555403301539636271539193684715266659604253229083530828162216724822025442304880689746029647470226472271004479266576791016977872767768272154507775076914132265823383907653964977041878369264773124251536708191044462559048138030462895501139502985246387841567690022029730534795102323349934493473195688449548912525470121354649345371306864785662936205862919969158153510330650446749455932643910677335195806091189529082764998564125828280631586962571473393017649546100258931410926741649651631508888780582375923756592330619208943258310231991020683452094904875734482907327314789727925560631675762151385847188813217588238699124568670831220492773574393850758225963307485018005703330641522485922188644341063257371207726763804968449199185166849188444188738894125189079247043240881980443911341953151919466427103437472012980740091708347300973750351052267498693755280672523190964162206854069203807739032682205263103933224724961987108347576631439003769950255724198141726197573844229389631995997202617439665254819734146061127912987173870027574961338293193452848053905605135289608585234982183193131684825823667595540508149673020070418356945197843019053626930722027733914235258844396024069485372659194913079255897451540585906102388550165215806509378123742649120340604114607589228024582304405734166109838482416479328485932130666433831540097214480223655100160286628379824846941258312961760149553406488494139197206436230175228295861585094853058691592295330419480450267882394910828069877216444083640120972974446617908264641675535449665529083692142417449380345941228703526313879399166888970868272795587875320479636206626230094623258183836511370640632870825485323363624695226223398750664463455155251281193668524175980428649944240249638564761008029824443346059672678351962682948984505488209104978276025004298886630230240076795444815863948627427935368115955781224541164605986552951974576854608334939836341628061192564811418758993767959243864214121341131624118151682567403439584795338684687045519893820667475380439043786514583134251499138858533983308577031619421740014678406649299716761656126189079188661940049400756878783029716478765301542524931965933112160452781015554746127889156214982909118101728217528603452414378605538348052662141538281886050722346184170726953313294190940786120987298385447130822398702967485999277623010612401760004102483444069130208728242853285916789901082693635891815952497700909632914651193738989789910428553692727269208747174337113293834656723578962240331568170249091794245333094989579660234703595917379009815490916771635504647629667326602008476054880012639412161379285262150255858350339429384208917803697533627871160858581801757030314140704754700067035135294524263281170854900596656297947866415134523753783097882836933127453986763308680082624228577958511521970366379823278367904425601079143203140264234547066557745084734980805685850336509936332089581695946009966850165467380420357149261859545545024185775738138127484139636468331779781340135385687661304590131828630488220833657918524212256574137054186742137437426602505077956306449407023355735603596403210051833865188668671754101823851897052704844037578218953269986424577985178306993067070815654506304693245706010019322105133066955905758170793296387009352283828801423426278136584073929287945167442458126880057437358288889094828861425599099976778653389721839213551906433572486524401260590419881004388837784649003777447137386711912790281586625344394758887904266612225727837534649125302774269150329348451257031927400375597562216650037863165305920947300122561633734670572229185169164707911883443639857559573153042147085169624534605556266988815249058768881870805305600104742445757673621106871180758405019245945781370517462315070957858972207220883835027327048120254641896997487955332294509124759305420281893335879601528800447452758060582152496963208799282643025103669578023562155500096601561247520623127225708450152172090573806514230072352528797543911665543250471660966520922720519972692848589449154303938140649294083192046247748972328998123075048535623022463460698219639849144710622753976409788838698510756380737701044577540475257512986571513044559957037263590647677035653902649014425580284761122974562454150559612955302651886259801816117032935472651631846711096437966081174010331132538181664366260343642445395132228464915008182087720609894989411374975179782881738256135879390716068908268386115546774600582408998323776497374861770276261765267965394874471116816214801010933787727139182217532899088682410799555582207996974959051813290498371618563378756032195631477017572493018587356830733190979361400806618967049703521711812698769250616979915564326633138452669609136787823090594576219681833766789129587158832467589966684685818725732405710365921938594846693729586263773041998303419932047165705959664987701434188067768434791811995256997838713222618616603108499369518899615249530806159636560602754865329457291063939375703967588655764776102290963005665132049701694132755141450260035321083858050136024834917313466728542002502927729526213113154879324165356071159804144299192818255973701225361665943344705679607068405743097438289415346435373184277453569954965114006002803393483559380311640694915879886309712219230486492978439138976468379973687507855835404992368390602689097238810533126452888443144007339797652064110037373883501724196816255585038472653050978297215163549570143044971591314125616066169372342575970489042624991913318731455490195225514438786683582123703059318307406191187403026240193773278915027049322137469758190547513550496891415766319157940182161503192344672001306267343773955298610742261695194755134367561777413877347682612640361985409846560386985076116209724125760280740914645968898471100551503997433848237369543791612215830480698706141495696922589963786886090058274485503370845691643310372677482629654691001611778928147205240583487373951932752280479062958240909934193488565297467667925587225376786359550992795276217110640304261886077058243355247424945169213206602396534852222273744289304886771049467076301142176301677507834921414395014043148446768071135391084434548409036207526788879554423089321021645115069197194348211239334659263121367729682309921224123374401477826006058292381441335440965578468805064962070121852334661469373684699107848007189667163536622213415313888722724216436783939166731375115808389839079287779489303570026446819320456744977431282591090423199100809315246323966959674772407983677507587490928429983628857683999590252889816997021091104645743773650283349534146430768062599704638436490761929942861948988922184218936844705863300170390450522058341033190811765052167912983861019877380046684973188061734931951372886292309022455852205201012274592447125115559302408714306856779718018444058425648680314294424488630050729300652420158272660092288323269914906352670223062440610909209596819606071450801754403119931826131407548793085230382693435687670283758063878881689397877162967689912182567119658285964402327287340585515576232091604160839814040482164148566354159297369515475240158442769737933015989907287221060598063589493866002077149480758915289053505160079031873567464558779347555347384557080984406798437257234889730425819860482937952961491853210348006757956723084557139255513960272787369918981737419214398692397738114879951760910947098437357530611144471644685226524528619851609077287585246891163523380118686065194137445649041006897060881515230176004117415995296671210664133942669743886004658993810173028195454319661626183008281272369947492869585655158676242390836195132755421597775481682610726754158806410047255326312111968220663830547367962750084711243820626434193256041199624505190046957186675250985031072985389989242618858479473783183568148109775614820534922960808683984715060306710643132790042883647250692271668398387440304730719459868954060651217300949854148029592898820977071304123530500399655501068677478968660759706409102544399529564161469281568800566514392619851091593898378486689997564596451405828395949164353656512642432301825248432989629694553021979831924392558029291008831873377652415964374915039989978531858562965698782129646270521168676735998951659994449230354399523013222540063904787583112849680321945265522664200620478262606177287091608202570405608206158532116492501340725164055425238752175057207406868536547034302153128434468541291823717523427830297247254437570164534618748220554619356594374426576053286145851804133673192269900767303320595366804979295402402831231483300213144733245713178698355632156567460740660674466108230972965183092334175682265682123499676704613868553897397347512663590660063288010730243668377212043096849202768099515935695633556040616152379616693154363956418602268032284406924437509994568875332613138567795542964213173686812939153691485324953757494532901245024559060353108613255864482082236852624957998092361076169877346152392289401747205054469620620557931943187859414151895754181570635336514292420377382777584071434478284061763155117464343898493642151019354520167584847801619971544556592076107633934937718501480350325388368290608792759531060888091063820012830334739632184627019336708854259203381034987561567484317456691918901528733791158969249588329257608929853795080772950831726459817055272254551409617132935814771171985983098357267045614659125080126025749874306414258298242476595265824273580688528079308126554759257257030807216770318024399100238607121467974619800626577354026120854561167842493468751888327115872589669304154539759916811227294006099494257732330903357732426281688370637388523455750532193705631063548086736361622203855404874393010383506385881750075456183034616159257898727721833549688993523824333009528879461911333960010950971387182109508053673915654691209789405956167243795608822429965344278391385264555602398350917208210554524668105542526171773628354133217226774650708884123733037220224989968832248453278839067995877284690849513245395574230959314393754472769996380731679409164725691767715814862038530258381177156020971121366219453390458911563843023720314105901591737694080915736367575718964016848804581404111724288901248272947308598987246919135971421319548449027133889404781244441309812290274824300149825471333762051799848042946351723604812271561590771762671210362818593393499518946158648383466235549474233586266955938208247663297221968493499610825801312992287109657538177426128172724998773809470825751885709339447306057167059052245663666194170981553202423325066444417698534644563578987448028842676107049540628220172951426820018422906806435612258366065535503155225457715068072695432386880355900424618115465110967341775133226698645057160818055371184653948071330141357466311325239053102796145993653284937797401308370309971310325930982653489191730238701964697799149895620295213343330295865147467034374131240574321998423788549422185506079744755867231439302683470325338394614547848309159089638779360807535930911771045827603920432306201057764908686481575111057687128173657798013256781848415886100859562777902950412691557329304796039409640238926102099697235483817656928708986987384625781789905980687491657298286572970807274096650947927001705426279906322002993348838347026951134542291996420142557134335006210920465873520688906518803930502671984283826141156134876195223946168898801678439845952713500477357005063802365838866088255335683052299288484920108241614964561298459085543581597122803255435639659534969457297828235867046679523847090442480436202533070755390189118580611594687341795910570958010157162075388984986456697008572630860293779005468911032176833724405300855435761570083798288186222879629863828381603814777314405939712947584394345737733786024760604114530655702567671778003139300682483352434562849074379744968335847152512876385862638965418232812293553647642030926310440749433524660533962379717216601027647442232835693134895685458056039678487313363636905901130127139654307978596108704560757496486476425213602250434443979730344807274249691797504429708841381361357117872864880726061682772229539225039803375162705350391418720254999220654528255838051253739675342982100117719698809255945598272623028966429733717368024323366070933583320130111812496265585574545454530877302104866135378871667541808004772073530885437559336429422945942218017633544017476348702068150815906700889150369340891476030841871196681826569891942770026604244036513706401275931322149468522974182804948480422785856726762330772984156950898693600506580569265059628889237424017625134156656099423328148310700829171070486681836591132012744173079983679569379475969527939803306089769171219771583652343920550616818412718629729223593255775381589383992840445591220150131417613621380624095364676587639036178879057885303278593591359142526825571457838221602168937676494608832416638997632749101311495164155121366377476381963809811898259875782705754680476990369209563559581320091465243559225800345128967631853823372195312122377130861356430675152544741006946844574082224384987614676878489631534191850217835984033342973731523235710873562514015814874291080821828294307585345318046506088576414780722880747376475947919485249888410524849142690537421299438569314079486071690359279428312106397311657052803581769379473472011478718688613253571563246941420503166884288027971145014479235787521047392989309961133317374846770994583824816030868862469717459388719180341469870078777422081185898149562027046521521427083664120329518328973704744919322939710148738787061462009178111873633799965499011988853854191634242012846655708106790947223120095143754851679842854245404297938471539679876103511741273480241754801881205901441409535698963905096677434822552392201844717380475086243325058944095724025442874800748103859036903088629927475844414149129426256889943681186907609540565557947774672393729256515490061676815256281373703518757868698640690312545541018715223912275864414091271811036441951749084589848434946291917008238173144204098110459608125551010867722946559592495961290696328379299677894678966678541592076510050556112813071107025346083014455595211235325071148795638977190672896998664845123978912954746371066322031623500492863487949486877372032447483011967245972025970342305485122069836309980166667740438760660959299422426435709769840943914574351859476446489749119763835067027877247554189409524542522353063782484162679878390195732358556881134513594377951931864125063676844670077321200930672515075282486081616290571993250477211646081899328377797290042967634529235767422712006538006685619478014256241350551644968161307701552606849261328013265826098601677217386852962122596371944319559286367665066847898548132445755793441114151289917206886195787507839325098568400220520068406878027108239174725058437259199528744248228599326522660216216481989583486049422562759191931387530774314751197958510865774746125356604393800984144427289930409305733626365250478579080497846945543248187256031685242538693338106601412107491280326764288759214185866898361681448096052526683125667489247255500355846234824135247156801108643690944666224888877038647688468245207179219367017409342612879621969642044845140585032227884676974549574765467039132764348780634321248106102986078965827987714235211695575982672780066282127848553701720295549004891401267460536175930937482744041663044635842927650084708718074649438654848642440789274404625653420573762623057011692245169437763089749456721092168204685151043027193001497828635107435164837701330085467503159801560895788386157110983601050938717589317817235538504358041941320359157633071533910783158034869654353295640431905125807400954652230513691267480105584842658997039149193746138040445103850793403231710959845916640285935002220740749896989525994061935335318726199390706690633910355468441976833918690961140941190973149410589487563671201458907950787727377765068784530628640461492490305348622389074232414991334387126977232392462998738940041469606612076524710281186010527028350194902341910042888467304219207357849135890428193176747856636009521673373415484092456976957335788666550840552789123296543090451559354399842725576338138145440219556889770449819968425603297730027557089244260478148604908015735837357160997512606704670968274025966289516027868953387458620844223161371419743844078316964557257632681139576053169421518365674687392611486173670252764373314167702584701146471687178981636497177767811670518223809553475451093807096489245976627983725377480606929113958485875873677625597282097892352486108480087776428825359553431932455269703607590732838069106820052090259732708321409696369906705072438785689968418952131944332359982657316660980429496804085305130939229266096174885090733146133798244161153427760073535241484702647468920558399710878241923155372144619704511801597021245163888594559956263709056066788158855944339938904416155049880965349376825694550944782343916361226398754808027556713131175946006167390112778656056938941564853865272158795034073560184779814195647157145395373160664467650356796382783147282351363598950253630062643585482361347489812873960643966812842310375250806388882207506743610032736697564605394040740127412846967736116039270088100051209707048130356486646083615743245007951683099354758048155811997758498881419093447237945926574056793608392124736506389267880055047948554828142381332754261799292109752156969877518430228251000405011925227993632405112360666795008333826493090877901500663854183184441265753181154412223045259788708609364432063104138219429972959649989670575543154611669774764750975392700248686865580486682945554819414001051327360118697820511795274353707789105509742925459170263935569116757664356391402332876962310796829475301004069374225872021135320143379812297694587555444306207187750928765365837650397335658257070362246454719390632920374273027403829385904451448379217870279114342000636350230287794085123145720578439067952757544089694831221658629382851570458677711146888254548020252262816669307892317982529846877569593825746983627893622334187987118046993718133437493194864763539567652184358400023088186998300776420355309816459512411986954569200939291782512693040965516157994751149473130261230371112470637578844458860986661125438500192056079584615972084871294341129480211990375961796267245533576759086140730944435654020193819213640765153549350802371151043159103779034716756581494603410806017004932981330299083905430825375039032014532068476702878503502678416331758601287914050997052917859706075094694971659429275719365897609482295442087020914901407577736566082801122530819431095887764369165342055993565540021597738105597169948546116904991071395377813430988678899921640343626107665895242130583165286209495010405543598706176107306332154695260371623606457739192798422057520625672707559847871906739619079257775206813706428569645243160351228054770624373593902707085184673402412436786143077254000902042728197643141550804644390552660078661616446142969940591926559031088518529892026941276240911210074568091711912473935456051949693874086073100598444222230736939610511382549288425837512627443192239932384839483429207496811078428323887509241380158034091107458532803693942154015684842113231141482020427341682108579870427418811276079243985470268049852810994340106097876251260865980893381279515607492642897076410620222114991756079523058682723344429713181652414692800363784353371188572209170830392962319627467190292546734100324011144843432571276137401628666570712717135423683443450570801737207938680244048983904751463464480240688561765467615523086271455721274724669991077963341502080836411138440494268128013966196636280019487593351957668894558320909561778140473978985085213336265537032746374481314958082603256720960797257323726365152481235805872856200561167849619404857226132584695764076663036318681214757528416916649026233977006436210550053544801465858094598954516419090624954781504904195384871494127559423328440885215610223873327500755019937975559253717123024021721122296836876963350261124197190929450393550276883583655058603024282578711506611543679376612206073397457099687880932438380022087126279922009240233281728746033622176580476928012937289427106224939830523926213294190571430851422154610736541591892449764015381416507785722591814306093561062233210708693087783779015691805264763867428314107331852223134938667842452396906195230119947249770774542246874178589028579584891168629909836451616866874446629467845170688551763504049193677970226497389111986639520258279823233936416666234038050689500640536200417587733989643558458030537200573742752920955034264594554141234708051071766020019064783114868346710966144173879705284880337343611941404794046561195445995842159635241976879991549333742397390679886215985535646132073776866658599407905877211480763278163264014961533198292393870643585855399737485055074719137842265969611005002730223303236267212838473697133150700965986571689792533460440456888717273413361191245276219104574205842672592306336386409070309021307165503780099112105485797222521067988800958378408004858051451600932959899847283020135832296462995421786524430374073897806805710739172513143809067060292568036599887817326159182882439138581819332810663989576016782325772422480164101959151431794686455954350854740522154719854835732113534345040731283106492254872862648270942775173471285602574066617314193725711003105583513725795993106100506226999130399568875664128099588715826299412163508117468232855054551484904357989552335823267509229663636160724042657495770966647494101137510302533005800892705777768966833358647474790529424003867583431366884770843383743273404128920625213140525382701154068358734083381424312307380364581866096922387508287542836369942344197347046168810633616039456587277836401460990577561333048703040416020769509688373490802371561127990635868275505833498536070519997435457273409143604707784600428457358396538070122346798068814635344184130030597742649435866594855900283237262009212548284374003217203962192445161840127726354339677863200281415909189364148906903013533310593101062789227795105949364611871400729832629916461483406695652292656432219713873360440845052522603470060836379014993001732807041294345045135777156826824799779665582372050095748948644910108710898411088737402618487493053866629509656144133446507998462238293996054850999837600217411061337079960060452335330967496837939256204378315798034052334263308458862034429830261930360530449044482788564644849276868544450053046652809881220101140719434503342163925557077971669978327363810803487945746527714297634728414558740739825111730837356762990467936443038649349817376683292020506141667983644250047785566460777700043068586101582465880693501863609839833450984569660134047999619827809223369249870344312661877743241725329061293046720193256423153951955258424023004097865169966121629624419954765537502504021081016981758833658402680246402974340135869408850439055743050817452614264067033781929492338727362529518317389302212866436580144371821835101904737504542404447423791903819634040300712049894342561064532215850251953587509490131757232028446868643317301668116015151189663579246849736469577763457700181122697075426646314421470180325079853616098463754938919260919670654075315990000667239385318746837096439516943098375334074340294204595113075674128559246290184918540571347695085048438231957076140177642938205523793330961203507647066388819276173950552978480609500653975312591123716844480751348555187990212223676334621245633939947175239533282168425244773348818789939898494412688365078732494809095387470464868388799900114069603046089485340176125423777894319222606572407053113695661311160947879640426411425017453464139232070080365635509026237806988315039199449176541991845409462700119088917034446319636130519970592173748563439796953553979032834651970776070426594381109177080361888346318842327475365079302742755097302564349085789113468255422546125334343952363097563923110946468484833216299253178312248565973963579235082021262668580012615230151809764401793978818528948050037693604271789607951029545208904315352995555657230875160286735375610454758795523709381378063000522478662253263212063504304508071641073825731518440302997919632973873623641129445775952723774212948490413844852180109091025137301000066137261446851374102986544107886337785694618552335249550658677828974117602905385870864447642478634474664341690173550127452517638399922202623130993778703340664170973802089264650588940838777747858300618077451048977143816288121247498828589807650198268227725543964154073268670219034550750150134243806879662042586600931738198659868031018570983303349827723470779290871619567781729555452069860170617131730652684893597331503813536298974177056586817795033149768205006288699705969586976003437069498153475008215514291366674453178541301339841601065190772821378457343381425396121236289783043084675557557209776866245580460799791658314571051835649671661814270619348237795762261406870051141764381596257455176976538242832155587698952257845476805388678156219188551639474646476776923889131716728592537117118768836266578439522306097848206497884767247396408932407945195348674564853290815218289515348544247081223514147611659169394110013047801546789168160744026517556642192466698040008999482032646695952775615020839556998557307441056840543993604999394206454120220091687223351341267020549591522751219743087662042833467949423545805943925053587748257232963191596781863831861451395798686406325324010932508297839672340892339493156284013864307017430423419730306269041699775553017799477303521591448265618721697725060377692488755024742405366313025019231045420913009868340575389212730165500222307545173153799818634971950106732541094214547184450510870001810793321832241012199417280551089404968579687320591070150131881551590555131356146729023615270987731033706120540056116779893206783957514095188080536462578021252752444090694165684177769528897118819567485796993979283999026795435386765982590048974824484741809902394537801286240322460647687866288287335115322805719701755753065617298852000090247553434503397841749622486269332466006292173453567564945662933135235901451735445293874501141336364035009027147066158134241475013351954195926569161651391185701479535121725871274368789478137618559768018482442297609712042443166123845765407678856189994930487281129079459489514858012656004750236697383006794876542164557446972677750124596420515422715447207319084491074870896050153630425458777103413412873643074472241679483149769635878190060073086364311386990229585206635819253554468592635253675695517521866013909832668303864496458466404089527331700761042542726554978106560067591969462425196430280660326434387057243415400343996071970977210328797657940998939059775026961376696090358174509206125736063996834521301900887503270037971032744438156042443342336715933860073381250768720619280538653009767900321392966479038792212424563651989248628144449362726055687026993498014729946943731512285720688279935692819307933721897695992866491889704272846422029891782349394905741211561954969992657206660221487735901543854568026452196713837808518537167987664917210446966381437076970349670834027012529084300994578477398335732429515727662436838447879470623382761856362809601510873471406589454076257667831212276280768873430317661386318787800892824244659537004637605066388517049613819065577973728677003205443014720152250130275415729198378566248510099583234622369117673669158369423297559585986256053274157105118708503810602407173628794468905522729555847927296452226494782621687254722487899249680451654283607305838695670724391105337360532191260145732605578101774017910879312193497567150724162802305058244799131762225305961839885897224788179150132394343763014121417792649864943574508937977383272395057386477233106791454536775682833192238910962828449866070068284668591461480752143447042411488414588705211187804710436480834097798978801876593699839444125535283126674770678977752571972300192350662443731783975761662351378585477729468294378672067559727450929955344516390124445135535701400513798186738002798628097911494255081956971074491806287822338504280846651538667006015911504404838638376644140677847539751485786894512941006434172788705934241562312026328271262150510754977478762392225474874361776424170623454182457708434682572693652007730949829479608512180320606219418160354399932610066661888966579257504612856088579508845575287746574240119502590860828680664418522874462875301693561395332188921545621850286045503417212606631009547742079114774273080173188865938537194787470767378566684022011106076999377137814656144463967098378163353623990121038419907046187253555439864229900176002162856360747862730629934816725724155663761718348297218528103964073719949355032703457751274567833052509585978769817371294507195855293713542795646457726096696719545039370804574272669267905864671169895563729656402273130683860043214231548261699968295672229682583715229929658880625962196515451308860724785830220366018832719089699041706693542972058498844583558754806461268628020870351261000491950946606094119531031686527652366575668381683235442427173077859196195428272099133751621973095303887749509465356118902335132092474729787712361367619214253469959151766575791229790934082052371296646694933036731382942005353418686885809601715413831530387654147524844598713608670698901808415113298188397855432895416085731939669972875275318559914783912380125933784069182032724469946294438595094320375241670520352368199543621408647615438675204207793811306094585195304153823502850488231166557846810910164537195238502024418588399821940035469561302626951995712333109906582319342215013884320932532744502771403104253487322921987165319507918733982929032495186057795319722295468541894547959432497317758482347574685251117795836125640815189082995416222130743797367904288220858328432381528465086510956883841250901713015056886661816834740535782513737511745141292243308710848139894059095095535455824908195632765027843548916287311856246694058662067982346365291740220602145390246265783323300069331912067354695932699280331453540623099188663618932495784270205819246018827552691277017653174283834793250721815451077861006861096783354728086080468980606529014370838798920526929809172451744872958132397939726508610607055739206077463804301944874083282568240765646127000930462465041111035057699765814508657325705256224703602425078659887011292919358120419716827447556213970469337353244605296137935161775105589641591420783131642526580211266781764435257054046910848716584773801438400521607311021871693444006457906230194089197735661322674294769271618420471621951342918517369884674186988483015684608094376894044312157151148753245723743415424267593545936815090407518950149411440464711681930704991538142999754472698415977711984108905264020439147244014042461608218996045934937265798238288322787549005342314726744323896259527101053228111902181702846871155260959423671806363365426943432799127263095935266213290459528762517829667290054443788039599304219638725273564316097282874136344110078347927143142981924815481468958053547208738198979529795156635580425168560009191757266301539132692362627791888304829677919288104371887674594273128722548551508042304562968912358475699315775150463377882146175630849572550608178760842431738244646442461603253011325999111032435542735419060815811796589831217267402405473885929186422284225458405924442589283571514314450613509318012687703030938853711481125742495597231708115929917978713331440254222274162638028180081540490156852840963215443100771407987411823716409641083253238971124464766528707501159093489948994339375574700335254150285508895457495875659874307007237613544827771504130932617876451907389790403395324467857676845598495161796561758826234006461731766742705936849461121660796054703194913811818936544443689669876609758987053960576630961686582385865299790163842648013107411643409219139006195671570036872917456455529336008829554166410128300353776478326190263858979113405083728433677351787768064721337541645910828188449626892260872745345912133016312133090528626078437037014228874457317140055717478513035377979545258253397263150900397533474447521287013472507023248263744618206945691267783864698375024717672691626346287587130500653116361500192613809918385908630570587795064164098515106261734715961679459246100071424428797392211229259644962062016962582510861599517513466460578423812060458393796400786779543224916608803085154184008995170930102702873131984081875960432129741302781399081949447519665736691680162912813070496353645394066916585422964121620893321622646175627432677908498073533929083104828782526282570711217883969837555560904926430919416410873470590148174160394688488983748268074039602022055970578877458666339636784422336591250103033539128210421594143456039863536712008667013216175421651168203746781949272743008296714792404757661632400273435463703206683542147541533910577896990463565613724742093297591330416923249900337850215885097866370583799768459649375551535432951389952481301814679881717025168434491418392582424296804846191820805196536429037861404300866278491062077880018178694319085442708657206313350288734455810671234786457645249304277664147267382141635402390940834027713187265672315809458261624887898365025243081702484267308576146679091229806015956689673195989128367302728633799890768656503891786486932066783938146137869548257918306352405265496243733338770086293218352020984938187660539326126623486742080496203109841032068175058775377674287500618755458479752786008776490293245508363490847606623390085302492182150706178656946878314861302378285896387028702247954153318211504443919675144680760809472939681860206805807954472436624626668584634923321778716397471076438292255414853046825572658050649871234329615632889971914440536425597340316047367535940846867697667224622676657355000793053114091723107874486758994943976935909104681576729860065392475066683918736081156168819078008391271664451670958938456557281109316669892282423408863430243995086764801358415222879411889584046159104687899862724191574583117686727072917789198976380834186060744092022501528434252673140842986641116468666770739803009938970125649281969668318544046837980172858864643925444361292838828839264614111526568126880071435851017329347210264518239891301860135158823914682023211910487961401446725319594831522734059222785541589948995563253439953635002109470139532985275916850789882816059240113336964188257033548198217832231789554508626973686533744091049585148907304465091526680813123903065473516749250109948340080968980597325260206274443799403434772434916218002650399563903252984319818753540579543540918873463781334093565174648630510073765392451573027470764909243430921109313427356499200353056082473214609683381260021076591016977078085849237430979939226065479414694659614549387446709167937716513721400909802371440740107684934824326305463615667570720195561359394765734369158459695886357279747551965914753667622210019790302027377949783802506075321823153338369161097877911237050602710410751549296833964122176437917229803539836596083794757286185603435965904220148727260177942738278792770147294522678648566441518696189847429241997092980142393073025976943920444913965514192314599639578842096973431611030328439777830738634140655713885033513015489157558682929722399335266200139212949009464904668679459887784263269500132459416832429758863683240723531588022365736824267870441872143765246008746860163217110826774705048666100197615899780209692876097359450023978368481684114364349603324920803378176753869193995998583895499535716412221435727433548362932018363731420989745867730746229448247258693638729336200591457613094076650748741166537512209523086776940774754384863863103405332627758533913662719915649711342478790190822347314651604109151907294545456922602149348786497091249004406320151082859232039546221611802527486249631250556359464165448530755675618082586602610821527282612006889229609707750226015459981033613987243081473519326668181148650660976492953587019392382431125903977677261389556108001674168187168837402545454459795681609664601880011359186359912789920953071678440106732204011431168701644234963577747321294912402051264750752445433894923524241212734924957498039325365854295946364026333241387638222604239102152322401295110357007508542018667025966745251750828393595220289605739721882578887109420606625760988106515723497535428971375249728507403186090040005925064975073029322739321225972703511413445823146686735444482480840060529825006883223322589976176173095438343822996863044813350506431247648853561919411287916083310414157840418224183444464785927858794933796210174954232994991093868731113871455763710216079611304777163431125722633279134172193710747279590731793255923505645390453410535990173186942959193537079603174887654048752248515284331110688905274374356988767420119968975687115713855937648664427445140492572997029467545558360946333151468143754551612251584619334394700975227492238630908813561848296030840624012134720856569002860838499847687247312763363502077911127923368241585371030227674686675364659512131469053757100801338140897893989320534069956477564446075281802876352397337698866072680063324091739649094955202246930754084886611876424035043262683275205184759412141268900030029064322412747253680692751002355854311748424374272231683677873404088277198187024911263246503771735889287424019606406430714259749085627995583805485218470897899939937943433897461382632192386250422038055304461945210917079181141048584894220576019487040610586825424710819257626224781844324821481151420471269145632385317122660956769579407464978131062020624824354697812732443587008818103683169471936078257224197007361933044849563606414468997191436143352285100620338217041307977463106075079942950720238219167527684710009520844717476508407760485139544964862026382364127374911688147919665913662322888616237910428013561561215772008662550532344063185983106441034935713539371888636305612806159429412866376434076426584815092822602025013004966039379078693490787726041748270652807650092223895918393173142590657703220530507019993583976992045097360343903179062991066714798882783720410215267723619033746155782237968241454612703783766928814232164205290034929792873165131331462298051590051540088374267488330236432304039691955450782889028663709569596242295167539695218173091218809601925365136888679918619662734176320400430540691317239762787096365891013493429255018975901383147572933351592818107088230174652855292319064659418673768467364625897810121963147626168106452716535157703446981293861121293546570969573206639438916795994107152239208150198300181781112522252994238593589001175410297398146109354448952743261777953181774405507301490769860697428609781571025843244182393156991565767232448652421542296695487824797100509667562895618436750067542096824366345431586329082575492283649964803217429094574385190997769328860932866813462776361552812672046958039304627310059828152557083533963072549944256696381389195051232983358559324481445948638857593185303281566425273126741958482167986728965611057215254075377220710157902671078314835193837569314110426659042441869030413011380478774381194144086538266664805399673394421101933720138657785144611203443532555237138474707221018768178389333297578787648876112306834761735685537368540526362539642684990068979732996937588551660509451632911645018437415633891370046164137657542446704444784601972316943432982650223640965265504704154696523536843117470095800040172702595176579977466511892028790609300032008378352913495777727430677256003884270052493705137157127099490714207905703466621984178820350601041992587731377909184424908107439804775809397438254393941314627624209218257509019354063642584101919252684847448570340738620752462276697391811206838300420290310101383941211765338385942959963332681548557057329590074613789721462621695873515749525906433877549095277466248356309574654073362642271971925121033785195636898118029185180737656794842685404354524410740881276071590113236721715467524880330158328094379013619009003619216999328290100561588160270425459884712697081058730719461325097468023139412497867091847585771119500284718817740704442398988515767136020289492533934004254977695605728788826032222195756346760259291012783573083041588170920921572376385707825167894754340959487831436097543488558882768101158813776331057876972957621943569026307418782668570167425413320666815021950052563229373154674092710932187135352604433762975429523627118510817129445356608601243640946022365568303648864995281972036854146816679580333183514662535155967059652498575439418390160194151842400603528087858461524418618945387647502007732146104767299810759382669001567545069051556582999964656828978339944515667417830153977047778219896222529418945811226236016993588197901091111459600320355390588363703516991866705130548690761829681129987040974072621872557172936391491036212108377408061577440137833840887521648094228849398351544375680285995674723022074626581126558647347049125491652859518292825992386922837728782192392696172426374803616697747501143177623020118966501633040173997689964008765274776261203026754908833290131015628330278396823342814840732876658781287373425350558433795758683169376345747527599688598842682555718787880982929711198513696538934480202553311719110973370990082522520615024757190404900492336917568302347545564351051243989484213327595927149314971655040566135759666708175283872917950970037561317640154262295498397983358715615679788383397589295438879444729224653231149707153873201536233192506254175074858305604334440831358651449861651760440410586796207622445862227675524218098330431790397741604734614086414256055307708235559048400899535362518232430994875172146231751742436417054002604695155293412636050420074837590755248630987276252264502590290773921437522709694583009380353588724680638910448301471189393831527220876418007826861410763035178164939104969618717054215567044225595988592034641150301929469364000174595301287176353156235891263399681443593999848096355946291940698078905749935634653327340438336530764207090602927030273855734061769560923626959805851234227311022908152605225512219847291259863086849845746231092415654145270675241989887829323008888048115166127151952899688622472196717492177629783080341784287439388449314209410548398497285101317685844398287025983589084627146896162871884128304567314051682205709826644371146941031419365391598798763598000113989253187584599139679745890319431058441384089018080532807289530824295299930869697038999288073416617141806970436355645892418506910632400836627595008663457135372397204112142754094614793783619432969716683736777064851734437797114760059380000352811970494658597483199485491868381694576653629099165751448081332753440146770268649608336388637639967155644092473778079643654108620233505913164428978398376664812851738922832518035188180301142298209723974798192437863679435046297761828293605292152300915200420688546040231689313421243507938894158169590331402975682710511506822634642834214273405346342219148999672806846160605319665306305794208845496738575059846321767831715074342078171718226273602529052018709968147770029040377409475611615038406283883483019185243280342621855168027750321037217863332509138294084626203659621857595730383914060307468949468789591210416919280074383811060831499057764778261684093581630530919227463556384984745615296940763492883075404326988115205375235078901141560327820027588489429822381185038797381755653517910772711918750749312027135326310476510754175401912006482164249259939917968902376659026738772650447662245302931135886357306417617862403534691094803879712052206216664856565790090822666915809194587435200435305974571625791319470269580186426138924945227383488856849064928570016227736993524870446270575080665752202133064316797825001477670695159716655205196688914483922430990217460366763558018562125565468042948651865148945504148150868499233262375267027176666983900091698766958902770695986195009325010231927727119892583561374730597242461580405042898282325411718844735931955026492062842324897636433323399200111227791845349355901301202736601966639673630328219111354805394862280610593594785244593370780752818886014517230423460354227981538429566329286888999922017160044972738224463742435184502885681898872683676802611931838561714824681452711568829242602579126124748965087550099080380412149234231631658252201338425995759170176534259728249131794662976699026552331671697114299186529514044094931423161183189738463757507323538462530257064683747435048244150633453031299551724610785982363681559667520130430066143536630502613533310699067177401808987457428884610447613002285035190542280688934940516627723884795425514354608226369993075309143919877410788104871563045655968833078025704797535483426962918094407406354917484618446132058506893010777904948637273958965465554662852112154470360552599758270334228224436112190976740124439894542725069530316442537002769263777722173475076110752381865064961608719681878869250627221007857730350819615204166153570958334816352873229164505920802180734200721083987343838955669813868139840320405773823591020032439947282512040141786030731835278312229899281117584708630018042912608931439972586544358639040312748243873789246586434796359775058200624931194072301390533182692639124934095871807157957702725611322113697600869895495207171284628385434761949485744233031645546616550649162929931199938347654276032790332628926799382294518334346227478842118624581723819637161344724447404739900014159184917054552506276246579185162362284668659707770946354780622978951424230395388554778579237849342292386255342298352562099608285730846217191197396109025161565785700802049335065284000969481128557952514770313037425132121082519704081177943479829242044927809927639126986325019928938871702191318093436300237258606690766610797782645648577271531285816848228919998233659613206242098671425754444659884226838114928763848220736520648382336478722024075094060460702727055971875957459234791967230926715816869447045858329371911853954972629661094465027455254551481525359218478657927644732044035498181442480580652782909630995582521711607523769767705503837376401836631694033433620102357556928978860599019256890538346004911998828184973071399778087179619639921234992353921850274145416060966295330536507010930901672889988198252027645308207316403153751262944942718123255058038126729286908424183218850409825172647454025979373641109613249227795118021571425886003560964481606498702995553481586322479169546624700663609716368286771340396537496836074126809618082472148710834539674520607833575312001700524816976815304319488155518894031073469971528209455228545680584347208495508205916294237337165141281682606401556418900500007104746839579445752798339063504840045815913870704453537245644817111917458160784131213178147541318014023865479164502338917426977047465610987753559685464995575588883148191623653541150192298529930327494034540754235566755385859891822543898830709311165667203437491528408310554050165940853710239744648233899444281524119751776102338705653827077027139998651011667136827823622139262708972266334317667043659927422842233146064864176680862936399436822542198584211445043163466405987179233038489858882555728551975224732016171427539071324474696422734114199924723623683812522263793015019298250966727253953250949077980109547858617488472872367525548897620769976727807066719589284818287150647396176082004903854866898048243524937842627305579664252123574136612742472218133410570883546839957837761406631265189016980478173318847856103738881785916698681191485430868291407736039910056101220593266636025516845900472319138355314803303791828413412469699879322821583357413839390601499410119460973977465743605337182764753161059618613954199573370465612882047938250052811607140412062522656137467611375970609354019835309708230492615550061045725295960519124691795172458957845695646858116999671931683224265029355968295718113347039247132617271011845458706223852929550300573814422491765659575964917421684100191887172051223458116542441639641199340270611560363340010516735303743224580869454378833251778593574429727401606138920567702428904515897607639698314713040331594828776595744269676818852553500310339576828157606637687400425486324004294601647890204358918874236122950253338493216133367722885411013753417893691483443049992239813149960545954149778831951687290234717177879107819429668762770935260816692462719229219439267717713408756683865176945187623246950988848135166827968840674131873065523212014835248717012141866198020905819588020582174473809795840543755725838361650505724961660388912348741952459800655275821959818915779966921998048687568157865335686287988316545347550292659595798380387274187638190742059228186138662345176683972618195933002997526745203010685843487208996561697890912875927968084714669547903611807323068919132148343544839252459312756899252173203667404586366485328498838829457639421286499410063836681266490607500448507211400100453624342284718554970490845101132142849710257077006273890986188960789644307045291815959801125267599091964786679319925755268541698262709648096999964826785464516579240435524339535563202551943684007354076485614446261012583993624396814251157122220766700533175822457127168619391520033477640390869029862598034025405177170192884352519278574992861628398733414610834507979306030228877706789636023769938631722419279595953217816946295612244243165992208030067098020882799710951151969146008541101278718107761411382652657336165261881002811207928138864604968423129936420458405305942821780713192848858653546885657264244948972037692938028467062166378365014251530126208539249566157065686151022841074112568469732788481204253827165774723435363553262648359946386922334176036675262373841148504164762617542773471409803966814508269993458711449664550816050624414632477128527897287804443997460010098654605923486126858784874933016859351369285709124814300501611313186324532614807062665866573787906840716621976766812993680611905388933488667663251197575275469271260842440313294243479551926193483197440919813554167924681346930420452616367350861947813805731227476037465312954505220017673564725562573215382696898486672590788891167576787170971693111263848923770946807056944822953021065252784354329904909475676080954156360048337914611841912580290391390367269826715977609646978267768686937726533657416896590472971064936130083230964217655174653515085276870005119511076866139965069696369870085759352056778865120190882136191935379996587767066123872007071022253271997072278481730401389765916330464139015512113255794951812335700679896391495410671038579843494247995890173547346982477060943848482247751814372889730908352701348122358123643323104071095005516123451042535965924069272953530153065302552571401611598409082376015778371487093291779992398458682441947129423266904444945257813528454520789765366464630940418034484077632295382457256223977594160894415077964381127318930929037957011463977347277441122776203179433370197947695519123968389392081077012220958686802094308405615322328405539553222302867309167660622608327329520669954186196859544778613594065076871144649739692135130612376331382410234017489207964871096754466718722156332354290729231633559000799729383896039593490296123909408876292874020949325312855905745878145497658384567086485491618582755976389557423690926828806486089160129177743562299975338726980575467294575232199341339940055530250588416863022452887613929541689019798552452127420788114455239158181728788830063778464021725892523621431232972055893341881230544159808890188699264388553360850744651999560380325844614692628939259942526939188539716690403067913388880769126721731513039683831576150610680554236401662378188274718620695285619535900265450254284581887020393105182031230852847412357867187423647933556096851931495408790392022712395791948055605134535825076579947741535946929162579639456241129717118586091162434357089354676422040872813846608996805237454169773064299194476644570509960958273036701674700535101206654744856597231012236183382565175148141175575076160651710523265563839149231172814440636182415350665060881825643705206018347101096830465642186984448799938480585801464142008748902080807207527894479103014120508036939969998025368897517852802108679971812048737257890662975086384131334494890238960764069575796103149023803559053704245030303061142578888835174824190346886726613564283155342599010850538118177820399192020090316188071330252920654982366010414179809104536285168433433794471568177878941126026203249704999751452991156459852563097609741977770987280680039522590999943579876527274166270686618047204908813508831524191188928388446820671125549329748353365570433355754662195683688936289510873206665510749171705205544648284638507505436788586700906458951746095917488925957556298047851628609062684135148620399164008072264473206322654868564408805484058328732338447971975484581078673465309549990245225586439276821766417253934181018279263776185153393655000661100107213021551874926879594793035353282806508473348090363714100328084635508581006036844027080222884541170043966498836765899144783891942634884174735824683688423147897639517372367436673957368533357303208212820263961421885263986728600264352281520680587254275457141644816398938817171888442518974079680609352380829886455140240490983765853563069654565761477660628599893188881475966980349425160294672038822308933072941831588127614526650061295530902152650422426809641365861250573519466113290830773151523384192694498896132827959985198274176961375184145177198032757752860353721485817855506917009660558932649543748545396251880817143183823089743594113608971020131094721756311451970187112983866176080697728405358482455846766934960021919385776435787838753114434426334893404578117155850620765817051265314742648586873408269505303689661635791762960740069821765035345256602425942201937216103852341973583518684361916824716678752816490071424229865529699533219553812982720774005489924562701940704386501313837181615119247456873466877358171456699332158639618952113686952447099257182519978000464855835812657218807464889281779881911658913805244066962785627942183961739816248697731032293713783879526118430556273842502583339313529059972286154512362047164875390151692125797672570087605018254117291778743498333357850492788906788575167442001866010936671723359210056877038746146168016334021135785739113271226823304911910356888681228711114093837826081466255848739994763017136037393538967131784806299227116980080889328735879469153833082728158372279693653552369391044792953113345967380621598007240166740134915834514204915169935772361173107853098661979834702389211278363143933438413365747392946427364817157489347995894976464664619511726505835134149078852977500626266474994813059744861830095431077607908986534131228724547644737645691598289060284588979091185944108002847596812607751577173254381220488816217104231804214745784714771540022636001619564855200343096185329105840757590618820283148660424807517156393082702093529331821958509407549018249292475424342041271164145383677200676463979564604647494639887687694207242431215068227436133821555455644422467476096395177027441969903664955747308087414191424723993824914478135385229660536471400186867469066499178401504698977357887353210456882406136356119636656694610905163417922778585987008682321909022558087838346956358816153552210520137586945452909954749738533641488057331117536241474944690294740779571944812281420525059728001191263038123844961955122975915367142747745209067522827836265162175151841323995041399611221155275105907475478065656210791649546468448107437984281445169274684592800196786184312919607305577809171675527353477925282726133624430725240673723251031496496814105768440067573538291743205727974910928724701428697085569905731701097579978409999219973168796586368822385300858525006110644578388049474919084199044906244335160706858709938205333969889916964783148494468528408756276626417455137291272948174772021018545961771474322876273462113550500138156683021441646580597702876169998142334562099069492098929329366801408541279000555665938290723621875560704476553674606589246146825129302671536627816244001433539338611712767941078118595015369650281615640624445938923001076765907994129956313250803013474613750488569023081832038285201724828162966848555241922993296306312547953057917839073914487902991319116210215129024312496565511439542843979216954811864567017884430021564675948422857404750632849715834670715648031144183239851955603828492035120747874464120133413490999734050789675283473752169437690487440872109401405136399708056807543050307259197033294564944653911128456675203337530133560307268350172279671035792861764813944990637827750456566447264091541187526118016122849047703939440517726268390184648818851962421566881231658388021095298931446235874826976306830477451618721016876300130256794788201024224233350712425772871499637504756550547385472957443881569118236972502096501156103763030900698142643826487378701976406279816271291550683553689620558690937815496399688702537715844149487043198367588024883302159774316442784613668572272154189597859750512718059684631566847961886001125514170602399553898884046246931783466401443771262464821454890429482213900602394001192229693059302585839906482518738776664900409342630958097600817981709485188210297377177940439830036463270853432734525181867480068963413657453783907329813775156829595669727602436568165652472399293949634470231205971484406779950545099432853428976209968305265221153198020219646013336283178328888488671827566069882523943866293725096729088103613284858999192388413492263911190516483365439827647898153231156385229595745484871701408523637861293920544966293533301131846787315855613086365923162828340033751408181614711376857256789538304385579112003140592861036739967752453578778549067108486252786334887013301616122666282619821210622371462369665620898761772439020766340699765880714074080886346425662009156249252160260220351259851650748737601898754623888902931089205695443383243134657489790143198280679889397835949800691238288906052880895684862978975773675957120568129264162895642282446688167432998529001995130512021933251112242143342161864523816752079967489778065167468860382728213581386101665174830988661834057287840684310744571527764125426938158009481282857180113749629952894045939734548159425746891745703669911216236334932264035818556650478236182373415897843677467803095163907626907783071271974654659494503073298325847424092644578543996825642181494298907430684709048104470014447276243122963508750131741955208019166591912492117297144100047734432701518512985900511084805856813703213366940287427100560906172186038827508378025980090465669178907234157098115343120708534996224880542325142619817104837897267793810307448400123236630878963753186649088447508669684034322274458862091113613126837004152418989756447150291460190343106829524773414362370941673052955419894666189396559294058101572396831911188158701763843794754277558678323905687395588393346165519304242993421856611570458775838073653256876028902459979219567899217340764325620167375747009358106688057518981672808525119673131966633967172195764614476390966638899535408908868213594895973804778604983276855331338723062018411404700464020538060817151650280978287757142644817870956779334076947881070143995212517094839949274640659584267689195890762596899753618480394673342161292780878881495403280113347794565983519675396090966021713579380954561962495678196677435342904051955248568030225460691927045839371489670724833868153849728701670878715495732454894905048486581026142814227887445497224265185910681247157413666684594490157053188918202518086981735974491511077340557542103427452474500307354995294206990481670689671811627268408421041224843630910869892043929675926622097965854305503728098010837574798749212603117714192730512713657663028912154120230005519393839101437828961347206636780682743758930344155871209836434687549542866371309477065092491720982052068482948398137040158835591194061146795609875374740202798905848516303826546937503656202152886292145183185999727307542504377497642671805859963422737666477482927347361171912805246940937557031279097864145131151631207863536143211587552893965051597870997657863248065831257102092144072216253719487435826615198488456593194359131255732267211228173791129176498229651104481053506886341557884721687497720236523551357444333396892393830405677744542017132878566514518260019501311358795213229822156219054105947399639763578953433334727708818505621731113610889815477536108086087834874571793543048205084506835753858252633329736580017279252739792973563227561791478820489255987016251959239285710631427569563355723369221296511228699107482720350730815097540790388984073319026204294594989225148332859054183973003334279881540449734338934872146758529442038133208028857079918341285905942345689471646041698285238178730890382865497806452742560367631366186120354345592018140434065643895037783022235687005477866436196708386152537958719525827144506334339232325141711822511936458991614781416430188144867869323244290407868634517221796713910371476802426919265885551180554595987164535789231405889166570876564013454150115257832721067175531431643954602826970304795133604257066896096327290858426921973430727538596555719045120483933077595056552083007641259710392792873829176995635200180661548924450942778031538202699483274390283668481580880562732543831029320748416707864121475962974143336796501650408503401880725713460486461636282291977906311252624861788203656983353242136975021907001051543084055976153665565133530781109169611589616832736028097711356048761132496385945924885768128989165988356852512021447335069408833362684928706171474650609757259774615947142588863313853022710214099973905104436699092117157484953051310832812830506489222222343755853907409829046889294038714903834632145061919198944240950594297763411123476333900106662670839429565657207090932601061933132735082873736667470339483613407282183565669236113744137398407921617599025431030524993401184930801586035517196480257696421640861092260236504919896384030106982989965711576083056366751131400176578267412328924833666436931959161125165048598916666741604953078317539001725679239996953756463893056462736781457995892607487401367905125585737995914012836154394455243374602188348802270214761368371868242110651328374773175395975509281731920393184817720960111813325834114807436145484194510579744768877247840587304085355946067715261973578704296367367314238521487478370303008118944894721984317432961564561482584246226583848270499632182617030527099780077672728451768768289251890071244149096570103962902996801404841053359593477983190959299544817423658798662089329907932960124418916545422502783756910485800156007120471901447954838283318288327373048042115256539014169093631055587181972387819713305102708008836055597931776856368206169516328671718863562568994531886558546209271390649369777152853001733851049071475985513080622835536406119939306900031999345015359734648061713366083442499817853717790939956206635247934140096479394094042338593176769184163270274661987680010202896292525091139977963197286328276858003207233190281427578984573727293748277272702320578513893031283692455250620391700475664938994632995475713789848230286555366199973482747781996175410540415139498085018856740016061181076380541225211472548879303225673908890076381369738788384587560925244388308334492038966339272039383155233172171249081470574149558036882919293939665788680191691837584365472005354876084115670272209362472539244710267527115905150176024686453094475255347280246474891449141328444079351013709368474805921026473496717782670848989212545839886962703534501193349520626217914956883650501119099453618486724047486262483471593779003959272219973057587871510350638442911686449643230725174957218213640471773033992445384327998060251043223853347896992403511918040951938075556428965676011649877108042504867789675963690256381862930624695581333290122394341874392398803247562248039260844828189453219448842367558082392535425007046385080595887697963103153814677695065416644378740702689856076913740060363834576043818574724594388133486811634527988750523249447218678396781005194561092035136328289514436533411646991578953801740482473317761617829828188331323056508223068352097120647909549211764696256975467366364348118400127407271079120358341833339262837133709467371474554196103314709198957481509657026647649612571819366221050789505316505470142677082475069863564530601228480780624784851921872255222933156760028531502877520721745570922127400796076484797752871975075663313262845595074210929771406209836618258412890816244728475803023673744631791887123716852906655171306062778036864990787144948743566345516444190777183577664605612368608361607076481167623784017197951393472829798160697689097626616732567296295809552275750753772720055526250590234036250218850656160193799461463782864491806130506997103226907591553358712391351573842973243352700781981871467206484621361343866811639720238819595730019308933097650455184170449034926576874445312623198981296118801210722424057595997036739932148757921221852861013577597644071631957940230191829807343755710590308344330564705549813676967186596116432606979586064008070883553926414078688260099255387484765334246590086603598529258827395182511832491089740598191868328256454966195644289415372347407730649343004525779791026459948414871156097274614182296548008948849543444957412115716575368089629347944294464994282360488131483512556440136866062589949753958650987317382747677148264532335441366702344259976576139114206232119681865037183724876390916192323521629436486622717188636021271027902976052153046012964484658402512002456447673833725420932175845940256611061184985265799551765408453703312756865320508700331984338526249172023520133667173528242685796717263644697717048210690281989561331829071748728548917262224681941292393711123370384531513860628630280306079544456677633017046570124388338533220435524113213299742866151130523256568851654466292453751422458145204869763399838119611955452946157003029263585508244393817328186681075199326639312740961388708547810204170491240891323489640167926861110511414265920842959376515455250888668593627702101241897031672636427868562709571328543732668466265232774141584678913417249735607041075536575936647484845632544028373723325587672764354485603857956275898780222736232156658485257797749204989731418565800650991845840963545755139656623264898083055675469027061244692477502584843846077006284520459874725313875988799704092014961558844424787366408110906593249761124897632778317247008382080291035286028121501562991988752127311867413143239321759196439117821947795162694027885840157480493082540220975355471694099620412468946777310834101261254783253932957290067786189990857551910519318163692096864652585277377047470607395667210283886232743698778736413054003829349200698986153849967659299380341648497125478691621264960697495762135230845059234872861440878742028450074295231276141905166504736140461767284515491920175290633611275221719417812166481298614055236927224419764170755441876609421675719343349372126837309854180887310902195659318501331598244698433949027339100010614408710039841650815239489289069319930062837007542177768425192561745691589222681300372630759590314552726512742807899047772628208665517598232164227614916406152564445809213285684358987973428715995675687343673813297586365948058908501434312728300424345891249361715853664087347541118573514150236670448553520122174500963563620501781780952730097788821815748829194527955630741191066824314925980675032810064438747545491378236258181015297160006123722314574518031791303064169056118422476095326496368875406895474087590368609530434141626815579238753400242035756181191230514286812974473622585342473425692120182095427536720603349744911460512307732349836199128355256028467681572538909761794066827586015920783363748118513613154247412779524911444014558978103299582813674967684705027269397728558405217785784208186976820845403988807436067527509731287115465164114035785378904522793396710403777382025124647359174620045032493124584157925586730788451200463233379361758929588020440410859467576367525725642896582154937120057156412421227700784197986015195480583857660206285304926338694246041759734140286247076461527826015325197092058798964422800770920900598097820727782408259892052349039623815257234450680586598967465620430632933997663997819124700615006694934922195531836577938175103833693588414405727702977303877866816911599166458394209035517438795465513787266531355781483439708511412942163707836408630076995196698275295023841083754659426795891084144289251378157407071697201146480876701477237094860153911455845526673307226805492734052980582042812199705996141224316720301186981084569368384189276257505642139760426555388395999884758248047132457617027004519400609980771499000878769773230237739735514542528080832447058144456946401963040498275829776969403995511774670168148936643053149206245310444303783696614075899060911556572336963705893787733990537758202470788180418223275782928844235300881010368640614738796114058449717404973006926560585278192624968700073392818719145927210773371434289295477289680781237051006266135220804877225539839843692759344820845347625669906107856088434248241100551308577530035468123871274689834819215205436116687423719901444880673029806950091402011453995714097121761169855612145987647058473455438349001339284241459243571649668095110089381278061245627277729272847796092657016758684996208375686150372113905832501843758959188983804744311661405237782330778344453795347274843719686069941377501792462421321005036028212832712531346523988507372593906122558870117313198825917386327319530743343834006094272789200771811813353756593113598857696043524133837614811053985931985682947598576321072467879159028293577537578822400481006014195578121425587015398186822174966524544699034269564973530620974397394411416737631391938065436551420115570518110828628087152409113017694969073910560459344780870748174751660648102713216103065865405413061320464772505857931919026080133869042322028980724361700324185188274851349883587756491777624017330940110329843458074536924450133884048246641729296045458231002677999310305258866656833809456492991075977138276044985300930127755575374168349682806193017129989359612685514636186739024033524797083445243865822681742607050591390383760396990124141480129338893163450771513611548376793329606199240109037736841693083025866788208577610817827889103597770262718226201352826930521208119287302686609503771255225908964519151281603355033907398933610875743699453359010376437586948120448772058374283620606670977762161482887460461963577082582899712939737288115683576481734339163047100648145774962589312228515923999623826412024529560012398288525615846403457594255352402457199878956472063271774173943693308440605697933657877869820521696151304939315871241563105965505178225632296044890359117057763336697835243103370484292191603608107314108334392011354984756291925017074603812769171351543491046949089640558958217240439508010967753678216087979649225999944350410628350489281530019870006739818004779045046925458289606906643214559170084924820698596482510934191655836574447021467606346640479294082845899884451152165615448207045551416724324360725234173999648801974308894290042234795597724518364192424268757562171109304092980993440506971569605251068110507521679663144008124088102927492034256949484000414202138481664726024505019456844459897832904681576201294643615443104154917596398035066507888311125743751620732266052559489035984523762591864407956422878735249453414494643537358695967636078935683860398266664372739229127049883647725561770425121713544506783305362299314184984582851373992546555878338676966714473306074449299046870106232439917637676255183760108152464752637964309396482631925643961247543557764485408495577377825636377500881974278490308150981042169920479535327006733998980049610144943762730221524177845628148391188737325480634193362667465668486189909160500321703533026528228693188248559673250308891219201940219307210610121048078978713415114167743770657881293720857177157886910403875103068394779913594131504553367867447499023909616532289720778428374587553590850596486401853995032150653435459596720311279661436539222665822349763741482295263470581779732305861137808419120157499547509485409360623493849002301783852936515326365308205950870357346868466309504421988299572476818978115656967856713445300608779295748582918829276579729145502609708712040680805333481794470135567606024103272255594421530261976321708400470985827294274179260302094125675189115209311082260922609796817091308571036060521522045093600730269805206110188093726539490060331228353647028408955796878109692843969259378325830723290016529946449031195984122555836238949544829213677557809421719082350595169379652181769328858729501245922590285674821728295262173039678616741620080742178325785860458285275036774224144766553580639353805913798416299961195877198668854702047174526758701857526233664502280291447178029411420059529598387465782588481586828924258240453952628461124102678409189458363883911626064713544586717018366580400715444184938509415488530174128641250756238722611569986023588374937720985109292215721984664537996327550775110014786971983663356150191270473552526896213059149958079195898597822679410137227854007961895855715788167788014454912169696503895291127284007099496711594480457387108605590112746024364280332454648069882388813823037329649235454107787058385081273482374937261239104913152793445118222603108034636460541657033079558389831439973378740742966071919408695158800116274271985743391871578757498459205648878491248349830340042805360968752849455227217166180258505974605104184113867000002994369278817798445389385449131726880411733344413199801122621217042860305612512994284454380097119551626711537945563959509735895724558191320376025661179968713680502085479040032655414291772041740968335826181061161601315308005742871002425471202404064639437589756913170443212234821414700254368643603025433646307855259498528208930396756064107133079143770580215076784486139865715102728285162969417953428727243446247581451051046009263825381194493822796738300788119304886476273743377070105922684462077189603564083111022757144418553673588600783118939532997515359636888601131135109193867416005984712205617844049016765441117887875984386222230255582956912461209377327916943363016560585329826859583596948815049502380136343742500613362389165655363043411402006797292262058648087006733640289319695732695201121759825313052205361024065136670313372916817411948978398029010370726789122920585306155862287400371147445491568476185478085151701225376322403922324426334323909286293936848026405062888411500462201023335498618763586882256241310616755845250885690103958883170985299678871895436760942801426228670940277262665317179197391731685857427541675225242677792977914010166638786645235922941007499469912507056866590268683095004029605031335389155114382854869060839695690564368634740973812597694271558391352848256918452802650375635935234722694436134460983553227170390076742949762840172993484830124881051712638150904292607030045632956655314493949780579412454973359624153712296305507206722391008965716399153418698035804251303580596172319558077711484515079816737676236747175911187846496619187415423262982922678499222945559752192218668764082881004106194694786556641730639551365700685969882156196241076134313185527440093128096619560959529086801418300582906243463223311916212762390783041947941267498560153081243274270726368201396875871059141028902503389034843310815364905910080193930978560179110188654018048258707769260490478762746668977471640666257983302637232832435940503490605527667326338258114659744063703411511110216584716338012115983173646299899417513511848225255712522529506393231070186120992767305983038475030911647706996925078985731475959347494886979879309601424696477149345813319528877263766072462520524314445353348907363101237042744185312280791468840087401848219981856268934026420435340714920671426758835948177746195195986104217132651844404003471188108844018703408984863910939037738937337639296615321037185558348416741755333171008462481242546923174038843233032163317652750528404054250758005395970390252043011529596998143250943754061170799058396911675924865974315864070344410857097730145392051270415125491794154209333880512459123478580093971215714707708837880699703606998899706863464071112807340431622934371703787885328532107105221936262887500151657470474104968293718055498041015544240966340706824156296404017669215413768863573705462993880590566273343478842694244194036617302649962951474883458140308181081876619679743993010212156295656222955843062630954619396723730582548366551115260777929137880101016490030143673892392132952456329719777884729831997732474374285513127519786225457146287205847889522225889376815146910546922025739787658063548806272431984927871548298430692094679097667613796378865900894167979119329715249098788677990631192188451385983625954537062003631031697127080168287795097096398498171847593211179285268647702490030658182269301455399242768592746296835193010547993851247679394060236997736279059914653863719028929740943638488039445960225353331580848834168905081413275814373830483629783117739941077829609746700815630572081754906801164460677266680563830549040477852739122443610181408945452949486268501337810004593138150682126433740778804060351904083054749684083820910124149221741478783174503410521070878635941247540865105328749691258777239526442874130784614595799964541159359751319118128949798947867592814132334707289168737987613858134645824729415958143598695610495787368632337431023920731013597367896842494401736094460602893110120266434127565143493383916609885763867585948370202075743447146298728112738524434571721747256652699793777496086791668748380194064678624489624749382996537780066898693024638012382073770767032476704613281587093540081321252481109013157731660727271678632876740831603498551536715233509143063095401180876264532477108822563505915105216509496983307036172730328595144243281943532715797936630896847184263768775862166782483078158349208835983194252510772833411581526318529410356246005985891664279126988609804376158493173027327682522816431070744357174900865625596479787271026813089428493806103405584233059394786335534761833383945815599796822347712420199468811864255205574439771528386079592223502043824137520135132909283051816588678518280981322476760589529669074861861873564875441215383387261741512627196254210980092060833245500586395225979335705451344614280299125922056954186463950520193556183985696742124417673332253272418537769311856328052118729511028711133493907024152046328768583335874880041403738340452387736777036593929487517482752542696603964568078529541916984788539298539642228336587933234723024131265069280985904628702082246034007634415456520107433821243355476026728503775701876019540191555000085677444663440433349144099688344712667158482529518651186626074800456279511254810845393133902686462978326133909092965573103658775543831923642626030603073907746870878906617630786079586335750241647437395623226469161887256596281157743299020427752372056235551468225483573841805003321331918361270059917997889655236698264104086824520843769300264906781196501703078352321740504003240665398997748728134096994348326682557418175503855269567695937950638540937261164615435755831069499438563348520629438135138488034430100608095469776362457647020000299393601875154809334846899743458990951957708319318838061587398729267749409683483890279145179266862499198706621374658188561212239847409758975986439293449742975443928640583954935059427720533211465010407545076601553383071742281419791671434235758294586053018873164088271305614278049611767401243851604372409663118963804315599720639089868780312872128687290419854094912251937382395631668786443765905562414273687968433649863558384769302250005113342297049322188183721978356922590968647378134081499197188998125152958933184291678813140597518749926224670942052265833097723250520289157569523076173131852351843033606122113812419641512741755271686516622299070817338253869234889049018129585081377722570275581509552606289281811059568178562893238229134651398714037154275474300246655352061033789105993114606536981929892713055162788274455235432031583968713565262492799794026513713774976212460543599406389385728855887028256677880554796371244690096260108842578220264764569753432912408480092962502006707254021335806595384387550051967776603644878557610440003241646968323369292422498683119047521606751096546136013070320913083769222474969882875363609300832443222541508401899015516259950898900522201477218569537212327521360507006735975199098680382792039607651344887412443510930927179883552631834711929668971013059864298113674318154721111528623935079195327571533608107960498890415338603662805178458895530002761582724294687134177177669424895995518227115876306630138385864842345084479066948187959900418663065482476242892658061065388221028349500919650593249587552551837155523735518558540815241883399191740128499765225067785854804297951110725297805259519622680925349809871578623693934451444695139166833507739540407859336265806921425658973369172298865536224668539293900215002463078492268265818039756609886882067976219331106093240222577516712919537566248472126535718378516059236416523515644732712500626084972585897454274287106398489080350470710044896958743908727534256464977084586542071555766064708105593602814527307651696150734185782605947667442377210258057092078468432904190121937049852140616002063572622514415965027966976857479252468516924504067153897827649855406595946202774670685503871535509109270521562301258414170424740215862868796953535961708189515467761522527296661387019895803502124482951712446658204822369299603218779307534972447059495445929526982634572831716294035553343498882339796897856202564801580246159084546536683120205367077136380691153371849265611781417344101132875412690247078752622529676106328083384119578111523734686723165077483085079573259184847782477164842167640005843204978090797801347675482177217971217536414100818759782056681066575302323191232516269256767007847041768018974668826427977744662423470861771445619146511493595523196592220004475540374471673966687736722959672263628729235487157700879960794645955832026194515796394695404965045201444550801734399055881507253202483409220014179800523333439559864359589511929617697768894761049282963110822686262748180684233230857680173233700333411629715257025853904120118238594571690922667456946971728658045563912042993755051483564943779979743708452898128620321287404491328648170992874776284395194300305526524217577164998907655688676554087159553102630474357268062237637336762642909359094056840303930612359243262423250919328978898016905318482231502371334445679744885159302633975425247284235380739225892372384531959805234412680978527690065162965557053852750974156102124400960684117350840293632259119461256760948524500394720472709228913441038693552977857648465599336981941320886503520420066392840556383058999737418885795110943192671068247843954225354456745246877335170357624254444530391868498567887707648549236700716730259588898198488664314742341097351559758662528932852736489143533899522547800345232876765325090993289820028438872876553744211517613159890357159094454094315678092897307721096250448824588876092665116858549647998352400474902795466024934925912303713315496366068753231191060822300514689339260446482285772248759039546796625098917676560946719374950591524933223455792265678983051581303884991045350421709248442303274064618884210833709639096400144208825744230361531100406404135442844697620682779263558642951127009886781051104851981044155124892373756173905744246748967979260471110585416598967849248276599954606890463126655545871171924074784909722050463537011468285586262802845102013287157305464202549982601123157643223643916001411139400386270346210158063580869643550091823850581356864611146673341068396121678116782162936650387015401304065443350516433522808676355261615774831673019874453579130680903415571265932529885600172157117425284714973572155225934001484818741891394989628591166078014165519572991003385438649784112589795899006160010609609047677729325596677258286731016990867459349826865870891081157542569999007930212827783674635049085349404422871078874644374263894672274989399509901035853208739197142843621058687138862441038729801548775999670165166061250935487732144947625131745871536778466202402920757396220151209147732992094316240590815839756598158148989168961965924993003022087678853892031515695750028718479318359887239854956034866182080928322254475996905712700793173047465019612165457895890165124995306420294379963973067927591621698538166651549884503276681667906752630264567398847735784975913303891027842985327164793908478653262735910100867680283159170665766788082580659078650407892606325503131428478307934856058200829697765709039428757909269788824641472198580558103017703999077738238109125488408706808501114308666137979760744502909516364267623331963361457568176215180014977134454790824210331707312029137678945264022517157966532004462576985770322994957497063473747478257477108021928483570521482616245183585403393596386780661208339661736900870695244706781660105166744027707776058991748295416012873592798102250837498929944745626047822896135672219722740714408523396506742898137068202422023351080394889781924007783739213895990402999764669354128141922949985585905602489791315985318496755249029198788525898349905764944282030198396862397700991655382113653665466701078627665758054661634123247897285130840496134419896417110034074398305352612286557181928184532597871008278342878174072636657111000564574229174098638650550265871711351829607074996310526296929706143300506146246198411878542829402392301620301636512402288623995749856561051670083359563954275879097989360645754496383297507426059515350371277676600117585488927753759109858612996742519884165785646994384879358634335470348887675469112682043182020031147195016044930911023499964648801653572582174934565294200519547934619986459773738531264292794703990609402081152262848562978049180745278236724025363989611844776481217513314485409454711677205771024573350378939843780557309847990989370242780550880938355577025553067042120446343468778172060403088869577612535767724869290909153697353405144885436373592714715498146207870516750775710407587056139945878493694355421771897280853963808702335458106704702969645093821129705930386470176748510519952574376991945131533331361488093324756142312805785524184049904058133708439209673121538124341541308028669512315692240345888423814641424801289897901626719559773042174257537585764758475269586950066115248460441700553007866370530404833198892053426581277761172508983610574689154616618625012799780725235599270385046375550172039229960997310880975884081580219842018775421163662339472433132165069163672969463394246139187170980346674413937130454262900730844855454722033436399621475379909516209127792493255164783900976252185435556328949894440545114151723312922800879028919557466039936844115643332067469975315078730340379658140524774628500448904128890365319336148746531488993155667559518938754724657868480022794923418072681016955598531629059240685607101572310766552172896408389876674692827453051114672557780815494736929020463614415987943053953482210146351225813159452198685539488679621748466712664069383248974463042026524188046563362858934044355033351423548290828258990618355706550308066502865484090670308247905869853617131709030254229859829268143413189882659940618080919264577475865538118689111294918075920377060951561798052577637486046468204810011857511177787888878370381670217913886206455960931410122926796476682769104743726493337522301620559019485462833144278773871851093143382728246343847617981316584642764158706522865544953368065340848492586912989917424661243232271303699042779743566047120498624625706233524867045043387067824804740129926475243224790207525179843217270391185886995588963319211862922042255850746134126048981117488069576747388354732294073055170413625206803164670976508178680018007823143657465388582799830430136152554691896638676483045557588095729068568170789492885065360332498033001105111954803194927597163067182684664847510930939914847607777966522934785339781316155026479831724081296262290874348754035481928196952040567285598960915271563422478736983108723361691568213604246700239231259068655779400466455875114976568609536128798934729241359947969074983437911158844229577207258471709478611631888436531569207924875828702877711407107849220987734141927398087121948160813007838646960035746053467060442441843544246268067535228305724635658574062396825210061280530994249254475079202856846329768624702847328355900776487361228824213308532675842004982166631066262239515525143735582816258427587289698339176058217296066436032068848667213456709412672912639613498324415740709014622361757057380280107443520663987459960678262390541000707791706280168833905698263408495133042082207356046061948959541665276007933879088866280656902479954466484937578018378215800713190841697346292026637060320029545273109035522118363508863508168007318851147723984591364563343791812627819133522287297070740642578643308539530254482763841339753220845822643518838071529379792010620158029419037427151297588367710960972012750825578795075759936265190193218846799043101056529302063233886263019513057709265582980224812525176773307758933900824182487196288984964794359201303450331833472729710793149347949395848611106620764997122066203115228296523016206994785056028211816088251825493974397978128650236124848123136407692056225286356476963951753230979446152526719923050451446601091812200350802711496973955342279398509496842164891027995216887500817448910418007581652383588635079170381062032116709603876348746611417496599719525318633795103593705986545439498039230621815659315312552849020868484260300996264964634893516390784486009835550052756404684982828977489539880017298897924533924413845197404908286217992671710761515482205746075171874358980335456139558394423458170691175849158187010984564451074312023147294629957150395538646985304899639927878192021793013639394076306743325361575069201960312352301561021316142795113565335091181700984434742059276029222358610584374697601000698757593468433993450268775843061294507644921484826558804434992248368721214563627910589726343084179172980079849578550873708689011822734644622044268398271159767978978908432706211107054562232662464131797277136278344225646979130379697314627736479017186012605872482923810886383857296903181090332537606945729152836872471299287315977566320144655248575223456565953222237837881280909742109795315463589897211449959428614926750453465114269319469929358840845885714383976498837087110788822374686328625664883796971307613159314388704524139359302443890174779932628563789575126087761087218251431485595430437526319348178012617427557452875625023404160585323978296919149060027021754079177814951819150490063984253853859446847459855646023901836602231769375225210142899480213700775703051412778271923951931698533149525890692795220163407826411466280587136843812273654749121701315312137620228435434770138966907305466508562161373390502857297328118769516223710586254220836815712291713891370250927853046313595111546672870301299280671776829620475456168118567923206143124111523452991254175263806994856690173723002868662859096747313509361503012819831626586376748323221761360477238010475823264895718295758650315388050740929442589944091888510321197269926699468799325047163419494498748824381702150100954528338634202738755146157693321008365723465640798672286509548209747583152357718651157516607635918626787016442956515971385991682240107141479921434720757169879601384751282726952252908481753123729954240962495206035306188762365148114718698374325649056439724993769736433468224206244422665965516244885630089961695832848655228077311217822464838495210107405310006698414425935145406698627195911793082166045984941527664954792798769691239510801752050277902223834642372319377085690084577066510565060106874177793932337637424612003402343969569689347988440858465101175051395553869232406682852533563703723146137640205369528904565496884205800776540666504990314560531779154815247812978869884308844450677699429996006866809075922745778778501893964200093191611766897459021040484723112693148813424967277833795849923433049752705449478037422058570425068890694838443976681163758605255289687859636231215760679995398562229111461111428793409587037863309159287778235623796842502775964172863787669868245809432361124659423787494930287258086740181060597210828042412143088570915832587985078834206667639604270551292844485101106282163388526218831920758763461478660918653548973889202790987076032371257918905073151771953421958039591528269002803023117680717138462411879919846347259121580290900075412921484064003685765084350514966223847817199475799966921536733126925857126011439327366207039482266280876599210473706021820349022287160444801453205192727217744308967135420620272280339067412523564854273341810909815075022265459267558676006463356961885274761901189055222988150119238003869339389373162283581114947294262346706409610368878597234969543623714369759649518956041325187324986573244660817699976904650509612720559446820879866305881071281527632127723299401060661359929075866580572253777512958224597719619260729098749464724009975048163111931824193156601914126234270791413065231409592430967851547843614213524103683772503803297605514350623411209557012038132300613315423852172738568841942453498236920434738291795331012613505762516496694790994658045913999993322413680634410523184159861069496702565316648390017387183128974872106960000364722888037119754051257986684933032568368256836276635609094596868266095986779210720862075960181107730829236182027652695863228833769546599078314144257262319166424974820129221070850602215790936224836467802626276058058233771089483591697106962790688773610139170342284628670613342019989573050544302811625723661369490743366720123345798478784491349550291390821860645383532979399097262277631026073640642222515931846036942396780530397397369855277268568900377950527096797533141392241670263644803098475345949141102768763062060304325358444976810387602859602762113215740788615824033916393888994763261293880667372319588543067031338494149169331052459650276679452300104331855552689976519801320971773784967229929346639201154321969494025866897244974545800499710969557917324197770641405061972190207573007035097244041402832850201778418270794447115284055445034972074258664872081505578727983837594577357766700046793705003941630337495494943277461976035500914766328828745105525692607750068122282050614396871261000217001099688577916008100659476802643673948779246693338234033035162300506968288476016474724606181871849668532504568695016171758020062408626752221783960269631320687260196801225161068037158847086522459104030242225300586933660574149940721165950338925307747993937094158269620493122172463280976833627702284592935891530327366682929111220552242953944035208897238490618312404399300961641685045876246268427517771462713015830017625785486441695167696747316738361518443518668874279586839541420383514570680705634766414877266223386693304662775626644206927132223247872647060720714037978669429772275237457772011128741874720712555768165546721719645407632571734503377962501771472653203091208549370285355058533000921362244872598900752108928742886444438565859530725732161196894527817455638598331438372636380092432699273430264439233349294993199113552520841324375349010325141441981982460641307890706426810812251270500008527644949918303662758040011132277449590827852787124112806267100371973537058003488815359134472760911140818967983797097195955859329584728396166366236235900077702750946826445547629438797800629788328306346037282613063971177370818987529031614550858866929689098097826302581327516654664776008316914379079488076307506501859355981144117231538275881985187015462648881169914837068386069918006423829234480615299180120602230574299667832238713665063840154153106713772017236372026966397872072043571572173873240522233829938062402019033746193928143620851929878967479510277281449611534316311348338908980838875175767848129035391928623006249844393703799587446433886824910803932625463680796287566487963751196373129142748460060636656680857389169224005382591902067855610615255475744040381300280329233466252721852268596631972570326903994047333899781190966185381018736498004774107484288976269217820358628279989302800278262251035338081508722791906637741776571251177417781883378798698684541796917183100666836204525277564107101959228010008147634816888115500026718761620083805332176952249770673748730666320367916645836375316759930309982816597117030535657689736054922323038666552498818956350943323654640502249551216415435230437559766106702180445395713437952572738427205147312904475363283824091199302262952299788837037445372945249601281464377012429726035032380776728496988422977128613632552505304100958792708585407047378917872773953329937986259850591965867264049922069232584895517184111888320217290958591901111548634718863535881476114888604073615353141937010109753224450235477719176540589506209629031040078362825855271732794844678724145806735264407725221407157173057427171466498722724218081291777214565647699858435765421630187222097289887412228519654636787927532848792672402427839228252459051919155206597672060820567945635892468653295380355697584817653855825382306700653785489537678382153237674900264745701185638447695603891012053833133436423565760304766212530755141891337014935467002493364520207462213389652259681368249159110753528505098009114911743058384278011092435982031599618460496870335484357027762279808491403934667961743688955592044127551281630875756241930917431420467636219399172723897024842118249587107915390239013116937723815454890006415479681138149953538547103119529893800597351081909632489623235988492051781119685233456903400733576235737439229096691906795538253744481531772382198630260866378988258318285578514676530608182252600165769635140903253086007083778613434421133519879797204608158079050712362921399173252055441642847964609672335711072065276965660932564417414695992959853732195097488311241559789951609290606549077982926489478835865356775077136123081737221396211727040121781182826504904492957385220829315181286438813787818891630895371506033244070798936125553483774798326149175211229354591981212352264606901700285640786366121745059745140718147660601904512186972281954428078900717659290300695712440600575012788512911120838739359045962142397340855368698093961659881224443574269170767668767717595589816165860742297092087659184026100387941916899155590023420985757352356006338468652450615780563167614490321671433604760901659250291680534284782387070983218577024147417807178777849837729216312635573899443003636752930406441171924169516356442781630010260460261829918778402928354928654963583685403205453206690563504111301615431704650258383109312259298667428027246201548719369903336849989066579434427751773558650905015269588212711735767618662870835945527138225331854604431182808921838527328211478876040990988792933766354724802243791958726891171198416664293905147074339718269967654035939333216170262435550652076462377635695245735170669813120806884475023136367207526774795198961481492260047803505581639594005984042835340819475484871107935279236787025784931890607745850169035467048880135133496055402227633005919935988079954111363937665544598409864843452969947394540932034071882119207071880101017936983881045398294733637713887161431079814155267604528084622979702269639459004022167321526362174618487639125416579101529885153669365998138879435214154888525801187370846624328935042441004721565665306961157742382214136536666300519942153359469698041999023165401621131643705715823438655667493557897952365202088086133616886070216772637247949340462852294012023379786945943705981400520440722793931701565006205065241361156924833020931886684671538139289901439311158167323523990497380360504314939864678678794371125080447127049580292804313255853114509252146916394259664350664565782815521829872646828697807796155666145368152930155813321698533979139606733927638611925447235073707674919103521427664338803204194680062860091989941923448880747537952784133441023290662664672655841959173535536677515070440218970404438721554957267047464535326156789482577018655286778914072452087041273615945392887289496273802411238826076335368089077469258000800666086090506586034331980106802136916418329645929922354904910232340777982526388960708464073658704046587208614240160557798047127977492299165747145431523303073416441074236694847598762453676875339191415799627168199816936611838014473831446188109799510883450421424615815501721973412004343560803167915478755582285310148899729184683248915031630394405148920134719328773181032643965235573573876843798550466724226954422671291518596225598444322285212797366804651897123588082525338844004666933652278056455832620503827584971497983475465905045068057389817582685614538307658563405817216425615346693804626184404439057315757145948606584773328624493502889779757832397396628174425718811189965717125521355085270520029708295569914272804717089126155210357262429482051006475579792825690558906381646580359866547106326791269051506901743433222549768584562628746197330433396808029661727104953336682921791264151536335450134549425643519942875985382764942800658046522760990701834097439391553839288251871866239474602626734046375277158033159509401610200424423612930117763689129019517814782896153940308901849133605305804925133677792632903802846475835986664796024545625759523771301056868404435377377468225456487452181006661670776558396911496952987600257932816876540417209165097596818901153759126009204892940495055587296067179736610806641724802751203502196830232413959315785764811597069330716716582972159771775619258309171573480560441189429753452290801334164327319325432180374148343922035070965435175282517064569941615662666009709035044147467842415111191445922328349551476406847163713854163878192070695519023932179305305332502035248258826939096353028601606687468617822425664215071358714866085032590656014241206358192770746845822955414583169107441865670345567994476468488198063770577048320135871900377105247558621891211236440218880910866224799417954439109248995661171155697473139010436823859964663353927371177318135289806128137829258180845175647976889070282713129690236820779680163197012585381174932793314659802653767517357243832661484958555644178412973965283495666347445424479303462479133461172774284636997357601394896222522987085153076757684902786442465307445238492027942634061984142449123210720173722480258357811101269886802962050897758201959804239089941107433847195405699530892125229595932130219511137478027632960542049464230642043632215337897845594950839171592474956976428552401880515561851160171529816737677976366610756722240225961043559437082969870951506279198720718998823873464043308047561338885030628693807198295074693831513906128515869013610840585550661056925699221673831539780774693452318850658284633457968413002104714896024827535921195163866892241635837348108245814546104398206470690681422355034667023700395510965898283075716274513791328416894459925114466770058699335030836422094883450474148159328528118276142781126292657705253705016595122844873695773596263459924509879254823252937132099968021240118808615721928650020288520838141827974924767315497355226327741638669190163567560786229563158920138305522322636331634259672950624202316851887217089967660883669160550835965424027342076418964101822251807188858447857642851943984376907420723823078674968929108982558143585081501300075494863587030540822966488472810636380481560851448542202737167344573234667998545859511766325558180179068838154267207265524539144302574912942376478372397074648848440357800533238396305873893770357919552061893012003844691875277602146497250641530745977568225898983713723030843469170564305224279287951797238819006448971582405438450586485198206162918044036983775646606651264076230564036112581152405558326543770253468127614485803838993844099929530879838768837950330110797937970086708680433610064483402979889745105941098359382481300856303999923250782958724310204636417291051189146271046209145369985449191258854742879050887670016421227173934508787371072950368137535646194143072165644300253896005246445930560970629082243895101948538373339499325899954395716241711647490707995110478936946437473146283587840665573671230023806153503630756036185463300731300429786839967897475367275319015585538398147188099880961594859015907351137055788756082376707456784080276092170477932401141359490415876815907596213301028915475205254490073058976035264401878942690737143671972785156196967531232856961180776780798910991802345314721052307737998637631219593146407421219793775874243512307240327862908202534385632916065135209506826484410007461935274093779293393640890024629730893019413563050021396973879668035682152948209440887974084915182391757747714383723000153837142641707568354327590111581376179577925334663646294247105978091420377669267318767838244434048898291858181884631423140046185263686948188803327085226407648937837766710179991569696297657576248332653245633579098997300085811354264407283781635862065432750680351741322293566354068853783688141718687761095331381598621215256314612242035815373026110635411075756328894024395930814345077983109329323864974776633261474286417758368201428590878167054888074695792285468598031170472325324376960583584098846262688307743961226405162367451081752111117331822839671518558546178756156860279158773307297172169931468947391952314147391026224905975901844961609460879746212390798972740326675096915946875491079690041474107165050416065070405702641785366925552044067859889848430227316317467302342388822240816771832100405217284578067421158945433127258411306963889844937827538569901305249103488827721541088664619131488834544575363336508122071037974336013519082439947312662481419787197453842015256537705936623683257600222901902552230246662366966569646062541919526099990635807039435174132018878649047751309600774212265651081982426652600236109063823808930732998789683802055798369652698640365295835504556753408440851064952338512538537429573478512177617845268325258149813254495843634994534833188128860898935934408063618352496645798207128400820623932359080283063419804010265219376085387878308856514664936581958203102946615611044947046467231750153300553272064339239264898925137894406040433941183329607076493906839282066659385432613128867060097497405533681825112490465548890464772368644385294202102780698792805862943452460753703363416612097574722523058854717320862640408039353655053192371186198749681899188812503118067375943939190698546181688171557907645991796303585235933692692114907219592347060272383464884493943527488968240981416574427867787296045454958925064665991626795659495992095108915065464317697226042819013698472536623467515057140972928403280722838733711456591687595422765369780198687314171345995948390423087094429113174625860146269180354285098622037646134729485841413189811023057865522314316136895745573518632993411036825650863834487096350716088050938563550569801127285809113029997701292835984255518148970799991556317346855397735466240310961230841585902506107179096233236614394213882076617235411386509609415102151870224519779303409566326230299983686693610462799136985385084870676045978389918040338944008742612451285278982443510596132709304079446143888389737544341088735821564549988573561139155382127094597773695079413003489329374256107362576853293796036245297356756760842255999922619257343803404008379762312862949352490923200187621372027155971735613993193999377790760643612674789582547574810610104448398808109506393565071367064558496024174546885702357672476187788178397365829733115319557548781134730556835364510853882221603597532983084208502172892105131197012025935616862782738613819272829605176310502025404626561698843969305735276988267277719345189857408880028830796220077543094216997788653141153663687127538300185942891195750805946481709490054823457127227145298692572810311469305583801227297304926882695330551908662076554996300946628891599975708169058516929510810122575784245982609552527961808244859364549907755050191227842014032835155777009889261144427994382136381939861079551071183547111251060698166998356163407976125735785676444384956957623130877753545715160805931304217597124917134363828851040314450765309178861055821363187323253631071696049275292970473267980312598105204065167000595755635587432683878473422084362574595023142702530244072382771802222638930193141714296101972509522052195961355121993158845356943867223851682069032309529977816776910298198726933535164409688618502165991293815770520802574565407179946528332577551377826801688208202116371945212154639640284290612488804224089303652335671534927864303406565559631326304145640022558058203959312549217771163643245297041660496310230085664210940977514398165332066958322145819854340159193105472278197380200830931349183974691434709788039168921010401409836092380452608484550361172687747557083141885731718833110797343354130131963632439894073904635244281078907626737119178123926081224930764061537325399697153794962260179317802641041152571148579681150575165609783473489438503345437270827921109760752782879367428699191601217512459101115890276008969484806132915951597351966356088597839781080707782481337018175631802953080016854355678591317665087938526350808298498066212042126574183732944359909165367829058627376097370593831918067482806825246525839589191184290897746365334869588494156815287550638612107532598760597654138746561990812898544972197204611473904516787131324701138569749947086316408096178589392167941377813335917407508715230411405855537164149675708740930261129759202729928031982074364314420748348816211242350799715939890127055770250902327023032183048187632059779239101327691067403860757108336123375570101724826250892464416271177326779139188555202565003160978716963228490233181306063573938144646040326632871233601237644620080615785057425884056345749141331844949697560874542397230653546274966232441569833530687114440730056648424391342212829390794501311084509437435795606971039466983713440564047848898836293672959110682992536084744949309156485196550741910260365273340687267898620990491263230990478521885982336046670466565237834050984278518822518291408005940905399952767375659227355603262216134079928998077483644470864457438624694419041871720178607580950856595643404850437478744677792186734795224257537832241057807717353754417037343533101698348978940629791939384117666738876654918746221137272965175377341835841748574899296072251041844941212318792782995162548638474173230050418208451782014185426871813204777245281236023844327706528884998944663041752466701734601768603571111131185228372466707084199994958459548319518314443955447177040192462447851735095407226846004697463538723255605067984193005640186845942954440191558821609271124591498391353342814141929245091556117298606304087907892358178310213021087638400626815526289056072710634212290666507746457873534451527733181490145208006493530066237481516776819923000529734382950565478284833925031117525366300498127905079545617075934987086595559154826202912411037038401417009465252996439931796659992298792127749845917025918419527165471370128861582190246174520023441921376497009430530461039461707737359816687451080698565932301131339605534107305550813753830624952393325867688977153295921964517439458334253789244312902156555765142456891818698371894824425407827716408807967321529958369223434601972052627002829817764132407719625556619547453561294793021406138900763887824867232661644750164263215126863849293653952464726616815814182893356379411513264481776100613773402391512321369604561792160908747836871182110319560752030550154241329149738500629158181385255124993569218457325881169891251320513532844535575748213760445744941333821584138258801525449739354642265827150321279459138543021750493907315438810656984941419061823823653870464555981048517468764609589208084176854198472217871701176287908219196920535649914863564202602073498731458331612761139956951368257402466864918675587467054163529132025400347608948171980735157936734192632874044884251853759795548595193372330495203203513111735721643430224215253987735013644201957892900838481657769891953070730434013354745999902372896930575473779379800172791988035519862788163705661819082050475856175507925128876103200717114607133230932804022879487898044324209883678381800653893926246911744124032455670333583788681293442006994945243024750728146014074958936034689019694644363878490351253442520346328232236529530745335096638567644343094315808376040463932464543857292973235414422008254476380878519129623646440354225291642372870520699425550865004219940567379558476116197503216100308635435455289822552100313934886327691720006445937436688627595512332277167609538514204080657779378961515527552594665468004846718175215994283467588079658626709563484208180432988699563309836746520410268822731500267961408024810599407804194594161650323806968080300030541822966612501874667881042277515173084474910734623327130600398525408881133837540266114726483302469421155487159756601082222044730397104064564347556164809120343211672173624500641726288207947114853527589010845451142310274915418521556990981697516077431086751301115583522210966046786677469669628099943845838580402694212563255984632794169036494206562406273421148205920833065522494037321061718759368676624872312677167508577776323100338909099131002685902308631108168835372905660434106069213796024135487358197025153561650760791606002874391555163964758569597079224047657973847813328673801709598324384527514627665094149581936863430011373643138250849103822487531430806602888780130657650007765806340761239332859034323712576699478098723250964916663904801723090996622991604981627216442924486442782314282565329756259616146178568721131927196129004162148822431660137089104325153612656850983050257758463093513509560323694680446915788416011523809326339408217466908941221660302710767098437799448458489230214501884938795986783329550496068867773631170529212024810342290306686617969043490817871969751110705083067562546186693794421412421999340773491026075871377448936866559359843439811840252290071194457867765846380584517900021403110398953594902138522002272850992147070766418627664453428281196505849396096748001957158896459688254444790416276014273551132759964728630302427062495331748908763800049264506446475841710804598583188622946501451693842242965966859614939210154083450725167572741018398033687729178949640857061504469856886696934726417564118371452892084090238388822230160154312855466358827727269527055636848397430297543356251988901243075613654914531517762643585122687294586967983069418859214249092859518940253860066099804751978916531352045008677175846618157177805371983411467625634992070450947683994465494511161975899731197210225686367368408106368199115173535092987845252187270010425264777671963382526193520492760421585540397845653506535059427484461795166528085963713905133430877959951945802098194458836690136980200155140656823603903471151116036828815256882828627618591544829524314359704288260992595917387102383027358364606028263080625408059558252829091245067287093319659261367909230038618006993131632768471664467917011213651348361862342576008218113700774020069456105888487349180715527091656344269233073073414646179533635584699880566535040014676931663680050013937458103207453259798906840892281610453503255523502998495982217085452314187165687910454309284039594530606932938376360230825426544191881412083552112153369724556080575574030206126831970868036363080142397500084058742115959393398933050979919053390519916800338009240644883942262347489168574869857583286573027661612507063802645083174220102876059586767239079074637709487801223803262558381437930156244475485603154093518064935064159058184379518238550851804588577545223386537009590409398932888788074871727986571212988981544636081607157055405420493183336079741028407252443583863388455134640854485809203519101819257005297565613701211291531209526367356088411295118499203847218569250180304408510310937797279784841463067109568849516702275012403123045336968789706036139355600177785600016708928555474839589771310457447370799154975679955017128967787390122929899167367479201337557245056169290306898343431687444437757851101112689758503720975216392424829950417689325010908199433695421821428042237979903447456687282688768576154925681766425891008865496812989875697529604002909706703209854765348616493928795534570541708560079461102616943677392276543456118363179164442134525307795862913586494035309766675348889006687532273993489316805073393049388815081487554243240642981966734832475675466645550097298737328387862918806662091755807186996954703522457255470103010597499257174687674456170257257243026789444387193191340135717910644987526780495803948245297376340244908696995823587469167153842151731836509091653005332066335380753505010597723358591734617381714644619395499216051854263410895615249807796504657248294835436486201589431630270587501903650942429706882708049251790448335495449408655789521079825120146903389303797690037005812868060721031253810653415594154171906629160837954921510302739614298641711492480805155543724226662989024411598036494924625040312567759480782578597721032611267333750645461403514986939806162112685179292594542100433561811636601831549151254486017337964331590198191158209806295199691085644826700558368543923876175608166109467896721818762799374277870263344571856984428179903006961965081397166111737026229239715003768649112719810007954234019665861169069966619107450951354163262660305113057250110294558975413893047483799042226980945185908677196076731652584877304801980219659851132978548380818080233252178604302146798619509503841569086640159672965523869646860783564236008208992923674425837005499100216731266844834229047480699481535533350103265270625604869465950657423105019848831933134964560077345623438845912868954366631528578260937419705833527304270739066408557114708712979165333190220514550645600066882553852941555911083833770140076729660889984107221448729650246308401081189844375464547146718085325931157797166849410899434968644085707359324116195891722798926182971757558462569098726114938364166961866480824326275474852932730739842717068252993109678083988579634961648863521037619042437170619556409787266257817764494132500250289116132687088150505703586694360854590255230696868703925235046805094361118367371113260850157060851375520600104460534261393836120288950183137637359104471839563847366329465166158507768595151944591817165756193299703095176500863439486545268894808287799485127715885767387350968733657099033309899465354357600902726897696070561458857518215436946316622219847014253448707086603864652097982031050169727387134131478606052703288593717450280294399279319815463246426333537315789501938503967443011392426290576955568518085753741809761622290346494932366496008181378737782588719460062929332459618129338678585255001572136649671033063017615811336464945951920671691790527631402721657323551921252419907939328294984486737775234943964821745856757628214275084159768955575622438535285975016459964067995409464356742303428809749315310913002468918613612260871153907670930840925185956117722520401880925207810297551614146463743708118999057732787044819587297265939301223506723053218674630392347544077643482064416900437161044828005366056847598444520006331974830169958322985510998516533881758255229436841258236711328592431869259616841499335338486396492179090126486362902204559471350316112210746754439414345052436217195751150601928086822687635609744672019529584601529707564295385570121601249504647186606240967380966003627802883139590772018518271941074209549662814525009030086109228297250336685770365291349961638488916474959412183834220438487739789737670823947475381208308119191575540611425830533549614638453514165718430453813513396132190357624037351544394027002534316605909130984727686733541417864605327484679540451628298746763224333874672557043213336967197242112967670708354093340076503240828875175093572111088199259092862566835272207820941794738411576205035722366039635504901936020677467933404447206521470962057640236633228186864618295342996780426301211237353121627097730128084818384381543781785779003933649428688911773947751198114716004129504430159214944166005714051860825031365576877900718025815921379962801285568845176048443953321116740425804863518127855873732530041294685370274901497201583607001615272176249627849986673695568409548378979447975475303854513715169876182418411561731402552946316799987068745269582398073624194228953855133075455841191958106296915657145915700226730430717627768848184735561382738345213548250044754941490986219576607302601124965737311872395563175572160225648718822565080996450731788367789102061318862157720666918967033410088212065390107742360163863722043631263146877668384445010231583828722423895788722672576600830247165893402256852916191018331908986279424016395643547732828209418575139306909116089446068412534305930364244078851110636281939296071664317796083049337145148422693389236085232229248387390136023269210353541278982817406552580067383023524788238244040984773246404083462119517204084290971396930165444423794313870795575172715548335569159861221797895058959736875203904276107557751978350587585848245422054007973173359165875790019195761869509122404675920129819375223278590674483195487126465952070748398003428710809648239691633291712378610672921330260780465101333487314897242559496649865190417170387816889249327525258124051010613053107733776204074668448711837719536004388834129671697718747611650880687312496694529356518488744357903272620813505879240488991926691035840695270536689078030078538803914932819647753796137749275424887671274692790629246869301070152936747489026469512652903487319338586894822098048017591964534668296294724645372947043431654510938531478992345367974728100591879360453234256756631981899283979586773390370146666586304193175914092709671295597890443668048935101673006938973332966660252909690936142235842090611391105044937851455907793808935900374679006505636705563259757527159509622658212603005340307506307633546679740107364786774109602338035389724108155428980250167166045523401831246660794477269426727532413805358793485691610992509063932747863056143540735267600768740081343671318211376453609911391244284999927283927113804988171033327525896766416894689842322127272807833772001980057787584617202440115886539656207331450740724619564792033632688403837465103375879442125756913615051452613194879266536642709917379345098751019415253832699819635001948686498524503402761023859024853367292723335650638754651846373316227156662756450549876709102593761616045535685097374245742448454344992089543490813505624657585882244439268203905615501095883494573600350155282327646737666141441818373801560870596089054580348881228391859453527205948934132416692362711954798184570428322253407712693197852812299381374084739561223405506061977364087485290704291100500712541926194367910256318312568566596837611808453945654589607272212766475695210739378044990379843362597929844280539700530108716103328742619045950420106738381546197700413584024463653129369309752232153657926421872339323956321044541338391397300491671198566227031648249810027381410641150315962672887846901102946643849014552353406884821649252352498468855743607430063002854534785632507842968123121940298052274734481798204212612684350434042390955972997843813123187428433258978885782139140806991538868894902107479633358696054192308165800245334353564786036514310486157772319668121137531948747309478667933383264385842643638742921328571903029443438522615578458172125927961870884697981932570076925150263524888567259632055795539743279247805681435321142102378869559490059286646850109962330886549168747727688585477007213740347426096648627947410924823295903696656291706600800820654695748338556147389990748205273789695746116631614389925804751800179420581835975735066699892588291255965767527867666472830949066642220546400626212895646141529699618130715678754370632670331560125327047926287644470954439983048386758950756813274227562157515621598707998584519578323068309735128880568871166522825144983562911055538132645013429468187167230393089774376478337902030646371704050218315002673024181566851639051162468478338266383987341314967881901387336198319726862063560957567927129838510289117964965754152723761344453909784545193665418964585936907678399385511072688096356409118738215456750978198542343520863283867429903601192112555601947237135627468374795494322581302104853574524152686351766041468181930019654495739491016713656837467535752853985688160871162403623782331422964782256578991809535851499180367632966490193961688883439981646855541426309973659826924204940054707707954836870140913992381977786304299178707990083127913269859829964462386317215015130934050075513087729710334055170877207204464609591267318377511292626839773614126460931352161390829669363379727279430983155578498137888038108677016699722599321946041226082762812650101612462538552703266472167079902655504344505283495697736697812885449917473313596343129506528067134030623964659296406507925903603153876186887514035884211887771639671416625997673630749050509106452754366401049384696567429156026305206070560829140711091400491967602872872675974591459369325253217194961708085889231665778679167625815566245251747009179724780942327972354423302289007864288159381929208074044056983806018250636845649868491703790365868088036264422480336119480585987354062533099809277497349903821313129729250009818625549588405914515498264669285448561769352902882023786825064343331961638772012570741769999984677541190518686032905765779331864537083856841428097894985323048537995371650828100229501745925835517960111513972120709556410878442710121721176948531390658651741533912905020154254986689360136827154809572653973789811382303383728707619265157432473680374791824562619862242951042373557019967941332009663822019969453221856819808461713688075623441552354808089778589422813431506181672999816047596030480149519327079077839491757012348061962097088604810736568465192019381697715658180789222111073150094104793686541494669092919330087947364399199499675317493654995106338783289409515921702842302027760549727973222783125240367097589129022991566490930368425875294518393961441216720538454493578501278251741979847943151634933127971485664712197962784019163383903290860741665843691292620337879660007403297103192510028401453541259068506983280629157175467209123553694002772437442212375040434901510423129293044262857707883949959727916412445899053190639919319782011757039046118910492777677323748621625204342973070289491236424289279906228020596768064495807157756838774241393615710664204005011054588230834861406696406059421279368097289141733004160284491900704344199805540395442735044301794961018998014223595584325767809152614214403634695270278842469373740901498891500004552399037725292115742242764486756666744347368313909685172742911346915415199685371528810265746884177091589344653434910044300842775505482791831786429675273688283428482041656531627370055814285787338717510981726760530089838858479890505608700145094154303147517502760581179631985900583812206899039997694138369666686927178507714776875812174565580341645376195148261270160008736808379401822436164294423748272491982131545041634886729425566820378662345867282841177911806007874728127721886875432068650125286780944013183637833968336992668595145290447936970733283869817767324618408938168535610741995653556407718692879212983141633212262536568629223003264164508711830330506186726955418133272294119437892279897486261737224767504252758905894150700197889571285667336215525808490971246290342918901318615099836166703758553669450409204262110400295181033574514355722480905561003744784072888313337702660031501962822317078901841879126488579367521951781328621719267013390798555972533557799550422039366600385884923365909352077426630552712799212570217373241724218414051337343268499863291015714009524242741176858655855098205192858842508386784141828282263838722618445588536449562951699146669399517926200474442204274076063230975999314923653781119393973970988316947214647292729659640404141086294378286963901522594085823324673425513134254297131696678777977513057390047451888162754578536533832906225089609749988960667061359161395298685800412150466448208630516093287638190244172721786469288007579031333049108966322265817796265443337697186706818808598742585724437839948308621549134086526627607594872623636347734753023988471736979907740294369311711055545159095881307295334251075572263490460340406852589082829495731599964677116595415551211241366469215985413805623155916985724858607767341519697389138489534172722078805028897996537458966907438472436116198003229407726311073912864190999214493756699429843203214062925201743009519045509573913770146869511093536322882123024673151333051255033910361315102301108014349668185452050623520822570072268764487782335831808672624968424538905519936419514707800847882249652180600887239545386837336208764038740496687228734640863382853322106320989535576161563370801378226648596912818425579850118983778084637898330321638024725321324564713609376405859236516526716439663600936947038746602152775738194446388668921340541266671922331577011678038465940772319636727207678694782741258737628839048723045713898055545731291113161176564719580892698468817001475419397695313760958156204943841540282873549624699747952925744979412360132958981636445817838413081418445483009766457067866532313340720048254263433839267262268046106497993659484722042398010698660139311224320325357141185287603168169200698069992635803452569290381361016002708097576082271047782493076057038727135899240523563944201176671271994653333205634663331774079554918705775101820326002712554609498860806418155574478314096456846597449613454576896522966146707588353559190591203005470315953605827583061546031189207268493527849496930523146977862601521881483696107788733347174300570262645979933004099211624513947119098392926726370367047580155865292041083936259369769616488825646588887228733157286796422950587642621699659785211241046884238354010980719123392967397839620483118430755700083505595945931748119269215097881780842190755493133479537870341574558224085910929829205182723194384621561680643259583327755922188763165765263324440980227410632854758472208287143870065122504218210713442020759723997620970066327400966615351897506710151029932576113469392952693600541510243057317205761135833095112418617523633787946342848745263850122382415980631745797702470227537455508784806823641204757737182793430626823872710549961244072708116268496235871699960976479350605564696625814599140416845467651892966342200021571881399196294852145238656479443438053092415486135453713259839217898816407679020484551022351344234932708366835885127283793601582445275462567376520178676630470054568208288596839892780173631293615730553870744853721632215819707927567532690308614407245979757801663435368821713905060870151043430778448390407068211703265365303104876352986436345157775034301886299605743100730767285548957007469434626325117907168581950331362528965105695635635028705542188621312440626545778415080071336706300429732756130953703898359292995642186031170326983139402443496443922296745395203163465328426361104876489219729083029387596972942974476286282466022609658664745051743351707080850715813582182209056514665237734577808439768574466316293130578316985882295423357653509429397915062184588448430672088729338191328022891577082389828606159338260907880737000021111396011057754455455130225497567196149303925093122420506815448048634244019459249687094469753369107305027347533915303183427527671224416464828547190714722287527342327382186914163493817989507713541612538936367076895410940097539019648809842554782136081849623175661890811676060630994618995479850908642754889069783038654288020378407249840652503490055303304225895178988964388240992611694826573382276039817334116230033290943822201870783717887754264387123306830277442904973839860326326698225053632484599678808717830061516324824597035072501837687583024585137601584047326239415801638435983052599564637246807523681161212776874008281921954812032938186107100078613236843627540478071125568652569252741435114933048999194474835633557738231593672751716300559713677336139720794758127908636709196928653414685823196104714085572263550593569446246378029713376277572826899822157353931946944317717315514000931206581743259281192727461789561970780579544155595192213992249909832960305013158953784048503714818361158098739489285775389900144570073109384162644010752367809438039863741694728348702567007769634935200988915507416827677101632445630934500688895604019135169068874136994416055809901539675079901595624038348893410033340348611159333358402933962209108700033231297964348857008834791338925010911274203794288373358359658226964512916231978239971658426030418372905432088504428355072537044353711813513898302692669605601708559324463597889243866210443755140933164857771359375737470075216621581887877119753815828118067510975420676315652911691576745511551083565075348495693004755181748640900717514041428080560579642315722428518066030797424532360700689799893075714243227672667182921894129923109493734498888401678285863347809443041255191098185628163517378829972518218619549374088838255995489988085321764163974390147411688565340952643467602368846512076124825323972237798642807923561415058880579389063668596163188180168329367643255195668766648500676150397637749207906194852357073360870266649015560039289222861821025721694173526825036116793102420004212702647812702474207122291532584335761501800740042294765963444371778892494085062214092809536387591935970523028375126297927179145858884803795186538205718396639995635259706245061735115095025946670212311567626598823064933508455174345418460838211379314731840894561068083568243708142589891175379974529842549111831119417800345941254938444134985856137134232087512295853058373828756996167133561468198192432599413102991891778372267460701257119287595677846976380363407277756944276280916693023673911033928691729973238011544223959190268776955140949864141544533141958646423484426879370475830413243193648829814199673837817658139546415640372106581995113071848379835598991105079415495943493939863241122914803569514261226259582456817704251020944783274581476434153005416164970968719347020843616899334409376012108154534132103216716807359463333254299500927793971658481606746246710104205955829698625428477265829311090447013880884613231571258695035233062032773667125388284449418364870207542773398728237775938253634983991050253172978936174493931011642583666265416672614456815727000775387607823356094656041859006041813630827604390411098731928107649333361804608128602225538100716967301490669934980415773581485239353770524743375976100803465862199584227847675041572365963006610821548379174594246065662344652200651360568184118396215488267509924533240674059345788205677296881053110773809163170626467023586418654954249684717946147110386511427963950501558229019934198570363634482067942961004652353323279646300826364782608593170849209967515443153137084630676022739604787651981922158770635759845911669262279785924496546186092128248708047404879436027535815051038575499935956180235142086584196106386229585201700500845678708388718053446662658669590975402680367489935102927414456128975885836342970703829962305394703613681684121263261623958040251518827769156554541096789333090448512894067995955767343458641425714009844751059900679375347514810911804948969188238782159111232894726365253973925638529001664427041283343506353488122217375420021955793135738729021773124548779962147209928112099984454464381958743272821184560243020614257456911526819849961711281939607820920282498328784387189604985842850160138107571254705532036899651089117536661568923997221306738355317506297612583325818646176391797071829313852181426546319564665083142135515204689580849947064492894514089395615585904967007778760444119791568912478121059962922715187096150916026826684138793551305013954908771645801317299132913108651896347164223969385453974042502529853220976087242353470232164453055474106032699564755844285852184117789453454037577681566899117670935959382114908030382681659413268785482457293452524238673830652979366582306170542116016205548474552640644515255616518913796573073594794115108500656598828260195909044807289139021975766008451437366727727895169169829728349932185094117087150475047096345215291629056832842196306702343629815929978355515441427864475774097460550896654887256664323014474824507608374058175430161602136385279303485080648202428740726021031819263824919466523562471484955616974184161746514775912594621880455800534326456737496072825319973669366192465707926518312815529881311981525725110832456682444083245799374975707057430224147278182516845007963904117715691062919004205986062695507437821898167326686886024740682178929247162899298900041366283939871386774481564765808356812022519231402497771094724291852107853806091392388884852739485408895735752648368929651884058392916703780520288454012813789988681955631835014554127532759137768369291557972865354716387396648913070805020821054202635246137688148813628311100838008730653681440878542135184660423653152175464178555838933028179478450251506817037093040916058405523148759031033655597758201614773365237154163759308850050192005188837540436110048648074195941142945837643928618329805596690541039199930239006182919633300058694012254804698179520172847770895655182881022499750364815287985734482596081139516763559511449682306387033869685211684534082639166869812677306528632426918462395826634537785047983259235696605666867747234267820954153154462514273666056571703647838092730438518707606761465348526071156937837403373212693090975849661228276693077820182641215684614961611004665062785447314921242043735279287116210470693371644675612171737360930777281112809547386432850938150196694269665704679070810893006471676818721913719934536086126468047211656238683627534116854499967011861880313419011372528788930473919273311411517864493274408910444390671653184848162285183060156486778807418831568594180154072565180879209997109637788697703197785927354062143137657173608701139671813249739730823663839450443550054311565634368256673517068500046881263854745625149329619333061169701120965752068398068588260205961586756461990670040007340022115856128606531390990915068933729758143673006027815693854785760461361238187736049423993058456789762973387376573210386842793966654659122018190117649321472660942515472756563255301793106080702596622978234240100253880366787809939005638834493897199208738454023591393532464713907983382008945551087042704932141301389953022180342007194635754047798644172508517578024970623748593642429754649597665654302666583613625815161517251130662282704372986061602800457733362086891157228038608817012229698906161302503303223594109406191826210340899512241491285533770815282366035341919261918398472248945963459791004131403284315931202358825886475490942092341487719469996329392150477880520276232076754284256059578809658844374635273332022440507072798764669218566831420249755790555677370680104142028594328801249905666727302215448317545011274651043065044547566345345978251038483502227348337075417780933262899389438580919074991689306603638255180058479151516555886887427326462181239177062092345315747901963214562039354719047053861268994368687112343981555654646756925007838953116686720213336336169715688701072586758307463835764471512328664499427549266866879626995441999972058188581464193959122659336508833793419303639942880636150298727942071941263110460624323147077451235707419255712582778082378281095403762523935813470316460108810261227591639601993808077141436716151353313211151681046473017893707558410268667308849027583955590583922047474537422004415265961178065524569658185017487087479664130641740578745925041341405963339354753114396433562659957592310605991436710435050088242532833748574296523410083685723210677490288187658144262574667933171395003678065266831569011503078133147673629856596496365043253920055439010629721842762584942735054249922939239175816422403062259694635677231868771578116936629821784036775588192350814849407459613013130823111448312122011362517659028021860599394723351519304856226268424502206454005049167772042472464371725671103033456563349465021340055215565939122221129307388153372734846991352777619896389205996125652463290393624784069765400323412517115963827069836467674220982685136401442153528211888141985852535749741977232968830055931292353505301610007849827745694746929690528850238750324204435705776176464114958192190166431929236413614691985298816798641723400387763755004372099008722813407980246742014229447740078136132319132311423083662554887328184569268658980406426111715598115806842110073205467677354181220403110494483725161651553093641787645577687208505400978572313091773319089350406150413209449734123605065703160817475450211386011141982535433753876820868179746976146524674921858109974213396656074451872784345842536978707539639323838300467329747560013904187668444278946858002665128525435241111058669767099926985292146873182965612856557878751815331521937666587438562346676010167096202159321039646709770087381120504496842820899057942419475295438156160669407315968346331798107965968770520140808815499310831847915789474819756572707858889387264334048259287426221702421323213618298146056384646177754568990535941230164366554528091659718224054631774648029260664115913277364247073522925080486663824144776406275771427125139256405331647366268899619338950610785528047336023032060337275642769148058264693968260351900141511490565444189217559840001395356832925157206613052623122754507987002778683471451818178032988017640959476031689089853406820942729927092653786488258710009195733965621956142346188113943547376220165019655238081030762014660848294771563672154896738903055833606615438299465403133655579886529653153421409257837561596068951065071025492725496174504607568763219550012409802995200187481701638992160111050909281770014499536785399246753970333076290413248435760566534352291446145098684611314972935963526498263184518104258613009823874423309695253726527053836427437589667380327792418073046089601397493417442754134941724344348703547119806786525554038273034792926923735571851321343861325623881177614551807252209833458368621052578150698099141192251463630957541420611883497670782547527871275352357597796071146405648335253416632953077124500481887091056820538350171319719003558490926625548533457345145007259338418330990920608890949187837427305065359793075560987069846303156758687564872386259020782255971665330221820400606551315363883433579083170768555142772478426826592124910653314276855909582500769730742545065957452311730329673800736966134870776785478632368046674688999252105754016405948523890513753902131858479994161631337319388889870792573906629038484204109690255566959040579494520921040255475691460256507603526544063351151380823832567809633071694887917314270152488405006762987166884989225604176686683506381773395109793789163411312827629786446566323935052799979828797026218708320950530722682604793935320747128228142215180193562318186868946796948593084226460979602379573315306956605284265744287538277494736290394737951782149685687744497239157245796384952105599629247409724311757745688786788149397379377697989986614731407295707343736162096348212039470050927249604836632941779717668244148431910842758903236170576387952853589640986263622248573359230045642561378604550081505663678111165221932584258585782222113068817672866972972327380940603068338260240210900294729173664767055369059343179108891890225702045127306342276788938298905411203417545037201743356020637192636672896595903658730717575290965225518029462069371903166740367532644049461458339678606204608717974143635157177933623131555289019331018718057629469872152178919790065880319760685024472963804908992710715229936424343097570644444571780648324487955836078607600214346789295943632504688872576755073933124721413201208233871836958883272296993634902227913590128055287145792388030097765702883771107157776602555065492386500159410194055930896726079240248431485715998926465417425452908636648204968024943164126187278713335028703926980797932864982184113831701902427205292078769690835328546943171262565902277942619003977769601382907671287241981275542457973897243029504168925449418859997693255359726818863092316294110540444430779884365276138268803075164339554980989557139253837040902058278162753032174496336757706799929259791522723218301030665857074280097584505184357663979008119559911533387456883399143192418700574188261108234225996657200537834156945601026906435544375866207900991996871008835460699690092207097503211239074277921327113358233547484550603957716822821414937534137030619489989101065186233277593207380673232609620249727411481080198146881791481520315867667146151470408885824236721978775073233438491527799577999770679028673205987719293322659327109034594359304201001932321420393463972846816524222356651325306991275891832483409619570808832207839136122980659136323309856172331353501662615759541282955128366127931760144412754820382623908720230451267942789198471510609810327378995619274512543057933000986122277473605622170190845278889096335989599442933133945576644436787290275503860613622424233159214905174482516262486845613667823318333650135041991879985392257725101756983504377314746578373825451635517198050860781920164691580554508026189284089456729919381440021458780323786427670764686671840559622287352579642790443292786884474757712038299319951179306888787479208798862772049886053816401439712092651748024963372983896282061194338872052567866586952448719886270743221774244442179230565171400488210009269311550486159206451501060583956089452344551476826243189593041499394095493511359881621071385678914221648539134900982420774604274945781874180474914179602266291889262237907136791266613178643369561906881987949505014373922718157186112366082576269913499340028933193588786078736103883786552628377599401165036393692025390984847573436860665536048720909200472558635616518044645850793929907739465606579245909677646939758337013901840640016066026416166377634031171226923820673087415868735574818668315249818724502963072735148189935334852302002733949089906256801847213140594887371878376174060842032428953057375635434041482609623981992048620515742902537927309424961133647654078429880711625224085851804617196181658540259734032523762398790838211624767506528871803695336749688754953723812553466871040678958074328635219174464082738456378246205159323915773400314944376939634472384409132811986074310420482742855747822258192587207147898807683297567259252644374353621224794343431793170509316962512045952962394883238901598665621676605352030669868606302232789180281193692846359661837492544649393014387678768254768633782452424467728856905321668949068473571512521486041302302795651936814588078004995979701988037871181134013938021333632378509419697642662307254644211685437037844546779517244631874506027420182277304014465775125651002187370900179771959559440855183499284683025477989118284012166039640346123971286576544251019404692581164903627655372122480748775229478002777078364819779286795440070603095683159835908894208241134041836768233491774669587035477072198869331350259443370639030504084224688142315507116223049373275449121528114354675386097193466415733610566225900500735217460238827971879533751143397993690966466056970706259485659775112438023717263379668589785096848486194089554446945709552161897510057546048236436986621039092639990493490464966096503695843388379456474628939114989958502632409864175005522432398324712771357996449000025673811372910598741274249611760076662131912563764770236284068206955840859710872898014737007936543045079534812527717778491203984800708396753275302668821006715872648852790360902011366067938288751850447655999670507802449008794564447838906922246143423540559211821259371988641656025838813533753952389557885358632392973681391194834887854156750566404168158083138947184938334685080395917742722773847068092835974093468912365193679984106794866098306042878101816357533284845574052936073634369452047330997827307634383851297192066575767521085817088923884380377620009834842222682719829041426701217355371817325766846638040938166168739071007970116073873411599212387556027194970008861502808525949258746197711345726564018178986168622344271219172629755468128007979293819703678056946769890015455035116926496612916692914565162377263706198061326602540821946532862099827939385403160986909481523297309754825664676604222208064510839530498096285669598558738178436751022490281045214312201640064137072177656592619936233831563680286448464700936150165118711616478511686142477834636831375357351850956328506044194566236971238835930005494785072274683501084424816308698218309820025222707731244085507724984734875744080498401006182580760077366986590760769268141971296799479543762990423648951665110256686122028985901645897567103443452191735315078709381860728075442071928340938142862183249573721745416111596507285453562374492173526979932572541097540837563566117960940284695576667441257887110283237005554245129860364535678654953152959173035403152829120814394053679461658761501827048062963156422214916681989454463477242920342000640488285117724437111971914699636387571210658950940685591947511669114993150046535673820604417996150215799689834602387260902842960500776075608843507926367959957298911073290557686134055751674196869321078749241546970123584713152862673747559828896962760017627910840329155465912846219163778805361842621098089705297466217707539106818486512679775895864002582952969662092660364651246775981969744579304913556392524108539785972673470612243779098538531812248845769895284408576410030292640108776283629597651034321974064279001202747411898091899228843071326585495825782233547289695009979720217558086189379610782919011251263030461536925712233813446226811737494224111931054767598914580072831561340767829567505623061208012282779568893656509685976621276355550987720419528105833982793761940871751489141322472559785746479685615723524506895740797360276071203490038188577002419682521615443150612029075490046779089087881107924030326107701874556798321200779002868221503307329225737817412383608107410151719603208430122832889168576828627499967738103981303699266706977664374975154726858607253662289273354129603915675214830814622736487021379085560934275878268474227682574987300934798589398592702204527665022077282351998466153561320655169681012376287608339470811151724157500428700986745609309640962112724638870028183314973621494083204231920680939369382952891806026181239865380921730342892347757660153870270161218119276173970650010251709713048874994051884790078792573627919291262807540828515914419460306354073573971342341866610672761726071035649648229266959219580764980193269633601296936995220319834129433820997275273726421402733567645485474309223720117794031661318700773810409489110202054969198447897616897535458047789431941731166731461613512342909822706751112884141654459473670247706544151188899153422783070101009118244144638933762773040362904787138500161704546635133522480163197016288708289767311246139845905622752710180853810732263931905199083986465741288515062986272980830973741169757870964135395624209840238360225425271613371378885102093574010087565319133269271489253988296530008025475221538048160650298206897680944165754612101717206522386916548294282939573097618950513429152206546362222377496983082840782858182389334211056057272588322508701369184051442568074095165274684247770128803929274318118117132557955834041382656816982100213810393054944037561301482048806117948211645672832827617070867435661234098904640427329404678883830606938930009536178230428176595707404175025689858344247372735952543735387306182877617450864352991009427947511042598845181544900575244224418884525029083042909063303216955877114080256054181588064208171879961880284158057988728478600527524032848042229503542534630546522179064098416936000924463614429938577922683127169876402424394742696901782595968423567433895322825374155387452492427943780285693596371147684391930439443620565642369649576659943004328107686068403869117506330521069271219506943215725243989743049435305679722699206569157309687864237513880098671231174288468592421067851188908907077629190997330262290799859932681616750457790038449655666140212591268803843363492057450170489844785138011416429125373136705721913180391412618959116387104972663828675034089830307398465970580057163998565539056644141382714684757577175313995610521497681632694622220799419105694381258501362969962672607118238383748907308219771321747593448426553395570369513217053260365894429473367740084723857714953364221090991804204215929549492944437462087280367043113311645551966982639100365666079481422699630767778001952820627234207333300258006647346370228221274980881735872492481427174552671640811402323039031793194837522785513497485966331731089650678441564254907881120351719337903754352708514989001474265071966110406002400559414249808965817733394876623784306320860273050572372369615475882473552315517528776250920941534815735240444914624571739615265713781456444849614510600886768046859463737613871310202634994131243121923249812805180563807541273072749915114974332990283594366836551900644031728863864726206701589702713008722565724472243930300872641658547027907568019577896966139605907955635927691005522029456051353179211305652052538164650128815690735616249851211350809419769596722873607921642590791848719919745704294343279096324053939477463413237693624982969609152598959111106329535359595430283979659748926084821724325143327722577667225022210524291314965362943029447541579855194271563048163164423975562590984979101482499995566924773193952604781879132466439119003508461792637349047224325627069584753378940273494203464798730865577031152343586982157530508853444423395510941463419218386548430424578500993499600400689887197886175598872832415751221467047271627284783955102790109066722103789611236250751850472761317030234080667719396303575372549295843997212809867320643937273616922097783797792699932892362121664392641901779782405140910121736247390209497157318415521509134423114361587755460258939460273036513471957724389495531167834194599478034535640946909395249559874199348729936654293993152779401849928252503305472890186722345269107143347163145510943506800216338436277924652520742245266728857647643548152270802773151417330774652324341665020868257461635162892913914886753220452671991679495812364293591626085688405369183048337134142800228856598982949427831113838618327573902861256296475487570246788046960800216879359928722037415066588330062185872454676598395142150450603346621358507722923364047511350233346745132254717115059744069360044108586855505742695463531832067796139891652977331263941925265034780019285441011196745485342827267642052691899098013787801758380255968352819325984117815425806811077791527192740354013720641341632420266517484856374805745400742914161361936231841383665358647505736408814889384654967523406411164652548022585407762317681625003858506291882142397051958601280707516494253523597749541813080449711084902395112479379900527688451375607616485740205358660631013414437964507212166777662496443467446603062745712301927438818980611483173251771332906881319456387631968769736513455364879840078097717543125538998158174212613214943069832904268233521460058106806511859686005398947789508581614897119296973172558541500472271890546276728302291801571630730148686264329651598570894022872978844727793144962684238585672274048110764094171023036024021956056197476232167213977687165044506353529266813490636754816016861589647649593769087710348493490651989669297286568952480383770003019615171854492482087792836243181513499228686326080697942039381714570761728189081921649990057931053224066491577551274204268731505960139412041856707835863546448742205781995430734140028955428791874042909885886091016224131754986292338245997788131468418743036094672034194422020992617025142817878786044298179334396887862867331387555746372863717191733749672874758096767757224462520218663324955798053794080669972727520698820259732249653486439756456581579986823497709938473317326088281042914655245839408685862216770057327741590813115634474710652006108759995351671028803658390622285445926459234367144024369010734402365063820248906874239212672687168118540457703016644113073166933327534128387405270764355846522731385244580012385483732689928840786975312416595674369277156325662822520124727457960435178694749352696720365078639618111421526616631341640882274477323724619933727359660434742918814305742620568726419997407782340467931599965096890680109088142327947200281116337300920525569311442134576534302541503897855142894617850886421547330156453843445063512464930180609916086742963375080137246600662784809887476252121526354749630497070411127252113795423318870780119002902955598333003861439597901753641177081152436203155068500641491433888343104323883884886724481939153485759918692730424696753043524891980171986812618803549333007230957571700382681153621800761557354727342708056304015982105492222127289207506302655640097886378718204091350874111768514297103250792185845312164516680487244851696959342464501944056877143804779996056500425530603228221410350879141256681337641460970885609210170075948840223506624724422830191550605159069457806213132957021928902460117389562122997461005316924063100406629787584284065959582053533628598076108684997783125286064910992989451117624701188804437260807677642209905858624004744914901829911478519261926910543043118137148276820838209400083533150392040396819587594304801770672417739851239149125691159561130885443322335173050527942817910911795041250143439254950952716321273474099582237990736687534696451111372868412691547009620782314829505003707127835375440808966266983797520713320722647333007229404924384102959390327139481741936062925213579075893307569530280905544352378982923513309364653847778962087649916641149879316801865300316553384622348870329647813140801671587042393321014822863842729253879276276284443819511349102792213057514319489502825864844773969536401364360221548671207254574257350688152948066353045438859054989027964525677064226959077422117980089921741712919940468195746405018407320252849703770673972953318467624551681929545820811533816785509568959528130812407402368575621983554550598912854066804210199516580586874951983631646193116778032295495003427159119737152775131375028264873678965952501520216215277723691915891622240876574091679260201712686531714835683473509174440281489599834145722428179355663640410127833231261701176983107187809889159974650997854349196434430298993649778968556906066706195583150564890580734466904358560481934426376485403842253266256172183407753295535637947328682929837700392638208791004485900048499781444958711519397267151669632153510446772771168616250559582056431538786222502103352990898520088658601607371752450695975190607131755040151318573489622113946952268831420801764488759245290283294614721999767140637201015396341723250451829253005868594148381334508002198622192545230404085445129728533438975724372854023863858561259033638168142092190422199376603924148712060889637158211678684692172056453321735087600233578175853684913512867792207317302658463730399313529369305060404454786524556934360633327241560784677907887648376184971589320085994766756477372928468281282742477833309413822291001064511781720086518434382909284008249600714633102773262138590244787613103441911726107755546699122615995641884946413152949493479532605240422674711040243586801290101875190506896083457349195448210394691874703812943315621095934937197717878070451641857784616108578345929304374063166602372120964523713099613392800030906189525891020354702041932741401521828859914277453128446020802352871702305807623263788426461724940935700850029247526119954265860126618258768773782303481134942511426066931294473617237590919080628019558070482080989795780298321651744803784573431609434666852990271176073976365213992124515503577333217602186118591829113442244290005641104814436406488573736287238809140469090101298229390787823893898347092713535321735663150649796849029204974391230282571657634195093966529711247255031676078391080632797981105820855333851143659102348886294973694035021430552681002147653252366768528233799292508723750953993701611484464875091319907446207027969390354369845130156762540121690660448844860810715468118155453097832070563089990892306388788399499058782938228345923897331927250056754111488500124088053962949325462307131148039461329359712016526201480180973823651043216420399923384025605997763945235130741102479619092129196179080105183503915925683051984670703704811996448732982974632171727478394630884669416291030579801124150179132971150151600218812795324362763171239851461072228647266664825369683469834631535345639636414213124699946601419085227071146267098481619855831603052907704245243959832661997423837575565711349990792924438227726382806707125534113626368975130283931133408693502435528811016625933972423979975276717604707241410220897840529625691363688260035290931922089222545726679291547824963807688246754920955573445939065014375610614580279090350019907319560394793450105958742161121108625528029183907054995458093426076665601088690399512648466221061044985272937409119961195896370709058556211739047074820581932355470246994596885912613683860938395981556677105278519108016012220056425856085425996073838852938108036241475098087962443030502886442386728550852537780391393414726022433494514007890310419129999263005231181440541262356217988321530796208670991602288742701565182476839202001880770223869524420758638247871084204918390614908501275019984400183091251121290351971757573591184402289434835105109793385392569524620368068741011168947079548055953232253886808342031014000208743753534378137394798669869204350675392732838835843402684264211276072348400336203753612763541899007122900057109564699993474020074427500649576088547423072401606105232104226250533093529813183430712614508046171868316157276524323730581223859834722602203725573338404554662945778278042565066300276449621155875061842552101113218449302501762574628696095774713936626827801723565940140348760689419290862983523628958339542486214421974077119803491053705938014486219356321838724770696573963251976485953846810246550185599121172202976447141043166904220430017856133016140263779403893096351683319588648622736503364451538915553987011282489236402221626418610414669260405154139045162259369184219557643907792644549484091799400396645887490012607890947698461162520193825388712521520768940550517859460463440786749778971906881009686002234586191394317289751793852273963202810597790443749781118331883780033344824579010069076227316472173133802295870382670831525807311335440003859591991542159669111657436882274241016625976864076984771177086274685962888628150169563185605271359958862184265737884276586007513484882863108484727374850596990739424216823008187552411108239282161440630846045240989954295238566253270751404043541904589908475769638012537169563553163481679090466530863219373357195134365223723227293977883191967225891676796353953696269618254845539155848037631896896374460828687991623238123216873013765793467464155756864124783346866748424944586528859040163816647475197962652959108434629729125344080015808694660918832683057081943913256455698088219666394454362538765095999512179079401880331194098753890528500647727879137012668588952253622990369490041545530931827529176510721364449560496956125545852833104116997386972538028922187308793127592479227284714249551450985787052123452211532351277464248224080897434735157409015324724341454345942772524996702432726835369011976794674085178696438533862850516218753039122335415634244029291616894585169139377234805980853324463971325528690396077700953307673226904526021715602892281530219879672362259448226289874719682138216802540829218233438243795945256878263023185291980374510746880724503323335839242857399371537689523926817217330499338654772299149317934351168676273202051108597432228101851910128466482095122510932917930855604341648049365995094477408057244534241617664820326003044571328452934156856354111021388778977058430676733804810191114900620348130913022248647843487979094400050801568699170990695962854126948767708823690697850110164049647725001753489364976520344123080718635019383794064422035724704595181649332630680316078957952899034315002605564940751516091484722364987787810227559332781412983646393765408293459278549215523265344998012101872347516549267711610734073824171889119692449163730067285146782841548745948543354324713326859403698240092476052384258420852418526388762932785138909485391060795931639808121740352734195693499286351594489021407752070818795800692942875925123976816258168672083331907428849684198041454050027777940208151736633339825126647300716237192315035731779708349526401225691588030048114496834453591707921168100144280472236964607401309990945175724732906577239000951175334847023212580144383485289529186054793718859429708648298003483674023873842442688049584580185821480105198677478945535176299813144184251122359447528245455899987412452545325041470980460388090855136430797965595673131150309705845129227224547638878770244743679417052720650610893671673126374130302347431526816829368243958571968083860836579421086178296628012101648112323133623211071977952420029270487617257322383191251386873598407443882117059896680971169182263440142542512766617595375973333874714434155942284206036300823479660600235591074760956276946871936558993701158831779386846183209174996746708101468771577790295823219993963353598391853857844047842796180017935611201631726404275769107469347315129345139241253166348895994993342437376171594754517222470509129669332768929692930811810431357282843023988505479462405844610000901043072218607601825232832253148180375024090185174461204052205091075839235522568721101400698051182605924921788469049337430314619267097100130034052318977869669930531317170324698651465602022852875096623263957944313900172484316611514576925225610504679641988443576672324568026976665037566726771479365469443892638774617383684834557307907977649369504377582090306670481532858957965441426073765785969955668714214782720961501075495950682402085429507995952118294198423212765524968435660550571152073717189472409876144559328674826372428925967156481871515057645166961771660790719381296825546280725467295404924480311095372412156876139091882086987173763927946305819703213832307816471628613688087036945939258179190209793034427257584614692056542777476998953263024188941964062209803101265190058888682411026041251404426929114200969373671798769055003007069900902962620673452032763542330042732336584041122420443003876910223936235969950719187158730113375951638523160631441147517281934493129691581143173539888755309370200360470796348901206050313408776135115120648246002364947031016072232160785859325337869917897907715781821205587656446003854720290267054786252249797898783986243830072768182649574178153329479504968821910145837817997259770059596752453164258139984846398105825436231846262664188358437815286448355134571192354660107426421362751296759306542909122894206970745313524452375554663866839281156476630522358315003696856704275279575454916547403613650537318685440771924903255219344223210273785831263982886968429475798649827936418936545339393553019516378732822166735694449082185994796773635772175971013824042637380778883656778740351193588049251862756103625347186790814561239653353162847390180792292255483263803472347007743402554787529998236883114292134188341728495840270042347549773184399548813063963623777047145694367044223065730019551402997824139057770814321023623027774591566303113332066000346641065919387900355827466025337097107395778520089822087000360557883927396809976748685833026586272240247280676563307103994520195060117230180963639881033845353807811868785449735793637018447031775456315625406989132992556003166325278449237927514547277933091765932440162718362990726659400644049260187921417859914271412059795690999842209201742625104908036974025700722752788554540713407068131256373222893756833502673315027747355989649970213486506513594167853879083531278264504285056496941132780678087503074232841802340926548378444659895186010295950085173576067078946853867078898905055510737142373297811880276961408308883142169948294341013634493525737005734692944291893773247727020814576695118906216623844123633800499759107961101128423364334995683996711079862817631923839160908773939026727056042481570008980053178931539441700965162369284905833456907406386319945401966215039824068343379961290658129035570953240749101873139368519549889830774584097182452554710979029430995759637889680210526369314341464156156848457429155130174055567603619332590736905420797736365690979495498793120306417698975306006215061786502038514886769879438615336365110000578876955017207808297391117358427435483679583238006609264230677358517956330935766884314069884805450767087173580152185097255414416268459655722862162331775055334812208814107626635208210066565789273232579048058475701115537781402798932823051200793488649617362410584534689760707563831655321891342473648297199556815258642271444841543261513413657195121895775082895598095434190940236088719518617863174508458180613075616753696652902495556395564491220560149881663149742902394512912605681397509671675959042270672352121465887907420534543124273341480978551517130825392163095124905196476587835889378390384986416287029505832751012704811929054804208212372315090968168856008216989520548212885647216679961482571180290793420568770944462710858828996051638460154376026569447131098568471587081730537832883005476842505874893047458472443554895784610553284413901468773128798617769657922980590092036362707332026359531167229654517650665848291113157505474544444825087567053029149302854063723045294536522842097546092767951281942816716275835172048698044393572973703111043938642479214437773679568873735939608657344110243392017268263609301646058370394748568399525123730355754026434973759432257995086171059712125001933406262422713356693713192340829882814382753076435236728238823566529014979149925599120434084598184909316520114051849683156663614667385576007972450037646062876963784606373530259387214048676660123784123899462153267913933702616032977268815920576627393348259455253317515855367494510465067026039893985837244226162083123919065096717770038510691854711528182307244536294522837787927753828999569358763921966996208623915476350880535524133681050223039910358826284737386837337668292637843638738242764985115087607546300346743077851473763004844106539198919433808989434403684538429213382886364210892946470952041679188129469510574949472255389156582104645559945126394425397557636712684593564370577176368661726095098177204364366117517675098998088016417537161843288001347919622396184601095825465838167243308661684475189425978701499127903911574710504209469461991948239686398028068900848911506942040631724397419197916728637361074773486370285697382013633022459504832181533220867920568684002394988058131560874918950848016145898471105641421476628573363308024871150968394310529489594664386269056627691079522451344307427490533108825579266582155419435247073656118369032371492757981001012868438246307797630605146633797328616899038326463292287993916115783446199707128687390627079813358694046782057126908646439152006191600254035059516111589689158539413834143122227803126412606285113169471995309816562283150756906272835378403544695115159470295661440375182111423616403883828995272456117123356711491371944268951498254155608984693078336995624008619622532098571771303601761634934394492670395746454708236055675296859941001937854358156281461648370057134658850171107534926521788879215519281386887061492799389425666227341375084713595295538539711866050479791989819828250920819057770390364668108094500169102108975213605117269057310970512722939908283700341522079118621433031227913596713816094452779378732098331445754624930043375658293553464967310778526916104251892195144434045859409734466002764471802684045707752984093743368264411222780313317414049687212274825611248508911585913813267478480843453902287343574068301046053276984353895256518601771594497131777000954801617680744177661142086445705620251249855941907926705724738169004222707906094395943966954122014925254647063139451264254244587662237045120225593508082036662958804350945151036303485058402294887389424907081457949384344066620803672870480063398034017119958760171327435829646940974874737876177685290260629804582117743208694435249520495714887254839893618057837732756686030016559416551022900969094669503651749718034029700320261809924649922163006082384696325450953462010495683630924857175850554870498741491855787820230818317453649415712859378512649413610234171625923056139827358781483251767583963120052005659924865701753091478479857405262324561390371886164028057684644887840446204262607453754163689296518197441861284955502954336332118570212518987302519416646722079644574034366819639525348540524827370061796371842079165144240262502002022599473447760286136474332920088709181242809975970885813130353668987441922258511213637153353627135726898441553191921772228156676533351539532817655588306529260561145376987696965021821239051036489423116827387423434877071410737984713022096143983398348868866410257791490984964855467662740432947657164513747510288395697569204528148159082088968499446720102307255000051832484886730934977333206062817273787853325674147213885096298316879127279720931099244139088230370648365427709166179962343945891082191192369838441113717976057562219196448215470104520029173303102686099693587200791598791621891974825868133013536477377134770492325616177295969658566903882630301786473830942149146334088201376594654570291053201018350112125826682843308226957386778730807224686842362558245022256118405696577466085739260685906308547840400371363470040878513957493066707463572568318295529736053667929194788465614137141384390100425545494059242063479795410914203727086221218530597819628832732822613418166547872137613532842118957494798197719297293640753694718163383666996267915068595091037719716052539437455126236754806573658719207819677730769311222221204584883933257702402081388209748577258742193419894322984812250481157110812227301233029844848309447553304524137253558476307730843523068849197416726578531962800060706416355588898977323439635950673812333042991638954788410831797100810228800247497689571280101196187082601920711029073095608525846216254935826129056233079121699271420293495970910448199087533480257729345825450703556615405100060012427121666965456845679658366702693267107070256636468051367297955151026438442032219607587660336232184962074048084592102320959502135789325282459442496699877058970590913636015261710380854026882622600827311192220117358617063293799591483173209255296399069636166984766256147825794067789838239047217015359803469012332596801700656895084408395409032652903925266634680619160424216311298594708704913945037070482606396110842578428254538934239946460553583487445475827343666786992832286797179634343518190701164583838763991419953870470117894354899088142553383448394917348284753694852199088099122165537857140507075517250895074205325093589318358725558840781658767278459489864918048737229356462983380312177854789054064507629218556864972545135149004452710063689657404618188019414153701247880390145238139675228527251965476849892864176262449323827766475229118239056903240736571215630012656923964301526551069901722894784719658245611803267896883862885161462064663960113087749774704107705266544595663745787733762504901464720755423734050087175263064960013857942136821524114994231635912575346024578801387935577174340323338323056782366467895083494116268611323619026267522124681575570442098027181312884315416435630203929812358846017280910236696473156535371770802975296525661337930205339316202137696002311279060530496159286587398578632890063933251457027308741105974624897765878627999905094601809933661438938836742152604430337048644098710608966117373878623489718203551480854212379800869593690962541997820949557845479249005440959185324334164920088020967092425136569816236003508182849849271045914468751902053284275630112322988939805126453511589540588585619071988331503744530001166227448221408397084819353162384607597395115577419657183526014368107305060548668278414186608692502194752026376926903230481426756334225056033134897426201710352454049776643952099341999542505103239170177242183766615190261747575968110649214787546337259792047473388135434303962924985099143047103175771130089079339955821808725344386697574526274852944372769439374049693834267580658656669328678418203258185689000743979747948653736438461302282419281147617691120567413547842756415301097570765712531104161834259972446875421018095824124709267526460831298093929414772313176734019602307866835529206443479521072487839669225433110233962686320345924695692858767643752810244880378224277857888105761503323166247335828313577057511012988944300048963412611214174095204643079989551057914719581821155606057712226230107690405847826505017286665402425094518089932005290351046300764055031589186445731475355060773982139411420597162038386199161596581291746361600612503967448486303955722015604521554070801495385968226304988350980916686376120666129883132735615360742449139870346404749905658326155604360740376060855477339400628628584619888381249270211035209382803806590766262648572610653800763987661337521083210822975380420770541146024320243682878498176711288418352632703589934356686792668109066412990362945376197027555348749561441585135385953958670702451642693652687335253679023485919393887114878162176804029111624363525967390546121292103418066469308308650234018686624787859569875400400386678304236792636437873295776085021358535093517085935009897554673352112762099236907002162001365097243686472175490805830894376054276963614753988395133828454686514548983788853423519583933867436350770681521995114780270114516071426397488680449784193433528671566642019962168874913136123415519554033224777338902527567317611524633108821808861053163533512201307352599874284119564471251214586750762790392033236744601766412578598500252809315105256645579660063323455304398082675641927316018611871424212429958247547798274564091741480016033398251117643455403403140119678959674968398693717364668993857171576586150109579654344825229026660261478750440236289043405479188585482139455231917296432975715619737449267192978784368001706592137622086198377143688905076060447668877901739272019401948799831774365826452338934697717353926225778779330295530411310189154131499086432245576319656549046100783064394652659889126038403883186499871140092131917586970948869009412533509105860754786798382100215562111496347866823306481475653751129530231032475975631117560260125354609702052602956651934670721290481708142451502732988830103957130067132358310188285966417008576490124973587266395595332444588919075817355825567248908037423615737337126863053786060037685270398565943808337846103265509864257769786450898320516847776890636897833137813268123736383634884562858675264806149542274063206609330320578717714528134467501464986012551210076411882512816536247005517945734052996264425140314073892650446502784114656315597463341865279108796560105524269516661452554031456097400597900594740472563534512481886171259669548378047646792603558801860799964331385295587734467561226023881098641495129712771243137062143312447490179721491093097367201415230301924219368648770848649505619435371979831078936325941698566972214151035365821668503727610806735871381593373527366833555868866242667661217047501979758097844015121693300682409598036483508668369234328555019195258570197379799219046502795208607552785571703514679599384243428146843248853997287361358087599000113643750921206528161536033940521381240233196604270984086290041797461875511962374991510926389100038514184903584738090856319119378356858534916268714861279962234632852485797594141085839224697587234198544138853056318750321139813598182547122188770877721077935102802166383109440685754456429320905021764031293082303668576924780503893221441041560148564961967932148642229648548162104249785852876923846394032936803077605694091727550672672163086203077533752057443895029913517776131744092090325836272627403125175452749698654883924534207789046128927655110050382383860256349488555917953140697023139931509091876682899177555913305346415549625385290792630298371391907630052448325207872367209997530994994431615706119791417038165256059959710535593933098017301115915593363684312586656730136626077651495683549152858918038435149493059983638686064173669334098878976609571539784551380816452141199849104790910962756400305617451054197496733491844430389201308938270436340960822894650424605727911817092155053528376400234292333576081841089354485408492105907320386875072288550627292500666063910490249001144560300225617308103338607112803465462992733879083408912333507015897577155646810203905381378399216139719491983415775057724035400577119610619840390086501871263950188332972642517147496358721245396170378487734344680306769424334953194933874004778777577116154791419799039795767738065207161485145222074051359167437370151401896033136825167443900871447651527627524716864167056550577556559680551045073734812153333626904202131522746402900803441663494040477920049157549544983444916676272874390841589239542449146978992441766669674868042058057164891576458951938691378292821729063373686854881770019323423178701117027089464365600204674571600657493390712046228534901427232085736154788435365857352964014437661593698386281449009395299685203363411167735922461237425113117721292002930817874763387769576808217145071180715526683449833087074870675533735882691855731896895879773772861868167577414360029201609151223047875779613906367243155377806885613706536316702320753395721011966762139828049152129447765600321239430057211754777816952485898313149207905298604295135036881917533647069873414530471253861531957495532281175131349338305237078621225385765491791227940323840552965822696360218064764023393998836455118823774275702464695450552260004017531967098898162376173932153297175877170022467005631233131824556680735965830934000061399700984413747272141920591307351537157160629813908066800960890779146376625154051460404742468404273458461297193183377959367684839826785124136680958982117442888241137044371891486131860796936323216414830852301976448028667478226519827678537259830364873496315463463249563963908051182366397106378387910061228787921730151119825264019549305151693842705065908586540682321561150402446555749330664338499053002119201371335140272202464643608001514728570677573823442453742222233997075898586342765850714362889288753915935939603376129383073046775639554758747667882597629319410492621067924266270248243070893450307943434974195773948134443988854321957388630368929713328565172448544344288348626170772737353611749643373733173775145661375761565034965023393724737016126066107209789147677362739558806193645806400312033931468001546725846085863377474329942044119170180769711897101235853074489157558231345164483809746777562436215132451305701509267947506204733086599022980299458529721161701869634905154787188419855024107259256468208892288482668716246230544003930773153075705961370754874179600391620444680177322885618387349459667507804240200838331794486116648299520968895407207274701679223643188858643935140467892217932471586245958029742268285670600227688864109685859541853406444561257952997694860648545159215827021731097780197662423181213226987875928086475981642981760522576570750120410152902091294696921239103033782024027454192543545641695182762235879894534582686378201274976113876854387165415282056722902418697326016447921420492747179721193714580999483530688605197932044006271628961925098060267125587943240759741330711696405182205088732244188185638263269400927482936499349486369224244010235325383255183739191455962912781947969036552580887250568343301337443129349264378014348217931910785900443699411971410279067896465492784093691212613034614730564547001682435734723394128020811523153300104521405060231751343033330239396283860262185639385985190181183556544893704156928015078307593426191607239504426654512350363274111455690898760894776337082044817840032663223911061917369434073534642157477607832873045587079425762918465744007614536019853988389996441616228481011637749964412083601876824379643625092151424776736559645966064783418706690542172155843534413683746707098117628823909525173203877693850775783800328277326791259998939863810809412318200111487529098269674324740598203986943161759996439448832526659681700576283445754756188055068905628286380349562060456782293751143448634924182722263655665706160195869488473762683724019553343469506624482317346335417815149705315127380416660320052304927039838191550400598171941684041639955297263010219676064111312698087144483350650189336125204103891719906783347468542246199822818702633158414579615283088392476970328010240941726899821414076061864645442721151336688393502098829137582069822832098612390716666327897302504790158328683922966415768350669681382051781784171701447658374583685623883499820171525018673697340778561612748081803931925024314674621998382829362060388100227999555157757528083265339361789550596438554372852260389488271366377177781983368563377304225030585550842587860044378311723304943228003268203355468027243525026322883095973447092608535675603957401357122840690132389444276005419185424574073932860520193934626494293938726117475383264471513781396922067789668854501440485185406905465060187948497310043667062762111842707520123087655228516191804978992761529266048628212105004012074684017991861831459418572513654606490044864963992655716775373437279342641574312003410435393729918850183656318463544478617396068744886568595999810704413816818386559910085624872855259416665941635666468915395855139389345678263251025675878268899321842347468161414968205776041986724020554184598451628192009844155781727959422655216588160519362342088885421611873642851813368579787695811819250002729353747000741999828392179009899835707688976977850052785290018067850297610479591772912681775286470650509028858704264006147072553027839079475759398401123173773979829455869801426983737078173792589869984538457134199126372665371172177618103686462458295598852267372184038706053936922771960497283932682554931570256109096923101422360875597900572542197570920864287977713392285348483406990237743404978766588479332603363617059776096397596212681334519321731008723738197927749425546833472997089565945967659252893674058692655029069568536927280284006872368785781635276259880701404646349337453770741029305403391700849214817400514991904442865128453920010390062791034366783573356500281270130712483299298154326747957630750318104004994307833273501487811623067156398412945935985214202273198436476976027407368300472109690733106162687197977580681011384474504141934748574607797755993724901908512027200891576135189704373912161519922651835591265296899389482059734980075373948828571352022125509625771805281503152008305211265683150185602857086816679552949055226328249605020339822571168343441174122635932193256789008816406949822674567182708786589939788940994026195659741058872259221466225662949028904363460890181324658141551304473653920090591393749180892029080834591728526880616913371176531863980189998250905904336903103867646208956711496078211295124400795887716593276072850399824109119270795610338267398689942044468928621194253337389149375603196978611362117099358335750677677407714447859832922270117343585125928585591225393574663740865443373712585794223463781644357558177676857607469406995357284542530371856115774566211205487328745394844856195683039866580029513302462448885878470456935943806841443476066679751896284742596306092591888293900014771004177666303926919291965164798660850798095898651890669921040662758498589865784899560255526153030172175659533623641095958694774661532410038117235735659810420704507264591997605896193643584068656082006701997278024753229415109673772505422390990912884007158026034968517377201196046791630438252948118941020565388132092567357075653982465632694630700327268239258687029682930785262835825222107317597599080198862375631326821493037028629595258876454130568366145278314217577389444611315116836327964777186869897832065611961113489137642147736296448033955672850598723552982292394662674119507313824405416279602389038249632064739055549478749012041062290415724881802087123565245351863339639657531468456845564367270242053975818831510218122312629615507080579228042127426081774570071220668091578163735546919649936753412800927140785817795450565382808303796366360213327579319390140191814404853634284511702201528820766833601079729146593898925318574822931068071611334732698120462573887296213994950659220485640154823483136078972432239086502932196914574939143576041875106708087191772081820229603997325302194018762837138925396333572588117381793691696690456069218741791461845802420416406740531303199249326945459970886367389597614582998987735296561211023216778016781032212022318873616724565368487953129566957323318591490117035781848046558347406505886956514768333832523949766443003897423644082328529446688730243880326193921578566934470069492635652216598616557545450022233283009970696331162254426140570440313608875981644053757242515024706374024629827560510647193077789539197748802951206651738364928818638103624060741775294440050881481820048720491310929415624730493791185882331609127508210011534858155420801162764523396667898438925821835841963790221622244097851969965477063656723791348721204626818374925963080149596593604741779603125553646858238490037596527079984338726703338415608961799513294815601968841786872270339827939935438100418659957252766249903287279769640498167386276655832486601853982169971022545194840938414425652009526365121897538204089267584430374671398046810436379518889662009306366662703500015398310110510502117911146514953060656323609152814223402036744230662125827103049877708573420409749993454839834917786630930993871676969358084848243442788926165626027101611629020342321139303585798513274972475773168750535174031143026428183281449417115457952906103872165912256750717526916017753175334784349850952141583300543162233517926911857562769410832571932870951257785929552990246868357130648409629461542293564447542561145934205109544363271647547492623866864339208154566024201445173595087897760540760656546777913321125218286858198103424419109027859375580082978105179806032592338280997644931623949470098907465098673545437534576252477485268133680212508419384653561162447241882653862578382970069385333626268469451737528968396206346026317335368606615160670893633920976377806378735595891882635553318363722102518121438174657933623807276928056252437057898997243032544154103948943462486058806998966829196449985120230175066254159093157527323307021253252946111713643086318793894082524377139881019415164170120598713518501964454584356065842943877572325301737448196373255565391647239404142122347744540695503715278106690704120923516621524946684011213768734482585874322619015113028214871767979651982975810268055258188666062210749365097709719860896252510211061241625740900728241455360189302226720068196930180060737927728344471554978939986943408824969111547944825706588437378775083405348288875717585166105936149063274857414339654157476499779221452689495205006820753392976552050423969642543809064528995467928952825639942877676543746786531805472521162597540238466315218718217436237987125693171459153126379781525589718168308035855910386399694779936032333989271190056812928763588289533353711139953257004257115991524119775367105058430345642393967620962736081331037068135015666953390399275274002420296139141253288228145047305261257624807661528624568254616363199467188632010736917903602795449819350393808737135664338547599766419459451905847635965821324308211907398296754814076531097528299251863772586481409244590817642425756584494709177441558109662714645683481674805814819806179740779610257047499341126455630862966759721136211493128582650732847214045832539945335698648070089576283646411807220564541198420489476870751189686903284520057176124677572389895936571311139217395321796121797483796700212663476618978964728235072114717048665838026358816605869030537280690903130122978874515210488209914908568728778405694917827914980203152041027847202443118608935869742452949224504034308225039255547165066175650119115144523401470064535844803623982818875533820221715922477655482186335462509444435757642005605605229949669575679570278039018884906900234211018848460315654365542783747951622298492798199622630939384958527615459123846136417085891528991947829745597077058225491791977951829679439540977611900660477465456425301820715391468371815385274192508109773223677384102603539887649769133557243410628635428196729111879483832199890786477738131030250870708071384589869234939793232629323465903545690991457044984653688092972052384621623746176466931463726048163053570952731169691537727477999063210046110344175492662612700901917656783388235597618631553806908269534299242431121489227925111265841655527149452185206609752490194235920775604584586878547870916333108537040621074427176365963384663729681967069546039732787472952194131150513832968600489299273271074774358193497367057820632136767796333710875825638615340960404421833043184429319918457520036755445753605709842101826624875584174760860428846918779114614660489468217357079083022122101195307044425695687073293827631924179348930030718876289571789688354617328805599803114352232654589725261028371522469963914956065052333871230052887403598328390897016395676906989023506588194660970566020824527139554191002755569227444087692468260418448068743313893250908894029327361988525905834468951480890994678111820202339489085582165804313503882519351476281900126988603746603910879832152813948866023925086420962636530305735253635581117834819912158073860714479555441555078587191149624131502403724303607998632566690626793792845291104208669493162948876022086350435735208892416594221741160334214342746582252271502444890837097197994472749078605304772627015134709569003874432392906654441069047365445386994092205761525295396083460646979023926112242646397022809991969023678660318534789906846712801672962670824410812296138869137973588639189399247397264051904308144584031189596946703046023053967835807879159084011419640377969863252008643459991946007501966726436897278464910240719476484224733756298951450795722933729212462768168476770509932423062958184386701857423256856759886626709015555389447456658852580017253162031499911774526889470284309762496158243094078954004984273648265708933979887345698176337845716174992354401196994586376127028546644839014116830102811969069880995209356086035744113665819443089202920880416666241656733896541553031151411498050046045183824924365546409287010170164424837216926190467796427388595243424396716247298744567629198577267705062483141170486570072650135657707078160845338648645139000275423627920109802473165180979247402979861426734368153374214036848822340638807034287123156027321409971921819457956773439756135480243666432396109297005468657759692666027266740443950214487913932919856332581991165538876267955290164570131394803673965502766442046752256519088393657262679568613358152133395293088773270372623018942705240293729168743966598051709160491498810451136426131262108300747613510126142992181101576812982611553888243998512888844383021756302129146661975693075406879841972151044606046217709577898504174670105280972473508387595222352398243824622010279668310155218040080709603152652789039845804155658594524523175410360916533065795098777762335318484689951859097106617816636421674870402800546275919343204236111205198462412220875367926837767612947914377282245986425976740026518553801363625479069466463095654376459757117580136724269347981998968040702438677091896160319895598884183745948918668162641836593162237695563616377713759363023951784156375000575639269228061533014432898171462895911983993289739210001711521369020929916862438730382415190480305480089009105650037471715300161277420379530910720375714788715091400435285355468979558488041691676057281213568841384044195571536939977317668975637108892967032982824232859687857955687521027795073138057731784135675634958927999810079199517769685140457502722228450681167743598847478442310223155420411405874018385696350446747051141436524050181721156551594446626176824278224795884740764119590519784631307654267744660534014266916050920395096350746964999974850944530502123329242720159670906077193779714828965766590423278443639805299515084289083062986327364762844424160781967196979558766362748748506984934792357600751381506669741013075965997811084031751802990198460622163013561727129656627082612572034221723734641914295949508837368891329438741674277782774709578807181708841225816544644229514383640505618600278824230337533456758088699739699262231825352832345154721173041226027698496332930737947454989234154168099570253642539712502200892449929220216450072822321337594098681956448408659583942789104621923583554904176018549987980706553871457642836035685599581565359176826298706132504400157077333971497940494738366013082677854728773815751388094077783938661357321739753528000889623971970836853284997917658375073138410195238102868639472070880792320136074147517955634011190870253384684478425959838434806890729442435204241846212233166606234265560222469141124255464164428046932533236937722294506767398095553279099113975156546005777858517488083292952165231326213458354773992248366348134454297474650725006453546804062542416414356003737473098635770954460090791728511400637413001113000727398391874507323806952154363082526748082319070692864647642539999775493370454597947360622499083695532495951600502979708719897119547968398629136446431727689435771138429281025531764768442176480543486720869082940196408123267668765031110946536959318954321573133186041539358421763873075249235659164546668291903121837833958423982046919847823152518074556392806457923987340971779877614961756657392341712752710925042993091314926706577873823022643763382257853427284852218334661507726031900960004912870411896451439260876184671249790362903089003023930281858355069946724244228358973683422396820354928563249756367312180318150327555992841422801534802288644902341248455621616612408414049848390433141383470143656108261341554842203549334527512056797411756843419855649730490953550331452780272727375967218790352494558314426278376893724725649962783235764098183131579768189767732244885667061244764383869256493292937486054079654032237490313816147001634682104788022292663903378265435474338314252037485483606251715946274540243787198326772985303818122491842309146885590058742764587699233193900116758323358179804060738551711850380611174801354161402306358912556509324702429666915252408230319931555045972969907334970044431756359129060547829911258363180053813367801401047393003404057777168110700657786193103806476196650468732796369741600103039408781024347872790903844810516996251751267539443245150198916891600493109203563120135391109170249781224449263619848102109739156897745639527691340974057938862231886109098064024433935182913045898632252949875376242556072310381051038981021136187315639508938085433314186450668259881835882122977989933606094891990844308087040401724938758724944020149901961747384518485067540084546854538084584781926782540072399774490978415032169198549811746192072093106123425066744689947146707621589400765395841993968214030328422668866151333990979139089025361959891609390850709491234847619013169616065775352924035701659700173562952858176298913192399055399259710274672057474346263022799697995755945876052225645009039529265269376086845245672596752112413584432331902775033278603828152105944714067636969453181525176680329405121194811390588483574879028408344196636353415822369559382931200092095966746674827599358964198136741946416197984235092866042195111368657978263821593144206532189092136857176749610737002463624246323280403025728720086877669988647969908527471436017572052237854641582213236600791819995541857129179705093152566853439007947373772689019874973420369353478222570667702385224954774913546251191061175781372806309412255138773160156359992294469094722969777088230651480150471978251649933166616116629108683608952298071618864148627742293865623256042029475063064430253066397532388478975890114072645557337996195978782904897213822562942571612917078061383969033635752371078202833352339405734653271523101326461421659350178044932946787324883228788031878440170726512492019104204318991344925746286505775877787042675592784686277526388543027369812021431297750290861820038720445003905786722350262874703965923816739545508676727004057796618337694741106707464566690120261826556371165095572081597891531862005958180747053226167792373310511273622659077267211633503767412573007976183375832293549162075033112358482866906082258518091580752436404402149425685313278875152814191915426213927254804480789297025012459215572388072308014739473440130326210180042511875376524985046193770594722598918509956725273568726202377841222520143418994129150115321461419556414194547116047740267871751425388745872994724407791229153662797876949394257792367108432143704033165093634464586205701248947069250457247041301242709858593055329363711545037258490172453518296140941736512185847880546983627802951697975148069400258369587194349778461908955267721593135147493830155975599992529449100795104220405791898240856537162543796988295841716098340407116484407567135128471863342614016040893385491999587485350145378248094151351172408675285887158001351698668488774104022185304245373456270732965550399455706995800690485645191324438901533326256761900106987249722274403897289947268623451313205703343735482262945372182602083691352374226636732908408642098002302671799453233677236211193340437837997003975226978018837427105822725528264168114201989390033374686528375759541733422780023489645963646596308192225757743679218697226032827261957132131357023046848893800021065818165489820485987744406268405740834159343676571238451359856313376954536922291999168411581762800793899489377195487125497503257993216063795683406172883123825360264229406577758665073501293517885356594408231817969376041956195663416484989099228488202983454020423799240777984201863682261908329668428960346683214073480325122626600789517942586346250667444099056507792689219964149046764346706919618564284859056370597196785859567473559224246310984830546854173175880410085198215512923814584803455297957381440740210187862158908016102819541699068317182400550090410908805348780243263686309883860872253681772302887086005790718575664747040191244193461722670275574050578844252801356040593458114834974160612306053761415118543283876121951903692544560798729510723097094673445524037405862659739499218145284652898277128733024874538664395152717419410619991325026678443724992396344877424732971625505145846217618600217198942001131794552180160431745993215400006066687990841851590275511846066283311001448412753359048111033225072688774195366358310726847481100165168059957253365838988360983223914166527472405402934515818284797983727589283356336858473809952580228341265120747362487468720360467921035576634440047966125410705058896945473847792925852590307366827192139756876840281140434752609442328955087812223726991540072369224542370659178609434871246094962022258332401391576467262548221639773413019528945620453746436602001687022734609512964623299363391745811750773399744316167337190265143984652360142028741443055728212708780699684815127739253694228942568240750995113429189402556543237171180390431345001047660567981387311040820835719837757158149779420827813882261856250125880116677152488074235272249186838928231864973681271708809353859156709946705884324355377166917321039372764281097205952015363893691886912577585989122447410074645827766792453023203599260160971386279133377256285739130512842984034757209306324546651914770349786950916507583334545468980422903755934160611623949230409713141713878906733730225179659406830093513907630508268052276163381461773929161588078195805519345885155549008946604255943007107646478749300083253337325603425548543094393491126412287712136872965867248673638852608836332025446662894610854677892541942317984170624603009111632871945725927885242260726231544528645610087131545161360847274857487408810128785689899346572365936137184707604885418298460916168418803127043995043557871856309207408015217820878655871175233622492674927666582403905636171305173560955043789503499699250375692016998855965585830998327832746480965528582874189061665120747252914452892638593939093847461627809045048286767547701402544768315241606345748377608625303988338683235401275138414543599506959714599685722095883446255731692474842905985109925728331068335868181208270082975819493755209253775714674804734691597000229926863042116490431870560604941877614374079430251212663159180448763198903001233842366191149821877149699983324279660053700025140072980579637932765782758829807429011275938930416735313448301807677501720158079708274385012656402460388198626401558351927836641259949819853842247539414124273554602948200610951244030240739409727133956590744008218849155216205424767760714813973363422425757944503324218121938833453925180830859551149556517082133916812076440192623638924571689571897283011141034182077471764865748916688873200116576873446845710755927762462066657475216395897310958988193554334500215936243135063228410174215525128062010790796832589013850645876074669987120581074081615881632663019219546794186692526174089296640477668052305555091782867877479811021255292632899421441760998751773571696561783008726342464682470192907666121126712672311383673563887291660425988282615572056614087452099639520023887292386965900540578776503673131876110327426029230998147986095052254457304835374449810016662738096287528345691768248771854551253983789397358156865768569052355947072899901209835998356307421892675360171947539025477162812083733140604548654312930578875082340892119542078934449505794849159387528928564799707644931382551790900816358771882448993925608422175041033824307666974676494041354980672296455642431780649380917442418349225562239268410348112093000774505545220685057711305390617958193686648711343265680403649673430299341371287733348240316556551178187776185546479657290632973872462801461091413009737843577475137537162536724078070761538334084518576035468512680360928445595442381853640501788710513253781065937610972083628209142412622944562057097588362250217667598791784578560626161091748874035510915830327475498845865665294281185697717708395045122326928769478969723970754450673042121726780420119622950370753449564810101381209250760737768959498123822632507592093121919928535134931114691746610538434624236300959977922603681938924149773668057731032824727548096983045169354981540027254980411875751192980157551225197380593941626624583599751658339015099653473879286816975388195888699092601331434771896997156723414845720867136954077822095119401914156204066934865127829537482737912080368080916442996227456389853673607731862935615460473201666319909575925358554083758788771677182520974463400581974634719735991568810574301230102357901534217957123771688668414401692926742949073814897802428590063546180907577284638549332665824617243906540158146679624280007257678054904545937448776556142349256851636060792480312419914876967606766883389004864374700405803659568492955823465259613772069547589397272992667809566341608147403937507046976528140712692433703648274522703246296167946652921319900730659647424292697950333230362613092338873528016812554092807158525122313705354622779665964232585839706827487303902635504537751108340384355232509450070078670287173509274889842313850446426133634304393063190651956204538453296416712697426195922820315392453974454378100418081591194807310372826003736313770166552364937082270289086607048438718885431945823394116015137974329476976255608206340904169324427989729318976142239025520467455956712703146921948067342147608454882265373130211877072993256023001942566031904859594163717617522036235273476588256322633578503774281249688383709979767966075190680095720967408081314614101725303444832481673864290558390425367383656412775111006107362736919213513170792972079362505789126609342559458137088520159226958853790839173090945958720747881355904362742714134118265198007233414796821016046791386963753066527926631960215547967016657198461360521852263179266602282808716511424143074537472506967239320855794711549418424218526249802001213859084805693352233169445502634720268146702158136735543480055214801306973056533960057048693861526632306852329691010639883900978986822325694507579589231666647020566215841548543367738860460639655094264072449907762713204964529862386222835797667142797448946342247725818718336578453851685838578178827490801221056325938664446854539401154833905510374502340472873925505039513276290743533288698817398624933061975937738777061424221463023656460544433450080079355745618884355990611489702356126802858652531465549778990037403437400455786669775210938911718057344141317254165404560027195342252367148440893932417122983844424805629536973587279666694879865693623484356619051326718914482538335778617823635606279558639619324583268360043268097329804580756947269775140418144837132643423028263208264206038092354405122086902927247873280004097495884559500179754221281184132123154303981799650627560444560842179383033559197671988371911495744765464582511279267391126643708340282187493249760691288501504698279699043198372255632347788531775215834388182501999740755419628622040382203990405717409160405320609211753091542004913261913653739535369958771805110280211334430012655022277694089264325324481455596906943424093248011076305215170954200309941023541266756099024244458141286327355151403514269200053129200054005317964918832364649040268770220059293916576386128444163787395738891395945006778698483770297306830023877836163835936789016230081680913655763092744431826984952787247290617608053888343107406269691487709310961325100159449314545700304537546764898799029716986471174622950842243087158608054299337618476162429035548331393805080326694394538253339133347054974806365049971667595485494006025359996439024554843893012793008017010284876399089063842385319077191632409764394994734809878754423702769545874483545504840269777368567560022117704774171185312553212114963392200655161845317437067090192933967065720740787021334510021939847171027674540530044908356306059232413745537278969175195173370362172930707245493016789385531729607335869816189811655698171965975417902119805226055712593538622666019489814061498428206684848794290862777356213104206501654452599170954465199939872039387921134459753359093474018058144753685215922383120552964489523974957426745642417769271435064213343869018164834166676218018029184912278612949106058083014851202304340837002931264479780356803787665435729888042199731208707706349001019989378866305088091117788002959489740067520380477629936683150409381205635161976313390032138948311499486282937253060218105861195704182989880282962898355535046964506308576863267421237541082443095627408185760981257270372076235771348412612061160775724575249999562807867162230464881323106606498871940482708283804191976117897276882336873266729939712384349824392786552136010048942369489642958300122525294823902505057148686312726668287168583068219914901996048010076058687107014445691409262037587023261905993151227866297107013030986674944348370975343876184668695130137037704370826144691202833182926654388717162208675486032050583726310237647797130414861718364996387743385057273957938658251984427217593502009166878256076575139202966819473018989611047863077197220926781982415464744990104207124878909791331275745003040396865080425454039847413872564403049401845509190082919836633046299489448823585595125105690272785020163922486131147088685796542791039685289155011605503598148171269331692779555413190593418871220122823170212363261695859719470805117155911960215811031626073022682034797991253308139061181726852538501527054345431767784371129995955589296997538127520754583820455898394185260226910553967477387843127062177944516997478831041772064800229538377957869155368073043335930834868177764436736632018681678774129786729514636766213930539107413749193738243171340311259644488762440749527037100881884706483671212674080133567842127607161769503796300082421489157996002893896816171319402272177360383986243283909279628511395613171821491124814911816401775469106209884025690902820415363158606624520743953700419934492047036423828474722963293907588497534193497421223540914002117567569331586874893632940761331588252882011225769063740016172102205074627222402795386501717285752402301928025498504562804786624978097507701087904061378648913477936753321657872028551314046980175669553740966053385910034952704593026938366248760085909210564239244319318322695601787683261952812538746682581635333375830281703562748116159110663667112043804891639984910123584940564429095798431297178861028162860158959774935645143518030861681652575435808454050204732491440198412727327776672422816705269248688111097122963314390790101293499790099438880866167551135362129581017087461341710859990833241481380151407792024036335701978251803078635968532690092735784710781529479845919498327155707420804594138346240702375696037005570486471208233284834494984650964690363413575893724046042684625287362748009920589494131917168449043574225523382270625817164472355749847802249243533685369647756626909358209725773982883291123288988867689705838192439096632772089445275715560173436742780739416454956106400634127402762043560219406639990554908729177760738131556786655845904841979222636458732482702985837495783234785916785965779379004198846718957501646875406416207236541767777902671894506415349117825545504787127737511385296601414485595017044687593301555569681356813691025473938208638568707100831236060143945628935544580358908291286055545730386096223847138879180119728399171075240862251982508657305426355297887607932965183430142236495216875895484927413478930881074971712789674900305627462173073574698125527120813716172095466905907334499181794995343176398521225864473646228089784514660018181412549519421452414145182810209245810067968803357949537036245005007004345832803158899243014311655735594427235989351672265720941654874704395400633759332586508076402719056839832185895092248976787550548202426507734555546615246297625482042691042096539122340392623492697504435362313417292562097178155983674187886136910971935714862160352198717192569612768614853006850106896219547200957471283096750513649381539927634928604526110902169405214545231474408209005298956627985152559865593242704304391626009956229230550176268581731508193189671960135553022266030794958729199743778534815801173282322498329061845125762544362470297865847079980908195897557032771253356796900589772090818097709704681512930325376828810797815467453256883027869122168915431994230045941033918452750536625011517098741990333968046602359768514049883472817350240897568762502779716456261779281663972514767196889943644212984038014057570576675075091101302503747330285387962878664992874484003406477720564266571374403801777014189318359718076037396216949425817379534568195286821016537230635374536908937812954220174481602945358382756205883035213847918217330815665539048021412405679236627336245529575354620916992502811956655505177867527919333894270088016629094128994974602127155514512368527160219958206451514408356866601846933413340292387978280807509017625237518950925364259613409340040048825053965883654610198938234601054162136490450780999745052937659704284978605236771981163036090301505306705246963163395669108076522716144245924987741023801541552716928856221292715020243642468751213201483009188461431223290668682675622357514672987675420493684600559290738349698681978713273098350634266065757685954896369833536114141328698888489119382535125573738597091373831649991030447256581231738538536549317789913807082515120925724212119818388482620148254432575103195313766350395719644472072763406841985106202636434956005803648585247125211627413988089759862981529914068520130177014442655848023078570579797254246090981914977161236100528176888398583405662778054357654136984442658093426751572905647809062683106910342959625813593977687052953330903573350289109179594408632447248906319927840851361805104556558592135478060066345283215001570285988503437895188053311731336395218522357351645604661647243508207798604831035793423884691056658583956659092375307216456848135937629709616940953121709889730928536799319948743344675533785122760911752944112798755566132459417806721391322516060709402124867540676308737374125515139884972215927184445654733745300206573302265492736800244512198128346366343758055300889154211018646417706043732830855113080236544569456183408123040330568883875699616535008499155194714311800675396434502433151057934214995398879257539616644192642896466613184108616851390470595784954773234139377345611613828708903619943987298186333232492844673551690463443961966513303668137303024650537483264205981818677244958000924526139455182726074359427289135504802741847246897742651459024639780764880693331207432718241451364234538699733573363342594188963663943402458966821797691086872679635804699771991523778038165818611916424805602512290942619342096495810034965763642837460849397190896624030644936350359012039116745907478040575171896608905998704511046911868894731250864818450984918880497145809975756560953980476801592848725281405584356615683008062573752705399268314568744887691381807969989936646863135151204701219131236377043418934117866999553745982981863468233342377104524748743510190991609399944190884739867254928284062416064763490383073612964745617982393903218955607376730323607198693448182802491558265064751417313266179126098156141263563176795471037846877701406704542123833037254001215841073455408970595558752917977264351820086512575116817722220474948372581975925609638873399207098016147067487235516986969490348011204021421538608348916630310439873069164221914431442168566988150569847617605083920290464397640122602086959806355590878188075042186302260261880031262891416465421748371307619575493929761354652811969073406414749454073971716726190435076413018345060429103344020131852791061378125194581723533219631241821281549987375449281463627829516870703548527540136231674517745364086021280946259278932978075014279685573530643176943549764486788481592371319922939918761132982992853822633304319210809366934606280149153123449258262474040238500189667738105157083560030314111789974345135347002972777203771847380130579934704286705962795261560542860183393133177597324942571251776768077113163671756081672424865013774684984964899593554894364462562684015223379208104517185345232920702464602623129118427891847205012290868881400411981735434504657579134947210263494271740162603730522442047953775284649655940432399801056474904047960977264685211279330831321331807765615660243605205889089403026129618426846392482204561868938729845657857692702080747258123717515755725831323273579628193509415057801283169965298111364040276011025570767666623842159334844294656663060476502188819018108578626945268539831100253283414023489705928626002068626304909454234431462113891375435792833399531952975353976300007636602713914928235911865653585884123139019911024317208394470690418661497447706270976455783237751583099422037826391518565485074816971787063053839293760479630587793243318757166096538040038138271760247616192337852859470789726327065056980813190344054653038917050064237906096946869247848708360986551048827840546386452366770026498467163090678547164007324503653398674283179972357056424940092171053578704093294587497166562868817313108742376469745324961982076842394026213714433456441245600351361669494115620666562396594839360094861340241835626301689547216947033480540978327618183439697200659159034236997258367093456974415682873179292077508676502842392156904757885024188546071103988179387902975099998135725108731269670465228477891762331222605462913479834192603713603475751695568241167295229504780114996610973961180336044073607661053162895924547478669328744643537696601132562949692024298069792449598305331819461137167438209995716435930178650151743639628120169268054905103002666776192747414301777908759517200004949543879378517669676858349192927091951056267362565484348415056230735740542877831658665210476944633093439672049088430992378267353757062979563049981226118210450027437904415557755421395964288512045642576030803529091443818592064111208970375213530805295590892021477415370209997658245924592873986930663208393110919689259539321648808570282587304652758478743871097313948841036946222168444466430387834718858598187855702536678072814147205534460847565147761207452578086372241592129266065518726565013059578383326908014953373493018009510337508467734272522612734988330684828497525827369286145992233958242475324855094901631685956757121149084582172140095534448048764427616887781916116638119147924117242752633336160604553959658800471075283608937629391170872566155903740103852058596017531335132202142620234518066652621117670813146655643073203931018235722698580886794896033150812072173380808171803100535669313571700861358106153186018238897855622784466155127401249530270147939382187189991779659300348912460759874409668498993467685358207365201087613059897115618688633710878861538563836988472666237531738728802210085918852334039914012697808636578979360871551024372995281833367903438622504357145066831304083315258743483690195672642727733397579547559907763514702533641415172587235616426510086331015685687620897206329106040157851645462081175699028988652487041419174828330596754559478741636695929427647041374336333774542225865145063789802212007885125868696897608498059638859382941789317079392003182501988548711418838380293749445064160603997490364186545104701333130996812149914591486984193775417762241038972299941825717434067861052827345139828490039759564625071031547982640327846139188917344093934583881580914569837180828914982628390452904426844621357003129485606891242941479963699581916194673277270867680295607167484220714443042212380349166149702672488530818257930138050225489666748824122665816577553626903832302460939918068175210205128366353906225011848625203901680955336692121191985853252874711569103805449150003703718527269209799833729382202236020634084092248062177461854583984604185614541111372061154216507169309599136950963358580144490409161062960685668327825276893075323161056097551938982526339218295806549873424414209536476493770935655099431041675608817985315447438775975401692887482244756774622328991122527754552028920137271052509285642407110456561270885309140847822953585172865223505020447900626545942853587261300357612463326897337068002938731505763694439264475559977468967159811518701537354147086775678655511866991334337820312720261557864076799809000060799745974501432780813815941701851503722396934777541044873819789176767306936308684323122355085693405425576524779389369389306716188551411046169815150223260641716777658221930266475543019250859521119146018533922902578058890465580926054724187678296344993891021697474466193647397281897011604162051630150998099105097914759853455666533055994979519861551379347864764144547985314368665189936516308365863416632078909972247100076780742584581888592406979668379371852151304232038831085197504398935933976210994122020904767584421276753039096890127660032765569000216887078423251058064433994502619531525875156172993321192030294191081030338788107212828498117002134534208591210322920637229848248083224434104650714324911319935206294427204945906300722812305656600811995681410704422767780996168565271759185523944075256444426878914340945693810708097563270249667532185044771167749627110641135308049318519147153501378062894093742478333329448970523618146013733757954220872268340852177751625825980986518778277774795799985573302811836448672715665181678959365903910850163471005738456532853052863545001836162326857725714842337282174869447878106290313130759125563622794329831737779272702170445661083972186996308492158618788738943605582585047801665265320282937525983588917366977178547496784297043108576201842471447315860786740408199517891190723709419307317453910033903373631505421647372212869465686741463698784610880438049510726026223302390846335394565675077367463513619259272121228412506116692844477789295723886064724375799845436001325451521507299812811080134142507245922700074010295531516235532343896086447785732754353255113957776922654973905131412490870191180905461536500480980102828088169746127125109900470071639169919619539474674173659471474155293977154666404965718035294584510141236332953941229512136058809779795368871069936874555742601265377906300922527029125940145670771430342498494637213732479251728101230949694025980876028040009648794436237346804227049620182865921350322791627013631319245041009179684898706991105395408359490343842651251832153147000054683487812605392779754164932513983806821081868190143852447741950460258623414272471811626826075451345253387194394820326645784815278177377451268733541193761169225679668849115789685332079092373703094067611648870630615777574188576154716137954589900698460932306475982373480790240953014511601680658871471289108201628324190062748253954621655392933226239520072583765059445886270955544932378164527580153983042123282902198586486356793287559365139989598233200578420202842302712958094729490626883357214662829681811009656757204656680721031560665265984791813764818860933482702012736490660028289702504487297734165411529303750051355694594795435614173884884419326070092494907769529765464254794570650823768079129540229256289344325152492601361866165616198323038500084152369600481893459410399711689077242278502067602550227312509072771330882845751623393806217646049642068064154915540060050657938977948544330420053380787330754330351543771392579131664077956354954138123507734905766187082867703904138672642342856127364156339439589134930129845630799973577968890179446140244516418270434563566258746037445345609081496889558102404326854322821629067502132066298144911198269304404689652633271736577042422885875894151107177465847601092789640223751420284112311936525258540304575352580018439797387207587821674410403079816020271552022314642103861677592590066880354067802262175637025779207345947150671035239047249513065014600127815526494723291597338281225139010658455935265932139669944372221142613868875491770541588846252876445925076974517287534791282784522435013606201754724445438235012357080554207584513082461686232665894337698104136078269010235186910343469546617316625538246283920814056101135244737220908549978420987923334641667710794735870573549503652487277838941591660870970184470067404063559761811405226004386861413699167697691806593253120267805942215960781052159478877111352772674096397746930568885251926565421318632953802507118477116115148665975835976000341898821012255639451813867455143972136191011489889985030049855222211580908019193269932260558682223414371405708157091652821666659392016855875890165773598263694776468333476168236143308762395829963034609653502055943854507420778267808951974586960020001196869594938935333741108260574226581092385613854406496026031963829248324619394513313091357789571274866581649690223039197033872945267487329984710528987996752803554684707565743126224469294667468400497850707409524847998467935295191926719035332357418166524739801598733194889581974019790749233934191961207272105983471913407914825103550966831337278377969687051045764881570267177822453192743258828592304921765486184290068012085100211852077953917066475343222923099897251977994963073066529648682983376101974425466807756379845308118599819492521071071550599416979891682443012043126607654370340990233638658065267094156061872643260214241353220454501437384403113765490642432191339036056878879307523174208376129266127280854228887188966913824580988435119142673692354330246660292829752378384044498497655413937226333139187773890014505451248265304861730495374722525892463985853601389543318840102099798366786965447355736591955020632730899418531843619745939380235677208782402475261532150444808655879995050413402865564060029798748718447030755257239796993007109017643876126291666705111299133948778682567372863211824823272790642007155679555960919208532804192283373878022026311803122819235960508753008129559560629760646965663647610894434660498903695677625954261353235284539900139063536450813383717566118707264806397687857795122188663558961457160514612098248687403847090440313755397277197563804935391140778043907406990217769053391697052138927110963090108435250700680084224820148187482740724990477851781268653523689445692297047507741029784921748686223396388809428182934006674018790813005441069472623472540266700995278493083274360427269758180676356361737901238819773092360616851856268318500066597670647571512097776290888114669803295096079033380981341708616166533397338082366312075047622043519355296373682555484284741021125527897754609053146747357465042046345746430776904149753847659088691947136860579710173833688304500722245271299350546539836776842647665810052463449940265413205459372416553373006663765422027621008696367418257489554565325642901895556786308562411084926044387597929437712835482562534959806328328852168292343645525543973673583813302068295361085594966877268159954402626940466696999818517862491940628998987079122286993480941326389016235410006354291027098760898940153640797476148100160488618178724137917186995388581273599443426074786914138423257845941147724941333207718670976390246085015804428664301302745855881298415289835571626181962830233575279035907060353634548104860820799161026565011796529019255697159283637324366833285645829943575457230707182635912356999099171796423204348283182853403163702246833675678300640469383333150644295282918511117296494441626554112795021871321868719326138390157995816748513118762564214618333319178949277581058482651622383459262864554422929218340408431842075924691691012631006796273882536489238893727479026034898214227636891993841484062044245708357355902751995325611612817469792805995142299806508885648704992474045690543475729318479544007566425666570741291602410299062039125506645926892602762100037023913056487455458963830757839352402870380053967456038351165729641421220912730026809709718446080011854739077851328837684880342649705785632709705596204393799212345083909385530753275347313518588340137323731199930699624986595903421048359303197025197112166609760808212436054845435913456986531880506333768948434456621267685884022663449447782161859323198759349277361934905282826936103119391150656229731372690312147802645015444721028085806196929571843327163803935451147454072102580011805650377722188103198983856222584437836436683756148660867334917180474439527367233039582390153121817717648914886806750288561614539326191533251478224578496231714423080433398308801297605317364130313988714215241107031731310517331079858128590798026069265588537509427507415537690992482210357322990918339302207308282834944672994130639898592928565326266423064413592016463283933086329929091499754113636976149313438260652712037788117272853853991234603793507028371268856044503911145512333186136931789184312959504223752226112266639410344601759708599162222690566212411290830820015103715418984308095795576113282468615257897280461823140386658239987716222860058983506831724116538414316631023043990656414518339671671845723182169437733308087084607294637481184359930120913353512113123695088550220967493182207370486563598316864606071092037808649436549979026875941715286243519959070415720306682923579757218165369148645193414192607434619950055987028044813178536399012494145146702124761959823582426318123741061057863216842952319045606103821987399235812709647393841937113070110446723307573697036729457068923116494852160519525143066953901782536424076473369586657942326879678233693015947952708098849084320854807156693004571108834251185633218458534442401614375214584236266940472666424100433352444676697441930756434478313374615705535837150702510969972037469746685261372665858606601843182634872311903489156472987627085667125142082094118378525433318264618751995687575642657708571760376805896983120065358319004392259405526402232816282724130603637289835609749069571903556818623710463945742002973981416579039124366738596154625781157076727950302539935492462179827929727901225180512484372714909045347195560232639695367583003593174785789717434231358110814225682096315403533910296872844592013627810158941300531152916676040644618992645651961543804602306957601431579875482704482698585790971761250048239659902299407078217858619040695068135473597160773115115387878189473806276653640279539759223182474464600554348003921405608141935744427492476037668982446172131835343016776222740380023342159291432639497167735330968431982119400907181750094815326917323500247835690745304859715495946534138106105140866025764793900399556035408787346080414276807773423224175027608044823316419975681592489434378554601272594491865750979180868263937013582275654344673076672486479538786278713513261232175677936562630719279448919762151024642759318950035272180265703523407180639010067031998159198400900584847042482445352447784198940549128040553690798016935912002232173918170121127003034910177903671282119672087507062093000707790118688235579948986206491604547096625125995212254035832649178062498879889500449956069425829556914743697532374833923632320446493058658928285364954515290248091915025073371179442741687999213649907272214518216915375389588989815436584094018171916635222982602712163686872042941932199158697965099653145559392376457406251685567333317895354657739208245852231758966600086498036262349194946207765514546327396501895021618386492766542349144484790147902292753006784571635496831416579999810403757640449665623918004851148794942781050358292246882042680867934264144549718907970926046838841488208089516911431067593320792510032351306167999528620218832171698243280494200573428576688489534046212429944792537110410408942411482599762511316036537520859651441292038696220340272877716594228352261061103572790437792644017958121946484222442492647970329068900346499868172945992752811923907443690921693185754155179585878753356606614880285802858349825018175274374008919696699113279514542449426856330178270153400481536067299758443924529455159558165340338806928266602763298592812917975846909507073888284903849638566133289984395159835760508586508026071226673304602671932098483506806322346675838086024933170433776457767236888335538847318542242892202732302770559787223872076284289577344246601906795920535627849375953281851212142857711127633648321859145441832372368729223084797759764529750737930919773848667287846850940931097593880760285115037249020656653618122370848291197239034807789950942188319914122810681522911346700830053814062383927970085449811771046518339675234909573041782722514794316936423367445903321228563452761430504729521524540789968344697141308996570102597940507799646054763888974315296081036972832335823237456073392303842912855277172369771271588329942591129521732401641132230179430135247119490596499586546915288348857128237541273006706520689157389127129420801329598967510796103547180655167336664511559762457419413511238426491758541277607977066987131398686197553308598571350444235048707621443005115576018745644835028321463172486966198590021694739751725980331199736885848608011494830697400463204522829277894936286719321801596710576642161542046370217333445015618037140847123813583770709591369557114169630404650526607530952022059917645286092199908713738769706134989102644473721274105651731565152687929654324384832676591848237974831394181136834682178895544193267346780230236173750173776833017933622093649059169067086873421654938609208905372557863525933946631140807479203330509273138471500678118662085722693148408522226579394176701505932209665582399503671634146459462171059560088402320703471313484514200530760975232162729054407527965469075971965379075158345655370674962163864599588024110057334578221848112506771838974150146352422647578468223744057790187331579171544947043367455965435282742688158127608451468675783650333665965100055024107756855519909296030322598960967916391213528126190806244213410569395757343127684860672287787780235997130060412422539246660236923411407618084207805773726354672625868460842213943630354496994179787234560208910779021134643237497374947596678394048677607142063121444397756172129094611794091854655122932951432135357952564759893614181339125067688012996127002435981224753184444202179745883894915547246038795383872344408756350227212663812225546284137400022579982233502768608340567242413915481678244939895219047449245127646948910073883673851979848628875789590910712725908414206509515910535561605162676070530715798044287920168687317143585530576942963704659742977634829597152250349180799965860656622024089699815399435339595851299209081126390103624967632939543841447624563303403536584847690212728615410449185011414708568397849562521124947001897517175561523034507359508016294709758345473244961246168147177065328418954958306681916959745610334254286597912093436715993251439954906341352343830983025862845764493815030807409834750419360040183726378394563657440144348470150133679031725137605669172643370879193823831998432447979286861704123569130147706875338504727009661675308269061312109819068147168944212523137188781543381572382023563257409278157918417848583641967414275940335678332709274161517843988130434153052571066609561563327569675663445556072664525879090185596713851268525796680148330009329858719745189485204741787274750148341696695596402381833730816130628044811992314662688399355335964013218651298124483488746977099779352070729908594513963632034477944672087820128890016303067680851845312438032696081360098989393826175908943974885461337021318110478167737571859059353222053782544281845817506838975317020261980642885220102539203010074643293738012973059271294777496309869640299240567983383584568660331581735998823462406517968465620261776647760950406575031969527017584118576927421176514611934486518483278951871424475621977887486376978551405136159401772581565016027937510545854864940217609409605246162771868637779353645747796849361065664861353459831705897090513530846613737757980223077148544547562050622729571989818542800484990362740424255308457211428818029880595290177685113840494143198585952029948965085686405054198189604793058239348680420164898086943918962884276329736669056100012691369334581857011911438205123558018595815488825144344643417037969684776090065604901855080803410543079078090469988439927246516250393509694007011075046928273310968545409711664826061897294298650394339600745932081700261010722461795764278837093717164149908561878893201337264447329679504451642228856422463439025429294484065606110029973126062726850370944724381212513553041303687172899577068714758175740496228867871298169325101304548929685161672817800781477227279766355282893836340136636485807142196229186236781628955140983238920029250416021394818575439739348797343009126627693858022108153805093343327685390671882648266496406572711783902171483219096102378874334106744704609323253957966691182635314780555617268274743443367832846935120024015635945554457763978065849860396690994888345951161892652930358186511610097929178960564007979692145689513482533265438905806744651027934636024354008669026204773270276494581583909740887576313920230065062982485370183333744770961699936866157176068695705016384106751976566350672602350167075479511344440227104812727658969827295064354714889679598188440802053352529838789313789783860734707073769814916038731150767456243851822109660351017568458438730631675114683192642407919237347069238351645481893120683928533670170818206916243539459236822168412826348314543840732301614866021900110460193038647576676611820714553454397596082998034880807377818480167566779986351561614247769815205472785911074422144401942069984418140578367270582654390819270343378548812153317283033853815586034700044973107161587213698236530712207436325935135841945068738443660880478732032139467899854241685485056938086673445628623714956994314267691758875301500204691765053968781356722235444574700192433739346825055356607115057284260448408178098014745522531845236824976424546383188895273339544080656191887575465603628819451113293617081190356428267395667640543883632057962559852257986337355381219644281561615338940353078671410802778167210235423804716161710842155494054780136164402862817321416642201980592750549303322589041528993655983322449922844232681985079566031831681898970514174361486296049323037500183018641805273403875826275126147423163973939172791842183760264150665382131298062831383691902785492290165955007742385329700208699483195243059270570218750354188411218481256474432723372509295043959640159336844291171891363239044735380245732745845697348125815686922868350286349685475025215549341304744872158226810955967676234099104075906268259080998493094408530706194961596453083340606303101547062362534528138956710547478111948772223248039932165702609382062293751029657697138153247145240910371972643325151556091084385411792951364975301180093123481213967454116267196589346882787190877875961011483480538966634980643646339205565557254026692621779845692978833363185477807506750696516102850701516701399986249394290720547635094437602222247373201069763818510135279059591948085325186683270073809937504353454104682279743095475802273514929992667652843869810672523706949843341064386585463898558654799420375340174309541283657927846116734446014581968130354911016196107638254118529257645228688522736289646974136890567197145643443760048021103392256505450249967040316650940764242085343114207282088208119537824039807031027887001991548058512467007487370819567873655630487336336921961363628464854094923661516008667137688546574428884642095470004256307418264835284237101226038966783524487086769968619940927910352251189309757713618465737119148300089807252806976001881622569555989302356579471125157327009061602948073860621181617919350863866978128432214197034365615351100081303711037162894287622247348421312889213878318202144156220862344376616653101645839346695983112132741803460611169131200617223394791091083644927391229486636891150662183599750992438525269241894840635222310138731736427948043239841178624936144239773657771327200219235285496164549878932554505898421390835244060119271311470154894528322012835588151930402297526316393899331735346450648863775889662937480604152669238171674984784692311951282518617247752363591029325535287756293350029486761823734414634468177296672608610123311676187177266964992685058276513727927143575618559045721584399088343024721236879221115079900769626903912174851560947059052804506578215399576716415845730110261338313082254373958856293166520842801953000187699959330867260367176968070619339895642286620742201628893334366118084904102669705905905334609085284547718810190535354875510457007497483835297811885781086883073993395682579438746026740337620761865794719207434580626764570947853490720462810659954439905455656967543869179834025971810444832344117114228172849316030805176487603911732357780822129039648321343832833563939363433091045628148602271343774602247194628357766835940891705270058090212526580301422753114354532985702415665102806419626159897003248415853999428987614766588988152035910558883006108876871144457205862394038368403997379155279732120865179480437296092554731766799686596444439331163137942392626638668403770439274518916268266879771103447408936411922643112487638899394100717011343226380407771233600553216808488744313581908756823500052475628404434880118952448660879823271970010132267030750873366620718029235885240814644048072373762644295523919058019541102481418348194478088566997456657501440528137353799991377207459154757046207243134471515592342277571763975884333935146003204245715883130961175853547669934329345952163276411745369174311995226545718088620486766351097645548052745867331158749522897478312332384578535108962933955686966013433807458118013164318624048767690392606977754161766397856988588459411497395084829833093663247033062023768834575714059758878927507636754294454952482162579659358349188822391499369882765554360578806970095303136327503429915422601019786737223370890240457975049284183733578660529648215148690391414791410136455030255542571094902874659514809809160944929771703942131353419589791379103868906203280767847571418242383302355396897546618862022773289086237845746393909882585581338657144746728957026330120683631511835217120833939327391431365239882280754071480186760222091990905591071794077935443862898305912487843324687427426918013651582625246530313787374221302897237680324207685579398093559228486977295487702848540126441746600207298116000731516520365540478840526256259331371076817114275415274357061043049720116184523841616258050946847374601602062548077551561454159180668243674418730021472920997447130734176517549899040493638277408005808110360679021423448261795085574832388178394337261726441664097263849803530050393720376518390655205158508964940877872967332467744314514486645035135028376723588182213057847472863008656066117032102199499765152582709613388580144564509247232508631119265964769149676829899683515560568495681392840252057131060916386378574101555878774864841995605897862973352142775994308358411382657491232860372616852146762355749757796239506671458708044016906069627318838453317163535752220778460886167530659287007836830715305233560469531680264140844579577025737089067739050464676375639592854181753248556456967984532525056284257395480593741532181739456384390077084766230834061831224377504158367394970976100008680023859475145352018718523418029715315657823118769289549180887033462076802879222466957385998691809935834114943566049131140901486695994604105019101481480571875099076657506331696881292284619298574811408151537454512803239798705232727711870785269548062755101081993891559107462498555897433194748193387032830424282862295734205341855150074224455495300415151763990976146147666324759748808797245400645071448773231474235807526443458234945210202380661163239627983401265840977073664984639508907291564647564068100981349861459119979604503956944724844835240112690858461692954094819253116871998092404710299915718623485757895797963034746033777907099711210190107365921488756098767022077580250530054407424693221254278896931733149298510969062289580534842997296199531834520663028500317793800364808300976367713780441200348789499266153644907623991749050379225472823618913491436001134897838110142578012857983194140257669656077071176191029072515844114747806332167013306472874089242410959982113931385530920728257979656619400069380287409098019874001103032338918104507720863362313290405693821826908104690149299974431013644455550383387690614765082434639405765744406546499915871592479818739918304385445536364662479162223697002952807098153695778469251362573945755818541138486937614232808555135543366651595187813509136044046231156029264579038281246312701510819437849014803133193356283832775271624873598615872812910894722235150808807326324859059443269498289047393534543542837789592162889281691559312167565941362576290186385151684479055547607699579664329975020525479122288593530212982029058317716645702534029554001379407436979395865722009780996533124322920855098346088205916850947728231130812284346312100202170858021232648752170533190246735301257705425634777227450649995535746411421566363131497215194481282845579776732064441076600396852671381086550374504828893090786370964355985145323749652382115611889908538383088745178846664671944000378315791039715249689725316621043030506550538928217886535118961667649215571324188178181886867652927179921202388133910989505161354313614864476555075398544366128603762889808848380574179684175912471003410775659675947556307360149443933145789302954732912974997291426117382968877886822662537457398865843523488007744714506064328394013479098003359752864040888683547822958020373649543677251897750091182454093324826690282950627578219598074256385198199746755130262808387702602870576370890335363443284721870231117311301464303016962410274758403559853951636396756413152677065497543513195796893280869004047992396927250809296167369284910101151193250505537363250513853413040921194946750208185522917382373361602307026143236765058493821169840414353115977696503405687995625002777472170886701606735334671467585214410007768837081516208815773220628640177599550456904878152544449253822572115073869733170105151700207832290854499448123568913123974059064006998217181960908379089935388816212529026437800264575432466337932631430325129894335124362157482368603137268938219802397845412340242006624064708472437031128432322816660398905440882694386626089301641405583417091510928261215928538596131553710132109351923745596223917029788715559608593327238543082268403470582018493172697773900384585385665234865699322615101031356705733483582029023668583250857579185454081154251886343717436189493266611230955281130929586022696199312424457265924253870431079296050398574176726009020339008286677612366612351879120938029159567577608788803620782975584867100291978988786187982118621692765267569333478785686606522678253570683214516827418937982227846969525861450255651213237743162263738104533428829241327965015992992672008265013185084433414150561652024562718900694054751705171195608620310953626801579758812109226117197443651507262837667603312863439581560445146738084585991835744413673177940773466444383551513072055796735761408638073820476473497362890024014351750481415214893266510000722335603167024250553203886716009137047522107118498289656234899181568287354857602885343507389275802723193566699485822185094378676715793084756445066679665531785052701520875002264339979545690423948175161985428939428991555859070266811525391527226367406466283034627033947636556021099247194706223836936627176213499883080979608093687701911371138700084439232421571602550553018477566840221612662753779867188706023386606598948907828847151437914170690620815374710892820655112365236722994915613270169352588527959037661615259157881921448458598127096285834907979461762132995851300844253623432567914624826016617569845100085137618411077729871107608797243614899335782127692101800455316816221819695796764142774221305762352403405824828527802930726302650561943176469561166468207618306334752936630527065651146396387771003008796366374019925383370006066299109550175106308500475026273988807405169414235675536721964558113602603751863534591005516113745465566042074205212661390528980829933883275517567444724229968129939212523279203795955023555863385826697719128089287596816627794696737129773278845217006044786795918862666456529424109289728811119410340878762341313029102405673688801781473451065396657372372139255586954002203693047456502150620940550708533650709600530955957277548375894148042088861559184835858873419969039884576095078549538301305024179979413034217037372126066032005086895655437261048773865977261386984573386259968730062284506952116092996692024152520471896531888894151990469382584896911774930788663500465347942111365278861755142853204406439641233488062424053198911043747122744768502608835364631609699074622287237222936983839292507973979328155523993730852302688576527835225065422755472753619711179452118763489914629908422710328156707580697652521394041541672916845715179910589443183645273973890179860345211170797340718477351495238954713664036146201467640732832353565607111226383569752224198170955901618126692477713539895067948007123266687792746087528807413333814181159746467922926228504952694189409590190250852911662614552334412115249718359522397401882645926233244892616717569082466172808282081863791717145644017113041495530549873922562203707588073418475725042278101158383805323756429390321112757687624366070901925907353406394279878773443147756333708661268375971844326196103833242800872090360715139236822401660964333612028416682371501270500498607389876730425182148867446390754514206237462839724297934862772527211355610351049575419053949911176575866501933442412303515475786870421169955760285956088060884797759709544421436425608807908813616885205541296500602050775332319956041456836660355687535575006700584797050516366096136126257746197919235345448962381399443526385464500634000703728120656578593086449915298648597611810939820565794556465101054900902932086496300141065977739396977164545847838538656760981431350441622005313009790548763237551434755422487594586798400885195553422975459639226534427500692966271065772379447317603299279407030247117305391107597759071769820987537836730366271825728440943376761149697734034630058316017571348368553018430352684934747492612713523573048063693514443075413981323389507850480527538498209567821712560329191864047536034495718544269709619747585546767221626561621081197100684923672072459569517904639540033578579005701600798827647586799601669737029765557426356134631013256369995765924129441589536758921760939661052002784049620420297284565265278043808125739408996777321104680003332455595369815246756963759779630095626577557714706187691054697646417009054521242136516992912611962446444161096377467439665463490861218687848716614318967605206145351973178244200446074983392791939990489658761033981500612843317721470381694203024621574222782586190982549711391851288045274200202662788981394309846902049653161489281194231753055690199810183605450027374629700705154167778289422478824947391031412896431175013296506097026435640971859511212064257429438562143638687449502506473737182631960236714766601792645924621991759528418536815227859350024373592015218994352687294788104893913965317888557798237494592675322874674273069347278050387317447369311397716392425408145382077784394647352397099001983406427059577384233382634612729950804363848230216839161829626349678665911912356197341221311645509238193059830459309657151033076597890555066083384102156182513242238524017265860697097238048451269177370277509486437805872529714616475791240839048179553125074608529106926347126247091536779433369590544768236348739399428441527729024650212894781408840214914340152144599626396097970901548621496086381566385390872290739312978350110353279818849805293513486002645958777333673693945593380274621248916559860443241990995613969275891296295724694956909734948758917295390094640494010907852597642926565976224974071232225336790168573961408960879350830383903852590663048325855035065915329730788702437109729944149824578807074048155321687197736881166857183071385159590056922797261619887507452276536937204261346893884201801301979865580847488320600092272923316670767927306034250810600539279196626920604094448704741610965294651934823692870771398166777046706375860594927716567877347712950514074307184579451428340519414964235172602306891781098856772886403959924324946655787601536839294479341251097970724738389594086777062615658482797958108022058186853533217453951419183679535780672348974662310420257771963937247720017892439146846798172722144984765208728935511612867052772788406839220811380841083174546020545924890121931830684629342947839698980261376063833165666964831386056175188086600529405372841561827803552906099183542290487570741479655755920446213826220840422705880613991588328862308608080395190023504782511745844655920426821231636505078558020335818532293023572809169092638207392494227044097251048085350118465605336530265256027134696293815951633581535090495986094151157600813989225915198180698993873908541272742255740604525574784669859636055571804071212813303052073657964301778366146842737149865849109081628653385444613947644379376338765428964110745998778553241271032424747339814147986545943407172365823181689515728350284602521406702393761667727154890885438143786030640390489671491805513640364495286290812721793485048770977239505593303000321862787414611721135451382545208365457243439538243552153557466008773810312116230376505870068444315577098454426975752606812352633099434142849503796614483324821924920343258259948224324007463027215228885769872405880170007281991632129978541828984331800656368816534231294763704916173385814690054987537494865218287533377165277936685852827302848512875611193929957009545869649769332855381784528049164943333951179386995494661338856231467353437870537287868906297805394589171052541301818794097719802270602368705182192311460750744147710779699446881846365317619176929658502046682515134127949693463805975739556376381016946343349419466457151979255934432699413806771086983563101022619948846985137704668594536337121232220566288661876707695606050251213208729774458017666823469647177318619251780733256775626543806217404922460972702565228175096128756514582443586525647121079737387586934342151024327034075542283425716788422210334393617191733980446537900633497768788775045573056224305814265202809624480239623979898329886889433010434561243752267907874057782198603267227273165368550006176631454666081856510977824258795908172387771806155357439488039778897059886003554764833993136929581074282542448517784304354701683433207210929769297189442480809502446208462060636677654375400039904669828773432569539455259012889579471703036208923510840432477611637708966121835483566208031167066491525790462388629300725037199673794123472673090334931419224105191933413659592525461296994768511082802354542866052156497046171642249945783820550672537329406071548876770777633149320793454171136441586952087089932125240078333825146055466949000497802346990298460089789699909065702772757835871171794251947833793747329627629420726240699104077442873738318694488840345964988598924251290694105207357147692121441651184611024203399657849429839971471049672634800950451467932642128476374744270288339838651080618336684832082923485412205166067653338963967051464427823746014767548046665865831958744144361655962381715553454805152566339463728792711541325379564694269828920319146883824876605718569928219376095541638684003533357511434353348727003674425063829041240355922732253052367431820718649575670753327990486064723930302779701019867336640398931268027386274960984444020429597519641064135508360130689714386981035187259811563472729309177793072450266913760652203445043333371333042032170190942302562390930304945039254671438884554822995507365761897768129547192381171269305882483968790550081096427951089700977339054767849702409185606092445280413933989548772780937292843670587490629733092013011130671653875468925718469328914894721405790272378963880493141341421010331083061973497505626548005566671759088054607923120441698804760719008075804855074254620324500668913249856097229034794708105638145057731874742212663908249450070946797566246082073405637300458132243908390865983136519370117632545680207834213085543981153840719893746223519333145898528510807882598664128047405228323789133253582410741715353219831506014859011666033479981066460500944139757935390419547275941596606237909047302091435252273220581480242651957975048760192318990964056168229760266467737612000613121633353807969799967822536244741773474254503343206010558786994299366772000033412992045495236547496352724875149778042792597825962238998610567534816025463993903168069239872834454082304358573123511449363311094802111898432033846943792443049643746726016129531640449975084216046499552341222851895728060384160006425493126407000711001513335291643932160827069651479184201180903591338261930189282665924222724933755466099851323506001700678250707573508497890361971787541213862099695377844516583014884796930698158066906412407570541355331219971785464399165655670086889685182003505234677186954778331201259367096439619424113441868151251920576339903833505988567648805598001731954511770927859481351139187880171735308105641593284586708255193846864227810053815999442482416893398516015465359246645726862330563837384607341295053495259979862348260041095020271516335434750465803885650558547361779834247042320325995636231019582912442443882632687557813112792022187346514740532262968657893861755681950575232174935976248519727938574590147316875714221460057520691468680633355082638368517191935361997801452040320148723035513197506343336029067585594438168974181886379495146820746810393694661486974269370048880072714668355267098203517362891967405274354872762784750100043196642805814869711633624310626966652776030865206213302074847135135759360650664289097772772169998742707526458908093416603485898687106665199960878706114426597546503000370443015018626708889712800600075736316832860768342259903743024506737060801603470123284713758289029433882337313479635114976745103506434460220985290021477925995316262799970419736689070753030408667680856954898263299967691275005982495141560041362352325606198113861422102855134564879475487183325017449044024030029132278454948451576872376241272338800791834261482211081484526994627515510160866865420588497643441761440089785169135578130034528041768969103769043987399639447591928009384361188780561892195090321871495684946177539265700288355750363751363668877295616709002563710432110845817068976951600330617525840478661521281948574169419411130204135184383493334666143083998556739372771932900174045407873334992246779132121489144540714270229153473656832614578552783225256138944048016604105956736869174696476736936275219607337766303347698783452144956913577513675163792887209657103534546370900896878488794841724851315396930204684456654942949158394026242142112830903776055534290343629337080775725999622103508471228960552786142112606583320803306169596006389853299666848271509238928819602891712682196432505239071040713204505279604055768926374236533874061273853585477263599748599509500330930966359923967653164559452003873427526336386261985676992553659329987916137284146589933498959864458078730755192344277301607232917877194746096806984382813492685912467812977594153738919473601917421834358285914019283942595514849939041674556622215929956491218648320306952068411154904126174116629519118979709063514195573298593892133481063654054626404973848985036505031629381831401138059021687430870181450304141720267364590138412705198936216101507676910468417059534831187097705261378023749704962213540658451698610022836752956950199279685575964308506510126436725087864613412473405660501060308950616256889593675032225727651410548829643197632342374826633173597736607750518014244979601431653398076566035890924592299300283559450091609238660627648512005321097153684859285628964836747746919141604948521575450407883400870505664740142232503798686408861515608596428634284704462634857861603410910760904641902964409142493924515647535211083842393599514102259582996272001343872954258572822434059620014228030109890414001202016177288038697987156978205097450048536475428818847037047517743960944980586844973646234526832003634202387280187344632444031126826139569009466313979959530143198274881743679511011039448069088733394579530259164988757413723309259292085914675958953017942749520211699810111814539999452193783967152645599496892247781394417963214178543146582969932998268477943279961701516177475462539496929965199485476607027852503886649230787488136181402136170719667073215372510911034624410590376365907292450176476726446163798497576534015212735959374995428797158303424499352823849215546203569231006077479345110458395898413818832107930563164337386336261359208884170933180158093125187579310654290006850150452209995204210100658130767476222494612117832754067455996701671189298160888288309312601330187544648384287940141241202506185773273081711577911465367884660595812860561278063773339105310058233097667682478567431455845224474472318687677917370624216535596256603191914171107852854358574960899576156385692984309195993831421450187160280469682628684658379948452632763397352186015429114020464890694188485421727433497086821730433556892300443293023364570579980925848813798447217326714533163122161709985917076344190819603139267660518821547088860774143914261983948032962384875118519624946548628439312739088084749782563446130138917594915185369765542106786047547127720187095288086588663660655655178361245218772011079871203749306925514441160754440633099548824865980647315871047519964709586461512599024075189435032789417117687403748229226230755984838003700975678928760971422676145356866222229977793911525648896551651941294668823976623186220325726485661195569085203991936054864647020435432195478966125350651691481766587198863572499867093190393949758591561673625477156517032857920797700753286876919399080341021497979482344246837320791935225853482537700462226955361288111977569727589401101071368058214393598632540976287644654671828228143178227210568566847572838540309952984376586045780977124417040564457546517402433755342512102512629564421073986896952138728380456152420482281749041259179867678520636171762181047132219380588391786434130511446094059515026244075702370625919259089497729848791437440758985866121889302524030842874082628219521364545317613887438206199681979868166323695196830122629796032600653112482048486622045011368649633500247341375538763087144868233254362546762473935482793141898921980344934119172879202742036509088826888211729531454387570951410727777262983431625791774999196947133958661796144626752855683785349579287453916936962231189104830966428776719590957695474984069846975977987565617760512808177694542305301137224897626782546731883436249907634923387190202864885696249787922028497469645310870451817166257234086256026477453074048134719076574680539181011663435143028422565438620829108076604492724932593219084736754394234093994584671125892968573658771812076066732931301332980672018542267202195630598436955918683583489762344630850064459916519257280350617742841653428668681265912599920525718464013190916557698456146132992273422228594393626727429535564939837466179874110906343460512278908408649368988263605285688268094924130459278297084853047341029780874811722646512735292084183418870698287519719436619186048541560514936527198459593093413917402898238866492597747316235671497349308247151531769509243494101519474680436979271611717383599481819150594139927942815896602962426834345037013154779722273217638952345259288494337179386704570653113300453357895234204875845496990542555644547514964700935384098707289364503192506724096164738727402782837837796953811508192740302937815279761517734954817371171675110059540615429555207363958220604702207124992664659445759547140700646857952616677696347206860911194799540538018615951761382711768745861519451654441597601109291508880552001953062146408818586877702071758142599732197832288273226648547020330597468724641516104314562753713657940614780011485635143070330859363415189254001563466654569008305359141635806743342737358635609990014464642754440709793790514200043540646897319552710360304228017573863284349050172709682301420817236261353969766934908773536391091095467514572072674539758799371556491657390338448108551905383424975958896035007672350234402523623205896735227594020743201362104064833429417399859605965929801415062957476988673532018005206284218276914020323477656228210260439428853016433760563446527238561775936804617322002064002412417261308304200143435472337124348599845964868278464285299746508154676256088024992315082347398188659058951810002187817727795257502319622287249256683910902927995840880700409267579882337542401574516346929826129335248375332192730859226409309784609615835178322985782380648570049403001086070074235617990063547820354384370881871236881880194983514348223369985819227199690421406441375064810114908947694800928619627190927453553227391379765783919733368596069630260964699974135534039121690868386846034998527188320299459803416887864207514723428469308080123924037624671188166816145428162356208849980724805083228737821113873175247716821835601336131172919757463779872998062018777901594097842424230706703979008318981115303987948023484402235647856637335333523923776248078819772948966366134917733355223258168527506733175680004870892348614853663435222706544671213575506658476701432874872290654652125356434451849015161065689807744535538823356021353780179463184817986255150410336075654402727022958808345918282274516947130935011351836943744531363962669762231715265920993592883425289472402386770198747724657265770251798617981938479993778205648577039352567562312856014312275820873208049879959810551108869937284137072194971775436532913389115197215051565385033705862378383073169111453711635604674487235166799112582278750042420298324656083047716843798387656753037561353977861247866645347603461048589293629212043194205047249881374476405640281725630472449266746836153467838600802754567158321602371251968407742005029157446643506399021738936249291905048601086801836143645631562572998912391993857097180546543270747279912442899347761227424374464854886851114388986399146189714267498642997182346056967073744549563836144180410451202514874664532267851577324095362468498843748862794725795783720186522623216976017871196150569985706952967252229364819314630277317069499480166337495427438572375855816438571589798831872325074760787164797433075511292861703678845864894170283982614674239159895571047980293885732722117672513181576399084911668447713853651920845602273085939554923406491310717155078962719913707088810813450702844686892831514929326300127597690993941607380579677982221427688426442980529461829320016339554566201140383591677789518680189319430810755931255351586423188142035575574995871223728475407299036366952969140966520269660961399736076854556081467123003013275268424224695069218161533726978581754719945423571701147685167458548306722438499705186378142366624738224672831878940057670077339817262386661367682398949259672145831993117669198904271911779939339397945816366142473483029739737203192935245214203221503450938518385630006877352722367650445073105588825322821037635171813705788383278256470587559179301828025794447386762730780135118268497569128422853499982126788351637891185638808746086710798488161794296167446667244867580485519850512965320779837338367775465304887232245078449948431301719846510010181089484100991793471709146926842335398811582790772893308523641900127666032871026275773725302506157248428496617287170898655464899827476569349248393689239155875281183716884062185130591686075245001318700678944073045614652432126997475174078541993790349439311840842450965603222971093996362777502872509753009574116138870740724490677589402356204702233110013609383491934080740031840699009157957647371741634618165883979321090402904645046364035308973887941197904945005443313125305765760065191429658788306862113523130652402172065291735117870385283000373715869584192134344845874176086332557970790823640708339569033059125465423447847766609946530683343993751696156807431559259949039047635251993231932887260132979692189882778235525970368044783475980503015891316488902495994894487005674664141311911184354838049818931377228551518892041221328599572031510957186891215294353992790535836889926219962020412872437731139016729360053674001380888025476004915156227940863796673641770075699291396695773646485594075435409189649032583182513801505050104070387615309811365731525193911270249567219691335317546375937631936521214111935853046027875020547498128297902322288267159381680461064769758738740835177035122650331540723277306886288407546643708473794968920040167703241569627896252073340338423811413248932516282065405942531274992475507811388086400283867076500210360330672018989656096487219610322230255912410608436606194758740488316919538658785293619278716257896312403732111321944968876041403721797802028876042196883360542621488535403780450004681546333821690025844775256944988293761166734931553830627319392512083671917612343816442223727097147147182321795919221337221515653848377298300361656691664260546794841630863990192460749994697363371866258204579788385566703909401658917223147808600371811694104527583530882955783016737157686926532040770476463284340785670229673045931824697766747404074475741841972062088276373990122787329438471037342808087101111769405136614740039605084240447915068326020792451133505136604101557942334161532750813434215924399536525605361180696728283548050429521609243876829454065218356369213565170696063644375094457883632887685981581566685540355156777810619971988921704058950382395012969732805496586832547797721122750145105826837631834466939764232814298914724925749089433297658864656798719916695304605002503915416758341934318888536541037701491859307929312720481614915540868451636429375816326793164836724776936782927794389566853481472487525544024944843781741250173670215417077529210883331426965732421400102598705687475197926593796873974636887656360333339061614397916998202905738237339815780877108153466266031454222299475424959688471426594960291789221928759089476995770462743497747583689670054431815413364670354350754706313663366969008805775861837914916018306029967282925015465021012725906919036188320937137804824011022157934741883261967321724434071504268770202731024206107245896858287870980947634074954639042378875052427350241984574759290517320615882717199900924023058294915325797542779290352688355749460914181734492071372016803774073775357376143331343387980720537940733748199529791229612363601546242266850519004780547528028072820960547995340164479924310482916571259501117645116011402218958190847504487023208445673966176400779557538295550653356941399692045226224883730161957801629233230169741211057505087873067871328476186650210942327616996438678478880980268750627121807865921221048224976770495760413374006214070051285344381092107292897115262727639763215773273250688795464592630729319020279099858162828359063768507693943814752724490627969730893535872059475413370920406860521646090165110955254778708102653029403465868608703590548778309932774002168809584471584186824931255372806438566278102464001542711584166190624712691901168819507718610382244346864650111138584639577344869663325720350071623493779880312050269658756978346645196697986912541223695319481568268489895736519509376397461158486241498225536092861463760652097756252510027774559269313594144641203632300480497424981970705489177547228869543261372706143708763342512448034500020465612068327029731665957285889313502144763202593103542361336688406510681678972262968992287719655472485749946143298715673092580899081569477260270792761724023543986021167020498810569731239808638079065462924995378655141848025762872247053848796314582219989857953975140455778150206984184184275701761889821329761370560407083430845702394435864056578669075738509126324535047784339033865305436641696505340726162130336212310054584718198626987993775158245082154167707640149508405896095039825197246443970665684425391626988295635596502632361841906246764352506809693767819478379598122113481472181582760500260646322075813860659458209197672689544617382688284330892390783029473234296915425791322783322785393549450028709439920713479840307092633708305264354164352581150706285732658236199993408623067099565922582220686307787220720127903561024687967108715147736271802322970764613850649999461554646882111798992700565599565029374038053631479715603619297043803310204666701932398879170521382076838438987609819429344909620946886033135537247777699135499641501265847666240276939208844710205143630669033014995602917866538027271723241295763981815089726972977788403751321714687892147660271869277555152023195848685578785873462214907800558716341025739011703631693067570590723051493249640125923892252519351228962829739445493252559380100582368019051911283585522680491580578510816828546635517937344506608794477692586406015625716995362605163297633655655331501159548780950077457447965890444507565991030109222831419822361797140858400322745059840684287889285454225118598943174917511480398035428643483690151511472787820550261040843855235887803747398472685549849940369311816505664240618316055146905247137732572800843424147463574107364794713983321361159202451621532803422865390122574741342335456464464776365355138744714301147596280002165483991231095075578690023624456849819204818515255681882767372114885227835937693836565751023666411554053380744492738315940567679875962350957553229385833022459242667347415702557445512170293323870066422934435670974924323075098066722512756450754130846314315697946704700703972085458556043269385452304289018515203174016477609308392677979220915989473015510506824785054118648538934587589587134597944182240345773743096720852378629025342023990529364945690378929638282018625574938334585068679130411279669630810629104483135577167063019200979185269512224020258784991243589858212989306888797497126741291656806893029246216044485227875550791542289342794767981418120678368612793151931814921453026208124617877242833866604121821896131289344862450438458791437990173598498156528063278247251417060641052196365445172677403730646165240393915445841381026882316433361742490986648485365547222644393141448571217794056645259869768300950462647351006548555363800805439072143773088863386122054905954817585480515601091046049525536200683323387582021350033874627349753573816011589425228275268709441446809526854257949053032744179300895158449892325667234212542700526237522303549704083534324887318174957186083466882216334943159718401087702650341737760335014116958961053372271043121896781928562944790220810306790496969039775272655346958850388461220820390661198750318063077215960518608093494231017382780182799195536556341217732993706992978414362243470344336709751789947900243684268992503956207706950451819397983723419543628549287838699891450795694211132097555110734609322177877161044179273482505214078084181984607029939961142339569513700040912713462893431221449426553691601380076553277813009059284811956897741781856551702493799169224834523704379011473593242135995904741241361731002961064626477787589068372559011778931860992596501437245371428084772948025295485863247126574759230910279300177104520672811747389580964019176976319086013894276356424267116170196243952672934308697243107516172183185140640709364155646395871609479896489405861185703351474345759655519755210686484621666406320442977827583513081600957952935044092671855023297784614456691673894026539391404470416017828806904328302988595906441570077303390710691958519184949031351301425385365039996734610688329924075897356274645595720614957937035845723432720294248749738688182409608541226658845796239713033110321904388131715040769005434243634871388084389186841398848432200868092689854635799549773403553173067951711687711103761535897846583224660112243194650272309586963704558616048226935744806100253535648900993191213497422946360448778354040942425417152295763439224823620718551374682907572454162242701588334863391342955766131134954427596959984032916763079151456909704453478880947243664819962318074856159456804056304547834855387055683589915935755144416061555121476758341010303856093948531452136023532539538605753668681030052039404168093862439577014976613846373673799979149737720181104390817178784029196937957769285049393642753089003762771270237289671796195078755072307000794133955408512786556778369953503400504869492963476706048545936023880352433197471995583846222217700204240014419081343973898136060891016485488548387044789723487364514943637881564007084104719373729978809656790098405426637580264392959173982057530847229177281967172436041905179212788142447770072900244906571566930680321192008484976462699266087704102712041788748962543146213909806458156765217122663001339382921144192175721058484200147459304006821434406895269650190880519069731998163719993370935979449291841211838244311475966195503490626107420057123940642059381839455314299633689132859149294611449788755316489569967731895657871416915057027297151834987070520692335323385697890226282795253400353117610788873478004000611976086836387226970462872686849080351637680237968437442310755128615676913431140350794122642987445915348825586507169194857272028804995941792031364204228762053920045908798571063221524107541611817834131846884569969375724671615205417625413351178567751867995887608736864874866150733497650287314179318077917234803930880631768190442705916259466168257762055954763967930692873945788043474445635773065810451994343724354668613057145501999336800804999202830880680982087671576152177407522707333575161147410313569052872495809011029778053638586203889773795888842617707237064457337773741692956398069392068152880986543988670435496337985150195566753249667011695243538299866339284886314160769279147321863008291530462540137677972145946675881259986537794205953352702941810415778370208077345621150562220417326261872180749794211218274747946382516877776858159042738110730494384376572084326532565939175727750147531579504893129838400374320145385784356480659401486629702047195208674017757223141690214854159252930043677605085304680847748517435782669278592098016026481395405297675605009515887892279686880467462413643167545254492652846107245456101481554995603959838335585280943761120160120730977057451753823710045860896961326039593348511315947799378783429525536131569312122668628842130621326556311167597262233608601026378360005248662691959647123110647670143621987116084580984054718308519917835864419000344117214756547610027033065996484356583907824829904630477012656743455971661208004504657508896380849589573536203901686437483962731328124332293867286282326858876531392473125188360835950961313767118356710396948019119141472612221502912358030193366254131998856052699530440489326291877104645036972307245187973244679485580319562900499722546685001195476540307467395201661217775751007257818578294485049554191230769407903329201884581146286072327103643420146769651732389470573031000155284533360506019482599711635203115639329731744228908854125397384713682458240844094005392458382493047116220410433105648173480124829494066916343212336798846519753977253073470799469150121478721143294533402462320373515852912922686137844856861585042189341873755519412161541921034788648065630284497764886989927026054795841137651489276949518446398731031804131616631853346254259561791460340870105769747424066522012940537024411145494637275613216684740777271469911454945455965857302466858094576729414304149011525505989842518374666832203528740312579532894219243794437998162725139770410552857851387151949199887238261653955411833010555653653438523948054992009814958690485737171054732827503281437911817079493530914299012376598326204416313677856292506236811166157813678320627461269776884961514801961861911547482103711160851922662103533608503084620771609117878622299284775886375142967486974192410071446654033959674119332119222068537548878412896210977767920649539528167674687407238847098369926810023969209755547142920116933505556227445241994414447081797934113894737364730303042066692710754218822550248727548107360925818572750634536457603691952936887315488616916642627598366433411448692158277122779071568749815888860928528593622594304685917045173194201553403987829666638302756727938749495030271312666455406379999335041891671508130693830984218062090455960573615277932964032433951888652442214263692704212004791027048998823822478883139021639359833549013426231564307133514513194563153893738760578037201478297248227597242653438562032103585409033716997173082882270452304290777291215025559647571769330327247523783756616450592942516993666282686967450584332048087476619208556962315657350282064426468270851792353252247716359686339251315717860063604134828172154728877097727313090685431089073699954363777401982139055621078264291705499766457194940537538265989874787820037099144360138269503403612172392739951535600481037686894338734614435288153761230657197653338418537994151643696187358373016468951085976213615598234166475486763819198847025494499406087948824270048844119758801994294424304781799921889679341474460196373252353960462226030594502727569165615690911068013288073837372731005371211072130695476978912143205117121458693174531786376728028804924798269078370489879544738355007935616965458478448719824613864550117882904841656181892763502229491260773978227244271756880197287524765051491050843545661353956625560934453039777195685284030650063015589207246135023641941641007750903907205303742026196860617551984642950915788594509410066514539091903551975034352944583446031213378667710810638185216879273049979892986779259996278285061731729802395065914326897583079999952828382030113245933566327305667135661576845603249938577085931995704432894668243292242449493156950089528059377904936603037319745696669763778770868275390751051892345892359591994530947505501287258731215021920433239830285844815221833135733934411907846824258120661177542678254764900579814233834793450415494787396183763659999083607108383694886111011770641887371001633206179559794205849642179885894359205302371831933346784250779728564807498339405261609642401654224202915077083066436233987988418846336604038964735050341150577315954153546587916646100048619869032737600563457643078937786802476707772874011096020052448445802366441597055878729423928979953227254166643811316036585841966118900463761635854970219928365429521830731955817263837549880144433126395830972361305354545352547760022325252057516321504746693676687242233084320111501598711858677572025777995528267287781096227723953178532533258415865698448749624396183383035146448705605453785366746926161357818487450266369786003879027458394038681768011353346405488213955003674619492099362182130469118550926978738442525419339726079681027735019407418134206033354678105259967675352183138202947074317478770050970794429326291432198418172092799918938711653075904185215292217251593750430608103754780646591590542434975959497760379193310003363278062498124267754314085850272481554745902959988076711250617978155958794627928330950927489740733344029833015002693137976631885783546620339245792284341926695811922076315691853092739183978407834722183883040817275158445600926200512430170129965194722690021916378865436985424594684419123491849069983163950653458553387000079314107143472511563421550615300692709868622512143012469160661845694374121406885809669207322218143538857446523250085085478760165361172894519938744667927429149099206012378907653386237383054138202583523661896063766971395302109881962933156976082781594374437392667590711383953277717078249059758111643157399601857053457102218655845065287339724472839479428042605075601486977098682969934593830269453671443274499209888503449013115661013564910269528361330395295639572799186888655160551466807878330819806779622163879026051100674927148336708774474044428027846103293910015040998641869251207526053308759403275956181755179021972479435859129519275651669963831358494420898385776185701258597990387189222807218485964114071336788973591922116440113028805013986069614512571827751989354632606934515881484425800044784077820605772835689825595946359260872681232275272569495010519661781070255359152439567838941184241809815255250189550599821364667854370363045247297520990837230680232067794565606822416764743269399628513858745213978481805384284260980153883032070915085431567491908391125648763982118624913446431988608644238467709367413925742010733177702193920992725478718505466871574597727091591663304654235884923931489068487309699068568192614878743089732477412166263940292665844427669096229747799312788049934899058222004313703997526487613154061127533134995393061619981457844348572384222663875467943163907826014736670170540312063860625597508400748617447258875787113925607521600433079139498704340292359353670770074669896024838848082822205217682445447061320766785828446748463183946194507949823752286072665141552731124157781919932950590712285695217187450512799796311203490039534497173720941391558522585825269733293699351235758328684209459048806896568018679314604333742534700595480508960729226627256034659882160332188813499483808573563940324092296012644421462841629751318082691449704396013645275437475545349849016819216614579611684354665547247117068770870801530545786657900740348165792520690764138446801406089711623669793201994227441498345688660483289469981711102747402208200478540743260130364522338650607307059886926162989630009677338355995746198079833099653386816876399635470818582679076816185213001977138137397487016954848481170722661882666771245612831930036583466448604199430668311522869167482361022463107976146264131546769926093827911814575727968534997778498304215536155624353210301944285548963747016448658667689702024179036177234801679057342750171228319056951102698498758401391901684170651674910089360957854475491709033137464999504407499194419980465878941316505521236786125812716205192044288706259373914471751981066859101150490703839051235590152688780061457389986362275081157141948328314143392839897007662958043334358428362448137103757136665722885845311241945122134492777320876851894661394151001346821116375000004728134266816563925856962484894365632068109796276871735789290620382819585133180814136347498886706149973082821121007474822046464607063539010806984785159645293213492187044479732580208920043486044093839380643047495615900792004227002902856630943795297766740041494762566480631388103280546701188984361533949131720730243829940744204526399608137320520029459889956954555650327159470854766955442890730518988091450480177314623566187831373147890329069238164749065097880772750806409940767808576861465065805770551857907202297957932659785139053499118558630828070541981061896419745502443189175142622567282673088181736660676964487801989390590484766091535883404463197765143572777638441132087943653435648383463762244071882714299528957678946271413684565522489022328173464915140844723718070540830679351824226044367852951663289092108599746212134584493953294881537366815334490000623359888932613400165112271555804100298991786969688356143978706110413501319828513439830402574548649017362417978377805753418790144650877512170813674396362886536600247539378691591157090562633791503852980857522197123908813149100844949563816977405840066567067125643021896757693694972744750873773244198899105007959147728105043043021030104759813528708394771946565624924886709497411951048802311853741621960923886273922030445915342749903429747624863319802427022051359067030080918462235356567074824448143809920534272960355854614308235893629211112555418025227536454231223650636522163590685795344981563769256043855350544556839621599520790996777112305292445209504237570273712473067588725994717337166994903918437696835083232685331545038070898325139855188517443847841354547275172252324287137488964965981004558918221384323519301248841851270029492167841819590369994436181466711949495047487573614779549878858908138184194758079911664684197621347446689731899044710965344415857899077493054238735730764363471760653452020120511619783657735369816652394484563050380235339996099281233170502285784367231217003228938350493218940570702426951534550483252654973845363141044314019259147657244063744239040150850934868978798311340263655239125734776758828090913481771672443854337542682527136582539570814883288789483030652429874987945296907221180840037317005238821877675561385857457879287632388197280866749547071987520577935654918762117289863129207267369145674998682727381391117518609105618194800640957825291794296216848274113026269497653548812443750472579633875239468683213247499204780038624499789143310686345545439962171564806016301764764993764142820584880514048260975559092427741049132564393291385927861346960164987388415102909197878045082489066199932616280014163734288676471236858276045592910913693685403171585173080256200603501691705984592043467877503711169796135221657538788676614763317067086785777950690619620877782178858006523816864869000324487931857517173246649528595510069361413731764654542673187193644536257311120539022693796857493380450847260541030818667958027535233039978847847519781195691581350257106581228881964996526765144587693445600593389183858746030896035505026875256203291166751558831122188676164366355411528062131711516045285273361831961985038038464755705023149987680849564335638400653372163741916365466778837524929325375365571474639327967362070039699604296934713957488158671890319758585339135067861262714601618983493734528721223467308489641146679035210114623778701499231533946738027806824547594157726572579527595836885000610140214622578191956764188888838937560552947802440695651476804033574653174824154351866092043905423454956417370184982718835903633559827260104853969933662635941480742938683300802456561947901309015530523135943109356820301696866407135000365250008238535534790879709271668974926499544791285386403071467407322913893757308116047852469417703796289931601859565384168457567226238326983035763394636810292614704741458140381345419361690155194024546586134856525532121357251561569782549075307423120306844304528698696275112504622047515671528302842370235867679691250295912928458689532568167967409193497146551716853326866954738020985716496224102023063964502129306406862486411872481184222512793388962497128317558523961512155853520752866477759602028167739498992071495471778701883441712981559713565066964093959511890518820872392297216635546691269065791706809405200300530882046171488750360698002016760907935482671565150573911173693837701921748605833559362377227408001227890500672484575278950001228601975018926975047124973031745166719354723642045773159443823358473106353912931289088101756561126487139233599892749525126797199739706222290488884494777344617616433021866670682548915350813170580807396644962704985511776059165965452394004387854067613756362347997467701059246128800870294520183105789668296858353716254925879965131442426863327888546468943911258011105126439511596437239815996384249382290824983206182734139196543427674237773183993158546127226200450730147508443653043717108015471762746496728338394147571212522089037259708851620990047366499206817858105904843602658056216841222362392114935024086796961867018292309962875581152649193718601275561124954984959341835006794919257267756307258839596017358593737835904012967266626677128449005350612619353905485733725623244766633215842305323263399197393830336490194751284203860568846431011922337987658582801090229845300272611279707438589173849299719550579730882434255333502973730181485051810068329739407667173412427612061645173968786127715445404903754761539189627462147877618372997675881280716484428726516539798353985454463654742894907055122479454913041841506055322632479151260197963293463680359376677229147493963488455840636605294706606727675591191333241437882381304396834539516889114400920375951369940327214781753652385952962471966713667083219733852601711253115661029735174362062409620787833566765748866864401002327159811188524717732517406723637428587123143571152593137018252035464183185956640758073455127680994192740320552007309422672218198013835658314808165299215089439535878344222581440135821455192598232025805993576799361967191706033781962566111362509880881158911971189814264532774988723054628003960400619630010975613307126768726178331123248422859163784902494399050585864744167340285221631895941830829578075979928541929678339594802650868740414329994441904099490989407059755038467521345653454096631146284565129878676276365728391297956245991193832743086804944344817404233758793675847727788325632877114080516100183331214108764640253413481954851430955014539683086052375796527660327266353571334581370777754425754261463446070618340076973952785413464656198308956493396467935798671975798542031319612256886674722610267965314165469799329764627253245743321159320865799002854039148882736911758785329683767450883140570241739954808213158352510685819455066956766476374774766219552337955064896863016791256872521272804014394833419468065484785760861733127032773203117626547697780244480556263346959722290209191663352699956929674140595466488416863439546371690795885650725796690750335721434591085761180856630226718449156139489319513313941132372827477530700471493426447467104562656036987151620912420207634111663992768407092615791121288071371358050252688729724072115102328695931209343700191724802648135078066359837559131586556037109007178007986549938581443007680474457943857246910480046339755030257303066041756003721750712726882732633342379283718411315541539161632138485243418482956653404088444466094951452634389601555181156860384447818246246765149961398017984757099386503107580884633587387361119583363466370056232449364349257920321839414071877387598913640130549680239174826944558152971216428434213461946472223928055983076677213801321430040002071470660208891119796656189258505537817043186949449758853178810433289680149829193877889736116826314267098104799466112104736811693835607436575586395745389200585670174701151051307784703274870050795893093598307290522393737223543831174139518629988954001634387601274044212682883135169628952678560601683404605843018761625352239126854148204967732490424069400401909542916952875383824475273161428103901643690561601648197447702474639167781103413049301995340901251524340384173852145663726080302369436338567052248830100838828281531997515722031645817579554349144038262825638455143083906411133602565126771894000481544084630586114442375858628804002434218101342258033660512145409375871610705804142904174547051434053515643964802056140779250166196510302525340354850379676829461160347290429918230746562229734370511490545294606220427763266732549213764422770070412805073429905356953277084496192461916081209492457711231220041422785204143984670904380304447280433837972923947401575878833796254333179962859236158174661694639090882362518647202516418742305526808028581295211906922618558276229294628972341779670455311554838957505937972741962078407539259169822133121323279850608066735744812700615496744530927291526629068245936775569254610868337168490695657157609016630065521646487197674610002450544078367416740626793523397126439530796250514408526580220141070168165942813138359560897050490321644213599611425479675526583470778101072214111963810684785042736360526861324107514770510555664776351227703423430933494435377999417349999472996969573275006799643990008774488609764033907575019411228043093795327770156989408837721608571516498032909828639380752055332951581369424194449033083288393939628279996618163051405831476273338781131648403830024353830703968632329499535000632046026963671940186292984994708823195889488360491754701354607566645840154500407829768039288597152492753574751927751560630536839567381026909061223088534451534367550234831226279440628009501358838614342066699227598901613467862334873521988706176184658140045450154671615720161771357118162737889991034102673059638630468187544626726432977945635208626139889503944741351850948774222541855147006561561084785851421435767230669066868512089456423902829454476184036465976071283683532468419500752358427329372805266388941796974464365053423414892051189474890663839509682029734849951128673140787673027615561372816284548437412940192949295429744008896695231742169485521396059019127310594777665617316828290473974971057405919862220398553008816732293583677747126851522831456881607130098188433998478750228377768734535422352316120604582271835904067820752826161831133705623559221527101361694618262743051474508005286587461419499018201323496662037316425103447997348168099368401244877848621671170331475941117451341817416014337795073051679358846882900868319996284046915677285431054656687362976298756572814498026514295741372006662028520402511246808798135312164787457918588892344265746161363655845734242996026239930726101594549607967266528977572759752938284791366993852152477027075158432228341471926181968153568171938779146045458297892882330933089200919020841447359982235902767346113808761407627167890601971094645353042923960107326432310102520568381405346115867758142023729875391165165052787307061178078571855071006652597665162624663767597791990889981918247324962932922125914769226477167179158261701889578692323208053801740564594015639764629563199324078289712003433149767005849595912111846555707742767326857397527021099008164054374858246299439137915248237523059246726332972358711504925451483287159082927247738107866009872383077077410204330593563395795997749497044898764272279180727192895629614063945567510735072950314244178719603976054459741885813462892450009765127953420548627359475116576235897963014036514467027407909821419803026753918989654088790435281515276119466922322122003637561040777935291972143585054691580527899221481681512464981842289214048033577345390772317890605641563330950753997219468430146632560606184523112026258686388387966752289026924422920079964841061169590117941819955839290245686772035234144546051035531698245644271107885917214301932580634295313846754896287322628314792393058758860892050841263680363110609109995108800791891924161782075423110946714436476431871387607311006650589650562135352060244507303345593966696905402330396809002704490425281074960372161864861143499186166333642411014933695859666601444535012360300372956533542710711701391995875178505079888543174161186728852980330523344078027142973606960008152666367295934644524264023854280934323923060726790018572512715500380859761104935229292228855011142867932967123233767830061500408749983487160386466913213598987313946361762506619218513284187345018210581900778495451515092446723837530006238579428240876979444906281100726228560221430043028395461374307795927035174123424872500549389027279456568036146540585777323833330761738763280728899700524682242884488867703914791738125085930745886103459569635325975947012723284558979259067757775567842938253663372129128663599288969306998490080906115785685059416099668139338683447813084857608800329692702432718805862883716662976809518617510518434968271356347463334193424435070437922686637034587750266433543079690683576741663916565321719878009525743547184096405081011620501351201629820150544472528630087924962980418261628948135762654763840062899594392194351773962731066911186692132627495552023277428631350653390901206569584728076940286619875739180166285177104872625769073630309326031042814545977521529889347710757830252592454130507189454936107767910535856021848845065042947675642116735730893626539853188680640559977252010860685411247269706850564448538782062183075647516604917714914009375123983259261416775474990123940002576134950754208649923593606067597050853934842232662432852005593673155607180446879223988668815348385186840331328842686727949600135452759077132403779827629869611440268802803622014629901639841857038356156187924869665680153322623949903294819394289173477018292106121520006822734680010892605150375972275144060492774275362567154730191929225854715454707277348213044538275375734175379300380818525552342387793045420416545562679877163798339010817933868007915140133525514089652789737873384234012306754735415852149336030284901413060570205806424460711124848394911717269919129111603906955869725376981423877167083343953071183218477967765425453816918466510944137918793414622610934672962914038910418298322623064135929731897852469565097288394978418182426857347389026925447817494825298281287809575642362912513619475496325182539203090127798870241278057093729995845286237111168297601417925233100617326546864909334025258860166559299788621432691392452347071863694750109087804337566755694782808671321184655879070268166224706202363139985976668857384970899496459529748236631966647565142236916812219125199644295108828788238439405069218830521065323265134826194977166425943468250965805424056333371543168935513815422064291877882246901206494345090572413219180429246880043731885291531365608613342557023027763313151606359297999605730056536836380426946311750838071152813679649096028642344514187457683748413256544085542724642611718963797142379397219196531294321414163165705177319325451764882850612421845624300470494200714678942239476727021253873446945303739650199367884409642155086501900912527590682209258799602695136606602862288216988589801263863493713568598969924678656564203296245865303264623546506724977682976939911409969255480796290801894715283972021939856342188255310617787183733336071332771386225396394268937251458637653872315931145192554969443739716553058546409219724258364455539954698129397324802845091010114427834209039279239257570806109521326421538017755047430373379171820534134009817992525531419473306006980575234119319018664743503954966461794489305289057161677186819168930665413800685270942014213071903741611189683379347680428478481631145350357695171293342214450212645075123401297798648779995065047765912796119284618798678538498913634854778966004136344409943348704396041271300647922789115126682634283271772052077669438332458436887185267673480741341201756228946651735467381516674338286849509273016866853689585234176848057465660514279513995584793546387689510263176046096835823885712792147512143189138320305308094439761244600882505296238334574011418993331435477533340277563407272269010237440699677087779234218516519971792859190158110127818986140060343145319751299618625545478586631574087124908190093878826731692754436524693763564118496369472620296575493187132309119653481409275414310938794642937956305865515165801230022427844034329896009795081276417861549223169103105536674911337602043715083353632777849412354727149753564210122339148189956586972885249955265112581105249146164463077247215757094833010257697458752309318498882620096811546138683247637630265706213867275213776679977028162624912642730397387026590844209921174062750290837325082766499099908226432653577971724468567937944204957237046757677737650657045835343892868101434346641795571189289197130157568815097253802914460306688595267390089054535318858588504852242942209677604463708260529498449091322006560460694173531505867554161151602490130305003010238098425064216215277759793887463951750460541143123990266552617533535788790331823199001899344022054785098447263269728721272239965173997357329769484368058861099433585684953083276222670397692643271182095362212445212554849749228117577358475084637592984472651202414958819007197049608267248918053253998700191439845644932934311250650003458936828228312852119213708129239348108630148594002474030277882595601448283528176666718311973742215220893025946734716017226714946400794090480663574764077122194390507859669105343505315868011492737840001891987170512064273631322980085392407313175661908465426333129280880256219275840517731971201641124085109099708050378262647285591603402095642093614633788535590290621793133116732416369643115525610231840768639492618919911024242347307822241407348226487883092815438079398529185784241722132359824440309869530465200696027788831930722549543227785702954520524232943427516832900239708288524473287975667008997115191494522385143553363833856582880700989952940179814981307069492178783570125938186255306024000028353366900114273359945337585770203368872794282590614937905868748147154565411201695067094017226627377980382094304433032974906364283056634292201119866734311794861621359228372372114487020747888660441851867533508504175994851983291507832227722651292833713331634839558460789000079026353068772442646526287944326474080575234006637738404426911566504166270060509331354228640037325428434703274820600510564076629882364689620137101222502650926223896607150060537361497983438251258202114992556674830257242197771900263708306602115071830934863056823952551730130739049932986811459329820170283304431017456309719094779872800636313836041123254022932108601237093979064760156030178557751814978513891384303112359575558134399886477421539394326143464101381764125879951810666321328942512439598671645720618142088200864631466951352206223188950284974585305697137483105167247889462986199456389868104029167375344374329892659398573192560349554779530637447963703028853657778101251701713916986730198110556080814847815759169898410172043665318879007716071825876525743574204935716507329751684421083203787355918402398166535834636671975191768096254076021193879394215477416175689702047299963647297872578385046527376660081393368186742894405330252028421034553434761935430045556447159385227051386651713347525159473468271026705423554565038447967730488196191959811819336010490599130445158699277728673838649849993684124568728226389978640465543207806093880660178963119964857794917242765463359769477027678504402554491414069503980155393382767032452102599451615414222366574809616971933867145629358282750703083007004676618220338923490011068398152668837188841213569891524706930378981084459316600643562856073202179525750420414940487583378878359338597084236915179396542757868646801794176277943439273936524001446000975363225144640681044515428163922921638056811322287768788835324906348488482164675430734985060159842031555392857429588986225121034935114557180716282395124211761237032098896708837209448511763696132546700446066974076818706490298808725276190116958094453829456481148030089825796160948647493521113415311067425506641053378379019097436259775500380006576338872451677538553574312693051875123646526228290101275494325480438768156692957765646369235020008550684465955878416240630931431922473693896748919854533119587207056791241000108490165058879177118915528677107047208185019395814420460280339138855046152664872187519218484651577242609629039335945984865556053914406857626372732989038728125946977900125886900506110914119599178089160188614475282957484086418811213616541396625554363809736542473373121159622389063459453965957003357959320610594069653726098778036930010667140323660438918757552240291827009347790848008143688108420758257338738842329207284997214805768899123753570626764920507008793123702147393707569852095429039603113506336154344517201480478012478462934938325446914441158351638217254822234968780407013858419186896807549890573694013607159499657266183830874766210982742517699278014548460546398415778314268465531829845073358463121692715171065234616068071798152655116209352020755700188927931331225223166641286385297039085783676847539133075951807086210885917161963610664605023268465214745242280248348278340977293190349233464358398544751392024046335578556950081298241405180276308164091682297689241594740109933756116312037420337781193493211606148558132558822245419949398389705250270417821475171847278104853751308039438252267802094738803623869731270582414397655650768493152414346625649905416144123503697624847852214536957318830283205604663773210899262112258703849030601623128274298351579868255389632188724235911872034743908434451745814897222674060885804411365266677955177468792858054016875957251755681936405596533324272420615619555108870246505392102623976758424022528494892055087218109174550271156020269221875286542683418625054620672163230872816667773348515027131448236740254659272484601077820719900672252689128114552669140113542885494510511346300974034348545478013077464968488699231702674928084555798430288838477510879174028418282693518082396992387578154757178306147936700082751781272560286969251307674883980486802707077974296026157983099709098060610371093303907839142082354962424087103331852653525207201792341218314986991307977535795057376417387732565408756105095935021372210608083721867448633617849162138972159521279710774428135491853319705455939670666334524780419573553413721154541173817884254300579203535711589334944098158871194713746925972414346593312389068627950723899359162172155357857332577543413418569451037904733336818489209385156328608692243336984156269057569732693317195433933073660299731066611490574651285434689808052996337314192623634297322284612758645130889465327394795475014541763285553792477291206158108605004616190196047773443707282064078540698781240037606755420025651324811530511665051040124448359174517085079569609792477419969614036334374876327494194163094035422244783194784601073734051953647627512483167179872464643834427284448232841616941977861892954327498299763838092769390364136099429574784141809655489130211728220774377053187691895873415464614961045849160011474894430948977952123562829992663542830662007390369622945295503044726483935033758793009544232678762505416574340667770240522881475523728365686912973096444631372172520256687056080086900246070798111705345982415742598081382602475572269282535563088688523358938503474072827142166233392018349142631670328671339063584855944150096383262579111180380008762455813586230184741391644511385244716000335481287769418579775561519950545593950644909365260522080466720381844123777525800581089414447154600486073107464972177349434994496038623932217131035900625099044520624439145401708081181502364250182880048349343700849810630805890792097827701354503464438329180573028414981624360280454412043705913135359197554046454393472843634424868755951650735856670646591956896951438612789589989906153126725658080141912661674580614293727479059541750765188847867168989680951030536491677363902460632480381919012260432814015565542813074355453555636916207376367281806766348696992536539115562984322823245155194407523400996462440155980711378290837644793230443908496115567995963477356753749010472768770888680112070299915717735843696184716583303273956510772845029594033615896433329530586869157337845381429168063191445524101794388115955341666988867586932070597773568823327839637166526511135434276305189718807646539094265011075042189267161784938888855230209856320170152057781853965071309226658314868310484440886707724255516752905894006214879207186440163721275973524719822692443554231205633365940977618993287687294633472868975749817801579352402257923194168751568884950236538008078861054466551573579037773830011042303667439276280985576350643739438507655149327288451145867063059422412034867842220830823478427872916562980994436961193156909723915298745106664429150138299059259624381168834405202662836047609478431083800493434700229114988222456448193140091922778757221611444427240048920770717595409127535951271461303466725076692840042318095554309397827091368052037518753888263396575470558540739780921006049914968246122527003141914509250579340044740851799777093844016740562982664150007221529688156071210808081827729889112333267000362300700565917612721992338067794831868540412965644995760497553860364132220918797458569846680941360184953614010179852242105655427817260040137975272772555208093831461748792081266541080757303480829831961299543037946074699731141935946123223615799313593780545152276123791560643873520056596183723006126623204878230689547309323532508604308828548951030452604426858925383714615929209245483475965758607838361473356750204724871239832429921892702552478635354054049905224135379666871265597947853823629289938521830021233482883445505802553571282309185959107640223163887955036987671155309408364887009200532718660844826667954414240436373973142856204659438135737637032152565183837394260481090540401340806989280031660410152363240492440803930340709068737653613263256434296832316641304509377511209817337704688421391278287609445993509578764184886361675103113808365719001597208419488056348882806528941785027554090362003099838721313610146619135768008496055079820666923387079958251500103521960878291957944014595472855744502299394699793250715727472693975232554466812136236146360136659205756724655151507070949626996855024595057406584043141856994710921167495323712433871913376937572883531636860036949490923348327387246958694144953960584592397426528347974139169309307517838814844324481231991306038770207030609235057572355078473952283815718428010368235611933207358331074500800708965205264007663145261069554415807242833052717772456322085777913698149412732603854368625490048976527777462462536679211948396828256874501004891440371504643100302723546331002308286854745889615880094262533034405375588562730913510095483820017238891717098403645891792773709226794713020682099442612506105083180895629954494886012917087378802468606442496948629630361238627546129039945789754715919668769975940631811947070320412716454031815207193777009508158369227956489975578338903080996476629254487233264763909524887918017988608055401166480996408874229477962566421108479057334547771041387554829612452330968213769961436572234873908234304290209585012919277042001314618271979559362159341869019118136609125926314854018676312612696761481556680271320512640507963398615410622639413741034779251382831261608941635521296929520905610153945673874931142082524968970827589626358545198641589426536255010717022677903540691923015017168682836316395392635822939556232470144797402192947501580908428580067287777821841784401399952459857865049702633664500342581325801092870758570570897253176866565724876603599047018194861566502312601029288552525923661295184107389289617593546797309618847082461776614720777461097754837913366887430557242925398807423942768680628200387418991062111371776183484138561377430611080448484862241191983175232507759131905268324532013337240898613726438565501869417223135156240108823524951026921101805332619680729656936174891566445352696193065164963706116374341143718993979912610572347535191769766791524476129798122404579524710008714151357163940329682988026365091790269468417764999997798505771064611060062725415502185275812352322482461659629178060543479070364174126344464812427063221157508584782171704587502260539389055647832541541464296191007382423580870044772797772236455640112763822965102321074869345533263682848228526447089558973538703400303347063462469283990304106169001531268860147561148592719669696562379221282975490692905927183214561533755766792670011593826831801931574401382582773070317640799171659242492969323721089942590458293753806815966802524058895175297035956741865315638198954038851675572688535838121904899077164078704636131259439927397117063363356277742769157840276619299026647039546591687401013369766481717897136392916185914595361124517693572744698264622730181346042761458653049857508726235960930547034770961683643521847451549868933019073914762661512523290566628243557305481174478728892734217415286827278711136317330390124379050028782289190889149893002901144032544295222622742156304976272036007372467079705130045327574058304027238689466327217018126722024592845040880470524465508597679638311110832532554231541893990011367196820104708858218229592247959892613963819150213533398721689030610959738705981295721690628495355353357176118215462185413893232406455623300359615692345294832950865132809519099291002063178857746170002069450770555272471317865293336700755227390952733989129533165760776588513863050085971349612989935564341697273249890655504750446006384994402895646919047003914297179863480783546541548933974955503101729641878234255042613690165251652874251372911343056770870058905084795563078256524439844237954584782010004124060210292023339042867074736154494150993998180123139076594251958012921551531215449482846657490480217278237424053817901651645111835729213567114525218932588882977025966677022084542242585756094832695086510424666980708192499973007323998244504796154735168787094027526327532559197945921228145847748701171614982756875576983240048077484444847410116835567722553124841540247432770221143428764922030084072700965148306473430996374746837087247944509284958291616802817729491926542057926488836476053385693692491080829665971100883015210019203070584693642679631887681630200849258590589446844570104303439064822737711483554961902816781249403918756725943122519728432268643719328205761624744037975679059140296452468089910009768455457088704488653518442369022719077724082513144634264036923171735252386454731555790221906482559843282948583086087156259954076907455729920536134221326552622109251363885022814903713208118631319055694579179228970577231657430346617113078673339237509342599566699748058710911052452040997506229100176471745132906872454573261013286199727170415840238896664409386414422643194240819743294392639465471790593131220835020084802157582321392694774081327923388554124109485903006098325300843738516497419838852514543060304128074828462104826060094090777612947279022532639010372957879469813008821246710075119190511509876993423106251617178862609097971909197322732127647998800031335843366432101174069127350332062062965871297402266257936236499169380794839199089163897587000988716352601022501933558055845710235550803716345690517943218515624450017426231540617392676396260223252965370454681577581883598981165260072591170008310714700614059660641103090745549340253925432433860643252630763044012416736828300792916010884037447079001652215692034565744365103786545606123581085828748339889271756515834175809462913475462466754034274275171604362088917265893500911603382818987718192821603026014237851938774849076128380611560977163365423484605484762378647092318073695160900170664264266319160835593011117836739098727097710220821291219122899573357346344376073824071212177742387140466045640220800154355821014013947425717651861769386692268620225216851384180474953092524181203555367988890909666202100348745815615594632749824111408878285895655122579242190911981546671246875734178353211069625490003932562770334608942671135910528531810538625083877118534419147442970650407312450153742963899740457783088661104891909026477339648875335297331790731104204220999265358452880616733540995761459891512288714874286150154081295695319984153047341517018996664928452374565856337470715558585150737386926440966126446879055836714152717524846908628343615567984023093729477899565211220454087175011180123646192440803311266888803583800389119822476681680111913344873196787265735187261868235928533163668524693839293594163567730046578903593146648228510556956977423085425891601816096909415342544550372043642251449330231711707472276766467824365107020144024922094043675434678094345771751099622133651503685746636339986256062764329582317893244072090386442894895977795342592287594746054258428610825966593014794422731160328069720386418166256993468382946268515864637389911947191283577577135592707300906825413068344872413097854926392590753120823084595529195649087398584548552693172436355179687206106647627772558353625094820267956621130123681566250418082784159067730677428917635586196014803038185687217113863309158187339585223474959833982888357612444383703149051438105877843537528332538612564811070788992645094945415407066561136822913941446790374323248137636288392958151898202323573849132444172693438264920911300480734706940911538624644963187943577204185150157593321098295273756990931819699303282297462463070381544264725247671791688654424071268017969349059922032753617977212352043641975058963064681273710972354740337014057260561709112122533082130227094641209439421628531409422688067363335908626930351166623420524346751603345041466562677441997755401059083182258274722887205350035707063903460305240465411848061081811717872469666120619450812252171469401143425532178173921240869662920661456082418157700683863542827678450553761960843404010125205115835221713604658853858334121400799528258436266263059750854892077271407117285427519595780713693334691219664348014214269703053518393016340715936386518606274652531332854574321774171544210092137762710394907029536433311789617722701477422777089211816720144523363248507878731921028783869804157198454931994796157868412545920313877825313900589412570291695934956017074804416584811356067440619196952533873946396319202363316224793357475775814469868057235313076185158821819735376415529623354951700287453626625297221187202138274284992229716446543199838584252675748007742031423793643179058871069553385086149865097832020734972122336481902257297939469476620009571749473914363320516427138838567974758623989153892633241293486156197994919105538900883712111286361100772296013106875603823359565467974312403117724959119915397363280874344454797824560618236958563470947140532895268973635044117598315836010547910080555636561092933059364379497410325589494940080910144637789272878476814072197797126609412804467235688914536599805378855127173720398043515568363349581354925279221616081887789275752539441095849717641725408791324319075553501624792782962781155719082764952970603363843977749339124855244014932338399369072932232813970674692455161698767509624087237494503731491330455438705928044691998224648657828289479194222304848130474416538985476806818352075592106172136289487815640582271642259741937228806755445865575174359858940296271769114130565118475103338028750711899198311341734184506883326663234433787063675765077773035206586572587309004318703813707655902929931506922994512891593396272267481598013912315396429373246704982252020784153988917942997789250750516101977035977874034373663323911097608755204748550791977247415039073934881403947161123565935711690719839882985827220520414910230788719734356766504427615344368530380428149278892292924976422254121804023538736550475190974489068962246221681037463243330142325062969176588409546194775280238899109188451120957795531866790710780603540782474376328938489159562502436313634071335795280873278617998704361712581271785676581051363177126770938738878560423395790027005205238116292545250615843383724198858829986164280287752767755849477493205997629126692436606083302518781528849641777608746559869588452977839786836137082213731100505121183377141304934183470191692293031735132571758180926177056084278700108141800661525398972156220109521196453172025447449906482151726160991858803703418195071908979697983444430730818470580742406358466364371138979653430276064578878094800328523686305309964255660287712952093250790195676752950132049819364056298695501210651550346226209765005748646933934732504023017208727496925724638534530107551777613858471371307321379104793019308947068107736970717393104784073474904339623789226223047675009382089468138181940799735168345443807918429372886912537051167804128113678822056958066351340446116175168942523490944725260455544416634383143682934266565483095562249759831004983085489224589097530990648589630279627946077409795773948216227689524482267317905475641063227207498094686939094502041823486233278869501187960882803112743146890168282049602450146195362198009265114490695012576717542269166573473045912190049860840809548068528095012828427272686785138295386158417187561322159714529595198899594073637079688339372563529866252641581127379898802123399805007087463964995322368930024247248740403932800573397923300575564721572366248506912032230743548286727571951890197767178632378712208661925558729293500809036644766855027427021736201519441588189642237752651191219484168949526255934155801901068248041320771179774737012242067616899895589359407108416454393975102857483411548080484978354482186442282563316427494702662561374680790134728589504241929710453146448415815236713970965333304256031362148023752476512113429006041043472642393575183277404803654403511030788793984873034097713298482587611029165449947675748309449291167794837783873774916077516092538575858602587494523029079719177722375242183512567842792055088374981091323409587985552091652316859446205102802818458789717183272546652976300874909117753608784898227412787725814221294220679621930236491133726260037825989127451923684864234759014969136523290732666969668973979441850435498735266713821413044492487832850657887856283957911900764789551469511920242201036778160184033276594577653792949682316568594706865862169995371434188016749179325985179599896065746796124358271015383607356877013850211492226208475278863392277997356692993173463397042775741310457440490115556490533469051982204722337053432933819250388072496751993361022474656320267495861390602198261012265854030089567787700817553440177967495755014602440183561188491772509058138781361446177792712078085996644786835640380011879224263953540031730593505002640623460880168894775398065287157257764410507746905368768104692701986978447440874266194291549195343082882813451140139354617879667911166257054339213307749758527632040095862495174857438769663795283899540891237109405947945342520647267961306723810408920399105534815440140587133791574267677114470569470946128565740375026237040851309477520898021358685963203468230155262126368929829785169662043580958363619506127685141543379305775011610273854791302789449672116854632742931789400306543036705605357699449246866009820935675144405737329816729197075015041870210443414337712646702662063129139041586571721614294511666567408243713171120698914126894125326280653936017469197155171504478929983227612765447356329111493957608338521055290570876401165325888424120033537732194043339139144203991625820780256457215276031959385220997927175617807700042499028838252422327476261930383925725593131423728467905061331208735267504938269467997225717925596835537824311306878236790837575115559579945266475712611167461599492219591891868340488417578493826559489153028908316659298727594112568720078388177778944203843122025508535974842067287470877136107673612524232983947159926810200179887916773993145581386997308617834243857744894050804414436972835167404638174086730174007509258060735778483107073087836116141219542088727220410267959897903050288083756832095881147978532520519528933801950382566700169751879119031017193780451655691082249227656818935990754469725385100825791695746900026247749871025827788434305861577252435018705593041011836172892414979336292808425735571001464188117787740800475838593928488856391161151362947285480935147293261460520314773217811307907450341048556488318030989249634296713935251165654273761593352920621763981285280125698051466790060226644124556977419241765219312620556441055204368982621119144190914416662407657875118908753323334881074885534041285597392877940048104601745332304122642228498161645621625751161337757009583127923358878895725072063724330041438349356568590272295146233870451499168507804462008506630562190419697731506386813846180552844149307389689599564005999688574987968756520936379555552528271623788719562306180608837183334841386123297046208284950691368129903730752183727750566792444445068661809495902125334720039665639914613310682305736995037252563284224053477517978258600480882230911822202295182311574942345487182164235137015409012861378338281508577498823816687283963950380423571387898251898177299514227367246155832639431846836472478115202055472818053801209844578961181266891637585330744575974594960830627809559657705377325863693290830093220504900655251607045477796138957065991509079350732681669977045046082554331629269156067188707308141061004350314849377013869189550823533571695303840593457216970124281200270896077750493167341505851531329560882331845727859410624450180043854498222541830506126168848395236765315152663285542964970414790573901633348636431207548606962760364233061557007610390172598837912082075014578195821419811321428421133970726279509074742178544973832988819828166058831536190655627802262659321446589833694060999445890463358099700435592580141523599548018876430482326972326404491548853775272909847743236799601028017474573359284753405808361304795739362756067999099890273191081522390822406646848004950765616893655579321717661457711871461336907500401050349052768443300856637281907258567538569561216562693570624618739275618733951563450843457602921603597406765784044622755257105624498002930637046969721933479833096529877969596870106990438639413223013349492807778806595518408095932848178666737237843764173228926173815501968256756980364562357276482989800798696715404841664453720998373739286901680453470355355414034587776173797677715300399346282629083199668607073091377938878760023555483223993432636101677942454370901116212956198747306142860353536850341944475952298306602120241287529395277719465142805254793911564468801915821418582740303389793771028440346416387978257161867199132920370971555852148709062035046458340724520720105007476997503807005613749343115844297718819741707564360508629166009432587861581017267920710379307226007315487417137955213847444100120620637805688005898452351578543752758667988313266125808037436327942140946552802878375363594713181373144227547809104623958021130283748361916541006029551440343054366772733664345733282473232896049093215743126341973912149855882776871671433101185574074263110352839963652473966618488571569292469910149032535207829822626927112709921472985339694815098804501835693061335685552702355042935703886255239503717706008631304811917017672878363860520235591043762219374864410179016898050520947308770262229252212603105012359297646628927132403063454869979773272130776017407082641003003780075125959146916201733302246574319760483360070902088569502403572234145904253477147122362254172679122144073609521066797062779516145039520330409028990930215559378352436617311167192479723686014325245185667557804395345892038033668031969724508601445374457937768467837750200907708241538857989801268545372822376529475864417210415189270278442753457946860617501532579514804358087059609697861635496850476457405786025063383692168414743694004231178763718176341038788536804387377968424775865755175860710440181401186047264548774749470928056325148023966211831368216422319232097001571991080003403408375399342945803088587848209692489140676500874635411643046113949901087016347954325343308704219763576731834642678871828726652698335381131919063881151921260312625409945406752033682799712635545385936913815761837079683833387762405444983924860562624343031421462274359305647366457807835555763006794095345333655691210310295332512400100034614169288588996724505059693382768756758346402014345664292091845853088137987909048740160810045350833612329266081305720379867328406547159072445025452960728579223551750147042691631762416373710560071415851626765896489843148529986013461173231895764480407736558162451854880357684175299031431064280404093332491889422885287307825210723429297426271112928899249111873820180762899444104437715570315081280604722804480750592482826297350505379577031640086004758347242034380816645310550290977460382100489213439220083923282854184828475207431044383726848205959553990941594779309290506282838658522797496992969415288135461802564768409977755652095195811753856222778123848778245582307997859163504156199300810169635972508062490293014166476514715858202958348573381560821031877768624489751286235573300581702099521264509376588062118767804299952500746983825968111439753046343432248092417796401510769607595533534116844326379695593592610681616318001889988076802429973226247346018311147622117643257217911351351693266793855375731126633519694826195754988481031105739944882620725966403214635033222596848712308722713634389119802243580717501354517990974256945339764440030797293221415450549547488817639144802229031391165004009980991964753976067905435714806595343115031353976225377719431173030944528742619780034657516023927673858189868858909127959368631684327223867375037164895463069323497547230590912191404419368418759115055110427922204460389713989457938648960004444342710577554929893076826309049060387570030688422923449104103580744162337601572484076875143050129961648113553984438798400502227805051327441984310134903558101679306435453929616151407504640195782032157085529305532570044602492360903305691115730034788086624200713441161604084813279284043731767646422454741176773272610228554944047457990350980444799274566050140445596482225491149266596954333907368343640441764603319462950298812849449041034351520159023398862408335882406896400192641373328966028228663504882412228193941746338905431255875089334259841220964071133618509389180188784369483011399741352833751844976401893300200543903145238399992699643523596220470759366086655304328042668074300696295625645750802171651081022225871082781018768766803276122267039759606419828982041855368994608375921308728078067992692959938626908288391006245711875368222160857028969019580487357067169180198110518371916571944663064072575705465699242466923388835368974480236538198243748642413252355162117083229772773620158913331739973562969646156246768195073032702918530857279387433595659637571050850837804161212744965077372929831735173866096854180648305424505776140088672052354801844569319547751063212972716183709745490603030023365124783363581659571264684968707330877753728546370887400867763334497894021561930627267925818613295891512678358120295960858163219592550757202110783630301698370641203466272774788879914075890296105893622000400126019966251355436634971872213216836039994661060369691751677430175522323759695240245449947094475041375971684035075549794456385965447488538294445788243929440482690894896279628453022254711386266341614380749229418289674451860710874400429272009403023741056717373691754689046148958294781714806015666488686532545733331528460522095982093494633639920688387371846019061826487512830398129845661383050956450892696776771846122589429604388216339605674277710614046440097752448979333427296608063514068838804156252436014504679820569590363223230690071094858119732783767880154384006442202108643291070464107525554295123523668894464551155895438778664890861846953812773621086471397723284186154429744281187834598988130604447078431265247573366887287706078547562539412419125883085109948750662889745664040135044615891982246972191773964584770804473633055814177447819572832236104205296706426829718194757281165087295110803109006267416854143162931961730217790066018326873083110643683591435569535538326542729267759382940013120929844548720131308048098279974919934870574499456884051641928332756278706977490638268572003417597384882018944972665069671198301295914386977619138633346498435216275452798129824597499805732696298140442487752920368171671992192956514430220396520174679037147232960157349193991719252125556390608767880648092982092091867626355644082645351511796370355789816244560074638336087191710854906095469629491454448831203283524970922507855745456568912100401561060054160211905637302743321481824560873483526483574481722045745687992719028145518315256816310547336414191929456136211345610861642134183316805597269418516848254273884998338317530722815098338016739532966264143689761860018026263632986100381018493524073483843201187873871633778903080351455487307861441503210755369118905939686108612346453511531844360123448038345649069878523031039473267766898672793020097311278369083262281714729739536408448214143994491049327525415448114564168296168140265827647996608674416506912819448861107374356570334920139909264049203940621870464893757544344320343916142139535636737506824771409849805871154368414646888709889947617217993065880886695515704495096813215645664887086631047660987111317614469854300983822170195814792556958947156236217972015879988643957454908886001716073868178199769199899946606490368671866142252940065393154950189126595984930714134708872561479022225735247952795214022619249556916902607882916990960412371942076281510720397415893227530696378466844747439394223031543378625652735748914298343836944010750853596122933912565219770824905288254025875953772497753242249695142668907892113066616507762820928305547442534438429548777164688775246671156162085986703765148339065304999608100652613829323939699925449744983321456642816590796800634362388516854396757592209160779982991086380641699878544312402518227077062799823829918825480546399534860785606928187198175287281266607998217411393574898229614805968101444206002957311133666143616867024727954762287685139937978258999874423957265504461461155592101082843005068928810751164823370213150150638194073142536596346543465319316425594060419892468889446905338635268163987750230352606966197834001039953044788414011131783056915153011594243155132913348665155246516012373370412605897670710406502112830395519279466419836791265225871547792706956584957136770292387425706215294057988485967106274611590146520120698767919963267264740453754618465897152963002686027243024523425222210600855588726914298293012579965152142227249014620644948249928651152629766249078877497784534927721754738270903078018380728723862588488296468552954190521389303125448213365960790134830587869360201125488700917840376560485038817236445934959859188394509276427958599038055395145009722402475497602250028548644450199372736140678602379745452706381925814045616155397742503173969296617389207645658136164867339539351540934695044756646417614148104011239129038735531682407527531971629110455503531066075409140213949442562282485134650182902238349544852708959690224254038014055782240050443040000692401587278609883111629615560300116387480295733534681251657275787958728561223702078338090127446288558285036960006846567456835251639739083049700099845756635206793356036389201050993442660381261030640802110672403771412829943557019972353028037914113391042406596905710080413130270828318123795925849309231099831690947211567997372807271939500400485371645051648789814491318321312950296992210601126009329658223763361700860471391846863802505078820824161357206036947117813692270714124166740934930786723212632525564459412951523137238754249680387985758847849493616828796196320676477151233250688273106077119462685422495026963177019218692822773484441112304117919212118798635985877126306955430207424251088800401469610062793364538674521471464307296852388307540369758387202808601133205356390592845654781585193791174208900309778651959521693224055103477176198778628826645391191464182177123947503058782021485168241639892970648122685724679566440866940572983718794771250620142663258953137673110806170725067463929200066754924471262124000773348197787022599161681173100645304850216877588207005109042250918610741964195273293852047160517298495919843738266870926036375834137827322507900764738702977232264745574446422366638076525925183139334345058315921141660269155461101479433604434490484350099634008946842858400372846620260046644263119347819154782118289106377201702759569786547423928911828608101371100063473781656643483244426423664018093539646765153755252945370521065092757682016594971499699592172127803612369974946953110736205047220083835035947779159609171292344238390669074041635843582255355079963098295823796806630147373987496261176477468588651652154996786927622089794234141370080185091065259668696613037442811423528082051072682940074082945200221579726714066909410995843034739554841003762276390296859491320749942578997699718222932877824907319979761179299682669918636041986734351629876682303288729238993372697622569201483198581729997219979672567649260029742767016226660179879057136458786297695430635289445191093995779818990494418614514376918325537057582186663655350788936419189443404888381235208451558718216129283089853052285304993526346680829882350731471835910072128396497974372670897246817118832363735135583439979231607184538732305932555227353858818394063098125086799101964201997282408846614921195631818485639383113695720394835681618253140517427634443508479973334565787904208907532114084939098836353683643928874881640431857205451650467003771123681368067917848496526600842111292677512609521545071960407871236365643087399467370150914612124453718443509719525538701244176697360866460435890222461845589317181004454978804939239675314846006861500596115667329279199629116039926146727970258665622286604342798966408914791225744991402449584032459485425495844732620520844120814077767780035134685340356907599561505707407076494615748415243805322213201465449162602118633639819222027475840913661522026829779576626554522340722216292343536189716619460499449410534571341866131145589254246036379373177505057198203278692108294886341776467248698028431615687148183151269930681006163181920653800403683743567829860814752751706371150499008285812840413644982366618578130310749801361274520451422748750252021447738214556903507179888942545837378727956688899719761631282839601911967684678498794802710442245118075471794269498259279167523277320621622121996158656039150925366971578424563847450056558457751153111525302643480209090168242582160482170652234731444125990502181474561739583451378546870024328770569248728262532467221140954448116058966408645677169548306466097078183396572048761080149171747688196636929317158892283240978076445010521386486522784478287755625763657866341721525588509280786575540297256822581325712749207543234211248519685032260462823608220195816634445011528077156561193853869508970731440004638263878442305260080545682510408784102824620365112006947533517990422812220202854839165244701186682830711170726677769865360894205495994899584365925426651572532379745675268744795992525555013115405278632542904232074821474709102734350860824800055823828045520021422174460895231009831459137136021726780001187362791630192963108498728187043797590196207190859836493121271444956036321471431227647707349023936332178346719339057137161082119052644017509670228605956014902516058744399481327060630193652646736352178354134200246593302487351679405089127151504185808550534216882406243669796710259032003238219933375582769357019379808300616065264204310605505213467553866064667056042500265488433270994945775981107805514807171400751077291655846000201096417939798737061097708333339917684427335567766686958280246434353483310179084008839164198447823333332247571594534124009196511486270726235160153483836988178357464431604944070955745377165759319754670242926603865106305484874252965214504715661630272117901978024735225604527512798064304395845536863879554368954064524712173883258595765941396372859008443824074321760440593690499138820005378853217488503136659265123165294527845427041467670644013137914367093087778967499121851814399661938875671579866986794679719998776982901300677343465931494272092039864099794632782341341563721361151764792149010752382412266368569498280717098458427602274285945120478998891765986967728601411077292460489048778628867369901260184441776316249105837983082760950693717637025446417285637915095170005749220463632872366947898612002637091514880472800168311201199594858828674000339718284797792206638793582416535372680995682259146528519696711416153512825399024851452554687092374171848776142365768598580212047874075360450506438681942779721695548948154202500734312222395777572697846231132306854066347121254187742122968988843024173273537707100412674180323376805466646857446945747505298765910024672446195132720131326333381092048913132453241693829123487345627986297165880783255306257475956991115802479815201278480299191867527035934746847797672139348739370376743401024583454248914163480750115882113171771773004981608025943712095445284038186442090198371154562967985206213259566508570262891568043586852471935384293723677727681376275390013715625401195104103051828829791407145481739297270160251120377102860789939449313940780311667482131501066974507339735687308896175460545988347687273593428435304003365121996099579910108725832483509568622633345698955558376972908886234096045858278513910319723170287605225174287871145433650248164847742369077108318754906266882427462835762342347056085914532472489841217421911064487133184345558325596108124072845734720771197730119948989503939617800039144702329286220018535372484206327172040880831823815712406332163043551361584176882970040826239534508560590522412168874234497524945455287928531124264408912626501371658898892947223100132033755704717322211644930519475705424266557888411576244695986915416192136647606131563819750728646679460202429088246786531437974617382903913778784086309187789666998213806505342022333921473886462030649459382194440713811733734816475082550701522274546243553939520391019247531288961861376533764173622675576956765078645124199432181998680302102182198095270137236270515697614675374599997539971251292039635117680448000074379433644254832600987517812245844119459501813507179654558675884901189983937827427261286455971438200150871297481689739589714177783712240081226159672559368994315522235124102869124046909036518708584009661740427148307839913931239461462562785243612008966181788343696174271665949906187109810816756871838341352472599978011885357313454072306077257222207307063497733328732954488544551402571344770501070080154350259648825576786727090507877338200111320757132398699881778053024327857842799060252081793346956994900428582761019905411451360167635093796767906509042431717451213890508874201704673261509781031547202508709911576973408605827293200616370180533305392869298051062567257722103316245724286768805525824286674730949702536840098867227666207208775418464056786813717390455876564932203958776112243645556846646278218752162412694230068574362545718928121958650374156258801651240377329556320025630050708500225451859643697944022290761318553027247397960716276439281025409548906807465022709072960207706409024323261118930469280705015455916676227887008659247885733993531701162714940163565466626555710822848269604970324383296816367136635542424508306378571229541208369195034323370214943996768119692939412967893617722718943674219849939241687762226458710318676321932132672880371699093987409454241564762070936326590700066509298201950227624207076193072512318513764216136137224732043270526518161874624882394349562263432399214782949465111580489519742528714777983571142702967261774436625512850842621219323041428031023082311680250966167525815686120979875623505169956025077948220882521344000039635887917247823930792169950534881263899916111917805979974961699157520646662454325578874370774404643893953490331763164619254222774191092232157143335066086261544421159822305112313491885700766215261287017550108537225560030730332602976252956716841139483192677062134207222216299451462716030547282905037753063379888071214579121353181356644785650823672932017056799666935783516910225871305348595704779712391675870048222180261498157901261784025290266446449681820716265941069916423570143910687340390415219926590120771706417927684445405689707245603978709350230349367659964356239952925282664738294905931163602485836703538172652797354059444913931871801686407241346253607158362267389752713381790614699323356221223849921613457825800074416663510811502386972828773620029259555559694853717217079424732591112506710631130528618031814865382304100792133043712783573879438796973945168820853432640172810440484770608814663791763940774246032862521790387208042712096459830568367605169803121653464236454997610128946007287507767515614184031557843535787326573591129094343799471693512382075627989736163864030088273964243908121956446533294655575608386693737545080336515789044197717172154832576396811790264966223592730338664167339791775233016616250861251065802868438432975705354091053796776723465199584992480001682544888663263947971368063333331640876052279550614507375001359672279501698028382191147763102363331524425470192969301717932098950906695170174558747834827867322645823357570593417860675685275386157489499308240676555643538326884174664890027783201675160599952161636122528584132398537323029791222995503706148431139403950247569709913117282567200807308478119932068888414518853622527320448022830313536068674631857357677067295798206165978879235115292190123868520103181461425431386585375951065830709390090541321982902809604479268953584668013101475227902052564477043612211404397171371012405897033989646510906977879063276087696385801991503998589195296324671949126301287022651764400684652562761425192924280843823815170364033112287553782059665571619617226419161526416362749116199343538393321441653370417685748805326495019373250448580147891489701630166071148338650260853611447276275376966428668941016021434590047901865994178884183627669361668244118047725283801480939711467919841980438537500374966274231085627183025212618359907737359692537788812812480795472803671416077785944183533430738746450970502296564317601406145924304887556275087699364361324819950173401218493372564624361305444127367966188470833250480668105639959371342189304157395365750255843997837295652312653851983400671775728248223297291305984457270733919921737496686006327174090985778641292484082549580773454827823108794190368747417662315662691352616050403883916568248330796835507221437481720206396385615521604901243929781048696679154713330271565354777345393569897710439204875744161208096954015618663548351723880023601640343547716199671464555069248068513838675530959883611910860093383577574998494447721947964901034360045955852204949088003004673065141645396925574828375119224808685879341642319329394980328069552406086495534939938613497443479987199814810234360925316528725047897583752371687463320726518997379635481509134289841268561401345132726451950828420999423880645941477902873754822772529930694436566237441526202055525354980078141047275147396523699519505920950801208617495632440473454007647225295430867982528507753940924121034402536175150154213920144007226877130008765573925420258904806023911001333493860303250607287060331050498760739758300838381642502790837261919156831123367112269481224631827527259501969658955055877313421545065521795875483494121252615331042699843705045317870548801594289564772185647913968376873592506171276421243028645250332855566872059585554543883516690915002211994481525179629851937919551545542908516086182942629019303181050058321689286979494196420938039180790262997823449531748328179549821219812675367432399730796632033092732394397372503843746615260644474548221361308736550621799827487160635974877794435185833328645324555341832624530280884372274030597559963667345772943360313111751812558260175825498842198734990839302963130589839491303943294218809890615199424575662832126293342379851036457737813591894601864061320721661942369878520654172418219198463014385903464275672596701419449808819252922796342486305151076049548039101943161579978549433750493321506146712221136649311696650100875431153840178199552076167387190203986872129978650330455612247943200877091710808269068397106052743563620166502566440083986934531058387588806262695507564696577992055387681537264149877973611014817285313461870462791512999070313714463255237400524932260186880269291718786654329726306635155964692425429780770683826258345141033884205735884209593229009057245026918021112210571777895987327697867599141989976015246873804463930260802017032366461957417056306353995883951021825859584902586020660130747375432682870993173172236583441582189708534825525850841769786630505925476048003728468322607239551178564372725274406922160199439609073502430646597475882192015638868574486184175207598101619447078701699091040756034505200567828179616851926619167045313659816180931648674332252069954726110065405028451255407428658137966251535394993833404539515656985182042295083291841200521302022793744492681519864964790257932827702167227726821244125361431137628599745902622353609974096314223561934486843376356335636842533755209088906961198723759787239178573775808274275604893025799411501057859971067807420743022416646818106322896627735931237727120766256288996666679640836189860526426764349947253540685356308992393859492258369892192040148892462434154750685588018491087742523525989500516558705902589820472467814404814847157518783271563181134612772077835035007242748672988188177355365180787168175318892820469051537580497720300258598249212559181125765525711715126027437654927332292359305498945370969035661875970274330962246601257270643405844395355931946808392242819924908030097837774143536530790139536056314801835400414030637543850984929367229913477494792096518541685416423427737437865031787795683884590682423146173091866338024469184382254169562891800430766289530533151119389263765467938572618490810830887275957370921890708105121799964480747817068454667091244641812524312118090870277879719588315042737531065231868408433890865279884766923411497931482278050980670022072439109919480690631465833891051268242407284692500362239277667884515616881633315223812249359624091434654235031794265162372830449746830867684792439084207061222038269091311565945039013076978839132837276923550611368847257542624712013664077632370508088815375333869020999048627405750208513696089407577928579067829293731188296526845368532220949168986541356574193652900761262642202358046671347550097438860136465874893481148005361616248304541900225387430645147128156898095974611410336212293725779721460638987355171457706852199574528594273874771050408842809449601195618751404639407999540856997258490120510305673263420080331185934738364675390556728522800699423109479053914465573041414680830946802626708817457883940357815174196806112024775559050805277701209468888263684259855098394735802643322395973293351255457999494371251933867147998583300980365048289561910538355075924455314964363701963638869619798235699385026397404818446277908031948922144766124351683421006138607642263114445638834906022504690366472988530452283597008328761117945558751111596334994137435544673143978956491284875013874624188811539781579750554201758062130657913909915725728680239919952081605478022766229683697424416521559732446908414032534304433445429540759724453384058248626440191071074818938712296280402239471528411512229067615437259233755624034090717010237962814427753127519846173604007459251987681131397916904710518212272942877213207411310337540684959736733151882830180550556731528324428610566943837292887381572903571702031852655696403040580566945978091380245388360354097205866724830797080185731994873128605730191040803409386748000252689925424110202172525030369569838529237626222467348369823375253681127543795227909350976629344713434366954818896444932669812807264244860705609257130236957172893007734610750288692032246161916558511014626709016490465684840627504448299630951743875636377385758263477862465778391655604867492311447556219661503881971016109369616016517388069879638894069757494350710985768093475134037762104355065219410719527889468071191002434088752043160465262796012907002120597325304024677299757136535532500756847348577309507502113828312124152732355794698564516470144037981435558615783792469481504821600031295382417723551883482874911820822641239859976653513312376237437022768964618139471664586819854041575113460831164108927439255172694268159023064536632031796661666739748048241026394146842987064251192302516995806944553442195803619615294096240101403923134621102116194817657836829439665953934507494702797250939614767061330230279008218467629976839588276518513356055562517153712787814492800616808601753792756183507522513947714445627457740463753241308699645924989286321964806769936545098474308654884335539512624144233152096731996902234496926585558162973907108440824179177316210373755242214783897212437178468210797713538985896881850910053669292507340367350603210065733006265915920202883944540151075830245508824103879574049955526684098268600167044850565838154319248660174259394630725340458716503093844246150853067308316585475576369593558416683250639308095500293036253907954504300273739324713966271152319033951701155259547128106758390786132122562416241102957431902731771589577815395604271848848998621471601928570536115739136679285886833589822009218292177306720189165686690053050097420136473203506958119212187756829368012179802595339785392396714718926485021716614838918545109292966378187802978142108090121490566930515998317681540526303664840454550946171946006758703429492318641399729516537193713353813800011862264004660665521559215338107774820836969964231571052619574261284884666071550508801628229458525186810565170631616489776403334729162329621892275926773476080910569979278254515191721242226179681032139958292868667183849998659132166558791538093146733367766334196996067376424051930934125600233391410672448692958251828814648836175202473816946782397401137130347347617166359246952351426244703774767895973447031917459162981311407849315571734522433781126393595834343474501421122604798590317611377382702497686605247127949915927591536817258135190702965170095992349473591954330675992851072850041584234874518404680903316450519227600132999526308223244665143797411693212610243085675416993946629602515233818044471100066660520545116457729256012107608061084857802707782884549358299636612316841520846334993943659212542912628117297612986143286600236319523070320548248101500203059484054585033026683043482420158835528098683886872577037502214235421909215730625922319776116961663661237986281079560855923306488064760043033949264762478548070334375755681284080616600700299907996446938920141317894541595907709533822240623663997699604875358933754395911706739457100674909653823632133640097323389419905841809653436802072635667579859787313142334827566413969672116717944972103432654579111702104721408187146800334396553224394434189458906949301265628131860895533850861878719498718553622219558100119366614961703404348480429895103502208621959557460845844843236260687405629184913832619079931043175208641248962659446979023624104254419656182622000527899916336560695652874745423956361726435517067909688427398981805639874677640539835924186318903813579811454577027313973885643441543455329186643634809294401808664100772583106586663634468478825758879993214752319568217395687537371769902118997611534239807008099180062155457655649763717435361111463317436990280299121250856266180410969048470452644649487867885440211024508729859161540066787102336096886722320120554437325661306276386780456403766904034679859823556611780245784235321145846528843030238303796902874806681697512022374716769672430195977391046961291695709109020474910014150998690189540169342687779378048529119821869817547183574971546849981261151354933657586342903954901402405226666688375037271277803568132095550057624386680692454592639490974150124340330870632418621949444358499862716206565777123702398955132957923189490340648944490162165242212105754812407277810425607482400373520636481622337037034097663351415521399325877349928655330185729550995667063556547878864403121002403068420621272861706822211840334474609687092285032305989377105507774920870299908556935142545346105483150998239980691824385027258098033616599651173193140513845063719522621666775953859786665297108179741078243733831372034768826619659526116650461388994361101725076085581200231330982441799741330804557836142375297675313062780034701939297632201943210727706043427552794396694175495961610564469918442224267393943579665429795267306562324487456272003755143338853923518252935437965194234290570898222197225397612401173990933207848243975596062889670348606156595520845348034924810259429315448785250179556079391341031151344503502759731678995922343437952429051313533703458572790380515943096019715710567145646912864329054264052203326727652503486281609363509172263215380694373349279153090215162099485463283258798394227664181852030149747253488718903604659550839896386308450859150089923037377717180070114370633500735198925913089529004383336072539080936941090107472543142264881732282776990279380530262922838502984174768064366364624822922861873539940804002928665970951445375733132917229991704071735284058179083658429554499394329350367177035508720544257353968667087465715827159774087028155302471923526492121989706168810326307508325483415446650817301956696067589933078264027668569152062302748683541004173404382667702042164410248221660435409726600547457087047312619798476364019516764727017105348916817610651332581708222070657456551334208856754866951893832500767788633785864826489385566342816308881690221878728530988777827663788895777059816669933689898232832878348762269793162879816053684814043015716995187035125693854816596955037596218928423066111775818602052641028191727215712362836291721886425315454983153707625090069503832780467652818986011378718065516536358975454344499449011919440337712299881337865106905785257671636729596456399941229833712711866789962944543533889420532835086915473403268722098711173001101016808774759499826680522423246224617674752333599235441648842785349541676290533475753480275347505029099222635432358159267409881789582941420511285717262770022195947703862040890667785058803586213451892593350582323903361961335239055312714972608620826521327205848005039581465661424428160978198835373102808926726013461903644613668202379036652393702333301012672779452596699248350683194729179482316690961790026503072117865365213770547176534884609894169069680706835519684518891608049696229415464637203643727468508171655125310616685015750712323934998224958468907934542388749127285922957118553094682864814036288669048880431054509949091800187367384590782100073141876257245128111882021804143715140145273071675099506065511510690913304512838685627214688114246357226402496054941279766854311013500580587570065141752218966138930183080193237463690185171101563786423043494164795962957998841149133793600110612069228967444666676082617958140221977360189993229284492949009982883338963441141425631030083201975719551097494939232605974413019664195890351979026413683844535099640081267553041649200437874410257836670151889632859864945892173545843209744839787980963717574379203769857522585984612156545522579526503931027727761135694815273928879422453495096594013421735189814604503052434911686177449607355319734788978330388077447146803812216504311835824219368754449505601547017947326690901637716618295879347349092192910109884265260202463386473545044261700263461303561901369100997627734356798094291540596538395858999634012513599156035583040965591826411185274385368119568119601472277298592334999835336217481884167864182849168663355877822457959813344935838030850056702128341590849191215703566490135453736347840426702879035179132030551094520967684530423404533517572594570026207141063138265075259032479971558205463614299380280921196204914863255182934957767846465078598927949415169651850558666859321253824406597327756241784015445891840408481817947192896088723518958856756754474762035369564911208825613314007999835181668727781999347270072290225700539232655109904977777986725848498716252157427958406490595208939591910078837273147142971831914022235878365435696478228425319127637713763849279022177180035810195101052482174904678938031440082578563611898995923577231426167651819796993808270555093355797085133296544594680319730606548459472077633847745175257376793878214985708601907582199100234375114358776898748864602845071156645038431672517673575808906838285352716007814848435809744373861761751454520819127233485048713764830329655461288148837818303873001086245763662020603798345279437108924552293683227977467813322298966557853846624585438464589829499375456072375356826850960794658154043061494657706986275115440208777695613990031749487725228305081055274323671850032894251345513938883872070553048838496791583627456354835642362917618809612622638179869621270404794389198955493962472682670326421442442783431717524792580432261950170438946197753786521645910133396832001620490531436425649131801251216888761582911983345821400734502143276523679967118117903064606357897354124740556439527877709241015104439682876784383219646470520513701371272710338643898586461899902925310027494831700963902946971904645452198465234880358256585827680183924787358004165461750734343163011890154373946262725422863627785355032468535342150314990090497052328561562271634091306311318404108442167542258467923238937102549060560053045956193855495845072245289644691476469375618637588020671979640730177064675636809268169638342474800626056752972355149954510597026567457844551716172145024940744338396766153709532191955673900334592953036981926884494503592738587451379560466625880279978254759484891781642551153717107168678154399176694834751609683795652135077113214245982125143724301448824425541260392671070533561903069933342346234436365158581542433356063179952789881308107970023070178273883991458394538205100719763126521456830996245993108142643416015848913006434553586466431653183793208639373478965612719887306843345828683240066677778339933602041364601373230553532354045803407366012781964607578021765239663422333775166878713794231352657695788955594355732566941152061492310066507481266745336409415793186490256467197870100405361827947136105229430092472356487036544042196656911652764662353616646319681409261749212920660568761649635773644536033725856199808415730642892589787561121532999214111870967919054402156247157227762849957708341685273824731522614549588438297267031320729599035731728150326003480754072301110818559019693336703435787957832301966523634182784070439229133770249381908685090030290523559682548673084779986109560770188386747397921899729000356273413323949969954982362264567470932628027406783860397029128744137918470903499309094240807807991619324490994302799812174902591099199173044951992943620963756093507261854706133879757840690803535509078943860294042168050225106957686257068544249114685453314941038887266422578042101774142245844949177892679515290545374792131295391747721382868078399663417423734194674446965139468963340521033100572293813932707784519487102625299739078285452929300852010368888502175504987874342285191220923379320643703963063227874362209939572881610474765296216015442299096080632419076115248366663191149712287338558033586850557188536907873554658028608980141245966070639282418179302916392336531790908042248118396173472467180936920855916003731127216028357125270162024526372078581387888742132394652908096286184591923828867294383612666956740214594967556822621107440687751620181504576875914557531640011550347799635090060475708446924254876025211482692627466795971624832457495806566055436275781074074549980450674783551332082949802419890876019641005812520457511688198861312562924125906110311298202651963089369625980877973591915986879335105154300994721990948633318750899759125577315923801413849867072221472441162676740284304732915568536147024198377445337670746787466923822341876622881754481257245232348005920655723048462059009392631391925324898063819907374944894503439135874474164701018727992711746000784291935292704236902423443600584057698707681995580717853442328369447364581304148376008284887312225815106021297608379537358151352595204669689453703393340716091966484033162422345468042848074460861497923795508523739272176907283115702739550734896822645721781237645573953927137634392597384677559031845701885699403775820291012546225919599750788374714391569252483317046196051759211307939209293605110127072459819631026748222619508926158764175636265337474659514448911742906269253887053795071685474307980354417241108558911459142124261482146295360549888191282709495525498413134217490351272719249743103488227659258753404392089571730445554323759579819886148448981093147228178180754627521988539156113226803369388185530665846235255744818897242597961268737638225591724018876057960769504117338941836816915245385071312061928442872880517785933656222110071869875869731905545160151172451533564722779938429590019758601367115816772818968603548513092843258076492732164668708912041371336335806418627896243991757208247946245614047855308381891361918440894439794129783708294895909380013555778794487419315086069110806310849450433280846272144513513103950787278443345071281141526892054877008746064336646342420062953938944967848785231056032816033534450350175313355745764005219116361676145852713934078793394561859640054218129097878233875109154490251797110170149016304393416534166702490148124038360445861740288611370714962412026379505939419418985172567761200316666364829907255122692990497110013575783763230814845847229925943729539218883005388298053619623476152330001318709963177377974574629177257815815499206383221034549178894438785825438888816714299343729288009690116984898294383566312901587222044706962529560055389618183136491965992783464159366427122970960782933814554924334033169891451335084251180232739299641345817766146185000706287942232515834238384927356545869667842318100342679691811637766252310127618074231782025854416088072545027621608023767658349609643043383550209051921374433607256355130392816781279049268851424214287059536812531503857781838154668847051552207288741006441201867684217240960827882971469037339820375477015591138181834927714961921022778544367425685330905503829340657089341567373158267170863880329185086388397761049084511843425164876198755955700382050835148349848852476445220520806813625835545374891171800633007118787347308322029496526869349954893852526651682591901094618355715740120780328565554982192719566618385727442490419715601450896451543139464451701514921648318337348967313635018430601454487071633153940213136309244816976780851922378927048228019085349936987383471835386524398139539310414048679142458927896487725279383960831576942251642660259031117596718538577174945162491364129034223400984824367363889915129462991343333604434807459867625999758149599377153423176330855559899248374459257301309542754790198017202714631180199097679114665266314815074060896774822364400706633739074375727000673600678231344443525393885205361140567675512289336353053520433927773860580344103038070633722899779342443076690743643697693311521310857219420470788317964700844161312501608186980660173855883972784526224107172081185405763216213948206847180863631104363591053980350993106760115293545421439409202474187987133655175466992923306024968252454811437630968763554899632818982529295000110055307151001711932810320104116914870842064008641695078377532569897172177811520557673899490049128078079234423913723799985976073505948270307599079297369786050558553882210848710073434134057326949187875483343439465124302479597900546455825600512421717964913009045862225882235787564052403436707691020885908752315179588654114293431042471884962485326388527967546266447032032691797455683499019044697060084111896819946923675898779017175255621904974601751297263218761470345682654628990346072532953975877817616931334411489845357317549472537693445826017791963443988539840548911082818542526864377541169234721270054337906239385911454261201236080286427974575868769238510150958874099897480576640763725148620270381201136752371769885218025964844380223583991471514326725894444616015230147160543694441526177583850452864905053811733700315186529525718196835277524519659356637182632596425536274271722114961676192955753291859977777629951780705373544247672485135694906551654351852143604819083788349725932317181723630501430494144589361645970267054145172003939432925159562610432440054227931044232584390677238054943156915873813783760283566055505386252404740338989558159541247387103707379617463341546344554300296764480092364582869203518110071505699808419605242326839205514801943043951538696992815071840798822494706863853887290314800084731733134756881099395107398053247533323442448956454966628315199376833778950708135380886594219320384243634957873471063895217224311485096998169619635115542661959655595364131310451240273976663266343936017151883577467821743747797869597651820255363609591532556123752265128173294008050262676518373106950370397909091374513683671099315900091343245506700398554820323386347336998619714215518364960616171365042450593313775509348009551722361896245368145945486882617388788689087990363452533284551445907871404499666418424544486865404761187130884739084176981618588032870323677438051690492709767976758801532208162195984571876610848662399343679270128526781617470371707485763537568151230148821474949921542255123937821694496532793267356724777556831350631173989199847592819030969858275449803397723384398214843799673191366039358850731530289527814568929589086717115635473430072726652338151799897412970325711644645628634840512839998446770145421459040600581763053945390093285399725524893314531058617857935171084693838963363155118988200360670882848149007672581585947520054052970183790417968099237070041674020373259864855935970172053830798210887186589072646073594322071335770002323218652129217577587246702166147848273852955284046254605495476095774932986765049698083653244341149465527275334185860832043803132430600808612419241099519081663782558260705257951856784716183686795157477418709051840251068371358517014195447895345292276899911607294798874303448506835872696322531664932688867375882606463405865887038814994603118893427187322618625326174834176451344594089628133607853800952640578907954847399863980909311400377334628121377233295557053063513890203205674353102978347064466429891781283912249628982889018784297711358203715387810750962675882756164649754859107638061865599345222358690561971912265837342121472161109190733483826934060233158796709826229077875964995304665596018049235582818635462349552402399298869962604796839136256701264894980619133434936880397796765956343006815066376355708160981811752394490723535467932876110541476101647984903437240391499730628858351183397507404784076373463253388935581796954272071050084182413226884692069632490265041728196457926250592466784394752247840275261775852165446669734312707215014448444115326394823896136502172294195132829465321435112734251564660822917648814819830669599366060511348748859276931538839602088836909233873015343282044015946591774578342770413075277178596787713242625971852181320774139726184528906496442804228405813785159558249270539177740075624868447636952677118255101047308393738209892993493209789321873859867028541779452905615227002613345227365713414670814731193968435610384577988952050216866378692312068246905431360923554706783968508192389080049715336096200996481378892638501621296561681638254769320245215805137605408107823775675411855422420099899725670681008019699854496199156657964239201804667794177438502288542176341257006780170573973791707088391606543644703110274825532730881830514580675537161837397506421800736863368487483886742431676411731076623993948303909828871514208935257599091277369032222853834277759390136439755227471768172430057100520233694805592551864067070955406980408950253819684198004088486438389403682284386648752787634460348406072794875966610246782968747508203617045567483993907059778269953254063679560654855658487526754197071316818217301549936761951573660617633372250736994179918902811165740178511459029570665573528919626973351826464879124033359699263037538873243012437593746653231480787248479658102493158636016850674526212991009529246656494681575773505824577396797466763194201106495010132968643622890179277868423726155197982779596235367353905884547698653798986858632011930369662388301120635050419220317622453566301648498266665856992211769883050548094831998122771250111021350371749590312200520684077083077461328920323118468267610237806094842012991382487352891156096446145599578887815273909718122958010724175394779378713052274257121322505365185861147780797559699461428053039686653565293241271741691267304149373777874125989551684290925578420834700376711652936836466536738463074333883544668229521721591395997901302494303335561253165597902987088913441237247637865094445034068673177032445895401450617984025927079688337274864364909151378139215310943884336370667987981352435652721010477665302860016062659911478620521819764267310677182544843770275618973747974708278567387740942560460468559464431303458194076349565189443537107250220941833489336295129667697037648376363539293359263884986253615467612105345430346140216082938632972086392678739123726797986779003783050341365597781571746347827192143489476133856214768677461773497692452941895948417338441176541765162699797845260729546440050833889857571037819455707435164281730279533380399342428343100905404213398110712129784398519040243167173737231986612643539475674506774597155394098661758119058487902110642684773437071868582237895933857297367662073693832220934989142060811161927681346986346073193937490164965004393837719640221661330010785565570866749653989380571107261521629784022618695377754956624277211193170536785570376080268301601978596568445016761205113177892547696411502495957414817405580972414142908229955367177019278788268920955346046428093059429576020027598594011453138778423045518034866158303670933002646796041885453485848209104930970719918706587856714956441791778297084785712348805286661109267397703262849196240064044773004724463031717540688976360544601228895401300221656539779184100779479098076212937355379470102992886232120533536576192314415189231418183033403383141921409809822801285374793827597035101334952845127344197087008395044124000996146028150211280293277856566788212158524894342699179469171571297634587997991441520212530565116989975245259187811906759499002040799246116588250421514490750755197825533418284368830817653736188006587943203401985738757364075074628266972978035760840063508695286473855377124893853295981481073486458899411813400541853236612234677109812134357047758082334128617399768628400899218393779909990012643924623122553294506271568136304460532064645238134788503226562813823323480346607427466606299802148796404241839795121430234964712286108327100740592535425769074384525263388730238456583982952722733136724829009702491343397899180837488523853327447352521403792231251639061760380231779517226573657516371937748937515261372136043309667061494444531838251217558706224430556341007272954702562505222082343897976873068230335094608958904192508039523571076080108788652048467322799079127798508848169398076390230121032322706503944723129994431718405538428890935761869882734898626036284201127605385408805630085547748524303760598749842895711425865423033800271679784427719761416276045679161147875017420125168604124700631007781331960151850818913664179866225730196114797750793802725203593848074373304781780331897626231295357031522880200123602650434524552719033398939757827557070149320413683998154611102414737799204433968463174758829417871706567221934436052483788781079263049513257595210351134944497301678231033951275779299041043707678299315492578678973390406895055832232079619434118262938752712560405552039812761076608074061865901883162621919678558361089608361506910754422370102901941279544029772575344530447724642340630502964920922882641333965596684328445067714073730840814948777498035711489106223932596070685543434302579859380928300126784057375361337831485093819367253648087302634557574691368714432185720725883345479093105484775839548233578773825935291141891113541827030189265964852370364897200852287002014853483089108870706579897825996304263157101478956539641482745866520749856058766246370142834250003637666869421007243836812800938246429645966377957522711631589031587992561210994540241921102605390719837277655314635110182684565173771073055097137594332563589671095904164456780650575582811694816910840398006252915063304249341707518022765013837875357584563757997070225930571534633147155619748878372361186578388185703136148291948439815429057295924046882455128733582619334498047678814475106692338241882933239866361910862475056697416671921536325135933685854623858846313398085329816084321829380631291165100069965287531456843664487089507506308095984390943397449341187286246360065330491463911393747037898222195133485769756786724270104374649915693915669912825849296032660840753288316394602097215029660166316285301684495509389151773695140610037537256569333938879607602540996099660239045114968130680007114925078562595270837003180020720914978495975353339023771810596596652815894109502753590262411651311863830236166701995751875113352742150910361890860982901157783199322959562557668342863082021976887881912190594460798680674822183502293463220858783459570971117841346735753967451001019811952050135521372563567701926732762433481995299715957521449684508007123673622308237711878027083365890788740662241001261173222487109498550629371435223074988984932903583531066749457540662647565644310680893149322615224815837209755292359457667074854367495759054068427013817440864094701593100422172476860703645415639939031053851317831026433106157623089968983165685580772794932326803951799906756661541969943882562100708330309824125204434084529344040895909503281315170559638051580230476487233951222000094242048904740213754392489089608652501268054214598150177899559043636624956817634174129742423705049717000608339252439009313407006799424016617425359570523647862107133569812993195375474027637851635817365960726562765969360514232076810566775809825945420012092385514625313025800454136323910461407224595666958629696266366003299629748037457286528287902256860975943695317963637110890136646481792607930718322252875445161553788572793879517975126756382907362389593028580852180209815396543549822588331701531815573154136631902015141614205493538272066916357804947168456873701551196318958999824081179459045877220360495293277814741856098274516585155183796355790736731683692446507579113523329764926694239068048868938532301820966822649354605051900668256639390173714770773923151741086816582091256259291970978158400045343949298269874264475349809015282877758800712136725031519296735309562794953154208552048578707215665498536039160266743523677916303920607681702033211402901592737882395810419577491902109290478156944228958330472667697441857172093576579094145177355525569376287217063088459548804155649891120130957146302146169063728559731158228003954114609210425543475418784207672674354970217369849462218977760212221773952190137581857811303209556730333982908699527684708782607614769496261647498231413991457238474190022108372230200619423104318986123706547265470961047272860342196341579784332871302062503167797222311077214780470456665807555132187391931599590035093811589060901996483611378707860159351157277367194288417725645951676219908439459786672615856480863061158702720646757403958323805274492658291271138594494489594074034597880426520799597223882423317840362016371021742216058331993161297493953745731256319503725880889839583269026701237809399111997772174290301469114809391527553720272196169644805958609432054108279477240422816823879093709372429788516084156144969069740529660392036231433527203196688066779514517605880703746452854411475619299896172639199488235751899625210239683254108251623046543205279068820287548747791623108329925381851219180721208288141209795381359883837607973802807565874776819718743151163049490932502490318596360438242357975836543454972974150864941577629611511347702217305550406452332009146491516388642346387590564177286093330644031362152531027541858616165448986276629880888151565040618441450593830747855931364336914911750171009756852916435873254883409436167813015670692382150300983350243618008056093008180326711151804159603648023069958845000679107342435434132078304089494997416527302882496488385300861140799222226508486514148942781112374616424510663188199255159042063583665680138809910264041744977148843676924890152791534783941330435949784755424777451121440009569641644712211193783546374082026072729744754158505388611774720618656624233524974928663339670500124503900239507793257218174733310557304182755917319371903062511636168162247289861774217394086602880939303740950465868150675515790344778820012123585922980426457657341973991878975635706294511585053580966558595776188924059870598517237642952416804543413695117868784968700585069709333824996485390311164691009172190350696023041819357962731091310184867233797815379125802880680364944973351645433331316402821596762618441414595982851540451223199571689362607289720362050709009767962017357838302874221754522162243551752242707039862965783172730098281017089481546944019509901018626892142768023812861649733115013411357529402415096688908509022078996716331292533675005566204648898813353209587484537972487677190817510215852452065229694839119265228192658506523910848689388593095724145221295728873377847891026355474817253755919584207397930099770534078610100053328827759951458175337798660203730422883953022972110551165772154609183957136807507035572451014898896198120809018614113586134334407699532863553470903450488440402605794432093491484629161340423883919647828092119942919118526962632103262641027720263717289762285538058719119872561464734997695678894445830006095760490738403550800965572633010552784735174773421722282017024246252752042469347605742754658153362388397666192279392206510529296605845286777064898932091176690910672888958625200321008595080537531143853130135619225632450068603476687697646084599528645977901414277708249447036920804978917621406583027588485146609810647663101357217121315643354752421484845647319803192727755993880469818402655542713327967237271430395337268381207527905240566855141130972021759712585040405290778166299684978185188261793071518771918423181739804210836056101197350281297422600450530499196780882290275795853631924499423044890657951402320934052254245738982848886960814521205826044032138577200492942087813904556450591185428603200286185102892775583567254102454830165813906298329759488074902417592614962825386843471016482165283514512122566656663672256883581163325090074927924124408432911953262361919980737790671607201997793214072286004717472082012869015897303214710644826071666307368211545694517114254423334418077775006026880670353657489800719086497857049361975305196343549585650058920301235411679752754005640051663259749524270019913178128264541632401636393074341850305844012834913673589325007390215888343088113205187476498682070955166127419584289906790690429805020792708093015940055661964116173935314772047807758510272614767538831197520340945864215735885676062981686298871284029368974372209779719587079159365745043580214678901018950804374453475867650766181551375432720712474193097208415064143224614581873019304285605452505431292384619462665133909880151810707629100351015009732317606671748286187821647257132028766490207447537029240843193532203577981949320237910247867804907361542170022106003320684261111564297447951533818779720781513169965134205512554517169953760808112321347650428035504445344745482049500374965990688620111507676712249106773491185905342668081823419600830528751992528780261276149423206997660906070545927468969271371135649596891820066193785334709270978936453850593310164844740750796908025098843319286599836945727746552919531717752363323327723875175536975629859191952392481690646718558276658376335457748639196967716681718703493577514894970370218937603330021208432147737824146800923765896271960040216725213504295361413278861897211971409007004837098404042644333621464578867663273887979727856264209238621115992161479880849051274776406764864844414355205200529376500902967440013645572717834315039377648199637912894706040674254786469976430791780357572240930111511617169896100042916530719311830691680168232194253150999254027325536304735477753724563268674418964217273816872947278388676212115199734732012549274358561208432351379785024243408676384669045281819171228736769886738245692817736735324766538349322579269699258419365461417780788400021347098876862700612727031420088391932448055727279061888682329290972723526992082799487938181138588713567619719973391975555532400595962891328145989192842049271243848408552343005705618676739061860651925609540455918735038658595520249195630695113758194552938971816140143300433101099460965323377045694608048995202500325377775285842759555871760174592375347542048853284334341675403198067664625760357603445636173838990728785363293693050011657078530218235186388586163395007219737068604728362253381257133773779614467685831940983189346211263177280960894301702950641442131776916278674648526688869965804389492337379535499252493866623622981712248932911639852170831035378611519621711460249249264081807882832051987664097202367873298380521679728991493090194132050881717911488585033366986964406420929954171276412153771816336733070111488257265281608487644793760153614381498171022402705266705228048934925402063981494349965522490307724294454531191376297093786828776526161908204981440264089375291205281439606033132920041454578473561846385119559507323310445098356411203648140501091114340039199430379838029476091155734774967874476920366710642970267138130081519481647011009379349719887692977620734457138543012500160091024827443402371631415949981163501879568991361105910193321298789301148740483751616295286235514226494948620666043110784991185164020457896375122009883136807894856061678609402152441490150124619291829576676366764556421116463980447512515808043238557120171548788324883568079544298359641620288989104355385152624779430882464653284643920130843269339962844965556068709852104198598442424118782429012849600089138733914036192710110806515730233774860459959337377677879449317851781935287123495947285905848699069810164348405878492290557749819584000524029267678283042208486992897762262110762288099643319271542704801026232988741854637255103682590858221098475679176648357685577289931635664686125131663417993437451427644175623401824409752382621897647904172906303591121076250927032716101002826099857392412393796783343864767174971080327007071447030182872322431990303225085063842385717746884724758474485150290417627965586554515929257656706655977283895924113574632757820259852480585509001047353101941619028739271268787696014773907491859266777053233010344001378038092869564388401162247041694763684032595979497242214026253529537112333016479420954591732794372979029780359459701221999278855481690670593690116326281703459736891819066609035932750274595995898532496689885314461280259304737297821515648674492912137756911141347315904142087023345800941874339948139372074757962660019164420622134516669827126973414824300199271996220114573193195168914468093491190205152449412827435663849616600471512428621628913650506207666181775989182244396475867418298353943911282332502693993388422141927949631136680385178987032794536145243648809107400553704941538429584232877983886690793762435805837748238795440723274629734348067036098873546883393019483020184021146698177712899309744798226071011103598850532753784522882010775913791635227761008140861989678771751062864526212349320549900226386479123333752667682550692373163802748558077685542377808089201024984423247163542995678523858446518724389900064408877728377745814945055741671700890377700399457474299449556099737739124646082035626780476329203941904890188592935611452653902724981847169883107740100409672165374982340969635737748838985105832711252777397651876487927129866031221866674017688936901872586872915561217895487972657139049565112961303829904431782860609327059820979115831481656247265418674820885722020482311620830428342059327263188173692998985558091301143152716663285851512418013235776692512401218718038897317582082846473036377442690354590702560000945582065852250681765225495918484655274219109625748908618103872677863679113106979983877542218840568367022368643839117138632183690918848967698163150558422280786772637736674055831027275339179150579219321762327306818275342159288557408052979005716881979730548072489964313325164613582431184446670684427275239103484468363300090849904016204090011383493264416106916325929486733412589499707098361510785287798185500331098426922042247198474862471855537949954570078338271182292533708122793927212769599147883719850351774243653830537970336669364456220210064988804226793343209782395419837803824434898108722489580336504651158529321767214281654796243572029032646283787552196988953025734116590016815498522443699276894216863578458319150646942824473626708573878854309361737664877502747716330597594897724063482951873353653559649139124592874806558504750747311794558845612034793995682737217151529240702780682924203567842266238250249941950425867129246489640296323223345943258446249109138690803962411606354983257612550481427945589727244724987431012319034357338060468341846885136221538785921923678342791213967007794841546497711125713226972009811005484498313731891156559996214722746036514041091011994942180484542687130585424040476329351021269941385111669421202611825607356120708485104835533902287522733543762901825936535461511333439689022762695283047490895145346753695529019641411038903662356177516675277493199888574536477642405143941869193296644809620684610244067784156969308674697611296147027313397989863431110703005521659458729512563618483878237484727545990050786098553954831644264566339800255402062934905877988335740571880746676780521933636023996437778602546840232054446793595532352449134697946160760170257008029290944289610654310644641528564910297847764319695843951676058316856929108143220644293428810467472702510347594771881516741317638383986580554353736555114044315643142649287905792727104954918104375018565521515639120927479660433401331932506940878974882155625289818601893692452970451636803883023857256090070070471862016049680446449549148399208746040148062742310470688995084318887028468819631814080786210753606556198375488923471102674831196277565096759565398761181347336343291210964205935535522748230671046553732039852240615953461430570670083632688205845608505843816113751525843351691228821650426231343939961635101869691004262630153360271261728970436616610982591429292832072749865928869583685166973077081773660705695315873834479190324925893621156782936030275519284856807872131729831197429543254965157687659091129433902437289652399547716796902085412413679744996004127519317335319957667011007153024399321232898704701281428558384571116822717247639319714441361093242902936053496812949278770590080244388984740642921221562731912467919300551458353060748931915322420311113729634760423909673510637690057689983682244904948667877081762122504565340289910160635299934781483952752252345249903336910359242931081028452164946825330462834800905141674862237626628969767398157435915849838776788969696737124052094691385774648496464407111001389070374093467797980693301372143792364537192603936978228003279290505707393541529882600726908393300861959406272162960670262349414049732088520943505659523886700007256874939360692592455527162908744255226123647464150878732561728735905828781325383535364602617957218438867021904102780943728283818609452532983902217317030368397786086143279820703363311546857439059329343958481802313839305390817338258899557849540460206763926858657283502312958786168712215662316808698325174310272031273305401055149668517291497359404615524744044223749820678028335164065412123169593992966886320283656817281692693063837301927482667848354907668930693088625686258211004662266810585858273324282523215931909733721543508685748372218381464710334463648561298762519854110846252820919047712512732723615172275100264223173510054073593445299278315113979704760649292155782862196012215428724557755009335973061051651395916714285149066243816858521175533125712573755196407598234765765325058359790646207244464363697364140601401824578573287728619014328691360770295183127818712457599768853881747499149130412043063162081872497253232508213954308663195377691045127708576121746975688914776602871449148852090072824321834636529939690012101579818161651245450913620939696198163282828918117036775755233497633457113364452866216730670112928638263728921720842293660171254125500468185877534605244305999571540862877525659553059864406949130468576107097074555989197559950583898134057920803418501268797647686443993113117873977302421465073802947390067586626783769773652421977994599037136297373792389705844999054685138492928105017273773563356089431488276446568949740654050867752545866555739156558473702344954463990315775923502584557085380794132000511243383014710773790305209977730070214198604986976413357723239485086133012506554306081427324167013789743942938233335728769858463111268086878011644893062122192200098723309780328935954623946115124066234699987376188342982642557055915162317588069456087809130093522555611397969175807884747103567499953571616113360325949889067294511104186086541048471764351304428715110066004214663424525094081151698864854873431919851834246900204248805457931348601215519596779953622737914119343171277101262554749273111463345233336159715715921453921296779979322304594665623992716687058268908888103751925441361946591378179944208216144611271562472222856856336618312203763442808247552885584169321328969524008276378398080063298774625561290916119456655669557210006698634827251221416809642824165069754143552281371172459683826907131239659384830343167018351761435531744891609038729364194197320888722510541400778235804880019109696217534551536174227541106603497266623795461057800232535825419684309366610980527527645252234533230209272666035451907663266998027745001421473712910480006419026315338410138910344589423106766304551615491307135530519247885377271193613205065340923089446175723350210828898929393425077899338396170738739724992646014732538779874797765087344980349570875736587453038254009716480821864192608977442007690876953251801465530957457963829867810580497314246210881963684600092596424175004575718758996168653219400678935305508604959811104062910797390731225764604151762460742882771685758766253860166664517180272811718979375804311499234856020506505686456062921007071274345957851802931361041303833024916037224679966345235801383128107437867807974869579871182786286908101707193471343268909074922909218098112329022515020233076736372336124960613618329533624302328142802170624573234286970887806863319347783188429336435299041270999289282463524640446428047124321453433509585778764221217821092770829695796466443192995908017138233574151640486274919600328376179907776350279798476335265006426598975722265272100034255367817672490279762422182814231483430194206823964046776807674651004468240517232962119357464236492656661794415847274886211260534038782904618879943708409488395220647971719709668396808379243265917282287952528212946275352383554135008158842433978487166876087363800076912583807739049544549548461862432641893895330236562149368684115910692626887972129050171681774686949444372670934441371497867072645825241806706100257261887217888255110337528157445853854767166524630695591606073738424472893175522895456042832494541179912305192805098559621121194389481221926531759368015655718232007156921878857313763382786467580014935160651274077733983747331389810244901615390566098320572645665104868401547186571616699972380081413560423238919971746183979118075595631370665363336695590160295516835913833291904892373563199650062708555286145080629828278754320195707015295734402927804224484685090809907912472526720354309100048801417662201658311120788543798066693885481235949048770352432763688552640580538233930148415678770270908478402377657989252522042867670921027515280199836814890233407136546263469000062146086531915234106365353557301245661609437394032717692018996620890803111805131664173817000130134627735264504218094437918953310086300417170058272501569105735110190389661927758589199708955963224223954666505122043355106565488953324932154631626179321356334417448261690780993627187833322685202633550203683669098695325980000064760495326095315238790380426517550559305283206771071897318618040852117468175303781574877587671752741297125286882439380176756900458779822930257337962521801693936490668523825055730390829263648337564245552627223671081643581953991505007008497939698440298670131722332985561937000503837890057041801639977175162457898719043672335253107500971158003222932918991884897175208493658710792684993792565761047710946065740263972595927917651547375129357650622403907925451424597727122673319719992876022672966672778699341735959581402951849985550308473910763137486235666099642593343741356840818865990088673507116073621082966510126182465556020814234569654605676576913749684271356571622557144732051119640170128271264334501380365646544785965948338034244283070273906354676072630140870825411603908098224414228086441460726897836883832696740852514056010140361209863062953513723471773920868640858527938388865966939113924737930657060793072252667820658941767149798810816464263407715844037707645095924571578723673499187258277974942702910939164245316347075189760707666240482410331453553898169835377644769238974461517019688597090754716917650094865007211990609110135589340595363870875815883604592005722507437194178647564664930683331418256302889624888295726106267849856105864851293967252819334065567288214528432676227728936174863396299105754500933934220254573187071992682564584675782341028854680479402304831416131821064015333269273621175847083892431068736668640548942882019573508352821751394082003057749948739017529767554165199393583888596645433137095765451865900432277027069097006245403132722018299134740726563025509018146800609823049557370682334475860387968060454014603659195815462874824887668039021992746032295176796570354185698611905897122022762755938677256465757021326801085363443737765655827157362676450200148471091968821459702070243534020189359931263076282367382528101659463521300961652660895745529463562623536482346890449259319031966626050048918587877992101282983260327907942696651010682294143017366188367648241366888508073275508892735421633036460064050575068442129698909396074134358317866821000971124253298266784108368609165119679776093428669790660614492177628176113263521169288767969290102008357440352920545890255483679953307571028017991832091221339642486312861296304619273127583509143555560701738087224571156161653906099565901476607065644865646839520218691428327796777911600786261032140074183103507257560587905960620573684262157137951635488359251764566352371305191105355227992808978323984386278664325613580527707856078055642607871819338987190863461796045492130669825218213050242831955258500189332630580727643390476262575602036177220962668330148421289097399110438416531163303050238321043335300251469329683563491559655735777538373413790605848683570113388387520361095006399394787193282298388926496677370689239377581398160399236050297929977708526143353125709203132544382724140647265847719632628438262841197965955495224772183595934809097891752264690755964686403340917261676956233930084618039101627969034667677458323007474622508827353122687509610232571223254890528107176041810045899389858445678603520385320864771653734577602793751716007530533262410607461804526203182474188650791862564471122740354414847904564151588599245791777666717274014483279343865700166246438066162467642087777392307778549036338584614279108245243573338877681125694734935730685564771843076145574656526398264730617717471494458483924713327829437856892627652620192225248774088609836466016057568348617295953156853125242887138612558473323940312698623772052711946041642242703230959506496684777302681633640674916265534310043995901771338515272104560445026141808475480345530056483725102404075072298410363767522026711624565274645640488386979928561106038727739638329481661211105898852070568250632063420165668627616434175337835068923124920799554976814143689099727644430906116055245797588343650438599167640078925134568920156253532470460793404707639062729168843168723500399852686490137805433204969622558592783762091935644447440397374868126101906110652785082699933985051833465267593145541642064346119530043899193066992727096477723354815085525284135962344622823308875356762834698353463629184110186879738952859784161783526420927289687493648796959913606209418101746897434769987184531761843416800789836768491190899656383724375962991079505432972392460289838481240872796258819561666780728387715784218414038896134687156491079367325090232580114345291715826429164649438551724251047276242968922964122485107752833458702350903759917016571513854567178179425260387965601016021790357618563996507490946306544038530934647752451648084060425656120688258684748293877785265547144515889013456689334593684353352158308442705779873579931072024789024761331283491342911011747374899636732357116648945104197917507138993749739769450368112901275749883319917347758247707874073632790925948631269896373777565067362236434068929901526351229536378072534423501754177862770003211443165158172729741385783299024285836978701177810856170833431009308824492393555107193176892031360429262211934132090771529036279417706026853689690693644880529808938165849990430083587081045844904777526616411560499598809219765144917702659004283793694744984702054607879648207916911450499877170575158094498851999375003887690774890474109548135866545479670575047407956264340119113711142872042540978819674546739866667746881906292875469245601949232426106929575256845960145543935998216306336082771864967006716822085121608621814528013850626772437492807063981534486159014315814818072665579830354612686048443325986349697583206316145001467264347474284284425761208540110570367605408743063184316617788269053283472905052894993274777891019581055244352927677821409266832763892952925283270380493980320604515674433390587868794015429728882872926250307130458353777618690423045533070823180340316784015069065106839768028306342450422158443991502346903701497736552710374695571153722077462702606927241022918922276565858024742286870986176093855334182052577412997328550903931853168875476259115891924043428464368574481391714357766365520846461754685234750497991313809702610397874002955978542803882985352913196834810770987681718608919720803372675168726178355653125087886706799020288986915645754793971194486115477762704957362267591766848338953279545930900045170657074405249532485487020438458279832385686259986118112338254866104488185842970247584242046568457038522265989604293086005098946451228466768984840367931334720285264108884351476322671089195033390682992837049182750313022633727877610021820576138463565211191149186207203053871455239695492462151876470697817869363654988720541031826382104556567873933525689682836121703221803493189451086480369859961470905656415720082204576183669449847893694720470924918124233030002138841343651283073110157795720049171647584500750875849892329213580218558515354422231178153393973974266981187922112899716669227503131694611518153602425390264448302418143686744617012885367486403201129668898157810006721139497130075373891845906483200273226675232792442344029579814072760088709663558145226382400905340221518247883256303410737407154018756106884500437404492714196062510615451225453737488289977433167776301587389230147618139310124525029459990684162160073071583233030815029371745533809609673808152067819680593648783149707391846633187979519924278290840548337718994157470075483904405750869200602585767784019447387396039141244186009283077479409643278652194467533819923026782958282265200246442049964455867601772775458468216856997064901005013294850567072543071127015492843673546164679370956637477542680427424380777483749515478136845883067641409282371179545097962842573164444333285135405674075758513121773592145489890144434615081197294984983291578604309787053151268042631667515713015027130742849298153711734650086764183126543874732393685468563759579601133241148119897546705812701897726308800177912927527497008618829082849400626364362111417993565016278370491441019049756053917566099130230665950850584727915499296736794396472851765106798977388044500720538782958788018941806915935306480142538809226252895661772963589119264815250187629806310910356843963278787065495252166862272435120809030033336975562997433430214458063471835560956762390045354523053229537669892741957423228532195983785237296657024902126310904726379878128487604586381081952620625780300878748653445557497027490111543111300641928983494932362107384281373180973178073638983092988734188117688388474506977678093224303119761109384902639753360652178266917337942932401866679745052962005837239649679693743253318792357118954972853431365497364538289558852396487128216269269342209732813896999315298015151126017123346981374388475089559939458251708565827715402222214927649091072367453371459932727599157568148475960694599895084908828000491440593421638346386606351795919953811015869048690272404278022694395653466684890796408107283197386046636228012560764425914759870202279562549978191474301981331375800291883019718453036632400941070168551392110928092862219054884074508530163008789710648115160424952061611369395866009790554278325754941294126646118901785523526475329113854661738326311921492972599243750348262749710616248332517610079943668752366849184703320449196754819546132934189987013333036587611398437263720787193826482682585197656274869013735242237069510385300244643508305207048176253972511834075926246719350745776571338024697243421597144514740091211677350581328279517865051222122147911096384707742838134623685192005736018424740483557951785527117837744955604901782445119781927921376750439119398182109062340006359714188265913859498375271318263492820474142918034537121989537323175704931920161263957741805520942940018125981817235727611654044346612669393765112177513302259744877169771526467555880278243127099667192120298243057118144600579431691055723078885641642514695728667842524243822106349152814401578354230943878180880975833174312133446558175507194465638067982421979678005431440870775829328894929718634515106487245730529763297553849516299385069652718015096086667065600441171706733474142917567174373878703698769706000086035750440875389433096111437076911488147140202145622229947225398460626432067850131397905386964040273808967747923916510079739063690862221061863730358265481837246227221194452824307876931680738619823150623028058139280009705936224348818386708131760096572230729940572449324108683488892668058228226554451092225573994779147208772400262729166431302168052223305321432500189857003240010013139803458290977063421229820138931450206517604288467099657522455801910396364863333027024623847456468349548502627607153391233690473950457228189951409808881928553070195412694020562621662193627095810576174776905682072997128543443168103322804687618899640979263948219702448792546392132304810451338857504302837796545080130086042782988514591210887821403909563760352643177050353838296263401451514897585106467096297332018551251727760977221420140982861237207506084056561908097143145615035513410943339990010534416840845579946370904702901918039603950630091794877046331117948510879548209349057870050693512964414830150375713415705080883182997762034224452880677879394217308637324384857719540513133363487798424566758154928118755249183844519040466305925238795532986278231181231415448993902937173451460820459698581089121954623886664929172423852536516559302120738822868595671089149698824401913321451546949296758346949569105227282550531742296724646033237054748450947095451642500546080038581268028245506260951738146334306989626435828604307412018801773631150981383355298692783683691640630306706368691906832306120575885343153719875015940735583026085712613842991031098999635353359772906819659234693257568749650545805105090282181034690079455434268513605207385496062854674862252172436953194081236754851881263306796593823011139123251643644137629053812192874199053877060724264542450197253682717032209022122731179521452579561434113284198576797165659640423329806449043136493378718028618513148212424446898596052004476850154552345207343269072277112814827370783958141180293788037466708273504775745622405176910006828846545154474956642401612739081144653528610129503500671714063364876122852753917500171757831869330555589606746154078950994407765540383836031605371079063249843255147329309685595151112372139030369226921405600912635418540762162803767774809851795855548048968667129697428031625075485184241379200352897826917382229828528463673941022048495761182037239959367089780585098227219145555006365969688815607607545412184942868113312675249177656907514012405400898433468428878462846020762105850349935307869564922605310458866878765152695481882161185361078387301139752287956434394294289127828306252600438251501607234554347137245107549213255543653908389540822056223156474048529727657591968290360356066359900480527890966064763849951261937653206244080155820836954112151808730025688713421827123489895229688227765450718990583510648665883560017249806628900351686542907563689366024665278593268382309250375048802102045716612817001198900564726124987062457144455720989313489285539559113925399946861377040019971710081872795272089327420869203489316019853898215372758887135909226871949308570758704598901518271343200692988090179896351416563082526458989231519529736053058165571606017800017257843188833775933079227699651991669911162372330816718794589865832104466382601142946869839882881138841872491212799159477151356684419108239833923777352769695408615336699016253605579214606789934980491783329904164698803068467004869212185690375336405588730607660501200093515938651690353099057847127500395771317413714435001850750649249521658626647744996341810757056823330646420874978164284804578604770544952442463922207153849051229393365995479168335176164944809519761429879112723293701774425709669825127812595504214155817834297642455396360801324493772647567043756223264205593770952863636527216566395206721403496638984274922499323749955787029280509581343947593421298020377296329688931466331934033197658331387810410895897073530808898898242313609789469782248327753821824898931893667671619239732704847929942031735920447299296505178845220859297453252952614658909590869680238301969789225114249600214656764643708050797095587832706174861507645453415544910682926398762855693166191315828038550140443498127988611735546902686238294741451048011139839335514041988252998172519097987575371644655710626022662306652696463474611109463391132742534340940854956335942459123207883443464163382963014318513259191252624495484189130410214467700787971035058897859995894985826932025458919195815164292280241329742191521524727371917659428367595262707630935742980175624227258735892477500033437175934736860169165211648602977662304582980706614487195699779290497843821281113664394754293483818428397123346547760101708405017503764850017555958848531207516510619616848897591232544913510049376906394833817143050752624890841823129863252195169314167332338452821218318127908544498337565246780698957317523624449948262364147205054251792492478272266911134183438547529165876084989576461528080832115707975618224242119473116449133859446274433159657415979780484198966998098420380930832527533815204470348071543081760256486085672104885563996701254594061935354137825928456352257104405458162128400660637581235087380870387349205836870966797025975360145620310518841067618257628260739164416536737345623526068842329836581107538240486331070661020095628410168972821199006791865406046603770743518722791630425311880151848761700864412506320431845888920788460235400137095977555810157728421049729410002847529636255045248000280480305804546039965420400444377865444929329763352031930996451794493200887681720789168119798491843924569820083349901170101344652708952974082126941700376778464995710368672257359891348555955778408881979984981307501962136014410946518072892633393956012043501865395419644246207619686682341338274700461578591509177873687471186369807242735115488747015885000281150662237344846345708715327426265939922984840021705922350086344790798264629496076522402058585133399512224445187817213926110782116459317211792616553873995433594267510880649367980087458951438626841816874071529049829458907904780812939461764428498397750599533886123801192041101427944554639320505741781663760720256464078395505280208654958282962630481382951217928921345771541715381606784278853020563746461345097835637971139900628953781497720803407301769563480632450151666936269235306569653306610992304708171624912064853489844910292871958420023842090207994799538474794439581028806173090390491581728261614827941357447300505461704997228316784771676867744017489552312858095661671643326552738322791744307466288645811251740163660084081694232764054160236253785554553349470818350259391487980963812842775770690928147229237313150087710888548525764404516925874370551699225587640989700636393278400377225625837096124878462756773171776467321287053175412412988774467099400784873464328155728372795266704356444076515064496643281592324832058260581831054961748568446869326285365013125337648639783492725500968297266961344971690924851750154927028067774569507348781567163848939663955844824990692457010778311183470037161300886097780137634840101460585913304436150113648579166508214001055798911481586140816308413265454506227308746094082937919052337737773291224955625639456551405276559379673794956596592050034001050604114231450213837467424747576084046496179425166127598279666462422502019601331804398501844219365872259419885424983498229427388976103532844597266000816731810601918795838861906491226729912190637918172330545480625570997097935986514772028607409652891420528751378042618531630737848032808565663636266787497821402829485347069389866974749496383622245232501558297260830494101376344797033706554376648760374397715552752225225011193291001858242910283812646094396650666973529721638836230170564320245834237616564305762793758401401577874879092457515609428925115990181500431616610527785769258655382515258992538467116322184497529431131742503247581544315794730879723179641901384894275247010563404847419792908327300476540163085204264280439006624682962814344677370238973601823555695217602301228374342053970601215205532912782718447338627227562202097241431078735353662475870437494429512016648026297608095582126595542239746670586874132553213607044233808442841293370018133121388566105762773412864605521674359597835731331069155344095510486611067211496210657779024886223764709412989781291141689831982225730245426230074051829407307355679832338315434214540178974388750038048309615121772036519331668319336855412084332044189216234967752398613902684888552699060706686116272194147968477544869895616286852424040278168255892929811106745096846716811299130925476668012237841037606808808552234055137305009150948099051285789169057769760667064202087713865952576098327332690475435311621272150629483290779223801207444214124844846780178409633270158396671987717504832051636822378753704339569192070343882496575571978947086384747141021940506782016533180140317130242922483126036288202701242622695841652625508856148051084060312658364969540889487393468014679964285145604620562745852714324807655008513790617999242679031198994377401002100294184594671041411559109409259325429073565155955474367388658930749710425345542796385502307379907385756799460108775794869654489712778224617375105878020044625396187053268585542723829458810000632011684338013748320973550855577848759226388172515829285343655378227713158721381710854220136173730398087920870908639164412332940254406591816397619859666583046912884632698709789069436583360074012704779295676346177248153463291897231820673770846869218311960937690696655648198605615502645314178265831986227245463067174721213678012678197601572711562731544544759710716403629243258647846469528375558848155675383033438934015138798602992176399498080363074087780203850602957529506275830242325638571861735651524097136990770421777079609313235754070252275493037956858139017678237412721077887136175037896036701543290905540975945348237315572249868921193672372235593504746709837410661426394050250452483190332550117568174637661606702219888340072702681205283837590808182562102293845228195903450874073662176616778712373118463162631660702602603073181651605482116044347490975401735557178876852924939681685579998718296217914527185609755268387081624465547215734132098354043923581570921988427564275360531182319112969194327105054864451243575669435365580941711701254376947948799279619871789810452295303588835790986815168844254327233168502307806907797129779984014468743982215090009769955735602827114570276973872904890312221279032950621135123215566225256428262857067465783009604885030899694227105315337479816295321422047672404965503243976055968145602520658712031766201271488144749947098932899298169007778523714811716149791423686506453786664103220719308288778437064520001775090510916885906927869467032557004614447851188084157405381636997296010657584153992700807012633564797487553710310668860889613957326305506740086947784427009206468527331285680962211570965717687964833618176680379539221264351912315397142388359530718437287626592117307677003342783896019290185134900119647101827060817834282184178385114983443887257068742957349071556083478325612947024129333368122087950380025500079782297520144515987199150855968342953929946987095039710616247301607425173201264158235374036200299216558308156617820170427788080759572007361097753104070650728009749250841374253931937794969395965325796234168388521937508730083022150909858151991718711962217084542392086803841281939337546818396142667360042913939947834369803541965642222068144372996146098391399246159131568103266279164530200048263623587788870177486645124972178927617975987298646138108290526867694255075386376601210469664100396809588515641461921512625037323590136079726833933894354522792477481175463574081878397755981389515454878648235341218954753102932390474308836105760175617121254940225709817845366492173060541746634967970240443994200690158294054310488019436566263528263984371234366170958704632173314103981138788610609116814142341038510807032808809062812198363948544359474595645730083154399416201515428476343095062868695088625754595611741152293116489171285738567848101078212058997001866652586167123033278885004914400469867715522148840810881133542783251134195491916225672898693570660480790406995909873925193865881132822136792367520472850849709763957637539429217028409008886011374125938702144330065118162317553534607876796959355921707882327183434549563426786366503695573773960651548947985954989563082915610493217306581909730903229830810716088529788985685124161103067235785702350932703148055120000049945854219214498211807063681421939424641304421412976236698267320508830538349904047675767322019873342980082094466553200034326061448453092289251010384985862018205258082323987471023239869566517604506095340425742669957073417277593111133308259458217359183102385354245948136548123930934483763848049650923421597349748614783405861121511036535203458972692490581416062012427350530432860205691964772359657315663282859112331953843427970755739041849866145107582137426414604465978479741146003339790874769945152185105059628348853824148088484322690562776346899204995597668936962709265051346280779230559119805382129920055357290934312803686782344872061824644406915844611162769371394302940615688071388757777863658068481069837902416579752772678350101313365491273297633657525273455423501700283729680127109952629016360944223341054805255847935218209255668834022590951695095229043216565806607593573538954033390960165844958671268219912529165532199048596571156989843072389137006745575422200927744499790686569854612304301858940384595616259543130938921292631615382134612159297585087329732493594189123382615286251501077822850105619739790950434853711728032861835605511501748724789088919959997606122015719176958208916924811303397633590819384160821179321566028847831892312433913047642014095959166815512146799356226026815373875649908939934573701813974375134508886319128556471777819256565577441708888600422443013437078360355180244336845987626236038156576021097880903599266548943242685786909709270476754270913608970334311102945699245974950360728772277255010648312077781776196176270674922415017115498087101825202378643220530532911863071258333234720133662942629741718771618267490145104101303199574095093080986236610482880716051077124726646421177294163121770668985027777599418694871496744153136093705512873867102655238391679911692124887558664717743177466495891351463346391214595393481133775334510817543576176786570705411625436944847774227691913878955483363923512661638604935830560504612127148044495994935774607270146226819283599860938858174163886026500319296020386052510701635905522995518589138963597681120442761580351372195632527761778486252643992792585387939416149759073968971252686237500133660298657706461989089036802167072702780695209114102085026827893196597339445742422235689923945876697059215231514383616252955710959580225833373904427801384161457460270075143723677696697967242853292608859542627052203424977063345007298896246990003573622835557726524910478156405687607893360819356339280583211368572487525790752069210110394503747210287359128343259734978909791046655509664208887595772005198907955650770440092760843689836011562084021549386576539998551086641805909897327954240049644647550237015547183045815458190534406956149822168288697389466569476212880801030457507691369788646193372469141534151021597792217732917508706508556376741059497228541331006486964197821442263414379912180297729656514699106971359934936501235321367307087586241544212628866581313217057976514603435670659776278440945639100664460590117087149717116056786463648017133189526203543471324807699757540020569819865878526141908205161267858629252458519952012352515650907340672583179102174739992831573171512505816144436335776169051895978848706142920823310001919625593578945888387192455981783085733391404977156196362564883286481278837763395753966711002901265495945622716365134872249003855495076223903362748512208832190634832263569674139898097108411706565534890801930729263008757428625930177999584631045058425829968088099504464062381210815144029188580849082844200256604663413809685017330594983281395657974396750811219431134544804780994585041444597820171312745963413751427076437027861942161823373457950779608875877186297344667623113601999080007644077337220927075100038427699181595783563919095023689107562907865767509964859459701571038056362581461548153770700124215506385703034783684524201601325711774124754488130706736142367908950169957236208874573767861580976578595401412107322550194152925568655031520560457164965081869707988294772257636353865785717614748606557865037311297783520412033274232811837701137435871011658018761577387111651213397624375592996546850619119469760155059473775081237598142060985589364656421516617399756631252606410350332048757854948903793557120417518788379602966787327033691318500388591611556902113601365987051174602925576691247981436551680637161740659350538117809399584635785745279976315222613624751766536942599894532453985177082944316835702128400090484658519084770539968565313770871220920676217866077309494394419745356095050121603064552559812401099473155662277994000900795956467298089332472217947972547364274779374116300871640872652842105736458759086384091825353198080742497259677215776214647730958350497023135300832380629038276619234123811090347390326658894584915454781801818965711933875128910537609951635964182822067990019436831801224231728932733168047352582829063757573754225157096113810097934602346709130198262534392638468644768502791660530750394416969357881213981807135842168670868338162634485844493574016594960517220768289787104071658424348092784448418938577961231341667989193135868616175660235741870336654610158235199568655888368405462093336729998167026371496825579747509741550266646240274907596567492526002517365701868139916294400221200693107019180616344572690684487779195271641302173315789318689003500514209443903091558017803563968479068984722031337879424020896175619475899953339010016780683214146354650496997788740815205172689792696561264897712419508989557090021739305684715977788610445777856085570054979213622494478412096932555212714205036858964288029765521143521915226823071418644763407267243384722802219361118815217484776002070982266672401135055677127950398099055551760808054467321370336951398166797028755017596142085144332515730633994150750190677747537732231952266316240678895662822217692594215762806003005324318255241661299845503743307185337915212231684213847394983505142231833621693454276234135722057103288084763848233540553462116525593668926858953286967655552547186438401400155679120036309659921253794671329741346927092702796244703066864360407926549400251129798197459275733042748059701794718928350386073729638464371356987867515914593965078180913192278556565882568832512508370487407192703637117910639977427081076544218844311625495841022804848302531822648527154475628857175592610627970959820125913656685823789440261410090648943080553782186588529658873222952147980099866732693888471521586381279305873429729612480086520395981179652760996911816226758130273874130399777235024054640346409285434214048318885743990844504316622917511570864220855597851839961921713174259225189619388416429767905376572602180113461839992349835619569809271874866110788983509529051402552549023723910366400957260507714077424895853832519442734325641327826558843627278223757328727784020262219901803660833984884625543454485425459692759961826137739886787964371683031130176980561944428100644460246744754136520392563168089776425719039333694035528843013890767662194888548157960156839305142343877622990446590140789360712167914137122420354395552225407758155407507641711897681500909079271926980150558811319471499418623779367648678289972635245750460422018010460854835599781881313377230498869415264023115600838682017596632535971048603347808738295364253548549169798434980119171105299891284903093993266870850168429894038985239322436974504243400177885314794176266962833066594003085082837741469596969057404451113856559191090766657987680556112492833442149300483260115727218418081179420514921681346654227431524508301380868728978035513327237176171349661476374063875894714160136464667836809655374720383390744988565342528510386162890609849423981094001731526531820131681952156582680063193840418097933790102634225018005637610401961191665844925123596305000925482265899566213288136931358662005251127021743946135301790010852398295430662224438343450871251638333646217212913805202420353630438585480033386784708123581880643568627063832989125360664530567105343633623032553132083492102105906428762559903225817710878342515996542961891797475406473787426078908113149229479549269913022563426682884760868654019126069401998278250357322491011157894669907917158402075954669459919444979672099579437120377976987527070714796297061561300359420250715064293722598865290294911166672399441149452205469454143841258772836534001284524318469347558517868876399560111679789405662196853144534185449410868336815452125052663083067605214247846633104819715298032538321243541193922378559097936154443128525093145113745203791233387076412831131476656772896404556855821610969067227531632879277641319168038755072875036891100117268015802263751229926532792245586240855140707520496954746794856913484327649832438520172959601470029440519159750321221281978082704083433741527971558773912643237640072077503155355177980083936376592836510644794277945663373425369602927824797196782918749866331866864148582255419148747111177078089282356910633014965492155982399898795140742224101179914124377300195213765110643756262058842629606394018187286205308188998464602813373688360301236231771403545915499106259117344744654018467437508539355134070203221647072675645369193052436378402643568619762364528123890235849932595293651240370960699767051897221671587861965569595011005464853714722531012284478539922422539207554443962759925396720104503323807106466151435721097149925739404725287339399075516859753825993931663268667565445285575005904734696717777691406913622135732365024913251397989255664802022026812457892567557246100837868058489115081144714946449293455350565861723891155300272498477191277417844946489817541926532504983981006433304180005413838885393781803366830273564504257790833233485140094088165816640971634269856071134784444858537305910255496025515391007026992899053179296878010144925507360839265280564615881709774717524581370556211687986549872492934377258018029939394623238795525468611143335020234901431767713677934892379135619318792273728209208134898232024104270584451740464163127670852688669789682045328150783442379722927650468814128834333110145492695733496862597212200234749365566433052261015306485403334335206415766147063070317320051130795117953012792062449210393017482429452579624923818816775987358275060892509906350427089306103266565222746210795337757614171102950714030655998044741517948635806492172842301110228760136958956813657790656389559470257051904460870576706765017478192464126795492330787705842744270406281391898832585670050709665885375716322746467658878598246195145991741493087498860920948740724313127332842116447949151143808921341724765961169942481041080549831375539166991287974366421061042488378896575761200987496110476522902520583499443100676050563955046055083511945828100858846184359770250027232990948196090081011496886681018574660516515807555740712444048524180032817908185596190660725094276803222484003173060318083808582463358574837103579899526321482937480162719560946842784291194274796141646155537851751374487375784253332271898684070636029848168143367672108921123901616606362461658533802527078938394616237209250448867241260766805774461310408706285818398634900966161377625220986967789183937828734033470927687928305409695713876258541288910855033075051304527336679130674258370160480991831741249346135990529769357374445438251537990915509054237404937548488008009281761881978316455230825874573562652332480909951028146831483743770489564443644987529830509604565437821295265994446095504595800136006184909963474419806732628694190587752490719527387579685048480863859842935793284229003179221399707843883063814372851264243650760145176427368481318160848528141588311473418180077134288679028297741202255362540770898493110501184262396343989084195947667448900740426145153278747421737979129828784408424427580100274344597109941739889846363013421257018946504515121049371299038038007059871706844159179090014962824137082959143389331991074441393031731891766484019151354193411450573944275811481000525652281317298496764312607516667711365317955531226555217119123329373012489099559335889419483778220276181989624242939948589772946064381120343887354007738246815280188017803761303427781596018193077233500956135028430292106516804162519146342069395692794712216953443908399063947903130443891702648089629810159400842767030613393751147679475868439215962881426694462299852099689796862131194933543802428141652149039168479482912104728196314719326064051275892015925714301176817738197329980450085370711686469679225687672148167304798439275412615046199188358244922018752768252122365160513948780104496405857151004309986784165286607015235430368204818013825514812741626394759469104157972936374120855335209765944828537920577315230647499908404852638742151668787160248285253128397219514113373004594574222116031059312062095678862799540980384182898138652628291595221861170166230854520105999704506974768039024380140628364831610149489722718909725770389437674275510160145398398813575259470384834944848331989025630673146376269209389531589046061833163094081513933635154913137258662639178188979012051442535251497472425096750920885604108347913862275249514786623724466566882759622872544181512535974160051472278129097102096268925989230977550056755021470414492905281090303207841050657484527151323134099253855951891105169446647463492403999484475115180596359872930547367506855090395181621163805496522759892346489245488880549711312701633228487176495764650188172350023720642590297797647515717417836709220952873849884341983900129721470061748113835263650292246181284991884140868167424908635040724429708998441038252520877780970826027286912120578806259244124296896557258362413697389805921830735366069811919872701465540981669748850173555565367045299494716766622611393130912851229759815602729896516792007278524462130131387293895231181107291051966903616753161436481206947489501721846628270299397103339913786274330019942332324636151257284355527804572227927888354529661791235493289593816186992863187230611899553761677173546126789652931555529542712374839078906375819624041087505454767660042546371077152571328042228827575681855209717336272065377131646734612712101910886594065772406618363893725866200366868756970049884119202372368333011613576908821288979192874010954388475105515579765136306734423491286687419036421081657459051253978896812495750614521521891131032543337503678766114244318126436764991373174760679838410543885113452525082675739278516297637068919529664534349078499050491188597106254630954820701142420698531750658098776057935802193864305098076047287371342987327824343561809265326537154423503991499250875082754684536051635651565604884878515780790198715719740266133024496631407103551621468199203782466047333815382243500505076058949798376937074489151979130578099298873801826767807710140291485753651309627664867577035870149588899806185613507055815380965344575511138812525652313108859447641626117822461108517760866102256424432314956199593752570184094428189673605568524665412371274012342635033730995070507558469240367764747031437572822664822345012492746684032441070916319793260646051735364582107651430145987628155556720774955367314951678417961116782281135838026774930585603857639347719933256604762747916872506819112650890123344548649543061578692066423092532813744241694977988163832345722563424885639495428341944663785663866923665267564974401956015383848821384469961445873751774971694650546902355556354713108348128940148683578187087263251940572214608581926258836694587616590035800064975953161285547472769009150045636665169148349711733229039618388905459540790832486571320406684949213162629353406419409693904505243649526290933672620619834534744829835063522604097914807579679356748513705344717012823007164178100654281291122668049012751384039993713381156171825272194532603715250652739328283045784963158392190911707623130007620358452831987243829650793828403894809873455473867190384881790292240768379214282082363268657660998618449086099647978121368721372196075749422291441900395960646976313850128778412700469552456961706897831413577656363997937306647536237195835444471544058627738747976153656772641399053040591761994821707263246279982067087778427813891899593309526156664985762628920517705993530590170355967447656519992073632298531447399295762919181121451976961350452043573253570358606246211234163727629798295225669276366394063308384964985326373991062273845220186912196347002658843816533564536990958187510791181927471826921499910726133403478651686283908901110699108048016974884628371755624700790684023544083235339979778289590296401075985594232469533788327718475210883037506494422128967858078367387273228340009033302068370273492554551595668690309395199646241422222139566468824194444436908434763939253273342801952798827407204669578360990400538408606281137320570748047410415263759920170468839790221650433456030878228617574019916435586662227878201633464329236573687284146950262255444705066372298302370242411044302987922888007227813625097869212594712550934284220455261130172993405431396788438949405591450520273413867431832357626775445748402054886952255974516642437636469208404327073035666165602205449500785039138914054265627233316972615063492455158743705063034643896269877567996574175274050179165591246247371655698381724987440977767269834352212631084713151968413638512519478659591510783516034028628437776398899102701613363269087290492945400377704526467981040754334356080135199724369940505443031858278627599612159332447277576245398361322906163004962675899227387204623699832561115959210674244771522832550195410733081783022486447939093367542440113943822879978650128576238213689217071125479669737422120330456838317226531343197170623651572829950403911782944852235947884736595746998033965928699104013874274821962385177504607350263827659643235332221568525808531687328875531021977399165604141371812075224294270431754500402414203622073402015877457098336393434328740570481746441295588588172523764125276084960379008715125377836220990631756290793273434145621753811369230954247742619308051779299723540467829302404010532235323117747662261072976358720597552569706133114008610959521613587480625200439902187606916110984497321624768704202325899754020921010040702520513602192823783302272013206710946221986467850571919401059938747825943406905250200327155764367167708688373940323401592781450387675302786980545523795135857488274579415204005949262063494617432597589185572709956702176664427530570164353122919012408039226133617976263755530009939382932578822444945271903130417105005081742556951227487452602303246614326163187835370694784581439093214334315055653497358113412963541071114484515657544558992613861704569283291754620000905952363259586561742168772890622903520379920451149897247422247713702606162354543932951126149162088801743567187178957232454280212119780561954601871923451729089457708554079321631393993921171980298494386443951769013167244229505134191750709543964834929407648720398159198217755691784690664503431847029553793064984118685096867919951818693345861558960979398595071310754364138470649337502580594313090949042322829872894312588540569577235893509679843838176042355969404090584931466912238532908257053847742376928015582890952817635739438459807006703679219169507384631121813026779488216623980593537815589147706008055532344333442227804760157069995693717167169818227980405933761624601058133907889728346743434281387407434911401309736198332729114772017443179278290647305684487752912885698926757609198042411971732062187002387689735125210167982450689378627530965129557826778835029035346788696637468092708447507733980356816754058267003354021805697197376039724735921158564714440280607912479131931622527914714062124400896971815937067919527164216016118223585872876461762610651732016834573986957752848402199705052084663471766092302077168329646866248881558328711007125252337369335148532942878667135498034733929856621378344700433895432071066783164467819090530735189456255028595830434704897503823656400900510031259110612045537722944284225144276628801013404353945447206688613530649539975056769362441275705998434131419458747705487877079978149952871542815863764223064805590041318955908800703843872663825431223062455614874913464691901677033542890569399446596021702021282295309098297608174734673119699333460087273740077910387976229678832318370761006655275885960503765831442223434770815570593629705622849841772164129292766057388086060446506595149120362263151834208791850469512667356070046681012247137794305456934084266537951852781232528702888642128574849867417335762015311899413800090383194107516013929791815451650230391804198095360288963431973169277094756241945374499120790146153099020066562679601706916120597171162429589233530313412301001766988725995190575310858745478207742244729546114743335415445700521976556535810141663938958466989473656586967701860812217053239587979968266208690426573493438953164644372511736089906507040340518238624973613763001923293159367648020231143372605913765866126732461793434620379494062615006418145677106658918589035279255837328109272191455787467555195245406467800985967547910463065452163928829721207779556893695104586019324249994539826636364725072937713868110256199361662658529806462269101390038181513058052884602729179640293231678868109367671077006239942642692373694319458764066521699887908802827347918364104221316419498877895415776037690725511005702633112130583799934543693091803803919401357620614319551817879052134511279055649190670792337341806509420395597900520312010493961353532664650162076324406856487533532903348151422454095073289440005302050162926327026563151210819847996705774921004929500179690505044735292243506721249105798096828422957347696595501917492512282659811133897182124415748393076557669045134382541738872780559052606312628660304299643709442538608461415057948104948785780775833180873268585250055092521138509969442989497258370337044632550207256075880933961752192244213309175344489071779039171574780251664412792175301404689835745494810985033972119368089922661803491315659335531279663860180337911610579839337859459864039515862646756192503849323828532685469648892748349890554415007909898446124872850449648821923831395139893890073059944872592810818284269629375565979294841047171512040666156541765377635222775490604367463918597473636318811408373153630781817811439795283156613553293041360008868547758985903784126893124001931733703257247603355774413088747526701255286344425195245603753069912711741728748144269140686970762397551026677017633489046948223975406501210672413284402099494143434546985717010724241469779943253482992745995747022216722614502722901894695550676582609657986728035259717474895004536569808851519868508194710472831141733924049650966201298720901830308873299481877468083145125473252195475699445221946072025262020129992456076803555818261685296135650165739215733560624150699234173485989178317936055581692643685919310482132679932946346352777119109683622991692923983252391039620840733418738115380869354220219273147400356680819422692613513005497687804599774597729112653670459642170119458382659214543903978897290892424909455771042028583741801095157207103168866649262654658440226063292069910946968070836315982462281109623240909137896019762272893608038737794461152247281176918115317792601462267507429537035703584285462343573471059482870507401427608443605431297530372535879572089694145754404970794102645275441145589397443462413442116044687583137136491869631523080016528733926948971447462566833775131721102873597616711075278969409968139576339634559590137845791793930004642028928686654932545183965146346114058984612941011340310219606473705570383115780234436578853981761274492180853014026287361795031308964575595252250807193665711523103309249525806949400656712480965977879930088228264660920723695979630371236409743617688850623545703413550545595581741667911265894259751493770860445740915708343648027487383428901815731303402041661061376626034218496461223853025764759737683066867050880006464826689347575831085229449157429247822893598827679179409817927468101995548277259880521560633989425171961605792745864949939170817542429171219760558009305821045844356006873301657294607190717936331217187678113378990296502834060072146336697514879860450771316480093645944880888870660321749371764729130484646487022361342655652362167310118670967923499152539820520668681359900718680974868638083903059474076677355968990973533432513434188227681113917631675180399361900259581095257041488342070680611282009155221493467658972500138314248660395755717286857071546374788826256349304471347396043407997136595360173858962133052305153686653180748225040969735232531731958944715389373045445218745138281361382741222984862746563789050378227225183976157538851174371127900016284983977301366772975940896392913827441102267414544666579117050171409553751903885125725852802650501346469124219136305958159830613738462854667141287556380745048840594343831778359499244615702048916152902464063382852484137563211569558725313088099029166403552380966353851091909105299803802989378525984617387225045945711879075668953489548510788676986094667298853393132036112769553219927539256931411524703023750721627051472170286759648335512042238085469951954387009239818099823475954394447268055682848776176013908771463831503066759555273314466154742088656225749437032428330162583024290558415733961164797294606173007202693260931474005463352222893941543315814286865640948928924890531530287752968493273060333724080489495542188060674534823974624824861968812915285789720441890727608696440696254502451928656038921480625779622217454043266335064201172685895579098650738447577779954326397793652333670615254445859923538168270916369797947702056502359598300936161876197247618718116138881108122225389227048067753244775118690389615152851396185087400495843134899088928051539094208988953463091158328358421393023641022747712221481241276241201224315653251604021932927351652075088676282688188167934164461277659923556855981940170813238548233237792630394917633978720612855395661341699233244484288933202379158166494873791765284688280312432785913713409897499843987160348132418538154694083887764714219424099817918437337301229512938784097650177203167128331717476492050349951272207120586889432694876592580240737683529405674902055692399306887827743555365590151784200384514672474523633568836641896299693651340980109871560150844592829180769136323647043117179208490825535291402255201008364203302600566364001728374996936101085919607536759673700475863530297458252121100454925320901721478123969323136443515307025805186734946795756572170228669138339558723057919700527513141370222116285929033477568843709595944236969303276833967805841244661723107680389441759064771073906097012435681437142898241964248392544614307328969440098230834492251342401815753848177359423174831315207032648157640462064951607978733429105344047748554034963778212937311119147964140725195642496257591514423131183229843208148243855017953540153887971324761273978666625553962225618743687275788832163579543249347575060771581104112899887682678833284804063959647698509016676646026245958814742821922641700024403644196622523978334812327317263880935491057036329863420611988991402465664733814069123817831398574124847190306365717636414949298242761411301291516954139083327705582757279954020653547940075569022037428197402701604006492315461091124554543975095722734971301820900759331887061203080287795797602056354653668367275436637885176201959135808596103675041362277961566610141347610892452663452525830716791303253425115512960824233841390170866256855625022106055046124981735390432142221613032195503997969587853343894237515886754979110437642981954718418158508295852939218241568064252704699682024904559422507706508818960618387592322998034786047936555316412683254686054907872763896394110971892431937862283342703874559944353560851212147080998600393390736358422419929696442141498076361553218499903438706126219248744647873414340492009983762608067783920347303264093972331920990743774791507800376083960292497438560424499830467203801619470926107396502221550017795131424903479558731438080534108908055556506281070649360465629216265430670530126517616845857951519602715228085454937835621244573970570072674496651586693577319016125929954839842806788034428285609797835060482993750917659505248732183179164569861175625788012031749979687625585452808235807360326937797217807629752492057887872314079616300556295571808233524585642772370238246426521270358850902386609694317932369115248189224717563282201466456877247082069293790307747185220808924594761239952299188744332798611243672597126883214975698188823193319620094197240491021386343203944830597315576305495251218243492971189952236175584456580203161576012613272416615695661173239899451515695506242689906564803723716304437547570968998256717562477180770241231498898723543974132830108576393842443210779438887159206011507998205253244795416935235245746407940211250100790262666617642583568551176908520223774708023842791035463647847506855816383893184460657692845606693408532348867197815064138064745934124081110623540013103649669405099410684508760798211309697909362459002452349897163248234584932508053785956993895082853984366145572259654010806774961145485165389173523778136311458712715507511798899963886544148879850770471279346422823433871663509907894876049432663523701211554272186063704168092525366836513015975915200811973532388866864382719546106453980954133228835176376440600454004399270707527062811342163752040962565971148705045781813456399996459939038638497216876297546364993139538957281520232729269305857862167322584301510804899099240190114579997976809175660087801308390591906175885464174985713631627366129008672701325902130245095715597679181643225175666562152723693211047764300695624369546356311483624479885768324323764183923422283812566361830970641176241781640712351661120217532205692035611882743437081933605178986244598368412390439212510362371835962596998533146649270487080154177021222681731091751119729363033606795806049684526238725734909554701026056453684805524946742310448377856817495738083150364340543934377264052571047906957588139763265387047507440703648549019057021687459424214649480739334988072986590321035508656051850984698755033977026680707073722389516151197630875887334395145018259063109852508322398763160422155678671697696089922201865265131380982198076996085361102035904170380205994558498905981086885742850338778002965323820753932235471245629011663553175379380319739176053474681408889785805031636355318927281127566955124364208783154206447403183514515978477510301835217285958059943477751306597748676781372583125961060124662666095231622044967031451574503143521113755895641866408114977922520824331030774955969749841504397528154701125892111978498784938789144919667068077901884550724510465868136567754719580294243360537196754297705257897856561170616750367683013581168197914019209792278095540208301550826633434347545595541050583197556164364005716211021552300728526783805666520739160749975241946598392221325419107672523197039783558712457010152066467753210921506082834123709509067893468348361722807745705242292574269241326743673928866021969350737431317523287572554562956857965863528819114266878688177310170711911915637660101958014262676222924244637283697241352567346678665721540253168203747366663438384439413545039261158172422836730772550096670831001262923415303035849690902918960499646181392885728610934057563023618192092504671855939296352382089342426757810244173609913148081319846022758350990952815861633919799293103158259308592923084639057681653192197008503270408993117971872726891240262045358613758607758194111741063762788364281736561922222559466175586246590352658941735865087778360493821631712133208003808907145074352254046525687011327923343248745697476623971378448825346946516834512561478414985902492583649952306977084420382359560563568770155698169810712898017137476275049717819600553815250557021588918042347135781090142257882219393828695964248892059505834168891880168018255748948753705827006524549964387453848301337365460224405715156407880835953222786980910187211823509175611591823522697850938087385440172749890690775595910924228344746957001669606329706291645762478303833336264753369864260663734984790569091515232227651904333939096029408139303922822569704222437876180935053998352323087718662568756774049165994199716821577788817704225556119493198586698796559737091042783389418101357131183019281986750158907774504997658630994877462078314656095094428406093611205069503564280678180392028864542204289059303580606459752730078017827502605623548703036432629836383783549750563970121456201222372243250640974759923661316149663989128844009622228176802436666871861512758603199810798428636718270314396676495174381088202200516150777552845448965673616356385117518659810654300342101479199400416842782850722992855809963669620709875311589586761091747932784057824217652648077339094303956286159234310257382226936241609867031089791007198867336500656468095596898557275935352031892872077236981216936580156887168175547348563643604597579869318912959753712650497068022748372499827957474411008051462012494744016932154321786785842406647487439856265056960941670065701167704719307849155670875263248764708742144758369165579703525661351760574119161358354605108119076334582026488588271471746520720741138444372784803807353776622179621969107788597682895836097771808146284208996766215888496400887437362262332142456823100829663883430050441456967589279290834027603300449767643363533522302158686758914233212561598526682770375852723214252575120224118553837943207829115385565914473959071605823896243021647276587583814812148408907904852482513987910477660689963558292467437148036199772522769341488169753943697483461672644987796174982669547992981999405225320155875699278338946651739149373127809981016402920713492614064594024309281529065421126669843127917663290484628716489138082730295368868614961234070373970202873592845688450675268937618240358026598046025816182432994321441701004259892935129797877091578849972700136126600929341587015774501586581953442615414113637844294643705154501520787798878820204953859985710554323133350990302089147576403717050379742172092298726879680056602442301402950025647798854079136348777844314544717800255247890575895961572073808409296502629281088912638877261330721628119014726425796424682336610590484723995651562744194646331913120349863882346114296548514860193021588020585395046081084024682652459330895856028938585839650507571296629585940288035079302477191173849144239939368041665451143803828558233753157125123544939479638842710634607194922142068399505502344820345037424559050561693214017934140428898180665171209556456059844264599034733760049129921493520780884985868605272991428985086207533884984168987531509033369190923432841706548881075923491822781380556820955866750418898404700192410169333902424206439279283069602631188419936534320958399644927980027721220631833393638240967876654548762692534020144771367768496897053826908717455306124084860968858279950949313639523317925291940106017915266780511545475215856920576894530675511281336510679678738575172277888326840867988379571297227213014967005373471598949074020338126901979930142265343016985968123285445557827896097612300420939891283520512859123270761124520515981138316473813843846378910735657484750260711128966600791345477569014479800526666913960470833646154317405833568531355552120851712276295709278838063408322030022578916875259595491851890772146264615465077110267910018752576462310151686694235582266564675523938241407344800928774996817459691416627996687685689070181280765459046213014453008990078531671169271861573283905847478206450817154155831122157338176313717662109384556329675353301185692460323510095233598822762533985918414237463590811396439409151997149457520936191365741294679560836912395278551922671816827899101730710948597973918206831599136228966964123990372448588909095273261941235093997492262607011441869646612359634287005232136191178719199095531340453243111865954065391249177082121084610675494223093496557144690036046099724977276611209743272903972027127445791220157671427162497759338617231773165756904548221573946279632525107820534473451108822280537581362578583560843747797204248795051410388569874191748261834028272113507127752489726141785856570025636026386296367290447794256808824474038872552847910773592492907272533449691518721823730609200155728762372585526012029696282814847873307382727489951487179288566190652093199992151847910091365904140068116856766226733968633465282879802034271418528807356356963874241600890528837729358652284465487170457945720052157105086543744906049366605052908150069416844060639964462237418198944886983937674119696113469504101453870593424743190522618238118222626927457754530851832455171564388709891820245002127177523698072610825841323925715924030015569064939934832231230866266107909314324490581915866221819433272231157360309533882592162148996792758410953543619247868538432485687300998087380541977272227583156133943997318004322445301938730157564677487966004855641825455592221762063324172739631642965632973325949377287549327770342263045387213604151323454884978979842456927226061962669179342587957514508879469733325340031633684728203988621063179943982725719980232101245285475718963792374771223008532085461712594245491862800954614778727735773345352723205524319893963387495624347066873501295782572148987596773188845385983019582750530697629847394806214641743229002990125482878808382443543563729033037742473608218648599627784858045572627120371900337923879024203661861150032932967227315041388997731750505330474740982633499107357443677489482810701758343242415323075321395971981604657951294156762330999890869222520317758076456641587314373685075686717971072676550337250896441379005758853814543276251621703425511268684257978258434656475532214065372172644741110647858570325002186369025058074123592568241025044612905183480039536900011690107897986226960182599898918040116333910547166656793901531713397319799753177998202218118532053431440569916110313314088852763103135740521804724157951566555042344577640530829733908820054377844150379442759029503449549973471454713324631297140764399209774890796036498653949695879636633153883365458595510352597066183111905660877955680542255007750951882147240853471038012795469264509805163041280175957086254690350779889556800752265723165898290620316865190565902032981157855633191182815909463364469439898014675333913789098502384355214035523445982081114620848879868927013024937208312409596346565468120050259544735266399166426026016520478203623596402658698733854478698282965951133672478336935530496508949282664642888788396538759405875679791852018278526045638655456997695636636599362702504926996553531390055954416739848699195156484946009311563337581301135226113796959527705153029278737910531980875835986607191660120576439337828181324354192671013795761660366866884696463316977573484382162136711732058069097922676604165312622372810368683612063108370393192806576490438875355077819008657942544377381754196995283929962829341543852085210608969373825326859496778447322166232233082622302536338293387210372216447130487446108916034228078381337955675189202067610981185810551903190325301111279185539919223131919506329225923712133342522432519995836354729210648322190907896658367598015712682231593751035611738773069284006556766388653803776388426134313584312917437862171212232043910481233842020677724264654182153619264313940327131789879727451412959437933573152662647950409740421077702604761119925678077642270798821766132574517896343439228772486006590532215061177525861223644043866336062853084023002423885559564076173337477663351716704186681641814058714629552612577874986213781385745199131111784520776573632785231806463966767908608392196431825927601954619802529231359224700430244280586968355026975523250774979630276028248394326195304659260153951854901369863278417278756263007633985041153945462662314216855135529284982125994689779086400743378939337087988096973874024081082297727622124403524866408128539509478589740395142609557449264719587148260396477365913320185957579145575771619949931984422092611375147309589708356950761805369812832026574877543743009263714213937928501262280507659841685718949537620072170045856904250334602255401660561519255543349553673659458971028197851821664576623161424190838617658254544285570512654278905910061723990127044625423583676838119777288130675303420856423124918356652054048956940731179237006375923415245645539336675923219127038243264751955876415450561922557253469241867354993362662171835320649477566358214451984647951219167688472276900681829024621670769093361890210374469420363972731362616060449849945383097094732962632794800665422438991652460232679340629915586039379208773675050737405148914748138810362364709431030929681931257894898514416840297564180945142844359977382824286416317232461005689868575421103545976813417695266431800069494612045452152275046365255857825920951088131917613951052478136617316864805284640100090366359318337446785221807106032407544964716037220770647318808759539314195185396449689400792523009422531562742284347342813538918176933491344609368284056754137616018027061377940528070312775174772779126430065292788893291441165084298030526924350790333583304961444603447573790132259085564554127199316786681831541717112502438083099150275813124677563076991859626617491269391218970592337529155193643912820876010304165814136969592853254542911764424235833834791090541145244600807938360010015706596860006079890706916014778426129272402418682420652931821386558923385151467846985300814291567126250501753696557679938561928644682518574344542401842140020538291135371251631848653412463229595395770915546585125939889166722496767824209575373565378060387758791129573823785476512858865666373454465166830100128471242890417269466908887903009305103536341284261116062241175394152580279549974109421399249818192475789980940921873330864787364594448941391080824245203100860974140644451478175896420119918532897341279304117263887306804137889996059749819048320557324661903507689004229709591553262608694760710902857287236197459270684622432362075387943378525604198403879613150412283988316280037069868994754470066485354624763854961356341593655773395297308950428771339475846262129427008928095796510962840133829458819706359726967441007804011652540233166276920623978521748125547686901459204193965410898223072738968811540038720576552248064159228646432108928365958630031255572733618539521586893369490537464945575282882579391040333765379216003607098689839750750608456616787894280801200621515630322388088912129950722290599577282340409008732027794973060775618044933657281712579183830684214797995571674556499372095208162309584572107921160544091445936355555758517569261671736670477605389119796444284372653910861079705530853461245924916008087322193785148266144371672972740037222615205726370986499983439132957285388637648499435066605766883144800397528010309477865867484341690782164288353595265684057799760140733551437209303365737790256209473083791755093764842204460297762933256003257481263712088917180144026799498547021180266773020466225975982702403248856793942880616266357161857782149951319156858240195492522323934028534089014851138165988248638117855224292837077242725646276121780059002401709514534230552986244536659370787360117616090798155358568747652358207277901596181831974546428509064541205586133713638605205278827794427997800716455602523546127489714196555716529317650592585733717833765881351547653299521961476741971812484735265685974753625509531487826848215031232379396348314852675072651846625289817897287408454735378581279178700730963438672056827124428005443310100312716339368964486689502127163113151789112472882826199695534590199144497535399097327989808636986870718152927094137265794452301949868842865196310192153327950512149965113978176186574974998465913678356278553757907866329576873250016588119230770131630757047299864607626584449416155419554822143558332169193594833458693435503309707317710284580108672812175553695517694184786191731896690581408942503899381784413388005674401195566820576159621491934193063621761170917840589572546226099212209234239430882406981865502796339620752947983189555181231149209215141419447083350034409713125285895915058828146180403774999170888741484101493935784172185311938701782109525753199810902766691562383780730142543528173456473028457190472660722954570047400542821246383187421107048161624944967539781490545735994786716620269438635699432471331256533520985343859722677669162345952303487587063695369306853107132109644837304801474346506319478779241139050727318190918073037890078060995950029200226895893748547151774676549596990183303247454318189671189833706815211005487294685136869331759744421743191580110665405212825342078527985693291180842487552553560060870240218319725538826967549529720339078189687125597929811565665607487873811447884937702842464309436865941602874975602627582919990974313651135265043571747534572540389449107118330531233508567160475152333272075207391123494348439736056702773471785743274049784089402512213109930485530517588618602562035085577229561575111005800824819712713113846530912715179362140342946120464709014381673968645451532201179457409307831907160597157999835593406020381418254181316133732742107637028919585768540236129460741711785803803534974033513029607985612715879527204085388014807907831059099876887987554782585650945451927981050659827435833922770556141652729438082534195602870671900884156040684836067862793121151004428660898788958336196811298406732408526065437283581123225047090978565515479365767510513888506899671346328413910646021849413990603757809426530630043509149255751479928320582993126131557645880344811002930757544495454096334862486333458065047933062971429248391767523059152069572289843196065246600787608698625791874727117688272262073439970954670775961399391947536501979332668532041022481153266201932625779656918681272825375309854066887890028270362722362865409853676578694198054845952451383658438438810160324845307295870441186608153114989285724051892818848904093364336790871916802733728380307286758606615476843835659796780796202302596830761253710981550572050999104009244170947407634315670557698749254443141795245461932991926933369394660669718713726659238673134217433764866375718200672663326826875344287610168210456389821684534791726125896594981705499375234977328579903553889273880126961453984430493317960351122963211705073492531489959486011995236819998829075514926479986170085981525420878949823460147051461458420700993687682476229580357139223573255051975537899297464212441780554249521379440246178775311057307264864143573584111384793496285742330560137390029101799803069036159708165532696355178077318946150564918764403013296152768634843331706424338173299018009721913397101438689423307132792474168928806763498178351486861452969169610371870529859732166726155530125906854006826945065589307969840605741710409655147077706383906865713958943216827996792146212940658595427797298179562008911390752684492542573430589464907058530114860104066197156969635462217066904051252748685077892752922282536834404829003009508385764688320709046950584509961802866001716399981123281368506694995053455888931509651319143496611049145269943468216074407266026031805113379857248655225290063546734643751056197967342266461097370736876749251267457166857465758134981998273199887022742021968861516683140960068429755325365388272031205392656951886435018402654834139616864152229965235630855919541699760906793092034894984230783012202938856055682940980950548217367694948957507153955541698330675908584391126952949872241760286689747046790976740143901492546831386296096905727625440221055556556666778818883658646575346540723069682102399534806407987885402267347522429186652989969881545931732349913586155787614237811705609417239791691454951371444238242993084459853486548858817891404893508631950260690332966896986408434199718266505441676923836489465589328963224384903953743314941014655228760073163922684947426560280517574590906362534614236321183003745845678274731992732514909566240009287553158423984919421250657069793829448784346158369728270642316808835574782039068085528032153044097681559457666257205462238440961033380278763618381116280253135526612917489181834853307310337149134892564926831183276238897524471990698393104116577202606372946664030729657746169676679416103782227446436039464273658134139753681639867134247182846770732171475277987948043337356727391364050288893151348672866475542264604328091959190474663336844281262806533918489031883367504210637260304583774526659575680743009555126393520552990026966236942241983849763636040132949116407838033527917833811196295447430236505383673373436742960863905248650641447229481642778623312879585032194926013712443166522890360182212454637624882529211835385432841254567641475671532225098736554451045048749107169635360515808509086131908798826731526351706696549429954001194032893027138960108983770477590325394439007123903965937273836573341820723070993683664963671620065474325924516606327027001277992478799443939967240622446234720073554026596486419653736968223793644761641525448307911934805799461107914610816044929843720503393418085832096181961023262568801400200450151994868997040961401623165186946853388298944836376143003846093092981980350413882602904022647564146616409576396469943968680963911539260860917081827882353505276465355428054019566157105594025130092863936440680239175076219408923949964816286884713106037707117981676374092188214031609206373109424275427669322898215193903903246038680351777492033288414319113939545785153895508594174433587230491728265465808810073095046437901885149581067913139245389257733557024909389017788743258819647533421071230193601051002617559868521204496990243535661850418343034370747957577707308602067134662988608464318867774084171532373944519586026105306784462942813827728334127903764739708449328013058978482591540200370512313368970843288157083239941508263646648851713578247349826069657278846136678989382479024714792292336379761804972099681113604480051512424200622006966424116625732081755783611102972604892378842995087327103413907722988050880541420754232658807487526165148358663614982125703866367848020957537479704034098264507685862439020758530674012566509484406657737898095808580394555906827433207152959739175287755745865238419835906416630363888084817242908792497529099245251382559115971375932467786977587599794313633183033956351640276101399339049388697868553498557168363458454733337828058154890851982948851686972751459677726884252926466064914907152850940190461357775274192555369671351594320115184647612800637312901590939103557318254036224735555879775031923518460180996478764943624484199021959327663180814253308784056579170551947827286959388052707367393518479687132762643262215475702056614754187492620428643613250687866127502828081336126288719234079513879934098611357694641979997020921065807025178292915987364161250782774604620237468954248387981207130521551801764908071642854623970783130241733503696851043998056219770969634003464540218996215309900637410408745272108546890292065072135894374303827048365026107396781324593801283815535141081773082093555972018189629206353050729896479974134329474933245577282755344421696874135507090327063954279683444195453555113011922388343749697714925891193392532855187292728609001248754175796852537477744426646669988788697596599606407292530338116620091237652377694572760528140716295503867043385025793909338220964223225411423710378895519175827827973687303300569325273083304203829451843803286714133078118418116064983855265939213979549574743572249132773415718712758591914032532770771058541674304404033162010942959145769548331043849683457713483102548563968503387811379189926127315215974020330382283733267415607833672584158984207053661894242061839050600373416956077686569297146995110064732424569173727168159075689062268028582382129344072622809636511441374907991449284260283104924703902445774358984244919899589360556795330228640433032001372259440854093805323473923940517182572774123508966899241780858941360223321758039467806171934709665315681202364496041777549677906753477734418945163610208067385219877736553215648494764220060519594137349808660988918524435544315974683311293146650734829377679089551933034880710343987830816240883927200215332677023519895015590860019130987210620211079695149556304665019880982422800762471191129250987008224494183175238554405063695233182968486432267569768289543052375393933044284903907019520157975202863839276831384569637803651232788808995514218530206898867372667471792677738774769922061573211674928511887091615814399733039471796755049338321008073186121412740675358506500285279384620686347190563813176594808744826964879861223141653925017186078065141165053367068302969354410295282393214376750106635043622198370916040972833166984101994083427162912259790907187669618672695875409456619282688243104589212988798418462650378371256409007652441401712714562061752451620373627569007597179663803808499667180221604680740790220230670390865809448959797243021822410596416213997333729166247138906389091050321567320920619154039494933432523513492202972420112139254755791188187086542493865470046452138023406244370778958044640069082119847486494274177988413114160890608617828681411741057480040548966661118532801985240028424508477797128792723078553740097865948684872889082638375927635500684728214131533146672239833754396770614820224317398227804442909991290641899876263543464768908593766181555182513527470356395562741614667554063349025205043590463817521926074922763512071190159835441079424169536617117040185894777109898389300682424013378813044404013656076550353763301447481449031735413429380893478583406430641766567966958760544751692546512453661551136387382010482802847357919000801767823435290524695048743468885614353296040365220435914631517071038753824625420884600881129731244363958614498803395997981216529303323896110251002215496963097216753322237358411601529554831664953462677454473122175725124505135031241026393868373731212852974950660145904553152402087948427431068777448263878558998108337203629660274128097250016251216987580415709006511583173921702820089569228186870186456396275880281451095094396442013827001026704789802283389840657920102481101754886326258918524799324365593398058514567478895469427141096332034688887572651180968850044207190151934908141334076676648064821929063691856238488447014108544991549635296377230538431874326746606843141157827132419770019689464800491558114312606220566117869877455731732040346558434790273003336369578660107694781926646019979176133063078848536020633753828210619434407892162527021917599667624468717359156509645905456394053746746818463609772200285330208484150410519744214735995668477010515903766371295427864973749504990706497750381892838667877964768789026612543206666921850175445528030330693486212369829569004885111841009336881379969043766002183506464067811161200491473831058047767024188333885823674139782324866416449050104168352075946784974564565496907253721079154657986124498796060745880462463438103014060411636390001847644505305547301977801947927353692168358106458560699148222498505447329793318121648693068414652530002059869659657373561713230750675779386259371326495297603050996283554437303360870337580765141637973985043795916171458191319001039339903209213764157463268088169151833931167056283128175222056215418537491607161788669037469183140661203520347543775306066139606721645458466888814115419730857613315531900658725969177177126894691804119367606522981474236145370303430751733010986085233326814492671912480181246251388950653487535005196179367910148111170656895017712927708668170909184590842102085551842285243544984065161882152080966960028710415274180793118533105149803919797718262747544467399837664637071529597017839591638396208566635636476411354528684322478844841526884886845259286394990343881138769834453855446678931787535657195325453606079840043705212009165262964031650483635126194598368861940031681427699123550796270953425432323069926493851940311772643329977797529975191348767093957291949561770117923664400587644934869529121717970284456846268297253531739363607086757751287473862609872330446868834079498882814059164251982251802565160944905372883070998321553529373277669318201754738453820909440288252920920228513999964134354995435305718046083505808709872151151767831222925087768169989396031171318668496671679306857567222017198609028279594003289966560873178958254488077882299287690378266255332625595075148093731050811602973405193423601500800424646582643675952185406949972597805714376982832675384633028482322344442592599035467337700730995663922842057073382930037018483139401724606717912258960865715656486025702247374361030071095883870957010964270852496823430585662843057368209254655459072047207284403179090702222383240329764890539869321603475961810853986863841111322242175587390366985507295287574765544194824562251817529604896049744568601258466305327232051801326083441297106732932933302785531879658257282108598980730973353255649973892035687077493966564356359070165134750864334012282325066610467404087118411581921875914363344929068661533960449267908201734191451887692648657248951160280447723587907299056966344960040930041075363439903309125949080231001801818741453522600601782272030188409271441257660653228833951772570149542995341140607726583010572352872255701351967581292969316757797857705210097150867305046038040444081446471525819869232589570612540207751360030723407156018197126005417154909433173630468233283939639712031008057395989123032577792873793096147530945026579484163792154376710932933561369531883453370468865938195416685987862241944541566645746789906877037222582437103543233807114074952681581757090187482939947885542543275961592369668287418177681356013429025381890355964148039521496334132054578527978471969224960500817921572680945237891955559690719811734323376814646248957986890604370969534965280967047747828848641695620607827939470316209806160048879983750944103715249929202727071453811920177727719010348503890051891800933289236696894877943257741030918633757328812597735094357659828995956110009790762221127486436205320540097112954949573953524838289012623971087973129926256028785674359201140794877970959841632163307797592139718082412363854986183198856376146480799210894385523812758001504634643006954526488037136974826826527772447589283370311860192789723560346265612361835248727738291071232159815182180004385107792051489120270658822674320792134832792106258726892904045169844996018684476210823482240131608501976669694550278249076604698163938583643441465914236844180001461071281823509857388228346808153689750498904741034424793452127212596816640277390703490766964839808152667303566337816502651860705535428708165148780784004714847300177895636025621913495235119824991646946224358590561863507676680451120007754187529945190783663959762405610658381876970670295548324548066732326948846009772933400468209029759039324513746795988160807851235253684661699783674683636785866900041913365357576422565936181449278265602445268782519952090020209285277440941727083087308982371382310954465793461245585464654569193747789947201702673981494255655522698531240640392134071442938829368402242823246324910599941809760997487229472711117581819966104279442103038821826952590579654985228015205110445204528138316185616707143732850638984773107138566795065573969681461354464281834570587126781501934175523480481823973450575993613746653767688607195207253645907687739803532925508080644064924813378757277618748281972334780761042373091145163094246750566490520809043691360652002941238132725795569822932060336425613546092860271061629470523976780610508916346746756698380027003027191659474724203721486403221718025999314017450707448396735477202958585433698561491707034174812042244520050417361112369876380042198538984219586514355957197257803226330172079302502671728415457595154697386364743276758205743593039884184141288112569727571779338086781180828063264630666590267370667171119028467943466130443700995243288588219397759223851953909308173018456098273302692317440392944387685469639755131636902619848990815037719132343201732489544905347348705058165482600212618297712484365784316537041887039891362396805166432558993720651839439771001196548338229026461328324376950737520633651942526426990090975477753025477309004127158171166353704397743132022371897467553433854877255307468044357280440034882859671344284869229661504111396394495004679240051485343339196903358732384674714602045196408618910487560523568282799586539707688980527151873388374602600697867749179617484866646592718200739145754397483866658374111040588203712042491548150977986442920497727701499276563391600460057621341746053248416923733787017862861446009169609343366993242103245544281777911475146712783385243960003188452548773276785980575360405177342184001465377533308640077497961110223761096758082498031501224251182369431678364939699371526080332239776986656558161815610935051561400124412466831732998671143295798031729495295232619037943412240989711799483399054877104753587613740837202498600377465668469738571750528682817949281418436701649679163509233895392614385215160743487433962322557503191284330131577638258100705041591482718193304661664537960978151330517125083457611324652305175730344931601064891034408651665672995364005568190903908027898979013126774872314673226241276055619735457001348011605853810115412812793595219672767557010279688613588178146268624869800134130364714282444221256946061591055354611268634322259216848601417569036876105547752989610452314897213193616190419124970187514690708850967226348731900709444043550072659125470529110721673651114645460665709252132413249013180195015802646015389730272732632876155178852612918975396641409073119049873722566962640046757506328837586598351597390460972310852088901743706380124283543467570862464413294348966904001986436872745123177038352328613183248859573573452221055434640285621328350931588591007922626193921254828341006534680343146895719757236882849580297817250007981393762088258278835097415949542605081768349838390475282948952385009282561120538383450236315818724667265503561364103826347961845703693726543472873193471112459255514875020045786280877863647521070600688510068528333412455458068528894145271698767905333596955341299274415499796010889035216872648294110668488213537701596968512901820562874220272672591668237520241517195042367406394944274917317018238828955477236387405251676393659601226997023721981510339810165302218232476699248929280836104395996837403655285800892673277507756771875183509752385149651813120281773241158705102399836130689425396733634118480991943430985846303850014247968754188941287468775931048835805358116243273916340953265242592681081431630070622459460711115246658746129725948060480305414040705718811132830651779202258411811375169471711114154255333136919870786519459506184418763650568475601144815928542239869656446586266585166149510029415889327578509916692224498225150099027709527614360464782172720883442016405118336529158532936857506011262218530582716573281557166436172397869287828989404804560979809663428445495645687438079486807849322565264679343227872590197416102146941442570611126356871220975833546131205063384104765684966248474096668995789314204336661341225666374185137511482579008636901954806751177453794301430032558597437997017205403533697176338329509545780016170703799341478098588888765185807307475046420805157237645298092406392005826970565205609997409228908042068241150952044069866660352277006536959001838787354595913598133608085629767797108450918866431346615400132451333209969725709698527007519605912951620259374559029104980470766242093366900765526333479706974497821851449351047056827236646781022717162772174075820363932108214920271078883283989488738336405642359415749873422535399805632344857565859767148818224841449956447787274051176329994019049160191275565631290751900701384212821624168260132369175203153294734858919943380813010934315563024862145097346789867480985700413074860199293322494222341392886467540668265877128203337271991766014910713937518436531129980804910944698750527004104770312649740308205176320670703634729453126319670325000253521385881644243420154074570691842365752781431274183046325053386706764248678304741397722309444444736444437342354299713924505104640820691106902368053642724351393318595094815526303777632318812974679132408153343910744208874549453178464988997524882086412318550371274982810589412301995528610115870861895650893233694488219963133907176019835561487679474906211953067967177987375970089623316975904202553611068724736058867682069295683279926017235021227146279149271373573253537441320596933988708077231437604458526399025902550360844570900727387557420187523576992240641246291624634362032232170099592766789451253495220763977268998246343641255153060999431919284282423980291081947449852207453475853266681310204910535977348377186591009507011463830103327393747322684728702124462090355418275055142053862332528701535267719777577908695797848966197982959262877997714147281521411077087327296810119902416965197601696677377810105142024300356732645080655013479253235094371447247669185525245579148169658772567133099213726292769192055246972028625995173587769533326970056266798181990136631647446639537721857177462638050167368378294051788211244339290444858798483761767654656634028055519884333320603708172940636077126903726381946540440053404030822262175031725416601066436311882393594350608983912350043366729164082222703523245269896925806681821841159839086015721336236331644173737844419675946406971296101173829189278903299627562605697912064336149505840394947874623850080386269612396294466010532709683357904314014681390951676315748608375935900858224088979810362577572295327447081365211926693898470400039430759180321992698892282254088772650023509063081497092493291150126696739056811008028551934300008372612835844951942669844887427389815784286060339638027897882165990955953461999890426464068026658118533521054631762002021816168215668566506808795421130483516421309560944621830876274280139570221096821143551258041498985675424411689007755931935827306934733452015069123102384925930441944529810627976848846198106140112852679777231229508109832949859988442607617472066633157669038751460217704272943683815865848206804219228346452717373149305591160411599197141453656047341786012185036682494098636266212923661370443728803741843701889661465170318920844227036446842453290382908636667034198367243831730048597617121976508056423547023403243408521311582166080906300808767351996778145200657896894343832835451670517914594009223722228262452226634737246342129707840944905639677927926799530963827604393166277881690729371898186673185975941040891081430257623255042672395634396904634431905355312051606678591234170220776110322023481248079094753666196040693587984514005316274830670804106822918397964513077017501259529213805280861237791364262431373793083511448362230606942096951409551866054681377730321953925119826262861395327000291389637837693628001552027583330544582347701475010884294291292440927375584464325085290453471563153447277247449058659734574881080361956826926402640297721267565757490162328318559677395207864029057584824080089514066892166233161212187831382660867880148607233914926248550878111621929602903919584344768346035087677471496254291894176917412580080518719822240873817804117993564491730278006432567816289499477546058768128130109340916663107777984562095446087374157637547875546427794533481996963376164404081332125604505456277360360111135483776981886755754200180971886081571877177757192395778698075467906513064936881628180057090124420688631836895132284997955074375953077480290450391237941299940418082149466782793671858158955530563432159369006710888997442598488962581089714516208768229291151151786161903527072759290247057079867343958594173294274788440085646778621895993986846599383300622205743977539265195323080035749735578939165873272661231085794730814064024946080498910580463464224663592562461013353281365877138771961658830070266482597415649497143406462244056060804395830643618104815485008321173898994347001153600270214017210548239121015125952467515691885289278304155366618727599948760617842650334715983780064581376032262621568163532016064261424295091205055710841449285860144291052752295587184889518276792262337804297997071298478618589319509753923649461931785038843413496095756794109711374389542733689988694907000438675494348133690721269374003638957029080857688940739764474963006287447057264764886020257779555564046375188109627167105549442071695842832542995572015637521076139501387097296341918370966728065190428550407193455031290315237510400758317001200739453744603083765226074922938660471052077109427360868631478409225492698724855800145371344294127932016373814996620760199743744793594715847495294727327035216299534029562222243956211228707651677278293290749855554713650652076986905073521107997603958138376544744406380743613897861295576955352492345046279652316516367837542261978932939628404235237257935370301058624883060383357236335198688496898038523438301085998631811272421751274281431572634472520143744983199277271689597171558583752469810062621288920744652338173429841992195162275347114064024605540590780234177829735483687534971835131199201124946596743110640012257054307514831081369310529098223151024312501742438915154124805872625476890720416107546216194325759223766781991951362435200941069793628855478327784631196075261032944402975103573835376945546663949219637547385756027402636631915054926198553277569915171471404868406915374752425195342481027382926168796407093180491838115414511027198599492096428495131219266491104331098430606261026158625320399682468187891753225505489311915927945559086881859568822965177729459705786369913021940147608559245041380717267914337514132515794750623474832916203696224227796759239958163199858457468126560638949759419067034252556391921716483076357087755604794267637418025216793260906944629987737033382179184984460920764563970195721917358564384015548780915463946525605672134566248848492960793534161464241935822329983159498767959859092662424663818472131054373410668395678183594841312371228981622004935594473682511596600943903733200978611149451879218700551429677334767336808875659280037998106374340950964293264243253586236144751342999128707179550969127758708834096823817197710556870380509436944905949928763202701735881895377242724595834017118118715254625032113478410255968892837187097317575806412638348681839675226927496434601947606907413805794327670344737670467480536759424263671134326509798399911683225057115401498301842785482739573270384722052954071437718583854886455172993056268519889051647604322454091174488185373194443749138726325437264391884904743501752492275308864884038726169674272938749799387288063350049582973711269609352016809471215365206827880752911371601911616868511146967077590060856332788647338347539116886863046545197302794829324092577630185190325251000131825747895645641941634713945275469938635255041718694270545476534851001617634855373797015850221890686383066384306881896331571345010301973162953305083621151197728241057958780597827413574967117499238999556155892467171296182473339637728038438783792695081619167669652693862441351413944327343765335252831709028387806680199472635049917589511242217892414352576170471234445430319188852464611846635583061281129953394834404901585550343778904474561155905605245886015635846649697521714929656285306218826270150882123958203435776261204577808576984374447508497183274335622633846669087071508790657414253769217128185722911084291661491112303902326166268619744182252927270195718033613930914961315603014823122166994814899245823747815612110719579108376527957525663396207401013655901626358044750352232466808071358063918281011579861685901505554265025891282299965848046208644173320751989201743818271435860590043352400438296314865491329770065762346025750924918335937628311121564346172117919313767764728517394151039585944119062741861931233656063343762477377504373224890776084345042280116874801445757863564912684258399343974643775018084297695778332079874246749516086102778366022411391570529883973896649479319358919260847540770799654586980355577879886141532352002727119934005149431285418312510095587950005832823657721366741978509921705188052072421262415041481238677299987699239482020652692810070933152417063093862800984945034157080112101974660598141761992706145338690351618264756848292224634060896372733276792800500941262926605220220261257199717800290501343355168019940181269017421824716090054451168868747822108017346045089514956740250486050172127925543186755343139213413411289173651731480286353715938174277475675699552723411551751447176323318406144717563766609967249730560594766958314736839971222617851619233933039604915795369390605753266686741283001154907065899048339855292024289697389091398689075030956739038811782574518480558763690169243995352267990330405760459702164661692133757710503459861043019254878757893939030659797097237030032565758055249230216824855874442907073231690773420622892219612427798539371279292902157321791004707916942343580810296333929652860425489385380114238032875509025752613920147134810669671152735404193824862438913990455291115126539348548728344870194742960330829508654042960124644883698691890582196077491038286315080156027271371670217072316995900151784766627555841784527063761808730439268211040659644509455360178242695081535447952963844193990258038438829333922520039737289703688509215242443449715804182673748751393575202899494158010307020456427565729100217565268746835685238587645050748346257867003020371253257530988626674743772090658009439013190635516407542539663488413167615003333753857291754709431008015680022297193586366524761674823440820251331959089837613903197356225071999046428994019558042473242386597021827350664289070553501460222594732593571772966549653748811951286383024657596545599834566911948307126049290724168600863651439996476963055317299193461464939884790593676879828615822617984526437062458548057480907052480736067910175661307766378624919097499164837618522769149340261386665036661108295382212096832369384063766745757649497348363160605670252173598832003063161701908932178756088670440282350204812100968240127000797854749800422003777869353492751677558268239019096373971589233916317641521842792986440317542076609830815511225889940442601631371955905427443395583835676336210985628521787644672878427140272425184338789030406915009147648327513527806419635621516490815966647196666523775864880874001468994759579356818228184192224929393157685471998616204755552502655763759792771512996993465355043287021880385533643459360769610577833165867320116878176070404543682811880984937121846110907912511458415877934732689003711159716953422214283964131583752985685661484819509436876278496886403177166636525694111909802094897267739235919738973902526996840345669373587724735641729954573221683902307189227782106609398457738940610885198533178577489711721403661540973599267266966714422869613600426438312566739026861847844550522791113566393294893584893529011460900278757160962215832709916042142828860917603209123175846124253353260325236397010032130404256372645981971746085286411416377954834193722977681528022229979149796726336478201833474692758633059529626122398658686642244098245305422727667612808121295017364264698805770731327564885324506850892068605489257008545048356153494814889674223084555338952637173615515341319670120171175629493155347757499292321904126169133988924313468877061556354005965023730724326252296650268040020961445531736756344084853017231958750508848337389730163546379952277359973088245618701565519721385290526736539052498117899422061366385446334782426834801543681987846322911484133547759608313794566821624577264606529237644699512804527698743633081534903999646097858444786227302351416776679380338617996155986210565945657049890153541882012638465955949129028836184050428466766142207211898771224184529634958694180231703217236013303201631797501675685288906896401919075160058115602180678656287897442515448026303287638848225106339145976878530332348008423903665050051584919029344740284960016528640637064142935707798738175078269732846037146147023699011790339114771040150591899620139503959697730606216400070012224507114657383075203005954533914828986287383482681900895206257119885341852623519758555857662573777725256317158103266302608680012583580549315719882295715981138429064630840268868239490047810486854817304166353604325793885387607039444601719796322092160707027089384776726613782242301336317535946683183718491836013086305558566613986202631679025513052912572512103395124023381575255721321735486254985924762853421883908380762998447430340948360016473297491918844558912788339067409771884752256238568758563567223389873676197471179407707739504335323204903607033207949737342535706858649241939141935839975538482562266831298182199189958043530414389069991600075493488991169689241020091642975875762408257964725423365632120773970766950700328129103182666922460425466380421348137581020087838641314080056392896942463122573506517602394919878669930097835000379826746866164186081692079698674105817600763318112475056624189686679776667308724432777743695606737936432788486033685606540382212744067034462674197036749285055685552262745915338773677671187842795115229297699474180249677146428001901142851728575882571463946957211711825871475254640457926315897765119610290056175962996695982680936220516303472467318835415771880192379053998303203410400739088855524437939604305853632674434096529919907374731703208262601438796847491286308506148649274622806897231927844517190443585101325540608499317310051125163736193415549636688826871928513121314347477177827733427560315656348244437131689341337730996687985058942910200548825142388050810351322711162871162834723230774960467940770761540024441784414120100209183924896767121003337255343708168403471653455326503552746378915329382275097439180708475354038325953707907154246848012176544064424134209254750618420169439285439050666338223233319011282432210496748557028214476098151506203052458405333798000795235174041279501903264094209669146711639188566326468344560022738232913825278092979439609183306214920934285728568771220895542941673169930484887750514590063062818714371184622744293190133521018819521591357376391373771147384944452900941223968231420754814125360403117520553239961143231939337417053797035253231677638058439095265394014809423461628135167686794838396056034867066426679829672892895853984132748805117710513644795514702125590427873228208975846852779351764469753986168539957970075215061914180922222345400081296246799817468563504177746458461629119389307694007176248268338018677613945976493940884687735220449247194320036988855418574973148407628939703364012764241441036512799176782553124563122238933914887090568365676963199471634784239451851092643363021627719561242371089462474400115740774333217113179025838880283439827566508414649329092238551157265053996377746302496063775212212632686707872062601526135256435657787932987914481551543185367032733767842888781727224957140106693132079897475920152800817080937697524777766887236785711558027972056768341616300760997912627324601831921195967478025147276200359783751304311436367916377926931829864038492162727856860866866918256123822769248964953744933443953464456427754793132400365439355038190422779659453156363434455033428573790296974340370846563829638943220450944275918647328321469910668369775587117656650764825890613631312417209172038800888270400915032074891383695819401424142260839120069243647171337018461370212738102631385231546916151574287081331292549979394995044466667349423986426541617505712845838283186561376337108672944260720405290430426049109077251970764404457695718914368691783030505221576416573344649567214670266308654593445675536047093233002704732982763051837271293629739282145295773857680913623503628457588116656809326152311879759440049959898415415839879076356275611179104079046401633565981322812819592117387496261076797275595338385935022827977575786894151371012504829941377241807446928058314332894504045838553179223849124194354091157428420260892977165846722910857841089614452145545824051074812873131171566961430953830275141376631495859061109604641275768272141551048374000794163956717356855434913332339298587352995613484995049097480353725239160609731086383310249180801787925968957560529185592995638182318158161881582677109436309179471766949669251841783784675142242745758800293756436351144596219201919284571755966024051471054753406480061363973191948768522301045699552287796030594343461105340497504588690009486120028799214142227221512437875411657134959761065544896412793532236733056213987992506603334880380837365344911233275793583759384860058866039435713904285683774803290249131843530636648731163882088298253725289582436008309205031459120421024388630816627939237652038384862952873102803174278054904864139328885326607837083047280502182320944526295645965390210682880455148860516492412942565370948116839623701534449473785767542484552721913073939400180779391939916930693917761461852025328762721304344272743803214991764870310381019415818522440235192294888908578489860160226836629367454277988685016780170161331820612258834729125931222122459235383772089906922952554459316095043615548962262438718882482519369780681142018298918049864485477561375840425821901738068053167552717708659498168422137255672891304449416870296716837974650463615692546012365079506061124175079656792404706149281189720486080594915396411395419099806737203203622782401010280528872757709842320914760198785123022037502869872087932394782582625555172179166455885268982085897010480473470229018454127461047140538319208153111066738469847052790972340374661791343255146222697357704914794280430906125732444091297354433025544617064219175155172413554663320100240039116491402847760520427115161075479505078361500832806881353858101446926412505362355439197304065930247665186448453936216724699212887312396651396894002971022752984186296760501748257845815668379433405054316753501261059531175732714253329371391930849002164449024679374690395130350204444640334458745379845524869170479940975679363953679577319218541222894711146120526512666120304828281655493412660221133690850772981367813757213236986322223824887280107484844869838906433888344776228042361587280505865818734766412209106834058409031142295578355235391228634240650364439370713034459767369629202881801621321600722323661975314694484528465211105895291775341487266859230533799712570383668809709601077901195493781666259987317949708042625735545127785207533855334562011259442688093926730132511376611722314377653456024432358166238257758335725386008608748822968990827342861199634314702882930712643563102331085210801656335602810576235292834618276819521008158910861114568935502334552068554403441517535106504547214533956427951553509150643096232561472404209996545733047230040988404274590979337499574102637019245772425170692580063311661795974049147929417292253861608524300706650507074721766983672942316925181334861123585208568069196010610950101631634738837878729453366055088218634566340930768400394693776722070439794511240021695035719301361338747217681147332031673071041860008225197594324633421675176328133948672257158240649581846571473388898667508854310821201391461282643758578119074686257496371198625619195120172009969792657376091043649534467010398346087825698491910053034741563046458705745496339022921730102938794879935545364887747364131196730287764654032644742252334992018454049467999513710005618473624982271354058595965127115880879436661442951485038707411886119634230112651496630923327872682190012612135521858253705958315364019313070169878462497828317689890291387462091166663605260369364013094212691117067671110062944892458829932691344667826342065884011177627436830219000255153794884003240653478840794688912567650005316011713507078427162972603022504110933267827228893089982843644131938313667677062190662422517721561949005407850487055684196168907821050379643455697111258517867720693051052067740479536499940538341272346539923656264070056512612115186757165747646302676039779599362069202651680144202853521368736309640762270634469873018686272308216065688809707693484368598257853802868887824776826433428700016449158177622263617182532270500563377324947140499028550341480182873826792476820181692825976736279593219011286856784615854325187295444929054690427848629980770116175841550661341109032678119360784344570304237726002774012914768354041162605023288001423334143232974453547920906611380688985469721932028657112616868361040002815048462796056833540916310132093351309798076315707422953176002810154687430573929137338645890566550660660008468467086528941870571325197358685891494012837067299592127226789912034103569663419621885040477869720896846671301909932392694950817037526080182722389198551028287521220317125533081735282146218450547121204165910336823959800644523880810465688849847979784386194349313545374718680330608079392598099994215440594841543084992895391167399051008254711520410669824757442713269588761840026664867308706358646789482515719288607610115970160447210648074532168560077449984279037454621451895263833754121831880112278846452643512860342860268438236323822093908295608227417193307088078371385583216524116827781987656684813001247661293257746730517499134791706068694686159521760355990476005189437072850149538978087274691486283365526375760159027610995725865183331257143628991217730867815033617044331538518494890243329294439471337296207825899311336566597520071073810617157946215597371764063103468085798994936121051944542917696052193876347838957459273798483198326056162694043099556794962037704266937164934062064621805927588483610902361157950053152151183724928564419433604145150842254636961091426040565668081714471921571722218147609835715311178346372585535156330876935664923770942158618901700235109307449189977372099507918143916653973707472982130424869918043744926876478030541902295689707259641207978979914749292636950399800802917821047902357329129952529975442918562970086523096641871520704076102617635612454390818029668140756694707010608595322330745539808329672093842927201272259318058851790618973550402852468484617062613092346894330830529119046271602069315273797572293119699425656644180066976971117523555655629715761503194039449450371319827352475996218372207246096804446748677607512626148223266605164391217419586566945882278860702805075207535154990717106307744425073665953566046400049119018898463632547209141582105305737980235577603792204233384635142412326367912004167378339313419380455187185424438255756253241174278406150582645067971413118360122648942389867075060145791675987913168114085860713712787852688105317533983169889824025813973713344666748095366760333508070508416616190644241469206499357058512962024101197328923763435757351429682749810666760861191647630466500512362515453326792898008185849810321000526795938614699102732260762925971102050140232000531982810644798472484801415545521157793872775423024107810914631074639822143100696360696101851978436656478246921395817853096933755497885296379906635164015362995267682829121790565222646068126379453695890559037227446525323028614515893031401008839625747253779081682214337286297518458188451524997031373103664049385874342471850949806813382448235982264699665773095588573364149599445371379461544782123172379235983858150382350142338932118144768172776647881295177045432115286376405038324322386386373654410710371463357804163362423751461371725393159285398451902438735467987382488587723989024477175115373911564414833250864116882615926938608698606892601144856525583611845901210761587071627924953688217431091118253379964701919784761409303977710122244355989427578709754104482243279900276096525783564018962659073181979281405411267530235069389135047781957328119094045844733065961619354736767415327051903741192906245121261457830446944077868306997570727725269679035618678800592071405675762266355756214250955085861199933057561954062365162873921408427174196373950306441932015180119528895804683791578955669634244368921874600100115665200290739517956768526614196288656365049821832199546096381914423075143599659396209772347946851555703129987510693079490152003012601763717156693089068157002585336961299658382187094177517724498478421072012137039243393458320092383819795230418300543844841510780274074009235727249210474037057392968433580702525379813791036694787096081236802599177707630219184245977784991540598431749703004524238896271249532665340820446963816204262489167527622963512033471010662803971057768245749085779536148824512565318783276351725712188423338600302605633193033871140108169383195298644557109875917441528734091075277713726180422486718872775636480295117276651136686976256563342636245677565187594525575639800791197527223458965227492591667333834296143149296264658726378756490574013098434994047175866977273068425909225766116239062487859195839031835361984789360030668839849356661904603375703847192979971674474543821559020658040115315511926382223127794223499879588714775207173517520098253243744173855246718799951633600153963977743710012020851589132372384652290750201305493164470181305073862645701607378885339015190153318588276010775366299822557133710082080039230870113113166525351677403656935791239376365953477579424156602330580729238686091756122374518341285559438082223371326410144456851323930294644827282931740029099954080450829023200144607825826325051221910004286817646110520075147360795713378100031013208534127179749565840160967764557117815035841426957947586891453997791026152592224351263729867361795160952999326172996502866239806673432171538818577525158718977753567849326643378700020923073684169966919475790819221420153840764499239281699821207111932923089164575826542268854294838413361106261497329460083566754875078280794250689478897930576195176083056502551642368730719579275196157199087036805266929683219607044309018197292612809536567542974270597054738663108020107484813652052121997381073103702591311163065298930665468910692989098642138368743380345612945472741121237369831750701913108865707600280210573180767155684451003294197689741675724426539949458445598331299221883334314206176248869616741012325212867770912737004122709203730577569249202993789191221473795650022224272489404047710444754367514644096030646972267433067134087467069225029653398189360588656657276470579820338039076394996080182959792955944486470578559407378243793966298837487406059351981895293987605866022583063352746576157469209946586966074884063226650070816381138350565622204639669348026058617856973159681643491660931303865020671845334213666642841315092853914585583469994465925301233359019511446254325400055109092017886352296899303930826527435490788462132350406972836891061840318887596883166209336661909441207723057516252096855081393551183056527299367359712377405146084056796866254860166367406828798175029660527313006071671360292663266075951072937805587573322621163581328829677939064956036480910763395829447501840509288549566231123760632743463619584638581411472992871717742993335410450609382687149853509978305712736865935749140795172023526971089590237468807680704873209510421380097634019477825328641599367642801005226801040427111066011479861802925116391596093085354718099227752256648726466753490133524752016191424628405189647406750143193302938622537297565533940202315232540456396802206009670376926230219459185997456022446310762775660821868600581756181961643707707111473090024260331279118216743345448036791175802162440869627813235540169064425902410130082978563625452947552469257135318022624669163594883347201837087912693160627365915097073708871243296209786081640581590389296924246284443055980263447922017171199906323494132701945416383178508234420374042689136399032692249270846134796750391586932184823483703955977643533300188537602565876675631638543265976166037201394916936824351099001324018321706799770149257376923885440760584666399972764269880949411981065544847551574125856301200572763122891998019657521555338604243734116573786484009183756588663123991492453661670833941049019028520418274079825767440272733815412442134990584518469666306929965520793119110922040305490782015674057285658411406233429293737274100584932905028611337885850755476844386422718476470287751473584939906237253915881295669756546681618186684754292803890608280207420280945360052187181197681379334920437988452942422587741466136921975967127883015254919956865266268482693346026972453815165347612083637343396042643507575959433027866333131233519475599363837647882138542397768616440083059957747417596641093989892954780598720294071585882966937740058722070225057163969549305430270163079608150303809128763133960295524991259428388341129382913745229068610152951589328697747385224873136046001858495269344893098616430219637317168165865988018461885524148658553268060438804159380795160007509300361223984078856665209460917034779146119618474734573833707922102963386422767115900442461762080083076560604970420181765700484778226563957392497712185737955845223510467563703048878445759797265957898818941532646045733624498921898376822171620650371785682149697029875973794128615188995368984502841737464171239829501315419815804565349068861328430036476866916657314727721320120003867238164986131233570222250707082179385455526109463792765555800971328862659848628036587247065988070220746087457289346396178880865466948164424938243025258253767087018044813995130603304227767385837824758485580531297015607629908612682781672422155439853166741780237766225719384658758555327153765211376296580776422603548365575706155115055049083808564005724305943250989499014639769599339797683150967857519377536737951602969383322302204328972520603380295801416973538145092373669429703441917839135015626056854509461576109742751405426077554295870395638139610009759733667691814381179052493759288420034561845616852213981080829740323046902314891398644819933758796083874794088821837178575373836968570471172065497573033487935894599390324219135981032519603968369331286543585994864228604211072340425430996089058037203884333676652644302802867644890211258133298980423096135284052556494225338485576798869370403785310356061662958462803403061943986635699374899317510472383412062218880673028854730800532987930592608989748949114310706154227556547064650593328690646470072063451103684621634825057144186463473004450269483496145810223205383761070066420462417737479309669929490336534041395514935896232575197124480485589310977763197935081892471324513640573795393281081695945825091992337733730922788521874244358023715643179196628375159415567796575454697989105049112401229772523013275990401822111203788445665688248216760999142643638228579224084284287522895782101829506487526012716142136355351448018475987638703871922732288065652013673986261131131059702619638228385107325333078967499612862908357650380210186212539258625996659273356209871279645508926269476592344968293046520967701874769665586531151711090714327760052010561288030887055966299781401647886139917070190053768338855412199538727705139418704783035530210242586218301686492651496355106043929876056525065433176236991844866612794065325032684844615409695218111054618422544673927634829431394863839371197765560903351691441483135379694330902749899285941541712236021815420009851814465543695293548101255724746678110646707246001220135120339520508955852143613834342640983853553507105057982933727385269709393393094810508511127806171382997530042088536345933603587778262334756049134814000835712775819015771634572445943235097175693404525102304754876928359831735441270731893369436266554039338992720054461236884996071062317067467213996954012483550336358911397501987350459499117350682587985672272108476573906822770956539266690700343844300070636939330174009042937179624010383571795853604696319700647454135020667002886881584780941549363489536215487365354828696205577964203935396558793530271968381066415750614534488793697777185471140067248583560039928042586135291537488546922520762247591116373190633460544336248754475910212642534215086377721887149642115559724368984130758086264305813095925804723273342986765291050253067422670229847093201726498902888262072959868029500655606735610237660009413754279406196544817128277611810345453938995801728032801830993144533414992536739173230429677108340626129763474835678855582960122233512386740717754230978577181161870067027353317200883688462507186667105129617188163175922345818712467342250135051254494953736324406122853508339420274498104479213123527895050733586841398520083550506584043411658150653177350638721176055436924491431423007870232091976684556479982240191383309618476330089542898215503542334691983432424381532414823059675510203414267712820460365906558266203236036692519034974241967270134201392022445072230380981473761043123306848740728018885956380326635860478352193525869784946076029460425090415226024317819822062299485158981218482165127045810311767883353413322598956322738022765162866923719616616871576205133071408659500499926950066875661747932947276963153644269538622985445184449071798128678556858864741174746625846378549285586438306925928869605971174127843591739472517356203592761430013435034679560477546624101378592071134672455111710619026178191438046604329392986450936021382449378764861190102173199036957254861522435129543308436282988064009552091360083381817688596996002246631549286784874509479887243893764964798477779941186078002717094744132591022028691171205374651390530983368870244870551076561411349001668115278886077446236024885396037835205629695106144196284171169228937935414565506023696121168558187396466604690352044720992639862171755716920136680126351129178660390998427658752912532921460210013862082748954276590261240351705271941930030080202510991674311149132608034807443479158002659911594595972346528968896490584286832433198927908184640931164189060324639308973459528566947080559200968883174366521327184656099523506651212361930749471172349914610230994428313097093175152540168834402658070049297738139174036110071519730594977960053017878593761194429081453504530331249707832220401374994345949057999208063538318973931501657955873585768084357509113143616120404013892677982623172902488285363976838876150407678281532356951498591806024036443368160908590953642989157970911348557099932998516692874785383394058984643599289283169094044844667588657034419403094408642766471761148828210715704595305281306890096677665644402200086153607008298853945295679608422468010899900810378783559069266550923766577033405808354285223531978605325142412350710296194378315878849955382007487292136609214319783584395684089491271940885336307820127079006369738435821317388063974724212472856606229052102839862912958625675635494096592589445953396180673819986616373894625856235131448229442336198983088599507541053614720266605252825564864107016266179577333442896917801942840753313147039028673380542109243062722341116427897259752213664622809769880887472124175418877022286280659893636195660910815379322314949359511930450149276186039528372367010874258249713528865424269594717683373052624603219355808556327408510118779005887141441882476353463542807837027390694425066509631066281476758306195206492363960851756640108529851850742294732027564620382423367975657725051054215675746191508617024199704761789877711701724503299166885271432035846690285365547786192220960653271781660264013990476604181763656386753742000176646859427822817392582598693837787884027461133885399795060731187953511786970093709692216100796242929067840290028418979130488745883902686850053180566832938904486169425810932974147171210184702777994208108558563279373599746497357913278431111673164479835354223206341930709191893940781183893268158288523243883772837054791292404710982669340493691306879278175323239174668172090207075382406357117377500699182363475001912773587217243535357088652692374560428041192028098755933413826084053914638746809856131967878163509229414916698395401682224552455907529268730653184492187472994631144727326661483695515151806419769456276744338650456666980780979015339813231023468538181755027251216027252564809661954692313844713768540623567824288012011655276466230238429748597429529674657040752764072149621156276988646430792941897593423893647079327342472554499426986102387723502286842327387289205493009981991250763276775576163518547928314846425536575275818623401600962617938064349273774828368444795267900013272502357529289219043182213979938945068537960871530770670611848065764374735463686023272095868777900897913085606362217265220085336781316969410467127533474468709100769830889709960988505598057625255763137435129184812401344648943366810884139442448281520005220839017679530668784415134709681887114365946698582384492436452433815761777691361239965023217223197328526855839901258785055348837483633570315560392362471287822342801885341274359344155089565029644934886542482218180919809125958431816282952859820776895661792511465085676331400666848244657545052976206247688615806627783423225946987246284496733791566469267010256518465322100618706150966235902111419618374468553113506976210321046062995582129539448619166294793433782476825670093469184931765378219887227668662057606769891005102699153909072231229434806917539748691591967492697091691341369279600101471363530181927368330060111919037901984489138666057951234839374136449501991889853000310068281967665100471999362303835460675239612580195734661716233425211797163532600107021760306231362852132103978356050997253538635091079645450358859430250747338099239083804949946485962155367935481260092144046456278695621427454247413094544738058268159255555042156394149805954787306228670054531830233861315621682852511434621949527620902811825597270369695013030771581597550942027308290301209845855001474982139660030449408340854985799804362005727293075896494024659258947940798728109675089296134545673698173196428317209848312240961778520557494299564932167272569238351072347247497988168833929238978911948808259605835880601930022295088656224027254851918174952485655303382147887389059503147391608035211845235381815801243220197686363509826774669249040668984187586209669642308478925605420246897905330463136160629919236747567318486185067517607928700572930975048691536976706972361635430677445707298799371383693776377393773105216119888838890020208147003227357817727392656868297629169790776703073839549114030699154783718558915135239602783889715097125471228195656585839034570749104463980416501369242492984637095323639899001751906859449116382632419199032619202252113573305954151716723757690367841261967125832654116912383895426400396874294065200324661597565487539496844728300743660761886844767014197885248837344332155095295746448756635615282103581580458520530916195417193857811533713049646774529870648579415754265231016762130868159451343171701412821904528895158233468192360315735594158563684822963531084024242136459013242164247000751499796372954038812123301549429393645115631714561265106490129256154024473601229379170941045504954647528910559311818534552053633841000831787414767276253676332987848941058221935311805813834753333761760093146242279943919098538550506257413952157505534285657214161149232073735718672951004305476485791363465305587414824536512999635249294468918651790805831239315840954856268815089946592508038443490990356964664550981930057906750664481329957329564763239501632248211532648019059840575001070011294486753459857072256415827845823394319698149416772461450518588856263425564795144503578285577480692891549127662585405517375296686022317546474175901628928840819195574290051510589673287124089529718001319410197032197643533575671213769084342722670995910157053208210811766732824530216957563506784005591658132879309054693116865667570792151364534666440005562625494953449868206418185293318406593077757504285359134247159404747810008258677243438836225267874145363769505475351899885105520806731022531361901923797700847378550103281781750877092352551238653943251644309838349437885090291835810332388972371636563579683299214810631147274693681350006868052764185061971454463972550076478602961612685915989139120857359741923101256046944478532603095954444915632771284287028203699011423831493082994138128054872742517692826035323580976897940689786065623393874706552038090756766048810095031346360538682636183255244597845593440935023411921840260627075720130723029288769093157297933206006853795648676491510631819840769857212989356685098595156171742656991448665473507067028614954500290104343220493392331894728217537109243954469128958367315498113151756833930424161624648442875935474404042764479092135530438699906798514781449855248541605378710823998676260407437912524693066124616963152311151099187138862531997162644211279333041202165189225879009046881516573111794662092511400580640720035814890175787013104521059977560816692972304702338434878472313420620300233077678379481889702171725611125412466118211715893347670671254175374560270030814241514207013870443082166160383111085805345688690082041583903254759958758684768592807439888005831628983926295027846833573834717415554601426056852346001704044100078106490625696497400639185372369042525777585573162876713028325967329217176633488768416535833267681109966319456675022140534817115236592428696713316987459628967035955287804503549778315591484692437221769027082299466256667104979863502053192801870935475632676990526771543844443804130314165538626358300069091226388198409248526978076946400289921436116127599608681609258360216628361767167893557736796814469528599495053620444164329563843518317016430521021857250989315541939585789890706574845069611273041225842033147565506961955264358331772776827446128755906461524946262010492738664966641173251052408100559406636025173047993735393151608332677546208280870962451835673410135462390381553670993674355328163769314000537665722306737985317429846215613267423206237492626237768231049416273745756553645249329525835655182203804305755863170930589051632018337585281928676284515082094480896937754265475613174331542565145916058306543586760875488118690191608223398125143822988065270716976675921407395393928604037957203046323673658599085768351934404312140571968970761929757378694914076298961736260872315326736031385243512749703779614452078196931155901094311730532733926008259425147272737283354756023681598578708005824410403022527277730299902350848726221489754339742261743374587835610268722000405179070971162710228978265252568262965870014120334640916842478508488454276814666830558869475005956459854367266181930604737424914053443927649020021178831929617729912425493686186465408302473324150740165956115728370577428567606348741269025208168891251209020516613994006098105721515948290819455856299014426909731278603482883320047017851903882172206049702527660493320121466082140445980460674600015005414829787137105861102413837964686360311981580420220302284126351995148236165993521401896882806768058024653770049851302561196562147929766541559748683808353898343205572994965644837217792326798401196603650989213961901994395614679329923466524199947775392351895922554353799969665295183090624368577402561154670610220882624676802147094761357990589341588291567888952819726346755410242576692339451088795227219212962296899741781085053906273101238321791053871604261922004118223188675939558655548503396261999204027846189270820986578049932667554563011624644414714066124613950553372519143652575014755039005285241916557394688727824470973511233815079991773962785423852012370467735374237295444512940560591095610084459615442351558787741234868799876257163483755800083401933340524146768499310581671860189378918055942197829912237706467526480445759261648600825045507852203126772299361293263022694664954515650557646969101784042765138267739615046953077337479775296526351878429805376499163647375919786462395068591000248856054336563949396065681083909990926397744140080597448472075535543850689531209284437038892568034517553069325066251225253139046880140360048836286653647984179259206288513777845171149162671209335406510974019646719578227640893287038480301433385743379635667773049899852885662576316142854908485020155968285797608080107258654573130191726790086373646646676325942783950700998586961884468325841262765023520966221233888436196218892299659621973293704221013999194206029909796794606364537269461412090586923485296398347073527888634605552135035072383804712896370300668050538708702073275832891778931074207516945096234570034473678499079117742897432005869628129832779116030845530034240081287143790660181775263651570572493092145706264231984449311125056011982992135939421402843721168304703026184399141260652554174149199929117161986008460083332245184509391323983380583714549809479825967438815085131239465484506919936072925215833342891773477599456446953256638805509925514563821800506188100464419647306904169682666455082897746714993705637274975415550344321221903000739936199264845810606929194097451236548989681245201385397930052976702473663318343204233516630409819897145696179451663849280344427475266740869253743285749709447118012054309749566760971457212642278731086881400653885311721541369256209278790123413242942780886676932976796338196518516476392837452737550187537620497330621654333804258304502850944465396952630684484765631711843954801414035629579796712501372785063638044064300981884744749023348824352984099668940026060612848875251406859052630068376276165477215856000957923298267019744530613878966717103577440588409509357027585547665895151249225080444919152140488548906723435739251320001994514414513994113472918162580885371559067458986716856073891177565351884269328171675777555674376039167009613431485829301276732849321650836073319990276894592770719280936263983277994774570743485949604987658633358490025917588882793173917503888325240052599226120845258413977480039129191733339662354893991427611700548908488103481355879238876551115658665289018323588116771360049225339227449820059223752345844297449381590508922600873198261712823108844350788397127916792783406536610882645402911631470537355156814572338811947096413466667718521284363635310391992210282271562800424280193581709397122636085994934980787772760351866718255097495634819601894939445484625211609436564740649865169175575172791893751485670296335943231597227796732715816950723114898157646844153139939185393443399452531069747849818996543610979256583175721590642282067637350600935871405060724853540956089717219807678331675422904880778031296414752844373694019427746364477210457304660859871142089698430464314395832343402257278809008836581185245740671065968045599996558292260839284845150495120417677565053912256137666569606450099690281701246852414939061913404815070296665914868055023020979803768212004203979577589464907803090791819619234464681826363705632034996167319630366371854142572584849600348574166342388135861540863428271264333211557439501644063325665578405462436211651488949338129228027737592607776853136524363613880767087323638425121975279742497842564460279390764117378839024342513737611509654163476627063495344206042653490568551688226084366368089674704851416845350243003168153726407531248629871371890818718715547571503082809816341569138450910573224712029267572899043704006964157889494039643161302609155205862794901909779348888170253230298075201052239720405710725917564230314846716969380883621281745457510476078942776804157318723848644498886355387691746834121367003513379589555851258303710314522381162822164795375641012026142741649376259360946368929049730787612363258265115824930357745993400478410865975263577865358438249262125567273977524150775099456767989830913799187317126600326073632232492816766644371648586780748712489986810278630170818932708570893599134823634465708617265940802709532121382051033511166430888694776634015237082023196147868310834275915422867289664142320818089162470925616345774106573683483494172096528449067658285807332379838545058436849622619564855821131980771153221569282288608618008932476575617451468832463048334086230282220374437500813949067851280715595639736811634475928833750061635269406979891211394377035555805556467641256024864743740142418422250100505965184487114430932785003775060373592198997251464566005996590435618804808932068235270397495962821662165512979904002979239717381812786601332522133864025522366129897758680956546273571704049388409449579303217751307984332204035994613204218625220297137232852940432137259515296081239534259815415210550503971204639770610090834294027945581457459447934474667238160330996307068122836391823525172323994752751759098313697858547532990354802718556442759841652600286501132215744701071645758586551230905586708869163839673450812949431820308364001742059353814233714157219178766832038742541879179557570770379060615795066329932950201914070209599777684982231804274542171817516198432247838516099562585486852260890483999505928665319709415477379057131041066799372244486293738958806314094111535753661981590484903350679013152775942876382975514014966450958902619182699721240704658406958757715903033767897466532652415563875034431315790007425676789271291731923060022090530113028287842136144901745892765311997851925600360852805227413702499729126155123599296877330404851650706224493361042273111828119528850624650247842130790487416627953799616447756665279857334205091218983865735718770291458868580685207961308844279021530876546858290597170348587711331013676446268705231744063162893492567242010271067699839172208263261540099582873117306427489300132824209055071111217773672960526762570023507581794456204390748976350970466213076322283034511982987350796497527000262811351026470154327524089245339791444731499492768745040016207240272408924513816758589088661157267836547713124342872125527997358793465678816477223272366473064486394075163526191650884387950891218922994710140991031957442041506643770318936495803827116484944367261592340512826639728193547356875001788548061898691914259644403814013706217484170026302648809931565766213507785827658433314285400827866717312435175878142248571981577368847230864332933193848613715826465794405683370637449083809896647603590233950290092847978673674385316925743431252453016706084185459675172327203856446620912976155972555560204205935124557859348386239215959898374669135968601544680683268464765666218150725158899453824528439621548704107525436312979971240834820245465274188876116240942898279857803476719275123629304593741693411574805488689381941281259777315564004883916467083165001745809804587205281183467903105282936276522118594473575910042511404978097956404338252192713285686477434374789256581794131426385460437998016359526395062272492831250191709445257158952179832625062674597858794173337555636374137688925978859484769704321417353746857636374461741584847752007857020114527550111492616901203188144107742220432025262279674134622400466577309650881232725679391697511279351055614991037585809067147197928188382269284057497808804561446226925057443817962370232504600325990058966278751427443124404075853945479520729767617494472442293397584830633449529137767323960883611885722309380939570456002435380203150374401353333108972301820450108777294099585389157741521743316191755893672170821158708839839677301814158254935358601595223546790143570127676205957143178751727176632177309781601137951467690241134603783086851284504436256489914519238987050305335180604363759866567602473797753359795853467436833334257937525713561762777916456097852507668371507355508638608008598472316359758608512305602782048940675419147584755236989604216639077864760528944788151857965633529590622836871464656871322869952745740176155933225067291057133922592254372274678763967502083523877650955189619520903723729279899853270039669147449084545823278797971944914600078855609295189921011856396622534219572964001873305020914382073492767932923484655015003792547780838350876773742019687525327757000705416597880996241747912961255251560510398521687154972719194937465041977644100090044350439376020083253631106814119451872643782111018870650058330832545883580384188492707392812497120410698816481630244824706892718834581814394863804036881734146561545114199773237268363519936428010212382154849904033856699972319896793326439287654104877797766534933389973272230770453264554888069810191751976502645155130786259657584085671072162710238204942475663928749911808318743522432427831753441762503603234723602344951836823103004116948617745593089755482704797448013809234667006763963332406131130461405057608784977401095185732443081430611448665266239041077478145476695971841237813627315828621963883451458435991434162434028028999978001227882286409943196735300609438089694911358029153425810665229145481168379968129737881522303080404445584771345257398212304439736400894233540383380553647037574340981794750573166419592777757367571096943936733524364915466686300100631455693368774149459795102827329988452554292194674100852299838110694578417465221085303907212619097250112645629484906887609971709909145366655937348170023423173655029048202476009866756060375920454403302546109602976174913306903907441373897322823619954351847456377504095912950499028442635037432929440599510573323643116213850507637801278968075825118315404705302858794420610130335631666649951848779709001583219696277820811237535494568602543280313591723799196188316078899697207691104104622383708775030538255652066073187691878887729661828074727417219686929810678239499594807104800894900401531735844804209863753761962917423540680571452614151708943117460191257094778207813319730479964321829825674368681110940321779845907156071476842584435256789418660520677364866040574163993802051599601320692208673491415090732914961867576585643056179747154390937855627566548756063677785128883459163079086662129406861165855152193749703783296166664547195700035492626621478914696092013433728588950126535010123186112453090563432262816910094634094281649560195871529779034387763802315177685348660375107538631699683893468496807186439793647997414831936676799389626430958814769432703592936178274651672648508351445844332043530810254970445134543575793461583714301643389801582442680109730821596050867141982022197072539794819021366147829233459452321629050196068457494167086994651615970877466924306013814802329178245230287865197139238481445920286829659287796726086239703371400464148666953494079360683471583640646195691673822833230230317685322293513414993480078288886789401488885739737135974020085503883301102184055098774433744992443384732052931283693479669070684572709310764459355256260103789171758311607518746235683403588572389062830377382935749193566500297137285952513904507146623836424632211279329623453978412396710821134992725647036968774899939872029116912811535235082702055195157531046114571498709268896394693100757816387673750373388070603569208474009022915761368336390999203892953402159712589017549467012862006323718832440903570585181328237847191872818461761728745678150879497049838239975899267048179441668957716105373602349524257266571858516492563229572307319888336833811114594567486644990283622152381618468437748796176523073878512288853469697345108519093720416453696422137717646236604266804387300629562383063089578685819350693919432378355341926027966611695256915980602692518413925967697891137650328198939989581026266633528485091374952598779930748726056931163990999834955447160906122362620049107535959653655064942343427307733261538968452475584047458187572171014989020554042763347062785987847672201938495655030376968772878464196096486438856226001704659350541627953223947855142082887525320695914615159122579477597485514759939174772214819950073956202043843525932729940862543036362141155220758284220615827990865515397531251497605917939019997626498329743113762744164365359616849905079750198684740847266991455720078427025278260810954452827620339410484178558727540852101530297417569078256618874248760173391638127222201832201317107234232760885806956459232800986372339148262552839676061097757506510766934743980114198031709768399715574843406861819514495214245774139460961424051380591983128693211558832291407786769020694738641640498757107274309414562810694253347023646044809440119432380369233459856437075926480125673795815183251661345639051977786079529234386758033447127079023181333366677761283523450099154067375816363146151656672185739008779287580184149609032176940804156851327105541041228844307731318692357152522850293185766290170821292474451195584790072038009230670049068612909749324586983269118017811149238061562124958221179148657914685944196571199025819438454413126561986748617214145823774447125445349599798304236556588379788613219836288913410284422886259814467971684288596955325835236778361281949885682300307523303616424054406252832090042077232689477206620842067868469354646511055584789733742217263786957248315736708900185749460554679607137748886365357305303179841116748195733871056626660471764805172543443244641971657950968995531387312940522315476841438036861536934907479585250076028958995788285723835758914120057249574579918982375548958195113880655524875242367629751314207487012310949332710984294275104781445454613700938075338773834650727760929383747974086321215070264031103236243091611583186239333165151576833354157779426921914278451437039065155701622482056433594910466548997303915908953821176667265672761258705606977741411278327019046861463900294956716921031052578326472103450492643876885556730358175280084489199358435610407557742246510892427598791374047596919418668796238334350187710313929733726411676308083824970419665925729089403575870421119783888001712334167150645177827959838331931514879586239904488082126735509260704860673197294963172758067380635429737339546477995225718187230999335066968481939517726801263524674429295259294702736403890356723350733459401735203693938376937553597095503763160938115688990806182453371971662934539085281780106160035329246427309216058444865969532838003350322002074994510530108708386622635295329877317666295502978036668296150140536519423096279667139400474339817562229413329023559482839323023773030812113489842477159612001218203519847887479191219116359741976094783631288592458718276824608068258189272375603343307015706269979144184433308801692773198787435292244745525513480813414515004860223955524481726916976726523421529800076997528350598887471172840840869492048978639292036651184294369467325338779118087862565469520900469569678596618544199845168397153994994430909758969945871506986472784686646867716805435061822690598100175489978479001458407182164588253634110921759405129324076749363385977572774717609268259827354744883555898775828749820943438408666003365013000554687937224380167348803785514824670157342251304414259131389732429656244524893151935525785385588981980506471519246678654558100819241069930346259411364916099392099580822754413142363349312177931690323696255069212827297122623895873608867335811053101611937125496005463495642618121648121541479731040470845674239546371098567360066214537397107607280369582474331047445227534384205078075991662683497378176748278765938215808828831393423147679120586888813151236142740242596630495641347631761970723618528866053867709110293242197590953198571906798827911476330894280049229564761513403811038904687750539686902021763176857057496533474072789529519359810609556459373348542548645345683732006313008447444514327862415221849650739506983623446137549756336341225138017043860235050638166040474060307966747734698867810920128370023878646171034207168632099273614312761548672605635958994226034705929785269873083557628658481953629727566445875510578507993600454678308581396399812405034102500345378055064731803284963247216240467902193061744105471615222751777855452215748379761673573148203439631806374173906608864932111011854525376553161093702799775227814301906409861845869762049944731004598122854426142936225192158847343926452501279004871660229622995844894852510239591598023292073204376823646442700124851957010472625216028781339174349970930124818044586352711564762254934565001124634959180500586478205476431383301734778078750026728164291553988239626689324511169055400516466018539690168312385761376962591967534973889736929227343437193020097388530973375036759229601932189561783475192024416367619934265755530534011340652916210014341679613836633166810350718032186117993854539217646189363491136333899463274991878530503467240911656175946245396929105558934163133577241291003111254436264280045193417801171629814457162521926081703350383287339778370560101065703603584401730103157032169533656770162065761546056885259573540755606851401778942389371882887633693044432445536617274854685825183732752994727356201505490733323127732598077482097543071555196309338461505449670006846726889505426901400649167840955162521375242908888151460060041565959093924311278075716624026203764984678704331728529234104631133760271623320375933189666328065983403926897896049890261089619611750139189426581889934519659654318238664793675495553693824135484612518118594327153471568074620509921707370159577197520577570689011603165168243291572339498038993745568968616246652770106000022115014782261778684505496791998475022468086669862125904139852113612373950345064387589470787169425694478213388357510497966471402971779659031489676923039842836143480669701435744321724380598255706220723119836647556668089547093517532845007452967984138591796862828751655013196711194026079911268846953799935221393982009064184279264974647870979656316214827781853259946114997207999335055212222482101070536099200070536338037441559133742104920991557163171372378436472883692227431364712137356028685872624796648955147029394574751312282595234660530319750017540433804796921241472192149293903717204929559518602815275317457542952023060417606086625454959064485714158706717164613269854137192581562398726201170868300027904333900247581729292178850694298398986478094183321633930353476522398720983073685659092657040674747884957995756209430447361951434800380995963108774312403186923782568704430214245044984343707759113453373434907255724778039228683941025293607917069365837747644311310169005318924308503870011008879157111863585202085929341492826963253074291691842754902999500444868536280001981471744905104695035558525068839861395470711659708595920847784429683415831906420015563286509047167515026350681446649291958473536900321219000258100061471664298964156604445327324235251259863768385914146280264047759923665979306821084295000839657355984068403180411715652008815929332033669371281374906818577556623062941074754966379721323853420868117544735872079593397748171099281387522917468609897551656361994044865755497999344744256939438386350749475206210678313818327051620158087430845306394688383559616748769897542265508155350467806669907035963069172959273035669149306084227583214686988041543285077911059008971622042232588025811171880938174669152886162310335504332512028327824732059594991727163574754014708612464627581956931065522153583187415172152583784672496196247749559842488754322709627575604500707523538807508544696597919009410546072018244635209062190345984780563091664927881427543134457990616573413323556953009128219298211376973654624819841405738740307666742974868561850234215526169176641799169719669643993587438858590370393347094978270544373783125242485795880816788256252578134243373725648121080275140076911834630365768493324063096153310685833077018752258246868579027120518189303027904660955126629788612054191682428254610545221243777391123192621179711534492426844849028625732612794045927441693537802820156666191827853162781969012729618205260781630291411654092985932740176761098661158271416737048425117492452563999890676980342159946189652325379685424553462102168601921160721245920080760593717977087318593291896456745958634315715244551191024035971426883100664378450392910589201254258410253915129632919369177642497848877476795102895779732097852261992063760924803864226941929982881662200172127031951872076525419069858414215562884162193414846015424467910499878459244014565701333005762558817013929871684888719609389073003682745410354617670761089245174540123772057060604769152275596124311760690444214681980455938513718648052249385773518304616697383468347183107263903310043753708237770054584092611585400639598521542425588536205632709028280625658295521672941718972036635427113744267184746010905428610914282211442152110612369556964530367235429206410306513725984436646653615330981516463744809290581721477261755185980378536934761480903353864203407529216108127202029940411074440493014474877227728494735371732070178891010046239597141888483520122757314281088881116080838575427204233613417267021169481324636954977799705525788461894038272825998541224300592876027829478302641314732641096451685072174035117278739990688529729693285070168191436678028766957895082399592391652145823021143022977996501054686612200606303585245825287576046904994404424067376271761119760989737350759935914825903662813216245668565282631374306164559867751671974189395180656416558051681310393455687068544857125115146588939470151374114372737573718264401649156966922547627427692045212270608506654405409737745119754729481447445862581998788379595172561940648014993594166237054232415012466054827943677019463827867587102979834483686136269766008550663319247590306606555780358716181693327329659433325977261638280771024576663170331090114606880796566301716152336332025953443765848573439292306703423748398502545298784043203067838137503155422294068556915104214811662396695224184336829021627966076709514988554979059018636482822186397435896941314321423825793989899495791987639336828251801690741945593715824047103299699858333390054649933984454697192083522654412516712417685624435701541415079089569104794299213818571416077064669991726766385566831911994643492454850640320514033598124885828889092145893793984014744284939947895839409829165911489714557776542570407946325379991969481055110905956937195833030224322051841670013214239705550646010287466371632821441108110801500446600722144082459729547771700858624414514273630489637210884183065191113708103575335393718970262822097253738494761053109497456798258780873837158035146227067390136280841583398604227942476318860040828467706046736322158093211218748771575592578986503531183523036989930241613798642038527210622590506388115502664114984248106983051597706926589358237458241180102050697012812697770952675258078440362562220389866884484319280938088535274271563421866096614437886349088423777854361495770739159142543900455551971273620629720500045232817983211246084448312181993730472402494727414921571037436807391805313337754256170249662364689894839468242105315319510864567628565234337660562219763266234623101448108924568819959189643270626807854326018338037357964400458516394070156684908297669064610579591236635632230532323569426382882803868049348138670318622536832508664990080117444301350458548234273833358021227554134125721423084946800729542580533729128495131783208329776886553956639627425954873728484832784459426250464701716559440794610693610263019690935818687557802660063610906179127820615677102088541979375757890466555396497370217627559491841845283887841729026999284568724741390557987765703293427032408586906383059819237374524931534348698745234829442551680784595969894487441467912166009405014674154513410739927116589867702152731269560204845459207731187228850007719176593384049607156174913421611357948734846228482868519879927392026858261733413133334651838293649550009282823577156597815236126328353502761778257238553005274063706719060148997005807640080050616433604509095784555240460954844623544568594763263200445636205295527627328475084695577514847534067410065725993096634515696017453978412964110206018531078514465321536142636597736981768093263223490135033518350506553732777517091928392079149502788144951219989228184320245992967250213435487526387220484685467248582409881501857288140074317391634716428868464605775693026269926583603098178266265835683539089720673242745921569488452893074062545711204268994387467334483992895941198018574377316694193488680394639902965929427307795008830072926192705483492067151747015511429064288968709100024231693898390073584665433521767890693350159060718562455982853220702631312458028904097272965922934192535557872364355101706431519064757254008341888287313800080268199297880049057447010373836351562469562972023278109772411812699075519281062715127697588401881236238502063077369897924508247082174616509745983397330334670177914761805320610533329449544206214806858603936002178188437451814148378026943863804272387248925403908108420215260934722939134598371932115674304536677438717297503834161368477191548654854108747498862137227635551214650735656688289883133226793808732518823551571285602996355576527344180155639619775213903559356443529404253177015290340761159988589245224090821839004005281277054763050871650740359708039392855166271353769951913567583002254927832071908171025196988858602488581533794995943180326634314147241620088265106972769611021413416123936357325183506088048207962148929839127827208178697530299993083286958205117926924480987806399688403606080928208096740901329058683918126873757876356897248424312046159059939756875195770443189450633065960464752097964240394064073222156461267097751737769911180471444429493023066564388949936122548448137346320192046629707624449790764970103728036013752454797571925101890471174686704434575451338127281087941356436379798401575622114060270378740021021458065896502488646020431252088427483738504936884089578311725559167576056198423468541570701507626289449118803407120761647533236844949541660130034206746452261805567622153764384277814768067845627515539001868974817009755672578869452494814315825086473304298007972033603348501268950533111372174783138040687976489300455593409438179281471547409491558116595627266977335756082088932555779396076183097022124820730006304285698968914456402578213948324437093055719925215112228445219463540332381216475784639895528906718531931737595171418970223695436183539094955330979197734614248424146612653176907224341014202323493524238643611134138745973124507925744357467417355061510333339012070563783865378927830759180003833079689143870162124125342698336245248561105993369789739353453369862299057527076751765805243708530886332117447406393879621828027426598553646941262157383506636493233593893355645196216671606800153665169075021057760711528744035565973368373195616245421442251706038260024834830537489233893296725327445922442275515619913224067852742857169059244619949077422809056668910151367426739861994563973756586223514990657957383145728421975942346914072594614413576246924778851374373032350541571795841508340454975053116572485580687324378995380840105183024272592277325030736908758215135418947628923606553144689976283802080143476330073675537453298738188653167240760672801120051969260197314261463041524735025703338063262197481035640925949593463411594663038725731195146860851222549246501486213533703864951661128823413160501994376239539585874506289703860731354512902636874300396570383907121124874295427419385374686322193387339707212031953556634321359929523114015970574452163238019894261224079825336506228034847880289726189679544272025872457077283969905624170840892983165926161145524478915544493363188681736838985506638565033764713497117172414174134261123797689266085203353355394897447528248039925463054685871138235210163579407126325602112534376392460080843963516382905227779136717421134687605585314574068755624995403057376425612208420596846347261834176464047567747422519369658361444032390240946910537631488285119049875360768053569840233724289768845278022984334446982300310352152202318695584502149106689070703830743646298409735116393379362638905048157836811039961352483894546859563039665086651650351252929383020346388580237575310610234934608947717123094040773252989305134134511646996998405628795674162347897919174460199560406193192476485280939464014283292570974911121171196804703842473236719683442996264604433390281208862928072066926081619649492098591054329223514867456320362143535738681646839838948085951482035555000587134080764768353468430975926814758736892398437915381779326665580743749691986681454587829597140661698125864243236415439094618362379239995357524435664737477083885489745423923663820814928524037392553912593803349397612251502927160931789539996326643796688318703419915773740071774868375346311895730543808337506065350213559936138988838600518746377626641892291766715352110166205130393706645440497496907689638926713964091417388739687243465512213429452174312379981390470597169707306170868997758447393952201660523308479245157421188086083949595867580525065942716936754809963222211221813287349582709262276018089421248086459193837766074478109612398947946859731808887861343191762520140822200900414254296197132822867568136871122957048431503725051715553261781782899375519164608565444416732955787975341474161823167903386061320954261056142132032743297366935871797024820233678646942442684655144106464204539226305172639691809777195073491041154985977057135414564089064985047009906253111789027100215307964050705907948668291961329758883556398352013132734269219008966929590927781627838939741440384561481052393453081068219084663417959056213580753033482766887876947660622401582523479066177826262594851894515532000835022683786270352959316411788437109491778915674799089136570154799471157291554157192741669809868674820580447482100598074701853797177060558948988882131003818948293358575303967308245496639590517608608171313109703765875672744961344680143949724147373234851930185366482608830898997576755899084410722269747227291657490853291260370612893040618362007307554448653533072831224114785430077245576762911825471252391901318393294680759939176842337427647375919272956323263026474525416454045327389237047163062582460511153658506861684316818585950882305508599850413227954405276154291535793031699622431501897625059391975547183352903687745901987885279280141803227452902646906357022133721067810926847419913649786846952699814094609168696614041018077341119964202718671131606682498152149912596406897108184494474102161299607655102590638942654055968551020448366693304875985707090069449708828942840333766347302644684412324360571717702562573914006723630856505277810258991147747531250691269454584323789766410812531857905336718850408171526348183001203870058720101787638299264567136328053663384721610686260161262099333720629852840761631674754123674850276134504978831930988386496429777094883789475860898981582768149582161998308554417598124532609158777821460334431449776593282724829422627122149798282125771067644615833329425577831203569917038823630938834075612020085698653200286689451432891031088914226116141402785182377877411629705277547884694345269610615569577276795853995478106610057795087121723293517620369573428564411815162376234598793341046137887023967691930309723682984696480535484142167265611840261330291591309543199394731134164054064877109880751506711002781272661246659278610764987418335061893657474991872173641722143074936931764296128399844821698184870594719240456304642736269203755512673239605613699594443718636947563213998609960978828963426082340532156393569898891355082480558356721911958886587859192476591860385830574331092224550847746222186615857460113171849500649370823634515701973831229794410880282633862086721444302732716979923164785523037461135129391870277747162724058209069013862027987832095849202041396849825367821574051013032648552652938978328449713364187183549079432632902020274190499025767156148584059299565252481623928986157827422579526739368469772750116871438089583998783119261428239779174761636511996465642414667965600203672041876258341258321088646171681038828048001214332449182958051946280643348603969031880224841262318405885036933280099247294422119130932007341838916870569302706933721710044552679823595725222481946956699650366878076694512540867592606472398088366042016476430406365456112266510817978830317449674017655547865839006409934589697940726140308999057910922290498320064322297823736806647736135889689272800890190383145941043642475512364095834307529125267727600591268667789042102889135111509230536946407093276637899072519744336457935833349761753797540892381850542974925492649006646078623053314276813458866758107937708176067304387635944542236660502239996914341046744162345149512084129194806869321108664193850351828460311061209160856514892099717484158264495770761185247586278573265500792119423050442532435286251704617198601884568147030030601689964711989690835006103358753791865353267908204301608389525074871175859641801123506318383493850693677732815264842115007590284169531955146064169972125895439169394197359952808290973192726333162650152569976859503180104702482235237283645934776024423055799094500367305408724529483851100743771260322662420657507465381281025931013735842511765204400653686973415824370655213850277886618759986216641450193175447708292704652735241939075827284291261485646578038518442900285215224055176853777270894574727380103107768338445481129530202926266281239957631954065237534169144405542009379457041456703234306844256508294060905582882374078788110688312370638934905210348441999239673320730233684042824201635753270943767568023830374570612834019997129224607113116751898250080126183238673824105703020050762939252841828432488331792566139848024587423195085029140470245292025990810731796932485750915694591473408692671896091200544479389968743961390381617064499176327714446158059087249186557731432051274795196190714205109252928031231318811577208376299128367263983115942067045460595901407366184001731207685081733397970672761672459691601514863204960879352595663850119314439899808646488486986927548978751116670091335982762350419753948846067484358690198679647172148343783184387944904054038757693287819808744056645799011110207814836843913577977175756356312833381765866481388711130551528084922965291855017654814205527066268248519608713289144158983258070325537202518236015586747862889092908383403187127531717695060247813136570054309579161090360790119151157179066550507125648733125756722208632061785828266600231734779889016500088029947897334241553677920735026727255616372699330331725501107967383638431820752167014836507841706925800159024442050359058245336954547712934735638345094469208139316879732456712617611540169628359886064940760504268078259747238985684516053484605175867407284872529869972903606906870892074118836560853629002432814803619737088509248020980411802442547710159161588004532211741485153734422113457396144023224813206451796076167819588958701700611396740159836622547234991551810513335693750949231406855927929315884395829182135818289064334439988388931171278114947839196553843877474093264810636186272366589137566301336260889091757379573959729040497544431156981624833824065011362100758946554072896470272892700043902183306950590126914700968041943269134835578856105006273845111778011109020987566498294290725497348637712948426363298952816570002808594812544312793576039993153028740507778237991446986924911925390363495142418815526648723453552588051712791265770132588921590297866636585724138192973342348811270055556686632710389248898031442193551646826150479592828713633996988781624532326632373627327955682256861318701358862548835888424851655855961587147765225683142013168738999744150813737458894243189013594395350111482182107140388432416532751702119103081324513043547023284606717964741727810209951450790113966226323209905271938990738591914622481045103935833202183613839340831298448735735437019635766316325629960478977203391071131624486139063376684777938382210905313241075144567227613326998762341854584380044169845111895640499870377205900989397344975140945250879413865973696804257872046479107598365787171128176947577098013094843433757210986465126094591865295440926103556947316675955298164319850377313057361119840812450830458234086456975747751938334079690778942407620776223250441445912057245507447961466810588588485228873690681176761546438078982804977559003406795596383591762425128450691266316485563936004229858297634772924037822173807629240575186953250508172153853196419371619913197578508984987408966435261418965287011580869058318595041301867383244427976693645353550556938551662251990644218421539699814389230904663002653119667328821504969509268974376165537097532112201632807846728042954049045099114262268805018199487259928116794072232257846343735591939258552182982440804880060183636104512919678544021757005223594337824959104833609857439576351462053351359622477532344608532877107102176467278024944230619094654801085750119424657421641353956287137287760165945978230736709028827984593688630209171556318650452542394873283146411888918629458989941028625841240725642076701464553555380007406341438763278205787788707814155697841554625131236876871337197173468613557487346779927458672809835799640084933751986635137524514101156038027123805559764257941457470194465553686766622305478583697543518548148266247513021526293467085922223509789476564604081014323436754995584355086716443992454182653962641044616957556644628535724517743601914915932880022661756072135505343912237900192412224426526619270895447741111712263272382700455250658708115877029536157885006788179819947377999979374217619705416064506721333063519168484132391584890383964176571154251767096009914224317898752850029588070560366570784789307500133699187079895436865172033972779636333314858295457332412021004179236828176582427378698933360116622593912337951004408663455611557127315187609821792793130713564340038639164099029197990515950829020139725533707402706123491854512032119783030838802367315518183118861852107835111751130522948582876152457246310432308238420225816847205456939695169258021380164961711977561380313927184920490303413734300171783869403420373060921619017688740680332716962326019246504091347787936331943366126864648706282107377346993463437512854256253091442003764224590603898954631113015814045684006394361335738816206856684628758330154477923273254597149403477931607110397723075354717642922552974525766149845627012939111953555598128101552619255112922852779655070694598341980663961622629827287886215207459622869469532261471130398741049044943093295579835352084971312831135152423860941686554595160148421614437369652501201529515917243532661978535304788952017397687256950435543514459920677257309548063352849519171378727617622679014268618674147010225927620443419363479832505509557288150266806241104084865943870352698662068741388087404738473809674671678654792834227102728834242983021564067081409500721079168033852941280437514247383419417595158511461486942176689022981488667125888452249523771995912221290433660359235779909148001903839452323690446744932307464291129075890143443502905157422547822623814684735628505771840729666357878963944340505173577289211575038081471665143274831212486042426070877789120061932943781813947008694820426317977692307985818970430720321004209852555254728832949132031901971719461912365570085241540317525455430233337892001034453468072572817830505555541234939451268782566149466956054455212151459394220478367647822633430515184929382707516014637655776419632326146898049299212331657418378192158757152910794532952496535751180513920355860724120230964838538327670678964098852350154270681435486387260126821103377922876686942174137593948291295115749486061598074376762601870342350590122750148343881199534033157770561471416530365759867307962105300622137382943260732985996377761856460266983857913782544210555919247468798243617649679205020044165917124199861985097339278228988539454494278347564794886152836248126062309164116444353287952642321515599288343432560774189340707850123406373644657471784082895896693567548352425435757755618380022851623908974968078543163047575804060869865108740723856568093464948617696107408564054072067628059368723280076813683984601095686288801542133450881401384846235303038839884849990431673081335188189880970898099766370667735909604121252157655234947387098948024208616316841980344642347567980640545360617344412413904830205559471662359946701417850789363490193332650666309676142750754341425393882593538513215148011357165915173352770927701726671844803604687474745269809180059691272538779924278540314980868870887133247329470411715653223977022048522383804639026311302654654412037304257912163438567836299674598474058539140126426598049427397601441918381395954513196124200917826403982951376512548494722930528870553461480896333685271585032132981766695017331065972023639029179229307732158512964115974184728237591891781062352541884541366424976778532735318343367720895819615263124164699938707988999927961786046461133709995831804399870749873042993040922940383390790797602414622405025263289658847142732213083974133297363717534440997945206538631862362846701224122265396610420439640503681458986331627761508963697697038621293680111983615000050391265499877963130892184899618013025990189251187004685904871988547628903998146872917341748588655360090918331925441666749091833764866191341769449502229822985324889359762706679858816289810577269091723603091646809973691153746565818195013249893251527310837338762079286917032282905304956703797004264659718815933098968085565095849297101919840572859551052286270898461671352075877600178849679665124910710536225891680428300141896849368409283951666689084414998817895713016254369498976102187453945425045813459897080764369479232840100360595629593201879732706910597377610839964927256441817411116874722635898391911816103199753276373726596086470687299289949358445045856646780087555014801426998215538191101108291105411243965948669729091691585813999541206097629680690817084717865865313099359775204084774886606398301316135544454885193739126342040980256058935778639005521466988333320824654105622296940835940246791773032281321048527936980187484240835382958317146695563907505112098009110994068187232603067601118603573428012027403344659202907972136479707716036128759481219333219751221682629291549595050364545320898417545814907961055695614261367631702571859067160948443242542774507519286482789265278892813423492354633452155606919288197521393743374510483267326815659720407836307032062845249210565638269629911688983493904677050834580141733999141722555769594965897004979262778516172454741708923503548551085951777963330258895692172746872032820239338121344890427435831271091898529508673177973063346818488741270721339001104248513756862791320503890368742384974659427832871113528548459538503016488586441985478932779234616742978883523807866886564497647800118697400542061358085856018920309480980713154491077587172216103215896611156516127518534465077105632823661281944125061705861630748415364105313108839328792162772646748736979411263486364284140394292726521072373047427945577890030631602489938225637046028405266714508118632644172004065430252984165171065710368215776942004915254283471635654789337678021224282390634672394066427559336490347278325986191387306563595708478309673878517653619946717224932215842854868240826716117993677005657023850712301721699262566236782220614609927525037553116158143695551911062052357577554414030784447058223757714443895430398964538938251287874554279646172066587001298679623741752491813638620637906096123502999260503435526923076345780308402671856159014169413257289366295936629078247096663224625177255621013148243645789919322756711720787982818246722709031284434943976432557439835793020334312043870307907159934535137762915577098986753103237830078112826693086178701329945892308305663183058732620182561060023416230613169771946235624990786473915659153939032473704205329321655606560107239685639136093132297959064274971931197627344691375564278205018579752161581301776690041184806580513553143276562152815647879637748256929902822473105079143997948807192412212186662894126000301837041617837285739692034306078609549616911971438011831735682985743092162612607226769965682974555152191755965676767310069704226746758234456859665658794128301197567105901357821192709033887230211558192452757139501008677481574951394817393779791215997129145346823094569360145322844269468137454134554950178886637485841945535139201053769414511747415503054942879745534783645705244198772691653307624195103869590806090669730167618007185058660020003348431202206286838229461955857730750160707998100085068287407209882995087959010927224927871156867354685420179386559905999145481625514500627844497924545728730584836627306877248355071577257098964385012787845575432379304020232730316664605389981462862416614802002024957987529558584280040944950306622529274432379870759222790586463031890281175041266788437500918258280104117318170313565610616070170282966276174447256169104513227382475298880419563644087832752168199419134916013258480643572792886420475295587728027022091237671254644156057364789738877992789094327960895799574933818054238143920096769080787765393968524931318660408790212646903341207178270374509748290738933126827853186931506832682332213931845809487798863984714197515398922226466763897841217178229317466676008379273824825278034960996767879632794824347584267472197772929601166753413386805518239500734421832450685857088303613984902118190781321253263387863651371366920085051590983643242113506765243107246632525464842848581615487959476251608310674291479212346119492746727196126774350905767153212677156413173742973496896188404604762869590978945724789641790018171199289479926766574918127843886229706416039570507178675659512550004844161104074616660728160652060598651223253893346048152660842070186830938792264429959190086295141810433232883725757841324870978675509052118491792605542813616563247204780584322758518538445366381406886598779132914639084171457314593054506382888130906932412040904666964277624875272661944843691625841662185288624322071352706094059093382331373246276292941741409410548728328217665227913717496683905298350528763222461121274132738167068002529319100121183216596339135791782421644602347864315303810568649387164780597036446186750738311591503076571400201326661804261667738769978602631677341129973809903632780057333879719927146605898127683930414236416496621960274023289631604578721613794505480995889822959558619013228597859301410089592989840082128140763073749283151335338795746473122412931157457289011895191222439522170780437400345188049787478048003834399036415903861398169942727429635846820202505615867152851382370622830816228544077736740703815880685019975226930372153212025475998232449605687054761100673078455096468789620692216684107114550471825888328319960454374561366817023564272891252328469224933814199492570543502801028555031473008387095882965684372715852877333593944117468020242163104730343230082861500906660545034065362633410200121442511046421517385753434368275343167478645043679953117922711582961816155405078074268387086033247411288282296366375028463140768891274667189506734057909265090506171853917861856742096990459046595187979837569481541746282709375666205995384213268889275074976964664585557567868605509708428367682339154610925556241195454968273387026833322490292017392941901755709034891490175605626402354581883094595226078907051525834737045142944320796095822234789395396489393211325265942309315716205943580386744015866156659701438214667204123938924050611609769517084009257761896143309248136761025013792797170873650176423960171911428709480816593084478721606228329956649733073964423143337967701953325235652177007485945526341775104085217557850868891398416026713882282896583810882491184873238774210860659335741842379629031789023023063639394129043127753656401541390363259145856562724991733755040400937362063687013857263308619772714565769776933144019939884030431196182997218174172112602145486735227481208133896013012002713024621513155894421864965639394527467894584948689170690187585693080249781453049539048918919138392567312551426259856285017254448502689867258492825612732605327401666353324419706676249106609145249358383211569827916052376448189420227198368356771082017470422610151262510339026494261354501795406216281473369579360084924301877781333914395202718069150224046737190140007570710578819735116607075822550586962683527333124129498441360719365461487494142597093794400599381471663771276898854597678936814044906124522794742293222617405359827693225726809014989078757088231890398654180081279418336355012490534316142053186947472207657692231188098820770836077431370503587489747771332690255894285884240566696583508372544749034264250943557379375580661512705047953873529030614268789211677023161043787417377428578282873732712341025805246949493718775980478834934345021295044054657571304701681305105692812971444938325032101362284039136804207916147939315766967720596723180907256805438365239268184039652906245815293992269380481020779407984289039940989585937339183957247652703106560152685561544200889943425318728696807384888434001887333554534377174940245912412803145290179334279765459319801939967005720625505165759935281493165108420283351272127947900692395118707501942278653558860212894816616325687052660775667101306251233659449310041072951830567298466930063839928999128861106353124852205772038006378440101660271248027410254046564276972482312529366605337899257501130282338823541729118447151742889876526330033463543877524973419978637918538268325896393119081885185667529857325622153038470871369666955084660618922391209596692107300166431379155024805684806999263853513810544548556431361987567366232481753360669464313300599729746789307320552395395396774852502386237553552902525899742508612350033808978406541229105819023414475950258790621490211823874390574107170859807910235496275745336553339264078061115203132512755744584048340471514191168093608058563000412264197041413214287978274630478901491692344152683061191072627640057073498014591168468806067553157864486622915613687995077529169489409401286956588656897623989636541150353983386352237521377343476574568253710799699051311052359084405111134590983413929013218500840102676432900966945610907696497249906956027529385132932773578483588462331593218594676216755256539676059731422253991386195485222847400634109061692602848273267791797303333883024174109501447514705088172415581966687945793571367239504939359254719390605939077170888849171081532742601738407561430046432838529458553865453411376660976868777714769134472902681804075390464664266170105965835276488568880418423768141891525408612058022178527687051969751266971613398498082101198772184524968105610901117031953111390981183058130035859887161077974311898143113565000814370389866007493911582705382175609858745427429659727205371964247014217429615426951133662536679714123192578283017853420082067031258706563782130741921733086473111319213867724547758500815279784533246106795852823876519368768372603448805702730716539196630181622669375528735618203007211165457452989705620755751087239262798412817714858578504371438731631177480257847630820671266233659245353969533535426396407354345587500905149362039216249740324278010169141056498037775698213170561634603514415663920451035846620353383375976014381500134817694411664607203204766946149749575816087204975186607654263083698953955308967027511758249024436839261512893035518150080218004867137072176081262077288907110155268977768000026951819296467060816246443856305832818362486766188806369304788940976385411770318188020556990565745867001209834319338225907931333591090727544069035998649508972884090105481610919403393956038490857815408922582966702537619665375113730946382740340834013509916979199158210123855291310259335524146503128170745310213388762718652159086908469610115429156525610133059576752488531186828406776839547861037250282746158683553339106624342508235609713545206630244348653106396119905675302078755063369854364112464760752498898987588034763810501386316719312034292022084928471893894586814232097185412482639783438579519439221083659105329233343182343918173080733943431145620269743388253239227436493738204680646769472454410282491847852013858787657421625841263743101984252829115581760547692300514664836092827044213852330184932436914838812179163598190248302600615802868684813980476834434075755661059680942492952310747965434507145774787786131087648234031683529999119778225808324800280314751780184236901657601776436622806380979351225548971656410699193537235524951487370197865538445648541793260469908036285135707998500528536451825422740319649260699942815897802682327795646119654163833864395274656953774508836551828708140617411286647095712675977549239875235896871903892548618318524278891495792581989844824243650332590469048868832078574543221629467852290013699210760006930131464761258896260211627161192618272264634714890101918177420165759781266311402132320177414446091029705714358316082246073511993456367904114291357181785413126945439351452631521293211978034358799376794317054897038264756074090657763189644243562999226217114240656044334186076082707398831010254157193843260143407117443505921072343148378564053872051377133301538526638632958942029244704202448053220878025093054289274903436337222031182290986265214238751786458304427903286890910570582873565217317794809694760483500813350103779079650677999729166183638162027153089969980835173512973277989598682887642163631005142861360921913587984788190376044743880914381241082614580470805948481213232559548852305369591194711031773160569403012235541983732561829451749182941482376613146949004041951866956948627317541835908127723308506152001157357544730595089006645040643207703200914229308324063905104073685004861182462354783639949343454768690696778899106935835016839835007306277928732689561327976054986270870092989232190332179991828487160256931818992043449047328127246453755344645703385403048851803984080173226517164158683276519997379098490074313480523885597139768409818831678386287210688346522948623824984735697557764095037045253134120385465921130353354128612372128915123900936027575633848462712491059544029387623644156713277989795149658746848702962605490829239547205367911840253234619009471189491355942429597740752632244340186300771996469855521672003247565323562608314426705389819208435513836651754229608584040978052377290347736480340199767830732419876824973099716145701408866432550008168947374809962804682193067362107792291328047160995924994311183092477843602646290067078274291189858407806807761039508741865292607475251604451694402950039352821383384421057563959624187031751404964332563049031015693650329914263825174419883070915648146952695439669591154262146777550555040798295112445475292315612649332492539383683925345489563737971553725567656583707246781038623143007929136725347676813711525895723345083054493538435978393887795554906758204062556197055539116637086196156747192649530086131151824521531392756564855436524803872298822289887166151704433746471567221109575025367148010797056069327763409156889440058564700800199628993481520778062486056378370571835257150686259877644264710882745426565073284436791921931778307250141762292538394677814838114131855104205633602586005258495670985527969378460772286851096382700619982533506668794938457724601953499026337220224792643914431935902898830187509892274553776277097276038130442886896579061888834899196185186921448959648979918784619507211825484472875304859116925604427859302873432148271842724704128844181318975396652563601290764912151551582674114377414227267891838573347429777513186507947963204680104676234000892089144193351663051670419964115994457056500761328585516517884402588986810604763699853797531070871444633060711734583364864351173104323168701747238613100532163695475026557865679618552151099868156187921697571831593956409499642625082955255070119797416190636486910271051367996676773892054840025414653895243492369662420357548914784687005382054067247284097954502802211754861809258192014448558513774291989711169018950295980148080559741318959591081485125668666333323722465347282019350549387709753554248845674809590323630450631794053469303039667588348000407153755645656946899533075533032577999764761102077388594220597601342370343017036288189896097718209697725795857483367047829062549091221929272922650079077724371225410673457295432260935821637603477430847983277875898121440790145547870648221088794116760197964608760723223513521116212704763156690628453861656349084421819711924205257310114458296566973560170150777255433823981722059110850671261466726449974641880504236269930588826046753182161963491272692880358637030108840065945088494202938624106851760047821047281371058680794917942765305665997778913783553929021514225951590304105940987451828696526060135734690761082791539876293729000654511885672648347435304846072516039821220513946883636182931677704367261293753447665758309141892781230671906969510491448836181663907397738319376334507384948236327342129883529270950179461325623556284332033697031488221788647424318590371919556717102762399662974036928887127237111153406628694425655259974229901874071163582334151540581176787062219769648161333614524610825480018668040452677809149429446738272626226381363745234647738886635549503567261313298384465735656002781868496390167364545140341534714330148801151438085880078556265269141400257421902927553885938464954548616444034706896255702745903573310104887479011802792577838652342692835887396362562877639865095329661113524389355917525070903338654076292834494259155702599286070374576416962358748195438583808029487853547452866942942943767631158654234002923319545504673200728044723173857078992088226747580988955888450386521452658547047125279364394890319704833587257981320152272009753978817975014376987509867327718663946123976653941099562827701430944376284193939771396654505718245929054575696750588157945668707229467532819621798669599304750808020156628044671417408778100987549639479761598433036463960305601244256008574777525022715994359943056834312366198420205086216991752229611086257756937644723060195751479283850814854368881911898261897648520617322834231768900479357311235702007842104165347643545249251299261998222068554250658503625079623498524055191503028443117936664204931076121439379379759578125583603825123864574190547286258299954667493491210016009894532775051010672538766426195572639858194128989820560360937960818148086673727383426307951183439811695003215893396187031089425445201828079171738711268526141726226117449555557336948114298556194526684513070660514802127047996318295280330437297750684268129387918587211265140402884806369423866597094731580304917973347791563657139806687186292859332792316237758582250988391638933676244325935310270953142563732684494946686095411818356016545311004376284468126735815395968263184719905222843731269034571851705737696360035379391471071610364463286774960389470609821743780404180470199107876854223550418917679977061561084517980050712370169991605998079191630314505944765198454801901637893782356948600212904512925057283264181423702713842395274431245611684236152957938785784071372672531430433485340956560403073338397598963944921760117498790106762519369397328031510513289428630546677841328581477692487810486165581551615843531758954631561447004653797029423490639698995357801949102005669545347298442924126060704078254356312597564143598535381404353400176220761938177332254740841199037365863156407188382540796194930122594275736895878151315427448380332004367786586973453935679394369141687177430752813786651503678399762613915243885732611710359435283684091826098213547477136421972711659792907058147339049426514695123234747840310805595858220045879634524357344383190651859591644311723830972126704090364571275606133448005550065809599596110274742909852608783846282363179245081586843946889504722766235253503705505703909340965440620926870822672749186483885974847983342982922903966054478521434307912757701185069436669232866002213565935993628198693524449246000455051547941018268348312014372607513919795490160871869658787905772754016428516022289513255408109226103434981922024789842776588361266124200152846513449607567435611685450380778708740040828751107568192079187038650094276121819141303371772011296749577941130928072611410839431807013031319420454769838218500341193798353913346183869467037047998904165366374782981193785237076179820170708913939951226871070764790893861271609951863258709449709375600529172717978159665203813356251272683914360132693432229541888301757993570037155531665483702806657327169128131396914985783910981083243230695740365139426313519860704698487210624884335955377851617077222716512195322433028998378472881908078764765303303089257694271791014469174969867642074047802217124620603028116250786432012467131192544230785389351938869080613488899842817201490935771952911419929848995342335451313852545015557210176284353300894548448278432270703297987332921385752324320894634473576640509838611279231239303069513750463645830630715181404000886928442768790682674767186971669030035428168454915184961249787261354682524672377678760627852070881609909225934561639658453215630623391938222677387325456142307204165091148385839069770804047813668204442866292911356910963457896825704247699995707333662039130344569848512581069945998554856002618860408117078075475882704843644220432526688573274950777420354322461063851257748831368785643289187668007837960001585613327812664812389378299351570255564569490536036066136074746657142859704220008294677528192383873780077434209139418662301100667199540601588702338705438743857279119459891803567677782079318234281211250557330466731209885099568689125855945203071101049935527828428677869778927794623358095430370276770254890117917345081790956033486248233282535217601320634665216339662732524449647022184677524705564311860033215114700885558654014823007102175448075311687887698293943488901168536822316113808806051958960618403873779251247171917764617200325065189993399443420512055406804182282239243154172458139021566384234472318650391804155639164148832118096375371157057396376693475474584112333750261053822595509870619557819011814866952043407251254023628493345421139389400099610810539431488623853597811185591226227673795405549853096708980439123296945177863171463971720024903400793403980067690896069758827192505128741410890423064152815221356595604471823730661379748639661577025157457409514371748585990418897722257888558664581258394289967344969405462696257849285900575794700380557627465732800508993006658760973022191835887706182377787907988285256285999891847821500868908854508156031622216843010998517355892495254559135191219823960479134818523027197810877235855041311048609199770091591129912431453040526466345215017968210845583088768904153403720146354931733997756326876524703506726625566824511247689296814323685297123098030609836617007767402641348104686836606575695035495753828600114272408980619502162431497932471467226556247791720595332259572050385752908656325561172695102162077575980489279402985612775039666246391399089111377058782615711720767124225574716381257266035389043601487127035066375165633602488143957636185539385621656680347576681622089594813779213980800976623027277334320731328272712120581601400845689931321810583469766802314295166669719490978588675278208447867282301494999930591941918503215394015923414759199287866318954936430237976529616665331454153678556059265595272391415305143175690840911461694412857132058383756482836499973865362946105454074775578947320837676565515901986798025285434502035679427707891418551037672993608693482677815336898131159844259577196982854178464064616075199663338234430757687936521059057060897704051992993379957405852590438317789928297465231810549569737813318843661185679712579299659348412808308256357217781454342787572246949524762164670613155576676818915708682179531449602025710926316947600591443295866216849410139183300153458608611363855361623481921394203985720132606255881557396264215601285371662444463396152586571243808774837673585401023470739926687577047580846270334009016282443395978150378932029133165261723809811732382522735830563723078181993173778764759469847939990516479224197006608542755059196694705179446759542047845504014591519402797358876738704483110006900830919612836081245675611167890680959107684479925497461947162445055236172141286338678331293067220702168922049414492345436092973439659113797993625423189000759975664126596899133259992459810014953530182895158197220129640565915119101666660444929765248922136604827721587593656700470257021389385469387275024304162020421557134155728722022415923488933777385061589291122527289436798672420243450401938382909378680190703115931801734451114737078420642473575040645905137558117244816037799520390825538741491558549808941386754713988907018297792659074470714026797915688071601721285442219187838068158691278511036495226137901935334347479686999278757722327641918651808990691683658135401134739019867141191650957508598238837463108705619353681513792859812933172848282795655949229390693486113455080986501761472568435397343356330523658621078263610915293518173283958242553144423468072183914864914790369168473579362060199727777998492957281621221689079136480936371012179320153852596638915808759851564660358402193163047408970645422829574708710699564916037326839977708761792088737497709702170154081530512720683807223497333927725353343466242320479527389853951363461347094039393153927478002848145280332557657090178680997094134322465098944167677551350055088829415340894916365064189032807273743780623727434601042148812821089386120691208771405897130862618626884097175291689116276424464960957925163029344460978115528155758799569922485420800811309891742406375032118567054365103387316080569065754547462732452678159323875479634397103891890021837882025602450926836952866491303335333038086571840015771542555765118437060777464026274529618952902711656448218150089207130740254827488305558763166959940198811723246429986245931826076432723404161292489228627440453435618322805401100300830653816964348955606184532923098554505323435619704847912794456326289598741422246060156096342204638243237892484591022618181535195321179039618715505332775283384233325772309047359237895431092936648522863508339784624873845274629917695777747924875780462483557010175067594089662363619350591884188060146340445538651338620558346685783759840658578560596376647850823239284902816185942413823385741302085101731426491987607275477546030266399300504385554259664426800074394552116192312899696104699022912077493357660228621027591236609760140547199801390514720549506905286115990225918875119492879499009731053333346216434700172170011306597057672053665011473266366027473841295135182579485194359701197227031514659448430904885980415656372784609763411485456140232206787415327820846568606205454261854816529606276394072646252138894886129769507798485279536907371152032228920338180631240672609988780267793891309442804414247162126625179117600873745733996283254740373057797382760430514888768511443842941209266905665010130813709160467071719224070799788371708535378870171879045370025371667149401080632382719442756777056661459185678645725115112815458063371902004551590950119820857816194616908222937264420980950896431740057393348119000590248223452464446832345432016514606326373214387438114027804942691819888896217779852211616498219056401607591451933122873234273060306825435453749238954035169603013665774766487249498921729915739894237391182711149970976514434374215942051171118723524739610821671471023094817341858325804065001799831120468149200847477338417765769373290862412045591093339649272037381720068395883550282481284017450557611549644639764617258546975059921806627291408630775785062065581072982011134254471839157844394516530270580044560800350621343763685290927422164420657084884734644813955545841503145792980499802140163796090656503094650438175887870244554603806500188005501126447626738692773808956690913608074467733038148396037658024849310428855981075748774975858138006882615239771686492992220660370428071019024015190956643398764538667717788237617055320928010510072123369997114024738332481270797442820093530982787447280629365422444644941478109842346628644687807687835659484079293654218144783225191118771117496161297215291336113419161894205969180797800472447629616451901428605186176992848779906286532644701121306864786057371523768351499055436954332034477958440934098243148761769311597197949545357275978503669147445435684773790447328060091879792811397079589548506318267532797339821576168704795838008760456862374858319475376565372623870768668454455646491427191461677529725473246897759421128763333817309623349377564115351109445363921988611571313651946655943691990211262790239423702043135269007144545804329791572934517644816686482048589818388492099146365800502908771447745445070035757599302676274592844021031984865989037234708963360348898899480885033528607842471276410965640654507505699692449509012019104397241715630439550550304670917524594727648705902063750208509775846075399614686547367880481264786094304317297015867366410791450150293668979673393664153742805305048034725872833517615886228965589148296137253813154119240277403392556858931410685221716117275759707403671070198875451793873179839825371163318942463916794795670992704959517948473135279611351276787477229910530551578682210489594115051139126943860814838407266048819286750917364537553260707260389786649963519924855440938413292714354659301261496006208785856495983023774243759656113603242049409481182808416310813053076206051692999329363696663082681493968718381522357401828332136888501785168061122810682493056703696947708742534369344405973616748699924321155856407542044179011725927370252895127554569713713586071693786846238726847540599981488701386807128561345907589273815192355284797842649357970182567012693953640576390523881921194640725350808082441349800766908232350772780512167205955797154946651476993858784833515087483206537156858530159946174296139148609279573854033155487802098830070855713109681092511588116137635749205909376639467019841429429465627739249948555076196477268330066372835534668553438079266941277632344909895300502642409100128753787344763838790747965267145631565927427303954557969386516945973235785396705859625861077355466125450905948609012737215127055877677944147574187493590065748112658505501178697550649617919736167398513561132599845041665501042167043299906663636677758160535794194272722514912203817603672571433020370764652440590672520423002711029783564515026477750029904846157378388020731157387735180248539563062895911718406704240060315358128589163625002901164064675947065483446526707792520949731445853925221853730541199416557955974746411976082161625125725996536664011112822574709022511388150803253878629480079435108977532561365544921301105089776299797072475819860621583061229402598008954242742344523871929270025022976790106565097694072484921519722422879628953254059999622674822218221184909465014192493699936591030567042192058900451292395124246428636404220184205462780319571901173760375589420267887247611485364819817866244991753008396779432763360687525300851674336666170479501564505791562713538873466267766757822522008303946620924785690542540148031153748420032331013182212522337602092665987644233688671785460644819314495424027490907613739217616558756560601227120599617823471587436061369027095443230365839163726654536655933123096198190010338224970454531636159515625164788735467720263519678393429020642234039973627380414964437353697798142166576974106560269202984001340059400767526878285889371954518640996663060791697737820168598120546631717428251431043347600233355192883966056478877084431630131347993617234260831314024925695863358027385074270464026724253201060174649411241873449255049725478818640913890386672068369898211023071482951362292075713362532905238657652569873097755529215691154979991981855491567584689872070011650434039482635538063206130750761717042970429689773456980198534561544236065742297627693205729665265514943263249128499796691914029425083862839695275774051319965847039595689367258008056825407257255701584007687543721693123494192187522013020336271831877788999398829006301905839545166408664077856107758121246262925971646434718569628271721667536240868150061340236819580163261851871009923506428672133574555452499108629733949747265220479650606782213670917760119705591225262048119852858789452628532724906618255477986392531690358453794115872629339359367772425288437270550710959522924980988915063148726187066237932734363238339801129551871825833123487612497629872445969927442397634847476053989041244995588286079508566283799471049721647112572596707392087857543985274798868492251065444015233654796734495621386166803869306890616281274303930968301928625001184876543612182602655308167021469756329877797211248502506642495679220647678328764871970836019948671099919767064127499031618619917152834355399751970225663190182292059125789253954455219792125373961263531832840432065412091790993228572430288228079087500908142803598595434839013596597468394902011678723647660008464423341781270326757053278330073120559455407860230239008144797783091180205921074094731729082481554294203707050526105440834833646582907539852386382209541775789165212093485292416997284549277205088646394745756477863085714800158413804774200122152086980712541005586688935680616270694136833070544740778997683437743578035414994450184524434950786734208841527156135934835048964057433147830477986835370806785259984455622164505240436462525173755936071333592997897536767698969853784333714822346294322821590560983952356914030734936238476192323044250210703354730482556351467975605936838565706363848156196986649658872427759965552306738991451485966897359007902543813349189664541978270453271731965681404179829858505967188634369724055164831592322067101367285521608984132510690444262530469395183318004353316339088471221515921108791404802745432131113843763350575301574647873855677793261518388955683518283441954249719169447005551112679234028495570753934528136588049359428981172612551500345585475477249341523453893595670024367276241692958068863267839311954223365386717519916776909552107085873269160799768341999134120254242421831474152769204390123877426476443675352004053308089117969990769292453144160217392040746296229246550007301150929557766803808863496316640094629032247105874244442994503677937397311419287421024081821346106801168462442781248621893978837294994565731395092136369332667517388745322010127035161665658945451235724627717842112253480994459788002604561512790081310379121351451273406265462457389304482723377317413847149656711143053672381305964706226566932878111444169712735041380953834989982240137563900760223453815236684428016776971619600182454699213433686435966854847721572914235015206648098110875251085242844399879949070561222553147674202262873766281976829050172665813009728443484834171819207773329750101544915205318677847190068458599436380922429103753462641843744349562690900983641337190150336642168127546040146640954504183372370460374887834281825878637106196059761483811846565706260237033210742726672950542840768448750845278434177237624180656659597360853060321959175637708001383055985301574901117521395646570044505250027951576013225569460140275928923322461307667026484820865660262676425089288877990207191936330349127755459810016261178529452493668513213051753753855150685513036915863873315343014140367528779850681803108974745258650623438287461608045702292017216221452992903269127942114059321528960116652158579757781386371625403818849248996181947562748185908681158810459284590747240729115197259466680686736730330366242664835077454000662499758508317988569140602243350564821645921806033589222778640273345167695585727924783725404667918516782272247312992360688713396274888361320007581972687989096974141880869814662119699599779713071237622925980891167234091938784963865078509988557034707631183502695100770196673561838552050057795515829515999987623230615101459067244637052498884049400410156869775665300372532401377601311145971641562332479665461829445051748400438991198712051702626135988410083146507372945718934729069002880144435647930173206942456879776660947912288226764264934503802692798665976514120395412296503669756435413375950759566162408639894391318887419397380834231387992151524805880510610954085204463722112396904175908305595162727448421176245887114961621080472746664811009023948419405049026732383955157194072530298350546130741424675122963708633528502270421819822948711136892647421090826234548711563367884870813717372198219942630834825748257410804125430543067477217799550321267357139410475525757322998315912262086439723661337847567103454784286235540633633413153178948294356265273842053979195204072863000356324382985758567135441640446246464313310528538438954127614725890054474417139074398980884964922098707178830510943949801144904753345698228490058407274230624296179035215089478838885602232507280287429397693773800751381257541826534868827641647399972690581832235526450324891151100849915390724283281613775927071839325780000149027840556480189466686462775540197463667755800693800188119502497944791404012952620035344389478062081188709619745642181374075332473013564032312007628836043748526209059877123152119786085881929656470063232691822922252534165220876504255385227145247114714665603547800806387541649391483658029757022112816748811657586376595528793999352331643485540317718690462632499676579327027596002320950384806536556580899804901819572428364084253811292342657915707401605792392426285425516114158761935098358648344615338941429428269830242997796155731925664098620191337867941075106635079317390448854739044554269958835969289267421101270455967852049604208957603628358371505689384666858867426176482094066654906185704428292823381668571326063715161959808797897859926811335193762549665191902582296000863987008394183369168771343172866624823884225898411629773235675050085516132069940710635898517761583732012285347592605588341366731437646418397000645966273207140982993839929986814193693640337384652248242146204540235274890043423219932796307306903389548102738428879095157794718803644372497350315474499286776480581866483680415157652166563986533526897103233731693439473525039243399508145582286940090203714660886624500639879838152133844082049521427036278465126115922227129456052434460959195489923861987222076958996512263405373785065039301649253450948862638898444545965964425072356185367946196902135902199923351458879468119490938913729482117101540884277566716776679328538485347266663143722795259228644934620132157765333245781285855242277142272052606898251844831954201822240621962926270576705223545869727774193271398369429450283259383678257428719750733551989798955792754379853397184024754354726611884646486874021507639588294939393853773998776635945492860837087915752190766648223177010083153975963232249866302641734899571409840964479473106432125775424833415891299274008218442109410224645752392359458109753081394610413565608795097931279112700697415012407761167455624600369593299560600827550939683475305273124021769732078172731476024066021566709311412188699183346488596514674356800500287495353752469219185407379042046321878935182637551605693589595407768792188799355259936163793371635487907318728079523588812421515535023777386712020797973968080473850080938407262213680962720694381146548700441232064582328895107068982518281451118007465617652151498253768400467091843530703299730141162882358720157310144141789565225809740824062030217583967915384528559050049003981382111195684728358298539870879634297720546031425769613507941588505665672466287149685553361886540733999542696607757103249511707951925101815778562797783413141558416539777176230646136931711679573505202392442400022137819232703188363952977124755603936405655713240756621679773580627585099352635613847069456410734008006043062205609282161055076643210955248580277202920064060590413212146704243838625560527895690144093375966863827872546522558513372215607465987848298307963284943208637669345140036642095802476463397122864115950292168959501455118197702189410492295221753416487244788002754768944488318958214469973433661363211854656446418035636448177112977951240519200160470823807344543341552548515572964887225640224075846444234527028996799187072960892329590067097292109639126893117784340221320828618272542316218503284078093089372938020993444789529677413871621856526576013167739101088296648590835982290582139626517526829364444862898239315649043258088993153009943544801271366733656600335787862484069088490338115256743326888581688609301220049516669591080581978275489264772662108523063482221122486921496277633310596239928991685090478348700805771819153964298074087327511300891572268298427483660811155918922875659060507984665891114337517325223173054131028155424230677013178233351362848060760515040891176438591323171497899261529609299610415014306154741261739620890690774850814983445342848809629471200439708774831752850944859711670144614578170728039137896278694636168112624094711638540383891537990797671380601034757912495498208934556030163031474134297366883526915433461928843205846013565158276125053596178358494738651517585215691022135661639928125022053851411212541366422083395129821960934240416271139383548838798150791995126092037171634914355870815940581384249368416485397947492959084975650653579065780942885996861298486876182582899543136870266843316792019248358078997198506800949008878358020209816411572697499735365634380484596317043180367307208803077214723071661210480662751527450641412107771081894048394974462673099852056643248437511066636353569511922371560242266966009156865481763898223578981664124632574900257895081058732221656706980769810150816065827380898386000990391416282909991579827093254024598949088021651333023512432188119954505611636241654900579832100695212730016060515797686705758859069388091442245309527960454094367466706954880998912375805070487428497183494924167786545627733199482260523377222283316138288816141722194412463873368420251020032198387820192358915844406907518827477249300556616945978135740817209395584597301890458837747686884813187356767174782467141507965518627158631742005227356182434734849299066358456139558483045015006517638952815170249402746995602528910520832823003855426149785166355566593365921400078396893763283941250775818714820908535850608433478475010910001611634053132985747542145354310195255415056213537226833952903636061597257365296121986836945419441250294784941470252149510129670515088320797356699497712368424743959926044959836718068436508018203248530446161849228878190822737179936073244870932221152996685950419149781089486617913086892488925573074274002329815079335878206084939488449567954137673359001451763836317156785685903791400402426409917978162154012594056683101195420288119439680183865455569566728554128724743872128731575802820539981303935349697229612801656578152006671967105499460496560771149991686900601854710774316831603836805690582099234808576312784321119624255870586962887725567334658589954582646068133000241967232727566743640685295284529201883497394576921399289469132565408150037314370887426740899065182636428533211600326213773561651631758885072378496263739694539006200226578243961243572978722000327508643804868478885725470929663726696536363427865522662555649208155603864677686594898446886278661002354893987474041305266744144536737786702170585070950147432005512850092638739418791089112037833721765866653863352105278313728381920079566376574889404650867249024378754722379057247634340074673679636050701869846206361109514951375099946989287189569146230675292143245653713681411703198492613422424373475968059540052231911852938784519173828418301028575035413448891845498895064477255662347596707239062541483806063790810811861481956203729361865779767647381870757483797099073708063042592608330846505873054371518898760080149071189738812896382013912853072931912428698399722422023881224496646913108974669510959370901966026940632719396405207061974089127254273098772326031886697840096747545088625624049164792924215271583722811090190094207508840625647045416824478496691898883232503636594991638674832643032565105116081623431307671819639666474179635902804909218484730395682022409269791017282947099479461016687165906440923270315089761032510331627703416789768015270700749378842186267674429469176954580888401939408582548601066842976464534476118675407519269719037976006175932398540555367018455697943234637373741349011684211323586543780340800178860823188841124693575113644265230959861426450170279381914024333575218712618991981594774032910534803846308736533626150420612541089524869543112496343169574778841683226423091057310860497895456314184912549860496458281438811988952796917531812208332742733572100789464425377682465870555967652182914626231511460033566946355159171979396376307885854272614700748729898172922110357295208356275426945168336015872098274836439979919529353225014795889961129410106231104783603582375162439177926832586309997414672804728824226613564890271108235410663680558719862135211000356215313932336761266081564605617016724735090957715573652924297519210505807061424963714119391545533509707605503231373613015181930812626270775898745773072997366550230564077546379892093126627631726720208189548236618636261584427577579837592687147458307154862547628953419672131451976043664507646617702001945678186544050810965586794112688103178438651940958808711326091351573758913813800703218163789642457930594012808287995307402938613989619902487259430543146474586794046797204731002773563706577859603967179080988851117635772173136915477422481093106377096016143457977595031607037195366446278615122892913591148368389694485018858215976080018361078306504625703604475128744539378835721436057961461669488218283430448051403184249931339105008492983171335430109966710560704679260964010437909266681529280250076020723081494794161392045094375366914044861250313989654578696272394489450223351980377716191811506430106628699108932896609572435262469372025639624642630504249063891088653966494022425146863022237548243318561179816626957512209850434187399347492646068713627988783376127726749545026734888093661591811746014224904535160370798653257199816632905353279564188137424005797334771140905224767252068194986295092703040005554032333262435868940664407883675875870333228568229082751512646671009113771044998843783361430535577623044988903401570549297882142372287876233140427036205683128466035691977737936079261145561995420075458539039780098163670523643923103795083657405930660405311662153145680920517990536777280883043852118090479460081640842040891666716264382458295628799196323980263580518156240118684617619302510811000288778707655981454220367038605469327849265243137162749736039485872501966263229323852555635437012882990881981745143236881220369523088941453378866922217586611476705227240645974979122323084113190923846103876386628222207931552651445374234677485809063215863488187182475014238795915349077323599448346357565746754705903444865342478794401023160352030343780398990798258588264142406393074017078136359577177243372162673266811002099847251677913001592859518227872723888609179209233415984179195843952177472286606197756046742542324843187298292901915680463824935931524302064984449753452431741986403418698227382154252211441143935832505032195948806662480818321244941573954040672420001098218286897711078675255375163546927513587191015706984571990268047290425826238733884907763737379046749626709780613000438241291688246891718880522626676084159493490961422593972216710096423572896791633496705951446587313900984184670243154914670752474029107258264303615784191147260157156543071486872778538863640805107467717015573854163239352006868483265837840475386960869727040473525014246709175390942529248737825906348158576150991329206017167403477346899079556697166081178375886533976306150855175418843079633134723668846548502766587251308669107933086103098852080252630077686173172882101394450649775473367778411775368718662227189544762806325978984813542155713268582759058220601084545591192065729782219508168094690042681778661701482874051147825307017879008994567102719027588907787137091897762021556457161768542214432712766002359061775903754054226189490536459148887811940034709898879930415532114920604882321968866572805521032116960984332456088187554090135920820002058126396690597230352893938711246600561652503412338227263397354796763953895420119879732270895582190577818534898643588163086113569796656260477827181085916643522968372410334187031237074222822675687212360583730704258138473619973151589597698099445483562744764539217242712482517011839953811000948647373075701446500650372574257851483032039884827308167586729638805860546537153360361268536545191400318393128373197065837409643855501068332971005621780907869151083430392834554708608595118582290244540820049514534951902976733051387443603734169481125895242531186181149968764946551237344442083424590202677011865260442936841830976525803308010522519603901551436930679912703595938463511014106673691566600685132125258705159913989341954862468349767575313920309268250665718278132566051126435158326261994503613073864454959290100676576783348438636965173838393092931214815186556227838937310823140772895576634869817857987714098269775047623051125771662302965459673792083046889562438324091342665532913594852923850192154390181941212654491334592948950531513846921298559675713896448711628019077945917467668826696048839591850415312961360048303877320984134270464853529562081854860003029377057372224630098372325181768290138267275641145293792464944731749739930354540738867784140899881567350452428273284887544502610271950627314049676198579322391718199261379584738196497377610525405710473733086760100858028668146768097081933126142650594725081482378574739191018283293800793103165682789913840848845339409314346292343430744850632708820547943093985270320060340058861043359953344466490930026405744225915652221391460938939765740976062118233155522514376793858509194892829163739293607349307657968885463150538849586746358903323560388220426873731331070762601947976784503556702672123493271553553124991237058535421174617868214529632857580697877628503984906604785760982068268881537762838213777427353986025238279264436949439637204238891319115322353568540770545568488513618419113258746771207289117545556803906598787631630654214271538943746373738678745913367899765224268071600251510720049125013499690770631195372509831647046600049529953662308956137741266105975356978845919017894404193246256889129210003070216788712358622359522954542182423255218436222363509227997271084662536568592625387378837241166331731994779719135896937205770109427806133916587399561966182701456481747688109644548245578488831986200365240858212750191510918519524800894814752960020153647897770000925794495809394279365726288609857701592782761800054073549279280397024440895717841800524425343034691870528817237394375971516076610926632334437083259590133565479607115948102421525544341287368511015574483504519646358774382724717579410305841645380904622842408050225177852037845324716172222146404683517349152903883840138291022199403930699776092209295600405558122385504111372867825403302912893988886120633249124152208100539421464247974311601985939925289269462353827759125941726676643198528201096502021732244149267323613009809134369622153710112214097735291099659945239850030112796927183854562901948193621087888649603517881061382046845312355301331241747731988436416178461077407835924879966236757466994416488853835721649058877040081689331186062149177352224031440683396876815747069670401758485680941043919985793782298655986355239059538735165747925875136999825899288287472092896415996066365976293250749443612403942820044385034633277913318094291701957320248742844938971617982013718466210770221351288055623158727166359986672537096186242633036888637960066780349058347019847627298051599745593668805082440565306023929485888964609877980098040181785928529463320276654023647228397015267675087788634227411263124131541121698876276125104374039534607277057731259742900353500901587773348788496851209019521383616573236292364485429385441111613722785664374049912411558989504352535241171802539032897754340456585498173443198109597998063572929797043125254535275957849393036162456020818698131130847294830129332476234380933178521289443388770404163366157236800440577423373515562758128866996713193917627609250874598469667214328305066272077951156177142840553626126081721154513500418922843558877086780728078056690047210197762360868307613978576341941144721324556639334526419259194945483431570472804107923152427466075708892231855672625189432806499684958355354431322436974681190271666238059522710213917358445977913015147135765838952838187728889039747419489288689995181716954515493948556981844607177168043594335638009340629270307016422676201150194371910128979096656110844322692502511583967605761174273349126614807400864227933442822067408456929422496139195721625337376046163974445444210220841702434487007819641805626274258945152653841081986103574766873300092484185568546149075869056630398541025403671208434814252912891816991218377026186093011712897078712111613274255852472209881929820237716756806958668036602291673693504726791045346500934045989963277613210493921339664297763663436617151545358655158797463711881390051728262139769494409603849987389922241108494465379199049897721079444140853010846387596849271961644100515514510175673285702872298922588628173895309475879368359227292042226055701206630143099524396984248471580417093121686093386292655876283534100536687471124356839659294374940575936667784609110222567014610756168713161650250026582126173395147447215007517614822661455327357831345480575456947599724231954574598944807544675022374064155075661421881281430857898575067070939472349280102340139758307596806463993324694786269307557785116661212625843655335923659824453545365578209897491068767106494062223709983107776555848852920609363452618985481021642309097984487012294026248138647569192628608082528746799973483261779262225543769431925754134209514299271237027868437364139376141846715545482679001885726798461688058149814800538888835376852225498378631485292092991874928492134784522821868753798647909112790477501130081702385325106152200381446243655836574043690716924304663588034152593562490229211414514046856106451830700239755911225378217376940607108163573403778372345172307693793519161068350880643814952565816538487389423065687492452535380406604676305629155339479069443223244656312613594364028419891323377579569537732115420723180302990076507351714960424902015187002274818532964282800001064707082983823712117881397348460599847681054128793856134293990059033479864511204720851914666766178127166322802555393964546093958964037629805867488764693994646138126779101010781876900732869360963682903970259468605351990336979246931344838787517768338888190833100593915208566298561584274194984534357087267425261219111739990132558512782979830403574023048063416597839077992639109359521294709067839859274953362873730957695701138519167086341202450509417877357385473062976442048837749778770558045276555431557545023220693483876795929806139020668487759612792393497185401810437808951158526333734381476779561246046594076353716956020673157947509886020179763797864936766079658516679902532743017143804842966504635931848124385273098073264804043106075336777711387483375979343400359662028650490696080593394580559198902981305721124917024646999454210557492570480623057568073600923703382940194559821210183394267523979417795326980612709931498209969432912390919200941853780954491308476091378559693593904972465319203865442932241603301472519195003419566056831912942312480048161751924439446694006472899903219516627676208750570815378398173841805096909925761963315406844387349259423852075645369781585993397823384035660658570316039740878410976933112409784574325882518420796204850799055917475845684111615158759576480865712760977095948225873914481538081513215551318699273577743605199997094150631885991265655805186552003457312766544036949792324925170668291161776813083259610215813751541813838336912501523882109528443356918121985913472487578565474586321451031040037008782108229997682891709371158236122417445233261732919506890961808407684203972203527013804392433042834112908600951607208936150534902983960062411620524351140496171112692058883839192682079344970602156867737892230528975266649066429604365517072910985707931111915399920031040611361871283090372766461328495344167199583838207953638181730512895243940994908671645339303295370504812539204202588988456327872964984118653981426292512943879563055517947592293001326472540471801486818559867953285197698243822739260865651374089474139950542877744287722040524076905725969707171832552737794697825144204346827718174994243609891402171208841445712433704187319209273763412730371492474332749884200450039664178230634528582675653942166392052403503233391455716143238559160571364968738886173534385991752887483505273169755686030829227633767141367750019870224017922637775187321935369052580314348120702022381358225105129722997099032672441644023418395587523000306289704852091466197983985429499291750538459121211985493198951618640976486998169868904162493153120061577444420342625940217538042222672433102744307488048913935644206898157932755270392425909777204776465574411297261894161121008383786134707562877095284629648229336968836813757964944247730333824709980639569832962518569149233028021990102672971551769748747613746317080928007462986995864244933958624789882148623517047132603602802811707415201879836920695780563516594840837272469947707091873157404212232013584377782576705012504075129845081392704964885186810269115568790163636864065588318112802925476580600528870542833040204537966469580004683100491781497270460208267622415811334359355388487239875004791316486026040493094667434980133580985969740622996734148578462703722365162865221203161182772701337177800928598667308508775409534304011386367506172471453353911639851624991143020245326315740958848675115710968459748690618550126034160786836880517601834863302676530835378563824654079819694627029564124965033300820532998484083317504195847518241573102704714574926414614216970400458131289426616296821269815965111990741819927462210608511894296887011540645876992352029137404293563278303292186099262228464742948840009656382063184823203646136666263125286628869673082011200522616467878192712948123366100579348660280824751907927045921892701243634209853545129197492931244272157680331106625879670785431969023586200703271959664905818197414050724829818645834704647954509582273794456690442061116405200087307206032738568751379988922213555807126125897581148491521287147235387837500640638098158862791645493767569960025593358294447691226983401294849911408773669106915454468283427216721998621485123982946402665237965835109672783144532585998533943901588155948979192029875652395776286635872251410531787178042608439208515584400564832868851729124563072988940880524534668906365461797338922894311602949353003534633928683604319881501383095874524713619706852839508170903650429114988555836621997017613199623888107429888294483549246196481312123636085743656742215770933824493398368246905433734368321495946598283719718160191653853346706311885011913570361392349092229139670169059405528863274875194153149245902040743525582537777384950722485925434998721443867903012803840751860239481781430249123537467813785500325420848017505240835271045805276726484837329878118906838802581107809315428314157940514828272760371381397836048761422298565170459157222191100836734280371725043150890671206227426080903131199463810010307727624015860076192514423880125352440726049625592729638905463444568840718348222463375450692272067144476452789557693432619712916739489261487256001914950481705083114562218948984978609928903846538498533908233539527928484621119891805509930483773564169368005610650065727950085712526141155485674399604077421434445787037008788960194412057926331615240001556237756656920644679778732727898721072600682500107999331378417790225967394186119228974964372064910632691982389904379849926373274764666414182512024313666674872668982328803780912559492719585105304787268466912673866734848730294982051355901792015261537002253074372098145408452326075115895573790626938688177817454041505786995424619240200723928089193124380698547104413953582088679673559235366178390033427015434310684677103782474214036849484562065880921350022746078723984107072714768652431414862025206362735681396731533186844217125313227711904479700373204891747357481456772363510697518096356916809516245140088519215618257994246006103231499628035955488709879687072711143605951286692519722968051368904270806718380276838568560215778618975502514176440862820610609103249283208861478286351606734297544847954739708391497527355184470553700661174051980936800022514397158050620128027782263661758352264507327492034098294390197248838484180580342652479048678531050745294537223648044412500814931380017254894982810497209076738388162013762025738263029287331204096187210739131427603600001525971567547907307573316201973244720245919096435395981678035602447173650640528425221731003692519029725621631155151566545322151621352788763336690608426181941266751508500557301046223701000077890065720852026163510875085284355683014406346466699303268261742341662212693513192271952561406517619486047826783106640709487118021404195369089841653353354639719923704504745593243243514014146611966824605174264555547538432510036662953619722777578984068112617878993882525582709948282535514693700788799737575403139313250000302833386432656120274861243897423031700429886868118956304629468020153172146224446444091430900393114553830265930439016833169834966042723129926752618197734781923402437608454288493326412852991278914473726997659867543118015716790459010056098473091555637176210614926562424449603451857428169599747823097779201899753538802234048777133554728336426575553020295035492937532804840929124959046702565602528241659849048096105543142146438317354314440056716235272799574647666667339807975215654758727880503133709389331267323427449033009950491616365924958433301426088942781938749948382461008134348943632694478172291044179627316889747629684303693518098116830447669639155939701448165608535149226670532225720569534973751628667727663955843814227634295165833362997851576450715493118387642109389302728072265572672396095586405349370297631110343186313249542644991786850266979150540807128728949137125246167501963226385522564525237368790300275646582358233694285095177642184142094063347513146230753537688764705783866289050713421361825919744449797482011993399027821706834250154075161263685054494995710342318390049265226399837184796812798311176858426487222174855387658058416615325208007858530180965037624178713211822652468796897788449018484185680618937456690535727853229732225550463479937807736781961011377626913182055260156860281816356438837551484372343531599561543699708878789813456358890041072019116652801422705338414239117063729700098130524540707112545047225938421948352635801480547875103074078471849595505439600926849523047538072702708949115747955192330746615935648872457374043883346308995722513378067835360067125162960254838448076886673991020140579886306490737902295775187520969358984518914178391592205834527523119002793860739600014803760310374723370819440978135447164147882690797549673820889565554688391128675860745717615746165187614544598585009700939931186139644572999352655617524964303773840585808203082786694948473552636873081291642192288434647292642741922521020847242115466080940064030510824106534420951281714446218852716790508247072062771592560578277226756541951146631845320715352437645556926441270098529571012189844704863822929419503402463910275225089963456674865574289792675667865172513311889051958176902953290182943875661043879186782869907963501435795901246156013286516570322295811225024721588433689828417715156092006272311535411026974106885373800179782712389686353739637649225520760404423729318413891957596001681566077956424156206612740835200263103578749916016337606105633322261684443298904155570518904478793510636192841332499519094552426084363035120750310999644206705249660888510402758034608410766954985055385900327214481150865062577605329307440509726386097313911325209247922457561647800834666382444107680601577769221868013973661936030357311267369206325874695825525119796303871560854608302449219392055496060227449713228098065913396205906836693389359489120032384505943377614519832777116961050600623201859222037255142928188695503592677754723710682373841455519339680292618992489801258610432111966089739928923985959906528006398410038287057383323837545351437136088237302551063935115284578783504251561259213187388015984416941674660051300299079745714569040356279304141893527119635976649775348519393750778626861959104982976729743351718051101780614609536345004665946517141564245931467435226640923281787982010467012870534784164787346612979140891798474475256415666551004415088032632939538433727158184442348940509625878547383322815599761126844965720815626585433757396133198861345526515138183251415686073858765173928496162331502507951614983972783627574275480976113774264561542533498180460903312771281061096283285206133730184122908196978884323558129410665726691950537892686053186409035536213904299324574595853208844311189462937472656232412842587819148612332570205265174359900942533393350747073270422524135329696932088655548709717115278477459293003036370039863197660010102041187180958292989984479481081141500259465636336359924809786483495194695971235689156537464336900539430769388132679569473576286567555187622798198721687417518848372889330170601816579932239408740790500247376191289970517944609742234081364444470632480174619817941660702483376365422498396089301067505629685771867861456147644963584650095298374122463394152530254443999453957634451321340999132700889862072166853339785915606835717202023675617145417781581338207456834698844492883290558156196576544569610101754918270177283200877334927440169962147991711909427659367915443966255167475587429185038815795338332852038030528786419773307619955619147577243522259551719211176756106952453593662226414146325485679687353475171204426557715662811878057589761382617705085132486994010413467220254943578640857608808586400875459287764639412863128882130629809982144606973510863209935419610627489945520843619283544286400086078932269481450718917630490624536327113116830495095548116798431629538575140674401208018970248042144614761611450897864772119560868348273483355732235643643668857293079977137393656180030291637504478309162389493589287881657494117514998803944244345999924766454094551680033939601915441194915636021524936318153049647167952265955012526872848451411289695288755896639525319555958045719463181183081301401079930694319221303328830659216039337742709605875727315942637458133994837544754975937805961002846150275718643281775598105748036139357485578113171857471628222543427555402092278004525236601765773306783104439879299283634639698459134324454212001190375082028192111062342727980096237368548154711659382641391534257525272701767922507689428611191719245986252592937355231864569476884237820790525937264670776657757794073328544380846188397264482383782880771554300316929756470318421163948768391086298384473945944900556176055191611565689874435076344684099540227651371210696075691625836120627703515506425109604030114660483173979636275031036878408799590498650647403449309670141400955529969651951774658505796435035865580348265971349127526638517706017222620125903428941599498265690493022023257830088430420537992667713176304557173298268377181739693624397152643900852076525694870977084997174825819688853693155963113526158473080938512532042970955646817171106504528830773860128360663174777871378370670410293497587762311114720774733033674347131538956010167166472824563084948648492992591719848351045272298604945243970058091330038765042952068009108829163236521985034344343739746967040909026989928611117904662019159540489775982104744379026983412145776165721390916531886259367225464324003541748450298281736189044858013538344190582578182894985963381320233177910535693878249029961067406574470014040708129468894806977614270483657307703408992514846083520812201845913514499083350583079493178226019764358713679268042627207689894062747389895521473274860093416440760010905113917605754249840651716470984578682172496272699257635205025210096773646657489028929211618696993682564347457682304140801479038493743226312121409882656553589674939602206222568958357798898053937510055459709410958991087072513238308067382748084221724534043374315048214781759239374763969511109784251954664003830853957750341016535816895247296462995559663823621237387791649621198473250564946213197785930595370938283154313453245976032969695200500030982845979291216634663280172290367556126031925371765936524199856506180041811410601808006561534722247616796324167297602464873431431332349596062148609810558689359459422609111584855983829542630894844939569101374344252444683748255066472299233938990859837600728567039832723023068944819767390686429362816769837745390044497127571954342420909775504894785038876127606314086015760254066972942162881604577622691104671872843024809532354429758753319088699740596097024095732854805645092806253190276491217245756648389537823057368123874294845097561800928269131407327448845734251826709741127413494198742708081325516843849946336411847444127715074980215465042246037318254726423159502361558958748826872637845628435353070591607799525931857343779996828896960335639364799294121539044037780416720305369262037421853289057315896683658828141377181991257143398192627698534472890196126671923896693362338954883481089728728441858931257222792297975295418442235886472446175311914249543659174504186199942592702549503824232048651247902782450831051350015306209882649714396087692347301022929639129299187603985102822039805263410002752165962704332618804442618284646245674006088029162544009123608619328578341887770922547200383688157117702882921493652323368045557491831094406684833394913853996462250539180770239359926580998095601094543631623609017123448068952541371698233898537420187750992917050939717968050716014280132195685057999456907258792681650611345943844367231864333422232343622258917189768580123555769247686064320076406191277270807207062788782374378096658810930419702950713932515724342033631246627960804298623017402987632360243781174247640580745044355522448651416060029378327042916241994089769381111336587447174066866922957660618064018093103554322862725864326822497974360863448289359027565783987353404705532890820141098495140825887233100929301298567453489338185025952785167976513849486860820326304047517281438637814200162117316704296228088568160921766368332741624698362312134262717593674561463043042254926297577614924248992366969573313381611142325956096197170559308510788210900696620835004072630918153821159410973492955145749767496920509882476353861958128704036839785390157808231454921529563044670320844176186781836660981060126605814866930762526731114052477396658857286018412190787959979475547298998454795950722642628687798257862264386290953649768435466683201521056839469583048803863268683978299848517703208195773738282196475313794253562220399461224743662646505496584749869751132450234978969308293462002843166232676613296434582770175612188419321953411607373020611383636192582278872761426914889253632875316829346775425276266678805646431659647395043069944346096256841557121074719069567917855316049009724782068174088227449093954514417240226289475850369865361129314605877189928642836149530718095999055240614838483547531102099315631668158105948697243779342943128959888150901097344328928305786481383396205090936548185545748628134935811860333161476810581734037158887600137642172261967108043166999196301081523954525598547158190795654089344306141422646339340625197896079176292321642054106185165548664742821859301530179129854353935713730680737091577127964687685774229019982247095627174306556339121165552063703067297296099765387916756059350516920114505090192495192707895079164991678287309245696670145908244256051385256633211063939392784378958574027879898543350502497309873299187391535611962630114176810758021796839784829086779910463903233129322658286525640329872252219210806488451811660352039336167398473947249831227421882577122123465740009866208602852588075279072750851535018512775700809249407314792487189054942803080136248570716226398797316692605429006786619438776745832260653357400280979981096300081799224503863690281487937638700187711488906777530271661994606935365660204497084437325651653477481633066844042628547447720486238888849677321006290774061860295825231669016615300530105061489828050063253422040244866315805933146657226343964023535783198624743232046351993339181851346404988310207263670732187863043369280390127125475360550663282173596571723320724726729804500648710116351858319371360164518596957333827382749523725292996593709315248933718313388089955299843077404347758357112545782755993888627866483735879915303997842168863386238456785969905733254879472451759316266441225499400360313794612831245436002100896953677783911832262710466311556280299620365043555018102489478598687053233731870423142332290768757015498002275610729984022836545135058429582944752457516100740515189033018109498452253461541499408845684715370097377286357905181410976438785594031681761933136873225333424912466054901231800376244448356857584833013554117830527592095939876528712365315674327074633110763780304026324184923531141474872887424643709043024269863347400506579871062470715217716886780880558756846618938058846861554161899406839558478012726155751954221301211924365819144562302351266282377075482399761895657214399804221247294320238338616291521203986777538025562891100781108914284268765679671659476053852334493960594039918519290593686836934341090768769896810694630192625989127614425483627098205246720111503139543212376854364152265901818424942638600581731433477674505970589835171308164255349404424917349451390179735513960484201540454681421799185306759885640216339602586774635346680059824471346880287507154437607765634002561050782106760794663251604376536638073092983254009923901346074047456140663368358013454630993623829186113313569579004420772335491217670700610041124165676272964954531570776646095629423716775610536944571510633787649178888867106442638056707679912129204014141391533203732862006997489452157171162692769648109775309463715356192166372829497304388657179838446210854054997508884542197381902512241892311740545038203293783781759962143707756998494786375563087471914351631928054743475489982533666101485324573209959104544473414391096789910590873074694388858978364445957773022412508349037302122058832323422461057238072059856096551542954787538507137769867391442526255338656658960288652265992248828868288766642316390929397529633170229296444247231115214236859022206934546479731735530140216929233496109062035084658271056279901538867748267846022403393701571525474540383342750736278341493833329355446973535490190784496872010758138251499282136353747332913806354415159324208862525262642729582919694575313655148283437177419365532100841080089347198698697510353551558355610347087768047696337512782175486119093125427574422348239086800225494785046641411923754753859936644691215251554283379605475741114461684810224246919620891513113801622618177934299006998783638243248940685577729595448586362235557396592594081832285135309619153064665618867682781357214903162284122947333621184087191444624951649486585545667485093230455414181265811514870125791571343649012532106084788267202103789500634312144757582695006199088705735540395490532702398281862727831751868533538821772458862862801201413009740689286571995368205569906495851482996090535098327693540544751240309731206653957864778690164334657549290227764762145076792055010901514464840841502456622523585170577351622911618727326543172391663299229527202296867756433611758161961420087230824781436053572749382519764188458053967304217697323059309437964586318066664914762160939324309279776556099200870244140665257126672371616539893555826121591251801874403016692868363634054976698026519945485801719419629237368627422143598197203997131326501599581424325948288097993246157334341765810840596999494958899271006875514784443449038276160997814277623547117626861169507118939048734414548815684272421860405457591174678507686112687226047147296835811373257853004725835385612817550894479508098755179769532797486774974333848602457571239579902478612461685408838314158790756896936800016869075103629564042916196300380741653584452798296233354624653057593756531330181363782781765539064533217005153754259853040784343376997634629664764999632290436542901370917431018167589203751198803039176458047800527911454386152293253176300401996806406989930102776900598512782457337656115666142339486235884436843860994155998030561515083158227751581482970606102261509827918124946493386630320121994526795049541927756117328208154037128145935025342277445354542341618820095643474944152522187221054049950849455091660337960129636564434896333135669442826780814684793511727720513360428908613864307472274203204834112758630326187444334389670306851168775436586340694805805515914112783773223595113432952891526073190882568864502621951392130327441916021182039575024265756473273525472399161350216964577053135134962032844080459908250710714744271218674840312198781121456365208361794161278488040365389349671582255650803175107090287515972912118711945429833200454363035236384497189770005769514736123542015643525619363732688168582110107340809035689525751152959151152650060574894296174608522007704004283942533899775970997282388667372448784687733374198567450785763861802010972578751551808183969560079581698296666826986971639380458637579761804455551968905101455664943335682517106234007737832550405659163991791485500920980894321221493984154364096127783447124610873791358325770703803280892352340796679024559182415687273499836635443883652627207718784855528985437650614255609839363521460610280086431162687962264589197533964163160442569723925611956000544121870812776047246312188175813294296377887571662129020199426165419345319629748026881078700032283501723700049323217273376327141822998210686692713784815603208309814335490277090468846097091171078223505691973131587175164296263820774297544707742950418599577603353981405696107626066059234747772265651386414907151180035434831020269928772410480742589425413423538399113597541427299220303067886024222830694309306793220062679392923990449649119258556402588742273826530884507875153389944952863167979483419201676209837345240629266934697468763343561142192636666936244413546216345750857696879879523705861351362626163930280064952392463192865462054752934398728246528404396460486342374385152345886042523862801897838069285376167571954944253459000577582697387646587439427479509783970169586022771783441967640421465928009218769036097922473374145383241657376766440309791612696087548023046907181162106307489991254391317258957454999118817246292412604489782379186822448307087455915442137875264700419873187213133738284738538205861096391361755929137281367594638335004156833299249886575205428280439983490608975963098783032952117233541562448077491955486287251500953005832186055588902080209533419481249676091714177112928206294511741840221112829467082402990687168004035551944584764895827186797462464360095763195869451987431821046495585712431413493277069127680489723642372849132704815027958734415849292962109030185067925951871341016390368443873309858954352127400045908621017177220349778394327086000365789895501457550171488016062270365240572159117351304050983402317050283145732381162112496557223607606966878547428250331206117492152685086986417158902904689937826167720713096685337443888985386660894637464005185188654567158680416916979064199092161040928681426876199915141886867295283843114261782158226278738321332160118696763700003971205539655183785891666902485544860594828494946878304424898248205811206737125410602269834286687602711994176238589789334799872435757672742329532116168823981447461055467038958984645483933272506379470104972878300295147112221518817090497652578031163222099910576456328913880912305686837666825898685498674943457483562500631633976442747683377303844952725534544527095655184548443081887984820049066336094013112794888083766802666616560688569432196817155672521143709250360829720500956363642266851775264001984436494304537520399854687113689105776582234077549697762333815748350404203377526171232915041898010910689586543192969202279837731799201363618898648989599582766030240724728455012891865425873136249632298851495946832824037227261166229154617188879528892573842338363540994757874536378899401339733494413424291772534739688743894096875192848051182612384698376458976959553735322685893899673018497544669586762841017195433884715638240772481951501543860875857354336735329794391561881286655021628945291297455610233160536306215786695522372571519558271089131337546011456240945238431329439864738916439144791401859202221045222920881161041090402526344303317990180181181557743429697448614264712462133329760044011951736112530358951725384227551799546676466411408280101929823493474524925245899592934139818860858043471508946166725188358754871419836892679893667454691126580322445292178690329207067047813001053067827827137527578793994124884796697979202965692931124154308243421867469345512253851015062969866859627364747743442091691596412259666047700043136456272679268362119433771921405455357603714327153915889778514047528333115805953458028657649463695931694569515822403434439076510732546988691404097297185430290335662763927723338776930007470767151708777241968134675875632913313421626658661175585029638369024106258946473457350355459772355844290696241951957559647676073411399571722447596697925205936350965425455943219199899096375050440211546307474980315102929792206881395532688555427821875089542690105682757846610160099520545105019956136713715069203481471246034417726573458675264538610489590557276485891892068777045552478463839308991556778914136851266903814452140474840519546536447748682697349284988566874590587539311013088612735718346743911285125223718448391730353206383275014298845463130671026248240376816391095031952820141852226906200187812415892932048532633004584036996688502114740711622116535169303809765678350220023735369388733109196811814331389207333638287422018818390705977620681592623910836661510176764216686931414531071937258300672045419477616920784949110896774364664164569989517289420787280229078975624317229465424355389076901678160808736242444651547914505323915570195273609189677869228670695052800748934090365313640709774423339271214637042038283879338355419464354352888093394763299119217203051015181227882754294166810645882503697014811099944163160201783418177001834818367759822381232570653151890494131709152194997446773408739254860391659596513623955145880406854771458873239633340217637745450565504450114454076024220477238984375932379500819147511195973103825748307570533442579006541040681799958260953538169749928292519818715542964127140197155145833221460766371328145475422712684853183911353410140424139331614382633494530748412208846221509741899244094366025749452808737682882816488818990176870854155749334201115240948588338420898171716222561735274382445706462575774937169940017922670893340637142065167664576442338778995586548310698000173682167865394684261904731235442158651517780528093395618744627844185449726171799446434937358201731481988331874086266994210504189029987038807198119396603768239298756900850887164679995074331272977737247174335415315462947721926732684710086143476141682616008390223313613471963583158097186038432423587064845031007443230151572650309946997680800867381162305089511058230623042309538117050802421603434891754788096279428221158961538308289368546496095418017079518733273353548440034806144966754534611949717589033973344631489354008600649129663495762176947185989706882574700028681735694008242542610981873756545118717151000812299430696252556120297360370904459577514312410671825686932874410948832564900372948201310591118296421170251916941644981532417995322321463008789835526893508907968200749603233164159213659064156979547817100077586477991316688568133012944794466051693139940581932395471897751407491987566172639138439529063655753691510073419664051025266403739639359185520195954200232044243124664072244007794567489133730824071552192235725561091978786612927310424148885033963173659272793675720231459333096441194974201075901139524291304438630247245224472425277285516102888636425938631200202658289655475879655623825467852365083714882817205363202802666987717198303558127668321191597878016394981777161125084637155943661873819953970634353342197483848279845896607971330213752286450083607211192612336168579189826322089738147963695587185370382406089426519529441165704317360655144649300086194950510246469873315001582397096886926067613505057697792861522763491480138449755177429880550860588210224283895139953917457471397317679320230355804296582789826281708193206878052046225342557204887041531159845647100181633125895788827610099710865761249386649216861317138495287660304593590078212309660468943184729151532882832900578339592595393055496016041021611441495792498989223790035038450631650188712938820000051289236773223708697737426878967565367404747929116460339432838848863041425793412929645627651344627535481830801268669719709294728307517936862111322923851920726518574255901033215599708666471735647507938634928809132307734631320003146258362154686133369103402739545714231661072513699867419889463408050152565487313380939185939144292214493281683773745089242602351036661575100497204071514996585110137162703851335627768635407032490560397664281454573856289493445937491241071553165839621765845654599652921747209565053418580124800013543695528538136480125867079869134540899693246007218400657996375335577005496097593735206415186790769952821841085473969817650116556362122019075065282745803887597920028875709417005546916652912874213203112572663509009050651332484889344400735987265021142838094583294787709199375585351481493567345081266060380935918037363885012470900067983053664891553422266055186916893786955708593274559619105656056300958358110364058243018252843233996138757740549719766658135275106088537870685674876518475490569583452593073114708630295277867840546242122416533184229261772026026501244250362633102027693923391412644254233770731192695102654384042849226750639788263397886080709038511025084577708951807503533766695896962899441674391342067813603212671141350913116154907671909890961735591422907278162034014100742109537571140128035127225994424388477871509266318549433005435879103121148347652265561980125731999541968007272143661054296911133118919743909571344340121024611718839099736623029764067307077991498949510344041661172526114006509175214990367685351069273269424869002823465038518474236972924054897475971250414461891664336929561669668048436661798600283941653780552838735763573257798644794598211488521376388392463395074204231728176374437506934467621385633368352971148286122468595642332703664299662480454929506062456508170707790509021929418325650771331947602484528880079925191661543997876008803485366115787001896749311187123814984156229106013146790220406609178420147499774985280549990039694010536366543686752565779426137507452009097875144977292718144193684227879923226044838012314552629956430013200754127094866696133303663052931491996813184539644899352951537391550435971837566760166607035369566775089759677240460885464959863659097713602589889255095992712865448029500756862963123739654383541897110710725137101368299255908320224430393918130229949454385415330291518460076947987301860083686868045067291181919723948748332866605611590326140672718263994981191990736468068319429023541080465263328999346818044547851022403874073712065060060858997707208607623865125857884759024509900767847368262859681817044203878003691790030563775663945736400442899016835468971093557572503320690998147108278449342079006910212282447713659631068432054327161714864316206073327646709907033493016188007272944909622298969643543892017274457109517304221795817400182980982308456209587202766160016159894383409525412741875011833685262425889473810779775138200856147969862500403246095513782282160828241470924866180734727969850598980881172153926769588894350534868870287348387572771011525672850584085376818551400545293641798402710906772927078459080165930221495559383382299018233497612751137722906905876734892054917143801247192947191558742144300105762606917799468754251355976735512722770823399877132953155555248219321309816175340639429495572901783489779142998029178195676762189147956918348184955218877752151621481376906958936328226926696396037264017442117142991091145800432066569381659763436471631695292578591948583479666709611871897601401937957207326775820096435279549016750676455064274407242265473001263604170993202347071496025767925259740696511225238787102923820707769434062616558632307290015641142357532979959870330818738094276346145402985759678102986687986015381572128069989279202330170465469049350781549919012543376478506159623917105944066221841036048030614743889709622279574905519243578714741520119967401797840589081403954616265586362636109040166105510233955410832356438850420106021586125209257451757574132831743263289901967915504607861490029659074115321796972025571226452652847691490972990104045494439741959381336381655595302766846227522788456963075492239970964057387495164752489678250428267437459507957142511023969347694909964796308852872531317194980089095718888797274424053954798289130407124860474723720850455428235388856864600920871716854026683020994087061624763221972598151745691818584305691642109886826084931765789614034210992414044809375795455271240168421557317647857768017800357305129906548375668466419320116915849914127913385492491842588964998622049697878477372624630489247032793516790931939199158454491742245283542920781215305159775387226120463450943092517996286020925614849099617879363039824937515042858780757901705978117959239636132051958288678019593613358318239851312746151375396267802579705109897961540423712049080255912397169524951569188366505990025668279973292805123919007258388939238464041477275673779771302563096147515335375460216100223756692932297909250528673168766397877731186235637894742159671880661508650547203001573277988385876743472135001175274790388618966511125907359950493101979665659265541412602396835881982002594248954105550794981940778753821922057601930256985048489577513120050003014882005402086525548266926080255734622972939517761425052917617850109436700402443636154962076947125832764361606526389477561235152052823854235385414212118538346084855007592405459493176039028688786630806705081840520010542661576032712295372213102374881109350697876368167437781642738501992870281598026884192534212374753426542138999593183275869743109935591424271766222086181996947233206139248769633284573319810381881569019590426602400310175157832284404518388515709065300731793425691732256351183667481982425964072694208019681948939867080070924227454710416402259195607319041438744914125089913265350942078267880492625043909380696357241832174063116962728394585403865554808299808504730138067522902645853369024924289148301823203398876688865209898620283919080980795718978365770980602806796860833549657148778950411338883912708151490112721199068411911094504944680766321257245277188002704565571386412391762713212889586989560077176987951376818049407881989193411566446818022912489974011396302079270884308353123283135222786783391192668687394098579753104433963697722638387283786294695102891735766532564863648370235569336813913581120823728066263643844580490586825318997476980962168744353180496742351417335134290254638881645814221638171542112142455853646143194690314323041271651270276913808941177020994349767539956210435661049199342578210716442264152682044740863763952725175018657479482087438411125539228576090585740264489552722734176037084508921778592033498974836882655176592420650369629834176760595270949767144772870961937841297024481323250663068343192212664045646629181546348525473713628306277428278991783858295699423257000525854796001784343883901894291840035551902153280047294600590580247395211034796311677263801157455520075719173658170250902343692674837828369168469414076664854415323102640951837585861539335431240518564675426198469684566253133913607503070234308919678086055363473900555250819649053830168904816018884936873201091562036101334028319790923319204335974411000070170288758692074966789519443547957969447033646793058355261684130773103258632686216293812638707468098152837279604500665810697338207426418608572061917151117413480668605510643948452159142402376714299457708763436577214234314588996091837382945642367544296758831335705722529635576465771791449880051718835922747591289086935218021851384347800013108118196663797892024216339808572977187060538740157345726394407476249919797648485584532101819004702432044169429472506660354418204408187836017649059272905754979573149112083926485041151934198478867792669994384940561012564040688596196230425244917133780034407158572784315955278302535741904323704641074152819220958551275169134895582622503855013710746301722977900110675630553140725584411781099044270416266474113873818995203334281322969586710495063533601970072093117304851931191888072506403727299899279415124193210265742165392530562161636550932787571081222467532904911466721332923311382869766960212930410854223786483282956324902219253062296578888124199982010552284083910387579506366115301771121216911117244017082048578617049344091219249005026974381192805961498017664054224961611651438804094663771678561633525069389538106534657604261694752729606918896593553319352979371703247226940623209958838815392654208248255292416047937998548015963638996372930634570676343875051058452536150822713322268247687265728354485835046326278227256527612636042405691482167017693294060234017393505833030433655022289616245271643501325254279319342326081360814195419823257279192261118437758104196475759873475393786826536401733246180041277382649719158044456822213855164374752940434612606513340331401483767593304580559580903272580956158069448290256896440502354135607534250454989734829832151704772088769464711609296845036825443741311175467247089540562361476638328431475720641010192875859607870913254847231097702054986953903278211440947091294247218185130907455320721372136673987309293591671593932271940020859464076101361686101166341106253200159660099646151440847435891499763152241529340051012813634153593252643185751686381939485345268070443640859414364281214987942375800356112255848283410340655416544419366445883285633707478768910201200795790386032547598494578744379249359033635493334688113708075642387410144247789949462920417657526592922408201078314815651968347278146899660091157038579363863369742888609035076838955601135897133592103001788399260983841800122874601158091487501477952328262967145362274140947004452751082238714635129283966923509796810628359609741625228900330018012138963705119814851704049798019150599280981860745285159288427026419475062020440074853337500889638643042568405748521124122690988483541940480840321237359895405144739371294742909264889174130239925479484725210299315804897461749549262922961954593248377768142186965995708755566567554797615254544728180608761998213867019005812372998869031541088782101909553842080554527153152283155199987599881180752361157708081883306398087219704643909381987638841330538713533371659958697575173583750553210670797566438621491188038800462109767413751406124632300798954003302182620244643622275321710866890968617150481616872455340758659461515716675097055372216563362617866365106948443988986009031076506632308602619978413814960044571400264084397720877341297710402814267525979617429426060961132151437919244708765769709175207105049646334846302223458428506488963489274083870871830217561153644667413536611750802140793209095900739852790737385425642946762937352425117176575789190251730931815251480422630623448121186269938676686680290993514492741191761595376100630979917946797653321903244573402387509173576198517474970809538856543591138224379509237895660260184238611595595179819923854473942747309130676198616736539769277200126572626788953861608590112423317404423595488129770773131542028186285815562442612420613249368926034375708948366020265567888635759210950520660766698769448911626093502900469000513411410645373514223418504659434084363603591576434799770391760200215673805742521340550380405940412801196428560585806164808927250599580355959547572911544232229957735711488009787314407895391298980612799186143296174097495519954218435241692404413439345126025769401091644846796495883851938653898549735384456856020041732899217307638122108587509753096362586573514990253014026611905341192905360432421251925459862487359954229154351124845669766317032379347641392583091489785687750747291241678147714350241038308587885102485533274818042217758304016274922258961968074625333206979764802736644569395324257547399367809934938750890523714159742772584053343586795093094373510153354208611943639063406095971019786761908899625359641254744961768726993150208706368299322634241392680220175878627799916968209744085573185935733184629544786054583674589008115419317004767595535074543273385855353239398687406334494358494433399714868525525444341500529124968940729716061153884537907268596298659984146119044887798630160013108589117352689304939773098993087421748875567792086000032489639795446249536526815866832215052609378249354155590959219291034112523691881646858392658392799699806877143980562936129163908339543825560791766101202922310018413261796464974224719407316502795206685600444917727081228141006159071762146379334962621692503063286895018837597726252672158845716130767954846949629841946903482198102931094506176390554933548416317280478059437691377106074674244210322443584288491352866624221745026908979915967718680178444203675806380270785232996641981993363727870102130850670134676408512155127301960215560193301921066050868214902992827208707165078404525013028105262100980351034996996194344479214292055152178211823504044096780635328441219426879962595457587523711710109165770230781232756377532442664681304469276836553939487340464306620084583250975105069828156225489927357440837687348549552824186856555574676768444076222993371080786553836641233679783799378104093998029673016391892512901358163745604497625147896012338351713462391233321460784913430247804103744951259993303194215962511954583821722889016693602466465345011721224502498956570783399494866369143126828900333336382173408200749506432732523153528741052866791275293106892874323270610462301460541026671790210715071154583496222431677441831842576787147607416537639082093515042552936802103597678573546080880933093182049794258626823163193040342345092739536410213739510843741246868088174164867224106407473220325081783663400063195268741901846411308017097710439556889268176394768737503290095717429518164034583268358898769927555556096149646789937601429241992929539153666610304450359153549704483986084902346937225381132097376225421613996324064852563683950988061555063064676598695636798126390339895218885560644335067219081026483544089247952960034452673604284246133804667289761776219615658886132099243967077170475224401144341262907280257584300993992265974071270037638066581098307712340984520658986502946685307702543742062362571946704691698509939022730644322923461616662626323805860294787453332593170826289571615443246731636628083663686446152746971618532616374932807832497381240938157884661498386296080563060975871138419321313615642328724268990956223402860588271059799223543454333165314128837709152398834592040720850923570441623817597934631255812133409597913638985257273499829585048756062150030660940994733253673988657306418516016945394873314778663592442921403817952634849199393043911186978408711311560697193124154406810140769997736167064577842757012218931561957294617797496454632204445459698491784281001993826136553545208128099607762001312559926202171549747480227452396980689502567048078598310587778609719254817858739151181697433495838182466213920785851621622628398370005899226309513981311061953818878231712821104684600886759950177958653829929531848973778762450469817792124411987543430036875178797513638137616785447809436842788591970516677818558426336090795793368992623793490679181453575628770589699811010655420579448489768463014429080805062829522351370832701004180650791544661456827681655114994259716104960463372889420459839861623119674818672753142389413706054048786205760842542172167718872662520445506060373597260764819874957267262315621649391647932650217563933512229895194481664820609070492602916486901903990752257358162838133021697825947466241064494363484137624792223534333984675035397084172631008476973652621351832763089493359066480241340705212454110895072737130448024150629605336057039898278141698341800998424702480726440037475268814564617946096702647610110831492263034284416750434862771041562278009481153454791662849009921948871839875050214770325098761885876272391766806270891109296510687698971068390042440007060276616801985821917464216439938327838030175934965326065603197139150094684140433919062963485477208244125763060006414715408950761039966013320140213944520064344410946574457323375750381892270189919921220595829755743521810200759167886935128800192309227979317593549922164296957195103300370113835340602209336955580092989229253755632852600224689267237812198772535612286456229185740126001544156927178836216491762158312090514440840782706402562803641907892092363073246750849946118632489034037529332490180988768336512500868689913554950716974624734203494733182657825290274383407648646544566445509093477134021591174358570640681311263947762957450761603656900530059883626830023622187166713629924371324506258022711994313040466130431959119589153627029344298237076988709137797450431466134324051260981772176703479619953605288053102344973673773479231734631478298486811930466576448851529916544875192297969873274814342319977786804200816287371255562987557844607575223422956113844895014609099200017748762592237654517725254630885779002248765024412481357025362150933713112937768731913463553259954539616625756923621367301390911442181578994514363035950095170304598785322932730811681880560813933014453379871285269323238504842496379156095908228031638739115382637312182345350825135004572336695699402816246159882518496920540559498742492983650367732555597879824210729234060539062167113275546716956699031707605299257641714524033532394136660519313795229451989211264062122475829132943417027746002346995800368485585829035366798074672555111430974234721736905513468402833955391524650056866405049745184176545411697351381595458696165588930982907878052845853544395207392606531738547732930187762866896719418792859515496571950082259007796320643953605521163210119298917435018221767009753821577447386543299623758760718241272325742724701541990073165483875649227090811781794228298722553320072238800597792652690946240665913532816456910488907308326600479506558514919864789376004796116701435751843270277179719041126135363622226794959869979428506719978597042525123683915931062075728622591717293481187417001444246272547070086122086390256920377966004352342607486716933429579081179202971576064708160361168651198282063490036695534273695351566626024917355771267231064511243478538278372154419298732337526929593235126666495410216134025781310780736957964071348900228039789670972881613039518065782886634548721701682453489892986886165053544186873555568398593242430375868475635938018627265854184346103645080376515719605801909327790358240815093355708156754787370161155758036379247293389944570474084063900195788700481972819237626740526665961055314229299826928496849961676837733554238287587524183279834712038709046800464119987912900886053080627215419386108106275260703638628602455561333049318609144434794534999204272476497186075760887347814743313374000014321125326820842254923233908297569980041502060903850498916805537575948705765565915909712008031159223655727773946404089755101163220579659474444925431008436020920844631712661079112282832934053467065585524430267194751372720585339075944812466377580073622208254488238187238649116577215374943633804644149940109645724707478704887639056645335157840273394144419468288097633365444430436291045405928818732219205002384512272266314356903337379030858277154412849796630090867721459742584536478479328232675575875248082170709780216843607070601711098887091050621641371643773366816769375161294212028642534139418429673828456595643936905369836409307990996371609751472768481073939835472996150606063213531728969953252943812614984536838399040562214026382903160041897930821477411490364265381891407066493253206452884327133708040432287645182859653661126016210693871742791183337451183918133327979432049391644050676865613650714995911446228270205986157796595777739320194986469901963010596675422784345231291343040490467270871895112081418254420321149446451464812621805291149079826021755210714387002055512385392654609272176082821193123969216679113006469443883261819514475625542304609260382901631742420801003162021426790579425183725934999730116438683116588033298790361805001607246359859872707960447664737381579758660347700009144826775062268513411917348529925828292718145723817038188265270173657030770723796464943256834831063229956441729313593048904412184373310024708990720935489669409468796783771101743955872606569490754199350187818021826731463379750102551213673858030933237612334397329776452565110006124209961881102282065209231226305579433718914621342624467122456415160284074836565527781362024839699515879623952995647181017028898332352830246443059838845410920697048491974519023177728667473455538714206901693939704281242523234623612002121179065796603722025686681826604706578985742230959181593190854165129271670703445936943773784064758453404245714993919796382724059201038406454951799291624514607927179248729475883691408412341805213357071497344273534530326908849629611577286089910036435881120416013468618738359771514535023843333548056264105170182579570309681565797543316434721525462505570655266973157287249748053595803101350167708119446713059168529885507077221828108472369660977276617947301898177796290014425996749237365706242873593789209175538128750230425279733343562096337698977752866565951480380085301630875177360773578074742633363431447611670392410054504514642572525623166912291754251400144794430780762090561149195302677379508431243851964888801260927563282106997151900005569855009217909560220195082074140786299912749647219223236805286120674936363645623733866816957245333341948420086923475086690151792559211659707666027271190645579864352121763485839387224764446855374310228404029357727197466712510632097168123267538842256738261314236482844656824127271163965832308357146074823074497993570869445892418226307366013974852294665615078785893484379989238662787797759851279143866117230972805522734219672410486118798981236736745208989805333631472861432825715495792574754980377115848200767601769025409980200964905754795116206105275122783590856225148834380924893112612439812355109722286613172975200650991150855478380592841959376507138823760274427008832022673468838608594860654944367740304290834311087002110112484129005158970873253169523330400203639497691248940631166845332736029626218016214504442323423215119279876848272500054633013649527994409293531372906693068449986602560332499274495219930870438452792416411568952618497778032755318037610967911163738953582691844849220222864592794499769200585438608398751951872850617596384050061319793532526705905146012118018927600901387116841557029972052257301805779891457211006432290061779225077411481337867406128227128741604475752497148390915321170824607092700254925647616054777429766263124072993745902004929351331745869012940099516012953011730226246733057445534347037184174135811606304993564800504570820883463838659549882136670262439069947012650551626379755067480556849377265144318046747397232736663935580570480032704775868873128449843125660487903565853858609480932021924290408010758085396849287857506758347103987264459363076099350666487344601403107118147129277859589373841088496221792857851200747058880475986263340109369118692556842483082214253619610729656209762179130088210844594939634653476777310636868977320852284644019486207564819619882057825728787602040549789519403622580023752562071227657666428255476547578912113862325463234499825924914380617476030862076106026233918621883043472697647697597321762286403986581764102107276307450859997085737403226245014280606949773714680285425007468660313328500503639348121447632714796331931216202158243728647907556748485012429760900929539244132181394407674698051626386425791300169549704636249375423465400346609124019339309866309032079074187977445274681313175562393110085569212810190340915792637863824924129637986003209507023281927446619283328400571352322724965599204014838305116117877206378419105478252924292237729095074230151031873001537644728601256712457144413198948838686072702003529729161343860366170337528046601114860895175152782645454357903186156167353633867657163377261109037276973459856316856581530896398119144851089703148855596560799785447506307790974209886290699040331249554052665742196674098742293929741295257568218191982356258459276520881493089750432063399963938435421623310300194404641392794320633750056066952124423724342994003904962020038720503335640869868278768836544267757568523429036295076670166199037942710967360669012252205941895430939174483848965555101523925175282311526623694195152654534359835953714129741401220183965483394459656955460726862772670139224628182646876294727089891378024291372535495287149016550812241569189705856006326478831915563821519301525039242613671846027851147261301008870835589605198482006471783691454310485670203528641564862227570541768449327228718881118363099798807406431123685074376885759143792378455747073016912339599922492037842285498784068769554985447985177966051458237273791967070937824400319262074894415022406055844385450044918089251341704344185579231731536915734118828956117229303391548387131011828363974350525178675837804270119400347649357782506549346672969769188437568171638354188773086402888822364955794022787067782962621725972116192337742932746724571289250901734885244688391761222316350730843991124489303458068766519785909092099642055462410251834082846434807649352560404791431815621525439109285627101809404102124980418618049977336982056478325641366799871296357569607487090327659347007985930554932696148967211063360551125178088968832246546011261809073336343189688942411011160654637953536660295114302768054342576573799743013985259079673795615737603421211311258308007158839452703467288306053749813954122722009096809609087817209427487978251205486159304304054945343465045453785361689055429510226651239032967727439608134177028444402181749024769603814880686269244747550650083215595165443248476387490629910451495259461609024771555167759814137056313893975254124420144150701751808595674367980308170000134099978094226748113685534031282222548185892148150189706629125719079827657018267374276422848604543743996764322038588397467482561884558646377622612076054170511050428923235738205930692800594382354469308434518407956768639492567476468676011870069612551588443494316498754669585056565354211923177709109492191108500608712573240373691318841863098910683956819791517531178793213507775940074307631949071970419750071249125383597845984168166632930935139928769274073956798919495989005721565221959741142709457870063688427706046240145616082545412347035168637351533752548557534662871532301299866800313600380797851409336365631274379794979408788717694491272176646338427568233302990328970961600867093344274245703349668350635651899952613849408162183333092366850990049925357467814652462386708607096117214563825300567716799980199129546461674162870517151070665099024499786525976375090435281925455570637863284707930983800274425700695511724300325111146290722741004595273922381424114449682216782368104828928466622423934834871694920889842315802559225161794367876344184600927225025862162399721041791014730068821602365268535590643440945692687844528021580276333629810943483106502082608486958586055691654055350838159606000909285996854990146914745889818863221394196511353585681898714818415263382490458608644963170964148983576331449968236635506592775214255793178057360158623519886861930713523106536075540266963522315178120821138923109375577563113662702341484431092914630531188740159559334340637616849135493198886302910249662075033463274272660850956376804977097331372277377190591932403372992287196257845875799675109565160464586108508077112806729859716221103757219861349432487114798024982779988319032594318445378311041712782078337847876976667161129412481318685593489719358299594279468080655648318312971034744344518561732952295027951924155275489294086938218185834341856891527225765375941943194014047900514808931699410255557366573633160483935953810480055063652708967308420712539716366662594102961009397547347486936546017009729648662389852924096475244347140668955080990539970947818403667646584624389195476323315095282942613066991034375260461276816504175636794551325135209635780384649565357720845183740820187550073701587519957819706752844015441135924981162175566378656165129257178442582106062073379048827967955046071191338832880598273356598647284589474931077217850479048114362960726693425148382796839091577090834783620466700001427125885242230628396779838814296444440939193499978138621203987471224379432351786467798844148937147132155507903519978451576804556401286249359805394920296882612980696119674867736108186463072631735915997696093597940018035027052149125526258231283646411812539476304045783265052693902032184315679875986521133119099490408055516902201568703529557113806975356483861584635972871210838562060449828683872515123976723990717632128762150171243787142485882793365319465168216417070433080266570226738709639069231616336068524523586177172936483328529885842368796224292377289076909494353527121120985981426497676895784894939872813208334327083086337380880787860166356681001511154042082369646594843155332215554522204135008292429964209156553110583451644502825539396987952789051433590127907670546567528997561461894873706386375067494396644029973380232085142027212830262599328447566498273857371178284680703013964573989059558306900084962556877676108494274212039276793246255940452608361163798936474686608907771680257015315962339199619732225873007588910021696493739572911889030437609080283750940797474923751982413188985462830336827374319468161126122428520457976404448644930828491650993964987776746011674154633363244362196402790891691589002275216447800561147737176911405415864478286172610661438350618929909354013214440855872959270283232613372621128248184997482164551666367582681343661912904660854128722977072005278589856320764846527045053264207279968540832293945077695021865209737795697500342239255235222994801268228575185470654618301694195988433066037177214927704059543458140833653734730214432301731819712049230592521571328909252530140551419956774250398481772341868422315119401931429992576430409253230877676033840469669589016722201251952733551857157164728574652892424601842160339312287472786077463590939223901908701313721855854293068103619456971138071150003386978738274637514079284365842441127047852263559885574205259178829757076213422468467288480248648176178930216447218860901437196862021353694403334936312272574425665488977843238840140658815738344944622951492627698307876603722275101585810047105612355117565345182614030625907288382636811925733398320204353180180225133407401468865174880213513522326872945817678700003751881902507613479820142211181524344476208064640187184362107551057426782233652791023081308161368009504277954308931169800151700597892940613472070866100930014313665888250806043131656531855584464979415797489584921214317591877844965056424135322204131417838659948151348528834544101214028518752832094658150719333029782493670429780302192107450557474410439203114938507588785774332608284250729162985496431285016709798064118948422803238702811390948905218868733481025562707623979407436871372200920424610813278533309345475627698813920374100065444079249303130404677835570203836426514663493668362812329606959935052268379512987482618708285691702844191099605934647905150011464830435049368781418506251161047000546126932084401326370723444691008140768396031718418118200104152020847174578848366922519425313397059327057298743479126028608820041599148912930556205802601114026046517718235899240036593481748843800632469232779983923019800095640791622918328219572637764589674482736323571352690169675162093570932000374214703549307072290047277462611842654253183841804427837356396441969630289691826055552676447767852765763662429990281904854429152235888805438309063155158210601260417428825299054560295660034887915449698506820338272095316142865828756539697905151567895289148177921466534648352837037405185324115262179027067501076235809336541360227711227441952164016867615269779521026571330751182620456926023684912027238910367996924765572460624973488412271320045737004064632094564804732844295859189042491598120768047859814115263357836269435152861966841391133683582738288471170035122485674716336885858763936778589557701663716699462579670596974990850332342358199621260193160081798553868377965684358380211951731915710817346255087189882759883203886909341326110413809562885112292104080803664639295639227100091330206023592468908276666382975567236423378102668065802854636233072235236253064262591815554037831134228938781881242192113103821622083469995698530527324301163529492509181719538601646059063054312695649303776407166939990040297692268064731434174197001028862091493874690939185158590892439689950385227394766683828666594895432262066104800525554613855954088482991761675763391077804661413471306835304374448108584976030110364748805248476738369955116406112526825676576601640874734198133669872817696475592914363509587442742725039528648861806350911150003804662381124504368814454036229776200042546246303860142992262977533493959411256313897346287213043199701765464147477206417967237350979163348327413739841666116088887632727405735977081903149119630588437415943699106505073043321711518229970449617745434313592108950559632652549363409815142932421483440016848625669224028798723872365273963469621030212043588996565440886105022543036036384500056195802371871858086596083434618981068013542297488886625109193086712737422934987631837244485492815825992963109707307579921018686595890480930432737144426906449671699548077613967169941799678968111600741581523645447904981095885497911527643280678999819568781630292220652279870978113570133415107123172165444397992613429345021006647352843841407032215648417297988864454034934763480241946256296797046205443748810419722765458640939240583700258774197631641651795397017662151697660935314340804750803700564772423312729422485283896314943898914750605658202155595590267197943509809958697390124586859840312289323919895481421317571072020710354617765186941723908016397707992230919504893379818286260871024980485415132993164372818689605390934766376106881669100679609839923177103266983462834069367870923350784076315765430562665545426728537125878203348293313464873868113976894483908406489987552001411643837613945038114549248154729314732573131709562943418658023808664466278532921395605344505045142346531044194372211331443401366859131312650645508736559780642972800550117588657284385909024173497303955240822458267819105179633907216519343315950984688521743482374582097244065443516560922927407811467648783351578727327635074436097883162923626703494596226082887862519958843040653914351980961211542598794815568188830684074588392331123386053075171437354867833040805040390622623019698733218569239177345641499360831554846169424417950683706221193571936603698623826612295552834818359634002538500408114749644132785415928107995094954946622385929768138568589604399523694220292238431098697018921671779635362181691405180121889492836186516785244390458640944001212440976651432705367071495060954107027847763312888583741023725889435123367614587817771638638076958807195182414957031473794450609129007746486337120533219235735317592539462406826643844855088430073360444047493414237156817070568835211018636960278497926254833208065305977020525948157300042688265884911612318746098578857893848661561362949850639830799527219758021728752348228137271957057894524810399307209619684280088947725078909360931891605716990470874193577409660911656537189185108172254052038805941853756277351154416340743577977512421641184949642846924681502355380208667826859238786501939625349828952066966387081303854667181932465357781147170182191673281196911502298912822134762427576779183316696589578988208353834456431893326072756569718741578612025260738118188003598575590909729733439684951800908603552846946498384544819826180008601783983976247579685206804126928350519404635216195968133878750220351093198042853196371837021215007711713339926344124981967816003493766236749410573079793769510819611111180061776329646422993786477642719535464082914744331570486018117338196581954178939532680134451786120408504738016864747920764171638160357781144209584582895798361934594312566392354291716662296547181429126813396826288958724220393203618899927302142733188337207196572826414799824520198045129047954644898771747230607696551417998223189520850681802833607823830395773697285291209252957195998773172541545063795798737129930446722529762197559144287267706028165386058521491126167139629807643146826061589719947918075969731303683078998445294397294304257323861495214550603485289007216604447535657312281555072811757833456824575636109614096717300388714967323506636487713528540188168648054395329069781618893743518129683834507015437953555025201284047401735889894880612898464062484489437199049816163360696410677638236970702045102375882912235840718539905614707342853183524973709753356369328561488861805380818749892718980427025570875679885299217081522477383897693579612026020063323272951610691315826341670191306182805037348900523544832566115296300638557999615851741301538685098888724498840181255276804457267288997248131461375351096273894087248730082478549049228372512557307541141206716855195328670555586153166136479980506605999932552829572135615459959915031071480097838061069015197085578924507907823079992578620733586330114210069900543239312787736965074177493261555502584235158317785125426980993013109105605894961194775318164310381741740818675452262616524455264703530618731592660432629141383896960141859054123203054283233520323386938595550401626947275655628362645590603943724346981474141585812112566306048276325273448440309306837525328095182686311217090271967889460099947486787829033598407674342064264399212534461782944995606328573735571819776835697245913572865900570701818643137149616867539856419137110133984559271747071066665107232234906656613532665130600651877308105246580280635007944423832891275373427123130881350978483751905779158385387760375554388446706257602626366897511179013781055332366877309992254416264891982423487178712907417712504855836854412957975555966020581175563820623240700516456266027073130338731540441708651375322403598669602214499945036518573174085953514512639518864439238443336780700646074584367775099895147804757271014258815262532257117587369009029482902630139787909705078619454764248067677111309631665509670922012292106726941454540793476671492547488119666089760831301877403663602411903381048567583375101221220261482604683483555767347075144642834815897945052831923232290041615625020013191042889418954907879230321888134555839993308972708854364689868636720972679381480694918087798743641071007583029970898821252095239634869290086317785647852846738889232722250279062202218999194417491757718336578496741384841594736647043044928979546849353687105159138108061622344753025522390875646583503011476004246016582846602447933337661950933822922819639603116224991503415888066821972913118721924688360211867509877545883932365987079475057385485051105761189471296152411278089133517335208919242453915131456063967802822544246592910577533667187756415047598146792162879358514577940993724959962729120562189131428810163689512412646135341009230851079916398187966549743366624520771339106968520476127678295943099285140765313636169362579290709604543495759612254461131033814740777698865234722372620558320755663196276254875206319370140606992097717942878649437999583424505420877701268521078583525094640807363614184371365754989075412930058277004361664116731974384764461971392056010791114803571147572125598907968915566443832818002234264704697717971912976192741511015496584919958361380648281404194069973503834951433449728439450610981897758953170692808296992050713317863533445804057782097748114477970051157023793396945275113053721352235499496025693753006359188658086377559221581509634358983480166486107050044104399429693115241484900599694687729647409130292283731747307855735964532895906593181903742304285119187925862279552965795841382395006679926848259400566287161974498890794670288690864413532393026495132170165018835773212394518107099698366822836146544631298267570749885648647764312735367679639898406128473447229271844663679726064626630372940416847212264992540269127710286666953136418951672691455091010191081780294801072552242478003175857613552565682594888281739997821853287482261625295278003247769875395224945346361628882783349936396834679453959016143341911341705090257238449322854890063341984116206952792048186977827801115015019676191455007459383431001156383842149166161885228032340162859149773924821265067309439433364590810904578110558079169030672864134075531060758116295003457650241325620615967850972154895793527252265102028465619428839083118889185240064316422281237312116872254736331620345475402503882658416294990065914494734550457226092743307467529633302156122992007936428216781406878959201316273888383250260528559354667983859801707823221058352340605923682036250360968312492711760496264703027310968972938481151403843358726223271437133938973861313479017496286179617832718982930928738719184223286227109815320505556342114301879924720051496471157775393541053230730855740467319065223821712369532879342343087154463768501457069507053001059628457270746931026003670641102911748871608726138675747948734825970032542056925821126253705236269230380240794426412084300140046671088754978256837017006317811046032556073256114868969080149934193625365044255514281379990381211772788587561052024845327142461524152385616422012969957401364958646500699615804824876258170855447149421501097856496397514768858201436378089658460980606321033154876758376331270886910461517996245320934803766298483093678455018730684952070002671418485192174196709254186793353723774041584745814451860933703643776891946096552950113370813600933031084057579240389311688976158142236901125506125503052652281303992523640995676947917132934324677127521794892041775531908524114508925121672454643375524333404787351257038087615847748607256247641603170198666516978769499255289357466855308535004823409900767077071318840268155978947763779257923571143472399338550240962471768565564121062456145515683760725286717776063324585777635228358283300541514101387867490324710351134154354869103656436047700786272084214465509327400726338216096580097356307269122218633564235346827887805063741137184259910602795769547652191117857419048123920832496449528275443266282165852369579904339267854795665840544108337716359115564593083475193355118025567613492558582015327634215660794332960597058520153903822340210514269251752144296918133928373662828406131730739001926876277482993630214826898424472707740874815904578755410326555887242322200085012292767437030831921795684345247475491827631461449484090500555576216683007212706271345825810166271534921316257953996775640710871104374103444422117651842834643050463053655608656214050878020588775008331114149755889882020771554633059745389132347447725507383069807291379758987996072905179971790350489178922895969258259200151110406864365797644082552042130559683751169808632667336429428975894020352217549199463116384450925199465578650010161853237810756409048739861294963742245711269962752689360812361704513899061408025671337072740594057382002604711265531519681954421302028188674956845045135995497261244809131691377392249158918462487260978028787253306377598264277096857301145438663468156541272039527635015451636665197771290844988704982540737795920908834319629373610154571199930361164790066021090889821746926180278931607103300782786382739766602261178195468180188930833192839174465986617148151428434900134438427367443420073028132647127707939071237489832540512494580125710595610813984750265457990755249364088224708192576557050745601628290609412029477528847427919975974667168015355753847319453516179673495637494783509773235280586334859508199237608574201360058172024058558303746326553875325376282163067279408610083341969036201766995664626328923778163195860546882264940133471121277311235982481923115018869030227324937073386900254519264450348514804844550704180717148750761645981963609228245161652985505394707542278200021439651884326004677770202739647950987330994999033107719936638110161414586806269722339129036321116509947485601269130260836630077431635662381337397325243625701370683844675507358735934513045651149119055118958917387630697701985373966661181313494278083148104094437019328427330736463500161739093685669032606481405893161051878925497391451123479212146990031170068446936567702454688580498008137960218464406795769040481994968182973493836398989922464033198627155708655496019496493831601298032980971621815648895081310188785976967357345901220242517144510346340600333412255357417488951620115742121928153658936261066520981066037638220491458573518805939041626665576528524091088355009790859857267272122464529844951883766388372972710989433642233317425662291449789788916730027556856018987414447699723513943610548248596980177971236224664113708068468955959065081097556408990792342258164005333569046014892233754681659699088657448015498984232591795994456439966864585585216088023904525325957981404753091301417418703101293972556937591510843741011322577344080149292270975355966557374215112701564739531036883515019244328042081910333459012197225847056591526912859851626137721015234789898522035933617337393041508363554699640260225106424151559328955668842315501373466165369819199996819117881774699553563551806573855730269503093453937204928859386204414403361158218941807205038422499805338025700111396982542679324447496976295421385270387190011633648722504626572149864908502304310300680664234875929100886905342864001459797547390567648954909523204448501524620535240519169431388961770662668930732203247609261902519562001782361140922104248212240911274065833838527209466248851383713250558626401296328188071284235760874083075476733950539669798327923942173982019732296440406076086939720022209296059156469622858216403881466499888695279255466360144634827965679915271530437650071481092917953301765068494801675520990408942534597437653723661818741883734956998447212522234823586652397640442531460005255299387867320519982510826135618980454108650696185276590120999750568257908849440873656835656546164554081752594845228735110372767168284651625027620699683282349261521778304741160845234378969626221309029439162844187563438154345041122400118316548159639217776047587678841122458840242763385459983749607067319264620489748306239718981099652531094968067754722623887248431606949751200066570872551844037894583109783565782392031671628042354287292183427961577949180782991221511703562349547502505720614039808335893688336429389980078754067609019264473202509315770663769057881630226262895479064786216622656867670594173899396877377504519827535925898598506020976812097026644643054302907434284652777774282735254690717070523030408679715706883976099042890415695701998674740394966594230250585109107247687262123725399990522513138918892776813247193060505996893940408019646192226785702062861465310901763537464286804283976274979828240044005901738136963317219929862356226460894148343659747570705693873789462900975001120852215222799132051866512991567496341020804671152642406732186539550833236074249765938520133980915280559322481161868713694034977433676700744873804344195751743232570593190149337672746718078826166922792119702227730656544262275353199490646844182647122135467244666850975658537342795721961276277783569081522507679508648640686377250621882048698049670234801580183270957756345396418075938115888119168052639573422416974446390139571654399122164521909963743475288703156256382822125577160132954210768644245894604742262244443168142450594306480721849458196680269797242315954154638971376214896994942583667183678645834105634128901159558426477644444190221406230055558467657759383175115908804288682871059961204097062199042276245779088542482441594079024091265482692298606098343341718390469043135946383093772616386154075470723447378887752041555069249329766861198235899239643254219430001168066839902645735549712501594099660091253106005099711013733386615742479256532641507413455738502747685198638284731431296530511067049777260957726354952779827325823293310267424712920873685876101327704936723848511282220713348071322141595137760791876675230717849322734699465729372098638857658305595806602266453335735155922937432603642868215743149751237096018786822628677631579244692622233462569909372786509808043300009037596403331057782382818456507838007638168275811079942075010517315110723641564951943442517410736581256967675614694368882190362326817842387584649623950125224992937467854528808412815597490223162301195267831163415809765301250420015490308630996782403258451956435217655589593472641454085611093853336902529676730592745015330837348482363060818326101009600825627536039293071336883112779471602372853565578548253716443674883320707583143498263385601578299459519381964152282768481033554049628972344204866074492899252050284719485753722843194332511989972590080845867678825921654667904246592717253877471197598483363769489761937358615595149604955776834308105079576915796318688141219437842828858922836335477639524414562791431929012127889681451446649891714855197865322402875594103399252610914019429363693264233827316434392286629797481269473404922095401675761117813553029376504464079848690851451594363358335614098930061633423872237847845083924943381043701642257380826566707023966178942306055515624175272009416773386896050902885440849410787993911182508591164335858865431792296370416226719044911113368029229233606173012002260462210930913235717352756858408756524702592151214607439688196470861508180244781244679002709984421501908066714558817672906048942746763973625464595110346484666580929599270460751753903532935310004045017825605045267674486472357483622966390494909274300109792326861186282654844419743091689855585490868257011940545346383862028235210131896402176527528246104593038130441989623214318093386192699633310974918154331104902858763628341211594055414670026716978621107361737477103073551576959013810711632038633656751629915617744798346297306739940457549901530481507049905997396146006120874987471708116843395091233133809769621006207554717227095007039239510171364095206700721566221083622010910347292579010611982097948322928541871141293466835969886340019271353549816595940008409642759149543735179778222590785911943313616518859687862582122141956427151956810246738069437717774803032435653314435395099876138383633073149787751617248802024012749060948594277173956861096346607596969818121401094209433425000238677018325523415564838297747465303315609830350742002576969130241122305081630542184230052149527199739564967803070928710394587262620557998601611815227904903039929738347907757968290653511059648897593856450086433654820121945366040844575306851672425547883155346545878361857960618273653375042912503696957395874000587318106498670677521164968461176505827115921510579472061622106333584200283727357081254352828340827672070766464971160108521270551695639683058031476886740917296699124431000270669235599119569498416197108775715153451646395850005113498522574244518251685618386845117626637463282348869017137601060219400589219098856548229383636413030124963733353394917389103250425731513601802097626583882893401123044837658017414177258330035193345682621696767820472204535803455769184228731667087566716261691842861902750727766955211252034956316674733945907535862360962605746348688489911004108298638313255881019288560312638163292283810349957753254781455623002533059074015491099352535768555727830402154993532523805956630982180193765423629828335945261582847818315863340700829014724383826088075550644808937849117641156716331190810090188730249510902804788592989540812395307819314894573148752684811381765177903716280122869271013282377692154516885348027505268552176701438303475244418366213178126447177642916179190858779011868885755402906101172079949381618415485810534224326752205426011441780599681155483731697546280485614498381714032855837381280335850247216361982625360713302623401217594783903222636887434801168467959251487069229948171847727452438734091427277669669921030706810684638765423090434323330852732877735162841635352295868762185705666077204011827434887414346051148676658687343346102706511409172057124567736429531809334182467691006473338131886050703404271582854187787636687870738725359044562108362753513259726300512742365098562514909013836062898199489010772051664142923908926259675870607414322282468093567740643652264090379670752842229772710830038639569686609653555853618650367590063671165037935227716513434744654897804422917400201440735874563192486186012587776909190206449304944419446621187356591101060113202760606550163079158795465869722781099715504835012812056539072062499173698118268017942183610040633595220515555681454078437535686163159090986158909507263023713639252140978688303647786839542118930947053706683781636754844131577402071237525090791869021998729301545500955346240341653298212260080323262323606174693692006489708366956765062393935443913582374252515603641433935865855873029360179072671815624307610252929888796233340988780426269371736775617647804475372347663682924521542718463684925711690377820150851341191631660322474055639309856642059443541830871375252534066842334397470013846493362276361039436915001331810666571778858948109735249722574941413509542713487877372188262670988911275202975129599988930426442259324509963473742816097985469980203455642214543752188653829439423836551922288797799971172630251192609002488040150671780874324407966070212011453945991622062396506875525843752244092055225206317439775394179913424135655996969171246352151349705343275038266693730590389729291854593520935607421658629081307289492040680376387280199192948152263977312113918256324214377863078108269015355334794304153681383151725373540901525859948170211430389962021960856221623943576672199819035089267820460791590789641175447727805681766920242801736399008592589948242504657726993102634672398330567194284556092967751918153604030305986073051762693563270576773190662337436921054868447965898653683768225134726838265214980689529372146721194217864295068190559485884118754345474883250913294027285327939226068449327409657656847143060962155283315939441298498292614223021927533494238820478253567770077379587600267180167045646436538916002743137184009318445783122041354966094703190848508059389166571178449331184388347510349060041369133029312947009889101283977748864038504365875383091019710822921404138746519718485761057192821524357503038101870780224327066875217874720472974779999930527364908207346696130448324271852308038734435600634712369552931086727791684393286766626234756687299284555943076400096541416751072908129246200135730681703152794000316371311705773797426264846349659568278000918404547278455405592819413646001946160520796920388015121411596020002045025669424980476363451135402649061196423533959164909046809004712772013820966113305451947529767035212831909400225029076133162411711176625623628291500905555938062210793748678600238033635100923101280501797605472650005847860370878661409913369710446134600677732492706004413260192216543033853090677155241792158412212119344024207603499891009777526058997316654966661556635784722680215086409671122949818857341602434746646138325962597898744891089802616533419513286870601589041954260728466923845787882684084970487723456678463824017743899675522625733854792421871351919210422321112098243590164968296650627399400100501349614523060734149163196625356726638780442185033513484639057743405278206648187381006439464851780736147778091573420733531272296478553884336554212796068137157343640245666565333507367063259076993598094538565998388035838046166316787923778232997666952731297320577434834651196224671365123480894275205412931695655102669278815560466305105879803532729979525136845680920548575609602618124389193517060395383439620491753603856796144707159327504878232657209930225966822091165623579888627008896915757294617307401503291094270805555028593050428335744273090266602679282977365671446722843338458128329453223894002273525100329710122693687292584238478052546614420946907741014596183140386023542866120703007624908750236897645618778157298489555218107355745076672369466041833951505183816977977512247991025892003933347264808498041538239019612356750592795020759376239880933289824326412503185675498721860526065533030222491380175061191625482521422434036651058729395467791202690253352246495531346051091313725868769000288264288055944983500186088092507440462856567704778336107388191298894473013525054459396881228237980408234279690430944840666335854671363377589375960905651698715426631790233305442011307518998981061432445710037314943075610269952032929017724926264697662063623628275378130836845307262344563036208235497624829819484165339361029855227260507470772995031156153710963964750908112693617340454818732895807469960202322349196278667197590174602780370252554856322832274844314466745986217799679240350879670773473888288645290283997086660640418103028417831332177818007088467313674375227608674934709421110001201802561557819033868007249094127491868557002095834105738781419729736354936647522170054576533657444808778201024309516533425249839613438668157850803527774710375068242686618382887290346662560899554684787716318397444123012096309103441293408570213163516316103208303341296345563847139046522249289856581772283494710844725152019676961830042632638614091668513300277503908011207472733299628503563046925907597138902957280548324881718542345235558242010297115734916265941835489677364158387300219738127532466905634128719931093915732218521076145850962379413982002962658627707820647942974387311665563476433850651544160136633908714120677087015919509036297044652059882519592014529305681282416273435231282307992710455632603372164427356972505407935254476691452987769322708675974102943789911854326574276854910109480351545050343898105729603374334229856584326686509840624867839859323451252608581955201927118626633281949905255878968291254763093903794308163791897541104157844507918180651609753231860430349691158488549193430343164398530835819905329686267577465138608319903356988166726802214644407410836583950055483804050195413481165872988682380893794542260366267529202669284771508359681949857440251934641465221758734082495002410762938798457804854926352475977771266585977453507959229610042210081735881377001440082770143248599838948978539133118398945327893553048386594965519840705626657187100073128917422320314753810300249228881899288981491624345675762618913147889577757281979059617345319473203226233473842085454021788845136652559834766600417469883749723457737090236665616724094342739679548781005577758281730321055881534414498751915897401929640752455628135909018451115359140951058050857407400575910682531103478064487455329939615976877861065129297667982815421463483342970238421812028505087502713447762621301693490113018997210018341320707647118459662529961132747151507546568370561733566101447135398252926370642165392920773813862091587002155812262024226539752867697504113094205192664903983488270407977623082556920913236111178628278481765864250956925924912955116778207603461810041972812047844602533060451552483702475810350532058746740415905403764358849139808062082977614112655760247769758346754440548470805226433008300729110759308608834629617505322025357310778607802575383958289126895148831862608845343018491711588966205198211603218047694669603756078605763012879899265801580327074648444326694783973254342146666515212612285770557373114637797063151063541793335491243508403177230715216632581973393226298931653106778254249061133361329946738518147041228649298364621237791871118414891809088644048465180388041623495032379250519908867611215828648715660003817052039439001799782370421833333595004324384260668260819978447832209243776697651053877836060276470460418295226264627720949461253229340091446390286110584883919801532933392458292777830302756592933326670973544729792979107436595168965537483959022952931914823210438759155068257631223383573617927810948828239964734711640351428416220324392654385020899799967872263142723241338201727277433305815724325923962373547432078991252450648686093199976123261551107635301372568446238999775281569304006802529560941336412192896367834230941890085089190899624732293927334978329244979040414875747225462363109936148641661437046498506514173126464409672235787947353057138687739278033307445104845538164094297548161972933685025604706625546065646877833828213784073042115733779851646609421562694319893274880581790459712136600445159557331426737684871225618586111285024916976807032373435974863016733443640574369942513466988247776487824745340187607579011297507695207923609775696813078677510143585781520945076241296464069287860616984244786942340577443506188683849720149049760199051130980179219517648117082852244914032308650374611816459875332423838941942063159494085197070387207771951986985380399281777513968669422433168029018703770148326233503499939105741789979563521838734282979305615719939730727481320469962740467515977070972936357657839352122604506601000464668468584468744497856276144703974890191491695250778805961771832528986894649051427430765038888941131118731209087338729988236982464531803168423351387537827658690658534867054369786785940690452613390047076740268402392780423282072073176381146909700546518053158502365619016332574157771075926090414245584691862719929894002963259979430900392027777719647051346956442894224908589505081150129118753831066876278962755009065806844302553035764574781387340893473531291105593732841181564803028329514167742577290036588852473616486393293787453922910502835162094311524056746662523442555676783576196631803676275767831028904575750071043641934230353330634025918147491805817813854839832062951384258619588319050647150766340677395980471959586625338394707288205249631869705101219059356196731946244344920004952334102948755816041917352851766108929057172326332158825247759216549659618266092652633597925066735183732453077674044742557441083167875546039309354178706887956239991737279318705278730980821536032204015745035524499925874682126139662652978064923301431369562879483434800021965423355121050916987493415480034924372824777819536905273342691880735663207454781139096489243059849116675024968587083142286926002829327353149807067725111413723729177470768809082083416486356059228419665398376575120173288287829921729686018659532134045866228725109875545662298748570231403577584756981625680131209705103807515020328821718594364949511240751287165360908532591883762235508440234966107250738847290241120075777932208349623127543831749454452710462142474979680388738543560380467029123226194439937787668213080216800062906059214272798969046007541431276033357675495688751893355585865722762882888568088501447618701642516573683069222742199998591938896077960947127895363376578234521343219837028191977087487475892215933696079662328135371097584781059243253984054631638996255416213974579638191711921384859773946722757423893895798564504862484240196684212924634215643405035769187027588436910771303065795705059333088262883150073748810229313515129778737734738499988403851154032834817705198132575870157001705757901851073131844422505935606458304118916930379665825045503186003572859325038394555331506399158747480207770375603303969140847389327667075026810894968661488528354199877234549469771152447821775857834733339073109075936876235508149047140911152356344813090679347605273185230652188677801347237630276108045856739690406658206931202090369553068490441793198697807924812124907168931679785279704459440943919567922788875070370344071696765410337364646681250576985045055152916782688316454623084060906105761568441226037038395557798914284682441841421874452462768378550649842383250194939894579342296661458907450515167873427675467281198853548027782133252169363239988322966700210574437215973679285854419281502166788589465417258738844844195375380240718162651033996650650662714493867385074512991561010768338413937764577719765750603448078641008118365409390708360193100930123572249797476826071593382275072714868544518050928227343479941982774689628396015754531365550942448369308287914235400301478630290903500603593045876810114498287960733089708733964240170419899619948869510960213993400395571063471963430608767624101991207732370856888361467559466326380508994827604897559878807252303798858832561728585549295275647257861679330692572109148005239181380434448834301357022041361735669308375072688171497547029906008760130970542874380650332789399035798446445274448300198710701493044506747425347194254114113370565350334987758294948904440358402419871626560857194181346325180015438414280410804815181498934397607316188542127837009498124083252680467918286379615403236598642484460605018958585757960584457401081133359794509790889039014247236094234620057204702028359509608927020473345417226143601226526542672204006847738326090675839295511111341541869942143961616584230209483221243699935666201706443824825677031730771242107337521959686063352617496057736345851447976064191489864403788904659144148954159168467963863801248205646886233417457256303714618505950390433021385150644244593680095654645494091168434069575601754300235244114640469680043402762768743417283795153428570118279295038363129468068971716087630601977333920034165393582900448306753751721775048937424376734024009995063643237489976019651068642283138248521750805519556360621162485603889254210154403499836033905554899443751907214161705750302479731316855814807574865347796870187276364937810062398661124037546066739616716290858972389502324460171222701977262165913867167134578571254212756190375056294187438733332351397412358436533949248113265672699489652354912086528783784110292237114996913814230036461156074174737617494956684873531215933266199195078691530451586764304698513468796223394857803099857649471736337583683861588760488884407157639645292773082624460684033519265265437821863744195122606940244080256423776039043018739252657850818449872961608895107233085074145891869747118155835492524585587402739563346211096720128467922470670783734215354564581601568205768457011703615483184962917019199817602521106929482412054211622376644679060145850441422237786088686264029425553739329689405002195334468095539544873811686391138437876625016469513214002524485834964061031904410019687954587571027505890649202012389914386785758677940627187439185430838426085634281063749859757736952525994249398549596958390105645785932422995535525380755777941168321247133580384825064088072863109245116865822605635702485076147767603667624717159314432350575969818358415412508728479070321289718135129792415063653865704377871867200924764884819668104340557512105758578476865517576993835864717823817587225804022938193833975068792388149246167514879655046032474061186969562655711703921575490537113168907160157968300433115306862570646846513519682346372815990535222456224908844835605282003137918553326937248963753684898979930237448346795243025937931691917295387840548241086623121945202598453784957348878187686813001819063109474340333959222203691627476936956419165217233071481850202750624684096864627112383301162740059473800876792263701355386504652825872300890952134980128583029105031088684280082458280267512438137160779352820476270135949412566324263408664497880552481008040240544289167920554803090587012977228388558743696416770959889282178183962059639162902083135778786026400472508873745786906406328583456099322735577510298304451329507412323151149450862201808900701968307543094759022573654433759546786824581297030225862407833260038402389190257887395987940464228975054082448343709756318440051250690726060330330123301305544626922939833458925153756624507310585083882483567194131890358983112393598304532644583249022908265631768815198169914732626466381384645467469313973777852196260169428813845505992364059027878120965114894858488349438871803739506795105534797816919986799101917929801703716640699340744538580497527442103876547339820584210372197166374054376271810248361401503560673653349401011172066311159076349967738698116657265038362943477498595342421583841064706199040562342219291073489684298027854692325528303088195016914377419479280654880482398660394233269362908111067695157092411906002428746481385336446572006854236416405496096527554572945070218977671866118997522434551684329646232947941854846289433954430047689566362095522699109928891571824377505662536218784293271577470894610397320676071623318876212046439296581820566058367168951480758983971904411035605601785838989897713458990501059046617896040521191258129134358741281989535881725307218901218498304454205665924211085762657661956654993618564028951819290132582848677243714560849786976195572734039277340314172573692600994131294622124537537782654955358640935933175248881950657499221230570627013029212116014232146146404642315345975301651794535157841593531567809434549183022662861130620618670833910572782483810584412674012309600411253962110937157356846542222833317086820220642991778729990936972259646232122785638071478689608181139737089853743150376354555942777430633081142052377850664660820963293543434107298315777600283478100813786053684992284879833439021855133147362929866583108827407442621753968177057601118578350167695357795346845690526268208524011714791986084731246157040079434139931776176413547002021427781936317781008410496626093408172119015099897303126383467055320627558630517716410019785428007360771057121416433410905522290880689744872745623196181110490950599514829254151425467094247987357156981389769890171877121290769698592030614232455718859904023621982733294931955806403400997806636299415614031777219373134770111449721936801815263913997622239650135983133582539368450330390063082700583957697531848304822931491640175636824361697069428191290909471253878410830465941003652631037203808295099907529412672110261022700973827946093542719493145084168759406165922501023992731918642545033745746982247699972376070932882672203622683680108955810903101904683540355558944848185720004685192426592952707856382091195831353257818122104898703837758128898667460962233190919801457545862196499910169279216137985878674158161459218208912381471652867529311902991111199759555410339332474829594024486798680046671757168801938796437134694298723894464001098704167791155242754249928857949470075190038552407024911868807290432893489053297078691950102004418847679692812212594298952848107706617565883189800975143697783158493873132854714359812481029626249490176503903772892219376277154833538398064238919194847361027203534572536969753029609342592270454453030176735450850656933302523857120121619238232648456666055917750940221552326572990974352836155653116181599434297999216201541019737918024505588503036883996847586879567007173062623437118180386119919886771737491462396156388062423026129375906325557159111275797609963229581257378064469229831520968245990632339751689484675662474207321026343484205969287310338461730032657570386397639733760493547276661768995583100052924988007255781886035149122550771172953725257681640511156855323389801781061284313479487032464703194038015405917753412234629988160845887776231011127539993838239151591512979570817806810050361600954909415476339378335870526705497257325719164341446767513609064814323492087472688420833344572526547131882822404011047510004806928542957345650986080447685078900188110022960949875632396343162088585226711660317114819736028604334959564597354772926142035864939357267519734274465730798051019134765718149233106917555465547051956555199908720617018319279102740849088257290311258409944748700832681352081730751086272739011338521323355648994254743944671287075028171898863419500844317957594731986202117337868434959009410885013610362033740614004406903511600950304491390339310580568794460972958784543617469866943361391042787517119414730816818070779010124411226946777080212661698982688507891048628368673539752870184828543519175203682491668146356311368717453248800569715468287246000548350814467757187280532614572441638553983975937205673171372461078005377521033345751783330712747377414066297356099471042962594585697507605277564966955373836126123324370493397710303300859338407501830013978571714490689111985656871429602646024779681824839840239074632052618267492510848487311462772336136718231474906067156622284320270859525803273823285770031067888783127388134349117987803967766727675695091955866623205417519209826148552825897037131730751020859902812472664884583134828114249700905875417171459267847839019427882649915730899448063612651012662017534892807911230649996162597699871341019345810443533171159948894028709230121497571377268192827809691116582693635143359398055315863227865711959972865602811601983809076506584985266239677246502727272250998825980405421425466172941258263343513636339905998002228179008162235590597773233015693830719037442444297188249150530459886693871206470917114090107358155992922630620698252542300828697671797823298644066623233176168975315495422360273215341444603771541308972316848954345954135788786866692561764132924425793525699153597225651325787992957848149648600240413553908293178149420119787139117409685180389812719143412312864708492464295084491640057672672866185448567897948183711158705936586909758685520273473048988505366803179300646334719698002195720378505366625523211038661918932675068726007975205421868875095250024150538402400109196539587227216903521073177587018578652822040214246191592039428945952770845495102834556460312076505341041145653064204757792981335376297116118447342386728063761317181989225651335644705682405244095069207108596397185049243147574761685967408000633408816826383630699685557718420505627709018220518400910571805987994216204423281628805049296571866940045545730481919503989141019430343640151702675941787891835548474153946680603533002958495144631950928823670094760985828738601509854260798570145499557853062334353218822262488352779992022708161268320285820956004477053719200714712695337620870491786312804247304656157986753995714848586298116828050846488334190239058437955502847893113620584650501325223037000204845928004893844850363357281966687413048683691318587971230970355659594575733934224399885029862352713470583863847256716496827078935803232290881347439560185284690121408141932619147088151266384947204633206717292357930834887032878845472218357881906793143336838520136252892396313840504926392440312085753322674166574192766340835090073191911452996081150360171375392780533768016584360143535295074435088736063366790417375033285114761475456502891318613458197257715015606979912325332723971250362276780140057062160798922260592190830439768863677098659615814734734390232730935443578065996852965492411384280846783544213139412259764954876419845646811642142558853052556714674237907298221228117582829649915944631704855416162612028426999141286755030153816034095262268890591144257431514770789762179936482194133227029661442558694245047163977073327037790137348702190178840096719234971815938043258399688279188647516065150185755659544241605236505158405167190157030830014318054584143007743462021093915946141281073547729830347564789808380705456238074864821589496417835655611538474838873615418227642487408802155845357202682038591569354286714275421845783847620688119898327434830264449578367566219705153707164948625576063959899755662720565046533610125111074389482250950185413232288898558880625060967495308660849710876411821483185103390206548416508901592060861346777071789316231928801290223961000890717157234949255260181744680725929617528760000733865772701630191417743752739855480463381724929630441843634179735691215221735971029918461890446388130479667885023955512708356011319146088739364866698577891298043876306256794628123337350304369548496607911736492585898876223788943598268147439022675127048471444764302155811707634261902374224446135420102795921331381705594421196404371883777073960165727274385353107420134581787577943321703265688710574599411530327676465007270125179913819768499055281999859309615956907743928964582523560875430098121218217469677688900318123797076259640398850091072514120810097440693844044695041027640139882777229541019086158328493321692261441737871630921814939919841594723836655768559736116466062741356642396785759184767699762714355988399724076292705949959925254385450752014579338560100740875893238797426627072238764224539469778767948316171475518523713254255691247667754344979055463409175423372991507275694812134929235910982828846420855303974262977141727324655793128083510186047869949404378627177776784253957573190675842034403645794836739993126130622171108150044286393296632604575475134432636956918475597800708922144872826219591241893252958985835927636014048767020385295877118617858504815838438322362990881160269675358287147212917937369795714849062518161583947977989719913936053418000345533601213232990354388725626415684864600535009854774146792605263893412958145882201514867412594270334379917082864807700051386196423087634637199235200034851788740510443114518161214051145545798707736966820715125443834619283975028609445717556912441072471619055531580315546934843201713681610965365696905063441907963410381079359601632212298964130521749899333068960585039112924275600064499518873906286886529576439032653539258518721147463958487987210766501472392936749142389935416458249156811372683324052877434947222126108855077305859535222913718972960833960990917409128594275530628786468430077440662315508233726248051721526748238766239546518168981735664313850195324221637975817556313635529024686073758499899353151498394791537176017183892076641314730905364764317836514749647120371930826566714102220030647638378552606002007505690819379958069381115152257822585712517093973753033614223427283486674010173994984051264390409898433514224013585145488478000182208594586362608388734261611669246192478435928853749466236056784514115483933360576091624400708095496316408005540718409006242844286069683606338754543503875546317972625326509219356943962570501585961709796083885192407340157031589038824248754980914476805196935512208010332401449101302319148677890405486812723692535791546076222840356024307343320340964758484002341823939593658502811136400675947269470896167886482457314855667145738658782200008222843202391399625894666961064151471368980955576440463320359345039631830721927757319016700194393408574907067548323211308669230902971959598011526960260284945197824671055857861760727786803171796690807553780350395402641179143099636213369247759490728897014169722368470245549947174912259066860519872457214924057799489015491447879480194584935325392564050968827329847224398443033652111058423764781908597085936209621082631240551804856674274181022961078310536474497655281420845026977426210561860665879945930045566554677527503805587064918739297006784838114814925833147953890595288379652603896047320107818298942285441497121704202806854994741400180143971642191612527920891159096146291124036820328350110109281876584986601401258476168623273988768611498712128564827385225748774428084196829599220876743253609530134217360069092279151451484855885897049519854156919992592659190665136912000951736298969535353264317513557401911853374602370708032415909723169405317033370536216397211781380303483010267073403535673872208401094610444224602888626142375868190446238981857502801605724769666968558798036080000265795909746513973634631675471091729347365196096274969751470445651396146587222205139918828754918809184995369155423885583688834124015377626175332273934570534150944336077981081638252551602779427455639566181590756526757694558730751267832823678104487847646530785068424711280098623681654822764088255654621059003685457092975143910391517767917272616583090127495915706861968776835664508365600922256533034209450621672085698927575206113972331416697810824055792246977311348037854420500164255885628552780913907060155767009068175385606856263942308268914126813638504475934512599948810632715288841553897504609221844285133929838107200340884027468683609856282627588219241393563487091303976844941185306521497107178442605414343015370607534185841496011886368001182672601352274082288975940183759744589877445980810470924296992059587680169842729227646628901588533319577171676063488126119451041880765547816210101063299754859702268312997229183592514579024571549882231734828840223615244625788075017237917849044358566852807165877356768945563454442102468090636425880248347388209996152772064846633748968764112483917718412524839100086805944143415395528637467018355272988699692809850177209899965145876497555743237876216172417588168087820978853656366626400102427127480813391542384689118994856638452992516908514119893770649350879119739759793036496312907988541602323742375383305871769862288237635199618355651922311172373023683754978186014868614663504375425028641677403707495372934270256749819617132182504727004213007345556287970585546807099487753497509015861407728597952912631716152970499754154510372959124226926679390005394912552196570331791054837837220640259442575889868834837980199853495917298569135995394312625606191672622000210513207048366940577084218333909152015318296929936613609318822710869909236424659290648752929221676787477094848557200408137898550053617641827180621719028173853269073744359788826411233298520446610076348895616704342431238752178749127710874895401265173028913139605723053661179554654538482331215595000791759971721586199900684809339110271639171841800880600514257831636215192660558003105121912832982294817483509894361374582688465704262637919315488346096788873281994931068283548729033058067172398323073338885974327670109740001269578322574698167942711099041891078439318221014945309395055322426672480313096054231123355331758308482889263599288323511266163129551974612081653103733405437893986778923976046089096523230533148917794592848069150088305215063113536087647091341297492686146753147627173038140670049884054922419909666437700719016057895782637997136620249693685513655267345300431648446080535640016410670408182747756865902102698419242415754673042316622378199849859035475942691126879627438758220923692599010790860980287666954167414747381578061267648910302644937515960368619464382006283555577459219508269444301849924475513041854532564890566505606723354523752774080306002166426148345762239328635484108273400340795325661038710735364867541830514327859419349368757198934935057708504354520703638177582115034766751759613677495821214890276336863780600735486062724711641945533437529756306766734151019641975301537582208177392564168311408772144437861472940379577837942209396551615001573287881242165766820697168458226954232504370352666347284490679231172402733701620790481517918514516766369174274001655359217211791101124904403613573756023399994541133676732675997468278024507207666649452888283431155063424889378777493675159213296094007638027483292895148264619037720468462839255991754688550093045039096184787035124256633605988414398498145057024571636366979857432957618435854244515709384746730058903368406303166772001247801675516994961745688517081819427514967585381476453103484924121109090991994229532191305055788359812190378150379270332079655366743101523195914519299984411477671696672932774098936378946954390249265439396211604550535330504420041005909677697889120875916783911755944802610033981781297429142452169004253557130601020209818859152753287197165163761639813197452700887349717051454102291322545283685282571338192138798040622339373329145401589319607057549541989943024098002226725719663741043692960111053829933948083924781598452210186791502675117913702252247871371282838616580590600256424522792672151767153403012361462994473996732004814355692561814546246426281414570549446399748407645320316495653768907636546285492894392242220959529478566175534561248447494543805678484109987318787435289401220250253182150160524098709210078737775070159729303314741592139258134936825283613261123602414822612579965316267683610177811457401060756442023962676879419207244034591513514381088324704789904156873522356942271190307596548964212173990677154451055895358051925305804335837029352803247624596986103904649114335324635638985284921166266453148088357898919991396994787622372808644913379504784379122620623149368707674146662442107748104372303185775599206877795976104195605008607352262184000732518734642448976216857591228538783904435396581471835526292347253478752696798380135670869842794323755677988987218960908223554070409668275845583133336085724796773581771840499429520329572950280182391162684591963727018509252856277128057395732964183991107777987292530503316609761297538754078969987816837793295458360088735371185954257958752302128122196280651016821079679964379309128038139991422424195523378772277533555996465313082550807964128087002744087845825418785490287369916396311631489864761390069012161074431091115731850706184340181668658085782470099866234334962194000011491212753936018381428129974821814798590558182090295090643918922181220197964736821908050145286561999584386580537817574353669573675577450973132681619957705282665236269156790250337044779757317392109417813375980725636261476075912125296352722484091290088356877319117206499010241818246651050025103547233912168968423938537063491618928679483248102866062207367975904020163358752171370802374473888259488122416272446713675640989767999920473253217904545601048745197103786035838057204865541280097970464498176869926863271652160271094205140150841427387510417557475681017411533956697193996126646633608892586076638882205782209879587964021112093879271706103323711584948259193966218480884086870483637529224897255413376419248277704540039039281680226359899917093953759500879815419920757475182541061014053800567775150662587655633726858124335721490667405387607391204037241725188240793751105562988948842195568375108893957142671483891873311009898629113799144844754197361116782604738990248083777608407868641725521409624638295785010349865662975096985603835195649277207404304949781177441297039375300274144390552895009278121880530131872604575454668573866990662586176352749077711572531203426800086266699102189942557744060828260587160432945903873117789051838322690856196811138192117594358986899614155887110498373339780742138625867279991901681293105292918889421094896735419169676013721349868847269880969124868007744274387362747410687651741043728541517360327291615845007987948195529549720779083920598401301043838681031833156868149769621714906689648406235178699443883893749751843278080805621602716588907646168702493883245264944589833115849924684871879463909269807119774019698338820400744728947595011819433504355018695751006476621007163549593190379440220830711636822416199973652338793905799788415991034004861110961021544481888287075158803798246810030238073750854489863687430134215085662664335258784663656597026306894433590970531026779443461684658850771813391210423448800666367550405480806934412966260872807683384832101036693273077126690413517423929730509247343024579257102047666360943619551934282525908466155918969440984366017657106362289111888143613610343023287765297042182210378791323804107542022211381646089306609774296113476514807430096099247469185806607377148646898716805870450157400333327510337632587015098753719220046290793975638936892050041594592908929526579388911925688755485759635633103895114670805346612552430860006604028994300825616135369690642184563016632686711090426877461781316643021238344837519301368234633298558733694404027314876431910298280537967961520006336405695979060559982184651944150354160311663335087923480233616728105173622376777126772474270964438541695260073592862318144641812717059051224193803932266865868448000799699071470360558169883690267132109233147264139206499338975381053037766340881252992150583153983646285531921547490010565062519271468319505938128761966079136824563322067340933542137695581263685959063160507198067778603090509518794227084610816697071252812580175181354785229165079975159229977793453086376477107366348931859546761143574963609497875523525637074742063069417004022101839008892850876670672036901426176034789711971528900382069370503091094286196528282337977046374732836822749856185534838989916186636299982790814308565549795663397146006717037310889760238259700879581337488665460246465433535823112494657359454100122151966974582753689035225659992579196732324514301366808598242328226906047996723305866226803149824159529369859541970043310883321455370699897145775800521233625808791098297575071106495638975438571292520549441275456235720448508741936106997244145990796169201055894211018419863530358179178055986050069176796641811485127717840952883165187510737886731872775194597005195088544398186707085975958204731107770051845263648463849751499415216198892406226414776662597958493748654027286314761664391171816071480320221910827849530206167112540740777417677983088591912649354121652946168056708731094252800818035222086739892934853862760903914141912396482008881773546848194153104911105563928505883950150039756458451299462875246515139525287066349608090209822415361470813677042444253582993631666770596224742214657172125053206206097496352121215607611962698780153507983071453449442181561672663662904945327276357131098538349296087800892621839366514055370754962051737696016163447687497437944340951568020656462920907768849506442339542903914064627696976152877561172716727684640908307856973974190713489037089032073620432424306778629614846748554718416986129667984895827008880755526088904936593031480988277351893885189124925309324983829779639855033741916842918877761646381706540948441826287104357398731297304439024100806616234654539621110559835609377175465577133616726285643723641311179484792994192661065779466878930130328057025031234984965122164390308237367196717420655958793333409218296219847515180772684099983710643768649191572294664406061713920537438466319093998303803532448306482557412094515343991246491145700898237017109147332796865528000018883959529543894560915485044990714302727972342090786852534799369000790089246702341237198420421122155680644893181546882691047502867868239601043949859569152499354504965090446072000711151697950318944949895792707240452042554738416526207383448334650255262236042994487052677547332121356961241448880908216857740084612069897406185064170946594507965571655306081935125750556432386930950140433302260008767433150240480293324738451698714373741904325338250528331515780987860029448835947454281551774508512035411078024499373123952566538486894926491484168435727432261217472788210492563121195729702894845977150105173788819361088362809423122835303273598029040441549269619755990472121248708331114022771424895820374435850638577556787996039883352036308113179671286952465347671521128285408046392444658287562194560690075293246270758250988994682935106408278787789845893793837683294881728243510959644377270289011728233900826260384190368830906489104382716742073150172219857007286078067528909596579620907379594143280778001639707062112452658123058576762112400765802605119030119480916069343663160583639285574213079044374535502870000894135390287450172918072634716570320880519164325606536469244879085766833773776802096132848419749723374603393478815756364501584468702589079784612759055413688581412341047441012215094166274658578085215033723912550770152586304574622762809485715130911665035712837771916733185644143405427437820345116111771595205307120318906437906778111170518915412275048442423377903074987729120704508261699303394426897619745286380499717693935998266223481118053134903135311114140117027632403696338976335116368839775364259042577633064753140993106440286693570622898424931653360017748768878223931836995359397068626325014366995499643240451573588389541211467399292176697430319587159703586674532420445420105734565104905117905631844936980278601632002674659934145322585123087318197763086741746597459293546354232672754497105510810487966267074663912886748816116134741995407939727599946177389867475386915809175240726395005341748950233350618045471236317380384118074811612556480640723643083349614659841202761376183227212650168449139100652310882811193912640222801692946512612710728585805564287019915927005897523966925918533117743297247131456293579003692762794556673529415014480806596378726061692519220080373866311244032062115362722689706179737257469928386073900944798438172609294147058881019024750599087707076903775397213203521846165823127452872020951785001300767980857114432038527247447207898741116753219928163614339752976740228034127203518893991475137743649088686157644677074820249466208426872254126869821791817126477770138556961468662173120100182308544872149295836353597488775773490185027343172913484222900508594770133674938095799406219837279344941940336661533191027613001672602330384100316151307536311646140468191169330455317769487150959566334127968435835356911702829681621017454097004439751333196542151296446430451061462340516435756799373578143152801664814441169411814051022001502373596345163332643241261482574291523074131799217216411814894146098475485631508290336366960606574423112997282725645094493230485151527537879854227257333032771213384854240437523079802664869254060577550701091971309028494525049730093127690572201504779371745883696865811547792419193630906202530970828309023068509849354658760005243830869964583640646773155238111089282285522575277368886991239561453403175848028917317530090456023832056122832684141039505136864864619456677014586293709903929517221518869129305413068387909850289492871409158422336857861220237094801073245984816381753498067023964035769447724326158977336500352677663456313669532890885266929505728284323004169385677109644947281042269506074833567151569409848288918928595961303286168278150208816138335272548071276628115536308063848394334038838621562552745503747956082979744191951010282609266718524555630955888611816515966573427091865663192035160679703331372289419051027247986193117508930944865355735370362289704713119538183896738089058333542665282236918039213430829550389312113447038746947767290803757319336614298958999927706848363089503750340619226604098333948951819865761737121323394170222540813686491539934003998338179235867924693378380882622895726329588290776713495485870507509783091437505863776561821639476943117868345432533315497962762594676946458736514456051017307877644870130921384677526956893921744760168806395342605952811331421441610015436938960041011686025491757082657235960869265200273413546155512019471114009449857266777599073498569074873344673378035749140897433200923019633365214835129837775838606786736870922392798728761660885626650564617540888529236904518334446039807299161797264731975108423422329722206256502416518193627093186399471925835466155738451461812728230252288294569823649805662520410759388542069497336018367484362614076049670844863363505977842507968640613588627150542947976389574625019151936309369683847855455775972295396711399888050751698259297019307767464608983655895502490850838767709249092220025743790295845657221605646173119907470560500255118320390516855581580761156886512495167089825382583124527787169010207081005422612038795112841334591470255115210635847706062653151725397274001921521567034182304746867628699264391337001242117726110281993083753532990779163102637748580730607516104502460265177618300014775669112215063204905206071068601582769698334293061836321529786581690966171859657759666610073888549424989689435565367197342058135390483784643267056753742603438547933024977509528866889790138005340162705671192846445283645207271681845204465109363525770482216826250539770379190285267760199511133494794796742639342878285698538337271287794018140762555343605813802222754996846954001541630975644415174648543867316298220107312908648174531458796409147248190830218916799770684151791263978405154491881667274589803346270629999067840982618775984703027122100817659808144482790412276822817295884125170951469053210854510608000545345048219478549727846066176674741715930536037328792098243604412695894853175097053530945185408550785417784853362221849430642908350980151902508147964314612020444293079503473769291380082530004569005517035539856833548518009473181561431827201921183901991009534189360191356505109779071616450627019489885789092853397638225588593231781546951670673205201178941184547107612746153203516483463931737739081260455033347540388940041246189413085581446816424647675311308984881634901819825747169444949678924337243193791471583341164356688905777501564571331045618859376889105435894319182605664945389799702911321341278202349734418040494102617137093380067868080192474714507645544130288992721395930512704344916063710137571326793890849979323673825157692917478794206628116693987927263460345812248221929963317014175851465778455452500068060832815251900055687364749244395435601896532652632730423476673950574009046805305033768092262945038934452539870366732296974411257199145370018724710925179350894090262350656144176337208758837725085768599331151251924981619755870731783988614556744751632643623034508419419709201534117610414756937626054784824071029689978390472786356428329147764309966787224440536690068688139301428733604843264939885947889751525320818239117878908973282789197262496576934929019027754604672290004703686759056822123351696271383979332694756358799439053821007322817514571925316261489736541080428606154441905295402691813970694513051268368738707644395069117524123412629034759656303764948805853304529262154780036640021363017945246041738606905340249713718677631614285245678498950988102900439435032323616826967977243339445953803100558118775656832035845669280028679828037782905375801341986536673423374300926952318946737266875622594891993923228766649668491897379161393382246414678432100078701114124445299115369809326756022638605305542834125477829277817934368613948219246972232666436804552602767605015753179238635205494209737519373474096897586347086377531446287093173718122548394703104148852872684136305675417846423605862625988720731864049055745735354244022867465712326100636323419592731668673255314964181336988690953888253982157423629851631405838544314679663840128670167046946694361613733934652930198060201506366271898561016721833469477117275495979533932924997918444017441291476962907700102276300817639258045790310801427940624224585470005346436993259726005146676528341674515091578320588938705261822221377372447950576724189537212336822495903093664433775506434812418429360699931161127919916181965313814654726802133196097843395294524681489968929840712259350203089209577298444342840407261950186103962300611604425015303822059200053320750196921806276039282534186329296506333204019902979554447933423334877447183177593719095000219967977492275015411234528788370432555509497666352979082014266206906585046603424424787521937016137919569192203407219559823196147624729075312417844103360758262067118564283388300313703099349713278652863756736138212730320715223174240915253131602833814283773399044100872511644571522377968015882109253085916185131174507437953382377352548161474999111390369636067228258841979680718231077186624461137206837976167169884163930858441040657070429429069927386549432956100003962604794927094747702047143682069730355364370324751175144473922296035176991967415878690758045349749241400656219231625930246443394406041066592300740613047643541312237045405958779805515072722224517727357223856278794648383918654285483427512341938324065082468011360576542829162541228603260654368041249281308296892751153991477880943561628146386344335145889207196551667270357370816650403067564066355424206575487188534521826134949192994839944559679982014818351687079399117636404498969897427612211439216239338521669992492879853939022748277579799028438655329192712246616614146270952273374659072079246510808485869044798224833972462334790689756133436626940494652848546344723178727967865402431947169004133962905038910898962324518434985485169555929694852558087829856294863027562273818877662205326687707945421804161710223392821995628867288016153551383791454233283770053951724683484062656335532309537051107391191781917436700889401245707933017640328526296219321622778413236397327888951879722987658007777945946834325504770862428815762365154247528998686315206069752317015921914624960113749471392407226151747244808107076600800989902700113418595522445714615026212400407693818317985581775124970659376292836368046833578159907797436950174102424443658014788966142076392536298282870207728123041602960530075187439282359446429631140506536327627619473751728252699674282366645756103777432254934487494409866901172687788184786979419821678027050934097411499494952072165492136047880287063589469897487107540044015373061658081193133917194543005891447015761683572684504877394273896890842695761994798235983306980474578858607328051897066695068142891803612711363536321703955441069541370438487006215465660510017339478330472558423955296934030903781831248099810516475287558606147143894931018685003215250448251295319699732181677249903521073894144452744975299009044812500633047401832115962776761072140300154515121578644430433176027373021589500743051549024864224447608334764574938414917418715800041426739232746254820883149582331052528584993872183201246774892572680574504622122192193213678235722335325161915958905845386383419869454051831878488427488586345803301981758567035601516938435695721627669469849694062699883011032821091859848193471707669475449249121220311225709636900891214865965499118501659454623449614251748338207948375278065155954675398269567947709579250571240662847540740133187898133563348102208461294382795058317313236574384606760482386136886138828116571947727370610103898173118934617135451086115967636690100676071958214494237134843213895607660408004618160870865908787292078669934722354440908848855916816768142843429809684541586439575322321089983182417470305011324693653041858848776621245692145819779253044584711233361528348327103738853303582720999983967448475980949704375611795771566095491401967564727715490115037193026418748973917218893210259497562006086143201925408429633464471193753411418349968983791868712386528108058074270564392017300565154030502203648131882031781509605718205198407489225236625779972550524509153381459236572166895734461286832975635288168057109428146911968914698810344534534941131381304962706678451442736454942244764923850644913714228933826544742246136990506231710657035939650001787252971433004045396449251741736779688380032050692534673156897065739220911358959339901394708443036904295012372378455000485538872456223934207458848383464469912476912013492660838542651638807411515191643943835162359721486607806769842792155360589993059108705325936341898387890383357696856408066731483916100210535834519320090688796158249706574878295169225612976764228371132988160813579998715533924284073753398982631692951695467881370424055819741620260532882749496733304960683286868932724000768509665851572925932674592371059216594691851823792683236391229340883397264464648478310782908916969720453553338941742344416371424021546439453262843897101097804850348722411589967100688467676556319084141444906863266112935907402394610579452682998832963913072989819149592339464115966131416772770462420485528090381869880572723259464439873793871668035287466944204223418968686599750873856165351279971219308481221632025863026743038850929745057291450934363754291356997385171561778944495473192436634827807747039650975037009664999821053706474386507621874588157804339118922258750662490653857046563009768048276715600907360035571916619570737905106361129920306598864610268887729246024449685970431141388089021203093198395972564824928933390132130646179255036465558927731365500231954100467474382933489023181291400228184491527054851035427069213709581918480461407980025737848682024983306703483997411107092600351452805571724031551476969251765652594777770253518866852148122647789817149149406867778482504732553531424598359629737501756962810297156548533388513669729126159315618036108765563904230193912869169664313833453437174537009802025941308172316862787471253359566676853144035434005319401294881949977355432909183543473748510366234704038832904327191705246837997720724864034537798648488358033991511385324117165428747934040511310264955000886212021363970649469122396597946615769117929788375556121570744541131144477561661643752771079018149554767917613997126314102912377303870613545144632604745936186659227479003053992259976746878947341820615192812797857568377042543238463417556044002496841774952750726982778052460147727256624865596745169767302115232592270071331674404700339176441966271808126908068141301440857458095655678867632079284856062149255806218577310685452305544401369038005891643603294645439327302144269159647490580860219306731038968723069382909217944333055525350371600629480270163644788590506510105948610281939501596792623149849001454174211855537768333544694368225086202874068518167625791027232702715335812945789457247086348458538147614200876854142822127162610552785280461853592222905920930498070577257480229658465093095307687229652743881085240168538061286746070801330668854402757413196833948289523600677267494074936316094189501602564813281356537025718154346568997604432963934298991695777991115552010307315232913306972373852096883219878994043537265345012499874733368238694431699524192935083676420012872687178921592243386342769273740276570812036641619462508255104347292968698464679241481237441846689563889539679113152692599104789867672124334212013677849368029499524085081396520991734950823774177260067667265884686763604491122053239367328655849613817778666305709251550105585248901886058219209282693439711624593261164416932188565939187671691912764049881922401887723921762380710895170261395736141096487010851874900725809388728553362707612125000290172186266186062957483845292427849436258622106804163772075172993380762374539563614686033249475604291827605806340683985929251645677497610106747204311857762063689026987502828262007607221513898865770050153892375524332297923219108782383053180295177284484521286004292072222189076634216668704513791191911401844042439720396039935017683220266966427963360602658961686768445306415629298637092119863108673926376548364391796202628809640919609528449424673524765719552968277745964126307358423663143610391419228744726626273663036540144830336073542740065718655476595231070972053203542737789355302162568926628084349416673110088828149780051375634646405657413855435782473865866711793941629707953528625314937976564464632287309565077422232344399594799606100214579164693336871302063328504824310902638470565577225992689708679770397056901922751855823029542049720973558753876677317844443397293809311919969125655377126572012574797855946551903309870740784826143367756665462578285408441513336650744167918305167059954504482562889695759874004693446388599300051606048985315514510181196530734976154227717179829843567174139730359063498969702452604187276120576707343804485842645158791345409053007761751304256197229528345470313505304809989648515529703441384586640963462823882994631892680856040445683696075741574959568288530597805056983578851959866504048643965694956394834956130926480754776921388875554144191132733104640105178012521580993547537220245262980010802362961757548319762933759400948710454856808079092601026194743477859329198645312416723976065937635744891818159662929216458573115994458293012596600427192205121502561148686194678798402779697313342857834710644255868833690180519283673031257518242264575383649986411307205922131066876535479465587088723363221813244220804614970200887273706423392870990910519623944568519836482766872413180655322219254087666250820678945526214546314123399821159435193576427620590454474123713338140216278252732925894352770376126187457987634458500144539456624117713664284136567931132308024768599434276278065665007886653306197076954619192235171679577027167876498746616312585077785536502491120408288979884906322107155584412610844723760887705097299630227941837066006934074426621416227973023985460488211389039364024699322331198936518162270615529867931543149275266486027924596276914550004399710547989781887829686376689844982955794978507420010574708534727454199077026971251728554240339035768568828559093412647723216036650646936791362075058669695098286954535281174204372300692315272394894022665641521228148821070350312827406923288191315555372890698714395795826324787520213042995945745399390125363938431616783586596172731292693343810132793667187306930121942560395565890688324150674827399593167396159521662953853379425039975138997889514554653832493441764943233211501244508959611882831930233555112356838072888181559428633994869383220489967625364286398599423828401573380305826228585820758843147834078658851737563374357405079918403210051446646565511207628345270224091661688679586067785080086826184092998812493157990897802286673854851693118938431765225117202557400133703489848699394504034799420246088295667722709816566634178811089720694014564604852979926333791634206219261681439507603352838606808237965212413693019889853883074283817186202617038536024009705147050928849964565201441853968520924220881170354979551452190402135099201687669698148137501901848148278781665657563213609875212241192137380999104712204875963192741486160437748511886603766589281518684489942549589439077009207878424335681238684732395148080923182909457112156078487851435337946546694298554922295601514765647282936477408775332783483733370894317908284597224637734590101475656029677790322038838970987315556290556141827727737181204883856293218185713432635197425184445116340769833541052622089082175478509697017780581934653982027445166560635232274483884781273921329650687393011997647871012973411686004398731849568379692376543740627061299894038293970088871356665454488841071852790559679305237601340482748854465151352998395090767946314016042521493155574620679593275798297904492365958186586629633922762886774015142171014200488725466851927647275552788463288566579545674946465928327731009591548851207305879120815802532518606572453125920643887072173480661184742269867419542163986533084343593857705643161817873878198355262740041772880877411321170520139148233262390301491108448870021130446603141843403816942271214247196615811051011526436439637643993458827921984968037953765727616259554959391261566896236010223995227400359842345743511457867938667948831684900210965248761248227904771916291160206394293266285536281028379407734532454246088801074840994340249223819157959344473297386032038201606232838897116093278855966402703638932811107233310842219512780227375950280446066627860377552957292443617235781077693354964516137086247518055899495333699704159404162936723981460908965936141556423056095067254212691349696179847876774029072377765980736168918358200930337032226140015236975529512893584084838280651929228210585392762700965369391901578367591409033993554897379496343295787804057982484558995610221555330861088488069508146138435607871847763422386870073766706199069962583613145526315900461830511505279123128301380031063488600493929377404672652672585505059159716068587406091206873269486079863136805131755986780328515207844423736552481088340068211578030926289070348718515137262663211807507333264085080462897673719400543183053135195183853213649745978863310709110229848845870999450981743488982302799991006695598357644084720226602969049076878961217725154182071101926216369386069831024996936152182303457834057237931949720934259662269366429632458730386935727010883971051527830602412623997107992435400914817098206017177769055336500956769202165978082803988710466345901596800931228254622459054129563637401505298854548897748736762940925252524400350865058778770709886463947011652031629772964585628512443083267258133479028829124186568310622946047455287062379824872950992665932863932598423839821230312522791021518901318400237646468561581175735434705301429361234863615070719947397071245698548402434228136764782221592614775459591497665867406602813290763212591149826909633589688347050003448536658383056367763753399755536614588129200573030799413888273170263122237292312921288678892293452359013923348062705094066076571573492825490266602720485494582288716591466656734041075953496208318214930814140945638585693481837439494724957183130586803800830596607283831751550510939289267588416794380985340000579225008420841951716456507063790415856767404177076441340728000474400067756953412782470160893019252051524370797456823524649222339596090153109094812567878936891770779184875523080338579728880362117198303373359432822920466964038246961619377779754994374006125597169191405347298301707406815603696540113993162401698180977736723151662323155947684535854410917777499746090814939912692916026115678068918068081429250147685395217938652396000411839852413288174390791233172311779899824540575424039075483616493839084741566983149124660701974837344820125372764492284251816696876749093264682603302093884906128236235084713943438933394976646172464492376996591751570226815207427432868979998722742887140399440395882169364898488805597158057508915597898893098303313110803384036795908479514699986399293186924286116585998643649717864661858425376479936152592257347780685098845460348975616197825300688951316435957911609694449707528018881901429148515994874344797110614874408827395194302932912013017544247604572769563634445677772562719623221482367364779972463925924449274512516948038400419992456254954324315641803802027935044746328335512374971021612451045529402020300810876291121099100717627908793838891500885766606720423234116686450119145281083272392367522904639277463471481542718625213839077978723468493969911160007207788769724059583791087056901582417622648984773497970607727212919999529179709687555869587417885092250105105666191675209086922936033522469666630224384360299276687241092223284426385345187820098592876895196136107978920967701604373853282382424037920444173942545775421393026699975698847193178208839939370662727688000060049405396855047068984719117340588512960859308539913340689197440926080666183470627367081140358084769066536738628961646483794415026556556593316715442627610181070065094365474759997162979240546972513319538837848016666813240970846815134359835343317524933323439317643518952617739111086942670350943783756128535985032494532772702459729790909812181496646913214584963685827634345190057369856308900647129565991103532709849740129760066699293267544450644449788816994551327309027414074755043333467752652785128443015958923792195310003919426320897741039854907141451967795852395816245971353656392732131259065666822508430890357423486139173454878978522905237370840400128650713992602623648146002684425805816760110583410467583854169510775535002550259158887025134074419691241321930452089502740046548299076482207173476306305235518378675621056672054862712487179673836610645397380732584182303252061170873446846631342931107922619764533808242484237495427137244489963417361699688851389482119163841656165101699374359638285986598093287908052422311233869836209648992969859281956860034456478830338768268539632948771878040089925113947989262655079749316130346841985507971643730221632666210321093342586017562973362847954816307436387979577943820154470917192126440520320494840616832993641131480356757852639276990817134541465745554992289461040290420469657330858419961321958653665447054527209424811347456037790975275363095356322044769225047729520798709688978758107946802574828622078631195955933014632223473053422701199571890362143892334434894090958191057990224519903591001268721783570133003583294226432204198150418062402688155001985890009286078620068744078256004379670428338436221692699621502434404520692077352738603651514820650607444814785187293050368317378400474456627153194189175974036749471684105065795852965847000445639073778135831106881557024431248325333362346569734098331818249863309483735152234404737301826751676576763860011173409825197382110335286076969015006448147614583893454121585535253224824269481882925728595800931303424315863666143242561396019786989570415800370491214760205482818586240272818273591747403829875801991942519544740959700575006823188817827374217241580684379769477302701575329791232228516220015009710708519103971581728950854911648983469059015191333397197494171230846574127728950723093608472683727646203736920145108576683729418269325053157741330366549417376774606184552644322148118689115350589585826468555504756718948331776537793203137917402993982835443208555937908188083997083593507485589481287363739623455059301071660993251424943393291556843954953896057337737841536902616907522612245931957619258589148316597961175963689629810645491164289377707256375024222464966193494055434802833060921830548878274760150200515954470006475807938951640704554221611819247104937913382205606618726574888072977385684249356752713694468743530455844046199133187759390792216911332922890965275916940754372839557920525222915338494463794346073307421781978547963075864340794988638766793024640578729507066493886420327060307361370048366754365245052933226290640919752541596361273535446189750907201983860641678235281457340673635240443932061353497844512751672976228777249647144600734789595511868539365873358019927738065172177699347158943449643399474154492143741633926947716953104003002458133210368822263539565691904397905836541162446417240144508441090237812699312652309296565019888107415258876451108413608075280003406834075293599890043442802181519704365096501494894422392124882592532973802835126993603784725572624436426563185649474299765070334961450154199374351060581531466173655104928568660665298152383801379251243425218158387415464398068141313451301463107254168288602044167088125837210752927493744895009096564810417679377949544308839402574390135400862588362246036203328277716131943095100096918870269465725536464695727547206025689660951909073624635893587446248352011229596433952722781963613798579303881141547148368051985928503707312769807886915683282751960854638099302043896288631008861846689418616806368627366165016968309956436244692018464104256140035652052462813213039434893001943237039125398744791845205379706098230488203042379545043895780315424463403030050167982570771266766605679815109273191457599281801978129828200487090123166434335907326968097581965386397308934517511582832448699305134491896895757922296856840262186702081410373073406386812785907928753884348290165556588175806383871452345745573851486654217773430892717599457105179779570933873244661493575639249057025823721693864834061619861364263520779524960398523063097125789021174498247119947186990758699671600814378256843647445134977002997300117789612304708210547290823236694219073187163742721102363088456467895553785077698273244359690164544796990552495035422430989405781918297269754953598072282696046874496196839024469104689748390300285244805024819088048444275509980842448997680166130771434812575056397321377347322695058336162312066486560859122661544020509689859993241684589433495818840630340707139974935272127394539671317986573947441669479097629176459802042067195993186576700631672041064913449720764796864191125969372550837262218379474115518427596437871777769479211881995737532846272391407642499359427079233351712411351185916651401526853660039636566928181329995402962909455317103320174242069361729683347762407515351536538979898465054128776513905348242486157509788526517501892551513858749003705167175552098141582416981398901878663567443907920799853214172354971295879926452661236650569453222867429544008258616071509457054321952461653828432871197211648960059200896086719746067615663044735874994257174745987449240679135559013172213799184109321400778288632605421952858178370493819061912285456828233871688285018283195544655745810550494992026710377729447494095044832396237854773711937399367205255481332537640725024286511108367836451439104110944071487942082923273549811338057447482992837094992393857780950964936115398448637147915761166242316418635522122078854442883091436012158433325224093174770727314491173038320978413752728295532813674809565217759197297837294349088211254381293967591034714084284266742118172369770522381280885994679435477332226651930105520289797203342886483569993835589037460918532158020773454484027462811664726616140504023999720369181016107813425630889589077780577662240791848724287701690846074061630780485149790355355068798813819771782717509140108193364423539796119537008142647268637287018080919644540707369347875654954994754511315367647002416949899309630665756416986438953290402223261763800924100212822097201493975401770046138232592723147979565289880423289323692199594186445151759002517616107840700113587920869694398723873097228635687995351299366170169443241272379216701164829137726844945383282332537850313010504539333338546191535070542295769125747567585088104553728443962714734745343150262120984228885159627193279720806525021105688819511733760184949206704324722592019181833901158229751496922324408755456623319298090512686203142676643799302657419311725746902311891777105179625214399847925261691400050713916884362031316178712382166569520141203627239674361902923693426643644175552671159931192085075748396595010729569437434517614088834621511720730300926032110795924686547776777025649356191366540127312788586070321318464734927851416530228664138264819957691106839421014158773974035512452982810352118342442293579190410659093795320435934288831397543105721106814758992647811035056020164939035402697297851719649240962946038837704030969365396008645893010540501071284645538545108462268299977522591500820047741072042081939222832395672504304491740544515245171575892306286346149517345499424724132614141204740370307089018388590530294905429885272716521147670360237296705640240766919065257661935264025755282668924299267052994823318432311577898984062836160266791253312983039648040456117999268618341866731673960953316862606227391114825097571383365099329601854996078477836852432347628146831683016733916315557056337391313123312841462360718769647563815201049169674812642895137783115256065574268401000218200750316424900712959148949560467060156336970567844344933917550233792869297376886216652023916281256380599004084591475862716060688190612220291177738247002609547246615706616612815026056942129375682527961624310237538470244307553242881861821403513334915695284949147963567044877579712226003842810915519691035891247355188959402525283564102113713282098344719177212740545393133899167752290397568802160206951822113664833583857356392582032499272521288376935415521267997121056505210433999318241332281000813234719383253698192384875259075667656507565522966675319480837305554450760028720946179913676740132629771462304518027037527287544674297744381570549902257359849754931806737980512075682719655909955619185420071805709580519487601810681051854611911724823492640149506912991600132543076168464029559394925919952112791450024144978256338837964500497358145897821843087529360914164941956861655036355150670165436025854301529019449438686137755178802493958965512239471553196277175377067177812671507591170593579028121991252813763566593819545040933759694341862572200467575962669646828858889407772681459933833581422951414613318518001098455650095339663120730677116977717461322370725310208447018266800864617288985572156965009259605917453818457569181835685646407778708026108693342484817764752860775523051214518491820595976953428334833982255638498790425096288656682224918340965903190657170610151993988895087536040311989042051770471340892216943065922247644543826680162556220162846930853077832468405777988003271478105926272964871488554565838178094525860263693674986989346658856025165818387550988154553467417466527460132124789384460805645985825927483199371489441851520506766914256028477514877715038029610241222833019769046657922947417409136912961544881770403068195658034907209116476957268418181491482447454288060535134860724371588977663126986891296521992557660693245611064764063121581244095381833105479792551022754317745388827082520186493932011426667523165649729174429361529020855439643699614889689841851693766920238012775128663576525041364748801679553100318313462901081631761862853525161899128041147691079648345578302185854710722443091668870645759385153042225163590610830030072384137848726658138588911901110401213701279275658162807722507624902006914792482073815835765960642361851142937453825034785139862505847971953582297980869081102833084796428360357278336936391587621218171800887025361176401952398549438529702063504792778773309187275877277184042539249905602487902200004278828640483155455578222136164083476432213338407619488776879749198640276314160631341965499971466995467958344948716121285925248056616007891630731702889390262297610312283672542086004288516087516669254501590881461948373493248957339202546670548730067232883725296494694863191911276362048722819091936732365507514473483379684236082300287173231029606548829721143273228672070761395439100632824201770993152071455319818440343393893049533631582805712074968139863113892432053705682541998170211924131859341227571662647855760274685657216231135865837966300042728664153998791036626011788203786203531518691941600748345315940593167083984395753302656059554335434461019621247349196465070173836066590683891952074659364094222816545413602184490079502688639851010990891495405204476945612399962103857459630340599109747251912939066631689876041958480679750867657017367288014320065418643043144902467710375234550020927526766387687888212475699949082986918135318536766847027815172321455648230219474118874008592270216135437393093116885347326952517763650453676292056581856738586797010555472308811148403481902607022913917028783717757654549896243239609385078882838810605728891876019225888279840156180505409576250550315951540713017244860408718982434747289596759046304077169809041241471693182933465511021125232437461674637963263731782630625919060479958512356808406228126464625771302389864319927428616763459090115586467563916447150540754854912768086020729018013800767958451053049044316325735119748104060229234519548118610112662736032856039185436688885952798428945245776619798919543373961607637487642795942381577824956962415546689470776922842602024879940063608865217863083665860060308067646232751998245264320466308288817833248379410502696963986600945106269121167590315159301940582882853217308609440829040653454237934449690461717236441639600610190826455971720349453573790238786550093198255962523644773091604335990517611358547523256672769655455765508129499715053560153273796588467551578513305389888830471624413291420735820204030614278638229731004354128255950705903998949637159317885392467461282777370199151951258733821686218681561256564156749409635968531022798013016470670426393331525140592012957684319517227170789168462233721300289107751347224494577701612400109460529208331157687026398713405575630473430812756149110613718884590820517943710622968463944623065979144890662785520156001096655235501083858727530789110176018479606439295550086933743352017674816475917914857187880486146904195637718480955891503136202703516682633945181949669476813659821076110912969299441034857703525186532883249350800166193376546408199289291171390032528294680201020707888257534127832555630973423660960001205206076466186569395570028226398978952957242757490416949359016211970800091264280598171895347412864312142141387152795560090368671015321043166698952534679897946861698949306121064992336747046423752757673650547967318245084937429143988769266808864533446162759232486051597204396593545469242556589571765442211308508640947409987629052492106742053859896254072186548085697439506576234765311989487357445384979156398980598848466161598211739880634354274906002658326056019909313018659837083349567140919203490586557429326671985457596154198620393953180837801720025182887659782357845398588365941131510052985479962115660453572331375668849847165588566330685347008055456247261114038467909994846783817279561191871443271358927954572290468205440139376313163736463814069079991874504405935259483978679953960457448208812264129195624637902303423649036486138998442170244339077094413257777698282016046109678418851157632992637299991654623936722680989837878523785057816280021962477586000283645019849193505594178539608403372875168686491961752985839107942403673213901682455261628760857052381884373328926587097862929319667781468434098243444350935577479915182718715277419692664130384011988308094246149799137501536160191211096997562488360041797822494382594504989035371553860321410264238242735906315128494688942675452086614486060313497628873866071346131709260602914660273978931885475579710861100903633444582279022916702480589249437328871387320621288503469466554337803342809120995319091827324126613505189651297495368783331168697393342575145590305041607191417327651416094901824542955387756417080139741724826181255874499077814839579868302786293024660936624888909022230449186268305952756006513395922213319907167242475337659321921058359101009049020735629329167539233660912090498290995928602840169856480580258263609796975263343902344715280040940414325294640520021021453606467329143856204437474470594616653679216893115093496082536977281816827142450315484144876422642735282608476434473785263872550727499385932928934465275668938508980927967024991488150581860277118780971158140883569186096832126668190752545636806027393513793089308986866189155604153288727557405782495914427094148056006708571133698138125287158556147860066210367591972934750723191737067347707348603872016850507348140635897258684485515186148733113872703203854444465747885866139431922893364850956015824865188753123241623920434714961310360902071493223584046500946274802252440657968291311058062345290024225815486383609669963552736078489776555514709399747562650169757555410608017067797470325062530141818828507701291807532336795176027583167817332136635779515808921467952010788544442330351376438425086056448097123663755513797045074947461368068384121093064102570931902649869495298160613383679507835584538086531844928450365653952138871095236456094748610223371794158717602740098235912135261613837814557243112999109860418426599054494738050713941716586696517971146656873519852489969625638721984609811006776741939459971938938260619584379978267051999234175987666053115496341914721709456091166577634484937326213013860285954649944177937623437506646219679783724924898915288675076356578349695395109754439544193286174556470804478496330407407394778187846438222069772965089502092791245521186651935119534924526131840035020368149955937343554903196306563166206212282119125448237318660130646993275016896517280156664141469791420856502616678383544785013708440596898422505674023571727937129202806675372514168146372697455601124267720720068464949594014152106706289890651465394979654098407007951178980217560823194030902716579132405103620872846608367649128318108392564701792868728959039493696620977278454466275975357605959597846774101481364006545879042380012636593126965431467285036558933434596685024854800227603273410353445483682086302027040101498237273988183760488720012155300603572530877550314193254977722695016405899414860655647418997030724401167807822352205065309973022411789859729265187822654087907269324777943555351886337898741566724848771907073215973767701283447368175406583645640084014677771147161090110222697483844265227961516670488663169010075572588862753652282023476420592423479918740507032092496691587464439654431456336690735654473919385086550918179821088621935471310994096367803827317795453724150499068588167584230928233075134802007746498717263347531119654765717431494441252527979289456716630071737612269660801248556314546648005335474328395080462981953981182356291009665291874034625242751775100875353187664022609868880414192711554494316444601390734720068996656359337863451694304578646831325992089552739299688312880369293427578277971513858950241148056390910035375548899963575316101204399179939132575951217937201240275385903923985177778898768501148044379474505733248287167174246141325420889370357392784972081882843882268377355405843751214896419218716780991560346674837576765218330224574526964238593435822520063826118633383208116311231547624625745440734416382392180058043989788880246196413602931561306729444456231102258514390446077053286902717313719293152199856395113375065877974040043539209335385379212378191191598498329874681324653579763220474700558118742160539240160248957580294676349080634324614761102924208371844779037651197284771517074785623027032090321545961747870284982311134481582793333809853575931476531344197720055955791908644833691494509749746447175114272684690807830026612500567124137332012459179407354516746061159549061284192509045106767452266649159349395461232138648762376327966560742334970981475837089037309106480207547118878886572274648932857383495118982044363216902076030025204493626543593729425397197742908883423274029113724682120826698383508840710267050455602643500169914907891621673656814879164339050950342605962051033860837669885389862033760922764795915650693098005557084381070535169182055261455691930564844961572192254354813715382549564690323235750565010140720850012545712631618986871910427025193484351799045693491466460144064230057599600883839252322523708725499048150184078500757542140400811634451642342001013590339800307089015524829818014882686223123044422939251995821890581254537638475344518312332493965249597942449802645142538380848395406840011638676869106154704063178447099711332445563962191836198494012008512193361582495265934710845841726587696964720495429507641602083827143559018429807504811244317290798109319784057443082666807075294133276676107985483449330949455580156369739334781637189102460593341066651164813748899025587109434591071357163038870505636293216065848108423885286933441193478632299619229747429588719499963778410028353068754645073484226428274972437447350995820368976998960557277024023253789168569055252557311843262596243851983460481406245270930084773691961211085472268601006957935232590300022368149275537471345076731706327595736744576870396092100305019783256101674846529023964911755580678743974585180157321215379562021727536862392416510897823312753897858600851296875034694280147451983102914973219829144312030920202269818007291794322345848310531272274094732290506175825983151902744355588539181582162007574825812475607755947139415010590352435463900665416322912198768330504471960786377529569508912725560943137278612107364323490543822382413535287219942774523260636489243039834175088922174234692778249812989385827020658000681278411155918421179783273602512170269724650382801152777067690851486836856313642256027695851436183167200950498118543157711299897028768443826145320607857092912179723103369293390856294617847425786276768127862680795419952786325020419843966521746722491006210315296486486076212645404207945468632530933136047916797388804942999764757599539593396421718008473231180009448271483680889384801671624053473191104256537875871770471550688787461441227405761389209480845935202057746773902084426697469056480595450348946728281341947398683475302845975449757564611795771408569596270710713084937564528846541313417864715508754474784447162018818615557880814250385120353585248539701698303662613946724936780466692760106943926278096135197009445624236616387244922289979260153376933495921890209408158400513469613377236974369742112794710340251481330189983550069565103384723142084599913984020302107340909641794752066574617491400162044156194401709127441295873491714454781789906751207983141970206103207135159312969981982668287752297546554035316035760639768842123747614188509068432927100339806128812580545294986154801022467269857926280368437232642342394413651661098505260955876740588851622314424246378310794726608066014544276170919720370595137277627007119691451977653261820691140431215395472181353613656745669464315994731977879095407993067531801893497671131130940269700629561276003185343003093425757848568123842086871879944580817034036791556034056468749520832686569178878883476182244319428766851937423569573859147509732608733539410967405131797844264330039144744053236998497807160897241424729849024868729624986721990916129015683207086923025749274332086193524625190876247016743250086602773827756652618005852412107303765057966787532938830389593183253705709169898159749921669949897630008959869853961978350370632283843246761670768737735674115337987983106955601890577367308660674508582617040792205597631777076539181554613996365554669886882269106929912923630159513005292498718097810813410484805027846611178801205009512464029924896081040920617080583124632068895429526363400554842586692370474555560741353361133730722017411594843992423045795409727462037894047238097471010914603612570167930283151492192673986986138602465304808576028555266091228743422778853300776040369997523404190206026306443237592777561703230811742298649029679099654411783857291975395344194901342221085371330429762043778076384358311299469998834316081833685322742818511010120277231456517628012294558745895932082410256401597269273823727881629705235860002977274487213130443903118809482910324209965850052040229891144484236470548618046983990865069184059155428404492481247901017824672071544952894025105704651429296978116824746270582893437144061852151365055334815239323135311448540113549039374287698017547400090448901343757416568734445373186628861382080405350092870861721102066051798964443615500051522630374175064392339347141732638657291101394157450933373289013939903663126587999745334164295324425388298523000241312976853401599721904366148974946875622523609726609411501884520579594841706857547523974191438111259859747774104729625605937441275778172759643116022298496529779621015381642910071721708088179341558098454941490787314532534083464263195755856069913895650628320433951730800120104784461602914715125963824006131349158975092156201321162674945656839228054759921041893258957459595722840459937227480131891047315601193219374662065640171682370101302240733395401203170039564246648627646984100786202226953776747066473813530299191450213183541494225446665943049796045708345995275824249640387733593244502410357546219210474152339317604168244122532815931994077472063090071509468566364217464069989895374320159691390292245053668480494274539393246155136843600864971987769022909234917017615140035946023328419811119773369362721504132329731795822196848181660093925071003286826011301282239509267197132179543443805560854934430787599370467488354188342316412106719356901243457374824345721344743162989474739095820649177888393332495964817340527724400618290077125123760435218497691575385440844244116816386593426395079709894860670649008432500639016675356278515817042600873039762959185641506345416152209686024289088828006028478731856019417431782242527808697467760287589386014495607065951004032934742884375925663609308577473220947104329395839379234296696724593978328961091521787379358566936015087248366019323844172353564196603350912733214707055228229668533700621606408060025775140310749483294765229009948548681143204976975525570101345770662263816290326592218007567849965738642362816054641079249502002849604916927977618615634752512915418175749229351735644386942968926618309573136207206263738762751930674594099474501821875242346748619451661115933266970021313322722773845836831773798519789071885072006265962348697841943386353744903289152799448537572290979470613818609229560828295286623474345625220956445270878002171803227286590572275186140116811368662547175974484691889148241143356593821833691764513069767058154551081413279346676349551306089148598613942827693270962699798348899817915351390529597848262911573950177206026007079050777756127231449080103470952586268971620596949269299785027321172972495143558674998210471752992068936210859148534027707245388387092373793224297570377460976286402309610294873601517242883658057152502957251341462676666537371958680941877463113161490872377829070904515037674386512924124748394492349230547613445936269900491110957125670776301457486391520278558664915262612292947353932269997260873274797396984530259903167532174216509823491988506906258244163785210340901301376156069338174500043364841416132409572041189892984534642095715932546043021777020964391805669028218757762495726903704722701908775396444801119322707079782280372801574856646810987037516266485788890519019976203615687038787745605552874309637994477133115928163609841382123982208637567023366768593869284602475428310988812515893415063385720225766688576904482530152001004295574707704098857683000239091159088136674949410790891087310728042426620723262755771742499958315692430039618946336602660583192677787221265705814110401577559549295374337090162749909381536465755571390884554641151362397892560495232251079210908677395751757191292303541130784927829583804920898771166667374738863029682276270731025194123571535926932465542670498386684949603396363455761296877813145592025222534091295810601010796012078687386926636220456287549413773607934795435722130955170188439505035830886989072822502102707387649526265372323570577394951522929442090936473911795950150397368888311705659505480081982348824690132509372609410599069375547200791717537035358018781765071071945745968341163697315374218734837687922925516207007200705128132334608629363561748500479587092754557671112233241240678471217251360948749807247101459766778525439766653712690185545615089081623271231504982865546308159843466959506497350175817789161775399998498262442738342747600607579284579202029274567528369590648918953647979929012261141137605026874017484068580727251470755139292424649753360630242928200064699281455017555718247847853798322681455891297516382985149178758475454684884755873856199966343703738152903489849629370453925119404329409448335062874756239321439373710007037282810316058812275780183956243178067275056961538635293289578745890147906602170397225891529398479028629427580772067163353125704778724860269197566882100254220006797296209578738952079255795220736309416292760726838002597186301544173171171100363487003552708848499010815680265470470990922116101274040305375758868693135141327832808580185896186800686089643206990125369410929519167563374243228529394226140694700440959974457664743494637619157352359529783630503058485206425299161304470451601266683627986094156209372255600880820108919497072865442452921407296454159353292587400511128773845685077250673684734495742585750284221292039941916035913400500447846755436444438287005120568561259907285073538029888580008639193520160323847050740349395600354304263733504800695663822500217983346277918031416168166922793594230892231817051171912457714888811083977436305093964267548367050871604223505493938212147932974000845516859246817623569198076832859458796655927689283494235090661784505065791722702886249253666322320806540463932168553042973450315128945302168687526374680284940623639292054141857610290515685499708371804867065727562661581500607783839815754013292193808779344414449448604337396901912323445791054138007696888505721567740783583294177725359400536507631750058878865057657633405779565784632687446223660168985543206105225029698690880042343464100059388899635022988709033904626357147709741617033670376680183883842061452737722530623711536376569933342495713727033567633793053553871252469878402785924925405671141921770432789611473927398757970878893278349731231657077680062964699370275348583123600084515651398357759429440391806800867602188356756861827554725657249799090463116925817703388595999895614950963362518793546548561045379670088850941615488258104296266058485312052372703100742591980661453450274738733198605432570590097160373271860716685382771898186794646963129227531006472984831102719027625943875884891238481881661641692451160844537187627392961244236446334232070801962901772861532270956169676407743968693520237092318241604703099592782120542044123984273385579383330341617988705803459339939345524379625409992789493676814920805898850417086829101820227753361935536434856221904465593554097300300281570495401242124664613477996497820259791925048071208129100597522875132603141368820949123688861589152622129055539964129229866883088967201373075586701168654571687580033138690634185297190072379680516734697741140927124774275026807729270662282536306268874392957258476380603748412329360358964730563451027880853715770845095392282546951780940169118440973296845249856834560053115967936218519307298672025058935585132095812494099459524638369898840556624603768780278280623288020756483286207199778569855422026950692047564630797841701303798911583487532727938047043033914814612024410467063255536093684590353623539949744001668305528550849742334335088348852928096887182427467589999942528355610187178140724685111451843015502207955950679761094151886081305347026908744398248292124825574260510612069253022187455080148461307497463898950136305448887980562571970596555085368050004515182364915688877711685202148908231908953374864317373689647514798928226144093905756354645197362471010629746464540985912323891622806742533501868038823983466324844275102544131209442628267889353044564527299669847595126853380605683687496747545127023875840441396784052923835182457006847800606081851337620540660253881591043740499588330576998918089733934061348393194077736197251912196561724212092910635239760689338290863949779271959478672744554730816698568541913144933305591727280539195604156147938222988642341448154176628248996560425426935741038573082229843122127641690723204667395724433606001893919370472674772545557808810926193833579501361714832900858975396151205209291740079469896272342934050483997400443241441747977373167740835793977791158296970189398429543046578806202754351424480364535459179535540414014749386590029192612592062451857079217490137946782540098255951012055266797873286116404006961444006689502383022248844646084574862260180184897203063702327147180301982012507537887937679759772756143903638647322551049446259639333732679703268351274090846880690108761211735329968873748626667129681213605117725810161554416101428266318252068585823642663759768696862582808615812853190801494353546497811261913808998807373182425137763451236780523076125553236295299648972353675393066281427579857988941412338757691720129568930498597333689242103022981234468804460228831863824353244860343752463836377238999540641795841958593444669716249563522508729394324734494782737016476074064120397576688775429902352424213814570451518057494021318732110365576247339422345065486820514666037559568088047645659410759833203998977419778439521573947809123619204470523127981045335716241208318220873076002007040067342895799506306721631884186953186405120476841464090368579783384408877327248364298145457458772106522686800094324431145374478525790990267462515771152805833349140177891243899162775204708591452115528062775883646244850506295758157619399620540465794900612951844071301344838831254500427492438989693504203827147493782097055054210477528178059390375612747541486034543716922670723528788429455550771103207909004289710412600578234684831799045589069606513901009974456696268259255528696745580292175676733040790195527185091174023287854664038073570909862312179975721984569824404281772281551581071743801970160962190167827228713405045325327504360384237261548276740502640363907221405617397672827513908423118186661306770099557933322880173945866145720171516606606252982278767145567303599276676315731756455234239488280541611194034540780372845561974537526772972312787198507343717207487517978202060436567106308894873527738748508886710828729408448923998116296638156770166422405663862878008792445402239776260790134963190763328565166818745390216335970929640476733171410380461602587875168073708554815204488520860028708655282869181203051577803511476258098868862685557619326833810773841402951204743960620997660066416157655936365814198876228201355572360603477774862302778905600853863662027040836442253917704508950175620022882276019485817006757049789843613399552051803112616007639700233641619081188192095342428390325269384787972971049049555508250270203642343055729729239830846158073485291881179850909570233921578801585314474595742861438420543970958247351714406865035684188616682507881996157175016738818171606019975552193938424944324771205924494116809954132268507132648349197006291408206327867182539679102616347838055772066468028393825972890149135765525557583391275297237658034054670130866308248506082330910091098637106290842372396333210551636213472112782659215025100582925077645563144251289483338820717474192343957068467645930734419354140972721587053407137682145012768218663680497249498588400073755825466022035211436186077123019138555493108503187239083115472859473748213180330314306766930879655660008096864278143326747932253289524626895636537925614188337600361708327166550794519363080352512026795674418701321517991771295255870547941070514396093408957669392788501396764534961748813906790744929298804297891411768527417552023685126604593115755859742581529843166571796601318191245426774289239898789322750653887745469677579046849011465135576359511997107655403922585164368395088254719193180903874559557734301741974422348695021395375397841593822723348456801796976064945878797937919239390030933520725008074582616771969523652971140402032139314092915875891858465207639443008922353970893851413000494608772810562898118571369654763792552315003193179076078126804084731003649687776496667610753262198561717312913463250015243861380174791469041072858515582753700861643738664628961446792932490970567701286951240092918891393558254093176809115884694444084811242892654720452166719882009266387203089063121039023683883413310118702082753518653145037118022114036367748293947668928077600388360108738232622532103918167129710837202840681819664454434557157313061744018004874638924035170027908400555727822288785223732200521242496305704849271824974242937327449273245856152898360991649911905051425051927894940394853998235245531482890837500893809067019419274611391151554404630633131357820878610104149806489586574988569686839564525894868389016251934600889409053131467451442871837686948148835076971766585428942296988532945225589122379402401866511160108492885154243783150834006064213417016637485626159819743363550529931028024739858828586257059684977423543995720214982440309555620283917265991539904806035499281117196901834975834214232559129020648799519064425739081214237884428118482649123546745295212936086541773995291926775250599016916328767821362387623702845124765103566390587248740895707724147666572987958603424685467978071744051509137288443222348905330047981989895042035113022211266869611137541385089446532431546581114228995495809503702725080281102989718853720041932752428859679328343000132918345142790956893077507494558027448560818181012041489329311054111273946135210034961840903931630438541241190552236913007273346610772305274702100466352791044103350744663743383144159979698072292007505591638710797789837224518725042971727897796550499632459730201140917455313801771077723994737881270409378159658695880026784264698900122909945259702682237173192957817374179596129062303054828076582420614569567437188364061713902119914574932754525402431302099078402726110096522504689068264407977440658477725780479447764061838034568226021002278945746407689881269160988657317712894853338633078872421037520253816892310436220122034289360023810158422106974419827453910890649164614481797997251658704958670581226344430680160842210053122982600074238741110531933865734946934868258895003413630079184273347901637315956861059814808715218812416736493633555948271713968291927838669987508590880433645958172724723039971046136861476389786020902333933946419297799706796210961045726065382838574266995679895460917966992247288061938730678351968849783304331608939496320431630267008019264138738077075246624199075348675134950698010069483306338756189051779961854501615194668355131908095028300064895886145211612297162942758222704641201309634316631585290439282586313160229381331784436242238860073105047257094364447025130299811255515136805917523981569905177388614656630105217220164316641802782934372083916060379065675366600172340346574686436018695520330176625869173451213479913552474392504318555355379336716744868310412507543291094835151553026346866152059467465122524483797130747386690048817269998291336852727151658214176089715125864996554976281629867135432846660940674090615468515148552130182076403175367004713799616676309429424957455501657157785701630273337371999534106694324356313673324211146509425696497282637627624195613801068097067352478155584389707907619218578221181278412025452701391304713513296654622019217544896655273724784336762105744604894295906854758286647067013146720755344571416775251352172082271026498174837862677408171502631147155961647040026728299427948969177615482466896499110557089435945856024516610441296067710803438557199921048576654688686448894461284320269774908094096181439879691315824470820708557563459089912664844331273877864845124769129393996247165887930623461010571230447442238701057418343440506760262541846173996703520480230428498418708576974606669374946076781267482961196321438450882454681959560251592425714908296654659158501972401655047826561351012826622687444376097077511882209310407769759163473088288995055785337288224194184797632250655339962889977785926550321729901130684082468369394044882674596767849080124773403452317200223422172622984048296110863501365568248591399442409756938161127669702512300378437108590873403528692364927890372347151234615050703824427438590163589768067114201321086627074045071020565357841780601674872957979040519945815681876492774880650483196995119923613835942561222505510725102850488762495581564395876770116751978118089524468828616093144353874508130762786432420651666326584668664972152634410533460082016189359979033079800316957992487764477377297777735863722845316584821523887592336704432352309040745876675504958173249191396918678746876764863896364045808164175049719569348544232672813483114494675111122187271416557213637554125758628727959312343983342769030231676280411529466499657291829366128236877102377414406349881987114009372780599140360924503712817747167984073416423938429504960958507353155806417172020121206728821774610801826224219614758857101803745824570223614224504222044170519185746197808408257661905012110819055390767605027388061099677844726612872616979330472776690453171019051797795656596679825410378274143162671384646228951538431231102329134150913102854690917400689401418775584839470517145274966981243117346242712452790427970652795710366381969981386636176545996821161077924587761781835595754742211149030809800311398476656408484451007127355461054233840179283938609002837565448664256717467990437636034228252658409024123678612380256673919308523459240874175450332398665497467019935520823942928468983473532680110578628989624567785642077837982039366921061317937065040625280926833495750720683524613489064290023033414180909302826870231630890486642303277817051829755427004524960147645887632667341833747708589468079115633226240762250068823740786579261825736689051850099541351326047638795768765209841167048932660125724034533013147773338668447640582518016182468184040003948255230488042641004793973195235422623391688130355435500182155590375744046931966987213738992375811253032745429770091905335384599668483987065168014589061040170196616672826130658575114264272901500871531454647553800054455509851642799091078776230370490080733748019661837223322365805160973565467816975690551752289705990700718180241309119492220695085130836081220718807481491268766938861917641195983279507937222861560403714125612668972053258099736894995230544425397836603112908223422756722532857330933088630552876799456820710144858558726111960413311999842935330904853660293419624678223390599612386971414496158014973545208382716098371684949223605892220577191921400383868955782496751411565866255796101665894730579248593703165556012353740849821376176390321963314651812009195243591385488260290127304207263249038030080948980857756540217204449749279369317220197114278027512717151431274299068182747446343910529010887706514316200154622861711694995381701718784245327957654733698717761116189048020473906058198845262429764935989367465523023306878312887262683299517086027244133467849421887742001248877973319427892636617933861484581337485101819144055305677675870616524879200791012681772267917547154439206273354527450334368812143061719305643382321418063803247215749101258269409564549698157968914188880213584355405590626526068476232275882405145511726151724426312251437058611326976590540909149760381717235377605161197639201230345220378021902316846851357297238195488618725993523771699638578522598128217315121866895907060242014034876566103294901816660969799792428037925793850270797672314196878782083612354470712882487297069708951330680304265172189889940171113413964428375451948980790701181271174440542305876367474720811201034551091207935447666065783321028280903583273880825864627557804878971267191980000060693293209649927312498362129954541562416289778169711403721394155139360787950091937580424182657901270011852279236971826948633335070023992486526827034427417237155829738661888348037119672446655995625649542140726789106316295669483355716005827889290744336985662413979771817210622997389089658636803416552587611546371454405636648144314870663368319706035837214446571369021842502451551958506357607182287600416132589548742551063139396932923786389865074516030797196720806273707415122593883627015885176515631314909427810404622933731266005948329507818714922253820310544923046086997740370132204170917847581248076050906031205244354206225775461970406625638216495100976567589367835731375483002975271027079470573833769690369073631451490563912990474860027253079379242731893529414504981996739754786647814673518269053969924080592645498908587181706588203385792156833427546549850257976721658890044524235673000668385098482586952476155473280664811028429649833266774963096931453543619249064317561398772359195154175463755824644068238847502820512124848585880637594526930530674405801776725721246363438181929338549200361104253263920561008683919244622169052410637979168166386191658979644317981856492197111267321225338786996743096039428079594532219900978735037486543335708499464525180604018673022026670735918323394602711376018810427480497617255353480776970701947218976890380883228179248654103217637168771821493517095157290211461869787518437941193442751598621242639969312350152269258817328321821777508391033392109923423550395126507021047037623251351285757651051837636190550782887427272472210456054192443276778268797630768554115934710325533742138759902848530722440712021716414923303065556015215639439907575957135355137366594809701195785183003878718538837079768416920604451694468381001806755951467018228542540663622032171820157276599051803764737686473686434880049003909104671807285074845974806409588073054389225315519043720595779805276329642587327727788414123824245343670267167552841160056470892897884772281666421381251147044567146607619866347264363139232535420482683522741885033460485575727333679216466093183671917937924423673192677276502163342208975826569755907427620023745087986483728408894693401250186742872878543723150424602716228709083911824893003744951256097676161577010129404020235758625937091788751944336195951081045625325007080641940600518377242463877003392429705327754350719886326911760178773948381963511833176777889104468983628928137769886443207021650661331694778273284921799372019475470548122347801508815162353908660333785133748681909167029861628762816721176755887357267929001902835419118487860213038101145395007478427635323494067612068269013500312070349289545926679792630355562311582841321474443685289470239123196831080601700357508457392957424215309186809159525712005501626499279033072603941306012356338680052645468150773087462490469742568100169515904955462493830941115821618933225212532982064205220659999859896807293994562571174818173717076367320796894573249056472150726540479025605738738278747824007813385273808306920043492879749616664376197164128284598867395013824234107994694527081850546181562095802394517027897563909228695014042746171613831920124428074344720523574372401225744971282171973903567254893397014542711669262998715900479549444800556258491253267572237011491104218308423295541881568497640213392230474330575966157335344656102685198119245506856674633109650053501008963139697061579680931111897493817178559144933426350427447277531840385581771725674174866050251029802162728159645332382333139647756400552580019815132464824498053269396714342538232522862424372401666506935915464245348031419999225628607195179670902420772813594276606900963387763681128739590312570677431946773610528225796441544956933187780539457350337972383531877831976533945602604087656956726401866432834915931737456619202790971351000760951518166091425665703508174151666667549577129737398616987869739518200780129377582581521087483663630421366887620125283490988835455520049268717373193222797319623160134752543593738998312791658307477437827890393166358208181026573941707630856944616648379536040962116571558444579675282426794567401029765180920200310738676205985416322529604976196452353187669258164586720335666597371920129560311813123984738543269034333024115310258486296199189412362124175256550558593694661237828078596937457464397506111235029912623462922531819135147451233081380312014175223241978962511391125233262196796189021082717287762756101191054935110957289552440562170232161057587995726934462973531826219586457810120758658850011803125890138791441206025438667448439598571281104804836155142034152063483709874787422806970877528087641461719129401473801648550067630607204326470198445754321760268604021649942450378971274849839914269004311579553264989293447408390652496671250799216527944453716751380509565600338202972102903359718253015815623378931314083025192959463236267421205611069937038405150409062023678709971848442245284256519730012701136841795061415118594518905919314458611654246446019377273705276941273850124745956092550158822923357893486016414332921163489906215048651797601975466746191246562606956945774570350105407191300107060548285447296609806615578994980146614221148658400299146240333371338947593786852238230207328223258050146006860352489757119532977626144136503584129567112401850928752071704659544792475652049196829582300506130815435491686162450871484859530995050025186269174825448334787202875323110660399479049679714122187304663340492747074122620611155235252345583332849623746971020956273064154525635322784076478657779790927569834564635954954078582852752667975520351741092612087558915026309609173866159846666258698331967298463139656004583676579962104534064912045609046801534841423531570035105193392362566083668836703441845920453375445486945363074912903851786306013089985398386949842235911330826889917333341440676822488080498612131495289698502981352970429532262893702933855865594974625224484801759142823850166332006924517216952265896131201774175396614182855568468452726922311312099064414974902934325332814321340327239668324042757804136138714890495223042900650852033986270869384909649239154874748669519384780273241986244425895216238068632574764073694960306635655954382384734567904810934029261834596225970614246550570492224438371798139580690053546335439336413463078077514953125035784121278720485316449940063958882075836397537348531858211772335465368943461673631381681817989891029516437584477237259014864398958833573891670982743892527068935120481439750081884950018424035835093459873643705547403242726987104219748340125238923083803632776829589751862429423525456288498073186000574662142699845998365316649227432877813508143402127554170890633374513286427953785014569510418517134609683372503570589969818988334044710197763916795133821845653257188740227601345359975358842378718358531251006235943306709604739843333289396598386708075331336395803990935009237687435771094636495762704797818730206344554310718678912290722403130914107424396532711816575412110153730230834476246783849227993896845692502407849188932022795411228505144930170743915872647396624208012993520379312701398538011115490309580291412289835948923600454290915249363570587313901998196951148560494672403960985235244339226809877189726887232684177762679999099149078193562759406527439872069423928578659033296406418839367677989931968240507000039224988825311599714889562801244074531640938218170203126351859583024130307496804605436945278771978767407229483682771484210395688513167680890743951411886960885397190982291186529377916215620527757871720218914060659121629491647952369012987704622643359741915893720450720579507349556423455590937865770508763412877475040883014698584156744093832336583750317502734090627524440269323852766742416803227255795543991961579323316029136731231563087378585544229745241963185193436796675127368738284095625009350389928217534904384930311536688587842851930374219710011799165184399049198631439499171444113369634750038953921414808909188923336962981946849760878470672589527226670457255702275532942979743754497265026952894591077920010220353513913267757313039960424931978395112676704472464760323016901251513502423942952316319863784138615009799625841604416380110499565204900995532439359567989006660505414794343692175817112785984535123315213860285624094362874802286696117701599439647007788025386202431688940084425880629131913918127962342256375828884246104556070395336211904878132185946088014529449627612541631080793063143643835929001995928021685704043689432883122786857158509629274583575326102778860645458520040139003695767383673522511652824819901753737203898241424470820986866748965100605862418803125137430759106936425743514164468300229437317385211164420135532652949012932222986459736642155757998663765694614905598467033172636562469137966549769668795133183839446749794547940577441685253959402082807351859070041076516924986215597674043421206126836356561175145116877483286685765879155064555574740700762072683860105191366527998939588551532195991298287282999194250956004863515661579963659981411608272374130598745530341454747957781687660005071414359633746252258471768048783612643973898157022604125478789903486655878995339399102068740556482013076547508989181883837000883684919190191451927678769707156136831612431986745730524371759376327507501896623810692241621024520702686324081053292303617323564469464299735964744717299219840781743851558963749151315366615743984243434214056531322174384312334187391897991111624006978361643185249526068720616970298754333716935868358256172478471118317191867762433185664354648894285535460084249360792311818707371263167815172733874395112385588066629099164504042690882724074634030975219258355579521793044880630034819361383076178885460968738378275927506734230779437521551048181820493476131204147413700171837167962380425938800685437722103244759342392859415269682775877704725027998200832497640039754639489542159764815715015342341571244500371608816670771753989213346491787495388858321084442037658965455698360719211480981691913707371015568294928721915576917782969807855131289432603547243072589209699564966648577602057581428829998510418048643790573396790360899731265823314946022218339594157516472049781223716717685578320256883076883133683426730724645038287451993672597737186133289433190543635163457707066804123396382958883119791553841881381531166600426076105508459712606965636118701099347280014850602909465651677260532876859914679872859425975209715144520823076338397456617362717239861075262912816486104656255303033877987038980338853609515090503108553361309724344616276935919468190672812308065122760053030125556392118031247447925010932004798122521502588934623551029753274009963194730744680011527453303915578410512331407689766290623864861517062470732388020975726992312970641947291891531966062359184068445649828826556490657092867915399401398525213961552045279294367799169681566079326389985981212690417334593993511563735954031514154645064104732386023639239245650359893430899090600312663099890395085527557966371708618185832198829893861608709263563476044138529642459690716416862198274182034997458500183404418611504707020625616450199302933824136990659159543611763442467209784769996812960946864298332551790819955775089390957193696444373714046370998134060394958955508993329560021541416886370945771854297512200704124456915485541400504171575758995266348772171514034609136663548175863181868283310183546441938036076581915567023539066449996841049296203653991981789623906342052715009546967689805033540327719810726236070325997865016999522483143080753649288869216139608610147866039328582430129904022070136434861522248071135782555068281892792260157437655656211581152196792448414228069716197094291683268600658240170497613796439550685744137624794545393904474008661948386115464734402021815950605064202696595648141584655547510882693492797235937342637850079553224799505829927969784192431336924683106850893291787337381162757050697529633396891490064268674391456949673570148611529993192867416258258051368574434860212373312707855437330872966118604222720310450055561558935727864152045876150784237517930457817810207800386801390808470242185856860851818435261460061076605700683274042774179369174385348701209044158314843801755483681554426223138438644685104016457642408484999537464432332404907132867777769047538277702357615894256346866515219853129017939571492558891466998398104713122478726571108754132029299946075696231251614803010823298138340315845070272231461876693638337590876898495960001342327052288080249297255640408806643833353725768431005553465839100070135345947666511147356111366256332989633789200287842955410616557009913143456005611637936197192155184543776940906050415210254558000930029787864901943939781906411384450682933354872922520187867023173270373467712825724620430636704957639351472679291930635007902197521780953889314941877743829116420466490203423082501823309306769517111837427753457261740425770747312365677860316040400236826256243631892647333129460794445224633357057570857968587860081803042309850353352694771844329556119462351340552712840351021277335180801727986474235348563903105545885122474640358707000530703333062456619610743907753499226508266258474101578724105752347850031051554432214345123500952297198576180691857038678185087260367888513741556383905182839185547097494671789787498039383620605580223914947430958879744139346999711682806924331918737995389016651413864212978938427854956186334259587119164794867689597460051307877616355856302724204073330490055130391792909879513889253596539921321251395508303612250214219651202232002569451293847756975013774484875994208881026209171049709731092248025197622096631604254156241792293704965305229100290639521199070681874647820844171231673881509535369659774166626720479067829273309989263485548151651927846295724789916099500324341427504300670559955814772672642250777629606048526728274452474100812453244829092711219997459078290310812115220599512975864244680194386522356759527367459197914024474682942076221513593098185527817752175735056867939248339787376943472388380355239499414900937470285489281982986522829087721110489700170060323135673139804124083101023097654350559759753000730509764463720245723222032989743799844372261738511918318259120439874668599458515968131689235535540810421175780885268351130701607106194582031339795648442149326740160216995291309470995802312659531150428063118444802158190573912419469179877535541250381240066493590578446658788374158903509704294709675901769517783050067762803974459179319906341079725263829065942332002935038990649960286953727510656586131023261173572209576813817801105563519711860660983617311297720760476282516370691374772441479096178595273135857679356197543015180594537060399548963284478827262381954257630934020149600631169843572404138875666400604377492403974253833690517597851332494727719205266943709956586855928099567275662522110107003819208562429390426696228257089707165707425007575166343933535155378733197507668037066913421212571039916426689169229089903621943578072745759810970706112865346277563024241892288226086426420824489798845817101530476673705727296441590290603259959536334098053559788303315459500509700034034028519005504324815861538038353743307396588633912666466485531931673464958980142885146517125490615233099105440276410052013801939397768738585803716302961172608516123739423286192030362171915460828431862869446022941027401642822966509200110789492925290451429342609944704639022709249665443231791121301973108638700036882066892813546224245697611290100520189226969034685136138207951477752027110782663474535570679699697008914617787290597827265068293340081218369915407522822666136418604890388367610475338612625526636031510660606690100663499982470659746372476058562068708668107895605659028893730766298205066439316439504252179953624390533176868127010891437365505709070096280203940228702060207903566067362891537303063553025041608928545373784404729302453960746101335211124913965090842121641351772966540331137893688677872700961559656006169991979817112557739683293965309168335073493336781658720086753754901790838693398452696997573772583745624135312196407247845140840407890057018443637260181036514551099160364910829652444883905073820229946407967125463439963292671444847448822939168620006144642660564279285143099464001690971297648419657418917764026996964408823156957745969308481298123053968955227338930800931641044191702376595513946418182185623711974520603305260739068901090925759190270084247955280027265070718667939632533621480763515828792875839752693637618262615164988281366037593153770305836095027665517244320410973852180423170763261237017506651586155970058918779122910121686692111914072087225852580368487794696842435679769663396906594808913795351411375260047916608628768006051079858700386118665352736146444930356279064082711595991454371336436327857841998528667814639563525766707960354222916790464125091023056889820196105473111503716365824053433096773767928680765692200062608304452061361351088349664426403874176069628057887447431680784603054486022869503678466273026586112949612905515166536712495642685545588711456195690115907683057948363658021051726789820329453309491628600872186360859453525767321885886378536968870876857542261385278686511288627750949162765783484109565877947420818427312525733560362902645264771447671994511888692306277784144526744780576740660425323062380031019049000131481385949444829040201591324855596291184671067310471881961060855916050316177430885826403043283807690864141001367174905316544533442117530072832030212308743146093073390842483531719888863875052953081858509276591397128186091926641979367347156749535201830084390486942327914494975428679304373578604427150563990087500937999884523282852666171966014819275399734202934421062560138720305878942304397269440098836012287529229829262943032699008647240593542133373726918855660201612917863186582594744991452120203577765623005322701724452496264406519696028856827178330792529094007843618250394614194183901053235387912144689700352437142152829512901948511848327027310601264251498862441286990816455019855405275252199171572910899027525972690134644874136933321934643977212394360905161686308111676974659967127234994459583549877003511174584800188101371342884073549528540518667531781707446396394087544840984514972692969063353174411686187290391214718904659423070745831027027673779205093769481114578563429315400782022378880474687284258863298916558012295576750923406103138040238128072102135944074283525165627577159730798891119426066116670393291455086414736753709031792851667391421780761742451964782609497323351984717746396050010488280561075918688507970661837131516258401338153190907147692413788838404965405032392465242164835398400792717576524104569318586611536074650739880977956560066252229439457488818501938447591293607590778553344395106654302289751590234019812380744792125559240109676841090999509451528617769426423153208870683703333174588463174299581597377084031614501411069281745639041593302342377078211599705723954242764027766561033880657050613441822510776689355917817667307455729629591547212420112110619161931856327159418628760036152446402936969540784066609817484309154131362736352820563105963407145974419085530237744045289513536294111842854889482801295147146686118896868101712693159175732679594532358130414992572952024535135789013526768933867652361204020160411206418386150096663831539731022207301049077826201224521941474976656913404588082083950119979361460147599325005305436936267580339742042131672625543663301476065977772395935744029242087521029079281504413440208599647571737361430713671000608468782938851043260431745425708848810369084536511432165874243085385951083457122145347410947029638257597616389651955345166822174218131669597953035936797947079874778801007104178917127620153108324942922437278968271600166590363233434147106487853688097746877523921937443245950750938432762254767749522993968779153771203673071676272094989426195811586488564057528208499171789264779918359786599828489173052665539292169862365744012742410970127744821465816544535020515388534997278144203934051082994342318115371601322390318847492693550840437701202165600363233790349934214954723157627437603296348144211874617225778114328184569247121762280973736978665980982318744210074554309902381564079956878958685395163817173327819751017822351548924924883673881302578516486801832019224556454023942191349241988992174185649320577214054615639769129374583991535384161043775586058654195320438813157001056948198415865652543923019480324811262525660416034000408074247569232513958190917152171506699581311973457101813501123359765728075336146079072881413087100907878949061410802726688312349018814900206777789344882375525450601783831464316075846623721960108531344829844715205679765393586348759420043628669267546748338302095410043996441753157052532899401519851111974687222034182341875865926599249704323885896704326140343083981797367596235159347308653715546327487841624765211291165197012947262985649949193633578386907781549470758144269330694014857827661124231328838368284103139310905801385780954241083989725329974957089107868490450690301568978866329746649235751693608452139822132295719906947494709739738183045721682268655199669699826135309218486378378499962993158974680449100139489188012370107640188666003247106004221321590129654052799290953491471268678602369750106792506721995502504206049985882740627868468457977715141157234040573438343399344363339221245956323009839217459216141114401068652214688787973089656211761483327535538152072616581934570956908397629608111265510737447378345015562171908482561828289462148363677380598202972300938776848130144719480832965180473743862595880663165840306092228610506427564417592803152681437911284107967611450578016132299101259412102474752778005634013264632716071472994946777444542345300175341591652299512620516026512805931545201971464991786086692122003976985732326541470653972191505371252883384152386769818960755331622827244301646999145103085301265117842178263731385347499397954580030366882556419945758280174545299048623948182257631395092172915487198665380840584315951416386351022562976208926813868138910864168584268815819443807136633292209138793482324580399888855365992413686306374512606762476561450139894882335449295735041095734036481561850935546281417106884239913756960818718862395559998354638490483544970999695419338716143565446162946255024092150582509194586281834976824074337046897461559806025228488722761429652318811712506751359798036826657378289102383395058117904203027293641252965341544389658971822771712615869148349046211555664941874635251133583993683337042848665021247828480711259247926210062942733986599054359835004855989343244307030750945023861488115510890483879472535136833011035967828558296022972133365419857216706359552741940283099632128402722482803130828697052313088255836037766203306566445135809956996453948711765580259186989374940857462105754472672097826155536726101337936293156753957615664750988192452312914771848122035853479878666116676919670193067829594095089814921579021582580166826955780999524944092257901355982123581087515571781014675965448234875265152003894069355742257597890282641337239387202246851392831914417940456273262526595277574966866257191608846354741372479262465457352070569489836213234890231235585759519354871325339561993441187564365129896426134243147038575564121452411050337378901928243971366084088522689141898952375016713784260918417441219836166546516591190276877941850261850892545804996922692026343182421692116325694397670735732751620174571795638977281895331931498632240326673846233116024028809279950307350779397388357579594161502857573051481799155286812163155168449048137357951707337207731894787108023394678579333541223139216794041017049041985632883561418205164761156936488569708833078835902055344244850283641388800441303905040205939776627357219873654028844150611663849226232617493269551498390348599968001360187253147707283542175594845698143964965487664543058016343274231818790705461571011589005242599378187821179389484384540824248643066557524756038703661763113877287364343679447541225094085044873946099680747048868227762618880072644786948610836446745613849468409457856700972429576668435226374306924279240039689253328630829719965171003993175634047627812728737987745099367302425955397129696136694242844049969715390903985001363525486120421434778347429781496227315981748608686763973534620663392265802521439464994913247466502945384470049043841793999569031107027185468941578799221880450933960857643457451346414086788140071890446852448808239564225423537463805859534897386806015300145617295882256747172558414674959755960142836290035712414040633804058811196216941813523922723747746137205360797983055377138787398535678994144548567344231204550654455991844199060637714926593302634248892742544857034417195223217482736444207057429682079414533648902124441642295756181216181109724498698326074451708857837357185509584812581147940998320006744095049592362119679411735444625962886245863917797053283696072442905339341272617513058549874130937523162896762973118931754158219194501746929026335619791711936091511876618813230503871345889515952426588273706633796104732066932603146424645451120926296939042210458611474053741047658263211185975993074090203982399012954355552459520922929375978448549391904199380661413844140347864435865157725820158136207490953374878092030693309448603264855502222348725293829311608883589967698060436414091699129868764087881406509439010104304903510659719317782966063369089249007497746278423479709764185584414324505401914119590518957376513504901900859055761494847852063580903644151416836347184012889175864596193636666810207803469006859245464132530840576641947306677920953546949591692132343895916419302081413351016515026640485887509437630447329921002290375360898449485149238016838908987420485092176107122299671025292691817113377077955650813114342153288505502826177321575168754507914610638887258090548639376511647067594538797414369341471275354249405001268783858189303098512193861950438212662699781570097050649714705815915929946682135023573925140845210221708938110385877306105287377085640353373411814884618244550112952065523003964243879844821722840899918865648556277020163831841540415940346291744374114064369430921809507521757555349183467270494454282942881878223414005196246138119569519966455703099419769442970963204903883748017239401483482909996078006199796344332688016841191124023785114989698571774519979899207759815361018853937259397801022358375689497558598315138158330046082250048625635057042472139650077174273102222812943208572359494656736202565615354747805454138346750073751959720342761505721615060264802607032828029241938977211853065329353071716995109124295092185748858756258043860558382027636950553838730477164667193979019638514637261434567344997542487421450932634022932816890639503176545475004508085141588051525198139521661655724095911814436240941324962986595589575237877614964407992525952090374367738098491916443907922911511498652599211843111078094105689036382531846003187496349997160940906239414177026020066296787602770936161741623767391260115776423334755856350338598984844564440499049235730023300927840678462525772998741801064920295888087571780606286016272082176636691760713334686049229990146993601469764395286672488088475296517428748748736122642811903768604926496657560190923735492652138064148433937551319430611929464891362769996066819543590385051298939191116401537769795243309650060472892650584381570515316072044183592020928700255549977142003460742557336155504170480730157652908695619950479361168758124073322448055152873002632500730469561954063694841075811510241843224787461596120780877793899519347705755872780625598919964675361622543298947960168978456679160541084564382053781927905621911124267022072488229487068024085889964255072242299785348396776837400842264897048023832649568045249488724763709440105457692787250193884755554865615535130369685604391364829898015464971700990330582402876486503179672551102378732464769829806653448187259540416943013773458466770675883174241313239242858523644655479779904830234203267381187138959198686714938956819100113147966056754037720559831880629686024175786495009005217876748361684508926254600855608232173377179350391239009760842450290983584119902804456714083703260494741338507944389199670166833992625682860250671714940375228012384810111928029348613274823624253233715374357146646442403639372544718395549378061769829315772042056795151929328003646738880673309834377217679670589663606926229612859022257262247085212927143929520029599630845328799712516465784312456592394310779646845128208230326042286873166682014481262345323750980833925137617462719199970264282271226299296764582589910126763282153062704979406376722996898239229550834559508151972615849964024720521014043160006623472258465820813544896897427001379315816721740608385548054146114740713591789005683450976591801858748209725495337679540295850351802607026950292885101790786652671074323031438388606646873288845417368819923516995538767454322368748921659267613767074507020521491373554613253105232942182926689329084611349188926845839030195507392081623379191599306528807525600102864748746287340550470583308874972504097582816912459520299435420168393547208453179740582949076929748450009468689769827160188542703404346804742015627399718730364662168829998281006758091353281357402970548569743015251686573969827871230902602486467666408995753696992143780895747421068722643310083890148113002414261561779967303633069860269309741379812942985121750802875901651862122266705153208031447066080780943957960228832181642339699053626593014716373955206259636132477903517890107259146514941253298806221623884959886130587564721881728950752604619608858413029039383872082643603057548999410437020009778885799791766339235572621679313190247292752188910279846469921152474821838884766487348571484535395325941676711631631021364431733217823144022365587044071609767867562604509974691392318434539952185743392914467506000326308257809499543959487133945550786512417716027085897576175177503465073056656774375044538547012716548387872449434087035591766877144230440623845471097622006592863882840512194927407339826495181080365249938306411116859243155813426295804092968459903934777800838018164768203995832699068082719871143518050506333887106938808182302784341916107706153799431013548726103599616188101591312860790140446496514485774819095536839774107406312711813782184164413000564629324432680899555688538384562868964455436619238329204602836476025562886846463815513262666815641597642530573676174278969105129994537353602396421452944442363519713015072250688434932278088264526046630970060581065706824072429257173133022012179123093262471060864095284484732290575061558615156532659249330128484788878259278253556942276871550643550073135753321233162193855829271613161898763867677115114175345532226643278411553158592483985300308126636666332018950972633639696038254173474258174296391173177391107549697797805972886304685737039273117574450769765976396585280098219579059408164098349571929864103361100514516460217025995248012013604392654173265314246300429381000489210879839392206287716662221642129484965444573668611990122845122919025530581706316231525339985721155116335478788039583455435379627912162694315833510123799569646499947506673554693364514417745688928951772454864559056147696243085778887376622008040127639663857550816483723130042963500660823334363138295491682916495384471333874762263531156792338585233677470103020011133620887404005252034690693057805805949002153101887731921559552627196547521996206665775233112823298338074807164521668240517315099097798814382530619298080385392666860815381520884515241094464222159046885794367570811030110823935948447084402608905756284139886038552880794853778273445649109619254299932595184049736301768093668720271245914704716257241027517823418941709286737089117286526284661622126492738662529934289544199218471312947076285308415781136290273281123469424187638550169654402055405092362459193747998023431696218443392371985672041076204446122301100305305478388284076278792949897570869915096772692044265578850649522938076694324305591389187075607497603189946999437542425451795115169386474755685965517704679836575902525003190416949153095040970579803092602891852528862972024919247679906008777278547124322884368719282183410495239228938706815519102040534004151901988627253457893588845011838842372330528763345016236345628633302732155062620120166924176094770826542394400344771767643723496559605486450046869411010758053221037557999006765410198653598706159531762842973997065974208122963513139525388016953961860558981609533821567573174469440684339618538017375861395957540321859426920073074966790607473684106401206272565043499102880668959868920801871494318280333926537930993537840022866514197409278698983040886485798842939228065731784896698862844058679326435180482849196786849966153134950439086233390288491616602984516969874877235216191788552781970128536322058506973277244937743317689906030884724977988930230819090786640553390055202406398473057252523940672169662204142863193964202569725538044193633274800017756912101293523515112660001224722032195090466761319919971263747924202583715492446593662623890620501498278613292274597914877140261003876669538710459062237258602637717283125191007772628261884478550376602072633979781129839673594479864719136731080991004576587500311000405010080294580679585712542442666939069157067118468196002028483066081718772095984754553063483713366769203665957205139535672880073822749088924077447525357975966630184087536401486168345896054004404697177306424002485294430481151256596986275361632332406152787517624553322414057120214057339140976779205562489851110387182840571588879600288341612575620718139575248367583700286758985531236053285220006631267621342022480022575961621837688443489988310964419113381765693037247018891021066914448549241945409926397143311648008501730024218299216303306332740379895851247051451373612856271757698543265351252018193240192677274624651973271695068776205960463768423199495092521024046608228883127750549297634541203894732212487376429649742844339073221484017757338597254311539927698790562162867738676058830308434110798745291074484334562901425970691588540719120554911162959482130586641442807337575856707377865574391488173572824275769462697919462102815411490913573469586164352663691653119039298217098262308655868327144111866342747934295159028335418040987446791271962648726582662782848525873837778615184035603799596764854042628211601665751417305169730663473741685363083630145699861201747457135944547869959403289542799873472662394929534312006451426476749212558781119108786406913771198872748656637619879185470381696065313589199774472681260697280267584279016871901208685024635612739405001823285258860752469940421474192004731115868644619144053200398350455630967282528102453238420851346430113489873023280386448655007817806479611525202600235139209439295100332604487962874137094266025370754327539301519625951729052362340159071768817832436472995173813384175242814306062062719898012364152566120861709715296327682590892532071685757791161371855357368399319893815892409636072751894096866516396766264426746415164605529396371425082091406229096335367566296446270754578407064280636744178477671752307543377821387954882428554223163537445555434983548736954793171458955859249731699793012240455624233733995156254550364176522187416531065453792242044912733077528913909784324291753402794709234675109921820439205614787878491159566303641008169731270638313384502394284586687502422400968538752766555532139625907982767587069908835655946550205436558079261449968877674736051471004852736169209483842183486161272680478274605627714920551554864609963270831508399936570774050243363118927912271730175796045408059968789056712041423421894010737620372884173881697557144821227914775705903756941887589548930251197839269105008371000349683820506904524621745279641762608121556706377060587112717894316335648689880182996298767254377116828314888822036233284603773034470293187207489837543830802680188206944927781032243569755996256300865950134050088099290149646462040630393564859452901874051623743823375044767513577268190835009966357881264440360168293161204941863556676747043863931892439570693810342962643062768785815605601511346064680597518786819536352306700293937699022661481831732602942307720611801574903017342036693644399714779687630289447702973915271435468403647346349500033508168375814664917950163868607670592799321707704069758056539373575853988532393258301807842505427850460929167315100185016940957522251398765197883164975117433259546694617245115223500972826181551230403600826553106920642363918551729111751181494252209580956375277515364973860799546858720042621093488431681337658863812593715477573524413650412153781057140885543501843450370969231415413935447089669555243853714195833103900705944739150433139030130986355560138001208301989358067379443082158547185918403139040534493518560722884798418403833207941148422733564115975988642753573372825681752493702760834251788009405914749707686308419775518355950998386954859245568851509855096882655621536797213720208800008336720616090069446971285614062755698879209828448982383087362998854832935015727688562683669583571923766335640527152488974218470722550865519929327331156579300629606169470965408903522952841183402377364828998969361899067179017030632759908819306058538980934024689901162505605673746809959763204606171536164730600509430194450624478960774360976342230718750656611039380478014513432762795090028045399300769560928884237720380164677665850620975849284336041466324776920742206143999884387532600751311873672025178492796184172135853532560048322612876804274271351321941093943107619871527394396659500294892358934107069302594440762622776207904011380597340152072269750694717229361253913991281512285482596991155312828813961637978210678581707484438843546367108292631118588602440568195562916470002021136104746455469143753941522555274021057390607805840787625585704400324161142980517758251267339403226683877510307569819330999518610124471939116989063704409232876719859358925407018934714871979992494599464052321054575505259607914685119517258096711391319389503585135448509579665157211377395823534081439188671158336059739697294243316791084379727417313564844394387813200947568673250829556532643556943203030391240431733530419543822259462112686879026891627965002200215279200466824806875943259889523987776733713610080563493080910336966830972513893414134011179436936587095287203569719248519284432333910790633320477329011314242976878243602904334299433333441433052479536995570055790843313980237109589719064992786325139016789805605908288007524204244237958746297327069122374823265898701131945675372369185754905122451642739989736718899955918814415909922887998751846258037440641978409429541967554063158664163005026007901281795239542595869838350635243201521104029359411210275962565888592017716881280072647751249434347335722707449293412199789369531325325088037046376382537165579404520721376626799112336222773176416344881095539263882292134458617226499314866016829867875018730874425866441249748769515128344428281781597613496638034654083709423336438212793456232482459580706710732061789752039159818900791096775274823943170888557341140850920976392824381050748804406419547910463434828367955304484319263564539193569716356698473850120323978467960239320915098627390007930440178177392141725523741293302456469340836098266233539583790691802142417498360009063057439590901753137527645305364216753998183764266136653027174638904972049058290705410834253201142913629585993759967741704363202488258773646742817803531941892134128742134490735116585282322858118837077395373881157475308273621936262132392772768733364077642580920555975648904190878327046100712738474591023801359997629501654143953668634859487535136803080854555497880701687870984993276264943998230192823389127957212815595956913508995310540780464038515077904842438718386914377624802115052316828580480857442502105078644181528811880937386716510290856679534412000169802054652672951721438449941514386457422309849276638024102795391754550215711346413495590348169085632419463346553220060379017427727000680777023350841234777059606967662404367429318561562006588615718698157227511932868485160859353182344725958821563844501200062870240096001419379259755123263582867182315100666221368111758161223390821862873288042995178633492720613700545118357566726090775077662893642249526062431376809996984611733221967975329946359043337029682246324571540507583528325093523466208066528327533381305882744139093804908287693112039484218559395830185563228091166867314178215105803036559908760856080112565526429525777410048489570980850343193688178772403046253681870992772141706340292390690217211648238739838790153475239808678085247493347153932733245957665962728275620977085894692277463231263031542207719231551986114185162981926476922256252189340726672784671174795358380033105114038155233788991554117422884939173880672288818549192108267054531958943519009468282524727055883394914861085822931716535536829011761196504665799227910524369555151015563944114920935111128406544461260150185787252206637889891627790506915679531286759432926513383675300940174062159335212361795793852888171353461069682659555384323355645582503938542404342426696351578117252468841556088954605610957053719078683143976961688830194905291240732152945120551490671885209421114135116572553704356210099052232403780190671820134697762478962118970260063477046002782696354066020246337411971829853741281863858726111055386860228614227721260207596298422685199194994310156587724725830734770677984464337157955119582960530164512604825766446393365021438755389090050545129397633255706647326304571885991056043210823294313362495440102601553296314691401263286647632582060244403555530151648274604761026116636795987218638602913784332378228465934281907671851077981861219052837962405728974046336174592327075048120451682894228887305465425541646907250891434215541315365727558931492043448974182243951435889148057079658064881771413580920313488131908892405212668578625357342916391975512428541367208417159423447625644966690954271129021169330083205314891669231303494481603151695332706155294366405488103325916112756335212759632869976526977069111291576894666835023403840240315347892613442112716236349749643304957228164437233111811793508744419373498142476865288484887084127238430186587836360800319596077254623134765445025022837726689054924250368842087046847967818831681380605222831172101407845537817072148876878392014491188839647410086568890403120312239776889393539973262294192286151719325726872193616221081317621052130740905456550418164382649633379858836120809085898923398615419133261151799571084515627969109218843620845307049213319010001231265034047925439234645224828950753396366395689193781077590495662440298607171627768607794745913950865030899884808333573675434671835732058420399392047878039832213135088198025841930965530816336300407990815520950328681642736683274614046595534780508598255675905723191389142657816900161324706813759038118410902027885156749462015363746569500720567867187867402993763646510069555276624008931774710384048354965897487346150498122681654939565654304651959809064658500293840201126344417533981328016385524695490244583081973175071733358290658264559010174412106837464104614057387419371772950501199518496563522104240703113727213994565609597195206958024580938046975492321829369930408845616655769170168919991959404056535596944844120924678376460907267252648882722902285152807902940589356090047451777368705496874984917744398296439040489027433936833181927760638556449927171876841756291271863507265540137768844811263667681611141251118660377976446966340685713260651713072093123874985470135191265001321620658957388398309215388533605439906408289375987455276829153467526114801207251649288953294966971920360749465298163583191549804979591078650380360873740653495741812948787953128751813685230946076811716018273731863718996116949352724208663679377983513068915698252753990562834104753228640104166879339047069298382498765859155352074199322549403112054895400234342613019185197285501425621277958398119312510365054808843572236327873697577476069889514783446980729525219884169890020626396613518663310062455713326838072524349592371591222715041110414058347461180702914318921547038148866356488896923618583313973829611747280496234800557359547548891010917198718779915016736240507134775344356454088869312149967822902519917653626392131950580098020677676953830898179049345362623914573551708196795701811042778814945616391926210997964377649336231069509539800907429356981997730535148394233958049369298685284406155584521348473187374416681024535099756067213541555465923834425395007051909833382714373257393428230508712758468853333312937497167289280494386657177140919299020160205256140979261532523083070564872525354793763270260112012058864092147003388333579185613615782331219617824321231308127302156726821740491044261631230272482565113497786577265180450879175213563400680320537275274669352667478163566780498104089754929899779256657642557709129866565131995292424913420705726241628942938263202804696082274919922320469569430712613634410369746263813829889152440225492026450080699370264893448995912034646792452856925048221827631485434910396298960845374774267001641790554513243798340220145956513347856616109688062543268045644980587930000799677443714341994829552705446697515935424602687761466967809220655590710180885793419028342714853013684226554313718380407445049831202884889891411252237609811351637215949790890656167471835603394925281124113621569858722164493470310626760805089244697262683626413818884542398432351321826136121458169719016599819157018770006426210129442683178981172378876621759587819265796535982205771305018947082281248662023514476321933661681538664576336985210310340905069451108319648220320081829594813990084805599640695952133987832826966932413260837128978669686368900934274406761748613834288941408345980772597925127159350953650722444713193892474730645094183997983817021010564506257674888071897860007555689748049528423930614740253393314448715584900491736376403231191481655111195898998698661595728230717636522332481685647402498421264476898936709203607583024572668680871720624660922319471807468205901157631050163879984197859419762536871248727527453036001601016818951449977149966734634617206374550488128322292023123129203999442127717039141890786560467535727233969529782900929082882737194347810217875717145160832613516090189949377796877002982434336852650444008769785953938949859985429397978705894624165766092969230611005997354469015897995170969373466325913060157720934656604353565241825723694889240189735795023428573785037183955189685872248243495866841591394197884332255334628778046414789823981444702031471232037270549997230782550912741330687901849785236483212304277838601746435388628353269708260418988611367901468977642068500723283663024319312926443624623030264590258858345446608151750554351600436991730492618540436027343901620227804821319628739986323348513908237286813207297918010912372669718912375585361906336161279892643366814913259204624316914833690694257322484534180997534891699776464789597132192465107421879661134806103970248197113258771673358275455121611016767679499880572609279737751412912357609606107618226368893744085504056974423510471878769476180582654878109134392968494789305912468988564191089043255719545216675027275002188205460036544521757040448376869874285541512311701966487945441086912633688511043945393928661507247424190200104416138390673374727382708105643067879523216738844626251131063770660292344006476109158960196563468024741401728601539210282154469108859905841361733237751694963438126097068120605180546027093599926108961747138732131001250050012565212644797413919243788380546646039289188824024781825018725743533301440798647546480204028498801672851264609414069221752983517527401096119714095697978010858388847525602132873548507059699217295835047052814375582438856959934311655239841605206448542847155414873883502506135232987648833635932176041179056899927742882854851033737268412285969653042235637323799858923427409346857136684775177306968394707793632784198793517104188854897671025822544720539471637064312025732863152861581922815575961291106248031512535696694807093129060208436539390602975161797991713297722361410865558957573751415108890481810808304383544443853149528318552621299793454070223565847468388211146235642375791646428181205483101178607690094082831217972983903361873430795164572264321273716093302336656460606797161770999921443613195358148942471124184758378960136505519269967054231806966202072470066800353696297577779083290280743176455541272509208626109066246674509288228061008725465948595870392033365181781068650095758486408078209121039191543485448860304506772875992391280598158402250924018085687571626790250499670720508129319277050895316732600248876447140926596272943255983404514285434846722662284784987807779533910296245614491708388918230636179750045302101587183080553385939739684383530164920564698285202899176581997481733258385813352270118639732686897587555971176317463949910174071287195551623927241277382423229459866679012713814950605459888053540832759053223799306620735956001944341303702284375561015360767177913419387456396172005088800406915792061459836815803585200648067395404327948245021868553897017380871426264729539917924068813684106782403156632972959053247791324627974011894225164546031675298890955139306067207417962149132844494210723987005046074762788463758498464365645678248800168746616659946974669526577178058502677263894317802030178424259577711834146661147523210406473330778942140062739812038776575439157170734025006916958319653687819717785791753892228693288259898205539093420209610150277416074897193092216794011867329080517762271129904883526965291802457406452345068100920148599460212244418025174492836885949722033102474466598761207495190253530421813880614567530113595680274591674822579727861797498411056527842788174692644599742386269914235191692330031698985645456592509380591843427520154628590885736230615932598206635916247420318738751695569997767891235076059571814644373535503452297852177043737791407844883487195317944082733253957848789591573343038328513973145398221374849863423837527071294635886767359046387768664640547651341303305555053748586293249142323143317171950537906384353592699161886191322204983914461010603449437626150092246765011014509075858691798025648039765298365005363358959491680406459825835654196001284581793864678154505163941493947243971863243131460965404011833554434898010988090059767423093646522638137425497892003495604663483386870273997081544415957896125866541924255079808649027646570337629497679291477395599449444879392581718244435844682397089876999664887207591393289133065210114161262905804256253915498445656124523336510453454412957698877305065581454122828284803604200475159854608028297486606690110494718235198763874081083823095113084849693349265959881048257190516694162275338741071245587697781937804484670407495538961995910712638484924865846631441163092642118973334866750175542230016643115889729505275688845368975846046006167451708487689089834862640010298904448381812544322006904950897363944300940710093725959419121976215303427194455025920974119347097035933376930158255458315923892539504657845323674075843246630455594014343385094832034405133603870926391114175098182449734501192521909111088687860254219444336555195898096250653051096004587154720152726407262468932611847469549370728639396307892302561043858136758774893609884490955636904971190504049400590491578618121769096353566790099987658901561277785436307229343312268367591413020404579910446327209802128182483344760767640324114416279104884138117964108195172707280206210231909031407372104771385985809808012489463590755165872181135239009106189606770430245293709073937503813416587920122236694694591395000891640766646823732669294828097967806455008847857121030701470803332123734162379382856831511246945242577495473431623989162788398555944716372236041507406198285659659814775410811532545280294090812581448034490834215492731783510523560475138234885452636726668118083667143688722411012903548040668484517856038902624254547400484507828188418485217661085428183673145272202335383857468262269538019279780373915172969928421532375124961392700830813249977152829974530406331306699253813952636603745506832890747727128912408052426569345009612188135538971762408909796703894833184422093660226038653646008513717759533954943142823528127193855668909786783045583186437849869912335590570217871995754580535516520116723647560731939570318058274117361406274607305772853319529468640035267098840484191817332191515673363655080420666495318510976465735639679076470500127017009981643874251746749177612372371154069489925945419944277374650571300668760727105731025635701644897455252594200510898986380906088557127259080638621458457787924755736717794062135238351012081199593393074296755842563396465503734409608026020357734344361726318568883030633518784259550880365015681024452598595312339357271347539633437890997283720723170130912802689638312794716474184937713064162879407575619850982713714090014936859546130147710025265860739890220105084382828626228362834211822098060945045187542201953650595550176025452337502921248052182703176408222482964233819843178492854562922556952992314882398472726737902725218046962748966656597714593951508660771993479523292650908042091724095397307585024435843647405098409465003628822707447047072163940657708603685271845244262532414037952556644893577129095166370821708018967901484753467572192968919161011903611699464773609805249927886578001282712741168183044959634620269468815484139226108302236051812587202160342649947601912085988407896320110575503474726969732623247020898298308234328227075757631868715189078781310504759416361318630291245343300319876225968081744314110336894458409639062883175474837443751040894812488236005234515616236478454082626380912531269304498549262080614266382747612648446221613734407375348131830335191765194131041370834210627121073386301507890949830635841658547294088903684461426906385881642074399953769956658711265419778996961590264042721089427276672212233026775800422557511920637553427429302821347994136097428008205938549008411973042723376807855171778478507469718850222806099734144995001388027445321103924039037860815418309645705344347711500868985392742252598120026517639622471455703973981638208591502819214230410381526765862196451081274947186131407252175399753079107306625483084755459194677114139759136061976939342908520868158169479517286203648908894177736695226055325469859091301668476540182885263505917673254760535740602385402159840547953165378138990836086434103671627147252680777544827385438315743765193486956381439741117692767360566202831678932929949899350961345881404772853890768541586111672967693004927084501010634902789674184850233178005987556992483073346147423890612371587121747439343054760547289703505208126999139421237291736697022198054519514549954949020318329789637012706884933885798034227061622074496851540899498778953520355689564550760219552114886109707474410380415482428660279927488947307014761387503644909051427363355455814553431279630433465662666131074861701050805599751185785993169328072356281726257988200379772728640690624300277816692467828109205185127043291233410741113258176403003169754037956632174592969350426812651557452070372197916075360577312422646343537174213161021558926523242250064101778094777736865513300785735176537426698012102616394569431674813214263612691250029278343937505749925410120251623358180099189030095687690792555509238494496112472461178977504256518256107927934664897721655723034354254635216641660799908556728129623309674238206633494771189493182834767106754323267800906932900523863124840765517642946196626907225007274083134958657010929135293987629141726593489978227727907803902110462913198121731567175482990334319826947503162034284891213870329992995827699572925727094936832893403914290763593641080426229032006042853310546222557639130122720555106134654826082228974662093430954051092938906879910804052678294127858655783311536907794934123099321628176886229672985665806406209923877730525180574595182798125716052884664167711722769585783410974174749639745023937536396874271712626735811097547430026951399387233193463701221746456005644141045748369053299147928109694069632964050927918300801553935279518365621547941026173679903507346063221496902786346228134126152395833616319177060587754781582824509603211461956758291449654651766318439459835288519834376629496576736897372071058465125343490949760469064042708809538804510566115452187294310951149754038634757874662586490606039885052538140481662183063821329976744769834074597135992953399227438089515117118002724951256799411570304478656187971597497666295752236191108899742491520698309247892780357189123486915193164699597633147098421127141986588053113763222203437263479345648810706537423024619433005238530617725533679168127147433099268286011183133507054025770896349171389777568107699397520650738173710431647044608450915159109536280186123435906819980994964688105297977243163015928671390882757913313986873070398930479911622880179594124095741789494818051985560103906703941300755941613397521499106701633057602185623823585654351784041019389254339874305834148186918234598411451572092205323218898380055542841983261032685530729017512886482792231139488363309140903870929926534908615372622700735615251526327067233785379336333880621226260751313167606540605188710598527299565906663759674661597396962781279472409783575158651315773906822300971600260336121945855658085088347853911570718889212938845679181162306452305447132252197309269079723235748786054993280361784082866411444115981796660014081016202455250091568658120190853444003224505886299724749158093305649841573151166257835268402808882444481609752877907574161743727046064088222525247742784405656059880365583388046174132083696939190883912040922701090766067892269763753440241003820010316288600335467637942688766609247440570350741389217908386836194048072740217386617409684836869075594729209604999128262012183760797347823745910113262599187112995376620269649939290739156234052095506747784242501080940282048135782593752883960222002111215706409429034959170463414375486957996934386013998883752223069615643974123011209180049925768317939427092316589891884717614736592055281137788255708941943704149251721020073816875556647207684709289791446170694933621816374125337978958038374534246307477165589374523071876788045712371532257150906438950026173185429728403737160956409263388725070943917367060907471444917910317548582929812839854516914112476305013132393542523589518396263592648956937899288413521443280977378606197548698548743007088490442525257587768632259243538444312036100060548695098334033752086598316230596984099737770369153580066520098334168154496161479285671366943997023957577620111713359409646936942062888734045118875649248160530354971183425231602415889729627526503405363726758722159109174757382570733206096821732517363415459019624539971657037017307847036593669937271304631092124104230768524757509753627785939426565577075935270029942267354491322620972852275811365152315522456164519997649317829993014318011307302377216089349232415047980207472855679365578353162083637882524280859991301295883920976525283322237951618448238383464731998712758570396171303867012153558279942185242523650660091200001472036627389456654695131293775584015433650034398879457659595505851782046178818733122328969449623758941606580832154079842052725286584293996450071805615318237762365975351908589205601821205609359589838084398531148724180267518416125207617860679510491461680588615924057232112142728812896101221994824628984677484021226838306166325621045949532509248934457146870424023836700775433731350188377169709954756465067355101104330103122288973144581929334400492968256776549813291584546707614807380710074123482980059847658598414247499716927608000474448535026458723420499003176749838271663036261068902272819129694508113937815987612797047287622935120376615448756755673734715084134335577243178882526086114563789264790887756241923552132357497338570623668654153846236485439921959296378954194813844920709186355066119673339663007875905828903288941954432328526602406072919973420690869467366139562530935498701149888462642374683926196039301036362617754043573881254937148503707902221135732243168383398068749740683938547891110831253729462120486558173958017372499423967353096303089364259521246224635804366580978807714454743298109620283913196429109014392082101726326756332609740402897001143015954364345569443103860394842642594639969020411489116518781870035863928849921253120540411754038111504604097519646214556291473617687978181171447999553912944831959549338252326676941777998149348076583536866818816325757097735293636890192118771020503261701380934118651146516755628755310007948904258420505191797193150124229863024658778319625154360906376519668670382882415748160305749117820391601607345902587714185560325101829106992283427290647188715197829616339939034107987067012287043143443383055045449419695457020253328471798674752647031862465488146389950446195011759761851262334373886180219480249472395489799256378225996066641591707457081057453477277823620737886932735882742295612564437753615252561687715240565456888785790860989320082224311830916763148672310232412607398586547200936455637858555226010312680074211861191377217553912650263385650657199001396201228731667148637853939729951449089678745580110922024593537326701405205996415690772133187274650959002480615004867239140032594262923861312047566614531840570051808902236838088493864268946476195196834488912328028967560349383039790536648745768599292959653623943469066223272333716042268774400158570573259433969796457011930401233425403119127752237164794519094704530116631995124094438272485964952416387571612910371333269640254166675929119546403982533374469345101110849452356640342661037307898954678505600734468386066980544165417381166521727004475151212164158158732221222428181301412350613705747669791996054257686418154586359879638417261968857080000899793408727080309530547168541955391032557071496583610909908561475438240773002589420007233391242280603654623440321036912341470897224492377860769572641224226187280015556122278857674481034403765862087049912612504595050338699993871097638811953109200679083378560899187735689846323313995750126201820368897858147435974859132769028031708843985957236653269043072289310838979763149335615368155615080408677618730939400662394789033049761494427212110396585047489825909641779208174200125077604194305991310777844089201683770298429745198652546100675830978084558903931962431558965961294247896506771964708429101544662252974635690159816544280932608432765125354519674939679298220244773301104236798178946392666998116263648613007725968948624768375726362081136044777698568816168840166094626795756729674630653347841439871414992171231755800384263460231026460410756178502567205577686473293936494117524248993745723004048603325583176513596820825452652530579461057295885888303630399137955386795999872212179262527468389821134496868367386942320634946206854408568619898508473188335315829461749291991188583325855944203719640506244404629273127988309681297347685409966695384059291244315960642707863232504861320896017827857326153822136731430770979195292160582254354377015446154806896714563996587681078805239041690195522544979038382968785010000849989075040501060354659367007059279279026634666628959305829723754343889832703743667868660474870409590469089857776752878781646754688134012985705352073672461746166829430697987680857797118552812319578484778945182855486603051903251236808267222254359094116649414244655766087363093377904799244320166249597926713640498873434429453075258945337216093865880168232202532279410109825526116707586297605138550266759248723971338845332354148799956865390180740704294014732403761138662564540346463693220322047087756848878430589035517435234448448891969842734590147965527021777000755178076407770814571130888321420965235590652630972017624117419078829454603056282661566094158224208459672301913701113343303493892949311221332189742602790301561403102477227070108502084109251992232332647088529060266930822690110424911796026197533747020037047320021707075884412988477329705930833558965642743299216411137069671286038147433506024104935079218267549270219455628875216978521875644696209267030855550076007936841658969949016953303775946020904084745323344542706912127113775669670237590437132030286752397847265809552934594103575915201235817464880478008270894718102374396701666649193098513049642660968049649665845892185594241342321580553294840393549652967005528135329537995274907843932328877332726047291843133573877086671265746840844588712807545663554879772672482959055408013439900527384121664494502411265332369838844043079608254190527112415464268506473532871201135739071454153477417764823049768741413644547148180111291170780572557274840248738024041397046754718725227036751687850059502409169996583087678910120455427489304117040882416448797198370948792629452753416433453888629233034055620140636810757160756681525622270472756844989808517526446023857851044486257329573223178305444000798260435597380860055205066486736071759456220282774366179791116500803336266606623183328627183477915169053635858167367178658274324260779054898060081915144122493462657089002486558014182994097647679864233286209430836631343354772232822461330660892483021544219438414197631526386248823861538484000898950737343867498389752258949243483369627964777226628225657707929896713171793720601259642462542031860711585733694434109847524142233045116981833652735353914166354421328985610397673866534946847250232138640176902802774892916394985945491655595676900180699042067340382472213650599292823233643842234429000276094296401595643181635041542122631326138536870024016189017540959049645241265570583551489956918984461037291051248224235630143886770281161891854916452587096599198786050568233084597710182719482412765674688059791401049221614261514753466513074852357755251353615793323271286369324585534285019394171806092084727713487416184781479734699865593171683217958965526215326578595173749499408607796767935511993330814240001153631708453019273409666553846082720018051939848828038857049339824920698913817065549391720640010656594589632198706611038785789490053703186192082723568250617876002191767980364826482867540518809975018643029850659320407405246435486892667569045586330329090724104694896029387652083947822862549751866491019787633645840551736212983162127413172795035790796352088798725115989319757460291897909473504828602498241419200949007568071652682612495258030640155802657431745216267630809748952649378245697344491997154991197753669382993918297468834427664140802633802700832374839996610816622236775716827000911221040724773914166073030970719827526839920866113331171767104259132244170295640424793137322756336008642447824928705615552641172138394859518890392549206317048696109374044080801971876276289812984357718690017035406686247425620310057364937051954226294345585627011094770092032399079838436364425107270232115123553703289701904584996980133104291409217187098981716975561519572162461959515286917197140854116753257662849844021142488896472969967840606776745478822987389527229457156748341668913286254517694440803416590886424815890641097694076509414751622264513334739521790901150837763237211602911896671726098152453107154817931280008502907610279387485478051846875125194912248269274100688258237637898938844519077628770293267079390362302993940669671703008766647122046062847224123571044906396100027630384422999511892553929293001569827020107227301674322749719475188653348961234010404071653784050192684011397114755361712986137486704280212425925588610315710550926899916138660420038413665344461410751412699062043370294635531908428007093859013233722178199108262949341725783181648838175660495268266274285011993230398824681262135628633898207145903410755656420114215486448360984768504072761296484984832769602589232832401047899601339114322261790965401258683866668218157490128037383348090159859076298609641654569851771932213235529141678668855485216597435473052731518288185885286799396974526481849968827597578525235936057092220669220825319977877820403311203926725175603742294492660686693476913900102295263544556276347634235797772758451171158445776467137952146411299676783617671771903482954482653086905532292121753075540952084916559745490841965214489200730148671562799392581576356048611252652632604232858459031037470739677009981588916706461442724458519783583228311090476480404720994273082708829871994680964702227665459772332170169910998333972941716466900201403048841555253316919427386947057644268477992046414705564196323455863745400702859231598827510867814900258169057377612628440011275920615974305606722673772898831688452296090267680089996588581627599649725088488357926657069307347106017804752877355127939541132994679436379631504213946121106701185152037253941904182185409168825935774958249325824971796925792908728123860334027598304340643682457634797362450222698131094931888945900327974037709875035636996825162797421584350496400891234253040920968514597904441036518406926550699496384784780962260896558585202939931742238161201663043857188812938706353232972513546676804200551758896444881611237579942630307950601580959427225763592747727718306151549149928766434835471282188504632489780241673710843967592325447453278395919443044201088120734370358435042016186782113530758725448474242024943424756896850083808507266125062393395812333199471485179917216962808080482265164616592171750966020114751092004248989095875899006838354797921560552195882597382910846372724530260781596799788134256435909059655438286809858726486972827821856174787903989628116653672814630215033770139758835871394103343699852217941765821730601396729470667285325634576786601883600079077570827970379066512669442373567418250754252980475728202376474359884640904202887567831534514690247364993002967132045862734422180056558837661912208256440723557053573372864099175269883478695732718884789805338524333564485806422847749215915291008426949546923057182278066841893961321610990159164843512726489256600330383738170514327903891241729259942355030464886989709395021891623681284871187924341986979324602505969872773434814931195803461056143004491811166393463664198279402611138883564870328822588204783049923405297504913589862158372088097942951243872928660739914689133871075127130297929222251640956216712696346602807023556885128897801117464819333303970957099853572617488907014272182044367957725362375813636335439764471386134478458400109477952796065996225112098703986528270595617494829313826622756659393553726475611742443825047809971240301210366273869280807203696860368512201161402609587335370765763121092057994920866876848716288836529386212161648384460522208900457029139811018010797329967733859603246461763739051062369274648208545232209160037725638925995562890337674971526522925423394100103826502060704477986060140233589640517973140341298688454559618873298146572467210399289767187058228037899408991282859801142161933181147215852476012145204303054043817481273731658836174290773049590120349532933479278064268807729857700222120344819574476787792475537995861716473212682781674729318308030634604249341788644726467883371589008477604442551102471538330418170598685987336635530079760213820712844619458294488341099872449265231640941061202260262999065462816658009529003035884296038856064302741306767723183052637230163515198777236243112102312558473050912029106743545768577289685908674393363468756546503784983278673357843393467996908829946865855623583532414999612855527434089571772742386320224172491356339163978313180547076821737357666272343558134491911705357967571281820176008981809299739598541576298655554783380113444356779942272260301020978235720213776302143136671670928802932963225996799339628603412464602349702290579834627380308725168723802586374492313571825837806723832392241423964242821347217103759122828230282271265712028975725774395648396135187188752211781463745297621092572472621158730980812252434210166584116040970822446257222822655785133272293354454398473345553211465048205454926822160606102520369345857198809602437245732854530116921079523004543359168832522119283137990178230523000852807355454711318153896750661342183034663538376138800174184947736961662274394006743783994059067704861031105646570041304427104564920209392936821431089684141289010867945382930285059838472499711577769922207371968313709462998711450407273909628925909105155950858072400863478280337966839961353610553794167603981480889691939651270533753971708376392222675837535575856929774016664125539970025355623777967443845436285563457456785073462009759494986707374218999462134118745470678214160056105052373808578801691263103673228212675425364721675851146651813544293398934452192242589737706558232952979048039389409505449827181079484958824207742932172570320180344515136572334750590715219365337322357179822041015665711300744778718170643312302178328242450897305898455366647953948305077468504277311902627544703209954487899440748164785957431448974742346917442291272629112836725342087240516279068149329875635074773465075486613646410427449658894912729416166207589915098053148523802135018062694706369453356375106901093866413185063928542579500068947616205469692865832796882237962858832754757544694620735789682715451425369944448813314134371619285459791554715479709345375093346303848632277291198609337621679331411738266196805348884989935997497606215780449509712078315989907844569170604394048636398844998679698351008872421492908749499948906041445610191107441326118746693473592538249640785577181854076553227132547637630621058620249893746718315161091704135885724389459051461235830326823757150337942172598370697926711758773573018893471975733426648283360043340317228211781173917981121051143208055317536549301296574191783797171487551961953178085961286322537320354057258538824685000496456790743379722318412365437261395269022697470515087027801306488651170816322608064290393379523055810121111934290604632592548589280732619036467451090507777305862212426687786857248729088833983192622588589936121254459122487745067236786657130012100106197346881577867878949394201718530113386347041194948702452793988850830134578828993734142241549792496526755077383989677686914911309077916995724992380125672011328410685140116649069421551272845455045312817176482501049465293108450023930383828692034858719806623689138748140709644813127404603407727809840479746625852462540523818205428667450300745810641379935138004207260874330771468316846104803981950480384548560773793235682769120487226850941270580425113013003581345419818078535432605213488993208687461697438689016883654335742715470716604051443393397184340010857883758786371611580930371736911404898790100017932949501153993411967243012743577229027811378383318903673218028633178680179301105910091710576251847551899898768489152407576481032945995258182910005651744476786235605061032097485349768862458785939058024500797593055617830268948142987818957309961995683507451620006317882991020035096535414670354187567422690007278591843561908492840442287516790999154181378021349995004076873267060454649249074620207290017891946054966387787401300664655223705066627892535703243958542428628141781582548483442424445573705317826324891631205449384266618028335831840547024451379004010228273432689708320075904959354076834310272735198583213199365469750761730038909276906788846579380637091807547342304946599910776665248337862801033967957193328691293897745087915612800191715517068517919944580124937475330545073609362019757427014166191833703469106159571875736007927582720007933117290439462403161683195669870596861475902029298704231743452460952429874939983028317633638514129642788739010184079351371439077144460093908090252281284467069054929324516054001600507497994277551622024277318916880667799650240429850592604524143941798220631994269949193126303881561207054165282125203091490199850546412938504335605807663591546244072625202842887941537960105826156179160982420233320299808900440681535991379199723731621236553855873535576861826987719846506206183077662793584530222577097873051931023832744349642869263670738760650718402278581363776906317060566238812043443562706096303464824103550254716571270871658666962732605216240599958423261453604395529565088380248433501890991779294443844666205355975637095866755577140854797140226689553305631178736264239221526183122306996859692453651565408962014000508640986184847680446703471110604479484862927278282254967130935290175296670844657488268964988752977009378008493820023280047510669289775892100035986496997604577635856362492188156184131307294154348693148041611975606010688386880818450232208948140324885967053969157095528266727186788540401044938810072666977549514473953776003963992725104041057520099495256671120923083503183140304409532030999589110702990511582544597182143205318541456486054715300374581168219668291359737777901946312706885828127482012598256396042135906430971886813488076469485375571774483238741217237261887045025848255200281230084363085201580054035342363430911411672069737393026378370602124639350962896953728179964506297093549428508315233039787508668966799238121376150832490085087721856108472586253923822223631184839161145531135879967392572252904469773221378829857748756987341194699806513725290706441804358904666576257871865627259410858933157172117095407198494767943815132495496055114488060089881294591704454236387103761535305702972804548314698840361365764960278861285727372876626491315721328369932004450579362489555229164233896925692747723155728316691165159800748350313634628297908225189847894776436263867294629824470704115461316506736479256507546524037179596173584980203871939317494127904033136435762528485780065369227469035422518857928942621632674432431957775888067986521448338821079298933181047496570689652410497516673426188597070528471108620865995482069779828320644344618586456825402586635217454724023168840738467077434888936264113307944529026201667732687307764957566206676992485336132973279767854136253977912544090750950042594299708046280989050609026999368289933592085821568385898395405840592012678723005428390962323231400526371766745665092717803180100266096808232376396432898733908041570155909837584312238408998057477747862177825342841702357802433919104892774481587662738019394952807679401510264807736462049920039745647676832507927605222918610790451360432246095829634241376992816496315162319098053841485099031351592518604749254667825658013099948808482412890188929562903335957996056300424904058430499556694907376170474614915437875812822432480962845398500602724312998053531502362372381690766363250386844992536380995518491224536928054862120979336515692447506428921536066166090777644542927431937570212311882970775888813132263455270876907765727367587564182793770188864125932914039187041873396996018020414109512612972004610624775160626545193724313384593627727403131588685798414149003082355603247207580551622600459424743102694905461450685537845911308963962349629234895529453608033631046472462234994006795560482652915454138053404839160035812017073813219484749497190724800083287746858307774914470990728482840610887597584296898515828813963670067886268677189482404683861374769779489201488811753723657413941264131647392741995410305100953651082023913081712148455549372598425490546211731822100975361270542630569748946043615237918189720811656102124577354492537628517596068792890627510156412720310921673360483710291161948519022738216661752609884629437140592203959948700064970166968403764630795260184541931138353481756383902475844476562794276596416525735566386231405595807537364118401587530523305878441420905094885910349210201981950762546791891442576522381938864905868633479384477772801798329158824726139833474435985111269902049065050059557133270965272540213855851136730167329730475779284145442640425871126992928216740545411593740777925759652442422662683004477898375028563909982750285469193582475510669897707541755951544600228649105989208566628473443834015681350132463159593212254247401218051238736602697769664948677844057574619848921072529708213051801358710985877205510985831941946048243616280357085097294810774143481542292660604525791929646949705069403335620742062641465813357096832213276850001538344376673258557513382987596030640309384576742966885694625240239123058016389614013418549958915584650844858037623428169175400581681731766861319605184436494355920640443449445645295385804687531566584090151070284915376095943542296050016385813776366105069670052117779794106179004312522677885504057909725040849723337556880668487554684965861571969788652308625407409701622947539197996579100114168699647029906381222222756850458380655750305293441169593652292387995501922070156525621677617789384480650583352422493855750218305329749896340835682378649976709646316904826820471818437039759962716013635032955370504658856830286765625325833799222700749910545182307448210483333333540801193103571703463391926066670129167471112324718699551015859029978333229528029181437215175913695035421314576844824121117292170642961217191047506653397101189250997706975990668744965909128163355614249220004639426317183694202895611370148930146196150060113164323716633822742071329700692347623021812316240403684368999316453490683100181266451336936168605761432113095195803139258523507112466807844892673233206412312579434938545086859652075228632011556217770545584125955078210750709726194449947671502727027831622439215596406503510491098828970161314461149517924057261456556771474139683226551577080838931529330474859888664954900177212315895375787207698654766761764348796095330531275963671332706111208771617184337057932363920234003226732776581119515914615579110789008073097473430294311398727243943455533757308489370137277044965299925284826133243490417983116251595594177938738631416569845327438386082640790210972363530811519777594303287069564105098441872841182313745498396947439209772028259345824894752208063870352654200442038845773614772494395875270558932328351218549499994469158899598071052022820987481806750364817703149410467612920112489527539440562864930530415605605021027422864987903179807812504841626897878896236132561149947557246900336429136824077837730748220580384696901612274691814333867569664108503371915389702777060428259151603663104801985951219483273007941485652559842048662199317811536794793866696506724737854751249940516011488336544390456074229039082235712133564852029442189172071205794216098373397069804817630186630497917320231583129863247313372781617964578524462732486061154679478076468953290683055661710117787108008372668778678469471284765536367367442235662229708678487410853136452818748265800355579891798171003818468881510280437113107027692526490815345864947329579422061673401260833530578409388827337262422984792218943458816768031948836973622632331048262461307455349402809410894548428900541401852196918965631660551893882068975046585584845539904892862596029014291150629401200021101288746871631259531433824462623297501820090166020667703557569623996601236725335194312537485855953640391876735956368052135797470203746084858473324032315425281105405166081189252169224500071093013502190704572784154695773820810144406755062700213610222610588638900093712315154940435385282784380955866055230809019552730831896477014766283756418323150738105158611153464110409461633375125006522983674713652533573554583892035899910069524317511330340696855140656865444467316783663782028541646695108868347806768215204282966848821858334109836132655664749588099661256018303574604580211020144015790827566712079588825280729561423560515778821570699645037993840850051768659473388306143749933863464042202346951937591640009332516621980121167789264392823006731170531077262922088026056118872142565093229365141014106208416113335576134095815867551467595298085075709952476851515955210424810851737676405974283228984202298804733370746048948754589743335553127427051249571173162065213913043615470103744347025515333119651386427537149417481070107132592000743730922683318033818894441385334554910015151026980997446378037173020873554534192450596483745724763056527429115307011548151082953614742537278668387181695625616146636489713873492837128300422483828515305524835967315342230451404801936696156914580509773329770718151286127676345428662815656499162523202583528462573679868789236690404145515824914098053401822334253949228165389402955932478217209139608664800623132960603212721814863748023313460196774869479638770854170381566447006935491691825135335885086421246819048875720578399433952785580925973547820059289687223753716613830234358125115012027706232715244249507454342595264443404278274459838706053986691148387667456916548067429134697289271719600716396626255412266335913425692601559429320951205462719149900783565805990984130843209258788730305309901459347474026051032222940750905104336886035451144173098581532165181817267645707742315834305251308783354055806926875331322311425491143460465881178786840225345169260030091273680864788302217702947052853342589610284490368977509956120244455601715619443190333236983005524498907192982508814264076375680819140155185414564463569454613689097034873604634743747093166078261247155929683466611632433134400201554545635679347341623190546661195379444816047839055890188580794578290446299195549278684834522860649909726614284724318971645489281461034194752796132280433727737864942450113051247902911122870004238157770828066937981543681167318529763440066866237600622452296947016597120201617426100062160640481612860676209161337163894441844250164198845403744816384976424526206674721885250862684718566307772636853289729612114235476619250201288427826418081661162663208903767067474604741782206126004021597311567512992504104282488571792928062520520594830851668572474406703024513262276498414105213217760489326579450909949685099209981262618673497681345778652279992276845517036322450240904229703514815468122715432465357731651142303459403316101018234615674795890083069407578003616754063664327032025660580509342987910470922879361053663250780327232844989792886936729505136882807297852371441124021978009261383828213013696859121043802519644902127278335224393835251048555294993262862304830929121530377774117568816977922542287145044162784224405021892914432095851625984936789189605602406372832422094359773340935918284500471570230580561049181495372230731501745176934224298396454403530659756114932645707731649912844121454322673753124428185980158057592792028277722652676141803035785858865228386954397687837525440883765632972728789134652625737728600978320163456035257493791131456637385053702951080505225433621389417988359671088200393435816716688452859852472068479819759425772546023382088362872070435570090860666972792124039670041718884422907645865390848372979431659472771845931163335841891703844277433467919446429553030834801854695842311673343719045825465070021405889630782035218259940871698801391402231390365943508404003353501680320682761273243505908466452072822077115226692475238605115158819560979101516688271748695128677996180816035203654445207303461696711763581607847319033459613571042067950226822898950176203810579480981128936069832428585390885310263683434277272721231869047152872217973430710964653431384206687150183989638070475456983606385566200175465527972247581276392760072284457115013472129906301959267667763378032182717215155344780556076394744010211753316735502849727442143228859662022432247377118096413084391208036104625100151961919848133419729223661843306065031446840447793658018174007638635321566599176008653802284447100070737842529959346490205457673429439472957225595904138456623495366189780147738954338235871439643299269029540291480503786560466959901915197261519245437703514030108236092716979278875384426977641832124832401138313986493462382848295723212450843127437794961657912892210995078640018829832396880482631881516980351842473148536007750796602618050342069646771015050784348226219392064171922049736566754514312604062446804780554936888667508075479393050050450735805182522651241362940354634598369462543874159713543489948932144539485097932575985497067673584684007781281942145114930682979901918494442940013108371610923231391430780230206770057331880950467755956204132772806293842761347443246090735837068211038688177984066591318615801168134290500685138625775219077745540426963834891503341416867031692596039998130817896327001879218970968776556999503075707036738067534612852911881046142983532700701778942406096348460206054686309837300227743968217083471353484987876850152134937117043683282618241913309780481849286739376042940087148502705367201238223127117060588690321211872811812242978684714871641897439069848275386554147814030577899730897514569191244419398256411238517484841235848403691166469362904986495087502614274095041195268829210273067827298160364783654245709141132025614147336777709894913681681133101370733505256711697336756924366151856913003836841169130007625949518833797363521647487461079260623562611119828638308421173794531770053336674121941426820776920707901965497164441399844878913935070154843291154527843715503166702710416221144676305489012555950390024557171034610360261236331722310323341791971694547704205716063548688750353111565854845105229414103958190766357684859584321175561175232335552058206966340856778889307469547158377093775253577929957004531350176075315900773352368432772312226150393401792770178328607375206074246035459228291271882129440657992860849382076494108177977277662513559121667651532888893133727099920463709508049261786773079786873236041800912930922234671748150841129825096902182533757029817149077891569562528503397277980317968257792330662158749188657385357622850309768448629321671653805855527997793828005076538373997633650483783787391119733402218564807690102159182143126990578280379662789275560805060959395671142662083474206710407070866560248836198992331668639638060977234912323470916324950178327543832268344894493063374871987129924646442161640316529291752725560321393278968878353360703688747246393309946359492116954062295871668000270047957658158676752127100031166890955610444518409920129533727322094978827392679648660450104347886963765862631169042697730638935020173599143634953256491104057564527748108053562785956699932056494096081677084287592016580770417203386612110349528846523494217754847897153323838171553449389852023157285378464790326941785424417837710871249890117510540917809839412796989714575183760782105709719528494508131210261084003835027999288028879275024402668000666873135195382379846016851926367272727092644523347391778009666801239298972720938203060316959590840147048636402077914885901262253984750333156560386021072140787359561899078861618636240038153835265152855674692571578552206943403946190214947007278081015874835994357774144215168479472556717302432351213880607797601033025489483682516458649750877232946659640171830850462481381950835761604400568780658478760077595761130757638200987027596401933478547343613684296522567650145927307386106180972434898749736664930995993847094151959210468626330389791519012884917834868620533434776871157380210565983839068160606481487119513364582267076095982360786197033902957114813232804163396253513712739872318334569845225182485426371924551911343226867679734287441183822773067119030361476453575172306792577560466318490149153734130496733920475193191844388360419585684653752960309799968754572920410663517700119316492960616614961178934232018622973616104470147297179663148141651329459858460000120161885514181347515479861368244925692119617266689089006434993883490297315628786102785785704275655338300524544845483557417945699578781264288812631751380202517845186306344523385972387090827964596102294694227681528836599162093920766961171195244516441379323047195255223575276545896603620998065357827447623568851975247351043723777174336446299942188110452287385514358370117094350231216766283472106695935758675860251876235655154131426014215754484417966135442782312618652836160632288207691762795118807766688024445853002226171025765674658992559607594564815567297902729690557831940551992053459329370160353393640364212260496921281918689700763287877566372051358848281167328187546706019538166319877471066571257547066994918886029212687422962589524091047772086299664218818946285571374708755149915155337676414156343003900061630102212643520978343197432251296748826829807554080620863458324955149381461023235732711343826221097544893945581022386151342688827972252933709203851889986675046774083961737547366948510231345112018719401432861462657857713475990934617464993529002248994578749275717628260439667953246944905537586215813217076449949878125032571815867785710495356618437821860172745049984765807977260978214030225018284759020889758990788894105447982780422020043798475095869332013165069472288743009308462208214744481400540442795166888992020336100989745211923831456185154075717313237981736976573847021059830783239878509025781571008082745236498089280948922601338133132638712000099985625649258335955400197094781589401119598390486229378124041625532076446287798906342134163944991778121875483259835531210793691031913704829709145322289220902419994928008660759299654953209969735196344907172551923796105163331904900038567175435499072384570830583166699063200277687022151175574826276567552173756839539299055415591492421421519293177534016741404586498167913807936097592941581275064588927821490464196518285317435355888720675773509198059623070925508123964204537494574798291251410367018783114841999583250673481683331195926878081644657627180469877868968638668947435772229442063745578493588403626681485825188902648562011196475459201498599130535780599949256034209964676745921293426964095708991041640873386877367872293725438338245074241741545018496679336706229325111799688790686219298222512818976897768265884822610133806678629358422157801755183303656413292636352698289909326314528148311317945107860059516361643901627328381513638440528363865430344067653028921987343616262403912565839554085548123719043088821120023912128642415492605304701439711777231018916861432126369480580090401538623803430061647838579713247104189069100173655308235933848716570027762604345279645899905504195882238881027916890194552525537768717225812919572631070333772587201900036286780825534360923440103824065421168714186369352168523683147866325996273139655737819047591269444337639404939083153020807218942741129971078898955454158548093887180331825146513259851872141905957822459716373210888857773118955390032122601088974513575490531389327158647286293019098893285602022139211445313407673908241711272788315487325306846340806315790810357137443586711394394693734626454224453494060657416931295224613863803428198869548379444950104644190678565445821901822922720473486218933764687609830992856498787531467062199697669484056126640061669200077250767694201958810325554602034823018909853140868631264607199719750201562523966158477477351649257640844498073964399425451977600460567083809301192968998785692264592387086074168885177518490786283481489239938740032994421952235915766037993939887689942395430429410624961142694612595957486454686908997608534866913231385149836377335103543155064724002533840218966296412745095214770200602917867613854608904678000907694621765510081031060304661012865793213906101651578859536217588999977011725431740368360852624026881186219853921214743135468984763037177468529224444567359774616292144927783660298842204896068688795814876749600917530936808450810415085787139610269196847870448218409488254004514333329360221052190874386118284191429116429473609264274428961207877955645593085229493195118081397509405505765701832974399851455280914730252266521125041757336211154580023396860019566169385475536005657744951062290252478983887119223347893196635638531511414035569967112894940066874311076370203542562026461947917353630379423357881375349590419173478245827304592411988969708532083378469896809114522260082366630339162836422522819476947381417558072937196728068107575824708648108588635604442757022154144399228777601871625307011857710879122197957558923735929147666498217199190112051275517595217406387318437185449034206464799476605571503482547932594388433670571920561048182438179989746244429464466431056072399216570049355551144710224538531493754849964514455769075840949034773520802743450968929799501098493654397744845060323354973421595284954286272515938091471307053561117365143824278980014909663388379548646516238101605219327449988742222469358009397984953553889082439574290535581712420984867155724251096588776208013967245163596653190545465044300899969372287218715722392213237017477523777850522649301694985295159323720542886881706157155948054339463040504776806391316747425951499645374792699248037222268680355971307636244964191337925690715286266288582544410617846917037960502960087329488653726786002959218343675697982671500180719055624026207092505763023797738723948642963239815667278234905554045510957895408960158130308052115595651773676553747877637040305258955953880272394382804525090563354636150590707125798800398556014148245938096780773813039531332514202874602036935060660935913668560307314439205831477943260829129572847373214930299661804177136245308485098537234522135032228416915388349696776984042223542911409774006054951083222013881874448104859520437218381694384524767407492642470909218034714583569596028033151097848815628634679947850679459435439072172821671252404438799633090283615943721494447253968883886637571819854984037588428165390270081620472729085710623546386273285560867021871314458611972118390790725246401509893508693129008897851569596100186691152367728205697660706996917703985715761870865734152097414971482108353257509748013386931524566425539500557850058922169710484520854456654919090416451899447405222426569097587759962465778997347939162107598091799285109034784838592802362652959267277148289357726413847746274639472956161641950106312320568063205842829638289814444715655132615856728352770956525691150402695983836833902461288276617112243204616199840110956010899381521805194800629391389549153251990979395759954417398514512508141073742614045126289475950180827884674436381295057616412322832490215836370220548278324033619347784935271060211687898722216517931512095074323501930328652715312640527927943778284249834484834705871644586475304403178848954559447305164113021994788017387850190019552947579429350040614807101635327072848502442540090396233393420641178500048144024454936490226316065965736948912807026945791588124351511845161704405629833830288681396762689002701477238607792860835324283342044786978753050931336273283975939880664368186262594965838407669379296603431434872390311224643909294525745173049987627069140382235005752452522757486810165288421868238152576092590507886413932589862368428349910829664931585490829420281723382799892816544750707833108174772738862624629575190960333971255588294438213495828310706540801891638128698889564877563808085915015021435649695730096643242891986179338577013503724442201749192444958276610293714514057982001965876863260210494082820959008032275502311961650747694839644252802101764426661961127738482929677935837742753373133965087521281710326579996238339550668926532266759321497469978851548616335721174193455512158347528351222910283356400765041208151127103164667454299832321555643288623263504456765329381133630636654934065406505349212526395684167499100516150909498329779972931097536974957184489732815204446950648487206290568649644743706910245402670561817447256058636004869365047850647183166372336107205698667741632318410579310617419373485684165611889028144109063839420528073256877713839082094589273247375604457638936528850016467216267154449405741804426309491024289702467026124246657359449249435191373040683564812767550585779329343076375850125906043661853175842322713699335013873140465509508644090667082635494653896673097548524247848764383729745749593040403484075646110824132575310246737951435381505896492119991171294454450434450599405593207037516630433140801588633066078965200933971712532621697078788575521362446148031262654974067638929757677685335559677770347811477864602091338677391526900922350699785978593562509786113764051270293678567492987442266141108801485573805529050403174604648602803722178937664116423539095894684213629724829293186402185310487385269416810195570935860726654667749338380777883439614114487133782209299430886144180370901831133734610919805839545932845417577040488558823235536810470988912566108706274543581508901993269118573879582318807395546517415368504168910874540408421149425190841659819465557925500876313285488221222083841558595952690534312852554807831931115321383299005325443824581513254283312955206444926556109037041230418060615676333491483649984078611937393590143850715617570973525659598130519316527669930480486996917448471468540482041410588467199536448859588536170727335929249070311003417167865939385326001951638701415553778152055630374590742226951198942650568873997481288275190452448651691032717169699869708197811587908992817101279767572891319649111917926303309644851670008965262300514706695629240569335518473582866723881466597402086843844417096795202136582639443811173546285216230915605172503622236087026997450184142353694755258500520827659052677580400102843985258352206895978854068520778108456662014876921226760682305439142360222848462199134498599175415518603375517804300956989793464957281316240941331931100831737187275164313685464587377559579719112019887609976192388532076777380557297635689189443036301663818080473491059332727417904642803914376197307417408563247001493752135271694148780966253410555188380134048404998133250070215223572975914270146160342363360401190546420637465067455395853339998920230531108897312041155480115558473791476995321166674423284338964840047616550140139565942795824261089362879921139315905698394200664953714966784554407670916957410186318525749865672435985130135878471059663262928188411258182399775855795494195201191478534349556514479261344598800993813300718098161225539271389972190684124692249324369824078072809120013985292355935984424800219795046736557133520104350013734703898209255894885375131054337024040578266528050788191710550203670999771688810620815191402375539278561288275529882329999059080605499418861912315158183195369566429444899405320765463884602711471281129298397491319711424260308756467191422159739850071303143158184564377015931586549935844709739998772895553323397201756535888445554217038764744651721174161749945719164074289803849590314363669038077426311398941781825925357934870647968727107878758112563039195949622121680603262051805830216729988621151795845622202744799676996258805793123277449004449580982045614172798300240435144144353213185265245679220318360432412009894640882275891222982757264455882554459756869737763676933440372085392079478932332837980494770935693563357294130444841071249677057643865066134474050913566425139719511516532337362860336138551208522360428942709375271735862257110663927412365982953350709964259882138697142618304710564775601273754084978997313917604041554029286880652238154709396191847668103515481892561347327541013144341598697996445801758231572341335844240842022853665797359998096129062190251357832843374422301588696782996567451858400246724718303837251158154838558691008265716268910071170840200983868648025883311823637038184135011512422472162495689378397055490023693996906332033967846921247776973436607730372536240988558225983878981150261196343508534604099754760579290229753114378993345882926166915674643353462220279923117390159865659898854531890074653234002180313975437132805654314901793764138320867333879276600195121240760557502520695661349070240577385151513345993881734424368468923481000472753451085395211392064786248597343179364633259877653170330751486011428561144897919472670050314316380831200533191696506008266828094903141431590474669405376496646060416110044115945865423055146955999365339156421599066566085673989343478651944373539630098162759925231027108179395501223569020106259042819850224575977161610469507364566559456949471467667606662676758835948414498157293600313298594661713197448192495404315926812052143297846584849884821551510056371789431536967639037515763733614645034564750285783959630155159404755705513452577592350648319326377227263956151156255053678270453448917333672956315000474086881908475034252768177141708804603533573275625676528338240475768932739532962371466546250000860554467579924106633635954912011534877536175634148877051380807147028832378820675790869714415606103031306172933138116903881882634540024504678712644346068639364838981038699260983143946124247878241856843174571707439689544983634380231311146264175471087620386390287366025660289958185866632808821542326419619049406559874304151721116750341994458251132672560663313325964934184814927628228978457843894391143022778243761135498432161130561236443692972854703710401540174560652679198714995468969660759954902437985098168021358270080907288450936776974200730674750707891112970442471357702846606167544524026198818814527939496557359236428006052128600183771781363348544966910001023276740960949990839605788675205582855286396049433984394298750909241055185718422747295787709054623541411289145359458244011063636770938869125608336463551589344331683927150968193978070499352993822219275042144415665928093676873073719947593939410036573968485458457943642164036586357260664969729926861060338548712483456665461803080469727398841600314795957627858596322640591609569050268414148795488532582730252466838977986298535465000888632114139699926104363511628993044949114958749068766919295960174814559039256013062563087039840345374241508329650553702271557489968171879514856869297319804222422896078129792134978380874473445486389767142665778782808470524962599625996747949181108298811625898369597827646118206548834822388662983262669891228082335078909461621685993540279419565531360235399963021760447239762250501324576193863855200138637088656283542060025995062821436978936375080636844404262648493676150277125072603650299838477999470174140655335576815886849838384464936248094916473074347759457078260292577561087251576055281287019330362538073421633356763220056449009069119095855377293888470807087128156794768120914950291415001810700166562558634962376222568955650350433257634694735019430688949820747071449493083785627824682436860727537614360993821215437857001492213087128617039340953241100182523114763051753362829439496063332837991966316415757658464390291604518592106083890685880579672601062803363047655974388662350073792703711981220176701332207885668897312739872343175608917868330706768435547412106110181666433718634396325135268493155864289968715299005102639358314248585181219244308951910149855682123749712395810796799748819516263028296766647992970261068389090648528195818398584796012626546521944411594190841960018454703574908187531103921004358889702648848555027978984380935506781776067565655537833506079586072384989483556957076626347108424105531228779747638493983362238437954945373100390106680490252993225315596074197527710860951785246638624852435565857415729658894449860499822099158901449382007598438859458051022898312632086542476594106129004007796402904379462607418784745391257114746482275126792710124098893387788036766814844034946952715788043575107386746090193090816976636807813616749633691023822703883034239744290617484797662810280682009128270310533977663028353279698668768330722165515365495663142034067244140977400078964517008522830083789365776843155400061714594616309806357430273950357860921163260944454698499397565011365750386141935416676645423407725135638157116667511142189851819446574891724373725659329641312297199499016044313486160989872726103102254877715511718512060562263874303584185190982144455026890334604168884106580225463107905625607947133130578138672042938436744251070230824180528032642412490460885780325831275435902291353422461812320920176460618916333940839296805451121961838740200466418687937443806463785391625433241818394565720520756494050434018231299289330214865967952901947551978097310933571651817330993784064793352973542381146686899369621710412146512274319152597777068963399278694245324826803016006250889709929438405893859520091102156454195178309742281424490262590403574713887322237033469807793866006904635537771632660648898195612018611154361467359620206849782252487373627942474809571255091230605677929939409260606326992227559351780687880129370653975247927797503406766823006639185685678361479427069914938356002475618437038480298325248035714008472417710536942841902064898683616432138498168426503002611613998871300329632228537166434189904841341529626465739636366922777254167294694383300115692646563278078006727073771037858501316076588288617208502215305105719888643704527086609732699969811334431463824576348870387107849740919598382435094003304873155743687584239213728784954050203122987097456382185067828487314769777541645774848152857640680343390877960843250391662865352346107575847835566365782022905418762680855480304967979338304338883916640790652455084110539710372802993324092159189071966869360561029286421421172013411311695012866557131346816983418240621257213196925853062608575982510925168637263059925091171557107398850094337172963403912356004908130991432430996648291319422980301763952840030865865367926274837656957122048910023424490743979247677720364936467677337046728712043630168534976239153967607037694904550436801384569535429110873586717213484167962111164578807672929729206811619764000265747772829923543200277979778998010777761888801153000710306994084220586521598350166080495488044012154406878247318976235596274900005175304912055107432893174982211442077240756238232064874030161453430663111516340534885492694645225388103336745348582610905847698976343568094908511408418894113446970060860205741933716309040616599829700614749517188253146539591098564018485004024599587189481747560928850071273351340687156590335724952230910089287765543731493527979407932522425907744498399971952394657025201281466279458681465614283831958705241748815849309975749933289691801627617907384403715050534976938329461765248729495067493487807591407560460818338310572062687048195960853462150487215962033463390154487655041578711129099891429597836657694328009701953711408638481494599260923450412413578556201996271280016871598908973206781894220890102020978643843025391103437981683522136802221524281654584930823729564203525733275807477661613632194672230522490769938734937580963549970155338328615499345360593297660085587873882203808160392936466300041592045060231222962218987451615360359412383668480839742098683101094198587070909180952436405569269485666008380120306548026002289416630333521321221554547400344501573653217365009013275415707295361904838562862821316208512734101141841593316934401841096976316621054088307566616497886025039353834421289754369483028194278911066493355611269909124803320331178828878833781246583510508739278355304752114110045435955987792640193973772376067509304264852967932655843865198860741033112835361798681953195365327928147170628008047158496637134898930296372691968728269097751056222142948832794473472572082616665683094513354311468146589764757130278967185687469140300200527286137717783804110184339942759498294864491176494688894765769683214071659775604445045307411100425339120702548633933864674561349117617330396384545123902573396543809429026693080813974981860896523464292115051652627933187201498816020538385548266730712205067342197164532244442934672901306193891040277845806614936556555058867191052400443644977512376611068819014477667747086839646455156540389901543341787934194605241389811775869467684251666166433455425160949776133178886084112936890480506587214914614788933820159220997021137989749805982342986379253599827248774986854804119264991926793072222344339045991985321772868691664002681296301486318217661886527621134842569686566460377864021632160871033588185145469410369458090235161565097457112421158943966413205864290556565214701811830262250346850039213257800217236535838521724325088958264755852394226224678848037336237660491349098109517552962396366617245328440818510277094484777026146066542820056332188417752976136301121881489037921713583685425209543127771798634349532174181205801964243380006861382198726876039550747334636257330446532636880445110892620460202416690330785501279970699294124088149981840481157677448201384904867193478205981373588509205811657280654623049812304041230113476724662553727980302078472916278589252636818794695676434611810920435096255167792322397273198597090249336004562514149045785165058540023801471078885253517999851163068010570002308708123858763357868906980917648422443054181734361141050355099650521116988438160878695809717923977875344921353071433943231588203737835352043546598416681332072302532299083184528451088922566216604159512139841065534344577431459407922305088531050896510605823108427652782590153258588353736385627205965010443605082118198199808569830504536285157390483675778326241228099228098861325292508759587767931277613091752243029369187747797976324799275270921992493872890111286828626997788076087771971936703476648753793186019331707312974820455513468316296266570998859734013805733275188286880753771095357781157869291537881071785760803268133401597487137664844314839756885730271732264052709957674285846706477850817746699086036685128380551916610810682180262142335247560699970194000177026256253888588799884693026180433555275490049558160112429304231532437820640811326653079250530260769445601386939257548948132850559255668413873013744850976325698451892267230801196311220828137322621538890178224060761456465882334119434745618712902299085058168682204260736043544846765162083229701482709414262972913410153880498055640508866988011792768135445782197071121602080430465223646576232809190929265936595650604090213927524967234233170573812378145144535473897464663268851200032790762883988754988944296355534781699667147338928476361940613470061297424559387760389236952539847738725418762620622700284121973549063667476662364016389891448875084626344667512408607217147282469193250191802614335841554486131648845645102738551839544360834193496646976948688225869517623794891257999604020869593980492193125562627395980430971215784232373876970358973529339468051498596135787579008840715638310806807878057805247458975758480322324055018093851208369242105592485634529596357111900547846096216074002796298213657861895028209510114844194126155781702701231863989163129560282691106077699840544775789987539726951228233850044681668349378024020327832443288968895987469689999780552323880448362404369962443011501537509463771613980017953642478672566084896708946836500803022201680320327136122699559050322642075869740535256219064181820367931433631829736319216522851011411954057200248766323190934349572589300288781636333147813734331267444784134046126654594839044764820188137945655374875849091608251101727475108212142040717081914500659523803599550656763821179253797126458283190526360342414109685771101988077567002358557650350837584285589399020330932715455170419506459222550443589153377610039538131987578855082356316476364242029699486754951697271292525492942852805260302977122226447047003464246252746936256029404581692428980352217391920419262867571992239125513890952688315588348671531931398163368600542437064854263102078753531427393075557559984404866158882781906852319214943771305578181033053593642929474053912876467651054313876198026881864469778325905583174928791517678085399919383811317643922671053655429124846494734734508927961429086473588209567095435053949756221117621238103548843055477681408070996722754107326240406995162123625768838809628003856255469755818475368015900708923200812570070333284474151758806405430535586949676824153244093685530901528116815283676519652312528009864916969399063995934744933342455504242417132796995881973842278931944670147544326562428469300487511539132456179790433544832669165230749449363275491321065768796929123197702627828058339070586874630506949424945317178671042248787610486888569770864295167324425326525219854361286210196559889269605696417799752854393684289602190021772301957228172932456834974545578621878817896181888499127335980961783709749461270777331798688874487852558710078499789274114013699223435440087718087354296025709274309959179961076454596466854141431097280572392979330779456589013597660980222853945992381394090783586888685836398515767918524070241910850723664384190172390013208340612476835945109829340467577006103297920097440493394193424941194631657237593164711235912349479171203214841694535044247507028749223322389850456254489200078640055523161735637494913196469080510412680865100996614944608492276718479615081776176192688531272997834223639694954913245844191566403285896968053249990285119347195872547294175470654533679410433574181894400141260634224031301169790127342317254258848258047393824058677769416902371526269462832710383597166656992282569900826449638575243454548870199439352103748743263203233524698466509426134194320065571707827592018470258281815435634388399042360185487422727195069791869678307038079224618467277368092973060339626306562301415905411830868040426306524107153507565289787022719103733373405583093700201895718163445556957145163724682934645491443217452302591787165972992542238031512706069521459683511592189630755840898553771028758616897525174176274025229170139693047670924357812084515755566219621763173921981315145286381905147070612880018247385069610119606389822022443184732110779821739870128558095002836202212872125683237696324302517954586304783518748444000790577831387036416787316963373832241551133359979205739440534587715676066705529182415026480725745257777570362898425669851771132139400117804509062061887525770727817768466125081574058156971117583708120630214674224188304058780081365267582710121621273175691295604992911813362263995831916926472112821112774234006314800136148012474186174589268259854740019653912536933045643428640583333814313430605174051319167771637673478883716389174463195985435124799602659087762599735981175732200196062966873393417472339211081842074323033462852893956435951921565650169787303010729944743333961970646904593307144675859801199281335077157750107205088606302919146001976783664807512067132513984562403302832167362819745934562066550570278159442002500057229300804915280119312347950270262357938654124937550064519322585332237519314036458655808913360374437549643958399488854489542214815855586329164051661371483339046366730170471906012628625307233701702014663834109576704829672324298637344069476648714088677478993653182537001263073880417121157344620840526319559746411063112216979094733345762648676716249736324815123202107749957192438161401882911246248442473942710682316616207728140202590588136201163082005315492269714990341881781310488551472141636001727425585318280029726252677866054597065078014135383212725492428471105655936533732538341606736139813578947999706622931600351537019536858891605475390316149447645386936117018854897982162720488565585297917685696980985570640428703035272968104253871500434528768197825415805194423000048968136339851150214076772819311025174453284319807356664675790739419830722820790185268763135806685329415653862918368258000265560211960608639673131193530992899340163159282999113320915515914767224944244134354015430527087790065646285382000928219006939751961370583285650858060138710377579853067328089264870048716959306815175722023755305549584465793724189621454636748506278276788756437608951193751175219276406892111190014459475252980342847182633797442510124144638792732402713287528095260735370337228952723257810418572991360945856525674106870847149513236927223277532088723282969493936065736402798106325154106952525410435692601230226234949949182291869451923885401501165842275191585930639217238510811170938493806274231943090248663527663597842495331652654427361618087672332022307962329053870155547171224321860427362086281077089751269700485201022822984698731795200189754216795529450941772170616985318636295458933317725923172167327735076826948643427528293545270240850969777673556037221364881139965412112672273288924479459208204127496969815170231976930934203184769819630897277982877708328655490770386888296999141587420818046558348899847565109043498475217415972974081967756493094193273055717419402758230719649107899856784390183623185578776213592587128378746709234184356101490242552043020573229594829007832096506860952686694964487998548908988572394910065566636530121673226530460500320655706558018813550142165617587912032307397602792828378705509130450250296676469483588166165809422856095773408911387892177629456251004872713267122224504887480034623781698479692806621195537472047292286533769979576570500436617005758173212572275353445929544998651472346660835459400387780017336066045798495270837852962838463959195044167403095888743193283435526695232144522543207536646186822836651851658314795892151338643231375895306174860749267063713068234094821379787482859113525388054538658689888677302236186371050928230163969195835295758066290785879293142394973646494040113392151499914052295924379067849644940619358774150372250287542601001473480927116549338944252859092779643854372487412806559171318077501718010398908030767900206972177801882382292793412165327406398757436044192638243252167344509539981855797031335059593433209755830571423571682542044505206159372143231959130019661927344443656446291058966064057928771452666680762227930513014351896343099743004243509549469195891386338712663361921382558595593691652719200081603187132529227007102446683230115520975831924659986540561321717288769384876227912947287265474902933400307796673202005574779940860673750792315411815082337120044053010986604794185414367149783918242380881025456151861752358959139575682475467735757613047171096320583828711458547166066213309526560027183320355515391874228167281337016278712482266736513168322692553712486514424258223891645618263025444381291618341724773484432593577283489245450866191263936908338560933050651679770530719567693905078380767779899009372622287342517778567676060885352133851729274025088587415437718793908081224687887424456708798621059051038965072883646068256474802293970250347889908757822526885166789436762456066394497020461121913783995743236833713887044127454891565577983173023518367479328967198627882379403709852120032940514703575303582384385066993293487063463931839454476437236207507921803829254921767877746674255822389992409806067320670235049545238085636343540004934935673684574710967405949133259529554202748969875886590504865035738817215905660408087735055916478739727855890252763440780247138398378351312367328195671945957947824346075039054220928143435338395378353260715057695514836050964637045535411012171386397649141907703127919388886785356716740461263800756623173227523367850681410476134786883845997294481288708878834112117960017193090870586504367670435145824385850499332204925343439652379995591395577358815909040294913722567350159641107480468654310112053198173673557973556242119366565928066443868897471655722999354732598938626982848940186001902061197924520160461782761100392113258587025562049715461824013922798584453764800852212960371473838292914937271592151534118987234414063993358435965279355576007581587633258727388600199578503890169264333918767352150729987803474180555094700688422939437825140958264582119016651692565386047305067729702550228402543629438080676429446774048984096221268123111408370653627038189704662383621840190276752586435932292712507611498619751653336771234115753974821654377301051819238445737298460106954792099556071644077907753689065933773263045381451629669588304129950377685341625515850207302020201679525415584621402279395819086124670159521070495352389884740541182163575165164391279628160959540050397779245074684321426622328457922444948786627456983069280786702142311638208608384975440090468939892267898814946715316520405186642998122588150979946468425750289204781221220943311748088588279696783155458912561425429092587359233555498861582615022347814011601943926605046078620992450874698863620273615955949388252600533768187211691301916434380506516586680918531374340021407571126172299300599298285153768747574969078320678295084051725545724398767651572734147259348145024825276544587137196187967908793746379133111376216300773557983481988846217796650207187575057487321089177234980019063476885843534351676484523310927969857520711717434819947654493716963626138772156365004255532655703232441434177152323160711216136341156729603609221671064266627813521200464464011175784294751031061676219092474316539570786643774628847199448085643609372065752935942360261387567589868801410419852790050034797639833443321686059177246543591286082154672802483961337694426508385288581630731712878935226618332079362914269696655519524660935989111302070525776536340259335417860291930771490867932943038493018539474835635404276503047091954001869142119311559613741037985854732271784134601240199139845386959281238975037598261459455755517628957641191430965376947232867530952249691634928286870864434195083495636036938116715073112850811719616182940314146683193461282388861869798250939449218988845221867448304114345091727183064461187652413231933453250826222733311828002358477123740718393616532368469884284386208312353576267252842062879139584765347847235814447899999801888768144807302707840566777976104127922922161475576731684677229182961321012286258501847990534086829445367505678890438686230395853301542436442930249873997068829427884182098777851098916770237256523715970583035114515448782726798822092831212666490354251034884987709356498499860643901180545818002662065684612187718313531049927803185926143448459588827498698792918466656640809734993529366534305969096852884960780606581386420189150724784383100760432632153638408121546043000468703837376882088681504640017951567482447498126847649121783135600530499635778653995890606948751345248669824492783574292080146508511039409679484531197655461415570582189199907454976658821532599080288904316718550220833705141576150961000378095345614336883188216063766522814605325234668722191869997723549256992930697640097675949169252360453868355971030420433516366472482989256823606014834688828558460046923884554545309572774449609570695253884436100649519345379934863308251777131446222676438223498467059592098923434266344303721129874327287012149461058316409093056864355230726155129580284020635227637748119808911176100342395058533310481348501897601553774218012040813508565581615074251088783939381485373951918057966741850558313370367123961007436332587261409853480140509909512757458205790072713056017761618594154423381526005698983974807170540311685861630848341232250226995921224000693571619108725935559596547509242637557146481295814202305564136234087350728270981174244960150271119857810036501300135889676595082161254929686257950868332674786499709118707973724646705509193742642318485227812155798037195997561878690932081713930077477893348757296206036849044415434817481063336377378890061028665496866444669192159414462319968249353084696520749884561915561249892431357163273963097206890120632838413416749707353146859858780753972277900891267527763027326027477546099200730910374223372751111766606575257472936636553907704296857799679849099683121302898994307765425455028394603385142183260779393765094270422294843127346805159515794899515134994775375973457866353457995039146940500595216736123493449272183643860891762738020309160055185320699186936120628252206461275603586096746506762993288263894211027142401717200065405280901079068031684600572441635241602923906713538967579007997054823198620543086915914027925306072518950011595617036016878867881863864131850506838646112298493064098523164447603535350587590035795266116278447066848657071646778913804145119795526330035956118307398522065881640817017232808667182188191939901371256905982809194942452242321591791143152927860579769853857449321323606090377235504041724132778628545054174501954110605764554792256568146556885328366007213779317887348879835098382839439571801189655587343497289324158971846314124100822323525409651621461355422737205282182770686610354620260032928659529273546970824016005585145013801503475271651872501067948276798511987602373585718298574712118778330172249504031131404564097151983647642586035120055107430349000433419439745130521208918268767497482723339624570951322065123869323202670076923178846253023258667059284876761326488400707733810964046902577908613910310142167400827556631139792128134494013043113942045928653148927997924826145423293126893850176645949179399866842887813843671145063308852932968407536297181467513773592600642127918241333258106261439205556351599278390703595327359676039754182684371317251868412263830602627511811193641206443581379935250614367906320034313494233891540755559406022660867743219286159483302943829541105186216166690494164297331614142561548560260411538801096772159032989382449187174358643957530696747318872893194543761436282119146904467695909110388511035723365903194709599091771438952326959013033312496056707694307858174437746702644667906083881675940535794240322188989663829151169511269979507585282982667371350208280530309942004294858277345023646361338450919109893057109670134850461452917811461631276222096117372878778565010126779709176621526724483882578117160473851757212801304863490349445231944957213417553762429279401750852336618161088971328618541710290278138972104808579203057851935852623140904548374693393314324466649469818906715261158365719433832863671750969547123674705852874402392126741968617792653862135187217214546924147785012571466374198631181782443779556780836595117833878191965839327869569104800385666967666217609940669522831578142462885497507242211030910825553106150401863233407859706737121713944143843504292804996532290635474026368737174068206336610676672683085922878931429805608621255824953054377782948038360815042671545026639722755555612403286184578931036881776437948478862283896396528672744311437841401886349215577183327714432603153622472234581508520417964316237042133780054118490440559812170681860604105185437804666470238913908471673912373953693041428679692470371934897392206107456505348314003722471116860699220649979597558344395822261731765595609335018517362491589320285343115130687470726928554115796005310622818970386381744297504846856859557425946386439038560405499762422069060865327330471292412488193157875590695846993055556155294366554626845629795305284418188843126642213770453550596907124040536056306660333836215614126598226051411983014138610292743060316366874964220646021031874649077381188215468783711598353940244281909762962227471560931707213942785625825463289103474787382800191910815941114483652579890802537599942631255624236601106790424464220883932142040010397301788337155022917664106106033365427677241012148468545754952157136146890848834978256224232856710414551714475957759233676873400028688415000730187948643630477891261585784628652724091717143904106166874489008798373429249021366819365167153830540729887968782142084261546726980322264691391457605513534914151633197157809635743872756217613049205070870985543465470705817133877113910809522037201508341555474495079967269277548492266209485056702056201605182495458769345337711987854738864137254886055108265397163300725779827818615122207869287976807628373105995368228350058822832406438398194995752034448821959095686404404771021350204193074194711632662395474254846732652014430751780465158557557590943756481505629051162068239472602514315820185971719650993953985099488822388400845154938893328325388469509640100303687013535711669568739046852601233800981966541092046004158834245262390049543306199449456850399718693320187839512858999519987608433617198543259289300988084171054377809645734142439628109425087679142299132761110711048553740259073228809045034127026026247731420662351944766615965185395831737582023081839724245292242928437405979207558173141648400493772441842836492671360091894759666133445068853051438328647428558213801115670162409340582444840780689595069574811641449813630026372484866088584384403556974891674971637904524746423404435843857608350340388854632316242338505638018146858115795286724707023751526390286782425807933915256369413314565905067561378027656837464225931261945241516141116299683279641276552396178242761219388529748827861503348677381709007086332038864153996923208573022487111966572860107024596386915843238650817901489765350572268511329246346539979240859156835618159909247157843339051266210603037444942129070954404041980986450069528297044251978769469950525284815056122100447716215885551768226233884389110737258431159153688846853578338706649722745592269475670222699396598885289047277642877300146757302871468610145445237307993390139173866893997208070148386359782288971870100711544518387190928231181741501264762143736958955857638276208890029345236929265604354370304932936117864995992589072178953797859164773788814592032013214371851721343928803440242752893881415087251123872416678386694418606241807918830252393915256874763740691333121972964751965758506996828541317319523245775792870978317915768006289717093898162413443262505795416270115220401642027311051720079852014176627124574440207579056416307904914120541816073825069834139268734220846422475102606539469524667640112538849622177704252639852939239431843653595495452655329269897241943573822485134004377817446289873782878411870369933512591381315637185241983851509398155459694039868157657399966007177814493675746627867087099340745384117105709813632804173005002837073334302380611844368325875515605931378066555597297281650257286467233604452021092663253977454168722251675192273006546977532047816119439648321785269227965041846307260677225786280263127349405871952573213941321839191501895727458756136989428236635062916722978313435013246501287211829359452543390301785733749270882367699051186253167577214558487507074007669750589463671237077063434848395429544526559319842945637881806508737593776481183395704458794786274359080887096920036865313638558586948807840432178770514356493735236719397102269624969323972598994989323119545175140291932411052580648243716222283846185057494491416234227120708920711649742913236736358513867485836526767908695065387286227997318513595215730911238434481054795042578069716711193464039105560446708033714658040675303411923694831162945039476094719351782764149062572676310905844586173845811126336136061043386139709466382610871698735104921714433425131149489160036459164826251512031875724678377071045103240923485538191884655897300412945776589296323182878389360861775128297253956335766750612337189319740999211287639489398283572116908416230175875215421017828108365786882308389664923397888492545290790961626334833797753571169404088018664109476353224686976263012291210629744317672848558863282196363920656390705481420647048553676929521789537611300024133189004063435127405775751821903060350254208480715679716894718543025304042740358723769720767916241899177180980108224942603895893521922698945058428486877289596960878560202301077565626943003761290392240555412486889468780318242330580939044767495630699001161229009198747846478274357038301221391534036826449703553268544596912233533701176079213729813391604208988645925005653067106825399009331263191427056582394382207828857002861015696776470785390739750414095931935805252556423264892685043165358813216929579608271521041685649706950699461006299178936367843106691178406571649434208404366681080291778696555964094303600716579151729655030904521779919898505794827022228538607454781245518366018055113984942849430702460339396183183627458894095981398537100708370148320131979160106508474294069655455344801953090036650053060586625226567820057416303058401886961305793280825311702170915218002887027399095299852365462158764703768348702824962782901020864025396516944061329784497237644325523430488878071490974337539199771065147999805457668943137069095324924756019551807002796312006855586239718285588042138394095526178388327260199241643597007643466507827509337727883127915742809369909713140578909028457572924730797452128388200744545367749338876068886408789116112171178545422009857354618202594006924133708704698128660007374526782732015270511622420829472503496132169498843329176215502002314961333470905662905264199048058060178449905629626153162790833034323484833399035619339448150279706562198580831918604519086035045542937318584413447620899919300143931501226931675156468612004691529852158237298357889709618176068199759275344629345179785771711208980825654151283525991295304697674819080031716759484074747575798029568006355451686850719642597670529587821456747396380450998724938099802440656893818165410728559237612385374257805731135310822596867967164640427181457400585068449725947603899823317002068508692294240236643597410388330223976789642410593238404385753441637460162587906855505535731591407315856585979476722536346640952004357691659599850295399234730288456243545847830167528535752009789368197599365070160685379147177454395265678554831081249482132904240796308434780954403366573899804259357740665494598470569103985389460633526305433804237045909937110968690215008186605630913738653741072405726938376347042638054367846550125544077336488397676445628407458061210322754897676621982045465700858756663337035597466341083467074437169907658895000574404013460408098866874223495865247599469102907596598078758455750704601903243163320178994387227204363396495739312511713147778028439731035689970362519578013266718592258836127135458958975257437835217930013289931375462096766390382264152194139408639284923303495303660308656230192026397752566085426302792109616244579083177761450786529593466092879419991194595554548187587249220038240002560284844595850583633981691431161109277044518286996605165462060284919395244812413715054200433503399848816751729388648116582976374803673463174464530855878852407045495787256004146038570064780656506388995283292313738812100291227519330431961836492998202868201670715286314545730358457676949197308862729169116687330726608503693523503331190984052471147591120427887011445012260392839356430881318766933128105709301978257812841690551453023918229398257969038372060604652838070819379275999179090920767483908565312988050331823296946069500991147076738898648637154689249575079415043717282166546127351785493542280069718001433421326873521305699695385427162978432885095635432487166919146461890880345320420209668430185246300676278505227568787970285138930245974887185721807570772748991392123550633439610843221625162495456186936999972877371780822501518325503145431399445507864359542624234961241663352876040598623569023364866320820746489472417361843816431801643975154428239373863940439575631744349377471519335945985396237064064481745051931340793371769700001733538815644568003311025687082876927297736757792072114658400252213438639339633936902137304207353034260816174022151240158878986101390965495987079171778622885857063204434258832935053136378390144041901221319003934211261627352286834559671575099927189741494323161005850452730737445249027318214629893363895235184959731915912052007755955300634421280348202162243956093218747420434132226905888970691903703162591306219787124062774641522229232302058206699666768920724304353705167392883928218832826014968488433565506228467759050442420696153807510589413049325328408369155543456490635807558125334611400034306338953879508402594407525185095320727275404826452441007998215634888175599237803209837507892312515002878230477925994825467494466397924799342793883822425667404966476206262110186905430389052501825415677760718622952874520580088504391516101514843771588931853074351854314225205659615163230685435818579166806288503426411848773189713913029985892219562591008291965711615104924149123964339987547322369993262832354107536027599606432586117708172696198042015993612081826272540077960733851746281598413691502265884804615496795514771164597960819549825088730016212830503204507192267824525494446050226591515417706659525076629139116802534681897878989381317569781736923117087216489843047346398212188370930176380135997036808934398304461351037031391000581854552930178217482193230740053010854530438484692466299407488366402060255711646250068929044571726055299579228882075577262504467584091244833986136625886922140763157097097419663247987615057123786180395014611427073110290989897689614735121830560060571858688764171676657433611849243778522257326437289901090200710842722179969652104498309861909685005239186832719702239461296231027120207352245161716450791097750428815455075829659847343917836740752749193606931392468642581139102838815542079135745785727112519199811934670243959230556365917175659242775452817544722191958129016977021525014453832120490284070732039192485812025110042489058711864640387813153759738479855908634784385240880374017975583882835925842274789295390071860813309688069212863850402362425112676904376203157402823588109763538604309070730328715949737210581000836265942689652171465854837698112156590050221071983060874572539328386366176846807344656929362181671264574862367135092748254037610767169250987204619101015306680161627837907851028425712690811712337544356648771567485757262971891754631507010976361165771897154984801249461380767157503879392102929195600737164044634865073046839570720506272207755513416433635331878923587749961982108017482619723901763319756862226324429942141066604668491381046099995789429139331800415688801746506690685742060018509326212931805903465325424831086506968545097282547013219936176161918276843174967430128102685869663279526563377857507131033359739126280206995939255003379222000723126301125617429812569953592438389589587096165234238615170356710137302008959938173408175786374993283634959238447958975121452422318729661579766104004476224226577877724123273395028882051024956715194042418611583418358710876345772624255072408130020830647797379987560577521725806954288033232958787824087181748662140723630214510557463629588817381340232293505752018178698319994808234153020550448951657316611447441890051347297217470068603457679243470190240867535844913899383905428586145297202600604311966221680836396779002498295274209144115864903954513824766771453351764451355888656491644663031864766610178615592343728368227552898383565060486590075553934262417310069997068250900941125212540110396826361062702672589822725855580059160220145432346794695267004619270767854654663979414267808347184256185688068441358580850268495606681999068522751942680720793958400347522671097652102806055689003999678541826659880401529431721461468378532872868475038502175728458261063791561336390782193189012704683572338687299018730923305808570436827277470185104781212749572412771273478270698342537233363324845361574258248693732161852336725147648560909517567386654448721096393956087079810524446281164237618655095603847639016489545210623995262641806641752980614616213720585135561823652459166547470987732897487693345571768536559304840680249244902784178520861210282542982269597307755976377076397649450772676956074161442748835662814136306104260465275458175955593933112030398080874906287691086867700349336640759314765545813220859660084401111055892236967428972251080011433874145106048157607120688745426861135617869581319768069965991476324426418680232544858273871219554094864416395474754866237576341824074887991328737614265227388184000676023632119739995681681391738849112562969177619604430492708541817644302263035480078073389523263190305050313745015070702892545158864244002334229666168375380751638597781025016787616194366009009390327557132806053086360258594359923514392583050951689381300890886252859178987793407343368511840742943276391730052940280950062874527110201832294230117600966858566840975013658463635394732426416003125190261811439122272540713953852376731536240699015834639022793780107486058508422145637461740877120274041521832792919428256559805298610669859415118638911345729040933658870796021330531177184735178882796593470527287365764601724187613625623799191960284766151844729306131032633049121428804006493226283880531428954621694599145110084093681539093847551626931171441914382615258033376500646894971374111080294224140461685027079906941893037892313543898594263899912812657759629577955843699775179648942909164463115558859699435023733601001819978036244907697017447529726419983609806063109764252488746502278176332396219963341675960056082883959834027304593621584612636071615695455121391391392673575437486250292000174452066103996572469348686643153557440453257322669687479443077696633107309767700517707745175067583085298654758641807925164652280251632416407995966702415740340393596109073849748266334174699591184341713833928617958852777529291901834754384760637091360268441822649504642676495316767641379377719645200004399001171702379400943300316413696466972119331176352231786034309024424713883496197342076139724234370387170689675075118347866634966439410050190525227837282836632842503349976058286179845679913776621124517054610804435999575058784206943486647562101950751793716846695201542615866256271279427626724660984007934009883474206307171688141286983126320872596679333723838887037329805040223424004245734170255768020611768026792548947315684566087225160773064912280236432120753560680977381720106039310398124115031720481839680446018872331904713771625801753113175683666179340913549440932666469423495233232014930962634150715273638995490064914582831387498052476605680637430328011855982761726564368673208498449360885816513272611905928204461549363280032955433570533386438381467719558556220795223325912228731574867572686663887203915220411656986403341339967576539805753227485990137648071095870661043622895883395098054428458456006361017759758876896946429741303000505359709980033425804549062662682218553261035558236669472531355028164860944190329289727528012962728531013682812316671740257657717926370395482340982829001294293721528936551608833782910665357597846049578205997147144822321249135217039264463743807478408369718416730175518610312251286228949806585739996697773165916096822989821708246276738649600391142767455364161071439220310764677107289346515210979606857237833965314249521733201936352657437819360549492657177764526474536839530239545816211937608575682878009645264847208510700266924238551988254004995615612759847572076069303707173732705270992922374473176552276455445406632984512591207037555369963803480944338788699025558273037178136190043294074229928546468098320268833340861004131839189896357040564084929449814523428079163073007426269817254194310780867389109238443082397525716677518984864376392494424416962358905985583632030691009436284817204655311599288075514948824999802766885561215094778837325180711431417696985942764137534353946658253948386799576079584974861888410225551228580506574787599384614493648003865269940034964826301532881858422772288036888576633141669520060564043388919765744853248082710150558504345223732961121172468256072879769416728630623441292085338932787606011434868853586655557485713071406046749020269433836183546007661911555103343496864799843953181037766959588256168802433297577212145822127220855091233189460321044942000934994236505045671374866446264940841360815392465035279649620589458714173248304031258625902699543685898347488101789706140326547081126523439157663863240142557710590044164923420942037625961927714230837829590410567892980466063290941720103605605461657544464230012100620864694987706229619603036541850979262482497479214220278158675136581201951435193634594229860717350204953839174479181455071432795418275142743289108095980812723125534519805594479235833163585232212374994534694944792058738930054051799551825867511319980045480870522381448803775758164022954039808230672079928564249735385892883880332140776305682389891867195160436631166399194704790776912832599848666864074688327789973785943417016568321007449332583136435816945901231600478213811730154151599289423836509065302725261231071458783825952892748884166261348379762897810474941380485395035495990678104928325643599929919625295398975635276471296601771187340656358548780849363009442380079549105206808459557217245412417713986305384284563579684561145160264294964798948731080764739120694567956943983208589331102342358476099856764105966667750308425244590892470127460207577263380474168538499240781911329371569933076731797070314001499296241121221675013125791919337563486347267385523912555680027998976147805553455309246408710891998814553135885410117164993618719049754745171596204440570216747974502147978386053051901108486438152515082960245110849019336999224605317567627009471187800962331851169249498053265951223812939076467217091193184721041925339226018060986694080441391937322993302255426132247868204050970550158560174806322939203768151622907905363018775121901299459848512437838904801859232697938667178216368839517188012869049631976491072941079346678176878148238037841660926572005245114345452445099057923725253937080865903355584133320399617964990785338269363908493845795818091439672672294016296997546790207772016072365149915490012095991803307836632450183447676115569416514196226019307299808674080063283869842384745506736748652487135483853439911865453752969921545381012081320124850505158438587015646290778146386234869413739275545471227526043100388949947095155856249398726277571920091325954517529335094569993290688458308496153179962511687172790677421612762858094522724741290478363331737685187447266510145106351558426440579976711015479442300413203058360181935572661693870840465731432691102783213177863446344370953851327362430972006349731000256683627535910640290291681432568275678084380268689232405674439110939458134351948560141607426711320064961533571825171702972547491547607246413104903614180109766749225440149479914542385790831065791564518358560057710745202511170623376394612266315950550088731452259069771792472384349680665967290606577770512586836530065526740089841991120703188666092268283792053246213373782556209372551221775157765513615631248815258369980017045375141836170115875405164187517867315280826809044062487970517060752529406912771351085330993992946536436454223260735880105327647397668175219237322576918104677597055906123206036069478119028008350997142424571259143797222014783584273867682394464021562713533265813220911213736259972487873386250055190361206248815563723228206715275099192997944529712510362607530658287424812462157541513606241328763833182438768284502619010263166184007971568167362400829710568781508279276683824226459607907247958026296627403984923728693203213522806182589577601196484525266001061543832797073062363126698298544829850111667461409262968329141923533307741964796387785914346023186209410124863447815452594929664192142883270987173337790718743754010788836917806791932913114238308385191632797559067790965011491360687031588479639066240012185063661704574680941456300716858872334836779870215212369286174368905123633117002157549986139767633652120945216964303643226354451672321623368810795303016420256472769506757574093533705321722435188216049886376814464859442155476794258146077777648459507346569318351009451343288987064587036191922675710327188489778267443371808802496727858702267697270944314798121117713887130558559140118208584983691259247114282847878933624869817655254304559230982645259430879816714751358764445401283143778326141946815527997119946607977987465894224251935532660036699124989733762908672897229786599934152108574421246853119006746461157156030794459113388592097498776956291594437973880845856443560976818789411430085068881331286702751066468694417816963544844256993212922694961125508370187190022854957109821957731074923153188550906425199980489082109237350016953718825558181526118723557560399368865173639126801765338154362781393419341615964296480938122214646457444499838530652043238583718403166527026795030349667726457725262795274455377377740192371842541614103212282698885150733737913592939344868837051482183429469160570667048683560488436767940500067421816648416758969263236985683630394154620263866115971001377349573938084427123743587227574440788040624746734937640485743598104196832285140403996836133053355731043481624956100061516758367141355930749299206245699130712653451913068264278566340681363804832157251630623834496107184730029010963655674855024065437415100897366558465990911848797588825470004836921776290773280435110696739415168243223681912700507638401562979269853496337323906460639518665001019788262058852097502259232075130967184101635141411925772560953169033852876295900181927808195378034567096261489569590983057766986471390996339450129474187653601396859769656547643596973721813350338403492863609617971554198375713345037079077309345178733655768378289094228769366153497679468845543839089129398678643364798402118063034980565364351950481499536684216662868283756502358930433072560489194869615735331714228420046354826348509653307596361611085209193678341527243863670454032051738675092005539356333087458101037936204002981982810790836118665440162557989359890762724712874119833381188143912026172777194314252656316916822113047096735718427999933201709152644842301006481217680335951058285671307545598982908700404893874204377918173962717735670873168944669964848631571027109892129253075094748472107427919597255077268250562151097103121441648653660801179188267431928476393280898714522900960519836113414940255293409346137592578317093995879969654073115136101489729674833749308687312857750915832034846629049210168326880486314106836822027508802176790672410391672193499522525744766698384059961471451019987091670635024366192941024723889637445776868876376525122614194904620664746240715291592137553574736284078885716928676107634588852811397931788727145828975453923021096373716157551632572683008873368297071935384059603020958376363995837299914312505600103776493767181646612913097195550336428368165209989608018896911045895653942916889333388027814524453461239168900246631506935036780363123598868326847745945536532994346745112895055353916678083253207973165652192098308110379616371803446112210622434604596398146151134668325346970062782174219633906912399825637245697555908415728076049315048191616883899764877742683424507571788664535127438975870844520422892463937730145399394835662906454553075888627292090446099593175976362338203066124970787770108489785071554024104371216345134970232416668616670051345690823082312670051086931731724583121339459478781138133336812681719464542628931779096094115167481300620291831977473741339802822152609121223644827046343821594541539505633881558026231433186037102337503978791473770109141993643986184613926662827885969383458693106025968973066204811744074958934560816721626448720443111686562739418651561283394536608501844048633105653434635117836311167554537612607062281844827931148286755943274166626169682969240813325246913561272727236469539242913030478287085942245829184853688329052762265948209746482929911769864431964374367624766178669599995376057978569430497368028096164213194387214142033386365388130774056550480902003068662758144551115296041176454185907055072882916885692212597109174069967748907375444036483467856445411320684185357363493576988372278680764067993784192167629643808724266541845977305760129666991438735344341099488978505815572093205380960881266892196353137827577475871083437985307592976657701045290405603985407607703316660530227488013119193613395275411094956796033949730043301726978608246166893688344299911433436365611335995657884752893326142033723276288026241723576027773697943036700974003345997783348006744649930681832929603513087245215182734409646211977636605173428218692599289604481080574568937428553427290079259076646354188248794413942849451216041280839986845223356165343524147641899781439692322183103740518530169138270266322550106365474628157241775274400255964799901227769700532150642422162582818722448642009889557089355096918869333924514635455620724023263176245659412383272647287668806353255636422935394399830884358707091179226936981548816488535016483285533027900795313261836167535004783175514498947133645253314122738368992585791675911885216095767347955729143515671766182694227358919755673918492194014743293686411857409535195769083691265599154612739418259219572214813496750807489907444921591641866438512895723905588609606125768013914856685081288327379598961477901249771085488214805605112288044069570141165106487595160230130209974648406431862184541856810374663297237660191050309489748980255547908653818214705165153157681553102789821918628207222973308671607544294410921401184826241300974938603431977465682059444776720333524582129001941527982018051114526608497508717035740496867233748348871092997349568323664166338708462850918547428778111501027451619856672275267996123689065502642937374487491368821871329089470479834905959996509290199760830045760487741749603577571221356506851363804144463079776768134398503492507585390048845680008452247319214017478180756508982947631600258021575035932219634353718538983131386708933017740399669355780235708028383917527799789745630901392690072341477725932312401615057299972769379342142898590868609458177895857427025603821536139636725719261211429009635193285657580056838522659931493749851201681200133562943336012101320156865850989632873663439210785731270863122891391524970594202756574228626111337709820351697339321015992413863704664791630985943735451621085099796672879369655491692117118648831077176937407768005420518589902038021159803816444017789801486554026914686872465464495554745680218434353997465410440998551671237344441687265489574822275833326783137522238546360304413050071504276025920676103529894697997530243816444430976932321855954314974461956450492889832286171433927702536805420834606063472254907385033562516021185652684154193838739572825568057994658047595772544853898923366267824659894741719805814361433122735957200926795791613699985834132078573173733962815857727586730102709294215898760852835265942712300073263637430625930879243623136938351369494074970193654421836955177426744841788254970877344994406495131305856803693934466724616007906488873427764942994902852293752702710865385785100352702159707825156659546772933970088584462728570319123172269824385415869890727565933924770808785068667050313976293704452371518127994195009993958649174567164272997235561888660297042745170646595229177856916160142849331661584398907430507232523817353911559203520927538148312189351323346028882899727851538633900776523391305453366228262876934779716740710729618611643178210544914901345351879823180914852868662365081880162315850829918777472089446544469286996386070310011696112865026687547179451441208024418485490519832883774459524519798678425498451049448010924836553893408354860422469049158441696043194591013635116246529868927545318072420669102538132883143326317944630125890057689471544931438227089937401165148258155514513866169500367151230925161717840299837360434098986452778425706225046839509093534772207570917895901766694887957555266413870467399982481835486434541273871006819762823373343031028645879892042616343073997189010182398339882923989050436276229777619240160217730353665484128853356924920987410296458787152011705998051283874894594735484839509336390877667013210958954563533071892716790614098811181644980021568232588398109756006999142832738881577731033487555884926388377012899038598966618757563896458506729285567114288807636844771705637948352601008289355625217756907807122216301088287645880703380114830846877662952917260460131410137925905159591497374273080824323142396655483885557142271602203156003522812843688649009761186697749811099291900689968153978606942156107748874416855714868434365626393103351090620086067390258842204660569139865929116109462106391806688829278298734975451947581845953124870585859952187307436319652250314085636742426918351841244604445661444788286144846536880688288606015410921476466667570155808276057075184893255385757074518896721379853476785256987679666576604875023007229596106394971400123059015689709505892881305180285504125291405725863056676625926047519451525464075988480975769619884146428149033973168761876138200485937363009712142039554839463780519573207700463596519798031319603992027400966929657274884373900878771408410330267653762955109647627937378540952486844213449983017009546468781573093697428947666725073221727483071023937562068559085553408402307356614271275731762005840389357355169263636884747431203095731544852217428209225987060041661756718509272578687389476604206349538558370766694894607101072644659686867101188148956389358187075413555926855875052742553912783909414863366471314503561096481267748843232583510713525329788006554802511111972863568944349930226971769587572305920620718005250117815636919793878985376838540731875623047411312326489206011459465316757288127916555804606816314825850325190589934607786514400363866738012960415153582179341406992031193476823066459018174813440896176482498070010404786753498239844669973803083229610080166564627847578995856807057336822624028792357412048926132896204605878005324063777122419471494682156018890069528888245540399802581237316779108718803045229394565822271235742488025412488416888549324790713569909211861044015892591154412480036499868413134609636433076650408604247614024361740906732483884953188005631828089222677918017327523960439602399899335365501337124340597840619711725082536078426880442951844307442814227477370928863204400672341339286570204404982017079024841739571260671238254498787826779418957887379966921348349391043463807258143336329401205898896204117745182046165249737463378998659138759548743885138031304945293317574769032024152242613380743065830625078743189487378600128697828071055255213086085407553995779022766281563280661950667766286470302098682764223515952431913093000120451923740037260881079495527082460530400560399050124502371267522151761150003710765695902729547739022337369143762566672266703359790120446898137372600724948031748358532325686619528682324334698284741121534457564992474171453411576049976650945867272139059856423021705467313900227983725680444651838323486753323079866543860963181376418293057965592054301436750007407874800839786153263260380367063799675451323474893816908470748144138649187691217553885680196986597999439355476060562401619480185866227065953778254874207878294683597922788766621412925675796531652307563137007666058588606372050170763189394502082709245185391619656679770413712058726195764765812619124769406295442211068296919476942181135778107780289370864682930439083504220762978485937138891915059126768379087119744493714228656295336814425016416034106790343293570159128891041310906121855261152602862661821521024742934191059457669603356794394555966176464423059638508203747861789922586729396258999069816444864015756807954371264787198237222343697294634433887565513343474564387079187734115017939285925918756324803583327378152862211178992500685414315507302059375427157592784841704316366757110058197587547983399609244736040197328614653189331363238826921094844777256168294384835432526873640599749308316861389832526353293017286206067849528930823607687784379985072722735181474545407570808529031593271100489134545513020263362035129465819653062234820218869196633975503471026568156277194079318079960801330741450643352641241145235943238365814738838988550435644342850063889712415805001822068361220928149430460702154069329676087197611556455199979723102736982398965081570371959322621898068690000276999590504979324765485571957741394607230835272015307538163291341980661939442118950008434632715199223103342927011285966585329038707188637762098068463139496123324230075345474253602475515881586872672596571606796315268037001253931368777817772840092686226052984057155401070135538651866677069807798131173701357718148565176604727591242352096765027866508742629431472300484459321910427321202220395933046014064440760278963122532498432209438655439588794163509407263322412775266364251414922683068819014504149237570095715099245949897233764333168627959718625019183020280554289810989171189716161172714457655861528930228702380958139442919879527871666253311328264221331746920882482869647471272825928439133109957012236058767449608153828968781773576596507955282102519805314449638195822442039182069154971820125948953029600464781450614975506413809382645379047162297861304478050656451754030038448899894216188048763458011223283450429966800521394440610607867458129457240892492298817730041933101470223958978869871524812715797611358871965352853500569202119163459489162747481969642586444906183583883584689044779461649265079867989363800578780750282787596237796661030809567530012981944179848048671078371199960487985890736411460175045601138248821496336194542262702657957965307859393084032234992564085015103846992935376599040561160247043569760750152001784162407838808090636152649891064924916811014555595370081379831611252520144509328060112920095545002873060185215010754981034324218524250897843367474705670442715276641950771643359349191924623230658371735866587074256524494686168585878881818247868901703088949589420199603690768151830478518141276466286150925655388460753842020130879234411927653830348896586112596898941305695323018373608256521004005070865247727492037769621601806063778351645598843960886199130299653052216698753231771427290973904632648338913570361485034193107358973042312820549353684651628032586030940107123058819700707850125532051427071629040181008444356149410700466207606020786364965816513073738715668165764803281434535592119488633360425510235934573626760101991707322704710512941461211942219298602310732656832447092749483646031948742175276301785715789311188351936786713568093318986177039525807076429049059752502396652793272138703872952424611862598282084613579842259675019035041156982938207807840608273538907198789166440168285458750272146229825946338302243507870303105648787703257749736178740987050734333864879657345249614217877443063322969037865530596560821984598172217274478355797554650416477517545224495671298129636056013901015044493088631415161068967396848144186042970799572834925896199832071471490754481711585887730646235756510001933080144474586617523207961313351422819177536549228081181932148697614210581502943392787978500827323358900506765421330696529493838030442710341504302665217057560255282087373144000523417663442606606020580509370421918481891797840410795314532790785257871084089250502597246588484794539537548963022930026947312933105468084338578348740761569067100648789278173440642954612847817117503666006141305536458467761158392181823334412171855366063221903602726463031344671602138761852424404566916449698315430457694828038735757975443818409994157525030861368981781788331656754721264806965760167657519947623043939146220164699743533823750116400117935208747384121574155262931285419511145968240462391665239441341069029732603322727360405311474933882699033405483021728673891023933591319056257735666385799844348587507356335603773503822170407410933211775599553574706367239551178759820002624317678441566877488530614164995392474501891531135301916601909018271524960034393404294308026243389928222264799424176321770809234673435037077523999638789022347329282771047951067221310358727355908341389196934969734401717233298308366506619215784522680417414286466885980683926786180531652686575450556684387461569361987789449699187190246180761413159583902698009818625769243517572315427466500354988630543536394364778948551324017101971303587182191325229313094536181649978452661906487111983261827790811269011975383816272022662199172484818902850156226627904195028708602780713215350410491000019282625350418698727862428274676887345309877023328399902308016811302952595998785295137592159431271399139941645252926255202577195545600232987532093815612777699330385078480955919802623182459493993961706217573195731515479919828981063933470769449232915572852594609094843423749589897468464472577094795977019728779496060395149482537358728230439468891417796750559348160785696011622064669196336307737950041962885959110751076321147019144851455363768331108401360340388432546695258262828391051922859943765097614949345211546549146416702626635923940215808418732130381524661603500921859348983047297235135974639488479296912729503257029712144966337876267321185695662621457037463308167352035512073336378788343421926117861305034159908583951848348954761534864738697348919819386148590560603504990104036892134828769438528877043623911262364222561425737105032709779629468144405245610245341162427120303300437880611223163049233810900399085870569388084796129578210081377002802132176295462375305052630649785602491425526091814553791865311175669486265703992766060762196763417233268476645766189943963759208605845074467276711442691933584166539103422557702172166552229071672587744798109018831870567009857322198824528126587062532308669009015840430093296519823681370134367858929044637467338502818420060453485342704358501186232887056641308193782398618006334683626427768925680331136768759077768628977936530401311689145466428345114673131643684744634537074588851880054473214054036112015062648575808136972692440430568517123969929921752436416544304425076348196646107977332698674043383114427349480455689941460170882153823364453755769059469978539030216430330233585261955764139624143165294574120062746840211483311184302018254506166960408957965773726677102274734177020882941485405589941070698798878828931902015294413127777085870814437547138660335920775219089575708880566302750139276620482032616916504266375888007321521979206389290495155488027174413701445094504350296890580570300391736927285388001905849447846298667256228236218081571773500021346411332253123845320948273276982023718596113014361720699062151436706533158305702588110887029671484443724469642399664759450611319961487795150188326657462131617620621604036595494219430310690276224986706492943210128561441854976632052427420756272939161892783265216751196944915056698409168860271062308621194233389126639998711748247633278115497061337660147344040411033949942643069501611632228589475752151882309672967025010008638004931874350949064151092813116419519208009945285241531803744174806946554109957395349017336859060262183440714293216273197385006164324762785475290001418183986125042161088048501329093451855843186409586083487362671352567796152770047150689706105167873314125966215031136016390453367664709627664190666546200038983541415040573787601440632104272165117577012261751945816006155136369878368214103846742060271549332605210222198159878458622654129634178591284404335072886889533516318086369339749108185384736133414674600815225388326495201030205229532064696245496764615113321715626596909709792559467792749843114122471623055816391593450562486646227980306495339521815205096363267925851898133867903598282951927833462592234920406773697509280152701942962732583012794870588738846072235262486239649812518910954159195405228465512331065899909707889328919895476485053555085137312352003613466238887019020691429293935369363032557067519170736079723606788253482714258568325278068286225072412917136570554408927888948671951643236270863598665708596237780627856665718610095560476294350494363841932410348626791163137753629543569748558087700715952634429171900455445071764856113014380025784975190160855078045146375283287150043845594589359426335558553887431174318924098772302085957561338435568143685203034358213305358641682128068821356729239286799664062393997722645404733754957419524459971354420425743252290006965218709711918310282060690352898848435868045397506399949925476848414404363255440796540369226420797017782362215397112082345337559154802679725620093727470265753773679464861442149953913065725074768379644774162799544680879788032017551313400060196125426056547396366269573256411122583424683072258401475878108525888092055105258806189300978912355169321455469955374902631260787831778038759930120779212552943548565655940798989553868236357292460368952969363774804742423392245180756071236597152201973169959873571346297444751822118134426006648426027548879421965851836100776723625128670415612184369076233873430734575512849267879616998343267586983154163099888019732238551819885430578235477867733795526062583248633440872598831273340257073048089962148091229218220991013665917985616159123293542216914488793605964505693928387967464523311026415579419723675716019088627791335975675458078609267146922480186588189912477166340091216215582913148036577134335716248621426676133733530849160999501237658857420866748530877783244991623878922557446537997092891530018103522011698570184106600045522104914831276260737903059788070913566548835603491795278656107464826359601474672454960220480001115290084764947824242829336754439958609706865245437449488891609511722062904173469509846414003385622755824398268120864414258073400572074709083733596577790977504147257778929345908974567681175091115129772073515097941498518604739808956719804013321769478487289701605815340315807382596791969529703751282767758629066878984427448929432556218407436705261978432150983498101885825024829050736933799368905384757016715159060144887180380524404068219371517138924430106735698856191357255118703581510178877379683529567866698886482922724314671814095431953650883560664546544740018167318359623605168784323848805150986746629866650723222092090367084664502373278429733324754527106651166394134582773862962006032592258968401833600410856289387782368067530945951545752131110133311494002481884621010804189892517779695585066844849037982478648342424265325120801752783445967346061669356861901830028534444633693696794923805917686642100310219689256910610368534453304061286149637882359236382389933355545707188690079966893714923112443554051455048114263165120635660954591814545500117744239827773461532257675191822191061331365958336568451902700785096412567570486623631551561188591311425063861411885752089726077334304944466125622131373292902388605435964136897262838871395275781770567488544095817899756752345968945478987753812038986653640508057716136988064124397447836292746244370058663021925214057967137760507462756712242886147135103192141593992570656083587412481224489189654875345922285229998698637467664804814178830724290178334599542066069252995950480655602321230552461893840953067805592427042787399279723901294296100277080055509107124577943750226410800530549683300626167443049979069031694669153157047660215265170567275369396626302151204448894180023168176010332091986199796116440838567859344713921914645037883318193086654921688956313229679724825617066080148825234203512157034089409181182317875355881689212436010341125072000888103558315637444579809856302077388642866820103213450027581214655672186480398546777678409063867975824158097979891055977327544720371472479551136233824089331604441937502464967364718264911953468885421801483259744068268824694033677524612725580407196834007335963047845649342193833276322885813130834507732830979637891982012961274360267291590561644290167218516350308897608135750130126046691736474920020837039031341154142062580075148719383805883096775492569544961537354430875967025385630204851112431551852514401971717288372373296939174635475372738706814873849686453137344037154008411695419434969589112079094830860156553148819489642730759258723507821343841590408055808538944221835857368850654748579802086518716923878864841143198448364185638815728906190923215956850849421262261678897819961863881670560686763331327616621277855198347070252683699539464899733363334327114396650980078975888772889777932597851663479846279481165306661600466137466177253979781386201737003998327491761522713945448643723377907722658517615999979033220752027425101815123241273633425466712468615556220434612663596101066443845762392202879359057810171894903865553586139586847508418229600440541329209594455385369826669432627798431616988081722218626346370423430764583182182129467663812418856263716584942944913213463574795409952416809247578429636398455343381848800515526078179110226447492693987805715938279786539242971648719911426393741744087339084899927038533862929814342160473827254480197140697299385302501771149221434046920151563708037494259440018970132770861957761580249641229937153990264952363855438673586305227917939203177523328356860151513252898766207767574414733653163314288161546957883361139604733956817882731905217928473903070274428850426881088122088214933626082828506510086867589581834478273773339856822939454440531887209926738857297968622426001455036529791580205040668521587395274698832632181533067441062480278338692484990912351836270201479156533316504500324409479273917234131057640328575492971996494195367453379300305034075636619309586206476335152912322521208810228065150241084334387496341307693975119901611312887098967716903937475943550138996249725128798752623002434134244010292558302843678082702931098198218317853579522662636975587125247002594304027086268673954880870842920346589759234390774275967579134673260788948426973936565582522865647629752709428143189236484958628557475204689761940280391660459977265125814091035726783669756464762551915717855952621248975012398615993091837250400938984643156941251069523147021724183995699868221708083345428287831769505980913472405372569374101213156253230262870180965346836294878851541284457547159374303706808987212719562467069372363628281519517283935091619708565215693425865387055211792817404430372401103889207349304369011209667732020753862883542763871558604054187143014657544583914041447700998351099912793760775726100667541926076607413896620878860475343910655214509159296389937074896791378458205725628382943029506924811162502451328561154810158257122490609810923873246940353300143449603833840941510038424500473109275166851359062395862469588427835086422345233142983587567373622553786595120890850494516976217480431362261914869578228226840359015460325399142052582650191546998288797036889022516029544133465420308447999442148940849853326636355881593744044501902615329920484392909030751309260770543661787542783110264505128864035435951601882391455708827182872933675268588825648456274332053571118235026331071713616018563862750648045448513968985584478497247467071493048882893068107528390159213028795501250391164523431212103906923538095538834195851026204820999380252933171899414479032392809239488849826429991202912853966693788961053415499703138885341638409791746474504392515154822313786123411160282548090496223646641991963818511755327525321789807890733637018023763820083699077871090598365828545833457506788015155235904653915792578001785871500693824146880636327241156880915145085231406001092184725043002262685680109379967210252137249274905348794690185573797638254695566845641433707219582661890419402063980951331943596924345973434805879850041198534992767677703067685750903517695956911098405556560013054752666861038912826028550219993330283249639664306674111975427945549424051255693418599468625515361629187149104511122625476124977196492644879709059219114293182286029106482036453696371938149987075890522648799310014830170360475123446421810212079966526479010712551123817826555429050713679352301859828649707681142315011327754792885296260270524467869846764558994792664107191191247457538701814303217140941626115237900154444391822010069404172156393853954023056453539708483320324928873212552706027119804093528264472057545508093253215300106331734309496901603543850028885302022427010502994698880998656872868206192113396939437456800172702560037139544384326681296408001344588399332136387419433185228017935585831493750569468987635597583790902307551959761606768608868789969271291892924293814073134427432905635070501396493899083904916601211133981335535898326150342381703626197142246826819007810258833310273021972944574051915792109025503852363427131641173760465664535688050871051904300639900354757661679904623880847724201107039500779938342840443427090471353722379128717395121549412573947861977185886745396535561330520463771657135150301375744167471663768466774631590299608162193148375509818590429411857384889916661039676390366750206710385266304071136738129056013922403155745314057787290266989347318051364820038883666410233408849950921040314006512933445329527514611121521371910828701484601040125850628293051494369020327500086923448954005745031961386125927276507749731988199463256576042722898721003840958194820201160675716113690751853722715871896305153011443670544526218029333120934898844910413285557858118431989711940011836154797090225556183151060554431560002555602763057112770247938678569965898751875729170631767163769166971344057316006698770645833089332900631284048108938528991329455995686598871410344323030056081988004848581698564201184389341076745312652893475208508796593593561238728973089762794470139879853147278413124286637634799441226883718650447596592510489394375614881493969339291968057958292430914579587266473386850395681100351004559550803151537689721768674358672740335692644117344486153497037427648232503967745230009984708534044241427969963551214545847662757200149741313786861036519291303246426364384285555866161970154715558774029006625795040927361203631090720553108015958157964833549062210597191575505401435812301601006287424459351149429695723696814706821240869132340889357270494157002344231979583193228759168389822417488583723370422267608309930022723913221783295604326148101737026857577749162258650477820121606029346472501498970193345431091206044297973223244562267315454307478432388627896253580090274259448760999755992755994507551957676177780667133820793653925130723864939037934314776361945544172110426634068795062473359375865147123481812345699760702664236907513499416877637351053924777374086015118410564695727528052807016028757312102595929500096639862640438698090790781412812305812721608022300532342886888327149211802273217943281160368633963149150117197175059320300387390262109135370156866037377489089507898361388707452009596247706167837582689499060317793922982129681358055538052004921577981342048796867160865666543440570176327640213899365707186250644512384359413270469446544475749102649868835113881599315044791041467437330476880702732528909403105579466545851977665221120004802623196650666785713424040901922924318473451149049854360821839733983960951487632283029884535831843205464791372562223935064169953751572643593684807760237936385323104323012788817603087395478069001634899745950342449750523539023649702747823367244302826405021452344276179611159744898114727246211389622809443041404350698674173675616261020484929998734680418248330547731833670770731733514541207663019815282357755113843732859340739229856059706974100056334637652331664399641965127742197035787664761329054077323423828161154257103526750062213886480096994098409109936713539603149805328339983574645033183544922840483691827549720254527326932786930982547323965736144453000337515504359263965169089562414063733848050307991548883583488266345562710481025765585049670585247913892304896704070966568857689066065424964488187093310581727647646491419473666857626250729107658914900152398593036048790638507966779933113082996576966515233983182455610800547512573347292900148850138746330285956540317596860977901735909200796663567024516368110889795569459450127658293058713271699017151488108366788513687157276041471746759573586255397002536565933046977883587053981041395115084875830231765959884050520696137003213440285509328391136656610852860725162884192561752497562739063637118349253594622774397191531577851851993081267474476488488264686582364486328208787370309766473212873428564712120503634028254179002498471520125847455080766033403100115553272798220615434079566780481561576545070164115051990535193345753709357921998666913943227123435672385232823048199875364991180657739100943714009652667873045275908599121570322858070357934903949556045468407172621809088502692770934319291832245564989918758814022149068415950858200348127733566195425803690146375000727442595981587406423652587545117262260951302721813179628119619707771704954542146081788769960307011400464001391232736845770285079144363176139422282127111518041083534816040210408655469002304646567898638082489837649708370502475003057750066317075108918215107099737295786707634025821869529086221297232340808061964389157954751093323759909552270752473300442750956696529100931908876590937228261606235009110570177249447391972679796028327869434676871220188625199973062081167635451132842192107255919572551684617826146715186571008075184077989071556687783651725442867708814464816408120378927380658468346954709614899482200929589840774773835794943971683509740730286248860753372857975806997099068838541183380693529265726062397595273488560098895064646611303030974406379197772789674555293682298452996983026123636358027169173167863130157268931362142965906484432587614986098640283774184681754701499471061424181037630708057703848522294016850118370559823534408311790364224153548394882022552274810024616999658293894194960959790222395978511683027824245528516698724035469796363089153468531507453121812772544165273884040099466059688188212958565760619317218437072747942466282975989054719362165148735023022710570455800977760344721945747444852289258940852162496722948694514451246054182833890562186749783107143540849741229375056938311426662988208026198893933015525460099134907473168844446994025895684602103643826943489148386608912712587223321826910415528381450317013626909075751912749317762368905872934935438602347064542835825307025289047993769321682167830843930693496947530625692167209377761855287473280278127794196767385114164324335146826610420256682246160254659360064218867666065905709534447205433849298798349136087603912674551178614190097325937662770830849637168735266568411928745423039384192980337949097761225057549424588886945396677525568464101259560996447038861627675607915086770991814977555038683372631052068672326758509115023224810846166444344322629566063917237708010506223354087714467043241030297693643489282568911606518732527355703230309087835975088515871855465769148982586145953164180953694250573601497515387468005746612918936369614290693127951627742652308191461581816516235297111497809644703615868201438086013416480159647000237517051098734498689226383397937409017845441283634500244189514645470457579432310764840432630676721519470541567262354367164099873907885713005226829016219299688166193229948060029868728014762971452974578291713215701048293319199963743868593834927969746672162006728598452626687911703744316486994329957033867985929405991325063017699020710035152022934401902591079090847363498750214414110369997144002510715476727949863418687570470491940966176364343343269182389319684920551220912013913181145002640642353796314092631426439994470249719683758455012252032471692762107270285994843860149290034673834447078402077776506010885113019626924903703175237174465760490397877710716671928532018451171882292737733708472576427812399837400024493187608472394878587088005546202068722711172150503206267579867162072381754944897058241293778625450720900148630798893131005627666878399396532979037971091046761470763481547087939250958675327330299110488876242753074329366582418118502745067711334396949279176842309314855175113918795813729166535987123062982379032454798922779285470055455489428070318383843974778689663564640160979011360784178898127315798360179599150564491614013087997212190063643955627145670178862033977374644446280997481707401029845072328719747690481661186817577322967549776792056388066166489640504448610920211949424395531310565009620585415573522839136122523801973238161497001915708502448559006958623035840212386420102369003535906477190352801487699287726206948776511711920354057662875110634376280401922715981508307988819907939440505547035040652924813293222108640514845374708208267797777172121964359602282352232493786439166984871531064904363940022784563248833283803760773397017844426237739040628760389705339554805426019632348620536144240513346308355243682411790580665478602139117250922591194720133438493626539844309997274446254309928577632018239486934850206791207538996503424375365474145899724411761056741815993936780595138341777551871139188331568830486069672555219030426336749693924576245864110519586095473789537570571818777665737490857272292107383358112295986133354919472103354797937307071804887017540157112806175877438381265900186798607999301550514377728983062611059390732132930963692442437638754829349230263104139039443022670835332939574281599165822435429633334274751065376003603607161020189799041749515796133474159141107633972394628934247329089219743362436156133632184952024041273155347849369808995879831899763456210620378351505341268425540894253097868429931274287030233918401680038008639073413857025769671706991365029573043763548447851411306555449431230743471231475335961551839125640478537972073667025859523064038730183026348021283723932554345121243078708265565881868451789651593403472208423175228030004422322834549634920523208504949111491313515478347792085940170998880483207542153858548097783238402471367026210633895307605280868982850219804783469733058706478226464932481620283564869512318230304250604525881746991564456037189053431830488011525395159152419530172873967446053330466669203492147747120522935173496397295587269138471827915995189215271818602484839906267014767165167610161108382539688182627671507926350737536554022645894925946323982073547350286510521843861460756172461039050570617786357972814030168395559697435112911100111632771483940799762865678150829794685590876233444910288108185320232885789119792816990213490856171631648666111043497348119994127170335428228574937187838797445357280789801422045952717433848821379076105589316025554226067427661782614948002247921585825837537802316448065724411304795439515636377579192167604294041605324439519687093817149190030346008091020502585330453570501751452004485441280095795007999174055068743230358531621380068657019763576991613961812635131659562084880664959510147542752354509605974846389674833673471199903058633602059879485584869082056848969430240996064633802786481000222253356461738078469417639873864787876042328715486156499577401816141302302472875768575501633795201573817394717952822428994101500687734864546948735026526787494746973212949760114293718973375975987899084706054817754899705530442865827930438612268023212805319819665366935114451325539567884060697970084833619995819571844999307056527217259430240058533546940047639063636158734407420751506890261480739639752156337860146285607139415136312414886489316499421998685991530874197945269258547737551938647953927240980808654579903850546490821633028830601303577092641920123907615302904801904671158330052022803898533310890819729821205742690916313826210701815864665831799953736299068748647322692492621893020642557866576685856210496073026564808768141648447700271551767003313564220719262065855175549587747069722249308344677932128150211430587740746217657054994032597605511418136991085186905616302063609307335123936853337607787398360102537121724140610316349757808197703513959441589538032936243258685697543098986236228842573807644585564277378023304099523759512824690470499473715728111591440266446511950911793729888889741367848242201186384786293131979075354170066977340284194080283175177744227378699796666036949619466428815856515339477536051686003170781036501332766853375963625183641836443622603213972852016048042456044311166068333409751797976620647968404394758661378802321880419998478038006390335265872826972726068923874314577393235789086107066512170440593551193276456427767665287473034425207822706429262478886367647078456691290888181966665776762511146770013863108252725610050199075845491496694475712758535510406454018201222067118608631801142303798880628317548768118312603087934758203125086824245237195460173055654058458176251704903826846809704777534712663204513998046446167525060901531236124657415937544289362077301752233715690910021128610087750348247124084806932058083782425884073808591241013582964924844332903265931365268348280914436965298839216563355500199303356540331727095287165172173365780780285256163191174907750694265749267434807913823891872004862418736900312418885294120539474903609005296987334050502144828854654874386052005560385823391273209708452239064742307635808346228525182893877871232907291381055973396638354960927845350912348608073165348275900085160945157309860572285415363598273416118740708989943722536242759471596072093452921426678859582643157733390344794592302754439680848512089222003438398657764291922603536034198436018662347197862980866769461701136513772676597290546650412891315156866446241953858551568611907093667403199457507551882864465661211314708361151953889771988833694928750474026814861118888918140861097784356967227899961048991758852608864958757927615199632607484560597498979968945027253573623860536842375606591025064870360267155990091759815742309560534423643084699079219806205790717603756118527560373019655409705892418679979608258712518819734304933333674910904715974399575505428680895286482003448463525749023588457750382270565876334676980954922747846941640953386232864981100976352170981471956130782799222059233599146963488526290705445593126088084693236741689923299824552216209533261272868130842109169205498096528909355101381070236297963315017499726346091298107541319749376449142455202961283681226128781963156539788879222035010490785065959603367416575281650083477468649989894929279611382183107274052751276482270524763445696873434197204536995582732718193546611878517311129425352489026679481909865325668199376629679106076281989222739493795363093496669820839259845659070835939227716813606025004515508361235632110085681008496103849578225502887934859945179273401140696390118272070688993329283994035671307925762666760292037359408408984322325553710479317918327215755804032688778278734292830180578495227780451811936859638756323065679772640214250763788564358168321062629420405474841690395646839430923213051867687850726663868102842660594404967009553293048585850465424411706855049632773441634283914721656001027060233112564805763005968661560936324606431712736925135580647378913860593326519276328394294419829630329730753628077236121711346818011000764783444561941915348028926702114472585165927006509120129167160422940879335798272541726765090240721324762940864991780268649824772915243143189246728946423473713266114056446790963222454271584592626854336405343396869859036484006690995392530792159275848567671639528167320690311387975971145262642080891575998326662723709965154131655289789815648502844858975905002881100647063766452286104350808701791945701256757233108203346355767939850804328535163680717329311103862371821030263846392602639431016843431718510871989802862814407236021904366380968410945618049393498267866007487572463427446464449280345704061286855805281470129617804802721682770487301907432966790344960676078501470350758457012843182820410879835726516911210251344383117696358044262732192165520996662949111676522699063484360692073321199020882568122502907869887255883353135864523702945720012561455041659542483000928669249009498907146604051147796031957462268730489985865885155315797844156612847024342982203075765805731512004241417029176946595810376269799669378564483190824601118903487381543964434881266759031330164260437832416229469338589921155629495378198003847077092696902036134469257648368440843739723237145608737001453855981921015027416709262598600777659385992179205767032032353103754755687743940970310824440555591321681155630281394334377221999906978089927028795641391174903107240146628710870720426123261358819706646188476808906588707251696247895202372916549428914802882388121842190647775813779409360724595179242376484755920882077439103132324441484868562819207300970074770177023301992654075509359261330140678873193913686032026443940902491769048821712829154405259044137048474817451693108877613347594463382018067285027287313817785855411657549589594377761499971601812007886549084165666425819520568442274668517966255375640153544839774162868487854870581312533028379030010273199561155270710878623081411238235871710297707071029586597607808783487424343470829967951113876742649916116064778926650443900226596462292218759597330610106766406693185140023400496798292259295058900841608065632642752611191785005091939229752103432877870504645973094018436308718224374990354898799800606770753157926088215429529207012959953804982675693624438232410873699023756505142550040257085131105532280633805550669218006969563440782111893494266708075941173035875144523980691105822777362571151066193182850267244472612073690851468993358067383710300042492204091916446078501996311866816360410603789784001388828562078463458012518125233626373687483424753968447379384329996904680714711627595460799638614983019520064466259407676706137260485649914123082384606891262600509612533202450602612892986692738906807708104034145597176463754644316586941139009264092412900555985707296078271510484961914708663247102639541969977092649075825305779683471620130724087352959501380637363814142805475672661790908021157703754314407171573808184763937468304910431538341649229955518357563256955553967769438129922165149350806824796796465103614287918785064959539117906393528268175474878962041545248344663289930232305376973018200032096921005743709710011031946562972831205725119447031376667187735463903078339750214333777028413532216200552902697724981553420554102204093247585174927107800316775646770986081366502106762350648731259286408758562057967968434198060733380271620256934721417731248243889746534707897276238397505829138383585551555934820995409998458845350115511548907203715060768800659425654866299794872460305619011265715681325808863209270848584425692501384842092874616105207616303432899439184131070519783500427148414960131212544821741014811592776593114076727425430811446607318384330932874371081014252071299283790846238375581511699508013056170244714018544004832452379855427479574473428192930160324524557223019618337007086762831256036959783016541790743824383139551259336826984450694297434926246501848765305594512077665365164999405612203847478471306230435978884200637001192014818820486921775289688995209793085482681977479262941531547879722615624143403973685614850135977553386528168786947755505865153991148560591367213465766965007858040205002412330914495557704561521877988040419912730984351793858475794204597737021580217936410342977421158145213863890274581572773347662860213080611665526690290942840058560537667804306157165248926534245306368058262290971872890724420986045942304317086697823752344389915997744115210963609793392055966766057091672160858234314663143966946524745224596466927646013509614628727446127786212198297170908970036948243510855876462423663620365735104905556144844729776658102338810376126059492049634491217886120961153593518475763685360373221571302762344829379398050756638725578065752009087551964570401921074906164741957060910812635149986258199773917263531175634327438109682577117145086930980308750226307551819176511054771549135774288054200544083333116775718417536169603901351192584132511810691812952173967436712805885461796910108369396177422723448584133606789824298359470000736674007887885254209678286857572874942300472891582698291426338640005818494463210774479099817296846170096111693905150826759395249175056170787817923201831538557855213387444865505479922355531176025243921030093681871778549466275353886418695190999941787349194837305393160117995964377544319512726208344099998264971207192920098803685741450876849428300022069931196866842696320539829909611915627446587857279594663120813768927994625509967410677527413155121068328139543774082287580449341909133901278869018981489383235093917645589298979667207445081867588130822897132347332663813229771099837718006211739669403444459867760972650614962690150090697957044915830678735350807757060812042972087299403400692146331232912895535606435586315289675634024111660889516222753475942623512384924066855262538767220574635348123372815004311306579575583187567141435711116752394700509581891096651106065676154228206399317552718502058991423033419999891977376193275708022238182697956093242075756198341800694141209979104026455227767377279668956596069237965366490027307579282353959043504939290647451921140976432993968838979813435681854475385290862153488319256052935187482253600109695039325853753266956627306418293715443003712243244761965868776118540924253502414704990793868851647134281135477812736979612109506714526777328774853011455549265756454517737384446131589971674302620086462655880411955836188930587768592303846946163727221790524572523816471427159585476926959827960683431698960629115281436006556627975047261678584530892413324965913540757503944712474942421741764756731749305494445328525760348908489087265642051355889013565843384969252723253013794300944019186004655035946025068327332220494356526936804245959257996446375520742701926226643614794158342931268275925168355462125855402180901454309261127055847874354530308246420847221863122983059950277066612382945539347021738970583121803896810773776027661974610286093425689076172476709464581512357755381920483411965222285137316926670481487932609189025915300002252311872624791650944971722263742888765118791121680378360347741315971919816870602988804142221150920912312334019790037853394292533475561303745422239895596543809439446474455067283579664708019162083936412904078963461502077693862659102677324343533321554336491206834467558691646322716401749036405479573525805881388051303992235790622710677862628168891471467847307057815048661845508088303668344327282156649976646608044951337711877897899346316513225211809459842342050156663135078840177782228715671762163906564769530619926929768147734118460070930290775061512792343589285569029538247837285629085973406964655663285934674746020482710720439206753495797917629489984611941489450801142589079481191025247232703895118651207026643637479193379390001446213273268029833499211835214391735460528361141957187181435551566788804970629208535073643010432965725390533808160657981368789760523607596190398728467130514409887229532255511415608618474089830980058568211300283348098510394207909453284680125433157595593508919654314124871443622799436976886901997593530617102783076789595616501677804147491423947957493739875259670806077346631209433614891680680357291975794389149282432524247368748701444544973236425019886746266203242766537116276984866712400382675829945549891335756214820591846579140618453625479439582065783468890928280401217170830570088637618453922252838315329943320996023746690540782831773018938900466749685012382917762202920122769030950515465699540469361779233273036438818947010563724991731365193772499295938519320056299322051251521272102435726778190869194889560460053389547654545523950599117414249440713502146161402808806347777010596806802310668492668860442962525749583548592247069037088218844226884401053915211090794647976525894302237165009532838633303337629916684250063625111922205196506268830511350366513369176975606319409493723944818597351610297472203861146925399821386157718211639014892328263821758230271029428413344301594530963840570571665691995493462078016580839631709228624407599241493124452173520272608170239889617005818200160810241895980833355486471511714304188322411079531773182709105025461569904169405171305069853359001827083090813861907942949976524983445172036325030941887774358889656707157099158120032046961572781603496307937330558359484693778589479471979709496294384762586899389400670752626687612729676864624795823308965803947589895298306179614318337601372926188220052937691068658040479099908254034418381891399330854968345762462900573109197679592472581324852194005285843657387912786731987332617321401897206092601693349853559305307707066325061035377193334989246574080884371105877238532424045333869517799328141604653475585276898329530711915860821869321188713445636679578085836697273547269876957298552787733294292006834950148167563596457656968050057683541119960813100977019542755020996322235672492129414489149416182384492708171724051510093939016172704706209867520464314446609260089269954143316301095906297657776669822815754895139821676224237173067701208519737190525488496624462089071967379441371398125020556492856168632807317317402276090262955535590674961036900654153400348120598736204971170151300909927929863301701313786570991235942596953726865387195142809905334424461384527090939370131830131237728178391001877226861278411233846330409346027001510072505164654780090341364477203575886332303398457208475845927010975039549735015135703903447518372158843801126555569081623481171920056921494570976720973458400834571291774369192228436397025956808206648985554368660307204170382392634175928332093159932061362769384181995509860235042180421888666509612604342623386908703923977836068739620008635459624968586169186056288698330136245858632201365588284834018037215904708050160217663590274757800023609078814412011058738094773720227603470091258842734412901444135316107962962024841530315117455411748868952899397235457024780442761754322889204410377132306844869923678775215486731687670160995596061159325933431751390903957929730652733812999438994992116372142088447356326409052989949869793130893165498841226825133758149892597903571180195082824077151322245838316684279498303987188164938026995945771290591149861864455882814940611912745271016896352259299926571545391291834604210333495261934419910336571390919806099290647160501884561179165242331447966933303829104345325015101259165858776999670782631511021308150731683448651519760990924741996142684000096492642012950533541393396510658268333649893661013292830564193867124073623207126833707804629299141553074288216747063928174107773204236403310117428977067254580454959287825840200912016116202513858494373245962716082921187322715033594291142659461924272378190077159735545144562526919111805427375328182165635814946300098766820714935090637371470496550820572796728621906342378262322768671466907230227898409625588296673849032002132250953186923374762853394007853199463987557928063767947841538070375035804742643515246045433188154892531454623240552243605932173967458834933791243398182215370080090239411215009277312504732016377914445854493555459368583345909299190489981626548010177627783407258307295189257959520528838350732933096285456271915507837115494789940356098704436007034664383848743386172677550502131888495540840674210444283539173332069100415001596198771005808331822317042928183965132919776169490416809181982385201657410920051019810955459495526937050658182471174553882635023694147460510297877171834119117142675918055850378335990500333006998539935550659166269944125261637663699639764365577751343732723743534824812270551400444652239138312787655966922486731328080917949262796653090903754091541725929861815980521105432956031646200210269138520751825153587891762747616303305853370822781259922573574143288841365901550864625465702882434057240406044331563117279874158565497116572652885368042031281646482450178842353307021888142491290488631812967564856301248331501688590088546094647592683092918682389310906811674652042959139910611831610986340695188348073422673995894682386002674380857590666316496936503757352359612504369302173599053771585747665415438198302786784422774716852465433977037269224516806519456091767324834376560062794630051483202378554987089547003577515302363046814613149098404033861286989883489912398329548229416396034308132040224487138644159440985454057990796423605412980494725887918812095253210870372919831552003928940301049809624710002692760651657889048371595909439283305160903276529783234455318909842373956879250367745123256993443064957566205242872647846049685814002350283078906754718622380317844493569124133095108910353248250537977081471832531655890994804638787312911453417934203196876197862653921368245500455371812757282730088264044377615975090495385085249611845545208281181256516274338121601415767206791002496698185704161851364379547181965045798097995296481971936368702947401832719260515632264092166136229167754172498353976240280055596557319816428417037157276858563982198851513785198023050503546116120104839860012129301422068952274336212320554857885214107919470094218452516489119949666222571979794237550537923148805395382394713058763849229039593928199244389617180467801704461710788645147442111421385647546289172374377171171703169249530056715134134472289110380538705223674467100521578309976169850086739447049491676434132736883214385763675190661283333782472260299622021405891987167673988961105376954134078623206966290200192538400557941473923691635941862917644884915927737942789550883130050750989893338825234967831464849723794363481963196156801061850112548004653776025860413767298782339263848803614047648268933425632363125803576741819642876192936832365794031110060367312841975293807878357413668578095037671830155718008690444047282066696021436826605639628982605529109239829831230743439104960311648217921904370180225547677363612452532781428882807287039327674789568057281818890635231134553103910953635710892147752886658228556776783632765419083930768243680801356392430384290281021248560340673405832864709354208407237637260530476754220442512966080568720232676798209052420080050001876692673422868516480166691991181635000572070865491113458274907977719087648926863555711394585325730447277567952046842964015643495289055287257036271269418873979249279543611312250943001122584827865874593319403507633759526246612759505524592590907506194838795234821346524345753015948019060769165141238697779859295481437824673262938843950476902304191307162030319893010743169957797594105109453383015821049433727628921479346994042377900006051584497849229524125319290781531728998826207135748391362471938099094353513715937317521012812348374282704937925327373848841456130797939485610222998483746025066897751096727954791980110554492824933032874379839127166296687842682553422141544895179395317927556217580300557109908189301025850056564198834725371294477784981347318360441475229053460252722310935393365402364153486447786530770321775283461421030791000570666085190791621361018127391703136367733241021004266292029563367277036500737350728263088205905060019989081410657694230446291813518114180821708578657113369380179225599792971592336269025264636551830987233273823372792494905270410424330959401426860640094758367746145586060249823342541439903139310700970843603109015640024177972518047457723838158495417422292323192043254103339082667246600307684412474891773062611270238920482964370022933891815812062652724400431385010293705569906420636435184810190351195589041943120245109305188140466795941688429560333220126004296794738130184010100003197966672500470151767115519648958865486994622155582697616819063267650473981091878942291295047045078855119848126459815456015210869431690272863187350327178221143442675946505286983467529939195119184817803713308902098094408959413523433494324681224281839927331386155059800650142427133562660207856767784352655791529520739644863763141238981648553853259231553245116261588754921696570873683541646794742298157928593030666380093539808993294164708700499573073596938363463157679307497044281676904639540618030293004264068854770894728902396815629156595400404550133297699869497928002138608251577382995311280769041719704764385927300356884650597197958542633526767114652001961842646932541615207167737344543520583937189740935915217517423646679780196902696076553720287231766744492315638693959860680859148102949488760469639962746717494371768281842404618740652518433186607111676653069367602490125479101648560315917916379361825239149719767940153378065653579533734798131087040244606260248143524480861380567610634640998116836482914683001266840538397841198681735809548479972866761905358296187902471084125907338038458701389611819522456856605670803359702681152170695113838048401372564914211173689013355098240743574585275455201733070351045517737365368013628639635437942834953022457337020138053440167318152618958985908728132976407586834194456137037205713033892283431425919606899514231648562489421997268014844757631364172134906886206170692706872711097190384346556152290800612868097410218623339876479179637593191887575509686525442044187122684737361074168238468888308611280795778538026142719693535096499867716472464810713059116006923039119457186643049486113973480931093668287706942935676006950287593530098180454665279681878561855209209193884803661761695068184283799818774879479033502640816931118482718461981466229358106865622383302073710861978123865104614760301579166039029010750941654461741974074275080015968799884497005242446510625500529098377693969296949999006173963425079861403869075666443967547976599852361165626797511384983568734899255873243016395733289183196243958219081543553966821704120267756849972024815200347171549971999020284532277879831667635064753912973143877832496938433371882218915202978039632626474768054058673573105076494614582705738489433818324496409859230751131989138522206942497028560881032377543386508114176149684520400830719606885399170402421965792060118563292977894018432084184150582019077174174218462782170215239851394728585927194741817404943661606608671036307226173695321046736752349910071591765351732861451054005705340615925493444588638353052055754267218457808942325837404736916915277263755769391824980113038601654497472136044387912563789664428438349392156484391739840351950483524626253550268424274530784586612786299056648615995511327575483721001717488551123626773254921023658649525225500665665174030296958526395137113935353189196224596082168953073404380247975526845041012410204463632858731152354867310005635099700624846660013907453806575189087625039790232493674620859218969185188076822643422948815751477958593712460277101330668581801924039964673354407191932344215886705779685997595236114861670901507868638201135520812995997816996574565970341798482295235170210302596048748823212201265112760718704981827772277621738870491173617200250581682870178560311154121710387011805834107910712073287481311828834792496723776962705378230054868788828711850020523451026453182206891737728359414586682182279196976184798140830081288668033915970438684916306475610830496158305039287011357035662298349295654671271685800063022447106854321832684667046041236481655564705475037285484920180492387567426958869590735298203819513936077477563440769198501501804143552427942817965080021761946101665658272674940005898898987597063048470538505784860661797074568981718645141329805639621206637485930148409775693472633199496864171476441331860542290093456975061467685513883662205810304134242379403396345665046263126235593944949254943857897018097698757806346875597569974041148446563489406865517184457364283593465156929813056116418855038715215390401592492858510693835948825455014522658437788887905078867087587716805055091273627900200656763554565146790037674394679903374992829216550690206769388706059434162602352194105910463503378035274604757716220383086241598034622164176570831536721862283971488016486626419062588784502991592198735837876402867969839977686607861975046889593160540513596847579255647074009796935532770472009140545626365164420768284592515086169038765780752168732851525791113028138336016070983925964465324043662034169279615507522608591662646688160598297145075076151731710482898277675502228921865722219333057557924024774924652803330977534919234733861887384201667190742035232280326473794378331696334599775055505884521475689380156392069563413546573885562787832402867263262259865348369668720355145422279077000218206974781674100433499923773790046596593099776698510855456554357535554461901330621211411903850508105617622432930236087578209098241623837919621356350086722715712650111861732110012947729644023875763721381089876160560985359850191221941655672513490940739568508599116697637013303802000429931182313321382589485638248892692705084309296395068234405808612676870847762162605729165779829306090732418133803621512750176036889292771133285368851070431034163122784487749329513857706083725738521073460446367044273433503715607174564699594087712529822590473213968473054863856445865910889545175963097942752798915941768651529295266877683824712895671940534985232813153778604727291340080954025657497586200079753628829707440918149165510393566354464153514956625997740967203774384241766331933812859719739885463524519706781643476463401614702581363631718876146551942697033873150812831100138847053196921833986908334578503004199791273670871309064820467599698746963550475548077076562519449758894964798701238168257365358816619586786731569227484359239181853237190684028875265362334187793298295098526112539140699587447874708668170036234072431649588692187914019499419146587056186670318600003093722377391367067892081772209551521815003625530783082740811704686522387426877800852686817859071731474920780851081946003893491879778401698782557048928023359121439704458978962745686042060923288995317693755426922441962852892591362491568882105979572677968763496817043249603709655048653051411841657007215025540423088128355942580508409800247923913406316953699652224562553572626120153086117812081464678615690164718034833245843464116545501618053826084973311342435009725233020568599567037041150695716421735074292933983668990377640547480866785926605401419925451251850897612217903725673146983254831336947617656374982660991159704784227707166295783232122031385854913805632358653652400401309135756761351840887419077417343861486136632303338622623712288472227620379145629218297125840060680992196592562271240418734833652862040930736342340773355308211454784511583764394642762234628402196685324581457243618744790417709309713565169380921643916765534225899091814701258990347403554230379684546876104742193008124887289808859854018714644767270155525756071929539173621567185326017377903089403998887164846601275888877001335941427179931471318566140181732223565242436828883053311029120677951671651915729227602679868058633580389116940231607835810545115882890397872094831359122807093889485843661900407513530895028755656389925644099588850807105336090162265505094964903006735929820467444929533791346949571088877856734154135126237442430684669609565634365624171600004307405565095183965524498664335120356036023934192297704622992840384836429575111799014058281384765097998411477535769780147913094090113107586240817654463966155577321279693000396345426677279474637804017481468732034810246486737831532247588737812214475153717967352876699837637164324080510520011595389374939682852967150823473911873588050488435533505178224534594354126279796235127005310970326648475334879264155785280990751878305584803458823891700730239707739638893497881303051548897273930592797836420251499403454855204935229024499207746809001418948367686649236071102097169690437916200239669009880416068942847873308749107819826958091532681099038721079919832587059215670125514036960345420221359873480980250396619279539489284190964197496606512957820103375808141024164903261430634305135148435166347494091483922246950833203961632284982313281301737483293801559645540864524873726138227854051794829153717602244461966157842019406527944994511646896804207680443418952117347056224194608063053285694835872529715479157371939194770114701890816040415783810961196051014221040532654090379014940147202224512276021209692361958117035876086893111502015366388666557579925070674368915010393600671909456996320794933475002694945672226463822916489336803417414547025552494081582704384570980073666194236668234645723838322639548397612441081474955469680731383978696005538625521637245763338195290766784255524655681709874237261188426635621382005806630250094876883457078433458466768466014535174928193539083196110430611631967606999054898688173834410159578241301878649399595365610874480728666369379223176038479130317133289836004102928827817823315716672407794034918045592826445608215639710599007374013556483415993813267329572388681592300625875884564318227502416503301818227383713825983843191990812159598208998838763646156525246443151653094155837088960570861886347089876181947879235657048052233203694015101144880027333162009177050887528269214972279480971926508788957987535147398091982677927683070312951275001695026616676022423116306452765554147765988992947856626360247368995145325659413406835948451861432811222967748958677672328873037228152056139596340185924828830900348662076635844237949828958187996609334730101305610675460158270662537742937951164679457005191999371080904132426151995993932581284849511683123137654735849597548293191625561923116373514865476597779463761954239366672485688714306342606323127116054865245607278756186888321940636680110164594853702900546140952160323336576943047975159917792283743751443887132467894867424867620481022736828837830213167668513795645527922504793217625612309250922646361225440307435636606442572412467478883210097635171564682648575373226864078253664391348962516971716917581384587475862642139750729007075387019947557626025142262132276071201416306653299029478088946923978757000645070578711474130947508404347404496626638295627105089534950368697301853960049768853701567126681325663362764764396717364905415366606944330863463026598596800527985308546841658702998925708647421350422279319742614815547051455637025079268182256435585154551113006112317437847211345642668717330274761231295821170243455729534003211476043386554907647476225410280162257201937155905464692275296533792427492346123918061828999904677449522998774871001639518157160723241204246009071478852174565242700627499090210779216324225300166744887873637875081779385933674473085863637958717292246238213062627425715552644000825861558621273929585696149556301308162258814458281407622485870354871188846297324356021388095337915852541765733425963364221028706442723941730262309840802721741477984174655192414648134079077148963392024131509729084714077137906734577176225271996903501550179380084953261216558597127304462024652994598394630077061989710666759477897287281987242886052912329590299821330955467999596371290362423425493305469358869003200297670166762472928243965832764780373455249974495324145059190923959546570102725344688471993790806394822644681619833488007435283269941642696959677488552013137779091530020913203421076707176021160383117611647284299770543087983666153427882215618615100311465916384306525349850270322420568936348171750095029875209027889701308027907915381883900811411414351738477375293801861247282230274268969150867181885241055990612959739386509428303289129228691974727357790009275125687542900501573067052044328407274609734217058363940941143764693218340089325806243427754842280885185838459214518108184515848230778737157383991949730343913896240067155785775156311041109843950977862734081305725753107892463961108823953171126266417135233910800452344080326864486587988812552589604304912806327021217169692374625719415194258043506922919317955128135929356713635741111600541778434258403000689107231688025512091750241527848395204862347691528741551284071972599632708223655134228504337509468140378073625909440804987415103506924266307318681622308909202351517732223589114232449555399533870050871911712617367934881676957531666775624433466125379649444195718816461692797409672681333583735313971717133433724811594037107277135847861338712943792383493451360331671098258277465151411841222011689643129346158798494333566858589916761755079066291658725277416325727039166676026085746398105093338881446629184931073089216108218888343609935146360857933403667731886722416325361186121188446407324905319653346623682138302055935750445700826374069834434777536737430461786581435265756320372867155797547656424302028576904669438312065625909980213912255377290818214765260101654838231318369041118624870334006733474000228471245061381870839339406723092618347128369668932126938094480934868080790612334674706256520770823069121244163982115222767971802077862641961048943892914529839978795256131221932970375550156074868645942211655778257618093036320464613563137902472356662399786948247541311635036017022212086500528647156897124624662916202096827906392198956629220810519568742988466350079238064653361410852812831919615395973572377519576722471260728446818422623472584909572532724454256856864389834446006497688258745993661692403641482585683824777822010684871325704911550837636982243234933858899472001516409561846851267618380802316221436189635860076073833992428087654328487910562979010378953921711590107128136344654349783163762561380404048527696045713361205487469209277545013084044496778255397947677897191291866667433875566516440122425922457322860746915018457302345874504695802951604621324363916395200773679671151065759748738108797449057173259260186719769529442538143067634065576153259832850066354115135765244589843962143949620658933769604539498800682245876459773843956071021559799526697177009915462886100251826508845864330641518857271027481434039150294979379179391766632871770361201425120888476302566565965830074924661337239759742013874044161829859376806865042727875235881238004498384381999815892843963029736019416597367312031541037188464313442368859171856953788841561963916635614684233926115124114181088786307502903603337401813192300514234624543012350434586561072401393425035867248818996870537952952339347785442711709729274249292619182533867417494184381389110636416068686244115404771727284728128592404128789488373812693939011179556310260537894189391148085588687398595868450415093439527514367482053925113578002528064979915582526650081707769697568033380598244273583273847384361983831696379170855218949791046435032692627270397116050608564547505259317098866438841319887085122811907187294810641576302969543022044378634735140569263147653712369555197809223696595555540897969738450666891507594215336131323646321891183227548188867284291891987374275112979030677448048051333420724575405195064670798049121797379753373979861876850284072841861605773114489419258539575898222844438537697581414319188073849358834218160893136267740916606003639360756325689265412538361681160050955825708863733844510259028660377468866127284087726468266941277337433275581240375174953830861503706257742565246971149879721124215717792134755444292347328007284477898804653810477891636407456873514419003921939590634917514109112474897724434727153039731510331451848494857211784384051211771311553530482278058570837050805193120872094446839563767953287089961067735707126998334461697318115613486699496195629416082905372567350640531111592227684715948195099218336475684878449551704869128840446886963036778028089453399002318769130655167220238510070598192573512762941411153762507362293186019902893326864623271368570237826967801242429047858575975411409876121736599838508390610825942772768869811682643145248291566053210943637217431665230200155016058330412045854518505228869270618560922453658158582741847944782949101857292706489813190815832732919453784670018465738107686046597872035741161541003797338864768729559491415496763317692987118500273530404968897498645456529721427756900849607090734353344672312889544266182797695741810954323613387347999537041675261465675111306555114044871749150782623844840006731279084166615885564466739268311929656305708872928489706088199646307557917295076841101389509650923909302299989601170127384826432081656948359326459437356128396653276822587731450556826389338966455936158109575574383986597948110028688946998022533363254462856744180467402760330926146343307998717957670834954023107834680815448753674439115485424894451229743014366445163655450374695143187596280613768088752395061636771135457088464871888627680144851289333502919865308083408405495189589571781414361050576451213805249987758504749890242001007435908309542748039033588595931322722774626208090205310764846295066532377741030861722312361630112229661528759058468458494087501657343524533579768999280035567586045302997447012428861362436633759833787938854033721078206792333264712107437109546400742412883508575679390278616720781387362359012575478829793771816123281478695817579637545230686568061011899293860695018870452962587306723779742479402752311131570660940143012164830573961745186957595018902552696846785020247607919243863771326371671104607163819902793512630335292479625981322046619519677755435200548863788660729234544246869152070688063858202578232114866230901218734592276267793888595171939768695265969034160208175078095988902340708119392970198747610713613502976442804318664266653816220940440249023403955797741847429574442337086923975795537816187469581511723771910572136986668395960715125415886814284224164373979121539046069569952686070523403841978291016154283149746319168683346570558806772910504944867629808310349606105867139909371078646494154137867341963046952615303360085625958630329073393236320849699115325385301054338052889430878878291683991788447252143743643923044991935175487246743247961585268838071281688458835818023244731546644628734999880436176062991178729723872343813040274383356774208186058763790082661503531920869077817016639740825251990878708094586758831634335386872744569558775446296726364324478917443825984787931713690748855036310426056081391488858991103620410050169434059455601690640887312488415045928291793856471647850123934748734400324984291643658518472547951138147117155996889146486408797682394864151840400133426562795067845389470430139625027191568564691590591907917713525198181013102716745257096027169953557643757966160493181767592145911162231087497358791199391954979442126544336821865701278971086113254598773424420757768003633807968639458151761162630769632784894367539934443339872965505063256772271945781217972519259425578719677851529637906519737415477364519750766283144084742889088108793793354387815464139751954862796867628823400414259876583849375582863022348213570811614525741328973091103782968326340762596468034809405668001605733115789250824777845347498451459997520437399497866027379313388222704627949766630988752995660111345634136220703091807418476803007994360800188337542203444063046452265460291257628171490384246649563880992350906841507291592625198236609897776921632256071018059663107537001531543802618998678872124898747922718756517119897293742669526009924731862542868326588789462962642374696753868866794407642970456831494117840394897945491891682130433426457378671989305018210939566160710177407549654545938251018479589126747458355397300580040703027851274389603841624183460927946178770824571759221598085944902696276871808400895405682134015272073919158636276560489500633851856404848417399475606144008916878235053422974724060962279813344572183332711626106818817475234264688974006230248704522605451482717548416881064762498341488276074696509018126019790605462843016688640027843774417705533432851968408182502591702410059660087723112584668886328594846998063300933709899680231043213024709845934580659248746216058201020324911988313610261399050944030456653044283603689779038787022271545398977042056063604277240765445060497847213615766890502636915098132649757961815348593757128024279374989375207753511450777286559426839491703971440428547646944323204218973556063097885082009692051062516069563092753702090389731257671969689534245232620797899547925598843601785873318438655584144994225766913735247194199103711662867057419158232323476773041422858468150611711558341080276418233645104837182481368929377268212245703366937670977258274541734431122450797930264217638837772266486459725232770205904045592388449407456242489500393475812984060576924274569221177183565295539360281289972029088903561559953607296317322810378192797594031478556351933796400147683697707235538620806664393642845584955747888974496044935424545153723616194998668102009070294066416227577060117682933490239059470773668340512676458461778220638245043661344094975632138740459310681037443843168031190371743917625181852725911658071932925390439328426082964214882430832769383863411170368361873451825026500520349568825037218746453067398611407830555928614127749577288605151713269313736861004289787128445693947579932418611721851686973113136171219282829465823668020742430914154461121154627385677348828232766672876036012574423592096036070654652738375200013157076674042588343392627746680580597572116846835932667865113595529046978581311293297783928590471122327021043807299643711233916097982636397377758098632240067044573581101799637711614596634117632846863888049374380417261481097713883511549504589961537486051869303403028963849462269737026207032536827975537470384673172616546087012715830546367114575163639140145963218764600595483263343339196412088192473498566906681407049423852566513533623094166836102322915824018041689081349686961120112542301398355320306512886235608440897264875892818149080876582874138110378954805696028169503456080858788701990036171252251126343496902141975178240900028508116462442083878391330478622984997732574197273165673056889742741992414094833399839922948596127599452098585684368970524062011193610790469413250776519343653160454821340968661165152781379424782502614472066314757268752119026449811955417700277266592478908175284545820957896205182150953381966141482827608467335186762900706267612608986312122724336728423549310547170558409900625300494235471766524438749015646234160451580573716526570524711395732920830142001299789022481307761145126477466535475982269866184189448772689295705443230351648361282272191838671757946741374703900317322266145633521889357842343725414817475992335064711220571318376245138111511184317183800885978230965980944331276254585422787832042476439384501460425977820647550740475981568101867331296248258302337547934284013492308241354265742445015093639010241048336933906050350218088560928246029915997870080435770558131535546569362011561194447579407952469950317164634893011629387295051381690517507194655380724558319174240313961854968346988255005321041555710007164817762093919400255496440954491235287669391985908117054835526312226118828535448725043643459912798344200348227069642779559397156181049549176392585558519793448992770048816835613302613435324174977699852688268623866466605100599096942696173618758594735172136341655661474481558872358881145995502030050798660582588635920894393774914564511347688347532499421611389348948522171820590951590324001367831002804798324259878054711556436459061398961350538849878213697150104968529828699110904138872327760140027504619791087702093614756178455953053873426489498822001910349693477331229452902592715306784714230080546034358094195877897446092443669260925048234534374081965084677112128742197199021956960319740512740808793502469539548591216853406355404439239466242696005600453922190894123766810502795953606052079382930447251643401829573172527163415787531195236249143551359746399660237890956762332341999636571779007587490274758211010864454141009458731475005465205179067722843625683198317161421188457763283389120167981917433505808058509307897619642272054487312058597622984302525077616698579646370409827531192245525891331612466285213631138780072433656940727156159799730620244487747041558821357561955678281077783610995545644772594152701132199466978367523289964854611654745246574865067382976479033930635437432333999276013563018589565872217316094522172492839201678053625834962533800023269293366827548476993432148546543210343908885079166489398536884996038211462522190014797903915638409917231405926269086439581089025324949237402172964363439596055636503417495104716366198373449704739936725489892732191845841140645639575444028845243808174815697079402388822451448985393226820069467884805677866009519203046472313500981109672280123341721722885129241884240920078567617117289376160214925332268915525700679606677187970025510237069673521371899626077045379424553855911115896034970428770245963182781397513394490477309088941419809046203834916743162649070479442330176361773399811183919440963363169551332537421938457072399594619785228169031867377623791952444717706595828063731352145186262865626331194691176389273720532557619396189041334911856447631670375156084664608840475598956386287344769678946720684833355611002044913310206458623719535953751732828741059684099462300243215412836294937609752862031243564389850371983344307530289541521969297031231481498307491271127643720980503475368595698193512357378639950831557989779850739526590020446365685510330715586264248957713409616299323329917148504643921825035954109721692483478529583239411292863132608877565573834352296970731613855424296093347357273455661497486520686566454396508946909416776784906905097968977796462790731408691988423485837079327277073199935967340250689200401618270601125081095748460374248643427998951141739393898898018543404103999255258456610834655286997860262366437654766381305485968911982403445235389273340339543666482125853958300964078140550067198862021900809590879037258380168373414233347268601705256923626247165068567391086542062370455417501720855588370646118405721714052523070666710969209795754702954796054252780984845424640316811018350433810323571892565480962401465205926167480351997924214500619245539673847914737872840616400884634552077194666005900084450084166565880946391582422618490311602007668988642499842570181674722469205667956721413783906963857836252678470507561502861727400621075783585200701133245103217246020355684597235505711763399210115006679475547748826910701727473315716578024657692328721030336837954459356256225788571126992533221885825705824509252888947339558439344014069513889025039956871026029933077210187914937785461124186945250910848488819181449063595362266144858278184093443565178910069920900183453033587080511626299905478629458856892647803769214442569363270287931872871680708223407549231939727390853952078300004183952902173200976898118746134707824473835157098945951338812771779494027242613591391567928627524141354806870020837706182315536939321965509867475152513810386708188717960362113736225740182435477386842265822288454283389608232871841124854453524921661559157503491295862838896523626096524126977914226507938015763283938434346888455616454274283486772385046688733851046472838550209023368770796091920033009045844419089297877879587403570874319946769206446473405918198442543818496356399150486088160581018923428158628030460677975860237998153498741787347762408821537369721807869248755612098359267287769967130376409816845382259231820900861088705093603100006779818657970281256705206300769245786110981931440863012103871577540859563743843463709746354257582797916538666759992288062310387046511774097257404233428523504429682509315289454783850582294404555572818988934163565678944535382198813992398606241350380646105867959027175658678138679449339353809274398016283407303273187563232194469952164932784732543358663520056287833309293581921985846765534377972670648879052947491201114799702597795633673460627386639621583515036869664720526473044312007735133828417235284959298211611129869783850410475107756432709843413309606512571657937323873424065198333764313519563123078578757412661974938699344128136018506520036818348774238196709150987985695670386795686527199430773166621224679908378734115427516666423690496698016220591832563946823578654634659861224129418469461813501156987885838965584734633970879546555707888308529889348405213005313449573848017138232429778623527674875517176875900387390297194434886437038346852994560210414963421247702093957766479583275912102105638208610056691337400656941804309651199133942639435000996764190096061804537908447470731962603923571356496233934480754175163460723791849336481222402300354272995915832704946796193444934338255684494453561975185668145453695659094471783147070854234277066312058420497938752539299693365208416701343393806555835481474640162675393746415287731678210889243331407689243532832545068461526626121583594148278713458982612621270135334450306931972317890491264650320284700135508557857964601144320910269001250918269481145981061560084999449622791609373369204698582309589577268561811379679980627667118080865094317419288338478377753084276324101095663024280642094098677342149616034767145512709425424253536121560172833005912263231130748364107217418232233940250256114419876843579801423028660865002717676960293371538553864161612355883992823726578923026372296388163725793409640503835881504624330909810920965931271747962662189610961593025444493652242074705459468432443821107079240531414046690120039682219046195701863580690651454098444723066726640283052987792591920432030107624171456969407681706070711321163234079805244917108703297060538719077548104343608840735935394038486341935257380461578328236670367490967111792656362197336905046069297031183180197340822421598364608612371485190493350677914964090998075554439189571223300071938034947267877250707300501701459205658815382656682395561156797631711280071945113479363318307420689754140653816805013844481175410791767968370273947168418901476075239010407441243315071626695269290294531860356836559243561302011609097667452483182274126113189353638793557665541250021012227524794787576697757879188686020765210452217386776020774976831914594625456328773593076413338237392700186172595698201857468418615376594101949745112601512731439466188742213392980672697711852702077442828496901617670486706663621025575635062240354429229101039302707322804713024438987884633962754664037645971265054991735313749761474304682380851863260764071547625533639920371393553121206053714747816095438243635787138815539230978034548009119735166228361797690314373623511818765769264485726047261159091379692152868455852084582253095126268580254809147825356653308801611405218827558587613451049715180009352447705795142054004862900227687571385626649153779050932215977499484298468252605949612532948321816139287515116571903720654117628336592968841448400811212418296952967973639494601467598141391496636190468071973131612288908489084122851085901900819332148955734576972370474473290200306241303433127900433508445576173003519910635273255938876384562655995031752269758509360119028435838601430988978033635375969002826866338612613016985974544825545723893545533602061621003714212795188430196285670721077769234694867232133235501800317479164808996251720174266634628220293606042354170961492595752398180404775990377247380031338060880697464797397937477172889402719436013030886702720530740901493463587318576228642452052143830822368271555608325859829787228566922419410227729211905284877715581470129074502942942790269304477209539233087689778315367533846984836940082824247124977374351459757977200013289721591965371719984552723984119647858347522374175874389309467095483518715834888155191969721702328564094436645757576533422378274289834923342523349374194799817460771554196352726549716084527835083757100782677341381957759003195023095385135306208432080163115764214111125420693072764067205145327732660233566387338156613899465095893831504312934375013164394511110837037109337868269083482536488221436624295976756275020692791179072583062467625995545301253388711160255792616865489216916357736796510771144122056191600661517308647308400122184727590121891234606996578372199622079721959810437092146065600558154681445525947759204508587755952080523288354001385797708260646275201390313653589729428516152655318981752274517369142800623768151819051994574392563929492351560796793994260756154258024044518486789988436860813878299580481237349334564352697429008578663813131778306229841733412679946909155641755660874157974601797266312425249718202614614458206427769570582002075447925830085197324052540735222672747282701980252906377380026230969068486268549367651311993202712957208323396016501826692097758687525612805529743641268838663357971249322148931880755430771791913614621608806523439481116235497592878306307337614040620418873701410186769987166496757198608818477630412442594698165652084984788095191975730273686245810983957456906663649726528590816194226039523185606620864343940886748953894080226493366909052891023887576397674598471503215685478174623441560062854994013967487788921527938476453644988310189360485190089926040231569182190564451917030551562374280485465789152081820330605842341187187896133831848120564922944507224025111903173002879682841309174334861780063583006569121985168022859783121998194125974979742048212413905165071416894819281103495802360999764195368396479477906635891062113815285310516279838047998558835039368633582557966631244450158225171576195887275991879229491712707190966735000832473345438731850328867687265378704595788473684226820076146947153284073435241401003325048535930968283493154796631027163774278616453361707244249630616586481566829580668585797319013791318617520171406278665475340816279604269655374019344552003168106056440974642817332464416005342621279315457265099362417668794670150767636363666442523562346806470979898728195860041652989211369202087586110546039962595073225390367473111709201897379623425707121017756212223182844745067590583052164118198381698288778882079245715737321296314488843453598117839318109159355495771386434847591627519334933977848075572640619321760674584553705962783291227729251123633593651279929724464961914917370849947609132409090423213264021118665947697045089852232843254369436791265459353286314148116080049458370385009938285878220671066741078381756434575785708033470393288727780547818781657265395613014908453227472101666813395636562356646488881675991242948872814221763259757273235067768336270606656185891938478019907515340276620382892254189389565597162281229459326408875252125772248393787243904379002905022835437020645682691761909159424895802424088842138680623519306431293482455520728250177433497121424871154707507198182023420108588190374899286870333187810254768959237244746331560858495674532569052606020632698874614931230985712920415245141808053393418024069330065961172960508988807538221818985517906923576815477302266269655956786583932893370979796821024418874640929241860411200115299240726288487815848773839520979284741143109427385839369670608946442503780360758889963980132345171613899103644321612780204441950524237947259347308984466304460351631377113949083956738288346546994139656669613277677201002418937205163671780312216250606581994305322613801371426136612645839743084995684143914119252196096174139356186898215148968104341039285928510649328654659813178261366030512756194374462648996284523978876922415067468031076372748997135776933868073041334347712880488529400541795961612467505370108290124859526646666621105072128638131227993185662698617766836364298520052635271676576500795585283224697222151053044329530288796134674110613913604906407550605774049613138426738809070353103450844921275004657753052557387856987297396518437684629840661826638617734585352436400229224955099469722773558777757637051357879139199066343065240887294530627265117495291968376431316158721008593979312128227093965979699757178306710960697167214960110087664468800678124712278198122700765947571952282295342856837177535059471016353653329618567110500784131723135178881370708181396522907697153651939082761658416552756277188876761711607802363071967572007906983823466365527872122078991607430829120862589876673738316891422160048614420149587242259107330663803657505878641455658131200602287360765561002720591547931343819580904238981348437723052617612177574518136103552367554494521969331553078327301372605592479233506822485260251354072506398541630582377787741169088506205024766398243010898194753829975706580584805470090330930594341552369509734258345654093180479876500039359755947565410531513235314842134787013405148621391397673062993554825346755276828227224760842562283963422073614018600656651357554241245540553736718658678847672813250652994586867118890317206828080904831643958779466318056464428903967620709585528102646973783863862167878635045296756676833416745069734893375954938175429571941021693066211152482244699388664599246303803169132904339217940142308319198747767317068673838145146559976597426133565449211315479921892844922414883449445795924611265469420918661573722959359975163033094980327270183004405335301975690457448541066481446923501503989988407672430372186042067421883903892066030439666233951509145856748076480837189951112198589965225980197718198151180964740113899198466209799898727960793268286813281122986736628222697330597516626119329167543255162081241399778120186112613755766626369442325991154479421454177440949644349660390288735421673533403897104379894335294067784906849088743583225549165106228897759269834647299107259178166173049257095012201885972006917077345786329694102688899172551873845828332451427256478746520133623421710180297524269734367540061133743463214751544036185864365178279624886457402795231906389868138050609576742074960566719588603421209376135438087900079316223229477692500498903265189651694330570932255995598095277103931659866940551669309945931587628684491818456580684044289507199415938465818798212520466957274097167741138604305650066690019812167263631335728742676325577004816919745817463140311977939388675561127325341750725833008674071575392577202147245140238686963314728572092394822136863853431942055456458990763844103534912790644495921879223507584282711482630112427666584943416366065081831984072205491786735947606562209370767935070737864960450217742582318272296748519499074680504847929803499894885320681514794247737969124292223097202320710211679407197655185628246979528532320476019199026005520010235380858997224104582669657252532177867031083143887471075293886988589862230403797975903689409409087360507388903397306290059536223999951559819714875654187884728003684678478212355420040480806260062940710022599906902153132274238794332772615633290260399903965847485191611689310453072054411917013739783669743308484646830952396768509712331628939044875313026031820976063761357725440374416030313804506176762546612083309400939750519421695658509151505173164205357237762815619487385204254755741144574994596104618244268186495273257804671993098540636675102628262698540180988647368019166167183230764537238735753681537119065390030459551418760208578566818417731643775627722127353205954648604713328432436679859017882302606397607882699146671453313243480327178298322439657847368442594882850713220550766943673169917533806952489080491953140121879643031036215430910474700949907401340252735279883078437495719213309439710089733990171951202593064833089804452985624227679518598640043026823944193211589749328003718291379734100146545852196481564293730307646982523815283126399608300676585244104880148408942310897838153046309688233635365226941249167620380853038973127350602229419781851698092210974048362455893141169351011452528925622785066081761506812559678516377452622505627640113837386158618222262654627587472814725770964080731302051177284830860628928017447274759258458273533015003705765459147952200034414216504069423056568170448926303979818760326046752530456639143463464434695334116577865551677093474091685629683377444996331770631757892135321585871304402423508147925566342116350877286748370240900348295874405105180549720068702507460446533074989559949933245199964373942158578138850997820769108000117527154436067151138837137038128812236626641651533643662915552778846691061306595551726034541000692423359973473091590627143472141917917788717743602635782631683410144587387586294982687808044206457757782919919701850251982559914009193551193873345265084766552233752208633776475734907147411523498190720074268275450744515372654943458269876935327742748476218489641302357395318500527156107415512018536691558259341217956293648921968916990847418387913543555491453235037546854779372877578407844595632392698091441113966242408120653221617649230752394831304173995394544499695658661184296302636871432375927260929200913021116554676998183985833736929711009055792722823314461132360531139041503797995243411200857060653357568760240852712133432092175214779853826295023832485376590719208602199596549958813691012187412662379055699924000774617086545832901541532855995513150551382478330250247579471027908041326347515744497377597761283687770277146931154754277631501154926188309902634378338325743975008602127753499877778538362660666619566566134263309084505939152237107079336255440871972748048799397940600496264072575644899304188270521479893553583165192694831373535650350714373644491363833098381223475666916363322465962678713110671735976612754183389215329505213368776020121519039696945848710457354189438942474671895760965008781077651329517039721482397418545425388077414494314752919982196111474197703599266199609998751902439931078791480341749119308839380660062442737214930101387224371878534598182781141014159121825819596815653484532657420823895928482151905181094330346776304642363174229456580514238773011068968264988575462901767862964424692911684996629402066057125773015871919383648545730527592286945353383238951567627761178564571845300818813701543222245669594210212736688665710979498523637890395005685678220497747480112572489853630946400187426964434559517564006648021211483895597801872010572267278682893745104962742030967560124736324486930544211245284412876802742212831630870223791695189966829389464750107238071697319978910263866275322168794567514184038777426832167050338043257832329476242659201883093485221096068816727626963078715476123593771683556972052009528471539471363231846363571714586620214809385045612048482414429867362235845251967038531075363577091649157673327110034030768181818362151754096631585190990139052982969633825297697558226844176565157272536487218893285046845391063017888417237755182206992106472196643115227342381696065945009807317800396199347635290690593225892401674977937677731578209149731517096755364415557403232960383824541504398185950551801706708512814148587203542252237162729859612456879070266119149192694332065142649676744940696535425857979894054741066278159893708330847408600026113758591012095656643268669529775151159633740562571063612148739399475637650871708655163564422918358518425769570683895149180323911316510605764355303562874729974426182921616533947864849143911912740944206716249022504628973281056444291136530207944471541064163039617156044401655174545859607647286975586362017201599461064506577173535970005455325128423701366663817427674800010653135444644751466747113792758096894428374880831105084681094261591646411662619350642973562102001345260095094859651372616249966088849762818626714285455339082404684664458874118340172973817263851849919700664532519002922959153768407316604358988953191189170998129517209651008163768258030063047703473865647265289319057707980613868450893484022643917029426912525460339262088969353283013091953742371679705668586102585309075256186380131023203534091950185568902403444851458394078296640604344940740415479482625559820903981104579685282906090489654862686287320447329387475680982182020555537002535432418742435449802555377176605045792861606992564545265066003039325418986175323981696041182802515663239597199800638424941125794631923401062228749576830424864994263231422192306003291863814491368820513849389543429488731612617873659143837403775508612086058117620522256278571757805467393296934094170348766907576366346294738604924612380073947045740081552664104083913045886434966070798734491805194854803756720212953718571110753691931294450012919862187751019593764919342413477279627493090265575624491751250406500381993790295409320724006084921017119963793244344026358732129622285281785096761622118401016147466641783053651915668926653585501133053591672633055309941888648069190839076029349816932316763292987645800131232779744028157966923464965718006962363820763867563688642470212520025638645354070987755067149262018438423546524721931324040023059753277182707506281820362522935155599447954003031295916806634966969357993603255133838576719152862444990950431238130822077383877459230521185209901934770875926554787301041375638245189333979251986356413629253083578990743299655173010663351635241080484283524622954689748666335106429532982751698531107031744141182453578959447615794668880877721376953276863836820032122384131536807108762998799769950201900674611554228671669462930299114930977174629885281294285330175290287967902773152772511368122352377840514483867588774617744150634082773361673096270729058087564258529278674580878038406796234871072673808487169094940276973063663038375064387691607127019283923096584567766545176629466648965701735934531216432937444747537585452896295257598973200078950520532950395184019112661399690543044477998892985125850718047848990202019006883999218283449623443162543528098029029278393523583128448161598713306522623687397376584635634412869909949921958986028627080238082488157743452952425935951865578640983051119826234993283048740999096277606254708315549102510996440336876195869262804415096368748299963065666584937676586752190616925424176861719923391237949936145184039981794432004537136907412245847445228974339577411121005566607068680208418406386580598959986373466314696233964339911402333037389289640818752251317832698599177113139760107592454966814326379891110717454451032974120353762395955430115071026470569438760540138779837537083635128211996447855152721532804102255114059475289934003347958619250726530615709318620385712397221096966128495576066136142417540927266273836754681019032405342593144659835851480753600202006846696445326925995344005384008021963329614698256662124514096929035943983401586354954922719519300931188965967963263741500005367495648810368671310323193453886443137162487011392303394348711210035334235552938129167458328063833657113283067507859825208717532756313461685223727903066260323386805254590632309171457630446232265883217543752850132876859462740025975883652817104905393591774214505728528116184471085119858752873354968216867012872673359892973445006797424567961909229247057049233829520245889250187515453545734092599388095298496141150159343992731298233848771304877653055881850250079310241668412278716522399163552485013755317613009289176951235392717137607075197929977403590977233179289427200668016876582173834229864940349428691042975631016987512773761427695021627677284845971126269946657869842863264587041816888624379772749083357343370072040801943301349119512441910815917761140469399024992250404559259291256847185207639304349469068948640937749598209558968417261714049635599373848146927051809390359635124292177269776964416193664000296540624922003036709066120069418320397439960059965604157649431673886414755749373323536717950053673246648868126952294236378322524409097812334241857822552364539140301431294429564181624102368120163699955701673587240626418351594542483723370941031588817532106620550669754310554728851932198402057757892715027180922802832464357333066962008389931162109378351067088836284519617507403191972682814326125125802626796723020435605306369326584402009957497068097047994840745107377867500348584939513868440559883285679400194756725164266385039971532129192748983585067616523727272927783158773636675449357111178095000405378601509320280209126192339350292029353582351228235856474607886599252454134918791424769176928569112628320164439828258894956427362460188217068887857308185086058711179068573966136278499517446868943740000714556449503875515374107915256046267476323492008537617231021289908020488813559041152065017587193061230568829498312780593085201062883754887815572574229651987199573834684251985980630348863071908252208916256450485347784037961816994830567132350314630111200958441276385743893876250950250295224824024446968359461189446861801848125918179531237457170333559747800682366592523237861479567138207690832658268249518021186903442218798318368954402901854519035166847176714414332432147191767668211995408097525522017371573172940538594146367338928269717569143677492750904057621409063108558305625166500409479554429342681540641116284389091015850799424497196831227425899527042924018375820933165995564208284040065469374695563707591195462901126682935359481079678628909345755460481352825410350780193035395476149904762592715759712500260868473914045630981126502169915426412833407372356337103013223116137362788165650501910333904264907173483067605978537925569311181610840363697023606924634861198318480812856985340988162593824380715043372167455655330263696395871538709482259078425609760292263022867485188695754451160541154900669150608950689795004231091018416871436373355251142241648901366680617656815570669403202250140630384015784853376600755341576691480937565707492831629389752709897529071458874349364554048795158708411959994657114336746564045366213098686524651339591182206998583938597295381979682055588740234839677908846150730548749734898560481029298130283056126001017260891863662515195733510289423224768033396443632019059644424156708390252206188872400392236312482887470027395688791189061200420729032051502127671570679212948168243252934085241673501795804674824637646717615483733976298124983402480618770945477072354868534738034523113749909058330370843057596627106248697718307950301129598835174348900374508767213981427898025626960304498059335770064391236374837924322566590404726455148359582439847892640278231135173450024917161692398760951077123234895264012380417244141057971400706956007131528260786778363341559273144656989570597771888122075386590512150729650572231135725891679247662805572413682063282196040348357197224927673640580949151424310817461607296102339269426718886102322525440225746916009754551427228301909665111082361708597718772396221450096108243250470000747228109516411733017159467935934257838563277746897579797530100376075057240161055394705646767506094902699759629842534086991871219846482730792187054047988119438453472874634005789582262747080151392398528470991554671994461110276498777780181189881490852263710104238310465348967673941217651937892312942303954992081335578041707278885349620356963153678532576280986866123412478606650719837597943500462709648402900134579493397497820262594460819859309057972638983738428217213373971432490571522482351284039126530526466040740923527549443368061648463534506756285841663420874791996240023672979332861098074677516892610147803497383723374961356131729772305555082227941992385280038566800682134397943020113062341573245006527712294832720241905999929088910129991672856499408875457326774817662833633754556140227849088972513420995232414101651515507129518653183784610924280694812980520484845037436889796035794127991936436792380420691992497137680141046409168913577802830240445265455274728917465758878730068584840807404696001772308057249055135725487376692091738182477208775683054449984020708414446457208287478625937766141854213939229172279798065830081821282933410231355033835187690209951404039382250221057208031093048183521552750135690347039683595423470087397043085490993499378348852619598287526988120362564964443304243086092827938564195910441363899415638396145256460764678165200400626811747064948760857050760178609856350691634726950114581027969954095192810040908421201000010899679982958448749381017815797923022405126235706466400361106772894243952633167645055048234417838334349769050023635206746107225240107350824513583719152643422557623255451236811147222481012602925607723219009250539296007349250279525558379592078827319605936633386125475466058783991477581003050916060893351831836106243859042507941442553284014651785125750602555386742861844068052017809719723135256076953228864784156826512418350627829503271247624314957169267311968932140759551787728779534666581300794707134802336973233254660954264153810142262352503924464945783127776020373851974289004185871377222886904118027849181577262940062443303692593385299784926703418737486351052910172472754985207349787304628086174950937959802592332343826934947661705637989450231851582334424058857420510679075492014992948691229835430408971919279335111530612070725619199166133842890195435178691798749322253537460700815488756186065280036729486062390776363329683188576907522737032757433863568941014357610285037289253168314450490886364957879227358070318954887839631459652171302636167288736650265671063554557995162560637076740161462687977983805850749603128018872923725305340504136910209914458897739739346162699682359670021871186458918663185632363143773520597168559122139745184088930097536144867898541597306176272883251474358319322151396902498911194179186574722287128673040105205743739783375792356540055024884988715226647281569771650403831598304611567412197015874730816288645893350295942593871742364124974946417069624249230233723001405241772963691315781076483693225552295032948797388118474381559431397721482858849150759301519069802704796860697674377596042074548098371698927567716926940282593750122366375159968500561756362352984178981903848312536064220589508453204544184424389831777517196845054371619019652056056288433294165616878029402006985557653782724349786442224421349593909221664656519014300881105195125227870460945026514164507093224457996977811556568357676896001520717389721605475592238167626957498502662931925416771834042517009314325848148179785327341595109766065979197235600904628848488618670233234966118384446727856188664137400067390736365413987849584698417621622435244010038208931321103181588746318533452639362262842959633709231228788286892240861903913202402677569931983727145055552753085510506209088538999773300505317039276766061326183914710863666032343189551343352303319255222333104433468039909173068007259241573255919969310428703867473500545629080307771273306637730768009640684809701855937158876656696393721331007511115968567262398739439210589906206786800842522243486996985835312655218437766357566377679149948757196834512263595595477073349065702701427122332170444087075344968790598431591369792574920799496871800765573115217939735882933730508811529467840431328184841772954318731645106959279938940780814818450708938808457241082103184483686402422685483753037705603073833745311260712752861559112502463742217541449501736829868739081758575771493769307952894900717432451575746551316311846213387542622876338452916715970641690799386809362181479845604165558196326371900498404799570051576144324387049203172302442840770247219746629527571895987265234126079526411811154855989536104220292449955105188397990693121460874601144642396102451043851129645167162453323504008299660034371805086983348835679944597830357581932440347774207186072255677890469358189294432281304500075764065348827885156071177005141214466915026910081709015397656751582830346592594440891329623155575779769308593871627542824979498749528506192730168097156571181347760849707626357487353125922284502832200936171178243484387329726828661450220580749231865873246247129948480638001918551194772573680757158177145073622812895640213440671872099210969914078428586346053509186901362625665227930939970994329376857097909117725032152552552121314132980720223664403626399674074000841242969066596323724490611313569401537388537936213143735786738079850845706413774333092282469625553747235920770188314685500817141179877557729775618685544920623499769043375581631252356550071563650391077801759817774463971097177291813695623600179340395330836096589105029558286620825228401305594884010340193842340055065122841932801111662590032538382668042712544545040856509241440816423077322529493989639798066611230853117508477647186437325248456469521202836949159731340526524382256104234800422888377657291360001389426473941390495620375522342285519029823789363495362088231503741249761807889180374151402749020113638145805659020554861070967242265103682385508271614733117716475280775713380205469119277751425677719875117224615987479299866020052513983635202004847022702987057417157682647527051932245262069078418938357972965427353298068464013746578281797776864652984708767002911734249070105587389371734699239510595164880822264927307849557450407342120659818547395837171337286387445795189372788587224594470760002144188213855666985059031562375178423949845249078329359221185837516434510230093400088284681983604079893829150035788811323500244542535770967929560680783297809882775436571737123666824880274832806350993865083784535843922494373111566981197238856589076314813555619782457772081278866613424481665871215609900393597267790645019819520363627701571899510580498469386598834738023934096721414520602758074711159605049677905828313548019138721417699224561316099333810826735968910147477967296548661054042734371652133721867312116179170733200707513423567902507054871218035461106392945128366477973105200734644273590494207645980210753709263070301620287377549858550338333180537915105978906457443355893393285622687433353133825493824723296701866907538731478360557355762966236115080955433242509810077629464696700820230511800867153256967674950259935473564275238617372038604181881154683414290375758171973808043639967005848009434842057413545879294782690521563124903911280580170230762959467587347090832273737296869190013304518902557999568766879139419159227746301196669179393649834940301585880112670333617580172857177776038998922236312759127563747458316792636077937626815930066077014173344664010730921657696941707690078532447343190966725382727937720005453192013185082547360175953337825777835584570827304898964762556811591484908481551213994980584591310423345890545938625701842487314253353910762525852516469895394329961633708366021421528768136616316917321830694515552445880681429851724242727586989723083444099648862106048880608452573294861916745336265626086219317394815206332660297648655221056559101959168804449602054212322927515305707903378425850225278212581437542404306003312400869042868496724991755915154841403114223424818167133925444620578043111679626658658767851969317343896060530165899831087815212503532679285703565239738904866968935576255732598220705087079619525415269856681166894504462373228497154014292742353103200953481340514106503607933989046476967003641053696820861282031802636569242023425126886978627671939897919966919394610283994715578713794870342377690330402755532465944250490647040325744636835426603673512985848574730251432866339284285563912018209682689438385264990417578481341575154201314102232470249540524565365842037796234686810786643144219308956157920248997328834885258726504433952422037053223129306048293524894530462431068590813659429479518824032797895421668953036042090702236778397722970905911681360356367820820294722523232287204170782005517613066481207771062253653134119890709828962187426805282669226617696442158788574670056890740643767166218518759846518918049134019846762703382968784775778616893912499239226917845372175823421057159219481942783524663706584651221079063595791425841849311193121325107053854237196532595362481182202110461104300752533892199998404774342962393663502791495161661783458066189727952373190929554799804111175196480007988989640924663359241165171848372085530929867132976091177940791411650310523752228811314616304552053871326505972252186738338615607299988873225783932343935291990629909411569510470346429669832636107344585046741782064825349616908561252621644252513456467586686506229368118892488421615492425902316959602221372275361163390567741374149228249028399376302027022735354124501549548844733964872346332687057660011024352103752315363508598691639734213717054540758982719401472176252013810674206955924502619739719937059492907685868545029618453912190705654565516453711896037301777380019794961347625587305863261682456417927218077029161528988145077546832454993324517712354959750212290283160252083160274621768662650460478086799012601932419766200908426978232156245127871063686631210819458647872027923760164029783085990651543757019449188229404260515083259340318645457641288327271275263085077158373044960218942037345215304755709959359321706391494731298746190681736682752726364331874755220589684974267499758368145774122831262254452081379467400207834267757259368798348575951736945627255714978298235263009497942908177847339786728425621114961459101438365447544300330318722716928265844792999976454976304131830834516754252940341772216906775837458192291385606712559098597453094063621185818861223211066756584005651878861199120874760080174208229042723185977650076585274685212861896961406556637743212455736791705143173761088065573446970232956315003472815334016786145458345417844638221380955606031774824641312923185812378366290982644338401141261131647201016465691518822596417816203413270599959152736089484114831175075568664220928558808120901093232101935680969823171695833612739982350356861667313193278262013571854697947552618453840645050033387468303393915633226605885629466259786738222431640077288260533875817232012466375767706663518814385600435438229736350776929721144360631113328419674438079695958049105707847108021964524031947579231165868018744877909943516360313579351892880649243802389500666798259480030141721134849792822697924883981111674800431247605603002517500082590222392227308206375939568293621585296765248887049180827117154770114687135214300834301347720589323975763109196506733902168586226399550784143737924675891167007104277915806218881571880887215781229316429632245981408339764173137663363404754862647141303065768368974948916568469310484472200630929338896864154470099725648368391656980031114366381331024990444440490588596327185529919487482224946485961805029316891021080642506519953546539506000461047976612078926748688488566413298662223365199760277812574601316839788671742883171100714384055365735797285579372003297625244886707504930214699794420224204094558277335787148677128799192170647481590791762879608160646528568416483204127552268435566458866767064517474634750004746440175166292343940744966193132209054252897084219745471492270997574279019440343956612584933531677339654925826702386732029185972464842464068549021502025135394143699398496596469477538853798964054991808378247662668310215375510417076284574419788693021804163650479339428692100158491250255390061129723589266075322089678068139221272702446103175445838406881797873497698299589033183535163891472486191534292955434309229331071135174430729593232366226146094377814234077929142499426263521546572705072200751235590361313655121902183437781159615584541786453974572611547362074671697865745533656567624310612452865898022236546040235356874018605521549884049409000521426468148493257351332621714857486657332463750782652165900869059474541823408863207639421754856148920007268211115418295515682989523393871137494520610000986365570580922405367345158296873505230810864280309577295004508190457203456603938770926879904827729721936268324424308857522084573612081256063279601627355570989729714437760003018490609448032232540009779293204879692961383378113032613461929541921978521894518804990783607521931992550146011141676045400349599347030754291264337477566730929454037981549366748167873004291963114866119801538269619084413260752376282327232092975944897985977056761505460503421817040872240798052544011903488894560192540099333354390739317281129772849574801419502310195677523260882225256878233287907904940872877405458198150150130655566181853844516463239951934046761930008270357190050038379514617158770019801481973613489293192570744361348978237433574414059278477386055400924991776149266352536821605840707686422228428231622962632088281719738663324212240289485316761430833123528371974901380247646471435823142986849481181877222616923772715929071313184227755261991682287376901507786262628669106896119953446478004746493010897590449328255218266754381472268343863463151433874519195480970936769014708038026189573544096158958040413575342256151911952648901661429601848862712800515749828847900250744321680337285822107593511584523153163025725236702240410087948702897626973533118436769466609170314033520065435806411778994871618908854537800468950581643929296207187518462490474617433232105770511711660041379671202430402892979653121860833714357334677070917032322679178595724491364766124785220557696181650838009137484592108054659650070120799513402474313104987045031545486378589031600887958771544882158614156159889520780112217569872256183856201161150484742293937453805229748581464260626560519609898358560216058941059463020560623663665490850127394371610472665119314436520786252885295886129897804937252540731030088176927661714231192819029633278605168140615169346302244963771634949286333690762637168841045851986274593125436372271443797403930955048232976516231832401113078178981065443818414566081982698302810016989780053898324655528400549152395539913952235037490452469924048463088253459654013710997982325449638164545062140118880092553860951601357273306934407978262573977013166643587323892260563493993543329697355716977115655416981067302425603447686670448853735646902369884520613614264557727142485700765467208106370122788096516745022507993379614941532749999352332134213466565127375703459135854707809268873466714639044082931126029239621379458659040439298846737414779236421290873983628441098707912617403297424754808355915599324289924194709240127662066258983383911851841876536175220624547499300016073109292425296122274384050255660696193938678818189753230878037386687099091851849180848855259728158512341244881895738125553475371688799645108194991512283921160968839885531448405558933849561984480352301389567488192110148402084049384186517647696960979513067627349900449276440873814024945401336024035498863193759010714818792078645733563909404247074932351379883628019113629284822330352938393275590723576550399854227983196733706706907576357211772650942890351535560651766647453626745721574237388574949850617469305657079909806839163791364938815442299694066219155501727594027735352687806605010925653892161762150581174161130072431065374864308151329337271147430857557196308253953360329991901607007508896565963312289578521301696435191562604011921515387787842093140298234976000664326705369321089554181904901100600010191905159654403327828837488691137461209384923238197224386234214680420544753004097994915669400777528648920157469807830115219358529052179548005468080686571399799695610082157845922092299481878565797505443455473260937298138521663225598792814054246322901644687857784350936008155746208058277668258831259368372048955149063695292628273889666410496313775097974488290514934134352977893524515467958190512067686098185506604544043600337168576458379929632026713100859551435372577356040825132730666341501365825387151154557673006969293951066994003362738016332625281424439595808247118633719404868708215814826636031598347705704462697141378492255489231500004800895890782758780511934605301669117001334128364754981603929190031528969230836133888441422208985663510877742254545232436979903413809694296888543870313563639644686018134358733086664018179157674336238454440812447816799256503398834728304500623193354579731252080426001454305519349707889306662137184848671274551111115434423386429172240247436539713557422000278885496112128690035318384954776492724217908051051232905793115413291413019471799584332393588808826649443160178511713298133360386384293844679692393858919590835466202307532833431901853061803897309441832215939923720247433018645855445440662154222800984332173009785592960071567062839663681411096802168896851876678821668501472165838705933794163515763576098404264613608100083837075061547539529402860008731260030802720695207334110595273745980837612487788535415909167781405252466970269942893618918144826726694130289581935678226020569921047125314602583425638274859282528200449939020315424881538428474668162402710069469461733325457237524346940149475049532197545377284740640891624786505456046097519689480605551333705403746654951959079759118674488352961355188099268914321501048504847137577580507910548659933460993012827639185361345471301050912349244259781238738992069465386662800705438496936205457843830574955177547151249664464657601157853124341150895973186964326636052806462761491828760749612658150886802377953540147941200592291201878695592719442532104021276530809951977805212581969653889018588287034546954150240450471140114329300985411596313737573808584990733200204271392168295873458870746306686293318570320942404018387056794933286298808193154728047093147443061544160467437086050885671976953099839808720565425738146214250721989504659981961893698339838721394570746151127548600374827703893229826434532817155780515567934613843442502014002822528334557006196954475307969901687854993833504603236184050897622879012750741509933344215689076272491200566414552279511559585823779332240781069562722969409737157825346783491356855915055501814335652994727135860191938595688501153443421775947370945974355771246809926374218179707576781928983263024667476154468208373416073153662297603284694799848628111050152034769860884826798641439058881980135906405766287362401154576066697918671669079818973869382416721755933517557898112677158353537668702791472098552761278963126095457014597844916475523844193726286097866617275822951780105854274843600639232032474335326330490425618499051852447020028743108037781837188923794780055560032985083213637166692667312343179537106024084122754987269243028945151972979217971479587942401364105854041558379404128135463060230800966423227919975659679260431630299508427827529235109607398665604867823029260280617918701593652666453467592851618959120657026786964647557470530033612487911315256501693330798222271328056396825298951335683876396317627161987982129781278518234702543563066120147309358996915302483605917687339583860742061725535584826230086877862268087122551068651141558071100455675605502210640300337074746946169094676764211374344971188901442892863380529516473856400460996924679088496528512269330309801278138804726670071748421111674491147986430785443045694289559625179213128951280044753922524985138819240013663494967368639997286324243448703113630177747992464708217781583957341341666272837537293213799232685745043097531682159574812694393677421708792542309011228840183238300656479043742256964745270120228712454211174184013419879538532672560888467075867452029148013116325960983974619723243275421909410390604601434679585536976238906087095085007129639016955266587378789499458745738853345294028421043125589198235441612767106897428813308266048608124178765721070505427728852348790136351469406296364103210561960113100009937916777110201459457879132478575220901440274128597059280839928682061968299397396647977028688708645616649559749305571023682679358456044117818718590760119990322334094678800527129064999116572902282382394857132921598249788866825358395572610317991388907169841155147483706756619693244942815466555050141770284359768130861802143226909697905427079156498493273057576488599208418146303194021773196206044564916851383876774102724587314980327123331354107141954272991314623225067650399525289994724967761896447813052038741939703610157185418668518856172550556940810395807042031250792037967696900183143623287161505164525048093151924481286496059930273797353348519037580129124635001347139879229175681187495481712126470188119809608595902177597186903229730050782384797996860644954559746939813812926971497202039020283114044561174385873326411329599041187947405543007702640701935036934614116524550948582616503809539755466447722860056562152615115177346347624965111695937011713184602724586839175888010845548128643714257504831758427684355394232670561949910346403162618303558086220266995806259275180938063772311318481631931060677544810319350703706702906463890977782040425299512286349062711499328579685884327639494178634238884481981068573946676724208706212416756533139184566259361469785104127161182668667149306484863749009784983023803306998386577374016075789822416511665468063665139467326903710598796230849532518769067425193123503569180960072320615952965872708736290163039309627369027346007895595655455924573101967111787187525249901820970584929929551786201978384771311674481979654968664454302402566721203272127825479209998799957523069500047416793553131654066247576552689326501599926751728508454652014948505989618390093802881058459100386974679965529565751378423357812441191206754840952319185167953670693471359842977470475075122096884468826998452862227153877895662932185433347107124052208612873523570619511011042255353692519746234634173628672776994719828879982749897653336298604602058142700980013712420950613809292831617860018868095133823285839150952238853594442472522032721118002816492174595154183329440836983859013635829815142476238285121860623212451767907371519830636412251226759576453633844075243110624686949407848613809097698455354696506798377843293952269506502413403118275174037859737197626894563819629685460031365345918478042204905264512430706908990546634247539810750988780251183242389453187425983013957568984903487668013493648585483388145921846860941297099473651040878845973441684107399267400935139164909633930392551850173717456991633936385062135286809520464689615702530448509409755946924431573886434143904045173904167078126378844340974040772930763491773885902719516728114820360025557567754065679847755009656274394850871834964763773082723098618429639089675318373689471735864031987261929206225476437355785767328664308024458140517247857771486142755043622044322337042172249808158465055804653665493855147691874953334225688299063740333422872840456047778234471157233434665676701777050355381818853663761246357404513907458043253889548676193414544622848817162744246808931612950953096818145728927416705354216469691936286324061017188572773932869869205790367614772231550454706841251139543053967519711073208026219829153489705735609686809166521283213429005799411024554793058385133268024534309250477240657968467778271161511305806620956198587602066862164942893096563474817785075074769382428347095306271592761182593141808458030968310521843527591905967568319107124616182246682488837472875578610460076342856164997593962807671085059762099220974213332470707671200754441812959753044508004808177065870870440878053735400516572081106528565240774252608239082281840688680702302914580582668307383632090647596327207656702666883561985312467879992225244222652121674768470448420722536530045921299495880806011406366637232843587557590757505512973819095798218772607338319682946965497192990819891895038374289092401328527463176552455193106033572035597251049305727047206948645152170832436154877699500914307731142272519980384174574673169611107158992463078830761970241058939935540492081115419736464378458565417740065257151562268775090118879324339843094996367769630272115139100364168752152105384826978020941423162182750989627631518597977836384491472517867107158338009787229599414805499726236299755331930149863854970188521303106142763324395121418657732262429670514470130800356119345282494911351389523408328318359911303386125044176459420754161683248576445133051482473299141951386567435237102991984714979037055279148412019291295801907467901588264490283270816819969292050396705158483775526675796408963428744756511114703119437079311067934791582411687438763467291246171631003342940438567294827327654153264103194395828272402289980050878196787123174834810411569934742507305343002926521117601137941719191440599291102585726468181018952990774721689936459164675105525792147784092698306777824078227059215484876130479940823826504247346942107623328734226894765032196359331712082034779553322987499462567949883689323736530077057204221873164871057303949688996138446478391282868830144811855906614379100705817954251477666558322764936741632169253498332706993327968579912862563743435183462357876052711695159726535753140831815214420567286932606901430615504185778680610054827269069413233715725602554187580423571859230603447963275496180694047790867176488760347711159723747977680885925220678353532392998583365744390430687167591263707950084002943038493104074222323649376117424750799040663687719535041419882211861891158960049562292385060351725894001515136982748514198808836510341011398179584283295854166639010025784889919426912696624888424138383147876243116801296098392002223809135455641341012873507302189554414400921587081646053755721930286456185929822766411125446572329739461600385691292172931271873719767904301332979139238963866014278845675661912023672464752791034299213038943343242994186697710074132007380422319761188312436891766735665526496594367834990235443442375512873495727645674814516904987371305035119306652502583995728486550698737873281661178229283955482470807660438503456243779590824780758458124651937722931247875582881267511618112583106877135684504407079222066238866133558374067750479934101636708726439663301494763658333832145899067682213320040091045531786432185162132583593017997918582685629338186868810416175503969691402306633398700368530438955380358163756215482217176586796310531262376540899913541823257384361207407435799919598647331769097544561996520112704838880368034741751157238632430401362973170730329494622428686131167357287760373982086330581876737890195316505250588610184738296639130252325682217734057540785364708318491487231530795993519526029167668133108095764245939206126686225894196925670624864013102526758915861763563478754217950225876401776835074665310831419102166148238146694653355083409831795360249414461927306669438240250483974400220387293952761511359365869371385356878284899445090231509352833875380934989379805991728131813166995056445389344129462048641860694915312516504249062658046295941804835694588671015728771572705306232338961055529860463479021475243006731111496265363513271044841460809655776963026843971162909020423730123451997559453748902700509203838656062821135111371218929129786598987628973712830740760332862602717062147779282269534665063740386091387724539456841746263282064457115538691469084324073463637167654970924868205198146877483254557813355419522036841984925896445503813908513652491115803927875668385468007202299098267479290718787843709520916124590595531533572497985926881748030261179821741907918261053353764370616951419449012808376295687747725718877875105306093328431564961610753652589146291720959718594158355917676068263093599878272043439732777741639468175532531768805091482339370126211557714078329432097964958042564001489021392590127351322423555354127623604049173638498618430040751455959399840382010765166453710896806274131698269472269806321102849901132921211134586528912872931523696607034524727878848827120343675647801387960438941547887555935241537395843709152141521691119809608834440520910968715007411347053351863127243708513283366447842679961760451931722756857004213610853769486603516881658675811644673391340334090585805586047632484213643047134790655902867625144634339629618905519164691007606667379148482407865960628617854183672800591402784829468605386627638453738000678341788385448750717534200132461897892702656422576567321863807830044904326666084346583294251367562791213118794404073421408540285375431650348740191397272685974769330323091831153734088223787383630006096489774661289841206652997537738655946411788090250225315771445809354559580939486410713007853068295386454573813352942865280101044824590495844123396849826949301939149604985970307230538591462538002038364522090683776355917946422255710385131495212366020844744874044028108340545272474399422930433309688744965488395656945812250238863215383169991811974561644973462936371184180016854823455553587361367873042911688348635079371393082480966410631171641081799953568852339595982249412430314646123303179086408718382611411679689038994784613217958923403230152213388128393044618468572989364524441824720256773647812513477846918745895121054079921401977295003701765872999279380282170741977412188670223939195833201014999565674320165983732789740463480979622092084938248783466345732645816494725992002870745008438852459050976178979938484476396087791765434144223393734014710186410667738748955659111579915938959528271141029507507039563660205474064682502865042090280635407406706809949883312248969365649193980073755791586607866375604739247659213300981323730147736060344654834780922337591019236160891904573290386745944031821964910552155299829152783318990780798666866748137671865749178925956711157182176854836927432016613633119519237383462579643928755022154672135052829821387858418381805664504131398853952428263747982930630704718045310899028823629127836509770380972969230500430807955563882191724031388606202843264125590511958234986009999148529761685307874044137256649837583422072205732891617449274888722964425727601574806451936425378162322038449856183812030562013135538275011684055027264170080337563147445164262468332527631171282414279946812719248803611793584987259653486216826066830239246770193486452941034645707928037598759925879886216314937252903841114737986252474360265943361637629010274889795181975795072724234310081672841618740485233562281088314492150822279617553377596097062580378677964959308329406053556670203653204328656677098161963958302704661032490561111407319875454785481857075402563174478131889157201807914880703970219375653348231700787249415920284957285815263327113561259785507278151289288755294974186409134220037088461040274129725029057575808839654440812284233578475113575078814478831113875574851233643730239565045838533121708689743239728502296858692448061168085986235634565105768375789202584268963042065746524778808054785879287874344762870887364679600160528142745498268937673612712218986426345741334910758344351585219326408302315143526332884797885709056630094661843822549105527634683489955467072172553242681683199453301962994208241793208185301612633910032639339075435348955298816860904495762971047401705937204894388433224723274457761619783540693432564945007095697706097052788985638583369767399742658300728740751282111216768931617771933429279306881171717658252431530142484773025649058303286022963284229452168124735376489350060880914046065447983591404507572730159800787463463133724412926737128037831028571262832425453881511827021995902429786490728138791169723741969236343406483687385648710652496995410039567892108363483187337468683370571771507025549258863721984048844168066732663770075211178434844606760597789114048415012306740955871219470697373320156366653910009045078889983431401003507498575883910915456027646570441386518799896888253657767425459375098577360128020524410944406894164248934223110364849984151587179614028351191767492231604271126889315471866005415517523981230648194714514790041017701365015551873183068450556224730149679184325041353963224618780760006175242761700473400241050204535004094445766593676725532623428238500570488776849484992632118785569380849413451926493591058317632443598803757784449131562040763686448188300088392190193402216083584631604050068676905384058497124818771387102751006451462276616333063960365982296118730661441921249711640824113969962317377843930900994314609459761427263369969657087489495175470401654685097550972552172385921401036359594217012526910014338773228579194039072716503385518307558011621472845490589451523174588225826730264306791054303514428818314803085454712412937096624805175241009485584199848956799330128048348814805245255478118362913423432802456835564398728257103723201524045859047150004730702962557630296878152422219743436577630197795095218843197440087656852487993090171115600732108778759508788906670594010527413221057853146633309772385573833839003878913765975998285718547220542123646983539075576325488557297511921919529371424377845666584253137898728502735630202070054647488434180828607983853952959261808174032811897808341667451747750530787758747098890997890276250554671225040258698153301549504315666675695556036645994077054973399522971416969442129861996261515774633083645856769615667836474939717818537298985537490480311550606197609335346075189920789416654693969045803723686727274748966813676115454798778592361333607141648216640441288314032970439057772424066280349480858764323611937840940800385897766541156670046922664301387782201436016341941249954896277862732792874587782995380053840815268135699335456900154708689268592200850658717287663024444497948546268239876167831372347535386689012354649749550671256163404280390664313603327944420471886825695132484952378994528589602262025221807204448904906743459702925599803256655383197817089982726152767076790383430019219282501850479493220929980280182582930717606021535362755244568308545953570583381620728171472997334604911449578197679043845235717010694638449436086280323481604302596723744209041592908069737760270950686988543242314777559230170085921943347806374970923000783783227780892377743979842744027282218911606784839554839168079420619490878423875784740793090171216037869700674873685158792508525839030013831864003066043865282773715602782757868782503455547027556858599240372098479203702735316913494021796531050124973336262918737270451105182580190806937072166883881823244435962814961049487866126573737715254973413188559385739488006108120460706769244874923744120084593342204546300446495813235993047691028610532223690837965135941155580843700589524861455789123124539411476264682217717230983895650799555953560347661550652864291314731629040073967202863198978291960866016837321754502238051566443032011850632761997153143286440365661132804308868312772462464898338047833250250817224368630455931381684405727069758211774883163771766056140059990012768831121607260684686375570240725472794033492748065950183692739870075625095397817821575127070475055104990254945239586631956497581295005105913978552515691421203162403657077412274902892225872009254715966175902940445488504638570156087340599488343058105804342177658715728596658625040690433317280612783240952051282484519691674566232937589493759414334240538958031563480317204406011373609833889242847204857310288390599426932020774221212867629144967176436590074953010460848358134642839052769035186203205879358647872261357233085525827210245554746150711451091170222824655681193943490310113973372018863993240166660082787906868757155510404128069067305092730017689711059144661133535649866271972393772365461115358913584605800444939062970545220196934008552491761575333582092057402025722393689653190667924161460575756097823109191480987790868221245467246231536947367572547582261192124420987076625923337882371941381607156498041839128830196894318181648899868904777102867317247033937134369094229990175765102354509758506438982207454988196432658916467305736700467887807392866683177548014785916780575873455716137484605934222564733226095366542649030702385778126273364896836585357750887710697084930113184582959688935489871510690699379549935546644797356600802829356331496929297888903741559941643412689272958090885807726243539780705768270101506821944476602448039412656256853315928074636795245087868147061495563313692172098428028837976295070922623905874833199910401660883585291725885186183397573746874879088625142135974879107736734525410091861913812274096115371223288892120457039223678803331423973920770333995776463637360985039972094224284592198999473999297006799698910388951741737904877894715112843922866745496252874648944148535252772405512625631727565960102724588151220241130724490448522380172598993687333745237745823386764281404706872902696384816769459251500824694906914415810323850528875070196472877402178959551141250606740068604770868010213054377817716197350950809430511551519367916441747826066860446356486874415948456132988245920876561843157131109744034733384742926584446692125755325758647643971385934401880069894515444397378055339134723320354005850482927117356189024824082246663347767876043955312710393321702829553831536623639945074552092386267104724967223507045664680157914737426406259942130173295022617061652344180461499390288185437597331150747947061541736104692657110289782223802955820584884692914336713756329663465165435618971949472989817191104780114326365910493550155634223752305999847756413690832917757510296910228894526158123730432974657543459506121105046936028439827157502704760579544684760994399281695800315597757920328008273753218474466040412461982122340293736014674482198376190369222991291300867075232518199344946892164276657356679696604859143159067353693618010924545849504503625538728903609004437999835065361487375747239097437301744753830121514874629898772921460099903834061241530624683754053352556710776534611371480749324509988391152804291314691445581718642996937098848760081262272477590441980851160820789021928363549570601876776340333715691540127375307331582399318384471905176101025407469708232399343926536583389245929499838066928831732420428901943918282384966087152926072126084105045029067701382271537698384536435337489828196203749265748950455370786815463438627915223460245345613620612630190429933084204713013694590534962774463186715900052572769858970077570165324337533070468875421677707082049976085241125064627930548038195291517569035932024806799057812998934216198239117105881826137515575103715291920953754551728337469919655515790325473310625103009547863803568204003982743863642796425337285305707867993993600453393886983619649434583680154121206738567448025781251602909768889318853362297373725288339532238956572910556572816877013406147183513743647904735245331266385125238179768892313844940802343405322189384137490130202071895119791051643008037183300540522200100007722565234830489817370181941175750541296286454854745598010154707870299564052876247161764553419430812124077562804000087442141900960109905079039598057871124600161177003249080827145241493764360528028693540739035181738763885454211843172458012665761928861303014138548623842278718094271073034030011245565451208422281121398684643536270079686925640146194791754228045496240624424016648819398913953668833292755225258058605317347796752128130094223017392558867185938944560198120641848942203175215045383481509414707093258532128757793849650945536457041929935525401652302605685186621560688528126080236375147322258264258697401577501127855224812013118026395519125168570417634672117662934598817260499984774932841803870226613056130235460260624684127575593833249896554391179263198925490837703796453051469683617711475257596194870608342179435750000970394913760114085386335561248371844534498396431412357068026886211719488604162196634270055965462281957989672232277655414428022619408624507428026235398541106783201350436771699291590561159674728454722676060436440990331388990517078273160429191986509940593843605372529895854525414293527201473712617951871911064569460944052751173697580896197450569291470698931055593486317114620140453755319541879688064735859590640429570647111490530022573184979204109681498528629642542387518058983934796276705066783745673670161315779438276405964286333593998120950199249070662106560897063584829443900644359387678703346994632933435717424105882302125027357545926911032372010708499917494281127079984598131081924980944816070147738203021857757878117517565638252751948299606790524517280038639991213992771160635760657239873766179268800811659629432303600212905838100254241635280354836186614096118377542512684757321012619274305361068342398087264909767959806392848992780905871824083223505875840199784417119995463985186902046792651933557480163241467966696083110227530203378283157027712206305836606397641266716280401073910529835133118842239718718684216857473664393435030739101350561530039754614746281210134102191522977230083940619937559075247459155001436814137066914346750333560170158994513874344368673518512090998460803460021401756399103902448163766747270532757041407821097812578537583987752242145618231691924002564105277918747634729089189556341789395855766925940317244798924569720819508334032870820582850813061914651433873751455098573358153635867484440053261508174279962072513157498278657960339509969431211240343347564268969127844172719300587199345733106678368146603977467065413995611722595676430055183235064537806177472741204560060814089232653305121722502628566175878887647800974940768951074344088319220582117573319404918077170808995782387876930706853134250490302632590634157592419025332717810328291388926937796941023332184748317186746716222727613315739493992422524208250206447625688398126368382025525341651807738634442472342644125459627866163232138253419066613190309698175635295431191405482847430803046552364649740465661128718759974600962952716990339418087344451592187886482489929966721731079388306025646584284652951626544941231247461622199088781273664776033653704200056259477924318054852309695802436903596186307190235462827941572265784277952362271202510965696817454273431545837231506515356415901909168440294268031967777625762855627347947693712812505601255144791081737619427603173715655054239748865593703095311504393363240365467514083864997302860228583754371520050331794175898165381973438527148963685837185535983701070050475160064019197488000176551004889275715103053679540180366329335791878108741567441040757812991562640222744631586208828784630946996722755445506637232367895424536613607973768259694257471633031543043083307606706539351257135957746455909457408748974531076036398317872574268412979648263264291129034461721054519107791157205143287044801524280871864370827756834685073699457422242692874322333196333832319063451488365650689688490391975115178789926547587132091121439046283496857521709336243858419824605266641956971690594538682405385719934099006497960207581496180045330920358674696999450674402042208804080523119541994423290468760729055856900258838299233710891178069251334535748390166109585686432337908125709057197296777921573209627001536463148574644160191062338769537004836357307589757831650383975895088446692951961883287403515581061789453409508150109865131293126435023088449256393043380795706449444667239029609853979401806782032567813284666729219387373142655671503387739037841640396667757249839881562191821537874077290564751387089904277669658012226244512373728857515206935604811497802056538024684490162945955740265140528528731369470472406913774734296474527155414964157782459713728675575573893126330508091246557645342141527693861223166232399627015101370664337786939931920424346683105029059355229201346432351835991065510272760840111451872555165188428455358221470462693269616433676943305980753956941867821411158051019446265068590230087039530883964302257293270096579243642503045448114140462594745589304524864858274538856937601465233920923594114120803368232288000603665565191577775142377590961388143635972542941554953985496325953199708603130625460498157791366654550849140341946511879617383089782719425678296825155319518231129664933118122771142314919535525112650637217532286628727877548555501441641007247682171870411754778075511902919454256866503323021732354298522657981786914325062805958311153872321098793757377217590391571401263449610554867056475501557910436631200658879984984828692358078602746319852063639533267192725767244176219364392806734205219549373707951936386423936778095203458418253742865032908618536171243843183770909039016631659211194125004423967787937709079746411203248933361010041570266245067086474498006767881319024522526396766756033820318266337399624306968949380570056159256863417996427158694618527877250324760989054875346864895082226710632186190159106569928378318654068037221307463413502503795167682038635288139042881943051085553402511096112352975185021001924553544337156682204464776944178662001176310157133453020560708241455986057786521333298525033148831993413743533850247971954614817155142830759586963419672062834016875703732090247919081349524128505635194631103488360948679837152777463992412566320990514401365856423120211686182034704709241721870550339435473538695362287860088249794424377605277177197426967769457633071537231413276890642660582673097168875252582454415193958639825664896773475505786812742396914465754810430991134926612876769342778617357318218115693108297074004801515852255749976172916287084952562839707623273621334658441803161393252099338886355847123343477636322197947748672973974455674993861107883758547924111794273385976631143600794782624637154436704333351340896269897545121913274033584330547126313697649395001024879713236972642973624698941209755418813477927587190714672528001801770593553680555709829375220612014075349938167184154779491972429358442403965016469885712317505902027517000383053526148071311144468341102301490592126909079134044222285303939363449030467222029285279974284083271773603569161886887900044055935222318837838650253702007744274909784383255502271480803980114485974789482260713519191392209854606189801424221600436917205335895148834853157421005864267402209489506939465136116352230040242230225472239895511727628424461216877874112476018383948187370660123624315350419338764733070466564071477123802962246152193409398700270634253873362251550323080598463631545878602216359579147667246914389144328619975671196451535707007960353133482940772104212302593168363306670059951135979679550185328095845174066243043023542878017169925640145682308877111014578534896515088520388872969196032866904394835516140265771794030564297177371492377518535019851561116327183440647913126732949916294275511000953013660003454938427477018271887771572104896551283158992455353107408889187306004893230481825991665495160781868292392435673049493183981129062937572116193983312508808597517433387985822703135483661020421889924137562830220826824873006928412061606502050901503126393282468039120478364292011664764931703227526531269544574638591495463497503802179684885300351958241259333682376866544981344529154771805196612653899754432713101514389509636025462573281881749382520955293653875622675864970538854324181107096451120165292250017243127912801895907084822385429695877775320736954999929896117062759581064864481984269282031456590902921038694599443544340870621191226712817623641320966779985720881590821499617349323055625991743527818507628871038615691996452166137456116814708550476178530101808381242466684619745522558256128583705412554069570040469637518647175629636388354199930350869304160995965286955664146013731211811796010597651416872930411368370554077480612924869002613441067138236948062400518648477621211156537612824050265077620510171970984552362268960038808245869240708832099357952959057478808952823369234942382389232190739007768108229649913532714068247986400835960325070565603065570054999451110000310748553699869969601651025347319159734545885143374972830211598110599875195814534888907958158318179756632416265893937381192530121332363321674079858142257178656233039655983327002756444212093924892217852992375396239122263776782112369220591471582510260483884579861982318716273847102249232320250868094303052618457797980269381708637877401077280210216765877369704923603230247532330567768026571701367869870953904091639361718958180564836259263379864595624819322154321251113668677685473411761650815897157862499079422301028016979285597324485246611566799210635460459494093532270376733711551797034411884415534801677703246722254926964414439534570021731744417739261499923192505039911128565118783359727810211959608188171801015849209149432261502658791202985942139572826197463823130515982119453927680612296928169601105449654424773555830699217164955906632918004110889341327610389480332229923118681241039853876521843207149053625631205181368110063961816837407808377429703697891570881893736408617767177219151515746926202744795228993819862155400620936371818292174965497336824704257617187047921901035697850820716436629677304483245666859791315094164424370178753015085485497343697160851590344726355485786629105516572932810836660935546783920815539767681416108621431315985819092077804795391890089254549361173023855240258923138657505302879388671018249495282752980305331001699297756160809606533115174754643377520677577262127351060307736954056058322971179122526273043569912016578264007671602607951504870498572521934574865838837385060616538733576798250022189718624528580519349329268776590318938958323165167344078158173862682249082375455601719031550640784239946561680237066174966944851466045915638404524206368384933578626780489514434875820300118041070415098152817838772261625081107649465591840965010735806892016851418187991938776901998467731765162599291303784696622787086342357649264992600643878298540862966779658287359403042559699343176240644995575064038410747574652682149859277392655600067233517004245941783632910262471410439729269278220171101908686280310471179732115104909483293111434430520512202612593087790751964270685342933154254865265698795354634946404689575797180326239032391048499432677672464983969847069895426731999570933772806127573703634531308196622397698570018049773052789846864409676706345106102510594127035590815366399111828594276616935461047272953511298941804877896040992261567855434256481420659679009960139195330420901246248330350208390036047893952031671913807861202530508438164848987862241598889629158278022015505952925918176637519353390630687127750522672072502805028135153098925369908017899224589504943328062324002477986641249570923340340100040026310349714898450460404204101609081808199724452135871462858490641903195372905958356717624611884808047017188631131850812395451823741942412261982954947462853202402382378353103505392487142942307182020059910557431345547585919199017293484235182463165383145247174972399497553852493871762531612141609630493135223135599576533306135738334436624802745873514235272820743436823221134196384086989886711194248462518235644321973760405238000055871183928850388931064355798456739242116613958183936052841881731815828101638306616336165741509458529972356623059557066643424715866692983710145727902961854586272012220782788489414716864895135800918701641541405801337697443319751464540820658181423200856261477751382260983918086773312094702582358577880497652034382636219602848569707714192582790276246188168081880270426641458970054646696011862961712013542676588655698848984383100623227912904901775235399115504890301128315900262823346692624588647035800375282290215556291320422496824476116809124675274890466072549429551345534803829410187273496443908555870247590589856179283408324271413309897168797327355243670000539059955362956962297475100416014242067285170241027602400948345470645526661782686745407240273699776535260550156718708332722206029732932073640795471624533010893887149928190466984253075670151044635160859825044356113214670048688445425942637534687729659033681548927564500441063758554794170183209204644356400286857378926423549943409425742458502439015455633198694973942829926652154197505619017891457748194202084071087851554231227254784921553097106972039471306495371015658566167979335014514147247997308642765253251279021863137806137634519405655239023137866041526424803990587424822496864267063638024193408530741063931270703432318898982089624099621689152926722872040999506400079121378882118729281482544699862242908621282372969529885300052008114841696472763073954178768401042523399650846749007714122867202629874954509594738460591218026189371277154316074407084133573983131185284556428898957046945279919455670112866181684161723016097558980557243951076996792042956343229073171667499661523066642936135167235160870048410923842885207286663662454086958170522066842710790975099696451683890035905234295363090364145386724752993629018419512148930266488683653789213215026144710920029328266748026179985882499792515023698728741856107352384103633748649226986562863048102194417020301993825259583385698182741220414772485677603199841156283404913399559541184965996934081423542956647934662134662166663035514090139329959365733206049968456292471065537050956432857468788486973657082430044778200620391456455029201575853176372052447614080709603064464509081798669227659514301654906194728911558063483072585702833865956798660758092217074355472979309428005351376348919391982808931383022648197932904283681899699114716596174591249954264776443953822314429985295524550552663551226185071411637048849061472599626501381719543560028699302667512582284711565321731868332431638822745292881822289929427569111595536286990247355876087588518828489333257145002304320565715801521824223133474957455035503070789943847275233532796589388064325339876475641303203084191367870114601364068185366474450443236505628396068677708614784031982616371110089574770482377979145614963421051033181412087540095060186063331012246813386191878721779398552851802369741854754088811795987427046759794932161836779463759877576773904985534502959579958860788567900480814210102327796337555411492920245291432765408229081933021936219405900385083181975492648694165834120335335420684511246161225673780063655338516904565257552466824165756792832571315472666764091517332760715707684775068827835624609344410972911912244237615527782394475502788630734312021291413625616918467688055674983037409197688201780219923137645786574603141391567271509856015031639502064714780097827281254376237647319983167239024257419259271082749752089956406431166660297184636482474276184189633083039571238645285380059126515226727975569204487784859146010974941453857351663687038909516569740967099337346453551666467417217690594562504748473703931902904891741574731776189123437569158418405713492489792542916808420119806143157407986555848873598068103690775706979734671417698234802759223349168945612653916729444532499136570459087076536196854158487091219538296713237643537641804360678322705599844516147767609353108391203853423759087225221146002117007466641241702124105190590921471845212646755418235852070409359904223216937407748379532401467189064651832599877416075484261084092831254820853838851002020299549837739024679748307970734003669219837277400659254456731542340149313429896687394424309492583216477113737807977821329520060931728467433803476812263063816874364147932304829137261750083693212642214481692190590201983873405334735809438795121453691501486360930647617956485525946423890599020631792156721068775210299418020730782612090893540261194577563001365004977153627380281774285470858557224957978673552247719621562024867393764116156737993849373243339323129054098558983157867498961026184304545103703576811869418269871150936965481794356792740817259874696731009286956186133609704003872271946395240390504270971103868196281650469195738968507119485029439027126020431223204496522509126384079001964298115566496340596916854309429815736568577794326035081115343775799829408376575108923759635431376383262297166592916615895560220539928643183302910387914067035420083834036230140229120152842540602926016786308971306475260635523009284954799584357796007882039511949415539596468993372014788048066418497232793896918001908516812632574501020064284626427864462493017281859821856262646143530533528034412817908220872818717758084287370117258480936634512750520821892320203958977208293309939565835812084946699280143172788209609840701475200032113910758021961976417941369239804408076023131697835929223309364585515747997333543717087654153856806431570013488750447891690670920080737480507975400485252354845697515256565997101431858497368230824637056774711773193903544994533197249151092005834307936091399249598029413378682464672944536826679180376626566091392584622528610203226084858409230176437548738877567009993767365797017498782359348879307453204938451112650045037280124535005016254060933353678014916983672251290783169853542280016468551496217642525169855521249492741837430301810077744979011530972042814102404139812851193453166089882484488774885785061562552466361685061589722107658139641406081565554836628182584079581470159379811936667459499036208881659422086514851644839129174539387574131606726226893745790077025677533139156921185241858418528628140375683496006583442507023172704411284517195247922520555732456096090143057671165610099150313198530622771716756237435479497081701449409683041654239201802903196785956169109214070191231613645288519307395534292079058971088515038459253724735738689478172756289254454817632246649572126482898587378890329067687044161991618201900440906425645598217997842484414992666706666086740531950815531510991400960411926400598679742336106087402685616951060765598225362949321063400491109877249400126280479647123557462070483487440688991860906309438208891576768516122558027304149380560523629402803732075008582477601024063344017766171857658650059856295472348318240633544745502206794714435155250129351532051263465242437904564727883029636760713268951677479711292401477296900188193482228051935601501098785398669577559812014117634284819490647329706771844833784676529542790721139948863395503917293695552916530567651211692317202849054988084940277530147043054199262790631949201143097535030508241536043480329273297344872219569239970852414328644051240941052473639396524820044501089703744391959579239717974970440602650733744169441124763010185274128893434938036741467806752822322665577495933812866776410158559242252746464013755707853272413857934399101701554998495694167133279213255987239388244960649626079800856953025144000912507780448355212816696819703135721522900398339548214693779598488402820586113731579903624432463231756997126967418548662527021027739506474473577338987354268644278044809994770683655066772217176111486697300801222773332701285634013875313064690935296543216401136487296138554809203712326820307923219790556706920647574222136121655446078311957861303225711497199358775343087614332752337638947943951423485685747855813894998722932826924738295107972748502020960389816793733942825442142700005113167070610866365020664386969397477888601533398709190574607911177417173277805942908774147667487170819581256080232209962454844185662545802253277223885093056527086918167959486867806273035604758097789217741906016722236882460757043876460758143006124884234560568097200122193916614983165601884476113760084389730138505832712122898579250067375436299871205752159260168881397556515374335182209633396635591075932764055566210750125400071233687036077442623238879646392665869243605553368873678758652624969861302612654279874325973585451171157361228134297807257163412805187876331999422471151710906230215590525730986575797357229938189582273041065435117400987224661803160808696869109726653937634529113384295184514138715718535361396662007811904802323535735988104901344240998691212589326705934997029420791592648138148497847712000948354780550842788701919762752718526072678234609340306022719034521199622863139703273617385675067429396291295917410729417544260192132347867155964140619112178443424278747052643018207841634587215422169107131452604659916597343850992518971659557164361795022832273845732418003940907131428620454301795103785373663785101883544432394552599699451091514640319782254669191970617525227038036682381975043762935195294137096430790821316892384012093281910409354797953046505317451627942841970460568356841001251682988463854998438490696356795353972685127114190616376442899753858008142052409002253213522710994829538322762664726612340146551646842586242466969969792307849016108862150878304683592784615962511294594858582339126660436905272717884423573651706633781360773705740765881188097589013388279387727179614920938162115377677237302336565518186017672834587370833980827063921319344139245832437192622701782478302626434115887735314988529646680207942659488280228734844647825927659059444447710908217498396867186515424181847633664213497679925498778095796056398613810228397036066057730665349252296233542237732813359205181873684497981837401194360482147986248355671024752559396219253209513257531543675648439134833733965668613713174763477141509368819166467614631530230819046145548729197315912923298937422921155134034541071629419451589628380502842324181349773084027229963413497894411399017897903831036960798479040107355414430305579029139913985531792956696165807674024557573252184832782016734059970236882623466276212194869787387906985362680818905357309690401412312664567858419679289132472032398432421316696462632466889709476808374623388753933433056115089133424773597143331183953307674451033166920108075419756204678070880938844113981232140537431405431343079141008268128298031833313398600747112960256447387641823534726849170876888967257913503360786163010803945434176180558747627559555473873285246075216684079747196318637160021128995909902518191617647768876511249180745358926237063504002770151485300462413891775428310523542951355046348830275899926467147091877324412730825924519278249700623836379030700975654692995274228319404214167816609349548057445419537490942909376668862841573777564752612198417567464063928721450511897320953071135687662539726113801986889159382002840953128720733547897221004322139380525645720833286545754100958133196241616967981356257545914919533760715278549370249316297350185345442492866996090355799314424594784302558594703082090589442814090679091703042034668062775180766986026213608942541475759833129308829053334917518102891880385383707338385966429703733020389068870250517146624394386022910352479331078383947379606878138790334970407699846238910029245892020731952647611538607587100709933827082492180624439314203153290761696398832330582342974050960000914694130765696706477323064125699731224707494481884415025317993384087772571281916978836308631649452143924736418129017752581886332008395265124434481673413172763289134157747935849881493237975583179953229899574212331251246954185035963010638833212055380216190842211633918259657928906748858027427841691507614422063784829576146292815031985104496587810742637060905398187410473878007504234186369360580557589814827734370942420509816878995371028609352296524095374645045947667645452670308295775796198886759160706054912562691889086577191134084404635862780041104960424447743547740232866887346552228734238750969042287402933715094938447139086318286305126341091166207083616688411195656975486819235189498961090202133449692887076116994468128715977673757510870682840824840703727595024267567417688199113061109952328968652058585203214398927799331889991831875458647237614407521770432375035028450231980042531932815725555965150165089698272400038853227673868341366063168124151166926171744597162555412917394099470531365777334423063736435085748619330952019360521317812130090623974974864281606179596096167439278182270262112402307083242940527592500229939782113018777462840703345614575847237742586758736963535458904920187864218613785455300350609406794146653859360442291623662248469437081578344867264026851770255885578743247719645826991106323106007964897058327725945844384245033596131021204805148300785778756726637025340920595956183772025206452689037067012448943027801905266326346641356607392689347309768524360860369743217557790907782448323385738217797362278643356104230889854796519693227300631216947889464995976098174821327466093796878333810284889890567635834941902343123287194961413503207537612451069571819886259358360792098730718591138886695106382578726486481228369960096252301593099904613231036329505644157268039751313827727020700490318949236793478292245304825127374105293560694648331162719187072696598327876302728582937335092040722664323854830715937852728569865699064641138702352363383885558847903653066152866790499706835082025734595865832594370153928511540432104230866073108376070680992484564307227010998692213726964502952919367088225731362158291538475237286598424489014739736087141145725086336665702001937739767851087235675935246652536702972330781792408307260125347071049519661647057812569322197320474805980620853235164199523892138420882715432139074742152857057830042440250926795428401466419971900292020610365176507951228329670276200860278995927068540828732810306959855685673053245238570800918967660021005221426493296258454031663285826637396807789386825077160511524956461416977974926069616823291383242497015860779624192860698649493988040559525603142819480960613984453600971902573478116272358909133769433159471011882766190292414777961399323789652791640066626244362054166876837478108252403526876720917279080373363221559769333369592283292252479400841818956115245135144649687145311425459908468235398201789142329313164107988337767372377723389134103511060315027277105879785988167084059759405424672023091633518624134405283741177540325430680853896011549535926600571701684101525721304218193926042090336446517309054810504232337110415476494020851345524742571003223163047823854454612543561783422468184943093422398775831379148607682124110720564302232331197646948979959091895330547858026948486106140004200604403011891758386021217061486201354095381786114353632398044260821247461325747205163866063933235331235394449083355930585765211748180325381771955999603180261543344819344814883302070282872983630186868267122407686780470556760041665436245375889152794965638166145758258397778380802150037600004721222386514588179370619330503766589620984749056606622808194828713732592762612655372152318292022012476020625860288308313181061730729068356420778220621833519452571459309247300123404898390648505450837028396634884658198283257660517890317114168018610674583133948412438840204882951223822237017048084489496473784421783159707158942752655983789484373002200913583903021663720095522717024389773282214984142423837877644897993413284689284118266043420590809643355872125519557573544133486682441004981212427435145887306104427034849102303578852711331876672375484492831216637207714516166117515472998064155927021125771156273313170661071558619045593751314989180610948313723624866935664388247111770002711115768116721059148267745311128748117743226221750436487198226852895113025301954123939531936441790016219204307147038476945904828464279443451034549659090985120071925247064297296459514467352577724558129723374535743067465747002113604248381521123275456771398988781075643487479252502525988072053785430417191247987812262308170071121338475665909981741412983558455559899384145527167923169030727277383323018633978016461339146294880893235517282940308360796090773003891196897828933256612592174517137630377995960972754684646404455626893763036204104501471547029344388771862156709793373216089529545393428320880252561682729911854822738768989957438490317421031064731113567893133231989231834309014664046083317577800167669786627697042194064961529752382790139414836459121467039836558033213319076996273996810150254394242811205102796726181259604168812285027579410110333170192735848748572554505473817852842640413557613402983706825158570039450632956637311096691623558201256453563451792131855870417776681394811595725178001419612690441019685659841890177999714911637102889611469998216771146864721097936479277932660924862794364623168607440006531303792758098222347482961327845853700879172779491592381700264051648110697003250410842914686307390595021655788024618730112846921943417951356005429565980418507717347079959467170109815547724637711377663649700448065967380809403564654307219316224984038106484366133170955035508699182942446762176014857647709491284681912779209238671915138189731437114515645461951017871430346484970364398819664832842285794219337346126214753531747539807418458732129496639778752767181894684501476272741250628504720911845225922087217175574728269134241021781432179222787405382584103740804587178402561372819004760512065537388101499646404103009956475457868605370783238566282815942642862247020243744725036372989190782362053309471861301314599696613313890404903379369580541676618115570652137698432342763665613402416627142844428213207383250511125907721364472730963427503531250848512299098003046202552702386427811794494211776785779122963234529086495559054155794596023659560882333901617228910958430531533039157081042327842431009149422207372675768096656500756820050358959391526031809077277856994105183661058025421924871449749092753999208164279411026138208731283291428628134513830773865929217406152128564368676796620921169552546584510818895631558257841726098102643787608890027370345909980953964007534451181524160626399844429030049856737776201813135203880748565772714174055757725229061634043300816186388607964814980539104234459210384973975962434733426539155117310240597783398836504738495049873979593167902705135720968571979639970687056732057414453723373824364557970444477907088974421196222308559186608777295628783819253838949962846850663517226983144034705534689405108954228105458478251974589929653628374249286324008127234916802130525955749376291668745509378503837400104158582389764953482499836453443589863587533301604424438620363708056056055348689247237704647516963951593940018244286594605705826226782974449283656805579703412152944725455117426774273170383811508563195432184519631830177373782668956799629106388461957234320086147699306250006301938906146204254568122276153703241609029961147528341234452820778949431040676711511683005839304305274738164682918309813900957387556474451867379955514073404827014962503970978353519934029060303733949946464721194399067252841078650130011622462974029538719147080828331659948195390655513947893029155114408407633689749457917199191310779864890100379113625939911328092397001320005066753324960043897448924097330899656234492054373756084676706046774523963671306754771046034612260632182215493650661467560684536420625760671770567935301998172731684018954672029766427797878776494262048017626910582955334037317783301651994093417679787764518923783629773098458147211714279450521031386219113577647468295595867301273851071349434232989176445310882111704040203640878307541502318661863302993628307968405673576075317283744307618729313367231299368902766204667616518252475236798028702300298219306522361670633907234507484802612290942569672050987400111651508753624740347958468149266329547804646662175877521376050143317639213859659299176773638242106079874759664235309357131480896145505087841733347685772541452267343173460616309236790980278897038716729503443841041130710190199233747453583530459584380138528935826217178798296722841842362136722162632100182917940765665390200255252507851940823530922157154653436694501751541896892762003266372424726205028280988943091392210884851067723098542624653714989750712720775302256178792078255992602752138165738048802942808132062029664115943851958552135156655923532407935229216713755582255361887132933720109825289201162561629897895509715957564319408388377534710711829339385784917156677625895719412365322986583750546898924751099634326422559429678569107891806227171875736676550136990518803149841841775019595218506721239073871847240451732924178779531193268128367705097208343394648443310750204471371483991072294192258537520984233478373842728938772349950697010255362302733370798796021493491651873401431587128450479883583304157635589129482526894978630478798279462867767027199806491181182129621096842920167196341314511048944677895148135729580061820588896894642666516313184443463593457791198571578799750822854547254946703539964299332495643809869145701515792055350339757163338847878105619595422115657118319247861947952420334804013011591431380855409720635044386949933728022971920258600373928477538182024691982892359030924625220618420735221925213452069023935387189774143582706256030153635949778864716485627703795091153470569128450259530793135831889546159751563475658348623566711247609325944269781687243769445965909946621667650843860913825041499619212469914604228980054682114100515866852413547091828183197665251246529427363659362866951452713751271028708378490773287838336743802806599786972129434859534298455891521165455333427686443150600897787901802347581596110787255444021165067313504824797012512522947354475493906816782924579873488712648351333933272266188469629825292169729264664033952709701258687636789280021269879596495849536035150915010747447770698982082933718596214184821076761316367607604382407026773418970627683479259501685446198059658720010613854254591251962534551235406467401596483520528161215200774297500331002465425852183953203842774552789428813150368778766974437399190689809169355057195144105285332299797831512091929626366196148968508853855994059537098006686250787563782157860805453092737156345709197681238592859659793749802685129861662509369300899233514000131619015604709391814766927809208482412629811749251496031508947922465914375043805774302654813200529781902590550516015615474214067200362286213646493523269809909090585731902310383187988384405279305801421495030526400021882022287402984590938713862899879862532256482147918056158118331000584708429486508282231555631216352519654800651098509906235663804469782126423590466973296102420391577054404378586821446515190390869165245149459562164305862413588742727109933847901749361378919875270804985624365248136609941921438306683837196338672725464636348639555493529501092936621001440159115190244602321867697578938732035726138915367062861732711457441154775991249887019272832285330392976855852317009267386776927570987073176820655599401069987009566243308947713594979234635745703715219981484747300297977603941300236660669009494438536512776159364618930720071214680229712558834670201130638673936717620607264688408103749293998820413882403226645355289834012439887248088355035009870078545706985764348113091954802800251022213171642296649281119779231672805887491754619183274682315919238823985384953940185839735115426526392400990097044739831695657036348495477929770995455917956687918495088342701952454422029423920825363322698470617925910657665825743374124742243861035270991198032474779887655212470200783988702026053702165282922249580531089246907899144621058232090820548089900775542913278270596805660406367638874132493280044128043335335800110196400841488784669540018672155805504491876107975411754382486156197597497039613525564602406197708482916453570585554499710540630366041222621277461407635859347718729687281929958664260653604839700984093703736915214037724199141618379415848990725430107588874130465038440740322631498714652021546606286819562317317634547740130474063564302136862428548588131872241020058814651460076157785900003626570926924615968761547310684167729304259675421780800094803376878086432079922519279659969503960069847520406459442981700302972893168196538452383784287115908019638006413817606413992743502211944743949566437518415297871043546508015142433340031504931355108811281662740340433331516838693126305652686265582815480438936942068347993881960151091580350139725744103696790344803458800415848510106029009960653188778000921295900315606154634451460869057499332933293639110635247681036603607556569253854649689344947936288451089872848197606736464709172093534067743172821245007327699900101977853877611343450849992326733772855511175020202767398286689615890387929670244523462947337001600002189023177597013179953963062949161281425180140253908365827158576756816203652028168133426741428676863513743061015078116264552420100020060155716147565781550930188223270330993572417571722338197598407121033497336787243166416880864240464607331878595927428488215067848223290966480656440518443235253842079453851428681392515634809972536375341212228937832058901816959430639935198410660879167316381649349135994783798455599217294474579198749052343967849036258861858179541122251736932350829275764390546816176512923741267691972909512370472412933903253407717514769877565773083444275570543686140516050939648803763909412888156484551295398650708946680444822931934617672204117068886517823190734904784162837294086525035627436627913332923062500266353637876175611945038520325262827090297809168536905165676679329560368088227259772336043599005759423841093911751575403770549231147313447276274924743088672482146617819912716419457416998195017901072259827365870416950236919687999840998391158827550357759431908047383030603962978308908624793573303870522838630049084492862298334982075591062651500503233471238655877822235312932138387064587634254552693284051969343051394953314786626541217567675344595736257890965943352380451091285214629553516664725485743426385661835252264138725942682499283236932377194340830086500257342736925146412327913101155927937320282631828960683924374514628697609079438238408642706960328215731907493275898537121543895451295443440534200575631712476472542805064471255162014026777421424729541900147012156111816647074028444376889337664053963820369658076419947519182099241431237313149711661037825676131659710436118811285834018078542117631148582219158370444219144387714217661955977616692304473793537335480544647389629967762301223688132654380683982163091497381760463060762038746850196342127609694438965071228163677332704240979414671878769251798213950374908456945431959022992781103768219081249223458552596671780594278941278548363609318376280130550319213528916660545411828973796051004521927469884559516933618095540004584867773368531965364535522859253795687157186738698826660405968432140821102129395341255894209476471318841878196173148876858649361274552280213500165850555539532447762788662222196537906011757093068664340131448885489875365637220909881499202104878788616535810706058519754371070896133149590301041901584450196265239247023542810049231397471152702350851758147759869044214471977016734876349005416499994998465195373465407279779810108842582533350184380943425586092709505239470688570548457482778107712195910754953861072840930791361298823890180114876771199129349784313008816105272233012105486075211458191211355989494081695441716076233931969142558263639507871134529724161024004314416952051551200828841195970819109733830641378707711625468177058997272874984643747216936933551021904672724965805053802481754794887866453873290649055660596026559448653252643143554104984832095757335716943743760100208271869046728511883220326752135700600371305444486889598132347886746899703551696493383902362667076385457623243039185031178032398374367172318216709764030584632378904193282203540569070474636696422538553047189187657214286833843055121493850681528593499971029953870138146136842404225346821048079306351630137116855913973948439627228699714706965255870033077428899152152576094211097703626380314834725738897111529426175667702032205049918324588539355383992572448157211011305018122532716935847939290062267529286538308687556489789323204789239818447497100861664034245869140490580479370835719378801761107231936469668300495600828425832912430168336999718814656993543799903133051342310451597338143227949233415284515343481279037334826019582276511785406294819813540800806293740719031682046896856530394592911773018905466380188254703248379823699121582855241324003576023442514743977834168421718916265435720617641066482506308705260905580849571387538611696645988386001998435735570803460336869892664952139038380326465765058440434372643921874365907012406838283101846039010008214242049323312319032112048758731993401088735918828345042972886671694169779967482056495837963544131798414289367594855396850604298228512697166519471741247425525938404591212093269996122263670380394217139729417632488498118333059338654144420196701429615127173566618471262078052468625268093445042132155098050809454347987289331839474751121807305656948490659670635278905589668593849138416318536279992275556460743491903025123385686417253306308023399956642490617387685323193132081320375997540161310344306390894092519053597563458921984814447179137457659317374943487380382762155676331995708517168538246462456757091311420156449113808146728169593445125862308501537538669063954693616224036628041982401814628627524256831928173824803191869845282129370305347629800887517761405948692597974706238905700947372756666335005170131330111052538674886760452131217722350061043548615712304043543424991137693232633711374868422734978303534498307034242701410942684375170648281876540743472417682838715362363965523487872820530447529892082440402542233970266595729258637676708087312331021816103301018870998766732942882535387471287982068062095613024854071958958126355784123963613300380784289324317852434851959373649342510134348015138441909998130390509174014914636051276161577771086362059444549696871537858461470444361621281329546410125550935790366146927285484817946938793466693716847349937739612637018555590239340917686515993611745549809737902952037314085928412727309184887963093524741450876447940596142140002280340873265769578157837578659750069015996703707394935315248095307290552181930383832456467008394724746726317562815016669670611594824018561455547295051217295176737495863816580959758263624835837800833122835038779605861645658034391459751643892205690015021011349113939847311246365458271563630542442476734703463354565229905876893769564510077828830842997609408020940840216528565392187166931583185604287106687166435322643733512975746071636417227575594880892545710031940270102604101016822406027739280858727820048573295352628535596895248233664951149529234379546552847043733190480983567945909763766723926687921948558762331152095679722898773825800936897353339652553978014257990907994677395697175489269072149776565724815534165231022514787034386521108594039578216530058379863738507203417574743617810533805514510723225402813179463513128072417577922247420895159780849436680288232993149422563889540109761731633964430855560644250369707414499350705665791698750376396714171641824483862395128911514230170059000803405354993659989186786566229982074116531271806924944660277791438765683434357942109157804517024994285012298105597042476081797989908625871975207512917189693104782515420102609228614169557348058871503456034859092791991701434194109776031350233153597145093778031106093520628881100692296621138493899754396928106746453548518111721249474824359873690454192474391632833169810330133722562946644731649874033874704301199589362425447313060190728569610525231144619022862144868347169118096345403903105620331311527003794897916451440070791355978878396048371366518896636998765656720504383398120022265344581407571835066587445080621674784901332093363700169084083130394889335985221766798946769747167652098339971284448723633138964358766463718010558581098727798711589022796160631129433711418020753196968064109634007571756751433790756863063179285372579544320557431337730449371979432274402432247778025465874147922769832898708539688611557435564297876677120008274713989644005041167133822541032268520599141346652698056558695246478379737886104289960483834326321890062732710487233254349124871162991547560596392795099645875306943900938962970388560830807555091421488412940413379171146406677159385904205188551098213924909019804144979085503322066630095098965413755660118499238377468949411179811713328960751376282429092845790040019461361242705527322065708589264374795368122393216248759458937225804288686673737399588991460414370586617695532664473907254418652794924792008561095972090723139374097817144083884730959666647805130769819748218884391647273590614928216097339749882945887246006734063314100318284236621813756483650210516866007425070206431089862932984789355143176757121686918084768887899926795565710012039985099769126846711142122280149074804070585417990983355420965290673922214026496452605582781719943099575680446099619425109919701209465842564958371915041253485121978853994928504609765244077659740894138726835854060734099509814813553216109790482128093488028852414679272506724254563614567579159836566247524411348157255887683866034304708650275274729063290590245532503800012003853744178527152361097579769516603673167176611046760414091885579812446320168451534136258858176726341653515255270343393051000624402370718902252310829584318078361940792017542081370390284183040186287274094198205693839163898404057772848398138982155799573075790692787541153000266951618955058826825320772974012024637760587577420767478112266221074220891779114933365452557994533171247047531351725648515980286724386683512568803020087226468870110586459835080091657708573534252776978761434805679130925970150415069775988427313013541834170930106561790021954729096910744782071469484925256749225484059735547650118225336121006639967772821205274327971862981070274902089015113976971388164910845934232263460307065815537599668076941337900734893401061824160050323761027452268095203972986236185720770023503541220557611703910137155227987374734791935491110922850777091033779693084145132854904124955966265237861609190533838278947383485090139852670354112707275454100608202418322746075613642530323522423421335017593150897695848887714501643327108145654944713513417937926721544218045697814687068169788589750776158141862434318496414778457823667663096548196548528112066283924882166424508478317867070062521550425822312892721152434969062212287770181692227386249151740594209287957605640236847698197962554625835614975641379918369121628181474363208159274712258347134999559411976401562948968805071753676517506037917567483715831959390159682025942836037172870646787487751641772050932042306917090987989762937016060177500528510388000826983741332670124212991979567425072345252699401123916690288120734192312008997408363342359659164704825266156162838364340913173975328049647625233737731224849794611837014812124659732355383179695561208843018101369024636559577884206171286864907291951995581358517437184429202759862141747409605322169107532053339116757856059330816723065303716624939211878658245565857863289545912414151487978802604289772524269733204930882317120033695223033349559179883111507366778087764653549767710408186243512101770676911984411255250943188593475454652457981931650553370321914360510900351845855232498213256213901129626823646844582118855690457232187206469870051089994718032896106092797674202041586418071394748419006169939091057498822842192876311437201354918288546455126285319032453584378215145783512568152028296170658973346919689115440264431248761137664067740446656664482413119049366269840139751006071041710266092489388407703433386773166417549047459996530215550573918637929434134554867652781603804196279382806173276790604407760963642577160664270907782303828881203135513408952937635572777570517975675755131022570209539459769110044192862180285196842124048277832919392374596894671845176255348916130320481413079855134288910696253804107186634236540564194521855160557872857768214093553858027121151637008961011589554830103276039377943498839628755019738115129409854363718275526913411967027697866321743443176212158021151820712276416969871508160422403247740906045502049309455105709250881809137876157064813658583157453682838150508951943842244994333950652517968851028342911370483986070090038818673618636640431008171216520345962430307055476593602151513469157566427324061591902335374575638246213817954833139226507230858087056179708275247258627287715255362948078959070309230932017078886285068071433074723113974255368772091622175033021437522237259284473909998687537343385321313009999400461786935905752831847253436718933389352257189468738312982938104203501245333313598637509402015153300177454615944312121201308933266703182424696127365893819114103296116361145391522567543956941559266079862666951923418856915787567640995298725849388929653380993493274046085304999328269848797562749175118103768860687820650154799962146268611545079166707130161786833579830392413417073729707859148180368679864910261951526879937375071839140961118293623727221588341918332320957307942443965356761983738917459387402506274752785589445644535626551555472450060945514012116128728024984714210055353818683103428732253789487351907873368799831138194153681421944399590341630183705180360537947697216162187464569415458776535449688701863731504546858631321131399667155460827381901879747585142235591431747931603849905234336759064303277472994695791045084347945833524013203085614293289775752768412881563050804718898187036988252834532230054603073965804875315855194233518841243870247378060684111859200891211565922819134323580683374506288816462703570209015460581394103468073239743446450241113291363429113707228660446315481797459619711815512047086914742169317834013617623618538590571489120673643550490082712269526441073032818892227481501678054940863650914625913463460336483294602734507344396135998547372329543432477045608867610670704511860881065422817728969674436613457656519308282012898983553745466147911784298025990127187376242259796134335337632052285224183186300724497351380167313691705133712580794314417923618855192872331252677717937244323987335804335469710461103002678798138336238829352003655171199071074918000047451930971242444399865789909790391257303740061365659356031691093815662411834427223532411145970996005241087284143882192713852636173500374706147760075785088113386335657988416538907829180344777303152849330969272326645349960540489637657266858920784390258323068720765917314549209315764958046890495901992286294743860289117169221980972588552397575575914750664281986194750337700558689929194664776424332204763016260014009989027752374340637677774251663340944439315455943809829860798879823398836944966311916616257344752085538320619532786612519946001845953643449118476095235778977885120625583099349828827706053671235765114803737834249884301724795787970790399457588345381453548698995803576951616918181197130312130919319459468349701254976181657298677833108512546057096754144540624152796841036018473030671794884484409961335069270366426778150201255309332071584140825748913449121069229656996350601026487307863974937971243916032050664970189599508421437364847868587290845213455185593929633360347940077965634836933752072538900648432678713835171999376980926442207815668922543060315225191299699807566204797038672788169525979539925787874006575795102417124145834981223242708003720286301148556390187819423632442739559783603515785044219387999461098501298332998779521906353519080653590232428300587560944923691411109713386387648420660562378310846803440484664304088112050607785279680388588791336513231597318130399501928585078826169921568804435151310178561015370383817815426593434217264053767893915096059929019324410846467689195042837180047301910970999105226485738007901450623532633811992536501068643112463284859268751320630777217857320333430647833228532112311266172825620205389780433814787638183053426741772974472913721671884097508604198907382802545017250892791607979585901266093078973062995833544291134205779579345359501233568575081293788916846945256349833632730890610774849267568320360443458772933421352955914193335285989299534928061348948662418258845444690477643424485941545269687195171577841722612799445893817383058059416378203332641880308195573647034651120402902825612996461289484351206146290950558391914225769618933065294473197758790310904707995606115605891375521086121920635637425121829893628962852832689118763268072498423805539025801032216421615247162664641831617780533228259600188365038730009382227895956252279004493734644266679648982475411412448771025780657323876862633333247335051983285004178316048906175754691529765865644657068017036699202660289218308276619149296318260220000060768991950422982568651574330525486821266848187292082494964936482919241249788144072371059416251662491283088619821763300526718046470382687502999154128584845635394148141151411016040178446935505859487081995077097556222534050388770493874112049138911044706446372267161982436703219576560356175467060786837156654364914273840178362845590116064201316791501091586934965382162178052772541520930851727670950292997237130514732316493117475133202648347400432808243551863302764420500710714637070241576982908530868304928145452398247494871994967977096433281106464813529237655948534246506166712054841972812359533566610918439084841714540034076693138851882772276881834153642866170977537802678292142896613075897626027402550289854673651939852644299097285558378994655347334744661827873365993208288278690723384490642133933458382185399788475606525005965290816056714691373048720076499899344881628826432135317427390373910107925444419271948222148248625986777265980348665412096047174906700899160018775740604524219213243691068393549974468666003545660669380960190118464148897737935000956125250967308329203654990143081804133242085916271798234774156424879295196472399796624639166620203549189695624511855122465340875207902869351080372046349518815678297946662622429359583732897229121195840619739320386775687977916934072804935480911401527238811686549426970290857151167306833271113858739059712946417899609243421623238569200918973668344350215762680749198237315727478795703620103634409047571235692671406630022978812925258376546818719149216999004551759414948742329978351176316792234869439498190819705482975304341853932860332303792117289196925726371637498376765986700716068226528023996007478280996029065398928512318875439102735823813458990050377817899203562121493402695362712967407163593203063452089382536564714878109695036480399500359423958507639293094900650838243819454842500617714905946812825869179381103267907995067675401243134928306432463353703261916874857283603225488403702081470068184374067367348126553827249726956041288342961402576185772603469665640726457690126108222082181821914639984222951663344913876556555580098115345899885058224948368682916161751260724435764708225669270915527332032411098693688059619350570626771484875688122441905680752089793686044357787764954982139285718099985572801528829013919221196926937640273132304741677658092146914238704330179977765955508714676264388875731308693623439643051250409908286886787391304640021586173465732831835113920284072261378724842617175602618009580835596282182027305675490024646437741918541877335157295725906013665492112685648367662017251973817912306340802865518882746329526676901438308253940822588546803248850038140556172251815157314677240736185623473824469045045097111540907279554999211386392152107419049107582143861575411231070749318545195068913623752619610376618777093819347918103348041264704999135512919735062522953296100663002676109498788158647461625832303208888441861245004458086020811327776077743369514255028010252100909824293148050587675690166794876592397596469150139185458554232382791964094750512174761052943183887526343713502116364650107999056558827769869437463266510081907712272923650094361403277652221798574279205446193514560154531144875780643898129541500009671952729371852103424146035270404143878734104452193402300226854309557995122856242936367572588730385605873614717014039868432085406934997731915182802398714043960762404251034379486674013336306806324589928973063367200591509784218942837739115161987657890777458543594667818612290915962912939593480377697869313133575697566621610581814319492732781451775202340015346929388034054357886958422759523493507647138109438587490998888825780356943814612286866111088495331406320188329391795152591383852188494110890023773904801269784817581100272568197671050050740795223755935910808894183945571415015363781352741772883770176408832292462222530031068423238081254949807671667957921772638455472047569218126550754133274299774139001973879136340751935351629418661188988773976064965410824865941301837101607282053878519947927652389545618795465112433270118034293611918252395236275261034441673886586670468330871726813125959687007061514393291521923963662903428003927134130778297119914528833430435529970756053585568242791836358205272641490646724927432904111494625309738212998932036288837079948751000725598621127010753948789851934412547007985044395752222524023413549322792423412001310586573839601716134795655347670612560912286301296844562644764046160195622508667682954850920754998522047437783260593437285633605252554014508877801765307582123552824919122251222029310074072445111449177636498557356788414504543344895867454445781645720936412430209104973965199012688701774313584548710370069594535887382068944163447422498854972690352699748672836376050676711806927255501536452732137164956762182592693361490707552844660086213291799008959552979601616561941708204183517238023203135311376976679782512157772696771159125590684065872275152267736267073691007274658574570805395426231970677656461406805753602433167980834044750871312553217968350888431327421804659977166547889323590723486744703304373256419273182216753155931731169051563819651719393564971976485937194329179861202334517367777184283121096600698500824374807874307588191091690811148049489520238832079369405309706857469353535630172808028382354436175137647458058505895150435053626150934497849085575438688207592612982479739088302331256357225207082852660256052897893329771068349483331776789010263489974162756876089830327790637290856064906803068695088145956343033337791632467746244417564990559606612302759781912491120139009012961010391349806416866310735977370840808667083956988275474855855276132303626401164069863358988214010023507706279300211734808086573153276132497357741019480656500328407488701897948884330957655490863620293041432100544207120259682831858610990183442775548518956071821495278568739059950906232576571232541699592564701576811449645869742623146404534291839462266341951597987281369401100054458443703216486822162027790151529950437049021927065378790134120204144907434835387629673982539752665503331415095630883977271781645405483132507820306266352610215131157473719071274785843190969506553212588080841390068635233582501988609714121994280444533837505134849453716794881072055316769426551629317649242551969237098558508615389106221950995589900781034558497696400480518986782842430345480643615480695948678582157229189188125047976713845057306718826902122935056884755682506687959725808740810691269831253506287123118961471303108697451023930688325045455374956220376733130959003037326969007007332013098795560480955147293954817211545260376330700210012455268700958622143940677263743509749848914680395673946340429317903443697946031420690265761004011846768956795192733582515303230292776392438345661275667847191239639584569808228658520900868948976936571658672344003683481153628939996317298483921452134276196130144669796149739332266598883399476199180500446110955320788154522887813717584642464678567123624878773206286555727986310534208781213560379025275531995709515778844461817605220155209519426740582960448039856538078030873514480130338861264309105995808059357675944849488779261799143888706015297712768269489740021807766546293312388771307671434348060407538196222557538504996431696692756954548886538281864685787638394705663086506364749061071460782788298323681158398464216806776775289656891152560640634356823193208237957587312229850530389916944126568488851069414856714517345318639102235604134804108483734601551836797060079835326719079611850748224558566826326090970785361857083317072236284460696210865473502625802167647335449394966737530472488697829260440071211179943347894912573451367888702007520725290238855897851492874819887403787350602869423582650764725264189072919090703761498270401536528663319953186130986679949481028697441350013804557736790526987483410983462833600451362352422021188671958814019716308537217143095167642603560576170036328691814485778275284115050115748860833640274039184466813286062311887170435687042319433118112560329912125958274359359438328489501978329482033664132863392139553949741880046627045783696950186144460010285625195672534169256474423177779249447156917363106086607980495445355851681780917904391293823753919736028103246795578287956698251641457325015157091621639067585760666410464703446854433238056344593808058724144719324291700712150882554151612208887082645802825234813963204616937167368819117163322288305521079841835448909343937845186228475682547004485730825444786441623108036368208378208238457355212597182475768931101234227314472716395909908418899154718561225368632731994628095051362109521694432847072467129416643561414376456697672686256806049317206153914469823691846327581794177419761217160282450223438969998501351457164163180960647388106834900629946648029102992419503262990874467986575903371534752285629134175775045000872262114352910851688679910669664319042088318093204615250753376970004879331581085336231843699777747166165828283259350305438414780513145830996061622220702851760349859362622086527363754858297405341460793964487886952783043692213073653428741620365482124527697597577898555092387526711428882819074885412886745735350124058674389185223181379098694315986853301721107956652324469510555770156393770109130095875718527209895733458122116473735242712525745769579495142602729798748004417887478601915996177588565934465087223224784731255938831046758293819421587491293047612220586252369548341210456184303916597521878131046573938128777473376397762620631427666130806919280251125380690711359264212859874550271866560986834864684405410497378001878819031595349504767460598734394166708069477367526847856596890637334862113920405708070639021652226856201920768233734537910309481191585535825415334197938438835916249171702402480386878043178936926014299991509719978869976747002652721781866842013711675202731943154452402148508924951352799638107028600494963327203563110615084289878064882757729659951839319259479228224469707157520440574329525534830861355777328398821102170796804231152924449532071596386453355920662803120119843955586662523928551951076361305227550425076538492957240386364647558802668799720121411149074568087264931385689389503413379799564557732970333407762114991368782371075449830482653609452792386241829802277330355487827301138743160029385664808822873670489515217048172643053182436591330724625651049852819571957398325093891180714124683793559503228185450306298092808990585776556760924490855100031665569507044546334517450623870013631952025924692813380088129458265000199075560368422888441652472086436965660413381332829463476729985565477622187294400190947039064006956723537168159781292265028355611943639462245909688391189516485768450253484847057280391597158335511928782737671339831013194281395701373593358130007744466763250076739704271706171271170728200827908089658844984846137604342150292858570832428495187375886379914866940143185605569663957150748080003851511655474854263159366400539575098752560158193002395518330928913698691447921122839642821731590356904930762545825536939629455033159351014772553399900837321083632923182179047328670317029180713232091250014443599211973558797094847521237229673837804594839550541906441537279544003825366613228909671723280239423348999237123613407639495278746597432047579614300492301809379491522671995373035021190997159410264388065349992321724822668665505536789404256085004354487193029101816870020003090020186726207756832684897604456729981101110235585323431129310627308465909970856462435419523324859436672018354210810315074658122174211064432462307761279663131653172684643307294248996475652317031088327459672614663676185953854902403070239978620678083140914011373988757195047219491224028782139422307300160234672003718805687041845268003885620505942692053453607531749462565185765750452276210860398911072481538926290764694146675320475784096324861440695977936118996086634738334448193989794342301533721353717300392334327912190182279961160668214453066484296768121384036529374022487574146487413885188471010761722325904958761251424470886376614809510437725592423990809021101260951833375068740758243681249299841316745428602943321718449881057071900842741389865139153846681452622768737665878314391663296878507082725560425901681107994867500390714346238898800167670275217114257434865840661455386626181746141409558885646568981429704144475699165122888676049350895618120762845036299597111090098169544354852756737044810132810655171247416431501968153727449286738288076559614866819083267508845898811523950589506658603920337474167917920273731527380006646389640776065532840739893430313566399821012735951719628211365943335155244193943805278026713136196218110650180099942145556710213735064945441513616092323627452540551438032386898439083699873733538958078329169648075823654860958278386377408350656306650468770285404857275159683520673163754257070854542203976403025513818619936950738363164868822625015018981450405567679668599424391189687677894986249969848931552446450024883609742018442591170136631197900860688079349300516990469797033553531499036675708653430588486193737234059854310635898252627349218821910016959582691045973401456686171392884555703712697643058672695497412311873417084468932344962525617176800792308902057741137782407061977910188129544838415856795877972569201441535977558163767868957627082850511330264213252138848693018012046324242441859990386819344985323169694743033603129296988962586140478266962309121502930545808308923271838908511347281386916301981553231063727135062671629184160575046787292735250693738508561938923487647749505341633157230547418407053785659386622943316637113077078258684592393949871090452034021115899589069987542034194567299399376782155898879464474197943632416511635637449335908715001314574038259741100865124243968815247937845551316727662081496652403591030705691894416603848728684257662209798580046500986915579261727540367844977447342161245446529120549412590980386226391890551814521495674975877731811049937805138463989885087456829439619686278992823928146244215227766182910653479266117528091781033913796275310945451125246135859560883891866365532735645793122108560685684424787588312259564401945415700421534566300887961984339980730825560770086280007067847142425426670519158000245424852941940931235026218948720104445075969824878865128451015601332750001823103311177389860115018070286506095963272816988682023452295965051209040716609435542583479094022573360946289594518966856697613458163024711231501040448654129224414596256116709228176997959707632510803887426846895373068801300815812111282725809067057677558985420593916508940663314908718167866191358065123839043211978863789412965260374698054300237325422207177323132980814575922785016490692076054453347341329389564063884621267133315226031347132976270129288317018958810563034248788223870814458591190085387059486414466715248679934022893284366468023820212002337136239022558400983451527228847123900687612573651033836858558089323481921005705494364414194396076382043402019187209769923647285363309551764883318063912226489469762177414731910670360395852723307359050025035893702739917369182511976959685435336947358792473691469897974315804607815893989744046712254267747165068424908591477269736895807552342370072071954238409237767315445173253419859834115804044555799922755935287752146300929099876196968525808676784496803432252087061606949608247398876774191306089170776589357961393787851873604459742586867833439266481935768573555317624531311190534214609866219759813482958691765396282613004615707963393121908071828090122458824204520597983219148062185805817385279788609931680426351179009894822634053250268591778194157045813076025272553003644162924920458013156445805431883981623428403517013528584908700441615329699774988518037567043855294096707547118930542829939430769084581303878837198152299340319822388437046355371183454100483313627791835348792103343753869558325462272469421083584969489634872383810634701327668973453536183388093758758421292786268003442707201708820961216636282851843797538177086883259912720003740821092291714465565817075763479461582861409221936261562019049055568532044695824405637105814182728026464123493019356352997590402292985110623470738780968056979259230155430655088800715976792491101744656367393702884888276297035324175409005342490627070141916026623941650483342638656127646501383093324580938429551749518160946076045122876193796992802932016888393584387547002002416291601430179514385046624393238347458019708749978206412241971139990668288156631384942520432215590058129807638144602546793601135179397518876461117328214300800278857721005640335032146187209943148520843444785869650451811833891935461498850786150555322982926779507659009815165676532543776353205113591202469775095260745338920607073982829656294598748671919935248794042313059552915865657957201312907103867410369727635283917381521181222505029841418527674184103617024760638423828056282886795275429509870344753687758897439551120411308146958248747282501467455962806119997982975432794419910976701019865323083204878166486889580770531601966519841756584879049852348056257979963853893278448869791745587439645097741864198932706793294716490217396680005460012977043676888517191776877152746906068200053079699980181947649943387869870182786698999537746428281258798414160952221483617467781669859258925350006650767862486974663323238551109991361965665789180433070818296936672341207313737413936874337855542666028536013536311787292798252785638094224136796432533612058221829943800386989459791571241243744367929455366115658556146126919399770218438428194025666445209684878585862086858965408568445002326151568131491116338098123226113242843181795663583164035844561887661010282966490111241295680546572706870654925024380619727839927313613314379524282275517402773714422037939202452249404064038763603122892484598823129129014538616207116525140353456813218594329440287870579648105151299246958713126665197534869833831430714133063036456612959288110017147857537122092033005208634170939585860156072862520735486233986094053469719629699162267209916060794322287269988316359576528652212078799845441778566208267365561409928200342682806493484515986823687592960361604932548262365869508525375779364094907243173085450677674979606612608232576094267305671801021429099803032619540985464577535238339930095303882220029337641282864245701319073273635663612097342667233874396049143247012297636821051981862931707430667186957853502908586576101174136183515989786859468937846813133170149911599894783235905505326977404789374694847285689834846290213351334876424995092287357757797882079985029840917382852476845933707823859901363818465295325173072055997288238509610460056782226757716971749258374726012198138696306752994460982312104885759803347968708911283836452787161377207972293564260172901654661984920670420278754500347054012867159673503573442783198919722480451606627398670208520405939197493566814831387996732980523620703933355147002382622166993373318095072082213154526709128353260257124107175797801934504243646542962352749954650219942052955575793237799608415415068958821749244649432563419159988488151645239386527212884580486460477295237926946597746042492375758880487631790884175492422265611496502019433759864130375243888032135083975114761065917800268335138483578746219722454600534002621941304033218448609603747934225761342488360867155950807231954992570450213319698611662670596998258615050248555486866428091899006127468864201962522037114784527039441919704921553224421147010309613585847695322068920266266173510158760342825386459289569591232829596831165603438495414077526774148669283205274465168526002235550428716536559731163237483641205775303972836235798164243635809506195011122735404558290932368676980996114559728896892118272887282035380096585871248871030462719006334085616951066330583952645891809257541462814871873636067130721614729123302833318944887987960887867538618846367962206003076463912661504255185172219734748797903576122511422119599173912627524571404002579865806576306057079819908370861736407305231747549770453088379072898997856485722634053447211913491935632495398974720815694453277939321791266629314698197250475146329205929191340627863843948464136653420468607153975969431620147847905894561447695422987471927055264396554965164819244958478014411571862847138880330144359912008557137303767719828521028570929249380073549777158846103475799799448015221177894197407650010089769661937419748140216209975333269360684303243783041631359599534120008406721895881272359416950020109360712659277153204775909295859886189155320258972808057956248430577214641805671777427808905831896006785873987058856328151036392409858006833040054554225845522580383598177817172769570554237582368051962690065792374204463604853776887998702590261303088680703782523074462783463593137820965544510682268026780335799236753170233772703662811031081571753350774275335111274676544701657890866845390940567971199796188252012203890211440128203337294888476017628804321219437769313795616245979230079716267087011317113703009393342891532726948099289465800901778892000345759497796358691809587604652881438883232332382945862924085710090203570256737982753016020578070157634955082388127503064946054103438009178048326503434104993380198135552997173474297557387172286858880316925508169644381499772218210140491283015911874648542504790752360222037217090757902751692587801448239850707440612534776262781751294304095719741976389106119685695181908015333212797977913464695030224964659138869568436583561775388209362392177555059999056014939983074937329232945403202339820137780960458271226365915026664839694335019647375353041830570711649372385302056328194334795082692442135431776842507815957657842443530303321157026509129374662180719320649460198687187836978410255205377654869906777952916324629323422069517401908406324256980132460707262364089754823246286668143925558675857432850421391650692515348061647708090365395710874084665486396974045569386608105463742976799426224218208519780431575441997997364402737278779775292657361312338618011748499636374114870828223710426305847414995483618966971500983538446310829434674851851686674778902159870339840387060368604547752468815741992587035605085813547108323443201723841983354626600198030206673087692972714368107344307203910800377404833989547801187909736382512714482473790020623351254658659776506637319102393316267658565706899985477392073792912198367805577563884704913870989579393037962066300824977556030270703941853016108737421333285694613583537863095125587511701361576333750286125786016335446097733524881243720357256029341190557632681477588705213345202697160225157099215276803234179752227133471398380558541008689616453717539678460083172011715526761374814424228244354146367206277140896922684720609531409603052310918280967534626287680072488139882648325798977587884815978881056167178932249881735644361797930694811849875390588503667760795081398759283374309560364768194877190754969830220082742319665650539574341343943452857157122999587637457269159256999717117068108146997127702694643829190529307083227207785815141490862871828995244061961496343260370372597779684841182930871020488582245216084348163722462014758163214442124881534543642049155403927460186397834056403287223561161241268527906297594091144177613709685917725608437456797625718668450433226699188050312067772942008596916376890265744310823902979919398238528307150250772956414280697147433394501947049495409940341464943681355275797612167029636046334148020170252331173712645463314010241992391992631310447663709167953311789367836375794741172013716061834303984670017941862080210194673270540080113482900968529205984817399850748674455161135972118073069395085390303405555725032014213477458501756989970022444081739911036929484910109309867562225088698049666945132922188152899433795101180216583830882151584297808160320395512934643817246303573555277670684659171145177120616836958041878950139142920443113125371196863739963525681076054962992717191956967199972603541799793417112981416001214194492110875676104513012104435824529996185463638266500265711861328536023568401393545699457122417558629098828728727060058319911451265689585580390028862853590026444271440735247015706493697431946139764928423913179726463116132249745890766298994375866164250126201375514072330244286886360484081339910602873624507444611026731755935304672489301237666027519789942534816339337745623512134991190165453094457001024499636106482477093765837835158875160023638098175342093615100722979270352362696587685211266817367233873610440401958973491865663761939711410655776868553316709058747004911758286172078961186687002816573746473551819710067756256156264412928985915030285178947002065996224864861211475820110669058898969954458394195816043514473233661997765386927959170940161477236441623062272464093370048095856695152336509149706858490563509256995826781878295815640481189984979169473015940954846248933470829007518997192057197246268700162276238259312321318047025713352831278364097024546205101711378428776949940929451835596940055315672310029892202407730788391963507872208913323359534055403653623154838851256867130277949408952219600599798297212838788297683894918612285685592916355239005441709629489660353328309132534887754938693467905065457746795973818557482011793984611427033497923529026108611640921381503885781493730117804025627642334041360281812196331033216679378192097245294908953442807650337511748979920827444825407436855573304918663003656440304844706136530366059905544739128873327906698094946009344194853044007681811703821266450113699462834890604111824265919477881432392837019645496634536880999167499119657786048408161989159664987682525855760511847313854270570018742587617196720650227232363311636104279326849459030676154834035890180958694329876693495204129560611926552462734412108286050765692106486861950101637479396629290571206875084234383600152160443165913031043410399559083869343028520753376603802493893263878022179587657364731360602935290155466390225689656722582848527975471396946615540400251437716974300933718032399375190683604040507147038850128822235754592556270392929185579191479439589069740502153177946826590372154486130748239510413638105985909787656473642288594066747961281823600463309735647033061770961292628131417716031814262574783202286951975297399606595300864074270469045434056159207119022430822100874806264394229593957517313247519071251048708809149785636069608347747705025074546819433525255573888821823133814680165315101909539157371672775669215047038808546509753383115038273515075508725224919140025122391998250209426606424709938805054708426895790987134549626036988398328260020640859544427678951873594758184136864033977518688400705839161812210426216949205639173876578365787835151537605132860564772647488521159644527841847186569916511214367526303495341073552851077892218772674380702007324256494365816343972148795344251493222517114873502946853999249178903871079721424128637201247275278687540287422511620766939380909808119436626215152993587046432982094017343169414944928094738075852223851388511271381687038537814364588958563426280479771425360683535735564915325870638272987676373719702756573204655033233927421606112111136404136450073887591945271635946503974967034926232269198584887147644153917774970024016516824662000993195696451604309436022715326099277672269605060044844903450068513645794129458162480155393716310163920884966074734336414903524052343765003594012149360279590740182555597558801504852237568054673075156269204475123932577873562744287796902326188619959030399114012148611678860247301887426973210844462839804091439347633978064135615070058508121753880024887094410379486189294423201529201500214996116346892237706252659566056708911746332354587219831347046136152682062440405687602538731149616035549269470881225004010599709872278036889572266671459875875423740511844654672724247245259003108867122951274500690351378835689809344544034422567577327417053548993724377084789989126662055900823954682014923264815311398460239761797085256540542358843273268819564392191790749216477584628622478260331392351857402259380055728979435987013811219062305464428840583380409622098259512243828988854714216287359112823866984224919613226219338947818325508300479734651767035356846427652109411957284964254049534377448181505925998708728509258549985545298615903097995145628833317524544576529031663744346799909487338326601652075081078356584566025950107738137447004163717810698964976409153471502664129628398713397403824226849510004348449871595101190914512700706888735052849956191880113884117631513435933370792496266785653630523532003222660062587525055994520038804538119126633765774628975700726503000192179840884983243298654541935896082044269102503587280748051183620453022242482618181964629579924729386397510595297102579784506377028637223628822007846622021933664178902406223308129912583710682275438017399816224626476880647130447764111124019827533663745509360244334780699837391333627964404731954211255021084155247974282336287169043844055657614519784986292374894267443916909386031258759688463855425890414501464797612737968058665180450567139937471077727969490199844901756244728617546346949042433046496908828256785087379071487425215881321149514287667806977620827248261297029553142702019359572720503142156452242312498378978799176562932500228649972437168746639938351720560564786424123209494882682353859596639727468284179814641774900017637918872513098116261696304807281331999804071054793655819208951709252666783787319776779891670897197637039496276291611981519516860943742861245823176910550574241169280071701224282264764916070593551957876914710273247368857804776138480780233923574078827139872142367439536202637142880080900498523917688216500337404806535960128916002522336244647311422322961301597376863733673905548336923779180395022127699532792815109374307105116227655557314640573248342587762151297924426954383818964202510241551378598070760937486969975080221140946088173877953773523675784700249445147448273620078236756554119702087543579045250650982590616449038347502764803167068258831781468387185994062968173586504217416482088174236411740453874822983025450966452588110436108311573810678485233345504690938229223013399800774260852200678747715567592314979659027077718557774259882388990959181021156511759919802844505546491538724106526920957609560319032662709824645229941456727433459548025503143178685025387985536486523221412694933741396735043901144752768589432374660650141037514745411786411118102443088108254298633132238517684146344855414456061165124557394930587503684043163653226381080853518088421940578257749765148790942782756239214262946267645204069842019132743136012676209690215142157861334844706124391528153879012811464513793796296273115682426648050003243781785032568237109564015961652194400427184057516118967251231263843895518898701111823160488002429749426734605199959305092758135015038064972395229171836130875568600806151640082151599622684160965186887769348553755038332605788393596920847133496492351583957330189924730691269685166425314522581543089621528334414306366374717753442819921748722375204697362061905719001657593093916727549155505646139816957446813113197220362833740496967749315303891526110585468506203831652804251987596058473124995653580080580610136209304081909996575280626626844746539630938445956901065023865391427742763831500470963860348772122757649352186378849307468926761497021402880861941753964456108782978300306365978946776941855492432042951267302849737666064981475251853222322135217577728039271053710970625422868862930344276477921603121419436112522588720045710683716546775779254535585413522357878902325138523096445535968755498098130157753790983977368998844300411565483159044142105430232954488790905027436220460723180630029757605751276189166499945954010733192392005630769264154487444587642940061859323410772736548610167554470695773878025960551797983403753659926607859703874003134817718239032491719007377040246825956857105153239031303283110714891114258646183586162588145858399834893260957581994870762078010480420487666650729018422479533380489233041578178606599398194976828190102983662313928425257508280862949378490866962403005167871591723568517821155581441161498537153158172161534954129514936792722845933638768999428230828665560091499827993685378073601191662204058024167175441067859774054802901211287094802888560068289012060756392761885915559533032668263420696560069866821798885461868549361023253967163531924044235513338335153232214791593748090529482340186826642819885747148464644202326856147194348426593571776117955981939837155394220296433744140758330887380565676500428289052684328705141745803412125629567880915211911399675096767195249957500903102495588493296280929127553958585179515743856400463530275474142753974725329930958293382257921191036104197261372850299861743080738527894924571758913101222996484464135835078361360533096877938249965723125798704311216448518773735002150821481981843946446140762364331246613214050352480588692836445458715919907217933078232848398929082842437836654747633547136837570995634310478211531119528905643074828860753436165064490465501159437973955417377409302768924274054015183005229526286190952549727832245664807389896887628410935292238651691260668372907774667087579968590058877678539182315366051998321655798937230171067129731889019348519597386692044844483660739425616741093397562858048702212400670242718063790455288078636207923727326863450069123674791630504991852764536995172829053040889697519068028668549002732524043528852656509652492371161214578775397555730444134169698091917999792730159216882253291475415161763245125924370836925663839088071614863178063697092716860499422772235828519382736734664718546625809167260647039198380840397969005501832854832803838970818071198438306478840136924529866851985816653138860226157480134063222755122994338985850631455422964812472559879948128032258915214411755049121555995445974316739946840636853777704704573465828420646605194739805130561577468809406652847350292968385329936665881168555660570599156645283723373459641446096335426205480447944995220916793722268817725593442172189691695742017352191077882039027832154846322610611364864918822958098636635086985114826810026104757376929818474079387810028200463728715013658571922634478005858290472910505258858597222091179545131760935384927474962551121628259414057676827728938643585329527398277636277855380200225178894022059681487156757812191721727852974183661972805770056595700534283228792908351694006782485000557447529424548488036853827868378200684937287139050697338643943908095597566887852529679040944493239039378560986557260462727709376540953573567262737736696124925006558256372521339184695791185335264976914348879507031844559734397479294177121558484002358723276827340302048479313784368036325455490615314378276492188219265597199585044286295421419203785684944474649347874591447115183817768741456052216263205680623607079352676290517921142649745989461322559328908129902067469521007592580789158061825127407803988429344853728160191886512026494029254508276957680466344689894468153202512006309196954740207999939392821087825599579550677921133976767947210364266008425080557783756285724127409801228126842083560681262564576295094254037923646795036238191369285008839110854919326657256275320692877590786035523045200802271533700652905095202071631477253183160742932381143807142101379064752058786134470351951676546424633687489176265024099297844465583475271710203600717696878410963160374195628231206747147079425740038415592694616661864159022776833267028250951880158954279275091447696645622914019946434909869995919948894764398880271435359534647805822872262850504093040218644646794162327849414008138714883850862321353612218837913385561146954762716462062737649560806507947227293964592599301202206252424822981363282843577664851013452368121320481163839437893488214199167913186983949246730279826721726391811590601059666812964527700818854971370588310920512055066097424466593932005421306569042407532108758065534112643245916849153423402643990807556680367118696050865704679172802637034126481568214208976601278611984528391827914716147349020339636083290522290786048930281675859893256598805351037019371022165801119842576680373473143309180495505074584508478397987213404234336606017029799082074914461862579479111292561318804391693535912658106014677483829828075737615445245692099590748233436196434069480209709571212175579565440732072186983121401877742381064245124432619972735948814249437760062280295789582475403685577551311334622263702186904421662933486058929714108955180629123283046619389768785398095506223401899255142744971810397075732404952705673784973203519755965268015027222240036301169686126944653257677300501467272852016408044902324394943277148484282677912551042650863154961283670727773898833839379739727302533831446687437246847877853684898911767238625348651883283553225289218281823854637997809079282273689455884575111622688967218929744782838553380751755303303735815699976948643885593884589799600386721090558842029463966059134535246374145001671610905728698415426744619210772800998971102334635512181899078544715327921293584096837967843863605914216186174122304685498852495824741015809954493920641779555060394600210838163292225946870363539590435648659530829023063999903212215446747107797079141156130334382113092297351365146352481781806289513035300768164337912471779053123273066679153815419555917560597628309544907598426508575433736009033009195190103803148592609399014895735114702135573822591623582843493396780776221198117770386386217754661110677437770686561252287295788532834388171381922556227706143634367142917355542353421123968420726220646873367307588369345751517343275419766786086526411866044709826320788215282176146612448599875257811363679793080237168700302284195077267423599044743263932963878329502536919657827034345962915831289557057099612517875745153310287504121352400611868697136397116111520914264142452800332976480303129499362543415289365314546213761844764285573645681310206361903126479721949005208369117135087879475311377954085595898134626004352751077920349691890047663169987462668618141886080451326421789914458803244937983469455478928277469692787858257259920944725218820323995200647841782674022336702854797449897071843791097162639234357932546523846057796151302992706154646386083313632296120051750125162186188163644623844709397796042273723247418806974535984908430325621381752933344367957287572940050607243634861830511297880075293212584719016439981241970169489440882415454763223743362061110258402508036379774894149772889767630271843859556013132411595794888286343005183912096741597581720333900561104570480198123440968704085885967016999541954389781797513984341798345715690967921371438890432392012753065377721715516466254827058909285874053043874785118013049479981942162349270353550519803717884942831201076680794999733762417630848734824481452967330519752625934057240388553109540017495785347015011828698991450352644631323630705425745510222608765541235352120187622930589291529576266963224604563420462746589626658844362592266828638116454394156440676554689568494781903750554855119658559252852431073655099541880906014742292290612040476095635898931067267807535873379505803174863396994319431025101080083765153053699608677953954988502234765293757500250410985842398259860283412471016246454954970104993187909551206937138241759499675375326468952801561905343500262494778051975532821125095808628579348676694827600818318607385888312152736532370450014242050598786535814320156832919336749036324676023396669873058056649968065580568925072436427891249957766288653577495363409314918970489378094138827984819517657927317169710663423458907861718878561380310148020672314166575782725070492889596920498595693426959931944704041090769788688648405427636686992227220384765740547728563339697998641984727819731915693186891229793804861986318924372297218779413982431775675795198079319076909337694529742136001597866642351383054418675211275530478265210415760814413455615837138965239589365719996078223770512515212708049354805268719590768550234662716535728863028263896282088088881585807031640950626020446884194938909781994478887867339881993456776939732235354067972786201403190890048693473583829795086595540378068532909052579929379755477811892641454856321909792868691669596479896400364413869111643221798281244418156396913592387966874314533314962532641067012067210095969001051927404245658517914646307545753317305919075690976859446512770751784729626318722709560209457972601383445093331631907542535124980322585707174470395467284778114671160059705718349814425323521294831734061235799202372195184610201890071017605173216820150164527240153162425698628583057156758023930312734006780383998786495031626182661837333358898390493066883099265642081252662204493823932841993049781899102869562456901710208683260919930576947691140882317686172130126130139115699498853877802720661763766364713293159784826867082488054813345210475660009606080954436870887146013487062659498702594239621918792024533061595027992966798954228152369629171297298768299269511477550272155434630583471748069094512288159401822860818517240474027052731169443499977346258530751400648238432861588653964602742598634807111954602383569722107432793612982683364083197866066490818989008040533429691428463021178346583481080906105061809273819587306929824395699595030854005724780893974753878884823813572650986336884148250012230427724689785562417587273785499716811476466020338776261400870538278651612960377566419238079201226022428015640266298410494745259158167401840726496820635834061021439038057876396559681455810347427378957003561226954609157839946530234675439383951390404318066216042932696588278095232931779334424427979760483857088170464942654373761374743386633426604063869784796753981983727876507815794844423441900432610318723582003865212052651676268110673483872247542223923854986655608910702398851719854675002520980391052142803081551977451287569444217318120038342204067927220860717380805286783678265132973838125806582333257292304474648428523926311041746785771025361347900261932324625729451261191879786182506193542429804428701887421935001320179591222910457307778653096612003487781909752361534830593269141395978167329973215406486825180919225797886581576639302522093661753540134711142581900628532377964210001586405561043169660386643900874483199081553394109584124507373990230268871214855473621677838676864968330963833320275514254700833843299127756963769435117844404434440314114479030283367540228367740916211900279554980940027836772270101869194283666176246481371855325296856299432308155427404779876339821461715003934080283917946217571900463117256474440353987425783621269979303531340100687729954283165731005869598552094763976544752525186346355398412335990741594808895568517031858728234959426909362060204281893137883526641223033818137974933031445339053818964480028743452123333705218801003239273938945308732418078230016690355796189762212203188920026717494157035244241666169820014045829876970359904013190750726340460284383704099389525890437543292310310745138102244890619757776048325784710796654747796427850138819469199153207277982724103444338418833773237386481354432920951899438451658109092968967766696091497331010392435742517157298657499591696120237598456945521615432710526310205127340021275041121767433954314734702032002155350857374282364944393051564902618840878603367723445101818243441688119800834706540689054759994295552107673007921102380329198496689894428083085507229423265813810285661979283292142189102169168346615337252951864019969489102618027039734212549199045320540205411835877929183931654538537558635707896971403694159699519869935775984193034345253372493059189065021761443572500390418508967495366853917557792344033931225950200243092050602981730612943038188879133523580357054775535695506080673879186381808006630082037012051618663012556247342491745772034486796666925247898463778550420867947102132390670109522683588292910506319656546166696713335299595094411508657302703240010907827164186035476396613030497983373173908719628659906147720480949406208683537494589861586954911221518480796253709657354254914654273138913337967072718629826708040770065678450300086953208448936615133648497908410991620805944252388727928923986388034942228541354050000467087000001073926928605997255784135600086236509535812207059663158477390455539038464184110195028023845099498694410472906634902408415654249463136513666188426799850691118648910035633809793847749405478654557027858727721703407278226330187337354778643793631283620401269211676639840697881168490771992820439737429748808747293247928543628239373369179905810021405289275736722078989604767110788588787042111906896474048030413537554515969759643078401560313180502832013746089436290396244111040692594068704515414379979436747455770519311625921601855276615550621038668640698165145144530565508817244972073477906154029608219684972082482102394450274481565357584554984017052862335894563719993192807375129048258807848777650677317156196734458505731057556041835537824866373593696239251538185155079889073998519097777567974288360027269204862543805059945948737583679352531416955309778008139786694741012866622076918159282410158930267874989206359712447031983748782686366295616731214325673663019438283726424730455231670071337907841025221229336063627594320340731434666955242480284681446518644827875374387534842079066338123709871552461229367426016677109939124441934913312420469883009940171973901400493751678998735080947046399932882805281573359837966219702987943096349624961192592151428199692732777783860081809138379813184059299159490461956284219239480730252703685373147047088688732682033787674575730632885376473532915649810766423997669520139016200771624909327458798035725148264971547884462183397900153795969254026124013450806480419922626404323339551166612647072729987575867373218985271685656707642940964975757898481806924030770872174778959579961005503156698297172398850332782183234625604722483341607918739284024713562408562883962476659006795555081962939049954839132277650849623333306663871512584755925272609997726767319322370619014998018357914411536138902155692047076368760333083513815450093589473070493209215790106079526993115125385071185776249049036602465289291252607339981033758083292214755325719278678928723480217434817829914143521239032239945397026321893349759190329321032480849270291833974880485405478625080650382964969616059222516012314104410576512528967985669801453791954075551775535726424910374091802215618779875700178423600820351073746965041027356471859682255777088844558790398723736084092932481283480769326320846627694636294158702732019997246711553578620057294006860328121079128732127657144138644989129582569781946725898794358233570794535591429040955755310511889914641145271133956211766939852836523911881848918451894652049473245008594896561936474094816128155578369982801287596067740067385015969076502431937072786946920964913219871024457473179133776260500234497464811512851627765072385552293620409198655765635973667076600011861954422836033469480461753413321521367570306407631478762560822204782719322664467070468691207361882760273101264405654622260432477561943769909362470799666477331080392687627560409516787994198490369565854676935092762554970889680530165319574339487271824022947620494814201707745605143782615116577650332983026115862951105151831658741279274482481578414117353586278877175673185629534608519348214589952511296707572676440879576040920768417183624458876325084707646942389193039650966587417924330591313845875529565478897546971224053120898114992359018959610378234618228451835294530145774827799814524604783389540278435205624773304262162312950617455910589120738156358602148444348413727328436947880353949847466998551434915353285068949554644879884865584970293448286014122491191012417831744256497243609099810594657036493762647488674901116705816774977390409779956722287526134263918179087437917585379723350434796510359673222232226749472273090551521188948829442497527420001604192433180968801387871433097340056650008122076393753264092511258674042969869396232985191763632540033282681808978168572406688705553611309913532464819798218417512818127766377388405128198893790485510727502792106719355110459445349773651660919144324125211543038736684663976427917762629599416272156267234228712521285661258883975100438776106132603155291563443699362630580664425450553627603065750047968781494076682320068618584853784117485556712062559465348779978055510618060114143113828397336660270843462378383097019518697078808181408779526595072829462930204659498819882775108328326262870946269757988415666164928310240730336322061453828002043281595689121440593997244748364437206585175526236718866480946463291510993412435465695329556682832596096014793957746420305847408691757876555427430976571655375294832222677915085523611388434782487782651625528790496332920690979803063302493153317079393505130664372309689543441016435114520901662940557413777467924495410451426960331839041194974364537918586486032883758763846820317911094620307062751355455428327292322424682078462237196591706513839857427301556824559167664600031999225684510219918425982077299294155793048806812394618881286086785919037200708923499712399522863316311810916510439998786113920732680716692187383631792506771839116627963605118700956647643428915504473679368169936408133314059365649080885762617829673306428838943913048414778774182164325320151328794830975155738386982659571237309045287907630504988641967900525768270408975599993206435641116747611724707550143742403800112071392443089678584332469536939107913960541516891678452340353991342733728134929956176388930436919377287703000715595346513322777878027134456370141233448845050340476282475024015771745020309655828879605018333571252520256244588682946392947370976467058911570450887800789481220273085608977686402076888359444695992126232814902348695756510279992102032032112619403864648178806419335164368057804519224972189915642469919519601421759157903960386346076238749227062375406222950370330885854926850533600750517277645443666342997936943380332081812156195012046425204800375447003053829176489243357065036970058220500963525104526246298331154880281287990246358110293813988591924431964682188741539743450086336927807241631161079430829552767156630419645572940823725497827151258519671286932709486697116716076305750447849122026562956462464258417362406503148267205996653471111110496987320095905371476711307431345285044014160086213526671321236300621065029431085864796369895919821187475742950304865435913144933559965993706384007018196002457939620513524463566694036829798498321315502106987019263417790167284999898453913214847947915060082971538587958917758460594648214003783028988857510584535176510207773873501282742091881854919154347737418786512195828366404135680403894059430736342706940196130679483821279710929866503844752938719230661086914025527757301785403448141994231875764770569364930358532764517439789518290500081595634646151550819553691759984532684730971349965780372301613948776480838846970173795613840716713371808280080743065718004940836623640849157652645932743578048294661158287310624505355252762172190745500545321150081278924681661925675626197701284449598138954943409762453971448670335844527443412213854107914297766904329002407932525059069651830091319855419638962661392742887628085679890213475629167318859942870600588373435375990895319216322602592171394987932532981709951008683730604382306732172978268023324524747640077415201912025798482015019212656249015540357989376215560905306470709989626817651186218547747470672670532251800586160278902750515728488377665947242530262358414921966530666841345027575331176943288769284846024418295354549673496679899304170454763431779759685049968788934129475146027802302173053595642550004735248722337536301330173650209273606266307035015926447072719256016233020907224728279914892253988291718352154257225272426361235762966621977004813937755810017285977050260796399993119580114674926661592236540066057746896865175962118547266696142167784573581778658927696150388287149566927074742652672678089364124110970157564182489256572404657991541607913868046662039395006731656087717792965878600622908315082448218975207891282008690210929788082357356433050099758871079809779627033638109735469850976599313408232143727520582995172885842707048601945217052269960963492164646501647196524690243614410599820590002644286516688333439835265677308983273547360032523494480003486535869919750561190949813800747179276299828037590509288947661229593013529909457222300489890116652699092821063163404334473789035643848805574694009095981204467915182605862983381598509306986577940312288338548061892617790963635535469627432106485080796976310874957679291638297104979438258465399865760028578939789111634135327392920208775076572449083113783327228938973121519302791370416996080570626170405285347889695401793402205332967484535035768275934827200936638931401538572591548495633155320140983688021617991066991442003063122081689609781441262306072536583079485832852911255345441875070368658888512126643777474095142897046762252586669773784274510442435624875440080402852439120845250187376072211879263599552955008168854281791832247347013461430423573852170458174637071429464170743232530035390124992875372785895647407357418985625085994382536204212818159390619635090326981083215589502221677736110599307968755928518186002679443346816113283113212950897416242428889498950391068090746319690437756318099807865547857196209735720997981981725578786140189065241253036213155687281774280232365203319028156995376940107721808477072823560290433700098344809732438172056464445380917682039051772929040901235834498695982096436401177193766477535188687150151553828619703417230775670358437088376423218625091973255320352525521605016699919019993067018805399129687682738554692071234204443161275351535877169019313834675149979911316125468373036608659583858007575434751272101748250077852217867251861163818865736690290457945968535839657834265973470864706115920106387043318263863846692697477612789388170704824059544299108462884910495351181530382257044743498191052884740969749831284009234648320128619158847037962042085287724668153675581703287796108037912473854423624569612082011993841915681555572171078450228405450866763663855632102947219846966135985116605120751678200390124162027555089856385278793743015564905944008023158864920064358603534968662392965830444113041250909433125912133509458203853039109572760356638416471431974499034135465614065894300424376088358271655531281631767519388464099163281894665809951270968132541233142136876095949474330371933533978350175013013333641891439915131587451962659347251277060304157897385988611242482745600150502488291498749732245261785739371375043854587329238342337908857080525607904937108312970708469669590600532122958636071194940817142374394133533903826872766187861967505881939360165031511548203799768088063589011855763105318223199880726462849049028575304746315846111876322781814084411530755901518492685130087473902251172664210916262472051843596993880013060116605860057289229915740657956355239402721082501209970133096306938859783393596201609332629793570163067013681586495376734846798584789696993636076416513732166901656531833581796719399718931289535356165125752368703798127177501946090871995004130556905145960315940612081592743116810500665099396378912041788024459120778539413831729050517468378877798733714682564648146302778916289225160835497548173181153900669654052632392641458827690364394169294536916240018696530409795932327053271869315035926214701267664985816574402587065908411905115578171987903033052086924185342233892066565609040966021384127079260435498685942295467128504285637922574123238971715013413261857122190549842251642296409281524029579497974360889132423680579008595063413933002698637995630291781937928174883743733546869717727741435703907331254335519066156775178163071965421349982573622372551639193890112264026041015522978427633002825516241090684496682681116840716901935590920688117194147732901351695179320513982244637805912766400459269346437651661636256008752746564135023481619406458226751262010382541619592333205408295373813993900942039065080844634583885631894422171202794057147367849364250708230956647389175581488118963041487660219045319583537584441780872939860066756853840121813793438917227572013315353186520206456872003653188060217538593374105798849141637176592784432081773189829931032791622777728402179502601528683582201016041548034099553299715821581164518046352863254262830075970072177512898985160898718986573318048108576379008698549089519247495041772115718989177959681487341924040745624770565384357969235144018843566844890590362290774625299989302086051382835508436246467594945757225613945373063195443162977334644948610648296770362477328590379109599401072985541792978955107123455396487546642973663885365918366203065371055054356696717642408361134451452864377611037902429461725103125571310798429560910369551642818353840441743838712803203124645798792584252756644118590832484365575195729255454801370164658938671313458491872001356503322110648779932749957788865628841739637135731206732240242916592372726281384219001099933294535057652297704451832908484431809013146268246289776686343574024427447757261030523469331523906834508600585680977862950910839943191271427365246239158710114911405608219805871280235815011974605566388708585709663154427415641913106575255940699639761472707206751445122194327810316868743642382542714643112715234539220715544820456125294024174929190274268358479586590714698479515815259806570111611578455052366592246894982229260918887006111239211180185974797037245731329294761149076953425048024759895140610712721966444703608639956823777117476502402811328486134567920873829460556106912493816162655689582813305209360455559558698408944187365039020671993618832473342505192259418730236837397041397763336587915799734831890015298882885715348705926131865773772539442815978266124548105654848689117534532710574091545656072599998270544952193099229261753156339422658793333473716652697988477044756016074388175520450560439507724371913297913085124051057444080098393878118859119702198885067897792392795927411282783527969210469698906561627004244373691478387132751806003815718461521223161700194323789376489035519782345803438851311855132857364035715957110628967646255325277094689162716411950462851738828036058579530598588379493804713965643907845596635906029860307194379999497872494942314570134221870685042735781765005023581893155576416491156561524785491874134495597070024211307896879441999518595589864872012065392463824210638576325777583089516800683062396722365394505412637503397447603690638272787254172314808509100137906912077071580693997572152506748221941351297565148521507993908363951750864063938734552697757040860305647402418205802351833391977884134157936313952749793988313889032228813454280835040019371201214012855398447411952312730698576575706619997584642944403495657464434000455168835199653622150422662754865789017423182298362032477087832838326539977167612935791135638409169369953927180243117749205315418842448519947786380931835962021520848013964559704943162789638582050369650351451742602316248411776604997448963520428063252585108900385698225959659686191516477461549166243484825514191243081201728746578378371924890234065893114966899579249373939314676575854274144581901504401989795052108803382088140804875241693160048214073852689646567058593580431475276421216586974659866428340020093155600026309170910983804213434790359853669385767178692435255105307186126576908699326384248435916082468973301208444297107748369185258894988389100182162098474166780056328454524146071820309205505408625211957143506947411062916392337965800949303370907360994180820041087533559224822616222856301163176874775025614126901550967329617723542775670666334109769998838972210262386015845929672277763154680190874571667397088349293603906609310930853215252664240097758228122220146514448216188635655370443771328838167272018320555072393146858931349434525971457063652905570529764240642409635730770286606553457947915581602162532499200232995875924615934056669126106048820391583329749075369813450009820747851018024527719015628527241021794708215635813295513676664983483630178700918384695868861888414505213036671820655724087560378599655821814072008030655387801728228122691442671213979761056181764408249470287740618736448298995278063685907655012521408813587272614691651318143061697282706150425655486301663595093509950947796696490910343336309341499524087518380260666443555128639868390557573415332597826498605376120834732459664740766027771978081452753734353470865440513603612481085063284939430417394722341955250061262772811059610464526385239308091633670861679330212914537798484125253193503686205851088765002914107037818284394426238060183331621069176416583396680751164252436492056000801130979513847550474445133171768409874506736670944918856235904983556724230823926029891011458817878198753898477988192596442987470311031640966461355156220553218638230242558389656067645314936843918308304999661972712779095900643238265407921761216576495836980719010458400942364650188128667772951895157390380781851581897789319821818389674620078275745388304176359010225188278878135193062337673903622433996674769778831074544407606492954694102372788487445985765350219268619365988727255485018212966447199504340811625920205808006429928750638875260848324925923604423438606357936540584038946814719378383564818292114151819171072124282913236465302572503504371586770215027366621146294786824035604974193418033437549691167468204436909972762681222406061748469295861483613445021268686246250492781017423087837816794616892780819759938173577101888131474011315063255826762508240564084302887029640580079417685706271770846546169427820079244731078759184293675545413851782382539674273565836766356424361936813166371723237911268202367053123589651615343755581008501228978771462707009369459430185707808994845333798682307100761204230827111951672470215476693117538301277426041881913291197751926820611175586339002947334468908637342913989429804327290721847544408085126937442284525274865340226271323515241777909988766198910044749716265148063629675751127152853712076386192224325751844038476522264421059882781987176962712620311818048636091019143403564645046757969465213212095249284510604820953425981892944391717002240686096849828190434448570642503060753011065688276020580718163427059107128363130792186929673594200148361547178450169095764100083561935139336577577643191438519976950601272260612174606977700351033634916045527723116060794540657803277703058065024890426158332291870227291563890403305712797316360952493648248517311549625842778411691664743480971307091848560788689160418495931547184700662420204862578279586964377591942199427858139989522820942128468836000392853604704766749906977952507390069720182933800306100796393861876162948603848366886084084772581549987867526094366617317134733974493178756881254197718043648960233916958281959183322614042849816597199594563293348166826231269721761517042246273242687953617072547457563791654779925542130977483749843789604138559869313990172064900952397544577782815995169831679760418757843776214560473582118147980787413231850699965652452781067667445842447804030028502638194875813810942929876233032792137193390044414875841927855597647916738681866554690072268818296305131098433085608517967578275831517068761647523924290177594392684371089185384468973378623443522565161589164339393073155017892494897760227517867641634877183293107301576060133583251031501826917019017010487171349685460678223557012491434058645377881660882375572549883378409744837203718522142370391381899607231578535096132410257402650520485348669806624960871937678529718075842401665554352987030020681105120011561404953207410812921353706719574216899074210992883427693124279132065719200509093961215607021339803988764348537440365475289488816008551320116530621626238005828870222408309008624434997078715237271026347155847580923385671660925857695937533773298052502965052954848159446405824015485446204425814214669770401537639272898145738122579589858547336137323213809238730725413496943354364380066332176746958194608983147803945518153879392119442526967026472018937872164695139415391432300934578325541467241891589709129220666503389142497255947722668156295629568377286740961920644196566886434452852602563358154124532354760249559964235115940330951595900073025555413745771586650929412215083573349295502314867003757234414950932893033865321581109195091808889310523821785566949523592445147100882075781367736891251677360825003753837605813695391999052939621982215929272615922036658005602908656568622950307000223349876545693055807309706364348985892049352900327274390493382934118629021300764716151796485428919932258654074985573736856291734312841212116516164368569963019339868378757049546213805492875981203564493716961702885978795233468357724116680345619421625901625169554264233812485374435476040900766651056700583232119194815054717500224262371503890148101741907648592208094334115276559835883527056524593793032576374947595285093900691458762803453537802042634488513021663371200185438883743707691174792440213445236982832361995302723185197939102524368249680180693796003834349275448502384746248361644079070527490237073651751387946839931820693039417081034062347306493767584365055010984905254571031697893207341110688933785605015094955518361093975132809513485328034767723446374337758816555935822804103344719714518432646024949463853731904508526520749313504639080611366744459679277839829339700849170402672445171624152267994669683358766597905059114807313753584655149615735423990757163529661384798065151250444011546066696451662249496759686164491692465450368912655758475595874723948832957977410328143148747790574150213624615765689585315699529196191708810206890204130158555636072988668973183294886560692921669476635843808788451275217180370977305697316296608644618913457698944235018778617970502827416407126303275760830996711725593617558295724755027542306484910639082851469622069434207132516523769817851567191876777451013511623975423572302419939595928539838932925527325387785957775103465842434010111587268682438103308401547025375221016686509864065233615411976114114389196852861808517891103014274933339069406264316139220783163349535953229717839163242196394699614505960266948225734822742503652698055267796959322282704420163887858028705519912032606985998649656996761988526297061437666084804048684066907063666181856688529073889261247603786605112462285563192145021178517050073420828487350650336880655505457724211226772375480425389986975075053310040581717024961891993929791199033357212437280365246515745468342230032364772727339077485059672462622346063848011767155271341620686356601135757869152524553662972078965193857128375941905300978155009327599074114013307497971199996985333319917688510162618084004191879104030853991275224728259835348284111301723115618045626905945674603173121693765541017090151518200528734030480832097778227451476989210690866022074919692281504240999183132080110652147937882727294574681912821971985645952103248860309854237659059402758389847928741628427429658527433730355038998209151833097726257475645129128390888747124463231393966071380035863609813150273215935773551768353162617886744349020026553745240077734430286147080092706800648157665186946680656155189763255613770772381155169971375766870919750098312905830266549252942604213057426107972695337743920037285674466633385251811111420125719127063026295929815988435384271493688557780129323429790688305783346255998171136784611615350421932351017234600092205915672499024779549705991668709148991462257643065914482296517800701310334125150204683828272342898178838897015548015876161234277198512831821363097792668319202554452122027603110505107525672823891246549710040002576440563237933402513505366644128337849646544697059355039529753891534768742454638329015113659308659569288002999342658186218044195792702176791171292497468242099045291674882138064263991773903787816861771043844135876282159886622316584296220013881950204017994716266832905252902070904061846666056270477803265588259662815489608768624431076933166805389027708694515472139418146770495890716649481333691649797757611057539395930868499329499815566347786465858210178181516997868144078924796730099165627858209744375864652718665246449576043867772171644397013318629902490538063528415650620398446327186588544930398492287441343654147020671163925135378627145975531316984940590909686804175803826514250818092941014790104788971355118184309802520278385047938158330226156890653647986592036531999499509038054823671877144273891948154693427689989456283855236746452237413011563156224997949674679569504358565625678326572846176344265535581731177357194315297769915593640478890362682366316565991137582117188984348928463073099841374948506699180095247263381204744393031344347406671108626427269247614980318213659892749382407445866645256887010611918519473337334697355911268535612570523106785176126487037930650973686251594414520218357397309303883155843346594484593405815139384159859895425435203616078689362291630164399590845007141946259488631066811715938061364079178483585726783195081117935888109463231829793952282449776302353956382858166236133018650674657808800064128728118852701436044813487678733748559118291932271019405793012636481349080798898281162852989701493280484200775527060863353959846271457805362302000080107012625994877052281783299311210132607699800069327217769070056283190367524755582086843665681090134039444126801843338056823074419309990049103342766157481208448604596518173666260780318448625145152493178803699843680819069483407054475057137683117146821875005238465845445423336416967139899557393099661889066387049072332194901325349006953066121748537306117281177324519149162717491269575091117714962067431251342952239758464531509563957245979250064071710487453982742847213613730885827233485228872281326687381343339034180747105798243144918785158561056438125512892844328130414620993521443384823157514393689173833314029884780973974059305656801954754732109335167120206161166444139036009312873484072856536108779534833332974153623424772946494146955415061401558293587741465528337314208780492091520411992846633064317540262077450813378147923201900297637636928619261826684675461935232024575253009321226960711176926336310712940435562923133062383429455999516512950682343290021505640144780531623561622389947751026957455147669495195952170532059931437949219902369713943534297653074232344182541237095635569232488464781349259438760687452013125886753746717321125798009646680706209894747435691333960287795052402874376166411823600096726318260895897203801270427824678056753557422204508118464045669845087568725314402430116329987347499330838529642240599866122934802247873012651692385533767862379166858274074878543973486397216792797896065281223426219269412780556289405329971050603159207766560712680677202697636187418491147307570500045676520332660774612083259791348715788047952885544838631849832040321438554304202403252003626824164859539657900901940929898983409211230818963601782410727857173825877658013895039827084407451291704739354344788359696320907530634187589312030970867045751899415275247384089961233080769908853751566426780462339618433097494871247494362648097202264872383744157622622037915152806426184995396965264005427132041817767018943714816277323465735105616377884024819207712969396034791557774018474274820030364794473867693027446292936596155799471331495825328539002542548001804501011044984682503633933401567484344902682616110845581051139997451353503290802318392728757985051522396822215199438754757000635589425765172106407246392488715632045966147482313093240614749609692607933518840304500193483685182274209261766719450448078642327592981738269351069831524533738095241478846731903072911969002869626300330663924158091478692401648426558685798746455748384715051242926324855819603832428043514714578588754918112756460845398342568567306560466074347020580481870442600373422088987566555052406731726168785458335111986586720922497728175373537390802823019616693823890487716506442857852698105534114508839817651023754872738054755490806772866160430523580953451557484936486184171793697871916927102818167404915610761277549902827059659921554997691037871903783703445331548158962674576918457623235165194800792298604255019519509951861169720875031644069289381982864961775127558957363679993796496999933411204202695938454841901536416875487961348824397051598633587282833222431116363643932970161069139769051345814543235287435002199256064543456824760789032221863692580109755663103865775444301625998158788127146221776036991759183126498391026629752791682209045963612211140267488509021911821900117084013490023877023352820257406780915377047239879722239132390034477566416379442347269707618790765044622165014734908251366388672133793189063149256342797084199570133424567090468683634738412738302675748921652982520110239378168784314372111913588438355503846827629423186938152221803482405203013755050310060055093502701099824739027204423464788023389933219620109826603140151816360895736536572587334416857338673275637745980557325911044024833579189577078428761991849016082129179100438780996447812145867031885296070560443231821032760253143129401938319918849775233967203275683944109664441331230314357896411647842539267913363789684915185005840314394470323371815099679465071035967168967767039119345838558087441328500108751884354920311057094801193130626504959263712577060368576215360993021966114359630301819915460121314937762945959790933011744352019138860905108275475293262673413181763566276424236630474345364006986766782826661377477998989951278427561506775017838600050105209906200934286644348414672063146501242324928453031806765619369691863355971240804374979751443502853017156507068505482824053428959645242252094044711816239806164656666198944840707317029785254169613035653942455929309111848614885367312953958542049739570467550237943654103972984000592269785793636801402036423812528640030782664038865863774465312525626044836777893945740690176000036953026195749031395115521793138443866799537562411408067102151308223663852378719388734046686526830815619427025639753021998434823579226016742881805904672705349219900313331913844167502281513774884710623989159750110893222003314850306038911442971122702519905520797991309350947426279462315526839391535486740459451237112965773058827028509925266809763410048885503179376839496767713581573168247990945292082757462654485575675079544328769445050872505350937275622868298464719680009394291505416702138461539261099403711387237165802977085938880423299127615953843787750007526185212810122663155949449363896660226426759303093141207200073112187191521434267905643099554323869162521308078174210103503459796477623075491945127822485270039448372019747879150251042627706728133060968495066128629046653613513531662304099806468206988809755248226423627211931948494431085318474873642372798474430408647825020111847008658594597549032309531268119521321707590968444219037674557347630631781591236077500542484096324471506035746929393049840426520149952190523652659342508717875660545574948253699634733727669012434567359545296033698712580760509894374244895918849307892542611244426035020561323996178307762210926767790487535412131807756790849351895671904681024326869689392678092113008371005386479872439024683359121061854634425525070042223030366507148824279313349360328033262222650686091876196887356427582341950040097842037723820306956797914133587420777632349892025022761943906220848688860272694471338832010516460942731216396436833478272443057083709768159979452757165823334327621743186969940723373322823182219956175988783223601655818882563713393494176542349990797802692996983431720126272184299239153826896793502983668302480286103027034461547345829726036879596463740125178951823219910927329643026169271928967810446903516967146910293298922093954039709453250356307010722596255287952893270029532069333508584935491657355821225190688422008419727095491641169897585004964992056197661129674127903596915087601051343892299910138308615092004310926947471246191043873376566475694511371347932738600237636856697350354345302301007973079329676773929626068369934177695358141188915224482729009926748353765384357916292937768463272018643453060707490156014410055841158904720534575725240083187605896930211889219309745233574522818830829660035350333225270535287818504690412449581132560888580419507691450018677752188557603230114473933343229764240561028295869718568324680832894355089091370058981965735484779750137572692810037184318894217663671616013959547354416534182756808677434051910601602136251791192819023946966251047021462396924717728479191122142705237099959672662671378498640028224226092844406917065758998745742674057861200304733784843374739794922524047960674683388153948909308143326664074806253801256469940168370786666531085419133395842604980729885288585198212239519437412704885784140886728671632628009673808118199719212337719082477888635544733148294966993989838989867811124562814803901064470241241187305665071257805176143519677729930461081060507115074794283666777812372253019989524641132408051279188518130253790389013373948498180026932249993988429174157075971216179797436052175550815621610360156971339091515040382295391140836163114090442531225518771287072082142112717193342880668912213939185473334131225507819868821047610580594618738692823743319809785383919274786837346555594811617046362247887500320418397909950931122811832924015211336798419879456767875688553862964395191385940339704799790715511746741810861272909028330447942972145167860343726329901024735143009771430751147121545796166163948655040120559015242379433007836838649562953452453225906678449253036894489298073515110860749273904353049889872157899667601855813797791991104635056855673323331829463657525403100102285495642640545345568356063021592695003694949813395054985871641790639902941509653053444810426250366846638376062897586502024934645450702192644113414173651382683348672849967558638387082690738736293855742485613245345547517203356841975259113909150361545020385148096828599581416027900009254714643685884925344833413976922405948237352272015852460577264429219276414577242722319877300621461966393003961914611594782255558681921516550728237090824230633661046458826806616203152719197321332327542862753519348451754874388974916232835394990556570068308099031015054052608702838476807192276538607925001685987257273604268103862284316729086998239511217740049145795129755851027181217377474882070658046030165842305744401065014267223729025747269246317286936160797003492574231431129663769065045768573021661166816120750710884395765362028813121946265145921839194763115389011575536196871488922967397298236020293595903620280992696356881788315004598872199050382215785672170909163130214961392578654660579000348317849837333124689269799131084556425045757794152525216409772235534086297737267039370940068002607620698237865242661701868837956257285186818442524380191540857331265065062912765460012793022074256713969769686417427235475415935497514774837811082860554208354804229276511237122081405076228997867770484711409111784720267178582094099121026835676352937881159575624487082021164448415818874986442716728043179015527445317655020420123128971777294364689870530863345742621641836283955836364239951354169844413115706741222789479287009786585511248840497306980227761767573750648750669832457182023384112277392476761459711609354789764553155528480389830456236991236215895840632842452097583796680084085154809083943329741278297830032839754641900154844242705886278428218045005001702615212505075480328680118999441652292706207290357185204654313925096157895167456189708917774486320898274054885194209017401234034398801221019239097179048140898322883716130866222537997167273269404826067931202262121381172831710811906206249948412188836594989354907152973197010902116746563254391796441834597144277831486329314524514223472862079931486224907257529118272670758589833839151274560424875859012257636704321138292384640405311853833857702149684637721763019868546162726259155968609024518542464414942948257379473078331892121774594025986265824630699785478798553009375479492951064570036136873372005481070098266542836010711814575519174956758119512924170619861471448753276519031429251283811064960309586093793793847449391723882745142995822929591021351331529019642978957890586766157225357567379220572281533255804372679586459212283521263434634231704555568506182854368848957779853912706830035882750948105676617735881726098044853122095178968164295589178346733817976042095426017858809326592347313646507544985502575899427377987643640906636237828552338278521806752396445038606413270652110896341353003514991501797891185685876292765308501520887862559823220306255905393098604827485351466864345048261086414995587708776742042796706787909249891559564235777236458026120178366595358943251532475107606839663874771320878538349786899610891289927667441246852789292533687653799111041557672631917229882200517580966221218007107608391265485044482345124311913282752286267039470426758845701710924164353472057338823957718317334837777942667926063880989228077063305506481975793895398174900743502533824069410627730773800837875371872443241471334249440760456193669794691687129156430040685697954157031953115185393942855167448584999256703946798756706042877129426763142144572819835868571154117618290070647158518381959864790301903797874414335831727289861093376180029965421414158645037623430968874998340349972045913538634049505468274048814391061231092676733589468032479006970213813251111330831425981020409897398576875448969205257759877058870953945356287716965552129978900546236357496648076735537567311846500808349834785802978730982608142418210736107111829599951701968149696683924460965939498188311051077695451157148539581584698251210798706571893635426561637662948698070064208611309832884232735359375412091533199095566526036960247720713021977427656045009066933391091567406375227572603852761481058179981021960805423224386619107271653002645409657821904383348040466940307700467805379096703378012781773202415619543593379659337795697480579518193095598922163603236702968347192512684179725379503008534613107431868048563669955305277661533306150915966258739864969817060760265322558859787022408086932639134174225821613943653339667568209332640515092409804295929541166310609920502813273886002311422156238235465870898255681579948359598103113145877295628559383958464005965463498768060119233231859585376899434615749765154237055165855912863161492270770424325800364253960313752857720434410151621859204346177262273677249355968757687999220655130375087862962956879104387533194413112685132398615307001848492921101925857909001096352430842385439081701310338232545121462618439726270183663601427894273110960164080394179115786324177203207801662121488247673504231395610018141161116055786453339789503590760038275754488849421323901372826132883499736432328351430966029628186809176063327245785350985825444306966332520552220975560355365772005375275591730135605818012274827290315941722027343331185235285748700034700977045795305819414916803632080443058483611385403437276933354362670427582040212940746487398278286440075593838293193358354488704043934872255987603339019749212582659907994957087828943980850566864724784347196348153832918014592210192107924647568531021958204514033996600998796036427237860452246784095565783345066645014856616503033869679769916599390496262212070140071161619840099130653543429225456901811533597884783687200426654621185631932181663441541360279247442216569949060846927215751894726940840817630475210710803494134546248995691055300348960077195413626164148611979075306457609558848284514850612255806406051318154958309210504317225359625170341134673061738696863213459360157483992812521043188944652557622646437646709685765905096660206780469393579556117247961987251036793901746395490998722041251410381134318456855756423768254102671250728952425562075819555950991551538539665884798816145406813251368010859288214327555824835902611588745952088129695170351975100778715291770667878003724653120935671140513530791881941835384064475668823843365736730854423228627260454438001776366261695175253625626515979325390361565045068989416343922721337648770953396952119401868299098145714662981145276871973211871500520473652126882122805688261551457002044561059420718896732751092954038275506862089926202150550275864861017919836915184025823547806949825399016485925212612787138056782030471366388161651340750719365016811992844034879316385175074396153698068321730482505084958480462522974613949464540021762328353323799433035102721936487740826033101063167471989823618102010745492080282672686979728647636396622124910908021990236260950415573476734841249808943582855032044293276337528235298218635431620774860938281097317475227391574591442054744309973766464286959239867738745629916016265841223161214492354263047333545604641669458015044740674585328561722056176662692348618367276302098421822267765697662673044027461018040397799350250071752772992434630167047944278145084861277123136705833308458348424187534161693874552037370332655219124254892815524005590687527508727216690625855997885395708844188732870604800028815497693366788186368678256634307896311750617890171230411437439474688778431693152549368817535688688453169997495271264564877816135252901860365948196014575908134067285263642711017264799317699600178904173965185932345969491468926088472510156990142085158077125347079471386730996420544446837144489596250613482909778568104983530195523157168705145602756940935039816712142961648536673673587274960824027636847657555768376937892781196796551529082195616874265352037721371000691956135760074414677129965452464097089980077050878122575126817893842542757708407167662694736774672931753677205595986999319258950698698315754902077763421374559597636437087488553725705706939895125613881054011161407354218649614710432943320293775529208780150179671576080981839207394322738503095133497145454724080024101274244901312879753452140972229399231724997520030826152826657592191219528693500077573399219602549445923672389435155435793266191948070973238056018867050234180220856053017653576012383798652266201093324897760661235009230840696034760872294650083376410344378906259560927697691952666748589975451174686878432352293663584138245910370655689225432282519939608955785648258187667524560974692137882205624477832391778309974086090802816952559604129294098469749630714181047550105037569598695018575536238197487663464886290519369630047636146799144313402343754505888062121338030695881814863196009661660260819820026071253412888716012729797254822840882794090023032730452286457663096528189906361430769338932274557473483310442062892577538243010303259717384460948943466740987411746954291807136731540997196365887616626826342284517075490418961197635382558058194993734374499139907877505290956274579602601412299871337632002899513268514720081868051002292528070530692054419653160731753735365873715332729756389811252098407895458376109660468877748017131938880240597821806489271851726090032988487449660613942691267287206917760637702409165326745584958205256346053610883112167424720054847046541132652532098748459181273957636359909707560746599206059428373733806586250987433200849879620776723590729074723051621970292287366133491667267962210530694394869161783452434672626586094589202369955946134526798472348608753155606436125562456747456261511728431664779291066318830143653981691776372041195494188293828900584159625133161906461247783428252769989098387980901993190712722032987245672168199219793767876445846439141551448524126310295619160878481550752670996473940521900225276752183346027748222151622393082722174544503039056382907668726626499688442821136650832056358080542167566264378083945881752153266483000375349882541877947296190770153692072105846262305523476087791113866473123143978645369215923720839436382963494173347466460360013711770189950034252872569033487694685294918173187153388458273754060894005183098396146012065051813785533638919683521865375601838001440359623865851400753168491302158650654007920739082377006824087547550866551995597760425682492615205301811982501044875415327615309747422258078281459515010533286884989432757018617951505359922152590193968762883861875817128612657245740014324596871655352220104814323218379140409007841375303449504351178517810886866749406648152025859225574296521915255203744611035801402412571889882017544983206655251774482768591255061647234583807991483146281690698627285432886860322891565687336137397175824339136232545329215069915479760389517771737671310080065566771935612430778883650707108194629912940297311645094038825918552085600385157976744603628867910851050146601617067867869275555354481384698100199809513416360661464451705693019218559150243425538817276889017881329689044641097475905952915402778759949576454090342140405335225223262573571502270062318378140773771443132453176437242137482661648898394122048483143054896255246517569053071304394471294224817235252676387652499831531181645418839431236838401335014514870002471845177519521901883708670122866614532377577636903085285267626142071820701441872795342156583853470045191963189664005460813022480153005973825135122138674883082271854359498678516076487152679058346131572703010305565445048889345980567752787809599283083621776455154781676489762218233996658582867574557638025814270309393194633010190078881268535484387574908441689551193944752410223959451434669866938483782470994530092696640491181268857705230519241806407566888223767353595629546129016426664321591316259137481461249263545360399963431871094354075115636730979854955052929476021356162865706183832459720152339426839194923889890975925238689166537391768571430162618047785979850264855851080718212274194780958869532642458600395425384286332832469785467082265039114161882995933914431421107311581562559489860207601819857118638303271415342170961499638535893393484412667506111114131531972904318612717079515017182594229818783646955839836147938231445804624630456335380123781714449379678776443169458794699796232341939822752515814485354078169640820474544723080113653505353491084071491850119936009115938741677614556984708022243041731565485600059269600781100494227229051215644934718638584712718885335660566048142896636181636279310921847678202191927097322796741715157530526946464356426276582526001957473899094946870526324217267407684026240013755334554395847730953632140932452168222542717373461078602386151345337430091396046968370425637618383852910775736082257104457785752224588675159274135828804936439853604496290425227820949761506723593336647401836310721129172060063689991926531779508416202634262477252921286997074566735228350499646453741696348885787896921617003841615548487400740738101889682778418712860658601361415692094498949936862668465539483193962007583143307586685429225574024172853380761620303466442585349149232399891374489979695585269120346719611881560437687164572475803607024406443291591122202249137512378397744483260570409485528376932043914521533062356892827849594128384022969044021056709747310912263354747818254533888710467937119760332347866558834599051513066356476695020152976656225788800381677956585357480317763685645778582792690042753420622822525538671791311504032917407148790099573330518327183609155887473710948900408102861487982406681493695116139465318891616661775090849287714810388268869033796678826193021030158192547279937311873522809476322430492543049380238508192476201491957755848380693270546307392281773770201042212968124970931803010519891187596216394982189745185567426961306629192656091192470046572768503903349069922992310961193238301602953020444094861882451529033756923169278030513313130472481139296143880319785970625610262895174664892173444443354859058105458023548568584813608447478379930249645273420050795584788778176916906377701896476665180299787145923552975412873732989863454534176490969305105074870564479131014061633722887728223975960187570039965412431604069605063827538058298381148094651065439411447801704405617852985595875471682397161178642185086722269294009075149205066776252063230188975517200197773611623578710023503265346821912494889216011343174187587480554619347438935991443781138865245514201372380864875466512676085864117749782328296070187424571451240883405314140085838501903514952626293206855583003567275393754771230243477672442674863428373608864778608183965986365345641782629570711764399785150495528412533034463666644124767235755388567898382466427009905593540676986319285227283243771116534165920895877339451568512201508676940033115771820880689861885391622424719795935002946172107701059951753425922443220142964612744252905041139176979697779416236061347299970711242179490379893960414291951730236865711803499375580646682041968393252914101240027907301690510030811559898229025854217446683933578168990203502100055080047595040868560169706438135738572754041228237326465705163326181473789854731383930032855853544987809141518562884550237447768014787084818457579311125314963795677289162868798083845947812489007354160205853963397620835895558726299906901130741379122273793283699136355959030789268017254126303394321529211059113416418078408454761479057501517535516813183680906008647146332422659006282090803538842214131531802303447779193302255571699401810188080849922497614051314628076821756881248033881753475079144428117294521543689353060498963079921271289941261995726140298799664402577563779932169263437930587439532315688223828390464163648356469809424812352941712888954778362334914170733093852271533007493619623924804977217354560232274094121952429105161406214712545982020609608602861215819468744039824071742278230959973443030769589356073977126995450118979340825007855360332498389811390483831319583954350851526091423165173595197267322753060661411526208466918928878790469113178928750073470285752374416130207449790085134105286446603858762192284221489551228210340865742612178579903659276499663152516956692190456409771136492171646499086596869523148938869177538006840479677265883451379043477997947123247535680634964520753777588316910133170487170827744472876955605714893290707471316800843415797165533292338329092870296980259869581729561675904131766058761619428584411723357658415927383254729414300319677108203560951064184502823184799846093007629882857042813022919990928800840911768908569170998755307943448501959648705644704147357043159701725207532687049878736439119275063829369401256396909755561049103662448084589587301251591415938995137335226304825904350452689501477647551338200650243706587616396373550551399727554220098060787434983577388838700066272196931624195113876507385653603172667127137445325482633413945509607824626950095774302905247799037123190331445432407316542788969676513633565942021112039115028295115408117959921271153509487457755738207287522546556554714109031545264384260478809134450608150482442044809562447534906425788606814174882183770346952709857669410323493566190951760756498238588398013479354305214721484358603258663295479926275137500518007879466549688983308395907837265485008652729709706002394440134244583147808881812664369641762587848533896248710650048222126095042123657027368093008157255602106951544884671246031628894926405245056845468714898850289774583902018772730142170257913495014329429148879791628417674312983139250762956670906706150825924691759120665600816896794720502245166606416687530055375322289252258626013669259673497795486207849486238399064986753096494072476676544154040292010189999477782240375168996423367265289650121638535300554439198795852202611035763073655074865995843562594297327354697804562672739388074179456893997373924567935982042829460295075288805636918462739982830886123424804856185639097362012802838515858817494560462490470850692946692973652558735737867671595250890520807862589747647425712483904495165533867953855720926149738646679919169277467514477414141891387982394457883882817663700453262230030543689689696378350510532278997322597736841452267650256416298632232014387177817244037324372536478322051182365668882974941378206105979781700735575153787555835559091920784878230297564784114026642840429347373459018585347415794383907121327973738475900193006076855624953748372072151834895429087933878514037824158194516764721167159941311687340636718458842090736613737860592309554946961171736296285381659153489112904565305337451049757619688728754386798620960966996086290740518156597676633771540577453854733420158563184237583732041168512743406620641485516824415891616394186155058917359876732421672435210280149643874470314753023176723806607650328445367595728510125672486381070875111554174757203318256710804547850449131727485839733491388659961376832139087703679325586849213561148883622068808060948528777106634718385174240493918269006592787116133598218424425169187929566573919247610141592062484942766931407506684353801522850241291240987460371729073096443128846593931676586260305573092385400695197537248150166200487049188817162354933050882747545092275405910066353683746246562801698019145223612288879906733445151139797512628754165123514443941618073405124847126739594624008372866669221431779710067139509524102485886515268572237598721855936975728219011318020404835131187819314699343990261880076430057188381158651845590841527930596126564600969772616405697241730282803414516675311749350395879504078880355289136079848031557205806621892036042983752219090962905060364669901140169725233807669210837884328357895155113541248364284806478066956529771327398445756373056280060582589039877731754531232082653713840483628477556778827091540303915701966255903767415228622543456347250250167098838218393269306672309230059115548889486977035202932751122909193075365975653843302659937901809925376106874121170342043406803066127001327289285898694347301768319924255673790256735328529992901558903931157702776877011800357029240704644346019362024534045811940899158806511619574452318361730191232502795234453187950636338244135797991266373503271996451159941921685012141095982422083634579459772030335283249264169039177029937518288591505525649627357755729619540197806371818190603764619292497999411364893644796390203005039734775653665509638621310597933004834484546791684899951836073040766426985009954458726001249381745252106000398405798714738502822644947276784252006461467743478331360812903123415889278033338586525702116438595780649990090981372734198375658829568553544607521086776688912670906043421056742703414160015701325091490376733808531170941614729032626062244815990662171541206063092634195231815072898021178232712555424370200728618804693746012051419812996173862126337706744591424567734902857024849014067077806504790517431289498195120920368423050423283841319745691775072975750843809584449057900332847253810328586079033189937831298013215316953894861340285385725202587293470461792803733051247247052248383410158843052497589244841320781457433534137303806819715165436836220473469128935848028835893695166763848965834859059844740786411187719317762578847305486608514624475819354930755169922769725114252257051009151309239436615274516524456399748117913009723073459776774885378049913790250356770276830691401833227900602922102956022864021114476521953101166810525390355232251703874809211536452035844600444833385856871262087305138882772126092458941601841241529608882238204036847407246935720858851457815705928478097217385843088040422491084937122712008692000310702426766121882854216182015152997233928550024530618688244655933312516701199837859916302997515506835967225290644488742882333420481252460069633859009738278855124646411885723800342722430804266728647652795056736645591222263805295988512089890693316488710384732964544057271449603471373397467757398019026569481498927557316443388491704718409867717339562200079306024210709861385130821997427989563066677763194650082894674816146540285742639997631997366135633933415231384024332997992307367913077067627869229142652658017593534686684751737907359265687920351169719838281364625202493209268831892048341821914292821429147588809447626069415181120247951064815319750006974086815880824857984665782030609753155304680705394071212620603462535665661632680718001629804766307259580305360097502194227062714215498596511181830555465431482176491322235427017592693253882160510827893959210550212915070551363494683940942959805656844367804929758795441168222257013587045745644619137885845229671351666671305141027430706295187074035583349212098308456600424375638160684939826698728500242077945795433967338558674410526868296010274221089948049154014915667761587860002642368934314445845476051440874326822490163111891568652224484112541726574211206115866956679387742569672465223813158898097463706774283244946167075533997649568479308073096769107741421986397422763358278408357130158386268171818097976990307642746979131351020456567263014717522599281321512763130746982932815953866042636172793740835930888529033225328729096642011521195185292129894440888453120451090773289578851250592031225865764119657227809281555599025858080433005031582633860291689551384971938384725762688493176071753779631189701533401652893497207036024705475318832593574502672631434922573939590582772280059028199542823472626666846567507671637060306684511563317418527736991704977050303059542359978203967827118755184096127483025314483910147202176827491883607800096154550048818825288388108961925037094320313465802849073337045441101855686951256998337455580305786843368330596422703367628341825062517509184029470147168012862809190120537628345052626083666588946479241238243702251991782808018457892436316490386694809457301645168748368626472766010174003584077021233665862313845152310122639396158560439493320919393241239769339220717533717532838625936722737513649659025972214726062054054304083316423443849876369717959451919245352029314773347100501812972657597294525031503020976459955630804482431696612163777831677246967133728382896246050886571301968597998619427932338643462213159160086293231551210973330783980712742526385646653093865499212233239554589484394135767832259271185206781439443773389383258948312999111686484069117426681209179008369109495128935638678226969424049991525523900521308340451428830808704180854650231842763718549705373325555839881310977668771654796707140311026413831168023406429048674331812734501613215293367129512846179721871877952500358531080266722998164652364672939107167718629171281472117161568033192573521261460154183711490743943413907695535530683700191095048142178112932801380698518573337720024613534166044820888483641712863220075566981723426151981801304675771366204207418485038393529361229230348566192062554654440592275189916415096751726908204150678844582799425131359469746365360643607824659187549759673854520975407306770461173902628056090738631681813358693261756239220982068333185030378982619711364561441076183211808274169166765261897944722917920060419712836012411654641630936342770635870113581892162836947992751556332761443716529172564747376204718225820801685141214527712220738982217430014243546297576873479053720866812999869004100178332171247918968724054628119654995599390108762128486064230963477055156599249882869989519173339315470572352973493939381701591184799299370320314157323841315220491672937344020833648499242148210889386757325954987766359016882213661763355065058348550808860871648901237591129869226292140918563931953918523062364657690196664073715529340245885400124207325171550947992142440622841016858848026887236918134217650081369489355351129733790410355682329709336200870140353926881617547845953280070867193725219225439368767496158212729882091601456297508918149021058161883314890994231701339880283790971882371914203971897784334338883150858626197839540473716404957242739182267574379847567323933558000465931438082015781551694134003939135955853508069984152604846275187606677597615232444399835277767479405802910066592877039805648752488914783628890744075564454929023676699909407138667770074068359623232256353659781550828859991968032470601853241292597808536637817024105778280238352084694064272155266384253995610687082110793170872978510675910163145955119398767343054309985774039236095182415768762972341000246497061151885546695469912194982754983458859156998099245361719597804935909234135957609705701173580706915035559985025992389782166885597069415394774315476964125322082337778058812822891258632586450869819980097976380320601726442716152851042292018875003808175579648933382969785162633397478131922581092836680842137529153117687227548395673188404976435181063547892349716373387496757862734310112750962046776361403493606270490676288350058567620360624030847488715483020554122867833867361442047267258720551628982648014691127857098322830202798041936615069036332213783185597279667220613859047015861821917123820194314991156974279421781799858148706313186561200326638583438486141094498472612238505277650729501119746060557061172674071098193875958403741454790244713827920201186210956787825034655959154007536168391312680413309273517363387910182018566049334498616450357493412843843580237122969813985131759242003670091469976411200598980334889465915691378241061188227743465790184147806820802336406549473116691861748964949114165090284425391388624407793363360848020522597269814346893870865114397124029338172674415180948888752473243940232180327958366939770195072523340515890794040704967983851483568784942526856750395419101997977735800006579098975591570181245692142542496285051761362166203501536518915899847991541081251044019392949421113708606638599065176748657449656643674326854415125183149762722171201510207488438285648163559631379392261618321672329584639915608302826549594768484109177614132401453014891296916696268013672906663906261975624192299760422022856073601189027784032278935996038300396218262709239055983944780352603548143230706125859088014129514927031756882487222942599517714917010686139372527459610164700319443208047652650577387577194490562748235343673699433356672615146071223515326236134264338310779065898030119162962719926020772624303182929879165287206500011383740049797253885544224336655524233327843279589824614250045197552609359481934575471802214091505462863162747188128914683302113071587154354650213843092571133660084784260818270018924199177697158257855404443223436418658629200102590837877605827743472042897439341134986763479423181989163785924123744186369166588831375960033431726382135253374456655576132808692962901678862830502165691152735673879266268557749127573932540377836691380783253512061295632553575935161819890820890024464951525469248600948956292954614378604063198347917352114931376833254519390001137108710355051614391254808695068438129404056650634357848321778065218163532393603872451634951673331080590981590195176419068886361622033513354719164285492281661630474611316255147367910553165511117112753825025468117879940674442083600090010871254581162183845916058771826073988550258421750942824839874493469082912385846728467472447158231050141668293103235494790308464549025955621941255564920591072198449522103186356450115732670547441639983714624099322977185713504745715632638620640896801122849283025081307038105914510049511980253485818878632969073990487505894140331370914722633320763935441597968597569215638723163742648291568424214409271710028675879856542307923935293815531451371666759213609642741033284058277677363743583417390944506878337925943897331813696024283073525201303378087511750690528409719410350005913182745343976301768596238650786398866044810892479069401761479950925883086444146803544801806123573381984670639440362045773246501474825006184495318254802459294769317554766096001769273584987688749981623804519370521916028319306412945696658913717275588496887407049872931773296908843766516486547738995190597015749123297517811678887759234555032980052945180078474329029671341113566531016828509911566028503738751909211214557784587712023098971314658189443053745401862988462581924060298866190021867304506320522898024870284760067937495751928777282864865696229956396968169146929222883706255901717832049042011412987801004133551050974774978078648540441124393917189941218172663021261972398005118935009709773542050058034441127161392067376008030970689359104642934694821052174611929192110849397784856413650440046539906171616685836964496789204613599054328980781606274987632446666692628515309126350372227493777459195945827131874323190473142657304905983547656481130077448110105743137628235323153246909045139663299922798767257708572954026628672818180405085552225384553547667698323814924656997861252922369647752541326973434207152704689457201859857512813736263225584278733429612872862012029904567659655368541861727160200267832769055084831477223650820019521769636591631854908940395391480793702210289333031944716430659094196519855449476045389910268881063846997681542844317360895288863820004355589458970165253306696374248394638401998716186109567381164510347542966520488984255689275909225853655418237470149849918684753186834556294877531686291370640590664513474132312288096405257175822357812127548317129715604497787767789526755332541419008581949672356677222071360494776703336806154642790087496984648074382875396641264569183871657461554073150297931877365224708587639777746676912631687294337719517833650292957350055502186785373884025419664172844277856745908849506653282782291429174793003720877421084243729919404439382241542719071506241975727087769547269836609811062861018824816334508569296954456932053213574169155220093617309223945607206710913040525712888888167434485732589405830592730638871861196410345006670738016556497592037870609445644874055659364159955084268344883122616159149629180142368227484903670020970760615709333978837170761703360650027104961106564242550576818215181883434370676230409524831707663003313190294104966672924617706901481549551012037736854506491894796134940486503564422674494401298164742476430472599116370413753820490666487048881909757472937633563442165507730739846799492959706568255409279728103834689484287400189367788046620522213945606098344379007247252682838484244801866395493230207115316281682035762766651573153071480708767622226638011146161229597924857510462318951704077647625430367120364249537533815217152954881535499677777984339290725085629762364435179603043901472309832063099616870286161663735324979433786186873198636673203233170675953523440508704422358872708089647369782869168982917681779904479391037580636525852994191296095353269772875994043790348465099205292954696722431278027350579682074633111641722290456928502254706217832417613471282069236913261839458358572935939410747079555201507341358774171446886410431032108881846487636297427442504937333797138631169464615125012696973276271759587801384897173777472481448251227733698793365569306251917672975393105199024889530896092570684355491356296611384061474673585491902600150461016669695474199233349531631962688099306652171991902822696718559352885422812208977176140316499823793358739598536897033331216656467340062300409089313735017395939340244321861652538405849100308177469521921783149247598859643732397038851518234358352670412925827772843997525624214332449831126164290091978885343502948191269620653576666237335760394352164202262655419039977205522713461950964097714454068446662963905705758522708747093981854866701256576090662605353553430859296888469499588574634349449776256363755374204336930564461814114461325644156868323343947212972165003955530912106530741777339286109646945831328086207846914773327059442873877852636632869996493846628282610463734815379895352349049763783171281089096263584140931828257974942747200021906295417247849621632565483732473022663729576273790033665067733848809630060647706035857358289358716927294641477974673476425731762275635088046196208797719392010445448134572434714956826208073068796062426167423620100358400343266968802516482885858031196073986140590794571989865660682302102992367078653204410322399934321756695899602127811898767652744122155570436595525933143918510407283086098378225467273748716818489550757487153396670809156453322661194426164881287152953259948422012209032718475901990438291189728966953644236016178879393475544255223392049447987285537710807316350291274738883009503194634705655792364934582855302490138282023358168342027885719859708760815118820994391212199265217427760796950540322391234539161212581485620131448483479814282350953123152112830374751057000518018978408471155138598349408448845766510193708762320240147454706045070500055225693551662286500294909153330596860155204169500618623606914155186711785797247369928366484334991314065501619764321384195770913852453958148326537585375504504525925729896802399723809120131115620152711253486117533563989783460696466266881164333743382562282220584154180728354065613840521820443473362077203464251393197504373238374129749099976520047507466631107116094628237115531049191102002018739289766360972599587870022421072254019173906534861877337884876828032666517727349196555113784767111471153232025097810602816752034582587631957154960613568814132385333705442258248990831575974433131041012519151999041932902705330167490870835013326413988771455914858302057900601064510769824973642645596828205708201643096415870173946824318999797934279708593071316307309535675791942832125199910655936060802505469006755217774670298127861681727780791150339525962046036893635456417774554577578210263704813173731660585184352844131443503937877781455823541182884348267476381065031265353123571165394554979102528040653237561386793361936813843843259069498021250263423931491112821918313607004135050137788730128625738618880577868733511061640772546259783280431407266559341943355782419866955460297680910802350378538435979102369345934373509748071343637301804309765080680566517437098628785351735029458440342497497279945078361964281186382721599514955569309507636928763421769242267420022258553301897957929272593694385476344374877640436338859720649747618391133799288670882771896249631500101257371325150948956531134043430318653973168941203632187603878656730506657861209479470827832903176961784883471002643995553706285434735580177626787324412388149459000485923898982972187738035652793265009305078429860751662786096872306381630432476597626560220322618011684543784998965235328225243329306875693830019560828281366946884154081049549914823567769028898193478867211838084476032444602838372425233348281759745591826078439114324461988504101565636441218040314782524642125223656656427022853611818318150971445967294469441884276211954618162700376755046141867994468300742289329791913210076665150505805709211288281121639170871650810582660811658000531956614584905378095725024166712149665594069779035281216180274198418936897474220835652992958908682576040679255081798464732255630473870161962801123190501675655087906883419164676201054099026222316175293362802758962815040879088250222517474956315707522353888578516973544854312429590029340599314420250171280986799539643787233122954346354256467221898519693995020110096673847247646495540420469920148502507715003641067059559046344963003620351216735753793954466902776584493363533981429551950488488342371451653693928901757128444892806530011182548368537871380470356569858046309406450343206748375313723845670677115461689257872512383072660347415695540529988851065093101560407630954484091359735465403860250938652330486437257751863487799026186338125939756564869662743757058848380423332184720513497023051303018815028536069091813296418958280811630170696282168970790136307989453949968973675582053307374609089530941724614700187839718582236965100572078814266617270314756129618202387724530994202759976425451326697028136077400503571461504669508876564708666700226547803433810300680503588351011183448189678325136222184576919773487103258497530615890226235250774341882599535456682560462792525104726110048953198479932183440383340452761860902707175924215228437425141119703440710905841740061790731762224132019546685063942553414218605860991348416618757947506929239295227213330777195849224728163587018417947206110771127072125707598369371938388258644460285163743003721019278191286352555363233333452681394285353194008320686366578184710846231062336584591454491075508910227226025175530675063101908664806903455546031929607307962459100021430019643752560934436062684254580758470894751124475058469528408404381458259999445630783879622658335623440556930272665561161213726311620325699393452955314834080222170877650413730539867093236554106484297758983094188771415393516594452305086140693736297648024228417228192511472408452218370423509398254742986427188375654861606748747770086834222049658613899602700292833797541072137411668041699582773713947196008753776465316266186425588598582686886358586561860855032377795462478388298855100412176954002807941837127420877493928036625838988145497127793879290074979786048575108227081732813530853897370881351577308017830706862774451148846538771815475227449332116057898308962275511962153269879569097828531705335374114872939023443114049623525810917280103125469099125623383934019986698950107243559960828833522146820305468924669863891198154822995510175231388194385687665852244468783905332835032657638625719549533973395768140745774800333169078745047686391146196708937408040545481086711621895450418680923673807333285081412062953853364413621306335323753116957372316121585943034333666145096220567015515517389063114811856342830523247601981086453624266290875829221286206398016135279025422847107791758449485456992453593366267593486627586747221130710824371381286631508497670358184022166641368886060893092747832091319215014183627226928594032115636217934663225047231812325805156638211835720162419127813646005819451495783473278853002994948377956092247786854773513500667797978852458663756834163410489124089352444784148417891398233212799870391317200428762039692529967271666455914424804880527953296883994713043790654821484245813872405955697219852394462639261715678045675053388690625055221160357358178482634100462119717613349016068255126996335001939372913934417675445561031962017992075634976924061396760578849765346453284487908007525166792041022500842274199353090469276749393210004143596156755961127636987221857523602358829275435541548735611043341156664808374941450218941748107371183681364856707570157436495441584449228968678347024414150846144976188579035392901567319140288463656441873267364728771425763427313401988142294432040346500812978254487596340990318703052719478793514019915011493509718372079143964283129601654044436952275278696014611934364738427425552596793116373062348481873441772481475102379364692039989457717837917233374148169342963008027748557513966141627854418896700976304724708960765062585781988921654053546966714635714987512333636365773489744852548824120598345467238896572039260642415563468945412376212174570492331778472839255402968283017517874764626532502037467971518661152472338894269959867697295496792848640257725669043681176815750982256598072190551605476923308148330611823064883306575829490537160977503182749150483311839928918790240066395236588295064296070333925483879882064125411725376172644640900621504743268694981912742055832783082467572570887059231408290993753646109526080807965494049592436782898657585226946396605580230078257102454854335452521971470243345550735426864733560400101673893046302595155145128844557380413443972800208795408256656829484794989433300853819205595250208951394022078276820335883754497770512949746477509361838226337927614595774762379800920714511492858911103487841274137765962229083536679380473711272178962295418233993664055797253503163676718093883928921470959399090952461018468661145659130655095545961182032974398989513320820993408972973063512756527625129543125476983612756337670375448250806592971961473080178477903229437371687520186272528247671740482619970770536413288335708570628659608128488451740920094001624353343714670619278476649673589992577164407504830274218500274208706323250077015850394679219343750783187838299081071761251995282243159100659137173036280358817567177818180931670523882517002020302574797735146457780549675369175638587210026578081413965965165543711368051608760014403748547142662155821233160869918595495895624463213153982947222556797110610242119703972827018301604472278082158360406905588437453649415092556987720369376942979332796947226009202094035082751344631402113484188906948364720020121179636744293206308194969332664057480373108176926772237151322873247011815079351174769192905434397271316214129691005524679636823851954858371267711942380727651217467372418570861556303349315938614572082110575332755609375795639351210033779501878563456233798953115563478253970416248306166730448667577226170799675025408437776343826006876760716671463795228014421158098224829907619137831750429836620462758158708711392112283367892919360577505959179842511790385699424869147251891770934958877695823470621424922836226418016429582330320098259117075235396993875505387884866789767569893178520538723661863418119976465756431970410554133875488835323342862139436245795387476518329873411859700499431683501287182338475436996735818903329182974376965207837385484956419859755480897342305972827625644490664095478756123611913489419647084114218669046285458621757897904320636871526668106488223023910243666627350825878972534866415233615273150365132925462598780667429657941608887769108199562288608451493784247741666293746393371573394988688962615082062871846032952874187241121688656059884365028660795700479486434068427776620158631850434854452558641159374634239276713840262519787134364325525086999076748752163370431957367389682742286435292051129183371543376039025719855504793717155774006684460283262860913439903178187049584740255253640979581138978558315182811421857535384393584169111987987942912526986594269115995739599015375936053590306425922838661027444336837377449417808520582929330361908217095990721693336541453454672947039164125251670348485101299511562060685013306232149191476980422691565999390713143511235488623574429381470708383373181997737374804197619782922949643015860636421002657240156429620002238062230808905677609348199957162491116440920408840752906602586559055542031460325392669239042094947154205996996877231080747857966068013482866737005369033888741631103179142505939134137927529047882142961073429998986704782874247116819244741213708461064417307829733978556432060517644970196770313679112879874284476360465203219830823358699110511317623922634915139319050055246294344372144886158324850365196578941287365273172020359412610729674348836289656111004086407164473305957010134485364525421801652090288391117904164959263118086306884877926031126668605278432312123857657612017938101090119913214530838834702753151720954946233915667854085581539340033429852570817040854132911179608430979307342952995001829429859346636341061060144067769749518008653071442724683241744389067524023857706156945352556093056255396003661729787513057320699578899632908825982720680670053820365701661760090756512222835955195146201087100229848203515223427429548186485969180348742165825489996822498260914752780561700821463319378572029824815961215468585261004646132839415043643550848948829201740755985575233795947861091873955391080286683163638125037059241145481533223155004361114382211224769872331228766721303351063154150745882565107500124082237769282506949131754444307186352543707213426055259208279535925991652996252296172144563615406461643107488600098541098945134941851872911945085395672562506381629806734920152632466672200043353658310751900458797417713892902488693027149939295231681472746891129078032417029708606441242939231715648612311057051947923573255282851420018579687857788464281879830210630305093559222331750355513431291645013353566842071178911722009376554713722446461503846983944484350186209525021569235030401738568987663205025073106765801320547879629271168926744576752492301722499738255873977871375162076976638817825754046413951052799236369448090231755029553284236637697275171999886388302970551274455157556980525096949777339902545191885630745934942277911794411108534719076967963788594854488231218116911251914804252982902262980485253593865409101079501246284159114693762768418840862616563175779717115452369581993732657718652404344001719052992661361786439091722349654679778119458996413385430474145413075521102905403758620962213322423819427385971719794348358970275891867018853999032586644992870563958634996429220593312260107284885387248175989722541858518612220805826794423125599848225313887934554820676495431563585256901409636137422213271368670300215517165580418668384631339492928820834586400364412193878207521446555627460396717622927354104541189322617314002179896944957685243504024134943168608857965407136562856250461729231617466189056292211913693381749327443028055861828519744288055053230221539179160252918158481982372024934304530176842803903549959106628967791434343290911372945640892249483967203867991490721704401810252215124882246092158232282663128504820037514162198777410804011283477042867878048279512242298976251764008137926690910717904257702297771495260831861078047855792952408775940376770061331373266600971661832401849363977271665748735005853500534457177441303060443384250290793777353249200849999013704950818763916307671196397544002155228035240137647073730415996557923512779492668611869046354569130910390102862412729670848445094051699677291271308876220931402519168310675992365080865290441793988417432098151665779098074279339582379397385395108102575158320571934604342957659566246897296391715422749244354806442521342999676897511873159711604492164100147672162005214085315896152892896403189027522739957447350706452317052846934025795840644019132107382524320173116822802179209619667294207396416037025800661027366740841768607767009388176804512631009352623314938475382214901690703720277285280054577850793214931973117650803204070546099320542491557841457784832334143965738425984886381434139538687948427330376227803124502560502173713918217945253444825416131390205395794150812883460934533651289201396270448787253883274899263221766633248553531416819381449740465061798636289712995385831398049912870278004040989520650015039216617708600663842698540603338052741557132664489714060267785710198344103055888873048255651990362498045275902741427744845521268784505307159288398200345067387491127565504882049629549186143183510712978452921294369328386391064144036690537756170447527354135566340507586092556895340542186450862605741295545598850430850983826598879018514613647130923639307981606892330432563894679636311326916902338862678656553571853976698646122703408357097253070007630848200561603060565822599140326306524793424153931482852637634802823452843186637822371351465128505111974237364878060153473480648394397130591289738897632219800431183983277919495847487258356414542850933427155122334289279246675941818355074180919074017710343488875378704548886099142100112577336382758397091138702725100582080606729222354906825046908686958952881406484639547156088711273893650017754781331463474005859724259479046304019761543691966681462539685924435951850013042852892571860506546774533779054895407780578023811878470903607147645873259492635117508982460511132960862038781149023984460889674274765868044205374854808028543101994221899418066130643269668505421759533217361618826031085117931833240779553749937309999548900654269051848619107556142048692941108063941480124480717984968045939544970839381425763400121081913497412281303144245228694573342234658437691366345345085143139392458553754538844075913068410684861074727211882206558177177368753467595124160534026913718447960929268067016510350259734362690735549423963138834916087563916300819850984714896426860417021408173024038667654845608540191925810839548633290035561263863807597246757483580153893385142821404268561145032226836095952156717655951196593469811401203469768391172105031499530237503482360973328601489939463304239130515032334423877384728790137686137384077824199140241084403551084759043138832871921594661713546452768518984061288928730152749685079815231673894616200765611363935868786453592036075271043546111782695954372726971716597959368998979129637187457050508380471328024990300989749286703640637189408475677150703168806050293836145002645575007969881312095532579632800825638621035229713646520981975203821133137507889556371440481849735280059969408837814685277454518721090887313337375673235520831980084804876246197072383407195759463724505411496878108679284302090705784961995239659567627343340407383558587338370878233225972238330310976493349770719076435398581823903094238969439990158279279376981500712605021113665361618312841475113012588094688257783362369684574725722102342914364604882760842297701082321615751229015347886088761054779969539986321913801040461620300771521179441894269266365743752830968829168835843276737279236247653894053458119590994625054891419693212288056444626612646112518989112932723825130683027085500171894199775767147166866318329327277692096171344134597120341753006662702348668895016491608763078791750491775649630494300975687211723082537106232272056743031688537214906436250534852517411131154814891572120316252266465806011774151753374086824419671056767682760619607734351513018460878613527645247458350592999074562889852928420033166066300799097534519638731972433564875747248849452643191827389044665228306557640680262018163543117443461302190015007349310197395494020186606977822239864399109173902124507162650033263855247782199965288438620937887871628123177297144854260042792906707867510096214713959844708155524727171912499330239043638807665269701632106117317458021336630938988101238826301032127553098645046761960486596540274313494756508275880086822106247125211678665856109460964169084013603701062448006269458766706874803819965985349550640339834400352428276532709408461780859533621544634997199963097564571370223354502488724193539651654111208126936753447997262794734954925367066522836782470741387700586071008167642189663048503602402125285223338032966128609065201553554087633209602537526434117164368570116810893569797019849742270951757658708555039074099073789713632091960214332521698246579439920131820908340047833036680477666358606643379977544840919839816313451358123166631068417636841580969647758404258181427976843694046241162156614523990437819017641910404076518560900123413685612342790119457773382573223714602872965206729593473750141677632529625804602631929220952988243434275307835473119546583632140302213131524040196530771117161184403128443774656292069668186413656020210096536196458387185935757754186418177271133926231477548011882639840350431994676805311687429421210178830590853827591484584433645504508491670588981486755508947314602180932307463135207447757053001080030971092726547347108181218728574425083272058989841062493605687163904379425555019601403855902000101310665267732518808202998361525295523388073217375793521430289485051882133465817033022313446336523899367396353217583221489611790916873209740575123744522707323403683644326334681409069790411421717444891830779694481550811323084756985406942594444524525308860679928702896122220760377636074042189610063857737851268316958359136988649013138747035133636052761291937167782375290930674121809837021549287061722651661679415154169977410376641216870617914566174868159860793732545769915348750543505435849383475284417871671580180350846923033769374485623885098805260233432251956680153755195794797469695794584475662798879418716585893413451939587585803546919996123700034062937378125895033656374370296475781084980683929778451907295441088201417942585948781855416200707894125646061783826943928674027469288425342255130582070033312058439487123406233105964007425778603157472732809087976050111455235387790147412199051670176619344335789221391077994147994616987491025495761737123308209855725473380855761135905204370750154010177102526968255325156237011627165108936261760331211148198017120356572167846734759039886303688077075843107383535348732574668212471708072724298817218948582956186025381436011582928719986997798506313704309697642044844733364545943344026363149182590526463147080914401076989615702180457872168854543707952232088583017787468048673310178069155714471643127164115363938152044304965929534795996548138533142789338084446882854457431915426622057300542543227100604670292827794293574376904660395047618958964704509528818226012578813732371628614739197202278556573270444039809706475070618802345522826880991041299270891327239493006518083665233120062085674055562830530078145067784341957207607747657872331767981079306294820400995843022358376233429355559783496526776050783193225956987829953594987478091616218132200222579556376227114308560655633590281664490841239996315338723582189941749157653994028102772831431228096943811746375977836471188947634842046962097600467702013494786151886970983917228781642109616816331635820306869623166331234789606974049958731549993292731598468991224337236554900782139581269733616868642949721958786486193547889689560646708910264771286831875012164328903223514444566984395648017886600335252585523029910702716417400857586683194525957078487762226112864020661293654987938497730450283509390025806390203658717983132420312248103545852875401066831802811130162090408766204627468421881126185207101490586571583551502378383941214521954381861430805188874047116322124587357561779478936780328606552844262869986817298769255637972759355833708592869756119549708417130873561342983736300714998464912964354501420229494370190236768896404396251604241834501014984127606118815701562044719791225427176254426373804796796104747148853051226479094038320990481207285808337018341105731774297883368632899221632725965420847625205493640357110253874833226689234477902874317242831709305573249205284024977870851554782370526468562214693900064423472326106158151226587624678818083183103800460625364411107223177978593881289370771584485685787476199369953118032628771769291274259773831540647643989726943881960284765233657019130017286071410245213296997702016017914680241864123884428447931647508751088798456542641390131882393584854577963780789548277768252550028163809448236878189233393137096083276370540729302791083472107692473268106921435617259161043647831017815511859212801463317238793468767267768361858130337084043464920417385571520493417229121696800098973898610133567110182717920803653779813043069961705735370899279258675749193724017601120759553432805838027732098852182012260099090123810776409170719705278935192162723157503065977281764388801190716469018832956649955774249095143518012450064597948554707881554505153853585844040490261461526028465953951888195242379929146383924800169020625283296295728275804221672500930143076291275303106086848220251438296120835062513592194720760031000921320690922959231302757017587862136721269568984241736308095343710115900545550439773357582205025944535852709067481205724772460790690290356567504724907789258632479343744149551318404566387830817643569925928876925840232097031129360920341717159388934772410564367532986503376458119224284817252585937855904713104816623711946289138541333943743164240357033113534400655983936935813569634583003418459912606450391557159929036937937434945957692145603680588449637575618499905554944131461530460752678059638779699879925428998283587928907656245977071293482685649838866548907126786290206562341230281555061805608383991554361524271857029114923585642305617226730697918452018554716713104149131208387200934616074940611580650143702194932410292729349483861486174356192517802121113621318006762173023688219293702073733142578479773311282066873152556169182445590533650606008695299359236131880828447732732687534625381725665628272969138336425874265133373017165105777575339703191507708652178318061881481571199348449994568979468072723332075792166777918825917806798073627869400346572214580915565210860159108120018481331886200726555960838917404145424313952217920682819541352897969345332184829854093662323236898046965395610037081651069469148153141051666801147405319801015116148822620380041223638902800826983050507901255250122483053760328942585926692313330363910118835289912343063262582522016761272447374862493411327110448196844717309557341676977626217756700152828884088388685346484431302985541833141955565807345927003401124104943859720455626533743439866401382542153815131479639398600963081177920784465028810399575648339762226424294064151604844661055899543658683271338360187977894455409725646726580278329840724260728703365847416797939805854983362203901164376219315564692187479596317348941284304377041833184165181082664121211166412221554311674129963195647335972481506885973334311901388051393433772582316617259694274931584494860610319085871541096196521773321073931157241076858348671737946111604828262795196489390825380669512983217754339819158757670547549225681899365107311144657314773372766981332410340466281728125954529184994154834326798081087211995895067176123573654123228318358565418034001539756626906718573731724083592658136081331081726120314478683026834911680779670668847004305510929518306252277707544160458188836706015581323058865304761241227173968171834317219692707494206560547418468057471258687812736688737352947650862082570541849475772984795301562538910745479592893630570565860213785376062309319427791022631188914444649324224502759544767964807441528742973508705297708304487948398975148545566228699561678841045429643581496617317119323793246289408059586833234888666114573370946513776716398236508921618166604193295109250149051895073130635048987484938345840135498439570116194001800723590899391116599831666340958049251299473511303201403396051205571003052632248968466495480607246658191690182391000386452962864073021150677863511176057553104797546615780173140643532231633302667110563677800793773914254129749176010464366957101068886622413312147097824686921631252944759121652556878208483137941491584315513675665450467851396792403266587628229366395601484195915255490061587607974615932110434685800484740132007008685670505225509493795217009515488722194057233223357260698128023208753207408697185497657067822028439512902762205429967275245846254829959532304218520539606372476747886096561555710841710315872672921402017073047523276199921632523730301628301915058176019814320883999526633660813517463119555062156839523754766428653447993849784702280221671428346025903747909836597608442426190223392691920697010307242109797385465757725293937222213752104977798929628955482705636929615558524802434186480085103810710040932482781936169793571524750520852160264290688001496266205663683446021693243560524044905489337257144260778751933981657695532004889596173604618894174971311029395192191923342257324991318362787114267163671834069660569945544378257591846863800195906627506870358478278732621581818128379162220011893209525012526514386017342152593419034495429532395815256332185644088292258441801900109244252190881101124625925948504386946264677243464342899859224181762970552129468805098014913781011145066099814580025497085738591516014991470514970987275460587098917757905207219714449544158730954592157649438698164719623842325776012290761863464442387314375010478983759076725875834192063749313871909477205846129081908601680953697989552054127919485268386467534044077533087113693553800274368947061143358293540389800685999907560018569553716570482236841591225385947107504155345871634930938715192487058956461730436000107903736351410963579063007918074590715979953242620477388558368970768526504134985461517924665761643021104148475686738050538546326396897616023804374981429230936903063924978136552407172638630806088388964929088977215234709467615460107475739060172634074870013450613921341588954908161943188240165339582003970448978192440519261772394169260844550100270650912285548799985386667009987420797555546374634705088640912443508246526091132487751657749252825838976049825664250094800140344844649374369124735371739385720270190894765298391037871014964049045385571945442151715960135962686229289643791965011006436977675226179455082352379976564318800943691095081699082776452079612117337806984232980348346002632427003664611678234953194450155980766968640848336927611876014332946601528323614728803980098966487914776481869666162693098560338959394334349540788650227390796978264973178035636346030325819076988720745415519294950546741142309026034162688643104027217938847889479204732577402958952778308427348717008152745172550569510046127302054309085748841699559599908513153747701279772811834894315553519696493406677024899736908451202534312343270901987744576366127479196328063539719589372076419660558283628829765497844081874529995196933706175817433862549709068588352821422573937429783336504191672534236047604400730130271020305830413252773493419624215918088115746368164409287168485611850783070160121182632447810929293369712118771510765162296546338269917525477900892056824831804774511934979746242571161798687650550861760000098507323734439051001340897856419039924560326997967866677550785647483948883396655553788926728443458976160127440136904274122394098086685315248680345963123583409287987827854638004434055428334934427852503821066427047513829923572460068199929646049430360324078338192759518817457266455411140562037387958891263420831153330251447574763979318952156489522321676222545434492348784553120136214278992282884170974699504997032285995908358724712244004834466406301383918558459482742835292202877859861691976616716289509240776731423398355875753923455321716600445116869834235644612523961508743876550688217334817315007884945919516525737356181385201184289208968637215033930923488446500293489234346817569988510515070500410432587652421338402618628834472093192271554730526475624445024197707567768941575518350203809564182298336254459429199811115852592150573491075285002166045739578118312950492751307370450682490587165933569446436382657686646738173915341714078333333081579636918621612881809790472456041092326136670233047690853403868008260283068474203376324242643489143108751606014966160234291169611109200134287039410879685851887703740976536982899827956473602946003882952843020648853954783053068996787067393039858095431476612017104991211618604925680806607146538725222400371122947595049001415150080047466533259912790451396247479609109934461963949797520963020634944751262552135171896789111967052547112366403101315547406315969978399067081317662541038731551811158371307199868427532704899417694888340775580402774910245552182607781217719777997767231942383026461772531616188176288614347744001075300428924976204504828916341713476583095530155640420906476678253559988338315149244368962125643709177562818032231969118212599041150672494073597524534493367300178646034667770462487023114699847308057489237800997551337775442157790804749490240150756165278488321148948777790868535510326651191553706577863846342263740036192733316049339484008805094373224698472938434966191790970964310308380146987204218277944797739412538450820171127079578842591368959259761118011566419170883869846822270496810399567539348914199179471308436792602757419311163186289530906467716729293460138704025490796370464628582959295052067270656331824302594357564787733707026920405646269840740818045016155318235819868461688780933032879503644954024287097303043835371858172219410044935912675504240888060242330117691170030283302346181278364228511395103134179518865604597912590420253935706761596321720047167742401352920550350893746316092231943537382748637538989679865111906114278844503996388805123078124039531322143457418724559111648720079156031679969984248732139068717665391146216263245423838812297195692047551704728919825210058720129135642680025753073629438971280155296973562791557605515797047294889215731483746944651217858778771200777813326398091516297726757356470170650166959682827352071414785658769974987728592981779171024172171615787554985196548004547061072966681202687538124222639214006477379766706415577095215839609974407852912057863311386490804714408668082155358876975685858278375171034553852267821491780740374622164985380042692024673583845691745249471415229583474353839036682044472841290649440302114762048141552801643843377061953864133186093646411060780575776866148327281305708848673351659559815621761763854661695221377253038535889434831265424456245912457903878716085299890952512192536014139177545746240103485798520274091350849265256641245006971800325233980695126204208391242713948984489280190522940291074552914597620194094178946222700794163480487084997276111270499732322393776550019961853180655639855206059113810803824385392208976958990830099800459869722199483056941105644103763586013339867316291469764608352303909997401243144055788797261157017206061319037369543754373103810224097790574587526109852112116955338380432964435334921605318526839788702176110451748407165123925579364467594211152495059462972239309704936931770245784659883230901945539715785796633361283783944430638298097854870566256774724713993046198132118261143167447702161909977689496791133462054741217452533968064419504403574954221812195977954700087141274120418171326989914266365426805617924618379070921981886699855605039248487421752949436031852198444483258601891731161042615903138696233127566805320382757100070006976123239302657097214600101202710823376433736951111361993873092228722662459952743868562718542800311878173689815594614202586386153367670379535906824806988771580887626572351039314800191683944540826896240185060037110556161171280900569809153997515259246216725944818467953164215225797687497371170446214720876075555160237732678019527256381015617533679833670240200074207844357488116749895919811749473557638656659154644559226123564629724015031873252090377217846252191656271472668876814906915995251450969390562602913860839783475993529808232357593284454697304415947101244686831731250316138931047945633645448105495610410939695933524294125652999344782969525724655838098898185925831672438139218408193051802103070529874908974140556145923193895816671407201162444424169492612027817556787537487545173151290336122140780169777103954131415010338482663848013200661151384694481804903133264498463555066571065175569740842665568138463140533196571740573230165937551716429692263223344895103769790429000940463808480817189889945531515378066330299744844108414660387013968158778092828167112955255285072329735911475347290548471820811427478920451251810665142886814234222303827446284488115185882631427726280314817856323470907107698242661906179171491761177827641816644937695023018943901136212568968289526335250350485783404857885349310123338609749221683965988088177147500246579644168705494928929940392652265480880740596344220721403698842298643937026657850884318053296886161634048805905815929816015688394040573689099488915580484702353753345819251876352821747475591415295832590840133881432854690497754038440934262824388146467280998905325101455151045009305110775043371496042528484866593115531339508179695518828032164272880641793002462220407719333355486962813733651832990800703912419091135178166783485439928082156223760849043206938536052170949130949333894676971583443648355946124639050158919171793625716525007773914006207868276932303664438913228837372497140987277240175414300212204864751287374737660485132782816000598357196131153052709444718775372770226147714348784484453825475405185732523206921583209127924726637473412251236683306537064871657297658516647507235949301456508997981212768652389472627619249834211098155559450843226140536991750396149831905585194718992772547763501555185330079406520889852212931803511250932648869381474293539491798163953419127895269481295772778198681031085898745390110545745548519343525588030390549356498804865564540731674587900672357332136417976300982767815738390449292307226537048481311438877296719033923233137504935477422731778536563700914403409858216881350240429849826202805396795922931864963583346373089551904279432155306006269651757365387824270320748339579413958293101293046618594908094185518519413178456742292523928168997337031262468912939877080182305980737095763034735413571184671987979162677837629570735604594150712459038441450738101401858232575705176811518797705714703937540456458074747023041912538646767109899720183719454454226789936304482902912211069344963712171917941964802226298276557337020703107635275247052968370509007011865217418286738288784818234791616952526263420981870646445130845268220012610981383539668347629989302434680486217316922536581792340156916340526003701729857434949696147378724568989815582922044051635404893578122998078006888638199781609522610498641228740144316166671643745966522270774749857502032371098805969578426622107016993897121968288328224034134105599062449362312087602145573058989972964120647252869349041191664525092391156525450965657200908923011517529192173367370810276964949003092695702258220697484208031839078697691246528768290682641503260387378788727022672484723554972195483270724816335313765193206885963620862916920984717169098263455783872019211076501369504284059079023889404843196035585521685146133157684581887184154356162851506402134695872346522880220409498903302271548109969365717949706871482991084562265019954858600791785942840196634340817346887426837956558290455987195752402809442740224145327449492653836011590313636562479241997612271883380118211507487275653638235311175637783123940371643109849374880540686278078348996205287369192263718666018236969366464264706441609867891140733030561346516905399142005761491187823202292202915278019810414337746456306313475533568078570547520866108580172507371864263303772530857693637013252713060696063341675869066530848031818576804347064818469036475412772857606953583464578335910361372512102845224175890950825794081882583587489859963849804611405361747981539712196477521032371785101772440237734644980989552649178026432223761739153955050488817454371465116677883332977319478841534236542729993672367812061536237197586699658494645776484169240063989330590731884273062031147777830586433469329151448684320255604349342741079583966064082438102753370640513274679614272634755335955139593162235585216665454912728540747459907088532625564045427493142787089595121642930232425274661207904583293830838554257672331066491789424311328353114835527036739465106231088278292263830822137273076302574839177173472117760888513805181647369801332667413945947409694890067071853100887916813471675065132935018946477443371141864488080874392226220431125103187650384797327879793486025235071171544105789588364616248518129792297619920750147293716859815147625652283669928985575771600548735140542488978239830640483962011571636528337487769537411934593658845962845208942839308281529132347274226328722521178392115561377946341341969867070810350347002961234086273738479568577179443065340682801058595451703172547720628670989162981868624875920936182394036332865086402404606346970636028795059821330254769047486043420416228601285978652574607868346004471125371746600489379834689212335730928674892183688944258506373053899896467991082379936957244820075909701321104434217699052741306052325019355862129851809769232134815058407568860521698938262820980652075232381448263088038908613174306755335822756193354942974046361507486343904220967026126923660984737348677025972546346162867068079314075145937932085316600119946986353512647311820137941252870531242653576309559770947969589597085759981898772607930953196881774125198059789690618644955804931628083023833743861754597196449488666757084512024019256745146385185361919239030304045614866958344044614850529257279263104938829570128983053094660260133810053038325320465018003686598460192245784269362463491598237771955480408191617198383038829567481595706647201449524230412271377975537636303261188666519413174099581806675931232440593184022802701403176318834592031495705484083228633680085009336463837189465549921189389449498645553070607708521205596206841655567094491749722214097308970107513923065003972312068594767428649828393263734533312228426583066954629326862721212747676328446980717451049478454224940337877013064557439599638389241569302255115152540566658533473389953182705563728463687231338143145451680637105862576816544238395088386743386357194670681894110384280065044049786564625144816520112317719919456841982518412249195740919097337932816962652729195834230176313720036894023287013878182229517625630096014542769561795928551105457568986903612023162919937844669398129887452656051684906452997267472884142484919279734615224872663258568855474541777443210721046632952327047285376541567262604154541729406014941074590942655200374034800098607706718597614847696135506161587197759023134468921873283038649645598832381478172821382344258893551132220723139050183051560579424323540913038081129450684112459545052126431023336523148180134091382777989352638089979274676047284017553938589203339518904628490237673639457151721575678218788843585385828307595333804072200786162878395180823479996036297566510925453208923147237520336412526679353529936230901841184211775597197520782932980500232199153791758505008659914939649881212973309698417106374528931396959495384923253137364431714750364014358522547426965798224782261085303498943022920434370066869158710700012614157471623946099295477786711707528026268045085180245985934322844318652958961739549779768687601665450536372855813447978787372925726400396318265143276128605275058502711231329911988181429859209382531557842302140121101260252475543428479986613660742949199420807921649447762348897489273606323868542316915606639610210382616354119223478136851841025386685992958265560661526019152482991686840458639426368207580018659036628444780616371531136571462283392359124729776359409437543318117113098965351355783905077186720205227378308771621137693157086289404286075486716857368715429238232303191903943024124765702141990901596323604806011444635220228903244174981883781338269589879234502179868710084894610680818303563497813271709908397331791505297855131534719274059174113920335719676976525959639637617927904194848856502244668026969548157801127141777705957217932577055802553128081210051021108977948071378373585336599475957244596737502564976469970632617231632644347315145174591419903098156381202854045770324736166097848299035159046613597834412315188411363677434648427782903892288798341893078574070660572344038735798222983304835300794179369991431888245069670599884137152707977447339714667873886967809174630648084076405927990005490230526002632406491572478398076848757693546511916148491010618805145228075336119375282550015148400551003748833422348169520231433196849984768381710503986106415924619141114976953180156166144133269653201273215609574810637445838426309480423363596046243355307453542713877369881223517718754418266269310348148401727539006156523716321234525594291148388824618384698765981367647300847864926715489471964559788707156499420705539232661764641866904654108060054191487578184954733972988724098360831935300773225149913521018258940714810148610870242845283662908947802088923805490620988972306609642186408621643517256503359816707437069254097501674459000678845824779772283760565522296288645533019369863499395210609854547342995316186598360746373916717042240955353079383306959960169616734751953092822605971614986559706802003880356207338000525483208204419005071227331193953266617275758247297825784574830730910406100340914558811677378968649520649620703613128444681856652939298061439775781020915339029762532193513700800436217968365755827525380169478015675282586749420046656666529830893695862389228546219485015864784789984042581365030952189097466881946677573562427119480981570404960779854553178941838732534431765759271874964552685541551268346724999285962337907314253684861849485140777712053113648656692808152466805291411171594631499745337968290367454731196306564910082587605568175304985520273203162317696716861287074255180849689388395837243063924762261239801933942918648114369785581700216170638238151923856167233819736880341119789715791161474296636007749510974217650675056441700215810147458042336268654222266873900145644947911519156368193764167709056619980333486390266532067184018808558664563750063563968978070327152498732134096847817273172067647192291439755392158621079340743167265596624213692597279736142040754004193342646515761509309223073231095433099336534149555002828678787446847144440789057800671890362529761549157149813999785225396822243480184937201102300811859230977471084663073415173299116136919367123980730407061136766210176975136885466427609513787585759507847601371314175415504995241205547121550815948112661571429228423573145067183311180596877219914230315236248334136396340994798768702752114562650153638538332254521195573303076309659860694977954855172057669058265453514380472644594865868689958332592296318645396653716383287596429222667042083599516023288952764727046176079103415870942939977708499878627388543060120196710425929651350454654632177989155489611434368737449829704063050021265651823171043834218509991253320017003165781740487047266994546286711572071509500860545662360237943316402674096613866516617796300369762824416446264390037217802262804079397719177771483627895282641992073377171767882250326959074908182644759665669439240443652450543333312691265658443767431395040437698420294158825430556416837533538918815907227842253052060953877708055865150959026190891260623951413811078098141573563788662017067985484480155536547962911025503302945019802527122981452358892447783731863576517050453385781561655452357677837372065369012644950777267699846681152312692654912239599888326350864033265610594987079173081411113309625460766691731490657533637529378777510118351821652816747136337797041833563639654108064842776119831730550217947987241975089140197426523424135095166213588834055325013760835203317952381071322475462408712286604951210278060631686752396272171996199842361990354293142206021816600262601324341767548724362987340509342400678693198150906828727738581632855823997097103742301951383544898329777484225692547439899353492758135344910208866386684790387343956819092389548782775369616729582621401910259051063067564143577629078975416914210761719483622947208438679504311085550043474254789829406047872903451989373007616107777463369801465881675070755033353289304321373619116654023415335574794223744546480861330659350896624840268841998528057850733824118762703572858824479439289050725597680232125497998752578045999138185816516605585553533252673709873573319436439207522272491472652193532033034891561240003137182286951235376042424247665699583957284937566274482095929009613526663861922320716752932064432074910617721483495744660895302405494928739158820568303416360140905744706854246972727872638563256873319746530739767034884185847105074567764908670247599525266790318288340269800164398580451606343588049861525269764335225281537293308653876439132503627755623371877820301235909546484471664354942380445373878566622600545575121529811164133042825744660015616887076916211555128084226527494462929957754382380341436701077062330533878300951804165588193448644533477076772688732018152917450488347788498984495964526030049964444437805051986090724893476438471952720288864257120467471542962161093717454064479474477472095834773284282667992321982880226310484157908126135798629170720539422187431652950333863930668734989263205457159455738926828002404847374133492775192936311801753316177659230702195577216150728031831085292327682194960657543153620949152242417401010451695795387716869721963011846839635585852730607203770788176352635668724698856384427839424046796249645463911920015970591818583284124232829082535490716201085867974527294296343896381994602734974071631226998479370085777566120410334661862104752686714182990834241026598372096102276595226850762850366081205070894930277954305739014892748220076034932663463994365502419630981697848858358346087816885478482319350031199399638250168582374159120663640498958477337182628957234655415704395457808970393175244657312695164302883546133738863416624693998742850775785009180882896184881402735952963418627340401433223305183334972387933284483101024900626942749045672468047285617174815407031024351878889568125622523496578533936218044565657909029577261873707139949358571141840156282329231874482188663592766308977820069793709346756409564721510210012454149521976458689053876862643137650492409037050190094568701465144574814077458269306950350366976814767557151984837237038679827407783039120085241113169765153827680165297215375433145266822693841612973950765256707459274949147459748400429479955333386094558206654935910105116653494152026649181453920919923782415267520850002851495886487003133592774830758995476948120106499335022970073944659986973577223768061549000540838091287594830315051261304487204712258677388784394276007543336974649453824467759673097426960822149623836957145087256919250921058718058051521400048700578780718526041477354949422582795328984249141434672923685450629392368735596540563305679156791917648151725437470277487790656108158582059648368137364564915678881504075409644130667150674267594942296937440315838314273609002063046998726193303008274639657324671706085923619991657847053452657451296667913759133743007855289111472450069236975449424606216790463949900319753511010904815798385905291139360953714226156759850619669576657086796460152504371626144399914204239682547753841664560194662849498395513767995185618576548869259441283519699158056127618648206601147994775157440179305762848903393855747183029621145677580693017010012346003292973001214094316340471614126829306559613438112244170368450236877689569973699688136814184115357002491744187295937377765976321691088709833388352690443082082678423424486764516648285104425116598662902522719716261440240645813972468658865404412744684641054843366658533178546711179570344105386925401562313965203903556820995870519898574222938147914997488238486791218753486639877645051844789352844206755028061729121643838750112794908044550527866227374475020530534241613732717280379992859725713639087668194076508088372154582738178798350549121213028557065918981552219518623067566447097912102051218467816794802493815996971078104410189660714884324256214001653377149797416452483576831227516191816762825795985084550329684761775233724358582506869183785563678715003309359698961740654864414648535289400118744959435557935465889928815501552513651663650731909352532052362555499515703820618968243340232022139965178310737717596933919008672785361920657779321777488387773534353036302988930163249754978954003669207831811585205386012709957442779420060612616067400988829551464193879198680111454723580218922465279967031325853874689331164656133770672440045675594377650780747694758651118988987243145813023144288801213964593263611015664753757779696533552504324336442275863094117647515407183137527656495563698942673752288087773047730945275202012187659818464601539218194962426824217814995062595615808311705785891993658858794024174588970197944875713315544677454860305002806782086544694750247109048328746009112817152760784472965905456959485419474543374621177272851273678568522561235162396832767159665769964582917469691428331061456019518553357926533483884239372986205602310838957223991662719433521589244652871976527827758791575899445786845121260640138355268272634673618127175285363035451579904200494738788780898136521917538869453917569932859381199034134084356357459900356758139753288415237761144268379473748798676065451427965217755908863922363126570220243608351236890522529657848331414628957729942442409737655903819848337874268713629588165442896831090671239816695220287453355515630485282392628642351475108369145813903729808386888487084050523678770862738913111017310101342640057892250131236475534929341957491352177413319307021351915983756036839032808156149248777700841420316723005299297978409527854555320851818476407527849271510444933286028541328552353643535667568762460416360457899870149990461739271330700398193639175904710260408353432368262352915913056044028054711605726500369746061951188999786096866098098471611829529389738380986085343664654571801334723319478532865397636930566321866610319546000819248574800414652043982970004482475592779885800176694143482243520419833071789366576646887678969798014111934603333151132705365926548915215758639790709178490570124946550240211639675866782597912572728048569039455739287844882144077271596024459770385727277289702383533807998602003063439620368238751628681958976235456172624195314526785586161301570979859628042831439793562773924291254501095823700736302069558152720971245591525730338141955180917687558875842195900261466468969899978353541987122760854973733741748145154394586078706584515014877130150274491891775648099414990763524892995550087709816576077906713576705350079261448740806778172310589512745223137990408068688404411022576682868645538562517894662885675914455089465924023652666117769323744316957278548322397423721987978103702323380324111750918471224235928574594639740004586434805059663535437715927035380761014915307141969183075034781251951600156973264464789760001269982553448302167340510328649734758091062970741410530899210334986292810497606738467551580013578129184504064227007966581360907566664166659326092828616630185848309512229872956086173904966100055733555311100358662454530733307637974818889039318996933185646729036703651402730805131365134280196835971582052423547608290571736083283560749829007090781341230151074349892517963385294830083007525201188311093706925435097253284156367384964026378022428307303750658411813564482412602335434965064195628200812490202905856490518332380929779074175379570916632961299355293650984908839229170283168346779833427211156853220032441254151935092991589950154091231507929550183790394436227832911166066374884887344006084494601359388645211778021626085499275791634487762524657163610435380439667242690237273107339906113550986358986544709790037192907461840840885424365578097258846555153391551140505065972444104729463823607254138901967889728164933934668271175102235143327949052890630976773665333425575991818727814640464254974581245430863994214876452371423213119436523197743906893372597319168557621291110285313160047610532442335887909063627327922205062666401304259973791947631380130461353029489392593034435842899656876481045699878275880630059008486527025055441034401505857086103818319140480431752163917647697727213817655700992509999728654565817299833276970714628649825606800741573252663884707582151527179148849472884509130644431715538650486039909488741285242042035976076144351296163424906268972921904875394331965887574258651389016280487060500198161624516866887910253844542432770313696830012936421746564527060166953078684311536120019505487234957154763594966341749756342426829811942252999698622156751260250853512820496296892598924393653140021749394570513120144755365105774939341026380259763167200936029680037306275826298839374604757739794546671251707547405988521232271798650602541474516622875194414666418529171335385175540789631213223022924009951225415920304184424535813966258722091750414504983469641118796882854170903075846311666312051499534395508187896311179522098257436085574495793202539726313045554107055393675169101407697894552800109229510959190830811468153629635915819723060324570228473450989755671540377988783940279380670204367028757080348042714277203299042610802158013009347069638989874011313159218625618535620562722877343356553059557959067642747756794094031977416503752269320633580085922761760654424928265117072701118465245029318906268136049502907634160694267184040504834284718390910047447096383815676791353138128877782629289541067753074944412714639628911214572999509593775289729326214442136172689871608458196088492889675474004925631783842950033998355034129681896709607409889812078379353436384514781404205997543471085770855835621875981838128287325664964825987450036014482326714582113356671536168148710135044774490742305717402574193122844901604555039429761892867162453109158717054585948325845899537317712894919215789701098981914020672870915781969241988633031408902365146740309081506474898801954005538915385628531565381529182959159284672669402917461857665744275522347756023851287449480665100018658701873449697388369145433586042441860979630833140411911660542907673406534289532618210548654561306160639358755587071947095398137607024094505873312177444097019247585185495298317126834147999167961567205082998131033729778012533755841076751919514086945878809206639010982464669008038714661330271658332835310235017207569008937836376719471304607010714036949141276535349130981546313642108023219301962412601588538073541471110505562246957754869251740059549747554624754366815209403118917383540493405289189993649551241157281453066270577667652705649011498591127425924060043757823617336249862798897759745011988141480680599945028202086518604705090098590423384148877519443001017175726400557773655327589710620860715642472568242925153249341690477929641564107993901563466198710076841306512514923109576544971851475843485443391697863982868069997700816176610702455125425615424058243448344655608124154042177310263344394934766356818442215876809030962650536279491474774597883121557670392868304490207089251803541207912487216613180407869757412153527506245361437499029519711485525401998509267918258036782657698028248532106061511067981231579974217401635046739790291445294466460869514373371179004773415033536777660564697433867747203367508977083329350968912099922146368895583787969699858214486120725002699162658740658192036749520292437333974497758462594222960119540829417274926480685213284780067607374404157185556791663960917785472577593601723304189840098919290434859917214022398795181213779674888758954985914228757743713430334544835684991538366826557956443014258363003007849320566794283259665322565575117680777051378486876144243082449339718706025786136467126263053042523937759620533281070273860736352345555060844129215900176866592585557760340182057822489656328596191590541245176478506942899038602073653408291549129764434803830110387813050819623563042048934269452269827248330008288946889978189894139339667198455813186465826089412662009143232375442216218840201994717546313388640034511270987953242570508231294063157609250618862253165289255059446054896663487632455640694798324333122822936853882362871398531842219826717925168661537696264711084764982760871980698612768365184976231734207316560324934285921725426374678070911098347534224578483272104930940125920370860661498185775830796499397404293902197028438708618598601232212248625651229252126888177683879734383682888846975395436450585744427133446411441438337719165922784920253025842739113276488362299318167235984332508849102800787001404721368453077947933125793908310217396904482271232532445714718444322823194107687689274239781553869729335872394356413654987470260473758410283547809051283882207947990699418325750990408816234065249245058714652585292228959424676583751909895773880567495769784688523176291166371989557810228868949934062055915979942800146891992845884084439159812632119267577919904125173170045903497795977601429870211218579706219780931405975166820819568997680076240851993138113657626471474963577184777176294034785798784103772589859982010624990431011945997821526252121764210365079541168633525382821534985830222742926220747979289575107813092474645797171313006929129750781584364517153947818107872075858114933969684078117177517087841047406535465256180996477437435527774133946578693080567274325561982868278635074730806424100292104878237767028457794652633604606477222119565190287515575973038364598881401840779710076851608999908023352253307752326274853628491381267744859877208567452650896604226456319880119561378696350701925883569147608913210174900257240588664085591809133287925949017765136257654416834811113148852056143908298122750610974633361155466492254457531717749747376287139343069304240799575528744939690164496917737214558413320364274102575958842391935366706235086877002426240955191529720596904606378897202289414617775602448511235546618668716233153020645910610362671025290072326336309498952548535381649771927438924392694479046102624892394320848080792919160117035482851663932013126612866940102917535086128286250011883386025954003182113976617960406000792824243969446973823615103936851832361843279611584784048953861731528292138206211369025707455341544143411236101943133790371156860330308130222923770173788603080694667645212462997306110070577932739969221260119361830578509983450078957336332888452157810247221982186767928740523639125238694553049134548852439321576795783828257936330076687032982699943651200519284983390339538964895368467625520928629098688134061498995246631622165578269878820707140215461736358468969690441134646413066461634659879885973717669358878840113501218056548289038012034181743696434752838802606307365648878894525122629094535598608018642404148325668390177499537769154221925223639673958280732472977967537227651285814703098298412770400046955518165887756417656324146902494453532350318618316477932039209127541440127363389696463646916023718844059568976328992560811800785945455532747297252252882042664980979205529310775627631855830454084587945102869417851960701959483138832626424683951700499578129770046618324366257561994152244621105482227339501466438019212361545518041180774568591317449631438842298146598224676396145178857785608538422539536716851283136318106093493230641769492914471017151973668319086010605595178456829082599524657728438561297156211861675075441692184224534832847727292825693557186413933747728595037476368920075904887131572990107935903746851154029206868370037159048867836451616180410223216540685156983047992567955910388336306557244995383341177557593627764334936120654858133941407251562248214447010752547255278826261710470577269303680656007104563527373486408602141987122278581282640948133497522193979665922327510313527295923080161445346382137363834801414742201905812603997217234795513709997091483688286694132271025931271497199804537927977321941307079806567495218322734679579178337637044653037301632000408659843309078435361513736524448505023950065953116596086819753573041183822727371486526915468052052810997417122380853704286114455611237318809920090712128467641386283700968796644108190297589885181791636713084114989455418501682208837829568006554883820254337177102017840146935665957381134083373974384208150622282943909255638983499569529166960578568452024770047537399912668417899366814141477857387891436774552638162811148065987261408531333307966058080072337997114058662267010483101156095938353046396751540160471631699980872106256768710762893666401886537543853836643225746222177947985142270377746042975629395630031672493845424201682094095596293541327265730943695369334975075149913950522466976749352301998608229705785142144004491187795393975444639500211755158636874844876670653339337340162265254400116846898689833941539263576447577007136767885998129129038415409948343290747084311262682608011378077772203138209803792013578429896381946647160924690080492283759397365363006861244046188938665512649555831957499898552497496982927996057663438581490693867750287352429398769598265486698735277653218991570746362534237469558866664846946852758984706951598312163785769541341505849786934140399520195796187179598722318709075690396708437248726200870534301934094936638534938906085266582497531647835048398551154163793039546972518093696076555931187574169509778454533489543370539688713386379332227201784822930348307369166674426991247044353707030062198348905269567720466253880875118475911960706641563816683131662547680625515727698428315751500606715819590241224631534920131739403379380287374648321733305629391044094522534688497068666587428514484078313612894805075626974209558039974427906864590253218938189104742953333132113986907802208870554625567058439498782515836058133526026908871723580960658125403824939505117263312361227805882439499742608384905402850285265102385524163982575852994202061338240119292318863121499970434717116081304957455344638096394912981938963101893085535373813789677455517453786976535181623088891646364793824284801568570725195271043295347311707233175154001486946476129516723286158097039057057223020588545054146263056707139905609353741294985635647587594713879662413843023859693861104756431535484673344760947095132081523899814988836490432485627998008884981276309324217614599433256085082768232339914103510591058481573488577241323175821555079042073482216854906282061824834650190032801612714883744318511806576650751823700103698209857263574534920178419632514965443880035164621153825691221614631664570779800198696832233701450987883960778354627295563031539427902971947291053527413675238451975580876184977032074933754015721386738639548651866345583464118331371572375420924366460624745896244380878739676294765507824025196864244492739983688805458740652523615690318488715812084822613764527555511970686329898978574358288290942643473382161362579115141757535441633230414566278894495343374025822090081154698240008361822710878549462564409614731087089836209115280262893036413563546182060806179749380669069577060721205358874627356182338545308509341928275043372663957701259338253079386354823550372572911925968395301423608425066923017973846810986478450495685777579071764776451480987987152338694936574303071242556377409037037562265999768744807780347309687882956981480076988915407339106496679443320471152763911223710503826882678226439489987735661171399244330511355757937415227417710276430290598576451600112630578078468474595000470196959313223028899763661662262618191664734548238098990461427081086257068354421874057520232667863089475052885731358259025177794714291566749488239410935189438251721988117911432324900053632874045432066226015948796557157952667357915732455279362450258946223597284074084617922344344757013278182211790394120416580907006245912470155624311552723110774304809868963451513980307912495450356828826314591912577525533969348979404900302316091309400605994678375578155365032036188478239213605196763652788621722535507617804021404300491438046255141018328191095285828983239970719858156903110209825668006376067743766538115326608458036101973048840355466539367811215701326317865397245376582310486675554700604619461682652134501482635353189334833856572829332017138135968510479826304565292235129607670605262063177627319331592073032552911027479138508734294511056631091654924819618408292055237803915089608866455805242054991016155197429722113107981458175397352798041864501581444861924655776019648236857906086814790944317106337779594543795756345737104242170937944732368713107394143630660040773190196777262336053431970717092113991786417664211815627661226191973330682629679152196176170154634171564922677123529459994398360541222076421264204647548160266044345160366234988690787496938800276602929951112353773114405881018717528081090966368759549676694891228721604917259491687593882306253825282950963046091151178037516683738531204181113245820486289936579882135241581906157341693551841829451928536881015357697344413730457841962322379962945160738712958299093956254012884177415587495481789971316178400109343002256792897063174267834051067101309747466217069139954696208414226051018279478691146219112102332577174041975740728886020439980533385652989288438264698166046166196437931219328860820451201785391065457549264765982910410393917485160224657216057261625235840040022658342815278127656750187165238050077249179419551219406033543928380698995855896680705041379001987320132862976123842648043280374036375554393569104182463202963219999552542025017274881250025347988510936871325732845219337261575850630534524331865446664223494036876134597650939648388105081548941739686774267803786299288171059844573578416037653906775850879640706838732540324777687414219741418261485273836544140598305684256848169691030169506800653666905449225620315321736338238284411429652098320991455306010280486674110190811504950556378065654667315097857117620895715952894790699385126741232245880241541104659179272604111021950141035457310086755498382151758165128279621920043239151531302610870780630425294862334560083942741199006084973549895694409068241166507976386845797869570465273988732356885546800702072040794406720512059003326135319697712862969426208385997308524488980222814571211833619228565318667780724711844463860225692791079829771646376523645671048688168213962387901284675787277094373203644294939899469506504517927132956807869777997743160498157761909557880547658199460793948251507605627915097709703026071661031784392621170244937185809407693334170126642865945927825953418051816378675894118299074497208170940225787033383158763157909721882280705127831013966494836401376246027568824830166162386542816361295349158978321912627935091964563387613874353461810165429112716143900227123889344042205920291599151297748975186445033314984678151203323753841202451933801574373440434439791020671034035470905946290970651437266758607001486621931195686195446481509014910540987056950880408496283312483892020983485661475855506664994350541861118847137047337888688024698474969724070207832108916905449614010212820095553196128153579062919710364341516200558108451037024033568914113989004848405271091619617438828995288661209872350260540234855731040682645030667152415254889349404260316284957116931822131924510174402496977825347581306216557433918143145490389623721952589535820513312560102237030674735334744994743572073563120340531600514680846139335840375763839732314977961241590833545574450891562037166430740672141723717650088328153043092929014276663668380590208709182250358160811884572847561446959529252867253057282698281604247305352742647357775063039669967351280811438497463144301713742182160645626177597102323253896406325439752398226683837350575075270135662774454344410075240180440287238041360603528368476361339884743009126388837740452819876925414089631958948476871296097352084764820755098119984552530832690373900915544487732384255423695952397309664856955634594667589119321696722902114525645537347641085183324726302558786479077309331975905512747219676187727729462816216435897965514059567763414273658194624799822013612926067813869563276948572312738262727828109004017524527580258339554127852821684984134791600994704097946237935460591263388548240497312423598660014654502521994706269928696885737422689358905034715289358627210070277520269068009934036943499431782694554894846443291710055958311465305096148060672380282763372596591378287159340820217006955313870825179586360479930278438906100025719201301062226152275975581858353383239627371880008303325811955503086553142492629594976953757999747179613620811288640700911287966035449735609696673278519212253073738889183942465705257056412755155505779928517441112084536948842546107632178984955103587491093863019076993325339001910556367623402996691347223818487630483875702113457893208140019947268787608889120471808024860843431148706752462062177631934831089866938082234971489760659222518291225402024278421001892435450846874100497672132382238682698811366796651576541773709588895147934306990035064247607704192911348405545046763010659715119770436848435095289337543615947159451119846716221301503445480458916314644464841862731107401088438764130033892309996087155742373273042320142913933846458762890930635636599889363995304688063371182466325421374033656603973329460804576932550525956278179159269332209656687389578295790176187485577077507216002336374236841079628026022767202062068176661487162203413977081375285883799232305703815402720002145453028609036103010412469975055565961199377815292460800160466023695235376593141858136316936754492241349037274460619541844072658602878529831270103759237386143608842926152442523307869577891420591439645261370337236162621182156781580977354582472862154263691372574476838402536029510216622532109914388779378008956672034664702975768028452801827179428168800382929809093483874613746926235840892337720075763532263117480708328169346785466814863125355748411088040733923298771707959132674330886639669864737740448167519253157352972455843728046324466925937312193374550541248157375225192142201212983478544446445389117114246271032498160815238868703241442919338559458088302973494280877507553036205951516347768032296635526320513846161439220321942308591845062614023606264472797755944809245493685947978218687133165585658337561109351596084259627321732727282542743143754483749609726323874912108353377271866383672185781567777912262297451131992254688926165880192889237225087068885654597457597185934068127782518097789205519585117241451303211373778272306493282720469900138639506798890892679956409815163885608336544785706275951845865222943165875637896371213498247530720398802125799298853774266117338813556384678015435817207566078702828685161648607543807116865406521713430229498977652654750822337318585334460814587232261705032199110916844757909195339159798871588822871102082385893259420822305812540410909017672225672257608537762514803601555925320301415532233239972290545470226163236497237734339306154944225630547865263672900219138122562909411869007931064359098847170074741157797952076842014056011230693348415931500248858366945080901621718923126610336556546881520026779668659607868677157493143095233423401677490334228963361432150974626875303515451450941835163486278618481268739799234613026540938497820571781440137591081976729836703839754999049319996856451031331145459391523193193665416372531002881952792062587706175779634835762085947352388102609822271015484908085509232664396892629532319752503159297263945729148825708713179479393608721450643409626883115644354912614950133605854102032820353499846867307390759089343467942956094455575813071058178844993737555194213339647213125999389695925364494365625537076674760246274315325980157080113435152536543262902382663044614663727844779803904397448878684439589495329202374932845088386201395540444671144295628179032629536321357309639859766781774951179168450288852920972389637949970117796153837202713015907534775573201565770342893284362613994918488316397565475626215796469814809037773334889147874884644162617155292084066958493603761953755794869117651037347481989232467826986888527372466159004649927461583616924115501976210954401739636079898427445753301026813827713731628436959786204820904433458035445207642579994555573483245950709742528592669786863648979703295811628807785826662609877287079709175488923331218433002985811100036843205411375913132343811484178929089722918798944008273521738978286000624658609180810625025024576675110363030517631196645707045368888872195877889232269627894165002994086501760608427598532904566747499512162990266745681903160763791907189883983713845467329762676967414604641776334126410083978656499368121656285517609443326266942945302138038459423875267909091872770585126748925488052802621987853493883116622382374715624426867951303331419763747373570875843438548465441555710925672339238203622739295511055134271587885380341327565232395956921057796749357086566671150839730501302783589192353770100914419343685472952278867721127796762936610495201545309481435381743067406638874082875014391215628072323610499355652132889616666320207982535353668676047296379247802991845955077743486714439246646772964455190153378654474308771791286501499893982697139085233727088771880349596024274493971622899148785211212117876941969814854630383555625498409483692264436341259046373692625997199121578014772136610396910077589925606956125160500813914961312246616454135978995864910056003716851014901436594995374675612330723241305480598028003814755090838067066449769878909067772898465860597219912435210615220180138072168331412734151898579718342066728171329019647953965800508180228994013601771502081442489227565481622010340750743066153983030890925603963495046351493519570676553398137234352435806455898992548536865334733460002290367115596079915025332023552616231488131419787566293316959647389096754380298953757807134156615236188478735709772958322010489386897474876609651435731972657408532754851991170480234196974556440067613221141556582964300829724058813583970036455043698860662993265274317327985175246674506226324806108519953160323863964059465443892713460002677768283592918270546870719191103032450696024428464363594493684054280407735549568452575433973669428441379764910712994017428725100977780078611658500503288857069681615502983391547672411650325708047947644503751960085634860415621220597036945584697725127037388078696177694693627129286145180247304104475693655510538389308854986587086857644114607835306931133673082295041855276625210681215867568832190441662319244518801000369601921379127887485499579142280109050785301047162313664998982394934567872266639031931603682821267946968494493930500690458759772912346552626862144471179142739504537472427700965580726259836613729191230993811485655758972250603923647643017455336921493819506928386465541840167541307179418872206790765058799716553086968254006195628141036987545908866959675354714950361427047833658238506156584187912088778549162200027628495818704607752136515213114961083617160793162340478579958618724596126870000010957644324584951729687839959418045248270185865453190381822486749409793193972967496159550349168598820306385807190069561142702969726244497654666578313169944637978779756088770508070322187272795789533579151668784996313096559923558341383733245802061401582241197048824234618806316845486257519793106159668846663452224961595134484090248425048756181146955412776124346874359507965886974498610666909906992100109735982033168780459855104517741906383448531875163058298192540854062690798638586057755866087433672240785278610963452333287447521883938856073309143728387942809255605685926768019335989975782158833831630251536829389606091541571381739293933060584439477500495033614346562931463509838036043072635280843899438009462938374305531120999373612461184258363952762869078053663461537293585802905944971913424767523464186292671234320528312849177744025366920791586417319924542410102690444046239669675359931536881604828152916355833234552756000228747461430725448301633575313535351765781920447999113676767295350413191922386268485302477059162029389137223729185161957055886032964048023626841350562042888546780443726740625171255070230674615325883960903519199028659068062471443690803188893507928215913168268646227126181139172968176156252065726488929688205603853897491930568119140348721974986490172809096420676763669877820558201487994221014628416055885054335891798532895608437355091432031499749427798252765614285352499127624008663434277184690655198786788258012371087441721674418421516325382462507827372857752652787796161696870992246655101076163173168158170909303470351205403166342703550562387477556978068458247603175914891813685366606915920866463701058092560682827261821021950968099506217123058406284757673965422831163152171112200770772672227990469024398140469657330088401938721673239885391783948860897522735970134513772697056861498544126987156285880868463062334263369346945183246424261249054209454668518377953057769116570405802438074813299283356705401533433396893483765326258573449817897559504992928360893015688489304636425244788370526008455945591670789544759786415377569145448004400903656299838548618781951787003557453211589944664388427579009556630938545419050476106981603300814847084429386221779824306004984493260154236340851397260536254089548713154408403476951868620882690151625412514786185352429787376438455447548079167663759771545155967449081174920598128127422346183193745183622313529978392026367977236066194593628809405111134345211301522830853178608243726365630156773402087437707161930986597768736285516647355255938336897366557951378142593691326304325195290330304565437494592064783090487463668949287730117453568737066818113984094550852814530176641906076129796198920986275433489009529437155228754647959862793161104764467292235298290516505628622045200659224114353137506748555503860128454525035459062631207421918923241614250023479908976531850396199021661215891286783785655874761501703318525619805783472807850854510051264901415442855449587256335698393732401621057413324664874087875224015672316906072103376326093861925106575707451241274342944295125290553643746228615315316655588680118438312873785795800328909805420343803852772614493350647122792171054078969789211904597437047315510270771756734846667001033147188415400350282631064739507876462657692033898412902512042841226899776739360058333999408401167995915376534814556630921358587674436800032468133895074574121934997884442022284618968344098492192536650191675872601477467841829740850313825761516119713277014072924493564555078048088446278575780555509698633124784874579007865162121551629550071929557948858441293823585194351494758203913916999389468382030773220782486631502017625252649647174684912289287467916479101140262059497203019187748975460516673567669768805604791946694911448257314816581318717544112908304980436369675196952433230452164307826125563819651074461534061236593508457022904558529706399872823181433033772882446677627571115489797937285918595588832633075400849326709125984083093828757948374413617255252565156445367955166309678159041730255525450055248826938426158558317452689270673344365395699944934174750553279889316820881224324399674766735008241417877022692875441976039067839098985334586433624647504507791904927755075705171519403649928443531686619977477990096961977954615343558650171774944067391796809104147621956499143792652517305791801088550482974611351624096386660522262573119578415363545282797278790786044030245975676632963194028445018069871136436077142984733681615244562379437213766866950828550746890563710740829508170311051581991642431824294616434376175951952184806239745551151248770592896010580888308112704683958608900619657876968411156026470160492016097021390618930346582777770469693945860695503956087144380230181009933904746886333849591670637909791925474078566778816465138625317906860907699082407686609947350298620209080546619598801508708166064944161287582861106959806122867078028271136978826245771349466159028655657638385532336348524377776021421449701655623602882931006879664497963040084849102693213641339143561774861191020022999952571486524426607780499396433655399939773265943447129938644848214522599148412751280938650441496597911443465380695211002071353312290505917612229441955144537781425590537683523729577219102790455439397740720411719886952287111017981189702745908847026533782283686192525798626350335527487170344703501682808672975496514931455509158533902636398369863847004080690788141187903501949306881452645395567337664363816028490598888973474043358704364986994307098877265172793648157641103892539498279282940369176151967601206107517298496848845957665162773935023590813648713792539036778933723602111832514929271299610326012764339487579641709996413089162890074091841916115535749631917898505584360994373242956941185179635501498448620273311597932391237998637665228998102223093179505805089402660824558973384404560635332762705235328638188214328285633006402180427875866999544778077626894590593335432881148008768014253933333858097105888937407594820277027979731673400579332418100311719093124960562749156040764556968394787208517252644983031525222554493938963182181299869303417063620602022503676043036474184449418197161407390775051687713115095493261665179822777923297114018084181642333202931473868754144303270358669443699274064893975444969796887416620465487491357790393968835659605479835628039378591067238069176219937394293707206977739376206333257512950013687299834468253188944281172686379240226807536632396033575865639364749142786203686424766490008061198536451697606701313951974913381960377583587384564116139122493293344762215469967115422423295522355223996187279028858444344708277447425458675204136681343381520218555326668009797310509863296616978442662001189115254780068557063554180294556849563532628171620771937629524430570945845605577014452420757510881042232541169492322085356972744333837778035313084450762020745620412524855808105794087332664267055986265444375678004406778765842301292848304608922950560173921050094779654616726069922443583800823502660741784404852449164565454653687849711424424109523476545308672659538690429013105516231111396769684944057312349033754353867732982885858871368159336238111206299963485233441230521993016981529840190091822059266385798422889686409302398550247373783983212471102301348640243952943669323158599532123718468804633447263389759599483028614632122278600338204168471178890245451998507515874689689834135893681315806181741757359611695237057941415405184876524218602228602860482691539796508127593829945767503635422483878422709536044080106848225805199583056038364580937889012869954926761958173400565658169425700735229820552130383599293621580446735002087285228855564760641793651638225983754045577019516035369031606742115649601599280178297688252808491897289635077506151299773917998707435175804178342447537302267686744627519981726397549392911754705233807757613445728429541355001305803526006013313111726785491802414034682009869846135191760493840843215906537322943407087597303089138401781771774511514210768893458786007941540331591778821266693959576843905823983453226168511184281606010341654310998223266675184011324595758569169544710739402910577165606995028836745707747300679903734290042868601198178510814110578592371246828528302390180331394863944314620005143742630363412407620473412268008005234480507501029032607719760663268419932504164830948458129307465128090493889826361743690205863538864143052816042541553307053934406026566922317930013010838371763905423532621709923495553340660509507959166770150383004422209655024149433754902822590053555491242052379491322272277612037394871144278945041452452839711706328493665168423919662648935501023882091436338151680903317072835277749598338579097097549029362136645636707269292286068716968164387341061191827522913033078801876553174580617989223465871732294156317038621012106815482613184983585207389722832423214964983401169707581671112783939328877144776498505230905135539411438490794443438068170704222055002518571205670197914430207062218981259237525077687990634949143244012450519354063786592231058108099705094754806228713783573372689256493682761866133573280010281247089162909243202783799006142000262537763752253834989781706326101046454505366330626454061467056451955545298537099122667151582873396915013285631426883601164891899857728268775478043546665701475938652702887164749457387740465215224096729319991012783294201829446810262350461193002873340182221124164298699095308362115177231044198758867626044193247913124863576041462807516020141950221811506142990075382671420656530910138408891721212659580987401195330077939888910768315092290511182798417420567749485814763413388171451062708399170971844983994260082034550320060357354358889538250101586530610378970726859705608244699353492996923857943198404656842070424726619779678245209039748339714434792161175107072546564311624763280897682017668099550156718774866215390439575491472882623993728751030589115240910926514647997582936467521567086957113010773438171679108590813655090326489590236376434978958630088474369002285615632514384576455878553952856068340549352239380586536691845866552663957807973870843679143769979274883549964135062773431700285323498917742053315390953649182702231027045484632977058646943563184649451712379149832990252274516722663057384955394311732669608554192053800132827359252755344743676992320334852998275350617995088826156700354707635700431018002117202413357653982225215440536304582981130032000380217475457783016949007346065748030051788100308623465526938747206052307663374656801412250638653083711265975790442041967907780447805346755569316111645395660679206183217140116297953679116450504236067561833021628907316788753250630279710875968259160009628158569772603531754723589833563664024601342327584255221381843231593146010964767051486910539774827262704309953933580297766950492598120354323967993115794920301838848402068296610926075911364302168863409143869307641626857710919745369958320704880077958230206497762287350039644345488293586486733948369005391114665064654555671884429532193957135642482673145261560351784146350804300527292361762063565836362304267370684095404623880710928207516285005055065439556195973879991328730080132902477618876903596374499288887038558529055134649399703710908851923660331800904413899841020550787634976505049228435911495153655096070790893279514733139575896626903768003817669864010882890729569139896696669603537510795706429463725156526272338901764258321654314134051892781774532969933820969540323528720721034730549873145561940760223273707240768085457247033409137743283729682772981191270212863328568264377764325438882829858111247708409947106238840783303244282705863082712058508894358692069971288829515611109759864443621051005170725154399024431719199608215659953986047870336996104646493111844889603881706989302857924587413787203418390737583004432728515332637048547896143136805688246939920051933130709616837060072734688391440779053348758224397229637756917909551139798312217040134436982548926247357968109954280106911165028267596317393017997765929725021309502401671641240674598165167616478004432866940369240550864867957607513755640261131935726851845427735673548023006807130610599644416159105863495091017454108941816464363218649957698704092282992634048964227605139661151873475289623552529768719597516472826518821389943719178513328204627182882611144051077284803358561647509646930501563147897637853807651504880429926399122154058991309284986516265489843948657117221522358965720385084285845527489223013384685608418935124685311961996195506268262593316970878763162047438699302415324040812254007475269510243699071645003971179744271862782852342318020023392527550497826066925473877682909912512321790923894938004399662447737997624234342602470750448352800912824060254820247319822820531835923945254319380562031362760389646518512942616422260598166129490019489091513811195230794947989978020598836712846060749823107585666829414177060682506271637027549874827577191011534944087027025159563790960696972138061646852560452690327334923578791844082944881443262460483775516883237817756365167502190419175640439374000155488380281849598865463316587468217269275278711946282227823327028925234341148916501174075453125647841277599725168658544392360242757912476649814524671074687718881812008078539992340671885817519688803508609834843817084102088670571975548221538595526876622773771987840325061160108449370454043959863577095658060940927350258114110177051726290587104902474481042524691595717754482572622583215831383733927716267965810060525891100663155812781590874286874832830151863207703088762808515049196877788432251117753856459767556625385554741381104615788591150022310692624765075492832028575461209917859935875065916076220238178777975739338619474355985897841211920113080763743138687527219030401230882395955444229409156895660166155787406915316157588914045716452078938952162434306134173713221940504338193212632870303537633377352455644885455771254118253359011437447045206154583219026907169660987842065705536541798672339160479478494280373555017323075182253545371129545417964370008415970005457245240602493251030844704963430894326860818145519405441872568061020788277334250194862614049418357487239303356141648107808756806496520403336161746176691379023242050280874789675279564654166373046653400332649284095860406050854030475301146837279726823839659531980552634857780772102054923955139410497643532788994049154883390288487629808759028626941996058695697338248703596432776201017162796899568881201667670031691532192307851193870045831354541411442412198883297452334124084834849290236736043101989825336375463578628812611173018168455559669882518469103195506995878969563990598501285577389079715076727051400956934845756481652514643500553594234414943163265185337655933857081862689006385777957616230815096924478173823674009237696630412701972774342869522267133532568095499861759536205018072233827110332762196220783247145889780056612584576817287201885611726786030823354834798847056726334760163161435381757358142645441252084777891050791184729690853015889796702792429794791869318669681335086739944256889538624092030024934127902446165557221869259829542378989353452591613339087901566744277181823316032482074050279266303909470973679046859831050478163662123857439939784051933311810280032054138152750287817970628343486371054432546838042840864801685710013483455382232235229136806476904090364527360942872905838390297049854336194722488088240665172284028924902771823074064597042081851382668818945541402162601363243344381950801841231436359565939599334554069307799490791160626729582666021437284317012376956173563094698584184592002860774329638742578288076104968828260604246145699021274741392898653100779692553801880294607459342178855530735992337269430822750127171803912798914969437045749267186033541591872742279383930337337291043388315999724506918024441510471186950952902180194821991641679213580012818501274992472846463917204224605565491661239020808217661125657077986909077469574203085679157109852325095473487022171879880866703577676096403494992151916851241356448953204475654741972508038102059271230528036486511901679354597118455993624310444431663491251337138013149231485945150815762107186631689326989547829797991058017000029981675100949947585612608077306482361802714479909218401818627738159310130874016501759263219290353681332331760588291485009202385479185553144122251820099834395878506136430491148057127801104822222913351152136622112569384802442158081186373805635629549184041339887811221733863067362498926848696895284485296572757404153931616655654147676497097991179699254670048368279936352896502069739258813350358091270454052553408561446288110943329963546680366978058585841479623075625218914161035973578389754955049452603115305641907744434893761412465910979448134250593941333655963321661267893906523946057080827137575211760516896397623584383576082217945451973419976122810953234681346033066393123923115336844443020036188660416401391012752715656442912567686272100926968053949069871515671871432173108522193819591687497763311836236693945709820392631670826943372887742444081553976378172403651785112064909767601380664661132808794231545866096757321089827950949679880211230431249403716860428524794604542030088244623980478102408133774524752907782816968342285257259957145189380648645232310627749503127254823153790627204035660213199763351112038827388394696773417642236983469152018991227159906612009127592453934088466411725501849990247972503260553525565763778366395751544845393853372519822200880832935365563690690735734570729049567853360832281186235727874215562206958887542806843602288184113327241309926899679226319994491245367139710741092379343678365667935807419412200151120708023023732370455924814654548057688390471298205416326050508976380574817291910564333899899923742008967137431487920222774914650490461623570525838043658344514097672417577702123633811642721859198799397006930326849672724976691933922381594594875808569419144965036857189051893413737118819211208912475790599582156019032580625265960835489752975576186746891065066603122256565105340072767554018712087940889942640103832445261284661295770554189993617309743307320828728828043855012037203241716643604758945192306578363326259932399886155389188288237779823716519858615853466631328969863661581481116301450748190768609745645492097783906758489312110513598783797236443134942618955296944350748227825984237195036937400080959228724866923512772603620643414063203890016052368133230022366321810816231941202787021302652640427433883567107062622481267249575342102746947610150780308871379075870587739733702572782098163231695725597252077856039443374682630637973081138736922984645160139335365497127814880462923080288711027351198191932245526106546590998367954777848521685233543652334686987702845701157167196201867150830946364073983963250396736492002318339866778941452980347644219950813698329584725599076961863793878155223160549565257870391876443414152483818500469858319400648405634103850749982704476541426724958670226605123488302111325254793085364342429203955206844230383753777358426663338185488669265761339255882755183413370841669009733457305439793307470694011605088827134579374680210258171729574282702294667876757864448255582031073014501802976994591877454926929582789708334073290569664864905169783554112712568775502100035367667160159942024488964441861837685417476242930452608620667752678761758405633559132549787467882965544619535081755442339599302835000920173814645293141957592211739726531332714325114391369471107158254307916980966493743333855526215669559952476695578036614744834945863719002128237619718186429956715079347776085816232128590913817042265008819476695543763797453152608720540189377630505984596659539205925254645650446278147022021708462448179046768265160048630865593799938874785604443362998708565902736241800887322840089068159325268677332931750289142237239771344341712700034325274398672094765203551991280720385366996847353765557724529523388285057377309721375764933832646526757476503550225466072100201557083497242491776508064419619502175841059309450631236966426390452818148037899679500520493943592246964274570582853563053382973066109951801399529322112701073112604709965163177456403708096621416486676742847144108803742763395371749842886217310348837645418901950213854419053868934915703667421822631806478242253977497008874549458501253704716914966409082678354204710087058575445046621433235435770890526785918034706750194945019503079566963829095083734692503549723838691892643053683176403955794118636548375896256385592272343310203748750943258415154166420962816216216753840974341403119745392768769477139599531288382890763668520199917724867747844185475938948866867751249772281846855694224416981121330678328641380750306926160620374767865739641679958083306925267901488304072011243483568771926990154104773356331240149878678816994109942066866331434720071157662963158176763663944197056199461209115261629990425944675639232810195897284619990609994453575668447493202000066627191970084562695551631267219723522044146382629130716869699966639253459428636743788897989552041144254751339154896651057955530529465404598137128658251238135912007656991037284368055945090345809872966413328150981615913089841652345938996027491623748610026534747360609190131631977943852235328838693826522619078654716282852206502154198981759776760260732065454991842213923921180323610955629084625158960798059002726774267612519780700301485380046042511585754265526475596425930885616634985493193740837647973119381079580124991298203968407043749086145883013809088151624020314223237061934166126830609319843506338727401969944701636764032515827785976297567366279859968722774972585217950873171293407838868263290632860854324675052985105886656168811902688195512073949093207314282902260682172226214357416872941402350323999913599871597419671981386629423902921990743764942774607955938677448798291747677600882300195859887640921473377918464186294510369425405230030687172738160211859915858228611306415259659084158362820000607507559685437523995058758663604333126528595781499174152278855345640082970987012651127246265292634762114610991890067265921034816510410177414166890129224692357812122691647548302940888810917380426953916113026184237853139142317424539711393846007750914571475275424574351312860688419111431294671041592625511923456692369479433196101025760758810357166410149647666456535004350042926357328600050630678110796805178341981922980330297854182604581868070628490000806751206175943898387930861176483170414381082143767790712082364188790731348198374129851926015863791570513218590790151465889363467606131870367706713381456960484792458726705028838064921896433942422815631691993339715120861154692608181454422601554527401159749490212761238997199586380585024638405502999432603736539627816912136818796418864474926264041727302193138588873965289482382351407140618389376113698245571565501334801586851219372917617820105215314362012560184922651904130523549900457297468596947340393578130409960418245336140955111035504571392977398329024476971398219817948254130382136112728192898157140712039619714309429793832995181179406169145098407590443841210129578014499584314077122084560302451494093265808532606765851222363564937760594598124448114661355335601499511193188402145302588231007402121103351596564980179886807380301236022266466178982379566723764605636369345703397377873994488520217914858025211694272932286136268594869244225542981342106179750340805817001673293766038110820579884201677219770216282236500866960835457842976730403119495350961900483644999377982056090828468099698108163826674958987205340646073264291589043309535008107616779168089199160417952248857114962838668496511001377222074973175335688525845556914168040978083190219047797381195609723594908620212355048796363335592673200834521607328262803194362079946881430605978394054163261552069777991148666617414755488083914270860339052358220653431458865736174510064192048874033552795514961245830051827823337518393118070291341397847357006835195483776122062338624584740436761008790155075394765228383427127930136690483864679266806626809736085288624358626763069022617115994338022397080135994526346849628576336955497474601628513504893249225880905615684938405247372668535165231931151303728954052672764398299911644934482251698820415549494041305977392999710663685662771290503422616804081174053495303879870356254874438477349170665838063667683528694788579283409974495473264676039786076169010920337027880709255155702411767501935436911316489679886732529096272196891160172646902579985863169177120089536247161038820427479710716404442402678039765043781154400310254309504178606905793237361487033505145872249119229886386009735533448792035524517341196121972196766347912821389175373117209207854582778915245855646431067023621548138142654184206019729352237721810924051464104060064793521873020952556768673042819846963096221797370568074416100593449742304060935002663502796692093489990160918117450706158251722395452386718202901999422239576558524795577750447881666402193066039326888361575202383739692110708964397477094521158540837386407189143502048180546830637314633293917335792511228370674395142029904827336614991636333562353463965017338903335927321621959882834886241417562286504764166915820496060524690503519782935541515609400587079669019723165562803413627718403730156078063683350413588448155798528394808991281598116942301981659206029467637884769918922434041822204437818482719859258967295027994081615475096751727546508255899423801624115651685965684138217673107160339036443123453179685137306606353209352850271714574644678423484127936836352847053764004433656930686819612239482917825577142026064492242243466685122441437171998138635153001694089697712010213582932727950034871660585018185135604304982786242341957351651145802910018741358981684296446534621886215533331937642542362750813707939483809134991188930628501364383501456441695129665706137385716775189933157320806943994020610916614103306436076559286553655749992962995171952745255638961061168916338157943771896495127476618907192474776089756321647727827677890700683824316271592501224064995023444606733635074286200936677935941037454802814132988414135137090930923855602920840647082641472124751845357462988524082301674221699873316558735882833398369599431699767165247381457781663507559080462853200850595167823215663294079769684612280310432891413033619629913471571913246374016964081906655699672093216789235754863992958770788459384474929486363633829349990258408365916118952940940112359204998750267030500338539743787849368845900582463460046515657332025058333256572699752971633892652037673878745637644808942399737055288886390158713744741718782933671854677272453092101553136060058877414187277898343748353766452810822491634096585835543885352599152760038622108915504727795651901141914550272995488415034449395075307793729883510921278166209399520123633808022014533015168677078261144074188781038379604859693966002097441150958046237518298427604032358093429119865160389386842415783861842040713937386748178653049562693961993439639286856023400065363085130630831200861968558942625499371664376736542000128873851549434089614439992227964077070515893877794949948666824043077496323591431314663295955510343103301859287280931859036601153201769521325547245676442961116994646829067443725580916173327476630044785791128508060364902332717788732047940497858813901324815385206444149427978489812000964982563098903034549674939035137642476256178710668242912813712312061611144264863068459130856272797967727280010192772368728718633956375016647228236872772761274476881668759505352670822112850773295364457621686123362309744707369952144066118471141509164219738412107667370589656846978369842515813045433524639835321557929739479710225214067858419878703276243080811409612823896171665642654583918011288663816163639816605845933455813236675333571887615894960919287068757363202771573716146717615482258181186113868599752275347820691771512309235927126983798954460055563290690301198182582798731016573458434410237454545184073730234522199158533976309971483180151171601452628238095294249539743022955050806492420825560063481389724754650624447914730055500091065592010111289741681725911038599786223963114321648378413810065307280385709544464384607888789459677283991748050658030862568456926590635344764934093587739642088787510741334125247736701958411621917328476730018623921024778930470986635338028489694723072791606426719410697559693558412617305880240473308615783771347824839028369673060062761283978189129826830585838433764869259851431977630228170433452862868127535293923777025470918745650561121337416503694822934967002052560119494466308080880669036997627361888469953092093184013371090199935440401518403361701682710049756553479448346627858538819117320096229446039590094740376110256097253499130677803635051620940163496357846030368570878917748545562742249745456429028886444216435170876513971847242827326402889509920695215481430846484159221571307624347568937787914830340250073538473183543372765514405429152868647980425534501772384780597704813994684626925447176992684163515408860530703135487651841485215686707975924218601025393186035802527569170900284320571082060682320802341829321647218444779787555083983492405014042695461184721236614740523645933832174451897652907601984660546442234935528965774350415927951830407239299711199918735432799483340393885320446204122707032597325401880506426168390660487372462275423019822127686548216640287472867222003368086301699233866623220261626582711128089483666892915029084690208442494789118362670257930905650710611986717654697158390703178738748818398624159408267648995598871494719435841406314888784448221464660290127340112734784245426589729146017779264630376172394428157601231968558685785739037543758375830501153012429752143438590720596303619641276218999842770979498071145446927124603244619084372232000595394917824165256500485999696947153494320664843201824344695656298209945961395567080073726617134272996927730382511885065358684288104835469775440456396092175317923824319927586611877325967329429438361404926808266737187312809768094399261738983927458539732431928137778208032355050714126771158115752108961478408679435759879822047194034831811236669403537822263351064583097841508142637459173542968165350048272946065779754101396179903604172550673765256747454012788319940492768661921596804538825742492035930758550176927951158371926350742166365450782315132796927471757422615498396817370382003274307586470831498561495305115121752897816773293225168420897822127114139346784315417321093365098170604714469241674974470370690062911337501289372739733841341315086049683319061225850982706814772509321196394490018906018476632331920346071045290832768822320696561949704879801519308116850319272531524015806983622067385713616241834041123330694113810110681213021895966641428864093995021481778373668323707560642047685019039914593156177716826159412399679917956832860670591681666038540664465004720779166517846137904090551343850647117126182764808474353848211471060652061887445732820324053032556443601151249415516384348824231025869126839338837235124298432166215765004333638393921884846288663983524224198663217312521571155451990768449428559617565333310078396012188452638180080542484162981472229217670796561919050514406700673715752640367295047262874309741550393407385524477852645253676510022244300875175235074028932609425576645656232316325518270660944171169110473582062121839176340323610291654843334010692661947218575958794179624465703555732947743768146902075058425282883944411081365764413815258368108089287904166656928814136235402940757855531561357932927386805955684210304290263554004216525489143503302688443040863066611622929188198788672240308436581006594130991266883595794276129567099060697471639163664607476370064623726236415928299273981799420262413761095515006639108971097241017339378856024602126623873050761477572287583937962122429539147776816667197740309802079156175774981668249956923461742925466567673311540096640776718920139744121890051277419156985561737557123115343902754392050153697391634458167201959912554339699250284887614972554927612126785276756727383028168970184560382839066426351924913789627090892990389857742252418306294569386991855562061199194681398000878184232396448290715898052377857595273119653901139038923070797618975425515724851602327886335803706861384762383249662313220769335425847286278931707262191141121090250986211699185690749151169863123407494765678644323156279993052033518832020494663320015131104716607885146650587385331789583977061796356933762143539913375761233064851829288254929667425789510846271096835413647510857386594413113472727076072068035145857150883349945009284526464911889943469912791919486847803128272563452660097369217785340298374971061484097238000105469023756721346914822976590658601098488338285708263633837418805238333116422078722357582377107151629080903870682416757062340642311371688069862550891086009433918380665718379114789669498493193065187768042642367783927568952171825270853379294434862104448273334066992921031658882278820623695923385626349980628610068512228948668502423843882553272728339952390641147329233010601590709473364478306807346210441209365668223531768931962248164442645775210289673163029762920043291372973132182841534918884060724976355695345130491912887400892295758841549981455179201986736360360188372349575327749523624995249909382342919616042776257323459853780136966722482167085040871369898840630213483609887534611795737825823660188173226632912328536774095666574965450030381091321661846899234074815548695021901227811640928047712675828841314588585596331304430945501722613550212116187931367900919449198526028087635799919537095081564770199694670102432082578556196273776326717911028120450059553523472544801288741586316618931928735419011361323697098664470029909717284630814448234671281524655265432543635646359810706839046010321091068724560481584767598298184380188592016583511810287816654170822323426210500016358684660557753938715779493128856240924539202729998119862763408029963967815554195269627645663802167698023361414339055397103460197613643816156340730909875672595758119462805122102321745560703595110072110979069122299322909269746035540100358574766026011256308788227958936711935690563110700721088122559089891031933782441664768320115797826321370383293386435345765064377054347990949070910310440127373776527860695291732837524082791915328921373083651426973633437156413678649251062466711634365615967715837009643783156187023042050448366677236655438325607721414244352465347264642401843779544295518395454455301508857460715958218816435182576033868047844230133457123912770343174412908615751048974491212262016773416175394844676693931250093251855876456368755043684738731083307289387942979493203632695615791526387159758380505375160691169317403895257310987947047109659836142029592043048101307239208086162205855185876036641947108557528019894318489699149042669863146468484293428124582008854391840757227656273690510436709745454934697350015614179636779016116827943927340431000358196680280487287173394714302395418418882210291951861454703536989862343370210304613002360173762537341017934917686219928618392346437529563209187417588017244105467843978986113400288821855209956502256881718809910048014232798286431167426404403348559949146001159320642278183069933842851320485097257466159810804295784077323010781085174790863782680331616000711058007998493299725168109218261893532180912396825426125618974593109893004829173145084551344166498925553345906375866009382546995902915694176486152155586309792531863953847472183788149034563670848114360407146735793710955360676275091118143771981968499297663602628743431285065615861587301195217410534650135675052220600592491184484242049127070386579451684096772093183407461218582321124731255592340066788506628975891335128443796836703652284178196373834731660936154241796962577750853190158338161370853095965830195648741914252191476329126139717542455556117969218195430238061083286989359876308855571167043871325980918419200140606854795055502871916553787766507933719776681857310229703650716940130701153381461101866393679376003965629702759888394111665086869463041444072290199571099530586745331883048522995813282069831384061574075055624626789127211124398632374773420514464476493607953770722501468337538767025720385375660311269118058857143134180432108677637713130648025371722840707131135798661915924420809704936022694926803143331132668140122412460840949996685269471157583370902458522594997098596808250019094664859302094941527956944068060046038575552077595219704140997468985410822798610670158609297215607078262823031711978297584299486907886201270513627289766315737040461249654111013308592715712987111748561689246103371835967536999809811960794889985358852395398778848080484407523628506166027604651276867165272185239707462589309306103618760072563516366691516790039461361661226882146583230714870919543589108101895202715917092870810905846465336542380160147739624510492704634982323873596768641451321715947073729184217802223934919386476188630360771464759797272681305799718042715065025091412681218527717664983844711313815916900413471575495859999732475717079096734394377130750794268199659746411168504063101500811617382770835679030826067974741942647957331058069891468755384315328950495905711340085654556653008309832894770400668485657248342602630451370643048394758597065800851045728024971687604417363868735531194878871529576520434649781857213058266591367666996040533830888870431717500889000586903514620133980460494432702055604842666314718896416443891104397044638193803414537377283051057759605041124828889493126215304358059074071860865426509105978877833349573318483955532352678303100500960367997445741260285595656222735652891787187776574479139482160914857843694596932409534682928170139900863326505601310517759017869739753961875849375660463469735912120602801148762577434442398065580295897441981216941695003879634407540100917386270522710255996059401324672699190839346160637454271058127435183281606265698460794441189994525566147540432966331347745679324357305344186943366535681030624367734903560936641572513875273757233358146930051835236855938189885218705104010813935750834843555543460411290473029047091517560173676055591392198825005299763132683892116811377144779564779851262919681920129728338358752844797368014792081179817278196949977512411729699202708396938931419823638416999465210900473682405834331489786429030119086032479894566903057604152644769167494020466974158877400565178817070647080845634772177777669921872093520634715814181438927544806305415884945770551002726295931994257445036504563740651547360369517504011086673473142939437683300987390477300411612525825257999914753079664534865399071246212610371581878490368656255548219557493132911696188652655154320601183878033429719474295213435892742237630879966101797779770552371626210452022735187837999156687686711221485505563969732657373693535244212325973816821004479361447936051195895103410865354376798019447718646477083082525585331678215546380276688618086065283611345258084934576173518146521208013302014059683773651289233046294937722126969904779504703418248914213597472519482473864949494338509609956935270185823251577388513740751802306871798915703985658840642629094940552434783259881043249489569254239936276529096824342273182155102249154792833603704611473759575620770462962111801596977407843431212355229499373855708764376295065190856870067199775885265785358337259344007848501870604843440877056534114681490384550149040537085470698525016961772733199126219931191998553828427351623692849879066437781818732806123665837011565408616608310955064499694202363002267407557108384455929942274833510558382472696452990801009013086268617731899362319890724562292145179628777350188862829802167209790390737581997231332580512076501318674042851828659341041890743958304133103024547949746556832880311572966997306814406777244487206766590270740822474163062137831667736324275337198297915679042285843850327059263417286361875177615223548347682641802576831793264806489798927775259777062686314667143449263589398058790110434036888890833028831315389823855453626949305336089172277591251421079785211581464613840973787922161908233119503102000001973119315088947130025639872487811808736154016921158565605698834101412288886022644956244626783113198326617649785057548354235647891075863556304051041426109506967118442004042189540206119916576360454202381516285954374886536231744118733575332608575895881511448646196470786819010385131426529503175744423064884934717003916379338600764153103036076003718658810521725098781191335893516115226366110672594304565332618141322010857083128070396165348912216696815484340457055356995861132839454346898345548742327928732791871356085116791072265369407089639987738888685087844373711758086732846180431205078942877343917091633504181887549197610507113536013069130567387065730196526070741913129538482947004249419663885895210764817490316742733264404164238000282119227537858710424634823717392031111545678044164210273199646553764218322280434071242147840856374394011765918015366070512962955321629361154484656532719312089055656720563357161674342438155349504573541436570157408204676835321046582532752885538339905316453591092113643409067145110233055916988423978162192686777378644020692274599443283730348016114574255208463116492067933902740117257423773078738562271065567952651770647722545375707886681983496574335077803463408706216884173972933873145080170041599692407908926444036315917150965574289892882940966800141354092402604067545897589792966272697817319207911237021128806861235017791358942987642445571010942316608628600647155466786179682446068260985410468883525850263298103650654517824398937969933781697039426456521112415015713956235301894223119907822331764132939779569909284913952665381994254987721294907202843363194601329785761893851400965759526767962644849165926950927741468231340271216363529367981074820573022970476285027483541617144682509140257061061345760418884330095684093073782071057984334730652296653549743899966014414874145459312703203726605526107838819148060429155015500808500254401737034594335047962282548945733894094738463103551909556397140548131859816932304015009186955107154323540479772566198572189085354021842466359371816171080567077731154578580882633263757352641928657916731712973651737565327759097638975863617123646644288841255666519090806383690166451577419293297244379581043491195633819684226883288749698444582929488945420323952383007219475779647379991611434812925303846663576505816665044465102756543425777522360213944566555172585734377389071665117198382358218927232002342043436528443693400498503147445726147143044098450551206629210305493688159808880068403224907996131835497960276640682644914893761734310431930407334659396515503095965057558307947838487551439342826528709880543250966426638942785345936535322786178783635977309969101823532377687225640208827256958179860219167917095348273341470839234192087401323625931665529425390049896192462905672124120835720394158951402455366424137842085571569629515886936044311606348813260897541521366632433975051215731278381206811633965224178436948176366279286677081458062760379034016615720852150365404050382019512454881947495498047045782478482516331807681728144365828501756687694868265881029117043043547423712770003546903770973469993839276580295709169740131477590746945437605235147552950525270621982828256689054094413900269097193873980490134470462806012149613514633662349554055586279246473499765090517699895197802363386504955902977021834738044014792298808736496710060522752282689223917218226335376474518580448323444716323779629274682460318031797443515271085516948276881852283855948205644153891275115931620514497732356498449061622922018044640123640265461924594413596044585283600881502803771731848619545881292495097042962006856712841208137105313234670211492878608209189475756226992496826078028450105006968202060763182364074682526696895986937293825068453937806508432484691003751146214510400755332906043516598562787415681718575347390537477736217604260139466701402798501298978795012644312373101444875488797527075259302800732141794482810292448938745889021834485712521476577610197507050830252784568211744599854323150996602480359477474193549274343589221190149108323340153418184467927512590178916447175872811984154929994894109412991095541136332532625746121129283566374385262793036099582365294009160394106168086499292303937629095828125404238566658413732247869243117720679382901022574756920688404676700199599985849394260341437022823836209659267241389304241596623831002081445509272411807467940801006982007627191482501737664237646421838361993756099862525334473328141782260590571676725698581863086272503331196951860782359309972215482957939951680359309652275382749755130333378050813904301353098401237665405046516572275302143219427344032392857331900832179947422036205156568526107231737381566495545502587849924506088506725932756308812222053470162448562878750150783507093880931400704435258040251297734128468418369195035972880765589062191354288893074418146305242468339808078116578665608643769732450997649358277220027261012154526057024854623647217713928121482660720657992368414126350712129431615875457051080377606080162992386018140042960418789425319210410705768629861313839939007431560199613810512032874683528404195833995971543831193301658283119935249792435954746429590090346393991498636179701590550077286556886620476149655534002433196000980203073929895101761052207898428606945211142101109953243976473436590509130876467768964364611514986765163334246402729297904100236710925482003296552617991395621333276618014570522168783898015539360442505072375820532670241247841664086607045411522059827937886457316133103807785658806575261578683124267121513377864642648766368323592862719201437418097100666041554815380476827903479346760838106497243885287340935463192688122839830467214946235534939808884665732554579935735551798520065772914474258534331701940347762455030195918383258138994164223575306498651326927774638209573709061691391964154201268614016964837814573126544727847089539223414563181430291011454024130815297882911895423310392629297003318459779300302342177694796865207699419408170471130520726725613034960430623680606752654389740629300877710396478408671631235594957629182445012873388950739356810502158673862882667235480886342001135135832705771173588942375866337745986790922899238905289148041315148554152676742883190474437555636155931959790753002312640304505920322045718085836492449147918071517470601216115425223180712344598449374018662613688764451145155445711757318501526826833030728730580790331946198685691862492303064439311624635394702729317604226517636067217082068547699703874317242828654291234836058314437009447199162630491552636856563263932864867213448263303952770476507375663044040170437494296692023149391798174595180927234430680024043740806257955144353392843930354177981857121531751937886478209730686341150990190622654585684384152257983543184612347078988981570373485981224338929506865462211983264462747645165291873179084938296657766333244985350945435844078803224158417599328868414700153828984576499582363950764470536076313839553893757130139699265005073510197900065652691419568297074273079432410854737822028933416840999223788266956755967819034262214310264077109666803210417906933346006626768987932607646673529178396556469930381718312525631462445411820393253866972084004063950046518434926688535027788036467802498736557309439369313335782333015454137497384381631365143673259244185990084426951003368028271312280318740944833440097738291687000283400851979165906012709184637379470571736760504920322730184996173902301693834892965051604228137736317355509825321907911684745560716005451055403579710439998654490904757149036317153421677105098047217483338483118422719740888144497162341587018541289718903326238157081837704143983695230579043171452434584354493871386094689212098759179955382385930862877409684630752892304001815517950163987379591852979217748953826368080830595115221031216574937391069977674740363569696341982907062642671732685113488947251425957716080377010072154709559173244753803199419422528662014218226491003049371979805880454650146869858264495292601802239898463742526235619776336276215187532627021488832711116764379981975455189272058449701399512507726485053573335900977925694180354200644508231141063241384743745276120153058030194135487534752400032583972497419660300185937340804793185428332322095016239592521088524817706681643660148403359384921858748127340003558011881327892211202804303285096702276592985204245930578584640116765560133418848236542242946792703128299553308753166819129862400526073358177914563700348296090603870797478815052265540307194998659817434159535743397263983030048921833453791170310391795341264727346947637462348719164236244985109362394606370972015880822498223646011532459707997011675403213670360247250236139469862446112693144535202312887802123065613286972336820048324793557158124931023467614622907195718398053202827419958266450974525593943228946137745867691637372629432777206827173108511518488911170803502437298154884212275795523435464090517457755572562467543109594804744884175236207143865367003842897723862879651115829079086813707310579608036053877973644809886666917522472072668778265976161486179094335403409395863860976714260570058927273389550569578738108049694363310318267164807779052602303562880177879933289781508898952131220992995233112657914406489709728539142313537107908218839844674459449594018962132820491539139639565039958942574713498541443109402672668730241854037233203575342393616881224427819577060313518196665314236116640052696968776623272854870880092227717189351283740186410663755820217900630410560095313669282405062350909301923300141927597830060037980132373284433139050233456973992801101385920845409517793550503287525491771841976393719103581956180834326976829906456842694908042178278086916208110712267915088327076949742195138842666822757763998509877369232207747632987997585927454131435232404498289360120818418286930245677216454477527186796529353099223473491425488460962359149071500379050210042684018346409479680471264968045348328536268041186128752571977186874023492758373320201672065783936664022589451469950760473397531881473559113025047978108987801583958815204208042435444782133283890533208940517838061281854988925798284669730157175473007213169351722441289570669715318641819446559629516676188043021605352391749285542685371246533809893027846122908543803361128148922234492830979204158695866434073330624206234979836943970457073920423596047395102604337124083584021404528806605264309631787619685256068719836334749488772594206719729325930812571074509567390718585909248805070742091625389452906745263936041163523880540026322851953078092872069822751266149719980431426513814522055174109488107037482646870327620642196704863620613726586512865389663101527665409788195728995499439616629841610249861947940354489363328610804268337234599706026804612236113668485673623050665543224830394362723388396132460586611866715833231729988488507692825020259124680136486736095290122945137631541508469993954210527525936467189049344797842821053679597043604996270214976060832136522132564609777030464232230779368843107389339650253036818717819535975049325476815627008933685671693884508351904703821184283434916975806684331775295342815227688272562109027899910413474830244729599452465627670390210052131250703304522124795937223814992158816131148184843573390203582899413337249636640898290466566818361114409731923574621011147673350024203015539850916479469350181493937682864850298959588957686664821887437449345403255275449930904119022796018516380902154569914247136810340772742924719342480176146235811399694470403556581386801809637657820827921121081015571302496199886157527805263632478875877607531447568931030379066153390120376571539461055127084562253633987616350825497170083516153890744460401179393787637161627839748594284700453599642134189447157662324284723643634334382321158110142277311415410315877603985815376133519272316060049828464435202224726298114410799145948700687095861551709785416876848535220258479888998124946557581834442119265876533902800410223062122538729432641719118057298038869729751457582232158786644964797903382433959114821388454298472675389385125370285122752002456805004231608015666725802517291908925349256074518160813646430601316710530764477789581350721569418509688014744995987506296191282460397342221748237054240963471278982348086833621078991490881457649779628734118254442519864465549840987263619317017657403740832032999649315833666648650590273804023774965140385516258933843964074597491369804515022267924508387245646870745862009702091652495268994665208158281268714392707472856280770340313180808987794169167411553707944715591668650997011143436937667857821597405494711286081820188780472818374078090100673975989202024399326652078397300464177571966189146959061828250181454345670960987413991386350201625384085451509097007714615481758603773356105300873090242585466213387657350357839293934470050529316856909661398332151874704438171389462401219118885495401574524826384649993005568378637145429671539011626457320650143104842971416483994323506176987699705977343812735542353142281875061177698641765370066169052117790474036466201995261484720310405792652318185384433018195615104482814418922769312249912999734076546769497897574926740417439925081049387725147899225759761332929451169483860501924739301686054001489430576741047576812064258786831622130866622040044797732836111364120393844729506525854177395335097668510852599263939495662438235631380746089520712092743519315903856501930300843920705277647957187984039250683937440356624342138485508041899503369545658485302690672115493531009205717887397494643621805610169717609390609762828704240667457060288916977267135013075932745797797690954261433964978619228219100574782075294411810318285465125652726940278791560910631961596882488440840416020374138803635328347645610537077809318213243297495065037316408356701648239550773299563451216695989710226497727062165735619948222189889193840712415257318383384845182281899076910221227684930621793202811151614930963174015426729563270190914561439715126753312303949454515213826839930873442329158217244217833932700864391962382898052955378230589305590632315801266734001093545689806505325792416204684831331778461455983454348163475617101653784161819243803045016864464129672942300322783100810326330107991334179281357006732021043535482575920892535744663680951195034024657697677341231408437534247809580750490593667224106688768008447065671624833016052825014533012761556540795436883476895384898945282089050848534273461364177172112551418937019008697296944255078381543647393000978708418659454376796294512723602527297883311282971035768136075274802769497911018437385953829588655775372280559347497537028192997541842414733253042048766335181602595569336970919695394578111931802947260662171608619135017759319567962838102825282152370628033771595924141520648428438075304207224796361123268240272174503494254984528293347265267858299096760686972894221904552773516419417229224816455325692742236415139369613751930563161871160618178972684797352483979157703638855971262962709468562170374437408866468343153215918483069963909888852247803528864163780504450220546667406378257016516179194527658178863335834345387721366653465837185865557977925991328658429030176403647703552372559016480994638349271754210236871245141901061965385848845379017701277947562992855115851851480151470473077362113963542061819444670441056142584530043010423251675760599167495572504577541942525126530511513493815956545533996850069152341459601680426920862555085427107031886639522158605414432293612271424510809749355762123091642926393964239305295393380817109096715135843180618121902491739754808476132544989726701016419197475321731285000691181736587485645066302826426107385759339916437908247545397717313676271752527559966373721165022434014621263121231710557820433064611306053993948322094747121002605460625406121788275030785240256632255846757093433535504469455790088209615440840291671741126957021355093919670396236879112343105333289350352996550364932274037205415681684304728842455324770478455431324953382863428685382395176631939962281713461555524599711817419698853346411441926606998342238304091025543336436152038388471593587923686889206348208727920917123846157951908120463181621595391238129492596845636326316198916024883792337471551517460467427277871202403452019003533929148370156362770471611745655112392211647658339239461867083713742593217370090493649550999032416615450406713072359743592993705420708475462246759932054944635255018892237365060799274837020584447504144235969480628915857275086618185106636225367820652845022943500900185987942834422049232346802105331743972994280952783632116297929319037305294297651147850611877275309680460687192433716534843651290158734267379797578662117508292390656568259364280108269875956031467833847854456263518326295980117192370779551591932733741613689362320803512380730526045138938854349332384108170738638632199784920097131611637936826528423440204722770578924799468074961423005219246773415202716024651757238698769191829660278254349738240093980821007895133013809893760707587089817353407899614509675391705758918779174371232880865369863131320684401898602696910385991561010376075195732391836311177700433109143011105009696948914364631540975852507450814198197753841093791523929598509308861510061077168272871337083226957637623025811253616223390358826312687017974137585125010588314261366063499296194932502162150862991551624439451473293117603100055911995396842087725859899538171202992192343368225143519031007481189323470275759359748345503555503016506278773378683251690468944505315868197081858846703196559365080541179303423545268753178838429509823259324136030167321448990661723960041667433458342696395331510919734983178540905979617159039984462834593304565637258176735411686963750069085831871972383089464017997416284715222364480936665166574544899153307989753168292038916292386813847209237072553903500528598397506144478373139440351449093694134267447386827819375294654746265909852447003696122941372032408774698999573026242138644109251672123873032235468503086013551850415009152732473565110376177352008479444782328570698686678053686965363641765342106328660501925077316662472303268047634198957015618783811444538895763889966721353581591510454005506665647748820089857915595696685354571072500498613772414971168476398856252586329747906055659358644002068343523313948664044266713574350246737062788459736800515648061743104387502022479665951758809970376172198479423552127496918506363143980803976010609489738880304344394519020472410509253217379729134802399606329273440335766970208259953315044245283661567801858157899632378200765731367650822701643384577869589349572129740432410064199782584882588383716418955467940354327696163601510856292275616591875577202653444711361466778521741197518492562781213287384268552931591593835465267986124055465996857063675066420253066847845708220613983034947704678592172922375844275474844361557428625410384929349582218701404200497988340201922657994014775395398567971275669739336576890681546499708248510712669515265413339061116558589381407420370578607284085558470739331529394688066250364071190649241562318800589834336271233025516585934064565990936148025997670499275262960486502938814685839432243870845233233737044518990552785291057721505027879760333931320862579777929422603959097818549319333263470678802114990242464961081600215124795689931609684795916746910382440378647272299229809158294507188481033269588275699239324880765523737299221056037990999754521742844121604027209350849364443763621984778019886442111649050680315155965633778801423288599323471697684360501925589092473059627760561175287033980718000922610512350624738384787101542605999214266027084813304214016113188097236892701502162151771323304128504160076485424291351876418420078380839570480506417988083678888460232131436917309199130415777813363088537204112807053719789600194333112796508384972615733665528486269779727856989132704107925772738082996268798808704761541470104439478801345248619798726170543821735894407595845657621929068129878437421753962833648968464470451182208671916530983128118331718564508192324792394198825118261107581290209183186983236205308144184489346358622900036347588968480434697321428264359544935758345354189513489081104917301958908466841446694925918069349944614047848062453056011654834096291189410884506027809288822174902901988181026376628137494699382490430794990642846065274591603056076239920850291281430605242453034128061339492881713273627124050564799768389153331312833244166665634539135363996722835369064544315331009755999939384756340588277252038698379621337035998242530382631255369141906612585165030942755902983158084032501594214346920939505775525262356592078061535259061131889792130949586212671734837824270355540846257930925965161748644028788013266514878664978298808845664745831984394611875565802763623889288927599003282512993355426350915141266163649861607147485094192311618863101431118607725750268660090469437568395697209621653114646832276837250047617743720944484281892346375341132586782687766933359850748616719495320240352405669667476531202749365766536290434380663578685580992019274332794552746671331177967075635487225750169919175451683899884980499884714134491977773029266477160563594306390218305806827610572594565278674904183461755738432700439172401861729281201681270088793941942148108669469563748489593057578813658133169492276238447211467451001275979915013546410241792442186931267542424493906677072703669340676627768114359058617820356701177670187386584391346078447982773688578945954284769920420117594073146975152834532986828631328399159195776591854670693872925186630514641037975358449715575588169332394862035749861298427715797651339474185202342784421231745437667981076820599289361494573030771218644258375476172775143659688544749206256557810542690812945227852595037387943331172336700931098193443357515107204843243621157123433771400980971371546888138961586655954028213953685452541637436787603270924245243631674304845006150162843905087486044294088613354041627683597059176801010118667416524159380812023174539663703013189994732067867052600667058404606038001294823805144678790105948444737969924082131828353554233370662811619467956187240351391468857857888504410712786169020323779880266437469927068235439044225435450861231945451873297431117644298194722317846880519878562120016678697998376502641605463659566012182097084219018643711055952251151904492207243348416460460026870780826535108052405769677917627474201728337326743565519416329579158196595277488123898269834091118272006769361172773846194027409177559368680476966198543699551834818760987895339090826725692088735627406391809650383345256329220306345844809817825265346395899307005542983708374173919514147111990348645381898165077561582603686356476830568585504329711981787779138713947660440444175105678063320291389877168718415553341954784179389222672022857750812486818053659335040331113541050325347791507384024579343647861423279194306963071339952634720135589751001385618436765117989880436660369889823033031622089066866328656686058989743097088742247437822977230548499438366376546603372967087788603564486671387931223544655428699216460277860166697743882499569295953348417022177014684425594483792952246013077200938319783632588463828845274490557689371454535711707095707702756696759490801635464007280462823073126139626240432985247508603899336436125838318880283390018635015751058857365380675578818764425983504368728760138736913145731984382512808621174718947984617763114828747183622826874616742591921781233558647827706253978660302702261287236095414558117047330157237061630537460902392073304356948991416308517432568933767592236017642343375132072659521301305548100204198228958904497048634158323935539138364602706937526979299015270980065000056755721324215074416286834375817727459280829042600260835731295666803651107811883535380103418934485509410961702940456210329914535086145653465415519867689775333688365803829437391699492729554743116929257358927708906124390942563788898774891107788361461803099869596644044730651662075162664630694789841979889745539819614682547130667569979062134876245023664710374998328299451445246826683158386705106578452574312754404579284705551223528675685905351689763112222943866068176280961634907254581253899687306971048275792258785573144191405230954594921196741116303595184553307949310129586062678997058303873924198351425144762099801001199383709135672605985405215114254460928634693203922055299907132888095086002203745367647590029357688021473561763945200148978073193426048188285785504289174039584827155800690852942647814212343302218819782268115449387620479670429984366532371359071467710227793816817023898439997738991213174812655373475919960942145555079741698883853409040115856166726758233329510690529402954323806110843108308508181680999487420884556198219939000323462322864815143185598861531162494807136036457320868846669841959203337621790846949293138530565379270563797124365048615000266250369780417147105199493326915610104139360120102824442763166057231513179677109685609983950608733000710055820789010584519444175529822032186499940322208496469346568421928996949288519410542153713958979710111693781386868411657184377380211408138133524281808021621460739486926278850372732649908826496436391622409613926270760540167530871594043375597657748691852000402866021382213144813629408652883844416202689854598632526055197313539716513994324970398642046564368138497089057500298329017726883215006438271637314695331625658243598480087219945788668278866126023512444244288336778371140567891281051903884993271436777442365885064134809469005278994382791836283611497861720903823903032150883326450476810559053425550500253447451459440885679860077355187127199469985265465572751777466995048174566534675066833210983715421087903967436803113295615057862648429099396255376231692047896938788928052518212438655392782176252912343187286331785446024139508852466334791673399857684196767785561673013763839931606050912696100152793417657755928616843588161041377028340402284674121753604581680458105103933260044464215108696779708098449482111635689670110293429551806967898346551934037823236199648958475574682018863264594256917703011409659165593095706339834266368074353455210941340387455385242901601488339765119495195272314371109438076368045124472005733938550330124568019404621265164232504272855295699138469346955832185257739975102932930016186989122407298772225703240867863883237179986414967217479102952343453103340447858297828150161458265577071026020309142881379192215860512274004614649231383981526490958075747640172872813831205406931235278547425465099744654779623874679828656218270022808791245408112975454319504989444116034761247892730438121570849573102625271778966296446429912942939659239688127769228464969331524217244878754677505765387942851762968141041477351762370993614019139897926269147186475465993435308506985607152967579746241225239240594721195584575668996567980331670351860197620790710392411746709980851576901718710268597387208316663696476881140851948041869020382739245579965339343445392647315963285758010053112379835970200563385720422401434831475446037585253461462551743088869692357401123757090819457575528269542204772973203509004000334094718731350230730645380610078711414643240747007086640927520129183224870098256467892412342372309151040096625386446672745445484531132348388665530659566995066772708858359444811866119753909062603904619984041770902878331580036619829606240432046386325135792655719432441088075904374998457828578164873634290340417885560618993795396630554324804978561980194748186871130465855270999648715136233581030781767544838167037002630658573286643612803702892128900433367386926987283036118659121883481401357032695919006496641772271042617578775423896266579326407813567584803977557701980842342677709237961941914260627933466126046752231343653351860399544182075350517540330486182482378642596792725097209952330508260914580498643990103026187050971370792574421856226982520405942932040313241762875520974736117889841326770057917731672992463005618938526517186298891130046813849324878101438687633437840894224759061093714388715525668225701100977628634965418658742081988888139522719762682651545009611439134088348095466173690659785242741544548010324254463613361356902458792277924577045133451478111618411041767433906016900808728000625296876697082424206430056459018131955610419908457453461667379880157859824174332925741505074123134267365181080447943111829468244231798266330254493460893711096640109955799897947421423588525796978100397951291289353398157631244232850603993450874170923671474176355928699898959522233913024965647313016802614596533295044678590427682349987043204888457376801573326335254180209223026753570463537470728210364136769762669537798750565990334138559961490424990771526670842334155322501814187138264309362315730001282988630835696168491714756647176064661681085333531809946733890491751648445466597916668326871428844241000307555868120688954023723611833542338965308008719359492327667059948636973766575422683219870818639575622647331203123888559616734818350025440907967218660020599071926780908133172166508321279915885408312083402883815656140448717959051321897567949480217171826610458528500419736469212024052312041536004158010142718483885983470068666128390021147881008041096628956809647860122557335209514690657616101915181755816247490464547086494729141211770277776219788404159832385382323207738469453122342368129398993260845222227681428128516018539048652136969236893575470198447590002300488341326795795452029090909649418340577983019875750688189163582811277923697982643602796909465229990388982628281156706147050818827642854965301019188173671543400838139676931217901123164957526058464432347638289873240480568954717361021426236266479713092072294892290746763236252155724993280178110441733213037564355477473279884776619473815918453703336669997530558554331033610472523128312523907412820685186130591818566043319465710642253499683975770192693780666684540794589341805868425277001573770630634725933479343450448377210236354533478378271167947602746918457436902244381107890658437912823303427994535029678755991546603376644387947744983269310862033600703457812753817483437305621763992385463427773197428729396216584213593285722040443094504062043558275165539187918362208571547088265655317843091282870653541395756370770931868250268981231908614454359875403008426463833326939173887008150221420111969533888173630126611417210805418860626299416365255944296168417595894083835053615389150771881263801662106512526846437656626838349557000326158187025009920458017945380978265771245819288281753402170140309449705237287440587947948440827567673568875469890891236850502537087579901480278667677986294810328466317992115300166411421288714103785629746904004484975499272747197678878233955426477862478633414300902287211779307115006179383480415563038712528748901151363460520535230620941198240758218442369460417140231920143283395887815992100544376316391148455817676421858947683531834471073707732589861793223004705800990681271332995782300700617426496602954297905790689872592072601470308810552908093693707951712029191794667034367525350023821781708331450697917463630727064325882491569922448575397468517555434251550836645219324331406995267797783130942150053878347908947586961257136702151037610410182430897970549994721229981015908220406246578339455563019309048667426434715659919528451352788609515135810093088849193702286548490478788525035977219143817875884401960495805555315113017602682554862679983123436283781745271151893276420575882675658636689530275032100804739794554757474041873058492155493771601911666302499085818469378078725474434677557098609613469031845359150434099307937583849134119855013212881245442186304677966898772047546211859259951823914807687464687064871039496104212580152168470340639319057799327945388045696220623271172181947872083607754504034704956538899385707437865756939834227544474324445378066743682040019436559141676942398012390733043062295143812686158770702683722307919180444811972837124122305798931271528504752783055925486130031542050517849027986461271165663834105103112814443955773541861887472374323333515269988091783070185085610179182379830445785586736841463598682286408372371611007417458767865327207516527642179883938487023616473252505381724824991273819245815058912012215188212470800379118925796466699004042285748612148297331230243598387016927268083394852140695940839534931653270586194349500419752596502789182956589372981312085234247720969319272811608203626840160946110962377126159855266035045535299235639881346557085482062348541303359791808713739374003596212435613531326702738338303068054403032506353384767502640822730202094226719519382741577278318477852707563473548000252260377068721076253005826694558420985072787683446057297850319392577926863756706709335661850089843449683847056207082279282862311290534080189681693728332401080256144080178401071137033529906787605957773873088370114350229827188538772316208137970933764400881874926677672312366841654635036388833813579627454100310750314487638908085914290708227784270468692247172920152396734658549335450371627798844837055838907247490056830972376821132619132056302972469937280123292870281424370634143722414334404477196035368403794061409027728526930390958619351923007617738512395373722014752761707913522573385211203378509298637480202065601293046980260466519124396294501171932369604874181299538931749813020681234224312356268507073873864304464012967423848528738860740640194882769416317756738031030089622507556556982697527183876653344142006435601251295615639182740635144699333537211990756975234205467604458109997541672400661410685790027249356457289899988744830166458817601883436750487631903056023155393814965489342679317185605174924603746353239690614679316911484020693159607324400450439980535102918100712068336501216184152863874301515414768965537295001580111290626123755645084610893337589189047467766335475600245962483219882539568512387474860560361518219370149787689047997728076634915437927472420971261549203165714931807563320962727372681109016674850056478902991040544884291505382575735738393576087104847814564758356107806448120144526144968609163449417328488580646319411381980275677048979559571505770233303348113725890702125147367960500004752553476447206598528869969569246564503594887675688363022439627722909407789253218423718359365518418649990795193111614637508507349209064993154236364855412400030654067340445861899174050093232848618157588667541229793583217247819843569547298580929662149596236632233817350174528663236604288742421784259040236462081791301273616500175588729112429658175314756917823896194039551524859423430266428294572961885205342042249365250893700943851862268957555381897480747163496901419826895064703187924718437611337131084563175850496313144632250644311932282598521346768503275234255037272695316494238382464731166845696347425861076038217446032789479583912713734997513104912162378458769890087049136003376568504642582785858897465240497407422086175502509930811842401343967822494090705779226188526759294655649155763971372685229156073848537343541447080629726792551673273934759318169394089095494718441061702466246119362879140341991875020692576974398450895159548502360852700330716305615842258321735272033050521381032218969567417878600475648592714045396512149034884749847493439401968729536951371512459104701185813733804360797980108362251560410865470166164684289430549692652969887989174550626758863111190716816878648845710233262731159228869592206595448997481436131752086511160910939851978921004143778927616181218569846004388513985871886086861223296748320621835294452098274152675650559990770686077648421458099303448814434048941419560046959081617795229079107863502008363254667638395393876974315137549996062039188704419343096290252288011797813346940875592754444570450134484308116619181417065822862823802169173222557728602769902229315150305260115370490351670404286971074986582090994041599009846430125811536240345682925488317668218805307596920444850221720649908614432070624054017379048214118026661106186430059580215215929811877744350299030026189708255630150257727474113074670734144592445761379361088931321963029486017418358667423914859410040731467165612388622187976718963350669587788659631851245614763604049017990069666233236653231028225669127238241138787241691591773414717024315606919063552066075595072533334715712185862608357883563523505468546256807634369105882041187498586459980380475386223402883288316463538367360393684281696037590925093852578660241202512245379872284857388656790325793667308122459749739795354596158992659032900823591833691752509555511544791863914038681072081156171035324919730334453787703899199472853804295373581457876396855348571576296954238013429474876239167570314795534564538935798012206718105366942068132164469274194891661687017305953167715366321373172915470960231284321072483885908909926954634702873727859802678899652557014984897430182745898115939871821702227297044406813755027196691011994437418413063830867017505848322520093726379901808901130635714880959581894209747379632984213724670163049972525332711659466845707067237223227591868426470279617568403327066000943609081029570013752237084470537704377953374046702407880891086570779119298283536730374166224960601055806990715386548439834349446097718956213366710865692436189616616939425255703599641309399004292905487668795220713383730550483265703168041853824416772199736361232334069637720928204569720570932847831709375586281855232873482858937388089906001855105796651006086333849264928060507099528356188694797647981966500485087677792997359548838777364004518192069793454973829117794425953493819030211104469270701664609304075430883622318749349803059815751463728882486290975243133582450052465075795807192410849689324029488838639559698743132883525871308204205848589912657025587363012640940718520019746509390927530712908483400892036613191272614945934329512763399473907192728731360865097043093988178508476598227544337082416838210576922986668260253063154569719319036616437777496786300855789974396985807255822869761998638106016411853845515976641212214769929018204378113008655550564313863654236393605183841382498424083276807214629177942356844541163038665203981199782828780393999104596459360259125092409864046096225553973866121349842190170077229741742164131527264833011074607169090755370936539591527154254023709243427308477821065193215802774833358618428469561190449145126178240157775962373626664727700456827375121518420543402564742832069190026492765016966593547754471762864718597738962163129897467008078449758568411281496306249619279107365236984730411390943284298041326253012586857715048277039595027663573002391932017416517091536309987792874563588159837782273149434752009662047154730664363118946904204865678788279726946898331340300362654531794936345930240472780379533844675473520162775422974451750387983324238853150804033769698188054575432430464548673260824173817051155606316489438751755999859101641786206142749551104032337042648899215879379377868948783845691102378756180195640154545403879796720949163953739244628193296768808286953710507094905063771393611316638390423178530712536616263185415640114496454149271635082110637534026022744046614047921936120966711853920285133414238066279835688828569233166373286799294184853193669460307088231490592399828937037175431096091743588122855187256776457092572026623166173635799503436032243817649325527908952144753108368710602913985393257730731527313676779465273678421305758425428266701860815911159685013895873091478866680590193623558056175055127382201256726227726568406120393050200873249197170371863594908815544813217581513068651761115740313215025857973204486191168985836881208425819613970989507768139228513694029084415439501026902778263831627677771920974793797507936590641357095573374399474299577971297260556552529516893336268249139494687559185324999737016167646794804914458592472235503104637695942707560616546525160894123886393574958451252778899783066903580643924791575575391348447601299914250408219798033812097312563150979774863050475590955095594488727926253916638493063604811467218625499340567594632829572916028358282533162696380916611530185017173202308156031031099426860124057034623951803902136217560169941223297849503015122607687458611253978947464413840584706742693356805703111812022509228664923261379469874744311378971340268911675698473430362342293548400694752588676103770191851955264990765823355132469837296583912896573800800547362483263698117941667439703076525267973845113378134912056251701485273810926223015582402825857440154601306717487247380364552063476340506580704835034335829697621589546078615377097430309917283958414331440760028562505467461956375702821360894258949764341393502465849407930075981622482169447245156990031689974623118602510453411839489409659263426277599678048257447410955258850178256812913008681665330450479921009313133608373639833789659033874952596103584018192338503286690210618181831122209723354900270700700749986163754413654623619117284916789845714483310010475945398508259285149849984123321984470539944337860659058720273027587125239929179795947319826658827272614351507781075635343152928836630949563470301617604486656315291329187030566942503914207896692486687065190705577782732581600802825374276382524787473841861845090285521189166237590881882251843199729000061743627998541222428626130185404532718785884404051623864697482516353561261244523519265532829384271935267772038278033486927561305037038233426985370189267616244781447879572021913607342323851029293331601957178178321548366745858176124804515881649073754655820527146753498823137690133939838036102452136641419021152226307530031910944200416226686840405359318483922741137489253626413005927147368992085844647062972695889771812667187929865154562526227677272225022898332170746570639864981480820730525593520840965828318060190249536847614732745971411902798694738073204550317109711772777809880444253707274215775167941314737846948738109894233525365684854531842404572669393662443924313416817421342547527634179648439261669452261659421287011595936059892470799220561446476207873242399963700274175680714658931749617156332309065078218553571362871413616351835704118994513945069307158687290687830046833596953905725931002724224140414670426444098091535444949631480713510162843280249839120242213193856297836685981894103466177519807071823561653269934698925051344879389570172704516951313440877262266944079437768497630741142937287225217029754612490372602837255620046259148084906997403738138947735525047567809286466676653043903618612145763679487313437663807129857767410436137542583856111375216838498440331547937606584461926701417740262065135695073738660743096444771081016841965169646065973131325787685867024816814249455305003030452373391680734179812270153428926391855014466295772829445115035037294716911352340188969761868573044753205650121783717245019673512515831376356663286117825074892825897857547595567238247373382361911219362959156786429070710332620503587915299493745317091204982644119116832767721875978763938392895545625778156022314366607368563346670117848515527947776794878051958777594155720659186189924284725631728009925856361677190274075178595956560237480124774981212990160438064310268275681042103094206604063497664872667252524934217623768489907437585233276961874476104837216352427976923289149173201578184729736308131954750591976257725760180662349206020535148182266167268549696674391265033067625963504254374212100676022066653438505314937448271361841732376426229331866562716448430641786823415884727817555834542941585616368565470562196329203727752974656788519990580298424320419824380229904724834899551745957011621030237449010492375332031057289632019924256723764257745799099267015922755030825686989000568639587767851995929623880937432471195962452302692852703382644806596611880889180448053597637162756945932756381063767504860255435859315395609423689408764979251508427874148835285674561865990231270481420212400342553079249989250191458581724221202981406369389449583377647376262132169881255821612998266967670651514316502256858195835206055045455381964663177020847843014731935769833474116099986753477599620930424505620784289214976953311376289040492519155547179526519862126300637334816607851699004588643142807143882027758812343365793273122548315438243978687915418196374781905534563713901796768346867449676062567610236508342459056188826406107310169216141642571905428044286776545588257557205792484371183990116190338238846253480611992319202553744240798799226624130155742818097731887654121315457203116025075173952011347261923572296205557265696116906591470998010241602417763087561858785906790749690356290896422631674852330666721165774143320353396793560528709167792646495911598529364238386202097813723206299933146898522694934187008369012556366092273063010693412662863546104548217101633218173051351635620905817387100277284462074708459541181301797065842835338478203369658033572642187139807008280399096118642527904031014820425264101530090229587128970944114942283312870950649822914655992367507280178625169434304467732470765883480471143347319474576384681888890444256590898196623045766780765761414897802686168301332732025048487230599776678997971635491017838849575397563062260721133324890650399231167386272824690271240518407952266940591753104481644868405592378061758357384884428925540644401328440215628444402776781148545689054414388420392839287485875423772169802333501837226128041348477706745702495147405351203822846568441716141161954160177485998426240471781841712007244846179105479794474647476156328972623604627876759828588131944928922693556098530617557173246133498972140013959964643577045201577603386992639090469404858243488704549643585474034961440351020141901120741294381741404610314369556623629617101515267181280758005124716553723914306863464361787724542383906004540364953447650106995626668989766985900584928505874357480338935834445220833478936331386280925449721005286656466363454673398079673225258711366614320496608629233530036246384033634793980505902894318428903321423098295805027194753038548515215451419014387974824228854174015516205571950164263397654057592423049792665052520882153853025872699533716295120378825063902908783786009698925438132931990333548244443770189045455706130343406424439812539373228722449095870279586266419766724177825823427963036598420672075484978354018627029065571629936571911293455948696768025815489817708720616018856356604133483798645349933706916035420284726864227117658555364898155754314379820415784421754189026067056649116149489387422886494938950325038876105389604238596171630072536026838402850393992471273849352422824786526148594769415894253740911097442755822394581262262343087444796159364997291784350531585351468565599895595630467092178558534822661578575765805325810971592023309252909498651918759261827220390374854502726280790205808677768276296139544626442114079602085321573101757268707767142996300718072351920639509038878392574546313727695716179828223629034821072148868634597230543163454683377826018501600653851054759646322698823032363892329666809752604304818142724456841105547453707927415231726393785231174093067517919373472901040523995807841597520262808538841039737072724819515238845258830527646505753690663119838721553731290588352193155343485817349425861250599983104188981463263281614759349680789178309147198368478670267010932014979219785465269637743184360260342014358899112862749092350749614029614667422738633678717045822636064003614192607275410130453633117278624678825861978623980071883215018008011042603251411197606356950052397233852929656686070900378419389611754408725755012872018258363120781206453488077522658250506085617414085578560397359878029094667352369214034304445024434293847172777154954094669395713815866877332011854314187190384450630715226273391135680750688043819530877973215307184869897660595546864421889486314856706628547122875667125365136380497804260678664762881651024072583445996684199749494396913031381036943432069592563642869641021522204054269016298897188924326460009527094577908639073122363616952557268564904716468174655759340846628735502787767987817981061694713930334695497400174788737356943551897809189183136726003458371143917357256541935330766734974385076382844562244689869231986340750752980993660518636420876509866895594515864754999127417370265359841048687362466875143042230832648587918989304277514181755278406490456928295024423221065101100454774603022520900225068009752005673287275600182396188074991336613180716370318496026286286727135934100297617062112698842085096284146086201547949644925804088972543134721150568998107329875425714636376408810455362807831496557750873230758035100844134458501315601839385810164622356049981608263568418120014196237940579614180479876450863994491779525514724963139308576830554227212436759618448693042476584463056537424382746295510408148341477153426406889680672262208394706892113805409944660139968176565841535681325530246757028227823742445896674538649414602692577819615802715728371975675510302070959246299259730655633259139082193354978220516504097396804859438078005286116237858432808206519840182617725765857139970274816702787290035525189978949050230495737575052805082499152033663535602744351514150872254379244482170216812130142403365266034520731056238918375044994090388325747755578072636671810380848832855427020476530019821752637060216964401793399929237489925429920646800787170431216388425653357712482256486698316300449529093617415314428645448447409947489120353638277272821140383530580784113715843477827515578075014874514762321113990719241003340495957191445459311523203491535515885845943130486058603300074133534694592971959847425581257250088215692810762357118873785412002278288905273307402134743495562447580867265752544580317405093790515478119963462588003792855413843019330967939269586042844252258307670303654469545659050587084078647272358285249829815612155573833933597662477434121171439874444159025849879660678576237482139425590739229601708800560567519213997279877846090076225865666244454245088447715443942115203802403963356052445952935043788134010882725203086185458567299657329545161124514389549008718054756779564068961557022466494265106968355387574624110578960354089646162696994004028571407461316744354258292051662999701929843154802559882862837006450862550722386210466929952925821741127485308189672933271850262726848976128517985199025629041497333116374485257396667043637124986054276831799020333775404883361715180349399320353789594539011713039000929800806027989843545248274515796037818696178979190012798929417833704764021317395791209997368047205276416275822848653498114337254667591342486523276305976459680718076771468824643106828532135109342941378263824211375217680983646224948639196933291936011108292499334937029775290133626678317853318552056223451792975621518414653050285199780729182002311987019003212662329446706639098975597849675277654733359735550220708438697523106991269199214224773918468036481076197108910990152465927519893937038608019061540707105706758446744877856943790812125052824366400100755364723645853156651020395958866812992972757835048055373284182631694314815181088036696381521287703630100460046233334556917632672970792057899800859198038594088484512568321239716284537776391138827172667268007297107189912879713039909534346841436049084474838617505694839953703281716343011553235356029012793809655559468109463236517417440226375390283655556228059881636887366551132424504403432732322544824467093825407781631659240064483974934679280790818216445046659813565011503062986539881630005648377238392136220650444446910821911210321631607937092332924384074715572199569675281023846378606810088925437325785540367163282216986758345792571972615634906193665771477692081773153952750225340129688401356632950764699645153438282356642648537506874083221261665066906870708829088823795987188954483681451984714510848476198199603257707271393487674295975603320165058336151837250638523449785863609226084251611332942286749564277113190760196232845802057442790871958154345586956431077957564085892683882014700111091306983155731303321384197418959326714280503192344273922323093473721103457799738474488317068709318003103012807803744248074850199004517276142133743564111146419941709791371935146432436061625254893525544321439063158029227659920489407536368707219556661572845474561035141772299180115271364770461458000828955255004190694264750799720513863644341015297647376928595197306867283688011346449598351261365186542210975344523464510374765416567203115656467631534438740398692935250011130533155011277301800847404803219605315703329407488176655893587566872467218673055899132941669104864137484298693582309535951319240533073492595077752761366244385072745019225775850151974978474406338374667000450403674800727412083603000068861315656159612248597818192846112041396018082046252296838346754790542328786323145391337637206862009580074596066005723986326124231651851172796906025958247683302481996496916848350055612862790493589229280150497800215757873453449032356014876688221837025370320785574498588303655221157039621615051406863271594717089086532534536165063603723717819394429211921776744699558518656445237217490389319325320079828645533139555245040859715038561265231200915277925671943386007672504145760097533342411247071156069928770538792505164186139346822279326568565222151903382512685116861694464441325566383699934431342321043330185398080467941227180838410397007468595485338902861258344645660550277279788430219378474648085161925095654894288916089160820056856450921072972667945908057323665272512507658255246605855547171829849682969429718828655800675955883639968535576137354762464785127705269684944822455074465822420012919140765799717994729390378919549171561926298651896495447426181584117218317890234804644520780335167779468995901199011128644693801905167904532151274594561885635598269648204784251650727695378782136744997391044040443250330114048965655043373514397568023265356110430078693265693961982948353455609624350887314182002120590032771803441036670813199469489137749803878145498169915397357913676412002620736516185124059178767909569429035584313123641397922535105862519671563012398358054146309128402359195887749515875387659036389514011922357467243881296229788235250509689574338417991253499052218593273098883782527787056657044152596551230097234913517275916416772000479408472703739400831489486112088228762168498268428935444486824901112933440943344762213385690066130548984998413723574360505373296518822282609198576805960463594584675243629902444095961845159435352868722673633747963998207777133075125689942712842703310416132863619902097183997616698606221414711678013818990831448571447932286771924353093474659684885254922171139110279294179701798050405603194218458130493393273929670350642885473428490421788210716163858009253854453738971349326746134032138912208150355788635185887500161167695282248902042768915313296239179145280275122211028813341571883698046859220664526351845847399781073706479937335160759188880673085778619231240543502817298239679898789938509136271244408163497704931639138366660539518490685216238367898240269731376954094340399094222674541300623336351983738484053977562366790563997749600366835319236607954865965226294068290660103036176735392037487784332100629242633204682259006351480133087091356440672417144084250831337938690567456000171161966088956129333785803731481237296438276082324909858556714678821574115752957418426229889583367203283143561556776516432276812920881600376713833075565827669122535742787935083842712396653881925451565018731378416020889875316171544815000500964235755669835447660539081952850175734928466589469587796382666552694836413507637247226104682325291756066388915473601577601640151764398931561575261460504550340872013647722902041479027963377499190768578568883702881666353152831212647807327207769048337223264258091307384370007566801004743363929301302539303271551591616479371088886523124940659454085254558389885453795137091799387655972897917139936177786329965110073241777421524578580477527174887056385799716985842064259774425632396556827768957682870031867295718773474073843607496136766521400939791474825131246396705619120083232434356882942447870956099251898855295837575679059479220116394061829555181032805159645359712616641958598700334550099734434110579531943806079180359103697488510286177946819039216967200320975364258310536607652346257398310443198285678350808744385635644545717685196383179190150240172360184991567443189262152811527907040897878285887777385529377894747817440484445324970249029613710428721113060131430733520816779983656002796641642753136589877846894350504796647733333378555934408578598251028296405885451967608299703646952497317563688973324472381853467078018476718975590556225730573473472880335738104226275306819216811525053246899535892182420707671292301044405750762959895368870944033140089618094557209694564010669517773112600007319357931168775998829828464503849076870290128268206566950024581303902143052816060708327233716496911309285503192397679857423919824165449174875432060628217418151260996361248325677006098622041197734661622798396901321490312269617787776992609205251035457697622709480428804232857975246320895198595298449441520181805584024095490406511363997503543343989447315891517732626435433567910044743457989389318702206590577763258150749311194491407991212260493545067122717718283415491846507711939075686894689346137656883573321330515610283691823991811175684198627773050666523745715165199284464375125012401833256809233999675339532824103286145402793748852556059168675546168184908819647630644383063150547894027986648148238594380584016018185478884536576771529367462105189113066592822720071910813226574101896474385251747983826011470076630293590288539513766058525909398519302223655140482591070400273308589930233036915682407458125133401903452244505271607989317605345083576400276141679886929890584591382591568674073443870218093220830719655107692184743703508875482599189355733000657454378124863334877756418471569540522752430504713130012519608839574015746753474780330503256025224097994829633187967623298840529245210899571644352883419356128574680765069580129340337916481347431957887355689893542019211325145187694166333517041244120866674579785646661020670385547685325692905793146992672272947115963219980061166570679100450043411406737165875845918050866725236255506090302453471698148530751010500084834435443734123669369612170813410293126149525684479886089438454301011279959151179023660785880626284996249206409378613290285816915625633846563349826940322202915093599491117784584854403253121886358501092407279901138018291044260556292525415941527026209990494500395482301382236877277338109407784799320977452617613162427125596384878276119111032882268681389765467730384744728952451445174394247669255533551689259904303464646899493419945056484656113344890569805179742728171762882893517826099411234937859553760975957850452844552098681821581856991687315853733278373226064589129190982884339713177034970156538818679237763386091303752623366748601451287441537142622780223155172240774748587221881999230962851713384878743709079050147643024299269825640065002191915768952455667374681701206131600090838856797750511258671672978211708865135830772692146490809845558893115764785997409661688361410747764801548946766443989470306740099154519529137793140309088582434079773184956222695067443094507803675297245993785372091909717140417470410641148113729653842831376332165313527276750250604361023664837730039626025759114893420449516417914181713449028321392132840419538244626448949346670379592520276088820244752123694633674865430520590488299463621479033502788420787664950364387865064163141471684226186519099756841586065983141221242613179362181714799262640319057159305632574893411401327970484607695713287294239155939903151369351575395561708567791135794216536325099284895299043422799153167719294560500054962337199395730237868764926829032208869904273672164068712017752026859088883223964175926169418800911249089211700141425915578740636772630054555143587640973464712955453694950812464503592179750681942772528748334723250788973285249614952212574970711846292036881926530075569377364759535811341036312724493921525956841110793628467438457588172044799382973067154559041997443806371940124704124963701261048249380910826283399233736285154108225275186728786749025154789468330804494434506257627216260896936193806895878233373144566094474040335397092746634790529718574853835196098776866051914671767991686562300127598163133829591721488436349981040092776835313657168398390167434409546462749226263885697976975672749510229232111089333847239344528136226778678645322518720574459163460888225788679066252971584734949261380916570458976564163723188688886238857314288200174769795578171669726052528699753789032897761480445170162087683639841375643682390184502915739086934817067344952114604007140967067625528894508137878709756113426021814784168610850679668453468570451014256622835374066105241593497550169638137044374849355507145155176849733289000688667572178692918168405477395775553088721193230612360381016501774682713240189200028923258046241330092383199154224072920327719265168874279720176676628195685090027026425068649678458713303758201940847169871484928167718912307536141108292794690073303140517035720330211167266274771793944336838014390712683347948056882666258783022611328703430737915340187611308147457766738045076224688002994009571926707613298067896534349721306115319779849622405107080257438870534911834844510366617863883466374139807905413052941402280253086894591829637833516612199914702714702026529703581090399773135985101700662079024777069919036700809822104750140758080470331298288716533020354904511031820680302652102625741544109895039356181752665793102142832112570563989726847496396377900478627556257375536279563113545864372496238863143099217136124688042074566015110824817438860491892652345356828178049181400787537430457577262693278419985597455688749555204543194769848670673994352346662600447646830822514898103576684790339058946645505244214439394357183252949651738901642385886557773652417683461594451101921593736195820719956871925389173273687472615352918802055297756857181860774623437259568716902194270060270468442538745695784519122368585318000196232022381410691836433922016591199810651434010856122055817848761319778154476390585558201753879594451522962943364297059622839805773844493725215495881869326496321541534039898201072945341447357795854450448314048660273305818811547532670814376369541158630244101223150790576166977195113666690774179031132472377792878539798699305184675617207995599902630446612876477823388577890931762178134452388379929913118149769058122402375236870148104461157693364446195251661358476649679618612158991158890962367831079177558907133375145319225459543762306932110947686051003664232638617681988684397593306946579713263557518552407183488085110765919779435091270369507148054489275028576022217777226977868912818318218954805884759103431962086140875478948458147503961158182440921434551724239703502305013198607917515311710790248387775526609297950706243315085409606232046507870326360433599593846933803723818017225756922678095183805233265041506444441171199749259889642842722453510709897934169105711614820405963208965576128113192789998274832960903958248047645160565494539615928628381761521673336562379921519469452783690329899827154148654945971928390777540618711216275972047307080048097263151731857461284457747858404043910434512023771076065828659147693725492780193083201111848349639772867160190038816762992114903521196373793110532622368848382541394060571992868119230452471802251873981623803925347682095392574442262281195468097118339649256298421452230856206691003009704573991415983665697770851251683928126307675035709177244642789067748144125753867012521871361472092994123841799229951307329424169333817618333357487579843318718943674703760907239919758346863292931462797344552432385994791827890935872289982962152808794594618661692742320573679794120378594626042448212945943064433356441383064873986716448989536339083983262860117744479217292959119004540666178703409153497550904592183558431932468837594308357884977106618523163852772075857413159473556842704889845882338550020296858287118767719490305144229668593746611683081628418493129161648196314344756108169131461305829129914097439834671657644174856593373361864091175306941916730858533065829522153978695670661905822472275737821177896063367095194822000001795305072813535133656263338899487614741125231571377036441102757852975122511324589070549913511771691233908813625058079449583602729394659676412664206245596509973440192451351862332448835420795060200541042399911357610867172984707667247541072391669481007035298430461478595564214510543158814247477556946596784398995839357400898274209875623856959083373158808728038190565790562372867810498216266447917048583370267957944944310935614507751822049651364727991781851311937907412155137607413417350431062338808858172528937527411902251300272913594062796156191856663300258344615510746588317220248222093660892766423455188657130771286019617750818318551861252935877099903002128486371828287199361423035574685280023221645501006265187823297856252662330296919708187169779704166091503456104452159989396173359020544560491964291009946752470353854312635052152016054964360096243622209384708585437464410194115794000268064443076112078307874412487430532813931473996320252096062038432696042458407194266365581224530248114640472212668225072971763984959778607376238043494436285723896404848295938981908170051053672979414874682794170589009163586571164565918354548248346814049557611674439843320748985634267890459307614280821365602772439100840742037590386115630163336443271682678264550604914908905970548776841977245169647886882331507000883015883658461429207179602057621116364756357771346674331069574161512137226921894276429480009675873036699372627220724726101445972734614140536151426296096955403667121659883801469190800406985605910511210793284507274218773851772206533368690111595925304659133229578563273810898454732961647703097475410326692739093686393172030985966610517623049967306154705027657965760383464846196489029778176442319383071947223202967490309765400211844419081904683232050640624050703426635771887422659655146152688008281135443725356719508411647054661453649319221990683580247999053279635935938039325214549857254674187191784841712122294820261556090050444375384270254064666240165716612186957721138825673960313447990127928467521157786290540285005928117525783331606221493311181432542863092117347879392676426526921963241889512437564837423041509003912314143546993427708434390388377889653765076417315008161171020689700152607165734021469766693205986320356434938276292457227972063887980099429512020577776670298394163853302491072811571121998303148836687207249790145878696346879588631905098378925065527280910756033403655249147927066976581717683591882194639502839816061234892102177486517991477639599118552462578791348996902475617831199255689464788674943133945584534450837838696362658156855149561243528522252034261713756035853405419077897275760346419416996786358685415107671978603191047152728453029847816623321834297217608027686738866719307886530454448807100257160411989393752566786518524061645339586801177917835872754547434483391812897544480257543531121820153266641562539237728897595819954081256786543511791519557178134708050587059447419391547111130048464648935433936906449826817704038581836005088638745954832353692570874974402837500100746089984917654210627523210827377211165083489895289554264298836297498194704398888460468244332780464579007365229362724559864198493972050564172755752441576339534516757392969560695621105140020268611726623538719982436956033499711161342682827167219766605809160628013567095034461923228958338886425170652770148788921185931664205720817456209203388203326806078481052803635266460960774949632585620456167232745690518907035442197255105458001152782150169793726331226842137881059996261152362068490106717515640129150085223403718510428387605551982356395544504641405504004169331530865542363326361558672697895058493743818015599288415527210665186423888923384879353200406695144057925093346579016071175883006532907773121884307983572224598976680390938807581403332085798530937828300259844002497133782857591654571969011883722570478927851473461147889466617258668620845612319937162550686980129227145658886126415131593647471683560918017526939844768648947421572767902448923529692455992357088803228467697260198919314025977325576271817518027730191073221507626858901529218345523346153652495131248976749831649232664632446226484160869709471452341359979921221777031230137139248866003380842912757107823911187074631237395714371067264931376738807213933818115000989343925646101191309323014828800897525108666923607411821636513452357115498642588549316951473665989940534166173872060698752937137342296700212741541388003247752025895956424137742821133875256498030938673466200925708443517541317067648194908812941746071005002939763345510040775845966614203194177272383607392977897785733650690559567888478111270250313996880062943116986957688827184217625084323785341105190754145918264928667816189012231226997341915865524431358578267002646053160587346289760028233859078907467233824778422901833007351318040333220896675629682930292219375751537762474204836589798357106979044077926119715176271996008807640953358104337511729264287912066481803037861209514877882838316812902335801760035490466872431141030536042341236929267426876128716392899144258567264786497496101736565438074952143866699634973503025332368751978205924434902193022751411050869017158961142869645622845336806639545981807252760082723003518806928909249540154900060286176226762825320847257841132048700385251230495058228405794013688957288482573360539699209787235450271219792986250624988729860896430336455099782078359801515487988699294049774568927042742207359019976588539206944192583902329184963595786990245699710610222405117626279226344291054910933560770580275403377595047876941863842899625644258980312743071200155811224514054058984785598332510617740089923407599989937913292305221507071700152546524800360722805051602449589613840772062222869357215099791120793942251226232316165856472358296578847068789916368600046199560806408532738331279118507737141204373191627242230071523928205442642989780643692833518230101490593381521469671922562415369928616309038786184422992710157202409443759038562455314464251070262759603549619906126765273718536991890498247094635154951609621238188002232252032813384782714987523750000533592589794461219744803191683747332714104877090621500685469543427265166598080126754979465912677224414395563423668812535933528027476419366080388297630714826927358259563048612829360335278915039667496810846625104044097851189093741210939926902689302478340274384133649200177401032031079391310192740673452751638898211176797483133888086876771195019881749562240709007958329311019878660741276625994462901517217494965178545998411679551482672113425998596361766019977120556196785766205013887612620052743394574562798525756866657975035406959165555029607514306766550683982444909016075689133929812848503289625508500851934334611885641887302227316184734368923646661439810309858815254953774376169892699125336755204124332513440802422955320984727555872758677667020235184072479406220623999508178078729949686167484820706065792192610668193188364009329325228914301508844002673198685616860483840036081301344687165201456950606169638527678791592526228642888232348556160609489523004544205319418600186775347076025143562152211438271876118973982531027518970477706410956886129818063343834222922208631445360582934058054760744451583837292736818292022063599222763911934010980605796439607748166025405822911796625523193871363325173223931230191079695627472960971796182112868285649412937922048099557067543542235479573663938385862393602375636570951852575448716688369804871837419184932653351712475109574123759765446045869820653366468833099646340461564946588474067994457217600415960944799329036648033409163856722339780460343942170254453610288624652172652196485326426227413960149113395061214814606416560822326999499345729811654843455109428600854609694095262430621205135100064030835773415333234507187876117428699072855097424528082975927570328904414337773693313095493760450516947443730871068468887135528236340190512877783463659880321588940035756460330707869127284080254833311535483973290402302474010398250006865800049999087892207275399488669122249024569368163068817847968582849865652844015327011998234745068291481107854126614429834866042142631333882281491127990149908894556064595066033658092279719132910653400018251333971662677322720172944413690959168557961258695154830971326157067115601887808551441161395172444948879905822676179325324430488753041733167480871989311478297548991097071522504677269677338299879257132058969419080250582535763965171714340828767535899262574852503590053102049189507779262205694498553608268061510918611722885194912173677995348792830813681354462224496306524401650184103657189916225297631793260072179854736862421315277602007080861288823051036000139050262325143876751420137608148055529782611087846757693607786982031403443029437301913022464251569529077520776249224213287371729187298264437160160534826749767366673475367215520946529585488323824622209577529069638642437001709062909731204230222042834742565930275644207836905885540952940864482155501039922918316125849654965534187133213694602148343002415237656452808559142495427154634726692416073893229222784841366436401226181299004051201236017407148265407447775280294724169621631543464653125937167018199656665482606537310798698430531549105634770543485439841156513187552879952337533233673985700472622631455339306221514108890689669647791445000517114757671403321271928621767889753317956375744393423692391414697443881110324796190663862552565819190057439077204845547837358136765728579670829425277306553926764950053572106290578620210680057821502957355729785303350602138554877916016217291283054522055230327725954645885433679846024941759739334816062131212760316674334748882219126814943969790482075572516111412860463738851301650371401309839798860694281072941959696553400650182707416610914701377412665267631823166311168327222251362838573558334980205349878237318468529006326379417833772817654255492288517373029317325224426722391167238782044481297269216800341312442617358093116796428272089392418708592431090422779562605705882051508869197878510181551903299351062053087278577650101021291965257903610969693885276794808388695344800626369654489191629636511460592861286604659105887181902628529061885991171904955455106890600214497972542374424674351141709438869114377802892119821706782287577073417420895178304475627640432702759399383312620351819989300485126257185611371674997141566148294570120891622822259717624462366653466053354410400510976466979716600511170311894256517671523180092504051565057932382626974530119194637105319756591447146611769492338040239742423437470151864021341251674909994595263052927538288379945917901297189896982720287135421725371207974501705111542971239474470255351874515805389329075436287767068613956180845188998827039468641657324001498711040449690862006709457432844827552579170436544893346251323640585576899732764898625254062728320767587165302468387893827570398990132075503102847274926156744566695958958882725653355004490303817017782430308054644390403588516396115116453048661638524947632228446377436510468998570680429192811910178823599591578883126775617464441802196997201294408021892006081792268926832465021643024347145391713781205670869750379035420085872746378333569629298731871415005174007576747798805100986440523539100740223628418539454552902501887931984677827957775421045667818775187659412089073337307286261497819938362298530283664533998274797520651570186182125327570712938372667700922887401928707722128253616552342721707334040917749806987824467478402172655195801003659473665666469964096850848218806669106980517128619301398133400497777985803416604251504014469293199629266109978974299434550600112519029403749349119068666733587105249218562479030281714228557193010759143876230047872090871425361692378369978991416719683447417019787368233517027565663109499254364538899349621476203198587535869322741742870112315342350865661452985903076229182985552930094243229232216329626485581976094066964348545571525996628492255047659811649166580863707412191357789216068207051272814249177896475936012355868585904662772020678556779530612645819011268736545880498140697709780282794320708139150229113434452395478987772144114997980588480311764488350704737878034168282911631658725162223099524997445040707604416949628729816712476406102756092821379616244347439727831710847878542848904847415369750032909868758217845416025918314015080306718400641048663533216409183746302975233984278885835850506981814514092319083779437387508717622617353926580529416553219682600168995896735251273025977328759230646562006770374349822020293989343159736304696371325745988135276806414752898434144145717523598518270463737173625068422050572016874225080127640541559247665327221915401814904767984921427986070643929145400731320042556102137908256637318003902827825778922344367147242578517105803444030109879000480908040608941530598588995071372511119360865899839623511704396497913799586863738815966990036562115162692858547685064710532375311049355232826321120913511746412141988150577798441948868453490184016514804322440766865734331657264589882321179827476011197100050661269949778487293071093782317686662957448471821678539517206570972606720607996459196328462007404328551690017919676654357878327189117495953574630926893709393056420155629038547058197949791289338755878473618235935244214532107313612030551821263084160724414664127009973475366607485092342572202608952323006870645099543331767524984323185194068449097205058160027912441113111653910025449249155972869862896231946604308199075599975545155360133656519268054981797887906237421398440493951664891743909795906986359029668029061675156009699526890005832402630170929549645423442106219019378080102398973712395535022364554903548400871360173718848619654711978459188855521083795827165572491117744320141158792775478359921309981247394428141346576973332200499964354008750406603837662677796792476025336586427993541216523526252486434259486209043236144964345720646185038794394361433770867886313265097524570972982440133702793463833294427999254501526074878128150267093380030885782896525898120437615251188495431696924939884829192521140269191028161060747091127103880813403434325433840663195221281845339187020971565843789592584108436180752293851121968002050334304717210819859833795514997375081282627887034640946550773779390665581435297796593867374745372614989387940576857546643231153212451512904561570615423730706002952683590197481950992809697455645410447643861221927295164157094485619473508184270208079317769086531248117203602565278307701885607905963101074347282386538609317102292232436891869822985330385214236169902199458945655457409274932340236660301547378430855128763317556130546145135124430383890477009200286853998659012127603664197178723887339930894732768368178074144703365830404642262789307272197994845237879276437808468101673648831190758860870931566214639479660604843304444778301561550281877726494465482931482388734802723684163843551394325833851746363735834592414075962089824764943456940691873500224062517261445342385536421679903571410933161556626948303962313026807485742954949710970626045054357024646103338409297857809791513429422166766094940572931563327406574350288598428017451218317659301824016593660170069124318212689153548371703400489336399612897767063611282595489582032547810228405185296888246316857546104982576715115873404655254004052889478497452237791090072171738793449044265423763238618375526854484980990951000182277066802468650560203957399730806954907035558419529207891208713714463454283731176379770590934976997168738639616456631621697982558649680051278538052103327647432238285136130171648130467158079215235703292692888738261892266309617488769125893871764399855833239310613019387493581135227310865174865163993289413246165726761220722163825092168055759139261954152705211773965404362603088330455355620454024330639106950141183127177706642400778574455032585343388069642289804929331990973375527983164789791269847700264313401937736795724948824854674957464512076514937379127021852819453612972480933271247580875585124355813199846650610364780032516742331875521342224228435544366335250023358484355552421234495392411235091101186892146197762504165158029256527529470755741055607804599609905206186340636522913264132543697797543703870836227449395517361113264319489502981973633688499061195089810222415791173377235863952052102979885893697801339348462894238300096479154430928219459360315485796789418049906675121505934183441580026580812975739885827819673276156149301988689859786108519839070954604513055568315720588184400479827697673839902699888948994310760405837640191271516794883149474645922960202442306559654774700502832379951722726422463534019629287165684519361902703051607962721950181740957570337814732070011605667519293876980707151004398958910490463717129362211850270442532507075554168634858672344840756396534707706436354083441958229870892109193994119073002115084085311965903462249915399611307589326956643818310071707746830644036274179954332405295058072116093879959864898000605991056153282803159723238042780189029712093387775136630027060914160015172964099136393105795749265557324758548643387596064449417112561820729079192553581123926390478575536291135931841601214460016074140416059811682137715386603839951883475785291990157472215070165459739227142848836790063132908511785796100413373225541758220005247624498691095820672110535370031226985212895210273416819178171938188435311692097568775944138619587252690517414360743634803530470668621017517470390289797541895493501241781390567218278098978791484468478023149617755263025455208800604376903462386416341754773631372199872809922112776219603817045876357815660013947856588984406480900928174564107065115942504939356270107295706333164851316804226809058910889168267350246083742616989248660711988310696036128314289896309776524026574078188615059670254003410129555283925247199790044756420473764900926344319155132574461796338681678472558262417971732600549220725929165259809259208623489418510944734571400688737832390597489010214818741676377392783359326765933581539061601778877735617025523600467055444275817950051748410200041917315266670637868533462352572453274552358406162956596410368776128969207789706192320799519657093440625238995192857048351667503960617642926169864476311911846202101627275030210800612992053386264271431838808444482523102306043890259705178735844220916319587483772686546720015043854690357986750788850929117236207118757689135897097632377542191158137009802075291254101665808417845445831991324437936965895972327076585243276995220159979560607031845014723554348493092751946543645470553315075897085108976232995984507860360318279469491486042969267535551736006791303680516644941882679346143085582351897230263404538280012902876805266350022256957502268591312531853423958249861142205143069519091281523796477491610580074864355320150596782166664522462755122680590966936513533809223442339695153834742144383893241503676854905158346764786229845867960890170846903596978188007426903258871942139699464229387589805172711451583251110381091817132025491095925737349795118150045235325806145947238734164909857320932195420138309865261093718752551815120563499424611019879401328723149666496882642553153580641972049950725101842504652838974049802091146975252328581454553720105091964766676761388758258093053740605289083355351566748448477965361852455141450313589042992698295766547940705938898444189336516987263113891225270664300265864069813092278525897475838051445781119145815526033155182867912364710271848801572829046600818275802324857664145725399529126034926220947907640916610050718210039215550269564080953220757195508895408499437934286662022235164394472345130040859311307863354437406768178816979845584949687328975245467771229805755653777172616052729792407942706055959128823362045330907373002566872203568671617065548825604245531120306567005286347851357867440421479327249095792224277703321446317710795179115190001224142464464065903788961949213429135457503242091036742751394986966433676559546867522005665635234879613893238015816639324369263403400033101646638396111221073529013667273765671875334797574960469689504418259596136287023905278228138853272910771423624879691213244273690150221445220964012822256165462769267920835735363969747596871373198195946521521287645362808836752712081520301401690022542590620897850284709619122316661134376799831840368497867763473614669451260256666643637209770881069330155124912906643946123958334722033659838125167389514907197347992000866357329521775812671700718992168694094171265715555746725255163977773578150791302532047222071445573935630036905420259063790324858850234069480113151922381580315027703189214557323510259930317341924604659147912850012376936478788592401118509424827444525468576605812531449507289496872237701770433374074542653043296177427466105238521717401937342896584185990981361144059276558909782434531803568393332609971776910165205134024854965466718957368610452734896198323715642633554160905548367675187365443930107215556993036629472740556796975410951762305666325338489551910571400921269788096309962067341072057399637373315151598186415421188485122881535515271039103693337981534450805192790884994695364789621436426058114757449685713467837963599427036881259057599011124610488500258109360154801300014112517674030103289209181238102704587891104306441132573264548456873320368814243307465493745324546284682891224422507216518805569391909424937498051337610803930750253776740504630600206536156867967890937973068640624820542504394530394361454768519550137586801390638664048184732083640329973558258737539034473341600752124650443220300417022261936645542049452151552640732519314121943799128942749361879441865220305267942051319795645862792923828019329336465267084496365636296825409766803045959485084662461207237801860817133697875060079651846119189984770348251687908207045581120828371146930772309964717095436869919063391257396523307558144680034038640783759173233140524206913490978300193066127091099761405884749630586525823359959743488360894045692395463049286748386242844998104306876485024249141276558790424779425959527120636140726274856897428995805296978295976466628410883287178951477092846961403892929455469612168850702883185158136096975443482016519123364698775118176964371850400120465598381898674737268094867472340826342321459093998942062387095123687775756886238969778244988810936815373641131837729229769377876724119347375674399242193563821753926404085197174852458927157662550601173926533223496684428055366418337019694611217989053790696282479342674684172298056151623494026841234105713796482142234060053110655071211613266530368562593327696742532062866586011143587296925096008319223918186593769875891824666290336147078417343076377916338804588234515864335127053200879161375003727501259623745799629526096322354767708606267766102110770808053608998507033560236058195457633291844435999178921509334328837913767358601362174042167905346368796389062368946378750247417795834118689691842092880655977955782172365650677182833684658708143822047937391519022548201768487927461221995853453645484512711184554086989571881993707619940021995804002217803153269389921222294281380255162817394631742654799679086994796871748238542569362059817883258523106080888008752962063846275106911737465832880042818270249788585289345242455820351166891775708883760565694606484626632688143318883596725583106895322944960756943641318531301059492731820950418289290165517568820536873282328250626832866157341364018011006149454026376398561498976556905244343592713020271366477570636102330898119199256886832851237160280868426505306424721026416871914913830552093581497347858934335794407712673430344170686403452511301779599370154628027861770825994886690745767137378817029476868367347171580613902127614710388683286485232175567962160112977233019658914241436344864622006213040859841210782972939173981514110544896374743670758864017697432491915380901509178407229022135284606085387964727827612259912012512013226869792885733661438993405627193818895230028312302396164365332430183210650125618812958525176344086622561783386694186832033613015741503162169461379607408537479945903427238675620674961853281617915006122444964391838458422423151279780997076974638734252272481143181070612263107438828428485335774907901747208499594700156682092563899877500301882937600219433063905038232197450159740292524464665851094108225766265027584094393077111359009915702566985177430882834088322557706718408725547997225717352587596636431320540571199576274454601970224892024034491169428262515044000316714082807804988399960129963704187490965505072225922471967026402058494633894427572616748551137929484681633690274722716907082887723961755084108466946215720153947726125135275689509527710300405871051067972197268637740445117399877529865771588508940532560654115573110655560506190130097955158903531635341762192426540250757945517019013456040900727930828550455637557404823307507682870272634257551681023109907628064629367166097734753260143997672678576423705116346719740950700786904001798822910206833303396521608180336581623096135045064711855670859942572374569217824583841992240732573453222126043883427708799053975969780266863862827289033353428170209016073846953447783956754651718508396546104929444725279797349519609146758459859821055327409040673742017341926310061780820235793606370295579534047006588711903974063714849870850241282430582044610457533622836983737291044712882946168225531159437323596634619076126163133300161264661563755284575141303129858317786765979460392542580664634723040423316313011944548808066033936979522312047094771325157500610848582444790961797667649494494879255150363013604966920486038457452642017850243411317349545293001328342214508487037158073253191703152172332744040126238375419298324951329898671561561966512451819841535636529202897755999724289516918833121243168453323189276968435461867117168387706499199121563361781526485135029630531632818167243715790701544570659197072741696179007193557940386604874297618037444361907760632424673322915316687606683402407541178881868962375091419066095762691650412961539965594036368268844629995386235331582521063896372313389968245143595814110554116175335659276527124509197241784962218198959722318808233514345020056137631045451826106460979513663833481549078922548680927851483514029236607889493736725771084703196626607440593105782505432024995961195760650756807247697209221353222240673904788081331913941967688874828135854720094965094352136164022043491640445438152784946210219842013881779246471640596245258593935069154240184219466033221865491364732361239279202038575657126015287010269565292592797607359315076303733415797645304299785505566991744047481890887852623534331053825428314547483197416228397857262365424906808374725856453930279445157323776697800435732268308662171305940344446106241901278730182619428738140636707303651033022625699426378918190102432332486010376707441747560971802587474101116012211323869587208302763699673959837087156895850568901958109826178430791520705785147816172147050737762935117634481016270006831732875043994168906532946202686726278618389984691934564746631528983637093145685369489454119721740192355219345237476153822901363406993227920455667296665245080462878174650533988197912121234721026815914573388261080234511361761633636000863345084347240976143339065097938505305024935663157634200733526326761088883688874353541716263227201668363707517143174818520962991619124343791577264359548359017808768290030996288574452494500510819138254460173366383218452903045444074048858780112181923631158233906897802536117370483785131450340445714623512536676049588812667540940097410076441063572595494068515360843288828654011079388848346217600011487061227741332140986392571050245953028891126599398403968657286167532731167431863436602442450414925097368553143493873770391624585320418942411721741041163011517910298447027107543360745988141301003462286766732958483088785667783589737598525260941834591407875562336902628843846781479429047968601897755999698225347141630021148565813249020469162535046567453983888378684643473501259148207151641816213768904254560070251246987642462311097984653045851117557260568841381001663066548169199297484910200596868239144669378868458423796609595719306661118334982993490220515591009124508484981118366659525064433810095799527615452223431269698141197886557792317878852917436341982277577690933792898891377413007041904889204138311272689214311408921394588679000578777251012767032099313515111076292780754237012126467645815286886104487672057996124947218527153229024698494628076762496904747440297491514129800734365425234356892417091097433243787724106930078625987800678942387904220587281743407297023409341928986244797584066618152329168832823219183115369649464168499152666830301519836956402987584546263874578767327708296105618780822179957768629913659445933529560203395862744088148749176578634382605298670668729944593349721516268204029779720868552074393416778369845355046131549533973925849887759630168506191193134008896226333335796352680463892111069731042274306288210335087882371914119930214539618440020058374774263874194495815718928543798226924339352706960409258117945417872429655762313171292195118767365734768185336682044114167656580163919154496384688128682229465721422672083664496101043286366744577971827534010321150949227908100898379937149019488142283494346177692311088463214471260119258276176540450679669600981914368118090177288925629608612967839688936608541209781945315479650256415875202013028613146842728465156279517430558362748674523472106130131522738390086715614474086204303351802748702098954901158954182372330460884771054574565275552845165970933317448881567559013146041018268314790298381086691200937319953038496823373146673327815174969935726830131356736647050602702455533507118218479099983804820670776966189243958195901391395928857732778341772926321044233059958232432682554636755303512389512548195835109164128507976081028834782981257949850499050437032508562997775903850370898939821739148098541664541982674136132036640051330468525605086174781120145311225014092005672459445523253643844046919053883914051247283494251397120928660335134744780080311453698711223507840618149600487444340720020053300047059319722132427858365320982032475119106681659988810968297069875906939282406565325377361817051963398692634423983719283164449137156293550745517136643920356757933401664073072451297050804300325206788951761438756920420584873187260674697157933490329962405229646021116926972292806075653680763403459073272972621289719149574500517537019499875014449726492002613365340348287176680529339688418292943793295643357148522939742443862224932691864259243224055613499827630779143099843733428678109287614595726382640610668481791577588084806225134431951649912909477492935234432586067123428296922501303259504397246783986527880409994169229999047529996258720243499654048610870866927886731808609483279088039495312723408241286373388933458949554903190725670305914266386134572639350419938046189874932171467944531801582366016013928684113616843893428208627350395989963358524130799124429514546951602730673643880476552818411950149068204371322581067475317521788480991037882144597952312128543379770066642295739701138087743901703367275709845610522609199742586066763807311740021426897166867587831527828119770757947099618575712164440354191109918034615553339902398632961870189870987721544350981758480942644016633177620692657252869675102785978112924708442669836245822411203943245442992040266171597196979680011296244866362615064764501515876170874793784813490288297570456008864596419279312024553652317006436554320754360111979829509724348662664279259875483143574203616201209621512346246080474623477054410820655927970633513766771533222999862992578191612841486605107610847704985342646985447423100192328269150515795167697623589589984847541227187286818835368634362188166598249939061596943095508745808555444479630630686790907185885173098120699199811139606050345008285331762574485253639434479329309493995223360679183544456255218058085539237529385370069360625412445541353219662423357116599431590876203975265574537722445260124788379187874807866028441026735654744185443766258089611135207183549827067202428864319539736419215132233878241688751223787860454404442521340178211641187774220374173779507212276334191479358726748826609449131904824625570983978393250951169304698608794323934701799942059626422147557741641026505367033185030488911498239594129016295458047311339228863286002417008608027124447091244294003778642153717067809366605895571797525498987864309686295776902358139243865767468748416597292101110638573188721649505120981162622943784408400270960246488288516790552963492884632653216359631442383850561535944301789522535696952185419517446990233828580283168465197040420461963541889051627405245430565560369970263289353944366878798104095937170515595202986767360911723056273789979558953473252333165423246688087378496037451112371465734558916614960696155247470215500304888613235058153162708859656581088528369264582054062421431278174722461918214180263912141772164665601868119084858127440552599128013123411298783087254173246293010164852263960064422771364813848843564016586229478732899168813045445798824294647382218811920798807610649596432953186247660330491072817956130848020838677455546300524340053977174829097350382706282526506602289139997361145611254829507297580885106965092823751784066651662543251438817856978612400726099791267728255264948279347543792426198292788482508127307940292870202093502128891709800385036387077614973808091804110979357233913356784117835397911892651292650577103524820933238882700469306050698283818617487950270701025641990256181063634230116607239539508999692500292506690011724158519037797982298681114958071919128295349461702381858528157315267040121167981117442365949709689399599188685254728800425990938396281362455846347587825959653576303084922155454029448197084751306959141428073068583602843528974469813425268507581489400775589792356741378093889993506823514102857490022810626095812728219286098828806269137109841894033162963390469081615731717224943118966515414688839418256799142812179892935053473534512672025861172902503941958829055839144997021829478711547596663944375814740493544284901420240817612993514049804684777412123003355076176125631299292856141574273095913995335253333329952562746298585296298803782685041175305170138463556402990382283669471481855126656220496600858925330628412634952504735180440911156064975095707792974604412093136027502163729428274508211906690990458956351910177404185905188313665883971561140169509294619348397016841574103576437437698064447715195306888207283306830649475806746632898359928989180979010382521010357064195403937756117180980695072179942369019260592586584048400430439023252501396509047275906284707245872912031828351617979407732357018936152413586968745092573813623562717056275292304327544977955801962923043379173731557072841422711804504476501154934146198764376398730501492459615666887992745713512950688069224350496816388033662808884949973321028321101979201150293132588229232668241236643069444463727162516567377414319156380395870721101375001584092185799077292116656360496709363379814107762752421706620870391035295484224634789657557304981269055953947700944920573733680411952723766848590143754601473428645298728071381884182866868603511721195553939940959967995625712997267089939148569091681741772441697096768883219627573560792044740798293413985826149489496132936754544206580807669068506923580883649771102903507113620348456367355317570249129921889532405585674436479055395326370174578673449995136954365121447025240760921697833407570641192685580063459825111602578771225337174451722111203951974397557225642048496577493221239618680397946572761749421697161631353981576888077401092901045511514990506821711335675273986669436296516756238933090805382108086474464456473371588845483430571696426296647543646618532882735869609001701379116644886249113489927620737615555071476792786289176119011523455375604292202654209681568085674662580448441777143244757802327061817306159265317257558730499002396103648758553016426007867989631814983959030753402388113425853829580717723467789464200441143629865551709982208867438757854145097381222849911680299710875978047853205385227718859732171640858570603503392826106499686379428640575919228930282816151666590960478458058299212621281329021661245420375382051321676400125202636370062751516113318225266736467400855155475606024395124182626769409964361223095986662752741307152372988639195585515630973420064510894269207255754023375892981029549961618717330540343256340007421993949445836980216605464033644102577118000010048628661688645552086562275235554658704795948586580656753422141132208624013492733388765940374220973954669149033869826241881672894898564009832266974589538784930840634712736096479185203372320248396107629002513666643646980161317374934629486938662482734425791651597348157220406140714604149600466068266402531076870555721234076304721632809648073909806727849881905021567153180140559950254280285600844723933184339588465670191322384964664622265653173576286656291960130639145050118392988661489763473666128541792370299666788897928403296139694261921611406674301818885537950104849511733585458857954012474887667400957286772484450331747281653882031674292351016535994727698429505272280909338316834582339796851035128898214645159393691852117777850772645431437915009423252467733354469072317071606532928128466899751862522999365846710594052776547780440452965029366982508774919648704033383997268864925841464194952730839170881457211235723839101931726480141016691739649842181752227903838720947744795155493176827642110289328945433029417765509804237639727518088056774437581283503049619453985325264391231449255036869007890205495384418631478225487261944930510215492090400746019463493032582640555576965603099571354679714729966333166076257092505835092874850688460017938872493715151100170013900390597775938595195912386124823526899912784278432615001813812998775607999635874401574757836826173101518640177710071127619654350212123545058366546029877262389106915178750218081892153022514535300134474862847876015525038359864231550782510844128995066546091522739730468053494223702805149841727020080481944381657586014215370925764939392551912911125982241930872780188018956159375005488508701948320453994516132651487314830485808426134621739061478806803692906345825231364647339924886805155976090008636016679774824479870456185132370581122671023748929484820694695843521463009755301538452705388913232367382967379498926320873647370081283777682639099525819025470962070020840238001584492212376527603589462817289315680361616871776870657573578465784486829859291333025862736998022527594910285762780395133796247321061609710922660264554685506790226511750878980267291784812796327239823051336842462264180723884925321303770598868331829594165545576768064750882461637524262381891688371516585060947834330695655959953808815921528255828164384937570613206003527815868941158168516333872697397799430654161861400685944422786980857085805532337998004852399226841379472650037883362058673975096076513420560616576097015262599821799412008522733166571577932474112789691367696744264445888736393493647824306247376330320598408505188424753624275018267475341764362317106152698403418365803357387448357143257140546201394614793066648799072077362150814293207282135726200186579333934371837880773486828259474058461717953351227935925037822096716388161449318022891100890437091661909064456317932110770016621249121050244106848365244767410394732092821427938170415766608701755076472569051477679812635407906833475326170370402617172755109098031259155658455153458604934880772078675412699861538194834738334225388835553663789498165793774812827152272112408798674405689537886813213630135791860089965254783840955768350295544282671897054883561520192828213055082000040046594381257061102799907254693809847031512680566371391217077895566080480729938683070929579403146954315989735082569894866904016871455744545286496880074245766258300582702135937863456202162650784453849697957114536938883487246767065758725008912984184152807936700024683269710063116928252255777775681999925291434099372680823728583958139458135975082181203112026135945277954117333121510500349589054349562794993998278578395017636537947937710879983604927917180300798644163846505101558963374496540564512264185994592921645019876351347294031898669407872105188318491319660701749160397474614942982151172175499544469592189793478587856533697792061289471606190200801327771104127360316021648236559363974069118214406168309555518449458916979399790186840744882105419742474767279849185988825876618049862976397716255700568447602964121910860945141013961544409853659721540862622777276639527206968708835371976407600469756939682210827907814099403652446379369742467785659167456838214819816739700722196845289016938875820892868314685971755542956998455564128942647659587345974792553714632076615505564474982001244142121822188258406537146423070489783130193490838003966137747762637870215225660067733512796094161449914948062238785502635245349286761102575521552070505606149036899869856141212412890747804867475139040306345747217819859938147842638891495848623085912285833886632799415338560840155282055145311702939074089695179054442704697158858637352636166141386381988261634994665719566186249585830255956136058609134946157519523844651575661210580150824613455107031834335609726333771323108519784630550790417058184340737862043882222779973532591067148691350685498663808491564740006996453115432532097062117463874451073298216290245912021864162316789354960298541680259293245753231578697442872622350532813759527808462374678664686506003967921668660093611870676908519154935602181977161920689014649468772423755064447776283199557821386980770507974834814542886166236516908240440904510249975060743692131902792678641415768713838476435147533627128788618779346836012694609402476914265790233652611171341588380485426557651589028930010817109335585012167331284786941627615837502493293171868210680507567702651313847288038035713489902854052717007136809008113050993854705824944406784735775832671879725343394727375932229188954035574461102551399102810185440416929486099034847543967238324755067448839427185601648820698857296525925499683237664864912361894877045309347685591418655494744599386854505236742861841119242419136416540726354783003306828137819713053102857595182055335353173595555308892418475016708343214643378768897294234863879174060346572781817827218633816323062587599648285658572211769396473766773741998517492228696408230295660549923533364037049480673965263630354923619171503460717365543103398467634241569158748626587348222407669623225577118451261945451549218763862880805754739755781386531281776813534781861827328481045212917157666071258144449263232717867726340379578685212666437080383615650330222804640572618778963781948704283325891318509200508808387610448049795185015864127207346609853175516159462624094089709284979161055003466764863952707956666563753720393285746228814459698065597737383386381561159296855148632850264629866136425766400446185069082978755512185709110549533360954644924729024440938898718527454197052789237538976588550006998632303396992805300043808546917502042031779190441312177867686076646204877184890555220548820461101645480153998719329371413405511194259877680923832260687678687900798594827804291239177249446615515616062883455977276775463904037406263768354210120602916023808696542847877704009188980791512401022817092244681284211704331469719413130492539048776940385236731637832257803693708456359256985214604807704545579198053747266787120730237599427109636799159978307816445724472057997111405005828191493682124163186096794223263163915189093680905627571467357937882303862926051144381251617393977277364630258100807863279507764113522442766908832946022370721221770489677138420485236281115846258307184454266714838995177592509774866445610717447577744545922618350614323762103379105934503969607441480558890751644082420961383526879998395285953610371264169120345189213646628483846830631168273086484196314236088876944392368506530231340523043000884765874849109534501323222703875130520054231708530939081059001466338041881019732928875071781041630080615012404757670797899390723841759488867920166197118791564345479262598302261998966352293037206013231340719394366164985878814981424428283430767401360159472201583026453950810306250943870280016272184611911723132050156507037930931744753579048733832056592713761593126206715608492858227322594150792528098378309990766897654319606056274651420033105526218055685231329685029770320902789863678383879705437745919532660342949052563089895703486836847358103234972921529858431829208320644689960598710956941902848473405987709725912615545644186708411695997723405053216684218691828059228818834507383364215525805947798124689544215198164216995886213079239743387777243216821780334443746936416397799742049848482489100389615733209148467477867849344695617432008148608445423413735314026624137489042289244838679250737952697449839625792566554033295506830845070229202647030675853704903857823632227032141583386521790787163893421223658117577549489955587774254561222077415288951847688117916564300178938430736940996783689010089875283448878073443762144369073820957947492599422343171308539533373673468992270273708512970097775759027915737312963415246237967406643038723746821149408886105910881535900378249514462956279711642106524644420230563860627895737231928774398380687393049494598498247396942842356736079433636257567818751233154863203090834888394886665754007806856976193292028997211219267452273068633008794596195396939494053010354754225908910868222577307477905511158363998629119689643122052012047946762305934675780750997437021196096544618383103611762311859534652383884576713653926802802585418001801689637419402872230803812332750071548488885086103884308254887404722063320024816128202069776239330947713058068792923844261610354521840264253396789805934916759542803955737310775810392882272771749167675737857333826100358354222936616445121063252220479697313977673824570281608358294093645586920045708681583317852284818821012050531556876346486394828598532102548465898417098303738805786811998811474877447076949756062967579195783264618959496300473961736481862320913321464477849063070581905266598882795857491561693535589266938153053528748800357767647487491609601665235155370902684833810347343825048993387061287292551321045464598407628989758045636484144994869088353112601181501074491199338217081405876505571020349515307926127562897367474558582161723984882471029742669318320883219730860736450014396379754006436266535302635753520112090825321103730812072322189806856661595927199116742949658524937507215351453018157142034229408702230710744646631413103900550821101009951875644056273801970133148847629172102029821573062598869946723583592259426746963843092742336426744764153622665173026710685897978420877595886198276103098343136147048454894192318242886499313535332639270103731705994810254706211990664644597087381551056185790648610233626115548800542870380166140043779804836334564732972644557838009873354725273607751677256493934435073665914684661486455666084130087144708527148173983268449010148832357535914478109924625572222165029471793256971137817010577359921855030907947241970281981130333639113122877327982117019039025261623714848898263849130765788868997673257574656310371912223326750623291415600787915470965027027243685852409961898018431258467835642099953086561398363662857697899409062687042906608105885896189646021556209396471674719190359794707959151899723388321016224129996334837023198908270171906994798329329342661041482162582890205205420852551411163384281795163674166083600247540829725671925514523766468595106404763613646013622553119227023984813211868368309265717487731319098225876014800251749043979296195478461645616504663694577018781315732887745429981625967841885060494481368042580443375992859498023644361934344112613113490865890024934348926457597729179394477799528426346749038335996205987000674790828778487843629629223179688755098488814330307632735759076116635103739941275749978733552843711266863358089247871744896435664279424283323263788645869963009809293031695776359372868734615109732438363650797130848452561915401956233284399031102352172055305262222285503566912248527230254052028291089323361948135042526048845541341713902363861801172656408344256552519664770453324268337858189004802275027781400499297243066232548452023780991198537391093852318997008806400653931647981335497491967311165095694368441030990458029534675173750714980003573422645427080472222360611687600318167802531983013173528316436157991618292724922790943418742793379700707343934371685957862074352701073151065653918743414636575063379122453620584076848957913560992721709513163520293145044075961535646935374529883484726565612185712394777292816101566232227074727376491825586999811882287760974906712604949264198643156332622027505597708229108016273674320953413229625537924651805231168991445153670378174350373004591583100261337715481325187907102240816705454130407622792550352735272759355997068049165126937499666354766806560396784979478046950602678364601136350283403674899530112849739321466844511466681042750506278923038740244964535306843169671029202639176310331798666547111788750277972226348054117289761950626094144101377235593951134317295037929718711087972541684533889555677708529020468411605153736329541287373007235590594981692639579056405048452476991162347863206359275692339087155066866127007078720674094728026030084471172714195793758535869280910540968078522638868273240336810230385841920035187788103656595356120568873063560833455929380718866820771313839746697935711831011890219541939369867006977311014517367751305736280217687558202725763676865329767858853331481454241579221667277114160211712241862087102347757220702578130320083280981488683021195123157548341702312705738762895672048741038930778300138870290343050160276223866901160344992835501830937906443222294714025303244347324384163204847850258229026388992280354782229077551329389549033391069486935782611826994252593913242847785980883282666177632232738991373077568375222380670446548519280957551305823992613101554474646999109103515031994929441031485915777905545563150576550924523787365044893734540252386626649867308347529392754033258487057504970685373743578496798924769195670934372955206936112869753349505852520683086449564442091991065905939888975884467469570530324531544320661846237231957145347918765827058811667082904266894185555004132338604832770924415523014093616445227401101218061771200373567383645306192115750579979604850128707475641854423887840718800208539378844311104610385128160909769394783563051746579544470635676137040259954106934531922708033925207203276245231076552904793980656313639922475928073482345000264223773519293019435057835809417272951395521211282392562086691354612042186540741217014071996555659114380539909249037455077914233492630517335964544619783637527469265551988656691337467932687993102631399093742464876264228306017267011297811944355998484282008029776956783065068097471761859718056953807536487284275860375189536169430380228856921036954269417410448668249574395670925375618761624064363881613311026739634469684726301494878006527843540726915512859209174410015198625359795248731105424724632488730723808956910060729504112169485446338677168014578118119363672726953845509593506077955979545044536077486580183964074221904496460042679304584771605772735113337602766586706250530439963912398656033329644075532553466158972151988869418951812858891550380307082968623523491141824547259657220383370134564539638146600134598612157311396567455529658668229742379642326716240007897893909005101844981764074975308362413735679615685822266160027556061216544067841083709725545310468979521873960043178707076113140289306837985159746959417436984346078545809923160436083805160425805788761869358103922389683855550819578791273752080200409850091808566343506210976579521224927700688388132016090147653339649950855860255439350340526646876496341760783122405093182612530902176265336927217163962640222831429738183351989229345815657284811351229275545120754263961992063013311319600457513601350381131124912523706353136464287013905583569063583591341989409157981619400992832328717530020002702677850410940497920128908745081191192279213139391476845420833583855220071985433279692337861613624501833679222368712261909600405485949729928569119040040950123758413439074656382852043817622171680281073601205237006492490431650277728481680079263141927057502790504032250931468777980026919693108550380177916033285373617296722522734177277459872398856365168653600118468638565972716893367290776112718503285745908851527092450856752522473955089896041616815777851897862622941705110996696988460316028309679117106899281638892768265749578158077023244928650296210521292941558998925166213650944705629514877248423685020597872639434585681323183252115355449565190208241088117246759613542123064291673837232784462652652172750543570759941753418918854004413358134544475034144766221941247080372379039796406179172321382318763987542036499949680819856084149373905841407347439986255233569022427545023459102291606875410302437420688744045230418825253498599603843887845086341821932938088263088814544870157622933999447372310639143673396272013520630307006365441840866851271172236087699149472180301633043169437265708705650921980209258499879138790989941755597187237949623799417552492700015680878015270571522282899135005679250610643226602979082187666220789858479961189924706122847808609980674186532377470038472066217161746217465861568592362860305081575370967628631307811849777956113157640599891361056797376924186088502541768877078548158356809461327369315803734302067241415711878189136760973798242181131140055322434587573281893054344136638725601549612263646429799683449944452923572113067344546243526784654195691213809961088734122297156126379684016534318766471589778781379446065792348450847590810769784474222650613265361552743961554021108783787448657737831060340249066893696517284049348011536048275669376461475754032438908804157757361690128912659164515184080766311282966706018959779810534902600877479701985725236431309074867166284059402187951085771498123368572953669526259160572408073748353306311443739353510934634001552174900278883430267073812627080661534144717988018064557693718330657709055596330309837493515404754558754169323839962773654603655810013727655826817212592587837898294146725420628961209583467592550900752744018812420262455942113895171569772934539999878601191077250783429611507082645266432603012907307094643695585010016510479526187997350784615783800585907956664837237259014886900053944870656989280716712380625232453117347009541406051821818038358749721262235435242305109496582756623192813959864492040915231543285183672873954481947694089980607002795871534484059142455717543431560488414006986132334072520037006824705383114454708297913658452525086529045843852535405518554013381713372194361252899023920299633569521886430466301318363008969610131735425599698432042846670953202021216106683216110109146599526348842960380616055651408510667020145134662718853495247405468582624465203544387066233316635638395964216339029770947903780757333842318625374370677884828855637643164394810060184106088147776576039191642473395778493362028019314851897730551274094789205971220177863796548403856593909452602548546363795624522409436081501515374234936720728254562268968080673613278171810863458140865694156381000093291924578888705193867165768130615425566369614827405750473164922555551100329602730585196372883565270355390867221560011493560497574077664693683444433115660004001649470723831653091376222342405342391187177060493845751865058378410236522792021000116187864332951209099186296435476020535634934325418447010542935758645189366995426035993653445007572449679145466221130735000404120948294053774395194811888578858765021841308422612115856675098084815310553215519785784400698248771944407514013080482191316771060258561131263928164089045713055141487147923646014646152821427768653788439676226451813424060183960532210676089592858899730860418175218783232472941771217620552802148640811911556931713861902561544334390922819974619057996550965292631847152916502844916931870357955254184227731314876281520943884929015876472144462042432370591902057779123523478739933145137830777043320813970871844532413974107705526963665243647829597057659579601020610354595440917332077520134003751235952270743719117276565121786404817808993182452670530024605977921047703174186416254972936546568045567295160270170047617478781152472045522267786291531705912277275581098670005070990457320774332132692690084737958771890896884423253076649271862316905221646070177425491977716146439018402345870262403153376708569711037024233109306088074053372028197419372737768146261983023425914562191085774352702485910042810603491829238594861892311586085529402396082407713975865003994597285750507209928743409320327827188190378884648208985395172152465505524429638656722391855890383364949952362966251037605291580351448981381188022768399732067285450592653740009492298473133032704510624832101191880648451574121174243061273628616443095376559550937758587770085296734557664929125760963427282398049098527358402295207400571229882552107742293776219669556109807113451291089080367587617525110858851659696177764288154042690843834946331025784309959578363875146917967541152628001227276708503569742654166541590816500767104820254177359872413686045721103138060571496325761220595446197189283414015108403303527748005903341385993117383214226565337953590731233259585436848152530012970280982199870934605234180197135063255709684047909068710074536757377455894022234393793319046905566415230845563756982633129394548599948740830649257354528282590787989665935709880936665639765273986624162708471628214105104518297756687931522961294607169617546318951119582056492355106107357203707188781441567010366908683085277936034639953082389524098116272740497495629182771538948732162818349142695898175731698048515464203436093179442792078943746813733741665373886465775906682989414670241046245806725824558110011768373902709177928289590170806724809566951153830307798968053893303085273958529726089830287275666235306367819185475921358541745045226080476559821046375078920655501545504187468523689100004203819097117852691278505832887986730508467394287181663391839276316073435298107121168484553542758708997173806316761576365556928061229931838946891675688420879824704009457921023623969182813878093036123367891373793133457771061122883098455469534016844536914734401655645443517617594848315952043856988805230492883437779774746817566862600637186381240554470940270340969936052783727250765939889306494558067743324409498581300254172191261270059206528252056400692172623577110235137743865056398850619256022447623351984148833453797228920874452328667932901402357661000466353647312766640310793961200089180092556585824157942512900656217691702557204387133373581334390279190969424429588028287490260089021811712145472478559285611851415317834128569628781531030395911095304185387526476304491993989127343771373652545406522477723478101464163456716514925033998482803631922136322613227542176141666946008196085033050056838068058067307368727023079875323675818816010036997712322666122089810338109436725530409031380886604375408995028780888484679586369213047651764580476255723429751273982923682787898607300282460070484343950484757675770973438430120538775622000489161519998607380280667004778336221185311797640111513810913956997990447724439764756603163333767948503733274783482873229041683442796180833294976233367989271184959324505106227817479876031785154834031228707214250136428378154479394770719123768918734633610084941781835434355608432901968262979690775330897784933536097935998560728442852257342030805228954832664008895490895373464937787314748981421962894598390453876209774342130035448141897453846578174789397635172760886729410978010802020538729797713349123090404532694008720038359072801070305514840897980217907112386972564639737987711583612478384835178232420491724929039742141253857430312101266269701924738647208122933625884449303605189161091406056638122323587075780346948010920738689237504955674023995933491656469901195162956803134164628972890103207062806984522195197344143601970502202524941856010813739353551186031029237387221421224581009442596729897397294529848906314619802125632683052970343212464057926070594569730103152017530185675234213011400293729168507411628042086256654308992354043350315666938894441722587441578621965284656129479267946715745978349671384996661416242081459452333345931712500674394669058374774705204845241855621887389552293164656962020919211427986188300041022460040215954924162720528733176362478935824512425210677724482018342821657249715230935400884858997669090345562062593796814962312993312248817237075655553924726262995663371049244661667527590646295418031942163486029397093028207925394682090831540494805226225015241961316556318316540490243007924921886964741996288939049393838191288366625981803507401987189309187372334482352112818017742138993755740600412252875280953724349056247407726413482295949716995665125628388051377366650025913866230216214330593568297734884953384417387438194745010852196044547798947383961599661772159806839408419959425955919043404650692154616110248435767623856831562285985862204555628011416161307321693073845852538060023754673822678891496624477187568330288385644812891668055764110248318736447321394308220552887372756377323205593260626091747979819251798468654882563489932024510824214681847781074428957689368879105348323974657598967783652845044481879939228222275652462284753267636022258045681011403608881667244332758030837118946978490876537529579462532719503610312112210289102523489367644835543485048118061178104378037332964832704989805932196313458482589571664683151345860789039695291144943466691757705165628511717748458582311826839115723258902822541371115338741172163104790144410097620575948579638732517306294751098684007816243655455425291361763330598612021699797371658587460821679531357178414419135126728061284420251442969397066764403587597697255071742839149622518178600297799320781873040219748762341692148148784339179315573959803988833392767077991609252566495893529307372507755038024577192648505360150381125471366915882293104898984369606922957000758821597855571885770152357151257416109499369057526395742533688810918985191521398644759923327152462728500426850715986494689739738417066526853327138800165609899693101687603854925487341938146159599055466744513209541563114893230069582622563193714021317596397372171215864202316259440234347659723587952853101165723764233992065853687879305317613692550030500434207633989221470471862414319799470679826466446338277456243137593695575239214294781164753386799979086321382780205249900292200338341900560042217684374281414444852125993582225572085471570505058787370783969859168531414079010720824098923164225356098404749057831205088067479696874947140580416426142790290805709401053378268033243424890136925802766162342563702412110072264093239808419758502640992323218369951905061989978846490694111919054051689648794856367021275902291186984344496480424023551025195505838014787851959732842203392194945737643773410233384860999572226103391879183225791727900840213421727393675158409636225461896566651160351101361198055387311126998981569601589017818098832229930279635090578666769392192376790687105127119156165611379572927504129185429977175678195073661867167473220086947137058340049314122526042765036740471177833180571945777844501465597128101076862234290533330598697700456807927833865836571318267274584732099736719757513159170045145151097956782725517199956995411874362234710102193759075924171095630396104964369666396529827409872305760141210104055339019321195555371863138016790726344308734646657057782640256194346420897609164584793551708096486485028788101991936458489032008836017514695295882816475202573716133788914130656717181618362248010125971832538095756029548765391940665339682665667432162345787753140965416981513552438118931714878321548413111867084683641534100781790318440632704299811120034705837299333278510153053770394221407415835343860120167154085146259638199742796718089672514798730744943762828452740230704693166324379800956210224858689076431295113107396356353106140154790194183373048072462387050836418715811205730842240881622805686225619611773657654758963192669024535512758923556026019747488271176554820679877723761389713537529333866018456615060783690621313601780983762454347852658427759956101139197036305943620514464164784888678189241364567098765326400600596004063718662464438364000181956967656446229063528186326965553833628666140356069550403159942610427337593811255529645245310781689765481953711791937475132388901195526324641327746994907301017469622114665565476230044103684427424716189979958666265174436446991301032348910828649318713045008421768023519818315016038748834402228128419692752825574162655069759979096369640226189419055615586914343595888706556144339906256316802597344859913301136925607100682855372334825910104105404810250439754638639198141902099902987121688657158499709961222641365242760707534847752739215573870591756687149763127228967846005830166083524972482027504930857380867985256257439466067488590315038814637738083760933281549393806378569462582601226602065264040522320080944713663308424923160524093513924024827149463182798045529902353314271769462541302384700830443691267764790434958111936394064468372660452360747056826662092433255879368964026926467471317413613443503949452572548059104614789974755383791808147913706900805667581550845516857045712418288591036030312343800687099079840150589883580537622108094710786684608152699864477329469786901931960715189902683814728092755115936170267845089709355159148406528488290593690123795002584658113991203614587444737185596401149848902815747657157973283204300051571270191401274632209876164067586843710357048368389601423094830199763560590245126135803987942770908356743417175035503990828079922662473544000012434354465732635120831983081140704892431468010102511180741837321967981231336498258801044122065611057512933043865215722793745389125104919077834256241002825054441097742886420873632193353371794152569124161740733893285118968623937534302388345575579468748949235080502994576026102211413102986613638723097432860659269369412822610409453208525532858932744210334849577357307620015494996363723947966175198793125535340718649608274212777288347432944114707482137761520303403252512812569445382468361373656378902189512833141648958000023526528790039945972643360844188543039795246251208518134169666350778817452140278427124362972371338118501584256825828860885704775997883312208848226571010059002658816432756980909458745827383684188952687872805587421256607398437593618185373102924350682829597468296231086630369999819032626006244492085864202262194222733294311234198323045557974844178136517974266983045258800471414534898351534599134744293141897757411897987485528270446207940328745844380976827540233951280131920896911095451173600313550318100367399401784168697065573832632684037400674343831351373662518949771127903107662142039626880562713349781203865730735213501127467311379218305342807041441611945068229887169004410819679941724925241546186054803626633528878993212016267336729603431158322970752674148310493782828110392620896468390387930628636260103263916832044199138528899501992705805743587121939305573875505750120337489109422916455875112251981824857339237119711654289769631794210699821318459288041794283239943017398318215091021644619252441078571113647090584871646850313682419922405016897183179206169197157291697305140018852978176955151640890020201281064192111863120230765063631812726767926992907728074416637060467910506630530276148907451315874979724173277779878243064063417630496459123813936247673640470827011251697524717501626500854060861504167723617268527314983582021464719552575504229542381262504105673388937412207631069521026575075986693992277317657757055917890442296590361197168368731512732906086259224883192088696296199220089676916651894123732697520122679895465890463061782225210892979823768204082598724274346788992434619600898444664088483238629870859496245102405083864335516207508570296721479170113298760495678798491118783730232714034420527665105718930906161420054295632260021396945919309436767816223003595372961528473224789606752910774559026427919706168492058451461225610184330063455023134290866578329881799468687576134680868681195694399802952347167669932207670266358442814386669627181369897648390401019809587268042373761924369723277654264482079105019127789727723501304236476976068603060461081591702644715918555512135370469470329894761197214315509886017471586788937129838065071996046127790073418783979786088435115741985948905535398644060422996206957786394480649780042020135469314656402735225652093554667929017845435824392397309442524948066891960253622664020311653945565873521254442400559648295025810648773127963620324133139112057792721182266140356724202841675591827852857218925588219659445847271099420855476839784730533699456064560539034812033281200059543516620629371866210253513660104588773571768471330209483623158440761093209794222913483772693957861996838555954876549291865917287482869207645473363363727445729542348658246874763123172574024799632783143071183202858839795660076229607582101806478583160376623636392623765147547849416483390291236851134746389412291576557155874670560054034583800242128797107058871013523989678495533992285061174031560258453881834339477294815335254923405946270948491595348610395401473901070708925054656517840311742574712043927526729238556228578262905655012373144321050192694572542967063230122662910062366225302442887879245760492312948584332843572773362128540814243265261294307591430892512827456153734977441307368732309876811509473108143730335638132090851157763850273956958910147875099102075243661380537481683325994064982975734551133287745428519515671049486620049258373485641506368042494567408179978051632612898399219776550527195371512782710932389357807683760429526550592698585776669300609525679982765188097969232025923525256856931786979331676755362377972319141242793230647594854967720646903769557685126874255632193970690032635512076357516758892021663144973721838895534280979510068042196238790615010815096839458964353480646403605750018254151731203958653470325872662540110177800349501050809412117462200575188214476248939911091391273149945011880924121122507888854680179169513585030796798810500496625232907864797814907135348973958582789498524825007806535430755856074176467993257487109375835268299325927586578715420932807478247401412229241114291085911060014913237227679226781645414314261685539034155038631424700771865764674874454850508330803796109244582986201280075282644329573010315973005746357961819670087501703358030046976062816537350637030259893266528574077762538209371126631381709749318950316126062779276366372912900469332166347978158014855025179371585550153821265580931003465888822907551595720757687618750878184733623118042354972544094953136608108285190990081315141539338682938137401789598616069133068572057243313883130889496229445233259157748194591322804713771607844658524407386716439855243995585558018646904268845933736901719618671953029754590980555445028266447941990387545195710309286454284597958673847447764077205796363014011811500832718607415783856879024510827542082064304295924442808230563187786906437400744359090011560004431073016747569537912494974098554644127405414007949390822824627116980890203412099611065720323243974543255421254676378260740938707636664309845870681186225931142977987593569700687659822153601959165813711275455391949610175510109022773416607423386564753513429956253827766561600247025764538624466723335598322310830215624271452954230069808338211223606595866371250240557506320016867013025110532276744129679385828512491543715602019130454437562243479475551873833416422723728555925963205202319908464006906769580043982121927814479101478184661101883248615531020112671203842683522931720730049246856575078811916479665386881883970501702919939393067904938476030103042683022452707353711294390144621360011482578717307293275811925463045244816036403717449091802996580841252401711086275574177275311214040053751906776563436564398030612303106142082324607872031915045104062975758625348976542899691550687729502381830798237088236923630519628635968658528150044057445174345156001470859815103315490510201741160710070998220116903609294216092172342168011487740299594798826034691901650454287444411491054922632204877552191739202215157536214041555039570781088897709397357063956264062979935367400813656421728194106767030519176769243080384878678285915209007830568734213302297530924128371791867901743382975579374764432582950032479829675782953505881593859867105127263105866540405854312704942073078906228861350384656906015709421737718974408133737174356478329239880945295473477866972102076107600927131691665628507599786408805233168054260139664385728033477956871223142699314860398581551531326543410036593459657426186727530261059040732196661303677097554004358379319801356977120860511305278524613967514119021521662722968895839514679376222695752563979080688652505713252524506974038436452845190955459052673303732091072550277292561028074185224355436992620600546981184651061837513563044014030002346231011260299639553107070063710623232755521462263520536996514047696524718524887246269983821915317936554592969189648188230203755657825500066308869492956226450705743989675069770128683372078623594148002731907233359909867191870036896323472382569847301134783841211244298689364096042285868526935796176960204677434584222338732081108642036575375655678971369904056797405195064416975190320517534989811453228506574800240493740245166571258751060995130632752792051772356100530303778741511944250542241154116877319391636879549919535472066111095817584643724423290845529707841684232619226086519523978126504399426863415103464170636598399505547087523037167335869909387284641444857345960760186610416220543913873259452504867755628993513071000681373548776485330568589636086377421198928147402721865924385128381295123870981359347715316124841683112168903933416529896647851661479868115008226588437627870946537152113242132391226991727003276632651413464005454445607905818782945457272290613430503953545619615058365964418137680868296080603689184639898474139753671970951992500501175919021403077945923527875197185481678411725265226012669953015219861231035833985096391333312924900519871990992759769688000465204430429096457781180264544546553273488475804833357523812434782898696221319787892210067928236747138835926133380169160425536666584909518792117446701022592012237338825342776399598350067160462553334716892957423504791426806250257539961361904935226005594872032019248154199637603771148442752910413941488190222050101465579511604179906192335246880039976628731285202393433421768524746885701884266476681555505206250502903693358078383970886230792780261077408554623456501430537679589498859212602422590037187351952485069803473102624127488633406977220215055469399965106446615884677103272598970691970600010084486378813951920841345657246069219768346660741623957610676594069312737458784015377201961335517801582440904228295135926527882201083876492003493544631673146309099428383865494035783119044179235508644272459119438254956030771314927220790148493192784767732167949017099008917502862083926965662295381693971552881925679383993907838640410462773042288035068704888092449933148463743396694570359780962807478708739977239448276002640640563985759459036482625141066271130329045602097274195953127159890255926432745465752755962692598181242453297217588125279504061075145355782521752024927706085041325642777422471051005010800324150381582971203844502482891669888732349395427712130609791972384656393713416442190119689562289070460490697459744627723904817092989577949835135088370485100137352104332254145770015587164711123883224284488473309967252732870608940154433464563753438704474975489814179724340995092270517346114748515255671636887208093133809651721613167469833260078747592606385947217664477479810018324392240741874639160077740993733716830774260425179326763658116124765775109636119511234626414325583622178889952871034302886709305601832632273060707205453507922897653555200134623996636759819937863828801379211395428612131284634781124980206563407576191302987114433913339385116528574963700623299982469562145518721828082919595016300740675506117575910683527231772959647651678446670053950512420748428732516175622617863719539230941164133486862154359027483505251879918740921037396839749883965443586494987350590746313379975330679127910796085528904016894017551464121496638312087850778442004330024781722928000053859042042657292866587297136334322102878795227351007232418153581803722563433066359237339861970878563431073683018629478533886135872780928397063392263913025758954925608455575524288580578278051020246497553747485292363892410921442083266183420249560205220528685077335971091804943634420855766483704670382032524961223070562315352653434709693552098079691999161078259815846814436022464751610372484379430571766484707829429814574758068066835983837328813999428136759622699054603326639530237948140044543578078680408300709369373163835150125109745529349871308626860721982633392287010880102595160724996310615958626912781811120358403319611245485467423852212878831898028852057693503139703307633447710482161634344424434670237880202759949375070854739200218259311590517881709497832590558138355256817455203370117401938658536384091855152000979829072391670068025409898545353977212609110143808019888901863705261355564797627174112539440467449873221229647018570714750634201451515727727530435725768977392964095349517380032023682568978980649481197561410871652884825364658374401092345087290624862124611949787326113630267192750531156543928703055392436518171682434532181005547944727835020862622688403676301820338268272050444089303350712907419723350205038706436156366238254195836785214297282740223620445989605431687200829666033064390038005706724003461738735834227858824344579571412612370187698389448708197595153013349358556430166033960916599557643891962329151118953245673529218644504858708814253796822496207965289828422289753627090260045264082881769504107666070494181996257713082023443140073079468938357077676386447927381588080893566054305642191172789130885080764876666839985556943122529876625690712445534525510551236457318429654598003344852177176387006800447852251989699834897696255253665607175468145471257551275645682707357097521985051134507645052837306099997043270158750543985635206929919633181435519994100900054828853771161047897716568294667594273242658469939691922376540006241617941982434883754890525359363280600682954661919698273426945481393069997752652943754059995430257276282178562091568974328897629413401878005227953839605853783817607892894274567853033378449572687762075612201877671805168081836068385596013193828382140981823682234167721278404212431571094680509501983534230026405590039462112382244795386635568680084389630007446733457507135270506639110079890394806880441822087404500354204796073140745459370557724575221321406691896391311129815692255321642274201257341626738021171251934832232512979213751115363981693416835721671324497292353429921976304540739694512597353275324850710642796768512304424595157212064542642204939919790161614489445613927889839645178784019295517265134099407987681901472167010106815619995217454401426563090660403105400613015871584599237079993263073120601958524744962082160195644973219358276696473279238412465732290255836507413361535737070015288204158885225866929241881578102024878548713793501287136180668431335368751832592899813377467447669698067722630561175381702082051305154379333048175137784493369621881441764630758505646839606399610035350847847982533430124360669299264772875875414659089492301974415864707537782353954190981092255829993570045163867589102068086312675483854848458611507586375743721074135375144693959031534582568859912223003923976314511257082610491859411109618687896327739141905448183088358930516887555544943014509476150125602107821908909342423648225495989782609400021897365472081331814317078253842017452981157713630739696294311123803788708881096569480068961553264540659562059359514991761383600936407322310571131711744768728675434222674633730504497217968598859483105626741990808887206444826978553339704101595547378815930062847704891353424807114392656369350770207025485492309629377874564099002602388230635312973946135422921020632624942967273846558948455308071587551174223839560262447170579037597557953308093878486909716430743562487237505402247330912639892592769566431912193595238723373739368623347244916776119220616647451215249905624182026531644102639501524701534013220919722471725831355205568406796378078428381293554169452071748261736479426264525798141983548209253446498690233193876038597268899548185545806914185806984988552929879685151972263531352958816549008761514792612856382440709511024191064499804674757705664055195723024920820999073950811132734146704768729781533812083176989301558601754275327797936489091167915155298019060606552841740368005882853873352311715559366038350374630246988240491776546285496968625386474442716362927395941522046971697806360930090730665727673004506344833122064175130003892300165463143731045057739639071302084404706610516327005013644635102167889531254940215161541988799597582826424395237128912098725093464788878619906044825759074693897842141758064714729206668829167104961581623704374181812534189195288518302578443753203310917581589419037358443844308099099611451964792610898101303259083298358693748719374181321707678203439113726056043241344451087920859503922354907090613580208215497982928687916298099631834121374918626153119846027009587147745661596313945135052343396967435420718662269579551070353905971420737759537584451555779643214274270269812050703578427620293178872869080183044320073466936400288816783663995444533238821078298243905264486246040944367493505837146674587152646762721832785688022769222995961137897126523151201512252056197364457769509145428405792740427616812240175149311697580951771050935781845902916943014043483702779649612240768995703570478180841472377956026815483022754867105677566522197850535480976437607866451601346621021972880321580166596239902659373222866321036919031862489249196489497701734988192527864497415845088596719476861860467405743644173265435509975077292070446003362363589964906354111446901884981550783581754955418049779979178006070090965260577643881328518166201379988011191595602857170125922969843929121982740013977914219187828062305268413618948978146256522665817611311596928886618422140708985600774426211263884476673221970064278039460065883905885359065459882618557834971002982547146516697525908458861843016329576375673628829864649225574631461451365080616987570487026818329577823874162201048692419879999299969451468478162369185662841582511450609502943854854606193397276338120808229417584463819524262934972497648211111939727674023192751717512846106265816799406957151474341051111878811620484634585176800493403694304633264157948510015652951901547116826279906898395389949014942095235920429432780728499633934386841634680747301201002238222386468871586203052191923219800511277807760639121105102865091099521774377611304168767700838393460981143265267448431270733981113386885325452638592391608942046081859805836719014260821526846140842371823565645262655520185639432281842742669586704537532210803149438492036207420561740000171466018801410892667954301756180352724611213498547430561530197265175520500234584125588559009455079550396197424720726340453844055729467209527002787994942958189131957149096503099563465029600220360200321363043248268046378702022237478755411987657909419541540849971222003790681485175750193888151606722066917972688386978345012033164483559361444639044264541747091459180858043625800239344599157949330135846846563261035357978378123331167494414820669935017219655159200909456094047670715156467334897248995566195178577190389703105373045929337306514099194909923142722141344404993654916660797758646123461184181360672500235653419618980608260056406534850780280557921131628812965259207590633681549598085129116789022328826886113594859843075095540503735867834585336851198501683549290926817964613895741340409880621636464853789354220435438832681785226926278850012098096390469211113752415999558543838810555420147635841101979528842401675855558221862668187694365365061609222647863868297862408541478379670648127045613347178336769618048385056551931850188549170879260082910004618405002547413530065874208220314757348784955067065057063676513684574750527155862246786553305884235188709798568741739632690909265716608306237377224374918766926325545802407625085307628980186132902820857049012299171622426599501364504540740870063387428223302269493233490757148832853807389163660226379472249335641825002777999503481080565301501302018868615937413317537212142036667176674614883556618398313706033312017155976575955328309417628141741123071722529266582603150390960771190811678984971520378745296283842281366976983887260887299592542185309252923652304004329423239266933110407316212006583141958005082601939914437518162603504290787077067439758516306222746824430447404761991729244322415845801473212014955761808816152119922114638565735857785971497286485016932725491973757568683219131594632257906327433109739891287560083035587692370838024152644017762504102492217169114615154763366458232033295260625467165106688970835959745392670011254908219285640194721601517740049158404545782039481512284872345529853786785448811647822497497913626140200402261378172724698365863655191198557471993513087791512105663556518019690359115019696411373714740620700521408795422943055727338871748486477258070340564158188753303485367833807356160328700159829999552218638594642052660361588650593038161531385502516915587366142452534405756477020431362560150934673759804879034454276674822548243972533232672952427806326782844899475006896747683126947933062363640687935158160677133847749280020204083056809231229771270410110648582308929123012514692558368770573877415203044592429317205422526587195144963841125747326611951649329034883825781064379849430955611170126196871358378841813479036803775890071083684815711665325925878465230019994044721283858751466555429402461513578495968471420560326454809064716824276428986009157852709232280240774441656442568656883442611513371851803920134111960840733129235263771498894154699189989563594189745535530628562960345994416853114781061925228927485723740762383096354449027221551420093323370454940333824483886760094713717904689216568572515767570046941471896924548202176134545127548601649887057206618118070614240672869059333617593139647806059041056408694775835689234028642954319231366681679640787999897547208381401779493432359668410656633951289320027995533825321852836685005302888768025096426238332972210132496489517193147932102661053025431067048008401993774721810032436510718514345890912008814708817320663433197920750295039993219619971462806690086855726690396890780142448587054090497995671345247154031607027318851436710030599100859695876201219823406435055164899364102928923492781270785271468080836160889353176552232402941951764502556246287973209090976355061030639640592951609449750422781661681223886059550619749807610164315149007165243238590346516022779879957713212072074966475216782732129988284975967123878513172663688638895425914522863474989628856994726241826655289825430974074989569844418760032616851928785829973162906227001609960672237029458608850717475795544459025631242089733912913267377103547410439701540092427982044089473606564391718634758517377509454126009081207278201535777658558908737910459022324191229210830935093764777024372631002135469534145804333135918649380625594941098161175031567224490635215952399410434323732947792877640130586773633864588479983592003104413761169333663373166765485467587854249872129565218113479501442889513822123522946541634390361221606929755313455670701501852114246396480916049917056325111233185551252691580406681526623452616947511385149847544734424542630336676996549873470449999933763547929797656547756473888293386291206988280236647408016498054611700139287016429651106839887028894267491038844537229403912123947960309263203438641845599393141045080738552950769655834024351963445037882468777626030343121362935716008987839317143087101685853767326019557750200968232146588427594170428447210916465137538347844014652592077156998816553290164198377079274472072474988580674514386499173768293001305304669776823978954180453532064570275325662840826318567168929881241084834027467994259810482342392129271295984992237613102577960697481967838773245405116750317790821672515112930607144328841070258808277010245561294970937030714987611292903565458391770580180375229715620053996099893917613739445773478991518837364302949333331501816158391390172566217143089847226391851951460888081651473489028182608379350397479111182696897517706549161426338225842447113429418377559372181811401999197986587181946438475257079045749225025144955294189943822914590659610949203943783196361985211215932553449744325385747287067954995831893383875157589809756766691625578548298291528728615287549262759030460722579775482291473287308600913461024035477017155512557706800263262459627011691444691371137113546639105362927107045692690102617855909573379661458467477757713739465527549579339652199441049070035491210883755464152769817877577153991838580262662762987472292860960452872342728788892124739228877818564977032642691636345019733584237116180281613034699085868462473755733524785198758226672741556022349767570264691457315551488732637319898707745987059004499698538126650826342845812915933003342182196696036079578198552430385696424191751244811869377438126502636966428393986100529616362925824349201119017782824654879708509873246963930491738562495186231953310252523263248398272820573084546279717703873133042553321800312122922794866689013717782980377421275646943309949228175336083554333106706493306162023119079031894935997656549620598357066607175979755515977144319726207425115888366067583174085186557156127063335704563944370256771412224696395666622402031686039197710919975703613736009157576265180343643200154839948050178797666202967783488020572398931259859946897189057953828824683502805557867418771122594913061411346287461471218690916613758176618610557436521438286143223931345590494700487559837436766673807236005326757765495676842414482913361940762264720941268101502580912597209361039979525884553197002061892438575943100432934056233661156177673132695042126624465284632701292110042664987457393179816729122769994998207863207412861026846280509667685215469021010364333074220308341932116111699736741625840268322362171709530209438316600215753844964759514574589994588560507223966328857590022232943156916086210382143590144815871738935975433188855288653412458466360852310149133953327068191139688898045510088548249627815316389242825496145997454093949723318159598688856414463751304312985545440483233688118377364207457764871241606986682199826685001934132666116344374298903640353308229558724924773284431010130382664630360585073242249864433222655048393572813393731588409315850066771132391767823504321731284979044339449051924516445929520821652069843682937119592489622479213337283140521320859405672297128433539364595390304959472041129995349084397254863178316520466038801540012924447274965088846353162357695786110728200441347601473304786382802855495886790687094510500793425295192765475274250297233469862661094223090308120720382575488193822794316942201234643990643516554706316902432243833888839678302660803294271751174734005823573715013528479474177415107413034605118949719213157704698636734832505686678730335637235181476019468583022912405682280489906810138270421412023189215695327666400874971615858040681572347816054885542622081517011387950333658241999318633420101971055592250129982869383072605272512656786409347064653953612312431101837413427833623319519513938035750373964927059781586332380864185034445522689028270836828539651013279574568053798555063844464957417732483353692916501654024866791218419517025344286242273582516653569500848926296940209626638299407509417432968700891240225745847492722000931648424803220122143772661575002008803830160696353187880353733667060397940827753795538173994106898503987399152346407058510832867522486115106545801785143523254464156050465638882838455712105409860139771485235860539458681966660607127470565953054132050231902343176100319007702346205712104311144939817603659540338798975465589758064322896429402032001337471120495185441164415118095847903019463193129886854524158776747334269811736271451205588450466896513620863230095860209726270113663753891149099728866883557598224856393325072919750925019890917393030025180390121878089436707737798417008625670507725497625194562218069815696396992949853981898798347082184800422403697950180340322938305561266482391006454339641736949034517453782466540135555819328270544759424465208187792312636994533318946842967000625181239089319510190057884802692180489056059460257220499000479929851572840065455298202359940354402495805043846592370688807730168734069077979634838523181651149167135534529725349808738657384651887416186831426519024255161707313858613134349253629616408622272725179284272442871638353086824485289033185610718949714048895413390943361346443519945233650222872945660361984408909789794814324891244876237685290402196417738467508483157727106939553876827632330765807853671657423427103238063557258906621928879031470419112100247826747562332322403394122347416439570917453314747116803237117994718627961710191308392674189898335522388670739316382507979443036300671609407285904275363280312983904437928988873043904817870163442797876111116728048394221609072284492034176802861145414177073324263670835664768548149030321669685960637139564425683566788820499212733552824378158443907133215267805880730712386308179903467936234574180757305175176037587879184385057166559554151118864941281239414482534732782991954714511596463943555887465116548129880342018493104579896177059473035646019279498270759637794706417224122627766959273182572148686760973328314425149575277087465126112050324353239860403497480341252408076610407204682374696916042434023578141511122062355226483190820418214311399416607011126426645615621898525610882807176655942427643097447178238347376587480330948390957490903264049645120267872967965077855359974245611025945167046729499010164264113111937931458204267520470731721910593134669625770079729232363234137981768882881886539525298077416200757218079985031460136359401243255634114144490589370913670455352264659417199463475236232643498416780071195366366862778925024880101576786561769938345096651473503938872454485958399368463050358371156303977529235018597552709201040080131282923870186270378263652000697168693608432387901714464729910992868310901973075498998209746004316099014922638952487309786565879356548717446544976239129209362051330752297682177356153766587633014151299976534406877541554991610866134662910869820453600197055931783020333888322979284079862831934918617965571252685940672003397060067064357386807271442176577476797251157633975261714381787687463471894480124638038849929295473048265806762245828176837693092112828572238414277360836879120642452336018830216526673618714986374710591348819317260344573944686766696139487871085945875638034022916299525030710436952960296245681784455274537129924995891252173742205293391417738805992176859389361230229631491162311333655540765936843752776807700349143946836381391715409012097082362836885271080654641195754085540656381268130183709379999742345321348276574184857684734702440449048967569801650614668406199278751438665238886794686808770885929775033845128602219776017657352309223819454879160216170298725629281638351932345778927974497798216848914522132512194445322461617803983049914302509982264287516927819109228537355258787395482097153365963643047910353501424890932612981418355412464394030347897660168705624980778503093825582723368958522922705560109436674164630933989381204119588832929410785113299045790317092323604916661921924597914653840156201681707207909819285254537219688390392346488251475633435796280458219597662927201035660916035073593814294403580869599913183264142752620896769777773539069460611821998417559569632448545869961056138293465614246720336571894042931721817410530223713563493495504481868177618642017112456935016931025344616717366632627451718267034786549508535654240881445354853554425366715020438270347895927268578500181857176868150164238533425803136778860062392101039481815277366871380312154427780865232889706363522249253721032369291388073839410084202422291508936585713622665169556598483984709370340188478316585905820788953657623724855140312104990121641440062120673600042059490467786268476781260124755874435802472194323061502449473138591298129198650017466599742370793766789199897036603951458399440268703449890316530839914437514465482645019083568029158253544137993418901751877687551240736189534096118832010625004107125257896582905858616362352312239249157932585458529171447236511679647248201150770362329701288628696395382602997980101227198366080354662250774884269156482414916985416819099132828381668450233592067629464448005507680517752499024104179391760880471924076423625201038016842937981839267643402262255158778713182415393954210423114203835665228334635274118453311507531978236514065340108226858931634914445729907534251197434995071672220807672806238300975913353821057141052043059228429776458658964191678444628384213463035832687214848180218134608069552510400341732112864587961568242172609182466975188070333103747272911696928072168758445787406009747023713737894468152386370253492047407077877317069845911981476733092411460604122000933327671147039322151801020329486377882358456051443914419324703131103867473283848317490776039005421513701480978162170811780719258563703566184980347570811150548548864608245725972373436301119289844911322380102094826119357872408576113980910439285884248369151701641711671710160331170205703047850396373333392917366584543438800290716121906407419121918582478513142449125791641232781453189673648733145019250781185436820659289062743702219196609765229202393663380076533355795851760598474276929186123617965819548986414997156737707704691103190743347812902935210903907876297450718678154499838788349083923067346504598083179749354347528733709407911368106550255514280325247090721728513012456339726654474388723527769109424788386573855666164185657510034238489808523387894666427630300209936884514513813274014967047323205203408251407789795109104790068935533170462427289919979664572959038587731980077468591774340036965050761452348904467943040290950974299555517732503001381565491833480457530454439614469720855509960588914990963267977091444263521706936637078341256630334456132358226268368368899311603740470786170530557714842858792429152234193613776536239087983827853403467702347329325071973785839964321684499438582358798984413739063740369682432458466586966329141088348739648650187013222495643538834310684772836720040728485108400430061806241693261936850039065861287719835011726625686433702464299994453456544456495409849466583047944893893236142436957881287294546000680182160121041385717049796700060007006733839379117196339816681671563965714538040552735342892548009206548714896945374240419405189168048573321726050279240428152120477192584004650873016238228934029816238699423969558265631270046829945115167937848202325774910205705619868265989344331709995553607119078752687245883037352667187070586562779477649449169897432124224039304277925502624589410396120027507299987347720663960571704642616390858293301181895099801370926341784346746129127159753349465453254354535079667201168396329378045033053231702979432653435499260802225162378096717855225498412302011866915201212634171007132010611967201459496669397642535109223254085853393325637101270406545553226016137467696973090851894252261871183085697892455776045578538941542518405421039637053554155971855879137460915445670323477603042298885954273592253425882324378241930169800351481857456249633362591097972261193833547548903544697294969682481861130325269818309762111304409092452584643357017872251664581493323357283070101850005232262790622039895530137115700528217790522507737904357353641852573791210048712729933367749675198680864133677438474060984082829574970005895451545862580688266339110703317504334117425813014405840822725123084853995426161318624227017657860338964275414580295262102565380943723611993465104364532450362399481910110192792684932287766116786109334636070714089806719824333817671766578645099823593067606038974537454879298145646967204635923420471010765981360952447077145134928560562065494552958470865384201501870086071967209184230539255589558761168116875895240239255760370241220277700772425371776954450375126525063243935894541516518017196352011540390231582363042631468583077107226546032281614581134804386330591894505360801341114791077684273746866263613640986167452484617037318756288689339420897843008652497678360056205163161672215220481109703942853548704248128591506117516907160172693226247387118257499147210738096809920438846228158485594726823494982578723993267400437818236279887973282218716640180487396523764237600569056509534353362576432085352173160314408355072283032280409857863037049712506175219858764051648003276339902609244610771445264973476578934543557679418962544262660448701144063008383314065952111956103571803210083970499343625729115929118037070887516970611842367989144054893587133629842808870563483283613013875835073572664764434156774182341487729916416560995177456418219324922439203853576407485129662474670145027704626034368009170450006107869491276571688254265003019732309075807866891395475366191344185235807175010352475386635476037167654397007586832683534771557934648852663997136824022882190538706399065135033477617136584859181093764703271695487478450720381335718202594227497162362364668065876517256853764463754658208707480131702506094840736081156125075243593799947311276240588640793356186246919902031715115314177385682650175964844458982815306852769532654436567509076818392627559492637231115377671639291715191968089307927105375108274748790380981014904708900189019063450789302439169468230260905938547508071240649937733093555504663374074228552668860153423182244036377533483256926479583468865458742225538847300347400002188251099237057350668464000295539289202761325427198502157103865591377601343684883854353495663214204594352477109609389592741640723875698249589573414734884364949709428697113346730619086728069846963862907866629610979281898780958077456461627440763473677169335318005291166916141716547723037281023995281884214322584614538698994545077921172431721553614891140534656153340065412873191030728402383701115348984078214217007006206023107832755770126447066677942401676591816153970875768309434487522084021624792159820724932893090261750491863942439920183544822179304053722145081608266779323053669653188294992734539185054834494802124594745784711405457605490027704150309120402321227324237775273269718587392552393415365881942688491799972154763548860734458872291016424396748281231866391444552082427658376040188073482286993733777301782105142007505610284931134946132642104920909070718718131509477590420517086323742672748416308833910551477508954541876670803049372253779583304444761345099862745515683053970147289244692323621274185177428601270241898203070463881091823577923742036282524828229963462313057994036969824069351104522002122577694134065535589608125064108507471340371092548845048976926217503135226713594659385864303340626084861404606104741140990121035428089469004217374561749636198929473776627460963321436186064616858234823178713372180859637972617253087866506669024595316168254382217426390599804452692740007874698263079254940783340998369387451422367873750507239177702001055377010095375092177958087976880553362239146386619334016212717825422141795942209394557640925778795595239304054338773369208000861040635577643617789156688259049685315377250360219915969604869753323900268905349714614551248923848933523732752902652836377937286864820916685719622093590076439648947808596449462569193870775104144184898382016962566602499246274571229279268930422718381390275291481663948071020112697364256721205048974341937450195142527791796074257759196694463832203867147095131856666225990361744011638425756569766967643290538588923086477536012940198235560612820030884298882519097121529167838405045745311915527708295682446171516893334229634148290370545491412124984138676614278530058635004888303491722615312783044379953516823709526927797234759842962893899042208082666037483523820832803313479683911561542333539258093075548545162636918395492083492255106807430747327346158157493765456120225629313117715745436406911424950420926159623329923812339824283623448984178974221662478142740081209769316408283366624880282709342596619336451829051925002630143585638612721869379275327894580494057987175484822997682426891001661047102584772427166876904095528569141038403854678400185194187537885372067065076464405477138690911629103634281627547844499587116912095619840432053127442448745620246342074315785207328759962982159184915447508180000054326729093290396414620574114039246851395340709343149258891308128261294320233344740226913719432028262255419803766270646159375662070125981932593521623145990556598878796179472990707709628746496343575008340117912448488514964206206490995527680755674501818123330737033173559342907276708663034074314751778764882108871325377772733952959736828720307480855783719170785282989109883886174601933993312771147974483661694211951631648655443776009082298422044725038555553989106277421713873545927634802784131016378636537525018577324998238921844782377074573047576947116404909150059328881606559881208957322566306876972007818908474135559932630175975047264517503461208673435447328247149997240399493267051410101036472220654225521800440497868012213817648154529163524017524431486540327107139848197613740651180087562692072707638233553702411533139529607403458503580093396241824831236453479663060789489438941300299752127381241810810832371418609537213078922268444831036813343210706319499636711587005180548887839364790914812003788685218937536746606640894205451753095954399724274039841422599155787263896725709120685358915437370854072072152153103318524526925713401863238966388700128068379980377835853914167663665086446778397054908604983099096430760008667598518740398971294286632158407194704555925170459379087050287770473211443647970558975670186296443221289579502971718948371216881272177284495722289185655492410891849208240900091460617017301619208864649568848772866581577834418637800877646626700878082268271609906634082048419992511373302603528723106954375649140759401054738601986006611799219527794693298417360714791010439987652124054807051604740268885219728842382623063609072020977675727932744519425417372237533574380184899334371323521496473477256128848034550387120100547206146748510808162926709506413677137207844567884921228371407228210912121480903070136291030842088681348777519083905238641972042582003276258580637886553357194118299638471645597263917772803332339927572577711479951498918545479007829751214784277422631896614587712946912058124803005727085386233377781462406963140637100777348372027553133512380337617968388173378297601967660463589496886859929764170037954660134496285064460419571177127623801657601633712707082626909700766103664372895220200675326956433329683515912495634984062711422181179905488596322059194246320829710773749471333468144286134019837780417474208484774802963755840021567349135937755096722624935235803858713102918317345442251780403655125131342330708764708110215802966247950172962614635176567481982591482557911143753293188444950155958339070099282949212773148287045943120142503738939209522890371128543087373401162238827497042735152396311493134902823236131904114909260508661339056105475458952697328706929242133705665797114647548597883323031612254053913909867020643129464978162013585577430734857860305419213328236104939669154471483806058734706576066627362951180022287357118172725822179479540995193626036190987905641228158200973394001835325333472924918222973002412905765370743508433639253634709796388937308282807023842710596804815541957914703967314870363018935958474272881785704125702636597557117413352629621405353078798912655463872204257782194274544025998737829734527495868288833246620373811824858423621689349752073481632813992733417568796825225589720634891079655010724592817658311630657231388243898233584696051850852032249715756034293721219538385424272305991628417846908877769216030155855274487842588320851800268726923866943698452905180886023832193427049000861094211899328289480764101114747107733128754153435502088321111971304663104205858413442809092208681383280208144857821495841357553655938103672824151980868427613458729132911446613010466537927023394859994905743854653472141177157017693761144269844939673152220879712970215632890879925661035453588294550597270533843022350209034819192042267963699831504594342524433882282344069305357703351140966219276822443762587955578013946505882952102179990580499531110587235923019106104308004046835499860766341215362235173866127610622839974216940022708013752081307965493339916382844593146646685528605594667868492983395057465476554082755658988304393825017720613723113767248258609322183879014374485979733964598775682310332511363490444207476126262137360109200180050020269626412685440279823905481730326579984782923338222544373318062007289417324958706836045991341567885657536473602052031357158586307179813571921273870983723239786403265092608492805888044971720799223835776260470382115169784086846337146413906452797374666010554779612023520304816182140386856833235767137293610025422426821336867872500411813724993110619569619434922558201475035861007592801295210981250044706612323733136860329389929098893443127059757653757169890690887345155165167459562046068686493745930130837112455741084294324513343822902354454332748420842001746458118989144545868784256656291466798764634332671918318409072382873104104257232205280436533116164921490899748164475723046496745286635991955834215896097309817407179483277479340101306813531974252462980924025810576829009858021761175927232600494426610387150754622542468303537811071489785107148437179773835614062670477543871912613662317294141705167263798626590726599667266416745073539117153944752354930362348180408494326503214804514440777375817058890193933115460780220330001596627510407069566878067946813381957661349000588545529901182617108426959533442811498430107798437900637003284036353527864459543009569581206636855747246962545244420457304872932515806456224350521700275474937408366110885618533702555137368350123695082030159350420668035250168803424890011960991653237656846529681338360654741189943533254621090338396563448181347923541963898203772471739275766525947775107565192720389922866475755698379031322636595944051719742081975880892239023138132256485711174152438129354740011852270628645135625043267329115983535798845235446405982075314315042078283822422136670968291265569551768472190784746856496969221944390663645103681663547303326931883925417100865961391205287177950912230162596485687744120636717419738595300754609319202189634654770651143245886938455565247050671635919434920172163225728081926085800535014667224227053210285229458684601124329801052135674158852795754369301345551257484451709123044228394063893328821840027424776279910926613428439059313850025917218154017786128355782737860241929298265155634504885065010962212597355874932727985163627502658373659914383020430997229339266321990583446767983828666353435763356289013642262817048733599928582766020221197025357373353982272311670692601513164789113681929490701179345088741247417440197578047126404193525888993590424594999249925266497389501177073879852139917514850736967275504103496407721421035418452259887239815599405665267749097256328081438397404818322685171379553324346790130438253926023123865526827842288613691467299002785134781192860933999503468915931373306657354801920774345241070462042805079304070161576376263168988304326171611631881688714125174730959247411610670585656570081881652890594785436277991360629495921739363699767558934384804807538490411181999920922751297497142971927405154209068902374716687916500014780259105368747988140970766421385295742619026162720841730478962140178320917729639376753777681507599378872547516852245978783082274547625467711971453371418343845861370028890333401543255989035543126702588992747230438243675366409941521267011857627744297412566686000938811785764385249395377290847009849227250876334122988191347628523492465378280094168896093868696294867657509920097439234844880773900480861761348867300284668243644260287733700173390057214302915727442570781496408862384654605173845335674554250216485963900178040207073800695097199753668021409751349595164183078638847092188859777803610542188130359905693753889957909297603673379806222746926931859260357298621868258213650625882289636700607245736203555507882324466643422509360987794953471580936756648324607714830069229105103410815511569326183558038474028231006688175114807110133934374106718464666171666727575350577142628423833647510153413178711687570751622772326966723870635757669294336377939742003664361613031342011010103531715387211756048239274836507155320997689832156767568018375685280687982339709940291365448380510765263866181927634971815970120433606127727454830249391373160239492551768243112860443201782831627937447088566259641851257777239043575491903744647013344190946016639356848198383533433157133739523030909750491266536424501740695291830536911501548661013991378799288618829669900930366241745803860839304287515880917833748348792174560273268272218785525421452627255274592913208929617454886815730143063806534558846856689468766958956954045727306897419091094477596848505371138961522466462269134573984543323782836888749103822005086506187896264273695292060634039959037626828193340426988301532030561779208479893827903143732133195601066769568549607196774331005091436819596562434434579031917687491996465290971103710273956652895593555988813927336980987098170412859684380515365321621561606440179920195080079041813271704845926557180810880493834765937912748309640090661484114799889499415122717082516054165042886336862982301786980193602220175641896950706402592249287019189558622828796533691487139584848491486923529312811311960194124567962950118413978718141545856582305150139748189859175392923570644442176869344824360840483041762443214472739417647591085927482485143162221836166034254526879886552506900543962390400012891901636426279084833280063425112832736054766599265103889558725104401458900079086873853344233452469137361701971651907013224314912133247710381156380561009594510826903726867284421326132602948668835745130613395160154195642191681261917815279376124447746521538181828925683023563562105814432768719769776070452491166750767134497351759467448743246727576328519227000101223899451409070621802867151637393132596354972225553754110033671624678180709818377897828901328210529314195071315770537961649689117270485589750284311292285550997578043252485858532430348553800263497805583047819211723927444941489545430541306487390765767434847667699876875496563636918128239279298039006246732189823023675047277438934249717849805733392465553317809913930400566538390604618331630438894839930499796208507861527732071999619675573550814739536885292710734595340709065785111373498551285274348660930149707500239193747431891745791745783863140732401945675788856848638911078692573179273628671625288573736907338927529741410041608146524499897236818647430334603180555281618063025011054085676118901207310605041291348363230624872506334942890431584016957328694390326569924866345818549125413784973304398611109209216877329384258616526000733908302125441096373105301448605091563662745111517438863247040236754103111467384570804240631476817586505409590011844565311069668299072473094388822127018219728529731097334874033692329023469999064521204344415656332502061709609637716156869005569693308261083481657034301238862506788899762067762623667802966542689999636386500259143702531831013340789027164981086847836327051205997358618352019129607272601742041625831478075518118141858608421138840355066039060728614360358880242739040103216129505076597907612863368309329320296777451986816187770277298572185614764959351090708287381562849733097456797986054156153765838043071909565418402756513029029683368053264588068382264178577122978967680234636639581125932561972401213419313490763762997099792942818135826694232092290531145746388407346598441179815464679750499944201949740862610154201438723795135820447848681174019403775421764208131408178890480871930073110674914491940549927080089051869465728228048106107542337738111619182509298522441596215034415424484094411110749236823030020960535144703518902782413318528239212773352934455819384326484064916864940203682912627638689940678750860820907084833063327009890969811109282896534098572459713037311001863015594491194853162658078653615627760256339483597898063255601537316251167808539506213512240927630752874695179486260202036101991043879788034313684857277609684473489752528905389532950561324023990406475554820048912285860017018251196682673582053228882327767376094860805949411892215159506161588592278863067220513736890142009426699387730105610904356652886735536460762479663451669341530122072828553106389298894637258354044568238552881547879470376405044166026580260753744635918420960243006769202211266293269792124833910840428223296050911615933909402921441283237407568653274476544031651500412897416378134067717884035295538411933480093365941332785125048310667918010616856135006233287294977444464164503962595137173399665255093529201461945868240007523683589279859191200690230916408295594291400497319644273217186451708646222692274420773902830340141146631336885448690758175871976932436314398076872397718223379847945631877507038542038910643405633589337883291632800362146475025164302621413168269620337643553750667549084585341559882029900997033662575579630571834631640093378681610120165789797965258857693003335687825894866126549285282012795322216949019280881290100672501686964714371953012700898995205308590481788885617182923012028939130732711135212743150509164936016594516731546001738618050042272293493532076701375188978877284434995834007331846449963543580922968754381169190738376755414601308038755228421338395711308369680256594762249827927373684327694944827632919015240318357266139470550687718051677266925743659969396644409046918361796947352834657543589064028147924706430679847753573369716244409530415308308857178619545315316717125593550647663826666966964776361352926195469145184870928183605944291323961170462582866557448261212094197200646326348346140851861930753340239725038292656745516272888707928053929290607820347266916532309221526481404379663085561223771826816049963133561895559610216933589362735936497279227408052492406845769352912648929004196479748786790626399335888213916811322065279430633506579111903010031541109909798658673078179358133054282973123194465296339518980220974203266780891680876739771168693822505864115398843034761520859003062428011301329867366856214729766626739945963042789418739099981994056705526170578200980733669822937915936619194281334326760266903900207884684647483395117621324154091016845901853672603400544723734737250337725073077355058198396399856657033053500551483264548033049913015574986794920969208876197842250444549731861893617874133630079556362752348137223192209405926799174002159753966810047028377904719148113633893010044968549297538625740621323519886219310276055131520445761893382506698134866125076306880367559398531883676127246535980331905912823425882878576623259138097387315941178057317317324816463499779386902609689722034641153633117359589753132501978137565609825016582171194141405394347665317598989077185100641375597711012973161774516748999822695941407501795391810439820960296170544471838900517271771565615929801388421003546356239187653545442410053895977961325174930080160801372772678561375070495967932493417969584591712612235003098895564416891664929843118077292180659891925167459944886791780289483497756013717298379973184108564571803301748156551759266038960746813314427894397630749883991025399202470962906725655053012616364480580420394523703746249576149865134834137628065473733361355594588599145164727180155850253367170383274714633603637844099238482667139226106772232329073282540863070647040278439577173046015164023568864898661470614582120045664591665320184968510359992074197612512460993402787464414493364814744898107978090193608561224246391078173336852443844923660951731873740629670564396798224663717227014898579465422126422131815891410838946425390445076047865420149063325666955568467423206584278667750883916842811931826596800959904628591124593236368219975319136073674598775643885577735390087619477410317049729111727500863053525112438067664383264932473010031663334869679505045993559036157530825322374459332986414838676049237671155017721062794062925192536320913124936296835648414132861686426232415006648010917709438551215620834653749671786930683630975644101810104140305977548950430662662493641960455174134146902221714673590577541934263123809538669334054603045858259425265303571624185095580290608666026379650148160075116311478675861648192076223938654305212643124713761437731775099765124963780386023091882088319136251685889208697696762958090230503784273413844213309768010637683094771508062695990657610662415282001573705680984324591270686881069999508631081174085508885787341488401525062343877975450860800155360010269415556984106286520999468637868792894041012375053097821674750626449302162080082848246861342965711773695414507202201456247142575897358026746914323690938795990346857507465134532063475528509311255581777658766505231944134357272147169644127099572339388040895912773035543143080601359777872896957685554863056359730467930125720714714839312669546588944343545269363851257285051016507877122575986884686698017407436765625320941053125129787702230744042552729022611354692961465543682866828107364953787991955888246810034533312843411550429134954417079718557846487635470272686409834643207337167163220427855907652724291416782444709318336837898869373563571863337022485394619216513627223060528181542455811534001770908457001419124790552064014949359454759981492590809346287314203856655578878445515081821586945264304960729111648949083665990304483974023944538987078945271913732132631814933291937850944079461253382088665321352930078897890522522740234526847555367690428195617839902911756272248953177082203573429131353509728486540301353083380072874037485612716392647812099008327262908714647684031998279392090930040729367882839197657969299279076674703936029400241394273150491678456123334850169350904504193740162653282052827936628846761695838083821424664833636387034801275943191754382192040004159983571226857576038140820946839773442847974950741184221041476265078893340400124135541428801146150099606576557329795549178939910265480980458567768541564658267744306378352178156419159520584596472722817948940490988567031445481603303251504193807965842428775504966738571126388285628733542404620432717283633772423881880945989536990446254514640665781117610314377589437747458028148654015612069646764945256376926935153033412150916887658394775736164906631739462452304791731771046399209946943175521495756258953870424629747908348921133411579643136570315964686459510813630979463833416438829512132524313016080160984307653206292652850616613580471809051066891399613656034147302886093683497276714001060291247235914529626996793866030513191044739905591501939250292868504568803464775759078571391346527233558447074876607236775029343141192295568996476056312075040594535678482082489719879102888383378527902177947127840706111033939478935626373520847108408592359548004364747418562811928407392884193540499013093543243195646065233474366452769252409961228193989920877938106151331378581624691381228884789270653501602074841313303853624659708117110747108016290964487566115758919470017121560210239816182711893130613191929169120322299348203279083344231734836603797833340582078889261863045711500916788433087220137008929801585268350778819881044525403257875382128814289973191970834461974989598244633408595683701825758466659572820812482356882480789552099774334420842478446147300484233251532409157350457680407333066563876879627588504951891010824010669975926706177879511265366769692873416222927244784464044201035312445587458382139291197019258344485432992545206927310509660137509082748278006010037198874090736702429367237668140621388914837148523173679627897167064200517129389754642986860807287442376681342318264175429741105293249815960861615913705401417644945362757864388391307817163212691905710567829341215051958151950324330522008773919323590818790649105640677772940153319110552303122949956992657794770284375894755103879795203319076311717613583638837440840715290382645683445486924079128318209076420455588271200136484440997358413699683502633519779349743416569826502187609338541886346106316661623003532346228746150464720650497084249978574282148036447537432405229518730536776731084213508210928569970294645285649403063987433940577210194662696456928738345464971745529581890071777242039495485162182955112325712692747505957036388312111708768251185766711769184158370818851605705533240128215645064013894636963170105228967583134806987634729207132456812739108817238875859846385907497717627617319212952262009160220558808842770720547654010687231186950316258617431425947520448224682093407478908806940880829998088628706903641885331202475681498765054369698679704707945213488905945703963054195590938672820035633770612599290195099322654918582791994782801597252571318295735092145711348328573344777892576802499240251289110999946298856348507196916160991643466921673229029866422294855613732777711545232573702359304058076589977787180281748563318244696568842954493013875756746767595117567461733467990726656991567974222315215512596412076281830037888784677989906464068916463465763975598653135014424521751184848639873354051873853124633757072767112066180667353302536206573870923120574423522194033113447619289838142266523794980145466970096211966172722583742778489737865430633282569722880260061358912294312160611947289659547315867685629890007128624318790736839614326763485446571091525544813925671899519257894271977153455336510516440995733842582551464927048612890381739466448632407278002243895545250826927989031447213465868968612031523073081472666039256250877083594451770143666600367171033732697336362504675354101303594249059707942686104485288945427123154282389402181037833692440773705311717018656647287925819466123091680794248599038573581662471941595395727899230950422855228731127220811624128892902959145486128533472166591800066169329786777102218389221594775364657359863428496948180313021120246901019613800931260739584251019877352399600324076492336824266140704767255555663135301347077209624105307149312554188618675123625691642106658679530278839658685979231064347318211645353170960721985710372944308586461303985852788803931921119870401472323388192665890093626994149349722116239506018371742887832989857145971911701830607576835145483108257122635917024317876480069353166685152518513558284375065527868520050271192667751564937119809784226709329402245639637929275826019569999552365615861707463005207500249490656079923054046953358265645702424380627336989882210261302547139391903923761669282659315762863369651523123165514636763323851605555922739382425912081239506390829814104716725102901980372279341731605127358308796398409342717895315492818074469240801276130900848062633760498178475203225354613850630184800597387154800463767179875496817592667154364492675274968542360395559014140952051640945229731779665682459081834080983981016989751889240046543951768047357069977318626507687077009524395007903921501218205076616685197473276356784654188341507479536238527228193944210811949400271590816441467580837842228921935690655384478185035429685634224621259279286555417724398139531826734870369211656104550116344397719853270333871967900885472560164085549808944710205347952324626265547708794181486985240277387460814209532205974525245205953116746543499492522541563915691774411963130156560462007579778689876812073671539463522206923845839526712901398098740896281348936277552243849585150188129059219526533850896058259633530229418945770809192209432459910747700349357228494352536950725616572163929416363369124877454693997856161887397330781329727147971360106055511653357318073867387802286400383453176915363887359342255550683629621242621203467820055922812992172886797450117340240563977116653480267465633147607820093240583024207428912115103573450672117541202710398667749632349897740790358549475106730870557417667143929880882748288212269062499880759951097770901443667610540381546162946231849693320262227613756110323113681796896002197583847502836416324365325142129430371262934976936132762990779083820424540673844632978390648413126812565388206555408701630134993196644488166003523459498353215691094122189200355112622346289009110044931181418179725876069009792621511789398315420866498902743659247240020425941339113388112277329373065986650155864644074643568773411957434660423187078465109097942228437842257177384047619929430314971511078226071685390228075717407140972729975429761148695297795716392226055418881590333591017762058860830468553811285986226868319720677522395560744864529986789405484446429579254454422960006009060894194870354053424092234065298201476061859740468462487382030986812332609279078928362356562715378211591735928031244888028351316468468738136012776967004440216248111383251007571983415596623203344059956753869569598810266617247950406419240450520557400937885545680044935024519434068773418372030148319991629163243567003143526036901794027019015135828826075288584616741792968970093143226609928280268836821255023905796960383610288819301440554528757801506647900425343904252517982004731253378472753175089807884049547642643305541196226796766697495866006669737504008963238348131594104764966803614762749196745395491778475461583718522519028360690384543468422214217487575176491800659757547165330063437597798714337223411590827183934933373025718721228568500651425931318396032404221672256126264673217477966140206782709798206952958454830087432856029908859691071012197879076231985431227307655548878264252287714508596954070721557209969520122026132433816124428632485455644281880232538434469203607784750775849704497665847661153749979049948107273526389307184209482207594966548286101237268200173436322420002436767617277533997281378140786054186763671698387034572014447368753455890994456307905221314770405584458184032613018908724499371684463837362771006824832457495036318353327418189498806306835818105708530182843890713855555341866738208080383078280647456106665444066108464521206486794998512968714906711407795584873844349451122612307100248578740226327914968294402776702522644569625981515312777852100497937952865513745310986128655312440374991303409786575336118238890576881640995349226345282112045002109938819220546871955884117925340301091615880997643987336425704499956728202991344212832956346236281798930795141312853390944567345725925679563792329755837513921484323160314386785146724994083147183169780013097548920347305115964496399440708499442283215608178458410592842900226748093022792383242378178783194368871263908119060605176335686432407935309036772441259479204043005055509582381210043765115415841205421577796057300199102298572845312535466681978393932298894308552254190451658575442905666914007602824667016845198532423350722214775300086424172372275473745751691151908889352908343386167796200158600660717675750045840466073873635359437580051269019709111553585812338543935135379177380169416878304703534282074156451163321088600155417494510484024073216038343328744888464725405844834591392197485107254448208075728001708769559956335362804417074658857016584599704055551422433946396675240923709469871129210224462941442211427185638031816765456962937099866310750534048231844156298969962050291361673429523500349289994878608793302816102638707321970480781033901536285496004941984861535812636269218181157396400527032996008921015867915820875077893245425884508651966373058762110900387887232107719649827278868367274444018323430847167046612233861620039014569998896444098755075301122262331573642212316020653156908801341724256668853847898111615241159263294090801459826385011910768177577395609661882083976855785235356754379432471221395075156444953254156665424700831861622612353832177395238608148165420162196339612978883269953076846999517455013246714068799498511940221231721674161886698894597723031865068629625685346525192956840066974199835356334341130971009727729324003118795634602443221604415033181329335420934086743847723909697029681417432807306161983991620641612348258465972584811166079840232369655032580367144050860909096016118179206567762311100940324273663963684908154571892680941897654136370745417434415889296441564251681047800329478179194037581703533735976773257102457040581246170904738613907319663580165628416668098073374638930875576977836669505760540358588051613403103857890967286710706417607893558210362080003555663061633680499214198842446279920956450431172113263319012062256063935758495838886114189797268272876363035450700340917636846716824696089950348312973560501278266122334274394512923562246346127885222361563418335482053924615328545893575196851679408976592041811345224076983412681788123624502467488233027701028007292724294694097763959502667562423114315592514644329137612286423949332364073165363329778732113603787745472369977622485475267440287521713523297011042126440408507931601035289636815480582053740669700526660642986982179976300395419351193648447602511569153020357324388516231573186096402464468298774563462930699804478487339172102906059903954145517960462507365184879094126262145626353264364053864335364381699837924297727272680478288589579485437841251086205425046872866377310058078634026745547223022159587956557973375978439762797382024259506810785236607534221059212845573397440596950320944276523214798789232276288706280223970958592042112627656798829749429697555785807359801112347714048957034255022746845692129514085063052758247864740700491240041589316621791295987847811912087007607110539970013235479616963760448997794506131399235290337034515522435080788776322737051576807845037651054369951142529195486760590904052708996397796502815830274202022787561097540454009199024924812740533044166940871044492633936196766673253563297400295608514985305906969756940916858887490512030170196356242964742768766533906502859280040024332173212323492515895632963038187950931025973821428275706417442920462400883531957485349580901774267569404448096477862386823228933552565316124084506728047971082937290356225144937697254833493392779468292355005093023081736228643182385100234900731294316716212542550214514382127315903825998461364891735962215363672875367119526136173323229595021656055873879154371740853514552846948770848292682437185903777994246683460509621440704996528245624161439281820394812014943381564611661608620666253917356449110819691774235987257002281416242019121965501335162086261093132308131309256337854185823894554335128798257885281169373046153622288912541237735860354766172474748947122424204496381338067974402116103779303985311692463240266756683976502993317030986731721885114958733286920734403748087894043313574016712825021458748500869690336659012159033813452821413913144043392702562396254422331783069638212285409044698747356568700142160255672613052912142026613502200894999950165020364804991629063373799220155825102310193043286417388232151843140749547413306918630875760516341601849670009393251517264097684249314157864527597040557281894925053506010088307025598862160196121314914042482672712574287545142536457525956502866960036813726318472887763054852706798204052520029812232678095170301520102845327830863796808571333940068241670775409636432535001251116916046261108763435598798089855808152426651052971095147815476411560275683253820118551153678662140858888605889466160015916784313214388000514051192166524439896775403157309845789327665246676786440020717711730219403795625160785942748666805047575864853078833315781628349688257998004673929976654785378676204457679253581879800072213580413772947759846129731401923915510108793784886369191971802317879882404288352216893164828225531347036184805152992308898575435496751378179395852880647280238576464873398698732898088193647161410233286515662902740810534793891134266879346446042314827181308689103054788879650279397533063704085701413787043334788043936506259711241288107682814474590027067779078327167274598846697510772618724969251616987036299973384771448743681087131406120567247022442776913539667518191800566774527395748027776632784357808547920462378811343272358093669829735714300378046549992532408564785332066951400524313819555650021169632886318783118660844638135140787357635813208164888119702998536823356864595971552753146086429356573024345636138422040789202764061940297325333774655387393857033575953069271518662257893928060232851144475992604492113786828458044597885430726362192554523827095093271232093528045560278402606950793849078262430377768588232902598389599327471413484349520564882225768834709227262270514924054691276242577185349620547305018294126392105626119636243317167079742334226194415578779793514624804313609522646157194799089418119453022309273817281413800050158923187346290185533777277271151005598468334649477333962672847318275564186361134550695239486924947749092967139400788945260318639451690501804784776104706909364787624270004637154303310912301144986335142655234643456523040498075773045876053318689355226983664809918789908852755395768789492191588302061688209867953499821691976037607020041291493375559141752558855841845132553927229937483579126729087341222076152961045961828886660412171437620262224209616526500589068614555684559223854309712358543175983129207706954461550741900820748466075401572047436742602074503287720866333473325587695491891738791417193485584097601143656858764047588502946983998672808150230732412602471212520348030080036523101441515843980129384961710289608154297985934499122867737559190545624613122764715721530474590824215047376288558224191732454501624020003662858721404673543800731248805829061131873242708053012290916277970536326617255884376541362642680681157654023515823607571622407337343124852302332598840155286910711018590751831343540956620337146376890452896962580901563260461378629538396360845160907531237328543127920644696249681515903163164629037437836080515800142156970358338019860900052106739144802449023772569648385681689392926826738004917413362367272008200304298143895680505186472656811537492736626920988494806419246241238336930538291297202452636298725613414132691488803584580431662430276345316590072182525378653509071577234491388814378453694040837463719291336985332347411141279944817925700858356773308541204208056216002172899746263044053328392874691058687685450468041682946896255907996773954913774919546109080401458182239177634988532457847284266635981277850673067130141592840044018398971844090949856945283854716766260831977469939870883895411455865933509187618611378662293116539052778327917173132092725070661673253854441422967252713917529844085522488555443640218803065560858305934607305447546009704197447568410807978547897826842708766508722553233938066525223025296850439858826397751534257841220716249810822260984580827323113232563834283020891479975463424172821159985150671970166522161625616729353408151402832872427373316879947626756508879157629684629933967563623334896752727444545419263125107345034764351398032013648343703305544144127347697735931199694281719394925564700726497131947998497793869367109060723752661610423921413221313781105625183408389994147704426496562279410899217676403902565945164993055726230146542823965094177356504271555523774837564220533184061146481641549624576082066549583834645824874349556549610690685177387496771091775465194974065378313551203272505421935195581552169283695321860278347340243022561572139495264535971029350493100574374228249788514457427850987994964954658106019121823599154635387932987661577573542041510621077767870819600151832801886998492173715071969352476809905116759817808396740829785942766630617470613233485934826326507747134595896271616908720208176030482304641395505689786524457341753140507555127382618051271068690861333071587332300179068517157713844181479507534128723863828835483666355185216685818727413204481826742121942422265672765324280316727889222334386487508284108617412541559081678845471245912271162965904432158232262199718112490727177839588089718194579496414617320979448897121668375455426648333035040075647007347489828066363105489574814239538548517092282013351713675873241438180216280773494532696741133458810810141607771448087851951077032079333069822908435575021216948363867090288307930866118672591106833487685837366275928120316607829952538808756436254389349788119662621560832805007309540432263393275969297908126232963724433689040239034878659471087043207677839227950328294788850114784645939533923058521305085839459401572493256947608245811395358043349791918288781672871826048384402981402251674840730654584703892404064498931989448643076319388622106036412570965163045212602138682732898583344570147327401750019216976291483258834704121542327673039645527818736278776435883070271054938053609868250459777286755064885245694801690426570797448343583770145517550740673411288147929679812466982331753406615078889072349725798569112819339382705641126332126423371079433208386595850929649155946645848251199421734086964208936372421905106274764617465203177891938799484832614637013404225911887637536491580208099148677885897174110848570797600843284804937685976375578651521235968930063972709040893421478779524372752556263449243616142920164672367779821996694522198630678047582296908586083082040891215182693268941999123806450219329241312107334770911429871434343892351674386062276690034815820217162926885019874154056951164947999493120417679136796702972822735035103224247108263580302288969051998421452122450285841934022795654107638511552393044215786896422416157117835330809266635203960382756609664748473039373039285900507660341911225623048070744268819368681962354440591335804117572591942385756923892934597059682335383696014422567340125431308077463896338063877871598342914652321551686203969785155921465036870507780259333029409116683162604152344233108462577231622737472453617148953484359167759132578126469243979770425886998775600940305396366396093861855343170503860791811850809790611870743517116773908959090017736365053875576789883867178947005721919896683894226616791247257661613430744845883646372237162600001706393466655663777085898126670594171767562055427115992831138909367208952177360766400994282075567086749634806563584296190684312844470960618410776542322332309468375671133308180212845632247631079476598754680187419148964015411155350687360447066411374792490473392980494600605053954265826343644271836047146365466769245809226791577972771908480967807182520830564895429110843856853305041340872467154618526568133431497579272562587776284779556252785975451721563255783727974144319654367409468431922070151512173684180705685798050708135523776772031597340795788626232578980472154309797852822088297165413731253377219968246538940680597749516232094624939958485663719530973315635422308402502091143362931415190369299991682300067492850492960210195046749615039407512002562846347917042554982389452132492735371398477745453907970093707129109346363959549362607364569093892350473159068997021021436068451976228618752179052428890017062682516547794380732337127827403445557263592270748885795889979202266134361986552907831559986199746005040936152911152843060653855112361437751888784637853560615461605849974350694191358490766416034818812186968603809585327768589435462804594599217567905282457958692648010314904915947961195012607812390671566226893929923885652133419325382440074828099288152950977578481212636490389857904200710874760969536939203183885213539747364546919995402936673721903813215264867191745791161007509314515812362038923191710358032013908798937632833726112501299559261252018830014080701534415397737771492998122310037485250006245728768602638119679989509562152965611000774509606223878726181978136137289418284425673624332696828923333285601735559283345124346207489013520481906809123433706981645772110802899600173933321349873607006607769792894536480430713528192541282683756981413543034351953171098485208708728360083741101062504429240647980937634953572767860942213149770072992855187341509606072951716393663173803956342038510700103685419418876794722820690069076268219002290614466538921766847688542961146566889021504516069059484776932608414184752997135785568133447075959882293911718650300854604670294604208739599788562110381658912466043167021870059468911548680852597989686116607452385338815294533178703260811904973610519702343964196876952833564838669089837373250560986664513939502611117569879908418969663625460236936254593478290588727897051538541826318799441807803165309167824011714957070446126506775918481854715222830862352467356597737924898102133905260603421906460668326034987549877748356693904580649271508084637054163770485446287549364631076705731656971148559837541026630370511817039888893698568634909455517972040917622404431265407323564587623215087828655609549315155452446633358041235317904022305173197699841184471628984786877212451965288998828447958638804876511931203309296795682488917617506298803113655078981930051260577395677770578238481402770985715670176906828556852156080889253679801676429384667773701858515791684571985594598597895656130298252615393974171143673373793169654334554933550013050537452114113519829769013180010503016893032657391429327803769840332318779972483499653718122900685059146894461629749935808461047968240673574869457386707940659858661466525008817680779382826413726626101244334552364992062525202801552282694920202979833539449260038127539216020162625308645708268750338443204132782829496059670595678750221848393705251167177327985254668342811858444755298295655990392313194641706620351564210352516385300091955323119586150929535288606219452195521937439527730387924577361141148324414696469169137049019798347794803086328823507731382766356892403199190653256761935913724106928994076320106095696574961591344195254428009587136852722487374741716929269892297693044242727161812779358503446570402956502342466753270453617669882325849377492613784362469592373041226038548991434957389532375473013122628441742916892932438967435107328822512700858446302542277851510855622941476283234346761098419206549247341896227671312939722340713541552035637471197241083987682252910524415343871923112793066586724885652075300242182426793555332170975649453655668941590392539202554671072870321853039739584063724021342386660021579644036205825109587582116628891151526440564485633788554147921714032628647409585437137488914964133868052801358324209838412905355071269610381652320404421542966821674749752927681628091629079161929484613672699422790232644373690298068019859222057436553321747598831539388780627902173120102501285083748278742775350529698989545596968141189851234648814894339737207601134273738798077494031182711621365634604121567891377359769904138649116726442756175519349958617929586388580733578571114140772087457234848151023440894791915027610627697753623697844594236328907028606036267273885871220846573953201208245260962457805050373997812279920593026851931741334200352153367964711830616184636613133243499651777739202384967979480684987763916464955905359306590913123349556938436813579360623953110020771193402998764070033347416253619903266088886887054246922532249815058146099354132411584446784965446425920625756447453307091432815545583538125991886174262106938277335516745234659185622869819401769183934697641510305798154699262061956835855371144951255159255488153758825079635128914609604215694651933499574447593610103138437295448616582821929552972844436509346644468394033063471786249147696273363499308393533664688957888433678414665195594460300729795339752177455456910169772711744096730411480382119001304173741146588754240232800042449004963755653952577888103069979339712829678568296334423858603198970758370100979060233295515894533182085200855839709974418326561958939582036027406156204889764476451535091894922945357794666646588969770535420124228636709320996828293225628869617016387799611625742687422236912911568762546087610971560098005183236648254061566891599614468280134153711050564801928866859285628826613439218353164347205665195757189275731481085578862100151729873237905772778717469872949355080471161133995394541782283330573785960602364698345357755876803248492821777339159951686021430159594043013375828165591262364029949664452913741872305202035185187732401784861694515463766581255029073321731313267780910628613587708036497166217835518038289029579826815149475659982545680012499881251844335501237625183138793811399021349285325532786151715162141757465418401050334579816054063458182475072974267181556984400239144697898235016379395484326567111323252909445661612632169301846534679398869354151515658152069675168987316825488348471407053366405130212789238271617431194025164466337195483529734590092458107104510802134397913923682039552387114385048926274812779401176394833577395170452503676272041880272846698020994328221034153057030480706274278431249230381484661405916680020851075644589837229559155768493598830917861809433599889230779942025954427510168264978204790698389275433423597345602385655998114337588823762178660123079939716878167063089681156984135884671446927245855631628150961331024225668409718170250798954914603298283972494148269570887332117745619032258966187650148336317692037459943646839442017022705634001044057790954631131577944279516596526505963463446885249689065869647041661355745941802492650513152721965330664810785472655302440457706845820327012692069812538318693289084516125487021134898349275308112310504724691238785802484465852542473668586757912445604793040263788181586165969188524004429075508323666499339750561707875441642751164616077574142662863628061108320905908766977200172237588115073382204189455848697796752531164965669492934378221977199096596265619621202508540542913750911283298744959522423792939100416946324476690579038935881476779493928261805245476779168272262809911475636707051847367447863684290365160860665773267727144946994370687892878817773566748269673215388612485890458088586498829276362805405625398220099089836318227699658735594746925776579855843033158203179884238301522012919577518117650039572642903114509835280229619778575435060409266340255911437286704118460946206693647756730440583219948084836895797003429905345518431423949058411966862835704158774704988335622976291185766792770117653758776830245175480836137312829291309258037008693218213809423132668185866532448382471873479042619511682833507424707064043702092765280272582573432233324101429633726151760914194874982409432080979947369107964120797103100721734611839863265088768842319871951076225723867077629332027217023131614808186124265505730674170052160087706676954052748115614450462776230704876673331695925089781857463704086483937598144466917170089501618358226773613175105309867335585829190148367280176368995335270007675755444329165178070337564872987667582933314442052627132766693125851842878315050501617303713580870734867533574799995209774799670015258182134386596241483083693981779583361159839062156050007284673209437305287018866855443998227035082131966072620979547812087498691884356246729774707646385072578095952254780186897790349749846849726256260230689531362495566202103816673403590549719626709065600089284542270121379619501927819455280698501911371250270725991310153775899699621589994409933019475946600983538722219109034631150818199971144390550587094603117100811501546946937172158600913185761653604666867304303322019240630210178676669846498266413078695221972968167739626928461017164760920218310040255334576730863444034939655120140828385108183751379416679564982126035297377394888300487773261014341234396803260387803493837486000631324595230691292444499649923540929017665483567122611058887249615148255455359215356744127110632110752982764569411298873797737125252671574984862971027445533521847759418614552711522946233843882058744178804114412947999351036001441710040178967651825519213173836954216835358598699640066882764982179627939141917293635867776486636793267605038968233912156008101879480239194782395835931524553043203281135908451056760445916669912271781902221453246522122945541710892400801815747827379923073401671843568429767935830706944954919304004428171964035507699806578384671109556221871183606832256640749139709763832179927078294501091658094788824488634227749868891276599451585345117158815117597264424236399885541257991314478289187357868426167985428470871362341703587313740734514808457679174004118028416862535682441438077548962625511646874657519364148816837420442239248344282079328485588354972230249008183003570399794871943871572449307739072671253205979424492761862646813585986925865797464146130364093430868357045391816559265781910519146350170909188784509034721999204888456390657368747421601271272704144740256196287632596307772019906868440296294743509265186250268762134627285939093677194508836019776334471274386345628376909095636471375309797692393776092793694780854465114659652004812886580150746919046483291472280981977583679185241086420585160733687225302509302014096608723072547206935534635779894489255326047189370118293917445661271153155900620472783047551934292162142485081523210848222392263468361851424693081745903989821007000506013106110883315324349165055954208826434364391855323835293768980568501148002787605454721851171991205119999484307773329440357226501701004050910473011439492099816836395151847862891606132117311733021908800593331930872218283581664221328400224959274538744197537783917300389143972589937237621844977782241854701998883103459031332786576079831528297558346847845834421489934178986571159042582465596667784918958312492425331337534827016666704865252709943082709705170399778277911513817883166857990674814673248092297112121413061357270029304927976989531421795051184722096395005289312652979629686861098902603389561666784549538299073555490730875893263044692794224811625614287071467523655901333899392153120189814032435528198597835882574314582519659484919945620967257944508182939940568265634954624675274505064185040019621891958491835093380954000203990431175226760245731962167946214387511526462446221819828476925959402629701249845826185466516519244640729580165512329504801620298835855002539934371357180435846266337501433879401428221194784013826577923423163907723219724193765540546752410984680367184334637982362788674334258394687312071323600050312382870951858105571366162113239290648948463009736495172060610875219922935519382001213558533987043821742448200787544610814960884916152171819100966256347621388962753555648477121611442526845680122955438055340391050536704111555039424681545549638327039525322094535860560479017526263087425903361295904017829877648093377614999256166368404637522972370449445249881805738399102600929977999755094985612995677823854355246007664560746859645170363087131614772300330098113943995325334535703415246434574987467015466841449678190154126480441843205117373914970799036896726484999374616640040111908750544099779404181362897492307300535854560792681037616998462415517882142938562156488138102474319883448799306153879319573365878072617352110221377252207908823674964631885104412639156311240552908938634899409203310564695502487928618098733401466743379755489356957447425905987775918157323054522351314276448615593042004366542706194040816489201317288078461053411782917097527697218062635231305945507954634828572773954135984389209121633139582747392159033066650499482851567044758487123578041242129033868277412364438760468224201910833923480255906511712866438156679727603001930002273093223767922759645935528429744253610261599145611793486916954615946652887361817863289925525092985131897814020508254392410842192426455546253542424030071476753026362734686686370000415883127924209627398277712277326267004873074630075400116253473385057729004815149431970828962043491446975325154684789523292528225399367999398434957350213469779002982223490154121668161950789414623178799846678176313265471957933398677193910080405780555215469152267176429195778499830815681715586711783291530645562620931404775206181436376238257481731600507771544855295541309177349058723049906441370979426236841526495163077054524024050346123117441342984764058775354639635900688729331572377908976717058389768722864479183011818158338109770362893961026852734197718083530054895340388884452728681174804538881815441473908639298231885413473753465511925609260306317806152641482448114654182367422389398088425629451537570170378099844450438119505624833742936093053097229417531872532235514475707460946369125310944546319710081610336906409812729036910450954719252766025565404970136709373816518169293941414904484430257762501038154340437816666768130769075652892825201051640985411341223333530622530857523059226817753770802832761992805759281154157268527867995523625609790119755560736818682621332845737150536000185415958663021152169821993876984349647036816347216398055714333202353166447964632939438564685641113421571960998452192702168846304441010306723392643793218135097716287338355122501736554871022952717566400237815380460248209894289974747772312312873237526179496654521091300612145772723161243114216161790374417384650817090617164994245749745595136691764621457706701224061066272051564210875934484550554538743532003479847688939154364152961980338702231986268342245753442289069560445783143802711917143802606545327428992657595571748744958384616377519132084525098096509382038891192239770604534058745705834217639886110341407650530810290994346139217661707949688088871488896970046874879310267148467356965978080668394397834960497422380957080940960648840476278319903061436542986663007151299161983161204706343707261836472494650592094515388698986702172101323046686522570969407287641497211832910998626424956629683809222802808916200166497944971056021915832365987337229556939588744281638559342020885685472646641002066894782236673973993465013431089144676528658659199911273433160054362070701975050032301222405145595903448948599429390214380116583968687626625041834488406846604740611221329643004200901032762271077300459813384584428321736642197238178531860370574596511076212191050751371763691123208488579357286310145705983760356672592299751621821784588402692513105958932580775510159314034516051014204884887826367717197515749546936527080746704759598269739665059685015835419380525558283359382719007461508851153019574377226127649200556257615925713877695253921862311939065014140393346698586241953131089976069347714019461896080493309673793364318858640956314129179960895196310904067134418444877787607396152360003010952854644889897275959481322800558776364807897066737681866250891183222940111331741861074261996584613503210329809974944075383545489375853165552145642440126757016719019044599330121539259206086732661643373855729725728133826730687567404168570517816752889943892282532247071696581792383185086320156224898331203524772654372737508364788823886033107947256891760857886940725645838205119573403333583013203030137129351875572979495657303555634986321602460970710788820300143683880488212733132201397146875499754076286341734649881480401691124631949352966149106933764660800329081366577727057665239427038466922078282044770115801646043285873292435594140125882380365501164665772498681260548527780841582953215522473971903011903893750006196674869120626318030524736889673776797901090413440785459904155052595209245752070356919614823145583950067443425590522162120694024866864566159721436668459043563682025404790202376704047464615411464981627089840623850165499188782361196398239756710167851451715832744806112914450140088478729510359896495941225798335598374106669063991178364388538744426152969616976627215670966786506244283353277923275433307229325179911444125849672728865728351495139137560308416948940379297415555765184754737238493892633718493725957599492402318413873940174787206585330526095129419736417562151646229021028277020166240215035028104835116538767361926939139609463352746079929309703471109043533093120509478186829926947889140035217989221974828149613986674590997925664268451456346258275816156484633529262080283858073627391820195314111071742139841861372604414484520890047651777670407375528991892889172314201023234744414486860390046082854684743640958710303322234428095016862962547677527092079639137478461704908206887532812701198450251534318385472587068602018524282549397987247356789184518834144930377744964109337846042372754662032757177358094672216170751387013712423148346418216106187723730653918276521103946288161590882120768466145204324579918143624353501586230901156040913607276514216261164488868668535721454958700436058458618622362490045617925436026351938007123714881710485546372372158071911743550444881692236833890492289796674783623267716999102055194157049605655808566999819314613395131312403218026340467812398997613626465809827329392180641959860253700539897169208261709816738577828581531767514013798981247158392038654959185817143019789081324244434412583113545660410200458599731395589476649247791701450217641666308627442833466196445528430476260017953758357706005897715373771861680436293988875724440176867379705483175768493343527658921567717962296368556896744470209126056218622530021751214790198207266568893128890887083566870246560619270582103339670736182237259783398263867823853029020751626226715846155525564876077048219097818032442122068828004287464568313998751106745026358397821139316044253785769463996512546002288076852447606889964652614340899694814227513955417933300660641843209687325352287248079295750380353722313862909001046985940153685685555936499361360869759672972040409008751951138400756093827453146880438525719634935295137385359033217587785499493300631455803836458929311078242267605373081906536321090055496882945064137706056479339543240454674974876619857717467486381547119264269298326814787926611692900820702241469873043379985143668541850014033431589037434380720293936418419333279085544703813162481606287789757052377953796647289753835043660312807393017226102089565451471121366739026187359346456884237069642944562819574990641877383343463877330624994971088584646241997936545644539582911648168327419258628096392679361750335629182969475776691863305924009980990215131510928706616434169644585183473461767989515313896635579307066661376502417928589277717114754107842367853572698470784451245977082889803452587971981783709844479238221869956288763412498844143035829374921464437649817396895051631871934964775308836783067800705367703754432647021077893909219773428758734581784895577425242695510629154786433482064601588489724193613750109731717031051238035560167165890002951589756673221483882407856086586729995407299713932843794768027642488996065601416382949195017701934479665149161866849767459629868608203595417642127684671857701155386887104571039086044983855129024827830555455383712391497671109153983119140459185786269238345330847722673475638157029874800469927294997178353535170646070326299375103612466172434184329946334159998873933017933333447660418328435890171558253231209236116289316598304727512409057361900618568337267881935222435601589488675518487712553383736456395991859525431066059862594133779185589749009220499945328261446417608591389159740487879046927664736852583871757630913725886563701120225009300968246533681875741604474529602398313733618129487136478931443561640895901651655317727020712882986735268049064920449290422408302123868821603864358498256202918248160279434334661157185389746897573854854355827311121056410861165977155203221505132922872457640106305907735293876814674100596482432954066122629857209289695439360031454192227433778691848358488872411776671696876864119457033027615308858051601510560013493983869487000295026053113211910466064888204651021442466787521913189971270517858878532841259700149697555542942710072640515728249627619879222084569669188549331086838734153388104923724013813494990676948122519752199092186233573982356087843097783341672393447019534817071228621761987883313278004206905793729350677890011956800332212724604006054779004347227521622691114428969313986930001941789715477523025379466717866520796447107813585142720262591546691788472223629610772339350783970930314961319375791822049717214286936113326107987223337171316218417843798298627584261929124808011177841054087893964719826546522688948570658491147970965180931009999755929253057650687066854345651917153346238503273871529074265132845220361403586071079584241299808247934542523487445229417937614740613194024301545672070204791703443078146470656723654306952323123515065351274458329608136132529571191999581658545223198805752121704074715214805643202899740929565066098087832911273835482034288995171687943625057477471274889542376108442328940146448862348855477514581878713917040245592866264826119126589973720169995649584413847992146494920136987438665257150782172137430844852911388769027713218533938523117479962171339250185115428396790464635326737448690127861009034552291452118235923065817322113379157685318096445353622271747539092250371876715436145439378023914701875674106552220076217283130180127655493189280230165820897083979832945888839251283654540912087418910833462988440086830283874318530815580348012974092446785634358525738689962096864688258970918305867218564846215146269346377192420168632210609788029280649163584391499794533053574765688108431510788872689247982840007918913235929558102206430667215253364847520208406567737088179995798638625616700563379631347877914497518175811499271272066409820311870825911492149234428607671006353131663356778133371642723944298502777215073071316291327765892450922774686177425577722038718243089403595122772180991509123925873993826317455273743141202423468505185472312293182884236875227015439291006441553240306307338954249342902917524415957960233156554517064779859396156690828056941445462075642655675255139989069155775538440748580632873469548917369845380165096363094379010855656714518997668954242691823877562444821127063857720568192519771868125876578565476784883573360906073840304298998446727607106237816029029798297662928688238470049732768403652603355275202075997900529420943332242038087025143920152215478436994322350650536872475549509340340980164968161916942965831859532182498811383053794377854632171248767745454842418030078825878914887361146887886573612542402809253386409764407599185124004756451221617900349438642766485701468428085356661624362841204715716960340137990993733480962670249585562881075228401409918102859631740096252905199475410359542450263214429330259184580856027123852866039477720611421483053227388006122440619916116357280811029692100239650948223864294762083429837488649331652185585203928686254069110915328663250735556009753860843447984344855904909086421466308176333312382720550363775802098796278712409129066665723449645183786353741654214603230928861683105195550296549013921082238101209561350750813112092982599275774533209582942757002682259426071770463831128861919531270272795735435244642144423415472146560161847004584806722410239716009627137437270958381474028171320688113433497739629836925466906197566110260646593477876609192884251573506885477490090274304580160466882596317380330792214920330865242825146537197468728305461892099903890569734878995426767761478447154139243595440086788118329043608959676213013693991611261668853513946203099913401562862199369809165607127998691326693300390749968605940708989553706216426775857460242923377518045527440477381137373513910544421001426985984118401658377256156855704477112156702144051147641781446197182376443455272469121577941877988768576009926030923954089011378656273032354830720773882417000878879133954469144381890230046386061368588392285532826237171724310783013679358447899307766471940116499655102054498417243515731914147424484840382661729108736919637053896337147319054841421813165475518985217743055284627788250757140457671348335924392002230680960433245231189310264027505744193187065090506763113565240332110010675982413513124845296695679634595603744727855482067558774558262904425734043747498102706867070090988103799730109662414336840411395452905971589955602177634197136859371063358260738988566579634414059590753497078521130028493756873320058495569274678331251124685083410700391295319837851812420479146745475894491685693540521633984329376326684504184880537009433473300648020256200006288362019723044429282674110377125850428521433906137933700335016525536030514702600395140281095692802233178130021917926312590720169021821309653597159484989673536270664293082306967158484640083267316749801522113144113731492410705203794866038781607705817751534327373006278714942669884399036510802849297536886274264646376673618291072537504872005598537731981204625068686944849297219510482245174678579236345040814968136448140337588024781448637606424133210628189794243015908034717496484600805500076015512073827259795348103496000948463819084687102362202324276760517210865816123920108685916880470298388875086135123417201033674613685745377401457185631071620450622733693393480283781004410523520137808796274125872748678851299746189700858153044082822679538112227969474932021605276868736096256604780420559722444933997260755864897164191512686678687045415379020770883600701316396884143871215540539638339381112286918666411205043077037946207557581505938593369769469586206244302644285862191177337949948998998870187334527621615220867879981967573312970384609316760060980840173094540555234950621404930564810150250381926455478152342817533774705586424075884024385962896985678122606567031320133042709572950510156221359537600858833877975921149201868999564530982200151803486412755219841787042765724294695315993574298167341328487542410760847845524476032862996706171408317788467491555230851942685237672679883637584538285389533222712615882651618563695972474281372810148897666923825492632438555959590976954317621600534858793194798173087256610847123285187342243477806631855829877238284248868691199102667970384150493668399656108801960548847357161535447764512280745324271262128667762724302087954294349407522540368014532468152462272734874248001582852206898487285532546517278053349070148150380699364969091304904610589406262888684627092974360576091734857875049353905695279892451863169540231346419088510925760571054722434953900440513605962811276265811282104586249816356649652139543206231047233286777399716104099941045056123899767073054180860420450851893580068412153526403030157512811207082702785218113647094225599644181721504747766958800760187434792886910008035977003060207056989421243621873586625027337218870338638125344025767601747956937106604045409166792308202985686320274055521440548502407619422926040234212745076770643942006383168612520932937432562053624048051883249699637647732568538841222761685789208512719991756604361483936477453686261399136585726710176267430852660841487666511481519123324943557491380882374040986232360705742332056589581050543652831530652376272170994579197464308153346075693629310459200196861683162280228888141517610817883851705772414674362906175345065394307576668937285869774262911047694682634460509546411944105177499537346945487050635275581071646767180707493038276960836038810054372434201379950038061273127879437102956076858954667413648428244299399880451347482049254353129438321445390183413171866822868078038878201821179233799224639295361713831238184152942932772626670472143745921221964960183631528258280348152805729044223542671890189350913310288133851917291823993152371758774167376105499727935713919723191223676027118048963541139441954059363558604646404551284058140780149702552509799144840480276834175389086260155299229123470030328643817823451775667146942775307549998977818469061022003108001290258039693508148226630249514232125331288682362088398136222768846674421993727647586241549872767889392383932945058108141524680811627129381256073216190417355359974903329387592079131955175343726567625230243170392945736190047265410294261238795807707599368211035002440033275953271384204693310243941515274133156622601676648323635674044365216705193237036814259930107625741475318524052366290188189544172842244363109395310144404170831222758636300825046236416002248951576453542320536134196546757717570545027442829934180205562924630176022068238471925995706406717676510960826990382211200362923455889153626149430180425511694129951967323610616034150486930983820050733668194031221648971234226365013111196453737566374270998823362576897969540957227299909124248671463148837592304064279547122607163785187118761292022933114012180544025260247794344652959743953300035774854939315610046142557228963703339822830299874186808207877299298468765008000826458483567134012993683427172193611357515139902259769094264382216604444912412981658944472096486278210947174538111183373624663345588715753028911690517347256228343943857654473642848836292661416131316747697370400204816816087016710068107554900623548948172243417926677269767210625712353117520459221993586214654151196985661845027912896856328598041716299428298316559285643762721908977797597223074693405594155989867951419403216743151684358035833310778268352950031809411485181157526520172141713286363538863126631767260177379090541263160754876829451555053322480240951075056065540297761954795167634749825103400679479724562948386665110955461618592280513905989076008316463712081021161391902623176141052056301337637944676254594124363982444114655217692670857655834679256375116968627012165412545032651572678864927622782947377241290563093734446127723967514920740668661069795448496010058612925644563789862782733204849353320147633261020276756747580832805676581497197657695074150868356800075471075052104595156704695894974576966623322081998608506326712507529043889660032877923492910402543642835993461087732201907337108053115985914047205267087196635211233346342164289835105417059665593324623393334690225633939757372443744040364671742348033890759123717867330145834031867311879573038489948725328429390472911909835345629512966023066526212590930045622299475676462583722943905424342714196684369748831149349084671163686643932921692675249091954799511602163920313059170698905558259853955385080562709894816490406517273409699374249447031655677583677224884597528360097051760366124865014379621849860550584781577580293682302992077051610562093233410113362120699234013858696503536572074849705389159602344753214007062358206743824470907616360619875680429078110844649225360131138829229304512860282394281559980426189238417476756690931276500813859058281386610518909064887370804057851696703089240895079188245453926655665569473473518720624656392576172749942291359092879303225398331972512270119478593632549322645063750475023273169492045396939569565857301585595401739526095353000687493868005640269572310203985927422171822287775113694362626602453709525812585383332486667998893524960200960474734953355707608331588060963520079684615838101367329960539334230085576731702548516601864226886466842354687732574932799478521912776767084030769325365370592150651646147187634178538432746339790956949342187854436213482004257784336880195190419798126610622397695559474493885813562441417190716082295267592620035347852805059455131443642866134675272517452653680248597254363743763310016481021020331248937514473330566899705833105507842379430787446879150405407854342189558908725911733620238350461964810248216600092104575564097301298790575620904584110086944922232170803459485030627684134954906810726349156923532460905097718836014233394382222094224488750577800935954146368195578661553569281807228897744391403494970605232855426641644952659249230993111959720120326480584556972511491486634985942688459777972175634289101448614718412665560390681983714368602194521875413740137294124362381343907625261978011190868034213429555262710464111436885284142679689087149188795073278803496461218151103038504701660967543618218180066306065013342730764108787480942331647389697491795091247465462682366064046171586721462187436787174394989411204970468142614053833753071843790825486271011141296019289387905106253103773649382006968532399663754882887748343199104444370289415384777247633168868814452767267284939856804772968330577394745454045417360939281048102214040326631988708118897056385163463380364451502373160959162881581815202846480084768682026500248736346442995020102330015777940159304677943727754324042234254801907708761310908321890744488674593618136531019623131452158015932112023239381785044973060862011537756976646211713654634045701077258911483090700955533393821378586644096572121962536280353561553411564891549379519781606027214203722413830283704841158172896400561732703780394100371206480326567371166112689337100473129041806283976471769172231994286796919504027589360979339186441681160434506696759815955154552879698573731252628595514005636675458568132195794061741976060473399281619934965708794640049661383443604015699981576282459631234622510420322143051769963981316586776704241358471133616916205579387442239553178718761468461956032030667061740774122039188618929872847133872565052173620011610182897207026739886692617235990818466649506893322277623441163509835125819939485155588612272702407862843754143899030215802458345690891632863197459699974258634720628421947105438535682518378809344287354626519725622170725212818372499701631802823637131399615597407965406413885018547794123942345288345445976597139597104390623296587218114843369775229943081545511071367725544416761377976065698804277009715730887514722351940785385463605122867708943416406864737363702478365715652890188007405147576357217863443076497518542027071793804167927745500852303380247189668495751510419782626326329106766007657252647061232268146000909608686423251259631238692949512317705128778263655082455852710381563620837902097775624715978747377772877055507024687130132083473020050058623901269484096395313696147338783806913472115888324667972641531809395437785443052095832458613632988289756441082743483083505478202170207308686191936634075676095804521357634393965768232032772635586667316736215095301339443515440006360916000938647828131019584842896194118982903706324009091939696041405016760515164143311511907124408762386615069893888379742384691773506690902974951338024491104945409406710635660598485364414856606383146985662879395600198389002367698667710548126997622920940785219824608228523151246904482117606011382601135488817304756134940619575647246815627598900868562552875201407290124777086640336321674364808313849656179759757816023043614242357806393704276342961405131167066820629128536382464362970303098506998591596479277287888301619992777619445470029606432541884394664054936636467990533708787762558484877357133807211681684959462275921200643841552503194789862692322554750921962478993063765184697114619005063808034074335183167000740680334373133363393968434639504241901876260112644529960278099958322938403440363270062774909249439199317388803356686760514284262639675648941816173147252056943877257925016204618584513992643178163323492491994506587715343768694742040559177088515848203270669841188287864514742760734858053360917384299937652232601839051650105216770804650901741807426117240230498714615240895553301183096207573774995704317183810979921211512464353269014901508988778094134076368379366289602388920893209083785034653447319451347845014791227758583148307449768501976192387143141141937268801113672203686005511849628905309427955260918531040198239208578529781230542543080920623603945130620365414741034906213668509239453975439075538126608729952848970115953711554210706236865211769212490945480083259469606026567791148702326183081881106803395484232659286655185367047997036856526196122540380615554682436838274042896584913750703917102660538338277621622243434739628866888523162854756503491511924591866927356622053669767271544624206896286214491054339895774334264563813918625249178197821965846872238370313328967348161716610005142040441987737066261982867871523632660962311622324262719116265485791853051151622943001006714966279659193562740710877333098964673941674567045753879852703162752673308324075308127009812248680294022710543894173076685008976710217693522023007552197917724711243602719894201996268292233713388132004606190555593004228130038203307475717794719914135792567364154882152617479896327522387840095991711108782263843941652034691981156365424620192039527336001659492695250274134391855512012218727610408461662617193407484113032193986635193530093408756579115628954473632975561060595220421605875275541478626143764663739633041739167766601731330850547349551229575082902803122285590118820349283221488163830720324219119579074003612860233475290715039277701293350063960086305175536863203261066790876349749597352028992838948424455654285693324407006152208648157884237467534530786961272449307647118682444369356904114302656702804649488027577309270436641678904292629498341820794582685446355165373088040019350023734978615022585838617844260012187470583910621249268008637525021831388513064633702235157353356412771613637756791579390748303685930426898110435241679369646304618214138553567963611649759129503024372182363570060207973214598056046562049217681145703885245818590199688411006160302951403600720671426618305840357776843150873672832512150942773521485298855656176447978571170867678267540960839324493783138966520819964081672124050514313858013397947301354968864821257987969472267747474900002339405646258743096508751733494712380598141240287176556806541858313202693521537236202465919455620137179588918638293824934768908898785916071683049588057678063424744560482349410223208903650618591549567579609580468269413194329833899263717725021010775659661448795341701262854119873500043326502947307954947610182151768810294352697256704352230822985007028322622638205688576348721887336983158956203392800179861229337017198699579001521923570502287371694250022203849991748387592384496318828488686130805621258387231396250157295605044228715801120909731290250797771621250866268978744709111674655579796051673298916157062144354840353955606106093602074313883814723138551896374468296046198777307409570310721143032611161997832719305935584464510088855278183513158914428739804284887278884841475205698784871496262938693972680993922282836233362372918282844953223654622278763878790676258192849237666911623368419579449274600102501304172702623262493946131397811311977163906979643391634368396619570963636102941889185155967212672952943753084192501639518302059427987169637591284081698854833134725241461455765601912773501258563298927803913765519961933755827849338384831688496615601546938521253567934058625535034790890028391160997897345143450116979850460928893966831285576126699137304605297007654492411253444993239679532385730375147888147845670839629594427453208554956952721388751532337493037497084113654462668125756427544916305869916972942982185250836578747986400092149313421670881090892005531228148414648174357897922212365242045623364778788232319314861658666417635406275640434477625524378448909797435695673616637818935250171981386337240393674891857899020079783535220916383675516090177165182454251813211309567456706344560709647731484155985361691225997521824560249112644245597788067403667420324199212651286939429331267841449385531429264113864294222393857182334388773101481455095436399864929015096437965850780765441754468805812719645091929626030358813672261329715609139315480403536620693824821153654568680629986734673931227364773077547308580174599159239811234866927265166742707165207971486506861244167529066014018937522440835961455403096100995327831926463713776723801389962657956408875158661055962903676186449626524161811288675753657242568149521794694161691011969676628887589753779153478933494590872141527331170240817926729071329320079526707810190107086480565112720205157725741271399212499299153667668291027612652582851196011103801836398173068918543842655098893479021077884159873037970681656467572433298958913726337202572222757425077805008767660841433641740570180256693148110930066908638120308228284569882222401070198401909211563127825408883222862229564449007908395202829597526778519815774114610482871137810392107038141209501355254703042093175957086504713648836385919849663971532511443619534349854893755887357592353474203183649620852927727310043240142773800037955329769054508420594919174540603059020339789260579149957287280066346467130409447156887474948774883177006727345211609857491545831412571555648272788289754348871451854596793240129562465143160413732755075376085802638549870253334095858046380094881667865159633634861391818387233295584983495695797940222474893618563451289190631693399488577325160416916005155001565007215865876784555905636408602943387026332798196155258368126495395392200718674585836994744525758279895964713578668340323084229949132528503318202828823381617709005344689721090165335360850606396601025557157111854304260746093909355987612271906857355443374844316547583966484913429018355736714702936008597377254834747991650347030852793041332663799113412433963175042327443103278900819122135250103253843076513841209491415206515430066973260708154821524880984735751638602566805214495974928219228767495948220216227024999368544719400274386741376300006685894199666849243273362223422133427903725708902257771398883652497336613271924126729191834387757704284446050553005165096016817786875740328688644995471324472669619776664574024495754596003029893930857949017927808748147207346594492937245963663202113783226672046443209707014919005588976742192118345809802662292512401274166010601930985710769401715868468922233692182224542735415834890955074827380323606356499280832163564183397513977098323781831205785138779272063991261075307283705600415473933217523776222010902426217945443912128026995841629985520654713298834303750171314072722534148468833099849267589124066050099399148335460997581976349907748025585972704030331736277152616388808209214658177067533805125793273131519417360421316749349810904058010314559819758861406081359326126875213077181503134722716777821916746902761733882982323759244485877328934446489729540803414732940252049876150248810191201089130083296567764235471032301787098796133135035108606174137569173907783860888416356032172969212346635864044086196976992703464085069210262026756765427573277467552905633467582645046814991498040699588985623531775639941177965535180326713797294148286176728349103701390405915444211197247545806883344754340343220241721796766298074342456425276070249915429637238153533497229673346910108660464123595342000608781940917616140466493660834118967605552015534289592346149172147685361016381339526621646637981399549325479617741776953019916620303325170502395598126859787644448270321704217927193548584658703379876021866859951869039573605858570166737227148371394918318156112931582555899696686583042192576273678208734216526297396664135298772787322751638095419258329139226145916355211206969185116858413645382570160479179642950514623520133438078542568577606700585832803698342628909517780304821165786115524802767496770027729531551355778800257456056953399262232917090456480408098339758931788851848792564779671817869699778815353817341953087041138960916543357154795221453354200000765824919641007883477483680990677047055958191718103357603886972152768900351341533336889296283159112552576625191927527173857176243052803457118695431029107304657152295349043107423861522488462643182255239864912275353205357260677486124747575753376780005075802060794308074844257041689115827979813046639698016928229486888526626675018400296890755293738412678973934155668190996879077745847223247728703718674561913188336817021265479626333809650540825695303432097671491106563817745221467971699141695349952410175997784788214919527810579413051408711204958723708207199671106962372017784089673800654371735664950932475706181492480454839560211505928632501604053358779390016242897645421681091918089254614416702577515316671674399757844445634760209876165361347327171410477335264613285080421642811225207911958617962214432388762103378441401260119063930245422090779929192385639344689269071417914036964283667019509772534529722811523223615636429598917212815204887167137913325424381493242282729461853141120471362810812114965397799368069522828828076226563288912274381193209270217530553625831526096065406551510945119124529949147092068077122840574622156938583596491898421526704321713493196449995232157136828851531223500535427573885883790031673178883287927985114893887674938871548053821020619000047371295913101504118134502060332030179515053091596696885707132370044022853100515776434731796296711853211824986498207960981390445983429499997249871728430311926874358056482388848472961980541473502310483013360262439900728233770259352821265898985007069716415194928443512604316516231019455945268097341453366602540151140527159407256884077916259864919140471403380205578409716668003320448501367465507589391775780664608179316176970068123246425642324485020745843219427027837378147209275808900432427337901075378842039578323723030050174233916515262337172521566203645147284624777413169937414143707161479733591042135158337275421988855706362026385705130923310552074695883635555222696988624493632379465693437392931698190551894828638427705371039503470326319141216017365114078999638297072977995773960753772623978486733017306192524872096212416216193964133125089881619220969450312036836476470519384004867826720193856873735335792703356314392166068074703467793541503699113206282596540280552826233286624399877344392380714365981422654816077026370811893530825566831752886120843283942479204142767503092903254749436167792500433931759328719784351773535592478627937234659805946515504405873579852962530554494532491013852080643563374342187219569784623852235826562786190069623029980433019584025935745340305542831198251480498095324275385535113925924267224641571166300731839411538708532591867645852573167296514452267256906596080180225781614669422833741485809135917672897552662602517054218550767221805550486595990154460926970790880126059358188068120342092648427428485767032349800698148001845343464608049235366568217241054214461043669281832192304526825107436500426934757145848410731105320486653422739180038674682259041757733641475908600307118744153627557336771853789722950534165036088994498347695941641389226638936401233082748050343916301108091727692693611525733869051046429458625515074280868017532945238064028594884021902412131984762744841947454119078544529043574493990128396981784215988715555306052244078538378231421446008154773426794905795950703473309551398377976537143184324494008361285861633110744386038889542469037693700569423743589281743024962883850097271760902715431692592849332034714253752972907618237752047850490577056348188847434211866198786722335334100754455039591486634725138316950627040147831572033513719696862179498351776577280584210897206303178092709848762085453838362316216352616881763704047856964824718601183210969367804129877839249002277638243812632827110146647169882111814896994081140527633524697771734840125614981415830005214856135040529243995401301149159228429866566062465357497939964453343823292305801132897573687779372856067537000801022764958264220840783222761120609589596748184480147542962281628506939329080279188104214879934248740939529590176005219329184149742224671876890460982990261113853558954762621012573950918461576998787885819174686535396533304917556608853281605526452294364344772762062726056545723631711031371113052880008696051371234447423700411740560403791164686112952469712995283106721048502305376273279270877288161031917587723365251379286753348554339050680218093778614294861493423915292972376230562058517105568858982951153824835394500053110908586832311221334042199278156856920271217431738849960428524655116813895947497334537932225103412935315738114089494968764491619985399325951550581371840539379153138551330276083593865239809032293192041467795123613425633782533897930135768858660067626505673068500868094547991165336415807031040869715380315086968918640838915281966424360161664804161694331729819949638211403723659574745757130410480488565025425714351471950624511784696305373442397049881909568096663454110150444108615517442087714235080978691499399314660934791186624068961043203429074978574065077046591357719252832425532199112194223671828665960847251761170964728774493059376804634897499470411470841723269914222423258569483414215874784286110614706312914029673233171538772644540999147345721822317849777841634708143602198792498914686991994348273821371525682528107108437006223425037155486071105186818142111930904898511986863133808974064590194829423262822306793073521932482303764469434122502762442063793993896111862401102947895695566921801719336823730830341176632506321021285821281023346286209308402836536916458850001613271017240251717717146098224967946099351316031340547083612408484173558601720425478957267308230177591512889439970533509224330423134406099620158436912234194843532236071178213501024288278065254491215296486329087052418373173137975642974013455270205480613811158050670538085788878169634583872273405745649250764196313771906734103597359897135841749202834554720572484059055634496090867405714031896807426155681892334635630326095195949453174647530388375638479300099919738139332799141173257155754172104491633754010655485980776654897385808759378794784733347561691595904450985059928083765259194616425454795605525709108005934890389560251637213831829072573531288590488770815945353246803452080016446571140762888480917816086585203567188299730883273250006894921294590568157313702470613928267658741896710587348305279081145440157388495128977776990545708662961043676877385581907297946914646026269605108876287916555036096619750484675384752399450737986355126588780735171502916268376818551264963545130445374623528182200851793037305944638305625739780048016674319807243137651936776442203101666392872221796166598076019973574587354526728947771653448947291747094297526601606853555017036181768051418723163349490629932806224134529612404036796816920524977928971175278701595491421037077600777221197346028754833486953482835581192135502859374487719390998978841420001731858277381701584327629271642929464266429847164632632874120832149771948317987558456903324549587997687000439260469273663237776625614559203062535045234297649968326151392466844199002088957729004653264135515427370670983767215037207620229816424599540100732322486284232536529993965239211037233924806169275477390191666403656265323791748742323423472838415182220703779995718116817900039207196167156540960713961648475898698334930687854265905010121251870065686736392314212927722107262656084007727369458490045520687685865656100097446491139059686610173788008670368218994092678776769608760028009866470369403519739790643113846997114190117657399883358545799318885504874690250435788494361004347650801194245552173181052273445356640753775367599374060900567260685454640165737898896387735164463580747978088015061702512805322784146602114112249963645070732693614107404010610679810310312425753141292189458571566341438560222021931487460671497899269939889524919198443801660760490111710994091101242491139438486597010366216673981226690822711801731487946452547788584141040857759302133387401958000990693328800034478219127916162679850032165177908637232490764171207894867250533056780254678392760106686793085410336483252420290654779745943134863962456594983169688188257838558576971841788059452087467674927095726063164517298143627233416106403823166138320428972576150947669956833489840391024839763656065503773177443784303672777932696409951324988027277283935052386806573170265788709130742776700419382364094260283487139315471388995639508412535004814347082940006913633361051837756591187123355649011981945351810979685723485313457457497909264915077891535030948991811649288092458301621585991034165411992024953413284670581484802719095855307716848053201280114407407391780827272418982453590280130628689591549709769426607770954414053636694910904338518668155655061036465802398791077063063089354005678625398617056743487055685499539396728266640404024384825423383068957650275661201820788672934022243843001399968993135040569085464163581643848198908993692674939340642002431165012589506147463915133199723704976469014075669717908083580357382956594373875402509535821865708311459859402628669033169287910097535666583129331043606602725600335880229628817718732551620164199536245646792302415719003443015416103530265387239398680112946066288178198425329440051033548450294315354999517283799737339523988904647214107465244030126128722515389547469225117184436394244014568268359113699038506029984660426269941978727017391830660384505749693795384821851576601687064397556928671731126658982607383120756918944542506534383638359123347941141483349627532063387938373162232614302312013738991855513371558168335178926117257207332265955143295686695978335507464099999243802571634138410307384043246253232310383771658378249503412628502987031423173760937067486071855873586559389023900705818062649802958788772278536539079957734167781885197253063895152874258822441998423290490495235163766440551358325188421896353761930124365768599104837918318925900405871433759302705510119656513441186207406663839469977421092871159815960148094363008074091866601139219783533503465235560031887586743427833318889237420984547390628741829429949395944443991737168678299779277343373329548455675523900536111205609747082248099110482116903015604640182557727485675551618808391318069756834355490099079020371540456378470358886504515485560296669754563849414857791053621245249747311520177772700404209756482974263854407103020645100707628606666829475752025830024596894094347298782694392136301631862935042359786855495471711851826661674826176764008998351669891341438037489508855775583703631614648234890452745829413499627191312275802099055243627540890183240784050001701809471438393360328277170898686554928575943090562570334818194309176878738618135580636540275859660227845274661202582235612904614669928112862399750138553328640664066014995045148503801752118609203256466750015349221309024860800123732997826666891252772992313478199005502754704176927400318300939439265047520854347309196097899824451849577799871773074490612462512771922310271663181389332334186100947141263138354416544736804614972892986912135618511479740778222776240810728429332855017236066798687569384575009822496347209007081035074756386496392200532582153068067887790379666213784915767016382941749663324874988770589659605789472820266099731778247933281583327594077959795227647833526528925053336947941111788166907348677906287638161790562363933624615593218640888234904632709041971252640583585566045608490678401161984519082550517161425836429770623703618609641117188478551798578087138188864852750256620647608149544586784101929542486569706842232613576305840411988426223680990550296661108341677217827698824076953543110280084565932345530918502441808889293485194337233449722434977325844458081154047813035261904661037145326236904480793203838595559242301855897471643898725760548741479141523801708145929757550892332381345088983850651678175092616531457151830038027522338893077974856950407751138401966966190422577486177927915414315953470037707691242240330165907618624147775200204872240972360253856518297670898798977743326885186572736927648396667087852232140369924829446544707506868201965724041155371451072448381776893350588824330856417615965515910657843364204460879125797067596381480014492096351018938308058060781600654140110820096997056835824331882107678346308414501472205103148228113493851527274114527024977687854639529530380600876743414647662301241756089982760428859192618783668115458580089081383129455899099281839987203293967460939988333124713107678963662192551593213818702912157138298426215533406830367910987496661202320501874514513127548241482053987849336814046277693524488938207547164261373278233624799428841583799789067396458645256360741193043481534902584015004514877203419373941419161608483569120395397275402728844465882946419915490378467886211899057810907706814963097463962692914017410214939744586117564905422502340302236379062137670814907632598123347761503303893818377955278105854616794579702328610494596191066174396857791898853140220979898896565179500530048941569348916535524739246540410425131285668846337239883437869365818056837626571301327068109702420170127737971663694845757517334839622584924333880681719458150812407574964380947544693867096548485397121101008422029627051438487116193304306515177315067473929779572417179916256061974383544159777094555852379371533051448914402455294667901836161068820822647856924660017683505532397241716420318547084141134506708349766093021142518458012297868288932383039647054163642406112172177449473267114007131545182796895531478709629247422440086269715740359321145835847590108889912755450729053060349276067377565187304098962319232270053729670793445798713341199669110078277281556207125928691228610814355947686259853698942842219739423094030882373507157844686594557732782287545538672197434639054922620827908289857153661967101190947772991566019053232171551365881108573711764409012398804785642205024788099293771308858988708781531209702970691717001918409769569826251007707832836501629666065052841764265848894797242133714462486295575457928321901009796169636246509820650603673712238350415713009061585604354254197218564820909571675297780341468221967088917098451319751098791045756158284934719581837488324324120112533787127248895390609367018473835540800100886342219664434404892459263540837533318827073737582506964044756252441394494168945535970179324436293275568708899350997183263844518794590678216454689485031396935333736958321410801855814657805555322743738929402764012142721974796434096311650520167645109444132653693212521062982936871660379221815325535790855772745777620685652401331930991710270679950139699109956870009615144512514976921570139272912413951104664991753610748588483854880481427512140427704399098543505905007719006507306217574373388414766233622968223988889544765986771494108233359759175055375753330314590201300230048574805262476652576817737093398681212891950576533813736325327484195454646230210376644060195727909981204143311199791297879695326190486457088994761206228702240037923073042899491095380826010896690251611958639527392858149145476756504542993186460021009615648580974780129735172958657598052493095611999615282198596545218343752878833525850599444697852062850221168656184086637999683541472615669678912685162451094880924455201327400743206315612740455952238223118088529710179226250032714101108789375117265809979347837946697741013079474926040248230681106704892605288865111800064817375636418045127083377365779880195461364158420221383206526011748472968979825907906342852560993059048604335996379215932642915123732623334185036306304702404934880905513430359942520978383514385291191764785669372798234275504396072155084884437811243754515256476882424731294508246291750474589570525211548566473766781780866208470386933320782118412616198425799635086253435973310051253937496281603637239862083346731201748835023156391235851288570287691837087258327141712358538287944662199425918336292262235068260412767095713509465708067867110226057163409457443679415919956207937498407279225243534944137596285904061935802393327092663127675908475890517877944994814689580711982425354906732842730695075464673826803431444678847672139101788129444793325241667056950996429808333344334248867912769012480655338727532359621970751412845987947570716215450079767055725365781074944628460206538110634879900852767611429208906048783181097060641488310749190786762054260954892010816922042216867802657933038789506096516499006057951711616622385108433043149718878683207181876765405738388976940422168254883492954456526489928380067842212780838459672810231518965540282690221704171641977421143038357638492953645511082303945734077178039791393518916871895551195753001427054729606097799965860724955400608797763276478642019729390517706390896457531523911537162066097907097706902043105398657838478372618875077724999981976496435498975568620885287907740809487527527130706005971131172189694942099144387482618051978576467509393962631098430383110537566673946948037618069941361934605771625245755370477637064207556477349375366619446341546177867782163592688756679510479752331530537483675891209076181965827102973583866784414966204095169691922445908174357806505765127514296886999810041353736697591235601662663029812861105000730948292427434045635358970023327435245394796019361691068982632503320938838899917023122131350595865457810038739291707048470349893597731560444436196238535663295101902156309502403580977717366803546954698856571712165409223490899604643476982560001012881688836985322536450558049595913609039281390443097875111987605562508195375598065816450415551014143019372500568997393382763800605764884367994853194105775981733097285346864847820608254155981702336267954396834925095336421139057883997576722845713292593677644861530113314802558699790159829978743468460977324259904232909291444419932191665924044743712369035586621948957172410604585116345704442550042783727731811225250862159269626513477799553176991439524192627972516568749759165579125139578620812928864445577149169525417152260050673822353526359045582044621882480807908690384126285983088126680077221968452740070764612132596721944003196983563609674277021349563835217255435564642213206575716178392429368303276850456908689054241062274031032308300303031398020725013739135675045064977738627144833995153837563498766300128564289754383416301579269256399254871747573192255708328072030742192293881530245369042911933280149100386106526073479814384467597052584322279573153755735332476551525556170259065261079012815081927059010136909871677933532433555604725073347173310718799262671954746709269702202009317298051130759142839373606935863899170785790982495486236753356310914943321090382183521663580572486830165528737772893890158821325879879581345913864442907757288293980240050554451223384349358131577438915969302381371035783929256836488832352359522731279067410253108666136917238732537978103470482487085722694306126215691851171194648473051211490766322436846226917240099297809400065338235022328298516520706758916104760341547060920399882970413832859110550049976574359783980060984017801345293048172226499329502028013265108554649992232683794889917858655801713382922125006506390109260407910309822900379958366376747971331459664379113110217819256982549803313305377825044101238757917457769277053085366140140241762510842012779578226413268035797162045251672594451836792194319010991500764436690128788574515218212699355592342764312517676698896958420630737289086467522377153765173694274256145500001935799581473926024061577017481868143322157072330597955663446055940192679039188186369811609462303863806909738109907698380006013006745636364957336930053333383364375396869420450129644782514440495343685014794878028655812706140506298212765267805603995200794362274984929702148541186071662655817912828796901361036285115991325231114577067628285247518958884383045419693367660491854612814948451512231945067630576447936483439377195949865766808326486019601507195661467831499637420406451445203762356535347052957578876904075043184689350480548899072318046632781397415066877687028161919894327325645699338744210876336340263431439262013691352429085255048560685073305356739429037898376548944572019479136282762637779130569889137189112715165072966093403193158941092185965185588787821891183596811357221191369596084989657165112540163352976156705701620974938649005754509172942068714358151959396266761887826952680715767526034862663514749499518355342940373529076874913004636049826942673507231614658397351217910575018047653379251150693395633557206899246106575846368421861762327008509005753624391279124989426839179768578458403470893717000896289031707116870707606237768182706455105012968408221594776981140314300133417951682664290036022628545236593697705636142364876849514487205170481846053102028466313681416098821105367651940591935650608274578015876069352098653516192392029048103803919382504541099158935192867603093680168722905844297498442005973168469564640168265807456451355031174423242751562294230389121898671312249459095422114816896630471459013375706464709216539254205892859054026679894950992609750686341234255846085563838876727794213573402330596912140032429332800557656765721528931995379123003045605935671985550394911792478509981412010486402248083004089184279841524035658846489203061934504996474568606058130742257821255566723587295659894865364938241789065486424504926535134282652491761959096003378493825301742859143549331710222246745020068205499398326201301576475098703077926514332683220111530408083670624113968984853295761586099619067521750003865301086778603787775089672738499310141732247600300268581972037754298025257768046215010124853300145035549400256098842047568571286061679768601220917273697567933813995441450272743703159165024519694817120734337048589682527491261105523833210326937746021981270771939951656130236813395567097298204197024722120746398890255323585297179043787925561276002883665006685643003963012640331322649858074278660809250521603095755432753657759803188504414961047632183962831188266128671847410393844511437174462169752987046423920097700195915449565782274418101295105131798389315598008029792350615962355186223343816443492963132246750554551653352301506053431644239465043261797393955490038093469340109509115674087874530778929534438054712625400684769829121949546987801729456252711331879978587870962487074355250327474870952704033150216203305284929469158154928120400414658277342949326015871772421217288124001676963379209236348231704704413040977097504525618717045401607468244858179658722938637192290188570139501207960763012041067733220278790384712746586724025386136790511451714969550277802311488399947583492637532840663532547601110559780746314381806385485733207729089479800874101633152967848240707669125748870110056133515729273999260384126917163832693646580797352042340867225343096388316913374475328933273194118312709933077003906518100239673277894066249581690389026923936041002655407408217350751562635126221287212553714633223840918018124910076795968310978270331800400815913491725152309319316811031449304146689422470738362864993452076196848006066414467857065239301905392641730758107225461688249083477839088449976215335291658606946566960587492680699625492817341437318836020871252658452362247859808701174211271699493866947221900578462962451746623168952305061184077585145110278703212982117094927173105717130844980225731701241278382695299109822771203842706383338090668748936622814424764379152095745852709608819906505915636946940181956822884571116675195743467820864836298422407959113152546452400811304382652538353447337025958555416967864534979186114190328183211364162158283825395938374691360068298148278427297018031281051722112192474714725323455299788351455468882097044664344007452185391936352156034128255606672469796000135741278815603527654500854209386140680016747080007621702508698328644232058075627491740441638278358096592756505836652581786347084928102179733176670432868083685111907142728747921212857500546605555608359953843879407989562795855232097114562289166415775458242720160518172050557562896383020091447237411364910330632795042383185961527866959588625174316100287652364447665940662934307561435485988019830335447928700582025198771242885313346672704366461708635493127522913291271100420161304111812817226010677183570084109071773832494426949693844401476956887374065212401437384602503466745443459413475635273987347574938002272053553100195279526606126929202563986282790693671479485744873045528131711132399225591666005134139183641961951851823747358020652597991391988323687113126905850811436334979858220773215095555622801292891559643375727461722146007376588353814422636033122990130068879724848058037201080528343284055676815444344558194392629567010812587280854250916273002069468107827159497487936720071539876560379974822328877596801288207810623675400112220758263179858767668033749646191897694913660000623431038886506623008060077915224576881614406263455504700928834441562013053497228627589988704629261456840236703145013703514663098038565237585714512927691468395809087134926109154955806660020969394847841932448186566955450990591791279569832971855531667300698546155264116616331367600543644712843496133617114443777116714171219933406497466102160205350823464594309219231422671085584036812486404126018403745370110944822239956510348121065611591570331556626999528529893541286410921619962323942374419133760046852712758902940672535749233047498722423923547869587166144756419351665866571283214626284105120178962801500179394246186975590560147906311566851608443753030148769641791437332086678181122773243978840099613363392680887659553574740737599227781087079485314392379248301160401534684728411496440227818801567261096804594399258244126336570729897125576078695210450071182366826612825152490920549681944742472448118815396043500578042782418120393715718616385775129412368546825270819210807968535450882876026406337243112684796088834443737256058945219112037889341091563109791765598687403972637939133877080997202043695675005692374504281900725089822982616994961899212710714375904315516357842208288109472270104791828569250119534523474100751149507128687901157816543212181480319364096750851709072652172916371487400382226110419981372131916184186254187181729275508467061140582022948136795354386330832654885909878992510956920110479014199166421865979509920560373341257203128325921001075640516501438529345820442080695032781644242387374857418345593126949087142544969356000741469048075812873736833783686904150129791573860691880034629645458191126447970663300304343080573558977077166379762059113865518381737374992613928200121483917157645937987221900475559137137066778069170120481415982689996878991838326388160120285905886347870812694212870946972462271006718785571716932506665067348400814727225239221147878223034369825381118391053049259356566333705808025263492729182900783076208284985941567467807444838495115738389415360262389005395491903756130189843793493293252335186158743739682607238885430113614200812805239780901133499401033593406835493148142831706883978734853365928799622404099179597961319344779866851861554374034581307639845569165182211773684717054664810624057936349321127122910496013885228321721358954287956479553801485471564368307813745791832055333384414443783735743550000385942282976071813671957931941763064638262640905321869850772953422505437793532417241024322257206088772465288658743998691187102952174353475567143548789196646002917525217548491363964079412794211755284060766309231092651793588666936776888538147809673115399031004176376861375446355788536287322806860709251891967407438755900674568452777488958333502647931828789360970112321147608400037928499997893570527749645979983698479174784733232444637313211494287955794056331108812626754713687251090615971065217545677326971583481892518260023138089356026281438125479548723704721338005526064951936720112826302301265046497661858690322258417855650726017616198765431208165963855608982960911735098012873111920854078384787005660636509372549787791639965352277460545666647325012798714643020046589486463629353936928223334048137451532322133118387629656124053410178201899301575469464893237840580981246151569508512268478963857825944971330451806601385916148536309368805500056623330648392706337687304339081561394196339130867555313024918197023215363897202062182150411259193528570665760057699884412668656909092576652291392630665732926436871728183882941441067078607977628221782174929230783466683259873170555174612959130279893654298792686572787218380589676836027017123578964894327196846354819792392651101974812796846988975782998354089337458203946802100648148409767546473036547918248608371176083598793056055540824211770568123264770587450456238893564648274918081828268162901639684490660747584180865537616503486523833053916152254618258989673737086069708790146816755352716642248588701833912526705378975707700537233210880639717899300053109034785208521421701633794070412947482259634743901679227429589411411970768789709299541815869031836149816174430515885732672994225343570466544583596675820797087682232747032914302318642666227149721160123500670704741796403518690913288292380251916092348704132278286188553833613325683128250368053163398392293850455502189903798305853948493933393283080414846131284849407724703853227449340488633144827146849324621235897996795470369268714902116123330464221582494924611029850110260125587613053130699133881092337305377710778037249602986820556079910872104444207281448424384446607054257918219376869281675078429549370586165098129666144662189778788439107736912298931908290871612413029119663648217149809587704941541173802830510750988630049273928949646261310083016991871231180203566855783906940310358911916804389909302395808348555323720961182670397038429496244529854755461611489043225287848252560047537824110752967137131275210210940438076551378375238504647678862209244789560662572373011587852899465034304950540364200659026351672326508920232581287232084482369236167845943740002371267823054220850346411797639526411008976144644353579331277346809637030344916669954680450140912554689442584127874447923312247050742429214862294194257818894245845567133868884476788283616748863985860233749549768171391829720786339947952233977641235521028515336113932217643617097207208469447821907240563402485804850159054631191586337622958003707586252971495123341655253943085071470322943080181119477284862843751956327745780434855840885792840848360518825280026987084483090804869141166106299396663513022490012731828765375178796447118022206940014685242175563329563587960487312086993252461904507008708461997792252074992969467370077389608265442762040598698714339764636253136480289015745115010843449095802218793168952635889521970733689154532146094889183606930095954085915823686758354370169021095854845314272027648370766400618381116691173494037821806239689190367286730647854287275129949024685593267329754224340902576354827594469853307264617199773225654363456041433891727765581553679882469212498624138361136912981444799470545440804631059684776382036963261083127092703644708823330546076491258542218073354599026249732112222474930318876385432759314513198834903932760112184083881233593239872694678212659831822450342190923473868414225348959682067732326456046401400950395231751579173932175358415288202160118106569523918572205877062793319657430609520995637043885713223191580441525525446133224389769533332272889054566017107824479574998978884205912233672698710975231361865677119344101040444615363254526900566915860125456613026210077464291135936919652769133656840903406755146868616618506878462909158267758557854956903663247510445407985773920995384200827415586041980493539282032639048573887538463863123722535864792560708806096802231294155873042071284803018995327573126200962239171018938991241306650638111432462308189767240442277505488213859327321053465458864177108652334128008511630815344558786550634144460526223527206611220598624375649801478853163771906586257934988398585892141804596190426206491222826349686279097316608123287863503693367856676075620409869626386422001698351446394955657391806307506507091631999112183182844965085092727121454475779711946128149768499625730426396235676022446509985134761246789151338697520569426957446897210207199689867220404191161746393400240052302099674834911342044530582118460649169693655350711967573029777148542689780961250929748325170342342190074856148825733107628018401192292638532346114199941535881114155689845398229388115359932366124287497764675589659932129434646168303020402071950331767448231242019046688292553983451008159441189780319325106746187303490216218858164381620203336670318337120173564638944091179617681146571526516140330440584219635057475995762841275300792271271443579109418557189267759998753469294113464452905887975524438967682201274362220180992815716343444438195365145954553976307904973817957619161744806286555239397443827634222947941704549090671228123960318896332898072663349757391510521174110321324148911281667534581818321789214971752248326091456758102378518020245495580286303443913419999484222683842313466200609534265648654177230794080951790965815674749505514902336977362738303304289972592600364971664021273956728787545689312238813137067446158970203869112890737833782813463166708850778505405717802114420230124427413699824462649993135799498082475106516438224845463921430724300578980953472164988924433458549893325757486738131572721453364645223294233394183280887538584372959594362543317314037616047975067721034531224185800216800247633049243089183035904159953513740908637318353089105227690841151243340101958301607207553184119557101130044337101106667103604453769989872308380958843004536245364016799144423429745074976660784417576477383919865155185500179971837620934679204883263578886815624982772626322028759066338641573347243173111379929186036227262936723361341031843356210536430684452803463421198975725130216393515688193783580712771963133902033251752972190157784703834253303410677287802480372933156376307106937516485362675820239929010676144562167909976000145669389523058862211242394268461355439013580314613281339851780548933672854640385149426180821192982971221412185305807357931891309164536759272395590973095055427515732145198837875885175347667990217141675907281528695263134467014267719569394729270085354683707942522213979578025292951592745602550989856280218614048077298613924808530810122311818445580714822369510089096120005583326645343436839483008908571182774543795261350672632123109485313504418024009661180672352956162458916590968419431848575844487379090721710835058060383027126916466842505753321641358867695844353154432295941041960833074904191868854585686794204311154909002373842087931495617661065697055475932226236600142392959140447059787329429304952478047302390530529881697959211162211358808827432415675327217030403807894478782033472623653477212864453495089567360573382645069118243150336069266061241797818530452124914022758249404864678138274465609180277437955791315382028074966877752494969315643394943096559835615401010453525983633599857937546115788989222359477656464711771453879228707315652558997841418006695391282081499885171020900651893310424952259208270215730192691619948087898933137033689851820327136549366506249537448900766068737261214574021757507128944302487664616400531359208330752317627959664324921716389800587843724105121701241726967215909211669895071162709659851650126883420772911486696761631524066234342511080579379459494288263212728872853301731931765616799421780613147495550624440402716134467017873547770792647234833859720195733453702391186882371992880202263842197697413675611960970563462276255941508197535320267822619326261600641939590436633730368693069124105203147746231891190043991850820959339645661147512409727934247104043301773265141617642762321129366616910845936913857301039607310119480086328107362064839409409823232660032827684932529453455217870336122361993464719336685400335494399412189127108019237271770855980904255072693075076652306956490382290836867736012054671504101965632209934289802504241994097774618476250708887263738309488040939601964612716927708289153274839375133306418930073804215331501003511494059686469597500253816889288229933994002747586482010216193079847146809793370726692535367925712011745815988260856537213117046788296432487546236070744939733633207246541668490256041401245325667968282052319058066102071203134928227799760328150350709256633874112477231935276652635441737908631167998388352458709993515866274736485635170731909704120377956619461822691456963078884244822713897022136114390799758355101392702255775144174256421893626983578033296129370877766629721141570627996666376796866184353243933476750833203712163410031472899331975847354133286710475700044100509020735191142596460442994833196900318412952949401610817231923836857335543260220543330633404794395118342360111011430311740263761334338322858667608889165819729748956091779395070925040983834042879851730210198307652332722625783134314736494861121559835116436900409108798158712847552723320183575686191798471994282720889781541111866060336889576758553398115472588933501988039860988132559937364189749075786126662548608224943257488469493477325414352631354960892773438052643053151808445716373865147996033634691096744240949379284865875657227522638814083208745286341467522704505624818697203341052672245850186330021500112457887361974046790033248459949854376357523070784942776184607439472392512644769525563897178030674300254043395845211353229828722087705905760438232760835060440243887110949816930395427797734829611241800120385633933501685656637560908979354356821359389087941185414066886333443199167239885433433997499519213305215361198427679658946164000832053820486633239844358191329101609760026846183791839537631816445259724557880478448420849611610746228065343406443741760511864311865643445789205390658586660586426970149091100964756020140550255343360911028998092295892872762781267324575367682884967603987044249030489673721078654997495954169022291981933144215002044803557272276483638147740415021744911463781706854983205659483597144090829740276047123651431344190324178480643461703486248836779900227065962982067882562834191953850103600505636078199395222483968301646320948793116275191212251179184065108546112972253694595821731547021561483187286060344122630309177233200892805478635609026462133339039394274434920197483042731556234261299089490065146630196366641691389439513348946634954671883608916112142894476265045601006139159087432945749084565201751092549013380943770917427781646946949206191073511002130798271133802636423065612358435709605126007643369406997343050695904868261968891543667426787031651774143145246305139975722743134310080925768313927141815952931578163118776714015096640992664397081949918562153871766233871295258312908581692654450028732295863562101485320062973088674231722984528681781300963273196344964036717966383923341166345017393473694486269788254965642096166026647556163423910617757623754557928059237061322186801012910984214196314093620474904452948860882010220419814752798542386745679009472884971961687096917046028864546753592246937215186610717310625890171009411728696161409120737963898754831366916723025183861259871152590666570877219265273806455943774021951459743273983820768412466448961514623147656721906847093786292098063579400473324034100305789057719584382284583230841140302970887312823926385014279869237201534103967104866664553268487187444606181237137054876212565514121084466134485708509859111141175886305955720969581580391291941131018482030252056796028631364904830032540960465117533458069513005451971050978372321686805357346443237770760755577702989173587496621605588945705499800486982520778731106451708268633702869604085542431035707418059298496134538452419583819944686693131495954968430779617879537520566894549532939497913396087315432242812698878271876206365398911570508715518460108725081266330105444981921287109482115862110779051099653942582518648946222225622146789149226547140589362703952012163566542853675879159000984893128775087421363130473483133859343471611537348215774580222743289436966149890686400857443072711370616846745816485897920379358762045536118589130321827848453266532138295898983800753608475140336266189717067684968597694224357107832037228555958848170592386397426810830518185248952186037816156593596376858578554223892292821204664791142717718011802933397311350832042234812673102052463981089714048430539191733003056676521300830647202892508432724749928491889935406571509483612367404886334804048774552696801827497570342746763331990035263259875476756125501988718402014909151599408775883414646063481319180097542134008656111656863719732285305011916254962846078921353410899546589447217717396923899926143113223006593171016930492491986719511631642250902957611277567769812528188148424430206537182275513835341997745918722855623431178802278795022447949214258210803295824100433301167843209317305254688125900941888340519868940643490722054040619086158525066130346599130814705533151846120739827448344981719212309052838833936493539261358188740437578714678247175489578836326889558867356599888754199896489267603688803916531686565727361330558368886700857897782839702664182779698824182351494359433754905689126702912060634653945716930026684883836221920073030357288812674592386787045634587810960094640766984136919342302709979328831903029499967324937046790530115328175398922504065679013363700146570204042500627442107074018977293284104137043573563561458020067125957555920726746596665874936801358976079255815422520674689784021449404338845840567329930383996659923995175443892717290793403223656541741971815765103633235879125071103235641221556006260589111518347289020654736517885272659973221981451227888645789271863878642902874891694250343388036436910796564922641245872996523196525778854621861199212465769340134672063188630356573601396507844411439408527315813311434555986777478308318796512449033538003937214987272247279227997765039665665328061348063349986939640230897717619725649590012728321957789858710705176706014710703104693496974429121344392786256293689602122015072232848256351542196450904361302557869464984790231166433492693711527655152837621862320971589652896090188912717198646120890031910131666290439131603072892562022215208975650720187704620044210786861174459430531587470801361355181853394450555855799272582220540836835060240352299870016996812663173171408369735368007745415922603022492524250502300674114880315552578892586870724457368568958289073244136950913159705549029746118049749511389194979886423566105646343283088222235923164043015959022539051391912608058836138681899168083294534426946062976132289783803646278391100330409343182440202515121311482916022193769632079385536071311253713061796596510393254552005308668497631645872089626506593073154946169066874997016009804220906044400179090309460039542595036995279338799252414785311414954828039456577237349285923873621250289637246551030389915829364697994436613651223086653515724880239570909880408129171588122298389973166990606632195638653601642208112234165010697806390533425295529110366882105476404341136501600389087719033729522069183263032895185880381894415116891672934579065206566840814068261553974792064306412934383008891713007601832689485252653688377970188563633514021720904917159670044554925079683791182536499069780573929906389160136206991861630670527172407825649881248095984381856393175260342008342977280841420529943423343280330849783756254824095148743544808404596191408376293674618938381503722677694909109524711329440780529904208405812805933847374561205398328846945453024884465344359510276804645931182727172222955326042910543578236699203961951298910423914915229765778329818923746968404819487150181126738001363831166720152562869109857596615158065543153346045896501141654557990800370337153884981720475178375829565412942541331965644846313577642124835468186235282683161280930770849551345410426356267870362346092281455331682102013067577473383896922727827319369835207361615938525363027716505029335489918255332460301395509266093072144972780702131858018379033035268291926880326531280137343628083417875990352079223788049138753909562992342881709552377093428821132246568154639619362372466792851889881776088678823697863003195615611528591069903739009635039491673792313576723554163614300280185424084357999262435407253395436502285571668564037339164118047408997948424017868562599088764309640528922060296393983697668927618342566223936241181692722124612794697363886770762813511424008483988630722276430768240493421585845128696793210893445372502406534468689886875723212917858474809828366745443504572147569978955503090207202835743548233473727597136936087235712229699321288532525324608043955677733645705715388928609000986212790073165265259100484102828219419329988488181800449603404092066566836917748745223918783248962663089656067344488570899923664975406799287407773324892457143861036866384462778038851613983242983714967133033913590353953560881177496090155305118377455860598351896005268457813483601444695749946790656912498089062596526341990113200150077877269680825533275947749451950862775058929207525380984371263713768913361207160188514046158447855896377347608008620932801693422902836168564690321501234148057627180693874336917943349321394999544300794644771931661108559534652242452617193491049161758542486478728882075484920627035264302583745984839529886162450972172804956977843742713742653095161906248603849609386677147006685469196243365728296735678091806155867255140731430175288350943796594579330114686454652386399850596352809503022368696649237360360055029886543524493432792999573931166481713221236544797442503241371860146061545051099355346315894840495098874836903619077722274299865877928201971450037113634319491638388015010393312709491029676440611871914818446557674671954781253299899395030189588061099037631032649142207742033496374693519570119160274549352491862027982044869240362749213082539908388506592530654292132887343881882487952313658178444533092625995597233195669522234153773062262655907912342190952261114866359045323435521953115952258474245925661066178874044787790009827352138730307853045252065609328687629953225422606080451078906836344068470076295237694971937384703991205789697644163731618875652703980236460257955551173285174678394412000612956184661356516993379569757204373286904711734161576612164394079466047708034633792943190852224984406275739142047237034313295848363739693179782210365563830396578192518036845174867404865511394021348397379660897651325063921924339049922404539223128218552445601794487524151592179466337654634899569542195118984421765683834653376530073059219923063001015233891855187499023580306992814508277310464672345426035891726840373082638414137779528075991148919156272878308463730030493216045587334918151084947461293906561222970781697379906312909996146191167933381111218285158277415865032577397585925352790895004539073593197812780927436916314256198721271094868504992134385002375013151225785063414217040589767765921762388827753387103103860365950654371136713299728725297071226029849063394662601699470373680388243673422855803379428900017187249848053592694368257458505564351467599293360308199025006000001598417006032501594779753392033041696158936468823093692170649429077429947000353382602196573339044146265062074135119429336132839137848028829682525990751071124091682788546698439643657564886122965735756301367106301977263613315443223875846848430734622894715320406212505373605060597876463988801383948654137005328968027270466449778089430181748059409664719256572014561050760973192905356522871242319074898640147966733561630537943400519772408253768023816521367057712295267233209120160471104745439922414533616673304974512402389215663819418381067752633927677710824028733225678537894476271289114624523594449409607951326940256604817948166172514987107424865489846453109246958362507363351593849130699586631767629759157631694001030498082977986271520125781747851439671665919646940437716149000760285210161017449230448141479713393712246580766954010267105745826604517574971890740431951315866774062721972296405675227868665850851781341039072029865535986763602260693345400047771792508333633527776357414969383610405350465457213794058328371571122435727132909667501721077407447282546405934257571601948610854361292639600356447409092283480967928590787807384278270798005169340652948493171180172732027056740016267009968689429475941647712907126921373528254515024367665767079916351402238299352379110922128576388610800722576432869782869325978852925395868312270459457597285476123069521753583110345253972766274403817863841038447376389150339490627759988290739919638492046317230950749036084987143357409421514443912093945634170194294769715260338414160044607219764424146237781829769287916261772490857545210973714303239535011806726538860052632799347108640473436873084640112480864303282180766835846875485476231134893102893472662747458639359071988454573978537918084069674027078170213013951228321667169694862974901124368041272403098426344753918036093016559281294651446757517510857883920375762271148094038185288766480999875211939497736138030390572739109725890104027468351472692159411742675693816149959704611557033961420550855782335280237776564737620951160310991022065648578674739684243049542107819875902165939568295104670294454378023227667702272414786095525246059705634390318948203556082851135621772214225448629558816587756366478736667724241281695210195283958196356131597306247391390519694891557699967846818162807694077651047142599166000239030270950044180928408695532081812553608580884877417936845653238001809448609739392767076752413927171982421102019564691872479520287277278837657664417558579316626467571780272547416208333957086390043011070708492365498705028288152781585657772518830780046644348745654844827232488072401712070476166835508983935086909123832555851095617365250519739842899975839981285839711315852194418673947428887817927839089410029348450585517349820510541198503917465437156606802725863965167086507198961155774082596939587202820462425473184399444651434047994138329989751423824286954672874991167680446693370943965512299722440898440435395119992394940287118419052381207116618056197576624558893333101686704991035818279625260295333951105725431370832327941862704675032328526190893298570005767751907615366056550757978820006866328620044622296333580710496517808432869428440668050300523639128296296321077576466061809227575672101679584122057486391473965178762283002995916184281793682907008237348085412973235327710981263555210005363085776865665976278779736266384667239231370209449631833714877647169087032720021486617592043721665829048811506681289589710306440808970944092834748003956173760882191126194443688794720666755519328911872851438567777026057797145250186927303042979830365276145512571747136952673303524627622435467208790319504512857782488482753689546594512654510352933963616849642630360752387503110888810368157013374090824453552647591113376554061011038537104297444098168755730467779831389326422072726085477984528922831610493116585309856656606479288321508441919793304888831573907933912880391186027399112073153804692027190009441918159604957533395956903037283720535664873815256009129553113758568261612963413094731450381519464169965191500926273183913020241058030420083425375919183559541795478054319042184015600811239479026195938198426385261845072467604205720660854559410822260737990072457649203402654461442212260188426350709850503121808939592552198458323261089087740807055936567745703250288382659134664360365125095896716099053078462626042818789350741665631224811622785664961512273415384031395722779631106290349841528433151264528184894024206839606704214794503627230454222809512918708069348334118826448468978956137958778267988403556454782508396621240160354344765274949397438564802776655198254690133745019129109878337199145023390240545259225251116010717418368346508111007402024455101112140521408848257965113431246401358806889602873798962421943830891517261116649067337312509540520851820469214792195430782994082184792353192600915834405506734195557982514304945719977162096829022338696996523726270289424303442538454279131584458365934328408050014811260208015753740152480653583167428575894227983935033609370066874200922266548799037207179341032799029437328901585677720186528462672447794559144447767310802728378315404653991868143779980577694566390151506978368304329054734131452324792757806252043181700540800284282535880330015514572384035328192699111574722933085535331046298485685453280789579445982910196947799110564143067494225736007433287805141065829770923933069152627307380566516677967512052085064534482996814480900351898138849233980526159613154169394709879172608613925495578518327775926561921739584045246526632160069240978206419546819896343635167162978769978818150276883017294378010968066006912308572460494325862898652849402553901902916673589353869312928969394160521846463451059650288626990222622676578371759450812644852829702358710248928835418764952662744513547642059307238812506612896931804864705699123779316688437203935486801265653825306348732109960122248912349456520066556362292275115996068852971401027951974253425454877683347653782961342193651845645452823254482737052215717862305657220915776105549981655213439933858002539848451810940849949675275235640394145097287081205736791974945850669169893591080332167546235507974588507667612322197295839616967277009605406991391486517400559104187895170227547682035416586876724379918896087741397183903812885245107053176639625763814428081288988697936811506601111511048232575655062594592190736844474966304909683337564063785352781254765752204079220085922631417097511039468999731227515703402321274824521576078238471434398676744788806058669167665184621596869968512684731133821502520758275549863662921349982018433192917915299131701905927738940228087516998755906292092662945710208470921593223763336994045386084217973004389898945467115487293831456081594679193366572526557261682279361247195404937877904368091067304107463761175673400636468073085195148661777425627785385814000559494166159506275406798670776598197673988487968427773146605714689834932446803227596529480282564226499088256783980372630421314021515371375439905620814904173879001703454766024028641349944962071115551592100315270551586593715804559600449706741714833405658416418508993229219878066667534766610294549116470912534251805061073723264949249792558401841560524734922790573550500648765771900801362054779791604868779087628306010492174556430524568366512288402498808737060613169592460683317585218091111691114415978977469994741493378831783301908769690185021968371237340418695334360465257977348907549883572467315355292452287742241141902802417883941025017007647479669630402752980308432926831658654189929112451105378216183653277776286748690142927461237873134582097745897448073762075795974931526785851887375964421989002340900259431693544340208903232226602591741372814062553439316217695327604583808529814238796999502723834984053319305307306178970341016064548627799541047584319441149132403438814626923354667679554272896528649707529308820219640256043840078882318358564925205800782285822258216575682144881008734434278651290179727563041273173297770748940333330327118016422187472471295344007440527315438701213143320732994090645697218118452424921512473844397264207469832245421183516741941452583089076234501286746918625321030755508918891869083238872639842071538608692612487081041829792219011164430918457963735461135148103558675334368164891211714337579166326954816005130753117304721545044016394432280478745712958089049417051681200260608300143249059371190918497443431245051400524990774257076555023208325443944275064201176356511282401679443198586810333111700184070489258991101992693059869668328130064791223683490018749761007871806296059520538956650784433922225359366326680054128622330994139941177314907380009619538199827227865090788314744304444565315620914455570312572338111021639981848035633032387912096902774050287092063400320250283224902038454677335685215424883634951108001788268367311240819233912032202433420005279978789756754927701296786768332622961800730730947566977356916501870265058487823594825006747821623517175603801348222639743246588112769377148143596176944851670287501551514586985067053597218135956005187605811553196416073214344572175719157915529472576373843487924225641416002981559576239342438822361209933424051748999195824966233020097346778127144844760246746730353355752229360741011412145241174467007157426992267734589588943312868634906892781619893414689954359923635757709173236657858910809060390159725214648458036269619524358321380248559066251260291303915363972714652989132085056804225023086455396826706777785010894559362033349642586078852052320587779666545442112057741358357200735446831104901782120287634074467274059591262710345250028218147488359414573469156009037285904409745970375731300225582035069990672116003806576217406823675989032373914283533826131832269067957311928017414890328002879270498028800770285715762328522324885136864482756373057540746613828737834537130562495199948234120353273962410147254022930057569371836696697085774732788256416752614568530621637126031364566119543788187203937851169575234818902611016619327519229906333259980342522030883575310355291482047100109047983318516190208237996599203425177132703288962918895293720930323133981731709638645862585374967844510676720361537807938147813392224808320415067388688559263938287194789164890394478005146965268468316037177094322606376459115255531997442978982489081069142942354968735503504218659992363445011470511800095955379427381086969758370348139788906488121070347594389246517908853684527369560528393143084378049895657501372779535839351646784555730945130620996294142584766317389870016421225514912732229921993119316377916931443860740000699931340968680735209065654366815668975695796784556822056241456546283719813318982286495906911246498305520105223544520451050741893006692900222935976448288823082478897480578752699559625858993057600736555737958507912895655848844566076992700213068449240930574915054800222808788627779646140548530735691992732682579107258009061727614298349721718393902078832667976649458829351113502378421274678972680330124689680001452637103284786529154968242329192348140532684719990862226553277063562589824890432509652977399209254904767066660139462238907013362756110935692888145892603313122745657919420365674552731348371267607127182855838450663080455576395178826370921128316842130884744658778652416242348248781200162438539120174253311560448864958736821243600166471718587277638489999160750195740556612156075808151907384326433138914771641757117053549771517886273937495020828564602537778644637235825188196630691111315091172320754858231597863987009100305486511932978200991328191368477184211848534022892091761250610982271125235756943141480529655947197781711685594418318780660328240260805066297746418256292866399476201555401427668058762181410064807027737484210590976620074549612101628064735199891075872800568592734832355104057573745435909820786687279027619827874926166194243576241218059460982947009199298659925328657935360395707109213844119039509040892895895500412628159226806903888666737622288474071025980098822606762963683050999997746250189224974832701687448735078410111099389193062725936675710972747908702542534231412864117507155964238609359600822844401415499608859580698503701391955640808811656627844497271285573118654564333663979650547582973748642684959035689173881495246068365853597321448702407736434263246992478872009618316103991902830908759717741310750824992101611463055256552881763767520801029378658158617872195076712305160641256139465677319737529868145398664097123977030524882533397797371541039367485202649509170201019061843621001247923944280574735210902850163700906035930332409645427205636297502803184621367014220813862025079237423759073563884351329522373236432457520840102364076651103150825024151423187184321873124960549629264046530812033588314623148451024594318740604742796787538627579149902901058122362209015120323507832778745107740271117090345607759911861087721883838062194912129515722873449449817629147761712686866846841818252046777538655938784980853672501249830483719482265035483562112501755850703201266353447210585104916719221515845655547149597291797206052116088704681900021761882461542437543921613687276999224139737765014558482548239647374696897354647906077733411130137041416720054991369017054691136984406188266035854276492621123492119367452916368088169903412158499239571229878170888003250125754437708489308075548074597450563110294599996270185341440800417935471050071126242408803833007728734733360696624957022868236156394775256470378896775827994740642800346626962399630875028779778215091101387880964122457935710388466743648851326583431619973824045438891405818850789643347028941009289861603148801101981557601662374360697467819559401114941058688820653640238680237502088396481087655571014809432825522629208172841072406439835776981598885640983805193912549650706933459754657817765069109167750864207620852064614482763635276631913348911854650484116006327382948349846990698128382341341752807526379295748812710234130043942653793421024884148449925221831875493491654409176100259500919510011582047094536824186422529694848200770649599843494938575350469507195259710355210200198413610242387329390569448505496027163628124665200659188526050986265927846867348556123849856708928762328353456960419167662187057275180333577150546093872605261135018935514074374084890676484956802919841789656340387795107074736828316538216645112495183481482352606421615131770085329728432059165994112882314122075498522039048944256116162138116512861960932800533688632721175708756127730532279737276147948319348973429656325374048084463410911994443274952172542470849219210498969110156415812648735984206481005122353818678734815983404081787445703670350592599464211007836948764127916188867063601124577018137936671908143282610764664800064960145090725929514423585973796889688217163391640949173860405291464525462954932785324765004153431607441469822812673936033075783202229451761483590637087052963136239678035631785615991317739701660847004032373924105160921029637354651697717937328683373018378642787213379374130847359839852459841877729745354470208022481131001323293486644614666793279196080817318182820802456767562338771610619659120558739139494229490999841728231922897633312955932205358925480354448284754558324794046179773259692505510338995744304434581061273523755729449808007667688931636190067249954477553071977453274658839915307223644879539412224158619355608995338671568038190924901353042284365818849533485017487091959821364927168665434144865856324174268233743410805504305724647567671749223227987642889212912280659679217583692572314798661833918821968179341001525522505923032426942985607689326811193931700851029702960371136030727587027760950595178069002738792937608959069247693570874454001793503923881474554722364336298408862656361457130050788855546956760947516765776391371572432452925629974803573243591583902371068194143366150216740811706062660264578281217726178208299167356637425028462266777528554308745770549507838620379373765545161227360682609593739438820240923709344720809497051551675204509942010539374816176104376142642774245934667257396624696097831058126865023333308354018679931820984074032869896436151192150609794640103706777400436797836636566263066421945834539683754425463515208667389075341568015590127442263818880520930300561050961814055692545492905229102233501105406684584223044538156811984397014115691428007725936768196598251655693607942027066694830820893686746707741218502307977763563641769231810181269333550675371258055784825543540172289924330287618140658547165074974145965957374297936524308482546424182108813894609682218615149710691679781204511732052958949541372238704024839095314647660942216080182885305255412698701717363268804461073945198907929657171432768584609733175200069907702618773528873793482654120555028479980289582789541765906541494654961258776250902315574133810209173195857152182120753396185432243957461575126422366865911828972943355808350185151542237738152928993547025989427331832124635583370410246998022827390199430319903788844932053143826205031515365546224633583206476655485456109490707231649204141928524158904828723914551875269821750988112640813065379770264779851361565607716871960330261624804766884825025427643466544833619861030961572474433042895200357462760931911999680187832259651784671986756742446692234220886526684525067797670373367794170714118690821622463027904392847761419342584797406600977035212708531913952389380934663511359083974343288817529165185741162784174242844450518469850195309657988648492521039420670345074586097094607586551484164202362568880921123896908901346550761439777305752406352291231500187363907005049791111734441760349448860238700755474820904273640798776870686024990416060009435479441994192265632753394772207862522617729111104090847433780136193623769674667330104616342546301656986064076680081123607631875351014854173222573883866673136935568957368310117244019489123476384760881840010648588087982654096748362519628050490257577902798010725447268400635940787799176174007866774749837294953243703915937759125329202493307265373949216873160306605581879217719832852711454121035241200732098026649245028055944448786552455517110995576808373080998795515995373102383246569141675415936170639877131356461269239962860027135917679448973843767257159910279968629868595339540598152070222511575052951773668605356370996969497769092394104085628390861268465814146594393006476800668091161901174223227328644866755276089277878752021824102558925340920493990073464426980485399166206450505191858775167905017933606641226803936322296748481859937958671907781307469095434545494424098158889336938637936697835068096918741987116899628934447763336059943503041134887011942816150147437890338446487466937374834587431896508373328185538501916589186032907041523331736074058739980991299406254432639185063286487293938288683205284261454061275080898976979720277359627146267103015484654775721522471755972427319778950142815167090882964567486795648381704010284649945181302424530154730735579931454219567939749721364394883337962634806281679388285478247828241793314626785728773311759615040589465298613891198692974747251888124137105797269373827733661473807295658891312913692491113818870315682900930839380791296135385921199438307522420763379334220752238343875754871865976112268502959033866768538547619452877632592360074595080150601623815490381662946311211894857825776776851975588407960257845555650729492036831196621005033277937392633508282573978485406945767743735819629805208539516865523168833582184211612477118047376239839479177789490279172668824281530766409632434955850363481440442415951270487656297526994988679728125777921996203068914749007049069558794282085480837858428981677367024189874505476843105359997442656397728144581245598521909971680455569841020951161600366045452907924233548827009101553827272046887681814597790360096710098818255298574797400839304401945454599705125340994793017328346577615140871212388626902006179986646743670243323590018594013772755029600190912281645063218530445312147832580233373117668376930438715655270781865635007452854596761406926401118419205831330189076434764362225201964701961943158561177329929600296450401618237541160292473716920969323832320855105021546186767978189766475439178160679636058697488707984328858765492516620687104517270579759145080466020952063577359234471966292937607236390750484399922138020608115282424912857462375353704360790349381335658437301534432260414958600711924746492591388519073220977397160803239676573994365639653504963592097259231562618815797015598013657971155208997245798650833568675322352275206710786196824373308371991999122913126561298107568112547598798051975342320002965286264321480863213067730011734902414106176789199771818760161411201086687801453776920456129031695953929038011438984402125373266950088551816219015658635874437383190515279586856022587356766737253319136751819838005096676143716110400291347746461625815793639936415314963690716129161450066227320775589195764950596768964677536713563170012429072506989960550318594018649194884322340322067868281388612875535879398972830241378152784110122112053730189368894527578942036651339638817128772698596430136040034243750937282585563375079995991430970695221761943752746035590790884209847264996025580219516573834892777891838751130976482651705394100464769302034901794290231921089783196537778320169228243316809695452241589501688429596595721632151283513704644798547259288185192652317482740039265789176738100590736629647197524698039183121888755040686503195324841240764551219571908385391326096635384627268002163890502689371836858245032265258854997785392503633162165656447245937956022812526366449305778033152061046778852443635492567217324179626720269734506446174220920530468473909054504890942734934903374659563076473772153788490386184435064958180022599880431969344583149026083706782165163506563774323725569019942737639077708084871266811830674575651581694654585380292755085661754887916275983850221836891063764113737886055541274375571847758226613774116298875291754682412999356272953797331184834062986367902316865186842177112719377636087819879293524529193202105625920355328068680337993875725773858459134010645543474896166920975175572457925845298237379822922947890984179152688204393129363252372337118208750781928465449438539408637337437371717234245663115559663116799654629119810627344931378532853947958537061804236369749780992570782148960633037922156706274807283946747154028841420818700372232638613977741763130395199945947770592785099623832864478803202838641880125368535407859371273392297542019549475913195577563579839974072379064391527801865623526441056905679928259478836060501960432789858063346338620561765193337535385782608320465547944748812977588547725342492302076036897167890468168850763743024120902313551048667084520662530925841515877896449498879121067921990277027426121950565950714946032082063008460148191299981027353668417651785212644762670445846325958550631085136463292283988869239993249399715148623005413677010884661864811059259412173462363268610406530722254697343438202672620514493363740786045172871144126869717810875115948376204319897840596825931933295215292565830117056448060444535945909259513437550000012416981471182199855030635689601344191417985884565292368030890655209769134928693378053587658941410694053737615115195223482060249068658941925895532315821476672457599722249778887981284828341144321334177813067297851452661918725943076010318350876260594320782382255363422778796882094681897404160492544643535133153719632894906488039231003415498162334529902849188854138803838501172068603177266737370794316262300940423148920526396676992505837451502922583919501306541180658140391036806098790937297022199183691969941906359684567280561656526485075025888742174934365127418388020588728805123803860891885638508869794541871509069975934489636401239021532222534688037388777352934034307986936925789722161733268542446488820053836020250573354596754153816503433764874178608525253213699429092798779812303717890786479466247241174810541845648062249167809397622729876617783612114252646314487678573440223719367409035817754269288824472126471956775364299655949276426021125583889031862573534458816530568377813041785504399173287952824954916097698149688755056237885957836018061576336537621365826542295139061979628786753131261051003584864404401753588002484969940352674649226377821552976121842103521951597277022636258609481423087071571405371692835127094142909728306255141862806264090945657354039284294762541494663721146380885475641790267236002038120554284981700878872615086871740646420296397413801754574449989208197154484268005195156179949995249543843418417569201457723328482296577768312173586886058255327016608484261719695237582996902084875305727835480086725449209623615097482988596302654557002809696503094818623188724276838454303211477096521591952016174895712431612533818235622784834454466501774931294524679622775426022779394476219275113281234979714595689661879972434206590150798235065103680171772008052158944602608892368118757016589010536685300589835632907777174999519078093323181560717388347917890815549315157317644152532252405806158464028673788396588473427977820266617269988598784453962924934237967665569826788082496886211732429557078306129940012663051802051933867160686180799445945180554139756607738776213556128482113668030494051614002308243924318156592921725064130651243976202690051253046020940611522305616943867040874620531254950827523592446284237985348218437149076935285069996778336808447423475149653422371954319358586644940663447841142945877263223249905453288854918651905587697428535345536480684450883267136256384622491899877002954727864605149493869959620979333824813958971419913203918540078936544998459956369418369588134266472974044411233569692858407906289559077287639246388664466264687665336976231940244412027887462011878833891262685712781068166022313297240853418508490152113076179626007286202346662430866474310196940478148576809682770803228086616700332533465468022761906521763862581876308278203404237835915750488552338812444655715580879096166161056313811945549619149839038660803243382088912213331822361865379587994846813533694828389226105340406926602733104988230020022020544253154441901853800720669587192978029783406551993275231339336106129956624809636681797753717023261078675248967350301250332242762973016907168877777781604213184108930610239808326783145766024227646443491285984944350460553941234341971945807321382120268471218915133307723823809587808938734624673110712060215979317255385084006685632058407054936909280925532134469914844435271253139713815180392327150368679195027747079855319000280245514848456704399516852888801966771059460633964706769445108868066695379872221790551318704217595763791301854388876546654925803124627311594230573538489543419104704273032141748030034441486011522218124913243433836859500793123304802376504771864894313627137149344959615020905695568100874224362019252756690428546228867873243670126983229999604699539068942757313856463949430964214831314359890283886274348903375293703748648432297268754243137336129950545540247978222053157590540324084365625670636970109530112170575447441722758298737566247141487928870878024525213542145054026915284200197971266575124511661029701770891228913804406101502936420259867359576357711041982950564238996330103874357592184299364342609892391263325629518035736433984561260066993820141189107755650414197784810759938183501910990249006320884153838034582010167141418112525558222785767450216072542659375104574776559925588894610307153480271707552926254916272534909094277134541764856088516779588879360862235427003423415751675060174861306864707501269783577636598890422095715523708559435070351453327026250969893142749482164251184325448178446279194192366755587669763669185748400655914885652838204916009522767607748180743870276014003469543010283183728695174072733951741306780538465994020452448212708723439835531341898438353226990341323574035669411331144564222951255013381500979165086818286638785144975948442316294569536942420927024593252357939755258575380144205989235610494237384334272445074161007926804881357667762070712222181936555509417352479333431885688770694117700964491933064537066251519555573830762012827497016994390118807488460307910899460236894833417285062366797357319810049575975899858425171632194252487087689273063821572877748321917558042492810135295433303536793007261039044172124032436131037852989858709532163322383325060197160744493038132084074104226603002681676772223427204894854833418381273392983543043266992063015058065321243042868230727851346563705290813012321251682747388907312423976322291872658256456817257147730251968508699100944868251924852716389946261160288067076063953381947210177219330730097831827774516892304183382718974660591990544444009802213983238305116314120963549204778628102845753360747664582906383649059488523284163143014006885483162697660352543258889215492455710083052894626540697967918737433546160365757673619813301318677408566057549084264650746972956309241538280684847175702898503962458178115528573058056337446869378762478910758326202433813708238508820848495626110298111249816055405795279347630271349526553054390690116790827222450284059889411514104244328611395973014003634391276599005239422385580379870063568061054698842825752226719597206928611304835614272643074754888821106043526885724241656967296366486695061337250379985537533947454282050666911472180505953051104474083291987432460470695141899467629417637490658826063918356694105079143096068967802931568952378806555313057841835718396939464112103938079131543402206847507036610559562013202739734478518240362495305835714662211555516223970806514803506309957170965812845374908935894362222277448975331532938835241544563821128134699875255473003375670173283059040003534739386116501871790340803316697645558507708878671173013153658598891227770609304428300541632963455709853706782165438266572767564952869778973913447502891905734418348130602640469377323046529545689792349373601099848819810449125481564950617131544659426708512802114544931688040435081770999993951414148569532086774436083007947627483331327303806336615427085460096518558730877600586069124494199438304365360794676159864653547906929181607491160730982866909693080355017984418810331615896503558622333382374254733037164747644793359208243638744458061352023595906269660027433821975935270716980720879253092161357787202593303054748409663833381125229601317718868098227239654339749361946112950023621369345922985059692101300624036524007110562735895794000857759239247951279934281129423090833599252836197770519810457429434873963175857699723926641724850010234524776896216132723623137957227510789114757210583258611615305790591955658384320165988249676395600416804788637627595276004882810669819089061843515348679445201185185438134392330425671695648469952187836457896215364357136165101372980952716941080343856167156634008063244388637416508772420187983071311454759331630808800073751875134951214308490963232277742920420549695983499297331495706685109858619214214135817076349136590116852504284735452913887685838620419793066693717104877057265326737910408274195451410683921092980609191343224890049996667744108708911208509996669688747697902812049369913345981207842216892034511045668672421150992908473182397388789918796181795792052987156788925723142332469330582584008942637404655628493509616490278242387722752820062898592082519777875106135938774573654415466242448786103048656559265524112052148619161504202834915157410227924169572641687785100390203857515057480059814733899423598001467194336252533035776019706968939647288337671530880901939688431393306170960713417331002148375778164494979732340689941733937098422243807731557905089806680925096836776877648300853378097820677544850260564925673607713757172302388725699308887126284131235012741095047478148621777591129309452334448984085571096330186766409608361708762739015644710516072307976267313366343319791250721298338571708651839995980386637128469295080621870198259580529544527513817215474628187363419193401044908980225687560865948903657319322320584047887765686933201278046687201100271649340253963541526805659228824813489324231486122128141275058893543321194998909625544633061273069184405921043361087650742570252435903055955935792239174966230018486371188824977873695822305499686359785296717765232303160494136497724718783572189341686660392627306852404380578782159632125656491306271553828450144555289648179418219316828786375215511260813854598366684933500849532612092383357769226157353441814813835501747519365438718974022003738666889684357316760042111460581881740344263510864256800030357589823942623661634432920250517930580554548773749623749104843008863093213208515944646111420724469885428362685818074768112183670820335925192978798511608032917980693571601098984089011419533108764769042401781324117381350654673030530828000991037362575247728516683405019031729190992491553529779315981863403280637787927422912956359453930958796874938163241174794528872417895509728865851689609193643716381587904903243663547977565411906377270168405619276075428042198364940005772258847471089966059051761363420910035237729939934431658327549717892189235894507795218772378407886133243049556287022788996401592548139309923120676596366420949607718575218841084043655730952106818620452730139294143129670568752052765941327071989028381097524201759675228484530500224149473863695196933209826051451565757003185037165940130108568810874015441211526427868107319210435562798032662024412066007590087802853065533451995102919140578476415607054643669400792065384185298093426128042769274384303784470070956195847474916894838985556050527277250057647525737660736359906601176294947132570646027322238480011628230619927016434775465740677240802661687897403183317938639632728099053263324393749295106276966788425223981670844612617801404755678004284088389122189641401681440165730345784805452082655396532631443455333583708651229453692949569636002702077016627771366469128028532607122957029492264176714761170655196001926383477918405835337162788890082125110897018111331303532772784112917082653205851303704981892469148258796704658976675734560034760891004417284497393064596393266759277975377772964334335120495790890633384022982788036817181223474223814757971237594809345547804948809439518051937382418909162372255207629706854018850054745968330582316639296101690076895249980456083789098342628881737432933617739834602573960307046459396279531484449930683597502394822766556231069466511531813270648627947520584821479453152152956878860288907633111684936458656679464484040679489761710022870198665565540807783464883901596278303882213051063886861499922569382102353567068975722029174205751442842029194877062941602852825397779502482290039805005897400284112415151834078207483797835024181209979837504747830041400613454802076914858295299672601364113748886393458793177532966051667675519073572220034006130723627533317979995988637849850928345461300442177848490233945430166438422846693178628370164879004450966570628632498312030551186228618947778304302450780321666859421533712067269486978312587113588017442589936641426053738230666624986027294216510177397031802148551394747810935367904943793780285500838877661877651234469763367744762686637751463037452038709467033704742483829144685181870440236546524909999715679409443157178207661227574574344054979169320021599883547841895247636173971465823163521712245439030870056132223917520466257802899787261797460047956493037341974921144345079686859771443352621458586225496535464149540275817703011391295196814361702547298828963866785596238226384506136360610868174578553987422044450012888251687541407468879490903401760694816904195187019870730586502718698955308487446903306890407052127589696071930356951080698044183300140399309446869859929116524960205741548402372498950388935395219608094464574392199807809981977575611433189335745072576285506520810246451837320298789994232879920630964168890235265323576956957322728877889276043854830335399801364269480710267357808520236897719477984566868645627193929475460087273749178881455629887771728219427619508011772268704977518186640738540680320192145148454537298885803274165366569042008387145816313154856756688288884651162226294809899095733239212459894622626977282949328123812539812681842806193177119577549063684860333011791627472639791798450705980190465947317702637578981993143387106523667021578649135612318564570131486128927500713683833976595889072652303425231521426567746593869214544218586116110768991082210111106979193013814389411270131402298661009302954944136896096125160217186934396042855238022145408608680040678378357806888164399956933828992380572056764102599873906201170707281577544977845148221783263663536206818655408321636686130038849611724645815756942142073343854019603051138448429452550478438937015280498480659098617538070634765341000877753110006308013382971827414757648655554288798044722607055821596039128970807708825998503174838247497890859447993873603174753302225044873538802120755747827441882326208509678157511341229051852042721254734148553419671870561312553171414458290157463147478338705304163765675599162036623907420453185128182740645779934442534078354980657393706630008437986982023473666079705942661117848590109135575233324970204012062328552954926112863978408029441592975635642352849866690431887564490710605604748603262944904432656092083778687687631671456729124552604780614410066547970276990010498329057550206454501198730924272349929538059866206336947083910554289637233948484464643592591078373360651116045823108061765992029006897965746295430357324383814770008694251705947050554967733481323106087347649519454943744279950503520635067788645044402912815530566187258131652347485187305643085781979266803963368245733337466831101334347703419685521858969789289213052135453577436324157933882895306778088642717376466185106283993545646770241405960391587051501714306119049556206427285621338436809283076451880426287147186028421116547686693468929095085177102384312601654503254156594919698702833095878092411790101259408542316866018302050088086625749772710830485184111733596709495379627859332148422583080539874079995590846877625952965263426896153912967443847642036021705378339161771060703119790207302193270712339759665345865903348061110452131312651649400787943198010314194774953997541465751986781792181971408388504185302072497451861838988854778297302575927037713353267555567857282723910087540239620525538891005544989103103818803953145365921345429721645727315872848910932624448332616709370241453668524307656517094219087037620082873056222054837085736157965939186077579416947930628161347490253954901009934786960837977286426048522935932484414904301104351094292541764448450966869158616512560650911691525512074234390876604303986771919988222124433853920896060334066411662644110183344387885031165478774187606388215231358600503772840053015202630816490757925941808160018892581755764421391367753942737670710810543941553916318689815965858700422534460890497788498317797757409005102140403959367752307986919597992933113468516405984352924902450533604655787558083413943229253349775701046540374615243059699687656758436570901316354925393209394207161222553034582544284682212253518349439882830936710440196057631269580903508170503629521344600253046850001407246761503700686539105942990043522419949776838101896998547675678075135827762122078213620311445848328062109376248736108710737116240359971052360603223035201565928552481147055625052145616566636260236669602277164599853124181879509529532161389216347318561583007017606528942374034586959608755493474756532127169364676324745704138303762551126253787938859090948981700428182868881967176066894638229273808083982436254057394823233934667135999824519371879052895680988578279453787739176597434487986507284012425405586533696483123194441654896860350120900958609882016224377537611195896052640336724799162308497109890104128974262567137061437763325330335460894146784651687478463709036965699060852267208965337385517352114064544051407904224479472698620510399766558645400052844082643411425509360881773748747207973634559944963054189874382637144934408913480333816746406924415928422007332453291974269678082768392031677992069386215754969231723339739685304522043579307705640456092307756385987035786451977871481374115953812451134896897536673368260563346606336518873525887879684623502512603518922484738321575412349848447645518984040958154031682082037968511291186216461599877329476093108116443835961016579834961789635243149515471322672805151719961748086308627881473554103818747638550143968878921338855366332905744749976493566970395591826775648304782210004674382974285568568653536355668237795742529372271026693988196730283950194139046514281044511821584110997105052012526100875475196961809286781098256825721812684222225967144828439474142271948947827276162253342896932987217723656501251311629173446186508156812468450865790249382917875930099212979401933134956447056370734467566938780312032867163047903315119816922923919634757616569048991085978438236285343063908995476088826668049855759464966790423554906093813894921215206664406469047880717605476122584908692716972073050499339191319774468963890049565212071417542903319864220506022817690727402801970667102246901794201029130800400406975751073807792261926323596350245567236420934770119928438883820058234146787624795165482760037874486418628399541854091190719414974212376661611787189478967260325488949537486396378414607354663428796450106094000475244931257769867665486575900024932838108478876931664937207012787471657469356032192174455221491701226457132291190717106139880649050636109930288760600709939735703052316140754742299846401756427783249956703777500063463101159425954215280322447456840831358694105847409943460444835890583971832914703285909334733940758275035436950279196782195130750362399750535646821329041552025059919703407505487823446461545042114589146939988781367523201185016969384306539629411489091206702719475747467614329992527019698943570933654849179504159121151466029887928854087522492923861614431893966665837223745457947808763457758736695810849841864548602982533439474791219860426436626241844065026601239145135861410750368877927582195754439027503721003112894872968949199599245159566719872340733693085797727007109838162787971178778276880969618774513075184826359334148887510207327265511646106509203503029797811735777945679470987728402981616208342302634034940513415514259103625292534408454936198298652146914122549721655381801367430966390522223877249138360147416924518627409769876623796143959727895729678825807536029588129211520560536631060553064675327870877682662683960930865323394691927893515502602390258996100710151633191441953141229511722291131967317293916069306754007349145321022503881137239997442251720628126835666831307892475332313435082048839588334687045290122969843177975685762471491798124982868541496797830932667791452576229540748995235236135332310035785907036984338234355070796031287030142720041889868766620995014349276330400863258842301543458927090822075499616511711715005272402335383101942764402154644761187273779641238723620694380280363384082310347559527455125668947681175186882454563531675258625556365439415801319019143369847248348493727979950883499622181800507319657742302084073841049189325769974859196800108317551552129297938911211919468394418728425605848597584194241572195212293398558186141727985930116837948724172773974278760270396198959393259594805477475825336847897988797282763386849097681014090468825939217300053045982011120616463197377045003702273172463373373774365029211045603451779282143909600771347824289534262748485605419261315441505691901525852374711257845024272797186463336277040852423600573343164010177032209370487416853708400418889747339964302038274425691886070646259353606431712860270653144889310806864979492506345713838535401080941039560863450170375370786395345882185647393034786321633627385813300837069582533858539417866971164928845257899428469312765170360113831613423264254233172359240241992861019338415863796396562323958409381264568991789509727813692801781453404771135735039097299026013323055276744943530544292177169586371089946467699721629488377647503907736372597128522266118846639882134931553758090719309861307712490419292929829174973626895273994676356733874724986123128298265073744099086480282459886455808922713122426681623881877663542917618275583016118063930777100834351964182870201003032781590834473106186128739840939416780673320267060346536614967111047538631551442519939191769796786889824403739372638149896326376997194372813067022045619369321864704862734178167863150259995604376127133934851302957036716641798082962797229514012606166788651881416345086937748648561039243667125962581881535227740340472291519488209476043494343130845035072808248863155618757395970700756767505587351058896514596036053513036673232434884232480641233506436785347158460117553219479160457189177321223265138512971645554970229472827249530422282391105093845860529155366640370392897400563676291797281932310577973303412003959691128487068194908807652573648388416276820742862613917551057498418696301653359401356833051279876599401863997829106404032741774788995091679700747338038681767447834778715389561194290866294660102710509588786668396838804719873501310600496280322780363917844753766853657579703726085490494862226196822546327130226429516316679704593201822320894377370917876289754154156323791027216455628744385004488891540749553754981229778795905289189628528849995967287181734987019577679764945883506573890418814396883255359591241626452900862532237788726413879339817899005538065225924474254298263781958671505997419062718288386695148761213818335544167909375144493170120794016946905275889137312104165154356342591165530647434155274143798774477814782220727747961790358114775580356290839177952882210988343258286207096121704198975318122849860191927691918303108484718600112254314904205999044429936097068840319320106320776926039570962109266190303746909910389432295956997198439234092216981439320149031615233764526514039482577418961601011486884632118555867641346233846692781060410854212113439701439683148220974836597829846948141326968168915152851406127509898245997632514235549007183983576710247413202767499338811991349577283242449785297092035566631975520528098320571651422981837739380398427677984877395974374861260036432555269664617550036501403608500713338075502152437146110228267009888268966998262903439390550324885024487470395124436228411214553607964660826528305015021041526011807596205798663094850093882338981623593899591242911074551927065811399789667842469556696388921780806765153427207557659814323110132497355382444608422033787252257823540084818505741540682202800046585144946100558890958973222403256312252059949297288349508593173313481003649296946809805325733335211920096327342499597490277390349356978775129711105751974761524119512431479297571183960121254139484971129074460376474110401778556121994271181829919163679849432909810210386573718768802378926761849660687975792325541856496346961845951369347346751294623832537604766902414212824495346384505713200815536526362085647437012479143683155246028730381922356099137888432862614009057810663733657394271706992811909954219274959413757437985086892683991432807043493934895708191669816152628888638424886063005369300691103022798014730197176518178217022349727084155539667935481646997275407803177838137673234013975733605757066541078822359772367862465450634331520425448052093067261833730043038780820721724334517634257570636861674935156119207357368137015379627744430005407844939425639973519659642594807144688314474700014603203129148084223228104503435032955471208383359786280933579098210391621417810418317282831484046493279205381849585294906420577963086187048813661366594940495798714095854787613061382584428608157606226749099806105086601980159849769015058834818147105330140555875795516615185484640944111020467900104361942600197582062396074238190745649745417224448981640497343614933248330660252261529441084517875223534934697820674932134785239539234018224022885531677149667124948345996289631106141780505377818532861977936633513183846626756093327683299228859293188912094615560310226582642910755125381597330649941909214415790547234412977292132764028207442214509965719193768240848225745050226615091458994916816146269542307684285366077044325532196349665314038854236236786052659903650295038600663191034801826437979963428710896479707089040083591367418147324232242125114095653249606241834619173556990828531436994928791978799623427780962984862357938825716643060113643717201680352533359669624701382812233154916976191309756663783588023195030415131066716331144057140942580652965507161166166872734232674755337547805925728229567824184566667339555107962874159060232675847275177723869004437552463885850828766394340649523197942233124531168472247485109241158667472898383796495170973669247021332325260009870870767267382273716528500382458067166472190033959636064637505361123358353151416746610892505510445097508118579521453092368995291431804434295040931559198227508819612676324241220927657401465796422710560568082495566242171914774781554845681719144419645471903414818110354226190384153296730683524470386366088923264923918008886256529204212832462468223572527046114704836821797633405386419646213867345737608734069895376363611511495760829962939035647701360878038637974458742049983775831779535340387579234350716737654208042465567515500203554784485905735384591003667029033345340473959152869402338230473906304290424929836273291233660231774928471511646586103737228976876149787144362589360269954811882741309709567804954176762792823324255320449774364748913660062137257207766331071464522005207770792810457802354864614799734683365769837753179921291053122728201285382222492347055718531903194512699008285841536825949224325002763693993550087215853698234529027140326875067291977340213970005987087037079960956335857542602638023468813277605980610796905192129756336308230887685546080006452253666123439266273021253531422463166238366685840163387896535061122086093657897617372269428107994977974455411529042182807813451574362306310053510647100772377662960322879676876607894574075726862722886382036479568406733864357916819302034969660367250235327958711824089548706736291304024110196385801144175044691833622737478052160992161931685863494158344388692968835121390081506847843872401002019165361451406488096392947207981942763091608257333528738072582387354096739385856631174884226892232028936956545407502813220414775206393727249602386624692704067474217752547071608208090204543984825811558872161568800602308056324035993405446003917775033041674845729188460283429554992182287999068291574741293729956803217831642396295460052445543259275715452955393722860457284730970338917389472972626905927990247774241214615465417232628136914485547228138241418252181937926878069282985370227587472307672698577195915060391579676615890244317243119437375073734001334870227525756035715844021612546187302745384496544336151108963190336026858237244293158503557407178400019198433680226532725081917939258695670330497334650240129331907841824328770520054621087553042762658634250583472171981267092776203251203614620220610768821839193754441032079749726787997976455869393481734076704729449266399001564615679191145668430049074739417229497243591073395213069224533018237447744384550605350746129256850649888822035842590558140627207005307439000046567737743586890851393922031288536889083735983904901258724441237030379611275483003455662704269112608832009340716593499362500202751753290766698057624654112368345227527308265397462050072055650799134542255678096871159005427979117613432406184605416674794534365186631268144167113008982771835872312280051528739063295980607168902879760903029925019154165571320805308259683196951210804772946922507409488478789551292115166147202086348186693366381541967086599725039203673391931633187409773311932336448910162238437846420048417009511545331193114681451118980072467104048438538453940502024096711746976245479226648637735702830393741129308432916884955683713621228629545527379810871473073422841292665963339701593702716200106379020978974746201461983301671293657611873198469480553132978267758591708089208061450052619970457496771728627636181724946486332086247790568655742544106143691851270704110944356527023249865389396199042412323416007743508273072003833716320319859711966781645457526054544328670367820559012027883950216150587458670286708441058899895159467021149401898255572245119842969454887274317958301899845142834107696393411977858616421466221930080233402044608635251845231455512288423829356533561785041969302130822914290724269356372321498480979333929463525424049483717537287698339219686741024828801552576148397758873110792134619646760515621791057841538403793003656101646996386911044602161862645376074391983677601955672803633895350532815488674839327668912435502408234175579228095695395810168414240769993817212269140662628716454162175110470494709780579823081337849977259193890167212230357579231189551610367139334919099129176017649560370443500309988267005274385593660836696246205659900782807927075461415712166986663505227369831473398230734877041611436598488635589066548698490473003623329902659438403703780451294741058006581474552099235143746662311499508689292944895052224727309910178867166730559733557296486449361551844989155970180753406502644831642299110369702790913380347119398432099650180542867101665286724853684114226215398292805558193821047998469267374025791176279679082965140650595246475566729981392135568942796815493614037969685635179677078007540719891481399833274192716134306601046506451200227285219489305145281684095122039088246013175901388415526942326348485095066487278926077704932951614303483800229931225025413743514087520146561374180162665332059997860725850267412722869641796797322450444008195169888550788093688819206364863076679975633444129356873867129832873792639893641382640004415990592161661108885770746868701252549127889839606142635317365421719449360549428817177335294804954984787132600553047188686239743416664339258784874461394677351453382926403156675568076106683285106189399945493247730424323260589131213567369283150686038088423022521073649357428061630622119868760568576283440888847349648815795615999935102728436859887482124703256001769414335027581729455018274836265003825942574935911470775724193956904001632270668171159383845890058928078975681007358019110843949673947801039204224108835931505140294385727474670251170253648337185768493786653598273072914586801634821090981187935887713091182976584907891021922694491409589951291526904283288780078818998569681275619248855292288231120848553160167717809799432334011675875857559388180822012615498973911186974121659322759132158311437045912701598040479515580158403003321480214605999234133560502923555100233855284168954549887494918396265598393633764662402531635414267398120146054843535764066668135775641185538331816974853138113558842990468973094283098462534661068808511271649998461820195050630230584492019114674861320338827846767911820876695425383070902761697413012007409855215829042030633056481218405000910238633879159945863138285619142901315598741993693683800736045247429574485822439138753929039482872234280534561322231229524277917199241141370432935140074036446060478603577286574839812965096846451014444347076712564512703309422915997663318557911526814153580011803189725755021644146800870844255010121395162037016833956211645396676397607054103607047459418521606927952981338097192002838436217291108300759885167896109369048196628989977942194164658781806423104085547878482387854561962250946868416362847157154679922724271856818074881101446346447685870893650276489328619014402992827966273340125800984830029769174163078936457172343053076669368289341695973668994741134574816379805857845075232379631968512880522200031629444554921908266740442808124796416803269652913161571522490376458769786331052271716178940323839153564875730471630941255847251533707526295084548189549112596675139954809107055637163980268406892586616232700977251342765452466820451344407947816774867018085922935315624750864567712019040649005321400567972394730578228879217896876049929160312091116312325868186937895434039111837719094069466539259611208943434219102670388126689513023611927389058538979930518029917138769204282735965978982094545734018696002573331479084311268987137304269446729896295566664796443285852100200570009167163863499374181867919272696407141914315723345856036416741528830339910323272124031166218879568208143241897943806301395747400131310454042187927429078911426991922208607214350244216283002759594920455199598433752733986823788880775140180463054845135381913653423279989509846384212096069067023883164561265920852310531410101519694381734226585807377009972508297863775823814252444882003029880789622517200847017392905084658118597161317103532392079731572700879804337427900109782305078621073251328037224991009720665765353493810917378577483573288864887226284178261227563557838720371183913126106857020221825149404929723359950615747335787470219335278835072827519160388295105982712833491520529508492685680580269134522221793619216412895835460142073925565998889080455252702189894187226578303167004455173197927896581057686920506617238429562677896925759111208519322164191186876461186516035573765056048155017460012957455306217270997144249511122550711846707842271440547831047704619186371033998938443587505258341172247945052709633136600877942295476540651219603917769012711091846835695389591296152354721967743481292032697557864015435639713075989009114946745431915730573340234419991073635295789778948395612673739731715931636198708270363844486717810023790787788820316896020387930952333486458135048425305962064892442294941180348984226066050577522686600728197924683491528231744070998460377962681954875095374440556129052871137729109456870183419330448024272648086034224002274436943911380515349712579684784868715321382455971449581830117087906989647407021556772090541953793450740194968244125991941086338391756700774438457582781285383966198456193823836958669802915865835051713988409580574069881759326981241546191049032543783689125063426460913215271297219298471536540581727972361027487159322361490522506016794217398268002446077310111932864027924821237983777799436840002693009038642863147563567214838613123844716725101957285200453831712578669139529824138930898907132511319028446236172394251564410566949936379604038148286099973768254632869455069882562063411783548398299759098019573219201288056863473646713657557771534259631186693683360085663117116512236304348739483480092932179776003963485844232967132167912403262022451884809988246035975195355501767651563965792616674207821690275693225041994780133802762925098758841331096993148127713894880118390637498519029826376652847126753396457250439878673067244645853070170000285013551551616616220063090430933450907229133706724123435243928841282855435773480526362516918581999976149600924577042613408534008948644768408558829010129142037534064018815945760754152410261094441419937371777042840206226419959096263422340985813414048250488812328280324468244745074198802402715880941364576429917110234576998439271228363830029689756850020423406176470246519851310588264995253357252055218350553195931961620880581494045113868612858110814903360749708351621472894866074893251278545996758678118629574062193837864827325651320443217949947919646650945617977032150513628564472606830134190220587380864348703394021253886674203624061171465806772633864877092928012746252003009845851859522211689467265411938179201487557715599860224695580255014644138184185907177745855885098904469316866950578462036788345372995306566960833126261341568822982927910293127768823559824222595525572733398374133517198235986180107684413184390497317935403270771868086680535312713098954847686866825539609241138306712405582591669084734194585525566514227321226193138898597162599365960076245451746299789851143036992876093937531361957490132249036077340861563188815065340792204643089521388322299267773161445043363540113763116592494003717340753173472505912321978131506723769695361309489301296493781245197131296681439174827885222674599596236897386598601219345913257915746034548276664815958438346527861217408906946658956050608351094839071882730082002817666006138897190152597355250382037706548241171318379311126003699516609451510623262028690891446857698832894148386730411144455622456271125531324492786551351683406676658483267441641866424182190193571837945453131378121503515307938630243974818201876355295767170994920527030105441089828582744390148233654200268899067187125121442644947276770828963031711601466892121211829502723104935834197669971126675402676026197096462548105341090335793730097735684158912892631765418733146087570590085992665143407762463227024055725305762665701513864294381735187237591282903635314106439115791360903966459338647213688519504104039055864114001112989809219630298969821270622445578464405155356619183796761167597647722453075481072115833696425524679080590502718471696159358571006874759152905822164097569722377373154087031891263825195841596430204462902152313769566931577639243017473647950211287361531650683447442188618841092482518083436614279036253384686890966456337829083637019064094398828875780321365570004778159747717710358934396529047982797537447689481116811499056126153266716428998416842221027062615277381874136005137572575349574862384843010724096743428697001997990125442322234456934558542912584081539937530671173990717560885671036304532973474854443148028283522799706861633182620364839036435384581478415697955432457529593670451353451151657803078206132104721531842220593111571000232873876262217301833750178737981855717642274710531117911212268770588241998067247177991447780299174600107778620852477561667954192796124068130788087378820585192018369794757117278926003809522952846680146378181718499073026711747809490347222719206731978738651686981671575313697471837549493178955225089771676245418911544161857190213528756477138062249861521323097787409558446080686732305040535449211732822677871047644886997085007784147010556269364824380614737155303981979674033645850251901622202613573385094552992821589222167758714182556555966596079795349350161254456440365139827369372113078315679209564430419958993060764990619941138414107481310883859499411528586783421393206170168869341713896871373980396368924351526344401005351781586986850962343399133316013531743675842259786952402670722156826893218587853428075640755800969279330778196188113733126246624246617070849385084849460976339548709715800547525042771459462453584996479544539808246480696092602800315883212697169860640411310481438111421174894193876382393038114033421771871748525235670541791670730046150202445755585298405562992621900260738920406449951027098876339563327452697836526264461971230267219416946707989244872161399837377479059712510711366042900605728024981350406129603049274134695327411970459402664028553498140572244035929626707066553998666319041846666167271307958372074367936700708906790392203211994351704142238259456071754027978592236354446137256630280519583065448619814272494337529006751593483607875193542557113344260720555023744829356958636383985031589759352591971319146168610778966044457506824313459368824811410574699724345933845638842994687548995131665215571976826543772136161781220244363586830824668776750108398870928044826533213665396263703881114698487986872103659510320928456396502138907497504176423150053465416272000534665929388776315741172138755922438473115325068145985752887760295261202913312921917128638084849064084728075389971121554549100928783867990494932133997597151988268046849665337865698951955880027044537038840404129332066245541580123674708624159677481523664407718717092060851757169820666592315985101369687983104784029544495400152585196051833747175743675570954020936694668031182935326060274262192463728768440297315569637674123853054927170171265240633822510610473597826968294186594511689253012986135365755007462908854884655056930236107794110506099453165342418085615516422700076988304387684312657673505998670221510881690245323528092744616275627819042362612561834938395934100612748149865878827605278579961592518390268129745394014204131036513990033046236944845325978708245659542234768947276279659797352410104770583723843076546984351683533969482043199569345319212577421259789705053476383824553271035582031794813490830711879542198872360319929374990136490265326033182043227345399952406028327972531745122330892040122909023296373551566564215624587116249813670929342650241362590313057442346241985342825974689340153362088553334276705353905213939145811308905372221671929752530510256822621997691035157505846099470248886362599513847763514364761832165128900680718271478377704412479817584053599549136338355781719158462124506168721296127644260491353450570103896828979731385373700971822589694779831224279935055355564439042243829971995574395468359319424080720248737086326967305675135628784723802851005036057964924006179627217825171002347992208803517752005804832942324004786603153669371474818063019682997421256125600048234818342775949104354345588994949103840470280499055189483249160963316280752062305039655922877848605545450424587726865859629521535180396430335670218905625964440604720000087938126497358557539331918795545228617684027053222984139584183712404399116308341636470911876759399218714223978645084645465860993568879851872299877737122441584958874525578090964393837846944938953841080264197448814597933974517753026087676665085034388592839414172206367526151339860324711054186310230102135314884579350617829725228419851097239473161196328639298426838973845017344374185627858627465792614953898777218891950166365393116664711716926612485601630585135925043528683931217553940384740092789667111994948891713607379631453351457598223235536178513816115069669221725697025332901036767759417103338776130683991574335638493295710513698058991212098119074568088045954825875365649237745142250772118441162651518910011053247616454575732193371409338135940640642504099230156574206355195610502151920665184872931374834913214111832165808198564862278921060891202972784596703972031189579938198668496304899641441302806898387911430631969322375336382404050779611617475728446506203454798049417239115557593866187520807755573898691465966121166413955493632426677220612651497585327525369419007891726543343842430943272939154431664189775244628265429387707083044211920558541332107817437799184927270501861293613125775697596984717626241851282712128806289659097199321241866560640753993599311171354656897444529598905532333874923799259734159296602124907470720911360498639566080186734319224319303490305854217981978026137700912030285503746409298779116433993472906010821142834170288278727227050807922969627152288243419363130587088042892352726520458571979091304124592734877341176207865453519525891408365577247984965125056138286170178191355773113994315616955373999023609568325985134209088980032672397350388392759017438939966450997761835131014594051521516646171062534371793478700981370377012046446815515863786295967631667785617316511921177117408663019295626747847784595866643874442220575057581633058998726388188917905741955169571100869628570785190085579039456935939732299664904493754682246693057120488913592084732705432835270852905795590099762039457860108997084744950157299675900042283738800442375365236563126352241454623943963494666863124952121692172834902351306333102301655304652853665487740315352305852327487233815836352546322146465313905805770722623971601004702743317272062851434197608610451597704684133502660143616398498485089676248417398314486387628141290132662826978467687219048258950901233354755743971184768797541120694845526859084935079235733513162246608851058014985300458531909108914639127161352375521331990763049395535593531458037415620835291557659043449302708491915049318303545458429452509581896692244467913026833499025923238053217151550572268592338248586885521259732713043810637285288312199678683000156845346023132490173656860524807976377943704081228651307979405196852762175024235339713671247994745519768187280644669206430741861570348077861463262347017863706664412252776785267462853107865591059066943773438376637049240305102914222389197688857561523811970889176128647835106770511071353226316922959987901217523509410280346369772517243052884296468332860380536898490898304541931411391289444521250377969825379473302494223913781793214212910731292632613564807858670292210915301228483152910418652536045579385124399144094729049210570462373604699966313016063836032702388585980516502831708394587141685963134024868889501782039335697448164142136406687277822420435387466003675723130015681938147490726807208536229854031734906857032454776650317786047296625460013216507415553414513782645735530640870018850817707196305003378270564013160401447669932285251145928998732589395437500415518579668768654033012490321330235511507187747632919198753981429645670560605519942647627725412018277431384025073434241583776233423301763210111863003577654543581728136730375880392973782687914244293427087131753305602044205863695387607165895106223127832318215595064497378035771243536431699189309233987374923880250163525800473186787074785663408717658984680850731077789527134573016002163541597568687699072079804865970938467387743372077236024778171713087347520701800972659135847680780389241802467596943529355185056880833913764517878257080209875784548791947312058369174903035360096056995012109457408384463447518758371608759640877374095099138441918133764757296052415131893942025069478454440041168769673267690683714533309378654000742635699409459887726961572388747024766369919282487238823345818319276325721386353741255038148214759929433206995586690503774593341795677105431062802523441479271953011575542556994342323867058921967579148074924774296650801556168632267586510124683389530866993413096087947046496287013869251311511620403780706678207427311862605034682907757698089687073712072985209877451844376426080313087128129581903631010088136970725781574299657398728393476112869602481730920426633732066647627082777410397915115722150884136378037834977982606824042067222780456412506414946301261253679360918981095576646821382932808702620685559001295204105466696110741590209705593330277699363474867262063662040084903085524342045262257159699395869206874814152826062590133418196700046375585464363935587385513680292544121385473150021014375923955161471190826380392676135044178226882042484368466081967255141232518576521442261288988104036963021385542780587144123833800914074690098546410159345116518919089664259856594673633206481734587622709403291963323647844444834690755703700564828331058101116573114658404795081767648979484977936850185536875875383842300318405117335465479013183918518566814291258959587823152998033367704542518665044663554942298815872776932454114808701998014469304277577328327398680521604418924326358163485627149250868153932730611542810388388334061461125390468073060547233802584156709084391858804003837654928978703248817699647563366922158985716925389700233771315905131101598310338877198512603247219216772906810808062259270187791524034976831354626039657885336166452350960521747024717910931744982720667669536971100558168884090511055320290410405025703084347999979867347537834926361640828250532874071287689500928817558521298746169497992665681975719933586284433162795217012622081661517038854042557376563910321061190006937556610546236447221250316176392894936992377467323139362835783290066578356580981625899721190711009256616697516833411263175467859212130530761036958515498370439114524688805875308430341382659487294113105459904302101420608371821998880362050336919490374093578499386371728169694904687334397249055719254096516851422628976886851424695410268899149720369578442750979042418503744794500856858081272117096949321014962472201049289647494965719170727394661674488525631809000174273998884018932369562095237364540374003716062989228169959147333923724210244189671994808844112411457948153187967576932954211110504521779611145674162037811697083603939610912190749908923796807808810680087413272028504780794426321181087878876635282037542775658562846232845442283317607805846503418373836238832518856624080011943494646268480762177060572568554875561795358572190054047134225085420309593220553374646524552416183592591487499802219124623476452490227417574303928935246385382149812648896366981432556126019278811434134451282191728023618373928562508080568134446222689590198016391445880540170616446189273199382877506722094580222056757813633292363994592501866738734080480601703519436735827465007284979203970802869785600768937548436559947193044371406514188309546603439503243589107374029760795274922983997135684496237589470654055573721871281911360230813285602363809108208109378462155265705969873153482508420499924648010234504960872397376654501301867630219344622929018274484560031119931058445207856708613978693084635194435135160642431756667226790520034219813126877333412813393497454112730254282790333074229206967282696166987474043115355985968052497344730635612811703194551091308086135722962967232204431227232564694926987095729005542373142275165939773553606563248382371687750036339606730255104662496190989501800887822645695619319116912457632728646010849143439385093589288728122823344425841709308004387005754230872699011518160620566860858831897856742227561207342601472594687606329238721612108188729985539102263906160213570928066211165994435786532959558648235060328010727016108404052982061174260657073213089514080466974289918205295743799742248074853035219826357899259734100754663211741937307095203923491815937539979470164329599708928911640349759926738146470281681243588693244301081022282249002032877303621776166136206424713626128447581297266083893223992434161068182684600118605207480318390976161346299326632919401808920448185627351818913221447186007198886059210022894493242415289795452214313602834520557032497975008054371539637472099215661067446909830298010664864804953696525058197096333550255175887013397857662806219322924321359770322028415150286562097086373734885961739153393737689615892127125376259279176260597190387209957240093328255538061853313843461107846621543224512882805867541999988899751174862590295363380702973399866044034226024640977968155931021694501153265708328456711154273437221229057082516823872419736868920188254316427433219885302414662389006332237319628308615077892658247658012773898134431898527382635037049167749626541895990456793266072105189805681479924625083997508113379188172467231266358838265058747103715656121283351834616693843788997139426806234726241287806890450254907569189873431985732504051903318863895921860113890539361147811722514266309251480614173698189631673886781781204386820820612575803633874853887090682941334538529169638236423134173523148733223311350638197342716683118965888560060540932152468212708350640469479710175977646629530268230440597926936783045957771873817867474599014030131373016792866577201287125681696747647886223248387982166904612865597436638812083657349358077121209950770450667607896448326184552315542215913538486309586216308399176762915321024839745527048038108221573483949327991294029196669922604528349926734208358628938580985146163092213417311703722616840570121997025656492626755125905097349844145005065237292083790655540986856693750492904553934405559539391233402359149845609260999193307063132968784549132103235020122123062581122244084283287194508703901611506880285210262341388266828134813399843250219260691003493119080975280831701741356524098878539697399815616204945924724888804805263568995613075498679424891310242326462358323072906035665271187061004797993557267798339978157654228808501706239480695236212198793654831103316328316058018590014712391937772332106767297312633569824850687177800360944801321462238597632746258534210033255996534238982964882506536146223527742707433402814517506428000080030892438358106540238125434606373878189565242332227133916541356063762728139528917315673659722081505770447256434105099780356331280404454871924252247078064517555512095240391973951440912592005339025793859710322652141758673111016672959827324107023332050517358415912421938599133041325625565692009764207114368297786475231920221212439398391458928641474494291209010289491585474775855187091072934083927453335622861244086816579177264433870209520779079156141780067549809027997926454214049864747337870753861958244553390757103858071492406963503811383190627369627845666285743448461382044395326725858179002853583739657221160896285294914188364173514341163826871878828044074950288248616878358848185542263920567843850416962825252356509019761708737087391469569840534410926402063964278101567659357239089680878575165642306630962370970048662905409380574037686576077664317623858907641923872091495015588982901919264339132301316300492971965086351603028432953469901522661113332714924602092256402883096095376404822930400187358832675325393460954769185063249087536546285648582734701927528384506419374066483970348892228918416893200975721696032329004991949225022324032639966100346631196670548529514380545169512108601159876648417219453081962063816305091935621113510476084058891362863488254249689348687510544826056979725131200325794896863972574995796742003418493896228143296226660142386486775255296997598312088685447465824740890017762027124577647828587314042734008458027774758496599095878446105898651589036399521990904375459696766776937906143598008908206009524220646673057121030578530342279504029804292176059066909808552956432773028004400362442845491974134056740605298962026544465372685220216385221841541739443279282455577871863723021245429854631002160783494004049070446217363031192480442032975956010849933841570020315171455691029024080996530079818829374689312266626661116514813941088011696295090483658357215713891165176441842822004598371575726252098868623183914525713011260992506862239518882836446480056523542111856487728342562626383810063980933828690556676155789400179987967231682449305726670268368280459560446920461769790244080644685986262270104175209074791221456841622003508235359340031067560197555664490022427894192398731182392190600586722177000763488454626049083676069283139279805347992065938584976678896380877174200393683659036352837970757330465909073381295433235963395748531879582760155694261402809472570075224112520687887815530619060509352656905838230523272349411462107307205053811016764898275745425538143204031244121367340863153502168522316740507343116414918790483231756399618367712944462748209100568213437935509573570367169948098886556482786499495109895055156477631112585493374832794338089375976173769952580959821238975870657509593364100109554488443826978514553110416713215929782605868271666279451981190777242633736208001132454717804486295468742047320532175959986776279242094961921061816142727720789090061235438677028943746163296229106542863849122498612439830966278915846696918746448757897503221046280587335722704185829981912259707519203512713395598147305574459601946993105196440531146688207548968624112023278347232734189238532500555058480229842006222912127960480542560006199085710606672879248785038683376093696921907887134738255031576936696976176086015298923734638040598694737290339088713952584976815238005334095660454761657841997037252927000641577470738557591756174678008505526369888949001033078517896612540793471982761398961975268713279811903680209809723460379273130672286333479354925013187319255563765123174292411599996268890906568796486586120772254269448810750242265685330615245662493792956758405420618632308169285805153283827766344289776633268367321202535173848769487215250145165187914008057614851522460981451421330873215068506965887924720115610323102540431521936545041698496890462973026626635671494212504908728876951702332888533669586260268179329207943356759467115730577500474632055911133191150691669219387121225240615042237672182527815977141667616047180349265606779304956968248518351890462067999675390290052775827036246795221793275086159573389675085103601205766556748205438643971353134467892100284607728206180043460826353524527999334639498143481501118982445553808352837308604664141388699608541865316487022098228812611532052959622739468322373505185067219758197685141182576591757541594237896259764068047694281640562111991405020543793969864862608365137850985989558925218352715861905910383836290720600478185954151733722812473369830544261533191580739032292280206206028034191633529198614392041955263606500987584233949541126504047275642465475687970100627229828303278248467715365611498223618232870017105395661032240969939247695643364725210884441245672547459156836343290954473494768188925254045724376818348995391810616480256753988742130461104571876718909128928652323054617479343281339204322962555738893003515684381178776811475737226149730002458044363301625141113676341314890535458939656857585595323362734259899409617456678824581006604035100143997793621541582639080101464821018165062714366716974346204559694385817108634605504241937391158259752544121611805561319806195642550879808104149776535386892521890226572146273025517143776772011993482276668722208799876437459663156239658455334302303005144413476820971276684796809086148706803844848324801893066732270176852818984069865528917107791969980661574833711829654701969678847205438407579196318628968616555345119324481107207750596404026533042908382273633743408935583966661713832960718831180906361165157304348157712951556094447027943378904750354568136890709053721207413459770858527846863647664018045650373252165825050384524677342941185142647216144655069099375173563199766906278498248885052620865698345858726137766084906794944768275325853938889012692683827047890586916451715826855353993943422619467486586106175743705395667001281228627542447832970394757562213742755623487317208897433588751544501680289033794971497334542209760164420566913386720544374129664053833794400703282931703149811808870756208629671454835194780948418166939004200289602006988271445929083567260700448585446725028917228299631873583604532242234201752589836457198267656388748457525586283328096810407796785730301821067273149482939095462023720865510706996284505664616790366439095625602946359834474414900400662955568390008722704912968905114049215407195074385771164070975045277606608377561370840323164289758387972428201640908228390341424596506743789221450966424953981540275345959482164368534191880281845243121807467116197968668159696788743814226605021131207403093512013186792228808226033584619980946104296853146762938020567937567898893109190034618472474928897919449888088367597456369028346413558057971430364421997662383676389751455722525827043768702608429505520931921876715382261620207559656524708097978158058452913145670798647702907449732575072985078096695562476030435927949370707360504271475117083460629626195263245265396018159168672012637558665853559544503018740258066616958802777085073901919687075001180649308872570737456032218965786924274798922933465797057002206859797629448112950540615044367488644025345275032935697353674696434022875892368801799325870524451313506906998197500222553672942903821668409307303294743987969425847417851462664577587834319252216732005621854198245651792739940871266190139464279096148942248989138408869855364028886459101079251262105154401018165972306459074644065812731731816473480528868169131750285511379973957611904855426885703096107919394243581649758244586002381035759149167484187704799447492739328395225392139508800295462438664721861779876737242121958246936040511987714398446562087079673304602784268175698362637578569356773759095506319047238078880987079990894261006291832704724072325907943622436165780761808024102306725661728908199454312613736086077922235257000816230999699267836929556159585912407225161776589951858642492639778056155393921044804805444131899160518868313184142500681712201825904776549887885738636553594997365978425234938845311580697396063987373269689318549908011209714822917347407231276286283249740226145586812916706117615198606282023149098477386942549825590974793732258597689019179865174735357359264187358852699734854993467967182582572951497570862010599350928858148275732026858450520534007933636753871852136402989222544217782243705738293695586630229995873364802317429989635402271085471581443531227873992634267062165099732976847367846724131361651311193187848624195220591135173450759963718479927716305966556772733168119813196589046532334079543603051931614686300707702726069038601730741750510444498580902513405481333580238219674946109467454854847311260864293649964045370363698544553431891965833649476661779889054305473906798895202096806870444453698307049550996708631293019242871436750985382536095218788398383844002219436415593976411047761422807716644401990771359202961075950328552089447033748133200781704622076509743068793141351196205128725351858077427595484928014171266223759192253026849152627801929310770920089211438574499104933118166682817751242752143509518517167390406946355775864608815387975227416631559093372502319432922647658111062075650378878334066850426651412924910857594106251954858244606633239234075308581465792719852565698559051052031295261279194191482163589619168570221358327153287221212761014908016053956056097343767062905797824838439833193911546750776353251731149157276951513384559449071934941526202544481441305882117239232733395057998484954239143256991674032779086709443742267708623878257808739391885715666743314269169325914079880197452452728732022249304607293434011697538747215430263344941921121393721799225614399385165383538562698265588897031941766625356799428205299557366109061477645463234734223441403526930742577668138358624207521650018563793909663146913074966808174270866447018019916631941494518006234951595242848622595831107100174418898041996571021208321928309829233498809198668635847480453175960693641852769244946814124454120669498631044783730409825864001772586450261608987787706031094384171224792297932137684336804009663545963692027828351149362065980579454518628009859755133123791820804781956988220332951137759920759262818734671466959589016872466966545251213920969630029470524005405496857004138919759426410814018698655414048504567299544089558314690935964228365615367219503800858992268952462624827125314681846954824282967234196072208488008091692298620198466987270485499960173448808895343139534900779600391125177692202195380417990035291351764943201738182106486077543415617915140503599845278268933247976751371046518557278296682656138773296847612541241103682172982280927941387635399271334551341021418637156113982055844828327773910486899787278985199404910508856903051891991159079171161611847759334651151638243400507706262971952310138781596086832807514157284303325065959792020558830946214298264494070019814919719176813106435309204044714590708809883095135699770499479900888333671196209561445617154034483878040035445359781541490128665678409188506881290177831824564145085482981201082506180574167190589303291517808680727707933801721839666037967277029785131897917565096617735090520173525921307737102773068393636454918085314236427844074451830423577082477089850418637680951198368475198984087431797595691562452121806692075059586102390666845969120923890749314877477623844565469115967285835119231560958613675376839257466824804015009187192367445179472967173088105319689395900275386096899039794066491120821353253183836757714437590015974141275840034529049059170251286771976214048318515849542184917917243090597108118400449908182594781394151602473141339129989290091629090545174814331399961215053257403401133520613838374209092205322335865496280870013667393017297638143500688172425362212646543878520615135293560617128147183289370416202241368742949834950619214214659114076203782766364969255830541111079107429291475175562885059929827706990806941302328996715047092231911898043940696453118397903494321152560393463394758457338190548417812878889762347459437859900218077906009034705770365339088892424284913276821040307589566205785323220348792398548855417535511391749167998337042352816818833324856821634684999492453279118921666666249409141577289304744049740333319136050654685660333037102512791193052215471694617596576124334116434565706217176408217426577329253165618821438628007082396232441512517428206064673589546359179800351481579029172148018388410328034263461071980078986421134035311376330214074054290748117701113774481717870178388238671208484015644384617991759919313008483013110843332491342085065763128061162905039108476904710862805744699342519306071500119116226072494096207295102313478405777372890983898919477684334715495619013669951776767876214120929641058097764778790559338710320697576393798240562605962161005188413169857082978094335897161692564831946612794444710696460481255549636499717989043684090828460377030056547976098861883991481320156143981258402841183375942669656899586109708234264222354717272645209217208647515248780854251812131545802744356724567573422775181993443055563583709884976462970688228019996836406199161027834068874570446600202433477652126101414452963504211572566066286297371822093118162762754783202201417270052762259604721575245191351628568927218527358590521346381603809445101114534619662472752208236296962529201940657029512988048396297833590757376742021572102626203005140800160357022444087326218968608717142939183259250234915993076626265299481795690905788661118317236121580919988555957069304264499658523529048027783345588881865890698428215776456884501740857834292006730200276786194918901060240334352818092213663465378071203989012610903348119799133007794337484957470675180996988634424404490977747052088225755603301563547763502163765736831992704436320535593093595315704559921365306261936784552045857592727923697171701946768894631854351035894151997922396041585770051892482263261907736638443757138716346041487595115620459058888082254428768607449470836244857917826585771983658270985097209382393026938026637520807265900462893241276703316640278094012902652650748243129013001159513907217246286130345035565766683728956790357519911200173448347918053510787345338395337528120619376183553531344470254619772210413732762573834427831238608302849381932406300319460182791635422185980424938031759178891951653913426188792265345728272656747300180009449900377652402119438581596233869268885865642752291198841328758622782478473907451583034121854349194843370465126892984945284315362091418752779910781044088168843639732791837021270343276542551796959182248496538449389473016254316739876535537116687071542571765304775622147923053306994818932803268296181334946321309964775900174339716226213440281323612566790488661865220386797308149170115779340811895948092314712684424065137074283861951665749865165324104972045045086505326268900043433151269457438852639620984694768017266887625951195805768471147249370923561448825434538796582835047939639964894838026231389727557760394462824382977876912771049991442565861719081693357228939850581664160674818461862348881761717200093924077834456225855084262239888388421565505964077423447250269659928207822810567726343075848504774942163160959936198705584321918318643114425272136828446528968325548771435243938274802505088844561118187054159937650002660611085768096105444535801001103123428699474643619619663873141721231996509650370360978622528739351871466170734554369364307690448954528613257242164016731403722403391312869654616411148787818042047066392379838240907253334866179286057915410334481306456656715395152634506343733156628077489255646209622621971545333313008512615243657095663930021627456464265726854736841945134759489019289029204038470398842031460677910951312194186898427529607841783065883470709245656125320784205965499500491715664296692820193060531715952387790907998593024864677801703328734137891805879974102257764494854948015189851659655613136186337435191592769924946762543801557331719665302718062291041138788682795203255093289928283971878467996471912944253399984770487845285893530721842335405712958481945260927640425376489807850150477423691900760221259742271161843488716033796097408407438914406159824327604676299409825036367290526152739126396382199041443873313524927095973620706906138811840820783184614131795868518826105637098138232505191267304223027319871236925614627931226516184080134950131421927852177769939950940770816393344470095778568650471644978112866826436441570120854403989828272023526456300319945461463254740915879528131481990046635042033168789194127700501479979962882897988013087395504941776494788723344414473773422303590619382952025077782165173126676309440097646128806848237441996111454739968862735260996157394539769246419521683455658659198135814188434214288079319985175845318930356463453584166278371450808834503956104723610364389769406427308168517477969525011191919274563742169457014785306328591241982650227147282307709856856299789417689689908004354889315682253858688986964426405667398902808443838514317710627835719501804141836921990514723658748718098779194436484210749428309501854015510304594637666845030368692125457971723918664759891141889965480389206736532266293226453769752649716437564859634118958248502205719141265101822787663832235267696891008824186151688405047826500612385217556367630787275088261892660880149454418577676823044352637543326874300730170934828589031820555282218643504068160342229831867843003856449306309981913024514050055451801318424393483836693532365945677657377406817704701215270638230854274544358520441303403937872837756657431118951318414387676318188916717622370493039148781938147672345783625551216633251405035763408871774007198106478624177663946681612202450816432009264692011090988959080598552970276223003040407118246999053048460531769122964217910335325429341456068286377311676779750477941660073489591356184618991146170394267532142837393657005440918392202548578592626952271410796936984548851489007727105783771833593543494461281047910937431893797184459882883287768358554466079849932514675468275676154396663242269514870450242900110835454980291710503419238532135121650536865677015158122153094614436363904489620140251974468187140651968444302820388553988812883468212847094659338942261683141512388969352079817003718220402583821385521429395829728185790609351454740957158947604415788908633659523949313143920193086427756472686476158339161624751455857253377790857179557593243994870107054806200088443776984384822803055735559311598369904939848241346023449186528828808104316026463733606223669364178592464481139845182464913664654726023714946151213196663587831271561234919417871401595520838494926456680235125192811516102327918005462204663694827076502811735139905419677677183578155336666006803365221103646082598921563218759389165430308166603386147861088922661693941830320007758799264246198745117319615426725151605757382015621376025922861710067891390608977898082776234160450482669423466257683225801989766349201053375910546360950253157097231868176990518441244320949061849109598851261481318926263529103442321108046035758023165809899700789279702834798125933951947385959197655981314193823172480792145583101117604753927870004881269661595634018321680803797994172119312658102511241167642582059274210690052315269238748442135940250860160091262711081575498569665126100634554122850326812369553332154501965480328063019281636676495841304954486086727815105638761768067940296335301961316291780584815702497349825780648935894434856927157231545437272710820293935568732834904027402416795299415657274000280491211641466367495570671293597865028428724686575623674014393844292109326765028371109872464945680432243069756358169032265629769482628874708198751403441879810263716672025324864734093723444183158000172659725717033205158128820197293464690448273147693772746629050398073441413792927161856830991842773120859373156657281963506536254186592772412923456866248038334485274636399548778356636905868616335975451368981161201416879322473127929518999136511729244188757426458569789204571610868519938023356229535405575077193594526804025227459852948788507840015299393098270375975950400017050419789809532812012568713681102825940377219222506916975816555474524915692444432982680381318564802099652977764390492908496229919664021246872614790877919577718211440765069096314683423390096781849072274813104536827283609987260049401962377782497134380546646579811696678639220817157452588969432210267374881551594253873453477617971526013841761241494139313180462400781390064314794467794955352609101472740447447507861568604522136817819106066649803422916594133460182616005362899154976467008603167625671771952745179566775054267320719407352374261787608406462802056545704289551496782659371689509652636965941395678083913351868987979151423481316818696329381111686084629368639119688683525069815296166637322366512110695409259405434081866034568235747957769854227528931096620407624762700776743241775610359097031843867360385212632805769647954972408286676145467563551309686160928640387849946787533427863258353987708624187313311102638092795410301257207383407359525268697273729289078486168975005997708316106694885110260400182778905108288033405159989464219337551793565929215647108250344454673530089648894133441834602695063553060550791181794232757940997137190166849188408391550083053831168125615393314008073362363752597181715143448231984412603388954921210375509833741622112234647212918784720427439620547692420971103562750046898991530104206439308293101230381932127725998726382088236610820766349585253821364807622768069306495933763488317233357669229542894013326600609064398632761074275482279732324731180424956125450099036029966898919420248250050719386330560521108462291043285973697798150218411403252735557013106733790671175726166196786671744884800912947177521049548755141127107849474781150586067331613512754304653934673493882594444162908117838399414932893610545412552616236709866076865374483944362268318490247430743755121417012626911165995558260292907678967930600394792022442365737002018662118709832671084805981190968013683115036121338748773400771869978720994104332944528238254015279425320442457183818617194204449819011344808703471562691909919397613903327426987272494547877617822736328159070782365475929661485250645344977390096520686429000519861826270781131198149596849395313311893644755791714922639248243197789900339222264709760398855429909870314386036801575485872685455446549465329269828345327514742937589837488863974994571740275971345782115266145419784913071955117108570384564596079236560604335680789317893690223819061538631809992266465912018402530260291029739131168621165364568202349204572266371774366446926632361533334544737287916899977817353987413467398467947643585523065502714780106906636151849191570738776248396197007130532418946899819300120331349668368215315000491582761128812435256194784696874902018323283619147260359141798441696465575605949064528133688751991149678019656572067476995958996678721430940269460069624310868132973917172167686221321711177339816824036673136035003616578032211791818219898108335776595737338015309858268625407671157442904529230639343679354977623980884597013554113430780892920915810931974287597529318628471174364742602351319128448135904515847050252147599483160858896155209365144420132704981770492476437130130134226872335294428118111051916217840187296899227222389053480616509954321034505098545414190731661178479675361855740361158186697103714415543593338221057016554217571220990046347937982695957089330513836657547344528703471904657812045097033748902660359433001745570807620484993641939261461894663636883684040574548573076317898010868556487705600991141009338808106981582165375664498480131241878447195708464848134148029493642943486866423434657888379531955188876791117162467192721648174208926599870123004911211551136477023223010617925685770938700222397148876047081168617541183364007483965012812850100367939982936781875165684288460230882622522729377021573328705405623787392373025370418238287337108264260479638630976635584921140335137108413021347870736224093434499028774999237483918047438217140140477012278658881745466558580979650992698211822753493672792778698886926102800176821680597115614105774001975520640428546071571570264214819015663367776156958922386330568797646984994730186766912299457677492578762470337027649038906152100882861882332573138076216686840655851722312375917758573502508107991637478654987428074921150599542255281899862033653590226782524125437630349582673194340607231394978391784547384968067206005673398551307433366411695544172646622174642607270068621806329428319508394721021609000545104327808053434769943132297019274250329141360380375513718254063567482268672388200451892061168138285413851575135658296589699071121926199403330224784309476143480087920922752848546939252072070474550131292789878401919424245655712898982027759244289473041579006318259082034653499494649133917812742726416496016999272572371104439850540518156044741547080364404298016927679274721737282332492524077394676130647382188106600549990319058942117951728232211381731599321031416941270321775348760386125979107477099030423896697464212974132501984769041762924531663151282581407719864888143712216480294721439914918106918282321567294341077785218714665111310382038711560684845364175280109552413445111257707790998337380240496363209833100976824012193242231999590329189265272252051745000563124365858979852395336224806765805087336576291647115157573920613050098211170871978343204970991206712252740592989171838128463684142492327487280008291633452896064033403491779923684599447339821624959039256491183920448420330557898328195127133689357176840677538714705471568753726719972561943291339584824442284335785156420208131788409399386230590908188266053728428899208197845881437432259108134493701571465304286597922496610832995178609890945243858462790615696979550295260742277361820137292375859681527397949866521734967334854553769407716000053258847223533418326824765663343536386390584100738618249523407532256764215450514379157042102285612388026230571055946686078002844077723523397553465871050097050072480625172581439434046219460977936201069896461637581513626702511603304481808169529681349244452510794475022374216771162261116310598459944432663982485661418553615308613689470252309418064067414787729716183552262127709058359526465347183761360939787174996496922421379427090167412302836891283032022599179084242071652174239816645466156449973335273699327663184219740808128044940544819756417215786785285629521485397382301583877251646606856905569232738525805602913762715185153142535474449137867646619098026821839291307623711814166428055733693411638213391210305560518080397365363051862791384189471186831839270361936139289672269838893230834680194567540665004537080711520032796619159127560186567654892272832950686251914461283518793542023696834676056374750839892614754356512164041831084971842743141672821349059011033869063335361510493056560028887197605093981567324936300256378175971718124680464882153851829320373430309243627646873354399736709320783884028571578116228522474226740365593813081488191841386381745568604490940518039024609082241565474196363248641145019577079975270203719346590658962278912634466053092463933255472701854768283089821150469789192100684485777402668708400250042919444173362974978397618873227114676762685811337702706120886694430809647361145100670070190543936009013053227321354567746280190539509014740158627247169730295962168433261458146450136689135629295515606721495032529046426306172447167820932372587317350766972699148650069436157749392214597614061314270965323777533039147669259778680593858334974471174496458373232140159670039479247304530785618021044912103422815528707807690388768597116199417200811318252847747331191407772844939446931426817814240802637448083191453410526601716884039379921653503595757786798341279716286130363989469436606496399203368591600101983193757129092475606924908765210755919607384482125802203299306786507544964925471553507732178669109768417880468054772332512757391932170576776510974598655782323230344639054324141657834883532768001585230220992560088473491050642009983687465563852310089768341301975072513276159790953026834360911618538728140406968430175222271577172379748455133258343645677701464873321697309678621644801795342686709805852053604155415562590419700837132800319088023885014286312462849028397009006664736279885528059610989764989167779431870303408037048867378490571258007972699787683541564285012425857336081593352419032156484116645113936857266870451826382805258731953280162749338453674190853525123881248832025043043238382118401983764496135632973410857244682292243761858619330699357844345217572623813051301723851611677851866668971333808006060000196130267125814070054994629532147496179827617138277425666317639283913432299125494401154497309237216123840796065141205963474659795120384835086300123758322584890367285600563614029039331889012545547631749533398301750182346054306573914887149006295643261310751568499811071693477992597737861368060688935236914713704241946639072627366981646335302733032665082589221005908933582091540752639636759585511605370613266149531502958677643447868296703007835893793645067464172587810781187843512399092170950109458420976496523246820350508308979739214374800011571991420734758718934949553879452528065603825212233204391260884678357810920470188539904138677123569855412413312840247704165513925902077831267140200496009210763917170769650105711491789139756130992396331285115490372011904488955986612492720096473915255898672837678335779368623595963211137843083121509984516772005018927227806184393662202418298124251581891266339343651022703792965893315383755455389187891635985689547962907269560211137808216362439415257744729009302051143983515823544370461602337486670416494452821867542228945237854367895502246708599778155635267693433747988081103825895377934320543815981054707262545835172610355589101694039558906584410767184091508672695200458807718874312896569696229624764814379076170373084613345790396699859427766112236284599016221595206799675966806322535898164084251898343161064345289676738069725531741067464092145102151200771568913657304400942608653170840396158434983384292567952690332860434804817227059177523943833186462898521146886242336745913768629648619353990404435577600206042891167787024789118898682752493462200004796288880776518289796878986093379527435048883426549272042789599719805429590916407535885680572970542204633966017528058806496118858492323541054871738971702066583401389036520172404246701535353117235894057515947562290985207475449834780791287349848284336432886385151850305761242892672115078202185505037806925816469765955064618526358838041184219885579210212154000179750587772454514826877948181825324629552237361639462691033506159691072476698643044020767782315760041273469841848200978186579201205486866169867100187220373931457733964624361686765938791331771781162381730923983797318471549333904679563668871687581715436031814677924399481993220337673909719382087082512653409808145669335782879481878896108367669193578516276386456398829241958310722110903718971551134058312891527521742344668724848937007069075115918506082539843162351424603167902303523701390904382410686036759132998804141519900346081543654852517874971252479497517031017309687941611448803552835266831561530961313947487813351085344210643992167785511894200372780421868613505081757801497074285253816106823583825744371903390337111267610498788188089036996451285512215083677302747655004324049447783814755521642731819101672427793667692651527703541541303479710123757163258247520534576719699841676659432110249311197223086890233817758716325274378162544941883380448707030970572415968293520945699777649319562921302875574291036459513416306026579346118923690856989246532660125927192471635706086077881695975094979034452305068431398329231413201288234841012754367175781066692714402131782678028021848784356497001909061449345432208779682933070140790281142557475208717055253997365147078110139059064094161005667767084718310365779587183919239057600271837714530752277863396522163917785101735290670608833047682624814397014927901138893507068807269707138077162222249596970616766183117467022104644983992516816996536570453648059717095778840019837809964981749796197674431627417728752364444896095106249459258409284998996206721106301482934627723094000837493729377123992048468692379858590168480323686740155075785468045021823671688644568592269950585390170256100051328058892472132303646475303099549651909645189542564169265702695688381642271244000768333747557042580477646355609796225862009915887416419663983669982415143753545722462390742873240385058312039957870413200172526513071740271246530225196327353220641812857178901896894419659396431884637551723942158983399926176745649079667304801124654151410855632165272811792817779190265897632230880498478551607574839586959466823969147012485481037298439232968847700431122332863934118255034760265579332123197260366894444001499407186920795559274942406652834411513601660047833605654426814328897038187977784654698551849955668870850596937392819753308896128446974964533620331718262205793449514042675005806409880516730376557208493682822583227962900441981468048554075185331818654892839704558306766572847195434645338244487045664372032511049126821345347128583157417660919700464735778731642086883195050842311215175738830455242738537756264884018007145277756085973457546351589762484373292067397499505228251117812407916635349172020231563438714792870149700365637558495780972868104456149905605188408490609041511223124976814442067342027616890400312591893439092305918623734073282846117239061035858402047419014425519792503364380149694949487675685487062550740110209372025742470714836551646070074364795687852931073653268849181232654897400419130123002207085448185013912088091724109974181373893134767283233482500516501292246172293693610278601200019489517184374623219205749739550233548562878983134825109307947454318821790292504582304273570997940542841099144094186166467313617130280891770413595577105574100585795365137805257080123656930540887178210109889022061750775410251133186977114002673645596806035307361119844271581180750741986063555805860394894611177595772587228115346976267479305409019420688036207536503427709622289371103559206232270621619166170325930980283232622424303227957761862708464468785146242873188429383954562577852996525769751841309973909963350749241948084188023440761176366031533744386968956172824391233381980421460645743356899745991713048793095927882233460269138817789287409405761932186680564540755692405879989642468998856243910841403937751748949693426733093179048728987728578861712747753302126296663113470777387887628886955727774752597935589709200625105146289446441420032870813251052004863675417559759951848099338282123527429377367115610855060203847558733687545479483428830033161882108637310050885243898772902584831879774954915967015823217167735982926978484831990025671583114823964283141092425852118210964468127936814796248670847536827184466207492018456757080535080503199266911374991799378970878580365975909112399804078980275194103259328170551175886110582204747689325765977162103757058389189148712727149618586625507502337838603598054381131294680977904196448860861321276905999400678250246887953156878396779890523065837357237363474165525216971445717665836401962781983184469718236607671702610558717894254393700085578082121396774084984516018047270207411779818034777326297674942950037167530289680034186768451036912345980860483962620503788854405696365368174767818760995498558387929378106097489297576252073352770379843080776707043984051306617994380558593104713238673839354710326906334560337845889230198228337458129127975252584726822273310815960027519697291017446300045351392684666546799317573105687893675422145616914820265412298608043452771679627785500842456819009315976488015074892724704338722223952868393246626923222277297335341904028458462984400565726709900877887278104961165167436997979319915313071629127324691034155715404627932150266590062054361123081765228071607546194116925770975694435535767121142091998606725451883822398919150443946057261453114726249808261760342109585320289508662919565665853820982879190197698756118484380012770646238685661858419145557942164089687212745554115787125039562494625694676057108474671059176568321563448986459654453273049278577156526504017464580222001405334101105531752344943771907732242060695663311124949428163069660124409714412472329028579769038953267497026349849972609890907922818837120681412608740090385209158635881767119850523983386031094041741676420100062747749243360644646235790828035124651749119362342196443272039857776782702899749861121341061597881163363029498002095179223412842287799213537398197917724722352401895761508105431071065958309002088574231273677446603026419361701553074494114764150217522170016661760273162413631426645879755506322699315565060590247748598334787518434190394114706379958139273838513317805408105974338528604376931291111931060137910126093045870278368150183438513389122525727737629200614392851098331837541997386478395284552213590543737792977673981754511436297372791535431760994000093787658267884363893282254044032808261246642401741573237789508945905248392463980282553021645197524388179853079921800594950452025644921516097821545282233180635588296690373569102056907603523838709844055014498733075394202115665352662869818177976440094211506071739088151034786463975802011314133942452195608911494482614159316866962662527563786172303490226570451856301014739139738864355931698216931212695117797402802228777273126230223133367931850631971158540348516028340183889253115122026272791980809042775990291240903193825004866871455753717841131179227946490114640149591208920463157409383736795162445321424528074115406429960066333180860332508852490877387613841594107852835976393625910807650376342518296239539369372113767414875647494648103145728279350742426871689230668599262034855389535095132730146184205778249304001772815861259034553234873900877897387961116315078650273993851587506884655586338561789679255040059781225961616962431234661538851443362593362095224489277736154728727161867125060444956462473661619837221362162570064959658717637416431432846394640541369943021532585932815717696493812283275190980214144915235365315454371258185501476122776523802164887090419961641640629865164854075391778575112057892210815772871720831883647726647483306967720636735715209647827458899869372256318441595274133057280109741813530751412173856697740377725532567972342919900048753654599397931364906343054434885491234269098741131505197312053829415219611386575191012732049847625530308468697186788845579101252342441444725606734528481758540728054688287291978391225511445006144546437529302942160366775427333766604932652533825916179372956769758983145850249676600641599527754460121612493957383671083193877069511855493392524324335023043305899460648865298161285597289392128253256662817550110760828475638944511928844369199058144403854927077395578176620072167462057880326725765369564895277400280871258742564249590866351483585487228513942215543067951882058739360225346973892290555134723461806324270960293328162659509367707615134284807126118415870697123368021924284343655841946338581663147707416547220494723311830498058495086729302131138994554303429887792546258346892792196159325506115249365236930127996569744530596013827540178493696513177341515488211845128940572632210645972476331308442897829077253055590588354149944954119241941357688924222701682404785830027104988830044876304893624918293688070010969563811836255685108299105814828105294861998228038138040773320697194100865229510527209290307597880348511671658496771105866600510552723815016397650299771974901039806599833755773612892008584081200935542507500509206173846609281077481785160024852597126327934013564823918350904857864743061484272075318402608789359785517575653430365479236771457968730310535205656505038853473894093590033448916635385871408903819419517859157786319381502960442907804511815354466189026751153145683137966737663149848172764108976286229059591190997198411603912080204851530112219105543149453405913513343239881059326547996984761595408663434614973996980415910755614028963525434749673586604800426138279485068973318334835133061084951759007485796188025495820828568360256192988766053529920789215403689361939249063631699120759240418281885203339826462369785776726476279765318742537218005788527451688352472489474488793949682867971820512506847721487449987286520594544328857824068097594795047129344371905563017212807176313423564086410488767641687773724449491885390665368008207317880581627233055579136459115813869563030369661400907391419944273463684239175774712632131120568061058610754839256421094693231476042796687636292869611700336640879236167233339775898289648495207760466520257864745123359073008747845288938976690214425436469875914719591923229439732558637389402080629267814170154529365433964377573938033634494397340112200216495967281029127943577416710653939137348697212059780100841302721758910423022224050742155580506377046004627381446209018931170625161982415692200773204412811597899395187754138276076918478051528810489221787297234376041587507375443775553822817934535153514673443842356682631233328542268620603684912368633023430972519413441637903484778040749759664856124199074610571516085050385099899065050568300620219890837449679383014711157473906433473889334332021078814735839148622942708434136965230410077981188231207735768391006427490511411561935582757481453282323793560316470930746929785748627629728040625009283825248723712067339683545457191703295442459427856719736293407142909226799630884156596791952185045539158383566048302421805925853400504603459611849719845018683801647851488914030014301294490341299485215025392068779827677330085115828712243897346235575788919672005542988086344378376073774125636829595830527788596313276767676898403975427059188714058008473908117368769207314343683629979774868806785085742276465324427551130190230599957053749383657100905408440816635754391926346075442538668165049878723643997510576961095504594576496461437197513989868135909023385578027087664803547945403898554667836645642587158122440763549425296531811289073712057243077058075265264842595423072264041214255418298398116991772490695222734137982867342268459725285644314302201147379801292588107969628687036122434179719309647438982633235060259966003974470304774501668689172514754803797849686092900784768435625651651846088662548059719557724510371525378816876767512945622616574272082101382779330453589535159510183200766229651641308518710211978547629108652900726482661411144048612016909788148239416810133622846829247566912371346372162287527750182312479445506018041561426920057097571748367400486916665803658698920459395441282444187977111795278685338978006523412246207323144978332310702823300234830098281131179130285206393223531876885095737537033784440372761747473448591620858427868864939247516906892126908971769458991780589325087573514167680176083978064629900837839542344904968320344377240124479199973056607545690432977138996020886728457587133490164497467465909124054381125701153954418467578734192814507436552457897475889942112149274162839024242566364834221057584071305531953141484317699716712183168267008291876223778122778694911682703552041239342966428187441643731264556379093806089464825862928993158760907977740647533345845302407808300509120245099399391398573686527261905370790473104884628370622737525095369044031911732504584584273991018766406414357110166331073225126765162771290218256608804793645395477024676666961449588410674440250771921667419707542585374956805269657858631949082075997878918365055279864794480436131144336676710009049920447821146313379949451144817818691303818705116881069871734767952184137769071077214907971823936110721959011739242469843537021149233255718619597185999687716824391343501649713335431862100651990116439394172311806347753113946252227921051855003105250189464264096827615258591398924054045449954588377505149808655442998117449343794080729541578621326755603631883688030409822731507353720588651897350892432243672186155856990518198408367237122279456236061145452806379079748605048190217634723972498113922485157318959111388984018803476010461283570717828385296229518809520050200839642158339628515345157898272157781779480634112726478825782623109082609707362293974684476851641415586160873220015862296950498367064796979133738988654189946486048812601901275001706274876742414542340963330721508845912462993678798162256911127251642750911868769085445698559411674840556345071848090654178221129554286062138426508396458613089092424803000348500000291605279979335827407708085914900968458714335552885620447277316765023888859263458397961929727438136876099621004208378182107518640940355461105610080427190721420589290611653187325262657523803471948546306882426201811608819390070759504252208703977390820872286588551952227427075256360180677540497532789945117594028752491109650067674022750813097381404969710041502161748845579188499925761517351692295280696784491062905972583823966480738684769362932144952342153299884988229893737155202783821056072807907191873146232384298965629772510439959449354304140395892795547454025548738025734301057171056941729045255986549560609808760890322210498937206336665215662660369773598718201563862720461180383118056693941947430129189994313971028442297018234583283191332438255003401048952858411919462431640299966489202592059402772139961454979755570918381338481556050003631053423219848587038844291317738852396465517579034282482835808633772738670776480188538735734210765734753276250121462672289778310760341873079338519713135425968336377757963148573657984377860589509008886708542900254493757220350785865422769979624775769615320409585880177400885076527466309899600997612981467988850834275395790645440844039218825333213395762485020161562893663939670187008184263403493456419612001827186976327241614828535363109309707778486788738041562976902980586005462196791049297617296607930485004288059975599292372027365326787064314072716873874412157173168368678106283978055218256602518001398195205239653222593280121277623328545377007443029583481867714159337158479991790925816078194704723449487230358787621072555455742459884985369828971589940326739732045542874273768851615424735435048827923745585899005061109133514817600868460100070736386359704214696668312600987290291462676917469601079494342716869568570902202538003584441764975616645702065526525286969978237767969799317241162031893784530125686335531091373809915258850974641689386080739745131614301168149973523722379889575086487031753705102805546127681250127621926083599411139038757412647286972393369127923455086201087544138299671699632891990742590302905031571351347737517473541429174447833165829834409740901636234535770990145944147477595412513520740767359261389199634160186981359350571508782605847165027741440582192861113704288377069149992444953348242199817417068594751755998317004519405666908199309797534980098486593332048488739905613121567801484798867970318268692168596839612278120409799752988211786176214147220512902239684704534933309462402475140341571515286185488201176643271092307095992483383327625082004504421336552610804213121041802679343404922180240329410146023209265587484776087069784718060783990015896856474950117154287680950367096916186682951574869276081381681586971960213157049723096034887942136199067328012444734804686373166747752898694144567986280286734789915623052381058395761737679374143422176318988686965230727775744214384202789859376150576683069674169186461570516704286936959502234629223781395271735152401812149171627941259337445623903687919827131350405911710010947327429745395520453530541001193271046678637031280062804441107281696135534246445680410599612033494353986553472384663432002392075868563834315311765914101103957314142282863875555742964670914787789317421278923909621180925587116675057700315544568794676476196081205815097832597536161343248262966276574818356962410318359947324274496671486698010039486956922591065510687326928478355691379047227753069074821285144192622643617147900286455122959076018622019297335762691856758646139112640315984986994533125959134501667376344590006003933225131270587377313835669903318539283512131855809679838056754731145204226400048795548294856626437451961856056300778438833492402543139836291778242125703489131520933857409980536541907117231811666274753587217516730762597801635495906643729517494489959167780996492358708722731888141305521347395044621045049713557003402640091061438418693433795999691123948513304278947965883117361420389744640579440585126280786958281113320385661187447389338886794770837021679072233334707776100712423989514312829292646741939058214371340582292456441695163953980160414112978402737513851802124494382139584757109735429667849062448647297719746291506066755419864610074670617528011799961755521736016929942406813303305670458954274507418050160131388338963895555177439457361566299360697574921797476315594799612610813700917895077080632635289789474914839073216303712273097028940159622269851602621855857533181980003624028280408665777662935279835111893345381760648317556469727665744787633351997917463845069350709708117370123731795717861096894277069826544310304975757510334481083318942438546413942763079786654854257730255509205217246991292057542978079336643509904921062632308057090008324203408835036687194277855066341451668095189115239277610475101962522560880903480738451597956009606416774749509165049649272021359672637547095655322935953812015273324489136072298222096125638141635939170695770280719729360565933062050922798402354965772957287694719378303239332381901340887222327584685999909395783162355350221963466169281881005469681853996069093508970138864603309068024834147739393068328609300448852133048128637067434472707781692054546676380490567580380828995713828710969652061047939401585104309271157644281622234921737173939808818426904100424046608060663387027033666854871822201339432270662280305260899773501852936922159598874944242430680475966573259379017699598955317723405744601914608822501277933766885330606245027308818214760536437335018569816720616557075809836735024272267427333532178232439394240455859510287024736832562451448662022563484479732032846713889092287219149249843010988471024689340569832070046977046737892533366007478518459374994476148915270698315012799830268780158331891602086856385041865206937269279774843265788277704199665802329887991508415637616715459860187128302562949395763329517089599478162117594701257208404447110962500806676509144241179384592029836312533745285845534614753943886299699117735026483412122695609223699605882553309150916398285553230886058198458381157065044338609478910736034027015430648641436367843066939125784375979401517504405949053948540518125720334002459844102012625216347758130477939687104828976686214262049841951467314993695062747332783371901964412834642999417239292520542391205956963928342170345223089184056403301773001987102000474744449463769650227926105793400152356801625517214814607614682935138904535337193219557544809265174827005785140108272653642179151843965857744915001295111316780362600625735510940027224639650487742376636948663344553008463153810359240852520667947512008489332982207594233070400776874946713615627927276720209422387850543732018541028639184435876907770285346626780709925656400134219731853816310758883705009257707080458631096562465216633520340526010078858295364537131582652746186187027525393796929502365517886043510352242028678898345673274294818255645953003282027244053426955860141087817240638694738298471198174852943282714472570629055732087886192834227611748625956403350276287192943627732288910732658810531579164015735678744112765423067159834664094407052369516622189869586231417820721629259050062156995518105768957946911723019607353187540570314296648490579543479334723706653285549386667752792035479479890691506237297397678849299012211446377635214621748839804122145183840510098724898457794626438230233351700182751153490178179393458384134982727350640168215585655748650599016383168213898563471160263182683516600150833066078381985279755754938890368547542622364552564736655815976168122186431015391893409067978720935589454114781951517078742094311213177854244776739429645289840390372392467321632671339835330207006840540095268819133904396919876245394709763319110152152125162607624413931963239914199586406746203498154991828009923701781085005983523464610424816907552135210538197602309063834473626168729558742550623314115550698745347875810158439065148403607969349527394782451829374057955715988290691069195050446377279093628948347291062847689301797942024804516534159833967151679440100398605170780222905437673572053912661841968576599945484538037456845637237667699432029690339531922840281923030832996247260255989820517244689666160315506942358490411923020605905021722963957066987693053987993117558920016846647697893732790531334227232939589778296321361983230131055471377352655148193037008594143015928033173191331897017695670157758000791935438670123870818531292682717641825117810658161167823204071298458564556745407531132475693085816898132104780753620820810321741867540766031441580343237195837140887636516345474074894058627495830669436675746017294500717682048768696222970483029444685361145335891636465008745271435686007741631108145029729616874134127533825274536298249869876169495174475890980187233753358643881327254050282133645655718068137128192530803256855003688168807624743868832013675055377161612738348690148386429891033421902768523396793022986034780885749759249391384399554560908898978051261264220447876679211304272077339819224979457717970926201308257366402891760026978854083222101680949657774345137451727353744238999372073535885167609442468361644344165188223775323413503414875915584086024270018334568304036609707268058136478725496019334546112034379619017875874274174777349493475982868352641456696527068816346887951683540510267561713273321488300025361858905523536999065456227506385307959905385879485465533219083106175081811083806496031623135050206544347607705749312266523525239031539878087765798717440679348700470659402324701242792138327078084019865568814990055929691341122965853602640386190607722034122032747950743198930872762940131415136349211103433723162857361192065215515675541553027846160604493840635806416568813934330216882358504221643832040974248384854080398446295569568533304146237265119866394245913293837103485443749687145405873892860308479944713904772805841558977773657113849432783333005138678506088438921398412617639611965512882449088972336811140439044598549641801390467387471055081737696999962246798509631501754251127868015021906222271811346389274045522342467089250296003606561889720382210709830929266290736551357657706139410050739953478553288938835719137630636596202620194737705113242102946608688748557230247487221048463957469589357230979326077968575726503582960131006308514494184784492340800202968114420904336097140980490518223159491608375324943955567555011080169500992531033883313567775173189835364953450782250607399699577482097103306519082689514553267571177390085407952028024073452302580771975817592838739346271565327559678223462868528475704665937609080717347298329414859136979193682165642942253525965740855602275293978498745781121250148879797148329679736840157438883702906425617272927535643622024474327450670115501363076616934839734471594539478053280064201582506057660365147070465249009139691895064608982608530961518418861995027111353533128170546815746147413333015528053050486658091600308088196821439468739361756947742628715030575877896376444877133419001078339300785768251592746283115243951422148113906417240407235477174256605343012316226106938577537411226557304725019943630605364241359720147601691806404846013579701440976010692183910364406856485417704194205737659923027432464971648678052500854635898185480488644917612761653519863273449845174667706750821549675571532007820525285087336482780811383420742006532718144928049271266779728160270619424701225244835486787371422022402067297937993768858467228046395834381506891155596763648592224973887616607818921306314185566336050902484390861092446332062232706283016156640375202546572980333612070066647022443503020651787232202263326908484414285699044736297200618414602478020107807004761363505314705562676280366994799602020719877362432558316141725367211903076173323542910007022140565542890402855760360387953401450758701563885678363064180135477290316156117283988393981874676616945031967291841101031965407196378559994643353417955716269837445867145424938774198214065999597955750568612621339062426036799906212241264376765391257755863232901408184401282252367059268236025262385917966295106298236985916281225795691280802600572341151197956248585970753450624407640982297222452514760764688037462800006565745445534402025177794182015033746368448645378181794684918725118027456963918906442202006042373417004243192503295509624140817595824818534748155038428629447273772942965309157986025346368941761324819135623528978846760055410296082292820682243547027920774756361009306105866918856568168456065877237342871729522945518751096866163262922287753667303022809872045236879876501156635103887882026807927653193958744521106986392041735054063064727887536835583751858435700095524996844972461227261824834795098498321409448329211721160667466336050326327309265336541284841874416963387525166410863820687207438046142897265157629586459006518632373870203983383420541653220707695887970526176415618837322108815443415172926050467598723242640710225824284633321647204040241830917079491669871734377155432047937188263434093623406019975455134149220922682385603886025193697501010801851266870828248229233658911599723474749235898681043216797371991019569440414811851111933390069441025404738864503897210018985312953527039641908132613965692952004636284131032925317210786368904915647784184176344304992797989771112232548442020756317606827155636445112759750154487238735797499961785844594673717563710731439844235135179897028114985603159214132882511571632934677041722010742246366496193169755362217004969254122387570805233099489599858734368570954068120533404899936144337405896273154415198953816893214273112696575183558000231002797238296377579491866000117973731754061449964961468114771212996285898166711620261781376115030738116640425376224236955439935183465709049568715858806182325924947516263483600956036054287880737265166239870580516066810106043391815188399162008718172950437813669317846080702898164664743452852031114733597303359332262347808353165568239623393380799719866193168545958533405532843790384952108801989683506228829797817162494234223478797782408155976199908207324774975856677807586954162374027142420100050441676366299737707359706399108629714175608775605757951048270679377381825148251458309209569594415661068805600355084988693175306220369392168361232665092512590222722313249221499392200700741062954111379763177975310676456259264897879682450220125646028573340560391913423722644032894631770014330763451721660286989853107282870966017199338629687646243272287772059916541207399643494879256958727410649000228134756129915935269651915941167827086354118001327397669581904017368949159735788366893242633698896340630790054982320065528709408229275084130023189073138040205049211649194412216554312942101079281240946712137403724289268703462960514017707994409782862523114233378049812210591748255906363408547112366455066486045215557562149282562657074493803041287489712510211194467792575999429260022121146007175316172303950145442118666918707978183420679968015274940334037441311767552534323359597037016228839242218050186219279274260981748610813461674282694230182253775315922752353084541421619840379516272683810238547822003662219022039900103751286439555530008625587766558403513958967978734809267444148620173641863434853624711775942898135000369576840989364201720730348800022345719581379269328135984677277642043868465148099621730388703346146331160644867593296379519268549225326195561765411852509764807198814899780142307291883945076901762771834444232075934605886651505156421959478476236106933694013872289796624998015195369433709875602941283134245169269543844778737669955232146192697516948180420279284463077408519505832865383265782491744282188296425862555069391530930089158705382891131555476950613343732456220209385511949333178492688142359035692174658490589447704157463533772007414875176830683501789028471531755955968447691021466758030132017839031464825397539668594391273765832476607762221292900929794894087792457800136223814273783848323646048031179901928233715484294604892204497266564088010045395965564642324797506118077767241782508559816926141411296744223682528553405026489468994303582126665453272983372007902067403097843002510264441949299260208278886107954905371391781943892664476520906198498969420738117575851321763382960970210321940048619269372886268159553551122716897560388215227776390900525186727519692544744920884114094981665643368943964950497803070555372022691917544564460087792936279257788616201261253135918693052676567841234580240328559414622410818249287851322971902209075811337344510543161744767440015710302513020225892073799661899814497356226165338302052426591875727742444913470922554855489076374600681821800809793938625073680499710129507278602459815346904846037587164758195922102141752524710075634519555370995850702006888420586252353297899261412171729683236245625709718714559734667893040480699365168299055020898294288796337077830330637357486412161846235292027554430307793209813080360786352479810333858760406702752779926273390499714033857322939710560395097593806007026559852273515398388713170570167722398051553216892827170428025879152089720206247133754318687598745226927622581406441745054558012712485949159465862612360025238757468776750957526707775118115926265700237182503460543470777351571167367555552221000525020079898505861395065720457524677051190910852050741422554686613447783046023196134059681292179496710474965608116390091860254375052467747491941081699476852539508786361672044892901382073212602372670215978517886106374340109069243240973752474233386848726405645279791398448406834628740006261001710213282101941653815230181257965788502470395073801216027091000614265531321356271643270521126338463046934355820205090504968985433950817354930777786870898785945654725777631398776211177900186681335625874280190871176037311505981247280594994634712949208755492573647666886340104050194090316155006195150381011435889579664014178364256221661949815027561726645816501440387825173702263011899846693385739254691575107781016836371731797695047288336207367973668777965950581839596524137506697175453633914263711457664958340671595898235843128867662215956944542495956046103314713762983780654766510693557923890243135008925837847303503122065101294276438426336378193391989214570337196925334071786799249109421907495292411109452766617539059837181121088594211535734235111549798522659447417602943903430480215554538908152105261960056724711032130323883593611778305434781918975911897070284525308549595532293427421383091540230697401273132813352841547745174714427823363366159197674524647396420535150734450758551654037135017573417181165424767326186636536186237308317473892613695956064048746555834189427294101851786498129015799348088861080360053086733831726150069007897035722746314439280309758086286807491581793123391761343529497885333237314193457119527737490508336188152639238327159037834166096616746703290521288075626120528176927719636260491757010458452889310834586157180646615130230803745345917118445603242062633261870400954743742410089378630365062679725748768644014506606158664624953662775970571205183682575775113942846890960909266419154007145523774793865689833509210598800654672514242616657322252625228554345499563136106002078273991103180318048344402510615385019097678568213695128107337199041143822702817500767584997619929189953457109212311698429913693014871563112332837905181232770732880997703032054609599922305532203386532531717476108708731626286525020173198348123857480972693013861313723709557527387889528893028520099110343573806317721410104052724694027000999959850259288067661328436737715999061927152991856914456330000966696970902211246875403319547875680214968456531209211019351091547041319972855408798495870765757716323065649448695581901528200628378475787837958635125222809608870711789913609315857976568193237029872430266606763213839914031750962659175025024971427104731802105150271237452723029040752722391158804873111498495757754700937041676947931137736837900101514540239969314634475852274461267563517048333160395049050805525596130891779731197323005752054646628360869536717318590537232161428823932841511467299982160960960370558881543667124326552841149041675188761196563291440350424901301414179099779671254710266518114279739376238819138485566766334425092258891175591434638534707048645198368911041893391932929209612247868736583163885565027407440093950301927268039220789642787461008268889188518975674416747986620859796737774775052381743394197302446875699012496538299598609189625026901912463673564943660442177435976077389525694983172404337592634440619130084629879833553632379002376074641391545942514065291520294549722393106126940560457030229556533249616002411954927572164330845677466753012000969069030625017992764741809014572412162317221419244788116035298786031203160525627098421028042163354229826489394810931150836846566888267930810588809159968544362743467986874762629564091302112641074223795590296091011838508444287550733604114198276328233288894385837131940070751878165190294509203595182446420515599591761939894106598637271852231770988551465884749272054254518623494271617601439335901964970351763377502116034109449328292618112792957172978026066072488818822082519959106284917672019057025759315266062955084332941844680625944620620619022327683195620614964038383242090700403840703265673978777816223517181802731884976465165998936762854559622839690772503880688115623281061677432399637018004266104266460720543803719182557985909003994440724331440122929987689170290548117361374171059233800401227042367525871860407670324144168274253888375331221180886554014087221491277914686178717875582244482189377847759847181572646547400037074507057866905866888861574458631049738021643057929808300751163422056881518353034443206117156632068117452459648668812310478487622480579594005334785942652430135700934638582408428002063971416502379629971673108881390380972183975481649147656760411507516001219021992510846948268300488449131850743716429517906302702825703138462235594137255087298126582194955572391619661496887160788518803074400190112681376527259835067237309037659175705682431969814607010617223249716875818052634055993943600172798040054400474000505953482278677576258499033147346577800038925596832663371554023786170846207396921577124550691147739265550788899554993187573974843543539329634189861989187504578488251327778022583307709514689767063501559925729815051640648152436580212966994074609745547479147589484282889843411595208916092028707642116514213332396212585475128100587997998281564824802477518642470558666682127208800366487807425635019222601473632656451220753540369378643178684346865308637907799419090645701157327402329554507005288616346415639484122143366864478766825072129105221937895443630686885593037910816859488044252421643736694431177529031668215646378625106779615231801575531080205643468602211132747619667560396231048928097874429947692969241325612881449785768579437065466364753039077235385024815583286867750309894548759185524022717479266912500670627074973047865240770247569932985488629863467092291244635771567869688915797938241977590015338941250991298689350095729929957225926223505196524491500059338857251128974654446834150674893398847126055151448965869852860959164621678337280900561902352765046596561696917793889493207265643054534360066937625803915277916901409980300606478493081956298722256699590549854641183659403158795667863495272934931351739453643186524431688571543068178384751992087533942738145909840067063773918409020391836210913901075560658222379590481692857174890121371020987093217923126042156361203079148126811259984631370517647858861649840820638637991661077633702273294620093915192335734593609264208134499006485655087178544180352261435215997059225056951903868394413421226218194805911723300074628844854387368369796712938492920560790475507978823625741683431781748252339032409279387055978522455746859531150441610690110839984020353619416303115140828150926813931577654842190867157712819187240352718712917309706245345165595504997273535152475732757265000530175023964967814867068486935552631383412279240429743533789546664099339786765935257903615120545447446893661092614267058778644736284122822900963219345989965156264444330984640916978030543309559580827878067620419226630360626320695919865655007107966819868513405898741870885088781669984700945853827522125748146298955516499181049832520425845103849377393034263351691068935354942876478372131814296835335243377019479679128651759860696339281800338492612731520984612871794795414764037835291462576219495284514572542848478256580695351558881163282038591656152973630534979737617392768063771074287305758275814200295066960619742677165412915891054733238468192059847052067693518982423342747892329909485528638887173875230144028626746429271384865208693818202634476118582621558127013384759440991228449198053493337736095056809681864060074921997363303122151879608613211287792627844538710955746482284626415646552785736552486434692707918561873410752702891274530579554526666581341954931877284763857968523228516476853632600651623173789187441994508950755213110086622247505434265163112211471470195785321870661674964662470764279829482925983604522016491779489850294241970496036841068335898632213828532853781836689996243361276727312485640510401041366129025834116028809304169756052074504770993731431135696864388317549144258896170866736801748896495421131641998735874841306331999183805046660663350473097899095720779780390907875426402149124035050803501546756686956741027407852216279911605166042122394605706193616361899669896995700475033492619639788743405948016683132717301680268730863760486240601367977712543849615082836800557941048439683625577304002672857202255907028099497106540261197541237537758392317272364856976986038168529600906102589654514615919356746272404025119848825056789132724833023400648056661295799374204238409590047417455655218871223086178572987757948900417653404951393658505706242213575954552178244717407208956711588237127626131164060809399939119018568378921134048675556698404431808898868718582483859166262110115959568868404961143509922322151468992949267833716624735141169401033398140633294156085563091711936384928791065961426915504427618872969224669593643205589640869289817167272635468480318991903368842464819793214624749077266849619159442624217974412563658982273884838197185897692738118749984738089964553831005424376946787515148328386634216024767386850839639533471264134570518973710437113149675553443601662755922376334912932284274154337399839276029838139897341019370109807532629584001191075132593505705184240514361359147918589877893443752314635378901799652604706349649092754458830154249157418903854125213751240969578376897206945436214964037055027164104410846938833659748094504025857092756299438443743587239347714464482551364159406375007100276722513965183874681222893004861220592355008848282373163941506473814352093878462678108875193586222488164964307504715293198027349595563431285161402451637031935511386573523138016382535367693221294622119209322578808270766812120199979863966117797340748108479134689744324625570458821707012824606224969490280631826344278775318906932194062545626961018894573205088682330664989793870362437304366470543749141414297318310992674537265064336918969397893320553650049447080657559898398275214600991439276129595632242796241222370449417875597352868915853348610169846879157607718681740356011080366981345314064751533669781555714395899008418036585877341623490553785836714808705352711928869152584912053757057372271784385846040706566275940900427794846112071178254870629747500923977961891262192033889751587869407763856411923168543017985313855288792241036201513234768585367319053473449998208581727592028671459456781143568284334579234192177376791106667518209101824411112688324629340261480839674458820677056119545801498407226484855533687833847989554137225554359925426622518763172800708142985522924526835116549471193334094543076489870265208916117678345900183702844175294404668196390254119694106229075414996159366320222288012880225444910834094301647549188437654822068250642552586311595565746819114799233227808300855452631230275160970296750453428997118037479034551651816459513399257973911080969468360266050085474650718215526181683237676814208080242002093487615345002571515708480209912261419242176797055977498379919807272606381706412125156202777165354969539668127449337520906587552591727084209435022132128851195644869728009306000191470045784294811424063741530007061271058992818466666755131057850779280485153739149088017479917110014256826607986834381883908890071379044693556089355187370528736144064637211631610210465561986835750028363616564689360863957396385838923157152751320125092427525557284076847816597537529484992663157239082300181486012461936434823382466147540929372649053684012078867140237620249600714779037590107503140228602939818750117059392454530724133374513422335495985497414623239530403641215041543961981060278975262157764671638267653375969402721421790372325192290392008270948699660270913005961328481367929667598721071939589908240284820106006281648619866555719348253449641775230844412887764078863424229199507153456880130580272116036750194232186189035208172272055622481961679921357995797775684929895768241939800701641173809927933121824182065030956463173117500561881452311353834185935286814517757229703564824405317701881977665197346255244021980547500831430074426006263194811321240655135855094517908591513483950764560796052465043804927421853724253676921817144855371948356137223116432711735134812845773588965737177777128258436831324499569680723517472022911491993821472216471790190723140729473613371560215632322680542803810205808334004867988230608288964329893100648583708688692826510188893107784817388467616405213068248031414235546154654076771847558884801632747006643006774292408396549411032070276820965502175311382688157285618761484631236074943098283719745450380875430735875199344122802975852071687388504308134569488976078351135136585838864091923379414294061975179827668989036639883130487646612767925906181453811572028454312241965347352613517659645713257453250968494337014552856831508257482921831638828605154462324769287079610408161562594246119966874980166772560435895417181316688349276210904992558470976411466763188338261724390350901170908770660485444615159238129561835591340752662319314451708727179665174880654225670867332926161807213215113415804655644862381740350065798017933576075136707722996083804352910457145226990757718107248448149427431219122730360209607228427207388798359867478797644519627990148048594744094113271489332859067318584863265113173204176688309937753190202665136204901966380369427791699868358262966097343974690591206273199065085611666886957553914670910677536628923979401855540361249038245481630226273535791133665077696487492704499623055636549784710497267043983812490605990690049492093475619050080331175231525977935108290174099831820018840116456840780621496757879015828327001980403910994778385038680467065373653760250765018476573805858102239362774056021051901537512692551645201241774650292774034596775706731637118853585288112216090720964350515952276671244395366108040786534905888013102788209847771062231055060503803271740629469452245074133017608661651783822224366962141775098272345439641968662263843772691107774374285911839497211998873001233716460807024383418673132412185241561225214320828076481138429745671745061839877339464067811494942907720226802447634178031720223803014974644630531076415810242070477064317957363361768677795122714799090122157520804892769883419592551297246808913302010898249473348468661943666361314309758267653437512818206126695939321299017873820062381430899246650787531836599211642411404323816087370930529699520969372639925667514667226866988291596564031355234166211285333615457097756431480251948246110104711312460308081822941741394277036982866226572854310396305104754439694701411575554006683079831973046412776085340877568945306002105429490106286619889361608761883824243320310250563137057104363118102508094781446504878025274962952657565402703134081926966502932502185029158824140839534979140588010726469028123210206239580097671563005761667044348259791263285136926332746437057976929242887994820183072879226482171994093436192700096140777761539220518832137717325239743263842500478047911945871628638576521337533714515786864878513871758854038527935303836885584853580242680293480672342301049364519737905938214222288330379955528829847617194446649798625497459605357540044925058283245024011911312858364274240660728908809024511829870373245119837923818782450267741778111497344472648563784546847594977919585290343456211030456150012993277301213120063037824928563006470339116437072099032505023481022308686264270451968665243706834373013434562907108233277624462640415713916264013111383776690162662405129612972265988527269487912760153288208291814888752649030381536218223349650868711466120059186796860704637124994665129559517178649597560229023525380305789414232443949921256475548538140531629963286009612675050831555521090639418984601040022783379110283699627921257962116588736240415566365109201161803749729443195549323551454324173549149109995006625939621427366283033363886761387418597297712738570557591885675856922688147614674300668686565863487243029064050399179802607461647006196204048143508096426358719713179267260197815512078573109987087708131346949105784374136623064408218506999507098452366261649317017261132667795192729184103869529384190201696366744518885898343780983098592750793041200778555799272443750359562076839624089833960172449771844498943167464345487081205232787327442274884167903353840581282685541150242471900398836402697747815529053359982697663600373473496997649148767170532671334796006444418288812775993080197964725091404666507223440527427591832653678009881199683326956219055261741622140867033615405700547878361658667729736135890485398647868497758553944073064758280153054364509812730074183756300284445996725300961285950139756767932343693406375550097748395190700035111287996105576598215912901108071475750151663580727220563931732687990438696177519459980263646314275568617707957720663034193003866487806833059370770066784738379171142627903487206440962653985038044445047757162349163921721844757020463304514715609311397760976668202499797067941169402805887789406022036587393792935749667203826609456487391911837790835947689761309212985614966933938506758787184724638110365396128936615200340346192611376097249205848375295090220436974188646192893046336624676959140825298350742491061839042595104946080309068238338409120896871426525869813402649204743836171840030391543641649816792393341979983173817845948866876031351560438366801485235905832963519536794793992967657367121764975818858266935718054606682381954348075933134900978293899120220558593787975256621120486509186547641033875751920418240985407473006318226528019610942243601634142314899731276485936621177208277300045272916303893155506170926173092473560611891043669811308108277063650080055585224754450766816864802569660271069658335139199709172236386218102318927896546601805768139469096961706800681521731801395065042670643015301866946175302595464355404364496810555851380115431036056098378117582611478828691693057618989238452227401038890561317140035415345156168023366933707229593290234171297499271572429744244931579262479619290663930107634151531462457648762560254711967919775067876362171450268194281367021094267798203901132568106292049643823383788280636798085488346186592293975076097901878769852150891074207995114370230023244530365216803530424016781727557993404266354293004272840727846395037862779174121790205156360120747576980946862083507061924496822365568918341081295431979016679561707450967610107119895443744295492700632697259131997982565469018801330753626676062129549549806942976653284180543406218336154359236140237910493998681348774570217702492903398448456004391814004723891602462278283169619906804384348604213108604364219410185949454379761241111754481045001801017888407703776890715081512431835925160930692916743447681051768720344603201127547973324980260835577921997738129402253869031899537204538046234090014217204355323820834062200921919779350073325256479542449472230618361471576737729787484696882548429822358702832563079561370974167703593705082294261026645641563188315166203322570286530779541430203536468346059824328396353423118182242964802629630800066887530738653731700929943691298150823153904867188873898892393948351208825933304881663785339154600337518048121668788561802807586554712550455064189936701486653698593654922512415404850884375208557342919770289421892507709677435798430843259518344509812673364274138204392171405419187037621510681797526370572895915234807811975660458880956082302972323631633810317187850365326008593494944644676679837158328795528231719453421228337404181377540442322648050755775507502977319971671856267074835143611089268414144143880425867542330748998399160942901995154865492040262677880793320503981772888757756050097347278600424793479313142071493609648252500294925719436259741790118962178498135411613757968109277782188139068835907454030050826823131723195393941900468505653494077742783693881474309730821503182478657094212864685937533481002778596545478273460381450055675221713189974224993836499867805646401631095557399756958715140817010982945543897672043113979958850787532901035182004260388074497501112132489769428018922076242944851986223864287164962052558940455954892276989907200980217113051127494544329958848031379471595598832878631579096828244334754874857252676402612016394321818833433598572078051609711786197679198849927293214127182503711414620029313745099029438443036737193152853156619407528821482511118902220628239208316437248816634643610362480297457549646557365484384481369188862871235195564458073430470197176960231215739663934430097848194577429409335313643365315122626923071026142497704759438784788691362530571829809537432703539279286731067689628470154525268172201993906325846105835363335165305878388293390033877078972970658387069119400639080065103912096407790820219897892377260572432874055807045431811642625274196867102718347289769317758466240345541448103440147321873119844530808673868586038809703768319136408121484418715829435561782693941616767283931955169976072615793496373330428907799339974686325377514103202922000838482598559119194720992530999893538985396068229415089861431733425091421634645999674236277731021595202865235221264543995210765256843922618803058665132582258393296488829094855489349456181398572028621308191939634636412042857723395042231086363798192260623271735134663701671919108740125720236173485228699424649157781596463829092096391602544999681042237352253389425964257947724664666705236469641150780037438580869594630084463344478331328526775071843478286491139336339031543727305743476854652952693413937079553399994047194380105799978975554347945049469395635452948890541197533114521812196276272291437500319272962064768945061335695721358147264237643079577614545796091688080524993969356228041550516971909061784269468143202978331267190429625553615437406988814868760315389946012713989824868443592968197802768151019840187519035099021204018221843315078634004936201972217531463677605885335931110094805681070655677995065831781769748028860720444528032029577826959571915094076928839495307860102840301136638951048136746538342259366780484781654051146071786835005670567674236709243721710549447321137582493513377489348851373593885733186767081102032688948610665213891343964761787765424126655581820858062416115302642156802668861819272726412996975869805651044508475060416620709750604106592939299015464674761666659503083514757727184251351358393268490375040450824557971529599421624397839240048080268817219572223436812649066727147715558585747501588515950155008291425979749121870761731360284047903338315256936522601412949293065853485777773055043539900202044452791903386743639506777135854919819607879922137457643543646498707349867193696373997624379265267555412321194834723702588320010976697960728166544527833455884850543065194511622154877514137992950355072508609324103117880192522623043597211762064388644549225644685187123741652924171073587072155431478546837171021314168187392101161369574364815530250105451117349201876539245198300850908455782315533416215359945912738266526864154337556779224300052576382084149645201779410445316152674096969203981674430601637820516612410254272708283767520685931339325859671659348815486677842471376843126790394209119761764770441624946922425679877508387142687772687597915498809607346598888593604081208384145158921898157582927919214037730424062550663364168732952002271952975802563795438424333374930222064502321047430826121194634156935178320615800743882713886060165756994157795209126670769095437522619551399649334884208800025651784723945435326451583251807418916373866747095049706819678414827668689388383028350532836529221041042822865920636698549026541346346152106134018155277151631636508554572053243477690762531389212428668820838074984576116634535530665958090348292689295979496924540597880591533069264062639660385607232636984761065797914165105216806505660552504517376873890513349081672785196749683805742713252104237115985214394185705820424267826609992832096609853874760120340343555077318101346238209935608764016952263897496457138497287968865973594174768967406343860757251400621003326328787065839898577057235783540924396594689186853275553929243170424352159909096698584609439109723464587694582991506241835205798580886545676348774157406859463605616110106727982798923386389292266214376020512994245395210193838176641944071111250750595147304610194491453974148823934753352632333622037513724273189616552250588610678816792049348575278625725954094677474002562680372119837729792278553737456060114968961782743131689317082321267658454718713489307985320313576475188334009831937431299563109754383990503311875773742090607498215452797429216559303373516684186080463860997453896981567660940909682343805040596116951183714480314787750181575033795305859463921284133467606031871759075945572473170536970488536374499191576453147036922733194666421678305264458716375934810016821026200060626027701546334230888038282356567436141366224856715160601738847780905349759055645244031876962956975841347628848420027491535147629013719185247929913893173993109309420197105664842958636917957056861404986343126623398818113590771785873957465131478864791645075174678095897905878980190310578870570120302479037838954633468303236063612566072649932398234125373194318939477489085580747909469349853159324581237871287450937007585258785808464200578176955863200222762660582058898503599763248840406334228007466454889209387254662014035804789249104022579313791428437638746894469043030148593423697453833236825290250877965243702534419979926105701983423387052506736008002502857768650458028244924762566739224662270192368921770270744869400773822989804175480405052504883428708063132373158684853437091443214002799977964466416778931825728054830033755580830753500333546397458768972891129368273258039259086557153987519180054540014857246576093019484329218659847875973933484631351078132526429020436685091228371765587261298724523485680345229810930288239861203915800182030106399464023684531222358735167060241872979453794481892266376256336497519660547172268598925756260112917844764582196836442732499674531509379235343679586915049985756141270180744691823779709762058446364653423715908075912093811188526294169224133367090479836363293126867385766243583363447404313132819498499617735406386560721607241559935328639524530744063937750708952104519664200578528198453186505914970645154948670785571437514870895094527959783555367177910062246917071197169985997423194814200256981913881418442888309809692607540146307645959908517386778161402588366816722106013765293051204632898299887931999389726745858551633661641131954756410183744908884541301308929319080264936048200645727830920313766002571812147439604034974772528466931111292612177655891955336831575698325296817340634280956872584222237994178659823590796499476606649602000188466423656800237428695266163808843647449173111357264022036154954285738679949208705050219442572249429441676029619340105347233615566530413657837196471303800316643199506190121141691922791762371068355920459052986560087135840706704046275345096119773603173711017669523440131230644597609040852471165596434694986064462588996982519921930201647605750874309904348845562301846965082534327605952268634643065137734342825259424512742242683059816049535247841457262577714402229881966232022237246811223777358917899165409630506499777983100179861345639573525989136682643019886518718683221946527117652258409147596751975920903421694763850173295827094887721643533784004744583360381521176496166505246588127724121697607377779477552786505630526227305042090786654960600036397618460234087572823279573823365962026672912238078911547657605645093222933372143142866231094732517436559386578097962838780338814764941285336539394180595152996737773005622162271065670487646937520007688172954344084711007736985970461575458625226585319124742931203065590047268504808741555492470722901112546713447750470842926792203849996071134877462166201515582938210138376234232478646831712765377655470545791797231866654092381572518559459388694614678100599667722419971596664481859192861579691932983724989815756018191117066111405273619424461092961459911286733093197162583553025424646320618836283175565333871322718475625516448314649331348957748645242914868770914408947541486641578885280819996092100425704440727937032809533436418139994596193155325042498442865030257542246507726099831231676891593653208311125320021996902147932600025785063922821985637903733593816679728820586411976878617056980217331813234560460602025699392413041667809950133768127126551476635508621095929975146601402494935745228892602444507788275742696536171295208635639152374808821016540651094979332123177977497707270680003155592738210604412749423100637654377275443563267149050923842585897607358802519858660659425016394311745998740067080126188009280699048733679459909262855317112404774262222766819659946112477572983972116872614172794265488654749173941268636880325903201493790136257750240307305784132865774514659358075173439980489884409514656088779209520675144775656660383319602254786455029268847751981568691189994674692664690212407054633744269411647082175606315592483133757816578171502291721784916571324371491760092474478372213630434345364025876369001142959566564587537461939078295815400481892932950411236079370068671977569052038425955550812973929790843195937049430174803277078547529170123677522458309986828527904805731894939177279775422964792085315318064966849299135906664399298692250408123821857140626899210511810685226357891915468076252550506107365953722923798452919664827399971504515993188065870818407858712324063948952050616973904104120914208005680105800162654793791479530082971589028443153490164057623662226089176515214742618060414247491052467566940630694231566357600027863819364847107589547347758346825066910311071831654684226326912789029993113233425347945516669176278768861872691077403835627138789033906751570626484502393050812505860341492262312450060712242961212598648447890933361467008499444257623460521034972164096315884545415101920267711167928513786304758833017815682134037285028580003985437762921337320088139194832814681025023958498303482657494049592478783031346393868619528662937431797510863565356062572061903754677550990192347282137481212736823259373107282794944943190583150982520029106019228486351954383489954297816793633571760941978694348552579174049499174473490852331734866691597678034633990313669143746249472633574052601664283776993397621960185338066033701062687194117585782723851432019785900320771370714007846014878775757826436722433643364188500680851796607699582886938306080256457306955700398657038127995544005346572191928705544038132615250152351282918121986900940992078011386372213303472827822750308162300296132711435341371328487887744896881393401579871056242195009476632008177440216963170395760919367134975424944601946354903261473679503862520170853370419196023173680280079549218595037316548791638610966523592773644985783697229634397347946939352347639979342985045000063876442449654514210970901524058417760642572275369418323257076193004156625112213942401417776236275321747147263041183509935884674018443872409594763025780977114337812014564892571720438574941646805652205630224704004492914968961340322843771190917787153953522430985744588263712035994213005655656419099035810644100763308681658748739561763875122851032479896411756876468861053842498455630643899335236992002573550481258655408689964972027839507690228629074062495378152123675443404345343999357361164888167005467708471525059439629222924561179672569083659459406481201133626049148415113639278388183833529308996413776478501887062725651484112193729891070413314422145950643805571799910414014077778299940592261708270617047147687616326371545002448674354050029775318931971520381708987636858113945201675281586829254573978894896860084684698589820444313616838790664747955660521061248268236636434102293795317690297054798019360575966322124779066134646793411941308283106712901055540206018531897447221812956747374295929222286797337918480282108189925060059984906085809612413620976871079763533719635662128014217143632408000883704384467977088988582860526791236381581949493664434390925473709761505939200821327888516604230318650234116343378691725069104659762187952013456166621074165102808148617916780568782447997984204856863215810262422141350137089246471243059441418345664341340668544240065118680376983625187831198825372416313918147194502660616473709591597992598547073212160460670930652723140927227947752213935977078290550056207894766383146650193371001028466359335742182334545463539768114445892637458952226966646082172439124217353115470840162035325050571015856095393333168566845062432735060688745966283973509987047750678582153340652382777526175131723589129415905334125774096243270276053329542976789156870539646201964946919064958604869772317580731082233235763881456838972834985580099467096664684322140119745308333100094047522972338171953232690319886642119111621161319089679889223340276547027291764607100879379318325492511919341296272321657090646792708903507962467105773992069781419196337780337356616671089545483204960781446439173042199592093093359881821708271842308826035828726493046769438062777006618001625312324152529424681489179739554657523038325842010978040713562214560495840284554271739320251009553146856344537013146447619613170868681167693293913212071705966177950557600501134568010872766558882004541372718452316204247024270627047804818078255568486337949915919263382639829856809852965385512957893268112867247615388609674112349300143222743031795730592686358380798583572187552477050360322153867170925996577693464517467376191929288853082890740749318938896265880176598494975287598139765818351379475276616163649711616856166342069737796316424563192948432766642381739076111061121579738325604255574374978434511804074404720514489069270854511208459807270672420438782860211201602565983841976228183822239568519182379394632067658474883347392148492458111270621622210252834139062986039144684329146797914706263612737822548231944996965919282301148968569607717229015145116251236156745873087497588896129872392192939729101404231647355428989867999017333906848204606646936656374210248329789970239108386018140213341213432257749090629204664663795358649378223845317270499392623834224443213232894927469205504489181420750352538540170767036238015869859842754855869099526938715286868853897155846475378960699918321247513065400441697346396947535986677543406973112720739616148258131576317282629654304566084836577946716191877238700634276682806204896756412247766481763280401891324487039324228919261373985248419324567746305518044283545408288483574923882942698240523711140124497124531810066959352534520604397799519268395842187241199493754674338413938663368487656865123829185811248117027451839384565132256475632178495356694333037244274658077580237327427511213642423319699374056387082879129741530547386882281770035275970561546565996613058046934555244739062972902432971932155582099667531066083200930224826946891296592570364725710390348257977945286330409574569421733897734991030693070288000344054131924133895599396301885474925751279691756095427730774990632082787895254727957237399778823631566002778086643970435406220987137942898132697100025763537165021902144954480655316517149100629366397337459516496385307103646268628189447799933254744053142877978089688815757045511908390775790936337706906929868758325766468195022762967400490903119021134544431991558917605537642075091650380640612348896687929207434820121791717436943498391375964635390590154164266454512837008546663802684874478001838584838893877115793816771140535394380878957209198665458592626985963336773048374469009270294109027642989482047070779238216967127001369898902973487758344534515599668807935027575709316610685013089435057730125834556692030321211927082406552153469728233211921336206465567092978565785333014984388841869113664186836644932057121502479467026296082596169331095931047533552625066010400527573918177685606898407159988201131160007753084264621239267714034210945992797442938039699671385317942550244840934157535139610017937466857904943077673502332561933366256268775204037931121747840364632370793614982454943913898202904677175325277908308134383996011515834256109273398428461573751713524878545043369955309471272786013245541462428710632888679582081733454406987344697539453471866432271036742042317383108988968173797086518475580027347921161508440888212788057053620685307475351523699409111473454123441626152134209197954021298023387619184503934525684111734945358073888278941654738591386755816972069551739568756435740672997121579786243176093203707142534018089993024465709046505748410431853425662087862509008495329116106738628546066990980534799267246283470724198495256640387642020195538214711929518057542592040075958471524612225393507886346990812017428016719498605487608963128880177183183578000158482876283208634926304378917590506296635618102223087591394533153140886198969649168324147838235161809660704424783923770818741691598012325379351780783576989256587465828592061245241812794374259597285924457706710290899091432307124287152722334410274561489843234348212782349561814918230231037546102823811642045160994786089902184045826919712041075689903491225813011728853445449794696317738572562209032269655461878311502140195795374002046260583967848515062769555297294496484023797607635163762220707134942686611890018128006702778307015421583828726431297227596557074969384898423763593208976271115697993605068437927842311085034364623840223146716271194005679066977794025488570835567703566650996766378225027785267841862155788536479514699617896813654689525622392595044066890128227859767555011525634820286334606928327811490226174587156094002729800704606515547123775689916588831105544431055675536158962413274010412206480661619815886448798811193311674446580076187712399488007078908810684864050143007291159739895742931321780086092985175141114806571717829512574416116383693451097811548104859694699406487760214614743870399977653918414270591976652563715193061205450015248304091189903024930452385584081417617357105312110200695026861024375664636657414323530583430369142045048704602161595176633559578342296274423229048750054959858477021727417354879375408891853264702541850900724294086563528797146137252140377804825402598138781391569277963607542766217468021626107786121822494882330796855665501783106574510339763650770414409373119239084558196283187329975231712717113139146976632435810460022784122940838017149176033479875537345748964694867501079576805741670969210288868440774191960248508314586585973273613931630845012740857088036221071389224988448742724691827496103600768796811365440858249404003046177629985228178982816236157865022229638040615602527375192955086158821639759339280003328533249933627891690011707233566047060852553260672058206251835145422109122146718849695087509164532247750264380665729358330792103224896395442908950358920638647633976799112111260977738163846191659656806165493021156427499028431167888219441541136288744555532477965205777592618905373901182963596429148288286241778638630787615549281264235051668260404000177734415550425419080342299979733421585011856686344130990876639418209312503281389426028360053872542048684937369988427399604851569859168417951683847086135763434314893365448812234327841194622974580414462780525766248941941352658759771315185886235040174967935905962984625641527048505205114201004803506082270101937442443087264699434932721136383600879758879984714532260096484634554673529476290187381440899964550680062703924199518816820508116725761107183582116739488350302034696150233433207855106799794972938831543123105291898396816792711052061957931357359374999201453923240931298126411551467446647954802090537538742847611915990024537252052649924104469365200060492744034116901082703141774999977466128356810809144913106954525196572886438939945060894015316594548510477948287558512798018502068057301677503683810675031211409744106347855996494384195886244728174681961749929150422334609499225886820077400393523068896963280095154688322998316382126277378047779265177644157609123337679803932973220913109620278456975017430249350478927566364608315175731703097125798890057058276013248733051279461577225422402228700722071210438252872360649140365209264091440083484891999435098280564246647125799242059005835947696262711975776189451262403153204071202192731557708310168748772747567881457288538598821914560432870369543813537500008883223329284051877763333823234050167875111004615488754043211761281258391782690345407857217338847338012109989645407109571237301666946069295478933669043435027361149288236978810862331278369035117062180412834630189960173795825974721147440312846621505212728916846600029969456515997659154685883163119913646552641712836589431741838336263914501658647380521707665833588147104521832607884372496705257095145455536756182694159080378550227285056007238637953675623699416937330102312704519116050633960590038679687057562790570937416357608195142882084633510461555030697171619704488051937334626878047645511531775893874590270988039687648404763761309889836755051874513239695250355378906564737381045127420603092658331899884861329486445405327727752653201960463614328305610643672500484210698200688694794249740394649162578022501836935636391563086724205691958375879948623333697088585077064140381863770754510916715795006612686903374195636578594300888692013280712023744835520888337883154518865565321748299015325653749822373745466925311416655024806162318250798404393404794949317030866870024000975227704311372383391527446825232011104277579020863486565583864083420741343173654465112702385491116973954361242230493913813498636498512520391559914788267288529593463385714509707818207281221776025624746222591871248660475640724222936581392822628582493636893976749724054581869948967151873636599053790628778070480419244392595610604708905845662491301303349829636751347365990770259866841939303549645654399158516892296217253451164751952433385122270562498695542913453961999363088191945938060086549243749390891071512117291065467000089747682925233125432872765142001272977369862330024084156621659237749299167990126902035084922739058457491357946925890962668375092143283889162331656900797902330313160886866609052788816805082559476533223037380023364726558224710969646403780589056118464257588017507359730617172846620361248715793331830613242580089743755856325665154933515396282998757053422139669271135871475148186190485015482820394307637331835613296394646709138551749388084427714524864190049171848028183113798500969248178095782980037104951817314039488265721617110764347309708578345107452519751147015147547201154000915315552138219762760279578246417202431822212594874037424829292168489392285324478874389501625357938370645086197761351938519408681621074407478725753647983143777314841821924983581931685080805357003018371991014271599556815262613084517586904111651127113967002728545767484169736487680128950443317194085917243865154062577731501826986339373840461941573800070456975429374730303116402046593838069305273784400178221494044289913981451206128956723063816891803157981523105716378148395361453383160421038547972405873846680667430003584981850785442699776399732009969137918095248953587011041150074033870835691543037464739286725285297576947290072969790197722104090677961448561191029474260677063552799262557450971516361089038725439348574387363446385946652282014412599475436226374971843315596121165067771965588816491122818527637553324525285884834803141463235989173370247823076286830957959473394001890294308749666016156350786588253407422220678033175581383353835542841358377898506282706389477295751256241956299910260307304944270614145794585470816754320039904012326844072198246033988982112603401985129842995538640400752299933089026088420738891895106555868667116695728370000972395687459790308707516666603628687431400118722460097062485142036412374447801954842084087208518822259964284987810255847415889894364196183853022671027272410045655134023251251590359769300294529891853309842427947813302235886544741424914483896708717001621808784054788502210811401782286279392961521666346604187025948116021773367585136488249973545710767042880423474077731667528248767249840691544869949111744829583340092221952074563199878271825917062919486179727075585353946953884636843219119524001329174595333774588314389743029385571250018483837989958824749623053940038849191485791291740193973940706733726651545848015941593259252060444060714727899171633775806880906638378992366259019321892748386039617045018541317662633060934124391174893937461600971334933319946081560009551525334765863126308131152541707421408798008484808560781854457785526217927258949107638272744594686878062307229288072506203062117748185096371164718757948954355160042849453343436643743435193321509380270425109955440236035135924329652114234249294878967828226130019418027692067253627687598460149460005774634441587000699343981117789975488495585230860270170383977868113529298731069061116627477145518409365706072130537593709789840757183964169584844046562847119566098860819152402335545011904748450833095713274028890240592099401407169437905092032148658803377958684203616800455015218367052815365168028289634076571191652098118900283996817520703665137758964020099529412809851206593156725165862769359270147879405937004584767365399272756025374529174199333508254648720189925666686889371964878880042759126469557251498329515179142229625965342196486331724975223668864417194206191533275980700575272164524267733078340726721772871242948957737284778121432068310840246596997897654901652797168759939556951630073568233587183989902081901494422537757314959675112837843098487471269089860071578945525548232191103778168044748704357300885718629861411583001462444198489447190502355056824761875569505381165665849547419895159534797496527185310014502649588390889983143185330571944241486367662140674708563274909325956255431475092692015383753100460712943878802266709210179451675545245445441706922440122848526541125656857978693864274165305480383611971618207290223698824359915221153553369279847007927615873656980848328312467789910907199575549283229622181824777276307391896967076547453753268111620132069972227305160823246700810572887155119192545462336501303099192766294247513852713213459267795887424547706565377441616428514625642609649519093991864928382285373110532291752163304314014018379233722782126159158306410741757524678750044567532360254789325296367986048223664686428771705889549214510578482131410765479510257865826150441377110967444778946787723210049142680567333052427848573180643177116977512306326080513556179180749000813623706113023163328159742446431939585125947673104327283673050148533911909487202756375291188761977826505874337280803355590809245470143251034162505342584039742573499920973424479705814028661456010105441304385507326200912469588968142225601337529168716169880466006394074201197602150687839975833796041649610796090278747538723299659244472404261952158178026066258081149348688505800417985531458734454863266212229149355160858272841088970038581064158013123678130673900854669109439582418654434076752123885576726103917090902902678291689737000261840004125456043615714151657923957074058535901550890680544356343809347202634134112904374502364611657047189845496885817880836438810296818958814427494297307774246205225515247090096261578384538570805824723283433904151712264914606694615551643173686558740377456933620325458995923969757234555406453296817576260284426094511154259977154005937815846139087436006206737361623348737430219218879561421333197613752508630490309176214469036441630295476223254866732532712685596209220621219457300332706143897696161841325410455895201983278856291105624473477436730425266019281613114749252585619181990504715925013499998313373523244238023194315953762204150221777812260637305246608716478954945971718195265841244584192934337814279562477012168168328434434954637432316366779330604396390317560796372676362630436218489285612797225635789434818313812120620881752362387167931352243001650469588275278937992295701627722933739003743678482445775313795071133807043654673236789145804209382240533495395069892816343229247447712110328213101439471130235314643699365273441157831855435443565714496317282516260038296486678147221137085178000497449082157457103303675771458780407050275269408193106499573432666648597327562291367894852195091228021050391186965319413368510782948173319422698974485784665359362719356256274218688314586045201728744212602338304684327309152048649239877242359688772896574767774774642570533061242677376474896911205814803493038980138883355723663322554601705356556649509524757681994545195059576184924029232181410562098009775118617670974786331801424218253908690456947845577502246540791169400865012885076900522008674975782973392872773084655814326651408856857762380744061696745808519363485061428938611696839738579436363620178805068675616262737087909139043200284793225312514836326202042323400536609023159501622962840276559312190166837501066970933563125611162741737212042561520301366583147156019093460379520706516597824728035485519543850450535230700750058914544133629182776035289795001748439565746831695768115575187470958305594083019769527593745980112490235635167845910207804763664239450494480827921308457201184814868432972421178466042289700866447063025633021156263510222251785045205085349806100436609836505288900819715270674353465683342320629628054811303192638685071569089597677963231845304695677879602878667449509870796818751187759068283394844519262121574111629219849950431229506256027050170952902222119573389614475662386657669966805906186601531672766844885414195600085971782191370933983403276987130859321253651085817502204876258812461166186849001093390823130881214870538071266164123185031937881610377636399327933861954821624288165698636637882743017233180872468480417893307384968526274293974365150470735572256161625400210447557763076702640839892745917698703416821466446154559891581819327134559245558142307926835325863645777507652921848856836827826116878242470363149482223696617387887803248930404019116699646873255901718658412765496723881783822447817792561094575945405691474766765315583182764483508713456530176603881165307859918163561979926171172223444460448570055024003132685381087935304596828437395291305984896205910508492462828227709431665948628391159561479649365485354954549453906463011634328590024298123106246386637025578636568055060866662935882082906347032493612953214482252951713596912077687810334915694548324920673753202393878792616739035700770569637005006977631728777497149090063616425304367746030721354291680237393093488893442439724867491080421205604022047589405846056994821358355954620748592394294802153417852529035010600304664913353371049964465258142182632847715257356737455989064842647267393345251196002443742492774244330404470316190012622464431782672995021125912651866841041928806898408188038304958508833585825840021085119176320592260111427706718797829914806582310920736604628252730583522686552892974391497036798830042272945893674440862033681159089502508837784098345196596557227105897601666999415650893304111540551438194728683166809833635897638011855095897600390209996147001738398117038425475804011478800932048071003833377201669855282496004035725397977884223208522142674255910804501734621335857396582347622063033500244587675664659719822362099221864078470379483051373364306556977870558925356214599139576787921558955945789194694335167747316823283484378124822391690094128585907093873097397103593814241360439368039336617849876248193390879707479827519951698278746377134545255495565930547108318603225756437773065325501932573790451485858489795941662922260667999546031998279451810931209931837585309217151760779892170156389758876011012085285500332179278144948144685194349209463866803577684241133048492628071640895207389249562858076475678782728427935933409667450853563094554693556892755455843391810904001212311556607009914165399890398632447222983630761978027323187587890622963879583831062200097512137784301376387250524570204030067194581518251145595696651144900736482627932840879908949072214729340631410161590190017148826616952386817284131074794335997165196186427019953363139625506799315315556196220654414076760606953080567065503453394590776877467850557046074092301193372265023338750089843021973306261312855902541445986597985925208966349417071290702601995321845884398748769274990881680136378291142352247651271213481208366934744916771612751279507298167630938499138484282115640222879541708351135822321793257936041346157142652288307247317810160435417695606728906541052275491282835069069206445884311825449401762979466704329322575518018840603238901246632298070154818286492062432065953643610747521568840600201871963655224105657016812951521182705355991104180208303682325567741385637652522848164905320586736980051170519629985111278047649397913630526985850762590714622875286600934514886034680876635104123923097053950948990093544549473026898651427882009891027581535793696824926403015862775339639461910963994333107367669463090408461039192560560513022274536853583577492871286690015847662400286071263853480260992291232700450157854350076813570904235616250514931676423625851011948928962243306122454878766187922401609586793061046497384075722693058391764585058381206176023730920983335943561469534721837651447837727283865414148603856463673452510891140475275347708107111503568262810836197920148182274433393536284579049977558148165491265839262144535200814752245010390473433665689185005252363926224904722174050043593736392779637256379386795779438759068278271851304852049738518482642847756939894693965617010276516803479904092242906042340648445835997241128090276110924927633323703098441884907153891002106671249880565396792530501620304122841862809507816946905292487096890281261113339261399215392811538154417821836647474458969135311841100784455853006554997230542267705738208789506511399940825241124999224625884117112678534550783656745881133001662322243305280767674769021089727329769533231642949537964414139981355248482113090187811011655815178352536510115936896339684960713305924089634259748047786862787938688551379668770379603503440615540094104253069238808176044837138818996671841631981917340240059612271247742920862221738267923391603037648918109065411602650068459252118111846973700245735648644305517184389120301147465059087217882575516052719256215639684257712802712433142493054258046179437444051660368162630031632070769439234497354112255243597149993140530607008442451999562733076627547377200293149978121514297061728594637867605736462235090018174028652344941158748371984900370886184138984371718510847309579274584445212126339120361641191197727614380220460861379885965469632603381444941092945211472385930125448515494214408543303783154849053177221885436669503545114770639721429990681284255442437733774107098541545493920818903836160692477018834875181520218733732262660709827853949325023575881375832773417755173104194524275141560125119340280946702683855705202083303872478546802738394945426956528624224827958291834758962889858246428047626359955042950200159098179999361256896674571926796037836560621010348556962029483878376210608823434092339503085349972455882676184683388701809220408446953260277064580407301419306752899309260669625013379539159372412291769364271967479640307758765324605817674012802146127467837444301324923800652017961063328597668344676022307531997380754367854363806276230247104571404748843634897384713676737668869491278505790459315835589606935225174420844834669883990392443861506411626215721151958089108589792920703693408994382055405657678609920857894339971592402596149621170515520037224276010322711175548875609180461406683281242024085754002388692299596373128377670138290583213634929645723007119891268973207108772968079943259147478244014427718263428944065009689207991974311323012870635221995521112956373268935159804650820539128875542555703899593811077294429898042697741255512853259711629617653065570374972548218841258747855235058364208782952908973722573809836470170179197717682877537446069152855952244805134496925831772724888506014689802116224327668295368137878560853769731154654338146473369954383224816744586427557346685923869085658476822027501517189133568696093844421715403889273551362078847220294168431068742521000176556210910258904798634105158720840998703015008425205082063319013152344675192293354936180227952833216811919095131572717445257502366745117698822558131360737872946437382429544451427112518193217748580715688878420687982771350984016305477617002397834113280846004749585315410255722770641349269782509423593021310909806825751027186732530437733887545709139204940670142597844271784267645596035420006948922109432646810163584751195107318134242291298090645334618193251609727575175640082976046421899784091592753272617455420011785854071535864788932548084891989382251244897753070096861403617546020238946290180956363339857871537226496386832146185590888163293511750695631834050777790284427046135111611635998128033471622761530297088457849543018786689148338354904742696600065063315679945609122027109848563396273261544709579847450874146592458814609466961446463333207172102387190002588033941592888973320023184207613576914188026678050337865396738959397506053600803930205104359651199942220432838584730323106270290915124076402288004975119191382082778817885384265841504821964753887293032319885434756445380518789343522868868282122249087808392038647373987205034486404529966044898292569089613737379619718697309637179370051439283123270501806781556742429110955548579598515720782917629449873370674116760720879971630243148305107486268344960563209520763946387429125756526943882724074127511211807242544296873347506786838480308065592243201515642960588197772615267176939515610854001303270082628908655576804735268319896642658502145809828710182547089773786478870575610803847484353372590257342249838797327713048725729908840450577129496441711725736276631793425365395162816149495354350339960372883855481989594702619606461689072620892186411650565373574455012875875665859586012487735812656768992109152230062193041632103635225994412119084505768817597541465526081206445716234236715364241698842111022442984710206616958291818082753756888430316446404504856273550630452323522938654804735432217717812529924608721450344105151707529318558780900363756170027423193420073362087699546350709934987101730125319396307510600275475848777172121229834366076598972918029062011219204740416272195097549025284460247666929650687317604685328949201928592848433354919815459027789026315700706294012818483246724706977495784452712667948654337622308509707689017038925265951301831990934572714651171851769759110865899463584890999332492425908874281245487173436947363489075293043331453613101747115589537012118719714616170292514254636681278800100845747866764344445454020790636732606654497686533600393878279570698491483938726248735502848505806241928434280574560598490286443095566816870582628124355091624407571713315598323739322338720089602735526304787566422599483760836639633574027631185193147149246789199526283989232344425990254917120177726661210419389032316599872302085007183069262131421891096601725878963392748592664727441784867955854290051197349518600309584736084594650811823783168709033272916994976303817190500185177485839592842940110815019288422165041815481315889927893263383404833842793942873631915347774497264960433390774146305285175408528348783559124369041706824748801927249380961252317475450611226792144524292768447165335192464306797176188620865715194936903980182645061353674234272462499964764249834300382098802994576700162689289906372097826810386472937447481249277254726156300139073442322601905665525066939507402085543300921248814798171315517281714158528722703692109568761336697441797559223464722005034846774634231675499487523072123977596227651665788012628129817739095223628128803821283734419223380183492163304466643678883248353785433952942390909190044453861344166891130654882367080823139453601212793368778741471186781774170990637076072751882269559755520636552641902885725563410013330551738769033329630196685989348557975239601863037036468072372322969256466891069164014829299491372426483061354416048285251853693773754807096461154656961989901944154422193862773819960959321336178162447084886807813464795781050557430370730367312167012328951985081269636250562394186077856364424577000167936568285121880579686538388221013139546280191323458305879091463019288393749542344834676454967626320286605202219953802897120365876081713584241344854950460836078414900966499362278686514558160820420251836398386562538762969625702590748330588751838792976412433131997822512790175639328641206735502614413607430973709207108764763738155425590986798888162484232795462404364063813005883777820269233518180905643336074820018851486584624803488009964249334451050293098389430062701682881850438750154091203652312452483846316895406926871160289423555185249204336531367565185760767201367766634156290111324257831693729729027062402660737390301501422279656855152261777978057143057870504824448739080460377270043507935746273264707526236018621469135796287163993419153238481357608895927156578048320395044254129581705267892822250440938357953018976988581794476714472924562089657088973303174178747759062796905509160849785071023842086330923843788021689006347032099336359542723417297886364871022130157814744842934468881438125561426650074882583405036734789383736315557421166606313641537252353792828781310497560434938970424414762367205029505938309813097815951624657635538301090735872063112107650557417926444716155618380513491090350567355958236574833164946738058432919039907544430200762176569619505348263550265074064815960861818510154798020298259032974677075980992222659053764421787196252846175249062364926144559455174691125692516042963728372317833420608568688730155331523291649580109500178428381450753558250011670477062726309543789314386474708328271121401491084337479767226159446555965477197747889015380802907059784890243089965160302210808662494925153020925288503641355318857557794913646327019523083171889116176295336449857701929999546048176741677313278206307036059237979779124517202608435908276545971434514554381532826351556955004151213031013642778609594210535089518446912312441446050745173530649652729726895911458858929537312108180688339464973720481253945039047277883557397717238313362251540746636624744564364629249807188324839035410460615644042371671749854134693628078262368190079642087324236507510618996124278178067206697706421230272465711658936230568816036792362104646011550752411292427229484360860681408869826281487957988819833867639655881049998752836264682637354192165416586714789582596401319914885740537979289392176856953123563925083228270059664533685949467547827774153188961706146606042691204223724350340215531065195101781463729321993450794837478388047531795695849058225411857276185728975953353737921173873619014288192442297397414241658980454102867132142915961524005246376335025624037205255049516974851603105341441227953643171113877074221485883770858216868031827625831105962026146149860983844398803947399175404516320934343688554023834882365771195920253008193093091860509707305494343574773630827384240575735042150827736616942974147605667783229672641826892816083457578656820823845506583196159716251521140719775538146349657907364649357104590955079013299578388075189257447555715083197514105639355974461160526877391222940488759937494179822489077484544225311302969515168506676398821121163230785416452594865213467047972786339116445165609738194673473417912961064849642974512667696426020978935394940463720566481984545391529460726548976700542777219031573324951151369346631629177254938872023831661111448423745714148348424017571684942008434170742489135958120757534866680720219484159248103241340232296225925684162912763416285428178691839747708539588600900039495080878400237370376732864940394859189105548628995376602762483866459100095546727932879340542006583590257891639126289755493626944244704472699549240434398328056997181525052430090583936883632671817966295242822265820513035393169996502577631622433273350930131540723382999437920193906247356495976262187609379769477338407001090630234523188156754117936211458634938133824709421830142162573730518441261184193682081279080585420987023153575974421804692590438822119290685868513428838679720846297817119340395659803652287649966330552891239422632653630937696279763194159955234548007948055944516856311496161400666345038680852786647483928606948374955981516687426664672847957574169767442780167425503324704710226096442560564502059657286914549321344743290230164151000547751779279301669748894947109614244237123243980872633424917680960945560578969227094112522193990904499360715837993818211924129194393906082321207258720666647446862156202381537127763060598075860771271085885120048187056096401942792963097987237275938533180473312776339122118876462350028700186217356085239077396155220896631046776196945244192797306400208157274679931593370765217100798909096991599843627433206312928323864511894341928718087315286198085788085771059545048026681085079817095376227439325046958168950572423034524669052301956513041195159415507112301275537656129043383028755868381902029290588010928724722579823844323278162370111226325471321226697094808387444523332870931545736309769267534410118018837141598165169465124479758992684787565714104147158332685251233233524946849943213494298598583231089113441731878095507997058275787028265103323643650149828243867728367211806057948801587014447482398852494124467096083111693901627773419382919328795279123574678966355125689109973722857529337118036982482973757831660477352558153001617612386368195869169389508381998677740591042051866476817156839136771838350174294800597514025501508117068471942687576692968598733403818451159679457597025894804880301619488028610423638750240196569810787370990580648292149687937906015166204244703769084083557117569532087520721627221325212944089978903513878675559559535599864670381022700195560118192624332955582923275523941883351129825352551289507658129815900380111072313684792674928723838418921633418115105513575738588367830621840648448863400232770231107625152944641031975606089407879968727318516201911565527295780756361726146694000862216312144664310932324114738491751139054021478542695249236112388409062480989916641002939152039482821955663292176984675452369458680441888344385222414762717927300879926927456374661599202498176146614883255619715904333795282888322399035197954231217458627933582187073104718573224651910706825028161572404855433929952202502046279550782920739868747608532165662010625817722084170600011867637654970923888797154447583859123151464300911427030139734616404659744079073291404644033824630323454595761789102831034589208935998706619275712264598360264165128942263850545895677167629642258149540228955755231342585790265658039824577369689175266840890671007159585201868355576141045116585397994586135200402620769537155950476440530890437017157559016660432539121525928485998180743448619143472446233617598230417356560223465311869815311980149880409606654746876195902437610280140258489487919971849989649296744356108060502809588414224021610589621653006461905309629945112831167941112919309256644287127670918763896367529866556510553935593837043330186769849219467677597736696553603921213994352700472294719223453871512184163597484841412867505940058705613427385208482440729377435171218877951239292752569643840657571692585232842185135086958096176286726915576926322353070005806104920905990069224410857391307706066187721616433191113245596848356132432916562072197392083101488829095794540135673767497427644500894333801077010096997727217936170799713921003134502577696607010605390242829982455791516542178687083550885989495848718740647093758457631389747501246761786381231142264871114531072340267194206984842589467855877330352737671583625259546990229149117641722075452993410567531244909300531869218171662266851843047539708145708977705351297489459029615859409465709512261637104277020180354152615483125613786062474398313911925499351032188983054000000719056639326032925593786554540887990121580381733535297782875061907226585887351921270427948158422536181513712603541933102753312357185426411613491492411486493415868289762538447499770295660039120460618742335914020760244536936014795634679498010723685895825297918937347939824368468552025056992564167854069129503983382666889349020357691691473940553474796429969603951775607977617075621126607755950495651434093238821446631789029575311048348662631779158979089265994842655138581162400185726221755042962373293963500496929398855644930387919374564248421908931859224061712928168185475788318330787655202069364870740949217681288460312488664155709889835235056975675402599260637032633871413151457540988852129013821128161120179567636446149439111558522257461485443380107673208303207431935458096436703506527373135677746321172582666973416506846888732390299146416100034429202688369514168596884318044487912126268203145003600456746556534185801566642785588519725431483945198423197301189601149109095462205776939503825111750335174219425700324801360715559295521039384809800476931659882073121586670284717088410571394998542217699840811249242232776781023978460906241668042891712958348563315638238047200667757781081103597499421064931652385123580090311076123663982032748360084147303468560455664860199114895333481585153000192117056356398821430662528941990577935509993649361323975872794738607414740035087628540666117388548129038466252176318965076911242382033097323390132348906739725052051785578197854558490780661921625069044311313602429781254141524950114238772560226126032631829195935799726291924577931297009284341059951827096844480498293693999987977008057482722436509554027200640262244362044864244965128324714280352797556014846279758012583827838443205515535231426412128537709845872321948356762276664632883778535957912669584583572123648654364502064880077526324669334691691622969329260436221948374967718276084095735602875150993643835366151487409832433528108943447362388271188590328145662101044940099402221127748906588406190065361420211591354690686666837703272561681278235116592088630090166610397564741405905088572873810980930956962030010770807961208466634350788315643254858301887934781374403662452477272639992479439485510055558769814882885543659162909656676609150451822818783724192680714404079530845319426769044628954258031242983402098697851082770475929736098398586467767257193885849930824311793328673194767704836362892371480688506350357625595921612517193335566216804089550464370889150638723194122275313013829779966616529880371575832594995317187003219327119072353510169598543511736093045897342819222964877225668224393095432214463055948751829746472136162641266319264596957883114413745451434249749557431059616548415772850960023796363530340109706726230192871595915726265040287919288643612682677782128102579151542238109121071727490225978791792857325427000119229651500437728865853108700937831204073565039907315500761204056469202993483990268424907079457011929839966805976241737769574838790397818442287457379774947295706592209856020020694072601664611084714805533981335788661319896975079486534948807009278949821659423812362156106917394950747586693509800251481742242328047178220750873091573780175530458457326434804562753315384658092412512261981729867421421754580782133206638819265364820919561098944853444124553231891362241240890246888894133018228087197701383128723830528655965848834643213001441925026169135953080687059049994059406046087999135432182629307239175132135027997352235776481129128613821173371862875303267462319334227491331296269892561162656402964573848173896014343518682286127705725010553396393675873336750564193635668620802906289083442868286114026193069297945662326196241796537591277748187273871321123101787653502664569977568462907043152097393671036531345727756074478825760810893638754058098489392601763946098768050950396497765298538493822437000667426712723066918364899249615216983390358542397038177721941564838654709481037113908021198411269048029169969766138732194904520031008586939464615132469716216660571393284781857446884221222727641169137034638508974658975453306743586415659413669079748014494015788023234380819632525088954043170393189424613867685779178029964997637529199513116056345218859990992985652002306522284693554141288697560309901840311018636217184271123103367167499729995485604626344039200854435610792670621842153145594087425478895119804963593942129756134098236955254270109814973181875502537903954607231799205582454317787731897086683877507081893560745983147069171486742501856649381726858300586747610896424856546067912747808074493261557619462251669130031204531692150172356374612479295166865850052386451596117650869709852992136429397298641045735608431398436789024264099145785329190870613226349682986297664686283397027799672898124985987804237836331452494734552269296601461153265021512043742182076776601587820153200864121708563757589870551352218069547009397108661453296028463990157301604237592103156280837529602269479700870975787605059625999319340318697959621129900913016972257341150800154422927207992225039790268489641312000292767781771426651102894715337600442370083819121979546312161718003649536407836097717866135996037146024966034566793333371632569513322778334969760589330304145502116199103092526577761919554833264493985639011932889985930372668354257174937085244291723372496719108038414405218285932467364991270255283507460361139913915499813279046603767621066552852161679585691453274152877741520773400826741880948457253121064289586807085092794333458997571792631713923584626394607262892587198463907597723991710467368578975135085888362751242892708521858379559130019213456072771844246303337041947729934497129868598950390647711937356595061373269854330886204479043526733358247302273445592282899562547789656285953874785506684570252183237257450183259264017454897343296160098031529536458672793084534153636957678469944882600823736655574473397648149870860459698124272168101281251162145857605568825917988575733911413214529485696989500372064296823397733174131910525326322518269159220153285350445053878229544155494365653554579350549738130469927384151398169087295230363844212434339332683781938087276830836329117477549537982668035902921095314341045126254305483840258885271411859542398805854131566563902568520067012957876840304839802144466102821428390805399446050596684327387748017965008850052996978920067735365526709084087531745042131368945185875471028739451861947143225851158517076048143823111864830292385524168894360633369151977673804340928362633737196046605064717156465102552114082120091415955569554875428805339448432072320300784671751675882217228552707229251536368162778603245567249789742206570916225041458601687852746249686638854778557770521866729565812621594827163878101320211307029368930082853432468158315092666771901629675327464470688838289254421689117616570620563781027012595899596648484350420845477885505651796208408396418266120631254272562700548158874851663551050423027832571877451678744697176603228244269980480828422680633777603392299790312010144155611642756276723191186249944338344896956102607770638043716215021335792196786874905525839504962111022504062357632515926587510468354062189647688394490188520492368259928588928229110440391097020832996269696807987476151963991311173578839852589853546519076597850723287634549413820609015795327323357252891371683537771017988727772972183014281335382232973843134226831973043261302191532971260702783035952850743922809121629540440094846599878733030609716900549403809521336896186089563080278137921048870400139457818374368362163833477283456623973726040616432813345162840570397110722071345867870877499326067466338062874552857250327379995976508332335085274889032106773854748245292833842571598226746387099323356703777957909533257273545791576081047041304838617949830246692084654475408661045803332344625890643486029726350791987020315332126526731724857126588617810780292702445731840211311635363946668148892684425716270854432719091568818636616090321410279458293607401939753778605860404230284039572736727988390284032239669538440643801748549114661395423735290992680954105411379773358703962230078223127219168777621696097180464871583154850132116255712569619463502453050851172845256993724239096290076804119581467204574192798490173295551985005973430309460998294435733374111080044335442790756007332179816306959257413311280761000695253421805225053682632195273811961244132900213600433207988979376190934822099111709623490317757225036399036038655101073817412122520297903951265489242172985343563155231222457622201196085003070802684381415595110197686989564161292298758412802224435195805803931191846587097772085157429524504514012428111730236836487340630133477097520652751688126141466272427536844818938246009981413081143519420697787349445938335058706340575678039587179703525713655520865192339300795089715756186746839865435612541497899615266194155855274061187330082562244911921036920232634522517471395112692589674375658818176026583771762394568313818890611187291594268567305276856548648919620202977308094556865338265023670696699689049691628897517803278962484271219599351247949304847174875949391557509860960495570129662031067113947255458065248504423481952131891073851731773940383449347168406631147969454347393757690261826279709446441227534531794271761341731877088897737949987304539444459036409737466275694121066462501417188069441567107992119039879543883257940827569080714152979354892076441005759317249251745259417706319494926744905610058791422722930859316365170731973618660412133517657463458459694913064375664796747372199365628661879200507784704439714947886765560426170980139234627230119046411192842621079279636223306007431403963136669510807301630789350514479889733124215512720863158528198237403540776897059068307747031482561360704913092199742714904953204275610734174706059991274524538554923569110208929690047363147972173622757816350340330056813124963351359755467245599304100349588463716686823136392290329241091774043760769110742485408890452427682063086926320124040088631271804847882789490152461303676886388796176562245248879138003031574696443515906756527731568009384929018003720923278541394889889298782237264201289707404376586518730078091003013065901894285878229057371381145983897589060280864568960329483250235224720042254976901849613057765724509416645422344362485839849292757371109575114356577367136855070075388365033704806364107622931153604564030587651715119034284248739932323284472530029614877227324931815212342357117193672931925371289468598524788066431013764675634705978097752515420736666339051999241586910323758219004205810834012737440164570066161942445471471530747050872057097297748838086261330512298843514577379633420076857726052094251798672017196329376707923017870904965014234341354364346280751283773618385704872384776282436243262188526814432714949578082142703497233113483479752772395468100174154267275959556089091627562995524189118545856796311155980987090468966662737687395034586450308754924253515125205499950987359374788222825118168122610908093728954008721010110835916754045676398934064801189161787130978100066366565675353368264508598979267944120768722284035892782672527284948816602362458219815966747505231210197751241196585932256034096479650908750584452394451870488801812350527994677547011554489297894028274448774213320315858549012559951037045700121648195078914029887948671787854026440442288060222602740910089715156819013161331508062750470540390597511756906982671277496627497681101317712122673855395982488764164024164117653310007865142895073183977684142673711757757772399045783404757937890113337287953549041966034115317986970871064935429007985847126614802778206903786967308160586158698790456791836655598112266444565055981344905399030991767973716767567690635585692223513241950880449894336604375260803923897523041545168754232602071981328933924123362005336666985340511291980319713222398021345543837556753370084082080961368910685105852744761297923942435271416783371487110760647534671371715920384268146444912558236716338514477372294107348456001122390055074655369619549444857543764410759883214991786980183000942868073929695564711366382673472265703765844545502095033304909925973283961003636034062272280816033347838762192276879339763287691463698962420648264085687685410635589607630459312418788634831216904219816538244624035651645296221469988328104835732840764635634871895840129890176450976005139535256020865067943470875772006939337589372786934465098110095981613046437767830433530279662819465599397388298242485120354174249276006411362206168843395567919378977125533672289136635245939555606668858567917062753992833656121464657431854491426795478746585133907547219288159038613898227564951625380623529836285579291592177264303307673226027697401536105022056089026848364133238278149049906375084439147359573270355413510037607755962480905956724579464408827211837770963276366754865418053283870431432163206017248703211570661396796866750941718211161525023046197542537458617326453823651911319281018682899717376708377428378547215721761310485777364530118353088057381811079103440797220953071268559763315279571704128501666550543813248109499117395811774010353138778804153645109676403419764638682279215992894020568751512607494396681690005587203582028859595438433909087760968738377523995668673380834883813523659659072236145310030087736181104062624994214220875170546672895071235770271906853386937445869452094811425992063235415071181556962439714448021022921676436441964561650040808857638265628964260152034218619538589736303167412390399935321141383714740203070667644921232422848513477285579592281921165810705011294110066926067050286315242491018618441241203028526423437166648918350523144724786341926448434505220714324102109777209881515405145663304757241369068664745073380135731883286392230797586580298062068408563392462791250595836590271447153185415069032338065887736124328354759030069918285476809594265765925878456804493330509143434029641436797285425419526351141919321997212366393278056651400835990944004978547429248608966996191116120528968921732635422643551297893422461955630578070354797150924021877536380595326664898857549440570752271052683755980212029104552803673616977290742268623668143320906906168473701169802745736973573350041220383301076297342850977442897416925910137665851385816974515832412422087496104340399384244737463306126669107528241809057959364100004692992065490602639784280577048889775422356858513008127172802821155101697041539575888538740283362622573676351305009218612789501775367908517012178885079534587783755523756520037318044121422197060624618944329677015960297411072925656856106322380767668321743327368498546938508361890798717443604544154900628151998795383483825906467519414990488772424403408398104557818788074838868653141332627929764963088736551599176337610383676542509595290694689270455508815302729391287124198626793271871442072266539937798041331651305172689438656436206170602124259882766768986076367820863286168461513117487946881906668519146193247709299513484203150094677060157872301595283876811204457980566231834339612935368774300339749928656302160348141560383569276938688186755361091677646009951340060319685571507340357141515452064765938916437897992741497626284083254544790955957483071497527623145497983352834934753889410108674892903045688467098116949894755082778118183610244717386673507305574873091847513409912286061847157908489465875003829753443458702026120829255898515697095393261868385864645806998136620957640665047526071104430377677415793497144732732794904518676828919488802100918523029555577288186042440423149068829006355061822902407095990956294094699852025437071106885359740978822304914622040172570485445148744709109488878321832078755099319599750996441293803378107959403414564506317950658137964306592891732765240540024325983483393625329586519409726197480016046639774894051656258233913204510397306983493598632355803504110621951537740388584832776709032718380636878011371883036795836607671976018566447665581989162145732588119082078897812845826667646868306066141632526705410904111871355313964767035438427392196258787261136990885592443963605051032944256568843146503300387796162425079394243671870364543210587479448609725600089866981647540585130381666908552638080848926940705509374980439055817896649943199386588109267020352859351329820977690745740569308923452635206379086172307345879338058210333289714904219504359125931801543841601955494850438440607595678774226113829795465653401760556125716800519393730227060318206730261179958862409547952485857437688305187332640085287444329618964471175487982065212317145317123459103537329223472422722896436081263978239904045156840930249536429590672095932930169519190455772720792788451276096316333691721450613847172644748452655138104175648719407886769745453000370407090467139392219085020301554961752162137766618398446258403123609328462938579582505111407816958602929564047143875633143824847541333162444876380258977543425709856289065264501327180791542598787153583654891027396299056765756329429909473950867693011433867260105800936734268681724367922564680438701849488475372027411354462763621277280838496121720425325634457891258655959345200766338610550723514471167710540370221795766282201683964050280388698473283044364993506533330993309225453042527706423898691352996060102947988530642891901862507365390162257465581735096911371779534206942813151907111633404278260647592642255772961818909431192959211473954789047261945720218550656435523606885136505944936772422085690338753272156536131940072070709124437187662464632153159149336122348476571416871790874210398032010027559382891390374550268832021794450980510934180767934256662554544570301382793828504534172671927513735052387776834395922379867734608401012626812523233985079832166224901282987469414704684516112533308329844163409266496427972660453719452959154561591330427866215592165236665500855234595406594368108308559964702259763562469611704583021860775200264467626752676833989789055755959703539343758876568836221481710559088824392233437585710644751777773017393856518130806885594074004371539298908975692589039814296499019737282610177695735482558843048279928051883465225283083354816396676754983239547252341329825055499201931768188910044033827984876643664534960823544228046419001686104492748653652067835494428646492226567501878595660829684665259109135374451175003749630458626026047668657489785751428309972551888695733507398041842386704213105731680423950829441484654040686010269623003949807363475681511424577922258895049337996195073277492502645320060717704574111420049840092071373911973316686030030171635324329375680961312897070879145359047732355850862343696568935465132460527872151370416835899699183536930613344885579278492779745504825564809694263123548550393373087115663321487243366729622450283782986272371920018027505839499035636982166235523996329851804295990541198366149874038275004773419020034130842341525030982740886387232860898114871231805229070888004088562824650504376779333942593360036344608250880060222308855982032960610994301934509250849936173475844642727421868236786382645144802170906402071335106947984705439140913807687752880751363794772655944414911784796320252302940089424188306066089500542404365678628025905978540498258408728732789271090959799994858210736066498713557756569553220780254058762765120265517985914325194361029189819717264708207191449669568555401917046924507523822811446666851864416752213846478097957994101644127228446937433077497497702654446440715054959703102440189433088760372927778071072039544879160948923133797672400454693866724744316675874995493990787622106951960135248899522399464977711758054846184631161439822226706830498858850841468147519348697101210970185490724812346315199454869228526316996795807828691573421906995427910837892927153737395223301010982500593430904545241861401893419009073963227814544136145508378227234506850539753318729064355668116656814382540382768977500356773582409351510806341122152726017256136737234706874029665916278299212435498414251368383203452788417085150031206855190846490370434497926572809816787314494847910301281067069693781460126367050067693676478204022674851053930873210631856524616016425228755065838840909135977733992505523791152987821383271076189504685022191441447946245404240987162202957747723613459026622673609529263834327355996014357656058503162125536024183132535954767429482795087511322872674823657333889543547053068131738062308308069732714914435759944812966986210963140547373924704494150321862149173458843847157079711735502226996976010696103332567051598163270776711350763123259523356173273529253684514477181922227860319149985284732060911901003609276308736094198125999244209929056146967675425216371979923347116783694003344783520917578395984793451231203038390036036537623353956719172110509808755698514557882035999839888760695677493754905265744720492603137075508380927899020391042048160099289121445548520740426823808238830275030490153031212191254299276927848993325244933662713918100926509956236132792403246599324872126306537263627896089758803901852310097447457727014885154002958430513788750561322424015881298280256488685411692291018596934888321916136698139868903240114218068536691507244757235843792550650433269778622570386146437411342519323317689637738389935153439535526539378363770117744282985922544647577444832921285207002189797611578676118898619342844269047624601208592384640356125989021918535478878278307847088372215455670198054494912021626834767277686982963399768119311579435774846714478551353030158810156720020740157036365149174338397869257289634073977791695311962238458723445118247779554218591801119278827353771400595510527862485425073199697636697712458572045698835379041654187272620886162322829680043451126283652413512261545424090596249012933864274008776688608820013886330900297076690572271419227518726206145832119359856528702834056988092298164098423016719481194643127592999172620805197688892015073608225840547425340326404190334119071416723876969381548848194304924778583590675124213283086681970071742916823912511521163556724444579180249231670551204665882374219305347265839629935209087992728602214966356963863450487824862109074518995259713239057247607179208496421963483576198682401702493758132993515726189563160496656864978563246761246559110396372080569887634868064254470221310629830080597668688522635729498298123601836728323312844451148470422215822509107292269598876436069048809442598497004630195539864242831335864701676405085282363925935101842653672380007632187722974300442190031358420994743509701279249034541643718271844696665298899378337301511143164321803120643520635343361254270524867642694616752006941721666110732104411465329067609198284400868597913853878208961672006117933749069940266336957052628077092925996892818553163450797124538883445359167822998739040337835090189415441155084751201462492606716399269935779429060709498177659468915820081932577552853146094659026027428312530523690737806062744694659013846615247761769170737579309015412529885454815474173876621916582634276850376033116064850906041247095565872328283431436575850553506220218783220710440398908694015834118973452940960278848014007304698410362377894006374342984613080470589634537275437618564678794468382201438461637980983131105970853447139625980976237480473610299464279026906019764141736761563271438281830114711033583013860938739217456448042163285173558796099346667269828883722667213369370104930419197957230844577403159692547012870851675994531176723211831518857109342513277509311712780442961114032435816512180549267460153846414226652623208913969686957780431049198078814333244935457573266712058738033463616249869485194139793087210827462399275877794289582795594271383613441262089665690492296749024516162834791915842521757369589771111938712057848061066164947718514860885135175599996867527374013646881173223082561239760828395786575657523463444510197490857701092632841904684010497352497583618132704371639626116311997832386315100228735256125656210959392083440704149103135424684579472433389433322001503094158921514909486648356135035923137181206755791075531919027139748612424221330998689531192980369044455755920112731424783802426562917034168572588863096405097366363470369146137358485684726958409280381898001917188129180305289891337914775393172421123904727731475611060481938825847018997822894539651350142866856100192074969904167552693484118086329941749761050412340228509571510030569332537304123987744713863341037894983365429509537590480582698633084181219606565446455222800850952263764043341254875093037032053468078473747413608021584668908954076090462303924572453899851110228479006891679240935463542678825862921677226087046131960458547472805009300888275323074250137433907526376663344860136960287064860004999288313753194350285789906566434504860724261106328226159166272913097669698871383697114844647801092349785446039676701281463573713827265285205421446780312500270447070010766260987696829917112223517743042862387415342450339406626573020965430926644168229882924124091915238968576594026896910497381670826621673007740067378953373229523198572445896825983243915940177442019887761787458693897851732717085857720994658204888305572658948648446951657104228243403808268070689923248974710756995022411306844907006907186091138741343734437258830434161272686189619774588572998762563442260820649565355874887713750148104893452049702138729001819514345203588994086905053330765989322807705521107198987239687772645577050515825059221603363362768164392866937502494030286959859319986372772563685220881417503449054119062796393176934384112813259326857279172985227132117303071029769680051545444646699941860287566214380659462109739175910959778996050892019604859664677578720493591385631484806570151448504275274961110869168857494218828274337156612624200672930774249237007062064749822034394783399995726045970981645854386245666662832405372972526374820259136371404998691775813555326276146645498198118669457118451992142096239723783111295968238957855188130146193330004487876791665984723831879744043561668123438405704876451662243744008631262086010097697439781287276960043270434379495724582727115709957696394910054214974389380863768232403216951107819286062711037244019879759870152259794054854836258498310883401499220451158918646813205318771459140675820029606112410155451720785182534579255180826938194082876481649008413685970961054479034587033688618515610600283980779891041444770945285672505540138579392964392394079543048956946911545379498248583784982638593141310396607631445113848803971356949231577009317590187430779093434167386982834788814262095178275780604139510531921684609651770130493258713008126701529835646822547516319800647252619486464924547811844685777345138348056986245746163531489248628685680821204935404307567951985539157913933868368145194424617538598513445153659768992235478781129773065280888990499255016229543943499661233006998889789739143987618925685742645508219803736912931632881411687985772822059314836997646242133405900900170224404318333040617885301714150039395106161136814270499038922215566539365180431380468954178684008039120647950616263067506591480329402131834277289500789216171355445570935134715359341870158969107458507829101855592052645963638476944310368030220068755685431212597481875116471329459726622044188473642964392937607762295929788819890506654828835495100976190076440211432100460044153522573767046323508453155225525302810027715899777620981052028471158640389948198551632545942004264778137134348521042069728986585511536016559547604291809358002192505000696072268076329075184554903226392868132282447074071761877417830838414603913415639270703573655177359969303275573306051217755013309357055684373672275819730787960953966702939347166266685772624937282907855410989541233394271101213779769253140970063942825569575087754276150112538399049871423547916117042911760555170300954564756791857622719720178308970649793745427129928631496059153597033739437871283784498653861953044661222416865378039655038938143449542925775647668352178438066163544670679546088391119097703158180162864734388204843707148887291918206433422079548457952340195269129003231481159219251580136891952826689679062201535701319662582710577535503978669720239203698079729761311421982102088266719717393839892176143808262727633310275928881519413343792509723860045106780521895893292603135036175042948887630618942125490461869333762023755216163896424355713166380237104494598989830208344522771580034569764583068722767863446172921622505883297335771907712002649439134621753228667149277093526354838635727184219362211086643603311602310074748540786438160807778782193125299756555793366212389769056481438611051978566163900695595751130193324086150522110250230491664688246051742162991259383691584788431106099754323574220433928197497054706498678089521701508066557109259095850333105433584150647746748803149377728546771027304456513153118011846436506085570677930295074014017979168083443322348040734659764066469338399578082653439924239312283696332054525781772010975906532439467503122107652966085755272500350255606437020582961841680909079363507290256288975646797445521048285083544033917874530903870764184572443488715464524911189637582755202438475023055590415340807908919927649157207474819644196880283732801539789998801935514781539649101097281238692639433752029560340985922707917332560131509000613320159497599407856291454195680941030858682387060921674151219534945368679633520145639528023770569455671022894659597918331423434798458005673378644329170917181212259498877339498010529684578603753785519948600892274688741332136445101401811887115075635620442652277135394261797079358178913981183913177077782243752095696699100034909213181999405850525764101714115744693027034631862092770386921487793297228813968034887628541758316763240518706450226082479139792907448577725332456196854295063014401092189681418275827721537979867042115092196322248975597573785531315224103051396896542113019867234118064872047952937886406624502576011060393952061255032115842923497367573477427922607585168268711830621017279900048578941899652256060012600168724363410562883144542499743443716212037425118176965670180523123073555560841633156450464917268292627369886532721865126238612660190795713709175218635370597625325417861909903951938510669919443218607470668435936179035751605776345822037298898769182064388945549118798281919137812828738418316993960441443109817770491565181145011513029539674048019356304701208654058874874348698899231145876603138203640440719030951851614964343071337034642662797866456971848572060032875410201010369188898647423814311673273660624180485315934544975669448605784481075650833490294631600031663313269850822286079262145984368749862581633923082507772222657314002368172739852911486745103876130007853784876631376968575197135614386646249381562030892213130502257411764615241761842481973866475476700464291784201783214628173574828757955554298608048524153109103954885287525768464957574802549611419865966490034584044239955789257695384046719432197513624700480409122555163904410512299332597356897650455993892747148132530435420546799740278793932109130020818590352984332904740763914423767393668718566000124044474664215966265193365400457733866275714218172945998953942773511509846074418446827685301416373546478680721223030981728905369689135302024094199021684752666256568396223621290887955513902063572124158020995837250322066519054421809141788851802675919457611839209091582287847133242334288986460346101624044409021028882184916602553287604513294909312152098807912658477385169022983892417746045628092241838877625389459050619722280819186648019128961590114673263668932268531315063568454059811821676637303257581789613419054948600074746939270506434990130020271862858127711334940853527590012433826432156539788514331621360351774632618018402206975972308714018746289920333468588195069059387451499047256023249270510237098943661901546985936297467574858634639294889877365683057556327869008133364186218425359101909759913452258272731139450239533425171804016636555759842127961792302403235718586519356443681924891936654464933301010717448405885471585486772045561601347492297057321298440769180534046363417296746118794910706019391066516950504504798280328181976496732059104340366686501097658347349947408721967043220840496868926053485372822204384881657913080007560717543724116530532412906914173978950533127489303273019737392292699514304301235119286456139737441396744958062212619592115355750174847359667163071115297072005846368157344044060504058299457849225434527818641177578362235298142951441276870638481548637337492928212145831642139503200259001669646382747407614308461681648807032445131337641161338555162762662228514761250318121375370718714626484129097275494836516509762949149578007641897952591763478328419251009572685810472252792948352560072121031466784957954121579893059778655490603044458469407765553537577628427431612919850038538380773044923312128737648244707390070817582469710392131628907559681968591220482501203142825945116513694275056326131909529014929309697541786998030709753939517917452136719369560831100544897822351505212026055262315695473079200101173664518976560909181293901507862848332173256491333437328043759800446992576361778742698739696238514297835111938650111979380838518230227039901765683404558181261465200437946227865612456129554244238436059536303704252968653088513387577940091640848484147925282713695156667154927148050461481182602075376549225327274477951179705479079159112840327867275436717242717646071375246853493122589663949708503103503943725114097713081440432811661380094792513513689865013938155578943426343979725094287589494011343796861935149491750033922403084125999262167752755562645720060598614864456770708864314689868460339562679488948152922278285557760530369359675294489744041995538946702860015736690391149275076918396059198530700599446938696823169239526960142272344216912977182913855629166171696825061406922298519000054976318122947551106201758948512289950666924050323987564975437107938238394033009392541075685839359430134063072284018604712711573414662196810318333640268200146242948682730938582485764169372930289950355238366316549853702696975753820041205660353528071121830177126920202710973715110593383613028385232332623742772043425497785961040297851625361132643793006144130094153408595376617666483820452558258310771724079089654698734489838210122664718290199952843735631949685526084463197982602903515831197170974825719408388674643751285271902473200840817623939951070731430665153077700832914812256640288350200152233256391038554655199928842918820018690574210327462350453314550906361405669419088104085299425615145843761876010340133473943861514802133706833397761881702837288249722748052018409092916784662897540195033608485682908978350177578729389180567442941198744726134240890939621105806221258738456334335403278836439630803119516913250058795423348801432788719259148902663803960748746016487905893122013221005499396758838613377685685670186637228160824411221941178424033188916771423498620132818871764692272384874436827726010848608129929033961601632436313068790770266077879594438776862843905063423156501094047871166149807720306787603213315467574616134652838042874831217581317881691298297287276327770740071414352373586366899492604016741173762179021463874437780343094803253718208542469122361900861924275627190189447097129412778323348138853994882849365073918086578436400171289145150504365864051016413652399724886250150012231190776351645802600792324968596041811544293420046414893560281519835717418446462779405894846500232408059269913036682231146525248419036585643609148494214896410117942691149269328214693717251216158104556577247941504146209450115011831035741264174453592773508929608479178270245859550895313755729482157200876514502959852417887851454955333961607467285973462245101930911356971914513651853906215746442118601533054600183266913734727632644745017156098793921857142110277954136049978397224507663018014070861533816466591007742551493906607050967945487499926655295348586058099627950411730051527022572836723877287851481963029751696838028253611559890744849801703865523697635523802940614943179202083446064391713860147877785796407900544316629491680582841294395496016147828657229549430873777192064479416322816440480226888020192549694120194937258954250560824559329572794150831947920827194911399797458827326651623290549343573426605994938094048790800827256698779452723012868255111711386262904860252402166055386790485012385290795785745473926322297601804969272674687647472737711591747034301569987119614248119260610837047843372493017415813513272081169745590172148106326822965789345576058301613819287666504628991143393703841760782955176180172089281075715116643096534553544972703462993400177827486144499273942085553526657871933844666213700684839789882225018938679275860965108466824625600048580849012536637042460247274561774893180592538475247216441756545522558823887244120487008179588486834253067608117296320219778962838084954169293862838950142550667807686917573640449323486974715858082196687461148757560207241880944995601883259410392414059074670126333112727126952749946544936479215994976604024076414355385385150061681835493795574502521243733803223086123117549092158874268328110883771359055156838797045127574291922453474397281015156858626721139010574928178119723858955020100336949189826739291118984847853842955483060815775377327021602248699289271507905988137256535046731508020409661890643563651701127630733467668071308975081125506682991731371062997843061977097614067069193685837275432120833842095469630494197398175877680891324789800311874091625551258320843599585958511745626134831054228805544536577173857102883829652349115500865943950660745331458093429826367262676445211068786635692736814238940576543391165692426253023898695286074667650950972136122356551020124322598819948562427937699522723974845197971139055193011873833340512816494466366036014285662188611653935049054454927871093040494278239715961534317055857736721550702605054989950269703633355635205880724709493925635521140655221102313671656123296143309422680639758919794916390065272939148904320442601252963755723588059824492598602827102521443988855551579363248258902409953796212179449379144911150956058582331697304757288726216355580192366945430915154675438825953973664711063095504857865114476916142524766287524815417995211981137932770137474578619839541826376112524292854272423336134456135832154047106712216025584533105713524305795541051872729471148995650563410584750721778865872431156962307980547172810383676438940927732553969070900947433132439718875444857385862273869256229271065586034292197254108316806596668375137021575127097145688701368327188693438899498548800158203324776280693115866592206324206191137389259878991882907531695815922486561407810811796545072367836322598315255426979950643233956504308145264219589290646908113161122924665448120806965392861049547642256926671373987891125712093977075646491999191452906545604422029694459724619392781562766741716036076967018946228550072283632433757716126292605206145328201741344848712016191691408597053925351804832562974380762776383302593701497662009575977752519377260137888963708483150746170279433499034439928910110877095052015555461711020225005794329382424540029967208370441320402679627713536573435039960774323971923233419451753590742321553811136903451890342379844511363441480864446363216467281730770966458490656067126537445019010550879032617751690656551758122891979935106213252251603525602542907272242900522886011260382993152156112465548877436791955214106341321659738601234147978448032596711055742863361791408927472509659596631601795310797811845701504775560927102772129339849003349170973557838987404222477602993728965224721704848858573950272032310905799601524999622475352542571800178628283739573894213391369683613982194146787095130118018954122533113979563549083763582783919318544530625705054306218491437499825564014936780856113845858649926336248855867631136190376281101840859411766839088574901335677012820820013896725322658043478738531256937900373010136416205884072713211833825792020796451636340012141391359737917349566244035734166757034207120503679429263727119887523992082850890133595722862965618952148179476823258839954844399143728988470775736980009854248684090604327291222833646841018351249816612676008577532086797970027685648825601168580553033364676598314253402415540364628648314192048985999879044851555514389635087781629675287997079720884045708063859596238887498755557534150511191789437137366826561866146806951140150582950219496936088888659621130259118326466325165497820102827023766839173838718666956073707833359622586238780551954708805243734474790515511333662324627660671415591033002148286635396945540232684124118157740352584547943339273479957635391521056155179612873141835948410101559749276991342730033962103838977618517887577227427408533488874262342513370241457032293161110641667202029677435862866440765457363738405414977215708012709717572026960344914278720052323354513762557947082907843870307370592680155843243795925501491747879598629845814558199597805555270548146069129237708089858522253592972147397738340586518529422867147763846430174961414772919413083420140991631935235358153940042154857431294951385992307596794213095878108284447226171508284175952297918277900847438379383936384590123216756204335395392658283619382065005179401479842968936830455969655482469524725461954659694944420975619005201451109479174856516164781207704960874383354885508089289066269183186875102765957930599658032802201243339813805615457027188166885505348999021208511823006325483563634529936580338826023480675995762647274259127612464602032224829738889834156323213744551087457361738707511937837128116407108079907577270478396660359360234747002014543331172520861564382468085790089668188227710149263741126807377616634352349646648600871411070623053711850675371058448974027442065317984331885786173121987868438354416390245801176956729746124215972438983702972913484754975792028710512162862548779972337257074189738587581175107666404042901183730235062293181580758855344753123373246982699830214847936578675963660878874114745270634107722949557520833606315700707430124167849053086676665151638232153193017964697858193361280670190167090341877977059172008204640162883494891840132206527742413654816391890323519568137589325852910290641541585145339167395113576913253936489925392090420420825709547035466711161382743932520160706181144203736006448756699095857317758110728947488321536012911803499005817928482703052871744185085670040429035174377266570699413602418066830693375660921086085897950353104318851239909829734215624333168153770927028018253074360534640941382697986457811122871772274448472210978478087475132540666183531739557350686374937134565824003505844859200000942116413668846791779982329564287420570771120523046852064673112930603682615367821554123153130448855759977687969012899384034492068533191900056760231174288158490005006763287931177176641486233419687489056227148028684364149547247174166359099895259366962973504220125309949547251173311882068937136591859655353309334665373121568029922949146975597109719272829659731490096561799309585897607110908605987143487566368515723541756120994108024021693480929694650304615912886190741299878075642242898486371355514737999026317408719240414833806146667841087430043989574719348534280132992169184247014778912367001269600278068771345195901360972436263186745935428100525476496603614200701313137772572525777425839238025412762389509096772336437006850092740999852984968438771482443065206305056280597462045514586745097560835240805013520165315864821439673455100072390942083152946894452187891925811279772095221911743702447456453138804685618055458193173415935019345662733179250453612096531432467274087137194936943537956648986091648439890307091437741844500505773660578542391351645181091388277725935781361422468528540862777598610961108791829999588431988489997462780079794705557563021078643949932261104577921854342384823062432510339701016229851836887810304530858187571185970937080453070086905284017074539494427218282570815054623252523016513121515879375231567334810780762334764293939652696258806069256019035123412540247559223649212354460990771105558768902619611406836475204846412081504516741799993754251468744282495780716501490287788158105712250742198299904629035958376526324630658710450930113328453658232636515384052446943238792542074528992946597026358088472164647210214213976481026893400974228546866252315514172864327715871316010694307522454305335085292011780133345057413856122637444675528517938171055994634235463262366169336399305634956635617213993321115120930689883814920252605360610014796435325198803564045654671760394826190268747320554750317546121088807222420260143332426177837826372152531207191574419721005279064054802029251895401731001191528319969282869937705060813774595393215231767427578229666700309959652107981420540510375178037597559799478871599285613452276603194457140314008368855800684975019269925304623917798645199743859378033674292965955155074351288349912678805505371822416975183752990755399400576777336081990861565979512510518012706802561251355149809002768604896438326662354161060304317669317638752157252120319173530486969418749686598151925746942939767869157479736731824009548963986020032152349423753134621690194575951334220962883719109685794833861734613700306913008782340162325138781977733409961284285117690437489428912055876958978734507753517224051485969348248964184880478638117193588361233402432966855596851866262696158911909192757366288653965234786925044196378697045783317313007011593021445863800797751938612217583276598924744867971489463355293297389715816105435391317000120546676304669344156647646260971483463020824287281482092767082393980420349124484243284544601367625210037529483415067611369306333702040329797979154464625237638780686102925516051407922370373607071601810526534895060269386984044635812699282113029594240627746182219603234883430666817963709150118361734012188715049695767559637261267682528573995648584666873964710901311821318849875889735065920970717706981742745982066555273339958544407904607400907535104428623923209303484776040237757653024784415323983191338478476796484805274916558434423034053433563660133362199966326697467042318053927209144315994546027958796760200570882255095932280689102009553810629830563356649386500288520360539852594580761054575643907273695878712111911128139463035377238934805945606996633689676922239576830380603783586525574265238276903749169441519781239686849531810604989843727163341926720025711436015242687605545957712008294813843979755722671582797241706775678040698117427501763334135593882224184087191846081069605425762489663237158690331782116950797711281990913198742437066083757474582250464159145305494093435376937756384105258451204838927801236628722922608923740127010489151817218042004463595151233839380870531606790790864280609532244332670154155250643097166304941719784954573588230190395727698420917095717020041739990610500464439252924288067555293938286939756286570883267583053698837818324242424538593054198693347211066584452234948740055576415304426394436793335301330542888786352145704631095936469414508930157002707381102916354019477012935733985818792385293731335575930123805303416217691949750828145737397656054700588875284650276726817854892995547112778537311122438876958933628798848562411584094951245864114972445421474740876216534606262000560610960339779570921566054494156520632886920638244951970233488996791122354305738508166138932979670740070795361237829393576696789774681290749337251955738906319062900771002141788474008976752472464167020140987219798051577368747353129376457918605933287887894663263626210373469349862245211755760129885980965364522320152830953448363847939229660591548386625195071513878123498909182010199350808047438417527192901815493293628039614485322997920575832148066326140529089849237685399700623932101649101771007287923903331816018050583346377374830428828368404320547990151852351093273420734276768715271300219845655822527685517637840402467339766945144816402199721378760262228719981090253912717537920654359095649543343211813818876605687754632963348272437459996926980049456769974620084222995291093855031243754842115831288378803947931422008153309413167247504647495836824132394459410021857005830579548868229174240158153898874371842885932949372908880177100165206107975772826442435739543403565511734261086223457497910445237748489712591418867219292584593568921185474298698210137027414158430420083056948984434562617366527778994735681403767119454571276973065924035043646854659217489858656054222901996586455708370271172389040133449914926231044478545609967091339096737715030993674823814426524626139711846426328257661358566102789553027460004531005851361004764227124443286929657717640849448467977326722168609294972205396241717941001976681829513194174839301121789032391046287822533106651195700509434061855513043857422057672367974358458247545553207180803887312812984506704778634700102418237756398012035505044851066971410071455527922849497939791989695822824310732276841564717077070197552847842019460764224658728032926009519552549134696301556914749355845959948622654615615085202920220816784356315716691751109845610141214078610791221653526265782624741449718004788307482588455017467858375573683888513747261218286195960558635359091352429675181487876235233468448454475762940509231193538326125201486612621419809159070075216816068525965890630424786976016345133278298582026750976032373727649095413497233920554170839360009800487966046730107560070742567366842543668007184585521195288535901315892654083456629736361329821483510431618137106352958165792851410365709610790427866019477411955376079839726140344026246371611311001728680630154712183024671706260683878426273081409360196761536625337376014709749727057748605547100880287279647033245329314463902940348317859108818025563184728356367105302535873606033181144622689476462197219745194373391462871829999647616891005063500417523057698032967234013981662282322155144759925987470588856113143572537217119552773391894776294112305392196515732884571321843241801476685098234260696996402338456282531839052825894771953262569383083428102836889731815560683843131101694767114983811975449576295569653970715457679825641415834089181974915643763082499435299059349040277046542369063481481204138269974763018085063203216467939327425103859021955431151830398521823597519191892330134822460831217856000843861973824130031205475357799981308341258893429009666621596715109607060524260104600705293067165043398969475656144576279724971382535613068001180692333889239369608010486179946910426900650965186635058887203328918336100997008925867518319580691284200794172842521125797472129549954170495643772838265059122667294142555175556463230291750134533823192226551804204066489724262033517865953525903370055316633336794149207751706554003721779362721903745415790003546970983493742307123353940437356738397563368291844234173898805710549443720796300872696761106266208847781626340932073527741918532956316974328618775192175293641638964005972300356145833776905043596789599369577313889669412841749507337881537930461858169552524207953187093472262257855521721165799143123422465334116078399579380285922725658920539229762863639068179795024891333466018422109533990973766240052268644143414626580352610571001820237929708365300998968489547334553357035776204553461600380246653988597507369424042288102100240592947741790347380596152429839536000643588103865463369862122472973448519645847344316110444218687815361891651026441969059573563299322858439525061382103632785808305855741243199611606877064851593780399863359844021517255423242576221288458021672446343704256378761045997703557330349662536763020147603594751929553771024146807156970871241897522440324426032482120246770304276841544450544648097090332603723606742777313870957501169155644722522347801750093894590674561431701786406641072605170353780100316124340356212306179439781682544150703881143215278237899015257806477910380968214786881822635670101117904578995796296612521092432776000971633164294484999332628485971874896601765921523566332470722233082819586320598797689278331399710925067574526893399639377777928209808960155322112096470320218530729043124578958117531398293435630550383998001382846760985848117819423457724517019443048513026503707900933398377299206547100878988557409620817087843048131700123975827464568974303319657037897044534166789763666396824144984454077674698637194740282504003334163749439804812887960770915605196721773388218179109027743877144680809007924772651094442114243111494820068366260604939798230449369195677022740183016761510817639033794375015382607209991402621657568770998112582045592930041072796373880100187214519854735737446232644007749016953454367140950286182951409249957543532938761678198093833063286583858709353020620380197548984068854165808414491595600169472123093329059130535610670508937413487325654915738464323063000020130876386992674862128410458959262248317464126499520998839835963082526684131195146202164628288165826544190539960997261507971770509484305123329065055247679896084701756000231913532750472718221085706888549462436997414902946338078284915701942201183473463119091014115128310870677337718705308954429539897518717739675415618791415695439514280457270673958534248704134991546879586140241718176634014558350099453602675348266671472819397319614361874806006536534978866427869855003244548834016278801801864583854844969152637855596584377098795617624457156690562450715209340157320877137029825037361158305172820125453813814755486383576294100249537462844807333691848705199329425594075607572307509172472042330843971430261561649603776414690466164218062469709758962344296640313609572953031631351586926126695096489054325282669638110922724058704567571094809444303231954773292774736695395070839686416659454285734558590914676957909455084675477263360957823418847989669983250761266669878370273464566248745853491573673499934746459891157598370247046195881053003059629720425952289918356336967843846765639559751230722110361465620151086388741791726370936093829068266730953095019525309528467262279676448924352091853506934940141458683946080784258849169757393421000908285662285267153164547177058825163655945684268951211743081645139008955827407586425073780232573234882637385083229256354451196230167847989195338290670223244604786780717841053509789504341917310999535828374972202724350441848646488800037700383536134346330136491222314183715348804807759480035062994391898844052022465818807702416532101836756418255388741941223837591352976688813026300559651139066645337095056315624189392742758946375892723923875383926370658875221926350745256704552255262704731804835750269546255457553094148910423052001564578366653357184201084980334511658959659240422781165369657837335220366141863487601044030463933354789658451176158497139600481420740084535187590459630385961124188069809825985927094695457845361931239766599799801843581732994397413852397758997930865582615082925078344184458896314086203468813964158923550597797055802527636991835870119892678959924245637126192012537534273338261341567980901908515789805294881296767956527394556223369219772452888066112716751420381118851540034170249748064901590052485477614324439839342583587966449753247849076692665307252130056964559012815467233573751241884415716159084039750164073337795163467969492081488631239875466627254729940036292482616851146545244253261002797023021508374702696828959646247749713542654985045747216385363401980669260047840608743470594985022749770591983429929234876536213137696708740054642748988871465849370073186564031768969872210474614326855299750841068721354127816058288831823039765020159625381296791169559482649195902859592019580837968474200081944620891502633127373113439354990118686916186704183595292369586654132538316139095634785145733146973668048543330054562911097568351572063563106708069884476563927528468536506715962833706643591174920136108251254473445102996487567505519797891587771267829466782426147464082881611550048064041920464586201167974111479253530939601589667642517764368154618453496289257437240425034801470593896235840073643072941476309812082684478376195005867314715651890366805251830323762246685662267834251244701589877865677317961651110250937442900120974060821029890924195229125083378921012173787437470224932458183682828663625847854267738961370695435586122350730289428660003590393914027458400643086227753404702009809069750439058056057075725803926148621439392432672430790829921867647829069249082891935040442790229577321427666488901049799753512434866951710646999036892989744016975358718419606742953497389994121249542460453809628744451935963065868836601985142379177705434871373055599374035577802404381011595238288039878706082290997865426876997322204176198107603653039945651518647227013604956323692401349844164433186806674564841071999482060296095427584657300407739114999106608084963003903315188387748403964074726164381226617258098629756900235865388489111758125259061990336251850649635791340908412304740486098778702352012700449873040842262803421759916655390003859884243779834433653570116485817422688386706802280546237212546630501435563497314304349342271656029939034721403054651903471570686014296480378820827367867186498729497632690161070475793466633472047707273911599259837285986385143580448498723334363596163393317730473109305095941863029390358711759965683371222673640653381284560237879115926657779901791220542691618713689077326503022809851419785522966751851724050811480322181880666645168352165637946329097341912600035725075939958493355784946167948284698464141966967261390685979155896112571888282236496460667126331431760938096020463852409890148723089148980526230300291542651423488877027694780654691553588492045052430138611050820562384553470113028498430392148493366602800893205765621523365160018072024464091140461199569138768822246392821288473083596413945084990478113729492049601255274495518534912509244910532283374695518933029938233260130516375684974094979463641875246558540839778668074055046694017844334093324589942498308932385542089781710286946280148316172678831810382254438468517805720241608107473190520821825325523054387971728073913320654120984924032669867055897636834490260358129138054609706972891985532371205008470443361809192409334461490731357912810708219487716705330187817033809378358073683791953780950854289845346657816055438447495034749798727556665459265304590263478554833398187148671401074911815953671228004408529612592137564540867415218541701652459155776451896356317687565884740008661707838546979628740147702131468226752643757076973377774432464751609952129980035761576854080892787633116353438474490232704111569648361862412971988452022487655921814579024469195750748014616466287029200867319585905981148305184959457899717230803632632317850859694241405000641063365439991773885809329734813972463215076512269686785042472988892815544414539334637584973940622556542196085099697086576867410744379698670121879191199936650032479069332032100977805544682665876797007619758898379555841411934717238217550571395821571497506232075610053190827970483873136466809363638362374859089134057733059742252049889311219905639139381358724615683853512133563508116422093515620289206959432447868538519585844328101707114821204832263735945676430092454647114448739108128460623227183303945325424692470525819479773723318210912030076946635151388412507815337722668634525440588626400854473649443129196202833341282508303873346997470688884346456919425280738853748166471605636726740752524322168371614419603080328100274757868795550926755505453422220957507706582471187059912623043997634995164248472014623808662206804190259622159706862535593217559675959564757073950242067058972344604100251155517078158740617873733872953143328723941746152776250751948397530608961973910026371564809367091340318427203925270951199197639662321588192029029093570284835562609469485893885280268260155797972463973902699034110962960770016702057604285539164404917833358398467169001447379912357093649370099812314291813293179895129223825181076088147751680140758654150122436071844529773654785900744759384088491967728595347519464096712727450572839447804239168035519088381038106157119148602278398359341219727919364485930062749234160694040284637594387522472344835394646557392467505164998531157816479726375971295591786703543179610832971659181429808673451818314037754443344868789404200451842654186769124072714105527263778327444487477144764367778272773825764587766073589696744412069650876328907853518206074659184597276973661824212144878775369399963480840705684440376713437811932205642150505847361588936402269916131619465367243544226611898085531074910697332421469948105067340609704447995750032632316269403722319147542180673915011717754854070049589155061905683885134620695270844090311998800689708839257801842137060477664519963019618938157616031751669457540274269635654156244776207683285688922499232093211143244829849256860362546128164498136659886586160335509606124185348721624652551418671410445717065976172082849922045881400168953726739505169278877095214192151269392535666983962508600094070723624882148829570348845206155659591548707837156907790743109596203315986283908451649177033301743384070910036446285489691025772593174106750522765774043333997171295973640383760755645083659115718427816221063887104112872277964815893531909256688916859429685704935615343577453305682536553560318623198197513178259634359652808901095926642522993281450315851838900658445798120572440280050577274315447183065213031165468025550705106839042492476580769071624700591251906810845160677251583085878753216266731300228766243594703921101245036506614072454438801598030890124067237791171999983802549005893807167355697116019765354039069045944032988739747777124256428503870455424085645268142411685097366485190767423350491560382420809413010207393297601178816343818157338544832301513019747368902500861410867251609888492284207438970936229337686047753907286378706689662651284070228230890979719225716004552975784327843077995402859028084578289464002973040679260166697789765105324066329862485212302372434339468590085131577262252657753234670361956091501977955204703009581602953643592493673512895802525876969980328421517247501948285396843575097696160923907422265723611655690549544629016341928167927932985317002424684527566498655307245380670583921444924996939527167121966428626111261532129223483216362754174798888763601644994734156913451791159503574923291689155960288602797793514834671470047453806922759318149852785591967197932283857235433250960354670980536928879543123963166374912561184490941700233590114840106793224659446903853292855420773576016646317637840929090472369483484385631241700887788003560850414024574852063254370368695211574908922507473118436839712330640674953679672401043714392299265080210707310515568291813181054494145031445235423084031349878400807852944803708024079150697798657625305080531875279892819543155358588577875323183317447041839047654798494653570717923350384944231425244206269437984271197913119470272450662853495133553304784655016961483628398464578283276946790083104800039180920367065458321141667194759152877622053814479401808039762459401706379596575525199608262350687598428167195679940875939084396482314390284136599757715053173080787800429237602325079240851328179606854179236749377396783842691987861320345029708660733738667808707579460708718230555618135384235897805651500906583373877052057325539016945163216459389530534331898171492136593689916803503282210803489348786581296524449777629895358814624258529540729548997444426934428764760927785622439096350935568244881548126208367211215074662926101596299587843003561720305513217690957670934066680317843740254783751456979708967992797241581949210006205958029354853421516754754643825401576087581760493530148258586355902498127864161474572150525549503522951804483692253029716784442145054349279854513282863038527321421576708885351587357252708873278727464161361959927268072705951115346118374208232887929961403846505618414096127064327432697455865781364475506833629959630288197993744484293128895646971840733380419986784139850770118124033789347201264203973470143015365967139646581945726586456781486358559763529844722076850081038185599559962449902742582821496646166121208531753166000322235168816232686782712680678222880537850041043110745784868285710649579561224332563569333542221620095222708984919110535266740610912996641490093736180354100638812756923874836355008626560291089543878255172076303704711086748105461782097560676826145080063074306769323417338607672823822904445484471245193018611839279147519568163882628828973850565578203096537887989853041102408466997305977302986285160857327372711587903468319174203033456460142374278509406906741169698403285954154772715724766063468283564232531227632182481137388772605089482511743488741288203137437809213391923727288557110480855097593364188550973683659821295926975020492057434231565395988021768837284681729420063482765112345360009995391987406862375895563430512445408443878870188807480922490779186244679388251880937464626292589751953844951429861167484735591624642791431453149634182897968285784264899367823747757258436786103141182745910802053845073094909811613977986320859141456867235523219174976521292456355129709273826743500839848540754316376663133035847761413307698157845420697576719673847098555848776304651701936028269742314653623055666316607387124880917093677471647155156583605617595400458498908801084655729907981825329743749730658979406971941610039472929456825109074866952975790818184073742099857987175892156849210975474285256931150641263776329875875371919324301778417992417371985180200744170348836045997777251844973037376548429084964522245707961940049117877755285480483109113361721803073899077662609675017814149912487055392299622018658017741782149744460824258168379439446477751286076637721676975508590983376642157981905760850174658797271520142091303167082366077540931116450304472997248776671379003363936733173614872198934696013935616374418541598508288758512197553669987504598436222730391929600139021670010871961219469137713274250041100588188565771320587440363953479548787681910064669449631215548776097249101904049295574911746774140236792945730855851475571625524144188021129248924137675824659580414248073682690871014214282581985479189783695397235565356785131984700014166933758307206870658985159881593350870555126434224056729210842644606144041382740808975151456094665400375693452313136621448770052428767957188708486536563253338070901816174471788345859561609661492565608485668863878957706469686173533414785880671754914517638509015095242338873526359803312449356812440505938730309173919660763779971351061273152884174066960336966431499541987775445080809454820603087901278214519978859143675174279452756056753800482991573165619409533047940662496456905063498169776809458404981328579918020883719340224479920728302224496692531498389492180693332116721529926769191050571050441746592318861542640324890069594979759478485141890727209434165662358089042406221481636228913036233612697379571910481968447934247428147219274029741387723296807544602145603634005556020097893001671934568714128277950982917964315251867896714974769734200111512011762682735515468451950981610340383945639110087146723800993963532760120684165041287346337163116240992272664296805639580834350309257888682649156479478962751218297227588485247960590203658994812664507449162618466603883773786415286371007285639227191297164564836390649646614612552047611371199288196145103173443697922385213309325018012168163124898110215876175756554001571545241049068066056256446535591433009135644917766680906122399035579070014275819080586100147506622640613497672364406469206349649754739508202782397088189308246200438213636905719482954167633509088711845389467779372996748335318079231631551064637510130221930298873664585360734669875985346226004354787060464433166442130769094355268762095867107983844313771384600567479790084438370132285155670682898009048126695813956649498174389126167753249276063858917939199899805255384501293593813654954862650467031188359387412296582996626863483850199119390297557712296723510097215906862203487551687702774928224538453822117698969232541605822110460709525578183976785447948561160430762314475355778660888180877801248203749611928249747257108060469547703726735185051060839814590534056977320472839375239843762019514398729365176832579782228668799949576421303589045049809374281377691973858624067084260350803156060182636551059031943226493897336835033063163228357352800095065530473587086542866214314269723889951572178186828362008118216825766545818258922832594401756501146761845869105152503694508822376106123828204102557989444603538713600815015785050401183831397948353690279528969392431393675839402938820465380748424231536529644983615644589494335962065157575013944502259921163350964730513697869599379850184728332912434157337979390855547528058039462114528914455083759582392647696941805311666982100385644243400099225591120960977654612456830224028581925059439023022117049484136993837891109145637596043315735302490273695736093667580936917372135850930904642758635738968378973245540985368183250804540023468904268674655294053565852361724368107316377861277144093358922235014031465519265064019978936556254439277963941837550401584872547152532182783713693433012184085448451175967927227104401787787416140139882571743316081109243150617883086071062871347853225716503629114835033950144147052014218064593074075991032101504447993495107940340748513951444664715162970950843311826984987733200819146806789808164946687649087158665065520922114451801165745190837761456305448298367551270266421953117073244782781452307515257673749329485648024413793621187559870976059659193184186813514548205694383278898131188629750787234245157111013079398327461343071215509253378753444226701704374667652835341881573560457654419317508618639303466949841493286795898436215824853444263675369408747666697382011490048640889099841829355480090214513829173235233688118339182241134292971221890899022571706319574335908159752607667222137648010145124822794526696786712145711303555761711501360567737738108332492624045883953204528254582019702319750064961807024855167344877913788053336797947864207570002314987786892835955052117933075125647033759666516934115905860024328768769449144802936821958827920235611284735887629241203766384868511613196315243589482763205901107297603069897854975054345134281545243222620024735836756593366555334062566258823886437469431518196988666584060722270888349974132251382636311292580188198658317993741730377789687057465147433459238631432027831297643536996820196023484656944357955066987077458652398438493740357628993688387629399987766377144664381227440885305096368643909300015541179295581669021312766798464394937107427960515074131777254469612166645981339367327618192880662936535740260301311896666219475200310959937680115988919020455858037935372035334839019227017102839194531515413271318799524561004640520742378306556171152879884973904357518329362535832851853192529331769008497935825819161327860930429969199279241416289326832153873666694806228565612277282908347536928050759491563120136102634590055870017209998849631526077338396831377201622052848361174354081367925343017451433997765847311758634298635165492578305424916275760354794138298030784080470358634061128334347946233867468863372396480347171132639237740908466703473483808954711752639753055405959235606212918721190125162760848710777602408870914134986936715373454413816162068175721567210680711731282784569672844813712735778405784220220929788451838071553644883017249539651635898670250821322340425857204575938591904038342109612196289194473892804606239997197527379940201446097610793727795006892574789283695064763142471789709947739386327294992496353340574981570547371406886478301637342713173883356617833949854127536928102565106474995613043826891945726086382884357386447155314423134295834757577865981369481182750323788547772909931472878458278551505874320874760364177688600632131862681476622350268758617173350880816297947735632580828809181367429541900417391712886281575191620442057204744585885048458555661646863949528368498021414448635457648981735663969654474154302811275084013530057291567677106682246385403023894424918740839756851127628088834675830352816938478411180702976898845730751406031288104325209579750069899955836744961897787915733185357010614808419308924571999418110796745495248642057953216903472614561912409355677402172131588703331010413934033431038422735805325846455417291889413791808406617412381650521145980219780097539977528566480869903981668083977689318053192549519549812755259103669637705831906519613741120255736096277831748898926408447123873347203880534427932818060897285791273411885394622026392935375540400999523845274550083110706608963957457655971348877426192141298952050060717444887880108400640412155592149667592949642519117195875202487348762461387719494394777790303242751851390941739026456928322414072503476298626969748020983104288602341288780786259192329567070814556442294687685665764076444022915875587361350741176174597967590585866450930952306687244427047374533599335744402602119941827593973352737030658279545575639454220598691490195726200542796311820595492810200853042476610778088990072178155373321901022430559278669792717144732173208852557178454406327343545404541064855729477448930283229734575430423877393749173963272075243587393792798880306369689857304808295462276789427491220982192597904167976309928436294224369757320782514400871457522098481067750153965878713489286031529253048768013045720982136171769868218532688650237997075286780318635245806160950327729942310951309258227887171524859792867664891575568959734362295507810680834156130211435099544424911798937069735356052842187955202926517104577014529693152399981189652214388594746367233717866447764996368587361356929376469565030714285320015426692240647068758304491003665670223061698620158793888699693592574573702539793381187244083370761220353137032064833008651361341468335275267171858743989349295986627131263346303118924253866933112316601984228417051813878216329769124268788981822557215714114260785293283059747735943366893089113633288610528028317917925226475493046716693604116337727613423982945555382700055688790922812839920236993895871085965446088782906868509691626555813832224764714899238169732009529104100593838031166671581514318890748478559006556722276758450610587519198505950325565626660013352989972346137769631830709003658698417094758093643162906234174700895026911334056412537849188546118768625023635471906096262153384021354289627517219287229715957490122045026171917515926863634410422035319200236081816428686464802832157068977491343644765345412943937454977318340379846720973665311408406103031803121834391192296495538174015843151431711565607685044853165707153534896968008645232560361151540213160089488389397791540815251827769024435304235125789801603816206199049202835436225801894517476854827353973623150704758637697801105567143754243956007052540649210542977839990668062815537542925137265360534911138622762644911679209675239978791891614068343681617890288091216067646878827780509621916230569619383459239940745341585490414326154619500634291615092258492167496913719780541788875958511119169859603526640957453422392768480950285975713152837227235785829072553350596547433496558812092261516629515634548752487299839390698983898936316526544156606649630692635710210090164217269618600679930320479446151621301660700464192355322017697715263698231741194358590990905387612988529698603286817819620710304772596824183530759389272110802211372541820255789319904356073214989027761227129526234820616254427504063576839159145251734692298946019726534650290131628046316040704127456880736489331223523745420719857550299020275943393095021890712816121748297748961467563654248379679949538414032288677890434880885275193501756195736304208424378333621957936232585641060632669848928179535385688651895191356735533868864230397767778133836833088590744891063247539753740199417000031028275349128855267191865807206577890544953844851487071578632254023177652658951642579420087146459776919470118933400201584873542246911603189951688225803075343379866204902522054242731563681387944329439123813454401710245315872538828641698610459897439583498967123281636184369147484116387570807912436501210465024866068955816658652281692983655443946853129102328311063791323340402015239490940337362409545973956470101672531490226014619892188108891457805768380111855969494315278034110626517070034631032679400426628109886001603042200103041360904941479873671660990848569022384252370339498635758202908860071109884915164022542142444582117252932974885705007323808194080930212403635863577958813529753676733830696845977752905426378713868292067887267186509912490165735624878156126022859165661055104198225399236276985123421959007228179695527942305686128672655687721610478915884544886791260878786381169955081940382030293244075764909538824644010033383330764199021168128991656303062747236736744258264511560496710504810703915501876110940404485426990303372866981672600605057588080613955164523500730245379186200577687329591948233725068656726739516841713713322096434347623990764226002725114290576799765574226329937491480940812209639699062289066632404351089871451332578302298558379002255881201128349811878304066882312093684649780390135251649919437688951473176416135957718976761534212907904143961770231899085237561495688107257351806547064568815968179286692494416664930196229106433092790294178491384962888169416569239976079102074480829774076871368924059454921154436063385943044425923992178987608947702163901185137854603321282124301189267587222914036265179620419816723178670963098363011570553775608592236403300826796139220100386341704999760728314452548133694427595476427009835723181145168753002852272711168181029858456242538579078026912282350397444457298973019024589729406809423090315961359441646237286038078403399813583599244791893719477178701627777567735931335990014000742962751295532538326082796423664114623300243398390776411526769896318326056043208827702896753073261088993904322199819460969244366720791303764788855039969910330794545472808002418585631948953702121160733528017157124823985064115033796430566635535990765536594948836391825260016370806448008289909813009000326274742302895466573716353982663029848408286080690269907261004175555814673407602252353032262054510938267397735223290515258208126658085179138768389784327320964015992887858952731190187658240007922331169578721418889161259872280735007799356184716860695502212324832003812318941031739420573032315892652194265319622097007190979028262523593735832586833828181808590597031291462607306429139895786307211767376128753442904550722393614187472533244797549720757934972322208141283460607471240910658231640683699614099957240792897975039124714453491682538371228106534717397835323539471384494089904447152800543425402782724274107334023131976997334470526441888127482300989108583341690964619616581317009646439398417478535394846045979107830652649586611101365740322777349008045415807808301997675524435331789587139319389752718964780007427733759848588544062731551218100554987370018808355541274390909455201235215320207618413284752490373736534145298463851836227906027999854948730352086244578357265453008663969690983986775827874182583689706141874696339922845610755187019876326126356977450226618159441958057703944929295458138490231810634890057397717674979718471043724937396758478991928653814436521379830216823902274096685568769441497019243752136233980341421056565529059460020557591362611067204343448718568815843973634894386949656881332466789665045276169562146315087166370476460704373729715294720666887385354739468158670661404408028025030450857412801123082324938790056263132862880799447570122413782132512921754016484137973562046111419555304533116107749977005335647609451347388803289709909453507872509784960673321411229691554249356670832567003973088841173128054597878566215079624000890969845239194355999942793565440006705026571650689077013050041063837805261583879249418982890169553838244469323379679749015069125523133603813352573154420978982576580651385094339493386496154237345919467213879942697640000574083462234995348092313384877646351059133108772399142921879839210228518690320615741651048613127428776881862329509297941849307535469917935002029735609108095768894145703795378317997313131236181647976243366399289404112211831174637965877913543098670756918921036350004198302879228417208515388223418517309025763465831473191679400216735070704155425019049237318978465118432587136821390785505658550270690233797687606426848556738878982582886557865030125530086848961622198736487715678923952669315290141057154947650834731684666216890046864646246984552539579373745113200500195495948192012091256271027753744594262850061613608363242581426246408130109240693953559426660800273398422436299066368212291823246234823084921403782996593351946003971851302388819508065241279149171189211752172529784682339455013996995105748674979926439082887213902113363341788527159998674125897249187748930981474236972229505889840685369491589857567977296535669556915429497438023057268557377264522538191906152441372137260827827614016659827174047966492170460144366277045677840125813091126799678825506222104095253257170298374137876531656871648627514845180830535522258670240114511646810709674751443800330132328828320652933153781649780248408267223415117690151369041362503756542190882649667775173350533912516655925630503678516886120969075675473333633128073770281033757863700340997745404362860702267032949915016549255321345694356879813175023083895426686176381124881452632586052582184022826407099632876167366589285140573021631156270424429967393138576534000555551470396394098623809487058390492149860003600066445284540946283533503023384602712635664266551735925884380288093168117571639378834770185326488401225820295964328356872039944045681326652535168873270476865112524825211073169020806204226186513891379911486072054543324163139083820027726793639490634128416038877225650636405427895556233212015046310210444390732469772885859961880883251411141773911641587426456528188294885201878719185319838922538604330271647496067484813118719468037555524874395977484789454817461888433183959856756494649949573634065354052969716798683410128472214543268845426201892745567758635520628930093418940788316022397114245780056969426885073089726220850634286535235640222902701592011390998402405827302652175291588071025686216297291781659566434562751758156411791498784308639162085177643592361450948387934007602380668074994746976334120287081071885921613801710917895897305071430454344515163291855432379140633737042150049672089576741766151901238873271925377487516916701166924752444951050132597815097195773436054627783319324622492904323877156017886288308132018273888128521951000606967156887066176452175597912391920028032878855661454335885209141303374036506329739737967791176639777196431891822791319948487483926216941182035503653966574297758940759266911550009253521302979445881243082103083414040893371556615355132546375518804044859435162484219771365197902354111361861153765382209507424165566213475050014786046376678512719883627761880380245341889212728230900507229278878316452161585769363746114442340263649188176720026039237814410734446780263432414984563961229507941089086594885198184845352689675672230318302187949541734428708822788397453690278123515976032008199072911386571979186941662579724383322589438993540024250104586968866706720472255597196258934696829176668670234408513238323441324612131495229300159104407881416920086885683895482698915938300270267833271871607199216179401777723933739332022877371613655194385236565229549261671109784576542003640276835192350429944411147954205695380897276065564886211358144985963086842717996592150250969209171963137015954432398586762753845446922824707251355435613731869246895152032443821193004706442161174607243062706173352110229249236736849455267639306814900574250172189953558970281391889421761668559428719501787033868905329939696756257181091560119377873431422624141497089029469955659236553897011170568221966759961638173524951827227394834133014390199279250549240957884061129876123501336992021388269013578691549825742462315483590402304397710777813344021634755902832052183316338280233845850273889958466981769722064306521074954235555164889342308214617062971745225183379415898720652096237480938206507041381182156002228666472598039232078698010525996054193301497638790387464793150622004869487737935152653606553946096329827152798017298933194360233078396000238759928294898403258058212422720296944100669728374000530104303960336703971936463774212087741037243978705581843791387124086311228627774292437322379664776836692979546497387417543130735311333784949344113373976610669067727130833961707511748649810978766078065871892371466205657180924551711728823156013212438544068160094750928760029328356968164667763089457039602985891056336130672999030829691958820225059366294564249008486475163043993456347721062850613237846132423861728384432959922031955936923708682895294580592179579710383472398774869569554454047199402050384960610744612425594571990639214895426392524556100015907670476954780678979557685348604116869392460640640969895947491397920366814125544673855129212692121210606598158375763354786050170370221680317914242189160389671018571252231659351572570264433249184274967275263590673055297638619947176366835817145724466315689483926153404117365708762906961597447794861131620153665041989886035007349044905424123668464484334386655789282133455345239402055864786028409475998522272963140993953155007474466142558721577667454048893700333151365979465239692470934379713035372183084934331934895551862508586204246520729766827601037748920895158687967722145850424555251920973357247863711980441251580915045986026249120534263701769036730406955340931452245911541788697695387609763085319123051276056340521779366585021901341922641886180549487905186176225162095958352810504301216343124171977614581738689005069172769312796619163839608083125115451545651525513426175585771385413863443867806769919830332238814264404341831634992474845576754811587528749863877722176456199043550278099794788426257441659745668849568101504555999931664348313298417535456885927689954448125360069931147338059303753339315394261207181852891471080918569199734722945215778675168722789365376059978054276810930128960174482199111990090587877254483091264375256982416997818708865372574602501730267555203819239108615847528948240980425523364779001265627271684261276919871770787751378095430481911391011788717379672326878537817612559147293456596286281083458635336633074467588695214093513770655726411302299427615010891399690974853123769858669473513079268022463101479107507966514406646082185433983136649640115692513218471962941171172709011102377638199422269488236887489470220893484528452285984992090941127824255584744155079569939198592166793032648869614621665697068281554335097637308499790367317661293006055430430576914272302163597661752711471921081489119449828217959514305962940317131158128142308761118330353396511390055931770686136035417885469728359950287858577851758568380675337186799516201755466572556116145578625296838833544465280456489679863754167896702372122627297587214848603142956029575723797017761563115921636377874621059363381039274837734938412053494256749821443509149040889562924872094162479304239914532056921916547952654791683742299153294770429835674718083543535294228590981959585591378519364075846882074125071664926061741723522385297595887942643636289140747402513668228511677568330619460487710220547605316694983959589908335769354870805908017807958397162138467186049481001648423388857223561756474260074958651845341722791083044988711480387440485557276998758860059540461914694398121206264580753715069361698695960113014417208912974989647289160919740312519490698643923167773736510964813593978639825467757658481151639644132821282014904305582696232442700649261304973234181935350369466681084642875413082549285711796442737959399781452859136002021456114863005002880419822764080789147119710426890833229216271331789024460245965940201637601953107039894017142013410953523588065288455980354984132437558462769560708481450085180404332144957288583887172432712047077633120354598488333009214472402237770536375205324352035206698858218074942741046126702986353200807482678379034054782403555419610224188618944139321231661781380551793917568083077916708715662610940009184411062094040949244741068361077430968916852120851046689451847276469281742914243113125422262096532558521631184620062488066094875530605660860109626876683824950607974776404420352661686333815512419528368024412442940832466654309399584111856422378292561579442472326853136555368000333970099177087672900059707869991788970913720835049573542054318480737589962793478288343739114701822161845809934024009713811220527205338512362842107852799616255195157603487078818011631986459878082263743546381537742346041929232957169540096666845971385679106279923378092277468043347258248433546933726524620084984444461674687722767756685934127025632778854496338672157934341879120540965416425797895082058128875456537562950387530426175204964884863493442204094263984034677038306776485575251853748699161858909692482692720025383028111862319887434998925891038101872016102888178493715283106166911792846258872850395385790759050908741561646611370946515913783040813982375297230039616375482053326728707426736291094745110093339365842911576207276456947883163836207186833205150357409906808825537549097511647330796435637278225987316703832422760556061522361260552653727341852443864582555592749734823976776474701146288996317715182761675781956772558465250426931732009964947840205408676487108129966248290205668235782713479966063996147755610205988859859397323538144386101216408129327436971318609603546819022134629097923356518876032312398765926529173783774837772157545306052616564004687439252420288727218614950611936172733044148318211067694056928949174842800475975931159835619979225337794839246983160015520946411573552346955432106841685799352915403084230555592582538862452954505721795007990614570136809530357322860541964533938900015238904491814701003783918787729481873736401300257034528633961977131007282117830399007205117580863139270165375457211927672660858833044722990095794356896362274914975778555599903049719247137662816798681700005315728049587319843226561315842597701924085906381128516118430022982677348630606650262216168466548435461193557666541686244053862111459590284001020376844557114783515113371808335988601358883074979161998011049261037496145836683941696178665477957946932890133298364819905825504073072086760278434132644000172339096838666367173419516671678034816537031628847571139496782482049535025955673231210922998793901415902493086787715798542739699600869992504181043304642185617145862902959470187078917463688562719864064161652051001129737414193208876071986938160689880261191751752218193818198409049776735996074939435750943452685655038223396214493750794376259137724942443409968509786773528341000693600433619668952182827875814007250326190996082386448650029639317504145623676957560565905610135439872616882429998920249518801638879570012485934919397384937098637904865836826627356646414903720518425856042719253530037560588569152063672263693553237937333259376424480716078930946475166388234755568340173882882451607032496226521570424365135854255224021924804867334587861815879768749571499039247008062002514978836912642239739650640663341309088632570967129510321859435665091010135678878481977342184782121874801878318638074519382419029783098057872356887612648836429831371545734229013755358595225632152702600416498443608439309376175216407044100768491437504686274761594231732675069129468264496398435559286878073986246703954351328086653151138860666669596985098761708569807776164067424064448309350891248159506939590655593277494535413393339435208839539414723236655634349116881008740902368063353198471598644851355293220404601097087940535280032106285815909867539160066197409708670623291582396486279928721668961999876501985786743139410535503277194363958439251670489871586113947420852071639707938863664448696026503320499503326947364396056322251996505793098858121460351764073887712879058899270571793028226423569143655544929348505964867389723868855054394537417692635390502959851669771159360556647885193393617321947093351288536603775893885042897420012317037106107946669597485209341414809183458834959572859605430434119003338827445815418364926483685474406325443001625650465818726911656334011378332348279187384920912707460482771752331480282142994583383001139195529077893588247609352122092905731125513151129094913153451716333044867875152394560393441533124106456657288413663046224550476939995067080269585570710828385916736886692623967082101835656181909711014071631173521085839246423192086268546111236254979071334967557819904912359054213910480182914836963814332847300677052809001012796843575966606062355549420236849280139094642591545184870309572100758110069576798562139043771843165128941388138883012947059913621253735225026027828468942994661804214333115205841832738624532918207218090210381831411936530900102430629605761638916144828763223303720114115002928292828783766672135039964794078620076714185395663652449804431080707106639116902414076578779969339970078159366407760398051065595281344073354699839282287277109169388020134020417965072225626376213767755563035033189632469752486410849227083604393828899394438172645534801261647316351825666736893837320397447736124506457618648097218188286053059702390839749805991850191627813198173198965938842353478651466935734598761569383437945998775000084501990871092156622174554517919411659554060645794118006242329968571980635697102803824021123287580408367107988064220622383948136023624223851845651577927986736257296370239406625915725128060178916227937363403953916439502615622470314725335235916730038400763958778095482206613832352830908793538614604515024074025887240633547799791185479264820940182326666368659004779847963724039857572167335774549292410307504248443613663834521824567842018843825970773924747466578432440930908638354525906715016170007189092827650944415287456507336632044260657942992928595331105320250591844287467465174511687463908760974445608557720327469131420053719380382237288013977997221254656850042453100007651638162436052548639932105817239050287683381250727017275784308058581296711453484009963537756547014947597723555493719851186492671651530643622593482223361951130103744257254145357871779104575791550120041549306630756809408417655648235217499331191489549500885338981668265399368879431622423219322046513657254578496156290775329886633247426395904914938768139218621313349691834542278630954738922440722393413039958987932305393375424105173183556728224409644738189478452911081123587292540925656684563502293061690411949609313666890496799582678749987433758386334343941430364969429762212449229594294491843726845850517590869839704261736898862621458986537938657525179673926552663264216890593158362146883045866027339151556110538714618876896108844980759344613778946516400853482334366006582725057666702352507884608047416391667143354961156468224984430754174762798974030471827571327649945984258366435032601861205429106130595477446362394861396015347125179910169191938336672207129001871943401570003524380013299950834712141151325129685507987320812376855655205091661434542366646292657747191810655307010121413613398579858170514744700414241765209520171023101694625685922644385389740006543598529913679339354360194643902270374494516831340354751978719048851013811913799719249562156809764631787797423580707729041980868827680038287312944065237573704142555358752937529244056203925405258094888605106137434818099632278118003324114099280796966137088500250122965216293851324606969414234346789902676088442293493184376446054243217825667600047063029776564330652320844465347100349971085983090918318915550513573460597413476708001964152615484660990405232965842286256616763558428230435934542928796965598034790005915986009306033032662865057005951449770331102393449330102486237061792672800478881252817801038120622622821091783019468872995226765113839077379902349207286627148601999762269435168718993823310018726088109063816978638204421977242795210400183886812142332064987421611514922164124495037768375133827196389455017387373345868965661794766697899488557858674224436077638494412022107626466403881658020729972953651373834401133257292652247824945597435749130856070588592100448752511357700773637744083238154150598960968161336836072238770745623438000768481640014745882893231115784616113743154110396709475895855559751520012097519327680362042815161107858352867802505827520620224220627446612246245814870600154290120050169886879023044386950119965629765543262636863619235941274366332230138213357851550006448498839644335739442261728037542800907024062327848490431326861847889684042596019866393035648976180700276305517483270467841422819718462313434218578743593660040240543540307573329234822448618674036077357714762842631207560966008531152743399993846524591912030795028551777799193044290055449086801026850675021666303305629060996933186991979409017856702803687771797013208750382169077822751043440003916940867851796570811970329521267749399645989107223262565077696171491998167698974541527788829049180437749886617534233259490241013837135214597911250106582231040986973095676966226008426604125452414518905013312714606829368731820440619188048887020687040542703893811290894807756610405324236203174282462912220716179745699623294145719770913978679647580082810173605160398121866928445051259547514523461736274910261357836399686590232323517178704023955197120658763678519271865703512168694435870393412754612445431271992052230107512879411248547271442734885358850036373156251479330562258422068532485870474395051183496099079925147158425339419067654037905213224448344039018511043743871925551604707124695463321557762213096815266518829746635838820744378140945793277490899218847547528160805296980995746955530075701719721228301822654066773560367444071214184669347871057853517085561581852536288099325069430582668899581946527959084518524478444511029404437870636967861887489001953980845505763507361074227963390459465312217778446228656091187068028263390110542392549170150006801129514414993975463588349633369766087214622301909616814216740934988960301016384993343049598433082838045515269661295216930408350155281789893856819297514384898459769390966232611068979124893769880725265165319942762570527737251340272364564698732548752163043109678579426439644015783193619657114929703277372328994378150702095408335674018883745526933104504320640241793328575449929727959168905910750547352274203542333061932626684704164745234529854439540758189432143415524329107693618993587638581287758584474112870406487301967959042061539861278292073849466318745249391849838894878730786854267373640717436507460667797533027509601050775955962670165292990990407009710594152602371429135672657180681148973151249667852008559789334722942784939303410180465535826896565572881318892373626570818090549754918738171263409704742738146673672467642111707728950690793520741789907633022039905999521392334490690194079467538842510253860995738030441221160839833202379715079370682723746260830058116453128523709955303881177572144235565190103354870141613719519466214618412745361844569088733114806036895651322338242302447703290037117258369048073686420566579673790916160231545520678580174204287133993604817978849770942216569880965111477739123778829306714019533226730861726766962663288050943566143560887476009469603811801143449850887680300426188330547321369858412713777313076759024399313623790279151747759196586315300673805434712715386530414511928060856676139398286763448958430321701977527056684361548480852445154693504178136185002296849442977493895570177739657841545924591823926779643865290426099837147018020098289025456714395138062777933408609651390276156129064635354629791690030452435247814547189042525067252002536370777318356484949965156192218468838913894890804615170920309442960459398075212482642135309698351115627091241188546683865603384427215980076297655109783094894415847649112343923459827031040582320365163537434413160472624137098458749108744103429295765388969099798644785223256102790591760588586673451960933130703713255444476881142590544554169034037560405688089747598545161982335774061774216161657948955728626838290505134955563184317251105351630042826644236614125752660694387572086456499092907923738947761926014016078644089838142109033526909065642897426281764611163788710669668927214681008118425458446521472984190072506216951182698706873673546712679549892064071913949511766825639624979360989372886195545175301905177339401136350050313210767550842870803508127537797357506830428636661458357333038381739030120976119950478107421260224697889899916614818510491759287684098466997581502408328407188704253849035241307540763743419510126543921201430759264873738525083080281186229889503189486971093775237630153638977819031387558994661805436458262147097598632244986692269371302572621901506540350956772751635266149821954947794504064365413053843645493594370781477032473961318855605865310378594953960403496709840716052192280251242755385297474138602026249871962934921935482261459622033298436597484195040461856880742548143385098974714558163918247847834454649361383570892587250354847259193225884127825469039657324176140634549085032703238360163663259623420829873984403679698100875126096666209789757403528965858750813155437512059250218981614602874537367104314920083097624405654352624002302378969198412706512464256241312402868211882772058323124897737537551021769950026123486444889952405038567318078991868111242735472500163342491291348791055724171798401445811820200506241501673232792241339189399699699029582224835292558198911111985759156060950851413981982506259089141525346727891884230658482920356234425479117406923640544512212632379820110018761154493094725436372615177720435976158625016969460851065861773501065690910788576278126457657697109969458778878819630922468155792085267526061683290346627215967430427440619962318950372437505867903071433965630337461880243951411887148602148373705864244670365006659951412574229748831951465512121623194273424589127908560981780233036290402182430990212990313919677490207038948355876546706629641528358257472782518073324304210768513631129708832731503117832178978330629277722445468311548294097988993193519263123434004072148425378795238284002860934657991294085275905920110596916429504178617346244246575252721374914381600327584140774331584823244163352504618181023037037214385548463244187657169302163178065848713813121237909427592307611093889420629471692213635163887634355582621281329989601092749880616777089729616628592091839060408110236657355716816928083958940321751388946993981145954847545009438005934317645237375177478001786525610335192066763337991956292772562843474379721068919540259658670796676152580186879652213752302592180443034468494444272329802244515240719726867840263179537346109420230186318126639189934852452904151748006584431922609462755953583381243907982902304922472543026959322027679583989791453627388379269308277241064972406153822535663605127234842598064897202726067985794511278785921133740212872619184502069288631236037976889247823374268786797673425372712757722847827628946539379725904794454161322296599046506727733501767705535483940586814612504516898682705139988527658709484557429629658010202255868739582154665728589065486931501904186582019551344127300756179640504593824771363340450521523751586616018077772047710048431306207429042751912943331399318923423335383765119970774387698170980697979935755042688980786653596329407870715879808141940267550903192257103198785890125817449249513946431220061357753095907635229066487628021383269981630321187949158551460050589914024360564598281581822531790169766918263052395994733173507539567702046861604711346756335656277147969962853915150705161393676855778583030424957591511874864215656108177372530700552082566100411434421917794913095016208146807794667154717895145478411692938886393403427650037446345377783426214558067743671565278050857528120943801820894521870521753376339999455375626725288424310615887858846666902604418389608159323205221543780696985085588492736545556877890348045113824611859831691280956665511574112786529447260301168215792912407198398776933564137921402476001800445202034731711550367318361644253067626570195113353059698798102046823391949879126261242565747588043027844379532129813201416333318755285460438454770711573246285613312265326535230856942665933793295110827853011178788487473519089482280273538498979747914716429702245544855933947401071434882778253187397029980484921386952403397358991379918859566820457728601026982242537841872151936734074544135747689548609016273779525810475909650294906218963249023315336740905079308943217991346275837838071525119385942680649353704589004790083399804391197051880699638935119255015785714671498593203040418396568021052628062341624862199817239311891057229065662249297999806192965126929471360108318555338179315945921554734001012548522123685569712920132275074027711954376456312732089507353206286529500236991549682822162008595852551989788805718952361775426516053863873780126790143920313739472612879673637930020024996046477144724373911742969088112094648860677759518843038345245739826750259665641718705073160678756212216307040395332581350474218891906641913939137001473090776846563175250133874938375469123012437119996923461680402332276932852592257942410595141589340910996315002387097184606907325660890507237825302495554712366446936709339629093079862650749596437448899601198017736348013162487650573051442376681434444543145585302445658964588397853527435710055668619434851690606031682458861691913856226064695726367020055671359142537183829047876302959517249928533875469326440034200232839159536913621235254441944391592447766080175957115207993234679468846083952255426256462380001722669686448036353615844969958253188595786946573454174528136793198162917915385260225247400202651662984831062272194725292876493113676259859232971542840086506391816679006720572118590417048490555005347883298437536431360224646562834550306091727591818098013325036018131023915421884917367834947245417413653333117996483230281266015327115935881986334732320079594890125489366418585666670788639995975463024432692404610638401540459293179727666432532473690612039991058501348171743683245614069458284090245220920752204494516336802937538032514553553607333379199927712496043723491469655128872454310449525040690059805187552381077036806265804585133938422801717706344365736135567780985145505722988998169675350719369041516480610588111297977524434823898049510281521959203204660353942868333957103994000810844532057899887033616423252239117227432207094440729064269791064124568706082732140877157433275581066773311206679821860925654239841373844600875637823937090503567487230766499105229141917894674791316579554989588985888906943507161238725515845477328835007276322862813112896496328035687609611802249279949455347011445868181316358164604329772644549603658197653084309012400330844790152344493528008276750275113621009603800992626846367378927502106138286794743124948817178007553071175957833736594493506096108766076896558887579100487561237254268601942251860866935484230614908375471669034232944118079047300380914665651429723255434124515374604048353046993393704861509694962179664586032084415643137800636593535298440951519428512808809255346923610688084971619321453224618463219337287237672382160370498161806663896553757192560452756288478611459088257535516199363975140941942814684951225001385076456086742112344043541962245424791337135465505501244853802415219216577543135594679610815860345915228277883802206706599298816158144709556754665157703436403427157904383976851895108571532275972354167084830317560068183724602302060490392094263964781131925548229137801595741109457180038095628145430998837400314812757641102425103925766329977390053295210967455761498397634939181825237121126341411260937121351463857238503175968272274816738626974644287569044199291101566794346814901684142367905390222410143193632016230560561481851822474354277246081414330251782514491603855040022289406053339986432040356583084734714737083572938589695730538658411764641977724109103217001203175106943058473889062310504791147780170351512803329698624227812005649372174549218436848298927187658559483499348468181862237150971554207740915566206008293850393622616993615515380988969617987210533542526397120293280754498679336665817927071841293556321827065585744129510084430215440877337244432400908746716052718295915208964138855337409425012245922649624919730202284288737574608917194761185808830017312175118831925961485974983493428361969890942978100587063681133777167719598773951140498418571665347701804834190270223890474725776283300566294542805583505205548327392632255059391489908422636927828450997194582584677431276906159163222933469708742574457252684843148596537472275779005500888025223328086833922586700921720828732668239458092626558455473282711276339953463293346085731298115504607173026892473447731019799120484705882745714055866746155165946214173544473577605794617581696527130062947952819414457547455820726283446160049347900966802017788501847776777482081991450590021534527164371336614489422543777690125563801890171090352515277909929093501651493095020367734627259434461132041039551036602077663814902052648625089587908612855782362179088925647692417934605608832841515731087385204928416477774078382732360999608875485711911064149622744919950985285072671295799190063163910758594416939726034934122874407440125971408053461614064441841628886182805446424410511671168962864675042233371870575703634832349630166066233433961554089366186281402444581858931880531354047127858634507986044713442976739168033999927417677400571482387137296661829016311910123513975863841266886088390965233580624671249568617696344929431357803650143927443423732012115791876695287454639298951727004599790210718234094131599329475723498009243329100051040611483250899433025787325301983032440215744052567284401419270299158658898400932800288960656038979434234671180505681508983825721036406035152142424232171926566443710036528762318461926267602935214123001124202451561672650241533850977874923393344012854534561504615689414530849070620137701721917021223922035125539870492959381852745397593146998863065048001208648598477711105607110660935088021905948929531910706480102048886286943447903003991976555338875727536783137225466759086762610005598479091822976705008835091743150877318467177491462061170439447622028507983552815493404560061659849150124102252501797163448831535725300870729784255081135276512286956348576676076615867879726834309431784857159916755618358644068314887379982978837790290544596392648523217215461295686024537453539208192780360547216770164672982486779619038988585475560501946369214240826071700341070855775897461102079967249342252918855007211948199763271408063747870664351244830011972571296981338022588701389987076460473631461923640521123170335748465210976226040699105231585801205800138989318624739564718615001309569499619162172926053696838301001876276894100674720278596143448211488197290821462165688259757528754352938589029370310449209256350722138443083655175006538808640335022144728140753859979450810813320567406802902477869325724244117635910236209294138050659890628500857440269732680998397415703891823988450658841308342379476701649096052470132995028182590569193500935541383354535766311332296528861750057324287567489188927129984484373969007176268689283901452314444723375866104851450052894944785314812281897826805622700736447593423173914107543168897361369300741955644087526314255155066020700383684700381433311434812552717070391329497310336492847819710160573509237662961779558311264568821927842670099485856068666261226156076029089496310318383384011081978330190686253725451005338604084089074259453845744284975691191009281285550722210692340404593899709984084598658158607262178885712394866120612343701792349913323335660542216495643650673750644797795195727890319961963086039701657931132637546243146009356744923636129904219500893535489699499744830560838350425178644376451915124980992055208832185925068622923711602800829882621958474326348164285721293520850789218564894262766199445807373922616386221299720876605338637850271259971013568290060605143864246936368284659745494278740963280225880544945933633608076638397267141554697475925071244458453697333444898579578015565916642117564301931603762302089950532597052719383043175090920108877059719150627817179932974764376091247835418691218088954923374886873255324199878814240395790487044036528119246640523677381949269180379302712799706168321300820884043516609016135024355460074374602031606473646539544372734912290698594363246148975026213359605514812908105480340509200181481453117316905673900440504803889339442365129559469821744937252599645740807403620599594773352731497438498214595327309229704792637424581445559501495809392142916145915326194123450506786443623605307255989465701532714788376222687076015765044805759391621118819190465828237375582335448982845379863141684993880683639260605112834694663299868666756889874438763349089455188055451823779455780867807820143878244120616249795555569720318507488793381652300638894733736385619409197692984350976499307929782301928725840383337209256859638591284004326272453355866639343759628755547759864067668620024659476157313289993010418456644806034443579811703494422398331500166598793771520000617617237937300599305331668541852944524190904720153678665417616959942767328330017143702080292451158434496761748666962131132398727697271492781771050843167167163928020576993577615173756434290224352442578323874800055051106569147034578681663510227073681518946517931394339055898422596132705553256577130518911847797941483111057475080119287356866392145654713930402376375845092360258869696812377191339500214453498208996925674380445550971010129793590535384731926173536246150796229205866966953397497345696429979987504437094882888401119417333937669304136128420842025366725721264894726283891396539967046700906964484680343165795345869346208859046243210145029643767747375076540695623447432219301604945488542261304186168281347491240660940664517880019520758856068221375305872621764165868714892372085270157956756986344579708649503185407339476715162160798124896685473302738951774467334926726317988111030947907843472038139203625440849001065058944798556268764464071770280574270499808106750759355753186742648514400796948914739575370704526156696891095196217351704820034959084343499186396528779454682025417234933216540574388135222665730922484035734058645305348455029910307079006609506717606087841313837039771712083951328342704255267857039520485810983700765697416140594595532840146330560510938780737252758604905891776542661054601421442435796365315156394961323778011813392133621903926392656651450470388308057142985914669715058017122502220917972358865442461284520260091541166797727251439623910940160298734957222633418219120436159905694723144642611231553028165704014480970341578801177328830836867606070189875616611192949394616092520167621094468480174249845436779594907805483550665994524624387259701566064615019338086157438798026460645631782046396473774200200022866915576073075446430473776438023308576587360905024151456643651601782677378742291723839098600732407566172798268709322840011290337433201676555946779447372651362446707626868934251905125058014193770549521799881199161265332405444235952176591740128626216574808623068655783775511398433255882432730058344450849686778399830364086182610543343667295348606549967388062663937300884341846504936213175001304137878233547383711343269521257913505546735538580679442189613592835336657786278176989127098061082270441149364917050434343792032114994527005033731959647769259475780319088618627079643521426401929274960654002685176661048283031697870087033363094276045689871095809360020966886023950305027479756291880646820899592916618311093199775246462118188180585455378735785066441613277762659845313103979164900606997201345098598185419770285311837305668452554353935195878672628566364294090656003470184343125884380798793200663158111900791707714541206377027694175295089922725315202081510724663574602708087285043523508098741702006244051352830048259685423697448523778072397070878887101896053208306614299138719694478111392225469584614229837902256692733214342798341827391208907386007515309314562001008717635630504316424042318895985647427793946774829029846456346817873511736915856113710922824213229317523843400971287637873804860241024149436761091454461597898339015531969858854762007639136820893534415647236195132966282366890213332346482930030726386837982284429808286248878652873894559594506846520483198641781371471968095968260514073379762818374751934237965532696273571873298712635831302276467652316581863248564014703043749362565571017772102383408367470096972716302840563809507541315476888755593464810640540688366847063319868794379686064720210180687254198184418252710835281025281820703998111984863532147929806818566987008691238893278079289864317406271269206604250724453486188234906773684904821333382473510737425290490193698747894125138780603779908687306333795305976955435592349788692736304114742498507401749899183947712730531084036047821572767021746479479803633900556375802435280740095024419320148600436484263990281767047785363740236515498599988449228776169269466761846366108210009990068642363491226804927360598814039030786048578348880850096910840270671947758176355363788008988436211050024413617219883957608268739569350079992943576342841500109968581719034721717248850877424819299654579440262885611675742435332828099930223229713063964281093267646417347290859525495953023801639847397328203925525485950474564618061964573994923467915740212076367160754142452280337729635592947004127223068913847708518889244920983221310806941991360062621757582324551404564837379895305000905711546785292460617742650204903600111232643229165325596680197848555602230049574654975679788790161829805915119604628327671188333696412588792143157241948450227048594843108914584559978796478715585156760195367753620883972428993989963913119134465957717194050164281587789162514185431136628667414316575221670993435380277194523674957337873626804161605351132391164700522165552097939425669912215852901492428479464370745069358230335392881521254300482182865935578892271346964729871093143879378275632462990812950974077017723304073441746670727256903533470767023111977346250105291373918116921771386868978159180119505854209222728166610957835621961290446106187459841546093089476598202238509095354021524015936139924494728286838888471265473494271706869845439772740443951225949391000560326793828292459472016014894868936405902679745332107592360052323848413744816351309021617985540036341019859822426701048305217372325227760108354309014995677353128390537926857855911595795546707255547366721834640262447086300969860317247602368360020562752571964899904812920206684463232775363826792508580463134869807974323356733479806801622860414722091837865390930546403432586017302750406152173670121696499413886034468469041589315371896642397014707921935642179541466272570528931584173065622372296922241464993009324620534330208422000592995159752199375333206810868116215014948829287139550530997166227367250742824816355225337828193040867249842154848670772137727990407557264416470407241543227955722945259260994985208380810172015224361841768493414957918299367951860998153994907094071914871067305430956258556845977413290892701033863092433492814029359951160658230476532209669743354980117932511317087868126253256511364230906782841042796334336130864873339897979267467524237894757605679444230970063519308635335674366849385537111453964370735466714577816267123409214104835146004045743024097242718404594300427521212838463897776210881037653237966423208914322470735211885320568399417206011013991424302793228862865352826037195158628409677251075610437923258803159918925977262636845740305111326517765028800216322531935791864987754004467805419513182377106303847323375599963681313791291404641532716442034015762414235084734267950779031944415647933139837267054645744465038509382228742299718048409230798808488053874548827923633435877582452100619226422820777826582015464220757475648451883830732635259964604620635529906315580238519502722896185152767259006719383204659880706907066330435551723338656755746408066256618431542836887259362841807798027782919877455699934060694336169231046765519313365452266428028895356418065494126570841203266530429599354275581788868445947916531492290912934750024919874744568536347449112220796371369942882706854688741168299879414513985714886771069688518437084322146032665178359176927819367088705330676867994519340881656385142218363763976703233137154017075788070818596302475523029872086200074148907154779252876439604576920384745705477816804494038852060592781004253217026898469144358357131456438113998838183014267666215148538846534451620374433190045015719209067841284542050989329232016100723566005881946632931254745060783786165751456802527096266058772741250300682190244523942080836813758364650236031788943279402542372336610980378471828758681295708430427606718759392546602025536079687275300401074775172475688621973018620679313441110253615563990463161418286199190593165850851551168220380053807541367127073624037081761135352444550496083772371339263307055476640143303714392001433057342253860116910629078197577595795216189294598436416577727841821728066500150047408111251353856290709311374625930606221325909595095529331430753511169230379464538274096201173043972974400136634037526246487347244228332054999640166224261995931534330063636997752591172096563387034239193764459886168618593492085394455755576070358764918675761500109934205042678742373048330627707917811822339469358696958244010562042688125871987538569818407046327573740474394219552973452451407462741365109227673436606005862555405591247708038416569605569398497405724122150844193341827396070342584652918078789878918835145583737605809278318726201704675851098329649836738956101203632945943220841383741847735521261245788816355719750281374927773819158649352608995079877739227861553486624123949835719968546883218313863640655538815028914555489354069346443907097108711290176596199479946994208575609049998421388872022684303158315237617101815660680545237579381819459960197872339327919791536158237682211570968214170711823311051828555548731399001846282581228657447298866437869657306964826490873808871272917236002525285359956433873211557437717159432456461929203166697305801322853316319454228305808814623483981370020854379456961690182521655749836534375275415433419705435483917590726433187612084978606045377843594895311821330789274351443734133573129100405096765338283706297770400241169256975823463849239402360479070380366111885785973039189045606420600069767190665145992065767570438945108982273243308251575729351507520429088461788122621969758179328078656172510162611662858273019844058929005907994812078655127097666025459726288157221593533592428006055350272893727088414820197872280479541057305994330880664041166497214687588785615732585927112987030533621548175338247882206033977089326118775037321544100393521537432284497176931560215628565882561547492113103840518493483180180405456471313261296177840200743158958542830890866434066798697673133585501160606651059243029975273345161294117073544371039181913952529696453802189265475065354579300060448663214987862396655762847687188242575295168314988130361618096100893414973992779339749242340865008473720139378545056862720981514156435950011532518747650239362632101546724183708909138323774590780548574655820793399888026970499631629243356132787428217358958393046070418677803407365065105661587396321483552999166703281175611457173859193186086018504570653164704695564846339607086693418917261137864834241677108819390927861647178387740913035881114438506441792716458363513707316889523238198001874678789372728454197265063510501624238424198992867458934822155942152865235854162220406616370972594127165555426194629960816540862184511363291096111045552784744649372441377715881906162220343422278483715213532904714119419439716364406150176213506109365677300213410538831743211803135000330685261419645292030552545563199444464056484225256883083851263212562274175433215798708178900494424335717142477174917596834486497232657216130035228175717834283540127710829791609618602227473169055033884969229958788166150357685319284834407913292610535241794738148878399049002589294026663639253836477558030961683866057493392693940081703688118815561980258597472466117227982787860789245481039360928974784692452690731671845406234895834484928112016365263928562805191673062005846163232867129811621510953319195688360347252319912206276261330161909255500312068727176316217853304882232372701117956671994691042302956534603230093880827417250975444596821016937081909402890237344500745397986189758878905414341055832270833879082825738315931370573224838853729683656780945854745966476340379072195051566929248417253628951352523851127689407350731002081598926908117202350110359830861415706466114365338824888774909398031946360511075676925092081109766606449374970197349225658100682922890641864103230333086784501395571280320915297205146257342564900647974797563981028830918331210913125675198352534196769066277755634813679842108286092154632596216732007422820644566246891393737778839313520830574789392450292361146523065703070862405411017930088583599949798804615911771510317240543451519039229686537839151263500532956124714688184985121478044859523747751737985533161310002014032577188000162899631785585063462805273442745446835330189641861892598260937212826324029668435788737323112098915815825123045439538846716558434074273276665747343785216801360189817779546048556762074358399001979094754599768697478914127230230641300820370612216332354030784266268126755978214939477327507218284961991529367204306439002219527081266743382249797868696790814916891610618501205826132191870415185454544477550134970833629417827839825004166183876242337845988374041438106765342992042628921305275261978546624022836870130344898934314116918103435875893899047043346327188719490874345698241296141383226816760110085742767097450181064569611887114580539139454185284710382772731455701501884990690683714471475942711632167864338490618514272739212252349471707232917149433311164943915397096831548555489084145690354289642291101774056374774677822133897425978759965020990585236579237876120063332863814460439031480432935004425595210474036741432144568074529557861233594400651288336400945525330687336957057601873884616777971800306247039566958925500476517407317238400118024289287522693284825847618838266171892117126848232394721192488198304417431551313844917121797049234470747430464280013023502889912535673772924386179033982262491861706220870860895908259155622359397525997494286373632716888604400689638337947460756019351100631730986764177225054098496301631183051674397645740760799918156258910546847428016436354432475731414057188495349532643199396234924017100224340317484190764720875933183633958639003949611209200920891574323186708071590774864341221106016243469424514129228084897281979464451300900959632344521248604006976889013035843939560261597043895194771170940944177217411064684106620037513813096805507951426884716605583439547135083822023652315438940792444783178367779649197111709410601790892522538027706050813130677087980372944375049732765683531430298772336735124159021098082740741054018412781494940442899448418033216541770340248435574063932529309442004523886460472215014152606195358370499763200906093384963433709813100530866474812871769418180049313987023455200616175297501568806070251198693383260287125069758551016604789136891637909192142011456650493986673648088620683994729119213607903807598852375757183645672907211348075457043453546657539536247947120697894863440552428597433659734872932214880517211345039628889413915619238502702638378935424093470664346929664906085937766496594362795399770946287869497363206913397809894154058263020034815355616289265716082884079171953592246924644628722756490986769591938693537167481939464769225044582565819276203738838794302801049634886170062756913010667199312797209016943952108360040793094826386757891253597324267111228447629031531246589908272056542233731888117269318844747982276744365481637347170887597754863407792930133364833078437239100509546072844107865877174527812104769390973526012613869478795274735328979410241270197381496167071071860335458149795632293260485541933317441313827613533988221915573733327007772668015029084464276441134228872996809694486798270448318509955582888274141587433255034541191234161470491274712893899175943317426508976069795974672854160305850270824255086687949803046944252958920990163834487405100907972116146074915782289500743461615345831623231937759539203515710424768418665525875409884455758427283681911943628010050746084704151785242778691056540827992343381359586353054553136242438846074203013990831879328277357302021598537081297518081342079428016053542855500904424517285471996119716982501731268426211210256433380206828690845157666699082256901575777126882227540557554530575391514921520233269584031222047974928137483588264152003250645997651064762861989858431494128525146650210651808819181869244414722844271232870835374337878399757381245723169814364751852782252291757373140793686684135329146582750807412209888641616063640902597708110398486126385926560326961687735676552100563180299094886883688598544462894901176633675812190945894297794229260444508925210112350162628857780133480890847375253656103419714964816276017644146115651841029028866952159230543519885887160935654527758048712308797313002887946039071122442436257639300289894270303412949396678819564052845220936531022379272932058906264080409597567597563921702878942032670758651236642127078055923361677484516139248611381967251648175719592984312337811997768855838454827125422156731574801634855685082893185648317592740884900732982072523721266654929527203656338030602526526966948109582930820138740673991215937485378026129941350219255992422432424937206142978241103669539515979035338082785743918316813339557395103915172733133325616989144005207699365382911900584860731045996913482691316443068688745892666823519186509044710053107000925027629950507381482310240422416663308896736661536947044253086690469283912517344323129389351707042076288842290174534509280341514569775691738801970328466904980556529425414477255896735429378309720405746564147461101204258576006196040935167921541342533426573704321021422153697033439299571148510530865143353751645487884753026597106311010448945963460442726043098095066925224338044811981077043617784605126852977191099655001458549771767427691082236460956865323733865740188018262579866166572128071681581225622420975577684821667497100343323326159097468424041361333371577861534106890523325466966509599076530497982902482545119564068767710508848118824003209145991249298965403464952658112369926176640944603952544027589669039220535831799313451842801583878643223246592675565273550164037394289013866220420414984625568858056601393254815090254012333491943838004596235525578204373989123647454478552603065375724284788685781616331756371150646447770629294130031516432460173362479817550562512258785531924255602415214923003582582830170516207247400173086929864065021649236596291299049484073632550313838569918890925608044384565599410375226066281778985196243481916967267173273460354489911397330468765270154074304654945475983597195783386959478097690754095130225699932236943749778732678590340536619800908965278343760258840826779858548034333706890189542319854091197859574687990056967100350500875159740300439674621916566820295702921481284756651222609754234592579648045514456778677053859998681110988441770533052171821322293818762836856402861625114786603408223861419143829061737588906570205255825594207116604942666481206393115750272775830618609326393580998375919172077193147827997159723092579160585825546405624908924148386171567989326239740634068306259023425386829634412657271798093703608038155798280715588017783121986505220180752273246579409555210543005979858699236478047295712316814794994292060581905595121904080433593259056091834891891652106345613202089796620374896268302073476276374797506519454067719487002265936301065738224949566781415551042969113001712927838830821815712141368241008478467955214994748056572058754428773094212954586754587196321380390513466781063293329568875032963236002770172471104630439240497727138850868450732549983898442347201572642791684070070757234399981199628471873619890693487304449775602320601041764685342687714133658265320193995940211294996510201046339639215721755098858453342887799353708221938398415844066039059135286389162443216967710864469437998453463969963143555292070632446289336144098082390897386751219371079633247623890943550222239165583969994080306431396800378110063179657380748756532706751118262402177819465213092432629410431204184887364978467448687639450211172374253188371912581160233391256391524388397343054732730729139141128816551336126868711877007004108307361934774826108602199842877884610728088842693177658842083726393498443817501634296220611372794689604339790923891368524778560045002217540289261642062339509245060471852469637824629443370264307838741412914204565750574989757064445973001473639391635767897631851245652637725201182495029971355330910920344362765544392086631098506485697576322661374122350474732717515799135949647223386835226786153805670122447070404050196143532336759977501336573401880405162362472773881727674801540451456265204140250864054950971596911838751080018067246736577083480625730909606111055563505077347659818230270434456351754621553534931591446671558571357137689156678342308314362776214631237028235992272969227487651672218638280556376952774656714472820989603772110946199464260684692105517588727753593966493619520156020635333703226026810318576431212330327997028473204788783827067712529823838414596983820772703934324515087524652624596320559085903381180831640037061998836648106970787255108534848284331140963143740756675964321829123382868600603539274170723471305352344418586030702188949480216057118877196590531987054705211637001597496514171691218402586263970216183403619593669481663394038855472547505355100885894088343354366217753134313446313952283858251209335368415738485342871865388143543019837559494032452214590387590265261997489942087697055663445512136454356968924547188541917799928970008251592341157652013650510587537634859098166740587740480931658156467531279054238212252671917896669015497399844499597223006077803140994963467140778986079153447702838593651860730582810008906044088836294556072445298080995688782615725361771453987766952230285058083223428348269366289054393427392609390732942636322218526328084532161435766575840419173178646090698537033590452264840829671985472268717656684654256965019947172596634032803403017202111368778860264278267692869798646658805992522801210293713803722018010804226717912425819297429698508890323573297588494088994147742215361089786868572811447222925143549838879751434506372773213835603720517174084189175635772911080296034778484702983507267757483065757843579548227573417197808663743559325403313255194603195970332672401335779021942621115819705563163674528502140574318826215435887424178944207119398714950509957876794567791691267399821087078949865707189964438597321142019857193212872959803767421971986077241373796714243028604630481119884672630535162381834343248123677273393432630253734101374718128707182905265555578590085302738730861343812794045266407389109176649664509599425161110117559149880721794622571697799821605163351291349069886021369669355666966069161448910917344536069693542932960472005015749790489450911904292019852895949676590238371332604150125943329693360749405250271169743780904282763786058545041301782736090918419322786369310233911829585503262401508630786133551221069371617302503248213932923439377747193451543476690736745005418153925567007198618426737909264648822524112210689654661358311776423368965009902028523640125112571298216190411752101210797513550380923613840651483930911419364265770352735716130817654899797389756383491229377351211316043443189860538591844999679708397594153523505585752864309665019279614169255322722661475982302187144291466446753077081654902242644836140558018840826102512483004182399611102993282938006273236758867932523594846551512271354361623825701275940196707733394628424949903669830638616486533180818684481926913675899753151405353020685257675312885389315557643593245421931461808548413454611815221581016959945945065771966149535651618297137435187480357266923014468913079584338225410365565247071095937909799159087710883868176160048712373492682632873778317042904040202219985907089810813911087429805927096276805455379830189519033679978707031554536352692529662928578519301005179146777915373878158822159935916535522641318285894753345782571963694623769273073225558430459146160702060003024976690150157265777332016725761508334711894822693255479736580125119636672650214485036923381490995079559002641179485365268633916255453395786166730307456395660183010274369391832454974998007730376278870861632867277292823803334882174419897898689323336305888753124960573892334862256650908434187897067779003521120460418410515990865612906855609560546858182451738133042736267433995138521858420851864620974837599363084712508786948536290391885565878983365001303877506403469611561168404659046428161421474507243054183265847930570874076753372638714239985497435302846399459479387640132851321523794547258448964653771421246245280661475112286530074301293434477053442631336956467858788758151507507618005037104035844531077025060781750643581365752848247398416601855461778016516775882858130690906979402444572410607644059988460824599406953111519859975735742931137997840896647590717742601056714776411271366160152339822954949076310679042442188031246634976785438754763644622686316697490534576303722411326302128548451657040850443038920023803341026728086996745193609661906440300620890968422773358376649046067644700361841994453085585510497761977467532097021924345213312523804887518339098269971463424569263683771687864748895284350960225644710606816228428805354535969690624548402662869934121514947060082230852957864677310869316095489913791203814026603874237857499644555195824608456539775203370681349206013904335019339585334768964158883149581384057418754954811050576247350441705915296731345412935802716812759698641056258374273168205743843838499124887833586051462611125475782615235645241540763707560750065315835695429947688597305617652248138878790031879325879553312408912527803515584497117149594360746934980255700188430212002712950290149919618855673081957922909706313240554635326956490075041935672257696397320830895851533273095329000469141396149295300337962214806947780033133472615017670249292380270052030677041424142272137794375805650071141416271080681346514305612015574369295003833042145097981019666159878036298069279006456196978732988172047739630489546042479874834977342369903606547283562670057069303264833889586395312518827028345472728042762992367996311775280966997338607954297196462774162150275539513802358070788140920034827233320368597698050635457432285582490216295297540060110273209847281296128715230854752077494860186258311211450326874775523744336736939372192068666723813180437981285955794703976442011782218923572914167514528351361181613507512476012977435121958694121851869426870811888865144269932554536227566592136266739528083801346048810472746296409357023709293783793805244678715481489591141143693380306248787550264106052150316948992103749602963776970566560614570536318268079375520288857034554158560756996311917373210050758615682072698557988698089218297193216295783716848595525778183878390859896857417527649035973408612815465651301964609897436109095862699071708122972995437837028602097626097021446249207526879192968661158129084267927014411984852730655451385229116602936117452057295411390821175776828953429867866819119914752315610836578428555908360488508552931745444858394371013644845741878183073047606211230380566750001309340166039738238126338995634210891301992464045093989018469641998439272014139593972257264190341800789828858342215363239178621486964331236071533614114488745099670750742892339630777295529604290686333068575236297782329304956806487908219027045041657148057738290307352601599282586671939867710982302326887075166980450493284877968386622440459743554642571639757173092122181160400898855036262308304099472591566479222935480250608115537271684981148628250269340988364496534052024797555828486601880820897440524994591887760830417211184119789577750723146444407713228810819104995206722784191926768911075115850040972336697223197460200268787819731906919534926164884624533260402250774374558543145415034840967883032417673143584210070994134899609704326493835141672879697411806229236941356420358324495897020066401399848043553544918991929850814744642527979401179685180042695604006378841324591618144789671402351492886551010668981969225884527521707034786157184635161945886571160040069600492304618173057271694919588630703543182368923481970828475582341228821954555355225159552960150046490468826248633627807105016450365573445097122204977643574188319654753609640082559676652963448083591128051527450967052232078260252638164135077969586575109562225859391075597542663152420197994467343376925736776102227540003490277853033548828216909655891265602476419285525685858630106470866042020811279276771453928686674146245080734388813168186479429662318721665587933928281401463287311889229395690473820817485308123485260683306718091649585032286408392437601450145805099232127968242417762863240807531533784639716773414592158230111025203094984871864398730856898204505423357546715352242393304035601107642057896630437057361901093720770312747870301419774163783704044356986112467533396360645589271210234256914964724770267966214098214634856282519462018380057412487897143724049225045935690976295566032513250841254704149611558054665351009769812765719460833365176377862340139552024222888345049160017211686845943542208466185721654183284911364201844648475179726786701118209666764028050482195458114206432425342445495710339052433294712442382125917253021202822890942823277817689408199487249121184100987637016905875790028119637855261515219931797673804026492190037679211513309236986305111609840815749174290035907223418082604070410561610495057090616484909450767844807327361808421313939399510552775705738712323870385510187388495510072989169284586686661666096686692067946015761609630040631290461664108266028943616710952220580147221944337874580815782747800971400135954171429231181293663529567612742784171662444249153550429018234618564259014498145619544342298079852248471383701563699416699114015087794808125335343726552873912616993382783806339714722969439739671022282723461652125235934432428073013694672568954042900617725191393053049695073398897116369682583532296548427286501823630739001504776533163714818816918660531975390850789477116027158306498109066767273439861372160624049441528094660524185546405372816135006275458694355888049746420869999780054009735116297239401397627011919426603555234857348075564734523429864518897802095801980564521487394065189427750760986390225434558495955621650025134944258438753398647356315990799304870646807677802878456406619920169366157237315926785312124990648523450706061629314763507268950647207692737488624690186682397692033985934617013202722564956007038339512936421781888106640895337850864713797980101507039574220239674866572408593163951502546634968417538139687543281613359138184088919078626052527556291288678878675850428266575322374050555328491904429962748097223220758393928811152288256572531623419948399648114218525591327698314828220197846818575506839582107168770890702141621307803980570037007339673717890328527533080995485090817262209334841128581965903208236305994507020187735480558603259453468666666548355308340590882099407881611906146473332617523072895145189425888564339608916001792638859719789343630983569963355376564632266472425926795940355743647714433374415160211204804948358914240371368069877367092415174050821224232894330811632745488061451074868851835713030683089277472862895540805086249119721794542898997812805055035223895843126603585110301869475478934538013596602905491832353856959964990443726494137496060748314621573330959733841093057967269674936496794874698981213878016230492737667923119324556267097343428756457608763514692001196672449272250118947988439974814592113769477786452292159152695616830129742747850034734678823261471801897581040880251179723464132975263444603159502158360032317146187787260823009759074786457256296379344354476037109391203237206814255911089700294228045440719002251117543765055238246693829839355919081455655448597552722226741532728840102410081114953350739441714499153508807071436425881936914162062812311577396820086410697615765613116156467392708056715105055845676094653542072384520799145954664124147058278296149197075795618566762101441680799821442004621602204188111725954985575807634417952913988751829219001435740308461084297383452657560840270024154875080319747603298463388633605417862661551087033548291704570457497470890474468142334863361682381590697266398007414914542154414694999616360412789919099706809714195765463176502334815738977642347326782059090574571093656409417361912615246186470567791601300990701417106197673844744792794689382919928857194465089448701177099252217643080108600346501669095716022477268684101974527592824478417464342750033347523163901880006648574697402946780981114140985480130980944780016091496753776684861533822156733236511094884972037604750942868801327368949726357588629337589119690053239401794947775695424390565752614053729363819492322814814258757409809863648074971063072208851055167352680928940423368595023273981404839690362534536586911777429527308885232191062479573815678609449192460793639356749824857676233287807040730063119763528681264484345288055089986502326716250763638365612652723807708666823062874815430298807099640484355619994884148802433949166140954544644110568583706982779109440252173945598278656957979629474352056061620462263289844519790878130168929346543043045802299960404695843059700801566732536962445654891525543037614361892946488859101751163484326572886291367963970966883376622226486719252102741370267385439401655199658995610508417417985310512258944614191934764981219150425669717082458977415370021001083311903938801755981201045051649390434468265012441253666913444574117142574142853140011682809590702673081817219648157148506653296156270814523059683567660128023887774075777879652272632163656099686459614315252803531382150536249055678592411826235770482355272695258733731195073928683974495443680558136589619389549771994149688542151148747435290213212082836329192591712124781095903283855308843150332713585547157403538824142870784481465224307399924455544172547048596780795658857370437418540359747605828878232655277140092149396504736444277732905573358727949434843309269450716114713682706080486404663936625892190128195985287573427013928476433828079933748081468532561765630139462897175916009249719491791499260617025364964888434543286077730015879048502778415090645101734256312235042847733739174891426157199371449921165001263293513168217269839923400764484441250566717829039629324562192611512775584824812875496618644335641714709554599183329927758314556010078381581540676016901213844643249751944230054798275471541800049228163624047752542536538149068889002086759354696847611850722308719273841367049673178889175111033801177423073427960207222324019451767097428753378740058742390069457910799656221793336722153088057596519251701977936656256680315041811006445868060504960916201324778578174168012700932073523622623768998509425569220881390390943598498932688669636544747968048091424491756493370394479447578314627103103689163207430863404613661848855888692680162844279037647131059104253136436952925398760224340475757620522246414380799900482339270732187326428917144657494480891476543347871133885024519439512272129876149813653171472537940323600472597468818539208841839792426985648092643225931238676629417709983059625774526788351842036583553401576319868782624666307851415012952129603707473764556958442276659054010959827328959605072372730769371094862856781943931701894659166032713041243234142266057512535075441711013206800836930603264342338877747247578725741256748988916736306109411302207407528693703677261471683806621105927252140884758310178153142617596658107265770582917279160553051629054843193899874647599493822144750649842250373445533888529807693496342454059957247438808104741165375360488547133333519499574256485201702823687317633035770427701492959945355104480671658016828916546237663636290437152078910891735227723835222133499855413490135449185141385322573710971902983159432186302343311579302693684965157902500997939465289368828836872608628753838980487919058975286768874125446371095845388604587026371961681371893828430049829493644193661149720306274353054488404911525367533325501640226541595439556560033920929042504517522475670331166850236358482006736564146575246193127523711446115760112161251701835222786177335021152143030894851476796105355200685198116801502308535005639820496568064669419183249123998218624397800455756616691385616650933629949462805806838340374303132919661857206470991794460046740561942905157232015853455899005807894996313908296659794074761384838127738651220209613961489806183840146806333832220506208411238377904141107409641207753339288465584739179543970736591459710588982332505085003131073486582329317128468742430555837980805197801979519899497613254522123340318269507028909295393266556678119798047014581549386350525500655748178050417251024651664893659930101150332820127166689812338479588180544069467992647520049638829850338617892765903452679949940364927348507601733891926794823506748610683352050325203793657027901413962984865261390207079403640023308556209693375601249298267503278411251805341854159709041799114238392830959578738314406426974752969712534033947977789903656380091962544575606423491195970614166843907223235835947514082594655212323172596931746119505011945013324195410518716070255042098743899002875107023667512713411595344122855792347969476422977332997760904308966989156893012320239460438914378047947288414624341729384326890483821421599801879913014099013855281603724458710245030558051517657887238215613906055219261871516139349856743882025035855724956808535372362320606443189539565152522925169255897754480200883385167595176185843516811909914220234866043824135166487727065163818058050501569026239922353686889631143332947919087907333273426434617369568944624957469267191906996631877769452295831584735859382253126223999236321872222138206386950283422488793914907820127533625553374138558526026628206734848618206008000922125053021484064114238005976234216875679000949947425219090838375983834275413650924233812105711729469050470255205298749215453208643718381189351945113554650081106206596931107265857745556953703407585529134937975609874712683496453158395441669300259673409053015988651607872081200827843057315197621188500865316159479451200150782411612851495719249155639608757163104590608284928434083888020374434780360604720581491301343498138119508258647783701258042494699376310172168436039823420864643340499031322215477829850551086679866024065019819993175590270447437270574447492545855358222645063936917837727464409741875650199786365623121669073816059847885980233704549108424013090503894034807795114363400303149090410491991675067523192643563149027743452942985547496275861412633076146940416828838520234185966523816811256472892578042945661714947938809598138608568536736208843579683412489793127396754740008100331245058516063365360430250104330942523236001471989239000963580259051391317925298895971363211080869443073358460409307226022369515507529976184732036776889654445732752162201271778802179627975016411575608472338567013653394621901000278249860230623676174184713039466300372241847356925043713103565786893394671301677023955949225160911503548367210718486024565444292751270529627703190559415724455281153567968886152916497161727900675181920665251620458316018330844267196800441318306416216345077590800876648307231388746679796599782262638565933999506194608494160334894987941693757833608307190239738121077525409620206035529659118363033532502136314187409398791331359988443989022853204486077442490388800476987236513885151871892988986295001527126149366726761906059346629622492416158710915071081276845320489521987057973122713168054287292167078874892385401670998414456592687643023093243060775750937866545358408184088278714245664225791203331733892455372672600287558503860241813810211406369686968852383584962663074618500622199028797509776465262368477969390199316000373419694599927035378298499115936233040570583045227641209367623389146734335008003233572924413362043362742411503082669231752471054265349219314002742859415957428078736165959119006770219551524860353184984179226669784299032208301908796989348202250037929643958227105138327032242341912058137307595567167836248067547492700921141037367517940725255760332671059492007468426695552392035315990677462835146100062482342445345941915111851422693251509512790352402367120727365845717053705275500528681077958049714128051397136563522776176428502150539372484738018718911074797132404493460943562848590533478777916086089818184070166415817003698205013471099258259584619901108093702141715801101188550158548497493008718742533282566046070281479819209115575796282715381901933669919513204377291030287044696018320487494229024118807593699267328050929432923735724896017357078962268975147281356031564308560837334662845534888277849346717509065408989634981327522433263774694061223470286397755710606210995689864987037144652380629463729645063399631692735060125912515920824546368091531224575670521221381069891393600948782955723905437626014348411962246097788495337955934050366618637199211822897465213670857248323740078048116629106489951230673223801404065135160004617835966036739202296798142565652078186787024608772870839177040798472903339622049934653993769931244033895188119036433765363295659925851164254762516777273926960390675857525804213335525515275847379908530612376550680785129445472728849040712065649119295545752752420543406060285995901365095677178184280772797773277434519919990039115373739019006581743508177030373833035687952963880240449973476247355310341549884276187869393116772283517194363013760805154401400036342627024957344653400518071773359781365633622365993016811721507784369930019463684274044708036597596723625370493621486112841758950962840825944783640593513671926953319806929878051581953405571097953547515350094465095546038445025680008319207138605045128238556188076911404285515889861824945999132546556112749280560949310899443246256155244512378372093858256924604309095861842394780602151985435928408635957747319069618786608583221904564024124363727280550299002494744097844466893311488487850381740038666854103404137460106623425697070246146692890470516798340272744969930977525704936514249706402235539984672352700449663345627369698741601932736137624143078933640932646357123898424436421781606190916748216503776125888055399529181783944796827602147457897308471623574703049911711734793396187766300103913439442115675902536541366522323964490457874941541424972063045918933974904580869194001443682118080963921588630070776331468018831524670869217990815301838866551088853973416031900971624340740736891307043301752183825738572084405709999818107490545003309687632620259119180343930723056324271699269077070077555637983016404404427003326990357218036610949640667561799254511531713060161485787042628322489977873664608842311842338792283831418122668510184343507366327859032990516893639341338810390735787062422621606720752931578975703247218775903808330266777838293953656786816694318353645343745900834244221369949682221139020568885985628270780095918907381537156330431052390206037323018762672836107085370794322288289934856319476894449837573838758328816060894348303542702932835269591034654263226761905707262416299596285736716117617601669808202346956498707046803701223326043210365290533515879759495965018741694075507370733630730910198470724231953171560495891799075656829592824414550725695129998459444151576863823688784314211043285402321946697265161356202748745984714353281288563200267384883642346328625447431493737752782535015232194502660486298186135126163575266318096140512842152955055695289156189072365772726832362397254269543364122519702806522311678224191336843796967928339306523518584389939523958465054934269268639594744525480380683194612449711414701914184721755274912687053486379721070037447234966780838119228912075041912936894487895546520422736736773269071831947706900844881319353102775041587162355843816248990980400199134443927485335762785912890500674843721814956215295019313920281636911706715661584769086623601518992361766605495517115608711414064756748005219753035247003270467944695979673525302401509791602938438468017555781002468045832785026152367788530470389375544043113731290164179012769774029262142754391902610490590767197433295479578970922411353179065943005124943823107792097599799839950941096428476361953966969794979934549732676218462380927476979193485333101768254108010139206755337768039148461898932491945735573416692121215996262669433632731677581955366441604144493684488393180787451699112234209757604473373273714596746021659181542255356197804195943493344924774149233230311556028250796032828998518573635735440821697394624763496072269303586660912984070375095100704108978491708571745953953520899634964298056460404820468506508543578236271866802090051444676798112088689354007704193290588622726001280698153120043199521672533107077727637555283088476315311030404279358983842063351925487206132233337232526049217407509468651804847367262872458067055131694820857668826580207847164514359867810710353181914574690707083436704114641371027514559297978919632314349534953645231343144670580111171989184246012198331015996416239016555855194120694773355069313221474595128237413098255128241482680531964243362392686403134570913596414186427938079198269893305521719945824415380893953617440324742928236271081876570058720105700938419446936229146168587271174459780912202445617990303733137782150903659741100055395873315392360130110501121039818340024136653405225879008302898486181178981355982288522312284498255812893769070335760177923773656161917132557365592187343226347409719088242493302336368669300488876491466486666385816401655302003651692223467319994456268295803707939951961445901144784951290001902451151394318923902419268688802236765961344020545093658095594422842520437598601163561550864156264768329321164847513574422890174645973140901900229572190959272475194695953520562545515717670372409937634103405179439884383024898950898857905306857814167191804738374290539645936678228129143726502581938635263812137839644118731482150771759736951335855791316835368751732565167311774322078763699384660413129876634000896310910505448410371030836057449242125509854100688191000553542215353299075716553800135817715003526111848159324764963141918751888421258096347783974422878805099831218161089139066647166776903997358084575049889884416318887017394743227744381453038600876547380065096268967921243679979010368215236102170315869086907458412563267828042477891180704014166872148272759156157620643215999409271729123073218822908434451780445912651639091148358298257373302232787977851954619812870055848709541165396756466163122290222019765030060595446079519803398712058446218979643960375237989587213581366072962290955118964680562480557854416373295135312312050199900111237635485480785489915822745027340213073643257188238525374612373456168718217223710205948768652910938128871281594737645671633408216984776153590556085299893339410938821309696783672316701380302692437080071373527059034227468373568136427542046921110801313786974579151339411853839088610524293742904300420777920494380193387968304104353014390304699819190042098693170356511025886389893262482053802856371812628921278626285209719731747233858274560069248634179136955519922233859943465843488720489987015049028269110851900804111747752310195453018501920749811408524436741256141504318346916058965019402991201930725676906569276354925512918366531863736585363239680688592570231724633670290935789451372218018489326305470113105109524467243681109073253218190275309256976084613794286320190870738165964237607325069175412538265932242568486505017812792704634723917048778951251262409193625074843358135844181984120976214399440610515168321137011585384029095444712400504982377434320657797751583398669572671544047531291419045129942045593320131740637875126080886224120817941003649355812364474272383335596806923759812051723720215773954564167632060917239456457645492580351047754988318470288587202820135463933931958487961960973806807733027169680356859159020536341697951618693597093315668894986692040036632579579378313992522232252971537547368806128865995720469633703892129167998486209870578321881128319816020261447796459284250550201718062683398955771190419846905913933361666313495633101970130784955924984273816207444326025881139195523137671121931762418512866807043432501181760201220966325294969213756631851182308126374167024696316243967314847142802411841254096053622581659629452293784110105773973061704478410426310921342319793993265729067547600435889897059299303120126887400155777198222665764087723593357294785031313676768041338906857609655879713209627569421620892042616560307622515164296075604362178443350099113379875874144009191856614895955739420332494335348847154446903807875353083749377372226466345475228585859208072794582167128425189276399938651983473316565925699436496271077593796868149278805653545056492669140155215047254661803725858459810298772615069223581250847531546344962396300919934849324431993779989535389134598061500558490229011270484052260080969539135919726813966959044276964441424048280516895334877937187925034301124006993322774190170038030163138779553214921244679744929309383865429809421084375547699926753093727294734044773250546795437617948176008823981934373006560961167166444805500014661265890976277417465352187541314947183585377351364100535402936447425308922714210217158369251383503239789903200427981293426457018343356654810517714031943331128360523147640422848236618331026558995574471970226849238132156594114804390541864747735354987565896977589792997404014902914393050948510690734228681564527284881939123111488662655835679007147844583239284104352012532375049857973965905211265411360449828546168872273828148723316893144648225953027840323483513229865086228670515242854418896072747586358623324749129335040564726285993601424094413228532406224577023562418512469870109933380379351620575217948571629694853865225117672827891247329854212410465245672820618202654151027580393813221026625535149313853458743676605049702083154000163124059419621136505620179475453342327927788184580411279310343985036704702545477986859656282996479602753288551213497339337723117618777753147077501847302811317039574434429116894612172831366213674026464970066668246965668840497318253934472306169503008531597213962257105903782833667535061091684469551037085225380781400155439463416786546386574312933689100954972250846798306552589979283052590920360767214837482247742955711630605566868264443003441048325589114735807899755092051383543588336460997114356582409088842359018349633175156817094255990487228977596678718547765600263560848270865515383323702160682594479537429023426271323126529661527409563825414550165475070464962951101153173686967884383623675808958771195355013885032906076648252487451226916714570222754759002856707870450240875503941818959612634530911252524867576287166182598855591790679293773142687079176911258495749820215093410726744225290331127971039013952029790102702755482140222980891653967156995672772329497651979108204508536101560142202367164397843246548413564349933613533362801373493074055727029713971212873818755692108065766077157649756919478202060798157962108984280060619520472206829679273325395581715162400791653404516544053206870015883245951136517661678014227114789130504449916815143849754315365608249469282855040441045822567852966850313365755388117612768082466993656776797483464233010592894149739966775765546004673429262712844323248201916873874080978346103969214763056173750240612734552373363699110851036090407677937715466591131453964452628103418061378145668563831821910202576783705425668552374557859188835130198029902389284864119260623267106390111125115046255600543912680554108143262081518923308967867571070272255295025820179675907665636949253150389286327386243680222300459232486294623898631107622991371744834700467866147858146815687071970070305875201508857665514263485057016987861127117256715769545932012086057694601007338383347161691096133135396602115846180051061836559218695847081814822611940684001467516722039016284207091641804152590925420164542134262004878090886863631257597627604153791903520596565128674285911922319773602227181425453376154345474740165874637208047825962485555848486931461096809913999472380787799885757113411684141176815593265560552775017647554083090227565923740112968665885737997886335076802407604065685290167103846666594184506504456150511470952244091916406488405819452692747758120648458622169885697193576436970518501579569698141901385086066391190252285535327425275410972684895880945456732066394751349532257529298378692029181478100171097911724111592071583050427791362714651163313703111420742925739579427118181710802857193689050352089813598698313371941012002401094246250298879525416669205182493050081368501956140610144834210200879559953384793039283190108197815866832806039273939772046118705101003114825937219807155497766042105140067040924700063748883120691607676654760353186439260669698672942527121236596456549148340646070753617276340257191934082741980754949769701875673228673961857195131802559894153819152664220407355533939015354167066319709842029275498695210664449064237773194197493290478034233532096814772195352891994595245899974192310920022842504698178907899130590728514891674132282217471324433220444059690687585973676787757398258283680212170671602238215509675821833791948832390365877208408511737203201602071822284517045592968080468792527407206695058836718681862703977672809939770250776898998443664005360030107309403041764754098937828717752382464074576574406621132661353971547818369419694562583609225670566231922175656494078769023104534271524245316751977394748769090547521179095048895262838750458330057018771310518343707011489734293985633627813367245818442207148459229759420269677874538462959546046199319319554504103883277807602097877222165441147204544420508438473100810643132274983994044376016379724000459377937683157034450036386217346486578988301762456464834583294081447727875764187532184770759365855486666488660475258428621384332991191458958360277196059557807637483967371888547016931965478119254322871792969075681105387244896995536394983556302923562873691305324522788766031114833585867062884443903879340220103512186366075437696101539852160113050736041700411148287355463068684724723096386290286420672143786774725731700766976478318481408359300533281043909673404116634072894090713490448225283846176563746280005338723330892911318803447677471778810778525101196272468393330457630848123842447666879431114421431553747694567120739708263197149121128814238092837487738291332888755668063462857229509875606749276512581638482960068600115934164565204681032422524579680238086300037541153924282914028939932200970941264884242257669187214335639599176716730208977800839004024853942510693038937082566248122372762376334503988169061393660381013382732108980961529822161870532364426908375097096055172801289513378450276937241837023226132694672143727512926443051698574007199955752304067141855869653104025704234333319456056772071931743728157211496996840940500549477538666696383620042277238811355729956768237032277992612031279985414717255432698231571884381021048521813733964332506631321385443310549699991086935079344050602836682308955474013146990010482858484591771757934459804091247147801566822257034240167845336722895095789544646921805873607754824229501807271572142635895824568194261950720658245976214658828596114315437058555847298261591970331639478440502066814946025907557156336830726317042857241697854451169110963583325728104808958671503929931789725893934824692333981564211537953105722599445904144624191946170605665400337654414099762232492793410453461634203516975631465394616658935992939652598671358864901385773343290375164347016152164764906376776745911249762840276805335610383332769382976188835936773896814049725103593478799637845134802469035615043383526767363417087994002972295997558377867603280879181607084419089596800671458362866410923018167715152119850782637365949811891496488623393484089073244983811403169399058718286399398054801291180194207912419321757468145398855897415426070395727929723094463959396321536904379196635325238026371731702704163154523247830222912873667968004166534064985548388374454020575327024363651649674165261067762827035141356831047751456417999281732573020281604403067406754631891769725854108081952193024090851114375456282540756392262504383950776369395426753928282129887496899062143775876171099865618576123290593606785454144931577174503177488393666325942420713303508644163734402104315142926183418146221723406629885648976314941072104161029432656998302739114613006238458411465302516189963080491732296516698728231858417195350551863854184095905401089137301093347322993956638939517477824034876342186197941495252120185786753428202667943288739511059181341635750356469573707407631420203047579680705249565024653794436849148159815127627231837542570652789161098632726870712098142098932096548863586689557779328248891688611933154567969510095879293588866172672404218764653021940234829830396479549957313686760027506724963503916365808756842474526550616789185111637120747166664826769356357814436375086705264992812776683393792182101077422886692260971030399698365109316076195688999223914236622042322139452576228019147615042674577833891493292179854440197585585402973104939370759093067700023953904541446553679655400800591263411575257187170149083860825578603664177356300266645567089361213002186711282978046274505949545856269895308423980835962271433286437496319164308301113480927602861988942137435196927601993439376117728245496268306988948747632461712120458159842357720246796071617999469876187252674949441552507126572895502159105484034994235160931167268504206626335496780361308252128441265988312283278288477946832251542419565666917129045493720812375819713294674771381065717813993075111275403583452580998196824169077280441948754738280164623617556417917159716701800441056939810137125972788838435485971453104697867879573174093237849358670492820731571611105150199968764896845487575212399086810858737047385105172488080900197318470086189828995960121329338791845293165363583894227637861741181290682048207462288720841374432229131396324501299072986969870085032699464270969248548347958653374225758188824221033586490840023566761656699842990613098292007191947233284400078512598407408199595810210453646658660524369566252702105423567230166518684513890875596755537070856708365047060980282752198700542859454039559448261014645017154123282649646857027386420969414822421041417276070792086188155534021067757003243116747200117996260863952087057626084883666376766627354882687135006548972265619509987461033980636681922589256449828065293366980124198306199594231613633577800030596742875298928873375365048180718195167273964357974863730966595956181523067636637870452690538960716003138719387788745981411216620807760521915708172699225004926887707869331842469401012726950962003360321715750960842471240125189530160295885794233926850993531369912987940077102126205048931947352308411876445156711853818870797999870620024586613416970540139408680098630369520941810977659282890372797545207971797218814088501351292002261696118718696868537883916958453809821220244436669340099237294728947361487710650309735698654538783577645252406258800249977817043465755055342242097303313520121413321979684694814561855974958516244059378180146244638725583377984992617479169779818698689698392234530668256659380733467041771794579345052460964889016769436404424325430908415605825246155399815645585417931851686411461011634249096080067422937491505278117965324536879373297921920482019354084361980473958852968695274674738772787551031414541695205920068716768419125665990007318049823962364130014238933696062158158081728138129416962320472995410026238866265206961560006498632996067637142217447347790504625579409994801209041177191757135832770285096934248463787031038681193699244602868230025214782239609850243141104663161339368878135346241155064464001276726244227401015170546584554953945370539473649517819699180289445975571355636859486824866536279542920825593644747140099982577960258413095633646511357217753512641275628979770281601020572394550934673848970548229339408533919058959282190809222220796490070273162645296840670264098848577797142436345546342895573982419926209419104895237882805678976466740057366770571348805553483555382784426321839947325483737529370407749081993811846770684667896716443823931216162391148183109916331919362690026261818130899598421430338522185764118241131514485793789682700230753357915796804757553860933236691789995481562083415157186388108523224500807502275764791451280271099100709525777019894542963183753972280214177554451761199560703987315724021522450443462613198118425653438431580077195202373919693761812227274655995911702122388865510250221558634816496634632401858869605488191153825977290045983263511745263584049590176137423413126576819165449183228627721652912397229829874931301783129503844350862576793021057624762120149741693950477040262202006421754532523276505032878222164635062498138246630719359285308661734394702435085862515642921399980128182248733537799930848961966056628187825899554240141725065037720539714353913616835103453739394233513725572960615255449148945906044085894718043587210759950245656106019962818672956267722802277413155764256965581315015583484871462354813659101081300846600684252879405686062292935915945952358783496381673458417503564413964330204184751426093816102350570593716197299977670818062209575342525984717128969192852758201799195523719467258000000224865668069972773748243216109222350997151557627687298711505946575669320883303628528166291798515499196906569253793857904109485255226246346924504581613850864186307060137618266564637146447409967580517551497154218055124149656798713646986650434756833337242421757435501259397565683140499612583491386410930672298311684811759986265161678257060570606946001547816007633591924962634564092622469231283503397722618405820234957161245792273035309051754502732912843666825485321694099749029174795594909524105171136879000101008870058289115785009949634881083696470143431792987021494754777314410299467845077751492283021794358389432695538935838248149062157811117682028578504907773385201699509181347140510672986560985385197703950247840968019606706625292556035076144732635506429992435720483975174741735996239611891428457642165533658419663869525493307234561986091793616683581407620972121175164246924424939336877374799153119943723226646775768318789817910251702735158660017385804830729410589364057839125657270766063769540277681357497684914522628307041541762810189139851089747896443830293035232323420725029405733113780682923486326066075761105659183149437277139195136142521665283686874955338100072271519589945812252555511913060442732083093147259657003071578211911068877009813309106994788258856550660244006549366424248473492265943750212126988959315580050534149866335373589521505489474773587757371125344119734168639519929701421620388105278517664821570931263564670473546593454289504382649621835526782282153285888438785721318872386879587964582210803108588184209272073828348903993488800150297102473256443908090073854389507353795070838424585200022727043398516690986540905388764264286427124427993961316759198789737631596200467737433511148746306031278310434153721022842820506369532429004553771849542538777899129158385113980649154793805233600637244033834416343863311137871985870474432699941097133789525370734741865013246905386411242340611259331676384232930569439888011599921803339919708506817146125067903471891614334457014423627991619689783271777033811683826516892227502774674157494189858656396643590395508919771281510436900304000374184893482100064898520349867561447951624637131242014158757839469804669052241359412367116064062940236138652438075718921086479710616206766334632099870976943907331544000783288676817227498695992374414908912002195286500188912543639358612750086123250029613259150741468469303884824710113996129718148672724978010511828981953076887726177117144585076694308513620544028887872684664330842416727329651218390219664765345791111481763818127410476217055115894476945230366712110346451787087292744941466453492854443020336947639327370190487066593544483369868837314894241966698339546145084884847433889669842874935293464819388394058836273502561828817602885877604850417710412528672390004697666298730175801628793191811271643972473498190010030070564788175029252444949991835322694426326546620623814298896021909799284497470487407877911321408041331223203588393075075923869493416515968592865288235210955110887094023832344211610322385531858082520281808436358880499190688377263300893514678332808465307389451439886288470456153387432350971276330694486184013015360865037728041574461938636512667331096592418318176833038258222461460205894505488590205572622079909184677630871288441449128203624095513988351859433896202288732109683050595478940931930958799589257235843973166390941238005500621192075781760675952908374888396260753312344211976717107740192074098993867879660309418181062674157941886201353233514301416677943059112427026059601079908316517463511660771692204305864466074069041315855503843027995702880110869133827554981008440309542755333693610031308644570650942849973902248389561370884438526897774638179383049864574591507783656858368987423699841817999018227170796470197826671975800685385490569900108230249129081983031894049625591671278301424289391633293735837535873114840554744143621991058715531147354033815423103770735487747982382011438409517585471679006408297196725721833396510966320333675887269690289135391024886894220644295114218987126639267651431429927781830068858385455440192342716482477899019413119542004370220402118131427022971926947352494676371918176013273767696017622778604084079831403881114495971602344067724827097215338537142790521393156902113747669725112583183792012801116311114809439582255667193462548118973636134186282076493745734220603608537957190588146215567756910451042841113262413691985628536643567124390102497982016594086616247659587451391915290008722376719790908155528402140951272409643325321081137619660470974701146132227577639170181074339125585016144254859868636652720440102448510263606843770563774384661123292385194047792429283429360086575082884969315344399682287852724991239414311551401385624239699529415388215085813994255277697532961550966996649015751342281173036919728852143430881323649565201003911228268961229918794081762491250089269433449993532302982948526697842524053119300489376053881370673901782947951332537253162884701337170670323465652306403806500074376624648480125986706785028654810285083521228538923865752867831066292975528051163633417476225384542566300892977136422450866371174842237127008064670160307514772570172370714919211567470478661131365034627269735366590289084951034096063700175797881498622117279941184976758197859077492739566030487125524809488406516973760793962859375236457873367751641923919931652324333145273954142087718682782820724338954912318104895523343685339439283169058288052435553209516093539078197689383067340953262393340438913169621433238548388691216694589697895436820272356918403738442853952939173139610533767512160799933184630395065621762081655307052294546443656931917701858230469465692794714659092211822564402953871237340025404248467506245701951039702051185640184377938752970676120697893276890140287404024899982061132641389931338277361023568006678597047986484152943456640633793678337632892778526864204524889228629144666555923962549935226950915231452615749520310657688933005721776886371804493225148357316152823330701110221195331420320508422488841611521089559022787871831124181593941772371413958453444609030920873720560405997344012584494302763654915800796093009732367520108253398595072866857424591912108388722611352631646070987948942005585586651512041976651726899729105651399040131945429494305932588218743005224733108015784113911211568797948222674810433345924742157242737568886676751244571463120522984587732773652790596053243522025290090363635424843581926097708648897650047779550997640985493007956858195579219251534863437243658542370636565837035291144461653434150791138675678280060630607775147095701466720165516625772711578920679590348466418746100256940989627621152105261213091376394957807084538713131032117055077499020126486899271223855169574168001195960919732905788488776940636694696568870829858787883926123730297946849841110097392744065541344581813188331512844289425993258672024122494376136138357928025733194097838427912301227059768802468468932283628560499643673074541647944551955859385567599037866309855021472102920412130152040759639490681616379135487767592545823494632401815252785698119978793105564234642145405380506304387411874497530607465716091232952264378190849433650441646412858738746957639812809934645771954719911779410761672994185137090687723679889814756441712740116908426559458814593942482389460788501214832120264126577456614439348652753900816858297788277234234030491985261311327784919982722587837006172458249642564437119621017595548790979346522535978066304038017913342857442408748672671900673456748092928275605093415733454804224708749075947877282744435123347092442417765450512381319565024620706975365565161236927490943365012706935536815964480794071574844309310512036354727871548978944993912609267713336136045566978228202292538335650398079899185724438853207657093905526967437168903313008504142181381025922660857515931185987066258574199122966048124839042197654144984772674775533881535167881572723316149982484064555110548182899089316081291250580231526856960497708474869051833563963993669961681721426531695872674069468221989993938521778347253927863311482480742452973299795149337911014163105412176001524612830163572857493971487179358076271205328744264380553758842733862838975836404355391641078196421156374921251100407753009238656159228350410870351573913111160875274655799124344135288550464395441233633432727710215011906904115260937245616523100788063697663812259134353558007209047778635514243280726415494961674311109231563001495753357720920033018335446316329308009752003429732006412559335827029015595928515396301501962336383994685561640650641879738654805524567818957387398525547740512457678449730422153957898388240095033524969886772636654958621358542791917999606841014187653730608878539232205860635365289346551833513063583525807323241560551981946329886903901005289102483814812165583593081381177562366640398806476397199244297888851786663217469652172631685604392805604689156120956463415304929604832326698286060544847139351270348059134944683130599900307609019010046179534611747641910559900584952074425891434993052784712900635507735862437377326816430833403634805613195765697947055629214967818008365072428137945642496169506453962013606333963957699004333503556766104840949873221524807855822194796207715640324601352865000041068746651391209262477736712016918418978697142350696633060098376552778731982715300177924569763224236363621775033716280596535940106932720380999313243174963617924105660614429720015021871891699794572202886856457850230051227865109309237206784818151146577455150430621897385366641992465249290047545245559141527686595707676858285426568662920132697047771071591365811496391154470275571504608975998247107229286428156584878261482000920594422363721263021072132770653273020404126569647709753618456312968200565039939367534119124947310262230581962600562985618362795800507950433651644670338540314894466304095715179473640960282700688731790936223594682559249650687771208767739115427696833153479375288866909839439646683595921912870683885907729800227804583543166113451486440789102128716672672061624928477391011376882563604130287400016891427162068017407569504806944917345670716225454081021579564554194507262198225053404202880277907444116108974866781896207241119598733405753001520813456655736918916392635315940147735459393448942982323593768627353733470012930769692676320172073008524406071209094833518990243717197018968493610271261323473770191735050514996116542788761287862043091742167003645047535609736820187415845832511583155341101288487656197843349821817561041455628857323219128105316263790592539836699164639468327143902903478278094697358427260721934099110268237936480149528266172269866525820199010113884041023440185433781812647039462347117945614886530390560641707456503672559001799112009636028206307963516211355862548918553873268453588065476525001597612665850544495177470966912297667528985928734512426838958774824796733315127170493617987882059030671812303462808447106309927601661824998985993319403397548028612571917098529083720461779260660358501720138593234980579337764194593692703551381787270265190872136723031339636964553409195139449095036168462100581802912150410930194671861857840152934207828096920693369546672842400030458829466551438414420157781267104085122988433606380713483081324257121785840818237751853778461843375691571285821888925168388598454845167557512483096579749754647033925652513069664950050412776121849764775186799348870225019860699363780109369993000802183133147530151023093474190335765331682888445007867121642536242072536773315491480123633649004432918651738188303148755461153087409716098336431335280842363319882265964166092445832306089843681584683938508081993294204653409207002341979785260051375736633212400453749408341732184206362788072581768796257347510676603708613492159407716528531442406023293625712652458700901447860169558013877529149839383684044781090751457319288542703498318428564890098749678313690733690558458766203193712233046753576752427818634257879400174470171345064965942752001490969921404722290380700762295007489637103471813083089853449222118056348247304886150196953466723611874160562325488127034552324058601307522058889284258546356533675147143293433126120909484642507585026522133113329404064261335183851419847437024072861969135734486266762047076907167194163995813879230233181384397048884634785390841240873955715240838357755441451310859511565920438493131000239678580381534439111896190739354275156872391086625070539514877870598821147833817484498560237868490864622137010694478370145206945157100963251706249071482744752856409344148994124917442200748186630212384698148452959180609315099097055871434623638252843693235953335854186236951788169720929538129238278088236666605727074041953659431167600588214409201152873709721861781477920103309427227596527419541695407198800600578185827518776983741129722978085583750756722292238781880298820871593919650387050002738958288353173627311639926992298878685845112543174163594706604124145576122194477454428982877354416688191033692045715492470445360277761729060373187541547616562433437071528451897705962807153684384887311591085370632411653319166947707781755145581431156483219570652138243890655093639268233545483946073502238854209470812749705529028916187658702537601357898744440977413187006265807089441992994291570435155868023034054282908339447811512754138830040746230124208967130440944184199859427677315368306044087580550007145622587253779219057600272439257322656116531338194369176507972987792095512887605758589681981379910365967134692420462736028219986617223754066693654954577794032480014651305317907720803111094569126170229685425677171740297496051366190082340892985185311740510021658178033157053341685404959126155597149686080772909983096536658113331815944450314732348952193694307568166829583338493749259770356754562662445879562654968392572266753415688297095076662190970905605860919590598402433156552633036958649027299529410790401368350462059382458550640428472697245931705962907189549658629934847128681873757966657881786538623784918271602117216379902121790247054226387344324524117985377575180743519244557942252064686771618932591897147168967760076859214433819373612203956747626248738326223498198239395243584343040985434746770593222337737518277005842121056774676589608136319243141835860190210188335388682810624981422480260681161671804997571249524808097105056377691993927772018401595552037624372215474371364755386969745772509065647568794781553582977009387572242051103790415809259831851768020379386547205288859144577323859253279344742198984342297680595920107740146840777060147492012566293611161047023633631040422230337983474364371145001055761842489156288676245081988852341167901960522025641028730059625268337501014694667853590363161500986738883848137562329689664113754205952430951652944617476249690310897584274176947875718604486741926093461397899500332268923533521970662075881072152377482094499769002963768320866676975748994784545671710707130508507784845070606848503295698236886911001001621166171549849895768524421333076106353341222426704587620235296356495664340519949687827287105019721337823677800794519094340143434062662063928854018110618359203806043500794611410127700008389614074678458506237590388886865062012819277155890773544561338098137280454672484699594700640991252896942800157642782266183614532796315341784524099093387640001054155961255792670052952106989742881013738487961376980247652293846033230009261326270807818969486512930794785785098033951837052888226106431792995815384870103016120422591193331502830633687275327857836430322976097196072174070472094405609414085011359480792633987825125880495046537860585001746434432954989452912709534513387763022919381115590162871688086513689653744115454031559560045994471029619336256595575161581035052301359998731420808085427312643613710136022056064975512903576305744345249645854454858146697313717412313264407376444924385871630825671805120152080584155290673995185548968481743038114463823902222863659081389590039097505707470421204167894596775429899396601866921718453932418609151057101152317345912714949080420480325739966801646634335348391534426271642480381285156614877831331952094285081155924531863057549365710954605067634746464487883969317906531856202131219228576471856958831466368283279335960827933059522079266281443660371253155986966614698255696525726611512338680125104444018070230344173910735407757353726658891390282774856074720374437034172848769106508628399143742011088980139024054853449365462420732841969872201500959312181099781785694847417482491816377838670904522792209466971786925033445777681185731497887307598910460968457073992128564980152736857760328568276133906561204882727363359545087068765482936313329070516121881188029039603660295262478592265365522820680003005677420829639454980235804599995941563406063403967837982739701673529026034779554790546041556690888827761954542462285582564277269796143044226248204747911668791063975710945551297449746240801469058764520568364583716173521168819142883799290444951976212880736846887578465798981232389164341674554071048254247102622796099080323118715240343810474698787025571752174031015023357643719163132079283597589212271646634654239414518703552494696907529676693449136558162443506603154328829108135006107733257374722038844742739097731865726288819537245434731576989527453376577711726080673457475099387099272895537997729509935197881423494333514268670184495264233557629310538811427841825549160391259269795829430523997611484168168755612295848618198304441162358272264875903399888895931422603337280979844544464987988695169324844972979561427050131331658219625294518872927893852982605730228073553036875578207150703064520088642841458235323875668577675357558000144954138607815124908267926569918623560906243079312431437999568702831232149506464917597570388175652534487418453407992238105285488594249320917621521464283295115658809064752274799117794973398083353795890074436978972724548979218137426955769875007084899411053789465300152036102611480201293719401820617196680745855747531394970226309247831921318103001099827152118290751121370614226948379856703929603894778192275443189303454888043855457523442216954016113852451746754415217629221810750827138963735371332802575541239115756664008741387819385959270433984301398251168350326180015904237355049368712016461723417265473800291129006246176378346079293965663576518533821125210982543232395702268132829665448577504893479499010977428749950151795299793877368301440462488679587934498798826744811054265828195441138503734388435770812104662883040338136730411990983661625360502738324838357441860725929190599110226293879961800549725544178483895684910902874336713751852589904752545945758067933687962701100370940827538056068901419021281255260228578878795828084395657397824353658768760768233080522555141486063190611599837751649882565051541353162702623076241634174772392533615911171926864659446944218849312079681827411932369573264489550562573272897402475982447699443845297769507098930261120544268801914601059656325271296917924917497271193975370416457581805904476339279524699209991668252781243027542436852438595632207975729082520260430764237015931574580943319287222654586018133935451857416637856896967139981824880114807435606215206242935314167223602399793445637538498640618641659112495884517308364643652151864627255907130860014661177595375674274677447294012651206129229774708557486683931593482227667887063952908445355587261106907643921953457461685114915189745196106864572783968002020549388636239013995574116018122206280634255114104669685152459566926430590712072611452021224360924925621442297509858594816564795968579347822414552963646305165221541248865188763567227222400865364861795013335496775326829513587429487473861378053172709201180350899114709718959104874519752626754215180582134232557384628133750700512645286181276106218554451507578972184071232601600778899448175069103071022623833228197079723773027057909760875030807484707901239585487995989689185060098298935724698829772604657476458139180053240376156539465589529674726530159698589424170359197699266412819142981017603664281578014858571987298775628578617674188801138546386848682360847739313350190803403222340053906025227643763444898168392915105886937320599821158003379666332100740450407127170220504346450266079408176379460527559027414711991199390785695845340160324764681789967791207949663989887574154632276405181331195743693195555427824733190082450793509870420510681221020338027888683599176095708373892086070504843467076844196054242599795644147605925694415503254086789753945120580720482370476954451234048545597020956106088972427658545739603263854169128598965336821262931415867536879984559359905076442321673116085046215184532742362195285099126314910678678011647108529645607513314334519392188118472986846646012262614159797090339223577298537796242872722856161613789729697507954730924518950532283539756256520751441892039033393678875666844383755526076162737313355017453448893242168933147927570416043156772187988068100072246629360163280686309932207995402519396460865443083109601977835072283186913406631051210093091086559568647106987704236962331388145919838760674524789917013291471179467484424750702343170599547853675697067554439437292555627594032742581996522780325548497854590052865578228864737373695590133179679766371841368301912000511078648757788712639853586974044169118079365518848025228635872371708051580062928773049092417996356945378477325477238072162503221203666953990251155662083475385295952672246660253264779383870296888977721190482847153864954358228026793475745667093544629553286325990752965935638006615280628927332777600672514990586502433840798122951968801074883754708520186442896986213252157782179750099832441099063902696544278593758243000465499890901835239583310259027674131842457855639209436503145942375997890402184127205200045089476150522739336794080588316169449265545306120470272780097180392629039388247064060445334133654589803091195903911946373299598200315698440024495599413139363213587700174923186886078288115447418012891321718065994921965242937566593780028434765492843499901443711832360291848105109175794113361820343437205441330249164092207110946140358457304824740155196054235253397705135752625829599178293526837808742086513184692553532794051498863764186052912117143439034340016850417430754107994086619755644476932142790121556416429465957273408900849799187883639935422580342110926886960706187739977164872282492715897560126073056668306168830974709565917609093400755217420943593644243055209337657006417657004284243479843128691456060835296099450316350966168566760211778290884329856002778163108066683408697005664036887452265119803387698943746467690781185887987780909528152397981677454820976122486738041941950134828313089339756286879452344632075780367523235192156271219512047202022101973169458079792674309781542947915859050775738033615723147633213313666408252855658419935789558770705111558779312180808465041436828224222376308782730498558391725541064566700202139470319336000010864501922604137986543667214991477680882449072747667386045411801016340547564775155067708026220092708901917738311098433330848527202951035861840376240373170263560717374922307464105191196041888138189001208500372142794483786365380750396444106595929220228127625399177304227653972697351699552381924924292586938503717418920753247272951027768232815600294660656492122624582504800462959756298089547239877157664096195609718170325084670502584384641580143100867425500800960785586581347552545604287538071273483758558715809537698944811967831838214970630385863127893428104320346650868279742549597166704824400704516925248805111676254967963539641676918685011212713525440616871587028895401445220812450868919203078386244100897412944304664333190089279999217462297126797973271043053896562386342315182419781076071255554107655514378283666897769849936824688413532933366114329343120343919723023691039943451356805616511239936860798993458665117887742408143385740622436612401521460479766369711042246244677638918356880297817835609355583884214003323279821041654007837766758266797073154135068730080616544499717277193260721355723459456585079076673043079110087651948023168484888447911223047345465618358156666592285484657709218024682794262207294006487001885552517080327773162399545121294784045806636921196054556234037097442913216010752665688509767942830099048120999136690798276945734878352071076215535439452724013620807252419979467278696466703213403476283834112865839565331159457684265293695679005355132063556893998358378833786689166918173058749139187456910883016090920863595143328474332158121278196238422222456531734244580224763748674673633747103152227255604825028253006460699990613299868537574791148795790795265210901900477617264721732272891508254049812973750047803635764471035367395698070609495905870099054959352577461096648484076410629450592890678357185037985852973243244107353338892368097674362442908483673390845099035047058995895928004673127988257332711043670612191043565416544126815566339463730459546367315345995227366963028734996156866253910999353385236668780373673613487935044531691155427312805730319725646820788806540936726129025300501312245377099134255606566115676531398596708530087624555878587420314240619758710943502848215168152485355882266685298940240574626863385730396303824462388026301843574237606299946388076262631518473042294294475846388236526396114264933758389945331422319838968278577048737572190581272464012567333510664126845902469229617304278816331240776851562662560364457910142504489373303281629204990304716601680661391176432383321911606733509475465460395653721060338290287255836679108375573056217812132059164453565972488111595443273829844222932125329313241908147219209126724619815992600481074991659597289471602771580695552702584942885769488498211124112409335020062291869562731345297800845269199920897814953498045899293284810058485993180898691934555785098200023875385411078899422607720981783723896114265168652469887007010371191017831903762561894605517101956431822481570056871002876856313091417566201958824303105408231090335612737510725456361999184458438895417259883328113358838456975430022940234460842063998969646325581042745132872491345469830155314814423096476820930215396992044957496241096676682990150762097880177241266920064297058945714340542361899643071910486888555103524335310548704411548162403407971178100469647245191917754923986474654605323237148811403338863166888597565952462917569445695779752104203117171469007363338462668618968758724487032514258142935996405244304312858829408055919156849111534893024738888694283834352370865802322862643279895179863854554932889147336562904582170054732622749629828977935778967928539828886167677520396462799962215338170591821229236849635425580970120823549436375911657967545763278313155723988403487604722964203511801792925997619117316151178343974411426402375054328910778537336919460204781618027726553595889475565526664821827234247323627714059398818388156874323802839750158085785497775293729406902101969131067836345064535718153004462418215893378013702053462687395950926469600436863430895626750568565239684111272087560133662174770563861119730749927384866172011469364266782958236108303825734141297155581423734191919261364745401293405127121542642617492841283440164038886412854808389437167796445413578752927633812304949984824819945056604337241480398240742062387281485169415457484066337580950146821981436120857111008452155706812605022195466725834778891524219282090986891174672842429741990088263975792077690886816382282738139943748585114257961469764444556696925673987293849607208948299327902464948061758370051071586595943145330703475025829831297587361337693228129228003754945209459643818454280031043910222381017389531016272367336084375060355015384346018382755241262525902822732467793556876911607744881767889611140148648999611764875368532743346060628346982172989044319600286654733173986772224502265584837065166091889159577664439128476991056179595116212397353022821856767552484822276904901376568834569428004227788374635661533672818936467443201801688769830647152585518008732767199865777092259393297858412084727145699842489381488111529861362821866557486299601319189778518080545778092765366502199849670719722334074895187941012543060616436581740084362685408058912939616317459127722472273564651013454113652569621180615777673050714447405146303432958370930317342148669189133169077577674330976206497936408383235771178259935087942568798213305521835629464071992165791613351683245151004127656439058714745133048306217497925392773293322779276925363794272058757124853111679372581402378140140260720749269852581802792548018569344669545817007911926534041520892908569460826926851459753527373856258379668752954952064428219009758500229525384346218831412305792833564860006289619119542968572054604670390587876183952724455697732853818792367576047582695358688358419504608390283656455443652219840824214770374347966250043976713263472890976919128924243617741857342588791917337913404216124179360545966798396485540462105470962000316817103972921835651887019070914898116608678171997705256120404435408507042861290986113932272544046092008274971916954764660890374880560497765290668680954817836908056068300191676832121733688441505248684932888607913542104873563449560298830839229322860612394871538285733503634181108134386475236341540120926192926581851292572980434424839131525784519184145719339651717182608981336870301150639424188300017295662137992323381909576245963323427697288731905002173058494934043890767481467643521581241406220423288190809487922301547240691076478511959166169948511042981462254680719105618356995677425786770222302674460304396784150337569238891846600621814571420000469861327671025702109150675552364475481822809606384226652500503581222824628348652205673683943199621499886742613273001423489540456581764616514012343156060544407827854146938092662825229983559213341078939300341010769201643731091340082532714489691019603718238384426209996966296992810177116502645165419892426134530209859389063577569137953590738424460810114564302407280148999684981358469712881764961694353590510810231150146854856686178874346712448070214352033220467422415963527662670329429483888131256081272352326948968646690597734293777566079858371669546639080458991007874230581479564326683157296794184960303672986012811885606846423434480298642700894254270172976175442828052266400227088168019246180444680419826792159564428899750434022019472078832354628863134670267164024845583068032588736165732574572163695387091996639646639317199962859257354098951939142917991541136627175959866209735229427950795562171247591918754340467198393767105729686841938141548498820363614880141774192700955568710417015595720301283636281992880313792023824360496850973857631507700541057508481126842720976694844519231600642977248074914592861529768113278625235806129404430504726844217191447215753856149296854615411474796280200145274305840527263482934011730073869588177417790779884797693162448602021481607500899733865651182706613850092067193666432069436859668610752436290828214727529016293578906034516614561820119140530331184426300520133319625961437033516247378049668944828827679270826957886900858078861530398930262691112283753465279186723855430295485345898787164224502636078809115249967209806724560383978416539002240378490284500095920529306399980141263405400414504277566146949933178203821634213421541077591008149828447801539376081875458429718596043780678569654838880816442115718526441769852039825410762200626233550368892761620114560300002434315373837526352720973304510015143522716349832013172973085447030309601771236210537460501809109521918693612433635173289913331655828220135194875392050804340821513639848719316608971683818821663714869772474843805080945815586271871461205347140841630825635956910770472632363112660187769028423584993430965595599821215321638937914380085977649301751243770507345044653941931370456581078003725079452533026149066837494589587855093310930025329854769446226519254979388428659474920130498612053198560440096403513400815232779933567519563325935919199384555348971368968561326605956023961647973631850254065449969594745434878389378994182624933826276850178322736746124186553240154785034293286683317207768672922343971213223110912161925347440571806260982935705311662314435956102796815071288587061168260222400880364328208486285003355523782351253132594017251391722716701034331188884538310970137411714028895128445973969462624358963905326683299897533018678935922867979594089213866202766005732571601563629107277548254863620223625468548257042789421259492372568477276908484172091201217287230165837889929647323635951139688885229724440449450309723997272439830323126426074626790774451865014613545734887068141936586700778572136176687548775678215549523396562262870775101676290486946515012653875221666225646120121460537328384056362779470409483193637708216897988711292185885724860572461090352101535343617193459503441878532325896852885472932402577626957112921574103003923142812788831507034829890554004714224457875410911759219724613334686897846405413531962779013493258600343496339921825357692892461217028820564282959155964937877750513774301896244225642271202839276107899769558986087889243783951696814773879696464368351937880999286006969319405269185943361086697499343094503160221758891107326279145645744409352928825171187531674000055774640542036319252533623667085699420013024831951724139324906704737437481012839585981966455246723084479693526609454625219135818968501177486469073207304758977729058681777185303876862371360808659176207186832634971992455751750312290434443580743484443441362832105848964186898529030755523480853551544637666639847176602441298514546603595395501208428189847061327721678120133105135788138238951726610418196031779145328225951580879471825546441455966821979100851218617819946868431273271571676594161364664019534218948629067528852510473024512253264659397253881495958932418896225589572276409502523704545798531106212338651759748486683285286350684710468049475877101765493236301390869027690852069287228330811926718973012624233452452558177411645201125402068388976141320951143445850461048636735563355472751975185773482988873030650961632184863461924930764917637338006589547092099882898197325199842966033244782156611725536329292265100543136267872415113420603744092838299463761434561351008243382155783750771253828201505811648315923904797467389927285449402557476386772655061914200829984004513720898398606645128761742533209401762378027633976003047522405592897545448769052386651925375124139379234974279167249853535414880177436811327474010695900907701057757670651717798425135355091055052640299685984417242540068957739188842309241335787035636622049316748601940044697694892491054876087315588002207692619034553972386063673732116869136189350416920526207357047184971221533506904111239619105629738651525756350227620805987847939219195232045444523713100005295905354081194139177753561990164652859189932018119745398862472328648702344795817574591159509960248841265650976443680100609270681352474633924734388501666780700091829579348083655581819625629179146724451922905301538529918322585840481432720001792971329630570557465294067963931726589177076744264808779970872463962481835747994500965581612739709068547720456940444598940180500934318498684297304937116340558261202384521696413522142517289992150705195715461085348580051078082127763119442728157920377618214214841902441699727953321719771043657434725282896862013109068085008880015137111040933347780494171934264284397350193390923470725455182111879848852936277368088250925627816486641350316567167371067318653971747523245370591831743908890831973055015467684346005602182931499265809951186359640527888577981060940229768925761801505815279541948299388791955192097966105022571109880434290888990577142903013959929316387927731242887631933718282987023974067635307562714960473437712682239163094598542644417593088990299172709762764389513560230412879051007790045787478834174251137447206985293661605881446941430388744772068662929857918600693597783033314970278725673766648526058993642058195998286231069976134333356321947985738921648981881200736964599601525561284657056623842173241028627397833519937290273564252396445219248892056243347739119979764788890581127805694486140577362512152026438181778978659587180715947313836754225792792319075071984189161770549476608048165210637581221563027685823965959758817838392085913265036391414224349910823563271822748364602798867584840459870273068311577246154508934712211391279321501406575658695647123935155380365624196839192574025345709312144731878515113300914827777918963855633253329840748781560584995396332705798829344195343292633937245971513314368718867340632567639337349664492954434429830891812388886437306631775359016036771478011848254627639617728178474912987500084085627491395698181201102620177324443077608970389021285133453066015310238605352840622039202135810632659661355759860409985689265985321470110313810600523817237708672266636924241775227160672050582115591078343459559209309968932446968210549283393495395800740772810799181222146460547909562946902091465585947896574135068095680120506142063993981520336806430638297426923686918081103182084539976117899794619159074611965354757862738030548446557685087831025239128894057585075355764295857831103496855828221446460596944064758286665299478552724528169159615963729463944097418095526298467998074865732051422884136253562311765918864394421992954823371936462355220260772711332017785630669245494628744249147770387425509417141322911239372269963375767280956778263904908224667104130168710718379192717485916096730612618141753744191400727578674715249950523002644872966247278362527658028115943316893532694087841411081569840238330549073228137165918778306760354274271619524067193473705292236896331780128190372508252989775531319730857740580582063573213587477904254345418017882020468693629123912647744661434813859207645157273318529583497790481283909908844940531259631370709637172215906971706704822727013090336081253895496248058765822384115027260233418846669398212028999159910275380092275899081660992996965420102860582341117154224216485529581702904105897058542605267613929072787090899938622515430849245882396742570301664017785107203352131330522623810262167633652867523606244812990537758964883314970109737749798672036292621011023704709588586623765069607128041668009505425129626791109070304527136900482853100871986370791841955343932711200455503840712148523561150377244999615833724642552293013767033856284590781716448418658206945190048965210982640801666050640631759981665381431746605725811315710953249656253567483068155992308521916351871022325060166956710318934429844350061452199558525198783639319221174934371105328122324734074365403058693453730650877630056735124990779823245744826806968608970029119955486689115751333648376366479614704274729105147357960711379784145743249272920533781788021198627144962520172150660125435525679585325718019393879352748233837757419010021627719105685298803672797235937736912199125544669059228991824024482767520503629231410653834725740488679232024985630187197900214287995903429698391753726830114225858015201784826644849694296244543892714391586387980276983248374389043752861702861974659864823017802724248233722879902221268967404078953783145772567193716328745058001410702320636194808134194686601167410862431481283306546453914393642549013751977064401778175727446625721348200981873282129597821691393423825814926644763014741608661618807682403906523387101249238794573507448827092439740678851660035336503614064134392151950362793589221616768161076363885432530160021735558335915557628429658167473451508278808486458112658436557776303996073735248278284108256645637802022895432771696564233973161410104380121689266053150106963398833757185064675409604822178743973960952574693636841845805671868195562614015525550500257591832824991767978292227339499426740160317702604038176861335387961409520469149465384953351867978695956955923985186016693960899042711539311207034342495791381220067540027873917668106251412282775014780833463010115917760493109464133397758367968593928046296049580404814097236455234515816349591550698836266118326648648592197225096659418144253692821631092745328092032866769616075474381388238796235634369236922732101279843099075731039932643733086547818451628959620418059055886617911486806219733810151685375242628666093718598247950787797630920188895080717079051889192126574600458446423004409036578488668841743401201072712216598570643791884824879081429220650657859882482571906670005558784460246839225598147160426370156476700320612139297709511046648179780251078593118490132458763363901263724182456307059428114499128460358849932307888982712374507991346361866539532223958786328585103059636312659338602775483652359519105545507542604950353632051096413489702285033092709990856715957256558977352520755766684437849149461212763432998351555620243254474393385089964346005581506629535720080574246914723369638383480236884027095570993367277556024045417376750750932053819472160515420369939124176581319690426226482948996516744774957471613897537277723995711258684520017151539157572638257927359795650413240677443105328238113729872763969545368418821095602523544335862199202615218738610351952829783018999582085257222091225352509013606696136052460928436340857560580825476152547598660044023977715074698014207381437540878278228076338249779974227196696446517561214094393823389580084622235922179328024842606273885081720587306301177537755836163790624699381832792620399290404283942228032467677449263440335476588706084880278299944123512832629709356933619622328244611427728127426919380499854293315924629462434503091359187789584822653053742014668549427765529515802671549564569737565049799242225934895820837621267509058325469253306952772766841166243063847293978057709571804490807996592388959932600288055878725962319462470977107246692805270714680731983686299571191620660184150718218686082353675230815515486132595782929987694569168870755084556599802514874783572499330548334877461742502013013794053593467919961150677720532691393909102110098103058038491213244370195902076845299461771250587022417572859220730981305492845033910984155254852789212139541054172860249808174922740647478672170692348965887785727266473436987022214434686936959577700145838938181393013763851336584296060675620238537901303181986387382677148735374301225363049835235956259637888397292873089812332042148642549116824581736390715731634845795525356114006463224196064593282030614577643272171622589449072922326583220893943532296720330556730709127866804119542721227034220197955192833067907361555714711587513508358906775599899970452486392253785907242443971932452349983831467822568833700875748061319306313001317102260175386220481690172032024758788868982172265994056569828324497354145337478617937845332533581764955570057501817133757465042338641604513560024872408585620848233303974716373281766287619282855434427783152804095317297572405043740585815040706019331582893742984828167544673360976892432597728048173669483365385590043775652147309812913119726059449332275585215207863121756406410251092559135945571756545240017627554392418576928192429889855285474015018675883828691184348735235527359212318782465437049767382734351638463201536639309363229642406877445581232839404265484717093977134831793140017042162169752490566862300641072587418723821542326921839744241946535820115460948753142699000997569997750086912344732658713695049536035070701156828891162313191050502184133311146755887213465053044092481653206706910292870446274449068042359785664308213615171404700523969916403082994519733060776865279374704353550355470221552275068556888961368744237175629962382274191284411859934974364895475472070797869921965798973194166585564783093361413184560649569384294353821516723483901858704013404802628883326397653095298264589709612589456571420283493240332949736168928614885146331788773413496441840292909006767037816667048000649776120888643684749894079623427909275291298379035668814417322456485769169590385437747671871675855657255462612888594796306112331140019674143534784013025528693505167524855398630414577965685891863869639521301968756464797431471952765806559885075292763502601476229827188124733783694786268932892252299293530478032260502157330802815978007817794242575529456755314380930330259346696571095761770992434628713366864055639504804995414351637895494880199306814330011251937671369553794757807962196634159017779022699546717191508861182007407394106501889445075246530560660349893894721651549701938791245119756243247960164347352638996797715552719188525176098068122546253556458581478305132173204837807845081961827737284503450573157643322514298763087013787468033469661924777131985856415466306723586819864904790913143561621599581215866544400751772126287104444825223337978577179586307917671886067585795594921989313506002071093458271039502029100417505618631426118943669729135741460321742445159735568940696614991403421365319694684540001360052143831153480161746101295917235727386135474031144433301484012310553801381222199675260065635242293803353147362887679523729304521415798022935797217782556389977327936897783444730748070258582048466709139074563473633495666127429977988758389340822232341951411001226478007434676413782024973862877572941491863836973160698142065811898674196169295076361864220762591352443861759098535438239901346136238900651555966105427092715121352661257536149824535659636191419209558747654918432950402631574552740791322069127103678837078778576161612751622216317777938665970219274064979489453382882361791697501516867494128783500976717891283214753204415445322623449182146233994245216981349970711937546680557719373818697105224966129072312032513095383590304196666168832279977819922414992956386008894721789712947560600819770198298982107753559324761146825568330686270228779165615735467929067555879925910712091344936275968880685162094429449337435753782831830468441616644131986411420169926643899426842319850235186531900831026178003278787045114793986928989958007679099490809188787529508536041742603712248074743076504042184772016150396932170005690502596394282267126631276664431555531795266695826984974573720263719767779470992562928808650767560936871744515073983096635094954446252629942939308322048926784945472637989458420767678826142777890838984330876899616007899851560875710580529621441126930240168972735980590112100694457002866557591899816019671044822814513046580896376212295804062614685324383462103460281435635430718144603668358554098833761260626686239510481149360249076635971127891613358273330648425416916960794160305238155179656992664406481985607682456336595117041629761274745418845616544099725753305371153866955647789103399890695728668071576557990067543048653137872987275738859224170787915427983473899147308213640701021935429649795037954779169504838986119383934940010457974209086117113927689564305859229671729377592146201945489141782696411403793909897820376825764531772723753048885997179087135937372877096240957155253265727253229375415961383644147485244199308282437921328622633242752161015638304572471933970100807215173893394730109324576733538657768255445177354783351520942424336080634457695435710775868202800810326901916649003049394035341203799369041039443552870538576927140355779071532915887217656838682406605724166034433329590629454234081703747897883780464404556737853332181104092610226126606018975721943294977883881969832931087884611641376675969052014707745020450046150603815876037567205446581196118313744730813283570380254482336467141736406812039412627236773943198835843007721283166074795711971040503303915430087530087954078692865664006306453654616474363285542290191529001724947200164484495331242542042280925426467398842151854888575594126033378913847740090541749482409163920020008552630071985771287511504794610511185257282072341822645440177535868817019147377897784216613759419753682740293291362991332786203244773639077346346253874999638889201477140807822404762014971821095467482052495014081841275818778159730072354076507314156998462045429906505034178645246840493652366595632840318376401753759220709901860415169029038716132604537484105891513425945035791680081486001147910960285970424812413913878165648178801481300538167059273826456235004681121473139434685913021663424578605397682070209042336121103961535823842682602834615378150327194224537143286606230892964250580776333116347831471677157883472502680728487097058534276166907868788628222526663509144798863916514752857464358543899465014104183539884391997879900122572286238425544108951748902282583176930725652068317981588419128739216854843268573725606862630706398395375917722464705764973783749602254106460333462283639430601484178647142918389843570258904996945578669311814802985324626288505096081998132737464768384638158201512531301484768832143281133584451468277677796886455169206352400809326830914595304882909047487043152670448775063154755424622498938539891741749209186385992632268446889577970834333410730822878362256098177373043405320699740436053838145026492406993548653220758359299799465543231044250897330428618946551543045888732435638530315241177549435284237075438106409228770419918731167780579159504851883240657840623793708297564768780133421586594113121098087163732123315003791386128206573019883765147434030540012829006226303541511024361574612346597896681354311575921313706278238942110541287728353803571341837196443612099673005781019802939470821177741086764092047319309031683963149727224621014679013937622912043355856483831874486002976067408573181936038691026040003670810889050812749850756274614915675763407517632912857742457851929714116969413625689537023001964861711617398705866655323830058797974203918277201657601433861104600888929519662402304745369720526888280040916476879411524863516195500025397754364994800030093261070570299361279720534374590344237112553957040826096570425208822855603071386747812310792975648251495277648119643612494515210409041239368267453716475124332621334538058165577876309209662233914047535149427819365377104829958366668372238369093663104467808804222382947385122865325303768074518125249574424419476325134605391990050942446720748552383940414696395066715685632127638512388604651307257962925716308883212136165627940849252343935268274517493451509774065689864938891551471627420429129047679876565067995152904402602631716320174360351545608411654581475463548487033922704141273527499691689936566139949921928044920078742214280374775268086943786504713020429795602781443944995140266115073390053439391736894091041400176354759512870518943971883533785617523557376076030119278988674039504030748712420000765293371147977149331326026943148199385986419577690909471250921407805255399254328494954496328300415270669594339722570440526075871065057437637382054758065619667155188994269197223172773047575425227911816313723994304497097846578192621414065993441922287698057925289011076425096487472358787135343893203364650360012957000023960167364129492412299208981469369359182637452231173390351267336754791227137847224581870513520310988736786089568939998068657349768998352977999754662083292385096500410558700803035603926317720404176024447081746028903757763766355575102709789656834784213233959112557343752767274796821921637654419355948173060464136082900982169763862666231632468050333368674078602448833326291700671437244192306477944306254289718716903290464167997962298064085151342806850589710586983839037519916772929186681267686164722749914703077969502751746721306382232454683641040488026689368124366771477703099409557194426644005169422274267081886489204809385381643460770665188460618275875787521606735837116299043063198114812391651850429750823319311987829019074059739790311313544186136080665628717901996684011549525127174497747821940701368244057717752606543935342593114418576374103741310376066026541062332339027918312043769306190112284006200118577431579515054312535844254088022185574881263941826154258713897520427232896875796738301839325537518625873466637404118832974027348889401012826934396322511898900263955074848761648442586684577800722180443582264213043241049998807077554585019209787370382277122855646763976993014654818378013231540878746985243951900249067086191036544393039601285048060436412718266788234562338821300990494639830349666957523296337975112938547944620031063756891290911008183474572172918447961454350005644778588221175335774201541019900391941831121096876329545834124420728076059252844747685384158461084014266594424217691530704186265286697857615076355546931763405356524369208605350653567456614454269874853132911664420839568158218172738483013162992078558858630749343043685796526406413741933111449735127353803460618748677427663184693977697704961130503717093854454399842352304978435195660367102241467157568077580024666830447929475032317583888043621711731806133357599880490308167480385466084885077983655043560588029519814164222923284351883611188116036001741546747279646578063622834640281717429587426075440533813166529843585174074905868966671924448468705239393422846977935998559123793653241035661013458569693842251632664043840629418839335533804149529823451671088762479976136065523602104302892611710307846647703705491972080017603757892187229935282578342316961470391833060224602339343889946205652228798889489863885014920833547024565253377816997275598305507599059981229972811306971186466931990053248654372869133396377419159679491948382608393917494408430817774333184177830866038786348695682419370986496395756667085037044318641736694775699644469404688149072499758652004697105099567144454607557431172497150090052481423132210404374908855321669856438060783767215741472594547839664750187563499505619242551579607484088102378278310089576909598102361899800681549169601890933298047010396675956277458053427369569243428133359297232826462385517851884203774238522116820454261335080147612025591682101480721993943877558691307426175433706061378254157835748317452047275890314135940820932144188361129774852925198124381086485569516780454677772569772729318989726695738667703275356733670863330570205866208239395430339838869220165834404526618109092372804898207351370857051179142009465730851679581018447640262940900336287072189083856575199077794418439535053741197562162020504336279780928325088418399010929602988526968363509393952136229952891071139451335547104965859169818892745310372191751971263638638259730587477242564733926345202368066769081579090071149227875388161789971383383821472863807869360873064571928307366268740153495165243555767895603493650789322183798040872307649950772415078449823468883715113542143975579438282454757804804430851038444394377061006104398540879333649914855970105513502441518119101710806275352020225038931065772321891873116793818115009153355435959898422987348646237248003381707723646121474663128874953861082489571308997388383684063376327126656538683677198180491254788219039888249995322565303547888419276188869436910492590714775981424653775210972060796425126001288326596608214961727608657870583870416495221411514605450335647513747794787956882479839672530809249964083473893333353125229454436160765698764536845968528483516778915956566301315012967274656062588877449562809857270573044102932074976012117219455701937519509360421375522485428536897916864779097532923745854660662264610928498739965045900497766453822772471108699474467918041695487562965878805160608904345687673605405836358152623635773659334726974623716621199078091454264924382278981793413180844962465723328167123185954743798670120376167517197028810339080380614079732469061440358382349172445492110109253117233820354391157506635004453322750610764802576922299756006260216919821790821566430038105093666376415178497688487274046300295672188908102488911352271438721352353739673768289133235316792444498096665188548585008363270982916200730468399731672429531802873844366207170853030435094576318586720802848513079568986197908291242004880880269983320209620686901883614164376109275695735287389913492471951364687657259167870052903201527236596686620220964118440738855864551021970216834015208664133590791393979937934001961531703706650609258051044780025592682504112453236128039211937880174424607696773819683889176185183041855347365908443005206198490492980099220741562224172930606752951238257162955729090862154648549247101682474003347796891407663814820757857384658870686083205435734209790948600758708932098533518861875578912465041544931642728928731641276172105216287309763954920748104154251118337236785694136308846243000837418484620387993414636181961439222927455441354375665874116951173514673480136958620553907320494513168240599254625235698804415514898274276166909444272671639765795547243224776274577621739400639137237021002464182635885800431288849120162491872318981405405182770891563763193351010216885500604246813500183596853842926743183067865378804575449463187352112025961025518507423842228651050668686341359026867413848549303926427511024452929662989775383794103749506165280835036709060364189537765059702406146154514519347733591631755440604263423821250341888526492360878087369440673259297804526184617520533063751665696439142646862263612494726525668754841137959813931716798847884666099275282505046326650503912195658440920516455139633009880191753428662355450839206121126597769108791531830247213566058013797970673761991218401771393652851345044727902241682035246083330167088825327403041140214665024661473405437106876324835005163564668297803598398197812093015240474068295695755711758922556985955815536054106920552077891491240965408100898863151978226694830932961132917760877343523348661590636330428347460217823195570461308577658118154964990156045914653034760293839200675277250391224905306998286412596652061138430014932687974027216736267353666771496782836942722021197738947458911805738910731278503047936366152775863641251162401054081061692980969125453961243178871436338423249510101361670006423808079591560818179774447899803643730347483916911323801362070444748196724288565549444224857353604169870950799096780454614409892493679604970569339371328396683729238905239933663971584908864121215657711288738144818073771339544974680690538632770539489607606205673727492161678783975952462706065837122505360238303476534383108384385944201926202137419862693211225162043500783021498218509816118825694736012074210404382175031124287097032341338252856818861043657752064782058193119458000636716375347973500659937182729989321498374069349032749173050325946852082635793863935337882598919752616411464886212901475048049190585102275658195681918950785477861275417096681398451171365614325717966560900850184106101290832443199559377201916437348721181892307582859144393942356371282409122433148214677469601316958912677273417666290488581168797254230928561331036422610869197458630817516879964623705820515333435991768697652829576474868137851321729812472048816864639478857513930935612133401102125997870905661013105390022705794650827613039133067669000806949766496003637706901481323363977271130677693528012738844750017733940599032755620549814212560782788661711718557424387713349424580720184072546320248998041105860803054337648811505777699077082940251624239940799869469089580654807555065977609897667382074375625802856169679724301558089814364885132613703132995930654438792433611907780994836469258199184278185806089518701707671305855694062274553662078929537319122022034673341662892722609949679905626808105485143770081705671397398288382092486254534495949472121029860182026730588837962692669570250852142526517454139312071126110185286946545909158821094786707805056765465076993381391000844635270643591429279224913272857915306087744766985698964061231211177586885229204191539935993389673268338193502300138356530480607381376775920570337562881489585433260280750405946812322596892946075497103156138318919437265815538345413149253309060302594477006372956532050060718980553409773305347435587297867424271134499024540451331871113249914522257249472494710183975644267568370373188160184560970683122373910189525442171980413905949616137404212784814247108216202376369394941926020572093098376200085398776030344872067457507978595748831767243590947455079507895899493503598690252254483491855139465638595460409792469936725842364882950089467177428987193392517914374040783735724716135988953586227146297616154118842387836110322625037969646839016233600967210159497466261977823209969593975373676604951374906985696089741106261021817625689281268474812190735281466199805111099756620871868435385019207085613753674749489693287527778920554829281937350650811620612496555260683526298693367444308529263580409404826867147340603825132097381911659876020291791835135472240910532070897854040084907077898043619359697743191966072750550876656265534140999508533932483440933188587022088925076446696307907101471633459331553656766901945985918893416012295592002536154685146541844768302714820889577132455906235080955974832425566925199035407550422918473893335672255674145448527098416525673697740708553151124875424871478106149346481740566397057344452172640893565474501088809780182294696034346688618574537714416748581848031960389823173739506986371595897838304573472726954967540236274356996404328884045604393609438873190011853005279599552239167884745067755282431643938250156216991382879696914489559237597616769963987489349452976970374277635871257073696405840076006352340206842941808968486272993653545645697151633456833318261359693806066358895540861247207523046413069788481931788418752932937024106228776184382332098530158328278425552168362562801021130998342885041106321903551145752854958847703845715831650188895749175377083347811966142659961901992125272410794896341457454587350506313289091999715574104794671862341986938383889246470514225778711648712237747424917500568485039407570163094527263961519874327733372277126254050913804737510275853967623732355325112906490542526794986106254603482902095492676770658558205037009717741603718023688255108499773539451146286129891562168377224309452773048176003016565377026583175880807009740434493232375677429306686569341858567594283780586515908489756403714788358533184754062613141590106018659301378970836005100815180542091977620330696240543451092288484991203226114112630061883816878004932539414043318381503181807252211880611865181601601094163499890441947477425116946121914687349335888144636151722905213770186923227198461387130361258132950293092672637559856899985907820415988510529261034721019825526573483156596351892017451669334404950148638681128405588532732874440763928736676228572994479944200629405796724059988838385820869999186973840320748049575818290514740706709795843786845138532915189225554408519381372989821659096550440745219280225189187983510199038773762418628051597401876905928192192178314300182823966331526465980871517710978290525506050398438137976032483561537755550441762344883645788289050600873865424317413911967820135113027109704347102390981898731004946735359525572600048840073488776217423592281967703165123329565474610651731576668104691573400877457772169352242030541868735827611798370103013134900315376362589685774987967194494477567460369353072435027732507611556871448106504728585148302163753667355331473964787441067499506887292109876654096965020234961665200636029031060450314675798684050115950914597145582258931845625370886243558745250188324054776326644074850157195171023994355585541844746896046347475743052139292495406160728146543837994725473665944447590645368616901846681840528112436874543737918495166368593672510836324371708545517241079171747467446803589935010498715270193423234255854774752609445193314859917025713968378217014968606887681717499494505110992525419580955146227095582501872417902204999267038796416094724449671768318697168412156746404480403803222290554161391126582992948977237532344016112675689032433670949785066968968858467906738177523764684373182991366969012896979255994925627525598328565550819997008503649081896042126653182779105224116378548123261777606850843769908848363882891049628569142353026061993940400008406621358012592296606775608523766268414387701103507805162540949253641623757236013168727090591073563632858504081012211896712832312237479900381704901919729029786021743817260365673065595057316084042732104343190609866227560366339761606462390651298139183117452848187378383954071073839118333164235033310648877737979978943186138286743198165585289563754087126776941005997676292413572549788207920129627636162424445404799981671437440530018396463832176789977919626994096541022318021223182885666743623866273033072267366873485948982751429881646993026135295310730157436603402114717884579023615778061791375485722838591853676206595343013935593009393952982788339233780150341678992078084736598711067600828588903200454733193715849861397114170638394478367823441907522687482131570351290602768268716167265058938784072404827351489923434257296684872123684837889900215198161618299379773088513783698413272187963245557791466158909080460948825044998109326032545654717904214298282597305537284889443584996604309972616489751723796924817793523094217036267613118685776287191357406591905930256146595250849065456683642236715105128032930620409399551869225182262197444713867645303606772816342847785704327252976300180416131105988264733800326656209840047888543460394743183916294093624566465926030656128729882383582701871494554204670823662750617491984165897770080902571712718127818832587995508720820924967801272786012955979178679822139799915412008183731507316304350858603784846178296478544377470098235871610102878052410357750663429310473249975010149279146869983265544805250067239710570150883263437064154777337060425418191823415544060587178967649774927681093819257175211035434540295532950428019305389118846379799622233537664434776544980818379737943807499259444232716656599152516976495830827141122444789409739816275572888184955641006722858878665701171600443476745036208462766361730520550598496562010267340419618809433729365201815064843716648194928436489374258852228173728322499718853635786167193407385586350348670034178977731229320857229665244015372363305278495898183453498052125657225258220277687205908465133744478863095547780709757959944749730280734080712945016840289830963244655121618052511272169858038400222468488238124346476305468870514991385166920340538456119994009263081310880486327825495230848360163282379560322642303401548550510292513262144834528535724798959695239011301813986570918647534393086768113954394991921261745728400173872615379651605222352831718370729320841437696001972754725938059039674786764061279003725568412995185615511966499808090581781950332273421045993722604654298676082072770332327463158187033686824224139939486278112087493297516234330016209767667389791479601769128416984632181616371463141294584762863755040553598050654512641384462808336124164918119365551709425821729185547957309815295132507367410764174797614629960758130260171314886403349316637395993356454022321233969502252633545576723845458252910458276807287433103818000816258126603886448754009179893762774265923601606184681673987767765884596606338275065949985464647214550939485217587302438024486041668321887029473793034227706731312451412547224869942750122712203209812905235616949065586739368014521760862890931878164101035930476344729184758150839355264859039673177607467722370097786848830816120983099526124845457883199004802136938393912923810978431527445110308248749808002830386846115420635220496294324792888967478265233997977926354068145659809005216439191726268278934124393330422966164451606381989497178100956972810654808137718011464928913317644655093375694091698102397454820825974365537539591483935533972752095329204173779526250503583596685437976812305427244909630488409305833899181181503253229349868630400060791985587924039399084306116223258284524101718858979759066671164510718807095606599740064954804629767237075495461876528801187177764556278103047784810494343398260640356276352901698688446219661743109556559625424275135647214635523187118972626887305592407232217535648694235910729367325155501148228361782336620146772206432943558222936562885336521605933599504919134331884315367789904160468716728657694473990243626029383248959841484723514394590296443205018289534184363220224392207298826210197674947187397776152820864291009343804633961858628328634940898499429921858427031612898211442909867199527663451678023588158979004265285692680221150994539105542071667635270374041276560213191119382716796922571754028038739558252991944356861738017079386412414367393840590300925584290644251886262894455267303474747489965418178032589601265515049440646186890538287996175307446875497233220443341379813123020682772148721218158970970441982859907117399482640702688890678634759569141196871244734978132105091095256927432170280582660761641858497697105611542592475363727868520296132109716848135658555693701326593848571773204243940768771995395659538147719296913360585236128140703593470125357126372927025576050764120634922081271663776845106566139192594715939555556186379732055909975482411216860661730629527930663819670393188691067918879570240008024618387862551677261301960250332914657503412133693104942289451783727802296153190520625584837754200905528444117394787041310789484892051234758282439508344352622794412593225420159830704686524145621242233138611803845113164209822811076137940591616103377857070801541945403473210347654510173137592484397029254957013108144417282118232599167312776210155742732303325166483584805385951197882064940502065936659550880900711655256474782087944421393985853487864625772397932067938678692858768862729499967227783246594422550101508083563092483125937849488850260542879497165327700851604017255710174382745725493339842994483807403905898233704154841820046708680652459748092802646548355965613608405680217206510328000172502827507180591360286075133440717961964300884187364777467251763067584553692373428914092928353993191348120777796434767472584409010135613005806668830701703353500826830522115730809375366964486982260998621618664264787851779422122326017453202656504962267058218282293353650950901431809145908397500587499118022159769006098819925376848947046801085643852228685457719994444286010649752978488945957673592311180384603325434737883924164640036444221873429258183468518893984479093787675422594848180831726433899214856364707444076944304064397232833576420027713146264314524888347384301880060432573595123127805416044907696576274281825615052832273168008869712267380704591055406703860550863188870273830854060254809787733293802653712451558851708046931608613067789752928075812326257903680956766830193988223007585567304268952440743329572981193098655375315802387510854747947761830854133567889247228050841460817002109786180516594521368603434418890280255174879335668265719626166016884103934162513673672186102562580815376518428262932266832973315763649584561415205633840565347595735484778150015438356888770331987227486369126202612373195873790380678315718570524211564631110091148207450985765183086593208827413004334598651518705049284631874842651246550500166209747954884647380979735646380951964059788925678085667145623234309278726096962239197714795201561179495602070922638885249094167434487059052389389011537330296319509630825712845847851455663607161793642120832557153883750028045440828619979919050827474996874758384004262684002771776036789547866982565959129657221072961777787409510693282581862663486985382809030776666707353939920859242343571384511665465396695266716513810679863881893472007770817003254382586244284385592612233930307020016104405119612855035457154557679303018402765315778004895904238912130590263881975929130311661171515066929871340408670846997537702926130828530015407530265894117698719732079498554837660978854340155708790704156170587480990042357223258270263979732470706459107193667567436500861675542750565410264089929954504589241316819601536726763645677676415278340140189072848301617903946857710696285385240831490854459077203970377367893048133733037097718536358481668750674662597289599547461268597709770462050359123840183926991107195473516895344826818324086416205179674295380389795819102623790816991106661128465190937234909472320986801520382650251882998304077746473481992397863038259418796148645872414700201960426574748342464240836353798284725973699356325119023501746291911826996178207028134022310587127301644234818312974945822527076577699846479662367784101340837939805256547316876777357544319261656840507946276516947120722983541124465181796239771155533739341058265961175510963186414311071298268828713126763316765677549326415048548363696465883208220904321587464957198383190526450967824703877668577282026637615996047438419120648613067319121657650405306124943480798371058378905112999156925889873577806490763948818322715095286314313142733658266128445045782285825950777324714199096514872820106717369701095305220819739726068901987242578952065208464355879087647825156669528221347507350479097818516444589871753592529383247799260267657808229960462772633271818599383708597734816354338774107833292537119445196501706107151935377882776455775565333202892161921913956155455935532120177476170540375967561627922084760561853191064469274385922207100841010754814320750132091156035265369192007011698552924620478339291266227588019430454332281795086941878869897536341445638433708902654704906462057829056629577503139172773858602658920722659378665375156511501834361158332478735408480865041993397591867347202834895950952396468625800618798577595840248041587408254861647519611692587508369317662549248575311508918503322801308152781718401134447677639219934562364517280740649704936149319704711114350231497340382769633552194522778393143330314442038027931500081717169739970897025408158898259895445184684302393901992053521299469873043493275597211170956038256134188404497538036850437474798391657243799244560568601425160471180606489471864716216799558679642425015288335956407583575235840979757243033066244643736317365440986606086897542881629208372929552832878159402010983439603938077208069048719202222993087376518924739698973331726955629891858702565481711551802570218025579711139657238362915683401334577341496956483058956492673826596960592707051211232024570023724950636741485861736412706099849658976088009195609769567037773288665151056701940264163206543744018229226097009048032060586129675692026038261663768689822903253436449710905762833641930665439603229468671893275300798519363992461700672946746747165467921666474589824384016368641303336550615405965064277412137475368485764041389094011853775256340010578449458052710339231262797303534771349122811499582964603821809687015179055692963429140338186106895075964195499347689484127689588300186181020075192861902055650555678405625352106474808393461557390108838366374588048666005618206853885436907777221858754681832851264194665661984943870657260523310698573280982241864700429904848516267423158378039200904017549507329940601105832308685232600908364613343237516611118266761205989034699794608016531198975185886140841877045877701452134775951762211373408692406533696934588137278215874824331004301081099538421660956493086029284576692799652100462760282120741727555195140327423599014899819535070626407577158259416279481776669769015062715211621908532915144044170861906022491513958027978273527839778347296935820845265316084366266254317953659365815096304128810851871854484231871281872180511494539522912191948249406992066271140507913257145074250837632431819854876612098378803181384842892484305585528561103288170190101738311694564878631701168767427542706511367491376561947223990733454904013583597859996428592710022857255643882580932902527405185221947593478895407251560344501227293473149646595082333671245418975787830746753422717849161127032057215778310594487532385039646354139849852385358179548558244778695673788208743502353567314488639316234322276756221575162492651393018331991223768567486406295645717651526003410780186185124081269719643542473649861302788570730871109425716665421228076652266390789522595209183832466625401854646443519452493334191220294388076323423337424804902427837984081400258738626333533804395384269242749091212544127067478988574872422368350029378028976339150624397663225686808822772495812053366370898169524096445477511070500493133473910517125911364784898306015264892364620814253182913541360276812957455588385111735801233950198862144475415275482505918679586676001058960375194172787173477111916258322683379640933437658504728494837623628305263348569819448585637639594522129030452999506716365078294718839307265640881507740182600442382023906935645575088844619309312892169237755495109920919151458228508107658033577782937451498772330017373772232557363595755736741658868685120002793508061585977443831726166312844864851007820687179272570187495001416521363785364739144561553512577333317232336864323843309668681093850050298242636627219111315068926264085950767460021923486073119920874689649174287729397318286380911713398052223127477758532006474386258704805739119111671503189109427548237001172374476243372953247757051430356891499051971721502470397906750633018713245009254455513373726266729836392199300304307404653779421740949470084547322490917115914627737785363045689878316256236690830833754249986609699813063104425792346286648306691179251568494575179414244850906799554011331659639738717461783070466188120026228415067777272645407232727886873974746133589687614449069030983447028067522821007079572160250563774978290811845818060148039427057942169713658365270627392858458838868307226871447961388353841907206554779896951271392215989980545029917235397391130683676372498962720921638406124015276290391825598332784732014561724731680570773850834497285692327456330426768063579155966556741926751046961022933043971632493035423697495272356222573091576876278185103591965635248979533098359060155572271046043227117929820078304505596640935153149242980988363645987808668478036531707057302268945359618217349972963609876547372796718619032915471040518662745964645558923911004695036162066101836498238348019389586235789206935942238127465062089811351451611247676199219803819596177482625108635383195557211015577750076339608915639348450785874690344559237571751063840457339351487175583888428882611126407851422066375059430146999879782662039990689517029613957380677187363062032728644040483555723213237168688511739785465449805478138829939936868406962952601302426387673605169428334253567145369210270567348781389774640309519613492509166452335774644335683703358645156789300437385281393337350609823685477202301759605747183093412383418980453117949802926316256014919296991851124646422925228256325236533862213114467553703689545039535576541867316947874027723651139738644556676539224995624368699121988939617982860255965269477202804087984844317829516549936037749020596433376801976818466653610374194663594058108650269004367255867918514215134390329932970176031834035564662862425945360729322285973154829399644512827110734119061313482838161878997905768302986327138512554567448691739244358273300956466206751031035165366623844818316018977033384743174161437517446177272744906635955220467609753908956668154103042361849420417267160517997366200673139099620662566394777646049309596540537235976852070031491007919585178293605639483181882602143025780479713038729129932171552621998695798016607945277055490998500425454104785399342648365538357311162270335884309678580867398349064114083808577774735519986462940327665326905716042174312137757884050069125600929587429727957878882515320706863773172486805847961966773034652618281300846221440287248265124079244543085556855067638237403929352605496650900006814520085618272511893737149209549090042340903609530994789577933282436699445731233849088035118419280077085816617793610644398455984429172765122943109108906467633331835975856148785450671605540751621392698935724806772290482839217012848429001006646759986075888236488379074426219841209058063056762469758902034516730018769853656669157433644032365847749153147179904577317595914155715646512401501598769877047610292710386490404907265764970675390801023764284769938373938946043161408000920198442393048560883268502829480264435823057424628098114739526266216843169364528797430380305788732479232524315846045962203342845870745039074079725425639759574852495076562583826722704989780340073473179537955614364391435120368462156648227416644699009022721319173835369764517804001090149928758967280487425293862560232163315227608731564274171737062789390232420017406791681617925868023035777408448606122598500722655626030037304530668966360912122829124394465854569132350707799703332802671182399915983058614866713272217433994582069719729384634084534868599569587030662941501649515344613734829692179946347420563510162013246450936687121815703046879993520202596352183897070750044534641743253229054508252399784066835651295116670441758767501000293381003972007840923696067204787356282372826481262048259215721432544166215921927537479420442482036460961022922942459719890091396837365046212438661515930056984559957456557923440334800304400532899659568521333416291072231340238008155543836056291676892507788729046901466343386774106199701380180034333573019127667961324157812674384968127326261955140579149119048094432479478411107125620890274193910726761183559325900886408259547220903916002963896098468200440959160431287905540461721554978774940037390786344408029884119712945868740275748808742885245290886093111732601613012119215788012319585297749882168414587744149467989082871457484294244501110514922838277167642579803639837599398137146036709337647943464709266167991749484287400803038432743424151483622645137252474290990361931012292650159044370957188642630508049177977685605505136223947163983093020814584193527762497346964640720331324923396223225655208365263756617384555342885776397081086323853239397435211254731386599343962774648152565226662990909555980870789946384948311694664914909930158359269790711801258598774192340899801700645983597031535851605968332240951997660026521132615957096206153209085135648736606704435505450009977315551038332870381422584205566249990013741479177132067144566221580305685476556315070760347873435494528735001957863849873400932961285993320900541860775492173527298486412406548312994615618064674233231950416986609070289144061865124194084107015329241119036929849751080615076138595112914404478418357681353664068725563502952396830098596728726802685104068234886946731537288835894117007884756056166932997834524611434852243741664474452213038803371898708682167976626601055182883757099092430797321493765341294483187135527561007039001090468555012864886939642673614539696141937241775408003983470181015030364615412559611861017832019617033759741807282596328901646607204915630871657536495881335336201202832890133649932518791438820535516984006778718726314172660457918564975538979953041441622199263406953876696958078627634731968191060059387951027020346176762730500559324355286422639366513721840957839950169350083796699586783443298305366664587025634727899332441377324463773833869810087014522048572201778838059363769838598661637578176515624591446806686144465046375868668601707057376891903876023600866979463725482010398274383755063582092650849998060395856987516034492067845147836573111070722762861058700546721575229347632154544883113820864239544786610095448882199996524267323331244474073318567134472336621643806539167495912051430511006432480689707837884176612307934230044829134663168565193412922250771361952745677732198874490091046933981797595577382847564548720158690123415258428691039463209709619351169460451285206307534924799051073946110542456291189015311161520820984959816832400551454810901259041407811414951936670023430936058573730894271324442283793519298163159875091644742660199676996729779161698845351740924056760073237421256830309020877150585455460271575205174043230241234852686065559619177409074487988929918290709720591613838876305415334132053279762851443543815012341645039800547811759773278131625388774732963988669293315589223568017484250092082320004345516456068830822075039131521782096716488626777652940847341512605330038470197818329168771724187349906348884357926254126191974495446616325423526067461060277972617014875327414155335539076272209535573285047085914279672725015952216806833905394181944245456912150204462192430287428871535064539608572744243065048221272295491371364305589339689927335845984384321213717633822514313834416299637660269861145286857856629798041880958202819094362677071692792033396139070915859316861189473879406781428739708073861281957059681806268992972015152718572774905064597753361022872665015209303778946365298959119293897822319864796594415630186395944927429206636321354326647534579804201971482357523437993834248511254674922164665395712733191398002647178181419217466524496474420109244458451310085984430836684559815695717397817040302167099468986123658893511422288688174739531324793526389353117722648027765753721651919240842103513976525785460759520068132882082906218617961499128324957555946025955328432747315568016873922064728760564317925680583352169267137032072943368226350387335347414093321079613613425683536038694222016412313628541106451651926840982453979282921625187022888824664455840776210820402548013584612487229983246349304711038431581031451959039136939150221007453342703792498225340986573926599099007557690671878627224428469275228538479192952739067035267529143630959677541874885886855451077524576612390524604085314786606166035420746351852765638767224380401826095425431540489749601907888743567747004566772145786322108465746120248267507196944358454335773995358472304352627889725487433724541480538279528174281029390611753480234223030302465200787175510792429850333176918602556329349347225354933068330886159574838780484946701051696280957194485223146375352440447033342546916335073352970342129085961913214456523560327505609850525842553143096890096768613357932408631400490434703628954282529210531262923214524653904920709891589831657821150537954465757788159506621736410252141248335487828078546228538488035577389279527602488201758415619832791076426387438113433805052606125208379471020234579673204248614817121939614810530423433719283714825915487778403690854586135352380409944620743831540103438532121736319024028835021727885733067957001350831124490426541441658864294050588936202060164982766557077334301719527171134183277848613456145856010784273154838962437773690037004067477377766331158085881226438078492180428820707744442534585383327577289471606995427341567136886651951650607494481536237559515994426213304281600210206194288235031360804769287965587437960827543704352003916774690958030887669727204321516843700611271339517910972115474086223300716556588213705833861769960980221256154275078376004156777911052437997729010914846926799557224587595892447666448041446985683756598192448067358107562600795578326918438872225198037806857289252940129035346159618122975413836444663363821642039023697206628844687742545467448474960610483350489338043888772947786813962892486872852445481773494121714010101546540185993518959295811591247097733304061476140127796354597556378396647104845410749669817254386201955278891383424440347455490573598264062943133546066512024481595085498510468461676948350157207238650301057525966006700972821235376131476370397233359128306454032737734428018682810742942878506772042328484040963114136549149692584616875549224959761050654917958976376927941978685675364846358253314855857639287755701282349715299388175229100228563167387971847396988006842278452331041518013297889261669517357170454867003868803536124274563245511432060802002925332019846650535912414052206781000147261402367907588012615905433769241741015325834329126373155455508561339724423138957426159673361981199426221736409426037746231809434022546664281831281696042297680170650887874294555110637333967783548029593609176309380977829694968613357742629981841265369066196109601890504538188912493657105187518463733650464721746196349341275410172890604744142793790355187862253945013247722575138618738887039604445483818783194882039498909682345671180475316881394439893612297451802084290389534464375139476946227238113898578771858906990955727827911327597046829133515170002791804096825786839249964756390995226348574634917351929398362666821299215643973336044911429731496156077807031589355419949160959002823793179581921796276796647203766915981097112606275121204608020529131366130015929021226158620102205299147103676260779764429896716064734757187649431984713457787901095742414379784638445161792570722043606052083233371034422057943174871969499179871614818125862460992826691264775165841111694145788246251923962740890583802525704959179294581844527835911582453630432358347819224434792665400792962054253288746578342664600936068339717565688941126744878643638944577642470609021963813392931353550092610184518824461332922449937172404023897554336769005465140142617370385127314294238650263398709611353928026968000475505748031185481450587646131577846214835252635980534216652376511187964665443216712416338379415871026543430699653474335242055854655645357758347475892903201946944040814097593894837953633356532509637758947545010046774736763835236218869174585558137618836559395437622921794796571400816519988815247783033343191121799642123848133396698125715731340668889743338412761702403300715321387747896086298574482464234735662178481923680730825465059431571987131728927061615968513897535102851997471894218241929075228929759610437894867672445241725773447992337632892374457242964919552344110380323132969700936829099390908849138814148069363527002176806555016917433778911952322492180395045245185055054620174659138084340916566058818063947932852108928827352220179722277629815343409240362773280260239036684302899221817192831585686566605728737656060072397828105476584967366231850302746181719998415252635315991315379182076630465414620932898765986117345747305348723930807537217944497611716406147714537488172908533150364933340720436962213973354119112500311308882235643024996713608813254731670518302199780262740589751232931931924570591849398659544009459549459540224466054977621365255350536393929352763759266365089888637524572497071246254550752664974581473715836342491580297447584621613180749295639930853791539451302470560929267858698070636654808826883856061783932375043134214478562343229293302757805743275903076969590248046979896567605579354905327635075262750736606209629884125351154715778302508382142279486433679612317984514870727367224588098951409197393247700782139297070473897659372574261341302153026011016720192548319463215617430005823365770711458053365841831849267302936394239987803365351505407827403564012659293552242055682946370457273026881377498188428059471683293218603401705450102487931510019133281866183039292323731611636322321822625107138113031106653407151330453925963232198871156977626124378088911003955439708728991988997198449402448834774308856457223800180198332232595133066435275927068498538702490244061561482131515091699534437812865427558316146335085891637778758069911638578882890097607148572215428422265587521881004898440179695328311217994171696794403810166691344462791560236560748311675701220753555263396843084103028708098385036523231842138618746938892567546911328356463029059969817095683228100376203500148416504629914259884087978648590621175134249421316768415193665072337990699114679993954893302992434596111305924612704040886049535939795426029421425557283356133164054947666533256983848303367868248783665488963389214230929890039990674722414661447998920216864609918501925414818179330463938703061577952436775213733145238169714050490837418291694286370377726934795845895008485154415206356563200584022837036902495485380518228925670441518807189231010769875599060722341478417181168201367024526338513024176371616110638604362338088682573712877083640125795284757176976458895130257270029714449965858205171125855583761790670384442014266173779939176868953852174487015462239775049140915972899643894122630344513115973737634986592186828122426512620502319064600388129127441896960792462112538171703873218990703255767378955161719653734010216557452742748047337776701115479592459568048892244422444346564202864797002235919085020709997012354168264706274372863510270106547291746711938875341993310351817113899117948374252308571346980087062016604482437027434124201457130424680204810786924291683053920718229639157208958038032150883450343809888503477572290391715168450763891766068301921601383005010169483794927895105185366992160617254966454679529468814189065962554077302638141386124025588923759121384519158094824874831551539165119483996233512200106377310519513958019662246776386036549771860392607882352127922333825920860153608505183802121540981667499160583495943660486969800663529511836818537060761707427316460398465201929110548734777503960661662209077580129707411920239112099421414097636187147521961181449096389851799067362636168587029209606252962828649116508067400001833157524180617287833798966085769528953614070563972687497594183894955410983101742946387904268011336793580521827321146099887969178949568126926939854469867219930626794129023934191209141592941103277695721769619238947822711069335586814534028236039060454434591333146806192804299208810224502024192733182229100306731923199067074680992838235892019419488059682951026143766744339582111350156032393216285565270078653320690797588107826999747023568058331398700909484294425297188591693043741305658379316665172988068759797445331531573012386010978244300875764052384052986762813767008254621208177573581900298375901717520370113807484829914585632675815830748998793964503665225358960358150065858688514933759083653134683488085227318047763646114408670120691229150571423239080287202122339830394257755861607829391031579403465738909738920951588152996114085119564219997286309089980688335967852455048366789969209385053822616150172847935108332499481793213721631622550447478166254761168204312866455846326879620495900745159679690645768849113504203764220960721004641022039141561797562556127170511681590630611551035685542379127240616692470011705730650876137347804996801705862075863759239178626145393842626772757862398603101953291505312647795700690889678361450945627916655657953431944624329191375193622490658285600681054658478653889569833406055021705504265736523091748262246398507987192063504144482136891711393185470159446980023877368893736269137604378896759580952913179803682611020966659760282164650844262403336474619386608827319551690513605939020584336948146762459851097564159437381036311165318011556104429761736191371101166042724903139465727170311253018328245830566994555936093096140083538008279729069915302826135107468505909557173286701361843652198755373811610544485108800692390536673009759349285057813448964405765637907961073885889298279104552602361859778030050675963985236839154201141601382754591955367731006388545488486936294707331768522482242185291221644965810622511033478829620375548797453673154060086988893585872920573567530985014289675204921381129557517732881912325714091669264636147925471191654721521121055938997717662419635698871967863300449350611699764791423404178980648804888362023276015036736608521337869978957703971756098505791520534775422337966661979201395661891429712009139370200559538426718337942370221390328130402059392339491516613261229605151753434443713843199921096957868025689308832523006611249378930173147482426922424870719296930297955429515807235717158105037100265566574839214574866551007666739774333397858989561706460026827513432835557848933159332701115753021044171246891682067237360913982686554152154247869214247261405158474803000904367460551260054971464652348858879254743808067148437707714294749425342805058760733452293908558087225799562175918960990410418163431744654475967202410417676882586450172363669581982019218077462248839161308404067732563199433870520733166379896587312939497690275989696535597042013323519985492687352843366411737510884047402631087586017782198508678492075078477657366318494116825994823256407124134393217451286609219620406208269914302201810884025078048621513577041452263370515265693624688385788105911999840952611186452788754462798058652816787310955732301637865919110614396272846386460831206229738650925380893476662817852886252637084494486958209443312195582266859963632400140357703674638331823950794835283749389139286087508492507868005461239455567052739698518647649769102509225988426693520565131564741573897219410648364892766234101371261617909703419315030144923555710269508967259141192175659406949709879707489550588503941514185734967060430975788822621528079160128084176351523574936222063825690239759545029877075571978362213972165110341487341991377615680861713208182588368332938569810962732531555548345542912552996687335334937983711227424849332903464637564166455012751231937512091150735670074424763552117464048994927513665114390884495468148391720570801287501657539438697500391900665381538989678332455441148831384052813747587505588367165367406945531390746876200357154549250550746817627675916174603218646429453079902269647998685017047901030035261575234642969695922417406665867702862806875680392622292110206854935014288607678435651299793986043974034500900071321514322470907460332733005573653333095184115736648352433301242883978329362819974035102832389568442363142149455464656446997753898717891304421809953549446139484434386840081737942829744551200218572356060094271463202759641615748875126806943027231618901218539370197945370594853201593146787663294479248199093465417370858165300358046205130680428427963205049036328055966458549063513075452474307479437269007744976821880564569261049946457896260888378453845392796169517657125874243963892267425128932303000166086577344415720782644764483633902503969522532137874183334870640710288528737695449737908603124666908099891086785572478551429293250456123549491330143483989870762959759957221150846568459291073749426841170076932364264104502059336023761329661810496788493814462692305263008130014297210850158281181418329904385106698945069520126405196478927341677005088119084130469967859622071865669831158116825933691598523887691712454459118019108597417173847116394475098835801819194372440208144458078834312358199391750870573762503619965047305745916744450913642855179913382451317637275778940972268304590400117554650253758287742580955040115587008634439086159583597362739994516082447393178054526432085784547480253745479162580116698533538785276356546751424618222869981505377280562779918660798373502833301848635792425757859886109031975373391585623306144936876312917086456994828530992806546736071870643296817812291434253727381544104455183170714357913510399204446382601402734819069927266306640254260898704307889971313856151825821490414140104811086621546104777032748931738315495051552654173515458150762923304457422904596246836955284547946845416037222934272206499097650117779215355199605066134687729276067996794514954943681326092922841291561755167093453726247907339472080847823901459084884187179903593492439025703967770657531014339578452646404136450162475317168106043195266341167646544630612234449423415284791165761121389886236323792376810784565536112018084786095525533623804955579437347017738960829927957602846337282523427589527000280547313517485407190175838153013862712271269260712410591789954134327343954789429726077564029951954242358468696452581570811537847067960967516307845968615810039600481755801708362690444708159874275549224098523342152021383781526782854287227061202954817016624467922828939306672343924331783860906910676545065961379249389061580401131151671175676965818613437708370675404987908177652253013785978874320017306178528548079655137763992450110242336498106034960938617363682086294190411952958349048082948615650667002734970708354087449349627156799526457584262735871579441051408675941187839742632259612960396586992070009227966461419433780385478432419553057492671518387551063167034380173952058500817687471838206334690196369959501764798915792825941835696556335035351250210968874008405019245732058459048326936915078747966907385357948897819295738175701123263282870675294111197892358061780618456164777971090523847638112717200543806196118037697078145774263596231189321323802809477175121942464800389676726936153241851488122416884356980119968451298157768927096434089032188160810790690888913035445340015909936225284053405143237051875039769632940549554743960923401125659675862892671369098913410203075624982185392730549061754116511862210311840896638077990332907712709263186515189613277185301913872507785089429946492235924738988495280595844877323543091139004680045539206404765632727435219461838277822724863774158969624373136333809026043039033969511117246573336682604146222119497838311299749849364156504568865395366904673194008344270160451753125799766182149968625231128718751081651346599494275151545006352831888251481397094670109738730779163095575007729282934865411453658122963684598548151299722011059299273714616069581091752761015990877975097677776566592260942264203157200992244767771387950334641717726944722842004871413679692376693816776274473922501880323118340709855353739643909982142035142598299173716819561692667807136147069105299519059268394411234028355115127167990979946272000018790532283951189438039917268247349816793796633897023334383189347797625346547091448009622083412473238272188207562220270352005641529316019775023875709940627672080791448698575432448027935820434098631529555981252311927238653352292273948903430861914743310909647841185922033823595649579468344725256480899811130719917693561448567268985976236306445927495157002563545944679971243132972707194422067401582395983157826273565986671981550660902188829399327584508986618893245814025099854036880447813627464405440524612437886992970202546693628885898628500770949723486165532052967592899335990611735064292334171536759115860472328682767424868151791430892871589786803332322271571054997017838538152854753267323594769681300015906238232684167029622675210276126424485486135426359678818450282171840629010963425746981808632969838795783797298323001761049069599744574201575371852931541906509359245310995375196671946159132381996759729813343443784936511443774884095963697913091762972168208926170283380629161556931796360025389613357364092057514063991392635843682817346212806302549094237665291886380709428337134364872817212297426810824604554186158096138850123901892632475696252571248207993556883979384200124534192954582436439636696852758817981063437702491213158797923004793244547916207378726056638764895095174308123030670299333185606712091029034322527896203469908338979951235586030030966607129286121813041948298528948350929476502720550625405621571145662266057406989405784257009983014269729149035939268012087430615935736547207355996332105175718410563540617505473928651746305075096709737097822976698071034526129916687909517342229880302647380735120628423942440907633091323253569336218396433344172538963857840631832382437289264162224232451294068745112570722836985547179894790545511696887121814738171338189080374852123861642643464288770559161335976084272795918462147203852215348836110390738732523115457022127595661013035752670958714737021293468074394118438355345462616381298826621031783004418709477838195220815814605022863005527043262915933338572718320661759954228305240458499524139609249481147170725949370850120974158300230247387988830816902598729698151059926816257702654905116176880047659656308062463503947615659375154300162973283233474711507811332344602077532151145677231025243144731237391951949914008326812510215138959767627529484745651144315135232813740776341512452239481865771309317423638160031330892589690669574138084936982011302762352907897630561864760543104222373472987529369501553545328234256547903646516418078109286774037689410981805088105731441344264798784526171793475306133084411674441889554015666875113589554589287506005694937213365640025430026030047893944086617729394029496629453217057201353691673891518879185454610641782006324544389469871611735519831348547888149323574965712029012934314513516480951136369230533044851556752629140520105133004287838674552296376449205344715978459478669430815794784866355914201910424591337942091429700845198391140033886290028251202220801853997528525128102112821401931924214947329007415090250113976042848606580238694009144199062478697210627360671028952696166609497297776539996926535831007413087180512127605227926317903226290415581741244849352101684304882898114016862783925726112756417048816347409374060605085062148049221665258646569503719109223547102461092574478119381472635248572783971619942478103212158237320856098982694770541168259679807528229407017404790207958749699177884915017181948470396817759243949796867175734439956911690403903192824727954907177327511068080319352068572475385210970158883874190247468454486462449383267665091138633176764819294229392999449012426959160926965955666480065778832031985284958486881841304824950210864432254193596465234604506612507738171838850477446382248354138392529291944439769640320368069749974795233889774917778717033937930886324077216181369675345278004111422788573525899792324775345594708337080031556570787359255755171890713976261872324442675392558949378192027482263502637580410328209451912416207054486204791586535695155989203438450672026680019602853902531681628482783575931856920931693438073556469841374703434455210422862558826512110243375489045702037609706386889811170779391656503294285446969471366776654150587434255991580769727854015416898997097451822072646871266263956152750075514462582019659193227155770356890640050435658775308523700902777100699510137979854742768912857143073444995932024935177620047926092553147369403561971059194967286877646867472138084415680723093450852104050816801744244689984856291840663764373599611423286324704372329386239113254401901328089204235287550340280311105373303245441159207923626283594501025067519337201805735029971861215147245105995789945110328290985577402175082376434997691686560572524349733101792223114693047157917068381194528599894029715790947312964363384119261946534886329550666366711413802333857267642611193680331135117826620495367451398074395068567957666369674530797190227232656683042718787866450243146762427934860861838637634735569609525246216775483856609965107625300010633294318286453761143123306632281630262497200568370271897844088860153524832227896447977249868741136957136692542909493798804844165923858868330904367055791002146684975006347342374614191257360238250614492523708065261151546204402060692195431815576916387640709966762923619488874665908373972451254295300036794789246424317281616809178923455158472663525844805085087492475375844975831044063115248133280521359313572505241111001926283617500025787030834717467223857022945960654942559004852757467203113565732919578520692678046274838670561176701138689019392786784048768459657195806462544444920121051901925986810331273164914570215895118481076293069437521242295634420732359262685544538047644563602530703409219936455625978229015259091934510178496763348505083538510454755841833559677886693281947907866588014815309810925776409765611024250965994070302635730341228603680391019244689299476366083397859553881955495800914944581888606385138576590525523162903147800728940483497121145203392470114370847743997656931373124505535684887746014985507741425970186199878725280764395926707922662438713393695177666190303756042986303525546467589280532955691023128356219685526328675942022346542662785954190077109757641820450696654948711037150057918862212557591981853428471083469235901957689880539470512450907673924973646756043956028775752150615991011255020559399190029679506147441636165338784838199869126813852546132346061988425359941804373684503478430022429244087488101046486493457033997388701565765583062666993085468053857502431118976656223804703739853064809054525680611005561641869487182607636967585569426938003375543707175716000171943517846145153889486863907694893536594158977028884093050552122779700363870728213972662496684862806446606972360842056457333653288959900613689335706725554518485794568726412239024841816677520736704841142097912432007591472250436981688683785631710109321645373284660099277754052499345611821580858187793153143562727411127742318579443613812042445836836537382392739323623092143921275432570980329059659807567129785455468487605045097841768033892703884365050016914252519476712694061732662897324954007954860419228619829916482224425537111824867397972204763171437807032730004720592032905106206599643067212831886573265542860980384669860312392545288515639135008728370357833095212145287103556622510095594019138293033585053012649311915982044561685162974566651250982600991676179255783167709224788456085519778304539907702255061625442210468845720806758068057617744902804756839303159161161203752311106351622193591528037312607614983427657391857920957385718433688610152237769733156105343806682721153155825039461285082413073235544981707851808230074185855369191699713230728953002935697422699048520418352914400077818450736216936032701776349751810719970051554813083784093753129323251362064104357800482761619259079452289876430774488708013020727576723676874582043422899519703239627243027808624076189571947707750192841737725487958061663025418764896871902695581579418091211749586551394165359933667385367842648272711376424649622378290934578535017547327231404204152805642579447867103944486032180537901607270496251395886208244311873093507014861902323772419491203781658847576942231598573686861820291956059362602346004222507553198525997725440406291958528219339183800898694116346678710028132149325521259183733034997889231285242479756899031757689039556836883048190325415355303803285092657777429471969822251684793035783949197948291280920576405941773916944096570995505590016807372473083136214478467666403666541663937136203448095267124307716819655419854708135363174987000957781159957004930161457779155581141991721592720898680393226702892129134375894977275485062460475464486094963875555612541593990417442431395149729200874953417599071445518850412732689797482701884769544403416213147630818486962016977723651883153310711533894136123667398658622638207397363671627576650778378298969812484003740982964929280581171764544393692463201378769911673325801562594262064482230794079801406284108124108076311063668274270895807446463637311491708645762428629277620279886979516162659246986214800286311570405163125792806950322153095884826871333360156182666568405044302830552074290954068301220566018382286957403108545118650901373088750164371197132201750939321589156342829127260132811121675609887680353800452244168390988104076412058320281538261934947294067026219101529272740938794913926710048153821620346848667288447124847977409191145669843794858213939517935064603678353166361153044893406454477565610137657568484668648209305810463544647394260727354822234548985072454990965639723348284720233353742184636220982215862871867276963095776793589709603870091197782026873026443471007314367959914108158882876734130264944817224255815920405087622019398594408646483606772414540746794469087029144585237732393841543635441007905708888998124756301191039406571951156543510927543720372437933915440902272425824711706845994346577349750832934833088533609736897305852627456352487301464768290691268450494679415788613403287290040279012051417378097729419379793720554616660668139134992056642075457159879929974050744103318731977721294420426756798069334803838251134528360883119624394471991326538710296426259527188576425443767786090816190482181793093618810677109489143027721736333102221223902281792068273095683435998472429623987102805091674933936159593860299952629281102505800447879341735858632217151524041196262261774667162316305760315919472070889402411495611682563169560396505972190971028704852085757814614048185683136654949720852498416963341264856841861411379908496468659456347673825495223589123747266473287654870509841381164019425017784934312065649183811732525720533193263116803606603547167218355024454294599971590191113814828232816466877282318353961739766902639252693399837197689164322118673148565947182156461293081561585441732436942813078284515269446705420929552182783831013204553880322172834521926736439283718683549740852682304864451710618930040353777791048584662345580476801828698509059276316706714155855844538225334629736835344005175742895893664584616379982166123228840988482219433827399146154536809143356032258544692206355026682646014810992515462968871129894774637326493826636151544332197064672765021969140476622686537994425238675940921706090594090481682157206192158172954541533092046204839640557451676203955403831492947053362580445976626871151546192480388080758348221419602665508195437473576960371298241375645528738112265233753383495266075276135185043272815090925493540233025159238639936818723097329119120829810827504356556505176859912614846438766722297419666689542112988741427903698363786160686957908355411141484660353977603393166944889469595703630866146319253596901563771843083516526313882849150714667614538284194794763397566177027221078470831548670323802667673742799455906832261341629699379447391561125442013346606033445364223344095415748882265931568212631494043795283009316092104917716643556574430261532890589221397207163293777439978808270734636102697455549615756582376248629272794828081395635223561178242969238595900883162621739639659283605004303967735594198154210163332919665864794786591382157993403305390395873099507936184137055579868581040047421131246880162325613797123701230168393057868824458812397630019477585864757696829574258434989777517166342366497759023594713701521028525610789413685548155869965090865827148502850802712925776007858636585354653216823520250564829832449612242251138318091733606799430863637502491509445083830829158387602351186254739799775173547501127865839127189343695439549333434450661598536457402536272355155265216752759564095102847090332377294338284882555006782242891978202379119161280776094715268818892833996412999739738966749434286458120950253363109397858894999967227707935036611854669333281864174253983336783007498980482725766090066405359918982722393082319616195084176595665187436791694883052780210212342671333288335523681178513360820797125292440854752790968739275698595167029271910060101848296283442404056333470580003584050779048407622643828803937002433525887889284330144374728398516502365453379378769484578079998107920182789176797504413997067526339019310292478467911732224858455615138386203463918315491365426977543957020414265753689546004702491127002734054299234128745006422286112167888812229728508009807645894614764543855066769465556991957293087771141998557132817878468479431930250781731679517618633292145713462687573873966907988538156013810444512847151031530471758820670530143311422584483654378393262200255920942511238113825414566356315158472257971102050225122673716829202789183601158133116469923959778726807563505821856174571379030343000984027576953083988095102924544174687139243109237250653556521117107354638008265893544716246998593322807192029723287145790335263925579847072064984395019660072789000547866719810053736383101214797421286656247596687335189651928079131531116804604761758006508586432531827846520855172493832930806570423883212111221739158486523669537755778155920451580977831492265732512508739380050823795371151956855659831943918320974361728282991459847668984169338301248710058996985057604086360649837768874161847106209175912078065497132559711504733334437774509554780575612332949173477114835071267689488225343633745850071395820835016158306951771514154669123695447442027247217703820083895038477969710188950052828921333516485137949731905951168419841996949012215098952954895304196322016068077956947290546326706958464773967139045956756079795935960391873274326556507933515358903748207019328583954253794942380113904378590005780983168589361371119184040244742323959904051466355793160359314747895338691525762252690636165479380728957751067227956899920555344596152145661210331907746806911085189203863016344823693740696807722377789928096316350350930703720625001160033379122166138042093914853243085187858556438343681871451447818237954488561837868698695255367193303064788092785516367366667728884650392692589223467640990111722556843829692291847392614253111067927728920200213763309004167401438127657904643336679692095339057212227678523661256628473777918028469171816290436881144952519621889283442700099185866581336445291575863829916682837731747665367575454167516446508274197199965521132500173607062144062266944854473891378850678546684643089981436006847647491359523625685431007633250044734408585597954709018828553958876738418388049978749204739077484114800757464540895728480235379163720035368938134310388265892043132255573759844191891022855755866548659645703980350916294787207405952930056679928513995615009628873305738709064777666702888991216837448015184654458596978183245076589808858504931074952524270236239807586124377602682616159347135039965108376169952236464126650073718042730093158352719296214623842032715161962439357763181764872620819965790146048984976482016688298270665227206780859946204829037123009139442928074071843756862887697610859472611223499553038403111775932414322931275851607837756174381159151571828202913196774899603449849609314189927707686552436128545266130587318692469906940852073640264816071821811637917174632402080113151068903085908523966444240514730950240253026791965547544014909415778133025456874284593614065794963014218085798818058545204353978666563847082846404391822040142490048244780324113820220385686699308452526602052115366401754764385574190366935757555987704684773750303607336405362340044797303867613533332962329536518589301312599901865791473636124892774110267151071179265832850358276858088111947782064726177626283765433057272640347679036460059350788564176250878756331095341638008878593779951025081410060662232036107828299500601249041241336373046888119875936732388136389384915503855342652210196487417817102264561500715049769055066544925679232755646859126570225049956619151779338899800259511991823150383074071539649894084326094393135074743127624995815374620552675591793783573554294950435343543693908924403059452474336246471154243484048789419255316137661190761923873132709156073818999943287904701535654673165733059812664587203237017642129411352599569302893643850923016073567966366454822419796261022149991608752255547099359099592877865606107312820725980687174833318720960984350307944722456272505777809374800991194346857391267561116976123124390516084546966497241208117700046239926076520649764094262031726709975252353520977344890210702254980333904352587475256217431155307461138908413493907333807331700273482143485394272959321145028276553356287514068144035676298704004742368249674919208977900886913407449321687470256983895244300895715245091774001080847837524195123380818573711877395376321329253721091908878550735059658670536621844505123696583062354703272178449590744966707817222805546240137384601208359358371442878854578067203856460822258234480968446782043018769275851817160759890817918754288181974497688204281705953655509681009915936539674972689167439555381968162118831050305878120090065970289646883644215101331922300629212524061215379391006151070550428980382316866869330753399400974627279691805568985088637244074092759607575884823411519578752514411039170850849726087974623276630015267276987013425011720202397106164439866010835454374152735027492727285943768260877541777907404605505657498836427572433488373360836160882208411692922376419422337667761254251840967529366977160647598687149277552644404114641405750811469317684730407037911603924071475507871184220609386821053683731544490947254889638463297613509893081181142892105893246701340913461585568579615301812936753082900123722645768442568457609866645104813014597673235006966554967039954081367651258545181575465821593821435685833399660255842776896149608315241605395805495903187645034265676854973432699197962978484167801094366718272025316054641155297240801684641114927837358923005386881861725269458706106180770868879753658028019247696137294139328330676499510721507528903319981108450933110475399845540266356904159246580438524996008153000823344139397684387702864341945156213167137638501731166457779867561007403756690632763661732009533250972519472582539239318736177045404929841663337121319315441599541222402408529000790240472995435372168429967998818214059810886546225772599746624380067068273185502516116972890789931451412540046048036129629359053154400327046434916266357299956227122403479964428339592271230548459711819127809033680296665218575186448613777138755022460480351761536533602610202359114363291240289370857527528574393108007078542539966833393521677718123546820008499311960074859797690012183122731013753061008161427013765992611067003233650576474140071683714282506741116106076869909586770110908636466185147064936153913972616893100551979922345054347383940652921233454275256668776025585624002372834771529525349161821872321745408282027267615610475798169824268502370045553732248086856918820713448063085671085502664830993738150265554516631729053029899783597617647265848131209031284443857944422404946726601320270503773271738325764933521526457723236198154988532944658013612419875504867841181340229242253863710015603135775536369012349233279435057594094273249083806714001718660300783818473230900670960835392402196265272370114835852265233889094193214000301221346645407498318286141727104280459130030314253764691595472702362897296996433514503985214743677118749763202521879394081949617267214170760159539829086463601298162654958838653487239927584899021002275076836890554744125479307886903533072047323613294000229878529262598930787611011951509631940262873421991945328368031863999222430906119650465161922182406172873154823258751321751110105491193961499602215511603848001150179944480370916406464164632715953628978317176312584539873180195352095864307230511662837448328772962791640156807687697266973402600142206939793648625066571172354016056861957774247919409588199639499945963103534398351762727376716973407616203482254926348241045672565843042168004346314480617169883896944676547571345510546731885110788734595428726676133433051543674741294267165060186541865467135577210324391368088121026642242399867863135921557850860650172921784518375929674282304133041205059004543483963848012018382361122664326410633601853815749837899932530585321454953913569814985918872580741732314417368001007564517629406369035951259700874914209941890146073558969975874804718999076503423040521903603970001762963318240575582523649829649116714250574586471054654696159333088229670822731995908037864189564964694660678376516499007016704736444808723903554082713001184175816009952752753173317727312469570609254026421523211040241397339141521494252766189827397975555033380498444581277281347128872309834119648435437819026257852749679691714582574540641212036819555121738121738409849770424681584475457924949274298582693265611813251648384350688412114424640410043756965292802470470003064470341740157290712237600396044025896690114267457831192640266796697354845794285275708613646506876294384386338018807975059559227284701773611041757669181392672439823041721690118947043058320779094842036443261708304084801827187957019850918796860647910690284536440824474559237482115579112438704768366183168888894583599447776643890389746223346052236934497397887203128621819066148006087702249324115512426131728010026918592225827925579269802837831423258209515657379227697039671629166255140092005720845944444249443291040483448146120873989082766835917134160609910045472851866843726496348288673057810654545760434568404581314435834731885076991728386828065123277156478107632326549088828882260790936779550426446212616704987746508223409532118367590715823991623293095022622578186582269864486590230706688944870330266752247956791799745209702456318644491249571106171776704398455834891752213853685896152072354153008534914707792490565179702007870965061001474530183153103745125314467200328589607184074122828021859585039400858222193667489667290181968318780909562543583210271412527270089126576583370900374482410296941518024756109112735976601840551125796629764866979070881293397656650274777362760237181582340035878197356681119081690546759513729174017980938363298683294587996861500252566619876764524046251700822466332134273891071994314995760783158989194266094693159208100155544295035339292238831229520860195721852669006876308002411737705570065133617436996482280467372244716579758787556464966350499515462102880659172438790215727245811500525200864327526062379163126502424280579735444086971115817065188146236288215380960289316517863948412592087051338807361588257668120535406301890001419733614110630544732051049282890391453334715580909331266563616343000306557521781678512530773980127667337182530839976923137268003760321551680724035661106900106294865527361979039154522821243606852412190160426666723515022602942245233163351787914966180927765775037587263702748024370495711067475084268528243382091881285521846319811863650722806266240968822816851270112926272369883436387728783165372204013077363313991495734459328590329234484113183341311636861479206999469480987323721673586337635759746445794433140156694333089927099450013048465570547967689304886613584590715244956605861356847186263697780460067487777851077752813517203743185131530723692771023035899934568681202486136762475575948500997568736185954909201151017136680992941294962028624529387583926265673473203237107547344756166683376990446950020093925323206253124124011968995573638690730688369741651756232726720157340689251722761794223647769360116872454003820032900515841949707657862872379551721515536064009387778392448790514374908219771629809352726675810389234528853599718512662885607678301105963225913919606514458308869604929047572404755566331407659339062256121061871184117106147967576893488298344289035032653865028004432303349899570714575318111525767041344235191761796281833317623630577628148808135159223157219547844900854486199355989653074281139526736851834306425762684089315692551837465482463712984703198140263277769591623014059935784846936501987001237745528797263886169999986589251997093615340070970459903851093369342808445454604846509665494563653498537635648881834788035341960085515170926796970913115026305567132770821270142912509430447917423724863371189256635458401466567159208843625873739863356362416969561492029265775424780276907162141615172858474108183097737438841206303713325775644121303836832506837370644902573154598925432396915411985004838038395636751040548422791112626150058916450761730942440115828664076040160941332602272333951221066082379575468159024667263635246524421230830816472880917940622516834089893712222181789374645566418723358988700678133772053676134929866115866679293174549208623805835813864117357298250186797135361668918684708506495382374913752882567386848551615708053702420324360802106889235539569131923593824162274967549067837367279842824131656769755527640635975038735360918530578009028986787264717195464520178621965018291441974750086018057308055714281546792631331616291065250082931894904545373794097852373768702525203398987332180619123502158942706835242050740925465575478624040455199973869756691773068179046782347418359497839952902455483547462261535310862530663981183414252924376813375271819098472228643133892136218154679197466638389273683964299503779400834398506085918225525283279326180889433644261261891158620869381109273441787241168621794008134778184193912450807487325428006027175176027929199457433386429223990705181249114810389258050330835571361934058639907683621551583069936675967544115542049202510779616666958688392665423107365584045064029527002059360183563603557089450615714713416980541538861544568675648054171452826283271210223848942910324392177370696320600213333701903596898427465462670883715584401046582896417820871856750163614797184328161234658085382832973692559194719067768624388253533932282375244732720316825408004209179012286507308007532520765477245321861083870377666330903121806996077387328499195282091276908189851468328694361078894258059859777767546524769930294500164927145727750518292466531454571868142027842861123296837855389290443277657642519053456691871552575684334526890323804144797769369051943192189950474937635979314456577224622815199124168819623929172071346855679758584305708633311371951912268994575969358089169912697892306250739978423562756150717068856500219266278688249515242250065106618898349383828295995253779686107634856520650666752633047997394424853174523922544748793705213849067280829520625762824418306683503372364509388563167291671787691906616669239430160942382289803753366448309995770115201964717683372904970471438997976268524672845074337135293845777488285774608210750149622117401787574097043523837036742091066686066983205117642921483558684047637853123624139809449834772617272905275820705423550684842597857871981742770440075649211407435409735539196856324538376663053344334662623868626607880198129743232703496075773691446454546281909526433174150304373099031205979336468936389729686166083725239370453674677284789457807328117792188474752656786934471973915910973143168976787640043035779503157551865308387994530926586873996593396920895831130710674535895231301697975474239137273066510227962036383809513407584992259584955620339715911976989767779134356935985688047168561407873730749384719085987412249072693734157946804486258541780915666982060672325746844018939255051530819891729745089498172718364266187591478425337147426132386726585275347782148051470352165402973230860629753744741055559022711939612961838279835386139715288437678399546010591404370140643269999984435940947692805050296492197397035447234182999319423582315937683132687792952366855909681565006416193565033227322341124341384913974976605338321601805461030682386812113456062281412124051070011963939989988674048265415965686682479735188160077455770770424425832880169919350244109446781653860231264755794106341461860290293498156486531178671892274987170772243136524066798796378397134603090972215355815098866980495377189482645565575929749745766148355946863412491119494679291900567618554112796228921670300907401024548272595663251355684394135675705035421689973382014553548410274922749322723407341119571826401493321643486033294919180493163863236448863213059066899388428774638285678473512209520122994900623671928427140629057242123344566820513609294254234813080787699185817862270124506688350678471726330085448626864557655111609094547332282127885486697552419115503575670336568634974264316902547929687938209293746376953614851843305953102126187273807654175413003431557841578314725941992422050183072421273950740754770061369587728518275327601667986106715659287313588826013616306848717625744345615029992596793604822681251422688268641086682369048348260793064229146129775927266549598296047301029311153933726804728810680978436313571629973619477358508805810424990180953604408984932197674773567545024210093585706064669464452606994504882330452906405039783588360200276355337457065884930936886323307262057535718117554462780660596046020069516639254668839056796531157899394982224427148624772628210824303230028647859273302490538210408310864179572551401488966638099477014689085342549120650179756871191300425442184463349962536801648853434531107188550030189473648598326044826574726776464230583147237884371512438984504620300501331372190613617794436490481375683137761968295115516152075098009341649364433979989265284986961120054538423414465908913200597565873553121324451650480113072378818062865688409861189501597071476733935948128978609226571342351945425031585102073717661279906298949559944987699471822379558115787796759062667474705372734767616855832564026648668697834183313199457903006630111876548226892749233744650355741436364285083751944706028968732966226124458862895360796042683277697038708634555698875629902737318269543155856478719294736831868980621554424773399184261668939943595017616102117845463392225648644125280487751043594025704588568670526440264513311255609164180277892324443914520798599688432376216602469246606131387850232592220693501410547207203455203784249903965825001627587958953296678455695626732341434663942869051056359183741351729969171316944443086438098455873681068163208062088832958526479928754590314272054254999564930110448372589063378474396077302809440435692858179773791599547860251542436877970326399265026272976163676922914240196834673769246660676876766592823095324383321096208920093660947914556016143811564674010981683429362084852223686502328183492821267877648036806112852055073051124039241036733797908857808588595983525639849940513694881035815311923202433860097284284906917185593406853155763683448215888129400494097141314736379202715416345560236445180885323114065566475457193115121248975249700156857675448155636721340474211532912327282648110741266651373469481716123879434913907069338893569587450736009900289649916743340130749309506426535551672217676733106357920069147204813303810675856231785395843797948480385674380726570665062477884819466352586767334562033235647533508345089644704935608359592644970948331937204557775968718166374015193619664087095964800820275805504598094480381143799701568224976719226802039649248244358500831187164509250917720913800658257578418534691133662085660523905697225189013587835479525976632626637897920354869249039530650736025481645127290126026473995836374530162918195592627155740866965612190753778895967518037191049728673637057011987970955373932090560225203782298025912160207909425061236951083790386657509738429247978350114992647807279957329591918272693824537172442714190972481356732916828559509859937281567170689698229436209366733096977757492751292451759251964717966581479965775402423341086741720057220636274857781676944815686168068115208585370891655551807406708339043709162315770933605478296046511552430175674187213821576541361334782552991589035639566240234511476394017875696673933805001260914848997851421307087051501253222341954098723963030422631497588441673122396942681602583031640795230524146586117228760304077173890259207738343641933864950349436373272031529075532262180383493849284177652887858151156912072320274657296422792058007716241551566079034728687381069405747291099594377966246514429730561203372604611512853839304493532158140030681385772742452166581766281969732664929456940117446903443334441880885760100729604775413749565971018526415419971732748698815089840693716885731503967638258288190004508614710468330024975218797360301848731726321605450188017030130700302072808238244172506167172478285573993720478322049264334211901364226385115973571749150452378732972633599637070986832835360939618099552612594080134120562862895536123640441587745060551742626086207916462848194564164235121856029213980957921905170555754256364613863332825557183462206260692343559015664689949221736439358719664158885605908590074420002746143855706756303137174392713147651682637711938173538244988917009789660144550223465680470814868449889878856027360771355325235038990077036162052607474348942756564695818781414314871407915741627754374644983989829293650383570969767952509171475239948939709798627678376244212694086876360933767215495202526988543695789305737046504492702026686665534912803350218395152036122881745681822392601902651494517032100592323126273907584599002269098285003902648862612735395564914349674536602386876937692300221737546799800750655784836609587855867321131570264766572823534453077585089210619820125225429470535377347544690238845057269508169191315539725155039582071408399475908440458638061689382865704432903261373426441222284582580318255724040470249618550331551767637635074477335479679281759529790503621440841406530898101649212133174433069478759730800747458299777325698240496438600528545098393706188481933359437551307256379601897716658351115201509516326536278453226405503132234970451786330056581729794570354435275272005530268658868495852952512057816389194955142039832796909761516262258464191866040142956677496104199244013966015366961823156578493523298748478758478388442337709722744473632200923879420717613952308003396780259088693465033734760352017205003400472920358177688907216665631418100090321171327324305430423357743150220461774399292094683458607732157717424973518416506150124944456764755839157879934590035801805198837278848905244463512202678254514122226288497717499579686259718360971713267512448808092946127116919627272306481723706097190086855078794873853946984451934188101218949452441837346937727803310210121473771263408552391308958989725062296283900671156657610170840456842427361714792016629197285765166578956960434124404528456416418843279616261809875942156279845469314157915598578105658414947064155342980087019581932479064674938514491631223443978428617222013289784516589843953647130393159908857360835862169838198104441824585113599386466758095896894991505715938951045910373738105871230290954195280554183705912936636240534238515334938341570553376503876610761792627111205787753100156829427479686220040929789848536764745052385948455264167952800430009133999679925640039849799337475511763841213488069470972399333377648786934953943032132988831903645673704861709593778825165913761748313441024574577592675071937837532273872731918370967347549115449752034459828773839549884475456086752365370436991615387995524819188126827377941732498298878402957677515280425692301049928332030991941858945325052888387680332775093141063936466246110502049651822449813916140936773165441991842089113751184635266815576030006641307741877041012972122820921671546451693485942424127383804673625882060207717669656484227922637341161212347152907338302707845740288388921093589797618886492303842854694428986171414044348687753758366160370326862291397398227896291350530373569849326329056745595988090453280992327240771691481501961543011792478791776263752061247582382970788602915865575562859394882949820957325760170768738563539644943388896871828912528512498013542075480969909432738823559277030389399834190409117239076148482904222198428038446184431209095605232123633458620130869316194854324291781623069150028151769099715915086769289647860123715232538916927105536402836506335935217625308907812771198704107669963876215512833032293794062115832416518555569452411299470508835455148088293105223154397968536560399604709131760656854979508407823254989289113711556648103133864732993111332944009257380445628176512921436771445044128598639768778875455993667169075698056391444435161674403716087895703082322719270566594980934999481149403265509767122476032951048797258772144707247392553111313579656905068470024233281336665197788931624642824555979724607041622687912493425286724969783769542664562848927320316249873282755766260405392546088344982878678251012062064978121928511722457459926856637528449231012318865853954454005304409517730219200409715532778317948223553950273087279443525591832937283033325138045478442007889936902747854620479180683231300320458360163042198952292527724025117093423532827130865128364711992943180952553992359073184205211843498667264545171504786733560810035920208298000161790725513757300287849363302496451934197369531492211576170521929876034811723028458006388756115240452785699956557727537853782231795600260299345348362203982436850794816819751811594520101790826904935947938000587037154434415481942023643326724088440342635187960423425513064663333295625956905375760551591111154342583358975232211203644595814169802050417214765972556365247597920796928555099786222827583369453469401996359207417690979315907077511635464040864161292186720734528566608660433759885883482098430695671238344263454465689361079512109848236694108075097153397292274975867300135505626359220140125733842521740315382296190738855170864329981853085382246863126694040457475792856996107277540828484426663112220154681076800940661745236607953285286211050056444001556285356017339180530987197384377170472295113696748013159208531855648634533422394719627689437026802320533594868492880731514749330870181812510977980230683395699338828677209473665549171094091648019095634548913107652035815827399194056210909167333057272931793502367521452971083232800196201339287314888127792409018737984915931541447050601231156251188542438165637605161902960525061884938691315068138242070810047468130920563518320500709156394843073270639507576762147512079446377685935724225387169819688946195761427458623093173533560808007569483467886563530162138831895424313780179421625154566660855847594018755349157044895231976345009145396915467469915524769497939058085842795967757612019504597681596219767608125043176854554863638374937137479318375633187371611251491471792455094755796782811120687515232290305419201007204462131685248781209093625759813443209096812920644479266987392154329326640968950597911784539949782745843873157361438727296207617565417847482423182629007057554669864507989098725060727411245048924865092784334970146534828919635948787369516251423309733166852167164384843516490022111669826014346130286587326155833338272698844442788032026704364266935046513422464316776573841957721938961852510561289112291761051169464272420628081260513865902245331712935139782757072886670159539881289666849309150318677176284968405500776010305256404709406201561697587544946540358951744637590747973662242081670121104982194966775825244308736558847031582569905118136534544264128342740338128093477909444998576634024276875580820233392699128363827715753032339063704184963579888214439472232297379319537574142690177082830501133151735708522411586577447470545396349589949492558907535840111349711181419194202970071746414130481221052085549920652729085887602524451966325326387729760871448551266190039668765533208784700200911696857501118870420019788036038065879588315411657634109249159634183704001268970824922733313775140851177172134671059834614392171122092709679143098901769295170570614957299238064454803800237648739715209716179932124330369254290147691082603828109014423319845714645710898969054762339954106740777909767194081561458260925353429601180783571019676934011220770637894143881999407938638171296895939793895115225422758025208989308942197344592878895159105678220444523416338966547266842780649079574720192435218168836801290020145102376818447480336999650532477875028861364217284089247833607809384234882243074718331411294955946454319816686092015714316510356004894946641399633148356452205706112150350926540701792869324771589684104092457317224927196247767728268654438651014724568884986094236353748969357516258890438101649059952705684298800926509745221354204372393204062709593093411226442146783057752391958060802655763403745625745674245931514195572723940421421947097529554448553428568401762370308338329119567378711960167561001504592671815693926495998101046617893718197217938153082922372370001103359700949684775542943644732308310273818891707879761222141987034420330210304383719642806497048274818109265074219736742900911411083049197744317089899818054278766014281973434564863060119754368053514666905890120111669488265744132173732774680097497917091149546288755905197777808984391399102515662396803304170658955307585765926688960550119019003484514873215209811576476009961102755841349337463409044319538001870147447664649915944287927949808778208105313126146053804619492977815461562606912549115055793709509493646962491679928747311090764602533566615862494684544162824134674401761159265850407337753746212855658791586832701145502353678802530078634974095793077820556975269349892786103735229259775044510205027520116617941518436298641634665444067414587272608740659388326047239955025963093961830146665792903154809140245545178201788777377192906363248952158897829973768284564898751673065014503921157639885679482550749533706224453230987890491407242115495794291542150658199429661111026854551100768557608638522837572138034894441897480000986023699274408859991678066613522497454361165087916008333979631839594966689053763934718724856120967379473368210848676769554588203980756619998329862677966523662150781759516079132880608771095427551512174874152174029499848098402820491685240526018541435969364252719612726232745217549525813123454633722405094869951683360152141604823343035995798915101882234458778991213633350044633859675129680038820861351207076990828357703292162681229835233359980203323667137571036494996926773650367340222322320495564442833952499521137338471034628448247523054362178388738470087833877929530252329163700510762253903536504357567521702017606572942560913663988930762863531624005095554300212700485355940734173022122843827005304055232855036157579174964212797707911911511912300390585215211948040272585736662508120203708679616620221738361167875662006284588149427463825268716138141224860158724212896662386246298063333996732503713622297432102869850202060279432345471861019160343082768034315816611176730504665783944339638691149826148214066083138097946538888802763255748163114391556779781183816293100110587402989216493746124952666883672689057098880892701326936441944147977826536330335173586477329737309180534822066582308498148871906907126123484631873223546382981770161429504516070514741007065443083855460346187288286932093086092862435698141411950685100789899335072463804613972916883099247098210514138503705084280997954814139511467483505230596181248564724390448136809952051502462742162869387057277989368043229529830579051006121804669501053273574396058799632747142819382738627270084714135466200485738853114138976608239964718348040321437837599161638023417465973986687632443394389447651722417904600232025393590059150743224418989212495495773550858747270198754046416985626056582593832713592548012304939897579066317108421441063594080063870236853172363205285441038603874126996437928428691761315930427768938103691229695257293290440629324924844182147421972992848449666488538241086552020867750140028296629813775346688461594216332632375708272613384491388040394793776796840427966169988180728909687382993451999327782510124118727007835961331210536554392233078038078053118850805662212308869068737328593927210159159499526001266958336421069243263376605999984176034970562008986578625882235723056822372537652304914720376407872547620213235365182990060409186168279842320080938698587781137269104401337340078433495129465710970508409804180207968843935418655902081774943539784368904658143055263655529722297100755370957172094133072275400143893291415213779933303854435490179221717411592284341870697766240720172566851413637203299340713817872090657040000594934161127126517267530924693420414411714178705082707358568667339271370608572556673219553158676742166137316816754620037502107216398448817499242068995329535051689926901419726317656877554016865822278173794702899629457017996896144510080426100800038864321592248226944822757021253468740714493701864111859355419861729543043154021778579654746874861143578519418127595616108236813578617527534057755669119165160930100052539792978114348005043362281633465609320158909149241333806396305319759810665361282277968072055606395762046021768451278859458623936475243534337805140663771345669642763931870274910014602947143038728052805241156777381207737455101625058687493806741311680771516935652565604428218305332743102224717723812033140105163034104455189622009818759416121678255172929342827591136788173378459425601506845133497806255491249162801083142146758356190074624773192489631940182231314516552782527878244449579924572553665409385980100677585230921150368896582976350263374083220942414222404414599729453183796881153627150638112603396894398662768036516083091557173408335064065792979431612437087180219881923797182013839683765459169064660125544231021712343495018202377790830797280072609861887769003825125088657132435457303343151034889681102656044540575304546002351677777285490175832969950403767731514488129298228968046103633917782726666899718190419474495104510133548677826499475167403363328165506729243823753920481669701901565826804930926462114755258782801119922550642609371843193100053022855227089046738465603308355319197490598292778992233310363927698670060372963615229821964147693846713940133469341764165995336722179190146162628992000221447416132521824363762063041678393175388629347097560812751494740517311447126653903065363089306931888270970710613134924480430947841161872579312592777742433202274020003721734518463454778388607012761331964842591543904479849278730348662874889706633926246152095702284955005684914977184209302179947069228200303290949724667946135623322562177274245427806560839736856399409749449804300244116590047639372008743944989184128933169289944879718638212523935225073101174634326786905507471934239275389892324780211263169284560243245422526854341095564307966186415641155211122160042328655967304505152413755208414177442114379017308314076452693877068198162875020619707649425542161902756583244500281072275248116732510622249294069948532385538535151893622818438299036204959404731295543353559816963501047560210744478819788211766328560239673466866200435642052260538561751694729727691940234708954656297615770834947580022874818193119351048113587626162072173179195266532248065220237812732297397333227386407842079460820915201580742406942717216610358216819234569176950759111466030407629254670492593600331861093055474786891975261179635181502300780294479783753414319993663548159386697840971621829722707115765782094433297100565755214901239163225318001133494621828056877309794354151911205221967498152924750231608689397606771407432621451122357875131897455312041405908286941613033016825187853932566274511336145710432599827408315570422123598875170506441384072850129726641864659023023722159365128650716976351380218735309009093805203956025451786390162039994778124724210324575558396146612207840920086731108973385748075818855470980834865481124616184466631521846945644508780579116027629402559058489988484292598638502963685541970719769290266783906009596953926060794257078750658309085868864422220066389756203711168609974114981009710034901339293108420039314348184921051192561835355474057386215309825070684720689552137293842845445933531939501365805094214576280832806824069314928886727082931290809003950657508349798553589682573868471913651848912589400294788491158328422184272437764547089297535983439643504448590015213850734676555747729308553281534041571476853328737484030878451839513680502135574969259443892789014291545582995598326463541570388209786191679833694723153716352394949049611602185189237384534437573588313110029017706816913548920113901794550505911951356541805296955710310512704426496674278286102108260087055291520508400872522472039210992873614172815336149244838792808157891644588957664069855282889553609966246383475378389288119894271877967263576319047009960570977713020872532755280969623428761544419130651930593280683224936709968006367570497496198888646789872609940038184041393757242930066885124326987035441577716937444645805774862897325323051121414153649878100054155616512209505433728353064727518272193552663087545456069665721297457359305807764972751213601913008859728616901930129566239315563024286968168769222279127338304181503739781860453539064668194868464253929671082429432445844217342262452026317708200489250862528425606216487212403314337806132288683791522106203372501250594700433676057669761646713284801347451558930068674801886124270281576763379877887173499268728909244463064802941700609093382254934349743875465150234378471486168675197229182657981474860072332937209455563987067708128038164802681165602271206809633151528881925164998394218937800534107490281611974812674109287073967427687440647921777740203212889081605885193189425203018703049743136433932853864789100375544150200843885650792713099367199675172552264949431938865211346905989013854383352186561626721520969705683266749943985438529421805493021973208432500721576995944171095274328178869723447980233155376955247455677904850854647196645900308564278900162166559003876792120659581838223819930881506577854402170722922885784911539193604422942429882319509235471999276115116640570803295561495469222130472187202437179780674620213495057351733187109164869386449770585501716620352797451481963411151395920478453091890709261002272841025349552809720493967292886440842475752821766317523714895092865583988388721153435607946579703204954961899033692689840868662944614460520656023555466920510750140010653588646264229067284232341236027294650849292312681869859594161686382343135344847362581426590670886174065369914743003986464542482272076450483742480706897729726546778472584004736244359691119390010410900017511451155663942268727667670933440836923074821370257246942427141838987601718441459041539644730972143002125448214722131714053389665169478920624501428584384538308942276958065627822200935978099094928173724812730790838060638972036741276963556639236049738218120034358404192635421834977200180381551014114046777537089320743047988099607198866393096409187579943808350945070557390000108095874056897534288473501691030965637901731776224532018378216193167356422277199022088690232407301512667781672681594795296965732482761692532872156338210247995106335476028280704568283224989576605028123031792182699381558584080471404033908054221834314863102362170294994697721395099392775320017562013633474909865025329137789153351620570678203567825090019610892434837297814128391959512654816952734566203172814253766974814080831133087450525712305673479900263714481019574199033717108825320547379787742209092788717509249475359452164644716296059437185968670659966359840526800439373930257486676250180534617648741420528599813119557645026408064225753906665518205985065700939591395496510012555308535848092921388877686890342378402323603713008683561664644547709195720537446590242171517958103608083060364063937302994150588558973711387903348697029597577885167647865261055526961623510588925059877733440479642797147795198744656316210227066022085958684568015649302421043109619792447443382032164219587686956389674984323537594939019292545179594579873364204075042224593484665384926428909998810721509770619627662998330139088499363834019572187466437410672037619476271881215387254452198058675024612921671550937891602074529815230669410943923570786740578213349704173186285913934221906760718633870480818067941947594503081168466531001913388384835341225998700291323991918642273695978896941214904986392256412073300242147325536346827465301125347102938603310431196900804670586032132944766912675959551206938881817704871868127890079157065743473911158695642421228054235484236138074663865108187632280514043932255547696056116615685584948910674071241640377287377197848533846252322805073928655969199042155084527190274175284541768956713854460250130304172100158291460149007795240447664431043167492732312470764424044665442977807794823372739371188334964900575960397968575404636489361186864161805680791371883314646614244673040300224172535766180562320844546240911767676937864293429686863087791036808073078781693959442863439905433630345795792246536335383033692519659120104915798038696628706101498514574089548021607879538238078558121214285911431383371865680179636242622139705771319869925402810589106820923589016422648123710049221858362719111031269946339496355074590208969530876535098624980939283250948631809709743615752329930360111779669579293547403990760502249772562686259537245262841450698006376478667061083949651806190424578243980537882108905075931545584182879555013594376338105460207186982172217254394427393530667044672122428857231832171814878473500557368346825021751546128093080496340269155419447859041063680575197975895067044436654419234455885379310951860425752958437639460784610907922223429720722195655483029757341421820275112606995039112601213255715906283957133722192626992928785000360248537890088951490000610433638441928236137763479450593006303917307091217034510427831836077232404850103802039277805742806445475798859082687481154014253967816915696527546180479437905488158944645047226318459044852554084752021814789449609566388851710044033009723862565496918368593699370742844475152407794348343084882108096032132985854518974022614723250443347639339436038387332963359140993102650343186534738365094905834149215548031383448760563631907117619335017211053125083015496698307057842368263538226401604641284983064777722895907886178513183592670830551187574542503498748806895677919343127115831400001647232495183231686212216130290670434337286563454355973218978091084158324069516854465662139867674050969865412213507630154388067493514814151628805268798682763148075070138808438236122610731104047124233017412905995502735606337625353521218168432450875491808721057262546038426468647420888433978145887945170327846239976418857924685339214458267046807464301719423241729106236919100265049419076534577294098164888569256235223524287799330617660616324023859555239679976946761028251327601371266156851297595575024185031117138538812451023758119626365930682507565001058318797036793172395467737125340448810721912313569500956958833092621946335451171620416817726699812898512311428363640270992161005001523007984224389519043954595761291086306869461446693588933269357115226440309787514899653774110810419226600091817224199118363445424019956213579054800774285111002602309849594051167153726196122608921226473529900300207510218378912327477609286386223915760438846532068564180111579652350879704331325546951407019352004010368249434214168686644316057235663808180127168072889033327306367567441890740898069791207715011508800833580973751102681880636332620202755104845379564491491525692288373935148868438474965524148296287619380818097428614030881657718800917715967807935487857040325723836121530650235488808745667022486352814669426125407931480636200438603904439110756401162695452441054888674148504937986603058656829910954451097013745888967263029539932939591258224094811535516613554748583338413196205850567845735142769137664421457906994008954831079537530411455407761503719594678291710620915395654383099132053208708785139264728522957108789718176823736035964074018510474526012388626915933398164805665659485423820372638896490991309000292009397629176314497355096682585574204458702384877837270006100065211600541513683842627476526334733266251751494978942156479885068892368854785692329362649508780291844870545982304322478340095522428773601283359532309973963355540577895939328736524622738889199719393244527860127054019711519222113812380977162921274296931027331039223288090060442688546887783845505051931993622417436790230897310318311744877170078286803388973799154592725619110213166361167688152330848048905288129818641018846175192425964577660337144893861904373651799679636929880388802824050124606373678565634190407717674613157595218657690684185404564843368431809411840342232234097489884819107365454141035344292720441189943650593236126134875426745227115201248252630278836950938605684345103985627028080343197386279355686017787314439098807072821316797990610250772000570939050214139605196227621367561704643130286756874032490002201120848222069631342826573395400682252292326396223148443944549429861123584085306253291888617380085609532803306519117598640932788613559799820447188990745265323135985640237853405510627404870000473604363804841131633251847796288654694093361703135048673943580428059743195532624971865092681058914976046546763929091702909449994357988333321344874984739823194878053327497518270175988697230721543114370483802669955575715246317282743483354301258492450312764715814810302407075945051575074433490966671525003803483954795382619843014050594757681635206795040795410471625645253725786566532194886909696345354724014145995754037357563154701094789132271260866074189272047120060531119591052445092589533135272267029250286435497932505188204218832103680466056326715973427688232467742427223872043532946962001250489465181953786577460268729086624360640703775070205302723735672436545223491385864747183429758501601756840284298088442663159619070301425878750838865623981917273997885112689673365785319968980167370586650380834291029379781931386950401623500825920172183675999650716285090334196376581938973657048651320103195565831654819754133919834419831637262697683530633956137606358265000171910534196268992849121101285338452405887240413380575721489620760483456184173901983474503944556969503396624458350407617749420912784689992168916337128280604666227292797930139434653837628349595613846770023416653211514651485626693605538337397063628730946895022879171124994876742598655403987291886438583989604323192272178959521181512102486202737605905412983884622386083193829784836938345788988765922018267746799254075272755870331053911019895587113963479189316482203345998384277720126743145998452542542474595701863807801472793597785579957296923082242659674735692223491978690407483735017346592603036671235405727491773483524803253177982561930795639787659646946177381457907895488168555317695864297910944686540948471525586193555531718528388696848997058245560407163966774196461051465336684539459907336499122711706574409515965442304167946808972714913897435626156877104967649387337407980673366596149217947005442478875367614456912513092751477568496410220756427794203953386215666283255958697167910747660537070820079648307280107356235650080672892171338781358000323834995172779048321645173101638102063650913681856254311696250646601056201886037555426052817049667271796951501752288052241724340722948637444982283289278372694005693006338016046091616385051946838999540686236182310783607330978917766531219436494626671425472189653593155948487440181332647594753359476930115715117784419250659174100074876866542346879370866794102874647237837242781968872062637420651473499520667879717530425098999214224473007254182078543489972754099395777869493204602882119435684848216536037825679306790231250692156388858503015224714824077986961598008931382912653374276749302724520773916473654236566025031917980556835051343727030670786682354352731892989004899547566850095032870670856930697620976527228098201080877815298989262661417893151433251899120497166089969018269595616046365902542967152316411890703370279640039805805863535589384291761107024767494843441176948575005811610966288975965175895490456579546646156217348857432828007497474670690108941491670495070077596918857307917350120297778354709091291366728826985900893812405997801121684722973562674489877617182564774750860002840256712377956222875904232188826243140426177127101099980060491870253480791620205833725823101663306633461684686113179509442626411968513588337451887528424403186171228231317551948634413641453134906676678701884042541743598936499318801950548171161615354256860006501738876193385462461450390308469596235590798283510467320981384994313992646647611439412852408910908027575308581747959772095543650138251483110578820715042309805211939268515450805057057311627128669326230672034776177442610767842275853781242484421432809872205715556954576553673219132358114060755606440942651977977604226239054474878784111510320746269867928680871963995020287893080636037110494845075231670380127387061627129163116457219319836637954807364043538555813509456406928238717313798306114030911068019428890128322558311880643324173220520368349821774425753212405000187979089973295894704645671005531418687834602347999471108629700716217605551601733589382408149125167803603218779444068568330870583754242927980290005291995628692940006605981105427718095085539502895955770800534238009139895787456363065176523609888404337405590355875480826675387864407635148209344013816351560236001753975524703462068644867198069607968622664245592606150275826681475265239680972539271255384286776819268305466706695312108962498855266208555974551510010883716368676736764985457483614542082995432018165134506002731361190061716465672515485703881357183628223844214546696739436419108905201380848179589688947068221970510250191994280070937982880816608200617988310154932618212093620465977173856404157109975696984215177293656377254929527485167901682779221697168839967610916605049325819787049027672059837905834283255773234141729462313949596445970843851932067451583870613938941461497950694900758052892717746389164815250486017631873619781972572409416332651715230895265969381989650818866188912506573259817579235436512919870001776305250408894963811478688060958435618792615462578179256678508914088002743569811721378367284430014712550738760423263872131328173454554783731790985863261312856510640302556045509775259370578538512781923962692693162531244450242746811904947951902319370738495680230736401558664576114501125547777067733091028257543273214945952329408791163705811728225295222869818851289564689336796327435734538619147375642469966737370326786780959789954698453324397118534544450114446794832879884716859097811497866754901019738713625515842998689118832403954475014846863563666659142720933374822456491334578357429044204961289418877397390719893004472255968725894009705585264940873467706973122146408166410349193021393513449093220305947763993215222744014981759607953893162754832213450342282557444161386200071318804186019380404175785688893630666371325162944083231050493353708239285407148648452172327801197271741480666652478917002785833919252401199587849952165774467304251765626873663481936987447328282669517908731887624513444483432465311527661575650227692624012940478614033384851909057191354105732698215404377876797996532062467282678900600963325072408206613815050470370802849483657817723819771282535117107757000860595360533351546543506172760854638979378747892433014352919450956080131615912529170868323388504373015369511006646148370259850439710901475520466324266742645785987400959946312322581530551571823171475287911988145243236489056653160917850239139378498622667056198274338094036210212416013281063198254743603660760092337203442369068266480374973979124114951671980075228882770970649158982930181403764240136547845344905570639164465879471780155007786046263663585160646691939937028154375643287544028470669622768287369165776402648847780574533142473690152109522416226764026877068873457310984554418336567392930641463408052125330421794009510434709615832316111532370340919258256833656911480781679590699402197934169123674590543375764156132373682248333449770654877436773560798416092717863810384777801957562154748655827351093640055623966166734112489903900635773285550025081691755028857313880334996876396317032798944613176949510956824378219554490973118337199878075855266616376445906538631124357123718777243282793428816617278000822266756573854183849188086921881931194380943337005070122898347396234860468685592305770078335150742845407122011400174304458616532854618971765947253109357636655879446828747440770275100893918936136023412555151937196983651345309551568074494484771169316561958233205645119689984391306106293726410129590070901807914785081566569266408838547676809345082681405304245629805004380745089621768794584932157705518870635620099326039269399263550929744035508514442802772055807829013455072030227389185160210470648971822539038367318375438520356832579510146675107337931253513892988278414970282165953960253299503567780965422362222357197180235504504961804522811981736078718745989652292070826595785820018526637273897713307056344602175814349386100336953928980472642575809050123690083542615908976356433869090872539337029362852709960480531463456637362217817719520166196880350062961559343596904265275423047031298143359555725307863010991714542987087503548843022126497187739555891137638640272973715739458067625226069185303390782181186912437696847338926839474499061563751036642176965570092883184943992809415688134966582179698183128753246981440914812240497755128920483468911040270996576690597932881856753613314114954824324294947892888677715883594638779356866726434763508971386620716391897599988536122087594813864330843779668260696262708849715831633583490590839537749780988783368363537555697126507664767184704436752844683902296205841064894414288082302225174529368888769919240764315465829110514197841649642516938879400480790807499689874071028504377818457399570369929031199949309189295880085593652030484347618751703707344729152518854514883958088361096248085725259370222843605708987804247532015022453559450830295749737715149382711416864556235323826180553978503541661078953519124149882619505879676731948884138504607321080031272951783924439263721365385480852269548710553875712735013401362370142419373171321508288049795222237432841068526135984378355553188489556147005598247494969145505578857975491144421839346327027873324299822076610742748974864052032609891978208892208015348487569226148971824226728858498029437697645089975670347074951025300650580829670090844110006430392783974454754143139008066402789062635854060646282527861812887329792967999355879793974366600914767552503495788433694289340871534544593884414228112915746271410317439839161425826066270729687229267617062034329084213281347423310026170775856459454730593916920121539038953478009874502419888816987384530564310834174127960590916750038460918779410560562345007081433093434544198624680111860462740759403668961250364930791716255228785221615418008873847712995992076396562061218385826302127416068768854730248247939373280170939305698049797954237839332413298145164161843616573771397799881077753199500995520717444921918277515090080273290544675784061956877699317717025867259263973361312362377853051271660935373136992758832335749187313106763602010359053293244241980895370452986640202725272540782723288278792980202471354823459230567929678283749951622938062130895505882663780141305327507046949737794639864166172530367218518427635813874304406986216107309095220010816655886339401234698322824184074307274470548145280118734050543958761855003074849858471662137281214281881292654435429585024002942544543368664134467542835176729019715460854019895611156814645932311709236507943535779114237191320251486313101943198570751988858794697806310690005735312818192219118643189149133225111889871125825070726003849254697944229064008232762418562406777264140025990083451140741370258891441608286615295402696865333315558792088301360889421153332099092072721167541345305762594664969736256274816203625738548091071196784040632067367541997724291651258451662666738962647017572367171970754628197555997715647025779936026205897151169501502141407174857962840055128001401909722882386214348096519651282203450385008141001811259570878885865180786032281909530217997909188303435053736411111993633522562314433884081694906699836580696248765117951890272511918579136799183188086790020452454486540056603284345845075407177813553764125546854973792220147442368622439562456234448395228782718078993353817413361126552393520573200247865651526766395723917396704279696893718449124117085903262499835485369326993644621672896263358330630548164887478227279679521521091929166862611431076606142184785250855571383793093292638393050658859038456948024752738141521006684377348923471393127953364622993216478100280645119574138131725962957749891495262462203813318504098057994332459107447777352044898730772080948095007373637229065856318193190633853807744219457637075152854813250971315095701206251737881472376215232351145442416259551182512797137854182400444133409897431862219699317864330399330066826011771018502219470288521807774168549231669279220112675532324382018445014530703009127803496236112333550709718307308711454331001648555402229750668077372468138384807927598395518778988510976071165803867456073385945978750470607350234558691867195696485033670199702295603523760142536005337773422120299221804177588080587493617814409748037629965735049743149262681520085259836823529848422865899793701829324774373664508937554405006254035054378757173633498103102293463307112170706274898450236176265501680931748869565589501898699910626807449962777743640864176312821906609959164626692960089784879261285650104774015207757403263341662973956852088143621553370892811119427745077528894683060313229132726841719183681590378777420407021800731582142142335317109645800682926240873945937140360073706336805114178608436076165262542604623309083927944195314655242792881645034245001399831888630139470524236683049138591853200819976171664941838532964905215111493817847340121297860779718188323313286691548125274980134955675350773076749819644699724113491801689781900925126858177391708178969454153869328021767466790935021460364598815030871302325955810609075519813951665128646492915629595131361084316128086135962893393021793993059579339899092635496721544177304357716977003667132193028420467181056459087882404081811170788326088841229571298311758727087997373389002857130767253444303433648927317311659185552491910115610401081414424787267219632206153270170292303089010535065861009137321734119692379693552645689464371202996016826383367959475286234734000505501115794640288619781546480716008599334174670318410144480192452614324501477060655455357963299989142762309560561984246723953469560527517969826876996395090659391131114973604179351010881451470728318040594061215102172703103959202814004171574623335061468846861124462017591816452874484485879213208122267118579483037786699142995839704067465463897857489941174156955771859346273503712316823987892531745939054819368877825022907506746300840366077494744684511336810326690042134610531594227144582279206069444696959710831664769227678435762680358265582343936304629743603631829298152608157026676614490856078715625715400384412937562358080792082659271993808797759322027293975005566594487936207324360804122955236110843080173463318614292022708696154946736220647090962796084326946554564608642026852163872462170028527737426917165415844713800367366285185431702295170333164657452598876864070997206865511507787245415879498280027529451183711186577174867307843555446891028074210618605807665170586454646277298678152213744482677909295753292023352158562363707020016239363836846028616132907728652392133474148803172459204355109212376981545284015050986177059413910169642896944376934337656171358217233081641920540512751774779825188371823806788955520113634853329390833272743282688210355108668299132798199054215192196586428156535836035776701558808250697369588067177448263290741851823797497203193599827336214629177925742354217136119897443534116704915610054583228006790130090745635594445340276485313395748199346136291805904650739445110303860008913318378484847149267842196148019324612096806182708228301082977204225183644804812127715935249483005454343504900943419877836583468127558107457733654341515384780464240933706301298757330600892950707725295575297167820176537585460202116468048882292056420400540128952199039316648112738800506200467996776595123601950528068230715158407530056756888296663775464401958005750266784214223799750932035070753135629950503970501969381555543455090226495746095926010413372058275433105164164748398808396810201944159224894737526210898050812475372931715054056617401501838135932134844410127831986850251958362502332163729279471845246451266087007029607516518319218641146240256045472010870640867775143496747119011814045616570619840453482890654309026357896723677455795307521909847678059744530536951048318295703267256818719284336610017983081948591517633769813614271780992464783171187529859434755383617224088048267023887429646268174439450503331806225290199675865694207886218901526020847593683680718578754874109022403639190799581982572389529788366112907507078416842028656519295200305982230136848770082469331111203280891650602811689512297508110469123280528804651593575654284240758711239886788442124392307596146499206994034955491884205040517466759758215297293129232295699098078211556229267832143962528950266018354710820472607367420924430814907670525969810908232865591196239912282866403371392309427453492674029209009371177354157328249981506555636542654124306880496414795597473193166142220033878265002612743059903002746521218651219230160432242099328051398398751966583264182367853831616775634148631355403748352420820049686232081571431778177801187811445093535345977786383046442979449152944670900436947070930282123772322347576726247184436306940411643046445307109904175481660391175451766809917689003896594625751005162023559898708813273340583455354449939750575469927564316648101688859564902496027593813758894854066529894933670021102931093760009872550686618845082860998560222228508190831735411320142428187542577766459690809538828011705020762496412646631988806828763756780192054642758029264552577198087118932235557294436251427259046811379133598619723525648647468950695956729579068452981260165318488108993938081150125834366184579594611480659715737255167103172403910929171834554917017626172888795268650021388297027689212683004231404673815560886789403134633628918040665691932572332375973440206428778205018951766747416300843976680957790782151259275677653301417123930744999348788461320000600584108362860888668039723521606372165977413035998709916613888892541712322540140104104443067503716927188257903856175939026682723274545201034130915633351773237559912297323596369851553279562618309584384734949694055389253743438293518439243142108371743489097550690863309432039883593111672966337357354970492366646369102110132330378556184100080021693265892193288685135184409412668471076751477266478493944743920029687973169198041650976773772825192902059773910330852232868284920544529343777021862108923571150331443895939339777741362427075895322577606857081183752850264788672331821945196892827312820819693875293381530368923914810319166585492121468741404503032500191310369357357921284918671329404214697767590200606442067243088778001970968771768066377033312758313061948340452554540465209539716215275338497876684743717214997928559583363310530310499518770060095496135601617505936361628757275775116981107078859979083910540921599465494699679655770107870568782176100102028914689955425109529750413354492434730536066218314578760226389045832629923629407934331156565847728434209417036695319837355871918948447149429379704937945099809349839493984355688135465551630873122742865872528667426072050733602291642131325959277211337822487868186474005804850945021660226309009280647525705527645505734737610127201495567087857729179688740004504540953139532048955431863274093636100275726714694273604358179466412613913150225596027731640604453366608087538418996400357579609765000862485960814774688218403230304244140409339145903711201008712830719130172894721457223472346232919193842612952888640641046846873581490592584147919145399688627602428307402100103222875654641236647929060787359799487938877920691420181927948791317729923352872080082233894288493067571262187379668344257815190175397832825621862868060130110450514893553643868289724331542279192607446071968946647718135980433113787146385104668244253924449915147212556373528116680465771701476129971176793059182600044611392666246755889053205294034486814082427329262292922929458506345460207545367878857983707688868774401512114844269223379852939058533883053163935549941275577352223293293388019668058100887817046933864796344684338547519265302905827395864708299512705771009827430709729197790568463726383381177851340038764952151550575816135113376595446584546836613400815481847095663683219589596547332308402094021581453326531246736102697030311457974170981609709950635252704187095559485904905480264970131531525969241657259718249151721127347130993494228127155861151425167582365156122294950210268617194470809179488256321744250389518919427259997420697209693278205972498410193988739970289127140983458166541320232685761088515273113701924846479471958862053229065111321889143903126451830583087796402530604896737229895461679054986376843724120984970397178669651685828574973646099284005161186553664681035881648839378356816894964779140917086188137150000093332827349318663743532910237054086081730505800485565612899454127907936003621177472139863513885715924592122869423570486226723451631456911637678572137714260653066054665553220827210055321694187829782020534872570513048261851948111026578215535821718688541417780651245639453076981487962162311611363840957029801505351225149854234475310657086681890843475259395001158245027247812719336383558355847458102486183974807209963723568733594524637676256020835038323767198264379675350926338307890806805213453534202081977395278447173952893628117516634191731713076054467734697187018385991194345570608481420085363242252281581155480663516902534866370808571338139520350463560842434177544172961685696604327693051419706616446155050045989410499209736688224840331590583175896860659723440651642046313053501282805665301548858057827394938397619152105528915850206489480870218912894182072965644081061489355525360982918309088792919910287141132423099632829275796299813787439989763664318799440853647485391699676732408237412539395465166507785553023771407783546616853158158298210915558631708665783600032529368214952423005429008827512231667469604898076116586923869517390866703673760097815259354125858274644023592850545390930925071802494548065116615626786955372031352981436581955353322383150744747773717394847236329980822560495803079006431457782332959196202620538249205461530801941186413417026000282434797544897688574739951622640385668276282442334075414998435890173434968446346972686556734293232416958755470561877353675831324807203385064319866662071803310799274310137133615613444515818605645490019457954782198325116027025225304871032549799219563691382799350560251671266696248669883801559781310561444464451247303623769693232716486724521299797749018024546966308645650452351215975710433762943569743368939919570379921861914997469239306817013196606872829301047112254246991858720174057536918147938021924585374470309566076076727979207560856583706674214929886166183847575615875716538718401069636254127135056123556168726146055637291695401401530896333306026296675448424219080192256791706867636620851727491328406735940782164696618054224443256462638026402028034305907975966184559094792875652191328153361171394847068126153537636844846816527233602781755258293569085154100621875942424325897871925897720952475701890337552579891433083515014235587111754513886647691056520233794817502058733934055011128466273590281473692781788206368277130421614100599764414928250949786225779422737387341401261914063398440439775137151731593184354796254412409486015355054351399835134173454171276830531465510094877242656690374204530660973272830145249249003424649990268622803803551990261925479686465962850108590645844877324213990852387957124458397201067152310082631017025647165913935227488595343161770171910098037903062394398733780801821525064524936920247650571225600378372647601608104792785013310094478903054305442520180535916325921525632565872382028386137176905419186587434353617468213625173171786693739378043113413007525219806823865578085652453534085579897287936162201952354627798120445598381029673558383314393197356837670279579192690705174119207372356156709909125081836291394082404040792716077451066300694254879944174371500292429226032275528769454675186973027085259869635263276937403036468999286888037494763653390937333913765207788180731151258488196732455714195421167687069346079603037043128006135746686922612209490456639776958427371957895430419586980286521312241550287494579888184636291437617235936601597422659870113279811309124574480086178037248296922619191797464375911321885617785416579594284396076199768674786711134613739276788383163383702301793791176204674479482352793050044640330036598540578326057688186975258971941992747568702068726038311727370084133658535899757573277313683867572568109626003956018981913211367583330005713196307423617193217728591627645761924474534268780886242057122770238056354818135873267481919683745860301673744123767462584922980383445602043850514589653167891330108027706317964950032347223375593363309758299063589710264940605049348553790864657338797298968944261438251034725426540444609164700990172080407572916266350187393308549673534122751095952716226601275862528747190254813020854954802473740510886200800335473966904195242182736424780904738492977989336849194550950171887064739697638025738316743990951393528434890088221387137181533848641654458190369584878964570151170303603017607360367706056956650091708495261844029036091718600184540908358491064094561842453860368504510864298061019809223751967979347506903385817474874249266346592766301025502842389867326118777292236654269878066570975616971949571239432581826723646131508390325504421511293561985294558211306493206717486119246933360507614090824232504468194848881376743696053217008481891969057708575921265452715756664154275821336076387556329754329832487364026660694978912804356447686432693093462386642578739715727280644650838866985177460648290379022113758841874301287519707268126858038615917656662915642714194776702869109043186674086866735133534531064471804043508421837939368428587813584367572218585615246563494290286707845244783046246894383758949570705317490908113880416186961229598263370654262080308829985178771719924245246786161373997180128188752026132305282670966849022939041405292944235734657172264690839817426818407477967830738994207647498684434265452481663055281868313885440885746646692722141613413012083412205563150947175204706253429318188606931705262518486450628210204693473969102404056001389828995505308301999544930694037244962276651676986778692156365121452700865653359190551159459720983801115386560043432104228370644180360521618583714900259072736125203772692576405768758170516607974966055444741581981770257988763836706333771195663957894997367031782085444057244183724129305346516409327116917173632913310786338583875070039975313277300595698586528390337284704530331210415528184431552463575878001991740739733617200297493059865254875949364150668518340627526314950454006403852488901963759076949695582799657623798832869977737093906729472045378890438866496097183759005752516838927330137298613140236260641535518541443929227834088465715713233974232885795415664017822924407611450496388409677366322703482192206236980485470776006614883652626709989308482570211550185291862922816386765668542486279193767853657803332176116857832547469231222755872276852268157575354531635004005688739768870925954900284417237482718108484507065720000156957016198055500662298112682483039420756369570830185028462255334168247765898592495252648238640872581508854421602535247111877657923844605765861796672600641246253919304376470131112713136162925049727467750190464289761469363848838893064390088525418487432789091971978814800090311968234192702624693576232674646168042906010408523319774512205109273850456199338965548472613259329866290780062270638709454116549162936322584891672924898562275037197666969391623434569705916486876977753965843761592682479700852353958076419995632623482667774016221561310384002917166856791995612282270873221989338513516946313050396716411598862678785530801650989135192703120929954262593233182987282105436341126381813890121553353158282886038979328824492464244594481910752256074875231394811317974726108884158081990259599790670326979451970060168432248503176957374800969323292474319616270705578634074301875579970474757702657116759472296141218930874955201256095895679017641457245903575959923923892612977031284638948098927136134197736507891343275087851784617555349115665209480479315532936459829351157685798306448574678405293870026441771634771550144084498039762874835522666571443507898322316996213332000431324028629493203121454641705443886693111117971955808392405062649382221515637103469536636252512148137922985845406909043548906899982991169581473555964490516980790823554231547830220378462085192557031943178574714323661894089288437194662301187159133480210615783782735246492852145057762119346966616516970482051699679422008161347579097355407789745768173748355408020447602902009282197613011080693950911278173552629756988892703735066498402244404623428757348418016831945261629794283938906565693205763680959397474745185664399694212789920272259687024326240323852762636732723067912911168821923462923796956323550380504404111517466789187904267090972674494781217601623205875163967198670831660597560656124221614990976886496404636032354778629585418995367052763167421720900056606571004591182406161433724373651674370354671051825821135055970818209204941951875078375787313065536879379949291940554422426765047653870882284288437461898849798379004330732054364575456624793928140242867907276054653715308470171709074916533801507538413845044304878943227451427136708295366715629069859427029496806234964860603400707449122707125018657042672455519449350967745749240492339524139620371324756965942598880095207803983280295103822452178425304744855361835215546488218522870837569018461193096268939914757721080820640721129193251309168177624333268241472826622648703596120152245547986590009231805576868532763365663615534823587390977196136702021983790984739784480704847343340334343431485972765996346292085307742929191422896177310713454460223418859729035297049877403421549737948878137466823016960427084089020315818459898788901018432666322203784375527994001487170553990729283712615922332451012815467679777086223606602678150179670559819872842242369299459270847421186518787438054000382002609622139696422556450732789689439211189401755803729370996440437858731822001302588902991847910296796331613627563841636337858833709203757433595077469986696648850516368851715178088353813499446004294862615370459575341539158365680935495161933326757802752190980068374429949282356492617141331939501962109300373265992428080197949359705072829335838746178638660392095798721640744923607999407521386212311046288361484548433972989282776751798388707009027411291714414733768581954782147541168404417433818066062674928296496843570364477219927284598834828100267279640006883647501203451970861119878360371622065028237374679459743471932822123002043691128312428034211816452165589848180379776720252897788947455532460510079107512273154550610776891121662110527511792137139688639982781452392801786131871888802094115612634930605893114257414166072163334248594149266957717872310044421671501430882604114696685202300281455549691732325136154294371728779376252672515911974041851885155079297547936371330002129428984136218303211343849613301273718338792881592354115817921101641873234912941874447757764561087309871552078022913661437116650681013596369916351180659385267225454781386216080232682756926388694771165773380508990706224501860640321503115897371880182912776245010734926230637733612176098882469243015985990828210020661340912931921225974298928072186826446772312258638445697261582018945462774394390748752335463324414416491485867103217255283424088866017805125932417234252750956350448011826436872245142099262677580945707079991117627898092194597055914044914921645372037615498906795112757700417500854509789429802047664529051268676273534921691640172869409807808788274889234873449807224083637038673068169649407123307382196662531006749065219401500020220780871370321014469126951197824498540029577421251762257507745191804432301086286385274144078125674074518829456221107491336866049930177729216364124144863913662468409132937936153795392694494255827044803159205307706636765432617505471610873669508869488615020725453816170482053114096280378239231356876311639499049011243361237201114290114806321379679849453954022815228360654647630272269455155507177497237697760852607103334430987140522671121161741537558884019490673651040611815144950452169759984142785434874903695989289482170214655485017332351992170184231555566449747050581850627469716792357700125839010284071349324438418249889438701876754176535402113470973926691661482838056140151607417965550240640344763522584197911810242801215678844653907411305213566115456203736902311569499297424426921758175349974718039565889125680156939467738709246203881318773739753625069991952971162871445184381864467297280761960212430203992595174560089528127238521625490631511489141288926882857603701340606450523662005681210343705266238422484929506198548239215632656536728644214493062994940529231538148293123875219225287496947086325301435459098413237691304685556936332643569286033667168523615623051166344693181606642458230555305136376230234633991933380396613584853383705856830393524245913560763578602762626033527003153925230205484983459124979125645568864587675451274965663063443078980844347168909793462781760159387612552550607150436499822907020041663703231314196978100692719285255635982791691467840803133865847646778401940415684275844079894539968019486785381203800681826609501839614615733119480988110921560151481637562003570173615437665521242294892446650646578570971140926835196937775954966172604728105477629310336220241699268600462141014610504420778727939872709726927139993894192878277148681791288574662373423288415857437802134716153352782124328733176771553490446771919083826387195333579708705817286862792463688059867923435971733301508200482419594112541259043643187166093273162467955095445180301954287610469713018848708398649046769311525548856926513014429543760276691063852242411243968115685797152704381590460700247974068435545205066893607053493227050079169026607857861408569814871552367933481200131814479543671419612393938025852773917626039526387262827235357570795178843462697635224172983959153871814275427464961292891576806692074736330109611124528460087243875367937294703968380437351813357126200175247038132778152472993926555974718003528464687597398946696189290383016046737617917506679561860284450773864165244657095365247106375480297963859808071701299286046738909460354372811619454892294077887118970394049253818785528375238852824864810193496876239875558938677810324516324828266049339044335328774264578666621040537141119632942727939679518930816146700211850236775081219345597242672628773864863440963132705373622918009633426521275470818643921599142215176365557402203478757002122021560110822936337449840211805093082633988419311507810111332116163482866216559266596957882503966816105437192448254879673164518029694771276487561864803241787432799460223385778792081844261020607516247804505765272404051889990426629879751622416744828524034798776824686237982650041245099429118172199080124510976789064107715265367066690254383045166826261516414923852649722639397336153740231234465788306744917685143988633341582176933836518998137154854674518100455631628454080429301220053693685578108475462838732997691796682485592725510263121115890102335753625667839893321608328046921558728314110137406149554344174869908025287094334979429025958528326312966876859034202210903635172569876252315863967784506943771721605536897298471584670660634150514148061817849133447471828763527300460705795034035423929527707716670226896806557895288420295240163873897446269267116638848972729666217135656108110038950840784150524041559724270012699160723808972189287038477148810470856529618249800210217256066442464099693516708094311141673228987703664300007641139865643180529898781586084228283896098745577948910887760788886177859421534678654300359427003326568336138368114037602883294616669849762507151755603159028845901509597488673915111564861796215086810715942147731152751259319500917873885952632711845092173892832388979301340805880357479425899508870226969646401391257144395893627125276790710632696975075955712032490524251203544036842339030591239113785701200337376682250661780127982587713371825363076476954421689084430060350478987353807408289731506620832833275180102454963639335428805575012125513598216373584962914465418150963918508271808772577845406923793502056933940105773726339765291539889173651956530681304601897325512174225237671754390702831237857825100042955764412370056401118514574588913286332444141185035497217396080354483005243031415814667636126394059687220233389555580089018218698817071513453867521580408551523127996047600092032480487837944213084274510051299135346382773221483055748097904487931527458337806227406567780418693608994664085672408694068989861435519516810340024333068435972120008897581828931838201436652006284533387943818433592549284761003949439352551898127188494247280634649162945737452814147805095595325021510790104509430811151050095488507058583512853585970896339035326031166390425166420830505643693025567932551475408755824876643155126953585505755691927208321592800071243215166453498024434136790039760983218490097315280792599686966266442336139970708757794386523678905651150894953850273632329234286855196958349555711290915970795620571824200222119426173835340666627867883105209799619852074439493148825807975610180169838576066595596164771314675426932962496457279433836860126464208451968127260316008141158725935023255320325455361935884600518354047988257080617890699348412457576163219038351676573943983447784787413743844865101755681942318446893093288953710114750596608005491443842204601609868074891805535189451667548157627625259869762998367109348378509573391571524364748875979828332225621751700168971598364789220644410761968801247008185372862889628724313974263880087440985622268504283395499156416496568000120523476998996933668672544454569417858540060294499483691921444030971424746220443203000232906846740070309258797652619537402515212918652129234065275826566342512089717925266779373766287483866279973637150786541599836622056123705862748315406284280051886338493938257629306530619664477057947126012940129850230793242608415788283053963033292715418357633305548370042424070928037936630989344045903418461235967937315150855250674924549268399007110450582458834703802498251437016785329646145051188483369423007565489879478184018282861929124573611031417188024833813918683427938464533694101907229266070233491988466194093969401768786986194062105631586025291938858152444752448957033401329055962510646782790520773248809780087818969356174333175039851442200377636265455474787909565512887062497697805181088888446250038014487983367877256202879429797085097650219412112327379424533103765864582426551309877088769142050879693763659366981607326134669710839084658746988536746129575340271065205801682999269028295180998798926565917825397811959095805958202906670913913885216560368283034058992073287201937951474075354568387260742404045570982474041902954967216271944971400561606590030879914917121786679913344012722220772954907620251882278585033581439865831248269534659152822478593376382008270420341180744543409188811369186833169849357598394548516784166193675607993110532247320891568460422160979763064737601662255214343689841544753781463856053860199112182361094322379784175599651256457004815713447146554880406401136048048565177753848673350891930634277616848035037303846510282871249893740215581242336798366001808977197289342807524321939896526276995493447818071794963144579784960642882679147461628267063411116545604650856681374589375245872442826998922426055830331543504385666484276458036174867661083061397983717113874636835050972923641405308975696070986686847518696108300529450427952509937082601059446354649444826725486805307967519202538997058442112032667566740456211867201003102852239255814838353776239391729426246872689214861490798936722885111806225075123825971301258242434192334027009773231108033912862977943503062389041362888561440017121008750703176425728949743393025312892900634452739369681057840107758944586126557103278854304024242528388449067462720316727093862796444038570192366595119065832807158104206590136241255747227034337787267626826672352057649204419046064219760336415433132909015054998421438871433444209319282006473582817015177735560301997066963236361965835781797586724802642666948771215231307624042669022757836710009052530563187173928238490691629719666388903957314409091974030726086036753903378542083473620456533847299891531074346495347132774090269989220569615154362130358984556733431992487580240988430865615363706068932540127071643429451702871849440589550158300305425877373037858706857371282211558849817964178773252366743381337439423726141580287259196887159521697290364320392377653026788500943038307379441463145254257380606215250695451458866679210156088077987949456838181379965914924214878557952006087165988942794893080317455478534379052175960609804885993465873771055133781898741833725243549903797126138632030138657564202218605983721631879002572181164598230201435294720356386787508439837950645230099861390134827388676217519105052614406724676362014282914229416597811542946596838454663657112658059291359153335869525491738199629444980922848749324784487404435005374056662375567644396691716283041062319378742806401657189805494790219757104836871600297788182414192462736284855114650691568320100382598585852076017720916125079930486279701542311547508572660488270786898777038304897196139226430823060315863046899202829952698961887927014599249808115782814188570489444407109467683918962263100510116399895299197050204033289035652974809527819679021377572412606587776615549327489521701987367268918448948243578372359006109710282753545048751062454942261202852684195185287545722331659071293117202378300499563516279920174925450287754743251887577132745450367374068337978532502821060998624317425628883277688030561229412549684023303980872529158621301179904927886977374645113616756281297677671848649610611120557536348729314530435308897595316683505940337926933096887213088302507585204433560148069842530074074630093474165498054057639426986432418175101787756924181609879948733233484388130455670077670194250187486853735664228941323196646955666174649844859223297499710388100793855845163165360466048760842244704607443214637225004524266685951366372256303865098525720303200761060910474232508060893093310173594750056475044831607060592245198852023586618601756669763388122395710951758587971834981839796187547918897992346683897589096088067635563605767550920776374539483910963097353547572554191554828953120949043592758355554466872220645564285175831531880817923174390837661073099327512264039683345698571007207912600912825520444949670909277853923379566949425648995122747880459384270232948846071253358211122375597761371715955506041853953257416703530761955624132431344079627603936826525139204101840198441413828276757761172183506496281623348598800888372499669344263273414263456435338026692530688350740026549883607127941943751398545801475587305879876459717620990554348633402020528185081605769868394619946223164748006393693720699286932959622142521928126031635842435777616073446838453193517400562763649445611756006534207546914288193552319834038238175109537217811994904880121525487652832695547304431061665386366230290799343355886087534730583877236705650707687627941373040289498367244780238967496043556425866353978050596079444850375610730827133889255468034468061107408230264780881338104291550420289821283526125529261645891261504196178056754507024416675408848417924931903695816475346265418511478531328079499096159767203110090590168039389351582128129328143910159786505217162824479773151468799665838700569654776146199820676644492416128671187893871307068432174556625511143404005497361277792916414713109184539616864086388192296041890119953515246461791162437324351102264443492882316134721755745123788839547999846016001622541932693548660625056599820068553651484546548956783844051153184449608840961748556201039545701341192893884782426706210238554531841964046678521511668295849624803446148426253127264614725031260380845209833994723960205442439354926134502626330347878100446546827269053539330751159150049208166379228765936779280097529491116432572567424420005696188096342258794551284274143267170622397130136658049365109403493559326152637507295060425871391611584859579689023289689458619520376246165138538672459952679223136640669967774026867603953260676863237703075044829863444849864260935074792280203894728394664488321710974986731745573954684617777232272179970867589675980258902799475758790657817653247266052455833358778878736321653466180947593091294756720739710243837488341350223897707922418590506797788106102729805009538604538000237731076545351587147743750832507734044354681984501146917055540013066503672408687988219337249498300379075448821371323539533891567406590365095731733322824322540220622936903242334495701852674259080822646502991987661666801953576075856797741719679073677654799949863449011852015445021764268429336420797799497699118154312810278327729113535131994530258312032223130737554347665838007464550871867414775764501131002760521691412683193886882941727889741214978735101416918244453954797127819038297142918046478948409857744017379957118671753351340365842557750985124687616454340361005724372698775350035095678597252195041412042753072826382172911089316203259575626331068767345775693928166074699014503104044904738955714923102203627355892681396177874384089440567902739474277173347602940985214384948921037410685885441344510303742475219011546449920883321011505634484666487039665643630567451839491470353765225448496449906443213931602942842029894151383934827149450171262084188249995294327744184786218561903179794082593120407062520632254365874001900963691207189959468166857485116210659326182180628735200811795246734656781875539954585876328045886756851646685440773019231080059234955031134418809679782719844840615315298642821607962840110563306699317244348152613242209969712302552914426437883199298431372003282077040850185865438324973579920471024331647334476097440203025771164954899213109434973760997018786131097332928358142701412099585202769953310508686833794413907468076482343581433570602349412385359051783598331434217623764753105554980628395219466299308604983732864904220694401777423511315196593634310146424093057216499291418258451993515515877948739543447233712531857062047034391775484304043457271989401154497870765569421034166619729944600189390513337863374963660182725136376697108725851264003171904237790587831238794461185727433041340555033509236417526334625086114311543326830088477972760403556599726293319899214460283877168760905458067078340515095492406948436933630364786058797275586173638989109749348793700796465453286490389784020260768804922715299742957541737920268847926696878182350674750579874608299701471518610916729670436732626692677624570056976015704759007197608065898564550180747080693087678657623845581622206198844117132329942838554652035798538269524905410652822415071852320974995558447027444474952379360932183864455968242247232711306247842076527219731305087061402854773422901403811164342376407849939354037176564983826321641983675506655415471321391203092135204030215329998745524262851534621213442070321094924262999968196873262066480426610455561657644505162673700023857423241930368776504368947097479266394687751971243918417368666342679007738565379438908021311571505575992125227681675692724163015134186192683658587856786108494444819610739502061407403121586849061277066251118586956683903458803219331998817802227993591386435390926864273027780297608902093189349917367325205239100144514051449265354623978117780235566871516721148150608781378046969395138096500068298755511783142477071801138722745610489353547924558217279133348019609570923394921100424197801121824677532407800404135856823563563108753068563511477429454783163709209988479512757840170245073830810925299826455148873341595552469997540424528464292312847804022292443105489681783147435013961595993498550174917376093945070503293469918374272276694236533569349025211449978414395635091963884088979206286088019899738184909919293783771114182992706511089004045546989658225733157017620149306612767235921425881403082486041624283606921642076168038723618036944492955020563292737312028439167267608509909589145305361034840834142453807233647796981008156637036889365357237379774384245371814845563854560932110099210302968166515077884323311971726066825335520588713174553936121518792527275693310174538921276692720900863914041010942627081701047773321770193322023889310022800052609716213083899870337540802403884249929557767334456219020165010568473282953898456771740232800723590593828645624252031214785504483599955206177115428257693210490932982037855442943236107411788251168763099694737908067965556321923538684264727840983358099193756508846051519706852925336953380305657253508809447801356117463926258108449286387391275001045617906421969642121664747030963317956279371148246183657170590888458919613141855800798323254018314593594747692465386132875472166188513164987210266407822510634521014553895803645337373386904573342653273659981540340807184522504440233067025480998482370613721296903619891169345134646288843287968151051152399276681364140668734533025061015561145769401380803544994658174800725902318598512677618449693389125464528301536210156495884013522319050399228152114456689272333090748580021948425519396397137867981276630828937845400559990031300793742922325079403495625219423863021283625568025081269034138537450207565200580903122600775837408566916098058660167068749763714591770483678819789769382952867924729048146911930945046453329652578257123449483422526814542407427140050979714461906955770725853241798004514911731118198220105801945860944661000300476537140044520645372619651024304048089778825285076728816764279070572420356023507052440653237214850264553368097981263784592862574810504407554438615065941575080111707415169597737485357192733180112106043626942039219011667821562900267488551705232253213321207071155673507843258485428724684480640553251750736210679423826099888422396761237010291746464836051972518916837843273368879282871906238829746023497620784630036552971305970942068672323569841871237113976411266388202244985265560692551923545598610737702685006928429870964641890430915962642494131648081998922922263325237313593829540650054168297516409255785153864616218368551943433404754019881159976893560543019361101625672170161777251772739451444464987239050134645120048101392703556154432394465436008484936581821371980260967177712025742438327991095427691772290238899386852937619626029851665204390995372146792715440960311162202818341463205046947170730489491856093746239951849219378334719352317174802479344158710284225997659234039715422873743388826737038944018388069693721743974472511303558293507206868142768942641497493387709489135835019242515045966750966976821176271640450803185770890986403784035608550529269218292593257785654002994425706671713216341206008889935819790241831918449052992135349518414633894171851723465772095159795458451852311775289015101655110128598082733299997883990580201454780028625568844210316387704481682457786253789259985315393159387919265297375004365149903468888324689197347418533567922006016575663602490590309415022692539273130771466651663183839624607868041265331957046441654937414740353004216128775599854169914587745722079902157976480055727539583082084802380426020564487626960105895888971805356506671951678739906886471019706456158039721279842362571462923137899254703770825387899725418990442047483805561093291063845854396474737253943317568158883664108787461449222540756953254983835381477786295075685551573913636610582757134641465366407268845955846157623405135944497954597518313338390902702143138690057475405889038569578351540101558867521384460999232212107310185184776511398945843503364295284981165853656875983930579690924271179022044884156617874137467874043352639429821398232251181582111434508868734722409716042453525809432134253250615127333274541083530268260786829905808708152168619198880903550656043868486838476327905510191419629529081250211580688568008731442848363821893109457086398054580600785713201499132152260349897604910082456327182704048313947501715845030531757747589014106917440242705417683761977231664504721207838806847930936511971874738123206539759800459058715668544536172527656735452055190254094327099957329590543026208564148250101864899186973658733101537483066835695896092961925824357338805558264767863475019909256000238443041561512573430299711298959719318100782430515731697314033152196066579432092365846389681282829891892724935521856250242105010886341574009696938521050966822116218517970179878700264982215772549811388275146697208212651143220119520304888727297428231697011738568856306801241173560496681000426607564560718992554441784157915257409708942576797489788822677669726943127552290977225106029055234025510910433943691420259298594660530849923805711954800901166243857545051619923156903441204165921374657899567033476240262875100786255988733506809246570948786325636965023127635402640129360646591739689174167753963864412176059392990063444852386871703438624878838585283823399314918433330078839778622525197822768439715299931634953391358070854301574761579474782480974657465150842079091081549808009857693033793741124618395191429985928996861035587041582997982998291334201187472508557514559779179455985027174237844669828269336049917750870052581160084574456233972556854518544720750044757040740137770495247812362963209818338464268041823822681428370602973120380357133767031769540196468951344716915364642245769328120958757154370458855155795039098146172912663845545799813001093236371498105732448960102789601738816623481763531101054814168768968042998163367691137703581395687261710999057830687433355569081043627642401016599866898969078832430311780393179236640974549473278455935528051087313240499654598627131426691526245424985183225433848777871080078131408145419781832496917766966797422831888972835245833243994087206226497257732386818830712501466359303597398638192683421686826287520714638174569517790408376331863359716444028137787495991300574751420462214355607461608010178621471164334337151034550008623031534103299925355648653014054213244397756288718663420077271786171806918377917924465000261667745052184647113758949176670101325007915259360102723736617348336805363413544194527283569525608149321660641515206878173262043840424400131444013254341440095088751524754565358415243043390919514461786723969339784207599568417591298317733786655545752059992891272423901531074031224805842481842167050444118225615990238703265190509481937885372680293081566117883115752479499114323623308444135553765084423754221973058134625398778419162634736203130988718351749401880666912065545735684011282279383521901902781157634010535896909733247932317537592551778778578973467839634187180399761101752814909042953068316557392899553226754409954770481447752289746200298132450990521658870607100943245302369901905201724089839829283366358974006903221954124000463062181275234034828602389749830870001815617033395621963650337674572126713729693893948961907632295636662337680072354219384415524825020073967526029076644500628648390823430274456420299810848127343778923660664344421383726394098235442708575834231359669696994762020074280658488664497883370112037965805518023629898647576344496830023191320604354405920265763337390756049948912882083848617276840304271285171124392278864331993149027949521905876004939349697324911457130888202197309622810169270555543975411990489234346788602414934882481139703548818142822348241094954882119478085355347990796711775318574637773472071093613006694731093416395696335355304028685411160391292065376704262414440829059133575190455125073754139634424636186935035528815866482096378130523135764702163870173251907749761460053943193470326703529987845060501538660823992799158341418350439646477514524654219224087286021883347844318366363337709238760122164864979130900803749971442435314586116857204619757995516923498016702304001263198869451271379530866548279021921622191776298811463629403192894529756983917179254968740274805485199141169006557320606237602187167099131414924336962959473993794300956773451095339213573526708489598896215012158495465193770932639975507253642509096026250181196914661784572802519613022889793928202115617433706779645153856680238449823080280559413457316210455956438548022345681377692461245201179765784788305981509305469604788345282296981984787062139193709985665272299020245785263943878821227195076405259150517222911651063370793964907147390478971375597448083186221839661555650305419010756299103817797957266379526273894568959077913571370244777043119133290002033972256704853511213633980804716649290985572685245768347922453459900935980641110632358009313420133414090073668811020448414717632437827988782803651828219404023406836673132189007902231904797386656171293561188726801638049434104439379241994582584610356063253213764518752155370192526181654282043831792669296762213536172167558529187374116189753337860295424279565821495703886214045953116169973799678503566804429833306796184969466575024627445404243597623046703129796270045263765431550370396770702772354082382519513852766805972481819460953915245829324001363044430864214967936422344453369790502046996967337408904620295067465221567747683662886398888007390524933621286684077360242872209796115529337324231150448394239973835442606176966167103585648379206608387366519911125391445525547308117573919496577225297802617424188732548747562327858627138388510340343116744796520246037673720216863208980379723138502634412666596828672973764020064602779147840833685474448242985494121169759843879934166872652468040106047307990594604778244827413065319574903774252454229398840398913935035398233410349993441385647644934236940132644967998128629133761481850675267737546989474218797563343439666952199231532594685498622059544319323362928723866544756404438937899751359949403263360811688886921663048495154180794814802444174854400759629700151218996918182256334367329696645852690966809693162156055352145598165587551427110112543664152925464126956694061267479196992488228459198125787304288580775527579705640038403718126777118716245996113214237060546885461821464906872958279705886003332592877371459812234072462583632738921057793234106349912820343054158319582816060023698942981317642750804177603743743527974722618526219308760650107869132289434193746513733264875887253714074161215294851931998979565699682455258852980873787203126228935523100538616702607208013906012029496544961196291581344595470817026538853004266837199072448325520752196105534126966194731560960654090426250912139581540737172139314043732176948198994185256541189803913907998606572641152669936092525507252011081420213883839321263005653143780207517497518412269565700624767081892877646345806547515141934375053314785661548509418200034531184313116679909967819482517582724612681530519356297217906299599280682144479722716267911147363580101269562112693625544052117368203233445290961012518497523228123554593312026389550366947146206127027488875460741128062954224956266709307261874908418571199056989761969236267802759760881518905017849486348628632748263215552399282679738873762499782967628420632140283384851117969312007732816095671878885184772414972506490066180736232816500290705908871717392423150713354336709638799643735027442402869013613590682803011174803002945094725089063705172135352738969418612861921884499559484227960738940191331266941839191885623991569420165331381258901744435734018907823349386852324022343786791758557672702329048085445173667867168605317614754303967335388139095247699534325948615872400268224699099512443390182300604778047688674382938227548217161678946032915194613664321484269691571078158847592637018550835780063227314550863789823521052089992709556970662067076151325564268435649157651567812755912738922186401496309417663215707818794216441250891200803278852138167954566230380936284986184898005581754084983342681799830358636990770097639571074695619162415254933468974244865265288445703747566694544266709235897587230385331398898914239321795664336774337469865123820581255922816737265313321647164937955588658885150530629796253536125240757127231196398059141776033855724717775763196258733627078770142782274694038909453651431477023929493051020369288702448794674254210701086775233349424696500031891972472805276606813271469574645534581037720392148350085604404327535534579814110339356014408862316692443277597439825747226193926869736651959491899902658577908599105582138841161496332861155581660142524052845080705011809107969971088685955247746577974224677911522704967723781999845866149475935958657898498366664300170242180890113358853925016120709026132971526438408233577583682853700170059972146439202493484945572425403153510120581018119191021379863064807482405210060136918812007281506421981123609493493540652362697900599007893870390774261473905089060603577876693861903388165750956563573856261774084454542338527509120983790084696911867943964579797487669250574187058491705616004095737148835486463347847734109431688082356573122020366884640713849922909308788104599890137564155535150177714321612588086048573620389686754869784107053535934101555848615820727330090479512196202222789191296956430078529682780853927896563496469447747569500654842151030157725998897698765707575831692331183200593600979550778745957246352240254675690277836503724676211241169875869876372390308553311097813369613794625522600577465537268913688863687570532523567205232836105492397211469921804153338434340373510583512195416356768296089913353809412595600949448039476220883814485184686134804164809387271852562565976575291149177033472286181680813365222349095770841497376216876197257969489278890906433623138034577460330106998277213714085311142052748007740608944034552840145340821765525497094563665202320490903152124909974377164726662341055357318809869350400947656964850832223496060420031399382883954957686048859225168195868533379657461670611001954261748041412507604831936738340076678362549063652468914991939044964836180733506402272536468832816106297925194465230752030949722562349682993930913377151763602924246943977671285192539575359068072090545102452727296366695143329945101031087126563757250805620667252909861795498604818551043033753898449061775141549174588553966070514810528111592453380568730762237491744997023191917324899569164142998574281256628547891912876172456668691104067580541549283446921442605449613618207832983341990691672166954220145311763406656371645623247304259776888661777974852893462033619161511882529410910736765930245010672959961508747327451910757562261963583266898519476778775600087525160467622637266194383512779359328360578622678910229621387444105206129894353231297049756786074506470379675572886386996809766387509911795318417902241599967773798143585468276072549000447425767571141398569722728308960362259274399836067187476073893564188416976833285725943158169524410197781309606638131681633927839640068102992680222957513840672287226470189088708940018941898177178403599509200172883623820204906243306249864897645284672334496134883687256762570546576215897923281894235520685791091940511999254638177437343471976082135059493563252321764464006280475848596395147699257159625968028223459294397860292823716346813870345795162495074831737563525942900587387919401955069363843191115138579008935533979737478951108491308382736337022392645942986322798148337242652848870442490843283536590198431575742383669148729377630063874974534600875297539837632313829120172903852893568823862457273486891069727234070842041039839765505693246381511853074515074833873309363761832368259425158247809412545077245193871480283250707481353959702532548376999844874741364876365043875036109298216950375682864231946319095706073782992013932240778828352909919188047278456480232228298044874223787982540343197486478898689677904495864061824018052803607711679827557233493414824795365114522189796184809935141373868513360167104357359335645332879135972119259803556753855642802975761801419103447139226197896308653428325120027921803571386514519885197675551765018336002205003952022046244025065698285704802590229417980555915645111944968210906287602300117627909381443779884838245124189058806215975058619032849983986672941034557768282871059393419148352697862031878146985625667635446596779726697627128483507543440985743400316566930752775953406681603190494383565045709325270494807952920774340404800112696563057746835939127251351099203372282053560122447534963753728277574101921648815358108041505646383913899622738144204408803192962266774047315277049400472648851102183713427753491066632393085846918762684096134650307832398010962339261771584248736748484076962896259634038490082884027098491783932981702919570426795185454151004836963985464192400980254702823105005786183383541762052982584890409167248431786079740304642796736737673517722084022826788898856067451235682107550478527297296320015458333803200272553609763055438298814768493050683102713701601461810273897790061441734444627976906230360789496765247173144116822558696161738510369659126788768247734132067835038354166177482887694360340258949035620277768653675162697962271559533541043819479499771337432232101890135343692696864542280168368980308796785937075153879028713737076386515916338322978471441535755580570108575044180804777682582161928965640017573398287070873491330855153350434425941464023869902824684856627893850436065083027692122445570659756303538912780325212352891598716363067360328609704018576398762131035976995401865016759970568725158402341955963498525334770722982507692066506848658748279534464024005066357996789789790544104544392453523960395804813696340088975520854450432705977904495497042698404204443986813358001742489844994628020993253238265574621018304543488489056371288477477542159268800265527665643276666664125368896019708769166477712612211120994485989844256618261771051989741171563025461946605292244243699183473570584896956443830490875450700264356306800807063911596794550276191945407097906706178578856618592423234778631132874931061671700398499440253783339252772233526479914652970294651180378761933121301860083081251924253494018680008490462818064200610238922179526667070649350791064088173486119942086728609106088274284600479819312407095908113144282213695327365930553917674502383715833311015523545093690602556777830126158316519140240350859003401388940848667929773159047303187543063607076124037570045215676215424505798488542036809956140292013031573612429418690352501419166071551273704607948902279837569722604199293693969530234282995601752883053419741206653374510938192944959965379184358689106943059856281698742352076752496032585022841191782184931755948903138286992453068408293027498632616540915384166736894240712332114393178145563151396254653780445814053761528674099618860422901480609929436353656040639519294761655407243167995177506373526064727086701920760388380856481356246161997655611475238550960532864456495862415499321025541989506484754336717549990063325803836246684509469213973460069628884831801546853286130100325686538623173775973168101668235546635411798337839779950808415917502569624249646533157912319008821616422196423088243273957572013599294756451038485556969118041487401495747277278482946971953808037104628449551178284473554001958556182096153867805354435855925079714775328534164164979706109459429436617189504631550422832222965372559587584925691413952620537133903209599191555833661338641348533672493006027010485553503954316717691268926742119255243072827179257834398312591742542135800135450215786075837360587425474242580828498192983945535919961844477653235641370332305988467090122524374799531870379478244848581739118323076641921758301856766124873597518680980652153670298076409335241444827928910042949003545795401531707362920313707184062136851346702197299754914341109304141787686851649254298370960940208848873509933156141792863231122668767240221154240289689429332393057461689953832588693527197828972156923225225239215025252657972330133607823125378667640753429189791414555913834008488040097973030298583813292104464633426589846815750894107617223247245677453354805061153473771924401243051632646224973826943869575803440582592814282380892476229805970290480473529750422628383862883520631246871330783442439643709145161925439642778946125722847718073239760934629674991071660643684498839560946681812470571001817283430577990224266043976313352609595747525601850352393078557970176892561546457112298284185397051533126348032801308585594952589616869166735498728953771698993558675738880166052277672443012925946846498151504772836755615681740469993230273385140151046938095231349001322454124176815256273163822238435238995696600764796376609468770952754437269424601361164717141034383854376958646547663300716402082748978898321324399430289298817804153999450874399453797781131425491362614497879210697245073631600703190808658656529389908973859272950702607445798055583872924846513872684495152572808541714812463928054805385918231854299543091144949419897249748641899491912633951299898664244793189650919510754858271452189742879715751438880450611792591196375959185819203507107848700024993525388195472602604370321697138468625676386884299099004786867630396006622074387604567494354331272141359933961508638805139028497658366448410179246491530555117719955022767732349026089253285111215598891781725132989181491351379586165189861069950411225745578839865645932946109917602105879709784425185514644228831471470686993838576103299204757499794988578202437134026759187030414064661452170354911462179142160347623064422452748693497480449007181205012195561504730626995550167945775241161913999736695551283395031693747016099815669202664760419424960934660223361838780530970217292433110400542329922413455567855072818566913665371639270605488861383108161750917709818816336954884763732170464647710742209304223744261092533894448683664596496274229054482299322228205211000222867858191530922771780226721508196422373307342539709777635486665663325263076596175714195369482942182691099247845081679495120671463047717928250846501881955805360335148521064950239184873517992583774479238660006975919571758631533245038844790796974267880024032494567345295449844077861177186372370232489473784371757631036569948732677092833053961400396121732903766300220998076634566659245965644919864887876070646891230962964429308136979200597497920226960715774419329714441123032081088371961876382245967478432444597957798439159415922022605075014125803931099796695015591417719996488527607487102117988421633948458755122218718192123697515587603473575208534726291461619412519582629884010779865874772148393082036452370368116019132104208867970700886418043964020135655085156105726921321351594148277017710614510271374920939104310158699486881771390676771171455080253415217805297391488808671773501913591032488403001756984092586302379921542594263074677897824678450548180988507318024131397107268966819775898540694484637759637085601977969111311399576799596122785828778071954745659595779918693708768154331805047087460784122597269750353388172805778604119026198932307834455881517870480857360246825209394316247045052020799157209694620849048728780399388702435225582129302278461845425155197859998378180653681376356650251792613313250373579493152515451257921595744177909546372994663155341207216616397454052795256037531167528341950588761677751544471576309816923466952452207308565612637853619552837527100993728708472624673697313686712908324841761417464603601192463492833396498865895677756957878001746900641190635702250842380449363247604069475084843760685596883683743237459069335093597319643390877800365420324390667975264554995825185999026683640404768846773399183057789994706735446056083646914242513072108540278401452823813638102073787935790380875392647163967037061049860098641013966110182764664713855181562179095933736839863681555921725585713910188119111459179707277071335542503420030583957310674067452673949288157857520648381702925352303306850592243895181595288047715399383233111073723236090791106704708884834644598187846491066493843366979052109918145852793868391743063500705166400885556238040252930352240487459223519238139980340120051066505453841942025152600527346887517470997819252195079344479788053668079892373213677805108033348526660408238038648288222404196690607849002057426037379379794644426303573309671139887053276867106521173717715969419969412468264350727629152439369749380310347327391159235596781573078742357787644182454419624910319424122287778433242520907854636727791438659393441257687942066944559185890280201933368004962110294750362615316638040010294156077756840579333321700264178602816011555869038707198952932708272896511258158229874474741147643683449609496832168326691046438812597792434534113831547949696702369980542108211429989731164699465080378024812704938744964600289130323767249565791550520541346284259842030367255877972026383064420732840125128023484776731870174641863746985059696838378901767586946340293518907566593135348357545848051718116332482396519762897356737224146642846841519533153143177465159465031028824661845629737040853035337780856754740156270829541167718858524950109358555568522781815133166087857990975229548186963643756014431105088867258469128147741414708240007640287997234316872839278980271189469458032293666948101426627727771262054002302246048250302554614603322486301979260238666734693514091841966566006656951673276256956506878748760935475122143668050335246841191224735166336016707870429555219919324942705245209570553817388863116971500372552266646677117874354698037290804815707197143430884030056532102763209119415143738658312780721386682895380862433284590515645202504288443850860483045788633679571386781292561793304373204032571731824458840572748759029259861983562717773115377166901839430022394314484678268519493119575773118364593637687860847510474027695613998399385532235248076681751379291192579705309168557869329734582610732835644121450243087308183593437396171935079097197406221486137266994877841011789436402596521121457502813203749808641362237122244275006967136414930587888129884793670972251780032248035303123821540880687767453951749152441744144492336401921579898027489214784846336181012453018837536900698285879145487412315840554589498019786202305996217032777271658246196144186276416053480595113270304013644801714432527244159557015818773170522374868876179719666171075565444237338653684035954030681014096998402864062514566771435130247831301648960141730380590292196246464923163381657535768224275555245042656330638979470257758277208640471933478488552170088637086135075277937355507512252181018399199964452418904382288986764692970732393053337358480214167230520563406191558540827138048012942704702536608807067921563992286567041679618284559336506244751793197726050838336843832081723903488939763293289417443310784617108288084117040455113975216019201297272590351847292740349345968667584860226701769136020021097677116646042912678055148752866684578429786843781892243542537606811685722028587476055915183115910128048020877126041060409975080026721730777633262795494591062608846802964030873952782546201811330633502699634616091272473815129954340966264831922189771199708345472462702671821143029459102261360942595528047534244567633769885754367207690252583748978830511206153808950470269675626195309357490939276026863624707692396847731861295294110070268226469079661440990039502742560713928235696679535085510890327738351916006846939964973455986293989645393820263712444343252642647660771389214572450002569328406582025191364694067546630742971367081255594375169405112689733655461557690407689640300570796268250067887015867340004679693207096284096687385199155217199689110381613564749816837992885868841290148900020702470369729726066620665606433467918592472845324339266538368525929409171190684083708342642896591123710726333614219292203886930232590613489409628727173229690099880931486092958610344935636191942254783676606958826335162224028986299607467174530130113319896326600350347823045974499775765742079127047887399136533477906852842186821030005162077760460213905163328365022377201927525130515692602208836692634527696097171569962688456674055808818622740318996413361170485156983644751445254925542343796654667397617163813655582829840532208580475870407616535896858472946808477462112753350179171190711177711521347904552570212406100354748914257418988128563495623188780943695042469701991596175089978649708839335651755806884775864929536008641241155206595716187507191938840968085510990304838639356597747704748254298848840709865739538341349045954442858443426958162279525715048552265953106939158824889039207668682916657766726287275246972868177935484795278168563591817721528713191376335974467881910093836274950880197276989710488057120178233869735627259137307836822981203658895405151087115811019979957316597272504237032928572217061339986766113754831422082667102396324977742555852553562138710861003402697174892275205339919528625851062748276613102861018605259447674132427684115424611447852074985883771655408457681883424634295191762177368964153713845519112087395736278081739069740878810388142724532825824029350206212313230259435771658880266092829175021420102348196751295956724414677932277011623670502456522050192326124932936275607506543472099972221748683231372842766850359270406006820775176413909390816908682142104625614703550431078190994896331987424045885111001672238947923838570142546253158337935072982307792813641669207778736365718116705717293337269742360283163205340907799489264804790804096227279747985944185115458700940585002157358530403567544140145139368312835880815989101177443364619049596899510687316216794490848025249526174240768865600415021382300504762997224602401058916604160742317632076453594071062691780515094070593747443349318265596888318647424462223282754418453235236988483860315788102153482440374134649198092966040244608671318057117836896003527254264786997969985632756272925085051950208605977828269365476056998592145758812812991761173792836963075311511493700390736353323554987431455480645279205473256300559763009100968646497825443017471697018483229279709225664103333379784329234178612581534362061414239314581369578434980287381087379278268670381115129208872872683938052225508168162177717534963206884767021178117471024388198582747772437148302022985344316897083287573836167084509477969735257513762057719038231245730215728338202750459616902368119325419409379543910729832669648070162976671911222008463252368199182489337196848583544922010635206051093685556483035328964584265763567545643819112788206371486658997291247270058814104528556222936588992046867841291633553351798864172510712247373542446044955364511834249287203983240545488786007805864225044556444111620979830617357993305761986214720628981916926881728684836953102223842107472885283645622192587041068362342153844772976194874113346346676946397881588443126806245594482547315687950416794558135632936541882383525781516634163259101865453254479173579698351822504699949886354431563846945583346130179750238545529591035773832101819410728775602715866810540635281629615347028025234934641209524346663819060877306746952194716701919360332671452102242931164314081229028662292393862457969857741738953560865754808893399664617023635168943212378957709857794102427090823919527378149425811192926500716068473430082410810095039448618326091821460977468730580074411227251005656607102040971132159257797599309859402488115204408261311464443497649551707682511486815905274074305611046010213232182985453558187409065609753898588840094676170002905794813343868731713662681761683973358742619552275297589812141475919278344646063314503885038807915884171949688650112979331966599982507546111544295046860534329120191575239100355056331025953129886916755393263799340466411110934858230088849727699450308363879704272454182621921701939626111321377393629817856189028049509128747274062258815714853441868294448620888601178526356850816420540441853928380798356669525647279817139179301016377339037777549589543204413654110511964995771626360467150106865408567325446854286020781593242281759592236114727079322644859012854616583242933076627559908734179197152261534507819498502215011699420497048277479525321801164439622763116095708577934782104063844657327124352547342963546695301186187973775661877337828940029423999697289049312188297049629218953532921500526817937464644081885587314123001598195030968975891174293162594865815794978048513026661497274964031960517990809559165700448535228653751576599908963769808471260773458287891699313900535900908202373921938281921186071457046172593561408232413847592732898994595488007117969692113598435499220087968855064551267930560255063840987273709959596367398059413363200310698566112978817365453364383852296796442939323561828657221293887554298766858162058400246023763087727590010623093760872717219602731086810753170826441251162909831138710862281702065198223451283738050019171324807331250287749691351161852715864699769356564800390738140868846804179884578934300666459328007305392363259636234928396251858870053157634642372629493279548548921286989911847547808072839841497663482434935533482244528263435060443689824856812382697544110344949490969904044797710208249136670272258583466371687244963161767317469378550725750035712750918001189096130188869585420471426157499449937602799727489864622036800253097273099550881483071429595742482582848320807677500623421604695581935056767238293849229651434238093836215163981728528934841676657557144478752032312137182815087228693404824799532609920897619688587490386540226334421561828277303319959067497138132086288775692428782192318451985468890648633690830043379130028974101232190588042334049877052026101038327245453933928047072251131721660738515740200120623854252089168104735345989212150842941424266668765180858327028980829280509569211147178030839707960143318239590855595020349657857252202548121094854856990760175750261645311109868845553433942220533791302775528033529167623594595110383620819753058409364431724735781997736513478325364371164911254766703778766935274781253460240116217207401645096368340537041253236565163707314300470425267977320761852421410202255068025280296760615696127226901507056827807940169670007194329953810484515009977398631005744814477302328515597381729586555300832989233209771443471850499670221115787628110446560390609893301132520478248965117007469919492016881081292754984734275862047293086746671763225443942184230835769389477738231993097536959775310517391543587642172021428250538515647905792596121516355204303998966250100777114329205917645714888670710664188657588139228473793728676574155609650589308875563051418602522729016186317853639738006542684457689696068670161795061286768248970598309509361336736805042237499532610950897801117044872369621137355903509564727479324328618161231280427156042407267314659733819523835552794829972435612376869942316701404368568499078786518175598371157268614088459607330907690074528977890463114320072256981256599561156924890175721131360831053646708188659223408439347119082489892485249779041186251703805513645965438124142028442190246963175012603624387295667219760644349828643708809042016856525901865187468727393385590152087526711865163622925515641687321996605831052258632478590930104572301790445613648555812490915892466908589807975277434947727070762129467327279290613887433269213342884702289710985969899401002817846295164719586049358541228263662367970544647781036521887515916075509287678568728415790025742576331298353681438121086688634442185937946095605722640721737707394288655576450847302456901962682299919611789472460001699115015946820860786075320307154616353324506930818721949151758469112482540764232097239890943829384652635609080184539073678844749321559385233653747106595185917404111094143424539378207064508412544146920426976738733609129501961101351533192499212302470514849324086117025148325170304722466989583245719565433772696954075911759575921276950494711628995217990315756991166881466025040753625019906212236895349935410613409272755183008979722811058694669061811656802956145773431282007482086711247152130808168896271215965196624922836830020438520304791698223391419485435128676025759218080448547589143918751863454097171370630292942538240079675957485444297555467335738528724722224452699752572606497528696812424006246121203171010455494477939359557333159713391934208549826193568441376791689964478068445321196710062842173164580618252010140470722281970052328128602985447695729882386561140053465583303506539971982908053598604951663979475809726807064436056720438033539777447518226007876254599513572694884204318359322901124474755290605171650676266518720655134800788214297149863773093221770959596850436190361831405600579564516362031931077465977471191474696321831910049776644632775695412623558648600270267404813052909857049086392434491626482513522900835367516508812362409122671250003303861397121806030854877841787650610119209698592679899231671792069605049022207191625608506441913222268411268074841397369729514734642353686628044488900688454510196854612469933861763333678235694123801325718786118704059743289578830021299465633301959799650197601782766354138747086190650621751355521983744473680071238602390260894171970124528461282898268526123441140074021973521936836255108941208169871361213743348491104643877619535981822269655781280252299388032255343427361361692158467737218476009722941681824185744346866306711392668397306270296454125475680121548616951714259594024755879129162961413833363104877820798818411063201026729533246550268441366566143769599488548386636710262038212182559071495048988838010162029098202688626423950637896264995386681911442301466131424833536448207272226658964428805698943337862478013413773976939655109078040736173509344690679046582554533681525772967739385541441360789132838886177654365828252058081376678362561811008206109589926690453032312993984475023782499572219940846941930532334556255430070876394749120329804646036809858050390549429480696059439704408592561074300138951894072393372668788214125187205057898792771293583695360723854850694477624626663430020597355471902781425443248783595850704036633093171531028802702438047388655554059328198133918185971227834332990247309377929997222087951509335883475243472970718451651350683575864172820051097059130026325614734677637111681722507514435898053126607251773912803920983109939093721584278269787134474576722047428320257039725804122154869365816087705562273460321095754110693037730525267680002158123668753761302818397518775184584069751795185059795602832718357546136589507067023030765755700150732711008494144358501214956429976153829938289512429069019484446249703186454245414013142214149056663658970196785756007110239599089355105278771038051870059754427286464364366032065689398323127323662931329168134540969459655112163347964505426323519800635556340079485986534388272230868600709970974038769739663016179602947216022807929546754537236173032426377933905864038267364415494773265179623849092164175640873871809407239963776092944871334303598390582507053312156753694014426441936413578983296324946386037682432257658502592130332119655516373579015041174508606578700413022729191997623253579563710782405610835907808253959698939784780284983823085476519665528381909275333257185892270062592022934959607006395552594248574571534800629472610559112902186705315188084927667762684709636424266464405150127595631530368249651142923009201199796498025817571483506852647907165164501778202874031906701757530348135700753271792775713809228552987501816957550484308333885853293020442906415430885004125221234766140311799970798203474785932849024537254006634909811768833523045183398037132984972100838576419937363409928647308345518404963479582217316917490020874432881566630215047537262917435308779346148902356010146366172175111210762520190014906249006594277555343828036925666879723688076325883841205640818660162486945910390450170828619911137296601155892203731633905372798437805203452195068231076069879691217158106257357418992221085003285085631634546788629104179914743372482862909820814911496616405643036432881846563472848116470555921924159101496688637804056372590732835977738960056397540841449304636506032287230487620812721206034533644036132229736652182496359571384235216666812927989018016573352657039325947064516919544697788872293176834609283506655061593706788264845407250531542844915071049800901334849379405768080161068141921236680212378598307785510507090444259948924369089550753785724630768763352876093382318892635944435367576286752982493042852053727110779676265884666638956752020400710050902372937314831188374641153477485491469482686565328522551915832119207478235029845633295576428949740413380779507147773317385197763725282777273908158449541757473025833937394329503029201912591381730024255294271247838691522363002681498850636402476003088815615244526361066584709570243818838451467182264391216414442067634033859185544291456825938789275825361408416965717807684790495272673108890012491961202432376005013722840666063704003779635483315527856971314923319550089290960559570138454453782844391643949246102565492372610791490124276886168388703287126838323710382156241525826929517962218936027522032852563998392442478306555865644204623065910512623943438123566134670153119093007262953118397784210496097921190026725658423560774929823455024416619937893293736383759209386749631136902070094281773466513807960983550029570298014722385868666263890167017181399379386989666046158484297601460702425869594490070663421517587628775029131942556088763958588089645725815865458682419648842393544182422738412784847005945278660000168772334879915976723416709226888314206098079434012171698079595785261513688351775611025915078358007216732465697333055038654655409383762931724544080935869287884039331115012500018373196188126333523727469712805019285181892107968282450570715334126251594887565264062891929916379127469354554140309364814733675009874160993284940234726553573727138050505339104027201040983465351971441840445128773355760144880966623812665607927674885913288935121065805792983997247493471401458479248455354495454945831131047510343445155994536244554927556024828129020389997827409024633467794102495677923988288332617009432593738536386236875975027591253737270411276119169547447274194634778852457397580968990093472325693331705502295385471588759335772788173981145005138646700851564310574556800871529868206230775597368207865281481957177188940146021318406693706928811493362328109017553192602268112013663381414691329724886236526524336283025931150024102843511178037893092592887182385514253716104485342542694942501731501336442147051042751925874899051839488656859587603582560027303457784066696482313231903461022626267874238444766441730533585930416046309367558043934215123618281132471137271280426433365817978780008034022529700178490679643189772307434742598139060184362793919069024470307357333854246622845144494437050208120703607759013879880088174640598123526761395848980850791324484515342755109507033992673059113283993231436691422927204120091781517070470835739491306656244030195148778530482313423179942978202495853930077434762571404264743677110404225562220015230309697699329596285409861297417034228433209786303593578711653020705855760234407265775382005446320650048840485347719140466474967168586470058251162013112421669376356472374585404091165952666085372817551789563134189162205630801174090332326377241736441310604373698995450652142763605183259489242556900175595492841296235674303061800458788745243103665625557277690322493930843413603257712897833990510742745647033077005437169768421128091111746333373733468797740984962335100145758163085082568847505684597495911551757415955221148321348669256896544527735590489431067097922819331186370673444301258082821346478000923358926932208851262196856812597720519504707761331455759654324092211146769561124410750790376267643292718625854573909993036069384285640893610200160323709312901175040192554045434099140013350935500228294768721989515187208569048541623885340940203659677949469261376952916685136019687498135183115942050481685429059485334061058596728623176883111489344369094143262409648934146098112111800354433968172148930074792268045164593420816688450239057316153935770732032878486687507421403542580113322945319633269570269516892577270951936057394919311144179134890601102251778577456273092739423793368537052552445538339045429828283730851691371918323953073945890469786246416704680675282461927555651318974708353491170507742817696286559768827808936448291044924223683911669994000967258844683479405083306575309159236407892949790345021080610456087308906674510759669682146715085776495456545909360861391756393276172865500284244026967003882087403880770377841350514062686110775752991656436093709073047893538902202663578299571506288448184613071803415860079955655067231992129528618267118546876473318921815793253925636702366923674028123022075840485909653386119488878698195333166999246105843924208989930126898154735099409862126493180413751176064862814459035616595607779087353707041026682915438507391768248112681523011418372479702553729750153196176292647999090266421685296547832652440178726552320730163109924133333980681200820557400268067601854973758434547327371510073093648089728272216658308283121881830021648958639330465348378434558311823912038974369239473754102098423069756398983270079680314249196349311934859057387605117668354311621253765157393871998945973046043066540588950009261591408089366691605216630630594064235450396615914797593598079843858975141749947872788384452143077494889138898624903318146035265493255907535917380372244547277410428259454827698935895294632475924096690247797183491056873327885389660861905368774223354384475248271459956210296045070531196628912397788349525756356808996000613985423923555298007771452725246673981485936164834509394547026566437358972660225730536131331544832089481287699617421828205440031341343980225032787599450515964807380929158653084052312733290761214810359996295478517372711853126020862533082656753444322508812551825911726477809244979211211537781810735945171000049262632714029604262760744954655446740938670367417025978212323417264782709632928773647097525557272959340714704213164738797148399496865613162202576988529560474114223909253042909384855878702295058116375774525878327466641073114778422736337965220092556650900102852896406177598594146784323959419332539253061610196446531968700897821885004627892782140330113691574284881274101744327122789861274857229658616411406465498554443250105242327914883428879654765015785731820013410893419759423066846772034997906830127235433317025573792457776977660738855714651057641750060972200122706050496747790518247842982430715070301818349722486633197164142064699529743830072991612230262434442432921473960758691053795327980719128621180987979039212471848751061925315133954889694656361638326607954468691129017582965640227005368808452141887445695232786528843499774441688388605315315476060154913407674871517991684831744357747842852804871737911265961142821017492642061250775663872404779807588245754185586984885044590824696525770409481517532728750287347320946566032821989660203684426704935516453794801625012842875453605371155740518190432301900415202349887834667441591461627499259417713568521480088921691894874922759378152487601309177639070194140101599578519638396168686969887691587645474735985274465399696989737327643269140368756800149781396988489593185744782133979308708024306605467616462951212335469883476770210072408258225305155533633961829032323870426987483070424498112617341111833424822886328656299061053670443970103634324736917225141243080866876815820074298512819848683748945968517454202876374152899400014574774023707198975532248136597321560210773015179823134047321954322879082968103458563490596308494193408321043637385703829102111601864103427161699345211676810511516864160536412451966679937555351875362090194290067814556161772681511687053449768067994186797648002290620127311882191761444909062346596314765894030269910610144633200077145550595341956874097319762152853238750866569893852211037673266676313824363727816654986589975212173199440094066600945235522379199656823534590320973918138954045465268045015623779872578290703976166079983655041674657564810720801465076786602894737132985529035374094272543385578636760337056862975907745773539537774455167037802667906160658748746052458666089862851875382877073137136321740255736003888358063650967600817136041662071304713079217418222937510797127862649590482225328036849869238135210267051749970772305180052516360278898057686263305774482652882818445972717652251637613284121665123393165977378486138018674561636901065698466594968211207618934050996350524034092715263843201013357557218262420038226077468125148314389547745466409715083149265059163691155393975910879211419423367239688625791029471742023002655764292475445209729409311954848809733770889653782009795781125156343595114378611525996928078737585987808724334842306608622785445879748418649649715295584121997480764916091527269077041791063214535023178552126941116476396583423341176895080011010046255439666657395051540604684275442076694239867355538404611416443074709529214482304894033333018522877499258340354222786479866466428453509471525319311636739007365821116366708089370179150533118554913154221061798627165835616453211154374935574753386189156917891228276261512755437490889333942273494680002640527859536680455937864030728038054752291663010218351796994588843039744379346194831922408776967666209508225840092101164988716765353904493603543293980392822328396308771648305821818567927431546846179201147752104813792467970707880191126366153680071820475208666455391100142159542982792568229265190023146659329832996502022594736980126437935471757945277001331722991444171848408196953088361065020290541843086530893721035359164310038512217946858278338965472416400046811557626699000213141363105758906410076790980145462112350682361868761333351634414018244035251130705455897467529456785934567985364765470552042912933826709052438701595768558377812151306462573532293060370354463952448670149649473592531074989833102587576310413269445786728538942054412052974381872090030251456591084629287302973303960095802631493044901708245013722428359736379366083521181714778325560751251780462081456336867075788461041080148051026461494806943522519181944100060841532533274576010264863479665005960463025761683628308943263932812025821743520516384663833894145946322498815189306219649078418831687694387310031173506448401510544105585950927846142783093359126586249521046359839913956061420527674329401510093264095060338408464911416154434835517539823448239972403487608762416339983608323548803217791840109462951356710025827526550066863283131757661571631372896481493947486165543373101387081756207069629518623391771671199718744583824384578693118237048632541783304277494321764616661305763023933679201831269812131759001068992749228953377118138133061152724761474415931164958490372825713931144884618697833102450967243022812760284723587936223922315658583687871941648561013965107132952907649685433064790318071730374750595779834413074286400702920571756358425339267947905384458499086536791231225388252529975343537905692283971157301934370518689571359987982588194598760680221705783824391346367345672149886900972673906657307647716711571666178774960801859347028787874066033010736141302385133280659138319214469634837582390065864533505651656839393521937572695383079298000467320062687278644935094229897454716130236766216174558934815158090152956782297576718054969601184023720897075760141910572924242133621026178911393274485385713802655740630348059511200386766896776497408162057302924852318363777657273321393393032160104833285639543385366391001935445486888684063652250449488764443134290089552210525952117276873698008094485724308008654782510296705890691068301119900043068698800646731669810509353345545550016894031427361488378506552353902662667196627270402724565689100570481032125397401861754090912108509818497907228537752690420309822758967970572508226394661648522924077233293741583210990012451813944868977362005606654554387447674820422506533082485444353264251742108207730987088884100463464243360468845494185200595639346114344035761583456341256397818068352935227869836654745649863036154095934739915216200218833038820418566668623491788413417057371391949701614427124996494034210772108183971124635460467018244383113747925048922441116645412401886182126397480803434754847903257871857779808439629301556502196234197518290468411354482622743361997107874664199541337867287403862058527944814724009860697291240384991690022953904410254829020417595430794648153703290533795709714102525139822826005001131564098745657923125279686275605047675213292781953791224981781898071955753694408000867820343976741692696259251242507791191286163587410747686013096865135544664850386777708571533844317021744135474856250824034328793743507323908871776312675977515736080264160583648491135907614948117606153691330906056322442251676462995288243775078328506349986840596708313252821346441030758984098476182059173134288711354668592405982608940556179432153085030670741081740227560968050079731712159183666667052826901881455781097137667654693880711161871672835926681792797367273425869920242179168995004329227292871122460850741349601543226071785538167547788193502859723617805970310944021277791759932598670377507565922933920327659609437667079804372319016296367847335743239514942248523978855258059417107394464260327743625074014837206181017172010553025032181457836386423468118481848955076092378267050081015594505852817608143018345000611210306554218071984190973610421394372924375802417759547621381028489132295390872058749321406314741946466546539025901349576546289505877969475819895835011719619528962192613194747051020660052559372398518526721074285227450401423628589747490884777092168517031097164061263826887940365535554949688619844945080560034417707741332256682306336058531026501307508272980340557708136696540606496122796224588398463241944140168691430879024460519954029797517719139850922498007623203556631510909663994166937810604776066166051067013240927175377845417232408980727696151815074881868368518890610052282253900056096323141905236674554203253036046742386598580434951805349062116679629844091709866745156208344427457670351166478906167521895639124550930777550508837854741790616082024753758973738480963706537789525916961776990973274102591274028510473204450847538246844975875711003106871165606886152196811595225800644962717832942407926212263140181072355746748904815560706445015323240003635592754534310551775363928925441886626224006534780794533324655737436154602814858468538897187547235254588275668923895071107413014405053751901520927773741230874036589937095213670882703274599188700938406642846609498469271727961917935197325494513425785684777261425705030275406096708998573596516509900802732512481992876909368405417298800387651193890920923489633557372912644723130154125685613951679960725814902110374956834798029571232928694790695842703911037906697982572413570599509386034745211835198780147154566430367992881264557559545608302489946726253613339782135174332658818250398024670167278689757559426373007002424557006001097474782233389590588011524780991871749284544483921668803219779174157877202203269142462248674221597881522219150365241355707652350449703914648711539647516860935529795251545530673331797422044769000580290072193238031642211457958432434918062955463891058007329365121639220658564532922094264794117924503876883004987423964976791766378121354604289930483285173555654126192732972313754842145706074465848649983392174832719791244027533403758638595604994934218770971857824376920661357458063457459204097177934852364106941612712101874623357685954358669055001700195004812964417095364043937976120191138051407177868284773978794007033441701447389629676172700342346524705168973449374145336343693949162383239521199615006075524944876996483859857687958765965534915110119146440768457598781089152117995795153440036431758559119840247656059746916436256859714960166158374042706851992280636075959534915744203550328494497908973913127198528383913657278851578704339823662994942028828448086786219040505309781908020577252066414188855957604070006964074382778488305516123766262393821869464061677466892611082353537047764271869360252623097365625191546511235112585758358174683782275396809162783125708570095934468202094934722937532995868265395172395133655334138600977870535526203514208794487987188180952134955100517697588272521448802116170616590351585185090983905373415614328059678302678384944196753634331340524298226533132925696077516052332299085635053635920591483497201889089118775789864384973705747322513804971322025200389909198832550370418837569668804982552509770290009541599035191876810107473427587359722091405790408259052141748776391594977849395258279266001606204519326702318052645662961790874453316943130491942503256671129750044727760753220300073409101714147128416866597417966140842659611150338113068268691552975324046099403414506831781868795731919419668122241180547738303520078394778220887051148372777276594669284863469559932698105498234988852497017533870130421178495572604716054436489255154854292337358803414374995677581323872006851272999303327791675824568872122802623296272635481705687307138703788614181645522586202243540795919114625971028049575248559129539745272484903262073608143206650587335651823985944385895542080681577685966718906194597285757389280952128687002451247968945284399069126793706985789694393397973716731134752328735141820340161659797775032095146530421477083031738014095419922265353431754973116744405326854979771095473227663387263008351295348916990117728744133364768690673363845751215343080074264928287831251726838620486138202030417018277003135751517633430622224921335886642049721144550948851561695630030910038707946453334329513370613324611230383537911354054992706788524052159039153487040588761890572302644897008156627155101079411306903915973180739116766296090937990191689047152852472246956012929269801309209464162989967371458071956752902949645928192381173789124756054495575531979339792452852979358101823470865640799155558119622706512080607757466830910390444636770757068662852196158789571278222885427090774500975922595417166762645300747608598267591149179750682240733007113133076525062125143806143805971695765266570988343751921392129970732805216766127927046792277430284978472285858536582572983452509447377066305282289406002078225356829191085225279192448120362056279614646170003956153980245954978097197275599664032100639444026287184451143867671378838195845001535220499928645063349046545259339444704885923495851005031198960103872711940489007531530025103093232824869584666041363835645871190027206866077868627933826185958589331521452672463863294175495080118199605557470528377209782667883211174969482359371917248010478074641351749666859389693483571520285245972879711525359525885039594739679814449958469602359188120113284175914898717368186491015980290205458913509326889866814098686999988306307222644944257445115268521160738729331827414644910014727514003443596634230353275600389069480215498034162335069344992075513821462994577365831264472927755144350674984560075491564769137295887900789712931977386989600350290155965253780179006581596152739365152671826481416065976729065269042391419016380695711695904027901682370373775879175787964968915755830652883287582433150538906644857332804670004024729941857763159745277257209468502134570322964715450404292355001670431488251311719178748629485323595542560798982810064969077559183676478457109792980296144033268234478827665712886889341794185007502448817770059576970099302121147910812106953493748851189476484254001087441940594355380701955261220379116064728993060350085531810253517359742947334404447330694177362289456783269203493340204567469377351541973502965537838151767563466648590794586752089796391541842109818500780015015779635508350756453350692053510832661261389480990598210767128910747571136149813702575588917465858153010369416791921528859013845657699600467351220015898504857981776712538951735430726972389561879316409912807876517234437759385166573697589471150979233531136061783594760398910731781888315270994957332089768438909906243324511997629289630541970526509793305075558639739786347498921519741850078637484570130608576031842381642883680191290167441811583842363469234052690562846279127054676375641890580382353231745181582039000559978678266224838377140046623116821880772262597091845052364192994335092032113024168156427911706179057240256711509451467235214157677195825325139381242239920576421620749493722304906665532023678852892097969913477361298154139635378847494845391707344818734952433205261700908940478488152546351211633486222945701934238930870892691204373127430660487733098458973997976953829597748224417062069860692909376728109513496682783515764201357521763401898661393000343193571216408284209307630697793570444760682546816478966704908437623149564762332111484023265780812352967225621956258242085636395180266053452054319852017833403626435337199875722539277588644357425982273412750350302242912398569175533689877955138418389049851219100469840896352733728173390221845771645818764916329911033743953328100781037751981216797784684897962660712826108626339114616617062903750474374950242921436269448268086214623279679374320264449632319497364788872221480862564521499880842588898010534353902740566424283119717667842070148975107456851311779650626863189584842725875370471832859305320869466596210106901190724022212422379145168469702794343443130401095441922554003077505765876245548927932373443720481896022579202364952539880440927236724864749207867456609550425301543790572320015176614531640088140258128934298586248579580175268918463433536911786811223658141439732790724168349309810105973442545884673585458590885104943189838941748105577638956307061734776020899058835818886447243236526730935758098635730849904803285891739722147258776757197847029927029444824888654564607315282764855348375879844594238468056606365784969804205229830068894808622397063248628916781091009471823205060115814372068050702580395260046728657061311041627420698845380055806669667842228928217093988309342283535820559479823778998492430710130019882899766115861164654573166325469199559072605081584920224966466054443686417641520966121057211008414531854961159677677429026989568065784282096462136667932497492943653739149800396301858142068901536137949233923969937168559487152053582213758690574543560877175781359195643994196724832631123208629007467315926459818805761046958803844855155090554222137779683652478069558376171189094599099330350785200697837686925333228483561403105586365890288378740160200784516779944018476134361503803648911355109794067513279003090736118327484964359129573939913727162424796071985167868843338098639268169272877773935033987615311061018243316938677285984743866995949049810909579595172467951366078798699150713977309714763760739612592467044871542977081951978896053078179897430486259934927066898296862424401288790223963573191065386729715752889760418541064998910385554233243909826324207380970276828449249383369155801169139241026457695276203335944011330129069872546216415555878162024603056801951811722993024443041170026024115619075954057768366838338043279026019258527191850917863871954884988301081853076588047556661631160824093493252133623948565314687782828004834174699093383362452221242986124413508863313259193721929718301458718006018350220397611417052718893765673533022187043148725470312015391702619102255153170853347629799277108615269543916904991864895909646078214523778135262489211752007463326967676476229642802424525963032719651628993036339217828031034878257819002683533110277302048431311460273182053566547394938080327877213175297583853462703057631480730376882865979441055210525443387245073649179257285662002590006002738054333303748172410748623595291305735107080530478580749413311434166515705978491517730165742470368023266048326658559637516156131138645085987637613111412275865251732863046649750044650703104219452502177808296205668468659227973007117485725507987772561576090190850447701474687378673182311354805382610281715456919927880770894741604495514005837755056999437919643167020949627351909536752481843396148806892727566398748932667418842774702842046221912332553070339422279940356718479068435318524770462142850782274145858966824506910566115334875935233930141486505376952180899526428681467960974949215974632248628663519815732267310872181031363765245941218415063426481552322973700122120677855818709632599009003234350731787059985869312327811608457986155972636119150111807032204904799417856618280997184027082215319825118379153952233509422281088335506368837476732280902624528006302446164486918774472346302503655361113871724375332468999162612228587791323062354217642215382096244858516112176119082288938948885612345707931768517256528836082778526877118872565363971570317317556021734964353544243226108115131024282152256479776841767054859958512948647033634634640539029481563161755466389246102406249958367872028021800832993666967745097881809609299537459780074998837633748359981121061574441309113862160040130855109877141922779028676602996771925282378306110430925645912848829078326447448522149393268871479478261089452763564989690247153369225427726568822015865086464735556684828741636852691828444038598651289644334093955916937098340305745936049585187120086318842293567107024956265507789958954613580697143607223049537973063029182500801244505719299261530451574388668573338767884803515622164304518370670022715911591647616438384912130007362845785936549167581412582079372366166427799468334154190334286437317291392667140041575447790960129591939820966192924115627335464596423382146966893781569902944123670054191989069874084781776528410855195187893245962148951005018934656653656754035594272267350009471563710789225276007708973892669506329685691162232099060666055236809222647274390924597358574955145007045363499025069935706314683977056061067751144094880344121194203764857445391845781150838133795845132466431737476057008894430226711679001128698895721855988034484874483305094400603439367629231101303966644075765811949457008773477774899035084589928435773994672219945627896707778420701987780509791546193393688222839270839243918646809348364014916796117585063235266926262523309472988612398240554820056906666124584137410112655215606180668866407080842567028284475090423992931557279951272115612166221910599466830404601305245255317111376219908078652323326350194783127135611714328755433655810532398539091639581607591245591892455316217089184822125364365611137515572991872546751279162416806577773521815216123105945170113280562751677472777096642696737459842052347636414702688135696436170063481156410943995232990312819475953142878454174861331034469226201010678062975843675105584020976527106400264037712554610754927369945276348517885845074819522370893527016569751255354914746305656160613590001731030541453922384060370793834831401771278090338410065024212032351433643684591921434293855212239103976202564162565235009701087712315687624897484875217434181890258977867922315423487930355472035117306885514143099738536176984530130118003726614548389827215424931849266633434002262468728134157444950649618937989602487214147664120600078848367359418287414227256335330628461656670315801199108793949959175893359338389098288576665231557307665624016252061886875374261607414617405318738962678223517257991455204840922639692575987564686297184444670014556263200957278362602449720283009776075294300106590690164528534228867306416939915537254896321730590119149809761578352995627642940181315943202516418159070381882095389953946354444710202570017358331031606555944063992013294040216782625620115412310477733508255527210066889413495629816999458140873732968435398099906685197000650169695955272677893434467109869121011973733894893355038716032961864882120888544334576543445843155696393042041620094651246892282568475336512611672572961652546365952876466780102604350088477597986870512109411147940237296548767816626054062468383297444239813824522323110904196283381735038380355924814022560586585942837919100145393539624139300247720967602845023606541712922270271495749603862256550639639296493976343239664732882107361418325642872027259488142020408060720009921117832833995113041228677979205271335429786559897935105418855529139249695203573894136325421581149912257711361276951076447910047553037464095680392191918666108271961092962006184617336014320460172473731216729642152599004562546638083839523258083544263831938626359622073044369742704945637954482605173162051208967531643210053916772570798891831826065321268028253985439652698972310739650803696882647131173633546895516318070531138988524845397685825139217853589299104322456380662827162531861267768903940159083089305675556390059735065969478241406419143198432595578299170019453165991374150687746944280207793949689698399953848561795254538519600925581151140838188086508442136228429969926054115648382756711878660588655050918687264054848950435263041431938096179509596202370792734369199345606619069548312549752807799287568612651697469929586477123084490365355720882433909345330924580713533088286334060421493556500423040447523448942653632962607289472949317764690418317696472718866006316099225486087552167847073733901327709662409772062033783820107664387142529428112089348107756453147009363524986937274273228659809888295067286373217159226202889559462604737902118032421081184893185270910549545828758542772703784363325142461887103137237507760469909130824259508169488191852866790678523586903714479420105940668607700082961047231233666533417729955856519577694338651001264464342144772392691880552321196070098651653543224995213288872974742248389266026337375101723971055936689969157108238544734545221469631466485709280714840728101283263211779698072244928090841696977084208189773508641732272889405501907733685628628653178873922928039923494539800835920959976512254345059246639883664487451395252399982577505936342182943378338576186599825581569300123374572842021293696190962544586014664077970270171772784209279956470816306343902434538372612948930102898815391149746258013341687723902944772512017302198714409473226304408990756962165122472659095748751610323497773079356325557118689805139701930944720514354191795461612586376165176973380801265658492553666974020254199274796157312791002076035864788635685413626521499576508156838418054628385978058743586906888696614203538646270174188438830365020993507331233946912255522914342160754467816817611840904103158548342326341893363706404547243415228379235945238569954932150169911946991997202092611056877981733130042460626188886978361157928360237706306318481316190502967208374310039579724913267773430340997083336386630024195931739060988173069254881580391397647035431976937556576113204653868689123377457608440926603719733688918548610983348281727746733239617448862557468209634534162487840943901059989784392308233137176531606105566587882283292959519427132853363060637795710503623705164128620093075840358257747373465906687694981719438734490596506991280485471300361779589989425513761604867800348030370202690535201660319360835924943468036815881194810117907380265326887402025714447341620630461176244077636361703651154510705523763575723222418809090829940886920075933287735908903975870924760799730535551437674210227395769556447398303467490742399325000407894090663305970924347536099458927581840262544489396701367322618452700237104937443121214628242723059191357680823777875518664718869920532714150322862630908285061858655958202003890417949829776666652152517106086451753044279886169198008257124128909895852822555839372448595748790418222960269682053826954988200053472636368586067113725278299993309304677581263231884299553877429066659373175652878274168259453312757650880093564310053332332958383634061865754773487200330797797701525203436385808335880365455653843534587065833030419576517392164088845096722817389814836446897996016010017567620367790216739837473901897423142124091310689016902075656907423799784985850380378429249134697283056089747850690070746914906558866125990446850176024023582720654205329137077552377719044206745797348020154896781923450031859636861587236584597016095213245199164374368204376825151030460012164253275077336233061590086235765693272649867893917027240306460424024085162486685893261374021236264574352247194592075335322247511715507598909861338198529762050594657208286611179362634250405828117574133313505305436291647545890226196392822566133353396212169455297051298497891894466066245672761206987297082214194251939460774152776815907922263385290226955432572550758134652059359126033243638116736047422005992499750237573264744833211075345436042983177954978259196518173706656976321808198577586783900480732163515403640002442016549487425693151224731773242888043075700639423928281042224224934145067937282459528320257929632388463906611833125995614025217161215657947486251189607929365951556737705568911371824784840142787769784721337691610074348482300430910054369654802540160220663125232863403003940663917910361663101020720397470276894913866293975882753672085364223108983155978393525946046548068551312153837295833755396129034193789147167462011927595752900712602164652528599293654136652839392947654491605195435169262478716796762775263031601904918710710147624149157519412538049068554733774179504723899777204998333200206268799950979637843123246798964113400474005552517787385794119488240093374249359042027546714218935803290000901320760948997319173561659496017923413396668574673789369905408913310765053582372488464155022908842743438450902398394041107227384825534644368961032342534857562833113503548826153768827537834552683793928413357612433690972680194431976283850446516007639473139304284812199202913610623463085105992507131414707432967274352619076808116933435654175385500956262771047224806188866581899714787508222124909026309172041976414699453210967922172518816348810216376574165906679577133213161478483420503849842291806417671821170296838549073088529210198549687559357755015909745454290495003696086153364671422586710280230843140190646480403941240407912338503085470891943774316018987089855462140926802832805167777148504599271012005919729428556529632162224936225764407396750538890801145922895446136918624276928280142962809601558559826401986277530472404187794466497281078867921374721071118053215016267496141726685447807646964459430173189318634123049799336907828823592010894456514607577203787872434895485727654791389157216258044966430654933875478698936940041661218232201808451956801198380354329538176968162268938054159624422303322681166862666212284981849818031625278396954384267317919714129694634353553211781808126375985492119786368613766567477803189495109939030098306439774856839275381831494384124173719048452395414102519455168687783984682963794559999736766490432824461176472823853983779362470455204922178854947322359106392251436019580580049359223641162278375823230607066388093792079860183811992456230768903953514359396754446545308407558524917151949482474358873207915283451641256044524185327520836134798203092974726929837727468182659860603387205435437208303572266686513269175329130121958036574070945729696324163500638203160224966053955877444114662739452467076248127133392908264182390782681329484975358284600126269027024277707818259781743491841849518259178245649326174637774450668374252572075936538221714509522767784059171461931487125022619569515596624558807157788216505706431615108551661783663451540674465760756597778573649035729682316071917029664613700407099621932486712463006812093237082613583451543331620402616281440161183890770270116775400511421506706864534988598019450048372591093151509684620021831861632531138741037765169928127438900898931356649340025475398368330440025912639376103468740972440808278150362499059201531144807766503710005228100546752190163807328066484545147203554023403088093634701477130000914891538156452297328915886814248363674639494639817695956721406829067971005255684630886582431178741318342322320068007228011325508860823505735000434544322682114072350144154983671453345922527680710834046750794528909034760576024385720180187905967510141880827468023004943431164539542179670044909140155579567904659865050661373702404043525681799700581575979072557104590193778494733766585028415883534428674634577589388912812685836362869758338627708497564123813130449484936139472374845031580535136659448799305958659875103273619670216676118384904402743296347934262792237330224177182569105839069416862204669771861186156691305960706120736416626845442314241677753834834912961245805696841954396895628353143228652605063559732581940122857851256143778809226021555091874798413173625609754280440476981653859025337655892243046355973409367574375391885103564378633999072007079728508157605082800426787617943758348458171105723909621091789575506141037674349656638782293377110471755930523740040428556999576233946021794273343088348530280945184423356373391033399654312439077161315791346257223727638259112051347188138959208093408486997317384646459689674644342617932417804444243217393065956585584226308382595515221995924459911554474772726184709938420149847934371750935953942460172607985479126018461496174374315815728446217961310782917460296188795333395477745255537143012512701926456020038438443799936561664705713893502852941085655075621066901199349533464656015728777418409275676329810427092268691605419535348063126204576729405381999272146670107056201949664120922599972278772890505695699042893335208336129958369854312285503432223722194321212266230190562119104296968277889772596653510501624810793228956370206168117943827393129663927779207897110498303275917367615118046303905059284718814756838459889925837504783535628167030204947193890351102446238872731966237472862533291528670691042291476142502501395462583842814701825391057385910888955402332239501564232708323540277907522207649346917309364041655243781001719406554599358154483336061291499449970719913275657576480075701553906368946381045654635962815525210221645930327900279807471279986025265071205540240322743040644493567727763704598931703743868124868983654083723182928003524737453128632714289613535436129587256579532172263721245689048588660587734655522442093667941092816583730807699468069349395521558566701086460242672352046734229506009352555856039638604976474778357448505878296856240980593970329662008735025414513130278443264184664323597986198896721550042019014694758029578125673505329231238615159766720507055788023467490807888896919246220697569087961107720269286745453942418921559421392961573949166525879967897716043461842569531180890942155566210784130344498310043149182623587310438938732898495315296617537728683587345911900262595710285150635888754076813554673804505965540615450954765592273641919934206581178512415825264988675653268441720214616795915769405737734825787756507143514000655682392051182080863254285751297267693935460207584701408122361991627623322518579786820576488669557866290664971571866932356562259849696259658652292732286707923897488832380043974101402646116007682044437948823574284980886464136808179233157802311305427077375346937257412114882692312784111263917779744571097004434206778758932369690327495317627057933910380098098279545564256822611033657963528219221384818456346541547116727222347059728047605905331062824847932887959666443899667792593945849366097662598687059820613804124183438377821798940272498858962652090274303725659134687934393410679423664247913312956768364744628132531200795958385176194660445132472193017493883010809491992461637458060414908258417047195334001638156869245233338448576105948035649062008936465438141209798769396026293560035000977480246287575549588452313391125415268310902953520695131013644768450508913867044939448222119047017121820896035974984141240413566877446699914231036222624570313589882218097892447779888931022237572906852338400864727397752811917695043863544781036379851710652662687058270005419792234417653658359881754914337040656041731119874274146449565865141707218504243173322996165420125234282399208705035151080753963997074617418512960457264479894309886964233625721960848517652670070996265131908643675940014510220041331485329741475561950764454567865229779441344392978164411973828759875456188897870681243101720471434984471218291597934511283840566734030583684369939457374576003723220225498207510410582563501961292062389835120343975286404639212457259886448887547586207271006424644101999359889595528379093846521003372449447227595936854341013454265813182616318536320128593882863175470442694548339423243046629477493395482827790075230464025663872736520350821083731299844299176851322238856627019980111275515491525426695493325440794268409822937002645284835444047239359629222377245646176238146865266596277110830433477085561562763905819692588029226635523739960101720049327594396804254893344857024340488398743305414687956581677957434393923138385472812205973556772441253614559298160295777688447718842026108750336701972101325948399595239854382775397497011006860255963545160177561714667032565915281902075969914838957078506650265610165068187669819261212827244057139349289640584994687673890729000374365309870020974186212033771671046335537887826913283345272468627250263000882270015912653288881590534228375008254383967264670602039745345744455828464207570826102348776786443907412654988815663739583100578771929958857870676221887184908758524929912813802176218313795794344248402012419267685488288487849472860419467893125971359506644643169343372972272360726189373713050168675499190592638492038482973120789629652969307903266316925401564906498028460273736052885817184223505329956939533579468888898966098813840399371086429641844155330439024565457545857325141387501122092787756374249743938075137666105919572978579609607254941255885894704818904046559211722941978779960729924553474264651543621858655116731825032383241476301356491559496119205314367546194162237994316234564112765441207757056452549327509142271339674937298713664877348019066884975342397051180341815259697165421345541099555103962512466764061659816884304935677685542440637258307211191713661055952560295011456647242403380607852523630123350993310368644621688075962413270905067694732551506660138860871952125172117423315457397516404722076446220170402599650501627641469922417752475773193137192003809683250496297550172955413070533084886765048727905018453484864258743652686788666367394466596259139685210815615851226861875820845733224725463942086954311444426897270737911167959989022965820179792190426850476784432404884232774754318892689919862336996470480967086058680936898476623775173616133715333411144661727806707352380030060564767954644227970461081852162714281998008768614667805126650366777538739082165999598423227305534776355309978356149630409331672047807006804615172540187264692607276540953662917915068610800675347121784149713067707303456515353854863027593450200540085736508850292340670374813903997974582278331242721063001301402408785269289301542594487695354251933921803326593086889903181082531402433954678307160401162017761325525329571511642525346437525198178579062936475436615977960003364924341881706788465087188892931937155479663263813005817654087503389640662847699212154536469820743360595179959994796097091668955699568139229074605807989518779955533214560766911987502528669973832034250463074859148544702903786647405079856387554622322395657519352510621206365249363655484473113631061525650977946862246950770940431141889465282940327842732628594418592469810615258468180790914806252906186739954792301689353623352216807495297692235897834016762344600466975366484184807623289634556520263516230931350863621088257117938665543829602112857471327595553876110107763375627577443407216975917600012319706042839731988011462660193409074791457129705610262323309019919197421079732708906581732024008048053472367089181646859710307011499419475109483747936792932328202172575800986559176094554369327561464402330188703682971412501366024864036270601086142385712671374115577164983960189232898693191674705139401947450476506530686952831735531082294117759596259058566995158485657204586014903720356573119643506957845986964150358762509927260515511297248339115146826349748148017622437093000532284204346371677724403704310507372850223899195786775512441127498217194649835169363426941387062607285097322331682711992547835334928656859588014947803838789409984414261469989289312502280244396388277574746450012810066978796928270467435823369537869344462916420618505307470423951504250782462358307779529933241438749612442230285265406808337995769441678566280060888127576164579379270683056298941311660254175040180021490806146551487582528531982923168638697258761556186107326432070620518188421922606558035253262242089724623523992303046222086288840006454886884838642764649071712667925913502179976110480068749893629291952699470176204395649439451746632679003558789589122732293502492812661840146473839653498631516140878437057719090550338266415665647721517639556309690116947326293986155475564288279974891550251223956363026006863545367973364418398182687075227292331454524809456606703614212579736483976838525458131570281672551899908942624466536088586083066866102184960711737484220510448827685248167664404960089748368107069033929381243995519648238678422320476483831141121776656613835505538794968485357081835148024815606008303698104667086186720343186228326240307226189163594417685369078978056270507522587054035193233015938822979573883337073274929715758748087642236046415783977374356730230515640894396891925095371226076381037324364689167443573242760262617085032955174272195606019854196701455211104365268605404095372898244621182405684469758061764996635609928590537715545907775458344592184258317552945542192976504266227047701566773117571577580044633932450684586475222794064250392342339068750293310428024544942567381392654095474351257194672694505413745202394522176879285156501590047682197575460371254088017502822834476841568524958654708796825791610950261599593341130011198121345032571974650694993913360065647875760450110324631692511787857228764777243155235335454875587268857933387264575307963900199739661843664581890011097039262612330153439404626724856262764528533179793383440756066784089644750794106919348721006377095780003299364534771848598031372548580289790474065336317394628495799035533771697304354078583348826632435899389920148084981938040833590665597551867812099495056487068114294304085706946068346966195504883396380776832843709250108023986276103828703095284044590649117158995880343200085613590401900434475633367057727157264578736363048160776388603188261488658179456356705505397438843727768805815524577923574711605851219997705808086668914935531680548571658017434290838723986092128678741647879212894293281485478514902281110679950991984577433675741052826785267403281256313984633289859799175297483271863247203620440083482410653069030021902431334661729021908480216736511492737704220660964568564221983942777648344427572200432385213704738545894081954505146669753096853831348723451227274563289280282918336208300959079845085902869592231311734740572619861586113200871622715141226513305654763411011689794452022276236394425201963372077213926259667068759182313902840372003546959670069674185611746565224952022709822692332459483776378392926824540273533443660333313538150620583734541940660077854956150948630389978002700372613962555546279190172119739626664071225400907488033300063687913073988148365631415148073565323407387679619000257849615744955019029319648084222698710410308993609943038284195193111110550720674194097297222691370614371679442097706922830910875570578231129338882122406927248591078137764538070303338179631194345692244563074074042733705470381148029704935111568462820598354913668790349447793859415272017245285394875606327469878688286611590926905236524328322277842088031598056120725110488255803047110897157887300675696767767555975532949125638384043363936347634628056350792341030046127352725498550975938958302512779689517893246171163528705342392662336811065053182570482832504138261262223051158999891352755643048451484726999706796208972145099279852821042613610938039670914104739597523502296009355153574743830880648135594931089249273674886160649548630559484678046750242489892490666715781116775521532107462110616316105448647089307654354386453914643602726277974099110412607097532653477079573452848507502824359694391640362396333911401252971133074861156263248174653091912254048405421736591925853368160085177869478272388188158041544572105574668467504285897574333797266512643276033563816513972190889893458497783348921330565165436286971694236002165909912617489143176041466177499527896208452816731600852499034257830719197657818419863295814834466121279702646486744007843404818797715041158184180831771484467873720941198456109164779996526401116212986911398026165146980178451425903449338539306605046236269432911680926615597156353447487518248254846588000695074416400865473118853839590566008282628801481586100393941387471092698837235641882964270425936570214150474776014490669533277828457107440955747088058036021692707794797408578271513885930152794141921975349262776056925616698877151987321017802923974142066181088433202767094165029438732517336105203892015579784470252344415953752619006266005217966907100600597813203886878483057826780572437206225089277375921313097330326437980835931126375028973505780574807220225973805282303881655716241670012259698556011120609766934677200263253353396886630536658583012451289395495221637791348879060693843447479252444273715452932666762159494271108827908662579650598293989652511155122003323161881283956560290772254911355497160040841057807615259960812875631058405315184307631200113350741025734163113619584993928755082311137364524852973339302116002701684557882245794671464741463305673235192367864551532554112910158808563865865592681503316928736203475166577581412719505554710963826812805386877009558970236535130960962583832097129044315955939663524181126921286147223537405186343322690767277973572098501386219520282633956786058476279765481089232131094386570434708416770549566771123168650643236138562632134789848278362927778706615594565596297868823761496352214081077643829637190240007066780406522555718753497554393309862204724148020622014649509677963872006972934414970080528110672670379863967037180553262988659979471707981611284233947532380651287461892468685878228998589494819330221366450236544470512755020324759205629794909288150040778650180877455604619321930157187648344749736785269831734684740999787580098167129448624377162380552386990460972190015417868459498715105024325242933137242311660322811620938897582784294269551590585319365955316300446867591182984333053037026352217442147260768349107076515773692875215736994333797770869734686085839893886057476815471071031623405505461817878087157375804270203928532944119414330359225939019203754851221402188833458624887845636015878490158224797082768427232463865473348259720308731208854562461452025902314636843807641845279350711786788091725917661774686232703787777509380406496314718933498470626036893820979432397730391216733124068291892593123483377473612768021331977223595355194980433528127414974250130277820332281513380944277527829319543363546086646771414077332168422720949358262676482895012945120115952117259976194975748381589745255528992673843679998744986539906466533535520429281637020847390920218370117922129847009742764133031630752721044497949570518857667042786728718166984662220591781358278189527813560350608488594501562840186084904813444262430429343717329989404652075655599185903523034693606707581457331372300344062306719422267048852174207624598738111040206842867270872781667910004654606872028680359250725687374757889006615998552863883829645844846069422107257780006498063845824480108954735661674615600405606302052099836220304494708469133786021143925474303353064080344825056951793269969551247399957256957870046914101683063740701291772079038378807024321173082015519745363710898655923707663256602085914071511727197933013713459807132362879610067398051111607269514988832853665607143365046273229732340871365581329146914295677462647739806217986571130133778016481768527284086974038717677875106661731663567968827758574901102706566237842481310518433798874167022068689680765990673902668721782987880108597711554696429235245232606935393324266106067879819594880481491867149137140962679462768551051685464042478856097479652477416385939789472751348565815856428113035688102240416650909916107743973258457111564339933424925274445746355610689229576519839871215987489630410043091056007795212447643165205152946794613559832059852053365377986060683209403776905335586810398789391550395023184408802527975951965099893568648126361307049537566194527860098851424045415974062576210288831466449218735017071381119063658754247340322778367179834086001491758150199746688306193455908209354423576068178453821987514054931111990384300953255817810997099705929333602936857900864690419485298477525238389270077573846789248077179367890604902299372954036876407893638918180921401613417946065723547579929793301669615080427856104441474733748964349676809864292226039279560964451419380592081356639822256922595206981599541509480526629488068238638578014130810205069279167854840397383157830148600664649909765239890844142902930587582419540201402914688440993205397398702136118356115605362141818350545027978926235900151493255558498926810586432592970619681277299922524179128460654369531312941498463146544506567315201797333155405516414489116097806260848480403416603686796316105168530133922756737158383756274894381241196437398631629404983524103949641762849430016960453871372299341911362191337935877973456120440480587578435879956308245346965116076550914717058676404418939941979175295666797530449950678354031069863819114077469861580482292931689162334089527206588324713876628842131370927247658796956261841899002117856967256254152124627628624745721876151654281514114829432976146069745635479837002625190977151140815915671637655210261619746654356851540691912058557478852462484722846559513934087415471028640549695509523088967027701672126728630767168661139371914268262235648631968960019738088782373832657247779398890932929691661997130943432175634941952674271730831243152169980331745512707897670537380702906987493004509399962735804003013695915492911067445461272427988726508785743744886593510911535126522704912797582047298320244719849184220656501051521835473295528737346345816845239648961529658258757941315130931969626941182929432842872126539275670873986745876903380916387076526533220185830139470019396018085769426324944114446979378272315070537340613833606759770308558193305638315377530127423610242049751367385467204055389700019954852806351113603041030667859444907741943108894761521863257136230609405833339767998917465148634275397421358756562909087889004419990567734897552679720488634855920888942911381835861971677899419490179124215593886372249743690947744191039331387397723047882257981379127695955593067030216262156051669907334788854876939160577367128320007919806824284178591809417558986234466300313276253940103710245201066759683179660885947696354914964779688413475622631849927677673198491946712545219743816053016161099404106527302229388461172675845722697275972936190164913083940640097055532594954661941200195724542348935795038613283773228428851316545400960733698035023019676669485897559287122553647810417507266833914496403801589076242231038626289529477438134090298833323984693567476297247712366939465189908037170816010776628689292637900709174920505492628030249947408894928437259807131468180942146911154351504487852133012179134326456461199396904884107310244944372502293797540140865571086369301901493274027274798899719931778365809243376499300684854341323441403266782642773763657360832298671685339500388213895509467309678933768138894122305722841735126598642520101734688458520755862667071779353170312706429103868483323876976162255488458534346078149484406987366568261752040207783659976587088089116866793096035759406435080964202565387721517663867750547845474251079939460045296427054346093835192175339312003257439930624850141974866923701965071342014346830023134690446149931225525247086777842331126674360698300210002506451051135209751421036524991428168374657361545175319629148207176127525245359686784277893198830135534396544662190956144819237034658172723613043242422467853701947196936673108214252050104248069113327087738306009308166636130835483984847395714945049356028331969276801791027568445431718969568872169653006256513163366881890712910096875804755228928866766667886911745861633907919365048840086950423585955922932814440393723683005396656770541113770580416112018034608791337470644527300412421146167247648241906412085071402838453211711522559329186336068194627518225056391188145252943752873905000842129391273289807283080609272603533701642979888744461340446373388403993334029412043409623277469588581334421243205818472909731067828565702270928139202862034460836852431663763087752229712743355059081536081921660171369270404155775039361683867794667009066052614489466152824560158848970015097365326338168971485685494441422412568245371452183456327527280635766591477279704982713952700348616370679478101938065739295540773346199520972529291495805402048147423125480867363105743165760222715629788420945132281498184585910551153805734057265798552637941780917974551449855367111165850146944027756654782853378175434675974651194964992945648691595283323346283200472576281581396519362253138152911143903602184405894727468151417238208698576387393186851242202396167923772303010067994644915076237644030797798029384275847999370083659455450954630616454381833846053321001760114253723533512630956838927994777731550161581280379202921337209452256527801380548184641029719744123458633419734886590550178906450439552223600050146107511359825712504603331175402436079645995427893580742026509562450510728376272468819913528772305975362327441934402561267102590569903978762655390137992627410530661535409849216416981351900530415358352600068177152716329218616631615018492098179319194618605790305574023717293420593133842353856217805581497264886257884035437370977482436445286092322653973167677987770811145518665046429337323621051138969349565511462561834306395886264965100041675096967620259172657172950428485434988654164761499457647448880197525639415239737369450686920262244382568175476228898397428426221705645963015749523764338574696860782433210284442429518434321761164556751847663018858126746022958019826192570538753261586352301094198610438235752534208849774649657713844043126243317488907977312394390113742517709689598056181936436336815378772587977433983141798715260326144031821545261410108946747506901483828529818881898598417570066745993565053544458366226721516909187006302557321340854484417331213445997306477293340086476942649027487096377832285438731923458265909382796852614156905434205675601448310714225043496439548547414335359432653541143585308446778101991747027465730105361245634105474647995886912066978869387921548796216425254732407816689294908750163411612492357332214456496037238493520987711997899784043912691972697372685756431495680293332241886855811474774218586972583648813353150716727961096022760684741604793480253520629750100877089645666334698061249640087316835406009980338185981204348695430067982925225931756339980911991107601687561244711670408819718739801385864852011351844344860002941483156033447604846617404795585356905199852884923248313508614295768227472188923037153568728411063350166801266929931421152802529692795624724663919214410457452588284391462867164825515168059168022485370368238086049910451103635100973645294928648417179115992123510008082512917254723042242247480986483265084645276528582885659507686195504425806490575859688976324979325460231862701660585423579048082464647301667881427407181994278549635059007391246575865256372394678031832792856175104420954704798220373587967729423653959217217099436778756220243416875271818732171391009123743711891502377862131065720867855940114661444636103606522924965019927503568029520279770050398567663250108734575580837782652597369396593019794768848950669873974043964842771888426706630590047695165492418439471323632605060168620015324322170890439860247752063113675484024011263577943620026189770119247952216531393848053444562825290956304012904798586529742141587969349262575709005021474894156708320678419136798600884531369119627420037240999073361974487213816766500380411527073663565216225053129247798137874233964867332679464827345096777779257213999932009212638594636373093507798685736108167398971496531596657193719945154342451870404371372605765458198821472329182498622697174482659049910815094180746172112055773345064607710772539956312425395783013726336489155207186853360700830250648355267553446961324180646365204210220871479374724833822156335866490529782834232227645254864677281576842246968554578228963954825806349553449790609358974924483992899579689666472001995183399082091438568272837810890544768222364096247640806039481796908810533405221614521696420131801559044215689947627958256093605294503729426324192072152104080959430765639433544238060904003734006993358680147990503734754052389108307884501410550411001463962915856720338713285692436394222075450800207529166523246168310040526305039269994355432261300779671881279655861380119068110695782371186296461982560163143139350019910190971212251802580626658479289586294340326427926616803002013404160436705621633469525542201366374436152515685476319809735531621659233662990534395220183208625132489472450771576572324508718143944325153608969704934883426093565709028202499836077716372024054084039355038387269762080084125838838589626087889208623123014945305817751709551055848097129667567427829908568356497690292552541892693737124689446742443124149461982953832898300494314932810250582882129715445102440029873624776615531740646753337799606464398291392352409329145409793387440650045703115759925887131627607453834563034856717960068304041750833123424903139769020099614318681771279418094807721543653790966889925167033168933593442566608790574894593834280664421394616606332002631941393791341294602709470259356941910920517696065647324964663843345331032700807612813218791766633391456710155638605228860657183598830193941687002505547440492594717843361307755708055886214991772036469877610449701371163188398391420511362556741135836806956210632736172817055159967829326971849790642574694822017322351143879798691520381844947119920722022421430226555190159067724858794333942335458351647831209249634235978398827561536048492849208587006617345248117744082158118091999262133059349798321865271439690478344356781890980508360956493939949801348725048169664054524771746911228033092494348498176960670525887339707701917395466781456559717401277954158853560060323399172605462679848244172596433717003659858761676283433512269420834993889578030043793502049805599706331768866483535646654450940687622433607570120823296120451359475462507379439667603305309771139644816932345081132635528625930047542087999385211337486888605301423924654509995121106664195237286724551665922577157320715155099634002533654364929488420413039618931434151523876685138368382477389075795688141879016113335041915174830518078456508288149718613442241876807608369661959712680013148883905253764495408259441810202309853116601943756783364169490268387419931644447390528370983211294355112768707210539719905224947511488687516645608292387123141023067946037822224479421698024936356370246244141117913052437725826827649670023119226227740255131287553500718412690852127439534933812316713730917771255001087004809965841999159903370781744554330416199849221484462101767848675089136795506236597761074153717789004993933709375811160711662311753598586042749558469553975135602872456225253414885312373251217674988779277390844232968515921124388209194667924502215481398329686365452947266218698663174168052249026569755891857820318683492084747581867206412513212643065016717758526363205897840452122081967697391249274161726084294287408068746473745598972205267530557281144736632452111075943458805127412247748960687675704811852606012998005017647544847795165074536009704734822137235975422958801292675506413984849958022011686124886484724520467834175583283434376522057031468775480536404939420378306529590278968235092332331241232513344013467893398996824369747694448054096721561036538424249598820547961684068838099094816337054843757041655291526609118932699348033456327726167349396865625645693296596650943434584227454487606855600763383322184953279464198559939507044561868210636627108001093379222348564087055327887305061264713303016110879724098705700481318038349074357081560673402220844141583872212574946414189764303157315617350841237772491057665823643236983879182866290611447747046047116258797297486208512831411831639123779253681430338135369430721002624660053968265337429930626930934478811989251400651078927197862881618560486688667038137667970177569946108446197099883052229268259641003412205242378234743133337137744713585536619813768149343960659471772885951685204544167546780288718696436825105977327248082216333833563496528356543898871143298736479004830488852660246021397519120679910334493539307463113059144983579967901666995005128344208936955043164526261487773958760359588860109787093815302325104259926685939163421320047313844954754660128258300305161133261686579561438267680322345227618194499889291981730223896751499120923206397304258909875575274952827361385584146066713461214984044129292907478735522959341022406801565232129929076527577454386351509523434682769720973566452937546778276076415613665873034144107885593930635814890788794265250602812492859782353672836466797259987485801107573344849169819192940471069640184247147455304785860481768618186667293819929117621702760513187551833761085269844066425296516371142400763309392766306935262071961188738786852304578774961323265222525401736258967438431260147163100308415444179532793745301857703533281486944703337937228839662940251441410365093043309865437744468045523024528744126203289893322465682913003891695483846988426245255539628012906487941459974689677156113324803617064864211763031648692447352799877393441500550439516926659715352141110120716794430609065062988714111790694467599329157203871354954333494155307072706765248567655702726721842282592504894804917698563456742970734813526876464685881942316880921200617662210145893337461758500217640794700123154148816531176360827230786995334179227833126398167414821624217449813368780215942976047738780970197749772006519735946004159086967594234835557859770136420137178881931036525675916219657250616586492025773963369734698312798595115591219927881340714404078552749517627830246377119855327132083610594825106249779142976706345533187319181298966447110475492141652528287093138807014911619986082326123238140001212713137477830749852562922840727635764552484979332342100791164606566011140206116847479179649103477029001681171839869721521984963075987133340512659237980732270556291862134667037519836130824616145746402532737724506135421978182575634901360556341976280445169016904495822087072729861516942372393523347183851276241218609503193895309444653147099044304215605083388027703059168428449891243113815063208700263821677007975419177461461614230980495954916082083927995116431094096896572036537825054355533187725241697382586544663649194258116598416192822159697744997117448189270857924690573300369165587293199127884651389968127518889253475439896982810943398677418417887337585515671448798839274837545891013267693340826751853886498781013155642628616905648115544185397653592538607212078367683759418610297525205771467636911622283067137997460631224863495866600866695202094155231117482763840438029912494980693677313253678957446748103241539244100375467055273240263850046033029608499391040220758628555634761251818796791259259817947089745266592259658533646532326220353782993916105173949056118027520377833803180288248646820605380289526157837800569416715590532819001784558710140241056084471697401379752159290480856270936858563566286504520270311108216349996721103082056700737510908570509300632038478467007937576996082719420070394098744686994998981931736990606693027236138189884036089061654762047264032096417320171675050244580229690290329182521940635404346897631208880744359700716647157713778377484070708751115318021033542182437036760123929556210700695559863572816872801851253379376588760521967112794202680485551367014895747561297536950278116759067361849318340605129147569759727797226611433960836419729012283832413774526623825532188675460963065083801902078330708042195101607928245767612761175323235155499378621816486482104731428784556887324863689763731105048133827091766689222181262885991018836001846889969228660839823041268940194575997542090143865167404270614116574093539264554801867021464641866993200818141457848444336365145796422534968156859164280579344921366114034217392904430071844947645611057080306706886812958889496620527296109983955366847415287505375782063996897049245811966105765747499815060126577212519676676510614546531540938365294513670285750495878932841385139563399204418092446164801980303724231361775094267408946491247129112542033860112025659367101226678950960933635623352638064921186276388489459101794832361218226724887672340169794089567198974671316079980459689834115881011699849232919280099301524893839717339324119376845670566599667875977599292871729690478081579680406900631901628630104669500918366433918057782939897527351127720098107691861564237489873648755218137893655803086928135179555859841058767486723734150376083301502275171820133562590127756154091150871678635780909973572042930427648635410630802464461402437649378977878680924203370230698096605700191917312752007384950051277395980288302953656293165038619669029205278694120902945342773133332423612980967547407104905947928767696756168371306918205789252912500811832740709046979409820388100532205166727555200732626062677949614768789848395457903297597758858119269913099593057919487931795184321513442102621380878861513755077776143031635192454019981497810645961070360695610534775635829626355825871883784305140104478865492195623898819331309880429476921160586719917546003337285371800370354587428445673383811339283011468775620006202528702213375532612183229247464337432162307309318569167820597993754957643327153356133399323421834312864403185851491955750726010269756560917105102596724768472097119826194871599505941347554428688319602244413023426967218678701792165650816801627762277478684822839820087196736355137623411576456514032313009735622067859837007190440046036283778304165877764807732517845212683412791211442409721489924461317789209527941673171026829892589684614032678863290558201005084623947146500469728330766243514610368635643241204683143254606435618844489047960312013553749520772028147260166829695857417280177437906019261416399900512184103426215388327314868444989386432037531039284068008011402332706334287409889654581350096757471395171317375101201055739985063719987794578951830902242299746518345069049783128260885046009520922187686647711549191950412614636318660059646912471592551045667717421042094662902427641890828158539930294503166012442798628119177515416182120603636112507543437570236103111127132410055643524570312288745723656683922084891668230007183724586900627920011995963303887341048649506895003363161971887551074696415008713121636660736653205615389384463588495705318319776885260852929939220089553878059297188243170110936089687516145618560644972464315015335766113544688608544635394670469020332937123690676245893775534135793303689270816047850069237617955703113773484419818613320223444018642714060710760437344338163805264639022510888652130430457579009709016360959070719756420758744798879225822954357836453376012402969362949432956821444578503690177506997560499212927947420536286368377200470280279970898644403655631525434159486865065888486486309362373101269469812103450779728828108235524924098759915428051006342985213457949619219747164445124945069916553776595880798982143748626970643422477148392995020600330591468507823734940766466179761392927720680711794926039369376272158816332931923049220451288207740330402657328230580771024779964088100631014201429956799201827082893164961940274581269851611775526642272789416882888670868715655482593785325486903886962362966352989567538311107038283272306484205927085028129072364505445830922838077847770854516284426768455844294776698818155861701055628320756821492945884503430686699778523011916798928541026555500799158754119701311581287762698470365408225655310359250403582460651879272580920667578564161804579898796890187120682373237236118807611455706201140273828917269407307691007760953717386092419867332493818967111698428090863273757064593935752696909181378598741022469485623314141383194884335251284215494982910822935855998591416491940648440887436544018905686193457870095853100688530156834091137863913197925471039085928075711177843473441940584042003760749377434666079413196634376013057996711937280159387022149753294495002031532268392332639478719350606311639724170135598831353478481427877410586251998663656208479295387331222239550798721755403917188016155604192350340889275332886354127206913307543230529659998499049699322729093380760594221495137326392995252188580099878511886661326883368545783627074484680289139800885036978719701901882974520913293356061546859801754950821858925641737543236667877613299051792842699579231509885037272353290529570421556863524238203169670624834265181484733452925917830441524932723336955372731184274484924379490968210655214618402888003461806550524036551554110877624591581771414710623844822026625239614384854015176779992185805508081421328062242336450195066005993242363210596704692915151799205303396983470567689584135576244294512587565208727586414662996607792000206297581854893206035574792107052560933731684913416315069623646046735064040628075134334181740923712255037567326297354672608073681024352907957015576196705150227281267185819344520549013185703977805718595790336319350269799431868543943519469059748918326975769951874839713463301560803309817501901587517644233422868072189021492506372716470344123452761330062431567435472373238221543582065850877744558818434932751673319244390134086891108301146518535326586555852121236192497591895498074874753266415073445669907586650097883866673361005768855763642806397578447934462910201833917285248840920125530495254438898385338165052248990430511163322916329690429429053278340512544453211530428035315950166612139718857672843372163368898076479549142899323518940204828973141136531030096682581359237359165025427715342623737355989645468116556954419693539496428977373505198583857406446409785684852647120175088002363287205016512230995530717860697244095361516279326373142744676807512626064363037744086268304903262255695183430016161708922105629214304385064602119943992955560709335065407988461684827002320047181395710742580536546046964079596350169663738739873009881926032896029345834639293141624662552006413152843473302261499030006490911752556448801961341144265978269690145611632211484033298954078715041854303224159257129628668654399106741532084645305823558294005371714284670181705485275506036216833216382747746530646557659216490429694277488683581176771365877928267350568913679069654456116015103223894242017231068945935338842580023699063844758494480084352458133584046561253958997973068591445123012598766857861801614080348692609740580582955351811202228211907098221228577204813443915524710777978970666652775914896721832461063810525137794294289709547105030118561972332300085131733318943770621550204115391002761423698952442182977556049819982839870082840398342468720425277803111161697921832741598244467096866863455288178220914712581817618736974630404071013058381665732288320546939559977858040509518327955814559467364313795807685519932391694151623106948357614575020308676736203128599041711855315454976190250069488626033168967860518612735213157072715399327760403555148000197989649235678216756440530904173480077569478496423717907415446904986072387156322192731564837493499484676276791115071552026571705375719053530100149748632139403558599621641916135835913493302222496924142279062260434684478993660508090548481054952546147711865687460445095842331168599810379517431204769384889970797605932916453777374722138998243665250754040136810255463594477882891298691495772888693437898227930100960971163137456144584023531248928620071056153205545035445245069603150709526869886700109172738298581200047038531402180568548369650447313168561022060903399351596874452091022745673277621413515880018228038631417733289032221866817000061802884934173607067592410143838011325692846046534519506539596333405277625784598274020717307082100835182354002887165616527131266378429013383060829773341377849479811129584506342016758732538256600405757823896154659386605897264798674357057748587310778754452124748417815254150963054945963477774008865099915582317476206488379340592796560072720527677200893048041613078709374328911838834650895780270368948207554921344489152605540394072297867138191224022526946324225967907949241229363635671200009830212852566566345200581886011388392884201625210155791508126977028562833641267501735498698279193888793062046341466770751751929268454554233650063564602894712483068768192930475485288487971626065953799456964378756738355005504759693948197145414208971336485681662150953844095607273125859469737955907193574431791942063015850622720481560059653176541725398413193929295038903545148151189075482189458633263867209233020746079501460793152917754635733669115108403726650196098578052771873080804853425855994739890357882869520585057600978493653456263448378360489642525617113490451030103755567407239967337157160381385499060724750409262202392996850453566158255032491313529902001877363230637365929928903553004283984881428207163447660344003792133944116426814357984059888001726583900194058650404102030383150505164896234953807217735833011997334611143570628146422662245790822686413328526559615933609899245099212613992744866414788159956049744398732517897261314979433587006110364756384359481887271591240311170345647738772149259539783647067892838356832839865154629813627612939996179662332287039784519562589960679608669992493652943550435943951214304579490986334192529239477477045027734226028073459915741679537761782141869788201762397723919813051239372380177720101557218690756788357510374156478709680200707846297641521801511335681831509625816060399002829282493864275312705050470550828839139251305926203015876824837974493367383723574242060963804461717892627040121918244918042060467168903623060089390966159691026711950758937323782131725341982294661127282866584978099770643128168998972317256049906681209975864777461736347736088517500674962534240211651502385670216530828770626745714267611824038962909120933802387885886140333352677803324742042294733573641667399562314288020076607664721278463773194684597250368315750987175757276546438843850012285063739129715881904825915019272201979828565788581342669726925086852151022475066954850970902195122401775369841874250850899600850241388618640512239203279869777941011279901239890461388663126656850701144850801348618843285471114115221978505067004805319013973889899126081445892593001294241341959288325394459987837691408450622050538828835519888969210552490968263033591956217185054195573828830065371076590609301542034175145173895202622211205814775059578845067474189476031658293227265352813441472493350841028170829001871437242320915945533757233908282181966965002898587407890033672614679708284091929182121435363061228890100549660164142985732621591933633991308756948233240572344572834471155783933124774785205321048672075659860658710526604960163994973996165263929525806712079969677575642074560135615636745988746730586141378000913805766431088473621383180153114354047426752748029529891069628727113085498995024655884409321345480243659404871206569400310120474832594688760903237672223605076018607363114046408505378401189044273990882642232104558470782935015917159761233585605307002052184262147292178579302297683123135549570212718928969150430236889127228207141663442924415817501481902650438281130590426651276716782760288556165044121922101477967888192988007772785616019737879915341409523578843753815589884547934150439522697961756458814200764173854351355281064128688788086061035332625009747300056009865384645182551616137326434918003417521488028960986175532921218400005625561757379306439886416493570597263579548292924038691578609540641141231991701270534890014258328283485614869418108737800329382352926357256786937209364555596720917301448544894256902588166349713130615850647240787765131988338341246374802406199324557947004286710688574250051211209948582642204700920307696318324084499030042172190090155178493115692534979415173741665855933789293899006531196869399983199497124081698382929656609267426628264236874330750997705220786820619076951672778337819484003695228518906065610563888013450749310263790421352209650531733258899273692739683445426400807801144867315849217227383387043615198625069515457864312475487704400522521150917431882073149613020691292546206711135092962727181951456824025983126799010662369832486354169994478734753597390318316493143476074537299513697330601463455994862029879834252055755147990607655205826169956572674437965310688007867076930714708162328243888073486356700214553100118130400460311843443086659580452036951389008133292550320692818163721868619974487389503122109262183669450073156837851775856792117458663016298911112816233845064199448212504763319027960123175076209785052791156513067852843688406478050195546021614550309533890243243779442530739334156776085809400836144814651541880904309064315154343651039131380119890189760044551653834936921580347095447003427680608180079800273954887076084576109229222448741394293665732499987029920378861452503955085854820958387327399891776751544818142049664777966290996261022324497832504277754570493261162486762855697392683641340820774718465931212127818114685455771389741860746683103655070604547638051933800470204807689388789289527134326015693986549235961883624285500324699226493783101220446010892605895699642888416285812728650934149766450169841447845717115817024453080736677591933871233638485738924257603761996695107076158197900974875314668692903515148680142009956541137680383790437633091343796573466360473481742722682014682900006744940223807725596337163585972504965714958983839630899587147061572139799336648974392502770981537251769378204699286763650454792410101745713137285339301490716064618146621399440334925904655797653082560255564073860914314710613298893834641014247519432704318043044253277177942557490516851136642921780991460708235682443263120296185764320570710860542056569341754083536494598385767712217139912576424025852311807820090308069107696903980444408026337956961680946898954554188789280532924274698914756380104941598168701434343979650547670036865389524760961899449556096933681834052279490530332259980543650501729563841202622872328991794783075039674475070092766392859090173420391751434810856742846994459026791815917183592858210474349452150586392156748172361870726418449690798636957258782499732076864515890413319150000809983637269037391083675448915558600714648848496772847965948885433827566914837045556605034953414058110918331739075338133793516811256440351171644244805192759369024430892006975763462569649838476521327756957961176128943022113422076380006150002291249747890299983678642471148411302834781848769293876626790159133330058433513451636171012832272020400230751398103169725251557006626437510599177009593587568407407453599128144178100981779592512091235562111100513466151720770895124308442251439000693958804005557317950392010507954314157819198568300681420276522690895668685632274158773355171591490093052199647039515330884271127570690266825518345175553211072694783067108041094621049450883172237475312380118926154570981265968218661748250752406784283501363504240453659804974448839891337372606286711089210884240329887002790000534851245125001828878947888473720730661590527369130078877972616626391686330287482128563205932249029757488486684033904705074161476492755651427575266551360853404767334663079817560205271151433589478777856852626411882698581598838975602562978908736697978714815879223806836879378683279750204940131095958784974036398457750855699428219952974397717472495773826009169029978202882947080205688447409534244624479493188425840022680196255584345153670405596331813662648743132987108466296652177012649785884960823817979620636167382653038430251564245921523489275856447478217638560083494745632308966199604491811084907690145231223512586864004535350820042825020493676789528684692135477173890044778734463864183095726930444779087251757631352094530267870669085262399171369982105056963213245872038985895226677034491124051370616838313657442400073926869843586159894421117664290195876559555162556588553678586070257158612055612689042964438434750427315700554028506137958193668716097298220304608124767547231893644308211826414217287804529390010025935380728241305833373068153187904297000239890238601687705851207456209146464007729804046708140763003089059379605543055855583830531891486171294864648655954394448228951195933386404768274990238315470461660159727301929295136098646821635288750605942161924306290228310695542708076670735741901428672754718781824652539539231597568887901171543366304261290797065446677210747688952043233044088176524507173558909685178014430316953030920755119289853909089364323600111542057682304580543794246297434067251542825612296307978981006591513778097726272014655730769890448752015109078571250046060354526736420257896631383211229841134979570703219861711877167586054670674528388113463473363391172413056925122585215639602138724571635098351237408010804393947122816859738750733204521388278535927381555503987209262419711310434140443667096602775077627108301155046849586616704935935492858548245032888489379083511453261091519327274249288550016092772674336772643857027982301554152318080361646737182819928301721034243734908252071906726191097080936791920872149278332040537629064488223775684642962021185338815578089892790333368071480154385933036263507389361455046452839047083769871144178238644985943616230173836273654061883052586715297328288353318696733246889186068603271994214658209454284762562354609676020803166990772128703460605359582228245063414441240401705277529870598696390491972094475464139105721613689945428026891813638743825199639122802157984567878719587512957635470618950017437136498092044085643081962027069134097019396596289995860244343223127112433187048375680435587129496425775991659405036129804288368288483728476298561895388922998237086307557313696521185870557644558297467179449622242524930204414738053662097764481189256648653790324606351919279354426161037074008233254618248539017642622719156390790133612278838175435170974461702035036369795073685074732386856058070354035199085413524262748975040941811283576896815613552122698877395957862767370689950862530952545661204042704561254999784548609931093041413068533002169034623604910035976160570593728296061785395630641134253151723730592496244571633792687384998138831383580822945099440916694304663108723331431448607341124574287119320854424244163788672759334716971943784047614627246073694554661719383413013794925417204640706629889375236522763971098780518789341747038465416376096396363821831849738656377876246974226016627111678138895442626390688330033263437084028598659877904217647599468061550448277753559618027131321833900649447096106768449251939033172430918739478335277983036085300228236618726289116578869730385321246771901048858647160564627440239860559738748779987218822643820707970852412776105842727067747097280951060080486751731127697904232750449039942290363618229112603936268566212326530316074044436433577396939221100206785019483388395763420500970202550763519597373402071855730984340747991748222020037898993994454738524643776423954832874870473691542316794540288851762379270908778622096013302357156263975225944756252370857210566822942967377128863050641829869706262941408033202813570125752292324124008329011311645990951872853867941416290079454461807942897593630464343094074947430670476900102535582462554353634930598111361940669788556267706938280062158866427920840103111809930769976547619414250476140454477382030541991615255413954091403159545219395509766082690078900067430508935914209852684949037195981106431124242413326467242577233310349678970468719826236887325976560430167657981554716308246651499125720730010845672487828935969175686342993726242873410336165552143147021570437339418881366092677366500120849060942947172364397106875608705533415267663827830128616673855455525758116577179531193994213486032699416402853301515745169817953218279424841046882388074363635690013904607998663591351403807091116196721813644821498536167121596706118376526630522212340511707127640970633985353691346705315683507752634106940493809246452987131865849747750756813102543329506969292071997502657889919834946251643014833673457059043341317787968569569522912559137964553307695208796385259118986950218783505411242049686677052673719362128042732995800442369990938387091316128732735150564152703569966100084797023747561144123708820027733646958177404020284015124237412937214838739586574801935588507419214069431380276260698645427234248952204231345518182142493185305512136136958360767972015865383910639027624535930763546526280964651613819761818861882589942370321408845445283146536498419769355415010314356292757107983510498573239637154937741572636411647754558871733339885577736545527026900452294573500025766501317174077134527006274949095068914955012899089462645424538805432005375334565357299862785890778940398487034515564056992891188150951404979185303080234495984407819147606580089056640896530359209986547629962033835207043860484070359169694505205254096799632451246762988459403705073254751186302925672036972646220904064251843040101919269994976079032078023890838259830624393438541297066503652850115024897953150913140284059730419048946071059906517448775442866073207390975398072066776008529568482211443909210129098383683489010060082748614358944423143073372690029284988662556023595060378595456195122146696360191753489142922798522947033337529496630056041502010337809086706303379167222029065191264838480154295693629933568041200460914436292942463038469135320304741800166790422788300503860442842449633826111383895894281458263615934103274063940921204828149605455468495312850590823131700909296550880616546356379972490048232462121436089432454493554051856911682823249612382538753475107142919192655727742930617313865945657255734445359061711955879844652123832873100866422759459735414339036035471317438029252355768342270225727578926615492912287884017191323031541669234378473497487729897047432081582525214758425477040447043018359239259677866817008471017425207403570054704978604797907632505824698575257815810669136025185158312508783306102115602805590832701355469076867976677010057842572364169143188636947059826371052542726050783241326153576073552119752000463102383044421176282832384322068700130022259942182691841742193992657446044743757359611528561992908957412314157824514395444635056340621298843829459004521703933539656129515545840414030700852629232725389926946390753723513112141602992344169519988421895531210130394839044800922314527191427771689441756907235116652649455494960840379864799372948622021168957210808559861116696428358691772840153315875393467471825355538449650989878679031333261247080869981516367889518779597803731980991169798319995284125391706291640693238136821544903185719407313567572651601920345884764512497502704447646094712524137939360155024433295845758247004501242166418549440936864743300834874341809918530919023290410494267764797809685114015905140019208393552591347334974317836684378483140937457204837816482094311153193444977248897796003990109911264610190777758102477628126759660092327781265745086519195763825801965844926619458320518746952674411378800091409555514412663404547186195713508592445359733996438743941443618163098304462377742934271534577364351124886494331685733361868970460377552317428612411837882843254504462349654870762374953479563114385481612948754725521536099439147154639382997435125251956613478961230423494151984521255528869532864697306033799331031041325972549835760623224385976753064005470034113013022385660178249544530356569306692241899605014876817767385193841980303885126507848294056906217491477369567436584625635461945306709877119986333905345815588943658030754830566102873702875068965123675187157839095334259912123574563539538549520714634295303394832243908403173293121343207718555297744722196636255655180645216590508461065073324449494598630443108495946358188188714781576382758331172040924009842508123049945843096823634948509321704834681388301733716166600689650523009509306510715981499439927252386798986867523855970405147721999451330081405726378390322614632938206910787253451151545244257406641488131068660161421320012242450404765226540466710748614942846205165059012820498846955431280010828037311434594490720153486294697552256347576596365463406446686239094679454911903165374720723821375436393790638405984069252237555614606742800779389149372172447992944240956535071009501316520722439926397414870600974643306168060449924382202729828969975847120092727179939812655225533830293314814706430726693677441947060559256126240935464141220711862365461867265734957936546409924783590627336143109301636859614740225407776307262714463501176655701000021960416280781614095248139915609242551435098990866581348231148335468997534424732064907727028911314176175463215317913370434424162111796403401828586995606501970578658698502769488042481021084963162798295562273859388207492936717740107788531667573057379421105182017594932327123929471518859160870973528045142621568645580481126519596326650647798018920030396572121126311531553085439431267738901766210509155135876925728339943302067943550296323249021076615748179847518446997420709172521946368859452436642150385910900132098468437093966854211468415371210418528184664812744187505077657846284773427353518833834557346683462307114797532335189684469149157498675204703660751116451638546071656892076135498885742327608138086255540890649738966006393495973527199076152022468360742298122667307923276605681907460691560676561176136700397723918452476042488335347161350291299638001728239340038476970693149074864402507286484415317735407600452429790432610682821588052580421897673825122789419335227198921917365758838522179063641218900121604161047411169297451287956187740211477121160644637488374716715369392728703127187024844696993890201865653264083439681874624327178843089907508838087945041150087269343884300137503417914883223045528471705211926507397242803758225743069561492796272127222740305984129411494772102632409041844016336330802991521264912050253385849001352489222906654686550240359375170413862467367088146432511783899224108763168508065098108392206714159606397721141841903556045394402355618573650266607462073918109298503660313173092127039830733130724127282909942493116846714089823607995287340707033218448454454201659983150845698166976742603927575591819741065666928799534064280924277350373103828431207945384543562052268098780581150023579225903706506761601102222109171085909534938420323479300199785353038686364664551811846725629053744598221510061590634772311496349759301584189243936416623615471069382031570876915685901737662624079889753799021415738507324556127638329746579759647418400066695137999878084833466585432210480390496626959000529966422955107847920634547675837563465138348743815627691803593086014382053859586964868973095345156961825772075078115835015481323795546134978974725680220072415655058246187318613284789544342238213734632047869939349761263047146494738675268341205485072333447081242212100118648492173739202945324064705057747873938353256166962410759530059878540161244106585062124168482401303987655149031988440318727519846722851719914793311519979703276172082781497471866271992708673585452686908446576556469058855494329652010964883532249006735980358134966819774078667494567261522675133963222885552690068995145173471734086710443716141666733294585955157766151623287005274729361115327526554866476479319691373283443455985323968662294244080340291389182375798760368549429584105756652941139601051004873706726088986432334326081879820401675971426608499047817782084793562205832332753494292822728071515028076974846047535680732813251804181514592825677498243334791955344689415922049752157598001989566130572283307768183271532425901391088839862516495644809910099640814509580908981024923588839922884597400928939787323286799293176190972777537699710007083976114808804520673857604266145254334835314254649884799017890701335587576329167124578869845914783283568920050204956457685981597395798559644637497410736198247334856235811667780990182407807523677239378631387994786434508559733512282853219656336884593980403113584164509282039901508320867893490632761377233918912240656317721462774385210292247459289891120269935396190578094542120227108889827757937226343465255892715181511704096701540569054062736982139634146970512752148627056349771912879285443312272585658666943353638312079399488830809601143125406586414886817199658592884882628399453118724206648067560108963271461345166444383442191181406226262800283642318957997445685148592060567143856273580293337573701942048201003284402972834518584023035439829013285658736996041682917670192606981028310441783868010444579361341457019320082446759645275047616630051735091481686767585840466514621798722734234357631595006721253704086865861348993221601134119537314551471077067319677630042178567452867489482642121939544502088702827238416767011139180254004729683777391156905749415059415139937078398226578433378773316142856765351078737630538548771714462025476408212863524704442512839955881514903653938091917909830313844100994963179060709222743134028635423613607316334061934173036193876235172418674138073631716693435830424137975258472336961646448603708961161560412692342029017780453173159361281461899468372574077469196912510032963523363794162997376356565396539893813811594706461237726740965677906143016252332673290023561083391106203965028656512435399715414797360568806002676236996311801250050235429586696082792662014920144828528384215534269314998660874945015975790786646720812973583090322117787733950947992205914773713824234164819669662776023279279833112158825289064726409058401142211885465761914630727798165717544466214951868053566626496877693243039188899066750634376360229228072024380095743390414825383699877654684080830987192668577074303462851485454609859192063773911138042126379276707596478668721855522663057829509504746392167807899676130655173649421738024963586750099721204736902789717586823775956226792160865679558192885183903060291091292059782250333619645557599384959305442157053626923492684077227026511641940067011639640496604851522439111048549256760490002217255816058151715293154480596270156635018552416438958065678754054730140678792580061688419116918335792649394658770873190880095840066207285391584321211458960809904074913341459606774310630784173747222435571175683042170033700907240185978350053874147018910986306929857493549332281371332289977617313487928758273593612139289271546831548477941352988802351319462431625224204720298468475208252791309625711153246041659414428964292272540325480648492655514667901931417863722131535583461459543946605632159598394011682057363859151810143104169053815642730115263096596606734515907104628170376879292060336625986599857223724227172620969360193496426618860003622429507163002637684140518225565623510312160547576165134173951221639148492600936027766513296740066098021604756103919056539790730561134505831277150548019799521975336340430292247962756633266209708531240608285776016727435992623447411595944471698747110285893864945496136881765479358229096168623210836864305762145463221446382392392445193991345578080519170714052742783310876374149434735873338167129023031257113466671449435018550730804026731897018378634405157040834385758511218731525094678249742267180877929170685093568164122259728607433327979871084444325468850716110110473432429808399769798082129336964190227017949337867424819436267074677887748147393008421005292900365161963527204193334829070100786512351956999843299753377970864606429643675398171230055774302076327924837403980303063790956662293278053783927760739947414758675434328053437749896839024371587966378294679422822689735902602803744390247166928673384858984420971910675546257947640516878615995819273227050219400728075231656620792926096915864724260161877571846665585522692566018643786080203067797035644258918142381854047150053294705807860537203755542784446511991581818591938235462627247769852809201481933866812158955502801357296212275236283219444166952568670103556154315807305308619047997260341609234673337698929579068485028213867361405046071916971653472353740400935647985661401965979177796070262390907195775732701344427068332491837462462012366982235058751049430893191427446454260886291872061879312358063046013908475605146298246605110391668590588756508701793488826209349627309003112907738011025980387326060686679020633239410176446044575456501332088782420917842355424865039142927447187412771369427455760679695444524065111934123795252911364628679596839653650780997688637611379724100120140494617451791304392546137604043607168850501392583277638710697488656200399467000528241159035707731635631726517854360625457576671798922831158447273864298907703727789616990400599641030152348655109435680266365300905721192157229897679177586736331351675990188738533614055131120443907379325588167195122077485351272947222678103170927895950893724650936999780493826069266909910716211492234983240952174280301495809821740777781697698902262735792463591455825103863297135383905993416079081555529281199573297537215559980044320995826981513564971254438257286505376105176987151395488816071992091131935983113264871483587531318202505182828155021032471488124563450185938170407255104628002965622175231390575026899401499308655133500736502604034909217711467448520784313535532597943933161444574723532411684173377542397686562535104928663606765871949848772004563641007486066480952478379802979861311548644760262241642153229679523017742450010130254953982558595286462627345906981218412667692963374629068023484815229249314888672076992585648896148446082232053226671383027491041665409487167147846759604772338343523223644426139315631506239296309627424360968664511753184513006004125944026183173971334322997519213869352140168014312868920920912359644584948068773699069246795084313488159033763254519089094039858200086402494292679835856059035206281979139387662758926992631588844090610854719219884693316178987511216114356233058869553740973872535345579713722438396699337408534374574416918233387162970979052605467485714684205765910758354707798776157521914710247614471195099700710753090727724723541519874626108108669041435459314053181518641000573490160516232254464666283354519244608750049959216041986883608340312222134327232993522797230038747026095247306358250667111216597884292199113905131831915220872293212394002860100175890232796194011195113562555624223231741296508228456193307100899227629750696106936635643588481845891235339542830034760451547848660803520233068433392615204131549608542735161709450840087403649957409089282783947240692104980455414541653093715060468813454334936974923576475186434769851574365512305020077153377615858181193116799156204108447325558583450715941708295302943396108789268030149573357444159431395016050052484656292526299803265056929767722611871455633460285858039542511599975154124092477177717857419455302329094391956191186226593920430071829489723580559481700043664076783401949456842064383657811396584830997668949296195584823535249103820528918318105324483470944995772522270718526840310517202278167349034595427885531889300889705761076723816664072027468508044134200147828211386529113507963293406524371072866798505509278068228302341304339318345441009567529170349578968016487914183577379721959720957028000916837288170231687022402935719028373428081654959599437538603734463303757976547458334724162264412296180577700096172347949952571192521711884274225970571150742766758002601444727858869153388097411826899267565124153432261949395267004941120389462950840095994281499511884208772760124349080912716840763395166096260307543883464037832397239789749170629361968746566354524837116799393601871201371852469203968212822040469750605110507207396384381356120479501591908919874538864873192387662307858143062859217428343330769755232668626701482050661518788604975143153915960695448843028762685193337313350641323427849350455505562327849960932715614312414213886352138793377200317522028431150180623549047498531551425894207847325031255338114006451883469844108992036350971343093068421109418432600143588447515535999103212187469383971817650672607830290005963112038624184879558172386809499241736996851514453808209404794742234471476357166615915377104886011815606893958864136603330193393341402698462953953767866282330560617795818523532702110651333852608278101434840026186314937151066762162810085113753702532141362894672235315733108633189637283364901507129829402407783568041511140737978628354829975287839396199954728884932717471706066810387399759247206173217354122755453884043027149490119525336020615681406604429087575020237573150732724560733703901801869307857348408197193829315026310063167508362343810088581334502388275383625079236118158398240986217193501927227547803214238183839857332085209363366764410498838071169922444349795493232069530491773278860351145570248869706254609987134583508693677684510397865587546740547184982903775753810388315531683998928988358624179361005636670054816869190806611849167696160579047964792665247743220005341627287335388398449045130695556400402730889539188199558394533722636141404582549075187405025726923921176206654839713855800628947760326172344422032895727552460570826012065860441283350847340285581036746177545359338873666362953140429022780944956987094076641188940070228857395015817817915682315832866164441462815144052355945285217141245960521778554416283523965670157617857730760983990823533664341630935327063946461587165223639175960112460603474391495868692943421740816193398019542536832274960136042515266217563364574106866080284238738045328447222234517851066458690060263489881653482051972555048853130802794763213886380782389626053507409121288689180750130916457620372243359648934779373711657480953820679007618419543053834226954106366350620692367547328457683824852868572857634915432934808196054774309187812001060798792649131971506913378336023825621354091908401985317952641812001920765681511418328301094979135251758059783642752282665082156724597848151962469474238805204324923255388262723167565472674571240508703864903579427696989306367905804720698654614840368430867614921685491922338732095195180944887793466485373359997514994377217295816424326644556143453500092637861933549184928153354761722064749710975412727086226241829458597257559479796404929420102540988447166209185861398091638278911732061038021349608768370800019099884377411392838867773487151829154330835367217418302450656723550518613935475707580712968603304095061179229219404112926337937242616911673714326916292197176523808155087545932659840369188811084894712622090461745974312053825948805106548048354685865531112701368241593673518310209078867084116750247098635887107777389870710583797308048067281073585206011301660687422831834181580468818454007560168375214420828001340649467320034853697424440572899391059363711384424559863908739104464938040299405323151137990012837996414986353736143822113727667118847615007692177600773103045017981318259198560635996366785782201486841501823456664139389165842515297890949890345510160513770570553114807850280779525349506918328855998399035681277022219853179567520015027553179972323010274942341039334429129061367051330028588118081477590904141179890277759658924599512344538779950240941854677150694686503882427542856739216452723744492056766722774973064395449620589764877923342897794354194295528744815883141477170443690171489435322204729308769454258583129247364860450788923964705790290879342761539010890447681868011870472103398307225522954299150510507551279966146586525321350074885968551464775348676858168853273084091586896928483301292418100027260335860663513719699885244039155537871750509761493232936564902285273911320694909544080526881845130179402584427622728808466523794988805443574594254887747806951452309015609050504488578157784394088980940889202677227570570771407116115788617103633096962006455896409227568701535442586330662820410629214879622334505352982844774341356363504277304264327682869308493339136613365921989462167277996349479117135206910664571334049956107986804007038470011649786569711533329092035559769097013959332425630580726831328436422672181641607504247588934173286220530597249973546963089559509058194813833121295111262827398552251790631575509082508050580375486394284788753316624705108615926221697206326969626772241135069998524817705383010842216925398850240383919361859225037113951706367335990724794402294034362954574664151456350795595324307057026566024708008275242807774564383411928158048076611983087934329823708806801198221828537899910655198913050331226241974756780806888863862270568807032571248660965888960581894864218868250117048599852995074524029269017640725082169648091940355784372684107423884757765011956938373697380141251867681148133218749458257225926657837344022706058860699141920804063927881301993932864985504944693856428266906140692091846420975732322716279204971726221637995058435132826032477446188866444284001374980746546082135072586437031864940306173878573928910363355414458314483659185789811544129896325367214696828362774271395842374305573807982601710579684706045646342580930855599802395956980901002760266876590097259303763547211900775900369124290867126147548483301045338520581544792589580674014906527495441700376939261718500183415050369414714162761522213211397591107837925460967102033425840079884327266400995744005539559916754394811326363524605499658135464437308693195947423947481968558080961946009737990849784633400693835843463104426987533229383667575415692460468655033830653535175884208423787433175947483875381401488318718163470976335807742268652949455275551642330475376493673645417844118647310800744792429453473703127054433934199267358357458302713596304960993425165866590586367166989124451200508486494915433558755904119907819359386472382377862068717169946909157243273309399998919671584906002711604864287268567947820994354262115710707808857907380291397566545939835623310476006092695193625082817496602894115531494326999747291051837314532096719753660013716650751018492997324785147876432826602520930842111933742791258998585933077223140225857963559883533207395472443450383043388167399247678852927871384970954337021132851012868633173142517628174902913965499988175302570308833798131747261100643675753679977991391354571840332236783200638926974806888704867329967614586206071024434562199497218121283415521670781109083303164722022493227172679236689198569844403115354711007883929552615805294917590425208481188245495552682647377325296674169718620922009609992563169048786247072789091728402078922450885520845344344786474669739588417966765271146364308507417746763436228448552338174352486983425536533392255393269576753865803013505201791232225039666098018070004619299405612222716734588237604863238878132123964329318202574195771803178884933481145213837504564332417550064955111688944599898185147512119594237677090924378389750278670533510477054264532417924140736494738684633726587739165875979485550627510194039681445328094083915597341518268889515337664478515931178338080359085408176481737133600435677932389987362462891736003374680585977332952180378374444633095442924636872587794003450965069811039795935823806502733007609312174172241921809886644889928212198102459764799739953645102961302826375604741668799704938099023360834622051426686363132741694496744939340256208718592300175231093477752170720867212760429630307275188463439044888151142557162816807036887520476862138987066954068860559361641877578191988487111802326731017397792726212082994999108164255682074369416286746579807209800768672597872252117615352684552011180446107310882514182122659336715641747606333335373630431179559155398972918832993106185310069745530883000738154081614636390274181952185955623589746336069970941585742116444873190584542094307987759544509260294673168345319433623033951328700852112437768468169292872105341554536603470677833154733883523620301188174758717443726420126239978093911966614888223746357353976307621352004398624699128543717764162279450920803264907468233177790739116601587567671520129235795256936320158174479843479198485615089578752390731585873064233821041861105512893154781091619951248946053360264360264713655944532292466772240101154649656042731202395392305177485260238594089730932813655214454248479733446827953977119077938551302748634932527791271827354425023732365285258631849114057793046364062329775574086545067330403199553261832913914777014303527010997333502035197254633473557371633378504712132592868825606684978373920674802303120272751728731956770616334401147150202875198468747871507822261702477563556732481940617751655805167001647615583064767630740746236760478264733845983796398846914748356552083054419988840087497983091973155352033251357878028938595360866868479093218369969823691738630222125634422564270137464448891096824315835805301825133898861498593316146375580419925501912425020616316854872391112532435828636125355188833397527833992092031249011820282749648640458000308155267770880228097270415570063602081116837382009453905692401128887596691353572662530604316041703594312775652257312914563562691809124537751065896192452055323171884137817522491473012816249054871915114845361293584315916736937680181909199019134394217717967590760669509019199896502249251676129052273380916107246020637239730519323382637140697388597111089580743340121986403670756350612391208610207864438739089328638098355883511348299615632895862475421292964440728739468887555256492761139602118328187175779767408413441058681068347772541719797374867217509888715615018895238542777093048268759197885523879998799668814291878047890509324951421453127084424470417394226140854087639736907568030482818772375253160283656802067402897378695792242243772049198142467433172755243080814895891071859127864880006262734874064162042780718040580592122768418860386798301690636624591767797866634957687070892660950231361326516578783347607611480294558741551429878227638500494421427175722795719017832550917303382302485006642023882213526651846703641376965801053181120631724543287635080352743690110328274223387990310474950177318799262483321755592721153832029396654476738058355192519551712215569449061762787988777832424988315063682329619976587948314128934476436660007789498763297512593137275217068397520482834651447288417595142970901049695093014603800964634560405130608371517980456722631865267709282547750999304023010306840787445594705327684269404002938599208951712166743191001938891612396361737182724803322674205420258039238167436909327862046881234703820391448051870663194669441119652871329805016178329719767637745502946041519880562985961019949019354637938714914775242472223896884185626092635184714822077319009672933121037124775053675100368580250515253181370757781234246638543745151980018626126072937492333513787612332594300438470064758375503999410685884275435834339719330058621576510248964429167367063355704469595796435178093331819205372988075443253394461795288777668849098766127842069661830884736406388778963714488088754062172544539357089292377804266461727290928945456564580078890511018996144342084047713285061079389734265487369956533442508667841062212714420480359035719221347636117592419192897171114314587460154990217243115505415486845518675935385531212962801508684598293330625644896618171959096084587440663153334361244951672309987072721574181920117645477087221080732629296084278509077011214206415432113940934473620232686332187932955466810900305701993943329706916045118683787683644536127011249212181142457799935786726800617095093987693983252367446530097883833495225884776012073796673138090411993118804217000107710335446631882411975579569582068022915423862595828282807451413856355422437347736981755741560528715783995513192920440415515901128958179806884785277929368823006338283607638674966168725069683615251573221009458100567751198129658049079202882652879524662885298343528421051211561038745898380905954758788310815983526045881848086134652303303534114820529141988804946037407397436740994191819676888882208431290005367487452142930888333857394103369963008043099370729346437156869704856380789264521406305869822096226674279106254395777724210274333010522994873598383648441958848616382031789044761050942809739031430367561352879681778056299564160642023321963817562204914360710159171108842827723392851998223909642445917900521354781322928796324516759150823495921434612886677162775319100332484377578130042554918002893171709124677363909638196478820540059164126712780566150400800415714275820530571763382656145410873928644563160884899498322096670951937202881168600846411588628874300110365382552004736809382902894657486896106719865228793250084488898391627585457512203285352406176967054070880387332465333146577271685788089583949648094814430831268340380831433805492859792287619798648518357262136581957739408498875719004889434374219960749084331616408365240514719353922274811876382670414272664188312964602737521620495001911944114879436205324403209961840445564987548257926531613686807870939175476756334072070579588146582268232018560482797469806808728959129317930591330218999508127282751378897534060994059536071690355037558389911185848830360525507780765587110186852038617095819267981614160170573021884519912892293716433323931804416211666387503460071405811791422186891321924387025052247333056512434336796983623107896063771800366421024948120695034095229200982316061513542730667865023696399330079385547337826685369313446530719797524109734564118383810350115058103099834405543732238765490252463664769743816247743186538687259198645409086951767217448676157562808907828489085619007665310458282032815426088543483832262028020072880112011723024191831443664011849919250373534275001382547638602293208602433875297294063510500715511311660426211912804962041439774491882093327503181532641825583912434907032559753631077988962343425611065367202703204182534118542000138993775855821457831392035534411685850307268550181874905315380260334087408708889520995747989711319925618265311379591926345163031125836048020322387605026649021911077411585162113506794445514747577777838166099194164246901606747244163892594247210086031964297304552742507700619327929204609854950604965018474529954396578294403874955765137706949859959865936887929556711833097546830079229414259389020047933536714711120056738811210471260060410643936345156979602118062811701117680909232024005023442805015864297907418533927187102143780966748121541427422655830270359051825555381318748434843059202080825664579805145590642779635734700817703999869213837294310268420500430187210355523936005119065473095867570240113309816037054466729756002702752793725354882364845930159866007959248597876498448768386513966093509497065114877415812840689816799690388973170990636543308379857232992004881629354111295978162395160939877096771866790282242739980522366645503331014387486363614718516366526325461712247080775248801215237035024685070603296663494780597130798321059789804908732435585735487757118537851142769945860064501254229447833196373631015943083504344715620468219067126324032172307682137398102365805674043838831940469991368876292037985261688658792208420397625545984169918442830706629757205538951648735485669892246253182940402924201394423224241687372143880400329830488658854751881152936589244926945061069935467292334789001035191082371587377689426730915614716312802967434895817324159057030263166489434673430378334689435220331018662491242272423238506412842607917790951765070244237052254129564673467776939858627436333444111189080739185550893369725727418827445353889783880293148156194305176826952170285987852978790237724075202304940066962845361373150555301552905559345232514641114686073061981964126631988021651222356604733322580379067863100749235714405542266945870587887706134535240276184401537217684780144343927348155231838729693387128455432432406821157704831597495600051436390055572546731518667545616392238441741373286696848151745280207305645256936077769181495600905559506058519834500719045465385447706598882707257776943993010087720897681510089676678365203786555849787245633292374534025212184562506366925318505910644011851579016011722435640564568135289058983869863284110649092202649537423628490295587059927445661785435800591008569388377547727445968427674525565399426661810575168611233696534786085457912567944222302831990153453165648195266521519006959322242335089660063999133354231138790021149638927229847529630780964383877279912316638414562481363260920869969507780648822986196941317667809388686459611876208189794731269847751272265365355172853857225970079583030441110714738943379543805725967613248102567221597954152435858143512716014979963822272700429870495305216712026462055806641294145449224913006445861472457082948000891243121353954470785259572273361409585119318733149391951076059728023320261550518759387837890537164149286914311299096369405282826913292037550903498890214003140634243118341597039780312684305909529592776639028828815142875612516402980054629688662910811174880466221296001670393766575711290192251838266367772349265206102708390467546252695499266066222167295043082481516095282837478667587133854358253098942832437394156747131982615462587864731176523141758830345279956417606000914991436176679818801956548105459011264499598343163277475356804338425836821138921307039171989077631393666285298448348446963311413144849336711607414991108922451928551592365931238744758466272220273241075644880967228623479300386983346193920035574145875659129339960381674665455786136071183777898662872611677456373504320442948818438943581163452318164906376586420739238313500197965357998349957292332012622069486586026439330457863169453215968470981747755414503892783674409545978929202534700099964343071104867944689618307988860700253198258538624138288944356364932527752285001188885792308845893189488453786461194668283615530571031509550016260061672681333379554218263548702214888522532469173180327417279536635338824230264869337961786958027575871478232223809080448452791583391743634929193532295340409393886980258444900977528514951206093893379457272192196365123190465162927345118905227142994600925755655775525328765945571157013299302219539745384033132696065852443997131303035101786163173457608085859475158474232169820063776136550886944957361301409356539575571368148812691488672818634826131752883403670129725295634531768048834978809044429448344102099742350236589519792677012754855686357565942066030759785092458165082254140356712558781413789839922421559116355482482948668329131548824319218489386574648604349003728361601403239071379428265690816357854510587593622973059441874454611918973726096898482499549202196876282062425315372156682734976629145780727519204870900618490444489927100745089777724064028249945064780162341962281964510430759540263391238145502008359147178627768566414641848845736345427267913735277744968021687812500089219965599270158456497764732109213996342804267943875584645147990094758950296514692929281431963529624549929047725844295215024559974450059498921410946587273010422605354305611483837762195769563901530047140641463077805894017698271932457636208132938894401249552665484509945952444112474724340446791288792790870906430597006463940595408608756553965867222001980457642582588520906636492098434768286775826451806928715105411635274826009102297393446709902952382643296229118408923949915531502921821557265666001876118601665498636530172421629420144213699274989399677298706897755847111033622510577523679015395309435903926908865663314487598679563574649661241926823265215274938560420055915075374077299694121495231798199233862474707459983757113402788858918373336375124016434861169181594048624358668585592655371855192344351588301802297167783837191971287511458829241741249223483954814720196967635427178360642005537613022648805249427394151946950543181140738275961695511641746750049113161992593472962374653496309189468678159861778512309450358501649853559785396967806556565719995377224169819806515728537671343152922045283402232733247293398878159007914770437041242011870770696149633306160393789379813048638478133185348866629229146113360081607974646449280445294956805477484403122778965800121355269220583862744065659579258771267442351714762651165185581638832858961075702463137193840391147411793887708840189078091573190262780041951153796461774992632697765404333770684013129038084670253140019805163455190817194518660525143865911200132554749047749421769621856525412549289381204087183408814220955828540898357444335756693120678837233405650237408665527885288757449832082955124253456144017161953954963025637846279999754837929405741780580429078409715671541602406866166833745078835544135967021949518972566213865827311298550128062433081857503882144614784171040320179783591772515119170742916258188539312776403288445459642835431344049135641019739984422906292220827589164895396084586184075351322780388941095818948198956631734511482098332327843796799485317036501976967645156993601191942478761568513524437519883912045165075052065065871228675064713707685642476040538974060427247203497067188234592773240704635128194242487023571573914846666894756334335116246054658241031758932698891954192456041497441536230733827883465334064392523653617970997437796798137630549153424063337483924373379325875093949780788565859639062341846543494741306886524059091386297847688465065738337278889871535316619642357510086533517008988458450524515325282767471444287838509993710546848305811314149064626616275302464208734322672518422203834845397265959913504419284572804768236622628505059215630697151419488517197488440797885086358075322886679734459994309692514670993377320207469107058152498519898782236376725370260426904693626253339020209780288631713192515279134835355262046415890200211342206470189361534025901630007858113093298289041141982572340398517888832085995954330867771237894092552741913219624163284027347947931103650375018382579580389131624415293390605449028694966340861119695582343386357812738742380788242869878353891528804885078289292181566089300341706757636371215282323302588344190962438870878686765268849996834382013417324348364582279992526224261889383277141298055309619034507137268772530311092879688355375306905704050686944610510109264654577567469517325238164083861114589712685952287393091518434342353497860564699025697593376440231084370209603491957207787734193206482196041766657811516866013459201482189049754500641008073065720097851442677894494867852818787467315181852874207839128633628298424492152468702188123644102014527220679479507139727465039905393259241808084430602755023472817667274794580681087944846740935166343571382107544995962722528372725681763196391119423723942272036323922744542635214666292890869088685258983127127048140832565130389393355219971309421008086039383072642898754799529728566929576855410178008246598232878095303258915315342231133095634597424079969667543160166231290974716538288689452906178439158193935938956762913725913465894464409520573685748544669961071049376112306438921593863758729687836280069203795964891504287949779590184287159938633357409491581224418147372613884837949744802985670197841544435431848958688029015093455588035118658418494719854117807369514615560665650754748429099584181642218326878833719674274436454521014716315445741211987815772448824098478629097774750955927099429102383975561105152089263467735191978081276802889341196029179422806497824122531834848409265038764190626188646768302569104257826371909114219176980031291968299994468906940551897458078665741838943544027827408195198033302428042975414851693167767112325767026870230828226993986441437173024170968193869254569752790571755577167788070663930820942446132130510439527909288936847306701009137564966918998876239052477277312081936468059546064005904769893676013212952624144148376840004254341503538650755181547506931109335693673956151966779486582037032231562750134765632870799694575451504484004060231410160830097211052702362993648843757461245426210236036087836355910067692389748217974380728818310111807321232341614632083035030341738621143881938089452403890232075971544075011168009702759645687207806261692592731578516430012201278234236236734465549307584140263102381033676857115439910437938622952481750446071252153144317454818119079113061568913561274914189510593553907151378276476639661689010788935983681008458790376611327542049816333428223735344000605033531504717011930280516710069879296556092213277968007936230759981677558754126679748543699557021521250298653127656024416209153351048666062082706640602602333384104802062951184023069791103951388699806631702738935883168029570174231321626416588739248565537281839517633931404346402089758577719489040235109842754541316107213845109462933431727705496747671978991062218643238358440148941424928989313908844816597367548437421368976238296695213465565257362249609210780403725258850358271721439932871049478243334572289937768920398766212153244823475049793966176530061432529014695915267532211576003446014663216229856959266420380637068107669643531404155684314656989587118924052040523707238742955869119371094254975325611022379989314172179744860057460275583000449992393843507384926126361870926962820403002740104903693394607993511547075998274279926995013015659433798410455944761636831330645121858517979586746318972507401067080565449728403179668827892341056420759189926906960685645898198120187036575251760260298632949597587501667759663488992853985368897181026011119012257730590022809272062873874260795675786534084817000861764143413813791420383461691712808199182193252580315591503059111019547337544405109340420350312889491114812881642377587103541633987865406557738903008272572196376782153933269042214568362042742626440926845163138564419532858775658989331448876497149839838516871642540620004041297848196297013419306414925919166078681858713528991404457079517783972303535854019542309855522496749065150267302801523731392291023212316668397406073934972069211079525052074742050789887716072331180315926992799061740340268296510784081633805087297194345451491633856971056757836794195429547018376443134032308129053396662924270505989493529276094816997716410517693359919043704915532675190923403981787042438786380310783841830270335984882459119145895891352001722435813142778335990374830666974873123298440300760990155464364531499105787814974014866718207973396855272016953972836089375862667588388403868581763999110744695115996990437295919841587466367674087376382832374917327301708012708269263504941155997196432628081725725708320877942615733535373495702440740400290140046356536341260082872668784311656251865985821584168448572800685880407364122925867193550368155411582870264831421705441894264454450985169756267230492823307803620991055675796475386871571532798093489005179028242809029826848398468066901704094476703081460493730002903756537018343624239792570336694074732985498916718842985663783417335988314451477056707262412065329811864661382065557319135926764352747859290962656366842336408757477908154620062804923815213290178493335865763251579086311486547976640092782146971946856916150293916859066213006908347409425714472283146355137349414185746200852214391909984569290139742948948969533423771925120277297674324509541674321315962685815514356787494370778919769550970476735370405116116539718961012358474286057449951730217412369724249451145005073585933405917368435296975115231524035437719965361942081929163840641217398397621817198106378277708681566205986480202061678688592765977760611023348097324416662433476853705325002207453104403633675671766355467413660056661053557992808160891177816353213988172936458989885979506355174491607568586255890178873575654774750443888278761348796490100197849657750223152321163730299607206691655165737191452189395616322771845569923640933353834636604944419866433348672317940671007602861566034115860327202600924147237567501977340510837968205006011095341596121780092545349590177562002896874830889856233179960049625528840315082032143992981177621933302895005948272776626585417455836539473224903481260769033716598202610415912498122774294838386289298984776806622105119622426930565539727623245032400193877193407446794515843917187306799454565858835464325358737403974087913673689764069467551741499869774886264582401209872246431792162809959239520695901347894502105749751847363196637156313238829219782689046123775111734676315006668428973727966969851759344817720662577038817765577237115675644166669092017317185563816747590378808353935953025656543713088586630962291386950103893203006178878490655189588855750594311820624160064544818416653311831804059874157845929571642035351233686497170076113629236845823397201399877461999347057693559646863236309453609557436366853511299204221019069257755743995675366175942192666022769082659687653372855396499516349999823661349185282787362024491698307354204682003289333826363840296163751447686472573422380023598654004184597598291237706583379754446776275794328100356690857591654546864915054697638499512675104886360852010634756744487015698628853155301044691687580688971972034768630319040083005269183127849764771451506529933224345383039898530995114922999070779140661127541142459965455538196248649322067704957341001997705786815613855136701531099345359583101984984595593427510923473211981655789324045748526241319753642818253934002668058373719198841503573581598830463658189283530227913841877823434647541887847424465325533723947206107013979136886784692891481756280837229033251497454553335347670647108746311952963897454556463051753462293074189596825567345259350533480248331243430529839623131978115517601854724981935462305504493122694030119905524958321912327383672205909269108334732642520964921730679109401983091593510676000577756253742664780810560351729893781258322298751722355929023772051813559746445717305903696795846239341938174283246276391744196927130208664523398236797877455030982042218241513385028641195227020509632355971071733228821015672404597529901020532455196677371915420177048289410506121362870807288189984350778125657922728021686515011049605269242623996565772656023369596516734406100062442724200029382043182701892573164100599558656675151981204338552899159806909561864025021776860762859805327945154144029615752352072207425083063167146920623777412028710325663336863976297088295522399842691661943013132140615326280111357813273955846605289025372507286473064810988177473867362859367675267864635995626857975455920736447844998946017826814511615638690543352041661004401432956819562670544594879975038031297346972877300086537328120357479916678644161917452847153315443153144868196596983038527896193101262262352501923558855156585696226847199730076559529513163405270281319044582174217611498296518038515707981686641004644014826270907220918532534339973864162376794547335353861727867387558700704286236977110394239615395951050521138942879065132392026411760240088013482628041226041392287068588830416419939672569426879700503166233150525882953574882909825193864214923569523062042500495800859559775377484731940071980396235176837023365216898977486753001233585314998385522517808435919211877596247197176308060165947451618959777020198003270494964462053338745060563025360309466745063783541656043671247623871442819313879516882646374109717184131985313853081094806565412870583237748671092860127014057261182375468527148166117823473052954079066297708370618703177839520958482279921360369273951535854846454808363739506781335497572183461298674019709194541756835627161368022670947991255563105862122156429260473519306084775474229964402519972267323900945182626548331859679300468030194113086040491492277797078751729997031452589238405049938387942019387613969272750406699436084987645484680843589796727009081866591978991369934267809480104241510737221856483582630013558294358170245109371926352949811945250418797277245918709911613537614445346919665855974279261150007515561859221104513228702085657375277084508402364076940186907325171633777344254989699588607916967261638364626487108118053164332549033271585849898048659732061568084887623555729217678074193297587048889098462596619715772348181937182424336121692715824162841448681620266332421721810855704295393598456206849220586267332461864996485703157635306061834755135353899928427542830227669599518395404852378601457946513055846514588989439679989345283378217617485307300090941463818719940796370050926424258836877806588043948702946880279605748179058072506074627226638602845856593799324568125478740175394194341108749830977915919379092272074014450017675527371525950828230074820986458901438629880792042440015422295763842746745087731994129490775084601832133114244268178466298131531029898205763413429400279274573748059420522265033933715658825085169532971028300871982696830862022351533921507059997293303672507773826530376233124650024073004604424437170606089860105836645800655530184245137100335525299430675170039593584513680507410153445303876277415359799239144101583129210767020256596614054995609047081716365638432034561223723916628832533133789978784644721915723157776716761522958366649692832340057958045317988487765585535342750905710466628466945853343681990125588210997673704544751482784137660478063910463321130880103244680326733456834408233177663742837245568914648798787611785483612776285353039250500713462423327085948545074234457182935247860678115791367783766924653396874979312953266524818410863910398143862508780154463185053834167938590416761025310991407407032489689384521898433224856069638074775776505881320273784417985502328469647125657352988605521815747341143877322186023270743224242530239100026478119211190455977124064501042559082554322932849242986291296820751731838942252412970444091548755511829019135329408739074251455517981127290290878299281763779355941246530577269667839904960390805492687274930533918103624066930208281060653655245556727187179301809111400395152357845927436746490954794755849634958941614906275031793113653152013554266045835169891327561916584702912788956339979774736415195705768368735528760233636107640143395810539686460806889456301561092338494261353876313600629648978131449113533523830927186190313009621989119807294351367504534248639675515662957697362314808841784612302693801186066924728519918898036681238734989938609387048580880306281717803895119203249195816188172847478255728811589816975030500747450196324129652821197864604923294527061327295412092550121504951838131371884554511213048140411831509306752741827474564851605587471535531394602186824899946141603561444515844136850676222643740520275622223351865818537313249545552952930867639578589090492066254281431763565161494953199552780318018818215678705178368785520618413662909306642468627728521207107324716753005169250660350460661340096443212425810137532921888175855857266996797316159759025956830278428937098373286502477434074427888919597797105582163652260900410244331104669451051759177378319493183025738549427313608390683980752576687582346389547390177208520941927524100423660998919193114912699375706131912257192048343508060576893649764837393339864892434939506015245130710617951167308174848532633717698690704623243603799439719275367718794587728703171529112716090582696742958397803180932364516198848479641516990221545146450982101862090683159365697461846884232623558690041727916305483266138235452466895926746722573771680833023249307564341130149280743635940824128210022454122309515231886093338205900850789092923929528581652396173787617331635446839583344536343030225353648714819124193687832624500923094291417273348564388210991807029369895931004405436322073214699755397280223079329291783552906841642603941251673318354895128050769427139260248287052967282112669561277193942491478698010967587271802648333513240470384067292014201171301769431005522370883066916773720447466302885937359442103908221504881579395563485631059694162305845453225139658883513584541130502456506622369330623122440552570777187753174181349132630190603731441019660966671071960716025793149648774367020397855234356184741482831258997507016352124086700139264128289744977446947438033221511163677345913802925505593163431008262891460511828128891781262796624919079689975397836755618312305135062104887359533387586821714023100234750053971869593283844866910867463975661670198861337654237033388928780275327081289954888239738585416296542125889004293659088757530241589459519005061031457874690914981153995164788279753263061617505399148474943272535033109176536001075291003873347318443859434408432032404249822627239849338233083191004726881510626135345661790325093738147519123873622536129071848962779255396114863092060389681202219748699665688644023913461577202920817430129841121242537004175154880369174403639642016391030111813631212044628723475460511290383306329598069338179352368902987925243615654945616581294173623088527456239335049390036112692522350475615365441374496857273867461207832408807232229755036051674805229394532346917674410412392453911225781031229460559299518237988061296625160057659541446861196678386286314073909260572149705277673785971136774412967576209428730483295014396047890650127692059131769162040400018620877798723026535773993078447828862632781229488592214199533875460439044604355262445174623118237029664936579499697812230543731437990001331883358063970710219275729877619968574630267900210074228965415290357432298322726870697766239750161158610623365337728193535238926903182178553622283913092012239540182304693146022678121469195545068230344462266311182820752674319376949165976686948673618671367472770741417473895588309020301150199351077296257477560850494909779572724262505266466758874683135203788224146700717159055102812177643948778632353293567387721037457787017247230289367309513231591175563433053869321478063152476753949687253630906818203262485633790791968166528383824459292879636686630961956168173834231916616620451286933504762822814043458131023321860018160000780043798233334053467589292830302804191859089849616214303666162785301507097315712235490972405345574993421787567689917367840696117812901466912417525101333979314663194325614159606748517880874953758509710728632362829582293493459337779192517157466703697923436435307334469159623540863562390817078848892507929924545436893116876403653815916766447253161328265073040058938897535244617245866267292950523888046058236259344687032309752538980373494952357336701437232526584918006648600664335283148362880502306701749257767208067073518556614974906379384850880932886834691515548031768641980406801429909259426078624203047032719736654314340167505381442698006757746681235213683525259050497367469417346931604586081343132985623538106001608287455168464987491285931186378744090326000996159909290959330522337581826941946095196262891245295282484336316403823905000448145132481301561494091006582445717338745667322043220328919373761169102271935073350545486385688057613501144413006878171633194403142688398625876861717836944995108187193443607540372235178591156459272721676127403704752160779183876005311674259955466179313266865786195368978934363053794577723328501628106356213581027895455988817879224041107189787453100210819066402304002138910848557582361903282574817198233974535405022342877060239359620149411794069555165056853206278403619375037121768568156948964909693733707845533061355757178282741662638972552350553282895466956114042597696424458624095999372376014955468822482565552306673341397751930950314635503072506292970520236294868472499498035637990436709634110371766852858422857880028360274800801979128636381681914732655236755957369873020481055441845848230103021240154456942148947680486027753147334694977828712373088790600366136384966573062373315270517185256369256793605385624798262516982500672914046752979625957737241848852336976818484746504356247716868529238421065159108546947516708104556329065510846443300649321495528203175886277827187146887277421882353251209410903695135472004730799656004020621136012164374146692672686485537125433506701144821657471928133901466412198902840307120016449670374646131724586383309414712028810743932537804509439608536816870073946569103542108588466769526381077025295422374536369921031835208717303743211711464009322609123562027054735465514684304052130153763614824831995521124159333811404212200694258564792309104830733807832196181682354414882812656070192702625435486411642185316955074769770715375889475696490118818618273252467512820136054914188144852222069935684458896963288215474496446019729683712753390849459853065474462751171754661803333151070263898556730211106499780409648430575760061452575672375098197184886450798572115213335335138408255730394075875696034589627127238063160806758642570537210012525378284785026021359694212501221799888892659557492811397637433551653484817406199441782876050269253790143763424853715674631976326297166503171612556804259294514826153855048391144797972185707565644156029773809657123872683464340609961976691393909376905990718328457348164308024909474326016548928431081629114885681478489271783195809821555288450779574307176551161676434670628613769610936832916162685220345481992229697598149944069104206529884779904628104649987761136460020474342939562700012630995793693139311580753839075125894066444870065640308504157008463741225977380907565492919790464845128027799494185661347717290985660921263793024587891075792938685442976661063164861977995061007880349628244489495195466711356501076646654317027974289005941462328878511810246916502531264844770175209698765047729050468836028018781469994770018710813641634921695610547549210891798493868242073499621349084506524450446949641355335282624219429176625501486010707539520008740342680607091731738532026780832312938887080647308328272160070955317785422561471827423696766574710863154318921031976851525902806004017069037364737513656887805840585207194092759076461643433367205637317853430534665582891750884134692823241755786577559931617274273363169843617925772607865639839928859730748935610093035077473401315081773755531902141462923552322111156889771063818002746830834474808106325282594211169150764830956155321223789755169260101950815414320639139883229621143192972006558392347969586980885622844359471486481516228305749723485519040121188524207738649020542913367957296592180541133639749902365456835774418901469827885627760687157257678987416637791795431425758506898815720034679317362389693393026066028711157948059010047218251443048304625387351703888456747079909883415119700441990331537518865710703973243617736378544442053368675013512285608514106439580221333596792020243120288488024903323526361024970912093601622554738753332220378897719880728861766474499700287794997735688775713692685841817550991441994717090792561575394300669139983819662339913229906883884014703883944432646431337482907682789008059156885804206059858068882185298527307180261967378073882828738525749898211310140545341021243799112691678916101076917670546947211170359604438553615290633522385243038739338823717240525224081101506227745113409670656539226564223953468113952408378482185934658709401926966370833548311919575111551838450682470941318221057352721194081902874035241558181899263163735635210425595859747371646712739535304826121653905408045841162864953352703565119438071372064586064026680534344797834615335448110377017147316402064497294848360601811516825357848586502338268426453198801837505136075331218058873781211719685077001648200085750968960959235185682961413225862247721716022723575489525245858640651369917014986562946283729087827681279093478168987462573424814379277541749386994230444473863219446914426948493318990863669933012994236775262919913043314656121338955040809010945472796445051561949106491712985144970251012382804487286864306146678197943409605720693723421766554902369313886242634616811126181159127085229640836300281929466380537625758387249430958632545120868913366492382313898477970427937464421833083141034592471648654386543838469950978030879126984433847371396765792526250695400394669140439860600984288394686299313737212538401572426495686257870481687217793898181567983891024250953253790039806639311465337648732674099715089930800450122763148877151547642086942851612080305063227850025806416325933981233102724427864374896949162200891248438831947489407879305254191795289201030818328463896405645204510452313289237234254386614660013820895416206155058871460935215514157835052139903332639610161738269126082819206354440581293922430310808555933561342684846486250797869760873980436950247935226277367166530019438800600495972422222276676307624212301121912382462361904523312918913293144166041673228377181206183949625477553561263138500426935041920992990237056603346410338049139490332359247520054581308242992726454828432022404488359410002122774273448295571419349972638950091856449839837043688110139536948796460376153697763616772047948861004880392199619626021104124158241816826412180555141903102508050535253065047542181986395603407973876304486175765573128696165338600582648222250299021726483169886595621052412545703678156804580991662746396324039486540628211471396571316212106672767706328045460175611350757588736675775872791353243639880763172043391944695183919274237379831359320715446091006133196823146429728518721845904046858571542645425946222766068368056375823198893187357149690004098686660292681640514577997034139397812549586284810515934963950752850802004079163480799742142797761265655207692003647017734763007965902487036261328114540913227525495919580299716563837668046080606540303310291871831795208214354420223187733368470388187871449962989676275139366185778464492080693308141004648609291874539282925267911217649224929636026847513471982353407383885953182901949075769329692087425668883359429481622478447318353672043676974875252108397985196162332312916541936432021291323574494011846951280657755859208466697861284540927080230335543237457831577533841005491798316865978175486509194598926241933900888136143749970135373059530051214161041860742596361330035834545499809775143965340364800983287336319280704322579823758038686882818443399293048856359262055713654536096159922070307535576107486778228879131372763068959849186957838461966966809437181536680476516382230096128602246112399177414508931530954106125392136018497211274813215376774153685476023659313601636143101248333695375892058026277999176430100224868093287711372900713337298296531090964265498452768985696082556950298583320274257315180934483969728684993985349312391157098564118012833966147360821221995953618895018078813135702999700782892303388024177464758595928477636911000016298663139310152020448597468715805776883064945559836971254476423169999026572166799606015699184970877432682625327932093616048807974385512441138105395433132651633325720036185612960040894779770817815789983329654487526443132918170892484530461067116477332241360210483071369716832489178003211381369801108718350895208019060138605319343252542947151192316708228773919648550830519066297100585963146522319727396058354119062673043883208552030626834098782313674561514899153879375000244042658371730637468895192563579453781667642566298297769835363153793139412585414634036507504888973233027092859571794804930085711473356041503978287935493291958406603665014007479860889911071229683968137640409884835575644214173547451462283311906509339589133432149795356942696248128797106943538310161351791488609789861542279536723280899992760137238955730449683320381350575825849614996371216855025890423664000961326366463250841902542125318477577126836278170238963353573772684651096088674378273876433547129250588953153619564233162401066940497625934082633801856335758475997995352138260955198185852817597463854607223035852495244216350109303001555213579669360555787787459488814461462811801157868568289992027828614649579830882503304236825438210416765401711647952460549654651153011067319875088164363435606292626421176268098991910043318910720901941715779938288494847434544163953897505767400506524755744555212036506026727252022002476530987617944388518596522039871126359214013329934220447022033653946827887350942909730329374901369720942561936294995324125303192326999934566796316224473481440562816116223195446510679402495063667020451812474850954188194079071920406756717475733866216037603684186417535095266372453771028937664658486849634664190796384452484390644483868979826919723320224784124678702378796231546844892872044034709367884238313457847069607769094633403417265068757912882150382825629050975519591085225555097386822958250348199714479868050299771033377718675010214535102262496921555904169574250752098338311307954962992603264528242235976268284985556931757400507466838765902496050049132259628654165866801484032572700169348901658285613750915105136932087158956895739703197823301279757744014802206620970892675032671736244846414669132631684085496792686081771740536024717074502278293336839439439417869822718312806836788108466634700875069536116564705455957508744185346575377164739334124467865528661438564224879542725384977858411258873602452097069255371009056701776159721236733364986719358778205715451782228543077613162447956144355553675306464546764314605339775657559158920407649033296253779590378282111329944826099556973543814979238129298442016180015648885977420999015701720376324378102860988487774927816663043919596811352335620107565167743460018774807623894478063372311954558112489429237492598283353559243791554781887357778320452606837224572422344125503398103421547336666551780818203303213535388951878832675073531248388129714646207493162451368935440548415480772460137331473251519297818009071473691916446818559379606031054460031097419823151639708639752307926301818734272136865518506376658675739081016985591018527644226916915666716212781244604877596621657455771053958286093201788762804277543011644202700988592988336828135584481396948427326680364920429176667291474142809138471954027008203724130809868894319899304124178431366730189301812569239326391525520857721794661597027531882418976474626102156985059335171082318518016086369365439065640502808542293415087655688202221467074545676525629159598185941150610028713989486166235477253123160885247427555903957599873630281921418042457904681815088581602466040930447610795258294524198392363069787717486218528155065615921410667486583353865831315144214969065214360680201538960283739647548448459705297923983174071892296368822923811442709432640692331397095034545852137423399467091217750063244742661416554221240901147404274226371768294750267107128207171787451494104270936689913382095472716219358401077847418950864982203032844253591140925605018566324186458115863637348680817329758710967203867086365627853433400692234872891698091650088384898445641791316512168861415853403631862723448632352881890637975044268949287505815225797539484474500644020282321569122860626966405137108844318523431731229443417656183537966298503409011335723253593352431769651597515086101186123401391006959457402636752466423838562888880296726087761378880872213615231171062041777003784226792923392056594463471636964344607548333465978548838578235617439304280309804580469572475448384619173226957610665188230509967522987415995143444163086368146509056245323723413927624808611106314579436791915972875394463187589706736860855360839542291498472867886965169778504639229739041331895050662109117220399618531484904464221940225741368950384436543176052980261182210808834438644153361082960462469910235703752888307229749749092239056945640320355386988277813074945455286609699692986812753999201175221598595227829756459296726536057683425610052495924294514095836128671557017112315797695770775655362109362304413479128600956731830617249995800216373510913752021382150614084956042406504285713829735363063397471712541976191321411337260975272420491296482880972634399759790875956519275931875103405147638627884147300051581796755861931138317309041177426163323531448748668917083994601900803521990851109635829430176829377654735591688802909700914897169900612865201969256985214203371880253373468554517092994988633145602229529397748777576490047515221876296231046675914850986496766579547024928058501456639765418276156482866403513391056566631243881614517344519509696730098887065664373710853171023757974912478715695393774759670585568070723386714412204501928973173162416370822266541621926403441228411977385856833830022711473752970472318584997247553807557000176194632116602977140184157331581314568488569060230430882449788975294788556442369128899795699189173670918853250501577173792483342305170438674438305922711563285172556226016666467847811882861821594167356253344158564209974390824391294787465985026691747950338605983422114373412472637299405808720190840569484562342490912126706213881752798189682915747946431325932336034803974795752867139989727776254522170620608465626596043633991741424781117941277274276080903506203791199553895781211863803067349604956936889176232103625246888502339270842004587290060777037320434693290902592072296480194367436156065874409661809101841778336056538518088790834405231241026550650637085568517254148291091405443832769958535492419921329010921087221858797081563941170021800089493344651388953245698957709399167978763476135513899130032483160653520345081799869007758274546631879594096455106046350217698710548386759804916190779304259340981848052257734030718462721851611295771277777922016106338828058830583540418428474059110421956044592758156225533282816422000058997670438170576886801044347928823048139605243001766398154040900320810269721257727107669088037247693506564567804487750844796639274953369740315049241678960618861709367191719462364199074639415844553801579107523008875797984181900098180140534333966278749181561647305707534789352680966770444310235825557971007972879041720702499936737601272760337162453720093437194128635273756202978035148503360935600481623290353749050503839332830109103485649924135562092960030691545146444970839451112023079857677305842394071423854385399081546501593699570385250281249757307420665697118806419901780349389652234332327532099134005444727027022842430461684115268143975719569258522490800284106807437222314562988350029731485468327522630167069192146977359125708877612353403313496191637220014196155713505684122581004551416576115068333218032465175232539543798905017309016130617800732107880781465081264812747495520483195110569402769045610008245534331854277352036798615328003846357532793457513057791321241111936046688358228268462389235186872851616750267719089923294725287136711768234147873614567880998211449225727730841564488701603544646878681289246011054247511635395319087199076138508507438041989970679924025167176016830998881290942702762563830354540997102995457231337869109917045792217940970412243984791247134859788114606140711144896899176688015346840821555064206276593948391145896062192656579348915985650635569398908150357516509073050811930371733337518082483667845748824313441425449601489622649898458026158255401799487122914150843007022651637842622001636108231748572283574034166928067147174630594155955567530053483467310637543681173160201197283194603280349480537565670903574001650793740439242088873190969019393386970756416013492941356250351657463906329592895326177000374842674189321621885986626584500237148975711919667506730783519832300586332519347883322350530775050402767468737545035643415577111112239101157747265921796766009775106854505232403654554571787801530425110311230147263428044304139531405498550361033705021320100631380702162377276672869364398450655034460781549956788261664145919803658252985201573710258121099788925286435984906113673032848827764220682137694590299482880575764158825912313671902458292186437594426650417199286250944689793236515251512878044082963576181140229180707107241310068661044433018019173487169189643742841181333102497617331401970681944740753817383845052418802718149668306599294228682895569914465284127207639585036740099918734538301122591459221062923847081363308431547042848583003304126289102304871067344651344766118221352032206518691052744948248589592195296162757285834379745181659359599669858388368318400318199973899801979549263741030483177472887198119330208208079421895419062317822422655311160245117174855617360214928259713938848412661586243722337017276565346644220495557231902752298001937504535923932547965383623152873457891660921729583896502584141771888115386362941986338474690747917937326166158330563178538749728747286554698415616870620013071981236552727971593235863522851130969336662800996861802002727387770376228333401307009074469113903701056334659605325035076752618832742746659789121436047251609703335762478957391475563261915294260321682594484893765536004825157524225871853120803694718440494851800863597630311145597221529880616251757782873238352357696370638227488264434254849432672905415864324687427863792144549482529602259839686453956825415881654047003520604660002683399266144973014502993743355451167145206334863526523296160817495202206863032513507086582389470625453467826830706214427265292972413612756161977282382671240956490081306892694138509897313252110122226193914369814099821408190473645686840613587027625990368930861311703065147285989649393518634866234241798598141497418701090161262894251081966941929021039179737886201319007045157445451072319402366859050044316960983321357265971418181522129316322209668761560907339692473485076657974910881609427653348357263088721296434438118919013538657688935428062314692826473778918608873397471172090652992464870936612430774849417524953727312924825350139035148175609412038213736428598272200419942972703931257734433446132835416674801125348663785106197234125343581909915496637083366991369314947186531239534612384787523902099249793320627014343073256470162806507425729250553661743448584958374852903140338985502206214916858352566486194214064881558875799626775837182509542079458054468368964112523901781424106306475533413941942389187175198923149673125310402943081877576089710407497117522325311570040489589613680287198582559569194808422701176211044645112925655004563669666726547908178567320494259702127949888966818740410361356987056364328278753543924192375795041934400489042359043261188841587027733212379249676288363818905942846175482616022901680830922922472361624165746971464892641670761579745051721953829128166440303003977321081758196761679769189950128826670015201023368524567675156689159372454679003852781781792241360751727037592746607067634661267593424808572109157136822543983120311509612139874953211233541323358515355313688256234642358893727981464309746875192789454228504110831416139324706998477562585904678864770350268411932592589185888741104102379860276337548582001812438376805817957508910101266511547614828718566596362939710045129412592845219690321077888076004304284401534177516143696616442071605583423780176085254068676546096097564450169127272768321326496460331811969146372314214942352009790953012058510446124118043137523252514439697743571184456952105478504430031225861902277907259811651858965178731522487991521262643814242106515926005938120421125586110073332947214241596952521451003676775445265088690610541938553148715076234353871569925856831404012306837178914704053936665789563297031276317471163881838156328231960449031971892542194004550826369718131108963074560786315445929283768296825692018401871518143141583020312052009963779143426446720829757366536577937775831576293363038744539376293252838182874894248809518327140684494776317722906673532435047211349172172246317328758061415535159959181938734149418998763205266214303300423872367439514808740304744985238733410973317332619457524438458751731000363120739330120102652291418822578967160636841646438919015044306801177110528210407559421183765199422450412604969911497218438015942659764363893596672578521727181629879430074868833399856824358194108292731908289001836737516646128474721416291997045101686357548833859249766644096216844661653941100400071661284807046651262167458164685518312364494891414404647236034967945642541060085833286449531246881339125753256975943344955267977096878122213930665774898932681859270829544523021938205218520765754654688770799487522768133800364560302360457572223267557739189835504881064404011886885908236567898044064226934010663917923565899603922894657947294854408703256642093967787232454273862471848752369928441968207186319704967905910121056586276378239135180639942191082892975365432078838776527771803842464329915558187316654008498338034257080680622422095322585876684628296271266834980914214313988097064357981716295717154849126282215906356716476968184757793040563565901077319383367637260352826792500514502144584788108209099759128480829158331944199986129595596702786371043359387712085655305465834012216278732200338909913913674576338956599014020450778124483749801639311648573460067119445135721239555296624406257131439986353869680641689182684300621687776090174627967048726422031580481450180313844781852017607181403058853599858969545201280758370807668346940378211745037527607322841505949045130732265063903835342717086503348788947135741589434875877385482885519387804593745050857442290549131614951664390273193517515541856196406827021777781174380563153209456902202322838784728170011317128335517829283819223840476121981542534661806380984196310801543251301816191850880295991294807730848735182179874011260488217556172949454748952696879298323290063975750505293920752164982248189423038018776258508138597528997689538504547344314817338468938107694572889452407596500810950706066962921689985525032324914012890790857274683710421828001657406968654458607620987434006361010878545545009036048245739829024313231263766331280595587087215460991516925700642933105355065594118027490996500246105001657896183968402557647067275825242619425002457125627444300524812009311357160086975834079312507090338847497294999328734507023165024486100360524900100551416034437461597076473309453992395593716400516434786091882140635312059209870118360522522938273503965972372804153594622260232610840969934674351056925738574780304362911178457974455291197348359141948889960952225028222380188916231221426092019636447064009222846476260587456643900167503799277554116125142325641388766146187824261764959126505230317380064400952784615093913479576272776093027976685720351720091677157409593288546971877416956276343876704596523075627557762636900953413831638652710976359409961497827440755267249281576737288983896750601931215655540389209911067244589855892245827991991485091844450891749153984892902033184078986510182231144017232306701220372641904374183345897332155435845042535040889310849606058736070558281543058785610102331040143132375195484966736578613065224390382416072487242340445147184817143163572650078315799312988671373138900465965343307694051539220300430444279672494079735335465842907125274865235350560203256707307849197750180272049118619617483634582096841054348789030295622692260625678564125608619074361950543760864701235608206583953780635775299288436909230886613206523807360111410762484256310568520110159351601553727923115433321965323052267854671826693090630667024701925843192575200389317873691636648574324120192354105695433243402021996231008577478719311915418056990063473032572904186342102977575260687028605062750066460436046247093204796544585052184986996047573089897458149900309796008731903545265500804276630640209897402182007270118603463611104265762267693207340150537107801493920592560438255679015047663266780732601091044439798751114372203710846931785612880530696278230205308801535897609428033115739127445353580412088765137275367749609052279947932728591701194573876193261323227614108453447910720031911069970813442794235385127439851697239010538279593840626677660476225478488247562740321532583073057403361106610505817326508246970669909107447095440331466461253885966282444479393962642450538515579587385253905388252616701473720057944940409547755675166984934512282427689807048802745577471324473236889988349572375170742202719358478695628980409554552167191136897798328815535393726261744955011816172768792735624153573793408195240156643784105651001722202203144983299072358877409773841324781953601730864644300620567611331317670626849927400986618441789457389379385889061402490448413662599904460299705585531530022224387535564215048885196153496189793745547004947535396990557627473675977743204663969985076569939217949758540479012268676226149783625465441367519765391752837827991794906559853552454908721547254256672042538523180062866931917192534347232349457313693190072333922717007157441610962573539236971872776871631300666005996720730634843882366462628420268494901518240206867145107502381763535772431205950747337510080361107589035683634869437845001575175870696272026536661701654157799783730182848018665224192345048451001933476438283435292679087489759582066785888067475929475676665552393060004910300108949150225624108188505051049142031424685390921297496918256570205961887269265289886936154304759992662392511330080733404274354606324634252767148897588911959227843618325685170122478316279821329749194028333760783800118697720562420599648771794366662084003879782905844508470880243437549948167689917785017241596163246068156298375919530546436663929832175612876493743425629053186337712379721330026064296408220979995848590513249736392454267613396105209534480332023074419237516703527751275671867515282955615207729990837212969092628543675844094476484417643957059476170885303908745032677772415978891676250978866418205519834135453284478880975781243752707341244070749774216965696659106990157815579082264395351369763146182916354472728315020918221448945758363532717952453302796539697170037784856859782655735547589625234820390969274937458496381109082578291409401124228048533887253396372092565820545117906749869149155457009275331891065209345989835134263635877837290325407339154641321345537966486361878448129004994357717104440541315576024838062343199038084848857640447553369380355803432700479595951701898974774434663565002795444694543344981934305299669216037985669365596232534672220686052038738945444223702128956283795828080438646975178452865527497419691925311659196669337115197938900688803984925567978430927074562566073781876466604943583778013788409929922290284214710599265977650850283761198749693714745290716338815246180145166368288770901854787939546355242633935958491876014087453320554799536493087575308355257246750463024244242359087981538724156465779328407945569012308142147566680697834814685284425206889012208323362247472118194894460314285083567945230890866786811591798745346822957467008852709799780226645692674251770241740129751215397161613531725577609826233673142672387265253905998213065414056538403345702802419499762188617694422363078495113700567637829115064729158244010354622948186866177322614201390252125530039990815828206961115539318168818858933881485065021855228524087716185899053531319578345678625209709826040811013370779869708148013785978920253154634786943507536251031230218658364072214037123342831259187611796326364259484233565399572801470585605005804852412384244823088653133809700382974435829853902842378022613634443034555578288168428904836343793660160089456388677757467535105789034906602788778340146663646068615482901593394991625154945628701210295615937546968241587715938652967178657559337198244737564008098184703178384671593351935302641712255219856694882834155516978133182181247021302540959606858480112507283283659608340749419208463724523686774285339728925677925686007805370026670646154858625799263766177580916382185730316994237066547643510234770881849573098445007043833847924993290467639723632302045747846698240092710916117597173373951884068014387212534088321752656283897498640029718512477571610683011750971068190050815503711469053084919635189313883511187517597784062395425849722772007187550964052303452274737969345976210234912128915449213085872968838728432118346752667315749124101382034321511927222375263486252569571902199078811587814722857332488269545250788014184347777173605336730624818030177634278372537422033333237002210604530524857722019919154016657902902981483247022575894870357642360225597167471336521515091745803461133229650030469659370886250113013391979281372196099868140977970000615565240090057083821014347663499702856015200527050216608165382830244363888617412601653747467767899205175117394490066313788522030736516019119531268872425160960907067981296163089534267150982804405339763500240204388514508289579814447197536285851541108624656457017280272597196358708577480390851647313970784528222030288271981567584440146422853080782882154144350932886708637078118011232025193429962703038614992742449986861677703460963489843826710942048060774828090993990873555343236026064862942252383361450655981502237985449602432373782642822696654137682779960332001302448793474508816584873257634336032069457735398675540170700898879406672824847192555998508500474530043798522244986416553654596770989495191230830382572828444043411013190524302768570050531737222357138356778443335081070396721343371375024044184739246141386424296945281577367490359966053934235928749156371038963368783058271365941253712061587014461594112724555805731741533501445170509400260656412011520908404358576972367950223725351882125360410559293009255178635544143366185019823529146816668649826639691310740576695827402779869876657279896326524156047510121312476020613187439097834799197563015417013998578284258048950456147406521901285034465767398965259053483066332363290020192066860505331011688779846218203723722561600831662995559161105148547185541571822462073165134084249905098207931948969427827480830180324981588168457872322849292139956793065790193570693898925257033028510728926851843565514286908670732274209521445141240784211857339409344307472509307597826034739133035667127508921195224567867599417664993679484599535296681928174597269545014319896148765833991132443394505930988005543117344871860323414022904241065277264484904458138689910909580086082236026226398354389455410305035704339047268254910278220849715694101438944233183157094784907893422969961380845773418332167628113719877523155006309309821632957210090688954178294192074287461243771028376293193710400007344197530928405064935465652624894962432542660484549973053216051831727430952044492601878029279886255750091332503255060325150622981781717514784158653858593696814109188814759608722934650952125185623092189893552765547008697144026350472040933951783078125460175574851791921774816305444783557709246030352418811523570160144221954233270248104629944020674368507151575159321059135280246331385861820246607679057098714626827669843236833413378405243325258706066031811702363794115480832606501997249788101555672732756830773674533101839424743216186413021000933164927158793726445849376989365559995226276278407736056900008906909661759283120755754197729276226062610893650471832413551215012363802206571967393702789157322911066968139191832910846283431088710174081809632155181723937588751998122100517516453321291880024913429186056984430638475879898054646487609862261611237603666196351400464155905414264678456828706072194456119229834451432910184206387403710909372484519457439782931283877440419524477052946011761193574164120794921963828024854992082225002751169776521646863653751162126065123290920506496228611021248664221301980110115108438608729100526780090986217286931231719896080169451839410730240541898537613915641956940551036060190969707628775834456366540767911591316619708213278798852037042297248901620611666876551243737920054041658558465732109240757207095897325605751812833704572646484929980159127745346455975474182265896858033468036632219367054658364343499228146027200721203542522556060028759695813420339285094617196946368945172838629697755887126244236294621262801095862114012533143680650706150471271858051024720690449890729897832560619241095010184628919482398015613242805701348017652304478673596197168272602820152855592912978706194965836408132908500155196517969266689658189574075565229170659453282719978607217425092294908288056901941754590535824949089542642257722185560235707899792585468452675899043784767337050862457552676237060081599008480099406153764920764895617557552457944587801937144730003479582099541109376161119898656949219965470286421924060279361580326292462720773510203779904221454492828672765715470077041547343677874534844936852271652269796960741082447071588965966356647913790839576048991194647139206545410247292036464575651119086408881501357515359794214300395660586653669478722782311263193524180885655920137032117777289209089660213250677408816617436444602918077964123263594406361110245307051669349453958203015824379396716347948564068096699997934043525419030849967798611415385399092696418880701947751117336196962975485321891719103325018659367540662449096963842453645727233601498663591741512574504382464374223116683470817293178924765086519178929638573818298094603749064640664014625427306787035564848909790892634338492071754314574563227584067230862301925097071789235063900245190233507996015651244120272019853771257220837134922899007597509405588279243625415726865270229276615284481115162241513718373999873449285448454962391928854041069576966277552521392239595278411552471720864828041803849360862315287708754136622254698960267752783802098912443087148068055250051231944588788394549652436517654562122453813216359346771149753382083101927192108020988353489350905399679147877261757227151721321025607836768458382665618647756242454068422002756872099970338916702073333333323175738050883829518523612782977966129144576674346579255216138986872976626032460818743536944514412878913817250442846014881605710827930593900743494805880206998838427856028580402479943382561938666597958655525262336804223170500387510476620571837388624367073997641948614863685416197063948892155980321009159149323181718029662737164479360781553451346385441044176968137362894805543685935691268183770013828043192845812443533662569367013167380488569377351845373268515060339565362134931930658662615849757445272074812891135354622484305836283213153318410543494383059937941458327535587205188910739692753432487694011378276127927356382729660105367491444626499099339906081227513047219333850493398431874615929291406962613954230640740520912583991065089882274796398911981437049365751479285255294060870496142077524289181755969344158920402339730998901777210356795576448857112964454696420000898643322840192591048574974399874964413792154394065599485498584123334709826823945102448842044446416832700860901990750997126434115097547822283554306479997105343473470934319757291332855831005697655839015557998653422152006669227707922645020609279158641762311947192226952346288488179999400464121977941036326836663989179133203663631389731276528196719855963140661801773981765790896876807222334093292217203752532130310195270687985865902877669322742257201105384497739421810070734912001839113290882565183749268658489710006287619941549269319585344274693765807320231061767486470261907022018185978184244598684283478774959100324328223770087035255667241894806495233894084167724573409227962388557766818250125251788552284434943474443481242785541072400669507550070318849078163251140083833972663831270222230058319784202051779563072721363715973542514515107216942589676743604202921067667059789653199005982417327044342258355440903370214941765096793108852926228080742293123749569463663345593082764880094938357399795530151998247080437469515626537862663118525525716137375234334218841878890513394173851672856803354047732150420279174336553034913809311436953439363590742720574851165121477004976092084061430443693039858015520803090302996182013932288054413303590686017775042240281789645022579098132972250726311995290868874611375878831903278266518458399275293821449349462293765458304070834746893421343201154604264287967543664832910936768074727576717786862295322564534011809749010247784037191260602517904178814871495760613859872818604797239540727435058489539442865497274096634692722478198737988294911194351077992089064532584301884337902543770087485879415990019550936893184706154266907363404674200547270274777156194581301202668124698892095343637720153449097083446775352832006250256658321946304359499243492506548117934930804200108398076561298843766825727505942909260679078767539145907521170836435874827504796970572685235649977377600566353447347887212553131968147530674285475327395801488052878119740600442692809102568380423954367690258524066516098844856053881694517330389950792271392508923410339141781064483727789769692937568725500339400036238667897884447860962486285115544625217485696676251940002643336271780228798900847853266634832682715976332547273869083262702005015572489330324620009084591706975431746442932092653265753389631086782549614263865379867008710420027628902849264539235429225608235983979410202785815680392998898596520947785656337832689254163273759180349836641547536923189874966307794465610023784824642252330820989634321048298914740533384159084929088644259434236532512393067242002980391560447681373679972631439823103497401941133511573780457252331377530861240583873773530996234010218635274158664697440816592705748029648725411975795771665036931686210304247460093155703268528976851627141274433169821870490661310573237958521935594100113465852300582086577171114101864376369876293501364308173204767756604496373245305066137476570562432426968725744131657565897285260201033470023977694111130006285729754637697959852922123428830871699108776620669728522068266319726127860489545190970545598983506024815505723559721603368163082542645278251783984154797781110745552025619452375679540026965929081231529632534407469109898996411446856137058269229987424296168002830347775147592019909521518541375528750329662779367717548348500802196967193864227455244919369311004278944363795389102928507237730937468748997812361178443875143803090925375535178292729506667713164409824137918796458023832803565892628514467612992802764005812312784514148162571330217637326004928748137852819182298436994771342356193428196610975512910220142404523469684412066561168052152672194670960102852914021615342304894814359277976702112880288464553761205850054867340005823482164666310932815030814826855017759746488210004806798738349284342257279149341042076008146730472692743052869971495664736474045142167484963389518986238465576429055587069201237452920765787450414750088989143889196512292066930701696025835301413390171545759359889051908482509401935732365318383225189591024450869058036267213812627965661639591609147970036628705354634072144758135394340678618326921913566612839749754699764191888635502899836518426384204116456860528066605299724162378469907753150828110809887754708877287862132212256470927575888964115203172433365322444443464329486095227250108865292622487313613733178914788590339529670349258677418907410175152402678496857320088659702048953624907401725151660719968776267858611429640400283305754032080703804679651491112824294979861714067780447324947255612743581978597477543754001275987715787780621646911149824916079331720861846593929064945692959542760208634888093303552265247000650430411332600866837514470013291515664265538659136657782430181072690388514447503440306948329346943467657918077478734281874221226722323100575574417016422054278196812830116405303028886815969076408817906993645420307206990392812530191407402176846145523771754815820756935265225259343662760219977928381577037955918809107472828027041378575586875049903008101518883910256142468886429921090414825605092809443009221990197303283055840680744508799042381787769652507251736896742561821777065372847193837099532777339943528733244982656933720735072778395999814543875571882857775173555246084670587779510380146713147834687354512004747046422008464624757125843421770190197714284565067237646960892361477091292218482929334824124725902113654143376940311576729683014179794989539027033359849289816352041837044122131253633147545359978409450926294995614111958648946418205787924612293141126734716172873444546690864962874463519461133187065584247499469493712573852718348563843856847664348347061827649233772373700398062290567771025947475649657931360656479099125948035538004731299596428579757341291302144319324360041471620320250047426233812965531968006025650695173563099038942605125549192549966798515006969870547850886997864032136136664623794512777154070377759834704703148362574372685475872807727649405531195610425664601375547831145460780477445111302387167506486781824883474859960728765662022960841247813358640878800158783799505957069094252761317497179038782151706192729386847568229320324864144373764277416993411755558244976330433369684340582284679519798250066450080551892397241940301738899553926338136389252289094331749809427838609454071710201633477152743408747033485119975584647075287639449227092069722924725568759401713170525097388058779379026413950443757405165254003028169776807126257680844267888183651006288472158598446152047800985705995879785784162154921683092586398300518153623106173759027092796859205985416615054041779743762669525770838266113331779822787970003175023398502906702710683313687662315591786519328905130925847299050584567560952352917078494488484752971219431632448913640088125752210781434687979597687403121578594933274096678144577974063345527593516441635724061259417590684725701612033405315641213107873587033379109853030446835818370175304851505793134257493365720797130012382539255735470705111233567479830724239686994184497182248619646424173498247822832167911833976665599114372522724514416444279378614148746667935967277415394061475597514733341798886183521419465388184377121577979086181661961423105357962475344424723536445687328965798523762263471735098396013286276387817725135285220381821049867762303699055727231900107305975525113861278118932319054107632467750689629901863837001607289996315782272327896165757214017199910888489158036121641350370550094008245852830100038471726674161733663998932374334191240990508447246062538599983866400389614128372733422433003350304494872869858562841428384912454143731477340205810805122912737725167630018596373927769263184545032240523866378361801838730225207993624655211558262242261440004797109591704815106936222517204065628820868151913000227678208976667385673918742007696048278172063879923213521128361154877908370488749173732390296990683544109500916804185812930539725874219603226687615763277977068141336111604683661692741639206901254641618573205060813213139171134549480280824421469702268535159672008076464428078514732389543320929136200101537212699257018673064780959737729884764514930675161591155751807953819830921878764394759547575591361608799855595104540048245568722462454667647647189109390030720417097050776872827146726611054430968036645127616596594283750916867488804636546292471382347632837310640653737088010265834746701490455090941915756346730912556238852758432603688291657817865472522255294502806798352062265614239147661159771512128893878349935472734632522595164673576313418535478940124619311154135773788534332310441357197472010538801433065014372435213061596080394099266328355995550072971165554738383335298618080311768703387138859596368105305614862319389428222460274008139281022295122424835685921627416540828957396106804789422687052887313113779232400390034108156565478913598329147539805213364687070531979529376345103419469456509121896073905090930475327655028457746138491453435309075028126333262004299258015256571436737575196131150512377167823743604433262907355257820660145520878778305895268316694064761676441637850935547654083680152819949480286775135289402309621833264284250626230431138495071789577303465452282218972921148234791632674550716813118098943770918207434164759431560758997851818945078477776557262722205752127359843438091250363745174944645172064387196317823809274622862984677296181615945086483800250453075315678598298835997066301743268312361519635847687951816131711841469611326793859287008002148868033772593488257762323083177872237209728889424365281952512122857862069949407570606694156071086397186064857975412708817060712820171744001422396686175956875790222422161738198727048479083900472236203746651540862965959887759526769847843941914141915023985389808874340815010338058587568584840404093644645267806510900253756352132622978039541435674259973300478086469405367289990963505757412741285017419280319540506252097608404229254760423243417273590434417698063933603500163631164451993133465205662553310098035982746238362752330603423222860381719141922783546746419303251075707406689339890614095088520662207597244631052046130663956079008222479172029751989793725960993359300554937032568850469213835263392973112215477227454652130135268441749514449447802452486837182769682067248007649025076764599039301092177181042855982933700171569976200975026441836448713063960325463963249655085162466187741517153029252021001102174081809608726916715437324152623514456384416588354757253989742629097552618157128712319440345962901759471103312556668344994645541784738289068293721592089297156064726327101454822697344866946331698464692310471354722298633512723706774870586858253714695779288568030972145862461963858772525328730482949417548861079151445713052661101687366072299472011456849761398927603711509549346643838162255735520487376771104391058504265316344779480511539778963678255487801773022420380210155854647061499328954921463729328525298973661905939584123847161454278000570677855797013363784157189071035446590867554582624021721307233847834837000108703797039679727273086760887302832712979648785848909540577507377475493109959637036883975371208910242063575852351986154976989999374361817897504598961688346240462997719957732213062442371197993200025983520265374858129146501181935907444226285688674673303124322401163617543509506086323542770612347192740999667332453902050709728822952563689013183251998767451383249014383829749452501126501740676238624002311171941912355329767122356993540878355687124636943890520070149599263003566183872046298124348692711548080777167313445631458676002491122895313405680302605769027717567437115464451080574876304467181056664883142621736748571517967446034158270741509685062692306537603098494330583016249170470856855002148971662136547413615816450153120574191312422463111168229241087968364947158979620829396534466524514902091815903710823234049446819116137186586760488750189679430639804483231614779825454621001756766426480024370379209747452088534954650624143748421655371719182221943265777105887609838072036756522857057149710220446224523797418468972639046425173475530105787684909677996560852177547627824109334010237609698623866635580496741582926918757749620269258852330402400284494777387366245404075117592164053221180698904394018585159595089675189014835477305796484405748434622603194788397963108929332560480889974701749960027843713598607374796748125429146316782168589398239451663609044710517553525749304967105663894691421350189405255693601068586415322995625488894158277905361878009427689559218433990280060136234240046769189048877596813742017109907833246896612220830404937836002728659847273793426954906490262651463300455082760472498315727401410940769182071093212945965267623167174127504709380530558112308635522082642897928473594858285808540206014839937596347832409033138036676019616050517351597033154256195045160372102812323988078112780271444942774207407862478615868268423924172649309152384898667985484159889679195466405836876230725945591184773377893593724469825736316587029797735245950082743027957266469739063790341616471558235609934736994361440530660028181877391025844662818583142982932943492826123995500536272954377824939436334149154939049891038081005715185601693073759862007975050303984644305590335216011289899232845639749351172577258979823579291764874092900195282304572486630598362423280458650385616715738701975201037838511790423017212221974914991552761867506494465052301349375351043532078455038510721904274379189607626924442079445297808436082463867978101409136166736509119420162581539855509428178014216448700738736406642319149545700246798597566384059491493208409365759119512761705699678014425813888537177180257677634243308630167780658241977415422261468020673343220796700604142823577981364306886485376400921631061905862905575053603425055630648496338513295757515708427583204154985754313643111792912714254887532778097241573181286800184491926992925834519331611857401000354688506610503702512576901394292123064294378749369862694567212158049154848515768806587172753012781446804981116351731683182593693940933907364204526173102366312499937907428250391177400879883518831075992210890477300777877863532013886737727739319363231009109354182232405240346207424158754690147712901670151949880882502153800204569713096538240168962787949758630441041022126613508938830286600516747896296380473688752390151431490951698711759116198615019438947050280592958299479876933459735622058780230894076814984472393594271428082705908228274775851129212687336036432078984999358412087278164917914453920365244456111587837234824697363263357942608694449791044502290108274122456863929947243962468575725354518250180165026230098626749059587172856517637924812162422514331824121771973299093055375256399432628918130900366642909926573863561132998889446666184609535506594674678850505071261919648238925822897764804627633274170522164933624541236934587117090788225097405910553172472777649007422911369730939517299584565146500867576168909061374524959380142243994719786135491088194601627278880776096995272842624913736978927480702692773986605927536210316158654242612356165424044821124462274644575357403694143954729528937015481073623053289048251072110794145203457769193754775559829229113403795740702963435054875385255088162295246771327766716585323980130781495371669193739867187179537415771503850963879251375309739359566085259554247431023846828269285925737482389745758540320295376490921923564298506418298848456239453788268192091507099878714857749377084037555939469564720191792668927069973321760988735968824481299710157101789877511663723590426215680782544227274468148258979860996007361350125733923472876036619519968076444648306625665430069264372432804479878977055703096790057610971675891783925401672187855735245584937425218502752602881327186558438127224231626406231850099979393751077108387030482888314106847816584457795227672847489509552339236660416098550898233271556490351135200434056976453771699685076783643604085160687925980323248243945242564901579656610951612542826781851742051593879049206767669684281710652366604703541543096887755591858216424183719618859961366230032375885810278669082354729430448037546217491046623798701232381286044253848218758150826716119710816406235778332381140227747246135770016587016543951350552445869086200418619987480400930899296867671168552442570849745903875990989003231392819655665386748347509623169752373646103873544197192897229226946994236019561428780410904052946224109155538349141998514132703055826036478324260988435383392886311409889176416498737228645852086551577501370127895158875898780902104949671510405783440086857481410536154400041121669317956146057238527954851635590201407338709403038255782623044263824555828556757635563935071936707483439592322363474067202826474773389622120298398455688324078859691144738773234552053535081277971678197240812700515953877956814245060883969411722825845061087244880469162074824575527716664417935835236931101978555438457334841609803369900238285510765719700452059490722938190288796805538613088682538246059582252349285920824714062588920033083936613927344685461561187023733060191026728482365982105940340459471133503175056162372048757768792693782705526419983932589528678872908310122427083777689245217169519048825605452091447713190874177275944486736534944507093388728764898478714316168304320098416838333528891628532706872972078388539661101660208052387577210692866842789637468223720309097694208262934570306711603079794036042490008454415702570350334950087341115127520245514475823839560839613472603675903024595660514823258130898664935118006924164506262512618334051043502499908316062003942900529377825228608476100298167564745500681937295722588688374274651600962305926239328480237960972958359602604766660036064137239304177758899266001696146978274301714568107047847613629461905862876811620243703793348464701347346289036675879266392504214229363467578225019585397942596342560635112614911221396628937315479583923499630359579171251885136896651360043161388589617489881812219635812694864392226909382074580858440808460105910904974333307848411245952735737679952670375382432127910258790346304322527122836917189870039163053725889393212927038928651251036761060822501594369149207572559711321072572893445595450182196630610548802246833280026518962813381500500630244433654063049479085534732803939481882820617850539588199644521440838553812690656775905812223974960734149115840477948019567896265619309276801096572075418344906285415656808869255030046704932614817179491416332959841613549369325954413223326246057068581817195339180668216333324234224028791907946911849398086842387738950901070735704841425228496011475874139511758415252064268717537697447733746721003733822452829567426178083305658208248472655737357144437436735481679296177841666279093409221034527269266524028371362571866362035521308152041097199908632348573345536072806977457968387776424093215063783552590844493906551771350175906064628185401723772195933677358006574367569494803983622253954575406365017980308130329163038102768223081656730047073260704881304935590141437017579198966235461686514553117119317947076570940569662805247799103158033563047911098773048156225416372404824038048688441489287102299491286651836814158581405190119978993551987365346159813590038544644309210912444675280846925932749546020108481513493510519244362290025103966288919858308650274731964626694937701018169353066030964273647300293393973623934796675690514698856530805046182422338834928926878415074223233810403421368687661302326905834077927858151858382869534657212162874667780485360481190002223239379316260328429071975498685589909366490075002530654210047645567461428937030351542777516386969402861276158472497238315280015852424912181859307898527658980597975657564556355980177455638139219489807924299781710823534021341929881487920436415615800978334513359094500542305455878461383405558938885678276779061893932293789182994364003760980482021655492713700884552323992218218847081834489873949080405527860888503332901941121594749503511970199606314138817513707150975951004015321391480024945117999286854115300001999977591260207713577832389391219948785193436281289166671751286780978390584288331503168550225857453528512989573041303028866097425939146001393284353010654450635413691131419455055223998819729817514122500193301333519971760828031998504886780065164710065174456638561294452290796870991420827183036191674840815975014158986229297807000959122849748038324235218876616982115792847213802375070223303866981495399725905888226338316144597074135954633909940789390972512512842190078252595992213594130149954021744504818835422840417441940252550302643706669159896653668278822179894080950805121895856654918165346986353374498170927529633524620134573255992753011124128866346910882303301875307614115259659700633179637208760518927875347491726742294964742199200190776518131938241524233151187457668506601684519138639028605069490698882345734632535605892154417206308735377521073782242470713075845067313566026499412713409052180264472263119735730862559643449687441777451801720361103695127439191987011292282175566082366964304222403344147149513882201141014544501819950089273533503059986179268015708128590296211083134545896660281746720197453862617328612153262583777406241149284220106277447727090939730976298308929083075940010728647513831279900963489098962474179236752288184824697262881489721561151248638006495633307121926432140233870077069688209069741836952567239529480299551013539224453377525100045254967608800677406846647784486955521449638457153938024184177987068365256382822169178779493058124441805372947674488085980403886305079611113347100883138740195554727350198937433690301058494305411504533009823122405540262366277584435607418936656337411457185369186425916372444362349583009594633612050985639866127755310361733061470640252662978621846099999008739117986282066236962339026939170937484876127359219523191614291617344618926363876149075226251979824695500785808908493762832888773689980032695056336446571748175727180652077110874512528231263440130955289665871940458459830321164839936755114811405487090141508434379493797548945254683123150890050146850474158378950695555414825912264549663983286546227973977349048440451018918133840039748072391555348633923277565052802747019561182794156528747717186244159397805452894065650419641578549923606415362303706196814039822389101454771316073716223680988894635777670540295105193731027639802026662113964525218880895938938894356847187664124620312904142653226370551348589530592797971561892136539758232196371433735452621978197106401098205951273187132997254235843237286062981625920338049869477947853401325516878711601503198329356531756633343614375698389407590447226183462974276318981318238977622669302738975276168376143569131996123581542839757908167085785300501522007818931260104570941105647837443553739145521218727556252984272305473139761017309149697497020193434686409508054072170305159513177474933971715782949250617304986684291507724160654597995203860665892383175235600559191496503678600962690243803808967460573688061229985131343265869150004771204454013587795006789698892006754199217472963478552278196931166752647866142367529030176485704957265696037521014645211597024140465746833213352534515833087868015577239728111014055366354905595020187454696872718547089258209742434115440137190799416035420608248908978354348371198106898686183606749612926979725682034542645663462676280428266374559828275170630473949511663345374254685665495007310282444051570758474361797420968356240886359414201181834919933065218019282785846860164187220058384660503142089776948798557570421095114910089320261119436599668754794238318471840679765259386086390764508542785613725568250318298188242567323276041478768218626870904767327474780674655576392895216883526950088968399980681265331921868573585355717115493801409364621955450433845462450517000825847247968290631716221680796170898489476287638262879616966401143328478399987256188175926190605922396352403120512749694009799866048092959169616113778203851175884537088058033828313599587233114653418307249658381200844046213461215782879712471388302916509365488774822968756091998317719565318244611782627720581351997125520209366113407376619309841000584036028471433455899300259801687590807890212389445038002655971956638387257049770857464865168404717127080246212543184921993481675746297439078045890594107090103023286907125961099437781307226347552298926791045440614839844296786852896794978366019636079626848847195687929904302580981484879952448646810325566034421802438662778889688782366603320873458510913446635718667008514761263091721670302639116158042107632655737990039502154699836160790706333986437598641087540545331227554224634992306590609961675349842615585121452981999043392801738513259672443533837366561754887882232638074143068567965278380757623861774243264554683841586841817858491006241214572912312952727431401943504747723519882630372462709112411007320107803157321904348796829343696460098595311085021895643571772192712251663665247640956486097490352929630752138366968374991675283157027915576146717081568383849446141355058467003925031724745136573051966843590314608279755414421686706090178233796147618934094420360035516042968236645867298286941616346950132967687537113039922759139463154888407930082159700803025519175735858212867141760589003060528426123673210215975347059411633819150637147228660552086388411957735403349063923843910455516015974069274487878524353757130714951251894219659705450555036751259955571503645792103221606553854500222649078919897135265926647642969539682121119401694485032210744898156669864396171490384273050393286782514312809859092031306465377757781340858043364691791105093604739386890867775080199697548436623959904621769802196012193324512033448840763953335380631314269578976560612610124940423686735047948392436791827817852772059552240835978579670226300890140678763217215715754961205370399794680265701687889675545393449795031755143136680504437104717931031042199872556360763756074237223851717880097912442138938714847525448299473322566802941541869331015641504679137682777570203289572587928098458318955983738070015452621711511846157315701684864668716610378130497721961622421282682140972817852070232651894130984862322557959351877834870621007498011592502687140152235995773865820365628877079256128630645346565964721854872271369096424575763697528114913215490146844831766139025219284017317947329537000677159891177587952152160214798533809853194371612990737337263578491489879935041169950252110983189342854197449887453498150781763880024223758029064843915066381514251045110636789703138465052987345945362839545428027650127618731371692329406750538632413694265395268624819411897508797274055390874266054131703409321420067756093756638544401057973432752631095494666718647527339072557332871793339304184386929794446674063476333525007651537160021196975381597385090168189290896115957149027067278792212008669429599211429378116631114815064047854213974489100310145030679758148269883670725615593353855835003672671510601284949886521852961145095559881330484049904564026924433224102692960393152163257681503707959395716296138895869366300794766418464666820059592390782685392044098827735284755226162624558702112653914306793902885695764113641468440357432918809009446096273849854734132111765138405871709115821346062757612122658549072863587524032059078243493850533853931109145425113902923003695442679386802721382410240800486222207429318568596968238411406493726072514944998218387110456313884996076282687233947202441358275603985744911678964634548769727343259425466905106332933604120283791161156070740216188814218271435102154339375868063123191597151115329059015525544713977896939623003161270540268807381096657961325348323610428872739631651676931846926964948300945168963439823644719584618291536564866607022273324026408274360767907321459952252342909645998916494619976837477283741954331464741305093267824802204767157579647496320806337364982479801826035731081915119909835492860396731758231961887497035494208555932317040728186287409008679893077794985671884189281393097784272577763237060092293390342378459565878755300499686849819597723527076791725312180552154717884657011834175131085967223854986348414085144109046063625903291537019062521688305387564954433935620231411184136641383937982216759734759633424903029987713820984355204473302181571159164349350909063112699365235035270841107847135314060861456379545856556665105771532738656781547933627288759720871868039210333130958548310701658823472098627943706859358236832264522513057643457619557555475233747689071457448014079471719655040110131771990334559097985631148696752880821439452933157556069000264905902442873394933811955455337957456782512967526892239071341389156932497242509966472904672435010737363161186433195811731657159615283471535002969224551221550615558652849255907337260558495266644619012391089208631670449022564678543028488921094923369674072869068765978619438287918126969941058048225473389106538401700574885712507787090409290229181639901421274984351248813732771565016658096078505680320996450946198767474225634203232678036360707508671388986563645852323189094907710112104069759690236667020603398319781822012347840354952935465900221527660555328983179884222529273756851874043958005043465967593091879625593251183027032526656758290129778269892525091685213446606377438790520616753742854420430652212557306115084377254683287794477945429250779046138285191672285019085629015573225113125894873785436230057043714973378120609632542876121955178684640816036690432198596367325473945512228247121056205476445090897614287361398148505824426374908975268062899087858261509644678949945518592117028946581005106619574287289170260316640915769569250598432622880145911273283348855498479873164819815585172196780541294796017821676051003014146046558542398090959091078320452997670588641920869202337737521909614355962469755039829267364094564916049077574441106430534295960494929908850189486682650987373041140290746466525526323085306889130391669044134141857063675286699305482056094741893661983250135073753773434605729100501061993298529553904405805977683321489373866932266910204542356885956169187303312332690886783858955163079066305358328863747099152843940654536530049733756502381660700735195110579792077398827913460482488182936442470554451369477840612461026189498646724611444662276642927311606946318547412688298268007394240476226800035704263056498765552559787601419832987060056194320604369096290456810381063009544050190638767910071816508360393543695691720828941895675473891518838942956526484455851682549130137766066578965403504875321025554601646229559257167035454788734330276054346737203180571651765539177907022283772087270017964418562943420772291162433400372917542898227594177862102630777103969020028781850339694098910361753797072846774287537661869829573898110593492097927487005866727287905698901329751010520951595219393935712106076900377559134880627501787596095298143754929946741664584707574830754936447811566581460666098111370882365982575967269004032393445295053681257182366538452683220505367176018556515067182318635932798207900870894650474235128037035452975899976254491671464966902627247184688936512595543374805127222196146086086850278282746540060550905892439479471540843565457049185317146435083871780974839366905650284756958010989007336403380688063732720942571119041233294045754653616587345449437823334772433119630954306794967568778223851738255992138037165169527694048472719263700535142442057342081857675131381232685810088398013219579567216624525068485823200002332553644416015277977545620886687678543919762881116678948531431014258210748266680131389362750843057935650522789298149622525686824022117541359321416542881903326253831055997199604050182257137641046300021388838778574653637206394913158332547035944870591850642479299316916663574230475838136780637540905775318119969716863861023871385001050169705189456401023616689314370233919470320644870682723050150243269963960887507507903709283251567566076142452255725154135710600681018602496361772086488236854263740732255887794475466765709104427577070591084196199836839753550475569909328312076919058433764690665011241776532154595722462703586601017406957839795759985749625863020905976964310884906238538199733530248115142881711147423905425134246071534041986003134849142246535086283783487890798142452181974487392329157399100089163869509253805221387904338367171736915817513862823919121876227970055242990718493927790368824569145170754607811433393796503839419158369759024543063752137139074463217411901102823847879613081582921185606077997720253673797289661037876305611173358658749556643038871836788533248507628128629786208896794474228436091412547238469112583628586821929428140343414033529179383320162297902836329996787762973504211332171807555935614212229902496492732620059907603263832429077833908906681475863463226397251018491372468698718604472409919487705954398385753170893852524191746325264936774690276336309970054604312388669072290907511950985541196905172673712474703733486310353502980832789878980543813525768446223029354875055934987027165966889966649597869078944794266978501748655148961616100120102483824470689387510911866214830114236657859061108095261047120253963350370164890038317005762904506791691892535034251716353868888073196057415489525219055425608977287802697271098505047953112705820123198610016187480996539016379352346221093318007403917051182901472226696008245492246767935280546126823577052243834292858595271447449074819073345758644974087116668935719084911298020644355693413195162816516897070444679151811734092492246059536689698436109546963918234598723664605419423992889375467402529499103920679086309758517531705160247140994318781463323854833518750894664883911129993193748250697168940853222431935256972246409227308885032751800214560394223395226653745379054709699847380162723019959343392378114862840973304028250394090321474864490788176519987029239700704744648545900637117521019792924634049762369271114493434615631703824913113904503637336217626618044152385496934278688061220587893915364014341408148663837094920234220935534601962932167699213846892963452470244074632907685507426755846567677048176870182481356788905775204732456813741818487926133011361556238039755242084471133589153440294840067596138841141396278670675935371731013691159537081718100933043113166959396066760400837003964176013900289749515536959753205462604034585263475504792100039766238577692720605109049013201852008779507949560872319252351621065000998168678018877623715513984562677547878663671208545943347100720803163700973773720201458206935429213303347449555983683231869987147436133903403979833925249232435549060014392870225459242322147702663137904526818627380530654376198125345138621696134819100125516431182894490259396264575483773511238831196261368850522050730820844971542399656602353211353516870752109169274458968309761645827281331170540210916858318360544866128664236714665916238380534261962777286445516641802350456615003113703090984086485724031362950972003988176322781907056594728221825085160265677235464464981993905368379844418948085341769194634881708815716114047299282999212925423453117159482096414958711080914766886526445439079041863659779326299221900002848242983116804153417967591525200495859015940463303605963615550546497841735472135343858042133208625048317421309571146552414405089436853445265543506270106381513132431279421926585741961384978421544721015670914109008625461566425103209699006581717185505692527174180212476885124246148714841743675058311115423932309457289275795768229570934042763588826710017756607847385459871119562616945619679937961281549689608492785753746933266488477015441757992575067540584636765370030464399507340893779074176483740835229576316774446032886245303047578785906105083161536153831026443922860341521125998285911848059902200781587589595188502795378481576599488971663081980399209453792388259118238097419961521638753404638112478099688723700234940274631572152536790802661847292481247956915968650194653249627865421200761840929790337872866519676957161827636795940037711399047240283638049790567280246266664646800099119872796817259682946201603369581792318438443016676418476955560487242844371926909942113650415088154614877175239819319164879918504931466757656118637960245020791708369701590611903028057286149830828863325398804559104756381917713994562051278047022370348355820973950795844692038345512524924329515423961604494735131268824703222110845660408682633784817933750788507028403505848001607959189271778450725120555254276423220491409493658088662901992715816480296145976352213802837505764937881702329279768567786967125482514817897843809441081539517995714766633158654271198974565519168188355747112974365096796078168984732734635410902797229560458625898595098914507234683864019338317042965888701368128597161787201856098943571947622135386572191997204773633531883438970524053831981939495066078946145568527244158195019384990531610560877420770076445082773356302910054161427134938864253759117690486766661613182374218059801029783656524198570389327595624775351705826430252764364925476680378363705499610430303681289922437889360535501728251919123036443834091131234894074909230462341348488751145318247715884083489208660529641033577164664138875867853684654403883278616951723178285366017537877594296039107732908848399691363028143094595643982856744087362378140758382448125237246153960119524159038686781018522473640543706743311341029647802556672892705864512165345828942652697891871354230964540535068587470808372219099602909795108612002774958837773090858867243104229425234121883028625870484346812172473831755290779935556905006613782470429377462356398156289688235396975395185537573078886360359542229265230180346953235208196113442373189850692536424221746459541617907569661131824501802869326845165789250708500849633509599009674603235254260325507537945956262437143143355245068354359608604065388657275595528782618355983655994629469749738106196472471881183260233214597142931340454229039046922415687802990953232876731179485098567039876806701271275943074897160253227477848084723441327988328752260245459406690124800640868379025404811628582191093640932107452351391501251382430418689283242574665359411959845204038005732302181257172044494258547509560244758018404625136066699590082238298889911540009079799572932067858785075204371365088578871904899650280316946571668723954247592087242886725573863134182375667805117668583454216195779077313742366757142332648591840954321286504035503714260975239401269681047301788167486126492010362466625054202654833350478036420280351477643653769621126127942687863121169956137522074777785877848775714646662940259789081037772068706230960965908742515033556316924575099765861912289514179616667755504619583661192530295875463658703966534064270719217848749754151917059649636660014841979178567132500155284054710357185392813489002840791437139501420494312775470186211473039637647630315938405734467998946664229162119785320942993294959728405065497506278601476503521525549275741535531709573124661217359501790598676081858213179161136814413707086122948608183954109851210565028492487951049147138875847165156093841658310549650336457106276668460219112932391524850224896145555438743285525275420327575414728762825475981230652948925296009800903850268921454912047923006262162213235861646424514991206056384986239256120375523716947969369515335851544071891713293560205626492437818807039276391430577952132874009893571328318109586149729485630172973480022380619967707081250376959906027555628588814081428084806215510904898628123062835935420852956666536403872983390533938062900338831891136725050279586461689110650061525739912068044426996921027240164252057139644090932486507576714785579819021246625343670749350853607805373597245793093027547728207967362412983833900675380130761627237784729747970438355529535221912210711545757313782303291592648804511372345417990895538537402741277428580839537498689390809891352008941987451385056642185950802248944891341832538814488931422608040800880210649165552652185099313829960665050098668193974098863137400953111222004426855491617160739620782101378666748180452869201803310671827459456421974011099851003827162458732579241622462826980975051307151566370171503538648003169694063524799014389768568329044381276228296436655778544237910068687212445804774457945053890524844263310681147983270220586579291156540294036760858509991506423538047270515840486049422105170637035836202318157574794432583362817859935962222047385907346336277251632854943819172368064289256682148924815759661827451325961303496476765853587155520469051418009268482153949394379204390439986799154260290422662073623684467684785548752838767793317281177249874352089658276037317326664060956691924713269324527171947254426574837938633409228662932198064917144263396181007697131086009431802317409145995181442041178342920391992775133959995755642946429829805355406768218329534766619879358995264281992988319722138350445583335197912999546860175419039064750000450254348265909463114693551940005907777502208528607293084709054509841825329394313143077962560222210045430271401939319388823200870433748654211411577047139352390431065577175889673733660832225055507246611528688974606819323866365045075549165886662847621920234293145604025233653011389793355202400237914656241758573717702589180542368000746043843841016817120198253535443036871085230892465295621750944461703814028268709665725962249038339316791661798601585117138510777959061054341002738489503949156800240791075008428934202609043801395286759822085354551299614165506271532602260770806275556230832708780272326146335058093378045361026931726306584940058689597341788873762108092981829389668634017677836261235877746178193421644636966533052842603468893374854814040453215817721764423430069798240171332676064835602011207321666190181051536254929908577980737722667303114192574805022328025321036188486293145798312638211458573011341246337213846418193584897814266695065799440117456518598588199892615272569082711560756626018859247674792273644058596305128945880126204768358641338090416344914579214593573653487187567346550664858291095316730024739801191721068017057504017846802368227877930721877943319117756789184225786940436771480882756820478327146719179043955565937893321018434865942546686948899770493398287502571240685821695789817494782633419735196796815510789186215145436957645579412080969379561138417195429390979138733141009916129367431386546714128253728304896653150518194961168934297218048472542380834583783930782220315142192715762970214735284277973320790628621330081004877188444456658044875762504705109590040330486253191519846929997023905202142955920186617515156887607117180774738306484719541954178689516208031950195410601756776293436646949610110208201899875496984933183363702119079168489791611839660786057072005350647884242039183053578934682326410332766527753368671029828075041679578450352513440415775991369152160438995735186245071537005349479218815368328953873164494716686409529982574581246434259167434731034975185085453159202946147422579092708628438151102406431302176660269550936291554114521212142676730242375592085993324442133019379934624328092250292119723440877626400000892312750418043807556315772787943537632807805137799099370565776099504146620166052650632580433399566131672852603090184726755493662869920551081431414865869902969952841290034503023579180905618258727333709625487179154754434318073751043528553280660618137878956035123461595576734617430741189406219269381813701732533811349577745988559374834788121197648194332692753821994159908593087253510838013264453294919932687429881497618389359584803798448749378165409966941307375525061486854931311280660275931925991269206818206092032778431625386663280433497961730688930474923639421950636173085969510414981846280143089740964077138720165210101477196650451946460686918109844731090700971221136887738392328610575739292890916462888448663238693317809358902812033762376863735205103528895165921836474178469254652376814680594407873966342920136368911552825657957908299137900419621103391527425274324378758452283734633607798565927344739868309427905002469973817971673282098520741381696426065064328932283759875842463623382751852510611577766458333668522845749456947721167839172080125832797369830039863187952041890715267034420525597691150181237704055408136104581547116465853650331240974440609321680304548912447820955243697930009243377370258571272787470648869160931164008044489533459362542783973581749461935429551658869992714072752278967184613179159294614159299242748346019436481453162788152775423121540834705951426365461539233903247856062884644450501209386272980900722666737458148659548625636019035373655346407344698857560408244338907748700732856283225467570345742106600127546700187831455320838306980578937918180122763359078786425863835710732949313574763439023781585250202968287503642383980759836438953984406159221607021243806634953728036162557243263083284530478446670271656442623640466202923732159874934524482344164023155837937395085077836047539918267156223110210689491197657696426628058901216830189849278490499923746954451807757705011120500067063801357931083700579193743347409481981053736233743536182315263713469326088608705133256563885686067067439491963162962026745973053063186063088638684450164306910406472388797936396468880352457352921007192061579531647558529576443102104762175368553177306008513409416083837054592413746188195168440488299533982319277715595149256236061421480004192865453076880537267604891050992913495097696937446474621848178582302166566489059209463072348459549818202240110170465832843107003380241790679951566019077240301506864324778592878355172427852514786173495753778442230497061680592004580900211976132362598571707737372873992840798546616478505078270815795090386434214922716341951996400870014182372998019728012335521660251606296468895234356393471169717557650092565581322046635274475842402085113127416271450725023128351573529420399510426983948782077680195795073290148270402888905014445354712214884951268750566053669855726575264623786723271654466644431143756403272662783576437832300332329768753032290581373402571629847573705146796698069634165609321492443712126333366130705370379666920140684908572450750789003174739992411771332513517571151821187207577078652699941221098113843312753063559453175938319297889021521555096610801166438456958371835013283888462045249808847027289807065632485261015720829213981425276134838520430606021204769485643755264180481269318220938555614881309180610783710166658115669432457554547333995457757321725164127789187958754896739246957919642989361083034533593708993126367629268215294169422626631238664665154071679981442154870777426932264608222016465145936706471335565508209062738649864582198386973337717417801587169124150392359770808130598577310590731105505678382471557378052260569509920123118977834996873887899046464953932053520434542452792245237825589205112891478295365505853289023003907237291211943515992905450322717303995192062746170800808566882849488382353570219586128472766009875818449845067602640623921394936002858818131684049871001931714360150267767569016766391393186145242670476202854974558029246448118839634225904935133548085717589920730978871781561495575449048080329829605439490023073627582413110654038103137209255135473794499217694954347555090288700790070554641238199496044231876293019321378491821139912859237382950270260612775246907025332037362403231259033462200883457971676188047518679479093645717725635315090464332705649440935346341642644848581333279175255248580607555415310348543578899526877385432306042353240926627072473294042913651360549960267010335025047222700587334579916720670340243200472608478556412728875698592975027966776653840485086070069211671779996279119232618042488007535300354009421529950395980364117591628593027555450745484996506232062022873823966042882140928800828427435641808632548125639947174288019961380928060904867280466988983427090809108490904946147481148581733179426933278469699727950778421763719723789561401366972424403234186029495657455408102277714494906747329193132610391805612587132126237683208640519208532317712505859599473724471136180235338177523495459295720602467661861597494403143221693478218792961666627726807493509008072686410027231447853346844111557656805197220674059804482810762739901885464462556138982443727137560850229451636466499531781335388522188420301574666173833838624131012793945626776409436803638721413610053830207839865826104175261370708744590050703156674848523420372574767334191829705366218358380796503487791074063591154375907210800976027694595864694289309342571031740409307026260415015950336198001467917286983979841667313328628595438667087691321757136394254252887272645486176544200480164653682114021388235078349825067800472312252844053771789483043912522154414778286445551558036841406066411919046206613298740478286035413651884115038200490080270238975704494808599834692155356066446042924005884508520745701256409963608239029633586859837605317653555142352168810948600306619231395995358311785486876990876624961274680718616882592241017746522017603452957229203556189319893786359028880387014656489793911502592797276819558423578459307421105372049964107387772276767008859712188023146179285981662720078909664871050116341683832473793734728434323293938126142055699694113641247865143903740332692024460917536578476762017025673547105613861507110960833491654639184653673930414226668433033425802236254399558473885590467146754094374666863178395882530906700827003463141986946188611827336138532218785114237654981095376703630598383447061773540527884707671006124680246895356184780265447502741687166393804494407594676574777722806098522843581196082039996653457920378498513284897765631909813440898613484434867890977512293730352146412121606389220583402298446901054825458371550664822975261820100459233549103569557679527075767635069036582657860227888430966246354741787337435770131185320977785751033525932847365870374824685020152584748607695347086549940651120661533001398133879695738788433831962603897146731798293660781850457941333031661981960133067714064794951890685911333502458434572022822355355764901284512408330785084992927904401636589930593362258274024671081694383562927235678887528435376099206784401707250478608117151705726896782736712190259636828927810501069789168066902182741736117841887309240221144793897170008238952313983669885060320515977552830163098448785120654729284046318384660636484836269320139951522807220578512474729052812425191626343549716668613107729236362777076034329751563022040489837809827402397170851615703064985571310695794816971346010740244538699950478814938190305688849356413450285355872282115869093450018596555120989051760731595897366253539225001169206063866904164800154830997683387090943639284050662240923193121783401469790232000942154811927130336540881447464161445463584094878099860281324142318190093901713185994196620235428677442779220201513653063871568831657338436117332776557449044061347315618600854639561957478119153361816193637112920534945317722109447911397518286886603429745268797866059019754188455920273962196660756188270297838186762411949516424793939972035186882931586239620510486295694507433672628244671623036916434363314562962575930769956650080230259967486017263830898212513531996972233002442037391581456289083307224034090397560673913480070123330354517589721842784522636598607764681988867225489650981638757250050181712471269112020786645531137663850770858046197726424374732358506341124627006708392068516025479182204137753879187346952260038061836382894278471828389224184902411527260735554391540495145453177047110032185396421880017804584978260463086502946324253261963929272955139861191917468370767916607636072350560055919710484722437228196470220041913831509900211200621841920551504003323853333051279355069342022943940013863587636635086604366905378598663797224122849024013083362084414184254026598746770626110900862602330986584977117348148097754293234086373476379745074297090390033480349699993817894629423260087333961620881235111325466265641936671744662916169936735397997053508741218821170697092937326232827373250655194831630041663050223089263064953143370869378720966422230001506815795187404148230758006898283404384282042720520119134019953832076399165891682318171767855800618284531490698954661707711244304456215525192241117909300100376481305856815702510746871983010099477982201195031241217971413119407730243836999515688414372716257381305882617860476295359397807616439099008299333239239175459064979920519687943933602935607792602185873550312972530830513680742240184666585954346856547736576209327442476412447497412428488284608948734283524050918305777008240064632005477440812611335520596765434698720768217778439716741426846159043459867466360745686523569648710874966564479110627273686707358170938828003717740935170691274072171430964181447214696177746021056460120143906418041989335226903677134278517380525193056538563793984674187010074241842395989661895322681596210287669762646451374217182066814154732783674986940469849354798218734053449182062936835924150077586919542984120966342053658634377832186129197867004553093394585773845877908062457925834676621446682975482235471295775060306148889771417020598875142699456872674234893411301609626118633689974081292659223428681488673070598300265047455237624511514267931844141618324217233423914458559623946251177042105904069995123040304664775676311712507718386882913407614124585958128461045868747504371771012395370163321371200063709853017850450508766755955856835579148463747519815937165091079276115366335312878798362860195585441943244127784921301094826802216408853526029549305351538355201606362388002461005151996311754564187378731101518892168806478925093715352238830732352158910853742529926671089824458775322846339399698011347716444337076901332506047539757496597066281267660573128584831781846059975349047818678989703868661344828337265175008138870180297614324961097697792782496983701208324744534994082747615813231001790440818041245835634821168115693402282249522746922320729329517670751554704778650706030054119707669537481072433449568673605042223996990979181070222638844594099828149424265108275192264342198355752368995235405118842799360657942372259524207633952458401897888367074535563356392257919785134150889650607857437584710943665266923834213880440913744647275574676800861810057498887368642169406802181270815729261284338256008530606310847621203743276508353612847028903144021769919729631511742825564891433532169273875103341597873992447156908776184820705294929063022432748613862107788237264535001013753318014621961926358887846018370893415556286971476494622631894375747440237195484030516509990329293952883913074092249996440777937815244800651619142897226743631873811355361701838366121551155839044822446953897424324458328368111909890717868587705681911845925264325627289436594695136548718811564911496715645723195520340918579955080993546831978222041159326392650195204130113043852988246563906665343581223130373958909556118741214922873787703293711432633144150990797321172963731135045062404785940946602125890481903459782516994171642428998455638240989301640169087970703729388342917550367043458122067023192624067411169725715371127548931600443673784132575124858645711719072828522651713711033348990457568650757965098829986302769030683886985221557865028492541120822483606282443875406365935481237596363868749962447258181479043246973928069217770100064772752716457144875575757643240042932328340125754581319484598132567620809163633293816798335026591786501771989580252615108480554064504694300174903558540289194004773211493803942634971504829615998806765779376265664421668034235170219003455481742371669314137329989333012756220579663821529441628317703770998402820738241935033072601407297577007587848696067795054679984980608910448386738135194831313333724798106845924120620160854024270684430975884048935153156473017838065966491849054740321232223410009760018183319472274968590724849160255318540749500599537174305979684279500154261485320542221787823832500066212010909320732823400394202890935077768410682342806164116407763786717945914076628407860266393139708537411502498109020334863113204323677745070294271027458071078701723813911033060237262072625367629245867723560794867159170746343132619713819377956432314315623029755805903290380488152346283155255126882438343612349198420122938180795250815728777412902799212835542529936178659852590145276575968728070156617737332422584476183014088803324083213904087765846905212167255783124750298686025645467416566348814452564393874857700929077553406443899364447155673226111444513576445088008230119090662168229837456640136382739045079773102441770734626698300734313740366846627688497158493113768052424695032664117871689843970552154692682427471099592782717503651112756089282965122556587339408694668484855492045338771956612857176270836631291836866227223760036189118023132645898595726786467849962944017404931951213486234402944553945319842508374895397072750162645868396555806114826605035705310777984939113442706391881846250205407000063540613246299675756678716644384162017796006850385292810705667866324324272780723721190931482548401150786586139173076811042186133178225352866183775988284207565595907405972212056131655088736282986450654360155049431281914870015566315325187050217289910502865311298303778743601139907180077977891137493682792331066563490271855313900061977676425375083840667953251580168186796097657238611797071438449570081973709605254740101601554412321243526089330106208658541755853370726163866636755067964650852921109525254937501631127256214904146291011148859304314620615180183442461562844530122290713317560857340680029333445319250347556880774625221037346468294610355829527571845956739285672050855744963439085729131176744598835588971248767425299969632794009976333225676991164734065458780750942284652130195012845032345261008334005329997058472757665852299672573718420578629240571923793937846343919954189646375246564659254597896448905896758069990018244170980651592856959613614558499884306696299113253557236240323924530473722046224353545379352133948248905511705843817402382215013708781406982827296407214851373240812454831335933955235286121859509421084736287906427859785865661802472267912408380109921608733801343522633669765192118778867888769290155726243051972284241734952940922811710562462668500773841170591561211983508641070517908224998113355845655667488457868638350515772559718810650007274583365923566322371615048290007882233765526389538349939889990442736699344604618325126536912632084674058207020312909664768126673920870868626777741981352554544870367479250772618736805766851157485018615271583279897526009746703385518704628821341038105245123411861622930447489243706079988271093851728266621901145245629959100575582168401444370711255328971017728102540260903139909193439352800936911784441496470069534208375623773960582783272252787121683311307929171763083340163970740207718899107487014373303532406701690529768778009274134133963027741540260064215065480148337924565183313470473467378133660408475386343054204557543952268884788964660922688309682968862324170546328978423954862619585500730573818155034762060987056652467189910284310372735881230040673289746232147341907084486382171653339097938784174337158756748231239304733112689150424216763862891311710876090846587552222560906742790089595162487955213635929822783253908177634858150102500076664347191999220616981206098851164954978885624292790950394318611199009145396804748154077027470648883360942699644138284235150561365129366921258730275416154621284129683636620334310686723291117260531374227850833367936460806296887658749785494738680824104026410730777254494432520075746404442062187381101221358525880490795716808113045548104529483260695336851891547306235972020877667085175225869411519033508642205475673591730494319807233928081058378915195498592130508062188397814428667341241012863059382127912252414470783373071039598285094898443735337497233847971630919094946538920486825410161397694977196409065382214881975685263868417513012386359552990458081117222403625438571128675986403334019029560853134919980704052799908029609854556703054442296898018709500594260667084005259123253366117573073892390866612848469075600034232998186617410853858881952529257772433486301807893259361352752402802808152732582210366122519843203145346569545761966392149860860440241612302245437279905002244552033449690121151731212615366235422527953103259018139338297858920244417677600173456024088209941833786684383838648396214846405989635598993335628085567828048744549328157903929168992768353191280262389496541610565303919206186413265337363140850294441005131216089629717163379216947728375172209350509825370717012042205855371393847280256648325555195663889821728779378686365465966556312867964164179995921293540720866221151020272829455746439201428960645706944864338260793409373490914689038302056544400533457012687876973539010569550449504652134869794326979210211436102120959099014308616973331640567689760211739374663011504544951025314110135569904158383382069922523183686940947543866832511085835821425799872736297972292056268017854904167583197842950896244651659031846523583919647918403936112537035115776862413138915080455660039770190375580979182302590997279261096373143784510673661821161425229283356643569320740642366315858170398005308659654075583206634388700585258787431180575324963021337128408583913643030536406649706556828728563231011138482523237502073323758947180445891920888273090753114517507186441411717991665581152959209087040787907722160123432202186182141403032134818542807609372856283155762641006953528661350886901929910994643245677175197649109519540816674444006246706485623163258858494956645570028893134630660450376912098204223518005247479965340325531486732158947152104229717610970577404586069321196881188764806489038828286677864130497513960718049436515848985958995339767547274589391614058502985926572292800167326669505480185357829260088444790885802432373609045189391770803060315909330125514295337172455173158565303212825889893284799300249634636716502893103171718918485386904779900433973131188357670094389339628773083953770649512348947628579280825739179343111366237440977393859642466847133120495467785227396714843689094088675546707079867809800388154413842274833680244611605100178346081913220697794891517613763391509142931590131944078829990580634256046114948662277032113710002955516734201800500144539686607589666333054898371254197486596503122382235023052182042929800480757108763196282108277089656054754455071864900047710646876622874447564033062846262328513940556716937023440851741982916206080469325188061187330879092712041106070436866981602403761383519573745586254507944925282496515568131223251372211107462382656215903411133706303733724452595704109537452220231896173903934187640750414318399420249543667177483086227332120891546169935982898845038426082923383824791019743312367640330490185166421591542296649658362608850581767595533782719883636490295101798815747839122307012001097615689958144737987178955706998171536240840606475434035497014334385001059284917232853673916842440157923788367113575952406305681483895146859598535261007395280932943753585843494883822894855667327250928838958255488963624126866329374018382992452968724586271678566537235076318005949387065103155943894467631144125265103663753251922589376093163516889138300277673263484038071419173028557611320859859211154613616391795558716349727112500039113234105069122325991967027350156026089672007476232347703609932509332901656073752437197244103147136993811652396498385395279828274433262303134260483960125644660173587674299643495388317261634785362629916477244979284208398641533050975785798547309881317843266707821940712182555919887968925035130526325965158348312408028661054140782892636500654503883373347027593736872440815658532089007379635989939230496951824429015823535563186082138201190901232401847019256117701104393852624753841531838609560195791811818244633637268432960354345076875636423771999550431068647930369751038080854262431624761409805679582429080646232911486452374573646325005780687129972857128682312618780932906499175772885438164030075142796300041214353457127379711462431794125083168032998807096462310959151150315732072150065259706300916447995409298718606605375645689015697431743163549925080688194156467831230772022694971707141714181404678609476565048033248145031551941197191389915521831554980200304118415912995996830222567532604958870098523614806893828416298935923362260609263969059192122344554166079397680468219615601081721117040437748004255881585089894614860382882790826334254412543271213695693836295483747676053003925115217835189879398735592377402655598918029420729624254536803045368684904004941513899891946760952480696682305860914951712075983298290035794926813318447049250831713460361587832051089726232360471824987664990499773760441950833636637367516694116950622428742455157596802076647801199073311464759502003899929237586496023270698354783030138567906563114131469972896207498023030258551293474140267842008630097271756713058612599849854096026714351228818491267562374457858444874065714629980852421730248423758844396022962911240478927775311565312163569708813613083134653735791630061490092084684543709377803771138538914328291522576301732107339566121281732310802006635932601024234437974046854637196228589192009170057063549026338200503022854816834660125813504600289076950631101447519324264356090234224697786949295783639030434810157029475357020652386458535907771188022665555451577949701849454675888019402730874002923770840186853593157886204230783351788743334528918894631627193320572575961640938989066724713907150632092449521707806588875165081698745771782212196432210482713406608324086172450996991028106360284370581856677727357297872325108792747615094408918541957829468937041861893888052192590244220853862893550985565472780164532719660029128070492753140182593794132166204152646924924087708247505290838515502303404712283042544397200376079259787828319544869725156497570896571379194866400063958293471677605479198933188049613623814708561871362018524206660311144048964867524229228975115603777034143023669353114084361065276816922530061305032955858490545189809729093463350114462326277800780493583357687168605153624054625461859155286835939566442763817921344753256695736418483154965214096119838192428659093868577218918224720589185036767835983418107283814905481752991678005611287416857140195748165486004119159999034297084282277522238778183812264873354427499817723494144371742217572890990826531622610621196876513006769787954784355856856706585683387264394311724540098832177004815990393084716522155943589386125261673133129691464500351572564426991164404736413977249870104420234901109207961654201465010318335185946640286359013619264919362118609902282954282341824883043257428127178792652853291895924014789069316206311830380941084410739655717729413044601197144898509607148220658405036278419169841079053664323953002470888900196991075281268864541223205575170572838828017274822467475368739554093208322721778512860144280296313651100409730068983000870725539072237908477494370753165263050655281875961528847070758377289262560693727777323093518806017116076124507264054242863444893920942912971613120172823156829798798894432032682252977198782656888041046914790678090203708842051568877818308140831863312312426558574131632022554464846547884865334440228837633642726153343356961842514977819901693233862096134462375092180828658943099819757553141310257721985554837670999344154610403605880326957733756421634974836188163889939099710370917362424778967932003367406432213417792063344305100152603154877207021421344957130373846982715411433997094804786495231739233919172839398305093308400068039025680007951576885981437508396157710315577297333178467140333951522636880415801156740265972716839338700562390800979321095971824363129703610247730332322308434792742970869121675603941553212594929461967777072121499546533099136120961904354519593501856091543337709489123631566774173709331413340546678674194204043616748611625556244389822507861199373516611402143415594744040718234152795955787972607406986202996864130496314398898921440963828030957514400332984311563208693850008164229220387019106108345033189706121661969362957837916273037950956965628781269092275589509099516306323190141827959673439339653408346882340931065708619166915881883647666233965431036839550991991791530515806401794554444628395736169504489013135994302936262413844718209858015513073612639071869318355569668118688674026259427960026138030363968427992811083365505833026491445322426360120127819360057425900983245673428716483373160669816892371443438924828191394478596144567062442711514596386522186309430402601913630674513025354591252132963610313838674935909980555357894281196667617086074123282384052144141308689485614156907515481439260542209898673184330155427862472170841080491607216132238556145339315111540212324323951855151820766067762078415505443627293924132571893801709261706636424271038347971529030191988529962365321239831760482693650289982631322130610060835031438681381464401283274072544099263460490955108532247195909623564035737805052657658455033290421344407605863377422327469358901103886494996609862068082548205322744028771890330668940253048869704238705950397699121287326682983331779700134924061536081772019708826224666468351345247647007165920811497979111929873781076149896744282752076089045519354435568689850032413637912438440310420783418648162134595102863164447069870635763170751878516953932296957283394522085034161398483844839990331569342702809790786441032023589932721790050764471527337485647344513903910417866596853655367974519280681062740711432720980273570986084827888626362009459144566397762355051018405039250085699317631997550035000600772148866079176082742544967353554747500668601871835983846241506466023445901452000086277017059796978055917101041192994662809707291993067268587551429871643638346105783857191569332052390778550696173950816058757966850059490693376604935856868085317012340957058081998919166142448922325217064620810760288180737673909640999094456788441788288785150220420450453178787594294388128632085451762423723281249808205236120252544635665418425271593033235838078381665494103675993334399131022524611452338611582404879511807551705061174137209491662129501632132993726257471596415278640407091394057861261595053753989121339585938710802453888301621238755812378834749254768801430653678193248840192631777939036860809240931126553685741085955448947041274608318277410565845020868236370415495160806542327083094629276769081731647904631799719870402428801783769271747616425821333417614509289742209371346448263154802660666807382661524672032398663879823915548873979693819015179331488631836999790546217470556548634661292814731230239836074550519604662740807455817476368416172945346665573349383490784347901121012059943033605236536931402897583353489487818730973984005712151807729467070407926834413470580828061843852557008407610079372356164169968935856186004510776016320116960536601653662860675017453086098290687570266652319469343305224302740399008117813020683499410635214171862128097979959653350604713492579914078850127086225438807328665679132413569581886347613884937787593535914203949224781503907779591522910922563239735265936229343720578660830059111706478265092933968365083470195086371659877181626722206104739853284840274284574714266499324588730001207560294029437914401999257998349579936432679194935975720811970507780039474407886556905308218767836032470057458844249917490120842494093626698573357096330146544881222714714576859513751614659066887756695238942586892126217766112372545687804299626185746876817497348493416971272665633079036684231028334391306874237298651914719727844174189309392564630967808136377435298543867310230310717108928498167650266288965641235906223030695542536830732395675929893153945673323952096816855082869689516806797494156186014381781972147424695759683977695067963290934060994725379670486242721775862777839483686083823520587843552625041451626181394897366701198623074252970119271884005930561229770824806572182983630776401012281336000975100067411177845920821965244751718208234333379598799544042274924248698343258674207714207530624024004648021776084999418466354091215128802538566584044124320615662336748632902734657537076285746294210503206485044228895440927121327452438647657918856803237783665146927593726290761778560878578034313227362741320927908280176621084365837930886446522056064179235936225445215681733781939551178793333419894118167097880677113729701435443215578836899234361141176034502273793785312073181209830417705858842142905283921958440736141598228290385501612946946087955918658940997936279246052543989809455182682476169726535286234611228924402271014726193791988295042142508415862774978382273566365329861983340319194397202282105373906097186905315974234454760221831891394132735346642168663970894476774141488302970156174030919650744310574440156301240977095813171109504714202631114311243895458172689540999563004529464554695639523386016255010444940087074839705640543551039759104077371977701015622033514345065388691782188151911621932838813812696868376411960778568010609820254652221219721547327782174458365409579868909623820836371558924575809020157965653448638597932217739897749721174885342749533704270434759286928645283994975072748865647670206108364064682535722631574499636631222547809657624873773153999392885602570808409838603463401060935134875295537955547017291196833576406791035207904084426519147694130868968660449793168677409138998450592177709419359891658799579973852529535376800435919804857226302343809833892287486810348778808687061299055468855529609520154006760025731931424887839721480229380170445912554041178816980816003000174656319842756715633394027249718077149340813034237737989000421779172410445227729971616689198614328056538971495031835073548830537531520931251513560478492812810949539320479370761991856116566325081560337154314554782758420866243007242407072073111068883974160415392536101858943891111977667767353451315506829901209841297458292476040059559852843747650122198485541236702866503817942643936399339768261740188105133029255439480562158027517256551075772844069457759051461671132786787683787919926627589775029351886852386147820104291994082958219592743538033578603319936688724117757479033516028421878450187936103844672207312994754268569259381339823521646021504647112948107206032540965324312203121279979341109835708809704277409728564517408010780276824674322249655099929059466236733594328521837410163392934461058032994292503942811689420412259191518705436739755745049518577088356052316845136556275236155253769592775275957009502008672796403876888391593490098776504448235716395068345845335685533711424732636119735994501543473044208440451270349456592728028360853942608808135768572217097378104007854366288228434609820065754196819745155915527719222984357549762357049817486325404126833656556488351437110599155552163731236072212642777115612922189024437970911030201624801620268628688548503155680056614628107105138106291533744243900832038990776076635086305109233393475803456382631915350932935768775392510419227289178993279375252158868901054078980159507567037967486500620832732835123997275880070595897245156235648802064351959029399182781139287914713884289880953824994297908212015762565294715473635540967463256186487339782750723222695419253465682695535524455597878746634988689365957546302459417960415354683593731066185277332781169091670255597349110904793285919566869247281170291696958016281218750214007806002539501841437855830993005777791685497822436979074692927114402164801512730760477779796054166314907199273216202739297980394476694254129155364840406361289745510698575022241511755229215511072036052866536861941181319379749356851278777832798151150081753492675045402296018362719987942112644023398749144587218815807451997279769920775975470077323499324916938145901605365618633866612129262290407419514040334540824218629920422440941486511996470849241744601103541009759565472032566463637062977424734891732886047204563241097946608666222827282888330242783785564983305468878211774242691258376278568298530894409032622357123007677389773928484999919152889837949009200918193368114992725258221305273086437415052060817650676332900532954874114162390850243295793716396330153639495620517900980309264345928742396090249918287342409264207393500789849401519095708023169917418086310447972916550019066576176259737034151618485047013943896602180313778759161970958974824107399721097581369840410743292365395059859335273633918179330180093774254295071387977412196043144968675993095816348651523493936566575937080647820420293772131607791390709640288944071533747652996423149918649386284803596928097365683390874202639237913631563057897227197880171254999589578062869933425418212502622614850202231524312838796523835270196766813614225658318759429459010781176703677922604978177230234710334803992875284572598607805135395232413678346734238207023414734427447233930048244012822739511727218676462532422751195511084023751660305102340667444816018227209817159284737819702906568202187248779519189031108349595422437357127580323843765627716693311925443829322895149813252850373215895490018722425664339066354155156686699861195310165934952432457744049671535949633124941120176758000387039063124411096434037350026304439844584234447312775150387219769824376048997902555123503432930768530832569262816608115045487085960344418082456275780418767234719242156943573285839253706349159349879706870092416765515456053947105301247078156753809808219499573315446479225198180082112581967225066145611393143640846339442578387614726555620390215885238679876007426829199729419728894283486001744686919443698595601640254332471628878245404637582772399523548823523242292141558735062705726550373344048627205872564963655391260862025952010869874446719914022337472272899665636237014591312422311565338725489966831176569928340371627203510126665378012421888009345097706043068447669530732087978043064624065810693289689270279446838996563826214542443371663318674847995476536320294685946390398054828420011010307118182680329055195169713437907641030870380334750692898058187405150631042261198707096140075102728981686929791794584143866719582937798257246251815730408692072456678780548885269204377282582440310710512971365373688415251297650632511260675013072632860228880247153601329288409844785286197033223211278030876466988086618001660616062104831441771351080446347420161717313406198086462886160126448845301152612280312807172306488437662013754700551866732081421508805217761016758427661644940063718978657402534170376533958311101771166101546973699087264916296580965575706244583547499465017510240906375156494377008186944770482197689539546348926008423888103275693553112294073049227392148089866301046249042595203652516558734633431420319287880633905733856302002181534549193983678810008813558367266641296229562129373956997194949462289590592807646173127214717409082612989786384527454898728230943837168501609558494058981442028301444578741816511196679449197059108485622977331061227100836555802195272428958270125146446827962734684997243971773453686482055489199732706114288616587261460320172902657849967646819566987247743122237040405696209881948339057423599050210216573349860477477468938276210056730547625292820431666252589794616432194950223081687825477876093308361917011447412364543630301959388065094949571662614347925903450291264283227206587616414913529719911328098229859774714242593110181333596870219044636206253605942037812038122802826359625184135838967629193232976408659537384236272842879726300173706701588166806188443024040634035382208191151831563524845217075389654353645200644871027618469535798226814687216179541212726017050998593596353082131823524448003472224366734170577523862673337833146537414574299531935161696052503504996412264861475110067507385008452559114145270655202059256571731935464260303147674161422593069686530236719084847223865522080878285330092021044451085232491947846224911046492960007628747921046741027443556970268115378709910444188252469883872546120164729079370791540596711078259210366807675016885993756917707240850592903746893374815171062557646797354580963174463495325118739663252357652030240462692319631698876438904065542949279801390416773590477910818686895956308149804018307897508236763353324754117814079055249979640200821709362432943075233577680701527970202861735561556803675673466706844465644098313026682278979992788814539440955912680177451252163802900657025459026211390911079111878472036380353372613053913318263691198998326742463693936839208874442944894839736105923484811120587817284645373755212399297194038495853613615362305375998849620760817606471825035778408981869402836552143787140864808757002483395719385526143682263306112154995177344546466565122642523380285897435571928519027788150921148880820917412803490788887449296546898202115845175987470880502865045265148133195257957437016310507923474316750252355291243299424170777920026061246985045701993245547295031174415065867415421101459011596606177425897716405827401874038328950299519715767838656233507798112970040462259449832290845344007973814673625457475553755867428327649587059821681529426561899389292854836824630588377819505080130348561277422962751323559137299698327253013896341016976248827665789470449311027860753497184642957144212079291222134323357061598728290071023635041109631985062094517993013474365133614315154145658227605443839984993057848228151345302765751149424564589165646370100662827969722529882618723327490519685060317421563548978709222083261412364868979773984427322783148335707417910673067997880373817322376264510954417667076657498473073335811123277616323777355969599045188961421769560034280312958809228369427338495359154366905305959424112248474461726405615130434554827591138553342246014569470052651950953580313039568966759126303500691883674323925737534256429264866864984772404872658506075025375624995059876045680327342936717521081873571511077258339318580368091719315837926798186468101553467172701101814699631645687812765021498808590914728905783328840315209044750426737893644548311112633378984162002600862450140452289456802604192847494338740673320832303201128585099906256026292836292682456370333674117780288117339267213114324847066804492480911105045670145332754305846400730897748856860757744794499110637089264246078208757353782394909177363341595708623309999894116116145802006105654618011703706878369391807779220937630159048632634159471605734479302787265513697502421078872719198949800706252395704868917232383208954908098969534613167959562991389393611243710890582281830800969566470478686385172218033785146792772314146122375926928457037546138534391864500800826943729511844035777910351219743405256379363141570517378608570616886971020995603396315005859360585840814301176626087854517311304075360610583684553109123785530872585906096069978520164919191901728050834477161680762478237186113122486968345701554958873144342688398473027501317117434940618024256045495622032183817764366475020463636692733707102185064355942826471433989309371674651378296319619055488956138258425033150246274581143381580923207985994471881094733692234374776966092095879786956730349539825974776414645826470266612774605498306874392733176851018804719303938223674690332597629231515654545456388040099585418298000214261632585363063339394445297897410014447218164234037873407888972400334424717762061004164858284056621677985965235227777616655134307673364527414674527093169460881130610465696508849090398520078143003146420702021074230599149181904152531164588512256315892992718596418670549661652192620365832144255555301284786062088426512696476520070951625503047462556286756139669186189623951412465184018863397656056564061226502670768822718040144667907893318591182475285193286235445429081407386711928410069752731912036104924669320560476572787128571807496489347785540986308872863764142324512670252642447084799647289309313832844156399868939360712600637989474531827004341708769206321508606511395048746111249925837979321296033080327665728916285153699022456661629683611295850989503495603798932502564617618539348068320940741282196675663876149245580667131396901774696319878056495827171060691987031216279272268824980842211754266944799892543273653822555447446255843723194498344485061890965174721435499928986896931050591672052168502227358657129583685666543314911848664616040508028075518854399519802996958563870539656662633074807891211739566515803142221268784171188613389768220095803281517840406460169737547633629166904038833316255619616483554958686971157280270498705099917675801387900741013696314988427865224378565673686041345316778968655340555381123706208863850257668432595651981279475247660698183984836382082222929887873565522613534057068470374803173312271907738325481466931106612674558619931660661684942463134173743040878872998770612165754062921207830878283979709311035040458460122877945339268605843016531977704033913974224884669183525635981290707945557555017199134850137356831667859358634910494694995421908027494693872418634128580056460582969524936328925864069461068336877634958300604990843771729549882479709751296607361612984414500031505364562860536294221954504269486777585754194313245430610432795756696449171132650986842451123919545480633909312812650289735370916560505311688987682125834142227042212937506096235446551250168827077131985173681715491070714538604464408908686042590827056051621746338305767127619597754863039627171100874230576964046970392902139819499001633335968962307481022825860171833077114244522077314541940518519921190420294205262708328517597489249735463110588029765692537408309664959739321732196015236057634247999393780021140219740530615147974625826081438483255180725979940887912254258028681384868931707377966970123720573780315666177984014493268499610004237372132193199894957154900773318302118772350521448207139239812056056948760767808759375268055190046320211684331057351027519838817602049899736201308601827011819222831147346987244877843683762120265885406664348356351897572391423937323342767056791154445257664073309801045562293750840097311661019925833129401281076209868661568052341555946632231497932878865486144182932572773007904749791190541124891051879002155493764078347492438977801725741875162567501637646990405481677248295780379806445258598854434614154567800552630849931446328227382183578708854849818579836790732684451146462628111684718623074280924098837475002241996086389185435195743058347498366947724030566804788229106233495430390841638087745906673704936528188273672818904036336383725063548899704531539223044414301829250885447552239266197502669320003527806882723812401821159941707952852015541369988742734007820559687301398434782881722135204628243110519660851320844714692324102880575277944297149090927104032867965686156242885840412641393708952029833350403932196525683000381000471620307897979972768328364938680322081059257890258111135537116640508330506538689411400446520855320207551469125618189154866441695004780003306976577330808358889275163076842889642413679205801892682987049862274429305599580209945017107151242040415920361598281425970720449193866976265566251515076780746507838356115440309067258601881914171505909904942689168282422939057113851953181515082895802996974659404556274246211624590640627494211533860706555674781439278980896571511909722642756451349680199256420533541991884060489204725397167346013681142931125686852714567123977560335384427458095526638429934590833790397671613360098265879841631327031757273063598303775315126763582651119224824433114807211930790843595726415819743593130013918118531964821433303447735190229893337633962577559784711092807403428604059413247881455288512541639191223279940947791157016753464426582241072712866703338090621570791348093145890604081210375775565846631295254545355202436911640322917109656175837095521138207048706980875601188080451704186442878203464105300643951525387521014263530522109301996150664680526203567201551206706486341806433247813431411013455627966169038132426096098315180552070562275511042388395074797097948068109809776201613262773492430449193449692456549531649495901935244532974761975146842062295337083817395953587912035985273396114905467462613694492359593399745434505672908627584770032214616085924139579934737269915576713992531370626483637628573808003295893993318040419447708845250933890430032771115974727093420803683950116035792938164309889799710387056162106143341507969838756159120896677616828086073477541677752970876032877222716898521700155014415680954686076048606258018990950586988871973621942511650955400110826077572015063619735732167640050863009337132272856361781587156685637526139623676404308327808686856011038175003305992154856380391468979850932254944504333077154646624421532662020117381264977143470103369209523451173990038851171519612055939536982016807307970332864985218706833032089290690607282675256435749077945527617786920543960870171144380027792038866564351595428971259158535385200585369177388954075122962848798870115280669782759505189886749841420177447869472524303950034158513687186890719236449134303303319545161920449847205533756642172680092757097719317809075551961575417735058068251104528961713514736183256990649196853370955798491369791726293424673380767294098717989652993754760652505433618218415404794943031256571934917229953940186243041084939258646538941385515467538056558919740495955294029947258946805237012452612048920636806540374138299735241834671915130945514083317124830808244335314732319263300046626322649929993995764609020056014509468722629425192315250069596540276694080012694144665369256054141094107690832036304153263205322296617089657125300356955277890990334023819951236162693841195145540901632820434307744545737044743395832228445249901813662234404260495725902146626797443242050765765132786084439067390697717062781776974694838899138574028207834302977205532057089708941565919675670118824658214390094964418080209923059711874272103030791339143180160904968775510249404283323584566496717290389809423488402188004293031000593930438112327988504238806326111341943176844040910337125835635150406057966042349040970383074027546415637016805371682013559184333515506947546568536560457716093858243240743524843374562604339842069375938310588208891572825429223973554786612463767088865875486374487584654048358777941378413458444492769130766498802201133029225094457851221466026490151995926401111355316060245777087604904821579063432557658295426953092841421652001478033667656862711185165504450890133079240839239855770450923849706351839225222003262218878440946115453685088424140535806329507704419566292117274938746839205094024720671723839771921501992151210844736023194550847415912120780963664412664214545455670840325331619521917677084975999166888554171216454945003991675845095979647327631312181966532962742680885290496889877249610820912343361699778513710692573527586755604325187188881799464870948923837268825917353480214085629294584967745370485272790273464467311375716176093663099709277160225736203227326690475076182980583161853625442417423116454171674367919416201257115803005172793876263642570074705189117254567539057400340078120594041673550486589575619397696155261590067924768926615345919984483103914195242206894019224609908722388949009871637293381201935884775277049918241417536003830912511364170591276524203517368853399611546699896679773653853514386603117977931229479910301961157453204573771835876101824761963510605926323003210374716797911753567312949214970260741338659223810391123649869328858449653891841754932921337479577652162452761640146168149058441325172552788250098977554903258961637675428182193181122958926217918286814404024152467636828410577042905029794482393393852525055787378990313800954875012071459761580177539879773426980254469291668066532471377079047440473380978431053930818442272422808660967241876467475129226157987351745001481485907213838450163871163408237414509328025835520021406179944514186352006729325484828334988259510382993762803196203328571045808795704036165868329050471125964027695635256894063649940859034317002295480161121120406875930372324938576975851075755233688772229115658601624031492761325517228155313233499389323254111827435960466374439422065129218842449266528599204948184281304499750410737381429120430800153926037676512223469834823348037587174451410692126414041762437530836192358456914237103669530570646227091809273601561325972600811100716605648057662127422060586775535846881693619492198686424502597572579164827575164494872125764013562246362363900843693152235549120863191842904330465948069690603510470239485086410198893962076263552983218753303735084962113570854681598096754479020649448674204748829397799701037003636021179630665122130014284009408629283676254772584031036412804560608978343906289551918963992750599812983005988502453749177459986937613420005613371433991454462241508815670231314231887546608216388936760979973221943862840574078765904540413833113369357014938522282115570243644082758260068071308067610699185719523142947871053923559805312532532306763970168192940072192340265716936815922195477326753373848958776289449700598610653404502819902730161668566181611657065998645257139537210470300688819127066560767307680690797607351069649928285713994983242687952600797508694998137681920354678017639926680805624194980268967880667889043206267464462960568621630805026599956143288290095133637952785074698896083418152043976225647623842880486346269327711129507024312011631466326118865701037595676108206187864425925563325936388587460359371152525222097919192148560568659856854566263940525646217692105130060267773649836994329387585706611336077087242711939632338349793001168257524297533443471892981129918405671551934816456910327802188247598437679248175505639425769588162527645459191853526004913565115944045308610398945866218811036906846556410901210053818409813081158065957677964096137191332483076071743265549344180441461380917977936112659697732793584316156586886409909574858138274905170611054226642967393173052262584641211106243503133243633789809234332943936919224068748285177186643078699753670441958633605964046422123768850521450418640243099662675034916158190165866006856053935154705602126046402346108216881607102959062378780482405553321354985348189361730446080374525821285536344069258659981122738549095298386899212756677429796960136356979360374391680860662903006533919325803714848985599832913617140366127088488258233488714890123002318394653514592444551610396661907265347270315333708661076896497471699416482810898042597700676450737034798855015672732896235877929290763372997991424157830085970868807793666001442869496990307673432177041353396113840819138455280573115259322788283016283493278234013308043291751496245732156245668267473661325141985204435665772989557545618563675857189045418793628583307751625629630986734977703032120092890109708877214572562622557697547463761308243290367876611865728187179694783827982237975983628386719885482465322688630044176669696119228506921938371061145218790335096228088217396599151250835362289559753903344564498049288242935452269627857870067267342838029660102307124589247284410290317263422547104208096077608717670942582001935841356644082473377695389676487915128664277147619021927966982140804654746838734297248842346293204150293436096533156697794592543258625430314679657953969222141931999440415073351230375035278928744441916066251391283682353910088902124401952045005934257062775807599504304455586761096777937371538431401714958071917963314040057109456277451732599569018470390813034928672658633721442394149395807586317040025890776686681575509898917369590008940293909012894998595785263611974301539766070346375445706420081427491831523783639309782703025256324198431801343718794107580136195194084368497623975795527304278661312490259267826900271646337483127527566661747326921286439466476069179232156048475330178334316382770720650283059668975191409875238355314950302577096710355119949998276289957109215502490259379872112464579288962061854558343502931214722893166950186584676803622737003686540283183736532369482979629806984416362668636548285325947161029777266870752833106512448355909619094330906037946330900407792013493973198819213509827833861928658885677172514782237350487089286664703434026095559632952586590978074967579796128987526459059657335017690462983231135379441300001344939838173598996248545478984363003700886002116847056291856934040267860112534243774088792324073932030861675473611082293184219177134306401025969024298918046528982589237180239723773979723901488895019494675783523451010525369569860572669280236093841468163906109001524507222550789612142780103596599799130579711182839983015406677527050707451946943670201509330791439576994347069609623769763626430333724561897608791880395934175957722330977322640555296209687119125525778299382908905188174567809939044877219367700369635984596520953547085294986260262720562870809455500730043814159058005433473371430224501215470151804286174072305571440355995863822377199547018370310247493646963383951255054462977772103606664292492619292670678680842189969542809185143719662497067737236074519448998825001999691590482816579847972438071955820246841911383506649358874137919191156080122797254890383509124264504448090435032079531433598726158329515495441353328186027431443277442132472162366382974929525430576037059045352604272493622721994769967384166843152332657107847988219884735920256009117521757383463178649051037952073630023309374617119910225541318240389502463129508547246877929892095279875428081945731258140780489984962775051724879015903591042466526017523178904013848717427630549039510432318236181544066968512397950352963718673002263713139184168320376057767919671931785697474222676100478062480805193560261693737679795459122707159923570242997842627820310304694868581068204916849033836501541751539128853538266531068852537579079764843835743508300833241211915711431247875148423564103575705512054283302276812656345503279676874056418683569007567491953496145425120732740606058459181876352364919304362665597877087505187120343810224267329476603254502317479960050540974584041549225974744524788367212303943866003410065350564834052022801432219188362801041885996183719073953123431504901751157892772518317424325705597190855339754840025043585636539851023881376743136286814756801685320452036054954732102300319572000750049718810314993762747599912085295274421410410875838026798846753325487578238553737915364452545882847650404558055232165929783511274859075213301848423028652645019809847410420350827705465852352929485763479416570473236374564947325684504533281138584703352207703810750293313255097271854469154254153854104706468036612080016762572316227192098950322003051615174008292925520880189792281315321882119630478776605680943964816906457572253754777596422958080343314355056022781935554097359551058500523771786490112133427872000850105424687512254077913750382679214212581698831000795640687545265875332613245477168634885670498378191803565021778994307511720469744364340568949128558881221066816611125003845836369992082396638658375973352987978408110407393301230574289875637202473463735701390930730683981577048944109163283039667851918237452363617117668447816079636153989073059058332527208266985683607083995838039981837649374865267573197026244494799344138417644388297995683774415572943625254327624058632966706982331744897522553397705374092654395293359695966447263589864895714234085651274339561951109827105588569074448834264335085996532591473127231362564648944178500329065233209814106711974965901544306443030362568258804478978606985301941978976777504222585168564344564711293821016458833819420919970224378833424248589965114460618103459470052513475488508736471856606311583237731462474989066182549255118228273740362281228521508885326716928740333141348857964065317094828138011423576654038795125879774747317804741485322123707490729248227414993429427300847216555268835877416771512597281197389628750451999968406498326008435244927066579022609313323812699922598067286564980026022384482279005882170633602677091510381270735845404787910350992414531551925423804079397083811740654689812938784256407769008578452986078698245136648430032282277356526763427390248630599028786655399612556937187783053800417702807231271166201214598833704452096767836335178313165484079121598756300799422264088131128335497631669089539279409809526228423455134417229296113554194397282286998642929816555453114578197622920864415070143331931864309076285951721573431745112856739579227447563116115128303169551312861137511387393884293560107021373632886438586423204314827054476567239907642891070824872775445474292989692355163851652777492727702838143349116130233751121792047709063997899333602098319004681312285826581027340443427248642705440131349388658422086551901509038599330989165517399039044882443233719679882294390365674869184697095491325961502177958103113231651391067288451199194446361523403813384586484981211080271101296858681729049629973392947644372437320070601083693874055630152153014639407271721380412069106899715277558386433713969787278455600977551291554359738873372832400950803908096015173773027182461803244403662755442127499728249156106386447703835432746786857483469589047329976171241518296509631558366771621228586241076382150629014576599779033586976759784319193215253196275090431521051953962401467791327003691091128175350162646269878713554669605924351019480053332250258207133495890378000085846311971602969222723707967436306252814040115033652515326523665449647383979471903544019949173692025224905447843178377941626495051798109184453355641312828136971402725793202687277980347646883999221049206581375755217372654166930988484376454964220486965197302141535338096003695809011406290956344925664394507630346793717111643189685445242420236107176969339031948801692632272322725432824974669474809295479406885898656895229237803064247381474338299586028503403678722740374232241982282521670999186223946322238651303079161767903174300865209527012262885382876086536480980367620680295235778587107385409686967658403942206352299046726877102707117289759290991761279287313997550686484017388108597425800410640387274917238450503126589941261988898433112751974927121839455677580902905131891697924175412581796578906258900485070253280138903746442886533636335322133368235523865634170798301654513385655297168296020284016917814484019174150878174775671741585847786400424764134734104235871047617038736171045257663008560560158789829013597139257178222204246759283023856662024744572463842304339343607481353660484079308873397913318705783865343680210774225189953071162780907749224064362990876964040081235159266633153785768255034232373090365835875715693107474203145637893641922290504139928554015915661285506561408849656086280063564827044102884691617697483276651320099797275601704610894541541407916483318415955888513232684189131014508852050206688579217664187196046255050180395878291265173211758321419734866108345494621946081174556445706687195876502272656851267302188304057793940202144280142663370379245019319055345924923441783482165414610113435372384771513092218185173109241811559652294908201211182288434791143469505398222943994505524032102101634675313310603780966638952713356852775393059649012676784552132772682453778879110670692032781653280588250231419604650093636457708265049860603616765166171054287803935463325737853135037713369447184996134427060782175694437178022067129693877560061551336119867078325768319946892814017600227202586859049322622956602608547796500405561892035088756810027091381010637702009646362322851019042421663121155537212717584464279868205109480168333697929687716270670165912637404052168531313369523952230684476106318928285730763245237761144526439135738402784312185789350521194002016268318336513769985255621310471428081211438031018315325385206043152237246402860841463940656816587235736139620289230833107436105714376685458104545141214482610998234910902569167917064665113332748939135167265203543517019670717671099892287278686110159404462554967388730856786699143101085404580101262667445707177330073977512543566416131165802602468559434874332855085154737045321214319840108808494101021777368548542306649094595281748055311460924796570712785080776232534422055196932241187544893032228406051568926135104004091798867054742382750184754206916710484867250162918138681387904361461352162312177625681145163727524948474180338427419946979466048916847101208111097715324973874254732458789625523759861496529151788558477074494971886975569320975426981940593526855521503044401918729870967198463045541715303000035498174796738685494066266463388904344836266623940067330865691174548498305756061370051922518175221831084243253022319205691906800943640036300190005727450572013754705997836848862022247026477804844089975531915814305782391863547909086620982667122041945611311482286511818256277579953289664855800763173592675919538024470036166970863180639369384558625046564440810899377586781926092751792032018825830975873835538123461139836837950816559066485676640308500392709143804768854941338987429759014207652523918245547825272930525723090202115669651635164601048182120843809505288693586372650040036666278603294103761747629982945486453781148921968661054131394286828868395294495506127233054364492593266070958931314680634465992091939811221827503210118497028568327452887408277495998307085020132348988742913856520541299096245505538388118528069115354144945402603004555562439456463659101499034329521218148480596862997032293667114503549860428019494377680341426820114698772754927110765632369570640071864611167743345849305512915370381192995122034318068682375574381894874022368079399232876260383254165888616236002361204161558628683144116843698712117474467569910896890987444319644477482354346407284274945726298996356310636710134652945169555286932818289846772189935656506015360731352026873038982393613195133470612936075254725271656593194691123197204136538985059898794987194674909237804069287071368274902483267840759217345210428674826291571872860309417252277965887355094386831907463459612745328687279950119345780490284115301762983002884486282812326225267019989880844548666042819420508540227632746015656748205933855275961039131553721413877462843350249439762369966952467458095214590152858361895487007795512647959248296854239413743581836781154258954528655466331554319183080514100461736917408530305083987028635629294498809406632568788349065277143627182083365700896671822618354490686286175058081370890719605726595250852075237034030963772929324663767400334242546533220066081010893096542898243278356807029194020007229638862794432142017719549918804825495544297954596909927915095855918951410726307454301394741374653889584631708241396152217944622254001440803488028747466683632148930414628264992010043090283171564287039125530431336755448170946738147619567927101138147480230797734570221352479943911359691005773205608574160438704296425192569880530582225575115182846788974759679044414143037954229784144514898072635786066711390988218937243456286793415809960564964815063600817698208118897951096571693398212405805469561885265322908965081228563022933713881719138471429901778545469688419341934516300125184985204799719345362312922409542058532247008019340147336646802470951253364678194508554580413876329216601855264393923239087890726408694621525407534194573308472743877822367195383871659419332245736998363353806579256382224451916373824091678950306381438737211004693871693783845343619193265060341093302651566774708798770189095051221885021014871210097284004104443269056270956489160386671064416432547429868893310684307306494398007226067614090314081211894040574083490351548712099643983832255514283401514565200535375836424194896778995246386249613166469743685058539043113016894564662608305157317838328651319113533457275828423350290132185605303717892989519223641675849938985101261512410175378776820983509198991162284401838281218278209449387089382529001544441491463674611273307281247982160152767790496481489214034315667695378376210428509851659930047795292099714526529628334880621347359391409773122168551578729702294485642011295349598778400316126361090664474646545906973547963030331988552950630637701720509633229360876136794313193514386731559730742128389440373248448140019596999206548913542228754292969166271458902458866925303968753974045966135435040350931997763766666702696073721172942864950827115284067982438095040711009271497767117598760855218413193163589999636129893091866046977182000277453050654882115466889170910452487802687889747797401698129354094245455094770191665189860994539182060488867401866279390697285844287233717482250703203385455397859743994414195345203278628760042328517853378129739557463095376201830999523324088323848933692901040394678829659554633864326390326783694680199515390409664591945750520576317147265303600843378445177348512324520346515391487265647778446856142637423539870838515035421755333089801005185312202117574469805968858156533846830085981271453592387054182841081308371166326763904314249399624638123516138450995641018594768418935952260716211090365313943076023323539906215879484241905314562926412564248496041588679451748159769427469572982924003162465352821700393231758033411624941454916690318331277886514200081644413489895879673414385122398416279238739966956173190229311444251753903271240713545267622935261999924561441703929884060062625518755467504491294919226312602378569207391854650086793484073857724687951514108938045893368984034606804782750902142526603068511335580746099125740656487645762079575883011136853733536630894706311061259371063865312946721102924518553685055601970617276468136966625518638853681899270712071201924834071562306224737640671434598892998564632466850722307254896038607808251606702274590205473958805570933299750240866547167454868008891660327146673280285379508813113307561655758656532107776848422618747690875293579464011367784572298041192056295928393551335500881931699456533088035684616995148590017945544502571313645189327374212341018714776446444941549886974908522523553359978081129672026361246451214779859136474044292031721514746992297758376832104071613252177001248935375458760701158985996784717850622219988615966872938027916995357733043329158108861186316560826457235268071673599272044959991818337373827005485044813360774297935464539998460676193177135358434540423288421360788050480206572083295180497800881704283176607684095229775479582650130287809403651326440184105676121363420790609972484494488848961424797304908101212195689551759821782196622807199678633233754891968814474054811618950697109672131716356557122629090543236742368719283864789745887551937562383053557109713311675116082165116160140299522500554627337640526804282686663538288107428715520047109620461905282712475135080897097273870099015017626734282744187780281789089121432222958702050651793130785397071734514442529913454010612271836161038899416939010270093397453640927386912369873570249929583431475943552580145511092897406631477604310688414707104885651907479033143472992927129794062678507560544842284098452032139771220692813018949030665851038219578940355587239474018220161880658699077633449194873450386783071165087960441981790810563537782754897101064458924498484145790320944265784814910491610320236150183019395691084294414766683283550147646544145504890097861291800459229592460344335624155636535532771427884634053505621810074843653640451265831117635362609659005382155374613151005739439179043414621491376912306290190744715940413495673326577353832907273736773160370625241405221850869508116085843865005481286962755055766227392392725364668741049029380660824887458681478001555171727808114904822036565298598351318669390970046783216090971292206420366094407352176127283218842808556487981599689493113573948726549597954937548445570905878461969309144726305778215383800242965194009203294522846013855425482629086838728964588987335074899284726358942736522573623122768178173554219056771932307243438258748247525016535850197445159208755153445982846207328467651806764264245957754221483709672930124610474997851514779244879707225207532081458833120627299676553816598054205328571323010061831595659227538254130675475158233102770867999127316321428257121768829978383578979548768207395326709951673022073973130011328363758055376677224030050299388726466284266778878571730112848102214437746818285690751559868225520294666572338393578513467409729363663884099280436991998039726646729434735237687774968296284472099898071944979660521311367999541909520496780556192986562135253780221371189805507770276986676386960061327370641430564598286689036941105562804404736600648089617733368239661176685889364533770923963995603552835344509431119109961529444358289931703471051716180690174482733106121820158833085595292179152309182015262482726451050253568936598934762536485412334134024112098873419803854365552070450363645764918418831370408712953789207268181707542748237743244401278529574588793998273288887906455650830036546378775700048333010531057269630338780932008191752727205724105360354040309748832323928251710096853920014899758489150258669343051949060438138722001590132651080821739466385146366710794380761351329273452166502655688032982191978200711356200242612438207222761011840183227359243862216604110472878687358769431838833948684613912326161467475681484310915514530024470944987378655009840696423574070458387574257156869827199104580857131385633553768538874629440216212911636975946472504671314879484970014176511783574212282169376488704383060363878331517476889013926506245288863650194869337069291367837993751238246182233050595048449432669445131501736425450996476879334124112549880968456703609580822575190697556694303695688370106660801359643310498958314034011775801803858388233860338220074058471872560371788031180115517327040622024349756216123076094182253176720383353252275846929253956257152556403098960116719688162576987184232344617252696492965819938045083727150028180345352624649185624192333738304085751531705726725758951999789089455509097473311153897316636761724220034886273911528278834009674880358570977309947199505356403135803315768680795355521496865786106667065420592163458333256844908521094072284025325542708479416780343782072270083992782226053537148624332155637893950875283671931857890183987522136102394900488855683170091414320999512101157706251168229973327493589457079450159330301828747233529769286636682569185461522486077436528280950363048652453917214990172009222368347693487275297789309370428639246239221336550136778793648834272143528402103348595158091924454293687183576315224630635220663258961767050886989461109460545038290093276662857811879816455518375944285075111604045770911649819674013785041409582468828901830066611563682406954812721491885133766470655128021793182646741550078379602868343663235759682125674735486260003171963815912641388387374169240587504325595711147218666708746484979058922542267237871901890765568315677613243702788840041574259197829984362491197405724021313552707468453912322380642430714641682564633678595919274011571751041130602943349984620714322375074257481336239540939101303713034586326943890094155925679332517858017968962191008927887585277693530210452950613456446909565559010756249445598581482585301420141639222229462548376665905362543867430669631254826313810662728441001208797111718131416272794433969527622604690027961198530063080341854658660346296239872530920580655788023340260816281071908584557093923716191871060601918499882322574748877400331708719959438412383583024030649985164085484527617607267264342996526556405244357624251186026969396158175966876028333199120595285234636742402296800003856434212271323835714062134172665109413577105939750341190775356941556762646544735984437704979389824114040862142432067870796626653036104778725812499705906025940885902115010617090791640527617582436714162651065618799142026430524121466800863057244106755040850290830110801760789689104283407605668000421389074107740219043828604811570520200933544725736227317255014755724298048693263627660957404741911379151867571920626016046133043989831587852741218335938289535390180059302202051178625862884898384028463512118460689806827343433536929441239608900184897553933327268497113775732857486462241066025623452044100390840469294058470311926901922545905053846275720824004297388361420992555530044195765612030446715249815241135051717000239048353856494161977582538777457648076363830534039822829143767513983543252662460378713095829319989624319527222064628686807897814350573035917237912247343115468958454402703833564473590564628975635197554104849364896162855997327913015505964221305251869773317159362347918426816677247971514416971044085693556775184488422246796567053197568486517788404406528983100405853961569673878593779371235348643257555725564088346646545168237240450249362283936833312302245388419217584078439134250707257981008822148039375594602395887391595353100455425260222805891495693618755259001550134489982046143757308715457548388070993071900007358677822932667506738167722299382959877007821922756396772073641269819218245073390591312428926783580631824371467605402553952871046900202326211038601799957551098738425769583842916307552134758485304510592282420803450626323109945847074852435683463357564977775762412654980509507416480375804654988800323413940149946946021879185516238117956068978522974731744985087289085766206258018965024664662156421235694694127108111119517053491510644822635833444346781415527076520793286626362086274930513947279718749295348466288027240140897444967391509609292183035537905172331119987740933449102034920592537263703219185762934739114138010649476581000275743062804461670675586025563205670707408940666138344874822117766836012014106766311004236651134612698492389784008007982876708974822714714292811850980398920734127490720508796954463089649905412589684361535341223146878456576219200460451634479844119745185764920586895453555058548668141934350554497590729656158131291068875199269832312892247084538411106656788176143839340445237136050667691401731914141179376565465332290095547423465333786492400551003523961708106622252125671762012846263969407019001839389369053727502356509841071254336739603543147695524713593276495282239663572379705717609158903347371332015388254640191491834420536372072589212942421826418144611515073058079685672691687754514683513144295639576109845615002033469953307430781971272763289900267174011079121046488029419321003035407638618864403040028081828022872410696065360164362937319632342395139048957834270565619730788621120975535336340050099396779075115826989108159377654472643572260201378931039921794771277519091583496701565227621323742023695520513465241708110376733948148907785254210436882294517837293167740889763292363261860832492546536653560978996234576205724700805203092266138896575652208728936378607747804133386627989266551037339265057547709804093838954278007428393497129742793387166465657221129938579359002790872728061853728640898555861658206726959166726789172330445734009475182221505494906659016770447074761339287060558147437754001820183033537689247249527016517600476267005343147570022852793421847555342383483020742598734354126517043295074523641145471399463904723214341408935902854302292064868743698426178438773834505089888127061927551577714708897170353911535442966693283746371144153976199569736967234842571392163014580186534830492501386079798127811828910536151683761112780457203372547649863215147773546298226756991790536622687072624229459211197169823359858769544744481430347823645874282014874608124819882064636197053377388223347607607770984214432876099859043842299595807335973070241459727942266519042358437527711304106625018496937420321140809642236304566591287221514778237326114070114067258200006843719939090044066581899742204483113028285498061148388305973675732362940713259670877583044176326026243313873499338588962229767165928819517813984765072527587725380141126417315262855254406430118536945920177952417536708875936094477516956587136193093549467567842209845655136873324590688741467597693976763768862948832987942390451058241547125172524554995254160814285375495155475144577467897534826998310822084917362525449904153364058237152004146387860708601212483536044696843644064099016257294238765103860416793281963768985027648438513914690750373645175496310359532629721877066830231239199227188236039024135310760307321331587242153202382607399952898191352945648329672156532255709280328225634595256014455794610316606966147038430888770729353300370281509738870714656507773050890085711058340164995617474273164777492088927517298975879069738820703314536999115730118794756439076328971938427958215646488758802316408328669383062406574281725856051216517834929400659785292359432196718732516454383777364758482684126785930894569734124937752981657294354900705001957547967995166161151555172860315313042221799426014700018889893565887847090289639974362292907906993941997066732316587881392551538425894930812556640037275181719040847212377388130719094412055978284982192993629405446082863197109609784503210093814560458377800111513926302005318246755124543100007469252132114348624422486208955599877047421548851224944255256140064082522772637400805417466780786640267682350006977989508324647142007366149262830867356765325054257850192722508048557374508167513669970485398123562223681317605300495540226669414647472594572067017665237440983502730677633957012561099530425910765192101675250102135610878089495821804869513781343094787558158777014714676440684542144498956082635424577910288251337722922161607418218605140840632590732687278504975724708987179068999579395285758136029113333012242676512850206139091502637471662622655595400607567745053378573780795397043891070779071509860622156749206590233626909356883743927828923940499900332827306741104849247761244632190905136336685998147267647452990805170208990573136462911017025437270227242890036402503427970262228483321131665715225818239317932628090238856420411463873221786395163980105135617555006785610800494602905817183839952554118066274588804625941872380263314401662970029419148491058731476294560228116667651197574876285171544108913478297463205849127557569594290422462483197780895111010823794173772613818101508976560850874054885720117852466409002276248529803056263644956213710951581814763591567822140977182186942671618876378842957177461645814796258732119404990892920311521314471009822150413634042162098242468433712465959533226129109536438467156568855062165502379277552115451411651537847754402100414664311955074006778449071589873909693051767785611425851851921683121035622529411751285319824238240678252855244010204570585404921408056030750403951854690787130648630849582970551365905053121266521705751201930267962482899131211156178990313340542126444985771632371571681616578801521734343570214868192604050562833674192491490215951716072108324100357101093565198131153669942052438220027220127362992324862425856397917462003771779959376436859151987091662398252245326402796450204456257807743404363499923218149508797098575462300820710979021081757377391317946892233393784183438038751724163208662359761288114812154125588356795846156711076582508503270346978518737406889056907831956317761787350711563241877485772832496104757234746703964944422106113545590815162148058223178185329104917227850597636347750671742479304095590959785109392811643987455763432944652146533816124767107227306234959871164983074470419514521853891703520926305007650058616916381869956699302868992912589065989530927672687557650610112702370841381215658683097674020466365347578712230510366837067971954262169823516153041309857630602688432115264843405378953329983742084122689621253969018701120369034535751502626867953501319420585560991912780468015956512383812480357878636120992304987059396434963906751506090309332091398929351479297936410892560885565922382998770401448989827081017885779701302121654460606798464585736533163075988260336683052437107835996963625290395656671900005681422718958453291615134537391541858081927243400532880731888277235957851820149356758632564295150191196812084523435729711363172117883514364248904270754983061010768751871394705265166614135093725319513639510128405466908092284873108585736717594069453257753391572162818571689270245254913983322854574895068638321633755592603767006728974112474928496539286238250508757065110487425199819828775367665895779322371946511222627287631296260839088627344358472358871860661133432886807583500049241864307893377804732156015827197447167318051689179575105642081997094713394478475985251773226208693121273822963711512346753858936384869622171985800644622994749043097130315980836998213216787703786619803426567149596772759971342587555069041570767717043718323204506317560692435624401395751767021330869481770748855198362760247633281717321918924512680517394537170709858806770613087229599232407704640391789202354252614798371054194247693388170203624044650545201282931696289975835956246004257076968059885961009947689477275760766913287011602773207988739560841944755063557092814667920393835487603132343410433902707258417309078800521600130614357573565541485582550675087019444434566113058822779852141391838388209541639366611901617472794337445363693239029154361040010281988356074752852041817122830093534548299722071137528440256210944003610076300770829513873860671893426628650709465807696368743665858354135848419133506429095652266197495857497568850440853162080963574884885670806499794811174887897622641868844507874322259930858734925441932844581993532766931787215177626874629694820051891325546534081505354468663783724278728160269368801240689929883826660639575286533802961029480398740749698629451642483251068468489692739868390808707929902890404449575981645219311281550550997072508833840963445899731516336418025213857186438139983413642228330171106350641258343057928051131517751128840277341637925479275333652848364431050927926612728845169620528098049913195874692649981392610516740031529538223028890872471876213659406356981157435592324550241569696957201635363517526907167148172482078706029277347476083966844551751719332913744690531364038013990645830115699141275544512388489909744105441170692608411868979220860270145110916086941211366884424157320496795963937035475223072676829337133707766593104665346213948606563045975990465107364344710039781586533537728306377470959015982526171257206105996622496711227248887188488984941562278277568801440880251474574732460573838844582921946320271735499697640780645797546466536925344322393160811068268184225732531920861168443394787252085275121174702127824529578030114187859322738163482532879149814657936329073877703170615662044951951529116595148480186015438678265366926749460925219188861692575324916806447106688038801921003325428378698009528052569228138012307932265725804450937659096630786842122554586890542934211635431462570509030564133516382999523183483043319655338761525500402908770922703199257146165072011430831806080595375611913739008757145441922178909202856328306007696518996837035390788630554677039022681358509271231447970183323632737477557942846421050773338914502791861584508072060453580412992198715369498105654189178005371497111240929399075262553810455442591788927096731854007534450918839901251923518739473291502847968015023248892791407882194142661716812128864996768016293070245658195145593439975545671359695639434798951057514790027187186920486037387386637143540590952143876603581191829590651912960870349122923275882435924732312864587777901584509353497582727513661082583011699951422821355883996241785072311912054488223090841301529821709776531509368097494045469616756996364746515585588110666749553527183940190436386644224049049617273672730521932497250976711534451900012952167375289438413253814715597787212089914187674945195776128420250508519030614354592599812083834816679977802628761271382138747858183360238310422917347057383681351702099145098649194757288182773594184606291914084603716984200220962144527567437125643283975703607710914358959140043723549685515550627074345678082706073475438303757439604402258140414672090606717298687989563155881051479020395984459691780402404906306966568740636408041527974932722071163010081617194986568030711345226804578114229898989048742363905117168050636472920222615513976007807184987623370463160502617078930431830566611721579325207804852984658738383553580564526639107662475747414543372507929837843831154623544245787670030262507460209374260461675979390776283149121398503849351043742269594900329799151166070095756736103637015506471705149711974444992573869329688767155079909258307996606850176549054368522872287425863564716614149933824533688133775646182477080457903553298674593039108956711592907469735554788053635880936331340980646515123684064615256492376326287844612609770245799948068316946381995176387870276455938282569035544398044330915737325714124351147458728079256904721425031087335339576778498016700438224964312725883999889697377218586866244959365536780667417920754552779570815890610975758855525319923365598575251982954376842294086539019646590314212830995206730310679772405771515056370499513134203944371596303443833065660203718800264419972221205577843484643191605074918810011225382860467597712165263605482090875974978275927995449388716900328062914958342522546860018582080422157636101039597035766816092176148758146634944726780541195551651126694848984879481482589400708696941618405287578510531817045319366052804767723302212795736772751912909170609339176824797170196530310825908815041270754915159493725510574055021131048836799328582197927834370927585264271701263033321165091672669621296131796950482717605834574688456341865465716002420806942744738389937178438289510893263246159293352821732131770821664139561127675211859258781199168808388922330719131281744669702089688750057803290704489660059101393420076484104099182323461976789991418469127256656210947471656407859885372169529821180676381120999564407917481040400174293533034656530718280508567281575858123334928804365524014525088393131576221305049062535760529165317166511839056135550332779431745854092341828295999777060609327030640968370445123302334972944195429709448060032378685065765366112999026116738249749898920186870469488960123376269867024938877301433742713913353883867978350427612545820049579726469385925171002220829738179789004543645080531470142652952716830649635748949187375725061210389828184012044962607762665713243989224000412236148901295051392836966346442937332162255657873734931303884724283010908688717678426322260801844827158315049653490196256999622775359818850441964283981835959134996210297770244200004091874217621072624459417793755993235811238924906594378873239197629070795546362137396812264018406521781085328248816303596393186372403183178904192465198343902831974934006375586639892572570157841922183735710055170083076519735195297492616207047080135467127604579475022631718635942759919667380801921175482899726366252559710215036351282303383447325735249061406510665955602963484110318585936416148696301115398221716693655783045948345261193912597032774677943136937389726147815540779166330377198493224824451176274553993695349436430018634503745809218855467197115771644277066454886155659283736693393823119644876063318060292916019560102634415149149834325540332708557547345706518308893976039673611340720154715251517833999845852561261319443645650032371781475202469131675585975789573865228747903332669462471404814132365732661992155805564892026624286123286438003487456268345241476898093568625289580408690616508393492380544455220098743437239484322451118898436855885829140026609204566217617695001550551882067565906197945085896549545745164754970519130686780834695243029904352109969200691640281063689093823040195084156982697502414789273805988621626694139917442788248737676995034127365100132995244865852159740891254062634199073453027673756674587002268061239293960443221630609842353267910668808745235999833171863098817286256297663148396837483167563397779870869753350061258961288910005469247541600424219709186924489147471693648690222335757883410900443828247997563869780988246774252799193671008309300840506367724941666032727977440426941968424896881145330333932091926689556935716880453678025620702289254047524724203515026259099741821871722380574199282698046582419596691373950024439328933308524087895807126825748515213737036101658869021852325566101647077062088806160273027523193281487743682137742217620474544196747633735542696592076944831653216099115397021759307990642264156503263909812276858862194550965784106702721124694675490770073355722663776430989497737536790390854526640332437714347396029030234721398407691719789769841980255346014148322835085571709411532637840462972750762566068659200336818308473556579193381650881059840644983517031702737291522414755155348046060727945957782466999796838666391552162799008647495726451203347811420238496983366575711182822230464568071539141884374524635631176515141423015499032498261501056216298166390700995021382802694628433797320630635577681722748287228246626577406836698497214680752261424013383901441755537727526636299302709084442625160584476862365678539752135719462886595240413338895727936109497632554593904995757278780896150662944040545293955609156015175481243147532490456114597442308004417541565931833820329552915431325936953392853875823413846870409769942308060361224304063078394633645433397734431534158026156667506901039119130433614228818522632418023054799373271537174916862521059169201372161898201889757063013356293885184349600819222955104709916925525354063998820364843894460782466565943805436350803018407139599435476915092834296132407481972656863350882994259190408412224157189327867304737632393071553793875703789510172983929586737126230521803609506415573234690385889819374954329288966026383240654329310391683838538595396049293705279661479257196139871295796503296673216048215971008861044963782285543590820546405512401966254360779867352747427560132956470063770498172125567269609162520707266015116389573188735293356881063334839482251735061489731937285768117763941235317081847321282035199620020057809775484236065353476709804442803058754842222106920616330592703454472243781720622134345677709330330635152205518480558529986709080230840244977146368642579634568829861510676286095442075924880434922072923364385711321025300644266439218913314664999605532221725978023581219886115139642344815778528155842766918739496227010012210544999125761293157203113517277991864758797106196120276927803943216567029189446319290921613900500594440557332663176713737316177360845835479252943770280202354767777179638100448655448044918747349433530957013033980333849818808698228170166823377789254309250498262140581176828384536199411864033556292996165909527006341064208145173840390494172873980895943929487320330250581440171352571115344805319572857278692851507189851948272212035837597484100619922876053662872487621066447791189751020512241290723871541083191479712809570873329015180786121692118978158916185119528679996640609988975447769172164315951070043601043248295244625814879124009582165365155071327339080131435635170667367517513356428507033789266983090086962637717731560547115440804108782527578629953076689820995413354541874207355784721691696914483581344794767958408105391129448201041399937730825508974965630018514069086840874837803072288939021020532383302584021531248630075075760925676855933005864728710552595154589625045320773578982501939713047378146967386875920034595674087337878060007642901726358162438585105324895839760681243163715606928048818582193353335713616478279442720861619459687420364820066173962641704052096142287597320745384255441792144493077062171900697497858941575125189248958063738775879931279972971942429216907336779880778305851526656488364790013804608688841688884484118838438673272369147405063218676416122393202739329425505099549566567840730010362903192538368336342068740712270040972726401012403323029875227588398093622898467632500211865927005005690711511856365864282172689623231975709646468264012789977171298129476046053034004202940633288787302261840802089116831358806555315576182008898300804201494095620170338839050590450413778081102156683548693737697547488353414328017068182067077237508654175534424181387385430935857746505186366931111336273989682595526492431156747133325749822251071224817300934992985797988739189512664869002435819369510856220934385025172024707546513920437292512136942627700310688642476954486157859930546224180913333320122173758534487518802570774598816035883949448715931974535684869848690878738944546232539346534078041661240507144547603924746691075234319377498311379828897709785854659505722735462776090530067920617294406501998239536440636394523368136086421650667346497873129181856881020177561493070273426017333475138049258865476104649026989778018757897892747937053809579512668939616505507193613666018867666651952469954584248913419198402835976498685586930110628836818411785972906600823818931211134316046472861074676647344092359699674754793993102616122257247076917950390042959841209425134709400199928695704736965439142157949536940616177509669989622377341428376846769900412458417077364583463774533239566874879398070966767403348148357500003574907647053223862338642633001239748861248941916077449450966167236594802572359645778257650310373736192306264361256951272554205772148968117489298427783641927021638109175746143542800749664667369128942162367544621438284391735324024617092501844982002403680870427887369081683523918345278183567117344925996517644310043376130339569538342819098286490955257845134882246674453160796460684325319139001232388547258772760858690433832182198321254947455232556610407282010656670442739589082111188504723660308280923075105428411256061734431112364883773364382700622681146723571458058451853412227828842956788614987102618923781450479588775901043122669951107967402308205279986136992004714929621519958584620635096542507162106141501494323592553816648490540713231726576804364499305919484857742852736430478912076283053774512113497333462212261977742358627241292125270692546869409095959558460163037482971114192910710513922183384322901213512549997604797360912386747183729451911984148930389301252554627994780161711332920359651776702146702061123049554679829229252533609424592205661060426836569085247079352147242961928826491244954870472380627491392683697140783080278656180345861385264385709365735799809776799102956677871018560539675253077921418550849526068939494352363561225953372106448005833605728072096415803976646130342003745031579590106082966301570205163698924158608985334917460128004660886759577036925450102078819854334847331265275208274179216140451894205244077273476096932835115057750815949044917685284122736232601969936513975085405653861395922415326816049124929060204058626176762773745136653553255146140508927586365900911854297949976148581769300745757192693941812482216259265892245572607772065908115659460005684789249665176289419746702701155151572850421713722353452869478132773870759603568864849295336550942153742874577672773247056760357246804261034468524837073183146749506329858906165065063849162194302310185928220839113586964659177907718179143649977401433107843091448091518092756954799438980479945164488409274007824930636817523172302108940361814766769834929999234154722753693407838916722789010056408221416508667871946159877828863126028831771289368939946925879416997758358197288350405481056925941780782260344498405097348310492307953511608010866551902442135236901243258514558375907823658747958839669826472241049651191418203411218390164616632821102390909855705894116923318584972586311763900261040557329656587151151105955946227920312829833270048275810599523330296911744043884956417137392960658651639028155221076492187535903403617623151047986884097003890502476646099749303827624188514848831771673251725500429715641368819334006189889010734354403670222984368412415112719554081112197271017848979908824881065504940457844915953969571342754516738268455386221897764964224696412771835137404592776173778921150155719113981267813107730295957412354783744048961819616919039577401090090090795169285700623726675852384657900795366949307946592250432464682111417460562579693850714652826074448794411885414294148309813165922510564978766156217085799485389170461459522320660287147330550770011696679078322985129157077917052403432833587871974415801974796258211775415484376968772622999436974875251533316861482629829249345767030783866456391256383576168612501564747222678097643246794837235693164837060168359008855153867108446335301258964786448449354965937843855767719706175145294401955612046703122747352950510485842722143699121722744293884366864259987996008122812901946964952506297239029717050505779147080974006519955611133821554996729520991571726539629956563053991920900600379220565385570924884568777472712599664874916124455455824558550659826637546935783016282735223371646343078835846536036625985996157215029289365347533729609913648197787700113728508221805633935592197936663757970573324183059665228348436286569781436875404557027654487563136653183726245809876406723963889392131009715007376091529032849100661621576209187530268312825227998448455735373956909565254614696508468421723490401821841416589097129043428059123298841862102454518428531122626423839323764806751847784812266961631391842365420646720224349981288469371318479503236219480713692980115979978521242542535044408519050081913575565980577931471888079036214720263490519751905997885322848275920701427903412582175161873420979137675402003657756469521531667645178787244470757901230810252875674712297845594470587116020491695437101147956039063641869093776460241859666966512940330510063874931058152518187397899739609424940906668670272464803727550206429456845440244394852517820477424532305941170798077073076482191159259453811296518423395194953862019684858273346780344117974815421966690909435971584619103254356215341849658764930836405542297385512058493793751593519084731217548980447605811361236636038759962370321750244629579797373661270057614807150490829773867498033640954761049214750619286529290257992406564910020502308872808415480314147893748630098032137225351483355405693129470116840736165206876720836690755300340454769282866216235596793552457339946843950839145801129179792300223227227721151362992421846192303691645219846742304018731765356424645465879397593911930393411476337328357279749653952349836417772474104958506254843921665437168240377675479901945793756413016294725712798794749228365452683829572383515810340537083342548142963840622975140467790455487751527526515197380964253732605515981832495455339799103876742521227927754555854471182281873804700118179930984619569667409205922555986485491365123418680052045596719237690890637870301517781478344466296945590982643203661855137711303799332226456482912834410371032919972126178463639017909281395634531143224982133113697666431233821530931950509980413935657541247340619200244801146602402023358255145509201238567018293670711274480427634956571217299348329293313302579562467069557573122928819904266645043189021061315120479092836975885366923531870385358409470483155040213143442999756120638490653325054638036778390409498739761358958201514873889521377864640909826489243809626334829838520271074324577543081622380100398931589164830448037428184692454162857102575153700137602964656887523287216497164888148626803084435446960490570115005714457412411461646806371613726652451450946053028256678302873477673241856144638078525945069414226251881233336841523320920184580719342039871907553576493903743323874708250558866085114908211382467197929497416238125764923579710519322934264487578276111563917497938457644000597020190007118656367473847017419215116140096114745148183557330354961013268141915344958870685983772530583003292227414336195513729530906794796056447561893828271603025071778731167037707828268374660380610466482496736531291269115905473327274582437006602531174110729337426339203263815609403048877302952416130443908729159636660216368931567013390934940541390798937228497700716599202843487633057628542658368017965065156588078544433500173531680649068316680669724768007151919877968662215005208072147677621135379346332462184513385029883268553074716028440353661378879916017300509293335202097546231457429645062956090783785749234392865262507406761969261018302182838261613872789695375360651853524655883778092509125379071067135260818333264787411728303650088173451995346087023417108294259133160035761758693130965730172432515238172974123739079513068394485260014860154785334273948472071772164082717695804904077320826037192232420945059153891468381003895474699979091995290649958208080159713899167839984715531248752719087072282354269931993814591579852282400678272193920551802602123918346198875467036313217808152269239557211423232595614667797593311001347637193436749401891458705920143832716947358681297294790759536874661564614458078915069739637225601595369135962364409341231962198636688057522154002880543838090831286434994328276721262581733335151230544603667148983613851861443379794113097777245615855476936515301852760707420045036377186518742353690343842863223999905922339621058115682888119410579889198086165287566380074451120144789274817916222207363142381634806208837129772144201710981512918035911817833971420992273782086949966838314731544651752976416434650253064876951818308759694749496740459525126737872024637572014245796312249625716522986958723677715266739263785266375915100861513789129288547030554610026245169948753142554137985784338076354902956506979699471466291014582258816749037185372551792046441504810085485463835734230373857770948619672794626238097150901075383723394290283804688439388079568346744318092869380338797549931003765758030493889222909604200792596167363938051912605319393674385210947492985936197821355710641712007085673720714665084968364433478534227871268507931710637934447586363432933411632639510362838706607341941128494715208279288738106191016283523139417851263228590508839021093317902360044472705377944289743731310710373586470594146516209764480797920426450486235313405396380760221915411963956664446000908603985068451855496256986374736348669794217941964705597918293466166292652132633341311478489272564607770988981187047328420279968124021767229625178460645647844177967112804303321090296059178206035962557585815006995982433570168902207242917688243257791530049590737744678961278189126492657570159422384228633178714461836075265787715733419978928779016089642955264790470583818275452676038143950836976747258898555220806622159954378458058816640940871153284045265087917838720583856484020150560221792160020404980975839844019225139716411007914133830289145115020477817433312394050694673700834094614011556319314249464058820250379007442025784649475617692283433518177995293659653118528807049212103972257914331002038918732081487637353070313787835156426902388936741382479818429974947854378140142050149424993245289652257981358992361590965710751195102124519535651052303334968452568027289127097013746952972601243131687740321329526082350294856372127124186799205906315513729210900117385917616736770419785214515718740628426624713305611893052084650216097333455884186632189267379175717768670141567916137699212125977512559580953250326676070860236444159492599393281391702334124026639570596082255714953987022041246083218352411396699855731604445555951326456595524456642435263667615810797989740883250384229232317634273799101083704429133061126156163775120324679151753063834404882290436371061803177907626668248342323915447266160450311331128353925927148684029056747847441424095666845737165582420654799437880446159410506669736389226274806344551946869729914581760344865811961092721657754937821664909802416895831686966308835012725766042573472632752390999824653523951987905267063247443689678355145037522016735022786979457643764395292582368490306021644790053889752968914179156108404596473905205917274621863038078821264687673985332689413608792485901872050648038188103675765967780083111011752933585750976471724196132086825336324174752648441034238361573678910979107581149390118133629272089743064477608561992539886720944601355562557758237744049473037918930025813515427937100138751107227076193997578292650461840798801698425848697810346456415102509789585018732494748804056928451654576423916768507527204172042297073886756804696357597413602948356303764506576952675786706845550237683115112916532368276682043834798870150373868653355219434256143694018308717429815617835680169096239177301484201309863923555761221894855807176461554998775532121520568728363588028293806972492348424409632828946038339437233529917670703636672314212885577850405734672615942357314111316504632554422721117055831145934717363435934133402887712455788579721386471632341349661077722892170878197508918947178240444918519874152765487892844874338695046683310523480629019980198795134688293020598236070779460927272256816651965864334126874135618020780661832589421321081634604777388656139695029544874357318251844148126460681572096389252473931088303092642606752655509610623568712723320859190466365926444436659840176133770846707335906227245070482083783576319052244057196886431057837358450092993682049452096971136391783113581261363574556916779847466651379136937364364624531662731241904521967711785271807209100930500726043923214695366515192873296433215435090329913226582652060488900160102430935542960630875981129481210742521271889351214645543205289935948173398610000050628761707715868799183848514780258758022398885979469123778916262738819852606942743890930529816069743409369952819511486443516215669975038053655967925801127014259649185229928223019072386227714646105612021473396050809923419291867610302674423870701991541118655119347359684991394064178794297720609107927391750934730677966233799746601223765010663266603470515881782191057181819255032112504378932832491286828652827743344941831627714373849327984967516604442665821357152758447555633989612070543887224532892696879329803093658008558876304666471558100179916321419688683268702281800932891180159016103397752245066713381134426688397888202099869982651725840234316597665547392749121140166561581411292176915419174882194697298844871178450978940405816722965916470375064317056454759787208765693043322578026829647081652512735827245643643567454629208215987871688560472391551928304755123561702299242741037446691014088676365431273066830770040583727751824486096179385029124027858779091571972239880499203719920723259672880549247042577706440791387166985309880942236196249834237477468240172981318240172960237994680479013710913176156405850987300058798918024762444627157035742266193139734161531274164065455584600865954749289201761668001196045663493755904753123344899666124311929432100910368705707704936869729005917640798405823027769641168849619149995480486820774777207322802452096639766153047586243549426042326621165616748325193629521656176812891841588138162290724111990166921757689478398380871883164072525151546059498035340984812433560566419470682819639935813607997827908291620056401265649185695330213994931212721990927109190519474468313567534804814186835991740185157012118562661466094840165795587480243476796519627470269641799735265845515029434546083291898462688548161641879941881401905716259779224095514422592681566197265772112270473741886020390241051740538286571817202634663692912900695005505417463612003824619465691948991197741549431576203348777957896300870307493215157559344933242401775373257944369286810943445692123312247594308930002169074364556371894046311436278108634241901655253978500634397598017465856475190210477274154911263505070451027128373982578043149820989634854130555732988888436205391154287570024344981007978315809322426653115663016246188856288509973647619913983401693070010874856490172293692883645105072069595562075598664410450311288578236060744734278604656775488253542914126899727482573691901328415714978378211696362482198111465807136057719937565462444624314362624341869190099248569274395485616069694661591120179311440547379916080016834085312147511610615812615525084675927106571201972715817115133089153649084989827277552441078759817331082787217795689238029802791886108689497926657336725473467480943943449551497857836002561992132801526322376067761418954772940271675102368756575314165222255431987580691629385517519782499270765075247705653047069968878424385466690085964499056413865077956035405310335530499585447285837710938160295559984350692519205748874020938293451375036888552553280198947686928908371966994883324814843550071805147591782080087305127911743591835401676546251908136422948044320193321977672633702752112595898216495454562533719058091370459488552495200468366214310618945500714018053435542569798873177466195062968200050517264891169229013952297608993563950169618417678271794365923977572616446481002262254905770732642532845436311682126054016915370073857030291274229893850106512720064731631769829250721230539098995426618345307647669857732865650891441939479988221630306778574076371400262684065974301301395193597954063645601938075138561490101157114789452117012131237064496037832461975072186473070856118529465721556249233257761847383527093323159559586751516723282665799886691863391038506910626701056297102763726211616767159679188092838948148767594378583767464435856826522561083802896139130251626228942899943803470262932919266334258684343055126800514043408587978503044746971192704376053659818818011483377040857424927454745754503236355081685186413148577410527505879221328999933494369482270312364369026530670960393527791425386867679972250442791035307103328080951045753816164889274296076305844373313359548888494782262543335036862459242806114824730993420708254902833087962938025132760184019980445810121017915494380837938944184540617000636703421688327816738817078633383084699069055040600143133217927472770729987943845804166168789940544222603369170434017837805513216230622660490384998941706507068809058228501455975341865867569155484960470384873422208074412822149174922839827370703763288101768438922045027465021553356813628562299459716424205540710843144419613042729141745067389634636235337204442872759712252884239189289134828679996719966532845891756986290199076345474362597800415691438492833948552761564482102344261872556767600603987833657889460854269768598349698202045199108580831727154603571641629505414108742216844442756524029884752384992898907758604753748599674539433002142531930159998852112312769387727083958124375664617219040967588832107060645946692468475451162284250586927827966349731659393362555833737862388988805880673147069223692391342472372535144609823377059024605671351568546497623174043089313544264245899076257085999638763316686053945061826598960118999318354520523535440445107882161608626417585572535401992096931219520825813740039593883645672996054110740372339234931257977278816056278690657584179804158359180245260874060510740042596137546933273956169358390380686474197029234391733885760740193101141007927897065988963063010339657485863801748123761003970755811252234805520542195247533140567796522402137196779720872086378507458882046009425936347946877153831206446909968666061283059963663378337252289700775233887085868048105067272231537590699961746086858343144418550711347874726624864291478368931890462512743979745158580474289412313383569126676531419650579426708887442949842060079841070506310449083052241948915744943918940765900927380843222781924900703635212634699662191090608322336341721144571121279474310557067145411681060562643078600578872149113061724234016799384891311900864495998833159016442677132417752420177441707198425340931317803429451021755797763578047656395429733237599476461284078513962596426400307883574317584482683623606728906845395829550927941850998173164167413261668542246467613446701479971687130062580153067776469897941825274410334623333660484513380915432322448131842281220686797164317816007391127316784663626833347327767584834101747037706744120040640499191134173181255999524633274804934055642823300281362037283979848456196640427356161642383353094349133478544502682478101051539317891493165070724966080212571190635828546832858564832016960956673333179339581794618715232432012962893101536024017844744927353519025661503883298693008034033106226441801761771854596837464733875268037400760732529205388867840540435996643766946699509987214087780840024129998259780998175771746614541068662137932246261333168609805875901523704620003969971637037030036023016081476173696311832752296882540339704092430340886154139067831518958255595564801710961967356945116122949669646214222891684308585229590374771420743930224132234907421542568016273584609799404077095223629160461300710637373552977912797037101931654942703217202046834453863524264561983362893084747170986099368048711197862242071980234090159619551267624951779280528265281295276358484543116939160757949685362585196800281645151669309820192304283629727183653315981339751603048428575736166862873651338856236880462600464398040380711300736701189293678214824744327286597841849653714467129383465405927652872688066721805397348325933289876949287061236470148599276819890970335680524780336139908171650700190501049252798524530978916101450300355678678444831628392571406810597270055603328966411099474891962231925882073921644662488090730311315595113294673752097322170740755190401228522199568954491415958226613087867362979387679509844920900039122098312902215400071227114112038701481555291486394510990895364227538013785523444329370938415848423974816756506895142181254933163008831457127571697566015669227352031923440531440597301920549584820051114295130292340184585146632441125821963185106295362193146963264574136011138389543522905305256859849926645789821985049389179656861797091967271190811013600177193837064725262200099429369531786053085078746884390880145757012860356837535816674425680654989591938841415199640016840558181941717857529324855441737700847187176558897393503516416931913462799174714548329435140300914117205925445065923552555164942384227998301033609422377324849420126623449496902044511151403002868533787842864431844168265997567221015086366464737225350609351674869006404359427688175741659103730946919583033179098047113269920682220834615027060362954671079964196096251280198595293495402623560176008668145918373080609885804408403763773509569117395152745361099016204315634437217191638844074779230902401678842539713030911812307344490746770786743273328700329983563666911700525185538546863446262077328363913424860773217550378909314585784034032939376050084224699320312369536869537699300222734683954746502382902005251801935675065224678684407599362642307029203879726518464568708930586924617875257858397654645005150691360242893171179530425761542540959897445914119539577799665265616812302774198192647669060532905248720443825634873821104410275256197593621225004630180280470318112047277004349396954111949206243928812166875732318557047072458598279770063144196384576360466645558932524831087647880097372054953905870007477895102110460912573978775035187634326828291844327123890469577128776738036164113935273581068923784866501545725158891194771837714655880976429057623733334626331383393357750184167578508210774013998352416693820633620401782735909107958224541543729722633230996656584793280656738431605777030439396710147898182938069750082035967212809814482551803372333225334902652103096600682912437779461683897667607512338056615203493006192073473445453737189173260125001737675177643194707820052008092250109934289093429479337880665785314527848067408958886644805786769568324269651858553739554929619702108200219290128445262930834746459892984520086864283581239486145048220572711460526960575849729250588238264637724903403628894101407959336229499253201832691215883165303451716790179086394677975067964386218955868373825061186696997141783531755863791554148217437545338144073479676521702960187483719549470871669230837411948456037507319461388164925934266969672111314794898827580290968485207341633470926368411981493082330727319807417011412651264546732231962245830179110284485707997568473674901258690192397586342531961342396081390253290572649757795038882952691863919840402252199550926541837408320487440817666702962846555771292001742607158550667804783429716510278248045813955504779728834826551004709102914666147974842970894032343128081673212319366879375667271825595052080507611145893203638998545278224884680401315169500941066015322700489827543432773631772082512289745934534830547577264733362328239023531866436236241651958444273982385085678790537142651018646471611881924348182884419892073137323646160941499721225178802610187426614467335479379014774681068000338212298012739621630991060131102562868081347406177547517071400843456664999264713678312933651669372338073486325701072443259154663780263076912350687880864728900436536453487026859275196834840789185125776239852683304902722941731056568128039224026746472650266048665737993500190816459678150823697439501019984001098721678792800939516008063867770708298134560547001173560241028885915358989447690220365084809334905560455570959465725037299690920877855682061755343474316984515174392607299250104405695851281167537699176621836775035171910143065981039445445094763531619498029689816608322652160298698801078332592426731524488714303186590490631902802028177665950454106285355669574596438560660955513252313658807871778348653181363551977067189750642176883795876327918708570908915906447875072429705522878378486857952868273609193302125714739492372008429176481814882702952891685820969890861789738156901776395486957720555398933355354262650612974329428891394717467466264972931020932750478887168530958935506164256493369076011149170715026916199262609858275807448715140456833228177100233023902008145050590647367220724049544068282269592970521845727580870408702202292071171682949823424408174391733550198822051110607355677145806734769252381401283464369629512709573382915145288299727759946759328781466920864444842223976327570740179519804195154278966377251912111939375273179411670214203534173789286387420449957312174036642941998629398570458962296436722196176551515087400701311070898377391553475753560955664888501238933201711442491177725582670165632272054228086162706984467201709479779705686306501887718756735405962600045428698267478859119127442692091367192735672182975094783060972046407578874408862330426677661831758083140622948956476137409338973546235517964098784684019372035848010383968274635925738712726704276003911834246115134308095506762603718922593185791617679763232557860813012215462116594472010789262914654884315647080272454506219351530327135889715234400166068382496922403804084130778752949177757245289574787962501308373502078993205705037286669540483446923258802210668573980978056654980341404996950983434139411924452615359360206641851734660552204903860844310232786726082590840586623784162681055803058831822597541969095629912330670986442307601282490305785013456553508815561683242967957838927305126309054226911489613261219080203692158359900644365180013519120558951740470949288909835624304869339102366624374274406541687086755548411090127502691789357052587886812885603703507022226044849803249438882161829393938032212940982896117155548918980585605998317834598565869343077039264839316386455537278705535849466140786263285226125068240675375492073886263597910144387634733409002384836968485624273484095898924882356718433963080018112789797182048935538045976741891236405232378177221526835740483696197336873755665932972552377517695807743628556785036205571073640223640503308328679360143524406764191540673395667021342237683461715410658913358319782552506243005203290170831415290266835174935721709739888483072682039363465273839493920832533256340293833397982384553264047811284852358787924962654866887404292434163074736712199462009896503389407230628000777271890216820144551484801911470988020673711720816306454539702075381604773034015080731165148440198901434281845163542468953318277317443677186406322978703800059946360536301205826285867740400284301016658617275721496846533925741838491186694451143784194777416294379120179226401164494021316799693253424074417853868654955122353230595485002616955159601113815633329366721994697805934183128522205879891832181642833960966154393406432763801328782840084590377299627092863836136985710186068978301943971060572179519091910403433748059532860111124962440432609026103174529267845124767272928760726091100470225457904734154374830140248131209535259759507543430236827046471165735925848161973834230189539654398961197050832410711871363531485732240088727974924567378639460898117712296203375542934097481865067583891386138732014946392969569672346376781030136610091977540663663067527474659292207727814721516530787665647694874397994392100073148100196467496316904711958924427070691409807538383528939682663747880789399848716487006499536405740641052603727259078669445820242839322361878091198528119950375270712286810827804000240402437419260071724127385158828143147435926261192358596206704380914610976234295333159464518286038833656877502939893155706737516762034654663189656141336621586454004791278221622719869952564962207648004944021450991415510068063429038605140960510045072937201332475725261099177671728053371973036529868024226152327427854543355358092305794808171818968857215513774115852306244954084324029873406389727302285312127797245324751178808917219660544156035827113797552687100120419960710384851595915682287436350419473381009774736566487060449021156225093756868365344339638122225819975589249301531639813020148947650738733640132057628678859076938971552617084912089177269971668535491488404607789783269915087586513171312813872663131738224243288483798282440631531604967719610762013420936008986558381837214183340812371468973182871106670911732898641089613388143976774675196558112335215412911245228540512176333034438374533428266734582804102121155134678984539665357313567519545796039490446076774103150021579883251887798188011408394325483095088813405549581152859086690498078422177623266775674972111087304960045661341467240099849337079823365235261168596417233772548542116524557849783566130602498068946331779665456583040452600148720765346126142396659814156290635126138644490718725276463491869482771946608299678794827364677010944110199169243463901281067116858386850283396629756927799241414961468683043935910224439963512798380316784735400861258030738099485355733567588930724559861439908635998764656661865189006161803178312714774400247458628983876531065129472390312802180058116672353307847316671682706471255807930309880902860253409627401099405687742206216173658228462405307592348143150895816542330006712549083971980620496580447304537553353971749613017355416523906927575919232472225934963039531572981673619079568735102979083236024825145022420265678667004968514432880280037357982774126210561978481556238393050314600312288776503857175660760461139878543024815489280141661502048982218736749431154000108308386833812846381909951115847622292082400140032740622557740189717207556385630831877282156322905268672425368663127586610811516656129376743820029780479657811445682119483901432216475644082309635767819438437134537205963522432505849554803629855001292548720231710012073150261813362960421511550335216620040336102660346234913134857166050800748035368875218862569822588607290248917729131433276376206861635862923248851717227810740349374587762582713551962316475066278760527301452941153835686156838218938957776310973203235814643030184438917055612838744541474637068569411835423800459828516346830644563677475145373476252259910849935425726680649220967072387648198993540339881771722784404876396778814227902860138256506805831695526116297077156589132753221783596220096730647382182674199449707159823313506626063879665342542755931609967679107576992797528574552260545557849000813037984671242013646290326640618813412536362763440419195466094483884715972429659415329623676932580823095233613504154869626216858405678921871736127402167022704622628650898010392058332103251086359768789877247808494635007315767490107076902603670095238378550181588791186365687495454968229129770263603920476037164856812590858882322384182174058581063726628954633034417725645532112820516657622635820362397313967573834576084391484948533052600498491210930716992953665697693853868270833170210448885774927007704816135601722071855448407800573966004272825683949776902060883652110294119487362512973069620217925943833544221373974738445107650427333286465902574001850966159472082466907760063843681062280908726755573910377780721945800028122106580309695218565649018069435191408972416201747921456365395992475848367274105801296138260372114893638706827058982902964374198592085000613823705730769724255011957125310703230367391834105077899248732124099352330398073280910064238754421638500887843790266813521399893079412595934045683169368719864439736921487476091859697072479436745262040514106586946980869925058224101441902773361480095536352499109730209593149926069261844401561122453575342470737654322976927842219871576479771663555555329288238868559612032426740786048289846995430720352404711833263538052175067059194757195449775321191557951779488241305441485762422429501241028073007133943593565611857286756985531039038147562837025363078894565649773100680899972804493909183987235116185023892382112081760425979405540954823268203243046217722209245786122851611151859312566407669310498459794731847009518255827137612328692201150932916946586235852966278014186268691497373744340994008692732360840468840058582405474562188574611097894411994214204595568607714158599117328929723754940165580319977015503615447354738624783354680846832591885046127421078035668630905982030235633965190853269095518720725104756557970985941596940597178171577008481794531929433014135669723660917452439977070126567925313929398055840011152648997678379497163678345001178117038919907237366101213300982067352916675178931745454276430923730646879798846000219585938704594123856407105734662393924573472508152307523771210159892448027331039429018321257317814009450156623076391409246949232627892976855237896366663606314841066346688675519092814485741938306491981548259897785508228810484163249797561770983315347457819953116580720984814432504337492374871239927173688540652830497525545670275862790371589796038063595941660992505800116004431930881516731088563912402927963251692068632942804958487050529493672332174612956386970507061063423628040602559598390602265689255489597151555365584965186025298684435587618795990256009812983994857153412434851289501301797600457132966511611237122572114425246836366591025160968453590929731743112874439266605416900842298217581117132585739576805615980810160593079799692721712879722044623911543215376810787541545428428313879677265339378676027556026904725345107832156833908827287092044634799614778653586347469962042807515069103217841497669458008470836368556073542425580420518783763665369643102957953016806349974515841139114390199434150363415379090304159502431555393261933555199188745519660369500319752225410020470602863283084441819748302175463815811231518274982135049247562710492373629135995382922859762726201695022906132456421345656064128852794676660151658076260784788943943311319673252478617504153251106481683098226318297835387193867827517843941069500787744083405833307044736492893025242490940839633132252062912108261911200249255982074763108863066236388513237606796530859607053148053750693290870998594604124925592768169961731003907021325333125259163205734154031062444415593815839508434346880294110178113828497660893218235080949695285055253821112063582708959886502980927753463960804685439523838904229661635099941524124807915314584697957779316620546697593583081918488159953762258346829624112595983218534338889620890398923105034186688416219594650563983796761947692954057539336356133384880687386319857182066214857133060199101830354519942999892783403870058384300870321791498135828457657234362628597218468024937187740796262954524993743452435894894404872846886088780840560715160025646787484036096386975776268278020303975841282317978449314098971068478907494724014720179507229376719970604561229236396160191652295050212387567793840462572183735355652984395340911171636961025436942625907426581593078959129414638429464928446913939773943211030366327523786362566878671158915707840669075821547038599724881084403803245456211079370529364854437392074729200114041623358433202153643238314381839227380290801849939523529305366218466732506973621889939544494992712771861433951228310681824655480931044675977246363958344949354596246368496763365305283538545840253729580000342024018217068480485907120380857520574106296030006550374096053912273641995690997960397474817342888511169250671343763489217902548222966440827262884863896346333628140736191550745825363204766904143226544148035788473566318472295507768420641871612158165769364423377630018436219584298763598955710902689989098067759961030400058698986078375563263500857362965497826523407763552314584391832456060575128270518790363757200480760222451214754929105636363582630484807603389119851793871613470891237177400100827196437083396520181458758789086320544630630815591398902324178194183817239390003124053837779288451379909906021788039523588950594694644531637694024140577437619709395659008828241968672177208453153997126010409149638490389145933529985675313245557587329772967716319480312915328699328735229596126154590181348887585516467807350188703912889982094767253571008404564672026395558056846398973627350588763869360594506676601458614635622973735445409500217397861952620703308898506431208627178071919323223172306534012943841083227700937552937340143034387051042382629128238655429080505157768345755203862751430973443197087216095450942592970646717925727065486853693979156207370813694573689927944728994543725900588039837629104535797420927623543744253492595122020544840791613788297706455830146407383229892090284913415957558744572187712511392894798019762539584046442841996137955223502673360009018887414758043259212559202459327410959407934912461195673394036335071461973463195811650104996580869145037161435995800813869392488046087702643145254925682817656591364431341366766701689396773603498985512218067633747328176133154328126259451969038163905377063070701994181821005266722824429359940573453254582030104602957635665319567658060028821859499974770787245058818730255680813957053249470130706007952908469064538350423697790016172030945324004410826613029701340176683608911799260321997599249752101302005759457250980563686713571705469491623692419041440287665696093212816550736599722046787608021259981591280384722172350831936585005922166920238039338696643747702177007287497695193201327870604815942746288729756525903903634892357851265165267366076550010866495998579326306453328946332008417136129583827390644785303025803829458401955652454235406726012516082921718516466035554556169659853900149859907403937916628993604950256179309172030572434573623434560048420798835230966962481540600968075805464238864053632679815331513557401488771349373331191240290903019671175555610202906479265653442247796321784764441180404303805383020735802971988462910809689898081965493738858705631297332840272618735066521877646383110477710326571089231649932644716824117658319955373818179098422560916004679143528850553012152601601908300176227218723704412636287894740973271550186227207032332697751062539201699933373245092091296309376348165427281102710746965043420129689556721699890955397566409698926191249573077704728521004003318999429415660229742765570259920505596759351468802970417694740068472544647356512153867007340272651719518207137929052745026038972937489070715306286282829196282902940135844341178521660388932573835720434465986701200352143615579440620119721954146079051930459487743062926724182026474279508094287777689143314374470472753528757175392707859914603628952094015535224448473694153708920581517247521106098675150254238481236354928525222370674580372502707027787746403811006191043028879398776413599669317877925194277123470154122465218079674617031625615479153894579725683190931320925140302595240426603388468706854515129004444605253029258968802394110009223296697971264811457216001332663940955599298881483922510153385147653934665468247286803174646775074594314270690462708028173033775239024915488214129404240443796630005842303452151353030301856771204199003038608098835751432783896166945081611443064523462195517589329201455223430510543245197467573703714893087255344342015910167813197045329934940776627025910030442544144387098440439824379296993073521164038808004659894906364235812607805806056398991560709356578842844257255045594885048656154950813542084484012323087712905359074547154848578434534843413260991118372892607690710719267642071782941952632274866235961693644927227193503096298116739461112101748915004486340761196450561058906966876011671129798989948907539083204532313614101972503954352324618826716896038878860719938052208303196671784030223081424812902391322590394678459258937032825911122908328919799168735666576317558360068478595020770859865860042197297026860305169838221648755141432476915318914926452070091128912163209795266057174093527572189422067042948488005661947421526263159888616157027776961391809532595452239762671596538750728309901160110784801363797979484636585285163244640419671138645820110985214559182749008513616547475284905968569905391195442886258246617152022611740974843954903174082517120884702267922378404414835118258612504334274293448147549810527885068809134627541140000553343091067785611623476038529735400837069770307128013386219316188459328902312921749834906036357298560319954761809718384257402898382599875004753577396935863094859510252244305951410525395664374336430127540111948143790376245742377534128431118866600237017918648391524241321523917783529881393025624559310993764840503631575556988350947120338192068606486518647445434032540057223563524084737940308479568411308032041570169441392258120503676979535301591106709943576381332513024334584770482372457125923039815506718287983295110341980967219171308578749409230849633532346346196253382702725900848711151139966749208104652098994606115896368142459390170988303660423608212030284341338199309191270226634710685889303204872624152344981575902966757357224966918217247996404638315919641762633008053748722483365304253382196794151843788732958561418847958872020883704918353747227466298665986489673132639452336919397238991981895570680176986272275074307511156526515114441582737052087494002968471384161379395855132787463356634569948768743291825615036124014628793346295500706698620265259268419720283745597280426429651896837979819740087687594218243156979405920277330053204285454603990461471281707133001724199344110500993062081218756056568141684345247862266896313996583918695295490638037908475891571845216934454245537903380649010469396347596126822543889269856578805927166779556380034046879956986223168111795300455446443924881159992352117266969603714042887641221800381134918449010535268391516429259785699454888280318477552267808647442248358629790489071732422176269009795821060069995191098786485501611479630838121322772283564560097904644962043609204096439571096009149366634164380513507942664063187560133969956922699274360517679607411766762503608546460438847768498930472419287178937218563158858829778232590006566446197304435242023133129022414062147450072923443382948431152865375891031238693243986594794067210643572328448109216215192115270702218677987126031833760963600689085703279698814884370506751037783742756149190463411300963677632280284462579824318684411610685845601346251758983767162293650633562153014256982100538410680400143953833713768309617309777565335178628362932165015590998337793867472351229705581491705352052253755612216609677167049471941845077466182032967823645498262856233807161098322304802372371072828243495212457655468636422453290942552886163806367558456098823204253422309116934952264079024753253971548546693206313675952131965444564129873005809546042830617076143558044111570029490145858038173887099478041145450578134213052830878902579432362225790178213058516632344347104721675666555924135722725729999384991718036282160321137567772809634367950179384770639062612500836061179188118003058944076495694532203107995416943057406094321653292534831290692240785586925839421599946530386700888113405878450914868384038358585965935183997990566753528885414136105211075363410852026426876083883118798218661433746229810243854846406194307255214727861060176867397626386179015884631841131498747076055915704118630520141173835996162410465468612856771660753880282199290332370883312105751579559020323998208067640028950283199567929949392104796167133479692286154532752630116893445107388675593928113154823593831254708593144058071090193113920239808135608872660846859955738121424287657443905462486837642381762183687999094174332164244214927652906409626096386156387885489744169011416182510879606613169926450154020505434716608743389645061086235453909335011312069389095454181365073656261105098270381804259995325722876410947327472806734691378833690451784749745812033533307669167493798437850924501512325431316371104934020577988725633145379284465402691601660635690029957575359814915987526834313435615137335602237798677637810442469913796255947833209366295187849861362233241996359806228173814119792418680846304483058687708263563766741057841016815314135388443329109436168778680597527342019251930176748657192625269407490921084760104709593367810385353895416940721490304709805566920547254087347741254801131243101638747921549224324568460915795493962831492287644594133379501831599511136452989852514476595670100698371321211061949233099411291137306982012659034971822574467659497598812560544930868119029313891049866166772118347437715155096544874529885527746369032772241411484246128884594158534184004382785216518848865776961652780688943010437630384436732711174993043758302676554130656092026241823005616021788672101500588772503687045834342874667399886933509066231338792211634327039304619120954641687296691318855533535723649703232433302684092014107087655146464655727618103287654140226342587871337718773149057295485547913841705251266924145077074658940619600028086909047789378354722240880071004213796972099416001955047161203675265945435860389599345146708011764090257625004913502925444452143621895287086488595537034761600727904178014221002380611662382954494946028276665126565920798767072275533973136068931584778334424196100088267686270898676664188301325679917478135085061028617286205912197097636547931618069366765981763153997202293328951781665782741247391994170466437620588227510454627159988227560459978442845699025835614600326916516077139463322318952169427125414684698926659932400310082936351360153195516586440558704294321323597998862940313648420329240144558101993470468030501358185635958227644151132751005086485395658026584449924359159731800255442157943368893188816165356990898182869525266145136761243900155727238178569054170650953589969278855112817232040842279178802333249005725131454835275267754076356737385182707488830717350071029496789364187809403555633534939525620196444878941069307235951620555697050557946600055871263590991681765811943353177240070699388715750052645856123306011617881497320388424453842058767731310770330756874128219591877839409085214796719668342756607796477426313797110180742127182159302321775347225682310649533948505900969628455815565548698760540810469933021563692617646964255955397499379776699716810498696346252257830436074218247894322410308088712936282951495932747424264865261273775928222296991146611408807321486271593249304778301119790245906117986013583193182174747544236490300903199393431811366425280177569950827375892280323753638835272699833953699118516863622025101648118305334962121764439995733633566192190499025893756962362483090097470268438596593573207159594037164866333860894077187529885317006794343044874459902422254762006901132821208249026753256603735948222365736154033069214232900247666229401110377201719209768422656072576717896143657554535379372985615581024979080251354738844041895841294989411378053636361031967414900428865444340747205856081867006687893096483331450198196795546855282760775102340647372835090932630788110260036474000735968957861067191865745910336921078344063638043841905049852808750749522772250826997521764503177870206170893620584768563896289416332433891372253152372789020724366426670856077567623104874456798805854529984118940722425044562299947338652190532966058565688375528576886274802794305834720884579018303036834268179228468488121321650491566871933069465197707252423034576584653251174364539078309526249515356737413948918504575450538938078913753240529934680104822475522134649305241833188612480302740428484210675517183112533638171504600027353181808633961252783358783248154522862715622868664947435181617893841570709916486346513593223955291441512300762631898312088491946565846321444743523850998612716065534177582097278384024503982859277326830228036085678565918372311620739417813786727175357728739892760774817889880210537880741882786866314488661358556589534004742912935348614612920776995810022856765860727038450819386553988158054679252197757731799746958021771934279524909398055212957032104199695246464175758003657862223183510421166326769798104730588979184885075978404323987609438430637839335508909265118128525158257037673229231688161551149678094845203841379856427103904410540615621682948878707307429984287296952350810101039250753524535071591138258154965572874761634348777091594300706651647692875154976219434096201096242173166037851491295083576562576481747145078098248202810552470083441990816076852842280370696332137470942066936616129946440481299536897403539433785730097795344781726136563057905382302893117314982785063296896283320394258085709759402882444752484134992838143666855160792030366329214373974582334583312963349751258768251436304698236621612342086282084081769372291092608674235545164597869570614333375861750996083829356326701516272078869800813492528264652761517244652529030840583102559535362917867926846677973751345165160879103965590541719414794346131999006841749370739714302285782363763088652252711856700286249980961504433150725599414288861423771126312098153373368944396729371170400769681558319208147366234985011331840315113867895615592273701159067786245137829245054460722143692269139751402983513239474033974494068526040793543599669016812998061969013322688641821448034648952814035886895746842394809821453615250544021185133969895990184863772028002419945285787015631257616000629180778303753309482494686004672204183173673569698056476308967274213894058070899234534077123590009009574562748613453263994535689638236798525621977004999760801836180895749672084434122896058988021119536584443197160334519504803720330998219197875363997733848193304003541667210763973389341895832077504039974599275913676901997434484273813204564600654977785699269513984477985737797490960024659968529052718176585686427755871857478851123661073418690931759575902348006177580271876601855238787932862450456092766748800487977468610905312143965597453766250420126219661504217439392792788369952882401139916869553762439990562449335528750223070045531378758784438773387711765959631583678693818678372252572208202870808825586144933608924652856510306970072749827949833486095177172720465146307477093767417711234616516025418787043802059648798877417461538613060534450279608883717535559828029683136302492659641087902538421534549892765002538662168138554806604287755748447924206054062823155393958473110946323004305148211475321121825395713428389683918986122712790555907644024365541858721702612226742976007743100052408148415094476602596621271187838456426621144794468171340371009156094630164336020008047075956896987516626558963673259215241603392248445718889258093998536562603370343917308645207022401156076372934709121299462001153352548455039509591798514935736183582773997219690154231451238787281947436040632932514008842442380213424631554333399536906920898283897195070226090019104606876557488530090291897886215503836041177592308435791750208836554021867606677977314197966214365112931091396437950064585448990102237911806408698658213240819241223455457903458292325673355337771859200049224650048226366012970650254764938576803202386559727515733075261420169345340507627913705295214937967988290925673918664050423118571042447603574297133178628302121172615185847118698239674163127242506295354540925297906639053644982751791242226147282776710133139112216020228878918399796789081105562698232386377763919919837945560700853890649035939513732996922610833116871567408397048083484258294675812586881927945042776841005754264774505637152547684025121466561307296632267319994346456837941588584086518316342816523763423592891201377626115164518728901916386857790305976453231992831455018149999577351918635206507501896625012570828963259192344826678063868203230616714616277779366769933502529277336109986006226253338291278468312764420337056299528777064911374211679621389849350633026041625602156903308947437678404651669600881537629260805566592853685021285664969532140767612260485303537127511692247842644335236757378673050288993992702656475901216995481298573325134021139085826792778947383887832091022640877265266704335498544179834853177825593352893902497823769478169049755116268493168413809493275733633359365128564257431158175835871300074338414772216489616825952631588408108609663845596441025694402777868898688698775316537084582943258030057089226796398847026687596701632503794629379120747560189393515261977797351190107191406933833771605254339038130760267359007096191736267598017302604754264815208094168700604679810255474134568258560645307420703768160129126893154791440158725951755314024719178679828916852561180283468700587886050049785008241753660395429798369916342166144376979762872597021455636752478188464226161483639362236934635498314550205020799652636024066504006572310083910112975758579815003123619484657961889157758881560554491705143497598982934965235092023529876398117940953336007270230170131611255552205316106150699888034140055003732552984763691291817442287807586736067567813733878819051881564205955253346633384870947095414326768226024924727578597170824701185527501800863467900265846405382594949509082991551277799257489182952666437084498567019601199924642316004445479824046218109182442916878022374580739179693835835520474072047588714282810352685370908341464963695638744738227649552990335650586395003519498713780745256585390803801034888479807046294325986845508602039213690030403155395523075780574037029453733204436354912161529050889646444727235554707793818111917522375883218745539281440341551262927874762861465572590741233107054070442708151908478721064876098960426241878802662822232996113100285148982440561818460945332121917258747712670437936986935714292975416122302861027037690832460280975058303055330219214797139605641280483016235060114658299695299803388193984084324752742241812965103275861994251601698078091845483142018726979849406350770701836050540364009976829624084034657082202662214057928355775254268895479090918912766578197568134441697928312404079420338683050419070235014435115806830275321376465407268981075990184069643362141390287919820768717278406677988434138825340305231938451880457669438051510809828779089065361459537388318430168954542262016334014845727089935711796427921357470535212275318014737900363089363215697135875613397036692461730470458798809606154856075121157273234208836407819906455750287687401492769781227459614584871668232484837481664695787477194269145056880489281634032757291436321028020315650104661360592096417314054008772664031325092359783109606913880755704034532847095911109757702224199435460760086183530756644395846757050064089938897527424154534073731776181227459543067138665182204943632693848730907214225772457296963048955043746716570252421471248002527452145885708578077074246336408659714398248936147002243643780248215698107977896061710093953642181747854888244053946733804132470894509226542930887315431540991144316635530020403939515483210952232470746558748458574401449724451442172683702867047405575263112276370051289180791157640187900395664414207503276455052323647186183116918781251625679158131092594154244429999755306965681701154000872725249954071381074033938192319957381647732147983867437427806770099690483355248811687664168148303691225309286923848207493288697137712832274756037754427008338927279686333267492932657439574689342513613468564504781553945616786646459756589070071325028207976064342708280985060467511363850318924013530776931826529510245857851293772627487847993994727889344709984564041792533577632855670381495865389094197446654396311401139330538992150489104695435560375432774462911278161124132198585450264235895714354556134435821022245229480884337023477101895496854044087374140721585375834730090951486996471778469460024553183001709525564362065515377170176765281504095994622640917321556825326338206774848946524999753080013446409402449004014318600751961914812502857164316947440243033645680784181451435332487121804885877266893500477519163131411512558188635554956711029062397451228550416974233264161085842829029566234637144624511141764093777532575779634720083337558804134797928238780460273283619096358845312910693284080585400190909534389187718199020891930949086460246329031313254722230208052453214542152227599728180709278115397548255464237127952383785123657890847868290501906233337689240301789840038198649798224569686724996391587536600662208175057015807301630532843126018644151827383338991139161327589187519903153361798449225752970208935515389212563212192939563880980680325420049906445775528369362863599854390075300937828369019204283292421378183578358408368619248787969465473692352262271494540199873545005272045471289201977848567986855108648826623403067363574941217869293596848612000609983917355976013238980569781517971537715175619739050245296935122241162982552644577521047352667814060648944881301931100281316328349477372418178741421940917747028851499617351345897358575228224428183331073775144077796504047743601023198772408393380124606502657029434907565623158980889940541572842284799174037095238796691762425075787176117327354444922321704145531242829378886347087871018026284103946702519108111903005029882043696719310922960053097904151161614427586425454295446933663354537312760773448166746110517421672421220872860228896529067602234720791247974742072757895074855655517545436450320328858247204322475912744068563497714555842091060932696561720286380096571413558695890231111421620011534253226721124764152080954696088737564558558067124163502552530059905116071897575092205619547402178511297557668904286204015406071564477489761859350005743726593889840702094450587309593244853542062114778846576347575339853111511625433105594040172344996070504683776220499210942905222835859922300262120517790127756207786137475759578654895941643706584372833953863671620762904438396930541846681148159642843069043522878838849136760758035125279515919271046560459630691811697159899614885181787685365298912688052858843529887464726479233527226222449437414634780965712469509383213743193584963002045655876396949662288424995459589784329189302605836324205839233692640925226835358839525996468986450711618206800245985910586253612990465119619502724778452202629881540370141946458156540395663884843006206888549941524931698072176916745452614802150969494952411656677094587856679121236446211961580845187907393680372717667769473707885530213588217624169217179150620591638298435303368095165819193381252861863325362845552277928039025199750952469057308968682673592812615993066057389193184360025784011578124530366301286315472241174669020989406708779139055549811182315083340945945356526508599399311513094164941313697929463307456468634479948418553738475754556639153254033896364951469948015549410788251259167524752277410772002960388964040206865191169703546887049139004641438288693092613626148514884618257562963181592840480346768242346610875522041108146050459942303952394562174405095566430611698258970448269930496955711026035828558169822386519589869271226763756031200061750649596369925678496916482925603830017610927247161504996800417905883688599070396986929984474541711632292725138847990198965185285735106729697178070980854979744013609372362229200828321505743935062194875188518429447654659068675178704175623867606607837142222503046616951680848298408792756394078290080760189298189164200138475019188707784897168870277499860924016577296234491407153669021443085392846163473436938655865756150193015444795413922530805797820914037192078641363997280076764140675229990939274326821494788519761395277050726049436430382627932282820327508437952739876035369178448398531882569338093484820852003766973103205879954773633947257896360820818875238470617033637200638849855637293755564410271050837392542213697119416641826864526182770469246102863831297725536598216330238018028656538243459246684483814167089319918696479254665613268842104006808033689763550257023562836069801074834511689397029220064580357152631794610641754884559316778050331424787448266617575381837927933631379470591937185707858674009590435621208751012028595862479499097057779590527024748979237196385536700253115284193261457807984048158588470087181633228843163751490239971288793083187158186793434227452091335769532881611393916103645806656830138275346284640230799490546317538903450711840998524957568649593923887817636118202870187563675355616746925725998400013238755024388183425559811861714778440267440575759066926232019177178954487019208928417294884530655348178643016760011002808489274592068803826600127451220958097271475990697851753291384510704742169780857641232285541448836011799696771901684584147870717764484506308777518896837310790529758502559670170311142510066336057446052129671082416184746716738315934965149401156920170376665593841082484508528727767425054701367730525726077738510057982426349532413976642769900964054877345572071590938468839165756434587456811035526684746899985826856024596614748953630410602258122252376626496424358691982115863186147507092132324074866258560472330852993741879911549216552770911287700955982601848683371943629907798642293942624466539439808488429362815091650135863113682762708771876859019723729556257865578202404999687219564032738688742373258093829326416332038983628682797471283379411534449862563789041874680720089869545117720383397857382275769859343996183321989049279506009903042633949085028894845069628293809644718054219219654032466626375454296220060496208076958312294206257385612817727398941047684284580368588411803673238780954300822945713136141537712848428221138049087320291320621584851700490953160208014233347510343199421532880635399575497331018670192885918269508788113737746289879589161730422976380978403102567423241062275837138391521576973519443600040646987628540556530535983553754047829810383531372602288502381891659821689188686680593149551410928399042219452760564273215779856213909053041175909871750163259010515731614309689077333695142086873063079252753295619986558484187636737603635255799521620757659374204757164795217334726903791336892495834019447169407080640844374799820323477935665817611380595523101719758783578242151403989490838034495927762018112356848493477412688116340913944796550635366033830046333496809173923906439476955830107181757981385122341905021691444381405802964743781379232218969152002338103352360918916973099869163280398730534162369028092087878194023755877579954999324161882779938405440535725765113383661268988024421775276804159297367644601533258965869321573627190037178935386559152219146577590117158593209424601098335632100178731065954720820800223362910079323512049904579668291595053004209295673673287852725008896527100592275172725628808633385546046707420489940798415527282341112223080119310264535347738125161335184391147875286431617162818416847570726140201549272008983141079501989390129966142339513786747407814334528081555310269896506992182620057296431901920504324711710140442522296679241651290908381521993376340318746190658372291491645955502464632799435851577385595807532301580038020811037957359188065125695516427729622504393190742723396229127156640768169707554658852951865883321524545469930663936505872018646265567278675865996100909243563226890866035979149684920015815273484349599693127647529570031825030034376866938977644307426010648808702150423297599961092450829933171452282752693443017844816269748969207682585146562864541977602642551253756061219124551643135399433809816055197324911634119174584483800930367509650872666406002543821854517513366830470540153911861146735149089856862938923917507204706013135649413632336820417659327375958219503587855438625022754988501197313930357692014062518930005085238101397436437957845742996221400604302936236282459732591887016912919794553260383963035571627553280593076820729135895300242828297605643155714238093418337535569638315146077675626616298198749723832403221981920790292978899803103884920036576414646586880406991217600171330536102427475862163955034082400605946345383542617464959706062001286869844094639912212735264534007460319380997437103859615996088874522695873373620707290146700117815651198959314362099174770905114914299056897309178098777765300269803533058954205377184138385946680487019748212399225618070076691918641742347392172155497649458062830465858644608965352503953159504731107060664303374900891133331787338323080269437338396212160780080443879906299520036598407706296279392741669234884118562836024855034154964218286114230205044470458842803149542025796859601267721052296791032023583874926387219306935315872576841886503298329425628577196542531491075482716818067523008700801101503356049452150439954742357264770892844724323290138749663204397187510275064915344303887127685296229750850539469884057636342829145488688285780765101360864905844081023441471534638417824439540183362625037302021086049732669749544347526719641367670864545517267252450523760593070655102448927688764783514008806377878332189087271700580533138863983138385326066296541249802437054905410164198008155949693369174476910186842296035441082039216393156592988861153581420328535673919976067186902381300727800764276853862800887491857735214378990235731122424375283627963686899671972150027289642903889357126080440192576279591791111728888824068176691896533494372531812883347035828035389303524748297778415779926910500788233855957914244946409221577322307703411787347660006290252828741856326396790153709476280672034624786010950273422609514383437163963990382730917589574917774977051877406901899964266994168631750021305439309493209492770652199714103801547980784941462456167645328937387996162397715300213705415159892751295010068034165873208266611538556210506988153889871983348747384803625166445695652430872534577878362104525917076476364989112831251449684166160831844220899489679731158256506459329666879613043053636244897802080644819663529166944665424766095822627205656381942686926482982910448311556992876730171754151576687288243114986878310769000240025592610625725000705773678019712309490471451196751960568001284882491927422674575635933052906611070179738629721875518347108599017734915525307924859818609823420436063327867721217921824422364585294537305679756258848421112294486361506377687009864635069551049643952152731883004632906467309123164277027001882087080269661755052507376244691226565812475392708790876648182086118069005457040071685040704571450737138157900823725055976172170335313841339011909413478057683933338474032598476517263553567868963005909663672016577657659186523245533681658960481166801437194843108054701864446565131958682319230246265562945210441066608960673207518058955640552203329854976157133592874973747574241655516653111506329607297726600108737495366894331415021729049574955821472872071971036775627101943763691784575736959514137005030567037805883458158921198589863177710199940108691029712094195045351830729570783830440487428642103300942270170910590416641330859206529511055883028793797332731729905870454845171855694790449043594976565374177498653963515041953327754319902871292571267520939956971461771230422810987988187768900509272881726270958107226569059428093597021247980267792647233693150558030670672734238705287471392037074942333507965751314154584822235083930046504251156203420749430179246676586725862729824863223552261097828529695345926258578136459621592972260962301879703449990807302750905817327349641373065871908069152691445155778857539384509492784183385988917464824751487713999900620443481803617748862335588857714573272818258387579289604004482521318782050678397894287556308709734277758155307060524707944473903623672540036441818439030162702450477200864302853148089718512361873890132324650148866936770696190082472661626605321086633782583399415763743863884803507346618307782289591889068755653788018180327253616597071024472519439953586240643088784553633845896745927566841279143531170783503233394293429317417555200263297614337629023644160757721883702653318540496508031767324652518734668108138554918922130478103471884674045220396707005448598457907228921686346232262515984619035838069208566279548050680009973187368593986138678303360636781143880517212290594964952427903359659195318775950311662974034720051472883167523470331751091054598768406829867374477220876218227431179584817617394928087229234276273266264494577531096829149599683605398834600906641999959240578366702889585399195790541676864419458297112442048158449060794325172512379527862777612078025038071068351608914335812271000540417448012825254206555788098654182042667705350811037427155745373399349655400910886049481371526231117107925247550190467450650768360553322692023919173688780537615008166313869218483179849416084368610043593551097111731125944521016664631788429918713274053966856353773469311182341160647779901231654448127584643222591826174619627529512930051195532742122995756067268152796830868629352321087576011564131170355612096968714756379574990809347081984178798887070805818033224192324444262068867616811514752072671230190620493298550872718364354592911157547151903419319705066950580889267264874015949136764341002422757508589696073927488642424247825702724843934385749580952568461987038297381738657307023764977704512634268013386524754410376682544056217492915718140610022513079747571506169878526644771934725121746927355970026377748993526007952083980763916036978962184736804724375402250515812493854943200585236297553630349959933952076539454148184500277590253380130328021120983217202016308083923161717428192477243686588875824849884861658318735347841786091676792308673069409861839928149661741088542431740976765037198766759848191052848976008516085707133774829914706150234007349562355620732973640297184543493713430805214885070387039219337515501497301825123285099493160812296770846795088839880100990052787571781550929077549701610784448511156468035528258453894408318658617839493474908739053098816338260340497420127799133503736080192699810196113916868210961585419319067686819091426069810136808654432537759661781821553320706832118202992419780540221796842181781110260965343651094850530624599449439330354628089870415525708796262205912275064000514601841286596108775400213205957172810718899179225126551314924104753854130400822228850885391507360272557953572404721601713958353724167207811685681016103882381307647473885934480799688390959661218526518563189707193721992341113247131319746347944977190314762517163612729177935950271243439749534432923434867415332208539441306096948874364752034430001761749389109179151511492451418386689472264447347165293685015464152511329390891006399424261974134764225834962784897299311722166056999774906335384702931829610880537420479277199289541323669888572446004027446902985306977297841881343626534707731740162953173817957259790783616752299730205203565849225681056783014446492734998057206172151899007132037937767553878287101277146539572720954227812306350291416815429548791403832586481532175211899658889390989429293234468818976809479798779524035084344598993599331289657859460775062989937101610925559903823623228691575261654700808366987401419821603892361497955402516973533375996387195617707929875950834369738652292900123480923952943640959080613797533256912122742229622738578013840609170470115559691317553364314242700692789329663951828362410500471030147206029164543681036446691572191230840962144120412279425165832589194709050364877437614512116635209652742127260354508080217850807341888928874842478741454298945262064371656374669299931616269308343661531613843265297775153823026140913860715591472787498339433183605679736041516427417905472396456875567684242193050361615568598615176291350057330550688363318765823240836405624120946666005784563365828223719683373762671698669951406113589143237736284865272961845667317678951252491983144954732609814291571732272430207498214348349431642014817291484808344500016664075904730720391137301495761783907424198727278408577703554901950533748498470256890923124670845414572469041786836828576063360965239121551106367086195663385901258670373812681757262152613735842743799666832672144828390354382270701545301506091310699622515852672708405435326551685289467246791536717091582372333626415340531392876585382560879923324966916005373378484802955738717444626025742449946234777188089718859014132939120343034076740936327673774824318512578413883024330836638461370508673211881525541225726715679087351939880819459684816996738346055220882561313731788103806914387922733896769572626129839777413956150563982009394072854814471022341548726807194709509618864742175993583032350544018675138328485764168841633451635236429310984611774709495681173527855337728212936232406880123520532186026834186198485745153868885818182042970844924912495880838021234982132115728185824318921893774113009981346642154721182105520358504162117395468806433520251950933048990419124500375140747033843225793368309604818467497063210391063827105369690787168772360643415163200059518392001454843931923190228128605627116103444490827534198427730187139921442535135613527767741310403910528062893524111734034021455491759806422064966024095865722864307642744555218270629454633526876696459493154485116383787465798252361333726694845163542856891471687975733319318842299954811573173209845994466220252180813046703339613719285818412299564406483599953000561066400992567390492173510464980878024418343999340419892240211657781156676861462315991804502096453566556775776017225537829080199603486038701716012902012048215085737153329269115542952479189305723909758665077611202051861320339011877741991572085231596396787527919320386180462672018312293126256785488794247291079393598238332236700496022814017169515477855301907869352180295453815367582923944309976289855331344052086572427798968944586242543008131221233276223245350546944353103234645742597663668941518180739590167748566362280895184105221845736973319380473550091398765533585320571723686121546553849139222146048919990675773384481906047372080670937779170361385071736280908244665878772015554505328502367059684821595198090026184410883082607539771686185482588533395310788170007573017799630363806194197759009006285729560689360564975120468956648228891515970638678165795343625746773222920469659757104592216366439509252155990358386027496258663632247672697294517058750876464132100105783620193470069562100325481718006494147677907549165652031457952359710431321378205750614181517913084437950114012423353328042598782132222869412867085364068313173938982392490920784731709183959368355762918871691852209975653075468551851883394077499658229996457729190867562220285412309567348608476838189055180189937842903789136375154621051788245354356787773939008734936658102935683121196001769817388254935162665094465963112282142591481836816521100447696139221793900679671457663230510073393200579729157803116947224934627769640905304465423883562824140049610977833121202140572676842676824116301158286180220976115234709049889453681532646954348150122533293044100869903390584745914368793333711102418711243000830229665810879839378742977636644775375164020654454052361448557061943932238692188934542866308935115228648428744850119824389761333904085890730640873605303122258033777497765689691294408474962350384539762659971524922717253003655655304484919063695171023901264928208860684720691718657054845974906795595866213562351730381572413822998647771026513390556647209060896393762813840375156283512566747960698479733138897404006771873905609403013648871437340725707921047189397149913172598868269881772122083638909433598408229962423582091138901538318286699421486906374889718940423296013054827243055483121723269056789378305253502111041247564879103823859114113392172765415636406055429993524929846655445204147572875123988301212825145673436208160547213362236285963420002358967759365153641911089104487972514681121802513516620175451720130125359041943563835782417230183616502515111295235267174227135886583826344731711915095570642688145026425750920619741893649047816459898245044695347658388661726610538961742964315057605604421880019858402825993470598589858211214724317476311113308526099101580323889659422953046170099327170332244666807378077430737906733525199766600157222692616088228641083674804261835456441603278226712283736254612648550966741437431440101326124292563812154794704789689202284380677519757728078855914334271629704169690784043145951401669919458658917595057566923867398089554502739982449249745698461577795750689602996880219704911594647411830901914902701660457065851889576882457084587706031356811507324426996513349888211650032573758764243520106825273816387263796181427651353839297234255633829457265189205778997249591196175344788452100062296537289591596388338699525067581098303589397374637270945702700909492678225811647688424087233760824471525110252166872488025518708152109031625220276466536744216630204777140153885391282705870991207632414560831950657979985162233941498430783407991140102459959356861291887087310778521697581667282551781345640710421906400024012154669039864547215308311743584654680878260211020126382024714042356187152336653588388691663400052457184276820804139006545960618387046507649124361173903387736327418850889767504337989639361193797546952681321805691095288571615377849395246612914343135047271002387054634677188179530007269779883697510916334630492143625627033741582780784418857613930682315523320251540108076834960346199611014392233821737667073064710315565838981617827658241242844103139672618320419776551665089646447645542395937730891440569131273760117900956664409074656393486199492498727320928669623655846057161024250276761352805749878054237516651830233057776543118745298670721559808059097410055181446340194755995713187667956452091872302043919636357962877637091617781977510524764212768996033438888958714343802506302271072523565044016655320139850858754202678315214885844916757660078254794046443383923297228854531231855793344590647895988322591898934642838045332214668293945529677526581485878824472914435238635295095709166974811566592455376763869105244464095664331347042705066486443419767587611766329261307311420759854196470176523047625491154259386557804581941673030853085265635497773193555075444427036408250819707178357463710710245606899452069623506865124892613754096097804806086294338380173205609606131744183878365151867715606379303631369522027756753673955110996441166736197643472674387973595829053479936427175247429966910970404728395229415760735870282783736630893002924308217539470252656489502418710020690870283732550720352110353191947052571229294578926213840861635778459952492921581385628226581432392112196504109611786485446903158666355883747665555634199645129050768630530461539962477420349474268066149367243404698703787806159471539439556104559041245914514638285643910095671323411741034253966369475180737297943680153328756651968916539875612341373659489792275521598020265023447350131482376378546697767553157522645263785819869721949898076259380324505237411089499364771317027422385642965366259083405821464563208481033136001172778990467746913259011569550133437899479414512830484825713237155791699418041055749916909223312704534173134781665232188182878644694864326235263655142256086700967216624527045707684512949244472748983725141201471841987626218706787409371845606562779908279910833656563767831450735462561947749449744296198690727055294995144566371817419904935315869338452833437872152419408936860810116116600729083238993386298218344437925568151693104982485930854845327762396474306998954973302797799857969968531353080281908254614412231577254362929605332750453059220590551829238925458563233178335319836412892686232995266515189594802393742213103313306011188717520047362169529347082736137438048889689767755804264682685695956701210949377478810697923029544515569312546171368898319631172965198212273944906215407714894967028440766735011897676741756611808965154747652462206913018233750003937301401138344434763875981026607886217044856822303105966131475037846729322816958366682183335284369237684384878015075583594010121550888187747502476435094344402702285046705643253133806908720572588445433840972994335988475578624286283646589155191599944602226804938797255321643884180909320473147335934594789854787923973385428401801378932375604371276195658839738927525380675462747740839789469659957196254604598478587461191752103369603055908762154934186419777153140599110345730370019676399066462922780124598463039705334646720996373490710398517354447532131543272333018379041462663595123902079952101210511121663206483788041451048712831533590269573327269834981224343972674805068731820986066571319783530470729839749846500005372649924874909622191812073994039746755842534637881592413583086658659782810113843413619011174201283430234347762174586017883636786658916457038545250457056462874641089908970598644073314826208968933527265801399206006780266241011864235551626867374798305233955302688914885018570094448915552848473739684059959974017541894318103432328479958224540526019505913533565076116494156036755040928269819385838496541101443964254290407277332749399972243091302296820311483957843526528414269211978805278331351011561409773600292104468227388146673802505166255270712726868746689427501294228258305239649325853456599224747861321168482010706332196821063355071326279720586886913116405116970948094113526497705908465169609699372882331755646512966686974993082683137864088128286257301118338399219583239248343184438327786792987181269474021475385263127309645395385645366422707683669846975651862456414648109317351341952032740518945758057785334540739637237530486717875746295754871203461441506156082625435837037684603115068287339408033351703728988244498501244008605513005820719240303487739499547503844778136546681068719921788564273568296026766381884854149805198908944698263737426345864695068664917964780586751120329692966555029556074229991125818672757461662403107419796748391723144143531551660182996326359897531743775594730537254642561992863748093628042756659223791647347714332224901228354052297764960170559780238492475537435731524607597257098577717333427592827717043560508258785274863035842875364817990446746090694679694906852723323695365442620642133040143587837447577645713793825090206380837146583491203919887442923175749082564438364519858941051619649051728665345350848383321432098136640890506386312360241274646964714667855531530735562627845045230752683654755145594730012776718857909719187235303415223155117576216197178943784950202375165302771004020449971312127931194482255627446854731348077752123864436867073723827497628834926019681031109932044502618072181620883752192308618065133384901811650056478495502612754981216755614530795371241452051649727084389164921080388426762925553230692690562392193013321929843038437355898501226021618661575950168925967743507552791014451234267585653704258938962862895134815607923215671148849068608599270754068449612724427763880622297096141057146242307351814021087177392502127619713009507865130429866981504274748869005212790093167611746243386660928998260701711762412277447581436441748810049776853544877563016552502967906791740390464066331006236441458782517899288982470323906746719697189946296249623695252637868712110192793273110519009896313429976477903807370909357773743822187598572485389979218817299029462466534774927435096629778185656803180685942373716363587120270425097318037423283684192244436147050704224056808910916355394652980397435942315457429073120962268465413083016382117996302910971782103862122353263966455893662007479954586107280405555298997721893941719625423209390469932738328230808733895284065512628556972333023799578322000651324050743928492175973946212237140339036216727993707925143076627262839594163848451253434076327075974634631339345398707516195482127237866741545057405197550024129300246424855215669948285224189636269647331133603208194062556713448126189670292459463599480969424079258200926884552181162882826992378845890075904088105118460322586344901137349134639512443805004980276392435563601072694492727634505567070453644675805535794994772842184172339515685060199644257056883372153380514891592986445230820342960726536929268343924452676393073607181178185704453550622257995840929394662373871135692906231096320667142253951426171690611970232521984726094954652896695409754946427860023033125088076912248778049923704743447464126802367129970597169060506268541505878945428326508995544698207483579071947262551158057370912880478237044413539454364792765663680197370743391273368426487438643207662496006100422635051924780756477844179062220852375700639749510191471722440347826640799497165126963729584197794659914462300841486735196624451846638179048238788619012762671181784760400189651697559811650950978687697942794455442587449708074892835316879561631269950094687115106296735320488466580194668861176951442099628136783483507412312374334666592918234250056506318935245176612693942734184336626486629221396439168846050312741796706997063538682545027722254865356451568399020690538070280752134540569968487276961548059927719065862330599248707515620295445589057445510149720677158811741296335835315217167060152375923376261976414041957160016711318660381537764842780775630253935128606435275415061299162414715394981102218952650463568090805574396088029818041460079144894822078230174350427029420476599672592250612003191643755824223083741258860062644045098770682811203500889403613269295057113588952342233520616599701334117078828424897324252577519295478327842290519988604696973209335717799899719324495664206787871701049209178989676221151219741974446873639142854239049830307292409412351720552653346111010753880439867839280248058769171917495488778390290172163938710014612699387491139707835199369915377526187481808628838739866942159109931391280597964643838635585507314612963567915796382107943452808213314058445156565401679021876628918589035788823470896498210119897161036216008184893788109083076816915569471238520702610376320077625705678206011019534395450437538391300493279918061326985471250273821440137300111594067367446244347405096922783975743881222511841082957119863108922223229123841366372766853198374935860100848339122136491614372255448040467349718064100420738694633491942518976193719236651121628465071917790731907520922628738460209910117471522879640088231211480072551011680726150429930867757759395908583978793276939266259817629913608670201515935565321366055617122446837373531034073066847631156229796372293637651002616613911623905300240900175613390494032553270392864524874848540004667804943596123302204145398884625563925041212824390050422333530487821507756130887984816849065898896313150607364391354889715827322988568746811588749012685592685110467036966771669045442348085259651334801719528175661114088271421519089334364654499608940605280040329635522127127769305844297747934671558670000814111988090957023234394732036393314041574022027080117262175824353270310190151855737706042151877779716318498601757469741700092835436137624991022818146598652536393352060624526761282985327205105428153461024572714874944069831113395618398490716717223895300130608963941490682688712073999960733412073647967012889928801205771231276473517909215153180064520588513381501751417012915468436514616417523546047206747440096019846475931693326589678230771007483253623206424368734106757801494565212336472847154971011168327893800278740400130023478194603443030206371383210041193781694985092057370695406194240089909734725958219200852996427814856137233000238183756210942482508598518491940936100118248494154379267812049149500523674816048107574782159483392170893861819313323033998507462270588879986564121904720855608689115769451358845755841055648332323316545027108711631706757957005834882072558126489987899353077819403671861717320881157439767901148114649688405535200920652786014740935049021513687801206203142545819834982424775860037865282348154664938685960416790849768461108798276492116813447251279013270408257467475668598861921583498613963791677039270159706123619052321763066867810506324286698787566415966985657607822809405102195441016692704709102077281085489383257820517217491125698630849883523337994457673007057728291900033342500194086690389536801897769390668895411721508177044108433376238909871453852273233577746210106879990793264383584077954441999005087426090154432909757978382877549436502144515756593664438058417376489132153688179443182808717044906405532050631413451999644797210127725703309484051592940580354747641370661596022480444396956104086696979699646226744998279092089790776595237269525103916562814255681032078328678959517069998521277684291871310057870493977836040354155599901898193025517560209453997457979945144094351967423055049662184464364493461587551628037701378703348879230862573378396674998114763683179495000514470849012103177138421249310675809651736857512758203445646066883346578564744729092614661498907662172163533584455492784910448655433584613654378650563398066659536777891286283961526201085707521270396206407740746624732496773781311527322679599085244627054214105017164444030772749606945660893455520718468455972599114215367640745391652572087218541630303255986754454440812157986786462522805980348628755966947748840331120430256439850567538525181760954404910908509033732050628395261226280190901974314107265701614292653170883673105132766414383264291044625330081810390276590514736525101452890183462540197513806222862694327315224021901575753732315083738941458163494000305626386607244611543869010605053604407354007019590095302741015912843714142232978931604407489918833261524409910263903330394604275002103608681862708557038374142671974432633534548706171251768939041822355226479512734600412349480206160012898736034227178558636819679423039630132766508051130262748161232101789973162460268978992464085568824429052458724605946774478545953354627798456553889593728065033187844401970085786203574476472845800328163493141332654470123701669908304827995106541328269557511534191449292222889866441702555089661348680525222146585909661809415991458120637316944484828899092610450973532617072017886319788770437803288930650244297043297123606667323781740874374463506856323652223715084635587523422584654115362176774817575108207428597856236632098103165448539067197648450401610827315503752167715969271372843681088654673574673032473745632267977723076970201924216605080679035747896956015506945144035684760813015862260903703879981902211827575486783699056005760645993286707422768173655547813875953929010768132088609082641640977539198907703078106982796391716863821443159872325916574340268428822485342432162443889682175036209073341419465969388598661677872729499641753118606269984299807603477409964617957906708605838676373687545829087233037681574431597108457477980192208242783697217600432988455345488415204484493001309478400551937179344716381651506086700612685741501173326538300233265470393364350951865543258073306502222394212844270470605719871869107819073724445048463974042493495739619478693419944793301456349718193636273089741752271455364406680448877294166169207215182115661957673102662603169324713416073532745364786452815142099533556229122432195069400990873570029969826325826845256632901496945243388456491990167692570025616291647224284063196483659965046185731211890748332296987529373749295812939219882029999983218181679246971753221724126024253549610425713458066704945596354433915079794500857964528301526816445852980879007601399125112197056069915591334238890369064153731186312057840350369744680537735535468354141600766564600487830247343801568252232841599453517195068360441379577990862590527617044056665700186257821982647584000891616660573110585331674687814083077416109419577270779481691661468462310022265083889554542364319727425318464356797362554118000241147655576635060966669196150703930504107628730451307682661784038594281731777283495741815925983703669752653661624175471583672470520905824192904259656052990727134420330412692992303554783533422082749722899702174974655576742783263383417210382611978905627185199927105363964345400041969392562659336063673291439521310555385522573156194335760912842763002439220560468340850755601017786324964334370034171463646779382728655943018414640115934405059425900388083877380932653509609591402454036793046202031348183203596218842748685166159909598966396004902153370539991268987370816914324274698268978061414084309523811178315863833154826963042587494984181671283247024350154991826157470725615815860762801887356331576521838165561183134297317470422589461538129482546500818948005031950350585123064753815287126468755295808061009456763609761298345125662798934520146253959990653637598447448136797382040795408402799014968787293916896227177637267289292787643624618163982160050806756875488256840195056802448280397221216153294376755078283484778165581374871577028339564722579697841222074436994951006965787186228928751078249360293361035735924131652282444890273643370937613560077580865253066353336818557910713883458919661980704158454632866681250403268873603518752361026295731552027813594345037480492786098431866547235181995702412712051395661616139439217645253304901501602620958814403000843007224694131900377179303864628380039573429150698518967900729701653658667867979476614541207442604561644965544989484837562853595774568443129585347072699375252022261372918485009585045368919135025103215265919270901849906370707102486157942363924755683928770715213572725171131099141301854395102392566548084007529877633249884656635837165484644405983640357738870511805042848400769074766904603228285919326234237117022379822852698250660210204280564070540336985867436131737801719640980884136113558893735668566896873506885424821101941434027763647414325393330790407212469691137003840573909241595472261195308806637722740436450969695450450492083945116066600102068354736267762741872965853837042192384703489874646088689374854395212609566110411661202349372627694944525838482829992051654377397605301738976503856436880257955834572676421712497631652797738159592623259946052890833270340647939633415616046445507211270147214727716079917769307818524154722100678250415264146769518244257550459302432910030234445243054489079336935776192011976922331448884950866589126265698193046905374876428125303071687100290729131227604029334832086582781897394273566545944805647791792103174568634111181524427906381441073366770111363570179446998733550226318571018054290160173836193719946461300613896550044802400648335185331039084149823246044456377488445988548490510804583200175755108155815385810377669217236667824345268672282139533387326934272631853684821284648735906637391144136122093382646640974202715415818273231717119176534379833239901984508027906972970489732103134022513414819041501420084433815145593877117921822380234721782632803724618282527254303729647315481188347810205934745460609420582997820884798741832077504890618000783124270227887019425675819310129781330191974499752933860010912043353516886733892753229579393344548028416963345767505422665007892861400576686370211382688539704075053315480184837560936539065288816165876885740883998807911269209213270068987255555569913887103449431818743727257213458224629179226609596303840612536159054749906463051337347158570894341568548362115313129156161391017975776314667437029064391981412120389640212996011529906407546080352922672627074708657133057292348183744855498936361902407381711693733800170916679742465309764655262367760868837668055462492025869198446673075722172681171704406313761219696999286116542450608538705937870746025847614158030101779034180808848121649414605634701723149065799269041290754556651493469741359499396672768841403676169138921372797605679198612980301750136236775785068590791949778509442887184287879952852226785538934114955653281440560145035402735897164500458080671129428764546007237033196656592745469102842445199195514983081323162479605670552304882398292333060531688956569301387098318031751228463396780775071961519326345980931330711993365711815365062882654964055222572147399084314237143749953739005592604353164439883449138633521202995213477833235043332939505774683534753994839147797764772627116252004311211084021230344985788598699780607389376716971938767462102084128166888369382727640596557065605358523811172717598655580461827196068404092047696585368917296741920647141165473712068845540902204713198003360243884673252881509536344710399740418760860312571832564404533871939689066202286777681414056036034278483290594907072533643456675644257691810127410635218487618177509635008655338229266044025324301732032794909495016456094776040873007224750407523975903402799119374350002495593061685223500689221791611615512134073646002441691352674413309796857479991817435758937146229110401671392525653248343346759324527850203114239816786555818305779326518850701122481477639424390904396862666492411167864837289768300310345036228885660129884597248823285477057968640449034418243635984289894042022416428959289469822142313927789779346187203880894607601172873237888485748225343552598506615572086743034317349405722914562009252597022936277293930264411026010633925028638994533807517883673910070793647286985351699060171142401409319273663533072514361238830299110151121963299234790369750585380003797963987803825567825084328042513588888472677694125349817674344557265459853800314304683782492948448328957572743088264514023471989097051782756046914163081442714292934071360847586872531223857952156716559039029035629554605752380511863106532228171437234722722157922498136256948973982321732360798572061814167215008371200564642702202037745981302787942193028466797982206950401223980174315275887288192137052212344225395132656726625448477635467951385312024582368197236988265394542564399914494767819525011840252667836832444253920556980673515891115971809947191991765352025822358059364184973838070834434959612272309564081089795818068572846780232230620777707454903789934663181215261864990473163342410107550930145499702189606105671251377979338107483294317428486947727063936458912549435110924272354328709308562821251313668160341305681258360120668488104604488589965366329058959190268096950971743584919103247511253310853889983774380434625294040799555821169707368834341964137010485613537918175172383928489346223510218505890395957322115535178381024068725030238196780431366080839691821185722553798066537424060627388678742864896474805398281252076230527899427701410312992625423842408006345686163758816348429209308227312603985082182715014593211969863863260405698279572490242788853830362013335454071382285533026636610691656093332931758277474836290070620744002942837414952212166350285324739308417571690050098253389323243839496899693336166057215887741340925001432707234225907731243043530797895884862263646970283526536188962425412372912726574349961434330344728196507343437486282094463792354779831043931157476536016099001170272117021562625882793362720367960017931091587124310097355463166230502234247213627195179851737896969088014682535140731172775774884113946671833033839086005317586650511423168676842195196353972710302557577529956844020505415204100471181086944503664522879699276524144097015786059501090912794491694619581232489755253301483746574451264045834674877504537553590497925395756714101822555443465056684743489997687791529200513063522529417895084037913776546331207723967056226200069248128782807754340261487423728785952973457220370530780832038618975501655269682449736773668622881956416208894531293583410593852865399294659099457509849290261735621861803535661327169406000240251148503963031694264202521591630555546512174558370757394835850672638714125753758061952299002799672940168365268870806049310477312758564636330039558738760544556044021619388874517107408061071836658993148546038376729246135608720680880709262808204546069482874628438517674394802080409954927820397530149787043575611106306151932564560113292282713381866675629608208821866515842557175982263918449261825149323217840775278627885098387703753297799310199214767046286004246583599610327843272277337788517154102148428060827405190140257858362331565972911519776999562016594859914594043923482762785761606991635821381532106934055365005827733157384232752497681717802330277901173256071302311987211897149680328539093906090575147634956352992418917171602663706160441814682810893399603823942413741125032966595481504713411608925799479433157681990090906508632814781928161989763824685431276164123158402207493585325811130974706125019901816123778600638397517665555930179174394788440597048420553507184636220741197826783511075065011672589390681737960023407673020517211487721755263644447852811994968923056602285304192596893385790754122513059730136471116254098453002740831097589050662539346751868948982172716333460670241806941919386285665618536850255727580283775172845219631704175985974339395627446993549215496473469076151453487906855241550148847858803897329936560046794523443869202735790456693112868337495537295944620276961468038997892447783472521742651089746132120737796829105423672035600520838303772190094923103439974475114171533310649251480304885410068312275396240952223090750161723878004114224362271096023308821505854621296362570394516492966033237741652321892302284579943342803795131600728507904771951626089187007611352728815152713128426050971827025554491085830670941647525114483395273193420873620543907619102612869186674871464839852270931873918543187091446000103688393595675084090202495592653200481110941297504027965057319101071339698600140249512356865918008851932520933441048018833135080573318566819448760485955619117777131421396977905696194285935750955839767630901682021912511432971682534387206870848377490380884111299094634819593634165674624745291727980343804598244030285833285185676308449582886129675008976392556399010086126623571377103163121946008679521179030406572306650438668667432341010024731338884093856944247215332857659252429202109403040589216788794865172540392741558189761825693355152698715032907518451736934095066970787112590639626756367516222408516645652180392319111708241945788422048343431693915909813789567465129515731027958131868482808686350018993499883718854298795095690380084830971984097233501050965858685568010066581342124040892312149119092704834206034519305699214109258545155721741782834825215408534410978667740888552576012549639261681264463049483266561438568880413341356647638364133620627880404389359140731159757065764835395766243706808095327272116046895273907456512771466984492142726369822793660353652986264397312016624059922938607070971305605639698358904202798523759888513233512251142975891398334744319540759682433839486007315529349742974030698869664194710722562990955504056948994637310839810955148649064530225075516390648325702634323305063697614162440558468734283935227106529774278647075335881437603552056859657927243002460536242854051085290385073395128643473676132281819314516059811267769407440521374313995399752511206491495518447045565175452713115555567424081105576708695481188094262002049217225930503393771632063507084379950371507621250067946483955385000298051851744596456687544309675595445506953834084685932304627495622457517392277502462260991301428084459083966646430910907190621876168207351285584396062523592186847553380371232052568310814172175737657389081680304743007109051247612416603785720004288249939382582484326422218413789450179734855988390050639891095153453701405489077799682917425301079804076629723925988933284313604348835391809998747393098030725502560507331247099483613126808929057048971343156463146371147792297710453554103571320478314547479722931244609521049967966200544636415857215650443089383024799922153675144006994318109981313307044104680470358497439814140438733447416308737487390852841626500447512252760659435996180202583092492797032715083562134836230849013301954514243793352726230948244679248918909837037827256236429199593687150279548764489927493898981623019888880121357673234645307124240053784191359046525376220523494660712875661419713397137391003646624293842323752880198858812654614672598277967141707779336160560793064287673623697434795279156953284434978945184820695823899277828404386164425849817648076709959152969210088744777835251052895359097397464794775353156314495425537692072996501263371116448078479398017719989023377920611839481267493156298498877932633641950597925827581122767265670236924825418184758390418993139334519241058334541310453989394949753950715772003935893821111999564862860536482492424105237588300439110834434301532267581242999177204728199319329910067523033162510543860606908851155375872903455928352595103111192984458068808214981313103223710168240900387331075335656562932391664807522910262151700078503007990883433621167878401980061260798438010375320072741401432704477796937715443964908815651671653774385787529377930021407597772615579454820508652443305533408468144036564917784432547667948548739998011671500386591376051151715386159770009192429182253081298360793008365782823061581019296446842008152688534613249167851488934042866083159293273540331749315359857884115642124271216373345199862691702531427059789561528734362028112665030402412132210249900415313385865740153177697556449034884370165854638692914894443558596771003167472776832490965073965038629274488318927927937861319144608405071368167236271358011782600727314650684025145804277311416271648597581484181392052700606890413155808120237328611443848170907119062408586384184209769429753330869632272576647747524019497233169509642027103934526189355582453645242090677888402082221727350347136006341649870388695768174299060053605314818658906720367832502668704443648241748088456862565597998487472262166286666626400979044161663256574956443035047815294506640383659355020248366860046312174824630759343188044464229056095340290927630151243846873051006570672208090697174996998206334466812744159620001262986354217729341572672265286699643079505092832760372623841441448468887214763606231287566582389349016059579371966766474270934431184510328776595412618291646297935546126384905049340651161484754296312200115466544192367323118843649203809096755077132809631258570216105673296278561341885921661506822447776261555474152959930870143291363145776678859161525421305448526430461168683640690787626988587844720032015570055509595291431913850647836817412320277913692391326602398252829547643052650466726961078712663032421720465019565759861201344491612480919265216694006181526128515800219195410181199579868234962085991682898620457161278471388418195171231599335199987251499908829472685294067333201331085476122535135172651881372727947190756468572976376375546245673046165975032106956524237375092534745215265913196765621862458912016131172960128050437030584950399443336146115570758976857965370857594220564174800587137636685200080880641271997720920779644569968990665494426332305400764012899025203704078109065499147544798479034180184613851059471192927074172297684790500903859754575693023884961800074651015395553800378585320187858758217571694130130448131490079156839615458513004954510021045797743009750969266375971415588951718213592618179604292707575495241692005193570919473684961668693710281665057012205919483505904092224758875476084007427780077212888981150231288043830881881583820487371672281818325427518141092952511703512871373259686629861054809192382324239560300211175789331473002347425970190514612636829631251089955120735955851652885965370469478243086775843649963273721374658061184794851133940569544805089692222334182065317070677163219781644007327895576985856079474662786320395018452965136241655731627016303901641317802839140688164361124946544063255114028767838143831926546271396931367916535282974456189636596509370944082052653880228056181597641174134357457414662511079718410077909520547985266265693948101750518291767571525400261783181023537943434133791735092898086416823195908928470801676853976416737947856918499266160986955287088998379256908337015963660332009379598299797359712952381702604810174540199847289124950429145434095002366537765222235105643079406213661796180292302544120632917835848913436672344636697892531254296485797070556539219066164348461744819967553063037007643673530005727259044243444617808415701001172719340074381981919170410930519525051764889728815261918606022467992552272693652012777405606188944328390967303740670940152006311773687810545947927552383765597488486456349015585542266706372200335559845680310728683205394668266804912866327535352595718589648629710045464278006560424479164314115246714860498448369854073683580979623349468801066751085556653836839105410479275480077184690479058987114753884962024589540599656334208691011130990177977910535513323471607716134346956893447821450866200862589986918545690122951538638205932362069717249749218483668674461157166099073426176110454097252156952307408369325346186947111054586778381668105755705254237150650630428222531365105055664203144603571942580375973964224472923264078063590847421782219576864952044841609819327900163386695003548470741531662432964760129573338184836581887706474753983253731720856563110070973410534099356458506226339261963277963459724990530049516356269697073846783305374829394134832446260584918799638364388916948914197330784924252559691818589164702831789315370759289206174187047392684283184780438788824376920430929277074499927964377752070448452856299141790455507128805539821321441096326455184949732133839228171763391707864247390317842239638832345283249479042852281081358199353296943581633962363942477221822228538264429254231665706757209629171809452132863137545165129448077659293713261850275949742185523165447781183703948535620420199069279153686019553923127059636139524762358875115342394565905798243320008720160252563904561679768800658634569273392567970042942020484090948323460590062556048322458526285069636351990872435945738457302137772418743273962071124670547946458100503026411305038676495595064989795237727120779717223167492580266322921419685319380100136994518102598053969832732440120914788149526703326887084913909074799057453701953473931769120345461209846792949328152981261411985421673259475431965571051853972234159540315865377462407310638319989872264037795721483134131371658199192319413676946308522574797081583982729231600425862286004945893047521750287187016989570246418828118122118640104420859168956498541741123909703111469725915768195358839320600991287448144380474398969701092213288456846729752585376045717656213918306010075018224799960399148318700417372000871136765696103047724877658778095002535253390096719337837004167550922437390965982877416896652254895408762089159837728492394730317360553004757925307107593380457472851083443321032069032389950001846675931315380292131522566838559576973976216566905925155927653386671737412636672369305887965466876796802881785041396495661811461255128909700262888280448074463384756063811171541840081512644388911698792975402061237741044293711583329414086939166872148250447406353430627374482818807452893938311893137128001866483363272043926341061817983968563927122518895599063948912852802522535966827992570345085772728844231621203846863488271262304495104389332319836604918187017382119098436997135890174673554403898899377593238186002565900675763263882037566333273982601827284622340432910078155212828665415155505954543740402877108480257643004241832648344344363844356892674230528900253354235960967573103681377061745312426155850113684139940753516010840464743059185982449638185814682141866749564576560271604656687187857943024977399847025279884220083863280938095439684966955518668663925610021034327757187294356553499308288369211420742511690750349436670196502598145372207821986691013924432323822884526533749704124146840299012898304792347758892821460575812195962484429035482780007970798350879008135941845267479076259424891940112350998358364379178926439828600691691043338323030896836701286113776360202229502921611135404829080731612861369613589238857097564121221688286976457361922783093067678878842509304952706562817128458305156710486153173202101047943872305422046843139258134323928297595594657825013590400951620359902152214429417012997212037903812266259006518383968271468410878919308494041167654242865593850239058108926532086554977263281984940682718312159713025327354775154638212301367212511889391421979074498274338236753541397607957723853185424492948755395113802056541505546430530162542435428315871688224074833933313507297497736446883912445739472208372634836051303691090119736845715779014654995343195783748871219739738520220185110359052354996744278619569294705095988870392642910730549721661191678121645073466024144314751251090345106054158593234454353552360404496067190100419873880786069379634419622151674752621005305740707358510729473585036361522078157893680325789144442489688371991132206780242270834005575454965355765035501313191332875123538336423267781105840370501388018419590355433444371315493462751108429805332121205675075943861182020892632130481124001231831708943121037656448749778299083315643921173170731527773729256358337100386415167131968129047760629303065633060294819189900061124202773995822954472563318066473491577222884852752370921692740096234297185024896681462276532148149548270371715714020009192177058347585396626430877397581770490036447404281113187850991292092184730662427271177900521955141230206335164869492900772817408104257848460921885695216179049946568739893079056026011940257955596391883860922560017921680719877214353026647945751955766953741419541412070117465145008584751721793266095314634167703241423621024281532312339466543900640195510506251356970342120712212032080638071503495213098539737561917287661899983191222814266513837605515984565103699398129094929442262561288711092061957305143479189187000831890338067759365227821818771180503704714059230663762454480637144968683045354569319910504987315899564996735440168096320425718688323321385429794356926123786707659514498024328941569915160853948129352709996689883962141217691786744311799648344685875558902394762565567977983556644654015741673271676440884337796097925671254081399588829391334555562550400115519792151336019694438006492294843758550291208231137817874661342545390350954999029970279874756712811271402671360185646020869864006021800141676497658158191391073755536434308669671961533471655511662372971615565857463355524218861816447763276125849628234581967677955845437214725659751237759366645805160249713482459847489521660891638992161549159734175206774896462790853847630623079248369945110029448088132864431080861336277599432608068724491101577283322724179773724490639511345277885549295641229882924075174888847010205970629542100737892933703748265954602752624798191725980058291144173705835778202470952872271853508917788122918900617398545665994476826137120288629747256732740629817521095014334600046730741544026221561527515916253966732808151718076653457584942597770917623438638375648633567708856916292145484271221663824997744276207584898456809871350835772798749947654469872562026530851331982995207472589442419920838864318475864646006749707177563839607700296678936229852576580831923221606584886326522798132653899342271616756118706041797913745297530939909575441712751247992517270326807124358041644900342781555792673532011316053989534953421925856622709829862237271238911317973041100531928000920226512197690151839251930313941866366158367034675955874884143195502283930201668586921646318972015363021595323552979457586398418322398588123819423440662105565132763505721064380884667702851363702114237660068367752808524526979602267113040815349950316867014695335791223070312076545405053983597327612833539842536130233793661917904973713318289661741453250953933438077749278559620342948467230532376013944513277322161411657442811988640018611940294887427360106484081636088100310670206126424828687018765574850963144344304968046606202714857735936035256487074062518194523794308957197611986107034426507526523328625976038224067343601776739484656313925055306559098948463189034695164431267542952177896769228451410871361418038644945088249992894855608579710815364720024807719237490374619015306356496966447830891188925917140872150101965501286412214620352161175872466077251701838879928503641419047061660810208923754118437717043446557670407220902662241028051014680168831796024584259282595178750517715085149589413917355311324333618811372407099455690997840673762794569672533789174491824666174362984603939966098857287550309786211617285790316424899726955264692912629836562548170887368828977795076967463551737252508632733138539631560839928914308034420648695465244333195842611129587729959487591190665143133897720324473099318189106148703177234620470812248458712384958713297142815710312968879234526319612404880834406322651239441268637302083195000726549068827437915756805346660442098380428626405716602409385308768298927342202552849637499543854749988645995953170728531861245717903202831853579365376929828241949300213870736999063406526836612614466310769819327636943927541054640069699570962278226005946108517322149731917775313994507930581975671712503547750282341180378888511305134659201961213432424569755543155301296160705641691204031441378130397297680373565655332972348460295100543074448544982008826528401802055431763396179040991197525980978231482953961387704252139863932821186681946645334482368319205086892671230434951491984768375816561118635544974258300391071378383947660909135135873087477076337381651742738216138969143142641868471716279907645377680578991384277712978150163420445678964071942309278043092874751267700012562077057867007801337111939371721126300347973624154454098591520372656208025535691299978111544925808721813340420421857810408654730689774695519442764150350260280091850814999221889851970856656720626657417688262856507969666430730365925661697913309499246802922110001713684349576845477565557032017693855971689695399064467084595786104657101935676817878965015261910284309662142322736009672499125065008651305968795231767519490368105409902258168314781283669173128975632440465582155872745356994280379816351891833917466246442873922737515153364847277107695196076865087779900571460640413209641134243035804274501725270472383256560185811047086276946667833063744698298279428733238336858097835969634050034925124981661341804261314785234418137851528551029239358615051633009316846405930530886394980486939224363599597824747307270433020030238719974932846508392943963451227324589792823375877095364585436133138110236447135337889565521468378578234979598958859980131376030203782034213436204350811578929854516127866613252088815303282355289133773512604349427930293717035689301897007213025539354580194410857983268619884908264971219017255819701779606272006805383262227382465982050032772691673318815042709225634340883159725169686327733804599889012260122391533115655982314890763333707764014024604167749567387695059249731709070231279290993960855630065139234382903503265931265412963140345613058322445811475713653708841636128604555938694305163337790563976977173704804431202081722450149113102903689052577352091044752995945089767354667656273254616806547384435024430304103569698275047942601576937875478772584066513544701978456329400896762055599049900095618296949718706079228409633370286881732581724300252145998278503829999816531654456766544901653683329614574293959539771211070901989392062947651370801696158813908015474094728014210266769444658651760682391880438808251445769172702707830541487153504392350396585727317843339207948495826341440434607074472475435753605986644025778094741324936427135033527388258499122659372664503172569676295213216244235159343270732005972489545558735395515852805774355305032298565574754031192729296897338486033337520532065974491819310103431036236001166916911264269678334016094319248926925346686162404455397184858395177465613292491807538293920126890109211366076488129059790908853791559003812330958192402325399447494285250587754387933337558721693211840735176971808186117205228991256571685800285075415945135466365465225207435092251610671741942967575368847947007614218081511938365187212872718706851351203965804418878626235525214953113016146542278027198734385144990629827490134261601657561577811686084489387941180444390673686093845259327183758423807864004881049181772295157906705251105449099056771481396945968548190374381420950389886146519338915738009432588102600821834977793154835946602759536822282793440461731487328442590195532686494080491407970860337207313958313501436383203055872126851194554295401497712735204638528958678346364631575967868650329172849387978439887176126732074964394001682361498167180928204005258222938090853131264000758098299506678181455267024208976831628284516163972290615709510418618357376362016689097014444791260374108519764951872372044366851875778605456539320916993754956451565804075985978209628330323816988896788651018006391752175994465253349130746163493241334021194518481314200906133550888948035331951929094426901394939488373160518279059777396228172368069880686139908650051663455932872289743384111882767794674015564427944895235404702094251471371821563525333984708058576194010743728327480307650571960244999311463058185713882717672085655328462356422667128096362600627914810173020596335619603252165972642155731742526823682046746344308162246229504095768489460462652926496245406294156994839800187412997282953763551030318094776869453499010707703510539853273442212179886076533680563090219038453561636900246017766341912107592519069587097899536774893779887554715343706381572212461468376213528634198984797082575209900936015265473718512435721105059847780315367172978429716058332602942360747500885846149503880139310640487405564863903011857388021764697330494038616214780522248649093934527856806029217441182464857990210684693244822159107527253290000526637285746753812592041424253963506501993092786756779435654144595543800519142053243017564484669467927181443088788752421403215876013649602126961004892254779390999494953859750934153730243399324266208628004209904935691448170748179014928071717750545902111751549637225210168373352669219244597307012918294875469594721484610143573353647617193286624889450330964786236611078692977559092718833069530715712379213721847428203750515097964324663556300096132873536051058211072905024783430964299606293098556238552858201899471607159864023144390903854653816880380744080280147055347759658014827120140916204200279446083102738950972903773430095988778928642194356313410994405643089272657874825579949362685032552704504105454009870032624065003225559955709590312149603624898890934612867679053024224173036048645952674416252445398422925439423474083840304025919820119626218868800775541417201529476743606716226285724768239969105313302510112558983887195403018955938465289640776639101937570630972567633746982526994983782273519530954904238713868040138599212566296461845504267656777227701033668521715990621094565633195978587783828742210778359910994178662722976272304425216060140299742914533542076214112139347040372963156390336112468321332132287649018848567800067712601458940484664517703818599876969920017403057219916783378529584178400435917443175852858826926446543236666159625559929103480391236817542087463090686629259285519756171366232250143089546759218780801546383887553328939562917705872365686740217164635474118310881824613454160604817782795387972260786667329159905340334295401836898922258697604153018685617626607735510257465388049663684644007530100849923191190422532027985884532864492636555577730430516536037124930789886658759309717408695455524192809733974410509133766900877643618072923893672054849028066315513622909266832742319952890230581927451274254363367822927609176922609244913703307418960280811313542471351134548183821222909620379801913552452740021826137504663674521179334053502174789580054681645178924345075015786756165538086234530391161242855507958136437038444769536336873156400203342570421270241543012843712578971737104515500886940945041956908135633534222412171652846000776708177886795941010567546855955486817496263158224855800518904605381531604262322020376423210693856763775502817244239255050464117302219334545226873162303448586572832658745687738197122671672631383026941973176713755813154524100278930109634413101268243319560834571645709534889271016382012229389642916953857987870544920986270612268858329243175338438725596313017313615150654348538816166949564929961917155000917131396236627499163840670898716465449378819030335058441151802101675865982748578032556228723985086275622609597682108402683715883360565763346395900460288166558873334418257560489844978147234729336809819571746694001683255521055016753292791161187022773115314763976078765546807741686066180482814440569483048559571399881330923982637744797208498563455147866573023778870295324268924058939339918108703658619530415015854933654855211302027073708055575469707928486775560204142373589622483722139763761794840644533272815548201550521869780064843195591793523593960860962384808429348645466807226054946887195467147661484081072879720716517652378202389980895448987633093779643157182289914587311157634316442965587433912274911845440989983822003616623389420466078625217659887137249273566390835263952615165551649819734830118357272857390148252377234861396014520910945579064575842240749886909401202420424215507253017879776705776543393476578507785915745037405130617493384075695584773478955456523620251725125730612982075480728797140067339262197317214562458374456486945599997554331842990709879842557567637464913548759172031307622655924752051868999409383422808885378036124629614377570093669681470461175029582267014775030222696206703350234744913287482872941854483471498288019170992512861003563373620610055566924355987556767885015926668867387226717039173532599327390954751741107829928683772864601042270660542160431528207946592991114224035239206542522991941733799253740788724533363435041263448962766813428860340007554319838724280488770637199050051004646316440630827727170354052573302495066928572574366105833102599887167623872949090758443249355653097954491977607035698130352454078995168218829554852591468325897964712623637182711344526521641907751996697083941081932223569307906875150165262325865487709609945991499162173055150781398489567289425134713622935608060046691354879013377323271739818339128654216062496983198889346648754514853273925162222925918327590984462900608436005766178424576905514869348648377073714453987399693520142179223402153123167088215461977574376365382537858942643601966702441531588245798493879521794665159771494557017408025228448704514929341657972855156181294347349714336067463032029891999936331837640835061184639081158238800667302660003195542348688830545366258881643168070938533011631080847905506887436416321660116856407923331611019416750544113476797361573363635129999617834743375954789276551409914943855234965863483167609204374640593991183914792732122229208084281412441291128304318772289787227299445491112945169350887262877621273433387480716249687255765047343519666485711075143091525751384223847400678038851013740441053078785871373688300702416455774338054975918871370424551364510792479054099483980386062159137811561549734604580477948859694154687772575668751274278852068747858657283990099724553115593930476910617811391713899709095056029341631008281522147271406586022578774399326801855003735955326929773013190632225156403480588055378008556099592978431485232073103831801818310549220175526112102612603293157546467588748088256000564153412850777304718243357766845123273243351978964163869564942426029474748804303034168434833805588056837868382664955767676730262242512507510206315549714614554168648959458806695328408187135456000408772806752732825166556114693082938493819739372970881472565202666061298900719000974859788621790396275595846488825695288233725480335604690281830161933745128070114163405494232299246516639545020564122260667472203556565455845158343472193489891675849832238338283295461241500203187514896290927925700609445164723650526227415323370222370292614871153712789275591332645618633373276925623997799537139248247810316232488121860705445674265214042735313326349157833412077951615230114703077243342502967293902085927768348797734834001857214238105421020697505619472638404033557087341962165510973431550035479516835099463949479530468992541016444613905097805028784160544104122546881700145412189931008589472711916828202962965312664912229479189364151712772678511052195814684772489665171525477765955026339119369951923930636510761671903341900604127629830596927328673885128241945194931036153741495988055455861722721522086633825541390072312812379509192803277928860060526567245776204712814950754975097561200949978363075108001414208061655069019440782968676130962761667029455523494182785129879903462386023562440728789860202856037444577820469340620437493582847075538166306718892852375191998942708443781185392680858143044759475843129590700234760486918154186387430772018700842786019236056463857068272884759632729572710093841249192004816929360132291446975019602092739520522361338182662424315576440828124487242750549030097045684233864430950794418895047862562145254789502365946663348217514237137083704491136554027583685777094516844112216973944200501971828376335354420795917184889288615422406733955354044608247925665969175603460523739113126581884099829555077871481704058963632837860957339156035971960532040589569666579395804473489651160274524005405926354726062720099158475510052739619119004348026116907008337540514380787844686928290310341638710530804563014319433710746552142873048045292636303334077443558570361124999668394790539691595942540952293157118988167314882618513199235256466890754789806019030045582269918777914110987796927926450220879740580892354275565367309826501256611079115488002754612583528864797219332399016218736772225248369073377860588733846730586735389382427027308700528702137801519862899218912543192786549297890450769426797133073227185447232932529190188203397436623390717823435230655586489384765214549100225550901362866299798781511007116030778643106739824181536682111766931035214104839767125233970650431502254498917688547310542357671969666055006660616194798499044172075084275831622585345969564447513064930662444305914838946544153678478505261669074294612730811813923016806473320072889599760466274666891185851030459319375568113486162704197288939146231401792514154931925588297786177314338314759746795541494395738475831781012156528217615703935035345938845904698982927770315620543434245825541019904472178056812610655846755180077773046282996522035562462463367187886036060698364265344010098374207554101092793004556764712721732814293878960865654899833199056602788525365578622907326461402541963540886681093701912793091638842718110952382688230148166481970087167352430790902740622304694082831590216979683047835413239787046227753137828963953083821109077837472626539179803355419040943385881386818464526199178687122353927786612826497316179281008705172751006333704009826149294991775988581297753594362716354363481712931608959886311638155083569291184836001827049012404092701398495929300036133664557638592858529166284112690802825080825538440182132890592053675466503950876839750599780951809775862705328795274967824040244220246063098055238545631437597615799190991094551915496830830236587636508682160918059116677889890554586633956053596588069069222802537409160429207828504031491912834545646886326546069548590732780609231574035794710473853478812918867617696928244530722589748705638591186176178383317424845879371590196224779682927036675644754929774014420140825425510533229801689820821834611102550286289414869201877634867330180599008331194515997211270150614256627383951621797489604981460012102277376833526586833793903792604318884763776617616390761130804043536900500957413883485522090143220852550532794563610529965279077329907107528377964529646572396310790095948580914783496340204846930283893862287739392495712874671741565070332361751410313258120035042967115014203889456316426275136843558547483731277842589470913728963701981080056023651023497959738648113299276500621260019158126790769677198646333681763210731656842346728425839588567522944910021510709227636358678768965051708698060441175852123507057504099851828289220865228988176207475170553020358483652070987339845116846410754324961357526453438819952492098002216333977077410905909763221180968846522927116332023511088106250715569481807560943230485590231991594295067884330288385545275317742442407838543060502797436930500301506463957480007337308319609738568403668250881052420281983381176405170002142157905341172731770097433228055100220614344771281003548486985354312906640992195663993216694365106179646699951852695195156721154249040222666676407477518597752953214077970727780131345691933234549323421954868803793724716025007606420572523100999350349283921745684317916141733080326807013772917935284817451884493674839906977748070468741979044941389551847016163457796938532426580107811333939154741406158798132547502131849283356217548129689284364979152177054583824684969493691269794289032621125466921700422909184095890855114094407581950946397794146332654699896829015793963613369759123893906294944786691389652624858091958439155419239354019277330361300849086554669246410133898710709715160874834822671669050506909117893499720699524573623129136943190093986740693310148800553414997940095566402701206104473431066261438317190810424444952840378790135132222970674936666146004961273810453102743126115409521416229731037785195545083619548784888689120179610222981795754454330322123846839575597429082201783762564840132655801330233281436469750724757430197991604349575233369620087552737181731107483149014537539914247506848839935709579522115830512614315971546527123324625260696168638069254488103890896816415520058870562784785014625350049405942376862445616072171420148773017086831454176689857397702912367395066150224604965862231269822173050614702334695519346330959840535593123296658260938301820063820881014468104953885558695519244785227286779351216592727858105125931915360971272417459487638452298807620190639048880490972475412919347740051999414799968656268612661741604088864388472823917620198375205800385556935816782421518569011282713190289605525542085316012441506037998754645975416145945575367036218018399807878798979253092870377994135117376559299605395145856689244789201039349907646184088190345273307726876426318369229408800696371339524438862870412332606826016958900388946235526336986490253557836477552316005233496937344990984006366979933288589909227000026381026774061432117914017783764132058311115508533019360144035465428528934900345057114487688943270003836731371470058114052213577029253393552438018631069343172653440224230775653517846436959172172987682983729845459144064932118453535755505132148935576236828829327684888908447322390524565254210660627829602723655313514108333806704114083925869742662347793682384020580444395620844072544615715963599891887581020003753782683262903397450876417089905269430554598900010154414754200585473938836126318958394707597467130276985833196492451919989647257237318702375354807570560112273563267280399886273776917563850236679501804205690519105844387569971579580378323598790490665650539213415201006090833164362508312033648918183315106990414850035708696298017078398829925967608127328302545853100976107053315628505768782136002595226504117244574869847268336489644999401630483112478265632170207986108032916126835942999375733986712960528022001485311523585473689233619430249680807282464409473751937108385057839521385212169316121793865259321252676394109903353925893950227932224499757337011605585285043348685857795240764617375514773831639203240811500982927182892359436865019368415827736686072196414086984388876695200602127025709622544350279992142056900764096247168148826958286209788648409460886104277704450046692052880434682488927949441530967175364530754264456263533929773250959165071151195492477267419481019977374662773959833318890793817894076660885160249303276137474066130527865098713308528084727929605145050224229386378544022136467236526365383706521377663496552685406246043281878775905395973532106763202533655821291185382650883560750483018487369848892958593719366867674688959472434852030740473224194173061492994690157983486878631164505713789928827872455844544022357310637647426492679780074384612752195874938059873358661598707737811724319713809359503236358063402185297392367768407289927903382266490620412848882134265116219894025766462264426944796844898356553380361916943159796477873332115129181371176354949953990422264340495779061048963699855332343168200452414400427521353465646166401657109721528085086773949977176783473222619299276284537690854806246581774467155015129994481045485821340713277974334545038588358231363497256528365791083485907256490194747236119791930830262091796171763604229967648041757047779442422143198725032390216033765392384413389340122197677421233463551680274175129084942789351639752537858060104001643149378215964604650982163630923074546297973925313077671697368961098000978131483251477244816439042746609917059009963432889530461308995093180080088143798720317312868357180038792417186124430412924255564009426922349507490410106706999377270933427881514717690460722603064579636410410796702473700547932817533567750674966515844107455154681989993674114800072980017530249154902213856191864143631845207481376061929612889633239485995553249451645533349015134439856086761242889581611735796546987531745438047487829613974103623853176723260927008506228400707641810883779523801319316800055545211374256891546813468076642670936289322964673949815473087176040627063781072650537628668443254176652682842290486986817823474159868338721434967451529849979483752931353406690538806570136903303500023969385340526791874479803744807767771343144811459460263934561017398162863426324659262122095848222829936045767849771734662583605117659878253817069492284071391711700546017622246905366193525629951557769305109508244755390807657788568525045080871375620544163680542078005788900965042448205751524969388228735939858884876927737874511143891364600589828980488871230091701511672939746065536906360026441063306880875361385228506391999415938825755682226793243164675791748415831720311414757465883763262265023867673529307240487350728416298230178936983403058003923796068688078095027920475387202244902046607792034431633058115641964489155732369643422131026903097666443986385259001561579496750851112078289279011234274672388581196757415229783902250998718969310868908874993484873738830050793803328896367145039969516625155084141294573752555691197133069787614713868534574526230448362273263175963379697022952445083747984024603752164551590723297047324199915159549483446910726983830625529388835614784344152339481720760488439910201412382394703302163359711253864742424936625088609804358189204995738472971439825142996091589566356334551840024412560311359403706700312801975075667756350167416568991909428688259765285263433052079739706981420016350751136649140981180447856685206462650661862905064026337086379784532846693765247837664194215715351174327992479301643212732746840207014638695245935105713379690675392008606942538558609865134666852868510933008452003118924886463062108202108981775347205728972177021654590344363058771746506481769355391439037479440341543735518853763939064293272898180061426898633357960928987284813712267255030644433859806874457969054210789427919112974397210152662060166504916800271411156550558603396272600533960936277624102913431203779551467641865184906018198290356593524914964127455098495036621040458543871318457151000344547196158572753055447119505033742243851467971876410485623134618486658531579706113283467826773321482562037160278275974690495717723074071044264044526368060335646897364524431690522239498909361031070325530105201648764319793806491377154116796242429315941148468519720453971336697368578220353407224767663704146238044432022878848215224744488563096786434630508447952297081517446686495232324815961103094856444916105002810698939361797162714634271492806100196705047590598563319157568728764901110803986566830369988933703269363404144273288785561353420988416279011305704324944359106226930574667935217254440992049225354054020547027550309137408273782037022168502886964344945478337538820866603549828162692355894919859392839799627953496333686997275549768687948742187978573303507625370142230691378582645265818431412832410485754187743838458915771098907646490827554783789367321842221503239949773547606243098280780674065479366299958135611757609935281522089988965690767807682297096702294661532934541013286997944064622103054742380964453190959907192730515671543022946792808465535747376031816500927970217519017319533778717858479481603204504601574506908089592499035276368394127747402588586603317411344045758889262974759810210692711973383815862010450649399462024743309538590989554383835325948327391472109437493466011510343466273786489629045893169820799183606169791289551844237191237821142419175391636951289691537646699854871376267926963898959353386795782196542548933194329943750573472435512617026495275686077864443523180021282162894623227998329223211053655446791809281561733173363439564759713777242024486838974992606389097946369170062537156626077194333262984320631798017083017027345326844784309212285656998877701204787695678504781441899072787936822339783412294908089007654493239058462857098947277405855837554753564227071597242215181859486890828573317263502052774370216717947888739483764641288285242888574145200156156587632651937018064432676902270806461038568034727010545884809918206171472156982677134051532280000464248847044555610214336820271438976552123673880456282043617018829402805541362482146080323584243295116479610073263539983216321219274572837018868318325513485604911385148427611167229168533336458062204014671095134123748595927769184278064250966369130017676236449206696819709901321353014131562871856111011604737230702948185162027626970598975115663802129936188332015740908362476722099574134880037921225708264323593852586466778046443729071996592678258286089994773237700197278754199005677173224793697940631708098584799729052091721080685448568373923663368985926720799376977089127515602999066826996936122702874333585441573368479820960613133373648577088805880440213789724564499681530733556470402639990295388995385705976798658081478383197892056690821008219349772030410117808529226044140792189064066744588474601496643270710739547887389699035051841743665717808624254028991301439696086533599114435214929722153485824138141913396112113783092946267808236489535774650010010990482919607590084341680963440186116326003132809658056950986249898317280043093035457119244621077362546805808169017399794033626559241321728324678014225227263336362837382614215212275088540576456707362042994796671986563766559449470972933615719267353848087402590657950166641722992321083975288781372212896233950332228003158106317170665770596968409968967177385069850080216971691006219124129893639062486013431103325519992705076022353089346329378275300249189734054391841395951226281040022693411078068902582209819363035275687060920515504942756656755037498873373207647477125907708373503873300633104802323809693439371538794265201366010105029123294870778098554308929426213279239337777358476879501953307230618164465145243615833165871009337779461953528413810836323238947910868743002417854166145822488576473768549668856625305800390757020316569495459750045398397795307651944610127714368492770013504404090723416194689784279009720942201210807574979611786067741262095488396546059129665442178051325057559315413775269377422209978964839211256053345090909472279425897639328895160502463204982451977267583311615661943022280771043349365939980435461382093604824572674606785302361455116626571032028580591734049525193585981808629653815465865336887105254959332264596208772715034335157349095205934250526919399210192220507083436783743685059185215391074322504182147913412050160504247549732861561419417689402754140263012408315963750720356596802452435313680520508323645316554964146904775499325993489975081414526553174317435027271356342462876099725281127585303450103881055878537252616367472005135232357515785708753503240277804587208393166918818155063176183413671669160596276824225894228398468573645543336870021282517035978335036103709391950213479924169520566005697735988273196943292232267974288729162716955887481507060502627762106762459398733481978031249488289077333132371859662202615418978588386939651757416403509470721902165958220944756797030182519782980378421567144756361217848211320887786232992551573284809311246239186397112327463702563039448900849631328080939534177448479671943990071674865234659689563626570964998153470051942868353101032102380965311225184782318155208491096756411245495620277179144638228202281969589815949541491934847162798419585214868467108011898434930546406146626918084043725621518381708811620385906835898415291864644564831564918103743226054492146826399280503159220567137449051642863997733590224267001140607421384074630597406961641119924849817253009618668693821165751647398162669792488910439637021044915154511192172547865931006567136554490570237118850624615189841650269899687231157117304825428749353399345283077331639638724147749807574185131739100115515415972510356308422474801067695347573737158875957764303018476691033269328768144186696751146651405374005460641024586247114726861771299930958316470302073478618538090214002481062408025787719532491387777227606794126820847829962855321965541479426855016495282972846395277662922061817513202289313264267413839849945282252577153168948595393977667354305049127792473024078159594854231912090240172911678708498848183506532401919042834201170229632293412548871026140620134155704307980040298614685880339818240972503430459247450292135392201893963786723241363851115542867893123546572823929872040539681679387822824691404388238885874167427314678672711180014881446670423940443403103492314380654409103434253250507256939992496997780943936600330878311750274874787255008040602063867268710934058129215207129182115564831509544038242208747130067439852074771220177521421157417998443427879815510214632532145357855721869202558641951810230556470935592623046305284276979873117149466975001790313388002672607823934112825192661737136243908192146953162783382143369765919247965906254922130792109431427486185529558609642071673659884454567509561494945229545613034417945594024047800260112454905379641277082153924371292066724797790875754425849503857818854572182022226418923675725340949260411588152894278151130007441530627483761999913057048451680371641343215844691882013613487480233658488220278422749392207452077506979255660200417964980630939430074166067189142754476366785928120024552289783005148969420055218704357788156373965458658029994328894551587991395478303103689303718081620502547352472055742147270574783597440833868232070107947891680720063437263196134019539222575287987715572719613833287071023100654559455298106255820707851226524330535921185419560723728989428040025637918957202481495880672389458726457246589636168158556069060421738294526181918823800393802859360165293975946001991558937825744304923466216325678875418753244353539807540509018348179261234935579441669615227255107890864943723875844131033889548760270571736375494584578377095848582908271033921453864844887856726333288948179819490042275045827442090086819504329203698362856972384670288623729811643163052328330410384717100470447790875030398609727628629302418020690650544110782565467195820687651334319186663583784955260112836127997006129399145669499289264120398864646983105284832446373860018195930538258409015825116443756173234867101349604469208491332928342256829010059231897911849475952051628280805319652729260315672955930153613198311204193436444958966048752298990632983943568305175254213370415927995573242300028630218437030790605924737370364370572026030530523757062597113680760265664238373258931935796133005401225514675523204785047807087193075685272049656456286516631758513324394145137192695818025248162911873558802230298925184119645427250072493537462676534677273040268019093738431527247597188515599848965905416683320701230842508179755805968875852275180778508420951570987751200660828022282450796045204436097341660419790141421883635617241154434484070816126435377961204160512490878876928626786710293589134038499191131376983813384360870041569880810825936560611121903026958001689724737602142464364989057955381568760511184643447674150338059972289182681179284146612684490197961345878414258219347433132506088975242003759183516445416479070605692301914626104187979532928386084728916281376412236818403355521524173738104218284932471053669182843048100739447562353555105706775510306418931350254929276102473223105937203164267788633778767948903394122681175487796321697779999457935986771495322325887489770395977131440481011879580796829981776248213332365925747167445893372893402177596071479695410938588451124957241492513145629817225384003788300576794892656285225771133780249871143796849447430835478845646834593902810270087121474581344467025480441594324615374547147605197182138785035822244300446574402666031105500636467357241975213084624230859925325393366564135625878980081887270123815722561161193717599228185005525846144416733868570891701733063591712090253439834782611635862325836662264723803477296002693482861206167114443628728786838849892927683632399023753133466417526675085041896630672801765041046501520453024070521472825834441108025205783319604909178072499837365406729325814319709285985780547309653489410996349483627802057165766756772276207313434209025021923475139476985452017296291065533647169428961844844101200309569811649282421243367228110035324910940587666640248071571692990855437253690399081338141919888948653032639802057729330134703496566340198427960987427753770405490327634085519283782180321836867905125415537730417900383402587261214505303320090971555876579036630622721465189726370011897891916134282470000848339891063289219866970487391130219217483974826514584293622779964116452319000226183422740380187370234860810781217031743542710632217087641550208256720875331408451269765983109313607684308669722155932273271728675879189507498309073882018472118346339055421936315255658008701840082963288910968392880787318486738377688907992385370407078424837686201162892587646175363649023050120641511162570634723012358473863229213968424671809973742453582379968947475158616835666908956061998465552087371369266895727893802042903094675648459006434622685903579067213307268229915105378752490728103973906638254475207093493430911858819322194417346324453915548997360821438981335110362069920474477782436843972377449000433184717057269776805301830113437894989391696861545550575203271062535417886885386112966672800144007781523234900887784684744842509066463254476288202985768974300689755067753004789312629285343145546807737587932151577763617139599529643176548531219867560363259397077404317939941795976964949499512945759492695490996349543311476198319818828090431678726730577186776730103984401901333385391774549749904902267539114896044178303944950127889580677552507355557471824115282881299744371070546734057683335140838061007150686018673301490788977999120126131843103340549679288745933443063176022935037475537495139139739633880288127516678688820895158038504807778046940028635987904554162643553603217627077281012237062773078104446793999048430354281439091717555270356400581993121176797230880111161221732016097755825637550814978376518568873447686312967574676879750987336600731094228310889664969386410768443504867994484146771827966122504552758834023871859086072296951828142424697297478315723462413470276546854217758168242550052609238892319050076769622205344628485901979290088037966878777760527482029443336495336295592525933487380895273361077809802530826831026719101238297611759327995002765473056067475704738876072502397199695504359233110143332902486361290905722938088165363403508368607387944411985466894643299535343225127810952530340076993450551578797306002719732202524484999084618102027881490749355598153130736938923116226471404280407632572127327755904142966693864748507362419565234941238308842030202939706880558472761421408018150805489219364602584807840613122158296410084618758098529684482038711789664638171273948343522091382685174595554321604822253844732440261530162018427339582384224978827621018065361371761029810400593596017430296353558998515807168191294232264121170267806343436107003802883721070279919433224655214576515488069201955651738795943685025711981440374335245662124309658199022865689502314267791220473754304889639458190195401878846272706017936426871451846784664483171578807468928358997374135153992061164978651054370862144310917215219366713262696968611614601178880669118982771078794738325382598706935149346586711400928899968524624633329502106993561476609817016284567667394268896177988382357348158572846738463864877011898840123505089519920120151482270568976750260443448540403261863428164563926031743307425174753023281275629945978108491787953447169702449099911051816451869897771116952853182097581042766978233789826262571207095478672707911421246598147847900017782258595845167740984641020254672704218971625029719690450667271374360432861756135343314286724579923123200266612109825251801618787887763909633053942784579961325382734621494521873925641599412334431495713305869437154207441632020957031352437151441490975169840251784268117425414411005911188302667569921822137749404816385584865186017664910740827070064901388213897193268203791681801784862205135407500457324878300061282896102760798189761095699526738511477439417060917818106025884873315415788458727215299620509668478430886726796250095627953490123083790733003119219194432319507266066304848527480575033080045781340138814831902373432415801765551222578601967935936888045311938650045111621263949546801284035398165759170381496690350950074102705457017469372540981435885270016935902368550389204226035319711513430861316456826369129846646941036323198851137724658280206374054894718840553332108517238549381358828983046367325981506567069778901232957656427491939853178853122411814425443913992435789592704731666770952210473233914871983545423475703636030982409115627946630276707153256855558616096253241363145404181293156330562076941032140660254960752626155611702712620233938455160506900108784710046704635566629691954653887834266930069235527596382200319742540617716680892599591284924103496132961484021894063808675639035921704947215601144656518572635057187412299520182312492926508297262400207682860577513891234711603283165344131551429266571207233847757570778340659349048618349689777271072266128761917733935683427005226755031358038365755703070286253643516774616296249787056231841330429057895695626549871509521747925008726584539264417280113770564667630621240553344779623370311322638968768490223046405265571310482797174006342267172174297371921623552024979912492726817548845815371505322677771117037152952790770394018713173696569214185062692497010266613527995307750614608541496685788839782684006468612497821419545301186298847114001486297758677090895657779752939470896367504142058999040259370140945402089497121416986826378895573247785601113622511913147618368105059325771419523416210952042101431212225608235787677138757175149980134991255873865093354896578478133320091268503517355269933406005442282962286027467100871794542822253816562094699185312982330112521400850643361500206903016498906115529552256602719248767207683546019575489471175437543516647977203297055923898791777233903651008124599563011646077701531104825844757468039867655673506243208219499601116386998533561638484085990118363647932284502291750550327292151148015006481440879667344739091160902650943280908166465196178281201444942872654586327211178984960060349711282082622817283587578191355623434307079680517156126608893852392179989969719921376370573693109328117939175984581117136043783316846479129119444981727569737881738768570543816301807384216547050597804599162289050131010210867841285493636323384764198100834629455954713833211979900756095946105783917511424383721499880493759550720849223531594368789147503053423552550518062076815146128914842282315386319569108695512814759693699795332601605117381297389412579069404119419339783786317655433785831898964415902112379577293717614945448700466900733039259318302848456016876993884927122067684113702308180932577939793903830788880617734122194940780935318426108144642833752557641675576754286446364115706894271295959102573154498034974871895573489687898460009720412814052424307970586182059544247064769179808602588877438836456975441161863655176995533990187455817962864184954385133001435385626737767482621900354734857164086220752530030735236439444169214891239903859275883676750561645669365993836089156540270807552870542268168436871201461043444389704654053359558009126159905774299407242333826384380576978137816882525910608423183002610615714780685627710001216277479270477508747015927928920451125208185542059000681772159286160422009823796047002535765734320863656508775749784298181369538958072298645447988272482832854035903921470717163053317178993366891716170055111704749776328081128092325193473394891662190338560792464749934603530780273891100728683123364906188310799995416356080037359591670627757422335485031689082196533239558347543963828977453019658185160487975711171071430845152176891661757721272828098654273206299029228732272300155722565774019105040485306252104279489579559485503566147823729988981611973744950160805485536080175203943089797606764808769288875795675944266376320037091036220171128180062757766307326718833118487139787286175011867804919768115565359175427405485718000929656050169695076016127950920808342960594587148368467385375337322458087369970341768608510668128733787720574303601392046356356822074376484366110120195167426570790603863929539796803991092265405545119614968795492551538669035920831856590031936146495012898816650702586818679239605989867878003552578498655228661885178834786028489346441762122415752354723574371581746137045678652759992942962619009906604657827154194029550374613287409356282233952817592105199715071004609050796498973423527918910610876547588519061265122917626973075548596074322066885085684961147113112032724398169823332528561418516109997634521709658751231552238406458553811228503765760916385321577304525011174383267541545356103136611342739967207542190050890751471789638328149246049075027342108278535881448975422272167909612155464413765574790914431797068369876865180039283353272623502310387751703202275335417963219453705269838637965449029571372851896091562715040647934235706601466201052679385536989832666287072886860191636037290448002913493638231912669265121457651599614138308316177123821318382279390848952263993081471373741777153944460121890124304071346566465529485492549307174500364404840794332522034033294402077239311119076197699991082447994050478651693569151678977823715020779693143116524096655662406097405670976839455444410422156951355512227184205835402444753945831666975169379700226582865109304359029700992936652556217188182836069507700526214111511519031432534491817415038530968836185611947171273129804588859598554006097524682426729867947677545228741780345313158305556457738483263143099251966719106260665247272860095285901943449155764698272773660317517005194914176731289470512498496720755092597154917968412556858901571281669196723264342463909351593505211270514874686512603005313606559156107343620768481819430785007307294820642158957030535133099789763843160852123553829941264495706569533909761305570377063179858149866848515731489824047726006022099113284221349923939014010998600664473202246031349653720599777343377031980883855034124112648923282729312777881902249295711323096623234678852526635276157747391853209720902883130915679774627447498331496698051161720446136214996951053127050672820254495777012524423160365942539520538336826353937100597205521754505308080937167440486679665982761118232881336363586861453544282072150616965069387120994187689960692134612038620688241531811564568979218512438986051835198641611446199138723478741261620486155704794289136712379782659649931542547647073426585524954994647829797719652384413448433437121588849274007266116776971237902921793148404238558975412115974332626947129343967030479891765145859199126618931836666882809143218817382950530962193851789722591979555051805118999064705647677225989561417309689892787796067660157214376202437876411704892091794243640673444370354740659677961225758313533615751017891591474600228324560411702478178112408127909892895724729634087410650637501753625995261418140799650486998665329202956252407235387160578863625070149875592968349509539284687252862941841024251154852358878858195354834058675856603543915182846353419655805502657398231319666440606701617375068313326620313533369362032168748296969984610904004009727062751529098817217540746047806867312627473212936706268146542868586683650466848883560356048581638315734296954432137789579680627884182822201228490650820880100208156660225377343399323427553011583550571589283766824287938545764164031943017440656946572480767493719329377908661346091556105590182349420951537909192096082887159421185512149112404159135410087916436817388897102665379190661135032221995957452878233547453803657829354641471214140799043765063936141390539546747926847136060226295707054177733479244265562515166919719032913996901584990921884796154542509560379577184215892855038741894206069262195316745346772530488453082876665714949023227681401694639632955350996036880527352362903376389543065480268271918820062201249515777718809566018878767309815136427274304404108719585058402728699567360081889781521014133737600565673080224098068835192591461709331158962360781427412783456740685925790465523211839365438356681626432833221597428573317471768661265058245429326137008221816803862322275449676677756958731746035547987087496174666833170880424563504127913949408844808237753140164209825355184131765707733474506407449313159123661960750618831241609019996196225851933122391546065494575745194706817270059055230104201204080398885594881647278080951897981655420609729825439322928339426830901838637524762276453710319442891781187115339641880107585479422146199921211055506565657447263583911035924656738003000535554410691265300915413441003487132066058920424532379961656608775457174304695192511093500669815504807624945335852307934151093336740122968505492438511326891535351859258617463997869258289901979622329000935079166354213690692095506855764586122426024731980835842677068822375515793619669805530831947881927669826817251907532388674353098991512277246976452260386868243684956850408185096828122704711774654118047345572515012502819413910758537751478059953392061051212243190854086620070171028683396701474219317084421227489697544570396288076758122517734544852078822498150737093127162660030825975268230221109205942839991197415717695488147310410498288811100799957391992013418138587978899128686384209918188313380907741752655735990868503648380054236845667601483758916667474690816018328833353958886240255652141217695804145525342640031835581253835264876796951446680621077728385076827388906516686497668819354352948915574089501713723790229490076945636199740861431344528005825191140648148037104742955491385545540590254601782088139225092747875309154837710782942750831313022468786191590443326929707075551572596619021313499405593653342692820742081753486632445944487639497172010074832836277843438758615804359511016180918870763533931219077744705270734613364584852603699660097094329294648309811399236666641922879228648536341172218551032941356371673592380329128370078064282274151812690572837314685351106528926067529185342256689349885417220912410639652721795022343772718775729399339127533525453855533120349259062022671084261584772878503252055694618191755694958355863525366253429535503355260683786080645931052502991888127404311547298711335302259760120097959336253148865001558699602889239131834870609570871331924617479820930243698639651074356199699993731174143044836207288356769446214884772610181878099963564560091903223801540212677728976572675943484068034194043011702268045607053174834401031074488240135738831069529617861120450791674581083421701272536273824361126876236993094477095862621679056397268989306532937144029691715785752103092806021223485160046142900544843127549429741964432962697970593795351065971349538891736279608185191712174773475426993460096833659287709097995743000876953130647526508826435138853885072521410415639744959238012152374062321214556654916656309721130358963541032115648360086011152047992809382889241831158637435646744311598523858720907825490447042407496361350687185748139270051020923699719096373338440350952062587371882410265882030625884682927389115885540372449484704598070993060002213913087578284347520537705403838782696985732654284761643100636091265248229089161233681035163271024506272279447858055399113189244477412770726868247921700796700009863504002293445284076608007166733850185039055403773620269515395200650224638016700208998888861109283594150828568600184823479547094342548193370999471048633746968186901618224906907800830019146993553116880067405118673950349035313538579307559359052328518101587497217644394912339405538952579747832098022100512370621556742492228588658007867533779994478814917379997616471688955307256088580523348679770550509696805593121137151697123721288886465156107041578168483896556812062951829371640259312914016629393562232421635212227318037547599142236429747044389492831825018951376118431865749895885376861354283623688203078612613798784481316872509190572365937570111497408932111760925508330263196269149656234578287571209834272731853099341408646168124480034202206229171975198458344523127797040700598835427946781649141288594034050155814994363997480804973403522081376691664408624434976136355730066514211228690401556312326975561409903254245642911726347129005029582886381170427537924938555564206984172182647205301605218721383615065932808989271792459732793810081892596544542747552222148880323373172259000520760094198890072296626514501167266057650838627190925411655051094030769001810577899744379015944095463939548588795707020801049057492880930009491113242230917571866049350772498215866308910406169700083222772715368073306881830986798251837340451199181778603035922648884725114027949280802653979951437401951082401155599712813013936692826051179793769403733725008320132776164075292944229429493566849933101845664815918776593196967269233382320392067278671741711403722772757213259133005579129101136963631125936487742918834949304845474483153318938190217292875893864544351151160968298662837461752036549440721138754029756231158316583441089126822045803798050848949989530046201676401666977700399284587539766867938621366918277705330987189268672617062483156330704946948098872080538388580367642684567456873247294757642490721830595406648982189210273870561350670430040908437473377504086902886417935733827945916128995090445220617575935492280632624245147507149305097146285140534634815656152332363176043922611891534073513997938938170274488595176172315144916255468130484372373816354735286981919604295945034096963096090653460713404377714117438977290016546666659302260620437847439943432390311994131557605706661328512316133237787096279865697246562247394325643680824373199193142650239242727365576367548987821653507635243009734278085839664453444751236416329376027338703488176464507277706390230129532950266923149665221718267923823792497854835943847502799303757159905323077350038147415485704601899742617708875120148576058108233121349268584995146022695215330259192791606629886233864613137926746115122464334671234632682207396864852833065081316278822390470606644429879315654710314138532516589290984847759105898263387642772519504956098381511670480379932660413538982640450142083700001479091075942517999192576267317984849724993781129349352257961556813383120185283079319264003914361235029797414967572274915471753477466822040585557844754289264345592284062778644370190206693266972856961398093135294593947259051386729330811890742061827277831058866377661440959325641900640248247153672495926797833951521475576053986523791012331181763033455582205417772785000693138941591104425305651368884232911935429802832444806968605776522955437471559667128901226841484801362971263614228446877478692582855392165510589705816955867078158940488205386742037826765819988412671491181382496781559807609058649462975298562348079900496486344899111377965389022038814278916868173964117300554304376330903801756717353755985561816951947160590750322670160906868957524612191400437475515843814142496905476576121513626556332480176771069730418361038433995362169295818092054474379793138116801072781327135893210144579265986191412773751346870809629420620585605149035575475528984829295324094017786604647626911634074971294649168017181052054051129844516872158986388351080616492750732284382528212954109862219860422461861352462585802926829817019960872746704688779763422301793138551867887826467917610206574324445260732695313606995028129775909917280091429022636733592826568574738646940984161769178584746552987214686207445225422176737160531301391258506214271700002462758391612870596132098581285676529758013068488084703759177020035520486161825714341552925069986412926309089729923098406271025615334832414497486527055809361903467326717724941302231899559465509328679557810319947332527637444891012487209842739505204563219480962712864849248487479650011532044775150889889155754590094931521148522020730473473103407158602482552629078174485431069638774441613994887119600715047705322402738450066365378314072224854786546242509840698455710724853549301102474062054647804840643318495720892407587492975226851067746120281991502618986846051206088797914694748207569785269410379481160604523833585665550385252165574469543449870937484426090220886662253053044894393258890120886085875600663058661615584906054797650447802100465648842738201955704471924345836283509406472596649895467116228763664438913707388246106683005362722916523877412999595259981659039492882534653782811177841242147215739759065971535048055262674952608374253134701900047742471711711453881368507311477990330060265101414244183527301327307351464303144720254780584824996557264188914166350798353729540560555304339807001518667870615085900631668105477072664389555251454760526037351105604710123955404453067668779631913095432071500753520138624026223284831388664942184661715747237324376107098398525531945181269331102049459600631297724773691204896944567927396365561313191514744513008526325474610575660587953177760480662861548113933348247376592530764730502762388103053055894801701830504002595895697410175068758342713618709080531909585362673490135143863568370370204718116533463090232861678069591496470198229361215698842913501359323805405362969950273644046816693205439128966299235731648321493229762935053888898857317364383483098883796199198238051077207988854688417502424560213293360515747999455777535045631439583934085369914088353409618501214770692743290435084959003614854498835502536354790350227650525609030955540137954570403490482951325717728660665055721546690927273255949896094917241090151329571551958356621705643251068926452268700644942738546190385878699148953633732760561474648312233290641253798661167319300234796099313855641468718057269758850162104054690539198505026805289863406322505113323390371451768824702852915729663830189438662945151863218537504217670947931613764320857924238672262041130711742058383534650337389543426246109407462678000897431872611226592183972054160788170830198823237271748958516133778897509461798811678143579041575033680139789447484487162101632238305582249465745068681662711037519648375141778378456350519817819320086537161366266957549310338885663403738374321169339002114194165230304038005260815875790163364382388832186208348678562817376420454411272013621000951270500808198966857039302120213874672771010254426665471844939309953861396716955740757960915902290166858768472429297239916651823128675243644184018262235777104668430567641857137602994870084706967153624057652581367319653288189380941851931986644439081917767002282199078283722673136229257947806597015791370625208816783130479258250201691819519148681911980360853269148056421038290490164875259417714367530254499771447610568602842494360738167887862760128619373414161474382174207447409509540423185287389995229802292756564714345810384989693951784908661005907362514047745043884246354581537609316928515182745935623244788975346937605580101107421701880892115863796394155340766549587624624042355778612281934642812621007958766264601115261684216575415083602875192817796281459861607451735261201239672751254804116345910815340565529765962632636092270266838540774692533335667889435499971755082434498069360007061212731224556882814958607750614754781025308126703890322001199840728939504144226443112730487362754176355225217762176373320526893559877203680960732052313044668337135403647609271279268502393385038653264627916869251364484793779939741950846536859270143529288674427892835011069839114754341788118963307187955986791239039843097658993363738425173650093037016045773347000109751421855339367791514305597700090259159404340293352930128969132477439111795897178492036967446844188073428729980729037134739209592753648187616863309327306074691281430934604760459852609953267023003245468755277298745134167119989913936666234178595760389497477280496035796049353736289185458781095770230152235984834446108827707114378824983975154037335416716734704870752426680894474782403728220132923720933644777097937842438698250771411206811346053946846728170788512363435188441727321269769483935526085535771784164701902879084631119170536067758863232872282680579142986892398183059832405152833478441844389811362960808835882428671060238231040681283057081374221560106567599715695041127739737331040984401981782563071241966575214996529985484059321693608299829032527176717227768502272273234178712825286582542189042272308722209380510087645348126522588261133951981374364423042200317639160403578167262175445761732455860070568821541103960910048371954698815999989575038974586874249328138321871978072818770098335155985296009884139135531270111624265567434448612737437559945366038358736366040079471847238813091594469526767754251859265002811772141074775787491822946803289644180392679314432807859061494303003108716966923074578566938505436160696224988293256989698593808476143424143737513018668797367363649059870667572492294848459729875141951021066159571424314738854534335115103824233118926042224724139712456346635290977002423473653087150697105616933452275317589790265539577138956067360988467526426294480953434897463075965362344980151826326050660003672376870794679643729230464516961411061694240635931991381865101392834422781185383346650762952592070353834574132379781830323429781754301362725084832092338471440790651688682010312762161099117972254955522202212065401285659714932540182747537998918694391841914716144098936594591794038454283859095884976624371704293900783567866244184056399568296511742223502274278886482432143810237138085729716030292049715249793767577286189126104474043409688802065244949688888198139596937172759890661631933903086624024208946858877376688357661663150838982181436151773586854001549083496684202957900874119491770726118706067443647053325712045532830312981049021211395234859714102753756109123977767263806858418063450179330657115711670211141764696943529114680728564841294039960683129299051374388028055232754211422585113756528213209697427823153496080945729118819090548589810061687067743196046670124717133337028539323131155903867988202741661421070007544436784842851153170186198151221233849936579212148452678732592838345854560701389247172441004548683840525977822225745433360724327466155476595758463851946044608869602772525878368368902169132035885030721801230254706366509976938803992110538749283025062082608062905821977392644463146572731892895942102567947164521054192889041119168962287519244909829013475659434073335838103594178714954173349752255272511122695955543290588949262012755915384742280896699996802235661800398433910997915485281423387978247193699038426830948380789047140849545580236180641307229382343393768277617332850207421367755644053893569331160655920181867339418709669144152234644342694995595117482880428985975149736455689723882585840295614574114455507529475887914094736796226016283804945029530536482004862704137010998955428061357096906482007677111952418187446551802045321033455245325910573810069795157662735283942395827242792959217593969046898408135758781108250093685746085304767451701239080412004012277764019243149827563969108538410813673852380606233377753655179523845280578419167407794161237664943184037567864837814573026345993125596382137682418579489731116545157485680738822714920355080898680578780468307708644203170260866675188094398996455904255645894506023399365038848408866505937737811929229327804667487364453029576863909639808815632634736559948499611317146549823257895630483309175723596757219155285619012003391958763181682201904803505260501651092814853717157308959832052586005530763124235920015100678252121549874422103208083347978781800576356279741043272854765412127670638550446780736167340563081084132841442147649201481087022992609632909387276201015471190540630272790188507593571697679248000428052276250846870569321468928858697506246346814434407600572945888631955924273261812582396056099562235813460965465225089745775612890773868782279446886411680535380509067940337492469677161525740236140052692563135037797430344618745748390325496698228952323656278436163682837424872707042254811859134193192704593607374635683811054060507386885794113476214076428727738284889395734757702022254144374857071337953932726577999382486523818802882793333488188549187522498146228978512315731944396668820959447810434833604247831748256657626463682077563194783195727276021942952738306964403692590977057498165657931699344679409347314848843638817191460246101511552268182744918485162052178922624861809172609153976668207027205736191705687697285811531197257964173129772199027225203750303838036861606607265907130414720869724231052235033564844151590904068511183863718362446856783969862175592929183227554268466019124926939668589746107857638844234677387313314800082193756506107402667328944040255643881646583005668694265812338286651749248018272781172760110735111947881877128199355395686813123150698092494275079647924820769392663288948818293047301699847893756819664011541223074691709501243459853464725095936725984661108007032484610301780923920727992744049009457508004631350797228996702533856144950494180520639096179751057990881297033019240416415317368320290294109253100859325836817821112962518338186752477650782195699917043906959533056807409732188622017076142746967736306560702544226452415754437288954511407888506641782280584331831643165629801267977181040671308216297349847357294778015093818166164278884900497900633484447455064645947898101431735767409463087760184127513002656168360673016830195702805974645056205777292171376532757733535525571678082150921871594767999674733981526743675951856474856112710906337166154906129355945207489306077203567104712181351491849164415039673308526813096517568747448549238721268092661389687745525119471069620240797666246561530914146559090333396408486193320465058645946544290174802227626046083681647271579655718344939696062178992393151881867235147137262521217315083483371289702600218387489924255804122455815254985251438242404822419652210864545025098254931834055006061273462844439907939309226052356536189744037332520832430324449866812985779193086308933780624728760357560949847681440968660132797644630998074310530092344531906785716541512470876174668506444440071387218379411350669992992176875147444302916697080571288711336618951881064132332555405102096621593547996810326989792860518546768227532228026456915964231878936176819348874688936672861580629813713868214755766627310946390432266577389189335964683317861460582935585771315539814226972859056883480827892481258846006260048801737378913191222515307571362639634258438467778240559562641744645136971645328753466246418550587202705494097248498090104749636873961078891126399196319339847262715394496140564703074037307441127872127889735401029869378293808483666358525450285456608005749719404116451783951618839402846588618024165175047252469028809498932415380435782856419047152344672696291343673661548810902541840236460585733001404739498003675891072734976866709009662825719831524263650063817445893665487574822567382429411078129486202346844250869186990929133786182242146097856082215569827232141320477262783599456925585419728567015475483272706812910793563809414805952570386403562005920275018263238791361138600073444161182389088221119501956900267656808545316016162801945638713512258286787916900175838658583391003364567159936490224104654636101878351456117871837749281414036237195583239224418225188981001799276238326883755571521759111445470855262775174340033667541487782787879479448343630095151424290191118810293044272265114416921658272885041416048321240553544546866875639302457696312178153475745306319063826838297457359641090818151338031796833807256383499097179230641930446766384896200636502354392441497508549746477654973693902066846181289182111798195922443168616061683385011151280994744219814901519186402881754308940418098668078496310706460732973630187464764609735678735834832979774298510765578349592854224870125544914771867586504999406672858466129084658769101421213026766253571581477546279368819905678464590602718165845939650541723500011669019887564525118394515291676734573247435483569003469073449368869298542965748050549121458174398737951811215529271280931745124283499636970559849615818810994809723896990930788586633015278133495600353191920115505507506459052659145887879951108279697834379856662333879241748712455461372133565613323761514219798171501653068409399682548289472612424684452056751409598815667736173272025508645079515288094589326135872828808871062033113530060610306856193898431251529508814834456364270556204670421045559351455758731025211347677463078596440543693870664088929015961435439244337011094261834431058289491185462334660137734216542226140015319161273475453919183717644610399817340732829105432783147522009271504746052704184794352244485885199040389637518648169692715531666991558771618185711941362121453309289049245320851591027876969503693090464901661492837974754601948904625161770624705188695523736255279013620116275441274266489678076055516916896281948085365786041954098064860509244398878631287539096417536845065483264291554468510960000351617327702664675185660942998231132831368698943899959767639103303603442797890367101939877468032894919103067334272591409560006381407923272284704510082189317654866016659341725328058473180037243123860780056915739325294342865648438769331157816192178076219293889155980043689653412825561645093797639416554383841649127418996576001722788527984499673997947386917499878502287427234395983781242663078716943616240367695912835793742828442020658075804936539170509909379080504038305074654366948357640212964256344692246333592573809646952797839556197523435403937716410128881695036457680106283211637637441101924187160706662278589360854367095176894742640692026627429224186455463675322251250116776353168121819279746794540624771294011141587519534943705664729091258056746861834201994961382556027936821011579774157795963902685789121844738193572019507812180529915687758350846847345974340728524533871144939900279089556512870531658500528776352991944139927145346852479867643522703546779115439493603282363234840944756346872925069169296131400744775969061846874793705248646660542948144787450758699008044406253442350606248745428164742849248060755073632459430509697288740537650103373032934286124874505481746106351278060890759386232657781461965720287913199716986215567309076836009178531364223088131451503138952433346170596581701580180864241502483525104982817494138401683023823983062102104670335689382866825522447560401568545101754676725447651788940392572041518411983329889227909349915943782038683414391276625979952470760140837373019255552747407622835555326688855467659081430647144373376240392468627890221976115639227409309041572967494145299155562779680494754284658783413288453326178258768179912033874578272406994376383543754875925270266119490185409885438977470909080984255224062836064850238020573685184818504230567953036136633925077982204141834265139514979280428282258705958075369357448562224543279289777432438333263719113364988847686293656901707046869381894479699642750397060142601461125164847969274160395621524777410061849060061504212228569169112103049926705565753709621916202048079516179599689942321474265710176462274936189142677934676172649516630221313116688404915452228820017605523254232511123213126739455588630291546988103055620741711986914596919347137117451853204669147578280832192063246331880440895931820179535544669544305111467932007516604646554507523391489472868496855008428641350086955916183470529795297400235747652125910112581854315719118910181277086427508105049604928944433100184110121020356106571281248036424718057744697831032856263851694694559481293120109144341822508842837764984513692645896053090728345697382899113777174380187366194059274635979315202745376211220474465495309203258867042577231104754914106395409217561392638045696294487436465037243201712473414557607447368324138557855840583208162919834002859361806487935427249461736692895833209898893933844942945141457548518534741798762372800576084563231355194316075511660898709781653788070089395209175692071036700911428035761813064394670485884346870221257333958631216953369720133026261535782694339063988547855623967485820797113438949995008475644939454426533030376902039716201157922479556971268994187975874618878852664928453089704787235951532011191652594595098445127212427367590678402903818270284813811617217597474910499254455002848240398412073965544573687753368655371960175192314530794276674280770171075995163002605440377394312622513441319437636481799452367100044025163869045904113817920260301731926953625019608081056843457350565271519385098060071722626992284438863882306021081474896945398900805097759466382118977166060901259096024579438871171353662583149048850775192571527086770278054097257628972931231354924142526094247412318326507631676008854056045148598733997856058144430167977231182022647265830789985325208749401501003256076977611606446079621213282375023367747190338245151843988539275588018416711606044620153774348674019821664015006675509613457575640503910945167213864747466329152692711886024898197891980248541432150726523779915298068691127937668795978626638315270563377587437362456933439009545764760872870864112840890138895567391335960914554257914836962092627609051686662827778009499370595683829592146358727938815135714733668031418140792032370891824743609663853769426246531604595374220692709777195621346616676317208755797446229595769445599939287136220593348580638205854924920150374267463791802542618428235791582586576330578314905342191211602561234051488741487860097711782979881314443613385767055309648690348470460047081748717119552755816241485537402469376783222695823998637815289624314960958578318141011818760089145535113694168348391088956799286269469556163894655310626822871353781157427281069966440663543990120268643304858581451967153659207448270888618146147870904212626604849123879519318594866058858166827027678875294711092359685515607705832891597774593375985729716833400613325863404096281102279499466216116744036471176681229071515966990003810052052042299818188028808590394655498113454360610871917629001373301665214042093269084733455267742174161625692447692221358663775503908389760122079076544291669348704608687245753721201165038157755926276369982373517209369155428357244283278482927125029648867939758610740600124574886035941052626058340101896573537364975764025993284168671312969918083314171662983776170422436975650514729965205077818513144566252906087834901022003337152559873912165612347746612205489350091486378673295639242315652544534473405729822885762474080650484655974372322024655658970422649168309789272211878674981548942242998708963943674977455001075497150784016280424755267492546918151872975782220681835267842045056057537821089978162627464334748283864968482460553354509098094185921411561074088006957595421322062995939520855415819611033716179367535560142804272617178847946510964682905953979661075320697599761562832773964474053500343531868669525621946605386124214767534233416630520205641642710325357507016332614051054437306892524834763219620743614192472389879004595664463198135959632919699012744237768172705905689214636979330091069227446640020798593129480488284896020035410548049737337200598253717171548638460612078914136475263112636918477909755529195535314504435309613021955855821911028811975986814222604591532512688356660511470656055256115969698031382039338958707956601885597331258060123064986851382686471323233760305615366136266209251322617385048393753291182692652266191825396800447327482860012798117286675072083138843387620303847894481976613640768238244748375952019950845730778215546791383503646719787789440492867297005742663007882179650692774979628656598056553306539599996632510223421748608558397618880369973667817189396445830376381598759408781129527275380319207961538614114309809837818695523732292136065316391832448332348731779078834644600418134740125989379461134837820152429085922689398134063668409755273341503242947926590507071852682541869826803091930070804275656704293265659272243885004758611915012279698565294329175564886302198448793027559068651366289980844789638768723727383130315278176365535342071086072670177951427728399936534432924585123319431082429048138495215991799475569344082250959484103858322887465697256180385977036618725747296696372473126516436569731042259913936966582697848295679858464345845390099581673612156382533889148914754660653348433069376456689107726777848907819285675731240052712829389271122142570619883779114667610083122209444099811887819514914506070098931678888314878260311683446240360693558986608507626181504725276270728551661684657496989589830252356649231758539356918443478736267557227022235524078974149538216735816294160193376706058788162094042114646972304678897877499593761333451360154586080075919697766316478703160985329556226793511317619643948530635826308980808968151294158146109974598836644758318262482524371113285418764920072883483209802444213818729859394213092568810150207901682599609628924704010687188726317308621589849968914516778367255057438162402391927492417368987087559736855468478724628847124013964456156231629706077027984888843032957477012001291031478401354495680177524739803894385110024959684743981683557166834249158324532540863031844044913537382754643287846180267825643652845315509814724920983303385317058195138705856176875288474293719409744372711676407491961563914075082371921465050183302883686369536634089748429891141044938836462618323892509546457626063231657224233601021870785150999586362247923146829836387942202049766196079937862996690962340728711025056845207554346166909180776636942107766528737219547594277161184246032475223910146528072976312200504718196248514725466889730754753814608150416522599399758255062488439703172230504395029294973279959511504982809914725405925746108215399901113673485448802727369117989593862416640307500619562484853260439279514601836853957450802456442669178936735810162678307695292882290914813979353995841469591759366365613432693904213839110183187799537172734752350552594803764141131568731804068475151532260983944895314414050173503350835771092019290147717301387563863258548972927460244145749694164731457726471212893794178996238737259507650224706581560041235780259138192127914808512299173008279837347340441402639537929010171900421807030482120498506236428804231440688919334830547170266588937772458674938968129215798624770958772934762451590647209858501057183384785994588537781817827240534895703485962834294283330646660622111195995434272188330330786001089755483328971131869229147386148908731876742577069389381732429348242351736225005267337727990582040665113684887347523778819476468005414924748797699648520014657949220330727311953285436820415800533829110729239286593011391292540572984782533158671224327393012241911314547371256939635941388254260866993623935181852577752535134366239934784123872223091252397959808418210014548459125717446529356067409766501682485848081416918128935904910671094088785225147097332314575917972737710501939992577577370529429626312196963871578293030173518871495682101601309277192561458655807816967695814119806828869534629622981333002914893147845498129668914603005000090099310261385591441934089899295422191951028532948695211535474993833214109419638641989500385641701410949086517338807649578711521193285144021274259492759217397037347784231873590146909235976323881889807794140540219423947155457072501572255072054680227619574852997088698880320071588078653612537780183515042526281652992396194561271185880995071328297228434138468713956054443289734493666043871880617075564933506299740025638197149424180219788077224894024599922356798807316721823427503368135215727101945460733342187317186492719044644361897390742499880912150902374556860951104504750645757810624174970505026493239683854334235056941631707676922110063882689190846607054656604192170046462800040665521652556918353925355561318061507013741160582145701889500791895698334737871907195134270251812234675726173667330851939221260304509599472269031562727802966952946812069550586275481456618990475092762233235688354277790122118099495854905980301397004287299732883648541736368711936260484548674654209563134010188485559053069039358655617054328394337556046150387898016862379310713503940925400846315108078115518729700477267085770575937118738302373053482645438121035595633227745016982428940579323041577834590520667048603069671509412162290088474534081651799379654743382178520607351880879320668348286122763533237359567482761360202989430552043410518975262883193047698065208672250652363658952310988422711354757694105849855196888248874911401835901566290461030098164563526374052214770375725069885974535640910185373732547667861390507087622633372167769483844830608300034543099787662387126915331751332818003310852650402699312989884114007844539482143389197105861297475599496632690671758091762890385355852005369174501652229064827160567397410151153828312243633571176831138203295367206545860505058263941239066731533392585320460220099077808827238902897405577466800795195807678610270590899297893643798304622271850578171915705101322173267114116452849607191993338413035229947573094836880062981149667628184128221332751863366525937921896190207873419859557428957795215141764183044250157108109290871173850511570646213326721611439087518074875657148728919803840652555005687169497690436739340930959255356383291037089768210290242174539608628114268972495104517005955825921100299027283085460755669347955513688080591262765811550205787253963278446470002329405142858603207729288807316260826059544513869577923850071881720887804257121083086050648595776357009506903606576040708048804057012545638945176444760581024920646146889798774790105631291282515465466440617909252655744236297369098339398799884132737400914632886354571318261551190673275875090243087971090229471576659688864887840070860829366087196687261848097494602098515258853872973322545972434788528748773894483484755748057922580880292738607016759637506465807041097701711262498721419854517029144892396220899356983723771262311302056935280537354174729968075367090464140111292739540076933281176774258846531305918824679523286373827509187707401932267727153352866575429665819805042681909190949734620742071323702023634021033776391181098622006169803163728839096428082443201974792488763627999214996956348045265486706241682260541734388241533522474882009634793156161936690949463316929303433478564461092949125728798409715769727296425307611663084202180031905869984241839896172493636002477071840795128402119964171728037310697312018453807517229370222114114633515290543918359646155188191213690516714801403083417840127511789743266445143263569032844630315093662311289997422617682118615151630456433729896082070983006066786324025997515800910275033344091976279353871669429975797891478563201091387344731487364272436038566017309184517228028217120305362436626931612396656792923628071772117487166247822644418739665865509278128020048474442778064249420496043101864305292786716672783895585241322770685263052767501897741645864581577648675127763723750445896101717362924332827255672701838045893038487850046059751485914660603530163179299883511641666654618542688101782934984637760179913007792746624720666543182604281402253196103479804806633311119487758901665612084057859439720268168935665377466220292999891998910643309599251479009977586559741837845137470424377290287156350118416634414866030874981381300459668350813669316512355314050111420725797376363585368000391095872742726949739251732593010588141999294040525090377200642086493454864352332142346900572209726025640679653431098984222781212702646010569880119230411641705242851829077293217801187315648980331166020982400947793072220078079332923033578754357666877053367760607240724138498453227924394810853112998469888077309264610167487451594416370009518729310856554200448772652998923842374093020792134679285764778377609124786518042409516460031799092957486730226159972956717821323882432767224989035251629859795877560241691069917788693526936324435309197821322404984100360550231239308990699435547100178752594609494662102506252878537893916251373807560301137259853634979482364820887609387388817560080890447475912077369358405188276163089233515822772949050668890904014425766206547817168339984917757708809562710881746097640746296725268289736055225486201827720949244244446035639357986237264270509981536569672707139217544734123041505674685963308493315777084076933090833562436892871854933447221787882933462504402038266374330823237218739494047393667210536078923787642010787720878164099460666373075906890201348948865386953319075456450238270865680219609918917602373409419602930359516455400458051645050543997088918070491951818311555604912347456839705437065610375122155032939064261813367107790393137365373232370993238752845519066188775943267664479234345082409427430079600731434582705850166314222599398397186345421039713293784769516368485457728130185952012976690215199144346163372075172574806179810443517497506558798903733823390838617056051950743124324236471098590233870477912532688190015400872626908085334825002720824547585920803236244902629579081648956921264339295283603756418572111565292729048568156775550099314463843158366369543906048263934817141528530560826775157329968558110362505040959040036687219476228059092993904222613917682469411453307048858461245068631076977572981727046354639132970154053945009048875152214564681794009547829580633944495938915388474479277016828765312928058279187449698909518649051214980795719328203761712718401308202565905601135833164222743233279748941572160917417145797329088807503811766915031462978621599941036634679700903417963070029042079599655378001818737240406282704659383319218459898077810412679923074318659835763799612418324079412369853653979395011143513661271756736718829362091432715323947910358933214778756609248511849246529279089046042053832609878754408842394086874730694536921982027917561671360361780097273087938837882659309899474160171974759248168090155746013187770275537467033263743757636430607000875011987254044508257958474900584557381030468066499039747917766487294160360431758191355168567599564563047127761472581276357492127499161256774554609092523171334986007204191949632686085291451751413058849053363647162543962156527993627840606902078009732953900126749972631694610673799839354540824399743191360975379830267856453239777425654917564716809612175995104113547107104513197724945003037528130052952283423876656130142994336013315356115419533239570734175997296728897930873686374907754011531930565559163706556084944691541137875775086937570369524051492174151857694721406982101399326539685454490179046874130090081554291352260270691060686677909091923595000124788862037281758612261013246867707627129536720301762167980819182818795101912908884850736128727114212742770763697065222548995649728419176085048897978355841901900046076335715401903104427947971529320354077893910606715895927425363733976494129228666547771735429401266345852205300325724936733339603431961124501708136474483766025535427505330074477463655238462220988361024720097232258880881778593584578549244438835106514483132284068653205241852420950566871193327816259115159804983171425760893241615030457111887891993354538547388060530623753778569152465287602721550589326504229605408259530095644978530310945451581557714281952379522256320941310434501746699499885584269048985055119438109282789277697404751025974486120374239154411430593380322615038398106313343900865526065536683926275528345185876736370697666724556353753686865257422684973728085420634734716277041677343792703247815033795016133135507530230554088481831327141217982010859892603187305819670017640721664682013457052455370519584739141307520621237184312345981812330323328164639302330010270309107671079745694292646993061544740879105803465819248369224947399095821148223201164159297909261170353508086364368026764370213854678354549085697610609206449740577505627042482789341963453629325361000831619438448885779266261271700594020514884878448584033748398893377514235684654041372398176005628871420914614904382516929554062465954904953134321320228056591661086180402757377629825039732326624906029690789017141667272835711243624369234313327551614311817856520171309959228869191168689135490779586559853602300156683270971292118167987785282135405285349917834255306793168811809071626537669627719558039215895880595501901805732592532561523787705597474508380051757485631416427497474076965319412093403416964042563397829625898018840763690114973647153821774956251214575282109838997712934667467511429373641641522980858669526535979307047245064580710649166740008495134852319156805672659011315845386134993424087671494787649308788458197240455397563797058350467252445880369433956603152927192163227367612243918694157992217088603716195581537555800929199961266878957339739776915340209193457342775639276049884936449699518824224125315457612073424243987788026412611424498241640520538786713966722406074243862018466648729510029946714319874362839357122801480904776198616763403889929886271398024388408281331011306106611502410747734120171574740054283509883663401175297950467740681332184657374758009857651172885747821010172773829946757153560298423884469392686565173835863874275983478735635571445412353236162837519348377859283790841438465066584506183562205627476424782592673039801006172438261651194759865893522200137170453278900094908534254020083852710625990577910786708065092136062750797979663728689309578226373430714678800470418314381583525737065334590538546753997402078658432978248987551651339286364620669630594959219057930708942207302293806491278888734091752727332678295399787480301604890571087055365220240768854658409508805183708679018421093742643939628067678381611806881215544484952798934325878841736951667475856644493243597855498126217043052034109995816067344949755178723225691998149639294633991655877212676817964113693536982360071243956348387790913582475753568766625186875153226329716637767885839700254188795975231600240768914256601170516614062683442451916605448702503043200005570889197409035793203796068338672730280521384913342951634747644541846907248744545128497837161132597578661303787481095155586442504746030461615923764180306342863739033382495370060330633837118015188178736800421826896924340670543632853359645573738754968562302828408455899842123322366993407919349125730591549899585893162419631452814961038833524621593904926082689826540965030677937597751608960709318455148970633966247894487807870002115283182471111855969279874425188734116048081601824012544894869736035143297070208712872509240415618036841671891084525892617182499367904295216633036240535930329010344821480935866463278529861676923107351856196602830716333069367437277204502048903651795972318332545480969683974153648768140682332647570844330812334982401307189460853376828414026049849668935754892504026669967576406084425346890599462997346754524153165364004983939243593896305531186605906977627484161675013980848924818384192284333492512967053111785375772110401960826247231967805658490284510671965124557484406151222110826121129431710451272400872281441535581043901183671674260468587330610670778716617401037738320915178427946105342117275886410140207424725708412422309093379444665040394750466662550796859611009375876887618233919914224367330564272140766070906654957339767852051143467730518933871776135908884926051202413746165904075873791509393973423780494515074400866407664617279961107135412035052073355461055438415059223664408072069319228219502524277418293607391764487293735359332901217604312331370230806484437605977501123046847256639543783988023006548542261764757981154653816696767718504460730450116276045106314010729882988489738188289018184857694796981771355287874516508564422700785203759265575679429451916717812003365835185177641746535931300453797428057106995146268479777102794293422375386738780494605846609934525834801853161255556702979186959698212270486279024493481982501500106433620141126544386296731218913609875985458801701303545602721639444855991069146496134295694614312873750619350104651637972426210040225062950354714747967191785618919396994591838735138458308472700261863855807346065264160804761130196357073911371241273396988604825102197811656056837791118057800552938857012427969121453537161962290115591378600495975491144820745073224443803679345681847499785821908560642846248119246932822193466002142447448535576812607270448126025644296172584214698670614090195562810204577004546449247270399612770696800710238637597889526125108325787489050636545019735355139798317155327339262287155315150845646474615525258098332550630185883603690095082326347885134647692875094249380149274620759259081000571898415184984788646655518879143106369219148874530125187166101557026988684408265928620487520514465764004973207092290140932456861600401322693747935256825127560956052505246539618210285926215920888103831821949017717011521467957930747307997049415762231069209632984260244021800940678556146980999299353459449648596805405965251220802159055655116696531317867049955071020488999961017477757143326640575428249026975049301872800044254737194949739326695407101102760705210510046127307205749100912874351690830065257544752758053684342612985754305208686159494644111764949040963663688177266021201577474234254592251157954846041580573038247314878764239461883598546870998710033229676180491889886306978243398420732646933003127363685398978484947710663782094163993918797915444604457546398112859659807766161510152048048005954239786175276806710532558517342241956404214159629242974428922543736600853499784609298022252218403276573677428375614214613081258671674058156852658441178839415212028699661925778384660477486478578118569190564258914910508990231763431372593786214784515202768233103723840541037588911175852167802612468489449819429339844083669275067112588839745825596655847838964867089413530145944264165260071624389260875395394024218513901094837807606513730089121110373083135691910986190016923741243343951110588087534440220395171546866079044731094407949455876628668873972180141978338364597216181772066963603305649702781367875660525524232699081264381129357526965610726095367028003297228824165114313629918953535421222088244138731146486310104449777620408140951024994522873087174342765196302889081636403511641049604187922330537450843961660494299492857514431932538761159618143952691871416579495504719408166495075341510123685787025012919935811558869547042178410506440368956845529285132342726823752007908897688752470317842351801071495504185009959804165955632199726787521625819815865762190116522014577487447431332096191055637658786981747780899437460315866413457366507991770056317445487294998535645057765284397279075876829523924292738857485133856886251410945614869638474601707551652732322787766119265631622547074655906838533917100442272451584012816186886695114312672705156347960894944258132491257333999667276830082628004995697411544773838378610389900021309792802077231464294224342661172987444698577758509832791754634659858849215178104405003719004121969497117459014521557502109937928364421908519970686912066349582966074448048683283006485875568602863260287265023414798088026582782944435029672573191637100076555196009694637472230897396976420602278584653222083473153007772712100087026008173216212069259765557422457452554393191200765750538279086039981988915915002807736980316087111171133052152937719832775935212572871415779627973363807703731894803762879034248128010665883516531820034313487108198071724080577588512623259730337237195705986980120002450591932626632921301045628178155190042927192029905205368523410051138895990592757909658299751941338685161920464693707013104738756324711919772116486032732799427833547830895944484474497664537735080875543628953473159176220805619030946696793322917614845764410902987106363811166965283420047114631854528331946873860716267029038556216090211830696747811833155851776439701078303566057428747825070235401967746898293011529223325366421103112442823944684616738216698085195559709260999254329725182558276080492168564916273477685629570073370091629506350839976312011579445946617425630043996790062719716722749145275037855698792400454818439951415303794143577237025753584837391837684896999897542806738912898944554935299222748548735066214350339311492013770999265634158772845481475231655380171905265549355101588306750510608036537061107661523042057276454635987897905408337908401424950315461783618057504816151828542656040772590052313691325572748679508572232780982034131208021937598912839964496697857754660462664002714320782656169712461079492047163515242564115608844525520700815789358330059446384576976918842394267912618929822554728085614452815405098693387303763155126249923203253730647189715926575712913398573566580294806754553340591747794259482693277410595222304468479318267531032196604333998385373247809294389898958440476108237791968617182910348212819359912493729732845789025481934643048751763921329822246824880343795881123693531326306676939097466853590200468693321374654134600486222048762335452242182639052245122964990454603232347264120339891808520185028345297465080782826883125405155595406594210796143986015990893572792991510200326096130908848522933640253385526893836197170614407178623405662570599003054470484180186392783819825011346729837967727427115244544986193963803105749431791438779014058867946585457272437224060152203435929675210482195237055043014246169205764378881437133720729390141573336503668926563213000390924435078025507158171520036768637268698524212257770909338995106413119386774527361058695964815673920589383310429949102773579807241501748817333622100714406994344420085239211538037129752360743771718235508158721602554952146566453611446264060424119749314716033087457053383649676033041475823099806997775697903605640909671226029111973663230904136581255725592098170309681701893709859407793103773049669629556422099388887154815380661036675632012831567355083769271241212677792938793950640026621037885074544600890823018400739304137351696413494563150108736132118966007973091731456423078391172208373341470163800751140073424346865725506276426701757027440424369252869345625701365313050660213475367738889356490231816331051676743911399234283759944445688062174507210392290780999502779492136738345192067604490656589213587029009748401558588080326079514206091860016113006451846512202373928629033954693026635382675922296126257887929251142606022181808120650066348749440738950481275431968910075252587710625683321905104159589291057359851424386787243043479168582492703449549715942979432353759373175809382887854915153264619279379605630581415028365728738757151941324066019383217196210235976167361914789922754460896432697832987443492020175757754237459205648780847202645819551325200647486362467119870069135839983349750887903600249951592100594894750360012585589819387905988385232877489403593186006164022072339552395424236605174186300528299227992048048291405424522660922001485522178477803951184183985353218085415210563997408485115033987161573124869011436668641897992848828865441960457123587709561339000297227324134378826746437939521755804517640571930752674725993802957926829739798942097782256197056719891022063391742941097561465431671784411017269213460131971541441986430600308855443471367739361848207537279854007791710553076711048644785807432057795167811431022206069596856026057122980230282069818022313529085815289654111865332370709048067721074514744417504537038356961613757696857701873969566578780912319498336479386131288344483324295212764415035676284659985173458954225357562077855919725033638668512799831400962135265464270777023170983740461176339805195853462913809612874117012628424497114787716314190391348932237055566544918153497917395212964024090167687290473229534246823276073750190974926634604434194462164880327485288518806687140968671661045051535755575305733456330911635124594592173614129938952293427975329993892248048524580239454829167411962292337983589747862294653443053780062915598074588258375430799397930625643274628130527844854789054866672536529742864541015157344762257955224117677545214542618273904162242020319883318017759916654302878121791265293107980648561657271636360573092154486860446295869061166182992868013240692690914603354595497971901280878548962027344965977210547069843976485881059644109603840336740584766045040999459128978937584656190392710304923309471448710856324424376715744966043422974007331244859501986221066580923257822853556360650414068922478036804198322946448852677335053176262595640780345631822570160147056525098628526190762052484938040507329184664007822431374053849452953018350059330618166391431928479813209013705168608568838880044786120385380129188119172711044528784615390243303980897370794662313382950377928511699223917026731177436190035512620720931195409584244131501055147258620938079039437107616532103264657531082896008344839609531092070082066179939523466349798209305280215228087083107954660237886921475994638685572663862887772421305872956373829658939534286367849465549005803280307636904712001784938934546812414292423750770046547868475810220205619830730420039889658543097773225968307899824685236877681298941178863501665609635176556105032323512470291376914884660241711583925451129181392971603989551776348576437294570168253368324582865559284874476091847585521791319245732553276914864018422732274903124108257179110500913785276363088080156803821211849069327758961148422208440347884579328096752663098491716685030944317759970358104302795846054303871394499695598580538393795695378833375689152139582677020742207877371859604079248814811528041849974668823115854166491286402235078688307988396979668242915121070858029532614622038312851538903451012730871777724266814035511844463622561924209099058964128903559168775791770889068970864813860800466584512853998285798020590284059918265351862296310610419185715436740730614711054506525992672703056358172418575496016820217235432077132371393591501658234798976115206223551675582048006047912125087549047710151131272040372047812879786717463031128429461313503242852184787550510319984819679303359788656418054422158683845897972161809902710920768287350064581499997234528827060713978310570258242555033884029883843870388150921700713226462679773199280959320528671248622760220171154300327942324151793982238181285510258614518345821517084222455225970516202676254460500165853991677758304488817143789523414820313674694899822566011704276240674374244706281849779062798734364959963888050858279423813876564889209941656362689807398695156597597368229856299078062124599485723084097816466675307741711909830089638133170719319067674649251547917450437229141662737309133427716143162561151605331919930460680669729021666457281172838689834300513051601463170703546934749820346252843185569087583653660254988107420363091991186439366531829160463930841996889845259915957330387188460421918298872106935335895759659072178367289834288900265120687978630138134875666911332445551025826165492341866337340510570600295962387954571525511252222991273551753479401059178446300222210104586738959724693927995794061614891675911650296223212679427721368389556890199244306757579514059738241554172971502210570947534009049777377510685643536640281287837623679842540876433271072284536584371065627995929343199626157925628391587707610749880196943476797735680448326811078996847482530596012069565396311524058674398916086600427996019778307863792387752911700183480615393941803031814529417712821434063323682386452470334784468837151024391300008860670323884313380606009891571807847326220875305185895832067170956498120818358644483776166678828684571268630627631103245243955966684568871056179674543280511133087932906551458025131416594518270438990095475315272258650231397633821209463299765853901786807227786763315545150801927159249495175780867562165730672258782105632098110992101504750312519814459671830549546707213217754988296465565145655643560120459020184835452075861367579693453371769570218005630854685497701206863069991138675960159176479915867135358499268193935916879009850020923564778433941385810821891062594869348555680048514767817799149122085866784892897940010879138271229687111525044670388430646881135406640994516942956369254225507205618049389685542244802719914179014853599115727085646386924342958448169758392924157123930473337104558147413696200379335348966369641148497911850519899061963521602341910062240572680886047165658414869302229717602214417183851632300535247422465405959464755395267420972336187514140084827713125774596692322427790509920754931461400839906578708777888271700220274654007275624343250206140902198409047514839104645723666591838744878116321129540853110936371558169517172378543248364471716869132094971096567323985360531766398456583813031075673842970093162991996163238445051907578944803079787328986512050144885195656186297890114938957990878945618596696660451031198532097039776349530521567820864191270515735165305801764662239051214596601605647907059185527169827007665865220418346990886395610372739838558056194312006850351830692944147552419738921240977296204648631481887068981280396945440906198758265387891801466787131185422827880215141625664315157149936405035269379027739700160768723257693189948771978737427630319484215855491191147977795065390266134382664142415223346444244473146481490878576669293025993211641263410106356348739228802362525816347395838701344665731250137427601201437349701298490406259747547483523587918177452640199343546476317188269957339849986400919433683150764766709427564985685709462714552206675173258171166873506364657331934165904230084323736321913395794906234240564991694147508381559302131755086144195383505983903402365407930278006871170795352690651976846638230553512419832898381772934799366399590812489264480438888874814068131830844139345133644169812174117907324480711682699376724730681578949394231889273635468195582433253459081326251477191933563067933587009639815151099558701331745242766995607720036664881603686298560942497965053337871991800727875326866183194309446393777628869774112785899546275858681492911706860750501636745500603249938089297288548628714820698284192876697806575264978977991075230044382265153618650425966994887575137882318125426990807365629438403826089226082240325758229101784394543807590576124367197911847957178057480085289602886679321781973676539538494999567368363600600838643753606250228960753854952909225183303221987214778367073415514492508909677955153109349308471133294046430371370025518021704429602656762371900374192089274029910856582584412709701308440919409112645717473039353371467762070041072217079669345288499681280317082529335766745497553048674532206817371194210984426612747556396695546524489540883733835191804481356427989053544687843970353088261351131671500231270052443838030425755127599456565327822883110608845027632644043459650679350469349831382644374620585856909165295846326499451202946244631143945254374466020435878933424860414421015773114062080681205779013511668904371813930981028206128155742457881013636130743503559431745640349455087146710996434171254977839653323086029927035955500594147725852024385631307072121429965153656713348163142013452596345140524629495990353654983268229314976068321592499654052959070226674936437656716749907511155727262190435008814485932212048796844598124812775566395563732693164131858735867660776886249161448198483827620933468205142302738811327986338334430140834160406251502083954247261105054214416592754380167886588930001444162858976876148423963460802485687354710783775669580887309431993727673422607822520911364187745801756601673973239593590688943929179288942516046391907252530318593579888508146145990205675320811652910020750712992180594686052548790338187661921900404144775305824655809634954113849062839279406092463236509605660085065201694418621340776824149413379716450374069393335624263363148584356699443942962267228503618767034848529169323216737874388633622470269223165586621157115802487399553205571369999170122399179485469783151465483873667074802014806627515146157841337016855680883631021894738812214135195220719428038774690972274154432790695774007605213530967113469377946747787342909074022961491370226098736486668602064188433901379866396871290930027082549080817832536430204599182675077396036241625307822550669904741859198412282245558097885118380186690329734631736184564872516029413148421715775454809862696472895943153422710206234134944755742111787563297476188077062961412691641830436201733799673965775186472258128793346461194283061239922282204705415132254834716264409742541830448328427908679883170206418366800704993451501626656219032250337195538019674464274833863115040290526709702748341990352738390377312628789018645827377259810845700551645381835301888185955042117041455119410367959550460373444389350170999676944748920625533461815182467070631654759669005497761464864106774173541970666690328677759703460795106703856638148844053319176715319231088611284648789223114926699897192878730898178799554718901532562764097167476177706627276539059485169701826248402805827591225666660351136299875143247662841727506734834390439169203653986768341771660334869653267407626552257852600976197010466972280319412608985283577106686714571258857367030584972632949830661265505500281142013827142739054978679394023221198244541637358260498718936492933156271642273282702976663471666290445891346269076984900367060123252427390794702336730695318745526784623232542161530202804451647167211436756249152003861756941340736972488103694622008950795274402620207489160496308083345328331992237250253208986870005538960507512052576275022064186798072720542583306970619040630319849776055625581895042961295268261004913093623871186872498789543336939433290007353066141733976559121054299663838841370660435015951484843299217963371319974148525058075457926389663481129948719167356490283920085398530222957834086917522361950749987002303826508658199954714529730351293914366245028205403795341485545894078209741031688435139954405781745327920479530534551849337959358047443881082470339177707599415416092880787811948269539880530505875155040134147601232778173156084455280544729051971683296663373966239911958316433445054073289198796988888655407953362787708113376097300731818636720220995530201483775091821032780524669410393340734115162218894167834455345818637122703995582522150649263289990858155533105398464203264362292162957632660872745748830533133562026330957955245832997767780644317113577555147661724373680598929299423808282140287060558690825278336013053753438276556894582602242458647174824732291172811184735996788852350190380702897929217186824575323542458126201440884561357111364974764587211714600353960172642775559324841661917152739505441830979716996081722827831205433330826422429133243022219658335179064123931691295187863168782778359538103970428838757225091520851236146039931182642941138465002819846758091553430459104358382467114803464411205169304134881977232812071032428670673857672889527534045251364754907013725352977863882675075994482710609779321970531134522125867961829964551289552263933875379889929299199039070169295768587543152209283019154502829444649369839037739492011852760080582076957810623399480318270413104474846571417222632325687203635532155870716871073531127467782811701334804452457379532625472966574149793567657268531091330609940429032195041985793154397166627981908962287745420929407664085281568960567213395323686663702158922538008599653710967235683781844299181795431066501218185518118139678026575446726641301428420953930619765065212913010227752310852322321984434111364156455694613924499812064855994743484187972153708373179887652395990148064422970272941200414721284909389162480385488126969646564245410140105755070705725987020576579807716416291094684775847107373734841176467352520666374893071819318920921764342573967499461282870544119603797257763242099027315614157698540482896739605193861237843817066385312899863899039505270064210063645819130288860007204617289000146664080093537538142813365665916277817600112875542466827782106884703045805605808922354654324026988446857322416643447982209694519684178486042420450835979334008076191459443316652063457821649360320082060987030969195467661007868111121524071286012449322814272195932051429749226580820919376767769492051379124360459672726162290286620547862081281674614315593552971741866071699839195850587307791085920076330783589897813074332475551086717462334025680555183781413634207828050700016688896353784612135931578172681939203699861652929320837834887754980019347323620581738733806363129401383165993748893455177259421989091547237101543133916984159065512989204974385687457808254864678054138717756301115775428285430296377246852410061482735555019391489507496637919388144519697615261006522646470637375348298874547129279217860038191255279789554147621556162884695950358736034414255273186031763837043141244562744148622190173666142694045316203776795349404661472844496202748038069282336173635005657004551864696632480953814915559625397906437697431385844316964345245724482393029884443662739717991452596452873566891258453549837531949405499506547707795508755585755230598956419901184152267390966225276412616605971882423271967413672616001136527030603253377604514873942203644902635115128131688786080217861963923674442826416337986456382640826504852620427102324498624192943924085631675352692399551562800644127113222859465608855863526781247522807875840580170256568392652954411624153851659473417035268817399392238047910968750580660329582751993812857364643986748604666562241715399420514399403446497830531671543923587430890557618314841631721619191479076125727544621523284219997149100980633106749095326720768679647341304368304349693605534486646118364009692383936830191806406471780278723715171927744089448589683048406315888970840978742825258702864633766822085127130444523906427000380808575875320396977980975655079234535797596712660788546682107692276648875765791986928692595215601841343885681440300795435365070501262246826395583655823519271057751138841403075292745846339499552621402180051982549894561335171361550708324723181697212853740159510867521618215075962246269552560242593311152902798001042815524448072643014514372996687721232994673171331618641118053342592068473911182337039903772026098980824579079104631490186939484470981993802882350276261163722101969413036377368453663283231775301185939733054756918743436939648633660964232994508854863476610438708069184586579623089326180459668775756391573190027709937892195607497386148900285256326763022253679976627937626598006001773475574813617824169323786605950629889345025782026046767746960115114974509884645463532038602141188697280627539431378249224310956855571719822703280253033835992286821390576771462498412161782496729952555258376157845754255743396984184464069540757282597409755607010913383791392175073180893737654469231203795046125452468085948286063933426371191987994605486436243288611538583355820726457937326734495661993698212398455128241100920990876574149132265229745021128146269728391810384540408827727797526394342792475413229604142574901659792062066123024540976756736267045973657494225944673372013794679460723455098730355705590219031824626059468224092576998573173987821988918026744184743864677621805665741523549507088833415158105847650882380648663028393329726481630903008786903946079510435230920384595732231096920392938797162116204577432066409107816360529763594450686249364437630680974591176426714403736375458231565447031587056800810814811984136330718448086450141782793060272366525590236608596515866556244956884559869852347440156614998974702495804173395561069516815231124770588098146059854757591421651214359499176599422343851238841617096055047224887463243474175014076611457731068733082500361400920309556052786441787311898991013559928376159315400533076953025198290388321042305935409233318541728131301743195808669041775170903182555427218751203742304417841072671253467093921239613652553287705317897158224653916233813018958531866919063524222918930770097088641504241183185433768395490215038047054744307999728302279017742594372756060678885546736491760021069450019385261708606654973686920839965766621971559875792927732246383218238879785366307675832836426863178318517798171725768576615653912823911394617594424527877586529934479805653828963561540485593496972419796848593184784440446495474794576733472524729242186995344137046130290463728468238119477129655075049237862402777774132797133186333820291129912813043615621939561729233491311508992159970790635177849086638437432806176035947051531925577073310676703054221902329889842452177199505144106230029447730135481614206769341264143033256126154601157643237304236303623813307298810046607532267970298620515228965274691139625356410795402707711192677158717717473564909863319702864482538780456448873874126654687930289310414373313685747596701961613357014024392022667917544623951065275349819118858387070470654749967858831900529536955614703187463931589422039989407488097017373772680624965170141576224775088009598243067870881373254836587451235977537628289910423992138036911073564992924184583374115598312591014867690878406000045073691529152653969992451403438505150149657796327592367941191695691392097186754334214745835694687457309027999693120973715941689327421459645528412036505584641382249275497755234418067358168501417444441534486086637773472368103857484822070621290366782720430185705932064815243739916013265357500733040850632195019692091623717702409982208458256495583125259002881065127523313688355487317618878572718510337542420262331219406695280210306549702922250104727620693743552781296722450970590606069616301829649690983241006842686419138002510004260101194684826584040763841748988998190668021602759282623523011919146708237785644324445511164841368210530699838111263866903632012273358253987980009108186850648470161192229349467111511492455643403665511437516547023932387819192654202876813693470337096961549109265762111226546018658640526240861983763427752356453390011826247419623578110959452154613998113505978586042514811414844931991174130177111513901407098701860435757026415473170418018234621059537256485979625662358803473593167084668177961457881704122623599902232302720043761043579033283851955875573702722829792565660337765787110116414848867610225922467374365695465759073935115155399480544300446868331125877009833623678982357783316052619789966388665060686706923920118168701519857314420425793632885178980505776480946818278703848128114759611893258676690033559245880913538148939277445891957638122068737145053451147841156306207610038510733189421624301962592610408455741367573260133058827715615044788438682092180806458924326888105327381776143382160502842062760283941951086831352072265938404483252323677093748883675951462270700137321045138055662040435977417495786072403429684305951361885043603375652986835970906038292360225216432292839120401186031003418928275458690156569780915686192322620276402702807347846034596258088207824571625315633543179853155510325827308640817369212076290367597484594269987668096442304915040780558438321237636986001634748040702389456503247891456872123367198706828721217506384072548159497832484556006443810552616586609908049844094298640259961719039229773274671589699728007589174964881922433612043083341523301818885327085567817589814033158172650512291897301295150410783323297639854947132951292214940687338440501293329826313945380466801308194373525359065692471956249401598667227441107072566177133869322961836802685342878072491237113820017670475325652493324134577230381988586010006437991329405629053908605007834326504923920623554500398060913882452828804720176464461439254426111148642543310120443695033145901300600218533113947612221676362371990123617556236542066197852446265230428974301051273070392442740151085680766887260290347873205948979694222809718366266057413329663359812818146134154171382748199733463801093081289161591030826507121593223793423589180603207968665182585785517972553729762769193782604669431955262321258171694944550452803049410148359718539267239494987637399663786806628836044635177061187409070099549331832118318525960637256594844518140907853316894750554990514055414207032600394085813033918131367451716973355717207930034076575537335363116980496244774610721498598707223667783658422448636277027632831181810587077934721677692648594006626944169697708111804837435513692174511851441138673573576690730646878790675709086829584661500047804481690782413775217905017239224080563729888455103849200283226928945308289503123165864854342994070719077580530523142540050380063315091613390449927913089147351850238292665992449062184154764593703473371543008702086015773920290321345745882292604450853228849942787276254293840899974636863825244741309336416847627905453359721134690889352415618210854012747794865504188904856322066375852649792501929238883885021485906005764217899077081922858999975763075236585229206477666999284823244715268237471351186493920036601851237289989435169114801528643937634788885366112858741786079461919427987189970591425797946303108817671436679607732185611313962413843870198126707541770663327291429164457976066345558628896152222568455626681653681086087016861993363584132560359051126640133223380434916036473963860555095975439156776645568344868981219109794488408776243121895008938041192615649477509086468084954056042158785528466444369351443562400748523145869754915983417540717444785016095205559479627617441495330604054624301634924230209993617464778695098666114696037183930956773805108530466433391725432246581862451780996983423282814201377519909835954953318493810585387935049696643403220013734040688662811169003074741415981282944745164690379329849959495476941992443291610984315787598994311567191709356743126805234423696365387619913131279302114137664859130540728969362426465381335974294497267443141988424860003715182889576448823862536071109446060408845541604503907772922842893525438733364261022860607644383158788965762021486742273198431575460058770078351221625667476762509432371166818013043736088777738048892386561562930277265087015819495861212393260407028824489986883353374697223507996729448172545384690870082409833342411687463943075697186121597578870243158751670531269046276547076298963981597436081338712703979293646993203862232181719424658066751353813820931326657320699686615503564701302104011275671840083192453016423204117808563569337480623918830387570893427384181815708571433842490326264764842969097271675089872996606981766011479654673676414148195593309162252272935203806046550804852857032411298296762892312434634729946467167354453728405726078424980891867179786361011194150389444525235275547679536181783609179665006185040920243518682390483085710962809919914043807582475413283248501083289461801025572876715198848580675638248296685267070889301163635534259434691153635296251869027144315642076257867843900777159729233231671552953321527197739139556595553733949831491817587451730038750370406532233406791908065675083063959679573017210433395950352650669246906673459025818469984566620214087350076603016676009631781405939975713539567664332624800780995623026359756547358228705891823442047378073626570384147310773540544987824725896444444735838743955460972748131382716852816467000800343153035054041584918945843959122392442543137546776612068881681862548599191960489116656464332000823552836003028128232498502260271210014769637779538996397069039573976079988827411272156987784108128409216954820142029512675818478454135445389660588297976765124174687353957888861165347365761233842717546218863482060493705852689565577129101572214477306522455137993168997453742466873640379675336255660150166978143020903895968815439988642929453513754986368632568826686243810956620907651140277285836876277295313120441952418734096691976175141512170842297334593904321002389423117432827978505444554346227675803031428901602929566955602797347887049925577670991094320756775461645069129269741897936257492832597804138345149347440025729057805065639724997566791456285205280196095171762180712094066041795289325178033939255525733150440244787412032480508291608303374420060650626437972101586573500869512025629450621282174742053068426695144923532500394980051870665650700254971452154368061573303793493791850894509051903768214014005063862609566858636961498710292402472428795279364622112707243459597551833179487746773646151786509982857689456439774520450511077170129380064277802958387528563805720684641043806144602058372241296215759523057005672218485528039716060080441186560300079913351468324573539930088991235555146107588589639719450360483916425090477267526488413610853935705798695594143800481792790376586866577118557196126069094436928339653896408323967538118513623767661053430429758839757788981592041960533480929775689018471354424032340034575984544069983513680633752775144462213294766808347814044484427663091803769731643566792237646313830514383803768449981798786547498273316670146247392804628848214369844253003595944872165821958021151571587279010687150772800972722739203580705846004222764105503342588955569301959329842189415261123837813247582770996002686231503112342561918153794323856010899641340759387691060507950299109891651533495840354325498647175346891989531433965679841966698582281480972929647351340353797738769708388371878990895249940524089108381035341141428421202242178531724300168359650807555903022956672465491633400123954291564368562622541985818181916072868220390717074705078005764382969976170641076126684991228228665050288312820165410835066039847914432836268934337152188942761337975984460780000592923157972386992502434207039456447884485590044482683048609601939014741898007730193154810853732880622882440936565057724455900478239270682266905140703471393794916136294758291017811894456341114151337573889427616194127325087785387320855041326434151291545849607433768137343940963664459210522743495054057548799377566597434222026026977512551046711761328008246914246176370779466450041909905786246880349597647321239224034659441678373687400989535436944540844456195880635166414434508788768131906936508119035426162582030709762805874652350150174193957590649501957877703038690283975901600924096432584122149251183578408304560713411206242963403384888991222195641649713931699410879715447598633467417932974718139143931482030996718823533976900696225834968854835132540366023517955507278307752736033318531336323171092730916307974958314876991470772387045999794342514023801849727441632228969237628451981870812436089005861529162006122981787861154265040124418559765542977030880015764329738215027838119296867622749028387284564741154654901897354990913203212438971606102203197143031562978083956813052900214270638651201126241671044591985845712874298167694092315880004063828230284599408213741657474326741486614252128999906661413294163375051787000516765275846090480064002276786732114792732513744507661818542642756821794371845798812631157232079491478480484473995144150986699451205204963029673641629531052350362184154800153184622218610384572970485866149258221935149355863992645028754782319741484642711063322283421095651874516999000828819384967397974247856222981025507685784502318959649134687029986256141976520818484900201994262949083809281057514348435954919967848188104483405249998971108717060285701166775812270819646858210519194462203827491099187289890446891230218316990927348293593599307959383063259396800951263936378455696229967295252725050768310938832634095303095790693836239539435623546148719690973632043422052257370236005049722440652159733208388803128881182731604690243113520991310229093231112849966059918733740771034231838687661549626420926039569069038380345351230509367076156697833126907020541109007250889991586026750600573069710855054139307478026459601778122218039481061723938963322328905542279305001263389343361704457466702424068467414438810390488810530208496305539970892716441969262095919795807070207828979559426032517567365209466667689282700261820451005662617713295605563917201722072600782395643013872071772433717882086643972934432624543197001416689694459880042293002508118591166548409617377095898514519586638529353505906185137749652866183970433158137331484402936735433857050620910239704870987700603563091225047333416573639427623194634816247257015841244355289534674071992563831395165011756188571205053724672205070278224119541751675118961496277832217885157307913073452519039744251372874338586753697036172552847154744438373412287324852528005304503298046311012842988001384026033629662555763229784033569764939173225833575793656729513981213015436526987853277957419549666830464932089076846014392562541401229845189059084190028789267325585922652795706720554603094714997491493775211438534455912113105581490772816835947021900253830540720629111427140416331696448731350725013216784226750320196097329580506500333186098009779167215586969715843868311947826952399554617470082114552959059094787376678496540490054004301165350610028346088588411644378376032013574205052716770011372659763352550043025866918914178756624519265671661318792700102962882273883899684359857167642203284341368895198340408500154122261173289635441086478047523983171085017716238802122724932671928464157412607597228543746319996280549990332520529762318963446505923081412662485469309535357574438427118009883711291080141194507381923750077356437512354860212372216439863421059391393739488896524208642636930663082471550283075074279271003242194049124934835729846915592472170660069061422585735391315381751351278429017282209917520462198077876995385979993630015480289690233032014791397119681436492527173742500975987552234915967910201480703059313994034178665773380475094234782888501079314240910558343920349035896922556269484923583078449369224516987824128900526211916321491527205830521941352321374987703953533685158184094680148559907767179283891148856083508301039897207966402439929751859387847722661297632537546154031156183071583982475547540676647095324518655879300506714682503525143447913777737909835642824461115121631828422586230706255655070726390115575717264528094111863325333665327875018084141799891079705366992702893140780465163894195640528654317124817393883810988910274219672267197834243871306951287910139123940372026702800087058715887780131504170503176417607331545801656875950143776061545966510043612866262586723434736156889546683840665600646056502976898246404232749792115036122525473366032867922153422542292932694035272468417428062676285035205142474148414877456910069612996471007686316753223999436967188955572179411685626499165759525646471263039264252364366323809128209395624941079046930780610232734518027545514498515327604807855452899706842791146213127034293110356184242882629505367100323149480059259387932446219170792649729249405963936898892733059455119986664642423442773202029550019770340424222365815109271444013155473377738452173479003103491285677203605920709966548365993695279360214140718990415707783726251555607900319490129389518326860069085300027640149828781979837113285290103100200416257021843482017359405747021841464046084310279388940903513062872916545650442235121916387001137119003610737874381869622983522397977868286751245223677251944421022615765438081597263512469941353064572433238870492048048243115925038258582199357842278130655404426018949974444961235571695585498163099113193139109231406165671175876563876557756079841190511076756327595205720339273203258377983798264044731103047499875383303989627591617030648634128400931970039721259320372506969197471638331400742505951985318617140576467593841216697223889529291663975184978841085830892929705401462462713517409326956456289247952239018782412545021108586504329176698983835819985103410273394828176361920396833699917482344756032309288671446904593317762298042460134531500671338105977537776633891254802570904689469199927458238863928889431288254609739076514823866268921007711414747086969735009791082944626830282299365375099484155221905991538391960919812792256300909938938104639795886499254301208640103779256791840549501649190959443470456001842818305178132564839293339782030297723320213254985180094119951616342672793847140028625545880332636831781039022659352196119123753190213476619467362023445873905971609322632545788268337045336215843485045912697100585054174530549086973387531467799545119255204162156913641068205803464884713346000689810085932088235401457512876997005670234153753317636904685513379148090750467334682669515442336759107880502362741576196834098547847831989026389999942883752353773803354381184963542459348323597604495540566020826165045794322524663025573813211782316155776394776341026613119247929722384941256865381086350533862449841599358440320224455406166671576949831066379439641988061865302193224694258725438349153932176372871705512160670703484898377891567067805367630098863997447728054128209763219148344559558284013438308570326546324818332470675781643086656679623486979738029062757103959471270580619057211707735097858130989539573306592214341599680000024099833599253087235025882540644942432927875223691048486179409204738953379502985489334853110459033701525750355448955593463914609755503003125148594236014265336071820333968857179674201800616647053460019897020354927525873760423344470138808595644847962112843848517979470989495187522234193512230033338476839947008709192150908065885748108210139923114805161911578175101380806633719617800514952279971327982843840762277213982401975821434220754049763801775568024239657308260949162362478310166434823925814337403003024186601232905880828302257485343435975655571373442519119961278957771937126421416125174965766730035267388182968770922271538974398096574275696108263925855042509717451478382203269693760774868441469843624691233983363383098819723420798245879519890374259537404196819871823481722013981310291223364537404348705148874808553354122501043205134226268153437312257514276956733991788114337921481729527937446065680297031726275948161753139284917709872891204483336449571134009070762468558502873819327971518449215733735079930002898016885433169608043427947764898528120293249217521618864862269152049152892058980182578168316627499279061243865044143703130437834673247764360321157997658589673841856613042619629710881728277561762270611042028922641270210529457478603264151111162702438769441430991382978649647380326124318453633274761989696671212133039176150080959785268268843798179940163461384493149109085956121942537220701509232950396811761508628119711132653261882931390660809174160542293776409538099588099996336487495255457433511636796701886578796603434464442052893286583459072345943987734636055865214833799307143423874088752166714877071147640027325479965435359878139235587040722633313848438133585225936195669989851677737302339443681716377846675385677129758611746765781754740692487439337054650564873547300480254305725299367003652551515005953216005981324320430209740875426202791660100338575525381422563627559962797292843801161572377505451253452422170150103987993408775599340578724281258344173206136676498126217005507825569189955903010806969059001428579844869192329043384315120561166950892610067777419705532558931085321619390349409232780246468465108838736248368895874780937677729596781817730624540591324003807914454798734428167118723487169700436305918093000033729429457702256150379189174665358348462407249838035610440829291542147308302694417076739207287272406451354148504992783965156488132087062218822867039845711772140879443163996345216031861068092828100788103648377300138661877131445411149588493511450704208798047672327309214080013889630406031929264461630513293034018669722309164911228605284050309124285729388262546628728325672543610221907268062239642322105087589560880936718784454844548587767863505308714515447319332044265918698012832013033565236839328945922083173384406240925766927562087025334163116398638774703119306247178630650304331440262383625727873204579732660332479590349573767883430091779248320870937640639774681303506227000530112996809588645647708671363828806980679884633450156182203021351644760432223041197912341978705578501882343656966414391152468260158240389307455221045845756499118313641371853083369198478616326911435962390927077392407339296077356622653349635699665102636087122108583183595258978303906124950357324640334944384699976968089804306837289487673278906393324421978757417930605843127454367102106974992940866066888807982927859560487957119152310941270809717543930735858434761428288030141600168317011630141675336233148167114729216436767692747936971620829736473340086003950006016908291893373529120869241463485334768868283898977527834333691003041258541018688584913293901970401528515644071347857655631333041832181287890393008639128488803073096261976497716205286548632937112977002248045195721297639637435818332689615800496832965231320402147270909540189046520194597254953352959575057309419590883897677436170283960093811515518633952250959170541120312273311973347053960459747077426607626588083999562441268209832909896429520189914283901461406251286431406837046292281524112518527679993693513590431912850957790870253050540968813855231645785322311295664864669113666539123022896511079392201934089213552524902977805603694154207581029199355963265141884448818895657742319979306157147057898192534680023968958882049433776761522037250351475708692909633551738582147961934660334219434475393071487480477577859640708458691999589583317083924967290124032319192729734069684509724125647478149075351502916484810442713077457797085887944426491315834090754524577170125796544807556029995454642477534154196376518420176442844419065888208699872318469209242559063760124719568382726368289189959783122704110713836181344498681874499891060559324028716407093371203954218507119051679676566025312135189711907624746993012970487582511752077608238417469694755963393816850623163319302635305723449086651517505871614347430099848888621319113314293566421196031094347790524541479342287380589364617223353779109866432780278793674947851923986811411544145531232923481064130565041443783488681651032176709144649358801426595522108080682950487937637596677503864361739184894935011069855594415855549979303738904051245883887781520337738239803170224636069355959504028115472166569005680835792009407666815295301127381368666201686637401112023898430327625647955135892462999107923417868724341562284616800126566090068460805991816688779418289053858421645031282235591258938242574426031587910116490417788654181908784179188278222624395449709187713169976734243186041183417458260297165849007040273358238843117487826687578787912762212456637725818444980097074310415783534423063737097243047753341282648876196832823442959031754594855214217373356112605716739353699698991368028988643462447319936591341981070725780711344613135599683892402649139093017752369061654443098013849185471547279799967566049923956598985337363612301477235159489767443665560616985043939793929360223835717189024313730697396715312816600854503814821546084167015619239641718745264499952837520772672028636465933369899356776751474698622496413383073496339677113838456042220738393296776955437940250021556461851610819795312011130112510125403759134660256516179232272984202520453964543411355417797413687090068441110447003739082372990797503424561484551922374305158797322970855929235460262440786148226479922666578837845078653092482320455972048102853420247241881784610895866675138401160437481141665410987710386681350420080407725100869393130846701678466842435653415421680339686471963615192229394584450876220730126978583889003257010071794632100180533498648525781295630135632735450117363762082862677462578039268115301327054164727057172484366311550579224223833720535955981091782843910836222271296191663485860014759162886421825917444941379856320470358552682055070561254752920030746779710036444559131020020589114879526133970334316813112408243818166914219117558133615206118369118891246798607402471045455711888762851489383761036177118787307229874802736199148795808978394268163023256852555334557235289461554718691095782504746998409581621182865113389871833923726075404760181060924539705971324822405418288991671578324769268631608576724903735458469895435006172632734458261973990382113017374349179882056971718350724541806888463310181678851542518713562491937427377107428626246263381217872618745171221880337085436280059310524464243745650332517319033948346631550992002951933454415630869045023992498559893595290263923544818510222032523125290865310775619345294913621424363862685023673068247711580057698219963530246545933161348472281890169715694498145012889395557305033954783571819035679232238676988580915272988098109176015785387850189181101063068993600710417150266211279386495677162042099183256816172651940364214277751263025819567588041712855687129461701528202087057736083748022458453292545219374488490400935016906840940357838994102857834247040149637356927748002186401996465986061408610590949399241565708551614921265747890462600652955525753854162352247794669997973289725975703919371256569958228479008774668893152549579359743613179769960864757363852358511091602816608844454128498148453030529077179183519735752570855445146111092320752326731799511690187149999060536593819209565299337016911994674079488530240632727742173523823345898257103785707029467646873963700335392362082669742501726695663351861022822930955313577843281992059362634005999209148239546402907985981869322420509502658390451105109927884377251101841778501969122300562473823236022667308827704745842516124538014177489772234420026959736719672590599437230828269677665376909534854211246405954255768047271965605909191178508981573373752548855233203280791870743137192872215581513962221775299740663492606190666104716573705850942835421754026293692181184384935671733056248935744728927405145872892625715257537570648417973277974948827648071494543229529749626107782913260622142774704284350487925513523321214838946017113851165972459684655652295897845949859839031218381873757582745833345968753849545530105060089732746929813109181330520586403678508609284953818590944556880421682818278769855759978968304532090925697395459395323930471185487436120783846071114315255681446837363740015680304774512584857106331854291097928493870898101422744406614823235343766314988448628955500310182246317926117800737855462976774224743140938491539405170524100767875356328910481528187866347863496777929838540236520734995563430037854936998196882412504765602589067660829114911571378541918842138623542602971143515478921749867096283772927799024147692621196594286435548101115766502252883365743099728856608857183070615773033144650726357921331816878885662107257787270402383620978989089968437165219654756425367229002592360998079042546038500530569747428148921460568388097455167764244909634011841918914871675905327755005776727563812796722249896260114466256583822710766219933970452057807361754232513459946297705656378701829921802189863453741176043710195385884959505414850961719011460777059274847991976103387102318908990956094780811201585561987206222088221955132992958515243283468642079898496989302330076664852494811832165587650066886231031297039006097388289445934637622231794392936661215316746817924828438365724540547647023493658495014030579153617301321248851614888458140949135600018573564673925374552891066903247310709222587009673175168453740684834887302242319985717830887776877591412767080784279068884005768337856455085588418735515594994253545743448214801846553143280143438506424181233423165410549848627299344659078665477734292048411081785365412855726644139072867795301872963128904837978198127663092316595065845587940015006799202538489817854334550835250205481485310365739731548697273503593627041088095378502639436192193075814525056058014624218792706124779989873080268624682640498534115856341925698955416893341674967166609858369242163449285693576137060830952404042126551624520468251567498754789380757265485162151712060401440588707420367280097415559937445405085862707739393882657031482364318737826666383483075816783906018383166964807534037474897609227642780380388595505473545453069387642759252775338710552718432760481007300171399057047472978564695400172359355303743210125561034823057503147737676894636646834386248869524210517964572368183871789242170380853426538469867210178926012163953347831025671362895993196305908106970403083271378018127078926613225346032160195759378636212595721218644578406517991486759279378686201259863013838652782461181607963064938285924347843845920995417424014388582478360417033943660913740204105721948092456144808961746924028978113648413641858049107144389994931116843814030284391587962930731338467063705773610398571071145427635333273255844388734380644342188337477524480698715628793824732674011341733686389202926180739605376125132055072928859521213346291399692047111369376160238434251835200987697792125342398908757285777550675784874058603460165682264736307994753787741721732872155656178494128405061688891376838794014746183004110876428196544558405669241600545263224872070052088492800690439263945187767828463370902734076551319883488339045512116116729957841876070398009954748109129404645320074497036695507376261298188747111514844938697539973866071076140894300092753026214856766690950598771795599127291586529074374823318988883435121560367950387429741921430820404178936919767483291499649577280412017839227262471913656450261921345088160291339682164875358673077359047802379032053404678395366797104134858527586374221482918667498880150187396476419635531608886844276922005346570853866794065971878587146873364853500067924252438756128061190367950632058775211769702237181520175364159328457402573759864519502764645958597048536541993186111883599404333293540591523674769314221949840947478537545924391764441936386419961718268526215127772095986222574059871126690538911961616535726147113684012341018057804492552572699523212626038603260397927834621048405098934198814387054212050735370560722989008195423610052090888213146819983258054788398278900317066804985066078973125980895133774043841003964155451688995184426149372394496548125136326253618610443465030495705953290338100616350448617399873466677880284449570112711222997809632708369848718295627139074780815488894045363326736312367521542062241519014603960472334254427587761434632110563919823916041242997092262297466678331696887101791745909105598464675824399162130421542306811720020592440041647446851129261356083278722394792430308205347136255502597253232513183357665191113365938872711824509109355349079864624170775442727744948464473632020531132141752311064773840994571005485940598152031799609580963621730413009849957622462459052438565771459435985590374497214304487934099091100035248299847461995005535950027306654972030520820634327172494817749368585030901907111588467010061063503536191159125848847385120321551202345324952750059658064738248899259077569806666478221933364354879413259711701535288116806794750330347803432704134195959922408352477473636515014314167085490719788338234375504017278338117155173200225436047746469188286882211950212564210163999396308924351796148835867188940273654032756863316066539969870517313519232025129792444972247467267333139393849702469656608874280285675352627601925556090697416957605576886940447307867043286637845394808224172139439916426497872674026984018489899746796546077754408773809273849297276864707980736817597580262255598622660224676539028534616755614933245647487317845506659998059939437871167240522958676542385239623574629877122770655066990856800471753422796189906037735563609782278614924757977931916523434395844300772865600280230587293138509553546681125133482782177258308805970160000715498023569740901843490300204951437257776178958349243353610938807643565294329124848346005213378941949568232978601041831763873414981423141743658234080877395053469211226955158357229058333398574291857011919750902645464038393622639794681864163333671341370887583455473164322720607027981488371779541860085861679167868539356083464753020391398549851042710740125277338964916601342489193032059572235955772326153147536827313450645759673927347734840438196412878934494357012789623221445924380342889484139393831870647151777392273899098931151858449858904730774161894220779889065104645620133322006969952871284865103849020669428111809110288370865474910361657038212537854250851024435755191048688638187425979748532435822740538011530128759989953086388608464738363012445306601862959800530683444288668417389152093876061416388084785681476306670601338612528409355821106046091220939260091264961054225579418742371121289721791623759509975683858193612217917044903190728726146120088233809432310877473837699736134106060923557215137701267533986948794631231797100800022908204110992596802890465263582772129619761703741594289063176835064772486835663802219529518534646061816846315057458066442459933656367713397231673409904157322351765596183448924887961905487594652094104573753324971945309322065726566884406066125875288006477827106189465572588422286872733994798129950591491158490021316395671563826633169723515172108317761043118074422157511686751458722893478014333024872169691478787645998685365403700126530091316678897475237295760087987942584694159649306018824489733599464059704743416997060272969665314565110461130066768434040294834516082775913194129379342988613136269675605510389587425409567909147827155366639659110655895621549928396193240361010656562274075092303567514721898324047599780549413017375211215754716087633083944838295690539321907590708327643710266277658717145866332308095186026840651002476132048980409530638803480075709886836024949443992244520981276175538149973719726718537163817313264772623810415244066644932027208197403465244524450300440448451564864614170167719705058096300755158952693296996014984624883202980218468865642507123818819643820071138924857298850481377045080216024022010956253846742059717008434583185054815417901267627454411568524260419888098890670280283307110771293088364283965916986536274251424939799195363269525210969207544540114135942140018276729026972761858551167628657930156888100764700519576134567728272021073084785267200480581382896308892756765101691003978849567282070958462995444259722535635749350055008073528119406780917185213724516956705064833368290537516398996074329758551506724064487376476439458162494072006270087740413128492953101585039033578928991345113175894477569493298440445205912451619376390309130345496865042637750657623233406097181199562864691703845547161950219247401578281584390184405137187874676032803051523469324758094263837466209550902930655103309968858359013052352933290161441783968629379969799739878177446388660491436024668764967521364856603107662922438488904735556162557682787637142618964765953745039024673347046569445020755225869972839423088720713085701855077713470954725553004099604903663964119884075358731197548604749179913421165593705899864475779898580592741916450522352682939914619648368040439771775584110115144455903142541772485754761133829579683356433065943533657753045257692111440417843539905459677440689295732295704635587087014898456963430841137682298853496143081968876135875584446485769340817753519416653789741691966453337775744737017949487678251063291073524777057791306080153259803838446273341977092932617812785532984920315636100144033661570713455800893297096368101059190443583523506897128700885615180754023643505276249866467282566264231862054004944374779496667803193852972578333285232951395559035455009169342223541912473747970422339462498985562085130183630847711830577015346175495941179395974207059672095891472205806032801897579395862161400839038204635221097106440200580704776585454682789117734246218120382852786816593603105685791351085984242987613119421738731062234963509221931736605652002226329871764212794066661050397516482752504178956029548342587011407858071039750392965936984493979478593862079862922879213138353118527429383540778012901023565834687120064091506447362433777179792385125455215445256024198019555534602805396559458703378013027672829614373505077099477931763678145513942489604142280575010035326790014187514959682135529652093446730041690233200821135288415493170719111535780044666089908559709242719508313485616265307461076714858335437946515637147310873329097196262871185022176120481534593612139686141010724504095792980876115380168425142436661560514243412819468828611134541413289007841387920731301634825914421531050926648192632696365835648902085143259115911286156074596054377704084066553308225680081339643143532758531141405685975331591296902747795108964132975534629767272454548899486671736486495464919748107163772551207052669634055718242715807925997860614169673566994630489027246410325460288621051853294418028017241075460678112534904727618639531502951908006856791795039887520211876710362081918796587172023978814223759564351861987576049014419462100650882718393453547533961616629097321089201976179613652187498312341600234657776881688579602900020443030222654645957316018490375711827278261579020538937234829258362621592705089300302246234913363846692033652731403913920898498211050804643957614806623656382191583620259562647363808035987342123882185413400149145203461012700020013585239044006925343815476683915748500001833984009021120387431704930048864768515667009135223372502596896876410382254933416348925556482765856449715973686819494786996647533161899038576954668631892151388886122792477349266807879091798400474795933590335822389298018743746611292186709974655096509799972515425700281235279369638282596543110347184302829259763078314362076988434533431860615832191885103174700341816060555277386625135003317949680620125379379552122764544436097854145840625219880357696316735171631132811326484122694247091632816614728405548171923565529771065185950860597335979000810652787584657576830108475834612430125224553136989324020458959988500226958217535418963444662359684578960893294598057455868507217298490354497968410551496230829047488220341046203820390263553454407389998725182654668562775042786298174230100235387635580886531757524747229182217218161487233768565964846707728651533354476537692674753807327124563562010800446920965339881999997247440046124335676439300589751967129222832201236563990140904976138482298907674096090812161161216537432477408646934500477374672560618580626586501477290746426371400538098981761824248270098624692213696742703845040330380950191580675191349415648771424910935655779065745929240570360959239467201726255831333011971479033449270737632706389901545305242336825911174497635806257274249386110960113601532442196385272815442612583204723703783139305132972459728135295055910379228885365941195917537458004656287507295113826825034935436692153223282924216509733016075326768701193305170398105050028809095178644299634199845089103476923112135372829083380116906929790207949847171077166362333036184177228495323536647462576326873754512796203004459209382056396416017938899291453968843088649733398471471977783455498551002811865471176274915181024704822229028096421698675171852909564499901647447721071313304426041821488846155553704299786574234411361276662466420753084699068181590577505925827688527253810584896019544576521246444356671639257414344390225929530879014656682409071261470670409573840956552647120567427380749403138722099598115830081774186552697179874224749353880701814121154298052281865983864685535011483181560601027657860889280437152866439710129203972552189088247721662105479335424405145014541153420672072733296107748890050624310756777889408655036640623000618114878213216982270856646962685875899261975956013972322667500138656585796156398641475949185933805242075403322303637603794191126126662089634583908169462537869666261782081983660660296358173327032150663667656377455034519291211729949050829558039385730892778915118626347361712412760736414861204161004254109570490073263362331468869032388064135593433209874438497946964531332996234978973224387240916671196838235051511587708093285213371533462796467631732569272366947349199189077812803166380751481817653107072962299961285882539519790139956192570740699877840596869565710543111535838002011541209838398220868389888525024707908600206844773782585681714085725977082009918150017598798157458039341449638773421358592921155197401658855801032251104023254013799030630884806271471472783727563385763961503937622009419947937083776425677177672193276531368285083136142545983363446816609083566785196245444881442659564206629774884963881516430631561623498596524247763783444941098245616525284438826833396260662211768187112309979592044582787051941373697350355945324875994838510037145783837812729240001558664357067213222172622386553129185873550325317506830345733912527549813619828432882009396644080217909040126944665067700113369135643632310049418487472442475722348773753672647472071637510983854074292190711200808741618905333907896126428576905063985446063525436256279092452740869088541664757484738847244178653856626612448962533812718627160321710060898961822600087140464045068340187726676997524251962499388920369980228392198075601533173479511190991089599169916729006703274735000191856836216999698733477405051537717653691175654249706984185620570452007181875875281525086368417322489954410231844057170744165294246561121421857143434851196179720044802372892135130195010633181281157719363838885078193173385270694251803808570002447086816997031359460965081151878169579800666860405032851200115701338865580223630725672107009164480074012180616123069921108874261304761571325650421201872915852623669342235789125040677320243548031606985995470340260831046811271997642300635429475414830428645084796378062520317210650771131355426498410667444983069073277343856970191954748763044524626784374077289695164192331592820711632506663914592513172728177993754599590495790287402986655303116489368763163629613587471168860120736793465835023732989468341358637103091155417584011867206348846329429824434931090716263072737209508883415631423090308210906148361545298590346146433339032707621864225347477433223459797844546122071971203991367232896374305632348277260122284086627416212169916052973729143772335002643703173581608711553368917380407163990383294000683911630915084294807921230427671618749066971815995891829571055239304098604398448671573169951127835194287335940704080710763996949632817371200570452273855844594003062154178098448465300020913129803190579461944225922185867121143681622308524872624511833563468548785989697717267480036402805716433437365468902547801344955429764100718900942695854672866211634452498597204439621995593857263972679168046199870343923838152831359869507519362191323774234427370953803479359848584487110014265361288888303687614746077046447058175258617539887319940066877708166279488685883470860105417670593404573279305228021508924654867539780710240382501797992516483279980622201726464019720090148382602983291414715629244929240551315675234003778015962247957083898960028007289034934893510883007496064874099287434518314749066654885105483981062094436298515579497856549147444815746506012929771568473294760624924949024733256716252912789075274425435198929955917150510184373454499151214524776447482387514364288119951771252019441193030536435404750921273860274626603598321355261590256755948428133149157142579927235152057795828950155327144837878497113892237462558752726750496692745938585580935571284021552813214173867644973349285316536535341540314796483084478498783861704892546986913854597789708331765514851350304270282705186122398954146442032536848460890643070729910708047178793828871896444143021469392801901007400014329750309866602535732919919147520728216817035870166192435376232912314805493562284186575141634247797653496418383332788972970122351031908313398214699884191471855827337533928414376769612631057001600657008175105910066997491397643856950628839373851562711547711603131112102683572294838959141017965604523523550949400088388686917792900106720319326925297162539999522755890181286829428682283587485745335372682606312722744869511842720325339171316240480392835030242844755072712926626846450504503364073978065598330869126503634322823311576145133787405329068572477541200565438586958269223537678363811411656415617702007565950885242255570543188497878803368548644006612362879307066032693944166771299398302068706582896855006773157320064891779266173802779227413553628063602190229127137465349558606789962922383630539549675808845675015294794976044478957028683267361735864860246683767024107294207077163561353777823474935291012369943743748105871770145996126246241165203452462878439658395899698639253591246707088704490389427131315523904580055188046305524795006742629097054482599963749411841038510785848329639282321702351538078428215438039525151760237570820961824038167404692021750750423117201338742294068559735544324678890332770307269373443748961465360697235671610987862267391584441822198634866134240999030138627072234628402481611217134016468705704698139079153246244294771596570785766822738991897755905447835901965651839744429523744333730138276011552054118045419022875442848783412446839834507879144883813428841502987425322196888466135467432013921407854582430591912589359881501462477927441440431939575784883642350660186425895382813613298664100804676839186660656819978066914753131127653744585268654115912347418830018078354745889910109061155881349146017492997234190295188721796125785749962143863155063987943046455713020640800121729698955553540683025870605544831407483148609581098117107132250429044202579922222536580881250906246408311592578273586070999690197105878422012269840145511453086527152911021915195768104576969387127953916164209218152374176410748236515287315006996680252130781691098168172930851065951574430849532517371840572686085996584188913090813725604274023854976797494454983153764563286968826444735037036593354717064144146257543399637764553390677772552363047840830535959617223234295438309809942367250967296228681329165874926694935623695199556451687801158066523168752103199819437881308836355822140760288484470581234219083143707158357670456595303963249553865114126261181193106433272123029265325689034916948392187289418928852431300961763684878665444476376902451124504728090376969768357262703765423072862597175689508617222486612793400601609456319304623744337373556694338647329403354891889725486180211974443948841683623774001741088174046873642732163683807018576316979625292935246753425647713357275809898272433075494017412928484108797114643935502246591824663880997514023629961255972225239290457067236912007853175401567382149980582041136695599983626999198139227361676032095074706660677657982687916670252506013519285803503914080981804656685674811119611010772149018154007211128230788955320695971146652987924569674790463242006845312860517317300020744437854624955585192681924370350180727388311481781404943119268188866844686590651172188357792608428348173987134684352840090629145052529735656912889351635044449105997687611879297809334220846454844472910482191727589276082803403951671274410826940381943616326922088454291633473865141801527900080946268035011879032558973800437747251887025188942186178209192387964679588749720670867325262373117248525294445227649655640573201824910252434977090188845833275224607415703787222931687616594138618316062478998196570432686357724585115082881132018826078463296046968360905965189872428559033759621381004069133463326957249539576422210536475405011194363823870831393730802702570367642457678613471340643194181072303469205158105834728972741757600017566856465652855788321357637921892922211802212908673132771280908274387371785950509910389481196376549478197339452167441352265246362002741039983352055897657454556701253192829892186995638635169182918512003206445766225553296525536854014917193240714608099987720733537543707035253491329722910272971998641338008819737151906317856024349207510092904910824314619281286174505470795701125555154673375187460601079350118893937233731622910679933892668850905383033010202312292244225810175685617892090457060061086100444211647729939195450177638787418152656830219617537157209722130042733449300510430493002188414761228885922495226033121158432649837577425343830589741845971075399733901245391036478049984121086433924351018590463797854405666953984778153287608118132906413089248127053983134199919965759360448811987920038843301485514317124315645749277046648116659278643888944043523167006145567426180011096256264244070138895187907706633688958906505611791606720935758269205198237604083541888077188740945076087146756487115571892088723232419197072411350755811518253661222070008732006059170507512241194067777160679958657487567421670450577986969066808146056836252033489053829254550258483474196429335640456705848415601769432548883229025239503193760739180008147637091148208517056441474471809859855666512240171239370183528892958342681372760749365567465438261493824255753444128834304816506758184704224910847384199138602347739270281512995601900652182913270133568664440548827835492114909488120423569265098599317104261432202244067499951326174951933995886485097042289799456824879779614055590379916013199542523733503751831732521204425891410070902139080222530053462179594318393333855297819906003217293228975967708012102877481411658758510194319481584931399950318608921025532904248214135818777352594305951772516937990636920811025195789728844478299548103641501699004861862565850027100392111580484432043778111112828202577902915767817767851341673231162641768005478900689673212697992334694958542417192899379192045549382491896055568493429053442420469732074273739381602265653616881042286878410233957762637745886783071792744387933202602145416452849736123039596104050259159148049679513642686335703366156145581925690923230916450207285288878728372860126565876413559211170145864107449765621210471742177425789806052510876184146912365083039487696352534727785266396441347000536394724128305001844604577135178944228314706585752348040697378348694084798193746019949205167195697278838455352283646807684652361649754795789374941719313233774132889289814950084347402758607484316581556420329187745990593350769998849218079949138518536879100063993640545161450866440443344821894056198875287976984670701375147155737399619134044322404852563509156742276419777174488602784457257783277126606285414882741448751504589992172663671675159695848475870899838497223274566828914035595689241596491008486815916080536300625033045420744031996451623698841852891763150622068174581545398201945249651128606504244114271681325289649163855551712263065474031901322012620793972040871018320449799420899054481928574129405784440695450290503050325588895799643330076287721139195724495207639508138992718251905129629180023989944390539015419436384873273538489315123392647755947329126796896689250328817369168939017223799428365395495868088780019711380158228318100237711631592794846166084943561735064849740015183876675900856737301829037382632595098022109883526746516543021386929620348121289514603490240905545297734830537117813813609377639629209530374460163948293739749149664844917719305400749485568579896647239025559448760609612228765133906568784795483330850975300029797123461270647224479781435923510295870778879608654887072384484300130029924696045612273867051600474634225860557186389037781651845492893962031753344553017814851257930300716404551593552698923273168063647680632625200261793708030278460535756642268027488860774701779754358557277184664786446858635978234278216903257379471694333075274990265239126907852757165941644412724994995063017375053680078687017987818489002335111035642901304260468779456735725654129895685562258708864966074471130114869386645216070229173189189776151050900508543174726237964182825213124249777938329985047933855852927660435780637418784421559903935363820880256108411852261031214674184792545597694173993682312407577321107250004233361697494448764885128327598885194835404927396805910952450427544307755832705559026721049479514885016402078090228152645232097126761031469431438601787919270628987301974215703109411912766142444220349642583097818976285050579439283159954060864578970961320930079845014252945398137977088967514415285048515591520697994150971238068396690721381997562715001945302602076959934735042186618032043300442910706965075172145234246588805369064387668804705366283005864272108274980607789011538385595040425415470667456334787374643715947197848433690072195708230490574725836826933047826277362216128034164317347904655230173196836823820883467821479413512378291263713106965563199618996669042799144607655771452848491747008356685066222365030577013271645059197283816255421409765491359591318467646912831875137010637804812106546702542144161572604321284436149150400846978827476158189324638862767137679745225031328712963300960868654205444988327489803226501070554409351248773700404393707949694286463018713097867696988531162998657724220816742186812078103095541837908738404611592792095100835951474151739423768997122090363675366760069697133938087116370988022713133026832442328349275637155533445947554478854869979153923034099318325756896702722380857953773709333782865614054598649099819430137878068996738515603370593524245841440734714511966669907909156483186971801903326074097477281940314050887764471055797244838892717445370670875542324476636081116015161413792308734701539525122447040766578878380996596876368897486237014647383858946367666531150985206002694294807007013757186890001188026633013945792225748183837117118585830062489711635012548153841827199502297633773202324540288684463114968300884621769813195443867425365015514662399534091932001756561081093627626023829867171331369034961897570339935381780086860476298222237021230880551746028307172985796103190227302761127309691398208659849675037025581081573135068173371222396424927290321809104090370669783949949771438032393182855543691848289461082562136099478339941615465085764448840529726670246460442814906641400036368390986130408391389227571314427473899740108704919827413051075606695208180505396647619654841397120712614702500593319924612730854515198232435162025868375092728251892542229775504942352479691864781781359019883818690466131058397403978404278345313945844758198989836202454518704153842892698783436338717567416879913760926406873520536769414432202632111288224918564567450666165432728451866632186690263463109389103288913893724515519469173599070227287129037838116134090047404709342159001927553307428930861118317969152652222113379955176701586893385876767383998413419496156304236295424062813158342692544528432367118004573141957180896570738821349681001379661487027701095823991945555520955681734313927741862196928480129435342142230784212940464213748968519640377273436064796864014817802868097894454431531397889826509827981476415344828898194624479020908850062131196013579715030185396355014287761118510592407683866706322767839685160698726252869594864848094344562804338542308785450103245629265310950196738147969580696737953676359875467315355736780036105385090839538293994139217098934050800362872988869803136839160638781554781372456578993941051500793375314822400579268021298792774680721593899055357088939559454392309716345367086668829014947793826967678743920988666595035122328751953079985144688717115391877345707285642559748371986246468869952723901420049269182890434212151775939912814521667456625906745552333312708994179338054443776336308290364446229686383005038573423415862360963919236934824040841122710087034634128843912023882528407694457675361308406338400334036554519431385472457848808404175181216367392585856076484436962115023409750203658183660503753158968410662815465372371107631026105071684799716947714914384543689385973184564753174039801932439440116001378315553044170228578137204411191770696330065194041299453359844556988855966727603548406998754629976988564556121251148008187809129747771358085301242140285081422796966458289256087901381898996156420030018412161679200681828785609012074495098186532027201904891354590333084257799541964219323323004965077595309489649430846679201129788696990159975475299132764150655054832491345415822548215748021717574192674794968560597417878152090541340714773456051727476274324349335207207080011585320954227018943188339234533881834748497867921214814173078301298728492492104907886989064555810821238944429963874793770781167514591497397049819887537219271688008117454472996941052749978328104662127882037610491326857440234532056583620966840707003352578280303669206105451267736410995841552807630000143811622621183756984671701334701815033326540861054503602796233918737366467150991700219503713367166355994336647190073043679891814431384512292890822222932893166138723212872410382104232022785664200088744103168642546193552091878866076332663576193325547955690968684181689036988203718616849420001714007376190418297676042698063386675165652920269550488671081016662739555554069184627055936859044478753151380849002677037830324482632040530752679918663351350900923230638713514754045745298174481960594604679417127297129595685384865149723988219567617661752438303917823617193046585346671011153986124159948604173372418133870528163994915756051698006756065096347921527094268577982357730788570719090541098592803143715577380506512094108813421121608321068217486722286879144923356049279404535562738994536478563192968951185917859621652621973892431274411721587537914525690763488236415369266965449884625112416000927669357530872585950683751460965889941441363681351408051207641478282295983493020823490629150714532595093869959579662741569922703344644439067547786190319355468294580095819397227073086503152462283844110686359376023385133136399503371300490938911187575992784226976408660083867415243660338605335996145599101478693195606733280315745237286762636834432474971245710103025174384970913225830870105984815406922244060052603547826769563847150781552300215907115383247584773710118234234741838825600794163952971905808918554990770155227395505899463373354269302793671536268016166987971836051294731549624921202424487862758182046678143457117307511219471526190227009275722043975758210783664465120594694722938297353901488493938434669753714646893959597704906304015326954938660010672387667477370475701428797495468066375307565124198859376086211386096394064020508783174838675779096419031062035230747736394928798247000662157825643380363059069952706244073231820750183880428297899693669813910884659180365422211766310763742180427130853227450483918765730042288929927052093731677139388368712315878804120865898392786474116601610779197083105165369699182158368995807831380455507334471326498549901841056905311467043900654025988201483598985219148159591590443512763211520229544923564034486731588331203853372708281652077615740491984594267009606099571422303080033698965692870275000853633532616273107153079103968824046539307041939006203210764410164242205975832330812050256007077157657465026500420513483581443059049847129471036011327369463419393418059776012686944670753884409433723501423833016957909609682379578832693769116920918496731133685152992931687942548625506562285529083428213619259974880993075318389987856015478368174562473212397777939950841199325160582231784331895191167965482219876954750028202592105862232535969670138151859302122168254510436186085321746182692165208501326573118046295860839212764658447132443278121057202157535862810766683932834752479046136555098577729519076390734411832972303580715264161057729642337511836484521560490002910925622386461056937919905202415038390122999069065052159891869950977724859765689663610549197581717777047633347751370247097250955268393422601638914314983958239724863737813250439309706676026824240126668682962939802004815831173691240043747044484697114169218661259250725309807797400966445428461381965612833457229142145035510271238129909106477272626746635475878628098322744756814158363201057380386155192151072820363700462869987946943326932004700112486857772689359976962159191851891692681083637876749307140805162868208410573379709164943305717486985842491345736933649365846433411596592426975935162208099425949919104591426962964980142854620829508525401247068939091766572850428461667039053350274158557850511384156683290978263595013285005172278051068588110649370252535832586577178378111512557229726084165643011688788550406823481402695253247181782150802081210607177095153305259637663808607951314206664459732577243334181538012169105337689684826881316554052227459288303243568198601752549525514540613161546824434881969826663980533785829905691037868504415590020892227493797192771184975868951183057516574970881577377987024075032973897533803185715186654742941565361991676165173406877091565641988176299028807578180227679576573873222522778270380766416745267588552290109438712685416981995757870668319993332907769574235950204122446389168171854030172398166511369265630294213195072057893376403166377158353447821353266420545994654167592588827179851790022613765142490009414048369761695720781702043914911095587261284017009044484959938561254932691566079606926262069197579665639249626187178559792602287538151539524541949383437065077386713595616299554109287397815209953632726599780311047107640938699135745655756677714092221078809512237838791147149772877130297375924383876150293348945071331659658387539198141214155666976382661408115978895090012899070093839915055141260816587544994523231475571723693785601045530676869652788909639428648957438695340145839623456322421460213947114731396353630372834912788200623868288747575208968978037171829967161857560398032585152718668518532138906916424694835807824153860360905218178282595254605766455696646865464065032826885349251212433367196412888871649734847670370200164434066333789102105237201725331672912659497985493419814904000915883063232646121173567602762628277515782795351866746504225978794939007730898591354703921992489680858069988976737593615512070484721721060709301108485876586828815349063662020355466181644844343072966223359730448095441828133107484825919878727152740841894434341096777960479644656482686867918988974503082592861641010935128003637687301491078233919348972316451477228636043727702215451864024689643012720828933003837313972889877423575753288206252227497075182418168297371482282083999496197934029492119577254643423414919236370501947191437777742415147348577065959613913169670267934395546178807663040812029547952532518158638254422365648108526576277887274447805067182068571636889560271413736589208762368788855785674922464144193479476031069736208280275863812656717573889098942735323063575324679103352818824893201970815261974754092664026330575942093855281696772759716158313449424136517515220083903846428987637421926000785942284677055843090412691476062505988593527982173544548882926010508198849773090164982282823088063885662509370714851492589225225530277086880154778736572278476995132942783601923545076588825498456161704193305537568229865025913535218386930705450028569117950841818088690687139005579504605711005676201512726659142406146139568356482283637624030038933764285675283421721294855607730392966008807005616976567859107737092891298309356023958298064482208231471158977049492049669355697460604863743655403141385180758067322413689939197896813730417811831240854710047512699416031268737063178240130912295646628668980844527969548514142101620291659757456739877022487406130360440643642426711310189233396629698194026209144395731070540792316185415703350986288235821681728237286870027989947049309011448762547758595975188713913385389929539164549857343864294005545520079253786445608098058335820417769685554798039867606035759262848345808156223612164610133465760782071609099995000551394692286948215188931355391168822110438970125172478135412404262191131265305044909024328499529789511295431679122953519389302590102641049567411831005875856556136919152720437701518748810389708451257701538810605561827345835116663959271389417549515875023177513577049160724665218668493365371424223595374421718514190898804366776379886642165912337517695311673807813303898448050781369274124244701944787525146842277554723157490662975040332073857139792909181410050688264644683494237114523479743464606095480293322543571765056010273663551210374472546847513942359829317261114001811131618072843541741679942070057004777025789343729418979922648006471273606459679711356462212708241150631222511454166608238912127653252606814805852431416664494119868204864783459035284112332700535123322018569115627010129424545754952436775552533230289211294160683038711804718944516593450704847086150807871868430507603510584699716666965491026703645010754276184578850066155010355475073651437430918792967628576124766016229812106979724106576865929404366519009855057280236856906489330977091936857266015708315091367221611007186191555555089977495897525475439191556667942253544121717045534127019276603678112342855414520945254090809544544003092652828092694646718863607264622583136968850198523806199255675967436495729869096377174037180667373336147765386370564512054955461861752040026555205879276718645832746889679088690453817040175132762880026799669220708217313948762099915383044764578947270158955207348095792726481865779295751114970370521857239590413723803361863698917618064133819907681198546284233691497397862090158610310383201727249893186109101410267647512096501934052730419773012339306652810488571150955714033731721510560723214589074554736927785749982071550096595838339586132899034529322559952067996621356891129191385888893578408381949490291086613008010241475642639786192970123572345034061114638324600663438434635398060892483326671688815202848656463794189960939271187991741572971664495399782638057493902609033996644528195649423681512167600898071605022262262003863640106374242457478463735335728643007890019856402882163001430358143683795641439918161527197761738458153567780538325373874801343892634709009241117497441324250433806405560084252300376905298920872998861338649397490093404877531300126812871797808649963936887934114709552435980668808850025167493894078824188736202859844097442643750196829372956618296508086524462425650081529717140502786831447567465263595058507807086499356574178643549621684620176960176186018556896015726731109562752678389678477850463015695397901730824091920087735026857840564643585741668015935859410788927925000398976698127124303146154729863254731741269218597415676471518732532563676027179130212277957137971907557044054866915033458885929639248206300660812780395191429247794721387152820083329480002035372803668070057817552637065851443380978383722972213705790341955513005177748732263653499130689791187440442751621755065074894749534465965008991358408633451910117049931352127345729680816958718946949760429217157202597937361883413740037250160753304155170507768744755645196355562376001851932450799305637989483188251373256713946295129018019359835224104050544675911122145300891929350379942684780951714619412098457433260803868113554480946099281223249611914671918020446696963051794405775878476851158740576328068463688581963968921582716305011679225651344241104183292333949505933331172284529550754793969300927945682113633312455539267863109225163759787000903500142124791572686200345918546446697755614410736191553903580268630451991887529227189584542061750900879861824571880201342631560385243182419805922966919802128868846459644395729455035902729376802170261423773126596028521671808239618734231965021622022287665361771370371672868777940397820622086360038243723507752203308528389783384869299593162000875260596483002322070825899986708658068294521521413541391575069385104270217737325722743577472296266953880749849712987742571154026757710032711341327439300228775587768214415800039094400440554301007954016975582888460245632765070992398174764392687493319764461034276326593064737233993258285773432358405667533784642023459152147148401589520433667970467376897635362123059217026125847746613058243928307188149553524120992383455303789543997846505350954443937542562389565452837461542872245951810744562070063329109337939461582819401578573970622959886282237038846694677549275633129807170911668327762251010156252172808999122428914209595203073781717701009105281708835193399162962851850845726471253598829858800896217425236825807022771405694178721696682254928118957880079826874523169518117591921067531654636735846199653893969255766847335797061476982300591753368910326003449385422306842161762673971339887540444942371113969940618748454247662818571124059141520933979857007611081242759424181869297106717065665843658222527337265400137891781290685742056390165096893999127696788257132809251984050540830687978498270696129648006730557170281749285467166830208968955224092492351249619145449089152323242214304628405777186600173700369582497816354838527384435497214736786082998449413754240535172939013307582782818421309933748209742485196648563030238367401981563440308933906659500196916682387739241377321518959365817552543414512715881383225440601681533860804467284810592061093236247993471952391041462127631342753509390630183328876080236595868491825668370481939000782482908624730486960458451749717083826071167765836529986056826462095497418933383055109638360442644583037844311526395660153540664853562280176145326849539971919930025855934703685391619067925215382745881829950524212726201788167677641397320179179535710498747000739191795610575887712200029174970657038647671062281261050389768316070563022137384804354500207826728727057189186304360331380122544295458889608323946965410154287208120601275983019721720298225435151078327541233885504422204593475755317001607830133160981149620618454455886008686399957406859287635046360833308418602099028863333887969783105568219975551931616979439321420226271238851694192393617724529125324129669646355315965169818731660766396341978892377336320550738872382883615013899447829139132084641644283655252957717450756187366690670640193200062535622152702962416757294600881476407633808965498823733010445361614335837293526778440936636501962915202542774706038017012158407593367704070556839930789863569796082997880318170309017658115710730480551998857507353137067581446503731255944201404691051805342147127525040385727963068057792715098656792897379378480820071183927572282899832030339715370685435459062551406383672533269593368628828344875827370976987072589250691925615543442500377959684731003495136199599546594498996327217182879532736907154116794722183157352831331489484071365436307508132890478426967495672890843398684434953805290946265282908350817419326043275163610626010933727963990878292856746228296849845120067756970230168017877851915387169605728047596510372567478739100950038470906133450249356631625356752170620156514649303877524682269379682272119167553628061704785742873747970284604624260073398476729698893203485911489832432665832051982596346713065308640626953583782351516061883288292883585405190672663645164711607476880048601829595559664662963665131348435262137536279912165729577321048149934386032604926834875982740189793079887482572072814811920423879138801241091583495573659717746691641649626202504793421378000498434786530722045326213215239174755380770244063221280197684896488299215566740478101976440545575417365211707978173286426010216771493193823870623459606005634408190328444591423376005680001917892313736852194337525127480399597707247078710363691122698495327755861165974499200209975690392607022916159059418977928796183123807588949985904846268864356601647840247128429861213280377793692844076706109873447988086224972178151242418878109757518635839171969073345985240363981126643680243820349861074065627715037663740437651556626251055508167012369015866306181024906493811658633367763168281332569619499142299120902867441171651962513976936394568847707096405775135300410033284259211561399039223084765181766483631820121502621534071390110080930220101989854523833203763503338688932019632190634972472054261031901096822844870870432552476489120587305108895161221390356583741297612925649487208562359170093316125975942054577832730749345392685780562065889260418924177780393867698246230139445420196641010262001947194391910911845560179908049587886538306233515859426841595945086493323307024598762811886851485423493036800359386350085689437239543008339288648843346320540010886341532058284231750229950137562683641042145692871166551960717824047187723590519548978627570077375854535543080403063665719568031493291465929410941519571470100415565368155871725303811054057636492204621692098351907481143077097964006755915597250827366851756205864973717595591107002288334007789331615836765199529464804151515760284439174244034646549127813141902836337972964601615285038321549600686354735766793153864244235167752787774766704683283343963497370191639206165684013480354305850999411310735919989870102698836442780175962508771689989591004084722180673238209366540432008069848747991434042188420703452441703363857219697819173405694210347405813001859854832647204222083627218584076261924146637258636928008069575767628449131581968175556223938252564118078648312036972097443947761790995009821810010677504829253294533952077025904287860246446198424031814869939888374783595357239322872417851117973746200810371998078898120998831661481490913919561074824256563923975587414239396902287446574182857209782826201543518869356971016807117060450382690168503422554109246860027695816506662623177697395794365686161392938273180016521932983749498348142332241900232765713171102166605813672744678850308587156286844431890048004067536350909438952764127462174445235105643004468467045009716828003594411704596926960765857643930228346089555675461026704527701436332707671446786774633456747783534651523206286596204368899455490082695134527081932947910700237916113827173465624163649584105039654451779182139841741763513511133465357068347315380082932261150621463107628392777526509415250874625698640737391339835353474344564222025939128675200392981847230177632963961447376554222369122791785183678724724694952374411208032054771597619161015726668958043246303211900166065022336203858537960927026020389701067854355794743527876491753443807268863007735833431875237403890691411798945662910302277167106733243653115380196513182820012005800981986302723530226266477674471437430926684836709073808907225368262649769874834645441599806507609684775418779041325287671289298168843680471585378139021188108171975998117617166386826430493755181586988987417461008659114509665726610248859897215072612314965373641748721602738136829592028106223446664827619477511745034825020168453499279102048789323383952154020973952317665638237428436521443393989054965611309727410698659272403506794121821860247545710599063358517166418718158545098964185363934935095136216297364381349126612183687717191625725483931335832862900998599813105566533508939284619519710215222685389669059137336784125775022832711002979902344541253521759820188199930100856325391627623963294772799593243210817349763787589909379876194080756034837034791925417585007306741183738500646580888665725642158745945263086330519533902194486835715110671310255193468291982020437856123891941278405142897245241581718176636493713399999474576839579074089449546110215843050663499301153733736970984148997634813320786412000122537486222293679327077580317357450720275487259285280851192676857457993231189777718688390997510766783724132871243178531926957893641764245085278539417410918207334951890048585770592250147514799580142853347733845803009614910033686470949500872917524446769627460864725824905806198439284539473328556830639114061680168528145823286131069690137520502355412908775062221027754541828123635550343794225937218950792902964088298213080344416530230682461773934565132351806221155425992101162877021219303740068119532923521886925154275514820540682779499597993947815811455462462354988701384941846723018901552487667058313693753296499388784381570429639328546921154270566008560813332987800790157002424333711652603027184871004563598512138701410141684575679459437200041899092877790079981312150740056297198592366069031716575527737263699743279252800376737916063576182566134663912655812628936044060068558606542285474140272921910100646569219370168205358189250723374741206736840133369416412107314466253918153494234956418402651505882557567388275625766114315631241784099629301445592073845547740230010714963514242163417568138055326326416443102729211690613143419095999186210718784313708042715810808630357206037003965167260331947605084733107544655991128568057778436040894058908052212646973985690989950337653999868475999172531703355319958232377424958702091857394885952376654667573667457325977970652140826350957845130791084869645848365841398853138672538537150345425247059779655773149483152627516974323761369456525041814091896574932365729671242620160484420244779235620616875218325484393150689265192773846154846239745984096588295410001252850880500280007921134821796915374064612484267161676674294946131694506170644601540657475174186965028554038372156573629861969576717149673051034062275670573206476004537455919609493216448216649128047871014835909580991267846135562517754614616014180040240264317695038124109495334534945390614652129131655138532874730087814098172365446913744928161989586856713539473324691342145809615208555101559113333945365889744283335785142136992584466900227085459969308195575251116413424505741618773402753872311084104983699344412638855456905491005965275164410101202746663814300785898337084276115469737397764503425930689487203897667620870353234076259662116113260718115297840909212554395469879966017056849185099166729876231234616891131791266740535858389594227077549423400329901207343414761367461793138776214320775458776625308672291344250117860681315711298488339200756030753889119588235492239106212273365959329030694710269185326309955504802947768589550583336270693737410532980549402996084297607107058761934232246187225537712257805832470751428217677095963395311056108146451227214523152530634323880668886894766703178403135067735588128437894693980530426151384193480131651555823511124148329136708258512776942361986973656380579118200013970615178497635392114945687566940372141221898832129842762923220471951182282050250683396344387113219878017245430475190199691649235861118874539059336201390784797686069599584039601095544522581800004678469573934924927822884243411889852333909286004384789907815564174140886690188044856490092670021883216681108993556931283990397534726684331004441856384743867501504292570555348907723615475761391597542353496349363919881223278488312179015641590672131088309237661983280900559287074993939999261679812633163965148729614968958854359828798629819640591062539196171619015713341096656306259174154369192884370949819977857997607283997323602199810748529089364237872863311286797251658517604189911677935739497846258653887685601529401662942449332241184553688566987816632475587199760498458937542485195476507497814941888620863617554678026782846621523957353695067641532907840830701496590286412321122849104489733727485355389556283173925629525608995316025962853267992962728761910668837149372209006558187524391957566063179000648005617642212294153371955214444319216877236650112648813721933944371989390317598816352435475806305661233658769830211092994545756362497281346478987113613302679383992220279131810413987781470174660998361267900991069831466559268910354856459609406463692098602525672455821390654863241535629795480952683969880534889576876802652681281130486939718279513097397736023929076820490131964879729279206496023836992003232402778584169951959023988251931884057185305058183247563039272873706933584474269655107333727340019734985016691857903189265051963933334867781064845599858468045256933489713404428283100301634358283870751060781840081972657459572566501373612732826011424140497905503761055742379603859809982246778793856792895913516126376170009403621558787426806890964570088468433645037657863990336304961464003044324304512532965288201993717461143931202952658980592324337439585967571090070685167181057305784102044619212379009238641885775900718721182862424422057294931094970201794788546758110617281012300182136399238329595101798612099985323488713386309004909509870835765364500255530463797549896055591735201196490326608480097896482238935756950733631600522337206861205204222871387877961653039410983552221830039591147842894436712001291860398322783812341087036128276551482195514536997472115998655277830812351177972489425338762267023315216655499739452574887676525881242744803038954667100473660158991369507783168158715090061550355483033105366805011697644545429879289581083480977802280706225651459691905229933024941047120387816018281802206925176643201156528409684415521067168869748583080700240330554665985261352801338695787310461042766605662674872578967817819498900751858408354799702231754920887121807317580073984457424755220457526848130266042999371490761124659409309672991321338582869350083928055838258644801299769498076778541751352151487772642001998489247837184641929136093913894939366874869338355886528080604826504205201108671544108300039135165524755823377545610632923541475861539096250966159464052210294050458893278091615577990419747827294149758877451213113139957858330008554111338561927338516707595984492733684844284208982614278827262769399156665335271889947031963167656571000616245191372225617132165557595427182874311511747861540692135776435980611817562936122248315156066847435660915355368584113903729877607143713051974196819708905485440801833872243213765567711286012678554295955166131416790544311512700746797920915727244502038683703048031259416630361930907417141801478931798941001339444160576788764404473517008266441514031986480643802967390740066482924134087687222294718638213292447411931667506322824482237213037666356535945608335022575627989761296747007633694892545875478102525720882802674578983650405435624009298833665379873061712379732905549690632392821695253110141118372619467295637552499050839597202562267562923353171474446286816499090009992455360958792315975486969233987583651314570633956001172539425144532750742736880571220352940008616791785259938357577421356389787041144471050710946320218971647384953467694498707873675958419638429209479482310866511130076188765741853379795129470255685617282138225348685140590616887958795006108531231031181279835954347374538574036119988764432056126090175903860781440826855833430548221050802066131450378779450577542436247895328819486653854610384101154888870332008425614734476127619489854629019526169257873623281820939618007492384412249805298126823346654490139394939838848455808927561623381115569327526031524163972729896723956746870302945175738553541822443759198310979631400177850977366621828276127822629036591899849365854523541966307058652935435829908958808887663757725947288175912384027972602851199891903349834621362310352308050392471142886262276458002639255846448217774020273749854388514739108403791397875636843640183793242390001969916352212658166156695688971251815655798173243359691774787860061746970534019544835037239498720534877293499418473873677608660059578561245587391873881560727633733356194173778757392378949583651839400624523398474800040125965816610109316439943695054258933358141114596272635301255689177271126089844682324575050533448278224457044810682416206870101101253783610812986680863901825161851369225388434174936479647219996821966397445080586927817855960513875772456934263865352264614917353697586393418909516635056328602741295556328383023051626639140396817928504306433153050930583768256846760925653150600804643713486348962071159782358368648267982193689969582949590840757222354457621994468156597418158316009113830251904910055338554795125662094275371981065608134274640421253676640135368135148323312862777285191429769054980655390583466561106525379013829160715807724428434465138333391939255485974677880114889453260101179450910769497048687414046676578709850792866224038006992866841403924382593966331602041450027146610328088891892962279718076159693688156836275660892195313954677115939713820014437933523904380276188524748323777118536947248775353018917827860677609261514997578892879972359238011613503748907541134988264259791145806577940949855036611796417546271330941354790819895391077973030764488132485914980185966538930906121284290551837016617939801579961755158706586308716074347428806360602227029395896155504570078317401372826561281844880357006722255598452916736372800697214486252885309146628121259220657340681869315076594229496135927105022555744931150710073223724764643759177271603931672365216832112401905679380095394171439805430072780310992307220236228418919901981343854132823928056215915825156559495158242762895921060399348358753649421447902006314934247483017803139742520481571655214444472591535930971892766976535579109368085784234051767718574291919612192923349182511109995910402255159835822855114093542483611976792450401447467576015887937099193514634183766706716268801447384112044468474001466593304299008801820415700138226896094018791925836363518470905046739686917021526334965816272949240233927323786805826496344767440167442868922975441334571274295643885464472958397030809987119844550067012440455124738844508256016113686772414066838064842741586705933686930363719573070230721908897724012784475128398295298271219659189095549422727739870581944876109024437434357078642186641791885934778209618763391252917489673195554328368152718904400709572487771907919449591164745595700121432721686058758482644458176800487179702560873410066942555019510540426589300780040887218500120421787835634198009107387385678676909090881756193073071636108900912602675651344300440491377465374225592605274098779749457176603852148757091929679022877164238438748490118354654155248685055479075475092306340070108947330588473501027399712886027176966116958070918057725827222365321903256617518570642956944191371710892184556369800410980789114128871152347008641890219573138348618306470869966326622404494689737481680482793080609442950476488910099848200852604027046161852813908411392163190739117636890227993335744012631516985183325237970065214720100663766292616051820137058348574591072295421923552295680289130877921117715656899794664412627603183976034892075787813299911948525327782440977246478748718178466399375035491334808937784960202975576800360246167886493570780311998402140808332795967875523601004015567503317923651626994291419342293882768761114890581424087722346867752986566421389991492401353098244667411865728763429733377880986952444153218575914321937989691022758950422039739730362777179545473031321452067615732104412557696856635701294332385919305248593198893891043351404238881932137662916866992450862117424128439199741394224190834528882075674643849456231921572165314271646214582812089542601957649545042220690645258773298733649602978442430001257620543549899542338901696736722511293164108714524918085444290749677120870494641770413064919856912060460646199137979683939023726625950359585806473519093386075996473729255798178680502339671172941426951944303746753253711977109062117558777318671274525967589066644535643829750946825311940990837544755153323403485012179888032880571757959011373321845149310487022465722188945597840014602962078447515959728077073802708419794706037896574098823818429162799250736577559318317449245967523113244004388984360662284443795846191484472939415839672783820542375493919148576661305982958287914187624453902663850284510498661260335021910770751816483974218222911116251413353663733606813605666687419385019800541385653612919026756124923290867578747731524727904751057623552510972804959490609155217305648133218483998612795663914850689902625095527190115120003494493857539252940273123719089266705070239515707861774580319513402607392427711323307486356755819726566607966599582266070680538690262868920217990831417974917257466392334710218224485940375847872072348029346338790612789920560097535404765043409641406361653499683085597229653423700776113579529789666324636097447371631745699165050054313274026966473432521166468517266091047661476011789711344459550279410338260108393864082327533047499779148638490822754660738693690268513221768915104743406719469191340109745177651480447708700488236287582224565410999092452700276968508988575130466214416453201438178316159615302609652785670260071135715871057155178260931676832956097145727850066993898745851369138394749211361257410187372893205488424845514169937173787526169642271266637171392807488871681945116864344293483410708614287615984388367450803668076786775332915455803200713733184165987351114692470207777225182361572214652645183972635561585670730847391840193647267045327674774247668548007449743437646483434356479219405379411779973686235845763014349433958970064736281967373450518917544455939719052164957345150552930420813851449054608669180225444544374604631853304950991745589480020545517130440091472561917080004398233993444305914506207410132207438528516758538873650855874662866408877977471029532180253848984077090716295638299302818854546503544114026856388913023221494526796634464025663061577696234319882019536051155676677938457990844740609835849597210744239831498789483398504052563954411201352678928850582293503271665281108429715945529386045103801816530289499406407638734829093792074785275803398354581159634586224766540036014126949473646620623303887385394752810885710927577726470346758465617533237042774925653126714717983156430776161784503717171139487961682374138169985991641919991637176385147156978537872540823233493230003891484469566411710011209689354185497446935433469047198373358521162282886448061498926877172896654565187475418630750336857458257499584935442249309117684077167954225587483379839182960248768077656635424544199786395066106660728997888936822961812067200391385480260547427056125928137400527314251840888959389157441255761526498933295910086691276999649080155314932092028430042322544307678065094949112454449165708370720667969821494228535575112050350306632148311941785258327277485770436545365436069186931247416963065645987978670154582971718357457696317448148665608763864623123743343426464466502848566989550606912861655521886110343602796335134360426793386780546408482847498142009466864636525435084984159694492523058923027952923859349911838676463507311007960759757111221999219391298845657422446057418813784092467390703771295605952227211483835840734107412822836560896360614571906729778574150885093313636617348426680493115602187620817950299046270043601515759778865889559894639414685462411572823102998338218631493057460463341871316088960979174002482720704555301111019145788007913774260673520865622438819212543180415176449240063063665734929758153338128730201746498934813366060685004777308391442116853533707048824554132765697440500034668258438667484230284167979562404409105835339195628603707920002255272805378037026672987330949606599217569938241864569466129488797713025620031119884649875429580124415893058950940748923565110711056850488787393625193855490354375291281685651635452405662255413380554280542449399150210263409737921541177915601905214506738122724393426923782594874520712561764255465332333626900778511582912078128531050041018943444253324535050307334773342226294326504203025551990102715372815758816610584721709268347899958911696468734160919538715332602898512639829108963201074390311911451182068263278656880772518711367020482052537074398563737334763649679685827793627569785253615883052572452035056323394182607115176199787253773258796204112141648441121895506268323409793758358995304319591881383119975536104507933121632264106611987020294427724304272886978027845121517932402076179976571169228062035389478983564027463389499260897283245707311930889189556389052370025248896971826902810813343711070227030047154594558081799166551029418465284793100089245769771394906890842959721709387239979842129913079384118510929021195210769235483502877444773100561609769215328014266235984399633880773398614133042098551363061774905235161094195080447213148173290379747037559869007753693787710229843434318475200960268267144567305953634859282317166237578240736344423714257687041682323804933667910281893865356675643536613768420959180730659199874596561201492777914292298126837031916393909069482887888746547660840695293771690505528511599694635567413466028747283674539746987716766288673482950285556407516183196467237698950630701647191446336871047944402443908368095449956875727252149809917447341064400945364842203589735789183130290818263861549024086610660711441985188790166562766367803237476591228434698966671897686862031446820587128269425398884608850058459133614794640467245429070405134126994465084194782603120596601475279387570021772632684580667282305367992057428676912034074586676220966557137971366309680634238679478154700755906199219503031221110159517249951098442498821559078414465254223666223347132658670540248976438041802739965845436524514652405947115352658937338177126927898568480398700269997874071925971084409796770513173896235378138075189148348135515343832050079248363696844114176015478281032341535963815669674868786001239371854609984323269329180473791864934183235265114614532285338106809150196626956951928972832275567211160997302048180281411672344630706873884527590866801304341934190333493129044789083629581095176517389608515584636779530395351789316707971661500023943432370797539427735862498657734333772550650205654119900334092447370045573917148655027208207752815907491072280858103307631477906516795621268163194460224354311316456866821346798120065247565209741778246398560356486294888197491444510244418674658387220953992484319826092919811800814562636382633131302588182438042700796560371443091718912090404161828881542382402611710971591664826175353881261740575998208751087464927966939678446083286456697577890003109563523498097978774670854350491601689960461493168100833156215453411138213553386950369590068190366167419343980315445978530769510788977437969051284962190049255455409481086523681844018389854054571453894500141654440650208181757075605588987971035896521577993547319996092727793581956838297711912646246616118709173784593998885707314561923500599543198387422643286101609438912234191258889653798691091724988452736880864318805512588115328360641074299110136685380995632692918764427364184201169025246223235432591720290969200007733532969699382141091766002578640077364510335420448127377831777719260047622015597885307007966979169951985516737858653205861412885380473963744669335776115544064384513823503117301010761068388225603211646621514495820784373525471711492154179896283444387414468391220982044191904281816853210799446408640030697472376680524683600101755641403286927536850350567742308939339773081555917447711517501293066601779316617982985551216739712555547776251286834768465712695019834423253736573131272265367921566630047336466791407016406993722288826748650228374432793295022978199202059569028256756066775666466903238275598128171475517744730462194405096806346928599099035607231099724468814871422727214884837727470768593873468285048697365147312643842014588040126146241597909466879323900481701076416906259433756569134604342032682824512036735493794352939635627297059543191748415640504585275257122637367496207260091404726231888538555911185139350941751648054748461856048223192177815179501092054256163942904331860695823992814721183875455040623679277148046713991294587256703078216857376758839643938383470489543819281795718630876272032893746112757378826103702185627827194232912561462668471691190960122353090437082139541415132270700377369083014598215112435512751135383323380004390105113101162272716369622854402556623314215245839166141231993485596153484760403018744315847662809661772960393509785124137703966218387841626164090529896024298589469537358313555784853101413933349163049505876292629852017026969623996619210217261719107510222745318267862512173105122829949586655573260170671705033803932892792990905899695939707352919165820409645265985918632174332300745022211340846098338644224511589048020942995236130020944185116325497421484399880044918428745465943322280982774712500936762804807561325231109611877859713316065492710882295485976197819431186748684103350892891196498065949086513983722943992243884934606121591173614288468950070487826727061762873110295657555864479055899820278741458383996192976738449247963524090307022714316813822996142197744503270491244218527263543913223017375772784173399200705059849062179063153248690422700413070819893146090476298171716037976450366991222898042153028120142805092228499735264871102465406555078643063951772126852692432898689707983416343818085383835631653645277648366544364970941062592676804302913276856827129748348740333676556778143161290283653443773509804118203143823214192408220180285915387548087022339935025968808866306050948681480396071154757620125092288864329733036999622919372061903501481030275564681940561025947878313550646982546936659209879243247550231043373387700009536366292764696747764235808610663315851316318746760955702296017771458930016738382760410116800461967806237174694054683426477397698367222117055214305460935342664803928704128598430113047291819601323912104318398225671005425554787698980383731145148260287678869397693120338523938150981121732079475011611346521360787559411491732784323671003149485822709263694380377457977961189109742469368512263384758307291431826617591586320456084919171815518419460822299590354754437056811236575202590469075884775989102873006385079370224397386608856173510385753500287816574143466943366705079516802534528131177393024933574293943483547125785018422057856161136508834938902961252983205978942067536849906565145010744717453209637106408449252886687626058595462165940638899662660710063535301608874638124037764798524266553389511144727773402637390091926869181123789892241795253983512936353474314272248709507629611089297745493573375163547713177423692494920026731250716937373717379104643910067718571566148449142944454676057806223633132831676415074201228903812243729666922752397507738987941619274375922602054180892281510974352445289646967858291692127950071728126599448307904865911870790432425959199619264456841497360912537298303108816117723818375019208993639425748021938041517911514285568245137673323608858856308719247129596265668842545854787014228969523652913488869423137698465925705386182923824529360725259562928218137737181107644775842340955328320220264112068239655830660714539876115680938107979077847049498869473839805701054646496347056089984730203908183955843048685838889562489435671930776205213846063586358987578880592885070957792774112762035484701220360273659916253285404649740151621149929021244260869746434646031251733071965902084644886920777314215117903198064821287845518160059357640961070117876959722661833918942439355563233841305682255793724809211876718780901767937646916865641246717064886401418213123911018677898899866670939938868131566987357959480878557925125950649835615773426264196425082847904445942676720359054802592036404460053238720436733255199896616135496499392513321763819219930969660960746916123595052055484553697348482187525093721259205160577941554620619820637310115072606738751806739216635872826340177862808735097276715975066534255546089745904663784097769565654284147148305802046099400804924151263737459384754596142903096701710388530439324095535197403559016289519858096613356416447268598825670195734355314114917678597240225399037930455043497509058680329771793273043216827615068626046972284676862655892911711124406338600652932241090709241514871664052498728772977246699757988248452861431661277615125879863545365914925837955033014912300425963206194153315249575497651974259331743943249809893912939408278869983126222064266767471402085098043486630907940413950614533526006426414078622321133788077726700365108381236118662855299791911558714817290300141660596026153061399461790190695354960500439390840676761803479334888357767831439144888139798427222848838074552914623828876981005048413514628690572072963870888127996000292254592079453698165111111627966312933783836968130592276040170507170545546590715775313565108933261374362042210986670646828769584441062319508417450735423437825923385115001927874345139938028241846810764191519763761701294226017742331899619423075233979812421575028826684830916775009095002995536197374087109838386507203767318896755357936147154033758321118579123436236694600724393598063465990210942784282970968845882054746778793896864284285251588423156968309690485158754003252930101149722307125901508077829867747063250107402163665985239383920505009300148229925789050749667642139245338683924234766107185547197449697358950019651790709237225414326823358815063269933024928930965715420293832809014005417708730662387919219856740787143510056076869120896773464034878226132784662786105125074871762519918426664203504895870597152600178848355330297876966487642513015206768590494638657069224265709907958272848025345573462310371784991222347976174112704402915410037827209653960398926105442462098950551553378882526227664033477582987939232596091574929392089198976108285959986711024943662139601860898199056942304897030427866716277994424252192830845570195958895124054861355899946939094522806411514586970993940143362396922065109177817178790460958642321809818190406899904104205393161028582251703801253677552798397555644017999738509223696993019681103079107743545259844743153054920855434866439389927621574891194311700608749086301260690339569151790314205825046367535174473286872927365572148539130632700468531904657240295695307929567115628621891010252811868821382084558243981985826010629319571980174476445388175520376069464627605560305102315078405421242869134301253136870576157322948974599872666473988929638310236779182839060811785514575799203130048420553159208580519037490049706279701083875663841847979603626860031770396872318989756387471158830503428535575988699437266280079998148471021874840514369375303777814528593367734877175576625865070716584850218851427102486214110601860447878572403784500671289594080896054946224892987245095671151547327397748985214530779739931394865335386352706835537250983369734739830422347864251621730502044466630850947486334778044299448925401521317983462958651870104335949987038780103784639387052367219263389830717217429870132454465457390769835316046436599078446547078416871618635761163404883626333897672574673036314420159778918276766156510250427646942856936450347920998989315873079256301886179949392488067025788395911324682348314553642537386961528416408759508003157356879055127439662532951408113714369282309619156983233999668402926490029117041416562736645581223445923429100573075781048399061510399440905782768167219687550670944245510296716139706486709932274721426053601883299485477464448282317357032525674257831088771059294376894908611198316604979564463661318968252444300043596197559159415469015050359801866843157961499165801541383234732622042475862074674763647474190189631128147081571858610728654289270783414439351434220699753663382445880173899164581542547055991551558366716219891695446725721082580366602419003318549688497211171135242658049926366044249101191523822450489016073510309173632829481242109121927874437394132248210311685353878537645889800130146982067136635379048583599694422676511125800983858984387859143354303800867555196996234071397483669684742403241239338456607825451612263927250476159250184217219599113735503843805467609834278540494984767050029857493470716640571545600743662681717790222175595771320728070002209536526591637054709545421587940266144377865508165286820531649102569518882362327150048842661611658983336749226330686200187469817458024449892833120530675492089930311694392708860848199494934049729816714722080762039145953029135559578214293291780206535511839323411276501944435508225019931539452733570815280071619925695282847195797272635805934349510817149745373522657315642484530605909049458078690595403410414975242308584447507284772221527948409110196766834417343764588279740850283143265219208480493244902672911284616098023014989953241418527183319049631426969687722474383240821941594508810777347765131545345079770176981036328081357983470784003198587227068817081359195986567827873199019938450224981064999397002516944720932150375537881185701181572910314505360805974435284223894418876345378773847200716218288345829666188012711216479041831847794816390032517338217939801466425894393588979803214731006550810487946025111404892299274177540660366185176263242590092117749171058512714011580329759890467649197166375805924399643466940850058960508440761946844287238108125623180181964031009160823924272380374026242562605162627212245673590801581438807269514453718988252112105431044483449475157417938591556892176252226624508029272971407747578844826809420541397071996806283457980786690333973375437467582712193504086225748617236188379876780346589103173370988709792015889253506137991719892907554880767148885928609417354487694971409669169640568363694147893229336440737540361109790616314672874881054697662826394148727167852098646439895726097274058065352431168480063680753819314659525068592389694456427851294533857874097721218117222297136354234430261119857414039476468082873633745174757065644985016976137579427360703712488085235250291116475000597653184014111807666463894833274451889222604568828679625139701064121458143055147781372338444727911606059534181677849978399033752268790378887853093843862213313146221416319041259778833134652766092824368440253740379377289646550858678004085503469187567620059536435405992253969361358786356734866345442380059837330757695777978311184409994328549235254215910224077000734593586103559459037176663001382605877278524045004485582756579693537361422253042881877377333618623051500298521944903610118917981402469568077051586790160697613675812771470337808113751507478775593407349566487607597215309728719158301351484583409067427612013908365334358603288072304795886249628819758489370718209623995501242001801208051850614630687484689277123387636857680899367954760177209256276187848914623495631899991187699253632607134989199501677605286257285003206462214411883098628119138086850106330803545004215719907999296516373582975996581053734094659582772700752060066587551061270664176035856166183924582086350588874598331965878228543291581760359874935286015743297102678984634751283933773943911970117302872569990958725687849362885585584112624716185649851444582640612313357952681503859351434164650697947010423993758989394896887921145369095719129781886099396337232054358079116424045629334203161851284218487489267474591524005609003765044162322678178407389255773022550846195456885320526608652447493981987596726466136368331054653515353716831937777307072230161094232381480562874308121283994365548969556211870185898954585336289876465703836986413508608669505925951758489450293366441133524518350250647463502976884435307166659730276516318921340964027278393777678021790678100870763289473141103429583334613605517590608535565355693973217096123210624641914694502317284511075082882669779697532643109361311339683961092106487803302802770317587302214339448452392430389921481497586251326913681894349246208106182904232240145303030312210392539358656209233631451037977628003266723206901460900076848688670931346804296807921518408479898194789397300007873746120367598992334013738883833822381854301117099994449542348067272100398451559903437446134771327032206304032625023103083442500497872765685637814525737166701292439040778002666022466569408885409501839881144481656237463617885718487422068378193330211717597919084423088774106867864711338892092595338342030722350066538590457276421792285718316628119364119061510676274164251652792429888052667042286930518629040480935029548785766307274101249008023302383991335772965237925894405689724137067308636301262480998008756215188316674660290537454245255285415108077266141613561168443073308437135495350264040774680346023145550642656092662991217112941051257351114153774060980471677283834474418848447220774727329793119062704947537778581006522979359800588436583019647180833834836484885183781463406477409658519466672469814002576956324534880155910434369434864263817086550895633742500609524541057868404832501084252314882120339026629427679523318812278181691464370623788709620967912734739743786676949154552133390690881181567636794191563845544827230427559634630475403209955457907535232358918617705550300444052241610822626210683374515030072511623770341601936772454615698866733980818035277059488115467191872074691898232615444106119519875472010754189403988279491243940709800674088509261525064301070237944472933037991217559208225444864785580200677650783352559640438269569451886877554689926193253269231993768690226101928819765493632758276480966257439741232608963381330030002673590692104301585829941879609384532722024097432373406236569152567686194689951028077885625771028218063502911320900747859769387126806735386052148272801568635224195621133635262362531571691269930470014095474921622644652557407512383627619821025725125683882956693923046293313643616340235674771082932084201436137195625820080579905718502541435748614366734609372335545254070373740981263592230870201148303992487287393979944872678128314495228588861506041307290004565771719618920462769199839197850968956309196734732146934120435109860368336801467083443939971654910330162918338152113813785541266553947520052498129129951174919744571398813334942712600170144554994832024465064742350980734562288013438046951373439220919556675019444917888410948524392017441866942602535834884288200921322756023360120465702319075694414374382013650690586914774478399674213790353525471998010535258960802570318937304949409214665785255320694874265954503313159226971656219031707786248096368640367983074342513606273829355836221132307107403320367681791516988428787516987262280671610194351113958579291915347838822952154437482254172333644787736950610205051456893123676708579778749548719040773243823966897138934034083196355066438157237340389363698497336738851810334420532316999491993376858027106368168989429245452906501751633090289412530682650362204060626653327743109431731946665626615157738024164333869155385977678590119869535047606216188144526838999681422083380097934509628601871932402376095105732230036370222488507711367169639128399851444073656959306245230550869592631029582542084968108437336504387393579345067705267246687816238415389695173161073528940633734014839870445093245574024435017902940024628845636846103402535133996881075094896594781207893396851387630945640010037180670576624824929356976064034847625046726740917989075156153787194574859330162783003386701937498956431139021817486601284215493924005256595503901864256145556917393947943686821219299632897001234221352766043751252417956920580771298249891565936024113636765828546118466044099310845851868812144214625522663924057562602972185966515200743178846307160273806514600551319226515997251966443187488169827026454129344664761513937424241517327534813233699057004661118694551674478660206992637096207604196144988712091322129139313059374617083768251624560302435037623613149628953835386034694436829061311865931671712701624434102891795808874511102853609306946387227844114160339756138156290182449708768195340216027612179939601702775425732355301985638371719382193896212393548920868963784326272313098674694248219820875789338412020990263589601286829804203470435679240522062040192528631226962030143278036887672631297142383576360211285547368395283914231345889069335962726956000857770152253107374909879342359785565599966244085767228020903950836601503515479176483510731953851428660575427738437274182930663032338298527242020109539754365201268687605779024916879888229091443353594987462060986026493518483032128783803276655692306693074378349365522751850799035805788489683887997718773724246383951824945642614086609708499310917380134042835005609172015874767978508917084712657846480608185103149746328422691138030018425750888015925486312409760065934976567459722404329989260899576747042883591312726150917657354617040972346114696159290806413626671735656102636860595941220694447213163683185818554205571563626214217971390085989374941125813409217134569773093289878726141077059306511705551193987633863837295513396594983198819185113540822654509416679885400958377703582393591511416104102055858845742741665410392877456827017998071590797633236054041743449002696598707628909681168021000561111941342135795569704302086590960183714338358708504931617394339339073415737558623908048958487187214698000284178520767048090777274617697882176763156323474716381530741783111779082808095046756402193750560916997513826756420482800914153404573682811310164679483305664250602696610737806020329628232927582970384380238550183189337565527126596519522402087297832714940714768752032166503603397169908866755905631982920316324299643010047619319039070277523790044237393043090467422396845904667118111850601658275446890086987894534736031420969848298731616795706863317226769111949867735794534827683375827685219833389370409155569635473187529547137426508864337612462033897323440441409217955454325303259697822361635257222498682485780254329228966500361008730139867545172870853675636995620713218916968460242952600887850527641277168334493434774848309025676726065136822023195837385035329900387578524300507353110765595271740000451948414639873859152172359842902061393089525426209807165758671934770716176372809223468616515269655406402158552860094809448337738875499288667981993011977933246222861312886756712843495494615048840016473524240009062286551832556700725919582444083440206098062147731838519752382283703427909641840701213845039982242675564101371974408030489079852074078860694197978194510748553280782513646025339170135473965771751460480145541450482973465382037508007663881433914694392629071833159764322808680936103681628079876226341569345168011849841430390274316920667906055154971440036260804442513113980785743155283769280997467893003364751687535860636413147876322897089916072416651138714920466970593668680936227526740706085313512047483851917594400443477681134248249246895303113743603857386615306845059250506422431873013806559452839853796238513017712147780566278048713608063440952598942265050434688351114872516630247841926401422666362558227457286563778506266397186733221756520150008441239223025144851711427569233295916367414601546640428698424046125367724301507230123178104586595211082935470400366841188472924413728446610714001857536316865847320736787888401848469967699209256709549321946227340425137980405626212290794024945220911400761697574732851084587441149271318768690676011773513522702090876967142480317269887504581840050145153799807476931659454414111848860611020800052843102437510467026342705436672214959120358634544036754723191767263749222216486514786851327127848603169677152689551399025599305219162234433019255849322482744094000322361856055942641675644066777453899812071915855680662102155230019616060447450509553545048004510298048300883815426243817690750405089097169497893932833952504705037223855300033711825985756316524429374229730908774065923170577445112887662966081818590862874177208289611867137388236267397745287767997326558784718058094141803628529819566146493245186747592880938648272180560970381559845201580767233308810470393500007412604348873827330981095842906763902521305481910367239019388926056258334369239821659756311223602189889304345203488710852371190335317696653014959898079303049098080220290007479656176952710110985541584072566476132394052243605930745101508655875159047524066971973619003931156919395454550464891161711125721362170962060021539595670505164257606698395596406112008679536367164576952898570444216894036905952492868163693885356594324448686793689250416428231394703182714927964811450697024235153309834369035813208395984866801673574699006884392142119649622165616855432375237112630993518344321921896014125137582234324390018210371460692069296052023141795719947671859033254251898211392886644847742683206522920668009129448890818084627135885836380141071648678375466607356074553216202246994773197980002393737532708924916147084483463518580293287795116495408463153637450880236036502443524208957564427181324376902755357662699702713214835135451043621077302063626321465696912764176786609660921941598334694095826766598511692574376228734974177623153721531082709488757257146175685904812393612374486768681241583291228826351883778833944396498976371655732540157809028640598599332478295745067953974910896467696393802072603303378091177399613926988097931531422778269367032249935154120108923537341775017704666334357453345540461611496187833245111487818173691966368180069599302519558509405007066150232952014485337605286109744227654086716239778139759601862150810579382350986248397423102106306940891690939931604725204078536946177070080870795688044812185623009496371381324548961049860358555921622175221332899895973617755874454243554816471221805852663701222989436323231651839247506097981970547527185862019407179694312160966251297751055554987421062489426509554388120097921543150501071209260956344952476271430373589181474850836626117914435147961843851724111947855345010611530959006428022588735665609994328242638438799763138629930344549472150901280260944653763910089015052182849736752441825724132143410275868404279246455604798700376494526435432290273911874262820367448724406288663970079235774620904711598473414470148935061697297572161656123526586860687933587180941659287055094053227504254031624055091862305515116019199391661927660692108091186960865322736466581475280677172621742495555314081299797426730566499292283255908803893253749884624862400907399872921657506458292992769564327511697997926540422167654329637987363994247826426218757171661263129837460773313559487111577811331680101105616321697361144346663351086211153200462715910279243051229981906672096467060936924204982389668352008053977448347983215661960194390046016497145543487477641044230104045932991397619473328671356207653844561854841568083437659680712611281535536162612950118728822195358889251620599638602407080333837621196457288215392500444931970645960008321389088088216680895752021506086553359861125496451784672599836366811956263571872390646310287225792903931974190427432819711164903878941507036820135015617726835187844785388297343880357159487755266901737729453166364451834181303847876708218499551073523251240265898136378460436391471016291461444458308751482916487792321229960393793223053952251830384704019810484017910963464323484735082246281601070471962880338812175719475958658381497183844658394033130430399342914130436424907601587579152388770913878501888156426877921299748904727100769297138739910627581946676355398112697573232066938646841385373327060811863519493478052552107360422031059502388316566008023150296247506332967745111531782336860463668734034991026239003049304288941610274339694475871721751957932223227066209167467014953990408955862220245747882640659320632833025788033830294703139109744651123665414798580382237263229697047866864100337708212223978346784205260926641546633489018666501046065478885630705184516381894498919718815533283958774730607065596185814519083201372211922596236485251086084794058360529131380378677139398742250226402859821624754219287919913725564853397501326683000155447303634247457940875204142709547110151081496208564374714836872714745088302404253128447070471535389338640188613171623564326386195240265384642968925485349453313820792240617042629866701533417279975128255581419903575507013864043838790418065179050732493538206188705639556732837548535554930502150950354435473744258630784221015354678301741624478968435439966484620699875363779381451118653068095324812326951040754548377580229436294302358546370108827546562241650466963845625409527765502113317818192889384337911355875261160883686964756140437106869547442034638900412119374271061315576539787942917000454631220095269305068879226669225190299637028095350534074341455954532835234920619327839171368724189754778414448462651534093297065584656466241503096174473357074461406347702082745777331074535522245049750907933257550344458262109830361172088533664449404664240709136115968339619864330199353595916782164164496507131038306819114388591740995537280878673908651907007216973150171866557809618014946925983383694639776634826511741125902308769146627572698077762597438134276233363926540546080382149635162721286822374932596274063275675280096391777422919260857299997099432160104747951682064627641824679916265790795509622431977291733341360910652832741839430309458133230497165529014268456418384872529939279250436546198428922900037620260210368649339745333677073060935048508382861825887545589290294243754764779429845693501055427187451792861084362470198076262545610627000310581789766951071646242331564636528841833313468836022930962127579763428620686630657601954848839340477137271152882073587837380199976420501765826929145294605912512631507438957019577849481268999279675631115388893948342546260885583891062865099057247125966047011176773997137994486039148933160248509201823503529578245336745775492143985915677268880193996127546105336372904494681875785766255769193249957569422539416544491262606077278277027804876022606744676193562653135013324884585556510453612868475192760419355203436165197639219885562721217428295636807800861626034607728491409927413357392856675533712309142548637278549331123532807410667718869752248995267077787943087214758129718710924942044414242346659348583897298090865739038311470163061106710108530083906783979047324914126006340986431962955396821456798855547625648019350589716658029308247714988912129591747026205090761870509859472280059140567023062924589500381032752513155161581187338982788205815249362129841130135524932822465269840702194496427333390725091665483406792014410593153250220979415363595227582366230924623342549807539689972662146907391094157238113881937112377928046773769942520770986760427567238729299316634931911006131123843788212132500338099810819273872282077346184271717075740580182243425828199376013010508842507418157456102438467066757734296176156386674635484402482882421016568806207260527082941268567233227735677923482071706678051128980046251626959299776258915932845543591214625913450019462626620037640304277381704185963890935462477058966094186965167260918991672601396316944359092854870049470176308690989931932952704023289918078597355433900150131232800210183409883664909427158414795939494313028396609814626028602857835180875515759895799641216163952089969861310303269788644597057563412498701657560013970540884755533599512599990948263200830417347355345810840737539419860788042603880662975648806910943677003024686232275331268003886742244088808637833672144586315559397779413571329524982799380142688896698396263289900946278498585769181794661304126748002963314783794452616627034269377438437403510195589850433702510777479772549751695262393105205977934095502205267641131717101333294441032664671681860919036228553478109104579335240734674738563673015610719872594497331475555207977213804755443385242102997279360117640196581003774322896951314328088336288871419494594677859066168218915652484594786263429934730666635187520830711929386671466437384193069811671332738394234227771550906388462303062603352398441549338377735457574763832289152396365875714776725035834743383084531249235276024089149887756663635476538348342810363415959080235844405905811653026314452329932369301256041771216604080856703380259164932925515404679338308230838823225980104965184210046922239103657229689952930001889642218444384187611294417506202431087387678005287235033270543608699862086971125584135342077757646661043121892504387147542624243274563936465756125006977296787583314167539371646736379251832039353612143076629249486584822864224879226469239387152819604564872688942598270859210497133569339727689055373138749496041705406085679195925031551828565732115369958554769593246689500287066319981507819719491490782015615715926914393158981469340667841873654308995826589441848936646402050308471107973517288291590163650615417534185391786537227969065139909097994117029863301423475801318206785399007138920511073313176649019070521911998423974205620100228495843920704517945519457189040337492575859216865759572741608722047457611363452936103468635860000838045965194516150164016765923158233911474270017145963852305931883210326373685234341639261680408124639999104642759036861109716003603600695152413414875573331953612033677898781722187853518747662132602391085057787825732372078594616971129570266077666087831538527299350566194678063325346728449702145666001304412999223330297667807399789570284230925337868047858405535338810472784345130161715287127449613398351174009565653059349409682285313535897143778072353283613914982819185379353857776227494519438513206980381513051350471762006965323382468064047604386931069651577480114735213255690442354087671146472258917044612497375222372277647900680517330186792365797115899608247530058120858121797444460453411758619221737112141001135112369121434806453394808179383996659690087123405347966382661084451248742330197209714775841242821065673585240576380898042271418634442627646128742824902194336816739884882357886056586771115858808005746689300915936924617994783782565170414681789736492835408985918879037612301249918822621818846558797778659206016584308247116532386084315655976115705294563606467065596301768483120008263991805493056299969860814676490050601763969762372189436995705916329660560282348263822985207568568428369903591692831469699426537522530286439124000639819636979474500161778571086024516951497272383216921768529919714064711082236713113279155336173460578505395533761394251047369332906056010404221153816365121040548857059014557501988733987905482000505301361855251670502857214164822109177835266469693225135862719778472098804455189895852895034553034029879178046700019743993184794043856855659149904143110967530926321315163594263590572050899251055043833402835720483049853269639062474219714560174488980148304870652686799522889874772771005899861727946498972936530681873223696157400548591706493535619631061913226871057909006674432698129266052231986160831160756330333129021018340053514042270706362870869201569196392271839361039615204511026234822726825356803904573261745963972326460761054729330843203405065637396886297430746877548747630672162725893088512976063091804140938710826971373957125426524541015028581385593258822856393079225381386957023296431201641782929200828091783069144706431963491162154939898842960090400592258777253396521915147936051767423384269065616605243829775329117336061236151127721062438814851476935086605313180332042141270207470604381977725509011416941752701423488764832520438300248570511007429402336322323393797284814158875547220247209567000794963387888520025235449650477457808192570434572915397569594423431670154281680521539625103367462777773524437002956284638111174552977546908592451487140686595370679191422619264223986139131302652248403586296070148077985277294032400046909559370398190849730047375370668661551467131975805855466262012633327636410893901400194479886791642953844192280518865864672135009191095101726090078156783980489825100673471316631939046795785196378745562871700513828689419576785318625399049353162563574721590908702947541508863144546349154401250975578492836275531469806479046484295233160715160639543049885239584749242315245059856010014456443419174708131589147033051163031667329351377532375159932459109442706306363372980995058822796065269443693418472822942499917909240891309128615662742362795354800042569525844748449520301490867121480294972430701791760593184503657974295580172321981167511504575140580101181599022551343803802838992705683525524701735947084032443035886079608144149906861310891949868838167999676606831556550706700665625856222389572824142604044478474170035267657598191726443899009119609172823700435122678621153987039295948371132674934758852898227227422699342862379414169781431502991338753293906298222738587320181100826238564041035126838856542360584845554469154027936448541964348411318377374464357005381361230048682280656100143291240909785786336133765537569847323971466436906306355268431404058394518664930842784988521777796696381138657413952285459116651891821442670362340065039332160742362303119823958273559266704601054887114334337530943756205479204789667848173215801110638135325686844376301619231859570629703355414767050245212647535854744295254512585395562783410807882752442992018436236165092318433475080423800307409144130643480643076100111889134351902230676127737428912389424933388882332164176088310511968557332758527554534608799515114363992293210347834048884028225774411896936287591880980731232706861476212314347949429731339492058671908247398208052640049162015805699026433237359218612983154944046511413443034682426469935806003782826987272083227142637064777685578288216236812608800746114623942767666029944605173457432392529313040152551775696357358807133694073107993641289825152114922342206265350388112646855057387267200829735828401661848634509226291517277469564747800081443233159226321627307838986312160283956689952089237668492962277535027668822991358742954986656164311756358890964818359968836487937513113598302251918490431711452725661157521254153593828227040718366741893312978715996905562084329455785023760047236273361595751093150314713079511477513922438947122864984889678652165454496871480558628116797261662607411308957982891173174419794960377787023215568909171061341992337121392909317302105599614698648123475760897869461533951839270958466661227135754976370330901958861730721077233353191965205453721470431836951067936354856629506628869187030526144168873055321995572918997476663653076653839594696238415858139731477547222576005250263590656141036010200065270401932055781287470595294960711436457281625505488505835544116928088369999254821128561443159318704401376372382977271349731249772736233141956691828148622162854644659599222995080227332807940583360502826550120137175742027469224271609379448737787225844035947406620764828385917503066308294842620573045435901153244018499271247985315084648353920978224651656635668764667688537908757902893991274390084070534190697404745913551143244183485248842766855949258419392220259007223738789105611935380453453018568606627891168231663377070188656693105186559574665904227806333346944578767395525358437894681687310834637203156147643894794695635291939045857040967121781124812458199156322961016534281541629127401209593489168209099946188310070222228748325229690851245373539311572692433806431767181659459144720195298258690833571269816527728602524041115413220760483194226861265998358225732729706736582364970646599004085789679531011380521612515920384750455337515280767283389964658113125455363484910363358435591327681024860696335960666725713916801631668540375296624467652730539789576388345633807758639235625389389953775259913176420368688675826177673939248738817614637907976416252804274736245929033153652534665777635905866640168129322416075982372580132590685803491641759942888636264381383694311423271237718872637815357589286426647729161820901777354512749552021917221401286480023451476977299478588871979843854878167682851757581343653275691897258613288099486074938841264281220137122140923650106821832694716834203103869510199631234343669385612918147575195500538240372726235794893387520875263548927312576136966572862575971467451381653069369708582016640772583371682205944211306305804850966348517942644130183487105124264244489257654402686904124845479715800517490564906888908434219030542266047584692468120058038807203327882112444252184008144783852987550010500863355686928042140152069419025795949482784507360493122329651762019566289632618577251109289205240034269588971847247179998017910146033567901622517572868689820216674854387338468921589736718106901328946753242536619550574308222050692494562031642217206360960929369926394832730981598079366778432016691544752905752377441766056622195686785145311477500815222748178030354003304559856635815549495549819709469918967425848977649402209315415188164221056486867534828342863349366690050862525653452457649982814118631197887292812022444041896271272455736813990229355319452473473415108584272519956443763048157113443161571901231240668099082883863287107422827183433823477307713251101558725867441252183164277892236334930548413668939128999118903102639007221821024789192902594124999803150268552012575999148811368257223341644214024419650463281494691997657298894728858839838643155474927979854526801329591853672429772677802921420604769072683411293214983091869289270903980325176287056368959508831715739350434458197943896059164924861913375251632695450701250687347809386034866735348781182877721559607778318598908838596641561870294331193697652655432942956458256121425410924654172977636824702544873092078672946718600008151541678021411132637992633044701743736439206174214947946858168721905880615791943347860332415435256778867746202226959291469075159200155027971491944035046906971122454426379294051038234744742363515988179809442814389183508997580663692201017840677687446111421219502133319421027480198688580806453625158112348233874539081592953657494111926694860356307301176595310296781184894524855500483036178309398586588254705966962276181296611983963070088913846100528489814755207073971340233363985484964119732045480907004854758478445826177503815046705706210259832308430865540683885526845586043758470432623304876151964635781355054695859832457303228841130132562033030024756492765549466298932333799591875715346883369427261662753195475575619863992639248910088255558532699091357192190851727286724751019997064935028777966018183928113505957476111369548670576912961712098957295985774263891176839133358437785669897513746216089699089780396865155861767232043115451289940781661836012359917764326778677255001902528566915377019799830466402064386030299871497498815221953199635306910924449008590333004482310304398832947134225128370118698929717476944566116808961099769049207252369845975141240948070907655395302105786833159463205171623143783583587363957442622737910992183030582323909376329943005305068719449437079650017036546066228092263125272897333554011101118222260496190182752375195036795178056119157461143154636589018021019301227761648518128636703339613961683970935960926854420979547342251166281326623084448250920483225133646140159488513214828512900477190515913671180052137440542527582125043215519340065111548442160814788590175702871576706723298310607797367770686972173015448044356277609036778017549535779029780486428555449608723664814833721133225861665105473318827417362053230474255673938082944068660365849825057633125494792405657773398415029277782384141011915158135063284901918296393018864201995762807917508554979760062985008327638868893094419916045625262603991700350741655379256017201577765691392307784911761653674397693007513287928002264034077878929019952839287182674351671887912918892853890541586680305849077567318306093995117714691252516811801877404911543256121808030313341279362322155834697097924725949612847755729329868055105564324195432778810150833858591878194505722738728433440798171240513775139168330043183381847335466773392922114093683618193477841085389440055741485573526188757000373968453366260184551427939950279312758150280801299134608652157505103692707361738564923588940297325830317813882205196029632432218006971019923112192403126362017777349198782310033761353396371427284771461642154419309325925841484942138483148736707317243167540178395585210756139188909751705317809135023308576676916997070556055408211136797897642386569516842110429344027280605636880366708184285565504352278206006070329040658540142738700312831539350002018996576788675151232321408338797094342874246913919420534610261340818703492692270241270360181897027761972721964886066192341924210612021014292733368547749243998056077528449507151244412263006220016132655373334743491468721505751022621570725857536274579966478681222276910824168753238576011389174746035494361998711867868982864341705193995220782152185794768667588452031071364981077841044423969027304278381005367415996354751033015149977535695145884220053224983881010130378438233036440510805399691218280819442253064632052485181419971947372772934287403042892951373876485633591205535655872803796494309787387463321408311337939516314159339823640219758206276195518011994647755226838841342756338217783461155560586718310134663263532252905317625013336602091527396695911055632623138506011926452867382186121825034956972345046832692802734847303957831611436263822569017858642925167985371844742030295166738631399918006779391719798774173620467585332743397347914568649323034524939085570370481471605623012310540172460724460637803326491537036472142257196569668647041167115754789366604753093535269646124161855548147418719411926928777962983331264884574175935432237616430493511549026974048821046733536255723097769512574969454746641884280940613513056328953736891344266579233043537629985000320231890107379964602106009206338768349986258574824696646824000478358304810034389966536595905057373088163292535132704099196359041634047976688197637719859807307646717107257601516264860132302353377550568170387001094810566661605963532556850215675377763000069987821324882714110987085414287991670530232906723909722140705431488735987484434676378876888867160531468488902515969161568434082214856012396062827104009132881188230972962350669516759705907037167622466376421275421417909833243058467055897286065852419248397167905206717477801851419494683028525925545581860083882471146112732919119854725282252387392108435960348208998191437481203050033492363536967117619685177113090974014160027607222535209749078156953485454839099354768731716011720959247381560061665046921493037930708725740618524215672956315419506755971440278634859968483745052018792873772314229193133554642814999869477420611376221825198503798981446297029648692425574194119489573699220288150188004429139326873022217195418576683716576891711322072907863677115785955574088160221545321450681157761835001689441577490262957305811147007914611480495216475906477055389541175247011075070541150051217254346830883781807715345493556112474075602064621626191584834889461875904216033680687826248438377939219261441448620560472141594088944411433462855778651385555439445672979245585537718809508842378130405947937058095503315654869461498195795093735697886799702047924944433494594843944735806786342063294774624972375654090157364890358290022720681689772777454797239331280937469844152688671363986097791279792112160669161185602695439639295154514635996745687378226308910326508995834002322567486735121580237800711585182130373227317965740603373706850558529392011798431936417145964121468173831450002593496769864320585499756092625329702422629528911327828336967186167255766610108430401294262085430341124695102889956302593438684866325449207730411682529049701136742067000395511222056891759645170365206736521456599177054599800750538724746437748507124955467717944456846926777263247296523461327053643725903955120768134338274629232770472063585199748320380512754549125492920628485749847632222814459851858372459541458852396362415028308301548795735651728827427730242511458938100824882583678275036048983780845692112760971064472889793369336940074836298608728912052182651976728091302288250645063445743264942665929689457032659302756842995443068463935007333759027254176085210465002240642891538394915106256651934565681021237781116737219558767445453314588633591624445635026742665902087083336373729653380411619449334731191672624364047233478904410670565523447436898939886959146929781563192757406261178558730689565239974603352082678681043281673869959545298851403586205985810721341821854725929446445419014474408820505031493006490545834531285080250967765742699402703143988441614690936238121387907265087149906939165846649236491781946533159545003138452815335662014220402778755771023464737120120831023088994914146107418396427151232693467913197884008499764625734538341736020795091756976300068594124397062114221181920777135595359982781409371702500072395010674241778573173986205230018762235175770894508455375516388053665595445877478155734892387389983902007427142482454378685600895654236895093336588300502334095430773512697099439306440132946658075537550244443948634537118831456507448711653679470018301904223107867721523711182654763181788440422679137347593640444632331575228153428233466915770562449686422064426981025679205030909030240771780134230444981815131149336291476265026480002172441710956373277855898849119465342159596270762942903315439499243713694827090428458266281647695464532195161431998445014441049698743995311622890251660679266809215606898017719812355953801270648974681104826533172777098426063672874199561615777445525580971582184363512957813404621823832781432355785485956212962967173291193772889376770806081374245290063498395688739410747069823948484689870682362812150350958185608970442306467488530057810480865557056918017306362743795886898552687171250458947624064655285231070170869129751122836055332248427285220106146220863117479387570251363269809782031624326865492786732418344408911365305545328139583161638697629983769132890559126697536620914945779858629281365085691441080328618619678830707444665548764147831908762055112336855302790442724735938192174524064478140340477050875799839922529591222596968911204102021411239068690628080150609073555455369451943801096761324897204646842550258472832328396886713886155829852759291345470773074731919703106356823959152808959854764459956824078895567248082902574469768364307829632158369930774010011465222073555596587804729193438888826504277796757339226387495348602881336749243076258287799305817522702119463185155601584387318701423054380751923974563595295100999709375786761059437742153290579342959662983983762699805370502252986804179797917319153203080181281889577376931107731349280094763928110403411298717563405294206167772915824653758016985693030959952584487065388958150035160806106438578518209576275448555342749215881749609149706340275740133337850747043487371945720907911011475673898148994899449941815675489473842548945556393155486950227690158920305090620026566640057866495718300712258154557933407817186645597445657592827020411022834645471435700338467914804875278125218325173803388599212997329487534378766892428490030296993100118083937000201238377713836752355943948987940436506624898607483575171981875361715641485242862112034273957559760952883015418410445064859766174556353441184103796252808053035100657655076077708699038201960637119564146621642306718873102492811075802639126957880562008835940718301705567838200695838683079509868830205078409888070027409953518535078605096796128910711797506624850177938186361699657341465130581361330779218125029828855264179141612573990449927406252394141780119958734690335760585467133201418235263732076142595504404819172740597516147702435540601858185251424169524952195064042208048835054465044851505137719391370975743761027478009540604286930603501156547461199846753337079543401557871811983813657491882180617733299031629393737531255191083868799742373696825521205575181159293550122136865297120510082514891508266927019902389533760309120136231358205345053807760439338016172241067098761324520150321784293193947890877491103101019254739672695895291485730363238870893904915952461859086019872667930339351542952681033362931625927927580401814570813540037584366841260837832517895854904007386889023764031437802009448192572349005084593375115401296486510826279076467037566507089731551193155561473523520680116696083248710053987387617788597680802980185392634618051449464179187482204739203743162483055212609809270250534336366394387202487013374894323455254169592964342152658620536225276277454267704666050619328861829765907582462421256146529283381943841553116045602725517567852852720625344370905727131496794062764031353898698098691408772545209490639222782242747000017240527577523536495656829242995447562968330693423406209612971706660468542983246133414253094751536876245791448671779936146978267515842103147230948359732671715883695491746779157560980622595387726510388261737149759228403851727718528038537333429817605983467728562848185459307458164193855711779343468809568205855972896147414113430889372961894754137659959943985209500595080193185506800469447265150385136868615110185588592976955507314540152727193586320517351789657194819232007509780313812423548405309391656880158093551953297451303651270006414895870918338566643166791048828725012218288028594486429402773638511901924933044187240698795029192168460407656836398969077427151120764756535891028784760082885891928731857345250927866810040218968533977778656495688707911916866551702530155016514304979007266652953932704630190938548592285436280267919693534789725075763345980062453235712388173316221010130463331322977461431220106227893243225046275857780968350001674322278517091527992040858668654277264822039164025327311186282560871571550668592760318571509243983572937429913852482968964138123805524467837416560086065077791124013719619840999280217228163631007310107683211235544916074513328335118409818985475133389987751602781497712797630026804151533787955700315657191701378026786558657250970129606951288767722665138060765282766616917871308003363341983363926614115301161583017912349002079447296675367185898539986292213508181492711256019958998454302256607987930889857408457773581350926892695724945459678049214030899675127836886132373556908603617613668426481463803197874188507812975318195194663834509044440276897144242096341728659872461714929646220565559363071144431180719611291749323811740925510333275122566998296935916695731219441002583313239157772259062810813720898195072285657777016416339928316451530993536425490823322280268591568989981764349478898874972790244781826553573227375636697818531220418510458581164656413015435968371181623698236829881292846115294129133318849779458807270286741621551575994247402387438683759232975878040537357031313574428886832670114974106478986744759701114734718494162814309656264959129884256310589649880351121357619384515137512647686135966843369090799562374665417694042447239081208635800735954048090003888053521441253087799498091387763940681804434593301293710581688039006082866738418849352713003255913037432917146599341838409237739879189602651932276785077012674152611120534345125901042017070527058058582446482296488469514814895003114665629980683996677573687062326878954293035392403587555680232121355886141588840340616293382877633582247703011180223685780975244816886801895394608169413124920620613649720225150097295586381209057506915917226633118706662264078700157361742297585649596853100084168284787501670149260155204368134185002421161722613821195164011048977917928956046122236245192367475757243413777859914956341198367513981472361421529418160402350498758454398154388181425756364450339117584447911838622850552619418551732699794928087204177426892073150397249921413004056904063522611224215657075383663817020157671329119559462796008195829781622624219438262035486531485939060442444369800605818665778052511098631748235402805198625849194846580455685437439339662769427045655929114554429842989076973225712920585782984410442973388046342712809704281068551660252550466296049396240676001966202662640722598410205947000737098128816596166035048728854550203795531016179677363888401967844128361921071300853762257359817406672107855278564059940543300131622779493074922976951655881326571313244515047550347353854288469844400524685311450534807037896257924266961753009208980806737462112507687590154649313214571656673282758981133231140054993185992897916488468295127011943910672206734018164664741513559634458637022866830943749181261375139120672938921187562869996111272039845430379001187494322942845310282245863349576975905663746159225766267344978381690039292238292023294897740755720613085892189116138207935095849153330310769478280689021493047376707892932612168794662144862199893933032501114073655462461280513451095739984563181231897519541486453259369706921483774832240422756433556255039335401235855953650186887352946177156852621855852914724720951153808576402829463628628480583971479064051306088664240220601064066886115455886185530522906778254174142302942650525809357602196685628009991116500515558037731314769120208890211247209502185418374655806115566267215125607050268802097161143010491704885792346202852550976114256807647899797065864299821774541665987816991035282279314212033686436217162575294612292707094895256036325981915648491107083571037963844091023650321476079663822989339664123418284782099887626297834644056777464108703016544050349856819476330057141935289440030716535568195045928215057381813785044987658034602210269232219266224785132356181682805329500057071333338998612607224681196349289653159675583808700307559890812304900062399663002422414607450347932522318605571747435214160189160839692471582610720101904157744986158487350593900474680822396492053926491536131807794186068738910971843297288551700852776546592899087835263001190195255452356028906219360722652838149366331725852126626771207197926423769506330337772374167267762034783014506091138894388336408530717659174842353162512766748656090600789341335943538696324317579071735350910461091722202527104427313002144615226031391345210758530210897618150929966322023829158620147383506606595204587222768252533816077489185106380537764022608148087258698327216711203670291767681719616668604930170516629696890788902401897213275844318264625755474027794372375392628142471003936511366871897747556381714774333196363870995449549578700706160321191329062014857115780560624893429202269574897782568332837261181527999722730045087831233096397147530030456937232071920113209107212383665501803706409999916809630836771522595356347033025456744545351137230527939988349477875320172992968491097065803371336023704084305410143495944212556940067838415307504991827367869707359419046736458546720058123440011377074957834928366699376993078157785693808721708629801452424968006074308655592057261465232249226442652500949611271958767565604207526166720659714835390846429280871029726347174946332117202997587000274900739276204923396914080472841394125421378756594142261995421495396312352151759359178727956511661407248742683669177309385632616823516923586281890777459402623662005569908815984730117403607799074269878389158603419881875016870102435521912288763514631940550344380292056331694927218099803444025079885015436284548471498661617508682976599344012478070317097620108265894550877722003566120993584517868351197579228952841302713551618197070795886438742753513849912703986811908526090492420833187038992319956717652346492672429084236510445656429367934787885956715565724850903267403166166038010772029134607803362461136239420343775589622725275974466431940721660924422562967435155492339560981600047516278635201069121886804948184594894388403944855471435963964087331753686233146100952272147561709226867046448026537271273647170901816609423918585543280607429727078886669578357688080437131003103876826471651273995502445338250911818289853005555366590879039349215992095840419727277326425992385203609054054600136089745503047549916813956233711939084514075278509374056986061898118796764175858036708505566053481108376316876317510376626723072576720831732417080715915541681601918567818877160793416314401977171473410589781738976763034291878169141070117798510523793588055538724052263626869175619361035149358075972382929214014089035267911284633705666227329315027269435047109874260772078209438917570453146820730288375950816930955511156399467670925633092444058579566430636912392511117417279619879213487389490994602998116515998273233473839238151296551907183391453519890878796984861254704367644350399259284034667739719778050791206040148768711038523757100204163488617863053282347367321565150263191166014999086449825908572288969433695332863711501675343694209915608731493031720364066266300896722469147998661739645220878262892443064692582103339790456106376716041966233619717671807289680409335218139454024498976730354102881094553237130145612418647373804965049264031918729134571737062578526356790126552949363942983430727519381201195896552870776370176844469289181850497919993729348059201998107500575417879846408086875052473571808557771329701660842260484930792246402512536751029252330597758322952194489091225971838507137468188993274361503214465093533405359257119175872007075564834250592575591496279400992142344894492832088396762872928418769634637851717047742780834628906773751624109370943892163407199814804173009469418295766581947917876678635659729797832698033537145259571852653190783172863686416852402765504114538106235593386772297425903293763888714383704552556878112781707903744193768144380129445920391379517885872878121166899218339909837536091918877120429513992921879520153566932561909539547734491108554065673582425721778621935021228353831453575137707796764755815104797173448043120228757498136546685518926585739485085750776222563346288431203808903413985441519893695308654045455131775802955168955713390805525213792236321043930061888052279663412385635883858761316846160405484927158347997370124175445539651833233442167067012301704269942787016415632585100737448432820556135417174730660505418444688058042833542669033501894510584812342300423132642636681144698257765411715422742555351331536232400960297741518185375234914516749593194370190604679680988278618568877871406775016937072960110243331636810055798199112826135817757988278369557954759872487675541847600077796294559926937991658703225547079745624119468746475890039753822623445452107552283569111252401831870990243888467334671277865446813959447205660335611336741573943905757090920874377230647918557010567663871656607908185923676562400427395270021627858006509459826087808727436958331803871933180185839073255684618835823698822574039058909338492163508351986643456395027063523339387927652489174755308896696494012207552181143903660956707692347790762729162295985857444696302480256706355958073012161676630351803433708215221439758643259978968189797061424379739216002082465143179350942271389707871143777765283459638511440549226443257667220394025489729574590553217184955741686952092743182480267079609585367390335632500559807266703327454719280572353520838676969442030836971289810824206132044705908642475171165166136958581074434027455049732029239560048678317987342091461989248253976888394433689734605467125624851449206011814881824845760071399138151807541343829992441354382028948332614653440454928344699677195412388814077597582155502998683120100292015112838062879086982489601537154377871726610975345104898495306655897268324648929224309692985898837026889193441239249956404031208120528295898789599693207095221996878935409976187407074629745847919023072573716228177628870307503097048954822476951653726853995038568900263669903934862040128458205326603966918293855701839304096752884582379945590033723600745523065523474824774138618130241506635128446504094133897413721253441813546135055465628144186473339857370465874055545265112289427553298355892956556848432408477078826630248769915426116587676397180441255791759525410457653868787918186091840114495756354401606454138086132691040780297709565537559343880030072639254201305142365971832359452523887995716572979673042384300067174847915887327082169517808944056056448491107377132712181195697014117469785929499355210206978098376430571870856399663134681323439884466584983982218779427115640697235233747090326679615725521333284832173874922143210882402072193585827990015476334673219767139487186797019628906699904316418213562235486780635576442277490499173667795104805265767105201997375452278950063034754356785537136092256794399020446839452492662439658199806145440798381978224047738202816847445699182099571243794833483972941300331380735309731006149748130893565009313125667554473060867264166366327970388801912242975871310490516305966922318216451839072842043205192967774961103705270991118555470443532860625476420618165607219408411820742087432611091924330721912426030523998491688124149940931418929375243959547518462168400327877673032678060036151167124389052937757004221978414391132293131730759297767556479667466760702160523355627021229299219025879748716725269010585846600302573543063683099845484564602921019113365968682187050481418328029426559122522002206061914691857023038209334339124456606305678664662060882869115780363787037419617844052977443526817358952290091022468944407485891578663234767290697385167073986593262947771811410647608998564616362121802083122390947003672208018692079904133329424809547342957136655210900521646607337059373469575912089124820531708318311440815939506816117319460875904511572871801584704712989639237365357747290972066213137149675720963637442326955046510007148792657506518607865174079738721888437832451694766802800410511117757876972442634541355086776017057298491842581969318130713290464553272791827603221519659912288754339423406092844756897147219866472183118684200324141651884856890159401408207969137330950959088189169205831327632049132363667503494651226017339472399364346493027672717979430854660145947532017187722329542351412454738101608703279122297103303008268180118595954633188995655290665340822516234055320395145914973517035314676761535613702006841770323336548006517925060878784691557723445628082891261325331819181136376216805313252302019232988038299101991582594023237230842276782697252343244668658659522027538748128408203983522323703085861313972512523038686745566335375826369455044531866492134411965496311178681158602704583046438518331772671500232267141956047275389686760483128051917174906662792476939985779402274548108699095886019476751330845787277880212836203161579630829675416397795507190087319229200803357515565030202010554513934169807986150347291193796808494760630007898749246537635462064366238755885377698122460141837112986365844972510424257280681634557186033074729793251176806651670422590687891213276851074785242973210674755928094701084391330177430389782903468775779541601137656472028566791419229158130186476825231902198609813627444405127949738960221923329976239348288096846053324424641112489778640276398418058051095360248870319922898240757539686226822970443242392968662337462267609259805990278807209346270373584670818314192948142688498513086386718811339665945642273620238989256675910618391941997913774411407855439702392658208141146380872536053760044537840806014900427908144779027659580584691234556612799549464259398601386776724158326858715257442672514446609754747927482650273201610963170419787791819447354569816505543655974060682522783783473860904107672926444125853885237824686381016467298141645824213000838381156010167679699624692904239922763295147818298459936899819141769555171541371256837988112824927259879745307919944411857439433471137793277071739392773545433600841658896864497870751889528437103929191760393777151897685221572415917854712296486024784526576306984789256836260767876977840718804978899800393411836880353433299575487805667398116945232775551576990870770580718822670028080336234094097436996861193438414058730119272409078517964227012569279210507437595685793576467779671135699246311702926160287189547592413644384642212033807259855515374632958321279179623776600158818277973510021986582206608250397605546940447167713217984874068208421534965104131906869705815830037447074332100261138905128838985546072271939698949474999867246635966786656296339341652332436729684809661682185785159788202190525240543708771775415563120248834834814044918938913269283193915127214442585730753410751327276735798314615521576637772029510977221568452367782850629015991953386906682525144988338800161429519483264351876651011839459241572440864411565094513090055386110068596435547465255685110974961219948741712821643048965554005894128089888670134372850534022395815611351628509435015374015791290831681278332551897752432595004433042238551996538300216045861750628775240972103323915223211989697503062769682011870710826770044679410006217497025452259764300573112408399745954495852325394433260415774447124163805464108731193795536295810475039274208209028701973039339619228796507857454215699391915992205703365933051235546063458154591758941906701453619810391569547719247464005694269775858925491644427225195185985287057144054644270286540148915641326216168921735855560310545122916985694670203607380445276299988440479507076772027640187920367184670962014910544808005652521312577521877579743614062103185444099511715384511509438688295012319564923191834806211098265779890526704267502767350191575905693463155664370314308098909769694439755427890932416769631634391831090152718024516525073553195928494907934846881746674760760236433450788719287316783519619116632055153637171017254998695525444314796223963378878676432365306450373775782004080713425600324382493271007049643742475009063834593940684830470171146169784216131780009171447132846927447069895716139959468304529309404893352360026547927384855564060103107808330697537138899132806187386667680916260606760776390947986655003555420043682031620736123789100723745061140123263469239807196644067765915770254283481695995186655803122250213109814023840980393016007607154940247710436517836473214465799906507762271851706604415808736540350146606477698181305255965631770501217830006839044649987478969429570483515172799111706527750634549876483461900347797511922090720960201437023689218387277934871044951244978138222354235516931969651921377652021202059297603000055805479091254483622398313981090664334088552547791003244293878209089199799259719285144753344653678155814334445723904081049870063450029227009120381312528731930538530788788411630875834846581483644830151949719320971824258427058607464493591835311441700527995796397790890096407946049277477444221962438499724958746627365720819574568307219454974408675977925168809770553952146392699711041594891187317933495563838495005881833349699646993452742814006918493012446682641751622976148342076745981347649486207045936168923158637719234231246862495932701233126266285327523811724249319444587806159148638274772775623967666350232882748778601742870320280755195026272649759822071880256606570045657897615394409635040453903098908279701422012300245117984802317071962546186854265851026666694746638613411944364363758389929060713448549745393258421334673347263670132533099630285636378780783477383212148022145232973389990485198016606457797936931623320609737884067706467173711283404021729095738795173651260333606831182151787466835623990686478948602246765216385835605772767785190875115492264265007792893627635390754705246068921569541088577428805014574006592913412496244568732133633467798255250624761472959019418830558797099699358021631199958108019199719240462917885503012458758839259031050277878438831220153392349286462860571781594100668011709652306831370584012075068590423371872408012690431635445155196081639552023730845484089222880749253278868532767945779377223873115763754576378403186787632275346338993918151593037502294727237188127751374562951008426229362518481974688535580480095896097181213748412334137473896336412482395945061423125513433137493316313319597826212417502235045790430207360238021778756257392326938996717101198865568522743376130065453649364344732496459890295607990818559956895360549445602812275071001550741536181067625105872726682700755845029438675846367062062235614975037157080573107190537948570931951543343176583092558962916272500691493277317594054523117542511451213667411865510620711611223930412782804056439037137720498805101980025164246556744193284431371410490572345376675344633262488605109741982819333673999099538447261643334379869319147396695237848398392829612024657796893313735660139459930609633668633920316646794351038705124168831569976853984577542516496268019962019244043261659166286245993943679271101592790420171055673976381862478999436051914453393975069937683407183019994035574325409467845367776641476084703902005389991773507066624364036100707438748331918289137402715814466117362734017285696637750924408621366563057400314992740799211248162133944293206207195826767596407689251465646477704516439444279439809122070611140027230843483204971328181787178038135436891081773792726737200407786612376165054358852623571941582714482327832967219512532021136700041477402148923665046868092752227707032650311402789105117331245269275102297237709625678658679144096979894414971226776119704677520740069224528590816546316307307406352311717098594493813660267416275989624934313791613029731219914538439686848316108184076000244791343471948407544544219345878415162600907608797029424936820906312321225101807505610596315364710694328039783906496437681239736748505455569442760210899733465971081344129463301251148289146553747119233543408194354070080473156175127647032695154206447477270005826950964067389547879487240334372890579711043543225548852589427561529955955289987447931394862786427330791431412458055004102689527693453944125589763520840417136416709214066355735520952521786084141236992543232612525348777376780239640432222119519225529126823516314121606431502144999909277109374291014017148088509236679899392836502864149632403853681340123130898555677465904843198918094549374643264104719684607744159958970651415310394458074790472584482589447488128222759984503540541113811549028143836334376202413372947050250346876271794879280897701386606881617639788799456656608599956369882782780117370543813829849030848616865042437818520419891539422474132784938515866928639810981278125809584152255553195477534233894695902176762973258897057409201892691818412031127239813785205542065054071418965767707372388960721096318852251307923371438091982198039688951019197507353800072406710414803998827144256788617921835461325845892090075927439431475317207703456065268614325769281156739983852037611121747878822569706894824785011700718919947862624928493874610322636143733468096214847168506403579755423342703763764826993103348753977534437721901082928872933360081229056455853462281213053957365929171399842089809171509980642901245220871441361735252165258434604009265515578792312860091296251983304797410681213577350423382648480846158944909509679637956379874812697707471648893478703095187773503445162730262356171207307475214563150605685347862119828823241908722948869968137436865223149821508615819975852914879514012687389838751870050176080744216239987916082049966167487975715781833377184725875575006863206525117617265527628929393994024352052806441905729149172162128017521553370190080018934376298472121047296579779056156487956956829424894650600378891622646654209397464171482641488686175600447366410988175195792300212520242030010268280252049968907814466259397014498380670555760915683442158386179527394688246791741665700431762770764339246853757808067685698420662230910045937872357217218008157143844060031549331197205966921594815071304467135786369843330678914413121435434603949963752854477932487501034465862257417331047549326178698338836097338538666864844209786811503927547044594544816757739642512828023573069506004564268895428626320564277957083987463779257243352186224024804670775432630882509886026288467270336883423744770862939937358435169555194802702286944108159900887968915916296242133802833932381867622713820390786204936958065539896543759695490128441149321336669855624158800301336939582199356618959414754325651922130093059348874973473489348567286571402468050952986451730296629164971055116162620996112629939574607118131686194289529672380907118431390248184944714720440298980154630454498779542842331529330553986059266728946741075000824495476893030150007567441750097821844832204517939471328785733095339880420550544221883582827427065936451631716457112636716854163889362697463018661304596763824397581355452430052785133642542789963874913795854511510432560148945618169252233843838846872573323399553910282907677485853628935853365923716794902634849716905084696493062828869825348844895761482977750592207975278597062091833293845255480516998845691105948406780572132982509951935320225252687047111914998243229437737932504252823230332531458537302138874254746379103259600943531084375399578992713146844106208244071011082960541496580042478058123718295523787438059217964475439181177329393073445201134520075346268870914323513052850086184722840196230174919556600950514434480804544787671504361679223741584369939810286434231888468910914897631003893724771312955112621184403827108040552704643659575750366203466164123127147121840590489548847549591285572921378034541032009156270015822427733511956285948110830605697318052372560677537745833886069261287107862488473874488176510293762786219874151577986614701487328629845767660988773991237757234417533412102713057205842368738733962238535535805470800110885294585252880803539419758429750506918102783071483989561650578021366133631342093910721235537210161396431416832938921478228279917887874568854326965518994323635296732324094061998279104020268140016663967338881090319276272874169236566173755282613689851084466872773645264078279228693383679555767855527227238149592962862391938746102060060278705546902424626611940314343215928376410625451986166057952341381587120471748771836695885501658437893445934918913938829392857391684740077794464184378566039232142915507289055751468962477516246679748858876419028106893578132646654483822718826660073951544544184443702022655442910503697015213657532289525863012247081404029100528132536043357043023241167062296091407190937905314864443042661266103396717528281102071285613734467041760864142366835042667440289508021217192951016473914001719966109112235484952643168809378583965069689545842918205747225408983488294295073384350543488421518937775899371301525635692050342620107058069845062504289652310526769603460287181152128280432453383071879776541060913784511470467854470175104963361041508509554105905020020297333494123498341350224524427128439928627744114736192455285753018015718033694844610739356189062056868449164671473157718993155764409324379562461557672487956415643152622967062697180393918246440940901827426290139555249255138183964351555538175982196413047429371520416141670762287542982388845859464628307440087709975773225670301817906767772003650972398288853122887880957208085110384517015359057879997255369084386917140500025261560275559238830427470650903703808521057085915964400988194367629583571151712744924539317794300398064644540475221740354037434669135037366710993273984827985393897017697625244361033914299629167712309523204469482537307414415843937205606179893123397186246675081161510401296168563343872870205605489368647856301106836321024122576092515056244365886069802910029330786053301528572140346214697722848205270579291633983658626118054679169521359188756737796795444026084756527251853292592979835007447895449743639865713853930683229243635729418788018359757421267321614612683031337661110598778823629590772409669287397683098192110629684456333635098268867916269406279238407495962157604848545007861243447550024566934193282327551893974968935857960676007318392817848603953578385688390919221012896940635885476847600692728475955006925416950945667688841692582047414689063307616041835157537835528013401242068205882930171181540570434254307052284882059270142060194642461443587129019617121616240387831530531528314945665050522853149023278227692159414963772915154450443839630554641606236741957271554728026683488177178733357677326909854621460378643990984164734391420319337348325540678690756399461893788039739559392005263886111066728668615614791993351155032717547128070220981610314906115414319522127353571617517328216481591148025957002897727124001657451895694701513377264558252928101876995561143965077303651699777411989667073695365094001881216405945648037930926079911668238977088423541280049829023008575515097280994990844134914100978344501776287708930275467025394686210896089551745164833905587647132960987072202214848168569636167133404568987868387386319845479392685120125282983879769445611021447448624657842593483157194885964231999678100298646829338261404308372644047776412577098331732514034363845600104944100342135946506592803612849944566127169393464473215961664311220737199659431886457725572937813757686570702000409009007748503623867130087693354419813437807763329876883121514613749073779009124646844993679036876690308254795780281261090150642226412767218710151059924921068010051363835831153945591755955656654627511078122171388059869482262312955172123522106079236451411338051232670678710676423248730239245879657384233757682923884703589653674757631100469555338176872833947959961980677773557022270232098732364604051621265331998957420048087292820239782879262743268029331354628700416966938945578067184546913789255047402790661355078713246808665129855262761607156136746325755337930243454165528367939035615651481509549995016674079324876342883690010157505784036490874626971832330698716119836293214732624099523338541275073779181262509097709685681167679428073304902080948590575819595639954624277059184260071486565025396154522868884406955696498815890559959888986184603709328498276026144438972038139579173623595589191270361085224763774387583878209004996132382241350905506715084806925655950434766813662383687281953996959714840708275289672251283038830723940793036471362710883053645838134718337223664975075688195372722671460312916885289117298143884523962979780222870783109459387674575124265648385383496483423257270557711929175230174085586335024138370725269766650777534877589007918367956005336504668876332961538701267433933471065472343835824875548210592536194590226462565474934511016818516498597042185714578093730532633887204809630753255919116141932440298514271862404475912072482286833005510777934986278795196586739799850847282420937658110373001041944012814377785494017381786488391256147199736172554785844975091373062027930733626988416420795969386777066077128799850838227047660370129777848445423686695411505843312849762802843812575834629771098124036387022731898009193565713486799593031212433449675322377041052587578620025821223901101787617000540232201099157312298039544718027792228385722253435963633212042180502685539143719465565429113830309468181353455686414534469788080516005063275516029969217443756639091568907445917093875327979108109665700261972236526444644014912760171354541221686387303279904321526802635282314018563358235705634613482897841919747639410539717211054277402531721101832437058352016700118765195115599542398932639447884789195454781899283815196102722583128721259765600378405777021906898374798843139751196888198339433913177571941087434271462677896366036299949121430288344773559050629302874039748804328239844432420646369114895597493477639040879529224918181935926967293925228969084777852944207904577392922794993784711427402114794450477053850286384181446080461787282686712422361929823954987591342055095238574119723910338914679882051700208446927800934700174051314310171315063708590596243570168790071450620963022245519915817966255128328731599348019770804107533408102069820202949675314750623195461502802296363011331148563545255075039511630387976279009072804564733973866318465948513684507160356156278051794724667929789638803663887867872847763799376763255604967093064875330078029442212850129232409596001420090898448075382425240599387735681925041385273210483281114912713512609615994426958411066554316541520274375274990740597364495356904372123186192053873374385085202789554216481099740020340142310187899893512211130859800525983990512421006344212058655013498198736004951305847449941782325205122711374332641490407527637740591765383807575551276575367251530684588326071401752057713448767299452221357474299797045437188460680772863333733511577494290803394513834835386640900906098290665261020354123992348592170214311040812601000238472428837338414921144411034022435018075355010467956138193322403304175135983559596875913938021765963701898201177437494907136603298383315089785725667133686915530231537713891034175965871693838211760058368984980130765648347312336846336876402557418844365664698143912609732263928349648795597653116180594228715575440742601905978450076848457500526976764521013028835105455927541406539244049494782769514855647497615213085612751863269603678569966085401497845945158617410515224266427262783826605887525024709332909753700095888373484408380439613040746299560837867537320406689309584676986255336025761866986262622799221885758899723554656954590533269077625555896215223961853003069030501568021766270720373549815935497765820551023246532561622991499088997802767357821224925321455320695150162645576939051125360208999481730820706472796958793657652492828372404270105341878111617902667292685912767625163487543677179220749321562093712569373047395866338372021225873805619847780112243123763454564723377211065580107884670478634095135717012062913505141985569571907468099584359958713715083221282086249624341295534046625763650529257254494478494862351666248758887756700669070204028788478519679017226568004239584853694833837787607120529503743690582140901620888358597951406005234672626548198070959428752071330451090291739822999061777734257594015585668799261066877841133096455494095877938934958789933856100780434099999000477506442921746241400096614691447902230646843943058070373751737019913709712908917404205158454318692145209285772876662518144327640678352945242024585922001670845221023333094931398571435111515037184333782448567930557228420152000173821555986615404501010121703605639700647858437823042635690515990991807482999560864631004977774210278685787214363654528313714566145195714986617970248732340209168855742720512388323987396069131662235458206623334417896974314672960121589785011430855176628726119694257333782655240739498170793271149359865622436642168334769247974314815987982008825951127205140224138638245911135518239780441220618985129176239838073945163873641976282034295632448645008957269203628772166062608445030941260492838558586996020658678818324611390031181584625831989406319458251482137467176781231779252732941744652816404001198486738881546870248639592592333299467736050929358808525632000905427774680461694120794597983349431716886938093613081323709847584689747246783621185489760418070473797101750449338352564211875462306466687011787560309561207940505817814609923042374026127652590980820212390608103668801535707308477195442723882791313114439495414972449368192479725299444904332625340347540094107946616594559307167516972181404514787750669208536482790333556945748053954023112777456832826644751638931116243627774952823772482104808922249599941953499006147132770598711148554053135466027191132968380954644551396385828026417989147434291670991066800363403696564316548328072450786030288016284142131192657233394523563534982397702755923027549648676708122231605131185256496901249096139987958682824373986039743164753209468649409995261971574570984116890329928249338498199592619040536745964060986383372481230741777997595750792890934435379697686438496576432946849231111256327028267452922765849727690474527523881463458217239055817006752313579081864400159419905173401325529059222492037572306778884760043088137726243646467857954290358752319080389138176088491216287677544238689682990747642490101995533914294820070838248252472745278043937246876144990838225252379318333421243909906830903751057628513581929319353458407545202174004462483962675017115998634167196052388208048980844801077543639918236741345574985060880092657628714781589308804409324169505606676202365137577524227230498163714974769198009680083941034502750366999551743986250986988828302194062244062250524760197888309549207826041784976122346775371936804392229654281845935397550736598125096021004662420650209163523283936900185837958026645063986754612148695913042995700378402547396912827384781159906590553087579920994804072098194153186276133786643351563648072167068281340100717589325190175766365911327927941057144261281559611245587209327743366044043188466834722857787001369327287554835155928453899603439719453152942500264555410858526027791297580883014763255501293032403844945813578149088581208745692954015348357281628830230878227631147565650391827897646922679741512272984312579287699130755956269765067510955179019257146843972671392124669490583980337792441173194701150587058817671011739503419369820273751822445806697922459772714092116318061540217117418225388858580621497571980874019423943639157983474649906204916394709767669140989493630457921157440762733095419358856279036386797599155619800484826821844653836422737673566917181988474672374379266267528638556265330831946291931526563642117881554665094839676756161293143885067845408156730376633436997328482849802450321787630191561344530062688078378228264461461726531061825255993061551714260025323362786379234949269178050411556759640734951951446220603991953136074092658592095029640515176195118359226851796745624642453775433679718986032552334891474734768478755002378072281524938380051534059183456160535711295723314156965798123762752689226312070282939136045142763231980473286861301238301761409754830758077047381883884013405603125702992840857662337468483177618656749911069081647963803075683698081385058355530664873303476814773565497987613302993095112573781387271386040293663818284154422462133418513277508296319823970783265620054146624552712201872936936593728429429555498512031026944740046490714332562537293062345438330351646688599570274583652689875504650656735067215541068361359985668411758230377010263264222043805246368854769801880746473846309658351703647081840625646915937660677982147989860543017985034397038204635746071478294068822063827961892856478380591390694009958033560788469927310601042935457417397781198760940348029116180861567226996632633935215700883308738399996474646120118499094686394383012714923070556906261399001298771539991499354501524243148610195194968203771463091072976398151550239636996771530160064128052577601879252809361858897362645283232671625588400299016339851634993195104872573284987036459169868789783697077217781867472379292009740984835256496752705588765299295472540535459797169993629287926113524958748425188590422556542238895969546749456326341029014155614041879438719785128612646346602613875147400221054681405243937740831293145882974590483137281334718637118217619492132577125962621135822038299091141307819710185481057704307956454359327152207238663053912259435445001986198858448306862735350094746249882613366923822303739346621361490112208158122105550594950612845885644844378038509940594004312916932986337338484400343012652017778917368159226146574174952992871559573344492611951307989511601646649091896253727102356150559891340747573172935539526707781744803781472122981612270996853988394547658170912804714860637706775127900212941330742465520727957596657570444035522636237184173865710490784678915502070487249000162334908397595975168895726701029318131238084027542112020316865696500526858630555308582561779332278374276206118732429895674167281902625369200122211722991482017339151626089737861606053815484511932377542791451900381090492750215692334869703505854833710921497251489369044486674186256530207906479220469439536351187382447444373427420309076943070855860585589890193950167119798129052299467210509305866198556488068324735481084071793579189405910147020507833840567587985340316927533236044803030057497805865234702302574681481654369900760134802656408118192414672109687010135735529234972338888821931487293244995678362575221948970937925738099434167574785032006164928647769462098802683025539641662655331202871622298347632713144511163497730233536978745865503726292026588051037769151378647698564919507146227110596826461133300080058615920870893759735382447607254512884199024938521442352205993049787532288230800499616363430055412351414349916426188291728887844420153928947722878609977218593823304102021489783629187727337558382076839151374372309929033369986446879661439458417025820344784815038699469275008649491767697066992285653453241719516860254921605258750166088138405603274329166063643919443899387172470956074491791492956232343096145180468831817095285158552551679346768108616250746491559228092463564085716346366965109113603485728944673994154462546558800091463899047707745131419000839099221162349824301022111657548960828464327650123123614732117850140396969531157918109057169734895445292128903251108414647789038718401862939389846777600501322940544324978371083778036859924038063436683535215271348559388798508719258212988979728648189705545500996463495222541313924322695292392676403321579534620945243609605095890978622971052676751452481515821090602919111290886270222582614763503947769429159629660599134118615289078223497761821517855266173805422499793503194705211013162691554825020809173708457406941226743650299094513324006168058147528787317597042176510280332926866083131879920876207254332311235347176230250729081571610773804054582988384249055785708843352189590362640611396801943131308489464754432265428227146900995493483413816440989815901845863219788894923807498436367651601668603352088949953733840024594625602391597389639494807779652594436775907142697734365470664241062541166778274205723390470722917926887508417986519576353610724549377816200474535816543877751126823254700420223963020457289917467581096412373634299988332737054363891470332337969390189107989016777114640672377499082193489725626081956717416517021625253332114842456364547994424540709210375841029185064059908816373938598182420842850809018475024456295116962322236913415452325642220453088642355778523810576639471608177045063443841326178568126357660017689624631094484887026380199660434508018042419597214463233059066293898317887282827496577800962681999973361807845797700164441328295023737045920077682399241804684604008836368591658356683723037236827555182592527017717472238462579728151918800781859971230749498074157767304254558148879797294431158205594472267695546153029669272972327867373606200286418816896939108709884959688112182774391597481833159513490853440352710781517881693589725744934499717263139922690693525437776541652818126324552562132210139007664221795973841418422423139201551460089660373729692235529678586116882671676046425126537300624209084424699561975166979262574358544795893726096200153121584520401372880532647029014991209255888790126873283646355934225546975175490024962148957099655392422860085883097145893677902941625266892031688788186770128270771881930935882823802009690900394531836082535236382729084485624929900589006573832038869132879884808702001905860021331136076755804867221528837294003074623009057274943195873866369813811841896103343026906008030894325140189790641602248015474348905324953383120071163932496364764871050062728758546568459541754434555375740988859276391002113030354584402125383473913089908930782877123558941051448490280421896816369654423158969551162941990665418499067263917750149277083544130403821689878702934948935299566201076781296605516482995167132779327203744599710366659655580446317853623299330824835637062381693580423647761858777163734798298577765983456939503009509161312893277464141595741436735517255038755986359792113632568318655421455858251416435381505657768000264522385659870331610875539429033478391045065836865412163124736668333670684562380220612425372909722622662759824799249092031081119969513376322675391875345782554131134610863993073202646364673296773717597569545275638152646369633884056393776322936478530870786915051824328282220135281671120901515277958522468086341386566738645267029395910044372332408797209773245619777031499250221581934346833473397886201223716144495812133833290887999639078971879035286984379408688588390295947330425557888568844261746870709628577731760804691000683367719121916402675619390430839050974370733740570914359871163529121477834948037397846743619125372469385036066153365490938234860502115331133029381136993643579960394038204619175045615629171015378604179833688279298986828912444552123123088476262594825239653438538525269956268615274379639234363447801294293586269994215585678719858344540336633968869328722189993522795662286431684760420633779492196264466740430687753050750607288166284063938243203724850100000119872594819049393653715592321016096336185320430115146968789298420117093663014764646530527680912452338500234509928038072619335403922701241354347203251051741510827470883564583354931427789759733289284120386531240437042746858470255001487442059099566924780280559249090128621408642661823738726560141967600441665831193179030108477342966079429575843625733104138580311194019360768104337855517047082784731475828491910302257178413023155751312511572967162608409797767966984968301724551618820675213279008832642774463355700442260089138025696325666953723580568797540506921682009809129236225509981807100613790362285385669082978845782427550106093152046427036202806045419696055787561808887189794990734786120194525102974763353654781132264359115608988148485620134621882327438380670588139141742494378357608880317719269058126517444512539845608094830828895762076473693195980064375534034401384400216227998157161956042824637351377184654752594045133635042766533788932628576402315425302234260585727321998923281099201638761644335509689695038747037349359690186791598516161169304907618215023507697717381546109579770192550542432597965327190581230739718968038623109657554445513852633708532149067060794317946121458563814270021172094219047111565700849338122902331052777837213900900914708823867511561295020495905381321070055103203126275694854568378105601411241356329045254477764679460690603629620537345571849892245851840399982772748383600438039757837470363454983221096029758014578575832978907206466749569404712714611798288275879310480459262685230563464189342806957054732754805734556191195871661710381845660466705538589408672859030185113315854332090257051269913184540039305813464424792649216422281002346601538094262477682247029525146331919717117018700664735334180496743238852780540204588671043959609935941167436260726632909577611761498418292057294252226070336063440073798404063381034362896114508499798178426093116465498141737552186686976194193778258351919401023286860086993619274337056428915400996647919852668109992176833728055919459571230427616496525742667938394754822941386482074288954743829595100604843475671336453129620527065949691061584720852719047970609427183400682600233937748859132495567195610381571608815519711072515037386213897533197386070217039065054543081075210220775713234737866138638336282149631426531778862453676543352579618878421998689528562571773235745572715552571652558208151287467939116508712420618652242391687152417461375859926399367206704909073300821265106594427079922338435081727669236664656938743238355229867362462505117407908600049345088757237207684358154483989065702226522577455531967418621415597685450383418942877609259662393257973488097142338579076215397489672326738188588720837029525759162072204410758197593258036921760275681464899485339929641396654829602439747615290125987266121683635228235246217902228663682165619277198841796397874823096771793097595735210873786423695526734326337641051070708544372285856165282540385725949737553594174233553956458995501313144922945089333758838147570518547315311276907055766103450502311880106033520945993798241365468481937901321247974004575705124641918545527856400192781070905046459409931150470823401384606794884177377332909864483087691367732243737075227784261998333957660345449947056777186285245998375319064704083828805115254387304801894587539442596883558114996933381963827658645117184590469996522856899495797317135782795367954289611247148639532535795165794482185066253434753591856257363930483886825244004211746008114086660641508150362904533595685687634949919343287213732505311147138740733830815867797921987591821194421472284717536179769172969246532870339559730567874464354499822880511534576769803652761907597020939314846963615516072403317460813774137330671660629884840911449178463646286129552251692283474653584934189186299357770589234089531111938098693752909356154888120471231860891694965707892462126487707241749565525282918150230574329812625624243184940170243005841273420086994838889866665568233729261017554723420362386954115396398496123898555603599796700184212124898831932423532735385684156527906377791187034543041404741544890450446611337920914102181046789012377714375802928493934212988867507760607820257504511295232530335887623004098107996789789850463084586556129474756610569046297486127571464524067767907096222039319808127567686685789194850852075010602681255887101108880358349497488244437123442403575145849382848911920438667385396312816207497700255179707226211324907613941830851826793803823764656126999231147825007042873710502112396500881422065662921716796684899956569349152239860383458608932961437903435714255143083752215164599561212074018173910170693199679397230035703093083487758264161312831764228450579213283033611023635111115993861251471817199249093606695087266547537756431086158000040508253665327273882163876733340837300883964372705133671218556265475283496795594484821964232130320709809214100286122865006985248848955460698940200905094263552604990193670414906506845999716364143740325888197618461808116982608557309856281089938194798014981788222906989086318685048192540269069061807642737781640127235184444939116176165411258106678564414672635770946351234346780273664209650045058590996322201006324559964030722775869046436933750798058853672331918986331814143451984833035363566412980871189190417899903531252313166076588260509390049511224568209865394180020620011138130254464901860043757040797337380000873255494275157680121546329885786314728304625344464229479865725418281427611081043765226911372061723032270898687457103060771393473591050902867898631646011395920540553767649384277522916888183138649249281349797987566232174475526283332589173299568417490931339577779398407198508965482842541666806766814372367052802873181608342853471331812436908116966108804937619206727991375021658758614091465626732085708441754160527563591014377032439719723388468595745713611965248943617078584774390693483311366915992945824026324169672368531614343524523944835647767570875485291315310539155050405696518116766076190389783345915293371882363857377993469693984567420280228964054353541648886982907484830051162087187210117346017288183937725351452342459487124527398500020793639583862406591350269187584530153157674896571991028180438113446351374380015430570295615472731244834971622561545462609478154660493796339287955928223605083329031899833118005119455695716053365141875562207561797597461232020820784065622516319067403483290970389543735340975433266777098848986715925263574637873594380162309713423545260456289899460329855820998076229435929684815722124956772400025141849918187802632799090656030416718892455862849200984910156061009618066419311453707379783958577625579858850845240531527868149752059530309984688038391721211311309857910867267189231898247801590485171345663977228978973494946759814117707831037379828850597204151106488814356875409389004358546260074169539651160768801237978589651163256544819185667794587602690531794757594404055505064688532937168992812828860251622446138106687261465267377599030452203779245491462112000513288299638462713715809124295008635849221925346459731540814862174923301677609910431290369016243536235910170871801277839981444089013264862390874875699573517750502564867110437647593828560575051396303397777297379822496275851768845408476420650342823314936992803713748948915973096161341731436837553913175875983260247662396104299464922087979258600982035202009551261188339754026078168196417029728820215056995665416679443601446806874475089213057376411086782406565976910870360953908059191631365458936369094452811158641549197351996944318377427489054185719308337483190252597447141301825098307434272763571883634794582081963454509675102436263647061801356354963349545471971429801568287115523953295651535547464219714931533253985759943307315572054276378280775851230437326334737562669514063141219112620486297936254334134298631746198258276747811564875459683586070306948537841185792490230597241599515654594845852644899417481957265767231464038054712513627752341653658247702032447804029811429277689681110050893742859405625051012085404921783240265216638043116846707357949020818435787334366964279151466470414168505415836003000262777695497033801061604615893449051472234245525669848473829252058404726733428601005962290724141846905961111853811829481115366193365861808347411577802156583686157079604293304814447287235362079621733589841661055661659784994276655500231548327515324999373384662261117065464247591133069213589390673388223015473318626544359543298195879964139181739289076468993305425623423944535115451298152399604673845168178254100146239028342459885454407102912839217314784401379386180195344898144699027383988735740957194835946547610085506445570115336573338525526060553394737365830815161864604237152623109783376337017477974676538997784933929814515814115689096682775072180494162099707896903599070347607544558337172081348241093676916974982715267552742945848143728206834763214947066906029495143441696545549557518914444967927585414054442776551686396163392348182380019536684835889198643673558941839518656779245601491212587119117546245419281402878784498742612655932717745881746786021343085649042322856345718647518747947140517565702283481648619097864121900818103133890847923205041665073449739056124982959478712926612835976230278347782979578861653313975757073881373467317695920689728311698882017872571509210363004055917142541023250989838275590239799364912515397785115067304724834802706527209798554015562905918237857572015211732702904433983132744963731352297564433082401582436695831925681307535804702470641572482629582825573030720990509015194764754885575936944302097638833232048444545579522042204324453019878190391536317882051485397790235524728709769171212072580399623114388067521874596010245899204813902276429724106253910569634028376161938967676200719004345017306968949443871054137382868552217613989148081104005499535114322384251620573332561688682192388866832472266755214517193700964123134297680106643679491626759817106383644528395244397835361432128564477629357985008107080978575678889331332458596983318936576137864639845587660650101592368871769832641222296225232401461446515917234635934403859323148297506044419400924930104115392610708656027195211293048551477167499932483671097271438917015436580766559552584509013409099479594682892393361676841992690518005044868611785602118829698825334236644529680369184115903680458782907880146621487055474258781415203613926865732302436908391589635539868906107883515893741396718080577719114471923338562204892663621385283272413252234009404901539768270287919715522245969841932685450019370184617811119665915995395521390762860563262245477889376573848316710848740195941686204359721881370474913311617718008541484909250573826871374552472910072965650999481898579710196647369620817848597631458104939853216040151544883913830389362234508328784153576365913645389676281238632390682671213209497317375240923223701621143604230461826188710951369121107297134582720753624805133964142498507326340723149411314877650092084000562159281176264146920218620724160303289057666395829699936170574900954060145016863961035003311112823174315482415744664294515407119750632830568216876534883535258255287105368084590245144770042370188589720746005331902246414067143592415922645494142125759056862259345575616461475624050283498328973480616289220970790286844677057342339145863720527500213298834191207271481695230508518605218269034396293165712452595558393886250721848378337668520484659823167648491290064004639198008619423934868657271564423901397892848844890351369114334654479618993780261802357822984093670786419880577006523536932118946901128804094385523261859300476041323421623172558748922382167664070792819239442762589814815140032236204076219602362315069520794020028163017507043771205153224103628725859386633484375517997300874622020067922430517586316658403829796893571787996064944721357125850034951030708179750319170965392109546277138394323998624743764826134043419663425943258114327777433774597414274203738158517256759464414754659808798948643593149731504885832666679335004409808934389585292406964367833718841019088896255962185672808268604238458983359723730893913249549859926262958475728398743131183448940541859145017098976788337358339596393763219757020706316905848647995370709173021883165489203539441472802306728535805807339809261208025083237411063134398099481506981081170057753594091017873601087511670431912592167667953142688107951441520509374920837453477133990798917038177579096340358243251028218140098103097996452381747410514413930988827212917838539990166932739387349975794081632173187395830561523863166293207393724883105453797580985022146852922655220869442724182967626244891969906292811175427249407366859469400397412032357895919374480158140787680774677764229637421889471812707119346186909976349487295912438946977956785292579935011911477205754852775015864074736456602545803074259835381360931173794528893993900620547481667506367290906790357279919624762038634615081298882138174569781636934582908974681216715044354266181479279410353119185813541356507810004497866369143495828316680180530819479516593023915732752628894566674909150945345673741224972819877093726536424729813209508813296749466374143482658681270761527035962096415249082371709664955663357991140264824787967599744280404461440824801451690789595385553096108157826183403077909597355869662419761081913405341226200356415618933548750513868932263452806287567753870541037564955689059537227882761792168844047857325374663287689274317965306271014238212111877935418194188310510719999993729676602134960521156311564080788333657973715464785649813824582013904901615907073328199936519569824353834166046255748913193251064243431183873776721445025597807862469780746736780623128784294886091625983623120131625382081584907921249789753517095756915248804986432626969870314553358529943310523468081776562708022323953790752048088137456061499259754573419124247319518117729851349822359238738285172274375069876197010621521601506784657762692744793060499290913480587998362717406008622937165094213672347313068742580367170388588872526897325492813987830111861661174188434113886284797779150089773542743198202966541380287567869671049031565330337179723834622107371805491488177426470230592730909341656142520180981143684670602117192302383728507002492805948973351080057819194051065629529156989147169736630598359333709698136290841563886257235272802701473975511908134611974326502964046439792583597130898444681378438942349836814099163908045709947697638557929470420206267746595951845132461051290409706962818328180074115682282001638755253873803844584662707040167186486618406262248185196105603833008734369312615248127438715087891525541159280688599291640169813774219253511444924296638969617422898641510691210655740878839715257654522081095067386284288794022179595320850267815572690337793235982106317556842438488563648343757153742317212310363740050828775778446362203719339563401259176851210746215424932033429273176346628647241414995950854499433398089596928002463084794624453665366725640639040669043623474753800858209057880885861535758275307081962383691792659035717925109170940970695238484990494347161779252143718201392634108706271905060855455062499928513034692761490966184484001641654031690438513662132962158578983169839029790562402094443930736485242230138055302911975353419496775030976975093793449571933144670577656472714992343815046009417122142140033111486854643156200497569888939064292843595616346168001031440809414180771882787309115755185485513238911984646967856590613600227465028737106351631802856765269975874479392823667022649093074686135466104775456969343097125606146681763805922976256129611762294396955146469618666800748758383644090108830302465096263310215057729836877849536412154016596830520901010273355922758228915199638995385319406589906102873155699632576852575147716025446472948137880094027138655347498099743958529808914813164616162139627478310862941328730166922448360562678203410194805559940333127635559329338539145821251311573827966698121491367526633480198477416120498959665132950107459621388456629466009149197148359279502519573977120167161777841252571004884473072144464810391672794735909201984870317477586752462389975718929374764665361730079183443485398678150759180117781280202705450948747300795227950821931588315468178231803915267097312420746586069426925707321514611610045705994383200231770916810246980394721004154580091145514996519393459885415853209493186079833393771735173667924950414818481853137953595846642911663748382252539847678466311617093683985974706687398425167003671670605935950489437458959606451790324028360814285343359992448818849608122404260163865490795001586215553356873083320572782663265296210217200905584921409932162268641435630145521435749776526524518128929620898984167367742040721088378864884219028377960660635457222850394371701787156610921588586404009831126597144947277332600121318730771369562867588731111781054958952632619514445656006378508455501520249666191209143465826389160901899407993038005468465275323287815688610119168059450608807675799866811464348693987794671829477203735691550399614668893932544327367025134823067098539397070702989723269012295306057942864413308903384410575135371981396171308440592944622261330365618292394588148424445022515696104862482399445322599506204870286888735884540254887461095516011533599924126008874242574232974731417645417073146497273758052627906340757522480369598735944499360326026507687626220937632530071132712721295939328169624121487918878640936243749002003517480068578895121164183927466193226546976524544054162898969922918672365132329691957567952097528343531001612393076767320514261213684171853451341640131430343787077559556424164033689563356009037277666977020064115632775750622875902536057507889730556258135685931841374871316897778854635192646868524475248587154767548742815227574802135917468637826539868122419959404334612459484701573820288782816639721400433920087797791988245401312543328114969475851426543746363932384083694889681885122040843994004582312068867115757560682382230240098310197134288381570825272151828773588691970862292627775618890051795546665443112177809517511777693790436072903727718751261048719651163132834651500483836009879927385680774519508325520338712745714023066174409775666980589375734611367043430615375141113169770526185127173943475996579067461205283640797450948200884336656773013929300989519793314368182043544635376523841253376015073285776718604547925347499886049820070386595819590172275022557794533908452777510896900146677515870369888719702463467099982183055705481338425252808278512220400743123810257719891211783523008847253514870567300826743865871378813135622519688827910410561739367050987418925343294483372086525293722607750017748056292606521867075847779439697721622564804337785561296514801354403313669884112059039278716354588712706371765959092090209707528637555149509399494005384707102869963871739468704966880622211098494564641379053330229666303080018048388548059208900741321107300264202680477249748616906119844968374952720404784550528530079590075817992007384723937953811015988496666638786314068258952289997143979253759396316456883766381537321777661518763417872498838396715844490191676988076302498300498299781546804753626581074635414126187568436629040993607293416644786376504679287789338940509108858071347646646264358390748973439244477585532506595626815617501605122403861853268786592187755701830939244474303903800707258299786974812892653815452806566058667514408165943855873050999281554021964411942517205144167131167273780412808796839952713194527089738512350130931476037488700920081808875291252165828497017043395083089013052612061356897305280479388789645678876785311584920924082831340631882288596781180186836821342595337976162834711523193989847731663318631800625429210964972875695750029671202109399110195671440736004574122819089189143623387687037587531990234906615069713182177223989990022121238401843701735130275142897452588720487918492161560388014808024260752751214267588056439999393643541668641011123315524262789204347818449707367589547916480309770343514781235209874252837821161006966178327059818514400522947132133415648453626776582119713662082541388883068531102921461043344647233189299945346797479591226868937604110722191605164415216510865275745687302907873467887141117582143089105791629043707781484679064394801326034785300496887478984109905577598181943803805649916714240811582454422443075443838614163641180850991099598774947157763886673859380409133390437137647566387751170571361637428394253926451443313756941285600732671258788794479229568558156929637585897387928342978713863370263009750282281358593291846411037194183796073127400354365730625552529971242163633221954795426000869614306086852701088546087066742999711489837429224359609017900575823590198395323602873877075712077469033647700615818325667341865934082625093675504884141817534255599672414452736452954315350926180694750435473517067882282572373599791894209781163996684456244815483482468628663098045569308689035827048364269648184210106212970986253485021950115042926470313222517390993855458247315446450457840866362735634743203837752819238294944794069577157792178021895643567853535529869990547227229991725592176323101644996128018287941718956690846514347711415302017233815467327886843448720294725172688293062685703236967564742399902176348315895172732411198282634646919608546498253432358281181186881192423982588818240674004643727435619838728245844411403976477186801182756916532958218868126799812343658686409719519974813910728901218230551671194242426630318284180738294710779464099439123570804803633681765984638630030030533879818975675862492825430955761345871994537657245345860907741279211825521614663835385566606544678949062125059462344196220123760508472776404575807876015323452484953521044801494455224897149004415655242418834708156108037213112991090144908667388264801725297841873162900653860390514197647608841107281413376605694380083459793737033440050184319384095085133909451375325266907000360385330808162863666457506543279714123259917037322595747268561622100136607953852912237272469808882048071093395948801177663005482587327579100080429025559533093735022372285177195058846696654859905097086713324273693088345067026021307477082677625475335900701907290752738966231047022486726287605228437221663052394844876587714057984128532729639752904203392687972056646730432051919939008520525804816218906059001898817169196208803865167555918114448119807115668892177821441135026417095075114612729377463518315708982051738732495572406746481361044484685292816595129108190800086467445779204608064520470675989988371261215415988305620635164597286182573883834067275329587779026767720929857391418012959910426118580936589044351458712935698313136107676951516997337300196174154179437742811140964619203283589563210135259615119777290179520350590950163961119254309516732727181628980932710229286253143914145846310977158734172182266871203422473282069760269789882661379455845076222273297392932850219887834059331727420764869239792453477889170449888474835740762274905823398921038035858610799695292114775546669383941757486851374909898550157876549875274402079591649349672866540661652586212139162770792152129473807008929747302126892309601776248997489710942869678456840229004733724310724423432441551296355320560334424758015466228085617212994028028416655171642305660512539968454647991427894669364285209159436257812509687008204998529446029462680483971724091139112061221099389762418064604042811506653072543688358051688073120633914361805538129144542055653838531201314033443008157831302287246273574529518214765123285144401251233716807882209721209404671611637735335584590565764516326988003115981647643564942987854622090469591540233777346482725401199459874809218209779919950662825866671573483654411574842962034761177025725658087749192249110854390577949786138913280016154939203056704167243880949781153058194204928299534449408730529890228506817715150043288824341196215473956314208742680723096397136386480449075678337976671546041804565845302441928363589717502424180358440552595164946385371718120493473997013073437039252651157592150510782871134042240276635669301421756669732302690376311691806465321309131701114752774404076806952409066263548208799891860149380059005816975635089902322996345118693394847936526498382923783662442997779191818972225037751996208221786713947118419252512726403035458607389362746350897296629732134561438648000224491586912434951079602739385830957180836796811784987777936220938018515265834423424543250831301841117893414073976034233771987301766527549407839462837832316815821192747336888149754321510227935839431513980345026047809353574553898400746444235808805324734942146723407788077155353911700154236881934202217823626689006591647687304729687837535011266780894368003922573322236750442840821723401424110775088895855499795890481364024564105846100544308450929709197935594055049019659430517575996240814981929460852922710388636762204792613115316985342904288081163601066747066484116540092888151020520032418635574139287315618499592407553842613687621329312508851008635729558509046771190301684266623312862794226566204130189730917393150416791865672700336189084298081918749234195641586070953454129581696771940622270121623080227748794654642796365519928471654011230397236205462246990133577878174191734171775450075573317240381986727839490785921889493072312339159533278221151566403247143811567091992183423924555888459095720644212779038882646009294371032728397110570190011234042835801238166396672503574283808827758422209956482240508741713113310825224578397370318356846572457008524826648042068927879405751934547993783006339465599558252500121484274516798129584029287061567664575221482580258060040156604342399792097269971482786223038515282986202516062313482721900853051496635926156485410179162817771708926949969210605034730648602984652520755635720709903941700123663289571993571578260356906909273746181592781850690160974252874223171282427122408319553508409326305032121624688478648292460910088219002346979774711444801570084963421591590786208085198569263042472215089236541457313035119214024266041805001608521032368597054258004053983516564057377812334461569892411146583730655711910794103198513497570814846867943330922003035673281837359484570833410574961933861595905813518911795163617294701286361180125415653177791420213474679845125592646177501187166515893303485488792883065689953258395595252902554616604064556627604739979848946886823026807882722861995409700884420611221458466476726293741396916950701173903839072478120608015753220089224010574710430023910203533028823654920740865535291602900183503514108905641175434489889810198981441540951938212785090562043861550731753020776495566075394489529310524086089583683192761752965430172368549325428520226493264019185565995782872261448550414803434023539973377567848519170347474979909302597388568348184592199613310881153237234851074637520432171818445303991870247069398483774378395048225684888428418915258556691128265619392589664278295538650530550425410796407226827333929739897195765673119286141444391532600064624250671460100591308629825413604048467459381549806504595534472291933747170479820833512196990689384787905907711757170382962323411718006037318513141368795299172541508503321336585411598176555178786999825039453206840749660268965650746044977974769071315262068959561790649441150712471579001887995264240888269224477985780506014053987591565902158093514217098028287273219514330627532140234172495164227935237131955299984781587571514251619147802601219885075805714804434591203852628500302119220988652359756155945323673973423598116838776161032988213493491115694169821592331794954740740204731668501511061469632662870298779168023067230145374913969547896212800975884673226085955541250624532882004486250249797450714745123136404109502973143605797167024964880641174721865139657204233786138588905877132223162354668863211640296822126719506306951799317833141789660090746804086219197085580215499955662555550890515521502266927164496877342279276532395015927257210915780387188646858950848956941135997982336098621354578775435085333641445496149369336622572767680787177085555905562743779574433929902130384512469959736707325295787913338281955604478932523264091423323685759123268488967857430274839942430596675567247844322545321891559088373977330405296910224964497910221409982319245494747519836792905117284834258018419291120170916197783153974625628027322945901974876976602955514041582777655240314001495206210088598830877138464913277052292849682748149587117668009617357126559558078850338061600707238442695614774465033041037514283242065723351900975161602591058086174133045465687942443096034045455740789555323364094433123009031930735393604987343209574434228773082242581505658357394878944101413013730932881175529048285552138370896786190084408887237483523370409996983216548761906978026841811730644879354587447692806795169856979246524231343884238801123359030750138353379728630536321038679064280458888550071713832271295800870168338815658395950137078497170850251584647086652105407681518716925752579191256763790910291134998661867478226377349679486903929296965565963626919367162582571919503822736059321825061307997576765468809488461218309890309404115971763373143103216168253774332597870510856601099022194520552515893918198412755039445067118013279452420821962175178017571572929351486771596251368104583119012483486115976973837616604246741070524787197091947240409113411162732152971451054220456850547187254217340153312049416101036729317068376596720474888645687777003790530997862996561309206466027185228128080078792440988571257296028482246853846113914844681045987219731622150930138299306466740831169849127472858682575203412121911295871225952774377462938747814025474484197132825606479905894692977777383704977374646787653917878746950144195271086803143738953868323059657135855535440242035335174115819527883997140290380866935267232434729912420312996073255680334193889499173562456076586988509112423402017041505544818816212243924008109132090225228785001901946156566440540779432303218856321332922880650944338451522074853526649986199665903383712604982550528544531852386501114657117403371764585209523027748672463258062222337433207437731435223329250550641266020915764936292566024592329298173724940686788962963455634359461281001994413339178961251578452716580649407837708931076931997296469084992209502713985724255707111439804185815126705109818501454360184198227629703656928324800571900054399397073805491957584145451800581569792162247788586171879164522971966024201311263801888780646972064225706919587806304669086918198931894337323447805382910115563254593063672477809884501642274264188984505768820042062030826861785655164803015268926891363929373434948583758577295299890427314099028733356113286710991091775177165982536420307465490632885271591487417037987665807509072832913225229149058352971275794458198433895849233953807581923779300031269261830353200918710842890900642877746669487746432663794312062459806685995807000601732961573153593821120260996036601249511658072949350905922376511928250093292152261810034141871265264683389160129900266360276793926968928204045128240167076197157249661283721313328390232395605473565950888708827608454311450840690337939625278474096136118019535984276816882894460383618734484231277944836330088867449642280059561348070690751207619152306036111169514325731283152648111820551657830575334340629070169669612173232915712610743543612628605588103917977148859642806615611531904833478701729721317790986963082034096908898240736701478772790706193989134606718590299320934811262918071635747398358127821181193454125430589572831472473266818442457601850344160973216892083768794849163769245453208977971369755373486920607045988007177138649133888429627133562942662661566170880948809662871911766369293040932134478241078027532751862704637242172771643373316867242423682401880181552211126822699955828763847675485628184513922622272192498467998262484507352037207045105247925837124835366487650158832218021798128552932044929613752703988910387466787104730355715881817182418819258010313556049684804135906852924289994402476949891366628930773241563279083996738123540054977175158833769205792755972553881059161652416959739021049249837588687325322653857190939690335974874809600185901802427734083884719749584883462819832728751152738727791242611692175408766937502209909076776723867605882349191537610865404331395330806725963085739386640700046588991983795984334990082176628730486231523614720400408057965419962870214029243164927429169861857745460602815917442550811889167473009413121474013942694461476827602510550954868990328825579264645052969464131849211267317403703390533611388103366784990813246752045425953395870930700816165139129049863462815885800721052081709634673261295468068765457095657044893973087223224637451630462785269008872160998934491021374679825520816476335106804631413725026954929048181077236474992643761563842244829418247739057847010089445101535140530421052498946240252167650905022823913866015676562287417131573948749166194040525725428880042626066068612026743283693130015691315714384921478855917073973452886709341091298135694926772672214535524714347416695309759526984499316938678476670297661188774990635724861399340973686924402794373603513735259827639451014759003893322091777587837686431596169144168549852310910112561150681865415222601166168888154951598744654058149330408406072647989584308003834507662731843509933680478343173483314790731155888964059738041325249957469892168198976608033448410286821223703403192034921334293874004666043915351136281666073026391644675496244283937634542750249935717297107365298450596692889543281499214892928683750534312851278088298001807415160226455844472315002698606130556874056360678751927891449997078096898798118686051582002837542717890857534587808003536780017010233411681243643794193947458605855281028272275506974628608660587926136585919620424881260012297146396073300476239373954783159214388151006761121275998784486000012339466276776461828047354161065895957604438193867796910416016615031559797374840687770605702291724814326907459692730070873568964314293172723399725488658633359600194099731336478368053242026544629187566164474582742141573510130650452962313271709721937440780618585371312809853475053595812740744995675312861295583665868527175047360503760298931338927651937662989926855156330056789069568266355226995593951384555897131768767503486528506884744005442403783351453839874162990916192985190913843543356754518666638853821426770536212281730218831143211344430879554996371622797568547790831048832472257696108690013969264118479347243113489540074943824854770783240564415946031900156890737981377031045773311707062176688534527492570069279696782472235417068944442118924754760292255908556697146717209700952494561328406059480196828778535525357048125701521346630247668787478986651668013153774853605231889138713342757998336251990926972196008527188304254814082439260598050776867294933955284397399585917985196251658115579475140517846881039368577087499940823076390661516822471627481100217551749391325669861421639702007731576952734717128221850807008461267087845093101129173254865970032283753724689335960487522173934323922055873626587310770867810498039807450382290494050541285200478586424507410031974868063629543567810466188758229794247115379687055373648079822037541799034393886336577686408321523772478069369546722408408725752068835694973020187142970370813392412474978444491572408277281165060583598233234214647719729631781403643135715620056503402973264707291667125378814153176700299350812676979646019161375924698089791658864481013129319733912403394649474593351397055901552137573387801297758080136423659743150732476668417372681218477950413871924383804450040561354533086729366453775859219798578897832675949487270207279195101500943542180434673160020079999036196050344503570675888100593179856396193136516357170329036962701457718993694564910753473419180292299187977338538072038549750057787244227198460970588770353796714449661153936842941083810475091897142088465826211393227107967021599163055761850689969685692591589501687579092517770315285979933903150785668454440024282146390381885541947817756337015638752468646035147904588250253810296188772149252833569015799308616268456337044488604980627419917425798084094083305870136876549657871695163343001241836148525151596516411065624461326483344739867027869457337606198874836732576661888365070526037027467390990195118833017467476654995561869208485993029805477041889017784378600694332824388240844591171362721795831228955562080886932861965886765769943002852577136047236645769006423246618333286565788894598130558350708827547544383821788045684065446004590956139279312839871856535721480278915422343398225520645156622773344626446094484743101218695570473943862271088909842836443958832789207823707847363493145189072237694576272550142179525105443343221203705361436934895661973531264740985244546155920613000064016086369255985516963230084888700932061576890999218039214926208268211784070512999723768388081605681867580544705891835909578526682830405354868400438335278442286321251651253138799026162749138790765637020036415235801399298918978012733726981737829343616839350547505178264256572411200001708722325188631272789594353406142587726013753540478789874150888653673645884534420566767139496595311645568533346913747951452726220140634910006825155907859848214830532239033367434513917051689108039173713321529269276844297657756430942319081620802954942008436781143561587673833066611936856894255404999301106918150477773956094954328297044707214689498526889593753585749054361084275143327312119109192510434393515788510310385233157273195495834206824841402595938825430668571755556808633659298773420583214989838117868975904432738761798963490966898687255977537114218595083675773758521818280254312774763677447965018051964201163540510326146756124777488952497562724876739430010762336955349124359508715150584520271122223744793279269074245721989269707140892123255348889594347121515451808829936544839704631404593434158688788855637064116576360405384554575422980011968667545063983879547231353726812402169277556090672236214260516233581811052131453895878931117089065121166748182833565881997637324953525635262213003313700861803843673095257951519912810922001304431685209269257466625831148903475471454151474279170470383440824764065536344566734808535868224224435078170910353059114890765439168944593917523553992071451550996006233193383840751586999841868657215758319295733111517828696016853709614069382309055186027621971257152116533679943508894983989307358555272382193721414831155298908749577946229113529171493718283378342208393024074672678932827484634455398801086898612965580219976538681406551486153548098931578327951873630463601758609171848602854093839461199854628873754698040876732105746937682064955098670254058474464722130078185704495231810246792374321441351767429306449145919770842771371804479140961586858193055536432706292405297824975514084501656111540156808961395403730647903036632935360714401246928437409199078076464857061423387164552406870662060431867720849881711456976768080316918420973027759737840000877294257450034265849943261255676016027656691730098485290937372807057513122935188957707733418045735551639039820375991401189271230495732649386058946662919266711297766039796655925091326487922626177980392285592254179681698156261376537244179622113468167623351826795674811823313318086838645910171980989035397496406265463869607440578555080277178138917451739919678830166020376615186002116943393913792476430489846846614024318905894923549167684720298155744210599650574576152070219285598391053573769783857760194229068600585839881490372961892001323241148230847995819680975743018692642668422260510602438697953465053272113619623691298366714603113729839007387311116467973216636968685003105678668892289239417098507146547702857261233272403552994897275817523950912855677851203941726235743334095984636186325558271650626255829182250367871193142966329610524688506509424934770683418394813155700126110570159862491048406271087783276440038483362032793745445234262545716821254104286866477884895313177210617046959228386822882729761490598667046414473449717600885124823738899357154329491551576513916255935665900409153142577312067917783666335717766565220051393641872371070045331182036086139150967777999823227052427960654775655780776223262525026562034568667980897530994662929992691637023591589401955508686882540520611396953281589354324576358995375326286981626563360045571083170960779782778040221860336373101370109634594992833545095762244371399522559770956693424519049169974901718923729390940474112682724085881511757466300197666539384474099394032036402796150551021497637360537554447235782456537410629893393952783574144821855052215259888931673538517026411421232531348675649320506123422377711505663147086155652759639926212828501585215817535551029998840699584153553039053371433557679299192560014897009741501515206891411275237368692247140160380268985288616128208189295477868034999764533428388281412570049949506082111915554806482610986964927087637748381949772842544667329725096065071802535026486349911867901787147216272493340315100402255417661952150878944357326651603506619377787566600957552953777205732188119436687237032898811147345336361631709258518011592120875221825776185640961393254896781030807712511242677946319032218629230448632800565111526487440955616528082541506427887977476041054809112878847605208089367457356415620583469271951605699139477644804043359220081540198342098436328531556512701569899751117814991004099563412595760125184158499299510701196596970139159858958259617136139019811228873002076100290967428130351830036711316212972805902623242347423448935828698527483425260107357727933493502625837716494210876515402545122434015131230450122581932140867619851400953383908822223782509368875403680241419966016969192567930575892237955094766305639121181877092939465539177288656488448275607677734398733489393571538544403984762977539311563227915560069016494261703637708671920971163052620222016431425695088291953981759990599798941654552005109820313086045057850052022941976157977584027259840593162559401878492997672077896008640491789157171402452480290072312168231660428224467005745881178230280905614923545926339371266053021032291598480898475112576299124486291976635767982495745221123889887324202052016189238528380042481051884657902817588004702617686081712373989860009787073072683772207439303231784470569677688969211676263280572417619491215357096579921520778244293645216439199459259974110319971841280289407086331332871536780033800952120824184267456882614054552415029888028410021805722593080630848525041227736948511699665646657946904074655735353626187392202275243981771956751396595481909936125721599223561884314852317615839626658478785711369663838110883721204569868976918937017454933122048922162588087019031711203434872041723021061495976870519886693651044761590980636039541233611309748922601725809646624666692864293311357934039534873033951154368334486526934973128696164636865469922358430871205412135268147744701015150943547940222129635888755877287031350715783152096146931177649060147175298104122055217285142941164693680814548936600417522588088506009142094183422459303655030498978078268900309877557909423955795593105744865616347191801892412151696203328892281129774985367303453495710281124919390121663667557416742361236641597069294548110648035594552484986654799619526014034347188613675798417820632623418610786340100112091376630208812904489958147317738732194189074111329508535326870661332521674035312851574067968153983301463776033679282766470699948573598056101292407689046160421414765883195784400899125977127388757264920456005601506718777073453288110615027194409141092353319041699346923992189617200581915888597134797831402959159443517179850319408893520722078646394542442993164456488481357590012293397922397040632478110424571687315107613066975317902203766106288869819122234328254729968036383967745758623281760148036192865591525642690223597965294219353229087684126297324626270395878026651506239059204119355322583565158095182346157899558128838835790724947675582585810769141560503371924193069163567649848410656131552111689803640409780610708972220936382540635927752736424528004419300649749950646172218485027985940778300481692900877874004766898320652369051149365084116100047647459885255165396770880159079594689866578484428270856293130033401702259048037088355193824954541792087016259117792314509839886743943836134622264352642204170777918011828939099169653009068527017867819142772181100468918132548469872798880560154530982039871296537775141214499796470683073521601314484213744569639083242157396063318469397376638254279217837604913327293570976342333276932692031132101030751328184208692670091705096669635077462764277400304826378583538869374926624621215356605678065790807223238802046335391947176802615548924497709430017585584978340150446895590063073211951014795854396309897799139581432056839448587850675135759825918215630581881784841071597039946999371587780629653777665002958543020804849545519006276291556173497648557289172617825320404838147244312413737244900089889001652895360000783804547809877994030808790632351218007333198312808094134517483675147928376027541540518196727539398155852449147544581160656183158599270376368914097663983437485334876834759057837403068222820511317942410172918177433642312547068395555084992553407636259037264207314341953827533168010842742618784620698495615192835867967599659775211862329420435566837409162920900455254141890625663461560356148024747009221784167463314961528489479879476973147892847821300623964825742784562169230019780973419498956695683763519532554725546716380913132431928295649225484920011580657658601549196553190079869247038260430437260330801284668361047280501978250023194038380756405555210089968139789417773507926964873952710520306368417178999624619691901120864060787060405078219607531574434256633603682408577098695963993638834110793484540189803070948264643771331567976525483350107684938117329466474904013358065603786861502164704113897167221220487081177282268993538135929920897532594034606233343802288137912193268042673688785281818037098750592809813650389910550459542917239824127436011811866725385421424460021994569704262226667992182510627394143267382572411073151283651497495862787604530496866217550817200714928283902480203639021858909945608102074246097431440773350756876614770249200957643075019185986296635984541196669178336817476214256306336491058914920072999236939175261017228405153966896632087778204999239380811756025529327618668728230880386416524796232576273664278916440258848686179284945629147136887376182756988066008323818862869491034060634088570565738146862173361511673425090217904248731639846063997298768581506503065633305401376371604887067487651829979131779778816506565096303965216719999489967071214631651698436716686098819973105000194998079144320978624422202419465952287376322937883328586387900095643580861272999511023889273399927579729583182076629929088763876344374003957825757062644718705808872417815687805056443828462524209582981181914639265038738413282251620289794991692824075315193371859229331661946489556452120899643707076224101667171467795591710503011073766231325347117993680457090442945001468152400723188218088873974939492912476850064603590165911839602328013070177004559890175316366944151979769647948714861387377724209059922320211145240002686527963710706364656471995495664074779352598864612399511994065750725566079043291678452383180186292779149268438342108050548442495492131481462228378097226132341905968095866821168178642216480112998365469822053856617365101419377049504382463245129793748364314783359577542089733044885484147700735611846701414211827041870097175963781359800324370509767250261394517645183870293880295178696758797282040210065316465327764462513399456305667860767225170052840334735649793927529971193914312707240241936601208239465655829472704041495997399614428213999812488082874997611926983143651659666257557375744995588610437831800050083235498075358679587304125650783614004469038113852894963070338164672769015885985090210383585583620905055109895277701761967500273056082759743053498214624027331903057083723734604144854089250044399543560342854710976442312184354550426331144407744287222997952586566799147160262375017024495109771648366453197676303098887492856298896217698513490951968497381274375656199562057517504002387326699855250666321815800823405029686396372111835640244791641887706375904866575974073270509452216378807625749518356996726353593644151007253626477457507552271147679955905729377846436386043307322759764135251065771544160700141884193897399929362677364041489049348508793750393638231372983838022847929700361679775234432906912942276397691840100509754685035629772118061525727817487878837176465316038856535733866490852283485707543039647115122221172724434057083750015730853262929552481692384919441179506820091998892684461976254785538715775031234395803511077910012119333439995976839365699883451719298555881699837806407233731036508161547720576519050202940103752915417379369599648675975480946372482534826261833735717666254732028461768485503817639585290495715017562518833113693561790000522723584173810707044481632739740632680951296240206985842119958813308129206955764436523031616214722519627999256028892427063260571391273933654678173591656654308474170832561491741831289759038955337466180542387035739035086268336502154793949143318840155227341520089632121720981919069345810518090979965154899391724659915524661780219947276462369680223865345211859698799335824002120149050639203652114129729028778458637307728478632697048820687397094059961168886002670724492416176437196842186263398104074028066489672734702743203445044227660581378396886450671615699763511501863175127121108062690425180243661984214711968055450562658948850521338669046699792161348729277577598647850002032275205725881982917637061968476632095547097492873093444915054337973631919224060849268715415956403894022892381048920961731337740755534255083350869256338737109983843793733654834811041045714712516962496573634230349235489136702711084763535973419460675173676246418428998886306275642982757484922724330204422991214943236478047077275969153380428776014720443931993004203233857937819818702997587234220509512812358926559189838589394485666226256189941786058180901013286700445420353777488257936554584415951197759333207826084979857660642906709082960279774306842946569581335907837455024539906049857634961424353496993850451992822948055526677659474494282216833099527528704821508439212438780685340219283054268165775052782931017445387566681104970282324482259219543670640192759572162150300798484970431732376534057140542351023448231207324572561931120804256793732483126580333725750799431466486408309852727118327610162732934147225188855542424161375954417216842274268833921098783585771758483591964618022980885093178389028645528023150205277538624386231673465924657913087707609980118772252125776780809176600026795381160325723224712924338933663793623571865938486955134701006252698028639481827306302112194978285102293334612893532990569624371364503755675991328761103628605572138541711284849683668744635286340085534181520504957015223997769644154937714462367495225352090796454426170837218136895195520840086903699640846270035600028502789171781754650084266001876974170981565227506604401665843536931311352623055403690020424469826658787057037207389342585236867416437388743612408603081213252099047109301216456579809208507514917333676715641562945307755501321447383921814396413521638282331341877782114075111425240264619681705113708197016908889972033843831489421833661469759117180466962197532961507472265665078001218930595748163429616391531135773124182192801267580894655182921517115181618333741961811869680820856963798867608624302727285031050705848621649533630515476782731402260181600095772421373320125343359780139801199995286370926757408139885933572300196907779056528672738739411554329380609931791164252133154105286445589084322779488161557760400254572696913781543513388394665138327268058212376261550264590195763788118839575540463761219892663989616454630485140241846197432946035941409797278575488840818897608534353548713902573499276798677708055500312466647907200146516004144913575348464971353289436511396405112179622053106488245064307716438413046700223632518227671056677464452771695749773761987290968246567617955282795828476037413391042182221793422603652022390188139950225566011938597598606358469277972444196305286114446424008003593146279257145111410951362379230751887949983438165953985027920360460801668371980283601981669613166594527283406083227285892913937559837981789454917063618821707083933495111725607968217569195318167695564960130379346160606886288344469775872853930683181295146140729335789029426993993647821947927149852563524021248856491342979161433252604454126953903204171487445231610083812431441929267208590919326081135806161361880604812613554849233713767386529228379203992502148625197313616721108131577464444007158965588732557782552859786314644839492395098403761807275312031804342842450007943184865903726575815895457797319759239495557261985335037210918849307657315906760349698885383706269505764718976155319635063594764147616814487149501947654549726246456086114125369729159438208591877786519147494066876364494348869447295745884533776588252956140747344228810989782609921374242361805701136156948082989755763113025487224131358528807993693427554483370493527123680033730787065843379295856820635991263387034222941323699233828646819486558323281700017704504277859261487134299458206316753049215523398702219226451361364175119326385915806687779154903441522354896944338882269025797749892226144383312768978446421437984945914545613959483806789317218756424746655157187269636882183901072386339722200686134056644649849867764921963514431470310459074588234220776894056473462107052736575167205413609584880655482193605263066568279640839058910862543261478087856018971504278716030593430855204203497732725897177092083315749110215040786689270661792088265189898369678163561473432068662438679371850721284450219281420085259911764622447781060948130503652221939577310409312886362403737792124311514141857097450947856974025911869792945850552311262119971104349486740822917656060611777887388172673642640095467168864760549332102895468620855851436994432099570013668439521606064410664886137841509975926833539894728500334133028746722857304503714310881211782609676891656741225893852237778142700203262434363782627817888371704183926593285102013237502149351500377081573352944765321117652857252770066546881749644242692633774353268243811165226558261538188230273866419937384067760917728671957486569512538743419457769374345023202660011140036466379163168997643681023733186279384215186159484171631182836024058405788993787269399545053108811651362121831216850118634855351845942027864756659806222333469958790765796911298813876255580880901252411238770580592818175893381890070089197470000686829605501341695871143165757712339485046134435897858680781291048015386134593265199331622240296237875993726099554554425863560515317399159829825890799972890610653708286290332646358569565904746966469602229473930508158193200284456296717137374591410307771984545998731124554463737899259708232166130249670978902493571536406387532446812649278105478399129214312646072936597435794647237887272139548902946337502240985366954041984166827029702538979365081737477224424424150173975597796331810211344513598620572505278647868309814824670348419305782558146682738600610746068020104047692368822720842250748488788651018248571756847461723380596785807705334013421135919795756338392049922712946822944034190609878413423991750920668805179012113222581845036170296194556377595936085011042197711099921189163121857014121598116258185554494988379300302141041544465250773092896615084066153460482931443572344326266245053071957004872199694500450424387295232793345506808312692655023552445493923882663251848824599988399120294390524732912969761922517456734475234184213298728861973562339089679592618335104654264485028635835978250448157615487218660003247435962382462770063435906700630964333950062461090623897115474600645002362590932115146807050744389398164024696513438662553237134727618435649687445457792322218605165206888264226790280800972081427914129676439794255104792383067627517850394860767879504134961445338228357484870110045294051094632167305442953855251656071141928138878046520342534311125619697334317935720667182942400819174682074149953257937807786369499555169906121694659127904837477419708015874973696773751872953540257915765960140424979737672532321746427584015848329781897887295337380955604221315079290864649175543721543323686173892875533276391652800770428473328944635081856750259570595849491920745988448005080217502376859506162795629883033002503985162220106828998738100059008469311070983677494150587233360739362560993305789037061776589267069389407650441598222760282783648481939718496552267861345910308933374928072361897443981665742313638662115892608272900711776735459719805533566397616999605617830818468838151991809635342024049662315011839850975844888601514620633960018480199572915648762591471629580208684274153275121423349805755039440942796807536086669145413866099959681407056821352274016264606193807769719574084692983315404645640209604642591451591376523029759655786729070047600597396695529614128242850206377495465464209655736309226037691222453524664615365015777683356214837839886733402137763783040999730898039766354958248456225727972110291137584663671748892995536682085184655903519083832594539083164661514963157791127880289274008115014902505589333822042621294300003284510402573051699364836929867464485031842995776446102007192849593151267187445277903067802084255501790937327659440555401846163269197604951325285659743894094631315837294645880155930889597487872421711255885338531740528640459597798538270166043837035283059212983138208533378729168897030503251310482830587675616811275942755321692297694751778555847460102757252150457425139208599150805556354546518414185645871579809023702896004895832184947664942625057150208078263869232748107219487181384264326474730055531827947944931993285390215243808246210684426192004018706553571201920890746515106005059770869132063374539763488771587762807212248731076832119329504935075632966342628829341856931360641543200762938823173649855847367333267702597375069694100338380775357259784513051001457127694838947941265714339981713352944683597721980993225801584842898855314027197158688649704100529296114372652712530675547800210734627951063562403675049379113732507595472280143266430002314403082698751692120276143485847903860558800081178449578121298988639458642323583884868817671534608494917513833279765069832848811848790367021409010007355563715293822922112238189597449519163422749592325504591953468871005195806829046126063093269384698546873766426391407168408551860330704169492419157935120477622647270194330837392223000441792709063810814017662913149322881549578294238875902381904090538553396918560408496630020831751768174074398990162927281412632390068331074004573224175531731197259386201856351924528138714977027713989327435728518279048279654520662605109697337122598414930264128626519175182066661237278674377022065598064291754524030860038280821113534245651137623355274717907639988366568085733996097092216760133019354644050961778585367764549658687819474005659842283710661201745080347350924196071956119825673654468537603763453988237837518692392938146288823396217314330094118692009379814649332228472008296188227426531657833376657165349194167174600067432382060135292765921230300917720641968132825483931091105191540167203455733675198684987166147887137838716623958656983434426518031426731644727774078120149598490891244509548508817074272403950101164755503395952851324278296069865738877865464820259742901471497366423720779834250427691988885596747121666282872664780148926478711759407305038195803862378421923794044200581684082349744624844490931241444646997201093208320287969288744044841745607693019568707787026375992276518984352028502920766115621491268557337132405976689610688646887564883312357953307529332600923332318907833184223860647627824985724034814243229417459123660950333245280454653072552049265678510198431671974563990575399681488841565618721316659249626395456495842291830533101592348814953445604475711713476865915042133925295775909952317303593337386842207991408315509135448199125719471084164823098381099849842320565650510082430790576559549743739967386425541605880128590451725999727743074980096998349630413723892529094016078566321299139973791220048728794416048735609849698573548973568899347833655310437166122416428849607981869986189404039020076614265183159775061844176913825569039702458158451129049706598570580527455000400551082725552351260004945053215072271353973172985401180027156299229715844487078366039822569595202751151596656203265048913346369832021480872289357208577972661761290776924982685689033051250129075104440094253384831607723273320833505392571177001460074363185073398028793440334033898405268384810245629203565232800781643568312469279208603547838267329906627048298489807660542376316414335547093081513143776884580075223592315639001422965954171214098811263415660478341467432138902303736204993829070746171037451313781296595974218109140219264231133050425939630855946722459575514004197215461073338104712367573158838895040930982987961789495602035703693589449891246484200389757872352769061745154961760153330114782314179589761775380361962461070275777126048111951213080102271581209195528904439268091971681886149095039159979541547218837798097429193733165012905154082184108203118256568172935672478755426643692648236273646182318532877653695804600163145877085213538933434400457826595720966923231366639931525665863185690238476020271821085096939033014316713032885202586237304262971715870201521099368731080260867358899658709136384017489233416593227849465137912245723952393576433445261346389371998480022553258809575226297254267879090296953330505419888943561860324786890406797307631278979592356394257957905724768802612025174086968770398328000546452273294154274220454797285773223091485397712833561230290321373292702057106042048604958665437522382704055557587072515295547292864399626679435250837162286048144170196297043222774630682464450215442570491154973207140320060126538390348075173314250767770028331849529961045568012498509402575345061145131645682989435921331901435261454425878204550504569199729070271226307314926131484870871674795981850109031013003231822748259406801221480605502729008837523230893030924061208926946770218119551484459993717101780752186728888381668871472416463115515821620443473741606328921795073543852211108743653433820272121060219137831487278237850110057252741595273791208669103169614247820614787649549104841194819979233107241537816182141135480314938492766085425997848780416786808905759459166943259742374827667185706503219952652409298353846928762503866923615979758379590605770998401429128468470433873829559651113444966705343575982694410495958977033780846201009826263619674838707444849099573250692987329209989738071519725725735944807678982756159148088889079353982824978866811964569009261794392847550695909225883395946224031994990117927128172484983259317506229639324306817428779187393995315774678834185465498186296890651844388779604132796083049533425111504103001439711921642897884073739365553591965989012821611703769881793525787519263916283520726136854488225100554700332769333071022074467738791058684248451176656600451769979782216432146411564459944970787588823978330488250019338916272203583733319556356934028964116725778478212234239515218954944775223722240180209778954749731119657786244626826888741539621438219284481095506295336519678474769946371680167645555840719326786873041993419749497686802606545543918785909710327997814706615086918603660239553526255060463438373102497281638115481953709694844467836952654608465236688690733230609083095907442901277727237176318451755027054769102504717770232608941129209947824222088560767220374271077000711381506939651599560064738595822789898685351768119502726829936517712580100904503013472922979367952809739901611520141325313144921636789077673449559692445965933900967290812448093900924667334782554086617570980306592067787347820069911474957490675630561170739614589780183916485306932454677440263419262890630121545833229032976116537598186276925934305830970474014026741052659636464920437088082569694125212991425683555084067571780237283704050325805836642402973279678912156875406022429360642599803719642100656167098391053454912279113283074908415377026912526781459726061303227392629519858281393430829332523064019020584202809238748334474034415006960937969544959674161670759646807503054913111094677418200091377107871770487346505106050752829520795969427344436059623833111632432308247193143410615904809226504337100648011438996759081783982980510146989249829806531622090367797411698726629674005603623754311868182967004672113221205929581715512296615929860743421046948509454763700493364552087360217262752127213698877487066977311809977993917350026593945653239811386308361726581405340454634003272291896179777893334999266863206853376482776808003226261454403409636409105831565609799508696101568356473778353198380631275554462446196559402242419335112884173996155436464205658166611020076356816382979814161671329768622374592397532885998380294411101021580823053156376612838015418579215407572186325112159370750531481394816314769285809300513360950114293148013652773319159493432555191767784752900161271797161395331931265138559224066525321645160778054231716602895603917597180202716647545802614302648255579501596638416923505709222644871169926961803179372337533095869179440750037883661226106211114196378200155510895460661068506819861587490602456523720030295237554369395389132112677131619527245189158854085400642502336939025465622463385150257673754761014086698245969326089520523098051452144988070664843716597172726250649839325937723190818278676035569755420148587942532748857691609152344966807224518122523011147524874778091437052749559681441803989169222943556528299090040923720896935139710413066404183800121099527370043593882745969275958658790435747642064963620509420411104306643437787184891096734637230596379187613708329746986348985699413888506444719116999825606942904542663239635301507966461601314903047943776815502538151391209098714289860369319088358664556435088898549364024457190050489214999743455966670881135296921759675608079815966539898681128579081970248722703483450954965147433793596288491604391064714235554898603289086978213513248453786183295450613536028827961177739336759112172656680042978972812435160931943360489008781852049110124667656174288250339831988150686612722219027034764685596319022927003699375981830300734089086334900238155741643764431554659423952610973860124107755792010820708504025439077537488195926666526627921289219196897702033229916837562817323102904011688179066005784319392574269896250617856132933478202825267119791683357899796276356071722799923618207610041316122617811217465573638442544222290876344123198633919350230437163202727312966184121571504011679976855460233389938291759693594047608182621286794501933079806766009319922814151815256972241847076623734457884460399649611572049931441077005553425931933055767932068690471073999977528592970114574371581310958401844865326224095144001434450330299897535514257572124101237183461938052865337813573037809860191235937018440971453931078389070509761324160469317407074285286760542604238695320868930734384491825213760141720349612315740964478388357150954917788694980281804083871761684988693557217078776954126696258394617679487533440294890974953918817179254644478140403498713054770027678236976279682860235795705533105923343353449265216980539034355719776982234089014407638128370388850642401437515675738346377213534067622874284342162312740521306013963801586897907790017952863221896822458032050826742605008648645593737080412054071432496533821056127490458267128063447360498514652115866258457200290565538925361031554514847595543772638228298014241126537596574877918014049047488400745821598955806309873375358520127980779722909342781201131510273682636056372949673738587993971017059423667538792148754730031374649890748742731236760968470182029287872323660536872643903437833447884370908619760373864415343362222832473442676167029919515255668733310750415944647289820940515676849389849702910953297218989378867219114184988206195682896157065361660625162793246606001987022277651953154701360929596217774230697666859351968981679997637636573876241802873802074948175498480629573433922697399486383902771898604774112770243791653915421320692363245022922933185304120335679838618989667876348447773213721654908559266964116160338916430879702980320756138239175171709177726510305420780024593658149922971258807367583848296058827708440704116359918900985657338806909953365481551121160540104624011013089735538369538566539696143218561981224766628946388021741972688414309632419327843033094829974902096504267686826811496530764028153624472284295802785139911014347711330571335067398236394413389316070188320762298343333084322864080952307796945594487482715801657879670460311904560272411563479790847795759319935381405045352749950346300150184343991240382195000494796604351890072702592545923273324565768328277370971463824354514300008475633550822189946300373939460859328340120406905685329333104242231407293579320059888008498759893868519214489577648430099526115012679737572142287219339550596039223126988696480825082002269286027196058491848004787819762893553182761042638881467065789062351761205314733282937701679203404115912565137406486661638674197623122356687424464269232942984019988962173992523273013938269129195101182772262013795697982647297117197561634974017983529668011924426056501166780446835645497637544593188063072066773592933452234001313125331453569671573513569181665688874116759380681595206823511669349799740503532886867136290488108912084722284405081645566282426801430431975630977212393304799176792266355017899259653773832280245238615820021223336575005689997152092265797270853706626606617873154177013288749622189628794755863157509917200388932144599164245073568110584535614965311342796063819357291454203661717272823999000215600128924659748801750543766871582450591101114191131181550860679393691091257353714302046297873609989762405601703220676645834743786450178369170207820848509051093650033074290707608049915963146746643291228221863158733346455546889668895782790621455533866888817923133939226976059979156393697244391800801509712979840631214533501472144323688092036668238676583720261056343230531522598906757399535446830054675635267149496792937436231320860952838526957524615669226546221370404661220411874424062683363412389408127527049884247915326445146747700723077414454634573787358728820185646936779771458789816239641736782249162024719395715295911782764940039638031571878463576729987576444567890187183507558833281372923568146428026885473316614021500665310178314332530972597682386160052377960957860512172553270513708563064756454204592372190441311353975031235511343300523928490838546409590940751264227941216730008205627514270327310310501654387225996098725872823407147864403216992452689031906879899971080160729142209578562934277574478855240648299905962537570205544970422506275856955339707494794315672374646322570306675631627809026624238298599642981460864082086690018553628434472499086160305262327046957673147616447524000029256313254761526625291449850060748578252454171618632683589308983623307497729496782226874542187091423111190500689276057898602625008606158760508025484534404086405452934085630733054623661345925598627984710653229994121611664231712862265410512972135527537083407363580421346634185235427721909786127986774156248768927698476051772196656859798288830949061174578507994361171651020088651340856492054839373134945262591143256930368155511042582160629117255141208394711475986212527950898413880921783736588306912403124672061135923279633266945311704946906158911167803374047904987859706421923822598031775744234796015804853760427604654288106030160212499465379081415520846746991206703653749758040175037878799805839715239019908570059170328133795971596619701373947118540535675599139219145236903610518092032875239355865299760265271656129435656727299508244424689455740446798541387606860492178170848937505643483781705100423778172630423228023422566995844592371619905411495924453651025937066597660631761167130083558403406025893633835565401205656951423623948774001064501962484533701536342413047193412430124782784942771630483058236463140187418153814655283361008874948189937380177359385072588594581101297486802580907096162818731717251849074683109932715932382039135460921621097649879177926144132093272201293258947356083174335578380991450879715284003162552455473654075468549315363369917370334272621404529230780898282305437772818861064905219020261767206216331615226373319947186530312376819412769743943532411291117485053187766459074620162766446739351377456351787228955637268352770340381355382838845872630345174218368243396172569904751253974946468676099302371924039814713183828260208126640222155822614334894555545027218050399843356251230598754864972111328354992428237345071602002641362060181955932005191002823849991487007386916767644348196462558552656410947737592558320917515607833823573034863864076834031671795530573683550813008484906059959705502456129448539774570882568606865281544013116535918428287040300727188563209808579743919841965154657985286255384368272960654265338208631315850150934674015690233381407735628133967784932515093535905768438107552397155015780599448594851538599490979196476623970111925382877191655709228511312669641277029734357345458137413387530932092711900063674855275454414486665403795081140687425209121650106113148537185509856824451572865479036433005875755824403089349830250420346011914784921820522818388930719381696242543660333966262929794453543180455010808392709397126501430747836980030725214513074018724784102228938432459819941312094639380217716913381336030112598336170863533979647690237172594687340996681731179285666478168657553172933245199649513562031973829608380067905103527992283089260190235175761109961265442697378193211446856714537191717029040352161064577247043150198610930698919712880912702725812710858499113593965918270552660719225217461431754852855496119130054294913159162522261140939324773982839498725947911358164485489173973067839486321655278519891285311094296535326829248053820223668045692786363054838090737146607223358623100337754491216386391581539890968105942671701838101316403936614140121912327344353292121814058054176501909576355059448702800142166698335041315690137970977536146853904845152132214645053276654411577617032906489719539505691036893899781684538381270689561183516066908492424186823664755886748391607537291246856177783999531403137553415934574220319040293181560396362628021122987859607343753262657189502675366363631556886724958747082438356730570803988007492317918732872573016490197338379397742437326631548711067586834663385633609532251028961920079330960972280520594593265132335417022241758597209120206501239103909907682123533884817132101081256790828503723749804757214278166164701892163199869547682639417857831475715015910938397892184050779155116090568675859691357583961866448269882100082494942637238529368171673933365541688128868216798928119818543743923750193274002043983524326555054683645873520670564234092565627354575122742445494046917164733851880960299382633259519608474476585877056389791192777159611250791262683521767296367734698889610242679550390864844420076565971458262479229364388899332853656146636812102044001534297830825744250014806927995991175300823149099297125501573672199224425941373629024079120835751435897204325062009492938299885270190268270711517289487234314252833590586356390159089185542970758667457424946759268742140390378013154351833616035549861937093796986173589718982618740834865968236971479291486865725760632733866094902116263256985372038084987530962079626197857324749476917667121972020079896468172431310959328449165114152428766418480910016429564081255638200768233049700358542085855397297832008079728102652676103735826809500960504096676888150998069932455698661876484677195300447052971869420209100153031756061092906015858541656105955853972424804863487063117592470381926079011507697767528791592528448928457569989670520846286124712224839570043020492249492785429737917059505276002913487832636749604361415816685945241303947231913536825601268451991497235622846540352268716658272347237268345727774034778967969539573190655396252526219264042116583686650328797837383279829578242241621127977941860287719968658300480312056424397121928115073953962858379473342863692587606810005306403201185403952766435136514554275335973554234140707513074113223719693768017229335314108595552711084331593735677224860621401936818232206655096192982108042114044679675541905719551406125624415285361156443614706249780146065499159520965376034139733653654656025202796051232739209719501641155493572535884661628792578043895233523076196068955591406405896750164367455155319872810469312184660335006131487780657090429086236838106151700905603806120377674549191698756571181598336617885759315353089058246259541888359869205267572403565334121194036951979419442306468821074979410933843907228327209665752003437778331798822558625117898227073289762941490490938515477086635330219708397250802190147958249930208261142845337935233547238152468148168826643914179419067268089490521225731735372835802181532537915720338041520608433402471054360234080560897358423607877194623816057021729291671199927198115267147259506249137724513330502811537044837427969099875505116095750429133311797533604746337506213855780618777249694944618943728325244085128205613111782501317087071721057221158842108984546953088494408664153527342595150362297561999648686471996351430297238569287468377005874372711409120089750873732537866630696066400748839399841098096546213235922090593550858483350513267179558114382433095719817675852319188862972935666153981755397408912623015574831098413785003999793220836780749429214699660538266229745892305199974905812831143543925323936536136043816126769175456561315572122302513403393251160546306038046832049472069667770208757302798123783661963583307015983117021943767974058149889445852647973856585592114678147398528427827551589386372474432244377271418834777796890894817653254691223973553654719294715227936079960466730598413588688524747024896267576969366831203134427240214289918585659566387479126516353944572310525920852899429763796630047296162974805233263461867445393839472239915177097033462254921441902809005103237751849077739036045833846701742215032763560339734939069188952084950642708618624191953863909499419843369293343803660126465790251045412554713073146379361728737448292074128372197812021031078453902254020766772875221855216409780539800075823083697565591179657257689521209889098557024150689216251128172380097038379741487162559589573798505446338468522993896943439652780298908377126263179005255209006309947906903918216852293871524751525057183203361429889663483845379850781434198565843125870923068476318724385680873824252818433332025322652323969003361568936660777480254351260926474238042327782021828630677407680420440859576443013345156154106918839052474861173896953208217829494288646687283524775299012916490280406327253128326982827510169954782855810135300749317586201100929437570850319869778521584349040584541684300608022036852566023782545823847614966252600005131299793099718540276858774648125074972805379075161114155683186500052170925914632715116374081755650037310811556971948248138439526200942134413167602710555439281708510452262112183938873692433008120889305669708193837604708617616083082005210962932082974463603292949526446147567302884777328490950414852601742988110411176182202018960446326874768513771868841793995453016504202346398984942947705076250059662084821549867609648044026891834136246681271378828998106405521447798473771631947188965590696927140482574952588755744515163507207402138038151623349737023277091623062227564526505306678306126324398208180676911682368961099897863942430469112180140625404357168623808394500157324037063350421479982402317857348964403645934286032368966411076273329150128664503824635508067950811617281882121065054516416344752856551607306701870148450545758137122813046720142868622755307201503825207463699810207424948803603027811204464079705194381100932084554822206973742936659482440804253017692297774313009637974779129268121124251954332304654926017070764564138338742821281841920465160459420437548676469997882866689748807544469516793130081423090973825584809351097409926339876697617684180679203463443938777259733740829289045285659763861197406848568861264800181050927333096078256787675514653048954555383467413033792528143904181551219741728805411929757666734108409355842327869422527423749627580593081339301151719040528098197911334390940340779256050991374240765955599751100455339193101396209447786968501953062511784847459834702420971593228115747971906655090788820032974541827541519405269679392297783173758747726961900841629454793752109382411001272170809257140256747496251725851845661561469744967431219611840526427749551511100910300512530597914996152691829682424874487591251447315002015817394448153217547621711901560612615483369103571899895587386442487132277412759959651160039669068292844134219402035052555926617014127313681239972124246255352436352975740495305543401863523785326011664622174081332755255988492066585809059510958928216914752057630895582875870952501316729056367404488930799797643344117611041353238190789028126500487369140332741270626361044482611761199105116127715921561795706875700332048326405382027962740090815139838479976154370618655640119664999457889003760684495319482882503302999074895371095960911799856537561996168634611445019576232193713418159027932437949307029816963201583226916263634394456706258734135392996162154874955945368384766783970938621488212084861764623628554029774337855977735498888432370495071273545846280734450569343997487104067836532788203554809352542426438473896380114996115688241574549116662708360739552508024758975155050700230220362225790440499213052684701524538946691922139204167109649656087234203192011639022136282448110761317705832421334244459769076972146239753862596022022730579171098905233911975907609207528959327468450042715956918373925723274906893758606497182940479877316606391410647074440401108888710663923867337834887826275534288560468418537687204008620877132263742134664642474856616026922016226792537921295754620755748465432227376182387615703266869778011955068465695528228756143876117205936533345163097034113879812755262325503100577385436539240811386355834985646246320195178646168835345561199078649959704586488015098896048160164710735215599373819097908092177299494024570873793572166961863445668682451264531929049655252466654489785228541563479001400486537147209098283864348006953308439681580815228079299572796217366454306556529784691028457217565004860286286152978762173684400691544675857272401449728499190374685794111878604013607141535700273771669533703594003380594149597797602685397376033820543714424445315899599980919177382493273252235393558735362078633683190242947412579943269565779412548910035838824850540296119097807106400330093769138065780841018061224583939604219795384499514039653795698960716267604046011484855247364963500558752409906529643888477111304084617958675432744138333472422373708628569311436261974770599074016682187351538407127529962787180384640030185060791314708431141390267232885988319379034858256183865499981913971201512661749669542388058334200370372445410815752999103979529326407949750867830718199538200984504607803810892973832182656599189353210381611129293043063999156441325552607426190535518783479735223587103639693765570752294077463356567377518228588336191670781038358407605805381633465328633351283429046641675509038752631898790851713058880201685231435088209381444322400610478658938406109550244846689556953694995877436625413595976060132858647284003967053916026997495743995161731607561644381090344629359424293641570007243783472641800252674173046475042198184957421715444765920272711817367808093021782862078812822279469719046296837046593021764143797687302217507108299676524768260621762657768079335080559609027261413101234631985732496943224061801848118482325651984211374200557459290151246087992405155381557664521192578131981279680580064678073722135271025285296342613975382619911649689103716521208224771758144410148095403456736236760939359155709397355370034862230442359191542434335175329612270497987731841259730582427781265095422769995335354911820510229069591964436877400324588029799319198168434474295165850160798290929814030092128769463338551573867612347129216586889640446371610188252527322491559076239780695988575813797256692699272017134891650572767411198234618283290106547085399402447436846791422511183736130122504382994063304000215504797929691016437187335511848160522340377652975526207162044740630648567392893096593887488076279443883989343403628534860534742094856356945234330721835417991252736927296555952912301809980123522641040215855152900592073701180613669069741782515567899397112705567854443239360502174878612778737272619231309029504690036108677703638754890450849766486880521849970770404947442941102765507473314209762043958336143985245140683109958591616179347998058297548287088364715158149508555991171468427751783813584645934661887620456754258222505566770087558135871621956095837158054239156285353964970342755904010933656552188152773058512039192212298917895216594365407102920701399483819693043637105293838813435313960627925319452988643604671469593952815346691203021590269590533362473209123826351360255032373695615281150830922921238422288564889289683889518885838034922474254053840187263117338177718491762609707984321850495724357991167228800827430270528313621619983247930000790627585406300349146042045399156940471870638882384982540455315812805138365830404040918062176997394697195097239096983665299670433325406839436707775698500742727604205135608170534591549831653258384514181485967824213867494564340519588157154129217018191060982422954688933273506611174514936446301084268983205013853432887238920727401484491429198234644880742317495429612115596397591451438025839498887895321043862221173954490327726062825480582595123707665677251689363910166287375905242142723710825230804206785941358043051596675734957435986811401427482834582505862988457512030612917821535636436133224237438922755736848103289426279104237384451832036829872174160070087935199917076935275359154358771409377641343759909607121086699222596562052357265334548264100263837579054436475299463567530092734696387859004983034093033381395045599242752779239429289301776963043544403416478247970324729071543714135851882375749846763991373807412470258744543398775619496176651449398400453749869315071187907124228867085769263053166769380175802293468006182325727463430837911639010687221740646372987122515448888040656681253783934639865230188583776314729583802554389576546768255055006333550746330774731818665604900468242900990573497096645022350863781254594257249982944517632259457762866984347393380684496548015770593981494157715037727544272456381042919374074270133198830653012577811432203622115497172680730203256333949453146552972341037985120243769854446843400108250959488785458698329383210172599944764155144676889772618828997770939972612746404633262295386823899100251940845045180357900760728382595484834849862727144580674794932620776735889209542233246449928799781686700688620787251517852212462828359058107212265674372649454399798129732224498668299873650920993265091072545105849970977786714005681129995628447026302435882189452515265464355649917577028777967272371044945502689511991291891470696543143156271160407071667018262579096409396432636750455404835555568495242964470332538470064252132838294027875800324870054026059344126736698308115722394713755705747835240786044658695047387944748781833531289350570698679690650567236239485084361016049968796360679865679700459574921677898673571134256214150256092310241366515392335086264847569319586351017012765517656304272819620497561799553108101124223728156532298541138401849304630631748988871015210597178221288684947656689874439631078230123961564957461716927191994222943865495192119506119701313546717189610796157731953834680454475761537478753066939858900430260365780881068983851608011046016911798154567553804594145755414935888382441707230803430568662105250280013809944382298301257957053502615740227667975509867000965159881999776185809884980720467156365310201547656152039592189234973992650375950884355038168174423279707249915819847197273975167153456116113593232525936103524120933610469591100394270039826068460387824941385011292816248993210586173781678156204347336786206856811727662813711900977157719029546243043985836484658540795168113797854261153074732276595590233900350809286374294489976255986090565446502710078449269392394600624467605919836881222487391324403449661352428056359873252918487789085153144510227084492674489527710035656596146207642852494557242206056927099412454083890974455178206974136002407030896396928261412071699657446974396353878390255995135009656125337001690575516271231066477870783529040714261820147395057692351407724126030683739884053283048354955553869479401280169252331488981559084414100393295996958281174472716961607386360501007966279079134339483540937414460191358155909803162461347533534634196939780531701062630362920411498970481963290138948650572165482875469763437085618781340596394176027658019335747286160775306168817676305389070248897292222576513856718078159428517960085544317090354387624140828878029151079069120855855893209700050940780910439623893324780238265286196339745280360043011178331178911638414721321094784019471979469756564353966876993433207409180765763578984065924492204453294925627618219178086834163011479565767953799301381832603353398013950950490135805258142949546263949923131444414683433253936366832305768683212502593216609564042879034737689212390320731403457693831373856881337940314864449284714189544854267858071225712081004671599252816144700151428826092060971309376958614435848704707886571327764789159484734339676298542951072871668814605293134608434730075452328095224672185658661118346866146681625034212310143197714346983166098581512216439342012984881209511095775996973028334557666998294367283142709654283866953232390023606730591878245467210583672034853152363250489472240623188570306069209781142753762280880915244304698740834662462071600590197179303701363137712398511558080755570766624520807516040831298136756165766458118649215082272140733583721179140426727450674469425631427238599575661194968808191745238399115079954302572561655755846350270931042772860468927948885551652731652429423464451876565583526602592655466312913229126362211816746517273415963112006094815915432302216083225432960149966216491210525277097664490635385209740240581387943810117982055373790988969123301192690347300828178964022252373237300963733225460506134878741102376761358117920755075215680613984711930982569106797179065855463987680177169689243278400745156843351054712503698508652407512982068157793620525458886662139337705442302255294821944876650875786964948309252796562503311736948441680561899577542232091102812251038890599025846512726859802079985925946630744259478331698723046884698511898276969133141925750642334193396970426903380941146859742930431797626020170319463022894523598735063560865332514384159437603676300699652958615281053920500506438283686597941953144983159110661882516218203111963129942611156969128285171741006894055527668768334720016369699726910536527457991187933010002476357120377911159152184101811222287022790818357929682544983112082124163375868704482690316793589440915491968414732632116974513683440350519089332482815440238217303113950981665808692093326132002988911728661776097778310135494178967855727807933349134795410396511416672183965594521408210074931880936831034013058651065325921160897190897168166574374819771985927337626500220105634853700049391417158745446678373707582736373518326329921806401918629004037529545572975098509055476671465571117904207172785937425932271642749344944114847021600553481122719795152949114629253817926152543739096198477160611805281807799781396566058978656934839009764138993104368834085285788243185519048755848788390848402351648217841376459551958158297618103330673899195369778024022805243830306580254585017323311098586361848879383850844901138151121267736487106380961814939326140475157267507275187038969699899040184845146583459711436272664118157539814327125427467776607314737383686229592652570797645775150105000971087229002742611603235234968273990354188100928454021934998895713344672595205769386273743501031629801775947446378753732587902508199780481946464950663563303994208613143910626889793191374874552812517594870938795553444418352681381706550703616255226218205441980949830632572725687099717447315358558323844944753597018960395032079538643018293275129219357811776631248713272588271041062937726829189016750468751299931245066164756119221879823540871231490412970615064449880281525919536031817198335201605751272890669907739138982324343343139979261630305500986517635175342425379082481398424689221427690565120233327156788620581548630344429718337651973457700140383222495395092732300597979550049856454457285896502087364566701159247198776727436716937429746270200120073633765914664890783080986921806763949643353662413760946443479426683086268248831068269798404210966789900862255000729958113405186945958425443520142269102191115215842850976414665164598790246253776564856401742947607238570515015530619305962064449285581823758368529421109682557105414582185352415832420396325073019042484075188128317374080338410629777567942561240062393597387041760982222383443388999422316524426630367812923843520319575856830075911146727651398738259508723183546827796149417025513180858430272408701630535428017176039522896841827242852437059169116412570449129493518948081292165712833204291765756105822526358030111773120226076443220255342496474534395868699960855924615095321246929566513303906257824508225031540370238247013834927372626310198295137508314928923286281942104227328621881088967092463564777499382549406719186125196660190481966929686566649495036442250307145649963641295077015877481425887204675569272698697777355880791077610397227536931504700511454685186619504049523123633146560902364859294686545504192209227216396952873369416792619629127850003353157736390387342922544526961956759774928442794993373282829743838815591994867584652100252955038905393629871398116202487159046739975862549551022220620460837097956526486884489346183236134905653919561744329934076522577889095243578875236529809711565329090658468665488758687188554523794848984948337274249320751191268080937047213815856135937402831468385223908955977972249384282355975571077969892827303055224382354498831168697852842792209962593998912879914135277240634496799861532426072171870911386916510079518871090098435163039536083031544484785475048733608823390604716762414496761969894784914180259464540212802872302964871996016986369416303349305797163517901320355883669259529198562920035277058305476184411779559038161372429091176957831406709342063312550942730584891278916900894872910619049598639771749344575753159725882222228740448256780172400741807291441619258388679765651094826053373242596089093335870999068086963879727015403774840720859238964379625686576029531239285896445654736064379738957840045220119840056084277786390208694866101985623210581489889620927407301743888978654123141200368279739154116885342028624432393611625284235059437310403752161176906969825130066580259217188011547620061221041814263048629297142225843670710234043675505546085698726538086394722399546651368488245017033040279223746957792303585416653713495311716401413947485276315211989822990969622797468404666221035622389955484631586425706927149629785050013842551129938750808579632147484385984021066371256755621152898832003988561867361363741903858857954717844589360956652107689223913420824662729275815083651193215209777030307123613942157083462272647833894011826196061652210024772201681360401778566423947104254557615524190252318568762706547203433701783802831589425693600131798458460666221201565553070978671191245881563300788251241780792518571323165951739593573045909183942225178671506123021562162026080827707557489981333025947612411305461921302320625852253412180711171036062992924219897981350871543680710391185265765429859579870365085985459671953433717646067441002299233066411702915751153665975076883755284915915965155014831385942070939297079277850089907866492764577522009845777154543023452514584850407830309820069093291187142517599542965138831047763017521211733977149863750078828757960995478744265122162616465014255181159805642089367508153230894854091137081102503665589032278880428207861135447565040927958432134132159119898512363580730506849170112311416030717222222340177521964301723096976787189199501365085353045919456619799471834625735499089434942187651938620075545871554579872328629095097492997610660771286178972999541946151049860476698836428927279270959147951580241406370508596497978974727160016917640815375246870397115907437448740435365169384227913078783646825145341565446038809864038059799973806342988867715830538239025063919698712900799817142592357510609159187917562597616454259539998024490663754489916582886950260413070650821838893932815466854843737151651709343357940858148673394859494822981720869744682463622908708836345925131809070580370663522910042495461047296876443297647464265922229398066757894271005610184124293431491868085348258837159267355164771629308537216491838518975969693494999110810551667443578397918889018273611444590668899808312323905811528010324423580207656457324445336174809111658265309145317418189847207177392808665194533715608256978596404755219498050604773802001916019575865977633854735827867057305020631858095998986438861333876281698259960773940022174738111077766998635771882176679873905722225541707696610656597847544434849242416425243993373778727985295674265626186595692939862389450631256015328092481233628149243638254886741509004660821983810584948129174499613599462269192574520534981354439906138801359923462755713731855098624406565768531737169983206243235546853609744897634273260419858906081777954490613431383641713582149038803798234657244507517720666843323744175885490142924885396315846863515517645189924421352393917102902986205174567979519005895872508843300774711654673341425315208957729384705059061720782877380936362741224789760388563200783700415593232787754056947484826538666172775823363720657081018210996333684913057903585853866675930707593554120697047911456951107554318881087098735205032364313319981039325715113637292216923609250661207083029312916661765475695974732216363608262227129174321711993163048706998538853953025225928004135808035192723232267649388824202913105946617844397950180120635461123353338207587819320576546250994457524850708981964860861684236744898655513508862614900601684601414431447148986221121097509033421904305966759840359285774769487757625366944137883658777804171675567508400839391883004587087479621992577992901609254460289915118191292455391995882555389119173504711670863969776958716159366466286436971510446558795608106242745264286094772165073595772132413322099029041794701858126781040060022681668604102808676826377167783061101231076743330852598478918709756213317620928923184319711033045984387885973957336574496445683602887760158047599925568418410423956059618554029656816542938140673214417675301744915339311648879292506972966653256296271497217472714417482733753694077176487644471256316356675902542770633198211130581973756470847804678449926755728838221843145291943019084559276155360943372441467933538460992991411811443954649093419987604606617029803229718400360131593307225407120524282215786087593338848259387496555813629085464625391017986050081065253706776576300784001609862707512727374360190254497123979734165560615591356412007139762677280219026482605182890181821130481326178715696821135780661248308813397657036803995745627948720972300054143371491132310408986694190115039538838795402065102664110991200107810114568005916190643580810367513547743631365157792502138823681553656926607561379489165707200631873611926150287287524315201186686330929077767481289552558645507711854567569065902247551670989186774970443931637200663903903143507809811099406805049674037310465039824489133730274770566320602643037558389204595700969691954612214157019551128952832296256053421228295379496753421681744241773293066904352243783936569601963031682029204454405544199483686743291735393607483922022533901238724399687574687445019275389701125796750506044250249493884186171609306422273008715871107967949450930564811942108493615381434536415950452639180893614249716136040780725590572689401749005826289897443645401821986486109623618096251109857934056373050959522438565232825025869597342194518463422005448056238023984614799665103196039633820353873082556699612231846627588020259451637434322856615411162278983092359473068884641288445507701671667793240307294457572253527402068988639169035211469548353317328028774760543618861288782263679673312271506231502676541350572917690521691296271124132022962687749264240862187892976251379385821866454674784065810103819869110207314476858338221783695779182796524992757695688039322690453193960587143767861131490060985779248752861596138186963632642166841044221410656750587487028055658076555736373719525050560380592827926955698780248141824295317160182002297167016457852630619336688265857989727324524643870912749756938272498840035059666813479063981255721043382152785251978322345557115748354108033869587477207573889160718872034081502288112186460918159988692588038126429297691446964727511061269857142271811054268440630029692898469244097237491178719247438880955109011410145592967678033578755906781281552819516181366838125884936312583166463939649576600441804465488327405362662637570342734423353545112208228786738546904611077281756063587509825289123892169847455047796574670357017876035673380730205131374050429567694902038939545939526444127651698787181339691891608499521688879551080989207596711750185360099095871869753087023208076044654896948418425267145925461917482955105475981024997709906477081003388471207088292437011686297433638538088578598289647703244794415810845039706116969419066775434439247542540531716602806423742415859275816105621672763545010635244873297408065223274284778180054070705567463194751035546527851533872120561917046364022338138294839743858123314425242089266273524663794879324000801921353544729950323942459950556366721594284236375751884559511846469829159797388868187631931958631444484184264824649876838902447164253997090407755466827207822984694687030825005731074081631814035154489834081308130495333278720731290939299681848298581068602067052959692976569247318637043539737577851037206205353604865311559233228790905822087750784868473413895776982616632697144611469017390929834361312793947267496218874835173477163508932593829313970620394898886961924969017333068933514150160951408695966190449387805406086015887785493368181348149903484433846869351098348626954808437279379175938876968175532394901612173610976274995525017829403831339258109954839800094168893380349812472767129816018952527242862985798194753321110214901070459287023779239647635623340542665026549412016892166757094977638714332978306932818105991650746019598377777201884913230677468006899750786923661436652780220795040483319010465522473338500795795804063534750480441663371462592219408915959314239238059987020327841007951591826465272580426743956867105778997061004029540389710369509099602918390914695388825836457406371784268893571926075940477450947693050814240614275677459867070449736285265307292176309939763818271223465935663136356718613032805989852110777742642349611317054376334744340534499781360117301950067718297853646530553873314163117981655977936103039245561225120839255153646384314468686481499312506415870459016806595871887692113078412848568492329954690991281465012822600773412618421109707831778529341247990104551938977717982257458292927093581952318031497581222590162106641079556227638532737430699251630583197596312524036917026205032244692354284596419651849913128310602606920294608199088304317915565499724376099466133873244924205048366843876291591742444171159077619688874950346279542421744491016737920136840627140589701773872780968774258079837856232264147635868197715093476744381134815890113014489934206542325567051451901983445451989444170951403787897016446910457247061728687502032184413251375991828321997505851009529813448316146170935550740762007692403589854261171626771834892262936169454907577569748053006851621899303568820356394992938813644924109491293129032313073609200815087466337013501171701861400470282730628568079309747496912279630893406329840636958209397050799899015351978387469922265952553629544207650587021365834821752048363714062545592891458523252805740845827141331691154693271112255865333511243027274894557850147361598853823365725823706319107050515682310112189804147503419753363578246423431782521762922208807355142906506852088998938010819707421049977445143129230887644243925072257110745548689344072621325207928857021244855854574474651766893713520261621631646341874394309518265134474922834656582649844243850668132155292168231977156223558336848146950190829622872418676452973456775211243893816120263313836833785472344481824981405107221233231651652348628744659406339377006423006667946284107735947435112684895820336126308224427795687865001145526133051603458568802794869283794137574150656363205374946244861128804550023689725367179982184135971927645149422809536894138270856910874896611600699316267860991361074708311759936541308640766170097439337370383934021165363458547521384927845741378174705040769169535111846028796264606175588840969575574265540549007844653582700780198514826906540769704163825596675576256378410241133380754147042730663029040702058390868412575746779579642259964018774320275543733906340537726018741915091363922365120797005089190844378481851394609811153452560414274213315694670144993564355501269434218698355602242019026741715825210397119024200939664881957696215183406828879940787406402380161941050702614239527753125123961136797270426141282803688512380663393363364598759009999167191196986892175613543777047402203163726178071307245340108339342089003973381934045944479270516164911308447218479769447377344522518913349386295611178687598069703414688181117394982729308013339157331105072905167507223141469741833314530110432882895213436688497925312333590416186511819834782100857264842946728767770259665158609971652615564759625237928608620130159989233100627605892384083268961931665758540313422140944729720480553676415537757902649950861991745175122523690284342027400701812410824248704882029910807359416237769922432856640063554472456487164790933124567790934633652253841010385269515204762469672897109475535616761914416284738345342218856062478505642575566501035670774962204000816914683624740599585613239033168156418292907858838985976306607479235858559478033806947137315448890521033938508099270623952232756193906437626216214110049869993055629595156920276185030818193182540366311162238695797463317433393928100844116273469080102206990992414137570462869517852374917144581280038073528085989729727312192088119339420772847547227180082498470553320927819114165832735833427757305093055665652740233640421818935253541477176396950850622317633679746601685786089070216078231946863080115651073667082680190240840954005689823673820239133045462614652873201269923358089305680995671492026052296287608139594884018092117398528952675947441055402369299222276568223601944976046649985252895094290104815212812376124960530885543685955885323639315259939244920659928113885288115481466332280602505331468054161731621272076196531443353909205282360916290687995304823270866524034266481916455267583043347290447662348873223471047393022359754250791419110716246275577863892171515376359968349190113429927147096715063157378353651908632709811053060857161644138961245747359124882979453799208179224780652627413503017828681729521623605019017870316095182636122599492783161937301594751316647661919982345846180170967452849726251397303090691188794816307063282459745762194939878839856222905783376131205731850475304277471905328015364627768072220947377098779985936904042081154542663745514604480671647983747196488655975177986591253934883669522739376728660180122027832493469493491081019194726457143130176219447505125161637553746517205563528037587440556145917265729820718498104072287035111680984425819023676056398625521518772348161939408631320346187960863590215965335567067413816125949378467555711110034614640273821643370073213976394965766004484569997315605435546538539531328445615783684834847305902554585049247029154851131202026662843060855072985356474282016791702826964888868945337573416083820778300465023739109141951838292339927336643117581957761676949589841114112949668051879637351793779011685452726171614750972989652556327070644474127636214578416209720535643780865965973657616234195714408128717235518025857643068975423040587526278907858891905054698384131284510003121191773064066977785794201842058476533592945740704144815595511673664967863194920053473110029717022286706955122158866385140063297102476517706508614275790504457044265358235177086864155253115531765534394738249057824323348003487635908972908453292809075081640669219214093078450859967668474676224466504356834522617258431712852838221336818285846859699259494401930263061697241288343091974947411211806106811013858329865183987539266358871671365888202818442445921784159834297576756867129724231905629279624035068599465401781433585298446181146476716855184507381907575158834515436652686854254056231455605524054566083386293411680722361074702665166288926205177948908564955594773594050803665115747392613602880305437610845267065013997565021984840722148098559074623734553808674915545939694723778083500904576537980069417587931926979288230695857174440148173886970524252786881130359409637015120570641873214079326824289158557627299416434488532267551788795744343698793762437263746279005773672611295375237097706186200697104101380853870840577581141659427237137388218625412694254862098860584260150817444917650731257849174422840665513652631233112400286743084419139121762933697612444088547964789521353848996010628674359423814919172004720203122502229323677273650685543464416447259689997788132107217745834351215552126175457227752159752204352710415161682724360232670515010303540508532889469376301870358906604843288510440437375563812721843671862017006022709946419209879928106728425465338339716159045912268973257234638544387984507979147376260504797518632700312639247782064619355566636319601956626825289957259083220434515575092086817942556500222267899402746137699532336871860889729821055241399264068689879022358963242995706205229901074671339980384548007537423031206848215744523364311854125699749708834589003059694168204792542099754818410399257476552564238737133744320081749567143052247966129837620800086818674021915464278826586500513488266988001559764286451463389621657662227739163824267909604894955293675011443126303221979177965440694064931147678796626667165309611005243762546353774954296193868586316239818484669610241737564520289435037670702158414944281304595559173793538446359282016072684331216636216592851281023995779834827388455353138693557922946569319257807725705026334902729958962874004441977344740594060795916781491886591785777764974521602868355034375177614416528887130325480104093675132370606224274474775667667074279665969848638804998201574006541547927036535245201450626540272662808150388666375444431053495140532775967963803563530993795933373293844182269663865970389572075837612434136006055095371370672882434118026622927440359971197295278942830861419463094364202495406915240068512379896978664453890087967243063997134163669589137378951173687508560526934872820807250529986260930741380798771278764345566102183040769617166490472853309129279980509427453673492179915719877220094181497056922087426160940042192457036222971280745256624686788285383834291359128654590658519664778264597850797792116556621274039715397171178570376630990873210201181949470170783620512588401681303630720174446631541028605387600384404904538115585672929855077021740008916875887830900792897753771805891767318890871786448695475515448362263891869582426537915901630551530260223640023329475468742532624708614797896972309109779765863584254222809770275874422995373819013733174719772160275544637728908708446552938826702106580772504252816070285502444174268611965737026498055964284294840430443634145625360136955169918072024854071602898439468397133522578685289115368173613114854372860007969438441789441661822056587341920751894779312110108706276208833916950679183272238492206580531088202106648608848050638297134080187987910170992529210299953288268754667258621435832376879880013003188633692529952872974181733336395326448024281947304053330243168464528552902852227676964299865535449970679588569561349168547160548711349838662195754762073962609179906089943605654545362808636733297102776164933669309101224939265922332271204155727594319296148922569012536521048610110324008084780719601266994986073005578963005638310649557854284326089745249846698996651415826471351796895984844168812103246333432754766217101857632238077570033039315487829476930456293933911400794843494162656535033635828943546832859872575846389057978192221791674833030847435383152120630512454809666125259713763797745267488524380780191843549106532430171288934785558271664730610480155875265701463990286798277333396176232412526791999525293180642745403622735127021372375148006881856004903522083052869960978591831124441536668861378510878499209751211891453294431914384703375061027617408011436800972579303539831809422716024876317039495203669720977253257027143272491310443868891444074309882929336446287863259335989499812218923183605724405559623352530728222908417194050138777875547949870517411081344468226857665536076743613741064912447356566179884538046564339958170642414261330041851545705122540157633772391461074798413195120874165990042298404219615449278663713011681539331091838211221360176085678892535004283017360464331195130158181154603150989719284470430523688748413509193904311642430135998275068711069379630597405448639948267662019328998038495036069116599895200842864375492445757526513396252372470328394402419359437272620414737741861732154543686433811340002620292232473035436365951544370062966966562671435380930349437747870773623903147587083322457314703148481878859859549911195264471901711254147760631424949595555935201082789656685598663513453172407035816412426744539615814666843012103430451012004507622886325252353791746879830191441604645167686378989769171947666632292778552323475168537986593332548612776135031713990443469734412483732377543808798720833061836269807675595736327454141182153105062200656842286691987499504767773249704209541841804615000965008757490905613649490821905703572412391531271260596610332016594888035949613440924601322834396086347134991693241859361073848137966505812149460931824703935920092095395884383508519498140915834909003837671743053178277275127428592975084230135865139562394710118231404096620613905856632796629644571214525749183044507757156645357617353077080571388652022702216167513626233081949460162256108182714289371356835928951971931690041985823070568347588089708137040880478007350491309320749726975361501727114919650857439729673545121296378999594924892282523324040220822164834891009504093397784074478781646951216316516210399661936510488662380654320749118695523103831503221265110950675716431624208526846855600412558070170514126173941209264354285021765232331664991570944335244329027066492567970412432019479310069221473152996384754941486078387551758868333359337771212980686979856449537789608635309686324151908435971144803585279837868318690414722617493130051623681647704000338824407223315344372947818263259976244614723280621962053392362097737082806395818289831471161499910673354440091041497596456266389005935412827555823954455387284621827711628058303193699401341131328202807025065369275256297934064770691981173080773975835921427440903971663065128468398593071721650862821875721675701635465863929384121477836278101362960922716658498720337766438156918280857744346342193586134577466470666654591164708084760655949188851122848184600349527977339099078240247659411513542971326162781496902807213951516024959096568708331441883232742716526188380060269608156929130558662260576445721506029583342885197762183668097555825177952605892055580736833950503951031527438741740883048843487784617619344403346117688049759096861813046719532329557974383934257840244368711326828816219413680505080585227125545709971529462941932776671770369485999160264358537887538806999790842455445471947073921237815823293637547618573139827874720545928541861860864401372721496253045360239941353037316021250308525564531064343094917297975265583315239918844571426759219532746993908557185678254967902935480300453783088591387512772263060219032393229855757251131450650166538301617914221406649899097027385023880720210780152269120656785196638551727800705067293875010488242751956761945396107050219020652106716771496141081304485120329864838679469735566930796805563506328668480166839211186525780929729154204130903763386459225177056641272074907125789488628515423742464514897289567457521572878033511683757134950013392402597184533002534152697047974643505048107518188302978951334956126721362141667867918349641976741858411936246741819429106292137048213561888593836328244301786820576178870230283525566085486350431784954774294155710610334586510018378854272595708720343609874250692012540373822220585203967039950687221846173237920046653440621922050076398217417020986964994625784160370656451080426904076254080920570239224544853272926140670823598281305221780325218299003004318365205475100185320779569948244488227643192489011162716091024009910834606963443384192835678379771908507498660113571502127068494036043588983935507319983557754426595191831071032160201983738035070894148842818199711372539063431561429575551623378407739419834965553767973814362183713598280478684616014049493853902609967193208406415658799113266715959668220059367670601798962118014921584121503501963731953263387976949088125634381705979800246209573269484094099737761061825139950082342918402381188570483980772581730337956070159019643524996055981960819989552300686900998859761135582345672792792032914525665027541825672905350874763444503406319114711628300494390942097249584703624178219037694654491514375898028759753726768658973398412217193216978959986512831727478501975825412395113138465966496544661112456601710412305857543515534121531871213170980124837796630798648773532936451084818730104146313797737356001006660975706937194107207391678640606315663488071186101338188048974253639256635229521063395695589075517248443112165240147413885841244347361412412964343317681464305162440958671284105864330917920404751122692279513033694301009506486091134520093267216915319505610719826391307525084261583438028274436656518731338338839202399794467944144542771500896996419481526248249638612125762406917828588290880458888928554886574570984562216719204807229596004626906617362798097709303562391122542390647553616321581181370317405551487476946834862087987151022275902711606654276554450978137500095638677510380696653772500497562850575594583447738087550085188839801325932536385714188696458039525934006149847933690230267671424498267287722152492610455990489027965527968470817313560875880905168509727162898766317490952369368927194115411393543850591340346622566545643878499049758974891498412799127385285330348649684545539372446210050970643509573907755259606139476927820957589570963079479013375345148225770700773344190823207068555250846623717657028437585098004597078734273355095716321924909639710709665310292790423895440579356781468178480779877341808793969780100094110233858072312471049014307312058462782506631621336221453863518341957650500145521678041556400308878534428233059376466169188075150338857579562722980409324196445334200009009270724840935113345525038771083288887846370769116981924348446332130298816872195861552188543766675892574812488369249349028415624475687491836081655580245720291845757885619165577441946086924399847602466250631715689855999842245079301243200198667877881968944605242319605050928938055628586200952812273649120597675237349793026607417359557237026474403383374888338768003757997429483896119680968202661052714597593091986251963981501323967220628784831105661573660499663313365532796353938795927467419465789740823340990153484833820918342950242950574193657786779750841879738214400583793839696957666692452757094007697551924344111121141576701015284361792937909993087957520923457089693470410659205059640049257227880532930708262285827684245539938859227878259654719232442396573648082658731456200157266347338418201511444376721944639307823423911646645968943396928114275413333025648965195529859875733225176724878934247531244153690438990091552982833097366241132988743413072957282045318286315871029595026173127207989635988926356839824789396985625786084324129588042980190739727476521900085358406425500763680961807655783095253822893297205384745106476626362958043713514784814450103744936801841067449356035543183232579279560954479657665180689571013206324099132253607346843547923525887119806055362311924262310452029084559851060190601137918536914988580323206087116812307975643907340104811823558850809362420546321009816689366452649569061090948106562596454738152474275461317407472018127937688802021641067156864371701483271681003324339658215176263437708937367653929290849406842519527587174014830470063655076362353026093096692977062568827630584751378244227985075720659436823274626550897682212076009378641541932636578395667481863000777369538970524498802572019650690618258426121544545295930347892788947931942945081424751712790145342037020886500657054909491604096503584631524734680522068037385047678797945510059861831480356881660306380142422747730769097291072270069669537868857496262425875292766547504461958005463163240957072143902689250605601521830148395883060365416519835224356694941531621718288581993695699250921612140742665959325563755614788796994250579840346513847939962822565087476348058064366449031395406307952038060742824561394862102867758159639661588852107566083977839357886980423508907140650624885118254618201586319401568838019891391640604018371347692833156485853371435951797767459094137273616350779216220131397460574281168621294869277209731685962865063214732822165084608923300519447507128163084879581916337397261818512085577101333784180905165773147565767744379576231210340901590797128009448308360772429870183557990157484395656462770259119778079184313130732232777834697302499883061581857425440894415523202961373846526398427248959369621208839392993523578873602996664542715404053459364419731760961447719177004338399751566586633896971591137162864295343277293456717759389310952367567957188258286842818400501817154941286124067494012809431174945356213759311837724118858046649334156698918543108467182768498292235998489781563531517448188628582806034486218907879157652541414306607979746920714984093565290267992310042154268676573057628336840043055293553691410271620924516164437274783557897562126994490096757646043921294178565706233087573899914427086930109805901307939370073417888295533971919743311621844881225954141462582059755335932167618391819521697491769387662678133742018556618781029704545666736877422314806134988814724408791279883675642461125992944169004637868391491770739698264856656537022662818331254193206588699353434268017839240370909144765837274819161082159868571601031232349123551913604270532062629883461050182992020332081426427143286255784930963600206660622899971961058334001958209141627687017047769329708113270569146749134609478407248195604392488931199713595015237715949707483877221891434423056305117980185756314279734500332240475700231640103038593619632884120864867839735884142709263895577288460818522507601453813567142112145613162841725180642299356137352071567121623122688558958894182561459717178892426473510305267324430022585778128975188104078049492310457401954325283117547101514393168963815243892612935137924680339852536925157568089296363582983129140239766389748756178291938572524950977773507518778318031188523336576432594083053474142903642814151462187320195349722942408942331525331560936567905611841859524935705418842919507675444515491942917494618079783196048862518222689767586134653287034340863100557596953052987274691899795032512986580040429995874065343000479163480346157893902596057658359299679014350908591644999110581968813294358791925580494601366781170116885044551783489677461406017241801823715399982099554157481488476622257069391862739172828389310584622484441418332328876010772188770755226991468753277812826671424365031183024896811054349683076852826319811088309545641855609760555403084944062797382291248987963619028778596437104695609620773599114909588170421051872843949926575395707478564800700129783604762023054723478303061467440210189551576982294171545605513477170518951951059679532528411921639779760937185886045222962082750487224648310752275177098586050744639127534945876936350060119335957449457392679159176722426570233778647338451090263664425953643407981753315874894227624924858452025608302291862220670192100511424783154590270378025539048806884257192866237175963687890261371430898279161679584592703308937225195333276135316244477454986727607857158881890864812546985278092983624766374162751504859552226697558691972400206648660867764657567078525516833878878354041252235318316909008630523634815887922279110977400344578115771860309971868453178835500723073105693768738798640914277911127465097922658937274913748918519843464534510501854348608272124349200702796414428692285062081757228189418330062136328078562984536089378708854201864976869805418872302097212843974330948504062674665664518153956763347497770744680908739422512652049618054819392239846286965729023333858701777212812010999304063337443652764108467707791954487852554204342801396861041648394831083144829291418168262778867027086183427899104921364697628751406158048946404784741287858767657606130595197203702037961652092456207739530618750273495970862717596008672819390995203118065981152074554624242130520514992941148467502431578850848803412243193563431161607982140464523304936800109501050282823981957942136785498220778156234725174867281378676985891263469206962169873127274479609426324602429389479801637810105884018976209766889356616127435015515677059148752865403481871134901907987827994813136950842615066337895897846762172458980320352531686670407089082672688042431585544042615549345232525427734162586300093997540297668961207666748263723726071213878185974680483884485491935460522693616530918114470847486942340708955509506281742793818049164054665326511457240668339459468200567207778301882606196894484643136788786084732636058156535735655181629706318746890769577165466419612312276393306695698965262370536717437320320205452607568412635436985944191353769350789699499262379271647697016359623816131382682232447861026790492226384182339716940702908606430020354887703412102217013180939343607669714517034980568055390163293460172936320946175022397584295831483443474957490084032625915012598713932780768891671716213743455198588122497466386816134663281565850456896188844032221335753695630582384506859880680947695340528265997733489598187638507304669863468190548213953072902185160082535454804501670100077857065136461901824697768715456990227600391065560026388213871209412209457972883738569415505972616649781057990248036539900624291405862137777106762995215067821086161219647628554494579505178252692069799688348112403704354530418000761255856757555449907992205269724297531788992634286713499257138239856761935369642183060207931127511458383819435500756680643395381402586977233280295972061330956898438803508937450954217929142070664096301918444756966652112488615377743806655482366495771896313219987452001052908701503547977880702070804422023954013610478180211138515068301033066381695947984656033454314415251309880387686125501131268406531508829905846444125514065424949012268896647837497488957859505277473692100555863575373785564501945203360982061449864693967662144983007640148574193294106004989607837183750055816379221128300842157806463555418961666212250686154985699056510937536030783802123552071566572766231688402168501150546874675008106976849205025492042444194218349247021289019519784322915394922667115328611211162634093936633546136281734303033257487929096878913548889321714331530208562790914981433939203001255799171583123958480440806072840386899430166298575494879499557169005835207620931445547816966676791137876925381046534863465370073681088043524037915172903789141100031043700331278880587011386981958103563814369281339565893231346637323527060194176422661897741767582593008961703717654415895305742943236403077929415712824276509127906278368526136746165846265497208961723993307975248201147846539239056347145101893347538959237201642908644499884411499854960240444429847765248519587198334690979026607961558201836825328358175627114810482578540777652043852617969851603931842723531489390501017731245094337439049438949394046393258294079638743415150324270659303530159541339773622768328893052440797224909890577081492858560823460248681974830012880189947295360112602840821567826861816191391964759264889299390389169770228207255786647630312170371889681855573240316460373477450042598516003762971300787063787324459554878789056605149612641324762539409934865702189729935027233658641816098124329460654019274534195863023752955974155894631599029946873536263634861524342855387151212461540892116564510513502897488384969950824223530311762359820663173628169027889847033766413732939486971060834065236911227713959534913226533846739249212183241482005863561047169638505190669682214218272112135975429306960085242612296840922206215824054827911595350692852587681191646800113136613605507636003356112752747939602676480559066685130443574314856226117466559464180085312234375150334912177607255675236534600335894647380080605112830302358107183959833854412351632144646063503667195901689833757329119047551097305335877147375190440268854573094119675682547312694457260981804066778426414286901974248468686459055458115982505330168372973065838323712858935040231902452579412789908473476740878290565387153302675030617827286428172616342626353476389046362195040792254946404659168723488117013886963556038766869106878623701920055655067019270971212961183152133536109398355966491033905534736633560007733208017541570348402311218913129808541071131478167539396453728611909884910038990767748725700594827667499773068515362074929662188839935508475210102012191077599938518570527177312764688358823290679501588636807588988937404625566639535671992886961653772593048860980976064446273007333268636537671442564755856837386571363528706619170232287514491966587771448426372428331369568702000175059977587063212739303846717610878473139358508122334619989799449415198704549487736296851066424149197798483587999000982689296384526474802675852988022989320902107214842834403290411297575342350033393879031882759864150783799668292362467193173609153709316266852015571750734109570941299554880319120847028740565974304357890928107598966931698050039327583421342721294207908631452234879040336066826224659601070119970927690084684630571456175268483808320530194955633502103731381838641860683469638750471679731044443170154527291134227983853524032368797445137632709921294610717175710067971334424731382356052257600921166592709528772209040540533724302447200161494245553978371192460420005758948813457948978804091288311767614030024292214306300975589569930092465001337970512021056287315066212003268043128507573238794557651259676842981176197537266157313172596299679961808009623109547127403163249543223262443668367764769692961223243036152282828513816279020586614732977056576637224421220193358901673593593626161129630986128854438031963022816894723788234172393151553263518918924797747104073869901700550395867717221112305856252307723191868633012935547111470312484578467875263647326121106661471830554670612186678183811420125948659532315104255130965857403871275253574492297870876749706171758736649865888871324987471642338145472079450874463454844798462940186853166485087302941554499249097825653162726584691690766519707194857786691950322952630003332535077007685704966040613204803546417803553470735141428564825817940114450851861185502387648137196177670658490672410828947510248967074170851805200444914698789517790760148433214648541881212366434261764905460353122428487421192876696762783909917329940746689449642276683293566702050944690984574557481136009619896722897073596990786673555862206772989633992069942119930699511316697352929929050461064622634102139693840684848836593841261376998597315872877194870602180753128945229567106677505743053768770949363846072016957593745021677993238341347697001470611870316247447287241334999499250348744600084155393090412451347049388846442699150305641671081452858621979407745072303567064704984337527114633687911951136539472731857630896240433475142380732773765349284965685196062928669193327915839842074908342572681533227448704472509933639237552603757027734750466055456152101795635409723468914439358799128436001102215069632829797268100657360969693982275044417011057678375434081228854103177432561808638939403820039606862096476751659066911307012993426896212799244945658585742518749182583333725681605538863276823463925406033929952202257414833579741867421383697842174383017020765707021326329257201734812296831565933352229978805085019820401442995361760980369305880840963970338172251275256580297722308041210501487945531985335185160435686275052453278310547960817879017999765500088646622062754286766870780288948033142334552604630180895527464854883861571995947813250934505123406726447905480726289938103804929573606175124694018286709156411345188675277439510888801194712357778482828904135145358145421419438874671178747254325266316299888049355914354350849922647894561941729978918771546529709085247099961920243174151308794123925726528975724184720137939512612994819991105251409775954349224011452180186685743601259979388283481814076330543342769330830060698265563168065415657489144183364303077432892375811603792351467896205292488560042792239020798708759307674518473431969863177201547971185817357237932609653977381785544979063009831428188967830689656884031331805249573467687510206662864630211266845302204126946387000440797886288901461437307345988713993853144998626150622125139030971294660483347303116194625917498943253491704286660064383553126114275100765881805778316849397980802262386906629491701011045353322785677566501875395176669045959290243986048913957700595497948905160326340400987411764656993316371092134684939123943043086966930946924746963160259528083361467556291445979182008759972502490001811296406272515518223841425895936483057244538487477446510315965194666645369068250353397613773310475628803462243392937099097542789746914461276342732536946715024965194269523768545375403929816757769198640932616146022614828553050478501349051095607486993848693413512546642704233510424667411029926876616185419041633609688149107149261463930623636172832471449548089440826119247375277862580092167558032947490553346926640988234375850340764937562493786141327253859706004228690760545126572847948142658198983109174218957820020303970800001457673968997308584305473824823462588392946963732988692488048828489780859385739360640406811335391941299805630075358401542365498871650934386185632697499375759560346486895655956378717044344445131525492033120307172348768325981970329844339664110799458540318415719839536926029277726490922990082202647447678809869853046959171660503309988870251702671221189212599465081219267998560992678475932037766798932652788775507158475591753104881053564719531260113799083564447172344947193972614179684281713216166940141532657607351422445969721101286278250859876449364659646347235182174844750208611704421648581689562193467084231103960192800890661355984058922181417955274834750586789221182801967273759431904615341691897712469019524586603495770525190704348559611203567350747581349348591388673645643503648205523007759608685303094641521683441447239069525582759036041415904747758846346993101408471505378374993699644320297467184199093452895039809258334894838412001478464536590344080697565716313039958724061483877338225969550963617791771381480231845320380210574462381829786637782048452758586024865691897445559653050357637118178254176481655576057993897723829163241984170467436191357296647087192781374203865796782391720854290703987873023094262139723348605675315950283673087497396045853721421902698287794308443928200615884425362037542080087910090811052276577783450185387700306273916942784048608265431319124455556265239390462348496480092163889832961120132258065691172346427560431884145103027020806472241228024381751858659937900368087919984137262030461618381330473105507337466352504623389555111642674255074672969873852255996402514780528068555282558316075795340788279014508345055537614550558391607350973758173385377143642468623235378725827287688861052482601148882820183207658859683814582668926875585221552211497510180585145178319840954119037753345439496103731269684215294618104607490161091891521156786761043852612720024152301132642290078758584882826456015681226194899669643838655364764152627389607882272780907575197952444589313808104017035365747102968658886502145964108900874355308376251682119050617194144153081791145913231825057713624190421858455000196816450191833639512446431218258467180639234479995500656259739528803922754979290035878766696358662258661812017426549853581524761245498637916461485751094030188369412357718046373998494195982340348853737137531641721616405670829814943590234835366388164205053385258077933719506058588188967794293022104352711956477667049675456712564280424918320189685915827607348738792149340837481187918828506184392354385424994826888311433559457852072002990462590347837127058980524152292037659344577012576862857363547490124593308720775239267019982751937708539039420630138888089178672667700616994414015658544414315963933055632679440476346111208110503405431643902516219747978034970408528016085900420322603576021861447750597025121189815664622553787904613042614840292072615676830774406458304328826302541983046869604999600207431403324438864250529507460388843620033845269345568447422253565070399889422841647653835809737902103174344291435756669608539590791860918588627759883002385515251689334630499601802327087359381874869488772956306529780318439065070256820778699527399340151324915939016460402696141935712521591109060111853781699995116657170338127579107863133012542066640482877321244161142086719067204879900713967348210200232276449333513959141786033451533548155085714054702141406097531266274231837378556959717056919080788077264324642371570344546750886547853584034843274974870995549788030069333363966199218489301667112041122416404353755309264815463416959956439528515687145011405709161189826782582630843227951121628741000024930635596609975907023829194976344003591181716277619420661814337331284303673970415430081842562667870166342815399777958842947440697413774261057694017459919088900764433385225211588701429896357708087632646680590990936432801071377408444244845116466354651620125405421855390700784659447705517319084514561606380388476875375424872000977316527728587106759495296687608570289412760511716579119050780262180598145591177373233906191767794351788912103453890166587458641721640019796064475867480599016365044480271156876922232624938750542307221385102970175335286690757156932141297800415993852841378889952210304621150716993327800857073784366371801733914428548899492614717299586532003907828087973440525407244850633797153702920168304757807869104662505964954512112132241106004538293769312293883325240841347313632265800408506832970369166983756352463139646539904618559368918291745379736668088277805082652814189872363779558293637828759028568756072545368632678429176003429907223913436109531869045161394687430537631229914657250913885255544411401179625804067499206708766666906105647999230239345819518027606607737350540488683056849450169528376754343028446852981335050512823086009670431299027889711786533085247824252194750018995980334254152454801005270330567533453145073592769245938366764870588919193595777026319099571352172422803451183576967193690912207135902660133773718596854990511808166989691484382802347570618550961461105222535674305629236021434991288555843517460454028128051853133324932921978582202861567933348620262588151042800449732290805620936073662754350311680276615495530861652643632324379107794670774511550965429365938654744033059027942369934377188141465371097173381825064634994814246154359912268381348326438553008318961174424325261415910372043351574293496695692137161824895473541729174522538479319705461991777741927641951253615330541401947341296928182566787911156919376122346985927998385636893776853855264430918438802906472487684366634572201292539122082577252096951301520374569467442481338024579557224801694857265497416719204684787466381142472534737544095332808397065075742583405288302939552801244864652754626061824446079472084285431200572461618377769399955888853979390776042978290891567680542360458777433307012489883512480075285730439935513144267046827478091727420778189510947220783865685213555025525731848216464860292799125403286364246928390566130961089004360043447589290888062037596095073187819109899079020810023523681361175961154356454174612047680813963001528364049656976815468969486224123693931064766812269807894453052952593491408531750727132257460933152311928078808487694618525940382062146771602141362128007787746872888593129642461655825010149964049365732951200950789088212133550208209216672784883448167742212245652627790101462069052000777201778657266160439430080273224349889661453155984176835356303507276047467952154276648797001049605020220115415470852839936506714368351229851809003806849035620818859697873124380383194105211448500614978450391396918462262279108881226738061460313246989752826835536071143499277280747421020490189189416054141244858971756478721763190669539810949412583659118213287758724003472078864125639227339254339925633264139053663854447175936262673901827192096077782260162267111175609473903510959055756057539972966455373465959229183554824858162018721264107966091444435513821717532901831987898129089786395033978590824537672344134409488297367892340525206425971543669857657820563876631599680700941660182538682315451239816021559381515305014898053397740183565843243422528471449548803707965557318659601475009659642751106547531779067631372038962419402758323087281523469925935736014305085033039309222163394034198574866459066399849001738486171908492383721046594193206060087506846701994555640272636985963930898772947865332070587798128774916711797979202158919274674795373170475622329129398478709623891731323187849502782323620827587081568452601599431983470024526810069457875888798896130048383084294460428036093595627442406438179888363920971581875136263410034036899234608646975857987308150446044236750240340409552307091996319733031583344674267150715130526856809677486133287872859892937771532538791613571241826033082472114185587334732127064177316795222355979114270372085325453922440974403441431364440496011474492013009522428150468128358683463489089216242236977168918102656948298785271093141030487123679949582900135890335477982047274255479175618813354052158838992175852642776984353206767495091376340353929224873839621031046163275364277669318125408955169403462940439229962243061848319214854659058082249679366812502275979320197089222368621023354120667843622917744843250725380504352217057446222186869677876406794333011761756976196201071242509889837069332849090997263701375770695581777606835185135284380236730274620437143423304264378998127462120034862598042266451494355446796180469591189313261148210444976908281314627804214994999889630481780819259743710139361474382982933790268697099272129945291315762845909425715819573842913790100398364472152417553892420887536858158091234203090753105994303156005399404940676244775998416258453690392757745124205767821203751416334650919677877530210821138131418137605359158432974303454992951069785984640932025180932453113322839773223615353589811990319966083369931091952755552659732206926635394506371289787919170325207964284061576228658284040523655670017767910793262924616210771002954635730571802714335554975508590100799213331361100036621282894864950962465376386363517505586074020522387810027970441953372556036117386987414952605304349911766030622780850776603229325272219177411735158746725540169773969499834282412744583757682181182229468674976700653076515089858668043294454270876785725946573929186345917636904612670666736344878140394180964033301535517590146038635685762032952492071973898793904496259455946487611573331952237861338182846316485612121243663828917284721317818602622648769476436171958966822374913772546513632869101272390284832517903325388866000496575867854597077755266517143038515648202978881652135977846691028938406797922355442783942101926519824300762017760292926065270447424356860890577018468861167863826902174658157666410934366163812781217162401622455891014186910897679673007184533833446088100105717545386487052430045852595202823017788491067031226162768087261488381226558401815711699575501679885568506102981124093063256146528218909478183598044392320485059466145435999957788614874994146775829785364025470926084429715107785165883162289674926376111766206024829595580208301945117500898091011195261631664073350425939383732094320499796314718845550151295627569854840421147246772065703728117398594822227778192536036873610361376861659014628117176530684397540174939731267510292010130040744952150714856539232336106972383132683603029199117205208223854257789999186082299693517068001880352389913044861930266623063090165039320244186932960974367326344378495721564000577742271960189937760536278790813102256126532144845257259552208045748426474818174782076569026045634115905528949209564689433926708243061457863830433402936704137754265374325784897124317843499480474098414255065524544087028486547538095382127264281468624828771348893615710823661280429516478567404258447942429490647977795565233677767127429192766513512198084406490521684670933862645795188774488322674284117885833034618871290166902371965940207200274634247996773178050405065067494653565907521528185977562376480702498222505039009650259970205660562133870471351199080119621414880503297478954570296172102546546885553799318951082334300647435091398084300981216098079739501591575087936933792177228376610167204287994885364919230265932378181523862671943578622432394824352162923287869404352095136742094664186894062229487171903969914884776052298940470765184457234748422532870834516058772982443630129811427792842833223873648082113417631651770444129625476565850782440507749906850678928814042259767677559716431720608224359617023472211806860959118352131963242022044291607154387935098284508431815209308748453846348143422811755798123193746209323003966693357362821083248506994935899341028065005039286038940971420763014131947661753794636345229811554250445013715080873070888643457212578970565391578694787902493439349873617670933998084860527813044879039125442306880022195917091169814706525244518883516856647438995971401877658583961414088871251850431230249965227662295201088107816875591263777762302116504270145098484634173643202324649652335109590711555849126529886125524363800977576696085832454997554825995356058839289886464121862848501621357041569683669412414439433701681208884628604022556716850162201078635821736143287931675133297422414422709152052667851007985897580131084349193105741851394255988247472771161878846658298025714280184777493659303872477811585947475668460621817189710312178567742023077107827622738894193608051262543185104796796141636259288626350203852945624276942324110651151169355878001618149897233025838864418509149665930309132888661135113280601052693952728970770340951325372003803905048774063233119663523410848563346440229582346248513619692390988256014908418519846212156068926611134418305637753753569114622207398038584140444423701179089746020844728532911219023569822153395523162446987119508558052092672954594655333893653936931927349633464411324959063397698537956476856987893624639433210651975552400101956634130687974002822499515512778228327606116580875257793422448605142530863156918008019033154041860120676090819994038688072074254809900099697616639152966484996711129507615723235843306143758386820932166524611991101571502392501034494117625682049137045157096860508447095923955982921987259543955574290232150468340660327630760899211873518575993973781552913029201796461528006860270814572353231034971874811144761246007024079904244405416029591804648253934648286860377095516174065276520317795802142463141741123875397420353199024971719738633626443804269931868128019883713832139277982166142825285484278430073158526011335393942093671451531019961200951705232861794215408086707736322670931794562289917200855936085945332139073206872983213868814060566582389613315629954676111258082241623799104617819876879791742032912811842937895571109717178201033114369608418776967879521541102890682825059125246972673116267534443069849948482009154528228466833635765324281119482474796058915766873658009018225220794847069169710816196319558186442439108144547979171952869376377422560149780493234226437921133909322200311573080484747797630974187478799241680280860520895066200331009294959529059421875713863654335643170409464790588666403494657837232129002485214953569819510989357304579255052924164246023540459317468222867068781571116052535669525201974730454051781501058849635184605313073292660199689402538613706925408573282325880457265597743024697455681601364959726022660156323754014477492412142047899875941434012506203703001202003285973708920617057601284526986202147889044181006552725139914497499704657398208014655409923056821550435765396127185016948529727591018360464471935562780747143563396463224833771025178513853466511738218734310889399189076778261267188882498209239610755880185635605483957706931986203384270806749080411355516829761616880954083569788128413283137109924574964521671182788123553403526905868186156305401905537386210996622995593346720439004469559590609678985717692206154574778702922495313746963280521600075620422875800914322841636154720622837915565736797897750452662627932464507444632497093317064038887415565252145226277367052497158730211565971426756754128674289266272302802962352584129653467634509783209032708769119624116550767051684603444084425894922012419006348283145388696572784263787537336614793427751492588192281067855540448470806045856381877826193238704859685274374844458349347481354872251135184704570536534085250539744196254689781546305607127232445339806049507990756694230417735623859029516812674763773349612143432238258297584795550807887906536890130072989344641519595666937460437647327635833502041393152022510408368128381880814551171749273611187291950621904363819935055424008545787965944220461193240187547886800661754938920651969902266292753910636006363951904527595576090260880746011468192855313042458584900382757443826529681281493068763381707326662919730320864787555672619426184183772703536636165167626200549174813966750480978792386582602783102924564465281539135438820202758805246614629453511062903781579230305875528237248386814840568050934845650832185419363720337197905671029130128789078455275275966270519574396723542895361194653323455045784369011074990542145124864344436799700574899414433452465529535354865689399722417345716801358138555148732377316486944897655876182390514654268317762848441752315606002131163270022509213523687816312541882371615951168086306343510148889932569351986238709483120674121508624442555314449712612482801078407234343974090078640945553100552732724323754638620379228636496399256404922628900687972751038580131927716158364623078260327539884374986476248749764130055524900076712110866837862488230633654641530610166718047790951449783103009222254106724500646446943276883712460365336614857069706553453533745268011262361407590120338477343009590030963644192874123516760695962107339673053014644727766917707896633249345724191926747565648020927818759668654655987110729724769382670478836166099298459243796561298165276153384874127720920182652849579712180194040658233734833503693189221252027003644890249976647162519550711299359901172217295716033263579358560040967478872723823636018063026524961315945420593322953909009147030783191618669896333066942112625657712879931083347869110895648373853354403564792264004070261920010457237735550424226602283474689529890910539291307057287426186530079968337357337965347130727002333964127787651437580155347659195505283038037002890543605547869950888670972201573541077316737837961438141435303902695787622117708734829732535681909506289681961502134996742839894694404737874903806112362015284295337165397556412390505138393902173398836289855031482253098255869536136727218329834889268566516884225353769473374281951279035114199627689978052420911895054342732367482323006284287910693880338071988497804038605919023718559121765348744240248462612538990766882440576723925885570326378812584326885374103705366753986104613684106758633506442356217100647818160338834856878055663531844752922926160583438881601389915488137581088903639526532165296209980332978371678575332500442114772122329376051826843349746646008743403555352601628951512067026654093851261302603699883171389223797173641843482108072353122465549698503233597282578508398268880974279441820939392826240031288839261091554672617110270931070838680298623724564108916865125948523582513384076323935452850806001773534291980854750926263936134527386473273931128136654693485232025023384628468377146950115028405436553263357720574470439409391646496407267589423149668428348780538474124653964114447903212140162284003321020941032566910780005099905357717648401413641454276000385011902812205706010143481967490064780171623724080707616778462166124818923626125334932263077541007354515342385524209906224165221981906967397892543603466752730761761716932163167237338058964757000286384611083655039166570545695872061059830218377469872908116494541459802378144210672941883894213812500094490851423305274630922625493264729914493989450584126415372656267175783643450084439235767319414841582359286570681562912468078592197172413493405552420890200237398631716782304180580350367570144904685105443596393306981594541685833967343067296735706369709063907713814950718769918164489093595302875792659083995950114301447855339335309992263403198934726591918930663925305426259098237098226933038461605922522293545900867772309480053308054903784195783081915809069248841668891337776081527374769194303025552840117327007634996276746213278734099482156039449274351913199422769702788419799777226122124102565156778909807987436210976222736673534846554120386112480738272472832553827256824741754333462766534348371984344246387336184303393249005663840621207979786903161228558525540752576234918191535614831132014402712835726718424329251897157097762108233072724247576006097526387430404967080284786188922728165717405917873018967227120651614089746755075666607814421921526372122253800111715466726440235839212401773247600932513766227648644426305742058383844812459762139054149883597131425890420825168945871275268677006300571534137493133041223318188480505244085560489551757314848522483258519287696017148067053562008532916894221200550957629144829687510571526994012175459568962949548714130346088425623099819865831502147363791465500043437831553654184672466722458849736286495088809634109837378255675311714819371689273235525627191345983620188144443071507899562417320845997187960983324722595229283671847261525598040748132217919130784734768169890104368826637735523257173120322676400304358107833930941473450744728290297771495128228990240772190664296252439770424579957633756692352322635690473813332570500880849688248951027189436552661001303217957138068392711711431687058632958060294004996934919445659528164099911554082722491707090017409851928962335735056808745272457460459748808228925704159345591780522127821237063677647962749663737529476900713513224110295208220201898623774427741090954644339972767481178623512400481891965431836744403260866560301716897353305353869000881674720634314685005710369680542291575011376399294528381513682123314957041428007461480937749148308125784501407524609715865464238930535461953906851849360582098163470540499450433899375606853030213403140153347584155382871344700585637382445300411114850900475520733020238742032879687379475012339182302757627852729781841659133116057711846658124806615281833028804704642220127311812499372328600083984455883008632047970006747743844242742058512611511601283276718058816548848576791162422521901460638102515958748589783647510063059452513085330356368740080968002051546070365821592000595906198017419209675613269973490982566814994857475917098660578660918535196116902010472354806625952936305391809197195574034931798184652249632838705777416271698588305988631288528796236789004813582511104923971555093548245519053128666813549227553809829594221992971302198033163110725928973953866606313739029799621410410931591745639613149268814877606031513132210362781325989177563066824442252517649708230675722365507854722485849324000554808859181057707847327777134388126590517797788898600891539832504601256432745422638908014154506906157825853951503693735747349750853229700877098149965443424522851174820460586234270826413213346494120114970168591174749248878497399714800683454561264535641986210520996067064768885203266408299181224207063945095846922221630452619220261405129597838411134362279800297436475876975404788556287075687260300417497533645794445100955592477071357190078216346718375471984057923941093312243002146308704679301590759677559131880855452252697142420070312851533305021523106792277531277064704018707814428332173271265352438331533540927454359973083626062695775897705813766703185116131216831811131821489347605224102810166424086502847048603917414820884631593397778540629459066647839686128279031571722826567337498861571547107444605039677709821914760901523208831313489194336697088381061746475639477367894221815831329946688813971563221781631846715679646896732966751019863591159195634902218992347839698940599343597985365902349113102766810735709610763812019830982245865052624684538596790640750284849027650040349456244263955113747843290420262255017384770105730943236468845441002304313629369451793078576629303913059557516602542258202819850398657663371192827778318893463547214108579871920692154550545941851147293065060063477950240410277539805365494948933572321292595987075496410510768088958388346472635192147745164932770577232983008403575473378025247463213838409827111643882539390562191544245466579519329137295396409034119372833591078116497728585291170168443832207025969370822878260145306033918004085207021898020996886564075342197768161730149809919778824560034177783141281535872206038454950193924158156547196708819948072493536935592540627881738786017863411732664470994815204706653920656428771299017708574742713174708240775111483211056630556843605888269299852564476949508406710201920042250633534550249286481835912570563176654764089165304120452040322421479363211268721262976920432167799547473724705103949360976263749109529867814149441033751241299281007453984130299038429647693641534662533492432450660434192338095874627773847180512481840391466566489434341872422054932490002624704617360361334009217453349402597816942314888128223494153703202617970507005647574399938305711610385156566180291173330005944445650092413709239811673527844438000143107327682015952409473937199222261823268885003349532343398340946682613273840171030010716984157715710116929937858498129257824036232403856814145840792960365102320864561476298838595899785743165887786854146217647543696264554122471164525233763343973756580920566269115822859434320339647543722844688223926525651577330517815184706905458880490921320634598928970660382086373915605247217158616170707438426764461609090620829333299098950500727592284246462033096963444549719034306842538718223128309160191796353803237119691376609423236755068753558941686738140799334767172980108372560122852988980714252963993640626053881107329968924721498268400861451110614792845189218108319736224000136407064606335574289809802998363947320190031161188030018111426769709535840121344096827814832179778265539250767129485451075739710485147033441899807424555679888079785991378390464980269472216631884781312628578651866677867185175566342933423241967162708031630662665382435699157461799784390777468448836070407190720120230861530269361775548120709028718757477898848759868218933970438187477113617884868864428006880015752744298982134196125626862970888935430905939092957752827246041664248184110367162549437159993696842410983095427929582901660569435724515750913480818543045617330291859981058999989345209459788338680697404006248642014777493275464614864651470965677989755941778876417533533314845317867207187137831475712280842476293302051753266483488311587814795336426282358199825645631774024054475861708449334350306706124342269541019360334340498858776025409627553947174189855512094002244361575016023027296326991612768816523852577637632668339279338400871445275596925033778280078466536422036002277084090478954359472984391600239583285431819886895777089321287515842570336095353219845217345550979246157679927532114196130963900716467168361224378249516498638609699591910118408017788979272470743651078956055942103382294949053453371597577019385359284524645567206744932404845288297979526696202007053327706922560629292513853351658705099743160550714284200923196428468568596655527475765375501666403239463322970101704812741237805116372910091603278378111337916463088129533432062970986540481583546592167601442318081818976663529229893179334446585092841871009545752695677045950613926053825233347429762243371509609833234642544172063188088928133688523623373801821444607890835297161071120950726013147912573417737935116633574042796806561902328863073097676224562572472621877235194341630047707079986727518772113239548058274161476901639159995604278767191097965813214391863626503337104185938072035248297410247202952874588125767513966456613651514184797460837329024631209805513899989188690152642039992390107753392075004002000594824612553782065888413302308738456123166139292914706232254826648794783763199419921688461704919959534183887995230636581992474231947215067296373936186142926835275149243370613691003104211661324989332809683767786376514798423758449147486745106005926776882504813430634422410660329851342379776015742165137160213375586597730979392382439694974072507915367171616122529325626847570941243473547205787271866682809558011073515380587516124666524309982752015235082984123875043858631876972333373361537753814412222283818079533325494967802385423992538917747823648354201820413998246527596716182916442081746564079406110506070867184598864055324541101578904468944620229084992210939337927830407041693750086624408633180692438413919426262111855838047498302073201198897410349821873349852599315930576827094424601944710538283157000497393306518573925138900769054038913434336851059956001569891447914700195204554832398220671930701323995648632697761247374627564957417759672054254726775198724253367326748433591143160276426248786977883702018452788104233046238796105230490125142393599553774582548325961534933709567761686209153926899920181158752835007927308399471202382065379118586284281083446710170419228057574740736047654310109572631701262024451643751924020318799829571289142946949874815070388214704092107199614169741208162778900718439405125575171496331594131790596300428496022963092381717524163304549821362418692744430566478765880644081130435496942458784351215341199844995234412949773572512032270080218481503024297470261571899205967336204419920571414371040189087489198628229161903008414702355773360401289539201799046233819810598284753108738744566937740206036396875659052745077999218203899955991303804151230607606639928369761741638009133522450573265649471308852891455563967220735194816805949914124629611450988285024301485645940970842678268213712458912124117853581004724130325547661196464749967440881149836934287564991810713023045087699554570131483845033085484154101599138069394883466474455156536213974483384532228684921275026018028947045898732978693757399845945263514977566010682558344026073236959777939485585809862081890066908340900859564209269071648819221700178629251467934044111098440451524614951985013240873210149908899832763337359369890597523287274242472143778701262004391517688468709487371000973021145670457869392550684045670493865148814640515294146310144234449078498049180061471102097760418145393398824357908901415305351293249312040662618243915021733502491203955255235413847557495425723415020136006641215094243587629319320284860590771520488285926412293721570330730221070124777003290615707680772222755919249558988614753668939950789579949434270476659608924656306361559559997587153551350333059813620520546892043927922443171003579334897665272321632994890513672458097791983135379550460742346313605111400288567361145086725421351291377885605154726901075239966774683846691152247818059254941439057864728573600325968987820426139979021704466881628468649208784799835019305732345534931997446337855122212753188980188432273587238618897874692000605417297862415130994199159946007850020144840617356598234239716825468058440589466422790472777753093357340435970089151134804062566926482054273123447013456516173333867758398433713383610427161711672080876415818462993063667494997014609729162886752721501239521558112492310528531360455398062463319828113557555976069687053071020194042144637790503033847657398468240596458014925376162974127188025696871383285558333556884883727386252164580010647619978600457324172392230133613600321844351094289195714748507865140782122500399816998784417672816617806229562902188130934921592534102871899564853374378327709032638098932649955679562310643641615373506858722317305090522624431125576656363200885001908176320180780464304968326217091724420101275284992624888650593717843365294326108196302766879286954777569050210944230692803087534875204151105198974169499404879140065880477302517141881092732653952635407619222228031402376628917953144792666751957871154561297423432070856641873852288838918283711142402054297676860532907258273454316027446379606477941963775815872515134262903915580668407289541462975401405621061407146650452870002232472926191092438577000151943811489906268421703638633356177881895100038784727624156504992802896212754554071319523430481998082733514516416962992670683268168822761592143752414396349105065102197995479230271305125768152621316427653075076340676818899876559262034179205261468791254942716067663440559339463772755064365147715879994164130726819302518209862365470454433017607099695547765541541307569664089410006525657221338734734389499011339676826569906386153681245338254176098477365888936409218066128152602526473662641170370252217167786197422229323732164496182255672902331880878959164331134770172303502406272817158915401028361009293444080323569522696283922179896699894080430794758329528495109040831391368401844727753704291651431928789441918770932554189381548191572443907000718835209356823380570973704842553382697278199721008020150420035379622598688146905948774627967192993161665323655708252737304730858962352516866432574653324145627256823315914650832330928211062023575396265189412401755475975027030958440789639132603266743699828746665774065690238077233610257512321400342001580427012756405100526189630385431541964713906894567496854474245082949349608903944244297317836443202729025667298299893326058738054184618049808571051791720100759283114015204213207603260693977349878333562306437319262944140773540355796222893968246531847092974487170547399948052004366946442047016418181919488306689348217388711932440175095818087200599137442588942515419040979311688896948491171333609721878885890039769959279247569904330497676421460767915203553858112604865774905884263214400490250171033568706018017833801499301844033964894667371320568033487444403913359436491856256632764248725178048485308382757651769977131379227839232180933210438138193620584969361140660688582396896732946387366650824298906051090552077338133217786697376067740543849057609974361533148735313386969458182097035061740541687922503918010963176000115960137185822105577604944903676580890486393065472887086829166775279838704622019197397943685849507259406269243056287447446012431089230823416170236885366380496130374063716097643067579110130013791278708050668671482238576414145411150999486174722902761735541356898071272316388559884544824430769936494950704120013930092376565667238142282431638256141413952104800866067293605827299469635041563583604966041463672228047516142036386061512356343186497585038918112100229940079506106552984967775884098419700251806867671815804117943183336693015662809768463258117846472073981502726962266425420069523485544056210484634351086142278058381519447421256299907506330200887448009900342634720895819466988684625047054388125935083067026296624793705559810712630165141844752137569593497957410025453091809841014608982767187908388508908413481021143529158307631020767732405997698519704173428266929104153611621212492663389308100918082027564317626455326106976896635417249416716037227885871609311835486314256808780806358206969049618705905575399857941872092396524396466657641222671156458930305481905512639389383618041720963338749015739680649072270973809988805319189423337493231027208985301769892496096729463723818983921978540547253056506663984736249580225612541823839934714344087769812740174472801365796567524810330732084976845653278941197478808701875695155391240182186049221957934713787966421446042520697790282987560406325430452608668447557300727395436665212177556368178756587296132924921608021750024919577800492410534584856999164756913942009372003510797784142501356507239476672980389624484516234771864450239520499146441790021591322311569587722351341218217362941237551859511006878919406290647242197672493438814541921702534926316346577224504759897760659145759646097103891413543913936716056718108097930337094548634670195525274456559861658117068941809815315566877230936596684734655027194468371400658196275663346356879234974882200234553294792658475687123285141551605568284631591936422743760015278183256393043163293217133126199793214154251594079095761559500646822483353249856184407145121659302949091125888831987854494127834762123907185197544224385992041893013412987962539673538641472353811081681768913705023917283355202864699189606692816160975747631834192861968067506331091667225806873894449910812782806584064453512801497559035235295832663490462489971637985296698721340304915592350264725631206891801647097205742480037427617733016553496547156595177115294584875850020328072373986090902420454500385091131384213118853032509344285240886113539011824077335919813093572143362740757937524365435932034894026726011433458653693360581774701309715797339900781908652051282829837370913707551661176594152292458618519911847665751795497454915577911787133724134291431007644549463744816829997246865245342411721106644349778585741798884633810277761722087123814657406769026029150485596822910894488198652635814974009760185248469632446282662170694271275992286282324968756832774242079488242228570741006552258595131344348043461198867327352601972622910324082118199859977988003716291434187547853150082427024865959812691518581406690278352950748552215553078778244450741919449061463545181614365318423392177652312858635656726300052337978530747333487387909904287550090990737120951606493583964262093229807564224996676647753306488167103369418209899795384107892258654513310977909668034878325013202627147574233619804912259822477687608725120204134536197459702846105953452637007413216657930906150864263582602084576411852797106161525316169906759237615445999111616962559685247531032472910610000051462462405765557184465944840442853210873155908061407156250035429790409493008128300097791923088581601738966839489771134770663341438677855255902201753473605322766007232133053344426835649081981689036803030293522442575037712706557734856110483525460716104166961672281739716002574690879641506674871461339110469148615306079281657678720237741013625059234739065076215983882787614056240590453129766091765524370798528535400073258999999566288385875846362429076224426511225640540819680367652828310488441813061842560722472845427348958421467756591579428071631787490812166498893867800031324505654926247452409269862156079323453508514185682083587273955872516852530808140002355009990603376705285446272458212959912004444479658137983452644130755841737684098817572427957310032434760459122915783526474982739181058816421524887947170036435762550941507692301727185975324351620022867870264935349394879402653479040071229449920260665276839925771270548660681181176380961401741548253650144224919289854167000984576978872616043846497538415998415911405090620654041393430912948732980125731087977619305672024769691511546776014788457043985229051734520729633948554196624304365216093307084074722503181581306517864645348246603053475396593207079564014080056848016859674340673835427583802133219749951728870858092775281060687223134993264179115812045166959448645029234835676660187245088761227036732743924811835387849488254639667544252626241062772442308236801787264965214833091966376724107065933073722502201814676760334856769960792754235814658369031698066549981332935999110444752034186901784406965811908660624354906791106778380788669310575013340413918987607826558680559088175853644786705090695288142714477370359064436171838300442073342552528125046234457624855927149743266748001866375376494002888144083556955296604889707123054967949373442968108818747200501319148847944008445603578495546804173361533735799679127173322128989007957290836214561291093079768916274550625965717631307956856394344167310674972224492596105363897829670805736323580544239870900842240873099742556833326262767874943156178259194973824701385534389534778283028992754876764453967612922422147470319485205670477209377995910184040068875589124522469579109791877592748312237799214542189131991191455216966820591566782725058025538988834891124005125700956143286262595039154447484381763161900452582224780126406592952973586215548643800026223752654401972100618255557493266337111937495458200812892607469583581489364094845569908420322036867771709092327326152191275033621585064025049139593253480460920713472858509649948519040785523125107910600973458858846190685494960946781841341043793041094946524465606362680358255801031288677005812085085615963222615631036141307598466043418186239518732650069476551346571579759013903691868562107424955771305431762253233090351834711194441255450666517255223422613475702603822573055958064856539654877561862826921417225648789253942092742492730175723473067812399028536230806113969030857819756150739734831532160293819736033750478823449447440828032458253597151808347013302878197493636760828671331808005844457719196122883695550661271055851854611764958705472820761610960147484956220241447197142111762757807200426396329262485906828835414816813883467480523751804965545682414731808519736726533895879066979143874549762445613456807284492975997936420628784389916913572176975692239230294391333211120744423933123291710273337172250351699308168400442439160509529505776221768482700201583199629442613296782676928202479722735990825877692229456514787364235320153492302388181185276253424352743566276897160638961703495340806689254278319733169305797694921715615102412339730091505518230533569708672109939406814152653979971383655603285169647567822260577297959173215865237042306720295098105234108114202387465256984992544549506190247502115740187901177465844247278465983706536514488574460479988324469261072647621513004756663040945187301527036893624042009570926617607599742954771960355525753983679085183309890622351779983557579626563326218445410619635792571031655734618029401679100169214082099847839013901511761072102917876592732056259019588192001616184922930559072579685963697662145319486310150847116807950747578483290545650586039097834826314611605684875366816644493634888719171329798255199339622423505792709111204538738363815391715096157074242654723361554282406097284096579298760617637749182285117605293583612815286126339339615125781581302235056630981350762361649913016974564845887420377750465098137021124905918151533989203268564721637929587833386181674543915599685887050500534130605565966139854831389688101955044574413292587862746101137893982378748688355575235214789038371041396921278228555105180040934568085423158651830072401217023662504072174302728083139371470680118437006734184114020713684260899220121983456454017449205000672649060607945547207992341887506290182656511252870637576092506291345664017828120803937968088557964629652665898502393545238697445860928312309021056298279360900060812998540816503757126861788717116502958251973396133845849049462572509553071339452932548379977974799753560273802237294474896925683000656270277662269168556731243192516894131637359533382721471876752425477642315968612956251534456117960721873694096102937485462174831009364596469427131328183211568901185575746965605522200688147885008972167163778845116609061582448817019973102075010168975383929771906437402126304731120271520623754934162925469836779331494913284198457735047426387257631566862614103147463804133198296979396234830091014191110045408717266650318063583273089432817506470917597451451944144199664041798591285554028134001299168005051661485614331260684735827417222632297818676210875784071228141395653275133973597150330453542924093467239737324016637408029075471846298855864646699959026829087341560726475860778272587318040976361450958239270459989190829969379360455313833416294785274634641926776975291264548992230410846069812127563883723189068777695488809947656677436129174348866187194627230991810862087059615545709730709535989357708628640958487638935751812665448120562407626672462043179604200621214318187929724745088540941491004441676294956273416680737821565817566589760057803508095764287855464864109769154255316128540291214465833979475720263837079679719211913341539486873660856054627140567815015796428269385241435698776603894245975947374606983130347353088014732183712230634481996716397666162187605645638326240155574113688930435572674592080173307490210173166978957543686477221536015619981750382771584910663301242595003481698726870053264605543172134146761640932553496793854993826046392998381060753351216583153747054513419506399689911669141724006226660334159444964358124573794321358732753987469595088804828875747939899212132766985162379015537675965490731037063552306554340571933925521549762978002385388724820400867168341048485053251418281743849902778630545539697606113216781771990866496288065711707976423382519446673810907635544779573066609540662476001081782321142772292595422389759711427204144809460058869009218152376482470887139317937698298166826922725745773588793326917226417447530202674779959580739920495666366836529822018169544558782978496675838621266798166419115919606458254595229854467771469653883694255511631268311930527082270597298160241764397627090849217509210629756021814822454674554992781559984165930712741471863619818360787287454505997054488234814783880505305564907013489160458940623474498683093608307646363861726522946292536579574164278312699539404276124146381287755864035781773383173012600916443381726040004998823555719104249272635806395027624250047557574441792717696659391272192211538116297563401867598635811065470227449408415348651922605172721056066370478003996784511833170543498504629727293454313761681471558998557727554332672811338923982594466571121900682200083855462567206064006485667526252664491919506109254194672999371549522723570852961152932319641525425351084442933842588627148116412017868494040616982265347123741729503316893059629272162438524689855505115568296982425323833596836255769176282144346210794736319489959818631907802622842902860192471036576650510524009138047702416256991022052953235768280463784242399869606241539541899223838880537570755357206786759656898408219768170455512784053419282058917775721130560809543478342182829297727490698964861318602691930816468796948172966443143116662762056213373462748271604558498817127065233800406917869050894455098611052331274875924763901691907956637226884759830239020630435421189648144302256866105549464822299609207084204163405668858796087434751108340840749979343343783940624962885221150930878072584005177933447980690556904927725189782744627764371293851014604928930870390767468510502400077239731543984082916755911730247329172489015966103604956414154652393030038912036636126641899017195007552630786203940386192032152737015907815554055226808781248218543349991834703472121981979316948818429500295878618553190028776162248824657740963824220535744239848177097537287546451810451402923700102578164250114077655995732352624266096499458663771236218958291431557478923226564881479221254211585896946423304673857369508854586680753955171420861639425637029906837463974651704218769950665452639541973601302218918335107886545816011348580048414457350154656377437390494340111953785692000435376442222705226859450289605078198418399226704918433613233919988370811603291660467909708730677193368738814467249395586891400635155038194475718549096412018924301514154596250618393964883716800902583805763140909507673831625542645055915213198761452278533077450181020679505263891798036275762721462632518221818052359582241474844839795907615306859647981039125600430920790961985732227060702183292144894501026432002491568409167942736433595371103469409998225520146260187946979411267960310437041862107729388050344565782603515690263610652866956123700282507522407149151761848588142017074612703350514628300477832932910967333035144098943942966298399900441469219169631903386497214193045259702833778172535557617590639374221632392857190238158308993672909634276013454419967064816005000169561523931927867900916322635944348267167293237516111926392316964560668379999049915654233661022516138092213396017342784095273059964381234385452094886784199779756157832330044215727337281331896529854436175381356112566282011667637277266108523110272117118215836000556576526397585658559053691123148006050539425061551497588648575145521656752817221707138419086640147313655028274275281893482244130979639903220348102471910664697396396695289748862469661307394680226814483205751409504618752361988235205452285891011210816827369343223219078956810011490523758056078302624280169885967824140961256640818236635042530225086694454091241813934538792785067593394504242066430361920003132651363342437242321101045064593307727982799456189810940920358936671590975204794507085084115057325626018345274211260985253010991274296103390129104483315366232762845260952954836939947749035887419339108821573052504045033840901220540577855450713017065769833915275332991971334978018108152913170559663325384912211512417504089253088985909473429594013130526111694307157172909580010137157608458270644319403181532464182091149597441769589406571270830718626139797927815639409107970093263342353611596044862262564927213679505434653563867098202513702085667492732786045971225855990438527615570256387715609853468780399881863425937012508443326330590363391668142916003177711804455691325118976068292750882460561955014339371566061942462621814972487591173777290166460543549899556032611741568458054439470092288202959970137504638912556535845410324426646687085497021416026370268201287522361825480944886299057078084139464897790141279128207341212194019894178235592119486532227197190334638287534114205464613594816631291251911879136958876178999651106986276195868154168548375035031496011800209675845082906267952204915811718286649983256701806293646059143631442483325350358796018325402825795366455794596777277200947621824423577758750575512455884775488981674125269897384117709499085773401571420799488787919915567841341023472686849655658901036314582764163111053061994343835468149892449464165869157573854560978183101861425923672070553312842593190097796561564603144187340749334340180746579855779667615820954682128316228765047330483893233567677395616472138881001323602660637801355325108802864168475112093663102261653604921450500478500468061262739044365758373423093372824524422653956371071361776603640049142069204809446232492930325310026993518256643451965840309565719139028584161012316634514353847315661026103000685986558524595179188500878806244594529292786781150336540290120323226625665082463981028644398532376159886362700790123743644343816720947496633303703308795055079288156536582474166113158981844871662777080558382757144444764511285147832897773334688109748716333639703583876222658358723404500438795112465082582186818965869846335984118526375841886490866362897087282232318790493253078236156078761985244004202007772498724819368468463960213036885877214908136473711386351792286345571481473360343717885112027983883975569570095774062445397856025177896354078272067721819862317380476510389657137531892135548535496102560014325380405459603367276058478774450765267674003558101265533766641056798717334615857310598527601376478570430596164728006411007867962202440158266069536627374502809722184864232091605709796304775092936350865902018646672427054974918019925340750834368482806376680166952400315445276418642417446232999993794623532628235728136960088138341509260042491519952595406106878650449478098143258760796278491258571320575852079349066444100704970299201693336401676344940065413952884120474428963189204770896855110306204742068847307794362670973114738753599827410168628662260525943937815717213259474621893009137640119994526833127566004513644315177575395285420268286666766304681115894057748373873477604110355527597785657574439055863573266079588563602254016979093945781543908956677329249669605444537987459541985900592059623038244946496509206794265644717109828455859777418030075704569305031545471040120977649128525892390788612253501107209109607068300136688992842957573023537035870990494307853332074502851008208014458495814925786659019656188729283904415534317893544803828146934782966197614061650831109765341015077395182104945062764404365537484498106670046564745189898183376663974679106120706460801897352642895759135390970070725749451942957500801018748113215701501461951228197088625439541857257249755868268814276404645748640818022231004241325325123320420282334437247468193526507952411080517781947907313009715653511535415900453130990507668021833338939009957816691870972183371624008580004845068395899267280029497203536295103979047105645702237166711153669405217553603166245796738844552226135826559906061629910824835019728475072656927713306580954581734219039458431341095663246921985880776295716860831235754520162280635505179747518550936285064552266991350362172166481302812775159591785330374387590648082475787023953304100261049541368123092980952622640973672566411814702132458751720223072946664739434547339418216079790614386832313681026894122204763156233410233955975423091821358898811245090005587162243467756826977464399369236854166855010470165485106243712670544104946194531780416261303404270736241016486678487144395535961620249977958128887851505307109960266169452590262103219793970842156056655291803342631079598118092821625300817168406675671148750222074244512021589111425238544569975290949698760917439076364854586472803558496009661328628967732950787076332016178159539369734004701103590493695471979588076338624745358542943896539739852143798513041689939173610659453831335820247764533120861067995937470558165688297131373607579018122380611327791824457449391810625948172647986065060755636613110122772363638713612106887638612952996845322915155241080997081585411185646209161136271479493377358725050984265024594524228398160826574578060870583205986797843429517652184411683890347657593934747459373110863779002664203488666170358610297650118320667618417593666602426292453214704558688634341973524892169601786441405949024277627447701006119423913109114527242018450338687808263928361725184770220325373103034071170646162911515703364289833050615883415595203778488561344920610924388571160749050714686689635958547736228747911601314227516141375469821550225362611313788447229606166114128535636894321706467523549460308987985955133008274048790435499331348560499839034716064757458281485573238542943908235023217717422430741875027265153565492649591798983526765833240526518882641137012411927521509071045641177743439303772858399619010011297764265462595705762199184612988178952309836600537242977390065154602303080857631111227852870934205066067770971914486831932988858615180813903894248109127005914402492355194746914043705939088018439464279342877509148313850463003404848085186524538618751867522562555526681527526933050940152403267798078417949805866241592790284591383894216310365214257713132423393900841617290245336294048654590060233511922961622547920467244712479086045567457448034094772418977917925648087184462431078073793364257751493185756681657829476755518187420523241764274491356607408562551137386575314903546341555091954411026494167552665851977422308302806068101349972567124018012645958143454829738646450705859329426393192541499619741218984901713490971266658454889523230556198876233995556332432978768294408766205626517047387408452118226603743871412502046819747193741091764898890784324833465430986481700015505137362911050579761816418625929233553044863106949057708394610026721183777569174912194242096404625265901554882247115709468270722714047312625645523500496691844492824230231208558200917126492931245777349214889997948314464782830318636042194282179862044180542749253049454343355975554783181611253974473701299887335574391966806277900565405368250140812719388260326695671798457099036697673200286157518757890797934004562257517733102249628472751562314035939781018248370307814577908516776588869304851071578884630868290652374936132452339888163724377312248155887960694914732939972546347808100906239979217549948228411018265448776859705351160386174912408940052737621251704028035833203098408455111462980038937523059236736441528331124875562240157106837047498968183495267711157631466262939079567354479354363654253570871921657878047883930314655074141605926443363427880368910069691069900657131894856899469906156380542203790259448253123136404339410149671680814341913856622970619670537117261472639942232298962434101695193548665282304539115438828754423708665321490379070307937188215459502686630406894848082516251222596346067151401260145798903526025541581745133926742089285744520751482432612901055202312100062417852298250512893821911316168669930214595381736735297715700595888418914025280959490972262510200872696346526800511829977852208118048162886329649157763610285980362467558118970549692791728513749220426274571102942765255457943759668268109517555903704592453014687465372491795102472710434510105949114430344465330951810475531388310781399558623673311518909435865973102344481466233112190887730822522618469989858605065028386096273543862745709861630490385252694785591122425448227760634194031061116135157225489067226137833033117323816430659677531482149367306769714299551818527959650276800449084035029221094582457007732414886049915680958296612180998748287285241827175498749779071147803144593871068259428305579506877875555008224785349793388691784951920825633395892629970947631688145030297771443611341252153447808114473603906190920862113559744578232145890720226249488662576007660578608627756481784067170988348350625277900997912690754463168035985851690352147724089545888894586866081482095478914706953884151173942673615587323531858270026697931917712884386050726766000026308544359985556645139174998757305561125937016351595276270556698940757445759632225530054972637025705933444544141870252171387997671333878752367494874328791630385231974937562580806073852910473799503051679785427864067041239891267715320199921632443474375297028648598105168092954765129169362987038207643125326008388283936104890481157255670444164141350441762263226961420135391942009013465031299945702349087000890691578118936316075901841120281628332110702478378078468162240827574627155130503532757390915355996071598614404979160233677681571588103988874457670740586639803130367293612294288247518569982783540871229191337259171584581079394069122853231209362949975141475406543300414596122863086550063992192925095159695274113018658946596951080095322978664494628309098175856848767281322551796544130181506203904246675911473894439302573421374592294635968312352363848274250180865655683767195666385506780797359793933109846682300592908048371230098256459401294580354309333272172751081228639746817543325692020457023688196232466465925314354795531414685129146265986062800222275367959537355667988513605256391366808004860254072116818600121106405236368030286195071716954611278939412267302186904845942825034083551176279371450566649554604317888456649338006384239650397477643959205132902050889384683161731935638123603193562770010899815168261316536428154785028917519979129469877572374682367952281562711773514201522323536567202945630199871302996139817719772562762682061089277942331032545508085320915703305469402025943236445296966097739171404087527898577525797267278373094166117298107663243116219206366323679958719313392255464912270116612303972168911689875212581695972249259753748103875598449325555444849178090131906027207417770439252219096906073539886903269753919768989025179583822318818331155511099986685334576886679953802176613327543579052979443779895833878039893999201227252913056163542384218763516125284230432201397216939767461109292683975531948786173142666663188923556966024263810531637208134736451158276348020940794953819799172278859171041857199965280497288123770141313960522824973630771955391677470958403324244933879834633390383167237532891065236730705397590639051147795271161587401918864113924531925484418525531618222600610751353660011293961057265553801666026486901847067691122071061067765699253860638665252469448137038559611142082477547714567048755925779480508497592356189388002938304265210612085763071840572788325363532540133855604412804373103124239763684224401505467680858107274404899477592311189642470906019351131606463996523806380283434409980609160465383090547264949950104780988708410169466884851313422027497593698848698391807144832036206350290904170190085628144032598889962820497750384308158823050890853924232019810874714134379895917877421229905186224855041107153853887086896332912452279687103762088735303237813220012910760826461472870680653602988468133516938205893811281702354154340069666380019921655992257674252513036321879032187732814182280642023471127857675037827798391698490722060210768498459867659583237368173165186875044700375835997567237306840130266786480283773729494001894480254457654549913072340044345712134123245833520444578254549066637789528352281399885085172681353103445570424078939495443349679365621501564277595581944839047369184862654120033459539972832804398748602246337184584495852473584612200663455120402700792260337673770642971055940144315045372469246571742053457253967450228395800654669418405344881557764537269213894731809094835829794016196564779948145055013276619249780939493354690785827077513819183547177447372558966067301230041759060279632324607364262664033667117685841396268466631393673299205523656310198754539924375266312822975855139683978167698609569507441011393459604394030952816360831898737032377135842681188212003284006931723177565186487321537092408861580517837180493056650320253622975622402734928945972684954670177553655399784523606780616294677902875089083291183607050178872248769939024221248904432966966465839834840084134219269568584439580847689078076109221195983855082314051608911570802122445492913101581055791152332066172734466990089533086137813562919131699421282463863533807463015438158677218333084454425592020965024349601175834636082382827084894910229437644048111229096205719194723198563450080870555553134538997691305813618502334803576251195519368529529469914200674559674961475321609699464365576879517106296697833080923422980614747980332250103996292490442485619536576867395925614181461165669318435384807795295497746765177088439095417606498573057897955763038678698058681855955992680327428674603982811050851496426301458449257535556161065994789206371164514004221910114912037175023951781100987639149977340394250786965752972383433705828154845222452527775306331832750148968089454209902519314851853744410162992656930583556831163530315115002242505960368615570178967944828574856225788760436165809484994019907691712738170483850498643464839160921243132688797307677509466712421986884220002386348543868187872456429104171829421440959171013406940279396942429252524001874935462767527116939165708791366838179332289148154596691388982471277967297356127979092362763665957124552466453381814453569541803869943544538127282833237965608726262122450767980141373803071749550126734725473073767950966874228081818654935071851121842627331698367793734989962044046368700750558208091463978044162009842016685947260037461577007799486746490361229677430732550618708044013126663777486926554221635930633796258043507044566467451330790003998074919497687812200285267797480560206689545188360442065839012155020701426729639002638799793200764966312261514984814225309526027608902751035306950049722070275963813741967834105656963539191771884522857314490418819939347051029974323306888694225230749280468393208475686959326642235806109101188327003284650761191547516185342786592210051005892405191806373893219013002630047666464816622617488823599969865297117005028876756302685180140467334994533307458788617319091299442774244157431614725593755284325834688948617704521065141153702101547575228445742303667168032030913035801976762126601241628138743205218093891991411947953364629744282584759257875457454145247852140251102459713773713733530239964459096564662240531573381697869875165786790760352777218018631627715249224110076485433754694917981861545259001387214586168724759301794950684006223090092025891221525037592459803703792497855242960960904887638590908924086650195721420934661710290164336128901790056904177699535803993612882139420440311463103703067636292827498328056323980595422624797570851524524315682738892029312262559041318407488990470527562908369805678136395360710036584035048225476604166992250145355615330603913846305458987200187744660760938509738665648494954418279819555819740245748243856198182679609370086668533841867295396544028932134512407466184970934977154803499615799323638436372188958158343270597087624277095125795650896932546664910434674272612864230945194798389632371009567817835193721886044790354321525114471176413504396071301707493900571247749789381012330139731945744523245956957523550075236717326054804510839312900248014377167651662223722768817023585185009656600202988213555671189729927740192520046987827225958687103904808839949209328268750587770557352502028970767541599569551901879219739645183442828573441718840900547004961227752130069248237844188860978289269410553652958492334384343033480751747554005821393359847469362913946255545549708755958404588622336469900120967808050415797955495097019381281520771634815332335687061428019577933218609417345333395896937125663173375732029528828566888647391930571234851703875116555476123364857494958544281805122158585319183125699292595573225646843248784314861441151329844226992153330127307042068045825846996310859175079188698000708609414215907648095484337935197816833221816212720056721838861340039865101549120536747787178380268022179511109109473233923685963188224231209626645955949516752185372396422818958598709168177698594915129328932816940090032639972272232944135177995249199366946389771412573458123470424326795711866623674727528605722052210205771078370703697361546503523194769803816778097850459069755251347858451380028799605417272821077535451024085672035453156786161441401841734420486667154407801501574805886391887677146067368834493200621828871899992762606038135503638937528178206209872567329292356173888443302603459483885001687110982857219840044076768470430504701202409822181831529583616027115528039254975721258385200960100374767696419555127724083240870660923595901256507219743745789071782444635797811439415347603455611398610312765762904858029840283356389371018934232220727551308943559663538638805569083504407949754528209063175330987092279363626282685135774388082554490996634478168325537103854041505925434415902346522759819192119242687687686223506267007159363307263844065222379043689951377682040623900384571625310656736660289743513202747649517960290337286285527489628111774667998342704083721308699099571778892480572317415004738389936911061265267376992474267882290089393300247398627516267051715413776494549940738085796693798566066065013993059458904348122011343914559714233925988669495934189565921472325079508795410677363602483273840856981028247930120384930635882515449598087929750584790709509704887490036924170251676213677487722959611248539963386940092213468248450096952126337722134515631125250776522630939594927273864010403536736329778467621145092475193892452437376768220023334713356928154300721641937466307553949213713838865897931099730903571214853469869255068332580430273701931682499637441651747505139174783261893964952007727360477396653601004573523178188490432289529954033080226423712728485474400081411823993727837346745834268335802591821221724366982788195941765757643876671502419875251861743853389232692089895540245986097657537423261107645418052510735660130564133811718634141549539844307964129960776580815232632717374922598158341275099437768985210415674703753308660353275254566273687731779153591686971956748035032678052472350629726542454881942281250189463687102262261546749976495868713738204545432957577526468204599824669832843788529363012211739236643405976687688088001119576067676893528007220150061133539062858477036122823265149869250961963503986877690160743556676662998833125570842371010817768670265593843979395117864538870258993583155705212526831769455049578390184853861196308270547235331049085216805686549122252438859445714681959362622849642886450076231824361857450117940053736836519711808811217274863591959312058865156612925269784301614227586815919623044250039409861652918089906931954467470988859646287120330822860824536842106131417231880251263011025312307648622758924107576162349685125727935464020290118148898377021047787004677700893635957361511598954637834073979127301553388851475961242612540370141741339880055676517832380316772172175891065787407980854272660107181617624721628925577526242079749779610225789136930882005516305234950568959468800764059585058425378407595449237245577282241370614385799022123473616829951624517892528729655884044485911354571712238323573904396744584445579631422761122881315809884599005966242769362414245378844518348060090033947905864379902642520538940337778702420425174617027589958230657587032901700267416555380740527111582464713951137164455818654575812542143003447634882904199102454923632029814616192147793524344882407639751799611859456293311474283228793761782513731253533106382122959407274778982826689461092040283002355336765185504856196061047241609410363573894450183017160372611541578929223681214374684389316073376932823118311326500727275344842625020411530738590802092984074474062196784500684023058063194317221826479841005557231952597635648776038326887708454166534512394096699834549284730888040551224147105402571427804499593581923388176741719779132627572145767005799746500333902366396109832628090658659986055988336212527881622674057842227184934179217439120142988332457550400840163990627804767879503532855089296413758358310977518144681552397259278828207884469159722001240815925545204471464638425698147578463658360194325240833080928548976857909750285279979573475937462676845330545201709330330828687842570687107410827999589159657661956301555967203704514723815557201069881552056224766984462212272871787458620827650419206197843122293911826359007093852935016589289287910972159717750138890989729612377936358737777826221076391249841200416107156084913303201970431374186754856620682875006325923552663589839518540078117240322580716059187459816227960639605238872657576729180816340075476557157666618410152508660874785907181037890286186160303727106193342200219832534001214314262099517471923252699743245228600001899981775263114210150433146782270365354837428403403512324733473497465460332611675456633651944637657934042635476222101461423290230875615147006101575949805605457493144585343295156019377991160174168109778446407877016839800495779737204718584548607394987250655637342684758070607036998151501400556945205692839676783830304920229460540457293250371255839462981259606340644494891773146654971827664488074360089443082952012107340608068421116542487452199591097074853173815221808658599903797338067848931298765256145883043404262622687573141248084876027989832647396292243394216905931343923477247335734888084653906847378120251294436898769703813771949210793447009360540235979722146097059701640357571939824703423512520467650984201697550307834773765569957167253793035327656299782068745890547868623578447422738765239371312037474971369358955613364142281642674670489073734471284580934873194102777242125034188121226072102043737287397379115184532019635257572806589779715142996943469951246937514889461247760709650169055897687065657080931286960252668732214464919016075822747202027029078473166197172830964942223801916684008535616246882599407350899544237647261699784999607300228619766894567309896092061385148242609722039117088944593259333886519319745532744483489670698047091979974171712324219272624555039912544076809101413792816895588712013890242987421847211645780402463569436364285522427776893148399611277491835252840825256616775506973265505428571716075970574964035115611737394771558799981945550301483260535594089580875718502429703734501053762675448408197809115037462128553531609102555441872873585153483535422588456360760442030436214295602168498042133427281542831727008947392009947789601359726858710528419110942679916751048114069636113382172319795252758685542668255168840386663513246796672077958983312043563853446283079374671804768405683720559364500085220467049643073325680718383904165500105174091893043068051035131987230016690647905354752662726217001496911818285402883600887397484449326870042451512489574524874667220099498541575315216615140285414621506943052957781176175759599506178387973221612833198955786696831157100182301705051493644014622416660356343739813580584605608140862357183723237778955244266977589863507158049634029500264305369308769771426110254681151341773417726717981824649650321345881338409273560301089146462426282806819585742689349787020632192047598982149045549848655249107717000546203072467083373375348823428829826763926346718301407345698318833665647334490911918861549263646879866511178683287141895506611712482550188641815590396806566800688367546913892494674402886135871243831356148451039495491716284052582494790154194511644516759486054588119826510985087553212155378068828264840849351932223527294549821068669819171803077638398423371204560964642714647679143976962841015813940708105348069505742707094052603046701583464172478211397866137466626624817970245099853162938167133832881115963607113089705779342942825283807357521575466506544269492040260347098153251694835674562346668518767058290106750053016736719622777213368269788700554661301516075194470613500600828847688869538554776558252404604832111559170246700999402125740510183240101884965287445136171423211602171001949955954818667877231893903584975911832090239695941646478339877151996216474640923209406170266277312942461252993949350712315499816418888340597146762798819619023705323708699400435586130854788161197764748576578375720817865243756034234323964491371856754936045291593499950466941024803115025759536114637876588319706838523404881490845934260297619164877350047726454241271857252572662617723596553852269131485277745954989799396522945243563399333960946211828759377590881174204293420511133568313829173722988764684274723266087419127983327036143980288700960720478346919216920490032710278606869692145895919144574105409115127681061674694499708426799381737496591434729290137639452474967413864292618793335200212699142079579863047331212716311060284044981143425782819874965408733810022495420018435273303723172094739657794823307668007910061126922491632548137186481322209168315292597998962848343914659477122375046813082715291213282785906973055695432175967161460165297502281657178716692342129682708745521527721308603057836202663762391860055456297305710276764794735840276440431618803419867976342873714178099265141646792553469557297565030382509164293855681807466510246157460485324493081026057222192230891788892596907628324041649465469664852886631647774776211926773370075982783991734620852649333169999091207369117636772584568163622514362984144991672501704240412764121016129216151830258156146170721891878808906461695835229381290255430557557581839472014272054355923784453780552498406838278586842353091835090546881325713791025194435491889657101866933026949925495042579832670463572168820768743462838441740095965600362473226334167012722067313622702979073617186242745731199792111507533430176987389808567436964093116233232319812696737841233066992123386178315112773483103560801959311136600117679975035053324688406493026555788554451325274652617946704355358915764418062872914906204613178918889350720253722613957310855819446119149369088096596686323987661494005860634960536219918417587546342690979024367147193974818724693743744618533927553604639951819014243253675988943188819596686112410041783801255155552758811734322232413706650936452943441583614307044724265706940955143945651021372689425680752428416318490421528138768215233643592982431788206707538832398993804788449086741913990550680018290448693066921468134090489619672880655343791794802855728870663438223053013035926054194018006124607661381027451959746585055588148414185648461340589374744145667610050941107168662685809557441792386158702922607578303336214421309068480439576172096267230917108920690802700290751028206337209542868269592267044169666473253928731341091672828277839416917541938101503437589219567567811087626686767761242678151561415671641216304281917012459722101958659229335812638055494751562714449444413343460913216372833428415833170329950930085126745691313524106110230227230363965573454660122700556267503741941294360322760424317058982684111718998135006780769794886331663582383334091100681168118330353960970809813460588843447903483347986647993905382339508918053064125248028256043608640520077705193292485888639678470955559834917152730747976398946224763068136603634347974691650678572134942740741817473384664344583470523277997330343812771397804470629692806397627356108358471704719076557530016215813957857756226430329615318557691093056339493572073452256798644993472677284764350539465320694705495976934850441864412237095031579961150768700824194200401089364039737044139946615140240395507774630622504193337531003142423562903786824226753494766560113675517144155241221818185256218723327291312323327777965879904945260844449637570748667230914460658687533204218499408778315825068971036976714263426075377105647349900341996027881799460465942180958141160950647751317950467233208079270294910508551089695799044163389999728192641374952116100632988266790978452825047311725066189540045999362256472460937985188472432521343008465342144326709216163734010589792657051098507994802129039112739888504809009064829614003688562922767932155732818735281781801157070617047245894364936412157569356725301399804715630932803808821174337321585346086016187338653597727092228175169970077209498019700312643124437517877558612286704055620220416488170910260538584440461031971544557003486450656407260287985072526660960359333149589751724955268680979080841351189602401895442539536055984092428639622907272343022774609672010134869377562526641034092652865029382552555213656066942627413487133544282011891476927064096622332508092350382702135852292288667118358680459291777327965436357530192385423826747594345011675851448766122750135062592355754974279691061490324569080763842907398103731116018412787527122433452805347401687684424950962914182761184686993058924251532971650865292555390893425376265669741758533474810860543880691353934427262272691540825224260950612405372171914286982033141498288231724517171801744110277751306925535652343497710561438999684888962656305553564472054563166765319645153525792780804762186204836940281527347655603254325882521998304680249949777961681249762837291292979358646510941530283877052855845735499499629447812629450432676515367738265932845098051771126199670731631640344693035810041325552811878929112326684467482635233619659725082903555741998150905884055498626497817935008753214890482121668970179880416411678336974115444406388771403139305494331533372044147017078305345341213593671823927227247105636553767465792894482710242248513860544438476647661632733060703826439061524239893609728287182168902203630161724293934161684212772386064538676298123597562528740498448332950016039940188812213795210944077513307380080982534443975264766619116755068531450195521541678910175427707920136258982417794421236211719697287229205394251905330776465907834408260121391426204647977827101523718078367728676511663675485462116356084095927290079852188997380102888178793312776850327836715857159908420670603812010475150777862150065986965245206588259111249037672479443594496854760554376837324322366294587868314795698189155447622333717847199343629994972122246823337806479115185030904595868355934977230671784469632141838441574839812496482536190667050967190508503363965945524005727268610787787520755636292076347635542335149903224269782392668508619029649258790145108721455592303848234986946682549929341681200497871423010671359412473406666149181663459681608279752772246225907719150639037440004066889680219951414017207531760386691504521722955153743074225084515670321552795392943311607851412028916233964275230005197942961313040681023127060192163177756115976935502926631399329095346731901023583731231819046422460278386244614894622560735140630634464294059678629628972870759032299158104870657852041499828268809444093562995258378212656234830059623301003182822794819531535085656753100471160926731312515610645872399031721247788254494816516212173062906784106540057671419045043443564100442574205112559817114458241721835405682322595878704388943722879515242654233048122435670527242165975019730437954277777954731915066443227583363010025646988054887739658745063450183538363150056678872789208957928414430159783462277337872141650101420297617042167256238453503818507842408948076529209256520978788978092571321015709386171898870053139609067548245350234819318073786652967860445230367645594196889870965900181103625316333162319761444319340894708825374220697099710738953410219004492519306249991277969699970671510558530726103767489783038772227446901591681270580023900661720621447257220485811626106933990692837319209570557753525172306686168460766179181204013163764753113841740366046430871296542839597158783709834754397576305468183521561777874445734756126982643613354496628125183054389846005707687805994561981701439346688421660287827217755858529891449534014931920147246908470871048409906019309683529462637150204228399234302929501724383387945875758096320850689947065436746508340429919521953881367382173941257439835520034768606822873832546915576016817266098807340201224871096636222429331885690521156773565770939043117329899618303363615494278346925127423217392319698617376719340031469039355429415829432773285261874056489344968623855868104780574792730338813389324611890453061914139889590563525869603233323092007914627619189197099372857008877140529576897425673586065802863597410284301205838812658725225875036238313817888318092421642658127116470837094888575234816927440649014208337870794325790835468711218212028642935480040097861910743613384472906405463300640843829812638957555931920412666459835229659924034100294074442863721284791926881001640203939289427595836456121125559603003261173171567107692159391785812547915000027984986860654562692991014229129027627501626137260548587059878963559470133244234712500152208517668673320328252311324122867447347715909011660149169266657630642401834653956973788825395182622788847487134184625002169786572349539248095430619342218054930970829701958390122954675550836942371263193124507349034309677337754918137945159146552066351854074861418833964503519933667829622064409923954146262984433192840526118377497749725381372078545451342959571855885193458969091591490291045370022345958467849717254911378331785865037045097416989604513830843439347804486770888060584097766718843605870098345520375896681669909465422904783404122126576697338068927360640169276150475387600480513874488118286551996525306119247048422329971247833227474602940883029445578128613235126356359054843108696628693519089192573744879760529615245993426731491604020973319520271273821382900778791317107860147703915902210313696935466170986228440010510505156633839291475046028955673905268597245560067410020815304792335784537583355724076802436858238541842961324212081062837082467529299374070166488065989395702415166793886595360016014307854833580148052391939151961750421480302281630676077422701443811755733180718557530270823967493823633609209717667020782688894119081199112630675902267628226604325214217193584942311688208258650881972243950261695228512923976333851046954827470305236333121932237414858982813401219563038412302883010447507051115356324935068308761731756547221616762570004275415759902455011633263391912077586597142439495600685294401510166128309174235289860732272853645878963970358394928829177799226678985019452040729379712624939151966058617076804029456835497733967092678179849323729128540987277236300935025330498068984313067953329937467816533686157735276023725025035183124900947521125232722733836319768604016174632416184407438043007697559573094493233824762561469039566658338067078036388608196748327727602349313904388502986312884347952037214862198891519283038155992941194291395282062661695936086026217066220582369414099955862206095792160939007114357666421386503900980576029912959032688535589248443213589157796658150694865776573481720838853852174435520476119558009929499365641803190675880908640576365591141218619355275394419273246444311145741988213716643372661618416407806231009013113163137322509294606582753970426983555039052765846498092822965081055337821004565895928605155399441858695246414073940839069072342010259938591307183422899278631789381920635215339630217128871974613097903733239262053509033026353850441157002717534405134262290724237477002809857233724916565291264416728191525958339336653425315982772677496999044162176913090015178324368908805097225048178855633085535848163370168985513514474114488750781802828613729206574271725586347335430945306075542312964796462390193119055500850505859383227353622311784802379213632734453242646116110535519565994710634857148211516526903566465087377707346374396811791987641117224300784949602742886910345308251255789281878007102017322276599020131172333461629962684957408962836700254315202377976710740553477961309147094806072347223132554335562913071296396132080203229830347218882560286428716619075896041852615115536711153772231331020459852175632620613662487107653826792855438505069714262213845024101030447009898164182224528846951174881066463057505148629802982880161231152458644552932893132734072681551356846303005356883796043539535148302676128976892391717950356762726819326645419213963733333561705237262503439225660179357851050406378727696126336123984841887995303810665621907399354270856799631892109973425835714141853055131134787702508210399877611349831688262785213268948814966246012385114302568902080964854677900973886069704639454213456436612004853098143513181063870075668074233525781101047082750116246070963593683693851641605694521537795252930774459398323028855444633479413631548342400738351970807934001908954497000346653129179367054868856268664319073287889086752855166398175086739993752958905342001712631657724331191904697943415894746479561444458044327538975484469001468926316825199574444430299197148273830839086538902792801613521595358189675025783037050391718580856545404516568356794057787764549170014415643307270884842058598703357146548115046984849093335018724416942722362778943064852063818044532687538300479172480727219271841561738749263840449618257335799839117377622470805193072536108338319921821822620288891108947829303433458705646850081363521760622042465472224450146407123584245824309484873521104740254450838507255310224105313616248549749725450777287351918052450361844770501413628087673058801751925033956304679110239060113934075593671534155601680687820067698242757411345000023880697034338861528177551290603454614890831618509138594451529748817708280900639865218444515291654351907347107393891401150923831543373636349916248860328237812964258569561179497304104352260389756952811722276744671764521158379730608470507016175869724147668872233627980014528514359452200177654396198755005236134766636214401427098382995833513403357121047412731083221338421995444071184016178174560027440510067370690026510554992833273941799743911378313735045934256542883166725617813191503519042815955892026628208099612667827140637900326973702020174357880081053733861309480864792226741693265228499189491055015629597469302626704766152728332736802105756085826085843427559034905076966502976808030582496132062148490068661830661875850888725675984003977840227093354979042064008191783090004199879961712121948709007988198888297972151075296125583875563300011244438921734287694996433460055814338930245819107559418409950341680710255768718144385339881714044299066132197537716781912475418533774817503749323170950019660435878602509514745307155712486560682369236316666388085832584750756934351178872506306088527383636214719857713562851801699859702172550696485408911571001310344239340160871969215220400118078106422084131046333105283059661739920792272167463708763288307695832659028946359314623541147170894174942552651675841228992239053448530737106197831826182447816224441830184698133101600748159500440221095001514082245008099869561660710730827239188080020760475724063671249843805855446443779956084786490146303787751558666920106618116913727234048506660260154024292160278702926226607896148716716509914300634492514383944931715189904474264295956396979008538166482061497456068377247534564467859754533518776755756949534509713156256060334594731594273099435891356426517705612620467578312390639631441142406541209211913633981880754989808976974553776053191649692050769019494257625405096771084807670221912491510734225317368959426286414392724563193663321116509430943792423777109336265681754860755776695209885857368611832156345977408089680644979934112932937030316154668847088860130632876933136242329259999140199681524250964812001105830947035616185310733588801195559732099133224367910474868150226895538303723496696029767599657561437012974802234272997150438382478194945378624921257052215081364044165637888562035344291490602548894108839907984853340681685066123695446192561588803185144619665562322202869589042233678448828105729616256437102950470206040640666595600891427028874858052838961130024858175745019293764699752030908207601811333917568179932687183765314845078884609470391809667965517870260763218055569718363647609709988927913219970855260128710855656260537168135023630090880703510239143472790578833681556248340911407782949787353502540191694497178428448145212486746757249916778670137305356047979097058067880594852712910174167141564203940501180547233473543136907991695047201367043489899189452734541816848120228039804103492250058861130929571165159891937553061591295134348432002880207405019298148204229848370949179824977741445177797617142146370487882549162484719405105801443653237362893418718435596135061911109747514359661484541286310172884460877211396813227524597978388467548725123310546098939099246272592685843703697734904741470706957632412378605840760570207854425139293602977286941184488611101132333421902904251392045682434455450363025383470225018282125321608617341603242238424157200123918673430306222942629508974873375370751151908807447258259577601565774570240395807346445793915172998249828540514141246866125085737820100795721611109598911417477619687532573303831979733009493325449026325554937733157948376615097358228498960796386072287751788149272752364565434466178105145580928828727139241694521942544299618417227623297275590732288940031749686050440905414228264699973431580099370837478746029829709827402535604814637058069888717488842536608410754175067292872131880325729515047333426847720402553619870498050530176318628861413515098818623302354373415564219948874634610182924520816477175467988148760907482233301853056945194353510322711123183454316781642703068769848305811046853791554072539821624631544505532590091555208134741873001378001191532963985869341201273091357140857941243604921029303258721044307306712604812151816831595792691558058877555334537253651338578610303852587897104624776268856291427560200326971443790938558917523401257516612551452706754069341422826982889326294498827404287510690858572188245440109022847094567820094409838645508036592848516226865624809648389044009469882937131647575467320728270401185964606827433279216867701147346839844808427823283516125673333644237086098474016947382882041327038642917168064421050329928523988265310940137627096042053745667523932728286110611113194881583861945228503247149663606878239174210335026669416432400801791075083386109288064709281995196638585329195763207801984720307779136356222890941119960282907453586032459534874203391256514429185922226634269611674763914213780749997831133970117651498082248065161293531396957590035326497912874893280103784025414038782827519530332697352944123002787246898724644583358436906988708847727925527234868500783319736794662160500273513691845066726698784261092671326160566694644121197260022112916092535431418713336955455482844122656453531391255643263570656000942610018760871368831785421615097701595514065495626965429020197065319559758610283897497278581261402345530920726700230445673609586974940350348380806836612578855618815635073316970987315196127773986125229607170453624544259783189816597873248583734373301190398239011598043331447134909516799891302646279458688504516897081515181110250594148127826610921567373668387210785372233409416079394275097485238199875195224417324056142358452186867685102794280700299064582750537168975950903512200445203297002130283926444782409049773204003315013886648014540469233049527092526813834492911814447990094854686161832947931599857130823851660141347736127880149567278218271102957062405813789067688922939978554347095386967306914192946173848225762288994095239881233925985486157836422861074917460310767312989701362261751158778801738451354395020262576400481694247184906111980778377607504680521627611761494994924786821416174965623307560240222023515802574400605309558928814924465186318270092503452278169960923185683760083713748065022510087059895938581785630823652178686559238863879359105336391292049394365509990342335847640304807718204577851039317484475644372185807249241812049102469873962693462726260150130899716651124774299884772217701207140493893840660910332671155158110155695213897551978619876781481326146347277081019525783096012630410241919229343733924255408152142313738605313912182216009655427760381800589532221877315092747205323192937455356910172507058045926381835454823384029230231649688176054912035202780341279147163055961617519142454337013550754210911545533008108509507391576316289627371271871418729267319856462314837384535698825047093257202912310501115515678000187751615303091889374577042431357165734299506428598269049640776536895053290570680502112973141269099159546236630945328610277002467951205879178645678892984145753354590593223425863666809834654473381321321513362381370990130933325215811804458725934316998628350936647388132419948859748685524477069332424012480571038313517880545281758284515350621207443440802880297217321895408744458448127483737880548899001210082219346062527553103306021308486705160738457645258140273791148138594439564980678841729906744716542253715915095479682263178147900583066398466586848454151163624789420828596058752475397956595793490339578294446407928267928948751201520679361354953514045178811985175568149796414754890826690938148629017465479255256919634346518879475406881542329108838983751083602658556152246752556107965290096135605096718035920422784161718764104384775836964633527746579729990721079072923270435071519635435967690297577166005813839946687509736982888869470070779633992272999981390116520952932768991441599357896476048595803993667923194531450278743328660940701067836035910605553093698622907498825909315302633575656543956316090549290317877796583724082693697211439849287907649495310062417245946431420086577302291549408335329283928936029082861423608235805080459085653043876703019518725827002754262872383486894094794677444402508864136012893126860989874419370350433160321989768964495034447452813694587763211066194460778296609606661472332674511586556206887674197524423251903504572544308067535907769265848501214234557372348057240867791055642562408759165897977666987764455508666039322986370549454088536625099380324075439723721703850369950108157962597796240949336083747275800398915258123482116900220611363935007585040463833141886498905445822128957326795114776248581628481667081423636227658348333369915628498865852387467901486015784255244222785891122007707550822802247875529659789180291386268369157311447827959317217824438292322896812679333076764782890399927460382814793976066360853078931826331430610136476619349768924253055706036090026048269592742364586088547639686450771743539396886521951605538273843764553834889421939192840035057066463377993120726681022568411688565070381597834563116904579691172106034190409538926344166620864525101564543710269986597570803635029752102342383650427213761969151983614602046855687458023104990354924485955397874478563066544862046962222767608476059402614769971650223690827937121745830234959703938396628232971941565401041411276849630900963301160282906003089728567381732915886268830045193771065705152754204614097673210667772963822504175610940118300507445034736213542706561675619080569805369667219853835998773868156774730293671438536774601831175966395501945175272761471101880882005804011906843205382471277931862985208617562522427584702579817458534412693933520978142854262510389372125001994981998268583140958048933671640725834815568494564768944849239687663202229339153696345261578472461166556865806661153615765929597820933888001826042234569717135633236196005468238355966212149112357286274830806466028094473167503804119008891975174277995755516433118450412475703672896982065470863567994101632620333975186661464146495183368622120604092337237351566883790660397951996559721663921886802899958842171396599090365186759133487515762371408492341777638220068165626950008233895821068149825957569800524644790646034977561235861644799734710265709399706139345100987038855991652650587699549464518391367456859453523511412715502764053325590763596933683130771362453552163102207477407226637835500032760918795063800345055677843642066619752988473464065568457090972075520804885629051544183540905761469481228978973344484531398958960621301812940269059782024885633281389635843123597043997132106699619495666504787372522824375130839805966031895619901203707626446582320990514047906495870513551259189640549587360733071518410874305857929309827799950462868565501039435655862829134584482190211639006421059080932855628860562172826777276544967559936908299399136854393147598196874329946727311681290491474615147871689070262665681152043862029327291747785536927760062906888669036140340718692646660287806361608879032799746181029421742266627778536792220288119885228286314651480551435230129046199894013732368024329142007285585492866493515405463297026769082017514088873729300414361987256494294171052923601778229463479753107041501300273951220572222347765113016096151613382680495328479129217837753927561632169669674302542265130047961742218462079823828586661865380089835709546132977543588012955530620096064802223823531965651015733994179530617897304326453452817205463552665928230149375930601582177282644114921243186958909672670720372377379398710776270928890532169431961811686355330948758238728240778828049903388315040946855428282731659901194433949938525169669912365232003563744366188862691542299359850895071865691481734375084003267777698899337753753654118035106129971494460432980618495906198310994341023649243146694834167480835807544710191253250485535748079139637420542810365963000709157428325148386236295090296622685563561649953025184850877018325206593819613957177417668061623663832669610830797232916393412583009210045717066114482766020847322909343641905409316514655114672763436701090196391625451223894699246130269623745316549830256840442835302504331809203972890469586359371306751419749876225946707002285200979875034619022142100201419828727177108203280164865518010407528871093841486404429722706008419067953827267343740450729261408078432833712344656240792363087319802798535244073499042776416665443991771997415911392937454091151695047037440207131456371882032719438245023902359095184645013505151923276396096269433611138774103128146036124159394311101995425874659023149206598460125851899629908954207256906418332152423009610896349745563071943957829755574382555960773979116118049654878906945653624739631305858062660867174858770158667460680027419252682823951814457324800258520398263257434153856993488871317849763416447621355516180165998044253605135901568011639763377672644511232833451649100778901755272417394459393085632680778558021700544164866819254924225176183857588966650527716311109908861807628997605341770292407905725167109692828247949866173581246829762744290999532695140098072743182040646274110578268498539045334678421828738208330736969681798751499357443001527248363662179378491960461103137248527966948601088335206350600209572623216834468633148261393994191224119912148362026971892079400666847660789932367125869390366386994668818997987991901285843078595577422777119326785065973062555693491137305912829410767478790337365456595742127247050140846164292911454496459585458348933371557597065642133674050907416218651846284871205066831089463593793566884424251835690298037686219381485712806668832658400318393980962998011154029148150126763052119049985476832192550404687262701328873971255555301865653313470476485192225383296479010301342796646706903356833706757575773449793443140497142826840006668931949949746945244143831019530380455548765132134134785459347815274169323089605163124523139478774060689475192643787415383837902377870784318729012078855383342647865277015577419446420246497422526609277261593108736956167754325310965229141936970344503986611016763967155769028313844372787215607301998935999753394263178985547311192524113620244760191974234287044231960724316562971516814066336365970465538212172401081366622939174407906694625157768732367372768392820015077809984296065487122099131164225805369772171087485849054168703767796186582523833286762177578114708978324817036999940007014306172281980277729599623732853494617565776245200152834374655638922305253555114190939108064554137705840788875162397728748420030745514140643379420990257464369835301157212793081501970348285377423861351684198852339218832862234831754875876786146926584261823902909164831273724860657208800233914247182672175476698192602924635854574599409440719433348315430825840725231499299427264343825043980507351141415929027927667644463562266808570234540095512339248029445534182392588553004087949540630965428886714998205407418129351318424628425067399526850351217021531604588702867272942794109266707848896038215105572076406205389718565608382203142770819400386535095632939707564979916171541736812464304954954963650484028314251391632068508612859465870047342504871255134003979653442014900736455266146764049627748147009321729690722118449056417003594979457167457322314034288523267036478140509398423321736914851618448452726490090758820909863473163773805434646702369544576024882980797285485504110010854494772911529413244449344961231459128979103431016700439205557030701889364857772593956463599471014353209570615555212948512973042525474123961471268750932393239690630832292565246809813864272849834046928934178045692195621885108960757237237980909059953397411350271392579549289344322366219606523701473209704777809516714718271286698020126299899376665331818404122181392713543510415484750966150795282902311453201989128702587297634692334803375314628190793492306513771713803063340068989804024242068937603961579751492931389791400079336729460318395256997345001667751891548648780325858177497243044165348584591827368466923805179874149073008321016211423433622954637063955095855001052877809749538109048474108416309532072157701550017199173392321184690750105396919783245995219751582648878489343567727612339172224778932336896933951500842134757719368155980661822761360254405281876350732478566723341055288562000015557874591414418526604718992494710519739814760489727234266217978550185874709402877171855402436757455612423565348844915827938914573513049146355417471417448770596996137012293651304126462016261671953606082112338000100478826632031137508364868769118772230287572998246338343269380682224008814022598970704209528914793779920200692089763348672733377984311634572377859847027890796210902814821528036101186936331775183926701810073852512427940766147015593084818743132978937609019846453943872342291527931614193515172561114677682004353661090094060716002400178211535226811623145356972157974031296630577156916531934460264003304450325826382258541745009361955203233714941299038620919439151948445616408144431338344282629445978675514316268092430706485303113069785303794844421203360816268318162117691152565634951989164443080374229496970858528232115424342140759259857839980812944639586218550533651579026909317157056681708797169094334634487582941699642119015926588053702773919203932604137235304690814476995191700509417270329899337251289581098372925369703576622122540231944563401995128539947836358395765842428487504194105046141748383076075447013675917163491632637121362886934461619561623576330854325712577930502387200540500118148649416938897045650725136881399443524619060374529155440780509341008958633283240697391888426949770657649703195669637854769863242946304929882788458565287879270797069002369530472472935490583794640317611079059260325943298862044075349798706335657048074884938470682788857249461342210850761411325579827450355087607959240996329401512459456303030543054134102293487775722345762595126654699032427301898364979821861866487268354916246318205679530443382451172201825678133342335313686635713163015899699158441551597259192870422404192575894396156580519688672366300835256493888261379659339719870909851560776576189120586291439646051170718349780305682149111872534005910193789718168693521009251096678658492138638398645284140807720189212969752076627842320724348825189332601098442067715948392131686831850538001064435190789384755089928283143741309277908536306877303683464248080211860274941322884430309802958122377081521652193057200709809942577193412539953012705312912518838698245189226984602607229709326250759121685133872859138995290661526382671951649922057459576308703124877854099432130370667168467480369039804204125914981921065962261868921504597714027374778979746987444986473931955662428149332832406183895481764424139106315853688231706067421591471745584392164450757018595388920872940911352038995015116588063584621864657193718808792466194121920344959338768583261975436887679276800373457163851703798764649771107150845607090649729798263293684973683439209874959016828275351879208620583500208872472804913234137993584285679213570922116260125576319080240797156397413044363118869705538216981310991497640071281169511803241391419554600895864452128659647915929924394862546847903467841179691310879977697880167541928663065605861042477626590665126539801708117500328947214322861494126338223821733667751173681121776721818459196978391682487106118910247531246219665127989241351022960780131768707088437858625441855491776729303486792874430692970976453963053990102850799427756750760128189668464199444542807152135501690605434393148072410217048660249952889934430084822157734296554072128680011851338066047433185912179061091189633550915893675562437512510378425181811387784751969348209156128885708069997815042886172851698211356965320784763810747094332674208274020417831395544955685651213007039261423708021861370650339944785870148756401384645680812532749736951370809714947585632444675329051692297226860456188169061617347576958351748685737495884345797981226370260021197412064232520601605122193023879552024484271489219551066296243348410427437909821407140182733393913230833446183340000990058295747412160594822060317383740805991882079370674460054985232008234861586773130524083863186509940176108934182911277791914133503369173939328190273851120042691977518272452505931822133329093322865841784470044185757429732027245453568077589153584803227384637347984003426199204947718212413415508140834443440026233963795431517533125592511120010684218512149509474654183480613634336084521030310407551208353982485737229409341846389272803814295756654997400394436749284841496228604538352307087720193016459680155878799980191586666718746595153684343004335297769895151188197132742931418659585228708378744204494753514005238100586840107853769161716949017372522817402459534078178942122821614858197613217845727597068585042328423541675027925457591390834929345233936919652384887002571636520909830380322159891660301351937241311748296780421096216640661075844574306557536280915626286439223415162323300279934027808061947977403697471456331993625619104660283489697176483896116149725338901552623061729160147860499021002530025811674009487908390431779526720380669412427191572409434900507347187177146259898244171178916561099976757101861445504836120469685415418796591060927235635942597802030642732616650323569396402889873649933633538283564750933064247740499184605243942737133853540447513323262325903724971074986974770684675838829979944973887005921629614507475451330336243853031131211241784123153814077425964712555345036692038511949342166943847890583275560528869110554091982502103727475372011671980748772191457380052274978271322892035861720781394623595384084132476775037972639050063464491475628094159383081300543577520801181777283751562856341511744968455466728383525544861425326565961951398901717333824804273890122747375703010876049259725470339613022024736002766713532626147994603786569344409778636665550564395605300729539583685521379549486066148201288274371584595229739923208898490515233659314345672534831524815371143870470389977216761752475531698372219791532593062646989706222479906279680697917766376530360335126240523381791928878330909708964364818756255706822465922749325155887311848200024289838109370020189981948841209049636173824629833144676062160019331030510641056961543848044397061195137616123074489544873667523084442347523376389557659964386681587132707107339781390555704890639265388291080615186029645702835527610875057250366962157395213405455091944896026815035785272972393715082399825703054319644469382454303493502872828475783627431787308115350958824936006823130798377717279045280146179856596761258092636864883025603458280201278930469863021606022450247604544449098948847758664138556400347865646249457536484550456526604225255517101002350091957701836120475307073136749257531534229202733056939272677253851930156873982449856574309896638378227549041953060358677638407378939210904572196043045543999271441466284492212956148986275632102460641269479590070898201676514040337520945947333902050198645505884906950296180806989118746633296805765224609544717042748649185443788173509097819328003151880865890672055904138515750684104534000179018641095483697454023556534871621434602419073563633713600776367168803524034970302821134513435117912966477919238476316988971169733152605713273157359445954669750144712823273220929033699104783046230510676564976582815796543403153234719102339467273556801473851190536108686242232605170601644828664892008971181249426593526340136562812986832466042938224113043915936319096058417289988924389400411550903418240572697457159561995641311679178725001865836618323510527184996326673695260741551774245054098896463501904897820149429892504126387528864272329798090039113972292593458625289426682381678141192100489854333544171019915850023586617538103274521727764746785188914483880528677221736621709460896009543625512674251398993418821167715866075120215357790894661019888154462873722489993933590462926061761242429721887277532350332401560783075008794013495662270538901199084364362548471735962832889932985314381905979696349404582417607727311047913751688313792141417307909396325681318277234862272171964496170756191772054869694115476937297208739559328572033334117277027900414797517938604916981649549361729788422790818548177240481383727327070680294970084111407636534163740868004774452632279944982251946958599034934428730109667892459580778188606157525203022192699059726442570647502536651129977759265819663641225536040077102467825524582483009767360902885412143848813625752080944718854088218801327566432536204141517596055955406290954207949849066791711961864182169292802362716825584435492522062006546215192949281052347479284166167442662905779540087279212963627155024049575195435008265365248881459382615200832036765786235924515196710032641334097644128020324171620959000905409264185276984062415301960924606696231473444265749501089725676712902501852947159294154999459016495519364290376823701453169631227512849564344157151788562870733653641548526545825386008300997668821992393607158901767659504728054866271996012056880228978707202844054253301885228017527559038545702265428507416978200893662287293767466188109552453315319722379818259968514696772867820677910768840591460679237844229619307476413442382930036570461669211338612786430998670428789815259536698414599168477230354263467243631645147660595481454046457888227409627853893249487343837487927721366778856334534928969732176002182106652807922056934741696699039875025760169203844788021503376353781451820110037872597649149780124049589839014719941300597969582001080633172464143057764042478969108078994386283357249796946497387133434672382027482034696537012405445567209904732441451960705612661631348919031533871766063416222444095881662296024307186020907346919810015599740198657486094740440086806423243577190341602572201851637886944207354090358201207839083819245692449935226565516389987736911831334092334728468857147773169249636028211223302870012663164656943057782329971022573188541990804594370311022485527984187042009581663451349920918873185108855664838177107163103115314920178079133421784393479339424090976454170502490370140636826053240370496814753375903119558954113856121338896254129143758392085672385872083359756373654384744620855146474910257379877053909045458218668394282950877982212991872347334096280789634448366347371930105441584410812468613626727696823982140860798325609919589738983060534304252589087519346002212375851847763387753492924499689972485838762476185825673567363463202229423180562592268086445571072348918729090997824462112894086609122832478684849366977865443418425008884821008858453324044262980576952207373360289817843062191328480569623597733927364931522673942570060498078638903647711342488989613517569910038064610639246164318878536791109804895350244069291609668666255615072670010952909313659654448084026660291534167872828757898543039980253398071181356754337613760978991405436634723971785836565461374030237751998345545203410465344423760459943504029048666668247715777079604894961174061227585055153271093659105458409748010350978065380147408481592372171863442582818853770532328019492102034778336125991473591728211376111705476179334722247809997768761927175758526092597981920253687928591508644667842693467708009998556744358228295082800829486604403749590488483330285509710594898493259858748519652252036678775291111099346704918258817711507758566456368535545727266432995136321257189038516062378907883846398579301627081580233618837955903957904313936637330337476617500817122016021900952098125446888053072338444970263188341381431117644145209456856464406537047697253840259248508110237947508657584079862434429794775298685297007872389644109684084178019722029524341281462108791434422316371239283989996572051892564634564299982357807120697463908231923607693919864926153312583920280013521582361991069619122875579328526090622056458387143223979462649686773366576461446959287751762987247787018902796324462747670935396863167052598744161942336804046479444389510933337906423651629170927329682442233243895681896722165155925454513183028942843215582995997814629046296730862170032647470184869748676558344875518984608152903859225756421629488845149501328327339831191131572318683420960297668861822104096676550535425420610001633031578716100354853431899668580129807622592585013781028721826180283770432551168656598047320147861500755369390238784299637709648182366158734526200211747756952994837682966596249405619096526696241429643328542621836424679581545240853290682410735105532390481666541571703807184106568921473719421629429235132625491562963165350707940553869559366324748642702156359423047871059053760630673673496179655691745647228377267636833798323252356321972201500005101449719039585129627722292516411935505149895973603537174763462473609802253616943135103231283151452448999048124402962837825465192797534480065716336718163619064524206672229705092067813139821123104178237598687309832132232522985012567275840378126459082404326687887551888706594411199198437095844261931114154223026754884733242531103762656359413189299370425571604809360638087705467429230075191281276024317648382974805310730433088108175912535836948235451314607021999990894568671825431947386268246414682358782499137806729223129219334007701486960986087885718907043454028168628670791058823668141232853411395362319407193564069716597933965755247626751274203575599008620296351919407950682241338608616040051618096018980212419028956956612548441973575346499690789138917560038420301998137193004163867393522062100317589520529203345521572581093491879025064731401567137725349593027539953716486383327046929773229748009084923705396789042335421513825756425473827195338082668144463812319728613408082070915804522919777758636328187377305948049252992761796658666719724331598131440526528736336835511414691387342718395907804544058671199222988832008468063259248632746714546465111006805517188849560110030099215247768095646799896192040683460318089034290980915099966476336418847451641641085894144486182154758736803190906592317971584287810584162423582647963022721526836762890829009139539223221585317138689934670594607879159810267759569323981490325539548853498433816333765105686186340239518413074255179081791314111808857071963721453527395984086349446086309607511737380239617478505938655586586048449567288423403137102914745288346914929152851489414339007991382050645155936329044520530944570299101757397460943849535850593636556515500194837954567355294564751174681840882397125461948689110209480894367916860913109940580717405971595037768482897314485398305119560611960279592014845752129699750521941855727336585386692123926765851516350013097447795711222032157384484102360244400864655126349116327082284892565670414802684848575541993893215883124639041960606964452726602384347669739617311870599913596453273235056808918515241249893775317601955525094933871381694952501519706286114414028874746720161497932811757694276667053590306346047027005584684732212051161592143001738739176444851641176828305393636275616304512407645697942366963124584801080186319657715256550438462329496106571176338592040016267334558251798612942650830366354790188189777610938099131662513060526389938926638424114652245843862290119499738665368362538799812129892353646785703437826962486114112517679931712975391099131628719990580338801467141873129866005615516290504041790847984203274721073871959564766694454374336324338965347114893897638778429654011378191800171899452084342671050265681223408189296627382477808245155733279221917158868985529920590682004082477432545788337056066654493909218942968010583434105919142641181018011143346411546985292963366434951889176839963733352139039080371076317126714125144186052694229656409576904519441831956804383796660245030009191264191355900511705236470524795236236289545618506773369395392626247187269031972941670548994997834004681219548737536085901346768284364134402660897819618022360551800658579369723740216424770336661466918341194495515749128657618287633528919988841728351164689824936777267641814782640414770019963394453392630545288825382807280923284249740961075871633156215396684225852749583473853973244755925173191604234131750039012495988814485617093457469490113581309988743764689807855587814896404144426183937275479250736458438674692910130631048065184278366052173937945203577235464257324967589937366716886012198364699648015602358892334057930989533762778032650365860409866095390963048031180446890944111387174658606899852700389119485032947027813424718214519375504394413405114605223046826254791857237719259682987826860957375615724559139457643250856962390294315032075499430138300979004476513899053917803085016126321336898380590887692422561891721124487875370699401941248254146983101415779230027961265427227138650268804420313789635911322091616126246579757673233421344785653640812447234866932615970968292186314904467782493888057756176574271341562220728610704219822353402550827881891130285826110954239592733787387042038781062268868507858918344877865025281344265567505832639529134131200931995655518425738270902969310488364525382509133834063083854744734145570163213474472582745376143746650741063978178343222520490973432622992599387713346493549637945418455489439822516656634651067776904960927554230668269707775015019161948521711542186699942935975603567979576846138005257992796128900662683757422077946795344596993480837311204337669119954117116530360362104756465777610990744081351993879145831341323948192886630542750414400790045197390013618105820739167486097671697375055357393676655058267745333533240858445558561192922603507930850314511882159161038274204671373365399973179511905033853924479122110696190407840825011965781684510620351638879983476324888249560979272302998303432969319062193906669984392015684863039469591771015466160062557834970262672044762138600070322194028692391945737409092249399152426219009344043059075837822256469506618835918656055505713535236909367955647420609718291746740036966575047786969028770781978096730219710555728445709114992288318280504840017996104126675193455411454986885813895758641748986625064457268105783248265069083608588313699705248889008459027136041347702779500371200706392429121295382747602262760644476718464144483526616519348269545468572211208962809145142276718574237017321568376727038736870107490762504844728431730084252668389794285679300637513566503851102647573286144030055373475996112427975750730567025430447229228358317370668380287421963409661017447076995540644275452149963627874573971671421944159516770388396626520242453264685840273516141362562888966734061804162929719276874987835380344015458706107166823380772856240583514643577407768536454933292864475423971060366111653685370131612156991866977945183989082322760422354022231807838178261402797082358458875978230868666344582217500594486923086838109311519390375273187447470737113631697423059723774155183288695086624724470598293614767405346143303443385960039363217656507324836973084058654505938162996421278371679439296229781665695996513161510297056423062322733533229853704210226682126996116892275430727493894287899861690912159970464678859940694224824113428105148556466874545192573806085663420528711749307259138314576883539443652205009674650462213043090983521856044458199365764962536329319167504566202858845903420717284598201564599002625620654508876330029475448702726951669669703110315774045989822245061920427209558409527203808225541629605295813841098232567709256841739746084562823241161642040637684500603951219468184153702097632870160492313934658894847965612588988999169899524595449274132817385370659349733455889400900422877462794973745138458570483164899441519800278576045278436702444997082285219238235981849753227209112957837276772143439596805164454181430226150951169018773524168662012277120620401692689248620921504430677769678230513956529028940065311555884033550006779897977531013034923847609033053195404782889191536333399112863817708951382783312767314832961886370644715710444568828278717352369862295907736852262366529950183979724972197979738505016152401830926564715729158604137773772481640522301086797981339441520134153553729446373448910714905679908583544096948513157859596511090532705817246070906283856278566040498013659513454583372526595882703736994878312770176510755315195719295589525474129768154744579704429687875091838245249354154735061096425194121941241810423771383856222903903379863146911688923670775209407156202671513809119571674870777298020558879735908809698956112879691636161755994441433827712758512386261223224660753186715100220668861192167112976535370427200272155580686888099860811047436237556146697429636988560107363706442879024150231575800218269710091840613193697265426503669771315327730679613282598295084121077206265578706846304415954917179028614944820214421580866287026911080465419065488917604502193271664443120019745000224960551648776273319082631205909431914808977575108214820016112266861342787210354331580291150624856721547569048911991276896403496549407251333038598306629089439733721378524323249434773049992748166035805585922579317927514870498525108392290942162561746541989232234208479140163772745743306151705479325003468999618514439982237335924190454564324780131355713933555317654378532337703324134970311711685410922645539737448610967943177472694667057565841622825279799761003393948299666770634498951662850492207096607825699366642883065217145348944476881657076608162591669383577990836177576458321309005344031832138908870650575399020628470560458723290040365851448823442655882912559750292741336291316040942948718774408346259315120392895046107691490054971250588788768209278623808880023868664466064705281661300031375374079152018835625621941117401146837135498718312207873996999125804531365486211185244752810629410711120371774745782508774274857624657028010257222383172830322462138581269474986177060410455371314297981432494579511055679483475819473697559539399601347634617613154744634294985740606220396253070844841841407469758993273553634519842559008100586833639060581815604514285667461181448099024008319824424254800451250719197949440932374095143227533082892188875984483889356486875728849797869856956451648234256650411058270366457530364674644133158273194979744151313282753332651924553753269816058693345079717321552792360236214248991841187848211563812295059145022855828472048575847086838157469638624804567731127152168188052359185983648279509339974245425437230933019703598593937894937550052590745025448015613347546887147101949573295714289155795178712678679327627323801884849249041553564294273327343734797427063164357056449392711094819383103749997911821483503584173861959219160699434663736877129995810077565809527751501298499681259229775847779523170619937672140370727075050895254855943411195827114517545588593542393193298630140012641985446693463105738211759438214479855292860081257518675890121381413599508001588539267273694173934706409233888866545101124634625996668274569695986098424916754387080119496101478610591773874767059783868898261011958401383738339437618697913679956640271811633014237472191847916098722320083766520656789397928205078489823384228924189698216265373979656364980785605776476902871508831740862697895855892594180662335741531646837622546912518251745371726981431223467233694252635372322925469194708465776284636456033846933363130716612835173314340045684419085931876924045493689089993780238705416035596172975530512532599948158830877411829941159475677802437102013304003803888062500673679550401389023655465886654082092668686653982555840306527071938478011488374811882818909669778964672639288326643476383895246853815772054544667531554559201352624010230526216666012523990211709855413860574659480224231532876589325079000831876574479137495792589179288904635311955414724694965188559753044106548002992314252231966339264522831410396645475911521654022860526373319266927613808920431067014267855002013309667010030824584210075424018627234471809065616282156896053961634502420340140575602732720758665847323257397237295071679986777192499731582903861506192234928006296828766729916352616482321738391597806972766925134342625916852484509685546065498578528437264797815604929252969553531610045693840873458526246960976261167907206375573683855823086792330528046987258889910876112202978662533155179549766154256344264913781613978606346686968407878842375783126476166703677033252554454790471330243635883242274617420431150359289917942867674293233517206606546682166088607989276190362983143477947013595043841332709061351784811536781920301402521405044840354828367019023598129267999372194236684853292625095627094850753896481186039804755201603413647242856094981312395299595181846523018597519769866857814159857319527823644116344613555477461486185311558285357202484556072664588559717167969714348238866142918021264939461507089946841244088307703452901307242097264692569663771856154170780312266661443592221253286805999091499414068007438000817603023922399718533819084761864253285177290168681319238608858024882578296590848548972748204664370339654940491507943750268738432905943347656973495052148177069878961957141497336011149805400829573796644035651332498736319757493227093904852523869697713775581834030868938450059373908257320208656333545888004219402060741997682026939205010938135123085535662441165785368876471865484640327728164085677412184719649431431155928981294543769531676895140629911021060147607651686046286582837837881154903755714600625844820796771810776829101877142732508316837034756205896886399965138580435532266405926453056898420540779315837519519236537229676122418529792009404354693261156058761126997913470170341296153379541287164572666776840659374804433496091615861059558262917123572898513115477818489832272918093180277223863143024415775546058985492843969418263214273584502726631224620198869006779260888828083940691450197656012307524167272048336169244412533194464405798641451011759832519651473831326725107651157921844596101150926293988501513742679781524689863684169877034212036474484690196131147585735031116791895755491887624895153618963734152485618344161870633146142243332598475374156715724138862851374196598224453285688689316205687765476456693282993045848667543908820668889209410912214865745766825730610509236558651047910073016656621021757279741000924080865227827350384994041546309444063970618235918114896503168308111050407924942739421017389122847655157863226261790128735020525934166162963879715264956725956500622504081141905964148558070705321449065406832633901902219048227498870407801834361561667325889592194473031255946411963179362565399735481768516861295091810285090041495722066681410700613090547830830254598129683503941646790305894270211840225975619679766285564590245483190565819182314112909468813417837725859275811073880047593670212699977778596359115489465442257298453969872691664645950123492214694958698355070409679553800089522264731075887006261773972763673165076228820696289376276000342874063904842593216834450998378611385586435073113010044692583933260237341952394114012588776405449178437335180540658644798835547122047268984137039641298062871899231975492584800262200610985224185831483949081296481485537381918527425730436939829322503415038769619524500104276020968155325452501891261079673037771280327044642705496589830099147973901870982774615831867202734177516388116737182732376370933272726107268020159787824147425868822776000078965441627347022148423803246476099562119994017403644436227959511733180246431273794128483066538402792722328591937075781229618098838858827474147597952230856760571686061425289648391109490564931612250162493928825972641968074482101713995094985845370249975035767718141313593187369032180772208024523863933195889653914004865051562157243505687996952733870210656315127231343539831212104786414274607416412310982386077260354314064317082432737851578173551425164057561556601481415498656899473872289974902440843488191082245520876714533359000841889624735859628547454708722703848135310807169584244784003793380206798105906112870318506243243185071496481765737375434436303375192503527084247762128319383801192512244619903649823207398247904875400400594561442340387793394072247671907261819675694928113310012805776495619111489739935173319915194677514725146689804783917929035768048798851712901753472642487594525434934777033289831040428652058830982757886574737635021212132037218706454980649286533725839088009715082352393242024353349057342070537854132746399787525558998139279446824566197021910564986469128512553024127161663277345492892274549944538420040189095738892683984213671443911193162539031034041786174120079610902644468521012603118158712786876482584440345976510686989773177796835016563510485193923084699282345914456381825485075602085047450390531870253601948898988949008920133261608170562932631262376789782575074714067836890719642049489589706190639185888335667790212896074517892365594384485366503493093276607503357860013834256915046165840921261847147562997914663484099520674469825517914201257387531699147487442476197943572782730817307163996070987033394071625190228732100159804198268008919636889379692169434172154543530765137002341706312854829139630092124850382459085830188787878839567415404366792240417820394068621537777027795984477372629599206404424735791702142325057948276007665014422442929594223456919538391431970250665723370079923632981026795096205828883767366783474687315181513700047279132815184075921539078593086460187117200366634139020427394978648608743994651224082503840212348109371997639489573208756630691116909925536270477843960825946013215415586460651852506981047049891947675198948669135371309459048664655143057086851427625720141516317769691180687379219530145209711257554081144467185712936150680776021131527066237292576029351688198114224238993937454321874989347416655931438812922422481731620083118468905162154408462142483731874979697033167675256987265109075378751487262133703672413323204628589945933941629588856500721373141815183135774495146916526597609675507701230556916795119742330279884385193578883826450984662227912861599969669720016415232640288163824826025142154310748371610126639267547123438398328732035448910780721779902568809628223647614062222738319353724733814021409024545708143604171147336379458372145895887422817038085852556780988678019218081801731343432250630785805074812909705599271311578903085786115396998998452643079655471020892464927739329403935802011104995405462841372896454605683711688354103226303716564137128280093637019960271190351231140437011701589618971815331047765343803692290064319965999725682900031174776770519329283027527399879213175155566238426981090379281873655361966366865358389189314253797686051436408358461200164275137787793523471913149034804452533155713201065369263744014170957688039972745271726191664455072143702744850411538712209547478997322480576896050100256478702258895353811925838846979072976574348001132113605381366669104195269561717381378823999690948555966021892997608173047223971593737995069254770214239893736509140221969458798171547842510461681928448848481120602008952251709670929580496952790129034187465935449981272442686024846141879506720671021322764672633984001773606016347564842824457615545383776494157873984837128873079368416548801596548061701185821723719752120199461372132818951060976615149628816793713168998987321832246285227548194511796863656285450993203859307779479098412607062434825105432249898254472399529589632126820502644310038449563000809425714426324610378415104775246451458930608979230722980587371581066440540469616868457597913909809984991788396638856992811236569911311937971500419024508448420877875124059165787894444517977709948686973078915007569320931037342076392647953546672839039623920798245888606799178101459003772499349849967793450777292947130858566225642336160771073069390900661573888366257617618808773175413823004818080050352046826809959616008509401361154373314361813800153812584237318810765496800866079314038709662816502924031085810932637608242812910766756420133917466129347315501638476213696104120125122614865455757628608670111503853024476958405711185464335367882013083845016780912414399761621528317162351443015401107282718660124245196689969250894356983720817347040587557617444577431989713575632211175745634005371398363057211650007391111456772553818469331132634353443285548391670093982587497641332755512768531108017873790950489753329411711772613341194216006000150476989266069159539194777235529640654240676415269906583334594856013331698652849632960401550494958805144421885069691487526604853008331548423299345429917517125523248352526642091024521758670879558517657655445300403465414497275213838449064699272467246995427550291164275174398736503717885799625359083537424872705914852282448140019763752082390954535328679313032376821724731372511393445712035124985851811880070788196374414069098205930098917105511573866188019538950060128757616965541601163582595331174446875640963739881746602594506673684730930645137529532568822163884628371399120895011724429868535893159260021414626330283613040445222460063867739924302449416947997674482657381404821094241763190785298445303110034043754978392777310415315896396732470237067689847201283321732530654333448114958936416728839810047422030018251306690086448297075749154904780349837298448749765123322832380244570450563373812453108016331483540766604670952779936220117101466092864506716160272025028091285652505598061863271788359401024232666117624053592894132000536992951221106520176588785949221507102868934757564629975439295527505783199655336978031380043311527683784516554538062257848638589465283489959097262048419225917340476270214124769101601759067329202929844948493522717958737217401997538704319231942592878716133041494874905520750208995309341191687732080313437270765353644841397519294558129189185742528945321549856664560178679246446081983437272479561906016165238529039358378445077901833262775748512248105231365956475302594531567774391115171030269693705657359648907079556648204437493989032866855193352055672138868206230840479103562523784369663135480067983486272057342161045200231089242019460163147399647874796609280700910201804746667436032444049481578821606401861742088435646796686143078024750699449229452462029049662064873821613194304259392239620844923989327171390291470541936667275117525291234937179687280108928418886693153200297248941816558957399164874663113073086192745888485426348686528675465798793632362361860827475950577780594691699775819408096170845691615177786909851360685922961969442894381429946387232048069958854779128143414224250723516778099301906850902232800216391682258150788964259939394465046629466349034836530209337310306698712706898135440719519807424693237183089363756866814674292030735928466299805962148414708627822447964904755257995626288659305756989557827553051700211518850192225784592688578792741078933380948148810277634919801918778807566127171031010112715261632411833513312229176305562820927221776636144733475283318481922406116644961077700429565258758578502993958515150822609266489841584468392874859704381113722625379453304378485191653979149168422270077532059511696918952915469826545290580053049823821773811932405264534721988701280190529208413214711081978523757933474360400125750044938501243353709628762600515556708031337807383287828492597121665604405656431518738623524212482779289955611279829619512905033029334743417538235860501844254350878327761677350921358004662681764207929152643323182583246174330424206540063856313455300305316388683016908346538258089905979414939203850663181653161511443492031723528753198086290492264391743782697355751475347179993741852705745149980960628103412469772003039590625899626628470886681855492616552170160609803555691713661740519880462829708558187376898786565375418936845656356442215707507242738774851231378758739721355423495071186428055370024352534759214615526577958938530214575043120134713927813597048532133911937978016917086195528595720588751031724783358375521291738681598286886239253584045872455798271631204447524326538541553535307263589368968000587512389825003323495806796089000038252595076165912309390810224404666721953197923014748798303173591773220905933759655361202714767139384472865756324196645020085270292460460580116243358409984887272317341124628681622078676873594916153905794494077870374095008356197722771398961063838348439350382893127625188994015630612793259974111606800856222294323871970273852534969784364227512415192060767373685978670421810843501882161477999800313245266355597356144344373028674068906642886739010753420493618147978514316908354827664836517558319285287404226681207428936088663823523193352490763340799151709503570893474609592696507484752514692154512283030058849052489917908763590045302813046146939898207483222282861604985329020201698534476796806849677809366836050871015408763490265667413302851975667956997319641237413145798554908930673004982664202055641401942568966214685549836708657222232916356798742000202720991953535635816651262274915059204721432140786529944241263723172108374602146455403333277062387871197698159861911914326226819017097097866652438791205619662235918595804962471658066086037594954239102245519242023084455250286799438766881075120952255736726823176354904239840838093007315835412321007616539978204293406618879907856719109823226065654646714628625486487171956282792385249436966483811575213002466960861974222784928256829415117478383554940073985734196424039082951386914269524935281088449519281462749547367405286710908006096510102389336523138152931694396822830843374247858371596153014772887735360899147263013536707671314359501984414153680114727184579760982089283461679351714077278516419746630576651136451368454710691642826025958547787720688890193741680364631836952295161590180398003664278993035450555846043126076687166625667201856121965089242187514235528219867213198110643439549360597777795272381115464720308789815648075742767894719030293097976565199514578308479330958470872803877370560161991216256608729206243968235896643371749813630956415046600122347816388601220203467598259310670965513936307194033522957009327118522171447973550609083455944940751126450477106222935621061415201228854526816772523962618505701498416964690963588517865608699877739040786868146430935186215692250787615694906336051990208489669943964667462431149334624694089815301142445080882271374475553863391026721428633736960993990760824246139285502792241662723341438451878383386541030204891734785848691786244426325551030627273199876909506913686638802426327435505879423901571993870246920014879760616972963353257171564669484055859135313594100562320359206640469671778674263715573070242944231731695716818191299387048135142121214791600202957429860871828736384907820959046842917466355362246641277904573769153173077192076906551346910684219178469042015885926891830650559287273889239148216938411528499031059355766718059599157473805145880733019031888398439488320144860982946334840129803704854618029711808776924033744718664985881946401155488620970812289063854238268772529397469464350485574110739648840547325859762522895128867991130001085915769661740433420140220136496183996038061522941469030542460280981010909741712210887116846002548209220554832785831738813756593801808027654226582326038622208463042182436069102894363443979909917954530887789351709389898006628829725275507572592219134167291664070339629325261326656888133845379441468554314569050892643869734847100584993395204935990658219085363662729527252458853546358523610924607607587177840686156753931246240918632498623316326192752975824185373744339267640284554717536519374094127857582106454699029299900040480536568602368195040398302493339172140051003399841047461769944481144002885720257599124867118812308418931535788784130734834395956305922849574536185215380978341904202317484548284832653842132154809352048267992562440243835219966545729576731264251465473775802018262982224649977699364749188925345388939767792627023140727327006663460441794924067856500833886989833840639227286140618494760425528071239357117268000759656358708028571071574361161279130197999167358943604678110713150286952133371698003341163178884614751184271181419766225513663545427658603030169160655411640492589424802313545274842248689782152298070214834819898335232113951150654365278417121526308311834171807888103927340149863189606569293895631674274486955792379271020313522845751863224097090685186702804067200051159493344066868511391944209218955601308821897304414764219292165074343906275790709287497590511697065934772336266717474135369115217560823137102378175174579692489252510198357478157473419039092308875347979061706890256770579246274311548114757034994176716388515180537914498168646880629851729253251517457022801247959379702360980819476587633809738543784503290324727197847306825831480435008686576108700908515828091097275166169549132027652862351143635912005438576293044587867144912325912923121771980636309493204682205390628758246022105735578505281434961592522862072418234100182131977803371264463205264752152962212654402862714879913067763186340912961205378671223718688757855843696727329797835115728013153604820754359151442026931130787247863207869373636496073700255572237532093185285671893748393691121433923345000430826651045413493500088645174627235415222669805916741986302252566700318696641727923664437075007859406677450927186873810029924373080821433040769858829648873588498814082801220925957994840693629756876959377950788158866342687106528977752441847309349421493896562358257444353175117511025182617038889753282384101235578454413611636090875146998634333042126798014756571449468203268205480206198975179247388854982997677069791442700071868248410930677285766230172388402335062829916664614524631143285375220818633362990646338221737623214938313044505546008307741022856363261768553166631510885946602680192189651232444058862303301999432695969588606846378406767602212519270374705245447226351860015551467946475308280131467949514390552171700479395227923785029190156501628648472717066915441905371295888453929151292423762436445810167145878733526393583599114035743542618349582493571604236930628303182544853531299426325635859627269442784549338660446684799489807657599538587067070462754403106435269081342271147691876258674509805492703093304737789656115284001415322264903346703786514242078107413197906040495214015481876066240425465666064891344134310922317050934862918899348994601065463528180207248020214205799371211851450807338227335339229335523822356703582077154023546089220916048617162187002166807124630877583716605524037492913980217920972937864605683600789908647244965139177180790413574083775975262517090407712387552164022620212765222607792361567504891568597570033433095232530202473846074362547007393104464734117734244875567916797395569159160984707264872570761556425088519420088005624763893184534870662120730218997302163302403167772514977326376199107689090180098367157738160464048891570862823791519856613545909522733523575189037634970207198083488547268659394612578118574319202572998417842675564542674757308047597807656154645138257595281062618339290319353394902803739054720813185350271272863216978568462421908987598308629759599149210560456319019935371411720075418365724615506622473644755596510135968727112849240516296272148234906171570396819715018493756548020766559225419504077891597869596823022049091465922009320269593526398767095157124339255696437444731815508433387025147224087046176671203025207088745489977884224402029487936653660101253667949093256290388883882479441013019749543161247461833602373387239002682246106656738855717570323716881925174987234313719380236065662034662885988168610676434945537591821553840686757046995459733333126761849273426937236067680243672073889481634610699721926310463135426436084762465278505605185423338257514576995358736170934530723517199297269209413250086223211041263651613190563702058434468460003781538884518688527602026961870577371147938242602406396757901017397790409018193195913516777399179987423423689541334494422403807260313082474063102296115729567669970015460626232753602830598677277071451932530997212521703079798644456029174592911598459859288620276374335795156150450963787477386154996950298135882579219778139028216617919596356069886768102751127734173230050686468644527863380302343646425991068692742366104208606741965902111015201650539242854136385421368406156565152700918408361384983303153569747978265344887088083144499332370055179448129379342318743032116505845661016233438551007604373090820186054604613266216742170700424280641401989033514450387608796705531349099348144553598589037729374212795044862806547145790468381524550759678681414647293804461398786622464400850777975728221801217645570871972672603019129371814477189117426750971292982841484996582032662579575877290895108738120203876861484586128835148246063128133701293159413196639382961161529892378007723033887322552929645542303903219181476356584825504569222335375983583413692937972526978250242113677262158030382969219608164546033477327015470262016446625577751806448745203992974380682583811353515398506730601775746628064223767578149851226183422247282589360764735424465252449070085863732346221073039990703240544922577189679310558026081703677613538370179642033483881229726338082051319463788283712933620239340969252578678114417745524970056789352136013085483087228360376780488925761183824357057990145774852374513224595662874203812845822361773968664413825142795984265878433772376915570203858321094633356453290392947704874853638137807379954645143868200302477089392487229224939220896045033391659775074270838296490295073753481012217339869236307745237427668142319914747905538603021344944712108174075138794925356966725031071900442873528417787710284924896873257188064590883402602948129731318611413861272118246214441872736942421969496090149483387981384935230939193974956034588788823647997103357474642282685276296811003300091734953157177705006222533543903606055769077976877731271955131466000755031540632692841875842733237700307840149527376780255206869555102364666347391512020141666870051107337657737550914575182842859926881519950466815978582315855628234102627459250847240692446773994679988079408547968323276562499321580004431269636354573418662385386741069464815974172450399689424860768161577287553666151835154713569492374454136880927547548962436632273047237835130006533937360366951660819325657497475338139587457479600091093262946526017011472913816573099017560669807521201441926667171429360728255422370097273205319740222593176440159231354666273710143388444939449769257045640242011384920554950176114047647782991032694790159273714891327024369491555362000670187487492909967315139776156278552493993691900194073292712391905611583209446437291717803098972629512574575584883385715316991195734156181242740740653843933921583269020352041961818156618767743515729465330661526363825635551637386643848666302567957510574356111558329732108714970132645800712461230164071348574576805622639656720444103706739962796564050790032808137845532954294079101517601856266390780585293154647113496424131593757862279273341936914483980113454974491182126834323032693571211427180324286756135326631272360941699722503041164282329467917552332686951290742556914526540245698053184404961801250452260234966297418347104524947767548380293770330482674193940625170688255196906965708085457628641399935692307714284589552863310977243496017782475135606599334430994967419302162894367104242265942697328810518484160751593941726904231440814896910485918379920160265769224024290593640473566851837453986998905285085974551509895257150139804006928045206286491245548194121467273270638013230215822242850104290266484042296269297941646040940630707987116345819655040982650653248566826284431375737982937085749588860038046194842207887129548894378436719664267314096355193907922103539697536292592198928383196389603029477851696581112117475612396199508861060249202752942622137331190997372917686961221640971892538540030811433982352877586051807486663132500759687727370700810333672507372921584479742486968798550191451785605442024495170411289236456329782333247360105118566051811185854391264412917791922517586146346796965731466951205817027265647965568051837660065053174884868838035505358424345043185235804543566735151985012645078953959398514584167371492447511260483633244667020964910141131659437538699216433851926809186313642662403494673801217865787874264626992946010432072287042123017540205473894661490349857653521432632580217916139230838983222968325602156016613171176550441342323739223414941047285863112736386751567144739010439802105766567283360585441333964164795170793586313501596109711661004598028235198477483374881884209418122849100005043720162077954812964413751524098207623778722569644693456072449863629696104338516443360531743983891522110027271183592419378013269659959951165690554654695686795269965948966299461216836586999952391450625828020505115524573182300369812047662375723315311458020748893517451908494405870888201203975165016657933211621798055155497781705037044509809123921763843081841699591213860960797871716263182394066736368223207600259999745320116557273351892336161760532624361807146248742329421304842728545665333465875803838809569412012198828294431298490178421092749466900463787807554131869647079707476199424404397322785699963036275425286728620747434159963882197836079704666663386831672169679135543250728030366229894723195751441486159395941845584739706978330594284047842924516337029735250668681403310350038211097357658880652282977439953215030158375578639995398736851471598350292414931670903002709357235916184847347837768301765595479636129339362974744851391427283761128754144325854952926378148120811666162836257180930695607290836413959447405835741243736242181783819427262042232860010068509864701572399764806254574935157686850304409811892791463297277662925535267242109980023532144803773964197039068735389061850075296612254454041005415212941704152929684695000245523137674065196070624971134568521041344034603828832859999200528189291397728994246418220478508407667978129539211166644074228215607059169043835509594954380015576894574854814010817604324068248036393134580567321980964524180180253153480007775432748452498540558615948309915388143813734467630207148535490845038763150425814815294800597438836509562259922671269700493116031423664812378906486211400429157593716821689600367190987972631966905488456409738272200992030512652139083266210584812823368066789754709124763675581677536043618231227553205475490777269178723438195312086476683433896854244730755329140343132393079130811848782933581973354209782072403152729438568076717970514011450941796461156359259110706256566446837834053132516072903085454796012950748327676347057249636840518011832941094404380964871114771113779537952980250512384100331003172053279617786750920553651607366111433548477479508991651761914247444582160678026894331090517555189908431235043612198853758284244688197128580330244136899290313546931188640302657453981894127385979298388320905594330208874437012790313231366696552678339230839938936173912990222310078166457951262175703717513394606523836376178450136851325243341820260612473515176318313434280204351144363679061955902882336059238176234655940046018993312378197249082207019101408941470413481369722858298914140075609882695711023895964163839828941044228020119606414869913155364959606425193929341277685891084927598406821738306149042811317098730694812946829298656558405135297392815778373742641693247128326536993719077173792692048305932628580569360214336585866761445447420202462117705078071082740785113994653310627442003511829566665458260521142814067659170718294071563798650721229038608303648852760002426324060937477419948121964620820049217296490691730712230192054080892668072695000434541510398811247545498189937515142380795174054916711951514645120216503463360996225177957896504474001722887225242864230327594746984220725313507928753678441151123352476365226118626890857676385410343375075268378159032263124482269094978303095552281878578195442961634373620333723345994507009133185753919898414625257518327794112586869489797923618829193821982156866096981805588976419457724484124493601652505901374413693073903143605575320617906259372478486133362513336294663057336688196935019683756875820865254862463246095803187972352480590790691527956165920133037454611559528073292067840256603744745255288336492926182407101888149097015031160473035163893279053928771124146272805772210932515936640271018152548875883466894398586183477033003459446866842444600849739985656141746841328952114482169386602469789991452783132755411260931177878211839160962174455539004847667079296564886713226110669709617094757935861457227185724030830863330083476970428939253421754126085672874913028418325002313948307178983859036464008638251159939189760571955817807911876000328292641017479071172315034724672844457700157555495212390765013240882038861323212312057821116405607494316132020969245684064617229491442096677832934641355929284268419384157260101855187897826621998002083447450774860187929166369406850705228572847911241449350417925206873256925663742129980878765049012218889406534451128770306860990176877845480238218751740334485220318226272391909516292645798020075921871545296630189227838201476307102315449210941165381923903876001738248784537389350254965120017550183417906598763180612497819643590769037067472707408651000054214541528715669062421568455669260969118650666864637062931447636930664787366750275824890019648140676469844070094821049049619465201391933196876487185832452586374662789902045235382241627592358359188203226634257047853776108656669367897211842350692511657346057617502561108264212064524074597669251735449948147157317860979942199746991898227741017702242590324524954149031809690139180605948476093815926418627139943468618653953813141545896357997880268671346695710381921945724805067892317042200386019249978180585936085366343948135146515065736457843230812751522425440560083493444047465442178373957400492674704430626618701742450097435983302232218894240014068697953289963781814516982031319592379501037007818398249409473234528324600640268673558549232506269411027067536983678306941747495008343906086737773120662436358492542534359077538861469370806898419646465421079463958769830333781287565549828546620422486024270600589725872853953205794051635640824205422855319105932454196161048725796252498793633993847891492001097386653094111411657161499754021107074143506462175401268815913821374315385937364424723279110070056096886532033282591118239083732199807999230041436747410135227335504442820329148944764002161947588664530637338188668442822983002356455431697316639597203133184145011310455573235898033929563600762999768750944341871276337695264409476237399387050078245867104618852744310179261975374072214682103072336128453128126050251426287287932428895029880115714540459020004966214310318030568752592414424474972390037926976058490074206995542155121937792658266995296080666509444788023975863528744869714894284087365001775944202755103896620492484674920864913350184933917211385891257237845456108548376226259943942089777872507097440917359764241297243817104968794025004852650078518519934876526480161712644872247844954703088649189955866381687273227818463998694597570528434285079494637823737009305283802901600510836355243262349957004314631240345638807140613290742766406106520171125262137486662356538119551581459908138165415947003651220712302051619633490549605501205848582656404760255673120749889563095084566841356821400165464601033898622070453515406984616675685816223550344986323772350602311717204244948837184978853831046974986065946522260101447641316167707151871665536626569350228300265925140599534714676124133234495282894925076363578084646084460957304328688461675954013610667949502465824786360554266427256832382612914533584072032468456430094947367475750469003538631434804744651545038898660478727712889119397425398246398723117707399475679995734432006078594292608364694206468958460106492725317754592531760078266972492429135910822012026759582671085712851807843913104608443280628006927490223600151025973412364347852415618264953382960403247376126053662696333960623953447842206377603366568783025821128903543178471082925138804414866547116419536898195992865987954030225065186166099361038673977887953617758136211958257762033948196265302779099405528992705821794806482600802076152658382062701907336410823066265710420261454383826367768717863545435953132925372821421286887051420490786815513596321699780956224377547336600327795360704672804923325678155708996335053221840392426800433238943680987762898626516679878598343229177473992596117964966026251595048241657237243906444404085746752106537851733944198758427677474733527240611372398911291853868460171998467346192126236927831435923253312500111052571821824474762767615238827902323412591974616623828280066425790190739416240934746373755225267639010752501733752833578317986428229721295008555141975858818988522681814149980940091668718986870954873455635366604450558273284656941965348438786716707753933607339158311585298133265435615826426668216940568518016656275878866666713541269029254977921995204561866454671750439073827686702920601615068668264606662560658816160608791662142806320427244568156570145226186695797543571778897236057592957876511856397122168091269176189977474709226711083532843417342565586854914941620163060634283324274107399880657182371741396411165238131285757835495230650721362994640923846664630518610796696259845401744185040530822595813460632112749248151549560844736079044733634140330115877119103697674595098662250185995875424520013363407129069704150047730934365237033562514011796631871518878307585996975996869899517439084323462536805535207141189420352013650487719846245444290192004583765001304951327348238410424248339303615370254229984813491792114059740387479853394360854846551853423798443066464574436554646851075182950344135304646708318653340086326168923813079254420230715830813106465657237036081287876454265223529150778921853464570282418295076326990357989376985397094127300703884316925070959613882295624996125222041522431748793436738782834800291687944974977056517082815187236046866095458224786522465038972248379442706392571349884150054379069728096472251614335871158312773386169929111262203055931125811473139607260346493313617887831809698103550011131654186673725776865287156685560140637008296990496883100629725556654864245669512179315835032299744832675647923728396145589720959257280894162597367129913357585813116073993180820616879356080556869807511882999404781361583770923863953184639516304364055749300403482194165368442082885885472185941011989316863652153636626575066420630630347881096459790003189366510890937071539588517921126861219843338553162755952374647470163251161569836525861588385120019679327406054107243255735142628927443506458581240537760269050430722428873909877415720865315981509540548846015177688210836871462305660040230605890073093574189458478988697999482270075607278908512913278198146956634992977571707396629619052727349238700736870045643078646632532297499294198104066746622485257117349084392624391592667451057361198813154793035267193130882066425604315624281612931738524315181121454605200591161954894853318212718600417156791583549643955983490652949885140355056371761087345733199703858128797084083838366765563612328045847330733201363763825424601050881207070032804314741574676461433623424041844001060792000631088723856876769898771033781329798516901352833639655970352781076946783458762044754026174965272816670453348865655445373016678626074419861231665759128805313363563224468698757756091054867370949544297886574144624516569564747650051905933403574580347974171146527005953636252806995635981325199184660843342959266117183940006875147163147165814524212978100556541068724770615806155977618949564602199651804907168459418439675328729163884130145648854818432034984673684365933689382616949291806553011415780103045534939206541216939814622584551852361851476974380883158124080405319265399636302442600014881107759016902462951860511586267120018780141186707640049454902609542637624402089877038360618173434057729020952924082347914946007551905266510986775051483546116069339673116310262592345946743467064045623221424394550698406104270656448512633617122650529482899030481411666224643264358894656629408968340949425118105784353962349350611006149563488873023918559945321798847786854399263876117662982565942607399902711245485526520393102313441298950434081670272646305039055736799437269824465351413142591636245909950589647505963499220610285029838012451495346380729500447185350442635920164064770970655871624815599451743959693966618288749007120605778148381535005102268897732526620277048690917734797727649463286082082238442190462707086432536836019905596140951462823343630208978915690968616824905291514144804175892227066120257139041643842863530331631006329724526782422946619845356361648488053961190065814528512721613282488254678589741519852277146212502271037963771239083911451222821854581294311022132761743595492358987218302119450496160096416393107203770289498541987649338389113050602513520417871203281743915899614572586132221272807302877937581403562816321411290981722349689282646823342819708733291162085361163721176655538200305532763204528708840937462753889153436558010104014346949432594477954505245147506486312388889024877868874252692755107719151838881374383746347188908909496190703533406900594708906392351593165660063603257837910091498866090523589399538108614622988933705712287413091806445472241949073934109401858425549653639224233778944606005859156714687924894290436049274909878286027313819275888040367330172136622183213093462956480192050850531718191967337628805137953885048154227992226230856025347677541754626361337702221703701547958892704616865981379349205057882146596103413358057079519090113044327021702746996994232572145492743483449177648678090069262854506552663670715274688866768830276977910127463714077692795352837472794179512529295032247672691541217543931403664484658462975881791442902074611406189466335430453681185475950341598038153536516068737259156989366630189642286769901328119328106544681110100035867146400125393888198798673139305828583411979654025657984892877981914162270904206234093354712629489063584135798508111048033177556025068183638262183585485659675693372821380036298810131650604316031404535680472122989811412477672679069083897380509125222484479125058684980841807414593144430901457514346372876867314864994383813847949819881975375735039385058368505767551713725712412469266091824187986222400655433175267294764912839767621949449058290306014186846232253955927857101305038618979808398812724179125077033874802522847216455892288130989957741937427519655537420796384197000667862979190391116615990051111639287961557489513331958782730237890782920395022689803753048563335309812063248994657778627310184960824214662769095431765249275743898286913248733186576584829412514490593557021375953143624745915020080307388692187889396163205132177786994588861801393261158131312548844803562453236029218522465964519540473794757491626963103175765998058133320451273708488539836782407527087811654228199222307577173058590807028835917243134335817389554184271503738094990759090232118427956903378593079341125676359291381376502630826869476354191626080383216556557846204224753979601322072765937632948571061263302662517369829136726486124964785139084067249980690860408404462898483164350763163719517459973899841721847461553222384023501943576438851117186605967045183710142596953836629970055517287819518768983363338986440775663158306589836151663603649957473505996795207415742506926889118134376939910151968536502947431012569941431827646534241284071223881191040703422876510537480039981577483888215470995304848095968870408758769971743071976124353724171269628621968406824969088751786784957358071708987396484751821603511877120344114133794877756485270115271389487657420379604553557597428881398211570951342831279112916898164135114865738806576969436369169142170713702628747394754814141103600147149989094896001400441077854727404809673794547781229489745157066459691065107647591926608779269091318186688089287191818319268124814001677884494211879917098233632803245386290299901242542978212695227980898282905062647808524601118119706712938280498217493299215909328445194652942839770189981826091071602431338106456826095130378815458688924044066456959618294634651746266483401848437494529977313873147879219138933816648364023331817480931379501217008837137436754312185919037274161307825249598034597436769494922985410131695480839899860436953879637082030894192543003274249757379089889148422103727246719806427181117416014747955248703194057528360702807693127415622540908013348113166386269533850322371482968851985382981491175553082062948383313775145591261618736265440609843633486867134092391592772323906066865981396778595248529185841542949769130701039225618651884542599141592292368091036469038505663280191744968933235488130103099422720630296557113850882519557325117012637788667303592467825001839903622742845549981351566836716404471675592655966207203485235383505186558337456701711766350076155269272457617553873161621312082160811659926347846805879992664476350368662288996942240500232291591661273746001983652181114862727847609696950055894283708291985896742337350999743624840488971165304370354812738989480843914257269764294148002458860618275009040641283664176192699051230416065009440900833369351727436032186930046540699206011858599391507051884886033442335312611716230714879159265588488810926467743697490622141866942665608279942318926602886598622657920895588544527744010484749406153443497268969851112050056642375063408256679792416988743940488801336244767765948375389718564875961898048396971879957215346363671970851683635133758017240916030043981363854421507486393062589671519670203394151477516581945202568315908014968560222960018342636358481714254214900964681229574777954572213539423978032122865980582971933778908093649722835403917393490503380692195969429090215335789754624283266563088118571656505211068633469787746056678868378401416481328770086004122780705006526748087695285172590070368332386330573127836874270288080418674855391570813043899672827845868214649187128317009418802739625435324688356668800636621543183477065421968764435495067297423751550495795181219125954817870029824802337753232958663730075366379418842544248486640863408213663580944482750530303534686582416606301151905182301598874398415708696490903192292472509863324710515588980592279540915329198081463811090930576982770505695302669917376370431262634661406569926980045246166112676174337376550136278440572685687107701535416296617970854055867288971558945423375306945357765090406647277672910886937073870123060135645968189799592399523636118001957559511240822601998415962589044298959412060376790817431875075698054666644642583568812527796911174395143666653119542987930469323637832387930055099246242272590989198665811292350763921192403631192433517552034504958169288939491797177351404955345570508863751386692433590188708118536888465985557445479938455329066674712722757460120397172349811684577310088576287004871140007376928029822160014876598351596328500008987137141997650381416260110614211893851600509619978320652061794778441691958593490690609062863368433211593336295222837712411309184463329706820141261399055470576178231498988388691534426653410771187761898238841523619071028562219991247078612262237033334608693137095411015845458359875460846087930302916136902603656811440258130650431401529325200606750576815284631479301146997952317999590696803314818978375053447059105460230367999766092340110628516025460220567773378966069440008830818105412340025381434954095254347095016332668404191943719860268328701455989518135444584930511490618572050897102636144727014857948433304612826461659269297049609924234554156961306223775430454517571731590010923673925946306049943291795677642471277649277097689860647428220965336978710036028483474061809437437498581803679008629253275783429537965437298991196569831071041302291954218274220434912253476912285376386409688189260507451382425703996769539073526624461479857224944896691176037908218904534937133196818248911731296937410925424524126343561399268572573151024043285941238217930799660095210966317023673692377368295262238619125735188887600254687872866287921101501305050034583666907081820616314394176338378852012507918260883563345584436653617396100596973616882282752077480938062920028092580589780077175429044791350551690927913934616998732787747556042849039777070030315343809258281600882636900273356070193449520393420790508668389664555355823933217372955427723319395283907148675728438760646909790077307222679521981255068808954508321228473715634037735197970303411868831186705384366883026138984174742064333308958017298493993167442047036951521089949590897650008159867401176684298641031299003362041221208976542601610982174576237325206101454272869031802391637371055160059867372789674141313464210206522078266348648703507957120878273234943695024076310593100908960311283887828400793221682497819630574725597244762259456304744840596455350880766687325237913087210601326206560709234353889730801119447124956375222862721710541750712897844966796971669312077109798591072099342597855544676847987976724023669739482316191793810289240075482252274943101928958224581204179202625483539742216828292888429051416056114173436561200174704526549332777585541659021915236577879282498746493563800448222971364201967323097861044666544663406195136815853536654448143417576840841544758988030006875137867797746063872840641505590047437465652556604670737788150295393799879980496948598997437056699458446547388523478786671975915514956445269195130208612175504075823387841364077713550595002296424440017200091386186957822952720995635285987022495002861388594068470557912071962622565413112409422053030718443281632658378308444854904783948993468140614984157193348807844237609459836217809538819977331369245358121001355952385797494090874253991564047712393751707744915644484217424236432753288133592297284107164548971232079900074352266810327338678147417203520239133871088179053046456894748636024306522571665072215527202779766353629922663665034592367616638523711063593100305184081432347612587844260966139469451129513320088745889217760519800992857342704846163289348137638099982531050568629852057321559861073482067458694617178768868298941381492114764936639709741392558086967059404281842495186948847398300750558331418942971894240969932467179196165727989055317576823739827871661855288637562330340823634193500284531158220077471628937256925863116679827457516509004007088870754880952905186593298058307740724419093518063637107153837427710685178167923829564949543470573871404034864006442482448237520738234497927020489826535204250565608098110104797066264982796928754262492578500702610467214898007371740832974772790791286798262625542135149546684152078374286332699698164684621683536653751400492037188829111190636001349356435154599475369089157908808718858320876098556756564988850686253079823567682583354840401541287610752058755347814327668687184159280752290380388636954029582055482755919439204436961712934810537540075260530609419153118389744908599804447109984168988706616324032948668325536462812440404297963106731259816053623005290007728896851651063398124849198439042200408886075943746106425443668665682626974909830968001517993567099934073678594286467885843166229678010828739536149441620596236815017780081898998022539722762754191020756230451059668171217795373574586561398592091662630015294909447006951901976847521982333584158987528415395626527653275744603763983282138588292253055524792846217886446477011767286287703279066176655927247928774692403029765467612641847465375277122027978519445178772365994457044177816541724024304913059767283916842621438779091851196156949824166375056289253183151060248107545599141475991326541582835643314187085665368839815190230511423038875334347845972964084445407762841754831805160114430876525546842146319242655359006048193883858032999476112033242739524420624920542367910995176483076000866906441737939080927288345797900892989001882052911528969997753078836944330856700485832385504760978549580198756892968664920899162443582617409804321860849083143840207679467756963338965972081348870669400490343965591775428199506908063778999821902170672060571525765676725874286581849145753939360924330148371643007487730370894217519041115649058101788296092962873405464610503408814801482887926320406280188244748476225050622337133561566103455339101688091368636421624442163952237124773747481573084144731865624585582742380658786079549162111331894111946019187984111077162970152537116691261636019388786031717160544558376493663433497433633544563769792703095159431452495485318901955606055148489615677675220091418288509625739103884592667885920627459928281039087845701132551248052524277023652406044851300238543486420683263520226437291204339328692148906481378908942625266222775844709733892988741867291537973082680210235726905949270281872214090050658559641161364400159383534329705251303665752112815014391486246916177596545990230649903609732261982808355627316994638287182255323412826579186374636144701402050937826230346745689352721778040048548156203644744438879852306359928872548458916545692425122278485293585413102228165561264249118555273743127424082360735598394803239701369986924157938159347091977701565278579040689739981990787950626868580191303672970796772917455416654069174171860020630310098724323818174279701710488889565083637556120311832432246261254455375237664614045473857545113142823533149789116917705737138313290718344965605964516313194504708095912278477798556447447713129060487877575989629620918332203096565052626789712863366475633203390077967681626918917936992108484758060778326253003880569788008919324560097664570530993840531724278863510818290612107495105175908607909488586643457846894076341516218857777496552043283783806523518891129858001686077501980518092773443141530320560640239620879483781419309041626094756857143844642622943147118121412566487653215585993034655004712555318659697126995903084050374700632780448702324444745997513434197391883669682598124458521263801853044819298999470645440785425866984479765268277709613011703778546200706922276234780541841247010114296923187351394057522352103711554228712966436600784910972985197670284205549084492424069778193936152513975681189432121403230602495605648243258441414185524670305614283540770879961117001740784448204639538400258574853427159073955720567055762279067088330971601815251660305006251772858099469210831157204275082225092751655654386608810475094880071718800300620848788082260991707415666644147966503113121730920331377763418777717165794388352900836966797101666650070102163315204340282296950957392496194093620179380505115403573899733422514043356433235283139852488443118070364043178862439766093267637489705661763606464242464056254562815456944386977564512572509641773873867852178668607052641099170451547031237654497404171367754629219648014795934150107760150655183609114474857138006841973335119008975513216400818319474365517440596696405518843170615028070716767177563334645848543778228360306169941821741220194668837323597033040116662139485020653123829140593241539977863419931596982534372356518778276370770753644703354292405039325134116710704083444767381523753405965123799763757380244528801530628596654319504084414756692565010498541609517967551758209687013438938748173378378942558347774254204506610091308731059009321143521224152556633652899732354874460241560075020310701357585893723305635082513765486026117978148413927444705164262007205377916569132963825352262538670068027959337749703565010910105695708042720789607533999220442940023348293795318613524211017985678748724717562480831514490621322503082552276909292292831524064161984840015243963434174190556490600883003453885550375168481901302870794646567366969629658230175490034640566119946221256642450607153539665529400457013091700658699384512722819809335462045221193883171294378142338628401768515303661634129123930822765367822493140692219501199175200737447863861537650678471640321133677988687916159131889492156984195108438927497099274405077929329681987612370767592922315806420088289022353153207075347690084798953719072503420212095266196984338514685640057717568763075579893885649447186804269877833632907145115210959461853388934336508192441009106805915947207199904542191327444834945194389512187822544860184718004183285968268570053490489167088995749336508350031702270251118572241460709639220461553708959301035228348446119564131162089895066587629354493900654974011938117978167394810919180801083025311120889471842556009624223935038259510667984478447577846268624477416315765323862347502919556308084393217774592057309387231976989004942101795825526839546864980968506175670752161428813868630152312433976250394734896473917794488963291083755138756503000314418535161455817040772346762653229819910055384082575943104146300922303972623893709219835204289705756206193897050902051726302396684021608037473151108260011077254249543134105855528170377620023621894613673637781708962762103864708244352374377661239330308840861426276057363213367963942064187177163612498836210299000982039390000084197435507129643386341399103752578564614038888542928051104023116793551241388023462086911466097553222261808097691240484946368284683292118353107770105031177253441882369772222625198184436481588075261904677560544441030302425789052605061406294418080028314456840917014928645599245547673223557143207467656557518845699454977303394308077792249127942869547779237988154540450864989851137753104256429836088455078430039710939080855316288026365897572833082491641494407718517675577838975121032001092139769806681757666009871909433277719369799036934108182635874269812238538863687437803436060879419482218388476940307661050397467986824962912358998734938324924851489896519268266555773994891781288498958229128062328844826945589316149526735501169561205567624724818158613882983471027204998172505936198602271492502468686918873153758407489450627230370435395958017516203712318036924964891702992536560649866848451749978741269855306431633516566740600686448443778741881438067719083639009203648303760707796339450611020023055184711708890951974014255503511274240476591946897657327005646439542348852063429201220757794790654217652518193053893716377215700459146238525127907886062660143413269943396416073615860041396355914057710073363361141085417115424033217222764116178959767036696960993545938099742248138091976197299408625451431686453748956499694882198932777191727040359219769892456798375852651604424668224016082376333785388903054162453815278636062735858799821580207155797372886782018031925418561831430918259165286648462782690161454432570995107870732247438427978573247522138073794429967215838059665324355654095918693237091306481618770093616383608325437023232916059391783576596016551414477092464302536640195816672104420077640036504361663697529554107746050170745185453679202195830482130593282617627459736462493773960784400565670181417631885629193207852462079684385456083644863897571905420766719542854050150967786845214336020526732039804653791587829186019791598092038885958551935480105293023287194156881669697419585800706698394396384902409868417663984678434974147834259168104303191325911198629311867015822765187720588163193700116726698225118298902503065689781163076282619350561915238186900417553190670999618377939679600288207051278549311301499090943779697540259613281839199767269462238559481808313391399864262989867188857489231371594175747566954430822987624070642274670291899737149368011284450358717739950893248829648829005507071454584458652680861463334746465307648734925551314593493424564167071150098551908683057356137674207188645886544882595340614862668838882445437854952885733230751083814998483278216021378111315559569052377257904118670015322918972643803601061495712888234928136982070369748240201668217857509744033641068223436132525500717892502561686488027494640728383444504417303184636322401485079641571576764090863075189803892373919433187464304543010550598407252791582092598029097276357446488461178990407179107492042253989083070864940728102291379995089235414919819929871842156270815105399903085620579027016758956503914404778020923436621623463690261542914558218437241705623541121865997079083153307646488502089108334252156401338264245634244174758495134417673919044887762910450131147671411349043420308690018592400332614789017595469538620126381962687698286092650298720028624373826109396578114983602971542102673494224071073803054355174173750081095207302563294541883625297150979241970012991391527215969405445435293932811130557270959699126783570622011944017737044752242385035964822059748027138999492559295048052880662472797236728989728114151632189918493717237451578552982122284109731834141223907830215580416154553766542399485695253361418754909318077391394467715310143061896660284484274400227245540276806888102311516845772644600222040690423383263391479910689374490196490708580749670488144912296584062595762255980751630309936671725406138965687621329801511222973304150664505519171015475586749738325819567162093677559183097214386301412642656090560498655519085921746284272357098536159591098214839063516586234631698610394461941653293815164113067372264069087790276338193088604927882609848129583014345065694519153904788181030333348569631433316724345997412495961791003335654770870593530137126976409646463890182174477243339665252029081613891324384375849598191461406724973732962571191825756812400321144935445055016685301266309099079408448299043957768974018527665793584408174864327798834493493817348529423299641072398129223513808908321564565539044965469456753798293024047667075306229215450501574934510759063440310746690356101090709108068126047670662314343029595226852974393603291192538190624392647637797708793638723841044427020395222806942957159391433954064423787964189450975828624431072357366929057298121957221853432507272734067319305890091970957241259499891778384679392945281762664336384871956013036137250502104938200871075437778591556244452027284133602967147206148374855121103284342534160549943708738184717851654525521885045455603977283934767530089032983831008444590768997515144194576379153540604857687843859910602920380787548467617837013871423494179874156614417630710524518813230482961447758566382688638981819038827928516710226117832865711525885631961282832571440723265036460554544874376711394007315944647011854108751436585020933435802329141139353650941375257489768590310525227092639879491294041774043734455932861372469497041030507146782747952527349517221762530074449423728952726779802841856145004487196156452884798157277698234352445439272241886954449182926713339498200292611800494016720585453213442669634981626184981539439217619535113697234156888583636495935750162676442285853631719534010678314815283172004108070733211904852485944139218174473600382960766099731616533622685225989413061223964923415911460563260235099605684472585282427485495063321808509429146816976311102323039411792408953646376568945994814071293035160230634531406817141917632419906875755507025569276701775932600892556077551067077250724581734234532483197321612502011678988440271010525707334540153533902562922556684460380443594721932724704709529838483928411169492804132372721249598730054701635995704071338840940912875210627809141569388901451332809499384780454111358571698717515837985949019320190243028706526852483401028189045493757473228522046821298570455197779074916377421273178867507596147184710522949226708874180569077431732686865760958770375952898656577792754510375327122263671132839997998437202745903899587836785000748229289828165373077462398687305478943101126546766306828200593931025066693369136459994133832110197919268241190711463451377952317531288187420136137226437664544199360072639541577306186153635829503776618545574909388771214263060124769124250503977053134070825049734482268072918327141071792216264627398751557197974276830768938558264142081369426055531706551513104186233416057736645720003841039068116355040125469181272792189260259553360642438050617063771983420231646031410148041121774187684132932297370919111918270895363869174129274550669510111685456217382226583959890176182002553171961137091047284208801323667802311104198946642840330591066712462342071121536686593498678408456618549778544375392671362706399265069155589886148120158239206681180022280812701250994357355888600094789290682791504478422275415281373602042331321317232445782388392193195961316530304425253807842341938935528413999781719625753261029204568261850753391295237333989772700522745852933610690499310694329436812205247550851427197332848783186826654996416774607476214794066443832287667592840900937984477559063223518033111302857118839696970054545938045340714357692891596373946859541045390911365260029576360392608567165393423712980787100437496045344533053456362347782281218077851386416703959965278939860713792612433414055470413676702184141658163265244252753602738252063597993443555438503349743867062479516348748902091780128350613894252990122772083104806531437181094157647416467044664635467706145747825491331602702860886984189405876015352572799229440575989068929401830757584679515504020191079125996645357661082383409551205386613145897148117680303482802486443034182985724689787610556956124472767812457766532016819278212121055543538189473440311159133080184741712951527065345130888084134819742005960638804963417140436837553809014537663451185611741984347798465818034991325809841097847280509114468008380082597366032345909501004984498969642638161141336035495587483942064567970996952901091156138371979936690803736757025347219323647656479422127017248934840586898322090933120821144080911500217730682436323045015641184140995817669240551850133953938902819736538195530302284856354412068469728738024003640827001935760773121448968766226242929901713123050124832007213404624857359223422416824497045450921083628057068884423239991147713525903693710408283786578891592548549319071428813705389357051363325743271790670363632333501434303285457220609028717879634598351726666833276778201211506136581295352579839635027526206675620233363463488600379850170511988986375992010112153356453604278358286227248208101671049752614957084628869762548769732549584841370577225636561779949173065832258892792870322418761657468235982554749346891394845310371986974509610005615040234464923826735769776206916156184091084026512747964709561770831132698701171922925302682113024889703550713218986550653879845289355952422297396590739730431314472613243262826339262930891562492676353059130245621181901698379671748212101691659435330430554414459751682805066478986298221678054536798176352545986048015533172241182971812083212581741434796473875130402854459530847750000636759137220627754300128043375673828073809580416753642797051290823968710565846507564397122004096574814460758364293090472971716929934261503427821203134774832993176954387516221425661027050553073607835397026000430967563647656005598968981177951719078793090260146442486244543278188341031424723514667403300264944743611372233761374427250881975937294978128760493024336595623342698323394688294420080302294904912764699058072784127073236259874839683231017930921406999488415494667946430479953508222554226603729246800833665448163835220319660814432681095266540893553831101568549770434936514772550716861736284755289979416063380171606227655242856398806480870386795020613382816894156866308978300066264304402705100723544323330993406360786288246166729677142243761435010207832958562512308383523834784386646051896006867823350047270864540303095984855464349953342551939267643090129063639209829337340981401400027584270140700824427486247644031448415357598008980665699268945161539467120388328769873257914864500673439426775787696766556709127612635745256238049159743800554004502692000318647832430009693126004631018756408333480615403699618808068043139985958484131527278566181256878103826522253992155371863894189791903630369118246229392937891321832651406220372424672400890442231524263726672631463283557568902981995104216947755509790784608756586339369499971633741151698760143063783194705880258489192305886895358282201780815603245015282772836593308647385339859116554494034646852618522731203172329897425826590624110274043761167214411268288584147293562070822462290340789681920150716346862416845950470813815824362681864819451063552832439168465793753731470789994520926578665673162597481411095699776331906404841717473863382295240728411635561742824855739299150212966503452860873955445823075102927657173458447950694244821588032398306592449112104807269669390731997043812550215274641260291475666706940315332722927896563089765388618653197916057307144406299180959449996517110816767405381938944593421283166941759830105545943876291075562202362241291102186772986405626463238811698713166246959670784380124643194770750587992660155772404257520810305868534547871400113365810442813664587044001032121873397056679569245601237591934207748936444444464038482196010674692797127322587592623950543820316592869416436892114624939795307135433837584149271010447514977966356234488077294524853497981054681729852540291848177362435202700186902725908177526949368218076241456972523645934919485981980032358940559408040297682025178655112353702208946901706780487727043734768780161858022999224900670512342860023565786663191895836277513841693538963818054345813494705239613594103734249732003880589253726548790164473874003675322258567573850106069684935018149058399494478504807483278693364809258177427738086647124957409020485695615967634080592600226457027285637168779743174914058328137823193949067737719128685501625116885828348006407908742154982279050503671746136511433842513099112954307809678046441632381394084799295224093701061226040898584703039631562323912438854421093617757200285335022324868994606699178555351740985445568039330513938739300080580687839481435429665398999058685955142224398295650879716969685569935335159915956152806178214888496511077461963537612529866662559254321460067856082776195267152607907589969727018521953763114933541408728225169021538722515878853076995825711393651602007676235426562689458856755123036569695857935786543548086101127127595548812140951328522196817043512896142854685230944826160240568183185195061484442090451060949848513416609069668417939838589147529843555227596525227988068573612587575810087238299800562286814209694614064738168444313178999484665067263975258475708920408664712641906066220671858415641581606498107039143079418291346023295833034479795696823563237491705208768289815441419266140681987935902574303292626956569172459266008215452004233332927053481537766332454107334057706090195221714584741632182337318200460067540843637627987032618322449996801167982568195481751685461455633477025316235721788400888702191900963417287294326838678888186014596470850073049686109566895736025566888416850245116406094558304795288084611144752266962265204549946361696712735533240078884553920802222899803056878315126789958883235264436350239372077294469898848163170634037500778406302878338913531006206007417657758088867291556749565069989367909023092085528920068752323292198584696784295652119950651403971524456251239888469968092956718636073464038557431500453661205374205164630671292144546438433693188389918288981674741949285538158541532804752529327276900746816625644143311785465741872234539337770930015550243128442081368694098507982950672904204486014638510683627060708646354860864451768707930664202195655169912606248253512810046284840616787096265107863204996856325760416207209503441786882435427538207335184286878303431138925907881369656920905836178750651386602689826390106912301998029598523079231892595842030544084630538003113156188612945163401063566792563454690356672813627558569667294377104966285135627430673384713685425495188490864166609275240154490351535344341977125588019695860461415800634866770372765988893983628393983502087964850787967659875127320452605621485232337460426082143317784931640367277263022148624575540814782225900274868025665105852756963591971810725562334783423626195295723995492279078165653793935326858229346770359592522702907190108831841799377181275994479931442517218300405004903393459780615078077856332173675204278373647818972941187978872530876773385759373386766718321281957138396173063443072363539798587573930647986460635329846826683566930767273723058860282204638321480410449295779915564359767467138782075682272697499233325143616203826876809722047312762138368981020287012670404848084420510919593020614910466096776416146893779679666103016815911082094261248752756584027961718313631800748356308379200908325779086202613453415046701830386126078563464667562855712047632190691683740929983432917383546691394543479159803874045705188565803943478049974853900716658254613552867541331273913943002204958309044817079202138001648763175236564334663449112995616002219956878585618182968691588518463459535275366863208675749609194783475865225438664421232512247157060651816062787720228023045210387275578096574282707671300151975040422006282372873360333972649569637380107993873912078246039012998772236735307370178700759994683570667575224926159428651943689220569572749629730524551196907130135231873074812807163241946774409956228047758472231105254523297440879847434587909506252783985474187114433948227000712292251302932589992861519949003355549020539878910652190548449947874989166494616381553701157665015955227024417833008822870589178943220832170552479806544443424448246151784762807346350015564104311639760779781378981623751375133042145563864456115218154109009417565832303758930155594824283466181459677998839814744039030824923807368668141622669731649951626653091238853796833838880792827241819662331536225795046023234491241047117683483821558591878614970106373248461012977112625681774615639965031918074059883357436887965521179377572594672466465998222303016799649936378492561901078095367994333600383210312247621637947901503213495899888017370259787369907603688102921276157352736748547372434554620800186349332119564238239984977999756242851373682691456644777678490794164887021811362039587127863749335929691601227186277043393462327251380549588083145109361814242719812959744744059241558044427484074137468076156763592480547455134005843670427645334413482480202063465482983137963165458871925808267653159805708653517188378261274762061637427341353125932735482414231939479011312249077294721599179790244192149911081534907415361436801335465389505072770062239466755048992752083684966233616595573190616860600778477007492689484061276589167768720271610379412800204117349943817122879413903673572205377605030448764370077948569756641756820936944525262754497875588989947279243314615762297250918185079761087401462413496726586071549388834491529126403903820422671689821657998422614763529619559129802545297124962510938041988953286390877010486800685513196050303904690704913245128334367876004102247926791888643710188935349239116229440849286176250475186364412300555761178271218133942293840917033715092410611520581718615362193407974424633556277714223234342149119594427620534925714218714347438275008518734613342861888072899385657866426687758854585713245203097054631547460412538724593054078848385942805352052526639613055847581211586704311182729121025284329844497091456048647789440425490197492413252225472728698722113864329521179753832511905145266225996719894849823208176463739693131816229448536996629780081835404530314493932811561924701884186510588123609782866039972727822564454822412179631393810127091764586702556602131075212575685958323859430944951587841295542252325165026902936073333814574305943212637076090213138843820576621742910757886261211190874382031241162551728145895481333752726664019432415015999732959692792507116321879752086841315182832981390955864450558933153770349720380621388626198037869586864612438406816495628156435989458124746614873002896863205092205722433049780496617569467111234782516131201750478725607919364866265773549052650523085950593611549422553234839458963881445875395793019450349745175724380350805928327495420008309996900183341695750201784293166008583184898336174978676782342874398203416036819272831415476496921852345150062007628494318645845013469238419465688868430056307989582245805448755203757929695058268513163834622175130251094971647765718741908253410072654017592457306000785213666506672787548155662633883492505064552151832027969233209271267477208074512711792334106130243313393491980569896537179587655502077057522078055323325889108323425307281246204526604332348404875915272822317271717669178831649621331643187030196008208677028393744828862353774180933003856915738962303660401980029951123805485803668274771323720208328743675519063961564549736200953273114020390889859295724863778592868534230341795110175704327204570623927290747277087471510320662867754038521862653202496622765168274624828888358754703985330270987952000424625925703147920676506893173632172674112526394997049298160443649362752587905254564327021759567050714509292000450117564896141707319987531183673859189747396451243545567035972041168133409743624681284653066037568330528089071312881649573852393866988176432493211951974044244374086667489810659256916710878897923018830383982108348883467551972521395561010313518202676259380441741531149749553685180848722183043273630262629895193113886269199333596339524465600470767033059807449471619958943501543234941886141544544929995718072231874643130905304503307744800391698812384709749337144320376554375405952049891775014934157714780118527951554376614953366629763880320598314916962494231426407124413838449613897766457342836935012896981513495743711365440637949517912973771233204308964516856284715972419494987226262345278147120591904884685297380001595630518033010020168160658630786510907267973066301722348985443307005289370344417436248893350500899296923818552656010501593392317325199511028218064729914802509882140301068801379924368913548112580559923701153550210847299645416500613730194218031772796820405044695815462791293281474152042130061488441191089142907101948772730627260140840963206744137522665255442879506890111123752873844832511876922481361480890316762336817511209916633496070273653692594868226692316076144217867858026853957622112849222870948554692146164968232188886721383703258677556152602022238117016342273037106206678082873503059780651177255276785587443791592789388520939837304760250230237950464888434734489584109009302590567974303503058235447479357974863584398579020090203730007492162163118325909948509443042243987421078982411212758706332391289062358619944689255712305274444333204088816335273523815932898655529937806539670473402889747217982594540239041556311346998599650562092482856725306844952972011403707033736646398367477506159938523924518713848338050889491179075919604307889169543986220458911649337733773480335059783016468076917261010556403127286084677023549732010653554368344401974089003123199197777030875324946989251753457520624597092371725298083205335345350562812139365898145694291366416819897143191958127966139497348322467705689130942209678673214133047693205142031287129014865772243161998581670164290550049510917214983822909532820225512877200730433332720877305211755020222918783693988349659275170696964047870470001545648547742624933379976225019725695887134534417164423057509430925122708193203963823540745585186564969152544266508869575756335742535523970717425255787337637846659518654327257868500577238670531278546680352808716858777365625350939299510775226877906663373071752535119502189568291252257761193300581175168394228200761999876025906846806180812651341027222350192698937923075912447638173302155945065995447243219878841817051309529597007394635289706797982502960794665448036212636980510318207519119214277604370720164514402168877607263899918578444683363566517286860371279262071603110918248706671004655405198183469181966429565163248271137673157366325987744256582100634246155170089878680568862519154510747622978472566309594593198924550423164014855101900641871319148952758547925963350295938617720134881402634641443496888904294855480932915427253962796152454294139824617682986415034291884000802130606212371555508395311803660219319727373863645375197786985239071509621302435661416268631975426852023129789483180177269024696027102251871797343604765968167712658060602655676561535982061497228688010648299795674231111635683059674570772672010031348248088931427354783812134059338096402981979604798549378586386800092998337699072522169191529608392750091623226464582212257203027541994992827414353226367878432729856201733426472873111606795864471824645526888595678585955749424320114306425903916194374749981428052913259223261915651465932742509155782903890007498547243484581350705460826390324688531361756483718934016331348302334456207789293753163993573947358588973413613762445046248526271637101414182880469709320571559393684347856782039527542262399631110372775329506395797747430180174567862413984816080660337969306759767240263933645299130697680961719892808325241279560389258584176594773819719032493435589897042407024761428549307701639378460333924076072442992791420034349291319034964750773203000567807575225481432631292559839355848009303654001537805991102970869379616547660971826620582107521953753723284042638610873066414625670015606202903950827379667758328428571305502775656610640210064780393360237703865394846181236548171829380613206149100931456442292736361014329745983574340459177465500647401637261263689080975584645785697962807097666464120224118877684454951564712639121585407250689409619606603733016285989017390726738208875903648365086739692596351377632425274606611663394878702759747605150100796964392795586860065977179851169752499602472296688232991853279701162471009923683612820651204020748975168299495316708557280903020480148688809401804421742921399636073697470189934073132603572228460367374150828702205847228980407044873623493730272981683247670125188568447203675570056493230294388783427981900963215133441574055272297199461425251105478957225668372399490388365535417955871242179829573984549268141274979107469060829912924749442719679320531090361633757069639845765939113396532587953318684134270459609133626067926130318259011653198733197389972081293237635269390129323077252297165382476727490393693498646233897954433000905436222743739400014900880566106442206113446614985275221939397566994123711905762377450527101527291648875436589630183459818258613843490340466172652379201297761358856405306081716753099786073924973161819774422526509085232827500990202458984862815131654404492679022592001541729012663799442926623400386093514779616654089872821859634571013528351955643156300276369265148233243347725401026064214637380517326703444042718244029040415127988321552756840299840596973337207882280338334387825776687788651064721344080199069453451286333744221490979455810618844882893623576609603319255503429255416791282726185321393338744466017978662062892446637501561668665041111393131057747014901263337845813391973470888540829258939416048725997039435660807273720295808664233905845183084043584988795409313858296719946552420847868033106628738353580542118238552107406152116728716717775268014933666511633907674656039513588716855392877005889373924550194587821544687524861564791988905688820533321621678098890598949567761069333817776091620241306961485379110709547623666905168928879914331345154143710505047730825497155401699047795279402521265722115634129100342058414180905779398864887913949504311171060226041436302516833027919606916240191062400134699890338307455106083447736837839001657584699643280943596623351036784962532432014869357716334998271903768368432893689289276486836717680188993569284715031821935760466221329000084324199107625311763766707085526610748797854183380779847339496526937982319381651859367392789434960024616669650845725347780397765645469379052806311806775739080318592178345175536917747002425618755820391012217017763375364699153352529207058166349229969680638826697374487222153407405141891235320980969564993531672440908189171069324175236826324269291124130849938350936957682622012237169004531693174291023794680026677412305161387355115128763521919610284355852677036187987630426911117114511266100554753277894449871895970989303269242541304183062625452318954542316513261619482576038791308041417450946757573722520964113626375834771329126822141600193061366576509993011271869651847515472328460976060556261342079485630664792844540123404844734901387565515545678541322160705674101379927264521415208787938856495403755437624659303328779340318450682480178586323769661673196836813271630651411059529913272635848637183642487126469303793069540372914628855037934967429020452518190369583213440781397378807042651500873524966046822817923398826434095315700904429179238004175507104964991207850294244047583155399540982562640038439313013475320356731013304362920202978749150885590931833178600638768869555494510634018883950119161687034428000419035113426552499311105525881951042548495289154493741450024282187986334941649899231463026595557263835861039886610350553642217346058497919812790317256748444618615441919082400315060409459442879590249236174344972110396441719347346566037000173839856821314330005117550415398853285637159354549989452178223005914603018206368415605336033250773302944792974018123963602114322692658873729108127583936822425218275516420719573450795413723382835890404637798218608893325182325561798823267077328393820250064323543532732091117789848987807581444331949858202793466442421943365301873852309074404488400365510018020129527802726377789385569619147406389198450950972962505686729535972410877161668524081047218535589781128333857611669015664980751061676324435515258786761542080848001171795358333841566461975693111288118369507958766472184179327041967221009604696434358000483283747416638856040509000468511594885634192306999845959065809002755621336045533636857472476460224183414971630325874120830708137106284730226646775134346917901438133934762651008719447967799146256247969220073061849750098334618083325483707589385310794411610515775923122797103874571594005058063694527987416501926255159233988775338289966462259273931388889053124701878673887577439454618643148386342255248123246090675288263366501323260006910293530148953496286777240546106642096127044648071111255109877762380131953044712035961971483102412303696784024460182492656439055322014168172577283719704062187994889583916293049366579065479888375109257257725826879084718349030896567842284604542690307960816652247435406588860114712107185961375806796383557129944029530984511822716614352511044999942884761438756163773959996887520417364765585019660711389408669862777896357317221575689933199784199000606628940833685119657575879105233961448980609098441185712468401744651271992275958569609816982075505697702392623511884937765276127936579027680558783507080866502214733126042853902529997580197359769459900195600754381123402048563309737306739421720042675829595422979265727437087041351456548673721828905105807212675926532806055720276458940141018778047963743089841188054052441571193720691702531267548925723214629096539231086642274245689413387113602066957549583285790258374098157536836893026195869026048816472808160532849517605749450889289362214672871005517978332460860519193700351955174094599896819893830674286780367723237685812609028181321995857297748283729598755040069441652920243303611993923823451975716550262750329456246896620975179211872602230435121997475646818585602642395385103162918558793626687756602602820476991373276350929381846223045710360368505730026701414626501675832372577858709441905302217284256188735086100400957917937986336717054890435310860037130283399019550941065994294354991780861662359496342411381139305360281941031151111493693087850711907343338928885392698149135199988478817641361157680330436373845822800998932678196524693220369174436244429081232059157003809835721042237322008332722135536903804425826023275875177474032098084679494103114174958797340810426047205123876401535239223863411681792105224025869079214031019700180309275402197770761285564532115587563396598041112491453331935780672230084833895878456888054905966433943412139579608042788449634923460055995890286216481405981429235860852444253094013367411543120312700912204266217854225163590118344302151598665880031560118854697220682942434446170501187543102051743754551187215275077934521228645144506627389379006820450979837546051948274102837120088655268503864779982414936692975792484958441314004629887012601470021386326593412976069566850611912232835941699473615264852759790504772955214828942464773622665226594779854751893434100185533905092980881964078899653961372336270280361967230208018215764030058532111807585041865262787932078146454412352460697244838602949376770067644715963470932079787149800450387735342702371869202416306673899900034669948737909663143861346336115656150324501618113442104952964811133677765434650225318565588891108609288571374522885285529190776388932983915162288556494486636428265673633358906328199581560565244813820885903813087564539475711840674199546242541181659159194761419521621754151525286168859343671500388336710126602472647728401416368080820495252267909788267232352949397417818173227666861639326803020912832176339724144758106421182023363552911082657646226078080881823456393970803283417946866859723053214413612958562341062095892246006252540289495614355087200398326096946506464096577601949997250156750441688908342722899239156279273848637703231602388331973860580466003774615726666894250255238462487139532845991993199204308046485646687179058003059618096007341886637073330411292711064733285860262816277089423578257929563217112659874976352700706875130663356476290931991915648079485898833220255025181302468117765550582019167471271282053609300912292791948990854887533521969221580033610811720745364485447458061271259463319548401015054369014947346984255568461497288156842752158356588736298917958103037589909426985018611871536471624335097274500347281570981292303718773575821356937423171841441353427161407415285417030143146333737101330687591862333564679085080838382107100066563222257088515727694359802664729403174728844776953774194248230107698669518287372749364230869164362721400516832175831843724820056857838718751896816426111034165269505877853267624648563649319917179737220742482756508189813466595246031138645934588673681616554697752937425738477361343482597562543665316734063292404341048406706297426397413779140138946509701114642851485416847625843702224731547521379495904169571890724675710033503706481334690891949024339675281124666049580594320446188285607084309792356473709614579400292334868681901473773696237585612852002062065140691815584635852963235634863228895949161015476409775792323580942017832755219620938012462218386306014939376075326018418565009429153363001239209416197644036905959833005338847474090516171200620151588484116739611668570832721295611365879179550800569619324681818306784457017859164760652684057679957940339689859290408769588023170793281391284741857731471221776748608187939580275630386136594841790537681597214983469113200930497350598933343976378372974513807152616779884603894335047191983324855458895377943166230845412722676696984036024951183612435491736726424863084064532190531046153643704382954154755600133225691007676557499064595960722520401562207683472045458546125680308228921270751886693358584189164332014967815207415689879428458932026251207454360448397049159574485412392618059219557662028401374154110748236723718736581515084220945252109332171564289053278626077749246799781457885670136140410590063897100477688476003584161581042490049211331323709286897964055737174323624376776614226990296875832762392650287376605214093074656553565669833670365194107311514559366731822759111245689125620038906232212766664177777582741413401449238844453399840837826948359384666987771807907429079810405701160774584007133747251119521471287269005510276390695607176231941454461211951829569593596815945151881038970549681113426063097157756376966811124859671375660043674406573525828422560891498075665056381284761784685360049365864512776381035932371405374417489623264426260455667650250277426736399844099726876182954922113170747402864450337587144517636138148135757914259784490866624408756569666213721229607509509279485026176284556170824385086261572345763780450490052009632580685365581036515684232184136113682817873690433084727230864708423845571773909899901472152596206000256862158078494973083159967507021259560837784169353110439640024644119570766765110779570425974309124586133208675169993032074565907054833201570707300173828117663388984665464822904643844285879032596678976281698196898076555301341813861793446707771998184587960756320339392422686641601185661425506706302483285776817283110655259893676763899979552824305114642765592588773298601773689121266533287296024549502537192402287483021702909111426697913620584138670659475191216182942774673803932757977501410374248137565860048510385254731820972035119861292259072286357183504229953604417162060112486839917554558943689225426413742667647171007909116506677306809125396719258425256741847917531150387365606053213611344071930202952630789604631548840298592661096147123282764251608881344632716858067089258590993266647445230149841819087070889138332733296825761402378521347323006625133945350732152465827796884541062701422143580559053158117474472952914221179731855402325357824055107813158597038534096649259739513835847059507667841562096664025242280221733971842932740796929175996062695742457771491464342739201146211604834828204635977621881239128059182627520306521736099594010377298956008834222885503125733083679904983921387749561426914537074420903862484092640117179367259044864705419531468673403493165377206284598915356191213397714525190245782251505249700984189278262190561077803026043219760959951328525336232686542326957914056686421491999257872300513978671088137060274542149743874125866322531149160592227519607103931422560292821803327009531965620197101298162159508763021572631137429211501086775070712079483346268735521744494051791478454624999743287396438985718762612693425277854088668887646103250786445818008966565631547253326731774112024652971093444325997958790657748443947244701827896335579986961078248166490111208113339006776279218512689212054551750238027671650149092706586651352418589144720352117831923754891515998768468097724796254064594904587863970774321594054215118957876928569406070410311385037769270435147499003612334815464016040880539530834312852757402015447230023884499405794791669651651375991756120766025291758937894861208962545099077127439910633012883788201312517166557065145435280396351127402428554172007512465854400343434939225746409948583874973258258163215461273293462438046701899052275439674845946622362200833223847922304475266804123215441913592368472989490680236918150033784803904796804340863612068309211858221739425223248100824051405068446655030052039680999991490662295885340446442367881273776497652567205798986938168703195747198400802923411537257989326251405208017943636443781765090986102463038277555671654188132471740759479710356479227783438020491474152234843640007372672582952549535857193637506784796032502261571396986311359355688418408004219827915250255754092206077228696478548319318415820590385643233801640622393602750310007443359946009871427383816991513968654463557339935384148672819325819660635136184236935285989126731302268402855370546477691678543398893950185012612612974826700430989947221701658037533006946057090976460206105261953142532364226983333442102028767629984836545189585466292770369264147122994488429248089099131205816545072041621459993835895877852632724454257640810060692832917233580307260877149783051950761133938473303426543876933095966262984477907302959246343626416923658631893188253699265630726054841172682140708543276339059069421157369733253139983359518326473821382544959611854813871963139620078422675485115029889252382063103661155893265327202406584835925371822441815313481440083794046661264849888379447005319207553635167776194890964376515516566391310069932549328055875835188958305806496780475977053708116294813300330320722249768034043340935859299942448061919804913281966777975976231959735504214113289080204075486825491179114905975471981219238520588223010972980473076781932283788652448739667183832944978046816128921835609444928256632282060090479572627553589026288077428889086880565510295471926329267931338629348713697914276380039883384148363598528609344269141300920869451761878851345814890931527053209979683840032635041327111596265823364822385824420132968557195010044275183927546861418293198609882032405287652546770043979757531203450596840104556899422689297944371410946439588410130503390976710185489896537412213937574498693557072084449312607625836437278370183567852902623211756994376633955447668216005913251292285553383655457058161762205038184555243672279510805300479089231093739126426145579871960975272751523882534368196218794659105662929163898310809102026546063246432232055601084590174448730148961827394860315361743753935483261368256954456829585859183220469719318691436107318114575892445903388424242745946158508981988176064540653688695928387695897772208331599313964522971556908341463375173428866668947678422188344189623946983836874996121044430322958446154579312647561617289259409619532379875609023378866834316928815227528270655417662592502753006006866873691417377020881173183887578638944583114116285968369349417677951271962683907571488840368553235542765214084439192361556303947866076326010695142881912019131172755415988588393009000868348812041932617769870963413757739972650163552409257051861254856320318826775680505861894717489673603738632723490468733801120241842594038155759385325176168328283205862426518400009331570814135265558962050891237196136383996130569110530391737019833540430106014880578479696532867578303897306647746132593729328017814097299171175766075357316473912033186038771855045010263215620590278409117155954094978342409640492362725187672681910644691777374041736602975276191058277216306401711544684354206776171452504817967333154545793402287044365812987244937306988054134544415054195559551728269878255323293849066810395151695954337770344348292572742543716024519328232144084922008750223425897956401679413795639190931669095937013478804827877959346483344984619183179316235825911220109626055655751379160269651434881763384557639438454583367785267560674103235739908330718912633146285731455946011825341489941934643139319124508704332466538402971309973064306128985703906887739034934261217943607291717072816350000470820085049247353206286595765131397331427952256890971158103541929504594595304428821261791604877718057001091004686171403504777209318429049702288146196226330785197914039535857437732478132185107853008259514163931044779047786055828361012618033118571670726300988509302835663621440339480528815480688731826093579415497890652487780859029788546362001889244244127103196277947069166169311600173620513308406305581284291437052665852077809924485800141861838723560584901948002099986485753317779456007390994791739313566970442139797777300088843325011966230070364519096032816076791634743152401708651548174467406687883835978132206990852631785019460327064385345846858488675237048046858340729666262320674905372998131978342315970968931886718120107850647431541104826303627668275018504258633354683474589981179306770131869540727228422526852669117199828734121021368867961303744891623318013734766386691159430212229963818652471430528329166098532307789918648882676905031773829503608787294462197598777689227158669782646164170301112276061979145115705339321913607301857497460675085790468728576642067188059464473437069682841952925515347245305221062809959871885908201362287263689272719698920982221562763907508556678556561600282497510254597411350794463612589323613590794148842086661010307734988489701981782152475255550525849266849549046554122596822928091422338060630776519532016131539502358876024423679070071611301843146490327947923855461296576883638954564998798583471886169148142367774624188549623227441350046941139216751251227104603899066426162579031304675626982524796263383175239550857391063929023919240796005467413095948253743201164693537382863566139297643294035833997836047227615728900620405087836061346786502069664826411564447689635026621585543583895289723560196530141312595156410741626962701308983350045102151122845309070473799887569367422552834743218110425979206664224905651810647757263734880448323969994731760343726225009297994738887273092256466094117219607588276362139319180738066443509876983933892781960393072420952235191156200155847897082582452659351127840669455883995963540764466935126285341085580528210996171339632432158159465429717318056161984213328988239110029234255655421060452173153379769724337177325401114936303861804437947339807542657246663128040835755678263467957772260327733994178916144121497571103190035917617362991206345670629446602298349426901095065526189157585751388066846385085272294289335301494497958743568268713416440339492356343209834924685146548218806587568058764634821831265582182976515217170351220320266793270588352854825933532260182628740206862298190267853301542390519773792589243922947206618073492063098230171133382642238496732565881920181595285750246236282112621037529526406513423538215176457355049002014004850764296408879393071258316561511982415391440011282422995341865667765018492114843057157531376054659152986968981587275015411249230479156319856596643527841586593455031452365518881706471640793449134596803047448949082127532392500567073005002779771312720826854852418350201135039589295638634789645398604631424432779434380796376757121299685717359058410172127053671317036293429600009985844072842002317494501967581443478342347807540910392421104953980797303897010581595463251639648065192734665966495076252820872366095540499569534640510233665021898720826963068077916209565129064109601730915493257286377829044434207523738615394652450671406079639181505687806878179772281342392817396457116658534595422907876376010470229582340317366719397167274091448721104242217316439455697370291035126830847538863471614665866569824815017954814776704855684131164971127351374454249191008885954360739722058475367410180488707415234792085185135017281468133669305705203774440837821486747201811038559247658226447904180428467971224785979325112546505367954059158268235973257606617084543696810743239328811033865473818853148972958823773111218245133830590980409870397283445567429769717542793282953399838898248526874094373631376020054569189932372860895185560516118409707969556666700344912240646205540840409862209935463141224136744126097121818689730803715493631593432985739570103714147988623960473613531856958394730269344866901160599588627419018182024224366869442012319884996922894448484256106973156748025619165368825094500856280475223711082053194524101175129513171889516425300924786939231126271014436579037592374927334208615858112762818281069013954975331271435110527216871585232850404347235338400930478985961212742025755251321121557872264925190958164592645232609497986702168646388530073885131138826715058267799416605368140003329892983910803970598157968509265987055101045656872747054385983744043673104038710333060223751710091266153133665355066738626085924071665702173297988445312263074297032660829177878107712196453306951252867588697663081765447496006421249295127929764602679841652786062619686052838143116981834019084139548769644775437583346071358150183693681243675530160862510431142026077458704162616162222402640950985358736580428004552076116542772262423360043362327237342916804301486462047885156098886793661596179265285585881790638650070334428364460611032616012049078555642405911081130671805635161645171554735675896852873037714230279958523221620274878583883651876387417179163876219273430429128356880115147633337466404668587411483065876948170968705645253190618532571229799889927894916397063576007981730991396014802194728022964924782812345190472106005676547794495022226437867415879885791544342285515416037498375477404067348403138447627251561061287578141521594018508602979259028015224883620941922662045167810363437128673819762199758118476119340765794906704615836926948388224650615033822419250304043936349723606529759982394134979849901761551296037047532749007499397241369772655720858757290936552336906516719062461561269071469920582736572847801626892982308445095949492575674619468402364388326282224856962238016476491353864192133057680318219830206085309788026979904267331803943454716611607364827037059832192731309605717317673265888575506269391916701926601739336763606914704672917690641066611315621969021534059205703419149299759837015186973969414934795960361331570526468864962907771000405503440301952207876620987902951407099688897977365661412160588223923591856519593669826985549711101356407043220479403686009832631458555017990488876187456106374984666354418150760088205025421922367696482049179944173219145003533176099112086562450261863975809026258570238609392383297653526503002088024527026510043378151128815484726154896137334005229418299103271122860537913982517276778995097349396880593483554008979782107334409077533783018921628777830526072446550973460558800284332509167412415066618122371164773747145052453542563077919368027962173112916623621649053213173119250687305425777826525193546381047484776635943595437906443089164344495921257751145411863676378114312986308300199004920895402357940803150251199262236525710407597624680200954008914879199743466436649448708578477032029324807467719425853784485843651069494887452629355592100138341370845097474909330595622438144650076364120005752979106643387462441929682313993453359147191547646875566950715797264225415074110434226942157792973302787610516317426923485321824480240989577412836637996656677399794846204075626946924584202378377433362440381296092008862832954219727458705907767443451474214318898874942573931054465185306713271019844944418070804166055831943392841498487879007810832364505091537084976847527917090360810196759718912765038367419471216822337019322840810376477852989578501275138230440001844719932626225510069017108496540796909753739036935195486757220098804232605080477620706527689685823127789650348088547720781265791351490692701555586586161151055926177983784108486023519992687567363000804307227683952191138328819377154942305112152088598849209511132502437147897072470974368382684376062325190285523672673351377181233992386234718924451988761868081401897332970694129340441456609883153289726942652394868774400672963629648325493705485277017333894907961105900547511574565707437912494213698919854637179662650108535574777896260163027169599417189258106458316029535012920214904245592694343529123197399418828851708616026902060381182057357351740440174761663843667664388973686560850444780974046872766848504270929679016513944742841576442433889644622957146007997616821846281929336714609180492414842161100407341537002447448770041502107243461968270384797241533553857422389684700302792975310432081590677950664479964184546804059801626215444208038793172757747279004213102829703603293066173433608944085958220770593267271562700058298806832355484057814455169240059772270226194662168592893311200118206602442832731421548219875371291345385517240241097065690979199904656505431858710382914883170275361773023082547535259567059135492191852394787570488003944124664819654790728465248607522032069006932669560336853996122662631112368679769093320556160710841733151731292560102946862027281918049224044516064796611288286815252116738713134974901451094411147931008313346029539437275686466493975918310599359125473780585485514582439874132953261135421411356300428609098571838051355975320801680280275259537516069341120694053698568980616507767591294410739043332203547791495531080320058520816036623165813334822563592591571733764709462048311915943762224257116383508627428323349331163581933996080582527086687338275799210214615545238931214614625646311632293793157414461419201422195259395990737046683588610673198939834436218458879808220790808230199888456867999425156870151613608304273668041040412105077082936449416125134981933831085015140543220252631326133929132924003386641657066122970471876970483855998220229872077978570555353583716426908047858035159883522057198963743481951279711494363206152974890074214123898322513737371060544196816589572060340439611195707360651878118437896543212856077369401723663683716574532626586792478074843921821026242399744966801136824357930788691428252035643254192711381081121196586767127764211525728677552949228204139675261951018961334366182308362724507473255442824507151842125865634445119573445380614428357557724911394863251485206400769602697591633914307106349710463983997856107117932759036738888292176145122134188742028028724093685144154099893654261589810891688654309089823050464369831589693645979355683278104313962231365343292784757843450026536090261422548826989400941025818401204732131976758861814604742449324253860400446810647336788259522328217632472519352538081602531593564350686230469093655106669814470900948411772467473822892679109794926537509612632498956294208081770736034695277190972034019481148091992505449849269678688124961216451038771452289424683512682256531026641782012284597451958981926519307909807884456215742699263665492925447182995853548657275818162929341984838935739480544597447427968159413474315885762502458835412049583084919404996565928330361117924393381680371352368663286276260746694788503756832100531362268828300908076592933503589352607255251867479863947081404616053233191360120591109072954139019578106889510188777374356692429563448519179128407167691240673196074888096109057691717428153638248257310328994717562375910933105305799142566974450677541132813473231643752274947217604082678677399231181114394673308906794441494434250009941503519065953942587204810084229500205067061791866814475617997692007511921921176465931278123422345396419942802046804722574646973055414101097882131858845580404514532182365977103750657059019176614491397880246741564861698066166947955120542590931063266159297310528200053638195195905789003572081377894938707127506513207957207245891680090514888817646914082578359772186646834534953974907647812907367271932034701800657599334262496105449365217191911268512193920280691278682770241287504567831400922733500735209520857358745354470549817655754893514622036742871959753297055155218420537569959221974784473925111665779530175205294169769648970682628371397730186164049103255157369071268797224236482596253555888397019829839665919333832634068392931009437350629109870152358678173432701946351947004769074106211431002019113852038281522464469219104747209595086020637558153629450653976509822339722040558418495941256571542626098629584281119346336846725731709149029697335745759402887559449956209148473166574926354692325348740945645751235562866684606201728260892318609745905222214435763411612805215839786296657592726814190306261769206043890099813651518418481331917688819482133483984813016064003320343144427088840054127208881970212515111591079693829992552114043268826989828289089279632854134241159846852323961038344040501318618485400623264284323767534617767706162477871541733756156547995920718677568456532778344476962601924692507608050781981015707292714673877374846982109821404747542956477987421065871135771363014061498784068747445224626671908843414946085079008651581248556986112930357392664484563709431283353422244340984573607380071381925964781213521748310232645965719985535215646058337140029483358292355171083431046541875127266069063243724989684265004140056955396937163118737498598783848975552884197525709095670356747767480663798320550760084846865935119959954456595562871160687028850158004100637965999165743309700416369480625911189649542148356741452033460489821087000429727659650373117414436215369361790814819133803499624569419725494028748036563317055650512179750484060691345079011288839844548686387374273746635608826031495470858719796417561281917514296805252035430476913452433681092947802500852461975562324029050913812461126139880031538082081913370450404820249734044802815165397296872608955056230021145945816406266559557976246786863231091281693702831213803115760647709565341185985725402000984440404201574359281908957776947459071627175442975502965190495135900377769541609196657179113738579631978855035009478171509431504712790560356812557821495988340519706287989021586630188507566869060432465129805618962606862668453396417005906873739673169719827274252313821214319148619069581838531491071878781937027132111469055739953824936802944886751158712498111064891915910063144269496776261735747199089057330350351852028008577555132856172417011859731918389851647348413991432240608583384980624221800403058403361290539958439961200749179077955214697484523783948625777734655488838933811963003174921741486483366631880948227976351926283518222556565994752685485349830508416651229367740906092927917820584124773277178380436781565999566005850090807717721507383303956206134353376183888884403196242265797582801879762763305814983964967787951385269375699839281911179122747771780746904643745108888485503223932501303166639905704080798373355103679756720425293317596679711611579571499840583563374453346164808916307621871552333077494929990859006636822599070635065072411317345372952852806466192987142277257680174183793258610690474064240873777523211609664934233811571378377882880031114265983084588575744244693226301311691548087621351531281947418869410939443586117135207829848141702371749340942145305268720942117237035973417841220862748455907418400750451725388862679271857825567333634126530035204417286059381623973173812947406607945255354435458655435503506288731755180871332699346388616476210417741933898630053607748643551591775839936115591261550355694222710783969331231225267563340720845190151192153178254279552572632801346350910887469976069956375996272284192723469678133400127910666382178474745432003407747284297851021043530082443612102077554594073156326569653264587467398270262431458889828628638926568981389938977058581169723799894058330547477680785837875990979541771214144712648191277682501826972544710578710828625206785174905750516231474254323974220429607548576740764898346772280971058884904923867210209854963662362921417348223163806162012517519995156949678334316311115190054165013216082178548634719629548691757852353488179685954268333691818751693113120285882550090526820581314342099339595352037339360244092298494061199327262173555550497094999711800984979761152593372538750470310627960595500944675069767683731509460611147178836830370988980147870585747629541818381633881763011649135005192165226451668093449485200647995024620424404888629352412192870317605261883734844434588409138166718416878997166640704958076844681894548610174089671495231560032666702625058042057518908034545974226660726227423830881513770088238581049701094560605545106589145877458139694576011740847831915470093171473550760150345045264488292407582443828982095168322849940263893252592803815783238356581598751246789062006416574622253507399306555408125083590173657344915942597335450647443560562402544008970632921560005536138467379396012818072359076060911069906090306586265448461477903661042117291266920878389961463155619385140729061732119413158287584581827745676775139461872429232132780046109443165926177699758365957611589025143458878298148113239498167344513380787991027373218562093726295374770633744751865469022033913255692549851259010859743751463449686051960481943268298732700986822047844181945521871587103832101341334211944164977153203037567924243362901747517531320152086051615336023805870759604037534912468730376381043220835486453271073480555022221894417378219174427739832179720160413057619781140303220949806568221693589267111851350554220739638229337895712994939291820050007543278723333897143208853679464270701408785972765953173980140543838807635785725270735797033365052620684572465983960075503620749978189258488768104187307126021483818092795797163438990390614244249684320687416489772003350692561790502277000903550466240170463681222540784534423354789980652688751707142539282724798229167138996198136889537229670454066062265230097192822318475702452901837913790157943936693033825612008306716852982332818545770130468993320711587912830001320222659522764678191102188363379699136382607987761277924515829312760209046251151141788313640976907514221088736237774590325423341593762296226072805018071235001396321696714524316421437729865095554934831746433804179665952379436014052153603223708823284812473132526348733381005788305931156585578024851871474101183242407484012474301624855122866578737749421073668384830168085307477815295041897127867140415176436707871442355923701258272268071242977299010497226021486297838794637062673230399813525288630532745881710459127759270198275459774169161456611331018697474121863396826351755945222726208711463087686123664700707761323524720763534838247928585014461947896903334086378318595390078049400943635787816418137406410975240993283855009803113965541851198189604935219459715268732461137005652788533694420909503976331941545643542076231557172251616323679766413649461708188501671344579125850821995970052032937023640670872710875532823280198950371614500027144652890170850533961729394772705437123575106845535730378211047760342372288837169401148354508000305699385676877560993906108026736738340314339828254929677608027882049366816706845679229319615040485481841240354987536510213072994387774895694426638015123134082914505097713979550125822726643666451037614587947319488387917900268161277999707587883087269606335499527251867318258202166570609792301964935771207417202843480316580767179401756758783762756042917900650503186723056365185108113422296992955535162159962120112583205946731376283976976711750087066356607031862227070334209947119377438615439979775246453478175252163373406056491994666523638067164601830461552150805557665577254006329452225281241193604161966272396654454758828075566798117518458591668806114577834334805486058723430145947364897495880954713052690299500430730368701814926020823270694826357225916777408835997640504326565335951449980871702561504030212093400932746673893438348714694680451987108723159466590775275679048561894906864368028571553960536132392129785081337289672058494463314663075876758657194236677902192128824996775468137262069721444983135781343893432738548300371050135722151446151690942690503689341049058776448649480977944106558183988624455381730187583107721946787952112595949771759154290189553446762534785682172834940829127440145145655970835824640319448211798821826677068892954745831258168382585721962191579695961517580940439585101979912689019631809101289432034662058182748084415827706217128247288902969267855158031417591433563381144423306308356825413378105959811831884209731613040238427043718684723839009664263306211591809594665713221228939718629037574508445159327276544564066772838531670220930824898941147135732686046051584335385908454995785551097870098095411791224144419381443653776910437261094417586189566533143739554430313971551317531374529931229745102462888358419371712300095488481017743856688108033995997534769156469434670951405199643527072170400159168976122190553567341579580556974767565519238338143715362595799030575162982206705353665951341231889713605953896084866376471267298235209124112520535521871269828882864978615623385229482294048752248189940822074124932547579687059782608425843271342985815017114387168811578546105115884604825364126436336650988640545919674607036972534228000031235908645292252115929438618276798722548600419397882995172672026173114193886144000301732244117566277264152329438774031528909613199590888715650617904310927830114901060169244096539073001255510943973438459500086303095381226357067503919157454785994447186958210382655077309404071330502400885364160037240848060827631704744456261282757592841597500160603857563403437460762012349048720626254474930170330520827829756720826777617762401786923679594052482848417885168799000029459385323204578715921597065356195356130640174704683680041362367818017993447108796763242964924405142678058989919410735467610526946633973252238816025764331608660736916240710724016816497570705911846728523651814996362886581709713553023271366593384126760308801410707850422369012662691235907274016708611785425612927577152854906497018392798768189454629455537094045753055774571029251317032916682764839854599736975666723539757595735286389266945578304903899109928588684243068709726325123214965982920038449624496128499687454432289773258726577625581252227857613677160554719482022406951179359319011667974774192315792163594351412107925789865990892182798684513358434715714443472792557437936205642356413824762938580690680353220006342353348379547320955130445203401096500433227299964394249155984851762384764380467574686971359591873752627260368993177376305136536269307177627057304890701635010160524473085507790201688282994336514728115377491345661398442628052696765516279547321856481860479267901251738218348215308500831728201927194276365887721334964766762359843484175213885230623945109888359249596228215396781896615925871085714704534044778915381491954183433661467873847490099309988714957419784807478198347694868856348203075182017322299009023497394825820165094284826706633175429324978020782979609131015380352860985356644687855934081392122378520793642288835817052166294283393927906685567680297633689001398727008184049929855434630995381983122628667138519474132834628793446538864174001183585678994309693643179786036011082453206276190756018825551069747600393980199312908931018805034287098924019346073557150513648386597361774125086159322998728481342670006570614759295047560700364568208924293852905197378901137180439055659901681463382403249086345282665060354052075530381682163030200692331596318836690008698287965640138226259111869461275215163855398243505476878455411308293281765227962595946730658126627130330574345261985416693267241173926394653770651305566654004036121182275283976500768121905284258727155753982792902351205608718898932962555193789887337436484669740039731356247718838366557169261603657106123027223923432550810207616485054292254498742624109450544340893590191424129522071282909105430744571231803183098343511721211573527109225003263235664266657448203926851895154352605682603756737201606138843579325161837077739544321354877295682359641531481035160920437381303187533135510987098294105659100192048448820264258579288197458757331519214519194637012735735984348307812002898167272637133890557945211845742669159347876202420972923675544976872629443188799630712811796717935326376951288480307650717184683185594730036779660506067184859721731755252028415360023371879901215914100373200745988865564268044667597009604779771690186429344382775163320757963266926390484844173812596188748679099193743484390453798825337880738208415931432525300485933577991477806958319759010423313640340177246435854337721094840289496771750927883743490005163697891096198611053462659371091641737374563810505469937753336944912418146053979690616258160696992551098225861540089028517400109762940879635878406353024666928488803464859264551699569967078268587590860623603604133425233895725203737440332593431502155644862852802986700119434808324155343856954524858930615299077402747535962604454124543257569336960148712804828193311299143528661062082132227720584032802991256822622498097042924399141817010355219553918266038224514980709570813007773183309562288207063632179352615099930074534084498207256948866639886558441025662468843630807701650086055247742887020610955518253538174896992548457851382183159288362038914298373814210466438944152664008869271622483999994276609013370140536833908987518701366013393818226479767780303292044818730093615590719865268892874428099495198476395317728876645681186191638269720378105608686707533456360599250665560789650432297078423818333677624654308693609253658975253738580259334274794012580737424520261788652744761796940068807617917718911896270154926041285689474216356649726670815612249247977132781754314754797699566965436251601854998241686113657003961484613316284816905681111340813625343690292282378404659279114070124140571256355869400575936664633685461380628739361674410920564593601872263631436363573155944859536427391220333834391169671405628441073843746882075268734721007442435744757192225788659903389854416248620822347024561154400407359120484916016891510549592254930371801931380421223569651691239116400142657304980042266273829025069590813694308001823592446517274279121829599855635390293918147049516324478615944775014356530761190741092003740501568189956843218778097440021971263708471904309297130710723148203120141811409322523669905754840343619469880417244167849479733584294189198295774998037214344199024823825819352109873032520078987741000416434453928327392180477505037313452128355479713031405630340098155361488141823916443606181356243106058993285440366506270960595833826741538362817841714010476628545367672427399335753727616764665755677546473164231352419322443473840013537576933407318112664834171481639932612345914700407677275506000979962359605008011802375174913925354948910759311215638249869541737092087742962399980379923071156700395877502376359491608771984687490582491762727845144471989937380865053901297405150093678092446827801355119802438669396864934769120733771623746846702371511133640225136866917778935230136188516277130142005620785856441255487763117881427408739394435340582591002834354661617737771687227424166801529408349062668323947115286047554336905898737379124856067602343994409387837159836724742779136461031909399488921093872747509315933272861232730069923271518359405763630599322210135471765071967556814660886603470589133201609665229725752986577933317723890924152190730254455938862093630330324856096865384516543159912611305377907637217187125975861828005442624401960240631807925710284996956966836729524056853115565825846058152446746176457988213836151895520499505385796176227324386595212602853910405858676612497732882383322346734755252401735241993189716210118157496006592430498004297696418246389429291075726767133643483234482980167249394568279988650627887883731667751874181812631750699318913133643428412892672340537070718764598256394123002938719909195069359939928703062844621668882105725618433067015065009981594479841290900854721288536883312734836591492057174173256576177738311755672264265811778309340533945403199551087290645104840297913537371969592651676053324492667139735514631859931025990191625797760757730957398597894865528365896579582421252140048951908789919041318442297009813651113087352084301715163532164917664897918794187522082549249884616241837825751671912876751573989429229377382518510155703456065191609759924913854172594116130465733366804219162153129134163959469897053604110424314395339262817428096492290043254801086553992040283557495052254733539417542579100089409957897531585102798113979836701377047449113236120570942864416565555788530914632667973392750074942076575727910091590879121186476622359583497889004307600236435023783734327371702674398861690617421786761749288948801341159012526987827463617026544516336851426547467048098654127974184925669119883345264088358098312828055373135843800145476457562129687429647394464175281018824933914605632691128291087387321670836527548489769424969203005003025194446109124794142269238499655142634103026957845603921843777795799646471283227498694591004795167590139054092576214174186890047473389027710305480943679977705473895068885858123517291775774814510936506495262140158594793466395826219712097481599165393719002329123417001093128726460570975379485259089095295302941206764967364402526892799461823748580338882031868861764359663760025647199659692892844520264919746621718490686974001689993753862597383148492928530524875222223463844507471614266731212633122873316054005087238557324306367824034508571657609246911662620023903906609924970762820295275637022079509292800918373389342254374480379097731026708361416954849255882158717670812159016955915062815220886358792839389417207998040748152841844286828756848521044816821487256714272312405162717416615105749975887890586355191489004682741207383819483817437259702659456187227269723534887254062425586579827342584100230994232122528741392533573179820117513604315463507824190829969074849367947801840468273682508236347917135777071275083354429937910534567292396028761452008022674086636620949300291572253100970393561628511335134686789262029959623842625554949130800549179979209356573504122542278627836806999142535947250212113345062226292430338421771301983826093460908290975026983416385008308602654532771475921685878212328152640931067850001312052900656457597818663015754169955781133900501034476455469015458590305374629270109189963306037410078398617147517410444223100138643942848133934055036556867245537088831819668809074853585522213536761859467109675034680561345565559833387027708835218424620733606505271704166824827990994215791716342333441539840773459083427634382510197739688383806161031454612576519371729705256134293226178115188205481149882543176660887631958723342306325641561954544690028857021095092967068538107710219327078335427344569423277917118010617759176370509421426129761506721925825401730625893433233311873376390105627252776388548681898677789340656905778613178679208276893870568962492651431732815640230913484135012832697751620498481836829148569800997690189788229955334106231844253907767167047834158027340469377942689019129739949998811496549198136358225803754606690325791226410801191881435702516523680164457945398810108452339551440234192690855734498386797406478146677223059059132925234008932570183489489609206919088814465827436832974996641152817560228994021168292060103282010369452194145977808490097859746218814978034900350094863861723983686476558465388714060834969574379586362166127678581622800533674606705401435250983809097002365051432606827321967329543549367973085529216567997846197028057276184499874528081510329067966251530225048524370604035762523636340857110634927598085765415151548445515627975660464917155889820601599359410691910178466854229255064374954259992030900803730278739199280880817960416155291179752892481589619141305262896185781048854452412802123182479068859113982719925680675019651051113380583142366984089654637765428962101746482762517895286780485047250910344048232545915854626475525437104323141730463991491223684955287085079302579063827545024600318347992972132134813444486077004030579520213280637362524916622267911733571243816442159281235510295239865003755862392589069335510973873672929309906190985835752999646654143790107780161758624317061728910471651703279613625083427941446034399511811331910929077763658035989697647586232680855113436614400422347530478834151214544515149591881840300598163792188835552746987494625045907703875048278280364790123244838733272228678778800948893518439040553293291497816580746114594335392710798378266849740896297223399110346252436795216505458337587495334657172631454924539202117733354906406860873252282252022287149612128178085252125553297277303425005664903281177360255570426774470986066575040528598215897107014201631537420514731289349446831999248420706897646237607635510951845327260251535353472472118741810965652413200792601442817698581264138351801697359287110430809392855011838897231723283506297052101030965531034186489345636512501122303933926211231582812786590734802203222404317940742628705732119511533544777450461050282820431338996997378360955468487470658888209168676440939258006910337305950256131448099805171497219003939846665887391625059721646222680214606136866272063173536389724822704673213106618387124990981315311167523228175730124447845788188442261024275210912781696438510057514498572078939784348399170944524813349022526442439546635686196864941587803653427604325028644907780169024556875736324870811766210418416968551553861166699960455629235950428826705897899219730935692193416164737012527360769753843099795973008463284251456183516056485095230299141619084436339801331545335326023190180684975544047026368699921429056217709710114187423314266982805377161902055728462117589924737570700539815821627586236751293321837351085855585563650648366692942884776389119611158339380586809920538554399077257382812795159589893760914575922854277894647506868738724965891531339026034595594416447385473196355773993400891518097699842718585733809710362974197210468607828236704419196837507052782436686228913813284150226809950149607707811326126235108264837649472793247454405544156387666217482310217213856513460532175481167062872723970945213034485346879092579327486098953491253907693397456296649313430853256246441676254018210505065684180096538800345775249900774747704522716914128925418810300942489307309924724860476287286293335001486737686299293752049201857401238910385195849109959117147247211749619294918446592011719702628674973858301305089297223534558111952190822893566896693606704392582938224687267761196496645949244469190808120990489796138674111195943832890066171277326739502675965443473500284517093191097753687672289947500770131276132703852290187627955033760470879850060089571897837557152468438590348017170519189610567720274854675337405137199762296581110773238925865012291654687835209675507405584822468401884043195742233982065884232592327778295065468009605537462555462957513919751250580566398141614326258323725373778703779492923920456168746821020311711842091069662192639699221056195869759053466110860059022202109605103223448946890753014672827180124013025066148339068701347400211805959907110483963364191650070651500238595566456030664279777938715529983713543385658058331209179095928217344896840206182840462103080091066635523183349141356797525969991415413938997753966129435707617654798437422392670933581066110681361283797662202931820030591502117634976558108165218001462981087892929882627686587744691958454355110881363709545281662061821192367802557335552196765279367435308589768255040055503028046393990326622684522843479030809289908763944666964827336837563675684492428543256506304184738020576856089535186738888002314930233614245309420167434993757448264770776636618042100694756520938553932242104544502993529401947894941556136716595562087014923618681640967979687396902385470805997692660624242472437470569385260747242876211947746498545654198717163761250674921035156057285822288197632030147192022065735073462221517179549124676281002945247812435682130490054359830287316878595809805181210051252961501699750187742234723078471820774459250408823184416421434649094907583588790479013027600447583186435182424995793768489285698636270765207471026190874095081917058950820609719644200936173413147878346780376590418198489749365652033033421866888933229660794699711664638003102624042585502748270001252961881870321131539305867406101954139947263204048552569799332607400439669395346732324099263533536515261504457717680281651231141235345582350506325922961305230429053697735031333569098138380962919769061280073287659728904159419332140431182345430387885916850135128670171605596868464921070214771720223575787774863726204835750360181761446020444612434460030679222273802395970938885395565055053075376696805645036319465893779229186575043820398693323456214815863505348900091604168683780928382236975189077921595124018609739126960725948016562535530070049365747489900931766401175016550371961106872665482258022273244801427075163417975529886195003584202280868133099005245867649178796875784389733243496279545040869625940962853708639767055395508437667943640424555714688670580403967798444378152342540399838557780174491802580372424965711823790182915671173876685213853402775761954516560341021010593197335676217387000147927465333369828811788892096393474878464558596073928229909907584540332308801224500805882637723987268494357381998238409953858671574691654904783627594555623829074254547108954466155939540020408670075636231897742276279509426139881111168795165739832898892713385989107219357622348322654230465901471678501184434585555736906343730109843178110167533025745656781003667937285721624430120813124059654490384404537690491362072910101382011477555684320842777277647781111100103246711337122525967555340421227584743684932023300550633724305183889178975735819011247089185953511746512063568769926147143423991700905065368518048458528086763447775768091436407523042816271709288863863483655101458858144192172273289434157807658272854313779839383321265800555959332831820793735045239932620516574829250034198121364610128916624267657065232884927207429334179328073850208373868841630736392891684340953378675968418627830500193079515214052604898289112079446290252451139977477693808013716946401619632644423253305777147862455017815104855487112205590282752776795348006051493985581775588973387993959917061196249955359807883381396857747919455861441035010198767103607596512581161749366134150466485093075879347988752564664873209568630360430766579315107512435186743509442586258709129570096964659644742325007447176118663208114723481906534390568484071741660584026028072519526628830901055101468021136622139590510953850397433369256563150949469975844180354159344332215428040625094432725608627335159141486215819538095560706810037383629116414606568150000095672209041450852978917850494396139010536356969445545623738034180190007267224917127193345393554234003443087956836474059053505618922246423075192808726548706383636194753249110245142657233340252312624666014462601996185036962719177300884979009351403651663262102503944677898137625137642341041568108338046712237225647030262145575066760533918663437164089328167171384620654507806165982020007499095421140465080256391908989599543428753246817746890801860009162892731990147027754653558346045524916910572819917957031476893352107894419703659856029219018039613669338213667513193146791656646981317411749446155027127390184363606859361642628748536553229687056377783674204160323334803056152834843700167800076555315073763146492847732469748456759742781406422536431556088576872961593528311053620733137761536004921907856089228642612001529399939452512427993345157985182782020924872650348518239270964634897019181092914249242443440972548137821701136269961235895182730901962455566337532871970973897651971549279630015064618633169877466806406788895374666718404783570964193014483804117085630263276007183478375248183523701525463481963926771785367627020331145330674199038005970370879249417960110665815935811810478631862210391515581546857832156897359341602407285496589958613378937442605889499974324504721170303145431400709721068647232467083607850552110142607120022160522426455575381031928098406559572771081693831676323367576766917747780622543987210679899241335271821263432379292682136464906278492671880088219037499276793719504009086386955900490324476671784838242702445300653901104615500877886780969966776788961853445356616575643586029161838450978508156607212813497017460903301229632657187417693078158399330083980019791103958361990292525618199135069823533314387074295285484221599478163621354257437483807117353524048657984051383292224934534044178084383417655137992711122215955831415926504361702458483302915657191281021924996739496898759558088780586503656113851819952130405768744070398025663256273442293673764443447185160396648274046329728483862367182643230388074342378306488582999923978096234271450661313739586199148927462422234715600758718458645015123523712269946620791953443327222935206549996411681355072129606158258815406142468806537410701764900541289622190669326382148657263214024472936758224211880314369051446789372844781215284940594148151217851404916515471439440487832013743393305871661397830240276822907178700736147400280854200032192214573009006791164409073925097125898102383464069078074934317115531608853445077433351034222801911125586475341280829056406012416759343453310443927730296173468692399880475173144392370440577976684074133922030120776593373201623467246992258712883302217585193019472023564488441979546964852931984167285450141287588014421564738819355711367818662795182892687953609915643686403673880732461316674866305924898583447676360006274630936372566715327962860694258842354394329926992264236765910863661598778303067439413801962922786843883250713199496632269995362341126567325234709920147892730843111740848826880500492632665384105305652620821303038699037508738483162048294294813085931321205149836901670509777921982096880457686428653539122026588314536679160914006701184394322223738080188161077912251518763317904018969756461161543511715649027797997856177635041768841451685910806674969276813294796324123010488572786481690594507986507560011532306974913411316792021770713759179164668698530289028677102284833547344431993203385755161144038369273495912204967720542928301339002244687771727599496951440402349918697555415275637863802022663252911669323361231892680945099831268922058036655354118372872557378203023730318399803807337776362743068823047425744329753800897443282602215554513461963018545518223896596859582406454144176669674212645303872661520060477458500141945103014163527209051052593180256259621359561523370626144818783129452970124742548416263927863512670728458420788600778528318418649007283878021672065715503730132758727241174163393282616093194091630429923217300816906521367475859485542786356989204034814962237965876556426068779670265166967848568448344639266846723097377475186790918938030769935496386223360455187282614797258129696989921703259565418763167116312152333020225742262533274676980948243873281940757674611750233511205943493870014295554597204282069802558970197395446164450900389307724172886758325602862249259812756682462877621824119167664166643116115012206966473299652939206311122010419885662788512296621266026618125335265336253463151670639761831770563876605743272554031704409632727309492705839816253884290702374011332294178910204362643591598146507898500448350341026192299552639858252344541969549396271963231268710558875295927476349548338719579359521801595433184366593721107871961352813635495070015990519771741670699501964498303577459019268768334682217160733558573413132479740509290922190499658850839088323000328300890817331675345160980986235416684263572949453579773383125827474646400633356087946108001494704141145042391915351803655520659582133964526045619311194998335425662489031076509165558256742646671418080176442459313460245757581837662825656121671056394343546307719659962355290756712249262626898926894538723243096054877462221893794062832073462808754913288206227199279142899145058404863871401105202377103045030453117512730778918146041780101526982239346562181130822612438032016249924790422088983159542466833734771323784250912347842671654248412438385338044765278756616458143999203378955442834578267739085800760347560381695248995848571459026037363698974067038978790135819532756977304232951342574310279585614985450108881927413267711138542257375423373907030256633523684709571417156551703893168754137159277345811254558914928072651613145357097455446997919883317900798829660588354289684468946382255558740431037524011541681870992571770246875215088359277324158969203089387065446496901689972872258155463725927569769781332997989681532219542616018403599807757642166566155122047891334010485331720153392952928713875468270248157095018223877700916456042274873823389035277661854668063210746007252900311137727071780537358175766996655610809214822290231594410833780339707202278390693836969181134781451032116757615179258830850070063319077442666277164632702169672373259335080522260597083438144715784056756960502858491146185763303578238728000870087702294065141743871216177109431053637791692417520192364025147197721648909281090549762031380908571229900915212793554504839514086254632273163400889266093871783933847986078534195703056108528253099297343704453047376163140427485814155786032670619311988218689948274521368303604084338295886633613138495886139034008422769724446048591321977069978563576791530050488511688068243019992930913791694165052854864495029838923463480752286089811271896426073365232455724691780417486149767864852453046317830791808381776299898905061964096055829888601047523181790066692748934080130162488264579990517928284272676772046698095585577026827956205287450926252157857498223817011857860994842412992508246871283493542089755410074063474313432463823080059247605800487295122745683111318359252950040356304004547931508304668062689096037747860824381313989333015357592973031969462327838020679434718939541114289449439656729640727778099396884003737886436809396599194571946534825409061985308356857571289985171793671511675237561343338653563363830573408117516624986247769970777428425607203196145895103398814431799684097502232458953236192673354971465768294667076914051668171216989211508239273944409148961233849991841540121552836773438448934565158051677116053248944331229803896909229702887129626289126812947222377425702787797265049289046706176317151472217865079229671436096869315912780872255147853718442545747626932231362053791238441576442401412731451516862625860262354870022029571611303726942653721331459277474469097139908785703345230442682327759586354308371255671033876676180136665630603814378492657863858437400553144768038631107939747797286486226774507962052973731732207698880715289910916433025108613988944732396122535463457437806806862550729056598181897555424237268942556020246504422982093531736916035442103153751752463156122614969889072390900525731246779896424521538555355344735195346014829145840899010476642631398057197100550157255960785974159949657186471573708867372966779754139123171572941161982667395600785413142790506505725913955934025318766560470631991756716177790183186573357919419404549785781882675209279303281289081393459957753190438730820816696402326201000849608306418144301608463171893464682507582417117980564274754352545555546297121151515279468946856575418035531752230571787402043436192997773709665993235020206657677417924822695725248324970614481384942240219437602316377021262334685634203384688026897367892022640349621132699549937261079911574351631265286695570819666628664445060161321844690299365754371268314147028861973176992824021576006053343570548021716895965895134784104170180248664580577400782875238744799244189371847692793341171404395667367659561365916125238876981735994036113909861248210249085686206623234182023787381293937364025688048965872664273275946824272858850031294803433355313398310820817630127821031996581092799951533704561443348009560947955885689933054720527994885173618608154091301988318846027782086240926239002298306197104811689340618418799552732091440532288646643193833900477540635093499705845327940430858807229754427944335512340663308011374557301742052591866895910720971256583627556106338257928410877991962718803152214618220722735996064118855581698757595268634597713816313854908218165343117496402856039591618862513236609679115546194725984165220043336486104041711842940033053426952673213385565979308965519500391187674356855695832234122448054451609835669390143487313586016692796211030027658283989668968620909122448400301746219585148834342521549738349828844361129690857836700369009662887471287658209925125223100516170841159590671341314405655613802715471064694754426795029318836315038331052049690809484862045240670532968300397123138997507698513638364560959142506458549714164633651407786148648672112192914290139198946752918537419909523930289929128749725760591350411406847968519074865491522920309056885326639055880732017789485937943809156206780987285945760796371121563315261975731585226929105874517769933156842598183542681455343198321014824505437990223946382705104369873434008084580072151137847901501846194510035990067538899338523240399790356495847573163354455810515435100421869114734989526551586224983338405370474250068117642884266586673862779037916696261236824891195713527204135419701455892262295690084105618883030691977790695087232033924034249549508842834329149456795962562108638267450318723430814272062498744014412188905257344796566327363930384795716679918562063158566272478780381202711376598784606817472927527212286787376612030592802662939782014179489712872879400713038033447503927098618960229962548936587996650233630010973438322890550090446769196634575493315595177905688110619077494412411355819207933421580395508418157296490899682726342910082810367906469055548655015080942072375934883628859565679593691984600319389245106263162956060456666574702741387208196327356487629938188985558541802998903125558248737860221202887305496003822009819557217993087314676811134854726826183760975815209565932576028667634034198237136453232954266873055538719957707201107252494072402318652196706035156375295524907320072500277453149733143214855230458523183279193842615913051867046643137447332758905666698303646070589190527410720222856874412499898455089593639340057953278947972800056105818433133507978127211817755981816304203080711172690022514755449697270903527341214954333603687205745488823871765356164352995368048659129769812643390456455340338586338560780866069927729236846299657130864504229214635984777303989557735240358904989200835525456508204843082648983079097852923123768817630112964818957778719865585830264904658589821598520695563261652407085025802716220066783462759216419087723008550779505452949767742604481428117627966566306752063831459105917553403663167555674723660730249753216185873824705955833939806529774685820748373593208739068912061886948386881904169817946585837640199992499367434415826830086343006735663402985483900540841923949231373850709768617742110961738217948010354849234493167929425811428282172947605649564923785756596656881199425980658678258410432525340014106991741954580794873715113488520270093220566078188047407921511677250969279443038626004772792140127884660097826319628819897366029217117769257485411812710666402404006012876524477152947991022510217304459356787274259350355563721652808847163938180476344978238110612549272980362546001406920267701622910676893175548694277642282602385377521706112783997249921792625233545379110494031167415396974289117431430000455073049426258070183040506238387154896697690267744451223876752142872700276514424582011217269396785145490999573709575978945376198591694679962124160222703028356923451467407487505923542162366305912057163173595236425626574931733491322921205918369976933786526087310838868165916312160197518776308148108357568912366791174906491663113421703570971363155395908148286969776088495847344665300780768259377419144543434974342528613759438423012065379084676959855429300222619849311344200514123002956627370286903199192348848726199556979944694622118775427178084472060711798730807854145732375761988404643380649014756472113498983202517704215030132450378415808116667259725726874790550855762240117666118603713267885950197284463675468093534949323930696583843149263454199564628356780754534217560353214931808888910011920192018195265106264739474598181410436623390948619673206816048950905020503809494212342201983436496086485612173312667315602988696156152427875775222413112523696774681675915021264099270204729841188305762072592767851339037066486292642141230422876258136676257090484435495986554570123009996162158559571851511727997855051506010526262379416724806028392006830213315169679158546958848404334838480177776429519484180431051923278848435084296065132481970589046186211773223015746054978223593769210372315886681330217675493264121753159720590173220393284057471718443843191467484892919448510784009887283353901615931264450631378288758638772458723617703565416162715752066557370846572090042538756645599013490848512657505298205244738279493758454350642744437452345817296142482943206103430802177698358889269132073962059801036159786444697726245801669422545812040986948951331090435330983936640867879401946170680539542598827247993893889789457668251864770143488441578888754607765730638060522875681811265906951999005572592265267957259332365963416369904800693120924531720540611839230215612231131602087888156165316894631674572541282995490969344912831104167006968714601255930764426940223823056291064608268861405950021623164602351994776513000046779215237736484286602116074209185192827895078063377469404635047144990029309735444079568059259022626393814695953401724781914893440857643313939675597678832419851207118464361933769248540201389141766904450730759668171236305909505465420840351704320579295694769957304640260935146895823613076060754880035439138174900816858766045814001167712967897010636394687570162417256744316708225762775998852227314872855810353254805387739144772561853710176124517239916043953805764332131827667521075145706059489834982755821837228329610065060065639236151780139995877714940556701895839936319536956729900986780412947927323273434214074817088659820722409479011641889106670486910855131777802906287837133882001913267968273305301138720902073199941650283914525393474223818982511260690767756289491780600400347326669625726680605202457915585995908647858114258724549766871930713087840322895391480529814939309938338924278588569004594679486610606689395677724272773390926881621232162802555943443651995316171897794899671687771713397532081048958166738206496260490729930995838691257606789026106886451082024726873825059537994396500309357012720545341289675447007136146895071045625341491171238990283174600363144627681585582601765867283083008352598741615473109736397968405787920599129919038343621385132241195111050364392605072961162071838330725574034387873021890981032713700022747938670691533523559606140954372533276615320174741320441179733113761420714099248038729811047568849356934626189294807800515652620196420881278766932100627228726842222608504771344620005470546709428656725058107629258931510093400402339582687304496306638297389784797159108468272605588574356934734451294261425393996534224528194225677486426072254616431661318535270806902432304725010070906530663679956434798564022442797960878125846834830465817995650343679415500841605824417664820670631416013590971482452244518333220911763280621379958229276259001718481069703871674084074849175817881587134256326716791842461663239686157451296438617883260886302313356482943392465171916768348324634078640619000316030406045681731494112205600465701946846030240523586540088635043952025966507825541059787070085128260496476883073691333677037418550492193142928691777631802816582582084993153457071794607959906343584113468930042088901191945326150972243630316656130804691358745645673150241389001503752154323204800375101762464770637942547347408418498907262532668457024883068850732427851221091573315507939994838817845199605146669816670281957952780480554177555417773011607060768545977566431455315588511316449884260504933529486272475795973760765820778634832957786700763503134868842790846350416113946255792689214163158476463429491906941327282454038261990728466152295070771536345030949061919641620444291130345237767520638733619984678755619941568853762705090849006066424515487675381337192177261030011665636913975988095698309365721883245807589611569675146044097032923397375190286588722203421591339001146116489999010487158102164491788973370244186529511039255617099149886875936773826688846473578102097104805321752359394242526472632822564779718052156136219998339066625317757399314933634038385879474879386778262895341008817773116991118238816309092360496255427997024489692401342849678258002375573165328635476818289376967507951188647116783718346554476434045402618940926307796831468897183855419100330294197723716105311872933037152425071648507999251340200060116102951917120768336563176335198841176149707737954514962512825564899544261885388304206062035594913785391179174783812713929375060145031100845532298654930671761206040225971108298377480964524927572141024336198748756767635536297231448062523159037920781658684333524178596512144561653397746319096413133778457619016359931885619968532516243636279758906570883325764557646344718463094797227650568824193477283346445645689094833726744332340289828782633733570748291654273381915381459717323167107845239077566974758362478079991296375682764467369002519037236402791772717319475297544374352850851250597619020487703941524452750379246439116531488928525148680442006160361884705892920414726559071088802390373960298178712257045100094406961652384761063881253434766365414070694419015232553699414701842537718980131424380397092340756199255570627751484114969577429167612794104287355201962270568741482713321422541391163548816430015659736988728659301870476756372645016223410899146990701378623459193050522849470417612987534679940777374302723042466781383344400442248954678538231121364582099433450570120999085309122321564424255401152291008101679058409156953693175848694447296441100949803842150078062772211920804272997106227126343829094737473535798516299932929982957092489454502262143826193449674532047846317460168027620713218209179041996531381460052901680862781665706678476768048549143004252901037284511323239756679853470295460507848535381159973219247729537082496200889160768898422940693010232760617090540179378730646795327634688249896531509109046986590070168348274101013944214827456892320374124398810190436109433231124503259466601316636167237983778869799762823583827216766489369150144053117652202314729370909722798464764447709291092112931438190795958741160542621473247787557502670999708029154429269194544354101400677420972887290542146900265439903852415765513630295709598328797527271913342610281752130323037831630699208663085445935197417108026605432798007489967766799753073884259453592512317750614266332963352368927549283471940807458380817832061038765312955985914598971993425887662252473465997185847028213985165282160099507872509095109636604094621124977737913364409056644039578955936588064458904429037326178262847674812930277489924626945504187775417665973128457438981907659566244931913747272625603257876080849608336973170261393568640318099290054845303856440154067028277693557567654218672833550299778538399775294368312590321830757236548827998932562782255064423009331915787045947970717238964568774393407022303013267147998199245790087952939945448821588383224133644890315848385341368685772250616128246693433174699232756394956906657542646504834843363108408413039079618807805815127510098692426832677481528365589612793390814835028323643291082166177690965638763816552741106471032985392589784419792344932925775025966478347493273708125593260982363359232354056951693861133251994683073477367035465797913836923705067723814201482970031454485849073472527418396971764586736862071644752525855150617542533057356186057676688984023626765833312786622152113636939321416373984762809047494981976306381638849967313600079318687776486819547045325738926012535571092047035556535735329898078053189755482976806614178295989808468299122226916820092719158660710986753387566657296545846365162362802356970899993927307779050789074944159826840707669689976838966995115461034249152693199893019375619504433834410328552363141364631461286303296067718108469690280154504090078545374812097116517459296687893265394137011367028851939494998740653203490700211688941531650768877874849031968436276915437565650858358374823576799782750472979300195424101255496041285277134742934283288963085858841770698904252614999048866326847281339062513896368675380412046403512395478927609398572663370959275680836768019338060866824583511683564290134195268303621988781198971774047268096351034972272232674250374971462905292184462645928262992850691702824495327173587696396575920433159229468722436161537300414247086934188087819118836780843005605990334158515833262006769666951244551775808431804524067661883492412871771808667882090930967151273989897830477173998057484053244728169674837171389715176157228816542871963952119690050878177165502177390384692689994505601930318661752100646028189317252024626769439913687515707438387222592638958924950077432222722890044913918600730974868054305720630999289523160545502243971121741247538367632762648879054996788773445501723065961465490249974149031232718135414670500477567094791650295522137917863957732213087371638741774796790274024630452166737046673558276947013592948951433070917317573974278185630731672729849668702276946978278472808382970297948424538418643394760448412261875550975758483140105826207126889434845246540142913697197156292024064100864369887098830373533396931208422907841053567376533235216546808757504648865462752815764578928512532522177759513028497275212182372833503740930128587590179960489274871289715705610104121271679662237416229354888496073313368845504503191430888720304623225508939479131403272720129930800441086851730620725736292453879734572819142443146215407725215253093706324456124521941785416426926851331536279374378074689849464508112663135960158597185899211255620467315341558515430379126583282832175500574370915603275936579303547296173706246086999718934226127759184646728556461951014595303999061048501209558985846221215281434877632513733485405203909892188364085050162463485117504537001126182772737361136001578477641827983505173740637627715103454593050353063437099247338314224684679515175725542955759136565822396711034692150525601078790065422694521343762701832956283516913717350046526467977442633330410549528544662413370611647186009978056500501918946427371776451349415659277521251590523615020075745654577074593019728932414046133621819946448480083953596498793226157277058321449154326158047612799677260059652813707366005839902027483092814852356348996328509241885936288551386513833329924735966351110661113420045910941538507910867938465837399937738250045059970905051437961831902674736162587305088111075125235759310991081466156181984479699288264321809335709094272249055515605813568560572786229120199181527052534039963007526496453250153285932393673053158574194597802248139907868736207728831705284226233889848082352785267413093841687379408053134784096977821468221162415460198031069427656281209283638395400229931935508448623287736960424841435037057255727169643107718620346005860247664950919140052415779633112144434134519202896997287492449026136876823998987245078527683761101726857662364549734990600721560624020001273476500868117199768288085093128446554941066693671784317917332345355837280987956531969208208236577062961155674457105096273808794366539343796537359445989853017119687165541604206017509409124167423434444763433008424250681355394533687010476454930365680380706868520315790495747768160080484055400156362996422894353754935736757449877690526059722735619472751502595047913493028247446918943993170297996911921792151426949695299622367565772092095169202983491609551977577089358507247157978907977776942463351202283782287243598712543106703301413837374019419330460835600326622089720584168108950111590092766859629614553543913250337261322822321556605587943890853803342277550558423133087145895605886931079083760934292279739926440271953552785463952188404655349886324045665339346652418004118279208702016372134351113411992087834881580555160434859224524687675720039658651258652380286479529983414602893063090109705300104300892494563092619887393499529360393406262322957569993945698152412021565396533951744194154316882854461758195622409981292265374634009722282445804008916077263239355317162842258175164373825941653973695078954350616288017375640583742225769569067384414389611561048019400764790829552654320667374021776850660454602182024089465902558310875840382188329618162594558380148250226041964371068469659071153024926661525761851763158254652480002030167698976715979185673011858346164212846296376643907221905473042383337877002909938364249148106003659220904553357533552796797125737367096425651805850471683513888216156829639750271134345928860776451858746523355564653575272893716067822886315902961106031227708295915181815369470907187000692099419491146512062206458787198652315655258040888684166609234604974502626542658040238758296701575993856448697018802853657381104821501872509805375572964511368501776723265099250970208361532369013667428767937923087789843308532371735659966002703344491368060407448542560817830335438307134457873047351565131521520669528226775973870127451867296095177705716320043605886102647808772439621892706435438884855458834911523594281632733324214428278863537984898093546168685013724768416061484637939215294503144463654650310284460511212830439949769612072342225547472440277674470483185871022180376692940479671932080578839419754636646309026369306964547311631394296982077400929421894103743545786632518794016057280009602908169901843733669063476972437796086982213565567972824865948265220361109029294831244035728844819005789766412422332265413005994214698303488156750974888383145954722126704193635960556209167488321289304623684896787585826434370529660754177770758194302428965086689747893486248509178280202747812252412969237205964678776980997112280416672329357561363738492208219905891219741166613442664861004045074606458462506286603936077093450996477882965008321489840032995117189984544519932730618629164087096422293466732480301126656489428038601625664735573201804184814551944236966872422192596561291707073428017498007562969334302177805647649968064009511693280283143049191746937428042857303371867944528840332198933764684913691273272202323646880835700353487777913398261625893856284283340437201454221128656649925741833723498913821396186184357184893068912935418826189115537345358062133165210493431538268653727316575124757316412268161680412464849850303115054856637416091172389281172759799729397165630126053375398392752672840416447434626625367578169115479249244253305179259814946368146885391519914703205279387838685802688665049390857276719390072632716343375087582805526419177993682964761191844308162044433496745943814505509544438839748719279920292988674021501280152653320837070859191297176517215318818176565544358455456164319487485601900221549919235537423624252416045961336215047902799308883874309973629945599653166143929832825884621793166535389690895451423366024295912270527039498494965427393033906051186044085136996556428718198625489477197858084411639695111927615488947724076675531351565994607990494325975685150188192702271001406132594809716113094034465352732534287457739305873779611013135642812198107926131625761724373375352114250751953457106055218630121461826873371454778287163071284446538271792682124968540836739219557843158600643124492217011054963780117762212727421285512387475658719071288232691169831027183545558672455452033182284026306321414774263941708481375354354123679461693299482628517031025634738373275943394962293980895987685267473025892062749186187318399296792056015742635558248305724835918732566876527883461909629482482081230546659275348976905051599665746339281759984045030171080980258892363080441946626919854582850727164464245168423886859125283193977005755939919599293202715088266830755265316318974883365917571253903372625561015070496094384162051402462904676094403781134934031644406209842851222997588338258425446816620316053189856114474417069151286118606141114716392337613853142169412803108338453670454414734658382710583683649198550670864717877670163653571303912925931385766982102058736606106963934613729713774472824657924365854454365155277791829789198967337850655382503487547427800058017240458588711537773859701267658981783307208540840695375309653313238578130237793654188351445210115161559170414203567435753907006143889953219027385055135252105601032819834628639785428233464877581052592918474108514711501524139668035413795983314557712740508075298626885798186934488567009264390612030191768474176387478639092113553168698395663791383743674546828081910165064550025032178694397833752753257759257279014362960361349623268444303518311922707870760303487967614834921026548807018402039648611458564246787811028030666046274481708824681768802643731024236690866814077447615156646645401879642179882826986695511003155224437472746317726490851658560016031613525721531392513530416060218249633266508298377819527444262158343731253094533651375241730806695362229893857737060006942327996824405216959055107229635561993370797625007542993177474009086757437600929094728981327664160416037793320811230003229081366248452565443170256345818713474689455929269743864693498855750853707343511848789853780977259919457479617083175655179934282239851695182744255599129597311525437874333883111638251750986853776325148871031326965308861353994735637975042429148361409383511855662303634599963713523247492814901515363094842525070195702399573395627047085943484678894687362778996955183728145519180365826388948916932801076950099804471481416483714886542952988141939080004643077902135508963638151041174457092805272797399619423363030118214006113567752937953666637213190727228094009513204289189671229427880500947087771559734729006972253363382435167136146203226959085569021152300038225245305539927553384946289293606285991571438952664937964311420280876085123898290038047504420085471236568478505794949721400013104159628489201390103208745025799015865834729595436427847009043444080703211320648128391865707575009985543697686011708631519215704694874325414869981476957828319811048030868549992386172788273426547648943722325869153555396093170982461263409875250257726257216496141820417086732170857861157554632826973490140632046406999311929716656363567027617150093794779579750599538276985619815758933236757188701308943105562091412136734919830898243170586240017693149798019984022939693097755511805896622926388666434587523793850655646479940747917618180080040508242721827952795480384685239937348742478810014087054423933255537797631931079907346929663092384659231044134845860316664338930503965596138493997009016506678017392866467510196506178923733164573548031661481226750794995860412636915179420253288564972077496943507295067113018343764630790217737093079865781207022349210622411309767236181209864394928338210155251350846286307137821909216979102490893918050249238402142350382611192981760511923286236471320497763965745095891619702324186805523892651632701959111315936705315456450279574111925203033222715547858454102079973963784871323307070600281268999765916767055490729552834896847494536767373726537998526847546019114112403822346431865664738475701983278269046862751973024193148171002115913647964842118202433793593866413259489457384283752712174769696301880860277933483722521147273012868175658981618748027016679522735766405208253166750066727674078034729700818301757292188716113834895787554352959662643095351406844674485072136147985469787172825168181101713599623453450045926641872190311836806666934610349216877246816074990408541074525383232636735966551802807046533044558794769565970947490185186420645671211219791615776941794826061557268646366588016071575803100111126589591928707081469186078983143246179327614883869294023332554891500154773411582355689429502951781607151909111305430144977551167434564379861991793534903010326504069593245360492802019318157259351577949485191028316687030849280421652528517749683013844452887974295067597989713453073245863813357125520905192982187449983668043277169627587980634654168531039066015553722802493833145166125440092784733884496494952469543265613683856393272135554196513969026915015786711253940441337877853512113170541498705502887093168687300382956107231860832477710844028147501229344865400212136910821662562538622948736568385446116595644855426356950836590414129116820117524393622718577092705055801491357769811831681106560085360301080822159539898077217301938058207366584760774078351257340854936684350572869742606787057534824575738755435171400867045001771950345947556232356998330914105764350686239183837441017476707886645370782337955692753622576188296177017394670612770244251074066050119493859361086588988425315201285784462924105749033528954240384634796483042555015676413419571014182374479397093873770111162293622643802581680891165294984712147940166446318478621914602593781792461546678861663503631686895592758938887646926736005501217337869317815086106579073197629604781274657958724210467114000632669139518099522657899363798075195111502098439503881193775514653958110333924634434616534376601131960931272134340850865918385588687846926318581609523381326856109669650481466334845426279315881413296050930917250012586476982092582924932515323995378188944172893145085781402218415008733185838769097628328535256461282800191819391698581747477657772144486224195607805956379686075293689987797643931722585654469840479132952913655902873165566880731884601892670082647471335615424554760065270491016289380207014527807961987673534179385651497378393021471640525811468185199922671889545679771860007770406618976237402745196224709525868077204698593921551418852038775049566111285822128391006249892694727846968487649702695732893338700798933216844403114536396533204013296784529002458535608321144728161892650243283077543221427532990099926778752955417127960285190712421496301112349115011792653120299221161606637039051742197475472491428924195230040670960069212887205845538033795643740449671330494750341800913324639463794123492942952048731841691704528473953660304108434415094454833535319101919466610563002992164285937380068386620728997292532658080778466333899156699594341377572525062553376148621173953786912083298821073339107382559897189039035911302646472992344210195281300068108082409971083327821162749015552930155982111059391104677192553553316860267265318471434922162181958608590295558548806703261159947894746221194017244146449023847559015945028778258250882877132485704942600775634516883847978813035350169261887954461097534960945982784214804267657062510152127753070429514647896351228400206774521879224076900468623885084515501169177216671419832553882275053369070224935510864300945952590399879026382165901244557731589595828697204439488547915060508471624766221939440416369096975658832890915420099738107779958270147384031276142799774523572439051084109998594306685513563261339450851792344948438943989066887750113022425402198919424156562189603313786131693595704930306423174425839633911727508361880888816161132892213984686236016198529534480496001648839070414305692655629390076322142565699764457804273044570194065544657611767213934104499003538387179882710301158272413991687708728483925648925380417036195985158407867317333993456142309658814753901141845267899884173945902998566063468471314365496973120799636576580268598169994566233995228368284786280809670249090260830182619186271891797812754277606115575741155607133012278876401291614794116624638244443795780440147333966531587117895250741470256197815897985624581272289930174126787707435310952863457470537625018381135863842917596539258994674578708959961638435411254682282811658608124534441583789852962796473383655343290422654284679084398291323077242511093326397156742498058795813567125953877710877452266581165831094216833463263384164586720094955030280598881017590190152643748943324490514007512986538086225952165248147407391185115880871155495597908369163644965732992615941780400397581592813428563534147967796927548553417940074621805098937302319101258054265220917081006641710754356540538757468848872678296488355623082172168192803807324541729300985845227808233132921866086121267784219090852133693267969828476527353931449503231571869454259834102495305749505479953843775669249262171146998974769119653575373381948622363178717518302009173474040695877321425952653501075006928652783601572892255170751816533611709895393930512184584809157657522933272444300952789678274826728622651217322802191941375308631604090224551680036477471008846643847178702457801840649663758052517280364415149577926543918640433760834607773184819302180358921398274231763098248898018667361731182658289022565575856423934558750923053980487468147679323458520311088588241195608675455130275030997255319939080795317031570321291372440529282101445961110309735416576602120921004367812286877086622535571520059310116213671854650381081946336976958132628803064831753018242489589808278535389180939702389683524171079147694445390960295626803953323119732637872323795020953268308070512251431775541852192010752061278770238138859545254596013914145644523613972273539594390997360862161135597903008289680181044402034119131468373249077513988734969095976633140825150356734392313436399989203187934684398187978319087437025901829264948864630049248050275176920446678204463065482161627128523680186733448236587178045962486330856858892758029062535134993538349769973705060097378674603175285892396623753773956951282347847927251586335894380946972445204541713185995078347333798312374188126699569727216468340346851454751529365839858000054354350058814581927338204580659015810680705361553700187054260454704658120921655839710175528760673588230127746394738019152602837813235352398397773555859014102131961224515604634553128786554995770511429604758920928161264780389597927294832991079944830341934010820902462513679933918212541924359093846277401170605778357662731583229648840129080484936204084328909106564464615820738366404036878242023141680295419231881437445353400727333683610782749933329629100130109790467761913351096749142727138580259464567026991444715021684418462417540868589023944993026141919934820486905079413792867321298952517609629518172002394376177405128408880354608711989498063365986299843437191695594126618647400673320981465682093856268967320977917530360628078274866406838669454587732928329497092224547666630289043139476854311002072205637056001901815874438572059301153115205787216185295267807451021658329730797254473917702140833017940848166373174578872632647780387648079351841350517513785292202418291837297022994310387462892053490573572008256627915744445976443711080679286445637011115974825806759385871889138211230617615361665044127550348774858729436577802927418403944146807098927397676502135842190478587625489977484232996639471650426412796209259682483228185459430482448274985379427413014308754860553176020760574425138298000322185421481721277871268148143159606457286523652282715601038168536296572119886555642634180529019623676932963788718398388750874184980055624200522833929382406948318171927079547910851067655895158896064832701808261105580695441097634809441711978952779135932436635832091313517516392504494199323338068437322140337592471350492050657684639700645301228801858301842075407005961494942433655128636392519184540887613421617049350934222279381344435162857866349161820879854780549708745854650886298290751837813143272600453899939747172949449788462904784290785413574796409737009267527687864650375534112981995151513752364561177525979716490570526832103326073687124174139353456987048630321381239141368810182662001008958245948978573323416750591239761077085792020387477434267888649431931303487576765807805398296793856811795906466346217207135509156109686111428442467370341074705178637171666818086733772182626353082141983722376874906037259983516406159450809794045141473025779852659395430042262117837851425699919026011761572940274334681369908082427152960218302739767530985873539738274624703516710648205281790179931633369286599369129375734026008264170218834275964625160063180648365137529588156718550152872434356458173579370463218188765734085764594846826539812753876623227863069051841957813401273974696562224796316239678227823974146967342420893886466365338080946207150198174768998677548431501741089146720652241234253206992245504407393992304381513559441259394638886305004266735649735798962508329371016815893294551635253860864644774264048749208401321985244937838080515681920731981854861454555980271160750603755135058343953329727025237927660248442533537622884672229830372142422169886609310276652814764772330433129375170330086290037723021437098192186619940662561002728972640771331332949241345514284440079625531536037104599365312830391043352801759869279881351003994800663063762893170362270218159952618374638875519690910374354555306516129535901054900297073003291057175538840393152173313340190642289038654646901166433117804902723302081982210387139201555138646606208704939951008628804765729392876863878619938673676803302722990412476818443460736953293372049994375377927284354190574987609716008100673806902619836995988660220480178680148373199980825440078319747906413067727079716076878637912604384615672111565609054157586791666667328486332756789859104578266245263936753833726963371301984601046502052024885375864647733688007583743462171531895109041698972293911017791185645875048005091802866133978226478034931194917705166772751380989954360728338210206630916237231163207348887334052699422814112602615646849262386120177776001433337262402617190962516303134727554040858999724131495487975678701850723779328525758088570358756613211596545001227494031727240289475760493882438909903714723757291634012417453576078666275508829991123073270858489611093242590484885136842124334128554072449504439948560764763293183026380097255838931428960687814215883497753884035551123453025893066466860237568396725871824393929915072937418091694142815100360505671562992243599650826648909286455068713108045282892093206320740417861618011912767897601872815788483223484182929975448934924545402439965387579755150709841499869734777109554447659012503453715812356939693519224121924571214085409033174993559104267527456132998607510035521177229168706955851378964095892051381370074482960598917606039373199416535109468940830702645846795371464656236823612974253731451866242450688975585363277874664696669167357870181497658881700643729771092468982270270394823804823053217114525773270604162821025660262346868528280426815960197128477449691893793860121060234868741667448578504939642911102611980004308993510467587023339450095964692863273738689033399756325778786328878401095611034873034930606456887262796829391366150659153918151692803100267676859300826094348929773708533595411504002782998595253569902349649886370146999217127369907572999131956413366959435528037810962853942789673141616058386284157248393134686673588861978860854924488413419813072917497460368691084549299646427214618554452576074004024361572764904479044563413900910270106907844085447930683135109752140699312286129936083164995584106355079298478665358063575393742208620252061704329037746989636676338112357029858806745031470417367947464536683277593853500464559123994776956505028853681957192033360481515347451184921832802688591334063924635665031361783935617790037500215808704051307865203564780279176935053838236451789436106059350320237476623493908786742036257823226736985779034079559408060737834767567546158828960850694230574451912787143527375677644246197739148564047528351945795142347639966636650133412161412578943895842076643109370236524184631496668366385512947670892562280351613770637005567678335405600558309675490518667124171946144099782116535097900986975523636997460475744565281947280402891200568675613342536005038384615238221771229341291050745243038708902164152299027438642383214304699475286057431196780072744720512861911058084241933964098730940556111097699465326697915162017185378915054693402318409748879390940770527168157765595815078153767195805430266212420831584220777367253659546073367803112768072654853294704349097902512160985598923540208219688588139866874478270483630115315090015023195422544990025874745326355970933889139935829242516387708433660681741282626926179397875090382105798614358691533167826495388179630254875519957595714008704275607498786164654979305805992400653799487175977464479590861052633445375631328265242222066328327471284643645877336339538132600667829367049019670571412958743703006235004063463048557698008140125674177974916032410340120639588488781062529497376365702797313151202810097341386038131046819242113993918536885116919914157537299481284885313018686218092798453509774557663071726953358902116032144483583132551806338727616589431530798440627030978995313786824342088303653979596327121954346402421140362139980867340756009568114591793056667722707952171313183094680483194119924492425963619755739785688779863386128820436049165226009260432045283577235940853876468972878774408586358644442959549968561665270448803225322511732650248468474511561973931280789544892698567043382757940318282643016086528777066482846654443861413602184820007889377457024108348518989752335096952147352466540978124036501941734785026782908103133086157487669822753927533240578506353078508479965289798644822932863149425503878509081839694406378454162296543720866937495509130727483942916120512604989451825839170897904561170425850874300207427502682594991173128849933486073976973276249557890084788201445532651442189613550806709815489472160170607107793632994420534524985408050501443338702765617916433444932395539813524605573739106517560767973322332691866036459384337114602060547188014309443026383229127107576498128273422832515190413960560203564549059408863705219523291363492578940334377547487079493313715872487616923874394832947196321584855268324945489505570217517921015603931162397587016431696335563164481596474296530106370170856600026626628964942674483882113503726917341726007155902542662944952128876834902505265862151975818542410850269582759539024822908556486874466011401573292317681398050963442387159667761974924351652700859266458389432857211448844108712267027803388261143758099937326685053138125845769326994447358896834093985748482614674654627639369538617050479075001429437316777674100450640092955414599532973709535638244641823959700034899495654666687962062186786761133561376737908999156533462045959750739992264408585973045904731705596617408203280363011065755282039933958718447023569075674294165996551785863533561601365770573457438592092843141815349120254591841927549260553980850121218935666959778210791050994831768597773813706075468095427832261353837866124296045712422430250027137885128362925820354426274633981199165423201178170275436610686721710745723664660215407022453637946514734309052814415045288304428156545010592908388551579131232578224613715931377086257235964164503187516330919555815063001575556552000726128361623353083428805262403165178691971099954592435726414800346907324995695533908201715799559425035134682695497537447708401469129737883044745746910912052837428074936618083561186559204319207643764880712392916294058793344928006988241989304700967517656611498210959866423953716466932009538524633286875132178846040103513858739013375237654271159692152472325239844943062449090858677238218206667206112292862394968860872372018377490365459798196881289075013479780466804892663570413645771015668364604586979799034212692466830669421667823533374821648138678753194201626141489878965134744109313981184348197598317896017425705507376195107409148192087160286427562161897260963468733910508221842258990830468506302473032069788886599811218454315418307015850318605822011155469339171778456908972627720294752819332470428265128252596085146086417482652523511491105422495436807126643851778573471325486100711321703722929536949760053154237385789156429040067369413216234654558535195953316244922455030174980148397495243111307979759284650662593540476218223048374320412305023387127792811982810189575891562973528120343678906968131175927806143853478987908994490059958917668916013852098494786686146484552203917137107518481666188968553719202039202707514465808119618731494036261235254598310505983920582738609101895421502764326293999447438281049760326289783522315543156463957482126262406852386128311286893486388982997637436594455751071407327021286427288899325032031655391180524327548403389866559660361325112479393906695484475088526713903993058160020048767289295804814325277832540930310877891869914953116750694342931845587547279385301765639559387370521448929873375955025591164835819447681759548739926331307566131738960691434506787150460179464755999507407143306112666907762768596023859220771858639691913852963720385729827272956482803499534626735256256205700968633073248465493560334678696543155002843472738752216947242925070103565014260013005344362231073713348191121813285365136009680778271288282343567472844652677250960582670483371809383011954399545372741888092583374473538183187347257396026167225068909616482276285856819087929011580527528617872151545266089689214330352221720871471142969308282955365697037337973755300543014339591502475562338328128485814094684259895360710960821007547238324589411422346067943565710007149371325896159548445546591083718808826020138636098332568603545412910942956837873085557651077101233581247911217861961702713110230549101006103106529211028605907369671529089591040149034665299127463987494626157618649683583620171420385745465445977308246351895263481746390989497242173380411549772894684479871294406519660475705870538936424248449921019684392185885292153713515826436109027116397789410672878110379258829468008988177432680057736649627309123043603516559339653019865699818297313676903536796431468587082978224372472610710024463851685337468757937980453758961841648315766212547440718149803238530297116358418400724168072023924153828421548874704623051065659077594639852751344613072178607928446423144214743011008907204756955467706464551759774374230480297446671329838616598510104072962076175944454667003470936871117072635749059194649446391172170303259959107407676187636201446969400673510071859558665289100168048188449581316956801053511127976566304956945921826870507355978173749358323738285777571361247520414466632275945509359058917666294054805568340594714357043530288093744023924584683272389398338893768968602165559826376710804542323107238457441301479922627073289129581428120838108826194541523196887443183534011079186251051531975280529472512208683229988020600449726912630542095134911197250194172958532243281894445271891141250680826752253316674370932588410831576488176176941652293338233313954912281420288467412720039758027100208373014341248330574279509869232397767354201129032121949595581724523475684403037217726925624630398865141068536067760645110759041684534477491544111361027863261662846861481160214401172118649873939449374245971912813875628396673965281094124433769768338943242149311909916716239242365832336563977669332075566704148035033763327296636655406246243582499972086515127517227854019178868732188730253900114968724219207714148840765683836752351850905307279950858980526336126898407327815715760022472684585826266411469293430707380353698926130564734799643032471841118265706369054602390480946179130579991182644864166064160900980681010715588860881337907578177211057266063513642464483201355171563234060265030349267841197525282490241939023834681025145914854979516895236518709638571227421798545667978875416327954753267283376269747549928099320365631280002791817608797880888157568404499040308844961330646050197875271239610345756781193473120782889438826568365256464644886181961979332802831654972955948451699870859998973171127591426501376068314449247290305446018612296398866009331739551068111255035968984736086203632443611370302701739220087376861271326619496595391714849749735221832370823057827986880863017700021359062985051238653955314690246269673937187998791596609648793521883482219114121672504355794189220856870651077546704601729604789006183069165136099932168106159157516868442336035001802611455317416796288323630086977623432028253636172548528263054120612655342200221171406028993402834102592527066889588175256234552674246091726517933165128632692074228167852285248909713705244137356244559028995880021148889916326333529158078938590672553536417568773198191402065801608727706900603515517521818093354708100651808468664692173045629895943990101991643001174120019860232021875231898778933574782008688765099568834822022802657302386139433839045238379619829367790158019144020770979416570359114271090801531212203913001577278900150820880762094542575949524508114871548350423711466336281925528865305141854904378940142805711091242906334104459128458345163882493451413674276125376690266249310780639489479790260085204216585836242881913537920072495945322657346075812884559744066936758769006900838795109301976714036876165910157880681051242787568277732427535371552055224557734460848626630459327657011938431718126526844301924991698377414667265316703822822463444402210330392010352625166467873348717028409962721960484996520299841000153591913347958916646050380806436832405737205397597405109783195476873916556886117590549364754021511007423785554348228372725699560900961175006655762855577115863233958206027029890722751068321992997788471117203803141409208324828993192060635633076892079225628793298460186004502334382009676441113092379560611725125638950687891997580396650689777670030957740150940210744655131419874439608404199798623386567885110376964899300299080718235622071494203814373187149250336306322631553936458534606962654052361843356722728253184615761724127216289877548622790224874538491288433567080417570128008458111415559213707308174406324096822741300380869113351425367489151358912668646050968220080687687098523273452166905322423150149707217519860187665633802918175607196113654504318427408126046735982737411007988066067806078333923796036565437626215536971305965470488081071581130442562197817130143220929714963087987299794753687131045514968037647617987425562497145356517817200220504326127889702070110366180769536223729227292464592806648621354234225696276882420578005818510399594918742772471337280015672817412867963358560079773272620246441225348926133272577225437007198417949810234974933627002644700100072777307391588646175572846498267301360546108883547901561191448180643297069651835921063211031130099987809065479083062578359180317678475651689776353020095805868409354751212388655452877640084593614771300161189160589975848957488819336260162468643391039457759296962963304127555049355930828354570741715784393726633969699399357947650042214234900086279020419674245985017286750717596172302792764356713252224064370242704005427680039967697283403289685422244664063519730580207536977085753837023071334928140235543773732422529857337038790985950068275877966043367241812922422573975955537043936170843028993512147498013682553542885973426219614842319632119891030089466192331095904381922869067071424698476031422451429838281195368552386771559960758429741843002172223166364545719329526395065512199532109899047728643385679793574552013113371888833409515713954322417738890166272705183100231629557301956963744863473010601439245044082781242017305306466286264567653119203260085296397674526197276726644272627887344709477024853128346654538940529765876467391585682202824736050960209768749847414236450722495160871843367759570920655958864242880063570618070345219500986038828354786527229658896486973869725413260136983112011592621145050244783512864228854155682159407816984355358112858618481865908719614575999322293189687226740787135871027839049840060555580987092899535282066614949941108875347433574684467514826000829464621977391566564641016521559628263086593814797083054911039094145099722626185352288285200028259189776655502992604859715812091898472060430205689418819946126981812185837054909725216990867811851806686766486047271678972897372677797571217684066218441494923316258980159678187190675706998204285168537897202686877294890854995071549228288990410682947852679435710617312440417788736681930742163813716437244730303062098163316990463406106004311293943212472770830515813264480397586119630313987528055347131612128687314636624398036000625545597376774397663107908063228881039350691050658670695955899519404900606578321879420494748081915516129196343912739643999438252003106886193645397175684127898412217517790191778734185456706640121151752716841445587104039153919282046628312875186343083279163603400996229300376550080550687320407879661354027130086439171641306228089147068266116163807434777805072278209475477890742572774299631063239031711579318128626416619536605650898653399341035399703616919785307809024105669322120808556580907374444825834073148154045363578574403466338909083936461375038437003230833304045516331709005375082370541470924288317600727172510717441501009039145500220062450554169644406955229692660346894288857458568507190743811171630006841026353038341227226493842640432036420816503584322117382448442929922462971193409777251123358736780088856051589559763364433086432322793123031657330110827716071071774506849300233045778087343564205866990823317852347472205918160029169146305720379109589812998032201682539979313184446530133421499355768248315981720029380987396599271741450259565857208492264990500551822207696527655947238450110288877392406283887484535787468650365792484771121267618712564722441508865842575954061562204491552025553524843856008716245396539099456052117545015582266521437193666684106336932685076209050212345462358016121421831787227393117893197411158047365872844403193043389989975248967868671733570775677915311602583664905727055019443967887568428092238828591863813230697140607634284118951526393062831272658189640180108888056247940263660980016303153335011321474905884857393587492862452752130776905299729929445808308753635873416392094290774659283075305325051825301510964321127407557455746175851314302957081057483712828665041663904893892099039994665199362343436079441573887069043786963969389860880092894907661944777899324145770756283962902435156902799780736011031439939042454131389730264355143545623113457070185307477956077911840989591060376337292683641814854521911085911143937915213257549171747640564574158677366596251421332115806834310598161271303386177994316189490169631816098064065013230710416226361171933574615665541302341454194553510860599681286251249044025211644599894596707143271878071104449429936629089152705514957647065926133738159195647275332056334476639066847238038958998746428979715210443494161500201168915890271144125224800656475218985939130961431433284606016830667405186647994384562087922174363370648209200065342105991139880595461564620825310803957579802144502332797360637789431019034212206630394222975975421973555236467625415587155327981471619497985789474045960905081426659090017190267250298237841565557154508386621198259036099782462382518867374308354466030493455067703233664129695134934647131580352081777176832195658409388488552555003222756020092366257725484238614496349049706357772520816254927446015772601387854580058774014483978388704058608918962729769413770518294523309332307670040418234643446298373072760542504857340734776096232681695967481902205143478960995193567418064841468051595001076634862314391846798078737173060924198100468475269989911489926653942107686064270736801794727243359753556413148805884687000946738368837138627368983611075392372401582379068519574692734133715826866744129370460650487788765280420457582217847948720786586438414855465385551343531158758172043771260924635646988228177175640393602765031872540696221792473595155149795265076067111722473678871105379365349034535273660783348379362441273989680303718415907892819719136171667417066569461692398026458379647843960761274995225530023201621365288262637549584691464748190989413363306199660491278046627430740453360234925772547038307083010341086286300956247357141798607237455148714339203311786087837354403611172488344800082844748300812487488889230652293470895277907549041771229268221987350618415317000794173271410775965048905476623773992581591471713633033824315124004526569613554223834740576507069441927062103254356915313290370474208940434578697328214697052154713322340202250267272181536195136339253382404958667101704149255857448627992055196399115431013794619815402448081593999329122624637865555954315836373285602810798150104934064582951623558811766712534463392430018144221556683313493199984707838782571105701419730384585099745887610459275343510501495089418226550729848187516877619515705751703882146723564119079492534316438334375745453299919160842839010124207355574452023975939628039316471023239627108364691437190074450859023943283190408886138964747319571469854618314754769906319693685630481564383677592957333404830972929071647948550994039767337556705524884271969460148008567708411956058762535755518891809051112114107118447671389073682569718975915369788352364428194407628344395273345637862825832408638507471703401111283172638480060323338788616783412301986364736835349465823779707736399764075067659399821427743919198051658830324137411041276549488723852073461895444935566349228420825978650452802908537039661347488821749233987648530930123371008666552527590642308499354199095565602219176528459944426328809951977574380607996187810641178235318373898876971243987466966766370400285937299204871211383550047814809590225994002660301755707950034945578432935626053852142301641123736773029069021471623758423376654328350318974270098604625069743676001019465775552404016085735304434764308230365051651616544839135579594075792134613590852558032999120393892683278255913907043374243448371920498790586018151336238686769938016120740864928621988751405163650261142667011598264726935537867146175307804487034601485048956511737176781329450073097200615853843664064879452391846665865913013814663649832363245094438946120493238184820759508327758264515825072825813779956200926608883835870097919420174770217496530663380791156990831650926989459136530545222533929240495409131665681804792781012632147790149187779265526427283392928651987486230779338918471754786910571851356971872253660599935984721415605188361196491681398321069045467456680462150870971133861268223845661248110270061728205577804090779588266346691556764716059211328431347553296124493102919330998757832171162037681492778552924226623410230659835603387824051752045422185966846560035011287660603529946087315314444169886565767867732108339402867979666880852212312670159958753637769941189368991903093977568997246378715737895650933383576147756043525234326443754696642758579307288352853215113479600429186847712716860450324991816076767635833135871780198632135664026751715985047224628641525467424288379623739786538048922422569809921678170083462969431066279222997976359811208617742335218228209934909016037717753747768805799790839166131980973622217842546849862559273424156942788958385843887350406351354156680652725095540805657994110825068135304589910196122555646531687849782739377128850250904775259231303177734341232070582772962772730665613359352746411206132257098636783290630885487060283452402723399196558921951031359164763557154900663298255325494314021672175568615342511132002856850553999422747987565026235548477052801009338256149651730712618401290874005750335646616972893945648748459359536970480586317506871598159228088604523160001464583032769329185882742702732877274435841182680565269275240286259456485823706530081142722785753130863099368352528981395664342537205394617176301785362633960685902051655859740533473072242736705645487467300639548662946538501752179007052607963452767039567624851078963671502033636619528642165445140502544409368438220808200436538932746967871487678215322282948213248872186132349708090304205880630005887680051354493348619762407336064859493778700052845254039112897552293314091075185534983602199482518098610575886935149497759044688645395551206052905456095337205371393378005867881588992895552997588950274392562912914391818312707657789603564741993270637256949711574215100872864507816221307094872533720991163977833846883214198416420243740678388507645966748829461946525763671586881598105711192179497664968137350757216327257865333405936549372312395419916394595431538756606981334532325888754738005128540128136642395075513119020332436875482993246559407025336188445079090184060515310105827627061627465202904746796898219588455189689960325471219713810044920448016420834645116520287309761495226724897209286725794636179237879843713255215442276382960925812794223098383039551705352900663267985890398176433745864178761560970091208207815095827660292558829845730516493372863129645988291949877437045593695992403057193822021369260330254567844183174080776278040015158073184655905229767280067570297006083527349868957015644458690432651066391615406559156887543068574586243307860295231359223303603347132977835009045945380394857579104025150565790355813998388798919422703197030948680957460383798427177217372687927205108942319831773357216260782716748541785515378166037813416119376184771675103698219356070066221200409636710995284943657397599403521163198263344406289277268433652186072193757204507366994558559131828326479416873925652016651499723903645280234933920702545678851944187555347752831453762832475388718838811628991618232064797310595301711454967903896795390409937012453113213685235679192270523505410873680756100260871322001199599186591728474644180399329991391209879075669048585965783322189043174336576392176441483105734647378657231741511913046485476635975066876504212986523031913453068293003273279569617781826739027890727806787065460668078838858899620950380026760080504636624386721955246184012184670792084633652632203634161896295231072168217686102002411702260547356537001285900858934118002861887778231086696292434787979784955680058914852129242972209258785485007991767111010026969244379310800113219830085016356860961292802496244757906130693348328764132813809473352612407479509469788515273347380806363569869664917493698431439213404718902757256418422207653753726258311366960926419006740793317981779064962722844482082026051863583031379067525630018995388807967727512293340093791596693872773979699818269492939389546967520146309295343579365488407614856116365710573895931093190569861349382386344937397193464682995913946296194922740931620056368822958727328097480150833196845161713826983513722302782288891323482297348141850269775251683533337953651631276952468422287098626398516296161399870633651939773548440964151908505104250488058252008817851422289404128938433196733171073877953173548690895520351348442117847686646908094357064816855524263336505146221649263969469949258768725362892034794366002096758985569669371003337153362733171381867631812522826829064490056885993273707288234759486893036321152577468888726064885861947002977632545034769605376081127712505482905836733565120708511580170829685590530460547345442219015497225197609590670742208852038190587447250431583702607102517496804576258715624925086030963198898063983998962061344919847927823136542384201629547741678635936712131837889304455418923771158016795620069743683631215740568700616005072146856459626443049359631610080235648970585752377302868172527231635056533426640337751672366079775799149926671176149446290320305295629053788409469412113791535344340755831385301477564862462137359634480419193784031690217248385170963918733139222559300195463327324646396403290626222828754281742219045020036979466951976015145254053425832906518807770371972636303653725488859825891687853825657479547019066589776521625913125432776119275205944110842639040871318336651721628391276673843546703347079190979572161771692149645676290621937793758161961107772255323553418224246045979373184458921007924394875636592181975821349498208635273509661406555053762224223015100821650449675958588640053917978718040638882131513087821820772489078074519163654813657283649916697777194528064851815759159104360846440393730916817619787790122619191571725712078842432301042752236742479656800860980900039218804079015334928754039152543726834348526862416211627119434658873672498022546682114000298262601163525020299986091763070347154263516964667362621686143857525097488925725787304787842145758617382891428296389023802261637737113022051127216796391882825002260832343593247624644396807342803145947298691943359318261449853930056201057505883738611866933975718600751709705141757675583043006860020221671706657943129784530421098950988525442637833461345668031978391275961243944488847854517109128668301024426400476650359011189636707353393248381817289340420620065907107251501196069668537758328759988453238738108742024169084375376191790060419397917542249975559686570584593717552910402998339215902990011264090175921479194150656608171796195590496176600293591264043203957468277223424086213407395111664005421522917054657603974384671160393885224110389817034886419838265389688893445938024183773408469468738570066038786047107715391087883032847700578606198831836316706439955473608585487124722990339383156653250688698847196120496290622872440383073819475212151912266074213043810309632567426363412258138358055816830062136679439016446455312829285960009240538647810984852840670755756517526406361226337680760581421691762501912492200032602138525693687621943458166028476244306664341152706237743324246427777794962765149536240266114655114067304446010217204390062406117433643410441928261994954480414816721828557730005370938124806692045506224092888491733037685137899476141440912757996732607168127106537349563857649155651444557615666475368429124596275907871413612149664175256756957652220169002135257601113707042945600440525159608451274277388287989603869800864390483044623880659591369437322523437532203346964958065827331042549273864042492714129278789206521789827013682227761421298191049133373251385358501516411248762091625846028688022059880502117627157743786049248018612203349070453312050547765029354916054666480743243639270986972968869447602244900397281520168927343403160107408503967383791324876993767174654952389001421136951632976108404324059246927490242622343312424345908833083190242409040021687723589756475558330327686627495973816816681302914757797401152812739121191736038105508416479557068303196094061244198484512946053099796233536646107350745508274517746275569258866700237909786412274967440011293320738837282949432740029007267082382016726577355075487702327464358979616526665956818438935685827258999098239327369624354946029790899820258314132460242125699914590037607675943359240108433405140734933493329474439136294283750588005131854714766432149671880151893262982143417063658338955012754952269011760594911086069068269373808930168762000401425511745887467795649038416506674804141244957345900130885395633781772213191432944868940657999645755520244106388296273055492766481207873781054124786886034338763837693728177984457765730467081397505034463218731969837052353944903173410700981293306612614007990591492592046471619553754300236064255139884436495308856279713317225801446635454443683055359872767667270058657321855699780134597493216595328865555518770903713353605958235790495363211290494697989901169580430474623125234374589509465327869795609451922951815264428169271540112421242301054215300286922407809373056846119434398857043103461746062969328211724441892041268793010561435391529513305674114051584238682808423425633940921004146846448142794526727633285007738434976541516833966587533935917655151422476084155809799349845168758958527644087510874290188837451395420120309569722215583266199675869024441343098526896286510590025016807538532663480143870716495765027861448472704190753586848883826674418731154439344339778450292068962374013497476143002846699885041863131720316242472669266831765838033989399352435502927127035788423028877211027990006014907384922246500247253013907652903825772443441150089960748364237131111697793824041324450798300122911737247755846277898480858917870795463607804665404564950897219199802637935596758634899754996494130404136731851260483756812212220421157728141588322278415326686320168996306835978842568732862937248468743778431149480992055786704411688997792482763114785698276207961030218516077850633019250608314099577118681773444600985091711086173352156915918113915844640552930527411796431197271144626327120236378411761333659549443171353467596774236799946401697410744654578914957379440460777161996241525552180488700507172243387758872113707494595085899519264827868117843267196143285017140778606031081154437051803582027270212408170249313128439206827496692416603716905644623577688529353432512512836084888347730282896041735879790772776354196213507984340694129587551822646906356409638726478353574033432610375006658421718987913738798135352194272305741525068789162863985666475652587434764536995244922297348566289148471797531407433451692146786021908660934764078783381212168042772108640227845143259539420110699256086934976175901682098035870198153272693761301616047110901893819294969874393939273829154512428307169518117319371826179793656625982320339812447474924215145055227503131809276741053674081595748167845798625595760499069653093015947465408954783280328160716131140416510237613938274804535877345988112762807925799818393535161511640868791735430360048818781320167441397243011416924837747396665974279244700300955333678309509526299198619491731304997717009509234887549219075874361346720165910460567942704055674057790812892682142094222777142687670004671301013271360528785984142542995960330046118476859176045130247628811041799528631212321685655275698474274080634964701950482451026309480420484817788055273465280756061909903738456607945769713352906384257877932552655935726889318434167263304850770569771214093527273673230450429731621089895989091609118124273947581501472432228142495502829818619156619258371219074105392253235246801835828102521490705425330713113837034299330573803869193960651665791642600827369485377908761272295755129930563843335289119607922361666289559746692000976438417173454117741564269565334622755846971246125511781451987194816255293522144823429115983451388110855347299485704104346768127578029393671099347706064618221238795570672325397106572136421302653645522083085362775604936768004895242888232177968242216528504677256193335038523787725697635711585716624469336469612226362691154315407291558808664782981499964731831975316248975549198367747908838541922528628695903508620654107170239280703510361020083117788169052715323960487302505317168513011820024676271767668263642933304224354355891994427075969050478331019835175066581801025403432206036108871902610116031458171785349646651165930169311080253870601527064402164477330169615894160512336636149901315515804210183092371138034366892202694944306904083096992319027420930439554200730837190287827866626426759406122535583752820022217318948427101519901410636118399508357087238587813764733780356996374950799274549244411971981153183193203794143288300646812943493775354774425911837450174779102127646590100913342823967609835501312856265228579179653721053007285989850026842801840890747841052302598267370491912470331768302406679958182225280114063249258007111714391439590991738956144562388371653214587253317762081858821692920513226408476891611726828597336325188419915389088138471185333330318639271336829009592241093495417762129998003333450711322699027680468339051132130985945392784511639959790111807493870198803410320603574849456970406875294484159261928467041415743476351724109822435341562980790464729396060629777782143360052190765766335836668094160089360076870340028479007460724784742821079797997444929924025378654595229082518070889345537548354598249531822746598524547611552498000965242938761411697497060241522654982966725427349801122200207358693181435943415265587096417578024086289931888443500415386028172605370269455563780194646831583160249163938382155052564643090070329728352536158694361774925527157750126016144259857409282711220651228723564118659744180339285665320334480412133095692033279071509326032976001450234326927616070147509488698087740188591848995722218849943932041606238141633176152284629589574104411867143750694195066153497601109499177435187345491531207362102623856833357198717456088887803061712977453585357105493108597073799694905399814278777482090756043298097442214896781397860848904557592620423578805851300628210672455561424789897100755740735203754787359550608308560104305957450934350004876662677472133646086746305571099128545455417898641536780819058597888257146502682437472657907275697516699471999482268504782537189787020464507643004432369687782636366885552807345421465206533652301861832502473897041092215435923642309911325115572427439782168570430156739312382520570760822267598802412327126578721102897001400080881450002902132473595597369989904716612608222743037976693922574786433358988632641633642035604352678888585816750566940203543581521903409923221002853166294049844387273419216891202340914653624874929591860314826986394226925948353670488992227857665376290448572659032716357296309288745823610813132775155294074991265459766087230251346558136436462811217128867778472157116188869459338106835469309909552867270219836625421421081802967699210921948597603633600946455817547566131826122243569685611779843239597038739622400992453296979408778967098077703775199522552237379901353933948460566810212731292647807886824612459354703585966335385220221405924622217447720889779897108261462129485661761652225412886725221760136159818590826568760107708057066231638419097220450432181274731525055134434701416039263399770020330252638094685638331652326327527555413038257849590673850895594984951251845098837711666990832366977465287809487236074924716292870723854270463414807061447889872926975820951941780841368016525310438673323236552890841686158127200802620850413413629989455407216737668818507200421283873876032381371760855285732220113672565921092086026671242460556333767182856999915267805628664023982356595401566476245820386413258535843311442152007413714395368089009962377022168176890732478658547125095678993229197895800263184150379973930851276103322149133874639602281388426379674955321071053152931505977980843372740958529629072546169433429591897366924134336930454204481943441242807015230101304910278711002401074615804594741964846525185501096108435139767278660623601499769710378971642343494293336979475911225915383272083462176783026371284854959337306291553460187979175794438436863346654460183284771796531336717006805026803380996719920944031539084324870904720260323243584211275260830015444518636928605670340538723721705410403723839511820345998198906690518079156069711240489496008774488868277972706530732945406277613136672860989193468138843514316486759071439776494215927025637349232674543602573018066399036869020848027607442922182967946305576348178111939017268053850389880335168082475506691564707789666234327785068070756403770122679359081645419665421476866590437057510464821345053069167056843610979608764164104385028443907306481548227520313864005594922410264055406897831396084473243213701058330171580475854456192649045249656056445417409851555951484873506928243135829361927950945793381388647663108777525105137114075449303553004905996498764812311445449916300927742160173279328639330162164009121969798341227738169667493788818827097880396160614878739658998654492107454028085504457370985289876419895575119614831387148347680344732504134171280384937162970210957789750825848258413007917746834137164883093652720049225859324045225470969779866968281746955004191862104807068733129263574695370812160874759048287675480253603177701371400386987664778715890330280371886896673841459202888735942764595261091376154056009710917719076394678122681000567367435232901470592602766589751794945671900636950416458235661309298687665738450968039187985966075139646930700180442645009841866529080710951750383436216662969640709319183646288337809895642213953914825818063862158771445670135350388581893604123871120766067302644510310670449285984874933205424566356533159962078737186009812354106562760921826354817377066686634765886233350579691899396694635135463937321584573812870834520848826696652533252084208196689187013648458820164153804062907678899395830415305127985372832466354401854996053477993485377904609779772488447974742656802652420961605089870662915578122110460760353227877010684220559597718094880536782467798582006553715711537297281282349369135507010151087380424001295147490838797432351736451070287321751614086775188751698363854193659923023478272334424158073806611012423577893126182546044108567169221030872645669830642897259206101076386976703494293655123688340048103444719354383228274863192148007753125787604604016409564254985881454463840280052965202086742795184534021469957617121948510015667185856633631216819116708822939107759872050357586269001065564708282519248121990252595661693584824315221288544773820104895786635655463393674788871986123232380483283041217959435650460785165329501966597781758361541725313805319271524127453279161704240910194631752056407536878147613247341041902053617400072444337542675171259914967721154713983462581466052222674993572287453470772866202483496579794436526882943395361638251756470224081711351236782735816432388216910715896445591528242900585268049159729914304307436082998890224905756431682837504743517058333585625512294519821173336750664080212217481457821292652873961597148736913814626635511911558800854535824104397882297572702475336309175753243770927240236342498171994867539094026374221230759116702831190169621923511420998163781205516986020681167609901794192105255038987296647418507034510656707208970330484192833389655607526572776427361040013179810529905402880336035960223004020639116692386399667976769445374567447972315933715279588030129306506857485600125485359295592218125226363027535957904477846357302932180723768707579918023851446265638117205141777198853675909245593635104179077009599827337765400585058182693613024806564775485064334268270038779790432347399798967702958764044721020272816340958613767651567810911291018676346107314756587014131452108863898656795057887690975248078186350978634479538552002864655117321705692501868416597824408510362434500224707591069309535229392013866467564252884090491480779991762312046375671316767082855589669090731813618396539917954576487770906146420954268615843886215333113723469629549098578147311064612666953875517347284726653005708914473638020648803494074646346062805260948887259477837594617953118254693235802951228695429782865125107494771835572015196745536899439296187062435436523539728355278051883996534577676953243229446294587235217513839486114696453742841403123176615388575652356941219083462125594658651773644544955115783450445573534630290902164314276168701496261157797762575177570132679778977960242913715628363657685407497658156904175257310335927399454667002293232784507980327584375140668775843344881048461694004695987586301782170954822986606054938268917083073119163165785687017093604841780332815357734795758626375433183749964060824281676690977693356799362052675737363443090558114730004814138579705859348931012313090909623048686491414126719766540007698722341468207066947595239726407260627069222180474773682111973715474725709995568338590856217280036531925572351706319536016209730856085433352616789041324543815925015268147478853219139509755618351531066094457992188221253704149801808150449138322251947142763726549503327910259461919888951916103832146213648595538278353915653260871463765899612133206018018618219320208471636398152236453318682554536096189501506017876241882961501915466392071929204512709912473932136502675835854932383061029226970544467168861293751622264934579630788807659382157062380970855153916249642161787680689152312230849628206650190079786909098972263643110941350109246158839954487255558362309674179775648290687108504382670170904314516039495525101380981922412433028131402581322116757113166985425399981429904790621469713148229561991262973093484674129956781112741381959160585467685325215122590406549403354158772836210536265672062808125719995070220055790301280392427845257161126533433378675147895999416460906663395093842253383069909856564171779486602256768016640811697870434139034675905951605247703732529867453549098354996701284051626811406312078892721280509285713294676951586362050005358980535424829554911678000522382612385023912909531461303480057735627111570647367161633626359228295760953626255840140736065401477965847744741055415519186585854679348210861772614116279896563268300295995401342141834732201263692090145094903949852571959457775964539438261296605705349293685925327465379623075293042905525142188314994933239615985195252521594114489910760097367692137923314026094215093315085780014050036447961906825686628723359023759941512790236546956784521198358199121817453289506776184023049189165049911079526639706348598772402007791038403485716428938953378239488497302303934937124185453028556509408454182525639137342141679035657379472317951020188692653186235281408979589838206860289206734191255130897280978997230159998556901210250157143144678288119623013468482167087416785194714466634283210518141848331914605078870755915711849286821758385391481014317676144323469034009653713353142228795080824001344749869630296404918387845600478206717765634362471498762411057163365551648924387361487434131694721244931204931617656852328730912791165117093116068752224808881229817834028916296265133104592219303373351313923441011836913699789914596363556115953250299354721969429244862184772963341201067560464229304001773753014666694012784690480527067628363330431421520922679802971345430361620922515420944924567819510447347394524674405333070409554582149099367313561697068893085512529977466686497685140814615892327649000716498235108147392805918258562470310948138606900288040133499255609480280532226843791883804346423223070696815838528007972847928165031687746636096458942163661345108573766090276310153800909946632812753174356577475229999601340713101468336697457219775385482336250347250258942183032404000881482348233733590695562271603433249841620146140628070146929996582946423204816304202023769602607251206281951681429328623070835365340432918647041904144640428125618804816855329454517965155679076035697976154616922848006096526563277366291431736115715266364394164983029500145769522730024936743343079407656857585567179362704559289647156129962185485066954709487824188477977969511010175809870205089437454166228367848147853280742293531174132284417170492648769622108930408319857643233149093637413424651317973205804978748696077045321766785883331400215678550287484749841656880664832853523648706106033156845255254315014275734927588033950211843825817395796509360113606339035779622747688762347438447489722055959680843060209046789538544483981679150676267031899147974945492732849123370094588696968442840211850153356853101338356096657294152654545426653101962213316165434269818632312822719450835151327208059485888296394649752619116977445697132017832063277547810541656837000360024427141467391053170552640354958667101176622643494268637869628052823889281810355245318312681856689398450225354150049322958401435478398195051742337363639751277779141601837491739969663959627407709253436360248983340293240822043491135181236168064456128905077569634484375597770984050162026110663909995673804960247170008849853586123987698042380133170184056978120081071859802989647815649822919683743529522616803710082389925620369654094444118279705984604605936722443738125081258544239054291316740609597641462882941440471371705210685532983416952963666870711250096485689855063009976820321377890203008824559737515803578096683743665993607277290636937112388717017136231563933766165180126208640032389318192084105311898920047018210748568044352409461583847719007706989543881055463125810154479674432410508629886429321351098338596081271417376342059183045497069860196931979028002571858405490944648959791094427074641887993704574164600995711048082120178051409365487486157769378707997351175869578031312054484458966563225139667065413506010717912415998989189037223271695950690955229690988054215727375044813599681428582207308728017112821833161693295723927446778469092530290644683015818576828457622888645849655418947328419226331240686878802610098948913079926647839791694748274074986040970066514666693181193543837808427684961332167667415554815503678244096684118179604816347159088402037060169481084185324373637716003763683250061311258445326489040555014439052688571565444311387000247363067634536928997153132115985524196789483615471207442186652601467093408365475700347882551850503856019698667209380050584356592025256029595561198108397212339040951893321088173781622820989479511621965114893723960271528231152936894132153510112453903468697396937301742308340591796729883650729177616745089329899478127614198982297533906688534639270609566630984228598114427799951586374844302582589254422897592338729959329996831427744936611622485905136713171162834213244162039428030185083178840963729117637548205496942170357590007278022410385040415497160149092079351374254181572264923279156506869839019503064555664994117279820657219333800192598796207823778799935811161795014494157275930487675173255404903102775185452793929327948355703559942547768949514172854802016121321457475166796066652228330935077937745668965119771474827079407626312599204315266093758489965768720093324759562809939298858280102692875442019577535360528351280253315120669706258218217782871788137248943662621986367811657519206657369333696750498818721367559376092802316201473291138533121789742444956685870655508469643741458316461205895691228623585222964069019555788324946916729907472910239733846701402119541134741376548804075298073975621072348492795980222681993832382781995196300695134639062319582306769315472626007035023773556599013305379567453418264517556152531703927951972167022644639749738009552028537535313357585086005556764886235551051353523945219274579216284199153833497964518617006465632979137614778100330582690709817147096133081744830601505304362859252796113560153233524409377620945934461919460635716256069294656563377418433773948519140860182344568558679442598011883280024617713935186381349808176853776765773794031883155695599965835079313593096416819444790221649169700370305534745473039805977700135867232272338128785858219624493713664249926878060508686459784850571514844513553949849721479141750938875722909474246041479365080674646875523591339902277005255278021046501762455677787855601762536171739232547196927634929103722680545643060282323653335852817066494895674276629027240113263794827526222493323219463715391363618384859279065938477890280954176670129569985135517680446116855030222418182103323640095133026931982847797615022985969747631916442050267660911679551864554859741234407293394419824611175112805698272323895992344748912995174140335404783626453825855782892789531438271648596881068087022215780975764621987037479325057173092740037547937913874638090941346522955562329602835813533102455319119086990394190925071365154808605518494228411832245398291188286446613519017172343509188883132368625071970734800357129476686468801794167232350675942275203925876410367640964018576184712652823076227252188250152933279014942307366239855914421907192624240553620263111195436330650587261697742479130739106048770719002106629778179872746233301465117867164696765593323561806323892025570920060729725267607821145630299908749322513139331244724426633537862106289519318624229793406438915044038612982198957876435200266686821620020405616255607650745416894085314375325236877577436676399562113565730900573277687539306782916572013593094605514232828217920888124733595308802382967409422415841752931426221650455519210480234335997358599228532560277847030478156500591012479847765252869283449897763108724583901366669916775211336510248202501955954864385366158786152369469934027058411832293655586782659105427766598014539591294788365954007692335079497059380507168054573930040062191362656422333780233823271589851742246801481240707950518872153919142966399106248115941796111458943132140532474065197331746286004717830180529202798161538294512775369844098751697333010852600696787469228151992667020012455125705068938077601250392450958688491163840421443111315777813473681808639366467213567728143098986278771298511325846716094697762505259523300426430959146347872685363414744186234577236861843944314696954496093911306192589812148010798921089184429779659724940893512728428222751151111477033897345481486280509534952171214928183451035899197765804874392201345721284499026314118346921755118789031856952338484181601066645036113624139599483317942951342361529545320593258296391634846500634453695383689282923378925163039646523173875783301221158683149706578648263786212151786901537025684699093142358135231724174885209245714805017883512166659193177318326616785910275477361958648312416349477831703284152988667950659653979090080242605280077870117869088277122528137088870368637170841148848765160939153500703581775418839925199299186648033099717844557424861273258438349304144375370050640112700603693097205717406209628891705603782327312843343612602391980938990554814612752014807668260893421153046647152365131155800488054246923300570805678750563041043774729466717507768689151919368164452984548618063690871939440400300380735341367888972787858932302364752209979443287087310723917245719503190056479102470104228520641224766074100692004602957595837396739202505759272747651634867936341609920553909200039109444245147101534014099855977521517915833253733201739902667129912786336866300999018575075275282776508271180302805768421386188085193420217910370051870066713161437514411720655471372254935760377314777661145475464384411890470254851501065631562422762155325340174070078829858694150880510480839579970397118347811465264546854812541067715643160607733612367924514307634596320602535357849220875382851984353406311997988746112514318312680844322834863264902333837435486409596602162252973455799190069691279798346749490599811931411944792350481073118275154805525655023256228081378846819671316997900229360672906330064876107531604572410123564770015397887606936560316547050106769435201671796374460741114621726408062611697420993384178088939885852283550755735845208738029284559416926181215022184026052557083948691066107313240678745987429077971285798512423227079996108988235740185802540191951860769759424976171480232816482908091879736876437725577491659355797357014652129888615602576492299098664531806162535691538670611719222146526882233680455843901809482170637534480164550869298699528430005899543621702735264746870302771709078003152365087804088157512561525118026877707209441690916224433809707533054739122882303808674204994980162574585127489844911130593616947692937465062928300973432161040944825495280431407403546153705549620204794512214572608446902398615201755720253191722758299815970156557658043259871709999444415974663977389539643004689864478308504421520848260694004289409060853286291813765920853716710094752709902121507542275378607061990730774097363033056416322725286744335923248358681062282045918898992185102146892767324702811056161221942153888272134241305026134355526468957732369381256833604820288121647682932352928316170127866930766755737818991150914930325904074231806578498860992944911338916668834818083330617288985755007815371043746035156220769355526887866764971526109351403038122660485500702082701000052105344562381026797880459260704953001881808408621855995413875578220082514516730174499300639217159776199454839985292686127267851835227548077167429028679431806386089753939091926138821052816407166600898947548050962521909446682583058073110988524839258321627653002203644374095107832823367766548375655419901344787770368876674587088358909325205737938981553435610324103075762994158800518207128963276585437191007732619000189636506109270008121593692230594114087796297833542231943567399806434004272657384614798834737450170155196658686886748578444973132605995039314445843319555216139971109459784629788741789120530272286830706391070072057596924457063021566100476965366472977762939216914494244436120765700482861657363913142484145455737949068769573176373547333999385853504514437332485967728772517029987857002647521369923304120020077009605683470186254572687984584204127116456385459785555979359101851933376013707713372277925098932108229185405893433485822166539013008845618227643073564902000299655651725497848409036765595980993935729816115760978862300823696093320291097267659335011718142626591820734512264811941649101242727726111103308230561100150405735950134483625706601949293334328704046041767816072571788026362006892289431398905726970991624489540813511335427477706524885883217120342263477569754367753174318744306980551993061645626703240780935212341577999269102321296657024139935894788321607298336025143335985752163945794168579393309283204807934241187875343128549119245116990658756454280344389471260893921558222590293787758788836073021786375695316801178197396746834315813889947871020842715808767028675492740176799387558438725823711786490375964646348256119282067338852649593091982282344826377336729764719156998829014200397654130188372611356540554745567004531478596141350641185044065384785316691642872141129461525791108666923051587713515893708234570111583906166658965607544892423913665751072866321688318839287242282746795528469079722795771975777310549206129595760125710935719319043367955280266203719426393243187390202586268464714229828221597409063931761771486313934562110536801018006561984568045931998583794217741179227828382822501163121548157722085814217867975521215342364253581333319338863816203537725704811847775880581655103840749315350464959179553436362380865637135738712157983303617711990666697658705854816031066970295614967187814822234077562078405864477995293579013830176599955084994486828652212886039699975707245488603358071666574392209395059913207954629891306161080968128790368869624288771409231645256131379479536138615693386315478227894797261608510412933188094493562531056732723568614004685386931063283455080629064008472048217646844977926238725144273409229784900391928341548068295671125495034778008463438592940758112630950929981823785583239515890711189767205418191239472786600664894338658726613578656125555532130830385346057511140304371792682130541332779187704130520859174927502906905143705661572191131764199658443998974062471393691245269044555377711714258443305834632004294154260704719749845606871104533020488006190085831828552757290531210546028322522082860633966908436543305986613903025805965774545588678368870225182206532221187675461018226436067498294797677599926274429071240165884758565668299163847141216647109685098338124213863800834251078666903658371045969299462692043563054222991427023797757099919943949138779620035592570270962446105705216600494006646597503346792862175868604529892758453888847061711054772699146761276996578578537446339098195978700701220179139051495414641500645867588593749238900531634270035680580021803102001621090067337580687490540943353730733144214562840026149702579883810198483552918000921262291015503535575478746157407267939553163063251952413305134196274371416318455661212079845975958411711649387984271021022500309043966883094304229379209682568269653953976389835660874668289896609324323269698825430888008419671557228180658518823531311227878902912377711027843833426911826443691832999145963163929175267057907019241904545227631088561011250591118954619564446747826272029701918980917991581766902653290001621147931068531177127696622355184730105847449217409613426082509628004725685337758217151363309009296526731554668737814310441010150359727959686798464972327110991643803124896190103269815908758966288610879826401011710611829913654286776829731128530584456977222397125118046164263993406869093932464757482912592867343591966539560384685897329672418746116064131395240444624216149256360366663931678359274779504501408029363197040468774260129176412190351001225572620686389622675630622186137649439582423464536884365148092725577992916372606914405908906062254582508941444713964043161665811849080521070128320523976272802716371391445403823555765083784976259796042888080451348450199510637349647096016154501996563568947509402704000251220863833308591995930495618901977730292194459293090412607254894061572203078972070815875266502374405939368114367254897522196702790988885888424456538422647820147123943653732084980355516793623054245922555658859704367994448450023933747158582981476438705199742875651305247298366694284302910441886595073205674433968559729405954910611717625609086646652226866614470559250930808452624355675861262245479847507865744582966906621751216138787228864652013625070343316823808840782555369772401274975362141825137980344006948714557733705687997863526446782736876686092505793517672115067082091787952099700679816590555521507283463419092685332771934366088011015520369245639138174078285159459957116917960258126505335287196296792430117040151828706982841262075768115273208746452526749390573481751817727205807656231335508512779730626941138355874143814432920661668628597420748953202092290797155453000516727330583158594816869891581188192927003207875576190916451301216386734729846799905161117079576544638561631762161392054077517016504232415554376277842777573359475706974518459347272352936930877540719689362741138545486073540454705658517638916871307293849703512382946848300195816108356319868965134622228498840385893860535132569386396339726968478276136671951357081476665414028728620123697328310847581714261485970837492233021494824325637512586181454485028544746648494003054441883352412774375551779220894006699867315007912580904896782478746720010312676739152320023321925101608800907608929997478035964876795093946376265662624668573186231361371353716422921389127084897934927238986293020414536867502882263347273887360305016220376659433735618581095943459214949249646444910727912688382843551271986583765128908229956030882828120994107553418858994847207298725510563913748866976481718902212395391978452494799039235046980375933109457315308752306074654505103047778302539909061448352840403463668991088806394631028943192031504286532261974986193041860448434052754812844900665645774174065717363851780435158007247936322653927104591207619884881863451744062671287170924063605406403050267963845508096242933132736324338098443208711369513876853456910090371181869915628182601072705500892656054547158031762425648890568176661913996857108141926220902657528615270100053550785025165494960011666839725450181622463170791481246545070477325103645764435877884541131456594344497872986766048677498539031961517455041093255883626605930140479437574565406226614774396679947919173445223558599408857680829185269888014311425173917080147083977613147278987457991824044412863884024642407447920295226412539300575378144954337946556208999146361216472734614437020400500946860297774430459594011696138107686343179765460235923523080501576577704553699269277090921064717338098640042356889815328427664132951007500070558197204724320791796359788992268096091139282358084032860239709085682540509659720804230054337749633220872362304495363556572879883327639176186469943542366373502653183373858900507651030975726133512160277906205880005864793094049046454800317451326103746654604529346977130725201077128524723056097349016929716923671143339446811597384551092832310929172231931690380847439786786793313245875115984226986688345422377688813132370787036185103327295956547756140257867138139641693985132097978159964141910833631309849904821851965519009932033736748278853387710797296208895020362746985135269080678175290934910090779958037036416443129900563593493109735264549627180448458502328280237343028427825287659088157130672027723670497609072410484933222206549572768521175856513764040913073638277533778648020621549658180519345146578303315719755709875160397331043525602182414518755206024109074062183025931361163178426681901095805810885738163406640076368561665466907208978661661141535647936531456350728945309769858917498730274153532160528133177895229119338372652149571541740630009104817704135464080902247958004001739369836158271798643746823063889556771429953963537845336723198124224409502771533049388257897129392096860295013264376344190693980263915842254760558582255962685026088563652668648078559264553582824079194425295581084427802120787013056208467348387712753390469777167485893190237980268487216468383329618952884255279848745442198161814902874907968992312771014358601791990234851866616644035409055569646479591084589528747639988696467691188587024816459920355283276246419104835267148524789057397152434388919780501253621422126109691019043600465681727418386302230521487598783683646367964592049651136945492711812437872035324164431691337472497782461831671735771886224522728165147283220489260547557401294897749635699736039229971295728722505944054120686306872790677873341376925117405171445836640432698400935326435705028945099799348433158611731137309559728030508977535930772861190797479720286509054833687977522372174168317296728003499192415223266325441877308459569326971978073336435497353837751277225782746048163425467457458883289442145956260382758971089495614220905456032053788027255399432115442748835561032140332783407358083558993907145345673527356912217273606366231819283724604387484868902416378928602091382308209900888283029802798465020866564189945385988530791560680197090424375860068942131917337237544745564686622307548378467056240500090323026339014748109684479838962427433775511492682090574765739721810236469549094808386868453964639095759996011095762511105877374135453551928059934212591584740920771005036564701590946213205337424105430619508624112613930591513919773206453670814896217574712061902390082987500771719055902906698055666102183993369121519342213949808356444405205057620686954791893445922800943649957604653208557958589180220985668021962945294064481542714657739000088408903163158033340926919812285138130855470024323246133729420831633370819186707923851453375489752622966442303607761213480702165499417870879104731140191165149834989214727092658855221125300638476972378685109814510233387306767589580966661107275692903002417426368160129629896780408561750898825858798139196269920153689070325840176626440761233329056939284417159222728882463596860588287334638716140286586267687622273323724170301696211479678830507689695865328181801318009258997300110339942047125215297825346522684471357585322868391615841555143565493405339754359237433691521342206773238017798041962525347338000202715538153711628387450660274380860083886918695082853804692204306146440913822304143852580313659191007700930062726881120046690719516651338327394146521341388332162993016175073982801811654266360481716104264354832914614662319299449411735574967677586889895152047334998426345243145763345205917901602922381481976442815312192171979589984381196783335142443049142613597432510267041310264529510639475186218112477587244349871983147333566317999365628780724287016590039806692878283401176905799089545970371442987714039768812822115960503001051244479728997877142892057059464237153735295131302482355030089792748120083686442087542586580589603784922347095994799553241526035627673235671007542777000138823855086679461035586044565612242597126389806892514585879260134190764823879271426943797079473167638013470207765879163713706331721618461918071084972338106693490727934913489635306004979103324783133174688881631963182608618851791831361533504354128904286683179831006352236555330715990658412047906133178404458899464307144263628958597094101095025988578259839917897105517836050599805563986880937176866324361940781084592517639116513503893898905459902187878054133848998599447972470187064869880223093132887977968484468081697303798913402707814027811961417899661639215014008848952969702181896574228551000989715498430604546080458938825458125409493175401109686104817566616299522315209080671676700759075993327470547522365053353187925414848427295940686771732748508227064609654115048693084110906676462188845201649697255365952084615440247934903375002661505711300233354633842418804583254683501738771645785713640096883630726216281220475355960254569218355169186156580799291073286498963705594978429003801141864512079659176473945417176100233720775414362577168320962153368402493956276408776417609347269281844564550455001858087596005006204735121363135475433846005024755822277418629705244270842158906753730326529577930067961796428858728798694351013497860367983381791714796437498513040308461781879407053852997405472079050954262400356854843285710527988398092853325604201257716367023936072044993485824851348983035459107837172619594751786958110903002227174033463692568502064801073224313684513403207269103741761502328995412217832544040560272399237684171398995549411999493352396264583215929954144565844205797998103103876898324400835550996159270216762133124877442021880290406228697073073298162589751738500441348255774659701601441700423855128286609268165607736261814028790820232965679688628205036643006903469461062289031019068106381637181036018734857845560068811120712257980598409668662472543568555354058615733756329454462089502327020108379030644167065654639421760783098887727228146493661105669672860547376918242280886350343387930512231189971636284804232377107306350146742737915917063200055852965402220274442452776955934128651616768407487264396425711538642677669127454781500507226644334672267332317836738874044930677529074390624921404574203479386414595812471193636114264520516758867511571828085296084802892636758600199415847698560617922299369857039954813455269454078351505196904481778466377660189357765220127326373072504662944371490716534729102890891031272286229508514121482556906453125784335706728656049050882970757142422895270298374388671005492328155267583982243421730218169775765887834898851881525127686073763236808424087331385916639106416984090576512980118761996654123477680974149956211341109552186687248881199020148769357059776819447392432392182457575047885373034211609344965764395602616506831496902597593214526170112473489739198570342409123583331112926858860726748078294177771838614520147882746810195328381545281369250791504005589110851326986114845272761878854637068306242866617009108309763591331431435194282635643674589396125112723809692490762522711854958241354743818215958658330557228557132523154264725586483745550329616868713340432976396986877576929219140531246521248462550609485949004574355261759392043377690961811107729253409188182225859279581780635546451582500871623914510480748092641707947295788713380358811281258027607505731000551461281558819799495701940275990331277750208888777202139147805592961950288258506104862019683440084404412730232652895113327231505845041629452045407954256951806590186453255894260519119336325688711685703896674867052722129130057460764339578965207963924713148196046277527613173522832630187478295484996762037679986290685638736070690481443925277304754024313930026676905562018691053945882318399302468789499022370976583147614421298141507237061201545985919435035801382562010873648797632074109969416302705424542332119344818900532670591883262102520649535110555718039240235883354083228452315883789650217798184642629397719507003877860558669311664995309582193219266680223336505676771625895379810342958223387236767453386999498733390772563959080174678023935847840919469856842250113208652903752481611383458142624319698289381611962715235936924073242379782943332759265828017981123973009881636329995704431092072846046417549176890005055173714594908367822991826692461590879375597253480846106872558338175338405264536459628212792993052685928801217200810553345893360169699417158863342886595758237747890889769032527137087614910525786856709600499624750974618102112288760949378407264611782584254167162579398032497345768859502684475929871101965769794040369084312379000716626986745517529760311936444933641475002201758320326456956612755151374593253305608597003682050087917551043186958463430824718720634369460738524682359204347253263124811355996604717241772852766936475776500391487478396807740415859102740875291502216490404382044194669675724099576495484334690899630647259101426581880333452477164436280391012876046995214903663821944595143355709711796207386063098365346890675411565537801557991722055532890996672312185475525434761040294808497857268867017884024787117344840291417332666256621804654957485969654084726284584299348067729294767168581023219283554263112137215324624295974207110303175675256927351216679445889283977670257820966865371912633787743296016923607138286246966152320977749991512029463604956064277470183546796839173470019782043867716905096164050566239529325755220809224549188931655446957397773729628122627037230461554073446387529040509558150293510462664574313589008359631913961213971768439721116153135362554640587826774875662682857651507444736210166220754969912157703421458212540677259811650641467283306262018149361763742730575505559279463310847907310903520935614091603574865040868418398642061038597340885853828222315789657725033114489112353814774015534103826073245327559232385425312898079661351945791562841533982111193754653291455038813397103120411688208197993798247193627574543429910057711436067362747737159385749414539375227401933995591064870531172445396159383981572765905742402028255542256549524371331425720759286306539252200732826199407712791292577203242702013413922123959128795602703435522640055700107436856476121279103680342877264346214882897652658061601013608961001589576885975094811703976826710964784654656283121080132762032158742449010357440939998886719128030452193474272413489098139218968941738424815522249554767654396039902995704941783221879732744517793484116966168951305559790198977670286215685244676066841161651299661152716176753045851564186157782299554860769067743452488678092776658430521493487588129204904648390468484110598204837233786335031926973934241092176598352313082267261419692240408590719312696054379782842945568660785994860454108037314760216143628153279090313882390250874360105522600560391691735939784967460583946131668421805866545593357415252890275847759807874942977121100775898123718212962888638008526169873804372105832765271146937634451887521809643468771617210058445856683943189036139932934297491495740997906332023567068895435311102722092241922524055861977944354098399267453151615831701594284759101137119484999252353025993381555166530863364971308699234245451944212438302291854096733883053517922697843149804586698866216230840718817811495314020028570824568484455116052680994374317369614251568844927508498650273582580336943091154612690378148284218044189992002357398976490055435689951726964051273023953332266649782505937423372973384943413192607414917967285836289333729609641141602647533251920036087085619625884698877667906969688633975494798390960625586080559432190427266286780507471241708874871197075369942249438035263320367674341113399090869998532239545299270665431633486721738812707729561636697960555607267525184126781498124997503319612701395009931966860183654339259807000274569430633363002910205505655468160920202466837235071456327000059257923841831205056524756355513076675134754462911135598835836626258491417022586862067400051308462210166832836724276461251931077386733267584017719168303415254459414602855774095805033671157945505978126908924025881501032280579405149472007668844798489284703832732563965237229952795080414418116651417170240099586694888647037519082526583553227364910992238425457270488414755152219534300395088620658362601754576459683312336193972808116888809453527329909474739979905175609494411145061659641385957755224947120264725379339433170763027298425005720166126720015885224989105519202856001519500163806961605922577878521719949813770561665237608701369433046461720351235120426889235703972171960761568569861730092916552474679881249760822687786468722597116194595891686052365916910058893756981387972787711984173979982994510879789946680906387058278137495216103069375889352981004128465101305585370580078930088811124378555153428241253334662864757802761363046608315152656007461985762601841409182775555460255933267673936860582684025291991733774911000219334589742157510195465939626733754661119774187191317189837859092160470032848634553764384696893048347967119827976069040844101361388138409764371590694793722290409673553878932647647728368399204454414328626118329410010378721402033204173902083101816318282526927731450753167189861543281178675653142270849943714747930736774587532730703064912418851189920191719181330787720341098230723254352593466686435659441643946226154373697833346953061421088535890882334978872055941270581699040528118445728698923999863292996100538130554221488565476476050091031321768316058342239386968685768324962854015501465400186951207336788198272654136688846534634627780629250116907686050602023929515434994428746484304365254739062911470747958885919832724789706773681613106069671493675028295389417502955215398652155838789564252489427327344498400551584639928660321258263477711209722613077719022761434485305611953877986123134245912461595560522943680721792074618983562039398983853217523066482385498985131023346506384376272492998200349545798077904543161416032134349901534123493131397867695178114660658714144045955654518236118127129148381216532686436587941212525700031150022995935205595966110359781953968477875465905068325124329530384068418662737416068614174429533296488195887969825218010459290628932878363253376127310175199776933325198563188126598263075108371905718427466158699865368523092800195274453954292404590995132720946346328285834909000005668823107238081818731743515736687419522704907498460851694557400789475477262796561321102992290444752963439697289565997638981579561220500852450089732845513823675254916720747438304418591270988883755512362501786806747824614139154639394302520961729810541618173068383406308500280024826958252268332112639486548281205762081832210987458784121749955491598106258922830961829191401570260425617027490089982193864136487086401667285370409324816248075406429848216480421849651597813692862970904677024097299518785542934947478173538409700274329362455041291611142132168712201072457873861489865682445566647292846141984356335548686296030403205646536414817349680052173611070487080620935467828509138304949008035292457934640754948278225528411447918713240821725612285454894364091526386723204565696185963564114068459404253174944115647593280503663308856867400740777562556088493756012672680636852019939325424549158718832471804395212707189100989300028772500142868577190464063971354603763430047855586035813678105988148599953761682357200420222370727450333952617121970332568965315251204904476595358871929546283729185133513334421542545350319882673348386899132384002589953971012348474723149492654955617490429562750881725979367544922899846503849066130107676811434155033418385731459411873194471850211916859882222120466304031036727786527154770010101302146516368805162557538774927708846740293276329112719314833134192468988267249670532791733074583008326976817910996495506013033803929664237412255415506419245819194300680357367283331614404281148886479218827882005221992136427615180357769047261858344190753076388636582991747030222115448592534361217979134821965308834192092066803995626378258235601162344241832933591252606823577763715347631745835715131877612407331528587626343658489555472108756781000647385055637838640973789384915249612619565111810046615211431048569520385854860615289968645699695019234956187515249270781648965102648989913197504658971556153517191841037519159465596489324562332088232907691512759852589352000608500651955462798656097524560411441149961802545699409365413059612210042670057148194445319543121050056122555972701639051935435745967232520903342132348165049918524854258291634899850432674502736847478431302512737229310124503439809451104583380979231092467643063358812277897425274773093718761296705965056542098123017668699147492936752728854332814072438134664185400339309135619749161410470895938159028415823043208760391563427285850567211085421741485210649843336964130517970517800816880116315040096300772538066941453195495843374577081609730445826662605705910611315010835609920775865293699746770162013764649146101777727651575589964772498563778631176384358327159553708088984221642817162453092053163181897853029608538814644174333237061196732674464377967487379697263202971550259986022884613547217880584424975713213724051942920497027900737012160640500427471039493015868784452505523483140025324617334467143748014791648131452729736852280079152176320007504643223657710092984724491445336296110738173216901436202253911273878472693594615276378487287703136389924613398090804326020095399827547483520955311495593790167936222098447732499569743950907676138964447385833573623663569630574432389882481896256111297883348969325000265950941196308643445167560747392167913135245065630694636604484603544721839092958910522716042796530245878351236842620344829688754364234688272802747307388491471996074041713300612985353645425534983526949531949325880934656126424113165174068193801257185503062159607305307048722934640692168491862369874458332178080961839348936685918538748561445631503503864569737090740792216736491215422434450249852663604866074884454042678869123042174805762821377381851643145357327543300601033572004690871713313629341302402714146183087033307074636266511227997679409164061151216549652413513918857930986088302353962673657270984033266615686673816156553981084252918811112391066433629366761317916413741374640611179534020713429341275014663654284727581972362016266115360056219194521760957772845006634542498070346045212684587813035144624181111437339662965504013577127434092467062003176964560476084378372969277256706097586593567900879739776548558228682194457841658416725121812923585888366278304252704521430442269355601064400234512976263396073695359168634406433778728666575023221505461879494414120306338071800771058794224911632211270830024915572979019912164094137328272256205502401546985484255343361671441441952575962349212071538499814671171535978712417773614625144308705109054380179162870579040407776631104464372848443260805448581348490941988402591856139987992522837848396251632849648204615910793973232905545777683505514467487876323705867744540009760062152436512018058067386561404492799681654357032245945043469372273023931617293958042977663853189689989775530853384459671644614723162017328989523824736027535621735299589202257520327038579077149391677006277093772387752236829490033782668158409616843665587097670578461207606996136237725136727208454046777171545427069411718467437130768675756079932013083526218435266812061116294871079293641649168057983127755848924139360466896405142306964343242534976737070106817657829956872341576663302067865893936221494037701263160984380578439048123526348758800560143004708134980137249662419569157328104041945083132159306163501761583169615013385096752357554859830512683252500255049378160668100141447496034813445688266869649637408150884553393192627416698754128862426400211115785625738961331390554313122385235146808681316388063861499780863430675267171379285063601012158326705814235947098574375099907090725480874498567672389020739204740196084531143596227531555744892939431638622739422088299948326151570090938701869034239085073834790388047693854105317829074427123503511443961920053804359295879727494353129372718033660537506394218271263415526871267023723998365939223677591257495670202982108718741673210979898317125904767574995892188097387764955141670013201400962182464909027304137384097520261681323542289684692156686071299963411447351278020724102096348234842943323523648034912955576615883821463824811149647977791760429698969880033347795060373722345052430211074925545322941350246622192010725819668649123925371362934864404816112316603302574631354365057882491278791234516908750056479148883692388067057887014284563839807901453696337062362044920035790029038169107367157382572516400326442490348157011914446513849199739997566928077581681263265392446214556985915379329477493367288513635576173559735766884372854877056626185087797093518621460269422992558668872332277706583462267605359800095862181878627416407243478326720659966032970862113437546740095035529768280542217535549721698571121689661812537623563102886333654783286080097031810135298813686537162125274058662034380553451578557808457001176848577797619301202282143200485432455911584509280816337117953088273760203928883360179981973381253039024488029487306057227696992300493151543227090436908087224412212825122462708612579399374996421143301176761633077063987934377066630156325075873199960600012978621550268547175771721353343072988128512257659633273627432710220902566386375518641411482088356532707829293765913341547630310359857560328706321429895863318804545739143328524479956844775185623930704673462051456002178843088741242394435836618779381040195775011550859187063561021056165533826918123463837120625941789895416017104057867077085202841440574557435575385942558874203300445622174730394168105352269621463337597095795374003422942811491951838218999302144983708660781894421864090846315928281571199361564080395662924929237287715484688278661300853880934443807250158374971464236577507486553798748001868107725914678527107746082702375823155210695371523731832141907085177388050923272810086156299878298780846979564274110073200018692563301033523116493408525314421326469171474066985996032294392222860931095218233492750177331688334296256923987775266005461475722115684205988937277350382558696279014809715891169283641801467598470308805680560673358066772386175591825864285535288833897915718774091235039746777701913435255479336161947994979915084082500958862789543364322067882316443860528246012071990820179316697586510768512955289275208062025409027183199800682857517782896341535755072386126686931192143034177158146569564021502820109854646812749262834252750027852483894495761843869214529766607484477422929158076407316522767601962147526257964857301585081269179563108504128361445159540617920614578391675702979529215018190072675291220395158246360170537190507568282598434097678687969893241962459750212882860378339710030960238011753309677369039405853374447262543635433682945413622156209638061059294740848053276937158235353129950660392027086330015401225576878024535381530858457079774720468125475374246584872356498466535646923956017478514028518150120292849856307611505389504524454468380610629338520772765849684294110967340617611763850672209974158424097086161361786256875483796360401668003167673440603126927794223923012172764012856407947109986194583087636802925523437287801394940425539349961906933882476335307767262450318051726441317850062138766438238814707021252827850344254511126301013972772856342924307554512718658298723875430071657861750651306885452734279934619070456100055626182835663455339769216915135611619513278140456242510320492503250065965392984680213734321216535522840762428919700678854514170707332218349420659590857889849391002997325757225871703305564270642939071765705455109961612671600823258464453475139822969052880830195668338766068429865634695780696741722922285891794160516997970366576096634118885621871201162096453881945011327934196479821661173305033011962707238622870314498132158397434883046815251419072869564268944406730917765243686037209312775638756001189900046951745984373216999953005367037463981047120601347930255759944720427034331224654536890995692053923104016472698858657038445185229093488038119174164792121415071115295727454924588963996023057602122534169754806929129258617058235878413563154070307741738604566374442467451359061466731746780503660356693637944793225123773854453976470563028159643999946601214802474349241781211289396115248149330272603321480563827101970650411055540891124941176032815101702800087827762927501713369689291631755665023926684031155503533685756330943765875510610208549861529699059838193097728952947495415183419283361019700792205152780198492929294310787981809966305103078609022594521256478334461524213623547115893571021391283848908580524473003593439517313399721873208222729139424163185301701949773052225205048063393886884558240650810134376306362206503822011275064420764860906567368645270420239239182256562467284337503929160071175977016226938049971685322585864748686343139225123725103521980661194351685202479632640341753540789308074508511073812351473825729031836659554794247508086680109339287143907133823756392376406371912811902375702589427270645216152491357161961393856722097984486090113647997229851177428477651910107664415555089765306131304405141036601216891218766241705138935542942063494235607913235265250527851459693560636569968282949541398852798366720723196605535560746372757337185629618889064754894758978672170209248428512397036045980539356744526471167233529959941171382188528741043920335977695152696437493321223067401251148106304234446230017976960287932400083274680152004378435076910524217998858279837137771549324227688595252439052444170699189154585448795647061182841046989064660618446365906348027045275527533525579887697804160038204614396180720079557832854964969007502854882778595734110686074590036459197771871662955851409841347166050493969553335154459396439714325817464911665610771101771960096390071932587090197181902856696971102463537546115181184248771569629954408148661157780801595175518584424753478773769269463473480796799313015139178552813807134866932264898475369204790180569098191083271085428075989533871675958874478749868875103902117074995714046104362038465235524873481579330054659707761304069354787618096254530123206278001372354498697571947056613487925299832648009513640121128701334602339309488024926434065546947308928328807084608040968646539391691463047709136803192546530525072616424148750193768647757914560826701317584898499906502622833603496640308862821671463241381366490660958316160013569977350975529959238993185845528241826905874623989319699476964616432619664035772209163882730068296520175570924314592470982201663143219445583417788378835590465901252636580330815496524364015670831824566990811832353373612161274853952439906282770002907157633231329442548586735616788916135505103555781720160702275113839184897960152675666155067254947379141244381941288114315380529445613965483784917358202780078512998533273058432779528734407640685462866510425337751724019597387430286705598206642596629899769382399645521360553693678843891694604016127379111239392145760871009678352700381190275626850269180830158606269411994141198871113781649082117994764071201120324125744451279057809107918358999322881526405532132603938717093302366951086118119685893568938227054637860442082381405598197869138503944901252840786980207160075238269932974992536601709139251156248335106193382833457646896502624643377703741059896351267923344533284559615543480792224672504053883724931531060762071498056185574802009530216605423872391305521732688756198870750983150886617493380216736264801773247118915927150654535530608937702228305349620735095453279659409481532042580055614944331708789778420500155419485918273178649981485917871746396056077266890582568440674304525743753432685642900019797012868739085198212939538101541255481117444430932380079156271864124452502096248501901107729344909291737007869806647795990883899077055469927719063911720297284961073765776603751146937866084655875689862925888863091107559051781270680105698911329262146010714280391405095798806843280116635397546771483051557371568879756898089205096248375181041054551151697573378054203488627046589087089202533513913099472197180470097647232958613675287323192534717347050571841648274157169159640886423575889935355181346031892972526876411579007485628810404259765149342954050879026459709222855123002473514154494305048780665163131915268771976146894035822351063330250410680964124407264293891851511822025866629222663714663861896663252687142999404319559585626483605455137277284604453684813495186064518062507209863374203093221616759132279374035582229416853670248648323816977916830744452031453985123217937366207661394298457200779732512077416446118027339763472790821517529798743624187647945941656889239597716734208660516686903292695866652603856814851936927558821547933751410240548204075357524702111061482318140082031184287853768859984727226287922757172618559112063943006603339955873237264263715783666214718788624241745485234270099234252917227665214714684126065137241511514408053237456078467847590900603682201550997664044568542200072040844942512905500039719811752659663870167209451893510677383593446366356949459014464549549673554784685323336832903367658569412721265592804190127095104476424182786980990898460180704376620918665209512493957404439786991080457259580747882445399383566455554288635757472168776833645349676290005830395042577542610668437330669040039424025126257149880299586015866102330536257731606075066735694282803559066481284016380305857841005832784717964383160929922302152598527265307346701136979879708541358455605355876552981544802619256332589201847627610490878051231063351724804429140532011183810341203225566892500392714496204432693407702256155951695388930383152613044797134347512322027504292937220815572627452354091755099157801177575183768608367094658830880766077297227523374003178543769791966015391838783694420713898886071323996531888837530577072884007820526733794046856969670513702154431476022299848055864503774433707606633512287963271652892148963750882428008536020706051667286592367273244955441802682482216002726411346506169417434085569062350348630064493809883832183172668056560959386657574523601871691264610071381763492875617970305315213009519910158559299229886038152755046733181092746286568849914037953432469204653679887466450602105825246597080600165826347024691092649740547843291385093653755806293245880233116193400508539579537812703830347450312588978681419083048865781485029868910258196674745332026914629763693372615682033767023954994322364012829024017274130945425036980911658605907014383532799764693726334128877230410220057651862156369843628027584911843290274671651592379361070603339387760485688758632294261735303874754859537866735033203181907330353306711640025680443337105010887623176758144231280997056927467196441017638521441879145163796295355669046709103661253239311023513174021819712235709984949892101152579484709003155678626904146200126734551377866261732807201659350657377260405222020838577785765328936834753170634943603741496253193763606074922960233245849576133097303366733904188713699525012588500961806951217118602703967824789406094822148035180911944277989831642406302514957913135117983512550954786585645117662824738870441848586594433316392598870871110609250843884868796605060616625655827130637795490383455859975176677777458037626012838371092707867402613582785428504508538545652606665762166676351781463361473723544538759363359550524381496210239388798580954588051957103723088065303302374702509868464968251887081271332134022427918017133800166615060783416968028801744570628291534708101819167268242655092403243633060850904187457718528014830878450906131495332982462484390920950979612221646970749295104612074552464925496771170398998211377707239061419625153982526245344885510859337128639396315944944455676266400636940220845683857208191495546668802271867572580803003818991856191594118344725641648195254902237948394827149991185949604323633707853869435671049873264828788467858653598435000592101418484180482605745842480473155998988748428056895095263005140148278022699529755236138152990025313197096269619238867245094718106808776999171617683869000757281817893390350333711362221598714789777593204145407919830113153983156062991508448215727043747079554298980859063434341848706572472667478623028900548885603104485736722782404447459727173894892073304333041501574410598203992939036041994371583799648534197488796652681161634820020650626370529116191889845814643068093427410398360639676126499470329816192102836472964669941901922871627863956196721030985604995078193152852003452233129829385057055180968008959460059548585923265662677590017206540174729028407410658863891723423939260412177034963098711082300272424229605829079118612329931700448406122027927081300449680996536888277502195372734097731075045735881631269523747842237990112143738322238310840408268275820608826390203403594593068096188649113835298993869884278378980421851599503634496177602591009951541164456438942085636966652583140450218853326610113503245596331442239302529414965006384691764575627726663153757537965061505676523954887607400371427169032812366981366176763391538556095700553858813037701319600510877105027656307612675449015993276541275947913000242109421596185872905150588693870191818847272422626404958769591083447939963131823077167056817484196886698444753950567200307706853194413766609347677173601029477441076563794832954731775693850286507184475172896967134843774001960929641909205421321340263745017675557102486439634672018550195270933239252017236485001097104366675242727656179076964365769967533474328891784386769823410947459468884294007051469717415702544227269866773234635941749268864327492128634377169157176064801508100145021753523185771123565216833647045784267565755438165160863691939823370413909922027500559113554808439866859341211293662325515535666460409652945416966231257000187495725842770822893730572431918978960261594365391582697065328976602586059650185774321596053564744660649961273343603752812632157704763619915157285658744538688666541249568006708531620130049574846429248799044484854188862816740610986432983087296871104667392299530365281275167029594843606119653085438481838351153360327040448535222535894289861961695551205810992748922476575194770202131577301766786312786928363351989133488619388887762552269151278860650208175244474988757079118533030592844581229636314665812350143849426660992552926082411808311089634730324034667840866921376445212680017941661903854179333835853272788974298990887965725111378716962454194545430118578074525551271718728061133262656386744033446892542296398040061802692300685987720755034575891758812755144252336855214927181095615365260833589722644525177944120808511264326702916133546156115953674720427869022074515412498434436581784126135543317059147250656003285252094473029782068048484183224835947681967060644690306234924571518243461419306776938630084592997186736879463981543618639772860182064322615039867427122456451082382835095739628818576039924476037567686973110928538985609511198087262591779520227518408100278104033310851743106161792016036777734052582435081215194460383693737587973745154065366808211681006432095139147608432110807060950724885754976870640018068741674706996165871203556807520436032130602212919146624143433881924578292189327012230362562591751683403377628935251078551275389836882298058748012934468452521170841903460933688361979261362554780583899451384360709007801423499913389935229832304337591707883995202565000544093960788306142769875272301488929514245850492941640925960944740438265898004064881608929597698433355841967438408363386246052722915783341648013349100876799544342546888628150875699166676866847817738847597107726816607029621393063214911172818563756573805613695715661895755255084507642258094925827451084834605863962452903179049650105434918192285860682053852412661597192939356241732652244805137273497047375046721815683275491239389262506001044347717050548553145829801623443663225102634652348723213908214512070122204876417581307563915223640265633463505618141971986875321541689701389829372736608305149337932869726590477340759259842774184445662633419000128501049396571508955246194104309943540285584063378803576438717657310067710169890392000803006386597741945598762606729675764112554658608035087750969954792876042095819969506208118726116892370703035020977290232526430327002357920601148918898135125833389847362603414581202567412836868141031497322061052030575807991348687682496149446146785817666940072067993968529278691316928842839255218272870634230632150853590206254767924038065903561121497844592989701952921478618416317735010904902135468061286558942006702042380522757859304395022022397682368615977951453790545433454487572831680820810107271492653990747146895152012787276512182911211650095217956752940176788620997314560047311884493332485619617041187416750584809258827982730649813657339281271583228057186008897818455527393377189641338677727871583055691619631911695056541064254374093681060157787114244766758773463300332252952111241373559054199078394669737319474969902037990990002890718577693523963661796479767175776949027619507375823472826667634331636475815656345557207924249313854382782989574749499746234002171290739625582760418913281091719662405132313593831810271130214043026996661556221311793439381046866914402940530507826391161489805670550065581511877950760777194946884741936921619893203131637850368698427335365963773249429054554316942066896403906389871103663301454553151944984039576846162536639031555117997430316423174444572238979174240351815747851925870317891204345316757426387518798917492916316382829620714727267138203506186623768287836233274185688798755199021930755817154773908006268480844759136208885389074920304770846444838809049636167995108863573438835341873631502140257500773312586392761161866330027174864926048436824078620226674697254196146868252513739835824649957843770675877013488576030915528228612238991375212171267217549124294622167497658519072335030385656478925789997029133812116642531312391065825385381899148863603426530610379758762069315238778267292983596721172888440248765070006591813230752651705505187874845368754372149001773106156918995256390847717325209270435271135632342015277731140120626945322248217992383768067344761753275824152670933574942293673209146726857711360788127672312645610200287789403724267865850472346801013436654292181016201820658375388684807954792195519433817171937234397448256144048247064526463964152465605262168955203063091092654852128701103927116474368421488092324800829267704825401615296571685550038963100226331288987209291145143978453428789234884103113169475340454708622342479596502023072426853348501096190751553048155247915980373963452274210590931172581978356972619259087367343592497665359971673144538236794021694994315391640979411071793853788966066081628049590842163851767804475360987320067461865968827383702930504107504109082181422209739072837798938959305154993990000350772289594498989471910498380718004346975930652552108499880992110814112695311689011287902706491000166841867584041822508392796623922656304026356032828561412609812651799062271528238064669648977208693299541531332562439211734223940670929724853702831151647537704344802532646678543670848075668374402406972293471569930508433698158573789441683141933657362254408628203560173843051147047939220653058664290128245932863486798710256620600409386361371995854330494819131339737310211110017762598233040612692149692160387612505298959668776762724138376214325264418392687621164664063142493967839568128720116368737862554234741698466096016135980603410811053411436893778848895355938652937213939456120183570931701111604702800956222689987715589735774033686680717156748114755281912824259620511454834118824387843822581220807122809339347267828994533630968968295256079645726374003324194216689064459349611926294416894318848695636268930835550071177247758889623360830626640004758174863385076799227565197393371041118834699671471889776752276450487662834497988496755002199791470532184347743221029731490046310906861716618326393182983170280668523219518630676493400674863774465543656314766542912409958672273439047520077732252022371712591625644442012174196909804896134671575616859397394348110323466376118694847189514730158958378587828260318701421511272403666090277893529992776997962654394225981043242343792786581453355048448837886551552035362398925289055962617114810642164411908037993564888183873898180732489466787710278292095288656251228106926927263979489746991881701711149560798877221742466568272163015425925994907946559734833127345664482201835699606705537548198002708910877924429878841947173014504264940424312126480337678485026703001562625117090272063167634697890302315029771427053704944774552584888468939764131537203898605689157272231145306818237949991315490284654734418112526542578479401315612641797728032002345724533407129717385612377459151927441225015022955639137128799113695022683492815462181983150963642603361007647716217505957940540423103298593065759623508670056162477983702814708882018072800495101927692360573471395491104434499322896429774260962908801679537035910676956402433573012603811326598376299639310811979363981449746460134721218027400180851758229984498146055110354932569112257817678199968390111497471211115187358512989448217168523604300957261306167924739342621310835472834293969267778548097986972754965526038354739211887960476686398489795575321541913588587435037260743086780440126413931202697893199366575052057980533428134696201687900939227171912010833974857602706369702187457474494977345052713013184358559427095207263808048541601910098929400994045461708498396078202198090359030651802831431487687883424199901390591845232594859740785998454348509269216647891089540517078635783955192015269370296510553878451570283522346472593837169140508090701358852874276328525006802860287966108507770118606834230313291288744730563550402205955683574314439372031291039831341219279304538117574210765748900501132609669635230419163975045031220269147574987101964835266913060062569702942888417961543926318334125000375910302082824152387289950846620041488265916839728296674045061897573033325612925477153564888775098695238940466058721025997142663517445390050123799422639787087246799100165904619806952040043998116425776528927838060363887424502894016197639701838507241012017796632805862879503263935379151980864947431073738208611204870545129912348648496370268016416580272057288279971036269117827905927605693522548540267611324401895463362185143044237596521402872556513917263587509841946553063325598322166487153884433382054446498051214874707203067567629602866291916766483820722688809598746348260080981716750526015714538084638728650103099335301255818555310635948609970950483891383939376439923587453614318237549820230522798890257884079207723591373401042593978264877112202687075360359498373753566658591379714353785342024271658457488130894323718470130201600315633927770624562647658853047870923373199498290338793685694302999964142454380115804885470319036651213434766936271909985015579944588392602589117052593122864980934476546263885138646817805782818522165654282712133327073762099197681609960254342315773041732736197128808172455787767356202337529704064262678373570925787573713688983192734605920674728899858758877486521983581505556536153502033119257289513710911503927571277971950904174725997087878527969709100157006606924592724200193504197450634256807048908602043967993295082867509071176429049018394878551707339598676724958272901794737519640299341980906556997432424515789280727549121615661127997956581204101859883053623462751320307477164669872813782967890581881661103086477731681317270694477733345299706613656213968240708292891551763927732246303776367301379580289269123127857696497267477474135192167711617748964048874873709171015957127031945299540809511872127634618483154982354047937602017876157372405417898006798496285114097553050891055688792882667036464474641819631386275505795565138678738807543905830718677301430457677934143919923426152572502125233045031616675650575549994909802664767698924119267580956509707642189377597339181505033902263423218745259801328647553269555597711861291212005117700679910076026082517418088845229031173733791435775298295637457133510958463678692188415781085688622795143287637021739076237402763096723024860599652382473062076733265904692715897777068864579793324293644693767602136879944605950531481787715254539841656159370851984171581357877625262152612475792077121028524997568737048874757403235057734175191115849202672856220235059407412297155208908811466980480163545583853434090924114389326994642229389592164915795572950669345358587541545295732032711570883340684836448571187134097379163430052566499301108275636054504597164156213939756429637604184891929557835929458984898435973624982226900623379148265082100537340146788877121896314432854565102815479859934473751084738480195625627047761270707836375282442614845283290556518103185310789820953833014064299909674870980139945393776397439485756204596112149436411558791923324625899225918452376203651485938723586216863651410523101433153507823580815814326794610821761397091743920520711034511104123155192822182115341894291636085811499035919101777039318683391742366985419875173743704589315459893131545144932058466261710108583324909582543061965611845231793773645230538719579336990382073043233440620466711354815586550211737036812459893583474831150001367917171069511239845880352517306216690772020192493080829428910732445386036344235741731423193874765411875636514126773158176332770528293034648292745294165873904316365187647701420075947613177737490393487707508926820951884740393752838971351909006440777973543128082140711116123802965959046619337279774475120925792131511461078183397307070077398207533599391574636106387223765518864994139496368805864031454359070106099285803407246362424846751009862825774017382784885633117171463687443522500950669255921387683131411047691215653788603656167760667365165816219714884850617691454154458718625561321905639493793092930539601649711687615622890104817703054387702458841404162039511264426572919302402347864064882687869267871467709376998774684329882750909034867080836455715860766219883909453835579667554614811040271796173142084189190952232713036964812517348673813122868116888494892621588339774852209038809218226123904049408389498260287463120362331674384637447026053476598569911402748843610399142589670828681872917639507318939869506092089446228953318119866163627113016052411801198265441141971264216907642381399254973869675577469519604850902637343954859972353548960343447097595522448519541778231550310797798354260077196295443686057676184579961043984344572358971307564727935611982183823760691953535644919892213567479848633064801302802465868721418373016376575356134826871019757193282301841016357189147378859059713491823173582878130765467348007827394592379116971303494616018923136880195436636070070839047157442552856109382027846417440932295916729622207185876534163205601810420897430239706912116438838106085142613012237865545364534928151394543761123709586112287391284149001054198369444578090184237557136332651867192947660442181920065956652920162005956783368008978629486406609112220907391347445253235319616489801493307834626805149420352017235902957781827422546697450259423651253675859311916092662789592149198063813255073256730414779323376751448024841516786742208551791016934428615449827818994364905389235185276467629779533220374470117152254553649087628610630721990461764568002389576763693458417404410768486926960729587925515973845265820465805805728032628508873507914874031545770610235221189128803641994321965045472147712721411463077773816449096731937638212561851494507783125783269186276923287763111243374842616668053617930851114876102308383371877130128725515941186605047777729726159771664618106804372492703471270135915207159118138768250013810629314949635856767406498664768986978474523801224517113576766903023235733562325208126858270682151181607119766408278288412115287114177205128770729045694699896930997260994596886807543681219145771163584954027238728034160015209891637524537493197512897712102928236135218528349208875924582935181614642703318388036173933697952410317663492107920251102809709206349687701339162610090196001073760137332842965904240770123431125749065626510949418331543399888350635038724349804541608052874770643768216749646549213560051841432684412317150426185086246759531355491546220220739852894008639951675328671406710017124711330202110359094006025851040769493284467969289411248957526674974596536373432370173937087528390086956525857940761157108959403170059408157683043172422420575948871837990809911024040050295629081013821420142793467672461033656693777709906538471607715808933012155617468575742489723758474302295173895406779418755329914749641497369932493275457465563460235671828249319908099043473176415713274126876631728332207597123326229264020438393103109747738140212606064797988166052084814653866722630153966783871101836593690825037271992307482720142382911584199720092962353069570318502800656713180641551594450219144764316291156365889467331464165652332293969772507971459615115920377756965848230941846845031804290764855450668754812903465044855393765120671468067045857929972845470535665331374043386793098066580079794186491180826123486103160269410206186556990787175582311428690181157704328979368040895587562003390611624801587445387868197943353177270157828398939665828913944153637794952659492519038998442974071424825927292052378289692314451061750733647487527007597444024104048321931793508702431307195413854131754576473133983640723521366028659816201138765474809322329399096810027853118860208915670679714413111906530364268344427146590826336614432360488004712809878236392869936381166236770613637851562579830616309884819335977152300385557724484244564697917650098277497402438140265688528945211818223422853675303532217922332055419913118279321290703499068911983968342992194862476918797369272735405981141533837722294208784070213005175841697233086258472650838181394601361215285157002722831035318501144947384471726663880972028700592096758207794203859552042011668555342448353727746997438213571119723573092863187714747131853787566951247288955636968029666165237542977508875554675065022857526368298403431725781913037632834132504223631984547490973333569248786284271311976988822323614151089681042994211595750063501375087327748633631709562092787926751735166561688921349013059930904790882272746444997705476430816370641386718625549051804343261183571329785788673426825429168238163604962550311357321537730425675636503659098033484374373602816763975572161458526226277116845597276835887178286776663688072057241593764648223582909906430776187026643172297195746038564318999220321340893740766371645010592572806459490389024850342171721919687803344956219967314758913749788057175902954056477813545588914816439270738536217828478186346232317608590284389356016885372782004060897391939425399711093968507608976576206724408334798306742378037940517809692474704833033695948021796509395039522938615857127827276095090537386057129520937604514772502580445073695629225198417189402414626838832413142204287669183318713854051945709528143533089016567534337845869725245765229784183636075764232817521023516968480846701766061179713002214579828233974827299740668425921578685348856508390502602087048970674293163332536786367861146037690690084181540272114528834583878872610574777528859884731988413326248478557648352653565910633766478045890068830035664108764632787411361194519702398031267383269025262996771917321241974229617347532458738734118772107239428556417443118953396521323936179171257105668748444302336037972567463710833336188504747470313244744724381090465999250511728290390474474897131053199535228972581502460551063835350266939044272172299664008687566414137737363344747373126922935244300799224578954617758504209524501478751704702492096225457755217811766831596813191981914394970721038391651361950817173448136378235790970413331852182157060913136182142479894078832416308620993075480167857719235044184985445277299490404427806230711469511430784217792747947432133142902226386200601551682459011940259158569402648156056648553850105510616039072952370677851781089706311512598542390336536736990541929828509036504679573325112630569394771493570194325586320265480628000401348286088630607734323992249623879165561474121362232807032360113190090417029615444102604627466982805337233502043716487324607641371064721329524304118985094605952981769718240748473926460237193743909912578861642898996970050682509644559540932951337441535507565482864120339979201794490978204452564204426732137855770342505323407238326882842939427705271381344792040898168655952750520930857957960632484181651154350549768894642112359840562166091983365301155258413605187132548769300307608237374147361272039838116428913083695486424483580809881797723688507625541019210704934923859222706601982264415846425769545621528153490976673918284928022598641883307864088772568894550722417728856130457218848684893801569380589881538717334614301102834306508345674075007285739309626160511662727612858549415199008337294408844453645489603023479836297505167266124274780072000888665662125542905022281671964536652084838446733409335749424376117255167704749251243437449845589148338882789682722387108139390152268165489618439596546050274593113649992185792672482299120746438160877854370148487976393563046655659300954868533238318615717477739263171098690673712501345835391213543962683336638875273627197190165884776639149198723903389892315859864359948223495000275648385088048340878196723955635428701250280183443831250416852222591848238687749391007232339794164820655292204739121751279668420318571265620486977685273388801685416411746942106521117977828130416481253929285025164073898354458819505111341005696234719453792338409480171770617497323865559134691320579615690105952292143688973298096550193318507584184282707014546345282146216654041968646302448074101584010154153170348163319811325509028870554021051939205688598556356003778064232902050535089771567256579435714725931211851843295301451805487053672564434436753435857711272059248868740301593138829303997174050260841463212489299407952094379205092363874604351811596765164694478780095607459066650443520239449721679714879559520063570095241480162278217496207827156397509953874013584117339726751475320343263051047888205236116032432221465157492769028904411681692765104371777903350733732052848712039633064242609013050768913739318174980967645057820643422537213417971771774983735391936045087035875638724454226758491399657737386653481188779452593978083350456274672807411806805807552644774241421450941862505261923521339960407600043369586213208370555526065967731173778570218660828256795635876866309561147926550206996623673974702216124729116919408811155272822912378462309840225392997075400449904422034116149293577981360177242680668923763624184933976845147140665702327019408178285732106485917870345952966829930833626444110732938446090477394916373497958537020180294218137375659522969533473155010108762534142351333586837438632735498569301248527249213166536705313070127480883606024538538727074262194250437477040982881819428466283702434444197666706803862268377524711077064026019104943877924573619981094331151099768303164131230360605678376530787300838124491494536339935219965341875816210271773753237274657152644970697609602815445153856197863068377519508584086961603881703782426615004345372154854122341974372311961182559586467989091206798863195220038311530083389341175611137569867313905525745076698072240213869954575369616080169799676795786191213886497056412305498807715620359380243881533979852923504293711488152772828507036343849371529419764861780258115553694883529560657047624616984682310417640412873823152621181733799978424016712719932107089462984945023065898431254397887787795502088843996219139229570341067790504785094487562829459867703766318915760930334778118285985106465009168116711030244268388379457696982234468182796875481898530903381104053714782790491204589801950982865705065340363947399700927515854055698175656046426634408238277581650523903444967483991143056500180655933778074070392428314213538640779325508037920409867697683499551653515159773006464938626115045791779900290673266680291619646961847019894293607304285457419589698665696483389851804950242671206947751043332465920851904361743797777094675911949569781835897676398631577950054896460443604621707525382538026978759593917539948966043842661586045095576583266061769894380205640276437096265412518027910859676273785338730602970721719203937021901942333125578155673118704255918543943060532225624631235467718671211873607339860852884142595544794332315249992195401611606949791656761012118619818051496969139563741255409845510012986544393011282326981039550973000605088063679187149560863651741794789127810211859889245106098328539944997884881233801867940665609593550523048518895418378648621265818725516185599602084538767389574528679167708020008390281007671451683405238720888322310026451622707130662040081807988077047395816427700861374869692972869801719378837757222663476308091623244096373747229424324499803715218809346889886843223341011812451150261813639352137292808528694452794413753518930160844727612319238816657079241259290071647762331820969625855871689395285502945993796989912822863896680532485552240741958904186139110311625423811186401861895958740483815224844106626057925165662150234560210750541980497306255214043670697127648639916733353538335663407458538982577457170747233741511366125373582154889030545426045391864769822006066813972249834207761931697010076644581899415712651796314456594622440358181893793353272164808602710798642328202212072463693676864109629403142772077753940174066891015533301173920139037047227004359642067201255435091453290509561427105542565497840954214256280547293652218780900365048003065499202648873124299645171731181312307683580368147922107421454337930965311338792039683656929551007093001497711193865457754799293800495168852442393996837890421514888004020973453679352582838600367082540151647352432346879944231861263511445904043082831975160193229179551103836394669751865466868149843807053369216963390769949599786359961806277857701885409554173951138303633808717658204711028602945702329451295769558917223290603120670487785057938246239621190736087087958643149041987975776473374822263208624270526702215705460995950668376092726242877668731795220013433167821597823864495292707884477509804732973848780238338776301672100679371979939746808713024691597247409572969370161537608493990447126330621604139260226881128192802620804984422084256528740218247458700901323210616859371195964653261064257786356449596120105561463494552602971852545772098530365857158911738192515581074193112880091103422784320748721631279120822759682748137258863439005180679508972997175697787722892238227324822598100159028253021531194366950664077617211497306015921279121256162474982453454591796820267969368594314224385268691248234652351397947779974081210181488720616484448140255562995009748590406908776324368867189573843058353727188675714665168762555495031072800658731927386528328750884539895037154085164021015777139156100591156927478523638394594249440713355521902732419662369539029205997465355571867780991718207813171230507159442171860660561647715407248365394075349836044519898786952547389433979242557625929939831716760409533175561623431454416124985926170329127654153085412017034263114779297394947375409641927813584871511679368307808445297259341172345006003496804264048095779019086657323677778555823658520147691380691966269397574296168116875143880534894304591679991356736830923385002311059748448644663298575680668189773319244674469277677049801383110772147601629769372634591127924025498697675179158763949960035905199628965518604444505681634507413890743681372710459485550605025090589877193366882176666790380333619763522826658266732476394562159955178602937550137376467927233811921312405315902933919629224597288061961339242045890284199395764261735518848346242022682486282426723033002015986848463850970593029374942073635017777874419302127746575800426194302355540493019030659385891588982868323090475948056649348028508315879239970334226416614684173219137533648703883311828861450117645317589402463360697703914523447961249124142537420241443350490156435300940009623874998153422426823219460299422652990361881957668289595727810122703271928577602646693260197649192388593029706898983416443434323314592945131293960857386605609247448542069367430848963932506291725990759549944701675002658732849926703180724300851556973479697509479926341920474883807150144310922423831116832990108915954086779225334990263126176102950181939851982472705946745194517790791127476615597952790970389192130316584577910365737230100030126290148812171293566316295110728848191011235730622815831912867148056824017330841652529378672750824964852492600133637452663506290503104037450411447184769785072023075309973064958849089197149580437394596926954982107427781363334632649570488129512435483715761385265398611799887287762230475280752807131750049002405856017737437822568856968447927194801167397092208130794891024545084222490472168239572313282379664949528916451581383906879988081397332312403587898558972158399428390532100641847011655242501771894301399991253346789547967714641876665755592667472659646382599982912360966834323730149765340409542078271834852074515321520128424871328111262824663703363558041082382260167094322055704850563094193899571192712490933499960015463938483458840550211489978736295955030503767049595062061140523134426407374762026978199967473431298942421267809778596897386670420360890457359779004047960072367310888323868786419243492432334306291295974899841714089625163580827075615621059923966801454984752724420149452942822290184929429240890704535389712733798093513790397326007390741292267075213747385859327347953992929449427017223331950497410046330115965204760267584989523016856823569911036750086091072488027471309837562393856993072313448089539980061076932976544342377968857203895957682672366324215254291514073783005958803398668189704667120220840209998461810625526600918049300851403772609114727967312821593545644289974250083204775728690189163118912454371863635124738924772991762504950772305011994211611637078245397411368935456550529601489827841763291987077789270652306583295160819726254153653942603715608781016110828835426573417825581172782826299690563938868425335819263608709566653892686773130552616888701717146922498307383212390824792693095831873818622223320362415163160494695272892683287852486164309230615016944120401399149742626487178862380178009355932226459633912332582413704269055517093471285734475830047872759603929490600813901058619154910069524941677541943683172355387106823432234664361499603277068349409904326089832406427617363801380432072975911142628003777417334189510526104038541879708452680116012886129600327291873550180123031486394724552635468540867273690671657218193132307908196703363599368500208935866117992954973080757337772749289575555696932935658613542322227538762052832408676724477196460186155276324532808689993168527405054559272314701314587545498040575817774983584798803661032312352290230190758296862756304731208561541222585182980191696229543582075085614047649558922218284052822053484072075214062883620655738449902019181557017342883305205613039774908115394771890501702257947054940103121207326525492333226349914618127694548324150482020457909856289189717812862355582000734035939900806735558555579995967744070814873296230077408126300958009430829903083567504941078755095796877854705415927413844396347601734320378491528561875950432680378432410514280721137169127744175683235205272354012730606125330423613680858416373569636052660368359153060290066699582276432582721754109252236765841414766473001769883364282771045442425998682968343184979175899210596281072858080276452882576947332166828363556238184625255022976414035999322480158058138060225236673826845768211476801891532942081886173497972914391452174462360499054171566294511472904999584979155385757667940406456938786398917103045689467814339005844467554935825986816977045864684897722132259617927249254133154666135657622847859593775935361986384290247993004236217432707565727094954565808483229416921319347715887851001222406320222751222698922461535673684430023621973335836341269192554047296803924348590500922679934225555216711327503640130831316593660116446049044842440276673044507793356580898235787312723689797775991894087694678626286246252498962455126709982159869788867943267659917569334349407168210134694422261376242049411351696124380986308516790350406435962065938400504711506361715814550427788699333035240125419362318295513847622086019591606632996402130296882583179617964663561808604871476092985873888215920498678026906674700372779380065542046963333324433513150310775631008341987558458532736094980890333161384088583499867667518731697276239053742154435278213129094457061983217774770499925021257682011246884457012131676332742574527252169276397154661239353169231597106327018607854570567241804617888803716834005561400086071850758687611250140278088178081485047570187311343577948125550525380173954396346326741685777822097026936601988449877318711680064653543008151395899397785434098742601278763071858746037891357237513217922816617965316571674710130213317067633645932725967909577313857134072656518039106125446331133310255709167329349722523251059792652824145654167228782062944304398655987247593511442803742729987932051675284574236603617600717724389850432615208989694710524451479967055637048322859679947810540235114038228392351173308886289122727606572441667587665945013555346253262764664736339779997769066551768227526772769076235030470282027592633321088544351376640138561199815592987382459040907598576662933670546880124675262664287849893554159996596741994474650620851513834778190137821790385999438762877595443357196622905599287072977526837855464582904420472395035019409625653169781826911766185144055172561379590389134583112857100499431368748444038582889401610807057033260659305403167895437300684485476098166286451888359436412521911324096008033030376666704794290778043978707141033022485975655504531297719804040301118359113237626902202208874669208022509920845809306704071228947041517671317897807389699012173654327385992303366688406927763451138199435359130697730142419714204200008808161821818450673705500438036571026214232765763778610234364622260465696971554301154335759257610798410155383549204663993521786619749826878705481596540143119858484071091391063365017594473753897946421392272228855790193263111752150315611250116420597086455415568341219421339273377360081626319408856689737794598390288257677008854039746972571311933030099992034645978183062362589913856733642127313535858114685984043600501090803402046728872877977651786860433220142919428586891193156796108089913645752218454535257651592171915939351831939604631002595075341852276187809142507947613073224468206296177980304650186169676077443703008114274599165289522614900477108285417986410741998011129762040863450793297527307515701048156416091244558564550914007145983864478250892993291747600123331678888718095203211072839588616787062498118963626850078423203397756487429601494011869967283160805076925189834458908235247859712616740627565920346806241831110893672691898017616141406431187596354052172890260825739958682570385980195803812385505837537907121693124222095101501285489292322222663035881494731695525668184672148948148438308890034259720176219574129042383311092684891624980573192410234730199081233758318006980673929798513418193000198036936901287465560287218641232501074957199100132613231641735115277598197230682989883461473401202312277795740218584755245453316925629026839785345441289768903516757615118614842276394925801916585191906500604408073755852673149317384673682528907505044774680725717513678959035576945118421145314010807752925892754495226649717938089117101840136202429911651046701470984665688293478006544783453590062042502839742997303516524537169604618497975206140743716040169885091939909112575150674268069840298436293131708641686746316427090982625684926244436288398733447597521589680300446647930871318921565395150003777757590315154088911837803180424730018657534468704532480495062206602193511870238206538636184426120949523630436486783398984762865696461580719709630618589403016634054239918356068120542190873903420305284948294788896718075198407719983082440916750774890869785133848654623538981110025815156376391876503372060415542929722586227301763482390965905276305542317567349301192496583725697163856979931616759529915572370469110520442092886930820053834811066066810464493095018840261188197796506734707014135691976877818074483230735845359466612403220852272267983980442599127538670648040127611478763835951087525142851263419799205174276794180143440369639621807040894197475817736123770855339178053165897802200022754961824354860500687233651378326019642297301227576545870898361435637439688669267076470347790019163362326076979741737691876348533634800288694301192382885431517751081209274789673937514712657258489077584846038046460769886448795004844240909645882034283057027257403770246827810725559958226650547948317123725446088900088347924814023173845438043674801469791737613367893718454620518994085851360792002704130191247553043851559409820232074390695553582998179426142901912378905345311927872579134677186091276541165965899428800381511943451864145612824635976269265946743989307390852376175384802108639536405661501841182209071530663076859996713879860116142798159797359198025381361706220761537876088269556420708008074384905926024655959723317610888789250520881697289825003780183610291150996226216047409540103014141628231148698252138323126914763833517871497803487523951381340924045378136886241737947685595244125345987165041353564423822310296926406558232659970214626984491761561525547411865853498320331120345915040414827524413831520730041210992931206983665067666759408822556708865378508213598108607134993115698162921787924476406588987961131607137908783396179017976329693464443259491280001589111336875003518245146186811361410024724963323976038415031928257461741996792237233256384715405866230748452970658183974591369713703342208531303570445858241598069835282024270584481503098832629427489530657017034330358686770776628065945753779541856789110461969897841880215720278141055824820536208319321709360597437874728316479312049579220482874237089549850711166192186378274431284651982118537668504310864907393366141981508881367042221055583733657141824343766301268269305129345160478802623685860158553129622907526779909658196089374471668083941613784893252567506182325426191869352346561025547840769968043730551597317063715593244097671902397206678751045961044685838514121439089641274382781031010184979025849503446178381820807465839195078146003228339971961862693909655418861142299305136277786170418860322643766755432207471955661410388883014715763410825105576000586820524897955240915768170225221374628514489863212081701653449093004757585942360044221392897753060529171691294749313277483485082153407229475870903321151354355516257433058242677017086721181877107309070522699536295135084870834707191994111329978015341502715406289439563413517226110728464157436671387275437386350995851967113356656445440587148282593503185521935726322355048138663956434671320602365502159977583316849025041893808727544911219549636485253838708495086199778664853926161656053336315538400348211462037905826030312169460817718711390045535529822242544900373979424526754317050645651032172215294868259575990264749378351710567055651686541978342915405346449233919052480659487413603314122908287845546920778743274638004122651612451207957875286687672235587201338023543723885608577799027272693064850718030394579852250153605180800013551443388928908201895113230773912194480589482691086932923512398556142116589031945065240091972982665766932560584966080817323117208948228691509361290189752456331473338101605232579029092853325795793845355645556143652994024732880672919138956219816793705854462510555813231966209755747888854481628218351142654671631493728210112451309710511649625238398618693611685243181108058457823014440649272445008171558791092545103907701058746167723828618595878271522740273559251039722367046238030119651328728567539104732785913040529354888154005140413425478841776085796300438535734216820957913349177343890350751379909332853318397045578911518485838931084933876518352381553418395955328087930580334170919350034595756266249687764684719555148966884721761071650929801257043511268315269123482749695633177504215180944508987847065720263281024481277406169598087759557668089544693042898436772359548358561636240046648612241023967693508745564457986567612605355225276930987111617908387260886928945190610820252842729183117985524234797230322438277002718928171904602326163808500199103847979372901743301507285416401698499952598614668094222403938246264389483238616132840088746180612594694505512968600969790965728802513405590798683492438114676738265491872592851193987367196560397241063952025820280862631153733207719686947738032781553548228088050284599681495962667957258095948589259764091549514082694983341801511143932417622415376431692107433206361435840031652984346726678837705680483133627771286969359996002824439921176751427122745726638921711273407582413823256388895536930183810832168566247405323901611776741492391550615734956695280365537544341285115259606842796545754096564788494513337086420467337313795397626479078380487688627480254491441766710606298130953453406661310608455491908731209290941534009086825084357450827838824395522575759711813098069384780225375439841062534246934566908815264369862204979616868207650217312690825762509826158837143138472236277469205580936952185459092677727141758795856336675132968736320642915224442173724268499072594169194663198453857433684203341230099579348002801824902445884914373349942499264911889328334488992787208916557811221940172369363093143391291063429026089420288853406813440052506830725466849096221618179269482576711258144146992634770639361941024554198009153938285361460766953841756464942533125816896958106433733772669920185280531816767380713901905572678532651573756442836434945968118783693565977039369707756462596333670810602648972466423474768795400330736836141088533923832825749354543347903749718669895419975820028380471392235088315215936326574755208999233129161734067044792436598685749175804880543729670359088918673240824364885454999852975650633669380044906695085095410352427240883884765897343343556911732743666165269206932869803924675137912583159271726655417822595865251531543342182250369643649483679590052359033893498951670502787233496951757693964560462471854449896169864120641460300054242099180793642192202423497257909872963167700896333454603285978750093087177624945422779918891092991494022866516653358458456986038751043297864115436488797292938949214166263830270687275215463009549953896299061592676387086653828987116452514811670092258874886516931930929493695283914078458001483389460731421326236800749685582043277248707215033574501932845112622335159979403045051761598486927060582055845881038522411195678141540516119390090675195895533720797427545303367046998372554815099111321147683365242691806893167004017407111368477985745997218322432116318877591723376633950765982448401888482947989563605400439759544631793722472938447104160349089630880707963757895316025503270474248108793495127003174036897031885328396649181499312837885835071774423939429352549165911784778061047399866736695678270245689838318133292129000446858443335190489401409663440706248708185922013125616437977628906153469413707111053239782956593955878492658895615563174932349986264608304167064160376542505626002325824620560147181220699115580261214614962976197201373401069437663628476532031479083737094670788507892394161771272568370026209447953579774189135499994260934937751000995288267029419724497011636222145120982339637046301945639496343821989574793597191964114774579377475736370453653611258780674389862357429064821436660582938688422835872286555215596867804105848243743946403812200276286167272734575244760039517253991982019133447929318511330039516341610202918765191956977457703804111099102812548231574048693649040421629346869719785095652868468478135676177316368511973747431907147489959721716230721458964853931607970934558315758043468096000505327312777008555167720534436274499970350861971968027547160301914137921343281762610217538553152249633987908310698590325064721178600992003677157578561700580313881904293305507415314983534501782021965891116613048458039468203451016703432111922988732019439314594867898841085018617697782971678501457064368649973395422414575134163081372586661900772838627440646669529907314190061624978968476739877285651308775699955895134155239557565275310518951932245293015567906283568836857462198851830728597326973924704235317471609440720468262783719714770725120747245033942979611152351763617136889794521878986508824887110108063219262001639225482391853117489824902567468200470932364315717265984000843061393288402359872133991073514531075720905332591019928654731521267730748615226407861138409372021373188322400579063215066472443071428619916520286526422613022614257430190846205682088106424693971483486915377496355465899560090497753224841355336070598271727907746477004470481302588267504666456942851850599872708351277279298752693985601117714146218935714353061568332399320327425556729007230465273312160850710722431595967073275064607387622828604465337648971438571029539948910321715416541210777738658441380576273222316193346563736126793978192319794751775340022979205598064321599478553406972029896357963593901139243312157010472013996507839459449442427578390362295381783047257312312772919843080337822763212797103864986490442983999698603939696217140099422976084929034487795988501416869631516506505894442981441306038064396708267820986171816022291028984304645862967359542110205975756104022255592804637209412557190053714123663479155685518432434930665523210319151292286283387731428476809367913612520586040955668092690288897163091529682679877921477042988016357867781304148684221939942074716915455147196593489555803307634605909021339013977508805999648018392338257392153913798418511171137992481165548102083497898975378337947727613466479202280077181529266584034932901452080690489478214811265101911440816338652756699244083144177787912083800976726090096194536768896616821329381699711534813407774085614336615255507466825411089111589460212369196314292153695961731562204820305292816541008207020607407172898105393043654521224167448703879047301615233354446822318232972388626502993689996786276385326080005450249025577843847506686851959579737193769075702739599403857487179685519798235699423353320537549729255790934471934251704262032794712403606013874908644241818709125849786501967785232418653343226478139493617952086646783394888359031891374163232232424652996088204106163276427139300970701110713702321004496054480420298838752684631871328017419472720422359310105883006881468149356123231505543695611359187894461046976988035107590884778293761445714642749935719180401395082827670572603649868067707211308423645080369727457720014073796647982546021344982516493240733891315839445426716013941015207512791189667005331224728570078543019799368286643112386011375540105346435496747980946002916794557770104485530379831591940567508732004002528208830417415080145711230646271031039700479153624330240835335897721816722107160738114945578216866770828664332357551828958914279257481275752484681907808775646785794680704529519165203498980968624433961287413720221680430177234704634542692641264951878890492037667981565149670641570439001275504011623544915983404482647360409960114894848693216875484029777561016475719248093287595525265742892045706663916925377597776946111848685481108825963312498314238311585414358116333661250371346351070932107237072409986190606189569353840381037585064880331137171304455165853278511485241965679879014026692300057505826285332628429407697508127445954947285462040048581100574219027249089826259002830265137301897811577272429651934413123597419584675888951475407291017643899852062997367989167040562614662623441230067170720259187836638331202499124504446436389722919330839959554534280587765247945365784699741540155129315656639681091560313883494648838884004328535029974535258136477723933152016409672776185883154804678406876697732614340888086090292656543856632287862508888056051803676162116049143821187578524510714051642852992603233307776587089541001307608207958744540760298351249216523279115398602648378469721053323747474742919661817569427918875191619884412221743866549730567662547783084581209343687981483553916965221601077401352350330086249124137464696266941300354133189412900280692587664662064900088652137692623936655617093740094492163995892135756143875185176569678309426954911993583146894042741781620591083420021681146400206067905499036780180352118874131039603909323215190387248835660851648986276254707072866036017840230893053442713689453374051772542357041128735481884222621461571898398284741336276483986698510817524268722524261898442195195500805456898722684014165253096841454717168014514219080034984443145130245251828249208514716838791209428829570882748225325531395224547874959293710028959662746327486707612366541476332757187245212987509823583620380272102960645021269641588604503462226586933970318679199950513701681879537988063956385853578968339635009455042440652683959302624581181893231235546702028398068192536794536633737753665176478949141540555302899632952243078200451513330387517738192624565138262233930416266589396822060787395404335058688638562242071152363698615631693522744127895979200933519586537635085166006779249847676491929394201209601656610807534138859949451066915624597270324836244477964005368791048482571216420328498219005667268473277211255415253266281296936655334597376871924094758777884354600694293988982531841805116987370494008825201860936742952437416510899542828876793657423200471667099935768420064315468751901069570353445080476449671808992376189806828977153501313251243892518347180985910799700318426801925284947085985013283638939944944877757125438582385519783384092908423977021153147020607963381537075750854345748412918609965821107112472421177889216827771884304033710632379599928334592527132901732862088747299496002641223163764063873602593537738113583805059651090602310249482484902019084613802217866913433457398385843041397221323532858350597104158410904447873909173408953309203281777444874223923692608339898685579647132835130970929228329075832706624624207126901188352371650356032125849253121158129286096168600572566693576587879614932026136130716206048079311962999844409699699005043250551025585503496607756180975179371681475620677371876980071910120276136175584317541237609569388997683819994656926705983321391608659994159431191743120668401860913979402859213846386991037035881557656444690281341463731954707461170058657653922249332979050538529616531811490443298498562159430533772859778633234447185806073418910837657678554890397728317764181043412896752025383128275892961018546852381430282525519712616010937045626604062577404140078756969497513406696677077249721600519538414821554169984763565409905959048850417345201998238985378408410139819661974295340961380516967090698246282370699760096047472934959993018241478706144308247640471597934250719090634069125658093411460908196242490546416875468283946994760048469830012117486652057731716032240587220379265043931159812512587359224507797324793783276124071497385226769646622628332048705948842093191109003742749541611150357728550308618443358217880332788081182400148919344378778050129363167053134863228621150010451301982062125932671083477779199865670663784432707031279024631502511864751461947457440839346367042470112050553696467497889303284862361146285550127414470105872886491770222754427875579704353778350991155359688433138909093985828369631428798807821588872712637227067572436269282748718108010082012474027661412522686718720056406592826010667041648026057103868406257751477976086904498759955134856306329362513220846493805109574287647969639060864215623919438432978298572537078164510387319568262373438186731969695923803678101447683287608774385143438395480543771740636104067188250799223760811200312952509868760701300915997442178296676032666366465731548158274412940487333700048442556248688377898726079239892052625749187869206968746003750621099411494175160415679950650155718630031070135440403918226891946175005045447615586867829488895404235937324853940086353912936497550182478752146554892245690630662293512405803551520250532794890659810829656848309602940753680412210563271607991550032343009076203868124946528649542465479682495285305025417874631312940525658727742051776989946026183240947890093500486795795042434839272100134818035340084083657473904734330346714613875309643154941931539433131192782300704387478068238358720525321974823459246372061762265240039420316731559410316814793783259258871476316981571813139006795412923623571376240210854601402842841865828859240881543988870873761068087062762547239231832401540940526835232711775407375493552283274412848790544456180230360959059212132720523746772922901179755216899643187288116461226289313587465740480773640789123554089382867523747496282715917587788815230177295276976158749724200509584480818099917729459079970873549177462245932538090128272275599873069692720558391926868599414913471556701488554452749505449115938705331705399539461393557065198495894117577858060250651419348442346781274951265514868881705690605621297315778572060180992643369213929305675141484706390405495180051083187517617774187353787316471082978814012333548262644001140397840208125607829025667013501952298421452812886637885098345945504441179552479658500989959631048933940113586468717284070074873902793051899684005911047913005863984003295948718363460989050689128751286978586703504087961930695306166522451584311505610485197178296586812836891147039225573508398500891973259558382382668726195595073846877064833594730520275551932029824438108879641130083127998741915637369893740661168222969444455493886103236894048337655163463845333392052498227899130072085109578179955173993711228148211774114533371212583540592046151495610613082440795759420871258075279452409026904377886577748975313026987418675788147078002963700084773682540863172283713901421014770264545857046081725321226305012946726691397143325964318058430915273233297586311896022595235284962730074629180877613365798410034001732011903502890404624208261688661367922569852283197301528236933443600061737734812436360789401165077276759103203633708084549473759354947562602404271113773288656277402007624563480873918904364475512080117831812916979788864266406991420771998065898437050424646912449329405308118083933826235061732497210715343960903429146536971657606551265257615565631596915978069681450478842892205031391695875856181815580216562591924897144693110147507251234823970770367342751116195618881968703972950169459103025450119795937644187084682319798250583461398740668162454291173386438546391069964402998483566161683229614932831864074070219114102456540213989734896756205750963580226710737429986167424195630920670563858087008963713959134127540320565049543422069228635466502849503561266404837509398722696230072836408949240987596896915465703159539776305245009060648079128032641772133512161248542095549225401100850539145820682751575351207140035066531219641006158820383206466834536849637570768987144846108413975996559605713967239547791962920802889574778997257289946498820265945074968730912093666403830118846438639307331328549555927319934380014107139911192560886947033124104045097005421571188478082932065244240537742607284556694096651053180438819042382014252911796982439654357068373270140675896159877733620257713556491831723585056900595254682720902009113070081749298598202448207767127606242534719072103260156386087841999375259837295638161331270638666886921699468807940045339343721802203171400700248419826209435320357554934801530277527810237321342657566898251978045992684094279634032713548963087693405237763104556547780666007640846704827220245047694844797666606613834550012594217888047041134589995832371356189213110945865757445034140976555077322823737189864615776154904172235987349682740973806573449672763189560145621461327193541084153392445328695357143137779667805369426397580003131378440529502995220189463631493592207438975134279419729775326593338765193650669068196686535553042388233124485235767841657036924632037585490460750810672885791858075130239072597087311935810383843457431330792729976025176401489719269922265910507599123582591130816065149854886216521689432881667667765466294004240700680136356509303236223900868837433433850503278794458734976659037886017558451469473062807079379483184421292294917440161346829451426379395529355030333579199817425434263719802267130559223379760129188807360423983917771126555183518020269558419776049798339101051479823358336033313843786699228798431813005097511398570179257744356997683663082002996089329796337292848100779068168350908268360342781553056323601520001974562808292956826654239588584900214853048360572819843680649382744898379187241270990571989606510547448738859450547234140668243652115006373860687429638993591424189078684188288963061634085785768130521828113422372495225715971353394288264942418743423034286161275311575579394287631518543431370544032393760753859389302687758589055269534668412308011287163914196871093859584119250105439251662499470203604709236081733124150029004173125312589655145676026509663132591162643320542131837719970179925724016853484763348250320233051995961785034032810908103857823119726030898962097405467267524825260203215091204443229864922523877928669093564529320465641235350671449796734373161609626758075680763711368734559962170523355863447767766963528458526762407630509674226103721444894694792039039117282505522170196880666521449257905735191144903104647581381558074552036000439392412381152546316609837211197654171310064939518438225075199232040362185301447735921108807001006484628248663819652279870477446394088709123566159865597266866106959295855610492127996064274214566066787790111446654994214668805495400719133401461563553700099607255214054598835484454321886166511423038384718093292005189083211246842173045880135484973785065179765384123112931840622423582516405894601764374924332118965145853695470405099806670744931255113952998464113025367913455467900445320484202835178488914180721662305929399995286726954772083979128084989356534541538948711910327411333394961628073890134442382119092269968197653518938202918102507573034398780058651782235095974408996782856409358773840155729789801214384920645107517582919029305726455529687159238758702545059883504019882166056625730022060941178166311692613292769376179289754818010402548468365077711762828633474766045207730855014934118943197816764415361892006641419721672186507442485680962301656430627402119684736442113111097792338701554819692808288210717074035205375832520944985904124167011915724561813624321300862071570441544960252782507902811584528144179824748361630667686401694885166080907552190828539455159344699816468190213368996492582149299005830119792192673598868699450123715595774012079939285625165034502046882196125304040987484073460789133852573894163904372087510322302280095516881402479523610143156680623591772025716314842356778650011112694933479286523099419861743327596578869253929890416636836322034342475978066835597638453459035450139744925871126800922063703729882088558130495470801094225224008629336067772179347644293003987916772287668742739091252755388795985304440800668576650249019680876565865265537434828425267289011692109447443121997797850797498865793553330983455364119359097360002727732777438788253820517315890322061379646689587158977271005754391665200257063413225390887544002421197700992103718895322662058110023744815615820774432699478708668661725130195823564796421941570904062557481840344352676244970350193844713455267173611266118380891616582736377047331608853994653967277949526335093002540723172686002953269370366040132105840209039958407273502816536584791910750308261705947629255455887285144840011515236819219928692057859235624989970090162084965246207129563442548629697280121768924533528549592782937290507558018937933270573896308220890731705569641906704283238553699973714294285762225067631392236731899491269234453612411913660652360008935309716594563844846721348891897329803700791286607105398783433012318150102435481360512437793954134238175656101919120146553069392494856634190037302321403866986462010800683623510440876414699736170468024972585936067451922697945338385493813097592687781561757164345352205355852377893116000892312587404056338310364961343872021431678113193899476196818505648356109689187683421436316393428296440116069138967064646131130184806554458680095301434103253867816795145761604547792884814911581642914626320008571569795926041003968346860630006393494031381832186161327038165526212406476857465916607017739107962924191383171241784942075809786533274933954419832184199577066419195766514818405266305080332746310055926632248062261282895562862648943401857234049910264963609314260847884942305373093240295453308214489570778699105634638457509584322557779389228646467843068489597164758281076977673851087302788895641862072824133352615889915957288587151238153600732775609063193920508593176266247623619091254271319719009793650467210325486045829348542101293639654083935727028278574004471118912173843176445220817883969970344063998445062702760776468315586084824631424551799954918849806217352346983684119299758399813622181227978588872866664343543408315969759005301277939393725721437820572805970315139788244630600992727951811558172802151162843570843824361489826174658230577148542020463221141496955045328964863955128581836530029828318697855010103679534203980961613290738042613618841799260566553934328830425541774811294330642539958912869810825153234878284424199105885006646894763091034870083675147516384685630118844428909098238333001816982638643618689954065786288125389918033514734205386160275632416190085010916649893959018410477063649021792092743686523456482535918468395261055455567974935043046460646425648257515445614764419827212833744428508901624282891495399058554357805721259724698833191135944767289756975891919493345704132988975123617362680299538098513264997145927543409332255811890293766217744751806760083477389645566759629239269756889035546361008433883880993306934263735242892541308675426406362066008107688288816393403492191388394883343633969961378016376840944645008396066608764074350011112352154911390886957849950540128578149019792739132449353382309680669404085389246422295589897137221099502261580971538811794997407649080671896226754235096454072082942208466329269048092617571981905872056855189208660462295098907410650110101826929500696059015370228432992585446178584667321154784287485013097070728608053677559729755073023418167875883543153079263793606670152057809943416900153235579558219646081692219767965223434522945953148518721987804828706314121165945798489216998954044272502894981686424629442813798972897014204052461808935599430174571092255262939100663755846205727847397225158313043773765251069523682367375454207009832310728179730763507042126302052434659107412998727592296800507419998572341044900922059688116547548228678912177001511111008985040336946085209340931181596694131554433432845983490973749033302452879371046708884643856921950839070112570989188918930347647114724564602617852539037289292764817283155278150847562461804185988894403398790260990338963207815067871613801151745967098843818508197379612809379301085409892113791993781615346702030710045490212655045215563379499163529323836861175801196339224565485623047647172928215995338729073299335007296623590097034840735995349767506605452606943738458443717165463879610943511586245817282162589603285460055341479815665297485236223379631017969911792224424338671035233525409511924420341405540411929391605637117162489265909063706061224300812556810492624110343746334323444803408110625214377091341831961707784448497218197806812834846505261784239581664227322973791665672281898468582341118959333896210822954162791864661216790015166784680637554730835340633388853430250537650228822003688289206114916868418839327071671356181066796183564998368213209840371725786677596330438842811988075276995251128471718260681552665887030173512766277405370643923763809067758597977046784621383765269351955217301859244700272384424750231992541342357195064194994966654741605104185983390804943383877691997004928985897879357720966764427768863775363868913314574120744392393204566790772003849658478842835956700054217602720630870149092595905502656098926685496618223788425141348945331675209761208386666327459666456749025880248187449930799858211686653081186604992609492928321125183358223212864222831503274438072301463696821332381203841206290296217747491101581791086628056126390642655377281678828588752056786030036199602054733266009082260560979262502686930434284627376692544445156585786594429445221008722547339551624875257900086944825142652939312028271447741562076031341518909791425780516033991740913794878474594466620223070950048597757839645256117546260681719668011912169020850394962245498457452951506941681320162971058444812218098293716991846290134212511583174345309754482189633158986147313972053270058189528664077960377112040160915665091324657474723808470168258166828500416590201770024634090401988790153257341140741854062004610599899483643928232422419095700291110113231057978801853148467965437043095754684218875676367908037755082937198664103437852148031702332770350798375568374752644357600913811424419968340944446083181019962094079501453870456124165450095482722345867370074740547896221911720569732386635438263190095240548275188717393805889519882470066901651467295247560168259961297390761209824115365399307004129487528264249609600307800777818395998440786942286185986628340438432504238230514450777245877359126685483994090092699087225805992502912244004045191670705410990537515117835670245584785637004990530668796637392323458360505861420499609833760770074670420065803927008180652773355368810525565134716766769997964207438225442133880800690023237793445468330540059402813627461086274952395664644598848936861043521169139839895632321581115875170904914933863569815561135249870425822469567993029445258515540446633186351280090653299470846324761770648997121042836155919715600725906338420443033611066733155266162559566165936710113445451108703626626637694968947506666175640073836202561697470667512565948446214408937565647850290321092377863849441201849011618148617829378460813736720672348419108157170266540471367402840849434693466256371033292675222594023682372546366550829278828735066884363674494349819922766526171684690970129322556381580026550914686863904918909305223728623339528293254662489661455604323942173603213753925604829620596403005146957195582212077045060553400733862113872452069395428762164976426514523285878552806044194592016113631497984247251741003004967046004797137615009907803942426560124590152630496635356059030372486533824238650739821467631678873914166806686241057629578055777111371926247507879792783509337747359272337810704447500694246045429986947448482035224664656143990370492156857421852696027595267021730801872476416495329850351709819839624478299535613478476618498121972625870391131680345411526610497109852461996577785206443148173109026019945568845206070551854726365104344147939286419350744771349004902562960407366947493498101855185309987338351765495609637350799762785580678915818621717208056470832128227450263159705239789436558324726770638227941016612136658961201681808042421553509591137771752515396697822379479428474829271143128761000230970985724897722574443512057242814851032668240480236379183094884910083467216497394366963522397832631742576529181260268601152270865296008131650412951553199100998800967464428349663405528194739376065735875354751366874980042261168758701243950542649102491693709262960191330651220592168686240228061545669698645978490254788814641406728335209805029102446818161193269449959879908516019446773989947075434295522359195076353347618077148229307685046232483419181808405085649997030638905026295453275987067901037981369264812112434537112932375825289280245892410791120198529998196733221111776592119905550356848302743689434036562449663561234842775596589745947316530324125692199315653860188777601368051552109938360477123349439851966956245187015495175838437394630244853640835632470835403436223840144684111666436959653230166160459115232385290383188281676693011940348910821855441410838565091723434719060546750776791780330260516730450255264718528063693023875450250738543476947581322650650122390953283517092711344227937003191858185840031131726107074358132310447018034111578351737415709489251748238145076685362376078112370612971211583566551847232298808689860981921701778730750451502518481800242551971016495878480850157204472028623831204975082541263183463438217654713595039251901333404290817093714585360144239539222713733906587416584578426745329825347216348151512395511211299924405927167081924401137749178608158292499437596534104513516091223943907475933827674613675784555021469911763622534431209546877055617770739771845597725258284281471777776253425772398746316911072856759955107486017610434884350019499004611896929336624828246374437365230151907682122037263862725972002816599461197081915524021444314264424494371543632301036703306235234995742555769732111578953715889486509683518091196885579828004794210043695754899013468792416642540587411336636491957828756315484696026735946327517171686922787332360578917452137297013721046988081268280722408324897803419272206408500050236116514072191362408052040461900678732687284718191945578635362299878783606422529238067106225240732933230922766037431822205154249859393283333248803728339676350790408163986193683347433923560151769695294338875530223932177045548638250777341483124472125195986961269414604300225525310167687139746132634041609261987741825378519929386481122796334794875446245741744055490182124089640879076011791917811123133109574424492481011759828174236760383225911792532382708277605015205343304387210450656510926693755728823806539796801890238327025088322618284878330777948458472325314576453124460958620659457437224914632726374391200717870717104461948372047177002974817368019648068403822500023928703221679935573017643803178675737803847293668320712741238070210286014932138090489388019988077876777981384736535284317748618918317442948077281990575709192649141387172623785179021022867143040872641885853876184047660225328421316201304950666605687266004329463052177151971490722227597401507999955404227463345804165699228730926551273897052916288176536353136215400630325928399659757547581781885840080878502685372646574893717365817121116851612401964105069819831622849231517626087360377164337871807782157023715037108172319052791674673786513319099181690040603765828790292252827961922999225037006997778178265154334397029747521323834577716514829293679021997669302299945462328433384861826521581133956829239520613250694823881732473182735838325628393081133156040401979068081418517258451643195501081638507533015692377816225216933616971927087437311848624306633174097349207647825955003853185128994969990790974506892892256983280266683244264344750405559554251951913146834667942050958658288202541054038460405421733971105174469347881936058753924019779605418607254396685644931296273581402160034278057971774028396518380170358960907617456951591274837124890868649517812876629873799547770737934575738209488359727190037916957313537891740493124977227617938405725869221025299747264805918186394665601475987519992846383403954476672250362562438285034556314094610431876153850134502015980827361565210161365995994030089317623275613903514855774914837638658318393356628803715624925785203142569491398147342060604357371018411986171282209789783542151837654899917909432164415872599204464908771790350355134095296054054987839040163445430690803145998278475149606187415686168301051967374803277230522812762188574064156845932741698796448395825108046506761003286835350819757097688037736280834985881774904006942302757918776134695907632877496558407275114450652646550300438991669620109536362256036429701946835371756003098153097437010481442768012805452857294205308703436025488107771492046830808469297981229234140917859793524621345525180847064474339325509662331359693211149670135424646408214327124824603046173368658971791657298227202669748458984558199542210387855632669418558745171932255830577264937552918389991135128180346416527096638224977256150554139057127234438618614866190807088048535205446196404484379283602939724741083363953779423532916827399819864415923088068641219901544858429370592452695203024927818075226858717568307861429597325519050171193187931266003812142459676998687109110161892314531582724904146623711563604329051175845843505909150404697518531850668777666025031294264729042329971231121314333489472943300256771816905095795878154765654938010498791858005368752513648038017391442776041699733850220672240349916562195882028858911951171426238681547605795997803816545581175471096925395330125551953645966502941667356706234979202020518073978407430454007293073643836695720218608849282853430614268140647078653007245659259023962315123267640629050482128081375606136113876247217485823410500091915977881644473179898158287468561194337689776179204231644061224178470954609656923212709578777150479007534824075896741362816233504576149328322852498510510690076585483776275599327865413114669251333705384877048374985550206479594207770505323757703375459179976331715822444652581030866984771168081764888663501199656546932643562775343284552020318504543610701591620853858521537205705344166929191930072067512243736284695899746343763083279507487407821240161783725416355282581632122925157586406434505420061598608919305126012088014876229176050387863415733866991852454030533840505057725418604321823889700540242335554946407755253407367199733188366342175848078738024162514785946997105351710119378906488487860841704743969636927403267903291537979880616743661952915020166991036254619509536828558912963540150851269120790043566478932959010936038920900964821506225964939268578894042227301068040358125483967761666363467120014562284636920365557668380956575427054788737436454542183315612610312098923248789999246735270877831952383287329383414199882732094548650247204449959564273505422890727381443696231177686278137983530120412392282126182916582890945348807455277823886518413640516675974206879258590163128447680554750224914134610125852878758794350542750430286932189929908388182213719922549872519706878479813299805873046801652400793726631846993775152163263587860628325396296855927387956800174839682933490679945875434410408293868457898728451822661957138163170379226160905638475369532969767682645272591855409266467159180060319476856034768111125972313933955816910942467257292404095190129141231129165883856165725924430915091872819899741985933382835852696303272885916763426782127850770294235553476833302513293856611544830941419540970498578630699158843736981028490576983114365345867261472145786562516438395107743326942011643901187915624108524096116652892022500185100619714496917314634769687324594330998576832024662465168280563388885185234473621013455121262567026285899829800994174607922438259152010396795907018232021816595388596498169416572301905762295012095078276627496472619404098651017188119653825364220525242637395916039082528893739194047936832820588593421713259950602815793067498176469746430703319399165650634671526723442844088595568337205661988035124780202509520379214949663404217788744101840441607412599946379041516863466296338100704256615968982642415763680707944231843831515204643630614230167333777900870773577675649195403092641916867576162158826076987607002233961907107252370345710952454052676558114465844957788429095221484933419333520198854534520504526860856536439024350384109754700171329037368346006234711661933815850018253958014830114224051335357179067226205466920345841474831164823599050253178647511458731878324743165706473170055257940285953897346751633202980936060826755826688767790158557633039398147094761789458220089704276668958405649370975086600240224859461990758147331380755224633448478398492104890213549142478823333697168652644615071505266928597301619439374375382196124247445524481533774250120521549531646752958144424137601736565039242897659737647898823912383085895093331244788757707206395815601248018125136892805995058912370539741792027735688820735679261981859579438376525279089969040470793648695610083375305453601477796385260206433595100421766303291534516082189398772994372557833195605059025770142862801630986252505474581302206323115828139913905130458918434619198975735493712471514431506061843277573509202246088387778049114542566120893102347033538718988143094488482037696293927753194615439875792600844283409283230406758283166050706891242195524663588688214210756378653919574931043454032123824665433277494681891004529404717846550010443451666252843595861577000577131654643557117175613082835324841672715143110755335239494893435478008276732431409239631739716494833835835008343119749359070626070907051129125988885621283462879241167398818644764815621193976586888103627578219511336379923668457232331275713376007310377008211894144806366577522258872793791484120952278797715876019478995313477059005189969257607803500503449738820022745937557984775805543281719688187339722806859959658134762048393213720964803751687265370174462393422629184042352799922793683108323568500656916040138533523029728284761255967004723191384347302352567749395014278830728911605454261064663177259006296052100603679411490315027560901513331595914753276744218222942153729838982591516779864506831807166935277217359173693445400617644376005795400301131161687503324292478994847719961362776025062004492303824092987249871804120868329045699520793870325360901120066775670205549061567788322544657613092553512184848677344235641036338210415496496084035124192311359137574572481624870526253933828296250512373414291445205132953861942613720268968373726957821405383280920330618925176650347619851824275601717932289969811072278345383266801416198683472705730467336712046321322538496110136799657833862888026859724051317467096204992257034724498999389854657426877024022714699358358168010111873011090692511149027362895425527680186908856691938385398922662807540107222123010098064292724195511996979997931388949759089618909924359097436005171018024817607529812005663594576053592676415546665784689001615435950033595324328289794447228907789450062913098163316059703387442448391843794457174145922616746455428361896855683938876517719206605058832089391121525008035889333338855860766027711300443984747607107579131992140295883441991123298072877092004338093250414822703085886976827981040705443691599301330953749077809019138351431215839669056765944168401797203187323699252050095419971361170782200326498565728636147533230156051869891247691077064216128594751960628439773162263020790229461778319124370366864939303446401742856402858923477545972166288544626437002639216292898825481550388309890669011696496745810728708200534185106765292585587241206731087364246507759338805364962242062393336904297768161790535415558772451107457968950811387318457086599144670479812739239995613057430656154142639919331603003655081345289284070252456969680544964850429932498968266701473134756323571185507520245297740191101622171196349822608874706252184492016828059804215009680039109918162505459869290218348722206846587421975234515942595680410352783204649680268086343779608909051298684849136952648086976914865954665003680949033185381411756066348187205829653633663536116957587128077302651351983485970169393202074585295559505538692822177341733792148784023921220235360354185378950664622910056647471540023883308122146262131010224162999172018146964078379711470210617409754941156066820701878486682467420301776727192008783465862454196623906494024343378990967788201740239123710430237468078971710878188608854885183088751010467581486150639817417600752695624221637218296211946507606993847521296766745202942299296540940899106877272886714369385310245831180888713576504767423630549907374505526557454431979376201433120954938082500746182448143840134640021804817848407906439861637539227060842103708046043696573936484523255302535767223013689147876311722057069770890326947994800597047275606954430987342267030805904629168372724732448349713043766790747265019055898443544948587546222775819323889341767980478053957345011965715205405288372757431295008928174224408581980136516541895624066786656676553508506278920674216641537938732996633676763582660989767526283588952797644052941260367434023866670726416118028209013730740008929348884111527951397868354921993203756362438424064337668933689751845727610248677019142776280489464770284040248221018294931389580371097078077239241311292830576869088283206364995056304945400079441981453493361683549071358998503335917849017478898625528484927561169855878284016231126041189561522261996081057129814001226245516891359404355404299292144061365655555268716163185746039596982430150292640908021713846363067845171576189506173511185938113827269710423675448928845564352071357964584448761798164247506710102459966403190414699126109460278271307658342485498992524176440174833530179275921444204077457993247933755773919771835489547216355303810181022752443716168708777607076144248513625321772082097337900206681701102720494850808116895285274006377758145206856235556604217495256040957922843571341495187712613150982549710337755815715614562064461266407329575060255975648202694089867043596155308832705447172973716528039086933399144268367671500156744225536590817956451811432254112623753894245673943540952034530087311506844263660749748063595541254758079225942887198429506464488616042397450023725106021892747314392143235785391340999263599236805150468998488457987392811552111708966099725816259378729185034079735620558472383506208344087924678155541541654917230463266983337253045758542834604027024962840991467637541709844047203172271311424010653110829279957480444249625484689789214090340150699728592095818690457689455330700236346284487922694631021873483222217207438143099978711733421803330063138418380222304763094384312416367223346737951125913278001489562282856404314414908289920924018669129018808236356406110210402672792011589832657109698228796685272400542251852027151576345204248749327367857157816977744098687333997843479782946900314822825900114883349701767265006896315522265621197165622822204896534218040361954112226556190088432911863242331265314765794930003232296078785256388777216451569394250950064622127798889410098182004536670414707417446750190947713824224472210935659901776471816812449801022678138092839349695682251293493010618210929263720379912044205107546696074868990180444622902678653225279969105027017765839801422100803448443722520111957186761388113443277869444188867219387004679238150967301211531756987621389955170578328206016634005963312483288361068311497951010544203923399689555664236732413937446532755546260223877184700369099319939230628001901238616274516346506564716054957379929097787380832245826764930573206438991568495538158941945844052975368336060306151983729130427856813917511452374036184427397648140347597180914280719519195021725425122043712118863919541485974492432912196924183120902700818260441177206332922079631208770424471504793095529949034719207844886706919608823753554444187328004680290835285026528498787799520538278132396233327135309891518785496586947563088748764416820294361813944490042148272866084979648649565810769121305431649746144633357309951628859353758210133264276733057769704570473170696026562270578370500096587064190511744071709860665242356265627060149277773006485039969862001615702434596102898015612019190799615768947518645366742073071898707884215570304791558732184302013571371589831977096639625545828795069079295671258411378395385734082482494422121888583205649292030868525695040210181937677548831655588251104414430290919697103308902040797506704102930886649452718575872197133802487171029069268426441274868024710593628809511808782869309864787250654407053428469777203999222642192923640303611476384023704541350169484835044550938990797162864247270243494229971586340912260422606945127290983002611672429120382604412245077100784816419760848800227099390178772860163326024552740570337135317612203888585295830126579702710434826305518911214357726455186562029217848574109794454423506168959271741099407692888774284413134070896994388746098324280005470953995552026152263623284467131926726534671253357058064344700681365392872595115221383239930481013251964165655932660487162209448544236789111326617357025421431120839856514550096730524670220432753160475849831919301948090958254341872354392373926396186260983498163875567288583487049132321868727211367602147249828106532217067655935749716142826488535260770091739663480102586154705272197017982938003781224323063440824077907682106530615010224992238776899751910336929586627594884746733403917514511750376189836432595841474321511368831215343483295237382563865137463444557187609841458245269001914050287652212888184129194635580472509157672903489414068054642134739742903237767265145699161519717637365817990439320186585138306602932134494527475115963410188721539154621496943036196772814088218599646924158906528901029556116031145224934713643334339280115312903847729487208944056876077405030609167700727302651174442549009851961241302951780208739257502681732656446399847048156884205662625604098221996974372664896843452882657013405542454920805125439118261736678833660208691101302790850168181042278040828317198858394364335393174628967109081527397780843474978947994556594471040548472360418522743945885745187134129632716080389205706908422574318945110834063537455089387974967012516314404567640597737698903493116647322226923929246806974667094990057172018920271460989736031741911085678653047006935304970641807793457698032550291661302829615583798209725291074757633764201662855459851582349597977248323816089663448352416322205938205273205138697707889292367810389516809399248338560568856368774767629913728869064703728311210244555397335800775955425485404108848698749823724042954027045490170210794044493939670187298582945112273728467351833712768846956740822379483250931144869561221928017074037469884774853056174191109020674293813127178696514048703131213518409843109091310738141585245665371272440431949597499523459583062488880543653206084682974383363796313190132036832848807330144349092768028902040157676660757516255141742393337509025667229056849476622467415316075559669264707541662473151763748794263683718559375808838718452487982298655681796291315925431538222932635575420240635187851521599868865700267369960553275330771655527713351143878888774806309771519816649853526102510533113238144206462975830813558886699328704224378040633715673421874383339814356475771960527364885420659691788104919531685402472152726439092951248066247417629814885882054011293147576617529706757965950948984006840785699823234071165645869587212478142666727341220396227178276912954746079891565855827327582781789075864704819740217612375494061326283990878720175624338778259179574377971796732779299479004594711859933838618126043997007668439047143490277747265389387744078735541479274346604327823807610105450859840541109258864594892638080231369869883955818250040974983485181009249047942452582180569457144263012981986611013346253929365382523450173364863620572270917029240027099323504285059811021225477943573144022112139694985282493580178092492390013280464990446388430979987480485345043780186512209207835069279712463716695442489372489693822252345841668995564797334934733237239360606346099200458339179597993001093105128454746342398387164993599845530067256232933973392536858620004513724783687988007237344141952275436988017280974566748774418822827365568797303271516016950055588621138622144022064247820462471450202164896013160373818859105452246605836520624544808108715728351307190566996459890298279781658234424084721998396407234024577084770425578244975414203907857376368990224957674281170247694319759276343830894716891446115817176294280534078546916680897366963761827827753273977925606914801090911694272118353675669441186882848867151155328493403117902696462255489526381904351561705895614631805178942323795656981028511994155967570652287304940550960873055619448809425103614800280698946328021103027989643774370322444115839233914917315726145894984624368058698365137190636786029475984082451886097620477165146776398971048607275167616710819911033541059557918346287352953689141069060032846756202878744908892869911045813323555392327433354790648549145349010583048218252135732996278583457043646427249779116502296169423618059773988140570351081379779629294267970464339038870979262558478973774969045304603458197125725271818645559533613166195595128115700131937562871499503204428949166932572079037454038380749073851848393839538291334550150774004081549682442249774102981655661986210843397499999075488019973182476731055658611961904472182053534359863172513016614888487476827749660365042198138114751536900616257261504945981010323936869875313200428131578072075842358564712902955749663340214955485812730432496974878300250697584163753431228099372973804330914308856604806742645630053481349518166495937177414306612572315754302648086644067435784198238616627782888144079482120960452612834687140852728805131379988144227324464792117388194062525278023384890996107913937927971868875759341476173090487023252995840843732762063616573763699968120771533104970860326269075345568264684452258631758574387017622214364697635809332955894908917931795426286852467133466123280288610644824594989630496012851220469845345519018381425577118882881733038948509908517206448642919570330345967431214099980024245646043074173900462248495726283010697373677724935769076580684712732970863165979032455291539620203131009360995237979878212782094151552544985140130062396756099041277715053153651070579190224723180366864533415355334079190423185987178233161624805236215126196005427183945254029690372091407115190685616590486743616005990366321869390074085217680746050262344767072093916299090123076180413669554660479995028139470102084953103637049824238102947021895369113554142379981862015195089744688273147112809627520918716127818597037560693590908008906718863552436389090230698326161175155321334988635845549556706207494783107501043455399507976144016672370827544887952155680197343602807073810979532307901301999191359677678549253419222683523261797546931092709858382981948617906769049646668368901441904991759707210994187427254729968961980425019876984451753891632635726499589201361098069429375447287055227425470328219534188873478978183097485840807263210517579719288414192558568612977989813842619588347922732812748427716135597258246041436734605262159561317226622686441548810596032400897728416713399910421699901731988304145080911854665669136982326090669806167034898393022965802464001299260104740454554101977597684601788104894673772767554158794273348589747926722975862861305154007896758323227833396684392035702752507171725916945637434444739882932794763110260714445253046142345285310979219400046805640154596472632937043112455603354835003999419935265188659299870154447676221446054547539093885259599557517556871471924900481841809765096298390699489817974715217060412715261251145491757605678665578573309062226957002588707732628349871392906701823672611498633303750650477868848776616711303699965044914096831508870490885181880874315051216688837736969859035179963196587671609862481486966927984090262358591607523441996559151291346476231706529576401331232535353401593875021910101654649633506209289300825207951814149737513566353870209669945458173098396368876943150004134040784266019721953563586286325954851612057333246212743536114756164288876511553706048873067366629410770509227597110843222332186449461534359608549255727856749132396131948622107624352463521433570565363505386473748693695872045202652271395131904701946735522692494119040465257275761995815354621048801934803830378696349324198944757932017299097335287781609972753994773490042961841864207340803399950895241928248140619772245365883156343927152833994766319176923337240724868213794747942019907673283677427914813667823639998446082646468374347257884668874482689867001960500230802834237240154005560373533826109866283950696582996710770305778326608419891137786180789247122271010108350491947564732196442605603174603517462718636798365840136767900718206751282405649859873466686856307145318623844576101909011811576364995975832774785611193463386626242581168055187672626534205680652891516886014474467462601145483443027005116125799427169735692045206824727955193220091352449817371838982504868574035665420176041183599290132690909850780717403255400210065554405847169422492001551288542566773226126033186879295551639551591276832245384765503372656418233457910648361723857264674320483962431971802874201416931623945336617423798505982343296719157509986459232453029260980248628533010074659307444289126492067399704806451841206223589096721657729706908019239397390747592418587827119056605833133257413858896443454669527561308370329602964956575071215987023850790921246270891991503828289375981887827103948838967025134024511892558129394199059846692547185094211930068665000091647008243724564966083697256091902083349893567402911596258620627475509997254988113537659197762344831226623200203214808751829230118819241756010990706698096867735009960342598379799044522181806982073686060684271714089733228995337275872301753236229376868242529954582042830914580188213959235500128398088548015055417212501052874728764453853645721047323980568228375727455384174631217695308357817052600125115274212170049204262784753507524653344076725825030093393154263584696889268996996476171167592585323657794342686392488643044723835282656452225053742020272419974621446702629522292920197226546986617500759673150722350826876579165182191585951283360033960917609516269329423782090907352413573055578140348233044017208282215369266550060367292303504879199449359946556405497179508011020976105021808187625728517858785004083997166397994801282493297591864769847027679087383459880815950917991068681227414211887530647039319041721874040182989284867578371614647763727569844569160417304445608698873051927070056913265683699949070248853239115735903495003903532388404781549879342743749177611518147149744277865894072442534513643195603339911666196235856481276162539285099051963751772267043384852930767292327757792363437512160360201442123042860845431214140473437007906166826463907400735797615062165276836812462507891446103084249707840661702634653336040971786018688082102719616000289526664617336593084206437281348837209454313495985822867114428673570145635431708479362736655263639022312106680455625119854027325965060667690889184994136016130911709360028547949115579740396324368302054685546604370062081755232927060485882923313895121599231250874874840928831806310192048451550051519436477220779347382080872554889138414473219735698485210169143369610087994797680278505479142502116152041826744614742473301920870789617514223541440186412762063131473360336062995536335701368544884706536747608525388718748173790645242478121563081036115096276652913682788140647275779065753790075671719769101558303853943884815010324903516725372408328792971195513386533558158641794321674348264598954779373523032802275354890396091618260407654899301822098832630302117076511722924567011727804545376126541480502250397002663178016674851210697079617268474131628753961285677665472488111871504486445132999585510829019235451203441387925698057066568902792702147524101964389561254119726106838662264451975558176322719300237073741145077547682925452781706831037315284224585938060915211364801727688405892636911653850666211073398575380660740711862175375840034866711486481618952032856406411758473131407454354978228263953849284215966872423739271707530128782202745828518707952800027264024317134569162993191236960148830683138504758882047643810652938408587382283547603530576682660499674479118555858747111760954722999677434519303766742659207393830743005184459894408708662734040219773823483688337051922453865260042140032170656625158278137939909901606211232203097878021384933902217000957479956029113346504223984505832930424255059823063927282438025573113473107870547789203110948331367611657084299152843771324514090989859908075367130336388252064473749219559997096315798654538730367801888935576205205430349334855803276017825194571837295762634353718004315495645817887224283713975021630801319835904935613260529950462589611142905216817049542272897071187549633860336792924137371976996332980503145355357528110865501107732345742068496137238698429230040411693892984461666621054145820333952126818051364014748583340936711672482283336054078298037216905480798129449810136715109418150593904628495835253296535870383737870612546224054986009318954025404490820368152661605083351145204498848213381939811962499829246356888230216248436314558320974059910746360143809090690876175301015891199927858510966787488043747101932853806505755159577446656678498434711046117315427436477946637655113401498012527194936743865952520181159750745756942755290881038324420455201314233367157602814550849631664068307178365207636276393742627576490875169362098325255190714602405783240089382164269300812474995312264274116133677933756662089519489200348772240181287475004616954088020320952908255246987339729584955186905491594927636120292853865045212415131132623098583825389012497348731503141937302510495323606502920242700480430701901451505002256500605349340101978653398562567649597897643950420004020313859139207834078527973073734179734792152869083796170009898034423026572405779815026031879900981754324350442011009596957112804358495590198668708371639382409851634158029770664159927905596277051099119713647435222690921207128706585996744832995404796092034551445945370208629861919517898880393892977526051740292075146673760792456352799591513612513028262826413556872713906628514935202646558158102277013350884902320864018528374345411187320695935721895317524244097201653823812729241121421117293015320673649658883497346462402030062592189900526836459186171973231296264603302803435327491900665575311709840231076230005716256438198108050721213929950321201954796843041030022606658643892247523248982319476589300939125783026017588199374110834522950903006852319966680492136607942377605541776674465491931498244776550823019714867975545639889612091386525945876828390533102361551195258683116766797213079677727012081544920156346094786216390388762857103231081203622985343807008100908916960223555862424168781431588782572350375081729133162060494972452295213858037097795554181047081981544934168871269561020624308862303974860604076920377934001854481884001904974240794108316218084241644902321673494951232520698967498495378612417925512668815736176894278873738240827588344612794292532344756378942448167821546632056208857849798051932351591474966694445748749176261926620735448444685332056872213639885062064515149261446737661763966194776497272479930059099136163931998150939961521404203215362390509222562461460934436111977044997120821591133980837818251364881245832108419802470669521337835820609858243932919280807095326408977239135979329001071686597811942879687961048835418974052969187620306298534944905147213262017895401483865498483428778094288098844179407667825015311676006312464939773662459972135363135738627355442049388184091275096132208176201487418766297613308146455172298786673018041070912849612966947959704447602096004911325765601968102490662739179861847688590440132802341310485610458128681581042268527114941336071935691269635631009248068260020866684407047580083944560869220115536300964608286753818376012845540925505662126786438314383312845005108011440432666296389150675624185448065468594983388610373398038758714747688335781685259607087554466733402322784955264696207883520930960848111137130629232852764125876362719347358607450962245920622038377209191010825064113803201612441609345424597692412265560590975703614759094366953578667093233998555734763277765149222852544308035181928673620361737942385445856380342080537847866935883203439181623609444119755914346198110737135639562605585804194115767920395769099033871796127964395861362243601116255761761668632655967552454849856450087842110726964594067813119983401075032228708457765670268436888055084507281265946779064735407213969768470129903637973879255408128675546984203893318472338922634979606333346779778732116413698904251192237235414166322740739992886570333348816341104900345832180945436719542712251110112382138239501879412779845797201331566265533916383186286686906498311257380858141550405499792827471071607413009257542641647034516054973857230888033900353857416981306902158639877778219500737721696023888552995380611345029663585800803775778716870063038889337318526414731877236638710507885849520874981509873486426176114274417315513883804202090402210918333500298489579774660526599038732882845927462741828970337602713874587944476783874907477952156080318043404581430288848780343029742979282553728114856235341156793745989703206891995315570675206401190758861909488954647514196389146522833336014910734521167442686221200989616204340441456825273921090988037600970598926543386050464991636320908557222565193702078555364878187930280157589990838305032724545278529707688370800768131051457753326417021192229190742410073081677905804783698477160884642081942696207614606981082796266745712708865007519857958105540249794915564750700587051517899497623203993826750777719961682039084006734520489361331942327467682967259209291402817908755282808042800915188625869040823851118415239264124882972487528721169706379889861019914804520419156471932759159210988284378760762176698782413330071292495992599426070010102906089211493530130131876583402111442032557666502702286563164133437180529143570344697585443988843746431828273267757227995641336022715017671851702336735041375070057254961239379603772221750346563560852670918560434680586706806917023875098006112922363248276066110592318998111425158946198549469876165503761209564364218142119050400941199510706347456768193827092949070682986922539936015492767778105597286570904883243369390919063772558199137562493191537900363085524024706924962115801026512512102201444333663430986962954061793017504260121669253332499996059089912128320556523115247514208401202285948713331147512875461349458625924858774547801040782485713891598015118989697951479486434999735003755618953019877975944740693432694509434618572724120687792896256546373464100786002990809110067680614174212363398778467493812997396163195044071208442740869524403612414023998613848565486484843471327640338725479801230731657814267641812412099982748529502779134917834359284578672502489435380979155233560534176270198592709921128956488570388031647625479538642661164793421258970124681418435092401273714752149437456589114364629053600783182546879600294765042406272785641883081681833499395309044271651198745787969820723186483375641579161703120743835739377273089298503275939743803870195369996063823489112720474714163627994554596070514336065962188006241495827167105749349204475005877472474667207642815195475876068562289834593811653896845449608583958078312629969795389366738173183743280575776611926457703103045937227308378065244876805278890670534444425507621083361480834477910211739828433685375408238462220451105330776493685410403247819386712431429007692370933379466115073149388357580295830328042772685250680877773971546694127882201443496683443026494375965336507727414470299650021020403458873727213838283303935929097875771486950873692686700576598035040193563475307257146821791901455748078568754254440734609365916696928441718756736026491333450775573832785965903244646261117919454346294880989996575503106209042255195288773102197460653712989810668119487600057966282855215577237902393961656206755335896275949241687391497521106441088476824468535671252501576258372610010861947787707418796002867262878502939817861399984102494219094260254217508296641185978005793040950533056155607896890798196553592103785648464637522880776981401623514869294039227705604670624598469318167434536073129469832054306001378809221293894549455250389262776192613356159332380216379959981936753155604324802611232930253243461823160087656581072503012732985642241604841340818972579580251388434807848461522349278098638966229171109285883781830631805551196132836020610391967219801687691946546443243317125872301344890783824723768057137384520576339850137687024824464899605572959289814455345084174778501601756231546833154074104749258821566854305416257935081578823955494563387649466713070714507593624461579750647547357921700567934465787844985573677128653985058249569645821137039721493167426237809882753865272303579393642934242239134917140493305482800777744093485438833921884153911714349540743729095381589490334750499176518878047263096802656681465627435605222231709072562884234549347663856946045087622300607903414329578356091009497187001701217645874341870073711527200150075348920521195361065569366487911666674407998396328074866734405942054299617784143975347470803556504434938551357152559414942728120602110917910489243985861560802747425507934260589712157199616389238851083613090465157422654762109809874344609914502956997633174719988758368468901785607237940472619601997285243916642660860426680642707099372055257390487549959413267657708280046839621725740366713285985508994636874736817731632441941231010380943771572744465467033246026184807071610830917293849872544858499693293186168740651037879772506108951602747882803767204670488415464912189256170352541616886574575703089423932925331249506113701958629971179886865410184476755301228607358538026981803628749321534916575021819387682591280603372952594881388576631963192976779335891221678386494650597589968442226570061469010245015064302754584977471824595975402505629508231125430702579597066413089451440032208743314909128630152076093467572100866470812012472351897628477780397344079671748821692565519680242734132112044335931510083883353848257511242864584828111034812397768256295623710415492306026534654810750810595940912882755782962519584502928649958167892118893169804184254097963814489860069810705837977138285403745997700539144470652868919424397405484838382710620977265935653175831869642441454863245899036124134596142197654252539339533874424565802677352061853203883853976509503779624102907256538857277427084368702954543339990723635873599999598403716852321385494487602281311131306830734677103392371791590741579773509648692632614208303648999605271011384660562481281452148934341203400813306701089003980860441475408623704358383035136370950116711441630164560364014263767416495578120381293664862352355985766947950754731423019027291808455142963921257868983606149676744476270898395284497978846061535574526878627328662035468487273056123308803440432762197224858326466129753245092569446789562287622218423783792426030915715013238560350205909592817926282003810302006172200537145876375851511552930130187764061683469974137696578267550209427865846118189015488109438759433130319425729114384689388545506273892031375272166141128791316727910250990661444537211835129250166219769848715731255977909041704592368746725754517310663952207876357974107264882665285638530992729522533819044167380377080980997700018832130962209384816334702448190439553565633644413229951662470907888534023912803881909249652242688050028541941532955347302290409025804167184317996464157746584545336795322603625760672524450641577632847226359779002323565606032337542777175433679451188164378867940437624975047745956934590809904745902917666334421363748977080081978705516678619491797593712786934420103740645736369304411117773525859795304857229046013185454156699364348140930863019460918728733195702718209362032463386259108281520360384277306435104095346851318489480820506468151339089696678962506452849536486741789800412543008094326271753110953941419510223317245405536796681614711682862275891756537952597592215137945152138274769035224452753387808330462363972578692747947995974007753513864255254375553799307932644800986675794987741500699048635690086119392814418944886186214885175572270907408981942079687358537569374613097667648756398615142530128101779305041107404295644795571035702793810946859769579445254716074253832271510631329247107528872569674978260362885597503817385048461927439999914095529547948886013283416402956126355437999771707012120487476563092826847464138586787432423517033924730430600522706145670208067165839131596530117040744119048017661610335953068468933451481463646413351573343706837620668282821331487797138055598289690010099920839796212391043663060767154729469647915097480432547895278284655259704673081279115449868292209956287174955836792079887802596891083200342288997742426332058668909727107539092560410653504743449510836243503929396071392362624597246103303650757213609838969434983700035303660185130220681055794226306696513445706674755433770215537460711418979601586880081006063256246466268828780989365524533839961429935161820619143488577524812216772508976654890576835443688170273096416299386652488106702248020084522289020020636499104561926130709374668569179192767010506637103370522360099901159276259825571652130204285291823321439616794743574805265270472300129031207524704840515098789969060371359410528055244685481777040571574544746880268329710858025886848528852100422999001971693847862265624773443569457611889746434997889931928680594434801139807792088999020045715236781882589880459885516324739409133711959260204119857292445317165591492685199068116316933179145220862758262497368378138437431866675751466131399133071006849334771439728285938685596356803936033990837735803192604880332181796832342186026182770389338119665253284601441685056059998101830326514979392870351500920736439860376545733804538305597384332613252559041920298028955748806045584432975608916138042663256503235812265927366835782647892326311074270958841935938980826398959736666683609560186089241484321387508834465607228389559955266849910971972466017337508791930402239606143314317695605063247363410487958671207486008828529880868403019413934442009302709371248880319735443510778609091122299180660646953700240844039616378272990142086838068006921937197596021112778500695563206831325148592509600943054167023198227530783460612862219331672308823250378707682181886571995742355043279157823175087264108679849278527544468373186299644003772323783881295829557397639515129592507366931405280649679423807990057639812162592821266607038904584181810569050470479083978123977343982889107244858899206810193738930129975202005901000666488136095869236183792156689902724227057883826560153752732006119799143575051419697197538415243477298212862270356317002007735071001787848559816487248496798646876666924031788490114308417997580693806356059346200471935271158391257190666945761202243064877420836689716749582658596863665616516434343916735099015811059145696957026641792492034292673336713603961814279184988263074912164507819063300340664106512196862684654789657859670237680163874039900015815628699906845657015497398805971436938182335929341656691848735860036544825524609744706110503716803208128775891392955853755552512865816049754618759504807798653010717124583224019411273830499002930745720525531796789072979782702054192848828916726297176701392598088706114055847741661723775555748804270587324771697194281764571665260338553271352090910203498280332039469685057186090653521815008694818009066715295140971418280542548099937898732259044569814232640910717720733971712531764752617745211662610837920407927502155358641838565466680762284077201220253632914692163769159550139085634907676256885049601286684036199527187881566916897959497198265337310760753929002769014957717589044451977628224036740979629997374245001265567251364663400071815279948424094807328470278374417718974572443604945447241110956798957823942828011914849498890352375188179744265263486133627101921187231419955308168447150986562722033385242406698870733952542594807529406709279326164526818014764596120546146226325645301129456248423950024842205405593118191339134716706282245363419992089775611166462122866116867048633339340465692887497588083292529321237064140773268763255400947918542244692037427375218252916900843561012883798690744595066241134322953317880481624790820659130854691270996728614423241191506270965321427595593728361046909976869655282113941117865539517356203392222012708240996315137468787179425342891073115045978123597765036470897058553159937770183242404068246612436503259872174791717854187047198937144290520680365461126389696791737296773810061567482916118148297061329991488900121298431731538303233313975033261765185657645675346972744639674794524352364538487747275706899957965943193154380894470788636810272366658538230810708942511123842390595498449119852179079769929589307156643982024676559421645789066654750259691375328404127357081902338948379532622200684792504182852243686733272534223020515474752018596319244932999310244013430818163640034208573141847555742031575722858080157231252643962572267041767738828938050438968855631732649269300876642508701270206200494780007788032926260827849092493619087800333125385814823898628040603082633002157743893245371683720949004956386882658676552975075591497743895239129980029599362204521714564559046587007684693208784642446638481546486761156172754148745694330891928973110452820446650629802043521439311231255208653369368213812016211686629982105422981358352761424021981552936040677007354270033835141841749144675282572693604027140863978880778846299486258167666855581292900429683732382202264822457567905993597845613886876714952653928381598908592668111110728161539151685579068605570249779595616256483747085078244816190781523587254791399338560148853654188799659047227070763348936414015404456473483533846062456628195614291352046296896134388059179131213716507680729148516857829107889038929050314653855498933944810403838606689483677973867376935954669606297894477833032966378663964703272311015608880498412641326242458092667908785447551461529891665031457558409850405817790448751982743474695118715261303904378136017407504830574776557372847719392617959623016224388841252126634343184827075823877167786330840188202784742336574076396737434008358506962655292827599400582297205704984923092478154491596084152410842718718322872786289531701164446671135712351437364692695804097112334523228010765741140127118741779369094849886688190836392505864247957940717276891590708142847836954473333330540041232839808969834716088167568509389575450747291050972143509730071209977884809132192233416638762244496210712831784481259829794585169100448591862584640793342752732597437902405685085558873592870524623272439444040247196579200476510069200935446837136135781357887888981061435825161538830239447595365441065898454174590780755538413104354480127522782497094787044913504219272654407257580444567592948523358595806475416107162798435046462546090868614963221544846018234409473243800554801038608117135780893351843589733728174885310981700857544469830062957845101816253157882600887089816067574681318260437031605220965813976325606666004291893758746851119030827281385695546397422353319548794820512852140474440229726725183323133225348267980337437111997460014730761673931128930304131302467660307743333130103930322823701129444051136080173098203399936644766438689472266129841199735623043336265478309234215583603853387417576516312080217566475048344634083740947410394800285148920781028801380189952267607820995608911234354265006715459584870221250065085983596827275562161874137273898197443916940803241305167857482811305636288056291248905778427891731188783373208398033841982848593606959518409989855772329963696314396363909682513166542804754986602869399146777685910886363125081094074111470066520562664173891747133172675849313602245770501814487689440590873358779813351113717841600358285611774556387941823169193661708433785906625229318070322744075716020218681509503426370120170562824848323600744919427805819096540629579341470642841855886553425138226632119749543285885035170287200058382550609379718300575978314365010688730261898511639728335006084377470936407565092304235299064611500572342412834482998124494247731597876492399945256575917051231828316655286673237920749440455510388685505078136946559442929326348965615699859202376180761808019399682616767256404755284100672235660209227153834559768597119851308649031025587682493733952882270827240798748251065104556473328164442187727506179793710629745290368137866321178406153715195528682789149798252929891852817449580138259231664712852312998308178559990126153485981693142967674064340602500040254477700868526908107036372638878711781807026554974309136516292000392713799172847610875522809124300188340589671693619753468748342648512910957313312249213500304159964681831749985740079858662869953962856949973458913970935263145651708915804270618005852575555458098185920252106457264564449248129587512129250972248559413283117922922904742533357313569533207021639071139464521258566142214302574795597679286656489400287247885999153471211321770979283154300494441373839592513329552260034494088285223562552183444527701882505026907701453948966738795880430651846300783043586746071786783251839595831266511016395839610992368658463231803263170132500787483608520602928959175414068399913645729039123661407848515651783213265334370834973693107971512980553831819982224436216173928539561543416057230690533285768597906615506923693203280778017583792410650552223192233254464840118618510847742977238210029695093573737512778635140997365822163597639453109532622907559526936835723427175006366605492544360612275089809535747878664816901041320209085186578358912653578173859642495255121338444912974523707688604978012441595832003163178392467539198225416604708236765984374780583887768650488353688568228071779222231144777052477716005300307212394534776526233272043984112561203029817376480466949899522003726259202930319318859669537916630301756945496908150469156329315614767652491188310440068691830648388645065580452110884452514770804528610685673498981243609774081725047598195714984513602758022351320849616696263498270489200628394202391075811342867546181124533041695118824416177242331147832574482061684150881828928548614415245095991652028711624767549196695911721161955296066233478879605227987161771872865218011876179931896854692327289034809026629283630952550931410377069513829427772558632033907148422274325871737811391095382426632277798433539330012518505172047637994801757662664137090443043313721101416473475411616494490355434284373886220694097858300102743493917454784861650811557123183101185231080364456244923740432941058919451817418990369968866080103750576437201304781547365639315327823095795355225223447131859543892033567661994321250557386498146481300224523741063939386299043218363332088018667846310102761721342145414849069064010802821806755805008204011816216865535047345162385828207374436456350965100481073309105847484378892633840382846925122620112923719000087523987721967562219174593727189394022081431447652756810435530250594414058892864886266393469525167979616678724312280693726086908323986430657766196029736720360313692026242703546709850713343086261327408091591834759801168917146483037284940377774077915371961658030514729917451256846231521112726916805815701776270548099590225003235384161594968313384906455702692742406569225652669221546044694917584272122719004270379662849589752078817056094482089525553157287029320510298874981319094959692995751089094689093756031943789523972030734292293741888245860099119945302841140403164921438677460595540270509494005590523503149514419682591444677051889347216167095412906055257346469341451324316585607212099441872694453411085675585767143873718706289707490201012557499998521618979849732164477220701210582116390226076360025989170638659022640044162864872676779761072720223257548031596750893746722044537143709028581581543451046223373234467338387567247628419416092465325243883083455173188969115380329437741482789444277977652605286464113783189523792921182886962851719154987239121015894795830984083899631447405592368071282246986341489093363363631450647872068547292687033855942270633695631466526769778893577043518612762238596113327127414431026016904084899189410062738552745239310974698304282234414775391193106287293935111408374628455007979600068651047423157057355804634520169887583804125199270393159035580434699276948383551990000256889709650942819394228058207419002731218052201676306852605550566242489074723701419168055778600407482760325924145144355759378548632604315493496502550577443593184683899161202610393831473532027347044722373828557218265769136967248116669409305872727530726262866979174659682809924391465742881680660258280343045884469071783070024995076015237607285438823338784508077766456334376077375941777720686713772173710358516039926671062744108556433687673508806939714010456070080881483750952336515390167105737890568449365914340769954541641140452859427971802240916658609565644707362187524389176669389189432134534197350908765041539086693629443873038655993895414875760246024062674365246602033986670882255122991499247803107541725975732834426181737115171526071680629806484640692278992075050491777818912130762049350527105790641208237044306149580835204262971932682203877926032550523924595808913817259430514133585416570655877505478359171531319920683263550302955171030094638104501681830770224073004355164298429858590923386024249343904841185721500944619217074478237547932570382824237330190473476095061273722492470951110575265188857357142550773384907231004671493545821290916671200907574489970771072407124423216727921823338098368031294469307420554906866572159164114280224001875536887605213954447759220303919585995876501686935947511637246368064953195943858495519775158853606019183750603724092077172741292955235138502397636337926067247586141667347006234224921710462263779985019901742489072060081196395289191918071527660664916143769402444319084980643307562987753082563747328132787083120484397128767149933340930447073482485139170725394089470592512640600846087804141442499243737704362466179644691790993284894973089288763210763301702887402103450172426994671688094909043046909080842173070564132001071447647757826876056723257381062748655107031828934533436473147531991465719410518129471463638201111457484428915853865330205214522170864481472328522372507995351376330233627691455602824352370083910774281145406230245302444669230281581809635497309081753026038693221860249048586795898292382287431552526721599813127891411836038173069552205932445021391343320686923795588203101352811445392459248719905126968132214588521495961500841380697215291816553617959525949041752737864534437285400447498166365028028161784900662626554936172814267418117396366584766247615058783758896047341806311221565963817330160394327656843235570213494698837295059148711817347752597713062393437005154597171868442201015898342081317974651434873114714822364930789966236301084582585154812893775754119567764697299526721995036528465434745440733368791401766520771921822269305652123908962444143927667847481261018931750700890616106395900341563881406321299527776262084351156249961961390171192026985788775133641301303656453549801385549966977940256934504936479006129359489373864804533992045473816413857154669636406317414111829337417050922652866809100997213170705565958042506332268416163602520802786223290699989915627782033044623814745916730366430703198557418169199856880193742598121380426957745383142169528818920991077654907196149217349835744346152290072553458126590803165219477360650957569545967631463896979266121887267483066855374054003619490259676952478547593932668726396553678538192833053101979139984299205206528666502996632161868491399963601120754084122497003913718823586509207887637235836930741908521792360534751168910847398105721657747276339760011786354893082360808255519030113050615444551677365943214532501082040301744620102420526823640960482616438434197515875402158152604471433775148292205733402405058790789926663264793350904381436306978862493563754362661946762054881053707817723771664778858795683332359287921470907270755190998407589445430701332646633392102985246853096830702748547102612208852659838160576439774494843703182486448825216057305497676164513152932595356320599820949683094925222262664205541261566775070395138402853807461058174798073200335812129145602391095901743191671954852318899925363447891663877851446751907521320862008175817929462733599318803308295001751836739935910531699777837620292894355865610240056463638154743240854691282984079515232874284749583670315028345993951301964599886493703677138878875027890983487872291747051835273628415727508295266670783292498260522566295550195011343534085929156999365246650474652868310071785787547207710982458317768542696413879034481197124072062082492222944112719213489245469408026091019258049286510292556280075961027746879440958089019181531877007284304923123823670448023844156337298128352797740589263215863327281900953738472794024523471849919221310987802224295495290414668118155811007405592506475211058983645770227710261018096712189531213294662856074086553907291280813848119072695126500532191728591656954595701550429612211586902344838281640902443696002740389781300468307433267628606539020979060097986394409173885026276338283203740593738015731738728601661695965972434595600547213363260108660130898034224365078638254526169770323120959923342318168861565018873415544555523311050985322427861505331013801290440403997774015278879718641545991469230150894784930843457689344350764237598151542665407070968952156171197852351015338570278737225246106592805513046753342302819790671086263379232518189249807214669417896970780010169594215720498399146399012671893157686610476093339301359767293373647115130339052706960820990522191882268713323973875976849832075873462863332034967398437667853331736517461314870393205208554417642346747564276395374102098537626498998697380844195043395676110312968698770014885394095298308169946890911772667930666085850575273850912832671682368449209005509820989030473100385325917072250888526270517292754841484668041247630738556513871949447259525669427776056386267601433190524868401124532131646082495295635431164567195290044773018010028743894437415676503859812859903499179796291635577860932067833596014429406407333426011507827226091926500469754130637923802576553905780962387649711909197196049773498081132456048070771379498411795788105214235551772840987211864120146641950259049127043355599679377914179136761024760333496334787005573553755744587427175618135441882134557231066506845785838548312090736283133358841201596828642648918134795977776031772504213603207981797650032143571801435949488702637119563471518978663421494783207634021364618775633523600126457174935163492774294092618606105324583762864096909860592649083700946386160838958199893661872728055449226798774149937979884620868836086157029467862333495799965909236542067681298142821198433551488378049020169511861840165495389217901264058336991712441966114696871380838873411995517523771574261443407592241955011993216459096687206360490406766235443311896454506204638977028307770030146396712324721274687425880163086880876605773716800109882450825541864807293366194392647432092161922596930984496705643482026549122043132751560566648278169673245305883527492269477675321535935115566151005893936834114058682460459444354133630978319343411824683248290426623952874024174740485945864480523002062707693286758285902710863675764939582922620988501181903114031477161012862684419132536810362675423079510151435106283660917066280319007313922238141499852920785110124065968068047350248772754686925284469287997529941561746387188272298162613942676377321635557570783108791176670652013930723797195894630077748489790441842269737382654374299721036373956014684528561834157427836382658332004340327889221657861648590162752294154864143481328003782734208626064719344512662906330873930742470946181917699336029053494111228610688292108213293028412305294340012302690992284146734935588873309360533830526235189370850071365683814373585745081403462684563013631032374974155156618988538708534605815851387450310065301612770733865885057137898320676349044798524048353988700643063730113131992990822781303283307412516787891733999655588356816581512561720071753569917575724987185033739176488117949836921046280963398361189221496523449187746064439357429977557739634129581740932670341788844507359429364677705716366496055398432453862727084969156196697518124535188354535490725680604073572534326890726649379508492019756004639212622780666758202963498768033318079439756411545513847540282120620008574300339436259999002084423615071690314569001193795764280883313867450662406464272021607242999738080232674561961762591693766233333430679048931301753463026242312046555078302056911127293012937869555665573887776426103707516183885599886915879933489871581814128999937824395226846984291151456128254661824616516461540995093237965217806335762875189916145254090174662154516244194447254807917703596171065686501619530055573760072829586682035783640667132509784504361283642337224056305287900976312183289766987645442492626955018777289171964038160150743941013013068595520085815763827518133782780219382642015540750597614566680259135943100116801832517380026758734582002807748933156798671577165697795630125810622080349537822108941810924065302173769970027533889723548436022141188449861203822284658002009365119999979501325407099736065068298066512654843330802545455280936184293583743624290405060072639752002818175757871149673200372631715579748773290057054467243020916435113530774016881267305175533618102074228613147003790797129756397395082071016816695705191377245489301987948410237469180615133806946007675143137303002801550177424706342042151200171384687724236245045659515325039288200870853642905285869134423402617169234767489508419770738412017666833088922699520773607777595396236980786567536466120442358560444642435992773112040670681857035647585557201014932279949982337122059505966319315191910445014851994848285458116268681212983993951260442960977190545944508473819584244170510348173324614649116638587223177962947541743950489177757860371642235097249247736476079205258522633911864224829090883470772511721536221956511881071069582936704183276152530834000562734335363413562899822409546924136376239768027768509574020237259090078929397972714881403629690279818525205311377909792099506619863705202587597996270978019499884190355048076159603210616401104317490905160200002792255255591288880676548298106713550726628248395869297961660843238128408054184997892346081751554355658849447233411007818469377953254593329638427551952910078171030971197931572816253582391909320130507713223679287327369924197596051155251633262185566210117001260155552769294769798466005584825767587388647773398240187094457227973272059594290224000612667565499386132034775516038364556178124980709312453363607750619246935100231039979141743451697052652820672672192738562396601375190977034727487984322354178675288976573655428005150925169636604954520830791611421534949763537655327601756169281465205435603460636271870138962014368344432998150518787345999002147545318419222008501885670390551511480286942254875576507889337514597183582962952549741327917293401637295609826809607758480804537966883575912286553338849855890035965932926812029359122933135472582171898073796567710163732658741099408635213673105297295997771598937754792980939705594633087448835352126532828004627084823749559779808403359556093517355335334851254034463615558560342149330242781854081611773011967724568879270805424262725527253010507382207294024998851817829332926255233367733352289967911747443140939631836803564292155844454683123572426927201198269056460530646742141622910406853820024924384138953389087720007038307387499406907768431927115695702164612288145054117289850054495879677938778554651311564484555355712907647625225646061026520603553345453453374611391677482277323183083445410247791114526959243240446048163241447333536807540864884983169160635836536356789005988732436943839406152309006959108588229610607804517609548743331970478197386405214351023767806515082821068125370585959052378131650239554851697132325603399487652287953327512163161763981388953247221432992314090539679827495092396259201723340070254888820903368596968513349579051248724905637769181824397843835825415362911610257176785844696964281907239569416615513983474603983143893534735406514974094984688560889289061197651672204623372052796573460204552902409517104979896816261771724398585306085530048427103505843317196144133977083155442489533922204754116837923679719059780554617395245623246403088916289823041201043556897156221259828291991594427762430151966223458885890166487809359470362978730210885918353318087475818266706536699870822591767316508451614943427461394863279033204788400012097851556104001504898954297393312851762313866475119173804578327885448043383879466533060490998233072220148099725267809796703238387612289634603531821092199051603022018289250458472272320237444502616567264373518528067987933707913798083427484187089984036439953618133442513603983957090824378057682971820449651299411996455221392970840875363119384245809597471432078426760628956745745865839811595864370926674393910928626383005258359015142607767436637214783053047673343746878109971339024625445128823183033119406110411932602946466428180386904962720805383543421170046066905691670491473417291516216602733575335200935655510160238303337908857349917562639160913714722487835830822163830660315177801023121965808747376109285041485710806207631691974099445052346588569006029098486243718780937194791585469147468521098196106464919025049498307232061691338373331398043252644826987460072557206086736163110887332367472146409699750674705240670083571744158329303027402986582236897197060264544739052851039633938905016724959318196210514884036465013332488159041512557068749303777230779619377832441645028496335352490355141801434650164534178531980235794939848357281104226111505877736233406160896469711483466113714193726665608076447547277195586407479585452417618167612913535076018454863610016190815798260124288653540532796355804051894086039996322409727765087497547204764170227481700699766088854936517866023796407238407581192306551283420656788050385434929193586182074201870398759887314332418492869669552386220791627512854942476564820144506423395053991880255313683356662661338620021372139991379098482821385294859576023896844690118808256013417405820466671430641230327161825635009699235648425364546197760926007200002344442715803249674235515375932847506733916311250659465937371760314803524374906002727228408100669239075131136453991420776781373593863703529353083226155152837976683436580740106193518830129541117787404934895312457980220453176694185478955030144222473765542929350399608104238594467840078315603675218544780823632477951757022181119772988568373706267020853356863907561956588976613303476436340590390036371274602694171571538663021567111113756592569209917305908226580948394447975839325200199824093003677786800579250460061060366907177160142268721388519661926985032047828851905381392198610593214253893352514450368401559417793200513118851916244594879249255178452395307256169125218760553192622369522065909007015111267526140771423761680134824589127627354086592320805128906858177683075136078778019732548862827824982911357707017551544039667366264595626214039971142953745521194314799956989836694804387964632357975010721779508623111386393611717922217681383064634703113889611008171585437719336789517760294513554012337585915024373199044139164922785907884558310870480145449002387218181988314060865161476673165048570119807610537130384922241980922247740584969636479361448694898483537821811672441011557901868377934549521030231428973283133589195162281421933222493776280852263793303423013850564123553687935728015070363483184001804825917607930925990727562217475876630963107502763384987229062673836747342716087691528375616953705129620512210643099819376156338851788389669394534722507093546825728033670322069621529970465098722335657384913390685428834649274048075150706899235070928553998669581695907895263161916957862965270801225440170738419847385741900753866845359442785474770381463436380352227931486733535648437479251625047677036693629578988276926698017355212452525944791025751902070853889088120177668814427998794030740930621386480518035248870202801096441482931887139125493787886541006810238841814452134386872222973387860279057419018055340953686617997894566535163707339587245124953640277263181384703115359931474619591127577141230702406925370212371312273181113020965108356260503861425058927398749579610468626313725993076794256561537190822533408647437691625169954030971125029298151080971572615310175753132088730331224056892997152332434270173956981169164555438901975448281423779628849295384244532105734770177428008229116333509743493828460789574624515608013244028238083264375854921673111159098195708350851630237894174250900220234368998103412752010875245643792478139395621076238901845882540410342160562069492976022831986926792439243126276851094572041523831218316730524862323003726350120579963658207208769950821552011901410191782357130780667435284028556736456869494372262365504957806106971422405123012201492347276572489763047157483112413461115612953663784032622467185127332169025091810375230004521762940499552389765363918138042561285773374402891347581527315638300456557802951457789717686278030786258187653034901898955364357679947911367951894771490825038313166727141343704196653921402274975536144354140929334634119186586402004947273371475264457444167549254120108070175670390917061842956802940094566263241779206009689087902653894133963813707785542712032564640909299857691735002374355409850873065707481374434791052531215487961124245027187662008870976051770376654198123164746569346726545160339149350659757440016887251796258664114536622383788568617820408098219797386550812447360747619838619749544287163500126730737780843038882380703081065645893997264450875520474520646208376137494677974114844018579101200836932470183723982347358236519944766882697089939888219695529860821103640202606822109539615510742537990014830493354000871308022771345252108483787418844928752209461871345259164464858877401526029221482602235747133250752786429571862869046758784242028836858900514376231812266633646814111219521184089653383407553718264208144764410409056955367963559032737033793777442414685290821616869277591487724675586462454242975678608787794014401497762832750670066972710753144693377763494804552542039423315302797176306652463647145736134920461750200043319135744768755833894893351436066601107717378526848403254933301363207975852972989057673417322998103907395275551970428099532960111587187495311915218540863425569138283438011648442947687071832765761918032316186674117663445523465917154492762190663369297609318357271413816783213957530689230021565002012323551944554757708111363194430572767370394843331328673915814071507439683688323014149557211523490688672214612831338032898412619393002561942430312053427259570944275049965322400682577846229836337044707950382096027354400278113608394346732773151931398662856028074908017630131042357097036485462327023346585577487917126663083787432445061373343535194318954862468334874265961891923962850587796514008996751294932461182314109595384783974617319050877867469881623279310915480598754295583008058303497931919669858703293805605131987409111858043615080622280934066031648711609893206858711938682583066322398803996223537124084403930544990079160664099692287526037402502832493395288402888837459301995455431456802440018783387232328453592168700041201603339970629886761826149156607265006163498725476069480588422792099650265814346167598988132590039142304472652360520841526728856713951622673780692120580879907837677686949933190791601759266548840071127024182506978659807810138989110485091646701559636271653795177030605799717516847719940517528320352927810507757482833810875796644696189655573846897461464713254600131364690682335762122288505947924939425491237967038501995753138876972294407249474854576572398774280071717200970124070733932477872012469042678187523590915379041700603848183669885851397152454146266498523680419002070842812491640326133234785728279086321505202736522194477077315308127708559722515117146314933062951660860745409975143404935806506241465614273872390401612351823983420424897755218558690532133629805818118281402787301141726967648761719582418138127441032485804330493450302021267158843272457727859272637031315897720131866184019568674204252138260331593958318344664306974314185242170189500526528370162089813605667661009481726369508834812754783168007357939859213346509662176021893389304602815614057896682058537210272608803403609502749751025064583356931614448995708729026434981814257657856989826269432931192776336018199183291377770580991308320486897225376982722151276679403365340451655887727748011818653228966245034914600196277627286307841880441664118753751890454826503907272627624267657385530437890235823600007521655687004845955781924746870919512856990435564842126109343329833968518076117522355080444213909614413738484373105964095920297879864475019202718821425518104109290228571955201516230223543780211362049058710470574044102971502892507909916099819765556941428539128989437399068747291010670322126293970628060749108625672762188079039909284179933240856502276088219570415435565600935535643035320066019009666167779274695959913224574184288836079857396016112711561549421153271812897067985873219433861802888275389168088504989012405237722377543845397909987667228633804480954766664791888923366758933425044508861200992038811355743324802354018527859672825612678845481454380505395752436051377644869426722960952560253998961813121521898120499347846047147560066812966740526124029750785445215050010023522960274993669403242159893454240139015918804967596816255536110099161728859506155671017479746026036392416552780942696021410330037915526835471693921415857199727201427706251352090370820299984993939482617030042553098118293721336446267763669994731585933817861604383875411892494462998509646173286073534047164151775872179301734192197311706340571557530869566649239438100004768877712821231123329696016296672192359211845745480562224611155263643568513919367479451164172285168628325328039467966098603473424179507510460352656693568941353464115096858374695215994888461673529273542751651322589739111151702494226794866130191967632116125896645407630192965505830097834306421477625173411631920105238260600126604515421612799642193148246896635902439114773723543559910014674151879295891905345850052613248528545812147823809623528500453705866408028907084825620838341059500666252784824916745604764971146650700217319405269507827008088723215821023343482368185765594545127468929930831320946141972602805605044005488420320430430867990502847287898447516560955883465248947247211732680955237806516502266984180090000613442954500538593219880814789236184940265891877007551004002027675018359298398144006159053789568440876921427459925987371350415188477716207334697829322798300917485488651721217170644210904874914532281595985067661003129473612030284762525916490292533318181416717241312911683133292498268305073746763361079037441463169301745502043114327168358498103919070125193419206141966229432171737404875280726661487036275012421511565884763785623248749793943639941952726463278201883272540349370686088689036842099041623710263477670578945198755525103852818481741039287365357679990371498499254820144728516823476103989467710832138413003648555317086722100595019068981266260740293389594744139360267631293382764592122750400862270177294140606829856521912075212130856522158589871060028678598712034060114680428245403403581365139615824869746186244048983365649760238919046205515573186151473892843825981228947043184079706420374484083291189593321897713596047818912362768910927629856112971130499406728347272665550729563880051389260558901113069419544715468535714945934588253082402478620782295240596417292607135060379488175559640605634051277335222953788982642241635737647510848997372184492063396549784827197611431285390648511974293462769350441878648975228727050214773390904186237498908743780627205345364386869849812130577846451201396627389765330326083408854046635658899486236191234799587153290120981653633387588071978330414873041552118998562465735222370891269318620408087804548468598483988641334222491971661293087565709289999993181244497610288929281484399530193038891524202925593451823871894093201177282038025560250062958342055052624930835355682140437693612828624232362063292986548310541134399266703851232762014064328719114709377542300467489103877351765109105444640118354324735704196647286504109846249543061742065489606250576222816819201327743663228301355496309541335767639520548613086644878021072891523015026162279690755029545369536218904913298384572387893598962809134556596189503851083799645812426049239248053554185827490354472353149404048292279302642033446305750022408621890735217469765287281507578714920154588411628049450640591537960785609016410697683156417430793642407815365642355829740592178732440976192614990038560306016253192195282384944349642052647255855243979059795907258699209065405905040175296381693603917350338942646165695640245148966558632220988865726229887679284535695234966260116322318449369662890144795673143595875288498562060169618857913934292337382535265015404727608454648554917071668881873925897518681998907927528276567456837710667516030007981590516575989186433420432330510723360272778218896892160350825111680554782540343198065892041795749618928999539444017766180447019755799088998167149543507081714525346062046185922383254669534577162691009627717725464903612588275332170576647327471400997596025992943049264969795019921428058203134018661586627148071964352682452415261417025818588526733133684565997998463604425481945763899076548194669867662434736110495356781027610631080286814933942944497487079596663265847531231039188076369874643902168631091427138980307761577814763813789080281388796281345882531747219375350429706011776790439000829419792389599729273844751373233669548428196308599363824158904735877151647538348079034724969616844360951977103408913565189256784096123741427039373555657422476077226714633397825286444651102420149751130088139608402164105950505606776926327919940758936126610715729392884177848832816626379525461194999666881073549812577190551984760656641560080156007731300813827280783454360531565308285026693960260661970847762003846277754006398163418321197973720765321564486191113283873215749948294703408620630732342637680368861225437043527338983269619895574359236573075160038332710212585673752029505791186196031172149847205041998230343582560059895826983111711537547605667999203078707459765885686169508963670271342762891468243495283009188984313162021681171117288578847247504688144794667354351394038254806080546541471911882920537684749444347743723386584200723213486754637645257978586323694081350783719163116607304649210412841253288888971601558689305089090151288490511214283638135152690887625502516392083045324161088833731578475310072999253652952524503429497832622683089012908511392387138013139740782959400881223792819320126260802927886322989200610971567532959052601960663336633448607570118171274408630469369384597156790455246113491475586051004404674970511263769976986451362514842455337220419279246079099004368048050799969867025586926471198124628805282906348737419584814401878352767549487916738286168573550102458990756106067341994885630530413214203187453464857594063791318532075157362583452971628098173507449815702478159673947013878298538271391657724578954568833237026832870593005163945702321413896695765448147897680107663852317063663841136348797176483760088289415311619880511689069264151735701989921448617855980532502317501272804305228393147544197807829958236388079954555374272804878887907525435905651890053879695898954902707422567922072181641731650286397449579969035219236477879502491154620894509805744779078043678206522457456198497563901092836601108683826029824656935057027062902166382670092907828625089980681057136506097730750471746022683025797316156193464266665181076693920736870361558078877250826986868222208791211167453190945340618689662225443733864635976289658624661392876004210943224154202092599839016016035427585865726172287135239244352704108447458770619744102195203739399919321157049299697145191632571712797513484357574829229726771294296123785497045438591831547818088044135191979514393426981176562474639212024683418905611519601991360067462274150305567013916016768371142467432699557814177854695413629963387872454461361010447852202243604701311918680174857024292257069121082456309202291573505867141700822742614809193765501840400176726559261907599612582417011740336421991050932928918429428889912582226557899168003958587815994148188133431348418758295931501692651481951451622442433249993786660621704743075766973563778928138087690296488752174624702905315351921562123507958658989545754666680191583607894243510339527442385720776450500695641764925226366211625344128384964044437455965497586594959559163478863254207411928634916102016316952781373314818172464809214669332705361652206016833207666600713129653842928645514779433138719291231281169134079483966946424419008559712035220957744945439710258478747366530782627783719720834305639694612616240178324233476555013817869376614918032335318308065583154074286131749820166093782877561093477424945054566842046029231806569721122118796002884611820036967797209179154536555177716699256061619838237770899641739572973617110166759772727671805692494370244996629155876809896329242705676453568295752032180253940342183851872249955906360721692639632939995260394728665723614470520749768245687331902297839057346422836790285109146006371754182341950302428074659442867641232367514995254113708306398035021229966992247626413519480266487454670360375154869050470869584152063792943223168002345450876353508143909018108738277609638207798321223444219201596202161499420618977286810329583066864977221289300023227126702005579146475767567564742644427799295773075730518886788447580834563630535507714788792607459139812074989738118665805963691630620293515538227826288997333573471136947553608703951381021630360222307602414489553863539309732916900615416757327158604702874052909198564319366156825671721647410062852723396144066301801759339249123186089089744767614804354458276304527174788396994075444281686388039633043772974880087172841035283446301886732904919259787442347432061485557013656937802641837340395168047404998709632324194663268293639691597813615097582455745399908607424277667597278397625323457851274811230471338802445592426086546956234914123701862987253904983745946566112993411019646042040189933032869325913210934326599212753605181942810625054734908430227538775416486865483673475305354519186485773543568543491119280647523739184019352302171803463675537325863359442921827202274107370225589777769819486603304993990414801135428732321814060833720844002049937265292930022662485227030143166419112406419088576214715198217185494340198890770888163440702677729460344052006414470442026242695691945669375627171116352778171838801310815572123323995151473167096433909584106560688440346941510837759929993626638841276621899746906807967873309227105652623814480922907816851384350287783290015602944823594064199453914091918741083360005134426460991654463805155105364640826848367877479464465894876425037178957249386410525702077894705509901159554551261417812284234562187465143264495156488704258660600460284466249313238693584496419451129512454444585491846540261510404275684122163656510655015148367551802802325668408119041587531171259190589102196486232534824804462272393510982293865664534121102167509066778452962250695289957955861205266371389898290322245799909130049532428908131847381250121015393054850433982023890977430938516544689482531172816701112491874137753500462974718424539069703371443030817685347377648293519312716533921635957820676930469848421772714138810372082272732761108323764803221759636340360668566820799418774340643962291804551209484476303992921143559448268941549597970608280449061251690262772038237673832899354312387909006256124617244739588199787029865175216390099808172095662975587533421159167443864634604704525506422513996327899687796472765895682920117635556880705485846903832913885331696822718257094557779878833395355720329062684295050679939319853348001816538160940302939715728893727341717047955575531649212165667592122312007576307945437211254850728569398919720826777347365424634018752959192810876787772234319950842472023460283482641124197132958763145623801574904662728776214285139821397248721667301442572240025773167160646070332573944656545036586927082955757808568159352421149442887412406422876585903805138427593751167576164356548560254619088799682633895962470999456808247774944099132023224879134408235045246242708310367159242243814529175985820439283964953483226625996049630283684262947840583339953480472494880120967996277290640545962632104339182285013275194139159374975420024794267478994223971870275350913731789090166003356627850117933132712656404882956775726520675091459401280917008701232173069707975792549281307020245635997862309855119910186693267836777489450227593375598263595829594904517663830639470907068602791445301236054180635229990723499331093026652587912724796710365271496312856250557163666132605837003175081285078374159107723247745741876083555482863109681480578699032125246393035011866668082057136939206704139540483810688374860131868054077840415340009393395198429274941546203418143368328749658840560186259555624315195507769117057544196974088906811005638008497278120547618449634167024471928698721626467277872286484498094218112293270866617674640729456844186624467357936290412949057239653734738932930105162740690017741229929401121765019932659681610510979316235136288585947886239283449665436382550829197930352306294915705981734579346993293078536976232950425125436070102892141278022941727092151018652329745687580284423092016361996961616338329706852937860064955190738090272500265388099703529175741451153209354351387723950279010182163695752444266675115006133019996411633357090943037912907678659229824991077473006193602624395056250077465441546081326046965209851191492089049483787225581260551602426577693057355129869439454724204612797828759494143465781284236209199139001720110592205495290802999866536176519225880048831041248627433356784136318648357651375286661885073218170736257751311251615538543741154289028801562574214171592091868151635821284280902173470306366490915140774467690680313337779849765935381466789617516237685675929940835544540563030519519376307889616622574575472897081323898091049942909434145734402304706896685904533752702320556610626351638405789067330439487553112954600459597741743704715057504057889647947234374133794624319442087594372150046563443888239927656091813234155903542187110282002654889703299747086264173973147725053241480622804905679503102267402439467541065113774230819833370040481025475423454588121729960803903376737369876112959636623171877311338761444486044157659889502065951625485161988370797764222698205181777133166827330299746968249010687585009375471952020158916001753127317668973007600198059487178775204643036438882470716820319495205071494360880664514479040935554602676159688154103293865416330243749684299187342086111402238958849499462951817132887574238990199799899941000819189896060074260011931575384507619985980994443912626574935825223384352328770278440868991919273665779636816341593058969285373656860284164192702667600802538865498322711572606075718321791746410747699439434868628827496601655204703632942150891364880238933167965740082302338572772027404557902902471936346045741489263022405027754751092734433941385640850038400894443053722513911434132565731986467299613678089490901036363420753354619001704651679796145186218686191908621833331016341209763994248612761539383738907517972222181655805864462114034154183505981982855961080274661416073291534770862877282151265970074031740083404554046567927625873008990126690753522126505575787486957983399545132618344098487786375353669402247296863538946157993930690959512973137379354692434411299608167845916679500583749249610581911217054949281430123324564717153124856655718099716372344809000574137788040645126566334972337858726869398130959012476613168689371518223625882505526012252521804243803728327291078838171307615720297394159180395391004599644564079832169861416916044813814956398369882342719953908041287055249542366174097777471969253028161413867634740305162967243420589975008817584267086896081975117916915970831858307638675251921885412494592815648761746790025636835669152168998361215876416580454158943122195884855723378406948035610655237637392692535674136228340454866880105771918040394594211206074947262570467019476394700881674228153792363788162059939652583736880963847441205070516237141128176216264494330932441083980852858062049988421419811757935265624748587992195680586300664826340485607431038682788552089142001334289356120568337926645391298777192101083708285618022912185842878728521693330594689335324186379945571279673924822855226001027943782304110890085111218756847524786865799595948634515845679138047846939880753700800833031860453242162586011069483713996227553193522195405405429300417724284767069895760709758121612614647000610047100085234756742400847579159990602630824929712947089575805184069504531603833461970861581065072917607277976039750376471921370796932401032324524434061263644040664936499631709888392127450985952562341272558413280245547690642490461770584888029350212469638736989448125295901096867875695618168786935138697176828202420306677203192713604554201143011286716213473630617092660254317764128264771544192660768279714710045582316043503048088695451808544642382865140627852733377985143630296126241492575239540183428798738197083147484380762981443895815521878358557685949464014474272782306866916254261030353751736207623901496677047032382263234614671078644543358117673439130638004614589017615152014560060893532156735534384055350946588595604793505400992292314224029580172799970853439097538685364945320287925885925036085199656021413027352173528011277754776980736251648492352040385687327749775391056759214839620969041348542397975430863200760281004900114000097767957439791039442067911653689539618308981053611721110547107017713435394607129862947982507766203391560402502543566385528608996383183136643417611155436212821494262307271925926491446472391029065514816565356553882888912050985441898827061969312185389175977755827852863737237218847090552006407937960196220027852933589698235582251152461658363223455735124911549201663067998102395365203654213402711635546140902770312649129596321596479990230752598328336725981947905250156503326524562983884629731845615852449813158351280014040103189923896746589788695417889983677055536846177648554075893567598721550747607773588622720731218888565791640761422358412184113208100090969234696874363042490290390748935551478644069415108384104893614687315198414585671711121111274031362377710857468057497315039109022772717199314694568134910361819188361150889651703826550595428288240497726707754982864070563554486873520404799488737530985604290884594834067174645895982807598783144509329950117871681290458736304231761838104228985824349799333123166498084877960405172702784861083420098361950025502676582123949090388158590490267129420491427036906320864023928166770050699474552682405707619462695338198948464763788346327635000432337046394616027605891016036326854550127844211897952128177689977839447843485513353661212561679387341743802205928543267665168533408131543883531513190783223854198061892483276031658771156490271357630605800524648156596205796914785963275288364372960284092134950759561345439382453955960643604428327255687474628834630261986744430763084785331295610535489211677080809176979591745028995817538276392432844638371588190046058514331217799909771612371780084662645777831273120930855225435505385409617772014700987309162297036764667317724840943247275799531709334769849119685319085336420361807608301455082857010476053584871010868810366513476288344209349742652229509397274920575040677980879459285828011734081508971796340934252362049198839146589413877638326346216324166204231191486744944164157068041542161596941276686904690343320338642491022007788495499555194667437568393027205954505695898495607606413419591568123486546092915039697520936533078337533547799059607823090885926286642086214866768338439828272467670173059561785765398250028387497052640570247955129298496242333949771836822972426083436020903073255089006225640598459696706033985512942829107874567709859165590565921852043035164649736067225988023362927823587946403499190824366430464562203817098451228692991659269210173061428461205458373208283737248028927847656101602002103739948470389766374967494412591679518425801165904184138822473103076745188433411232633429949230008590146554424334047491840498198890338724277451546114228043862284344250350645737287219597002220806950065839883429932065506328888587334901736311674700587831041974321928934936450894901119207452460977879555294509483014020793306837418902855510759270410491117170133166735808435823694889503696699806768212644021212909574898504026758135294789753645339782405234944503553700639405915335913610815367978912422895211645246331659536008423458554006104737023656216564360016111381577370870332830088455393390153879846647161578597094602168273071875595523869690891305296633561461687256637033714429626430242462308929798853744241317859094307961964192540562942317838497664249935806771627708995461051135272421212811297159297388365081015365700225784538306155446453475064761634496061906208642879289102247216049367281918568893016001712268734331081800009736725484883493329403494067944433348650293113916334100207672383869793886574711939219778961801041969507844453479457218230855646674587339125835222338936003547453433996694335249045188139593151899120001861642282129161769153745664119832340849326513385997790743438739809629341302090509320504159609171115550145070889446309642770781451522430884487632861862334998663929539876666942645118506497279891936470678713051238342323283433607644734141028501206416344289640695989156853654239580157542737926813277042277546186919576612910306516217146430208567841081742448242535911110686795553488045860130323606088910412641968343995816316440572993894885926922299182146042607446841060786978653821531594564684183180916845312070290158241740745446259366488876312278081437274495308673233906174461508690894714439998574874869706298608590268661455940681281920544310238863264534231455003325634202895065268607508225851152911759427542935519361861720352245323001246094391538047325819266446735275156899848013114491937726970475655406930965422951637816913320866824965548984999029877456683338344771795360651370242236892598906438040486096759968384532199949015235914738641404923110977978601641730367704676326617919881264947898129314538550763862703323681211018486036747399989759974710360949321425539079209079087444277541189166773203813639419639139024580556288079379212097586746074870221842738046651343184003853728951615384998747622165061720454348596080615103535735782018594612083377950869656534030278778083035045882952969442895930292945319804431308575243366060981355811849593675685500086254160781192228755564213746252192302205169000770324824905593916645577009461048204237952210522908740980786460507770307298879317000485308873071417540331117199873189397011676241067438658300654463218917862287713748824633563973621709868865722525312948500460126052094048615153783741815881834665993762552436128586441788031441554835656596979118874192348037150436603501070683151937581280881423550328524814386789086948982493048888825782341604198014888697933664070461926437160309188863745795290328541925122766654213047782839101205803352900442452805240682349341475335823905704380740847879196177346337223553700317293655651155252355827685209652287295529868911303889065824091365169231298081331669621376533446365293281790423089132068424254910925282771270030891913034255680573148198659403520682532837647426188342332518944986506266388763758617190441787188978619205899027623145880882574253703166514973833112431976206235149877933072260427495252943419445484816650657144141492692565557783319960714345427932074671619600418775782322130043057990070259383752230764889148752170279077433129272595708152551046590929542049021974940255686469846040420735101136356148948243223623917912054777393988876606705850787990774006321588061540823425526844079074491581122205725855783259759940376905134249167501073386632957127030629100204150717888315055980888950325371539807666743258165574060064096008233507116385285392035296467504124485334534458842085414149517327997259749785988262636448469009367039220578955345517613767447789397817122513246967808538532421426974536147568262195060001138750013860403587676148968419709602298282317463072235515377221447845622650823255798602491989623366299445007787302245449670469180406655459934904638836915510873353913401954219180658767413899538607195287998856803208099039247730292375796655245821751499466285357177734645485997744362588510014826713978347421039513650164349473782555701430304986247719564633287576374794495993587361460071664449089054051032873162558921557624275851702792060105286801154171442339524615660962918800824550272647992918974722719208520387404180032594640185579975231174215574082759445098126876394136970446919180844040032787867914889062901474023624832389892097397317731071479584586653018299038524950009766809322773015606327285664719118802311296445515174849478548536731484792520711992481887616653752969264029086626201393178430571258281250714450796153626902422430895691589586115858713183490920933947279100876130699970713530420177672327654060693702629796083457677910565366308979736053158617340036164040258044779475273606570068586569948472418994750225864167577075644237737935158984292175129172478172687154888320776474446420745012484742757812180539763763664010673246016323359309243616547513476739044762560443861664433054867200600307372730022567693309202171155524014919419871356217001726718917426957895166420377164095179680019848339613729544712268841125770622504146517869136556671235281051125328497094529448542044301630769761630178868374016962553878230579937879987705267373458963263150913542757685864113169397313570310144857697702385109723285073896353900429629034368843747381882643881022231551803042921835178374432143757797629049738896998903406026608668260813060159472311171619464276745483001639214496688670199480909306382107218728383164137773414398006637353273235901092760294203135381154024963528169401295570358924835157293377760306185280532190011297450322289760064437625502694967960744834150099613491117539758115059728790438026941273147874260199118823206264028505703857808945685973825349506937984543617615054368432628056245427993851443477648343048985425613783896945730893383571306042656743327980270033009571103878389574581810767159991936533989006837029280966849164871931334880324485092275868645228526535424954442823718171141556058798305767170387292392157273314919072423115066140888132102161368174547794860486807804764704001239474762756989791916708476590992326648018183598265463141946463192762843604689090255962416893685063236456162864139296828675901856503419851819510198573191540440741987212912777565665281901323161147145952034827293785749505488795651686921150574176804016621471239448889645342405981256753357899954865185354821210025214084340531169594956312766244357910246136592202488686585218370091133265441094879556307803970203668244735184389899125927512356857955880025833015605647920806194519961363888775783684824061803952589334027707667839458028335059427066411357904376790167954195091680010676135867807803935936362862777432135584230371373028115844330642481277612752295248807780759550396687257183323279744949762874420158874615520328587215500518191559392390287303171088200311609720839242762640238423523274122238153346956261697228930713021937117839707938430809726666926314213539173208478018871495700207812029478682292746477481957035442494137270503947480827173494244856102809761434235086979778303280129309521139279388450604910539067686165698230816158274910559897361887111494274706190157623046957323653806859469374963339170141655092873896347207137986152049373016546079726319558558668952428934943516269615953918738295722052116766452352423315863873526698762589989033404891674927711341625918345385768373885517912415046720194415406303952151938364020243367128941973441008560355386508069815641382295374563764722381818815215019117957303551923813770491460725981325730384209666422946390085050165306107079996339395311318795760930698872623140141370493334711425598133239239395442399212598454974298378169876723182941050942891139829283677351753225739198144325560537126561942619211353436255114776666585123962881760467531264678638894533270171676371420772781436156770532165643506569072503151194317816269103680447198922801463728001908751227764529114839754594019486968570353696159336990002497815040894463517916473251590862579659594320724463850917647816438451559807060813782002974772265998096549449055188573670349433983423971022840460786160415456195005478907883362791105443657829861070778677007260012604378261926428389384481170078052291274456737417175543856560308475126723056680779590388256401828781067792834222823280641609299264503469594540975484692229319407899292008221264219596850654117725171930686376049078703161903464946500815302473952883847487045323325501618104850766276937879012237325762652462237874468957477856468914701570541402133513750711711160689426223760640130451008525213054364750142434170375483811222706199770154160254501731565956054375710840631874114727858657232790263867266891857769626239941472964312655741960378151288337260270602586838536441581556048110547698260267719016987848017498642974153755517546970802252879902017627723831172888452520625802013878633066286960997480852506804453196165115806131424547821817327659687528559818779295863155545130837412706719511476049692604702254134551194092114056039397041715085930501404389373779252137770359033843166300091611137303679848196790069801489675875710846137126283339191309887438044026245604766523453045637761632001539038892200785255453378900480970819388098002394429380340360920739420518612846531413241304139674869716337213950036609658697487701373858830042104924076381597208274074275473142370917316032346892229172168537273681468166435362455200353844478391135946391605721589848869681791115885060870569849090516929886760282849751101682677106513806649357739968283187199521444292258605821092294575260420595171648486302986812378441268767669507002085511366593987757411421405437911489352270087810060078636938605070774546854526674599475314102070949443244189159646221396017969702879936261455441518506228061207321092375683114445846103264268544430401789012572097369580741810267139603311585822501432814675856385662445012541537385762318251493822708927249169988740121522364794002906580039280913585847576845008945049582048622540143200278522602664323860978847086549492703001510563039031923627889242518742475942042498384551700424262202821917627911062439275414852875478237959175499799316429922205919121453034652871888449648612782513209625138740645848520618124017753290524470777735789029321738407587407482774675380770988003227275689436447520873908043879287582243587173913572168989176437661549461538029623356043986363269039558304093558631699623660420232157097610281176937500471284551387601707913019496975512395406545750378999983654119501197462049407020544553517454671240954449748944358080757933937893373773750869530333960405639218810244727639891421696201454105537028252466930322757981862778410050455077141936563094636780349130959975847577999903102982431184528796918619172569771008042155827499130726774632460074904420181287016723203129631336722267101294764503559680012183664670665868314487131171952457839693629225783442970002157329311014631383787813821574387529259219144124865590596184739657809627165532850979740515042557296163224464780091432497660780270087621920534560642059713161101135137814236512714797334992975528204008886790356974444317410914086348868801966063077955888810719226010934381508892103261999982468796829738108056045664983720460798880037558777001796099794319279529474956425168925205719441263542697404055867787313097069626761401292546491794456226217850388600392787599992006238937835939749949832063901659513213725303769759276761040721347869666655141685981145697301433705522658838866846773103728011074835410271810737204432288795601135971588540145572672852719663889434880980188605777696316047111750031126591946474760697291183452302392832553211825747224326958212894375377067616520590035177134354542281269650162281930559273258736005058047720861180290126283539855349207361453183080707413774711868839291486254096170994439236923372646727191993248127601345516611250007249255325434758304924373232964424695642022466879952861024361078752167068102836765052788110841195694597159336209120717650799651602109447905836920968499164234781008916972344228463284934916173163036951688948568902676483395506234147329383331923180633045745330646869397186628823473577479010857241091195393905928824841430425882285752026249135392098168559470329421044657173469633681931332270642499686728862431131989068044896292890409711898149357124717631232893058888029534433302743280952114737613491440222258249610889179279131741929966541033453074818954689221838604081195195329951508235655323012911740510475331898689548577946958157544682065420172135875649378887349376897868124953651701768183719006116417436568996386888323236255394756171553608252022833534352857063694878679104535913102570456065002164803253829110788858216284893748619292360401742293778964286260318992401285834368967996940814546177565313322640022609102308247092973614326903907597905592607219284749548447255197172325073792063062574794626512664035900532677481740864307975274447978892832075716615675911657585317795673840662321817617289119955560619009100819723516466233846258532381938478246415906495029493447673029907696119521220364830691841989147493944584168415014075246710377544220869873847462506398119594671157900771290124564257833884377800530976313150250779513640944405788429136934347642844077196378317038996592897411907199790374557849160667048718107912124910957142433426183531665361797619108540495666214658076090656691863347469723923708427932634639991372754386000173788022600174565953087878619326317292836380880880165399915669068502334850528920587803535163427808193365859638064330172012487251213456785612716195453415058095550277527531404605390576627387901466296760834130769067350494783655004661591541910010736898678614686352485309331403509587239534456570682997488887414156113354895573489776360599576978595974428101757494696780621230893361200335048226481075883573017125445499927344441230514236262337330240857050706852996620714599061442648845924257997670828221944665373102225488382648212191680502111006300998972824489542219799758086378362765212647416493256080543846672812668967270659838716870052274710711546843130739519705941158355569348562880537759089001751903353068603766411603046204590651863029521117117844419907539464135968959347307415938685406490561286629852727701737443595292649666770370095301240032718603053821075016754255638087205845332485936223664289538816863287207717907127962093777393130378711961459785930623919084163231343850997971459192862456417024130511746578748801861574524013227591227334600095340073291624449394445999015717433155396832801338900698292807429820429780106580299938556937166827754898677097200743724110047188270575851454172191626438679491169635245633251078755668248958504001955314659823764405216710479791632259065214753212883450936915061718051696270318348264978978199923276829802768215642192439919860376580424535330027707161428171159971826251921390485557787503876307460727750812191376869962671206855388926674532735758886257586464712052230456032784817704029314301902465590959433647473759926805164563038854881699354650993976971078038452060441338091967154627151348905139703184590434511944187190280072157397056961632438151209296983131392842655514332932299432773223597688980061250568436093120634679415914828602069656725337378264872058927089414876056519383388267798545256808957674545418976045360909297872051026977582353378587981575960250563838946701310889859697538094522808275064856652188193038335729019978203615244031863205537167487331144682911489058726335291590119583994275232150456130836508891153613699561659424417571638514403604243739439783989036636942090615637467808745931604037769721627527010008869320601308032122113592728338224400151745032106526125165003203404840422922949922700287858166791063661072163261282446681203213313725085562910732030525278595050278643118177217562746780392790802490384320678937962151343716265097931686465815828504738296810096866872059785911266707991563214513090582260557734725091844642508969415431405844451320887638598928720133663914775378151104870267577443050774959286572609763532859177828173199755824297645779477094655138608462208014412693092033664509716620757855177245129986542593313603105767171609019461527753345450431143899612231346208124471039674877500419639463050767771141231396659149324829657979838916931748251734876138311203841377616487851143708380898703446130110254957348733854949581440849132117183933399712305643564544678673800359212583758706386092377399654848819677774094916015386273016245843874128207817416139982119214263915496340085906190836918160312754327807448298800550856653653083234975578138554161642078238761987242050865589076299518004153063159677914964494490484552876681643153831819217513724597861199833319254097227144559301264808557338924023244744327579494124422048792686489670372230163986799739523085468378483950042000076355957611225253153644162774636284902582473158277704350968192644468161096664648643354938985127027636137650297026076373100704116722450550805780390179108979320499284832504478918348954528866525051428075521783327414502963253314952883542370774846222550866094605717993951029355185480368955528904744791994937583996333904840058306785663413884621624092937941732474117185507961413818170503084871436438358333774225513898196886730898854593226769493543214824208671758907365416536305802783627995231954039073259404250808963457764253492699668115703182035453798779348492530331105445795991977885691896121566566456056298943167708841587613155446287141811528406233300290787945295678343683161569274649918409604332381489152582106850728342422937321129218031505568588016852313408466129810382796007753051715400469674041959944987480184855793125163488796090108751847231476732388946058307314474415545271745294148324816461326990475563603117095627218165348568959479652462857288962215593904512746218643078299385722541802290633146200611679519601621700368469497012564091429612249740891257087281327835401011076000076188768688303859022453219116132247367903084451540166729236621399468087476176156358927813271213044957557879074097328062456544450599990385972757012141093202340671334264954825530920769518137680316645442536324927072469957236675820981021758280313117068861699774076060160283837575304563673124450276919755719886559465468284793215809869401898317013574260898134960830125920028721193812951148487926987024215226955354978052859121405952475700022358570546758352960353417562906789192154210200876819346936416214616109384882650682707523745820420815616858908097452361023232647909036760696914115884474066644050282348639582983946829124593408803645556301911116802781105138546473610463064192944449875784617271485407386354137346178764849680635110221974445038124639227271091207432021287002624557953569228514413693687365328980322792016774464294192028893590032349765945985523573987925575491302161565179548676683558997813419665479436288514177235174292236200709769011406104566117711039041843168922949619934983191857048830104732539705560533907939835010794837205873492061460881530857204313891860671825527373093731798300730490086141027253916614699564960831300939811692751738877309817548222223188350557984027617255474699402713262270636424609828231441972465857276656306938271223565055396095166375630456389504463558051878844801972381284534404332686731398702701609092539405765605315438672170855186891604315312049974682339278628141852618815767993559673888605938429768696439227503651936071615293644335014468481229954856552926118791946620736235895820183849591945647099432203013390592020378661332343286098712282254143854958856424243921180799616295982510762599769691929111560011908042086558990775921531475211245703612709785657860777873059135110635643302909765236623840407541913955194993788153214716680333500986758153668089814010351864754203960140303439615299096679220843231207914456751900311516777504424568673314217015438639956863694173034720784748145928123912843086627764592430970541781936398607338498419677414755974373377493677900685716659694194459333053145767711628111086093777335363828604998868185028913356680747203114877442264434935746214127914726379328098285921174634388682863154937643288701355068050487981627218004530495071672138772423706621069482035844147009470758596536028871429719643591180425073647360136682828457575325669978140305600577667546226482210993859261591005024684702156546295815745814096671980444367932193717063074060233144502007653237846031696777761218540545833562125644487284224295369735173568822915891034949336821516604819877411667350924588180079464575534706821289969742945135121873870033197839329813930815308479249261556018174493554053639131176449220509882990948691352057147287045919805767304049366229432240937744767720233318947572033385927328295370868114116943727401329796109804658716698812607046343965770139774501460962672246045135806708813399134445195746472199029257305010911639922226651768638648539287938311756967457904900916539991700854257929894330462858907925569833130920162443376975737831083685636765222842947220844072290852123185448538169196712090697411883419134568934002566562299683499764542901945886726216832098897590828145132192727184527234667844009736683993605116973395173153177535420455160454146128842257550910895261310545176681148204904338462010959093053443103351808825786176586563770246776725024622549421122395826852484826586309550288564736007560544001641918454235503141306304711071267449727218585221606681258814291034818678717919488543148407166030743668227501778385966556440962764683773597423279138248227958057317811721916523228542709745166895521302829363672983243786310613044311192891377929923164279113508080166664657160930192199052517236651961313090962225166581239280168223902596521193303389645039969977633287493137207631020963867263602272726993134896085200097360918813153176799943959667848758124013142493666117782063385464956304879470008403327634864124549193366355499304510545678652864745958518045538400303159423779085568066174651063044317787178819938291129989497805671989068705476485799188190797306662716320937573908917792762548544586167716591491235080927813759294910093171594169532197045050612653953953229751284441455238770089264884191695624634884806444058706552970895025027363917095259683289092985696071063803861586604254618786171691509860402662660465400267538460361047073495638793258866831748544710953822002365574019420052306317329635012609508791296312336735314469804985418719998612034560377069491367002373559378668278318669505984262374829870601536314522176904827873078753465981673444947385511416162258883142371351551843023145172475672859411460601894816219314996465736496666605851355496063187627414016521535165926910842227004411121017914308361281304698331701158590049860309855162469193410503479702743582796394065575172866873002813367783840601387649205449577849405735203989734461163394720694097399716867042413255351917678919811886226212432352356570217437056404494866410128170401675315988421769727231645763800759407324438881506314769949571051939090404193959536450548696658548214222628314505797792906310817073620759362447511309928104182687318405991921123472574420574283975589917997658623672036412865387511695846917869637344751637213513399663645481177632785976170078904517634671815459126633942475904335902412793255263128420138246603743685301032769046887924397938348378172507774775025884293927605876874609395966201500508075712217561529166584042375812690683512304195536690427548964584193663350340853433808923454966847637287248148160093444128611866869684949050984346587311284222159588960001036423110869480031674652126736968978746186724085241499140923206596131831364098477696151913529678311473781775220617910170027621969450280972344991596460861224695974113910317552778400392504463329328847886217728201425870198332380052792328552084896932654468942222261591290047166677326364979076667513060850476143598472717387434355124342575914380224245961518400788649671346561491659238013961642181134040843260463740851468651336937011013411353721245290132549366887443244979859170960171355905516689959497258788556216269940557682251783952126272071901083622442890336560619184871701643524845177033370152381717870016875617713069692396916670800686685614300759909928654285836566427385440434982610573027375583973547760728838853313748714609443807384675082527468110910706471079851932156701683599272984568294257772361891089192254360672777597535601124761755844518941014683443423145524082482578938510766871201262636908248813775639862727449368435678668363332084944494596966233345952538285366928723611541826188831360803420765044852021557797081702776453450466244635236703306708897602687557259507988383459219047420308003783339439000655370640054291053806438010424818363003660939926953495530730962634763127463122089112761032641707415648189529121160509627665055446402351828157954325482536145117356144005803826841873341864500060782012163613042015918463434988669486125877041656962198824631043432329602681877278043656634468937668843821764003873306600723773077443625503762477024639189138716028803379716414161514444499349142699977902718236273178748008043096674745358741816362908894025456719803611313474188763495821896729685778094776086022977403422945465298270144206523610439005869892424049222375825533337362266981311098492574204606139585248434724198138739650595139686058806184308060870745085817401281286264853634715819647463175536603926853914394014262862267407135770604782853929398883170268755521530494385576503513232192563004635861747589044433905775729453037983317803767298393249785627332078458809555640584363485495977549170236531741715230098596471773560688308662356485021996128268075202013916047153872278887678381809782187254381234551990980486906392837525308229291795379178519847257517187323251794628623743058512491994178728648525718881823986883313515914322360670825664678019021306500681103664598409251403389724014004797691597375782734269676725489034727023455955226263767407837536279583514895700521619993101584401098112639952890682447644438846072511531441014070249326831361170072172721463396508316215294233144413027414055033637880070583397591634941458156959474066523825949219104987282106023724342773767402044227487797401740577514705534957954911803849044286296834594288660058039229620065928865023070011344057536667486466546355025631460523356904112732534300142006860270464640733799717482681000992162563915946391385320064709744457335971572693252571176413679927250799511121398956846916668624651531995824288105119993602559363794120516148522183970936125714521506561850970457385770322303600875652743627300789597596078576956034521360098143791254827300830654709471799229912062796522797730559261497400791132202242696207174802033584881670495088596657213100744520651458335379934990041503314096262450445366327435065907350792137993786523912873207329599494982153111027101970387911417582538359745974014594823233696076333537712016617631180519312849777194707338039917776726670517424896267408347826895363884145488249804027161594940694622562981113439444258301035432248516557833550538634319928080906315659476867411908985033620292554103471611209775199657851723498772837956898812645930030886167953918784296638397401983063790427508555563306268878647905733347011145143689036532064052827599851078937939415293415318536861064288132522034537663852757534012500874835939038135910030885335383010527567416621489047574231282841341876252409670371490531560755669339729508704347138879165923547668494579823820205388620867236247832389383983862796253195411489680198887251712431028174267299978759616656352168623979099077898722890147495217732609031696468966042715267722555708135604499152886923227253045803070154219290669239477640607228381643161765213693291198891183600152727257308180940615832146092129021994647952063925253029859697203095136753569916501198089018946423020094318770637606904164670123581932368984646641764885652224191651143675231959520902171324714774767769610650200382499189728442709417513712581899319930621644985902611128756149110618889735091011036180367686068475433016919971929772302618799642376089477214377448511214901449385193286415106128730910692304586294619713735840099547475019333027472779590096098846441479232542771979833818453574058058807812966297770349299160272437015388263463214161211376974767371483283336937309466538362658938919956355952475809177951115390372801202721377680861991836351188839076830233061247930221085617374087293828855270898559309542492384106151467578095681102468752012844123959883123309128608261042041971460121950011527582103981460083279547006846565821981565206059370277431880870220703880724131631893732289153793513436468349208361080858375220148460529552930045317799283997081836708769214249494910137022386104435710436869544854491918712276737281066583918419723583879617265318255319262229604528729985009509305640481849784703862993523724513670641314803476673613878547116161725638006763913145784509000093279890894920774706499572483952546684896839581403819962428816942756170775736134019557630330368823026900884216066176206252492104381722531064162416210366038071405978888033509315142173211185766509096303459931752456011613577157550317772411819739417555849044343784311636352568500170828245017105990324224878988118815685290373154439127207995046836587617870889746745659047774519317523604323170793238121490004874105363095499426800062440659677167303406323903468582858550160326514851411166119988365962497136612639824161379138815925066756154026979833852176601184656257404866087360415318816444597414685205243228677781742370867890834181954113613640153048165685791286014572979695155982306227580637816641914093353543375676183486783668936263508357464488320360821941620037245211947064581648056740979121113927741808914215705998596429954565503101197261786681288276890366230818927288019943795194264068026388582079659561974628058837674470250107801543274842417356608722318693310291760591523077461101519198359066052297282680140461168435768803505254826425306446830506889576850641733497399749216919924862453891118873293365377470252359345807385569064344497412109811695506569666902058421065177471003372406557839755219880258532992896157339278896201317541892043127597301296764086374027082985310286270334804802626386381547738601791441672887206273061897967445828703516333571008615286982022960538289739622591165667898039302124371526359198579940784133511100023137199195152663621186669850346079307450811939318835391211518720860653653918064641350363494102780467544459032201504509168885476493501750493837049002355072476762794473221740576042723544582309620507714733473948736560779477190066300211239673882863363247080512318756219681471267414376177094569272347023559656649398310210966198059041641663285075843551470420519115273632054719036909074021885588062753539573533667719643485298896969789449492735477733325917203753975454722947545167288826154745135709471108918834657492699691103525960068103948310569087894964337048159728284280953596148636122679688945082669717851939771777786501136296765483128705244320803399358855729050223588504313973510545526105346650200521032654916392752419820807607495771923103882010702770693704228117806075689595298923418930911145275159910467258493828707365757556545667276742956764640030829237932071851887159901300227724566305912274691265381600658512960676601066962527610787105204098764996461951358954557797468386004398861778101337135051747941970913370740399557231005559579475111174279760816207535761225747314459623582754921122600575107529278946526124649454510292667721872339976702194408612322294207612323125251983448011784801855388715735407191665350954827493454456409345375823930648483829187403729714613571884172991564491038751096025193186679031381001783646814106455132494547812927857860200384283277535090607066719784878738865518735881250069690162241633831357823887807550591931615400875621359576460896748761785640476154597279036244061938408002066265838009723761609218936978915597362174807172983542649490752896132804619186321124789719728990757708871073495980531690177801004751413671036655663243457916384574572966943523227203110729620245015635679701757426881736151412323756844485422688064201731661046767183240593819610286903795943615980459440555543110226547649309632119766346312270607788302263568634663452890905876061421472041529331179185912812867088513401148652332347559772697581845854147340486253375170152427470266879285606070002471551264743455160900709875477068169719271763513075120506231007150512071440440810297215633845256457335448895000700831683144827546306719697201659599618375192451250183635811920418948361875834321622676159736385409040163026215829428925451435847952379235654166882887117656285171141409443408984312144409605965303226541027196447175603970368860127036581913707635015617297980328707223470391498832129762347308643102076135415526661318899232348870530887422011370217965457381841940602206890797580041626642810429077820197455205571885645871887373911651234984004992057608540633254238885591597394184830299316208124830141578721763029928268818575667104706423782399197376816920474732603912843181940749282219004082924992168575744671309444814721775440071551294525566254706254022636185637535370158152965222587692829162931671656731433197638676791512913918505486982494836620882604413854621251225998461093831764730656321863069949541097783856810277017815671019983876674798912469469815173951047919682319986602672906374099215742347612208514677233717822492419082098675281236627456067750944803796274811378348134918350280318772129735573418945030338366299710842319384320019451950707360145416951190560874438498065046508834380152010775948475541900037331498510385980194117146826538812835295384837775190766162631009586315586574749355521145690024176759822297896438762716781025008771266805484800376725119721416511865979909525803178335625846560854908791302445245224665073424457929081350284661670486112478573069990432218063270834956546983098362356245632645315511184617400146406185214925559103859218932507535701410922176505668012757179747196819747399217467770458275445229542004716606331949916306586072122437728577064657336781201282004118101488001053538930357638545890025540021345000765107064630102599165025642917926660983154276116867033138019290248682641407022174962823276268896592348189301123074577340590986692833721424703656272584292705698148041205143401391640758428365106405646714860301937204552859033079379778701578766319537256353300764048620902683451673626851607236096652622685750475196049033338018664490986777793590579065622634894172809281026175254883429813355103408746895452781950838641064586783176027657225996158023956689959436392324738764764026632088794197581035296421668423203172275871980491690082280851101601746063539962508823585250737293911230881850087356160277181520677011223460399262616345209966183191247416619194093390241421273850259618364817559444824365921707150718780464201003205478185662652494177571377123899199387592001056758598519306750467175419293545235345907706303065467335269756553783206993372455915084572828365360697643053004829702888722794081325496060249034783169793773195271531056178548625085434635686607626247633713647036041913813010025420584030748457688929521493714671828025943340682895716695134445221891479085524843966901640781085711478113686924910393083585478414721683874963739845867757585932920631524040035933010562725223765856958081684418404349487945197373482157741103269975119407243643280828197129816987786331941730484033597871315353626140529234163445233097600311847609823427840256614222739200615821260325669198343107835033040583390672679301056535098162781638310448606320261312067504974402244344849620852360886332086034614180304191622474369703576677750484717459587616216471136170145223982080754362912987075199860076881856336481505682540498543737634918441941677791638094865786870312320509314562109052831646998734880276988213272567361361384049135700226399850043680335779960865531733931616662069597493418905162376365941333239185670642011337327515312656794291447348722488478088789038840301572856469918194776872783258005035332871063459653903647140941287696559396600317932869707327781533881731473237923805190607811289362885257253427101526373034763323738370750147524517225667091476633291338592744249622457924790846062978069205909084298798038687941685446865636902449772060400781833918117885565583490567424802066223393906595167857480092530586120412362518980944141736283858303476744485929625961255857134483311023623762391984753106321540649451199336500726825615648123865503715347738643019536455998751930277347247338762016317028765535337169033106850617255109853705532844081889554444512330420781247661776611407723260005063192233652781056367372693430460133872949044867267081200156781036534121407587496403650711503387719928804143044977538270595729182504589869936828837596227411956339427096525254787880148235582967010508300028209384513708983263593238385979444042402117501371713705086715891890385981134625795598025063316724126099528751835064987185686667044464646915286843222049680736341756807145729900622575166180500518299789805588050104135407576420528262816142570245719693664551755671163476158350716030923628479860434404283314015432144253709091795410311328358111630062543788356103986366218276327786893933684035814033966367391488447628969314676281963439045472277153037134211657232395803901613641429534167572590647355894071095610656856458476261486508569463832230264968688537214052847736162474187836224044949506498320276820206775273524417275380423208893405343942373220923482145625351607093472988026765794485850856682227173433334222215415407824973263950184467960449906339995646485664384949456150230830967274316490691800140714323142561342555534073798564818764408521297587012770941325098124226671323410050637785628258085387458534199585491751449705870085715774583539005986992354304245248115516895046667035270743104820944362674247121947675185376399971606543865954111445076583891321094451996564775919506302766985395521510040114891174911342822789166583644416592428372066771826378267977502621472739447235473643021409170843945925515644262164505934415860908941317419831082364391011322650283130543000394091548321687234256605054099198119390246229114091674128353598913708310432643884856160261535544237243687786350808405948411988979658864341770500755144089569659154584921225397016504658390656688786404316769297465029481927734906270971307547057655270526474214442988949702836267770209885831912853471672218393696189917223340828820520644208839743735736884603468993165654443266207911041771954811228194605237463835595826658157366358924285098660108144000692431363479208305742440605619242706066846356898478383227425551327158230845875783071667766439386285619223110576721357710791656421182431568644913327669773041980975787803284487582452216723183229464751268843575918171452011970742863642603660730870432133505123888676880899954996647311898169262666217629668337081838294636999794001143160947753142722943847759378338640578660130177985537943834031143340018801881829618351149733569221626390310563936485727473421705626129950936244696362398318202730487789898006301073475012899148790510878293397335604389849117035395260049788657054499375454690853956816977176209538911775942020537059701933506115997756253797198027913104527198303933064518236783333202795851437916406732502736048002371217233734392604159046075692955377693554707719516211735328445573009876752495009582780119564291591540574428832611938419272662344396872633362232227702981597544397327238036029763720679139285072001202677072639327923140396714243475212666006716642912524789815092854256382797242496580542565927089665223004971178434363063473664404487759183583431216567566712779988968818844566440799274418199009692052497328005030704273232849352323675294232783810757208067792947859121157369939974951993889493199287710473532906903674606778402171240093685231406181505445552673189329636871145383657625129020543591133995893011509729161597585248564518023402460409639995092139947106135889873440111080728069064156934729215814908353040242391916380886076579677582602587605971244562453278582346799290469339245331258426055487507390017393558881944865203977206055980975985506400837327951611661584128816119807599437836758691860046617580288924967794029071698617285288466309100449231555836380539290467981718298194262615708591115873818004354017339806744421090190952597868960726465121915516563348709101462262957343068477440047693013189814885506510674608363186925863689656931602886600429829776849922664236578100285771739753492231818729748912325309618685139143786029707885813048792048346859495577557662061741901030918042264951377561879463882773452538541956060972620710322893795044412254209950479805428434372495656794526041239479497256025874943716123666260810034359009593589605895224124303307768867501081963046792334814792842146909858100999262268536978495529980192323499796130595445239616674119473007337278520008092472564584652975051333878310980135647276675953592212547826114854865008176976186729990770259132530192776094519544479052252608799093828707790048178160673802844528609873569562483262574850881125911343474410684196393470825165304468496555554780725622625216767252863925251287670532366598802534114344814783826424526427461982660814948863361339264627105158879589912686961753503111606942735175409940985116367025886196121325829775636366485467701507106459391791064586739754718886329597624665009703226622715501132765236063714603026828289207352541507375377828477611568374722194006169827164697120267982792462949998447948170769738421339872424579336733952255468423549060475174208888745680442316766878823271090992633845933838537789550172939360954937969761272746263355819341303059224297933997902618089891457342356240103272328800099286786848229498644890550266174685097024805910493373514681982135970382065781229546996045202352874098977359308572402008929518485008435429748735847091420200062109570702186185251998260173810734947180474335554542778413914970924691349250121262944353365707222451511535045627360911735566396463252015174948100363617575712667119143661518483321126971863296169546544320828869526850644795578083733264408320144047161414504464459736701903343294995829027517104194155685993565965208240199575397443473029438603281650101250750574436035165043258223622690215185865595108698869038320010326422126269727159504120593335973732311169501497234284142170724990080404107327576946830792888417283952984719266240680658966010521473073087545444014624891568421237071366825391393999071436194600705879664419933941829358276756727576688063904438605410825059740633967192540126636533017556290980313434453601657763905654455626342630097601145888504036709079156952600019176974230622308642049277263393736020563464563572286154894737896063111360794908833627970149706356735789150071165930533851477346049205615073194523413848420723527195628743880289301470103496653955617413940980025116822231545975498682084728447638859873016304593174922519761415823261969656146033973129436596223801710813157358681146835261765872337827623123928973314256154168184672489033013758524358092339653648548703055317855120054182350173330911590757733981754578889550062080001409252184455383300378995985179232099235814144146121891830107567508369636460806664196701011684724646703476426899624074097057696223957372560506770011701995784674251137031410555126165768480624862908821618172444042398298406355919054702376924185526540224182976286727684482587570927500076238647772366416688128384123084883991810001781196376232868427415494339148046389582887588452730751294747948081416695170566462507060786675573071276851860074265817832047041068938528781891253972165648739199866971184511917320779306918045942861318815705023042367923957544170095449594849345657798830087769925856418531687098083209893360579598773631870714604595998356470220587863625294679398058279622562828958993173160427242527265029744057705989750473390624709664728977208577072438279820177935024503577318972259287683676344721326813134740953547250698020359577000495016820814396254675910592496828406272203314795628027916330552918553976171548666599394613197399474693726283659876624234055245938135975049644223975888823716281779575366905840075586055091509331328701790173355643024395359132967191767479841187428689576166607659954410970273703158863569455252318368254313224212488500768869336959363490791773453382413876452014319679170981914414144165307513557102985786915885908687012547555271642308014196990528857937855605288437136161885818978569780527348414385988405062238171731632398817952242771782985769955826589251351583253068043927908625496993351614468941456649095697038547897829921278989568188876518643105280727558527244009595224763632667987162012732572807964213335373623086878556037251189276844309723713623265794119114332660497055994412273975409121705175308114103791079193178334658900081734472766242506776534390294989813357762033191711552061769216038015830034164753449985753577238965232223872671934142739009125265286965800450659416653237297875742690386920331680962839687057602943723239393233628899874709888977664780951869537434189964600346251076737754860354286657057692855984302697941234995122427691881869852561903059156295290985826318620990568502900357613068151351958639881102438976217408802923682788138885242185867300681649829488573719571710050376711545334444269215651254797258230163647746575197232729907298593411382214777815229208079670711569016625072328522922959282383053197958467488512308058279345029476854712070358457927069438302080190800626348041081831093071863182081356363025200998922959863573145008734221981223782362882777283667899545812191393679991168661551133494702025001185910019644896510246887524073907811457595965471523934205245110098560168146690692855632321621717366965029774407071669530009373169712006358830814193245010275405594105017329712312834696749680055560106159502981366466759748596348159178807188214487685184163820272624435200114335829991324474625562769424007236550497283012382294854198674329565106604084962277673199440183498123953258526298247848058657154307398144794145248066952096116029420040110271439730745981084428469289364459847731662915031399503188251962520827148494595463035874823605937235977153618127154594393177509868369641280294191257561821868551418362118523810046067374681866595825378813171693905484811272116842547748519420986556875945613371813635750351098013910701029104124940894327448153101143606926389501049992913076635216987059071225475480604647461353996693155385290335828597660828346802030057761205650127200897920189637695951239704902714144321144772481485358631428277056069065194065423200420498589177386254993880469874342407484474636336343298394966589917947828670087700598252961828970298489142021331069279046124316232755734626957978996559066690263658853920721244420135616345720628583210918881096863405556408959479186238948625160834977004664606625330743057930002444742967167874449880943174105099359399882440546971221243046919044067787004815145262178662686295134424131946803072402312821571321939415368635957094982825208162864870688411146265558319608718311609938252157513248839272971178521433472928655697551023876648846350139676955251300449661078468050959357916199012964860643369952697679703982680732776866488142711393187726959527256607078624183848428838946337902260945458797293232318017183847375770937506194029959390303092692221434719126389979100476707397018121223035373816069314819873367250519208456763048734568226253958923828803788083139000254117948208827355919841614833113288684278334949343013245036876610603973141473843990222831390534340197009539518140575152959903267400591675315203618526546033515696829226601339153694119001518118828868765944012376165185906677342060066271309765707572818552479060631063471351526424866849130247697944037169749676667900485943795252406518998919237434274533215327118904586318677983548514708975232259290516504991715748055912192838682478784351825169433132403734279241200943220954045036341120717875560784811978847884950243274459616583897770265918687843226198464860890997822957414088265678435422001422226576610767616103848378017997414440897267948652490178612990265613024187822020128025232187467769573367382975764577978128894673204054511810355770728181463565599277509844070188588409516305235534625450502038405015096419314898686554824403896436073092385623193232539487914412746682738987023039065592936371275480406828619483042122789337498885218180623456129916808538885329188446188838915967138079219944135220779950734439797977198898177940720916099798616908392163153176907280485152516007865179493249235316137335828516784391819484531297811747943970713580043075708621877885487032303911914342979945495351899163127660809125559782608036957441396796048866855416994965172659300439922494816775509333005090834232969884883367685944112166112451673209312193340513808591502026220720208324072652590557366809795742701945629146894368781370525665372033970962752165066080072279068207468954632077184927847381569130624599659061207362024084074400122131311733177486150132353855796809746392481886127412133201777324425949577985353302537636928308495265229780597685440624420767089982518861398006736696396129879457016257786732765384084210398040568485222979951275284630646838365469344668917711171600156560716816288022923756131058359712939876504279413150236502257765375447825953446560641905769336035957639560040181708494850808305897646137311729070713758778207183643299941472885132885924015537417977193867334859480506732726136555695256197426244873310757219144158824333138166208446821283122459528242235455369978499566203692321906700593417569182792810988787016338600975836505643913070976892880014205642329218012236479504757551210124208524591824276012538892530789170755053620067038199787278190031389590238929619858104363499882379781773224807001057102212401084004918151423761119640653414085369100073878025602575036245366659291534928632692786317204431324410847602152788318833268952079500619089996249829408370063092892911886393073002095384466490802428668471174633809613196999816442356515114178465330563184170788658114932369654995574839535533333308168732508567257396992619819469242909303539111611660667687582190604095235242035964383429675005765765657907553909029642797564787207192699065396723461141953192705483068769008564734752206106449159132912174582112401782932683702897433457560161853615135752522217209517782109498959206163967079666597061816875100027169862425890639534507654039261663005237620774184835991809774235391445384923345150849948800871233764766152678110187036152118406608529801315277801432343633704095684381130995853283155292302874162468952496265285360674577180780984663268697433582208297094136240412374750842485947564858388170456139812170918892468524766195450372801287632071068600624806914676533592961795507712720525872588625140348183032560476513779002951624494171722615873490783809992528563574327869374491901423474383552512836042276580106775183142342518732143755933679234650697360113348124148956169792983398973171169801416024081426901624222659517862924076546899668750951550269800632384673878848396112218196080500110759268271649432828850536691080885198902877312532068017850924727381408721372630464368295948079276854125267177380975770716837646267734239537989885736230121409371711301790758992346682605718054050164721425160414333174152817756170436461421196477394795035888873920019356319324791507501699258721210652296388178509159121010994195232229974519312841234446307808355959195891069527478358959593342582371947559048186236662603330448605372738550533941279349339305855121658467691640718028172613916189468806935175699219301233474214651811088060825207416088772635533597928351871919267210961233396430452361367283028334419574320754381458202940451752300314979792179277075626975192044643009004586086509791374292006107896002360583109187553611856263500742965651627058290122932675457308998810070376818154340247384958501910909637633065904089558445319680277457886020007747555359354206739855872001599201211443719393027745600605494939588788991540735623585242243448719006662153597173193945675935821948845917183752847634688673158207023090625854362721568806293476796819318265057592394919147212171125931952857400859051011369351862969343190985264166438943049932428339725412755344288194093860732543141971035065941808371236473151143121418597477556677447122744952412920175577107604492583858611177559229129906983792340984801908033921436495164718279862164152558186572589315048461128248380538555455238903636020056069547361905009108866109368263287122698318913090566205293789661332030412190505794876887063162803529508690391071447030998255003520318218218054222196765618323086858632260152423589137595215009138873314467217206094335782339065205794445258045898993730515695603121243511397627125907126046087297772579206456504492956669278928601610126223049528350320020049060470786745623646337137173978931603772393247892650200285754314639369966740998495316405710721652755576166088126295071074547337292760959440149381106140022515197158082782781285941554182219575809604459899378630684839534641777173246739348028998033970427640468690488277596330895533462481736346856630539689259255756362041403069035083134450746700686255347863660457158717429669820728539364277492748346422735904336140317766546339648915422206398995229082726235400451816529652827273108586020511605319486153208788284858446041605058957296151391263585266132624213848119720817351476725066137028078633895825122783241869445714722048748668647084948973176783092930262510032360547866251682564339895090997106926108348745477208768226847887563579846580899573088531931675135158454948942212044070083988255488741240704676205914704246904298818269117069112823230391190501078644480902598682094332233358310726765366859379204199990352801845513359822571210367269097659509852278341736064367573364241926348609911864778466569656858306884664523201465420781169216969732127519250133768493097517838358816681999350752663253143474775801600901448774300478577106034961873321170660039776221156742230524098185918946435172973996906104625304775748329140535066191158676858443677180551129524678460494815502380215759398345602919139093890751586146898504185403344887839371468824850462689303058478301299966025188139384886467132029775028063884866699601686745959741850186974122542454717518741482442109314153856458028655045716422444351635913454134814305753394027156284369589040117725837831927559802178604997476118128712821821289301699666825587198618341671748111284684021206934695424926052940152109792119749563932278101054328812094141191669952084055775361092685234218502145137707887965827349113057916248356179722467344054359027059310335071583057046724053131976326606987602963403162128424660138820575701823045807312237347252880193753403548360812442328689158261925661550684292629319188026342640229884777807681604885373297978113238492175432834306146572851010685691299521593232963345509070940799186660603909673182936868699907405344112103720709385814663133478925330641565588531470313321991030556913151232198678344992058889335002430392849876308651431733540941035674308477251419626707820776099910832257296622860388445130889509255240842786560211205375056277431629941649365500593232236599791429741524574458289849026869326996841086347579400462661041516901790121437132674102223374188798038502129580453212958566439517018292298912129877463542863737408916239222933214941826848493566189979417410029781643366939288481458843831925151874789700803175699426458604098018443795013221554864312738045715955400356549510235510667701293280851328387607026038080752035954792962773397847633723340324301633676472631956302483670131759950158362213308228304992692283643886249813540187236498355405660784695468308554828173261814124340086326419809387131760731123378581997059388799942750340575013975250852124643565225998202002709679117249520087176267130592803605372514044591930975595139250616341228313240464461480445832120865844094595838731164394228245134839332276741319118963897616774369875747135662352135586901449862104852119323804773654208939798822393189951095887231207352758424861246654177547213944519270263057588648439152815173816201964794096033327785451065827140595749675450170797332836911804017729521611227008336328106367463086536669651701673125533166286425517473840140244963316731422087176866027709494626620162152742329574282852464102586707957302884753092729337995751623498556460131836108892756305322674806000306338198622280424256539114737380963102942513353653128669738790807064688436819497475420104973600934226723916874890596539993869966457968658952134836431220504084641737621129183960832874537903915117637712038490067805662042075068576407810941578954918852053695461002771461931579288543097618405399104342736592956778048801097659613802196393308319498015241851164516720770556613490893363836196573283098927362887938755344500811558882045760230377915323752799519757430242291230904174464181839089759784499576847385237388347522420463621266901317656373297218575039765333896082945380132703053668946082177934605341085883263983312970288176706403731814987981049153662660168563209746439422878002338625308856250363177918586385481909211209749791540249948239287028447785142949218148202274909749122704540906775147276591031703902868734273665700502741780239188936000440525092457366645091277149145995128533882610801070284546934485764318939207500493935894852829173278353646316548132484786519560569786272533169934665531476354829702170069363425502817081329923367556162280471894403940013690568368309693777686472937831217978049933625036690005141325021102290423235361926808698190162956265289242883633259132100780110711403577332459727124692356971879980821918546147368170286156662752013660055601397759608653222416205217491600290284767716583570505358539473500756364359067806057372996904480047270300250946730944596435675635461644609700236033047817162561160892306563822994111764580114793670593721150830660920745696579422445810202061814657620434564381438542828049143705146180478820133354182953122334980570071332662828831476988408818448253178187030321298694031441445101555351576135078984365543735045590994055035678020035149423035113864457529890405776346800769267693846384630503981525206813424768332642372578269103031116010348509683562706052265019939291913461751827695474269032428692607049492200224515860155648354038471355732519851514229554275398274848217934393913002893004123532827354454628738181177080015491936460731383576960009038194518727726493279793935769428911309757940014272399979267620752187149716294625903583769473127579754874906437744452777695434453437945338933533169754585320081341660964431213082378691011216213049211815717981277924373054580735284437887859149541107212102320832876982416691646155359836128832002217183127087726093577242548889762824378006601635691872234413325485129941946076930439958657919082846316704350507591765346924159526815105075323015482945096540885090251459797075955320255819855149505369560734794810846266882708969949430994310705910954620352490414071569100075448967505824695627066070352017582630765232143661290747865684994509530539283502412731860641742400676024567145582653033838853097398293796950708731849475777759017707429675408618738741888827484350682251136207523968077760792549454321686778110877237932665921871563115932625393183317764225220924953740507239617214055390265043196917810531227282530174872126470312785089061597851969091861665815710101546150175382897211331556423861620418227747596576275138732214721209241149423595141124919267002119995290150672480548264271714983722706527833411479474297992937806313532481583403670944858300176671490507900030383062757667398830435644429271172872564432077604144419093725184399575837070795870974162614525353601983465855108876410132790521444013744067711984834931972873979747830721455677257282066333567671731885304562297529226477346025733528577611504587865026413731561029725316473624856349270721451961467950132234526384491534928936637927875404468159640812651076618735197482326614469968300182010639896449037741872539267567878923481797745994933003990102974972400304592603427966336604604732275076950298831427781193113533464685589416457643233407901780716576422050569601978050434109264241352614127523362324688588294913667617509093476591219632232849729574242410220157216338438689545607901444033665077188977828028261213317447169636609707504621724485256195862123369391716566644126861025306673851073925284640999270628958867274177032688694051633626709378946917231867316865290433807894628889258906032916388552923356522513494101584753054610595550039451712991625391168350690235813605111335350292084848022403004899957484082634996202456078763816460583800564237431250458112688189053562163317936014839291482158029984720565789570393627547202022661304521420086212876044246527055468388952302547731500662922022065055450425369209285765656988112073449424262888341643965268340154924232205436056094027102107818028805863831133229920811726024910029913675150061770078067732985704219159725095864184412412098352561516784929237321252795351681434927120483271751467677834953768602078589819501259401273227453512604917826316478416068040374615780550701149119357451682366303028679839655793530289482179668102360884873936114929309165090729234819468673024779105747452994310792855144227673759902313966087816125505590151828536447568713887243640906877371725841006508182907707522854472878026417052495145820845642522387384349666254551455904095600900592475693588329372809543889213288578104639179348726875883345473629739499565117917972290773600660825989834925153463127866234843723012092243218447678670645611833807780068160964172071019780586142064550509402861627070256761882385402376165714212605107251656909075382230676347347698100231685226117541286499827544653739958549320501218394220590119148705755532144737059303326175284383628146617952197651613882334835028501998688419584775214955658031761402280672426987576675036787670199019641698850539645250525136363089892577201446618409955549263033829252716567408563205221215896393766714448738114364671937506681939938268073379236633994450435506280344476933237839385430204672941110870901923122935001000443926806425690663381706441137184663759850820430551418387925289513107861802886107038355563258681226374431184555307762884374562124704738553864845478010876943049899638788414169020485863162936310059624958371955495495173899531560573476253658904318688433854441701273173886637440996447255965569846167911867093435318803742875092668763726392084306593862710092670462998510055076260373394365868943045890525285783272116033369806253287893973704911120174421992382969341865052466979842683954077145520592284867985779742567054130710859187972003046399054608862844033179394417874114023059775739823116605584635407262723166456020112752123783426631502334713750116879533446494405697887730376015241717698081132903546529231368617395076433388201515558722318489146934703434867165045258035845048708709045629293879441241489247497247497581018408460053566425093351886397847345915328279322284378414706768024859108352607365191738117110835122765569856902632774627594702602045740787090858906208798077283731415297818287044171215167053677880282117092878816503277511526176376211517143092399586262419750108599608598619772277074162284281992426988901303350108194387890459720271578723891995868309026770343455498429115185315379836691481512868369332689155241135519893853016522406300237929033201958008409811761708571630685136640474013312169360054939043815897390568183817646014419473923586476223693246326811935504920183491099525157197722019439209645507753213818708051929979933937791632559405684779763246685435757121648933250026237557971015873015931803404376355557546960388937553548163324647673764335842967889394973413559832648000548068069590693981944509087278462285795171532763085019373453485483208029757951327626226977746924255714833873892489799071206469760847238667698944876167132414587407148440190217484127270204106229599020726810427519520589622736826005572440888893586901549078225474868560159547544056258963664502022648829698118167799763997397474041108599847567263500256690841089788888033310127384405854731175163094926562133754380779600842693988500787663756425777301771497794669299115781126388780277853547736537641768499059596744450141202459085224847707937310871346849271600361082676907512240761894305825901890031267631239682011199054216923516934479411994378737908986485760879190894852144452217989609013153789684976797092965964553516570584282998617621522638702798674244909976444773394735214701151832669205789133690759836118277347399259267152273826392039900297210738660891371668689472706518684721994616874852727528651448407652816154255707011259086070619649412821818798139870653681784126662234951232995850778081466953440635782725098842045101629120669472349933292760959312621405963131408920372801676878586936622579685770690664696702756981815227995464560170497651910780992920920031096134244274881423986078716945999156228553664772869735262406265645332122718052694685492662773689089065739293210449469625634005498068578063841689585260757796433685520888947092634972452801031396718029237054493987151001926435074190433408135288487334834979131136304402849500370822271703840222589784616365833871860659130953149733458984627756717115707769318145400239820128058140415478299176334875222176848547331336813020187591027093358355803058009789408158095375014535185031058762692205164473735284672845620095124283209173385877202263120503905617555724575058500738017783059755929846391592658752315800100864930377242313483791395847145177396072611655372905446022213204613264430267357625676316868896880417404665541687460117048964683094581377657103024120490685729087713236515777564310729094703037081274304735431607891805468423346996198813484879041825302939372120159222776411718378132063740877448409006084503870618025816683511103831598198171835287417067637156327556506569341202093851924918618121325933680683953136851640596896555813995113676754912721131536287643437556706206348324719238428031381632667748801082439996328992055040277593238541619183689662938735009959414412992546743670158759455218846118800685340324648898395522916376954645070151246995234374944747105396490102714604274165594663494316391373657563010807840593756655135705294920295985469674238827906763674051015120895111511971573376210410608043269017886731711067054121588735245543271823573686198080460360187867286641219768705232729082223653735734030066821548200890281014585881404865747276651861200351614793466073810629320216568035671467975833813632139916496609134363632550616337748812838925954626865111849257115640358092266200936611559160385767158792755935296843706014010212102581138137266219486829081294031469766794948066029782162632673452654578086970872221209630957185818037926319532464530319749973904365486114814159588341313938955991566072415110699749157072341219812504869121481262070020432416195894821225169057450289842112968363653847470338747976349339591681961059955065515930276750223577638504084539167341708777323083861095631375224618362084615239668467297440756104797402763742001547953661624362868946322849355822002440337454491247724164372640401786421443301207248894299537498942513046276193198424954697617490024854336957880507507956161049066222629209475679089329486468072140155867070230668241869286990832766341852284382021450666319527706848031374319262837353600299511377886784906846106536021552262763568439484814125003579773708467284703300149784890950423866342771362339161770642655211708803291022620507415791576369921625063199242940491850851509655424126655624399249773656715439608154316440477972714461283081375632449132868276147345584524483107203999920972296655493340273516203630496201271421340066339912035055459357553362809899370981091364127645224734098386726007548750433934748201506079040437458568607182116981916618285829010062336320461882502484138263300963525315781960037962396632718036231218152265095676379570193246556762341517253000731273420445786223675879691670756052185005229027603890928862137449435983647445694168854371909923427324943226204266599256557984986339922749352278263347204401163074485729660908158899485008382715505111811730670649691531176633088254729920434641194724365639884412755829841658783036587769095949716705576609214625916223886356217977020626678485034308333070288218237869068846804692016493518705315112666713405483587322737693367826199293884749878944065930592739988086608207397983253345272233769035776172789141152272372524415020967845085122879657134867343293732073068631706731610390132371570033502779617758444194404850169487120262278484821719192092154278572799695514971897603626713991211455396375215013150329885279770888458273605256947332229353794471127859833708081089082986945918644604408687151236705892893977944661909151180053271159667444800899755885904301055248025800681596688574810212940034314342496070668595987281090545233357581849557676948172908527530502194617896107568474576614297718318621660677331286572062046895164467939465949524062845441063242061572004394620224386263586979975128230180737783674707074297708289179029583117075263368177435998380606216549611925765040441797523173943847251050159971546133915040017553768002382381335446376962326614657316912386748670001561739668645571050348772090117937622702455827344815747572169365938155158542573767767745380531749164910885743294613640884510526382992589119273775839326172522246418264453905976707589758623538330356815576932098379682219147988064129668076282474362626690827227658965085651878632563064220825391379158226130370501272131754089332148651746648614497565799234454409674838829417658291856667260404123733481976432619440383845111183783030094068684170171497635250832356379204474810318379293926897537685513397846029284613308959961525091031024908102184184250515779770908851848804473744315416382789637124664459322746571184988863822892043498575492607818312996339751703220002901015975957497048649351821178319994144530718380245503804036320085906366977215164291796286986791266967170033669372816939408550423670936669422356014497102857744862810075851813859463982925886889048565878908992776195049110056652155069418009351436577814119284710322826812255570281283815985212784213915827855158864647991999473308393260960042941133339499132086662855438222810608008863132164369008403094086468556431625394640354196542579686262177477722436040491402941398806629225623961754504677606107976665427360659951852654380978052089096013116407588605582499754459162500095155154542728742915391923519154822855626523624496582301226461640023799915232483719566558798996162612420115570575036254712479518738028077002635578719375951568818139260217052431481991189244133311165847947954758582993783479474626375495985110815542559349509642600518199506128431047836637803673645865701161185559096809225434776470503990492501490762700357779875411862503064753201348657441179731854886450075636166788157762527386728958511419781033899402247957857129111002739882728853427057991616588450882477238256400407891318640232419598757830152540701554802596858798274479201491968434797439451375252076956907347237580000067131359580258438353346085267276632986929167718946512768413084250545217870655343894315365203443550773675504652182721226703626851407519710988900275800268455256396742428198000448830174779451866208993618693220313918434477403572087258729081857257715563582873737231048411420063319184024676194039253550090969541541205873656782603524970785649826357881491346530732046661976623482689533835020621992776685708007074930981017040241711914307890211465490203686156816602506099537334710530985598974418390207578565090523224422817703213672278109818801263449446041035436649905539265432007979845039001966472870373570379828362122634629657493093442671282082961629162446536236028370667289689520981163500403542205675265813996694658931726229919718086250614446896287095853218328738904711461726747677288209337741196216755858148419168296598864852083459414932030870225215189933822797115526837265754749170421874792612027851749092565586638563831891703040486328600621230060103116959653622198999435480691473223069783818783042689520834468466174338429500267015822553270728465149035150306345781000180004778953682009314567111899407961069266314360078429661398162730400163248365872844640686255670070127822137549026365373087356842044595052611293969994597622491297291219088860102902485469600604663528531846003676822981664062605908234004338915716055619598835474877288016099290548158878954854972656962977134197872869889957254688809736508583351045677723510840174936438870929302821856439435833529543195618811308617727675905816832421468340709775323852215709798235468636053067338944507115257835092336757150976470450590915166296047539278541982065194587762644358673660230934395320988810444954783510756376354358579721866483486115159316199209943523888031616345090405301697690009845943771960362524172335053985240774503752067717162264539654419429991049634289012400972182007302778933993729652318016166119664786070514835968744126710563093710814343002290271376069726829298126157372692385114215780495052962834682875608527537936775114824394257154415434883006458390715666327235771984046290433661709525369778899243618221935450988993917764297464674771015314451046934242053226074897587376341851871045544529389113233618558897104608777673006244551995647784283497296337460782404198707413893218224185820935604261640070452411286392206672213632894768996601768846632449075404295603596560249348666297485796142628532270352907396512440889408727311948385155133267170581178425471257560847696739475772295510708711392513970217046184331304416073491175045360856577629557529527956237032670184328970115448568620904993260613515467601216078486507111757108539154640689011579148240769088172961625148805437475287130548349027027292391450117685519762138878815082062786462667313692148038692443292746170899209964124166021437584344992356795349782354172054407780863258055673406746225918357911498827633068337941948675561613345013271164887938636691911840833307679186985480405349364633024212723699208994337450965157140846600367332877379256699178285121293003933492010035677974940425521911728374254239822983054314945607297890596844856260657664255822515418816707521750146743382345730752321323561695835506507609098719347935182385899105558180264032239443756397847715694549223335121456596875477231177738521130034664515023605523382851791926875586185059279742578203692251615409835870228441133280602906047021307431137392948851407653431291290076904083770216589459349091617977905167010569252071164899793416145597292086737934044240191611371268086304652825857952435268151865872378044300866486002657832340585150835692372028960308169871542410731378245764234088558693481943451414151306295449245201286750368174254257651622886363932197140479177754555613627835504598232982264548750224846608577271176282492843381221629411326081446047531699755828529880566421205577603765461884546730474128034584056731841962819326381566533628859750283874913233681544220378692492169725908578517756065103269322671499261915728963382320379142992878763316774978205322102266822345307963334307973009929958637220267353882693726005047769362749104993624091727140563154377421443156097573608966129424104222128067064340914982296267919704767030587811278590830708628863612657527128495633754675609142414063281795323883053346768159007345256447322485972656911019238531400413397984603088630785856946116104547450475119542546319174789001147834313024942996129048689048193693913372911085156119225135634681839238299154697607031321286233363596371346547180412454160967752592084801693393831575644426227386989567908807774096473393467270639497696098816545346039109260523914409741836812065271845973552164617492572515556604798148627816875534715686074400128603793358077697629831882567868292047988306698617415970974366679335764624773279149820971301400834650509104709776302680863101687184208899529337224454695879760777594869484813549336244559386058303522423433505186473975525329852453614168237876263628059925143578937617073961194925261605169775961024821836737671440796591766548458240368291629259420490604411669659962627559100090991255160725016319843755208346385044821304257683356300110248447540188302639697746153631014470969086098289242500806160343258727451299045505690370672592010658106196005603189974721872835133128170343745980369116401549960128243375605144837413009076136378573842449593465349124161681823155326636280333680671789343337127368381576415976962557356054694143026223423309776029010744656677474503484971486656032831016942668683578028659037380913886109302097253264880341735956767898618189121186915214141881701358538895424467340840647705154142601308012068864448993969384704754311477134335102989086065970218173037264448267219040929513713961397141085258737091139594012280159283483807195304378465042811693340845226841583668607700591972185155002386053368951677571818221943803579031194211576275560837140481895046146973549821796168666689293391747694053859491210684076275120398047019430176939473005883911362202068429618266725692946349172575358489055141226033661259683832878952398475461685528215025018151004421808440031979036902274336123621234343750401353083793260581349808286098517422909116767976173018010277499607061297664604645359391994987039018523943809746149572488473871928660555763378621640824332449236077897925923944175589722579960060295951262400285837198823119854582897116179457439951236652762274701755522814569434766893557338899323995149002330497709241400227611470140738767270008587985513307200372249106064784196163837040763352735162273732154773636799254085832507204660052060618920252538256139542275275315247811179989720094923885589716043143371533319245398888125342227718736332902360792732555336215332801886476149108723710224175698427132836592398565298702130566110932108675448012431546362307019528646113651394062548049590704357007486400597765751092888058159783928526918875272791701731987872998664086877445625369840248794550227568627503413277842476786047602342807173861535619481922147787312047597905817055994484083085889779112840156680048428264794619272683913315950418447565057153854553890794814286973654149682126326041692772434145552022673451525772669813826472344878266730522354451720753088844343193400027954481771817546799390436179047869989442059821199501921350524782809465960319853030529003565634418253646681671122246533868797411509081864949308077204605985427991074502350798544909454088690275257992813702162311720139067475369228726238532115278136580594152560560544850924192801799022459349756745454159362306838942189734956445640943032444958711402321743481244832375044851985509879791258631011536899277194778627201351658527487770777861040987808217330440423457092246874953528935735216503267612257467726153403658296507224733263458222154126321237441514911820225463342305297854664123466878634506499760610983275126821620945281038635124410210773241412378646564082781917767405884933672681873115432652934453318459174483063818727102879489649146062452280112689505594398894297545169687429994188933097184872875690745208365372298536990470088718600549988129680208072234834424861663508511023815351422715580695445381727590057566312816465189675200144658036505233187609359199331213600769627204757039691106899177937298512236782692331750366625596970117016134150600192571349053491177203815340515513185049397993928254903460784554021903620602558050553025170729070109013492596689353140995482569425709150005088314848878956151134622961689913623110390676802407623092473502690512353842015892289407471343064453933493073103099357103851673335847889810955985358420543943409196086837037024582546559182433473189118854057179654218466137640552179847608862065579713906559485661617897377063052445285787948821293598847971991415803666143998257128750804331912085798317197294663152835591856139286685338962639513145412758883755385285425288073774510997046374629925899954123030443070015411784054919505956680874100975168012859454981759883161843672593898760524447076530497809113925102554043579826682050127175855026387969469260412285146614911994524695963176788412657944666326344007670147505539221910701018652183365380997300012545616302797818382207789294709582393343689786222670814467028326607434957074952045232588441922237487942212818909013263398177590970665063480661445833060588400163541524490935730598232796400681747821634269127710878199720112647101265430390338221229141536586819276887728999394585122435992874951768634509720658980787430642539616838193094509592086077048066628416854732571283956121999287623450736710970003356310822593807794161481101655486532471363924208914559480321172618543558528370776139923317224075455726887548411455613045974536255524490214290625633287042111692226040941767262066182480635784864894263630778512840212855148676234803590774834724492183488166756803958702295873866847290423534197078538281156624418332010993345034709864298799473377108470358093686776510755345617889183575879364334885523091495009192381419640058665376229895219897498292766569993002807520931026767106638315826367534501295576589738019742620182317246630600745840885799066827240470917851932190062297179323089676951771920285289512216298908741002599833944472238433909131300625930291913915483399628903669010709256430666092708813460380323946812624451659768656003406686441302424313725527101238006725242990371747402816567713194644817266003363501137187711370697305098320542823074995272232045690792842462594191530461267087571961666597223643503277401458709423935549226021753399584693310405944292439716142542720917602453856648078606948526434379819999614688179641054834200765732008938363443062706820123226528120181537449242389493410608684314476386228631049819083475110860300718177715508383113947076881045076105114621120387768155268870528097050489421400601923563607134133451655846507384508076187483867235028077717597560738512131948427766839339814692299506177067697660672478200095291342501541612990904082407727247179703157019006325004046395728174312316086678643439835903209412215096870557787843994466702916119650735242256553840490200729278441816212755924357284030494424622798581954378417494577952029656119327348179891408831504604665501594845071618710840266412599246640353305886802690860178355168186528792685521751290465380696207190822221822261804091895806122392063078885508245002911077126763308186337095434245147397251961365642497041578364473849427934714719915365965940747710342975112480609386603806811740546046942005707636625227624104304807590363270812011098009454704159216535433832451995726374170070634348816127158597441502879323785388661647900526466876706312802518426772607870493613825568647292145189092053866789894453336763949372847567565767735836275290279039410665640923158188299193651019067880741748460278811712540531774924860161268516392551142811270287666158894594388854901005843874631944720630559887472296766100946927125660458540520052307587955489386989578370765496157672367820094532779387345366637985936290113355579106177831398660454495616329789891937515518910789905022621888853198261396731228925409203198497988439016075700492854395788489338044913954844458606400223362374469093665695478337797454872888040361050957600190230121679400744273835683395791775507062037517972981547645895136059471481399893905957438105265346029709825719139208257951303170329496385114677623064840677808234220662727600395626316240195062842130458322182253715804005578810989775631182302763643762760287785687335153535980954013214807234611675382617373693066744661444162579821485619058636611761568062398528950773172833979778683480950960870734257696439101644745713917079180692109477268291717233231971164369005060364678383006046266530496392322820964171288776827566116469787055297106279319834146669153405161377777363784218075142428913670365615500102149916172735607581611694344652075536932498791845496313551392207286809949773328668051681770030253928968869021217471116633114196477746132719775161691310770577122221437476987363656823359820541035601091452538954134288444416041865689261369890611598249602979173559285126986692969433765838556098767672360945144141874064911623094815063594897665718416968828892905545624234496927929313969326901833261693488128876939870461781873324771084293315134579314583707480124923139284588753660817719876952332578430570730587804950995012119363355889326071478420728302612263850493571584176086468440879190213782904991994342873259132765404540774959935259836442024604524729386940573518024560074690185798099326827396736341487812290993539178745605968319251898182363709242160601100332505178456039113577673544497010657830159899763020029578296970989506595820812057530660455728932268634551915661561643806127473854463277322576843199596796171386577406845630758975778059602281884827120145955290590970059540934743660464535435821375455580100783477193961688361231371096038248706921429280027756483360886283678339536772031735494003160759627706019207698349728673664481110488477588664447110931175098933939991759842806839648766073813838491510724493248433312985227276611882212619939192860404819237915321653563884302194368088216483625221425951433465516432287862492109138967067002533366881915859365100997811147891706481206696455719951925526866784557570927432591999198709289278316784614094962507626342849747274084420369694262969282380095160364820158378699370602194310856183245072127082050190807237082441823476445517405097839302908443803521835040967363087746934530850265371191404049805469832420834849512301977379883861721995230108999283579965714827952489687423255962902044669889224657960213809340635760790406085756196541698118006187934472281747057878550183852711106579924396710990252110776427867253673474069614413346058716966662385081902792919859267343619473055943991319096885173134330481849531424546563982995143718203852977518075235635735734932724779462013985091393200920763796422617676013849891059367947432587043238141517591775409784049557488120178174433491702651632938691344294924735498705338587566936529349117264572968774364339325927885781854203619963138390811766393230392880654795682530323995682759998295878024564245993627794490847642919102412031367885393322752861065359286089266157948904063083032852384576285582920661362780167566473205452267665049434849546453016742662391331669501958238352880144052207657361698147274840888009502161530791300468791222206532269479028601576983454408928288029253068902966789004927615594569464084981006252650574984423371193676707471075415758384323590984373934191816489106097680420615092555556856107457917183048892681424641661133567454742740737551838386506056451959599350831161346471112274031300248683617611613198406146316920999353640074664444935941844807534623025258393809276054903830651632363334773267373781022836133905525462471092366361683570219220092059598055125079932110965111648289321328966743902219974715037098199195278731476832411795121394911399340546342820058280624929727269559813832063312327806475885241099067389228202799479075801996464371537483852999205583273269859671733111433310802183782711340921650340626443422536515495648193903627557441545564381513842207241806884125570115293759556609234275817883933842811299945017599653608107777280881338961839636163941848229461181632803177311324448617440316686316965553002926202398479414406987292849859383363229996777003405553936540352205602265396893930191831407940460844867465765622893557923428663880070003740137903255688414814005502203940709474371083090333606481984317462585168332333029087824236102577714026627204577971532957346803943263011422088933072270928837490783350328518872285911467798397917352945465201026340757401443252312096236955864154788014503097483467751915254026365078977257194495414482082281548565496945381774675631616823343408594441198062091187958028813236763569902048089698883715169578616066106682185420573973256410828034311717452943509620806560680113411574765629737329791782111960901594343927339875139566553301228257956390997235153471086271696389198755787316523388038315445088081757191534963469608197572910720073694384673685290280600501124908747235879774189638093327609296222674864912022041010936819005260993286223513005437767268908785117087054988897656750044687244202389334206873335412290301840154744060114985802552204538635021825355424397554240680407263950127684832957553841329615756758324949274066616939530029703324249586949847174657898147852157769493640941272545411876062892917257586490877418315130868027987972103532799164838356058812620972033517152008412897951029692527698539318592260283623745115163967389807408367372655063360542634794853554704823073327013193220644826242655537132509822214780571765661617677435358381141471211504242649998312455161694561770464730207512383769227745501398374191879654857786958517628624492273352279850185985881764228097409389939389067262759525801728667719448792260855136212031655675935809333944787347470883297510514760819635144967514345028012811772667886542481869464860656499054804835743537385154923537774292823519836662460983202692005567781332682003118712507251268295770283236470792887588467092818632103758964482006051220264143893626695800264661047119184342686409985888198440145382071535600497249253082774541832237930670294067570053783943537858724548245339968468946260996591638392686376130278541955895742588325900454525312407632003438870542981828145632455880935783006340113335727839358721713786046677514570045445270915018546217889760511086607820026253279189215027375159041296462336349651648201059060124606316423923169575545836329459619097783642130977370907048233694513476716821686237451247211199802196312789400686203868749066360852617914985818822046978284687139965045030082545028213531602625773070665117821013259341027147910520711718659018425182698823973686335355316144245450028500216280873079358888190917520544247072429053382922319137482921613235444758713022073632545929165275958464422186346998408857997303151546026094526157587668204279359110382011111802568466256611984902866053206860632566072569290054376528735002050022194638816337876032944577412563856872902081457011548810992624889317776843392774965245710766307071954859199552798816395908527353513124299457614608431538144147747865188888243522155712409950572192188217905788230349478021063199903221320215866200849172833622078543328875116505743290536349522541878587585886038215024994575869799263047171417399810524754682361079244014229811751336271302416113369835577840828148590763306479143052420134913522704933754694922334330725564721628521927111572020770039260353317081926671382361529832953936222476330278115261620749996698149008340754683050481763308890164721860592290903945185704771460783767227952064622281933428196322499152137848037483660594152175511186427004008186879897215264258006822153476608695386243500496451220531151488555607559121732592816850113762878514624317214479214165261143018670350538060974852724403098025712358420230378093466201157851465852943071768916265792265173911298233285801478472771316442970245611550297686547932239484717159358208226894795764903235312969596201005125045950672581508453326275275342398330103799358834076820473787752939685275416979539857502611372229051011265006474819853400468571170880203933498662801802552370207485164657553904077748457597174070770318165111932307177815082703198546840333627649080731627085462535880151207387372839515606381953794217053553903013682676073784101263720783877356815121694528245645921168209900372953736706577624514502958533364496853253575275844182522404080255241489543094223873247250553258459483042466078319083047593042641743302596836923018680141131595755107003671543396317876855905862866768065560305279069956634619572262054556654426068203441785195524083613748379665827380255295581501905322022769457202529253763838527814815095698262526490861698281121986779803953911826176215006224971216688844933991133450813546764929800060830854380120481174290332099040561125131889580124549912077567913037721465317074397914980305575267672250628978588867268766542661055263338630820291388736053652707901659860213270578115401079891834319785197456535707003050005097842663579785481972462396777121465188996365564658816151078737280308797223810047683159903114808133213432013192513400797074946435194589141564572849713380209227533144136498122088301264237844381376729821191369716046514658482364708084006566014159878316882179423906417906194001124891275231104433118992891745181484011922340011845423599824562773386051174520984916400660390058684306490915044517127676578966649987037298553968779496676779877261972500744153468882576984124049612111741192260957645244121584813837437474998561609785942603906784948869841038887518736105428428816850830828334067669306290861588547363855345413578785418322155270461058084781534324898270052131433029657349608424425694866289095750243937769246741766846410749665560003974345800228386254011915569584158520889340799973697257323826663522501258099407098383499656489527687620926475910682677176596421810440923120060721934063705781820090285875812795841095855124149270898450547050813275617846109885313944360702608484834545330008985844823193276122348214914833852322631960205193010994351000418701456428271220596939377093039696391560190944559003773416556739873602461507021682614401463057449213316382108703024310491703258392738831220513754148697705626353084533489903601682275496416093847917960086476393469010296797895221647452030161539526897691188190213274617588832301468046235535796366376140033489889358737957696852649338029024877812953617564241205231298058760001333994902895665003677588442422670854793249627182251996404550202887357510537842755245212999495545204628184218595416468539595466429056568556357133752871212960579057454222827334628307374328317618772370020158664011778073919645054384886859241333720101763689183556161454052145489427377225024841857158308635588137765338781412064792991917788222464855301649701193784209300686911880542713495418804600387167150495755393910183272584286740881319658661087128322809940668148822782343849357385517225164544944446964248364217141590149237728517536294408673357732757239292399280959698554399789698601645739339329087649727699808753710566998272662096996357318458314467020519421052815338160956697641835063019455433476919388491677862342546582826508304286910928040402728971141470149340698158208208201647969021411399166631164328305058813444778612512531958996722451788307561552749645146056096984237054339278218222126072985695813327057417543279201109490866413198268361447361868015728143197288260626017245453671059499909662536124128108408622706682149551630314046720291779889305055031168914684431319074094613188920186131465617716023949283886434110832673593118369250751315214891472063869198500787841040027226935603383489766818457192976299865716105588481178026515945496363890445566825482731659106823792941457863884700501513177144098598762016073080354162457810092118546047026876032102046699115897502763064865048097541368927660135177719987656514463000058822252873895211475511764667760218849667457626906146161502455809994282366134971668996655919668842429896096326602049561681443352470933458735706346230438580247593166641983955366446577625478515886154358781311497661670042376330289205552270393385809917635472379350968901996485968719564122057441107172182363035457271016998783106340311599474008021903942610616985448578016446217536025001216267058549333840128464841050884619187041756257949317245471947623656791358949835517614349982796343240933326569610326519988876440147664279648636821196243373051819859972469007848352121266039006990924363650900137909141496770275847292939369478974744441063657490003704687072969787748119186219399295260659819403213980838007779041479234373488644003345390972709270239497216952886616432425278888663538156035545713213275760471544768682373583099416548804682087503895706630016895492332823117017746234769549745944328065843489353748414192745965902283536916586986968611114601025436261537231530366613648246534753143552923286520210106733428231694161648677780071591520998827628974545884474098043174590306191098694774172240529536060854555880018022073045404656800647601994343714536556165664777486029225931851607119705701726439728763481816660728564382750645586395106317017530590717271643164147121309525664872222946809340032329512923740371188843070180440404710329604259164662064929117306680038862391778483307292888183574352497389204321263710263690975392303869797508604258288208414688437428640160746429675422680854068835223327138278575388205929508761174492903165141941219455293595152376967206098408404410772744240256586430286902219163320209889319844493875237026424540700591837616684480749505933305661208217807284882944915913926600446204900641041513783114342080699538258406135644919072845789430193296533746472873172202437771603625375367089636320116390774040175993795142031612750470798086115822881083248104675981545875849203777701381076801597857910963764409705234677253438981944430272850709002642335546548515839782871324495143298200899785460523926287578462504133078461686457213688740423264926897956269097102935872715016691572561761957802798042080270870372277233074304499291586597092125789278884603309348999724680385614318416625408002154391207918124050672809677076831247924699342479198504487681616722476457204366915486572530127683957799611222114345281362598670964922142573935905284187211539202345982674158697969501296431325578931490397637439917357503385318375033149538095401210047431974126535544697674821550477249826830678129047810541182777273684829124351443038363578514908250757245738173163396819197183353268269577279978997256633417916555184899105789812177793172700043529778815888384504181650163186574458423532194577700214464420706850926084828865561758633564119077415167330226936290490254830837444380189129703099548688200979782523148246618190012367037290582473063496063117823252499036693392214140161055634432706569926119321387957145323942142191633056545197769345821101954861334424013154544868406086538876012649433816084872010576434805386131227871965261650749164152216028795113280367388151860881269526882984093851798058063196570153312133057655083431313297959682843015554871764471809094034715056168327361026328442050798760297163076747672476343793891458280093750489017840656717805105338378120112927639430530397216673201224869330907351307341736951116560199500980703146879269565137877425867717927695708588656451565694650369558112510655584643137523083310074541729566718385602545370930371140560638257616119956359974577042159829868570990359997111883168700942090804621114173336635943444797788267292623784343996108485989815385956508714572619591152759009813381154765508493060317195489625648356502438031431654260142648989474590171015242343930974822022017155626499041025178722901055874769563834295692043096939023384359278312033056912944598103488628069143608474079615575481871879528164508008285416116841517216331802622789146187096316087609475588483083567428098177027323364569824171082152830736326374131883314786382288862342776487420087718260282770550689190678404648894818110771123146528121257846281517774023958744761306685550725203727150790261985062735067437283056157559050140852942805804351358490586905481756403426383879296921527218860995187839566668049986416991983950201659245791208658394391883945549743323814878519754818692364259074848496533520928863802032502270542488661454679452436052241014667450883664689301130605581665462262586122911595604263972853643532589837675713873433414504170242128247094636525342646548496642994163516425246944942678441152391277779487881390604332417396874667859792332977127504673536559819998703976131814751618643524758961601399258135265548066384110107854381143629616767206859836913036357044063522486717293596155948150126960571052628366866157233119283927232664625816217574552215578212256800288370524514445453451206229138433891844575920759130325701701931051064421255437448132102132353888638589553349315966487558741556323513640144257404927415839772289807664183395183839590173315398908489129073487926024158878829392941219657446080728818413765903357334255180292600086428236423559496508456155118522710217615518209118091952883541950416246965874923514849664381985445303064825723575784544004362177799773276806257708252700621000125575982728828716748011051619879630977887176275398855261445396219155011509253412346304726523211026353167214267851294657780412939863517415150671496275329049827738967110685577741453386807483976790531046385099727745055061412480495764051914043862621954041020446138339742996097599127275160338995010117975999852802459028382560041317256580911110769492130340639449328753561582427612154368614974175843766931882913028779529383319089057612072316201198514627533540849374753273458915948365845439046053726825305397017720527321892057366253643357464964259933314185186079758692269016238954911163130189858700652099136960778600592510725026368004560938960522714051729791250427218705953098574609540660558618243583633292597068884103328024086708315000548288068818941517252846690178228168121699758110241229902727786330385736820637007657886499124481857865625601102281584551365004556048374461618442725123709204943483972320145052352286413808305392020376871951036138607877910957765814115053971438997148949213592089935266950055382168839044300938227401298956821397705030914247612846246087943718185291745673164222094031745164586039697914396610127830670684310537891776148812113889295754973246032847909786390965966375425233350253775998864820632534942814457762492152407619043777504940555509828702825270564324725739195228918460927991455893547761437419197598024074579340808535098401396208920000442422052979987907590141819320359384864155580965952455158917902638642113623299238726959392804918266291183647886371086649288069988239659688510777413831846749293314959978436404645922662110187874278575704345528217031264326913521862941828047170194247323752579354669158018780898963158256572814379738615276245463141758954072368444668210109444317181862347155803315748007669998856954434757309392005123138804345582713777627603855583879171388566396723015393777325280056229820989520155696449289073290990086983001959666111053783663784961790054073069279969026970956694737294189868288533885150887159398601309306107713060187209325596361291604589801351563311228543615913077549333638162313145599832632594705505220548280093431874446426277075551855360640440672037673556529012577714926171851674803281504228274514222321047641438435812979784354859140317246701635470632453460274731142111892300447369835117525378928938585248580709969471332116444024440057442193739505416271472704894800433634317251260853313448947808492936635168184642730976186257914065622154069914265413833313360071331573198871255475835384538321385912985929487034823175002464477884672577679788503689353313823333750960074644442464266212378523364348389872862643072156121257810853239554938960455430161181773654979860291773687399700120950275980789993985370959422914831596929047419792789663030367084936669325619869616725771833829113018993866512201316089268702155085906598718819649493075628968770518898330247786482695799017897773279208867097001231715585476290438872941510965443608035799305881028377660098732119819591172405844314146659835961578198433180650864673042153540267405516713118559145486504260134197009623888947079335787182312007123582025167552413851204684222345176603273809292573113870987863080008087767981790003274716766111191997749299994804661432479278770844744151542427367042344663894593787839690581004545679127885624757165804704129063984427293170237557281633683434095760859914563652006230702743359158263097766320661975490677592896828650062084880460259677062251228871979595917320143124691432378691647680579523544628834027987835996082183212716288334527180110328791607882876428211676234815979847886755283343017615030002044319717513785745347704393404396779146464069478108673104571060732067480870456263339709436415868169012832875136650786933545190771353143682804280075707133468055790155951971690572278876683435233653704403931151770928187971802473270450021210158166325787261701114006004176461405853329804112172234571617611466952530711540247209200698026747933299833402856725909483306674230948601133336905780270312525190610226003916841411766350487946901660177266746818759735858532933701655251757450594260183145134606758880452944466835086005301230081572995691788673347518125692321182152048772269860370952074051262409588800232468698276657558262167802108848990094767436515745135954189121221098251312845430664239657685353832609601722978807249694372356445275228521999520647568119340833995999169164553966637355192806716533291968278076097672372031299104044785996470157475880492606259656481888792388863871647310505993218070807891376078078212254400620431467331912831556882931792196214141317616633586454153433968940410800586135116513670727895140963782429979147300856078288064076467099748552304451163447585148012606671618562128791276000418863293408055837243193612994306458141226861272132737940427644721239341545505687691403478034884230643517631359237145936679942430365578282612370470291019931455647078624699577913998835949556945100860191895383804352001461252826424493994265382227788847445150270536743920327838942672317087778179619121657565081534589754813288512792721527227790648057461664880788252661562712296565647186129356111687555952621540519569942923089036105523131885004987905727660267264514673857176565428361704027846311934218239593401254328119684047697032158491536543913546994067677503059310307099189370386766854661646743786707144139041813995641603069558275489787525632140904541762354082011684746400770428889139288759164186115313690621949888716701427800820426730260741111832521115398969068537179413256783132977760910970494796643371551086995170450194666274347876404697618484064292025442254298498344089160747608217411626368291113500748331941812437203991892140929125752724960991527987754619613840770637603182447022773096524140056024192050683402039020909569454087095903559809755361364787217802837636999012481870889967417683370476067617571828548505816152271141149005253584048798266601793288353892931704238156936403858796815601376498859069342448494846392213104321026931269448114308946617983737402358104969864007444593209179525314336120347065475603189227460337526413675717086092460992888999568445329847248695266677031552618297229083400474468069986874486149073717571221004465151004075667393563644136303564470719949423018430138382125938172822808336643961141394548576117618313262324714269322877396321931956795165625671585392023174203314526509924742244534627392408363585529567629938545130165599738403244628911445059106835855223178780915284989370115630493494851907867801360805791116025251884650299841068220619253959930360732786388687396356828747993526583563087819946838271267910988211084620241386104950373147235675374374460405663809700556458389008675403589627653448117854114714687075229487528168695672519427364754875126844523036095826559206816431639725478387489601956263546264794163971386187600011063350549593093246286786013095389393291735495420004153406798585265024038403189649731544736322930593426984858594634417935741956839908125228079257488634766673943247107307300220690906587700440443026824328436329901299317845185428883656028334120212667125926053416123644491752135472738945144316751892911053891481742479691351225442312529570769985750203134593321158102799928568614717093156435908871479124706041685357303191441488139629785451190425477111072716701263041853131386356297848719886304564600409452059360334456999094573596029216574981199581331141815964428333031479127487079949245349622688659008221971389444111401887684103112442861008433348735050308842402932861125238656691433299403599453134195858577940913872056584333927544426014000746012341564506142651096085691985437465167817970782939146610457234543684135504953154029828913921283755405332210684921611225114318374100321901769658109960892588796880693062127081257854145538574422223589979827237829481025024765453744945659918195824398551359017466261339585765684334018154578457459565268159836146767921682934813402191885545951673750576243339640992097439460168048735028400442729530645671296972453731448978616266035702436753197829879858051210514842874563471061752186552556192978396096257603320986262107771397147669290530122172252921381332993300631688155117340732662155641716220637854697393448302882471640192563238472185318100847046438756356447788626934530127924992959717551797267142598479549947977659892274038619949657661227802787010274061114898866632747853676386293553062044941818639828010953976708709118082144317920460965960261866167729711297568419812057666518969949038787932739344946492778840320415995319462112272094113474091714447257141697244004263082820206812737858925896359410929296593754856510687446518211681844289869303854039770724629091064696592238056877096063123764187522652959724843047039789522494758291321435145891168557097625992983783238118502644069413790213311949300562417329137666804141049938036521556640756429864129520902687516925670853278443791051820152581264596376525025199382677491300851101352906016122534786039755976452549180705031576186320561593762311435829324914212754073459627108171466770594480633175138557627000783720900287286867388316659484636851677910460714643759740675505824831094607656889314458932231487232084482843313040363205780331461840526797391163138811314813777871630631600054880308226338321792684595467617186054400352763498999207408346945531578183595763036199559958857739277278187857616556886986788479305056936701403047080429854791618510858932610975810178326458610647262785440511458769551044670603144522034922406895992682450405980558647001027109850407709138346373633728222014797082649821835560155708391028846608751924503107263136144794783245327921627697981999089662072416348626518710787964913232327952511776352382077092251299735251167069034004114832325053461688038689315743810124129008336395107009139015593682984776578119116293502950632593600009835457902252475935148757299878586139096229707772176309074094589286404526239384635195165036188031309169206411976556089461319776702191384530236959832708165015266787989322891552607886620828948465545014316997885212284891653158545544147100861784295870687256539958055137389371082776201710807516583442559077730494150179698928802426836651897273269138706368066375436978539269256645691243859479033171872796372000308954220730974656316125937177550221218758804847429090337064281408168480179571911790524191193209309578480064644579821788218645408652375775811196998411573437474292720033589142253266700402734342489341614362944054281241929930028480865490373278205770174605678636245529162457715201734342873664493282515500498760650121827381806857137807364599036993558520487116277885378105880003600844630683439929857740133774553454419864025706257377813894706162837167636440432158123722858703753122822768710445169018821388240250985047069538154173072932818268935236884634585943126075417440879016237736488343367962006598072926463138479256644697696895002132125001270640158812678189134920932794830494132738762262931669183147894351158588605745888135581221063641331310112872813119230985356334406084441312841964016845925183711878601586127849302806106832817466631838851455662753848904741572990906863966278467797858463398904732548209935069209109899153382815978269178417946492518882451995228177263994217444224021581884617251231958993752618779983468811458405196444212601436891038971705136468759043572834790411057980193476090988665671441394983168446323846312847708906991945331871993386455068414665341455083356012364254462086167004568080707257415768023873917826742241959351943065061650604588825175456953198187726994685852406553207955162847482633912207622444572981490043818296475074683919427907858926297180911285285744063119027842413622867331846605284900491605088148430575027598381803161925357358546413549323727232732913424432495178715337178793346951504615270920897128278465171707270995462280333340763559077671495682421810194575161148621456819662662671211926233691635761731728657487501560568999028969147693592050470301862688134813332040686285488714338750894620430561000319995765367117446903717482111973413205705954581942345653593469604681152269901916538011288581402513249647496353283605469262658277085220034748441494979602804777626093393745117364182897609466406689909412104672043405581083620194251541701278729225390557903376397206958479141964118110834531906521581728383403953987693638258275184534367315020178981931976730115177446882167451805012393769958032665658763487184527672605314033784675883871437477709963277418027856627380602796960930751694667326660887654912389217608898057211473260620311977963354568923950987677258630837145913727003825750404470296310043499516747255715688492277071567809319578782252986004953584323494898431824917528176376480769530094003959871555667519815542734445823737874017614959769717719869541491507188695152337877797679600434906560215264663373901206555636654580280767591852658176402895502336585662188687335604512797419023977271357933986636434317151805237958320043769168921634125980854168346310377968815957471351810594378663009706138085953794657691007763262419319184608221532341616707021166546549297879159340855234200615232923384699068129582576732578415312401326031845700905375291421503395560576102980264489201279503422028130235556585438866487386317990391160582085871003554467571490376103490437299412664949579512420390797115635961233733683468521077013090580360769999310105184040627858394599400735549542746342517389680183285926852867916594870507616474815968389186626902696921246208960320989911632902684135442492938461980072695277146161255238835064468936729586283680305198393683356007070858091254357461067679280237673532558728394233150878973788024205249328396944014308677848663567992548843302382277669621168509521033878480538832222412942220310457212039173355114755229053084912563013220809944808628869665196578335116380721535607936893088643158001015208690047021232791125938738810809128773927531450275476996249106268656667713935745788072513884281525315022259415641561231661050955189667455257218085923373903577226649007277556030676458353836871608745220082028686031062202571399385432799125196351294000005610223341204291130014239825194637324875737499899472106701872199990556852438020936470269635040730132106384851070385312203092886888667114027145104921104106624738372738433635382421723440151496422225440750707470282332731855531967156248153852293067721505197145665484249216674025704797121506538703998060890489787603724016979497971905842180774844842781831317443606639340005747024514917982017303390220698721479406160361830152943695385196671247269031271062103186779439012772877776134695888750137024090139447655063191023957772192498964624303170600803587691198254529258575554060042445862538792178479967746269904121323389243427721634924977118548583706329307191716329811897830420960491026037223770378587953225941246037001792270239698849169717718767532717674191768655171404180740271515792539328494006574303213173730974704097778534910180503677734597665712154382557167590018004992025280814355799720497915892681586501769602438078077935317688855466819115964242313957487992629656544523614113196123927757420772486990797310366094867062124229761181778887243241236032793935556068233814411057904345995432380759840878060149451989365703616877967597654288916186421549140379127292004933990911778225785700330325915452423153597962951832513082927308800847595841884091546835632136476961602900703218354152304132576836159552371811245099847137699296733717192445321872403738582249149741479233225792364691695423007821097175904916550947878951090872509920641102831126835374861526460138340648496770998690504962036843011905475056872107548133712574171126518448438744561865632101324677308882763584703327317874055385811834218427375637825203644103003870140050109168962819497835652858382906922084750856814263986537657403618636874422111416893711409939450680175325466437528693721456164321316406139590344483380299077807835845710821610680186588948083780006858523142662621541962695095720917205546614833917473218972007373003118590359705026314594381225725064091155239340073068005805121976309488616157312627123083392547929950203307819038578627946927996460636078914906549999521792140099992779289332310860540677280748425724221207531750848016627167821598236480053897043182072535528274436991380930787632720508236132409086194268064140789274743192176799160692635045449592163233729982130245144602273051080510485613432860999250025067425612916331005998218833026958125738105462795446294312314131775116381230816173763178957078355976848957004080531828692318879961032440222523010169857711365564996359305189201412193758638545404319469052417946949166515872125358513290072897790121618054304983801478039473840233875848098993569133147343777174580193916703418731914857896563345007514559633797887795689855047837771396889582603605931035212335471830643825709624019495167308766846805002549576590528643838550796543287225940031973192070034997766063904887634397194973957755503859955242487692536486495837981520207916029067067046085172583347162039429863676098853286425640684776272410490255575588245792331903383141655621151993550321719846296578468397031310985233032707326793773055075695090976830207069769715548418234413063968231280418051126315771525368362822100650981691206292189467424665480044148169273940821879382345067602674727319324220468378294104957034137305798081979695541453237812382512751279881654302020932254876303417079584309717826755754059696502572979072401338250277188403224317388141409416719854686285325445633545742726682320712146482871798339956261361251701471556721331669765409602355938769991268123833930591597715890191602466522491082089650258733326751672842217505332573352798299289244999092097383072957157862097836124631731222288868932954960663074255883747560877160375058949376395371592787022335873919998087867367333012001708514344391327453244490067321717816488791028446983960848951175517571482357799020909932484654011508137485949814275707475481435130052262557517007704382732330483552984028656302299154636447662888346139353344560095654685573984113186246903797447452005015925468380146077602616743085250921561601743400401782479920555616533179476626723620148644287958298288175889785037739121980693687354499168005503587284333730455302462709014797268687528071361883571335963541333654380268202556655756898374349123756746275446585546290671727334225821174345220078409429939808135408213037997214879177007760563526638374924323334738606817742978045649561995422206225452772505156252609199788176763739795117716585525762807934946091735516846245975339998737521827668315612709917218775230267139982225853552288768546462265980333748588457685720392439017126133375166327477342847154348647262980799552531756386359203359584522089031404449997668957261788864219454660830987208241193520439850099116884092160836508960342709817707078376249915576861778217839185708417363947359710219815684112382623196725358590245666647503520836744401564717037821325628808289672614296299118409641487810766451649894501683244464048299489669212440522690640590425552692646895963065335557498082107077469922640207822192430992168640951048138450147818258870005677627299725950742576224158662979276575206394531051955188800160601287335432068332269367074605221010589543640764573333148253837788843137977571018498587390776763223382753281296306746197263157747445923061561284547831181651934725793692890877356383408484791430572950501377034576674787470256159962389998980790822274840977354359072146275172073890054882221219914579350870622487481126302414641159266286300891046810688263620199047776383446868800087810921132515493431528682816451940911119729396709124897321477278361636408972415579332098152915729583215882033903008016726537979263291841584451882657207284205243473578234865707344336415171643654166267961147694806144117112247868388055403371816004087986797345767377871644067491319307739301631150849266864622068806625624394025320310351157819804306549728158141278322516700519776391169213123671971478074650276176889425588007071958664930618189397849174027688610106894438642681790760763496007778863793957609952481502421639772104150734073466303787940856193185525292843641671110838946434355910795583377604029438789527709849249567878861311101521248984184350364999822287527055644556363425931589107633854726374109314744950070505238011253527465019113909600591161294218159944709526563964422214347960318040846269028061121641428053740586209495987043231526954239509121943726555204204488945578523311095698100240013282906137745574429739751196534851619176841818968672775569816448862520652309610911029818435444114811673851265230506763511996649544326510542967409216787598135233846914722128941618770441824183560414502802450152533818500483845793860275438564020549569331138422762078800335507233606462682381601866093204609515018321877685027470771527540634038307554608809054005550616636696057683992020908486184982153363348438887977144304679833715126104867391547793321107513886123402070032003867643559530496677971198418052026491701962709749347091942648355693766386012854227286647652580790864875492363968835981114691481597891360093598941114751919325225583073176850238199500394040308171901192846508187473020243018325832412863873792548002670658575490461193019264900164744679233136386373851941688446065642289641585152099461448497499049686115780030101107376657010029659061091228142279300037929384867237549101709674093626805934808471683960052592721882709253068714934636873048329728748360634812895207236077859991932429059229573463273598812861911170714034091618766159351013671062547863121791477696936399144036464242761449339986277098312015575837369906974280908971111393277884204536879557594000970016733643516175785465345817115926640071136091748666065876167570544866565955801854863547451092088915173177419842450968306737685858161146741385094490655817788937348185455963995201238667089922389182150082526716454967085236521227590909688070466889610787071772391138783714489153642024208764133690030092486260471398800411424158533557253741821305177243660435445614653212538202769444672637804518240474575007165294830608449924893770573778433613614117201164760692060104302477510444534949070323229065301405932512597379986189017527112946971240648592612964363480354976021667871038960560469433452169870079993662268848968045857812341160613011519227393368142941309336250607249590245308940319694592824368280631712166314255230149619088795022277689601463087772361134554801586951702041316551864114291460981943832605869638389791455013718884268067266013229515373909537761594218162099862807175428702114749459914239304569695899197228901152729885786839477199738880609488195496482014981454192025346688447887817167719168331159136764270541697350740588444325234753241198291709740774915623675812738128549903653554637076771517823947507375860276016985393803936265427548978927810865497057673484902004601472100953783225803247696089016486305690247497595430861485688553023275974076651737416039099231000679314089808857541749953430109169745778939130128156761469833642691613453839206542589630366841366308377310742603421564774623273820843252482332774552881964499476945391164070332843633823834837037522238557276765978871248449141391241349858162598520926502025498894349373376272333936728741686628630590096678687823786991738095674380361658593432418504449748644023185625268919330918510154656834930007400789350820988268754194763693424096783947288532811135115114336620183713969157587366806242501437012412496576209781570093168941006703699967716678452657559785357740153853579358356769351611384188074669846722060885007290222240826617284727807158224214219089254701743072042361314881755748760126718373413218678241734554608478031953555882117752375699067606781281779251486431240944867713369776892081115128974036318902323151633055262030550072983413795738308934429661357147951116945629266462801038115726481864281031769335165460983487197492209835413376103827015340921547779692139738925559037321545936708381319889554945835398515879866397904527528492850910943089117095284578892973684947795873598661088043098567587099867906486809381663564240965962762044965922724797465138877248865138386200621373767182729973753187986320253938223825794405646486593720512000066248550326763424759131332310811264592346431961557912154136859208719860513038072458732301313275537890312727133250669050036692295011174684566118564202836321210010767638589071716766794062700042525787358555185640444393698302570774084773682136566732854399233228210721992303323836794322952663693229651416364691968771453579864657970432415545618633745046557167997398398074298964243646937595931870683218077642702497532568497040831489407831231391549909648049899565348079904212204698771811010436549424072385878681746945228456089327237810915124641311709048476091803513308662387438343272131765792972832619669032740892657530581092953182676820901925771044676985617417699089199536034963328831710967509663369679561726343455258655349071260197919457169136675497602127440050842424883903809454099247409695504597880885734252291163423193414072360202023863556522547589424979355631266830608499669157707004143074302110991965970709796214277607866214871324276839775658797615945256020405564184063234947988315093294228111870666329092817984004971048947024510693302563748479530483370062303916718342646842131172782699225616264778758758064558643179961466824528782996237929504876298151524250892308728274408565119879297639494947627373404790165995932309706153298955561779370652481549285622138044304696572536570705650865538889738471959431314842383391712137916307813467388013133920613037416897974286494255989103252330679517126532391977562304286412717715678809436143863427543963949990953633129939350976890312890882016060703113160519055264936656955652538098072695488136257659663181539932525328644956950521584715651425739573463165150987278448185914410545281191557660835750966153067310884821992434393545064036502039790446979664198942462220186875021662033570112936631831058905712766414441308140310563705170080966558773704562931875330091888534844191633380685929426681363884091876265604179339596109729733851346513980050842418079457162744558900025718785971753611467897840232711830029132758335149294863400307401742995046249956261318057247281634458924048481482553741199713935802173695587471972252484064420318695692880018819975698086149221750700958447865131891043647355166318868254108382185249512361892565693903522348460735540451719355010396332597146774311540183194496533228616330198890798377011443448252835075362322513241844107782269685827844157671478044925401277771991064939329326797512969523368012540895294387118754429932319340166034133637624078268883917224314426119435997741802306092633942395555584575511145299489695413777432818928495819316737411503013390472445232428996172569173363183595186372949914412630885257719029804156857496750244467930605582231451851764663758350047469387259835101108492660992925882369482552144135838351262524435556092695602467954446576045864154736839217122654519328794925671880405212911947248569527558556459736074866083388017816628150918679640814940415823827958076359797186323383801057453755863651518203160470236824389867825870309994525647295790095973789854627943939157091695775107369753747869467990709063981765878788472046638815676914540138967394450048325186885288075528210327554367953769723041839082784378510823630751628723049001499180235193193294713996150786296080361003320117066429031179957706888310096546802270326935818493406952527999656301822068832345511315261020472400087538511329632914230239113652638724872936167528960399075336937150629393811041896203943381631749899209718687936814540931335896898332007004450601364821473807789745457491809933960717677721486011104465179942273258597216442383003630265357651317825396616266920505066050419151862350196606620001480347498316396869887931883813020587312229742254493689837115629865636451857785679765564246908572503187522678635207495208296115122378875657193224850373383414243146786030532072505939351902951929580082564820036665153846871226753993935671127119331888904353428186469851241187929924173837606549650966172577583779796366145523584332126652796090771489084605779813455975975056215772143131677476522492007845195924380775459563317762238968401987130090607151031251654012940693371603927412313205882966245535186258980095687060935739251239362805268079856081782317337295451151336270154767285712069324284587450678897806013927523379308502282410225735149788786503924056627555102840766952393707303922749933073093494148700650720309350969503372281362275059816599509192355121604109150182514102477747171011862891979225613692801252149050733276688423988472535019014019489099213981151606927024332743154662866462088720210313409412317451312402380511268773432379906633775564833159459663545938585136314603935266110928890907283512368988959901036733651167919280423455744011073997678424791058252447742485818470257524626119811269428643919215931674331931737744743710631420924141981364610826227522205489493034910081792406667052508448449616658965419886853487482144570652349753983647620846386424507491228984602386248355039842973199774023671046284227704606443244459931425303288207553081515743548319912986133536085247620254717073141640424738213991947322562381813131360703648868053100171996911945325169770781494720336779383211485222426516292365626926507269807405780399013511953902690985358699162601470909953918651486866891617128336410590250634435612493666127801772318488047338938687601999058834835210898905347059304234576580647826505259124532911037077994491790503658985827238923805629989435402505005049830317223313081663519439396640095923862661213302665927340744895830553723043198537304702689678382665567341180179073289862731036706856457168668635846332047147757524472012519053861708185667855439418315003669689068448958296559280558520987593037386475027925860499258428199489722328484346546122173224594105545946845450400132480742683668334152999195436310708872387587675468892251687591449860149685710905746473216144354973663892768551558038699127016967180374755967391250224688821290883902906286590579474854843874170621478638610812463938219798327636669372035406635813740532812028547582456116424459040171473909310439436313708946673817496712828631966493973118411923115458611513909054351591130499234871779625580732051105353542880099429060447087956593426991346040928545859070665035512487668354000837695442400153183217787107770173345184112161487460571680472108287013112412038089268479223653182146557893508114854436962965388321022310735920193446687528489257133638979516547257867051771745973298136194920218463552624189108314755958046546433878057392136537354643119233421700592795690669673546398540834917785739046754349208345792787987104590075115675939886072501890558381650631820986193312891756156412258750536597251558800338403667319688959278507649936260837158662842591762832804407936405252203827170730086987804088193221832816130003948031940504786910678658496157036103306991512240721289541364866105598872660504708140339759662935822602021824631079795280956086730999928611676632900025417401017668625927768568521736307139801494486749764120803783059230959864339117969326588530730283708834208967151658697652494177964578928851022666902734773600181493901983694074393747917665985666203230542459403854880952028668027103147777997759359495041667925572652974434500097703333882707003327589943773944267437012036238653887712863696108696974983671593958380070209123265058278363874184740498256362342046887463524603444508800211791885654528561150118834948980337952677124511357413167794581006120661375174054341535279585849224508076503075993742215026134876493743973571747836441950950607108747529272239051074265972940335870111556788619716096181522227788360967807267531388178780064878138443971116978513139058196806902732595040734426391014047807560502396660569688184966097565730994274411948195116574145792294299580576732795209750372987900816658732774823529718831582204823455925818155916719231331498733266760891841527389251329577942631827537277608490613723092065260071302412584766292325324118319357923389629873941317273699031340814198099629831892975098592499753206447891524551704119355229361866798084476031189355046656789502905036199854466637920172115493197141419484423296406984499588810649729058586992850383884560369065259857400333908838995542681024821543617037584177105252245406312854618734282024742239994029474393170812430898195210788091850923918623139989900377598578807034423020981171647081491675430362906758665045784934730312548408287841250497977311982826747201399368605879403151700716723598939874247874819391274868799385649094086350503472536725850466396609249637079333125631724035809653466984403628706844949813011570541366525667171165443370674547050412547639087067278598469210653669456434293752260929987996744268925422219739182723167077227991305635112919369203843046856942660963929597087051931442676258468123320636336960406372544153174139004263032086312497713898292114395204041218901217788801006598197114523064475310075478364583850548866572559704009412135924515099348580009336624128307762405122073911839897599480444131216144523852118670502382858877982632182282005100698856011249375878388010660147288866691417466640180183974275278413920578128644110295371657236280824772175076712170221064367328412618032429627594977115238044591014649684053306126453396745137383182850732406633370881940152635525250753559546065964285189669839632007708447922959856857569193730655330240087002431073858637238541825266792771497462143510131096157897115011886834205878093705212121339317973712193227951760238997688893274270365868046522783610414382373285439073994946812491315288841714805235334048935037050915256903203373015297554663257978476935182074443105892143952406945812517251179993862971075439086647030557419070169742728974151246031555511198514424357219421794787377034507866487544720204178585284578040919675811659416230065615029542369722945723013163800814158482299581210729958112633053517437134512086747987705835284862073110221125881539812368379129306636977744040064915960945244642292583289417031363451538619450347418877610956186882851206247615160224863819935528321245126439370511155880555265189053729046325806115591543668199615649559659312294687343946100413646970665622121382118409870233251801666048738683295108440820850816843418054267836628809335979364338473670376742946672615363278994363207789071657069935180858964206346801041620016429090435550887659378215639207026144003204419981968123266750935016630088121203122434832419413174444957266568600345468050533077418284412808803205142335459577930619476713626717709059378158940274312233144207302437216376080130293449404332099598813204438072902326478389139812039452613102019748762717276871949399788731088363025119237243799905550182831384590962315394860652702463042499279619878926436830346274849936209989384467666334386462066500791761574522733103497616327752440916417803092210666400518918151895565392201911201507720676529486342518679477320554040153415203769883072023941822069954316803115734586263902837563655618150064216293019982881707424006783058310082699354435713550384883502959132797549861628091684973066770863937354644012148939300473404882689219097224631378835633927144526185547088348656580947286809808829218407846015844120345876988814470481490642854269812474284842889861359652263974973911716358355552113188020335704332822102515178787719972952053870828502788040010884316216299919735989511377580075374031369912112714434698121980601652969780710449127269135543790005455423481908354872517582652989793869917428018902582134821137492748347789228283755494325758008416606239839049368006582672466807223884995055022083566452684895694968916341904017332218044561634686253201930317959665451641196985798023611246811759789525295572521908012176754548964808161426785823022091902999434389414094345888000193186236778432635212457949525346971090502805837938192610152603124992348206865263417569694652421975430001266343179866005511019753426267449402683163615539373802836018679636470035878864279496099321623045675720016319305302386898276487586991643590353332505554101770134258493339948811605533996820754671801718907878843823839635126252487802413491322662157623370272491655799597815616009201982843734625937657281709957437911388321591914562800164230917737594654808928276304841062758853233263125848114636333214889203127395393364688000047970920224051507170867469760003636670371413221847376723606340358435090675326311143805803093565285178612965671575630385159074456234922599100599147035641443276478218685628141189159717800634547456981793018102984089412284248084110224794201442994455985413128046936811082768057610473401107460027001817535711852593079510167261277323781977098807004019101915882027325713882920994884320394835494293802271062528422534408199871141479771488331966550956019697460990797648844640392803281978786263890059356630604581611691115774034692385075388172606769489907156142328498753614565803596801368432405843073194590556421985823266976888420249882933063799459714811525873671042836177292819973257130325775317322808922745845588113453542374887922418666958650807577732342782835139138525892332207367009847777846787080980000104958666741955738002985240743607249437474256449271592138855444834565735642515644284601939880060675104980372143347162907091900147725559991894873552613347585192698511650483618788656455496287105494743707858567525923696618958962249721526409531209847953014292447448714067380506880275242819991972698113229896213622699476323756957215751072911120420660903181407510092004572648901606950271358006093279490562075116030791618423590123017521510735673011816900432464635785826244749707382266115417236174471933658384792725011364669114991653533570939591055525531656581690849704109856400703777588931329853050413034494708068218395522195981560259140616276711999722766673716194515187262272455105852293133722664351086573047100165718439754581733613998485495643135098973204147788167886791844900396374840297808185080506877846725419994535329116334073598781973967076200760787966704932990208860627015178060941711846491405082271206288605389956897326219650052723309138622140056561033758832772503525183393515809933968460482570074913765837358489350037358677930875229189410533888559350152368942281238642236802288551062599858577732318649455989008369830035775240277411675091175295884335868071255605981971787473747017255946060838679571586564999801498375028766260209351139855878553004781144538383867867427278226861655311850444429585957490621759751676165579365876773793751633833830065518099803512189080385036998920362735374979251901298205487020313353250905752974541558155714155030762718613423196912206754828757977716637548676456546220920464796357867401351125854304291050261818577607974531218218263674823457779628033506841624668378551243140539385315555379401569819346542311785573431055150762571007192361218546865136915806346815776981957982520479523489159137657029427848944809192720314746812361048392512594894226113605058947870471727571171778840573055508153667073151385455391265810465975335250500186586249600711350745154717679613340793880124942603260089520703349428914289146287678134550766999658561576360795144972725229470680166758674074267472104336598432409657772428995941969255041565888874677232107612454200055853398557673818916925042292991513076068881719442872315587208423264144357698414481637707281521310163235764567408368423798585344022033461594979086953332172161448158542622434619240636328662138853598533664042690478670962113870657146699983657252241735832717431614427873610875307562217706493553744899395386867855107205586271006236649356154871982803952572060593528926416454898350573475027901480471145277197543391211651477590299850043383355350620700126413977035547851667083431966391913065616501495518433486431474365984392712934536968060495300881311504623933844384298271662817592906126099818688610137303758443900353366409773511387994798963686003727277526154606158048873051931974968606922997487313746054982296026689618548276939548804056574107779935454113890666656802958937255299345650524361465329428765215125103982411698766751883981531766638975245162877745645289561632600650865004789983918135736000972732108883121088772762317017170758028229936402907283138754308746664207872749737058466121472438937588967740785788087068382262922700418118621040590852483390441241567620370918047959406985881427944052959042720944772425474046714538219980683557773868937630745097288128395642756762170893817767196072479313630122066802811344099254258114163290165607355764133529870705704367382156525423013556170645125111688796842665408485865530954179186761490574706288526808515039892125447879381301653300820276328984708529162373522041848887841250666544118615999579034075680418636893155428161620684985709890461686389039242974646199134970474316250147369487461600068695713912822697159183713774025186031896155878442362219603734411265120121923697694715476664259627581205846432654566834675952449693568469839200900882727920861659370860645539875493528871947945155538379902416849608570278324334253237662802549594337352866948739318068085164649236008555619139126185245844251410910220503616376931068678043467385329459488149694188048508926897215578601902646334689471602798621675388916648924626848169428492822622033153640233221479086509059608774508442638587808055616761096287850310945683086438118699536632393608744823689989222261979458344127260355447270726339640262812168543815512941754429111537009226429581198970705872859964549255640200949210535750620623997622091687380680431496413634619010061805629018029612277838717225491516576576889231462115920056178826439492414399463689046246569358719941661899211060075855505925076953043511706779266983771841480549246029116130377587780954313857959311082348838601460704707234089967878646660932865882366305489148536761993405551400573324235069996368523395502646219369609416051979244557377689771010568754262545835384533288330245576354554783015218928158464236605293215085442053077628650669903530260282999929492499105583909966755716553248042623922969617749995538371387279665792271504043538142099010005032918290117963444805201430166456254410809336253389917054799852566296346353469451258383825431653211587525937258751685325834191507746591410018844940319175128458179719538876236893908673401152472981677162604502569177704151387060156554872919349555887723665874691732206141338740775144327015686255385983060182205825315766454076859002926430095217976476235045465897976086786919423858703239559818840142895108214324740775843726331879499683983539922972617501842333444843571746697127293722765941650287983569902661364985950644394668284205157266581301004961689227903737583182333255575744951875629929115242340201065516353555085123181338944821831367864009279157856805000277904363217956959985207671654751333098552668722809868703189668694590171763651057159681042376682091191972442362166835108948770887008617909733951124139870212976417019847157446310271201753439906878253233109717231181466637303528054664022743876442324605018652282498065991262632018542548025536634555370577405376451248755202312698881010758511177656273467223317937053754259110166503490375811127629256484883892154508211957167431962350961199501170069561683948303587338466280643861530143793916143978048431961723842942933299926698673298410725756079468445552475632961567723333403006960812531603582282243599028906241025241551311679677879078550402548342867727622796834965036301023129798593985626251367161775996345062532774965930797286461993778642320469880673938471115999764299573554674024762986392632436323532566667937002894598388265943230113496729139605196727998147242215082143669221475528349715462525739209966056991547282504157892311539399409864979134251757421157215701959928070915868806283949688585414476646399002556854479385064342433798996733310689531248101772260945511233371740566430432763253175819412318551151251660313755612717480287038784483492688224901800958919975375111629065422654636630740623129866741017809130911905141515294922385597723044632126222771799699067192051421278771147712085594795453879301872830568153585289227516745044531982355992818110027365488138301273617505286312673674694290080082143673122372561948687608845994821044258637578779314814879827762529719345161144101957290632625641275185102027228539442284440006665427736834546750749835783925770273130640596114481334024099434615752664075042229236248387366506547054591071637336913704434014296784229333385728715039079717575807236398131184867564536901225299141533846476001357180807883213769292855174549817245976754027043932559091513810655078596902961856130687398159915576311567810762817938646934512640634639239476713720548697494967063564781813959364640258379261593601053114816832075603973819668490618193727076577559727668971982504886117840145854554180401457294328608583051140940578005657689817498644747310224863106323769918905642940951223168444207718449544195050323366503438609370936722339235547523573269276547374085395074868832350425812370333410804299966890320533168081154931807626711130740195975120777075112959710051834658601815656408928322400810607180099827135480161466751428509381748466963256736098755044364825716797820183632561544806904392842024561904398317537243552633907354806934767093835793465983879297616608128169595533617340019733663850116227881157003585071177082662540694046510307267342193520876438308630170127580751875714854885163361874345659038861621619282399626151997052042595488712047856702630204245477058742260823341833170949543822300164806256817644523344199788560525348100545307171992616349450956304767846593731607773307027823860341467016681643976194690923727705634528685053416090780882034385421813392011657826595988747469777591688018784939535380945293446979724998634326164371297703352462927501555726311805075735620661265577248627871264861605042925778464703864670087784779912931440152221825982545038369762784570905144157140031555438365213869003119520618292524892667254540538516163288367677927734318678847050953115275812898008330199480579559561150214978817303329987934086083441679761715952796681883556135007783203760892447485700773223224578461809078356467489667813602854771908978597681798669107265892926170953250169758089777206247514215717477841388558681510474057546543537907358358027664607393754223834676982263504693933547781022189250500783559981696626524506248454364578255494037111203467001835928136983907202559527760616477805270672583664967782701618401455120105134856151659435806747546930619514623347572817953428028704304201913863766066151250848001365849566393272852880658751560301213807657793397718076911571107678778046576308974203815849494024297562133034856059069529565631854039779978675082446664449861115179785933455431089434548247634859412868157932843691564789898611318600086741314955805346160741206456023404462192079748357553991492394897401076367961105241652429994161091612417308710505589356700094685563515051370414295844053456254241644573915705228911431950161690475081222818313396666138183028121926754561566461822261531534714761279620149876571900841361952345820097515760656311559377013392518642172688193257603024018190729215303118923191379165303412490106169674763367321072786336862590751356185016826263156554944117631681365812983656954149401802986767879065910397839625710101856368424069633518977990304125425452632262292234401144634169091537112150933581034658406546659393149273056721280804673766320151566607608102272453391744157250346355953627679232074906894193712802811915990383608646264803696420649287802722832922127505612042008892514777925371724332688623242956787489380970138476169340065298768800477066771603610917744527338120716088413939774971673396429229826313745060809852368458469149359655534064096098090645407878656479333891272087243153589900156886537967816329192330633727687373670922096002968437005414619432909865665719542308609911284677084150723995351731998120519262621643288987766383081617546292514718735411491520801104152692562726465672618638598150033877461229167133569655672292820595774516436992413589858225393017561718097692679612200566427261265682920551790602782766275799943420412590273346944492808004838379167072783194741411639014404769452680342218958405279974822532022826184369450278799770099267249585130599846135233988213267004541441913379089727798467197034900310573911040644415532665974220834996090964620969031728057788184172760049785555260551614548931848333351029689916781255064596967093475586789328456907304135102584079570024701571655317958735167097462008777761871391325689080910155452709536668353607735691686829443828659692174039301778025415491460523267193872093347254067945447117827960507918542798467226413621770036711149314810684212172171723094674833760596712725664908961083692131615397392331039638963595418753492938894350314732157933976067520315321382067851890496342868715083613036410402405051003295806271824300924932207832116907396830253360673842217716294140950655761277903533964473839734170918814133749249454741433078014307746795586183011636677868009350308429225443171867809706336540164703803982534022987773634294429151090370313654617091545077541317901637834023183566509414334088698280144523496827070325454726103952011598966941204118828855820425344149299194420719661689583263905894090976374890489196528607064828329556523214476787900698132056783260041721052026192385881869990904414219130523693780752235555798016654534624756144130061419574710493337562904178881496921157465923946117655910138692364369285535992563965657339847434213529048263595081569547363627737167847726245950910042597459063978186019211495743126537043378722306309550394040662919166158586115060026870914007912698819015579417508549611665449929892298894302595439330198163157166106312754992737852328153546284341395473133589526081366721579609110962941133063153293654741285848238380223172264956723168877097386988534819317681061641339878758115618195187551899640602182070891347720106473297102738635953306685730258354298980707947704900646348722158571514234818185029912999168430642011829776660150538491191644382972576807416664480299382359193561703608651329759034616400276623798971171565263731032492986327617513063504632625865155494110874592300637768123566337493899020475774159641892600582419332604249597655118606202707609241565493520200003560546660376689078118281153127969140141126731780868210696643965147857607995672995263309402232646292068332243677321620939115221187172969609400505860775357439638792133048237195081891522263795333444681872819321140245836636748928413333141527315520000189452189998773680909612320503169530587483099505548726634567001342962312770026663178796428463502379968484748788186903604620593848449795894840048205100926240186063372759457724176481447003709115935785885480701949680952089791116597748836712804858082029126898654226440709680116739157312048904270660588972404050904520967508699704929639949392244596742168889997482922153144184752190434850726891189423446887547462796516633342137407024673302139807121814837005989501113322817087775647895617916512596927273556356655991247662376668706343512859474225663136063625693937904247837988154797054098594606768060825626634000859675664161891518959203424487019098105653095081014435590199333217345828983598081016079504472590546535202412726027687809997681999191902161746161833054406616484064723963687764484963107862380173600687425979128844030192962141784746550440866202972632181173424428403581512831961881274913388884965833712896445250773417904860493363656851529165039356958649246585766756172193783422793252799867982573103348630961043463940169533659806230376375472087562285303984874686381248693189764900006352852584824224319357033684336317743203592594429612292130990711663222452844353935288236841978871917747738941979244625056279944691728363667366007819783989380440169627036248091781630006556792417744011648958771025659274354718236638241878490111903147070365461392512319666635667970233620126388901087511981705429173170908369261188720629260484304323655751155599865420203472500411556796192173044340720141113891870505703470298760576353555257242633136167963853742934099191604039655770700015118565825718346465172659596386927593014982823888251882211015061934983028924705128608387148690440421787909267732149095117940616878657664587548013712069263010951153300560074313400262240147510088795081936946652224024743101362896801562527706624674747781969971565855202124988438317747092171756251459900378933280710611978447851728347423603579048048409998526137217552123985305231406015449149056370314519092013564353224870366640238065377375252310807622263873129622758022204319312967621294763234843521246283500751907513523460713034763498207581555993672317844046092651544932701635180652861597116814036580000764760131446159401518332125235792171975895302316981405783586039851080258358321157278616356568828077114941053973796705303314145802968832809661520497855143048026480929693026722742003036614647455528199387501147475712428051393148612368842811346403776086689642061292869163165189620099236364493901731425571257025381308332797232812888589630385492984227190284768426925134476955620764878398525837703306088268911254556021019639840495074263198546850740471667687292817369195271445126179627685397678260880990762488191071892411096754428450544704123315097180000644905030475715371406826779919591676336302828181586882892399694692582957939484586758405836819751094568944265351909219460387788406309993024238908316505442374014537717569887277769660852278877429560290482076152521927473985421298624829155404678783282545613236440796656374689862420269413697319583800001776253745547415221095227475363347252879051750644361181990607884839119185634794622235190255343052960242358431338299427041970761060703504182228627513806064680740408623125439465324080632481819955068537038661070323263957718897821372042448473522665973781001286214573384590654988973960591995270868025183457447572214279210170330377091988710497382155263666960260751356601119829087632955867749353375574412318583414471152618648486813676221191914411858639893272261131200406813053536744881671371485523522434041857988884219146084656198605115232981888481872390159968389650367465076898651911935760521447925270829205006789658048887143919166229912576604094008430274202149518857344091970139390167966998030066471947758804394503177435327587457770201242365349339190430378772454951367368069843615366703961806273534099700776292535684879501045189441106339740305681263627661911081007485003783887267417219952993875305655882538334890662663243523233350400897845228436413752654256105706585933331587604635360452154748543456498950918702363765899282491302616434844769036465676243936378157146599118168303208365137691904543781037057262159847016651781910903103823721204465080697182133358869240176882960695882907130055331881915135471511403011812173392929986113261928583791607823774890228312867652941568386890136962513154173421914848502278385342849590018147298895326393827542071988847564819796392048043733433263885363315531226458541723085974553343959248457253252836617908051200333264898541027456839835378039379865845374806331538000209557897614962671799329209004593241155497310601174044082143931743948981992944813213653228906159775409767336300007464999064789716837050501306478610039992687167774810206207494980619717238207780517850471502010991804101753144063392654633808405151367770594820491183125096993524583666514097186909844056208198726490774770174258994280648522409545573752556324760809519169923631856780970941298074571710726443767972851999205690705633628796744372871133866702155763725562574030334604826216659601241104632037563838505977101979547592453618488701002712021661599911275731632566902241659766003037781719706241937679268799366445973816155158585681125642347075512055277595535169401237816503760053178409023663051501028179226802042651787410249033862120098125161762118550690575011180526879127264542650896709583304740093904806115049516387580314582788924623901358324377691250002740081825969911080407395453544170445785813864907232264191560469119880858392813978495049128419632140830927839788711569919756777038155687080110419252869056234106706856651753620358903973889664154094638904712066255747255169850192012294671342377697173879481388872153702741271748604438302055536980703822246395883759033667546583978062330842061888523533224172364755395818505503905298502909849177417961462435148090306800363056646229291659912506644372804499366102006146958789258526620691373757767608246648660565490081057902949938812918161273072416123446251965583228959035187717444499212085549200213804476388661219502237054085882549823575194865072856915322991009530176111718469736970518616135740036912374629284020648455231913324136675351733927829129855632604459498884817823624519141784108751066807890082211108569473663047677845775645372036230664007902425293106243749216448981360791972673768568473547775004454006278635711934705225355705232572969439712674301420346757520065089689410932542877723560890188582412493804618046541664299834057931722583512801189816902735640540836548987432338836706209326951553958918663726244731783045112345823661372428899049958812210205369341189279947114024438691095847791212667195893120350781287551898538443920790404356236236944888098185917259002247705080066498314608776189111110586783259037233787092144935953440810999897016067450262636694292442250809856494130240331566667573705213773592817499224205837301074390106567958016704369742558669465881061554370206721632058640596758314103796155360425749104263909327414226824787441055313148146845726254063668251480128566712555865299457021221435795865382479797072829340212576434992780139076364791527798617276918755084574321350363117112576143315571997058337925656113225438135905018584976753939149371102818019252510905447701254602312182165278487970023199301233384227094321762387032694190265992673879813449261642858410661367956991480680201484060196197209563389703588141227915407263121641670851426213489772507334685366550513460049399224127752511225380366918355706064473477490952956514481098571051848863225457536835649024340033145090191283956016917440017946514818315561657876990239255246829471092461144066821411098395287962865603613142180917965078842403160138229440751282626457717519974902354302928773867622963644861173047338687513219902583888632324636933000156834579270944273118659309096676636124184763544088570589409099843129367981544397875817267402725349529711706765662089176658403404033516750112584772620609557818841365804193951138392050919509849578551824816056318583431170515092739830072623199347760896671680829853040667208170645006346187528042394533473501657723761595569138879076285294949250556633389105588092843721372563302240664652444296201047414117812892319934056584104454162484417401637010622674060008886685097589552017323849987667474759404280282428337171910318655362830195055086261307993798255173852131401141038396244514840609246684263370576718924250552544410776305708273125714809749755051007459085057531885086843502107752740860327930237703705086021852329351860583240405038325268721634112811219067643552720594933934719163156769134845147660120299812381811374463828030748111270535326876173906563412335655586435273375586836132866454787870893657401011759342894938844965376392038864172910357993882618875633296119208002407693306235464763287709643170103279030499907016178532055953374434255163789678908844795903557018718311895473644240887057625699327764021167599990087024516875178750269285367024203094486232438816607739530054662176652832666110286575088431964344275685494289415330859867382383923780657757468901731688433146872212316675105005808487884392218348538444869176033050349691625909541173452086642165088822404410472540007517369231613921142819006632574724341676054875371764523841765036244256833752087051257422594049845367994516260985829522625575555049504422578203510293085800642424985742837933609226566733976732581856384867939175706909552268173209819772655484842039924743035017529831961411117628044211582520351682431392996864987552571480478284018460143434031750259433594614460950356728950559869227249740399494687118347366538793479865609152459739144414212919879730852533996181971915949295934766331270750005664557366882032669701656098573261489782699686866084902514169634160607993064397233750564555412434962089139746680762385996738357700546741216399048664028543744323575474123494250971018764435882846377319380686851017631155381256033644752566161496425891001490490721849903202222334912567929548562906024613403674324669639026105001625329869540940485610261815454689950792540958195666087005369550958905859580938638374299862556599588849957091691008434569735487435955771404410971467739601572274129057854698050961116165783424160672536719921166108654455487961608317637241357875709245990145562396253951367249752414061879609566881002919030631276654427695050670298967970064268165322281517962142520766443040936193135657896932203682317514869439814867787439033870142360994377459173526995436946438847416323013038440481188035201111767921459012216763187984877094075836551243178918603530922562604369207193061152179401508318731130786389811324407465434887452711123961028560519829355069595139829897940468219387010104678389938102844274079943855339934600805918924650398791904333693008917986473025565262775212339044705365187692408423455663720640709177866001974267552936746015328094424527111038938788584238404224324820524592969450060148013552325715906574342037132308825427821480547496592627782831822802415306206628221377471376158228822813961042184185925044157007037718436120989281364025294206911083370792343554428224703634268553890753248789647886887223135802979999665412242220719029040825672053619527675387118464085228482668405621003002358528655062296797221772933946222839134179633201151925131057039135871874643081915244120925179085596943771153844184897818636919885761868697129810156748639579154785777857029917375126800603103021565800250545503254846634355120376130078658203672137613312413569848833095460131479857466464408979186009881468775747643192252940643413478216503991393451223176158426885642020113127979421958865697161207931864691905031639185212277365289261240894604742170633675453035640323745183154180146793421826235068788698706690991483758259417297352275595018633945108760680754515728645561526679215898493376400377964589598300790863676646016578970333280917418988587314333373097694348036874211217573716856856020388888791054871851333447048734055330006225882719916458326626170160979526040897305457927476037225589509016976541181615919379166765739505404317538900413862372295748526053602315304691219476952511265184423351416008008001496356677421511038799167946274296967594794381068614140097719610711039983175363042557262907239133883658385009434301159535305173873337778990312560252559338340719369735492040549556891012024456027350387672524726783313633551763313241021471399452939083129143918841022099152269915975888616841217460831302200290543453712335972659549206364397318486814579990247722998992596870346220632110757155364321377526379507677735988335628628252009507481890236212877886856231693108827883416096387500665208084439028183755920263352318183868975501481819029879445328084360888475950854825435186782087784625071750682178708138717628623337463384052281696777313802056529772745968447800290339414548639636687021131447170582486088847325136373024518286117570007618868903181639873641243115439288500826795351550969613948466705480323350419828466166655633320157117486445011776675778921849457101646334781268695023179602226982475132658731195544718816116970668508995041524949472706504728360908184590809998006127868342278080687886312642995467363886681424283209966338981683584056969977894287314706647945742676821454683925011202256693519188863731819890275407384583454103584216683996099460885179802905485573097796289911248868534533975644245460630310857030209109502006626233545314798209420336690484907394919783435812369080795925438220240574401900371506223710146034683610888191002773866300988419647293028181051890022124204853801697544568340062178949764255165041508255052503028808492687582628964229180863213564958094112844323316630809994206284473595207385563730765657213685782010032354980750319655168463830713599239166217815473958769303742706905864332209862522082518142386245919066756318805260417424051569779871972798010234503747160000207292606668956928755810249438529934566617349213496928313892091677732761320438030934831753118557308522601862748367864899009655121877952710344484729831163415511680719780512800115202638042048648396728844239618403584615634883355636745434928446125441360031676671239370412631467069498026714759534137872988611536009405025194053234758501841768344882298551480303169858904792062453870815691945697357677736848509711528201047009695890220741180552101609652416662325252208269823975788320647982031387570574335541098895244610635682265136862812440945407453259126547475826025358967180451081228001582248150511934294779387295078710903709813521315223107186453741941708808272159230914459619259815707784769802996594179280858749096369503348509121997853732380793807199165265338172381873966849553627584694517510496639427479385274490078521090225214100987259322333169992034326901662532414231332503594057245878906419199749408974704350289546322653853820748839751191726564723040752128555948824182252486466976114039943554771765160274130458610390045874009193484212496869908139805192902401734084122951685385366804071604737447316498735268893950970304122391574220032913507521586604082024067490104082043723069974571380794809152862256861675153662839659333372209684745019141831377564107706628524119058415967630238319500883651631621656602024211623017103572002197905977293252667182835271827873134277144190877151388829169999717133568642583231967252795690815984062548995079674956898565470987795283234075314990906942996487515030376822083923942593141524878874492748122353428906466697003481345102621017715769881463277301403400549766393652527924598758862003159943536891723327015948014850477575916518734532321612068457440209221357250561569027610895930094809971600422908503332028991778581334876262215945576105912298075960703807865662722660324952714465751936808031963840651340336563265753181711823604454945069035582444586560457756108269336304579436093854838259847461163517026520809387617256536101607737746356289923451139224669549648685120829577419567153578333786193869603084293092036201598962194043690457322694176502981037624593766144081162677136947662286700987586282159062284006094181102369848388746623652771010311032238848930739008416391700591174267780853818245345410304609218676605161205908450817606803886198386190985356143514755987895821729788201732676616105626174172057733389203472972244784614514107630659690645798017301859072698275442972361236969784724958526041713340410732011038678336197246944850508279102306787511642848220524691702116519235557304442329783072071718987477351850094165510214416072132514032811902224592426629227605433731924764562862231301174267152923509108636505384681190691309940310899718560337283658851611839024413760413130398151985531302780031614327908967723902720990456323249508803490348178347388063555137840841172195054773089536649949161822688935291592216175297351517968020166997592434592589792928995083154652761227292532071103020033683905857816030725693895517751447270812769553655115853361315830500778127509016058322960024462504686819647851026717638745812507396348953459527691753230898605829062177359455121062729939380128796443050169090980548695338229207705390735952768518075696613846904746655415082215748834975649360653047106451678898458255026261091008179471004872254797712759253676167468334575919984588327661735530319939751914931919259519081418216265824256891033891726955631412625594728164698954002153327416643259552110939318274508180983962995167594818548584653565164263626677468587095335876146168204818667944579534315620414888387036840448473888396660444349560921620712158125173311399187101173605463915960798426171989828980162857584093931389024748949456046972264734400369060164614666292207390639641236830258097947361949523534525845775455502146445810250814662019544449279606275351329401140527651205123980155619388391437979861285798909212807324191099100689075647949918466297540832963964006940417908034314443042568491494860751292098357511961443939533945236889034432011090648661923349704685486120623278183168413361120259675729640089617940813180272441649331030863493472046351001335030804309245776036541348563150410121103212549351205069498485795074387256793490744370129708676496505809063511442855080872624548508624304621474668734382145357548183530569931710337085187830512604790348569266397227549426829203961124900749400315136919060544791671036490016807796055609523871266380667791782032908705274406656854728509136060251623521981021378787526163614687747434414240172315120257625036232675000739283776285348782334002567393664587179373153660584536010652270123914205522214466287223955583754344393672261484524146364298863256499852081899503447227655902769696204030737606243075670255568369583910978168608842219225390251940810703550439960985962521128066575843275189586226518194544506816748106384716241112540360415446938616756825100214773245676430739769885601260740477917629453791950883053823005019554474649552744651566944972939754614054564397225073270496951261192599489416664561145425997966914603527225563823536433312894889053542599937343127228724001040156930611102939312288798805514886222942666634216239082998793374440521455443152713245588731785960935467469243420371526570771528020148541660721990740928586851171562874652480359531443537595103429372872078366049691503553567760684100727468499488512961441502248105016809706408515448327843785746082929717849450642041498334717838441806908524935865302931866476096621258388757808680386664706703838437240162689694615804568260147974362786705100815177078906899197338687435951316361871414031778507054534169635449247101655441134389908159858370004837742208342927163712694754155276616758569986121437502829816376565131939903109327264929364634328094922662610453190314041141422051549805893160856646205215617645184334201368938028027301924311546765223229603391595433150878326249931344762720229386082517178567247630230957471911614105084819207198739536152222731254644379654895326361345301253773316227824049548233618452412224111085153350705728801472068570956735632915911535801198098533037125967725520475476225365039650257159944963798655711561787771627781362203776239982282118801954626102558297384118841018002713457626216373194763747779214879023021170161412316784393943463653306556190341152134156385843406952503924020778815856552642150422882689876823916990886574760119460691734585036093931458216066466042011773257881239591296800494916895329147124807617165750064579136155043235524012655481499616821118873375935333112686993914394824929843975124346998214518513709971932609938711388206367287856541076855683340750260959349149347548278345247538920464285668561085715883009178544393387678173733331555775783427322444607040039173545561267108444102369657111415857496486429197424547013368693853981105961132118249338323460558673792705674804596386443916938156861189267339197683765411572406670533946529254471312629053486276031610130783189196209754691000607285738880540326074179336675546471045380415563374303267529335362954005411905156959812382179919525223672714162331653983793744835588915255928288514237173041514015494149390264928801214482008149616579483104112076008982372049634163750439867906883282358337403737125093954507488931704525271319516571658307690674466625067537398181585751795397999189466073457579701842690397819388903895565504892192747646763115063814306799307373089121103370959342247134375298454130418158395239992694640076030571265779173203880285433686958435890922904676236705204100727327209190783357202755439031028442313875454530240593553116957816077258958185504054925191371964771996949024266169053342043054880240621008881766791776901037566952164907705415326212747842167440208349048170926633665806035665091012441242081406736794375148156009868477268979707615154865686823668245534265039084457766699427985523106586771108196104317094719847908012215437839429242390017110110845706919095987809139426101351646558800059587488782026227230726362127318060025946253654783836751108424061024754742229093459496134423201092135716111122422201245143218672658735939071081907171140033006931909085481757618359660785734635895574886730910730857437332578949844031458455522516648244852423037493528625819416330907739455464621763168472115530336164657693992874979843179291117580119857111151224525833728781767452209115617797994186578155611570599641360451783526751774723358017361736101570048532602964158995155059357585664821852038209866481085375923123776111456042518975836305650386328546704982464940824394591956750270462230718295773379498020648475026021490977604359219035891103311994362033583042649207521604238236006446760261216039831271480288844029079544400184549174448724839904800952454958908706914313059276540986291010303092377756741991265364114894903712576104834457133937873447324862309718024597902369813061941668393631519412873881078534679234079635717782119157338583965660595762346386432745062310151951869593748856951837180229243833001546074987690153422277242272906598215456838175437862005564878954705210958745185583461196209854141844009215529748630545520089496479996747977276709463439901247801636153280129704763193417370090020696132161524387063114158549786188125198418233576131535544859295054820503778053747081304009759405681144167629877508681458985349980181043798884376646158101447060018723650250230288196514446424494428924325714205643220848688454957838747124925909989729663111330698337174154527229175799390895195181316636727363606358895841159484601165086934189755367989343010048300601920903741639347185529349500891551600330029939507514511683042323349580298494775655725057087879061312865572411225775144352076025630024132896235492436379603625129009244044847675133148063905176585005729130884765235574116108251960881465188531303308173408286282237323533416094637094166273547786945354316486960813329604527589846201134317775118760937859471658303545260517597105642183076170295962448734112365748095756575635235971416688658299811543919870653088942909117571808219316649600385108750425326091054812530173986130784092304955863619369415378700937584004394512516256090919918376668196229000589554290485968867276184880789743252553520890145977116773451126362871424726922064202393467908530191236207703765893208306839300561940310758364785407671594222233785493365142163313221367471144493007024218823636300911763489696552715285321254843861096993864555340105500808788278296754606511362655276344925019159335322637178148528758849946737364472277032064357870095848329501716911091886381467223987697013936352154186691009525470992559683270720200320263947491529390803649244613528967257792144311082785276689382074023556734843320164446172122575994851945108030907018755843014937141893236032061949707127764193178724362064135811495214022718290700273864498715346158278263294017778955087038471149512566074168455204355906250918745512724177767944712898933418684203308639051552364493328061403343525884254483631804466392304364484758589632755837602709958487759480425432319544515283394314838118865711586381750672604078400577409353385683584396629026427061052738306717664459584346684929692009015550724065615545036444799816661230895804504266925646697261691220870330921921244815524096887598986768701104317689004824362966199752423043392760732594837870903672301254007681943789973567761316200114915048686865943002687016021507279654650126679887549829455234213779252103167405984027807064225530206210975924389931540417294569391706981289472270170092105558813262541167888389456848082827568785193665948190853862273428338736089591782373733241136606878037725195195384300109359018390648245515944753049311721714302852108956921445804753541039769511531936336947813973462444901014191931220165449082657605030342517801558594808117672647821294394727331568397659573972941162499588203374985968471277494695445747108379849253641762393928147797678133197033647864736321191754485292457234574201661232558925328820383362980686273265156063903131070575093184831288661748373847430028658491746855307205108771472743915178614989894416425790104733492617318467509135587614481528550320471425428628525570649091381849480744829052639197558339756873444032065856214170767918315525436865424695405974121426406186569904434565503966042043353383026799803449344174207852633600354239737451493741635122806422943819636175488196365647157575719187048634725878077706239293025945974229163509571243145210347802360696343361903821526036618543627807691591501613128663441102814684301078888911447488247626622775715395619294713408548369854042496230887559184186243408413832212200130907140106752374148567099530428906327321193436551154324526283167065404381685038724945274952226461733331375847958139371972876877183749537887271284686635220239078830659783072119819323850385582033950012765835702185306721169081901199895246812840355716126583358037287535126319794519459335195337856338286438636056353033982280088991215425237664553072974134214944348662534139267314202330607767441531488173849118905656911434918418487767220040429691164928704470741188910658283425203346211551368206264490019628895108223702057002067202073817085782145225222227948710444051027804819000868045838244981648744594810094506070932009996636038170802723246641952887761585283731939380622217429245928250030858861751055018206124681254361344468764140986439885337183090753100493313204779745232592854660446693107597094944281025306299576724188416467877420314937392480704029491819095576432908826666705261007022392782719633725958992726879021837050898931848124269321373394471627588168479184208104762013001286655332327799710739648175934700523456544934349208112931888150953244467222734044753157238887296012098880886536425433192781710327079062524804974041542401390222902484898313803472023019589726145833494356811120742280863673693666669910661881400548317528497939570468675633439720758817800946446037503791566915896381275372809768296862438734150490914034861732030555594816397357288852288377896940461724655434630710529328729777989047611764525858321330323850565974129775629922939718497604497252662787769285971121630362317171390979191655476958069779974272938432465207974065620209201846347828358968878056578778140581559377037653046065787837817480390015163311388821842711588233648612546605014800023883913261226192859244634716165414491934861788469451287007038039273904279182545336951838142881523371898915296776614908225580356194436349307024978036733544059729024228238114787177754858601835666560383611861871863739869304922373876176023774545505321663457458697489381872689187600918927673956429995486332475877143894816418544721831738405861570281732325813203727996906823663567265035058303024139736690240489144759509072036074111009120915106969234518057061972976003483098594476443252901941949332130676532739747513832188669375953737959556685256811854266130028877289404116668839959154096837175014176684039058079899118478267780076706085958414334061125967255953255368464436753638549630917586903312351806589791701783598375617463796552841571896040415874657942097686469817136630700001563296154058342186436544983457129103008019658752928721635026118489953962383519994474127379542005921150561062160801675039765906618351561238084655972575984681487563160788457450559645053982090557679993378872613330728495102100578580820105141922364828966361995480089686916687678413709315866427489080751797535695974097539023690505845811553597947347935468146647654223679046126553390421307012251894112682946633779092649988067697070601534279199907607547928271186220625658426408749376842102236360995875367569851325925153416743166253742314796166591142921218486250336205408762637980430761438494130312792136065569152017197463943711286542175956302127404146762833699035658548088742092871916514483332825798606107995119887576630293334577942826477428589437296898499759554984362358345128471991794823007283862879768698477137526587896992357968268911803415925867594452272169872023455101813137541778638451041681192382984798640719780390350541656847055622755202348304316957657783194913517465930397898151687176872228563773832955885195154806378011345612802017907960693087348607475078500922664289621146245543541864530854390806463358493571060934429620575171506897108778998842171229059461994775772016153123833892320452700880120806071187967969758650080010469155187973941612849499205019942375801495401274469700683983891625586756987235988925681765331243340326150422974242436101101407962659474898145302105575992302776938857029134698351691252870324651290804631909175360839480526487737719948583390342293070501788250818981033148156833305591417231443424735510283234203452752876594511820263859165825452771375878115395929065769638032261121906621705386696035731839322553413865607318598696471332106007519272707687065222729419522167106907829253970809849296268111705614567754627490479846045506367829550131854849262693882443349098072457737998483131456606941556794898003047586063871459762085608950727302847595328948756149237828418895898793030991225674039338811251956570216489823965655744193138793801563632420140807483015141278534820914344756285274650482430661124900448996031076084235416473078476172318856402065862249307228251201366684418773104101290246319506449493072762284172033796715675193892563310893186331093785603906254518696400225214169258105898311381948040655592090396284749031314110697141691262395641917925544801824373621442490930521789269213838063157004907460062872568285393968298028467216580340065118767211475164576868829215524831427368128982682889071587624268905721393936130842688532597152123883994185504497786352644892422645474597937037919818556177460560201175891022043882255402615764804926843879159430344067947386343227834825104608269580139435490959947002724467578202436736568221513050545454407544111945919945321375685354986059949595205877070269558343442641222235477223094543182187235386073853040353416962525957338224688973549223560553271848087124173208590650465289920681165760645554232615836360984696570621774242501077810580563359425144430158728284400277205033799241592003452965357255299614159247177069689560101400027298528192164268049926025795014643104917635845786301063148353580490799259176743550887951796808879083226121831515697020728935121536257427758792014769318208635590002384464423413772067828007571368489743193542288198217017401393587447103252844087630607272514605875641206984690550417256566419528110297385317422155496862089861174960120025113250208800192573282894534583628213755105188695297396353841204531218597709604735022245400420845134986048454059920652302655265130723857944852478056213584405899070100974691219031007326139795790508461967982987720805591703169975121780985046071341084791165833414615181178217720880168876058694158720996821963509366122650108697572228055573775007334037878288408678895268003046494333081545791832005957352483985040887631213940766685766049116914275254733014113240408821930207722792518658829677194623263039142126558363024310190130093644674640239095990160354332045933446279836458669659310120859523280847218011009616130393755453787454704220823422715361686819208031682713672322930676212594769858748721940449664286153639251061810369457782345943663064076588216257573505150961277755066488475004876434505494356889234195425077888632959293062427613335273152495214138649653486857117292868639577164202137242606032251984528243763888940702017759184336638699877104909030303952755226087875815729048833470778921326400188120129125626771318532532018170337640580928742699537358470242259647621211105976740819850714549369082835351283610103159000917956793757321035604916250157711547378430798568595864712718049843678899595492126657927532739047879656042754515114331372824825245118484391275520960906447234900044700536456047463135112643536894153221490898941330473443843625576531465706357387479274173865180991356652704983456133221221812698961410028800528415436841404543020346901010697819958531573924257648324626114216359109126371132786929748508114717765315133644787933436472380284088419224696157573474538686614695478071546613408061744592658051971305753124418337890417465543667238490812512748439255281969033725592238603840389731944619249363052142877262783958739499055381478308351486931846860969990497443150065486092797548052738919674776532338582425966745958118958073220177608669429170027593813064142087785205657809656287615544998274212840644502465831457952294229409988628316684599058210106464302628253014130853381976786137125746282181433179405262746796954415574375174678165447745165397080385651608258911392260509330219151653042869858825375055997088819677198896963702202588253450015085272612370259719254253485213885979372405037745033423323213932645023738556610444386095693459467153731260709341425915913470818424212111178327198275357874475111398187380303799334322049747569446673521234504178887867376100636527804836970276010504546345211636478561737826982456535479877058723067907099460999476108888201281121521565672546692712302089319034572282313533783113218165562353054762180738390317936142375737314219290050206922225817608886835412557548569739524536330642860234810761093412837217544336178917224307125598542757570060533269799911703016993023348307880928634104424590943028318874384353116328710844537947540130812737923346500431467258768291241367697905515371311669631856265728460857908183446579297763326549450606783327501666055737509720252845119518735440976482270964564000867858834285339853153169285936431832596001247115386270865357924753868520314208645706757598636905681815627170730358710530411755969139025106652240467114214130198390220072036262740138794406616620111033126645399329970875642831724059469027603703463446262875604447665041713780204094696062045697373175655369121893823294346758154946534733422053723839465935039615354799922262030252339421301407792646895190310129963699997360532199917956942572780449243642899960895267127989072730529146116135592791416143107798758272986550589495670300636231291175972450491515289223944481040366626416414079249330111899337962918169256266453512302501156380941741408781988661228166562707571879678040480136168675526525897048656844954847840991255863932732165264941028794032181526983428627530695270987459608131080509507383333577516670936914791443482266253516539075122676785450979994689129366074031644856304814052822867126246172575757920178255374638244965328842760186619893395457407782221141555278476422762816681277039241098770094645110394571434496658678055415537390212209516276595241751966595943100783474745276490947365064298988327476821939243779894699321566911512099284941590139825353124122967499750310001172362304320091759073788470736606439398400418179597884020111064635469051671294869716033164141776364670595158972464446454555777523854143298018994254596738544679085635909570789885950232062085896325325227148954477065625324378094103923244690556320059574734021647915201103781971385248964989822431922007360535044071269249346001484310997093108992188665130612718125194175308419541701565847987227503154500320873019481855997774512054438416461246223466800522933962594325380555541157906015949265510873126959610053449280862904924220119197345719778250903431251716443671332262166171852315062852739608865423972871626813744640367850669022564628647935110763057669822180000219475207586687209897791606829439730750351631167751864667713600815349186970461380687316259928575479385015629091752313318178108525205152569208107118171063586481995278278232149579206167969780919585380351352404581452761421177794393168790653149481293943492618469227047373418937107651059025865423931019116615251829008049929472436689024612987366311093077166388994826664769854089782548032903026650427978649150542126009776492185274792618323956680757209263636967694571509949175115775553247292896265514988620621658872841119497567981951134855975157114687570274329708637782643098230210759549998858005576112597554058223580227130719749857048373080372481024045782140359949537374288836911368998413971923882838291971315642662819006864345586860867851274698362839795118788483717520940012580882258317895080485746211184701667288049505803968102737918892307827250976244429504249203716767788725724301659660731186528469321508041144431421754708343508542251103751039178543578458343590428650130001161363400373783813139010910600865464720786858627203472897955134565447697051626198893825666455533575074586546154543864212634834033327255744418081147776822648808735904106327104031375097632713245988668144951942160875758352215500289013311675964686827295451120145549848262233192671196802270374308131273858521771754482079321603088584849028097416852540022037749259950013474887895744154569121471069420600270297580652155258777063323535016265654607491198665623332913718244620629402228482698395948978403200358561426977943795299158097389608743014987848180708619938956626037272742371248401446657185590326566533501263201485633838652361798252348066486070637581073427685368068788412003002915330900447756079410230456169096432257869603310782772921663213196363670928094084892623203836828873328136553446640104298261230580511051819886169777033431310804088379900948449151872755143112460270914958372531724292407915961121927889329645487257721625189138198896232607877623978530636473221803121524541017926926452596782522003484938056192534116785134557771224638911155859054371535806797965728954933656941879897480954276337493272791353767831186733742619811367780633609238697068811040115743072637159622287626241363174632575256786305123948115009489205441641439204721640267722421521891091546652259271738407951971946419432679448104395755369347413383002227005724999182035673629066232440753556952256885142603835243914799902849175025597983439804569572969508411758334837029086914610825711606792976544692266118661677858703882014521281297156844533473526179506494874833541459322713684774735678206130986002069688815500840264992329612854782732867444827818637194525494394872199098193632125160082748996425676445372249167642953268233783823882961866450796359307837941247085483427297349935775593775606463453889916660610521471668424472897400410333995380850422585361507162970161089103868501336160402155627428987070628850687566126591128624447123819611954113431256338064661024607317171509923943632363063491632641955184171310284821452304017072866349527738276255449823858173936119924425025525307189243985945760890472132029929448868083709646183303168845523903933643390525558269224846619026703283354735422632603863769298295335109552778678805974491040380140628167891969168949609195616440147298244284035562791336966770312469303620994357528748079729607475184987218753902773817731556619952631825805834269744710135332593736536953712469571038795586053951905578163193699758869229032316633087838191305675412414113677795683358848697472482274195532601891954827878814252374286264549401637481945646166164495685563121252873523779909919666004993964758769453073294317407366629499846594298787928821606578574753682260674779252477104148498981818293212351184154976809894791008313951681011530859569087687284885591783922208385463877821712959733126394235428732814849067112323638318083358508000003714712544700743978627312610716768231304273069850880498266249540680471643933763867085872093725378363383155881542051314022216431241704091391467979800539593122281689181520023653119901631499978427703237280084142256576414560254565899031442144538831670627682976258839146737459780283032662791933025714014782126186353516087582348954903421058448499830533289115248913599411134532141159193847321965383329995474106867546269358644649911900307101965243454774713986604692494284268659938083090452908501419166154650119211549512219633294022541759079148543819817697594752356077038244762956739426640198188518306950935470399021715524278528794803857121434012424292852321341639732552559666847966508112428906424389427112408139490405158236182677993979169458507152791423834064561462443860502153469891549493212476283689711139194212325041662863885478110052377911523347317297669459004024072991188742897542895685687955472192168176633190554634136808887892859081782555591957302069075650312106845961285274771854961672814625215903534638665508785015842915286789901948980090784903590280905272730829069622856894256653696821901364570483115594699548512059032214336471862742052671304624574589585407767681494804419833494045466588245060984796311847836102280941801799495158887020810034846860522179632976704467934652067558409607917773513542191229014884743783398737770439158126492537300336986002634088467819004184100534800311299593797387973593006075197599731106578599703449188063231563128990101868361679866729430781957093387182911512473670251515888890397096041976911244841919100536509841562736824053102989304506012906644880614075559587499319538874926092881134829744514956943876033032987765951789911422918909220416242999488127726230562157200756223563914703952562512957824163058465436791811354490699791990822816086446847949918149811930649653367767066399851849556920871919141221118736606863892041616173373401742697769817274835392232196206755901430129606316325636463745603926446855205137520471703127457867669146638871427990297255704012084116381114826429403250390280760691678628297152482572426729283376010752494879416021593173365670184559075516355290862993491909415243582766561294943053427182187446894351043751351534287358583563944916970502165816590443775220012261818266797319770968460120741392940234724791542646063861719676033344334132628482081760348329766543681185396293110193251553306361680544068848237953858937230413917482449956005207328636187512571048077121600889865681519997857344016588037568543344984295642716971042466273121440831550230752319075526409807665538650888132360246588047503430774237899809067528186678797745935814593889118585244495569151569733439979656606546995931610772683835828679498931955021776568459718522276141535284577712708725542554406664781101034780454877893122809422327683705333411458921107193704805286991768882318573164886999508318479329749782786279341151199409309384737801156000436866929542379450146684302922742019173741825024256367049232705689715992405837670364769208341322651961523068183723216674207694321525176162309408299423322871937560174292567026495497085416982427038803325925627067425082561312067968990036874579210009242996678092530001094037311685187935043714263045320173637832915663891708932227850810028970907609249865585811861879643628513382049058980484125216360699144772684284567832146285127192254560948116533845739048110709171134548629469292940184948624060370895411947021921310163651337923736879531759035488241723899080106917060612847671412505879490797160483847832371949646483223014234392624353076463616639092832584145114678281160719268752602601313532855333572473917181621259952769109529137649819668294921503826868884750690299450285240067031533372315722750354527617763860034421831356208556320426774947103665459496100747712618523638641591852563079585768553467276131033617449369386156158565632006977143471216689039008341553657230027015232574042038477992146549396056915654081841278651965011594763562334971773231627599392515885960413553130170510863587503850237632529027201431170371076837397668044738774317600950749965222184289851478486849145709697775126092473948072699378164503865816666261555283111325632490590872347916808664248887854205567857985559714057478274590570411128713112912896198246809720849871016147453701480482746219180229551697258257096703425305213451571647626238497769459223542091960783504836692124010627457215355062298424674118778500922787949479726824128768208871657114806274301397305734493971608350934435699753056700234459270238388495185033516996327488744032083196657199290226129177582716406928280471206827460685502674936907261360843389057253214142392690383796117481331067289382356767537572558098854543637110076714497687076720485625412530768769554625394370369875680555215060321775546584057881628845640211452721026272143079477843512647303258905174870979795304399519639753575150521316802503116067654476066678879376891326480620514672635765920057117597380886302191393850513587260198923768830479206163791068232630503530808346946566577958034616122619140433884788570042359754284094704207216209659653030202431637070565064594795339852582847243298447916676309487721290810523958095432674427231790694171531200347988475497476141118795491515937558995862886538225182103444334562141477347440208562281143720068841273477511723638047863189638248006163804307154281964409403050160314794128808951628358237383579370696525756654288617882749117210282074636689101888809187380250753732617751809287288758400071463945989069405101655401920192669417507710528513137701695597119491539297200753607541388617657444304580408839272493437500267422816871289527357430187917405477435511826462436254897809265239280715427772344779071575709292502374212386303839306941388267319550141961823712769964567230686817206430954944173285051773527254830605787482436998228419583995597785273806667920510026633126355970702304434359550894203696265107975072337344357038647214472300662325337699653558931202940774464843323165994824722600925319592973077353273611148751946223777052553236227697738078374562994167718278543627139765012252597459836329748868338952482632524764290914179844395293750585628845702522561841038912118093720354204572900662393261867687685826111258940465316092564321767103305319351954119530342694857442949390709416976336873652653258514750018456995483034328034767202579343325454526707712382213686873785142260795666904515764810858025650845876987194351186029778227502847311315028914099272872449377822214578601095742050117020976461332551133292268065394227417657381102990909828509717464459034410162087154598098139914062493714048451435734289282921907087672617722879087769102140338584299257795335212393922036474745665482015849124528060661767048114383218095630029825745754301167468627406354993758243728052878117263846661173518696528918908779270130487028501242763636032279846741251551214170608025170602181654812232398479881511459168140529542670218953748408467822681181686676682753362571939634911619539660316662930506866507783116653503324537987760751096008557775178352345995393145922201005640601617658190985950935632341060344699730458967252126819396850315854182246806370964321282343586200248340501239793109332217332802290322772931520291066473424063298736826041632284138743696984538860901776471038989835503559544573855205327864299106413077473028272173967174776132952850771322684030027181462031132324233475203759855839098745867930994101231833205758719493210834572864855511944209402714219780321644085435495137539976505092323804586242341176202314964879892647488623581722394033990277837191705699637356629516477962554746535703532010516254620198238721783132574503227802303949100226518262126520834144381325803206618918988039606176185521831339587456481731876846533802078641725264024280431747020415342786995078795215194856119376495834786924047137885079854018598148813042248574392369892742949910853114170100105834988971504001515884879171418176028215347525178816344336527892484881611392583573577168787328606461900099250550489570870299376678158162240916551117758230023150374520335792890150289504579551371817168379954151927094808002424252489264174706222241361071805159337201057689174421393442177532007052041803761535357151835763044621790361172910821712400879588641891828973054382202545959789864572842318500180692451514756483104066086416399143892592989731454949821969243883762698624513361968301799715652252150445831849281672530725035539390632013761821453430464277223869034841564601713553980332213221525615228742970482836714873495111621510839506802648732912346003311059701461191614952832422862661581222426199834434661046811679842231915506248173270721847429087520727374152631479586273091450155888223659903502370928627378823146407833138793863738669854656130903880309753886117902193786374126743735631325569979245542133357508118239216362614554397805342762272790756767558521045656609417781402526927772035445529768002244577328167929247211409527118412589830090080216275077013843400317959855867580306125922835720919705667694448524584367559231678397907006231706153271330498341889243560913090793121850944088368719388485311674399760024557159901689419177752839877203552030673244870703880372937327131348065278518985419663728301855241648394429768015530495685858916972724505912475198939953530498949340609820986401746241069079614085454569811035337009410646493595700604623792032769676681759074436801092489222814078129702512825000011342121217756518933189775674609996340748800254700470348871510500473226958629000177839385498845546799859240104459959332099376146831530227801880900672594989666465646936665086270658237862689899537113112219556715022816884541253272310254665748216984170960499698811757215129014056346234690050533570497382795729236450145034573267087549820113368703210624287762154636171709432537015598373645638644558836121565445866123870228899114359669686024352607615500349101905780654258691927672945139537995570215200674633726796687640240662480259661738497430512341816193920535042673213496345911789017920415314036656161700363525256758164744957185564514579292534392174483486367779123662933771213980670510198637968746036039957760646074471600264734781653956895353721636918845586686550436888328379381755155819109472359190203459413309807265963410495910381973006638848202363765219370096128641095623196943040252917774073338186610945901826405293719150298004184962900273615632350020901135571850174625090535797472533381649288078929229512070593983393926833189697507272685782042406954501644544085803088050396979640381970053236154528641618688843630405367728136239710393193125751343856912220729302895877793608020106244460265631824398182930545861081344399554437887958830343880394346793648121354159709856637930412181192071127414673219486506943817183374572109403763171503829760352451216987305692233840903770851302577170837827007996921595370629737004448248431691269502468418883347183357351122328553659236082435599585622459813483441371813891025983796302023002384416380918047779923822638437991870836737639335663632087049962840369052789232165665774105473723995725059361869126731046905734888242044053944279834860490584013005202142392290719382637510669238853068132477681456110413777631771981338365315297612460792357821184746131035314010337252483930475686853847293820522124376670665614571922398365130163105246936986898202358451479972431233446511441522473100832290098051325771313413118260989538856199702571494200048615779273522455036807845471540803855259097360706077245471053653760369950032497453887709364129166351855522719425446448282350365241126774685187611495022220948078175769182371300816482163887398324311120529640320865718165631951050488537407273575769543409437258968450117427362119366560919025637866429800738670273981513962997591900057554580023962835831864321211488817633904526765833015900589611732102062296661278338515339037778769784588228476577410876272607548295197656359352754602133622420954397836564248395565696648716663861999669114027038697693325416573945073498916143337230030336729045317510286055877590017568232029340001516478347745174028452784841379445177018011523075031587912553821100584262515525861503399351480013023858177303942860537541593388027113465845198489423110414619165233284310039122938036842833400848180596860224350432455508253160490781901916454127091181028116089178972676805416724840322796928595112214961245550921055752555046293716491072644318842167109527426643761636054810656770223484215149686272863980095051044636475755536458838077747496180312896084502500634276103498086932697820828677327579717775848911740491152205684026562624994534312749762179062032259919823897794101293323333422050967646821669981384198543324771726123899758772524856549606756249601485967197056429120514452254529966584321840602326418070276297304767900420131566306779523885989047135233006788555198805720589765827476811811903532403801765314689181584615179137296474660750797348502776263896524845937592008555849640832412958997980605422941547633718549547665145262795583912435036782720231806911621143348107731727640547964819872248449452023625634979807542465314991840421522592623621070609750652918952714068659747673671286378779191524285339395531399115405194372925150914464071315920537016234093366369334806847089272205682885540777191376962332771764957061056629192350825436632741535151314239793805776929603106068597474209575848042776333105280502498136018952794794835553523577172420246382374500310034479559206303517194195458285221880321354654175585292489813132823231443383544569988473523771179378500686749779196254414611438512025762389269792930327861265283247588255906342272851044858499314878842573327650085162328114488041231461728508039704700020621737822500502421024205075912333977071076478448120817460264634950471159342808000005168598360642131029959899117924702150531353418223962562183996836255156248319647972318317018838108387610947402865125307713528860986640149561881169794048195244385893872940963265049151265135708757404665585457843014424660813214584347023886182569627630560492967525721549110703751126467787237721108923618290676109438615531034427981033585549576738283798593103709620880578359484212842670851373787157800981278762601080384142370727696830700280093130567640868318632338030904666626871164030571535160414095943136594963318967344931697801079443540276512707322078430465628349527580554795225783702421494135834368010354557152462044710929018489029900999199289697749278259867818841114858673042117538161817012942535339534172599467008548786318085335242608123251625260173743564631911800667291878526609481813329470655667107191439379202127261812503465660999806443200884106605714357234243927931748228206722518991180168712833612354924078906490409621904699389106067502024199880466544006088654397377278788134053642078919807966988994356843564458928591331197359632835944777349772131981162986968517307152914462738683889156013728822569979675527156432936428531392393082009059090806921289051177698925035256437468345971338063445834985397082646991855698237981853021303986132517234698698562197677654253244431934740901213641408934141897594709708535066988393520470804330468003225190324275750509629497640702622385113788157762364011772609378935003240095246483668108479825408146778307276112250635439544318224335145556778158589009528209015594614707492871159304249293827665396765716072823230745649096568751307372597318988978240950602527355893255851847233589203739043725050098476004517603395884502224600690965206593992536007206333563023979624483730811808552386354336674676933110073813222832798315621353385976555566748265921688884384714020202459742521464912966859338080685560653152081327478921127494568424537572042308646095205959282778041466499223025626868595295507806101438248450547479883671253715678387800298101972367608110484130439906486605260294787051323246852815888892537039560816972355700583407420686150476628994739869817918418686495625755850811243443092972605606734433924711199968963899696232308811457216004625864475363501093306689837305899991102981089961374964314082773224084985426828535363322314448976989489270165526796960639172780713502729716744768629952751963130388012511612659433312589012442245497543146642318642690924274027086238425924044980027715325691971120366270096185911159884732834532800699341991083467365940961980332798994008093309339524772701089385714271270899885737697028267280421778009946703246232246529269748339330413534235246222773099038276938493965683060125407577491490399247038482914577723075761481629305989281616516588258900077155078663625564682180687121490275500732206691497932485494213801649398969301632818953116497851237245945396668266655084202753522665777613137739511445682181565504333441022223264590385141669173650623160185214920717378212835127502206338545305961839463803148832585530005873558636582964323498359064324977772262208219379893047051253604385343796779576148518358315356005772359516758726560239609892763890214581495840678053053819672155441514825764585713939863817210634629912650867250627150308767433303113954761749983648368248382137543237440318525083819782022021178475685272725453549173992907123041889706133042726837956511973022289757577796044385367483578049188569209661845187886014998751414947021740896039701479997264760875123435502518112936486415338876595607110499094089894723131768007690368435988670000660790912529287610084373098590114766774210783643111973557358002899160797059122198952195591154947325806575707648490762536427509666685022299970621582494097353719981982690950762782974596481135161781523127282877252609931928089015669695632228047408618050877538632132876752511409726287842041220113285856527135725215671311376230747110279051299113792182873178497857166477614865690475029065282677511078376533134350779899260212607130941242282136618014039491603410135312907773510417372446424853218386288927037319954973576520993537543238148051000472169135565293058174937348718977951209751858792130838514219387397083684299981633489772964196823045487815594396380373635023994209085855513971246573054250720585745249045197697800959607553116353044844575701671324915149510311583953384102214116143687685043664015406131508980931883047603114889665670179824936420996402204236625408096851474328007454239863720481016777654246599064192233373658466128241004891870897031081915394552246626373935044143974607858325696711300137560855666618526799709183648330828544977158226671537746806447074449191290429440259403654457917728634856884658045190628032640548663143153341584643054093379051684937979432509328311100778821575046259678104940929797048501288761401622617165469593383443926880484173580473033216710606720200251374580553213161822305351934331112351847327964306230766113505729815793766834201043543747441573275960134370110468330160164583993180950988696153951557437499938949321735313284803140739030820813643933513134337901687767360112508069038005409306356373920277069171658539810541667634122458192492172312858090060254615946077157413007961800462556971887046282889098293078064129350443556164152379667554156359098914410102193722968681379535094486282643144413163856152070151645448743699922181217327054187231563403348324377318619234098978259771528688359131828326971795396972708925220477166591986352028339914437061148975865668704694466160114704883146800826827299619203005496227552596129698785362085880458890085863296878171055157406045798646393541175280742308666650984485314791048342798394813227173848225654010553305752579027295197545795200973243082263580173060475991166536590206443033105297795811530624620784683121173217406947427535513445935978121554146909939460720181861311453514116242510365726943180796491798505391876574578746039068842055846572432491507777895582519392930126455566224624982982858390749919282115095397600632435202773346686400086965213670823285697883326785722386627125384741204521001788725902048837405669574514498872092062434539275164949266631893031081932883299837871871349349773730857687588151059045015909636608899013076922347122384224171436306270328705156515145383987661183712147577396684638634699582435950846983322697251586451383344004432341813442045159522748087526332374546977011149865842243878277015058556496222341194284122389357112503343926720028923906125950951906827696113203134509915914333130855026144564304062890783294510686949157481732989515006971055522216700070169051824355139751046042056178508700607330412120976358633329317872246030793883361771140046649189969800131531192645243725056421031455332029711107059916838207819693835814691715015539865949243142546915223811995012013925448938067807656013784816035399346237646277981056135258382768863924933674348954191447265033741619468568164007119801203244564875725842661388609508662436271775230666568153036223119285644355389677714221998566794934416090693730516209247455393428327304105988949211594907676381693618770817890459552192243264547152097022865453636059707107082921270956789773882030516172421434490107960875985144513840357078105134826974286743562691548862972484668515069610534860976557809749663180965731653234136710070721261735728187388764455145142164218414874381865384661488341490271950170790250331855801211454325197918363589681948209386692697457234755284809000760808663807854559017818167920224979611971044700995658462868656972216348745792164719608033587031711610991446891512646361941172281777019244227986808467842638481125106787740707485057606354034325124589104178348470899387938472076782208161501303244983445860663043586151391914154184328975169038227505697667900493027537535146219475905116663072637466328796806162901189737519264218044140986022202659213345583669961134919181100538269181747774845233499448217458009831058717557136834987813704481898388675971157202537436476187798351598621821849422689804620873467451621727403779000307418395935433794529057630867776422029511712243937291512678697114542646254212180365654748714262780238560808461484133386045233271431548009832624339737700144366587707326847494365188712669043501283590447674436006314652000160406298568001282167652779258832122219686322673586982956718234988019573119803784138387542929758598079681967704294271867605937667971541931543408450554815708559973179359324081751904694490900328352374104712823844319975102329029144202655782513288797635765088147796326043921275905999800118765958658930841601560053724431612283589224346123584438032278168111421825912584073001277969934778569300771288978577765613690944925660586755210947397066958779497194823809544784971028302517065459201809196826044827737313004631821620622847669745347966225112123534363446956718023128760494209580404768059977377369254290069568548626207014860476779187886748657335142041290652630835552596250878288864587994760818941316736208385972863254532260436943179544434034294200238704775314996789601455597783035789225969324393616263477656351562975272488322045420074363011645344410491626629564428188264874066689012202519304867518726042155428743907419792529819714039360364656928696745892808868056416469435613420727382277513414631594948378552552699335605826389868456683901877214825084080124308717012434204268938237898192305238628036576960646341454233079049881022710008950652211462065912092687676956794047022090907481798308995364171300388699684943333967627296782715004365843383429771689657375794988641128953575731402195390833539156345047324682494329261915419396885803325042786199577546968047672948935582643616177103073881069718346765594848312083675705897284575542633654948054365378006835523985425066040183865328327602471973075503259412843492648529911087220095187405326187287559968672550587427232495838221546096021507279759619751805762668176914436465145365066194667454977209889021190573347768953668901267410932897502593382948324849958592129627857322487009433853799773491087971788982100237390884034475354912714035344228569742110991450190546122555834160292985053007666803045952746713626459906975040409206030653021662876730745736363540301317565589296309536312160839007893475346765695171026130240514630395355133208630686425684029786892007260085035569642592020185278298638503752228220659288648879518579741178250697427774248743813703364158021038811668135344326451060226200859856696273289114871810735916503715976781924903014506737787434315571829480205863366866006122491482716356847272351261777424616496384124914454107249428148515165762307069712824214901042840554849044009448579559370719247358604272835749804499566451709180483649586795514482889555805563797635975581443623012522883927576477859847248486432709871574722315991335471116296664374539236442110654635470922160784718353363390176482163541427595947304378302865932920910657473363627027641044843936782104997320285565434961833552653153540438019083452148820284916887753837490774599529707413546452245641619760909930064433672320219532865524166889420032681671201314445198611414043806912461653555441998389103725355365713114335314871516839520780870392466412616514274178193877943749027784305811409921010038198287252281376010795642982947949282145212043484466350274603773064384020690192544716139721763634577581031044029587556317208856822917233206454277272920036554162919097381623834448682200896848312364334410337912433372293966431511223169824792543105173316767659807969915278647200697782491874292280202704093515490751633950319608675002138534812432297847932098357519327260754964010681446310797957201941688130604897439105683195685327648445346895205682068429270584394526835091879718888238829622940504841417800478646306008274962621907047908698172631110203670633303719840622292402116562293120486349086926909366568945519820243892330201710550127351448625021997631336458116876768022117213662374809169766528551004571613389819140757532115436603532980163118132700711031645637231075641069189270392505201888307961347670034599199367852687172386215394334703793470804917620785375921214925020893872546642906151969184204116557726840422055213384169826882516361380825260854640945685597402212259595966444264449562060668101803809335385170276532943094180419332316934155951145633254133621163406789325517813405124246270589810049000313897594249678776135145973087408111717048011091950993164699624075043560157606109921925709205492537487803039863286111939798148499573044682018173263404796547250450774727031838626266988936426253888190932286925878546641903193723016196147200165893049647214021087264631877987455372412690380465207804674356253111872451824256137369990513581384097785619426472283168428687288201598173419475517491677556550994247093269899728084502394598587428340735799247569915144664875501289811726151265292957911464295821547991498457061436325679662729590033371799052152309558601500389182037884990815730892155614654318490807139741369405549787994199968577935458832141951024634779019233577481187973765425717569256784121570167140420561277706129448087774083161620959628032510080324677722896108339898454089780003658139042200824727605817638384313932327284621984749110524798822398837935900075854641073118204248221212281798548822190163643466990839767317864950626470821668437792884636105147359521524559501107791606535858053562235078366743686731624770008869955301569163944416752804068179478400485310990065527668684919209580160445418955365423023592190729339308337263119439343348861789613201986830129135485810435754688487499092772315860074514791036991510462129962799728224087136147699639342726275712031380695994817015571527336319970518032940642064823022728701499609915225852697712212463781445058319368515821589235283854622345044196268502772684704981397150957241406896731488203100441481532124631999665321366096484313041803813807198352446225388613444288558620992452364551208193546310475027307292764181462162201392049546412226834889712995449682434402689905322598241250534033748812349360964171400815384055099212967765493887631236371190598719918106335619017852634317822193812552761399285891512855421846611386979718185616779563596775781478289247327539137570921464891216692535469634379239793853086300182998426922491971582982690985304260029688326124932670259147137917313242330421403963880875881893890767373126513469276602421034893394095449796708417718054577707535952105320273647402095350287639507121195794077939238264847227452783191012568477545344101697217177245658386884725069092916643284512329810147267598793347423637358650480224412610108092706643240488844931700053342934956799604189227475292077879172830472783404172722956673894050611277263517094892599414535453635217485771981178334288032745494621455127992154650676829435559881825100737363045075609098391259949149997267513099913344272753537633496529963064225424129080569537933366142922368311275188285112130161496939345643610252037348812752293865735091286871010342975787146338958343594152640630079871050254923696546375237839479946919726962830342133866299772098056826650927842811373580557304927926693110159371435774561335446436449240905433628668825884630552965040053434756618103947476567993573965788040743253255631035090600983533737170314378689688592116267942959101124003700957183217718344267769823781595893987542400286252467580516996880866942400529173219601889312955305163587694228901471768184930077871292612377216434451300826914598438335918520286665566785885100882680347444627302118655786732535001300292256104356216201525996901340647781255422379900387574691088639528048666720489281520234197068668813215501724853917195507725011816615516702675925959721168775085726260276373991634882160173731287318264444274481347169478491239185626518423365353537799665039782157599898156774203375425306729846897015044987393191627589977852853930342361380799378720548465528273077025065959114323109320692661716181779040780910164244164595445109522196495255180722914020001898203728762761518166459269417816990613205984622487771509640015373326781279274544977978541403488599264237808131090908061995220097738857627459745527571167337007322786566293955383211979087026521933261070139360068046893868214903013679635580293247309615832194281682857855441010582080304025984250911112958789039497365841088340882192617127632007326860502592049093671420470140713783661663829294374196599815860479980129118375038238621831598850067109819062875173396770147688600219366661502466492765645895921981640320691886454845976039457957967090042797817682453715154897614646223581929399945804111492320158914335502131783633981554478848683026318609139977268401539816621946741252140965743762795081646354522968031784275658692152461878136683463556581190014147818542607146750950118131020493993575313053132518365687820430772870389500303325959082476896870020835872913538613145575294721592408624379218651441691756791668019734128569326880772482987127474219764157092167995009762209456944254283405124730396234637822308563951661310560690140120595351460917189156418469246990866170194074615837449545069870930005474846099776862195807626938195783235837821845705501211628233094532507104959802890642614085435785241547737527220784494441295145701370232322092163591944494944866299524539948303156083915964510185490571029109156147390635648141317769033220645591553535379905463243015359957560372398933881720929027653086562259491709378059158038872659360269674187736154974110893306186072728661588418354076191748360509085960918959792148629889573664362674168986659496670449701899951405995022255525563322137016650048409772524935894423715965824282810797055158659572997305911297479317287414113445244157062234581648751986550581864446558029815644420422854015525300708006741700034538824585618054768713936144875630795300564485317470601777679686145992165000302232366930193519280699143856143666301445528455015626373929116890107535083524136017283281471482746864651160193988975702261474629276818807463698747882811523323009217349209521244506665511631518661978855208293732239648407419649524543598521067842215199958663898615314410833661258475927887278648631494114205043318038995024594833643496422852197677704616450735691311310890890047765648467909650528927965118381015132841520116956148577836714888250501156634534569632320984070956909618182337421696594138387424722989613607267914886830526778594532115956467146289317472491549376234881423547551730297810111303503071781871794305411740945186925336809122888087873158107020505086564218467176398004004709336309344525938744801829370529789112733978487948904717372949237469832115142191484311663507576886193821614622611258881134760724216304448915453355709255574035044733268765778938634349851204634686221092446800606074745079837536374827377677820721520615872816172521455373203336086153198452693361095205765393933084349701601935266056626922683310296884083091536607986226140463133063190811177133901100208848893325318610826497630468983575994262553304523459624449823246642724870189484420092243504523872922183206761694980798197456423345963126907655709280438633349348364812040114355835638959841002067991983236504480300411397937479330397092885460564112973046997462624330815270404968853763982066381527515342911281383920266606038329847899655734963848327736767320142812523411241736632756887275241236257918938125617014776584165496352399838177260095015761722672267008724001646367218920847717124779253631407523884317720159665200484585557193381952380649705535177949760349072705921363355465010177899248500467262159407447636274749554839413738624391557636789416220311021551660283226435605424933834211251619140939406657782295782113108231774013578615492589039662694063327244705964925345677205075635909994513594045307203025435583338829070959893359316153411305386054546982826069517701291526464348221994287410243423542119312820708374353062201604710033806211596025449261852591289770963719345647785312955950484071621096024430128948634355370157773520353949767369596296087836515388908713093876155316723359518830738470269759851068018963391113037932582308905111931524264790947771446169166187895004648302811806080374959699345483393068554368378200539376493905190865052841778501713137428126298296472026268717560055094265933732494618439904953019931551234965954370521559360839914265707831823230411935754134656169549929026695879644182253758620402034333825153910452266267690840710761767764054356328325041944923656561680755708966732310710797511118580626223327727019663771817405183162175509274211732406499041215204560231352357014630593798870536003108542901979008262523774718711107490198791172434482601915654140099774674295735503590956684558609002454118736452761540372800623049732442786931893720033442084897925152319287108549277451549788625213963097551670537641715109956552400419355127314105871791086082735478923133202631463536888623958266203417092932513055469662455052764103459555016428921735281403060552434039338938885153438643925975855126328733657073541183515497208615525645172097635654879399594241929055484885016397214082176501163198237936816743483667313508306102015553188884218438042930895884094282732790598154660866994441388815128559716666463885388939041322029267575343496794482479986799517193224386794634136234581761089673850743829973970029612022232853940428885684976532339642459246641170337015141724338705414469354041856461503826617299208138327270006678705592562229916750119303833008169631422114669545628515020143608703634745792029391704429418232239553729781399203855457969378244113054477224002294929586219546296298170181373946937755322552810410603916638883474827964090061906369650912171171451258880286535055271452347324957707609793544544070000545826470861152734708912232367594331118986226908260327685464785166399125494964842480150497538629752508178397489681911654936869919876476077602100338424605819002942696132481437157277301085585116032968834943594947870344307376075955451781618918012877942173132867131623402006685040951227237303786900478291386312215501152395932798782146632320271577047893671240988235034992126581854847499826071686784562937049518861268707031065431371475571216198737670500164944661335155722526573628649019763676238684152854608504821760295018119270841130160371108326361043914987189960866129844670200214578538094073576228286330616934347054015490225437560522178151588457216036536952762730388550863727698192889193095157535803565481718671385806893372846004441073414226904095739780250062583070399802531765559171374238445354476392798294816509814764452152610487636509491987979789111343064736951820206938791885324333242192870554560761175460848093818340545768743003153987388366478952054863915195688626191007588685374889065054818139364566272946743928667084789667472695991519460346244339093077276805687770887015714967929667356005893769171373944061988683378732657401630729826466262079357633395190950809037252792691253073305601078357278335464151969769780513977172959683551876928435375630733401826706089625816530026026168256839911133124728265413145125411897589491647810585156528730288401328020215082049672492828865264482278741654027808791200803449184568486756216170504431355904434073124070569402036992694074633018994959814692052326815303321524935821534217025673538454825558457508407228386977940862875609530522753623818573435923116732728729824965430147435626084920344854823315534430200210390023645716836174281209726558615938378951544428219460074538407158872239929235744448911957303531590829283403852271234002142284823336141432602814804717777088217127829881901246801655487514391839731485339495347369447371945528357903169523762108677564880609588697299875181334856346513234084925737458577244983377140615529231470512525201680059666511744076922493084488409741212431460570545300785358877223195134289430019189322725869292123108849671631798511869239341256067259547829457122543706373661729694724985909516534598807107177028881425221613012144432365332053592143518125797917238945846064222720938163846858860147445950778443847588533408204841517107251981913510369551910537778315473453025478930013205784571736295516218547318491472571319762952115456174794523365534205673798336639568751008970831765334407861021946856977821067439141539091228202597856429291990152613765522695062759760729906091304300381284960129175516847746369698147738797998043192141587951758630960336603942117464301897559613761634833887198130518839186886181584515831265286098687940290839061526279840652736002050490190622898997286904119147692604328907391491815953145266721617980540132906033699682886136316258097148239522293544245292609976101488323958524877489188951441403516503167940085596518051515176282245654696447099953109393911105346027858984902302309577318892957702286771186858588825628076210600580730952016699294071815244851183726409106940224095612260956656815539416902462123926926295551793976366700351033365722716075928776075184401927398528899096694017082018083167777094034851108275655494303575817081418540471046917097006961594511783533642822333271638208816175802821036332462837368319594621027235158909345015182223928664644018274693243474011243192184608484033515872478184684386766964368457967350281883102556675608045931909992855327650143466140888486896111196698328983301046433056505405787044439618579390592924824151420000202897680373552743754077039869990502566455364398390042448984431214518316589830932219221244204034392780979827274891025192670972493283779742005330051052947569304915497232431725589617598040976013673689252123229406994618813258310252086544261013803577544506442243322310534161395899328975256910079421262130359512063355547568378658621909106669482055400719270407195019412326984133531765562232208636442077497392824061022189281082052980377614654068102852496966638268383477102138356393243961252114942590047302603382955498249302425084031868448949730034653844098657792363772514669225953219039988599642634966764163569525348663100041554912265557454714033061820727143148481142815179488685215409467740419411259570828224161250412426782148397174215987371278158193085325390223769273034174826202642692891924053789878330640750546684050067072233553863557272483079477655623268017228341215031536529893896281453952879150370376189059414814596874383510453292966369464506690950138224465411230373474277952606105395828311968519903843511758649410764621496643190362671940953770097465349878945719329638738893891316747094874939022450594687522899981700745631209501530301520994305982005312327458207826264101254249886034284796331432381895007173676931571598190723666637651329500993936751888003969575937202257137926291518774893064235444465246716289858158280838448447130012199727375058200888965623547769480232616184469050958479162423057936271760521553971611233636140799870744364837118724055409276792410515319659876497970233302426467613718681620498117161075168727148054254286700476814388773154781968149635713779720156953345254664537144603034452640370014392042199705881259550615203089436792473224799259322903456214344277026348232112276320327835015921683517635973981339796387229836995633517322306443921306162110070284766844487747390823306364769142499990133314502247385609426298501859672417457280080102512744574222983197608227667911964033312459786471795582755751852399764000911746793844477016721219209336246447658524025357026656917372790875174558252392296147082551569405813414746014412934820926967655623047536885916857517323599655767823402599310170609075413083028503532886834973584725252346618534196359350147759922505918451614578084191157059642170405807128572711138133881087921457810632970976430503226666706704668046755247087086056794604514249459931154979629836726200617793047414196053318022373646029429771140910237599095017236528330258962159023562128485811257676535124485174213991919365594006975122412039148360791396631455487385274174052393930070789672777851510713044104798047138483862502379958479876643528572001043293545526975034817019582719602082241025377562013669919266548579633439752394676130795458492366080490543120678734876587793491580523410682140954695461154376130149772715928643314889533556010487270695756954602822265630280616902644627413280326975303204649795772200343062493314636173218071595236149997329127540693967070034280050970693808131295674744017919074867280443564785474042312387249356957370243822845610930617720358317992368528318494482531952826182215092664108617066216485092042676604771918533678496181728001695669475233393661522543001174766523948666206488539645692135381020244154090717972726996073843409718207962873027694907623308121937479105961079584653338432996641173361323293133064082923133195265129340879950968814051013267872378071965740896741837703455824195716804086799138960983729428777824542284236500103141324490576425180245417145105888008116126659423314701741448424194561270564280770974730816379420760228515145692611199764287060748592707734529081319156506460931493207389850038014952525821954652399476809286866316043718139005716084927399261073793005501349592244160602419865250599854226109978448002094697521310148133740380277049920331221136278462033450173130171397877484664252880391952142078681017787942365594265014819790116871562255897733712878238990230899118743405586745341886497254951917293912550915992184235850979629338805849958493979774983093687422652880659362557001024810373504040250583157924635115884015384065752454955094653202410778335198895191451119461699713319864211842130168985216130817707329021564170643688338121696304776308720256700138748513568856229975153145293111261102528119302102373627473847759589218217700810753964921028289963449215137056539581398456403173054240851841002897384294633623266543265056560295941689910717120072288305852057960954243019092391887556884312161678443706640386375852761818272111176425172659953165357887066779828847762222873402229989618364990159747785193616696674927365349669696714080966673411150925922865584849352943363606866231899366389357168315574962061061679222516292831199237058201474300134112215375872278979198258072278615692375400569683880212923616785923980369184561778414635004128784946023636931958310426891457852966220497648028820596814863594708455306171362666933381970785576132522440400323147450037262339220162021416045450662524693119566821424599729190019657167874372350766374778016717202137164000811937739562980914341890189971692693048972395307909260190767023488705097742361948088933022134803145585742345769052009625081478426521046231145551159950270098868181313185192558119271823182479565184398577187779244133228524622558904927646599987036573612744078601076239334381048649000363187494247453923672692329808160978502083596180854378194066602048518871487167368350807064115370663698728824466735086541270476655192826628695799641323532195355577594385918780600487839871887280059258992406671107935265720861928973351358153641085921985671818028135442120264240599149152558745554660668970026856321706501744483882674864223487639543182606152048967914442603008748280660300800514387460383422196205965361085732337211756376699499675553652193584625911067662916320634561731030727719753456199969306204055830719620128254437082095743709928248131046657790027612140326340841825991593569789976253874284556383831501649009260058441106833063167793860987287965969822961382418255168722393326640357396404462028840587011095730421184790277441529137326112096416211529129502503434793814189624712328310352355661266351666104206255512296325592006586570064136275405232128898405742189980014263639308272272029902243777452137149938917551814474947493464936519431481553113743340152318075690363461334725819504435888279390710419697070833793012160663028615747195901887385565066484909388395991584191256035155603076134895732182254563007282672055852665044394256470243954580738531465995204920091069177902187230266073895965202352116335401430079070800328859009873618566829833879666659024843016475714910841333146374853815507946522275158180617478603363070382187111133027951634105373162454567438639408380733294338162695073382372265873623297651760546234335973147205828091491506161219359310237349986900462472236450992969518677696709487395387518985407453832668670147581291629798784271641766781753020619516335322437163968363354411001599806710345337898776913602489852971899897253410028937951113755498380824399087849653306103132663693952493479808220316074281834146161339365722398609343421466538800077119639694887224187699662806164795414358245102252799295719820807623960785754934538890020692882959701458475039878705562641766966556563052501742576407215223848915291713075345899581317090985815694783520784943419950239210907698349738342236861356447507090624318063553236371584544322775087286909725205774493473297954782051865167118010716420425462441835883266977339428106762806115845344322433175344658989730487969282074597229100799010756520602152095101421259815375028783013193077886871489216073092768813337543225222805174874409208003104186060077254644197690989320066400116565038968370836390038758091301031207897791431388022682021714081541541582237217197588896947941899016481305648102562497995008129404260716117415057710872152828951694343169723201234700743745609580363516713573179290122662013777227149317011775967913095761129913365455000398399157143127935945080637680603764743073005654179685066068320342252885088091567912103895190318037740862562183458470869345855398753705016763798557415102474129524243783610854399942072539538366727067609542925244317801221611077995503924650383095636503803908973584047650258423380386257680086888368182647311001057097496222535435556350661990333248165116839767868732617290883774881466623141448233639308878225674828882582649812783969880006742961957000675532629318566543174434302661358586679273495604067405900756170386173737508741073779625504477830444052318578318356459847336604849859131548759424496545568657956495438211833622709868132457553032620101985071532696738645851224289375834181996963836257745145569548110057891020523523136507168408808971419210016905187568690689858882228813025384983485992071251230312986256501595484594089408069203846828825758910563628381797190493413642383759382577395263407903659755598972168999872960657836925990492908103775166743240051435923537429632249397261482465250327211935149452553919363681829322195531663198054570790514948855333585232920487558379025433768032213018144238097789704959803141368154332275365457265277779656669639890527993351197235546997899133756331012513044248790757079114112189558955754606294698269380147507805605584755972099258066025370972119946873836287427547377756674097900082471195815926600191813975125018986350705347697301551843156288063646470976963423245584511454465617779563734233642246676576162264810038968153263336173017347270643833405500111814608274340912141974085893422048917796069712605176743401561883132261991233902951506889324700455159596507343883077025469868676233287967053173932915782351530365537945271086352528255145812514533105978834147353596512061618519373905788504722957937672763990873987044603648286049834577883310041602283145445139786639529982424845412777311800184892451042149142174420670910736048577635090414309285310294486365117044146705043484146765985650576267834904017372884785026627015125821570754305641376185513897683772708914789098859642458326750234665553653821202436601886874370547394223190522916308905096465622281537764337683460014034117537012152004879969468556036349933051457507527234831381557787341994358266380485233538992300397310102532458648807570345903405754686389786212075728007152775189546705660123831927447875924270076211071682193253774373764485527960860793043109624805425927979471346362319788615790894475983381026478333401656317521975923831333039783344939218539786859011245653758943162075325486113209797915674569454558423415347897181135140305376379759191822948648802192815598799024196903074308175752409040815759255775447285385288280394284562882959868657834833639180240993331235575440516689127478467281906055523635926505619740635091032624270971005287538198971005406778053530643745048267333225807887266695465379703548184072265681484647791138613768265710644474737631433066430711162512501140757912482911056750378895398145933114282370097042710593129078534854081066081602517967317970656274704093842484600839752209063422000132898137420586664229063687448164434757336253448131137241311256712053999344646500772225900176098914300640721499705510520486455428071123888907597409166884301543427445161593570508134436483498037983411747015509390493159411962600302346998629486378691875974345437733779505532718465582007206286012913948071692700384685295353806579440838833020357322102483195999937319414358841159556454935537419884835175156692318015215063243352454768971437568910019981290388531243782266756326933287818736041862241760531476500205587741575182313935133163118648129675205595130976819096357268515325125785646990515106096898170606567717112634467780732535853452898876625802193759288655709191593073264930707439295888924853060544100306808411540980450384647027546625225102783509747324109710727221121811587813445862844273404283690326558990790139382982770571315076075625273272737719164969673537196812050585880613283575354224566151788077438226217875341705107973345125627375334347198688650075507109614672293414129472189918881369179226958105207392929498155997276014444691051991209084636041344174212035460901402247039349416704568113313217363719640388193904466462582622651934638506180132283074220365751087102583338362611881661648688371204339510321356662377010844759813886548246053718845308901791787353670439514743406717346078389233626758849680012991206579635476139578346391578509700832037634139913269566311066539411544508568774036247352501871308560446510911898318723685567732943564115604726113875319674136930124858927766971251007866526495087116851847930260594524932576210752137337632239888253205543750725876027559654684725038308743603781352737046653975030638094780586189659508289996753469857711572975604134316356233884744588089155032154974240708973315165581330731057842260593842933190633891360897683442554832057132347093947389944694996790492846393249416527561206757323708916145105875619774931178687817897937177000779199185279130487997779614469605045448991026125639319365206372680807734478675370612422695310307700059543925691526143661823803199467496419331933362802715208528677908356024723495469527928755382756858237903386027569079854836556429141405656209129871225553961324745212086602450522413076702688626427842110768097784525176958471930747448576283525714945148015248071361012629386914618921676255888116703016624131734660385752761721573959751542927427110253177114946288085319805097758521275247918864238229177103223009628127615367229631240000530066396891315691993264666744735436254380613036528462933286464425948759283614026646262269562712168214184565713114861253200152916645743607079163112059534360018165660979470569564619504826044430060826144884388480934899923473014180946595962691709050224885382735448841973467072033537058416418840388947993556439189110832547224146928854699152097367091981222120863871133602038675408238484620403046628187930329640684037896848572444897607512130439673616643034531421392450196284049316441500341841387903428158002608056246107211510667253824951767024064360193633851524352496171046409739274485819101955237193091257253714887077840937747761174148502638666211135987727726267144161539005962067682356137351764680196893149693321047201198744915799219243866508868756461359061795355551311903892779324195244712365377374825380720666669488906665270658921058391556309763698052984991727452497634628078238051792640337828620834757082424371809334952859710459473642653672144646957732758523034009099111749075433781136317837670894196366206942672020558114982233109612429230534222358240503791190869167695254753013294141756138829452318168496824799695526694220509315960213300327276828737920315022046428170436735710147562587691446009190497686289104527701572893728928582297005134310652921169537372392254306241981290574405423886098377476919284128225469964791074503112079876827848020507607102463620324011470431558862313087480117535114231294602893260900665522275509530485776696352742158069977700468090533949788014119515992605834219988581481977174643418584539419546419486046728981399927017173055098562640985998750730330185247868662896549732645806289813811304115143404257858178016951925038603766186042778463715793163323994092148724345043287930668677154210751032562639158074959583078941564818255188343785107879167743293566279714092994160253399816205017323906651889991231361230094538100123202980249883860912459841125120417421194835256811170404716595212663459161499544743417703668072849998507469899058149034351694972144376334353625294692944644209156756840516594969021770007452548587205355667749447191975165372481752673674934334502724152363620568246675510395566734053202190638184898558541375974857828053199854844684077716131015051435262520590178692271190180637278198056844301320098928617411210293556434180363741152055619934383075052062302301709056277823155579304069022576269565096964354858590919947855431375741489171429498215374983014653795951821164594010244469763248399512067960894066796824866592180495266024485335546098575423374258304818124824626473161466001314481304489117853949806851033578746305947664543183093956379054755630757125757714459354474010373409613767309128991738548103136391461333111340875557233432985343064771378269143198992545451192808379547672479194216500851630765467617652305914549137891083251850608014535742055699983769994892052510733579065629711210228108301701718331816963867836507368638639939152525635962176658297650012321347381402306416510642754083770482556037466250416616737664473853048844890513817277098621024089345985848300473207331533771378105459712535416653837789338987571782630486231672567860456668195291123851925034561951952405657737186970377765660889592012955608091290748993254767170014235864247856461387910020472451639287302454920716540152346205244125286300884417900451493484420620813628114072948409621115685680657810824190560536625551919781827948997579473930802074354079069455206444914054068035827793101915357664107321862784642393294471071953715648829836395001772702697344586066693278384314272551102378033416530608523944782031764836461258071396600764739270522410971366225494466965011296440900444645900929520029511778136807347333175895475629814837973791468735328490389200371019570638889022942669554725458600065395520947890874497925382588132586538928148415507088459654779421266114796340485079539790269319890831388213479652035911554494643792892453816319532592104538680505907977392157370533132415674554818314914846368806297983336530739497388082340025232523365393650454847207683217737554880783101230356358892036728210061211741103436566537913570037164492110430054120409537461165902294946216635781447471811952452893498043096791881838188514514851072666277796123862017472554867716937629285808988427161911381560148966040719391930424742451036425115442053345535706570176645742046181650577998927032684163143169823554035630502963008560202805168173215622527786731009422195624999568760349810351375295926190773154196241193293333785557415458005973552170192565101360046666785951892467255289175194725442952661124625500657891889723336827584458249273571590187018749746832244519406959974838353500856765150344696007220633579745938641490834722071009918320524582590924880573996097351728867309463152504703015238281829084869080849364611107894910494320879853049451256789127561913914170928435809310913805632859090278077433559678453174349377881654608893227373401081772864070623128207619217229856196357660916628649656205308212761005216293234091969744768938315012476720632010668346636664801843546273607516883730007455153343722461574615341886236946252579912235488965792499431814337526852633979379676441346650932666347557558756628918881451935713429388899641776387775629641900021846093752679919225086950392980361681621207429285283923528140817436990976946385725810299611920125764125606567992500445951743656596890060982995516017512619465712160160423734292815465122683723972063735613323862445479591496248485951079385628898065567385741658964615206740052883564073709946895430012319554117756579916600462125334333837636069743701623186593150702270516675919061513173520475984451225505393103074902609269021957473141632485728615130489160835668099945103367615089222109495921587917897748635016998152350443824284962128229047594393359583120797989957408211659522857738174705747010451683069522972266411511030222766182330137282309298839960969573387786136740332630063017258344352928587218252243793042847133700436409502999163982253334482784763084983676639096949071684479131729798044788495849922374689822566216398910736538444481552138193003438485548217911518127940508631858396087326420224779587627050400434540191968990566932504676538005551782455340447794878935786221060873155142989953535217795917424669549800423357304738380303698165021153761352625961837883297919086576749683686124491634929438168277040278941835236177994344791769878783425645472115516368000381958212756523402932352831369740484704811336479111175523088045162185253721667028927930058534755559623544402584177697236302189030897105051402913739193375303630889965818519026016477456594894042776151911227736721964167305510009136072819094003475001130061053139440310725551929090789031009333181028928530116021388789371192403701402765187230504092993242741813729356416494688412029473884502534964270595544371540203245721488344764160097584220756182122024814429798193703182681729011465432304908432730460079992459184739951515619581768575368817930986445630037752773691879622587377593469661251834696974622802399588263852288738448950726240456358305282301813814087856926676100321874786611159239640295949403455565415697932627200274798673082004774616739398303909507502651548324895684368214088286988734071153194989782540508107307316616264540387790296404043577696806925564523889698214387571127319551107084507734811561993053549891289117000446164631296285791852876488051313275375572948521762574608969401386626442797611063657343927842128232471032008381246926220979288670308073608420033703449983848468304599473914565168070459200730391785571133202710264719710411321423462970830200729890873608123768674790857933069611128182622333072242695127704441075943158442156109474812208406032119156570546774833914861508189284491782225582082969236930740277986339564862219237889853564222437616208809324664318009395964579767049666050552205129624869747615772999164001553726328718225133527692388392768646223405062482615204975722388561525990058372723680606630557005196727265595777816547298271212246358393248848248489877967761394741720815399149704664460467015881018860463076099885360897664069167317426986731952532374253375612922464319040075992732658325753895810269345405068328041243150050908571994533588412254458548464714884452248945982363710481639412856556317380065943886968742061778681998062729492447539981453893380703415592895596403191397713788467860355225372949247191968342592298964566606984876219598198938811187850957578690415488764078647875135026464663444054303611371154504243861069712502768963457576432267626435114245352689074434315366088221321355997824931125051541925903149430356619771975274428564604845168977827978719521196837363092396227043608828031362479180704012270694283664821358967123706578249093399466854673405582606109180383692236219370098623994757333109531670985551790318190150477996798979358537188211324256407363866902132729593814271491564084949042163355315886810947689348178521882034350847692238822248008333148214351950145895367148685272318941275700040744349718148715458933791264229848656348317331408882225030752283698763003614601237890563826402404808711833506061107667905671881221669170810894012121820796920711988999634768855339181803285659569324392625572864352588789166201272876557665998994080017093228620171824550025655451261189349984161794251934704320634599952308453200204162115541824303957539274448716985623565448745886906416405420644959413787894162698245923722953124397163426322874357314187650006751250174431137499717602435373123647285303425247044964554669827109383404666159945062431286565013805323246136982626042430396101998838343473830884718255731336797932690304388341336179752728014587063882267230383691490507268058491927863449979121496497455231866393877049249292109309484969078758814401879141653671030578819028160904996572949434718023711234750737790532913376786223454399879212293382996333958141828692799838154133993111874626334679703060058909784466214247222484688235611662478044647476742724149072332885833778752393895012974819631081732516217908570411754385407877231166368983938510335656801533944094885168956813591564731667706033645646463013533507993957100361015653046720322300690591069882181963750589541096655223965928721024184154002367390952662822208953475737601876553150541425298525602613678062545041041732416848667652062688840983358220915573180664195287031717360541260849409526024473750751997446355190828059477024717369852486189607602375077100410184991741552826658592277833605317344231759540781541889789784175765980106366242917214965662670012935817610141163151408144180133880473724430659282186977600112604685183574143712127624092789807183989532236061035394646562058897054653682640478886401046640849310778632844684929150595906631255255245102719780424678436805119775404076926705748695119457779899794711546620542570491002353294863400836306670562039520986407829185739584795215289172423724710331915559241673240589531035664471118470768199766908363126936025581384834948194564758775438790302200172815165062669226874950122551352805423643720098069056976373911414684221277969745852659549326271227961731165868864534714016020468165352053222813475463175734693889154319207617582035632724604373404739507461695955444225299005443092321300125263011525843931894132340568008278945606971198627871398016591553002948644838253841700391841952334218378791859049879102596431065881413090495832078262432482732192847149873212022325573387362936809355696272681387638106642664572105278919562613731420626014601024241655007304379444087473862746665916972617292359848419744513638357100581707991330073646431745959269002474171344873391952204111407635837516222268760741803209064119896527568973020404254270532525568267747157254181939937227800205192083101111747987070410692799946677768612502629854923263230110561694528901418896939472318632264870477034409794300819771147106683560929195697785041340861709240825326990613917552243247329199555991936896535310173723493565688159059110337215436596378206863543680684471202701859818818936779216674426616614002604997263427808958463341971215419032701086689785195495623760785224191442811030218654827806098688765013185653341212742879966132163943221184493759901405621076184620631210546754398370972164891393345955055827854217561244423060160061489456305275490827151702880215795036867917805311691823449831299827016241190548044614971992385583376201522518383333010378262187227742105114487282438242483819095915495559847454946593644215852664188553906943183325561802939689683607938189893777219331782864187991081105104242615743828745319149236138853873672448823104873185088981339998143489407801771822409493138776246190884480415963215725609916968819477262603542342332666585385378203373626493315969651892773381283684322942306996398153616463409285489805026867031960445327990263202774321931368635506854944152807922078393918819888622811547887358158135700798896080850618150648830310064152658110508460536982662690383597837258335197638945482328960904078101364740785549601368375226651278380924777939482270783597910245830621797202691020894263128807400924208213090114787600099876657939651156536948301535988296355206383861008992531604338166741031028262700148755033646006994905944282828107113966554169385589840864400128266098978711954354872856548239273445964445745139573565108986175427453887587724774622996381867299222354822223711705402455339044740253577322819356683365729115119426801220605619042916278772210675283826866749993450929789292009454648504110164692907413306189438147019698429479522587267595201044822101306085632334247299579983312933138167524576135361217628199991525636766531194815773153464398459897251336410620210193945605496864943919478915327757743311829785399879927614326764718563782580293113067868687110664179762724715752051242991253330557796405667076382842460330892566729042881675768921567957722110117751764419962928341708336000690893915170654730696838271655375484074318166585095349258383864508885341792623592738109641076672013908576633495483382848399575644120771805518285241830068160042677062678812863465579662220163186450944001750916307498931741168288364406212700520114959964999371071024547893935994228159560903700971437486616292825660340955680297394862815300264120026726700620622749358078618016545574220941166894929184023145673955687839270367533912298184517496828158317387746087818241221494954442087183760986358621690499395837752872364480906163889378988901411495227151937984008242292423972156021481176735814036697081067065227629840286744413946291709051495426798125102556108722095627172490723066763047805072670632086125497698046142550911744796266463450948581046785863656936844822466341026631634022017185044646162253554667698917279353814947439579206727083275286931614580944989098116911347692881728256236817309992761521820920639553414236348437893014420810873563353764433527055235785815198027948354664112767148622035005456156597679713507724012940864559003261463738562821722112416309561766873328513158579158113048129995568164484971974548491998193312219704123661107405644494558292682661429327089241321950426989683055322051696685307739894529630482600364803111164476409170771379302025246311221883457026591832794729421694144048319066854050078278356087970043572045855270733774127435553910794927327010135979191515815388637311648870324249572058180404118895039229670017852881026775471178816245757663853855921360575108163718773799126664278743992086030879965585805432600973209761932554231204524246738203026021410118189747381601787889644969076595693634082181106122167749214988556892529208345594302542249342623357925646446920104974818436355640822504338427888170903290192221562109439316385787312972380812838069795760045581975574227071388950319851174795484454198992869265201278360643004488505186692187178572000380552010166845938145784368478188922622789017791381909277928595765093051864083433739803010079286346265179608172348907895864370920026881697414554897741191143376616545235669552992722409899254139736577812326799356489878112507763045843955139109781946724370412462993515025314507911813498667542498017800268928999564413485108890995532029926199540252180150093388214922210347220406956475800980501537075588267598385745444001060136906462127028543007209458083641770422984442893568924885986950503203436247748320865834647708899483599293640001629561992511557087813460157234490371457199058224073612293811027196325773285320617085889159957808535651625265108576366258758157628397158915724979689045236220361380889422020526440501612214311440554467742224309612836114139004534422698458465780088568232709618114912334211397192065441718370832105183842851025812499615723087275457678507890335677459643006953426082520416705341383877052862999590148600599359065919361788466357469609038264502424382819392186067266990062600323494362874135478557345579881444592829649703759512893110109186496338618660053862697411410388590743600127429917202457664365183776897272865692018964803992086857975291444968867984599558422459832236346825290169277869622552549941353951911551534396329984376979935789670024492127399679088060646065341198444762979191189787715245514217183485343709980957301690096284715845978928410437792933314595460483733301756331519911520969181515755313074747626405367222032893382920519185844492292679982110325807621124177318499239648371781042795660338683094175415476472134267223512685608921873542412293123182232400219265597927154280801488383403860667221708639757825926238765366258474785597144025773071065332131861974380636819336327156060583606548510380460705858553084208810260217333777917754871130150785035307245812932026432377113565161268686268776435522735490195422504543324688931416929450350505026570924004867354570034478130433396415680233785607008251036762367624673542913161660848511361156913840742177345237885122532961679235774991678049740057905849731802794579326532443619795871392041031078709904803467547477526864220778500374470993810469478770981702508638001212254252011148846628460127162409899542424748214185124933239332237338355512218384206816414283603238645620506959200583158882509596867625198588560483670085830847169480706095232061439614312419447066527938403143222882910381348221185296181693673854818959475360345810175835364700227660066432596854697861265589307900561366036041303887211518917296660610373694960445091838870079839206644583818649269690145780550541590841773563407080346809260549105307648353412580302591509745845647357527840235042071944023208932413484930290931339262731415222165760432915675277109779506667116730609177167075800394888949296934062303109204345044335026475530918103999787549188215974715932748520494034206392642065609309290200452628178476543415995815732720290707776484117032290039494922365527124568733603198652406132406182079372652247846501363977242297132095660057952239597376619911690650696932687755611208825710259417284125746390996968352858601800380641626990336271579679777650767313827061151938268761183074477575243667564146554246048751249724813787081085301224250009720149797467477194533373095304016423562330974820669062354567962562925694662543113406686274670836685069019032106522900155874530684686321124567860302451729257472250046798887006946576083661634753968772882490452375406515577300574757981136671807057157054075408671587306469288304669048668652180306441652763132453627091100350775730237164430500355290811757519406244608391683009693384962691109176255148167242568363533773278296974617319757382044513831490415018758033276614009497638244721904754847370777824007631803149073908467188284949628425575063577783944267571423072349039528434045285036641334638552777428010894037400237027770032631841994069856689599779113149444765398422146474100822352961708571214001856886234457945380798734766884382920486780102046905209420284470049648832101176583128001827496798279200624862850911272365757702535013763429819228326546786517019612526346472213467135292124566950891957137512277892588085494769818273780235229496368575160062413593542241460361556011455538908988045632382573182271883223055354894476174193805596013600294771554003483224427728454981989204167541067626322692319508741304154739419780881745397048410783696662665896540401417852177809374514472720902512391218746567374201458928405018609581570639927765100850165738653010997577920954028944446643932910274841902592194362778402063856051270200463377094317189995569334833628689024851333494249137681152486735234672306932165258878210243895440524461533621643686265583693096931493962827205902257018698254776953005079780811928248446273187347938235074688195196490247708425473559591219471026124017224672969630499397718488658291099620146825997396026201920042499082039851930370323141398227861872205108589382803629967197858759301919190991678090954854360363123767289315940120445583075136777139343405192214706703450693714483065466895795012571442459356361452481225881547916370298554194760575937900165212211041258055769750235829976279248909112189382888793567759938270191168006438820111252972537403537906619001758020575064244738717021553215182935852161078851518084188992928472070367492229459497413347525256693589195546303764502834570980987307516991370541296988934881679369070506188053227395626211861087781672208148281562380022017648609504311763881429227240164822400927508874127099443942266924464323405285411142007504725503258114058278561795890255731035837220169458038947263799016674752177961791693272420263825492237662185085945183084563679154023920070839905511332781721343631189913609511142072092707361968438002985297276361459561432550449258170991002714731829920240209386041662252130272635976681536392328208846656628694296882602352548319524676029602536730494503476368347307899916923880953147069675325882387743629959611203654622161218845678714691952836781079381832888988407818343527613028235796329905219628477581662456962237812833326597595014643968798887621576256997350340416920547478987011584816666348675791396914315277805534831034571276443054740257710239811332163594492963893741428231333665624867629479620004499044387845776410335481258445817993768114408447377063215128534319211123813543945451271205779216115113100276855561165086664738211350193300047011382914029866937804291204455710808319824048705158554500228475920014182777378482698729713041388991738966101721290647304378405690213243404486117965776089195633744225172660614654379719785945635065097756709539943080568337175452300269144078876545699237084313976618676784229243911478324581978877994485253092651412935456167245284996808540083030529433066274647138645814911604506199751148864770992141775175245185306846358686224121918138716272815412059161911072854881360122588652464407514197837596083869097693051653685267892951871814211051420727378912980282339059800550497263591925021183069841460070974720086054265262668433836426386295202503949327194861697515262020189083796262990966329919136787416025575905416947105025938990753643120370627954918734505218284589895514276744175942568356622304392271366119344041784086400653606395605959079338575365894380983621618243846098221114752151209683012235823697342667337757487669258795370678411869335494465872350096396695047045884417915632030515330635448637471260835814846436802230255360100144275832654185993644298413156927616222476496235263597593840458563707228404499605781356166860949062745486684038315860436378323173743654407361086453676151984111314923902869067699292202736073605815516976540739420702384788318446236125761314368178630944472412061613178161937931539595758544106528952692839479264223631619146048991692079462138430589367233998207130195389249295133800572605938392484484760140443366775163480468298707467910044797009629115372445821853761319271958047640600325952549107918863189815580310885149739123503011500770568427315498174428520512514974500125262151218669893803191556545000513127477021192101175364877435018539525749195044029629007799580008746514737792201172110888681483824982256378929785551300699084075695114663215827515368845764487413554642003610216940047457225705418698159155519093183258750275860421344932672702776004622337345055972738541785579847665966154981957999377434584517538797296604239515384042503630559353804325429697020636682241651035216395801383549778724407495560961570619703393180514645196692604462294702818137380010601647989360251155588248702967149902778476318664930677802183731512790284594573931292575252496009841278176708735401183042025123942760182670011622143434577644853205284584387064974536497203269519728663218988289585109412049981012039844254971004545018831664184156440260078018001048608376019381606195714691275117532676570661519007560743403485788813508695843623338037702584824169271772445650587475043680484545927903412371728144481400793098513235465669691337180287530791567125048595746683987916395702567216111256961796887936232130193189945259859250718346978671298705287422765459169655817471692381377167617690504273687306957953002708888446964954710161939621321519365795940054037002522642870532359870188205226934992652098474725126932560268271687954636524362208849952600823410188577862195294612983950731004204374277624918967694517761627308292163825226460270386400793451551772603372981742308177663838524722591245078262406353602027057935097607858169937498057162576703633847469357474566181432357082677562228134812642545867840403219943464939501866740476875638834180022343623744931795643551618364783245890544830134867574410568794697024951004639091359829666825345879372909041453038144860916388659140477895933047079380619861406672732988810212868858382203869040889644925912604690466979928686536541001953451647867836576680613453528614341165537003171046864340831658731386826999352263324956373205312800474892998562719999949773371053046477241421121651310262205389810803573964805550393330554917153792555412088926884994992684341482000332978691788665057133858539814762959708086185160529552747622130938185699288271478494022349124701289209411318768534990819154236719662700996917908923929763251082727039899438433614613369769851899980640229434197458625015754605324771775029647415840641255604226620875480433650350173059210116911126550477255443443212433777959767831914203877042682795936862992440262248698673933792834255678649898059131460762579632772408050550111369040812968197710637230346553358212329508125398118923125038738693801329121467169624281231777269636000229939228135176812737295821843797949290581637874768389589119214276333658582800753963252053022216869847954413220393109672267342145381860728739192669969650797105253684576951833725820757949919091758052333156818900640969302045411044361653285064333628432999123797567870397888940602174653426329265875414141004968998157303694974182550801072858233927468828455926466150890761088237798846794588947416730374241687570874493546614763469183057626987198361254379390353036069240901624556496967766198178338685618250595483967054988380907544848796642153260411297543100471059203862751173590428517793331784286679769748625936075946956557804311307934010629931051734448108780132574328088558095310041419471688356976502285486458428331046017869866971210279142946781396247839474113466065879620261306326893769734215036113735368509761023829710128029437361967082651230036932851407691613544754366355124930266946372968611986542995396931235330395646623351610656167829842974855499503212522086752652659239729707640875143688573697459281408915435508334311080695198199405242386739199705234420265944464844596517117874918215672420687338947169287390579297791236972588542464250164255546938946892435832951887327306399399398788181783608293319080231507132694084322995190169782577331072645661703751195660740113897002941079580252317674644341822366233908100724117264757896818691638419412803421288388504737170580205901027154256067443847089030663310425043492255968599296256170926549210209886804648412398789698042681669170476270956969277586909924604452108855783036795624286658182766887760804935087262407732869877884005991399402438989130143234421499667899045887604555340341462952822158032717094767274515175499272183113631557924829672034582379783741966085354455268672838402705614110358349217198970110452058081500436352478937835382387018890273957025188508986858389746841486485167821053404663753021083762628938701798249688684535468920509496877801466492865234377952712708605347574541426667251912139405695325406842811658249760524078090202428844290567102476024773882249568382233393211649386728303004391229731929857891127303710428345691707502195040493865946846287112819387757655467349999655597107234796413521227903976358094333538090728451999069062083269197206650697050913606110149500365733323071476361485383995964051057124268852041454067768448516320289342884436802965245821235106518867984459136899957524408423677610311581456562615215590858833081612821453902975116899335556638359862151975895542397942283671647316221397006766450923482981090688951953453622357196737544663981535124849483393815305697010257549656152722058778314500766422427367535277378835730561792972774983000244151627691739262304958387495588304672579641243371241442256703592110351181922837464071172920089461829397235956876140879013150305065220808292114495874830406230624362610256682997664340918899157669046498530616902615019248615671702313763866360008754605556588207512636920408467515202082995954431469128769120802440439415071290049156379979931821863181910143619174758694041329580260497310008980995339853211906721221050919060931801332554154663757928233713101478224459569449938240897065306564162416875854227506676087017873632793917673183879074860088052187400053771338520325269916597420453890910800276608510543598210038001833009179759712359080359287353566044875694057475716722442415765051298122991404118816499960545627745687338321361663168163962724028226930381151248521734936443746534202827327776510859899719363255911990325352101013665159445627329992295360144445223100099163819232560046121347137964487525897485388911639803094807247225406944696411722386359408216839740075324375685934705863273084201445132765353951429782022692467537124182223809507154424560905189249201317469838491874187404194930377099125128094786816487469223653540823983766485883003445250694004476365293304446284311700040350917616132118982877463562516159766714682967718338143510608901333343198835185609291831973403499531926027894790932457014511572558756756906011132010943387613986517057033601737579952304503852645896728124381755935837695156182884482539446721825848366823524237801379085899651830202210553189023226050960099534152095674944126227311267798610446470498944279144073684929971632862875637050874818467367180955535148631652402560665249896540206288290578996859992180560766738988386667286096317738027036567159096589375007340378762385208277671320300064992655748308362333652532321938378796036607019705769341402241055815589211351782907896589988591955459655366841300236605925448641518258526709015705523926769162908646502371123406980107141529039472174100256582598050173313850119665713462457025796174418301592931907670094948257970223143610902443595225925107360402279865670455678379573889331629236643433077969778511646388451717296529750884424199642412105799575920483296785692280573668083578822485695304120759806049455076627173580604307742412381103847580439295167050966948652278816070896419782725444658065724990911149238269669327861250352971310313799453611564872225321560164207049383062862818257962603705639725265847277702977242819664763433395449646460001717545968424251476607151352856207966157887410481498316636533953985852007096161504213132527482142728937287424911968659111977449071675781370147851844398239895582589844825244148290353364536529356387630827626066333395307105585398341057339607260977874125171680822359962288976977741212170060186730054770343155403723337659409555437591006998269204179460944513709067683830851362672709054532006885215847150043072086811623426528570834293926681361386424678266040563224665477387905742197304813241581044502025702469980212527091296825906230856457803013064447183693186025916651077882077629408800463043722718161658328062082866284995630223508940764651933020669075156738890428507669393652656690291551095936836693862706815666638954531109912651364802281298675741093688626513427542476782604013881228790932400945434126620538952598578977466455728756612761526501935648206959272988051773101855356543121813489526157627252404981154248591411749463157341654721839005138864233385030159046815837695305006548863735603687510431630719927871015021911349248866504439863211630523561869692249929147153657514534281739367048446111069468670073990730954222143905708413703073732777157264286299619847421579569259646358077243789833577280012812293749365502314814482770326180491047324951261453224358481574290852992736984315379443383325194541201172545241789543191731713789484305693655596530098738429612923439472625443875386846449879385639071729481930567166272396422926323743657237017813264350658779276897002439760351713017525285094386498380559497530666029532394102751064608686511285624685663360797326996805628445026121314874906598436830867006302045696099791953043794096681810319935620798248164302377748527775752725338199993995523575402763772399446497161355556261967214184887228348960488657460002339881906172466338132120026325623162287111367109858259934319944653088733406275202638462569728986793245416300515465203933024192567181954612835572725631924419599824097875135334600612786711757365698556434404002076910661021131466580632468916080757607441649757390546271066916430012762595812761440180088031410130162588521193072421986298801884354480269610870584327675994942495479185454830790139751403520210578191922302064410709001440884425914990099050570268410245248671304198071397759333134195829058405897133168387039471991126576977947223360623793023709256804100179444110880962683072296359061538097055320101159464707327259199884730307591361569549329345590237369641463709058989558307681506892778916976217238933334234093938329636861508140328313368437041392690439931326877638935576674772763622886111284772018228408948161735196188300321689522563273015619485543469479768830302660519041649190958348172175742072665345640227187987802122364638919123408544189681321751557888710105620896745885858997188591046724248270428231906937509809134512168481098908918069239449293965643417528698111083374618569048237782879044021958505274234356033336731242152846961029138272214950465277324623225285580098044559028219070073055977510823999290845680097188023477752037059036280032893927072965802197855925292683280884917161552776023139537341324668767417652026751057695958783405079343966203588114883742820747512217510468229192450986233180041465599428113656931997513643715807451727993878144271525383211682551196361290604346722736339577119679037837968346592027903769987579809917393256512661024678931965976481693002443882707629201757267878859175693527433075267718942836064235258544216413773141166013771211204588084741657642692160438137136703267324595287864082971594870703067235104568108801540902002049181202405066071261314692424098502230692604031063177236062833807007794748071238167942985781427387059581635305986754040338323109876989082674824076699338842923690227973050331301404657298531063301717281029306079257230995801590550646790912943235835543368479685715246076707875376745038447255796794660185763709850960751631701444933354279006176077524734300059104502927852619625665945687378608246861177669858231525747863714821685242129951044668457120567905053233145524437909015306668353535016732260845814205206783712399559026681069779287715196627165439527005306031226577434674677212365528459924267411792528353288595474739182485496691840693966912689910661602734123977105324073554860986990141789619812329582495569852595677277482551266136682871050669111231159726375044693417013172902600589514944295256894448256404353856460957190337178904214126607004374493825425456344665190667838867744551426431007226357460963208682823931726291728424381703587037473191707699434121495718875210965434455395501017059175921251270013781183419627535311106003601532789479285366735548392205014680594611609896917426259256519079481863224947568499075086363273124144979949599363438342068131593271742432524611383733732718502932248770990205783547866719681848252940765500694919580173498049140903629529431332709555473967809260502357839712970831069032561873153672658041829850406092468691290333381082917882505792457296114162410097456430399670956884872168364722142320344222275736909521066329392967092813135203298048981904858771603354731126074571610187244970147006716606130877524480388228866492629573870992174424146542854665079890795312856091499976243515576227942361913202920011942876629664797217954794105215221477572616405331873038405408581018752943179459632496898385567205236630993678802044880897909637557963605848195740579085207293846328448716371112761888163623462692046520434622429775188316680334431727671628353290587774834238290319237850209942140969771075004143987465239299667528754360858588204583782067527824195828075400149964544780155452014243022648820891217166308701808449450113387556022834938068689271474894870845391821707685679339295018133810670807623508852925880228671093647812265001569016474517018200399404012533153214875578829679609702397257028594830406559666843121035734660005909789744443513307362734244274849386171746421547784471597510488923417731037460312663177139850037018949462125567218829749898749975472508406589982115103017909217808850819109027848437668655294291442984348646630876440838946062557088490570609187131469794402042694243899459328837127989476512395321093176072619127312817003485647779056536225641626861771406198208951733398939457542395140510447178803384455852229200271497779214387107789061063469936849961736298158608046674327273028644703381917998990235898975794239171084527115468397457534712035861445450722519990101177529932739107657516509200314907915411018710312717042372642708632220813353199204212078219613774387746897775704991221536939490808720562854261868826841389752012028086675660015791699876135181572927833267747589936433493704801517757118401298788263185045446346359874722500027463597969712177598446493536608643109532319664082895394189664132118886615312671362887571210207014806248073696868132678141230501163195350063588974960242492308335175157556902442962208731305830422418188402850833168034697651868932460561987384567064452931820593034946400106831425169516413884342699190601934862280861644087103569104363076341919237399502783578522962340108400385763029344942859675956053268650070509186025393124783308444656103945140587287040931496162345590189737242255897426200969731980236761690307538428508762000394821112007087838203715785564942034182307004316980920253386358291992642082381740358910358459784922601752561075210105696663513729398703102502169384546769614006854551537760411780985821095546520191335380919436001105715617989120970033091671643864461506128733735603892713263096362537802355970635190879691503553778286948476223387981534628904373737990492896475403401547127242806694457831301807551961303352747645069372056041609060214054299183504115932140560016001192414598532848047329560498635608532812083901619901946079100125016683999101505552127770097068586009369292059984688654531621509591168287204369636011245185061953195789507139197806667164380273035411172699580035327485702613503836392199935668313852222883897894197842609484859043237209080646064731453933130803641546282743765638844149986873879195139875209207265368999234942423769641610910440388559108789806511159911793072241993435765148917032151272573874346037103243071199958074419930941401421895437582016393165307458210708321853392864132238115951104624619749629969071777865892827550372450091815566712654008068684200975476427390846817235641951647136090637195358880119635496404347856753548013056022398830014320146930602278945628551486578940143797403799672868586686868898349141739518533849799941105918170636487317494159577856424091912615247160453537766895077017180063931130050057206817606646602089665272263539196086098104186924243688588988729891822668006378431730076501721802791325590670435027200903598897963487759044673917274335971271281081964303935313632127058943350118877246514551956818250688348442961429799839125412704207188682218197289698684614076319479713379475401826243614473347024954917413579592203509678297127790528737693457776002744042149055764199861283671887571998163808035765841264611717062714091300432764059588352763129061112471590007081498474818725051430731840629405824096871100784046353009266567226266675825172361135819518596154875547912095833308283296043210427958295987095389246746196983738748984240105691237189699311604434457159372838587590741177653068993669664664751709018971382132679839909654273647061415405362569782031807181145377796435494500234683786494397142651480221793821295331480192012646896657698454822624185327366205237108975550008726915770743025126820164167972019917809410636290900715579949007400467599896724128365868922969546936036033886704389151551699369881784095878443283100944810799758715038109500459039371697636648174502420418222633389637075380637676872462285903009507161374010115234648848737098431422719394961071272643822100185613222565338346877089500473877775581356913812778001114153348256164058131646814409760859390644329463184067459039612959222971131472803858692313080322896557640912690530175180573822559403207659028949861491157965514317678554303840761242599881034248190666387014758197746623383654531688828866408018385300517349940451510479393204966174612140245974904557517418354177763318215338104417596105351418917994406336189063147647712659629477376439480012234369831281587344781692934539208359861726513528893719531365559518007543318214300889163618124755026816450732692145336468885845674891818310155451962269013206719030185328248360352034507116755485329514350179651634540333853152303749661339573162212812670791031258525481718158845240515751678787825891760092157638800828219264208750086176348656159563769050104433085810611397824527771692398177437468032859761981801660437774537870253990966622928370673962149810351507898604641384371541858998588333501458195963968650962064623560254153649878012306004536817650670823742774357773912653566411041165174286328474201656165887692742300499741350566714661643068842518844816260373846036149772645883911236898244126692519659404809298482231759012752262888771858066560518572162301120827931193315457043402357081624990623547154358732479683286517709648500746171798715270026654997212831975824637702104792091600038733911901601205777200020910820269676407679927410378388203204195126366133494001929809822763714597240853710045211010473293306159019985977685923277336893109643279058531890913780840307745152808912754889801953856475358758668634926086723509303617672911168224270271701998018687379075800274048644371004296969766682547430772556329060942563792074753139062305052336247262506060244012998248887724928282586550015331159617249067603167014883519512936480188902929163567823371657446409541811918663221654763600457276112765769355415330424489729357404561054917685762166095525775998329998318709092127587713772196217137085442213108869174428941270517274037345632888106989420154390293370260279226103854435876626907415322666424437337569560905304573622232688110985141482952137782189667331434521341330644561998290204388270879130168954834593518986007742878568356309774586170569057680984067215842169066564290533857624491444155390501575081813044220599871646455184885882619893449867572097820435965143008480720737623138950643483019605746985044183978877747898125936413469948506312284020030872549045452293057504356953543315998560572736195073909838048067561187944886990477887113295170320159036795362879375926214343446646270489864498779927940973415207916412091620853115467258130030521595166631344021124033499344203400336692597414151547882481828403386302692113663426405994249873942536409793749261892052266996819247978724376165284776190295834321202542758052615391075746592557612102381822321569496616006035721209438157494680105751817164322184673776529430216279462214507772434232764047817554209791423077861598529531625552020423827881318297416647136499237352537412473097945906895224973217997727771879464354454349998333353145460844741483845736009495117667610865709861024550536410249071208393700305112262878758403559316110975938869253930859376953180822485601714486949198370953150713483095860809215372586481411520812900398777964438071890975490579052977888270112905840385366361944279853833629542015944012314536522460119553287605147159774405852302037908233787362663858581522081167741172839715914344862572172667135301496642058165393741575548516862959548192391917551886809061799105065440574762617941352936989510457138839036870562519900103524398004871408877817283590671888232453244449612578816026700509157166828788596777300179952888803856321404538277303315089325459423195022193952956321985524982184150807858630886106817072262606964856788346740854469304228047223396059299520779789287857351866399354634222167191277256336001440026915173462541541989138219886216703193242656696540303161552490255779166883794902836420639940322674156415680904569064656768881229144270916168903090517179720406223108137844433540885288517620584286001339638076104687465417490116121165038340990597158198260319743348138237715019372459112858733598774485305040401489196106560293476328883725317140412554458373895555201033641982324818374815144245683235901224464253126698865949173241938566669962968126496794987857367886537200524146627312495529298491115406515200681083984171618667615678929179948737325718021013539411138815412409605192296781950283094977994771983451172836847964412027506367680224916626751587980126623518842828635890393698798680166058708714141791036719530852495973916688506044687045250078974696070444368321209724598222516389508517981157383101963432035975485912777958794118194191015823476410757969015443967845385077808699916074857184088450918233238775231522589097204698236101312039589924721351212605336617242349513603969500670752194740621166333514376497273669539313883683441086171904707991412076218995822819667166002048774861522332478201583082448316291761722431626108056555237533585129058615047922433950491115558890404510701395915661962628744471968304390634321623276909859734987225623927749972943461341872367269090372841102558753636417905263832264746678919680670775031882999684598847319304012386011578739788417234780942583809661219070554726658146130285621119692554635337174733803937906001017224196772471782263033857989757556744436321402409977727690042105059072046195303582990710032018586678699918650814333227382164709588190759630168553137041551424076355095450884030334014377995530646858057943960069960192121970249384510229580037631042440987658532310395901343063109376264954895813549562806248517667175752642832922865723556071961433024488191955266075050675793709392722055593805689309334714371386980077732210283397961514311312348579189510603411011354088765686074804009821689192480828625039968123404836007570059178344634082276822651587342606600764054537820503095111338368119932011863421876194424817780379189515361670879561593376328234290781606788531545212213442157538002883498924361744742513970603581498346915761745290499373553187212967979287795287143977727586455877486544568188930940255881851212531413986873685750263304860083817318694538768822465263611521915160279850036434648781988461147946153134025868382829467090593222481020478107956043102611318524966855935383861018897302422411978703941274736446152710576057029964145547989460189295667125002164309522784564188688955635431376351041350391857696783846605893741580688177981086305247486723466917522138961838790841882143272131319052582125553516732976265649240927580123246120922129205094749725848627078316692362310633232958393714060181066700421064210454563125760585134941464495476096704776231053152450398844428549725450565413491986661552677405988555563075068803152693838801882757659899831386373292926365906005860075295926672376312426026042265011159828207339327463618225634871116213835106071351155421453945076484699558799219046537250479497244781270162521651339041549368104791232150704664013644625556896081641731145712588087842905008256187316525724560969196570576616680835695350400660015368708273165223729466395627659889289378049888948098143356588517355824673525569403159019791931741028967377481560250139088597785423349099029895619178948452511563340688728468202778819484509325622729969748183110561125975347186095444010609239328944146275445888383019681533769447743017848515481655774269734343408668347706347658253325962261530452133295797904818496205828283456342549470746712351279291170305025166065010573447031663339035598513532821536558072927912687511995924796615693172680034291896234386793252955945434466366637866519374872277639467209283659451955326187763254933569316621917784836158290519033261347374207728204624154475243879178803083898666943675933656660243333488342100840799834913606806755083177730157114307315430310457398025466773155857641138164580845439827936682927240961510843858116195079859348942116059241002841165055912065888284647905808248885016503565270706701026727738266063753189051920144486560497899042048654885148828809432390711346060832083707920522577013779330222128538152517306738123090970950972324445768971349729370422323941543523150428177299254257394880137689334162102103865792775569902848024636036846060306947079425249857829758230226841452432887223480513414036034925926294348896286101851509654204130335223866536388372141086118974451375847171595317718166623133365830659434634646428400390659566116878492274242361775486019835846971082503710603744018792899140104197910652316250207791042655075067523286855547026332497778964488500615993402617276118349341271466652319565889892222670055146530691953447071530042179122888339194272930026729562702406276947165142027806059713238916958039576765905448115313000821443666922880614678281774171321193002724181644103320497834685023650951679382224423603331113157173381497740818949002162701000293112375039003836150158954389376579141856683488604954425106570893895333356475212469045288769636884178235859637333148388770287428050641365868579844817142712521047740404584671663772586206689728163656927043632132467656240509817400809901403145571969203063514649575301517682012925817683693256436100500926462050821932390224866843558795245634805589517234561210355715097887038791813851479725834460638898097291965269552480543592038394182421194957159983384136006645812711334649819373829167104432045704079518220784796938492868493758039276200278318229375275971184214971184183104017705237975430032560798886696055915058996304141883607978093251739351233296510869027761766325742202160227690238201166695996199898140941950801049568901558437559458229939176325865944965651442822437915411957902618645537435754492910810265552049470244946871680129324715384180633399355554895507431906617454015933195320539439572790477920964773962729947472040258478184193816162061185849822935600987350603708867241318864665542118150124863137897831535313585249571323160120729661734667342418126916579661968110391142664085972562303075461795639576625104690299434225924417616988797977472980385001535462235115473538467935170100671848049044844728218371866398882507974672805827181778986744883142113940516219114821841480630527377954718189405541891324449888241665373507318607894903504466057525772483652919575870918791431723079100144646097629994618034755485406596244701998253613997014904051292872470389142769514539294276877942773293680063532987784687930083778420318591077918060807904457023998007268667574171251721298483865168613947018690979635199450736379619511983624148932028242728131157772310655903958405548544789189290563038220031542666390835949774782047723564666590195943192938177083570337824698777034042596732368776015121226203939629517108606269935285587656532296975450122101732522888961185782223672727110479004314804843874980755887835034275683778803304579939171667390341490377414154793687223263692387080109697234172954435997409868082402024290096811670873507225213048778683855508207674742294236381526195843551594275268817794720293565417632592977508109370679094324999563754913548962956058859467418574285546172358338698446066909523832276643322130037455493898024862180859478192142371270898706149039510332963462245339671203335072325679056613324691916813824146453891978569896818840513153605950661069623581636705987196389633677354616383232065031780022318066856832888583454782969119964714577712609511903035514084191713610705267694518635525429682787735272163003196458932029044274187031577286113894325303194747170278694859247757331948761372284637391313472504748374325371596455146072697872464783914527518444484857601486864906674778962907916822312280083110988515588957794868613412993311065161274326429217439428554811600762205253178449587654327565751570403807609479887529899933540618072212283187838938896487809838293316183253425816827255383088844282998438639635782918874935100018716788196759928549263557077115387788006618490175069036829415701519706425115360196163914844135112027099881945275980530087631693563504970977458331467827576817735912383749527610514222567219531995453574300710492663797805820886939238393330333257413770365489206553998874067578118732508339641903953910740141871852056483149535517182285825122417350708268141424780454739116224659449140188228506775006616958162089116580742992231231168984127444009833314604923877559968107258160582053209055870137283242318755001627963016351716218756903840560406178093576119638896930025979299398726672541678347979452820887102030696955494656672492373830668028108203472061722336874882906669163564096932215240055857247488589705834315755531572882698684836727017331462159071461307064154857329655397473062038236052412577831096232234645240158538563705574425965570283103941478916522578769106826477361765187505460150246732533254184782610035946140244982794323234957495113932697678316501482571697861637690668258166068160235571706230944262903168728482789350152442220113545909514157732071324000883037836269893293468906035513760478374038694190859580790307148793737991118503661047946805273468663614129435399410939543553236931989377461246577368000203277933571705242763721999526661342273231606031654788081357221534436631563940172025052499016001257935377814066628832707876806930319854643033154791772974973912808287873270254226810512759815115089059136561443853176963375981899098326279191569244942829419350025899923810777813913502958695921374309500879352933241151478843952693986507931296536649078313204143610511973859503630983136137368513271634968443342136950601949246964114603065147266059843536728860780137528755044930765150529553364105947363544380091002229122624975033726684584413929429547172113412812484232975266006269533478888591612913897444147771944806889957425245691543180823761950512560017892435559386128641212210581051895296044777626135582380655283518810134886171499058822806436680335446151025825271576173149367446114722814340929284064540396401564883661697965251697418802807928266007654505335639262593971745291368735586730794674756523300594474718122376405782643519869428950207523712806668478924780074202786839622059298012212086994258999506797093900463481007116849862990026729467781752797943783271218764635953695674617301889097454768931905684422264837363920179627229600416295996847638224481559137632266519526692922676076776587547212809535895705658276717760833496798427185659740988334089150089735774299155346295689472043343240883150683227873412300779613620756532592549324534266552904327961295565801598203366542457631656153923872164074578392769712283622390526627519826212507145971449317543018531706656450254189024167329165633971851330880062337776439473933274691465599151334822204940453435892003919109154179249801298418033839857930245779921081171575542070878248560673569807014159638105078193782174440151830679754903672191696895126233893765811182681646607038146341212534301426624570088104864468031454453270081214562233606150791823606960900470525438939638514376439636211643984965009247950577018375070482239469379408487756415254026591848959285781397866465195826049146441401441826692507444153149300791398380790589091159785479795915426003849437894929421786369636452203308676881171768217700026090454756220717660437516918255897063800325865845903392480900676564627667267009244531693523798279246978496420539037381443301357401877594686360687819820484920137285854706969097269568174530294420840072409416074243062207342890869003171333514309574788921471928628906135540821413910754235067820380803473004826957601885183421785503907176910433222328428287327741225810509091323600474407876604648634995034107932819274447399589269971260407997822128403809745986129889118948398922031482043136331738958919666630470010787664586139278151174889130648769537485951959629566103697998042393832320275278983190833369007340552908056987156952354620722917214891506692446818584505503055387865796768378314153704929225564711570018796067055046484978778728902445488412787660748911120237854308519769259331230612818638787226328200339713591529306232003097268820580892730583824577958511058946555490487977817346029688708925049684234072385104971747733464051301970133276655761351978002752727907234363274530905002542673803396503858839978362153565798688140986524382600925971121099825010081280280901946218600042152195453335425363306201354285070718726311131836361913796847245004726803167486075197244388201994991579892262619041604586357530885504865548161339485514325211238593136030572188566522064489105692096695483125407176524738244661976233676445910805751201231369009668583390030402330914340087430465512046194937886937496184487858979409731105658139986512609925895789397112038446518555131092501580720849277719114361343048306338143467297388495411430291130276314547936596079241867774945972477557580034732081674311946315802571072508366256386807512234264167225459339040457700829473320662637974163992860511952088908028934401729432539328858816960827722466092863072124940036993342245051400167369047835652723984147151474793104767835642504266922305007404804121100180406946721439817081274125044727079065562722934241029115790009631275935493251032278211294616842683326216775266316897915968492590819173426743115090418400233332940212361175945459147656570519363326182274855995174174883947469157390238690807517966839058411680756445355902788700423733179979120013629006203170207080988597575958703796664481749762730051287779494158415622012521928212039264899655636375066921347210751391793183871201290088692536553591807607761001330651851438413094218349532132798310644503552165294805869485308436234997072327666747336629299817411303451464562524472352863977048755858284299222746550243321155813057191415542178711224951335308913609958847187952919603963021832612693044735155426426208069860823631494996768942072287964130733184150354218551668795319704717682667797176519739296634361706994426843719006593719071599640803311522057804565038642739115393404143455158945199898574416979491936776742845115064189414399776202580184461386586019802343350841197033537004836809759353336779232541991843081993405272482255222186966563100072658635696720253612452914177429281757539535764459178331048570016956407488378213803207780418000805509453522412818740503569949328265150951184768523258901621740220501946525675027303555329680244406283206963590809355713076593888885865376122271889927827635095200790172623512265841255204105218034781468653210117673900042542863357041358830955526197852400130252574633441151751774389195257059801117221968279425508913682225872492280798715223089232539231755912462275036005009811916905443555546019047905853353675731418768083335775546631328410137328663633690418334941880865474265914525689240345795748794804202645010822993055402962524172134707847693868045004635996047728325774465267335863075511364571555835609866356001637012319801148219716363539686031662120891543673986195771069459680770281938627299913333473282507053748239461864546879969339218605496411598781753463017521776457783485619227397137297505223477186603935031396948486862220422882111269505117765202980821515958610740345779542768629584787245708294008382700051537027226611180007499998710117392829454320741291350470200360870961695270267497129930871003895598840499898706026469832378440282930687302290710675770490284445363464676150272135866869458503701287043986022255787481633210683475114475926942868151427344658522491475388454886588661256466947257777063972029235493392898034828637303362616984698878807578349352865597046333175080800103335425781342149623993390131946780521583391049282677247688552817898319940455330364690886760005013543946619396828083702137700210112522807341398147074038781734100289181027703510492423616178086032851925909246511281019876719943494779955842828403483247731151275625316112364013836069732059973841289503912413768308972598624267672991573812420855579662241675939765022390498937384894017275109233218607022129538954307127213003606923907641405819536358426197119066047535124066902800816237967572159892176970080920512259507605172390488980229612146604924947181915345950218518869346997130192252920256388136203943086938510947033584761286270199397256764961504578039466641220794715480483178264748844990211485041516531310307663462683813056401000668562810900853825214703964099507187630134705877097809984540850602754225065298155612855690250300823001550741022447965427931946473903809275851779182132885681295376209278855573096689048347886658409041110817383235367843962217474236571868142656013190889656115519976615934804483213316914380904188390540774304362632069303580583680941071259400359957600108869744288338352110835208748350392738944826754328924400783158858003350781909334403425025106386480877885572137090822662763106672382559414393538590315075577016863164097962523117084617233575047898812733827702855913583374638344587209690250275750992496806217635171911065124295311499553855370315594477770307291645115053882677968024086471247309772441972332219072628039300685236305468250824763989907021048958906705611929365408545156767511067216929548235081762859063264389564876945553868125241879291504091234851627118188232361059290128429746317564331852705133890993043950664562957790343544149560071194919845211397514412635656321985428188832245821007675926374304746436368428040868234912518379236957125691527677451616887382928186413388807771208763312120730473066541250394637224434483281895408208900973805009867333626825992694328018225156183755908473610731063045803400217481304786176918972580366692238672720751543442018304071219795392967354428715012731544162184632995947268644402642976279421670333687773654844187261625894399441960563011941997478353633336041400898932063546960151782790674846319274454412218516664128775677780999084971403941828289130323607410983666445066838412044677033553518645110448492887512646950052926060743132740939877286601958730550202674080753045155941532407261657969299452602775294383643002289762739167685323337380660429178266098632726204459028348508195423530229830651391024982218992395833754218003375212256526318150046024406844196958864847310790645295288153777195915209919675218022889018037326807982343723656138448753412225428078257162073605069891588374228451484087708605739594346661670908350297007935610524153299614954371579468618605305543847741017063976152324243747188478496707343846915760872624216693896814944454158564695558246431116443451627481949902324494764395346957840022995729165565989517907077223972512951606580921445899130675366766155248656033965756360066782077424532546498453481379098601466276058315334821430193063911797971224566301535600669375335081900878570706342262299316188281527337788820924553151930702892090405422571762987345770303924511118083360133481370339213271966552566486134538124869743043310426721726060848266172865300270369530548556650711317416840946663785353746450981376566424834516757191596594182280702743739006445416116931930123857619403185896353332750216974356979369112001660389558005346756379847615555295764073251533466721045223286491781753367961737166732539559543221742961867105202987148613015545635749285902728125734166223865995559884647998593755503457785066387825936497203245488364570690671296529055839210671531855647230954727592175756703247518792769633511815938505111314646983368320388437438840307309279459896224753110069935714928529265307569185478832716467364111002852405812259851158666095459194809197060763419448813444699764516168257156044587004727025018771514237219579867209728411023885925746250094457451683961553466424000313245814173503585847156242235105050141816681233328704849360998472374207461491421494470163106209579928638905215525367601021258331137890643728420391302620093088374711813520876317759444670441343129257762478216156626189242578697302805549816975767024108636004609846968486019035904924698433078557349338471018178959186263831509444621268724533697137552157399423268017769462969409304585185268471336067907709164609393203624206800138962930153304454339159523598499085473599727150536953479677527270061961121442798259064577501279378508960046786797579700979832490295372361465542987835276247755956028704671007535562298949015267104457490860670572861259485837170808455242549787595108002738728918615501506488963862418718402341252943021921635678730896092449687095939593762002709248732698820132161385655393893021311450486338550809780814200355305643015628578724448778089613825896053455462950811975391918715258038116434202589016572515285890859953354086677029047650890006166694594725455708412066019003748254836441902966433314264691517841346814248878951827344904581511931079443126783900536327450339090485239451476350848016653780607594554324944011278634865871684989831092164571433049756480666007157003943633828760465622512327466051830921305921769293208405573616229292945903260818556458138055989163753666238918581800775277037307123855745803824645795527634226558298574560301376026306085755716651409930957965352986325472528388819829682981073096308532026774723287105288498408792358965807686751383242202679147903737272047126572415480827675358369740322959435394928919260247469686393051444074805419520275116042062130356721949582357290020316370543557259339885922493612486013798971348081765157803656580851862372069025532378049204685389556182738052977092248318641926381898270139145849993483894653394194911790889059526111741810117824901861328273572756552854938213920021701533602939740607692059892067236161398050197087044127719746603359516936648029677447589418527972347514122204383768555909039668972795806674980692563097103648051185730823623164639070137810085685374095680662479638079033372481343476063771896265260565590865849034769038135667811172361930990036952093682980443418879063846737649876955128938355068836620163292663223370004813931202665090961555133420346922472769890508225544979135759090372729540279457614158085948832945930767288373547612816466429322496809348315989998707241586937453505457719227507402437339679433400707668218395046571201202645166477141331368636802995127957926830997367348427728462969268366733462640352318871520217608696511954478329063167115148992724201273754594867834410442463183582465703658827532416231346467955816785522562675446985707085185395901904781096104550895528149807775016018591912053735506914546280611300881780126788086775783875555372774001079401258325900332359608694381691802587857051461756054512465596780109411736469960511651345156374128554820562195696143437454446052832954213149927095427478722564634236247371182935545989482618871809147241033995192219742329086198172412028838655952195043200118424465082510602724763366885146580914312072049563454533377095512867292017801904186733191532511493055950642712136833543212643960266759322461285685619824912342610567275794567973102978583587286210162407678369722499569091858731495993145032131111717733481103314428828054902698700851523648536810553542248281530055246937345857967821304316746981987116954550277739752174644076425623107225904140028323333343287405720982527533099082416944668817662035787070012382792332511193511323735122507637206807911422216859969627837034171223401471534750922880963282649452322996781831967427979325622380518510706783613074544188274145794918984498035639834149638635657021818025318489577222945342155864457961422574637346843432531029308486967126742320343456683967906808158422202467277597691927465712546371860396781091905843331638559895992481876725101790887345488551535410315538416145567857199001755038114973274277774862653243555827029503782454119466714588378825311296936165389718717036760503473206073116121904506390052839423960028660106790258812601484582356590092389099956835636046416061917900778945270080820736821583665355015278535389519446707986214852285037676159840130514745010491923309588974077675490675547889822117105040777587571364019652726101102014934088110220374505826229216297040069203762572383987909094749217996031396473406884588085056009809305654396863017923640877283597944250960086638620771448163255235518805728778567586000611944003624540254493650796319650785320730164129078184783433317176751726350322985889742563908107943371005103987696367479812814887041836794315140182702757240986337923568138559371398126618177323587009820310564641312591495299996092417881132576757659153008195324137409964763663538690846172335154278859260752584619696018260556984874193890610911043100572663848437125223293016462015091402651139061764379998235050716540849571342781461601779551396264741815974551513428703818383036231287599073812271715316323400570216793451991499327157148416381467515340627864631095217385225247942272963803386862013884598058112434249993457524101094918347156391580228871341473848766888328975853956331944720652912390326662116574188237684443067498670375578295235340058895100009076026236312840782055898712483654391072709985226570716012050406611426471828364247313467069892955819451290556702990686781912558176065637248057549845635263006451003474128264207029524377129788514148823823341324588236125925773293923129849879693398646005843040190889726545917362023679300140927745029765471752721146676429874488528986050890784554093068347010248675713011076737358457305107953984996596232178851323967135609085449239089062873759140807108182329617171846511862354579145799791883898184835625488075932878343510646908885828418638311855297409595811905608187206317482753923681586429759732170493263449947937881172894090908387291544961831209983771436972199885499956373354796238200148579721801986861628342679020491019205917030098312757106997540735793880116340681427951925477302310058611488343086446167881988442470015918212188007192950448233094756818978055832500557834417110091931037134170668235936094776729561712463133858960291090206896959456337549212677166680013911634711694738498483332583493361317926685805072769480653361725949477251919035170708199424594431327674018200990208657795771101960977809427133502483956838371270034370279917274418232412855822646298532876165292705496182046686486335463935253327382568659652918390155818379364717879557976303092728192113980335071392187323975206671801609318786625138522104676848166154117942951847886641192072026655526381531181380075255613879091857120499658296438567721328167265649598768792605554427699215902463353349302957977894614121408029263247674252679159009933139218073506700097054464245696963431648041030031463674267959209002376049025130694079319025248824956569808382173898498156353954379323495164953004101817752444652965147866537965891258397955684809104568305652752340243140954872050055924703042421720600129227030806991290871886132515729798501188391654418980416033884774805404837123935373298192941255158343245600627119448775116063372673088517771930333133933493269557886984317543340914773023249262929041255331164540109232094697226245900909679492644555836978487546865161099533766259975008812470327848710778290082416598006540608915432298991950381331061047500336397349425922888357429830580092888466505011007724832739871394876997025053981606935271728252245187778278766187873314179575949938866660981453900329022582042382763247005006902455975261567190778579986284359279137133530063361317854214465558431719852661550575429828127864834941399446458846344756958590991414965560002193886404332717573600862295005346052203003219459118504018691151700515099621800386095311405373134546311863607876462304180540939122677519974643693158907233168701485255146255256461107710797480984823924305494348705019636690789723771751809103787935446505783055915555197936449585938668808278701761171872654308960572700075021171437236607591247609074618076045528380542927528148641955537615822613740192347689489073526037888790397237531701549870824400051450562328318077079056016009567023590628597671531357681011268611063708989251605359155598738817441593275766795436131511207296563226123661170931387450676017574790468855550804523752458534477581037170987488449141931629154766579625345956377798347976264126878746207720816505366204318750634508604096445761695136608903051024751584125364909415260641922575465121226625796952492475403368828903347963439505381976432365356582337560557964937404943670161172762869804486902173881610666164556488928537730639277574177183984474826596629854225197336817171903886828674808906754432483472248940547686705939123275918267534315060497319207836762686044832016626858471302807962112776094771337702443850960526739299689995733258334257138927665032866611369515307020467454573229120202944295003422961310868212862957338674522628289252149847856050763215225797735489722627496784798283884723833984683885704469771916426873837354041207496899456445912381763493537467341429596733708214281938193528808859827243721291907793322735027307177996505023092894855995824260138364483092111539204503075440471700435362101244098332142472579744313934131252850460214128977124509476329762354676717432690684877149409671594056212373159963234093143509049007721627577016448742074405282988324617122657263679583523917257070034186296958782120017955297258282448661665721690629167151109584237642871909357532535432218879701814175035017139261170194489785290504847083362210565581925373981867238060966226212112547929956582097884328338049731258350084906217142115424839390469656803178088617366490533443839045779106202734686651516014042590183034082904139581064396979878761189489441491139537019794798195512274521427248103386527584987163365893544714790168475183457466177526632619521548833146383098335807949793789192221102559030517543753675306859038475165439736804050036731313043130176942567252495517917541177328924512701514495297046517815320275707994634528737040806378698920163840465810626057972671967949206577730759484430562532716888283685878591905362205663343348560306724421279218492147696171204433550563482660977443803639804769351757803878942374429960986299256476421644670413711787894135047786903099574783951909198659757913125626899379847113549826863385555976026580362265272313721160802775725264296386070663362377149993969529246178920215097312693535247422197802371581608437001302244903561141497335331293594277642749021736280946838502221941332732177312434525354523541173712234275491876196594051825915639433007708816460619603104515884817524235499657054683250556583507833614179914556158366894662279518538418818230712492923792880188426194692535490952064017411376401551068867766690668519488056576495530824567461069421263676461496479467499382716211234157621905197838533113399096497498521138218458589405268962744353023324366225967902646273715139466566355230794103553240084882110204227051639475040392196593276909979484334768417169361783647137176104006134131910184390327591240668567965317138738783485535793574237743030576376910935201350212142446026428865724492284382127192063695002897212886701534991926102621038385958508512121541690146600857755521027695021537361925745179481915137964266945299669049911635991158101436127163273822048688066289188496068684385778089031051833742710025876317524922728507867519828229378425329434991459717217132738384603162096035508922580899389257166304781291525674930701833927160697702120552231749962642754115674927342740409220985256211315903676439486333560972319628221915552806079778296193813785527701833837386244124830655663890632266956787703504663035228392421855735477469638267255397526546125592602310458252766529460951134206621724109803010260448638696675865165426300690685771297202654533312794357061571796064128210948004874856274840312076534294582463137179555133589066091392159263616402296045192744670101260408054153756867683059264402437411612205393928476068513541190868797239897977571738898547887075740702339659139939648684811018746485241404471183497668069703181049255431871296910251970254892941637298368335867981999263481856110930258889531792536666671330215875224820001683917661032556077132770998749927256391620740363596510751149205891530886929085842072839379976916543923704884708699762019162503193268445218298813642481499694574328558824580488801160492554151600800700244129926416120156960954468147480981000827148079923232212897141107946993999982195747354324702841140197279700568457908379751125981501906445383825466115414765626681335135068203308769872558546879789340659555646311959508796771807295589811261698409352534044744946472061646943807797451027615989276770302584404412066663398511702216243373507914841147048116319621600243221007487493755732126797437984112053275545769263110090138954138824752316483795907195890126368712033528459448263705290123038455151006254987588365247089648411515195025970734928480047651283964744316680142781721038324103973775834672124663842718104624215744291092966015311688302327543104664531667821396952661397240756821761593497944738056682887672515279012914767852298603154444453773535708365864717291638404469841647232449483885624365246107641590950852417941323665839649712283661314018874819954814173440791077170405476904209725737098621101773059580341702264223036593347221898416916754968324351594358540016652323693355315925360228662070294529847088734382006463559101878456500322930584044638743942509346021482656108506790343755334714360953467277201089685352756969812465435120635214836102000046786211859985211044632475173686378379725255790439257836106893440787123639669468302842879603571226782818905384973325630737809761116316281554775865523820794845192862134081192995200621516869368842083800717583427264889026932432898746733897603585734054503606566233268259809886301206830512599308144585703105789888759136543447479638432470305796053039562555798562572348591159840241624255871680223882942573117563541027069382532187092427719039387342807482397421917590775506626082494006112207069261084061201327320158716495826710446613225363284494272722880017957498268770911244162527601841749945456305994845241578903505309298288127095466655392781701642767260821069397109879571691504693139556283461981514511345424560217301557197927550444522019424249515472303749938144277531275024705211200506622114807315491709217001513082011272077827003600612265436325802410462446194408765993447897314822667643663279184843027318381010111503003677446919541312485833236217360250382844796489689305788388215856584514249454711353381197026479983331732163824312960925376821492597461128317120045141044488481561369049165787608548867908278375983236303131005989492066047736000929604877920273653203912941141248562474769632763821953356028695677354416079413508507377063926492424735721720148893853431721585440576751543788467028439742284106419535802964727106253572389608547611256687612550778208445166771884428327827377531734655821796680064305962711140381666791348152213676353785301033283265920171192339477785600668020503164735272761874423805484370986907610453950907307640313273772606542806648631036301648902191174664477118297790345808870547496335112519712567104819234356121103340340015718102134983863065927288127166390990656566033541420981745015475649512755133561297383982154610468545244377654426044919132577015018873365855166763094259916534690480682979375578382835111144951324161916800165673289026421855367399678088716344217531643130788535707096881685864209381615844556217744629979928885782815683274835720722783371151683781501917040673773441653819441867581660904666667897970030457263867015660673895158004327778572884025054839329246714774030384749889793715820545023230044518644108661931712448218265830256450901614051395749504429621434031856284319896382584904950875289490818151407383569484566274297665198659193754286934219047085703996904925888077969425714595412835966454838325439672678628139031687501623917517124130168968544512786275170527527422769632496065701369358625700431782384047541218664435797203578642748128258338682086144742219147243045034158422774523653246458067247689267651501174806465436403343002679878013212752295388866766645280958659629544655373479446991959317726218425883348085085952739689590653814506912679294760796813946959399237381064623849562977505995802656671461771131219505515412556202286026242356608998325672158914951676629073244013597224976164855800657524953486420303543685789693386802659701961210825037879306716416898138939073237398079647927859709662843900690248403912612204826160647125269669367774029661485142280356818259839207770373054713822931975224041679344196030461352383320333357866716431596178508271725982821502003738113087859692074088197271140433950560104755801901385376044745221950314581798564798761102306063592093484425044828620135271388635676240808774009304134514959567977826069511071229099998187210301813654873375403629043599281045934828782275518677966861854231166040546519672585019178969854912803358464307440693506950533509845438935709593205190030030336537296227371468411059295441724504910211419107291870213436750394081002568865453533830496755266413801228988532180747885293470761619165621978852226866682567859885785936855621800045069309213318702076937433000819814557397615322925677082662013903627001855663462412121170043873508698967590338256193909661783624258193732037677542835061477127093333215669960451949365340272413834757338369352670606594456609004224347787182422054152576405759906842532654679674952752900135097188355994540325101250001119127174487518609679757615982957544124354639145044576173762780835072103141767796009737257624778135901686959459157174862252574825179173873578594927423229749875014069445205847021996014989028441940072546693570549338766896952516173033363851392524980226087014032874054924560245361522747395658319546258126055098823726360359068330447032728502337321159940147305381835043826122641495803652179677741061662761586255145240144202532989243782761138930713402881790859756564802032535120966901578131435811930600529696758682824001943573231631552937608598380730219312069882754177030506537899763631429843545540499755255697681188311508249944602365670439625565117743230468587414080468087927579638443511552428984652150734689678655955068274654613603857002939659949294190090313177187705184252890138739517238452707294233271933934760970017959005642949787232826669298555186202285889218748241511400339638946783383765950088777095480795993234951574664550878860470291710781723523457705486931360849368348483781864241497419332015549522904165653796758224487490984811993245486261136123618544692825081762940438343131005104376606614260644414419941464537792043896324229907477262504842845713862746280300680255138304489621745445503736442921778106746220674652945852033301688493431620497929903669207343063296936292622014027458190286568841376920010689206279049907719100821259809700078480702787270259468830165016652899220482618515963196705123987126148762387947956906617746241185758713121521852021598340164247622524744942555763203495410726344994566048541822356385275541871741074679175244389311387003898326686720849691404930055013818680929096864320453292584097621315986551712861795621579111092477090689069878287416862896851024271809458742219089082819034191429921512154383946075006541833039307518865604780505601718342651225452405345857774760748733636253374315229184738602858815312929404078138787652452867648976001802226618501619823473594258410968489272736178272899855500482521716104485125840919968488903405540822081024820856151189376597669420846114501964912101943894672126071530268811253965227780266573808562367642581791946889207200736126327608152566182546838522589149420663359823560034905894227835633590175650100551648376365838302387236665032392531079645170808670712263570757416681323211927111861448363898030712131136201359818398623417540446501726807529703603652808428042147153908067244698089452247988320874061666172803721696165916093889166064529104329126362268380093515508508979768861700765258577069694191651861560252948364928927291054925099441192942777907685373622172864854017494301522470711188248275779347461968089564340284424232823029462945722144920484215565214485066769601780330185820891665900376168894087058721984691454334972090387872355644771337403297355668391409687690333609396310670854229097079299532985142113705894566359601762022283780423487209806869628846485533719294930598429750229414252524833540546632286683091809617221224019883030997256580132047108343677964045301905929256676211658178219075930054420181188558747618486504250661687106641836074821318563688877913320766066544323973040542454960978311387929821172279828582088417361429020368923759920515455770894099854538332155719339254110886697862455019512194805329494512101478513479310523193317020104060486600613595723088163685882986614545272003171528294862211898599915277278563326432698183992688262628462244020631028237524551023744591128686976643730871945221596212990599603207012090638578376689583098384522165322487195389166133557862305535317006391256770696723807325250151818815550791847399163370319373019841269873472799602305104516873678572330564696099121474796285576094876665057843470776757905337451068529963569027705451131865382039631870737487299578974095776952550093583252431818164325163100532191105621471684358266011336978067080077549261659222919404252995155651805225978416361028000739929995672765751299157580758145931657184840462336057295464955254507849283588135920094315973031743260206810727253577336025319100156384145760045993724128150601470149020561593362423452940240091930207071789930895582180179557384149893214653810130144658986844888419106420197562800997450200729824597910562044015265540748234173915968762716063740577266955656399273905023987775555318324471395049782409982513131192849405839674640430639213279240660601734175432005293387479963663149187563636270485985550005135348803592828228959383045908964390385598090528108552033429330176540622247932183341280482206180199088172646432258761497458803968532723021907739049143565936216953479578811099151221956326383651673605430372176704836884651441761498727981347287879144954131662683755293396420527328442719769529317951825273378329940564659087616036149671605928082710247014255921140328502126989000114602270108382718241690852242903232837908450252840467242768740822182963215039507015224375800412317743955518551963199217279589799329721360277295030944868048688391427592694896332934252683415933710431222843375901564460791822154799619110372404106663645204671783439158640589659189549172410939729549932705838538002740481076515836037522850373818483485823907083353491317941411762370018283146288822514369780030677701622623025503350882997199363597926815622670154480234796759230001710425730999014652845871546000321743392349858490824462960592921294499961403333698137070873290987659502633542872402114088700481431609730786321874482032217791312254143320520257434832576927071052165095078010012361267934033134425492810939192639774854522539032055481655070179432460505757939598126697010709358607052695636937515724780675935274467805327597690280016547379181445276953626381273625688730980404135268971103541797136069662096404282290506309702449607642032324007516602908087360589868333280924410062553833286300853011568844273013700735051701416516498159602592129179869286578093697972039550995036488311756327986381079782824467577669860035916373024946219081737580951947418853871095322244436073093555229953798005325164962099905384398346373217427669777910162967578673156141712348110984281626648911751975362479548874148481567202207582353903343830168946006110681011479482058826617947575014393531658388704323568700416719204746565408487194995297017960514639343188011605849511575723826931250055024139377969030530496943582290980819242279075293542532421829777773882726076578023117814371480850656313461815273043489063504563688797197133861859045765207967756420028050477826815832795102870659308387073791716979779238979301692506955839715720989333383080459743191734647819136570065495148892371922473339754577690813720241260333351773714802801534276246578311780030454595681557336204164066136120226794092434367622860063473007358852676115920123838803905680251300264732864785352823736395417268604282002421947117713582722469576154706210167460755697260479530901911590238282335261693578627705942919616785705704918718275957536120527931284398188740436668304081070029352520009050747153596947533832615688450053603893950724386400838212895192539947331018146643060003387485603079320691785028524275832035291596933663003388787082642742002557861118377919459371105690510508255136889042549212037057331535868360579835477072935311130093162370007357903918700727317532193465538586514419584653037922338887773337392710030789651959832812931839780514254651076374157543471399059965184589004207746116738205519767829054397472175812394660542183599291921526289765812339394943036822467096088183777068126692314453204676948533849493588617418946538040937090070589529436571240818309094839630685101982152762523145721531168882835645411987728057625120460411573381613562594766541197952877840030803945905168930898394486283946927248644957112008090496342898543155990342090768540799189689347926788671819964748499919172931379865493111516286869612063975878395641643121378491098460262487201543784242424110957104318792531945162847775437198919670854856373590469765108527228415547774649803877948857818501572146461989544047693029311032647911822086948852164814224441872917922176989368710206063031887444916025345016497561875107365709182364109389556863220510741038602516092845904994954825923183858342365306982432405208308002831804404717640613421459589882877313928155579765232521036369205602781055409466103568776246229165922893232299135721524341678701074975655623419661309144717008470541324055957709779952674867426158719641637507738564127573742759418349952763053251531132365163715517695416927458966720377942809448871676664044889600806385726705283962178940236598014021051057472962579788515809299772717891029879604927037831625705850313356385439051552330856924492625233651415163388811883108891077531089097827032670960199359382574393788670992076883903279004547471205402859271907694299121513025248605013995587323444741593092830631380433466660745420035908056741014880753869061508185127757306239075497710075528255228284049701710863586540131929066268537620334223750798659076708455465119757837762579453110113233822088208918099962857119964722388485467948758138906803418242648267738761788624845485334353090030154419230782894303403418109672389251875774768680678580584041679107289273826511602335753538744100906910018376144176355076598298377925851961851589554874318888596361735612841655188273366190458554763995984848899841568051215874543935393031531734514880247489428436216938214666968401274877591543589165397413718932453025994998476384535910640237707350201359855515401129125697384536525953261043580064144109250655333515967837096953375587721026209118054437895498159384453942634521980970375076470657739328877415347924534247700207074039534810868753438776264379565445703476642680403600344394643936695596464123671152197612365044020832044076461743824864192150438749903772841597431412681237435605239191210612143764799925665243622293366771328168679003233341680524322403916301373349962675189151620081906834843725624303472156667603363034807244648641180681111312510196930009683962448575079529009670698669974583349129790265048170899121977393101942326255761700520389555991346966147363869800373783696263813836987005452586928962570063739655339827437771639455083582377889994685854546700011388184289183990139785393344178197167489111845066417743623770374809996434814811648023879784757796584237585223155074871196749090614516148260458639608095263548294728704704244981957788652041030389441460644822539834580612770042864347348455554356190641528672009633484594636952861013790185468316461662565758952098528273478069970567525524670679595580475919659404981708217689367324345445040314137672034410779223256245595384323677001510536141908720110247673486192035703481102345001163811543508457032766058254551647006444592278553241974234038062104608071765430993159835204004694223937404076915929974462999862338690938206517610768241177911255705322544279373392784677958878932701890559257836849546678126746199207536699550321695206433022002077726208466727084600227057117468385263502487709895521418259817649860766315161359585081534182778339693356102127464593498892736006325260691570180476016050097328224450195549028037917448113102535793934954873535992149484272524709843713857482375634387864618593310926891859202076263606895738544167730875320602773897455837480675844705326652221531707720529959179869986958883600965901961808603764738193920181551866843355439555781022716929432120260798723568385204446891387616634540311549783978003999455774539472253029515916870298755197058854864722100434549983164385336129175129442821892845996752313889827330366251065892454570400889622958869667492345885907270051653201179612172109101721688674345085630318182767076543960953106952883149062017757242562830071631481826245861338091834683788436228506972411464812989468677581813911806158997894828083234364181850464848097587646637327728013182847141734694474437988431127693773050462831717924366552198394411991642162971002606113051049011074837906954432411351940631243410152781058136933250619082191922426709959081091839083055540105627563670411344066878729176095888425253344758708641766842246595538532346568228085532947965400822500298235070089715273630375513136456845042192782238047794308294042312249682470461321776509123679902564346190428857313097034766366182377668401948623086859193019756615164771775960265266685542791593945151134458917810274393054796773392971057158828302789039745608439415801038437307963185164993796142430079970509450673890151958807750053562117292961029877482414104462884989108649516175812696190523027121033921547138230567655148291824304242243883282560644130663674557558151933775273490599482316285184883928576459551529760617711767899237269047403263201077298149787013895470536004738425987850749320275327741957775206982964442168215752961866079886691654196342403876544935308095865488939518722112904512358077143899717092812856305528130146323591424419365088639274470494079373863640277610247280990116856597278378144564895548806957256362734609096335502802746663116844293584121475171269573643119161393681494095307693838358338574224529973727210963744035135094839222443988531560809499154266672923019918338803210433561787942093215694805650155516205690237235904181760090929897302576560536916335671096879020776304541934409430683384993048089538444125211138160571657572968911239196704462299368771683039754127519042588725856695758581551338372282400854063637351314034305095858015940977837511551384059430826842297931528987983758332899904019316531931280386824894836209533419239333377246303900658974242888722398104378787321390550001310193463473786931308399852588230639352224491453836638671880951450622250655596116769375754900360018294680653102828541664127174059160912514994785102853479726154792521379667600517575285716717400472385127592932395237391328723498975834105613838316046069200642058990380223358388114352952529403693173683791653404171608793767565696933215843249764479633530794837178131568112936373511777112863916646725895578484237849126830989819380447127051674470654648264606747871935160416521716727917600419503125048345372882959101749869838326490209727029496910281162132093844896259123966242567704269153948020871483160016500911645996548169484570834773477023450850429544026914744331085106817529787439055032700354355014501764035054517808260106894444453828531500493349637599145621712217782980677345878110838738481703412360469481731679783291910638833665188619616253922775071823702581015154234797300626173085709496706749541502109402114080716941685866511772274954970768619691436274415559978357231696259658067999730415545172841813053167046050020370262328738219005336334843953688619172511733994319329729075407659108569504223289149447129985918555310418313878956282375115620233670025117443604519907255006428253427491778881782914433210885990994692847406938280718182365669294964896007219304159483610922055940619917374775832601666666713528144525810860202479638259073508819885390704385918111393731226270890036624100608480590698515252736533585127507401392790223918226999315414401084565821976730877167207734875166227824051623659147127928389333256618761667110832312093811065778775895519428124100352768580126933224251134248949127219631153588557031245473814767158831356290754899810856231614957382338571614496176144556107595420783470437820802788923958501009178091438323179579620594307960187057277814962883910058541650682537136490058634623487310918439946595919424115832114815570996738514079230203255148412670701052249123465787179705521647076095970262400347040751696212516828307507226222999509346495482908790775325238192453983829898388011330156348682164230445324196684903861531212433039729050629696267249612061760648543051989978295476643380982439451540927700481672961536335148645911900822167837871714467166985398072376174390479898508718200898215641144046439070472103352006124428910243571436406266622732823509073818996893577883662450422731037113685895829458122748600410230288895656105188584954859762686742335682587640232905908898118046227328512634040855838682339647608817795653495482021335277814596567864169963851038915535396664122298005608473544584527500028525272582528307018699512819399054650934901052485077384881439904969984998259601089291082894387127672737692431497481838907371560911659583241993195205234710794675625881464800682876542911992103646652003422333583195325620841225593129599398944138249948867172059080293827702234836895466940888254339782011507544638895569451291527741390441842490541974541048413167645091523905668912118612346390264511287489394542031681017769466277327960711171900992011114295732914633381836443916520124634885890563425597119385908839449150215907078660379609802891515525267812608892251740521217003604360956982074998424730148671440389005409664667538707992775136202674058725342282470428024323068781282937555339581072028578954600269167494173539699526274083256839478497646118318009156326224226298450173249742990040148396806687204190362588713800016998224168710224079931675990660616595044474951147856959013281254516454341820825892349024165881023965811745362717208713386300006995346397537724908121335655322811511691300721305869795617960307602284771053575244644196099728257157953192379021939174734484109377289793511374876782250248189306940753070222106092931520003525335775479044010860511391283299805054440940484437237856212567257030864443810404391639197184962541175390463590593947317190064342566059520173780193986510088826733461767394139560431067867993018900732853966135287588667440456308051971042395840489636070928785148889970540074783464162648269459623831323569365448420002787002927684637745166167773170667421239825313175634282603989761397884798700236230224623146880433192020372960115526231231625215190132226761314834814999752057368797311513389558694903744557006226624396191519090471387421593360563824645928976866855104288401911436545258593435783560613786546077092572780648936141002277950434084779230501272194972241914137213713593004470016481865870331534609095581405004016833132044103113326292874541501094366924926471666834815991491918630616346494831914455971869192289455142212213295662232176301399613176300259260676765992052288937221562097518729817110072038687302471303151594089514827879599735740903514530077206903229955896488758543376613565889235159531410031749736957908569788494801168796822142254132036074589504098763745886479146693068726641443017677318776561526865757997653123421615323578052071381780835780932493154351694401671276580437592068431751524217963517026060217840100537542304087426335925468961589000831594372364152818502810876328111544475109662563694074889096224076846672601805597077896073138985833116902711712149189245580631129982062580950359727172172189440249291901834463956775691012400021045006021306261288775583892852393098456638401713222102654824311204861686397642883177112688548157539678594746095459096804940230245367849325664226999322114525100403304599128514341833821583455543944844477428848504097085002439930027167023158200449056492889009414628586746538865128293192104896040021523917427895357682797293117075952963326906620966663744691946062922214892009291964287745910792488080070039938226995572138102961570579713560222564417028729127979962054592085004773845728259171603554990261021237138893046058373622111027166390732513212874187059110003228450816266427833115725813584224766680952194697953352304044232270371510077619918541471493874066152767095194684507396053789929469019724662062059095293057713214894409206590385761695283840459760500361297528918921141459481763573842734885123902161171509073654969107830839062371146758693746654885386453357807449179981699050944119330622803395875046047083837968054154895370382045625217430417162613773687706710967662884802642387488364188600609101875622193672397233303551247886996296899043145211215883845408349655846444146941465138472235185768880138926323410456496065289401198185513311113806030900638672683262732656256619242168225142938190248710910470845603429429842092595134019308371277098388065328311713560798203886458667557510959682133441276174361640285603816764188212371183772211097975681734380793397566164712442622537431043604128687932665874115437698057432395674370886938078623137108589076587870439659631797078163841461789794267240102960296220757860495083190733366136010439380634857592340532117557780083248568297273173803069669634059458016032045010525570445297040448006125572586441218231553430491689712806025562393054219499077968527612907999276836359076007553769318934673611050803308096700034690975532993024871966567568971157060301578551151282294803855946371708612707158752599191025929310213938843732199241999472407902378703663139617769969943867039506297083407826829612871055029423693058119299955493468126942959687304947381549783592964307173434415951732716818312402785893731082056304279189792463419183680241876049434271470081959914856900692481741452117632449606869665225539145990755311306239630513999180719446495453821443428080925028428922830956891246122855560158360322879766963786533182790294459889519182012223285398493859669715015606309902957631507131850752051480703289355119941362004482390457578797819953769062184363871282277848674041801244321495362768776745412066142074619234625624011486790986461773603612658829524994844545902967994104563269731949743012346636212946951063353840148017155202114615590532358377419086465130198624423152506873332800465790618868771325449000702755601263903942222294996802761471199152570442600366723020039096824923463723519632227281352245715233625940713122355523827037023670490799776999118920646048290129867672512584060924379551302339466174911584071291856833122412137053073194056416973801462268867107922955512975954454995811071760752194961378881758289879984180313928919827156445288811248002582156130328692120809862985485703554288275902709093394268089260572168791897068992684396781984708125385360131267664055638962470272267823746048830323320471828342098444431081280152772348506603370543777952963034748466455212090218071485933233357064294945870600957903471948417371503544297075271064617384156322244670566854133003618111618568126292327509947155694347489035404282519417447428566160358520292669477396741329125600237700559534250905369856436336387403783165474428020105593857945676822861219242118620163888939672514306925097954180485111825267925557253597451531075512126605463413700342264243516096990529623519053905604152557550444787672767613642542074623024671634270481432407834215179510241456084862037953389130516827723954823350227701097817598970939439336165307013707786353599822376479471535600989880986887266124129530544590018247436954830734941351468710690714203668037518193817633858880879800374789103856173975703061292267372992827199665127706175127009161282114298950284956423801045347512697641895685091109694182446783368134682097080111111375645720768619803849373329283548063248045544733101116853342494544074078142011243926940458345284752972580279435135314196498044960196642796477886955126959140986151015296399753223097233906220187462660182149305710821223957485085028992200480630234113692480170528354086609906814973509577334829344952489156776705317001180233941987127106089997008609714928218443827429395188272124988176470071381625136872446349415769045538942674150238091875287917965043367208376534081118176229990635114822873712045025461407233742634127960512196960426290924414810108598531719634778737006396749544372333030625580047127883463103887686355611834219461912907494960845251453366828720262018119572188369973652945128356714667758602679128442603232937065659314142196254128241128583803576227415784467350687589805269566260303013107131488454788017924885634771479985242425068999333856607728882999130276077120121987580694126754936339401766397802636272636375097747384863383509699186536033777328976195923610854580122539831150305035696305194894118245044563804266114963251969162948781745718354837682489019990368520686862995520579244333088482528376748394128109594240027819253342142558439911052304353016564647148895622635586131742732463099864195151155305495124040722627954917992506892280085191090495750257721569978566152206372652250743562221034839445868452156893367643304095142527846493799262091717483779979634967956495199195399270226108251626270322549898374601456554869071777323730583307618438569818431564447038060902042631749788704393852251257725142108805705083080295322099399739566486056831024478588269597497130937703193228386553995653697884494272679314835905746397730970095509756497746043995956229425641944387780392351648838802063548506627124206178406571585609560011296208140835315894862409685717569356192114111563469845629074875339040440645646598248088581495856956691008087076707611851588552466594077878143237313217477870241638313831442653700552019691525610969696537877556391737050629261823173082452835712291932986289368298205885569130753806983435820636921221851033487525899381289272115861185268365887482162071356782604568010871185661560535449770772169542807512992315781821048158723581378114605446893375204187801943773230934179298238170127697943451229915107982815626375892006154881136080150481338645505171420334051475184237451266412904169303131054479405719345271217179241764404628972830968043447352073897975884018103441982281465835891460372352032500291752198020846796614879780446337518679282715002450978652142510291316856249319474213639576371918979485343024115857429813919390919603133616828363929038403304894926885382886663608747505915447220765020309714693557336758939712905057093818724200264258522150280316260473082631636704872304798557009291079142771596119704767853037862455251484991779146227919566965076617038154880030908795526543382926794544909919988588498079727698070423669811812680311699894830000809063561147085604702470725486608409855678024668988375736565678636982663016564061643549584071552491258582661143896007477768988242631526294706701492387027629625476246982439939813841314619031033850504040123849645913964638325360758631327886747830751061770099497494854498003199496349581475292040050620350653575955629211564703392833283192986324144694065432170444179984477116449082926519299727066684310864930669977797183077206110748407309219914314853598934448944685926376123213879199310114971970180860956434566760146114901578431095535556071673462006880882381778352209282652398485477419264994636019979890743912496659625634121419832748905869114374101230046694439231134347237230098604858698501495476795184222918706192349941455120182556269964712134229941560621899001482659310214758604852753311303944082265954018251058020106411467838636088338231711335707239094603730096032972123689506784868151320740348200384948655014908321469828319619096457016338191893388718386439322417914733500167630326607187974241741892044275128222021154253144820700755150416967126286778061500689771295248969815350523703198004569939698413834969776119672903879565453086988279326254025735229004884629039444375901585106606632686968998361252766216145498893033200805717115502459543736242292212174190043378646162927510264295980632851395954590894760281087870873565124003209467256757284305941768467458178288844710467312889675631378109121348983092353636871396757001470334067485417512075225691932200232273225669801464241078500629618339610008167077109224271345217984295187130013021073421224253821613155102690657751641232176404145995792466122924580027881089284523702593092623963887494380437933862765842396637983944015915915358893182700450372493379076841069972776184079859549046941746283449343274173408875207939432920413166557481974458589251876471901974152197844916281180392847811239306446384936519778986264990819508445065257018901679393395184901497736623674848788764236743524125849484848614523544114563806182274669610380945886920503065454803756834459528963410583274645900629873132100492961484163811908950706137300081533926186521705795332085918133793159997680206086587882401543370737844601794439033602255563912893778228090015593956837192393512429521490602947986334894935968575840849935379014538495887744072754613303444058415903513424564521405125578888422344584946788865371990754635940584117933937486214583661961720922926752328680776583137678672504445489499934952267071317437988557578147599551346616094821650544585397204734906618246588250435507752479060634585545786997300535559146533461096069938451209410554305944537229493338132658841855025894804613380597871456716193688500162309053174691674862264590428734956555343085104914558196237763573674196479337940422301091216093531863504823544778149539064887543980231221322975356223214972080590686840620759843319448153361207333941406054167136217368731435032514937337073895059866788355581175240121269071424861431349464453795195637132756749129832492829068716513475383901049603693420996707239983305234455409092764213470529094809586696342413010140089059788215350647278503168185570185386904112964390755613969423657047951197916212627090379013142921497825953648954660521150311694797727610660570264178937321060388389991743092005327597993804505248743770230860494093450994226250979437153457718773545716982458427848151739453268851650304377373811266790159354952962129543720649085270359298086064139266012195402731718347736476098416474593781906954362399382913750044458291531456040982887197865563032589808686883765591124835163175577533890495761562218872450777218188748627029453620379052614671308235930324625572364843645965103354143527546737920099129250807870172558144116759448841497536099001680459616608648334562456016062054438836605840721028139157137066725100087309805335517876092741209001507480631317358025909358720802272107659274122785049376398329501175673795082422921263727930349287914329058468382582459658338682673355930933704536028707544136803798501136191721442993297191588887239336412960303104902462575036492224144924936360533198265985161787876432297675372989834822978529826743480671669180281522036602315788742103601567365055025717277905438829989549801572282809560838127163127702129250834022763901521837304954468871504926893308437909673553967079987538482127932350449205021791007617467883619242227370012056191419482590869399495965743354688561756284645819124070001673776215085041056320232058871377316737623396019057561201093268018299725017024016174477328974375749890764353696196321579723849363423086024349312515757845046087714911832259057622642971529988168080189612922118497740171470958608630348724392961554057533243126722305201737349791827330186017370286472785602838416699700643764353727503164918546259677115833280510255026168221458424716320625862375438548324576202953015830447939527892576541514373206048343966703396459347712707161969503840853369177983548594230682945560497571956031442682323713201222970351963253237268868133279589032804634401695812760967978347421835290925335893840691801695537172664233687714077081769520577085576989164487517456519051465189478326668710514076794707887554430077418104669216427035491602089955800936596797442719095394717085098019594876983549566147277476032589677135680693291424126592373522803686316554542389781384985072650930353341532671792450894278912981589373611954819750041489970229104074221575408060536238804959437285833051489480652552350645231587457802982307352362110938927446979595203176762980137219437504230578056009156504926405068588603874267741091563334606237106752400418531849922398225014392432641930533084656289205018168439757134957147901181746860069413314449754894213722460405664847836655258890054160744215798222460950862112093161516241001916975085437745364088490860866919358914647789767159056834290146321952958413525664680836667256670739923434787648225133891389559267645939520484897559246595489983641784638574483350705888285985376897501697115332927569581663685727024255540106403422274178508012986464583312862844015251940275712743408061425298272426864729223596561617246110909017560616105625487254072729660681576768130990870514356280990231856342723416256152012912041703608685544550886785389047891650845753215846130699172949439327960841579029123349703218092168529914574833628216522752771846813930286264364203763264674581224176561524973376737787980234231465279775854998996611232961598452330247822891527649573032953850956056130350408796890998145570146322868912634816912992264826494331036321825235974573877030383355220682088517711582592399593115817775611473245062578512230784972580327352936787172474320041322703409039828077153246979378959796508793517063347846282753275136860412352381534965485722133484663324941245608632441492885952954810764145630327363861257912511107267202366088075098599059157107814719240220066065179931670463925152853326330997130172115989446302272176067882297711487069987301681867568657962576310666710162198809426619456157659247273402074849757471729219016105183677098076597493185493797012210451135040173989556698815137228419155987173034856112571254392020452588355277590073039275880021221054977160156346941331119270664091538870418802541917000588391143899492761130294134619154510027393093309708775781753733387050313910347319031469756815803943044391171674966524926757440145836819264651300823242750952183771779893692324019032575209972530382372670707346395388474071561621125135390019899475482377588696908627328830728878704924101766746070488822518946756460802103017531798675887797339908792972822405503282976744683535787048043711224391983127996431824445989934383391647073111123034350765790389973364599053499276414253725333443653854551039235682683871387207956653614254145754295264692598544651522743488566396788260229676801897288771542594200159858221961323667998250953197529695755602472675223324352394512510589970118218587983096701093626573410979117039260404031277170703502499338712200194597930484676111289204924291221664741120839931211065695493325999835770045143360273835656062354419416702015723844730613664629720059351050997672925215647115805761270898406506898752694215531774211097202164302208620619897365380329011457625857754630040863828553839237780744807942489255347944594233501936958311824790523461646770084564010399224107051286289733260767420709428962525425918125429390534277218343099661091333218168182092740942565940595513928998202184510601877484183674604470937177462648208668277533054777254600975552815858405470862284478152967324558355992625797583681869956570157011721319330704485135206567698177286240392024530913426014157361085995887231887427239411142893009433065872078531718107278544226202955283831303524935960762530929605519267913023451701586696920415247016095856901894325897476303360420847135783908561577667742544752396692988191208169726827584805069852990499883876472926831774345782233115901779483463934749917066640124823438781440994034412152090328816392648276286523422223520968978432158544271024792254839570964565577354408578352622315384719888006920416865623253001121030015482417041438181459775106443036982700766577385365056441523912819167182582494707176655312409398825521531144737975141620675352473090350979667562320877230368418356442621551009431987331590364854888971853469462458890406343500535041038092055099392308599251757914798984283730190498129372795567560357674880965712757937583234241315247889590033261142487984342113161542816017947757039891098345005977542865388809419029068575121398204987176447515828932075627006811991992487892811821665680759384237656641954759475509551545921256960930199150786613189111447420395835260649197943255288266812765791819856384937269138663372699434347570204780200984895125091315966745295251244404568529060854866842281839366471413908542189934547904256312353264907723936733187478663424301011302570268509259037125218969736301757297849856554809172636222156052254341220912507021108060687921700007778306488074950449646756501721957152260352773357498076541050666544418161213870272487225178992477948587909706694122498063513328159948576636911712590720438739487756554533001884676951218329112641098115747095790077710330134291928506829679149861848747507159709823084701415433164097262140971778547395336007066607990514211958512586067536152533411631681335070663621081527432545633803963698367078821655682234224083631496647215225472762027555983328382586265898990673229365542445864306223267351695941495975556989630025806463197328242011740840796506020741989548832465136212253504328951507198111387361935754591818026914856285755346716767315958598869337812418345553416571288681267233675195839971164002603740648747362072166062433750796689553096367644423785079187952442784610284574440484583872203516886924757255403797540188859921781287979567985514375364092357279035245805257750834560472668533137301119170796100553672985961734495411377801600674443334370461466715143125415378907774574842325650228169934033811772691432722165664129964086039513644882450161489661135822398389820963099929795673342815139592371528750439067592594797916381143505001753324995499756934019780520546223629657391980634349413141310919994027504287067858851454054347206939817363141276166580130817010448852088647140750806702609335089037380407683339973200746868677107311628141228287536745342806332241619496820666326239268353470156825152334132462545878377006006996059252625367874665983079006581428952904128243378467796838594298255144829371269808145256586464049064139584237899659416395930213021388833539257791427387358116972105798647150671030029591167723790527189284810387121004067567373280559144580023606427719098045082330503604638935701404245398294158697508659997045608748842089282888220050294939044462131025800738913995644187197035897700411766985390415140763836687502025114488904493274029771741082952837052842432582222172714357815826669443945866341573351311374054617003165660991518137132623684800722802127579009022764883117353385789902627072853440086853055745147278441108864090253322898902766701072188930968600244004989893110425317414843371350301456856226991166914434792597511546770350897153821825793548229853194858690524655662794747711962935671954592321960602059127539770240278979104509945475490100889377159037090414886423953158553720931209494675573899222174727074541526570690734767704510634549497031866605280710376062580670447536792107262978574611894819382972759982984588617366577321389698421756219423884002964930261623822036679089164836853016533599985206623840842126797367337597677081664773468523692148063183616907342392015187851905470136672681987004374964996470992333867426864303357035659579094022252316833712447114863938016419776178046170879909263308471617850372300498866959493337833329848926012029909225297434224564004144927624193777790379477397322135754109088717436029895414730301817778621510104200938791898665395992392424595438966321558007948864230723464079722624000110486870824698498097589930120959068215773639395546442518591956197137471650035040243695678344044286949618877483724353062983746166954138027782660755122502825596722349021582426140937204058957040996236851817088493949202163347295797246751811464909964099161848597166924984897648538517026349183826548076073368221165632278780006568318956352106188359677651902496791777071001129058329523546737586863727391065808911278637944551644013919409118967668479095036530831322752574654333030351204270572764845530053179930406266861150292616430784701885717148052139687570831942025410021636984639974675819822361298265419001685712583362694249125925433283441567210033276990388480609979335208153281207660920219911891738018682744760476779962068168385871551778635600571488622736804943770344753270579504616328529057833935744773829891443637713707618908921269690645258471973588338980333532648891648218152308099087372197012775825243168994495230756622566342434802840478278796118485639281252132761847155212492925106052873657286944586341292177007694057592496939163556866989411527605556738898996037904397594552344934715745747250761670010303693045509812703625877218453880115611377151782311789966596662809229184316912751501338753736105740948951650478118091491424230231780029942479280276769420264579690214697895414033467505133275339439617855280544918855448887728383773679084370736082308365895373637637213595609324275685040014211140477034606829974754735134239813652644871725257527257611790082156445225202843278555682973176181623530284530238975227919436981101499588730159001142198747054592341273647158953824981814729411704894601197635484639301476120960386710694401308513143901763027144929973030485446679530306204322847161256571595842930153462950745635720892715447187062324056622318132024091864794208990212909426485233653984601424076440865932286316643907190252501295950614272447698371941165531358465839617086282027088400954124878506557043448513237530616619015737749854566136113725375005116141860205269121182243029341573520630655339465349126963804341753846312136215194300797594685981523377241341775145561966668359615111878755993938029640362849379564364061023402484688179103259300013380689375283439020774043232768872838188338517618408538918261176301105412546523799014050179075062370566716968019049778213882882421552841538589961085778870056875092599830740275977341083123704737191578453809947479214215290873828348452766478010280512186479984289576162936585491454674763099707018015194978940708429780025140045657321679708476329208327682929011843307769785704603027173585969168847560996178374948064664773448474191957210021572431651297340368011138341925887488618201023447083631313960731365365223987993479548181671925862150545316482598896553631743856221053360573446348205694107346269706964628035274170664275657795999336008958434965412676140656637916333693876071183329135320617832751392861758688318059628660139498653649271157933609775285660201204372242755122121020879357655235495657616047138759786110969061572790025089378883902572356039014614504438581204364736977704184519220111232957812853658260413910681557065525090797992865947586216700499560217953460486203860613187771832882530564338469347195887966056422475673889922416030569253497030461521587412117677356347286962120455778525976693648276532459916515116085839497751244604760749545665694790452869190674784855282698499160360818173909247180914130726262259526067445391236643177035593329782480054618138969936561429896216039073837490670033064762276497659830171986772669151289813832177893340625249479064065534734578284368220637931410207920118713059536722262429073863526470057937869143055695401672853827408941686697804503995075780706482869337416987746109645432362827367849617379103093205257055484048724533410462330971242940722962062111997166377398388573579471751309218071905862908504260555664384845393127581337797351532459623337519339408213592437955761155941477220159579291522446576005248295273031844606550351877244284078694464382745407800460785740816153569430177175569229574008187805891663320948369680282330837967366596437516075458750923711743240049883742301095682986080194621256806931936057586378787302199866178075945312829786011904854614155889161750386538380957828774698896044633791448854713309123522919244993642944179104046537895106216955136706435358642479448024012964350093886503061515697242897048136087249188269113574769912439460172017415044021734369832939732409410432894099467035604797383351223886083804730475941462168993799222929122572905835633631490295656633802517687460090794119277005390589120508062117226290844949844613305602630303648937055767976160843208874662353354157031383618812975690108409411068398214050958129765926449125782969899813824652487828743273972986739198302062660129929815630321585529470993670232601975905686394735390420857865077699570471415035082450755748756541533933908315275213680479522453607893992331404022107958792802093295756982502148872642702627369328014905676516522766256026318724403276809682579326145003318968447445976873384472245697179360107829914165140205578010385133542934205420906514754375643512026254409062295239457676061553171210448742100790659121502252441146589115020126559493556151717558402824666613049085144894565311042969506190421912333677129617044789669059702787447840913537927310359799418532237023075580453667497173264281278183264747829348289422133480958931745230390712632102338439729919610199672353225308712730810800614651732759208213668691551006633332366278278494574280962272538935851329429326809204196381359646158263601404062589091329211652737091260205956037002722414161502222425291578841768548805951718794223815898189244013506531790790257341047457104935005360348918450674004679728679614345753420055771530800675213682969627280740939222897354916300553099568589963978358320118080057641197176456663847188991003560644055525806773954079443764675314711528220323991347179879046557149046475956237964330027322467690952004594307053338453643031095536660944765862884470919906296925443092308749615862665677913973885925782362387613929840034446224732201067075623413638650688974826595220862794215413081231570768750404502373570899195461497405728131907434539400915909275703423901921565422496259102528366194338095391611103705007179746139416405472946866952375260330048450622768725211758864707313264955943947076173316520001198540811367254459607033853032242845590015338397053764989926281524507089950134806471703889211869705532704575828757658124012046019574361211757018501000583795339445735608676809832373028239203514383971382720347800631589654389872586145765315607305032159886928187842435937016975366266917116068121992332109514138137081544033124812405891022868649185221360866888821461919526386244696088566173405166153912930959266321885287599618441527883326850874158817130100637220802699029205213813163113532964702714297714532390688158519163049276905579840747170866489323482756806136383677736511609738682048220649922484143310013719153624948115353115593066982168435617139926950378181932686482582851264317990836154636981490025005076196947807196801698291408466050995641110868864668231726909197722130723516434664051740509876898195341210319417409857635422349616555640232060942908045561189313164183426982533690496195164764144514996662230833530455077773667200008694891476290482132483380559677318837480702586393821980750450384739766450522737404799116344780650191189760828582489034042689389082114387976767549136704333419594253236217865951768116619303943070774889677359904887715110545553344446964646541974207336524596317157715527757299257881346769007213740440814583955326495398266884569851490617548244515889371198211661076772817212839755055042293970956576332698147203261223892319893042052053470779133116878553907466360579855922503020832394197861020490069715451701690796264096328470312579237849858420817169020345693204874218418813001505402378210143119743296124243965743866107069958656541988143514138372343476028770165052779250863666509155304892242434965683829393047697370056849977903077532461898032832293675463998382622460097605162689985679014529288216341714404199647829481678276775082163787272045272553032196178454608151970704074473018904560908580188424468638985534351718048310828057104972383057861673070211509883950773268169911591223053796488496431114182878896727197567517127475920493672330239796013825829545850678131258658880627021498013203049598630001210013541385298131576774963564476035273049585337795638096125095578510988321728688207804436144293581621602044591721677957423441913153206514847728004098126303029455517991866938986133288605732666165324918580810696337815792737345062049521931354683767201212534234941630663532339314623535117584123439094608674624484491583471479153592115811788049262843579380727982090660439739380442617631053705873127321236478236015796743558307802379025449917074683010310756284654874993698976619809101143671644493693154159529346310002566680570924497287600977145536745827811276187652763669067740104578836361341045707208888886132163385891468426314894636529907689869974404912149638341942474246212163764844568021860669752287312983970118157537624217569005427675327975025927811953335755292811086540383221884130840699736146473288909449412729280336531424810130242959189304125344294714540692822294304357176875840816596135821378286790353129810755674604446589480060957144226403539486458802900784984906323738314118742048433614402721636008381159167647017291148523105475767180688958987546215670472405895945351103016258645461953089609875929482049131926119418270336750545253262614706768190493289266516974251049613339361195961278438153374301641056398648663802805353787693807225004078712579446774713329086544101660609511920758360264129712657622447605714781869339839968263256002878167026956857308496538617323553690405712393139290570262013096702538786452176602032802601112777181771145984926188710189143519519281490602964662928479691279977209697459011568485251037774776568805768059073755754573041311162461085819450051682290868537525245418514914465718579678540334883251141549134901617568285013592699946665965037315100917497851336515371890766104021774818179102477744313302177181496323941323585107975070931966173922289950530866774826684820417712900707182416407012700783688372873159730788471110208212947213948715445580255383192630971562046514699812544513889578358626655609613723574830805727934717604249083769474857867277145013197428192982291429843617633609935673805029101582744190875782247678045503340358659062059186015457086473574396391405956648140429459704360333562940449670702689140081944912357009102489544358990707804598731498609487405103844337946897008290843406272739742364325462461995888810972850046356300504953806476738337195714497520505945242060324644717788881001775850064567979247117763977294899953665894015411916718600377986154868436763711523363141758730869397712844667848057215034853849500758993312295482488760394567334686060499765295153016170780443017642790286881153485015567234025012133615119071699805748072207672841412473069158334260798060832266512957567314556084677157283200334940428708724813419600454330625761482175560139727875178005244255455666080224099434760180399488180203824748604804111863959944810343790452051222636967826247447916924890388456935420706887935772139734177596509019226560674228130894442538006567326288946061834656857598923295738683875575936566669162379963477835381223780677417363539863139928392393196006940176784068749279464994326641179337683952750294006086356509165509533823052837023815820678344317690806884857210888449156229205176071745236732555759151570444951487186138426859341455290097328283065636686528408574629665452669276193064760185110014295624567492997829033526431674566085430300085667628250131123202495292719239482670472772477662094809168870366300488770688350218065213270826604050572825623449932235986581524912933740537978757123811250690318131049740079667559007071927858647074900018576093590489735428821905440603052694016907239732288510559069909727032487817182495135364419266393802600174089165610303096875563381622101205033582112654106519658930211833150082797312445865064743912967068751820435828292770302787573026656389245847923012100478149997144810476819143835048846077396614618666643743731672483306381491371333705199076141899393037066102581225355900283699735862730150545268026330370969149856808053503543008854711204851848870457691230639424535091903015964411792412203882773157257745350567200478879545546512624632855309817898591359423405190131677389672877512119615657146356492048822275601074594347845606937972477074742188492637212861539143502728479803368799834979006055159782400814947544414573108146262024252750831110686354383462249418835577542980398672860104021485926270664536254304664737893474900284730041524029697748171000010448911627167132673474108903529849923775553802378990319471296727745783132133529626885604994275147901364944355542918768217906647977066852711942442495340812079522959286470708898731394189669110545227038545347428721535848808489979052779859808219585556108128667663512181568262263450697273328468433959329071215998741987617319705648165184800650751067334036088004571291354718200664320681214493091176010981423530940837250793387009149266847284821101472729610688212434211331882031544821221505206241691425576639593606607892618555858843930074481456155515820534038082116907433709421710658411052433636835003625018838075683965062668876756380078476551820092892093358038260389655436417866227347174701362786862570351836061486384156489471299923510270366315570310449704357444091115652795586940403244264808033981774737118037250892511756225353740291362949906521840841883960403391005663561809441679636589865854688775015865835689376850874674046049893934912734283218818502596294245533184755554070677439519404542114640534290077645657815995170545017477012101419211472748799772556069531369716869074673077214954191331569113397827176911478545679137887933083548131071335648978894607032677840599419082954674601297929054511766891237838845684683985397908437978393333457097602550118283899770645052328061282375693481779522739121374741847384421491375085320149192814057219294591932546568117200198880383672146737443614238940771939512993861085190283586131709440452466312232396943226143420163133821159506048028764466814509560813959616328684211074025583802270612080501885880145499456094647038066536210400072234092950882011421255937264899102234311163322782305322609763765664686093550599788481624544408434085462920988141834536335925523529378744837060154441545897788229245261390476251381486471143054006395101722896990902473990316964926366688521205926562302918799885090725108372526869347199806875118876255697265728503866724827314133833001188495083103111243731650015600936882966278143019771237314364004572913656909864184066287867649058985214470469633863455850303193292527069801291048079478896175483402322008767217030724233969953372044108525936864765164137425596904682877455785952212808933886528344334234967960893083220814111052566047408555981988617924025027706675433702273139085704541462801143253153594612100769426949343811269751965389350346742087527427005741013833558910358553368683020627638171966253176618719367723827392208701653581430709969391358625743084864766593223776936879987336829450225539785617321335153724214902459463007979534828925660836003015231482847890014372038084334701310475947260160847831160814656313436734025832529100234038192414238979722743604498352061756697491042122534104890285742829754030745959166388030903626460387948606341885496623090301604936382605793656478207737395570280701022604608338576389858346449626448532469735740278918956078725969032342172864677938423842353416984583884115022127749144573582325279806470721864832178026435662346152153225764427022996336132325711277292020055206531482822422435763316719591697844484313300027546931040156879025901638883526029819914737827182399204060075104042494689595161236228987096237660814286600541470730658532386144553021677558930991698871076767796434276757366605709566198848408948242508893011708224307108586103291851271125268359716615027608135353829226884905529190390288213015047673918001381675750824147517582956897764195818128138341999665696617227738211505076863670521797853362726051632195800674395370110609501267522026296826537088666201284543731365459504096603263337982737741875633151015902854529506991903771339168497907645508900543219351727424874220519231133360231362855440467241042036165062259193631101685463582764507678994462921370099334929454956268062794611076723350304132585119664007023660687882754475811820954212795387812462182990203354068978190890536956231433446611007816929267936393584609763775058570091190563207128807502571111419003213461392567739659234667012814119456017130670454088674024083414097993109107837247793319625184529836951080368292006209362970843480560589269112749077294807466538279645070051745401830011225065175826673824766449999529500429944033034220374842075901224799465895939593780808695161058630407319666280376973727470832237570540021985381615344408226012855889431250506670160591493931257823438163659036687322464540647411157657639596710205268790134102956488490073288316797189715791164383636615319522964255685107310870567078055121473488807078614144120742617358397275197797016448196115675224146290173928794902870700565608386137071075648521385790785158354750353465973014068355661227783001216747080423396774117966653698438263014630461995165840149510537539481692220791644527674256491408801472454168308605669039801460439259003372832270511916207665554660506585255469213056467642910741667667761659873251383962865186592296861416601473820316139660002857660079291242311988038018537167685226839778063376622828253189407761809969523654919132861818647133434802892491892010222691708799914329285634762666590113101525623585703699643352713393890029813724129395964044047306686368182246661713309009562780025989002663977472573715541024985047659982548339714839575552783649404727373687962562336144824898488814978689377601612982569899199269816769057223253344647648127850075589742004484235537835139320018602323041750107930582576212822007937904439822172913172236497797576848528520194515428927932572362906595755583599184395893612311975216789282826567024483200705684153623771904663918681342672446854735077093159761285113274485347730955000787409674268946750999362858443767336957939039365262925544619991430691951105508650501808653730911675587772149114593428036564832381748906148019861244318806718833244289715788171288782399785266737760623610192328326587973338043475976457489128830128262363207440844312288720184488708160181479381142313267362236474746780725965991194226038907792833333659336121977743372229921408885516471273557972133926873538794469186931203962438362899189380876819096309870721754494372139373524496821546172514791178688589040360880272385389567900398904737107634206605430338791296826684936138593817998101095303982031185503855425038493187094318284105406361593582498363064693783510931755871879309073198874678068294692502834140080962573135765450922231002021768491054327770504838095453626230629738098882801245302980862918788539245423716741427680600161191382006181548890531170486103916570079367662073336793194185440346024121367602409498935163340212964030672547618499639727871668552252301076542117280866751162292100139935179840846183726172106644443156078317126540244075996752351581104835638272072897878057732403093790298428960624265455827784845407572225276279297152336532074389300975507151192853606842071301336215531708230886420079095076459345257927866475846231540523571935072550014092381240799456806994303995850001088496127122010331033395557235314620568565974152426470908428789970598732713148638436865132687441461258182678387064498344575847665462069275505005861008980507753586974963819076206819920576116087123594161120614850146145073146153978072439245697809862631230996343258896565076724226845231930171475850116413844126433391930842002786917715887077157699014858109735133514856388875638786725942481594328425071533180039550048366929774912660543194176546795273104612849500736968713146315124374137163239046634632255760918690533536365025628390678886455489384996897146458757758793789711167085917351044702688526939926517485651821180231685055978186127675391300234683246189054370938344534013818577325951313975768764945411144177362903602059934765528232082501175488379158701287305943887534388967109859048707758578223083802741386088198606114411785468997332662306983606577998018193820103215162603694412693529911946573327586913156761179547349919004380830251097973852981052139617742837601446564295639720210647918543027201039970655037198627672800382985959448312022541471431723750879694054317700938009403217980853201853212855929513862587197571028479689116965760652236431613198763353357530959842259608233643709506618150631058726183742332419282180254555207137274391426551216034581251225134068237585003615565601789498222846921977496869356755968456069372915459958855012962045770087883622573220756736306902602321048555575335157663840894178458529589270291909569941822291428858465952132466705879903922703000068774752510386776871930406872219754149525032293052032595342906527475663138275910712877429045560070091444081799183586111382407109919219569654867010645998394839601421206111534436371029099058006837058972112081862307374124095316924852641071482718629216667155965924449749892182005325701187385119948155179154684578042137885662414420957511991085302212344132680059613021863620700796761489526307102256372433416396397534287319254917597121615403821258444748917856885797357593976330897607552010583528214558657692991141479366718225916830955230121142508338240189384760444522864205880939937990904705271139500558329115295270126072512265392048148907523919355672898096369510582976677235971321476091166328621893309659351573760569851291011499561978980006795611789434438088721231219102842682979722092728780139848995558129907886739057812604480912975985120921318528651981045909671572322798931740155385473961215282354987666468507516715448381700910725292763170501968043091219723089152158541459062554961972850524032472983792968803352958263541768542891573944265272212103659759470517581029647230607299098460337480813914332218991128951262501340826063178180783671854452697319998162475389642634426607364574121333139619780757533456257851459999248653496010397059601704572644872245891771391713901399087974660203512258943451556377362971520186501772215972241863360630899837976467104150704476858192692197594997612694712212469144366188739746351166441668968299487391615645491053925476720475772666796574221908619096914684680133212301284287762404093953797959845433053442943264255057570620338490809000693326056137907211516467965388656229226826985709322618298727467716121502670921135508102234382347671882046697509482047162104713452426829329547538386130682377561166038469353862109775304632230104243015182689157869065540573170068575260764710427573642606271469183237971793160525757438404447527878129799975500635351793244808913512567380182969880981216569190388874872679002743878321947886052844535569201527196721157593207133455521107313167210630566915585295137033438604145631017267958437463922414919527504152715030338638382947555930331450651281599814068632059380415782154486537970756959226865977230461299276383952282769751909719014157717999309621727685529367256333221179767753520176150898657163675898831324766405452373598312608531154344583099104425527696917959073098766643562298262576445243504783806584710636249958633567989578704043582148757630185228898182328469795689948146808739518953546807438824934125340031017750591417480238644399318770314194505217401627205360299672465581038853190740439872584596102643637972772812812726156297473212626705740276563752344885430105810728376558819786479105867478163610010274750411982236540452070033727663306805305693065043904051201184438176012911634519731283779371426331201598689605261115549130445321969500685103800710024314976049179501138949464368390429991618729938325759369637518787773917696914936828178890829204209525687084795829439899881959626485102969173545514808639550208149351717705099633245424024627564077102238844195476161410586942502894057855829191477348541272847036841187565694922823031814547551308683452559811373099482317342813467704480320866742626824319485930722535345387818363789485298941998034368562929028859037723219817546751402265623684547726732528036350424216932172022775608401305692038581238724077525589741689987423061090819253299515688601174106344491899123226142825296246339100094970021150556165097662424210261423172758768980219559151447274680430435091812398751127140638472343606101983256629651141212865083254499536288194099520882172684340410983252441560932220588167188826001508093221134173544389634995315163784367469820433855865621910112986376603786755171063806489719897945263756662823132545976354542515748315894178882117133784893692090854656958561336874960846364985171654010596680859174325889346992296541979252321636810846632055522270134840777833496575223057757526580981278936875989613820965077091447284472276180918670149695237283095258299178114557415303522949219404299523556064132766389513411586544248904092002493009542289158147407255263001507810998986543561006758144925024542758124653490687126693013622466543866535416981360896910724646955844588957251648573782294393025676187831720908079354664082458191020847351365566780088802968732185252730339661449869450619268178176114356985656891570798224135675479621856849256801180104462039279960578523272566668917442587761744499027496454295492958704642455695848599722775965368236026812234837268949727902506122642483495002672524802627567260302280037904119885604408175916955820103448000756159657775178306456977711063587706365072205123361182687590545336737362973683628722475342159362601843870802852344743354517255944683808735516971296144625586172180173707464077592239953242729787618875108881697170070896640005889274611435723517893299042344103559134483806594826675935515356440769799885843733025065730564614527954227041688901763459161269741523529596213152168495994731966295742709582696093421801918392088069168210190984707509088396443939624546106235150975789075942196863752134738531809819491606963135661508768370388890714049358872467600915631647661767276578160778716250636833235434958518626219864631606635995075427460160159564140503857557536625182548658759648674162028355523815863498207587133832254831235507565027302325132063425722605259918734307409251007368150907231169066480206691664841892178402832391464300554435854384488838580851151747110177797367066018303659597718034230028093459849380776258633805047654145583597423475270406888437014067015251382137853626902145397956409351383867618887989792544089851977357128176401451325772631016924618251077542528329203492445139391663794461175506283553822372180965659607905312159011643082046736847157737315364522045700829079889850614791864338766209660138072993913254784640359012847408549336524299177174360477133073355999933028792665606954637919044332688549358343360696803250324298931880765733472903752021660666563832490700674307449097685876891306344697470763147409882497783308687430717827938540132966353494042431611604950437837403532285448270321671805016664477404826462682787011501424011908426365554998166883428104605725090171269798604740846681943603514100434132139448241742036213047457391315289181331007592401348786424176614564014093959227374077697354296102401342430593630373272816625921661849434225969255917715785919728647770363626610265235397328985103774345450830900292618431752470664010673681569455096374817140206545343197246311170812935342020787692199609350994590061669861243820547065877609399871664573477755760229816847649861060984292263120684043567112836479877287886771617459511425063198821334142535340129066897188113015322869507304023702292952759537137860597535933160352155818708390757487116702729674472302060708137843646717323465886353217630808924944176916161206199317421627579815693319012468736955332601181160549764405956037925726021006042492237776889792893030352553450675620957207556211051554356633208234731592762412409108515748429796054801358446651940746556810801376393602750957010789797764765194060428306436464951194025203623166627886599956365882281089110463451223459866247532218759155799751463106957178695926158424224516839793939194877005361292421070393125369982845774105263808476689112785830474798896790550539478630066313097668435496038805515613942084630762478285882368961607434027998767831292003293019463603997225922539449796911003414843973540352479042539796334244225726978954799292481210345960591640732799145143849313287838393353750230985960601245165624159063685808651055674642570138761833596437235635988426845143294060058667160521806820058765038312059668714780838419864573574587736078926880742194234639011906721456955254043865048728671055646076768930483440943132718027384822712281392796420572792439168348310370624119233754696179004619680909833128247101916915224566552645639858771588833141436351348783214534503028261666280843596025264299801070191957683588607158003297666608902001024146880170585262947372987315386303339913286461662543813376706297533954599679808938681418059212623167119048859672597943544788769498882684598043184851715411278572896631519922415629540830620970772560804324028025814473999615083432646746500555581795347981568546819565971796368601283377718867373152261399016515318047965842443694682583082613140646972194802958614086385790648909284814549522061036322971280072406927622462740096215189448470522670708569733955392675945400386003862382074593848724906221057700350563134321564468391493138624238927920138567950520628727442308890820088015184920016859142081701694252269979835436315853284905600103151307211331420866262360576295396636247599144330975615853349413641618753730445779196940158990529305700998634125054128268720021592957279149718896849839925003347144449361499153589091278991586235570577608419927900623616074683196169795564399841836679200728846378435380190781574380382306249054963329814951682963241080810858301089837141704942543133503060316865696947963556578345915939414470699033680499140461574231768309487067488209017848266826350476495855332246566414253426783534870058750268924208005056363354700355600650342571989540112481530399273891856887347024766675593107546758825571399450648475829336396849025454175955678454195904658769432440300133706098794684927931921144384636925545397936250707873636556308290615630245834493881186163059329658128170581965576954173233298062270691625288813884478026621210094477642848126576232248815780650104829506348486380391831926478022301537089118087316817927715277171349956778716469313327546912533673836346096583053525888426349000058882586616161754466671150179980609458682981065251951029047226339816593737566200129823240014399995718042176080236279737526693196403833223321684736652906793096513850566987862998110547055915337528488361725499771817444254466685862035954937046795455283427953750013114853189187130458802183030269521599570051759854322405432020330309223934088074173486887155660854835220962624408363743230039743152304488081394876758107433854773008730795337129270278065055274676599356027218596123933888859827819703273019053512199626221079694024959077195106911693661194065259843438560649199154609867210340481870350619092851253851454337572603888438815121927816074148458487110909665692002731388178503709232618919054242142056318055746884919405356192579486158666478252135675351866357214820199797130793209023744976344604157525865672486922328081694182129932559023738064965660783928311631053829270156648073569459604328377542844859971740236661047304995688913838138161995881065592388439788609473581590808396254780462945255376153431366469665001989453223978060782438512899688358753605554842692373939913819986052515224697609765314138165234336421532630462595776868271597977049304822722467029560696447383454937244346648739733455561007302739956061601469351960871005988448230300092995629314680456912323891457639608500632922060115022905835811978437281967855417739373391179856393877756944539410192192028129578049520300164627108793273008368787397310462670450707777286829135152700028871675908223114429585942014689561248965122543550156765736022997139171402540295368491711769772854924588406637024429421512528182818316370535680159464942095421815793821342224493807805622666616617486882364390723979160282037416202094859778581690724086618287405436814997040591061961101166528645116938648591807719525268870987495391970181305940562606601277975796107948276661718993952585229451151130821387794133703339377012568559825582764576296829563946666435765394886516317023168343426690784133133085277433639944363858044844284515233627061460614776191798215701302881916399330828339280835348235679734243612817792353885459971711263351845986803989983413504295168638376685433035782225738513863740874402314046618617375584649019251001135828953720483715098376031633955136892935244258795058443228595812889362957670365040225781312506537316746315129410680580083229371453065708569868020212213751952669005821311693365514001730376573771612259968221897571018592955877427765446144942453536226542348293063127754969936523977011547221947334381532964768121870290674392565680168225281561534339950826680348607975362952862954790344494079075858174063643142442770255635558367683521508701160055237718796511865115173690077590214179892128843565387091241482178633542402488325803413917395304936991151210109992010173607340488178113759182920183107562085165989148924801267605695089763222558198344872272499048760388095425894347205857664685361832916218230794741358926296226447563870653509085168937885719766193831278611096764472890830939274281543894648507362425683840078222339309511856324465731154270351543985611184934568544243573117792089535396609124719375802321557771885368792440245369394295880339762312271548622066335607829799742518198175989659293457049978798187732287462968027892699775937896846057283903184253013316832723626542191040052297272725209973935674108379860294853758034225081977477815875393190636023848406451148430149096553228637859238478622011521761198537811994114741083682045793079261790280330994829782357669007722608831599188033168976153320143279091493224598408411391506719894412125863079564049251438488099386114702274678070133216865555754718919889160014929990412209322778864184852406538189431461152141763412720997818119469172944666074813837865682724975060959253356219264825232399048593862067599755303493938235990240793676100500334032895487752533050597779489003018514516234713426512753336538013816221091332937903724641574631388442690736011760966530291062589971043469641395910997439591268444885861640215699339160621510260582899791478035643238974017483587570626290121814653790303176854505971994191351116523303790846321262758838382762473695412460959725632205841669114732086638064493978355083050040796001326495075698133494545748477396380523729869855459960134764419659662366703833048057354919941116739772766386549973346750033130009682760433399983779785834464525758907370070645092344823028387453042369227132554742526978328599434749333945439526033291352596136881584245717169630204376200078170902439459766216983131048913796981012470680234724219876420021538946392616246070394321544652074164364395845407595631404704425717933117598559119106634438666938730926393828306304285562926511745686513883610820207879058750276598719711026159165101432033302398004075464378412567479670015009201586174295576717246046781727751537670284742445194006499779844884366769105669173540725931584825098918561941630519728513747946990056751311321418390562193389891879873160853102760722975443831061882907868794271886728832253203908663821754987327079162256092113406741814375141277620728990970026775353372233797158883690402860711155262297770209498468990886054144272350679321768642684683344313316200760844751214041523831515920454331538742099722815693207962993734927582177113814812949227971122927795632615886219724371065815896256848602116025644550401327207859089637656358515038292317909990028237291980530630561227038143237786711551720879174715009439805412325442868896753688098334256129537408919878932261765765159683110149003448404586135750336891790429706259837920879141788509051887260008326997705930258526907535562409595214259686199534812672564824218733613438467099166494088386803776010205143221566334185233651681177762298481645223142414073759768621887400992690240172344077272245413298079889606320754382105067922686769927265798930415802647186704344197528954715236221727481679441495086897459158458148068882298529537253211876423205550280212299948478410387263852253867844709022342233911397022774172160584478171862512595810204195859659865964629233184864119940411153111876513875628686968018637714000124654544149073083940486468588468203941146158206374868810404463971706714163236374163114254078803611526273564198054701773216110144765975039306745747779900339703276437747321187891133312567704111835115220223743656673848491051317433343723101817142972073335463314539909573350266116474504156330001042331564709302476232794889144745336258677101694602336902496498998534201696810030387411152476273104312365066064528262230595575216596043415399700706782919724207836304866895618513056991563629835878445837056120001068949128537793612840754326420180165099743882626046592258222132339093729888267792184415408971109450296096366554855039510743680119275940590352996904211188567442381543938244886051139825520464536335051264916331400895691964268569511583439806326269957896043702742966679276974838499778480597831085592716221978245523169503943415314981305071564126664539114291565424524308805350251584675221423504932927906157835479132861796656490997698191680178127050404360383333416459812577030741657621518476334960602783501044208596127770094854508498634519356585392181993979409941756514439725221573092489215387209097488879949291497668723799430964757547413937263720117110857177432672847989462677085920583503430995511862159708647279009169458799357690458052351571210338389486793985341137427624632482932292171261252183128408658516298805146528416823424768903169315127432027707438706163510072212031087357205762939190307757466048690270296103488013787792708269534631358078608067513038731561175731620820598080900617236225713947101626639761858609603674142313950538428020784429004100230429726880021521104137507429946560456872368658517544611329211042345699861531940637095061184355210608573678792250579406725773742173627872984554495073462296785119616380620114134627748786882413482802087402547204111954427576224876479619667129025124570718620328083096134303240105461528187922936739302391068451289336759494729212467888891827089521449111871256250677644894252377433140705673428238372526877654403365057807140926245247836416016036160657831750756593706307606701709798350908622441313695116250534223936130990969891636662858423245377422318159359369153299775773120965192852734713555171006714265560864920471148850160216174429430877296002984394398722881257432165350368355335561140782687848674182826162916845906775987039462369439214687350843996009236802397825363416520750368112770631193746144543171360449647379821677111017950453401676822303374785616687782713529709576169547390592883226976562004765329064527635721302456096962988192052772438104045111998992679351305051167159240520752314888034135686042195975284019637583771496500353108805178101562033738677940463499351739721765167989538317222769687612224284742509669711506361533161416828445192083608456832635676971847029180757850879350681264882827319784533723022122185314448954197812036855145277923555806070076640030908256231759141154102946582473442505260333659383557716209023081238313254679269539932720919079726691058811031843654707637948405373130128726474594904314712355632334991246627305198967777489835442015057932450825174069089930905094387525413464990514348487453111786164924902096208596859315113164945510502882252754826844555205714722202411093165897159042572583626748970901221667159715805685686977229543394697827856096022934826064625106842964314272985603481640947414352096998106093869714769371350759704681165025651105118054642178984177965173319483863747220957232667149111114066225206345618217842150551013631420371672218194997851429559020757088877077269302086190229462089231404679993670143459450836089031897234636477394161533388296693776140683524893008109769369093642386742557576175863505959238140677187943314400824947734074727066622572074992471583824237687377181822895886468906805057979274140218266266887571989409504034927187571284147608446857248149565093552460409196912058343897805413934703557634035440734231192943129329313081581959755977116063823662304258492449098845047634556503479458503007176956504320467951874023285828555434643726932137754745094680926418429184340224290966834920166091372755144756702084653744738168994046158027995435223758684937422648949657400921907527921162612024146634057557600322226085732920207150255804219013124296916925764553918181113766294653671658800517866076724006093287797849245434931832550353563733994746915640755052123882837647362737718100346039093434385372972376174535405320373207092450345740318379438415257722105187767996254109267865364385055939508945849650582238245060115205209852362834340388910473725772534691861816192340563342002521531921067445045804989697755665769133259968284609270356277063909448788858999496588880480781942696822635817944958308317201557378746583802342389137595430251060550487595471129281745242540614567482857019507458958932122962674806711337471631009835396926451553503441912578209184934096774843148711214353849223885058216266768830179825337790778714499385773515330115919820053930587534578475335193806642755026113453702059525039661548432601348151955086312347047472517142703848467923842130341006528858220466080154686348405261861640865514598289582380801580746777602648514159315860820497918234372549391979522180218286369112236920436890546408787979869129132990471696449874834341150302198607452355993790115074338048837413505862097960600905121658888952859769733579117581855505198580077569452351452109477929846597953170700045295668274506280004301503290010610776103448160588926108129768652856577901318923054194572086945635631268084090127041736703669268470221924888587392954681196804808824912730785109325113140401660539340594788915111476361427216742406202713506442068150989076340597928692324797130932477096162732945952922575968500893173636137760037228724102771849376148544703635422445830806674356178591233730339668171883072066844058319554023152255232458628347451575187678412552057304923037861958974548837846696746263480929952653482222433028776312578309240943307192485425362825628619496601073482801441808693000525583415328108310836250296816788688504752630805402739967601887765440841798760350270956551246591249331836442109489161456889317943726428345446140858205207113875770810120415407356979851779854151096341774387522143498302968791022713464828580689816354891892294459963471156004384495269897261949082665266669227510436480677745510674587487256609019741981240308318160166324554711461075147725089585348444625499975480139959326605127566959838187928459726771511584436363134649942125280178804338026357899192551923025790115000191865581642265678278522483965781329158297620986021639517656814278583790041173943108120328870824479937295159474627541754971831015274665296782680630131650926928249392568764620101230190234246005925362518410290296023116695361643259473442332076949608347452145615135403432009979569716377114398106819167581313187172514158967589486854347153483680763632607776679337669034298472836912119303179382240272758276607946717804439085658421870148125306140847594369547922440597857629891919091730618636195145162151741922876079230762064650527221003457620221107696221225462361005330205565430398121105218220439217941748064853329812352364864510075193666487865974913368345366242867180939686930155001631796531671853598266483731647126150394867633665672975924392307318157946841001230472232710368010820005770348884040943663129293625557571602509392173486461430741423166512643391890459045435540192466930616934665504310370815043474929899264079987256387664620516012650051854862760196663270880194493280704125233328650321527823639651510751983042029565777304430983533986031869915927873969461663063196950979415475360759259905367920228746083207220160199969909937205484620980325975715085395400494578818974198907023834032206106201418545401376727376207723910318487568329185884172033609856049201627391142310311110970887013913234064479993957711252633019623367252076799945623540640064160092876233261879377998694616979058404536856619847500469542508697698248094837671065846069512808396949734589214216750553789411178097926062640285288420741750928699357257924068083950209802924164075943480485598167012661816735718338518648597083690410403802707294688863443261738802565960848745761479529065759890902621290799732633832534136592278847196832115719641800733649146943706853022230718362845424850771925861074805301623135230720547064578366839248733479975864596093097334857797040543633739822317351258755450598662414073535980493447688470237256869810702514592367198061803241584503679445317302764344555187281398177894382515002605853508878198914121386290714149259052399446141035211925234740155693166107009874530596904773580125952401415983216498038291800720212251504575854429004051111482155004456114286652636197779629400069649835667583766296398888101752390564412149848032526874051495468076176436391013384360489809312978320619628921533064001136936579242018925920792679671729514850727581098029992413684622728871940047969382931894917806856729481785912890283354134581198957230019022649880366786125587315904039517534606995968220851571705735247494416210289848390465865196730631823846969732307915769342300549321752094338518629869143143350721471967267757400752482416525529633553888615227038038451160863218690112081853323226761654455382914266850196707318039975349355846280448203033643256171986153628144670765825627264886862551753424988631415786843852091547537636481004563018993873588524942401737024734626460590013640679840500996831958779868155288986679123177580765156319269783987687365590944811224866195487996065589630208292508667241855150682575923149757638098501601511904271783423898155570194754602920760060466678842357662548594524219629663100684607188538430069806829577923761991055253546491259988373554753567391381034228966736649442612868034375552154578052606808966180073276055210835288140573474454763016224376131570154982293965180909281886516120988091442053010217645794794890018350647719082542540861831078043073436450859019299166770211420223723879770685335936748750105610416334487018649279092741125615458114656113169072259767804953186516409127678259167677979128147860547162457066162251514097970255935358550949726850153446159569396514908040719761762447393742184288695730587098373570058622398336482949238438331523825665775630939294399693574749279266354949741690443311981931250320874670103991355547519050423489227898106953518595348649240118388987931805912171645813863984538042475317263816438760016321533283854989380359736981797601280350128096549224333771834539392548570007835824941402051478911759544743672400378545227100176547883730814746989085442169382568342694431928085002900108382560391661542359301165937519240128637142039817133863390388369664245777744172713854378749163021034358847628429939844484001295200836239244036581465812083893562216227615573542279188240199033731746631774287151143864949098837606512741192895380109450962551309170743281587427256168090572626548778378915747024128340906886428828221795977562320133509339889013150507174392553817215028594181426579860198842682944561177847458379893208082886769533423739597189499769646996475493259284293824172677547982854398330819598521204442411521680342735167216867063840537822525172688438667802226478160064439831239800900197264023823349364939157149661843415830113474139837687257936059931395035178719091948343735908501270860431651729674920545429083857569326573139502280205050017536680577177823397177739533103267872426745296718764044533947119064469970289713584918606292819482540928223016439307477191733193428325021075378867676173094419977083296739023263463588833597675648302444780471128609186986233560915166800834957868149831437111434467446733923155805651752494392151768866614850677080156169222420770537023631820647634784508121003359032251546986986249103834434884793173436684496302138184283494611839243056438465770736990972314396260914190691455118960988242458919455407751557202561598579995749532263878358943878778366657750503497328676181121120295867108857235388149256058380595868281360241300182716139624189363992670400415368397438558297744512728982172287460958563910811138245001584172225838887299367513861800044044977098491529704635070937254579964746680519131740136601992289531003582154127773543141763526111008774377577472987890130038112181413124081113114827615861212688070749995928259627605135903680733322784867181484738554207425802407429564307689232698324841953561410292222779014637893364482874965303857790727731098940759071349955102587289553791991540279552946824413838551013190691717486697503975514030365276301752270697969720043431970133061262351000246328513793821883276382236808531373042162737847030401070651192566334373795633618090931540824631381772254986422989157958852195613210936968022416670958716490327708120667196722764942811119997113200906728882494261765641074939638591453769900024995366745409167162068386750577694292294631169488465244857357880738738755425563515412274511217678823497704304886375167335842352037721805426801955322142282120579664488977121122226503603158049427510881405109913687291171737626445563937151369164597610589885193200851252513111031893017581454276650131157627127719919509190376517529048345958260122204838722340563896115472760254279727743979281591405128217038381261206335983646089524280385594804309111462734454874357630392679687559806527294393545454869715610207176777587754580914526451028631186229512795898733106334790271487714878995216209607677285225152797698267506065989289761619944196936985390664364239306275104207156712223415587115311851646500972201475472390344891567182753173863074242993650613058841571207543074024546831202476209865837153283507328211389165797840107526161189365153242504661534579424872467499727098164680989540842635636033466532518051399456991706748666922677279990789544349348891932103435269494338733576905237435660653656343865150805585581621070466191393808935227612172188109591785991378352639013974767853298491787690939700040742532869883209210671409456961718293479761965941262523511278195761763719095488442299097293327613174317744504714719821210100907490368298649088975827559652322919342536604618589830655782166758473366018600369352133007572310344998721491993316946907578226215146823106480294520250226033596318642046121955429844483970572499062256907790702299035935664872884478665197446269794833957267673106502999304360937136453976154532762107202943758371623728099479662633810706415294077126070072784089441633733773561479294965340085061624269105328463842713722346097306414990774503484957987226890275147831742306478599807763208835118903871024597144161425522314677682040191725349695075033172158137851873843184311742057997379066570324105772971308669006736258079529058683979920207621877419558221307752252653471938111219046554201092452388917050236114121168201891993620438151138635960805021818889954149015262494122419998077771171242883254446893503445317485782881505803832011031014580332731724216661674518045108315453387679436281012135781010175155495231921953853351480739599101719824308319587115113044526400982517686356916443966045604168945378038161810218707015800260804857923945853701565624959213255002901720439372756987658032432654553524258079613482383157136538713156072829395323270492909320574503825223352241619746448875122648515577543793903117976082217402717620904975640167919036051727376415494807582771968783548566152861470644037563677147892216017039418758402068019285541525925086448557265259967567466317900015717730618710679421344014260864308835525474008125472130285226065377724637828513187816918287663510315157710562393112836424857448849342966735714244690854896812907386151827824788089305937077148852175345325346003058124913126934706171121575261967541392680923268558474738855966802787805521949280825634449704210055615364692248526271449791732440769330701324045009299531105295517705363144630145040260741243193917957314470567312019282138198155231050385470846789924763714693666716301478475245768055244947524147255646860350774385697250763963048600267036867849008499562615728601944134924952286413867586525853939108497836152449928324528693498926791593777409143024486283059956655333092580771283765930159186773669534832044348285192228398949773578407956293701262557306493893158070188728617248364265733217314006008099881090913976718442427141915957398009469532250188937920241700669715942183700388773472460559089680263566637008819354665542499090718817786824766451350420845554152614095230796739887296492191639696575302502843262577776228613351881503458972033074381529221863564073474347702781607774229022415151926466166458267542021409749061354457056585924156211350210982063681478919196283228149505196312124635708637474868312294193780096542048533827913480821921450763907685032239956473340030036249170127415786695529863650551230348153223439900001868393213524275041475790289150897053059231889498925356026302569516455671307193337179947953603286743980902457239584142142553353720545062854813551197721062482000566182138831858846154686619298792846146259486026258735040886007910368773083102919124852453189594314586884275399457741796397430075970216839166085149119501552137666567574605127777778232238406952018125602243530839460339623977543958197561337846849253672812651553906342892929568553122033663255968633591132626756507781844208591286523237661725068033506415421280349515321472807003122754393042858599245331432940977385556430513376988039071854994477629324574600950087445271391906581103855434541129474006427175670748646273118078906852084318676498527088153079109663792383829686119270058456493130878088161944051152403699028167522963313827563379264725945607973251290930752793560865246614061697599898887738900523990410545843333560001884395477899225131718074882203088886556097598177564836273036103363686646659086640028631065127183274664975160036813885938242565521614433055065382397006160068965636859509702100859527039272459867594123106330428089312218853694846010002863294127317071539887560026930792241151287731769296948129556320108867529104860728105354780241474267587418501818959038921506242685589824284719552338832247785509440442985869073971834699976414771890548473660166478257717280674774314754522183988700483974934053394322006769318994238043435156210531986985151710083488144372917111709927154244086898070039159485944025829928098961272437096961535942313216167387673375259095405218758996564994528560453999052985633531114835149690174374888709221249439325603426675373731344736163239162423750670948139294986530995281763823130159538289371856674540449229933211357602980801642513484290962081826595011134445505743119490122900486198006078434808256391859988096548082461964754241645877824307947390959285248833613003011689982828316795828680403384635828202044589493317474033819314147436874384174779550655267604627768257616051578127714023476238842780012943104431267419693852373706950803860084545828702289947950345973473806122645701344216163371053950102770611082513533502453420447154264110148666750773011947714440693077506840524842595680767204651015515733637600256527924519174703678767028848725464191541003268713150597361259920108619746360658661311196986269880453885163593579627718098906289977966146914606013402176420941345527241980248327722922606031677461945763399765008999191187411100715333672438305825583720577879417078738600276559279702454858059118219229602810462027694432417673398336719068908642545076633284165975626704653356402763039644287325412852025212280812589126196431072600094474335660147898844634554941048407343138057562486809487147730376241902342540031041685585971719940803613473346264788750912809368022262918580704471243006870022979725730379143732360300571951343743040155917908376832893815128385077241241737846901558280039584003662392303603136974607192738887681822594783571423982598245111128665918041589099476484161688123526573777807901216899983045676899241727131537524387801268232072538833654139162897911625623502354175083237053893050639580299458556359661706765726303817724605192910555548017121409425057210216467880485875538551155471618365283755827818603381350234673058397532538742140000060492928697573271431469940389358773111456298113800099722305730790029078706793846072035229261815879233727219449780545977183748917260860800193428395813896155031190477780725945899832879717777511501974440719304573970296143997952449068666749749289483542337529510890743888264477509705881797751310862617140813579066476083777549252640080074859010692887046678920555506904011681859329418225329593117780148838833380314266030578840713531401515378323719599345702850844610313120543799972455254081127563374425138857557372687373993632947312844276455207981833781772856405227313907461019543871768655781103921630968817671347066782243857171995911519788165784606683412395639491096923050171908222297522452319507640205905822466351495164766188250899644201198435472472029051001511335674724413352865537917127272943584125029722857055703836103160253693432701524382344968184197241704654611635225422386421019341820434668585069071192314690469826004828974406303395647535490279800297888713949494701819505765828203419844499179679666817346204897624845679515254285483214295845668099377449899967528367633906950709625975798825637322429876907821023691675094127632047303088325570569306590341054595049868563235188187853712715206535029534632724068784326123586207273810360518145598161697273067520587540021686883332165745896880969997129869822759562077798174933566115815068667770233781529357157251428550761191239383003152595292732156044198024540249078818939307147656927423201730340300868469402524425928139118596235377019987741071906749744474740613731050918175179060710217259635081549199347081977688851051554783231711917668641946144896643073656968698621596811243173979511675069197869753295000025224908136941208057125368847011873245122698204023036453885106529086862127179524729476277940313743259434479994404560060736236134040604312122580791720895459062778769285533879317079557291072437463272995676959813539936813181347028182396230597183244664939869233480684167324399895850975909610699263474784314959094596484572831299387680740769202841593127160147361883577267801959281449289759146441830550136951008338649979047716341319040565263255249604191392784383134408384513830321765359282110043110029483213423428385430384915418316963440772622154952134845079124022126553993659466333211291406907401288462260864726142304595850977348415283359910308845800388266598062711696690454793796011719243899915129880535644631681808117720409902197961625769914102590441553690512740436210328832183298709630017370854072557094887953441503061122361302946842811813734837012854439970943111540698278799202667559040096500079206718575385969990920471543705017062128229929000815815303614610370027168680735034851946544552240290318352432615705595589402021834956505066220909057535416630342297392187131068614202154448979313125244505802581786677680764958510535967936718814483920496835445377375431466573818823209734813142972682425663886800422705274006006159450992233562920588808223638702337572507453763760454745101204956403859710200050302747930070583119315448944515590990385980727891203663563772119251154157045132165834394886869459705655250161111715692973730595925461983375524703799900527536562152492810505873065301940195346778429095655846101177535332917302326794690935981958206842940580715834733890783287945359248886593756551725338284082329810873889673144583682334510059778277570651974550058963113499460466515042600321607244346658881181488094104063691537127561756962958481175413324513394475403792769923575993588227896581920046151567363365167717871399799890017045863900337683740265058862521622903507812040709377297290949520503505845043324296517656894130052489096406720899250633018075722506537075372601596343639984414777826475446356759862084314821475006012226663068415659179742678429525413997503672285146877339937641237041353419328382236972322557629370344874992728306405335896527693178873477952648344875350155857524328491429219493734744877826422560950764849792701606382074625295486217041784416094688343917268200908166097052269208575629881943674450620525459055678870651035251908145155836720244958218262869967431141957615854784022756797822881019468760237212887659339224080233394968654868792809995685639510264822393383290530915712130902439177880784809689909642235745201367373617166414413506709561839607923787708452311212074227417259315640573784384770773268186318946968602273372912893755358042911491618673600233411592404295177520243750602149538286996147307716952599197886878187550012655697896760867812227285901171114625263694616788169180327353568912403036311833281568905352395730622429259532433334285310475193734623959194261199586870258875237707378927443652112758742709574516351044108293772939570737031023416702236807606703310081216961849079327293430415261553937472730779272496007733244715183113403870222127264594751665661353733571223007136541653058248850058478486407688017763299425487794888073217475738899215102262294272913803884874780668541398692841904893329106933227294071742242009879789542312285230102874821718492084126916231459104412800740402207715158744695979637031840517660191242186124363425633491258078032922014896574898806190652149743417011372109582560107289405786342628559332520477130011863957760968638247948614655261555260933392051584116533452918458157418669911176294660048636513192523368778271686171762307344568932799023413015172138105127729620640357559812252390713598077717191171697120084891556617238424697303413493580757698429373593546418045975292748160606952332672286908601840786882262833585446898866862797082064236308134886251540649486047850762438599492032904204055894109584658287039102327909052316844763267496342486780455747786261310249383150721176008593952148172311604137915647987366998922234983969037701687428803323508589371270663442554910387802813095558114690305249658434320789300161572168121260065076814118808062230807049985944010532007032190571382633202079520935959235823213741412700275032176328130469796614764402386638576961479115186040723010016603772475423928140115997366976547651425366968597831197086369057816637763989640802720016998001479113912444595832556147375766575497215331562990961271138833023769131108393620977339169755920650124082982157304513797331115432876555550202780858695945439301013211964991663430871803176414713225964411733321895778388297104826819015792744522769808572897024656068500791857509012795202210438427794012261921038929900080538815459009747869315225658937667944548831584379974710963125862701861252875152188698430846889973153820294876556036914305538385889123136977947978610591021233402479812510904946504119955111790928897695951458295710289806632530949523529287990200185825811214817819070420087658505317062944551049143022498924852844325515687275802952767440910556178622185251314776200336004706098592037906387726428118619027584547259023092890506419050100634999378549002113506882290305663616008394990460787554103341548445214257664800743320402070563015852116963451122146793487753635023861781312259682014801550054754193822262144416844933738656059067400937505809793647235397988466447881330865241879663511226294880036066065093311457972983951980999754902742960219254549988905301209988774141694278925845673858194854830240088128516717479559508953722302708773491899677083486515990694997811689198290788631680596677286331926401953672379836549101725080367124473760774829160243171048200126204418953542172235098008029220008845693683618906768130991008518264621659209882936103876636873964347515545152770970817465571958302100317510118924489716290936351230266937832849140790724021935699560360354065501324295396038538415657771357122612585793429099874516424143094358811363765565080577464964317167141415910329334009205426396672547902122134020033921882489508676688612302257252562413119517394020644619778142320803908181412753200550723897665815615437257386930303505199547522024877186062883777812677154328998755419082894098509766218549830998598101499869870820059142325697712474808644233902382744339962706328081226635127674028259452424380348077740282346550909554787649351114228309303534345317256194768141063878253622635383591561116054250895279850050570402142995916122463550879321883736759988814589162434398844129157629146014435795170127365891913437567656222163189091261818043204536556293931530707749845932451958948296271004047929365363603041560248621664953812409244746093517900294091203296218216415020214061079261663938483165993924883360245242560580336346450615141918169434667487477872362215483896414353834735200801349888874958997096702563763170345308096181401426111747156796233871287046823313869966989012256133145644297441168916781224984761094357789361506010799301238701108581805192538034449939035642279895066786791824167690945708163021618342011769868960134216194424671121087949379305902166106857357305798728444146694348309055076698908897948400501877806651128621619336443301143860471317188260849083319802349425179599890206644763164046158712333834234272889654627753758823930805954823958013899245810383666782237980335931332075450178322585030624681900668581211619201142267028359371077708975891260075391789829284942021140181343215261619356629512346903178385430911921478650467817007862300354662493868554159082304541338725471261282008668094322440501491482052720826914191682983768426220696678889341185412767354935455744149457774514232913537669042304088400007434459511444449356766546615692773809937401058336062560992045491825585249879254504197295761794246243682117272196809935652954588982452781855774485721830912464147608850080584043696458604753257318472729167702597661890135964070715990893407844832961056197612541078650631188662950767348741571925723032752535555615249336945283153227477745295139533485178367356941480066758812965585506655413147554144521283195277878196558721583368688622673537382939613039081921833685174311756549106883523823675596240787708026837003264601009972196950372663274927759497830623337704676725589407074921591207118789921745068937259205262205089253354195818979709879986122586273378596279087379245081366423805875082118083829073541192456518932829518096370710183217725866329816785304764624754675129133586165291386624387774934773227624486943123935536271634946389499880508852881008093788240587225188630804268316574858664528747456183037244326058255148858243099778912381274486295778062907584156428614009948086372726884770252773064764112713209613990492530689242018658055840067432372473254450639525889012352094636358259946730008884251419530789386140368508707342894712516305330587349090288716185207573265737802305034453566827858695637143411780996581795343149443410036269029853532294485989356547513374914387291330874680362890455803634353567792163440053418964959540211948047744560622838510379531710949084464142851992498214310192071113150693339460000785210378845377378726937577270701040934951377583123678364944060448100441751636981802296332944899903122788555326770395674346761615046926350871175632826470033659218636593025846186014425395129092638156221455420155712764178510727113586754572090004569226488623238997629639882532257149775871601628908197080391467280883421559450001592995149257033418365612841813529273542255008355042713263304703100618285238535831509980247417452239020566146312724763447695652936966364584580422641513317030707223332481807712338825055140400934004038528403685790009168858597423434323623064728113976281585490256556548036909204704993530928402940789532476642891934416346270803310676103226972756533865188736969470008283087086725490841749421406005047811092359940447107121724610720274613453878891249571112563371357405255867688420241854894480566952393280716475145487012410278102715081156199462830312142190908923127537437961072447284868537212940449604937638183403189448746631884400139339831339811137425176317012988874337499691284996222528089313451390288454549718031933533971935548186097799403379618231462765159438508920170353908821825427786689569024691347624850312593980496416262502235559414763889545205110283477014426941654736879651594295156964452639405560642235155823562805058446821114358684160794865878004291873031850301441802325266073785214339750738411181826796394041294021244880728064755040566260537878211236671442130064850965700177926242265460679787292165548703554976416673381663338437499139935462759925829960216342448714165509459098396592908563499660246048148006255594284488936308471595886451388218102335842744430389257728509483712575377802266487890927191326172481025377256605890525412797686462415046288974889668906371984900827794281649792687986578556459026568848516683037776515864640750754433118071387800846609981240453355112868702721817845200041203619039289383548663951732913263493967153747510399106005952056074129399080851368961639075716808830400620809379044069205302539896304561942539984237773673539986473971164534408762370983718824909581713485769860814834241122261090357846083902622248432796056027779914989163840814296560733051017555137911521961525549609801664845126706995200420288002034363911985549903777448262256260936094954694521044100564326299981789564111445909287596602358630278083360574051500638345998503566555158154576540222298455159792509135664982228541710261659012363945528759815878727798252960311051058880284495836456273431142661050501733683486298091287982923860237859689064086880617680864826599248023987310329797006535207655524690287672506872070393303199997235394618545252985331907867395547036985654239139698141149725726297817917474662418258494797511351747594803105317071213742614610757449016050689992552359636046089642636118988471992142305270962222500193241877014811701110258035516773942416225887973415646911995114774196940838477125980257532808152500174839590266539869696399890274379630778215996656647531096097134621257746484581570331130163963801623313736762897646521768150714104838161702764868486337592758138267838333998195770782280551851238921459837199288791172104014231181437505300403837555500548692159939611504986277540372590704571266569165625004747157833827862131012007908356666325364605687749008944650946602087323990513714443265749638268795850936926255622895908183532253745276412967375093470051779488742276933128428110991775594500258447044090752592386304132100043337413378829057746066869105703927672540194890528665053013037349513459544654207392398119357560814642816352703101979433868339289763113778376009931260154967592621619247639860249666704168490472069030256571646060335548357112487695935562418501762835407853966685506457872092837378977527472918756905648040998112605502927025371910291951221210501875383280757514711175280931852185763806383449632042214711704049355539474241956119764046126523827602245090427529054817270922113009980681192566571630473385636045542425005905151396896268577011421577978689609128833568185363572769065283006684007583610125441280707058921657679563124166539958677373152038221505865366635161706414446117719151944564849073813990358930450702082643267069236475316168721398407419304477383601146018307433347135180483413179591229371223929329088038063939481672787330898738968854801940016420042698038066935803283733109651579394131302645680516223471229572626539172657429127889318524565628817541257564322884319947229770298114690298423163921584451140220579926321127348161497151519309048274387994429324443536630525793281701981535953654318215311801732287078714762230225435260402213699732914164969446375056788150475772107144184217234559610697283069975580394005640448805260137775041054519891708832834392606881068675932203158774870163108782079859984632856045349903912595382117806050501493855598206721021630217972941591170665590761766806682133959945383925137528665724606542957281310838205021378258101571718416805556956780171333064541957103003005591959144852145013492650256471165610415639306497232102448442466288511978317823343129792239701621603499023169190079540125022412451240696856342790699411649250768004890709342374655360457694729660773715460436779995403122846962365740099089693440909547835626934906594622644584124396847967709294622355183044268688271789764388404636145880899708724180139221601983816297392073672581837700208240606581761162429224952009345033048487335908755649700273426491567503423137438154724846283860149727439890772379867078718153316622407033970433338613136989666557351751262822181566932720103537549203761658100754117920073681025826318512557130200190263533365169705592304227444135760263253226308700678215456609793392358356935269236810477907804212732797486956705352982805341542324519732136015840222493291453870004034926186110262378588398031794305529225624927422858993041161206799638997910697539864575982084243891469656864022188515857464047536181989229170544700584209646372605146209227212137809514423910329145062471541731290894672760698449826135814106224844980314448210306016909675979909045184984703663557038409029090869071698106849828420148202985144853063177149580336906385093443304193908926201061884259052626255418437212169029293653408569476133841741448793014462259568991648863481173037033615187152810692487178422772432913177650483211040923647852232221688681555499455929559674190447184649885436572506312915523722997501797281041119687773212530735265064617570312993319548883556776566346055644431217163411067825900030118976909640529990731085094664860326243521577208484642660035423874878586237026870601979363760263897837450004316381468474516459951255016071724119344612857112455761439038103017232636751695714527994554010859178870712946760764116436832842561348167205859054803931980850259525238977384880719407678949318020246746272276132585761272561984861808815727359505602567962458567745080392776280786486420810280387556186373394672095611984985721897236077243762491092010058207301242960859813603103360381421300851045037739483547222158089304327097754564585571426945413385436699071539560997991737521993998387630474585431318888505901952270826605467279552293469001898734228053397714792137490994403602296532090153178361068528975840708576772986750528293816040998691612027883591667494979725364379747773701065454580135508129268831053332709243372976617338060075287987986410253182105107664440605864734333728056620020045790133892058971333606215229185014523376161467191628843337830193278103685864680232392179478050818295569898291755042355684525452932113339257479047337449550052383191247457770908318785910350257880610341348647452737255970396101559784649469002166415092690642577250590178700996884496686372263923475465084822369213298896117612498397149408615148831024755529684819353229054776132955029430542264638336539257535414956743277373864221324551123965643067907858908703195859897865807460974029853663640833094597229840515902978207689691452700944278575536797982154707059427747025647337290326055290076738858209351035017567441913347495159846675727015354450266222655073895825281739639198131967496207564213352437935733740064042071764006080890331045196061472993374524000317912452529972033474629996891798967239582960700078672763071067633245248797442552902393880121673539968804489778820453463927360334431989871713525208732782510428185978770512128374854524649539706657669350842571614874091383642331420711317892044690943466876711082785506152090398428314112107157682724535068677255708726936757535502732037030959127489473691560018630540323549530665930164670777620530600891640266359704614480786553443048057537689038384795414589052371243685306067331118789857105126224086837795458275136800767556411639906573916969676207677844945031516168896186994945787522050075354745182978575930591132546971417521773584586969297907396403715479774898206569655162154333064871348311765981894831150693843685119209738810569420711168335574889378149325402184246476528122197071378418020308159268859729109225791690760504093794924125572439710783727710290652806527431631240789520404218382228619071361673886713148754116562581586460906842368965010272416661171909503087470035939618437132890365061701562018013778038394527341326943868687793910310526908993099459924244609075389891162427837793392069950727060443683804926350306645566119811638655577999073280532815514494976044206492024880273313395287563030964403729559116919377347242971821677881068095305436675850927018219227478426436171986284276862059794691643884791282766772343004571789755480958036387048744263618858974492783093629499405774551922030753774704196843987403261897983306684578318022122396690647921708930683482912558943105951616069658063895273602254228243183556533276114763012219623624265559804543283027186923697493582600181595272526717472759769159552173542615352843271473903399888437807089593803959520784639029355226959185029634162337439577154606566284700052159449622709600441664204008417954456304264426546735965197576462790659301689972821836089766028282297465656808442235596285875331688545737642148228328783072745667455460409758511368379621338923893076531031769529326705684699978648723593338401706430524248560322752012048385920359167937862107399906562535581150531945362514252053901633665095347180620633765506830373767519352157089361678977600909731782235421119236491320768403659905315680352403329694727519318649534927757047677818657604909035781895964053322108690991363204309342647639442714193482931635260164858291887625812886989106938007058094660815891772425259910732027149756001365422362792129423437846349538196411359137194973923849181800332911657110307458274275692699145227040663586543261287719603571289802208920644773996396551481198720107272147139064503247279630462878433748010123443209858707140964901921302580883390962878231648267239963962676797770103056560333233403971979652027641164952782956415890514303882960427414147171720621563719468655553318189643947129147447912955792590195977781438182393189144230866096906846087451303549577283957141858309692352188865008958217878587981244066808044630749097374533338937994786356698368653284650678831823251954840688483052866392174871825079236525275614744690131436392044639821094632755010686156872428718545654726177646977516404681032513710131486708733238052297825055950524181875192822398493228750967094468512113045732306540151267727225816715461199881645624991235443144157206415370900042406989325400608688963240328841519706919128197439752021097672053091997029266635920218649178726836621575395461238596030278259028016053421258129743506489440518620368598902160171748838762744329264692211708508571928327083855100696108941869984801416108476280043922410700490352808085345248705542651313778828224330286623829695228405433191009838720561730661708828223382831604231024600618204930063196107640671188588585028678701720977499875745222199548214190330565945090791070588258528434376888388507171868619937736623833592840125163966578000309291194165068150525113086077114327391017270877812881261187070573701537515816008045479708770321217898334634256055523501208938513516438106550744238403867617459723242567173926791402780849970729473992726574111949127461394896970266197341529886885036339637595497720198512748681809228448474244394584952444533323958121576199596009526154841886682704890173790848015240819183331650970748384621380371445320652417910163322455433481897522088120627931573066903696241620805507955776618968191801020998966258199467296853573798074236252184581700070179630272315282651700590193391755947230060382479349096861951600591745718646248045265373788810312436837306370412298691350977767234575543793362016385232763810281906073912192064261760923268281445139000203590766311518575680584450747491296035046850687587250008803770649545035336975044535642915336392978603733591379374862473901482499988460055804710642843178475003332174116898963962728617389513427219273180080233199104022769954209645011899961910182110181046100622852058706088721144626958470378733406236682963879029608024821173046013421858338606348291388349899628840354403235522368043377853736855853574321040243735482582215629412606824166707624026362398611316844294482194954869488596497794014678278743816673206834560523137005738806758750183799451072714086586757870835462292216954193386291240496106264325669165101176726748649223958058334095179067516813173513485447354222741696926688599268203371819606596752220946301336301389892030073839371260373357093465718483300717870364395776659058387585679851554187531765473933903979758583884688999558695857895667081400079621482657598756356311557431312440702804154656757289620047227557021720345915558487412687103981901594280625146080304941702936765277321953099256863262329401082343519135596016065306590951599128851846428223278217702728301030317921672806357694073581479618348443176396370896687119508626416732199186714861836184361982933166295451604503461568448770770094059131967789539203298349131162868862424933193960522833499853989266193216493402415711447452737694153409395367875643879604394066271350193947478728485877131125754012026316248052938313360816216604634109969944194221435983448778355625784888565143670620876311994024077508602393140315436144646211158699100588538400599137241527950313928533679600697833188492608996786073861922861841212624825404094813265987547044798525763858061040508799598295093757958170496198236650698167098285397585748054235868320098306628613959868159876417428447924220444636114642215751996793720656234789641863359367688295739741049432071465293165545994108943687439500998537100020908668074816040999906737721422336636393658225141607679925472296325300138649431228453637231043418126258065276439498869050675315543904099151328309110470835962981170116221145962860534734947514865762782559105077852108999153077647828222429082587630607387425049178605457450733194959954024837625171606737659015262297184982488704971856393642602779176282188928351616571824307429636721605635700603538002252413513527940653399000204127308149925951142556912996021092891142932971306827650571905539233569248977878628389692389404447905412597405541102166117544691452168247290737699818672189937039204273488676934996732099471752755363653628059474279153913270461542994888605972548628885134681188786333308629774676050769657691164854089505137865363059919589591328588454398516209160539850501923305929846535388434336378659160585195027475285413234224783947341260714926786260322585105237186745317425542563459724843310880647184410779231845698052451616299866009283255897369129196530103447382628335302461189002682763543654869908593743419976641144374233140419202324740052867923350892860938630922413211651209031539203446402482935596963355762907972996074977116564011350623332878074439307543653087472066451018605725207480660198766993138842730146008625872072891778156262276010467890955591534872763130970250189103156991635313697712842984558475614548348404464285037703562257066245195233970810308632788464898322691578618221462835516260972993079952237105705655709338530128627140061321147533521033585804680129535733670841467997566422935592946578053503218540373128910984820747724574366588541255291702541865398984530407171825977071844863067802798953330382193631758585856043692415766264079174030052960662426882715183664646125030786529410427304952533437388356172207685185855854762208690619504941469732247788839591132532394918547199200778436601933076906519011349157465210441621256329397835442796326244728735739284441381422739989355178272107633363897873441102932210284256968376218823971382286691358038377698552333094720648815233987845534056829731511601332763504898511274810797057145006746156892129383367049791985281425006586118680324781427947266170164364977654348892938715742802064769729098298061258209186552977938937443732128710539732955723126714709062672639510696197749586487817083351989037086813865306282348538896449901097237789567833172671222923995924284955678590729898254911166767399991372220294357580699939907800848703376092850639659382423658196793158549153085508316024833640159138321181893495636549110840278317990751312317961136983085402924708996440248710819246551895713472609762240431201936103422425835037056452912251729373791753159172897839144721881573356240605389076475530086212274568774763687864999218146830270638888612183440440581977579323466801610202324244857102007024952227953911323543079577837631374035698686786006655690202556686822514023243390575151724844959306534535178334724045160610763458619219359614504656386541621046702084285905347914657618354229891625039709242778610404442207345739787973266235031595885084737999730690724865184071319614052858249377877757316750955102192004284040487520854661141777371872750053164041049442476888166609452636292413602565809076882583932040447677118377039857360734376756716430436111338115492160477512404057030678281817656892536707823940083791955541886510066960539139327997235005610828085669859198370673166293302483889488937566342627164836292044992187291801590383277346310942757442227435284125840191511456061831088144998862885550768475951628108345596200154013278840106558259829172108473998463418793788364836271361867586022360175719861460246653958050119901577104227224733682070944354795946513504097462471337124243560047580509124642101392899640212089350265236992152712882957981387614184247681624742659978146370850521680191675708734820667109852265770953847589243559163290356643043701230970457735789701600635865503472470589918800571355167167281569538581598644485226966467254393057745524222641283573314529384073880823253813953481814854107148121538283573343204914772874975024561793267692529563692385481915650299548214602390579017534164492469977722655317525909777832665084865493948790082490794196210027073915594724930506196263721308404539469840401114030582533587522839289350400714750863305496923482083793882048667003045858569588775701504210024110935752390359674961359902451042966321085457497008970926131471281298262029774143832681381846401795436269685567365041950998664950052659815777133970442108553346288912396156622701503461725709363250280916963420223906139686055908643517007137412845071099367485381196118603869193099886396928552527586662569260771003969532213305485836101938493149934011506956565595606015063127553671619995278423865393731192607475303572503457124101820701966978375744376466400135658329554825552109773331331075276903030812932036898608685056196528724715857559774907177809282112145482487283773527737169282923195125761452041737256876343417748699915032373908052218860315584615094777390781160789290763479419755443070959218450654881533323471316702188291249094926659097508643086040778021438845219542590673774206221926538279285065522585635706260426085417099398448793192087434916434402219926449615240692441941239723542535155128593834909167060147491899722418452098838058535321817384880052328248132075865369301898443837798089843496648365148440296118652859290162694950618963817463041302181398499239556142103396399071162194690052817466662262210049521255790427410384252837091390238017742989308485796233641773291584188914237374923534744554805101425905608101541748964734550447476952764639503513276925424386788668614846489039266954721041696151633969050526417451747381884394256965886021639219706406571127245090095520697534722389197067458466183521593704045740711585931594555333233498791265395844555527666727488329656927758558545286636351674818073808188081768488309300079061444551417622862437438141940751125937638833454873135785028863876757310981304385871502074897779819363209837851157637530415604678149449269101107447878638091513998982465865496683969930134032188136146029337333533182478039565972288986877547284935128868764138886543148591530985670331199287707498744402295503833624531707699494945538872643146993641338601068439700772454124146511997268951565908464212700099014286479429017822108425773922615995654185228863300835867448742816035155917258373203152862621803196650190897600481389594961701019638829397009369552359646699486699244384464707347774209894909558011306919121430369636550097927631963223503293474603833088366084756842438660443115598646041347927371379169387674284589518885335527107409765309999347686468930852121206207983074901501960231711889168120227227355659971226210704779757858794573154753483895023438587398280633391931686618162627844945125760755728390663082197805123908758440618365328998721716224889312198419342451937641371246341056189974346298246422762612474157653130706842432759016417710525264908965263756450609030108435811011116357671858803112361072372464515015056822755460176500253589322834070925692450287080606102500288415430836927587116745799997091793048835946924935964233600356839361956794296356953726108714292061695157387230721754073804272721880317333651017576297826394273769089847007603917586844871273101646539960211042644405411998543343400311254179488730484428151180874574177703101653680382579882583672845508895604249239971866200042394510057603520386581111510413749346298648749983970549861978312098665581979001981363921503300476976167118555204713049793317972669079475345281469922309280674796007579290887657373575407274123652378118694252505808745134426978204904989952793079459215976996697962521582819513659592795358321147114233750882665374825424104114697427525659346465450216732124711058360718095294087039183330178513991175318350584861576330822639445234286103703347182313203148347104219568569073506573783907544868623153177193013221420205431146816737260970701329068683393387099081367099387263694637690104453126163894546719904975676110737129620788134197951529695335641424858853566836329726256037519284733105312376296338251561725405353655619361906898595220112608255685813538024577100506102058706683166798364728381084608722230718533733196400183551727605192258952534936890615583669432779667576143563005933897463789112823567592741401342360670340177447904325895957699991549645471273898229300088271058264535219066742314264053934700604920186598965648337114756244503276985256312224293685560409856503648449007695106303497853830745910926041830371826083150584614324118794082546239127037311653839565739726394535168303113627240055273825948928285211265150630012964966450775978253640757129419099693598377731280080447155397118078738709079350618086708791808035032207460305776798800003198506634865909519389425126168961313358270056717480526108457077981368115299483377248129357110369388692706572158729098309164509588448793435280133975372068048511863871451641436117032208027570715407521713194766803825131632926395007988334074649230612419396901331538484492996143689808797440222392007433585049426991132171957830778653005095634090365265727924024537755160839483762595528356131051588957662964988981809640443996115904126746353270864439696527872122747535094837410177119170565370634616969526233263725578588406437229257408782965373690806936837824062464657584521312969666949181579188420910258507329279343575194016539592554744245063364293169023937332556480428466100375959435241499857062088331616248521490661388654887165961192575594725001574551049721010392972210127528685236425800064217564361327673997970944098663140492484647864326082382495523686563667134456243375504201589432878556453897089016069582687019690305996695722437626390125017294271655821388354867750903869004728191485252210293753507435218287908432860680045980559970614048984710692183645120474995430228678108778221800468525667319181243252035065224835354692287935450446224345659317442744827396550592967492615122881152145774924615582651368524205123228078563163283752568988301424330751617723557032339758970972748801901599909729514050830865845043728437462279992401708217379800624986022813761309798719593596341619178793465277058434181889956643148104892384512068210131976937418195444308720724621016887801444209790424155990407409808744582157891125005064879722728090747992608467223453645021227841906884967349152098683969679991444258630487933882777357825968808657597633964330500906257992130622026051606340057779484555421534762585887807587684247983178384843430042597419674348410581000495718603646235156072442380514547421573653987903760507177555457721231409434127064648714616428591689352743543227443914384131856110446006817442416276044341397836638461836641269290979903800421544916769015716771954658447479891614720318067934794641710547376962546396140083793882393048069004087412442543694422235998109745896873850539237319371320381495305609904023139664747888628810985035125775704991081071675561663163002830914925830046244438840228239402951769898247856923520875788490317406697235036698911343588647007512522873680054890834182627435828977986856058550535133767798052711260913507044244993916996737762269405030279206178711372966910531185071197839790188367232966313145095488463524001404056858352952754808577136133133665739262160068970310496195935157680274475721230126710134039208562360685678820152014600624988304604155576132220032903569525344943595724089152198912520440092588182212437704256927916170478848909742013781491535160596839733806180998309984420677481744592477119024924193159255753429645361763637322857054275596266027996206611267350158601314819130498780001118624930604700700626852392214223684464772180378627831835326643971201672239887869855863750016647841279372891877645986782547895378392533707711483928838665376352264301650883232991611061371907861571717327716007586708459389444291233952189847775509999175254615147502817014997861343007248133689987163509217681853242713572521502030042697660864350015613410131313109761111146359345995059510548974860002448610667804068896272976502797760080418408136387032488434321066520710126525449991291939136574418370507224392016850579257496783991807308654751698198628512043650181175623515110657665610729672540449102858339377264918659315316828952707373309493014899552156161551085187524417039681852407849618146865681384072855497986826049371193795191297748069869191627634849946925813113096493366635614636027345542674447278381759135610713245260014189251393990600178242765630952747634478027289964150762427897994843651974638239580705063900938773475534318958733131933657812832977860172965380629101934770355581073182961455479039635335239098597694074568880571217205889802645647051266834489138860151155605197738246861531483365494478936073843063506773048181726848343721003414735349592862206875924052909855290106698900159849734524097375929370120720310363997903318045407234021277749046937766206468292485375053439133300837460534028299178555397212116294531504279643361927709306872282687446152850794014078412960400596468807276156650906910823008849960795295068239682809015465761950642875373128128923296636412429840655374708390434266945229260477445623643174889922125284517998712551287149790197157619825362913551987270914277712356958027369842125056958893044654273176606708979487045681546373533445759128507489777156192061325888611130114019566855337226228626225419956143688685096302119523696158099360741556757765420716413772439020477054410984856589692716678051740856883558801897860088253632814016638310636669383618393851800222153243417002934655381091271657486502466002168324280392119695196935102957271845253494059950221978747484528316427653660394852314780317225697094387765529404014523542412626101066741347844787422885232649456902213135947429597411448138110051870877286705277506020878365669673740628073251331761947346429048753479711582981831671990143771008027681955556866840454514696095484566300025646580669426899500494643631880927537352419083967849806009133573248293630531635930557298699487479867012747771594655126307994841978419350333771292704545455954136420770616052707399015263465589305135732144693324351883243586477376887343476626886427269982238013115207756444863733905404286901413412429828563600870693214400007825287847092896855812583368988694628960373143706461497299991822156168971620020563199456826833746622067446266447148036469086201452762287848865741242918883817300212540143685578894858633990928767148528381121068948022003436068473673616678505523109914946264346258764317690748486024214630175521893992065089756785330688791066922324384830380384368655737835765432430116515077099189259400562690841153002392729638140077325918841521900576956045922224042364457681153270549798236819844410674711846557285285307467009632101147900439792533930369222558477670824505999030203012016997670279666491488637539564724578936403974270315909366809683926039534948854036437316793393046826220823049368595001816183587418735758783225697766441825947802424809465569461242435826028070614018501659948121415275920485508559231354637643992543723734032580348062272468276510678642514919666700525091872893229245581618186244603348621331623299555223973220496116964844387371403441520631714659882729474509825222088066560186691960391871838591318032505496052604956210991578851348188358787778151439854467499016055263893840106292102836382963492871703781891060428959535062044885313467933297173414700975629102415494487513446606210353535893081164233200111295735334481711043797567642943220992472705326944009208251091459537113711356574771830518548758495132993747044295107402233177388423565198595019034666097039882573036218537635800202417875800046579158929470843901484449255164230729661310740345518760905205602060306179626111292494939852265017567369717712103538191476637169607017353504947755453819327298238783487491570865772416482961567130356966462566341118043700625715900590823888493207270962037315335028163068121997141116888450116011599876086492645310836242585545928726286475120477484675894930444440779211173605765015962535502595053727969693969345366285095065231188698928420132733122116277625187918189035926386922457674223186373011075915509767643821327534363799185900733384164650609197636963284828146552779518068044628220012799412110801092589479265474283534829076145077556556027213623195918968932120333871127580999259212644838355330192722257374054461216394825061018611996964516541885639273633019378390247993053939441719853148341536021605684318756460002056487440719811018695245697449820502186492301893455896143446204466593108960804441810148366626063859983800492353842629231925325960595680534346967346613234591305936441973020909437253096734599179819200124771582108414725372273792561251833165362799398101571236339752690997795762590302589626668853512229262532890046548944814156477515735092412806485798715452313503164923765325333130516621935129247702024634790149740632977804445531607524801092058483392970592462045156651284586908995330075902699665488037518251715867038240698132127200561061919339327389463987674630523482327999077394879917721560646804632412463967195937172544847846980371929635298501748356565926892258734037827239628060162968588607072105870767498169253287768017695120318315494805984414310469946484810992728497259949941057895275546204759698822566133048587380776683333789125308176357027266406615904573071010291402695707385277179726456998440183431166709485752737446058345621028311492865296840109755600080097932703251905325352094962291430265839831145075535972661914310352181066142084137241511886327536609336039344274676247889037497536525498043501216254105486074384413117651178511002286108932067061042309842457954019038841453422947393589231147760796803238257462365724944242693296509037557072273453825919784477935002965437980787882583158999547025511260639187831288675151329523875370094200228436578104781576022031772429506972199032574674423325187295305951015072640409502757572387564617733750605780057243111818991560253338841383992625571695021524650880656759229776834314063071839807690090200754126843867826813549651262047260774900609511161002745389381105870013823448613780181415140403583404838158143809846720379320336829902981474753818693359035965138440408482312469248455277344921287171521934825537415689211939757523685056201703654533456529788270083181890928812648479530167370833034052871566850257886368662866521764574253351137578844387803372263696138075863219035724251728858022343142552536776505405434399451572131349140970859618406201405018418613327434338687475310404960904787478940074975595466831492629646701114261938368645842496949807351797492312410754425581075835862681008153840338872040484809377559851960815770257512296244662582194437289127605425918450124739906115532574591600069833924236027052720224840664163748366741679927631100347971772105087050097815978320771890979709994385363374895159572567649263781187807429559555822938341836226697479838849663365569529855660099956606990973398757720730684173570754125190636165113351549981526033837243169751430215164815106122955736415531115128829352862729493437161033223093086321996918554201974638693041146551210133892554635378071014741258769168875245921157551990857393234626840401942738524967113086039934733665670907082491219292398593632921935139360774808152550246069728456676206130715183316417623728999601737876234638249109835187913993350203194241775038466609927833950351917612976901362580719162283465309525919004491874710633483624909156409295835305974094733693688787202553911385836671762531602456230983556484763647130382748937273705560116295301371575364520386065752854432424734601775597361698159877779391491445532438648366614452941387973577017234545964411971793907329077661821897643350397868599187631571618321993500501216084428434591552332390446087991467680195242819036273819347854111376700528796785322833557469974908221401397075126539994213348384372479887532317273979131096630349325768194814845750153780611138839643441428253525569379984121963916616579130501580020736546905377030826177712680133037126189358376486393945160220480128350630946110271307181277876555681816230121727955656371134346039793480925254226185680595514744876673376685225446971886138376521100250768562759828077887285565739698987740578454819892890036236922775896498761086933937953805448211341291468939284204111547768115094832198324800207877969127135400616041625182733062566305049077249863317881213884303375100798939142814955886238131568932087532051004423576062257618463663824554551871064611298739414049591224278633326282665144278372636411690221771914387086946649170249716069085880511111491105702772373697247645594250761168850528097500395298182026018523695636437410468542832926349427977259656123744902051741772597323809827077002405515002750304267398033044479179542567763215206629563724123072678939597624449461280730054050668430975340037808217169280971419372120944695381952858187495872139390622162512219913365633064470041495681920090575973231716080020408821897389575712012588562189900176974608739505967975806193259515646237884752716833016299290167226496943113027953151723342685639852768266938568389671234668768668043905062165110898473954884774177121189514915330747007118570790473770532402881526902377409630162399812900337263797672023018891501786170882081177999324616694830047372548592354012804014711664838729730116067355351240447848697258614618466796937856336799417479382669910757324831295473455474691077561645521853911653792788740989934064789507906295368099154467018549581951150348193767226858305776791806978250458736121300231098438434229529466569138758366856915881431127757215395038242330985043799921108915138681283021542254491555983514568426439388737031602656825636641044305887285538680529342883530893103848941610910608929818830150620880319934956158870804294019084903713876430639646724993304843719604992738209967341296351470945733753843037822166026597514612120593658285224545490064060016656532167422456743376527465032049760059976993801215762723679253588447821187422610021672010046876689028589329219691345700247939499042801844866122703195471002429254469873995428790188632914973655569087838404923797399303063030090047142793069276801320344249362579365273371864129484500879368365434794313165982713911538170153045705575140512098170886960659528151940058086041128627555351576042710675992553920055639306012097824218048972036689246523835089329991209076017108918353950906830852534631617019472320569395965909031873401523897669588513387268810840269680363008632481312709375052429320398855417868663753964334201239058874696009263006847658767477237318579579695751083634825910844364261235870634190745416599396441541602159859683855907803638089681626134442362548464385115567931710627972596411912889051765230736066788411177339310900542581468764801134454270510218232141244673520055282618173394778569533495523865579686623093098286769673412723803468302720856855983847935458266926877865332322014180650907380231330547510265014102216199727582023767265231073623240560723087711622659737851611250698880419375785877660630317956680567891337142514138513802491526424622531045036182125631597706531344310905415451530457908243444774800677868084791264479518017572171431992647539889468828663368595986019513667322353862707534506996517522114556907792388333858776396345109846144804356750900887527364095031630696874975679002401618004626469170296573984063250406937040010329653158464433764969505124047841421449288600563572323427461599065907914973341953756998359268052349327132117247266238279831431586292877617136895398924098054961739450173065737232955772053295205441954462862622662537542155820447671137250051336313676754389820615565301021004075504697464336179196736783463588876356517803189330239966650948017244346841787856632022633117303056872618322065448642380828220049693862480328755743039234275178184672369072415601347594550416274525747303577986393229296809274955050411391270002614366470706821891539479600715480692565698469930000837406900375261652202037151481911833331523990468335472728670710800036227542271384405854116578526332862054440343850619695047620770495584763366958887824841850026550701686494860539883853155732118400185579846121041772999061533532706354779442779087465778566414256485687979487250912094589395379054816611357245876824331575874716347623565677791633078223736045366250131245238204084937974963370518608288036205779957063543216434291238410855381483359878288920166879694451618625748505423597343878853372159352734851294883872521125637348612408322238258971310678971258633065531714299788352010553456750982911254184886523119824889743949621624132904274273773012047883667195459505744443246318187436925472208221882614188440841440168241548386370217589425274749190319029632840861351957811855487782130520205153559111285256928095881774516877682184592667139398684866571776732142707352585178823364063115621553151735160580401065791423373531028540578621297713380113126374534265767309949771264930155398762392729640559434633348749432215078586443296832060452394295241094924643478506798224082520764997955020438625358010640176372198875711769815115804401726308070762532293962314039071803475862516189573246310041798437278903968593560202570563858567104777169193615785768291702473098683487761795530053931353970709402984721759289849641833844988075785089415100108385963505636889033601720070564564334032464423346555720742467902110703404150973866709765296049280310891097988756531943534220529317797855671207024730349953795135402270368126859060918426687703794817684594795187040937079717758916552848725572025382272421273994386671417669884284671168622614487340549909112091276771697258183207639444167918330746868629431743394523582687540995272513133608953790274349752606861174491367154885667046199587462356411778643889533297286477437863764676906622152265646385493884852408315555161487720940106263518131263232923020070328540320531240274994890822325902829007504968155581548796192736552944212530572107001689566460822464906594943738748282113932717122627130111129399031975088830504213204634936475493091479112729084968979390827344212202597573782903296299592564877757043009505209559353396196215851099081829178238375075645357717883287215229897308728468504018323286833339531278994531780477730765927147332835778004826028871589716711290191807893026727147323197599278909066722921964736684942481789096084899402366235038296250294428098526469189116459502972283707334182001757998586002798919995956160109645863467547416828741578224790243259937324960521462785562336289361942965015875734889289545367803003996022063869703204108818103312957836732697821128588692471032249218402734519492745816046071823065125214929526245160402387632197191930389844603586083034915951424259756786577462929762107383758888470243152690249804283009570733951915227256681812447053423923561197602225011442801141909252630824103244004186344448736410243131560205464272342809651654979787946589390337540830906722201136165299417320610199288351583143164477029160215572724118284911102419800340525406450240579996068983186199995429986455518506054399920165531097603740121959638336501380157248130153920714091750886508594884451462610511384765680947431602766464132507018711920103274346801066769708564558868044757028756652757529219515006494744541715008350449117190984923998069076848754517033969926009548150899510979727593403201937775087389098555280406746092112850594930787018513354581660981499092166013713942453876677188911957426894036931837735102861838001306765000976482896331791240742331050639338432932704274112239941512860453764769400223303993065618895900631067591654553905519898689694152981171708729681365806575551899136941541474448007017847650894049064283126626489487179272490740686748991640390536913650339620350278205108902800410404202670077603095560930416854595929529915629770899418537487230056482788087939875301813301559744496038249705683758219530756876242781649325333473242248445036040839115691699932876348269450909368601563451756702277492773372053922451183537563168579818009475999730241038725288001390235810858604820518510223267720239250956652566154467307713228571566753595373045863842476281229314975440868697997781516388508281268101976264903333488205073694017447943862376916721219964238673593813528407440267220765381016328867042526566832699641885426401805245491933743495210993405518440608101364800770389948310380694047656588340300626376818334957023350606217644230249976127690608384990206493570586154436008099823991448939456187552663427775943620170908390826770802206893620227553704986473526102251358171356459528415940014350867960494153562656505070151479709174207870636752532359132831920918660987210408469594760780979891610933180226619960548303969150972492848847823349625534356210275031801555895392253487500787972167885979680876246911064689735116858949619710121635977655485729660849799600350860523499903625974989792955139332857054869434050795156094072489794990588575078371664713966291534968771861919820531776711384794088211915692041032920226379531688843620289868085089609694183241297434003993905053933130961405328499777474260219451189738326513431336518526791968526606580266872966774355921705353448145590963469047157412438693582067615368990063311823862475005695009503773316291378615260325888294893503708992676896254456782989272973100813351446547391540790258979154190033393382406848865653722433551573091669601625417350411013106271852550446550866282563217924316939813284247118016002666780091633900440201630751427564217680487940695426386477688678041268863811827583220728707623123748889797719371149955700378789281954325441987906624294132831343908279004756705791255341058315311543893616903831831907971154409864656644522266138286642238174084442969017711704112165209864496155558392789979272621353093215610493273327561924440567301632979615547854015444102346037107461464734856836379882296053636704125449726778631342849140590689099853119156336030096356377133724696139000669123944448955807273864335129861957332369827156444788831991090918020452615984732190082911458944109538755626488378016717029469041493506004109766673995379984002485438961758646621088198519409110525954819072112396237271633409658935203882609058467249205389977168219234468802634138593555279410843902545039397401716515812054086765261814663414607010635975370901811402384747083571726405234580514573570987729403004667923665203602294128866675417056683123682149822609632661323933235339182085620212355031643222753027839444324582353515713426004373884171569487336912118496087877036696615495184279328644840055939710658153873814276157501875790597043457272812080963062598308576151139910244462234432831578603640246370307363517370587183198970053930312672576962273955727991144623980144120774673509860706648275475411477934610380386949392519508557710414233442942843386491352120507693484917702189043787042391917229383790583258540748912118563282573927707216903609865145860062534960471443654841526598432022672699013291892505069986119138697629337747970738076280028153404501804581392803520420049839026681078240758677509182498511755579190622999494704076023635974760678619759083319180648989569790544615767767065604725220200273098451302085496350339807807245404029822487071998021667285039286230340288167903664430197745367503445913509347259967132372344592138997617513479301268805052828566970475835301498842386443600024379108050589603812326134592052252183360468682205327189544833173150518340907127375300807875062365020012615247033679720668714057309674994116205186262479770353301261901389715448178453139964129121559375429203450741628554860909645633533602900728307625494030974830277523217638695370353393821742152732974377938640438575887109552380026609080633092399686998141497345759517891009355727616439594462981029976763926826687311382101615797377375979522971138866686213501304651933678558765119790764739645417544914544573495072137930623377927002280601747034224639375385998658382640264015320563260308337215245841403456566846914588352343932898487128778461842274778607288876182809182157697189450183037563245788243194889431677891599339648009030990801906489003056227356816973788568847314634651807953275606791578711594872041379448597578254075019820045752690215264368970564300625657656657693375051536461838207789086289005422643396409880285618747936416529178036858533747474828277194581369848821874687237784875329925152952306676791960844296950589366961129927572758671752867018345866689348086218052929240032172716277512349152184958003174611013160553318919065943052195953535758179621151047583994913296758500846958818204660871107862863521893975196271062586137502823495734714395104102510482690701273947950136210050476746344122028937788214374034864549659544621843309065942122055632351030632467287300065276577262213941599110207956800822814255379546268537105674661505025892895027428319454051198033562322622083558402442543842592017066414916296337903763025211938884634691461830286893818160979164372796483878126913239129739025148779217205667617476118501551531096820892360701720299310911689104490750558240033550306312093065740822775948654419669997742744749195297555921646365923786673460488835062053873791526911289149108782546589514788554389198255647798150304864831183122249934588697138495468919475077026170098268404433636732594164699567700349459743593267881511414045047836162831046718748287817424900993275023859315946651954502854371999536783398294037377216186612755849887635337416544513337159170477144841643112194090742393649478921137566123116504472763883168567206067890696070206391202860270029380348062472377237175611081807918939622853352886964704650806542615736611348324485881628371034597239303379724411994482811337329414365247407216675603185424225319848678753951647475987304404894635691873813249562544496726438132928083481634903133731385844158041075302562600835123944934655772231970829045194115536633759501509441953511909163814754905255644405828799236048339989290971908845957947604143065319705815124500201906482119176051855485601081207896905431510112885586718704980231918119747369444433944166546289634919797860329599696947532496253548320289858673715020712443475608151458332039711342264682557835072507499244403246259267535447655949364728172374856796150152498498921667400156787088229476297151719259863311145626807486619522328587080541459593660503297315122365196740322084553081551423365005338875947415654970563559435320321075348233167818843173228093353966470820310205417196264002112229548511848133822271027199162927595361667695046999843588379919506957802473632054321873239196774436875050750270264681740175861182442990266598359709178564043866525400937815565004303317412810122478757706007783991140177936317938435136548579293129297813372512949828792590220853995310626017507306347523311593499591979686864339202498271848299923995947600742818630194845724383361253880082749786500863710813009794509445266390362711389158456106714879697119969042767506277285089873301871744763510042428626215640014065964332722587040738577547893174854025386290589642223374145373066076410664167747563285615966066329880846450987056280755850459785231493248888644767914425471463465805317055722913832099758620667668929490546492969524464317102277551746999049401443184440764679719645371627591938044003026656001619293740575811516908440259204743440316219340467497933658937772224820293843073360714532999296696722108197022982713726650125154321861126382933711908716522320150184022640521778337231905492117432694635168448790163971730061429342375596875981136189726957662102787849419312083472329894760810020652331534815856146826774426274268992804355495742008706086201555825865633564148918098039743314645782240375788139944560220324490959638496327542911355098147961157015580573683027906705102761450234640329817717071956189663082251831448326479966329769254359477611501261006605722139843591434098754905443473755535305799700430896079212185051447204252427397737278735564641246258566551782522654681907286650993082549070185047444648358688830845873492539125794513796182530574727172525178487890702073257478027584959903751856131412466143066084535395339297212758517383717939720667991416771231269273527045999544357244504414421874334242926817540424002243680577884788735955526928849520315381922269781867191814528104546385353186494583896395792939906665074053883760163787068250131451006317106495301501064444637147019114025294585150522308164482418588610093277975436266138465400231580420226469667497706022382360923998028714258791174271465795275594471000142608907636586509657697413072060411634538270924039476232073725489976421779805356848397228459052603446930573759647829714860962270668618444860647369963047922860483667181924720387690475195049037352678468534763649159407993507451154634307536789232831652094905545555513961460288525453358560797343979414082426885820739931848126807979037362110504856328800702764540476371287281322292162096511519335535273168423262616802450170198902419814273725180988229292389176018591507880269949166697020408417420708551778960810371975394943313583493682005547381109761889004771360872201354930452799978062048107027153993368124076980182581632858467593731954008027322491884802213478276970686713702737481504486645010496180883551136254467275123667777118884558600266301352461234957963747326602842990263985520319204937571741110477757483050332296950152536819284710549088890005555411138960802936942733288330875128221504154390192410899024169526053535973681376942939267095078499581191731539584069407138046498881314660270194459389648758959992798137090061427109398010580968120523369036187154998817698581576171656825149279825015869190285676954411747151569817798575294590081003011921798802210406454929526213452508824429697985325106925188431050088910762125404207131539478931021596224603994567602953753779797961330710582113392245175486564546526700776282149650323234987024081698916144861165793205367787833118339338632571614282502773389781394958123167697110919012961149204946825206270862170514887429158370510294496014155571231966766851799402279669531327275278807838161859484584868343603059336788167326986431659840615431508731999905584386568628553941972659605810393374192456943729237278085497976959545297506946374124797114873177895467583974499212579957046803301837445084964632449882732034601457950199166299667986400656152857114242120513296371658875613154707967334078314225714041308992199010472802192803422154722519193953660303891015043491567327492854299828984373228128246595640065629917549799157204335135580027972364023012142638183738194228302617712809144770818081472537682625372282183277204466913119366528131942192284506638746224505417492530078258530417325082340840997625567344381837837833980212674595013207675468095361525304870796236205396456265551505524707764131666113586995735059680138690341969897243717587550064184070424624008776378381087681566291772126748823420372098752563049715204311005060872135278658428508157344753850752348537966814880632675490132980172152298167328789569333482986351251358319594376586143891392636271600513559029042393247145565901763469314235596708809484719676985085284099300905391251348071958779840257040169943822370263244739485477543608021549682109137426128946573340038949303915594549256564111790288861777621648910682005761521711853085400541450927399205469703340540707868232611836748111698870201569514182209090104727633678685847448916483316672526540938350467950979581265671291391868930933728102253234633231704837717241711707766577370414810953874184903351280350089278859244224721298716088098567058881025193212678951575506507761482306106896554896671878852745008481963595495126225755803416037149119259536594210465121363541030215618604519393200039496353936389050749205345323380615674244832929586682682353016087340702069227324492169857716885259127547611119288994833454188735925432203729375601821031311629093854548503035083475175196456076240886757699623620264986988017096633053999445214482583028357754681989433829476006325585384929231957538021617989941629399901858098191239967465098632541961566537892521105261041682601400726230683592398931283302362828908640313314636150353104129399974813648579219288218772283516554077283083050744238500928206558697938600940063735716003784059574700382667475085770517909700976620691880276058739604994933519084759827135789197469651435255945098885461454205535624076246578431010808337174821224928287853025946985500466830847576097351425591569346978998213574029140928177716431066444832633260224551411633934823760759541293185935564106079783858075585707686732321850654880472782350968017775609542967138410823968449032519716234873539946248941580501124033648140014203211254868260336433605616838751720326716110956304136074873265650288194557241930188327859154498459528020096717379039398922756321352367186411975564178924854299400276869284239470015936930748999186032471039152497760831621108823039219777552220330768780672087784709110440456935549477336726708514115699946781337301288271257878732079158522551066556108931560334859519885506756447998533573216815262670857980641890230583561700496613722247632063275527388701957932864321725461622067599685927679461182461064809465568900017510429623087648620732820898712190845237058600623176492008014650053937157381532603257600518136243313181378450827554698926576208604378735454269555026812107823943707425264638005419375887710097411247617807612728469224626983687395599907727932012940354440577281780041898280004103555703087013629904259695249943305802283040335897117989963951995254062927223720057272098786392573927155363268337262478820892201423092609056273922607057260523881775314923834640149635632567343948249007669874173951698242076623669627309375743088328433826652717125349935152068099202322989247135532297767565315251115781174966489154520720991224691387408570439059577352057831914438299928324445767508831364129485687916718105670624092647619874678427343008524711207351592124849261562197782310089759182882968493301486761245490171575029879316132770496588066242877345539553913671089967248736131870562176131366559463536314281829263544509759979452134433566857612235847778083989878691044408225347243138142938385147044891049386352031267804376560545832495606110843825969014220235301695664111844990773641945925560248034043929341101761340683910469305040173852603160600340108639758995112324947566351178297375298986508458621004911720112069451899788090185736570672917509302488686142604381861606213304281618884578851072113024268328026640669759798981461492321395704437453642347614363807692270106242423483830797513824612050048404268149389626820139146414475666155125704005020257600176246536176587149483522600877397415306120449517927321299603213885967754558716552265904507090417555697917296671111083092684326526198087898728911984933630605561647301627237048839542890002897331741778837491618081700847330167325396290284154044237537131105790793516973160552857776074138181085896605934681519061408079585432266079876140511100658804286631875967737242431894257775202468682780391440333943358628368689647013528319426792628382324900541988919237149636947096382395458726046376601037217629828212783009996202783263256339418958458601861919983299618758481226884385502388082501915010811504269576995893466021274964776263758559361797826929050065308124707429663895500796265486478209060059888171414418798766463983812743309732624710796335624464392469056870920489839871734908422405939329417449084735610555265058567021191880607120962418623740542739023700279733208129457467465109736275242998470978695142931208326957036694323082850694789146490866380940081158948634966716249514577913852519172026550186109749044529847443315525480015566500724986627310335246302952839973862288718081894610789220364412042780344273918867942599083133163264224756401657929789778020866902082418925754997505669523451418093947515783346022475560294162746607787649050518245857698393112508270174278221403949188283420858101658438621037962313387143194240390106100473057333690964271194907170960361345827696359337182357548609850666032909521516295153764147063629870559125746888990393399514964460408152912190966157001549833005678141319310034615271810620558242304122855190071778526249831024162227409422043613548981818270066441722320422983409586668281967153965059206109440041143121112256698355577855833686863400229012018891283381226453263211909757152265545625375448964872952040729243225963900394904714458554503078006416944160302328156773331592480928646120315917274288540989390176781855008316005394202195846961547833394358233217448104156705952685151541161195782941257796147431560158286346170564951417450890720673467325833603435667214116013407067382842272775292588609498102921180647118478196767597308284297630871146835209670446461634544948815119980914596476418201360443569659956542860505365267023158037566859162933017821498245266017902900727870012843313763301981690151177369427527112809559924647173053603545568962874525725401700909871516325231487039252781495654228777575551786296043804426180793033839183530534037273243555949569256051262497408452679930018314921408515306348166883391315213702087676251235925253966242539047450199277353192337979440088662613350609838732529310841565121028194505197804693704413185811520452566233513085886026381964727601499312901798407376359739767672061215887007495131477673790494215960167226440678649556228763885069502164996661564353635612984227967590907840445945553167094952442016071692727772691235510600315369864751982480476970235533634304319811613328732622880040209376902746316538591661634538342059735550243144440245864875165620615963467392920960283761121909318510250653056643595318570725342215836787041726965229226790489490284053319110887503053219154352782300863172747445258438749326424862412042973766811925780521399448032411823983755565793101538049645035152325004328813238029191325537889668506575488096703756795760087443100288583193911811913170151669326847491703728864598797384698323771256436796168903807345353078305892159889088146040094554281609233748505477587096153981352105643956013573796797184736933931443148212310793047730967742084086472580954224453588433462213578213217568624306764190431723288262089784501302137233102000532891150439739994235920950486981889407042457788353024613259571654795836022401711835511813468198026287743005754982549744323967994074929538557948489306557819079034955589673972012604730697559936201078778491101412303495311514540709960823315448911972270019354986342219930602667041516138176830148770052739923622300562985069449445539428350679146670253888380000626587450473361592147141328423537507014053226291933784139806803219924576819893170097624274553308480425093225280055369501027728145114911284964234234833426745074410375677322660876319274204514914286556674627152503349768451206896856159746880560557601956845588476851657829778823350961998587238205697307157613765335750973866438362136381019252223898848878265954587488970832150318034497985185803509258244397464306849829756182519277888333535140993360783184817090073618135498797503359659536187049010975297165995393898292925297362860035340892113405924044907267239980022133671071294116072424876339006439383746963851413078337910694944363608886942530089918678825901662046651383644822488816735993915037512228950649063748474396012920183971230565960923721728765486091841119560374303098601444852744922145847881137433720379542620705429788167774236697495633898450096100405116107965733737903440831921803250330927832202076082805980470077426094578336246313880182574596755756123768043659275283742409429467605112999286311322555236745119119755142029659959961729779386839690655149406815266374703204088465767700930509331051768479526443882355766640978372594269411334980887945828201693854680026478880943219441345743190471888678223484903934896181462043569262929978098375020497527285583125699420801814208507181466084167731214328794767493948306865236148556217414160479837671971224906688447855129230745962706927346054613280650437495370506458054881693902128682845761438238721902363141143458041152262613118516673147670484565684697615750269409217403861759469011420590401888813495527972004334442525457559511970376236233828424359796141904679101772308481232210857503943172504036701659580366112746161807971775581243927104163670261502399146970419191123426766915278756046877590793363564600720340914280954580763915542169214813309410847440013331662676182965810171005766108826983955798259310177672325753808233601362349610748456058342830509738926851967306876218369090329873151718676057320912406705109047312631396322008258248575987742404332014748162049752515065144159787775227258179616170929515490840491725618126232822770405409066802064314004552222400617321548515896975932024097402468218744461953022192824360627117016169071633007581233473214014146210692570218595474814302492357975460784461439581497204087797955492978859189238958269702539644867235779512518912942552967718787497344595472327357454484854617196827874552701207145688794405823747023837603328777671674100077104652284984833919800317991902655511167944114248471944735377745878283340466727910816743588481908283045782151364831572070150562373506106997069661567675224674331895743567745449929228252784392136414403312138318371093842846849855689419528605814124523339523595407241418038713514204980680755375791732787967600170532197927114684293452877923504164409719225140055871620041345642639524612620070700358846974766360717964122114936824079154729007083578003746205244037496252255379210971885395045614262880547889717506564878947450291068239592137262461721621590176237371314278015353122591528345511600117938346812710864802812697024965681978142434139151939736167809271654765011990343328919872376112789747636479371756622855716836032117398667714716609487239828928998965688212145194010039856287664866360346867448791949403709631550833740465573540299451978081527892605561404502050996533455498644073409067704894152141321382926731815525682243967669907039145113719787101528270203750684645722750099661149012904177361179751533277576364297480650647208606967685741871881037094911721893240627671434829168521046437840604122959831238491916340405216317165370801514666806843968692354137775423562479741609392499517055279107619870533050238520614740271850463592774562448350154001503169345505842713898570501015372670526607347093341225215238960919740239635899437442811877904470921443184264308478221127981641940619301296196551803723091620198720935900563800069578089060036653217661250233937777060087105727317504398926187335246619065056494513173586055631433212792980122247156644883720670862426414780944791617681273367095212349548541248944051517594163373514872180253588919852691753412784720087329288622737729933266496113969589590298588930139345416210923021635572451205643926852784122709827849511194903669066750698555181759435198254011312739474407441861374134843526044210711667372619463185682943319802183873917489946204315118979367239798087369214762361975541359299945442862972875347609751728399562294117713958957988246690052877182657539977287258995400821918913245475786980966554829830461173509035017108421734770622675502321263286278803300796381991787554454937868584793235905053186497606520876811236163559410766323303762434187968980752326043781408312360642981656914467364983502568591683620332031798433298280732583675385120946260667854167076446873260015780782149625391091916396835336549761610528359794355816140850044581637593142763848148107225205144769554857891511039437538798340738778481846917846558200216134453543196423081829055875274717970064700860152051236741458662152554357878182275911220791350615832135438797876209866292914574289868480351115894067247287906918314290610078064113518708537229451747470086325539861530869902991762644981361689970290059411647567401311377800518634080238936853791829608541455248864836932823545781105748652358254078907586839988959632993300343831257812547606728200642626927543266508808444534882653709629245778092207543060266485561343236546418520628834284500748715986823403813040563667118079276720969683659173921993939970157360975011835091957392445434829809809074605140673327770376948117995328076550411784516976904449179670793397515052221202504929447748888275840664411155699306860304529207773128013091467506479853960669779296239632910305152614222661512648236241559059844101237159527515082108048260956549590631813991558684871131019257593451531673598611948610293634714173311067705400864615994119191099473606222738595888437330228954031759082959725608391593262529286784058758776747684898837701527212497953374703772475907173363405373373499908770608091611523257060133608806395887444540687736483736721760086293477480652409254079859513508672252706338668894022160874406968760991554467704609598381955722622258685722931900791719451921854511258517096669731494387698693215025495557175309509427226533838092943220313320168183764464615754944858482925464392628658087792339752494087456563359383419028952288613183034235492109677912809657976960406294556467124045388794224981511255794377246324605386590530310018592438488566395904733921597570889601068385071714299964915164082244006047872593957972204393703466241651271943845910148585469572933285754158223041946561890854911837704374621468489443792617462539254705599618894270178563331555121411512369551096068013486168052623521827314645698238951761495496259194811745287503006806625761257861687303559123543486734744378267657623455143033429087176618299167659533590373325013857790538067878232366030313373915232801315671641466595484092338624627589900072451388613383791275763329725531873035408622448883860662445581553010769155611438485392180023460256632769606655672566942114744935740623073622918057088316235373887385736199257763788787562129306471641770330933984537403081280521629145841804549739629251624775972941922020151740646217984555988876903824253466599562963997176187324717713039461125441626577441701895131250925350855905811698910373182549087516710764744447959980102687162754048740860291394214592879422700533710156912243535387630996285722138525193380037084317609332654605221343106253214498484716238159859330879688331326358827243657939986009889584138575162093915846223531911099728597555857184222400324437762609464949619192351683910255280549858684881793914242310590848593363916424732234372906607741186519705213423228657592649003269024455776719950708570288892448964130023005700184823981990216843399290694632690200504764401446505989904900476589979402620759427954309166199945680557639808127575491624670691246350849900865630897197086982379297034095495576558019479829328784804431577116232727575311053066999472272181729216208812953751003637512366538031210271783517163747481023232335007824725445462998396079665327950285197163081315854868824156015289350838244387178036591387705886799391467550332561082080944048422048281192995757459143771154711020317241301747945824617356139965347570492475404632293582287460458371882234728659052280995863242803782420316489451899938291951750685326512040263952331875294888743584506547158021456949575122443500392235394129434054399923932172044713229555412342681771798039185761279447875917367995199512475033111885111993701635005365086946072579604187076821066789841414227273289555305427796246194376821058504074987372514232571126015268330696770995334262235675469628359322005726320046995111544205393563654841717662069634566685254749916844724931370806624571674306981056024996630707552521800546688309488502837661453272999483667542300115425564558247903061020184761478361732535418601928994899263144061951084319028483288728522988015495157622647234842431931741336361012780825685663244349427681342408363028451751311466546977834192225233297993817934533277677785068973754777084450234616664465617456124052129859941106470283348966183649122373916100557317990429221306562712755808132602032455984602642066122040124184290084669277826910552136776376992608807999945576044686894062215822321043687659820186914930588126103166488007158747515718382096336836649724517308491509535583474223882129283632179331652788760822982899221645752431998978194303196163873925929300022969362535084840290805032363329172131475182869420695213311388088759202280853062213602540971044333804154257459977794339125939582963419064209919719209964463542314277127135929191295929099850020601759671136626003061261724080257564997295503580356013094711986361926198803064055838450906581726603496957171072033277927505373319043439548144982933032540917047551603337670844292749311850013814183071813988136879977329167015830255914819297582234455732891392916564269682817695951068490825952834811862039333060057964636519124629427847250599961671639254985402079813480625797109968159431279861978392996196587267023630935882953189966063782871901617093683101176483038276312420015400279784323614875811955348167637680284544114958413715237660460853116948657160161234576026228323541833997671697447798068098840091402423870996512796885728624130167378305162642115480048322836379557159021184916525664182124610188961681797656340314736030064826073182584234881946661216614014344266569807852442138637759188144617921966139455965888941371195221075344693756081440925921883325990411120944082925003192612879451936440646815205298320638559900077466656268103686470499047655199045328446455259415292621933099510369431254597526030112221770812651126201358830385119413941107660112540959428868607540700725212687145528525395019631906196210893185315382270710968576664902526542975927967275828294766971742793254201720484696574072544886928430298543177314219515902567218807002019173201737378917528385343682956549383163043445952721316080111012247611282215998901774309522060328904633535085952581195311312292202405416133076796848727941546266982144377586182576678827785177140665951590169619761393272363359346799168258629682684253707081357070150051503556334854978248846813298354361316023442180542211434949406848687103522981583489117271281055578408292863365295461593505284849797133556537378020761443666355437370593822377942324329978806012701936498231362935503583103054946971217141438134469947472149323903269917808148587996340247960421704341091554376729121049714998906079980255649959135929855891210052127542369166675101717963920605939141011057732819754577618667040989986748703787240938496036678795993176424519444134230052113319419252800391560215910223033148714118335391375175004729925953893643696991849489469490894653346348923726341538337611224730911445770561118113204701391303307608172466476106043560301021007346526254312933321911248948680568356474430247544395581688420393349747768578960580023769144757371994330634709658059343297716448043813576809982846346873124163370336618531003203084761288910174725004170731336767781357457170849040769749073264564142170011442351758900475248042758588284007558290712675996603267626086375090657663981425981699682847669688394623169276363332123995218922346153326681778118725806252208057761826187735087605300011052468144043685804881593370691141789361512893360715971228559442600355816957572890067398889777761589772397953526620680480274539607543295322842863828419194592687236740777391624872312714601752378729288741775569593833050114517907855535888149966925615625490283741434168705416570795024999519829841457075574210751687424195406391035872687004722155760330872956575081645781990086434685429273161849196755531636286235057101283338630230185785707744957215862297384996786745453435839881450307759020134416260977438181324344422543500843687850641223418658973849194418036218867189921498605462529632941231810080019687784892500029077060507701051923024522387245688472418381678443776878986429787048696827543913531178225195209528109132789349868864894165592431285808655948820436913604171643934520626503371361605238199893213080377727887654799461062216979366718976089168636058361350688786491466932504385956846893555913992378554266764139446969362012666119727511184870328235868667517616095578413444958863891616652966930470808464881294314400296664223865498181826042180255846376312108312962791316946555388024793514948244243076702776409039235148229262300105376906726709242259620108706564377289778412876084357044649556992501827211362677116839204349914504938299231237679012473652834065711296535835526725260652794759924463718004275715942527167581136490997740787489105596008211354455661999336658503416091521172130854437507121846052900199461220723577210219849268232090262408814391775953973177608331580362250044207559770649701938252751859150381013709212447101258374779871847613940683091317243666820995415239667553029273153843707814296935124780580418046723577989323486012353450679924191614720594724203502421251729505009656715590927681784209273370218072733260710823547183922481804295734895421190282822820440580941068979174768359249118404087299062678810903291881530275377387329771805108443294562009138740576038421304688356800860297130252549614749032119011279797553902145163430736012599899377127208617916930898960143021813302421475113612069548549195176171795325525424081784965580138462463913966692468419641817949799415011187975563848330248822708573285632806754481856590163902497742498337544186944285402803338303549981886432396667410114008599475957624863333770168309978811024387524461088401130150201116716894918573103144010807175959704070791146809705444342219008796300459292086657977683700334254414132708597485466114381670626740260310110012475088151333867198213447362270835156806556754231822766563798873073295085147100906487268854974603548184057274209312596698231234018493442648544871190428699770397257032426371991409531440904716281833612205014195482968472682497410489852308583101239637223126252534508187721878645658441326907973292036132036286374395353421199117760110901960002412592701211244744443630722906497277470045741623701912544893179541055307237355115261928345620769072178674492281402186942360428289151578333320838980093917908046822811817994783786894959070551444208975126520398968494474701705372656622893326914060994687432543657777561608528404180256210415911593504315864905803296101031653955659518461327710168661931799202170186773768336355214645123605500335484695460600184251568170734834813730921518421977002547664695153509892854197338215369112830712546841666746848969620195692390163648335823690353300352882224847185530525851622451014464233862104148144196317343146978926444105048523408190061309390240772028920469341005725781287022304054585141168487071056543363768050543417953194397841083436137749929384793991865886444799287239357380360266620794613949945240005273014632579793721923879756172296065706409940569820518607271790627750492456583266637159223529568249650670198689483513470872302237002554520358303584968546139843991761792243602401795106478966045860153481010973654125961000889459009883305285345588330878924250284426057284121192285022471107963013975159183904443974274573227406116583272461174759168349595594484493436563701850728041630107354257509098456494574103822093890566871963696125760657254825103985590311489490393722315726225938239301189223345469424034570788981217494972439986217730588879359860258076366760074786961701277943018758303747705629477712813494084914195525854666010615713004976310254370504842613937317252385697934621359229302985601251126737270083237782251048007300596359461722897230398797983833034694888257417910793027174712052416103708719250610733789640667966895507281482124106791335369014037460968666247487045584583319853570314859148193902583327663140655967605216401932240848251515453684726803332177325235636708862491261510099120587130459443289573662032929947978821669580837555839345734133326662351613925438954649504206048946811693073590966451120756898135348055235283139721457843454070276176183129642452730482069573866494444739543797496006223155013763677223952472196309513608283941380861733315132323978360190845796401035325072078509372239601760486567787560032231424900183129818572631270360469387988477250605476205649157102322405490855563602885730160614829550663486290227730267641530462263111149998795639139672843786860803185445650637313172353460743853711330530067382437232048468683331467751368521033162877083414664610803486508025483572532632731418552439913737222898366516989119989261243948228776078388200805016907721793251535899395283337985116333452011102097835332073106471773798592030607678775252920830451900946244955511868703949828659974737215554542886312388664335683567754521989963651573721194977529218797313098737759621106151841572336170381506052047389835616850644703164925988932776064834243723110680279189348684090942120974158409497234612221401410508721783073985998892100032620812100227148805289350445217042838078797134261803644475094440032739921038304609074041934925587866651763326043805009227462972892677518228105709006440009709246376132778849127971252350954002760262215523114553288651377689884118738328641966149273333035208930285835353519033638086662240583492739239438827124502062801514863305601577888610937060525555274521400624852729901926840697307037109269285052958177700846221188618583239920002513997426424973743524268785742657541211832802095874728106993017362375774935756969666962163736978584197709800843286915334538726322570788717711673536517819215639613955934852306701898686271925286176786773251413084631494388322747281068514146763355117608555285542945728934426186104378901143193845045498471926083470240845809088683227001125716967897471811837741419856858002672792000614873155088693537351586282645887791433254077575563156513955781820558802051585954202685206231514031767255511653989788129875177389715042025786405650335456349548695425851730912181512156177684137437267343299886765588382005272963799359162964228063041345333305178836411975390445209847475447137395287296883361702037960227235035866749724433255092323873379951181347429637350354928294883986295219173382138184345272417268137549860211303356807686999333704511634923405485340957819175957544291176544076999670116037536460139953285003828216728499821665500994809988170877969282109366134088298930749529086134433273467474437757629797247850057346365967630175708337142157062833403501023681374519962635828278486735902542440887461688602303002712476023040006934001663055901970721046451962379750575473573229451868871962769467220073452548626261833434588357443924674383764877866381152269197675648347810338423078769262352064989838106424289336345388086648049509370355092543237991573044674530948998390900313920340295982621317679794296736299903751675862588576462186131733500350775004088434729786921577510850769148588982042180868040401416924070759206540492070288385530841926147670375393036254914540348292680988304468502212475673632124271295471721402289893395658428945783111931437997973727205320345193192516820779147701659169583559645209055015859564286295236859782014125075027608503489051118757957791199521532893489690360345717633521742140953021249028728539468409921055935037165275453945778057426040622040831613758788209857489617584586844781352621764159412723244068467998651243623249478270353465320089152425480232233689102485616524355690998975726902249678994063006513718890240555914392908386060974454388237832296383189276199724321140035164054359641996309372625845611875517758052424698197839109421403564159066797469931918393724307338093534688513845081798636344540607542644010410034039461617618518053082463630122158342159148442380748155243699428986326995996917958921086989998731875964941097593471694178530270247020936067701099862850635161135325410156478537824165436777659787063750053131761706802565973055791229703478601488351610197779422026425644319614805083790057962133207966698399063099690676501862673028907451317456039721422764610682315647927040038584606842798376404846121634950229251101482701167807756877068452794993098128609529553839778348467028815828349136027526367105193971491009461302048638043491631503545119118464852668698541201022426812540715997884158950558087321916030328663544803661304478392032305076233639167544313421475427437192574113303786910610157449123141540750699666508328058953152025508528500323334064098468370656180890768939641151693575152826139677430815427146821438930714082331870687997522255435507801849967720720784755696897412396313902702621039029461854107115686136267384752539890505296471714773549823986687963745368555584982545595111191774385918571609799875169205614385384576506414105556749382602760941634849960689450509928753946789932997008055526562778998942564499786536041419312763137451835713389657373619502908428922258397123690166786986395836436134537549601527947515050190391597023776008134027746962926490097285059114415038163482557317766730996198237394027599601448161679462222863628741880958853022768145383667671718650497661726042210345908470597014038500762885277539456797629384647260103611529827190923844170496330049437852646762692457808619319413806521803505143094707845258305347314036202137040444827018453069610813565724193924082160110397168456473658782993745060409385480999284521709426981283980342183833585828399467228394394865657358822517998374123150794861429184879642958068416049842777623915336363826158197001904267043171330087672459189004353507743623461657876566309427698974552931694962339615580937057334512262168897227433625706076095872733550610583603394037209421528188317983175365072712718485700208977234624504814726249141824001161649314028988047653283328861290040501451794511927766473816923538007252095433813997953507704020115467909408603117519967214453667393189480318064540113637854431574515271530906432635384753078325048683661511636907711018745088365793532355749357267014842996305803801814766478022044112287647614633550201853800114159645229008514617390061491982441415152058426627045690387681616966105922292058022589447035696785444490730746567710795287000605063555363658374932444196327183338109938114411424814477028490368766400778203504987913338660955912151792593513599743038137628481202848407707584975870836270935731907440319120554241605858605047288197749502724021099370722505827380036463943430838713729167504446516215088478214520784297743103394970880927788368702733503495119562364772063665470692973672395588752525361059893820572291988884407030798069032311079056169153217819043090659418749015552745173691573045496705338454644241985881846223323630294135985791778878490507042268749000544156252808691829420836389528480476531594837465276361500993047908711206055920836787727452156816980865369320989666837573564201049854868421023144965139805127748777379770786328944032518445626886019706596399273469367375223747885467940250169483529142601299858580373547738800079171085102132235943527947375085092353479960252834986234149000049742606593944027514323875272660129654552962395747586881623074884203533121741030582511680706611618595540659865031347645901218117070696602725117367673154646106339707992853923105032811023084815582994613765980079776483891652330452478422407367272329781708841552413501576127806827986017540651015256844833893403506588091977991557548119565911691734543822961113866290105773269287958320695706519852599883939225183683359333467425724915015264923672636053384172119160917688361414044768959169594095667827639954589084831860493543031188108848941861864098604674238918687589693304522000795216677408233540792074980631994189899397485827090690977675029939653709053306296381439648563875370835137695715945902262815456392781622283799053718498018085566183565200845507665027880539531099703608470201836053530236482982612628872443231399489115274538446429438250441346033399268311901673920494336762622569227095260356437363497782627577166436653471736883437854249747665121491308100459279758781359115881350622467719608699197741378356387667271460276412489405576966232438667149096490929575674978951998557777237779543540875069513032434543138499906936546585598566731123218303474473988531820762785024841785792353283237952543511209427548247349531708238914822032689091802685105658977256816268887631645909309201483875236683236181444058840162153399297332385402648905003499343885676118762876025108712035228786535860492301961900306015307258195433857163904949019863194521415310443808037001400771133596382527193190500998027246456645890553187189966333934423573400637837473110985968167425293515650003910621105110187547175923046034523432307592866787966105417700898565802456164313592516015797350398055993005076115915719821236758300920434508737069419223523735406341138144806732513089718239419929640564051398608556258745236971657868352585493155888565828763650930451108221514722432136952572457177369121683376223870122494488830394177116447292610631249447441023241508686286961628659350455266183465711587539763278041396585665266910742701828768365635048682337709399703838248547034186893885369783902239193604024482951678630659723840095532633165895358556828054098661346214590647300904381957094470404422373933211911679748497433956850496442226032335839503992908586850939140669242636500772025954491098264398995490536826305823479039759973386455914367640519975771589284749052142841705365792588742341363002216165869582597554483958963085799388333353549720349301705535825866532142523399604593921194630796727646569202600116968732250661019845680001761826851669287930433966673453803353658871184666553948593382406007267746261973449120491304551337330520560448327537880459898526749833495493166303566012110241492293309366730740656007661699271109699722907796992310216183152366950338818175061145522452060170639526452719157580288734209286448917643650066726596597898144826738262065296861441418929294235571101982848902374944684345481822762126791406271653318740049159020957855564593731284215233785465591870363170628250943480904913216968436315584141335653391487564521719037802640488241052647000136087794114985607209511128540929763697505246483958374422462955059195562548207167417061729050521858550123130845588211078374624611830766794296941611718603286376100508834561492113502671440604714729846342282456890213405524217280216048848068580585501080648503652166448377315119118330388167098012233799486964070592700463307798469696037120999238704667350222492776618845886487874612118535531700822783733219167655553824437373650116202436660723502013390593014105415029850205214570158364290746797347222288331481383082662975050179399013552640557283385398047311796571849012497389145319479010070878649089945162239390179982810789652139264653354948387768006920170984186684829834020270746314349920630515391729767306286231650953753955118782775039359970843958297654335884444190165406137197361378658185358515303871762656016285528795202132933648590724322837691682340207136769854230760190136156466495326278828698622590933210934212036746765997588527701480233245523446278499750409705974092350371629081988956636183995381527972283198955917333376534694864905679942552614086708145569484923241352328159383454821104495513942438363525725371329570972822812340633006924241645412606150990086021727671177921817032998981064701200866442638203837552499877334823813497326942961198308921602678031614543445180685290423282769016145420402223796671469634055431617086248668397767025957415934917701284052996606001660991752391557567570481394433088153515217549105753089832130646589192744773442545825208715255036282594507830436574262043814012712821949470801781207224508823739779869166770978414947084793871851378404253335570863096020484578105676934790484522235201577251687753264702377824220679728097620561674316104472378085322982631375294059387512737512951148637677207118011429788152516147453838898489149999711012014346186092431000628088521343216356633543811386941921289011481289279523114715494136845681283580713413958287216404325156395977875127267999712720515536316079511875218761688731332590252601798042203647544113132979361230282126022858399472471944469764768074628343153593988853162349405411648416253198571306657945255135906402284534608581421220866941392754383300604877382123599887068260984763473697601990221146199938091549956737416736273862155523684263380981257398862506941252674339585803951947032823509064543395818920465164705950138866119004913965203542262218014157778750587993505914976419984132185863147247453235673186892028849726623345315454399952552507248730644095005216433135812918531764922404004635265351723619672705481097595082832401700808784458637581595042854596589517047803664513231556500456161216060459232825035825043449096488535133541001325405978417356028116455247894179884127539896059878596492092485848536941813438325453967102641037478366900240375555870335725410081934592523273448052675202669820980190332053556219173629944185941167768775011332727248784194936971244201030470185436724009125670339786604163884800076156748037949447831538001174918648496527848120625165992728405810441551416641268594969611814687049418737070158566370034208749676589853509447092820804534476318423778651204194544965348258943774128931412608963321964164182394257390733589595447594240831672117159540237534614275001307116920830240986159788818766317096484731322728077903108877573129622774163530049994205363417079640402998949391837224680473426600928125791136570544436651701691766885570566051881155679497494997929154333317554752978041110802462532799808035912909748139093008104456217897282907674844103720681706247288372705210329988555671757136379871320946068709571861895466442988581272370612273895139541485378749333291125422152825798098702174061755195340598598690701891979594212288640301872510240219425698244679116020681217378845652486050199288259727873088694985746953517034995950147310404456782013864688330513449607539177294245082610274271172659634077491372753992800737480236290704231339044836438646644695219104394035357748744120895938343250331311790194299235083846219412996928096137366746300278731243417533809708836281221719935541441180625432617472394298562983757921716908107776519517314877459952565794256813048909855694609326136359001221595824010147762233481850888754129575769418716764579299817047952605698903845429701124490066421169444678458652458878999404912595885380686119947954175985476176058685038376229884625556454939594762159652016668794005734520800008493766278230003503114050504422838605380454912622544469274063658080305725714751566614913187516055079822313266023940455078065698706230436554810579380745068749745539067635600308123935221674137890626613052954756995469873225309701150322482061546087495874759238096737004862860981204425675129437138823197827669476149176572691365773874438656034771752556198194355423224641869845052289516835825796017212081673618499427419037889500092259521746719656736492173480024980327925045402710510213064744490972341080604473565146949357099705544403514357144530299803077644149989505247786090693009999519977790547286127798942652174652750287495383480380206488487256656350389380857952962874166935285197612651733770037076022108048792046293986339747231540080429795539005674626020226433539497008625589952244913303174470880086957321132969781283672235530268769042504988722447702255772831395875625598553661385416555638540179692838644185892706091318124651435569286560223294478826574157875255571283864722356635585256569677735692394022287278546091973297704683363665544023389855571971439865916942477854159260869076541555701045330879785998805605609962965281526712381046304476705431268850432793477278538823803107996426803384041211830622369044801529796277573115597593472384664535406711622075826178039241937196619011871023531565762848156308689996924562373605121578739573884534040346700815964556117545243282543155163446238380241265222438261601561855947015803765970848782699545058195536927112207509642774394914297023976683228228160908771374118384047139241410249604881580336715659751961292329930501459688816292668529536028469788107107332931522307304646310332164023951609058143371500480094524470587157413140740473888076408146580712856873073488843468574580767845257291929160965063210419473809057066793838411575064704016244510135863896457860759972560028296186665907807749586980638517692227249916670104018942098777515249153622497931003908391549471947427475726792528443503073805781958548811543906978146240679932925561643940174430421035127499010096195615490176534400081320106718065415853783637244920199947983560140107976541901023916862743099738239520750494833010713711240090255766738664020798280875098744093155908006348822641126367442056087887068854367390939803861679536803125815081296725441300750299996691663536717320650333117825843989127359954354937129156743086944324751791663787470094601309007118948283690478032543849018843269742713886425325089691079191337843742913831554302383992855817038162221728783828773082874121097475458151269853103310087915042273560800567900594857378222771232817410854797330243153340379093227604486876305790229797982030990515263113051736268130916896437648873659794611098956338761966796796609313744352199899838031049424077637353629928711171558268030551822727405414619643004069090295315666943642544137666719942424257596541126914813269269131403493083046999502006922654253352737448830714894825931672905770683625346171991983255424990854826567871560327478251692757355548748734159478837780167935688301699972434789901792780609046555767842982345078758978614286369267472075677509403694863917083797955914756129024819583598005897127745760227048270294262223519041350100924141717284355413061626699882351646038344131078830622935000365609495252819276769228225221990054770940950417979991166478771341705060879550358529567436009317665382489727321226829788590049140262314246781750643262826495363913850321992799089360346229664089350242026009468126541820049323449397511862681108248155480542448027300049523081364419011063541721995140183408864468670957156409909680468216771902039611837899967545609611975332031906062837210009315712491648274618868860126133166482448235002709819219909685157712804686878422917528970628142626446925742642654983379360460223436975730127696043603093916996418662262003769247668782814558645043805618475594668926974429553740810636220160963777869704351215779800155243533102675510485379989884162361654603253752243797489275442602566362955345400653785436822662068355975728977284990873140538780229323849348940806630877384047356955966850964426463311434024290273063989843519347384074005939045170396931126754969600467007993177343088644259047791142456210427529374109928870376269290556575103788056095452809916316086979635883267138187621896147309397801166214248329643017058216659309810366030933519602499880105066348335699083201945980380376655935248079089377758085188399225773101655067264006371168810761513047408025733355614324618909523546790930513080119215758714328310471600784218160995761192704887988014886486997427126078576282252072448572023414667943563745057970818233360875982687244460288199958707668674262208769689892733833428835452136829454050263127255165538526022563102502300279800031518105863967292501951634188107114368264271040146060067037570555560648227716927187881230674563231888125989176918080201912391108837749865438954819691228951035080505913389895082890845825554954451502522521718354551250000091861638161828510519453492128866562717673967354349546604871996628897455155648289827566936910329711500775088436307511508418990974007345973109994799629009604737287890835407129696292254879356474275035742595251714710637928031386712620685945191350611923137558821343212158042941799848447321633674073066700600834848077944794668483138446481494324906114444657502261477870109185315238035817053169923317321991685125917316363864942605353733084649180125711112920546873259551766918613564577788714657009505069157739037646172025447576757584829376242267289215006797920412039330151892300915293454612363399007686393422251378027471809961151785429334968531727318057580515646661327568959250610201574351921365825173660438469451569764770194143047822447678119316211672236680819339869984340411603172593905521244965059569637410021765863358347577856869993442690637694698936673571299624547609488196010534300835844539311741593825873004145904062035965606601341227505875592518205297868945677039138954452032770887083667398286576161051877522665564228754799778041588368476136446889976685552932037798192755652113296232659899911885128206851541567689972769900662911127918444173438075073763552917527539846030641927006714651982971749368790580545063607333998812741666785349025963765558499107510860175052543170347734904580832352641435412694784406056343873805358323734775453046374451987254513667067849355902607681419658454276260935920357838102570728836782854679970609692484495760725773636154085060637433574695535771328105069478743103045696607625800952093993638356276349744855558688623436103861461733532035050223333827577899982911078440155895854587691638901082074805223003139896783247307345159768906466075348953336968420443671600393241652613596576630396192358724593689054012304040501248118457557376858727753950035965996921475678907955675540915753395227344649490357767715231579170354853227271830165103575997937218895864539535337437232841536912909262222212549209572225220637041098405992137297986794251123154715196722338108209831492745371367568161422693779656659510683715282445696791610235124615843286563737011566845647986586963673891250004960253090246690346425141911588940138341747824498817747287212288343390161125627421068748023789224726096634994350293906235532217630191026505348981679655598988145350073632761562819407057019022171412757133556785404992454792770145291906917401998805251065070333895594953426151620299281188559225786571975277845674944511464332164388172952861363145007272942858988959941585853244926280685281859874569724994747486324209050166845111996296264038320118607658275659720024982158635604483705734705994157404745858015898816172305913975701035868220961461026746865556805207945597643775478437749090816453637419306960936184823964151038246234217140679716424714837052283708505040167604494325519011603399780845355543894876722151472798199119469501574483542343032173441370422305517820265264438566005714628041601423906640247762733435774293645350640589687011168336498829903099990257537974631755469597208884338268883530069464838670705441456790139293130912929551268138494903424574024710905293793150190993939670430811824795626875962837472995184483438010369820655701076635045301754998979737303065296343812397823415679969446583405103342105079062069207536342161179589335457472161626592377486979036633004901147614152672940178009863655872657703152914842065632723100903393900990672583137168087266525796150962784536476523329270655110537409898941889510982327702907669406302754734620980573744343568548385198986097605338994110316646886260093563400164790620183161348563356058804981217110644380498334263793780407649858144914127016242720414550126969917437479480937457691591096790242982623706586128408549529676926379329928466043358419876962525155507713023065760602048875965626057855874997975162975032575095520603683374343317718683640625392836113285057045281784287043969710089645745172816899284411866815004427696353724491737631859070911682848733323378681856626354850282399064932657423502248576571465369882937192271790790484122682004790880274861442772164227993439304198385107108842444891534874197828759158130174795132355483076679696414919365345532465569877699036691734871296613129906613466453027439389904328394658849372163387606484226183454337355171827507162436523491385367884340704298468800081569498688150567110074492655342505906152397426763416751086798695895547172798646393181203228946315848794136533688944916771106705678969140228450864340928083460741886300086148217425458264815518081987765951674743555631583128761445098790461674719325172033910626990102199306964737457116746792615804226489782200887345233916717631470929859051358553398720313884190471658920914586960030160982372833834050510753443346785969213658805312573683433463450188090216839842787159267308263620456548911095258831071643407802693974021488204897052973432793362127374440299944147688426307732777145043635590575515900147849810243259398085916345329549776357579791271008570951172353678776066973193847606311365404191309708272450203337839159226876727843465028443190497368790032269010610090003376890323217521124512810109173810345889191802033896305053241362532897409193693217460173755785668163734351837001944520364853304289975286723213131438905980116783301108094025377906557667141230804967175020296918323417174570575169280814070196525602919047628663850490111304217357298511464292135231715811441018899167271646677696899431304717642959130955447603394792850385822839566269805577609339975249969604242745669084258375104020925969109598494504781415651426318005827932700234694400628911335821233808942955479677069696128445405657250764776762625817377165710999243633113177147551175261626787443450142672910282093351922026552631253516952618781520199313986890032766354020827695615152295231650126277421517620904270420513716341652329924745173655204796654607844212910342392604317939427069502680311931321069178155354837549216395766845877181638153663164388288524754762197406558593711614987912024659067101417188315523964302730994081720059110934137204355261101048810455402530149815683936355687362862229098215746690134476438626596179931893076482998496488097453960450733812742119794863807649923952906351320309832929490647297250106811194486632887811411483587035098216290848272446123545000211676107364887147904998922857320031399587830492629985814596017737683004724020404083295795342208407597340503904054445295820262980292111936115727929415634199333546415234680597767237900852014301041388944224613539204426349159505328878385948938383752742274841194315038837308724730801688490196701877678301972020063713872679917553050000138439817479230928335285943072716436455262407130095777834566455721768893894361019728565170352415477202159179743081657414867220455662999071474017632772221197993238058260032913088396156462582284216571411170003920794340187185897336726345310447635182841484439544919024420774927755331531054599588668255161555162838144339488657822647813719190334135588899633171855559990866026606104216881916768332164877030480138842043575450553484114635652669913150054595682250516804339093541286745067667722382046738623667965211021699333109635276881058773185201642672657634524160245913282923010890885969083413351532447075257961659249068686867347220205216276918686475806900446991264577846634637612500272458568791642386350208069639621362960274859397930877449534414450702919435042791092771149030557763671648255031879023236692228619972792628646629059584585323927177415748537204540395708043420504349269013511078818374443262977065399105585573911931923251647700476696530015174189233401715781995506641557046994446895321607187637325685024038066698510093954757685217138109867745744230136250022865911463791542734031016188272228399454544822311512336598185502618274333079109101974050218173983289032356111640256640816632784919020009585895152544377172359249111147272189599939681172768060902224364368432574354142020005678409518515326381901895378679786102984936510887678087948164623007404980639782164100264412739138761001869313956727237679261119342978695981459216601729527166908617252966434420368059418945434516384170627881064977376029865767016949363431966160938729877410015845289775640945712519182043473871196758191955013615981755750722524564463075887205703791318128020922118369869870579737207066093194785989211084745544579942765595126404844968845310677300370127232283354296826159346940908132091805293583775389025005196374818565883818683356664370286993725566648143922833015371077271389110221367548170114069975891528569518324444422403908428155580671567305594565739682067990570273759503411346883637257681903412284769102015171519295592812535649811400814000359738326787231672127640199076604741052644689941462842946323088994723818641001572721366696530396311541895637409854301989749276031727894142870328430954365193483761568146813160625901145745158311056273100244022873545036170861832819301094468014488108151640260642577062975653358528040337507781304045079191337259306465519430625476229337326488828476277589111176072921201117557106222403926308413396124216426013670707556593181304550258471633832403587876147777002074451754989153545307770170977570563127729723747607424621460900787952922427139875083883438482215940107785030416126976013947721270739806735227241080970465788483112771147401678392287757972808202786858143365180259019318106354744646738169008476305458262046855514536036874173408138845133747785453513186007304984446450874821962098105613927241163713040399041711222475516517132430403932683540219194159467206840657095880981874774799957764550814238166967316170945326193618365300516651357235003280436149283517675822088920875708051218255027013575819555790381425319821041276328727784742870340322304285834332194297780419479989900407590816003704608988305877864096070864686488491187711876795334536516602209409264026558373032336514512120626100531930906417460123121214909632542846767542139257701172876707922715961757214659890605630802949199018574540121565473213004373428174299682216305008849696243618754219755292616171470660591350441054818699240120334255153010605358452857525539507000963204701499384492344680325659459540622139538602339283740421395782966992341242520926165734914014878325865891181809913907018103909850007505988110981337808750693595196961867242312868244489975176897020487864550249371031928793468107233180671897820920659446732370492288350777010596111984765634349400603320506633075874187222318692507456894027038541138150316171177307117751248869801047347533747088709552250564867056242071741616357421915847860230024541091015844910137705412088217870752095982976761540784538739947336121458856374577606531504094376746472745157575099376402978571363450159157449427133909199741669077402245415885349112751831413834616547163054787473342335380875875221896795005394562649580275846001654184826658129123929748971904026990316384921263913027660614550095928226875345880920080747026099534164536409503613298864963439273905848801455443204335626622569032271061827813185274213201744603009408409063545900171582356448927852345102001112528352729732778109619742526595068817828839967882287232254369934851568114542743782995989588934844262312644410808956118331239399191557195213766216008626490902678678453096118156673148617153358596970673330203441502834747219107948572770801465842986497674910983235359775634762828563095605916492655386192732888406113808943766572891581419927225569074683586198433546392694689343301198640448505165021633849358942336218966455601313922644779881855594561595874967764576420942892773701197283363491013726550489832709456533505695334152190498374997053095734553821304216092774441485298171047670297449317812653287155844032108410873519705519308030000526461515005719889395411488640494537138707769481813573039926230842020652988410024081728007265560134617825474679755132539420022789152652478292205728281088335822460078905805439234661105179404580072499722148513429421610627314500057835704584907720690192270840275624049712083001383158505261248179163641690574076919350067856653826130859766430586422845293942046824826033166086159301790482972580154111577142640575671098657826887565340082026003211975307684281100409159238205186032423447091842273184250139158078186626086435181964829403580884452669828390169090089349369239987693629671957905031820165226412288968470627646962762741244172476302799719044791734507758097702470994439624264780073273643020316821668604278213816715871880279586626112258421218013757185173628151757172585122621745375029412969177423389346836850314497854034556364169503312385815114382313237584396996369788995615793342010242171868811285086598539109087080323191946334465568695475186218947095035476128182198234250339905345606446088023802310615522658972829375884790137488066265436271098422306835172088676274719472601086139733389567703845113598857168157611629212261791591864533506485038461152454938389899844321184541254668412097318483388012809340032824598611458706272077513848440908050437482045618061261325091886142542220221835081093123807033924570831748443909839915944567294670670855527425477471150854992956011528005611265371618042332156848381658127836360565583844477182415227533700129641709005091588022890579462670220282241142218939164755630193587574983071665706976439394906746167585640899887128624184448694460980670281938201945170899079748536818948998084734736889750638604483821094156094016664452273912772179698557339180834793579652324188075139578696635286737772862893099231511312279109946064859105563388952964728474312506544050537971695899667873608968540250811162807703936965757583751145328391833512394938729718066000331190331535441937244952019790518507607871714528173905799038725568164886434408892742055348728196419491295711962265149809005760950375567700880299845440883352816061526971279233558863537994461802065955960512004261548874263851085975327155718986247868072820476070089679305427854278478275005302229898885117962729153333554132904018737578173176554647857284670541730468742550134792657688693232787242162179374794313653917443688121342087619068855607188901475382500900112159920206066571563335401300976247387510039929620753976693707384921463836163174872344984286144291021456063335921683605030564607969894040106587365426110262173830396063177470722821435152425530808819848302435007882350937943189854555854789743038371889245057402787692688900408488234283527291271832276647539358713802246545820623087045945231392637450572207666458900035292587248947211452710572953969147856572361867700532929305973044574853387792063739430863740372692002077712508177459171088124009391795817357319104641387417468803503408420820756117897193063133015281248309844125483186137695304786069841931733299834790800094321860531009834872668363214554757227795300926449778937448050031689704423581043879871798039673614488921507243525258983654357716385525694439600711311170048518547621574706733041360928645145208901105010391214421187340069981887027554820644292736071505363215608857506772763814179322942712850622569798489663743867107450919627985856319636673276351871981254167498840700436029831783382891513648478038015711802936621145365204258881346103024542251974783021966290010452528343323959431392338787232788415806912785921279983925027902967481555638551819507167793948746393859951822982024157702939542787185643293696282617887924833451974027470909546654775477207624862018939904980868256756988696770511811512577124930617508100684771194639711217416196645085273775386922207980947433213991030463437829340344755612027971841637650259142555401414334371681810447120700613616435448037644498058247720564295067951092912863625706673286305229683783858051133402047782945604101526021623529663064016033748934868395752653350893912804061017714888610048817909287796919758110577810637692166408390015168992724105941728867095289068400105948262667526518173009401453669776537404856629219291437446439904343167571368447513546836298530248565044481982425771913653811416655988684815061139794817201024350661800286784597976248718697174507144348210056623478759896451063057185023455539802931463257694619127988404549191726582517458539577567737148972808641528362369165977004385879517403473526828744302865172446364203985206819947602432108003037369632459691632874951648641497809986169218650530872891956213462656005969354680464723692217867655753436503335493729521077079710007449390910403342949563992898820234373726371624789740128350089346192640090708197056155922505768693511400317930909373127355672703781120177733968272933531112019616382364991234980720289367851014139115213951523882874297790305255308197402852490676931014643225098485308733660121511696387710708792667011211168860967866803460565291145676983973806586442285703885202573355918800785385107935102429829530704191702781662004484234576948324997589684232774631811761444965919071536579024861324633408400791097588143059589640225875738293272611360188335928014605587713550526617040971465083435445221980313914654688048397887222808334776906827598538004790563905696730725305292675133039509050193059655809594838324984504281992765833297353988639134781262945716689511606982106833813802205963187608348248604205821694044261062116425599019905406714321313036681447273629291121335972403273959161923737647610509781712317751154969266648378872097902201961431315780576048186355285151938264718626813634096674186695717088630574266784442663397797738798352164748407360248146208811369309246601444038136032084546756650715635884870579236251738352610331496636085820714695404564076501292670213685040313043148229952676936601650717900985931127254450662448806938320294031159913235950080097132465387043179466825719988705214986867052627870207334699862787086606704385232714907638806103093714190940688236561468682801591723792137553077529276832007734287263754423589694189390266015328990757300267769811977072213016049554678212625118829028025129363803584765229099479867250682243689432225829297016625004462212425455311101560479130644710295707614079570752387633178330767958655660124787043185988858501234152039169242597338426633778324852668075405334485706930694448885790031554705612010028435483418397194390766777631635055165816920713009728509431446472100722243619322219756101206212972240997594511886295978184422992747649512258088157528795890511225151658015982364460479844216250854080664901497788256069704228399374681063414056227448412793537401840193133079675931876011049663611565161442928855477303872137157460058259687380165276317188345250933025483385832098772362072646192408029001858640837503575705588477431742643589300013681074631781665662430977863759468653380921091069443318888424635974107480565346809149569569917985074403031867678507557252403292226033880996864934757925116848034100492813502266300981446225806999247874599798301443601860649079500017382942386736785677305073808409115432271166855673807072324527942454924166930436790656333643018555577215173813566470191999275395677737434102170117420530140054170525499713427998281985150186126309541502237478178600387712638926811758383448030886116014079991443125391309362530607270447663470316846980234314843822351111716721155690646052697099186825536107721334051024357120216104158782957975182549255533143212408390595613369487528142121622903873326891258092926715502226984093705569716346631532672642137438296612548156315376348993577208823120803735258887740238869486727671788492204123559952339468539408263520236560164737420915448861890429597190788869251300556450649552685602005983247735929031691453554389461184954583243058672118687619985759234196914149182479597098519346061959624701309125429663510342212261970906075726334666899394617828901340422111348960592388623030757672031216866693426365501136084955133042013888182321923490095232194574232330884197519982159270472531757114437044050938865789205570922521368549501051884239020999150680247822678345799760379956787312421965853565599185790294205396271037436917628169258070344751344566210914927965627988805478549258035208679557365097389487068657212917134392271306751785272527399678372187464767259889666678789792381758066685278729323676066437765612240908684396415954216906126777685552227180876738793948350657712657372809604469815990127768151837343191049043983321088043036894796508250125922680638254329248263444942634119650770118045650508990031548258356777164356920226045508927480808971281763339052980711058417714772563110132557067707922062700621864368900942806502229866211780645805102693443000329084175799215098231576912919599047564801812866552264820606399771341791513033584664019316183902675811437696706808480703748603210009626602374050964943341153660648024809205138846187463234098073871514042858346071047691535232045206943146547927345639387653876353885933162929660187547399226981339874265067532512947386990870296457767461783219506589444422438484815744265528957729440304885402467980775343652344781986617053750955393518292175409998239383147700838180423825711755559267399381868170777241367734519705561238284836735948594370005012135110540081369420357128246897757375410535448344312318270167533609407621479610578472719249269556573218119700911235840074219670088763688679664684903606384846259052798830432090608282160543173739085346804222188544073403726862152464420406434053896026666236138649096562579780133920533662020989666860328038218180760649671009721786959790570600334457781577489826933053082298424186163439343739790792993218316305068230790517868918416379729864607214852799044281905726202336181811102505588125668275520546648910466174719273961028152698430803649399481216807845369389621100393346271719915219548938606684716667552857387308912808974101489580905323297711913551959381156013870446025399858488004453896192890222345009518123356366667403081294515974788372076498021473532958199116890389807381622565819192126694148395960286784884859478676917001954100896907652658174786616653128631489433656527307310964910417410243301035845841215453676152725526161362789911080384278306474850887536707478111336751320089388207823513621746798791759275068974961401786401987304213276943183621927672731776692958949397995565883032507133297270887032497285567964906975086374111623940645267912227241270940428259690752884902090935211135983646853513674545456014903388112257561424939982847486038137140613978626457708104679409714780341622912116113327490195526155458976241182911910837917510090067591173923904757610866676826713838713122935959660316050049554733574687058123630042013595218589445197567833610819569743200216185803956618313608962348057377111023002190343383884118733719516969200933672258149746218049708880090446315162408180993044399421553705592036404747548742779598745401988555476575272311350166280760710007800640094809798130495608317731623480207992028374818579888333888156463313228320076811188497096216789646835672608025718542492991459910640157632339718835355412717144938218344700549142856163526391928999823101744928186422304826747761413343311625445307976670609654252009692320670695807971939078890795419886913755045932577010790332880569929279294833863818960531801890530717994502105709376314261513592561721637535732179503178759296330843144866602870952792093580430806816718531071380762685422170278732408989918098366615708085436564622174571212656384387740551908258865040193456395160593392662788063195015897291312466574482234403617957635365147670993901575560149002795962892081554033214504421045171610582470735720533249610941598500845094782105253362394565160764045735823464863497695486426655261904571616665926710144363908484163194538491450800710459137131604417839346010261148344273657068213004151610924969032890672898573132466828904938065698899728801895094069799973762379728282332702752729841372702470703872757255620450491476362578592149458929285292946415851155480721346376800357624844661403337200442127821865406378260356490318819178552865565286690823134335524780812570781705756923015101681701168019423470977326727684913753659236515797681044066472093321485466236792848604078367055432564795289436203165002985452176170214502617514982466078500755518103080047753067916712969153459522044165140761408705499322343094209243172804965058649442636688332311591592790870925915101244276216483347199672230508077706958030883856711432178102562849389501910182433380141675066561800016856917810916171768032543832012072298825613522944704053255837993661217463790383263445938874930538024554243475729305216804203157377805688122082830296645371224346758446108445781037420358804932380102035018531277360210723873598792219087691776186247356582493909729165466677964166754270568612928180313843930820923305180286662402132760885350390912590930396995138374299828401383362836135595069352452411289237072852007879511868725811270451937732468170985855847150375715195403077894190349401906382097507062152851038525074534879856090050098683447362170778531652139589190592649292126804434585389940928597334738643517027420367138016883830515184196525556701861168619494970128875121335845884338380165384387533826711069579684747628810455120010017676132427278873100508710572404575787666420703445346454466714403571401554306501844621932502530607073498152232973826637918776030378245803188457587164719052580079652257123434317448609868643048156494244218725799531509343809515016036707938273572854880843994200461296451144569833962525536993547110911436111631928049218961029774383060563741547472658619613564104496041766070495902668979587039013855924069826354905532333804187326975441452387921472670747372495566132727005208277897521802823415817270743967491806048600822030981958776600654735398081003531252737826402044266838422038664884594889584484680625576456910347991446215994649174958026964891003636490957880848728548921019328157789488245332050747749622138606697788004999738645938995517725453548964867247074933849836668817438734043151307793793422085726911088784595319335050629611322636040969543762900408587870351667500417289417124615703685835126529860390589258247002944362694706237020065593642089228797470118500583982145620942200651295496824499355434153191839461522028257964379489714476854159838914932317622256024566683074413633634465780307405502927313058115165952676608871040216082336321339573397825220683510780146818822547254961532914487622643208111842581900600649363468155390817626542511346578775309748698226022696282064129552987459293251358523316648669930703623814132719801193963967085490941241591483770017648392629505010075463860311563253299609224790796489653087351339275731052323709644937608337492109645955330462050802782075498609195259989037265409578388502299753466552868226801730577647425267988779345385263597277230839040071787184959083034406271778841361576864472711881831370349759798858929955138274722340178624377842341195620842887046207343855342303206513898638819841038605885757557139990222084442077455075866198017274055833573463035376794766258770610151175634988629193056191244162862521145855453870439560141781539935039352814100335548315298659352840420423187238698196974455074413370348474387529141447715007015664778113068016486600125676784769230587644056481304019713488415304654513847675758956113449298322621449107357038478086916519876134171578870708915314203207460358196940442716717170996133492295064580262226901570745850433994645641665138745277554596117224557751790690706114077823594591505817464740899911964967070394487320421664337313443701753199655422817721677383782172374400575302618956692311852573534711466769999563525516596744702715522724356807523446832084044347100246151575980924285207846136576159318379160128932147183975364430009838714778251167861879380516811803060351720285696517416634814601686389319949819061590654688622425496032770766877563110695631239721765443619949688825228497872306337183526177602478016437256686121742576731005005020831160801852118482689980195265117125807125439116393250577178595393486597628249456559921720580914902272962876224602325140462438704776969738853552187048603338530447802932934319217682333857121747551440536169105298144384112177613731232845078475041990777188056544612797092929790013343859399434853750762869156548038766989423563947589946497585066630592917731973500800641047095286495960394626483966092691316631378829795055014915934008067364739640796813504346711473104182601815476794120837969887864596554812605666069849654054572346985281068820051972015901922175620433966170766877617393930834233118327700234909592565005275116177162169823645307740250778287363906708471350540572579214838906512885872179542868857958125702033763389015786864712697008054784178983620047568144028500251726135781064733137298677718208200170726744880163066071692125643158181963965469787452128182108393971713981750936315068937388528859776921592945264396116536710287228248670793279236803991445758143372014733328277497975448353206442821405557908852322239592087987465357837091423693749616476232768778519829981437702699279549080642690809624968964185480454236166211734625622192310794088425713252454051040020970125369552617110770548714816780833205868190102682717173847458971508471862909157894383773503726520385049904980036328875529907156322239728868676903908800904275772480299485359189937151132785212921791895516451672407214580793108823911218070756306899685245150248401077433894004348351290015665677381402840595171104431112287335766132320275988002477899894933398558775904291936190528751486217834406682088228402478851128026960139788527156602252504862395297360383167049576243901096061354413114132699262237889224575814265932855636749597425751550879069032568496011595090888167180845798493976128842366831556040644229615807701996788479467269246098245949182219277318365105341774082534494221611410668813016335004782216535495264326558979160744557519205625690692471748386538282030855099798182100127082854303072979157558328729840397519915698219955672275828010436436270037930124248375673796871518776517081944370517439902210507342114140982524860200705339368542882471155918325920153629587260232207535844366421567727645070055389198968408744951276371659973918758461989264732601732192801568125417054453538128944662935937831581695212182239678952838288836981137569026858510354763507693328073779323914991576298837754232697163234202081514590442891903972189468619677760651419831569692216851272770837018308096539678747207313281243047487797113371466379506277058941321033112703181130091816587850872439067038555907392013482399784924699960264971803197266908206186790739689124989950179712660858061644336567844996007723615218906487921153899107466236498695276941244189960503165454814567651246685860030238926983895349884665540717684494371800809714274556510565184590949320942998811451280124165211325697490248414966327115983221241930993029808861858556312101606523438009420101699560033263189373186818216633397743662053488887516210135316864687410320712567479549332522835741842296854472707611972839941579691393577874513607469892275288112785009526933839861882808654637291244950956110167305223148559040330482522065874142983768523458073864513508515162745138931758687593823292687539539886839332966103224412718420961871700518584342319363904196327032285406083720603801497734592904871983174236876174210055582482682750357422796973303953097791205757828724689760201767830795070889941697541380848714356177964322815618304884852908776163003940691202883744422794534244168291557380089973358414239159877953804273224290649728882988223700075408116572544017418124517895330789596722262352491704229049894167049629802287409677162166941455374395421281753544264173267562200549004278842984695594207242090158421984781892717988250192724420764939058940163048932393951134124209154354177333004542652491548415828876966758245662645739178854228803209427678805251352258596728432730179726287816648776088663991004954597160770095563839973137125312181198645581026021413217362573335951287324552904353908533185739760548684160245095035578693749398776204472279820767883439793701148628439447455685083139636189818464497093603786276257274477273240602437096882047562718796238600030793391746475845323238423488915134200450120181685241072449718275175979877254109254409881273615772695480889847849499328800280548639032073582579239343941975492162167072331436222775768279297169896819189983090641719271014328653377331581097184142072027467861449101651408026706488744830012451471421677519892106493884823858584264330767929614398866315472366568482926053742470458235475144304827563032849066603784961406211450716504554975701174629703621260299258890001947565899039572985588573480245117549532386715175751863203313202561227018748052050173754951824818450301325641073127594811315738195966594850120523659916920459749497890847145402178315033260028280652292309009884588310949803633795226553203756733526463617160911618979452556218917484314419646616082453821775911626717473798350195421834559313216678840612254086711190537385555605759806839539359481729055184874046215982736800614190989513704053101895132071390600357591852550548866519404537670303003668994556463674225610706801760097696328611765189607852832711564575771630124112450592032891468822106623882915642225078464932114187209764899728462322752364212919767990813075746891024120536639977724543580031993181742823208581382151486435545600096817462819388446303178326255005466460617316739149000452456418744405910803111345643390859868636119157523392760336819654834544807703933414761779268316988865034618948993054923812990286369554525737447616931283301037644800447969383241931508520454645602653449399326615612580923944828837000627552577720617544901448617063509078657768017487186242174199202583082833093597198566220266425684421527828623338159184134297652785415983710050414710163290821811841651048418155965949861184220577983149063476766087174995822759942163136777488011324152736868364971917557095578499847373007080675816546380182103549893303746937926388257648558491236065910573952056815765392802050317460025666800955946982006620774133572393187419534222791382487646777623382054284365912419356469927950691678761641886567204886523995720681464765478249141906711997446206126413004932969391077704854773675377858915053050729365714270418618523705628475945567627965579644781384552506112093372425656083967898572939561835693160914518712169490212506349018114013961499780524535286532632906402654776813363133938123249465748901714998147542292489797469601813543242622017929243816025651993566077073035699210337199058771302709034614862765643275523389177540163506770481129452765746375637383398067242560546413052658318237503527051869353832845977874830029491360872692404404594895346679224325166049841373866254392505083676559093115388482607078669797944786714234148012857755403587170395293428849519575128551954258197451976029571850701200023101480444701990291909809118844008290419104640787909726663724691504908632740028650933384226119132939985282676874383115172394485473686364610014822022213012489987461554225339386826044596199676896376548219321676663249756566634161485514032111695294482066428209929363463118391224742912697401500537056550082788589314543672040225391068279450887125735331268721686109647833094027201560349128307512654938992168531094531834038402853559786298066337475368779558131963161192539783110110525403579399505433404071759746375787427467708785620512134175612238508939620442074991931781585459960489058577905894236270961372296855664870162971192128231371850308555056046952606758560119582300159965675612644712656694923547981830793852311076784977682050043929820265842853474767910359369186404496380611795627358580872265990083871651771581168136659266200016411653561871815689278095076726517867026323702527889781652044946407772232186997697609223486683527780089174845022613931472150733618849862077791820203646003704523920308689276234174507430981866804752641994953304418551388299826447233705170318996060439941526782272804124488105633326828151866929173989368349526469926935949615944362117344359593364077590306248979922029281930643956727462977487191870935234833077325735656541629408145350395334711551790607152123406282922459922447395815362192065101702658819810531325140117868484221956504417775933213757580809714221258192734455518347705552211259435981078675167344374107810716238972292481015177219310200400391438306517818294838519226613521062756719527348625406110637546064743593798847585964759091947855121108272485706392055798719292860885525190485238951564052198274845722882935051381396783687711355776787311714817487091215549715648448499373508309604352579952640448453178375934801966430023090344505852905612940830694723111969474376388444654795164047029931157715548551842913009671606584414353229997029409832355144915561388856764193485406615625234485419528297166763270449862255781881922572592860795248240304832835924497487009784379865012886755277882764464105755426740717626110380035590589378477997349275211739807936096534574861371869921363047575940696981479701805701720257752981805897965470394927891108040673197391862544827956157937044718423342216659660493120594814384799833928712775779868461168612872961306944734947911261657877827796985318591506868567148824387735329238180997155336515133184362243130390699887115013118585183302187757852523378228192973329884084644070488687986938229478987553027564338730110677664404067930140849511607932387660762660113893780608769133245976527725148124304163075606059099439063978740400968509990104595666135767126265970170541413193593047472457494601308672037940006535120150638042583937086988241495112886001272557564808472072122036962868381315352867214165049348438405434825325760716405954185801677838047487386126634973845492909728496535310093983806476630524330093784635502774463773891748488161999106841653824279629402099128056001603338116907951927122340075846740745269551998060931751105707154146354211094433215597420480846358198178754351758674977874965589228982974258154787465615851192212207683639457072798162051256445401969779758002244387281800291755784969573556619254726158486901874307432696221802845422503660394367043237732605972932951737751530418542302760017079662239688859320466833499566193189320000784149836652167778635773751183171282853691387548699823733742156711228371679449056654472887272343655790908326736439502936263846861468280484015093714987776500972432290054558681240320350107386570296324649799976743368427951305332906653407485660379923481470266567440298807716690779821904010120322183118796301837271738298899195280126958331445466074259002040385468843025765026403727213250512458387616256372972195613700922900843116932985020401380096915273341633922712263448560707542877450939356572908976621459298991491156809325814754799800430525459502620815065300916453151039950699668797152375790877213068304908948827160307361751837750403483813395831657519162768419093914059118313499708441513901770041303235605414716967815153730710878546006614192600851937857879884752306383380663994515308364448339471862688715366901792502515058089688919135398969529555280721966952446109390088268538076963026383292006942943631795965243013296370410738113930021469671156128713309694416426534888159542123960160299107195066477395143806032395620664519560599838877186097797863038581015003554895820495712080408893363861549769876993214115204858536894104990044853351124487346527992459137913511717255891383597885105676175640367724350487488684742310943054778320732682853646879493038645704062111849186051599969335428584113104043947604185835568495474723466639162243784299493425281608122625957082629846644053210119236716826132889155963100457511025390718820755161458612891311685777503277051907012617154506644529745827510579807837582340322706649238426734870896198738221708263621493674230812251823248033435112637383564839674704424827344831188825921938221382422593270290424827438724799975518682149413962584910722330027394706031627393607399782050478940602423806698960110607103947520289918305693799107477818194394383108571962207823489902775175365359154245612423118322768156205531891428332672817882065955492383919564521840316930997642207352350776352468257160591879092259053957277161476907266056076685385379831127146105874291139993213625001561004844671383621343164672357926111492697543447329211669587243475746178848615938154980732346001498598948980152501442755647186164818655661926705272136104260766917422774452297764957634114825488660143081208901106666494979469331733198257916180419837368637739231775411370289627359314059053727384495620679466822803597137871399388178641958018649711754585119099947585621767495404119817761060703698418964647940683237031242283205644008289992839463793196135025735313264818702233034453268752414946744927076461819219933160010316959014889307306640627609560894831736655483835994754146270469218645066817203846332564512556245560227566925793570126823075100826602472575906887165243612979629424889914838971632212180095066675544074707594243875689200098381273364952681384754181726442545246039486484932099657034526620145805558370876669844111362390183526279519246031765034781492191905464722280706634089461832009952158947074550353576309349085023655771670345925702134387813583036663711389430514301941142982079397214872234264498552639148624550152416746084000682414317858148624994683853032565672035223060920740661531098544485001462345409346600782516862862825461691645420817809603668086072911436752883614015020651564152569759343545446623995037803453833913102502974180946579034435106563013862520468796142340167468416528038848781616726872486859797455836054076439613287299907759454173355543593493660733136375439442008167656837794267106806670961542541386909763200591038703834475503497099196113218510756906510378037493955102329968321179671507385071165626490544950572380689787880391354737978198257985221733309351157932273238007087039575154192215605747370305884425555186758594498143393015251262867768742812471806018925991631915300484309865443755973089991542664041572405471733518533609326899528949980466598800908605189316139029929725978613095986658219458707320206632264598203020403340070234162680580957817470184861183090381117840656082803292046590477405732148574272445394330009416410205665902605829270275206572392020596918293107913371905506925764811335298450738017497433213280766836332338131469915263735492991380150114862502347338983790367790659462634063272344317219436285826767864232095851398937743991386732567085370097715987446438733716933562826420958045058505070535758803998795312075571022625547663680564735469567755426311522869005540878786905910414957820107199814795354641168445376742667080143016833500093065901398144412570226725990703975900790309516738464943999798312900094915308910473130297720501778401939819324550367431547887272151579072844904906667788898370523102783774523298678336822462585023629847324741591537094373063462033036062744567227269017324302136946313944228105624845824333701468384750354631746986522569634160512550681526494813178015207725120416100587540657517584026389615019960508235110552504544610495686107072409736659116956922134482430964954858810740689669801976627849946002281876940747128779296739861490188355405987609551441330313721747593896908707594144500099242965640634525387931284754786094730387963339859628068570412508737177721548943089634761092132086615455153897387381954991594982415074707582778087721569694241617308769115314786260224152311824634609436498754983695160661446250690660179868303751042259722370430099364966998088764817867051751993095703994924584299537857096472965688056388418800556110860046490334353290795617266643767050999102897223640398887715032311117815631369006601354140546163224129868727062361764399288948003279179213041380142712252194633453788698808886460521360242554593252360365157501378197751292044928074460670722961643762243230096582389236534603008642850875236839720435184003861500587520581211142479854575995036568213770827358240476408793095891379098814692208746699716828930044928501785000397510050632891771477095672503463471371853145420347746647178285537248026782865584322704835181303139523809119974734779950865318628002612328823138883875849051790692858000395862762539237858468719750180190564047149410060311274998928056496253651516638510838720174955604038731887365762181292020090993427704741472739034051230500946452320821108699085354374573846296816307115758939060945326265936227731485278685722179007575045743128326885727683868963047204073886207915839711989799246800219094679031519261212586955882069405903519500907955667945253068724414608964437663642840172008919077616894271516352782888331007849708504089104165287507568601710573087920222774676548252129177595732770105393758291440047432766872118948000321653198483755368037555773284932323940227343452327841670102611291462227791682393791076473723457072197806919950102776915933244117976074246859259274001134851116003102393550004139326361376893351381046580298532528605134697029201230975472360272092739830120850532753385893647733573618664351924410812247666836950446427056373949045118582640632073627823544960865226230969593014803244269627928162586086301367805818451717465222052834222354370357993121900051916228466740859058406097545689313977253282955894751357474810949449942176733949923625693340686932478334460379135803868808092011423462193271949080353466299133810336777429934828235633154289345088370242047050425970352971232611625696538816520698398253458996994787263548617583331010096329074602174503463465703448004365691690653313197772111047684135478917462183718502445704950883117802655587238352054003073760703256899422794051384705260894970728536283685908823631907039476040290326533451343228748420274126636068393447567007904516383195841529178631724892556592577381326537752931687258684755111394589297376142003488378192556061563364542173524335488389954290295548011065022644718647671407482118268486274278791009792363403115808944507045085903779984575214592865116876933796202049881422039575107704629015413986248700812550080304991819623012521771202567162777446191518353628056702331910588587001817965481051703982873873534164469575268190843952536203759719455242235629641012680823018250425317260934228332525833727303275259474545814880421286580867402024169398585076969539310406070577283144265329764734865472072671780263515601939072871105347640009858871062927051256121774304263766734423914733428140516505479883836099411230359451953455952898061637693550838734479292475813763531061995620182299516770390818904052062231997611050870190583782989843177112540738505737015985221185111746810805604204138855579243640363752678171218000461497842790636959230574210368091565769778494711262597404477846277321873334198763632653511035644403312384161294073326892921321018079686144610877863412984757757318373325339605387128483980724681834322982627243595876217461722887744397192243161480144412414369046191442792594030195771459354038214293280946531498268897051728507298270372747570196218004904371233414716582456704715185893009541989981196860421319501057368553979644192526177119826304017715563628288133224412911802106583264478668701165370896618932935183178305767342100190696008193235902879842286112235900510137667591773083727721144533885293815192244718145368546420700776459694319365559277837090469686770501015890382767815872019983207465770514747356212639408586598642862171735512039564063272731117077772863844320864847031720136447711968177468833815868619131701131399382268884671637175029959569682700826324018076072893912346582246770047086167449347677594288664731717319687389271816921111808738317827533415698184635578937556156570712382765846516358424838316888505557071489307215026086778832809456169112322205503356250080478896204114548458561645778673304392754059260069967432996300752968042992717033802271198506934548891225024227365506484633321219416733890506781526604973433646508496391721158790060569091969284844524954810288568238498514312856237435310440689954071975178372081608820452972986345436528632673792033105579423567490713870964497670757424461344360540434721464033481829838256561069354613096594113229054517858600565417479489351315842782823505264049223889648732282428364318467897628724867134533018234987217822356874526532987946150999554105918399839314479859255928414476542487461956665860445688894160887371788887250907919182755282164704116595382006852419557311703068802418027818325358335150222749780096757191056688444153981660016374118730213053314833839653884711715224666876848916518359920891045593637751919196511104261556547396642522045828426701929423242799072170708134153917875260275323971831058000021354832414666111496052351141580867042592815821500825700998973891994247109289370319309827304968937822947918867013299230413083366513159236251111630618580557285810811029001497610942013048779520316825069269435961350236958258421857504633539652778665674631448272330719132158466484882147608781565297480820070124883487470679617126060199525802127464306773098089210244717617139694372650768399104030351353444647629005347683589621368235525412679922078214247676039695549957506394650368478393944441667572258889819111544035631344054607391650327279004791936998370587633232494481740838839447055400246384821423826991548338054058383319309397537399532132778242974055167802293803373083983713310304851997260944225609833918125155491452004084048867423139792230353728604602739620661008027422790025380025126260522185502876748145082322339897025572802549054424043114650328349524572053944626859613975285757780380112737748329659287309960475717158964743962662693443324523428680273695579357426871672803552379143384892192251501699032501112242219020099494384064415398901486902337371804021462260385855160178218063223419721128500811292870508312122784642678927277841320573481711254281845728350929319043053301509328207028458662171743733470491798593315595598341364837797020967942175071902856907324806045607484841311845693070195955618608378105846952130703805972611649868393543681696430879803609449436876164784357643177037118361337552899415173131261357826497693446433924264322281139127146643329584048164912447778562852444580022269885449178029631666200357144514835462970706641175627581336413804306429246567053623784386267156145064324925755475605104603729838881528984749902789854727022248777894648423483179018909450792205213216017809869584324069720173765102378568932338813079484130476182179819584325190501031266687601328752529362245722643524430428351715827137094013806864371155990497394452370462653216102372924992609911381816264238711824214057462677965055586644684790403202552946625218198348829781647231252145736689339504747203722803192503044248664452637317307013874055929857258402277058092169566453574260098528262176673271017183019138754934327976132686836687287821423144380942665274805899774435616159026602178074124924191797449555605234177609030118540051045757477758275012550061990578054448603661487500353839580100399890624365091489841734329544754878645797980502545547959683234251829588262013195554722634874787848585733384574995071044857457476013715755313490589880713162467082842516996762038775304178432544410918940565555995524094728537682010672090741955627660452739725927534806676741292535812026199856965818589329380764057032562319882492296726947160373909892231519057225725999996498820497441188068247549457878363434897990404136616145949274047715382046330582801081036024227852739176897046841645155573440039041569560726051682557841226289769896427898157146849650041973554761978005920752526195068561383246355481924594202132373581813901031148568180820720803835992434735579300103497708788227643264432919877297719505869231191653983223203456819410732267346360944883046008441197106318808711724342455298941931994983735255017273780929947129430044841276746033982528243460893382160945391578474796779271360685286397640064703532893476199027690338022749550912100476098876818959137714421067551779332710120092613785811203206282132812226016729728423738018256007563904294500811976620101507520775578677507216447226850040506275762581232110306965518365266755956230428028357394832653572758405407150575601727869811493430527920705083308072716366342973133872455226373856080468644981958285586299009723371519203956171261379760127462592856293963896772470965260448576133729898822520791405303362453787536261351708011810193857210712066792836033866623074083235955457414777022315545380131117009373056628932943685459507399928485690378978914080544288904617590505060614981520758394725296087183811055557149484954909539489023615364125957914654037483564363029216433150631682141944682870698973093145514036195628337939332439754086614882437548794114788300283629265074667730116498260425426221801934024451456876731688461682113091653033517783231559848720729889280827624610689378029371630764267200359213511820382356226395782200965541423988211440483650414268380593675125596964179954324529338288418527830616015801175795483479323316650947495895125501484302539369639466047831401640145366523270864070612642581183049341619673529040002176272381577902064891706164183604624228021190721904921067658200561148733030398978956592690349050827828377146655250362207867973072442849291376902117938743962397149753323320820307913293147023380465805425614021918603908391223585174868718797795847916293320689583824038470651918963170930013724023879059760471212333949771245806223187555466639869043831830681349808407552148474714079322504550589694103173444977621504834582674244450023862381937757799944064658651777094186513619328609122141892252290858314309095164747941124822636879541875497956407974731466334301870725832650723687154592046336205131590965576769643923971089772782720720520982126257124727501982899738870270898509181122947830038226979854600735214112004965890486847072957701351605801602439495644755264592135699562255483609271781404494256371670348272650335334153771942695101984959147321070324908099033255000929151953379375781120009129324344991752697189820877415002197903582959909704992555971902049931950194479147298367335759805463331889059324388041510117385369776406103093227559486496475436173242879558297812578312385129797408347360185167639542497298464573316309285018890768671552842956165011152551916905219318290707008657499785832942678954932999109784381902994660073876716729979176459649455633794877334970597404754928884384814710092519036577651119250944678875693506031138476138066816254458927246746288069619580918123674871233238660281781223974759976170293617168407738328778575090973991001946826766793761540037820166255627702991481415693238069512974494947743432945202499711384681839178645408938173903568542345046520043201406699723064599675354398740948803854238523184623252535228209578039556468628877524566461479234059502313364128005467842715206346462928900654056169557573492071501209599150894211995717426004311791766291279012204976598220032181025980849699466367392099764079009020732718257174354322890947912629894818125277304914125494236772180301186511456810904998615790939324257998951860157142532208240693145523321957098983588503616133679084318534581349174145083167180200916148859684467412641021048266171822439852372734397264273087701980567333956878728001298786704995668632199674304196996687028332219042767247376883559833168071798060115188739679926770883778622520244601695660256275510065140602012770843168681496402073202251826584359047225066999158929441274161868661746288925787975998143556797172843024268563538606173436325016934876605050587890171211052574630117221361052718179243229042296601134196478374993076603034165649272269200334964256982976961292458644191788813446618247112273908252155550058812526633427633523462556035982215698852786654445999486961558604194675121628212202591804994010817176180181901622784335113857523984664716420638744534892543315659915985967735686877506665346044383100191460068393740152006691990452641940128848953855009937725038826099347741535364713273798653978677314128770475474364405696457185396276203056896701198876407974817233862637757235611146542932929399104670736910729806505108502044701408213972583107305818330881309622673516317832699333683098090603276149251620249653071605882360961689218086195023445405937548103142031276705092380494372891393282334169952514711907120087947362531674678611121691758669230439421153722883097299326214423634296835464559591383802846257543416210621593376040060001655519321804540802854306155124566082786493163480627769183832576697837449436605143389494446818770565418851185498970299170744619233311266978328118583573084247360533613552582012559917449269478949219100018210227190336326750998824846535544707590814116248783399500926493803439348094769651892927663792313238182737735100953075344019575319376516788904688628464679967121627410777417573844921490084059819215120269374191445053982358458868413665955876021751694035459398054235410809977515992737696921416994919113726482084137828320574293068861731420748006059436544406517608456709892524281573789898568830166078282879592067847379073972377892966438719606490306307638017254904420903457118388001079877029067358582985703533780176750058791585664696789237170425650996049415666424927379619329596688901086809655959273737827555119166405427292951981915510646711883723311357569256721912581792332013598218973219344608152942313031674782078208545576168606387947218307833679718107566089141225073214902571818471425240100055205196648949554413745202022100900177510102888842362535631535914688278494402934132487949302216972006898579838672947341899403281163170769365131217795300663842076920728996681934350618148088275636207045572808625394498408288839258442080557739402997646103022235588224095417708309278560863121296503192833259845340137180508436620804929339303517324850697879743524021074997792494797472861206912616332803062254087811312372828410148395074065846062316874080567926523068078304601162481906234539533066813690762691370063340075053952994138884007878334281861703711892978538081643541752098027093546607294926205763526320998330296959319792727627426209371958050689435833011505317091526119909351456561611591596608149959256609460652995517381853329002644982979197891414301560548701260140007931510319960768198020571857131765211430778793139375549708889169582659265279096720975753325881912529326462991455636974619030654198263383834530299554523826603689766050843644046172232179729126119152860162655142820383139665768796806403971217550810978476777610848079097029061483507594783781754638499682073288802267453834017253027686563868727862603576275953252553214219740658454401970776937392009719845438492119054646743935404199384047004627172790882925035359956843287148270928740638113691569916737771863631815001866800650568260933881651924169358420892824741289872070929877639487156457620406095489085366277001389165488016011694543570812736272697957707379380788375673688584939193782867369043646938519968357437944388767327963776444084211165794006902876507518503742551016496168680337401823296464070519973604345572827948844513572940881195480333702939858304560851008298317084555570097663770152539670288916408572474752866582170723308749504008993699009136863660867587470211634987798662788635769717749320292084517646312064275773213997053883077437634739705959055757664035254409967832938267158533455108012114857442789768086869813559565571007662435722905902841595108762359438338299938353874312099219145008382674960444627818390299305923870238277375154938098885688318959563555385131810332649721946577249944440916459838076479278777673377145051866672278966258712552880869069523632775306706986325690313146067354245884874990520405757282684021800005431830175262964877596806813513374469773060481736117119438040661426518876085623724121440867265188175778800643766572607754235301830114119823854565761447243770239301624864367931771295938459703336129165673217299600692463978309938042674114416435970272451732317522639720970475176237077507069408393601148860448319334732527005409409389423534420021757865501524492248571761290397072594336766288794200110711517685651761105729730732800764482595274534765141949492273694831192951613304555618505182772270296633917971135803169484582875012731440089739292132387359255506512233317065641324143046270238753317491588640831653870060980282990116819521501975018728914876920179303730673310546673587114946740198054975401986733014633067978383880874881157210146417697029882959483435734322615055962837070298329410069093029868413610855538514913883348942819594217522870152492437973639393775519828782955085861876524237843162459145525849484858817219532267442362372355295680272655767888886037415660252955060347143294745494816283042253276558206353719635988471111962404606440829218358075111829048418237917703732843557448926367982734184501509958020488156022611959796720407567726855070717853138693508356545811562382207961318707398814846918752171629760311493562147848787572946764078693625459652784630173873805041357539636060187807842296366667286552827785043622472802386604125353211884141730847132496156613675056089452442303326504278635447732866930213637578889921446242052183502897398232520118676378112643878520911613586422654972595518003801611939378166462602255998510361561227982815721955910841017005836167666842013773646388367083454427115037627324512283622296334443997872219567145411349258735037448989450573962536991461424845260075795576729007363265385001899608113973485556826330397830568269409493645946920973941686590673191890330440801467379534586262276483337985890871360345767074330982833352806768346437089848311673141180889637138484033741908278016407473918811146967483822624064180941620847811218958786716307165229629304176073746258653759295393916639398891053775116211070362784248272576543043119628302593878128681975958716503746189630689318229834776409840547618164191411668393851499318639482459284962712324769457428143797586951156928904492205525452135072658696512472798573509421561150050205218854020263932775257746274980869357360478590552996233503139581379501188684051442203520767954599434712554817012355107716777077802239771373617284808880566588408772368269758545188814978510011313153067049638409117861809493922099460745365926778551112992047668586631820460686952947770319324922127204492124198584880871518362431370637517547127813088027107397787231964431550276352037149100242171912458785754332576738291197517665908382679651539970631088222543344459928456231395740617145138144995834324494952645329062698489443816364884426733308380150731194557202130922382228150936009579645756441973559701477902917748060324636929536113497411051660432885928287703333279314931553355673622627258304103147400696189473865616856391135879123952821971169748127097455291315858522627304554895923255654034186782992694510239474525939707861609119187860288818443100309427603479001094270456290214801504965977750401835820587919046763960946741771364889749243156718367199228597486468927648476251641995253401637581215345180550316364031514705068798976223756930637293572950791462661822360402326410974523890091718040589988624700222125790691003930062018717085852359073168225277221568007210370504503602849477294344423722351400128257918537389856658821939474812258873817360931133084845305673180929295624748967396117860242934128868536521191886475703980191184982719514753274720916114132643396543830191265392908680900450330370090600877028649225770028947014840558453155058356908799604556847233815206716102094281820727108397076098498491087129613040160237932364179250590176539987366600521971237633699505653808906797016091590356290262230174420963256872080755834237721695839439872081217997470647288477343911602999595561295536708300954817237073660112374987381807052684453535527176413886660259237661906029398388240984582861878613764995747720515017507300784633826136288835839826037049052586207389276424093168030538266579722389093160934893728170814956656553700878752844475442636603933924154983145245076578017345267897171865524487594237992905170929631837587374384309391473018528755054793800734849119577823272311312280240383117635359160002715885972753024287766546688682986078515401099383964269394893081268990162579225669262079408893856877176274187536206424621806725981988378511242073157696132217632545697700789811244903350065714869992341622314088800926019048948281133638385821574574664361243251062822161002486554748282335231930427554098564121957228726676539141233946950644226467848912299523762957476510906229518627164793329345869342253816206500446468065885362336188674061949629490331425237301114371012402701528402690264133033043204953863825539639832271961399302132299430793872393359796883472607979335513534697354669938443205562900661518194624854344307480752127431979794958446691837340729961953165322741290482872928860199958639070745167632521292036207516432794351765767978492148342986767092004422710771852523363123357297256403412407279699426995719974338869540899759062303508902627890206236917192099023941131943738800691979065504226627784522132627228449165933573294885704386317737779356704220069081552807179828750526243430050974677223432059654467186667591148142128842818433934214559438894072581114633447043368986343891272531059999691307077542928056975479348758759684612341951301557380081520283866906875762328385565719589440913536597282428602658477093430865737094493818338473143483559860528668249151827476501567722029133282003672964441888272349743568657785833376347186831165097380480234103637039562987053919765689765031181357251867700030160317462452259452159957200686365187390780745848096727026330329244281388187635233640586817612547426486264808686787556006645553390388353031897007969461149586694867593756549275670446619522019334130813003346609077282002002107118380499540863894955012832618031409585871381188360932284179954857322366102150689995555365229830532797444362429840778534330787828176340436886615354173810722422718944733561842931805677135706023464287124637347420308169682358913729019575024843788880248378055501828023986155498416259827629303543103281076814344662493046771902983167838346786181094227804339253393646143872125107514812262735818893418871153257093038992081576980092364452538533634050186468050215327773298373100096691448626234790610632720068988513013465647280224658769102395576486384501059031537933932486805031079151006741578578179699801114150782935653546214575899330987901921295371554936572581346708408439653092700623176098351731366216180396323149954339593638965665813744430969142025423247785357136139615391056942081101884997523285599114855702483868693696244154873275603398786681344680523403698120865859540677527318973841695183043800192423309737626998536200067928611242650186804946844629081436915389487194381124552385893623576929600137438448424430275700595020581854108572923641966302214009095434517164657628877517855786573343410919728408127507914362088030952424898697067080663973384851851895923476930813468136885067297898932732055141439852349129508865708315999442780762205668741442214974436581431812503726679899149964714685111133858315242386667296166058605736233084131671568363433216316641559282928510043033181535566912587515868430679861140693787859684990605597010458148101966232626357718014092159153108966550192667963188389426525271517168036334707749143971053070066641659032173055295536477821638501398540735711095056518923107899538482587066886344288782431186458525392391175989046323767395261780617444764428230906068997721565541201458726895108068121614417312258257926568024777371925772040637827003152994745902468526000874605176613837138716436260451920679915213856244532393915912642126201901714581442941928554408073969135604835149456158966266963458285807077934197915829228539375542886449205129836675286569057003857309697170298046442401772001515166724092508692471105860910759714701676870500799713555092606754354573473068028656681429664683268530034012848024181542615034264196877112673265720058981240412568420768621330161076236215428103598209063175443974137053434618487974350093093780052652725895564053560042665177224969614403276199805785208954995619996674464251265841429450314255550680358099424992010713555183413784845888350086463786678378424313230474790862051147566611095123518791488362428681507812818683982847934722876368942438127224544978226258954478127487025557604174223338972772588096521983663261145047877823287469177607719288501382743007047903968157625579634270893892485153429897664861839878319235530031233418325515082912799668281924131956921498989112507110330991187732400912291104788458621268125013061877853229788964114737540701442894393223889696053060180533904781008995034096819261515984507933842592620352713224343515797880320398159050474564478583373204085185382276916846650269569718722972941136478702781880397571764871298645219677330854884144675410597306862470575188048050007990088621392393231554441240534670089750428580141815107332076060980635782675667509409438904240440986593412557485234260490440236760997179082525266908152176237431708232209044168255102101376800704170219927824755990696280044199692010133754300287508313937457941424520095904528664039199520491079023753898985856507730931179210757471437478829314587901527848251506161973511103371962559382061654270984819239108524820065074432224735448236903753848192011929361090312651638819855543623729190188101243354845414063179175949688288283261417196356693732090154772426675986546428042612379004263719208358161316677386072335079294261673685830058650001850666485615707813604399637389440705976596940377283255697349404422052444778598878243114727092733600701844999526512299815657232362754127569729070563733367754870821659357151485063506081885811608995659444411094080870530975077651393327059063809153622092446612443618754077558561093064411416018763531015914014185231189462571429627346800832738848681052266407726906368136822063738716861010561430380320641478246350463472548497698119275111532177646323625579192692592965400049487134485161252393972886271633970313840292344423569357411506030356165767664755644820973525785017302211156023473999343986179767568137197023908924072771627495134858513257530288325487698932160684962063448274625593122502757636709116750454617056154746252170746831522721944304937135138413342042980926147290072398982050554260012766721022923987950673455145808405144719470253079053591957366033535528580129181994910402388617815481821323637268569252588676061357614457422868261820725333505973535872550863716634951802708841985833938952764934567753623321932484820688765402061707844435075708906864174140979143631354750008470861606833391740662514799957697849624937990550720816681795154578665331960241317814571719969991614379154519457325947857826908316951713553107329773853143723809952199339814090228189954359130603907463161891328032172459614677290775150213002820422832331673106208425903333407710457755375025718867971579589387623693779159868036055197448672487341185953073927204110291175375521376028131668755401957061427247699933627212389122221585121579044255320973248231687862160953442485216560356467577986478125876554320348579737287646193011148464250630537830897240614994599709316999678790484370237705929957432632328696362691354475959999225203626101425552671727736938814767584816712694473797808245114544771753945717451236096064905455046741238311455287932729218928986042980342532217303196267763169773567514898369669322394445290814536874916579921760347563137681730914797950597315560860729173505057630167501924924576600080974626536378684905998500750023914187786224172729402186524757662675710822524063791371200612817514571436963404168415969168114839199727277824870326127830291610684133351127814147512277111424192385450947517748522424001528168186509160052982937626429459301705794689072118813073173298566525459936790739700486456301429113330612257219295814327324368991213680775496301640828697706167963928673681913522889673143147255458600159018025737576160536973482411929949116193403840895926677595470084918771454331107915804987260858289545118403939901079680328888172125774959212677249709782780230817793401981318017390200654848385426731397230443758545461161242565828245604105690586455382881708076033329608799919848528920598692774010608273505236912307261283624287253803260094490893348669090558297162733647825523606002258172727265341514314938357695515238429308311827944440603882519918444971668628853721383793764093751675091534685506715681379289885871894212234670765351412108682697624323584526960637709228083346469350556201069312603847380107012444299205887536294599203270177485643298138718762471585170531227351807995798025054341295849914714084340227024546373606213726291211745501243813768265672927803676044214573516443738641348661774306883650239219508678170527489757299979015481135862973140659532623868558011990498065399966691218015644802218897070644479654541041671194182907820969046728717232815108715896794848447229967741101186006518091043292237377593447320181905756605545424971978886923282245734411346823751834583469412399253610160944149611157823850852440876082594534487605311831180539184013645408940100361140874670258799043620646756854033818249625099583455157176151550062899658857975781933577993971712771147885949743351094066556371120630037594727691029946029163466801079473864065744969420452810033133495000588661514708772986871432850024970345970710424873853508944268935934511295133287504573336495164936346064460372560508417641765008167543315951409685882524642377140603407994456656496232245422657420684201753465139472304083208035583632257281569127036603308623578014372102651869691179348499754123660397347117914537417505962029752089612513290751785563738003304514981829819388809599553940113190953717914076132375246332554333988777398459422349125049928663442158518119730938142302301704733924466103406498508051996223049570974448970518405453042328502156158113089540610382439880768338271919580490901646772444535297695653259266296731727933711059612800862991678724990162811461553227654953918577369824466590863195525153473455040317318687642194507088030613473887280468915097249510897446777424356723383048336045939349503309525728647238093616263205442930679439509875987164313004550824771828562338660048136709450674628812386426100677421754452334303234081175651450972195674455221625886048321477470351756189169515966775280263600056976741390023521092588908500331524142448201978400606942312998146474617433417731462802017556582318843341312985579001705632995712406003947130473347450102407666989758642605035117088814563712480669443830965068430375155740800591350969177678024222768011069507676537909789236971116171972568220246342238647981543984159915206316281965169917243601405316851753628122545659416821239158987329386426158413437993431459251557574353951409902708227839143669579710744232183165132500898635927573614073228288780506946598384107264102365427519876147160305887014562518935053843630007680547770764024548517702034129328831907223614016268944015213475997483008149381105788449884040191669623363715792474447782683558601899271940092905731945880053279259446176390287614450242706081469595738866304663552365003742657744097278348627657421527136181607703558116970024882327370276412106896456591255419435544910283229937650815815745090953854542023040941962995026352770322074668288287577872550099856106625847163189989520638426959016069483228718142867281556346060787049134373597972430644769218020051548568522981721286557862379359430197823990968160981667121044624153937175409350717360761309680982228403609441392446353169912665380638564460368332037026037866234107992439795893957837747128542569728800281101969296427793211717208282672345291607402259359451269962077303616027388484596664394407595728554000156613855995292228782659427681296983538547291505406219007275535266860446359055062367542004792416145931938309252614681319748335362304184048861150973106668980892590758568180857204082352613654860280804887153470838985551089107955735232698611007769331024306595694077469376066257153155701291034010755677381470811966209707707881299127777639185867448744266183759537624316854717866717679132216538769202659949605397488414963187270880274569707145716369972385357154984404204193739578666087173432793316646454046488505200147913908881134244362245934401240118908905819943444701564076304337323605767647688927110031270674884890507846074163821400776405689582454279672752955636082791234069736110883513707687729648878055789435453449794832240248882446479992860988855890962185689488331745331692389803292145411532798229160154710074300638832172682804841129688817459548638671882229753414558358325159942576967019221444620218191305807391195489403993621740428052015993255803102445567496311771989458570789793883076862848241472731993709371276514701494647356149711771788830187352004853069867766003591629019845259561412414481734837819762595534003551287864972921962867446583097866561255034984464534002846232733656221116368339677924008676409020853422923234974029198676544283334128576446922438463641334736274783719707573216652594307430839749546575007837390688634846866958919823126056614080677833891336919928074838724384725024352139170354511480856749262126593532395098354153692055173404062974505889540827448412802077402070014071046170984232495210975861180537180593898527376431623611472680105855321448921428661883118874327919706189754878777312619893609988299257932625724587739140006312550519734339389398820096830507676806940987400948811795701446832528366157002353541634035776807724077752612810132865813001463362967574810920831942376548831527697378186813364374967011270532569087507200466651113291035878284346533150167656279841664747342325474269076649119702017339146481607251532736224355956545228008773284288186409723320972427982504474516228958255496842174374505568523613402115784692925546699474918819437218713103269075939812076208716332370351920602141417077593143589553652406028007462931316119032853141895919575302925345619180502032776185482535514571742107065093167155229038026500204051473649341761163539117185099607717865587633303438662592127999355897480357210643077557078018296443485890755475119101878055224065242794487352444786565456832283569899129400928585622611373528819731026668006486753493902028372982972693840003538035838244414673176069517364838754719473441003705648897536592692582990639198709457799920726576703376672919262759949529640557852532029275214770255562625323515282778236366051906106908626752677861456814832492106792831579359467538196487005803498072242434098626983519297827335528696149131068557009533078210312257363357723821972682292027865025331921386443613694901541616663754079417602770705736895038572115674342002917746331013047931960903241392801462158201090468775088834682560263116149939857870688677944203015887017880288757486493246015471246159310929048667414260273707167488021309893512787012751605586094788118054684333084910998373801571232799957647502786995894563751327898105450136630821476691702920294725930358520754589486783160664109096648944928918669125600049406348298164981237298604579405578139808234851985551433252794156194230906562291279920391199060184226341168348361909002867788530926499674983674053182957928760586943403669012550775309099876457775763227990598225990657869637180246274855082823580869328975367577820975514226507261929984534525623319587750744554325942527423375343154632660368012659023041944188054398223684642829225038281685081383299815097074155266647808127260489460568478284130012221226671728396699323603727202823278850944411679691952292949448519758705774133634102924460766540294251274683239601986398102975807898018637006361205554035021194202757686540038625876990364898053878620705041349885260944936761544823035120577465328842943619097721579313304739755124891704214869090081628520510287947211469303079579674527204742279189194464259575804714140373799678433845191321920046566428813341835103078656056298451500108510094783567668822041222423979921840638886943623241351600369228469358356991734768548729276946341535592244464556477080518103279302448377034249729843265951408882721732077785989496965423315773837365959169385837235307465476282359678875854571774468527496406348586410692344539455232241567366299324477179462651835313960195982280268171140597816617802702003125167355356751248059972848111574534810337957284119439691008325722219221231650895358858136476228572038542409438936080676411002262460406076325448130957782005758249417334149047089288535029314419698538073099444116490773382625306583134615384995035677718226816924209568127922400483289661035049239834030469199469926912111271415461738284263234298701001622751917409950578937507090558491562543045796318308750310364668937570995166248109022131105575435634717765293256350371913158423638080515959875364643736418283386852399552627945637982456782461618645902182392777741574481399206271794096119967908315001780472046034172396790820482633930637696274557914739542614581625870923039393130727794706396875108856880039145126409151008922876135872627980845843834161451763364768942688036705558995921547058288794164193889466107529537814149911830776855058108706885591962025728481515436699554858131928584804373355387104058063927148167261060796610183231490867942050435027754362970920475585237197837689132795369496698323929485518503880099351994206157013271243735291574633639907837905949878727194853283593204734422782804784662176101719520351790289325214483874084011960503792682291368559865665782612817191008719481286401193831447141423261406739566670002562743071783573556753279938700965060348382056449297244623662224636036441924980619453056859788696729856089091748377934964810229696856299915206353091450703431107409470015787700050812757120419412061461721948362895690669754571997604348036979771299602572491569736810052188573238393301748005227170265212615680255787222272671986504164122642718675504544080143664318240216457398159766030871983525447744906366197574127157573763260224318272447398545167969710060480018230800096790873692592428629271671817722485253114214294147190867888524709864619118029733806453940573800812636895757527479461961478682249341098498953108519389523275008259738134196326404848037084102964785685503909360952732060578295022264525998162040541649340524269786621190029750750653443930497842929434399596799249547925080836709926997701880865963425949619097238402853245236151815918379559582597692682468362444460164056022023541860752519525765751122026477409078624144012812515944384150077554650784721342189062642474719549977203059313660983749695650427521321367333913723425905745502725352733908400594456765736871889872745213803982476899323385954547065348080599253413070729628499711199474471240993460823751671207993267310498254584647616425927172625038121236185657177423780932795356886053994575358068558053544829979177217471198094102796866651180322348908328707076295395266281068878280466870091095633188477427521892657324986270312089131165025553136426794846916747526966405215235302097025617804431834960579402150434956022377401005629294971450306109668670056370813551964310566963556436365095671166508858225345319671502695185669567459428102167431604009745997528495293394946160616728374327538840424998025682777530815197596028916238749548995633711079631156789209880798012125589700473142962286774678426320427821463269947314100093149319668745045637856154628789134958921065667385823158963533596413011108269207208294036045563972809832028130897228590065180309165720829651478463950825539064703116340019947124139322785695329532227378011650139519304425681957261327094629974645943352737657679947342921093959633952070012604611696811157367795528017807854721191865116782833781922303113854974938654079973215665944137971759435396767259772888829013390210544345539420341915193116787871735292087533617353979718319731177811045960118790400059650639264139552338902014696091316759474482047731892710758191716346270351872001278919156439634302077351081788774112198906416017053907987481888388932149966224007333435931648703998893538326792201122214817058849932089162093220691792732505388394661698790316475659643023658852755021549716910224889248987721117126864311495965505105599723845254259584035471654509779080791110925582406779697805166384874074733234849351955295047277434039433100974474687989487550103405370300682866113340779406635128675014615017880743989758484120611827519964965185209814293679730250719431838417021904280420038912380461399173174433375916618003822195814918881060202567539955050285647497688950414700936010262174002080048428567172057604240966335909252512760065524581617336121774278704029742210061507344830653022410913101231297302126063579171065682123239556392475871910617210753036704190822248449798521096410580540316875488335432891261000545202189696083792237332353130424914138585450010483401113791953120805215061600089826106319614205403996010895260414113677150743876355076471508626258968909975448530313291485459393200439781695879052733070834057068582165774084771672706428465938518422527351215351411976382477078668893600076082183529333025628128171550057523603185531884135793839781546898624998789862473577694931420635233215896446523734034938561785556609139392236792678742293531528905917567093797531971495868993782737458266207992763507194100339272995089775245520740971269464215034208911000075339297949104096773162658970184938381182755267045639974775921707586258989660617990779369887289068481923361298169691486641132129911040667939597959580176886680679825593322611431528865460451453949323272767279470795868018659246079648101091179118344733340297918755367762026894844278536919556907999082593866053963099084471657403809832630243277833530006466950313727873895378646117017683853635802135455318591458950003210987414442284311996607182914143799779477839092952869115502750784742881547482142867225731821626086172294468035474861703512841892228611644669731079504923093188830096985504554486394022001161615066748173518701187196603220073363516710355649427277248569636322889014689392758549758007768241636498524383199865294865462799251046995352628256591907703301852006410381710769810213617534986736610098368987087000134792891751459069064354090539335684715651391833610225551851591331219605103312476080437235972843589603856118904729809307687114261757932087095356114665189644982953932138162031227162324464500205238223138592192560353393422463954908655294861639030603525404557611187686120017572987040449492308840003049348887553963777995653953283046478525009147219077806696242047152036669318905052031891550903338033210878816655967815224858492850644987440453159871079272202258444445837434538311692952817909632968974783708550823632344745596868527238876320390667809255021956287007693204782679012209904925644769431257192906096124846267056656614713026624210257755237537310987928237273515732116421804193389214686527826648088978395756649624436254464423904927360432433720861156489224255802144615214055740546677391197350376489685665731693421571103981586173143650617165259640949354066793067139526302396683815134818122363892627899783238465696117394129675307912493625790892297606597333234486956464343435524033951012081607753145028451911728718189510191690976031819501842191679938347718282286363441132276843412439539137179166121720030299417509599520761422154087810352173459390654946821666828168014733229553127685346998407719634029848331712877605906450338166815655289466568794052762237576357689440269084632889085514205238813377029179205863649016976134233762416225534830818493738458413285375859174364698006857143065528895663758369109821304796574075105388652960232743382424750746105794051922835660245692818210915609028697040222076401861661052965672702898593495649898799825593523625238260401774722373010929474468776743479528317750934719868465115800142456014896551127761901893704481077193234814585792198023570073244235909804293695541115730875663943915352379549295765286751481003357422510471307325468741539533914388963549924638439917418805920253150608178464565230817701298429365679565495190839033483902956925558880856450741819786056065512415985477952415103960355131732025337941419838933688062367525347519349307981001552634975918357855751146822000014442655419581953890418225736970236268181129838840254847584315076367554195172621207473266995034932872294395818030620128699458843276248069808393093579603918753625330530308771006788789415616415281484947262895432744987935769035821341678187953043855813874775375582950929070742902657364631256591815971276150351287090155181338944478975476928914513191270026593901798621897426610541199933728387691695426622138187845484991348345100928422768592895798783448458773401355615278172399407105166213257136752591261654440153660468046378752891386247786369072808889282335183405493527068567537592789312513130710669302276771427120013626136280283349335107539343359784200220494190766379512421667997341667353045749847872890189643951143224435265251679452263114251168489848305185441667280838609964935486078020417996147742513532034123162612475764706730528891724199468017568810286717917467415815915947329868826581333379572154689875731174961115543555520719165389937006040991670195944423977819710317624258810184839557803589993210166255566226113965303545811347629728088073514852129495103608632246411011541356819266064615059521693535886010246765786799870433157904245273975689276816812573358910090792501993450541637677779985643044736548312423501478251885133081650033629696337767858757197018481857647917360067857037786471957460947138656078857296707781217398421726283164149416798939945600845428924023938815929271801536761044514953736947805186125619237401546257540341564320783027417831122715254320328437310582975316879815405717020160423757018083131210375796905374074218880198250439764038631559183862024178873823872987962735545699451259554160549231647489788389861379945401085529790675308994859077759196100947589332676730258456978903223327834257204327053340795039655123937705881740010951156084215599321856107886511075025875673273553160391691470053817570994217257660023758697250266686247930321376848137967232105551105813328762789646893775176903427909572457041460254419988372012644965090086798252387909615792519893565509459161101313105944953370938202263427856102794239347614152115951542828516802349399979227491644695198131198716418452790549453800225315660905075607670748128233228728075832619544105108067590671874891799447089752379977512700375584869099702512620791823480011083308758255425787934000802047114174887932265542940041107299221698408476370986072028462426288967915655501028935149024252036254555519579736305373121978032406577452285286512506902228492874002370243467530075674245747860979192258137372177865119528102072132166064572299049992495824440331617915356083673077604835997223190448029744198645703753382543372378213905343599496684534826644480109805731539749641891204940299674111893999797384784488415691402920160940593769404604174099500119285233990134026987730347798413229215857170923700923607586203878608553093352529371826503940078256567030213675239731829403209160247412138154101651739987189948569095750187233898382209629836921392617882601231811243309849211510215133790850805300156371268802987977797400179309722101956921538064290607799676870789130076931045084636958053466749110550132438509234153346152181134250577127297790933604291851248174039753851095055914945892800490579140790484535376207485657719647164461945021371906114729457903356510615670460279621522545883746748431978860845556046709858178747631600442034078208515747211849204470636743163470822130639897832642271470293258637464568315590402914218118641736429468055321520594488502561467247875980289810782555673682545533747650287931176822239142993641583654860784147281670575937385619064460778386732440897928131751597067944988103413851855352596449676540068399687666445575904311783449583814662557074760241669330097171224675948422816109088795789234625249898154032087777997275817760703757285420903779204217522214261276927326686127402782425904903230240884871689113514001182389058245780975716956985116014171800308070267775284053445422987398799386130908330193752217150203114207959119202339610450293879941384186391672231728007644372689817973924646665391910965376984458639207156214347535725246625034701479636668694579782601893632671044194174973186893268328265309036186096983246524621500171028746584448174436764907225370151299398047880592867492438276756188700228008411802202180251720802249622604150805155346919925936422418716536735203368627482947357874458450344551914162807425150477521315535520688357952003779335132800543462152470624481867078713227377714090429186645504588151741998386475981049005302220167950011858222034290624761224764798695809298255617841571899419129832362155553238108350597279400114149973475359767147484928705358814738354695088047985530325996081335580497128841084733187358764434891514932519012653813167142952450491942013320128748816711881370624877461615370576747051923236699183626107207467937331577086170350574635225890611887481307536449852171488506155468200021689541854741268264451447258518797986612030581494568243231657098001175636848644823279133495044693199044647160508866939512471015325373547418529683258805604185770014569079816654665835698348003557177989037821788904973864704302716788581821884724248608872217173234010131106412898257991413909979888825236515292879110716513202498761612217962386897375274689200711956548607549549958647182668424657208005391416345004211225267435982413495738444863334004738529922634604037702773433695390954185627402671453093741348534325874909419276035466947133924952915860599511382432477681677620650374772744302192322171338988441990017151606100693014017721430788727925648551238123231577836901576305627961304887510605586621400587178646616475274514385066364054678344627231588970325059219601699640233103992768048702514565424123313167016255489806161659601608850816636822684991108988754489130590388106697617772084551432840647368956590211870896718316271208072076709403917258191975427010622149084290412360288979045687300417470297085027207106209836323167798226838238353482613066830227422871124170646379677685348345466592538050680671983729954547277749645113272562684649815852510489649452284037088893728286541513635043148745976388389975830517894673027691996117092997500753323487755282599078536433140393352716818947466665052380206053781559683734896086858899590104168917484643714493888993801356153474704159885409027355766012313751943007869013684361046553925346094757038812147304615353645430131971361665444660667243113070983276179223049716891628040504092139830516454072517988331284461532324420741178055608597349443727395325561836478778967720469229103338717750218783993451783345291538447341614618877610795405603019714699269212107842402702835082572403663920653897583870406779953671649829707725157044134241780537268529589754895990241354562982289733687492549636325319389628705256877792826686822473057940794634002754845155934308496043393500655643842400927899289319104134842938482992809871946302693880163395064936664134736076139306416064394842985596054840184439020238892735460654185992426223210370440905117248463447836615627197018954324901573789049369152068084820372216668585795177582134184334834503044736187969887473101012675124158080198284853397345986931033885670455788629715892607225409677791581954837216793119287627920383007749448472155211285266115006720004998134512297141631936885660806829930431384214122576900065509596993344013660685547945087078032994595764177484098074266220761464185284812370428535530931493651469816684001420960145017271983343576536377049756427059694391513658043991149917727336782406862902590416168510996982680059791043122227045355113861573875755337844446864693872759006986943395712968141305520338267411403090297463015295910335333377963169389729162596505915655926891225474926533188791146986129715689525665117271349218909813582243802150321003023628501982008448281587623079640861815883256930946020411957136501841740067469271497773114829615816578330476027265817496387860072896345496714694409987018531200896838297375919921725838379121929193138087662524018394368841126965936166323893711297624583212986229756985147822383868155967976603975226278249966734471657205854810246471015886237644855659807792549265097863349966523119722524276846910117333214553141439779759208849560507372849629482700018233234034791562285315031877755956560001104730700336937415022761049726122257260852902713800054460100349486075531717561020018836692892120215419704893994913082448621655288551441479010760451638370910626210773392833657199213277176623681429986085704550031348787625596261653902291539824892892238029982827523442790538386043247613329709653545096609195824776218482011163770688941594827486817884180267082083432178676618031179290891652642552194868549482466488174759854206876074640052563688028292178183659209524555762656125385246260106926369677449408279416662330047984445191307121093642203352396384939430124042056041794917961949173814291496795667077608853239730063081463519224953143896062845541535436591288692145577487173625843883610225288391014002819079208294974843795834589330783263112943993670063671777226207851717601809570550726763627152473351256358544066205635942220878514759549861720148207216912038428560460239912164282847308415563534405157554128757011990261998494373603948240574919761158950564093468031234385695394384334369290750001517375827736893713471097330761409103855260265344856900796404575183085976945306855933552669524825298830491377216897035582395497328889564624126160760266243752678068506308519985254399001900497257864703839315762209905249831924434167614739733749262005301519586355932981474751868939550322990658507732818549092770614631626781871153192258471363502194081295938383833754672992820008274508014410001742686432559975610817590558813173092660264130622452870499735548106664504661540084236150544513451787214042127099010731384684595643462766620694320823419046970298585751763836681471956138374970845054149007956918606962550800918805394841806692313848675843526255578417432418342298380554300229931811461047607843811055736056492558379096969648216865733373738771364224293476702880811723216583963475691024795149774504552534715332062156775160062978026748919621095567323138311942741430217975806346734969290446514530147108695053866191234461377433505909214955202882218358953465050903549502355324944507729475448104729116766682672730995136635136790675177676837593150877715215147013848417167963650232719600512153686140910334282443496311910686926368448818308624327100863406964684956750237375576458648735884315021330975989723815348194417880319657836228449232782440064560079442786227891560007284206687137953056490470500123444399706337545918803899026624298482387242525324091664908087239318980922364376778548766122754148001185812675704087289935453205385435158403863562222178588361729635645086816599545176418809979042231121562728416151391765619886517698512531942779988668580526563290927799566555633387333126115260061155156391075199979924510063422007318328181586955566666073714969890045522466687448070709974608472924847126481653532566257048764756041365836215168917336110048388997499598377832827611268143020007996002075348815207033976908207738110611621363207960217200593933792156553062394237167177316405800610154742679947058961083594344458558300330289381034569527054209560189044229052363290289875400351105259719928667987556790068392676313844396813002861236244058753708751132195536965745041166073673468762211884041465384770001694742365514402819174708204567527669221771699731162813328742681132249770380368081416740657246457733767306982554282180209452700203097613759628790160917920815529876719506783308968520659052477508586344091921118518057932690256471294243388841817788006083060860742319185505343164517629396806134061301338731622062323032304099925522943487094979895958703229087980730995031729050598122035637552350367741498776931000078457069590648151477416025878182223270926210581671802342778558351471817100458953675586300799770958431516893478308162333308579491513509850801997349782936891962457861069537218024036703457437559270710999540307109064312588434963341775140016912279586722413040157061271912405725444940770388352349394775721398629192662297602105264554754457552672980977611421148460517561391540351989581507008030207983187394350776936369414234866203228475192040675543763631888819008289216477371792778037937536067115202927706571091243838953206753196150918498845405491265266078135610809922660732765384935945794408600420991950795483065574576075728134333992955253075193781091418710983613001168667801190468104363931555140885570384815232421368743431744100607524008379161276751696784230959138344450748904746901037847066947091803797537595885235285363545656742785037987302288881592745500567205470315705884924063544160561878892107965016599445841557482012681497700835499586682823596414060498472234056422337170483584169752333846254722426505928321090631188602621809444870419708474888234365939927664958098688087344237749423118002137905923234167493768686595852110393382100088065172404843398395519698516243719319152302975489233795645973301994951950431961938318271740379670908692737717322815171108676178256705618350132493464465702745037005712325101461442532299554663130990272997750081300490425726754923713133235092209424667614831495710788679264796856236673972235478471661050488939947525593035163004705161010781507678123313566765972607224895258546194085007602963094607348982725619905951444664214598855134173130919515801718792717197868936597383369019264427495064252793832927226564864569712080208553277564273761517883169345744721492103685882808751515667515745001701772573965748670583269972772781434443820145278167337089163380212061215420329402149282482831236411037881161601770302865071376703467346518223095698324799062312301239648396667986814786684769703738425146420741244902375756314953653128678685752030453141944660630624088678884751839812746333969999288123322679169690592527314862771220330521663293415975532021715897419156234737323939389877648985988607095772791925505599754107914033490537699798832320551864843860381399666095359132775193482501665331184643765293665159827718437220063822310911827011558537533867797276962051651213619447013893329642234774569293842140717136634337061745115328501393576331917595107839317594765225799132416819668210008264470672047702318192599479499922591346329194031215113927999025550060906689581363923922314732312335524316552389992391382869834823421630024675377347186662497448229166817248527010799562141422902796463134840441777093509711244154299976093656166953807261196592305201127479792963069613488902688158939163961351153476331819165652369267850522864455592767861598512749704334234293732400510785414301814342376777290915296106049035025189790130276471513473813415966787938902950182136242211731404515976227363457499004378627234347667903435964573362383197657968347832995799224753390375363388360629096608027779725503624231959914651656832788389179184191543933419791567954959806632345540354580547231745215861612561980048204883188132571638102339092326833548829281459536286879192887935739797023121910231946453657171613920603773644250513772321677216654886975502479904492834389158658721184638413001578500918830520068095533980602670406400900332740947080346073927670052526290993443102484729360594621132790098796344336223709665594311978792993167693386699766968944246157007312041785215458220495876985529021663564990017511704627667033152016155747857388817409467921712338860838385013559602863274209331454900041876769191847113935710609370897733460537173157906545658160180661697416318868380428693492265066328929947603209056919303417606529614012456617942023058005961804024130250124324726320477537392676554014795418518912993869856129714934416418157838196417716067143174314579914157692432276767993179261762644674763641434036213255988738145094228150192209791113673110072137681190949779338088244833495376052259246548758852497936435462528568340881216834339973443529424701862108404729903496316821092565599202927235124680275550302026836965515213662299155254023491305253988655929048696041106165635112927342341942845087704152350085849119077923322628703663128305450401010578877128049305249022694013159281506205223056499952246621728448025412019656542840114201745326490039661482813606749091327659478759004814600588898289621584565389732229175508773648079512641845231311707327415195043730221309417472893376971199478484910607390022909016164731142574407971567396705749787442397598073811679920832284049501110492086576274317412020472967768982798332530423035326264463682485473866276555215283092644481200950095224881016932146770792504681269319649879917283827406813346655052089156291198263759711947301159840510073968587809991852988462280147798654482400327007726165908536902451050137818502328015353146895753015477982226755796750743944386813973512499226411307552386238844393798872385238617049922437010724116632168176118863402777086463634184715117958948224601332065465587166141413309846704083691668896231014277955587744751428873019215133877632107687586117225475377007703953307696809791139281259367596455676006366886086230785993017459960031669476993098395272653630299187410620800573710924303839197200978024213897526459741223019990850183699892299194270400451811137034647234499511586944745750990155904183792433591257330733061397852581603627427302958475582611791220992236378566683767502013694807543913521582251266672330430204352373430934648516637186441513274863361333502570766730623606701389021389330653309558615131194833473386545259726017217978008894570136585766819756611557531058317171364136763125022219921665792548378094410393737187387835585547034723969289802535700526992240963165691885293182114357181272138477067350018029921588317354454668839998923405721230207058630925148188166830331210758994962311670540456400406721589937195868668865176554032195536066085640536061105869957341907754972903248141230311495155316379827611785495114363593810248944898509781421563296868163999472684856686560612446315226921091493454088320895587923368987263757656913625764864463367176188717885850232589195012604965619927066997865904310886098801109594236964597911481199791920453522625586567263385617847737173117518812265461671330520918540699589909864768140305882923113200161621385734723956926205062419833092612757080372430015653891534616205005756359220809803876835773900865819674967226074437014986973266839000352621813013466539775791896355981147055883304101989248507220842288450716248367668862595865466578848011745076680019682173703344935348612477349846494953545805931262412326836910038142880497380888583797284873586492813583451080092127120051343964896473232121991142521329402746952059578642031669449483117303187514580667212185841274544283931873424304168800255395319984193379115401490953697341587956128211439231366110397924319998994190859777103194571958990563283936159116135548885192752065819000001577415679677925775160443214942877888570565460529545869406119588838813567975844051583689847313962336617275433421979768636804345025490024777924238445769941520212770167744759943330557708919710532223502050280923311161714729182830688335380013807464331537414060270781238687501133735365079320685235279891580928002534716699418710520461980298641609917797138370109367621658994403681996723629530587083274583270662285389208926073978807281076108658496581684131457569399876431683089581669917527189785909811978004654713000035954484885183268293573964431182142736426629252406503068578454082007798083457234648192720728063692874351914848880438590587498943552247362174184004363990606870339866647797275543571816630903004499637806953496369049826548586309755785014578542983201570147597382310519209835586697391819903366807797118877369606226363256926875111785447370655529766925397848003106391372404407988401561349704769481653655625005648209119656439715099000110085814986681964737867173443134584283481084435877083165090565180676912332027187016725414049325335765910967212744509866986715258886765806140511061774121705264921399308455695337783569830265720677207499470890981665940242515415893292164907227701726986582464724810213600611993720832207516078915850033159677882918526826236750844301493498214643779932059667170008178953765477552728552190612462215115274797712880187324182673950382358257133004128780381292441583454935793101467136114107714137469185729749253492843526586879627995694780294960785347639204344474126200726910175369526825456982157918444316778678330020113954579277958984850753843698579958152140405238534646596802729146011460750707581527944506827211064353218233744554274317326247586030103190934929690047714720238140950522648263445969468723626987624928747646316540734569055671667470838646951686941304035387102678097044711682942545144871305044127707367084276443984738814949394153024290028231751152086104141399441949218391134074612562014400885830254112834458570841375276154433422699013884314790795942951282738034242907949537022086075272820633859188580890531366236937084881026010326445269854226382190213025974102368200416275592894125622806135522309810819901524024464505924648817975016774858573651564636679721733588131765043572323179155747239845715526683231322166348484729388670703838797685277309819451882128280118931213382575070521920639460720530409867454285743444208422519486196296509226410369396113553459392765884434952168660035640324976548971748279034176968111254634426174617550067115404710632450249719210132638907709256742551500897060922359781467000501697226669288446268097316323714498641674909732100314997916691561654132211939498054660258583881498085278603978927258365913791283616304225956598019969134309489741674982773770803472847858891392805141663308543534942386914523984980067101193240915753943276066824123949763161703989768673700783418070845297642211985764011959745238100537839560800256420425749262873363473918980005253066040577083327174470090802141926059147781039988479595764698648697246064282295156432962481960538699741692441821744183919882795409908788843698400010943413927501302304763697777598055326575619479047715051389392610681288998105613060596396256458405495149763796320649356513229234167113412927721603931625948738546211643152443933229622034601995328055663264359145146133360826858280948742895697897969055235272068012631847027513601991236284923355144988315571437314909309027393739051383289107483942173247942970578515621291686213704727477313252747287749895122381850747889284741267569196817732369680575922534080330377167137601004307976128327235874723471394954724677022027367171025267539619235063235014386684794745961184784173797461471513840930311828820386689263940766351034703697897491219259290797983416214230034872535814972605748277224522551725660980783185940971723643191893796972766388419481868601875939272132091843383931137065208822761619280474543838442216604135029464905875557967193119386460208454034097421915300724235292398505851962141698937207403588326028411018865984237069287309649113566467282700373827210469282386244231142336885170050342733626197460687825225182080276743799561361914803484627693846852861638997981619921731787309740234736171909758404776113859237061886691979950167127753572694152943837266167966562455318117326659844872856255345209246564482810049074161805700807552164401260662978245211584727221744546092222509535331841855224918728810187030964492163974594627709881328057677637521302489874907612445576109319532053602632374662618795974922440307651549944292686929333173604129952748419270192201444138885356068557292726087834380698613898860036248790850550626213067968471123512659757897693105296871010411446662538723648803519217706414800038969762576876702067464141823774017453956722417570095172709194366011036516895706640229406264720274842689794559581806739210674089310939771191251143161612245384202111874954439170345256872252510907542337569797119642467897947672590159554619585162585459804322588848217779330434274206776410936099713027260822398892605526646156699220880839983781847423984531919741951415741646742857588688666825334927516291377033447796670568951099087055553874701208528318514943813688411274151580211820342509956410909859025716212939386029519593575911015449916104057775512648118532672630756004485154070978217423227444890420627727604777028321183763430385751752626623703034758685951681090693552272447531758318854263312942107229485070539433385099247635364938424967154655570190915922881101799075064903238172070033244096674480348105445722533176326595507154979916611812554791306117946870059704897587946292967861425347584251526538508051868647303625064845694141922265380229995110854699291623441143002880109057887383450771179872265040853395756474530114399879344293495274435635082114710510308528006315938069210217031426947045560170784718625004510203583402019389444643109665724424536380884770552613747410422359291081426109259363994088581125966106337996801972472549803141077099743153354604195567939926712222565069354691340014057292524200382797246652822428386807334824094482758579272707934494913775773992010952987239827792234535713283488574501745350379768425791582149203950116045598202488124680028953875216970873350092845363220357361205704160850902140689679479201203019455695176686764529053921453554052293676716130239404934058785680876121436660764666204999659175162832416213469632238092057759471331485144987244586788557309226061002876026190842430610207916210638646642973699934944953988433480961111807841776566082810546155564208431474014515083335084118991300050247539765053637350531528976361513586226576930384473428735878449114993294441018047120063825378577202270429638387689747358710540126410459867036462800685662056669954435008797741868164726415429869924164152803058915206232735979332596619633450296437040094796931623564276055288783557806679679489572007475488843921290451611756573393378557044838410785190625967491622040790774612901171703299412868979554990230548167781666225317947579093672850547432446238503797851500363794768479307827175528414100043033058597057023433126338668249370855270538460277779994311222200807971697744075235542377128109666542198644762398993357002357557446950637260847464547293531433101836177354932474122494465381358978438923725861521400481169450586332783615644540785534067410577178014653299569299097420902920870094046926815388128575396582674622155329543014792428912824804424912069909275754720960513129632927717335751366037675108118362856762031038866035929192830025542798229536360768061997613170218684309364699713617256902346399837097519876707629416951491271272337066383926706598584884226699311382998713145150686371402216438241532057461358160625090866739326424549045826332385916478688060467957550296656197847236525287650377979968150066193439121631319410914971232754878691681116278963481512073033763715247540743345367255539805098107616352519745217989446100659014318712815634646537379810994636608413239283717738319586984829168455321881684795362503260487424290435205819889968518540889085750701459316344814630513078451390559369477588907495361339504773219884495163185464667693806512998998014218910357422442141297386891166787390493108697792573114347515735131069747373333246494989277507172297249082361378684317660946878741138590818234224677277878406202985273580647115101073238186715703622940910784839414132177606832118866131700928256262758190106360447608970874278550888414264071460138751436844607065554013323364954427689345459667729365787389679308108559056984669212669528148604345177900191748367616741885291036210843676168347007211891531446167137900054767032088464027812208403486323432262737365276613998944208450705683539578206425528331954297361034031786211515182244707051603787246876175008747914389834019913148452601628744714344545425318700440068951963391883427194720317690472003186545704147622154068981895761639780832019904869823155368954264689712697200384871119780656703755967253807260400240701329941714195204045361176153161749124117557969770848898630672977436124079161258086200964256069639588157676402183747607891373730204278684921275173271561591944324146443039890402804572585450904295834484514550671891165642549060298836543700613909039095679439838209470499712201159708639609498190159945447114534277473395750889884208318275047389036366893463664416286356134538239892354824842745724980516324761143077622779401945248671142428549308672721299431137299817971367719228394973488540790686999172005503900774827961207522728176301436688337129785686712273169684945778214807242823054970675547390506096681265927888837279391870930635142498793108654865728115342230632884076102479817287211236221188891215609976479199531881566728984401899485578327422815882452853825376213674077768462739552610352252295070434831974840148103158993608788041613518734448402301661377467769359145210491081584478175023284400280736767961731787298251268703939980763301078401969445612109424353594010207526670477530903100268571061641225468832192771273391849203979431609355964571753352342510525435924437773944833768783508529417348468674044122747978654163419119871588266482965401616011802775341303845134177364321177657794103709397100863143547693387907981115120748540807894560826108278207250805268878521345352157576676857991549075158822075164308754794178783896579526956880734941770755567094536292895447229513652402223928995930049223586889342422498014596858833367187964014853351574591912232969001780771886399853533726621913593104617015907971057252565628026847310938845213342618425617590884338199104407142488620880789063344222257840660382339352223089867086703451982600236323224372687349630200160047966003023390309937832694251613484324726110752704912985406993936016035209452656333476309039481059498460466714516976395003087525474137337802468177140569122577426715528456891538401837361853361074179731778162857755606389308557344764361439305926291885660178839895101662261932035863991074947033579983885027532700653445321725479208619185630136636944665296859682268101245641449147280493272224011286151405166395196981597994865825792840013925599649625716712073142578193427258342918496888458803225682057324826235525267818190365217186815792294752021633569069589072147027577949873480316901695797754583658192024623424544966317394276757050361903250325178901409633824922742548954203140139736979532146040259918055411918528200590399729123292424060634708722169524678903213745492135317120414133651401436515611637391542854567687919195975438751417222269072958870347158365576437141511508139271659799240601029952155496103217351660967232969427196934754449775945427349296586345189533936944617989198727507135905189707706249290029360295991511272397912347157746957747498451754338046202927554918620362154759356505715506066042805424919683671194945811277073365479571269622452073546127509861531777264088080364452283547550714298594309966859014083214624018029442192901980714971785815263706550709464652594959581511962877659900296456258593725525951539279084411552589759844638381335233354345507115313776266222941125116335582527641306227009285014636657924696108653316401045813193455168513300052616194362824606767591516347152263734577222857793544346790434015710154361145413246578934091235489109029757191722932963499533673230247426793366609838052536267302861459223939619791661638229731641683274745954811301275987357761879813794418906554760815989167504594023927251787736393136728477594054360406666537141218576004116755743568065961971576797770389599938094552196562899979014901065767877985592265828765235159762822527218763611910892432054930191527994993066112568895112200260927359729149062358865277302699904979427793004648198883990261695369131565022511539346790032276081485163613444723623340543309409067926599212376299019545626299227367155959613459760514132317691692056851788085776389913871522060409587697762916690482967186503081345582309626291050089771231143081884435235019396265665633373370770652775836859177824710406502324633795484483084199269766099289000001553374268330664208470054303341912055611311112438503511031356702631653581771622287217969451930239000619070497434498227225666408772660507892073076273452545760140936853052769423375486530881722767662001351940060622200834949188414267362224517192996562557348177889803523329163547509846339318394749888555171876479783271963713888498259872939130920762798086830858392533282994939586089889491174813889163945882020749601303305195781394365387308926632415236688890949145256305958250086541560300660295091045641878741764648590265553187186085308531660899116991470150394157042109062243029096373533490770110593665209186864724016599876004151010295441080193789714584683365201650243487264297482322870756012368103712540517973008147023496695671078683618230093306349416585360536416929304570470249690354892519355848948724309584919559866538267449391481893745699855474670669975150837103922534146740958640636013612105061260250946664387633477345829862885114768447947531468950470376672274953031765785082444793933871842301487975880427827933389767550826840597115415610323964842488973894978269763533055888399430008098518552642082294252902105168300740551429094836400769913809408258825295438010098175209417502114482358304728782549363604860871761466671657398443069655542196026358957525294670587157437968825097054865932463701075422755784511547354860565642198596906890639417513510645801612788627209821731956223307882001017406490077261484483210145351523066848598894348920638394105173687623932701701520656760319711629635159970173554570130244668202169315862937868411012768410965781310348733538152421315503297562474311089624648949682900764545975887448615326197970288260624753390046531504219101410771254830600312229931400662462639114883704462651326893379302486570648631534379373745969629579696265818899265649754392239043283842877004296383210780672614199472429775511645600319316033931472088844195567154040701251594027022166394417701148549726400130436727473420087984444657048342827355451214397884063895771312124500320390566860066703452200075826430511979693653827138816613425685871826305412184387510933691307758823371478776259240410417497469813454232735061763387027339054048366071338926309701586387951478121702602866833133160354518517528640802390687594318369938678892976807891483199908005432625869007410204241622454726440062976474237826801337444265837048479513468506773417054584722641574014742465549123868574466021900582651524293008213600253549190695278802187271282522633758858600386997709600462868715709409427577370465074401397622496056672636362024399045173593159227501645260097749052900874763662740774189608290328580964553378521424159736642649247030319957440342575321741223997668950767835546849610736450024483569505783693633572106844845853476345257604690784384496670167544978839165148102147090638020034788338168533269991540141055162921153451387962740604556669303571099959820899894539464372571208398557404164458077685590835828684396138592821369276707136661484503884757446372599356763817420542942247551145601832216016404491287777335820215462966159177357350189641267767306762834310533935878415290957059728372702766771544653311207164495891161778154847281735428843968879297092754261442153481923132344104501294203355667358405441539118194574094118731312972228193251432665269272808228224957398451292087176800646377827207164217830626887473437868594081198649347607901398368695270781365970241470559241734269792349652748516966363976972223455099438304774145591689535361179511079917476962310363669018520394564753836535873462403457567620312308496631084269565537660401416289272262575037813245844123475251981610791769518715143519926586210202002277150752508257584635076970439253240306571869295094305626015265826810391354111014001159604768344056700984423905494116932968753672586445124097868062227526291198000645453252424385509511154949571631774395619048626418173395547269673931847346238814149692259507355294529563292729390740229069967215020691018234044284455049714159413900962137185191556776759314799973563601986171349130499470534408898349083353530603650892517516116302834301627656216968965784149775670727278958076157784282196189308376950514752269451575884706613040489094453653210761802558421012344668483706464703199646274832631938572375673622155986096666839661693366714172605269414692635192064210997636010132579050384088529156059941449447624172681277680973761047608463473741553308755591596172214670797012774334436208946037534491114982647330414501464625097873251079804142401650519950355085773290329898633665996289217294380547845579332704704222544802135432615947892633623599327275120195163894390799779563796351225931669152185789330571013040180647857148821956929621094546265758666698515120276915105056773140209007884167776808966819897304139639854624702969370353634548225629002928162533264439824735925545929880551574146821230396407124268930426272375539432589964453679549391633663133303777000505039111816358537635944024073560014813971575278319424072698854700626038683929169680082279877807355158308117957853824827277961546895193307835139077903944313406890037766186801807835222338220977956351510818074529300681406225915160757738387674537698494451821574238486147513878316789087171110804770472443955410312849363224330177942826296629336439618791828752075562575256080102292736998635548067767599633494913570767492911918901919639744424536965673437414776567958834403393215902612579500210886628023572586733919846393896793716809098505664174427175920002206871127242518141312212006143733013323229795397311382191490446011003020022338829539702305443721421923514224995331692167623696378572362581929708457452775443383591427471480566789902933772778811421216174121335139291048787066585527104209454894945491361994240194719490199803267709732354668866947357109520324133334251093344814355708121424424038354078987549081779002410650925209314560232205019847414441314766800093702408513786605663529437971910619360484224282326534375856966556416339683769532322281311178805900430571100625948085389510960901210310207973661784354281123281965562541372568150273344244880557440272676020826018360771996301565008674307724683892939177601805265725678049147490297996952127302641314939345238218122903036834887112421255129224833935457323963425334134311364246869802337287353016516578454062889463709755567916403408356233144346401557166214728635881535082912339793344738800741806249017847220224099606861854652522625424832600375702546726475091137881886780594810298130180259551843548095426735623345634418405771902592246007300829464886682741357397067711299682664641757431869567555778233929971918925802337906747438568891380353121048405010576164263438297610713426580421935868289453133505086826108231429793365782032337515080894149000295474709470657724581386565028733280395175102177990071527877737016351455322050906669230371960252262683520889289278439234135757551539651528443684590742723568563126663335246099134828358582122426671966354526318626700496340503938244233311433443174218236359185617920333194608937593083603075342323912595478111511552465569144757993389963462172026160193104743188194709265059367410579524706203615844190031474382882102953168043279813733721224910785347554357732439887353285284902982906672043395530500765295150557311478990880445846361644567604599057284414685357962147659717577953248748091024604631009108273250173675878333938974592871212629395068011802222866048117364700801967854793216797392240845465520316557396565528523296582960408482214473546659725174314588520541120989457269386772488811902606275457334928289284268464862248593176736115588673666352503765973988271582920526934357239810062605472621849610440654583544876252139130744239843171035968905119616252830640902556155433733293697541923380255112516408335800851224362420499532128377512019037896616351749519083369045350474291208362770129479865791354137707082829833174651289136899344398342910195107687177566768506096078064898474985715057372566692212930713488587457289503363569920804965775036616762537965367794877410062579970615675608782662088830522834625662272542806652448950613523159282416142445171153109508069653686765911930206179928672831783842367287652143842793476043075848671688656821538948898791320259585342760021974572261642686736695097674627693006371567620440906639570162027163965912143261961965129083076437005410380806056055083687555443206377057549537795717238243340947992804586519626894592792177247666196045878718931459331167578666124657156039134156419558836458285397818056876080689637926629064204964332276096243194476603443066389643711570511894916869261745265772065380111392585493655479560755385923918392027528923882304804857033959885397980320288106370299584761237973809711698092014739607965341932115516131105776961565816644760809922852964034294667383677909669515722979833922389845225897957818147523387763762310150634422866275265140046420197707531730960228870744706398660945833321053910674859082755276691619241397802625637713056504267610747831830385678284678880387297463769356299563875451600724233411264737542769737556951745934093307451554261903529882653444048232033815743339059926244516195144558892419328631831475197670136822222358679176674689427609598022171292631202573132251415893053940187260491599567379969643669590811577979651469958294909312546252788070701664807384524764139884744114346521176315942897519791523053788744148760852505266030472142369878257135596747189221888772002520111671337959699598985807209300158897410418099321972357160453527573759529749294133131971268768256598057190590063532513915220082179166372452033035826722896660977239990348376455934921051975394198153052240727647264544561136602168574174286467002502388976536260033271641913148382233818758699787972588128849964678548731115827995622506238352523451206766116594962656826762988994152043225894246409172261500467752525388284642546183041372800917284577776608375027838013398942996052690828489078117468576496454932304962294078405985010385117091949146522374711990273321637277015890177460053433858796271423691297703353643504093530219654683173503894152868161196172877343700634731660027014088953644061329625818918973444535322209859061480416136574814261740898338737338254452012311591816730133252577666276448848387308331621252883425323367029015659537701518246420030537757520572249818408759312840602449173334207460222290500726998920308681036963120715132252396954080875129109327129018120967087929352628633229211329183860357808454848997572918278535930214015205223299422751300909765463671113440636963473486903512929216092972276978337545525247779276214463863698053505864561726156887275322553802655494422456381381372681883582097843629922081395674914722504090889227570857532951370620077837238619585874567324504202714661501748305890194393389406208298928789409284827458943276932080592156718998590506214526239438083660138166582624834767562566581461307149300392172148511845864090232320556055866266655092774316103332665248861394012220076157862671369450633383393677473293851813330726520425478501283876732682866348624755434254948193368239461846872314247930715502646605785456352148209287007087838996135609245335801003224664194960082332576153233163667861928414696465543298267223551544309264682182352735121701273583227664375092225705946581500093129763551675719892816964525498039987750357701614088726897999975962013785692447408286141083528205805540950469309895428561381255773284715156130285475443729624013138638616768436456987009490827365905647380243660938876337165314772053395712079984337693366217016317405060352262122532406873151177304953953109675038251887056798825924335156549576694301126113102443153835868063574621280362864080828030071386911478172967124680745321483397973790499821399100870487909858695811381582602286149612422940233200433914990036526249080734041388680504341705586848029567110444916090635745196225065787739285906917518659447803280790526587884582559808445445439990261154250348233226739655384685994508838072082174394380566385929181325280447436935043258467041935374663102079197550694274401095302799097371157483253333248001821908360204537697890992802319045684405696343027391713358159732830503618108951490276972601360731391389870863814391200756640965863709673740654735028030612326736181777326057829062759688523033168021469386609174710146196724448667823691551949672508842000034266029926959274319367184662719206835224947197115632150324771783963847205823047571711943170911463609444330590727181998274283825241362785833775597795015786455196406112562288343828307636058607979724345188632854312853038292645937175683162872966701541146051157949072295016038057138406379688979597191733029525908161172115308860178393089049124773552188288374587093076118987296622829457856241668564109994040797867461090569200045524057112287389671266819542355642201420575022846629811560414514039486481806869290509494477983635990069385796750638296176793857708048157757418705389605677710135618157646379583702590391238128789378454196107747401315638041500473215891997334461059147916208266824595640885250852042713038043795268819498125309870887392986196231969888907237478138118261306512180697715537366629581099893830667925214554945488100693739305654894301469049806456508099198416239607823815307059901324225307787109989916878286025743744646421882231098835129233401559044837055938064604751627806981232396663052133066959451766911272617788559124969908872504386510640023056858888617579754820227641952318173262530923594144486825746787497679732598196773143194813339200322035246877624453025886725744511172692450835159821283666532785203380764158051194765436538786500374204751403882894749533840847995405250454192739661036448776238457242028080674039271253896553845337195973521800024042652371012434399642052089986813918298368306300689066106889950588350132841558575078440983368234129521614605436835160661287755398400646475514485744526649026984047559531279855926165130466808790115397516143691211135049342088324063366465246145250736452185238474129428009292966724749248048074732592644960819648585123497223879289531866014271637227680927568071329230453012180556258727687575695042373097015879352320560535771850056695304833559965885659238115789159014180948561713236715672499737661664867858355918337629743559333061420724191220537112357913246154153971004526336373705033129177615480275563917588466611557088535870452190040962134270781576726508854636123373773988775954868028637063479658449004222073503155597145249372707608707469987807945031677078168720863424426847696194992495047024319022615889858846765401855953022778702055896362990461386365027238104736029178382644707514253426449733003762983771122244131474853435187185927100203252389698845827006741986293473414066745074743707824002901082825822760242043100185363381375659664833266282115637740020932084474382771839931245572166010327428319669427967029506191732538513300540896261543512970659086224083738548143943187523661575106293828753275199012285668477347649604234359341446885183500140846606811923239314080231765017487414109284905324677197401458514681213475377326033867098224120789970556608551040992214711329003114857095388309429397129416098710045232715231928293256363822210372941311264506999375683922175630631797524599687091122809791048464808398982498488634347028304083385137938963954097831612680799333394178887853562332034079867955126891109304713676123670636691014069260189777539162022629509366760771559190083290359058881274431185153818456759756275456589242222714273588443757245634759662858650466306526684508593805148880646130474940470975696600198866036179703760382821952635637691021682188549510829228190216464608546648286665558869218169684158299306052545858279693988179085902157620715157122600005728364405374198261338278365470556940002760031414366303050644052484774949582849255918253224490261545177065772555494960097987886030847456168724789378166745601966754141041642373306942855705731983742427562362097605576418634224355845146807219750944425872248606352951157094288170172071005349711584380125165342133037321951406000676557712034536391199567276472672009842126019168693252469462259141088194204906766028031540351313499780234967167380837152765554120205264686541138830081474741725790939248497059324486382178968211796835833547987021775157111754715742778647280487819896309735974996385261636287077358079776719322783642142213462288246280088467925050872356910771717154490216007251627498464125678746102983528085260515057957012819855292601914194917055871711817595890600625125212615854128697741575523613501375305546351089295316692490203426829121110817112349862117132033155589262797459509515204352532218059855604800203029372650322304655610938541372757804619927804419423624237307813832228129594475893301983390460535451908053757788881281947157584798243025178078216935819107866163839141596175292539673284560225244827922787249613587380996198731604667401369814050965958418866534257575020807218959433527938980193933442025761250035338597468437412703731127573552216172137107468420546201805807441339082474684140097856298127374015967926121162323796816469698821306128722598724169090961566176944647347994999225983065036031306810819217675538358551962021827856821371495978343007048951133768477666839178921001528262756140504468323176792910147269568480060865574381742034293120713465710839333017782035984036833026804192574881380972806454067702023857831647695189086029231753092440679524333423532630421998148594089373424544163431243931538459202480293196571290779063712116681353309475722710977901809971341621544739702513713705905152238876393772628039044048836855490992083007616819344819312446980504911304642027548133700744810213559982017714545157543082591221562842299971960878534837142463714694416613982937991833811998199207489905588801708241179597374159525131782328056832649298067600286595483529321326780707898116738655496086905097661317133336273814489532856943390367305937544328335032689314774674791494791340281747545484830362881895634733339638909132197348899196694031219107579910170258615467200885340538111846926573340174082733203150425799495518282203242280529662375443055167412177724547880157281122126087668431912488432803166372916901913894632060854449566233979294510740616034089730130828801122345232410232196476752522056486022348149722516216141209781139951754315874269337641801219736164411283737412677560670873894206393385440616019286954483803971372395592023757747974874708945835305514308380413993787362356022561959124176850462610825296859004390983719090204553182858197824004798858820887282758705541400080402276631521498829451588130711070289704455624497430224651370042686140364654536745329288043942714536093355210973428189999187715419146617466132062795758926274525425293999449133557291316020847366609261413522349591565152564872686002472995038155793651004590339269595146106068407261185380293011660827201030953273691665481109770865090165402978010915152595740726120404582794239032728031406845670231829493026783645095970951059511974110494855754867047857844837734724861334366644505337413612216308048064353533955613700322680489853568164048558796792030746504238787946003758893977436310831791967615456770280318384862517199562723696618111831584605446278184922314389486008802977989794592324576991457196910786806006496315816519005678169021537222573379568843310292786498384391810394096724996627359745263460355100423969528672845868276399659030617683339891626165274975095445021626693632205194177348223286650274889753476163898098662645332585776081092315628523039724921686976042322091468144324845258867609099405863333299959934654699923772373563415501517532987509358418711113966993394997618257488851643576030777095120087922817278138197833622820703932801378773469163937351011332706442969971261193268586955270347692888355117139202614898009287975734238716443763325458051219289456599882531298731657196503247746282082218115006459121615333200729432020983419346329771795947947661049281033175298370093349475748240842825174378758659066461022575775706866747077108062735078134849513346746790955593780549688990516045233954663130602731583598411730340981284550730000404902428985972457040846781114566298903498441039072808521486183579855412977250307195732614584236132508923084712188230173423485290758741332047792866862572530708861983516093118464401961517214050963307364905427509703387985220290677964573159468894595917850589982874129259410890057816140745167993009624776316813423851240787430517769709410626258799570574895048295253017615983218094670934338243264028349672873722477757603428419256257171877155628042141237592590549571452600867293127893699303602152788603465770091511346737595751201220929190523630913404065965507247640390844372618852969562451751763856248275590665672857443184068108375761219473531283692039896577445486388326054129925939927527187529170236461886396459396550644801887061141291398877277585741754565998387020823805004225001847923209334493569286863029313136519451294579659548492289459248723878571733185718492690408982204978042875944980698272902442993227842910548327033041683619524039168757158727708157918525157673473889380316858047673519768274021008499203336294020596742017431815483307284900625203588069309828066601601803268305149354929850304210121699465595620514091002921814399784786193145519310801263128018975157349870771671136000890464367825562172233377580783508073452346713142572487890184407595980213882463725302751429631666002744454636448074968873280604507544798209928469793727341866196643263454951729859030343050482656018052791597105583268522080022618044846119532956163398904395631220852381624563781441816992833848864819730159238527153309080163044267425480804689244209946964153093048637779557751568129930930409475305417048476369198842944060602159678168106257003309874423369894935436413778199528659751597949928969858155483294540418575719422338943467512333393657800327969138562754811258629041905787274719626340935495052994552248478946906999073961559993187701800948990847975679049115694773117078439457191046601131456976979907192204797772625152059504477949032398686079538530078600704510258558421774863361002493862877541218505874772879905633757803975463474129856649218640518641506065778361574291874894350061930381355133042518721964414242299411323709959736793414620254877298246733542570579047403627190729186587980900569523751623593486541435556361321818770518391400451112059687482407677757346556302706286643708378155182359351621143248692908764982783561800829499494714684291274771093227680794420040626542633921870023888399655050989452336531868002087990469070839582255406750701443727764055452527802549933882127584166559710676130135629061111655342824200285584653496650488346214074913192825314223417317926886677132784717304559174557483305958316794392735532611528767953228431226507887687680938270892917495311542213424361479396484630090275786321688125971329126772021766775017138342677581120582494446161114763306891346063609219816694433738610377019708001926222017656392087734062033781357909686660285405440642276561326043572600749202730567332725934850060630327200222332264556463808454645529666227770217332267702639166768797378869114995297448602965161714900463019048024882518079900574930498130267719078479432251464925630109769774126132881777037942708095952974435722891656518148489190515185888211737783892578797599749052229736860044846676731374747385819944631836325807452502424736845597355013774659828133313151972420955383916640782268222190645079791290113618259230537381911736636496947494723188283648914354297431707582820202900110946476325497261924674685758717593094005726615747140287556426872207600655379015941050336565808440878145963059749552095088713219224901069947650933571967300762189814174763600988223586603000627864248602176917734723943840617873645100554252546225646106060811754554020571983852990345694953653307008914773381995228459807660174639703998471197297954171768087675611830354678130831513656916342016239403561045609104347087814746223598543520246390654605231545038394934011678200639532791580724007765180169880185522045208901316803241188203034517728155922418768585712360936139866350381511500441818625857000496262277942598252053240204981551684994415535642554703211258479552022858117400798502779225408691035206097811419558591884568362368633504922459438732985375802141667773607489625114395165702027231445032102519688292360087812990008158815163741414037341872032876506256341127884380161461966333850484303342506030938544026498494943795732752007953131660053840500251183179787264473286216669485329844626844163244004769380707348052132070554670740883979594046310870219992038182630564274723798512948760435904396058414822851448485844521740578041120780115555577898044468074373200994318114722520920785538160594120872841292470839056689391425622519853165419318617256897781229145729319635166122681887540601521138131417139335419881535665204217636494161752551547261429892442524548555424355879091524719409286382963032625210913495229093058958165066783263198492755403069434131394789512605644185760073464355982760174283607762984129833322132534447356445465708356019984773968949221129732464355048748380110445623015593404624442463933451320460476781781412745795836112152994058294246654509074154620174008289738958002673964246565006044549678143410679859823501823176775096969215201027269991645767737145730811125840199706501588230059654363061524154940918883386130778472887008045233561498712596909911549058331521886796869177444475303784052538028529564314919999868723886010907164220916310261921867145644828517031725140283471520666153209027447618265822379939321216765963793398549251875575094132183054700449915107746175887762777866420932598889896638368328864329851812622282617956513262667071061485164551512523057924978996097738648872104629683507617559922108756283898872761833762693536665157151381246776311370844358445156557605217245745121447649477312912336124283223746928642655205075017134274080655936976638936752551371214170633997585128379200644163782689205183395142282165209266026297871302271836420537971769560752475528564199233998900032196920412238989420881540598633792882801867378357126345038252078617370186409448553829255608173530661201304418100521542642664728190923929360903674430058421728712086322590517160825644681686122154679696775883260845388436157441669646191462564693240431279989150008015298204934072079979812245546957820777573046296291677106106846837025211016012722767297998624148349257152723982419375194789289883054540889037589954957626194020218267026676492236416878490959247650496235655440849335488160002176210213643477045232599647407809315796142762377084098636359444863836128325613503231991086588496048183395551999359383391274048191097990520337766495116499435079723655896910357735995971161719801543532199518375637961728138671080639048327290922071524583564429341454110097539210467435379426570403188879401776746339206088766289874122819407520839475579464221517146561604600723999258478081265499925848765083468270183518098051490635423568399699180910625191989535875745637894896938044514683453335232320328500213670289374683898675649117255441584251177417213177792183775181010513107306574933609849032087491771102149373404261965894430647515674976051030113319480464571050074546774905540306289812264528535933935218972564445787936178426994259453860323694403731817097668555521160439522476027850685953504689407795237880368766028099596309885015375427880506442906568361747352007013521925402201339819669037274326056535466065955682329309310893726392799997697340283378373818619602314600997508075705825451472889012849265080919167092487335199216112320652224148865040787235701871940531224695734234232178111840686624765730806929114726846405562330458195603200155428122112199897434039121941050931932145768555982445774604977299380686742262862647989053791415479404064345367980029896677593516091854708486735533222700463994554443998733179752078757288972309376388868234628392804707175197956929811318965281395658107091266831327352412152155076298835584153412304074680017814247989150512929176255102283662762459980019945531432544926198612761608920893975108401781799133537922250322557715715362278368737277589006904208737532395724487239183548091943565910667534273828839650653598807105868279462890427552980121341033325427606785322224876021734865882181360867589688922104961378064775143972488192550773940296462384901218001146764205023811399629094347602651787341076700368650631423236825573540746390618165268235429436190925412954324175193600372815834055057387398483037599322010381012610280942170908169869695067386711817520786396152759280320793173747465171919770673006043662063815364171014197669155407035335376524208945233158946891190301834641144057171613977394171547644911423568774449187901587170275556024185334503410505478862146397072545838160164533729615760225668020599637333590726164586289097852648435336310698941851175547405446821891926887836302334425333713212517203814436729587115588890490542140458541630213926813834676560836217027533587268148920000087500473856420047161528190873340866717240988885620418072768541025690864411232248960542856300238722890314053751607473301343878722882955870096277832349438509750329519212077317113699136221986732864533494018157952493241389898013472390208678180609003377180847552783579026817144966074375309157838988118020606210951164165690219831045813069512910054695076876085402710552271243230927445674920931481255394029883509108877460352856644474375500983656945178847591809457488717773881476450592586418355568243773504250972650573391802678223154858557283140676313160282090414852536369785937349261494374338633209139639542034069789668193537977538087934396967884244610846753717995096192063477523502582695086724142251417521694622530952011605622333041982169277650320840419505548181982757229229996116929059192565160232839595089278457788549396046681892848447954649299699282862391376663419558087162161051012413185482519029646334662653021412302953018353720766714907375397817963297817275170246520037960221794129895034294504051453350373922867282020608951895163363765585780580656035762793163373975599572714374316279314719877521354762205506248544978218853751962296725660205113499792650052043181277495533214668412744648195039854920389033966873471283682386293033606544095944427258769654557951802004565310692279478974426004823851532900534452271944614426566235193731983748950324144638298316279717238867761881719482052748753544376080672034959409397365285336556617381390917434226589687198769137935431684751419817635568383420208235321226674743788592493476145278600415415239849862727901864153731380204374157973622338289675522126261118541027736288199396759953632684788923006904428019990190901889251665427737652701104749647163511807636684915536053035984288304036694200910220139350446472397207129180071181775381600455651195419291967232979178699417957680135592032754924228857007739927234176117196845408259894282794563079794012151032540066496794790660256001441972853847382197710282283257942183144607806693230037762101281497429892790810468549989126505160253815198407733938594750188555359668376993530500676224953254504565168845775846809469952329623518804457481731030215694606571247036130624388737054601704572657178557709261873046176054505476616409404786605416232268048563467944951505149754287072120205760681838789093945687912545331938983603669954556155400183922080483177592900487409017956230956848440729621778683474819363053547962405040351041395959203423187499817084618457138619282463581627214843257236774692467966362947085317070520898927127554860927576657885140113784429647564899545557260739115443562094354802079192750695511128228931388373254333021807930666334760351130951844685420823390047160900604154279384113833466319750727595242275593896546927345599194051229369058976886105696386115062069104931628433215272096992242152613508453144676867826276788865508541337682624240808213883953691262167049639192974866129395893860173859031320098671353793216779964257186810908785208094039971849734088653147598952630004276016005528698195726296930748736543859074397516819515624513767676385843804969588864981776354983214560471881618251391164245315157739581365346664454792318453301908603301433558999662458835245232223709765156363734878462381033475862056818454047775309460079641311618564473899225697638792709679399769098972023625024739834318534413912966337347356833081407279253430265716530926525158584767375021336568507500182762501899991850002220376113276298714681293191614986404794709890162496849388417246953832542047378843322170621455465008082008423907755159295963337452396523948163652845151881322869068777893234557201948463978181780009207707903642246962619710695221512496004294619267296297998347815475199235994660724101480994947032749213153315527651356897196136286734436424093680935520353515778796814089676636513647777739180952927015092794261924628634875754685064430050170992872964072725838939425078759592648602333971332477751110933664490691092353602483527685884693113496195125913535106125367105385874741348716910103757224671810693597438200024723477716230874082146496428701421590587377924547804784329962956441325070731476296278390416942622046403286949361213056950357482700958292264355738383445544930737306363913033486677831739359674969375468527005178116908799766223223550882882508112355332679406305600800696552941960676673741014764400568767881134310318576458572687007958827394808003521998143906251031414531082038045715651910057111131689654340455077553034625072320871111741715992969198842259886612879029468015368477533924567971276088948081675702881487277153333394113769026064799658076051773839679312065892402914877472149958561954283081264213111783598333308714383640344855577674423123375306632967027526582848036458423472744850687155250585664616390925149829154933560405582316125173441109399213610303034228530711523843903673755177511407659361906147296643439028321204754747333788294860902790800552447463793185755585883340687931743983621525830429554717409802760338879994217421675463168594852104154938799859037567791146493816342037454624213708414054133860369758057638964107404128334970456468869089131736056841056689312085688250920805395538135897564250109235390324364792397518475081511293273569418934870744971556481350335994395115464292759761136351493999012358437603324264376601448055901090246345864079308029119653495266082412538934201788223545875936845225188010590061889775523980100150083821239069625588689903807125257613423504045169552512570597223565284633464202051011727474956558337088438888671618877426263223063323021429362088646312324641510904744184295750015419155644682525370994978083948268052656431861571715927643198628326415643067362817853413377418676500011817296273754327611991601504194703611259477457688271094598856838300459669251012577577429094179939630406760256305463093804673156896714157168009131377728143610554639725812575808558687109695104495469720775084810172510985624876637799236063043408406376143579616778787716616605878134231365764330865571721507146486065032258957988932758513908544395438985774112552185025408672360172117413553490786977839762702734481726190303317226739500328068216651637725666616574280520779622728980031242718835719090746344419110192136150323923920399240223759227657694714926312131580872060318960932699284070427640560800652476489016684108675084336491479250123905421313218280079866918490933695632126191390141456924055693845895608501016613622925733012899040056797697090305265758906589099897531721465135779300260467053386385932393154114911780505666545009189666960713479217630325984982407786356263736801868361600913978272947463696586244181320959387444179437558184431958028858017002494412989497292367137565577295222361530556068361774136302539902230193616853258446694516554878245543941337156900805989784283315266228571924190446983667959009268615360323383564085570199636424636499255528116898754837814090476112197760085371914861513956193228279440234036418257486563835992203755676563580570139256950692391759275099950406419748618325535120524355467250883663286434985649367431195796924630654777731268931574203373990711258479051038970446544572063335758796718688406037058787980212488890657047159729936328067180186133625605186613520811437138942272710288612281208393685992777855175042731793343579901918927033887369830878901416635823077587957038196337533706680065741948929590576591927564787911433788061108311329995087905722825254504551362048544354945665988378340309060117702531051605561586589031262051909039507878296650292337482332682783570333241927258210363512413994629916793529752634600219938677212633955248641315658149434950345692688140047159380015672852485146990624616707670005217058237298545577390293611646239981400396415156430281454454059479032552540245977105285177192035628514183041308049844918762731626324085894713269205610544124820342019537653751237854314795391468068698383632181360831468072936083502843923137988609850510646207843068798712906580895015045641212448241792317475626619603395415623513195722904476576849805543453685787045363383363152720846552954247991398683882525014103980342829074310246600334956553454108283111350348501918811835829691871112945179244090900236243049906713129800375517889594941118464939572690452832145490717778666700931600931754230039948072654412885479255197791556067500837192453981161203122782906700561013912417838997706439249618798172093401690074687309247295049049516542898029588939509031888520991755379895178277559599975019834349117802220138652018598886187951706257675970207536224686855824941262779798756548940258500593100010293195446374504866028351671052985307946533372887118927488283995243576868471488384521368476102379941165161194307273391376731055083528883199421140355330243709042933289989957836838348530370257838167316035568538106755338316098833574940788800002368949306382704473836057784867179970147491296638148976731184120647853416959021307147150215482788493040406105640228948251304774596632292553344805246677351066549399132069464780155740911160037758114465921002008250977248603290909992973601358343867583443371031807579272720981401815758413768483315635143655071713177154693272076188235212501514226269543305018365241862874464521959142293101992817579251090261894217991796634506313320216657494951513630227236045847012006040379537089074911555019647822841262316348734437263644532611821472433458920420557734942482350654687918245476574946093834359835363799632368201881326854352907803332643893442652754373309602498683953456317386440993390542200803259685938866772101511251595571787035037334735692060792032039905459859014876198684174975988841248558876735224539908277154137518012096930906452618139002017785990757018864491351841074851025045344703583593903568978893649808535698821378509405620445656282163247334529872609120228583706643626091567718630401917138697168753731837629701977321049562518149962511724329108128744330219141931077183912457107873516588944082131500411774559170420860467426770562752685139491424397413548532474015235126542228290977728848006996321513290696516761023565711728042199376972396691210485699725893749345995867903518342521809059178420761643686784555739654153204725998170368331437837688219925903234245822027229090177759470333116987287502290252588653813377016970135437525779023450341730312325165798916997214561125783537873957516964840685266621057074316278119950574073984312717653236164377937846506802539733098158038386590200007684886491081949959953606175518335164471100268383395884422312819830140901449611376693800736175309012015135168322136359849488474187163470485703104864784250980823503229616714273306179277511983681287438188986101390338519555664447975587581865568219257181719429247504193240180751018736068070350261239412100480824474075049810513990885658061446272973579571501097833129647660668192026747149349958551213995962174033916310930811791113248914310999529134382285868370912700135996658709489473359405188175165833848579202117288836289572865272897638240844707130460942788533177065224142426028286901969989247391284327545148203942816234775037018883573559813417793726096760140109016214114096464195356997673226331232326182624572125921165725305125473678318213717557651580905494706689081900497846533905335351072305104612317509069877672001853755462992319060875041566466082386814307276576394799355184744430327133194675281216696338107390685069927201683779469581212314100956401533564296642968966665630981239480388184477432846745105200229783962099342116531958502551155898784715135453746878832596208948645620819453617457805480648248722946156663765887836496070357834224991844959493209558506306730430622896281215083854065242896638246469250036502019699114884451908567398838008952070569319592400776419655807812588202072258517641939711676646372474905316243423959909076454984760075181288697388833472635259167221961553802308822007503270225179110225870152063127673247902644822602954598765326786243486290020209712202289324821980485739524021895943761295224114657410850345378312116974289445818663081372029454549631438508423724254312490985928468362142894010702609649491076278971169505552504450405380267919203036581448174996937414563822081110705872047558084149037141795929538890796876150364875094666464693480471830117809219048696562733676923220871058735566420252016428957149724992743325793224857624265095951083609848775605628001268442749038800718888839658628838838343740512613661070350655454304014557340764147035540237516042483227409803635448130781877224945169278839788130270546209976661610364173338396452908921039798927110103870921442187448064616272564608494845744901816800021137216523566451578447947401957731049709585692784249622820389132333961687800945236841358599617897361751370098450975027471967164073840359997867745309048971155985890640847005289175211806835711995977843337670218486952570451101141868720933412261431435435446669659697064405385605583901753496221793573401869732023236188118777997243701967839946149397971261782537755503040205339929674729016635519192334314592667941757308783709317196596390828759250237113570791874514989005917091280745388661851862696263359252428818211470516580007132627675597403018722951004159473710934470840185357430758789700095696886845709152424454261981052639232572430259248234625025688477282100468471299796641899885060631378276056488982281083101425003419432146224936040356844758710167435489054150242209547359034457442843033314273294756140280800597479525873730547350536055193255756024216443929773855402978816666130271858290543141552638789225306599950433556188081603515744609769137239466354049610297193412868646054662651659035429477461144434791614411932139455525706352613317770952824414760659517229194144912110930199341546260016610522509086864779705776972086596513274920130362411666816799361063350924309492868123651698902249577344821032172515728659352814193130340561076139100536045611798765261041501473491495781324977336070107773092511603577033429382058356745932781554228887718889685149815895489151236958560844357268155633474529701829859397566317534980269719555576160397484296877799339388430150373443656341499251437876371065614258321529462193433070399364276324755671041447929110996459675280442632467321650091141931410750007928835107899479240098548008428672635945492540760805301609767670354133000957653933541266052876565708096056248433239759836195174304915835687922337534982644347322316960525378911227606346550035292906231017899227703477026154325847433491478416507464048295747077885548973423014568555936501116805494634709357653349915769905889378266478485789191315798415421329470777237004066619610866109694736082609014400399104872274644085849323756617030081105686800159008733490673979284675950218102236799092565381612911547691886769790789197552661680436093899550962615160501007721393564121479848076943607417066644098059238211328210460677699690725192116545230682072374306767129783515001535341664868556047506812285131748107277028254558983343802110969650936591091478098429257875936063331667399287607936704213987178095769211600119726921529626344580556097762473947872869947905819308792614985121525419014594096235821175554665809336169426345018391399016141548823333614152997319653264645947804332431005895403484773864926679661378219612931816471162808718476675395229102281559253365360547616075951993165997519320298580553380385488720665512521167175559431087942726597935612743040799173453021985422000113985817950984332840247877313523053144611227452241409580747854252958180110439437708722163408507456943481593199476684885864825806700237386572282795747382617420624768399987565508675888349358966875977239886571940460834887219252751620209285231309099518952104911112256267521644011962479617531485112133348017441336097008777486344275991415293810391800787650400246718122985102503233520719565195194708967764104053656154296688314012958673430788210039739161583035024918312485687382494431912165220186819741216640165364510131250271679081538308660682364404670291070330021899857885777242599799638043282958901152399105744512179041358893394336280749924269960259256710987714764131034769028703058883168124186531260509164930886039156947708036292654465891774366482795160726061877517565061925961479682277843291902668614658901970511664332991604978688709135573385191754323036536976935020158851133381479137305715058458981846521240688517632180525049972488616603086986690744500120747343335480254808487916519238682522495972077712313230678003206933645797701325819180126903021649711312307088129118473326585946443808782353913820346535847169341968925789176780261284833259842825217716418644831455742077445747800854948524612748616360227315914947905432372022396892323782783904952625565637649895173135458926214566382328278133526403817516099803623861600813044909617161618828500143923665837892459505339449948337254275377608938746624201199599567471618482667542593293672770819584484814829527181469398932487485062773469468854872852131483861709686246698043485155941784720182524292142578630474704537305444351204029769916059967814690806153165575110868584205960512160403545640346452790714964076607784917077174203817734069338142952844742031595488667452357366620364760647278264878764542462290296853172781634054496245610043358260030541492552812178782726293221953083653886851009013209289251213265242165938574794640904780987407944403969536685046704615256860278485526028795689665041914964603378426920555126761241813387302151350873878665599080997308053208114669658204235361220502227724666159068512234195155160171136644373324260713110665003966437139053360423437605687607589374651895547777819909428894314489958671991583978737557705562874897476300625523836773832179175940430090176854605629232362439852405153763869264654720968588629440155500106900964038176448773519002759658172389536244776808227269635418183871221841231118687402948945177367637357982324006946305632333088985750635015622698424221667180114524037114243058695187333150191512376432490003280658397029958446403213606867332224200128754207143199390334816031722119315809695273320831062886003672525473854374083119818556044623175985320072464456099188725807225279089146680630724747624522081466421219044634586328814198300400044522322455284792636532085891907753861484507783602400301679511565590978645476238343155803072971585268798394199794990145396742443399140796408333379929490187282669296162741067784272134340741815323340827452932799603606363206789306311094877788427502915304096925382031281243582891876964580072307278966252091737109533472928305654900064707426415992833662215514853413306425220310127659920004875098972128123159942975446936128595126095659295647056692694096542173159141782450563348459626004351356176740777195632411003890782670114251482021852729340338889101189145320733358212999483643809554663503177550218182461378170710640231869464875303635682142883951305784791507125020201457658286927562595110609871619789456476367596281604411111167934914802675060489656349500013109327776408221502021582344553170171370701613320793908792712713860224801571008259207064490581671119143641350077383996410195541417067221204700316613078131137287538158875541271007982001051501253441974047803213467172580239163537913252597454408242695540910195854142598815760677177623199751095677893779859590106826514504350808057984805837299371708233140070333238352779368711226857923892696802084064352717657964493212343691123427874350691702163670851800684607826033755739701612280293699450432385553626521696496980628216616884556561451848046043347611768611928629604930475608894958362608410718626719986136048135782699961098605290713747705374072175338547036528707916113667598497529472043297720044174153292305729808648935199936361456862366326151710224916316643812714404730525742627028117698855592523527798619034135390647361761506621627890105245952522954921678056019485567072880476800517117988571551396778777176754165484832816889920283208290653074388456958543518938059645048018147508673023562078891449281172463598256685569053407199734346312451401367637771810300931518122780372783838500145423973215456712702279484799557651449581196412073293672781864298941388500101401867851822567829388760486984012740831389385827262943221200254123281802617792361873422392402822788673569626107385296113615483665844670670168920403624204585445151156262822459061949972087957620899755003236049450403902510229444568794469625688987609280353686101109127844146040967296954328954969332515188958555372900930581489364989161436467258077574609592534413181536871445051260311932276602762982655485475025503446136148438299023239066177616521564145725820411430675377431106147042424536422774062980239825793678168018259752977468485165159856530979516604425079154512774106785764610255347521440195996094968922196126357157391176074881074385839520383152299625802323551815062730940088059216636118421929291992885386026531837256476919072732939397859304593860417904480759581071499254721780706731436667643047996103373067320358613988557672469794311681465040762465459779146250824064438955070499537908553161038349094242904365956887059850652206548614218232371068459011541069204685283683046807415970614227058023496036710086300307703750629310324494449490225075574477256275448848360853015167576863390212104903953553450222786179200585558702065909575239770934562599467521787921297718667562423541263536843825170666940468048812070947589593719613603638253896201068131371869541380763470732239983056245974152449312438088350908698073420104820722813804165039185472206571979632077049859035198681018318018594466827174185557608708072467976006044084429372936265133191080950613090012576368807523600618014642912337920355590332198473369343349523148110448420402116449517415712936349789679270668733437970877431975957739410496568798427139932500651762399156605046317628760118760404434608496848817225111927229725725488618241118651059558702644900001749694245188205280333338134117432151463916730955218308996411627380504243024943031619292214074732339087723067847488955054960804484538542782215062488034277512609122206108369079822294324965933653952486562694063421877820342067586371271549354496501706166846501431433995859834973728257451383315461169999444102655581936899778563886194572980113056412265302764505042893153263676645778645113352413856470234005702757566408584807096735989209844571140296962078208954111294164447215856818078156579937435130501409236640061302696525213391694443153812935218412745650438326656480567721889008235715262566575311009548026703934144508357273288819972376210755035183286820779093974968054849045526568653344032123510121824043678984963352601960022213336595626646961699932543751216134321276302481948128759471602020470332768457074700992972518348048806600141664769196173134071740889421643098400951151186398866707900761480403547273920744136562107306436132809839141614722719036242358553918974249811073466288630263891137439345776506278635109129046339283112051289581577493665967975202902181683068143251398987267529977886094109490262184738726595520010083075887181074119679039392162960499833521854697985070923441840374464984855574927027102757949997989408559316278708493093630806858564944713856895117619396962130168274942691122896154905168045532667895521801473982767828811927982019759425403611522340830723101998394993780438536418307105962890275083644242023056768225591176740881162990688424615504168405900414569766065150477397396228979957450225683489906993267609937981815252658988668751841475499382434476328778912408231918709655972403593421706790673416038499793446451617748035231253113628671263014079405753257608925398604163252423256083335789023709206885201817322910595176062459597899863435203725647684768759211262656419654407591888719776369306398363837888842092915459333752646314084748622004686393628734943299041417584832187672661096545762541294119309024253155885952118979451284044970018814070358890257425986833698407481602476656059117481131093695989087730452257576592456498344680480818005972010111851807348676273872116529418378598069878345556861306685343243702358547768786810237457134756516099273402048035154896091787133256416417658834023534144658265610323054560180326884441985796461717988926802192145323470730499472511691224598015476559163686514918617352798087384798655546768628836831986475408932048882130034044706075184846044581493444620252503921191508284915837545333053573759094252059803590234639254217421311991832243413148666010221840679104684486261971506404010405607987630211609525361946242059258288569147036748558272824022015195490390988301846870966512377888684410187300953679164977622508586333155868140109844729224593666932776223935027227651350521870519027108999025852587360854029588989912466627763808516163469140147012264520984990142197519078814578933759940169204451768872092525611563726957585443568199295764520694984966035681008069661804552989678196093687402027740064939034440820479068371803024165431166307948058577526355246554502306932756712359490945753510192324278964138225072744057319113840624353177436910800489622114182578087064560442062775098626911251911183399465877610997510615968668775968783195698069500850035857099384360374128505961914097992374752437409332101092942431336547069399248196416510695283973443106581531857136576909304232127489916277539636192479279422054317968219567424564750569415374339939042880143059832421413318377141956854692756514751419227670355222874774060130294292607775452822482007527832074645542611609459193623747248024997175906051870979976152010317313127971089028320121250016776091566620442578035320368162608326709923192548125354569891695324447012088080363181885015014383405524156833589290126274802857879191129580715122337025047291451210943669720357282507278008288500376591663493368973199488958832285788606667376138024476684701946262380501138587321822428800841964271693123186384601604025491996383854379220513799445263412348536361153426546949978700103401412320979985407804464736111056160625709859457465415121542113832244453103982400936344764188399176870803603017335248572954043098650408362010603594870640110732807802273766709486180028143743854045383925537746635463632211397095538231299885851257450958992270676902329567865403069747320870715208175178621523574820410209751917236500773181158326300646886863866204818988127152146408191111624468112654641503502076004434488084385218555335988138883562937214359504666029586170848896472512260821021950689336063275102647478999627035569400282457400211405920746619345915700192036828151856394840048993506418315222268328205366260661914060045593961183416871242183512956181696240957485841008919878394145557985305151936711798943388482964942491359660546131391844150058197924654268555481824657108315977919669936149848151575241975296875335761187212078800933452411066677046738856372410040993641480185080637718616250566243169629587134097731762541434344805283332741204351066952805063423896061985260140036989093367268181162952113492804005406778252374325831200247711859145816953979106210574565025024396704253398943106971020129945489321337052810138936496707620113352281544339471972891458863331021082709557180162112106254164357455057800846824012127741955890042648748880852065198735599097000646898993978347602509486749416775398973757952374313587029158008683611726796177416958690392730684369951214394211755443771066829684088352365783918159439291791713581974607674286229326040422803085712304340567999573400693917907027374161688559141015898912040555345100543607109692463497522033844137969327552791711258030352470441089823879338650423308303356937755685747139727044157786468768337529598039901008166020601975666837330412878416907699320109649472933551061560049622699551432414284835104725323608475618583007759265796994531694804039866239123908120102577826252961407471987316087438602578006659633190634652234095246037614634044233903519575490583008387367514474414753482162553579845102621835795486629387728671395963174246658292685696797592898587569299334701789795651500212165097991013723625086032557509577627458121552533864180043577362097377344820577406545035566265985855843247268336887349268687036841780970563240117185553799728317608420719265299877946279647321935460005685644385710387982594065188855039697242728634100772437588374023386016693131464970148561316996979242682642445583935610432761132723672954813484395347680337361328132555591702908183931777241225300092670992439042794431539474212555022248255895507845961849429455150515850171495194728355230770635076089540248110082808531226208994415863948382093792822632475118044604311760822677980073680271737143708658382769508624126762889106718421170233080334310297641225226705484408221331300494430920218774352806335282271989212649743933763057145430915152949105395879520448071948588584175871044592879414424000723314934641340645663686424383247866502325605919797403106246981614542666647625531547136381046925707596501446281094984259835752475908102668422626860478964292743404068105527116064314737791031986782163587863233280571763329426790388023050676088901496445756221505196706277067480905154599884561463731082986478581637532352878619764321775340868610705083348500604908337781965323280152812524139214686189314096523643500704682662236414192252381895728876593289568893242584245337224060173270889103107129560498440296280766457657895868643473189720922554356421193516233395464085008223979564003919618113428015379535225549262111970189542214265145658379239367193561448899161008501761393357355200313922159825457617022511788406452249498260180150363060910252223934601119384113574750882762592751272258515562654339195584650756541671861555936018741715587606425566273881660372358061341025006687012628850115876444146020620930434565094724418668254445394171400442052642366056431848188190487279136386553249977483429580583954052311363309657186857880311782199887541145215737434651087145551702946333048447439915041198115508512438385490067538963970475265644004756569571741322903026273916739779327900389790969529063061857768331614950331645113387505495942749497218947097317813616024881013036841088521041630742755203433017700319089413774806963031020827430805044217127313829167742942330805920919730285696940056668114229721710203042800926686045682107970417682493075921444365210663850274301266826827872501710012597128174728889894563612917248736801160960034244225352565198420460700651915804999536273657690575916120505364177822769742904661339528034433691413223307846187031981547134112401117757006461082203560373232177693396320385648818218101919271074793331497617544309034374878439361097607236240126642522412639527735536714856005004206982023784719632346996981955772207554301097916014789941142724452552389471439598316893252755135028302831730967899696979013676753133862001026565573880530838915900369059441573939095926661410539358747052567633137385930594389111708371008419191253847468312990954281714566717559263913607543846897692846557116758467583876736091739216085372918703258749849943580959551216533288214133983407098579371955156510782789195398757065263730078586715812893482941550542716573120307286590399725624870246417362978969865592848553320198024644395378239990701718977649421910178326536415470738142696846562698897244190174240154539069566799821428985821436034464656270808924382384788015040876723956456183405929611270063429469253512796540245682635480042095072432502241501895117785318120029313246166506481903744332438125857871498324410452362128627164018850998619544075502222716515952856831233878488145144888561173988515223821266473618217693124952206745821521639154174690193164475102113055751167943320641525763110239035939076955735703254883818904843243530024229420015651433789922568002393036310253463656314571774187682173163255171557437402507318683307235827737714502856460663735658435023415972038500264667724555715317518691192025970680202487967057151968437061468106403801854914557895653101936171483964210658880602014969989553049192857252261394126030403785649632981421065788899944587745468617778676917544608354337742327648361797531729463595197013752296348796635245000066657945002514475945374658839927075687631252758559125073498247688380561800764968450311464530701192409748047535462455307526418598887280359172392940775848655514175903466234103412190686553138311190815227537262661064051239354170663670869563795713557098280738937305420147573783361498623804814908452888073562819567935026104416907390465300877652904836868243160098153455500374941591607412680747796992234074543596385283293391800959732922299088159712473706244297528849979788179634769415966681756731089524425827615433730892209615643594868913263177422741288769678637719066570982879710380324928049458952847647922817716647597635837630666795532655308371080886378402973254948822519838791035229305218028917251437197549527682826796102108105786824649170612773679886747768469192068627713844518114834268347757674733286171110638383080302601230668747736508612760864142434592376882079852255410804298086147835427401408963414884912530211397042912183685943670931341427797536147428060922392516944098223031155312944516603734438257017946929963372317251410507700488144076642628290808971518746511795296215981299504161751750881437981937215797189109562008782762832171908874894792557050423535990590905442286961819046564760323579268035973966750056295523067754114070523661839918888868475402406837456967061889741631103106985338633665404291020580081143331741380043518834386180077087382250254436458275854629977222527658079059093310282717558687407755761637846430481694257963592895883258315071640542882055501075390860717514767776013801932802577446695561143951238854250577388822135516413189612887439406184210983569792980930855584228819774695007237210187521766340058083127989603701631583204181879387138529916253004055355222567963418909905394689541359252428120252972850263857489555789321322780245638903936614143375429763989866454544311320650177140929002275998179074341154387452566130233891485108256253046175352983391923254373509028988329144832533469659627270582108316879134470924884834656030111409963674378833278207190646490282660698486992072484159983701716387482372233109233769768816941049205815127591329328993732144191616383260400093408136034615551952987266016500395999402884317933795865694180306518378945316542670459789486819307526673877185953485288114224893813718695093162740562857950794406790552640523225617123914144422330516419016166701275964061797790230356259443888720737138143325461164714229407546814383437157677293563967423841713656740974837986242969882794479051977642889394082117466987532555654649568348817230232467849249755165838957433242157404037229769630446453560546701727845107855646873939466101727101575569995657446956929573054321190070502569242234162943508823489344169068800830067534485923427899816356850042770417888230388802013400389211167981325778063048753452605552823662630210111663667179947588366501256829625858270923243764900366781724385046926351683976072143661155357990665378710638805361888952967011597487454625125318953258121235100067082558056562761200148838960555401790692220613605900560564646446468705173082710082546409235869590368398874413185420559046281558790090252825207133276178023465231638289006073997675329665565445408059338745320795258824382743120918203100794552764312913555370829339836909372832553918423020148838695747667255290689948735115139495293043938055873780551346361609286724066593778865117104374458584645621802736096549757850081296297257537149430304967256252085465604682398274307846014655286645808501291472503494165702079426868742058676468507709350292649271093228601868325151613819148025482846620564213441542906021201489158814600346590980976842822140574940836007674182896901719781200071551574029276153336744299837901565988394870987531614074086455164782538751715738105061788883886308679135198049409306767270148627301173902552607319513241943434861811858244755794537003486088667424086554392156256272873798066660368567571766614578378836176474911662851638328909528322746584561325717962350293661624246367723244351409635929773251348058387173578014639213214169839957534873468799017698503102109468212336710001255770054500933918484282050052958000351067956248849087410829302003639784967242332725464088183605924855400180066146884622144411221310795581686527970663405922384225528739368355815445086666197344845471831107493523101566117942870304698113124982430194014413727691666234946250406412160265678034205666037927231695300193519597415571717725694007376020089616246338530800065438455745242701767143472540095373734897536161136176742314377119200386576999097949629557778865835450704424069667620383655534737413247827758681078375882789707807724814765131798742591767178569148573722411971031247120962927650504059586253548839708159164330315532061266678564100239588912682007244836772875199978236411508363760949655222216348362485092001710254779014575787574967332505946067073147447667493144489271844676346535916999818749591460554965017169471595198173904679138903427644899002670528408993520053076895514499871498556198191998608352161998275786240667783293023071047259962003451144176307188397105089651989377082812120500839216647561766631413249440561311914821535125564278203112024947881108373442507240272944505552000411123544054474038538796769475732019295404175537399484669424388547865051256585895609663142721569290353873739682420777528147673637273495557151795159665761780481501439576779489759117156282970583302351402874720068838294191044263030922313601399640231892543256830414227816574213257538195141508366006644314142205760240681392715353833594565010692524546038892212959072762878671363975342986506679810499529036731763003202441815124766692199418077324278283231114323825386963293087509905907443220501292661214252531618881743247383640943130130694730318290281386436331892278094818360739633346724427359091442228480942418583139230413210395955090001298258797908793488310842360905919370422785573089029400099867689445787923132345745265047804611311090531110157297191860415849685469276375253906964528686227447262120161273782719756956991642854290373158609500945740317645926196387340717596085238673956432535830448531257607896089659364676582950726895044089238477747132714517054105470941531574147294068469713834935685625516032119429876657471574618125161015551124652250009862902962221394929622928317150748784336663735363990613449664716447377621177738428513104542993825638239437131584098799384937127156874011488681681930211365642873147207213870579860993178339245136360787235479147841873927031738697506552444501642783160639332208361449512203706484804661031087559752463724235105379043753829217573490986925695582662009090413875884358878443190975499562922660441850920711737595095848515755862855744530654880558341644423436871856298949947478230731162809858375552531161084175182806816596744512306826714501965173851519906797000308326474964329713302629261879898109875386695680061242809385987243842312649531635622521981260071836527865353903881712195981862138289797525227368644453624788836055632408055672807065371112790702043091247958059746606242902620196008125292014592821209998791639676229512803546977572488439839384700468164271053927900807803143468273892920799466590325317915587621444106632199284238527029271019466981891342552354174726535586119999400883878764804118775273113155964607799464270273441674650838640190438442325521884732889876182527560454501932713610890731554474779219209957180329320996662029057612040226205869939363173200281962699785162379136438884165346233687542707677250497971355971442613959344790398232709119400591163049365801893425593080721817962303572008392574161077240115434017284050737745616369786697224883788996560062674087484259917348604429606294045942263912121960435039074720153647924940896556354202903012360076197204533407426327511736252039652512013928466804328637472908416243780326179922442495957808411344841123200236718140623702379329913471158562662149713297410567341191084034984222722470368755943175190364588607781870152272988803875825880917684576005029018355175578870154335598046662992617212236034064542583582651064187742833168298882295347165863467181919441774388972090745895040741802361167188054013918244780931583547924012603669956348635369087422587703823325449576117837328306427430729808976448392232566147918855132603414223011821288756322738434674864967488620243720816913943007135748879879120524623716599461904297954063456478142039091541147803968466482895392990850566353421781704215619823104350078489565493719523934005648317758910194997642161326818132832740537128203710511112571638067973936798709133271741379132126543585591922473964080216723124849564300308563508903246826425975942627701883273211074803480733323910064453454891869473654643603612541597342327717851363988034850659625403994838086635757775348073329001262492689531729217879117522632606624733481584138331431637418931184566429926209508335882977295738917981008502548439223675218573371544447820190630762258082924432884666699819907478484397850829326525009740358505665618254063419813203756471662841795442612724992902035671033242750184889642164744805597399766256144277515290723588575183798816959088620524751878220129656762810019081803253029428839574509396489047156286281578700720241589908597573278824436060613916518405029823445921371283921496573547580136753801937624074396246961738055141936219562467913086626801127614633238688442263125252832961676110832812688201200716586247186728955904756137485770520855413246905326657419539634806968015576889739894337007949654683073669286515044567717833769932799495826915717123996229036541568937636975096415375813088361860676621566489262183632404254397382074588277251896949739610596381429912127828542716019780904875124296154706662397146309294827531244560999424974709492638869438618399023106867800707551256148095045248611025791349444125877020502985884232275190835907162971488629421349732203373400063623906006280303976430475272464065801502105603625995410388189514359928056297412944625030784004011377224830517478599035867843572686295723165096258740675167113002580101453479787919143352943585265656712344651675382774799244603284387237718806437944478448026188807330721653756070316442372732700460471326076549113579894138553262012829829550521837052142657975988239393108689565545204723243284402846585850378429191918404249024373054729793750877931601573963684905699131944608399329377503387227893866653109770630049832298445587734926954548941482711583910450946093764541986543962986235698409809042585788757127768049973796149605707907369421792089951336415511155708962822632010227605110323219041791007596095613904765060201589373536290346248193201793696173365565626981723608576936852587983505314058046575378120618906610584397970965402368995416519607702554442806684330243564947579874956855469590479905745034446789178296767183981522029099998722733538834454741546176213573569200425969215406270393328185182244325276166602289744423689567991141849772897521343479892005279920455759792838275979539301508190864319687633789923264479903780306174478420584692890166077829625871980486348632640298452890444929763002988966779999770155785176350088727932102884834041138017623138542043508263012038481930818714385292070885715164540573273741127789585923437595322873831110196605043221772868000800284248363606535216821547848469867204298490711590642934523374905943919819927004772232895617418088864973090604551394729781438750231675157692928136401644247637995922272918583819953167317429119405635129032529871683255255960123903315141043109886054486191870368822089252577880798331891588560655446225775150431655826950499360572818594447196556415622016808744046005613222347631667884922353713168611570365109304376463476194729652197801042726600927526195799421928785508376142829062731103716770273410600838763397918474177851406424752612527716228837710481545543848570523680495987036074673030547662329860230834213657041391634219562616517178072405379379715471497008077643439697993958220247251131554060681312408254087642495375037826650970167336920594419445406555758113626878806676336653656006401231136829270471090125638911505808263319844467550017000189679286876274669059616623821948341480576322752853853879660278611819875639467499755667727565986658246917038970035501586005745833200804371051829028887765622608229185397657268248951017534711661719552782420747907129781309560850997676857476505657501673222914297578315210232009544692735905250963057632101945007382523413944822693261079928357335013491164129755668076094988241385520484138743774853505028160052374454828404943487645688768850261233371173143601325045023076323616888135756068893162187990646396344190203687227368425280251876289812605217605305379469847010560081486678144958998373549658916077276817018383017298398356771842756933899342491200911062857654060004474284592505781593753082657011928601242888856907760249419031571074515464381691110318647960420556233254502793308168213992538397861074961017423475585633003016462944832447365013641479884739774772092619726958238165629251562180027547200457576209216788226189704940891284007942319894832475593586895913282639393682158803437537721993660668953309740884566355062211766817850373298241396350222216334827229863777384245921879174185117704449813879356243982487840101058795502627494775051671699026952312152587245964483589117650896694783880261514926520365047294780008869234579618639268833043126312664407803880165934596001225673502667929345554574845553708194313084495311266303248825964666027619791164728799295497823533173518105621430072277195346268054938127098211219858829923159645926394784092805535397169568817161084680525629734229346207689605030525273418755524566080699155170767811630062630108339393350729825185943064594349117845491017440352173758832563517474304234051529180720488655681082105541919225055971897758056683262293390465232676121986653884806968661976778457320727021980985576678712909291392721727865068837360373821875708154244314607629257550042289589195651603223868298437846766272620801029746402124536271869013058301265734282500381744992050881791862270305174489617854483036944221725489722697754437847259341357421381983347352110170115192331847967700688792080530948591599696548107782479342269556175257862608369993823794120653660842469582166312280803371568714414899052580422812628356337274158035290042896165067509288134797423272693269888776455381585553846474591848671802120076797067251034499514022474879772563544147996918187205276600303501879195068063641384696717518075578626540720887766387744552994202228501456848090079111012708813307210728849965035422171868488300653809924950545892394398974063133097942270340438087070736570838948642237115269322464306852602656744893541374065306035372532613360083895765284750150279137176492648756189106434721426151278856992319006265743343091607064887343636334370438943224325402306253788133828579444939622821614367945030596413696137911086638401751492122185816824421331357321573955239454395432366020577931227635784771969315713805454963241919067052112016569175059756618596903995856988489925534673502181926898519742190990772958540792868625978406782704703278131296334019667065323824083908375615382752741716170250949579999170152058848936765984037238446911252492914941540435737097468852487691281663038390087827168378417375747642048857960848306556068119170250252604326601120478396398160057225862109589870873488137155490700518272566234810368427849158326180998472549012062551031440105655783002196534465781111790208605277937464865549924098964160983474557437629781861143036448748813415232086836599334854054738617686612644473297900231440605884197474549500230540207182888566267565751294584780002915016569486378381259343758078236733758705354783465313079117227900982039560860708707775818908811468370275491163298957294586044836760868902058704308272515445169752260886093173495757152595913146473191027117816350637328924404662559024883736466629326721238936661511171815245567988843766284081747828240046926421850014398983352946573104545851852293844065218271911484445221623970258975849937275267967084261426978048703990069719346712340432808178544198544758775331121073128105339206729355209039109618645075420167015689885515572865033105966137861521688863992722382709795278630662186495015381746821488095968095570682782482623704738586430551442504071534138149529496595379760577218684477715094679837055810598528060362728577895187622716761503690269258944888139764732727392235107207317953026697157290968351016941096510735215087613742681443556387410818391652561570124283422509410720943966386927521951870846820367724939916374195038844501422307664894100992897475806541744874189801023797476296470683685410784411461916660013210325438765583217416161419868675836421824057473082613870357778197547599804917958520729072288401775570052696740990872236315170058693844221479722429524497915495504448947923533738476437523083845690801342678267165058913601456490668410077914757427759456793131504008062604214095765335575434690907890476065445687714103637496151938139919255105265936275097638752380574862771878108743266106895370114117895997633625972170486457072046244498781811972511079320115016638168670658096885281647544558740466081021325433530898775755966854711931502328297078659347204055575024789338589178718892998188785225681095262677683995829129901181472738066285782273312956115544766194459771697404119018973041049089375552678326045161885987426754590132339253855964098801133355335827295715729400267507814062478541221096501145821744223380363274178005782326992278536473763405128059013086588409285388012028655834103400568649893605470393224887170368034897104140970098331702241707064588402541080338346863288492137946747468912990153251841284253794203331447954063476340250095352938092440428248094837239767602280127473208226557634932907113922025784931907560981101415618527865544842445387451551153444361135029396094052046861636489326860983649410394009918301519573808143794458068659702811965958726798258426603075678086664674372932347208871728273281809731878729064070896197173706336122749765664977882668493385348997061780949131986946136862520906031144275527174228026686113240606282526215788717778751353375255953399958025219750938125754719826785222364366265860357194538067884028425705080533077825641290612359838744291703561417365950368641770713157557455837623575822831943763050119915734456819899273595402620373819256048809704143903011043124730943303023625973975395923152163321047071379623421145165665825067566983710185329907641391756823270676087342261575337175170894355714851510611850066418549827045865411849401502269900423873466061563076168536906208255433301450099529702304453708781066739525400483644003341730031193551178444370729705932717264604760558340697280984017378284431590664991694773719094835082298487796384815712422129201996427649690619908698615231581628768427863630719264854142245522162093892235116403918846234205431260009495577309869567131137444516105554692465881095645314157718090055903642152306377374167666229384798056855278806428800240714448923102974925110417329264830213543258769450929771883362963513254565353680546147439139071404633018145039853401681178153728291013466686184031256888768612165385183860974807601849503708886077996699147144852782049331874468511462826253741666429505796909495767757307136138588832813820562112348427124618659530925468103711563731913727825643361656589109990856123863056687838704439328763565909936091386272668329628795073508433208833004262362775882436365655219897592770156089941593645304489023138842569182299000116206319923383835355833486591656999473608413052004730366652689290290401974049908138319512028395758466283371734826960914975870507464210216534777048434649552041316002507696337705366454475926547750786570520198161812681588604117382844150683330510450610877957299648790309484600039508324208615452501199437081631538307366530966931963298043929253964475848054582565017722778572941606963395971422940690424859683250496641572998794720591716900915798854383034969184040233942492256359369026854835963073380778893606794696199704089038239858968733063360798975762367974102998893629421071904222693889086447266445287791092530790374361303321535081362186211034122264192499244798883953640262500722758532416085366837646747943424348594744001365273363067198007043522675678170313280544553403813771250941890419333605301667048116320486218402055906376948935248005765663165775949421797449124933734266781640568279508653270862426271469598003607745060967958956077275549320832971076129227053380638726282090678676211208785600133634317739961775197382556148661666127945516904886517430310600083736037308878838390043314339010404633984184634292378640935284898223090035012211605803427529749532945257672234668641623339512943499242762887338689747676390422876042183932292398620472323013762703734690988148558999012908912273634056641888641676324633280719775548405243760516690508147893133318988509889862539979079433916515472428425323764237924579107927085321172642719374133039043213797438119545309075957643079032870050254487691098539171245165376744020298271775382089215383326737765898739460661159900649523912059705788653744243767352889918763341772639329258561087493231833339343837665792849937526857725368104033761514909928964642849076882840646037399246747395742389313226655900154962894761595132112034054525251921424436817334745087311907533586448979946487947427510940792389889675940705566832651059550749164717220767360469733596289434602482357419537118983839542566412911497030474172336559494158072881027938736778402160096664504195968912838993921371508447051951880966168921049943457769635735146124872157484209337260869924878132783493051419240842979879154109100286565939100188228435593987842695987012804379469474983311305411612814105045527758894653062857687371845414269158955945707902865409223828027325169955119152079082218257473166641237138975555772465018065758271101366655743297045095462293724797649356890477179873104285856494223282533049579966462611742405544361837899789845528872071225389316519988929052430303197629795694158754775342751274998026029804745391730413678594021307183799741561552421142567686490539062602601924196465286437266499665643889693919969767248379367662097057035027023561932376079325443380347747124439768824597313132534839742758378959187439105885728294984167813147156668142691376448250910066081810859014327323614747065138124031270320927224964143010812951801055058402288411955026289488155642253741504608251984330572374789723008520071195462134464191963108531665668783182388500446981337309195774302308436455231523986950675108034097119245997559831010582021845817704932293575725569874593029190462948356728088265518989855240028073170054993910767487943969285910015736205217227596524196838436386254592934952214400987884695527781939155186107693269473934115954571436211772621954600436829527197777376132445922318049569136665896726405284950858567540316687674585729775486248547283699560433431326985107302123546037959294812359800966962922663938582855003691264647723763297795335014283267038518340627215113311036633892582339750057670989553679828281677898350193776960651913280683453448023705929977408088893707849078212736748400200236260354455998136834653153978527584644616418740612860411512806002790430948446959897230336359553681793183293836477883837168476929650659711500218401754681455566996159331188356368821661779376085972138696093772169389290123096200943578350760721439493663107673828532502281800662992682719131172965634270638432062117400843838517484632720632870392886721029611750890994207179781265094754700331671916670823068004285925477988570891375768879220289272557672367020928368020820526634067211806010858448361041937352074722454481902400292640437464397921933668306492944122304607232308843947252636200426615655680384116356232064167001559743939380711503035626788659252189783750008947640353255819502977018580484144135729259466547387231719949676698150019376874752721190309149429043881897951399064264426084491404701483244401445022043806819030503147921886007609397009058055219293528634035257647174128957982005469135555023693133343231749756687158672361254035242518373410078932085004111708176287033439140859674390414067660076808907765025681779710696859652261136305283352203417372921499797102913359602930901189061979988914148429716484948235686067514553668446405594852303668777203397570435861979875119035072828938858732730498385171384760604568170049482237374353076647742682772631938444498725516378840454068031122406267628876957255391811083580662515569288923537729290784427959213487800744309759545940741869736509539512172994453389561600712423626519437357960634150612067483121382240432922607522355022920457327099683716394774074656726781467113255017423088982442300213192542513446672838493614088852426420373587470990762814167710839106729904729699798066297680788509066954580690760176464716317402673551933119590064962427086417822593330917344054415562412755832127131386424701756929330317981023102569905984061291531319404774542333441062244693298432137466157548852792740388506871588779544915538192317240489552752578954851731430991101924581337400416956003274920054684787285636922087577796583900217392560853181338431298689445480978863626744817273786612740420952750350065296346194341576323672666867369849451488221732278506644539248197678830019448226387766671525643118630798995843837401018730544108465638486069460872418766108955388285825107063980093728304741872792978771213325859691261334551460803998444085717631882601748329833719309955953731554844449100793246628291021496986946664320594692907538606743881880256100761476426459586256859639733194118698500092037335351298987474623317739400428883983358605830965577628011818190722109018951552293102992012157190754944097543414509802068027784505943057821926346400428629387811169572071864217472211480360524170435836800164230442341524981437205442932763878646186353469415568841243968346844838643278438161019304550222406591652298177646803933166979482954052044675047451401143544786177400285240265138559168540736544410299355631752895566909703119811833364330830277723327479110425317613533458380699991192336886913020985120008563971011846476054950741099310800014401394974354228868564267383395940951048270509796950887356624233462287198826862196108950028129947699642506512050111820852489562592693693904009173901552248850009726410480214387953581508154649273004393428395102471964518614916825940261327869286297778608933938299369885719508598876399337377722253732040736026023082043653960139299553863475871219572468066814232508758372182784039606350478732610447185853168517862599130512045932554944322091299452704701446990262426000962745234180023668822244729332867874351972867505642488153479296748856070253873651652432436012526905338483354526831353488955215225896694390324921717019568303763967151992332194642950073718342333132727801162192839603198887862679721561133974527041079201034220933976297686636060532689386494637120887579888499528479892307774443526799023669796976350994412618500035717716955107448849848443025044944862764208361317175229193350437446157969721402030973511398605333816307715839940737813874851769803549890777295190214116058808200641678459387158664707251308650437477399765140232249149738662554367918208617375699964326754127144223972681776643992831135589010096209694992655674859132698173698013626140453878590780076449004757313474845395260892754004449875766599643524880705607505889524881534442726544796444253075318526805334603228212009044370464393231432962255201299922388871993367937063989463633106353431692703007862830969976980248794533500743124026473282687897085947752483778410999146178109877466992046758887277812612925356578365705662288858389265169287259116999494720002243668040074409827113534268723772160821545450226042764321429765034860341736744343690054994280027837520563993119045718130788507069266513532595535196856783041913910740234855887174770563888291818236714488586204227956002374672435625872836740459880145522565851916509430300295681397876732451397725273981239883818038709805652776800332568057399165724517523298679518330447088879315155416723850851402872915700762811147662071487941026135248910828085566508617843205586754413290291916638058900796998766047282978417182454717848785269050349655175443528680672612285442151078763602777558574757996557111114115540002606979750273692457105736584119295983581905432444309908483136727685078139869542020330882774307763621995396442271378572060079164105535497333210855380413075679008856340067774959668045328655315214080162397368278352951913628363343501628359827821335477241934127521372944945712985062333143189566150580215502870942277799180980672315982249097445528175972235476333466480299154010848135044786482587787269897546940954824103585114736457898608593002342921518619390516699885049049867451880329821921482298969683910858793650869647801959080963991636892613219781694914990750576234976933615405984101259227672322806714561863558683149907813834340303044285211028974713473304382090075339519073404268788798606100713176147313213442758268834503383149293233754769694984132010075156234566276331027029550819074682143585999800122603761598228472604492943811065933400027423270291484215532507241386149343178470322501293149387508476992526464532695592510837115503431571164383702061675518439351058769815610094276923812417969694714088207576635442249591747275082249010642470173024841099438440013902107693538834302981457654638297199828851504720111663937893190666432409631067332943579326104710203285501075229011704623450941655523013496064824040681752565340066411148655856834578504402404941206245661255478698396677549017775437942906423489483999552306170977415118247456646888421902574083035791909536688482564168712385959629851170218428119018827129122477119041406343454101327845162320266763099409318755422680379843900633016390128657070527110313322686646599948685364367381010735479472040871903049828830002422239010428109849692791298394053418766183530746801966303859009169142339318407731148023807715111366576285534537383645335156913986340331459731182833918618445083370125466280699939109194359852672817754071456553068956333009405416125114473951382031422842060790942167455752804296879452962445854100336818690442604044590705021900176047621199140772080704173766605858221212701346923268855752796456373696775179531647551877462092936036511641317740134847360327241974173796307803265268931952399155878568480262809745873634119682351790080368815286420372419381544068902606096131148365419282569821543282223866700474152095172740029549897093520837224439962671448960686921800801788344404701604599214994845909894608574055077404751783583960928592849070194806458713983963005382822480437003547863401177029229350182334041192902738760775875063864818919892960816994721135747952495069701956751268198611810736570997269339366194784419196021380496533351834829146878333070451917946611308411157429164293274284536704897510140722557482173180930405251371833429010825860566059025599677269212498551709644198336890631366014274040550157319502742283939967088241382732875132198027180652541776974669328241717261973966328018375812658655292394170993056731102180378883434062177803729808965064968263237979354898057890345081844393750105293048743159746357261535760631321436271803927459028013631718927921175130586148827378104529794230624697452137615402371660826350993545604237583182766077870678520728555862798641482970325763673844466054942645058074261940255170933366739277918517394947146192838490837766996298298813894409893785899049066178274150697195618106408718221360804455963828867492562222094629493017642507349612181098297956058095063751475856825082511396236683175255996316936723732103917596423077157486685670117638052189953608845325599722305378082047168846349015060894129527767835988643766627812634997729431594123946940548906116073164445009541428348096980131963199882120448027891933837912105605008299396950102357788359200442438403277809959123652658842995961773026906155643911034989097225338104610341607528931055575097141537106768955841263601002422712786631087274111371911412851251359287346021407761003796514907366875354230195585283670564122495874251498732726307428058964973904556725565335550636429049816182323148136173351871518364750406510554008181781157602910711833298738513277591432960259422347353716151933861385513692728779201768314030657221053971214827613523214939915608619464627947305522781666413357641108938264982354737541245715175809307196045423759075868496315750750890117609079258497630367386914408596230409713584338811020321904039525832695372717461751292540702952536070344563215182285227761701023236175848237557605817624788548357406481211689074987773536534632107254263243976116909048632325570440266332762093458471167332645594296499744087691495356259748353352368082898207813108808356698697076987689449725551787803558362363644917339315185659693296404042241513570180431819825124271945027618900720410756221827320748829407287120199594431200648597252711615067436067602372636940542752242524556540847622044771557588763879139455188221152910304969287323167402495012182635453370909280469892509195191911481116587311988253649836067216838518484034636227227313753546329515629423192742493107223969292598888308211404615623309510319354092801474977490869972775769793409037192014971160606252773482685179913665242708357985309903564138936751264974040912470243922110121261260394617001613741786133760294922906406789047059068015264456581508591235472970553980360867467071151774109826021131761230087491899773535716733500916852524117025343039632012184982806784082478081973760214191136003041878791889307784506986398965149271547280947412709545597742542149815699873352239243615383790566144965568415492845029302328328015117468213418768996681200434332753353323725243870048049379522904263173972459540724184817007581103035032584945257585221633383446151006566923281534342685642499716432352664786719457184997834782921883479370356252399122285657949611912589437454939090080447175505363808746995356441767736984506719408558815935768676688030807966457929909833768372545319784334343972429516566203714201994875731431462888262792086900124016395409939273534539547634809661522771081251107843889728737990335259837093318309010404187243909699965740916454900935504061480557227762531938989823893881848881828667364808692442734941175711197136902327776304415356661263284332724868795175304240041592922783021810725228096320664585418684013935234556358649163511597634788198950700136654595998970956660947520105645205788005952344559943602116693421483258318954246075626456434891526784405455945643833837415793525409373491576622058082742535490314200318417007187212088608403200856155183123431376485468550573161434748840722785378665879865811944370097960480170348602268537475264275095786325749200584415228940585710964225153853104891876681372010144377211201386402631979886087276285049559989078121496075654613824112535562389709322749875043832393325594218452637224917216825419216858630535947469519889990080052588455808817420410144015046449252781283215460273031827042639490961228061128501033192838165775234530570072627403022202536262795710850182482597490567671505614997516294682139539295803632377649999437795821730846813922086255920766240993496861958129951894620666198381364460347874561723869802876184325726358879625104328224131661650795117748092450138211289647563478493260544351319588399378594027448491381949896158139678184890361474194731653253701482943305665468935103267249002335539147177719643068905288864646574203893811699383162219939870074044217391878914893748857341895828092906804917992023834789845166777707286580759507768325027088621754584298256146724866016925243562126553943433485601509198056110983321814026284984373469764386862097855554128950835102680763876509423095607456662699768745652228703146878590669285903073917458971976960703053461925464647118030269238305500362677621699350148219067809395361763197691264422186153281292879223565847550066322825358132637062064603480024208501565148202687571901175320520035870405617445011271541542046039146903035890349193536051084454293369636892126419742172461529889339616388689341174339090316413449025219293495759307790041560732130549788195032224305491503472003587516967599223163721138555253413106536811293299000320907970544061401574688693407208034978181691820912762377578504508931528536569566102599848733829048127803727578084848129502784358405195212432724464369755498725391725650450315207033092618459200542278040161907335792032248753626358707369838559459777806804163898303711974901902494103406792333856100012608389854609856128121198839447819626805901772797747364278117626997793591068602945957842432155557938082520331801357402720330102613791060507923552945374809271345595970714512199346142927093596760484188041962160514450647623419805885652955196156091156473063695838028765928689769799423360354410661000434559702964017439768872910410004366489497276202804609837394193928982263107004300806722816493566277763668001734297231891867536089427403871365204999884538923792529420231565362141356089801393421694880442848179374222473020567580276453107292081680010981758987878356073870004390359785332614259090120007894305299271550664419954757507571205676017930295669265830885913512502370045608367739972756562522884860442082154908441761519418264788898515985102369137164590547755899575609942205969629599206795531724500426085371388204770547720159448519489251006515655900826315572277708764456776545015841129114862632827774306482940378393940376819676890986143982616019416727110611126541897171130344819061924941130478513526677152221384388062787182724680202942456246418926146803229628615844424707895720972422472816164604889733992847615042096623017208691011725190821567449395035741736753122859984091115846782518993004384022993095685363510021445922719230649631506574664025118098867211935803611864892413458344125538526334306070004427611454954564935655133761387497588787966323149989241443590223536822875978017198045432321551399188714441452439796576158705023667060879103444329201201264401509704768578084879839831715499315710764888640228169746283396902732711351638217339953216130898505022900612591812647832387279196181266831250954946919608886188755003595073004917954328084512637567860612022751058083389402876294872803760356068803898733399046855248558876466992186446356837838681401574117094226441218390924897529929817362740993102850282316811102644228069369616746929499337909401673586370456006508019429225424484888259481868751784663907260031719633420321844426909750494223675994026143969703240103471833353233373220494024542217968513130024573654692124975262859737829624650820285524235015754121033662988160191087030127879645973355191450225553063475296028106620742011159168757332760342985663346237123981285382631071624967172367883815065785296545007584236448432081374555353003298030982194072049958492486914533526630982989633012135071406539234771651265434938631852081340573146295076051712761785926672139141573716877556663374926479157566469211726134456799505199680167028007000995194175367765057388783866281982283823210279682715186016291877833950711917123879658150358929158651431380911247797066421628660103118030927866438674901386853612183966203851612537711893547733674195858996168959144994901439581927160516300554796113993420988509024610274132193677172248714032895674812472998650014919339791779560752237571215927558779259808878223132962542709437265315103277272384272079993752498814699846078500346768242310928844332518436704431835138421123501163077510565714388237612946194946441325098363103394798728035375160648078441446765217854644989694754776728110523619563082199648751107096756012259473202671217200427779459231861952849419642887896653668494459687772858335255629247912712127489983845586654129879733209923356010693376760106995948082507247323302646313759263586209039514759774294303601082447637526366874920278574017501182882031642577475668216332245851740531304102916063276421735159137862965186040724498816935392214424560483808369027570329635476427994359726364119015496204339881922806885945959698425444802893138337853357353004109604182372742405947522295800510596329685198915005488372586751774552623655099821721142654781015323294443182845077195028188436118104701417461054470106987412348612547248306287952352510457054606492857173744743046139863550067059248684450419801925192117306606455967612940545157206487527939903360619262474963901336880371214260982133540949773851773538541791895578493824661518165699127860747335404294591829405197798149629460451831762391350192726294136421773919634597284518736504018651909897787427029003049082829579138771588329015193787093034538873177027200192365068759581966997691331517954504263683276905765186749240188346560139293060592843249044068426302041500485796562653893699533844587608170578500947913873037036832370709842556575950171959367563350807909302126326841579855349179939168293427185181983297105107880613862134440380385597011908183830943931321203147877438955236642272785569060355900539768907127033428054687756340151194824211823425716423857895467458671582024018298601462886444146170606618804943077473137516145099758297381804475241074293591699887255423308739125928867819667779496108909454670403156775229069074110935209965213317633863190023640155457393457947927020683765332207378032220952890707841960077810422543465360784887939902565665504178650986960464312009096692917666117375242377084697267884964479514860846689749350156684473644211252217861302774004881375273793182816494871686452527672098489376388957753172829361720941995354331744814569235389675255294871687030821417752697261272527364272476921611965027000269360435375905169227038704447293329115728486638770824040913960763383196596699528760742341211861998972398267245437546044421134665288616169438731080767534508804371857813810992211516746206997623353594345756508575520042401395401574250957860341193521602575543441766337302006198390663548488420942644002057292012404142184168049764262551729147135525553127199707035504407525735093918680192104682320652109282050138812442218538810800499673460223885374872661118627428178283779837460193591123826407653569151752467255977172001003668017084789242892889836741615738056911835247187719455164321808149052338746377934872192443424474059276989780919936829270176921807225253927986226958436520056617372474080346090547487632703617432962646233569899648025541385776642513992616117647486850067961675836704746190252127288772837072086564782933324951526173508689396679849838713435003986105147249557169143104183752817997854789618267359802626053216456069092697472458896674266294421034683169033773286450574909638012355906294052304534780604234717940811053271149027574111845200578331216563713084361634267876731657592153457257737832883675279264170483372762103070677996155136864380425720564362434593886760701888448054218804801489770708168622867360811339600283746735458770170779767748109791831093689687327851847423991810754873083778509381421787275160390505123625426899661360824614113060361437778653906906875931352781934440308953764401616697431716212005493516672077119009732641217365555659223437592455936048647091277537353100943031308872390868590263883133580131824804521693327492678193950243368553842017830982347119545096114417945099569354835399382215706030321419752797826273463434503648386967679761350018611269863095049055537162717347826111743447831158401800892461011377439385123262901935545258363255562394022867851688476825845316593645546437643437734564929345453982841521908350261975000608368258431132571318176912202079867584294460385098722867508566294286862384561881284625220766531525125127529193160868474648886325736705898213476716779670171895055709015623098592067408941519883042970827485134012747574902390556024203857891193103590861778305342582078349375953057541652647838495669766736616755217946046752057207828213329537236586318244294224549811482788960638959754662550290658181802198653721053650537747882548507975745479074568482371213405724630508124202332852800895669306785127555684592664855283950591282370162875593798695854062044887468120311054346188229715995974556165837225239510375215030097838667006664463381965479668350687168298058854612128867782737482557608544923797315860504245682560733222137824317421099450695707863925050854192319822854585445917248197419447333737119060773272861063950591314154924925169503642718880882582284243429056015222275320914839002653624317060486891161144516991124423441421008566090663552735511468892467611896305579713060514767923331950726484647773456999188788415575637322040225878889727796426952285525135457641556080471898378386254059651691397793735483902576786184382481052260791558742490445606396102842888210307924321791894114986735568488974433425870455043614760251433537637657106895261464125981874865404554684584338833947962807892358486499484727232890808498870806717854390801491465468043685870680719137131173949461067632494120021154574184033290119199862708125117738324979824010121334204345456282435314500877046101455027866979107330792180275580160325716801609138621312472936807515611367068452482437971583847122868392802936738107465428375031463148805935951416346700037337164289644993914250977236664397052472539302577760678388889635357151778289092031811167774825095347116087865709843308804175613136500310447750716819619552471199093879923002531113439717024217670512239381021560690689821936049591663340736415354840155684609166255419276931192254393611062541630505781651155536998743580000618596084160357809647686287746495946111129242582770961170027860194416983912193600088567857247804902099940861829435429389311982716526191908555481471592144094100198705991033781624473861117113589211146685791733738474770467424650265262677449907630222411270482458813602266660962617589478501449108962257067090177460541355218471782716351069090998015933029026178445492215626097246264827759676434262649989067240813598004112263619230548700652346816086860440355968846795514069786051994471973737721852731970010472313224615992193973479152983020654992207561907171873171456997376885136607479962667140692256078886380232423484523402025076254977836954436900065188376738889493870579521124065273042586649558294223955661818232494048033250938536638087310069533806821464073272649818373208912740550671927081953837930941455026058404002140516665606864198655610188236584433655302599565990432652476012416670527279040206169054048082535338827402464712562840375604177492292220060240578636143657124048083585541850940357560152749921427321308548835155975360001552410772625937741641773738434202162288307787492777736700494946239525349097795716536887690734698988461588964016367491424315250020594951766871431567868351227421966077684154935695140342459695629335665396194245909897885597604902403601343879437292254982043345298924425249470010498319666952277195429368520754785431388529346921029113910567184151532030798582720169275475458660278025714432655621409789223339951689558646109234411112978859320441153177931013525816425201380761701047119034428362107924361491251215033074824868558508223788213324547598320717470029828686308261208615455098824735105584954961843552787849794929160024251733894833475027296578982038427076054318905191705781528955786420697767037579539142958509558432052448763687399105106246957322530743775769775452733984998349389866754799425424911439915945495730356115208212923398135529046155335072264625762054712209449622781556994323558567916897819340581059384977467920587671815560377034368581041720489776617771854169479666459150600967847453431575166084351976836926305713769314974073323423368826834054944725295662155071034583378411474166044678092724694636540188092717843367442906967863254745866945757851705029915449167889169187736466439926013459798028122182397372428339604139539241707589476822819362848834609567781069149421674684850573933233544553887278343292740647280592430994773112737944610027950947512488565419258822693907850782546355279076285427716583252377324730059967488675422336521251245233921886418284025065642010383452229408854654605189867182771389290558551251589664899400437935006480422799574771231625946637161414930485916549153945868146585980923303720987698294653865041715105708954243310327756544048647575437102245142776181261155660915642456513676268624323231188828466736597729463220111044994665797655532588340644780970036806447494770209990406277075713027627812494679290194727665353296342958095804162119936370453989651456750456901066013977713036847169766180460036854665664313257790836470794073295543565819506425220198247037143831158346508651839596051559018862239853363634842455429487361287569356755909877850438730484241469075976708140230590234234458736831324152817436111451984889936634406649694966359924783796471710199005674486660024110815040486129784379984658038010144731167043824056740026755988679593887355129852528935248172655114120385398680053632825072388456083085261387792658443944332170882924806431761719932602974099314781138832927662909190751167870885020212695533930690175797012968902079870818980174887027376280860787395028748807388166948502529805048937170446951420431677796796090890415540379517119498523568033481080527155495381277067001272428726731365797366470404747686023625576347336723619367734715529435460806626170241827121786366521976457674047149506823025505172417585184795354468253228933768462641066732578445702782101010638555745235300878875191115552049730762470703483520750238395134413772664086890542658578588236007057995191355214416653601350767287486414688729118284281847648325030547187037267643714335463268488960534378806080333531481023315348052659226243931751331032093490717035861669786708503494678731187965956356922850221570987005659023332152700384222405907579996888415433063807883966407844016083345037973488668125077060718687081460749065245648413156528220414485882242872180928924910767854410314967632819452774326199590063936162975745235890036154447080904586721583956833720487242685787624899850031265551253203964837622276104733507158036862541850827673515102099013769573237766897605843175679988707253628543949110176646934739522146578077562414769963539718203472241106399197971923561571225538725871086242812817181984283883344705611977221772222233746231482540529177676682879008670472457643646714057102155339960165899982879152472680913506532179658898613567259880248417741609903511860327015250531152273676725258994680413160367364841220192583094860067424109225384522400048177843005413106654093484333691096824483421250444345583393755150294593166799117912489984107384155097381948526556621051534238324384830747264279933530579759681775225493522964734830541885654163936631568753057630554938418556091690439479708975399009095753547186604000699490383502192691343763058072810562103856540408320921790430194247562001484134865938300515264469530552447994472066606198189255158023876715580459509949691763002925217953821185294843179638885679835341904840947086935349650159807376422304527307822119586587242945383430224431009558101313811241741793745006877644908006911222804035456108900346170306378573274297254391080925365746948199063712363377727487157901952502624192615586608192396799769260058466042830885370434927954589955945072066938722071433228300362157177190108816089883657666135396257063118378623369753265380254760030426412864920833951568968768498144519608354763330054420247536724677285243040952040556319016106282775673753388159299415385878280002902724328504647585809206297781973316235555858817277834788275629760780589918724925729377354828441418306395007285392225458873838952592219335061449685275698003145391557611000774830784297598198773957158808830192528389610733105698947424519548367712656094904303211586714503427883238425951608196596302806714553531094719182250980240656294421804496370302623001892065819986607430460883243477146632060208395611796548176168206866574891224246744118440337107673067959580806662977417582712303621312357146139826958053053405114440593270449216185516602285058538347947431597434425867895848668137045646155549939317736841132582888383953335320338595237824846947779064921673126591433143439411942153321509421089408919941093549884458565525938563676314586176201422288016094477980868529278091095705665968062457663215805695539584167071296216582234275324844919180403994212100065762760363540140710564470542985865802558675777406677226731742676577943588088467696944829744199748863007370291966524339455841943850245689088647411842163135284649722875026964169154014733252090063975672799856633140801582340855508110028103233795012362539165897867186463150849601642374564676632827767598864275034925310057150985612297910583893503179594425364844809304365309915959319516759063103907652144221630254104991800307494464344142155596221975331846746374090040735487936218711364605081691351730094785412259897621431034569955916040890721792228955514613834291100132665349765990734058474346432501746595747907664456950547163832319594161781846225932854753132667015777577743252218541763598544886565735045657749185479679059926711184904625368470492822862190170721727916796818996481161367643680975196081977661524056278830974581234164258410217115341342744990485183039901300277217815281919777264428142296020568456762925328378160767057677744691418038628461958354722449902141386044511800976180802973560940757717870068144702464297639636571226910113637277290195914181590065005852006963407915872225500489328225541748895147973332622472600620263508264527356574813364781861177486918981580673611528605179429471982978843286031499159432724786084196992247145333013181755300768004967204841520713583563567197148368592232095381853212145813239599080751605805424242054624211757721463624422185716597578186009210186682329761073841047512549786829967450359336507820108813766270348265853379605942339973939100469595651831995428952921650231562606118688708563399672561522435498305487705194284322822582453321487050122092156374862124814190463165672886727951768814693543096210060587472651876869052665231674109757102220950562901770201005667225110547040638252463722428370355234918466827704028337601008394361569367262671334195121370975523511511210507239727032163713501376904868153948721667500045513795864992239271014098144311380170696817413826850871027681510356158953553070409221976886039825675808478355294796796799272216016137791388934007224321342508696099578512195767836285571830322178937136360267203779707097551075240567791508734062743019599515750811195938556834286051302434177455586018322655180639878609706198204088038007291650467323167294313420236074266564150749938988770522230476004269107759372296039798732505469620545135482678430183476929375966636347441104857767750557304990593333186102473114442518205538234448361320657341416001206979542100503952532460805950476418084858636023960372434243358594371634999034266698614874087897229742958038570352558790329424462976702832217410078080660189561293485347781879059319209657674211671059873737080127797148677781523618535264078089443174091697990336646229503607082519400162269252752625689051566897161969581054273426064018697848801987185273602972954274999715458472382330715522304609026215249283456788159668857726300458576612372637199777204706212472168882410763220368367422070848550073768999244939017178357521729823690240293802068952676787180924228026882673499983441704323328599227495613859364667487289364849038254072338801443111004993362963644202909472568627720980642655388338861743551541491670683601489601209018460243572631962957112238378741423129329920068102156803056473533072657908969512102205626508234063875916810374625783104296932620014005870867851444150325188026448237720685881074007087086666701219284840066299949051158375127814748822851518645789356909420621125053261368632169006260404054453097540470856813373912336220563115882545126840741590424575168453825168997164718846554465910419047498874822586173584214278816928007912356565998747889830475817001485353380859058250830133919350875194066028036914085197057061923947869710037861656732734085653504219757401918280107071316943663427737228816156592974754276870559266958602824573934931363520617460094997858640556785435072862198676620056059067738707246549668668368084884930741412290005137753146227424426890484749884870971832065385286994871225906982582066341389688736195676481045543600895929890158982978503378857910231154504100630076752825992824429577525446318914699891808530083605539247029277773591308005287204391385359741494924206708687757700109098386905927950086205407891609179637029039253849989466529153620574514202419078260758285403054627837434113270851107637361209516547681582522218207697595291796176218020375881139255321742702887340506833689318664938223982799745501036949438936704511348247387688623084352361280265434591230267157363877741627181097337959375868479886548420369082565171591319879817765719130018383956816007920041953192265329178313260314062082987259238804681926030174723025112759671522712277355025141170919253291713305035657129027975302015128852042789293458851126876820217358321499648320726023474642924314114196956778645297090549559068109172178277777941220175466456110962376962072475467164121395357565606780341880927193886601738874582335856884357920800373356261476043665710341436205757092866998980717271256044522304203352079384984738082852005309395329798630805160737229831195301637097019246515740446014586415333710808601876570465544750246542253126108932258505873608300952190141182007825049216868826380060629160038107111703520753073380310830832933137724887729414365100680081507709169493945389102303237357693029746161776983735046607475655025054287226298187103960386019362339324883228676091358639974706530183440653294172423991749092783582086550844319618150595163013749503192070017682894178627258718529424280653595934489265028694167943687742280073714439223959331842209560903641710452001506640799768864229551789941107608568485981230679120027050512631327904747233695770276415024603092372730119714064875334828722020642563517572957961286718548458747312585312418020285498296031169393524079464086459551520411781303865473817333939794939594026532810692865075907892343061638880225292165190637732709829217248131672404854733127206986874837854077833647840806556491150333198350057490970933413057540070412777800204170540332743951054942758876063559933191195649250752746468517863308964523626409579528287591063142221067294615477104560715220668754851430831842918273117179609376292749291202538923887508271379599180278246939793278749194813217082448445135474564137543318406886263648148544442304385000755533810470520933012318673366482505273428896276649824988331868058890146994924250044673932037765619985621544446286729997565745635338755739534218410031280861374328932091727671708084015269582368183142498988519710828479850305611972601365072144661977329133445203685540007314827721474197711161878874558063951522947979213347319224330846244207206808386123524980905216207622145644870262538593562719310251763486260212292893227680619405908786660961006159370625216889752941684228610464327384875707193895162364807765832398376556293098263772052395571039334283734339227475430831834810094607473783071804227069857129000337312817680682186801678676808830468173959758291856836919686726891370990828887106343226723027097591908136419790588948182978616924598258633369317547403256592640237095079730002582818980056151962448666846454493983681989127037485396186618281816300868100666414635363031286062342019861161109518102720111172167474707736913613735406871009242512700160613900628465956633354512451750186244004553213667148812854460328947860908525401783642433043249489106653005587791070672812985915220668364204041274266725517769803535923365227403818553371781887568984407200403105368046251164533913914067687499748114060544208087329149299887647893101313668869736607616002286909608656565486902510429369882167594529821760118490598250340849908065202364319731729970630505221270403968217964046913029601943749612236692317008128063963575001637242994805239320411819653787069733724076332772120022287961926485083262509469293520042316677509787410768879004366366995430386484921011454344622920821680067486065595365637342925531838798363220135262815420517538521575302189900095583228150992548960247782914782377342028004386446775669311056680744877353566639018753830315061098481486161730907283637088503879248658653485313230283587495375535980279414303958293048283180016108255762598472775475154455385756257740926130608570728105411059759826806186273470397939751892065921603557223873993588081502629222439237905049155684963759337426983598089474026619054099715497714155890213334418257319763111877559077365432104576785134427167748964733551785939361828741123196590179848861073930884339222028255541923069953093868659437903911166679302477600287877425936319876253082305008698230532540933297858151477317078150687826609734953522416633275220785586686044392662053872211289137836403727566403356907145401673804923479603444876595542833141792733706924545343579610493612978136912715877913414616949729850180445256948102964983542505290511924814157261710046070762142108995401227483136477938704170187651499687558861528079267001013974217580727184469945775383058770785668319807204031266992744815857920675125827652134678010152955805079652516026889257432937903293909647446076073844493554608012382842551348763276679674046118864042787089830611260655510262985192276501557808078067765959337648812563664981962804959902471382980538202719235576998809304438161305121598271433787852678270694244845271337800884434984396932588317254156317291598250518670506860062018026434907001438874831561256271124783014638629807319414188865893850069746861612528921936791876836471687894044235322025651264504611589749976435830452414362947671675040415136437621105077732789192757317869566928954733628992729707313614955141583189415978499349362996516144471776482548554840589312624872922144716298898476279786211768167938900249071759202115399206938283153663959913062639021453272250600719102290746329116768572236658370212786963967484234465300531148175575241307065182121016990071991449231802988741521183645335962140265888749461539308947134173178991093168378526698498266574706314172983701728099323108763714987363750458445438946246698365189991556631270415253792368360564607666768106369400251286048576316770629016973843993083721749291381151575144404441972165678719547969304377853239272961595012792536792597035929532649224225356541951240345995975647018415279939945992614045192103339083368613209586375625777821777288896280989790118293060901696372582248749104712369023708920004693427437536744224860773307183425448849882745960161288358846635735176372321245940595897462616091684505719455626910348411703397992992850340769688909393134685696849386376072169220016178605318341132235691508524106511431628072218342345018356307062862262237940841935004354131741784580234478275967111197461832086425247976574444164045426813231187439384083992197821016642529453901208229851373304368121111008656018433615131043513981018191616271034637142651180786847566010641405099084785318562417894598776094306831287997255079457143195454954775994435387207555584859799561996274721218473542362098625103960868495110294764935650921154948172441071769284354083853166378801090871615296051987947060135676348853776278716719066747215168516255346315202949143398162616288124792396372684841416566307828316302793667183282841761186490883652329450406929642666032942787698057919710915686718064386963890334686057783366710554949826680704231733867993377765654325453723849680135620778523567527554612845645695640776091717847603327790096564997539392272948483248885818313605856508715137536921329009937715255341948686753290462287349086091153850993092030875661986810456767065760828466378034523933310248564015265991143572690831611671393628951822505079497802406769816179458158942672884650831946048029762894511438200100891185901015116632541019501442720544123399260999908626622704739104835481062820487761972489222802973479906893220397952308735322129068759751851793583921857900270188171036026066559781480171205770126473083104655128811500539650949039123065867834107267038716174169300967981141562625569806231372295853250656052878273473330408354875466481111707691638133104175820447430269445551616016097849441804229889148662818938637018010809410098105418865625455763337854138248950421112445702911392527732746935526010157907499906090070996975093288799369099444986716148746830502472505378343485270542585260323125842896572342138280123646630574404062011695532827570649473960645690351588287562091658584570013972565889142211910542551810868788263013884825177763770052300822118199917198732881167718170315113747455367451932845545479982875630560585490273299597670880731015897751626086026041951921965719710586792179230686808501371396698444032016523879830124640141367684106337226828123017916001002481350194327987378004402044010168815649185662573783364832837592232195048529678426130975902067062469113453394806029679468683298107950083649027437106771441284302677841608340969528036429570825814490668144834822504234753769660552049603513930120127752998463802476385023019486982987497247409321742138240795532636357330317470630119628410751709656384972495963702745939698497525077696529881250520113267613999877591483682272868799942967921326092674077150472033038548388020404133010939870630947108028787418441618218165164610943540673772169838352191740283983619920900353430102409405026920273380003575467244578884318254314869819651202654082874243774371580085803733764771116760033396269589333615091498092750651899918424126273525300029813315013131543329725313826101599832133141746433350506578493753146651836432672748201248791362552794049771070009921118145473676019770847972364814262620522610455351523984901341229236258294269906136465323444576905817027560133410612588222423501570728061528781245774481747554870489456820055732233081180945567914307958005061472933466424823247415771180766335715907109507287858616382751613162652953132245536224088753735737690342667338693530097530810541255808364795738224894388199082876801036473344839142170207846711240420463433128636345872933438056042226189728626831461700202226150211961414378887174644930020773435874886276363829504147377897102318321874394408060222022556622616544842843455327531180839262968293050802097750453976483918583107532103884563030053468929476350983594291930087879206292841532028693701719711369196676132753657280850699043441221614564151606926968450028598553549150351733242896862637917839909977929407113561134235496605876306551590823462366448928692581428142795186934013013123243893691754968565032165555479468422904131412534014317254295665145623112787131168929564605683648694202894075999543098936243156097005571368319103960970625419341783194637717108046835937694310419258036472884830552057708882744450724049675898835436480671690601335984699175980202432364019491343160326612910494223344132618504515065802207634057743683280982246034125448994203094992239972291619727480958273647391247116308615311938894253008598906792032388624911044055371691278173147831512789662146957742888395791389704199587029729569334216179586783256918573583937346530323662839317130299726783986068517954947982770855518644392457056206458251485658326108089526645344217214289826907272547045520765214659028681968956064635233640869525214244390522788903364306814309168047574104159779915378991287732214923306239695372113082675200286126075557535356979830381855486718951487348513412439806152752295279893172178264279744445330025570519259608531608344325537119526926873402130161058027254647560234349733139132851770223865079043635315972955325043346565837726321278309360649494387099546005763718046304233697919074382591784200049217096543599621369918802474828066716277029670636125084386395946036942224018882908567043170650230567986624378907174923873242103487049737848099485301114533316353116195109777629826751232714040761727039158384463729910939513997096685608620256750941951133394644809186078886397014294662689224061880108661088595477212151996994130690393861445895119937787771174793984823882556217655568436544493228781400706421337960026620306765878467831085604152815609839686998315003953770761741926488015771192852033458794632504374938442104582393434475113101443447183866476481834460838352803943175359641540694729882752400026782506314687271191691981558015680095390126560965854145243458101861251592290834232347782549546947567544667339868162714046109598576453434934051670200390285541304879327090313668780648615456889979429220386845037725807490045429641133907487157032978370091327015184169444360091470638920428759576647916159650284408015798107096444168087352016291946823889528725740913863324851352195534266235200956878685809539071369055252218786435737391886599804907039986493092210084257642410170375343379786899170331247081348590829911829269540042795032953087960148360808659714471732425461701718497176160361975286031405931316344655784981335831555834978277971831802179427511036331099259253329577429400475873741268310979902792950306376713882422310934639041749128003529073268748537315354943301996727575273847527135936479161003300508795697785174663433051778574340139884069023334892445234510694606694512910301744063695405491918939896249467659537625535649549990720065719784404635006064935283728028776007466913721984780606391171144572605251932246855303840066766231727507527965987190273011837224430332324117299150175268058950423487462737843422149179338317916071338630072631582092659348043165791706454462513497765404532118625873709649176109984214414407358828412397698000489232490648581786186936857676988505202595602806284559290618182359464665484540623592750081500859591339397523841625653014585973379116382355486799055133361522204991456953803993177326244841329962363322105880628175200781579232243090342363519067068167753002824903642207022792273518400969285305045488569950834113013659523226611670041311745848184077609602133344653042228103933265786654757512143289991419243454844804688210089132911577077438062526477964619094708499736030066094773171287075812158469491378824542541425418112030076172799107425347905204043145925934046279002782244897072624858694981653874754393046489716192618656998612825596631844425361264532647571670921797814985819511939948137214576122037827499937133579509197346573044630924127741978573137258563680887354428075770049510189593319183387131233365468354099062848987200493386029141110938325281457888870303491413350900407453928048811077608815960318072010725439733686687023318828912170930698409244878122441421607698050962454329158986769193437378242751585143742675223653492791735218770048576145707988970894447126379973608562034138118026862414396920384963028339403420831882258208995639144302365752736723720328466408648616987376807133144214515403381841616418395956176087759164636863801235999286665029914925190834787480341220668290218377638443976992503349067192115391516179408893683581846387150057151132154292316223948424294345310972164666447619549367349816695490066990434605237280754418110075181430523118291939054234840490052832121131662518492814613772110092038638304287367556960890989180454001004729061615909036776193891084397411378833032354216590441842103461428067378437103580467500688798594397976174232878763312827650401916094743177370846436541272016410056612660759073739587559467585708801478938143936233615679868832260607122079608331523782570315533527294955917241638711875644345002666228448352632697350313617931247966776147968474900998035036360881990189231883635115078135148877779199673482973834131595004207086592927624754804287517581120721381669544830781661054170840837266714526888362363962585826724814105071707090634011291119387597530552514071338705599946877627110825585735997349449510908773517594153268801251961305166353803055961707672159561290971325704423176625088130646055438196128353230330648574532500672935332684926783816172734146404515886442086911053133341876810031088320302220818595731312367433454772166302633653259043192464696965362287420475698499308250562003312152779712988046383276211082707546035603982707749468208563941914845565408074296647408245080485132786675692800003476429839696167289053590475457488286974763464591051906353333212743564693269456303556013831113953036094486844546703445740023343729844511441341418053169804840202984041351402099416218101550909554903361285086402281332528648556928824412560853856025298776166790871995159620031874882066279017687682708659617949809919748736073777602107455452781426867131673572792020866776184090469276192077787840810778979724000720226776999887889282163652922749463735183142478441772161362079684908936056493692908430324289824375282507872510518290367728077278696238905382989394213366079144316369856787048902778280645571850590350522963183038138036404226403429081799781185883626889993932110116572425785479935197603290652119500311117114577912875378599992482583905928398787684165217037888061290725845903016935252662165628229078132866036682793386875853263066978274301906905548662234624466065289086543510407593336020815517872478724259020066644181047318942706556049342307635652459021349695423832637726669685374263384596369402027676938938955110187425362109542876018801165828205934998157691656368780453606578743597524328330538694750447026909982571630771246727470802357865891795232429561175208911950256123437511325362553678727857374043861534735625553944836668623609470931879221138397338994888663385802784538702649407096975809468747340714290540149151855090456367536603487391177888137437057371913761582826794772275157063074740800463327718952552380726076344606698474583216258029514272525123020432473775228709329958314761334679860134321533031606425074494224867798730781705699396948027324869489241522945636319471416908606304232354963628955054576544095180211596367085338259737261417856501195741554369897153526931817888302462537059838245536570112804351061856174242136325187613323563284632446424737701220414635262535142001017592699854432122260207923352509078296038223507060812636108829618858306781632219689063535704896762301180519206974111197232061545725388257408378766373593023135565851964384531621126862357483849235012350810522978633336821549567804979031598942603183008094063033901706657359961154636868350817222211224185690918781188571653846415142775617025483288361770438256080888245515430299595993665501681967260817970586764308641061040583249526110970599623215230253204975761616111424260756685327008189260353117017880221986834248387354700981703461892633890311872992786583700877045080924327829366583914187029042439217572235092047192207593837005669550084976994602218667093113626806067599549794044631256233312264116904741664388912109678271894070272512002765846791862796503633343727118117920914375817789702922082118420742859710525594301489665196599970623015928881750186837773861734696703414362190012599120078873251256343597490203616392538457581666754471688907420024067234724136696909963580939699489642023144046441086001460995855496322529008118204263046004025606072134390895261652991801818645659355705567934719141544829652258222178052065107390589679412357519026712491189821085212216099296710709875653858212646845649233173613617486294859606306402494813660226904952878821351641812853487783885660461887861288781126360530182245529070632721689214302670369077052941926724878100084839044409080069845440824038119119265207725677482451800787902669389240532977526814974520483223494913865412595027462436425788202914162940458515380226863476061954136114084541356607684190991239987971328867245927815605305588891201590762160781804818033967697766908323727168830213965608663214040391800177945139729947892436596178988494946042157589684141271766251937026656194444272267837525154523916904534170822135823468724191304210330475917367761468772036878144004705190007746508899908563734622352032476201699594628734071582438312728292323153483196684404097973273946590575987778861956447298718096377460087248922796624464131350707086910124405075015776379136169118022943069685460872573239935761600327526071051267700373397628975311237215742855969062861884046183044443905084666358474410472368834024703288601943960713201606613132436901424063734253103848136509915694968072943265798767145275481698661670323187670246642084117440564828822203392989029029826342078043760179281845561804630492275911722793347153788961496059540634963526378246758787302896305148445141223460865270714666301600394457457374124241983827561858317303626580947043359550728770261199239546993166049627891070321938859795554257510247163194889507199273520512998249802385395837921991497377494141456467968967401697752710253346155868122251800880807366931934511555922303698109331081698884302762699868402758132942946511088784010000962575043644742846555097552352856237520368283790227588255009049704209257948595222680407701758846517993160651546497089284979095169204548722742263602306659491666536126220832073079713509353126351146248234034078240315760883254809175970879026542839734862250144931935911848996212015904047575152208126679056050573812247630053502390135523740482374839466192590656182267440549495021693279887630985682261174586988093882237747261929668823416946374203703274628385708000074259780356641798269161738613067609513103673748996076542640683778626794640025558854681268789711946021814931605515588860565988644021543072060183559659381664879598895765554252472709886388539409707602367019174396352369975852812589848729481894163990339712111760277223680432993316154422625869282414335247062630354713425178143461380894150049948923577642867346348072060238183156006129618844638448879616808247720173454365981619986250460859832866222584100748932920766996033966329253134183661996630383610538214797126751709323286821725807542125769708199728600868292007823955134277514424455209181891618891867423175963401101404322356535075405871862078252631925546283078419891116800782219237957118279155427157213161291804354961475350476284564662866200233536074675972347907472123974536484172688094491084435208045261308139958529450312848334547148178284592899919402834264322238913247188082366216743362673145903133065063784258022400836113413708654493616000365503261434177065374874818840892121093528065341045364082529433819178169967954309339271790120580238091462486802600291744555276170097912090948290529336650937868899484086356649660164388746853284039396733027541675808947555272901071046755546087523488482784610784691820832725991586112432006610808114491128718106460891771805290443393277361394874707377227250354594271070074826679877113313518185392232641589533925793541608744943440902052951525376268026545258888400635421024989561074892906769164770054067318783859095887379110612174832682404284426918372809367187840213251078220628457803515402504592013931813657025019412087983513963296265730082554505873908464008738855186094088903057137370923924219437120781579225627895356738605351922203220506102560046577255121733129493213448362921729865749784987833372512650907467946864374454844455409615118587133119072293572564466747234227014302433237949289885477620013557192270418673304286920501808221259404402909136569427285842637296091754292905770265774190313089298260912241964807970983115488204472366360641563514493978683347817085168511353693796955908848518862846629347244529511309723922808247432114063712262022850331483444075431321934651094589671203008235214214960043047253659491486628133949224480208823365845526706892720701462759165716878224022203290903941184267148396278480670915558486236187671631160538929983289468366940256461085145839516513512309716721026941608392745163505713042165267127831489555788397274145202487545592757190039424238071763318779535454236347122183687282197921481115661515951497634338274655883093381762588995824214772537070343846916045243447564315429991618932013609246844171207491381297690044429402862324586404920748323827259466756180406337628103579946584434071576189723712718627136102199833184604924319294465025986818009152443149311304800106031541470139765916322509717519064368547823897128636153315034050244713170146132372452899977741880542223740090489571261621612748783018178419297441039257039370227918227132787335022284451040921270236716212607342423515456105506274536546734798341243010301366378312498818189058294377042666481318858716904930520206755232933630198506168642562795107941710413625908957220494997619550802833249556916766303640053907880338852127715706620598552360189500539925920931999974276385352559685580682478472346018987335906999770913723667175927699058180615627296348677899798959670170156320353731969475138696886862215062213963495332521684988528478843895255410667650184760354353321079465060014184226240230310337036818062309895224515885260743579294483812492847522828475887169902138467356319285972023982853926696482445952677885946922415116010058505247956961757216478294066061252001708564918371462589489652611622766972646937259307044755192165967555386707563937338192447866637201995046839000101541223093292163289962217470875689368168942236214385983309002059226428655073261541027996500278961278257033605206336382995019023382340321357368796838757348815157516931995810637684138568099607913112548331192839008159065052830605917693200701404185084900888012450078363060504961005562898171450477616722677565511979514298885872591061071974206042782136904975165493021850703998161595584876404839756889772373100858564920004124263049735565872990291814060074857914092393596566795889582909602680078326489669379416276859441475287314527318881455468910240217393162988041171782662754390038270157432201808903216483656963255992252136664829745947989243735549139593511063121338752029911021247368804856426815771231437049920435772591491118178762609505900774293371425356876492467769110992562388975577077776894428008711928128791244859148848498853391440181689946808408071083591092338804093635178348674885972818111979644832521836763449756914588425016804484022527380375183357004600928412870066078781825209733793922937280156713709051994418357035662393187684019272662679696912031410190767146252726192889682561853784513023496913611590481023379397814214084398658072929342376018692775671637611170827191856662616589412435743564968152899630372224074741237828572088525597734444024432240511021729534887433027823986530165370058944030762602703252669768233349034472828868301520838431265465146073103418987289584129106763795911914364004218935201987357914759737736801012048081564449689383967554613335278168387499505852316182759962964934626066594230670092075467093541400242869547591351441421625252920033075451141633850813519998890173741429698770098654297906140156989656241751728583114147312773406709618654317205197658082268554961612537764691949744181290815847110631870405232702034722289204724552521459910151042199840808516003157988955861376183784299799749933669971554610355932861699360881517925482588554510244608019425140755563114707583874148376492638003428181570884843647565898645590711740756490010111761923015043545073515705576541674187419086725204788568942006261765689041553526452074943488011309086788555428461627567575893215855046755906803720889719470287051737525547015273266032925689651922511719585943636085909894051992897770542672983263032209411965294235241429289801424421540189450946812356255128201177087065922486900579594802772162706891840643343185039578053454791979221728428933085601814244099656120115372802674418964056577837791023077152619468499393448186000079276610384107480409191433361796705020571496621029474279636946783539216101014504336970611362709949843672223761486944316741270845347167531567061661136123402606302378497768175502577794668104805192655865225999864801671001109417907109263347072571040033028091339671618401005540870381442688931606940921108284869709615285274123047705590070052600027058839110045263577655551164850439882943459875782690200537200650696316415694173040470307630747588182543674306871293636567115944388017882428310627179503229565833438281076297138670804315586989800796998702411174013963304892521190265512796687703459830007864971700457493877354452781942246644063299387032468935027753242388018583541535998429856587579243906588802019197590388422440768780840746414792710596551421202718198453482531098602642501837544683038634825461854845283697535291097989804259213896471400522594725412025511345742140911465977712364928756910227233409266944826540853299567952177853068170682682259685270349752350156531234565394357435507542573556020136415351766177404839586631414446329320165644161319187212642073696679340470792975721905847910420571819363428157289030094963758509452110917063555378056371835592836467748367761298077006793094310926743989356453317030040709530535059063805417646480039226762830789007370540662089987507353558174554397381256227905258018156832977190093061798487565375508133560713427837118882420920821043707292296359559284287902658867270842872196020805629479070187252690724930454227355026147407808085380045924000371717423962911413187633146804221916597044473706066801764692022212418688649480024121028801256164464902898144445971633174353358702835477967144452900851656498745117103812235608219674372952330772638979990277310969914849407282936979980489909487595767583717371545579621512854368930529097608586590328959513059571848560083792372120863830017347740338670531831074604269352526180762095957000028704629501461160227928611766452748505502622032079333120531220346660119413342325629607468956363143779038935747009319212955767349800863152700732429466047902480346541903077491914374631758032086316779208058524188137656330593310632935648041751543249204024039559489316260846821737422149686210776494528585088879016205153250637328861989498343669808955174900298095489529337963413462648974183582480271772185926685920673335829003781622882854313421239370622938493121361973486774022646719654434726332558441598975210693139526272406318864908441054815181364757394142005082579307170584742323474908971688655071776727258076218206136329141672221440007283664441638158424074269540169780453526485982918998572664563108170267487146044101336674040067309539656910760047533799599948249972059691400316168868761468228401939439502704848906758838368709304488058805034724876197690387590962385221278293601050787077844048418426884810355488550460378806472504707264791536022611969800368331497655456525013351339198843930911576072874863928447235859817462747212406069563427885687156803959828130832186175856637779331362756429729214160894924141576934402835664596541652427770209426927840438422395771068178452189074410951991822349891658614531399353408372294943054092506428333773391774367753461237254559121673491108469121496999799783083602132043393638842611021728694317794372336170414188532539376515071522226249364152531629455454550756800634204317618445377995690758928832060303065339212855379917175647657137527594636034086422023346425503753609378092018480085319375763278270951642826077629185009196726501421063186516006161689310389485571380771305209077158935585917801337349305939457557346787163495218764591358517072945413335750699929399561728059043999739049189422678471658647164610194471566020854473730861055354431122294060695522204904452790098913757577419905202527491851972350573856894725130793182761982915668996966670965564852073961192222736926787121909720763661039393980228197402281879723012856468326865617141439785602307231799626746423377621597043530262611005380887669180376629539680779298016087163181719801564551110024300448202799068633247327238478453835669964966971728021656949646713406709984427553118006204584486961243323600567086589355562341181199305587931764992242719819974341969126606061188887329319572848535475379686498476360680608543875395091912393539152190011405538921636268567419867376401490203236043564838118235853541936588812079904566513551421178025213672082679583753963714552631944598018463648249783716513172310268472667643251889582270034761945318632324537537410500064119475599657859779868868527573117493630413355225965428272803951415800195838425237384509161392360743340815348496622129489961331128945559964051565674728097625268479371669429802852924904260363175463192604535554337564760325567229337139212495956817352722538911026529320340386359860246455963273129377000649856815610329009248938843835720642784742290642320689173668931741963098748216801106082906197873260755779888618892441506235413281143810535715661979922111474986669830179460572145018484373556073767481166378872060003634068369548978168891114360500996273831351718947573109539750481878684004996604187821403304630385385151144839345457789100955095445989466306867600170460626497199455444809808160091291654151268673239343094180193533368133661296716380930729739384785210017748180277647446417580503535931861925588629649225908313373932688141588757486722083886183117395159131500930738699007585705382302377043175364218160096853033404733783725166465588756216285733306832055270884521971525440090594540740050938874275381641413783193008691561499955071910762441510471228111606863363203126502744813455953351749569480472152887552934234914699142524771557411641247217969147954276676903525019871839258548678464859865236155687713613038050043217497055156167162329720680102569341519525330620810316000284233459999347731060934689885636749389635151606940968921730458683814955495453416047971585888826901097746386306909804681621437509860598703439379581833729329916098951201346817827128257974519992828057242974506685693009747741393104266207623896245979902082782885089342885347437516628947499244675943347706732420321870493805641859307210281212269189491277530178416200712728162585452207932628741245831790993204060379988165548420125413610413790823917646536497310036512454175876439535404651713862538055304508361428765724999992589423824829700864450753912372795850363152331082797782460952344400606602644483959643290890455494956450561100662908141958690899600515725296216391171915214549673232004126168894846368507702352718904048405650343454074085138904659617855271809557671711284409535425412246012813463726326837087113329428459423532568430141044487257856506690642535473555727160123426405471714953388531849361609446298515975135059091998959967147673891569483045706396046741088913581454882798662349590455848616669027792294441947484594088720272136799970623892239693146181955010253148818697071323098561778793444978915538996934810092816079365502796385043635566760575935980082311422332736843634479658130519847101482216133979555763113763766056125241414746522707281703314558624632346228474096926448592613281232194871492165062039708114030329439408815035471845817120653758948171639777149397927122489958044561127458106799049421513683065270525728052952685540717763457637323570800564816241209287361677977889627795226553303181109948983466018983008468002417464480540226983021062939308835326031833280512803009894239658529191541767763690296830194788756805997632718530396080084261451568555231249677278434867534364243176177804299572089513882915172892088342468201826538656373500118662529430588953244209555338942383456420290057612430002663482350523200003298040742267173522086769285474858752641703707821388311675630648304504218678530443307993927024430723927262701939032401579870379023402387174774953456351137063317549642312141106022173900768162081227263914894306182920323025407963537527938060972160059042649905634158203877216137930993896123412681086351448535223853101105049444420895635692805665388939633731184646124388083034342758779119998043902561368662093337810917013704785876908005353567080770268919107796175342829798212133810379167421424329305511248547057987100219099201765917177568084454118159131384500088412858368066043026949811679300038112685022065008603887250221608769202349563704962959127766763639766199779171180847176029864098276176747439239869769711924016045674255077038145590327037647025681474771551581121284072524931153481198514347505826211391473665650254649895411412722413270647212536604435471967267756088386820715665561157551885860718364622829663821579898981348790296936015365561693803901389053794387585441618403270709033872842922095615423163751045471659130869269178071857244601109051925777868150327949605048847953495731118194679551351724717806865919243932905603499189703278765824486295507826573215824530896470437913904861755923904673819930366176114638068699594267364424615125993084007729398106749339362197450970575460567962830442628341311666821050084739858610627944190483900933282751501063551308250205900092008549616324949508633919104921698828808510362227589213018448221689719926844433992282583508856628801673453750363216838195910004633287793227079581089196378156195560857033336550931398563803882590393004923082710704360485949675833024887996613815971787349423849275079674949582120392959228460220308176744028378388797935884314347913023738605648678426564238759899269484337720821515048505882076137191753606418553388196898795115396059270892816021816141604904158126547042898515342057372483874027341798932612871794760760820614681580747875297953623429815098433777558628612764276195090387733836773008599207655790000535970607603259903796214983724945697269155665037783616006241885792719090766185610803750642932957458417699116333483241725480539720955145890655626238942780518620246683141940532045146807707793923627166998837145825276969922998218740357370453912157627081188607313763328118214603727194594369326641622392093477534162364679294409333712733590556590354682889692028179517352230068669543644782218179116016580906790301848428593546245419830857393484807605466381897653051064596191697844422027339082087223940107485238594905501362805439592881571610723368149122009407518042403858681292957552876677888701153483482878394112177799408018850507848946119691942611550637473727634474428105499517694530789949641952728139019058543796428702270271012489796332663564093992736761143765449391085879257029052437113349725037752724155753425823195831250066078937444946127662766060078886695258015190263614202441599206148069247426845909455028761858075511742114650807940732193192022423600095079026534146966592446854807348087506281494693359253966887254676143129688944986278171412774981519780384421170981307958213879421150946217331483782705446269080723045514105148539758810583224500621324534833348568920515267932149469482880722856075958800247716034638320330143509119009344474930379509922873026649620061832396973534941293895904754491228245264522330931719859348835927960197832488297430949572889964141742431543010053909736195150639432702935643661813664393531582362830339387590377628997519057200416287106736075224768505791325151958202083964338006812260071572510579641465746739713591906606049534441970812604541800208720283269682500724475994033219795411721036697188574352061788115902062943063970774543804515081019474684061708018643647816847800008632038337755894503528324653553577896883566250778320515610787452169484931532068013165903358714705781375598452450161584353882967689235887710750333360623334412284582745665366699684820136734476011293706300519037269937066748798717621469489725397433185563623974944181496205150880468940989506820782515675064497076936549504592174129107121702928369461257536013086932962260149568155718770076590941093443310702766281075029611061841769994966572900684012363139982877240364178007468086916599693742488270165978760146072017044031053970884046474996279752987709826317532017693704269661235650758966262521777250863567890548155223623915859570032391349919235750865935057267418900948384549064672778218367827426293910805532589596478918379290152556315471519360192998628289260262897897911750435835462692130473153832384665540137364519237911169295321847431927978330801882822188920791615458886782008489289498842143372964540271871532625209395429430651502020716509261188279160183321102467994964027640090886184078156565545871534594194312694242628726160791433546912157534088893477734180514967344372970030405737588912684183310940316529292134071666008801260810396103099587708260693721170116886131097450394528360942301422961524121958775790871090982749331747613586322751840019286554244357838968611704545592717331441199930205140158533975298546158273089240506664284069371241363361408218576413852493933549303389869010812848264832164111505090666508287930062269421926507908620625613171895890953049324986920416721092044179189005298092614124833212863363850961321913648307154006810274787544299857150146994500398318675974190119746517039210408857870444086838327011841043396052091377446227552117990420742176236216229631041321245535687340001916953795909127816742250248980530277778675750861646652832504385025337255498290815671967502225774527090632232640361850460964722300474140268533524050396173839579218167170159145184436753809592570254088641325898170610067732486741700989496099988571570834872021729278139294532563270005676910547894362961715589353540232770205411813965242977475235262123924583409019724889050360123907502148711717029813116773674775117580854530862264614553626447284652537336263915220313549538811414633000584543453359257176440844138685839191262853016787174300639325870303633104226157147424386342944483446817818904027263324423989967175887648916617321907088517529821728138933808008388049919687735394951432638283652739226431535245110273491956216514330476954992974093194992419465468033238890293954195632469298992455613319220621337986903736263434790909796105902531947744772839868522930762197293963286697921903066278276977994156332005446050615016535826804020214114029195506495265083247950474187687602162672257747727454292951090330622499985909077058939091435806798113543208160918458233129458564117647752085541084669982861329479203813304832395827221140208463923272488278896793239432668473087506150894905082028332641498552437295308913002951876768716829208417329391853622659032199246596975111230366114487275107407994327633874260079648521835944584497401989441160556332370733537811920621254793636291562461787412873950482461384113668702090507148495260287625139148670318921919631735051866391042284993434489976592421541638616964320463948483530403684258504738791255961019630992451952519545136399138757073791227125594196324004962348829044090173533974417835762564392328193548692564480089076014911432680125012588279946900654013767257948177204434790933375095259038894593080423290666394280026235966004291737953442060192083777809601970301801896703477375934224489073926636470532231791599525910477963133314735545950974173426789236113171978661307066886560742690912766476567657308563766755348901658340582845191312158174931616042060970579622513099187423006684537478372345925190994461716022305148069249194635658578260370404016506249016311522137905801666107454394832510485523508050478887328239754557399578838651656663273165680062213238269513896956530186484824635659797857384780240422574268666257900494721570556153316238287759969696749115947138943561948242447206534282260240050310141373713433998015510379734029005861268590245997749576353375422929272742288890793389996378828606889906304922538510898013209913177698744329231922395961139942259031932478300566830146128534168416423075836851851740121284866958985063730945286138858492173595947385327806396644585600339679102176707040343197100552578156294097169710638317503372228956977180168388035749220867058900853525989606163546278052373511745045879484377173683404081123158696584667259910706867497852447076953843748386459954029176815389933547307209318675353249025788598673201431379871694474611430142737706637909622046329134051958633613717556179680121290849148667030194979828423314513239878652285840608011593340341035364643600017781831000272396552407627920840370286630021742557191749517418875153200607945420984873764100207157745958613221877110250598885939894056717539942709525082410004600621418473493429721688432374549687448994736843765703059835842880092114543150942933235930852382082448796647803926244448133451486444457703679206923373159476926322509507333265545733919666363198047256612881264005814904052740913558949106313965752534573143051051344350108448617269464179983219017135520580374568377989771746056061178412167366874921806318968361057004559269916628194107539097386168112806106731845099180933406544545752620050319337946722762705405524750133552790925901266530029863830619177011387159543167429850836935770702369699936944840012341783844911725843687915143748590620643284357107406344621238602297092009511493174146125362644030944036809002350901227015610931791061997523945356835591521441806274571418418495396033080793195254685099543650525784062780262865327185548069417155248098428300910008536691039356660100409961942086461720287877439809134268170428492584071826247792802400310372217438615960306640234578812040943719177039270099690925280547732143659701972119802743152180544543945933004004281352030955090595281424194623931576661880060540424017287227434068405204113263502672527304304170078264538035278147858440266882587333363422883919799630082942664413259019946224085023210096333825641064568482977009519259174748380004248873205594320892231491010261359176567125236635559973395529877555382945690808711584139735782368104300087343420405358617606737968778887126125345906291480751048036944803064070265369745998482082717209383489541886957711299096300795125239979223252586460499462250381864465479225254712251851730007485830351289534257878215283650826659682200819854735894788077518362514850793598850417543350709219004418726188112812989928750586522225654999935137020946981267729477558656982169068280397037827527610579395256603810675851455638093733806341569291561163108959981355524570975590713438842996952273890998039835018310624001808422137281740676418319152037230850824478065707962975946864212963411295704659865781726859265840313359961201692236016754936583457844386002974588138576754428312372911497416059616687353311711726638242357592624066253031331965703247331941270724282557545297589030650775139192316103000755997119332844948166318949885199841799822206227609096672331886762297286252747280753245010490229640880311384601897737672026538740616658154127678962537896122327664134530087072114082410262429149109652526812041884502328313914461855300543884603099129841902118505925860723957501682399021110554957448182376678255659548095061332969638542615280812401591020811671702480796517775817171248855188562641633480643768016340131307995386666709584827457047837023933563675921556224414181136866040911242358050200568077734705416420562404247474764288324223535320650528429847883264671186417383157061254669158119645760048712665094900902614267152974977781662320069270178373059857561427447059832278621135010175708837976731419606369363550536799301235217613577596385124180411989813581793665445325568202996607966529194399682263930736189628872692992899542501040565390544058967279278882939714792506353134871876622218242656183980590376835109656934313993459903965389488952294391504880174988126187263570857725880496305131224557428059172962897334347076821221416789695028480861623552493946895919930702890089846659450790447584279576522984660125147265593546942937913659058390176947029915076418289350651657759993702012727826677764904815328480412045628580412215663694572539731225980292660109248633633033190301979047019866961767944706501341274795147475039703639388921350499572705831432639369222208638194625186483067451664650490830949229542677714665205491779088915760268427712802312879692950286933436592267750742717836439464941756085580986558956500800071500536604813870317742404393362725271876124563691880294668133303608222721767453449817313119198851650337423500927852610386795314071606295526117653947427897218751126135576695000295471389923423862564460517201466495252798710343057620655065778479623509380645323665821403753729152162732882524616319371109246845261442043044475585441789429081970169646578007869508655203078421868057088325908325133934727559565728405328051509668163170887970093554198965341186073854698478891875022723022226654811414928606316953260417353028060474398340148401899915601983291667158718566336778265208185954666728788884933912137034435668110222496262870310705387015195490866388414979479829149325533770165810784898038443787939161679325484798867702212041206440164482041706314440013830868195363473580669890552224386105218993696253787815571189309185082041360215156494017453522722727021480829895895883535633952706559320551112441545381872070891452053415386968312410309934460320072022602977085296576513718946620633912347172504062163341050191789446517072797703938894656618909399832817304806750388599550733697966555244295371439319114968221247851006825621640823188393309691148047787291798376837871886979101380827807155940407184964488346670502731712877540103096689311651087079888075380417682559119534244069778529479249297339622435579792217213282642011084062657214861467718127691680904442614213489131071919585504650502073679606821645616102021112650831938698431490820197220132945783179612534352820840426485012238418951609792517237494957834690790012030327787100416830143741753039831004492474384717639487782594874571213653035263201425841747320962422334758536573845817005442445593078617972456220397727377953212419281560388226795375335632692998955834062608485674695995430445615439354696194646200816051957615109553807326657856352528531665381154562798886624075247895871733945798536231535803996692508726201436641481118634870004182568833492594768172186659955096320252160322198605389988558826295615372104735305603739714982601302342179174897472860617216511924490494316585202347553626171576608302154199447267555565790074861457316054061738721482847088921796537307902132690140000337651509817463777960571032703863185900926269945355730863354837108789450095382183914750894661002184632471073643614529822869305374995839585378840939933434966425558748107106281276346489994922732233363595603670569694295056288797511670587383266753013209310094782783595112378458298926338982346281964038545965877218666637951794469400781779560900186166343212497659772235058232114637018113731877051118444216983494484167816637484897108805974643927572887477967564842653933891654755793660687490934414450432740884962031387072516247633417750190738976082002254680934763125004038247805173848870080349840372591749895999958665335312644473193778393822771908607600244100541333213198489997733542666790955381716946061789706214160401747983081555737954799022140078122578346394368380304298756600129852292071270642027508358887776487718989827762004647185859386522116857401129289820651208043249713266834169067915432386587197155327440782961180787915951152088719567746354518203372488087257904024159190885184104493646384437214900429365571901935677213266275514246586117323264649176990382599171660707496062207692760133929600289804681883445034031718881846441815106289192071342283469303473268608563062269179414580324908511695098009501773039717630444724856440927767927541541065344429747913832898343201064815960188276375285126725058492994829798607553412883253728578292700123856453946243667772871329645963863400522660579747388508850106091096675986871465128750247951282730098902716939552002941289535407221479445817608322804786611367323156327908823526978979211717646757831431706174936771284979204372933403195524086731862239711752297273195064314920718842961181202920176791023820185885885971398241866864742561952598349779834448266991637113352689296941913501038235831130389258851644413697233187949993285329614262460652529893032489021959751763819105047921222301859151194487592823511058714697302811720845958379579730401013945125213217187258214461750162288161726791865019032949004978533368785628980014508906801877803702014587633441017126258059179425342330602239673624913905458167337830429996558745906325603144623705485144114640281595093972975370950032461159933940286679029393622751344872967739364700923982068012665522358881239230729864612016962124659493527238711405735802719023642270426154455157627187312604783588168781297891395285482344572780316677034463258636761624956850247294262703863945863701348732019669451144533355938425632454098544723521863618115340902680287692897335877309737783701895300382165448744748475652934325708845845747652849535774479896497168967022212156269732950542129585870722081301020840898594540364737998055638621088901415440087050551561051540487300099450204026007515084668433348869318331797425096565105901593192064303182769519460323888641020585153795528324754937087390428888055110309843086734168955796598391031037039208191984033085603965455473682169379009947525006292381758189754677453888777901156330201646616098176373084943859471821466869257833514921002921247846459168208325084105184597262874121521354108804794424734814482504572222321458456337853208575187160971940058595072929926597616323342043868553661126420810752226107634635889329739941795556507933290512774961911416669158439629539971282623410456228614177862288475772595022319624017509942537115907653242492725933614244540221623420649790387117264169519789709470385872111770755291254959631443075828853057033890644430199387538349806313603450424602448630392801381305766467796592105260838632457902400197704600876987228416337631188260049069361188571206697307869750574149865582506423861852452250528599314802690109653641052178653617555773656951653511536987062342684409271488716660993360176373433013122072441613714517498386065585352472087300782327593497367090718197047549642944284871945033897997515734344113997915161202396848951209464695778251367934446899174301068128346549222694657132751318180353145139249810624483515312624521075555699580931153443806774555713733374020942233638011938800989148049498632544032448282860277972859763532136759826404648045827900411373796156099775441590779303446435726150921527217321242352700287965909225441405052104659249051684296269685656646811061315773460567629822990360375305860867148116170936867813103848234168568396392501595992875063737123463561309086741642365871180302702448656969642906340550226647260350528379152898657587070346259767682908637652630311500432335049116624317627308367496436413516478209061748192612008056123872494131194718211776145600501136960008910255316952159719529600705938803847490188978469128347334180523240163011407090865109377118989442271352567517278783130495535143536201491597781257680996666804022341078067816425779005822922795806729031464580001537916106595240311002227797967381596789783347128772604696262975949150787803077537150665450168990621972870530932365349829888287437283338447097839926233454526141089657900854016488619044497708658288438089592877455247206729566425012608658978975791249377489037806980537316375996750367788484156069395215117015636129089073056269782377576938026971780566359491793029880309063833630401901363220418933886470744547967373672338058798585839356287876340232985875730510149402767883540180976588983247976866510403613407240249141697691904742448910422258264187280313204116159306303977349647986622085545303931064472746149888385767426179097380564036577035402770691068109404617828885771047897079003830165875976577509732067406055073248409753575076468002785603983113460370965235893893063018144146197371510821768432059669705546615853771749954757065509785640184963194919050133951808258880259749470012326773287306418836738427419567178925577476009476597582940169797954123844793454864638233708680270518448843921280024627296919772550135258910369353223741042275257251927513128363928608118639692918816974414518287897457082731221130586817035082490353215134866869183304294117615669582106717468879135408087347322813772470250714545616663362306339332710644773575735946742744562811225052206338280689936866346183884688751817122356407980154235951873300197137596044633113012524768283739444103328983358868651332254158306166987649606955529933161218236492990368627604812015962591334836810842031438987780892646261854296991370380272564014949060256583420966236077570115774410000047254028948837620864823168113557293103520930025079928717640704309251215772035483834760897520798275873321294314847849089358895570074511194407663084097179570669540457714470182069796069697732078520278373959195980189665617919374385433405824349799418300489604064705887653812225017510386631292715457256864828137459579712040737425088585258683934018162364820633427863862080494857249543346113163293579202959456431102686900045766700499194068875409886531466157490938991705278703605885599857777886940606365541519076524204528526621057265580493113951076523561733055450452233196364206280571582017079009513932033271551325787846756159527351605678032990072366341779880252735376337276688373166221792709508908188787871854541009841372164130611834588770386537075214680177022658880003336251704388372957935032594927200457926381895576980768612834755481492864754675131905556310584282493392048008083706257414082018547866963295014345922488519152677549185312377558561378921515802967047692978238871721211347698202893169635895809137034739198728970377550560910654244777624417435067498010940472053329448857908600676018484418120276811372285641573991888107001386725842011058275177929940014747940477859977988800538271049792301255560829780442235026321809536215757413300921679422965415401134482984024711425766810587033912866635616298555753753042959978560821045441208617113991368650871806788646910809275346901696662335935405282698940127705484138710785610461602341924083599986648085017305703776224649670712879530083810885654232981754086405985181997288197594062470785471310333447829245091426782604889367484476030652567104506514762766287073834629368546716901649401333722261072119920145309443562937106018452101737410684510862486654922989040145257642793594367599864768082793209823066073030763251221748554426956983185370687712723985974160691032714306177431554566517969510650550531368896087736050149289404340713311262124226883157288364144608408445611264448360543682597246645920666115063171293159133560463486016133497501702885622919404363823991148528115759255749588237120274353305041181845209097607084737367659730538593256976265222695624499255176155042615914986467879039366838716099135073058237802598387701977645005320044106100315319868371060562559143833785904669799021363357874019169413900031575088487977175264406363163363512278486959077426678970869451379363120451342985099904422065495448942613639395152689065271440366669385986612958211867065498269990141145267139145145100256592245280145983180495524081650581580184762112435160828065145928229829286176040293315439285087581344328590756785893063675264772495722085482788275405651662395076607893261967568525936834866704741872508369249197951117843590055397486060203649281906803762796776303634213273988965037548250345204567633851105045322612056302368500514589701264534687317901112029336684832768019326236257640206970419426915263682388492634788235657899773835799852394216750562707645461146449767237963586530502784751808231886713515248367517353046182461181557084451279410507094799304696835027927865684464105722495054752064675059733743341298696967995457086500378566353277655737459821952182668799888784608890692589267703023896585647193527555086703967041813386526089674650583109437384483523962876097630767368536914233435744307503053898549946115163023988579843330800539764843027728392344866723555890015860780116385077067928962317447569848325287312399272976980208519459125368181679824878868298536772360852752112144915863676826344477319842069998459688802157151970575475297971804331831858262207428908615556230384569463131145848218428351762928118658544410973193931748019962284984882238722060060417208678612958181363311128405318510600203614352699128143984118444256341191894636310333551765668822818045812733027658408027624373451848864251459584383928878314814459643114621768458201295149913299550784630147660889172915039177286046090016688861960437740560285685098752029803551466310643045516550160094274782581080976620579750393781550789230228891586226126577001670245242045575332942490923728428583222288300677121321274154171834909500920585380574036781045279188262345129988411753616598566961558389167893929466720472325050286906171754172419284182415387015468727206835037606400095475448400356471050183835543284143346839623736453760658290346627981787107914400901990393666458236343583313336610197043372788260117424967904754460954294546193265859274423525912374814030320106514919307412197931929923467259693150797500666546680078813758314226770311766962101237602102472293459142333135892581458787386337145646574772899866746871818703835229464079942408467250364098393967246887185658126170119768628086736419278864671223047159869487188500923704978651488317422989277851825144912319395639879677381747424213239833993102995358559113793810808412567205925769890300858756957360814383874108561172808814840803679987474359666767683002973952179776219632781040691671789036514036946882678439251352384990339205170095631121204034223756462784029913885041639680604379438239525090822027698023158381128486820474244242410698182624379040575542631242404166629716046904658668015622949445558101820800834961772335351776026109947005030032877999638325536435053676349865005244734300779046876545871444367203538756397439570334961751314435509512481048744183840697509960853057135963158463836597619966195052596837282751369929164505612231288593991873971635072138625569181304230374556628870988414969446849530037676346032389196665580403770834883244041199589068355625270857466290800040612630330652988002516877854933812868802754438951881596054300879482646264264763810715210486285643985304419189010191083821114205070268845485072569256996306713699571530625023279239906919237811869543701792572922594891021478581284170084922280998497216974153469936879313541591769976847786838403526243074000425946886071810899623326613121122560063872181246830961098307881685830634914198576524615836540381098441819642214990808668826478994201478397215579766184190208761860533580462254987233305918074910824903001055178047050297489838592825258154857028932393629576118111526575605640814068418650625138233053612534948768667468071848071536015683543731864310845045878392243380125266484023667149551559431745150202407720708326695333779095712790414249801222395008914983552735449011505903208534248480766974255431984449634003102711843036883507746475815033164460732301080707816501168399447195947050247464178339293586575801558693460659885366484103929172806470216686970255479611404153069860977230783662341906098147047057329440030673795590942240891250289614619918019617659379274020581336677012680433991431261204167155950944117080029269615964967146896513301200839731913716108356049460367040756134387112413143544430101177637331143183411379925141041137092040396743120201209266706758568747473738194741331429418798148910914151359726860674882491783156084743966996661821150930404544852662079361780934389295976784076253005465584934004854210825180683974497086955632259657007349586739592647117079759149224964935724553767293646631822841599286815940838109718717042977258008078471170584238485872181105776625518903347123575460647200092937361020852814855256660562382786704879575758404153488791918252442945900804480367559554559541625682396023073625918868540579330063951224102647860321959785812007389691241842622241503148555499971803058248608929919642385641617203444265078456655812097169909144794453341042122131887883194987550360694904536800985019258084774811719859940796975085061736492465930601701312106065058660448443364709814544288810133857980495482543365103163381766400912178894120408396377628146166472209554671027502807926176033811711847573039772738776893831665159830459612274551093069808364778223569430866487525138039697853510799705767059354647093145850682263595247971625518822864988596214219277710750546632251311113992678380868222533651313485160361622958597566049564355262101953924545087683740103634171479051332969751727614374970926782805702957751957446646656723507199998641071886872653315644613062531104367523350475455427844373521732342416208172656356690580027637208885636398233636163971777348229322850094911876897222573260567934993353946262485811012206211724770172131079224291821716852941421640182877137498285281812928608047282373051930406904638129535629584920268958414558038525086851889551500480577711828560390583612489598633764702204480575414662535870777987726721211027008660808462105049053522128300439778520227227974693532173757740450827651715550584558678437385973545655996850363402364547294908297551928131687781470520352881926832448334099243407387621215850979856876875802545423131731323702643655463575670726458372530237370103871631294478062232352402831226812853410141709692380518061168117883610511205533615475953121788077878161119577668399285037106792357834057575372864445388275549230370620069323305473243858771898925145932628093986014389124472339079187339027210376370400602336115975598306769621701211096959315486364616070359500162449875309400399631051054643093775427898887189283183252835000230316867676130505887912041421298236053287505771629254832225985419111691474965629139321926877298774956025271532868870402800228934167367347045121836230555156056186590607442940272759928459328885462607933978112459192089028150001466835270705951740922234093501609428697328078031211661456085040177054546424876166112407863023945759191396264196564020959715142072617724886536037854269179040357838217107085275237155950669312575426294279441826161242413584107608434376874710446730637941034707883596817227473211082473442754069210923590371561817286567277041421124118708455188707474340088387085511728989395168491580194797174744111214293755744929288147280783448200214911063838267194778919100138006923152229963944296025856438758564619589970667028240703271681975891766533166460090001144941943078387320418326540798125731586450787333872467949005121011631482962711580552440880545809405655230578512743938905095129213905542706448294873000510060180182943661212409698464480380856635144828863059485452051512061150638191305355299835726688060329360453896919636255951988771883791515981493300474359493015380448841551279754070975924165782098375305889083809174089002175954986918771711695041672937794089607455770502023331553208199391642211683638771205407820694829150709539253421129063382194819111982215512861220675470245442576315056659673721277475700368247439507554926134572868423031196723071443466100676547301269459000739751904764713057598169565018274194053448697358700008864222480661100223162597437494877808727252540871682077447239227956264385193510142527049433810183309042667295574694752871121302319393476503599185660628865140904622919244952837715223179517489908759409915435679852499996874558503382121605460705776613148027319057201305383034435567475422680697652578997230540482241350981373706787423048905681993622435082853608207970570367274104237954005356033209524464540691719681970997416253147964665300083223085319984320670263512478641124421331708899935671819322494875766356435235448806399723033171240224257520473033300819509180745550304546953396792334823103626977273176625952765230488501174365912023171937998731646622978151916937763030071187349083087533163889574474748192835569249509835172281801909288351619368833248627213314121070353661102377348119168769555501658118554181955152223436204955581717934240001206419330806825326360341127801425545857551166741745861628219888534335108767202681477107465384489220574007106887350613522803241173403296699001375776256178374642372003428901397189924056449341626511050634704650032069344017517509261065967329188487084981659696414747277478633509414797134157652377945785826384939113189018408911622734898708162840038164240409027291563809314617246563361160494222404810797499221377932820136706838816554608839358140083447515521076860583960646720579932222884002606068225041798990209418861277601310969755287572972434697216516167080292485756687417005973388813864995458760487637954182498326855282732196290061790084373434801233838729478607733582136640549731942724522242499631569463248386894937004510335357903388775853222397235617597753717017501092851421760210301191241050875642837046473575675223650559227526020648704184431565318992321838400608012981281148946063874452128424036910693902959135463175582837722906502772896298806550083815909239812607127373159091684831728965567558723366992502566516676236983611550161791590351058290935826151880083979971735986272275330577460019122147027296410401858444582455392884727981958720674714291769698157964726890488802143141617617794084646820887002805740062555140985648024070696028919088582084542070423617399991253960317840110700217070140725937407995211439774795368908412316368267155631051430635231152458767741840144767954558038550946893818820090791186907934278178824683186236299819830909660266968553599068958079517973921972167213479466474843349650454060727704747442048916085041137430615572609313397847110728213765578209212225970150771387320791839685922689938291919788634561754459867818531262108487960376551719142227446744022174653260461881730415336636281514644428784441105201705499047743154797834828379840363831556523394366255335439000490816137515365195029015070979652301106707300250971683740284710860815670229790202322550849612080769053399739963808735941433839272795463983647606400341863863846925419234110645900317992502286297936264312150465244043816751174842778575129590236666193773877894803132153461855110064578914584511467242845918235957573995094005777452179137436296686898801776077657750369859416314335127290271163013619712633826099949187113640670707660765662878213398319340894662614213968747170727363645026902616152921474914226074518516412893455832626666045011179547973202371049788930377324428051882686598288053630664700651699241665687233838909536897245507293823121050973154538628441614663216622759921464717455055213803678601170436885071362623502925434317393905199631539848438663591737872298036141609034175854342076246039508063620497692541882675116840954783667979287411313128789897755132443285194864019668830877650604953381167884274660211642681087257927641251821813440461938048177257374786307732632434727417903849517268807674744518791663848460970008209935156260171164446804282252303995532227159720165723154562909786525085761233414923114783857953464846903233895964906596677651585497959585998104364530352353480050080702016634641638614947848137157633507003065584354803062728172565457563624068163179200678322953546748864252349456882095058812458799156782452977916122691747340541142188794245177525526055715779202242119209678427753905417152706610088828866263382109478596774826050792247076221933289147645171146319543257713593610289073715425286153391859986183950183144273308409086123848943026911732663381926395560684536085399491111508846990017465702099450902189433155383866045362374690049224545562527511735108963945696140144530525532158198373752787959811357881899360724629142952273948851219853717690935277245618030574441497194213531556039834417121254493456486609486221791467645611378839856484363268686838323466606095678836621452102854585428207298716136250530805225300938891908730605765405586781118125307333312486339394729378913735067683284570515375290344832212051542194202987805654855112663639574770474172258442990240927197649873298187380442814550317320750740516232269670830817480922632224267221486726896854359435318349171465288921764516250146792566153194880890637515930479166801481052029832018870184166275157703628319868872238595092377228875345269258009136266987525605072156371456428550204297109044800223346481692437361879756528710450677886038039726723702500774819798402889384751671838398759824367293400831266009276193219003827430346586059039874492890459930444164333636445833172332674340074815051319675528913310239787562042447789785899029808659222113018486677237836327157538020833706280824229993853483476252711980585188868408328007261717299911418879557658518845268730755258084874165534016065962198079491647079711574399074442324908012922511348464972822513357850836075598731105264479388402229884759215947054380003191714424204866341922328089647230012376768033657680578562470821715913829416798663169225175345365548604766750686612694487183631333977502725192079829091418555680858136724691920837434421943281107216736316583132803908319891020720101914164673108152455962993340060431901980488648670613449576505417256948751470630604352294767252839318188297474536180011969398539168074962699720070029164429944393895827295401062519780796547179828854975260584962535792901441221767704161532473782866156340245252475879549219058743935648519359757987161260174230142267567404092473597775233673195534070964838016295758856175897670280860521949020511539778943859654164909130753331315814234769060138060914963198434260120059531836752516524651954850249579201111877305142250835555233081144590155761379440307372318195451677516020037086447747831743516739085508954190244456484652315507361946541652396588365109769289683096619482700731380610640054982337412305565175222834290849592944267337214967497805796560947377224653620213043219180474379166657817580938445003270281450337615331485107433584318429512757868080505641478550178202213605427858130892231251362409949666758259435061324243193971422114432565906862473216412440598412853832191256019367661470198924461047396706181630395794240027152815001935459274172322090717829289245800354742223217861421044877071006805898456693225462650073884364370762546349665643158300385667891171857240749113422995051752474018537304680004850200930180278547630132642704641574109139392505395267567646477738031228567179664510066431574987873624355882042939758653977279632928168142013176973954276239131470122372419730598816354342927555745643737683795218829014728164259365209613402842439349013929492399610964975578740238066240341206863384020526343567532346859556531880672160290631718854699387538135478020340137584203675393392502745247806114801137291173421282641848841450687806362947781528954129112739106981139854022945791172793051658697175979407127720915501801825237693401094031446645315722749274599317199363718747871566438234436540010796174976340715689080013189553678108116183888213164487170501837885014566354941311514117169644884018233245777851812866075271006244456389277214947543648019358801944226741622529649736181834032328538222381053913273557024220114403973446604609452082191824328112688252406062121923401627038060067408496925374338053788946049795252473239666387996820983130237075260235189906490409362578036091812266838472054187929103802062383716308370964498364481109692718807004898966574822204204975211501317969380800998520513719618933108533768613293297244391491587534384050664145273239764691139969658391954016119783834155693865391013190771814220290715565570068326068001855631704185573949089148432515705252405764071257039885415094280625166592220785718947460597890393775403051132285134794921934281913622451269478245682298836257890973543521340884345182419770008969271473784695806483236908935690971689800689992548770538391846101166704630996558345081653823444766380311029164977674458822411458186715966066752374187548323220916813205331004917442646445989213504655714219664931401267039589623585866304956653575465672689430270651963623209018921535071924771587824029170131939721463084625762433151020053056914459404004571734984014102745112570961564777227346580417599129458590767589721019753799310246615546864694626012544824246395836273970559895146206438045129197848649702707446303612887889824878695887260143077298970421802003415176402021981622560624603889268118650692337945827383183391338954005960380079429896023772616880263784309368700970275623398572145632947158524265670850275657984732423817233580689758459141717108887692643323639876062413971091831698470095185130813574854480065999474781111740604196918144081922802468945482075829648432716960137726642505457836304951625835320508977925632061839651132058197185034328717591251984722394430843528360004710016755738137608339670409631047605832512989800716324487784586539184471527329617035266521715050907324840348726003613381923233175470697731301295076398987955967113362913225077205634290940228518834645302738481850458022958245048402990843528997645399555287562398956069441107989194176239272809786006681122867479742178181642436717606298344096743726487415362823329035587337348363331354983315188996290722123983253925322302311953516316180959349606642885880328252021656630947240724555874522062664985351118185779729515843565066162956096461962726710262296524773432064631816418668904153412585918696028646032215197119440783659058715569891923418520743058235646320215081614193599477391114770637655693654144682352700620189178243041202780403129392786107478641747976267644745696925282602449524229226780153079136720078998569995522078599728102351853093551603904252597749442570585147381263033141805598018637029482744730040198283119379394861193944990048618789688414718022009923022833292184562789228485734972363629733226237121704819721123592719101896584174179413090754652263166403922344113932521837842797296445821777047235778261484206662306586151020225869607978725529678390422790210020618545314435550090412009057078776739356560310752345340739795853324494052015003218100972430321094066302877423090520855647334222336539096866237927904646555885876120767256341227945353076336836394573487310077714669528986843773721107079283882271674585144607720924359189976452455576153959193333170995768217958048832385303316823501073328245921331593408583900853924838574232107398869043871504062341878125882780830294202247283237699544028814733198562605977259471235033992207081905031250272465568664073841095603070383029477511910882881377470015358336998713021040331911126981472611596734598252102795025158938124795107552915657555472479617794370203730913232073816417824210006788894452287570450093245558771920140023611421421667316247820811409065576084058310645164262832937120437835394670990777379203312247843923842246235153104465177707868731850739972144270937606387636645627025222390515006657950938088997115389886870490554712173393747547532428222006355432232837813555530695249663549646828931539533403875987444639804693640855623807480203140579423083993198848051914958442871692388032828695068267292285900186748278788290313393931406661402166296427478304570280517861509812700901686191121905334678476406492651554944708194930379455126495984412835461158934658717008537786639541301137068743586310021643833548718018576767333837231182988902068196057038742208117773836150620259930629156372665970561314580709132510819603649469748756685693012074209369462964047907099228642255606377335790187108282567664179528701230401918646946053198612764964252457906854004408162720951491607639144022432589611532215649882802373071521347648129813723593928334586774300433885697868349396919271738197864104541657898607695233925019357277404183481560306993597943297690329916283834648099613517620551504918704970664075344106179021517703402857644973494840064544369458797745125485139365357235876380231007710762891814463546296439985568595355718759072385151184292261150668236148372686736043797872020245882970785414079892825141687333223454388718136439316130539681945694394776586321026462313564718167481379181249452667707375912576852612394011549710585178459025574268228483268857232864695277929425486293747526334275310566841969806974516656051900113386362902587362257578737783592661945258971268566051028391363169407493443185955369025609844536798326049304226654911660294739736609617297771530002756476692540582085136206673847079685839657333357104251632166391537227481469372276478735525245629208072308834714696447440077861840957724896945694198884089119603028333962279734617953488176771575474904816024868160980567317942521918221604873882337502825192282595568309876810159311823787942750877688690681740766668041237226811798235033422247042971648212872958969693150551341732167407482530569660586373790398026577405730759306294717315277287737130945759242792022459250248020707572117840684276066790644633688451298626813582778717887632782980024177062468894693437945837818532634184894556674151075091122676939389895045756152541323942842186158973713503177340641770418115830814561334373229990541960571414242596832676567689689726527578664540151396409365584832556393653109010177258082376378776955737241398600717784332403622885590063166020264970984434970479080386409639909330628477296373258985571535150113724220044494995852731017405529060323789706015191243243711914532045172194285959692080753738640482754539801131206107691018249540186939839692820806488163924435385218849652663204445556501790674335986657737960660344337317638712323655783225168688305113638673089815393237301218793008435476548803577787845626940332159817206389511525302127959478307283427117818693645952801153390987793579053108940579275274677956305845313432858962566609549076846488664144634299690147367757907385484892393752874755410662818683952056718719073850609484727628632959176688941505448742144783206026226929062238521912504914513155195503324658059403729886203465188165232822180754899717672677053893013258201350125198775033096799052039116872006971064544409354345721121813371949135713140584831767813514947593258396374312963536595643736466883695064197125271360401874271126315119833087131738464198369148442867392477197241225727487353719694634683194346448988394167539548370204755182391660245358163490972068585691434161156314525000033044937545216207273845220646570277869084039212155928848971677474135906153503200895239969798648435132117380236995150995937315209197940478739552333112747428449552179353018892644710685685528306509341399655508383264546160215741377679764837211026153951208977815943831198159600115273849418651703165946642545604201046060822665824077021028185850298312627710971029369729969594547366236925236975175175205078947752369818603460473303333637867558631646802749852442828809402099005666807934175555283959964011008304117985927996495833119689930695319388549415098556601701141595836836398099800307248887573686775640244943713221968396804808972280510820473428235853788980646839563935278935712538754716143070373698990830282627657330671541862674952369842201170452092937497238777218368391637659181184122683313778754636374688299896336271600628014178101741501887866119732893338779981871061587589166149683264887247962434606513817745098538108341133904621128416878333901267265898940330069648277971601095301380548559359935770302985363164460625697681647379617334843051849881846382425755319439584095992184536002935039362309598358584459560303070464940013421456287658159867177496144369982025676873612739438210528812901134225924029014148916194769835452553095688124138096789779359822612973079026564894751805612914147938533448241207870969106798821426175394865764752980758470317736470536162001153937809965866783777891450074946165013605352235579926019077285992012726093889240106621883050382285224238499921314966910142900921075870907759805896251980002039799135817985189015014953056838958148492416538374291300049116429080433161903270179072744907903759360910976542910078791234330309089402077144756046978073931503487997860411886170989615872932510044539663095199531026122945026054251577634547399930857474752725100748764584158492586630371001669027814213648613876950496776435653417412634763651073361035670265332444336266934007320605854880340922398609803537109477721171041015790672722817033996585309588676401450646428991261800402182393753516881101956232985018737880354811265569333542959689668773935503955954006551474275433633311071889521525339960755277814147036188152848549803585283026300662849532134163636050662995350010482517114437943252900880646585618566333993379917496232549297631898395971289649190281981071946298351691101374269085962565343743749485229450547338678853858109216021751099411062334524890481229819428940581800089152616579810559079643076859323113708752868425236133624626838891973714297816997531322178529395727097633321554857219762570045712102122069718482672909825259962379961849771830536400986200016630919298811774905788568826131219641226458490188150817654212485030649330110848223078878360503996228069119750630794650460900921771939130585148179959442539442549559956671697751852775908717518431146130741435515580282630471979705832451553584440265314442879323564264855717113914953050670454692190873436757603174296833251745827256031518056669864829761208318240896911749361425110667590733840755074252573474153715818796597229955468562125368586266843256773404530258589186235476315850162838992373937456519781697174619371033268910788837591065386782286324863761770657994458120676855252589128758888680620549067042013273619541618253356976673197461369127136079803737080357797469774993599050921423354272489136884079329997453032839254380845659460631702585175004423529207907352352646072195815490057553967033387345427854275276606084663114308938058240321537557793375388696348150814172903264772474353605439606971649430213967708230102190864790123292654659401176158959532482094282458309980689300754719760833477015904661796137584803810914869030453738018115712279892766947657654855102903087280539237428357366022302414712373328863508919007998386286495040668504636980996359834092011422288629838110792252265782314437746632523877461738064454305500157630201277897147915301464410180946366136724515179611428688949212655687220950403244697439081961844222873809138077047818833057898007992936899254559933042399141556577051361052911638264323378384957943046553690743947461482349044116372057594791244156748325659220007221322832985338165574270906577779519902003059182688117978886047099671504000245745475545432489082236558020427967242201969068160213426329206419949224615652488892179689718002600043404169138663920077994720488221966338628659058974156939214660215958423807234723675164636077833755997861623923424258510296760089923402965347962969358235960879344945269998915330759668699897670463658096564992492343877715191179314839561613506414767574285548492696448905587529650006001663977820040651024126838675828948519697796074651460404804729389979313823045531069283529308801398408023846512716506709391870437127082429961209970187646538540611758154786419631598365437384099435237807473169857498541749231371293900444095267851815074408138685159963003913029533515109721195066197033827301873784010094178745492795366394086218180389293029295701366503108566299691021550524133295206973720028677156211572101595456829155403177280217736412473668616767882252264746796285152656346929053831160874243134946820400170644716845249631492910121335698168482828648543333245916754525510928000912024793794720300034190964332301580614406119424146918663062414317458242649790123452959418889281949496077508222002084760951319580347409818039151034621490123591238200695500334648720273421471802554121993111659741070717795047293063218367771428243077596804034598497158602938445917841229927624183880961938797309089444719866804451070878553979832129138651865255038725947430996693306579984126231586121857877580873251840739996486125301380303447643558124955573011830313342922730953190738017823744323277440981773590193664855950539922625317304514623256049870328150358388275687030969138322739971378486612450724730090443759046169820366574681193132972951553901961845190044872717749999368356213920580041917123792388903815754737177858167694520987235558729876243287438060116788389260108845323384115499404172925438492344992396427557216412751067650191640539648561438745640619333614870765841729830006138135259661560994708251417453109918908597362146172418174698419478705377094612838968684103954265767723327021709191328213265579653144714299876396604702479885891643269359887974547363595918972654000307677419252597071434372344329060821665843252513434800774088185119380317900150285430363274640982195501866652424072778703096322850842056167671493024561680931603476768212261381732370556204467109931593298401287589584561972317151301040770144884590568082261031889955128855503746688147694677962820509341524509110836938313393741134432606469015851638945063455767320327796712129379475273788576040651642039237032440140316943407733384094756518818726488634078149339165189879371487184654090248863933646833423161763955608823918370467407426999059945586903475202814633859688208559860825333514146760385487340369016120686928910598634456972998669140230833901159612809737588414825116949846487340910225172678874015351780203731727000319348463101564717330294164283458657517919005913402455706834953484013924885604371520514630680258050937888392857399866118845454042061937392438349361993187077819834224353027260159899068018519376831159851692983421534750264630783131233855957412011834779671674721262752512105408271967053063065693627431918758105601540647356991325222429162600036003731821353905987164992208115394514891911710269129572444839720067581605569979242766708730318479358710622321695774624108897360855598706001727075447731551178024751425692722624362203947038519341197406693906376531940833441792884923503995086808330027026268801148745610354173356390554100409885242118001645851182863471892981244080230782733269623368460913788139466932222436042599380073503033737860493180863671057659969856715689233193051951531140305765801544725321827937152390977347396792063756681509892578574307290229350906921534945171832201178949831685873213518774885515945914198209592455491818188387861884695468811590247788375183459261655406846809060480305367644451748037919347357264750710349963762071522894725082476923120915740354663485241352429414883110302194280180209626067215204590556604708067381858300330895793006016974309347480020447676057444311897643199194486757722286589848630538858813671556317648255550202602030429436798675610713237393505098929896137639628021881770562736786832753859425497220856795831110854179133541194479505408626853703851918937450673499448341925553062026285665557626738106436976400672084052456621304127795297811488859200201063697997147036083765797241004962963047418616507756685525254498816267356469600613406593414198970774007427468889694880264446344191056665067015604317042097015289115159505995249187971758416325080652453262705434819925247593645463141269040464988372882608166685950999833774468395204252307168261414745684136052852437455157978657606966722699347197282530313628755593298629398899623055089219691344866045068448349452532475880449527472454265872222543836951498617220010228777658478999617231586354267401622250385397574113830536591885101183795496483832577984866403366593292874615560755359562451865174370248406750658037284324711329185765587326515918061166977686834796653553419675157508747274094876974545154877541988234176344732095992583184349081662341820658066121830500541642610212456424480858890130399439974418863992928281274808450821537460142766163292961368306485822831640740259971523423065778613709111756094604921606798963331628175489383607105923005419392192163661063516857562655649498878418724256056442410537752894927056366902515817953955021848160214092339527853823008968669316616681208964459821867432640334656418930015732468639008713164537971275206273291370095521698639040576508431983709506005816289094787945241461717139093948681017380934829797675641883793853766629651204073104507433199200976008734300227652519460969701993428327059175837704696202688057798887841345434907233506575023736169621046832752722966109509298964565276025846855653326199435850041938780889262620920058064644472097893900530222522955869988200300810241670992658424139541434807757412230264279904173824762130366736906483233095228400051699106963919704521462354544542298604406491974991132676972808875420628188291839019834559456439620628397606827625978476200792933832589544119976436750285325707246898006396100022230724940559122719490943759865560936748765293734668307723960056823720748610634494977361796606041414625193777540681221672508760024901225840624836867193339413046200828906010897833393448358414271500505094158521277908698198573208338466898107302014385232836804383658167333162212157973898382307505124069802283225414143127349638532594148176026873034057219612219240008302909480482005302927922814477722954224834944218078255978691623735328882506545281529107412317861654345600354245239856976990075123635620359953392748415577731441084476989243919866406419974622198660085714048650487008214961647418470461913386009608315816344283818049036627502896907442653445157536285028890453780721586231800768259654022772648845521574127856788748228275082476815503069287835780126131658057829016518856453228797772954884038907866294244108889189470824243522418361094528227682424161318222096256202664372507834191260825687036194585083023227143644942757288753652457027605118797744768980824576913063195352861243877028314417662727170343897423551255233148639134735828347077854655645505624589978613634848066605280250517950541298600296096608598196864843298306251365799633521499950281096696464391596994351095064066845150656686315538369557194601182970283723917168123542478384173387654792839737695674355776821152662432241493904009948186803141293683952800512151056427354195650211842727507086863392732014499430975571273994999483109765563562933960520994077453320667275491811944245099704368535865091439621457198213566127116042314512888876550220092961427958077753483265577542296943964232000707681872851876934732502531121241354419647138717644364222316489330466371836331261297345273332720839366226012472604146001356400024841383208550871047524069375596176257241793818186003084951387583450452612906067300384346142434573972243276531750546487599531756773272094653980210584506234321091064399748958194321409952402452290766829558179141016732043319185002783850367801420360220279710044716313368809951364716941232892288359765771343401443317884836730278618468921306765648609579924568292343584262142656736663219440704296239403199269159091501034846715909760076611487307948401836902644206849685413332475794032736373822911174407313392257528417341757193433546918097909680654581004092940709732085279831203985334900534379736118467891670468337460034149602302931356421256316015574484794735016031597053649869911335707496210995117311096248805357685962940915836493989299594377105168370391772103942116293216208418329930305072032633704045388846185545387703568409883728090541353815337642240028860123631501079165776968779267084588534070277832292293219854345279724684082488695791251736959614931194057250339277377677694816015685094963591910560653301242167834883305545110730065290333318321758283395052844913595406639786492567836476401373016637293692633421210441345429793891218251964359165531884418020578772136334941945303337982589406956808544992796768515838592114367938342177210998548878644700158553578240677949562202802882150711867489920608887880521138259178586564959375249159900653148509114075450465221017354332409937862945439645613827513807989629387092966372393216292139065933012539006915651626267165455682217091807719690005696094434236644180435365017549233721635011224058804035539103859833093178150573791979068794674720419108262110585311212153314644739523542792737689967502424724566143846402006063482285975208408727086076687628006316688844999113938049550506233939459594590676905633157325386869441380169654981953839690432723278798983268989271138291298041349664312509717352871250604649207017357817482242144839576720510021942687236185554832278595071784173540196205169229368566395047490592612313012718893345817968074259751954108196871507074421981775054138110449686565506990280145649837976325884595599928048822076965008774541038741365921403383623396987678051949966400424775196537887338692802578349843453081037738942055138091494074337337944893058464004604011743113302101219945303497958502683404020679708278535660144712708193609576024630566295866740480101928057926301302282038939466694259461403312830152934479683908528883983227149180111828778624038744260977713977215226446975560650308275628046532079190975689423220969241657815457230762617709337825686227147020934904944584440091208834555861465244682663171545461148429529465125871577261716361410997855124125729911736493156804453289588687366087887082016579611049587812798809147293224842442051544147867941860696084884842244631803065096887683062599252646029184425942483799399713241238465104179464844399198831658704348416765410390736277484032436911062518042859347775076452622979159310898138285656539111200726305985862096508468061109767657844934835954205676602074125218734751220839051418206881764818955969917742680954011078846492328037882627871818377188713360307540376294089998656139669698604098155461357982567051118773023937316603919758338032907461813316445982224553534137414341738494646679276659130558053137109834408097410347436591168789004308684894478602595604320364158103969249210667070175699508830475481372964485466502862518429249016530366478613944255835769818219647802495584720916712884174519300208157344851774914891296059427385117570469780180373830574502551904807251031018618418716857403419631669921342291518506998905255636738975731226705856923033338981469806320773237050626007338332406260768377742384779904097132613915444619764512460885060755872136651254329595738863228741350159479327058825947462125141785052342203881012107260541823703460759796710742845764472750191445539349911517824180859172988237634932837531562232276712556639013150622446990010450191633593000652835545323363102698133262274495148042372015063165875307410990872370766979467588167210021513848509065980148263530641112807220988457703987843523821170346599633842032902283270224341103110685785975668500988245387976992850555588185301062527361931298355820560079860010147133746095918542010511709977520795444635519412833893554826772197960204249269152948678793062715273166054092528377342311058306385900276040823819424096690711208425985574127702497652821521543584234546767281891316970353637505411777798501820498090888860374623543998348937176257023474036244253355054802623345738479458638714549306879777575687711045309164174271040344378341254939618935128121723864610017940529457913530152442771210701277514133399139164404806176355311386692487044751736406189166020787112030747358332841901720408771310987119007817912690651451374164818886021401691379984015803700117722859199430564194841077953351910393178575331997193051091051172422827172617983899749290261535265829953551235690332306491462435060297319840619291745435452150888052500899704113300611587201913234918113791483734653090764012554729755740009258823663269035306413208646172138362736559459901669875204559707172171950610490336778117270096837077385040903106524984557033994753013027562486336299899027223819336859169003968793032393661262322253905693627275549521616481601319077511928851297289359795223167105602128606671836414385893223971189890042361964213702015962629364687873661181608771627659183914479825859024969161980415007327920101470759562768897467230275433894562252675691095198557172923737266570285142770691899432233476344876840332144540553299453777339102811506143496831435128576393741407255330627633930293654791748057762977152767363242197194161780301128856277988483887127303395767179791240589353930824841362162862861313111687979866385801795400097163744449878781340584031344272944045475853193906864939298042688744807140848912773770227715058936621673318725509302902492991486799865672476804514620479660090618595986259345170834046332085632213234684640164206674347744375100437610034026981273021076601700873600016267403866332200591773047986944119082632003404535363080615292030596763022147098769725189378899612329345374064121525403798737216787198089696476108689406269453098556994064648709267071711097203347206085758562128775551488131029993427725872712176407038111102038748830559944430096733882816147574462492071955117125446129708609532300726362883758305017198434185632218110426066057436841951528671592567155316331975812822335009598375440407180194193315938398158465692225331732153645947296137203720642712902692018072210690741653982794350441112306833762070967442426970126498218533382324420188972870687399803196682748988597945986757337637243476893579279048774880131450896150693861148872565547391878771208752268773348776462325518198002610918547201529997085014381046502397992766606806100594489526142126969317797496234900178769133180533173930545822018848924165976577559499988870727743010639351963056546329657347413176061819879863959158541612256626345663566720183030600122282800933181035170630677693027402135721553071941810175853492648822421374736658073677751970070964464159941080953975722546134040925316412473271358396370720184728524018288165707906035782167868948393989969214296998084162246169163256823296233983057101419356792398507457744474103251088274039584840480908869289391804905338628236942416735750106168357065000619951924914455155982377907662953581373721822901957243854044170341920682007257870966917702156034255577396340350882612320544651773292417791549319540902125205660819632244498076215442030458520952798490048362666399841365235788958534537848289263701184813772719318915965196348638722886284613991583509994052886426848072987697888526519491152006387864635814182368003930990016282882982503382605452874200736813215189375813316662469214458695593535626749407811659075516096125956640097038465657165193999112932059263775409385471643273229785606020942699273679888941068795922014550293548190274125614020640111658893160520320376297967608420712812269523058930902532991446222794024989633623095064641271145546419924327483996153491410465482977843116396268817571835439151176293881855921438930632292764327096270228534038093916649576377661430225617081707337796108098232351729879697850440928963961385895530497001117797020669956744041076026645090626474890951387306470220580081986924208883905023894071268121390787877748724907719921283625842736944800046219942208802994740097119029880686184386556804435092007273279166001610886628748614632043325179120421750505068423284757088089523061823965875028924096882717403088815055357675346099774980199607576118975037635433403169246493605701746200385952004743239647133454914589302874737514945889959098065893226000431222996925442970471982882953427416774404140624778282762836278045398292751496128965073656172007853174454709926133613589027742442126237831252111647295020342704173274840426765902475600815899589466780707085931861440835722089575250027964181833827170880052330100529139594906801641880345644251297846602921288643446190136797980315405638317047976232261679396594223493748143052457288734510654629221486022038598916686887870810675033045723489394878639173909172331555615471837789809604825252809930996421714502182478138619196453026500294620533131377432257855779040368003424949632797173761343201258867814854510955904925962810173490116166057969220953668443033729754008191943994337052911340959999002053040630674628587657586007165088469398760500281262771710593370504932325971550487756188254378581947379235164969883700256938442353793949378115108182123781220816903774850844997695141373261442613611295730508739684837614171893916433928953708018293640976006919429881084673743863203505175186486791342911627657696871516797205851919279792116513665007515666844758734058295580718887578729816242949053324251713588273429877306746961695427805635053044807343816799968326226812960586644906228785931616283886058308493216052667467725573806935656273585239613883233333223500582185284096999830461378625227640835333085446731704911917381071627412873358134055676040074315450180063232948927156265384422120608963563819560110713270823777117299522224670992412924496330143778887608507063935050770137804743727532271998629509228450085884634947887501901563397831723669727335574248331484305068128098912348043364824093765352508657380888483475593375462594291899530248446250028431055989969362514116005267051423124111194097952805541080744539994024060420246525952224035687436628284377767323941259252270783895176294389670627962493391223766873709201293722439279181616570559926850888900002320322924955989995952808234623868790385846553598831854220992107701786773909582453744930704538954510860475787965998224695212877630556716806761227291216144855958177653816603894189449268523619248532450464247913170621076172466575142752192592803733441413505888897414016602401529107603298372536777358377120537901000807338542555266998319907507040320666448415143621125047872157527379443798298454256551879917344054507312467460027107857774343223639287832818552762950464948102110436314443720100018079995563032529869581770268356627575524424415153814040215517934985919328639068140928909247063045137996534961831964762312456783502129637356927909441021522791718731088056194160944663526774442639125031558564470202251295033436404369978282070410935568963329274429607528545246314141521911061557863351408029324162441250306507240927171277065310579798059064374689644838699520518521411531246544785531788523335708409875951036216403284461961502956676769286394908500881701195446710306635184812108800771883398178929354684457092884130550511147939152852153144541669794981770019668764984846275430717416777974832957348660869575011448301150147783269495937735691636132034565308063190560830591509422350327748827871002270109214278527255801956948505906013444209452339546035589736438703040474866581401542615483640373666931426792687243941805330699747083810236953768655320275818087131346895773316229328752842513280211929335178886168573623088258477589032263155038445258905226686894032695975033966277121477108466969854950502354887964702119872941300564221547751973580287944818331861088148034561613326689528408635505559089430504932860669376500924537851288203800327846442094558398588880851101143396853901996591749536214678231484698022991508544315141665956937576170962371488428540555732076050684292404105031454496921013909464233216051761572566314208301981666881389131007702215993831848836702674641828653548064366683261140523324148688711615837118155420583476228770522884427858428217850850480264804444906651004460923024155001663311472435232697580634716496742154878008562674672899927509594033143742235125316833117561579995454584232372681210132832186666535112535141706407984876621979516916381662860731924922664330704170565968501318238488002090265155642268963545857098001566366260009191079253838837782007871788626323703144478973932022680028497129056931952712743410261200432463312903346521632234411542261671329153557074721641791874265469289151354876359522666088875847239237900370745273059910549110434929904113141164793740708540602845941434742110819068985256137438378129015728743415166469339477573167000159285728120539225231067130013242833325271271138689578937772963199586195245295005718031094970121920898204987200215568527334196662064339705031641900838589134690164892631687893806682125638248591617664442227076225447092519807496260559731063169556390132708174273331601152511976981227498498912431252996578059343554106548801258635723045902162087069864577507994337669236638453003399834016126531982171510633797038311697204085602840913840828348168608352248093561996989462802864914698153097214858868649603551554620444120049165137542649688540139114435572070362342936295616370766351705252522636257362121085502484850804120014344445902631449728779279926138134331139552376386179470962620717860316010769446485345455938373455324948859148385835931466598145914458662783120106762240000707249222197524343664493197842806158874757768103893245450419857394801604667475409897104923412685994898674420035754513321522270767255475557966508003218717023388090555673613370885061719399547379476352930755112466775555933197806647168105522568228684662679484369345628413679055287218857529450791265740185877441279414136336271532667461773300003754148811898972419248785618963091216553941178108633786365887670548471743081092477771648689065516926083749690225738763852387996531623978234345450582880264875793996105675369668863074133188768221845285063169274445025839298689789890268956535143621219032284452653746991449897939049041332956652398205202814476443374371536843080036354661141337370817001967885518717893302941229125971345592260338911778021137544843748596882647685988000740362892689051878744682037498530679703281318709854535866335225084216687341802441971880024121970706254739452312256171925695586228152372586000652518367071173415101197873503133845593624663037864898473909101245763182616583858056657983491545522809372907809887929966122318579587884246228421136180188479134809614816074722193866844387324694881076530344061907179153577630415848844414077162360729904274156352544064352495488041348421226760350878020821497033502267869701984916390641997380219421918367589240234655272801661871218642556861848537288964708419034617222178396887650756321740817717666261652599169920495150097041063376890890635608483207709135638870687513638280319601035051118842278600863395485197657873451144063347236606019407155550911501982291952130643443253463969061231442641690062735352170581249848197568372162548461321494163947955466046030691178030906888470741434230128181366485282718941082570149199267579868475232111445281946523160596200581076016194695978475303914306313699272531153919462906587082887667513570522958503174462398414045687754191270551060901812770085974493173502029494467896525904085649026291049482687622066374069218432372766698787635868709188090503140863124659519200581705586197138853840155957155296400769511050453240378971590353497964982160160433740592858765778112290211697281313483734531622883274085551439363707985088189610665561800472487599396592928443212543839676194178690600121653983268013873929400514249672773979598244554805315364855223705730208219557134225652058689946293529714762254465820100131776589778390743761568561134243635786863677596117619293677231594125728455267440610664639516646978268156070122924252468090607236837662164414558943163342036840177587903031729295058711499603780250384504767095505255164677532680750923716988621828031760596723095631872869430476259635733829540721280594902814109709566720683405965865040652515599134490370104421729962287666298060461966550920434488553056381510139162466886070603456657893383189287230057427070173564774282162729158332126219541751853619206930400939858997620683044020136111277824703966750859329886232734231843240129203226372237807757131748277376334187623500990696800610810217662935978665040445271343336462051072701431419696295245680399286945611174373315619482363291416823605394068841896906337512715033948337677040754208560692537673922769164292550345333298116958197174829519447551721725336524311707872084751981521723228888850048072377655473365846212591710176391633523380239902402995372851077536707330607781073884824403695206871040527356772300523030689737698705994294222504048242872045569202806678851663483586801777222682845967975204043993695709214605042387041760617925001426164871335579254754461409736824160441900802705712749518312198751199903402401736517191752345452881011640036533774215579648000663825735739583898724748771645810954954995468460391141338765328543053178833164478698815929938150279437669268068256394629365930498317479467363183117124187530989270996859166558546083671183005389912903261997141830390613400855841326575461936940706414451166525005447879188598309351239191673926842265464595695542417271691890340115470064423043030372706379282820521855338164233147078812026378476235146224126846404904145090848287359952502328185716153701189122015328020207892280265066747394688147589533239456728030989442691571929555728260962478153487269733900534185783969494446026431985088491298590422350150103115724301735803079109483627373336590622483057725668663788982379785559932356344880275103710756806880389627164173748556316893049964533184732134084022557185543200647386570302482213778489667709654670212995899883319491592514119867625195947087058740920737052706970250763080167117798008106171161108896684322978772964006218482859799635047076759798500232663723658111456024697083441388062053307791855168312340653579392143654508526976893463578345954475301641354342734841169022422414287872922717775835821276025254772029982752217968967906358572266631545175560015524055338499640353978377674474277786682483064291665333576233865813848065295815886532603102243387966920238378573202348253199340175792771370005201294767679029113086795372281531999710182775409952442034530302460774955889072364636703696635993191008840558410133172419263496063059007163391736668528550173357153425995741379496737868609618495271601578855839831207441275383047392804040631075931958474927308019385649736581788248459001824841519820163397696335492779914261542329708831176540496283493667747177641329865432352673908898631362749595253597488983946647741810631341840602538244831050178993508599959562902037525992011164306348583051441961702419682368364337173055114096341928588481576343640542886980148437999866930226190599495576184358309429561987799985845470253308209776530899969755090675083620912769395818077952882480723277438483528750130427554023229174245098318603984486944777197846835390230320999915654965651344935537708411543508210794394798209427817479869514568695424532173802979713948943127906548924513607504516239681308420821260600425839454751153131639685679278518993221316643622774103944567185027048834559445999446134901215465420430455817677676660959110638571643666878273226922413692133926857087084459563952247858242716029116812299202390430177501904258796986948350351644872681946923701646788436738882377621063947985443611681192625538591566954866335500533971930420529928103548159977847675600620076238640725042828614718921385503352325736114264477581467554268703209690875829663202805153306499080788870626297474998176026994713551407116730022964955279498289772096184073910548284998972294574879049090873756205471989224990188262462269009104135995557336630201085433875360099001736197381647735026672847297677022566320862765564654518234708788978843867445291753341313266495316741981272463385513316306774803474108458613121031172136575178122717898673939463077235656217487074513953040190498089567961881349279161454453726847676615244968336898156973303182143793328026739863243596901566244220868312628450002179523423659845293211790537640939992843465327351813903923845830078150243241436452485068967839114078270182972695528612788644564889193103263187700971438196185742316725100214489433735643095445773956588078019653628472458265705737968169104508510855726079027389873450512007623519745042699651644769797656154928382381232647591625591340038021775460808991211132940967280755971362866738664561137721058628886667941578312450137878382970711696896216297989870086035111017874919421036268835837999883050603275383326113862491856982075567807847553584909079423247659901794753932513159145149215419240769477659851024562420043432657179766712694501173481140398455293769945297910182786164981464634001448402915891897239776724815682415823885310563355395543318999498219102230322747441635846062898636558726337659356756121073428035907631550855283904234329113679076803205837816993127528596941749355603604786327760526628376054134763582383706480006300003129486286061072626843812724681194030407711701448103803006481019505802467988332794473822058609623323431692320277330114890874752898916106114012396346236083070333574462930749137337041070448082341640186525389005973808036474117607450650214630472448069235599239963794610371569303079125174621340038718837757979072009196098311642094993001358374042809546748470237685997723209977576078933791382364024987572482925325655850151356559859905557688438359561361212316159989456980611555443154987619839574127931222129394518862239668444095114005939130727034265775936222932588942755441863104911370504829379693921130002741171650245296519679518035810694868713162633055532188016579808018159887569373726876325416710425305271045882620607011342457297913978600241510532342412350986912068510380825824996477627690485328116860417046374949195916826193584788247899033049743737594760400606683986943578177748566074521067054427862384536932359222740670000033438066576399069724537182504855244091651224528173165638097604120277367271309870136582791838034432322459462416018314257345726546073424630966014011049308047525232367276049911153751775419404941889722676288165346362186497785943286879602479838425665579846652867733007209164320346245428916446576839462425799921007662884972712119249554585760974495063223246628520794154406978696393325660267103999338818812206436564741888252131051471345000998659417183653129965329404791878976919516192810043176922134963422634148819697403249364335656843669310048954006823834102944645035660342395014916920796529494064711862579247768934336279444053947296870074427129977862641832811179335793381475115313533806773793277040437521084587859294094396942530730343997323569253067771361153542260516002815787433199828321708746605241146390334197690122063727191220023650026429429301286266274166906941397934726472041838198499206539743833123184107747611710802715333651745545028281987075763274086543165773284124728458190045301840972338064893383757927619102882378856576826285499837160392527022630465520005861091674295480114241841419468633116321629731594294198950433050080110320777908414261933687493412955199008941692291502715447302850911009708414155581640459594335464597803642306621221844619667922329253527313308697084716482023255026467466633633326260010133972891275678137629334265601390050942426089326291579489828794459972080993399042760063214787628526726705052222547986719749041899088209237860714728052849922584905813876378262797859425435918188991548361022207611337115223125249646921478450213937483559559714528924645088403878945915867685408773994453559036563743644012344038239622678697630365023716945360078955277768920405729830417613615412856966519074220903631569669470439316679999834656799837266736828449254831664130327318538504068316918289605585533177776420964565318726407414793910821261572508548968811461763563129018533117392810989805825374784483785008216107440385226456748056157602784932567055152359181417541981839448884901510783447015836033483814483294182691107925665178682757895530301768438799674953524038675196413400470273634335216352972482098641053955611799435532469072095853798930060845171053590230804761407373958666967604013787902245839213010541385981157886919864078879410188017655160411335369068734251235401044161363058643628492767294554682035914254737643513043175091485123310215357462535916046522925476565173542551444582603988772406768324731459749745991662121523118176431347203291828152579320167141613017334995165056631307757339782790110809731741418639474178929963396310661627025448695236940035258641519874547413068476149549510006611259136684106157245919143802335679653256428007223343508855395320612366316148971730937407661505087812976790979479436005336721568349446851206543169565771615511867536347418998840082477845448144892455715903072047816706081185155780400584193257578732449489136579973862171431698550496143636251070707712041663412456097991778612102219969072588464296755272347746101548885161083717097307468290038155055549946980980690617854422707730104634598164263358769668725982683815789343845038838939603609787525938855138999132985858524951383142528480503086019599081657952442363935688385978555916558580611345845916787690650365904352880108488437375415150432325371028915467366989818937213931577755205174261175070124823485120323351115086764203380180827845669541095976949875054276767334810062695270882293826102871466444680436926153000144492588363110526344778363342944236707975419258211358671540285268436164975707214229873307196026603292134426396859534074391553014606296937851342060672386032296687728936145200428597162153706225780086673255236140439944644915824319717653451900586891376407896538682043571605559309069372467129302171263361688444336047425460543198894973472616255460706475087253263118443673262764119100561446796995924162811408864917989541071342017693213678843810656827201465774098470881957209421028655238573903194965225957306435898533860510887364856260671436513358381466969189771655731158502546124096132555715769751285330696126190454213654447765909515000910805811046536545558654536298214733839308724639464017049500613328896933668734457891360791481391353097912428608176762645684477364801463898869261071673302602557635128108130646401645562701934962741090722860001188097592098522389870776674203053519590881161245170318967799578035679262384970702248261064886732992217220885628482425558776866569460777465964748398376753522930209659680721113219883235509901793125817870353345257688175726710293465496889826866266749083589479733435226620794056175592583925271463422639313337293708862943830134450585228906381079861169504864390889230701521332789976237979605627925872092949712874246633215531370171423000724307731799254015134477035046348361588899033893057632691518778358208816675304964634368711475572674937487221935447592517258150938436958895977397964434145186079987214166236124244306402944959879232794590368445350217768289097998989101978836058560180489887724361422905325578425006794768118970433723655902112740094493312695119446106355346508192982832415596846557314372052700297973251712627516310411795295400126774349435691062018191422328961780654365272419700177532645581683793562373255777448632115637676168379474885369013962760955172199229689758131901202711386944873583644347325798823137930492448429495988678138108079716343148845340236533236045880825418328549729120198148414400123978542223743033158873514783598930174118663642499023570947986549976946581506264556614240267925503156916877131235073839012624832080890803049884904533972784866342669958620650735067100647585422335859904096543394146330326521144491316346586447434097594922959007756206024259269822588964946619403970907363398343893236556411712919196622602335109626982833681579658590769682777556669870337335570057056675501450620498024644502210174509747272940461912726317589346001198574564440242020224438822375246228951620229665189449140763128251316602277490216680568433337812744856288563830301572038568466426099038356267138993430853089722857681086461651783294004152297815793596229442787097594764189137695285984728543303810495575101130503829987286291377720863288283160642729492813809623004008978770150107734717122423717801294393754979750200373229601449348500030956535898448138510238059304479271564048370903716093191159187387542215057378057637334363073810229839054850617850313441338106931003360839695217702073524139978916489960247459231674356266330192651247429285724869378852221495773312244420570246316460985552873574126077504675856250499473180047731701776570584815013912338842513322591779338844593982585322029704749897271499429663665676771623622048837357709424677245440339009067587615651944746705031533363805740381907606307918733682317369293465663764127324798499235474239803828043156985201090355092684993425678700627228252890946238571085092718503943445907318615235000400646566556387337086116402727682601668907664646924638999184660767881853017629872110868757104052489257143628651575937425469688845602703973863995938775408545524743042261771302149475736232135992853206768136340542133906060349145210919476052539339108100992800427985329681396393143585542599120719783175132575389226393382442806579065833929159105465093882215885555368177037336757219254263272388610152527182082356232876792657431809325965760223041433603249513599425313847916580882742793987285990144193655628343436897473934914953049963405088927333631631482001635875553916935811366948268338494102914030059594947827325591266379488333768863041255611000410414235992629713567431482912953020233816131307638804234826503461106409338294995405893728983588736728092848674524548416458232593694828712957152682163365077319939766986301332972108821071201657247102823935095426187709059879970936470996280228986678484442287558074248780702811043050286642831050995396437850334832710433783755350522889146487578125790699005470328997950769320065360447783796301841566215903315748081544883773579410613606563920210741577424926924583747612521806101198235402075756988095179161361318077690274759247252595985576313099169074332019295273973404387073767652790500259122231322359788139500701151439285063739827228460387207417904463548133642006250373912514645133629621898915835335596592584590877451360804774923838625775008420153705566631537617667696376899055430395836813657311427714512639865068663688237514403753305234835327156984863198652710461610165131043285916662663750111012749150807792160508404512303484147910118072793267282630580862970509430015015061999290616683408799192291765247732634611573111636637207372471030723134239743449158295761513529181519833402805181077113984728718053298901357304568737208913213169849597291344309714935066681787492606866208739219631677317778743947173746935205684614058909633292467725537848991988904742128600949381109979940305785295438265635868374641410339898076553584549960158023393227711582270641708901894896395942514544520643719549432976390406615194493958123275952097731993487398763614135342888989300686640499929718056946704628588114058733973436585834190986355138688267216870700795262295036100445938036895641580750195145242948513984253337518480081396488804885177879877026546785220059086510461684198080617150399751382370477080569222632529139145680231710144671251120243023271814250298685113449324772936551354687349872166355642130348399722748313965731539675885415577626199016286942873026275611896117483055949051494366703476408178297884840566583460349391710948939147583904375738201456253335853262320378421839176766165893872176964841370357119171192593871555056585379927682702744751164382118539460081661954529974217738020569117725366870678632212880791668247785935503684423076225175145832812277133090577493412796523856504237116806047870570167052948445353576749417789692943109239443645738053008264050788956092465433088682112953983806683764552418787161408357429455332784402705546120499889646935596423884241649979765058455895098012447807569828023992814409731492201819691820651350160642271002932063545796143275833531083945811667746212701284847134326862642246732820441486983656757879876410102554723753052917613472833685564532477333751471219325076012651873421752086903643349272480046240597876393876123387333841544889181007268051685845667158207842671142502089236578350216655562896318136772483464659983928300440120861773168251865455334456473478376800354677116130596614809398828165837307601411693639434460812217058044827473430194533848849210063065115221613009603465381606830184374878461872932377555926923965597918439553253381598132348140722877378906251209951420807362703958645838008828952066269898940268178336822408661418844883520434554988084574450818828268869580786320039917978492673705255394055413703839230891590403884403909652684461919510599842453495385583321372195532018193888917085653774467437380153649901420428767378484403297963007915178760679169867271084795061999324000994036549461335386767522056100647715660635546929428964605628083913000838049862933234809185912255121136382102962187273461483429680478619694992707302448518990486700444842268558938338303899178453381005898698127512327279811335812520194576472319164150588673760334542588236803765529583090263601360956277171806873184192967996077876014959161570410479479926383376120125027149994719855276295387045459767449753435313236889823083276931188194348559499092652509643487137183985404801349501714681200329805519569022832414320935602739350233969406159218244703507348687257665853833164878653318596294695030633128632277108347487295505529155865344000920687446783750368168862590476140424978709098574050872443499059606024998412311006276677244946166218261025454703167449010407276176350816707411329686184484822608744109264068016764377239411882387411819783696370455207008621760929639106711256242687882930888605082603287009831330502674381230447002882835086864821989054797354397959493726750295546954254342602855702405162662040570613339890741738425563426038474167584286008293085990657423674637769651586827803638798306683596562882937554180019237331023086258658519152496838993215377297703210196074531549314143706760763713316999505249551484080233341736852293935976818687919056795742824098372216428293618341290383261517842037482894817655147824454297961668700243976804512466445890092035890888736237304792706812343445688996848177823971490808280419434225453831907138784343379242001113486956420624795709972910661953465186222832580920489520852862345843935675881388097404133846971228762222009659496131506126191770971063298337808180450433451226528566497650910381245440864697937085364114343586137929161599153239603085860739995005319378335528586546590040380493783463152938868229038161391016323551627147459957821098762117126219039631835480128353787238448211664581625391807443252088492189896399385252968649545782925989046930656193717470442586398029441739800301266483096152956968918400955053429281101739692141060972376281181409217112724177069466874436110598505812232402109138410821944315850465552094769196730950986486266936304412142093314667703521578322762047792283726444259944582024264593721655300249178254553950953585128268880076525918557692236031717230961995627803456737597296036370978573197495169450198939492333499801566916206433441188353654274615537961979273275222411053067458318207645264352327978708037933229509871299483305539751007225619623081088446262729139599538315463899694874737622640606467605967059771921161826929358414348803567092421935529497228506905635254629528543219315680529397666177796698723034754234204184759391139999122018487781124726662261354042987913845568343302969418563508097616614348795734482732794671505260751727148772785363262142689776032447598320906180177753830472950302115620241264517945974228810230576770626203851912910495829518974363556334556483523979325110477153970227823744037038827719195956110734296681615053989351574858609144130268323438393644216108554581238708773147528864144963523103371472385694302468413627657162569511517823714277451797689459254395524683786939670081659797352347776256663198486221667972733269292297140186020519810892458494504013225335049099699396587152352411815130932221135376142218684399885104492180941962196586096719892104325037072392145482304900882825343365631491460915257889209685560216138253558609274959452302481040683503625287413398664937460643395042519116896978476988711652588955365933176326414412325399736391943002660529149007273787903881397693065213017728230916227311647352883183849434829686552393070439477783933773230542220705054260933419104464586256560137514080125897564644850928632018452434333151057339360124112009330967417578677457184633638248607239640568116234260569020734545470757973389253878222115717917179883801247395519618441454584421313493515647008514081899333316539708117340815999819719028371787411217863660574291296475617110740634629625035544092329034579160888218970612640904205759875444040429147179047026410060101383976429958331782013818249282125018296449857348215071266838138035292458572220721009170616242534364097923260720329881192359562292558443526757910936270132321586354511830233197093243228050921320500536746872728697028446155489790524072032724389103888693712756670745411200909030523205790731835556737528505399502312529827853681064124488799570671266823173369052913614616863055676937867243568553332082898790356350556729460488622733977455804455771370152889940306764824422019628899258168263793706887498278438231009998571613409813245744260685686279310769128369497450382573192406251204329091263770246987103380617206827959237295721043072916389235328672548615737830212835951377299354181099051010384875364496633107391412076645844246541606536426920959273275185525330457919560234967547873338048866283919911121112935800053607742563063630181040122108038473417521048501812836534854654342297932582965543676553424456369090300082396642914492182455174158896908746643165197695649608156962764579532555144394604495687581557921814451277764307831187291497625099090354249016629799125574706749511880053950314071623603097979488744888359621054458301293967518869534373468687931872141074150270228883385316590826609782037852403753278869384549084685931719572015264901151868584366657259034662182126370075073986087236767448549985883225422874390108941973506788132110573728278076690822518470546219440142714548877435931026912406858914903330630165908999021563541539073432008244689695081577443941496239523697065931962915883531039635238425359561722229076501462143218437542044045635374335787994718567908146207831224140325832547627118487341974149560818893165313352131807601671768077936769759826600697130387011656116268959183876067523209300446587075638079813833686107640404883371081941660268354960569781176059535757193182103392152821745430843149374921038838484971740454968644695687865690397464089978985465240154605129403647938818397483337798590076112633172355600038946106178367679571631707652292181061097434301137015373343366944917786104025345745074628744349088700535701496500782353387570626957535545668659560421694188573026172856601204490650276916981984136405678783877143832593271218678100558241938534317587125731366417177417139207270274911967195158569465244472924401998524142487444841937584123997234254521685267114914873310337639604978183178880801879950335351181393079759229283098726704618984355518939171121081036034294237810535399970093145777916778693192041095686185047457739532422848085991672036098334012407216982595187217127289328985395312292804279540624546704474552674260320320328445441488757761728560091804927790007008596689079025433068915356185649281768933089415401200796539691757019430357133167534226806836010644471278202125895970626931885467054074558076378008825156586473594740280319833828747861348762107369790556315022744877743394007539564953292679248307394312940063200721318777080390125109355187366638402438323214753225487745245881427187034993007979023989109253105848567459893269345551985321621464998748135220294456734540247368514792240071112219757348091629413577230522349024943910295667149236898271541856338032418404884560594304175978956126806490414797142503052268750513674551974863481475828557401688699461907390269877335673000732464267758923020412328235482029040739167270765128018544292632597436699976663116256522951548536972886535773142555059214209250753655746929282373964654237557394890088040802588889099339147545512104043773776586534387027896357700309776501598106277463357802564457276861863307719763232594115915148101302763891274467501948630315867039072098269761713510927149311753714687736985584448699550704800749878413658565025436103253840047429718565983009940460950570449616147207034067962119891137538165011001785997860714839034473859216910181338967183040591192087596113961455690692349116551474444952688586981354768216908386004774416555894159620466580246674028250400306726828585966218805866172756947183582888814173369094557981939218010852550976331098076392374711454017417200955191949573742626540834655421260738568910945460921151657890662920474465910428528199415218116065260855276608633309862267017019754226838467389530744245227383884660713447281901175237919518647724667067291007780126429566644228643376989370339623627654471323225459521460185592253533443614881196069387951911369020943609897699910845098074135461679645582275941048615996346360095412361794671354253242945453709228201759471878990041284535749627323482182224172400594279438695872205212957468268759108104299656007296664422548394322978199208601684377193296701128296863613199052072586449861150411555343967701425788782220396081950266510382894205957764417394062553677429079899131340193349840204109789960081584155915868343061641083901054835288531610767064360050713705451259710082534966054732455798355505907362907248386833666874340235755336761677907885302709443024915807968379014028284258340294600735464048163026932394364567844787896350026798643208144748302626470735724977109158461158443204749444629246252886786562491372937400129448057650409104376249957891895605376167648372178337583048129541550958137825322331183467685807319680348593341442641192472690160291668245469023203395400687019083060716360301691575456403486149459592450071384750298954682350214182253597358603997178953165184615571860460375624415318038442942001615473345411418198194351375567799341026444992493704628431651841971014152374766297623478634326930719276811136317843486845219230776434652175100421622574808330627181112669484553453239958478856621799304598101383589022895016036539912287013955016942000841057195650040665653782546089157890958487621871780021351625716774038438562413072484358288491169111497359797283950302639844844253064182241878059296251384585020276389954391788066731462425929881331827038322857261248736649339439268717941017608610374251821435070634584563552914891778129655807676994781173698929784078936221050399057879038095759008604248331943569842754487164101530293767430896830555685610817683929941097285245959891785048703380919220336381704883332138860131010130011532886022081396745849681692728459670347595929834626925716039481955414528000079423044200734015357448024366214420666146941108375550655472415455624696125818260371704798941338038590362475753877947949989663695944434226349465620647424248662411940718318783604589791561548284417159900628178685860585001455532723451966241015165639818723342132482195170732552354739162485727954426289814044429582224600247884651692470099414249511448660416900919378594536184857172857552152366245655259423608541678684352231860412618308755129021799261830693974643100775858829953113224059198849248135475528807343150846100960830964404703489013926238291185922824070462671952594305033383067675460357115644265853266593458552892271251905356519807545989036508209708494758316082784715925350296208758508147285110470628905733061932033929315252782341223238386585717738796631534082992831875721223527261050902396497517884947071199586890214437776595234895415548840493502709584593667500485648440135284040604373547075520808973282673397198918190650867327982379998348377645756571420819389252538519374288494632928757630783344339918458582837006721558390331161718000610218998640311393341206132302312261918096242926911230724106471761687813076048538524891300416379397994293486683466279946026261915506863119412796827061188236885201465606350903428591024632589996152438633769108108706681096366594169445597167833808859003978495163669357472929501375937031679605986413189902112288946422503266777929598447651237083189875617892355263346030523718840152884882169122245842440927340280668205565694237024252308232832190798934723932212303190064085081962393534089568484212364241215502178064240556777702808061809263047588113658330528903479281961872878924290569213030093161471872363699635988250844867451325178429220423488906342577001171084787623643324012344652501758507955394319605355182017044179665166128228855260597574982956034371419276662037556430605531503855600228210865385684315196094930906290717264694450758640335089317719122837777353877668226900386168916301201591644795988186125936223225769303364288257741778535715853975360915847918819177586119449832832315799652599759143603665222247710842579403579516343093203054932713642159709034602801622484828889625189202560841500257175130838071755579919065406524971189036417759869819517926878921462742969728280698558402992863698215398235648260047962014038574064118537699455702335641865502834803239282113819989093674399211610032286199978973764403284707252738030291118190163804475512982358694826959193392531457554859380333849637855100375110421500797930784087954512385427269916270073775258408636902838803989100627436183285266458607610545001581155562957574625119329154945561068356118205129065422760184934645115286120861904647053187218973789082372894244306336353630622132658750200256812592295492903591864234332878696453313103519840974018629150510134771605872460316760972973814665171706646529181317115895796480156379497482755538880822213793853862824464224571155719626555936765363104398581588929879777435669021060698065178976732088788947377329133113977551763935368163153873465640432042108615371112584382351617575017058639792834159150557397305450243714971991025344967204353596808460444201508089531776823231029665182041744296713218372925182935500236404977936204869024333792800430945754842540287287193621793474187599082322433633990700840600054023451889999401841140063309303330939030647632743580812697186925840801845238990064048255783239434575469525473721960708991525909779474588011040825058952463461068972790520201227435186812623007464098584552718034400068207189236128294020792939344127526691269349132518925270828687734805069576553088451951416889479663770030341003711764521750309362809992097052654966291377790473432770114998999635451295955628454240671037551512960378860065931108300620859809503428196803657319656411055170808413839239551847964079104131836532377692279992609927226180968624490322111590123954807239573180269780919247497172196499704088184222519577049559026009975280367118131448521195244380844335179802569153021437406892271482191389984145750630969459715152579499232589068110763586403088152879127001429688187630022199010809886279281601149750767848993353629790418153165616300131688892045591307983622328257675961250763923964288688234803048778298578427080039011973417590705661581952310654771202585641711501329830579130370322079012371350440192294721686520109079281404392347988493000464885567383220819451462020719232081701143101705696734881957797784240257017882759001983719600406658786412025107419307384382700020227235764794769083342820634438457411743132778018551805778601663802373988466983423237163133013501534062949040966254411420919058250464716308196108153213706578131071568685751632982946585698214791967486352900394102359610789750794645047906459472686423736974302700462076704804498848962659636514947224630463958662773061360062731410633527049717365919607112706400600103867268060720471948145442953392069055365838090049446186021755887284771722675704918253543504434262483086579777111895557812888137857119429627416178426939127914395695383596216966857731503587826536896726800821259854067498853314994278720000474153693352315750668585807616268221408071266291313590344866049536103972373477092652744954963305579947264959273506335482261824959010561307435775522584598815183654230562134025160210617620275703089624263919184121136685630669086617737060888470795035517529817332038706048885982246098345796625280361754602955675983861095530356946570942938615224269793219602172185758436043377373913598060032390994982270068931809710823984593054162415475375582526852749235380091968367617811827941327758520365108860090889713158839520619031961067114946673681089933784694812610667409081056839845233918020936554706122503252772483504941965797052679816205698913793486376074544874882399439802640777936172122092341279232141932968520925187858919441534732473744480314497768991540543330936118709764182517171993095340556318266602382776118520988832686331218235504853508144004895378071333255033193133191632151118509585460288689671590924385209719872743619895938097372490338484990222215668864675989770275075781892798043554845558672386523491135038819002402487999342859205515689950274420834528661322468613242562897580495412166009875936750732385493277036721484748751045975889496590120612632047775889632381285636240403960417832533271241120685345259937549803843909016528838566616029040135831215710497257999792103694371315629479549168817502219221174528936324895350488091143398211350257746792564688724046880409967718700619566147263573525399357526356371842289621722190631271649205546185551181730452548009771061693446990289492081207208679642989082540555499926575981651235028694446289850715837582257720878658973950918312774785319509756463578547739548184818320131814855798613366190819741016758256871869732075006366755700515559168900819296742241922984843649200629128385823111897224068682524966086386795155924300639271209990702804229292915201928123140977405291088819775720376297138437965839176888738415526657368512948213604369454800206623515438116953429169791235862343082833428349889427914010047269066176975312101230798009484398833365850378379356042972960228001315859103892200041515545300238304816705321850376772661181133740089639106221996729475195006410123483061775234029762779284894888568887227746186098248398654203942468089170137271179074803966600967981165628085613181671718387410524483173755725789915352772780300601665629281603911451368452715425286044419231187209639889797093630987067822175440550800427685901106062493830110557851939341522608015621440882465799803245426089966204863762123689437278742351294787256861499875234331221584922325726382675427274498969102377046112489644089376164437102514368891840317979314687096873381273192137750376964567022543561562273516584792877861157492765889300737948561674469043076599336505063431493606271554066662027850079795647072983260517551458110987980296954509994180692903326955686726613725928303272675353371035496498500547302245424004864931252483455871165150994403762081382498624075621478621871287536846108048870924591723833037382917938429831721585073225738640198573709865532170461205899729904877813767132501802749652304024251225063198576666677626146325855950016998650945540861658897334914480743343451718638197275433299930183068523132147688492118230003503677270643796552556847892462456080785177586429329411319908989993809648775351192689218852015160912553941759841327957573564357392352997024360632218096352049335095723814385997458152350004784256874817033928861990380537324365073737203560883897847169819892150079322645609830118992170869300838063121705156442768416400168149628784260030670432035229808872942052865144201244055766213836643054740174279044779603922535257079976035314420891659892972355543075208296554588271755919003464281956853797203469252966108763735342220314648242706153211965738195087331006321818135042225873093745101149537080650117904846018075534794893681349008875089855125905902545725573779031719246251944520787647824427190866097040010371838843684765611945778604893518034106260501432652655274090471095906031494001948505390272023694983668343573518350192588356779365289957259169670193896729291586892194810123759902627889704358456512130989760766347097950129226140291790720020408641816649491933633750260899371651955542965735309937350233502213093591559588892474452330953011551057405837965009837160723646678170573828249676373295798089609921684841243561422104835737051009362166072558733576843665988446188844623840866145720571591588774771121237545323395737137230788999457161233511877412082581838765021460963595479666216080473088802437933383186777488175040658218612381759983015503244235384522293652244240868022781018274993229594127447270092441479021778411346899941588147285574974976812265960677833256298636806451334745366920401198577859540568955699033119747880711736080141642184397434484333960625495174183635672246355025664475825990901531159707072994215391109247256053523101447957504328585293842384715844653955929233103959799843653044069704229561248295279894084171013494046794748686045889169560878289820241182419189293752961521740126374161206930996553118573230724187678761570937223954900343736130996959526828586564188603037787399881776608511829309434382365788429551209961004829234029217565455749574160886715295356782694295794071119440616545114526261591874675955326449707349738229520789952518696203229638562963319388316537513708421714671287119949373800221803699831644458285420178923072408823038810547686716269661382718591418440642045166544668030281425239251612882741195261321788291031813452235585261256041318918843909375143402596395125269989940206777503514330576004682207983747637637091415198646837136721459609983301744551138053574184060471367900137778000324263083691594228681722376256174807946941082688234727373367361991714815626590055215891034578612307896573564569633220518152064654172616970132954424866155433319392814369414822498624156337879272194641857471897411348433949315441307271517066982286043354664672705793238792772770987140978436446772259756351608450236576767094971472585634505422281739910516053628508496519096645849035718725633885147277205992640607374945364246122867731769436602549621563162371383935915301992581620169909212771949688018126250661853395874077300787848221281119286354497770756894367267676721235729459149131820779530662996158587828442551477551831677614417101284771384538704646616689477051426068613928478785888342370033838643340396882094119882084477373708146332403064108313021433238680633718156458135362194443062517137356886832169333433413094590278814401091122003043122689619322565437808620510120095811184061726786230077528320214461820776631905581265322166574495653871832970362340150606513968455407700039475376678343408780446377400586397023904066074819419135673810601645654994440697379507063299429385718401130850648062254400226702176424518328233487248862269936798860936538204455785802616977562268576802649974461218019319919377147399737945407601199906629417841951844207326883194337914727769176054539661787762245658882746147963304831090756457844169960460588383494268016056715984425786567474894263863828900788392020683459970418282472947408925488951966748780289392359866170501350229068263779043500814554502230998394678869383452669553218497650278913974394952187281223227697579084424697493308880086095292249394098604969732380495678526493687196115379048922646045202431113726938110882545791005890072501503077583532742593640130702129135509794787342404045707764078678035021720191300697792582417603229122203115299477122776489204848830110025675329387503565846982997683259159685724215888192927714390645692714392955458768096722229463274259926791892570476621409970547318063260642807222908105279852361883648669895770066992066858481666427501492351787939036092018381956660863707941736865818090173340063665738508726963956161326871296101152680612123092145111280944442546201651308940904336629872450158815482736095747281031996778760353022374748216846731080828226125292592560916404440689596428839644446546389238950280817943047947957809223223435216568683451062667281240314493373801201042057498201216568446266850540026932640371090736225332295014130681683028729486597441589650127046146054356496591504489240413277728825767454290672092899925523711904214049418411329117525320554276132949110442942565920986410338594332263139929068102112931959570706944388803893091364518855278812998268465796142357708963857498593107552082203850775887605655539240508990698573011816519914087594610282018369020720571230618846512198869134076732954751029568958144708556993870406952981080690359419680213648635935687202629468871595094680786538558816696037741242143746268437375989711089937718659825095327849047499962292556831872448654005524252751070827625049217143362373903723443241167823961572009983230773405032949859239665644307895757712267558542622979039683144029896666666328156369211639656466017827569038443990523824996157428060144720495167878915238194409372332315761203434680006142918579061733263722884641650722548789886793338051833189843020231344537517313057235146698266785284541768079187882145902614749829364990434814234255382507769677374775251510315454960353960237901538008845390889401589555719401356034375592890319518495407110338204050532799796201330426116101336346677265389819310866916736133699208266105501102288926022587018845867508702247547576549419173558032364211348857363142924059855670022037129800534262327540062618588716082107013511767488769232250692389407441584611785634840527389264253274877708961877346147188876877028674389265702853049145594261127218981306950351183299552033908814588320525413725230107773209363919838030636712279400698395923049839221238479145346724125988103753841500494978379274421480436127841454788908292756953985707868539523608358015898680729716412583781135135215290265610466971985771670789967573537608687884184677116213843012825738739288315737625227944008193076613413859329417214967068419818810423745138834917840797513602727975489802804958711956902731291599081364712079364531421948373342362122688934783706747793049332317239033003631644320992495678965438020509481362357234514140171297363946745780033025627954583680517719806069931314059930443272053439619901436072511681231274453800237892527313304835788981308046128789472052316106218055789238220167655713836786992269083173172443261616825090969166214430370935572376800266859167035983590683287179707276695561502421788220974586941054584820759955326457537627155183402037547307814718421593557583277018121902526682006518039021679659894006119963712988740104326937323921476027049309871120466638293656175927061265537045327023581419474120129157130533901634554847855058862859995681142641845475506153584316238680097172888839394190392272890446867995325537911981037970118695313592173789794542370906027159057882097071095800165315115636465333873594528641960053479275749250089196508867178588369005149499107322959156265139335212208138010593373572824134393070573818106347264499380964633285998325786467149472790585207052609610146477694982967209935693103940111658051048758261989394951332587441991639306786094469144257357098080006753777560609180969465810455136671966383134209829844526880994340075223046609858454792408136509278191199472271619752508546228559992186206806526937974438603426546217311497405863066979983550550670910884566208573451181688542800892457061497465691202202173387281783563515336369743342221145619990136382454681079911941827518854119602575663734522448835469318884013366434308557462709709558176297010288000832931215000880523115647480224921073586274615930642287037011412272019864388962517493274238082721278160771945652997716027832437180861172637511991084402437792669714070362497009445649376667152251802944682378173853581716673414442308785726400273558368061234427827060861788603914493760810596006932770764982767776945247833344481996675802542236699034766731754946879960094551480483880522258176240031718215097420461321038534282501417289464503825671476807490996352166636392441825456028704550689896267489792051149292023733320384008871778215918717922793298897236174717213860947282264733233648055235333145537694334868369572789313632283637480309444713987106561156497354604619648021593650415317149421958208321660279456449737849769852403976997356315384511187818716615177180432047613343644588636162837923801912482127508462537216490904859765022955614851768524052292452530730593223349119834776417611880879868848705953661426020982914089803582351914882885467794999098756702836298850004721795535667133520495314095518523372951570534995133158515351161892540670063278519893046665993742971034707497573567480068989298060482621572884157946427999263593040853335656471286071442900790884913128330334480056096074771816528568641969058361775050219691580056057855714818846930877024122588929050610337078485317077142929487287497424458017460602632989524823854617675537681480618765438622807050690632572062420956667423270012383244552576972295179439247411326343849134985665946786105076260720997477108510041496456431486035869938615587910916628843097135861803461865989206983523339286784533592026286395257232300492357402282404826996589057244694858048195343574661335819449810465843215023342057983028463668666972673873927855560128618980822845503821330610804026573634343509625990049337214996464895707539897082907526509346531162871165009322415014779990796954967732285580163124705143401553807213936651100537538826014230018026428626567583882412419137122658357241619205494935591682311221457032473267462192373401202177545499474104578569257157410348143979171538682631094504955541750130711358960434548296378796085295746972773076863437607728063890492770029611304961576947005373606910290230349847940099070775612974029530433810150321761184593181793615828858463896379483895349752797346691562635943632877627912874481527118191608537791709616832826730375393926402760560618368210744900904140490910257376023732810428653185335359817965138692812882170230634373590776919843167239963296764670743597347761748985020919427747833653337073968363043061652573458267664122706708814169100032330211931120137349293178583283126747028914547834980129129712621870400513430369716549241011297886860467519856094002822180795863344830997217896684488347936008407534254653521850251636578699972305535643591479250493502888839155805119769814161530961604510578739527136979963635555800256317693294522388894648146777252337796720327332846817366766012392399042761096037142530297642114606548825008718414427734194461617180447802662099100487309957316032639275005725179864380485337989348722806195598378419112268991249043489492945498359575781085801349694886032104689046565938793675815823792354810880901652201365670827846186930976340148462884428155132906498186687334619021882408449035388256715188364399132179673988147825723660573862795428410309359448947563647647576121154695353376357022844250243834199779736316554153123298792909265528056407042926610560745803310797379736967804445274723995404425117333945494981444801937637132124052012129199634197643823739429503724980306785346197213940777017850343317429985471081830501141162134751233759451347370300377136722512377081128806160662140398062974006553937950732832442747252054845535999533769439246417293046619526168873693948806916138125033053678152972081720178868698105500542362017628806023664843158618540414508880840120493113902767789467830968518244019687474733585021280840274922115282646006817711765963686992804104113857141189240149639902577810037033571848722797009840375662720581598762974843314740933446928001259913137773026266032084494756942805396242481267502976261015577621659255258588020001646711239645935927342589893279290853005016327792563671414728492766830414040723191198981855021671008711887482434101220115107253884494901697582827188489784012734599350978312487468364989108057042566347658307946350169644982744667096224081466153555488370679400932522250221171771512983018087203086785254107816943875188802944788672608133559110646655918884615202402625028721595441277858921999782805219902839602512065750985038584747518370907321389984555203556601309624907841331663154277820797150037667381498950693769167093760897819431114489382926370389372763809588236732239493333687061281793728091752652360132659560155672748358276182213832953972104052413974574810503735110089614177294144607479479182776218479252723697396819356583749041297035668901181799237675938273029611989474323749452764220899788294587791632698050308683024821809841259893855366025542203918345263408542184099738765915804408911914006316694797290875717371782019985017280759244053339604815926708806864693919629210755948621563147873919330694133905253725613286851412509185348388256650026288484066557908182915953486936811778281928895437857356558030496971752217262330691376273256974349221014080435378835532189072649248663593484086240408596713976726264853087663014469769476726353037255166577129035191900083167081807836138934771058332503249822270945538731134999898326403239378955574676406555043067921669903391028957737757234866524269794070137360027380690734659081192231661699567114579145400707947769499234504074374060273085020880220187548095434152795229039611586039606978706760333679724211028397869830069810101421600683352293892469073947674646206046994702722591125602393989528131471572275992650353690487860461355707328039981783691414092312576003778011576754428544995726342561981292547058508037696840749560973444457855798895778251858475058030784064958937120585411137806394520938369871497218260340175783041967782268403055245749398653578017446663302124841604219733916608812186825894532752045165232984019304048311792999940930613765883506905410530925951965712172838508299470389949579904817377151794442643962612895024914352199118572821858505268900985372527395999398028087709374587484912168130427516015170245317010220550145740234738305116223040469369541377673654850448780919984804013000233795174892835173989000563465481591714219139501159472404905225655903221399173131599819820605984887767228966610272341013381186896904729008922001797457287880156286074975152954155907729198210788679625567365779113718891155070596193708917003197449399037749181716261888389945759919128376427313130830608367042452267829552398741037323856726313302228269494031414297565048049296099854965753232756304461754878813973956675527442356939965050334151839423668605212593895457531920186471023924683639024688978368572624336282065849715426653621563663499629502880043035536274920061785551783841113586804167257521638364989960133180068666129675915651079345662096936769684730552196086600419454838633326671442008435732966396772847926361852625930247006222949004396284823071769480282441487037820355521996740024296759263930810482914069205742535689720788500811699346822016947564209087659737748757884027060389341238795035156284876528329122768516926683378700678717340586866300518039597614280966642936453268244285655479796830145429578762729550937980938552468433964228928407195217467979434838900385939827519848809475120715343442548167112708357363301890938167367848934651612810625992160150158965901809544972764600484981792784029080858382359647473629470605893357947322295019265899812436876208415122569961410240227643390421333924033566463309454331979041121780864239759476759686322001109373376884706469584170812728579732261318410716890074903272015303112215739831127096139173372881876523029657614783309158336523786207679647131664518885592552576166491451748455115739571955798586813677939437177716783299169410790195321286260214317515010152022450999389106026565966175846759379512248072692701176493575747828900043927849997893922686853680003949373414687891629693304679150151275493889028093281606234008960722127935972193505666526858734596935897932236749461155608415739949878240684078197939474205687735035256323206913114827292616621519349464662663190133923859095474979589034975890941742827447907782254217070736998780159136165426071099724960153369364109655590353900260851289529558822720775914493449395724658084543041141468177531189629565707671382005149067926979368256912497299720373687250692519548874767825845359080574134063400218120179304381343942892020154824662843316377047958147407680132070954351376058965066907594429954636558470142006145732846099482095529318159809387229908350087451336065250177154181943498215283804322382876709454055324270449814550834508717330159763290453552390889032521829403193815396767454329866301563689088496918991918121859004072266258494815494639231964686600576459730370080573272511997430287931270938699059716698979358633447774882906281907420694503479131578777968899840900926717328344456293418190086409626149789557903645537130062688555923123627136129146981691803534873885800009808940191862837054296067725550732994899926628358525289106343359217979448820732890577585544903870155770687231435476398728905924749076874629648137992721601731806239655977696061313434319763256768295230549957094146226222692707365756765602896505712913663851136807449461811123666334994393471442852586738270577963676496789962930014309151245161999078277351131016283026258183014544929183712564572286415247500313905166641531160644579133864523561898898068513781431237315347962239188408392762067024985228861614945760478615305847360611291483553622318772436385967192198463957311341131324745183739077801539592911840001911450948943597597106529336905547731924805121243952156507151780061841820882843735122498639882941195283534662862147887787094810478201494421217753918736802102089063411574517025410818499776886602324496954431324944808476345220496824321120610457342675785915795905732229102122937040297674659033983202361710358620602566965715628311503708989735230106608767611376926327898584471617512030758059520966924984954122072405051082188748300137532238889620074274893915115898733013673578688805719634142099258677762131333635122045276889643891848945363123399927592126403439108212458606137860585451476886215003454466725075979400067950009448323343672406206374422428404478348726041651505038763330102006837865965636461606841393799106060471755535504881027786059861103553154880386626980452572649179665222807140257800366159659586161494685538061414446489274580168297507534080169081284611489466901834191370230998414244363479432257983743332934817838704723816073973074038465868779787268563226830011534754633651455995742018493934211480014415230109357339591990684077269747845259774704547498094691944576902532028858759255889560474219252197229593864449943585945642687401751543282252622839377151726367041809521552700601582044087527498408831529114720708586949466509726610644897718524129912033068724978102369309070424946008524268748087277992416495764095338418688951594635457812451684053561243724932471855839044789161739169967251660629914128589496293049444210330651481089882482911512903289821994868483231998115505831208971160023665704529641011977341872324227110361349286988544832502550886088955524146715343526286163670319068399285612544967293903338404161883787662461153962762120009729887166577968806466625238126454557968651518724587467744512092577171674956633755887251025462327878756152646345895538930591001281778591519807402875381408022467650116712668231267462197270467418148571690375958252378032549219948592873377483716458289505677408926220258910423490783112979538268707193875266374877059378995440087130359133731112087230642720085956415641114596103237904702751537101146645673019867272539138442276124428353643992509863667213823870427660394273403357706745770411215080870621471546044413550170659731493582753496382229304763159709222281752464390129218074053563244270395453339650011669484491257542990183642607871310169368123886810697347435451671290541209638685968367392570547661402467058796343823606327870749020230214854253432585583609626714017487251049068215707005731258339129464132835356658596103375850843124630779390486491070161838771743454495995282981011798088486788954256237529581000908363037717658917186480795582597464676616058203954765596509650558370020146123831497443508850310648018491316726451589078774543777170357637278967672633003352632408142828301020086400408003573702777931294338732817680929171754359459227177318288774639746887324565424704448674274665058833393424870903622281118544010833717625115448989254828001716614591197732312647044061529070154904185053207048309189700140581125010257438230345987622958886538656298329773017843725502329638732792185620082045447186693695553493039195895265734464255215862403974158277463336879771803059478478443657928982804804158203691501361814761478719978575196807353090652946690951202331919394351872264400747966825619457236649582963903346884561498713664538285586959781994073668528340011178713922026078476274454798284644374228042258374360091017926696403294415936353993217002756176714044851855877321955933671279234825755102292823233313314553139013582011600599044516926401869155911146116031539805071686724696483340945341717475301407844576369371151446123233892269894943609215833292363186907431614979943269461382107334760844198018461802438256717450601430669197482144810966549329503483542354419357551253019842220142761176400248801479039466419294412366485909405095738271547396631935094324268886258448506154330657803331843513415357352688387829297550999567085880191833210792627070056482013578873319275343479792580088991257166384216119176791660244422034226566041168128395852004877788491993106937514564819082447104068859170736416915929029771275724412676592018409876419549773445882900493653145240407534446037639831216535006840069843284316016471760261251984805125154430624064784038846280698140910983693793872304876957190605645322014078889209156974398249654647568917131706847280933584967565036821997954686147663995777645643413888533638109453132917195301216006953486787385886336367512487948136718549498998041230616974510169515789579814289933021793934061845513385873862750857961818046010792135014530725796802906608125848432478018528549920165811244172121892523568961197736811764448217206039084804074008977379408582261993453657187222966286813718645569824891791233758994916208312045254758750408419121147363045268966046307827542999188195501761482034870849346107840008446574138395593105549945211006610323326049046944791229524544647887419199542474393769902979085770389182115087451783291624030432579445643617272490794390513315923032095297320659650993401108714014722561260244532388442092465318819290828709449480494491241909067636962971197507824791479960938391043528457805026861128778351472303509172924199092646113913617091817094799446396832465593883442263594646299107364259488169496096751704463701227420284429394020549248194182324524180488018564602099597396787476861790097744853763577628783262945310259272596640180862061151694101939309146919166781984835651283713003335859903815208422092794940288391634205436040750905716180876896996956537955930871204874047810170547377004116520710033857327166287292883536552755171551592859855956218970826041056437872891870220870455007923410898004274976058286113139699277688453765306668418129661042046974483571982503252996269506577408611408297444228821154536820375346692624491066796312188531806331571578393470085416305656013264355464457247096181654959128568951767486480361715222777052222203073278936750281617517269568396536501548691246664226534695712055805949338337876969066555279865361633322054916326314860241105470411890910749521027180540465570639213399031087595048451805169185641403914809057651703952558312262387919239219001968854027225710346797212901907985617199035018216533970329555787883841179915757372010843563575421891327197946617147128242916510968631885499953164863496417307665345972082956676023393841363160740533850752958791309659409845875068170533046377780845517936700142138651500457909781248981113493899698689347334874432302966981185549767676395493432219913302085706171034729845229665378465886076029818482302290688619369000135321236591778851382144499202671006593600808191137603802985176030760529411429192325122513438541935365400138714388808527825082018071423946305275875083781375119822328622668299468400091788949713538030540875763143192128668810827426230870978026831878266843062432815553018513549786597613592260453244293903187126646869595939399966444934787433256147848336608913233481743314528757764946161341198085328777445340914492778614341303152661468640554914193070593415752345962295583607735470976843251777321764636316350677288562753145274639159832713212688926914217470248325956500199686091724452150979511842957517782918316467757513516268554956545103146584525275972124570496517773019772859426929646259843962489021266593152429097494284740183601677857850665249480073688836872993395904069217333891247240958965467088400452200597311745788876864245759007715228144865061288455835193845346373238116533572669046677991879959431658519684959321560260364877254091100039220974703474812025748423888664481872494467054212224973133065870846662145884231560599771299184417231800893822430852920972175210665347291134554110322301048479325337421674090731775799702257573031833952101073616845074372148442650841548732700614565696040936559014315789023376402310939229480242651232393879723345380552405377071905739191258005030401865070750447297135037740416752765295960189451787950557718241520481436706251990861229567803558948136396103399008383164776239947646462483913409813476682820028470470471353989599221471542612510217248992339139912134032288510528361843100190973418263041836027578969421947969346079920335837529376820692976526724763891066204772558315723426479608523014274773298422471508215397001475388365408237848955555078961976274914540475857912080785813252578470055409243464967097445592299787037410293303280240127303551187140580415031443311928404959626372892557012722183583196008638811276532162037101503303031999069571134179584677560712050110313466331043943286993368447450787600655943240690587606476942047243608224683385340437566243165657636968438939744796828969084167353902600633088872366302329008072557232131222563584867006529824150169194534468777540093333466124583565294829301312894491691390661767916589172126536848050513778228405083826012881612485080665029783273263590306279054439210958779738232440094997061038735454447373857141291754283814735506544754420360093427785336532312033720031206653203319464127630575569593282821495266533207295762091133791977275037835975195773587104929646633625723656775622914558111052168875263671761776187397540055350100466473110138025999882270037553702064509086657228461686882293956663027243715353120224837848979119881736107948445306257655979869111029262349232062356723263805665572907027044419840933120103684366607352060072314269021318451251415276446764480485930974913341368629231186717891302613387718653275447282679031219104611655141034226058733224979335745181810682748974078867247512294896963211270511464175061152843341213845715693421448574836423419735761836430943853437591931805751029882891138615451300688693190956175221355083788508014991258332143180105320732095315716179395791142303212069080060647859444630632932640998793096671920042849143624447239978550309876105444055439261807722715799699824783621946509980095745521427241839544228496032243731723738432226858979385125241488241173592242434166739177357178327701671323655460390423325239880738788784951932055055010805806239645445540459683373609264250028406504309755058935469677506252291237076508066339745821743743810269627146351476344626484920660800312801807668054827964827394354481810907530801033717156895839867663715566954694628560441499509271601544038500980101529193966799925221947561571126760314764236669799895548764359944751326601033050294651417755170334594556962704708306651872930374173350539102421125893401465877850329864692696932853554339420297811672261387865178650651749021723441123904519176748469492071024642076589480728752234728999096145552414569788448077041331917300363540971861812666611544638962975613080767939323630002512383450723782600772468018456370866873746747914635166198319396597778364769786321792435410283862476874997450482708286068191986992759337032447197262889972639307756640566886926681270717748005314372183180934168139776805074901588722667457531442182490630438214589741955295551508206566741193957974254548870543811918098872116449155708369192354831844872212310653839032528620265756503420192376000070331835663432654771881247600186958735810101531611039940470503644576889155668755181772000945920780368899594447110825548666019841630140239747187426844759318351159730176381264099851057516226254648471761585062914700617029876458090752565093271854708691720026529459909235229198184764314625792195661891676031999041357625895016914927339958805819164663620901544863609621340269230225943123457118239399388004825970812172798478519774349017464308765758534595911473788725248987053585248105379524157199121207304941837497695209319091424665222336555606368038921992642955228342582374737238474994502880637107042598537472460718664097835478959880265176776601411645160574813829297490030317833026659010621738114749030431556262630752963430193573379979998159846970533933014926424299046345901368284352154641492696250774200711276194186459639120831954283917285258334193223114225832652096394395403861767593348130763562567366736281133193268600259761199101584301127432741905570662280739488028040558523408976895063041121113438156358236442846162244647572819507511258751914300090730612267652657267274030485149164920843694358852416058107571784209880359259046161493442830774087027461201802515380018782741797002217952940852668871871391836391675488288626678162331062144016592976048216453610549923614408888583292144029327295380751182512581085659922709934374991772531830237073636104257510876710678624912214473181168177174694179261373191151168380808318769714107991022536558178131158224474565680673753210423498457385227088202147060206083139008342248473704991849391263618846370688004775407843750836357160703420597642804603927521900656760568697946043010997799095300476816782506852579115343782638316446236433468759840384456090202269828085695754708020254276158122284015895730071294400958876616167130443618702827434514482278736156493913026719332685802052185428369703680998034746324807212751369466587945351525982646420816521632485240624743228430619945581791905059283258138155120116296604540995324663223184340956252236839864571323868606134334893338805290389655826699091973716809635247366262957857178545389279709495713379910296404495014223600927179649083581499703300910916074285153473495361798488270152988783104751578152936735218289074728788202505411112428087670141624633075812439101764860826895684054688058460228612048244150157895140046961404459536742438305770340886118989510211725815268828624799294952855837367107881291284039096271780627824304507324602418598387430414401194551055910751197352362217253714467585374395036550625207576859202190616550734618318731934911202830513176023358234932457284223746907200479105020761399544074013732924374566212460240373402222605653180404922948048171422922690415870654658553945414558624611753291683145901524809719990059384585906071367834313420984210430712078045358361634102083428812882205111509669068523988882585126037464268072855610843668351282476152689986751611970021000905285288333915247236410557571993723892551317008608594988925009133034932724659220772358954006485052962275711465426774280003168463914152723010854041734941380512616055610277932631410597369644371562061184537523498115219511908769209993867097483057478109789541340144255523751761502069438884602964039400135664201688154266863423221968745605365995486475471850584062467367561528567076329338224755540319724448560325829376988579396289536303053935646808296019066690573035849335700768397083944612766523383656782919546445247024508953720615756282271670066054427183710317306218291230662673591069775489631565961150254067931395250056837521427477179722375252647510433801955386112775356942601477565803202046308330933126004755054205068429129739351563319626081515591031181946374468820337864219766815939693876730137136009740224511476723739237985322845463463038163809846951857247456503037107997691103189958353391966641224954504868518010037009054267853547327134916198667979301553487684905726412343828088792137838074875623814357133336871600069158688703703787428698022525939717490073665705756868364252514523097986967315948711944497261978555368834501766709480008718534692100647164868884084384717843307311403437718507574695402937173428928561325736578072589888372258783818479418145369740360694102957328472114544677545552756876230569759368919178436465801687719555794395193956514625169293034702331005804827404642494618896727867990285583318691770877804119581828434563934648519038714194637091147107651529408201482973538189453401823559599927936639660043301877190288418256192931211038605278459962916568572777323153045920130413405100496091520239312241550101213014686431084664392241189235582398931596896787448809342956546773292852009903911147809051843833381577180979694115397142028160720175358550909239837847406778474666085053399366078687010613633706344253498031353782315950809943961436110608049455329045469700901157488896574705577845060470590188737939281117274346215840404868068253617768665463139553684581483223061324491756646984083661774184324876213010562959811045090955088438922881354213958159678536402571590388403537657457332886847120368066410249639256377683454488525378454655126326983310545210259336174637015278012437619448004993803530038954318716364245292862533502731790857313187843524639156517733646143529407271770947876688198888238774155977399632031272005414355865959061182938744400387302389899702082620089887298775780935497599946366670625788847040679634203652925538619983202704624568230786032707335187168840668979748643915562103982420862580468998570994106995839540686852752259941164052417835709303951762814667246781113003650811309752904005276128782557870967991347171526734492535849496504942977939839189075263768461537773074300599978463186194013277709289437227757906626470380522095969726277034918045972703739087539117608707253412704063007484656680797223729981667338996446596653201370331633511735664940837031352068859558898635101991607673064002624581397545525912153112665895330327382379270500533185472397416492755020581619028964622199776532551492424817076003356349136038931857741581079165395874037026532517314515494027417853680232300770062848281726586597639901260356915788935476798774952569981085216963224342317013371908437321552336597063253786432315489454182705399774362389485145035467537737848016462221087658097528104031577871312696759750905380355451705478955951755568328190926679633447682299770872842570387660334989954556584959647364973610144506885338547226579579334079921909228410262196146233121280358111715146981688067399494361536742705608807635407693798655972829144907042582295160426647761644791898132457992509967057034427642030323481748704233608736270915654377829510470224219268143640070962519156162272801356604536111434396425428756675576229245151434583591863588267933759846114835421498278984699317861881639134505145912077291462195492424772793551784766002033618311329623712700200130691593621662832459126573767887370116002245668796682767699570803385284009777381458606074139890550627629600808456602783593465277796094783290171595723750571487010521106096263489542020464675080525477760728681495170999647810963263143456772638375583844744831467986151709932832835024696755754442941735815492017138953772391934136680348658806476408629087085747804113522462243782247903393811712746928618426988625844877571758955818551553008538574489935358375092045804012503629622239611593109268064809652312575979128639883218937966925653221160762584027471271363424068339242185307549771136182571677640391302460033947228125373305851053237070400712418706483275836721144478818649974046470322134388971709817392057496193565065000459677723163419156114241894273490018144990827608435469414179311029464998079176104998997058000639137751265546558946334775627500777904856036569979773883632805916085313784857245220536857197362771157789646092448533825630748942249519664878349899878759911788760557550945624258449436085063195247929978357320584510500728159164841506893366735408480947116542072685261055519663525392921979960887492337469630797557093633914893802918764600880831542347766148182288741142720160120864454853159085330029707114793091997890493992123170553963823048194977825342368646673860143226970014521853582545024701601056387001879985331095680715018958803621925462167453423688399521558280738981362626775663604840151151610395606416600938869624524793990143220420067977761219442943362573517606076015452601705944127724296602258546777804650145380901515584542891064075267278922285724749067619314727583567836809671445585883669180805691731006704051864283078371146624899232464386752747928026841419208099835279492096190809568999991503058831982276225442036486646254605136905506457700384405878340647239050524582672703423003392987827236347145064720195388409452290850385497733899705090065425815753755770665113871192571703546752872059847138445518337025221464287130548844812950441827502385819039671395135875856314104555519543054925896451072298049157964674654135415284083982246848086324270235479083956744134896838283241378616456188889147068528188598582255654313158033799837667748409747564812052775691128417166990166012748832108387512412516239685151588987920624018505315405961133420974234398079804318597401460474664720274314499315199870591321103235888365052084365714048836426748548669772857848772614397166906992411793951462816744203629475902069458238987574269802112907091610363372477471077044718136729510935788714547090257978399894410005955412590817430761670302333914930858398319492341684689153334103762224873955870535024078823060450208611344621885905884346659345372317790567140497081655870273125871427383358543449305941203135142957226733667929879064871718437406348503869907273306429418660821002997624630714825347234340541748329958961326684104534715198559236491670029993993865561057092410650617584413986792905588367773200267221015130197867704897743642445542013962350946372545960498492075707912008622189562047702734181884991529150557847993098607948113243126813995313431197022404229117378719597521081283022316806343033955090004084965304041807176110894911513563675697320341642362637657440389716330275531180630715169395771639450173651170236350238140925295300271206056044626448509647839689203516180762405717426121686497645803938410694964259954205791269178257045617186833482180571435963887179580010740941788443771638456563244737715263499315099593033839706361421251042768639438947814117642753058601515421651857349386051939380669191693505442061702212430703158141288464646927505288237594925746951741204721573210848450636493873478236078130864408280049025150011965490055138229587026961613904705108247695540161534628974496767253286587841262108388148515493072793497401841037130339815446631297822240380003121057610137516527545451269072939360365817416909911933424668036924740218052943025167112926313602922653640336336215129917734818915189225814020024445690027003379929483245964763241710626612633074638789038881186968135057111921925508141896009703195339580760963535459427297965513153330486735487840400717275117158759602595093429586615418684303846042895382992353217634022619935892285395248635353593857747818027232459645779256226337182809789418345317419972445014536060768566034556716440325403186676079844055488394508211786820912296314501302690933106040957565663217488399758656427509193727399559568989066687196103992270873944899706870644868455556547750355733299971311211654966492186332397807286366451852186310297841149093935023307197523579814716822885767816415033033440220430582490552235715892672393831698869986861444746612220915288619593710976240334596087575335480718429715199911525502238752889638697863314736799134464399665851312915929446190897171461456085452081415227302963890345096547496545967856715918282092365739688203928831631629382130900360353662632779325789808810081970667318151066458622858483280972319587350193885604400639369643898182320372144236546587299087321754757807765097300072543994776730064650478477415555721024677802554637559404049263534182140769712943841471911467898558042911484900548261694639127755067258313368484805558625488647125867075289808116364303039523126810170999572312816155308071512260289008551353523481785167510576313617771931276779167670377774760419263073906659837149612063572790936259832952850528036385732199998572019578070148361733584963974578581105748836542107373640208939650285646611080068151891069886152679353907018202302846493564293688376793146579188169967354939415813935030257577362577141113029130566577524664481962292223968886535511187870858287165247798700004790586943175732550045948213669342058679464172922744143837362362509166042223386282562552958386877092228227655983781727019502591709116040663531016821613266531938827735939313722837634110783783054532614336143407176297930013313677354532503055298129777806351529943783417681259868538535372428442166811931689137570465475421266507884722992786808284857946357718624039482826801716295622228515665935204595381768790974420262616115746426359378549980113519052403188419676085126959841058166619806273477695138236106092175026144725394790425826270224070362242045757481631924009281110563458821761952641884196331906131350752184192414230249709186118408337217543325207126050555932019261882658256945225231192075672498944581318008091503566103226116199542486968602574595865730853047933390220256938005218181130232019934870100366895753585422407691634785414870540573051942611614311986002842314325762891827820590904204463331129413740729750309155710801912119857673016916757303327780128262036312979417965924466318902556885883636314210639170522630731586594291549592338868364920511510336325131699803347889894704772920859953455123080550996127689528977844459304551619958852160120682168654585665037228675406961897528918712909077334996667459329843453402718316784798045745757101078470435402269834197978065798078790935116024313902956097162525978375675664874713143897434424960690741611386906130026905662596584922328736432830802403998837536590549330767316219552089705534732145123883518045637844742959718469660834686297090578290938641730291916922477513903221069070450648961760527023412380459411439324426985001216850437550709979502569598788739448814314235777185629030085562308282504124651781561838558771633980516101896011552482554895476216456369005056749361872033472536896618776023729973849505306485897183202939582022525429073051826383855441343180375346831602263394204252574238454950254065377409215442882256687366401311581515136177198717132256231109422697072793324683912860871234448084391697902333984844371356955500586411916653148813148980245123600615803155552623955133186221886406894558192207356846300658043461717443534123823760806660317924264475501681254344432467049416902796086736247204114558170748211926288521126285159207647514888398948639339941937946626226091019561563646757712072663250333172618824001844735828846779211186154453329469191810354772467165860069221582297050094716518168523965241432041824095245171994812314445882893435809086141159236696968427596608876616249646021997711243902565688326073098665428693130908854886081257660060014415570002697783880954672230512174197453264900200371104830850839044673828407727106371978317607825722648674449778932240983510116965352888867821933405787225290339504624876703065464765398651886539981434502294353174548658009076566062828127841667854010063579978275219999312053478979317344699702004303386589855037253868076783961842573989004347996756176110123222008742371528496195747011156389528807164068381302140732480411863944261636422661505725437296683681369110316904365757758976660729374165871103930742744049027917747806190894982962574482287096476291903592779728685296126756328249101198375185154258481530430402563588053540232035702255323225638607604210344631490423292864992115802795072861292324366060173344041507821382354914303352162423697714847826144287739637629920451261061011259494587028335283785526268295485634124000087144147265881119220984998681016542662798060865735168733582578548195628883496726136142415989849607843367390188151073099272094612961032271543476408498399092207668707298460482088245799532881801578665974167798099876960567451514882223105046428834612210651392278664970819550799805409732521821654766272468537107555639134375986699724020563202958044610732477905937110771206727623424645887041748006845507494304086026778562519090446588865028641043734451266815740894560303674080270366876290950802649878270045656297175028525581230859385133828511747836963791231528231102203401626935724434161668379520550720478882073923491771645697070290303284617458134436251165477699939852743615777406669005456284812426342699472709745311862596554851729190270598117654454883778306411419202849695455632073611105839261928305738493967868031491827208412407064066697951620962417598607651241169625003129234699120389645370325431521360552318973126159393823070856758889991457586261524146071697401355476103937603119372280269147055341417726964230049413713274637450354761780304261436288642732035508383387783135223081988180509561141842046964846313303296367774442770837460248155471595457745202695908594743187685631044779324473322843372004207349521355643815506963151803467687661967064749464268734813177205329215087798837542210576469118707909077618950380252284408691271620763994346018216163878768566117864628449572015721582954156450151617663242350209007718637862260317277798228493453798342346000437407159094820311286510839038421586615061628861491648262435279560968824484090978838337293395489795893381165833545784241478796885607378537708050678836923926776525137266983712891174773717394572967695195572930297548020091835648065919416320831797431239897869777135923053393397318303189184336493955837721027247963006149235169866281324115374672293961127114422006365406210823777729124319293291873984787939859469700355849300995596986513796165786806392494964614100076549444227209189961232665756292481143416313271302469272911830754901794191702794497122868791421278814697445470386965484403269887755297442434617032379478786408010208533731586154584079659625447635245990699005867682037266096495668317512301664292339440886903748295723466602468800358822077969102603540938955909730929943444984530930813358453931523526357411007282577682643721419257447444074845767060289033935419940875511673647548429210068666584933845677108719641638636855511546927173262641848237757783338610776290916680458217865353618787474941073422542023620197367772297814725640218918439103681541691169668670222793436464850478832794640449768013413159083448736939033081333348077563816874339555555815239101290752727941512552479984724231805084564319195939482975633067445537807913852289496096402845155031503698312265564184634831352876566095095736201229002034254619844202838257763482462867779676006796479469950095675553046911519098947243735528169199535708279522106865331352361371963070751588134328055226500965062518848144892891866827183119406184957555251859595691785461023534747475656323655949096817075828922914542564326626597699442534754812129402979894967439156407816854948852049504788993005213214880977808000903649997212811453420063216956253270829910214119862182745731824141925931354477946325722926561913376460405762245406203056820293235233252502639799997473814400675751308855810831784094166681916008977748120524756582219820071758961015496073796595906689014876911842816660900467899909479193109659260887513406777487905708255201215796634313814216455286528146687943735139812960223633681622407202438565939319612104624542941759157769064558058235214854928316650224320737816909084295088559029438425773388617411740048543231274651099449760400425222968994555159496352510574060334574152190185486371682005356746667991076308886039544181591650492198572504359690105244557894335701941479954949856681455014113760205401004610238419642669590770914241083478477271560160635844898811035999346297316461476929525508900598944010325533289674151091300196293194867154633212769871248488388603872499017992048377578951454661998477833181258454839616407011963573791911109465139683550435886324032756937607841792907822587348856351004959631594289267180603393644303298759184997038707477846936321306863854758499496537131961246120848729864516912448690552444797262264165606565815157212495891072479409654780271389152230285774806592549718170342262704603670922771092052291835955376796485590309995162672688678191493915034690661731447722823950535129134355311949831818481729130641957198467596907466685316916107128308090205540579957659864309492398935592968592541572420392895099561213292703854467249972729127254948959237340548346930531243894000570454840886657687756097824030467586048913979466074683479839220425367264369109483791697522787999501388909088137956397448817327901810799162975850243565335221574488250615487599901233352294856370157426823523715788399319448840516008302260871999108510440295105965474481990953524889826904273098320713545204456427640525614415778809123844239847107082330618244395340917269608564122597975046520528051453426749381315595072479419859606847800263740274692370840577338660657340478950640159406340670640860861157842658027404258759050884676891198711052841623034518276463759239174668193931012281734241495555063576602397619799906912866277705642590387497950133735950491743848036475599770442503261732726901715672024100598650653250262555642272846230018859709633350643006417098424421163423769273527453076443614765739860484804275659584182439304649998783275926885230794232016923879255636596939306153764582800555648485504639011616210388320573571042628171509835019384881241870899621017837505460465152654425555525189101383048665137790528852386830847849323162288326367478342177197350133973416180344862784087367510462765745029826581349702840428147193525466864996197650355227306978033000389088147748936935392097941274801390884436917944492386858655289044268349818605990623204719215550481233213190709102696097533101676660331608572204953982284913700802702148685076440848245418201541290093998573406083807171790777930249789504782061606226828169325291326380728557985710561970652267275535251192160602565261375105454050931260042272734216924290234125703877226316526554582609660664672497237085437087152503285154777874860419852480676697547430347390672656570513699285885143545278973718288038086386394094387413873183677378412484577430472062649735346837977711506827541913465098837081105951755488607664079198772677848942612097324501936652785548622491540453965274072767388772108048910630568602395087613383636227973404292191791129515700002686684858759685979591167304877138630015699688463888127521814685244277867017435087435118087588713958050429814864177946616615700203798753127334327979446912316936924916938993015987143754753141948006659491959260468043841483013903325128815370304322117884906737149678628596132030192888064995332137857536772470394793135714478355413903025838541548506386859336573647608233453682277661209569323929798196965685090925306681165314606034103590052683210700772967519153671099692392850974224839672975669836109874797950509168704604284760688145502263230013770743858938214095787366618485831766734809210543017269623229607658619529542588829227701225953010598127361408844201373933282646662595204749060425362599013960591072119762939009594053482798600049509325516061303781220681227672691945796605491443803992520489099735688784208052149737973240409052176051480761630414284269555621036312130777989391259153585714745224638604551372734909705753068761907119540181751889551243705322182786991078914158347569695777101022556534502969546197745676724142652754965210010600811957212485391196232783864865233995806589760449478022890296828305112346841796395801838130575766168818394454301141214625122205602822574338731752115107766013563159384037037379168505972945543601441574233351351968482343875910485519660909541558410280421349367180842654370530721410383106074367275308885504053134096427832954375010844425792287035370334899834740620863646459700309492656424560536293855827978003272983787387712817534575476604085106207351032152125330810172576450319731144515443407596319865708249329131752976186114050234062659867373504892408933782616942370719801562762117490853681743075501880591101346190174688705206174665323255926831451494909903816691850865539058709701127000643322006775954288358359433502619355733943164894925436325094676204734354341418308867864334425308264935798954064379420870244474745720721701250961579129062482296974255328936666527798805753406778588005233518895198179267314551632375649563209014193146737934386756031448688926475905947041823382997307195778114850632193069178828631633945655347870900640375816531166741481962631757415356229309773081828520806996322393787456913038931699480428473533268828804397500049415723915561353729151054572260461651158730394399426042904602183623062183492747091415376269601092326455445813133913370540698744074876494022177820803258896649286907628399578369576424623219526824076278264286169011947862315620067266329782813859390686316696894453963816176963367344139150125497379594118773442968066456897658391577471278894240925366404446944199186778600471951300089920774186596295365264288831624110944384767126645320788866329035834768510006777579799878430411513394454366530810089741089015142568571635540607749049346922869124113269169416232151594020937121317885842901013054651528820999827061566652984337234335315059848967365939890383447594945233905498477819863334566186927943131830990111152746468864871447782321556693091886240360501151460855052868962728942792442755818479637859844964658032234661257651686820154579676625660317579226198485937238960543566022212519809540683571608206875041678548516286679487772000929712822408614098565838648528977025189878071711167658088609921374381752219488490597208908208591754378406909365573025405426097877224282233545796067674638678244515036817879023743564410579203927079561615604764470788858945153854200024330809669321374241035465500928090068980567248996745603471353240318317970691454126603183104679257558947800264461509634097899772708231251614751789160122883584344371705008060305334325298340503583913692972046691524822543610269280602329208882792697681654939963051342269394150443422151894330338343005189502035181465751690383636140814221933825139982416176344396414024702866425870612873893142221803327025311060583142802252301739274418071637190917066278225419452929120589102061136177453230309582724346551291420533692761124908907374499543715004061513266194655506370905290488295558925783832543684239476419429975161205499434996261817895132793132757925760217418822199919837451460988918443809576956598450650889696290183314797179910238131955824911895783381770183532517702974591525252866710366587043103856540074913312593437357909715067395104068581948550818258471196621606110158870812484293676855968191234381951444741924616358555701937614048471792938200331468128933495621795963911746829287009957945446494692670833923077496119342735970614531864646709274387243541030061276982437517626386753787729147950298513100423297125957010806140863596900561013471908222691852474861120261120933321420951793185463401268326872164317948588557439101398589747571989378855111893225360566093589725394917068327053581204038451578938512789590280182852912771270278443958177297059680726450142009581008486163810786668530411214109880006167263399220506030504578114253699513296339669779469765934776821971414845248216812601566557668130203797221133780734086773962002742753763806924608831297338880556611639256898021256119930308173668189888738462553824412909358925808917917241471361157810253063042164465710217272246847677562073693597550407422400895898517420566767270172979394262829375921144994111215490549127607610376545346194029132649820935739803396614772643919253827554536378730990216028764600760551722764573287457838043155044299641882610680743401379866355237344887736104453222799938654783500712098137820198191936153772897949197194786412360831581284904598983425335960962452044066561800960825839356373048052208812123187425789797162524526628146113391493126401205042990760826038903358654984106395541094277228855495817921562970766248485185214254590651963168159587863003239324799921961614642640903041838341984273477488452047248694110599321266974755056334867161880832438039072380056321472793876286358416657628554625211129842960503057882451261019820528379227993106153871311901162094949898000737687986163779484271149740551097991303728930458909441914854707304670840937978716275338024844827645508873301539432105075529967631445415357083867982851696047318281582904402495583310999552215703380226831711657951390009530260414784560089135607712912870157473367224719823121983339546393647093968406232598369705706111611868171591678201502530519943406260320667013986253154074359774589198738106080642427248229867861905554665309442959095488447467096634564803705585149847730018914586211894239468228490077526021380164125210049178507282590941333427960264083006211952754186606940279530330381440644475195228958259410270756036315637999849371049843224770081323136367345666016857971806899728398195667116700027427680543494602248513609795651032684854943294331639265278254787695383599455929105322818661040778907318073841137002225680712085310622027048802143624204161004068862146177265156058757123572985167575747205709066377631103529585757453837320210627058022257313157708359733352434272435707732712502917258323362650996750431234633479965238772307802233454690796342235117552724852160629168757611373996960763892710771211743878147373410209576347205700481674623161046026331434144014902728397312556872131520496632548164719573344284309972511237750328723832826288647069800952563183729161959919990446220839455106241003079702780829010264087929076241543787119469428799957342894905830442724723395032988696072043042332608517113669595816803611973205189010890394119080572475135888904335199165464977958562369210811567118557548656890058014435658024004770055261124679923241659128030418901580744436876181607111597371623930426174031947292573105148935819455347657849268574000792632998823222957444479834944588635661438206661650413430709296024530778270362848199190111952593814819254022267402769191949068644802880262650131820755619111712207652651776586565152121666394255437673224690956044371663069843833216481673337906728931820040294533242591136154080971374047304370471379965986541141881402850156516681607709260356120741112626594763909182789860264416913305761195694185134692196421913002106345252395932843449528700637982153696556827224799275619331100585388689085667302174621885310093274781091965986378112084546204862936206578402074182854730322652111098760095946058145132720897943539375798387331511140558976187650249118792842783560971550380541053146490880863040152315385733068715442740562755709927120254518585945148637283610609919781292619060532447332809731289728632523029554641685794583413214640553307930914107229678444549178169271064015099636031686649697927332760755178934097376159267284575596731915218776459881121520782726078617365964646964619627224072104623256474009371798597912717169495046016862413392923246489914956915123939242085829535056642826432975844851665191752431568769091791090196208830386415663464138535032975812146296201518653443570266530381572751595748946669622259635252457098816981725590913173388838713351208753736873859448818606198122009031699093710089346015571187629382552055665410910771838389378181341074345396947163756693802690803293211567815475698233375243098403640316524864952353743426183638764168124692737873871606166565978161334949367626130955667404662888672267508472858719166873006618614746647783312723348093373417992668323415664009281519721242647551577963219879297161069404200390767915512949766590914897682831939261985108966849526056299076928937972876148555182862764817332072818926742654241163814894759831268576192024936862139931276824840262624055608436620577697156846898553214211580748944886007797190986866366382705982839603662632923310177222728466762832492910851705639258031790071510763831491740261255933286077377997347212543470835607608293245642948281239453476562722249882602541244446151440360502931333969423076842528656200858237676166125438918137556203079711099301662196932219135672308160907434689092412254911553057257170833215746187870676754473124013845961521456317499395447172451023946810794024036769402297046825790222980063400593834397263566952129804307845905731442673959057745959455505612195586502475770139958468363311519542179570367159874775270286562738830925765761258371448805555837356793737589852611300713872431178078731050624402861130543146296081905750290575056515484062736520021381135776458019827967316529955091889293431138402097525151005341312210249766691163971914685697871636392772005983879963552634193403459658340733574348415099695413571201392223983430321024116001400414323351176735874669813667570066366011338477705336807942828492176202119223256461814217686249065471890316122293865516099876309802883503785573367016106127602722489732675981313884116638736358108337432444983444418140974086337160148114329024852445869177260738583654431950337382236473459346904587724079682922822657034365642198124759937044329139704089841463595176410768543571625815685044059235713839204155578418426923441500988836155927635671394855404633512045146633293473783775108706048808675834531067975816530607129535262360803224712616006744412464851868699671387652144660131495507351076637130858023938703692006160510372238357319896271236883464561165471466069681281242103346472413776787727724530158325541611704605224651393536530351312856745516910204482091781399973664262572275889830868313010845308900045550726291337448311055981411829165616846898230345551137858595336906325494671603845521910594475492713937122191453031406772045622330280045650780663688355979196429589590797250846462730076648464412933828022895275723262166517697229177591947265522145752518427442217843731392669320869599946158489291302558390014506101183810545104298617025306331457914722214873138065594303226813459419939755980822254341776849190134897639682638854257052568587373578419158556919605605163929238623269515578413631431160076142889124504336209668214748726426377017231045452137378442621399881063876054566971935181796362792880980301417414868974796050865284077000875987852029946408436369084258538175808853063731116040955149162206312586018541135114569199975130871935316588795988799678577594298927076800382443578408766404201034291635394270611449848209229278957605095586259383273786967804507482758458822813391505175327980267093032399602778685777201798055962261488950387131620269669728163939462445035441517601826878587537010760740167704247498947578417790144882909971451584805675013573309730020690436598959885233806008727353543987342111370938651551482140767522477953335958238109817811193379486346362980727865057050586131975732625539573148964393884496008743461702075209796342931142781062088510995213096528019745422259067264834898691158011572479838036883831888687454974486781180251129381059476820191414413142597795218660377545381089493601764443135655343037706493652657063175842372721207748087153724432580061857877619771071193295589434194104362040540515781495742385937589818633913276692588148221602684743002462408724510288405851625574220957085271590288733652747352128685199923725834202268329622399298971322979231434678629095376174109356394852210554208644211861179916422916589817447734891073858949292952281687224204198806559086362794897906251793865322076986764650248186486162137707054361058956049688089526992934846387880667488002156772460211536571769876763456295477588549909274218136678831733929053296452384000697432006607103945417180614616448063229294767577709596683038984000059098153025911273209361373842644486750922347980626256021800218372158812959704815528698380310927173209095627347419863393148831475379718822387603888685399285044980307205735402829960338055672343472986965195527124092004239778159619494849814541400893478221235576220671077830620178061591658173392345217623591856118721119366151098599184306204326554745827092720819788812713353802633363427362997385401888285150223362729728413181907956045552833291846658298433370139094536272741499869869565883262452261906209352771562055945298779286797224275115569700567958883339164717671701514415068970057610839115131484350335562241153653507789384492221515885514193247289194880775715074703604421563681946111156701070673476044389540607530873882160089400201412567493939830630814547244509731328678813395763956833504652685929077832803629939540639967426270125182493233057585608945162911217944734009340278485231091488100627402642464971166811310873391557710592660043169941963633473939412419771916610877616899402210961495231573457607944501981202043545086068359470346007881200773894673054348892577045162170395185525584757276431465682744719669429332078060662043685051915887348222209569077972360530283009246862149459411552656494411801608984377211394940140520287407876534044202918243708389403545617919082646308424813715146458085497860333326398692139384323778320216481399424649968059079405212211519932765402588514203972001432588716978530981285847307246176373361396219790062723999722340782104424397274431256571449720573728580203774812634294658216466879306737754521416449203793839356367627349520755653513163773598541753438848240251726746627579284398554932591777315532437102804288789607149081851704956565196710439233751360390023867718892614758037171702481389945988567688423324517493020087223498961367509475764845401436570225538749013576303450621633872505374721394066777158202527682425700991811976174444705617230443575859564811853924111283297421889100365261733743888276763876158109133582203692173089738412160349448815407428273316667983453606483174667238015962010312518686261518874971388613282452424268096139946691240206583493928234451527701605992768022460869550806731863472969493168441131851707409890869784943622015286928398877438330566763447973802160133382661668063115006583430733855975517273636753049211460975726421833412592279783636350524054933399904060398606425291904109371610441735424763224501955658386416688597086130233155813210998327692082923012718859396057037343150671550128293537637260138478483972396328429385652748988098038775630515238581267645640457148119630781745573688097575949387125046827877484593179476916115290289763469758616930920649851558712149135285788601181337640077696436625306167174474517525952681765521941663361727062536029214436762958879050283565344291778795143976320499559803838966611052419360650699846365963335768803272505447507535832120495344417232102537498301494586244028949411150232011515086707231371257991785132240388948456641000253845279318824466749729606472887414120165071743697333313815226747170167600199424879272394763563706426184157947066202821333681949938505074521969526321229037119874695378833469178568886759119877418040224624403459723861326353989201301209301593423140566744222403620165481073433280404127013624931789501723981252651668563415358332921830470395327597820376430782028235043711117347881968455373788529450553768750657815321247035338701482882767206390358793150299264556522499657954003001450014990113137788001085169366476676369121315893021455200556355938278531035284472842360908936534633458856763266192364410503448107749766835637779847181437145097644658548591698344393295675520236383003245238398692501443320440327875319394676826938810616419591631923252628638876370374761969974196255108956469979075116084322584586341384185560864855449086033997969822342139629771305059254831319559874001076719678204064239404737866166698565053879408391328907761046454569716907977903039606717954637787044395672850067238433282216355646817918484762416898887189242936093394889002058962681285341679422122453801846893345168177859465762830538756508762364774554200479424630230028084295506880227677630203103094655172215434610337008991605454609068373637183628538526652309371688521373025980263796299100535046781980571375796932080348846280993559412254672616223221190904458388448838882305139831145761063863084326656169797068139346949745780256860401231543386066647692418255296617347945639058596186746544690134079228708097124945519849988979184262952952553571477682206257416480169352495770509794858171489442133139595694972056216497710007809134781461139795417819610144786607270795857619835315716625267680862558297667451336327713723592608228554083331471200446611224297476966467393646722849458861571052917751493268696169261192117948845707285536693020888154698559775880279428912027953585246667589401096490297691806352490476972407652199719386292861055953221321927913514638645050022062538044938304237929744180650707600061990591746347030994316420379450059641041404140674013953830884928981996231281636253218274046916482231231450656492756392290690448839674460562902164113368874753394457956593382072606826665866070350630561900906487185118382169027974221342018155314177366698281593978566954609202445784915167585020183580758668591183276644326349109494454332264774327013970419426568696638678699887249955990663981457210514205391504757750195597240111897649590664124064699767387698865204453354428284067685716782949416673478800207061063481528626185541920164931639227717748810505328138656815152165745953222496551967239360786194283187682758545113398827727715190659295130469123164303793851262340724768247031262129543189217121415055296934911199901888958077649519862034109717338877587686311112670118881136631488849914421574062218248065929265707980517091450208163475073353398665048422241819766717761459757526272921882815095858217933400731784935521477088324822995036398818371356617061378308164576464027699262435757815862916282391002688840586810375907128516984061766066237584939113850916893553321995991745944338036728924004844764702318527023877693536713315360408047595948935558757771786669639886778995414445176910008214213197803709844632306096635164558303642770160932422111025057004696286815581097080931005706351418311791359454188417438552928959062677319145122629485534767267561314654870223167431158540040254864382125293326900498381581729264729093328300980215563033514574547776168755233624735079809491865489143145348260494427096698921140091533953876121370828950322386993213736594827967525804337949666344002478862595341288105289060421734092906006073844704203786375057099215590955531745406832806486667146586497980877169467593951350420613103110748459656769658358829347765108847229827381277743812625205171220348624903664204555292560982598692099009234568760925081812045382532887726907774386962222838727785245244863756529601273277404279380644436128338661988915689649404721028996957156920137238479557344418893381102709573954114051927769388390000188598061092294599944214441955408650869529776973292239877942487800859680787485993486335559791095359447275921781063864962270010096767931428442477660981349193007853528103609291169860742357143924177900101497161730567974625979255874902933193379309466558878451615744705641759238247129225255658813822752323463991110242665761005090914572676664388324727475968537183536459417359471478112770748024193356595966988506021465050656917209840269271228068653413484798385270848010907365096915760670264542287116723614519651846433232024992640840956692612195164007122053961213874259294951498775430696236240479385797667602772804700385324017983796144988443817585099101755548368876830363965232117283342987654676437462866780886835053137013376285626621442558243437988678517712449172846216760979903703310974216863023063725736818003275374704680004417964498623850917770289290277998909922158403921300577863615277328368389973324074828973937927046931724114410706884505448887158716476187097559551413629277317181079791650010147409780273111358375034629689734815868717820934873262968938165209724427152236006024198212397770100486876767657283304682653455251159979562620966771227976072102211853706699994994663912551097473023073010786069889184565614784933847406354260943466499249367072548873327305605492898786617021677164348447107411312549260935921502215601047421365629055851832426849399390572183375062675251370419708219981911567140083714772466306466722061655143023756750558009362741810066125955509492826451042330092567006015107411141082344008984006371795537508874434505567017985832245057594699583158449265730994595518879395437079278494120419302464671006440598509200299877847767538366980759395005991280518407619443949671967779971451875489357684632111449160991216962061023016380361585632153620187929093933517526804060735345915343885693681811472916759122052638701629599060194710114531669298660397298698245158244535472252555249826180057616689132154394939594142273403481054364600236268134280844542140299303848796319075780998938247953552271867473644224413484250391163581388116565830990449552794641078949984466316321965388779938133849207355968440672035030579498408128201401434620686564380569030153238626865569473405850020288860666816325347745047268646637646741228319892510866197107738840083309570901184317190402346807001188743658236723471324377086358405701372773758220939131856002467900096123334643572305132091958113718135990795048897234282480853428720491126149959104715741426195829731765652490461855386083017324538383730663064911054247311516431290544138877962180185736818564392884335477834421110752081924245443836932433494719664650818711492381550467052862100269344802380586279076658124236933483330343214197126571332756396066814297624375209434082099030433997115573485696577602295964942917461179296925552768728703468947212228527232717245596067293087947932419173923460886123889677921977469275982292037131473406647468170387286063491447507681877468500637694833084926018571775082357262590338644310218986141472707054694389270804730723689513174178864156190480024660831342546822526077928644305104400439571654257056082964745402707004793348364085036534990346898894401672148231515627668801737320487942779848892261139692173989605862759964148555769271383967995875897004355591775298970150496714380168643768945434897459293443489588755678500588523520525869987356080321445553502126844450953651755285520066087440970925486472178267139502783611927859773836094756058273793640130574673694306757447938535757634662548409295962326467655967055717921879906802203014282118645780931053735414535948747009671546858648055799796821604316503021983380748692344986227914607297215684063655026939456473429180372473304894682496826785259721052351344202365566404672912028101052199089529548720782096413015135849162674523770410749331059309272062324758034151781912416487623460645469327043757271396750649142672250259707693576317176113767667103148630536186317708187549554414910915354754782068787085191976142193807772415601051041640032189484984060075821019260938298420595919678350814056405666555479720027807793287829104952058150149023202858142961801492108436735834003833618486562408571641242181579866335129587669280600633970479026645574526019744851985884950591445227192931036591222795252968998524290269340835243416756791262955602167566771842735688993290177675880014736003470119690107349589355186941352149504166576899088359185625077865391134540304747092548813003631659329519170012745557265941794277944892705865195598174094859959292816323899086799308300133942674062911937890485163902024665954021042377708923451922240321390543489055833353690407307284010078702073874824445309947734997215643209293595237347711975379677080831583981595456845643331196130500250639185975700536674256044588825755686704754411230413868907800396229694810068341387486216260048187636205870716970793161148434118503738745379012991334201033531736651962090340492587736738609287994470393505699615001531147916469327787842110522196604836009815943517676007276678590986508187172598600916765068718865602491995321678823067028162983854314288210560552431777979989030205564716918173781918612195085392884452766658587753943802236389194291541167813741126684391595927983436742773638032616740233362707460858336699658717959338008352461747763951835984554343637150420316509219782069680781691119418988465551792548729088955385561184499476871550942145228282865617212046501515997973888397786470832421218536931679901566777848564142241614413451402471861339953114366947901430196919111629556426315751725670506248397621758160537472102869061829015935097495471439760854851176626732534841501074070265878830819552714669484288192796389647498746111845018217072572301907528876235332127770752951419295444634447175100033813154484804572526276060692027802407765069129660975863899832426513010108835141641106618714705907445054382658306507490635463110144251505315652725131697500762245494082631527976288812976997379721086945085969258985482872024513830695745976160480016481900246774535682344945786376660264109974282322340902017463295499745973834568238207610184790225221613831267037983941640393783366277566001094586190670136709583448792628014801325306565918129683005649287333943356133932152916801704007845124901796299526702750272606922165070043174271786836668356333709451891123930898111864946128126775304075574156636090195064843258984456850220357386983335785001656090252002933079294743641285810589774264104046236812775296729093092039926370167973543619596079443621071409289862806424869322523956290434038239717299195805960191769002763209559534939787469791242144162652084556153134149087703116236054442250358632292876121483062407644197844008181140861874533988933382967620254330285001866485046058077911281855431836187273666688837983408808891877457257576393752287714017074142686014468099169285009894920168149667322903494260517966730816706079373606203522584093361678566719195920165750199453165995972971927369505835557330317600555973802730988595267320530471934926086721062012521402082832043619958432636496100566496501226038797425628436400611390542122126313716623574540031381206523744564365426110875618115698914203960350464584875429718592837285241893311233674775008108182154088801560891845725318033619276382780086813547954453295604288736680441643742830951207547378204605029974204942212201658275151888317167998897702952278941694330847239629489963760484935215799962219297718246780629241067525495284771067219240196002864868689460265535280733234256173437988412732734506263499235004235450629523155981359480440781440187828719533716916541860017739107594872938415926983808745293374928092781356351726228844752161768176782850471176587439757998139527774576079431732225691579829013312708010115763263030295126247272749944669832857523777834520827871158849101920262107017589125598423132680530357957273216309085318759055307818220007183713786381745869176171262854532610587734675665742519411130985112257360275847241332757735451383227633923402211252243137302742259965975503042242085921638135542928984387603509506659313289538127263683774691684171128722540716894509729684445489552700286158405627276330568712402441947344373720158042373237063573247729661867021878783205391881492845703613087465472235512478610566885539872791555781613884600511624730930754096752014169201872426405444556856887245126625966935163005393783002216859281925900335220022892742213735507847719504932629697688274996806177251383128427426097695254340490155346880193447334409083051551358188104087010450866836849418509357693660089894331914494409709753873766677060250150497687625662494141157431559188520820069601684743048348787160937011269837483825473895047552287748303793356897034052004581157690709479328431436026116892292557691407370466572590096458045489585172534690980076321575805681442761680096235120245878955161305727171911198615201952623363412401551985759729207648563958556538079479157978373106056769531495036056419627846312176313191749417291226272885250436610040537185884226021446615121716864786793669770321361550417876267343142763205977540281245588153950510356754385552320789379989129060816022107269243857371574227874741271587182290954787068029072962016417580527683228136143177929090537094691517984861359790802859224102731633214929504840137257264507872853309805355166513657809815626453867565166485679216321383645129366257994570315806611971952465962626163547926281072850484842862019998602652328144551222097419654921461287168754467624087415340292264486481655410916113778957176601997349250537408216968404028435583513831408307112123346172356390950691395573291600113606829629411770656712558255466189953654799265422253704610899343036859044463773394969294613485192968564013264876156216344657358234151550012993550883273098941479862868570612704786154183429180733572101318687699935787277505775589736489123730674934459728216003864168663848154005339028407935378838988690322338523945817777739905838358057536157437013303694713096694278761418158364716895525707582551086602303723422760778506354934771467880565828832417647255727236911218118704535872856924061519199222266119748799151993494886172315884479435773966053508789498780927005010759757002236457601829053566226889682034592029284962333264711550477606811552079656017194371770553059521621001128099189350872654099590623803191297159791441464265338986037906946462199525478564578733420205763965669629593024542421170237244736081430997380331912323772096678150005521846490697190813145582717971729411842112497501250110971161943952482470829313607862472788253384799706891845186211492948183123095205973835727596668465562546172658994020095513881845707953045178120431779625262287498735155078975165845313038607578246756380102645237928182658138424872965589805439490139826113431813610588677801046205848730025208294944622997121259252820220464533043112405210478385381436413628974512596727581225540576283181749439830374362963667448416306870880082207568962196520903733745917567421523245810305378562472982048343599828616429826747930503705568846213076351232255807108523958887045239473956614009640732397584576265580727692917793659546208220389706057505080305390743109150990841488324517231599584244751987490083672222001384518427403263761406312344662740782439852559936859648729944517874360933440638866251147844026184114638067490148455785684719088724641275090810417768121373043777834374792992865687089504851722921356562235155214684688284678970628613458303646421459246886331233741226990495310101619679695611552457389398557820792283894266707911019826709557036175202252232470923179596102829504972135969600920186181625859052429910909619666834123108401032555304484369612208032815677006901570185230980059609179449461141110668006100970486452833203198320962394820629669868133783966444072943128446510835300714799949639089672239050656607608115730299352837166375520915362970413876784190948325260408629609213392432644018351675134042128338294631105544896912189147214590967853237096995429861356219492131511621173579691674595042626889215702113816028767693765932078174459243645561609714339789720709230915419439624012379512137484849643755665185694987141746725428658843701568752590371126715669907973358774033588422903012307809137897725992388184879294955314776601225148372172675008327890444183650275541144353816524606651398407688301386401153102657869751971375990633950954528372549616332123450789145045792309560570985203863114919794484716572723560065899140412124266735333102581211183440925890459543320210128313486273856752831997220796932640802263461338184182147416262533149472386846059730095573730330304982299187062347749308964036901666955681713048478206003157742815061253313012429044606452859124650834642700991629800293376592384216820726981672381997270616331880592408023015373413294149074446532153499936269000027804378876821706487449011820064151139722761396170862052972723941233220016258814595419302656775369087660785626624666136979149557498432156587882170045760337453890741049000969928239322488240047127136940012762789601972442074216440062986607266220730523122544842070397634342697945005266755666329325315738918166602396181466389732868737204509911968364690207067967028684648296299188975354327511808575848106521794741638556252028274520019138939264546841801046688372892324165476471776816407345322546915890998735584718668892534500511696626627853753543962284219069205788432988143306909760754269851373822981725819404817614962139132589467841111173945908636313095116480915266512522808001441125748096538885627273202951816946506696410057184863131571801865577240234110368841522042969669615546505098552807140133432992515533777502403839176070263106525335187894291202211676575346444600645958599196114185796787342233641261280557190724413612488746760555858787774321081872321069228029498803278527550814305343822676183873140715094487088649177467533435112433236616441423025841320091216175724037695043933945441147059617714746380189785596787091806279450204740921323285310546099490487577728947981184368989814618023030906628964663691596691568906324320291653717677464734147386460445792530344071504245645264312220627692836604418839570172417948222903592499252983357798842109000606542826478505964374740925526954338506463788704399430541586089317420370743278692536285616810385829441299320559201632564480393258181365894235092555562525433110393933518044311176885129807285162829012170922202986993390270206715699919148843455596752700617896794884613340526241694122747317467906599756036888376101874049039873661213272520496099485042493434520562657268521812336301785626367855320242581253022496368526598808581990618056997423035782767345260244988808138174707131833389884675735888401431058377179053611066463037177157152925528594419919649764042134095895832249508194687785402344588763816927114184598259830506219982437568916516397424131216610663992821578049521089605928417040984834048719315237699719011549073086488881873588852788273702758456561575683317235480520577269815493425602549875909028382735858043107151440415986588573172166996927802937135219989301591129539915230185054852257110567508191769103324009530130907201498111120840412354105721871810613062948433302185566865285313587860002141124847359533872027772065481949157902554978605775288244064027303202663850576659383666899769518547327406841111572466924250354399651088288882307914080397701767226803452852380674920770788718371831884028752540142429156784660892023463641509908949858972497704633435995720344277815508263937682129951223055745653988870975660768276766576847168891394593473303234750390406660482312755115863171960004768912344500513687834845537071800325564348021140990170406155535634092934638988922642877093831166333891826857394084466286107271270729690499258145701212919471556363028424923534467451035070724797429055538688029903817340323356371423096178334461947251296103670878649426024727811505533447593620027240552180074360450011059329456805016721766500784847242577235442237103517644510767851757411765225493299828466110910064412396248803895528641752249707297541185565614478169176150218256688881735544214011558823442412339121025746239916711556475876682854407103158819126458605940033685697162918154124951079740403335007732612412648722662726795198595184344865703963228707682224370883966736966409777924260621444426821899236214766090092762382347700428320526217610735072268499052021796271956918049002434926045903477103468170540392967211331348771253854670395165653465771811867586527399139481586129504841173987029337370193862998595341135641845620143473494854643187226365856624229069111465956883806237170563448088342977981697658275621842307026224275049249055397362604361151422420923313136929449819540918727617556905810904657955088308019121571187703627238306762791433120964361726252662599072555395197086283710165566395372348383077564910824647691317373062492321710656541101029016208072148395747934422203124338349257558220622406786578201702024613050067178510317675306806507200570421631861240719531494935108902465502976676319786790427967500640957882060878474681873917557565758336475990621119384643054326068568503670216354037067279254442650322059131740442757108452630638495728495618622008441869627855463216936122167807309550808662859145164336928130798013646547158347244841169088997402810076850130812087044276563170432767460294614285185303140929627907348231975344898591088045812773499882659477331407073636641271061539208369885134811438511477003322682671209966390229823939369295438480263860608585060035234368775548491262504528766754498808781942124864614369081722397255071800097892252814229002339150037264781362725044076112630977351211858527244802371940201426932059971374424979986426475444018742459834869681245669087022990565954447829671621245987167394262990061794886796428772222527747776228626653356688113886772913206047438716065549461410150783787936464108489949715880132180832813524440720271992796087782195532531711870623624783739556268281364291220385897476281333129447761450762675364939197597638000207367014384273486656545729761231018799146220931051474460181189887874655852874985062888780423727289456822782987682353752443927261751969229622656714416983514616183098154072304774327143491298590637001233165485772129546294201659041894808615066906786585017840745324163429218963629929469655385910533411892147141470328828278514873757010490566715134917866362855939113628478695368973080383658284271105867742735309437308512054151325252744354080090985889907010908462510008074601043981741790422175186623692603875639686114158261724029179614364592358706755806361242125583147061937129414573128238968210507179602756867432675232435813443643467374514841053195977987710303589961728720849817162414286408217351743877211264315824051298121779769605410549974626384511405168190536131520843347597859403212276517151144767295658030651942447989945765636476217850585408841403184214053797218295454506149869352411710323080103782284372862288605858531767479301751382597258734600262607244665254660057778615702188296776399269581436767044856348509162672477818118834080989900253448069192932422418781324869576844370513101263184685898767835304218825533789560849237403624268931968776594927102289333608772630299461081539629651793538907942722080792843087302905157692856831505408743585698344656345981795907398738679707398322756235492631508410730802563713079510869343358384060509434969674946406640734243564942589021921185906746460868639607071386292067175263487463275644311052096197059344309608623019881603700887816473891766025125155289995784489697320230664970148792087159134544191783815071270937306496476087727616830671929850456440927981655426292578503154985920416004780292076153866053907973421244367235981653571552444523228101589275790798852532615120532915975173188261334047288747508036413463052883758675865421341138184653357557837698997954638872555756598637548909521093801442316514403549703170774696558737018602401834887488778171717714426628484104488939511674900747698951666259516254599605654389205285668196213808537796501340460781011086237180788254419550289375498104085357696337390872372801325379271037363429303913300016521803975387786850375683707237961519457782271649474855645889347120353677213372638800191710392004359526665051641879380399457260186033174869871879475424912435297123268438699352789092967341311313297296109716335487804293866661226878221504850463386121696059362206902706724881053100069008948417535361401185595527803076156631186682380154294478701133487781105115057980030644331820776030994701964116464513705232909826005790098379452229354227472356354683364542944533800745751375132660569624898898538544627768729705472976313044147642548204658240763439381866647777835946680716598983630573662935509443758172549460145796958677518948900068115435676196699702343397005023722468310712154338505239280436233453366496146195116508798189014453041635425215560287170512647664933125532567053193209218907207111999465501663133123042276612108024747874712524507799986564338395228026759583954295063926197899142713383305305690309096233475747318544418387694784802825421053222150183884847335699492785132949809410107041063828404227864858512705353685371968373356992152759421760377816502537854289735790035780757882577991558716755590080082542515232349227722634493056973563941517885522486085596271716916167131160792134115392300872386461613223945221676180330239550329069811995883029496404659968513509956893617695942809475594657273508845575888360483434172808091810180909248339288622765018585402016087275287356798076977350529644052664653695278929766595247059240829549627029433315250991226986336073786461968675968314421733875890424402638925875947009634149485076757680857158344440088104604808806996607055808488946735492002269000605215636625990192261551209242218627382841355774374970305428653211204905568448111524098171449275637539824287460377859786690087703013769948377532931634121640357398051268253633313920324001483424118839231296267601485631999140722011157789905444436121328485933650251670105862160905778865330494958449169733526925050013298233234826097315061496941776425208944333106489087600656964829218790550063902574816782013966932296959801872817947589739615185606925874117615991527109919901811650926960942197188884605382548530539847568095706687366708281113587091478295792008662491398104567378036478841185363234055256317804904884334216271831043329264728957736174093431463351466015290856727645099875061347849157972928251532591420766062574739772478669198726737876538757391055612428719143207674607109507613415935190017066117487415563490719424413227703980561785448017939885471139640790667078519909572136972387544835042033891713451813501264788425517562273151818277093550710848692566960483196120516051653900666127300251678511350336868384731682069418066797700456035992915180912474845026729275261281465127739175557281619268653167122492244871000290944194808415592132082899178994275630244506373010654825283789464063696846145612488870454143535045585447597829885747502426528519424463580301645235854577234725878155614062994007102202614277532981755494324961439881296337926147306665022738252028317835163664796968900048840876311743443216193244434501519704517844484592906446320264953440311200119673960357007776089697014739787051597377870299752618039703006650738123353820755567290901338809549645143631621021100346766227811049080986579745544419409984464758373922039000908621832380368831945957442329554958707415848945246314587465320545646323157195229487255714837732261303795969677721013675280342072588524571047602771938365998930653841634786810024028581112912788236352667522228672124551401691407023192007942484718439787652079065002474563980986563242019239157886016400503899301671590879637425644869089560830487308855852272274272919503746519352691581861434196104181318987805385279149890980838270459060331973466068017679000399430875865692684882200212069051287297772790003087125185526594383413088190952865173602455151824515037557574392700985710060666686672350154153368973645471200803027108874409816588165406442561759499497236890130842841772624877941580953039414984834417410321804104645088004612366593102256270487039642844953743309193523055716405725616960144238322871248259827505490295299398183365192509705941519186913290868605019268669026294067294129244929415184170508622473369987094390436395307681602594700114594221921507683862098345670927920324509993188673854780628259588762188677125717123454952383983698841963504039946982955219356756069836603955724071407977183901150299595939558784994393118552962615275251612401503392319946356966662484132107490893166560544042738080349493700744223017798280036277372787367536054721322351918502956908828410960433436905593101587344145804889386645582520135107121223891563875680417018182619282032235011671858019811230457793460655539918741576494762028809410921453741864595324905475469542051805898702421122999596076004306678125259888715119666657888728366349669018641250434400574934193138947132720967824593295616536934026413004952341526904469478002321944645028942345266432515259338737140831788962580208947215859755989684106036976383305842804756442552230373058613012330648660918650495729515174345190615945110126440258946099952258564547901802898411469205968245919864300997522313697068210965279325484321369181402272282324146087875079723355484251888060844720108203935933508809344625919852445080319206747842861486037961251039114448092043323928012206680170543523940041697020911251924022776681963097810637563218931180670418345458915645947152315403448634798170842114980245888127835212293916020865519494474373526819059515923380627640404216629308323446240840005258780517479096476269118481341268518788163688790556205000586534407198383556643117137955362996627966543251835267512099674119313391779635907300061266872042366460702905623706320731288104527021811020201068350193495297234640232426904943180067351129289346953853518005045007266827525728606980167200401872764334215643331472535254813026626342073205736910131244556477521811847777858417490406194421754045745903821128220233299364107594936174049081742725605606713109210913900679631477479733634381592104873324660719597766561264048807438360371703462250489082395393223835718182521557341068034234047522072896667211253271338925370548286523182665653141773714542128638110608729876238269932038025864474637224531397929078982500394615720879555020760595937403236787118979728145060761965799287617886888192953328801122758762115399337841879338430637744165823058169178727122146304678178814945469844820769293436711922705568580376236513206920216037062421902605587310091452753356987237923033294281596625213058834361419824317113410041422826237093763678439150328492460637271542389375430067309372852084058902367404146266441118411918277757005282813432772825610542565081378098200056686390097447185904765500464474720046017985666874995131643043382052388230065039357751003902878108200249126292501391517573789678450700776696240768913538369886904830911793235734399036372115408205696480618280319915256351237855425287061256694858616954584827250325768447106221569797066253995938353535792875751468192664130477816107362363327908062569979021365220468184995814693338217977316399512147833595764530240649265431330394965778920027633811747033139362732831265440615751312136719958647963873081107447859131108069115367528932520540836060499364992300659476008306079188033890215010845033072393842103461142785895238505343471813680567446752218195348486209418483293158422193347172136479607129796890140132906940246904947382728166197411758592818752308632815225283731321427984974094954976592319584441643380427460167262334048122970099143205475020299352035503434259102673626047958481002303078373007042840920303984397367739492449203789713196160604284922575844372724847619832971337408654691137530234000690267180891606412260661022803199576983926626797212497904115361906842361049872079451262571249202124386506458587987637963599732514729189599529835854512483646555067641860022125138028292477901329166773151515549063344966268891462868229687517991477605522653394677220891893712588990883560328852603130015614598306486217678065697831507734046725911719489373554129218660049794046555115141958437943449968156048058204636258831965577101935206843457950204242255267214163650985882886923077792690559994811681839508282231300221584713203527394705566175066020512038033797164121060888302689334521656474672424908277166408277353881476229785305789439068176414098659135918122226869510474587893820350902824176526317247999972078117136446448124647212457720011066998821026564966136044964427672701328682867154279318988537923395538216050387841130199767440895496882601125045410333653570261873819643567922190871991873284005375662802435894260182026805979945985032580699043471518734141490520286980575852534528273890517675102638076216556573691876249688531684608328245189684909307378617802365550022226105711466542535837783316667198359976430294559074818253030423290415656091127114541743649957313560755951517799127134430239848489781096778460963881351105114477631115520954496726739322493821117877104778490769034838561718431828751505603414189539763025280710673627053699359739309727781942661407762742858217867183809922082826430716715874141919845701730708509294317445717476666844831282795873140921655023917022847037352346978074450924382750005012312408225321038797768835927635931142571802467824435717704794413309558081143986691899919051477756945861308257829160163620932657904831890251179643971672234760924051422321694717653910382298859193468095702151573169908421157652812262826873237155383965312801574187579098386919933719772882229936654637677013216756332878099454793052828528340044532997958366579432300915694964668603355807988348983827743395359276038047160328708797505902096911624658149019368027864382844847707565041020989353645349312929341121184165186342729284478349866944737674499002381765306186625175241803599871087009427313840185079146315836978733423084643453359694408947312710705286036217633393407452620722080269751875459067529840346203198858074483929601437955154868483066794884085077247578916154908016723042449657593570845311198340288270586444669839686335249530617332060969830527501810965507454476176320912096476600592690278705938908107677216747501837159115580700121341206639028108255048554983936039111461984660042967168029913539524364632099839946739069487469759996239677790850839519907669818306846424965810608574678641177310786587448131834461568165166699763690830769262787967918811552421689259691482929511838792762980261030374079709978989691809113232012894657942310104958263759479301522479877277537159057644126483409904119664450250742732641714170849998939321728532871892681878050329471851651362062175370757185699672460595361428268464616945891904949527849422387825171857694761231313940809061016431199006327992935887497706238719472689398515076465475292858219175800591030142395627568349157266594391924060912825601821961060415537582847054191530082934393559657459027827092844709736184085987012768329554425397485987152532705853196459094144848694048817540042976594506085365943588333350339983182599015900921327168307760111111090198716165541737267876257116214197415293748550137958997570408217540510364699005640993643105486625502807955992553484161131033340734984401309773520834985632412292974965192721773522241366900722559442058641068243498569260147789021336721652463795734372515161772895115439323177917452026934744449076335430573850645943454328822250244169397996853889142617029745063165669285109877444486506831415150585596257675578268662665581819543287099703621264556894654970474242106308394759831633664182260093912497101020241981282538388102363437170029454656199836902253444580964910191855753137783603398934499927997658700567511475013237048573647082661900214002627950814715917481180266335188615464080051265170512814774971010148063111979782862061318933360949595661885724613458470477101437894833650652957050551311611642595463874719029537618448177323509007314661609481865734973450185806754810430084724550312501930483435955763564045511629927544189701114006367661267151186812883824811529982586696849551887019915470692267916468926313910815036490237354117217795188640396780621824977445138714102667019214026920343048525671063897533079986375267895415708253475721548284746614611717646699680796255748442677729080952355803241563620650767790349602025064571826735605244006346533756908960678786794964645653157004625532231680468124611059666543337413679644392780681148724316838160283268952971929647732698307419408121403445322635785493656832322911351967651193785232935132996058294560674977435230753421369798973920440038708245871790196467990274678337870915034627165525063308484426842263868395959667725259674505321149654890353574686534005787853653423471727956153132806023494596362979288100409179040214505745495169492431365889777824208007453434656632553887409300430399533466042343453850527720629996066373962790795053123663454992833960519812524210877115745273683138713533411989626599932499426958488761960285076723549821799209801362788739660901242599640536737858942436938587410083929018095890919206723065544386127911297281505226612984037161656472731226501361657352886660967083486581930260286652556255185039419624466746797943934844977640920524619691673209732682139108928796599135811619348895527461321608554540467663410526712090748093609088369426921977703687490047241686980861810825487927259206511032594588026307297942163722476887236670324098438253705444004020533257737090225725847107903182936010354950050522005703005841984393123973340413361987275081136553470305385058961653643972087000609170368047169102554536827423254315211425710215125370158104149054281867427071231889173065259786377781983139928535552040244086531487954806351444801801184310480154003092630063598570603209801376286331453195597970751523188508785660254269430820957277348093076182783708570399672199687725151862282708691121195524350140288676186997139203873238597976374373507258245648086682861177642301538696315788465446283574308342508011393334800912058182297608055832454656331895781791863762976615471419781724570963488054646502804552628449347840626773151605805482371714519877382427835524138238969008629373633721774413406442315306800946542589228181676165462729876333177960944127658951616665169670612977546371119633082029245709471158769054255037281473388238891838241132826113494696318937078972550226901275740193215945275671535757672793617857932820107483054879207233731280595178898138588955452620430186814723730922287434684499253161888239209516772333152868537830996180612919873392220407637177810900624880862841569387073181951112783796323350988212010222160771645618596823501172655282658341385946686190288660088866479763984680669774217056377406621704635542768506876146724871843982009424733117896095662247783016203235539975802863841132248965895245680013990917449309076398777657963076713922762609714135022772158177560177363706666054272449308696293124432785988395156852613973884924075977330170737341908343451719057076958036828628520203119638266430876682571402039289114246837069040834911697421732615522567690973642498020365611483794647796496080134198213454846746769891794731768562068614121325168682455270060447736572705849552535141429421156389697315186027684883408924026485078089959402793563132849181401836210143555063404975641927461625244149210815177231874647393114558699043911658101499849220149242746805466143040538355253444038042245192931198585707780256352161934728140033176195826858494453296906375456986072697213562304951573916812125301275204751402960375397054077169676382676939199715319648972052781949907340593573760091685257863038809617780795618255903529761474538720432896130745881867223144794063194663896888799671819844725844508536821294775871636277237528023523917657841110774053581376670944901079967737744400774817340892943740139350441302390574558994901502247558636599484639688509221514062606875978599078753996445440967916403605425234698717963769172871198367753231227383058903747190894243510589065772995600169216947716561588926740684593128177295228474635205763643613066103171067108796282561531018822425353270164817844271223431384866255846959629626377016117666898354054155085672536819074568321759966137515904637268345686995001045130430047286235981555253845854471600027905991206883761930075190194456671504550160327227599709330267105768197173095613811099393978167584762977261855339977599667742194437857061348205115406739582071858324142275623769952700564083236351787869517851646375965982203674296262003494259058597734260774908805238033727676593883765868013434828134333431135988843928488143653061918582739626040499843837098950401766188706575395745714447193494913329572169264439552420818902657462847506036251696460700810222818821613664783038326816414184438236772976224451641697341907977232381905105404195891410329885422559833546617912050040165231286222289438695425586570293477964366525020587350538469352909393985774948373646379463176160633668688761130376719742677491992251934376487114393058561178150545652338038688694460068227605615559818955249649520656979346017480256919266629030039076697947955014600252698048109012371259546540441758300772300503804701616918858436187335597059319995951816668896785740906740920221110884109578852944796667856835984872032078546088317817096559961926301837072663802736031897815309037913884095424698966372370858773886520696905959373728476826585081156483734828105351757059097391363174652529092157555042234367674688344474004802155140756682503707150495402114413079263019985650633065619321366029906422724779708688435028383078033674203191705818412857993963585544882480999796599265956953390275253365566226599833267316173690864428040115500523047016585984418069632576406085859869048122046302796204352843654312308675187354692342081922563189025424911154820151292701396885522564844548996646066782797544588931793884035675470846606922702158905211037112027151156901339157351798841758330171963215089745539923100405910180234686095016509912518094076334885974791064969844583788287812382212621892509892985610520405546948900852897220498587859685402128028246336204414086496577906675282280916044999063360733074398450948815061814330455067634819224043932247654346369632643103316047705053135581310792885334834735373019417603990957889573231132053562374469579341174656070776898841847249018117187385097558712278401997323863507293772268832477587731231703289461502607370075931472976724294872900235341712706531155623129909237036120320458594470989012606063722936529797070310582602061416237934078066209779794411479210796900025071318077406105846221628202703846200016079575457744225510152460135336660858789765734808230939152756732779733360501509715986572530775096877988577023985757209686096356741948500401259195420501789420458150595777842177021615711255082293801176435058494569789048899896316577498926947196975078327156431029095188226555416638399482780237906106592089227721046355547912045246911339311175078360443478404453196126000023890966206614848636043245757187221527319326309788564587332371144259928991012954798841336777303123131243241062976967662581766152680959749071492208012435396368597693677899790745773458811996974534156431719429424049035418065921097255265084995122903609780852735323513311595097739297282981992950138921352830058123324139363271785362131232964138314001403535868174819654522738867782452844803533005694462005767474589161226207683054219942320434399730131551528714321852181012032753439089337385096422743318939175189577606148611235168880975586071784509629143169882723249052557884992365189610034021119439871210121047579850696590411134377443604501838979628068067835217531202752273146119032657938454339374478698576854058912807515370652515154790953332161456878384999046693702976710354033390842037977285577716305364038614253412833092408578209621815711372560487954428968552548365075473929121983757787022648266713255228905726125718865059967514012374706019718682336636700010124964957639262267852860864898553634197906225716258660449222717019879799889147485171397451206489443385181941521399675889376305974206417985753424621453720792933802744229203081777450138226448172940089342703543403679245953818138646806932430320604365029971980091516038675354145939101636075928662672596472279654396225695396152975283756731138130833509130298156338987308429379160260538436204439347098222215575371121516174185632409644347076812723867618175739410969944668667782153914864865344682471315876666884677758616233819358182050733502355084957029390182144770805128552891579035588533538001880363455907009726668566390334156484958713035743248958590314466389111520558139697122126981657931705536200367340784644113892776473455872871257524404952559369331976449005583130749298736906535838978443689303974461657198702749911204565353816783999430730770014994669441256765196802710786260752623320070931232295676856197844335467541145371573283228891462275029508718289526615443272158916779850539637158604254421260837285854810282902183979099435926671742510346023570371235258392402108013099887520334919307843532843866633748190205569089222015631551208921729936273156360583245954220402764447782690894961402917342052662317213155121549227990766968259089736605738363871367965742163423533628893909212959676193099346932451733583655481387496647349481463009633316350331392189540808666023535419042136227042136177333181339184635067860765821020089787165736319699940017608556218196292226100352083487655522631177937064234661252029351960038297498576624865559391807484950474862379489574261978310503490939457344193751553270688245248066650574443520690409902289556486834383902774646447029429263499207185133847096170302641397201290594135187027506266673773762536476016526022945764224026082235816765987178053275227471184786428014541860829944470168333019335563506603166706258239253770052365151164106576350212490996597528270112554156109936592060193827112940838574126645936223573126503151687688236798615635344974488506473074282282945029835656245705569750668508674505143006380305586213749754635449052603882267689126997573258954343997082937511753279231790877286814298882538167786578172866146399560148572240704007778298232141467017649117012448126847461467224795691485493015939292653254584028980182928673775708178748862661795034589846546360893950451871873438011307954716862355946201923490199109041415919374376067719340567127367836997217437546385885355907503461944949280456662151928560929107885352272553439462749038150923166975143868919009946061376266762015609553697306116088780499248921694728612834791110013166440851715432519117236631054859948456593362328080976225201813580923525138400619237143566639553951626380916310241259015779756612832262224624975855276168304088561967831487495196390843306907354937944407008234120204620802578160459428277086355644785301234518633074010251630276576751802482088483585374807364574240727534264880749583814369592564161652682518498177753205433887718809420053344759760306875290356587917416873198526252423439039382721077985536225653019504381837921590741233120382602103034969711534644132086374956287118115607332507564890949252483206712300178559311849947051379907042717761625786139876793673807796339646686368532591498172071486328105377590683016769651268025193867814769497114927542323129151981501346029031313629581770194141216205961025323191749600595316469809690241456647267604468331469358617220972701623465824266764568294435633490355165118142182753310772396182766069029487427478043580115566383487814712608770880408261337990727329519534938183190806615495244678996163705926412564849874674556817066226314333291409362791002924220923112366087205988122501806632623400972342214222466396058506604488528267204090128730224168785558699411320421695883920211093829893368759691446094039513286515885831025649626795329179776280265623989296558032954880895175919433029902481113270923247878226108774899968051158467902369570732238421252979790660394002958848456385064782078345528245742827765574728122101642019694409157002744545231288977400954679901301504945789523844187673799192052900073095357032465375718065600781339162029687168990308681123529786411592136884529323904706694564992023827814253577691629006035757488152353281369559690953221323780370228534176188772429755144117346620991310182744991470812307152489211740165450453884691326166269759198855459855825684809976119722977163329924218145760959936062781280758082727999092428442894175866654590526244355637832425682478350776631974374532600050433211691531526460391982589219801840643665869131702224707340428501827123291065770363784506293888537917444515074401977929168555057792317404482398972075821634630334843816802403105077459969421246847352737743201791359413228902734041278525197918602614832412063145432599429600093185280057052436113935735118873716443568084153096800649678056870371136935910576030200385982215451602645374917836099370955398927516723708436736860031416981815623215608250580395938494267735109691256441692815790274219120843631544334670651192321069905655068446891134337442138512132310088965740893396328463544456690824231368269617965930288442884073964968046986656844867592968754726292897733771550728392298432470366072814155292309913843864924833413404228563729292227806238989068512248961875947802927762482864439131766613654721419432326168416469073121861882924495714484462916340006188406604446456114720238205713405013757867868374045646993056158698472558528650614981207114940620355302987497862646732727751914088813475489939971183149181749738059907746321436494185721060288624896712844258900672294457705900649688577212788674774396626837299693346662859593820522185745151002350497490140990112465144279476237226894962887061117139524837899732980670556094147460986542723027177339507571594887488022759399524877848310266913291659466837030536383862351659868035840197208858402213448200930651850957408327286393872113260044839402552187606395290824040127258086446020811883873004980111029157948576816007428343347433869662324755920111648336540116366126889987543755683795482267833209555740854994083116395188765154731217683997394526198695381907537413596955046444364046922486503221027374927176355921153873045903823438625772174225380072293928342795867150447676615277244623798730652805472302719546784133241010554669306458314867948410548036119622804365554180349420660567030042386306908180161621388759261173793741078148162378153588848144128953881003828519794489528481752299372469495110710183478417680616025913297479651303509426463577791431035164387954343142302900364803456417693260947906914413506974957000211081517323977541836971722043632324300924288688035201061252923317201686634130152857981029643026710064168776071453588576088262876026340192255428499719532260716498505246835498273648330728455893367432167514298559030702585403465407069560406759209347074056145955172434985727628009698717574215939133394968454785295201805082436954992383855240024940674112779350994882013989808604735122614253254899494071934333067009753160505151185523506297475962434728598159332377437749794543560701386641529201577387103087503471738243626687233975371636387573990891637236069502030797353171757401568826445005460432793226109632469675826932033562905935540504706155860757935321819856871810396679738089183162022760626601678942300692836864757494633173130194226573336223793193326165962216320669730845969260019455733318618041193496153942559655666721383452042328973787715816978126337582748825976433928085387745773512777476708635185211829925973083924681164613772603493930404460859668039828405599405086713619008591225943768463034788753206618341886001947712620700815221386821926552755687156784686434891524627715912408965594360477377518356340071104846618318720838386744523005858509215587974675442273470265226565017827669668572463523685144334223071462207300208696350321235722528152799676190796008135770096188510081927705623466041075389791639945796521952815913810364395051129267051597830255911806533085962399919172842850837926932155679274974777653262500786776986947265938331135252629653248551944977551465674891699258400219299517429604767606390719666184977536089454010411615998587912200471747980265415869270910747367387667908995527114349390026249628687230042286631400504040444441665604419004420717972229160897528986148604035081108478733511923359709636046163275728562662255065872771336099876940736817491124508367411027906334560044017970702116349472155263365279318064667823722479977006359414787170366294737636186885534319168365023908786310788166658619695004847535669481704041443123188839060321086447854002544533463612578470332472652563177034763219059282498595148174392166001305360713259231911116798258423157580796508577154648331394675920990118995534493817432185982482621558918833484643887447572200563113434338783001584965111698906981134183846642278676642958860631331735668711132976993977454832558747612122260554600336766178311418714784710305976401791027568820121397323310019763273131627010705608884573956241530482043932761798300440605591095765928688762984919499804032812767924773134756978859061223226500532239363415480862986847235573911798911034862685987499973039910462402481450108839293036405913515870183242169649934244795876105474822979709172425011189901561023613030994766357041714456607896234396567421587633065611863550277715302635575559295697166405649245086104159537000948066116820033368983588979019513567855548625795378497364384592320063049732417310937784481298182278853770747909652639563421998282680143522709711321074455492034207657262190098620982560984497136211982855393112389637827652388518178025859255667382537035240571697569106700506192619285492638864151420519568774807661718132427509623142136445324233240946128916442907411035144883587106909834751160799804441619187528741178727442115363836462916404609688306161729449912424824054159722253331302503623038526349852042503052179149245418570140486015390688614214652150182749898664701135682962231721819401225318601288646356154100057563558449583457798551302045270613405758746274248049137916109398930424689639788163035390911453833159668314384263330097130347649947744926044658252550760284199724228865228773293821148027728808702881597754935460325896318184054373274534862989615233702719135108341359669711064936321027316933971852880599724635462284594903710973296314862600890520335014576421910256862805511069454472026802837993773582559100349287438918467653167181655015668195028749215848579997769659333560712188787239848836598370059577642351437415165065932905533286338333058589219158084849326092108539413082113962103862358030730087185501970748256719737284396524991854084267492568897044878259562865666307022295448425134659842600046604456000824666682739639151732317501990658362822808625190674469502510360796758013863077536655669430063385593656970083088979913887954020563061922648454211883198152227812016196872877135422251307979072643386962128915109230335122798369537508780681652240645961848781703188859553143469369536898289553478207796527758326952779044457507276538270582880183665024754701072077514942224454960689812181300809906340538377684120145146079624088718638783320814426469540897555876173886490898438198126228388695423168312390878108682824648391077122150775440989201646018697804099893841943064170508244822702910708504977245492631682050247396331031548946880239353367341430692514180401104671168722371749423551019106527984350103263054716629405148381603643660625173772658898796123783190805666260431727687739704500780942929536373707681806727412631915616046377356594650006716694713412161003564539371042232541589985749809268804307609031880532652312901365356925800347265997517519353376528666841664964893148002547457872105175007748214501780905899953800816378217517210989464638877984728239715137105335662082882902344682605234123360039041990191709988813535545393549259763170905994772190962129083877800938661387518410954216595693709793109477469192162699829429606198699730192381844870511012444146642870352820067504207410128013985383634900027762197011273036226602950821199268994624416900737205235973210697155253323648392954180493626643156371757541745416545127517192729845776053783145076607553195217512780033748308651413691689655741058038189102690459413009975987381180534854627520057307959292210436566029396602672982904373478645783011652863670617796565604389227273809418954455250761739467026614561965323921150713325709623475386168497223367078399200338341406976821417674113539432699436719058422791063936797068212438748478683675703575357751625338035905572918690337581089100369269213753240624718783941428822080473621873750207460894131634185476093781621466749941794388644678927780484006180290667996790232955373483575741070064290908853725434883695196941045305750339002391800036477166258209420776677068610820583294122024744034044607290252922835794909892613729578145179724820658081506835985455599459423756254091153802635658563920931453318585302528778647837495126868958019783308149368296562789766074419902991442473834483740401621732952263242506836034400579022003244017389005046063065815829226271384476061466236313083703388654605890755890269748019099611164224191403106967740657916474283260914076850383541902127949514298586343593918804865717002623684115177019447529695474151799825576627613112292924044664552007853862405346669379829076815244925131848485645318665156249312752673111469041263848373106081612018180541813382154734988147073236568720427256789398716981127841873361250181314434308085444163096410341848556901489939021673286377906194730177677664227713102909033868360558401861365350426132617393649999494128638500769684473528008187174382382769726136762667534857573682141751335329070966794975720257043287980615388588793382598849918758156633741663708135529911464081118912338957523973615082648607413390397382406015330731387798258957059760798774052841697758035596097958021034293636037657132791962307840761792486753837230602229050090410247122959437819702468008399856666786758038098698295918864887510501379713884908040723474733942739380627702923372239686572663155160226164635255795392256220912426787162004206036496385380960343210981021799112408325940661261252378930140415214821681640216899213409594942167721621038972042119903040504252843657455354990854695408147235391318133837151719082353415404523428531756556878567290027064782713557890692654661264969544412858584607581395138074289182577693201228317654335005045023191595473222974933241251011979239026245546967314905260784751895794731794255165555908128715250543378877302884941052641954852646216453759397618891058609243487865538487326018963905154186010554519479521717220385472116140471319571560504584514290395953062270339048434546888480686750748396391029932988512167824910912889447885246525213967724741465308480333459078088513061497864602433367666705658645223087862111650110625260295483955013685634036627500898997169557301800427199716547344550333325040521914313755929473586076580583558819640573199124933906233248733835390152839291243612347538793019455503547213152426351528160053183148638764505814833407076871534836813267149278700177379792184082319591510502992568241020763642248173106308293331479703620948634082051803501353263231020084730916358245185258245801505376647237842736066132515137575762583203796261468676445405351286725022677253488315211440457262273944870772249835829630984317998356049998517468431507423888689888343062883225392401746325993386871200382146599771972373758896637844676023516108516450055952981097612526971913219066542096037398176719516782449666711568471654182257747102684899450931931631580597981699172317717545123584111485770932089234816746035472000922359623935026904900325572539538264234224153996115649902416073654303507326755646206568264198110635857887240406505698167835306217056875807888024721454418679033227841522093453483942983561781214199727842357909278747048085576359772695409344952263940870701523532682208618713747257015619428843822755696223006447731586850380567560618313572637896762979180497488648851135395554340392958126781004232267596388477471095222139723810663870751140832963311343916521302222373695958448293464141256609955952150288540701271385525361935609671006620759297772326943070692894456674597927827395779219899607812403462131967806197718300283942592653840485788332760470309566054384113041670012927243823296104825813078053572111728462312257136284141482823386668160890738805259598253882994547238952574958043778432085870407684156323058515485463218749726648910374496140727467959512201672733483583381297903271945083570748296861058524503573730065340050211694838003061432911662124942541513126340101342165664545948730207860919609836104667220925492937574572024621545418648706998763708145495864255108669242009919898212326141085505009559236540270971781120159423516143018642659833718039131701128109513698815499328795229545534487507940647182611495893878286836418315026443633392583767006744094151365304590745810453163027806358730064580383624602607491133365843829270079829315171343935817787983428315343976218001511484856342491293673124646130729188620370393851039377905499372060945311573871471092828205678490210671434446891070491581055313380406571265643796937478358519209038661819232783236994086035540928913539705437646730393282831275828874400754678868913269482195220361493085372874408565693959820867306757384312491365026748418027794394602990497418169702860959105733467838903507639810489110026098273837729536814565461268076528142489738027741790121672922695427191393703933441894601319891776082662842853068387912028755906617534314307009973279711242656350532419089157516112908445539153061690484816702923338875559880810621420960453296752105098292998911749819955095505179802438508037215203538171876429385014830389413468271984321105877709555864976918145421485122955177592798590634407621895404159386545284227586361939824831349977124217231151811882617848194003773668115032955221149078257892968946345185240556356504947524135552972182822013344157937086315109941665170381957140755039931311580300110481113633262091862139763624932480830212553160529609653305966933715043020694969685275610475517550200825477300212926913378240350740610537553488139838764662869409318806532512594107148692326273106266378114407114246469503071960232386765936219247484034965486691122085495083468391981283795997960598010560340452347937147460039229767656621236257291630692405568813254763420932906661290480068988447135635740871144770960384550269199459159048473883890483729596754771924729968704761936501817926438585739851568680172295579799204201340081394378394885667606005865328787048969695752559117993536499276282169147527762850051439798185056922980291588727369718132705092321101458508675247898866199115470710780001287914420930906455774889693738119178667219522075365036235771228531155727144790463464853798215599861317964666782473739438279516205768880313720252517789300921408309827876210289145979091416995978876778488466404838592009394619906905653263691819419568873314860220218551544810498126004309188639363788754995413394450363223591606561431705040562459309697239460872731134793528830637449649348240405588319215806310312927155845257479050432484888422209749399852817208564174460656855782624549207452193659130808802861035289679220338281483461748012925033622424958837862580854628652834670426723057967829735609872424784004052079629961505821425460852911267656060091063914333326028512340211968184519127079495696661022877909264135898593168980194105291935420036182888657114814303638747533021737140619818675662617580089329450498398483131830959663504790714316823430843891439883586306198174360589199397806038923317989979884607583981018352519771164821641968191501437080204897653546683108556844487972504135246361938348463399104475937313284681489638502880298311170739390950541578187150615229434098961400595851933697013020394281201330683786848358021715254815316077757049453129853194467509809540510764345765661874774926728575683447348122874832728890628349025903431380679891265477182575048214295279471257220283128256419733324951538772866981459362172095579444439927452487542723051926491084064024511478631498836363236887481013937524629597388269254808323364621620747847562837096781960614786778718376356135544146899887067444434624332808492342092936012727802390090321628464597135786206213952047038231904365409203655189343179777779705625001394608534204073986567098569211004353374933453265121355507138798102168330798439593557740317127564980945365572702585383239908168696685793460874267307258394511309440007763114180745354063171974768492338014376283270137094284728361627795666125742891418722846305547337317142984093428380850651500158508890589456523570303121984770119816117152065500583609786265323067544447071188938565190913684367099595515591706798975285570383063482040895712767412789044161394075846044632670139751648014857153530597406553759719536346639584900904020329666723537888704706868237473150697847328150709209171506927288385180413124006173188545609377053741262655028779360423476437001970439599838015078224638309040905887799806837452531028541761444573514189816717201841799793988435412163017682417886841186183097441829959706334452426615174667858670403407599411976732483270646895142530616006843317352373476088617432667507222143368689759233208687641765150358323695032792518308960322839861112024433667800434921819755291290537238941465696397638381522437244076107015585900314778077900030697317949262524367150963011528324576004280223196179698450136138500399093623597336951105208864345330150938772998341614832972561156256177073800350136186506344307402485030946710286894623631295448581577182478963126192428213618893208599523771287732741252765815606652251232672625063163262834328131797464557478022695731851319330644808402651217065376634416667952456546985810838259183281997613195174589451218223042369844692233301847007111551586504094659730313492885230492460681082842578062171357082776163741751423208143289371049006740463160735464451280395455407686859975808523473030406258331707173814219419394418787716843136155839902955018223687935096701239996811194336327354844403691366903391401523181181775951899871607686350325098399587062369556305995500496579746577147298634749125985366770995562455077326426047909501978414528751104912715839316005440204071206801268788626992918027496973462781198050332756715031468146560118813395246939194266000516136456446915497794216176514970935082439623857749506855240045245463332046743294714674915512728817386967823526655457790583616638956546288408944199178909323281233230849014162554224320643813787047517256445596147548701804776855976972745431792841901292320782969443820377676317154855747645917942751489236092691249869469248548741365613950280950712439533499679651797345107522170435192690379082828060379826072023187036566259433024684855959163999637206376409453614613246343255102638478379414626436841431465741499063791070052021642794870665587332784621768546662947746754638578061968499551582420570274152939899692497222823372149026282834316222318638381943973599512736860738241944217955366623552495848507423109126871809878230506352034986573260852672158196966197498016712776754821344255582022635558669017561061440018342675437698006947077734218613889427404959134125084314785282955079218922945944474778048473578626145120667201530506502004375221848853051355231125726397059735792169250209827527348116902407988704508411613087862817035863149409698631430683117431280020010623975482788491203832283502820039616231881074009700445937058651397572754533637553349744174709684138480647392097028471420109726896908423235926686411289103958737958195624976984191471545647421281133243904710816718091564944147302057485184552492048046430898924939793118128911275848848077980293984895853472732198060463715040051443211229697925190186276516929776947323021318857321691227909517435384608977535350706693218487840476957209412642434849518776056489116686717850318062783099329083622591241399810178851828818955558030201774961595049054456113476882518232357961742024187119421401549600309265619628477607646873162111817726269014228115590716860983229164175026312507269726935854803139882181366832014706199525482341363958064856609732918060451636495061934016021571679615960159253172984838548757297315515268239549500770917654208584131333564414058515074172024430891369983303244885207899658885885213702625551381009359413086878758697440898507072651365106735042646571410162564896608433263971245931136161330277608988988859522021625695827186142506683546562656928974494408687030699274563991654164031860475349793564980569844619844864663222879157451346926575379085081941508586163151835549309580563227595383727090431103478349614518099406593316360712461557313233752117657055487567611690997358255351992131384921217630238610533073987522073984683712892022144702441783184882084670231312390648554610058168137534399798680014055961221507114811044895524755574266648294014652776292745747955424316450837224527965402552283170101091012117381342875218557727742573370537638529764719776761055833494754003979097450021313490619445010536682762002710273093795631276106134818949732747970628542058405117429064518452185426611192549171071037194509149654810601958343370496044290672356118166665836180127795384897226249799874277321527359304886935211470491692774980207831871993840039095236501129040813960642182135132030796534100286510093055777132602331664753050986423017116972108909948297110280137937280156403210441662138174886296508011743163620449855580778639156725959760111517839500414542771546912821994132660072647442586183214533975260222331058623318536575640733579487837199409319480517990281030358927738203865425623082712405710017420827157272408064693819457237265351384522532412003088221180232319816591684647568726077866025198630307668354906941672269290449571016750970581913655479619589424140046796470515168105829982515471613392313944171264031950283755270365764641685186019916779747161519992145761333594426909830567062481164042639762335270379438842186997387285212961053663893065165354855526727038664352553223147850874272406097704007177794179941390704732709664496927008175831685399974945250812877714060881866115932393860494177396159539858030693733817177118714783238047842980956626244204806660076733759782930133994546082526118549066274272892103024739558525360997895062015016393972326567433981444473049272629535925999268448552184000947500781736845430244021860948256060207252273500586402497733002692322983475665888505432668272186297750949554045030229264021504279651286720254355449583818896276663069399328998221398417942650935369517389116741602783603304480922457376116593070958863675489177081303609897408495364140542718349658566253757643450958592526923187487993676943653577301284617366162626396850183443247360786660174907010938178694699308022837693343403238166483878248400092036227116724074437307130045476043187348218168596731227463544683832128818112894748403382454843747582808641050075532533246743525833073488246068116378670835662440787554087921417565258072981677097874932891693401577968628532329491654069958955597066346227069685455743374156660887713468013936022830633263882567061177780245500542950825195264178415558923935779967733406236058573688146588638659544870934075745046635856419667793064031136864045829626924364021186655641961361393224410693434764434350434677820128988196742520226002563029141966891057187960659478902284583073172008672631570977393076120018923110875271128128002686533913346500875342244739991749660054953352014017353749476510666022228174979650838670290049141191822672315766127620256596880856353825509501508842962169253400198668695806422856269493470092428730457999928955415672484078494042541391669204305037419993277361325067406184130608756065264117459223629303694010448511339954104154266959641174188616683152358008770917907604663239684560257362560499184308318188225865640750834213556935815119118399931248357716303282031049195003317665800260053614897550471608521308545904527824472472474417483016443818725834747153881366929639399219005292226704450999432033657408954927542131939936051341293608832251467774137452120902960255484277886094876449373388006361524990535129010126257270182709951102767266271035524620542449135016180621401321449246526177811720403110976700277478742725596909362635651487472302605700949112402776703305342415157731503954775583265371833116788985046774542300677334354356054459559613446212822250382195242992153951279033643810754194863313581910183930547465862037078150363437135860994005094397586368461249310597527508424527265024870022459256306537976113947518342564427523211382589781516626237013518207501515028200167948959297765219186877289542718467886467362219475035090846841853387716018661694630820785576617255032991878554544404657589632009463559597289719829188295158027540260239334234153089393148998984490977163046531503821091995513486800786975153999541814432782738481116371769606418423743051639682209256330814708226000993084536391662742833505179457642574773026839951569117357016786210948814235124114797297587448370480675971482831090548726143024752554272272700272647357561397982439464222756457297667742298413569197180985736177781627318893239767468684804002355697149086072897556267969279968919448727138323502787310176008539717517224487310343393520524126820216244810686144123512822807990000178285821840247084827982215722433681604406463421788654765162075999449541432906599276581971715616711732854804903178939929856883867173423083835230663824832016960649778001521660300428811496870229770821374814123772370625578210435980803476319843750812404928142390778783944420946551608585050900280277357316855946265046913429959567849830599936291189158487054651431969605499304787586610798789782521971673951119043353653617263849724027321748558953133932167796917056594311703691948959225949415232031660789394429838629077925652319891972962133669084080442275512756555434105139137286319500477691406538405007669504701445817770842058218486140818566016345964032049921709083478962009801079700228626013554910650385075676750154209634679791759545830965250153950753865427138645954535061724098328489438430736980284458529916673665983484040464087384318106001730924081342023632031339040430043494831895774480304894471248458672824604264065569256212826166369068738682379239670471211292315408121484272367575289773195369791526300102878628475289518594820114399043780873218654655921632273484355386700231244108340488950375861999383128450388641056120623505586127552000038709787508567902817067321231483927956524717617617949101333427991033503060669288401992127566276923084230735884861350578435301565565152258471106761064137445387624823306340477372695375798910330538924200797655708066692624395435294642476390851823416742400913375259117485200400273523898353689819402918338848451120159978843195170065102290455184679118150659162338511436927499297477997979456703963850359473345558344997201191094984357560653507334347286886316227700763343359486998065079311261373262172295107498489421867364833792019443247925304120542621171893165809685841695605388449529629863069193101031860605842403831105500595888333562084302047601779279423090988657626857185365109434497299658911799828044668414217126077374814196412188739835443673620956007639933040469658640653131945957850973490715011683923289528510161145714705500618976688748701143351966382375305936278055303218430352732336196050082592413197568608240519721379666993686530701371329053420122566105945015913865033730206898117322282281957396777316042234278738821495410074671798868463221167510711315872606488825896095612811907647363615373755328208438190974960679297105868627003483631244047822464487433445979312152105819884170238549672640613477341263596225603810324107608543260947983831204799846341633257748895043367278417870615497896940252060404731479326885864458171106661815610256564398660050835224278717194180726819305552074958843050301654034812912824435698175903455739743095398751994672141934789889987490701151347266172804134626697370035138987644487940077299525571581233861143468676868776259792619815766895168385756343395474443729837077639432332864142889859794422240246912301344182356990292821172992903771626486537168195837529017367547765612045502071166959618828594870053197432151738778774913447859712808312443894700361924921489367273941492900893297757375536583773032057254567363996403639824421710719533435743242619548633814227038002223143039329853708267633622828203360703186149160694393481774477861956661196474265486233626312612445835486988906199648700482557283855964650195388194587739311755633549171876431554466265017698118753070396019905531971789285014551579935000021852180145178321654300962486799467123476567869241268087169704834102628881215437894729797997174931362292529552624625830550091886499678654578034880086262386559691247764667562244010179398627532479401184437563615728706790798110594608957530132321265217833446916230614711306196746133357582264455626369953516484802285364431186314124902882426375010433837311554246084801597036270174732671957581347485539435491761399010745988665452226896589537291262930573626991742700551711428336815715025898566256979100476684645795825849793038648722577742071538658931193696207407221707226812804593468626185606876871306261719614261383191198755135195591078060353643093345261820811667966462462953687095523686371525269356693524231095776124908249645827525382618382693949354486538151147277764383517771668949667413759873883580332105837102763174616572750296407001699205698822933162043465861224541347648949014882704718425824531654235052904729636261140857717420048503330831110378834503039846976229682078166297112201891426336119175038511988114244516746941434795313357373612399312490248858033968865147783728361317600521761507684279852460023780695168039805631286624122004075184571192119290770981312160970665975189235827217477657605198823312292672806333557125423491589220728022474656692335165181391714809287613779793282729660640596726348626435654083370662906984270011386251749949186264061595971074931631734544150630819286753404417519852434979524196816543024933767447357690960438070285036252536284827930640037434418959588975896731733073739451324298716413734329181109245619635403277063475989137783542604932671232026921450349285818094480664689323215348235794943034871799507729651699640672997468143522534766192959199745866570509410936869345788589146752119530456119706884101974547087796661554087939234959484946689825592738848366502502093397147762124753828981980511940653400943410313811036455708506264919516239287691615099043130633335924941285319357903247580279685688292978663585602672218582712507076565169881791177715866489254808983354051963089143624444286186695175448443814921404283858121004057293189653266820055400802517093353256743127301988463038703242764854914085060100077374686175169306185106034332569720227884881112392718233092341351634617101596199927692672442827740503647768209180148814195358906796252316783195689443001362156735224523727601802574947348600252627329507462849167555284524060763517939386182108283891419738073431925773387597859484118161989370543041780927883169128710151339712630839450894191682277740656779773641140756239969487649208278944317263441510310701953325316377481310267146174550961866055336685722702971576128327461454928932714165878922977798890025548655172529833812813199796203672595249418868950175004826240171483254791506827326060117743642287543546513646486722417260304060516673145904741844124820980651499295663604565802789407155834354782063293610684176666633151971988362153019519028379597950636801716198789754918346815248601287456992430168890068667802971851976438791038477165959064799376797710445295023561002211527744673635990151719848401884744812300643595518995768373540287089993927012937308243119196495732430037815877146717381957988712087427460132054114234198051265345047516631789267905513787540332296747524786193508019587358206384060333869266477451678744963024523855044986616585203499149600841556016295126022771239106414468754846231656685553671402298363165999014834532841539749644090853247531715948490721576156694645962449468407418895771470213789321139948569891079135093039442044728589937787442792712820789537545180905259120602173811870005079031915707198347267257873797042144402268958403036453011173073743089542566332283523523309427052945285613764215707358285404749538502015338617623305731720235854862738358885465232813321937890969092844278387765850778340849594978417056226675871013326901394472641948643422922149684601256854146294798276748193999511014335296306146994965450388654078310439048939810705536444864221682169735334793690666899522865912220117612393535788766013679528501535711305268025374814731377786578882984172521477530546852016943934867535258167481568638821496843643718742233646948584873713769848247742587482951799089334324471646037614787752232508747211242746707661508743442635556358286157484779852574936066822762896601782313563259611893822023409903336298216295046155088595008883341002190020801782159541611316840657410775358461473532330737165776511938705284078167273224213769950654948777156314944028408477621771320827324671739150411914858798789009624086242865850191682994966552454236524920383923402717739711867159693485642418698360699033893572033104110165520309961776568504754936632712193264840376544536563323684993091867916182109615350620145071511745181412447482605479662631786620748758321170371797155796721191230704483687419193222338734483614804742161213064015299250520602436942282857012972065234882549880195484444600662946801631133100576096459472382825176105081805890843262299142318447588364641966139211323489821177294176784448368289361948565958817630154511515138729185887823658716915389374061616231113873139962470067465929053133563375782296712543009738071777179576298313768566638840212632596128116641191398405733977390234453593508427796927826316870941394763301836157904714974204339884493608602183640738721709094250003929074327311749334421679785243652742821884264221070332362259783283175135574733414814435030205983088557204158011510005592010609805300237699392676091226248512025783485714827630505064036795458082247948108389668538961469494955694384340645797358787852078293430903718596601158976227854542676743258105091067588332362354545306350282894205055313604938282436794277023674858767601593028007969564978625541113970551668690285240902684909252202477109245488661738692833922790718422975891255169980238967567355296939593342714347689028224819688549629485828060766987622317174124240272206275140469093628509280664880378807558656994584567600477126767121902198289417674838777707219506513193056046164283303495442043927963116350129338415893868538714155920794316117608593463167921286223411339325455719105580958508916338218049365718595757046148547914154902518577941525049132167798510498358787489542998752973742951283017663889621237890137479011244225669862201060277346340440897869059416350713943490513607618548573873430564617213002903649800507148544177063868159375361384667053273900011042651367702128344591816855275126584392152500452685620604832387652295736298861583192929209330607774709232756146965879683057280787410043314964785814755469531395530995510308991412230342695107944262953450761420941965052001087371799997639341724634608099712945200411554904282861955462735520355794950189120852069435974976281439344309014748065124867300594817958034410235073696303704506946832437490238712438572662198387301481149649452507654905850906596843164860099582985553658571099069826490105673482083891286695703655984163825906266713915336714869031259716104575470607025123693922505974073876892962238572384197119490068938819659634884553092924834386529568413124269000145832928012602080572966260153680713224538619904960754210049445534747166391124435627893747051603148362312967466574212758990255014299892064630794136570881328725802729684909326193705966090603562686391196291902556896395213775577833407668749857648590252230216345018623429506352701121950339804119752643185850363212453242508649266291480143411218968061398163760548298575163289948295060745066858656870096402247119310704860995264992685976179837778913768231704227348220224676795292744793477171072297212423555809863213379941854457434352913112567743998632161677313172725628920694376937726430887606438656161299529493144825531981330733657958199186740160766304425621629791735118286272018675876734164442913056236496635701427378020134687466668595032846015744638095466559943706277473982096399440905586014505414204154407689162017802470547617386147399463279809541930707213472550766470924364203213071163610112153010945757613946063692350403006236915315780138118677240695734481535142733166339783007357654881323764273885711292425116599974466012825445666937905558997714901254861786292328585418335703448655855388863910617094457412743490606402233199563406709221261188695351626221962429254043510218397342540389249313286003326948138021601670376491923546462435866110565620074038601612526370966812717295025194283899389336947091207045334870384796519231489795922395269394406850026797227786155010856999197847066005234506861183215934274843745746882905334602531676597425366860758065100075376657874258146755928937532875867451263972551098639633800221243295193246584815032492638225002711238134322064438258371913917446928572440290423024465957249246501410276741813699322440800052515221329604066284915038043647576560694029214583108453382066184617473261695586798530625301199934759283414083954679663248661910574214654354677681350617207802077914184281751992431368202554658804132217294457538753887793432263089976319113131326912152894590002162995547391369447052882428726775417137933867887516424852167294758610133739172160138447772573109136430338410574798468016607772429095158404000967456579990651760814676431387569107209235715769224737678356453656505852993207395060516823598138738624038811310484374759681890466557873169150602704853317816601839907806571876828827958971180267392576402784596014045675603403758737503725632908944216532316815443198101303635340595176389210533043324077632321178866751911036282309881438710961320685461213896339546838659978338113075019340722770084523484341019728998807193606790642127265094142097049789119164457259927029344634307638732988834574271673045097752100798322202294360940490572304762963207701360039799046156622504161536147803417438615331259929247937900474859741051210305732769456515972222485709630542526101656821852512244307568353738146310880918039402231499546108727166917030068614201767874261096655686979921700728392179754998696954702687818049109176071432368017665009871107697481901833049823091215968705891109697555624669130477695031707469809457356749316050880262970683586874616544962631552845191296111238596589547677440300157072059876102661678459064823101218026379989183431053362265622938866988463158462672532314367365199261046038300754925534154276657444808609464719665929165826072088928384173716208732867344647273229457889394503415412970772777825107446033948079639533883528141873343864852082067528378576444973429620232799954036096006964518610835508958242446128732552647542464555333722981996117202439238044434965035620100566326391354979496447543850621095321136268595788250977724339121321109070267028531376884160594563123720731252155949476054163522569101522847989884695107899886317281919265930778330751238831252935479199767001034669658509647875359260010765092879799496902408614995499662384484543665347349683808828248889447222319401969007610503842261373958426851240367564991011363074050308715601730006772922771341213574827372879734806168362748511309354034831973024838731960222502919199096453863069027672306969023570418967675303970460265907332056917758545831105165567762775735870522628820651177617642462588023100269391816867249611848154798502752437994770426359424264327651185736195187261440850878524152699505938766474603114560631598890751657303700774336241587326701265362705156979899246696695241959486215272762962876839966698066598090109928204157318403482800754013591686070012698853754625817729141136407863396033205199050675687044388647575509041425544148289967840998952731084126416289623591016560049587407181674801595782861720110804609303295730128859244778672156601738235833766711000646937286139387583079722684963325963864334725195802472871277325682820048774119487681399628833600713576147521494253262812820241715547395224891604019701843562296946335451226189925522306514357169039815320136909331236414929765180942907291805315077953538405778839046359582176751530696013226657372275539908355293076261047306146245576483346061953355932519339614098005015259641551388585781214287826313271596688069610135018379492387162927724102181781010152766750081263588955117603998346511457112534939372555966985382250881075423430944401656821497792152450450804387118683323757926432558591725986085063940862114939654152778535467134598308731036698136874040620874931437299470947506743624134768619878728684814349501314606099864947210984226437144388073687547683724953001399328142832390534899149751851965544106248836772340631124735608527573289371894056384054695969169568820914923215486998947143951211105588038140173173330460837881092106570207938593366191061444525042603692581143349136173201216613689200884506194316795256346287636938774484476381959670131570546036744675864544204141391741774794673844105009894595993321789586599786197770058368559908728113326339319602640762732494692578340847932665216079892944922290488884583715409003428828884460154491392398673874166898235829003319245472124175236109831074608510959918842409262065405107966742915417168210115793756718572425467156148908446070152272715746436429208557219116954415671360300077537767933777084576118083386842394875585760948694238739507970298593629803784850657687367792238467005552254591651508612304180462450017676787221060304024077652496700202997912347184281754739703573285107768418162392570989560944224008999267687454031310194864442665850728795159908984812135981529943926479878461757573194901573851815573370091265777568778191047840057518026436222760000682674274388837809428154080803973222262587620159449924844576688490098907375198765204060966989188823008353274243922130877435372014912286364711202957644892514052428794174237034065998025077565681343534620794862976668213215975604504619083919091229401789462956655143015346893972457298687311272380520980733363648730545745666741946474829784481714877520040485204467465117032877787884169848972797222056557514240115328484478381906972493859747186148704930006571468021488689278528305491407404629989505937154872049144210805421884454637933287119562363801999706443927867281690198616722668297411371297867017108598038403777227242385484839253484332104605182118512174606035892724756881072381409633499270643641474292529625250150082792979265570117427142031304495728629082713903747944333211797136909298082503011789582441401706394944218897743942882458385849628823996820024095432969962365546765340676952176790517901843077185829896002308338188691480078322651023016173551170580561886297653844362382556911890735372713504436419922336592959001623525483866036458514063165432733205654829681233877644195955902877511195874444681966700720729523923277630689582728315633502389127813447404144453886217239467520290734520180695053809017538016333583162889305747765633921144836489957431399944309038781566791101768322936465369261023203859540368297904723904106115131460321409402614104062769991586708696548756934701223421450918531039771378352488597593637818234278746367657479835998578609913637623120831579932299354787314498573657644602302598022719858135583139821675190744238984546341471978253235568331774657183607464685002760990932475619404307522372453163145458406225897014391577126016551555386983617528964004287371831251613429109988600427623976453688008114780399177683951101701001108079183288695076251422949495358469437572955866070509521356794848963618621069816277030982660827141750638917464391462403255218347031683121003996800072941966431681662213868274753868774260663425096862783449785299673657454937824217418716175112809503851797430647171349336663701282674262060726755078097062887431436482646502139550189431570563760720959150012491751074657729062277497056660128065734139437586872063819543095892887936008588965267182690056042169044556012303532713541115449970043805024932745819258405174437477442868582262773128397207033565745607756917229985074430076364459017456415270471057197534412671340818632215863728500166908845092330449349815294133526051976555942004903495901643063405778837131184114743795587742335279031579876199190046301144498207234930937789838669138918850149957992088766901008285715092010944361987714541181800586014238111959843881513942798544075730365991190642586728206679017506691562390222523268862812640715380209526182943217637137721829282986713252901856064132774825212049067088063298617442291109812925566968879036173988972228489112764364944634161613471146031617251654957755592804361993303884735223338618908028604894273580400769378354591662336253719548228804758614774140714113633736573143660141443089467224137691024044116027093725123858667699116126490772978529475399362591008552009497156764044148861759234517443872742271199877950335822676032125136442811748143542481942908987337956660959152292962131107130508929929565374775739026876883243129294521656530727911761544014922421086683606320016586971261287239121265730280891349858043450003323685309433315879060165022788911999966482197539488532030124035130386157717999775824524343512526230218834761073673977146216566499470146826895584470839335696395291307336034466288804630421033571416695219070455133997606752403130068092862297412399603204847784552336117400715386241119548663175090502357233189852753077085326504281443233483501372136875472918774341148348582957203390750290034504791281930417041642217818619306346679807808857530853640786876799296517142170058472222340679344514913322219823780465987554852022235274848978958820853603149265072117076875259210683278680308217893299282382735826047281445730661249458994783586260257387230208524806823949874107466079183844964355447152626906803232240545920531018239764459900697372430457127287179408986359307528503632866701808883056815519275499902745155916727177739808166572904385388771956014316674208257393453862121428579289088517650429038061922557259224254118157433306999070203204745402178671228963350880312736915652997939385761299102238454027165846264395498404209202884127442859849797389348898125398786199891276885599517907583612807368172263873282966107896299088017726372046658817570213100328073534566392572085073801238496279484706273767104304638995460648819464580951658757348903093961622910221829086899776129651375763335747632290096749449461919016733155388348848796117164650597126012090678630453058158721926050278565106139419477302010760982894694223066416608932692268525750684626539781770292452431062236528489493541086063297301697850791403584423329622178471895541701655881676404913923817738661834298609945801672732909987432015630351999815752643012882324933205597602986517412605636101331736155142973387957941146497939055183832080038797924619451508630685841453812031743788562165767894441282784143748593737855623156226818230719243176620390506047773675218890749375834855760335334000324592296430990245905072880128047811990246020916064460496804248805231033841718773336723976746493678939364093403762484514403435787465498151344371791807280749735911014113739547383707865041570842468139579943653767281993891407465747349743054756992900772891660889370316238687324385648377380789407453011331264064095752034405314987747281066065448444604702464606843113812329160276442195496436650145431712636010138205336862748259136273328736834009738984413248975802435231053745240529052799145728949641209985001158582277636488700982947825696177323088929968181737977185531795263049464718721844007533788671877904192002881766681898979051126004256217512244789466959722223468878638253653510198114693490618788173993078937319702064764186258661041886715284312237501289576663607326976388986429653838610691142255056300447992356492588847365233115995941842633505811753246101243841441224771512386357465884509334573917837398245514691049919332215930880947447113662311900100061499142491786717435397826344895000337169214614831654126129657324053046189216805470098304813337367048043013717744752633009054128008732996310318612249196529384707002784147111336925517593977723617509683819531349931452778987367969527390296150397934229076428774153560811342232877455283963620601811722468676388724454068258761088045028184330489751820165996140913430737935729046377743564105475913541899874392583322254293573632989080142854795616731697794331411184958184968418910917719130949922309162669357802452047086740227553139330481464274074867788328929863576427636588393194764053546309457003601640940162147519832163886036921404717858157888405105254772485289101247657780089742826021778691261436717996407775465322049246172667895783070223165941818763491518305059033712313555027787172160044872448703060488162552839097071921340870903633106935235907634989740208289384531825589840831833182348496671846147690617590903361758905911713808898004156999914082717990564117160892541930510927692915938866824158809055078448952039897491364214365312588538428031593410758358212806442888259701731076022818012887471375565228663602461059288724982171763316346586546506948849810486096168436597821709292039841812264873345452454582957443943575014855995432275590421830285613391558271742470026048698477940319302439599432927019396498997855287647052364605185467176179364733442891567034809474695322670350679088352452672740814675136093427525207390744739068380576883305012822371121278810841996781429270847439779562698900987074762317581785903006217396931213982701991332295049044250299651476813321115942652584279587000010087825739711200620502189385028140405549229886935278634982607436312740862594745427687689524803905072986234755158673212007025254798954088798409023645455193109245258800769052686987514915103659164321264960781610379934396965215602812604821817354692556860814678703167823921394315126698920602030692553114697553946093173329961019167574745203534173574615400426674670998462711962352257937694251461045277280813729613385327956714939207145076891745598450513775191858420416015926455790271391691133318275231539984484929595345426293677627545081949400248908495247156019910709172445711364876412260931611975162291698352222346809932335559435521202650731742779105341439641380050767392842944507349625829626720427475252019569092615333871547021889571246803311709359043624287008007622965462421396583081627736414363824972364603508414994302706853333476624903202789303498662240766594725196063421135709416226846996645973222481343831194319740566665461926898174832983660428449002758089703082444964212727946492860218899147638996248511724922188036322728278651509695725764547779131815200914483990844998729798426236435715020878509961754287342151786204232703499872442962803968853938813000537698948905477258621842009301301399161822344619184630527748502544826754363602572509213628351611341849097294660391614620687961394891665051387039596179187813111301904767241652451193699009427403722181047188132932470078189168699258806952128895787518975626888269441445816473328358676495465771107099863497367556241887664149595403785152031248693178104194252659601254612206578085369411167606984179921725077890337321718912336391687748126810290571199503635324549691308664314140377882386864990497636371767102961598882007570384031541550209973077512863673881026320648377686490933898065140317718358986767221934044260368864946535860174006249114393978027975896003784130199124991614018173712213652904144318392121303984561719139312199352893225596055106623771639245202673281431846041229553719987313153010007794639886246803143178218757946990621090860165774866482307914389270621331956268161398313024770792360703012842395145841423434944336052129407133714848010788905787585625042882088367031887080291338536612361434623705866629675721394516337976685195987986202092570899199649930922608463172294874754358685276894617878691432561814993011815133296215763091301012400906846273885568355550765454729894101316669261862583692493047635825874971146827373738115390337962539293752357565593079093583997144832770258877136178322886410355787022313106047753244100412474257064828368458541485311024318769949505711341488593631779815735346596536406530491784250367347302663090553468424216952722645425026526499698471648210205990303311012835733525227965068993842754959030372382731264057450801386920217512365660553675064808993528531285153264528615073291780201444058788757526549199657350909724362772516947497748048832277720172859062625133052644469361852790581988129965922625420761918111006377269863437242362250472747048711759131343695572702650358748489014935999284340097041507115514916782885024097510587534020033644941312538395817871320717075895919654043184308653829456160641187660938821135566300906624560796912904465896536905852286971878151748999023601061465768420274425477965632269121106086507862789621802173961388478959402975648177317390711834735659574297807450453213156228454721700536285466446762638217263503475642350070100915802801106968125725581369358625839923533770890674568721579331276692248636812776440830147415290722233770263803957932172701686564317444152984877424309692685490393045202871765649323955928184939823989669246802514221713401101558926202888396101461792908020276254486676097684845368226301171939043980903624361778267666726294072480088963318623642124671060375985590990882609961813115848057843625101618468535874340018842782055641871136544613680134853026064017466333835538145214716599031761325392608583796867412160907625613882537454807227011942382136584415829010712176923530089370609345319677676731666817073714879291272369467952576512586913109360817449727101470955972733308181598052901327047230091230403485493615313808872353634417670773575776145348606197225945169898205367706774693015723912289795702315964551822373109577405001414591610895521797629016988317335102101595530329388229093140964421528083522580894767110369362313129880270109973411309020334445642617665687261834728814346196691043777269028448007210847647899187058225270044706505674811284124042334974286776422699993731129590080133330209701383997946136341888329408955773493638449332585203834904096673218772268361597592382465445186022341692999710903581061815579850457544778144441348437824102613064467260092143050329498703404166465233364787252845218871765367270078150133903216054128003927176685573241518227439416161817030924684043544149212781411022657732616135986204588501324090897687894331270810552065765821728867400502929157896468072121849256248621219059497691411361247106256872012449302507666306569028563263075471312005767529689364033519469022718992496025070121749490873950325850146627623947288523605191267956316105390400449554687247816296271527957925534521396120263420901208150817707759708150053736035453558262043100285343158487456763715346183109147854112957706565877554341866739397412468599067674397694127256875039581884493710963538312338192247118129274288387811723685210625288528520562453443989373433562711018161385412698215045874614184187405785163221584623318154432758475370578152286330730888626267183696102073532164288692413732631311269296164948949313939080412395570565268560350328298008269589721433239656644085650287680199134365149873815995232169756277087017217958229721800247473419053267616526758279305872005168361622354231753806466980541079791279066169736714726249261785507415579559845063745634545985450693092030459478945829075496723140947481504982051151955760124336100337185002974747900895588244720933434438519213284649799689188386446550637118241062979982180684638103978913887464137916586316487289830782198355689070322555301079554277212794202352932028719906924422630960640618824774095044225904817946864038509165784425518653514898301580650512470911824297993876045093311255595219400978653095163359638846833743208663577455485995609444685357739114481820507799479424199656600056271259975772162153629901737407054110570607168072871982888793577010761715623867846336974235135829211387020371770194810503497204976420874029186513257046637269153541042866895428580982341755856565892666141864085220165018897764031092818560322671680544574302314862203116517833922878702467616676829244202818437599321124891773575433870279471929890780111905675566593871605769466625886806360333426963848240132764630954166753679933000875914123462944573106042523985917471402874035139816796231389842919905257721879260869717566918278412319465967161331927862819257493942634151069551840451729432397727519167094029151469236054009736396214522479120374439410841053952712228786641215129693902006000889935731648006328972994619657852062626486355523260817491542333643512864713416744301922697746266463652110673299012203378418057457117297390426757049008648968099480621468836306340321360845798325342955406118118970977960466574416094125004196446617913679564692547633008409290301394050203681054364516295185795060230543497447402647687834894241231197946659955658900807848270776122509992146546972480211931140508663939057534341375947972811076744688199581962891146262684896690723851718530572775669628161313962506143786589901713068976049978150032324722439645510408701721138414984581251569923808021937350739823598666860862836925623971566433260537896994719689712055754006374043150255532665287065957243898793152173559590556815199261002301878432143620296087076455476516353745741193749316603476701259683411604772265339335655992551383007103070762101347645833615623783336221126393506553615644912881521454362252600937300859018232759039383978822347053663404944140016903025933493190513898065399418628448319136430107240074820463669394710824231852366118756775691168171472572560802182845412122069704450274952714463132090232844993769029343972980884159035267595893521763389623569462614511228416506175751441558626869023549034638149316740410592887148772639161051207490096599084146323758308390260855484006286881997288086391132433835060735138856824898352838577796879714529089365035765211428671821621912770817961096843201138275863569211834876963427548388931795510654534335316491825774848102231052222311332350335030006995530656742334518939152019042890424273573068141084952816911771403811374993129419111422790002547881378565949297822374839989656307645919814045981369187021955434182827602235361237286752819065258980319590982237113775096052493059191723525238372073906890128098305141780471383969313103410516035706336085867069940445983231091005018338749876703175243040311837725673304988437278974962966294060862213158045318793767884353579270389242160979917814610844476549627691563368240693463411062231458631307258385390245433616426171606811132744158473047536071245722049553574017457483276026108106370163513267669643062203331208834417505809536451544103028431731923414534018051923930922137622612451094204559357683345018600417591247022971519103024438917260139947943647438202993550229183219763707577318177020571734625283112823625713203430476048668382522845889241716974205908201078248765883016866655005354097154127040183170080601366425394946231109343686817597819708162048101942536170070196087747511216331158517581145900140488434267830841764681028850747730435977393749556532783975622118945870699243586246161804203719669867947512203748760047316897452979990955441298422646875241753713299551261981823868210878201042760971494073639820038938007253979386832255010112951508558330719121988754553842179028480708380689893706999031178121297462475657143310683075166309611558239131882762408470141318346595940650038813524737986211305072046112204571236877973467638339273449277898175971057284951924146816911502047316965980974904411631917535725267160972622710085285820826067694440995458096060503939368278202577765815256158701531825998871309890834821428022161389406173771512607695430951122368376827810470355058495457641958780049186181977345493824745678108405928311791832276567603877032505264306288606019035128882847666647921569290578212675772117858680146265926563022341240577639571361122497105372772791441003947613383485034833177943550606730446451810372002964541258967478173357316917883092728853284285878799632619986254802130624013322448210795770354124262696622901752049072930292981647993632723297402764607284820485923657456308120187541955847601387209595813844778902340740607178567283024494595716222717229602490278372554196043271731601601310128163514402711903947851644256002000068258659144020554785964736717438030167819549480729561388806634907558836678607315037720270125912181454339596397195412811725642524745252622348062363844993309451562880516021267130156017726659797707222747382312368082222748878660820274992739295114926457162297270729503041213197788266056475467867937290383662842859952371372118407594955616579197717113432604899875735925544955302773278347794765938180601806313513775239877914578382395475658467886280510369822844401417457698405705527869649757839058680163114783770718025886441845088698769938464978142504530253375073399954836889614297227405719745905482803272156391789725824887051725353722939938078807728723456992354422200377854839259556306976311017013780298963529243330880645006007428134758660080049555574122024696527502692509382209136170001531402643350428774236350404690923213649914490238469657838905878712229388735984018617119200411893145279066305636377919437412478913208018757980189813159135606462759784100286362765528384182014762491012151590698076067530623417912162757233035999955445827344206167445507069687425206303813192982795822239051332021329042923752228201550727055166762171003290244162376287304248796010936189945958455759431635639316878202351561536179566033979278977409387003725161852738967812135746166351666133247903537554869671074967276917275771728911875941327293011881269272410342272081428228364950859382227901573960996327552803726561439018205277415259297904631329393002491927421364453819447768292493239924199728700626622932337145648015155394800083138457300262168759887580179900073486244459619702529869366635510153197308480001349976814658846964186181936025001899854621546749363194483555450766039371030859920857598098485611955559675476073611909844188043135916373499034214957727479563645440849297260683100521658039398729209024313937841308538400988240272646011784076919293935002311219320079787086226377083778794616413719423964986393870072996833723270071547682622162238916089922481985544124262375186754945499644420250075103749513217453868795201473348605781160359751212172709886380446381821396958353117309004447407081974899154895228768013671720335686631034307006660379967615812847362314850128637448686483798615280329608987507115950251951615604956501822671909965885050073873265113014871152660639805563298076437436399704994185463448324757196376895609515350585235108378493060663689162306445061996775094172798132110453116210649291138805751807236213427723101569064143111337666095245034588352748151912653256973652583967807070443874338171616779338000403205446599963017415468499383455711601407560005261170237495944234321947536006241860451294900560214118315932040191865238140171082243956471809264096082228170847729424609946213775711075640100796146444380317073636396083211016531549560007396811768224306622073154165922786700523604411811571700617140419255012809112254269046563916281315329379662800783536268424038676074767581929800271610259748251215182077346686788033265578532047325146759343932169955869026465141338283359294967678580908272318660195345126193094323152007788061790884908213325970941347696829768877371650869370736834871879428034897919824245348514247462213545488981661211001857738556684797293222726955553968400775250338940655801478038085749983477414454778633564101953400463149101779873620881210313554688428348852852318845801996535464157370073456207253267810914975095094259622014833984002237564161344395305123452000078590647250596020566192768731045313877194994340719651095136784260333754563116292738730224598817135886679475575060864978360902524577645682762905428277066330335565187363461785167821105772391615309201612117319163364052272412204040249008912705603559130257909968110408665794056956708077207915900670713072138590421765597226290272248623567695033805984336187423459716482748976715106270758337110587151148000228590386850197039615042294655901742867709230107151307345852785914696295138895725982865008008708168487267974980014266744958959604005291048153200169483534414884318966353719530820705720313157353295402925105714255506811054133709695233002906699427467189434196255726774522551257866274916047742020642557722663213540840759164185710779753722261866109811921235236647922315270920064943153004186823930988738034025737334829654023995947150917572182493601371217664535652637462995710482613044927895372850544092494808824501484974708465738245422453709646603541562431093726951991577824574348423863246479315806823442547257485122013960559000967898499676348706110701426122812611632776408735940815841665003631736780839178050865532460991153018290242575677537356114551722182267315756879574858230067834482540155937556929811738304824071828690013802696156857665569692892979766703836510398307064365711657603196808028574555355373463919932944007226133730955380600774766450551524486279073115221509158987194794909661065517359613124974673144783592018640579593487137994529293062208711797330822989170459184522470825827887920243042603844948654023631781344111942998397534497715517614972116059839181172072401042143251846590989831816540840177166371162540700410413047587940695183058510997095451128876550354778036919309149561138758986224267998092542333667243504774310517663230225414388255427533988165107065330828759352815202769279033469033538588239891422517768283321810042897986100700854861850150468235918865194518444528146452962227515596113254569252992634621897707411594390665084447543703038742447469913501762838373461779626000447027354528281440355480014226558856214309529443035126142255996735896865980211373653035879056245016616671853043199320505644381299906872487643096763833207164250925572085569612884198303497697382110733807829613601464641835374783330680644136453351179848584093873571158275358957643383654291349212796325487288430384494189509384097697358923163046787922905249102716783620411905127813984568185372592494543289960139307173944001074734814800728603863087529314669111343504508093759617944679546820875420189772730225971382795346640938062193150766841185613138028983780223272554020418187748646968185904215574916535438925592297332425827192121055710245331377404860884179892295328229823891914317522437721160991574334311790267700382365741085196036167043762066541276555654683512478093471576272349382415205143624768310857604689414062886900701093189590779669870156297274970264965721807958271183588137835289361463823367568803093759758392796196182649773348773419325138238509648843889298292071412983982781846450595245134051695773372516607263744647774999120444444207508502352752298270919545427814337620657869350895359010880125300058013891699212322953459549660072577002564430401001702474487244845191875123940242437383724205454189627245132998174002439272602518349765741640122899988755595817956933796255476541382679432598238142859655436756597666038299814493957555877699252376477257476115430900535909156526446351217163862842439488627234472310590226413166535389614936783751118329258069128552469544180753022338716562964860860140902362088642920964556415673448375545168415660905010920449158366576155902447967215636970824428246492290455485230051041281218960950323887232864499516167397550061089630240789696779539187635956430355402471320772074405203587019177979687265768357767846266879292660275968725874426594843561213826322389864410660114942455078980729259312350577219910534840915797732733530170365432420061853060251672820192183035322793627929238743206478013866002403820649028600161783702889210952952073500704312090068193212718853075464223792515624577591432148632020627540119079332736475630623349258353204047734982501395867479261929479246680873732774292041051230141023828045765500361219961904853013763510343043432446169918599631223904344371515693664799120634911315438712634272138396280602710972161647617305787675796431858734978083272694023081913485067595605833078361683954516782295480692142215345928836898744564535766622380853315475720653143682687434139293838206504064433901655794027545339726594341033037219775251207543800310788482139690266565710024136411033767173606748124784481945221387870556267396151999205437727366159207899546080600012164861415822987383127448962658087537890466013519296601589560251932973590545672578179898740253799761153913690291054046955681416721666860609262301599359436263725111893210818596371282973595575265133591039550880341774465602853872450014232843630557737080065960288316731931147820532336980055215688909463438097005675263696274816452745858877687514151906980005724951367670613436736402778211084419642941617353006226814806030234389867504860177919294138206496683057170946443875450864864033050390632294439080404689089481346097205185051701810787381568159664777936267547551595600326648773460570029818104190220493959769738125100601918802457767693521325725615655460526616314193832500611209807464903116024303756985473785637751904492288444939154441045797179859498080469260914890583586588215475032061793877799907721220534510398448863422817979567101165638833149450050544842627345229675206340921501583493631994619423482795521029808965527898458008892505352822096682214662515074062635990027720787903504071281928458703280667745381043270052384016666253044950967695295982985664150294168987802584461130961278349288028333391844205600120937061242463363500066976147200787581083048659865962144514466676369256581248045965046806281582053431578705628689364459853915675699355104892394325671499357012920835518290472214109754973437099674464287411201553567898672752878436266720637589245563703172129077716181456163657851645232657543143715566534089802568470719823834618478141783076216027016652055748566464515601098610802713372101458212816568246255607629953067090486694849232384853795513427302454065270804960655791906932437369898789792878878148483323371309170399337616522849941446491683190383747255302932482016592711768332490279658994706075003147038491246006212397306862799956449362616004713769674289774806850349627387326127772087452262439619765868161508586503316303002493299461524921812711075133406330600261120081021739195997523405310473418632775110675833006868082162062042322655332084581375063167106766760855848236711509064345013863793930523229455126882490200276180091389225442799530242035972360480995068044203897065407665166158179526441930672553278546704340520885382230395374216256246163559608479314500070372895537716602172220200262717874405013719047625410570437639208374736122466954426399939253876471730610095605171907937048519947060729091459545066851946162022761754658601037143144566345356077742691395302518270127677125632773975837407984580764541093068692207364528629226001245020044587127967651175610174741128738689539800814811335399025577318441316188194437587965483131816438159325413546951834842415286915569162595417440965731368358741479127967404472777021174217452252317991804262690944699308624526685098255778416782672907320114537523860784433343156527357871313582280422035338832814899538243403381238379679179840151724739594734504387461091773416783791872683994134436721503676463255610336551724594324515827958446570858608164665105522211837797607025544304584859129196359696534872018594660896533289293814670603099962690670898552783917127375867475808308542463219008173512727429503553180642098405230755416105756674415131792480070408995229497992534208827127570989953919361485086879742701386073563812783652446474622630871491472058200699736980433154895904453149516304362174555097815071029135136403050972862497141104177076585362284262026176620998439776434848459489971880717651933259669305299201486770996660575883581230157077462986116666060595962201172491692151924734491244159950783322579812556957156600715001039847054714890828723404048798066157351607680851734115180100191349882257105087908002370937804561566845977302895460229727125961751739381751957115440096201035913983998248115903192029805452622717733347000797819343038893781774671428029659395033689420915786854368354131269589920668701143994550349288265297917739519160761537859857710514681917802292038831051791798555104788577365690882940888919401072419694645104474582983239254067849107424203726094032889005097287205834738625478529685712888432065512948818134523685259126745287429782536745440165845769926451499868778372695550933609467434697666238463233293600961854744446442763836818042294757529826025962836456819240488826205019516081081445243174413278977670868999086210466987956027269963889698617858283699175571183688319394434072453640330035112798496681867866156327110894915391854032021896038622179423018641511662031529776086822175554479192008354457993104354720034886734705998307495850450062668420177455491574418237286430285575672141318195854796995917321479832095272340093487601551037590099618732210595570775262400921335927186961610388101557414367622732667949577098989335649705084807733813754256352537642549848991907650452589975736739045842829100455896391210527534620833736645055614344201406984171533356013109210046867554309243503772654650108875145482943662044839582552084236284384326606432692708175125973913770807821027914603606569847562538213700155593218097824121892836534974136060268727741108009837421217701816830940062655659832314669503061562275211322739473650772454029142629366327108517807394772908202355260271744693312346483264007539364949294004742899295798981032363609327704263625642738489956060383870414235963785973830910961930612953533974124072713707494518288746018501276783859318876038578408592089566748072529435831364097374305741605814235063945644247630266977205699132274514256933909160254491247715080407655205628290848764591980159958910956121328046413704155635974289252631727938811301513923387760825928113737345850018342361825568821064573117324861547655776926478720393121706224461969381330783119939360785425054680125366453118641613173257893870350701511754515519270442916364651198402720210928880545811520000356105747057268893184618988895878190589084481310710577263959082148776100246260510388891673313812248582441716486599843095202212819666367340966379657592538359289404631534995355003346537760557777957348656702295591315812987822359477810807821062242079747311860703233260176135656720018378650440870642082518934628615555589751249387437773396045574731094005396311048332146210486355324428262266613485667121460893665625916458688828594333967406793598021512288671547052258596142273124105618307521574696041643009042863795284454343593795135120989508947860103821815317424369225723174458481379689673763864121813562683488277525724762942988813809821248768115213810880839967838672438882631888315011798529003429600408867327193759215151767045285940693307253757149484890791029948684100898786124056817528603894231359997320628922510024606333777134259686158084784325314712076251995336578959442022443809535754886207702520869962242418156929811851705109440327059187298095021431294508632088156552869258318359231659092898920870475473098170565953491489111498300755315622286100530875947125086575997629702385481083792088610964166822505848589215195278631059524389594764373005585676974127772156983464906016656865737457923468237360129399206221801544669884957390718278536622980805698007798583088563057187041685165057284413849814706769282833081443310660489673024523495365254633412967682303170984507746288924516931801313226837839393450839440473099995108318307035646686668716823722036333292851903770644039298920126908002288959587372081779406480558828143189733479483848954001748215823374993634063813421304321441463335192617267722783557882971749442396545289834354934838634280422997439192969688040095120608564207043195328826846577835930176202688633397155486400507075290498491244954813487284829485613409721662210884147750518978182060339732096962022448040841792235338084354179644576538243587057421187297286516448523592851856267185739222463114327312761389855557017266271235270900175791663691381133963504081688759517577485603181600246457091093023604133629315381621594232705527631481675909380498928156841776274725895822312405773944149461027750898837472818323596605702036432543458598719053667561497675466485234902121679844881002491543447582112733195461070399699847471699153038634465580684175211511931541676659841598193858776501424832435927665892492766890738901323372478162909633122766369578765545498105381150724057025106727115485319947678626387674627674351016275077207559084585516530619273735522199632007552686659205619933250308928753782742528954742186921281310511076886089393283485013910838254730487958252182978397281342880006380651930041404519152599323685714258928365806139023427017840042227274005245292868987357769286874518917540417912977186172322293686268104680171084343544743548094407442269048993515352328908057976775540325643821015480017611845539992537920499477275973099675305352443307401980776813989091551175205731295532424151289316852699100580934550806191582019122226726402105851772117357554271860211363599356923902130756230254773158950408299525485447955569906215087170233043240404383423525879282539748729031848475553429370623639417161878171048475125807865505784404077934031725095161303111339279421008423950672722265665935585228142691538935741866442713987225454245999024269072209340028973332352170407363306111777344181119561672919973236618794918433113266243224830771963935379502013188228153898156897061999128107016016656819142779983285282454450781657509971440519490311977011296567794431782523266232982373089387917616479945203423966765521678968170190361955941904028308280402338406433403868794425915028457698108000857119389408488658319272730631121338626824012547460123814507614801404775315012349799429140619982678472418472039001928413873217215163755127801943459971326781319778002563816844877521508955586937493054026778948210330940525002234632938845868005872759281088725865842239383037266601024866928053126978588910771830734842500169721413568503219857299323707402810943396741900072541371432870206310243197963202983034133107107513859211282205358650648775693906663736604161146907242096974324069543620177037879670690798994965803561577012979839473576516213999688264652655544650005998046963280396001367676061763344493026735181853409226386100615565241536460121896428786565184633908214329369322582731391263706588031699405487193029863834417242769063678288814042692182350691441343583811137493441044928323926827349075995564386397918514254128072147809162051096599064028756956950984867977900175453223907973192964372842603462055804469705916608496656075458957088138874782736622050867220346003066433244004520155484465299632594995042650866133526235758599632092385918515584717607248928026808826577497031646146710832730650698216332552993859224280050812294763634643680859459843165196723882742743584383691785001360351537080726799702032068575747681221725197092577689322827245546586231556524572170943396920772719255103759583237983931888975493112510553347308500444274422407296128857835980023930424073061275015590907245245919895371431981911444771618129102854925942744313097588104082501799692781525483267140117543899602035741942441440791592499917592717051619697479613557521633481412533896483453500662908340512913903923598394695434179892621773173186261970417626858641854193755383542469571844321378540028087145666321831866269000441075170150768304146351619968544114180318496277967251983965148370266963120376611802714567851913205818513883475720349983240920194231487182293971034224049549259774664551281428098528984988698584969492625569625310656771508213632845431407005831114793905131350592132525330868615231386394121072269461663793570571502143279678516835659026828843383836102549025756930194722865229158605412018129105543596850483540787252702205100375620712478541305172161012375670714902686731198799235086143353095097359628116268804714917008973443244434666367290056685181527474725144997460852534082359272957950976935223538344177496141863317238997138715489072476332151399010244625210781850479159650144075612821694859167095000594384880471330114028169524516239440644290398460641044496360715669642010131828673894753049011162801275806656183262378282016005251833249229822938882338327714493935105379545507307282972443730725340664433592366992706132171060438598320717451124562615224941918196523984386761807913286933234775926303136021723277207994577014076940122798799293610699765331166292265883497169220315069397083002230338741260378150927957342257371759868385867776156521461688427527115547684338272634842333281941465188203947415133580238113947962831831068030421183058809503485719163116202916248820552631759267882127727116825752973121803213931877489380658041614336551514690016802074172878515103759873917669707294977533033333981134535968985195972889272622524917479540957830364519284201763352791978650532112690386506306893048948261247427052657073263164895350319031589573091520748139670933024601431331627312104097934520819372098401731064285659211951893418296937221907999526397898115218297458863879955785333266214157946301778378072320820798871975914879282195477226493827266804602014003869239223335685176777916448541488372214527259166198180762467841457928045810696488828549457995960815990305858404239015791783584173429169993948744742551387206154225900384575511349572536524280087281275929080003044523436852811099677329489988204235189600889029843450199809931405604262783806198289006079659185014044967138993295693039367736071463001855420346241862681063661510255373744138857008228243345942988980499427870382780527432604967633552351887451907201759905289638532399454197821360828343299498970887006048791145332587614961900709629791824458731274929152677828362778172167641627850112441463225988383967316788963972190286746282151095255875317702515331509262321198185037073500325377105873705668951688791406162949610192592147583329669298243863902547662190708756209336422177184050086017371434217540636652650703490884400744244858694830578881013044269380710885406892140585544491736221639270275535893307791539781516533278965571043307030932138563013385837297959806868986416910545704777623349047463990882675953158125702106118093657345028647455310146951554045486634643765863126261107187232493236700931980038730023681614228564426765038749233869692163345075812731801019514243259407234825324670073556206556208887956915145345815807947764225460410959236102859171200821997082215598491263456815320066402203769184386558333931932054817774347038511506749557949281932721709243761539470129887587099634935504429858905585049499173161666223405158832429093944699894536122179660091002321407497387220976136187331064405221065304302717796267771502868295420746445366049305280089224659586263666515461946854858348649640676746911658690974307108535187937643715713919771679343916848339239111389843313120881288684937425898160336055005908693258602020407873152023719024974063894217065065871314922797044813212106254157821806457856444584019753629235512264025848771482466373513120530967500805553918771012867775322389596122285729210963696256091314700062150114956884888631680186950462644268700087916642647170858669491583415659900259070169806626683316019410137628070324308863526718410283166855396649061715869409655411348715753380626304848201988614661897399198015293974628297215849071590631700321201878770245966861715508272194734694299261936053807003721925051285140796806512052746217511991579702974306209820205660889103350942471199831593918528711908766506475075884261369010431843960697073584593158518082260151106988685889502052750674700918494405097547366383474274616613892444492703610858169647812156678970047253063052920609484461086515245566706062135571922877981664962831432548762123323945298869621236265826624903949220340821927203357785379675331931177311295845388770604326817258118504436164625920945888672531527242057832503272384971833205833881689926947543774276185944821562002990487253024234638189981251375676325823737545393280642755456879346322327569306381399228406156238159043444792381157681228357025468776988760809088193927507104543825760968221764205493607968064767973229191527115711181742887849395555131912970938896862315314171804208201998822451618485281555467726532373832648692388485024796267290088906007521388314268404289700312810592633525625182791233119077851592694577218055179319189878705135815610209147730153877364333641298963836294004860625565873274500830110704517264008274766202905713960321929793171658044837553510694425868323339183633762880700459428209028903832573763235137109396642396740951672925508520932714208645850074139766668223674805171983366155039475180010963976795831728328930885076763900300431738328510171908972556756070220407764013108912673309620080593726229420758121542000549657704370321996573736067306325626087739486141653756772975023442541647704757506233916307918599325110378234262889849856859745561671592836695581624773944690117053695911330206900380507846249079744276263713600133467465274878272445159450832261275710988882591073038839164071257074987229010250513889384668647877751988198037786827478428563060974312069702509433400470063421131580497586753139548271637858811118214503780509366347547312557209205339352839775752527898827569265768902153235576394553128729932125084611457361707248552966089696819203846405686927033118184774947369127153479182085360807741180086031971319061026908896606737262207539534505693763767393290796125399470268438489449427899262273262227939259182862288574836908016604776086817649875171307832667391243094896289018505998631709350163808351037169771216818820872947949185574882833061538121246167526964338958735939417121444010034888016146234295985074059506697131981413883935611044464409819553451201905147466804679563864614135133807526864172651313220312504170545630273291724466958645048990564316320438643871688436257931052206254456614779273491793139929379086697319980198318868780374240508468254340523737025779591933672819676690271379481207886060651582389922496525935743081273543919762019881060373399044447615984248082433056266197438921668508583474106174709824372584760474147192466461072972777031240061193334537444724469101558114619279046527104038350280680542159618152204157743468489444478384905061942063865513997995005111576489571732295080379210725771968543818274696746509903669952979995487829968217863051487953635597647031321705860076849722544908246457880816073580350366774496381889776510990275842273257051086734787822320867369784837625380506208278977247210627548255184473757492639427565070411253629696636332172604787492553432049550111417707555382154673927746750605170814263789433850467907019147090176151620246152174958834274912138796276762470138205589291787395240837129531441932668811926719051699029210362738595796707990378280778054923536231789195547140638648866086210655657652354775482006021142241000088530654625041208072709942638907492168938211601909496541206062690521787602616031400364444531618405092516861082012322936133154268078838078066626386881653343515883800111169455306367051527433432765929792477195278817214988848394097560537049948400658416129147618426485898187918613333389302431239451839419660689428494163262844048051195400412122072549086949257939363263496770512700661612930218909062045512751553240049098270663096375959102600529917031612713683266353568115983865546463356166900042726588522159776417185977247619567403392021878485981651347443059208739459834550790801060581952764973973601882935406540757503277177580519567679003108972009917519278930869186977913094498889271090989166363772988397570576722700663940837522371631372640587870712312870489941219620611594592418396123706595003347522433127606467147301885748280238929953868771253039944063039343682199090442971642061031852311955074617374882934246835047619094307561888160285674838151536391628795092663488604930583370511676261384684157882921206522124780893020756495737709606333870956014071790840063163230951586811410473048262279790723803030099447075807814610244955067952743052934437443313518402726413489065685140728102321566086125225212748195501957834641218417008331826466428969688395769343237286543393378372236932214414296615338826096066447091512180182992350247424884019665929424131917826594950403133278873001531593844545982437187227700442784352067811544823419656149609726826068843211320231656317331917417192873043310003760663295965214984725923331466403927792046204016733788611717681243180589494464159187555764949101935924536961478320782855894141442285567255482997993892860735817673407980057251371182591853100540720935181415617731515291738786214516702115367146639074573063920855586481503476706272081741468068506479918943134330323159795436584541920759188530494290769919661610786630517695876915969944352976120463314635246496608987258266601037625501655556359396971894434478472727425240442637465574913415561484474542113656485879487932471596513184330459762090917339260094731805032551914516528611702052439149085316897501991730417675283817657939566707837694935489999753612475483050463345586120130370841634395940810647383940939388765565035891841335458398863950329242020819268662798888444738896290564917291901435245475374057128578771829479506005040962751605446891824863008565523019553136616951640491009813875296941948081148513489438668871566733881617620398706508918843748095592672888681653799760378128754618483485042353137431392927548184367746440095483954291376961294850811848693692964463610986124204046833681187080489334336557925555567901497130178570390992719801473017496499449090402620884231977245185732107073287516275301944242977861241622497274270737163219189868933690784677022793972027320114575523884526399675290724405712730793882161072931074275003085251663180176056144862664952305442568196386326893284979410671164627321925482079100716864162844870624638090390688011358837688521602697900362732906619809797192261177606305364542628316211082117065079704945130300747182563653280508007815283177962418025668550076032822858367325404735546992019428290616116899163526137702676577108490926100957416047474730109828800196774070029330238585717875066799538376498969005473476412712849479431707846694050103461235432183672374816664320967626135456633536524860295994310986103330642703206387076373018630871695284533335708494637143027919161811240594667609242814394084625971619162710832385261319431813529068577173745969836923326275357260325772201525844643847511501173047803152723102851501085646219905701640854419854816127241358888095807342274021768576337548777300112516561047247019844629240690872506059197174810725125460283652029734246143569848397041896306600777546716115818076392458881632420097051830874391323937084142931056029368233206829537286739047468084374363729740298694617413179909105509727229384354762776643960438257087233452158042518222775257423343496503668109760505717855133306448227279755900393270152732581972115929074969659883341070766428967655154675845590915241807058058789296452851806942453835875037052485576374037003414504840738830926680280786054636469143011384194059766061019451290888564421968394284708976869995450441243584140807101923933040657632829579090834963844693757211121260369525018183694382500177916049746975208224458950148507454242230324651197089565883923995230465855667642730515886239311830408552031859684380214844734124446195487417951489074098696574133177487894730511444040831482768633356795058080679615707681227648460793085860503865043118894995132478882656509909194715820692075563993460868780421967909633078264410100332423250800122225400149294913562193840491332716816246396647883957119527847829681338683690581535718748000898895700560301895174952602639134831867439361283187177489322649017578630470100506443353200566496691045323501123637919003050440930736937130890147550378448391284412496313522098698972124237608936410192206755802557504095887092099084798889529001455448625795641590573788808013225131376770025778732357418206852924953893437489773406338737704347006102644396383923161636610760831777441487173465431942587418496880003017729248489153928754372742549527520342043785155625754002920221398963081235675766672754120583422349008264609193876247354046390592774475395016347488822824891583767772805012899230236539446032409754482631109378628100016831963180212726760938391954806300291287486165753699730576770204519034571369795374789271150552131874493661101828872395094006005767780178698762505910690893999334846734373743333939540904122284117283674073814965990586288376329290264452341433908731106163962597293407404680903356043813080844082770732989804231515142180499500209165204931238308747231074459000684083833547188000381854990590976668216284832558476584910805591982915506223640942654728047783440014627202020546957484593999773604014404511923057833662996599217567255308665069624159247228368492949806275671433993666860142586112058894413681122854531795729693165664887740344831164677287819811870943849528196739441455726299588390876146275662514909609681383236453298474488187304176186219843220166717335424537878322142446591670658579049769823725311547732795029088974811363595116036251981163236478467981044317857234717102825905568978809104341687257679026203253819926858564388685115352444126027735887680931640781402451380906470733757691384756281425548546897619278584056749303368412062593978905592407496909576294417560108818447984024206817546740496143318766184355939956545981645771709929411431490626877835092916585608881012209512099779333274646477355073272948287428669882148786454054350582121486650892298604535279960838066579653736657368944045429722199100108981673896616383233801329042996447557268058462114223488924706440658309966253755264030810476411383087086622111510026582204957641384913277536702355411880945643961167547962477801128057257721838418663765170104165657227840541915523001128326273383242137189052501562917270209730028004063128308259674818540559820563467124587959636940772101368775661987737910871538171265680445319520508292978435825924576892643737001772893016576856565912238992910502065915109329392814153472447816055211689585176022824694161345925942504057415330161137098681014945406010489355154409559516221939863383875968848201006631134673444518101303217308428008765967934802558242681450944212227303366713725014011868882431672624798155830705976988127450573855832029226136738773894233144883885832802989247864568806502241354701340561648934845041064536154559470393023865257724525294913813173605074166737306429828239754330173347802150575892496554377420494403537568902384769420471266658646938834815582058923859779623700708652428050483359526409090263713142182944223864438517022005294021339321699968905228929557465454164011986209131861926494413441944354593528748185358618293527616004167347721462508546308804006237117909954644206139535075177569038627466683199489642935330354913464842687422448216576533863107559951204497777233673712469048255994066707966590307684042139968340888981467504557186440381062895480852894348331738585301099540363320711173153593809738368643414009826356328233812977329516799866951527945113739272302755416313115167069094125584596619733401891635003897416187646083864735910042232342181101817548529938341595675422054493440357069239078207558856874861114785501746428175868645264031645751096203521877235685372970974730074840432817665787419021202997931226982273830635967758059196654179638063803522936594018790759907605186228357301551525617324277065609039032053665637174354707840356984995221074244733448607328385088561998503918484373542109875668470081361031686467198712011035526188797372723777980605736731151618405827795469768803969169139174118841733898275883234190808765750786285945752818486526224739316546942620333146391340366756489278898562863173981214226415910617603271080439734059367699716378547461110589003756118026687000880352910985210998107632399985547851290408859219115164693004231873071244656577194442646891605003165172000678323565936385669114594436072780624865605608984083241838413212781262083965913770256068822840116757982835324692010526428709448042021944601084686928685217767295767161677577517692699801115953944136484326709794146258272830304025807164095828729056282356728679815488370690899761559279946181419771011195604608489336862141206582979150443654367160367018809545665255905857322204938860894639435494023851831774173346370284388057645469971492555397032869376327485333010707893543483131848949662241057942265259321806739498757440015025709098036626623448770943445111447866281910615838837731410454608690786090045341176753007647453034863694057239171783673232274947399933473282799826266671058682895042958017004596433093018466163590430960905433062094251862366351158860732827184109914178438030367507885417897841192625637938956617972561392287013115102229650518208600094369586132697356702641103282377972247832454716720504084760853687404152783030512259503768050101819501176407151232778660986478065676902963445989424009009881047630044414839738399515398881933736050938663551834780639851897442831395262215549506400035751986960479397726902484814998755116856860619678901643486301816175111464255123234188227551541561315999049549549127602938145376652512536741368275554678291472689024776110386210141826576433655835150948165287300240824177837631254549704760772415831161228265066470548848079506686415682874691438806380371692042721148796454628172422313081554005383927453375921120101682992934949593880991889488440132768580178926872971919277767208584232564266978103609512672624090325988076460233399127648530825330350060625387244000365054105487971166445084387333711316364523571155361990373759330384888681767486338491599508318086932828945460963786614012585463031499717439755228318208751864777528323996904125438499352787095443227897740969625484190436665650040238879211237039767794866982377202014289457341555742381724952222174953773606586048380193914768584359704306386254042282329421063975928309847454245933056644274293091268129464275241836353120062783723574596958922991034725615556840259913198951448238238464367741192069557592069622941625461604775501591530208121379445239916170023641877043708323377668961538134455451812562335407327969889997744905375026999640003352751191808657467520130006556562676902202424153130332524899568825486163210365003143445145508058311038035861980912617662147497424161507833196451333984184756949144507536896810730575072192025181318874286435946446825881763085775365241784094768888422742041647445362039834393541552203790359760016623896208792576337467304519624279726989119278340182701777088220464052176116465091623296998536422262380248290057123084275476977884667441716493615970092376011249967574841529085718604451450560740467406155194076039267777861156764510822956798885995581106631016963737634542899602125468042751658531428757225221409796979697836060568058438867025136301134705002837664025605689101023977781562965188465471577328627329454992854357192325372069346995832355526599368556329277158296301708871783329265089956637011441802033803415521910411744187774629627740565632124017176734526628992186304630698583825354710922167746043845975220788206290303874956775247310988944853203107887114499078747538785877531444319930069297135075373578509400777720472542556883948332592731901251486621973929655132050012069661935858276731407840745719650101428841707875969009138693794032805119224797451161252310737923088620831215440807621911970330220495796468446008882881813571145280968181284015548849377208266492920740789452578251877896982238298249133289394373011223230445015028087984467400249909596462627377142989512416219254779271255458622679206545854599999908057822012120975239623765833887506624187448587515913751072102700612710052285819281702895652329037045211579199202879660419199503869494835857036925646932988913058219637648962949665754715567964775603625730966943642005172790511586689779238958213953303979688124721712092647918888797895343947404738099384220906081684492630745791105829832656070463453323461015689666130602440982567967342529210568438929586024989364546848008241823175171006216622277320624243347770087903179447039181582508678905191787217467929210223345490127520200803808531655332614494945373802372908521545735007175733993919821437248732540880661930713795985558228944790760356424985493359073327240150757426101184496703797482713195984545153931676854673811072883923438082408141706219072785640125404031807279848010612755589781286021936263903115539524449183150966696554354511831703809539558846455088294165922312932134766596718862235603837397840137160110162420224367423870989744001363112967147239014794955803378581503816171956301094692143253033917996572675628856791545794063331341364666420105038134743792654604111183566797024930186174963443543237335741820642923679340999082227262742291337278872270876082050843890203275614295261463988242182329431603733221680948979107897651195829371934457284008134417874817471134301552511722208544343922553900316850668205558114960419098801117921111926482152060927623751712176129074511759974563998066523844177223917048486291336578841079897721801345681235750214050866560876557248269542896136772470572342406768486951768480654760512921966095857597341447654730228610865768103427057894247474350448088877341678565812856088766891041574138747245359863627535095525274409270577530155734109025617693144424018639891302046447436749738889806171905512834646152633247327967860859723274800482438382338327818457765888493957791485143154458298215749238088664838438089809423350017825101935423871051190098404376996665907222244021982989403856116597892655600081484041345180736700008747776067387739406390546960487135405061334958965088992669489940161111847204983456843457290096440645872210283344400472555452610350377727750654139594026478704572585182370858811512477393573858894116081370614745286189940100628016968889576733071698602660870819162886728202633011797930208406268592071322641516339232639860160951482730929783181854329732880760005332686094426094394658001664068213070037897052658239371323332362395070560718701854521139248925202315138189327407242665150043361403543825684160325222729794032373802872155273805607167056593264774558360749494908986654923239615209873272597649717769603508311717366135355865004021356451482019110906366106500972180741542152793345024524350917941132608986098153806053097473412539686419082987009588903537928179473361456580809953245186753480919168853218756082995306730870078245037949430355628609281095231425435932313376095767447486578303540730434215611476234708906814019608316557334588455634589553502293771039697978659258238802395391257524964132204539215972215031823282997127873722316414183630052815219590792136263453895916222411783501601717034698620469174706094749007038188388690076417688017669147719812714332095073277301820200652127494665573918742977400011470705962880010166727675855368477668656356698008069093449432058449170742500720259708289444265712164376754973568482164397403125596065481348370088503559613579245619247814712919500181648901664680540490333910873375443258069795613552167278415791999891004117668328579795131820130398451706815172687872274441607623417165959068780759999259266756575782770841310898348081276618767417928925715541534397046852247963291364345010972875096832726386507865512518455024070118481285269140406306542989759759873250340719938444196108251271307118147066508666008899247840528242238353463974761007556345982084635670797209131080710232323954669028615772905880511891304254130857904457226724130361946471352953838928639637932399041682681550894813040217643967195226295706122106344988559281434643114075062730660471549607472156735042392389418069330970486399179727371977510601968621426064588848345524646290739652891440010444875683145337290231940700479647097156334340210286113547266734575083687267632366397637157397407718414966450825018153350693479595492426854580363879958293305899069550180750941782458367695414196815179531568295648641540114163209363838356806344388432680594770007772532107786471691509117843595972349353006468564179833503482908385521775926317269520266573475805013555234391810603673628593439596995748035110795886345762685149429689538421847423283425881366575452620240479244052662676458048839945857339128224666904785914752685504172348646690436178153407090810220550574916195584082626254956605100088762878700097902253956167052831304044159293268851116301545769355861245401418528758066440680806872186312491376742785907617456125314548004895244962106884654152603005443869983477402377101572846838167582088224395069861095155214767129112398792698226096351949290062660040243345026594932751139818732769098529915689083510608630046462417081532486348478648229076249107970745806254981295113710758820720092184026474026182454441157224630487398028280493743492604620052312323867706548938689669592518331140759671039180935658942677717729868566191800015600251761689432448812695770319324256416896535868553865203381474739085028610156238552278660535653428296094126044876127419332625274344422325877647779619261940290347299409377568300942337641370967539760719667920078169379211180684058453129398684167486775304384870866776111677496631636391566944750374332256745248545538810552579680606470891175489613334206996878452834754151762641033741853179860627903025683822335346821681212957648446811239975099814740601574614746324201405970890998570165483213518024501661670849509632432174611135872723096136893277127985562848115060385736307513076188971245768946743786110394363613793334914348941244831031826539085561471097558047005428787636790497116312774070342748211223490082826311926487683021064888655436342689038487300106064937044976469875098269022761302645573150456537779374693053644014181226311582823434390182028119254444865603260709122559655449103404667846562490714913400893648318241981116127811770911956642366830112063171283197991977852597487475628200536532696545333548676688229291358727422677047535554146149964507655423068675750352898564930061453970199445718859002681743437570594976138997197786879117156437339567419926943538378888870144494149119513822859161479508259104449502899006374280862953707635064777777554182792978419987622374214760123439772074419047365740527897296097970776243561714224434780412166095528434223321849343101859392556419111236002275049874511035037932165226652552722310413097210753993738160036445095777272282625574099912342215684427897051118099706517169395854243380945872053534336888126461812343258804446492991887263839394534069579841928308270183743769562441236757886902450921508331319777340649081381835762234002026628377583644834793340816656512078692453776039058106787627291156230658235917869276313836518557624923661627631006187116674913510920340940133022267535246763512369307968393425661615624036730034730945381753226402639024853433666811937916098738264134738887125994086512229479063399896606575122148666723463997701823787100278839343853113541966786145178329209890312968023029582675177147712031002436503282025996756547748242583368521190379764325544360222301602360779683559203662332511915308656944144947899918528599361802009366413825984670730147561043799506242221356698274824394801431999883734895215444349527836588005947281282909151207537556914670634578839656107452902351667625108420981497335918071305639278329339626819957517963146375864556399780818641710084363997505282475979980911731731035484604643668762874396739164600519045413450375196687494066377053195162344236589340134347008531837760753778897636375838750729050234162538039064173707040010193143271896475070453346646585261817990253335547572250020708774761570441229426991796350814866508718617640988242553135836263689758065992228947544867503211967975048509107031914989788302823798699616764205190281806242038378835928619008942015596574391507667762777471750972516678073655404034140318406740465623958148647501095486023138793082309491660280060192597759894984919649702174731845452439317949269570453893044869113424592696308189689941604781452259345342756830153371678263080351999722406626972975879509361280966286832404801687360805972881024377021518615663709405551196201418057232761507542656896591546323207775608574475337498471789136657145980683303390852679089810127320593876889614451452482981477587373117358103103908551467117843796208066711892102495199130515634338615258633925054367257852372769136377750242069205417692485997234145320271069826882142577333569081250969028024146650450132355039561901238379338229091701206233373142858115002660423723410970120686438580363926405846209521523959194134495024288096147320700975105660899513747521694286413377446474497754863455533180549558168417929531704003620157497901366743285479144708655153678641010645412050220379618933923141278341235674831367096217512529197742671689450453148400348219661131601964479085267937118462922984355767374688199240126289336708706647398737396929428429712476562153104997488828675001792241278971039173195058643169799275369279924366323827825643560758089349690803511319851966756775484011422634688924350174715510746727693619993525747482284136174130123033384756504452819721979606934001955152716633194476498822164039688894056578754093887231828422904611094946742884326138536788003782460871832201350583721158275385951763634187501065750229301327902017871900991842817074275370990707211043437391077095766568151674694122500749604502536693495879413883971428580709187016110554726922234558596880441506286223883703861148162556593596367679665815835895536055579966250439849106478892293481381596067139950522306831211493271853538613548604508224615563936458951243305017831600299007730396747425374478331479291305213875567278326083736473409637005015720956856128170680397657561744744281385986046286789774748037510791792439652971237359114651739476199547757057244986041154309011627520471326885861307831466752671566674529152510649584728568342587705559415745284982297913949862625442230542666193248497117879407255486108803777652139216184955328698387003560778324079839207422949519887175734109052568731258365211452490804109288958704307336778808117268317617883545465452479156868691899525669111851723171613481957621681865498139268611379219846720960229975073330102479843380456315232419728096665328535598718313722279401101180220719022601609828859157096613534036801225482584885434902062637532208005678933233169285482945013478284755178998237143205351414298399616631424179353128704124484979491668147370403321138771662669001694222331362501632609464194886625988905206908568882613921564455015908871898303740395307402897936105130142475357025251210305819592449655898190591932499181887005902064527094450767617785391876550655827723901405249637014724690216903751270768140786618812452720116040839016044352238339574877213220580571167254720044018283474086659387701760809731857510189099268331474434275761115615716116579706803466246987797015232009206389370487101988952103231725795715773675751891534306180489917435660694263063097993433526965428405243810243542311528779599931218656186631460620081342371595542886432354072535540286901849632435821745147538132314061541856619633326902608198889680120517247338140168614073666220899611201865438343854033108056130445023949452202098781241476299687360929733973299601232251999360051785856203767724159715347706782113289740705199725836983950150121557456002609077486741672063885258194315179257313090083579514849024405785627810340501193472267585490407454664506463877328984232613790535692463036853303188437801116113005592332252907587226122360587391461404340530347150828184939585677598284417974010335713718871818739082077681666364574614899615135045910983491379626330489368812429557108612389013358584006032643705839084503781736135358518801443344478279191255360227603174291336195975024645131796417039791087160229282045164885986331140038245781188574039989078673210775454482541706910306904740608488534686818988112476887985667435330588996655729322684143263783468686120555048835303303668419177123439484783117068064599537580344598605931518928476923898095770034502924210424952929294190265169130440630003390297632783986254761219907516787587546224171379717763885195715987563364238234011462838283217867778741862334999199753941055535202721403845938301006207285680634244714710239284620046348177594640957687826100268689352547600316590180294323625396636531913718980068151218739408339775460210554217869172807298547402364993600527715032459939565519595438775316694393656949952412973632266470024150632551074887392425399990808702654940615770751142331110921938836544146182786967662476265163653208223100855858579310503530464912844732501732436401573699923590516503499135564949546768179561079733897487322275979987732591019047688146219056861068245398328453707217278706197517704402591801730338158241363537437299594606424254103058152075799808676122314221233021562208468231522342917072319530279128389183942599194742450373465659080754842087606581278878125013982934123975441948815777499865321544864082954049426158798954107996755044912676344844977514516704343885042635730309426501758703281131937969379099176844737607586846515083022237197263121612922602931772650629818497723549450032970440218692648503183136017815209314023174772756573479016276485262185157444883592440337847689374356046332232918248093383740428661664306672161390352837874015412332921005835568743859110201064008524042719649755857633495313789961868875876882656396698729563312129561452311589824836173878408614930555072752127459914722455620687246536427515879533833656545016703618663390320215334382209821202155828853498057657799662914396571652207253407549114658454345291180004571133229118263278584182003896776628659157129701718958432267272810448757825522711530678317431782053803674304593412552900818252332316810600982402888885544907727787698538491246077536572441280825852321685693195602768009075434117323117411035801662544521867568276646230533499793740129997042188843218960025677288780569287392440406180410084952540842166134610532714021925508490975931037552368227024855034761483409697105012728735835151690698392360555037984209483116263199912444495641432076392096376720534959552142203878507323628179544474844090397575178270011131280888089980154041059396395251816059404056210198460164282750440896880918614827956877479795031312170703827855207222172445370227087602412322653098031709225705727055232983091367062949816270550439722520025969672990774844718336531809651381991995339072301323304109876134897088806277811318141331781224862520586411451107706528102485439604892269448555414740297883494708926189352655255415202888130538384387789005146335300535638288790942648196653256929141009500601539940382425272498409155123592191472471232888099161002809054515033940712030732943120820050675086379607095887144018743664125328237082052156082742813456773276041634558130775301456758297703473154124766188010340977013488908210468391397903014819684233721454502920933831688368965827009872058525620938023457248254876806514389338092673426384816492501273899320553634469738240920739158038195236171634832416552113342961125934784836689870034844073093801398064900447018038576241469730895335202314610467587162221865627719538802566211400982236537460006003116719751123426082233653827040678103754811811643753277724361693478526796455721252610462212427894990990188696685195092143773947903888148846263314501431161542771979678775343321689039625790651083769847214218096372001062503679669399029995695378151293717293714348359362354990751315386160975640075258472074061680562088249872896800939208825961147407060770167924850035292782596959863304526813058109931010131907279370506871383504069514888661293385300940366264394004655413639608829088503323669384332537873586783231540081816296307316755357555503187716927138332680299385861314133555950575302121314783801751196973931128375799474684757324389916016544422941565771212541677628064380680440397069941083150109515840304759926255218981214661207647392532183682958310354093197612392870078037616993537720133825411641735072543186481222319051698052147366966888757461259705985749478816126127154039470774491661229910651170143632219135448661008854973907838083868579435715564578011239308362267048809757981132720492161574700106762670360203355300927866091904888996567655901175422682026915163285036810716493463260719104514503234018966331511360726090720205564987836468663005328004696516586175007062504623590413267991220469989155666636124419647078151259847256407940180744465651786669785652671529497653474212072971878629785582832795044804950632510701941216253231473686411298443819482314777435753845681193864163786129045127961519947106619335201566788750311368803324346736395870993478895693263862080417441008765083678375244830008315578286858420362090204346906111325122415706266131363672731095534973120237172492559295680024546707168926249310002746675129957558989313839795821504843823253638304117406641709244885188533313705918109603392692045036261309602312215713727819087395647105994036376778973601434881929459519906715191901513618342213850152607287993470975758220046501761308337506113959229811571386710054519863401219718761102113230827423651137859358911683322719910947673779363627567827359278973148251987754280120417011871708252517790064701761610183502699590952968566448827117509383578291264245070341779944773389660068083873669356675770775329427261268897754738067706819743966545103966139492637950716878989118972102902773208119769961015141155204206686393477957371693217847744041953192080968273906645472089353523799798645960475031679393358705972392605823416432233132979416562128229846997573900271384953549577370238016616426067238257776893024471372121824805004938030971394493261660874369082142560553581031000241139396778883710915531347768537703294234840734610888093907658568591368122180783620742015241714747284252586806792385460987544256454217808147008751208427580061418014430248855578558478129389657187734109007077039387553800419021418512518924233709329445846229842136386676709314737059595839661478794021078761432084513125906716459495555493418949571345263151652617826361747788185810504084981777390376929247231397165124938124432180876619971341768232982947773676224274136787308329626385764487706275262192144827590073427312785531376562723773030813445035601538213217746688595475110122496940845670629197681992695505896336549407445553714239225844440274598599778737712316523722378564713856968923432626259613652020112364272617763299373319088013760701371531684778405107102279136151108920089549887740521752454772859125951555516065784817285833033392678158057115750806005842914596727775736465944246788675574098690647660654947362945522378968588886190858259600470081828216393793413905285672484979532607135386326547344008847643115881362649509534930374956806404297702182574422904215680666888639581785394657103845817280086216624469102025128228578891665578269982689145281872833644380478719642418716490524690313886525881350461721638169152626700122512689131721089853824359902406628421150648696922715383998093670581597209859866970091041863375371521799465873898393228281477817682356968411650301498286721915573640295809482672971834003233786062193941052822540856817594475539719466584724293431158651403796793461682857621083672441467403054898008681561967891996652884526799803758577178222261254137891715456945134291608981328956763236837002497444387456636852061201389498721438957306066955127433928350990088074720108307728641647581883698455242966784664142974233363497008443945307239434372614651517657468630809094313520470259162268205765279056639400104125475260178424175719320529384788483876416140945755062813519247171383761425096173896860607175293467889373365184113773962045324412712584353076541534883082836912860278883484725376473976531317153483084918650858574411998134749611918088805894743535784683536193189691499490149515463585032131972998158031303858443752623510160855015608768394456905842095941106896162917033824972910163895321573900825422391520160738687124862676599767384216020148967272953605115275599301923780026147605353353093735772774472373660037145081410556348171464701600924543849722842640094371840413711683676623770780680944346323196708829999027313461042870087740872079601334759569296615838875494931152108881097436141025145003565569947823767264142351238575052912587556013191842492556230907763345057270714176077132446812884287695391191620653543263674924394849275234938823369171258026785814582327193927069079507421596735252808651821936439141729342867528246980470381893035370586307578106998855404720129697060143798802519435444243181182363693295426045333852333223120427279949424169488216908038835908058179492762050173409822479749084814585150328881525345701504858781556904759117525490190937917622523626430155490529649520286800757491678901705078573995099800642893220868566987621228478913931667151284370256393004756950291554906510061728127090515219358371753780443266246217336780781025800002271223735874951443725723081447435843876678224803093577997418179160597025068357072351163703651145138263235856371125479149842830621087332254948096009435715782395810797568005921394138837754938525414566192211769104723027406784095436537708138782560924552632579661697659928607943414595764335092385817948773664860470160508131356854667636459749124418335238763275604296827752176954167161270377610398962918271437326042017979583875300519594903095197283399820939776445074040025900082675920248821357382007021974025121551094804929819778476040748216067671996530123428070193192280330487877458091785123135713150039650573093111722416252091716255118490410294882596776474490452081236671856028493978704638723691869457187596522895991534924119462384756649761800546941906171026140318095910389864898116484539600427577495972465190374659092614531602513538311535934578459053915272696885644195427432613802315804207472712376377086576140522842721175219431741383794383426334903171047659484389916414087323008279418082387641466150109824480337043380146784685913277961235896295708810082168357463863925964508014359498481480704232565778930284900089002923466507283380035964461033373391287211166544418868924675694640585168820277722837557080468746417931414667652858377351294088072065135000506818457314074327578312530499529251816474952422935479242949256326951728437616410601736566101939674235281666543221709342804082376895826591734484131365668506577631945477219874067825185168436529892941760934858950064030823476384563868456255746511887556576881810522044808845236525893509587143644144081816939855750833923067534209603258022052339160050990038263448962373963197153533048470810056187091676604361376331268090675830595564333437243946759757286843985362544202588052347077172146566142750317074387097170932722776125567756066626544555749660871112973225862611667193287597490905185999179574131932169069122835865997104609169865609421721334002524840958082604200637511702918563549640695426600338607174982147794676942009940068966128693376162255401471837294409954641743932148571389213936899487554427006523120443250993999893763790844175317400401363199974103368604891564667136553211674451515111265783955837838460904061012651194649706175327743383923611525658187682389357761392033267942750709267681377648191682378008710734117134040804269509604900044411851644909730289237272306530708794088766313846754071970898470068647245578251764988532412840950597712330946092402526445207217663630209818936997094032447745818927274715527022966335788488163143675555868742701600881188124820089796409121403046953908099621540900661558159712125798239604677172720297271519909124352082980480318260863109074693277939068181462383968658146276932628675440051650364588986540692819394971310783711893042591311744394595036089452624850487848493146083754966528615248598516002261660928685233386600440009899940008605451612280624376236445361197560032638234013892465699659736346802516068351205803558888691574364359112183784915515006966779977027536559651257976054697013942144328503044238235938929617436875655831463066163993666593635077731288090813926183213375124413880757741692159040109943320377034413420266357747458428771567783172779032611113693429023108170932201203739275581042636400426158008200382304211576883651026709598483939129254101575342130420100280891327303275752813733732919775118913453881772633097404726671259839021552622169479322116390266122757072971127233312436585020743835012792289617248919722348282138204429676077055073868793661016282250603691239476628003108561392748298390673747758762287659615337926366243979830373372907813167926515964679117026673072921062778638891721818751655513528308551783156751779908168155213570879166488102238574320118373685043602702980635885782354887254357258110955138613917635511668342925079065546318075622919355883331947780723984270013786016620096020845176474161286119490123092411915925853374929251903633968945765406478141182220150789349591668230077616990233765122470540353806922798467055961934105285731558421771865885848824955647028991457268014900359615824402854351089956253618983665018183264620041895308209992092380772742630958781275072180819470373805704983608565998323347363049053402163079310980353663703327161197191000642226674055148705731541554483129506690034509329654642055939010911339039103239543994771277210496076104003153867461295461940281598934405125292403044072105729264036158031074174711646639240264847761153754703525664948656671220962619859763186058675179480745849179000702773288147638538184523703612027898685692830459642428971232034739370626219696236214786252585919739059433608987589187084742160004673179303260436985981972689825574173578034519526453073229220900934904567514406186670850105737718645677715339743423811319282127945428945787861204957011378949042949721320403272285914531200577323699534308084579442794789494075542410764663460867482422654520057268722395568892125651192636450781363730119683907253804970991561391544488542722742856278384346283570370625823644703150459113289734820561723318337411966931600616301630221115416759420380422184862871521936240224992272042578388362369903189891033510167283404071488456964129095732824850193904284301626303524488143478614586321128213838255463953734084325055565449888875449817760206901547269760293999767616337688180453754737415792473159534019642427724567071675036130345574845566585590552236462434209067013893623362729606479868751544028258281521696074029491595435727410656751318626970444686298658653367085346567732653650335918976156249292480554269991408081975620473406109777147157080365968029484421085252914845374848380186209979503841079177679197306447180546455566115381600071221408853533979231671836586433916493737139761508350940491008604623283023456332819084960256077380951646093953361467238951175829685284910472008642017628144109378853677089883108004673857799948478135791935956564946566690378355967838601544985863459215006159521469076457511918934831589490266560105608347288510725411231548999699892195118018515691148473201074556217734470806733371739149842280559189562839901967271501008373372965050710287735883088895735419223557049789490146498027773308132245149601073096218227228020783646396973747039905375989787755900768050627610193139231723380422509071503618962655044944078199290155381393259991093731388758355292375028467317078212662003730949836291256454717383875758610068036909716658457791863376136592037956909208741596483643398240033580887825317891208829198968849385070574063070041260467154863379355757936326098776992673067199067195296250220321486122720497892913196985937480826308106457505747231719266347075692645762933596754341420757121764866878010686007213516461781152265523391013459546806172514076672504203962953752583632644293286856163408226765442962477162352819160518438954350131960034842126236017408260578694447584411146456147138701523493019481728502582548474262911712057878289973729870554484990464429167704522015778799525916343364061637958538263843899940551290513280826720306134296178105636141223765675630199655827793829816421378171720784135962632196884832675974602356002691135882401910418729237791423357649408121492215423146031837457414809341658785802511714300411622614973120345340819632574607364909299441611488269165827722693800452154024734997358676269924385356323985151946880490914973659682318209710516676964028293455744374769066468623249028068301045152504441583640900929266326527949194796823592209151024491664568532808084285880641061497748618315766137680398523083730002058252686646877263074101387406102058432858249605011699887086444599244369272117721607928288303964759330640108869827248377230512769977055049174697895181831310620948124439458037741821191854355557607779334051124089596271063729673007142904543311884122841801100538634010427830147201103952397137210529347273260738156888587437134622822604172703919548069470274907018328202808072869916521500980341816112684285630364045233678474443778782563991438100601941408171957294171017758541231504558710881590588026824318682785253113923348418248618706659617431852372795286965830502697657058670662633367995279060578302025495948891917191489529409171421623655594723581989065856589647252348205853526188397756159153134456912882904748821304653479464561798464739910488022229437386459277879060124114478431777641991301395574311056237547904887690937661118314313856552702878628876968566963355238276030531135464664215305294091553422580572575503576152864885959044795911751239069772410157016934392711265478194891154258137365843456229326673417184589594994919160610795944236661336532527067586134034586618089272146423700668633471259400238453797869423204882052014883021874522188529955571523876885650339169468488315774020226372756725961655897566285561194924486778987452943183302267001490555934343156874936597217967655398813399271707795659886150678063162113407306305152910698938394118370470936171159167621387492250385558122839397536666384023543479298154890536320827551914794617204990098794243927152230347250672050037351961937342696854475707221334095866690611547735162703211219460347684819417031714983282771954554819919008891112471334496003693965544719922055107696087714346993031074762324327623244830972179601359332811156127811691254897865775254263701917202407163292803856330773823375973256467986655364716003046029412490800970397972135969479299245300089863024955177368804164933248649327777605030418273051522296272769934788584219429274188918081520696794216461577758966709603078555395453399649054151779070703327040892038799381829612250716460806853917965244079553760600271573801292197287043796990962266582222923708504717254786473907686022363698215136626029530352884565509287784262869976127382151476529613915813585474714901262519615922185242123923359481352378588869793818006177645582927649088786259705866722923245303845192962960607672615884920337469061897269015202045588602236773607074761080963915551145979550821860917776510511003831211739532829300570986013493084904183245596114568983671195650702444649135881218608861835648054905443992996129242426663214928370672185648453662809776098409904214821425722444679334047490238409342125880889516594322496084670497816719943885080321002264601899137926237195766672289380802240147764235557174377987109034377342316924499998340398114291288042069234863606182781729205738518961912388949376473793253189916980679186011606085781891752649051711548372910087303749565194405861945418160381927772885398581409447146869604246949495860951426600236645027031750700048794483265489848254010794312049371789418492119275061299159598635038322782057585087742766712893846297622808923089693826290503229673916614769166927182102534396511757772362783873658625505859059929751185937980954036046155014981047851084186021533946578226545642849470748776002262989209528360179311022335861453220388382717123527985642003568399964365015377704999451029015880340920565565839028592677844638787567586427347118652659206173256405088525696271548026644697773748817153768362095626241633105272344310373227016346865974700535390202811953924094047776817687561039714829257633689076068662191100031851861287563688224161816014440369332609472473446576414869560783482725943539748503560024166523485355876664190482971975245543537033752820131649858869115949630788340796507102201380966224260655007898571367505036162342480044601411169115268887426166690297236442263009809321494341125807250189445328957230125415175669724041521861418929732339533565556545614598605164694364549069280087082436817093940114889716756642674144501061118984327846914941876566894676617854971497586589452512409973241474060001217653252322004095712125303653873729344022890547102595779441698469476624042824352536555352470661963153427388851556782345759838788287498967236127463652227058215515033841300054811270969430862002964141563930773855604050690358468715702075704398939434501614712827693238639812589120226404626988543467011346475632313295306789848593871169074335456518188608879882601992808985930167822652396022331859702461147151800494345317789458267755571712274383053986113527114410452236097858526151142156538792665910727679083017631644066009272172413634520392602431686427517880262641557203959507242310830140136685965866538883561932823164875635916559961756624389875073882458766501011489648817953527168818778388463456578934397891435292336289648945429364597543726617719250538624741981752815564683188801300166906514827412988942300578758294863304976192508836300173047103829425415292751803805354749507007420573045754072439417070090615320381318116299770306278326352205757852881294741516167655794431190765631092407561585543147625894561811357559000880311659279834572776162806341827593977428612072805563603346102082846662239582019053438992655648271561906715018654060613757471315399155802369857457613154890389440009595046784833265814357721210299617683038941217804841603528646132916906488134192499910130300519469041203223769033804212286890584752958946826856339908858199905113302245316601789012196303475630032462456174815781356517903377281792565171596396326809325817948694587472550813503038140308480248045713388929586782683235739397687203266135873604298197844573301585615542100385136620383310849359709741973387921744577894527574422393208548989403495563517713573825088206076542307269365952674510162467195848146980718760804541596426248644620449741974280227986252896951481616001963652224757196572528038052083656415066214990252700988570462278860350531310817114558349403413006858525656973264601582639396977241666674867674210101445949699744297143070143278009712580167826519115136135516717008604887137368107466753774804642189499543314948066477986021594573528358439014068367126276088176856958138145661623697510708509654340825942740031599467984460986484506123016484490617413144570500468010674798721783793444490937574795031258879879650839753859726368121579591792456458314744067358061680758463643205680168332061961077839841497806001826248966517742789548896060888018122138624676374314418961691649596886686935923418011566304088814894845185559270592988190859929934010731630793845212274278800007984785449552838741700130952056218971383820345733545002395715598911072824210803992949626013942164661949067049362130822863667944017815229317201216598795353418759887188063347167713158327063977683066752145738793451558502708375477716865961032266589294116083142535168237420097130264344136664903786481950081342220431063686451747108404099876254152677354245138637570881041909215953307444606936682085380091014487671604305317552858516309452071739808419364928993850686659760044201034675795828379164854360312675307686463169841527241417274538506435086334502608675206686196738629122057701416441594338967129577309751450597362726950319516822836151915592639128032892975265779322012450319664644263361874226152283902020562997075620853747943220887108762007894356543862735574865090321173326644399664599998888987785797630914339454235518152403008608413641084029830112360231326499498393619060236242896762189472511401801837643334433437165855353789256905555953615734099256024247913272681736535063177038540339644796508740133781684630619567535488479263442261272393308045359597661957252682423157867795640148149680624673743956138943734177045407575891594288951506440500501812209107782812592701282658489540934359782031124076641092291915161228699623863178753500163828805710868373521307326976604673223615370112984919328025875975765643438370923877698479555185376063646680810139432417633027253962769202443227948787318761805393638928582913646968104762911083072178723327621467448312614004694704455078995973250952202061310107286917751288665100762583974146567715188456399003487073382167470533629902949661606135307503621109581097450447915284319915274502598543837647880118982161299291804282264336735477756250068710262509760212714567676700580593428717673789455091275284809400586151279855212299044349438994887185798313545246615588826297097137173512979014632735517950001385672025651702943814849065319464285111645270409193389909830593362773811358790749019614866220919355780646956031289669301938033723121578699813210107581778443032256650431678100047310907100041046160839492565692090770488374791188006579831762824764897998774126140609673529707163231310550443023064015010962932356161436163936429922064586752746132784245586546666445495860272987026507661089214233018157312057330848289836712402593540641158505310922992522811204138777841552447722608774120855211947183861469063050549459967252840887199527409450399456055483050516772533714028703195428577319654836267898327645245961000930673741464981827892840324475273748796478766107505021250037806000441575271257124355062435905604958178205480306186968359095065702615888764218382595551881495578466193512466381215219194139232737919551470190104251337207769313011721724358156391074313640691789501138152667516198162379281292408255851223424476192722288815670385681230547097070139964012770977017519639237938596895923070116071244639098123064089433500683368619545781572190126283507028243016629631721673289011372822102442416556538886338238533766248849022490705486650058522254026827401071812698664569486598001695224522856907283445331747242604178022902909084318311829271416767321148336957484503289069716503797575822163024466684629515558672035715207953104368329969089963797875726087713678435730148696014017245304287756147269193357629186635626771410450400674599039019647304810310039482381830546596680280849628186235571750135464204727012701449210841275736137069815380814898159309129056681945885349463077018432659010053159758787848670234760619539864055355767513148438515569142144070637608012170703866004989601226726712266657420298974460887342430665424246704755249868534360675817459518282017362182931340965488056543473095578888689102678949112954437965279926591109250511058126365161954097208048391828543315643344471522300971484835905301563383331600232626428966035171793710988750905574918370362934355752198469461553890493994096770571885423283277910748506952488474622638965623711689744927242237567296205767340045900844617316834917340994933163011533232478634670542934378254382587096513455331240944822725473676401161115279618504632811227862154190432367385504684372863355102405079425406855559864961668399286862328569507448862904022769332462878374104491651861107462838733197180922287002733940880453821712006315237608478139565882611909883580330955145074186313444562489608728449009855678788057846144019789676365090280025676206541714692056507440062841762707441879465798893761080127909711222414379269160557163225441102549590705892339555111465605933823950126999004445906138491347873064702505266286686826763927290251753432142874104821923125383999519417497011374954418193687423050144057955252061208237533679344446445462336222821450368887871382552328990268711793020869692242565159916687514595771215758318600855634935073908853656005631185433343066080340069636649669103451769147415029201517913781514257811236003521406018947721618988752634335345831984699355997786451340516357468394690858516444075463199014954708795112071794588792225973092876675446064989354099803759778252176158111724117398440444316794386798516963155910152802572528228226676763832595726779577684476606592757947148257502268174898022360948468706117035156391393868926733222060062100208882067392070278927208309794682162951863882721716072501341617789054234159071727808559080598973158964911174106972585846950718930646601988201912376343743308283958997019083557528057484913237928386882726208066037044115108375848784701066876382102050072955623725449021109275136977639469181509372026403293797802115057834937691516248074718738710551246915479041879557238241438791481518759648251213299344675482142220793051612861286879509360579925768605839165553078541095125640283515126653399393565349958334756540056011338016116610628753080568650214855340448290089907713870974062541949893231315455814565982155464680732244281667650955992732918480318858072048250251866177952484694740507345500929784642015940217114963663048561294096466315086463330538249932950740129664309851559279188431292468352857671254460368043255520814897227392916411055828505163049427852962696106316406263023048280268129227435602690571387480492888048928323561627386340233865865275726138637970797305304049160465835240816262566921338025471991100928285483048944530058059618768488402923043662505773171396151421528458696614839094562881991989172852760835612115135162131346609000344483739481220732484185310411270490711628626420767553161019973390640626677351626000883262914491664368336154334353832603567131372739906517861153986620572971525724026968330988054967770149165423401332501196774794052432168034984400375441872198034636217080471528816545191604872816146964373111763583687922054646598360348132211080330331560199156024119804748010540434482739120995207850317998766182105510822687016780080369403549583819207082116750719461091046612253047178059011385446296214641223080905203583131692389212912369668226524285465322985927867219803887036474567713070719126059844579016348837928238834073399989994849280932322844151859534520343905997824020471753344748435482134301848772465974238300018179075776164620332930347123899883690753227707781526012484387886193734573108234408805639129678442781404817338956230537967605060203116382925585979757995870115538964320351566673013053103077578613921992555708225965797561309840217702356840986686956985665588217977123926100768011703548335449605537370094811268142714472123773588489258351856334136763854724125525865060204081626257655607606767432266852948958736320390133167715550101870638839003805602219218631110651275919294774879182570145984338327277773228905738162423138169794576247846326982063270012886588373642539669116964338843434237305007010091134275190671943663502024166300304078684733021026198283356003398443219448512575327452491211124682476101977352805735618662231355336910893669121953915970329314194511170592650702747303577442109683202034398427421891055503115619876070789492537070493745501379483461025480940883154134257870326683247725766880539374132282632862807081420041752091249629430479467653213541119506561129261139930925389661958540447435659082119546388407468047524874658279332222962137772973984392157272867559281947721773579519973935912972901656815610221001510559675162249965232416536361230476321756805328838568650814259914637996347223726004421060878823587927522913131059439081149698896433823229973942397348718503798293843733520619008874628589205210035841016982689463461486785880578453306942145954916411123909184656274392943841794499224798051209538955124708287750601176898903154889294558612475095706779771499627088899490576902211616604636682677669481783635256942643270752130474913620163311548852058292285217882397877748646268375953979328981341334518260195900726517246868611420349182806424159812723531839674507797112634944773838177520312155803584664377543740550551078122327698638247819760838160940864125542724296824928187493022102701561191888097118814179142572693759506129774739586571601395128178161746908326348941441009671705451957922035105387491800764791199161375956587099495987597562970062606302392391635662757769619924939019044726584823926443459035521177189136368415079631392124426654634859497910535146635169091282928932256800664395349882551488041983527876321035092271716272789190844520038494480926976883763226860135624376752038888853876567523119112087837428385040054430704276363942173745445406266492958168500605474286696214312294575351106763306162146966874753495896616058004957566645204734141161610333965692203467415067434206461281481942127377931166269498243799290207289712155238799568400978904573133195412863267120426953499817927616758792368956308999764208173957294339519402995458235756913303774934477375330401495528434314466821679831143140758638984102206501288306470269307672394463583587241243828278776692912679167930849779431658770259846656670886050343322059985228918344816921141426460391952532541979623995865703511281352786559273097447486904948584317822428908212709307955943210702630232530816650437160748187726175251529124466301522393262393060331919657369437617738740422463474761882196306148830627993300429308308634573302155841629798336293438471981913192987460182085493836631990609469008664036873145116381308018163603554418930411479803947826854603650129314077492489432754521659755890294585435376349711347816219148318932701767960044339164484710779607925174611790683251895659936837341014092324626926211224755496080915108310550745481246326811179485845551726170268498926672218757042576407560852082195778747899997429048523232351442928200014405038254785008797226147474013002741184068180362399454306408626648371829250915650741362736030087700277220694270715960105681017123836714294522456727431320720601670735751078195698291405031925057538549490471954298565842214861667205191831506740875411097828609982876588539301372115848423949906750605422009332458909877558717802801417883371701523885038134629856853736748498378542795613903600101853687578184241105334036284448506852337733994036768094646912867212452331924673152309832857471759304621754460246380440800356581712443481649897812632068266915926796606819434205028043526922290118932722204614034626939773080227955159851941181223069632316835703605650935464616363929086164609624895674015554149341283672169949009830363828652532708556133688522886692786694406721715856197894351497401474190511934538014701689094186697340099232415183080038036231664092477732789326139540927656455468760192791323515782378772477780423948246901172576652165140762691100724263450740351178766337129627705701558979698215968674365955604064509893086484941224080835526807487765904215238222547598195440695998309142164796778107236323961303844913356356275684228104658780185722365420457473244527065183272440238591980122266629504707150239779346736763912570778795000994277730802617187001589718164690321869856311332059349554397802339465136602673886524818802042154667438134347285368848374311387793991274173982278909330600698344617874227635726045535024269835612708503421524230160910782926796708834354032968681903655407409581595745401959926111767327973600687269109735166314355473420594770359212434102249883989639641628903105101835396568030143213214459015505245041487308418807933788447611018859531599627467261296975275044036612821565901121836760979008594813481388092608330156445179621833101849144563450245862757238356697867059039554423743023749207897745491041522201965097333148533475066257073737153918919257913549915004937856556995891172301906245668257364559095536572839651501613945041761991608335164627151810551767210345332659573832301023366247618210554056903009488443937407841456867864657577421880079954008128232554018876320112478198629503551036618551003764345419308319608667598125689277088102559522550254775172484046501339213498026146436336713431979228734720135415473055544453142936225738777606907369089505473138753914195348578569538063121349395480818183058835938951356235574513046966471481413247795908259325695028113245903484437596907857802226947150498689329378516294792712539399688748521564302563871100716253750433144801014122000897442416082977337826343300357959856939641965756187313310981699544728459821964793428102094404535506346770476528215614461673466334843792255829446846154744824609303895849810610519651756305751371867641874103207270278094754894383221290940307922172815253116934793807573310883455331949324102145138848681472370854981361288736581073306631509082010901393241329991495483270553475878306751855845311041811206381985578455580021551556636352496909043756299081805624568079427268741973547209483982468458098770761676421639574932872965749488582326397652035958606815716416962874933214677286372702746381398149967682647265443006197771996647015484803273689078598203448050009437265532359366367269994152384991480064090368477217637883018444880402143049067154329665179630612274960982678423684979966449400527099316742863199339492625304195838048225762752605134796516952131878987470941136862200603877010369863390166885504216529652645489183746084810571201107085122126563175133541981104658626647644580201728402574917189043364241131872173861292065214445159639500653214569337828636652984747838567585221450497413791184899732352906048940216775351568790382073987181288406941415068792090359696505246963226866972843324978202317221170077542884652533256780052802407654423334542923113045283275081723483607396259258807131982148223248951882788233857382532404476286491798024971874797018269341299313898774459985120740072502243873947993144263863817702990629535341796469575826485798307130331591465583545740381475184408456126133857395287045000669579317999102099403995240174493276861847516917231865459237826589469568329234637821502151139096473737140917484489007781539445846255664688541272700713997273810074587293649071587729796868028315281513044289488779209005112435820973123903823314340882600904587855853469022964539567742199006106039068776771765126010133406367827252381235254133344483042993859939574778848957201107026682430996909615185893720271272720239431718636803384234097386082452761833147411087136059920115139248039651409566220379971450066456064702614925567170600149482400207169350535646475358303078334015778895688345608752131124999727138590443205865332590336514411648677273533152977086185161295929390348191208948672884525498106617176419390323504760302462216533237837951552251616286873748811206365609298666958185471901570624227215362076068813688323730139143097639093207466866528434759680841163507537840168129659261700384595153179901741421869652742482791045070806828226489426630736458271090059055145798377839501928265969353313558765801880371708844968502341977321401259032089540386404709746766313345591907822572957089759991599024416891440372665759489919709893257364952311286798250366211236943500164277060043036382671915012435516475796426162599801443718143230131729807895974336091701117027701770408860304717352299221810092167798740854709908100559493962413465801318391993999765049491790089869698388508420164667732745705290616759647886604542524772525259546414894663628501217373219389483060427432776200194432974193097961935638808214031101211100636464560978133239829998052382780886353707485010896988817623682789924744124294860812868222207557279406344551240925509754276593039726868413009622409210139389949742368925732506610181341035858052118170502076459844105742465116413572838792450927287066327490400640342199056021730437351356007857277152877178966154743010660908047012911560483670080071701216813725374214062448434518214095551806868386944706635813163709910269794701515841406170639103323550058354587808691870835535587896824818239913221264130711381184654811382015003695075279852445748774066380556496813180657820308995893492247983085680826288230219715688238719504117504772344707423706784849809491321561794203636876347127103027082851322622294895719078401307018127024873905887287626332806867418198862294921520270526587516933554439487097846831561044124679641509045004056685670649751783017670393901618955654130587745949927305190060120108981630929890121545195561113795901020436202669237642869199250179739744055188059090631054125136805040449186208088102943403248730051840952105306982347007744180388426508434498525375103582031576634992698588671286591374967798907464572039608932636994290972960810813800893026059881245714140974032474490561384306224209682859463827305624207961790326843795395312822774186460800465701282679586192450897116746392746390990240557647301908379074459026052505046082875728990678354645589740043149501730255612237288345192730433403809669417832208632141860396118318364423603018460535080594178719589313302862205486164010320266276019690061994291231773457568704909399137600246624824284502500119228726558538203302801461754709403284665894079254281645194839420431993396189760933675956397408367501447035889737614644727482239743531667046292321144412131294931626102937218582375899330131158348762113570098549018882226019280626120044779820199358619459732630837969830992611950496611179736450947782809892278283116342205677341683989213976975156318079459011406314920282723232886928215059307325276816436031569361640874707799377023924770846224450710324362346724777799293427836633251779040675344159786917164814898637970738389066955934710314419614259975492002097837050085303652720123219198710511228908348721092105550784723178881521335649289854855589442561995638749989087877363684099849196373313751815401566876689095049339059054410991437466780744626698199037767616074242727725228031839112599959809176062256649361616982831350463518735209338219504896659890718424443089708764498915007057428706461912840455347638820804123605357570987592988061641577269138707620492328803655890403040089104754015015351284405611333883681090876418913575944493786466698307193941729467140294733764138781440721835773580711043843386879256490652278549074041110797363725201114120569779894678238899739495323130795364877790490411287012074769390114396682219597832774001928496075434836352459603745847137586087539395245328927748556322580165067829305711020266642121736964128387881075008401984931491410519656156549526990768945247651614216903077769655172001452883665877881798634814045042654601678836899473213675773964970154172088980992047324475581086535202395100935074048836289289505742466934544627936452648953546042087010041283675499079819037407623501700632465078948867510899528501639758769447681125211554666435999230972788707920923376115206724710518520482072190528127799125411312788938179215704452542668081855181996768595813381473581457148214959326564316361589016867576826837715713535708167582654076085023822590701545188332277928081431153535704185692236761446150944799357159449170611629473849000165364111152346075087774591035252333968940087679594481865166415967280928035455686126847102528412897997870148831504502620417507186473044343933613311941461745297195777887397184802488489077595684884433262932532071307449514998449345380468410880785939189430112532362231519663106065594430258967724336532417998212999918625806552343129802008540184219656345219710761919928498118888017360730387642459022664926592534531240533571555935458144371003880019419445264130658492593736838610852843624477202566903361304547666043385111262921974328385381685973265086109715479190781457902419303846952236173110503694965388754418552244106744954939666868991524742187844552084082218103709190849938632179700567078097680395369368313860596256504898897098078595750776268163699484107329647986658793947242115536588861883360805519533238682232084304959420164504813819948559962070467715932876122741571098516242027970530102548146266709196969880108033913013277559980776366021508030363614025021745508229268013324106131562673855781739483005445843572998149414959711524730618454476088269216812559962339695547132076287171577525513091137264064528707883260119369934661689932328010885020769579504623673901199125709424714912247750401822694601143732440956850220730222423938905969697247634521949912457957820530073248053199116167569634423352066385101456313983019112223667303784188534782356558372199199052877238694581472247446765545046824505168169873138291320347752269867859439194140550836861000146834163681906496862591853351850714956390727374575230514100892338065662186567349932663579984700254687705795050293437658677844114467843800647470222455288365076458211766939044467402029932710522749115550050076565932267394532499410968945130123944667510340858117966791251684522618280043346932680559027796316504643014041436628507308886219351378751559959462789277766125343986453256872556518684759567595268849029042680096697417089469485601392127800165907509575171674422030884263360749412419089269998986383958947186250243314320898114874781016342525383297381182852411490350857933040701551265039609431943965544861765363434940819420693584286073814492219531062552883840287243444762104568285051000317062313311618007932828361440517703419144548549020287943255632664175326390091720854694927319150245329765648534833680639870012925732762823072262509861451976273068717445806143800579625843187384726326833335533899971820675713105047360085972209273246893637887722424373787255971510250412177823002745043577591555887358894946854023443617652364861680261369179834601088810624438821636123243764859402115485206873169860672067388199012389821014788118078452471423531043854815630272935468694241684398535340854304567468651873990898853427136813092326432212917171798903120484612994892302088920460791511007197219478214752891501696075918437786382504252546934550434798597973283397612027810533981275098347907237779289998451373469169216227897911873033753762653472398641104433022082869669269829963850560995930582529256639060477814551433313695685550047612283577070755815545723451357272266140380169266865856033033792707001923687176670341598387151323648915487958144496546017598662479107671416324369384093029498615190321921437074929717440562179233323377213308518876669656558026575028246974201551535640560086063146785263031280836980272204649517857467351057118893548077426571391368831478524355340645225918168787176694933299906723531544883396939745093710864552478533767750751301245725651574540484165276290261645700536124526813704139970259845122509894404754316097536942463907356185766709790493712662560447644592960452020808483052226913057856279657428345006004867387545758605137146946369695529029664431950604956053156978913942941433658944265643360370367151989182769519218570699323898727821648021509697322108580513291060519039322424142975801484277723640684499700191631609656610406049508072555134959520212774211148908814699713342832230236171873017533936565804393289214828692355233594783280886027354214169142164466974161772299021603685181130678922812792115204538287498084809009834305672928462393326172663545948632915629774390027304269819334312639581758468444891788896251189342987066569088927956111146548556646085926459056975428150319479643959755618944355453401621579995365309632009159304334550598623686478341026034922280423526442320668798577124855877980263405531131652458361978298451162356360321239528892049841660541520996084333878532946284865127106030734844057495907604246783440193127694206341064373879581487246233606904289071454724366654272991243535241396453853730967478631445953362812542269169114252564851023179549089575956376991761040204300366187135807279332690532044728915822238606701585565925900780034774384940038991418065615888592874945646953809653753189925983190306879211966538519565264416237694341384026530948002859842245531845597881535576476225702152283418982701916040084664822425428687362932825016679443738170053597533509917548946568137193269439179045840706404684591638882948465622057541111870617325233016326230342334351514667682656957627376215367633545395585636816750936572613977950364954236288290506533764051326879225998271609160345148429852006703153152706611152151240538118213548159686044321120363439662414414115153686526472904633539928694517314438262190374678382697182124598255300462520790746250706330281786534310858275813951372220606453062182717866473679491260622497797352305280517862267031523154732605359438424150929253727878266852603805777467177255388850102533385243759352741151777175501119995748650151307718439953226337620978663983872447403063732392530358328818381448212637681924674564399321340382765714567499955265815307141455779334343054031478774429227836993390845073430642499655616454457903466798442515160151327604383916368386186451031739136172270661327147860551809714926439240272603073906893402469184100254826605403690734804214921837280588196162209557546935018022588908207996214899423071997056104599496205608806135022663491864085068476711457353438959016019681703003779563097872016346520522541342417512812915106109822389320375194307360136859685820470548009208892927537761164944823562201169240115216537533460082968736934288959259028524840484116079723204780647407332644217616047035569941254522460539823916848358922423615083388730320248656798241009994549849550114591182330827577136253328461101559711239781172269715166671139766163570106364626993066826460454337490521773758945949182325281893907155908595027911859336088389156497311690591774333154285314218297115115617727696443936880226129955108901487742671480597965163331251549426844356922947750704284729021752139186860881826167329878181926461369700051770351481719980704926331602098764255484949815368139032714172221315352398909619318864137762612252260940193177475423559121059632964760546355146292672714640033664873769827940625856396534498854945132367702103737566122760488988750590114398372939362537724084228025087116597988575761363958634848374000013691850764112170361257444252287929941716687392088783682906030776290811791906158448001569851159006517788111253167264995616794145863202900330047077817839994656807570018247368065005644031563912341679576032588426285611570114465111642484019299831733443830265145027935374574439434099360227616787657318989160782244007325859488922629765813474685166384468185983438799019129921360645420986163400191218522812224555491098206785071847838376570767159972270135554557875999853064592543642303105309058376879560467834793392269365041564274866992216441494177257193816543864104468923224303713020982656594113222858871137193683829839897979769518437994215783354542311076598177672580694706058285566568795612238318899202698270537896420727896568294371345370437290859911586701851680863447202326406370300157003998732136695120663350365530255657795273564659753435350286267724561665763210611186000185612833397797287890915272252005710566498793783955214695654036531880652269401553653403470716840064092970040187478996278950212105045037836560330697990549100165339647318416823077692755731927945826194626319718328955177094981490989903638029040916267335561400920939891585037086454642606344345844983697057917715748648473809062259398103752877355722216913234875208281205096638530093800879147215263486423343043096402658405078045366134822212265445872573636913387127164252861666569070861015897872416093978978363156074641863595714713599643386756043928096596412407801590325833592782347693417481973608740295225850895537182540785405064124220304913160717567927515467790578634574707441479447093136706977035013790179157504442352274989699878480222768218087486216466326031963915864075358673651796477358152018630485427890801128122453466169678702829577676087085813733359390220942172419101909448774220643693496804824967208522505804779848266934918097832558120490040154564678556245767712342652395056300925790153000117507098123169819440702058660162617123239504277684302105474092831979042046924310400040625872551836089088282953790951519166341341934467106603264642175136219966328726192389724566099236396506418524424617625316998604352630456091548954332913673167299598064900359667577407927548288223388436380551502446356694149820248585977554937117144154942965629681871772011900261344995268069788489398128309246559740115439748252046914435698462658524715797256016632467931145190315607124654103885081798957161353101921614164385967856306255156775030260730413071805491376319233063464720775836423212266787339550330558416904597633522514910053832940491249873518329738585375740479070588668710017393703321065222835755274720321577870224498154287920314909017278999278924260775461080287977533064469102562507560023192945099140682299415731293699262900477625290623100881764371660058101150250867912048052828277462904902079583009311457448740881601077429314140260950089134152624992268725786810653882237249188606121903173137300869301608904008617523603672710466716347717569351310087047797477071063695568618122014532004513134377616287876496722002818327985406651211415739973951989995189152478493478672911077656953278708622044262958611222722838702870080042073264105343220833511734304464485669344651343599440660897511474406108610467137263618955331653799309086272670071254650523102997438119048960894978243099022725378409259441931010661303381493275158641844543698346425243479740233784758303177310747102664154601584736172672452424771377571296585229641202692055972774936147310598654848175627708732244845382545896546208480816538489839558055251988321083761572635905748693409192219879065844251208001950048677251553992991391211065319438288378482223855473363460749621396950781255128919252076795087446432072087661757832029668612784195871904751013159679927750964510775979499201467298542805395183246336385421527724609067687741760982740519576789477762184503734285330153598464637268015501466289259786198941688926784665538441985943109253976429035230041042336278836859287590262129359248868383616488140045711174774456757648516887195585321727795793761660151554338800321836302728377545367202008957761930863055466961459051508449334308881105297573839472200753833208164511273284879336810047553776216375569623001766827561458314933041790310143572670476807715343326588630475829384334226028825979481252838531405689741749905717429915643333319917020954379830775880061949367353511607816465495776617347472822295740710317681187537806241732074193588885685101669288348499858164958968648410035266779871109339871264413269508866224419447348445482611289284578484234477253558566012283406901976042813805308375636003523032473599672398656637048506565369153046359072423458982924301830608381792084711343166838905819006850250692027569760887253633740402558942548034020201908708571660812142452298394669340701055316836115339507319586092941976524400643281524572703076584795032101164158964293534473603910066296835880295370627975015891366717729408793458714630637874735082967935550033178796645982796779990095235955101870068808221181367781091299048569467587698677842642732554639109735380858280459105595951905320844306550782792668367526828784548684906731890784420662880589482469443556321316281223888599972730954947375329033244298048836454917826779522888000464808837571546677977209350345911919779347025027583668349832971205607212881652573030863707307111864091626730958127106329827455478243821210307295531863338562750418654225732131247593620859407684306215129980004780214226077946590835843956619600196258828334425975076504519299115694970892609024457712228626709864693261860959587711991955031700336558902784881519247547391064567635902335311186343508662824420384720270748473420403011938414568452652639492589776517526995132955384177339691074244767749174408293847527238718545252705186483988358299325130398710940017979671135161379684761026739291965004998177934425194655465666860746715827440773772080681703362123425873355469564438581849007635109889130108493872734141468229422941309342452447281683293197385216483997958370863455867357211711168014501735852675855652878354210251089613473146066257568448093576781396471752870149992641270242568731556142050311780802536881239599635407745149809761177498459761394930624633244027924930313963460861404654793975260757028555826712816175165155217273845269130558928273732133336598930878013759478467181978699216613651312701333640558225945924872674152945455794528147149347689513401152356134152015433864152442987098940228539276331788685443746410992624319096845519809764342794560842636910305955911683698319871954076681008823422035255471828123564374227863802455935578916809709183827669725369006896435073264999807062178574754846311098142365876474104095509447205682103890215926221117213749965495951826242812389573708724229123307498130514851600795152058754152036853536075055984136652687078332631918793220338075231722763722620197656402279293309045712484448846802289007427023684238838098375618343507814115203418278676636074967535098982374798849492572487514932089146399055901957427597718290248527438147575548128254835269594655274764052969510942984758514274156296411673534594572293697379232756137036397525101874121058379784787919618309246474624830665616904544850849015577184742375213619694362683714254380555639839047380364171109039515963373883910345291775831709704689233007870884124571660846356651064224078553302508717693446170484728756430497081652817705108751354033093699127246055745388295418509683374078659497699408789600067644324579024144239019949088706829008019192321528959042878744709430978898163253576135320155464594496804421716240091893314156353584382538716390655336079455140777185767168483014786023121470834505914687264160698524210767269578590628117435311923275476633236069507932600345891703171975561160805690098081318650641802867983029620829993543025529591188335789275448297687670733837210089399500639604793787495543165223171842066219572040305963409843989593835482159223822294603423520694167537886670732469976152877980198399128617288691563413232896575337540848412984719431361596441396272422744192279548888732423903961172225172010054222772956067846114642519726697645275572953358826559374757478513987071668346566170218749833521037542485251402520888054394435264391104996623949506413892325575647665737330511019655556697821268296335881053096519440907208234914243329759563360112923206008982764643345247136621961188913452116271746635094317465710352677846288581730596378731115799047569199103552497492798613190375443757812821313445833993303604976544531096285877685983441713051621305816682383656765358903022401200877886509095733240186815831981996500740786666570090063436075121794898467914126880786099128067367826885974107170011639254926650438861054909485027886829761740192270540901468820213253551084044641042235244239619372607109891240712302713710943038624901313477462359697753269258946443979471910683544428636222464563819074441319480633521286535153486493939236640377705529571412721748800708769965644126143972057693321461047895182687414951927962166642147475524613492930985664257350992135625429646875027335964070770232446360436612769205659106450659852665900263000720648645806739750959533584884756669158140793674333533409370210698232121007726540323877637111095463643015080384682468995118982449506875398017529934633547288038430972339438938479257679150715042871638040072847611691453250217356187600683947408649183910672210179124535278392450774828067878065315347534121876844004519214847891908686089278465367431663026873508536387159571707458825043488856479574527787289070383540712465015725850625396683483222698149340522433394908017525759804616707764741348249218003485738426921114281668554629016633743926156312805971718641269335916747873306302548478007810123224101960517686478896988021211550607379495176033934015760724327230427769280208041712565610015542844220483077760407384587156174583431446333173954757502228046582541787144372807431144547570497403077843866177769898116012987464539577822757937137569549085374650418589196963997147539012342843557962627893066967687290348055771695941623322451242635414582836042885018079921322869030321078186061850216832212494025986865343409838293626848677368834503538687647625459478544377301638737928819980020103817730016363865498502141526361354108866907003279934798418157757824066722992630972547975881777007759633947658848055285670040377061582030664965063835902934117044134488918420019778807425567097515490171852615589933312794589124939411477727763809064823301309215049374021813387901458698584466800477900472794730727047027396651158303943704469069522932202357808927365795028600287450686621800539229487836520367080064670578499151542831738816002127738913969847601025478091888549687043297928880963278606913379150555121268770684258621675633866625880106151337124061910730497891560702653434808684555751266699943666211262392515301106927722226665418282926736813539173017230298746515419576005298078572491495376140367093565277463442592998743847774850326346098995099082624706034055833861372068763922283401314865693086864026517973515120451395556222545717278404389687941291868542097630552538638698752093232098302554590736442578379921279550513593105359065523517997740983893972479759913538826459982476026276925418050636238010694012040308668605883168033527820873013944093483539065777469256716226895297938972304925527160578126647319622953109815591873479217858596617810849184653961910123332927785583207702498186154304966677959194886633339189939410067933395482778930976219836052779280429152124281578171086216044557750670232063844159037399148055784016823795424933065756584350270795397633554581375571830380935845279164319635960171439324746409221152092447590615463860331833315232191693949717463280326683052837742742798198330242644411951564578147256190943100510246918574614718305597805620713891370510600754862552512440095879836490134253418811824940955369222414647056706515721459684104207343353787398116404758009289447723433229710063893482993189315435604498096889527783640422884082942909130566955091127617474939844307820383866023240423607672055038526542716898723827329395788030667074533334211202052258810716224030100753209524650923385570267474540728466924061295175505313184265113953414226504729003386147998845553506591661977620306862234923606872990546355169443988007740750102975165603896085060736131080966979831821115211783753380394550778271615153519182555797925076648128008325226829241403180312167231469604339898808538979827293167317485309112334883726860176473569714941938960864014398977132069730723459936782574496971638904584135495261751400606455464397955645437267856755504354770150416638586741563706876718326307051246143635819592935627428649358431217347135150271658100508164261910063939039638204092455973164110381548210751342315975788469134324966286929555154461818600793917466939367761286632412475750550100693506791811140535616426306622117694804722806460512170183312260730349841215887086850107451841852170126656740663279777988654636783457968918392125157684058236688974373925180418861180120951711637866507502940825344861313075991587168391744240693398779237105346858974547888543387999128014627287803029509600798057182806362540035946739732084634478865775019069802786009534785538090669786663412226793549293991118225308703313331209004017536863872558039782438094777248852750916388082740822398844754111926488600988602336923633114356245960672028155263934908711330705073061077890737685257397518985101829211886283639897297447565830906123748699664022294201739022430443766851803444653197701957829213343266887090711097478858343877839287002187811887929149971754933132080653440954756571146445647531423331457676568785902740470543448411392754071765300128282388910856397487324355030518442347034423374625879023810492674320926021900411226744420114853544940777866987171867643223617523142705199713722215922001223134666714124221512787173854778006158218519423468258354068889277636899408667001807795359929049979742025797851926250138658712266456666490197906167598327209788671614656331394319495544950805965566028846907404032342707052336540179257237860074888759075497409757591239512870576652542637991751690478427413143268840589595926062416475157868786720609221324133022067951345152954741845365328272023539136152186112993637226403096814798859782560553341286881500933136544033668325201755064783924780583725394601192278679202333959168289623233405609589386871867014309219879349529320825475577557497376933054445793242678049200050576178003226446356587426134357344333663833688286296271761153937095422793435548843393371907213183569441639540543179715854604408949245126903442133176462869075027079678040995668016177431278282245266670533725793884674131447554810947527555474693480216187325486704578789589999742731327436383127792692462254261903146058364957339206318605829508508019558052909806023760940425920358550782338695804507048240966776540873895894695967968546941609418184369171199684825754061882664936122289988930664910857675871465377182945845203729250583777640225348963604531065695995334248034612718994778951289276185523406159410883127988003190012377540468466061107520408691844656316582978017736035389952412516452204084570998520364796482579279577842432938643662099973947329395987994115723343383906060834480847215698421605904909952791019917194966854864123781865885973903538817421460832091161449363258405691482803991915903634394443379765369962878849661816382928879194273783705294581586299028724033626675306430278441465160195038917023676405864343403867066273501986786895845275249698268710151112897665441601919977019493455817282731287110071767523614823540498496119453308346118860970960366460673781760099983457661907225383680727819189941936491768451499002351055504897838179883844011416470060239667427411717052539871503446497173512563154148011016615940391634231151762971313886405611130278447768768748544401043493725565277357152249798405991723533577970774130087695350558166584003901778680150202421831810040255074470607967737703174283794556122195284656913420607817137044721150748838131332073378762597832179258424340164272560400366287514613719528950974929235870450447860909024843439015476066592036741518985762240332064980928235190967844299402588155182144754618529015528977463536679264847372752105763389646760876012779654915549210166526403959352857253539705753164760184131502704860744788590115364004226073002617533701460657228967953259536727792479143499046642720582590139225368108308171368665205119667965309686050235289695748328913655435182300422595184284287111005707861708460253701034572780528527528980651355302190541973521502843097465452696290600877392115030556750392169722502919633519040928536965430861240837455338259833665347186582904505228247725953457286793826969578553266494701165978158746567310554050159456352567272839851560130662329906821450751512512088302446077835023342217438508264647547424496288941196751250598765841193713358557267642597968453390719444048365451623375112255573612668237996651732478513782023647283958560850547067002965934235940365370813132594593798192048367223718679950905885165429695989614073401399511463766518749238743340475823269563206618521340587641628639826825937127165480053929063188879969683098549418531255909490978651305432724428184130021246694670538883170687694295893711963205154565811987745386583284290427861207581133440568985375952210880441827569614834796540024240652241156424882167733063623087456046252553294647388078397567371640697817478992744127019195196203092532825822958218928919503607276244728784014652878284434717994504295088162388997974268249802377200943414443392302662566310354628656979242030415157016994977996512414927213809829237259758311603056235917005459654856379123155866000924615092134423962744161227354226851803121034326019470453895488380113388911659826616015891078672007687606653897890197830506267236560492405161628682485179352092671077939383580908493987820746742152699286735304112734063085162033188087816146226534437885792205553949489547613265847335373078507888768943445708841310034473052085085080323244379030458980743132336844063362916994569984568781155446193765215129323250671796883207379261456201503248436837511312983069147276360109515080261367592639780847187807638319132607246235425491525165157820771794302809980685975772590013826205558582851268696712751268230363277869514771143275223271220099173881092804143124860901758820860500937810536885356152415215841147018465319971630764518025325023084819098054245224611749494114279698716606345664050846627529623621181718405343828809268057426421226101406296324449129275059636466051336382848722072357640208524476600800496299589908866032895171829429052029300669996706285356111424874334542977881173581711617959942692246786068083911875515789057614843035174280462430288268238414498738553295763837278698798323162646528782108109154311460201003040928604656189953669166213092707186294164426260615083725700915478125234466437994782465810836989834666917520898012835323059849337125334297555862774784411786419080416773325604928298092225726664823313781923857263902707206092344585289847571567733887609115764696126684391438457191314790837091811662047429958624631948798693527089626042359014947185076253064655922599636012812952827629324740451163872903769699253858819712506793647521209436664644281129992953990305262703818497523789206241898160740856357039957938785805165612612217852792852548446370420653497946582541529281502346742717227094410393848400029188472584325361300161133613922621219578225620181366936140434067064618477583328677853073595823236959587602394572547728210945028814238306237330892164093176309003777577091714637384909423409012284938236323810415380753527101511522124178839860400115707805587627107369825220394550690404636573550570429969802522704692647471445944189690370414147872171877047376776987955236340725997451741040679534187684741537531136459925343196636560908275450356333562340189708087567735142449891292977234670870040076642742533406667536227909751389331843110692586780008516507816122757125732765978954537748995857910306591801261986916067056097735264179376207018548565822578896231181466659464732846588521825256900793804091475041280800223042388535335352678216759269910287191988370948961233404815523038737282040167781168934412725912843876341811579091350418086067616376845101645385670561066958067451720061602964527510708105908391726322048628880387888396267826460817292532234192617955255984081211707858489597902787759289871304522292162831029891543099722268950429139559922764945846283007297963451179881863483023518740011681020010472145555771634033980135499877322510490662921067976927785600674367179583950423696324492374084759438809537866284645630216194883465535373031652253788870273765346077744836077402592371785775260031743913033112395011461051328212293808944994463207105022591310594520003078257519247603893699734511503585247085657856342016499292993966507713963316113233886349863530607379123247289234557952652879594502644745806712916987270612731021580331774647771933437626506987150482316657028684614914421337394272729398868450020071953445851209410846563881125068238137706422202203457103197837154318883740592868654822790990927901118965395747058174576353491651668325673153643087986134547842100963825601926557852241492468374276107188232086197475215147214669109168353679445124958072263802030605125525618811701714288685198399971649776936682413359965655009125867519569383454401766948877334565107975045071036707707310255599277153261969367742318911144562557587621489600940205978659217422682785836529420013660326729429528987054338362255936097774557760509550194213824035475927101851146243492337241014828493216280097146004407540085157685035570686081796416352075607909728359601839163556686823823119998075160162261454460023539094621331595177261024582244984311805142800049215008925438090993354462941697383594517996516258157827793852920146840176092564461936767079570321643973184108449533866669020744369228700332046905375534509867552848006365339442446752941411322481085178228217396328944925037401637481782639918604251291802912242917145163864131328088559150032696443671205249497679861915618672126963720575073634182057254218012121198113356044904746766965704072599120156354731480719476913933577366506527854407301126438886553780494926525955651315658787251238494378501660677000318840659030102700490600832329554306751746644333401265676899256113535670295324813551589239628265652676309387230192501766350681983270442241883018905060515001385269769095560594498136916726685470003934234279848653681131850934966733124605051748810367750407046577479754785340956328898785271358362250635538880739592567698546612452146552223121587737305420412214581406775495274615187904578703648599671090702879923077480360219195479393874929719038869991695643554464234899473189015267398676143584020379552801572190069440442497253053350473852190251114549657752476332072857917946692554214035155730622671059979269931328057231297100000710193575121815088116453914185599795985439164031557945477352727012234042528544232754916541060805374024914327850720607492141246501706812653376450538113986975667442464303695963799870655386666459439724991295092257751562114825458179906989553580870882492762676677796634997553554249153889590642626337375175239821681699121536555667621820226715256615675826530004656964630377397655437928051861496814611409464634685220638597804948010132236159852058285951372021344173906401330519320803570373882080013058396847803683561959976024148167854471836131919637488403864017181611617824547581655392687953207555797208599762077721084019812395589066166768392961938938354771663449660844277104169890414407283727913692647294760538917812463766062899823802794857885969487199088825378969739812162543099874042295684042904770595724815214354396364254996737715954186471677005459762973245967601164391612112608977253385795957358299160914392255481813014719603753230666771864618093280131024043793353027400232451231509215594985810592189893613726865594071605355393544529751847836549238860909689566663597067740621827519693709478421034219048311836858656605326701722356847788668125629401146969110970613291233409083779696474401811640111721512977489766047518200194594832178479958227755870758450586047887541256271430607184972056270520876191202221347283148534014043974609305822044775785429464425253489465246240793444005290508109660535464847050606755021987015705979064474056905102365891918568022552081757268814163880525304699097626819147555185915429036164973981094798438370381391911357089908980406282654810711361770425119471697414472533590253407439260673822603528092051523014436667010870712331166049618267866464941719657434885594211136447739566291355650479319563801261856931101877238700113691308114071877316002324144772705251873441836882637493768052275766855743666184864775266140246463017912670727591416040079921328851961930041569867125088011080249406926823167963233794619608265061473553616710352072954679600948297705228595507255031589037921434929062340531271838134094222079580126339422908444771840510695410232741456054213378006836460906325614051007439481027543675377700807414802898541197590116766644892403016729303128700446800116358585210475028081296922195648318166381858501637270105447320575113725290265037883359407516256511367357342283515176371587702236362382249182480781437100498295366175345041580392771996554988802289258312612091546537910887703821568221864511915242290334388074070298820130778121014282545476884701677776849262834752717372874257337913822963802134920125941624622912502649735378913257088916402490877583349629659303203971398654420433874899794906161113142403061873626058366554442947333087697564523043589898732763804146632424875762023706328818238440082409684308308416876926481683412982374637753563689705247384769461220836864245163160566201676803054271904082425173581424520835718878763516653074395993081630554502739451097480922392597577141434188745020093063220280419282296210697778594183049383866377571204295696698495480285833994920361233176988153230859776627178149686662038844312040684985717600257420082499058830016805575939391909275605994794435358689836236212288913206266331448988361237305797864210679145966004665654795592490279586493333291993903052182885467466867402943047496368771808317956535810412925565502045581973323114818702913378497673193849250828602673477999891599265681653744252878718320090184486096257796623965740152438382950148953093842588712478575771881902884220488731398961001821027282694542432179654418339812355858459277922070283271526361198298843812707293127360484593936344789953414550710717042516699331634821662538662324542310545361471413149801943579361426076389259634780919819029638450263897588750307713586404571268864696673822921418415132895297008577481420206053481203701978861153406890333016836140197735904625199802412462229308679010682426991900835440072040255848215792361377612264798174706011293736233890165943553532151497451538724901065592048658686178353001052524325415410672116590450469616628974008018571604744584895678682815980644046202547876879563273083464060669487842205895655529543737261024204406171206599480778585901205782047887449676603106065634754047894591246301911858225183588491809884704232640995519934705765239212170108573788012102714672332676231175885950105036301072320883659815722536738607959293345592515143731648058817912509248964217206055850348269609607967792891781063548464227663294979662600143072417477017556531709869238115872871593281414461012119238633691375304033879755082328604400350612452200614235485425880214572699574881275205394192490478858825405244237417818778902524736606742517395058641174553690789417918291654064724866227128801390608391009444277379328877335644823975451065470756847479747435552520143817972148913611678486218371646864091883692007558669440374019261826293104896052114968033668894177590776749054162340981891460932023505858261400019028126002736453692299594824537001891695949632440568477394102969318793989577887682537319254157566288443433382804205503012189273040940405670648249249041426443725229946173361585102563707901305338417127320451333254487475637329453455821343698061079708000134800275174314252210664194108008255969715510974738184014107038505477393381857006511649463770974410033575642208133578015914723522420394023377247398895970956341521151220322623976377860281423017866229093060469784693331894296792893700140876254553111915117261507121304605584819480875939777305841905397038209563707059198141863988439674684861351401338228892102790593330315584157294485655067957964788149104829140573228690962359017564855255904436318519350627095602507799076290651217014833461338909292891650314504103016149984444388464744200310177808869549603767814822752753203392763389426213673974163195896725835086132109063350631324603313317792463418715565797759003313843086590561674798814721230919647661709492214313121947874897388880523537634935824296644757378024388933989740066045136611405658650200584552734769792537374129484282743510618504391820025785060477515869925797408224616522141914948069953569446492449868689551584454549485698276607635810198295560464988515391072415544427805195160947365044511217195160664114573815896768117314008447832950638996253165737266128870517963756185499736917905246494684923879400586896392639546235265529294951350560622306535731417150555391958335952581838420522289429177444205852630208036523971562136755955578758048620613179001382824351807953824034143050794452810461900922391994013023947539534219282425809703119703114699558728225341372148430273353135952816991967113883046431302087868451719645986307086550213442033280046387408092289729481913895502587359719080640833891959074634843350648059192720154040104496734351800509550668294063756108354645421584820767330052087719766955339921567560556076651779611298385928156396952936654011150241887502105352630091006689552128719887042889660510976200578760793485988482081472118814194795628587145653569230367457547677700910052963516769679926994715129145565032010828582272040944422048004493045037498826698229770100845287805406822763762910603630311379357678002504478136183559230925370925560922398021579748556167565679460886684924545200764695938215385064396794179372279926662506931487008790775137561409522900251238373719543776128101678491678735810617805999938004485784261975160677810302257224530120757762511881312011051250927421330911692735020856905472566501521616255776353814917853340741127213689167657290064041710601915075090580941495159630142402923938957016957572532560139937161071702437278312165318531057329264572580204532773579069422562038310510328539909779603785758506804845705676047779632904283648556356259707372575358397182433188960204981963327777226401508308369295585659556615039450072152677326720431096323051837741257074791024568462768961924740645577959946567635888011693697680935100189373499578305197745528408360470137408124713236685508686821535547038408754893508597491196107746475972484756516390392853764753698161919926831828917241779379997787934735275116576798096962765128555820004198648941908430267663470142788724293714497051535923701200059781394353602527560227204234579873957011254548608420680813161087493612075880508863528530161034799269033054811856733767303832444590338887556687099630470820189545174112975243218628472703443801097387219422740796979403077548567415747696205141286380215405428331584131438293868263957600131200713133988735628103128847533189619441919464920796949843001845797663483819487793349069411640871173936905612319666922902074487920571355859081618598496491633544050848890488800134031902187579512891128769253744694585040457282868496152646695640415169600222322169714124164992374411857151219132432299556360198492440241724504172323870455361985171144738074838499704363496000546861489238456266412502764954443481053197053935122817958269031543633947121442117081537823822403284475688208721756233566611369704465957582279878552549886771695214858621005801438444963234189218183564251263948527856296877462645237360599365844324060575985405859963256380017217467806995945553938186280017557071576187015523112716381857909922555473716629287590627122000493791082919568936701629908130322938176683066558005240797908707481264263587503614586749835561541088591615521619331158574790596900444360420147619936526197577738700873528533089875338660544735248064540651735227043857665839915951910543958291429791381584906641862439527200324275744768929360334231917415359429543402459298758114278621254279206746555976844057816549114214609032445768178653604762046817691489415843365576587677714316146571857233552859059916532669722399308543493447432375073824255540723540237191531982683271988458120694673863245216161527123240861291744455195067655790697350412723631091608368785168690508190610366756075832659863563278328294579484220724688347829604361798084701098914122334227648050555507381562440191037684917212712303544159255242995716766896335549479381800951656558543679004012495308152150787766655095372472629653659399654835456401482115798143258770730094811326153997670936626057875893185800678698872384244953094326216634496284841890422029960305107383325579648448983231571963942412165678094741450293728231160013983037894071175855287832325502043147758686520399914693297996478399581468542805798087722615174395737369718929004952854274414214169473763962930778361782149273074636971166279621705252883341511331068041414853731251381061870046234737153057744029917287450654756025861488006710115097970079515247926520553660243867199450625070792433518865032699376084600182054365577436091064705903234611373668226283954443195531058311137419290875223950832826300096833924354016208663896608812107779945870034202170740774444069392672971841904650021951313994113634312559500108349742609326366370788449991214973861356564015267029247107835114119798493167511808140332507262319593099949812503318255630059603521988909620558751845444670718944792514978220170388663058854336421717138609103894832860749433008979523769849136115762509027095693087286208330456986549005248075700083278036014569100571397826096971256782440713817009482842599679116058471427632599273496151748465548709564187321839300518597239433499213927236611295172080855645479889148491430507287550497058072819954600975740209669905672108681395234289982718432643910207204643201206684633937788756873079032561173514654511260762513542830966647782620318353672543202057470805926176800743852792632122761166409407534542565932221773560996035986604193314824779585102599152063919202442411838551121757567166287025766112113894724572089388236846450803476564718644420118885720569298399552782888181535180949314318333400566081394582290270209895976905735975284585914608776186441955880537235311568670138904094413210478210718328350441127270215561564414451071274230266494148600604254429749373741963319482383288568381346059048130662922658052102857007527437170729048279969433711193849858653645813703182980547770003743298481339527186175134673530453057216108814663351894740815323285992527265490077723950819354390675765518444960013503723005595095465165926528691495718314548356182970025962297819390198561601697187498756190300421084800242908978589132396634712485270624299507374041577558035744649559482787224161959049010439744499479504814156987965181976404168679665759327010351259929890480039337708559713544925120343698437284346031168583718479304537292647491610903083574773144556502654918733667097032924407655016001196764937072015782719446452506363763371247781510444965998409383114584942139497808801549654493414234070279766289982503060076956196235792891720168602083984104830455349137446887394662250294656403629549277933814133085645177065269121999507983174250520010165432557450450242301742474621317343311140132676029702411132802561591195136764020474650033132107627080124641469704109514473789845721915737634410099235171203904124107330475010984170362304778404895610009077604553971897467199637124389943093021941778574267386113823578875616361273596347144360139008470219292161760715135144941696045968333510810623075721952235129729327333246717269421821893421419230048846234801070028640209893883082576362093593343534895129178455481366282331970019911666772816285901370014487862432826393539962632813376610007659599244727257086285202201755762926708114327983275575908535599120766218365539042137111630696930869890423862068174186919113746860958224231126623605835381992342021615988509808415103224741564244379742398959746255327524603615363845930303442847816924456315120825381577118461720328537610325245229881231654330374654079268270117817629360446588317239709100408813003364100088339076936963950730091765142124447636455494249787791696910655285304919818810701247424052451629572619732839879001696801512545683285861959755296736752145371898789161822444678776494493780108488232044067165683769303903386041730240555563516156762454793717592664411563246732844824789217148995901601933827391603674643899782596421299637942809181745535708627287791492797111785869322730111678596976732188909276046917052574415151974214166739881568282085753183797725667778786382731745018387396286617616424101600221312338032763415613982345881237852626382008259682734694872060406201969039081943237385267976992511918254442186096599936498027299871529367721646122841555476643505482787342031257949385404045860810101230282495902343252261629408820784584719735912858596034197237851295517429181228136257465958861327811952180679206318106550294604965015806877308801132125835440575264665630165676374418488588818820521400787800567941201899629678936336384015674139146071266774027464000854309735575188000240056159061986106707678532179421211788487460864185332093147862635683027643127570285319982004404977850671913232873747656420169339722173111840555081844831559110457348758307633904343883067227138855505363709041001160084525205568036249119861199909358315752500069747078867065192043064457405574834172407690014190067773033045593049104437254164493172396651983487994893855785497783163994104222702221148539539643652373370200890157838810861033035394594357206132952687526781875665095143330157125655930895034254023571466788061265590447061792224293106379580554171271121331540943411403212465196716727944821352159856931110383068488490086289592665953934517004663630363540686432185035400758471269887386488282933713156003178058701157547980379735677519867570947166072914834686136399286287984945264317235188146449509433884051871950944322358987446006302883928793303295362968024545404474765131526015213506510721430978837895688239846032404089951369775178608223950397613876367843609565050536064672034664487837116715910049407874701476500631422031705647431141202146131281555635741608241418961331655372970597138268555898304611850390129432959442438353862869129583040701463132456381184823749382736029632410084700429942149456458968837498805862950875688580020554482256415841510912945078116464195325653362449649014967771900903766136123427067930848314289842646700888585119833104339050580484195244253809026503196929092185715924708228160122911259658422985675718697278926405236731920963028252728939966498951258402836843693806907915625309315296351243172851331709452171915687413735627108862609149291032523689457008737982683170694557722957939441421518084884680554449424776585695229835602749958593744570935271335229765655460678107019781380822647850601699792333440261637747993786134422587667275276968116155221911752373313759505557802352653501850408072442995970612699996663993633422392842554985653088737031962420612086993944161070107270560809594562118700507047199904548910232882080989069054472125102088106764412662678645716953584933460750787041278951882156636700047371876864121301231223343487858784801015257842717846580462122730494431943167062515044237970618216978632867629754342164193381006195580912359840103557358332145217105760337424018303098582708845859600725898549290031994388388183043141891416320255322900209626700794720018764790388962572953229013553294982398658420826870772958534109697261874037876533726133593558915907470069229821056783758724108791325036657505008250505559974009316042373033246558868009359211807943511977212160686152854690800786860012762314191905103039765970588148899734665113816793124033877885216528691689042410108263231096322295519227369537803149448594731008157561905085912939352776464164467608969219306723212030130089814297839683746861843873187216828748646307759210531720281310189746182620012017852397579443710609444529784523796519299828926613168767253358205454968578032698228306724407977307618257196851542066261044573035393624738619237578064812571902786522467959273819005287772247170678520326033503047534946090551787802553059247866709810438271024778793444600744607896231857990840970699743101424893944560213282734162890775510683456853491301204382499482265419009449569609550561609476076453491616194631159068913083667681642480408407517339166046977313775408832628482444453419278798294995504181036662374890139307628000184120497383503079138641798531551688429170343590070388453050694444531128586785491941965506195942376951292607493211532483733270896101829966677727458680537743886752736834341410823347479044872025693593384419010759049426306886348557578910363988552989712813563541258671191218773311542800260493006277141215506167000832803243642602590620567387526598707879528603793116627875528074070902521261771721788550276759958205345459928316025221320063471798240540311170687814051771824910208599785559840909652420657991805134706889734687093194082408338050409006112269255417338147933559295361425060821225634476711529722585302581610707929118159109982956429627169416158780960062572765135286956363505807571533948687507405264073176108991402387985060273594212479713077961143728980417904165139186832982958339365704601859743458802256178534862218778678126537155770956230009212857884656106142098400311041042727442594415925599051255295604911205850198309665482336107966209927035242689824953856872668552352218150130120548988229640714254396512443653150235566916392902435144849070017452657247593560520126165956386251933339114211824036879056058433155710854070507207961892524872335293986028404745217942821197479106186624113914205283115890969790021715149225072913077749293555025366887601238123108885939621858835165706210793507701579847770022561525450024563920508083388980137725230213315345942695493492106197294783486197356864554455485255076806328431490675769290682039967361062220289042164340283782547610437557899976376996188249243024354310518300663172718816725242416690035414778748202493730325839380028465552115618120888085167588681777136441099673983492464367515587867404121226900402390002625023283815019307470185383445344540715989489467980210956574027685099394264165790672040628412472268265605518931470034419003482849149670596752434717242321861024485849624535944459067398027468738332057228635446578007550066471010221462370119293297371823058038974415342996079012353957636434612965361765151443119242283181164035990026686160329413714597387847551009876958760818382010516962924544546592929079192576429622192011065442107133154602043058687769112860050536936350825464341727893216766475771178778796661691138618578170702919601963706519194889150150071808248328512585574135957633506355372494902019279357433939629846913277112845000654968122541865167812742016279522429341286001483619786984401492583706855386527097235781099351212367454990867547268435781585402193701106350571031589412439196190845434487175505630824391751769433159259330557055065681312148690337266701711220287297605770049075010259446284999444053036367978478502287453885991856341015876965205772659659290296292743497374367196402002754558746363890445464602063150030720840832781494666819226208436670908930004768850674913626371107336266304993937750216360559920628959317934276560437336738996308700881905967122553086155348622748601099971730508902336330157540946261898002479102788077915665882655238689330789604409386522087261148017772549152008154871236396870171516661076323552375259053422535580054383530622213970113115704974666344895711177825356109878092551224144464966169353172171523060125347387125315661380665741613071542749565142790658677499406262730317043956357832336500316947938503079162168703756965445861748785184411450273369534869561336313352425315679266386879933052369161824383351434830523232133232611831066129308534816126078764751200725308607679540486364172176044107044852620294351110877675853104863909390046335993426669886327759307787193664389210192359362676945214497159630487391847546797783387655047750162480041596864715925122335199338097601182587110107892865159726085888534178487145243967582558416035728702115574671750199401250813440177789264410866868204500303918050072781855567750122745908040603769881294348453581303005884073113651006307720383478657397247400665677603514922957141574408160266758995899010587303376676498654079407412209630900418560537477761534112033755693675982906550735014980548195457030967290486483101064304370852913053528690862190804072961922221357811920344904433120940040031960781495705016003216363869002555956756276952369229836387017895917464247510227506335998081901090754620284054442176413605491229555872896457317770431320271664386348385628472053724124049366529533400794708537225487385670907369695573580438838132473670847722387366804317971962753624723287891597719190582084608509941900748236270550888054519542330180238911658585693432356685811905444544089845447979749915045803164730103215017040307719230051669291508666875230653564664517830378559197849810954191905469077209211657958380696494384386658512123524264804906746560513687750551441107814994694374452990176358398933580715173321491013279246556607269308774478307484924089277392253822876693284075145284572241167117562860009429262705490383275972619840078726567715293533636853819590166235431993578001584268610426734428414106736162908907053870275979489926254963745248492357355298117516131213711592511904429128329926829427715742737109152201058951742311687760104393097019497621023036370747219036037379217285900581681030650772287351682131893469294622009155309225366269920751815294597936574731708676975454352079578038992383343422192083068338663592279615637966157989372210885140156247410393624139020958785848671667938859503402626946614078658779014211751994187088464997944640110891505144390991726347887453789226273244153756032703806194920402970583080415886509262320288193298230122794716990672568882239181514683008005512339391140018595436537692832497222789103637447345891319464139815687128990077502883240333806610084801430633686696845491858908214648376152006836394165446131765933340559093412850573976340762267849221493127884878521436404591917824430404102441520209209605644371167642939329873411372876245582944377491382893369647362770057985675114255298948453630554968169381779834732234142777678940451134952978442184561636132574789731486544265707635249952300203430214781184977331594172089198111964660039476903302964230029706715277453475439259210952312978975716129045624020158976220633193841633256030310275458982118944742313587209504652720438222568368444079377301399774353229883869253641443341379417333936894884740047514828710696277944340786034344105975350089668519563687614010441299205196094059650280375545029275724716381070116681673772665760399035945717531902724383381618141249995066042074061096884474959475935375795124645403692702505426965573776480163219246207300029414353268522838005723735304128725282986554727619000577483119469506724669239887196921152433104874836292557221598740637181010594336424284716894356384100388566397044218505088060554781921927276869120592351767487153594573124432978585537163130080567027005684092478406323883491019299987601719281172936656321816912921450854237822670844884170912141420597819290554131426310788611392527624826401282052890243588750997114647804761697441475743561138113810471803684246495065920223683107608966211859720144222546689382485265034702182968547176716976379266531040871364040399782179387190483279696899661026073079078636613715587774938302161059827959249112981736121793734411088471489690294226989778081669875227452873075085313270863411542192018697866967244106755669760092013984930126862907642010438029836855761696107724411786051957573556956187040746550574213878024193005999338770827098143422468536652741700295692122023503758512884487076426574646172799760614965910648548401495196037102160774342152469781387079426428745453482607328403222397846439058095457526452446901220362699375336616880157294956825259065625066518699865975058902498490530545943551059949624597750026994412778710946510128051828724249849794934296629965703436392524497833679433371628575491894258758403315900638171692486234951603022953630542527133267547759494884656758945718350571833613456349166016808633566276000975937577831494369627256809546357226023654021476013740419992904649129008736279337165445519291806629791475027601716719404394445590982436010032647336069085145001689495210180522239569437809451950623982078677477170069689465192976685593238791167746893117856316952392661536859616513704304575359585108682540617981759290166779372468599558387054519315313867011288514837835921983122960883278390592277967543551824961249672799664665220824857119196509150199353504052426902965317965816778450608934156747160685927908581355932153974104519527330446238493481808223549842072211857837785906524107915165166572922077067502225463290156612361391521946155314935516481821341508414002938903192543518704910234625155377593844531138854596072429421958185366514462833499469721803279367881430100129343996134123866560728097322170075893308975206789366601478377198388047841135567367229143745084322444840604334000174891791689946098088391725084398862002991558135621813387173696127180177985497814433414324047661578078522546007174020408587815366132236687738591354070529441881568989716585454512195273582179581763634471196056886262278333731303347698486099749900753644969587818001679545407400529213817070119961760235240550943109004389416743927375598970387120249659500848247330439118713846195122138753913185431449434500790833033538691001068083383841795236026086320623592348904970863457934457929386021351305859966575197099064278348936422342983614532115380581420076012032205152819796083217819389099747532661097413999918041660555479385312524499852735795936158822866543452376349675569909653350860333058473097481689002222550458024906823025355078323795093662621156300073435000134755698395929786765030951769650761434566012970988820467907276569714889755876906404633500016661509374224435862551385895421585715010677947179209674386774450969040905418887698091887469770906671661508166270353174158061292422835839443261355866873992703475135177792172356652809470639602466275950042008636481416219230089141127974276544291551631411007762263457758038818275236600946066584791225793897063069214998506146179607525036314155041670952959679053157015338063620613958412085502126165576738056037928184911258219075877065561710186222751405858144147015023957678653027638915727582812595668628807100242944057024337713361758450127258437950594409897756759810606651167838817528614539530884204317750422622951414396952951438954458985725430725136261104773159934182097011633233905430877621863557240881157813127092188857647799551370112790649606849466912429182525925827792629430276128275098893013284980152488911864201558983832965585007033199586076034369058243469756028598443771721501047584279166050811128994851165291765765022099000881268252491417574784169567816810201138455799768883010124909087416310690366755041081969097449658733428235974078445349923939487399383838237587433458873124013649787010812251558086808054481789137194982243825313696309624439951350335084557194299576680804351842333949743928677087588066742814089324126008201899608568761432948516115257987919076919380115951942173408250131281774957674371423500263588226342859816839214993908307677227223801305543769755141136880485910295168321131260160249931790386689251328928316051279421445619734142244850980635263816181657944587411447172075006668841571117689233866900973863146183533184181645206897375571458546674122600395487094198401426635410718943834904841828626829865515179461442234769004946741103408183784109304737245078547394729036590504359132330537935372095703722487736789778293654943235399823406699593228736523694588778959029993298561107003883134683835908176575613780725795875012284069847353945617548339830301864961497208041450321289943974963373506619547557196032752661471772693037330841705370588663285049199007927170301573022364347692532053694699069342713405137250409801627759656432059409578256245814666911472865041730728923605489874743056705062561870089673645335901531920032127729022722703158396083348159558577884384885230157899170230890828056304540636916775221164175539729895121416410850830320682959239279244696287191397946922686954597891110782853736263270429834722907616590783349359077488736728496104949869379811012794800462027039241480605830625906307473130322928563013989629530016777273577376322512740751744143088768311232987421290702847533005167970897953888913728700280656241267339274282133242219549433137087339622854107507715639989967019234418404284565922299617129506797151253967143948565982058553610731061774947333371001814681907274306587670710432151564388396929705027118451176066345715262575147990337221940449769900413865577269978732690171977240030800457345980953452958634198469291652475880367572007590171127267851358306614505559381001562211169923594545455748766211668772588496635737325842099917718233910314741196915422404800373632412648257289775500273122190682107185426910836561626292480744829689293322658618029372419722385632578554698258259616571426089054843143126741170484757901982615112729333977959896820810699593841216483604765559190356557045892693789638845783900096787976379669288032595123264224816639540091120854005160978133790556367276231912062550306894505943907531378536858760921565567581494013717673505880926672792908177048757807909301901711555168974992632431605159127905738914070961084409934181250454735807729640629183819555966579880124517320711273404891679801649267719847483437562060334939779554957623952489857529391284204305455774794233436471972495675765244533490160533728598664255747780723838393733612307115479464796642073150315547674517418467144699631584024213823266836743424554074069771309142063393340728466494181567439657242456709138923768890590087728481611197935969526903251577085038768938625820126245139820719943668033274204468328872493833962345413983257850700483447430269058496022460843897218081326298389329557191662244986608973254902280086208854384124182435549669568512134540856336244676034320153424972458307037558127120130101715394372758829765584636344464361050129000713210550458081956800965570816221998055876430568351459132475610477755188375086201041908052550369970201688631505110948449760362566939038903098955361591665938717441916922587451927377033771204749744604558293765520778632038176390110792157540350546197128504571409431184070961402537457038800523412330583920803618464853860687448171745043248633504116861048157362033067355906903513191926445910581145345437477431942391463684519241923366564879035990934739971333608220681082102847078544084695017898959016489213811463010251150158172284803454015580722471748190648892655042237651902101436469106211850113998860234199663101341459411473462714242750849587791387872579739797644204467809803757048376871054319134210531579588420089157346191679637274419595293258326034217512237864900961076758270697478128401994061254235312150999844004438883072485996785067159827729384334366742333120709806441075912642631696466725938696491327946788944522584779597200798118687921384505024337444755473573825207204926600479657219125380604673553459155971683258025576023613238133666340207490718512862560754369791064540785520269456617594401721795078312362499866825022078528095091202866049467200144510113027887040700643501779926848791320745629578861540616610056023735714619421191372307094315749277026989463393407266657292368040908199265886519299065405214930044626613883996922800219726273417069822012289085760588813293147940827036980260380360164515393077086660509728256840629956123783114198630665878137289204451781521912270169216699283802340090833151342204504159313520872200216078925111274543897583408861914086353872800585186468536060637252134347577893772630618199457652577270108019201197824466604644423941671958776104985305298703952313188493038064789441726602122616121922834444005439401757417368022763195100426576516380739566376322815680395122746141325132599529330030378174171935827173070567100410862941879885848330413058947949295363349832110526392163244327999700123741399894519442162418078561665415191092136133803253604355717733538117681838555822727417415156036303272053162429068942115904371264907399842958125714367990734754049453052217889414680539607791320707419732263537109868602626744067604757999718908499288836581630476193984142619369332283221443892948952900120652332772214020313841876775441791571671401034005221759866226938705507282131487694005846533457378106767790836957663242821749347919307573661425384544336864856459920468973910382679936770695306443854971238597426732366734217944718799276669364274026837564553362103307568124052592642463672673713430304674293790715135461168306620382851990411892623001659921260545497406641467674826259881194475345359887692750434239157506680533200042584942419112082099684269813818251053338293789247514557503873235077894686020790722014312253322844406178939138188466253531189586475301958762013984163382979807124596339232299174367616193624559826303799232816410751374467392424727546968385515124499260778564585572957352612797276761650667936023080117794912074042812896913397042935476117039154300453427703290760801168725543989341070437032268147530797486219380289012620818684086081653721695607729546540588704884812988243246262238487554245267721108762238792373919331249635335102981774824419669993294496978625364337301441588532305044486787535243554409170945038353543217444340136404345486877292437971206082165795601837274012897897936117869502517874958115815126287827613354963936818850000674242200593907405200514212942623862815761591468767290813927173227244562515176580219978526466992546264488231162354655859114447274878394340171234861035786046228723294369555255249793116091378532553379325016049739429230264190681594142426883163408803229156237818295597829689008154049847274048066645398120310611543431547329842405877946321192690695345338015286019794272560293610204701625243217643519101723511124958206207000268167280055356604067450953287289563014415011693235010719284648168908334695328107726880783269611310400414274548661495064223934552773867638155080723876676599510904892909075158298089279797680230240748529628173603717903277419862936741308777888705342040900037305755209942089172232363373708085138989607117829984980486570502904668632538326118704902839899523352937901270761338398140866251800575737775327076714456497193768451085179269800045863223128416325722298134227022456366151351363919011412537232964440319449685173357308123872964821743846788192766900059860318596810175183026340151637113935960163973956923259343756477068786842458909588755653857203183119549788144711212816514592135984086918734394712200019371573566641577705378598471848850041325781799850576587223823179803673795976204582658461388604515537682516418132733582487570864269723489631762599985202224975575397346750275970723009977547782447381145056866534468553479859373285096365164174595188716279542929195959815993896919238477597682577567191646537913945411440852852833359043822941365213929668632841289262207349962606245654469491566432452709564510714802377988200632674892074835195789149435785297578568133606719371030109784448886339732446228324800494836642807693747551647180685222264407041085338294222434342695622956442688043386834377578541397011544839205032408176727614220854092558003688687712501550027548793357289083139983373367723221968781643650561466674770779488417596651990967251653967932081328664893859814900418350941147626030872612775733186534225965814027245582187545499623441680943193125583904011373498866775097130414168913974311851538163894926154263479827173763097213160012267769411973470837102371508158181262970294671742933811541269968324086297136114782678983215025425936357472486237381757061894973490685611744987372550879935466839029250563050135664178107495297118394896324935097386640624248040222168892987992250736184941764728148541625599470444858974190134683460497286533734433015882843713779986717658799641421046900270011076027820911957410597072254195449505424115012887335658876901442286127456639655091706340161150014923426150668998494804221820739632816018198697963308804569366919603049824712189582841613174405163128784668593115679702542795098530038844318139607992459855746177917243877374648817957498611642683971958352400283903216180006295682914197669392754757536596263379327559928899163936510398772013993454605718372335373736738594849355367574544509071981047727348591616342857577156557119040148966124206678861531454263026580766673642191233423029546096263881046272575060174224884399482570480178038005642738456387578721365251014956927560610220238279412342977006950864451035948872192832761018313764905590181340178409677900496917996521257372250803347123799970165723783469060686332292389167009844234886716551401218520331248521458021355469675870950754042858760436149007041720092799826821552683916631982980748195898757681515489640145310655416021845130698192155395249774468783370028854348563757348138706592229233811710331311079426482610980962398790161176086240321111471313295580060871629407010022045116229525049288009623397534028090923562789239399486419827668024541641963192964084794615334556301938196416045808694733668522052325788754979189106205841576925946320875187082351184254944106260752798438789283002569635680219725754236727746298159131790702996516907822582482124707129563704506688305544804175191675389570866740390281405856617530185675010603742210052447265379630382231026156932570208429676848520514665240473798349935599098884342820120113165189842137294935163638266166585384365070944537943516463896560640812510644202768248272078500788029515649568777491879302550902485133223913261976430424279033229469494379778180769096351715436756632546264854761648262935963133306898317737785293190600179335711631692508865052009348042847427345557268533624866581537318729331739624144665901633929163089650100410464325460488448416095221008870335047522907357130089841266313056940325542923668924255237646522400572363292462697476507761673118560235395817190301667224173565504621973599088970250439864952058459616912928126271736411437233102368411914254188269316781053595627918037486113469321206599433179518526136896833724526716134964620717524514112719588034634882652527735711014006675009896042680011437757945092081222461978387560803697177153929329514798300474881737277261786370256299526078549011781921502170182195734266980379902775875572889251002259921744733165663892653819454520695190284690239996953898412048266922633552171957590654190484437434305293126181851170300175553857209152074964923390839552879154035595019992234799085908117579145034774507802533308113653009812246656285653067840121731756646231491757483889100773706610336780542189719171050497648711643744240184423827335438505473170990185319018109790864841241738668327595155651788130576768061224060582591520230601877908928593790425064913059790283614732304490547332478771547945654833740902373204602189050008898261734048086514410621160686022691166700670048212903444035193017859788595466303992156262683658807994532823957004611455527267818536674381576208930080177824749571237192610535211563776081376480148643534609477884898127124112080568548182401683347034785966004570123355205314232860761203748287617351912809791648282083297276423847397819614029316966840589335116226035412290247492402168954479462036838956599969785421934987385440993863975239969250600742117793872756274855734410208018288325658744347373969507268378149510638418493773801054587941478056828919279722085279786466167288386945168511836437145282125262330613100330750245269629425158236031569793345704883689386393306339024147415100838624320473416112163477211955251741510280315975457910916899934603647990263433864629446009502309461754017319476236396570707289889966420647114386203633494009653351455375899513793954236666996101862255017108664646696256108471871714032057227275838962168455363861388829846487113715875390131729419874383278872600747519552827133266153235979891562620898804748399444782145662262339184440125034836575008644846669875778369131709839026799618162546859440071656314883142919311351348886955557730619579847823240908133464457226506181805923298274374982050220045184838690578139063218959962958668083366857007500909450802022264175209708741474991097794486474377719729292149273487922610909890055936271592149519856896400048002804963952777663870684021127873797772656037790090695786578618243423623953784247243757198973058579911101632156301554638797050960216494408162624117051609683505080008204008978934432123243000748267651634990744640807625432837933299579324468871829287384989544823937441649277128836056349581901689111263348352931637486135616980205672873590615818455050468741094869947252106322009124429759282240812144359441970834225252608977096232383922246015243759779685258555749785606073021678452671045554194791701473479410423106881423226779165664435884696718730585950647994402987849996454976269121429535067665168901872729835259349686732907845405232054091600430387438110818899989744010532998781650946322530675702326930881692965053905892598775392004289674751718806803864011685916628643360645728110980595916875060540383478314688131590748234963973204157653825954642931804485398830592884567621256385014136335780753467847736150511005416572516289198492027937526494800564174530925905261247841855660994513682771920673204247612204994417698488048782226754329590736259860471894942450682007587447748827989768042425646345991829444667970753396999439959239535551819297577837102842584587397421135699394615152827493971990366905883577272356028941046228156942678197228441160157471184947210652786708071846991502622371689093094251334448342838158357578165916317408636556706251902716773443510579949561451640106334173999464486891310699913722836233924124109504096258579143909103278038608986004823441531706645247526415565739665947741695333872022033840284063948414493842306731617290645199322809527738839425619169176055975306456643628307001944644253400192292304668404643630567350898995162243544079901074737112980070897315574413676140960576724941570180656738524729809024246542216486502455704774098490207739220516224438018774294416837849836263405490668411403566392701709143550798029915102840561631195681240939815608547178702148785050043194693899433427960120191034456521008854326264695317556078895969424751196868610989713795657685451198254786849732546443392889228064122129981649811824459637252531216670164828731821159247845389846755054901155109426542360905344830693928792196516611231609317434672651238725635577274068397545516310243345965836523134943332982081743449131993720594061559907013076345822899924545742486120806208549134404664458973070507804242429276048153822922704450697188950943582129732189357792237987599944288692646488395606848857806737426255562132801906995011657028285431019248130873108221573315458771365968748860649405023485527528259181160678655150835776914739581859915997624251260657293752213335435625809620010447692038040878895129432284770076395427819695140026004909105522299174341480218654897856320861723409128507156919544507998252822040131311546241033552466637453019922170486472457246723556351037182362985055827582208995270688416442948804975844620096383841239402578978600376611458476148095249336140308638825277185719071884919624426009297131680431315956774054109319163722923313536358504946560051769840940441527049503490825973974649822323284981364477449743732292814235523969740969120485379383301912640191681352975362981117491355302806427472976724345289366265605296734952394005118173675174539601481623531434419298578420127104652288808085116993027165068300862586316623455987464238570151431751604812159002904761572543082316133438990072662104629468526973418646938080811810104633159096008549891473416578279767295258637324370120222324807717588101797202844987234466829472706160758560918961907134679380883773538895160479092325408231511204020806818215704909167927260547615666887467371069387861814526654303050622860051402450796261245180276936723130530727867542278779067833261504566881290551103639302179422158949287870787971208376993830767521855694884802562974181209706998667799459501112973473891804276881472355358122048914953733712353905722374164973612746863313096060486568693735654327341878302505905985111619125676868638354127610161680391384571544154894860667459706686001046851069751006076511309888447573142524860743435804219691215647760098225672916693347982373598220081484727378235802098862247547698128281833197604618314192082411735225852570190499670294522915991191073534561213547087723052807191750238366175560647394348191127170913124323293121365339112298289171504748815141515484455609186454407129925463180460879308964835700596016274840717742901945902555273715816984431711703680509556422926519246852703833489208547190229380685940952450596079079183975533868758626881874239568560689439464074562990410233997839649273662905884605858924178186610900710029937987339342532464656711112443662003471817586126935052697020006517370656878030927318520091485843360319421638147192450386619627019493971826893289472485160018727026537285179852108213388569506122102589321129161395199734608127422021442216278627708900971544053299215179653226568738936210065686142443713092799960290924430869175574329459725555789984120338862134927505214090891084132283138560547511788140463508120473952787116918160862839677172855236615384370005265074927617989607706096108667993185697660159739733365861028201121301933091851853598896490011485978109752781418831569050723667073908172679994990604490652560265442714562112317435359843352358411936808049443430710596377069591738842688768074643158362878171066917098668608565320585643944218971752023491121774618513441048417654804053344869553239935543852410115686475590136499276011166891162939048023436092507456049937540920641892209691923379440864515408088583080549416910333735512201720449873220542456214891799853609297525297349625958205753100077391541695908945972993955435874467952660385111235117368539865161509220438860683339604523706374938801789255298112101781317065206844517872703643488826087741619915469520872249718501924810440579349773486308969332391309389477900402101703523044177089710359264637908769342384563430625673978903547686029088068138352673558065835514775214132922326571946631038787326509559901694641059252427524243944153821166397847773438642470191115806296901148677880779772627871950832411261151465585692212972444022442181384433611873870291207815250519545958195193176740257639529110902499529762953849511191520634915697636215402725312586373767605631813482040891694043520889190646891323166872278436889234978415038263362715208014613226972182924874402023464338064074489960690277868911277115366070984933209011623109386137898109839050513846320968093328133853040582554177832909356184062051267598990062793453164006438413205048275265389408714812158161891176335505533883838482098749866215786173731911095401296538990879783246821215537152496571209682747051321903355761138959270938496302256599734657563898223254689080250665498338578939078297539010827617718844444705487049259121267956390311505608196616780606197210648075272816226647062928340268735601157893367622230508667469897385112874908527004854808914519936551388703380212750592262708315692658821455716902889505261342099798362626956590871364578138993849488995061556359922496241092703160592878229101398027489427020266974290290392739008456062031876209488890680442237548465866447293828707575776118999720442939511866792993203150173452416933823718234477400581599802429407211704217855554850987423035028007655164288565394842578150603540311127161964664708752534798933166766872037512187274413554283836420638961965626992718750908999089559352878599702170207873585311612057753879796217301187538236469089578950817806545488224824609696668743271765978107252039343721859185642009223104008627339515715171314877397277749325591768678807648026345542632936890156583986309785581601472282985023298165944571199051701157569117658425830252325370836883275527149598118777395779020789856552882856125253785244433464936256199615991172846136598849005965636741852635336663318703467952055017463500827534993808193446274072957040536490055462701405761449830117279333255336441807811298979366771203198736727703419218416885163103846653145529119452062165860554137871873406726690415162526221462979113763079590867272154706521743331076058996689779072019461211572418931240843807638954102874666110139441225061649441096450081246619422205542496423293905295298583717395275495706264118356392469911669032552823902131209520723238150226345917061826312197426441214867432511939950997123399068628714115497383924980010558031949269063707302274234223230740135500193800844251779911195912590182731356134224533810507059493279846184457341453802787569891005783905308802261000467343075383208749920286384421043943898428743332091933294296214746006130201067407227779839216128824604164634159831207420041444392560175619468867707407339394963132807472551012140297033418472701558485189264528705619037907323627165837466011747528204610250873952077603994163370507094439999088673969957664295526558044229228240591572543112344815679988584088827859953667945319966089432690593213483480966281006457231688309996272372959648620816411035670669882885333459025730891635044025185362328550799195353820396372199598415534447202366815116445010199701949325267356430381780674470841836451971974936036613126887904856030374564549807920089130148295117997629331746575685786881405892321033802122276796837761275897811963889842616760510939463453214342732120506211785559564091232296994212466886525379788515188025869283273117477693681035123293243392024918935232259155560854356131012078189068288956032712114326551328466674131044303420521166137655801718392050719052932023488267168022834471327099776589845890971567775926468894642178657817816134375114041244256431602098877455911977332176003497018963994429160139220526825642404973343226982833362704728333413211752911360715300465108887317549538081459646927044144496240529024320502850588353529375733261619325623426174823221858969277352036190969514405292323252144323175098483042458166439920829324374354037668627649320591120155675230440059548300393504576512066822590592431655127121555492664352188245552391714054806405562683058649274483920989435070277437044129099738459586201817256272523737120435792172836739449227160908874701422938983165452083865183160704501496615004821148172787210357019028199448653569421926885503691529626093277520721989789344738024747435456106596141514892485273318887904978771367622056058038059584025935099923690762621898734622237282160001264366522362747846742110089405617500186730151348791858854231688106911126056583359609094992051779635445777931394545828935215803061597041804531042333106457735831834828193574977020910310008936855987336107623898378960457696716707658715523658419458919134871216206123653588540117616567073049139816642565686677932806064768126208557190172329850819683044319390758451468004666189290661552781929130602467901144748289257228962674393158354817259523702395570629670476056878962161657874375977605454728446427772901611058390080625550935029783485249214528031260196746925800524248650054558573536885359999731167108389078298766531877596022530544976995535726831655376338553288683083955091185095475189095943765554894863690813439895822809098508109408409052758385749297899015707841688164193357773376268830672676106923867953132424652332157346330836406545572669280695118295061957863594976910299020914394242715531382555872665609867315461464359873031556622901849279456807585163879681241580777716100245500154221440347546557731431282926084884924850248513468272428278096498602176059445982332839920130724748337543713398932668814853533697826894065616573603258782251521271008996077671635030907851257655979566775393354079236915085055172570434820797197756966485540170016669446395300373337284524782938396699581791023945331451649236560483936516229274338295230502574834842434064988610532324270501332724272865675487371931561076980917372219144900073211981782370163343975625918075169310503312345952326443837182958019614241747489506000788033003282544000109238872917060776668392455932164726343717656526131826060611836585486781076914296543735948739653241386092974440190996683966114494927508385482857072773501905017325804949636211624123946687555793242675043035345602316789618482884481970411451314682940453906016966635776384998022991107453336653149843885115582873066533721392429953267342449279049843509672897881951703145534067700146902883124326617828345347188683946338711433972372797133798203305157629985787016287017000691411227952580079899051049309504754772226482888145347880380205173997842488612708250382210103169113323447597153433067606169844504612327522990339680766081539306973876136758927771641712524275142935739903161114047058536699736151788161166225574658990465391692488582189922953334199182224195560254204904625451802481721004253341909798573643429720094809592188777588100419446922212421212017948451536513468591898304187935300114320993194391372217013567539642318663502765846799621176587240757673932625072907483821210915075411294412927535148883348800626228449500085887436124351998891977917171467750807830324818624322699158322121471398013258710779745673737119707262325548295870505304696799575708331302616032294685222629153810243481348173281700985070849683074584001694448942976866508794778815426450530059993590501440438312023179439427178546419151866077297736420315594938912027964493971833587760190810595274964836772338535649745898864475134397884793784163888327112493853472318946162290158988996688320759965428922427330858526712765398300153897986845201568207348431612518947654747727097120226430802878038566361437150248530121336498941761269503622867183493219503626880731475396636657938671524904513694763363865601139083527465452228986624376969792034233476224083209082813185080110084764556729460158771530942129378528693209045264712771558882363570595182956303528278221923209141229577760561173551606383710029800511383309960782930428170051086293245143316713183334840598332873795786734450016981632547753190609770652514088749508175036041566862622818084914469642561517258595568758435656439496650369473228324243623534632377285267789123316294618016483780092039967888707844714066937458761475725030570667505935659280008406694383852490504539929803227004387784582907157789013290370252901455384791863263648753744881635771170492934365697324333347885025494584705802105783987137737625517701161727213946530331869932260361310970181861485821409580474900440698440234284922156715136187763957301830295962403113130436840701270087995819155657255841722461866145573876037951642759925645036384337807017095016238828806916859516214215894006534427967759601674001935344089747366615747643742186279451595922182894523548837496868462539459931961472177000333076008226387617832018823696214322769647006157900278028061389129858781251332365718136737592856387795786447346718575744755075032091571583209672196413652891841187888988373950950097095028443704249875916663451285114970397411219276410560116455628017080786560650526196781159186307126528633344640294437329220766620380135217992461331636007418156133583793696312233899441086876795262002352545514911652204966197896398874702610072274599908975701543961311823845427499078443921148771161827656708750848928809447355239110537877080738647135142265981840661266169176533130286761624002171945576781421263131317508961993916139612877951080359795986769665839113656584025037956551187853141365756373545863230101242888525751763326417307024070029694895894644072944980151822006870500618064194532442835423945339343896040105147382527994998423970303103849657851736443806015948367138751626001580992230360274108306597006305480324570835192451419977527533020025315301720723348383561054248246353647542731516081771384006419997408723292441975610101925924357057860810748268237812236382490333649740748611956828651959845918398916675592499610830477496011330085660547560208598199266209324861773407378732008229713575355845617259744898215803694548686471308684270413041486705707741959423520913834013619197236510133460983546184689177262209005901944203397788726960456842978724762734390139175052552672191533734804219208296405268566457696223646130009914479344310820462277446231023119537829470764782900604491770316787236870642946776335309819980298213230250729637744904320179939584325570901558526611733267640075534294387176526558499527805506396236707695031323531357836626792752280514213118700051284933020952469267522101477852977838854631096075190770799543525879369746219681964174680256895424463328364146795944901417293614504726233908045485649223180386533293964028976585642676533749521617747074144874054891650732240677447952274521489041628856579056620455975387796078646608333865828195992949812730742880435136696067667090993755255316097732740279765105597702400039900015461886160977902482764046899261442375901778620246247381208877619474698913328254828080683026805594838951599588967931624185533162928813861509782645664036151338586821562597718091050983610299958815510108195087517380526907982500714555794163615332920510138244612309906172780825782729706437031713539062319972812548478115460503201793791302836843376690318423911695789846810308256329654966449815860976369542604540574752339418237826779382206907801179360805000681020221966779682500266584250442982741580051764655902690345519427823251191850766459899092366330543367130717233681775195394034302302422101617569782311680371156350227046617540136781121558011632615795293926741794134149851209063105585215478064560209444030557491581303003735943685573602951203607202177465677780320993038262087854318048785274969152663519810860080402695973244308115511477146761968953895895749568173604983209579057680084051673970645327855665716344458933400257587688409843731807295924001308064448937737303437176978057649898513328014549618644600179111975525124986400817434219368115844515817273260972083682423440655953792282175048569476128529640430447208259792888024789576778623338967677830528837481867208134281456984913059136491346769747404976679468315338917564675959990983618926453299136795625993161748888901916325328066708987177648913552240794063920696221107231216862106414095928550313119038305286139341861131377930872979592717639716261005169856937213076379134007537662824824240154399833810212902345643243917252108590252861824806077281707581292908589210067582542802088716822948826842192332859234285994004517980059116871870110963848438256638126636060957701087526914060142771791105565616731196291473817479011253691706184857698307459317210241764271837806351698548077612137412697213674910650390484612359538391952589467342399899653402984003891583864505678022571891834513093169630113447769837773373516416294725834623890754410274436715353850855694292847135698755102852944376204835749457375944335806485599820057290067904181562833294118467662224703983867300387977997013961678541916255215631831501074658643341620423147683746122804002142751845451723067039894593765114073722765839564804483128251062217303914801154419088180623469477052907321975592231786235977020987258392066553011944001465180806899885379101371309370456227103226807164469244697053937397124310424303918476141937849423054514426199284040031692740663069772309172334654547136604848473304647592254996519760933148080649499680367826236142186670253775301247266062350852140012454347898580985638519642073504286301294424544924497188502958604436334266071396288091957804988026337505283978173672308831501538254309136412912885984631113196070413726233484761636294509801510127488959583178127167302352823030287668139040915271414295515740454593802305629530989182601527961379357255034134829435878351579299893434082934245462790150350089318326436584917029936964129857053632316821779499786439706351980490899725264317244796570599246959538169550702171294662438009541060937062398634789629214529301689309240764676405288903862681988144387406595596404300738386060044003958005092977136686493994317190374446598934428108176623772886410187509305142902101394239017156929845426141454545357670059015677131691779576076014206642944796780754311146344714134728245489360836659633178511328062789315728837605622283773441254111690353304625192711120015616722438160859958516989482973702773620835121313154667631218333158808493347068710178371095747915443701315874269924774762563860974725064789856539588904881636022976504999483623906728855303090955561282832769119483701484708070294049449795756603614024608171313367461468816762085034554658791182748644502539422612492712339492063123556063058585284861409623326349147854488668858382381894578070430814386479874389157235225958704287555654777839058197429718573868009945053227816505014339048107281261730844911127229784572541653340929464335701162312748918361732402737655682893022629241950473826851151953327362923527065005282595093254196198820085185011523510873444704972434754822409042937086022587259095187752177239358072415586986882738435019714474239202296763034633024814111876464238569679625036087385914187184223676067044607666447007834082475624230343139905360491148854186363575572099414042821623625697490329908340899860923820145235835405823759546177949001554657592076932472443307665423954438393677132240941708187309555137719882574704836750484391365458244400908207022171571381371415827404530469029735609919073290695869094235202782388641827870094035904355015899550702134735532773683165139062701854381407324524648797965370470642343509640432681037057340091122938310798514334353480353538069871373775906502170389423732927104901492052686161766422441695541040921269534343057584222064309944053351397757308258049803513691804696549333670080152449524736229588080895813285195607401957748348533575049982237614981852525207600268101233821057234425548505458744328163102904914229645502496072274346437282654338436914020717850793223159719237584031750574575844997783026319223323596976696267905208933550405667040028274539065242503477110828240937816614356482731837166779511100961784689577341744870766447936940847817629615015503515632801501630986890606144783197775289904111418954925957900856532259334553103662127209124733110284430555285682291861939638861949375225835664443759339096771731087468831076391147676048034080303889298252040794049299629710155288297599797909244416126093843913667523912260345982511641237418612211764743323256851952926741958490735758203728837532958154746250364009531289302475038573649036663696633656693254588113535113942664544728583271471272896806009724335704035985324730724769931699599760445531583817659045432789366467216783832793580668995172022730810538430548753588295359183296307694923411784065932474464895365542325634426227747501707096933470236377096970640881157059090509806151510661303799625505065109340860160838652504512250805068563283373955961839579067486421144372834756250666826039166637414979522464613062404558761717042247980099242507083897335148197095074069102008393501503450111758432010991023912697089539627389259835038207291646015278503769366796482880028776850129768689663531238029314518370024655974786246114752327751880762750037847667852074014840760278863483123525049526404023453502526325221188482092949447154876530414157184550715190911700409844115381252093045258586563526696284345429471680956860758807592590393509756585794462770513112265483207770942951712342189177202298694497053834592415260406679926542025490590894294541783743445356933724561085674328651325135743126476376778567601560091821859975338442779821043009574606180268300082301193061631655637449744892293447200372437066819241682131503166054610108220544764459354567039707834671025057343134952642704988359557319007161058922986986167285077727784587749395024107219506363065772293201782842286998417488719099341846770951350101425524491982214969204799668038630786237023361788734924069213724234328846120070547322566895908700860057591026768532818388742478876852019715226120556073599199228287629234307261869038603248599024815300392500101922532761930637883287215165383029085898332665816419262288770688193205425983336627493994918835662085446827113093160531246625183624804216091929156714148621047895223003975306005760838804449331237752231351022375351735595775242714991119321249588590941544779837460334453543529944328447907081113914132346447652899120117232228218970599782461022020625983863831927478788997032093620339443433391319648748891861581602112050917976957631476145179580887506565381872297661720960040551691771286956930177745531439883253251793083297648727377346605780165270635482800817730062376987870674497605708411090346026683252247894892498114489017294052692693403086690051930642451500313997364309393967952594131390380368966033031019715707866649556880186695278090369654677283062345888727916858169819874086848576624885769209078430798186238372263489739526667832493090630895407029407211850553824093218104150144805098588632062965079427535496272272820852182592226776411236385622869135768689833216749323174311620036860838017262560332080404849725268511166859989962103564710035851575056405709305668526294273205590071826445385667938923343650646939671494262615895602894064243860983210235879296956492962086037070916870687979665684642543582972546488785409071529559777469713973142701946807033566063414907261652623733571055165040869400014171495630570481215658048129620719307366475363791230712999085391130932975703672521099934957254127929216482513170618515853671000658202046493515489391119605167885071877251173473265997624828023569311461876985944917013544098667943799248584965950194635491846094556402681857897620093120067440361491590618939844852161137355531040314042410295294413540388251558580457939801155446947527633271503379674089034308934856360920454476211407925796228407745277091568830533166674526266164392304796835960134840040208690356505786102681306091233507834921997729265115951399168672449311845901587917554021846605073403743012586291631050677578893051399304195556208906986270050617683627858555806825705249628177183428954831744097545329377253937622088054282745392204860286316456857340925556845667714751533024038528496555568159825576507550683902115873603003119163817831861942086334911660756278546809321242264512093971416401699931055563751955524417522218942053586333151963362803627656282989254545437476018255901473573248354182081595830664779924552478199559938808202840074505319619747676454572799204250430730931815911902559405904503157990169446006718406196551937134833481885374051965308825129533906512895442986113880312654020029827252195460403352358707760957016367691428260185380438983982551046358244508484509484444118394458090976848513859277016062994774993655866772644058491480378966126723001920387247217575606050246396648962493527356879908656614562531645042991142682230971511588925238918437189760217845415709643047622034193009186051004547176831493839989801647156790217364103067305559150697470069361254425506882968799174418005183295292137192911695020596732379216795073298414739866565035781114430134130445410578847378232074602611212952212832467020460984795913453059979184210002662148314763173585777185811837422759379392826314114001142452584785329239978522289311665501189888730442091260520443817165028706492103823015098608904402884949383642264919790430782679205440686695507567068231352000749680867796461664832310520002026976412914123424973853771305597162313802614500850682410395225990532729382458918447914506533780814883916380056884974976105426986588744407867746421155869152845026990883920804548503421103562885357322870009665886990880604722243400343248959658881750917872100680489323112408576255226446709624423280235085955209787299250046497068712952450453689271647682399196673964475834691967684287838892799069837605441489276342614378320981017305126904253403917934826575399933587978422332764744793290713859298876315723325083931980391424706820882360886911790382583174989288166822680272192255815972540112353763794685847926057784408933937712982403860408565800819002538997403707014709724742138632522521492773619991658005615369452480688110689844991149069957945754406219792359563391567499825287690171532430062001803502082487362751324304321279570613767121536118200784630276165503752609354110285350466403652744541560610521063407521621809621163043978080743831141818495503538870968663367066307834407596323851089907895970492740917678490041947178533154077705096388397502756478412237201492123143324149220748460392679691378867187250934888566398688407251077287108641229847857015981570815808162996222846902453939839273335619041433775391680656652846176984903423914638673362266613284134596396488895194791259869410505151981002335410351032449003042805256171010804705862316592304520981698243925796801147203605138491792651103063274608199380750712833198827648192171708374071370959804574646522039204858220300958709420122034886004957961404167525378997914722485456781952528747121418921182595526374157033114705142271345940933297859607089856718336061976166048024852943821656541809057093397298892025973237272499523880027175508066044944953573483686133863639752358468889572707907638950874975546318289215551423790402500126898643779054891441115956388048107446682109990760731736504754768326107959407749792958075884936686820926695569432362309689836169392736930014720564180785644957760903048849850943720843468981578687983208620919470932961737342614359774045136838417932946262257263967936610743331259307331599632050540437881870558277257523690048016853088870478457714045055341069936397735871097386315379061767053260680019067084518808585449879118861071251126290923073166415097005084641520886410362005410314900953728572839941080533942662122944364140632673177317834730044373981618980587185956841634090144996781336149490695210409486688487849571455981266949965899874527211684957962008000717214621830854969359770021241811927744806012464542008534681237277009798653746615620286805225097375416032000831129070175384833013416330238572076535285429171401789347598190159762233538526863925528154236640602475164547490448560549124295442056633491067043799292476537852388788787652337208222220870728520327099573027165636181653344046769091714602187279103383342087319192370468530622726028587475418370112313995249968118442548084567988849838760312144002310389356276376834699541893504642946498356321055291305516493215117614594555162435153854444711870332103753609718776145041451449724149268374562025051063849250640823768610936978750596669090647546088225032761876754383922156612503294042342650125993457159752859004106613834532217752792147647794106313126690978449203779576825677572084131985237815271729519742802103665121166345502544926910269901906544128259321323415956001059344792184185652848945808334287728995200552049602983121273993617771605898926213044670503421622483822917255938999001053508179613264166257798746288902616946646174791529874884685125549004244536783155110413421801183044927930001028917648924780958011801478953861364949584681820754957194367460679979219824514084456567983662249088077869579826436550693420391222303840364563375385696095844779450324781079457881857199353539184515766942152439462018288853938563150430180904885804707407799696955381571127345650642386615910196653867395046903567831685877674884552353895950093203494746686149356926593114163708726738374428301837173031460631901805617920459398524399260994367472599413091471324087077832535504792699453154709724334370701527867968526514227877053866002022761255335340147629352575493360692005780564351166873471516118111853641717979399773435007136321969677937552184069496504077615208769041960773543965831668368632641818489956819186318338499456341473906363002967793486635001401873547119668659887531039777724545823478391881799870478292628752432156375547375223220488296322573152378336289839215505423731109242321291619100342909524591682319154291337597021007849778795067236655200230134711364092629966429674545566418658059656111447638303156705519064322032162593148804947915563628959135205226811163900113546035197665238418677359011329354904181128440748434528030839144767300714466936889225698944963860357204566425296021746431446842467955311261584614866861046860504020078041967006207674077940847106273761526524152822896316636064024090051281175407668362765183116804461218880531701069252268599242396780054115804726721133697074070117836695960807865357538832548095869237491064562380806663641116951982633643863466898670826662625396227487184776299552417187911965506006747710462186226019847652290853704813992286007953867624242978625262478046469026207394376775727516372346770279480381747054751727549747781071732594376306467731737362445264430307707842900988842716595442253563445914234800827608087030004250967119335323785776879428159884031089701393363631345118939868935038109929453787751170379248883868285038265010156683785322634465632480037686307902463012245148163195280550571079525251519186140889855413450556835577739200964793291747485653442395282739634882990236146663358874612056761228044324991598664999766050304798104782424165201500114349399128029216027396698850087195273444433473541536824262460158329743930682010676673349751346294138389512261241376495206682939242507827390506621540398266751848580822487056820577189415555653830521919836045975908445102042807700782074072775384750219391812099422933004117986257643222736548737188184557276218407286200771148013768749003243985024363770721692885677815435417881349212080248321108763388286825715512103282541853654325411122425335411825549145511302333097546288191648436558258606972625487455046012767946419610439594477823426859670937747733559855548340348819960579152248585489907640231375172669115322765334590168066376826614951054550792395819320741186403371810527905783695050668122899009964887749194234786845090341718913134039982211257992644844250173923301713168676612176903601528598105540624160658011095997608048044026587741382527298824708601797797416284281307410098503132616350520786590946646699522285510170427000848709138905220397732913036615142308546008036756009189096968636129585526998803858813894925762015444546380690954630575993562458663535258354919386308123654199668704658650821649497269947614210848129220429583734303459546065985681382533317325073166008279191135396409144205014116640575573634114480592559685676796174855779700718547803345530922186918026168476075096730032556837715049680783451694815297122688455941939483188386896745897180539934631564505619759236560056100206160173627585359681505037613893375654169914568414006307488428566738882587232239273082929097852305238228071639707682001931206488443691604628591819675336876855647104275767472695057634336102097365805378373289616871590553411523955247735799176250506822973302643298280947953727509059055419449673795041586877982302517982950886445974912223745159512233030638523911923314483861216431656327248917848809534235968566424978390654018897925362883709166393031516801294728039028092212320036555222021440956862386460262428647663343472739955601920186572067725998570516640877717957015172804488279628812841740292979238918330252239357906787262480617240837008567927463561713148140930469216398257117710810510549122829013169621438094767751938060723590509219575383590751464236543011708015869542347886926302332561696489761386393356857994549383327388123113373544458387675924949837442432623251081132568957822530448373637353863396815123601609917920930410189201745349156940260912651228658996007074651730861692425598692162958250742153798067632876349074060773280552392546012714447841105416558593922937631723745084772281308850910650911781199564711404299583000889562420241371626641468027401249603089655956009338519737580679890171791361463679563483346021557901491302956560142499161855859485475924399631132000268691430422707145630487571725659360911924286368427587437202292707576114537464191849760146062299450519381535915030722541738758079831494983819619076897909708121807762489980332935650845729744003990232693114145613000428248427778057873106651801225961407756667286896471668914382463356286120406205225626486628482420686613247760425366125810933340412289481403054917415870423031313348148286008777106513748079480883408124808964558083771514413397543370785947619117467920917704530506050402530797279265825623305682956311815724618833084144475578755734134559953475177574910823030683997103037888519245964169156696552056297613103963836461558445456348839090183188615257104820572714700105085612460826064219907910546067752996779760279028248162380956393838017245391267091840420141338984165772992784315775158095045571225637153175056031371473912496836897712345349085466211359179011441222965007972207372833594591203453693912008979960278245140281978240894040039579066220463878553249172376589980885893460836174977798755332890579994635731619490568034210307647412617507132822222637884786309012562276506901780925424919609869252884009662350607453882136113599369127617328781824938948534094492175405288908374371845766373855955019409813712218766170921074961641673783827336795248115579626421466398701619106601057616635641451465028754723878143290628381891748965836304221018828146693900855388968100503168968399976742244791423018584669959656700113933515683724916900363405738232507433301040447599501301702223861255110348218296016415899616533732584775899916432335056070613669676074539068923533626987032008658568633216256421404442437425033194567441784629980410911192880602907855430853215332203799739427646391264965674005108790064988657893562722287762837763863120957114428298284236123297707292318891518040436396610366380516480039807516833352498543019551254860337749472224482113731182095648698726276875858060902452004791465694118003506137190649384760490840795978368430392229074496533204641875162309478816466934438797319318113375371584813053826735826915315421878775395149266035243274959743242706719960715951432917962886356698417600067457154755568011599651217077458973170571540366599288565212392970344018631732345498752082784316151268177749763681052114059308264618247340147380243462726042014684238310514401735197369777216317989209624318911962410254652745122153908710633578079838559991702716838392835991094722878800266222234179694221864339495799819845008807065960093303113231544791407857447421469420112788713275277004210474793594579882815714742341651204113625414117631579575161731967605555526284118135952468391953739756961503761154974666625104763490659721435543796578729172200910324504091255557223332622885172788057120451842272795493772809752665388939756164985778563385847012833187728027068254017913361439470492183794392978978936051677824846101880334511138892485449435259847100681114797349457712816367605643919675934037862327195789565634039560190198645658288172100069264786054648701890115719276375413651564694036417842303808016418078272449350032505069030544218319647497883456412150982985194146950078008778146828599689537827951354398012651308084828086091304208007706904991338867917767097364798255519421251100374878912490765783682475134319329562885900057743322751198135979194352843130322211119383218611651357919175209762499732462999631458511522597947720374390585877871837439805072248960333312320258879460137585533904287117234791298080903918307603528967391562289779268841631466539362297825619681360856987842677889288945741837330930164073320028050258609708122930767686069782650882941812069874273670628001916607870385536334236518160658872860503368749000494052497960457315202820168689046047636582973622348335412205623587991959065828271900756523486599705021095866256188967525839034317091587648213500365002566429799907609015983063461822505437818474837006975041421555659256347829045956019916716570231566745551647144257290065839168654220217178409971294386680637740599134456367461666314092274582520223687428078664524949149941946133589414936382414394622608762175000569700729092665056515331692034985224466661199120172244809679961198565157235303752599993220125721624455549532813238495766627596351695725546352857904681413954126217184478004079807504090179344355969657328400835047255897556960983924647060619156912497609817618715218716814848230112147639743164613171456427289636518402273821393833331694947258387839506898783661162403127911868449996372547246011398444450056705614007842646165151957956059677825693804298056533293755486027302475802143420560109770381157033849853424352122691754700731055520189583677778527295898005722062214326786567886323871453929582121439947474542260545438085881360708389854479738497158233442563218067938392645360119636844688244561568667502446642326262165846731477084731256474480570067215556749872729768303502560569780736271470126814508713580802831608159623059934203368600852861659648400174059497811372738056443683307121030593838715689696196026243782098480943722516604865408907608576948931668881338059621139960252454690363632182182046807660349235034049522593008635732426224452030009290164625253853159733742838011405698237004373416014065756418626248034946208327886118853092365369631684947388141754669974246684235881973096721126815321621341274641091075541804721838974338307378815257225076198697289561305024285771121719654967559114392731300892802361438632008564553294363560326027642945662350514689186585385916440367206144946216698382177341534861278768974570443247472770115738737584818244905706569094737439552083232907214178191857471916917492865315425624873901765902385102578116229649360205952324749633438017788714389479322185951054251312101840064607942657543129823316319416128621638759724795807375144697351542262422127660014809120159056561979371942925550261804948481658991321012493492965490104579189268850050758541984299395058538101664366348860177318581871075138999924203488146606754953790400135191720549834487668600239597220415206054482703114698472197237671743240045828058534333664366738876147261856764106123215142845768045340201223262832801471507036382046935486237649698201872382776354990091054325911232462558602092863970117637305671174897795908519347382850989237903064045217726646399795898758439667473694016645931668266114692055650773949186263875603591060159954412041742798896617435864986292624653300970297557825426966773561805440264562701218786504476418245711567762336846216510923295653111860841539174822923515816065954199148095225838343630497709097940397441360969309767203858902706940874629653763213813970835140252976862809298759839231972161442409706682686470462208555261459895512737996832145371793573875473330102815748969769532219516849526457227160893521866648616368259717175251681363979383789993147177944953457909296184978389498237438977742880242636150370108592688189039860312679838320211976561751502739722231854196538884589145067435042841177408133933766313763278220381127086271704253065415114831588971505379152155853345385573379785589828559922838015401721267427927680626130522079625470848525961132765910370742566204863611633403858845022097194938050495633173932877213998034159320330456539612303814627002273142722961075405630771017108232820250508635589045282889370546123751329865141114617532474919349446271300818512097692816312611755613236853026308037402986662039539612730081344942445909527472310361660065612775042794579499237061514634657334333075350970499047902121232889424400875576584741721214383360282990701586791578373665644302662686607413312178350582150904524847559608569482723421939182326006772548695712635222827895456621725630411412165719296393716666169473633146374802902040871480798711113686516365795809576344394822964146509201805015312918102669630927548802531025829822256587755301975197893539172566791249323204019209201847791786332165964514724083042747504820587876245737233087089457325538186074230226072823959354950545618848929790689637509636866317769599197628521528075206227787327031866618661829546938842173989018482829668159917933525967161866226094774088772958230945203194909414946096330454017872708732870859113632752054556409115485631272899711286134627314842934978099639637959454971611439486549132463895919867600325666915835897073006648609504402318595329037035330036139776368079154030541750527073673736016067979744402938820693741702141591206011582014428334192872649027341351956578708166897022959964458578471998713493065719038489500179349008688769503899402723371801453321178714947106435554796739054868260438560226314846666306358009738344117874205032216931807709860683064258530249249059640377459185595712277628663846497802348800294961198414883010402715944641388656490931878830085535514522972268011820923461353023470136656539134739225242824665004258116327506285145784539310315591594832255090218889638394090288233024506170122696137838401718382137613181362645163720724963898253889913119322875691642875491819799548033778734983751484052982445715360580145921105348696410674781087687877001041362024252104581697301921473541280394444074643425938664844314351302180302432445761934760925666782803089676735624685343641021504795896443226799781992022482530394577044520790761878617305705696417324197470216617508604188349797713194313703909811285153607909758325015381399944039082087688250036695877517444787882056108707727650239518988896631570198762685637002759685125010192919699296822194899988795113678836920328898511568718008132932921711789891823321447326808004521329222160494528550929396124968316039602280965700655705588929112692811976579096555016647138748743982071920504653690217214482958416947635746087733628580208777182900480383051000680422916843162160783782765698556081612510695503230207343028736127608079301759660884825808372932604145726157615568979307159286297361214424583413430935195978108426061284908933145590717863582295270617224518384754530546913604465372964128620406458639143040708940197396729440795305882080138971814527983645533132840690828702212567470082521618617174340555856518093251565004943307690269221266031951720933737465104771269467068369830815234804248085129705350982578471070584021048027625340308099701388565960959318811583436490507952136407723283634221199903911910005998192539694318200528842223474034227547055660097114301481801084974797127479648056886160991517101316402474336021630196682863404583064667920094794433499145070891644600034417309726884353311083941476568840446092213603803859100045312676049623346646643571444612001540587560571557882697367050534857202359557135474196142648767438886776170948260109863176631873853394567303330080412416754898829345157672158811325069069949318848023079741388465995339722514368583538229463841508722811428470852231776619379817007327166222957290861047241935431531161536900508852499010197516765959136618738254118071912325932078573367384617279074851756067961627094256473453847589081284899855303583358848283362690578539737614876488216282982203909711578356449877479205803295476788571440377633549473997983113993185752282071878029042260651172761976893739646070823610085575376650890043960218082475057920384853571746699289910915531505032749859447431486553174154575167131462195297748421631273589177843285458996111874518440176020360746872408680492671946049785380277129112028304889184709714233089169625630678361279621620319527896346413454209382180476690692578878132026104490309175826198281770754992575805512765734018063292772176869345360924137398271070303320414444586756313043119420817208667812124264301834459340591162515346690384450282867056194175053283817082150919743948037114365341051431288036048531209582918054875673358356820172272444973057466224893858649936058586422234048324911331050079762436510284281918600426703928513757396837468845214302254763507989111099018461612705258622035069500395993740702596997519618759981987286057932347024097875650674995493332284022059902896043524952032366985459467575278777825830555693364816058541574100001023492191214105709706231449484926613424343318125228392874089746711241906466636005611170183514566669349136615543390235211321887016576171220429419191950371610597579360604472337259213306983677071639328945990325976005435437366232204800571782575111346390637365658710456425097955980571450023664616545737456786672619374314536137920861831238302906901324288951497075484748849026184462869495189812889357179228404401207482099947573447811432395297834200182517670640113763402241610532456216087395743297646912985804470120042459929465082155640850031978784880011123431315022084564428235734998194531916267018244775869769850088861559500158488674757228528081527070831883637793717781250855523155483523312241494537571936491543251662440445489946077753135173214134065735047132751873124600477309363890795627253865776000918058637250678147547053712404212111704824843746096361735927013473431964783829234270615622286266652421720388418519756462936987904733889389033895852871928041927220084539917737323621328184024242269323961608305025094653251634080802023202838855842779345881452649288446486498179385579214088619457216461723077683050986850419204074878618707924231110112941506895716068117470680481267940412021779595297462181841811167470917430577586268401368779415976043663042499922192169304660793688287086471312670158931095978748579602440864089208226969913239846120868563173973682379565973252181998885769193437481242279434372697370561297334791415282622896527550236051786824198722314179110701442200740504360889665371096414039296809848633747303430937124778297259417060968061803112012844582827358876920845730624818727858555400452041257234058576848018570028799884571994559450190665791098025181705873810646846939088092779244493790179993244870900380453246579514025902857120802496567108489034784236797788448571347216590258144753122699114952228409951096581226061818683662871083209102517413153904603626967802020929909388182561968074013778540551235349491211636722097210306920452677022286823893124620432191646429395704651402176952775067050677748470994098735306891934397760765673098335017736558821377687044452709646791512201824996937099770047944406132132697323289397537970838691383362306210385813237736205178928428885852978986693484522428096041904161821643770398014981914356944328916363113194515382561344415444072276936551612903480636928923501329026977059347864267469085611718232664409494697745886052921267846015106427669945564497242179741539656683472124152750638486018050687483527557576771125873724290934198954102703411544015305102104555335012418860909662242363044261892608465531265224743267876576661760501933160403893402758029375924704049195859583760303572633528297537974973334882595992815530882166575485362941933706529948078323869317113330289471744168290503947060077989079030446453274333553777376525122266856093567859303764832317842553287288940907484752372564513975676172666920142984814841896309500943332661303913725299651992867213859721584423801909531976508045208859842683704856212604817568438580581068750981081866305096748244802998514563818821229464645121902776050075401328865596968895565498349052008852512364281615445275529628948239369360985918718382145035326745065842689164937790515849723586815991411175488294584424842187353690318912011057779816453164797153375438210655364123590834008877245420404419665827659748761315954771249429233715686211578253965095558046872252130801823587411323429192405358181910868614106094414908874930513467364748010046600077734963502241047258301936452077343797532937360258667655780433012018136176769379885223334529687833022257251928361245436591255674546228379108956627434883185321665918897832079242333389019656164935976564097726440308215475013091280265158420292010389746014084753013137221739560850897767778093104736814173730321782698068632650312480506829114367267535765957186456577845277622376338328377511174626668724159876299435663925451519603517287330642208340411530308375535353115730735681084874288039499344704610292908826093779397159655495018930208699090915500467147239932783744363541811721930536812514123782597324268840576966193796502967506461820346982024173379116070282823516429556784171605159277782409965638321987533666994740016972674327913437852758610778134097328844485701112123908418147802196768112383354631870459654965791374500797775135988594644506121206454529185558625988512265370258114811088639269826975155063638923945827209525744134425982455047805123566904387933294949342157280496385882457532527804065063973911853378678422655003003397839390074002503553297033029233213811846973104649081672533465451665319338158139310417919479855569672490112968471391020391883651093962338163816255362730383753588424448008976886437251987328113801980189587399928582258123632019888653473857596555811147591721318270702751131588459682119107778301683830252874179302426166070015270365552038182271083360993053381738383544654349973182331508716294452310978174437909296377349116882058838621481415432594081518319320058612236446772337078765817320550559434067377344554389205048578291307506852822378890536288460730049582993384601915864932515017030436127525279901691021023163783407127316906884957069301790182240062306732807574347504504459654810540924331310521319814949494421344284893836827822960729756394795003629477685656390902729881295147869792262408017543335243635246698733683521481832247140530904030536813366551713764727388244532989524945195644921560431588169141204732770338992649651564994098837762693759183925519762585185595760198489980116292510881605301526520889771502389679414851145265514317622979545663461169982755495976460102743061624417621206740114641463268174687363369165884934966980937008188546962395444371214354364176476320415920446240575030232932095358971586318334040146774806773940911378517886100007261045642905564260671335212190735307716316826920877021540512476785526456066275602312396228635706706553853359268786916444845988185871008990230150318672440725537939058958156549964274367420785073223969007858457191112034354478132407711983936965781458517514460123051153149706322761674867393227268956694424304670534011414229157045508892057380211415284111710193600157676625217575579204472853030129095579919216902664925260853291487352611454839915598332571138477383163706174706853851384332724291762596002114406081506070404564906488230227247896763778454922481544952160851645855246044214289388655889838677412758371838729930888784038187147825222374690763444448220519413827372725956960057529539193774327827466379107763445034025843092437140368746662499308387391381374678137509036937979398348063443958194047539303162146067397899285977933570714730187262603863444230818962142524207893083593009497903702467895429222614972561293265962696238837086537425390722014269391250465884908597296862118597125354038275004462522213119848118681811379434630690264547020948552178623245486342602659080864942764239226833035205622938678188865247722783340627618736935297140031289342536161313891315382981471316149246970080232010554189422277925923238406787073928123279203157374070638127779776604110103020198780746214789662285010821117197886879320956456112404927465352173209625140652569702130750169486450104066015770294332194053979429026698901275195730801124287743412269233684509996320654336140181290602797725867533809693199478784338296212532159898932629195059144257015241011363299484128975827269301645770713398029207162972873753389178015757527899350719139656197465905935924890397661127175681506004733892540860387763726952632501032988652875302125098432881854230343149278016298552247290314898419174925802009454571447552688559554545876879764647317583487396412912440943242574825434934105198349109288170760819499226778061318157334418455039765096750290894514730585190897861401610439078540794193494620640230274763064476510363698959719924194148661888321006828869584310804603130458713285867397152587860745541763122901172985350655702742855121257457118745446333431069142855247803877567639192479257271272754186581920845189834136497416437908128611671944847844705983839468713661688858298356289444493637411298573804688985736745367883344704522239110492267801574477882541221992137560457947437097459742044229871385763616499998575158610185241945619582189203729522420472977914355852590590760526035678470211493842221259785279863825396854147644696076196756049689362790096235457232520821560306690439221219158660797805799281869923897448697420696433875380100457008895543355299702948211734134463288859228866727972388697053125416991513062287101113760034681256246317531241999027162486159178388169966776073287174828589018751411936181742670829320472109639123932076470378183933359886756776703005894914044498669459900153513730953621407094994242796822970885739925926320645179282922859757086273251327943416761182787768624600296791727475117512643452318745054148986599768667455864512910082509517733220494565655675569459926623296099900179426541273722783745638274911163511904394092691489889490605736085680716605255852781490377917974386671704216799566763517984851085867280872789259880631196098911961478451642624921130744805860522483794224491656132666724233294940714104515998497580377794772775613983601452975540321360725441938609968837513629510524851284045047237289923736990498716021410674348818306136827669617617533398703238313038202988559020301506102535396208405358092185087120163323451197641511978955000596038788257232690595148090276799972767662725608068228928991944014796789014489774118172071052454479396969459859312324953846000263827288604068133108908851091437251179938350117666029202192689504260905899707892414348837399369735648309255701270946787398740144479678463025581889534724834725689811235597942878115643061350167824679356275570953392602471536905237655321810265942350620685535029151924815201537758725675916244977544514750871007197838772944101189550725931086157057567398405450378191858125993858735701978115685254054233407546832594349823942254615995505390738928388377165299022885713041248881986376081024992420016365854570474615720033424167863622811736829921876454475004018404906244005570310775887475332860534967380751584178721649898310587861663484215217713037696241155507423456851517683264973082801473337824635452683793001546143497171486161182514663078771916622492776427469715123765263034754931388254505351486903385856707034630044363748317930459056697265790114894779126088005828757369337469384408889707870461361621116309331672767637485290040214614341689163609088625266635390779146235526461754850540452463929641100144647103656972511469891609364657736096834736422055532129676574457976479263562624257131983973919253169920121487870554595233335917748123564918426590376554366669554157844934569921442431270725377407472196637531989636658962809441015726339117405158590631434829444439620268402284468180567519751955880286106182867905771292264247517989776873560932276139871810052638329238088031635868013843901553738094071864222093235397129309345964473564722627584740967188467177374401724364783265952889005101460960882365312371043836413790649212230427563529724561783584895331116599961874138525166128964848310107802149499363194690046795743782397304959276085426801734987333940719076868435953454861633258351368795782694155425684413169892393630648678869842460737845345808775183517072255453424079958805671194177731774183944852276341747483197325560456193826775358731622217027652350842597270291575268776212231458449991257311351443240230658736353436608963879234112424631504022485823765253909985983820752037394255385989833959886213516839621954403333179147578160857166200343955602763365195480729365849991363951315737078645619422540653029271735017511396128036444346459267052617696270570784996744457841046339523344988902142269628039498346954707202030790164449375557031499964017318651865861776879685219064345585547090309848019712055563641996276308315285270161043986006580261658703437331404340352477430774899756821366055096327595332059814245973468369594450098409165369068606482457437808334383776107880124359876111704813183661477361360642621194477878892788574480016220555431032367896122213540400247937078403208329524907990896723578483272368352404441067174449365098732787721464059003759478662466661338356236275096925689637613421084991114333640024000790499349364420060482115868470467036698668403743367420410033601773507258369285081845145858736689463067508068038529951121322138759974796548044360049424759084991050180545374137972418013368392833141676886432934496979744539724099752312930480729503512050394490642529867794881929751622153521348553070536356394753607349179352011328251081812402796949709254881032266127387180225284453812816426406593786286493463600912035889960445902363835174040498869974547860054476594351921788256013425236664130097182796949788357499804966011822838640007508216202171192353420734582667335784122952881369527662485961132665958789705064462930514031895727771880698145789468386397156419528872208891114194211076004340675101013971051257141673933475788046729081657694503551970410893272993295866742353644275485741444362783893052607191307505103059051216762845241901362991120589973852591278097037931453401738874994713351586597251473427217294791815635492370217615437256207484903077269421660035957470927052446893797672204088279018700441606303168538626879355628176282062508622145346929786902435233796833104062263008250784550389502761540742498745411565658583033188692806128861963151890573922167034268679886349224385701858902830747597354771191267314401418741142107969644247329109921200872194000019736161615439743276431140823553687185344603478534399572097978472768956123216442374147629128855451691783246634311903474608085831939418746034577366321337282328573937335369160876317898758587932708371196955574606963113771279487337279013064090286015080619040552683804463576712985067746921574620313831950480368889097843438858257999432555824251243506627674579914613458011283950585016616071172975303483836113213408346482725285172847802949318512295137563500926009690027280456384089631016623300309126989339932914282639032756346409167066122550800391257658978706701223646345426112525607544429354490582099075585979751935777812087897991434562717369568277046150747883515474553345973176938695648049422000782728700464377663083192705760662104835657919118457487838280651949406076054575936413506699081953633118754850303494805777470952186175464889343772724177881191350521357911389219535206123599094815548750031870206061537985398981528275896925947550242288631886234070056291683508248219629029176731832281643215878810391305222274648794271279184379919962503528355989739974788383474904498075941641160314892121794491567122128302783158952112432786536319560317817789387858759054452494605495747549953164776538334872967422027195094258364627728745331664879616663720787914806519035527372334081078007795172181961190526353384531127369387369577172313180204366246051328079803911909932910830723789243242148005026481568663499874198669339779837086913696216221630734369906531935552294375314141081423038459779183934023499441163711314450877085909378326964841516025025030876014088093673807181698683167582986537552530916207984292616007916898515332483166158657245050856455108435212951496206820227614560524267789863730782313104019782672169511050625591305657715892783191729098307805956334806444881719612365240578366458568179068929921704278673497248134629569411194945639586644321149819661873832291738383613292253154329313346718143259445609999164189463846161300129776259090059222603769261005347599681826522312346139589429681596824401223990930006550677230300294273256799134726928183711045529696327601980903209702264828555635422018440014609856782839842982140564604693957289626189342525792730660419026368399074360939434764552188258630318741095629099579711073675754439614282565719089418492631865507841030111752594880886669725578803833957160448771033313693174530792672023510788682933030168808619380377172887250902366758431742351035199683304043543477112988598913058388958586549842654938643163415999883193543752327084911135383741022817454223715576770056631806132886735030908239918758362304079599192760801627149910500374011801961942491228534243896606907270570054651325991581313254154549699186379222267808926204181703511601646346979303189323670309585692181734418519138067573883427465716322228408638855330298929330270834310857038253328632037357943997193879590918432837560425962967840012257959459801332969434844295913742554736639681212374058975302337357400855154820129311898388676756795536694556897689099215314566754584445481531818467231160355556688775496662799280164588440040772736738117554946390719025327605206815858041844506930688124958961155859576783216178913097780357093406889650287588501852526264649481910844692342299125634277622763103847628722545943472092231467070366572249433441262631263723168542115041045393030339210971486331623987239001782065821744404497785796601179937800333362948672913609107398996511070532715580415149577439181850194330135645673044390551105167426144096923176646074006454668298162818149755787004727751429244324084165429149969776568046121561264887558329552150953670641398063955618002728412203254989014131398035178960739808254657291459476080441183483547291354603763114221321168461219409708130843982616785017154317938483329723839308030141117347394090507676878888773918950255300568462499991875393507594704351414764906623216019168135193032264461550977439845235149156236593825340909627102048771742714232964823195225491488350909250900114591355796325999913156117119543928694706198129595724130831718949930287147873149694808740328778285405363269919047794677416276846326492487141117453240460327412102994357876174211059319479521505598588726773772916925116961439521123269460730948300906314067174842661179139708970082600516499780745424737083634237874844547433843843980660075219054629186740513642353277501487656608048312534138201424266700182367618625499646682220535767926312412054249612285248140387227608693785033314804958742921308556515760922274116589629143747135926456320760971624439243917750034734896340750610587984701856669268466806252735125746957841682099554503218487012223098720662140111474615542670958746480035632245518425183320849540481405117782145565380078291837396554379256352829196758468594325957522187262396568896335098764816374273800901699414780231521864674996486106215155172068455885436743529091854089072268004815628674607185073837509164897288033592134921702982898872724580252203691498851486517512526223301294644114259334775562067587819164028525525010328893011650337311703665582747317803906053918872107525641404619117651679297970224759433317975299451905639613686181312494547532371320413294580649360505201368826765470285994070840419706993765684272520903188355120762949049033596170480038097765195479948620967453478868337015474050660198354571165359140299426047595065637960359471436981813420983427566682219669889884196641122558962602796663545115434838152644385571504151099591955894861130280581611293116580675311258515680266251671212286991618637664405956775786476188644290544176062539299429812289948845609121477759297659670300856673706177072524508823097905213160719409575166569480658725807061496690920303582958698290201840576357720923642357263638016382304885029323389971489675164661919160694986728506098446949790095080003892961440415273352971314842492428473103089179412982915949971896528163354095371047268132687333993469717851575126176531616839001382595402089831870187037432593765308481555314796519413956083657346494156943007324577557877240833677983003561188866823593353774665530406922684741043995375877468182101620092767194830465638518600101569855262135928974252189492990427984680562686100112969339936254340318271633797580207938294856552723561675591771959504903954574013505374196298048438060705679521913722565995462520891948683043048806648064852796529300737678322489121135494957456285229930501091212094133200580934704423848672951217394205258442914682710100041063410890507711138389596429977119219534107242755104566489528666863890935440055348527108927150046794703108700204619010475879017724183204386411270102305150275379867985789150468449091612640943677385043608448179998202653223454697051934627733902550872703374035831148598147710039266305408023101207366081757456480186558101173969116645662087491796991896295526987937678896281034386508761387519639814721082128937513026360511792417924260296668376248945214974133716436348682091228353590030579138401466115475242348143810958409460215091717007323106195686979929229974938060445513636567814883138180167258056728523454489498596652980066613126582932770081539513957246086809781857180062730088006426870831903775428368099645884664434015777664948065909255594671876632202738119465032815424858706116179499086553772574202720871826029537619062100161698861814497430270513159847850011938610292436890375290236122006151949238905734218426631888376173943262234489291285409293927692767291132665358038573971841898090467450572603571729390571650162994853774554297711701236484049445102427787525646659450855217757013856087341381708137859085323420811337057554474588297985990746956925175348529952685700082916644036687593824531052443484342842202198844090672250107430823280921735924441482480788924968615605675238157548045309672792042299542383062313019878376810820252424983871592664742167057135086111900999536764481524742433488940913397233722854817565827086337368065744759708463534581644406404647615117881357894443893652807573756833724770647978377231649932223735350375361677264940472115037375325470360911082530018831219484266948916723230751165600933635735570467989229799839947694744942772352107233049973716541399805918939798590276032660038697464587398850627412922354737174330982011961125653242752950475282730932532129980263743175119659577638759466984425371296845563679672868107599044866939185831317210142948075720287980602882216136819037037283993744779553365769426139119950873365432721972986683542827722641316947885152394819532029226856984937870279669825372938174659378381131080713769137587278005733473243442779050246699381135733370948865697328870479864783986723545802673070683098085463009410089658013217709732097035847430813640317894328757055028648191953618539904387930920951370934618038214730472726203484696124839321370775025594926326621412713406536677901390746717631376318736229376741936513767951112075280463744808516692126111617380390981969284154299356823035801730023979570629938229151858636654143818117888572885840148328863183577595842064456153316146832314818537090566171209171089156720848406293644901464807443335283754144832326776423285189761788877212678408155360351462761443075182803849545176420738017637229232275344659920909243660733977809747962934273525919003693814160478164957385076130519820413702204015176678433953884148523601910258611287539735191110533320942403499888934584329177919520824256603665434523849900269812834702137398244555527692365214435028422562775792985874017117937253510932174604851865638944681298546999740651995651627202571629859488682382606457905216038472652618850947650529671073171323478006802917647197727687468000955646896222647438539450722627798929143699245420552182331696026385509668715109020194912516627209263412149102901465858681819046966434061820048765398700314943019304604525896904147060811389259855173312323479881421902849332581435012410196143424431739331134928787785237589258608346677033756620128302914924345942754347071464174637461874251348815028063132098225707484600579186397153852597004658043596455450358925539493610534072742315235807159478456009792413173555208685620315449487503757017266655242098555077197641944223464282318625723998407545542628132977186165096824919136464960745356423666442082359841219510838011361719829882965878229610179264471023118404765335024067127772980071835780673653898114092986754596355542827289691635092601089929132936470044276829520569037355356504770501508140937307382281073400438749303633513705735155412928991248097053422061872394196585616553743723694107712714736659516567305102102829520604656365720946163783680651090018059930735485605972572069797156646102964648822716737656206851446661383633260027008553682845866042608479417614504548533734264390256927943661306233972446464628155982502921761611621931966990408072070131158428824036946942213999066867947236465440759084780075890750350722197390077852637213311063692196547350898872442288620189696313753721480345952108948780272324578058907392588448367547250941056638887834381077851927127086397221268029425949258840400187901363957197876953012833710981911884661153818408176341294151781457438397963713276197697992015782861446968370575958300200792138266326857627870608570284351551161006405774944248135291125422556426305274075089411424051557437645960395092784751459148892327673558606381808556156868643408095471631350514910905616694558228097258252824406815383101597672692859724482129719877073586531651271335447165188648356043127354638569911385215477846326249149053742952746611643325677657050248439314373862956892217785934873921132396654844990094112479087015417180450798304047275371123359272650462124779239771151251044105924049227339909565334667237033496181581646583638158676738313623409893783092014662838107925297648022837190349735330353309822538509962147071929220668916756991848755451288591188387826937173594163701540435045025832690032822507626142182011008209782183615454031931216270262816270559086211177407719561191901365179860470481243022417507845943259160342666032152273278271817810556744630186364072643817579463522972941430645165800303742240220894181077396882509812615304930131118844842060452181391972604514579597373478973618590895705748943639594835352563198683016563741264589595237095927799502089438946684994469935869398945133494297516226881141362376536590629090815635606367451634000687968153983752970424421826779807006734143937291178802420400899259719846858118608575594346957488081975657281662197029186628953841674235799230291637571453636959296412798481912404199271765917255068246005794730208659878096323891755000697466506712493560826392406742077673350536409472708054855858687243208040094015106120396584386175757625105972566318186336301559104020028247535771909396394344200252896296144503974202374255942815647602055209172661952903816052395030269370488460125461764940532462753647968152360357379884578900322066286802838723490947773275402682100875668488725787742203457563575375227980279829252908929938240487786062813882961264321120372605630054935769503700283777636916849171473518397232440970083215418630095744210326167307474652720611333514182467726455656400552443934877732973331619923082437681043750977380760103427951759732271352042864788712423697434942069029484233159546037299061836596563777746766292933431981211025291874247089675407604641124812151553210595081400336240176352597631992419753348808473507555525444362618181031053294337158423703178093462282224429442873620814035122090868686382142512055247815287273462648356105569229792681933781124441451788643512376131546959395488439144433635271317857641871101398752836938854314474426674815723836571971257774740316550891867481423291457169019150942438209308263398293893398741514862350163754699529523691295133162567612671256588740849536973558484718988342184425605321859800260854635811206186939765431844893113507439666440585507628277448493718365424632275730743518770116983411844036506169189824315496447815170787123136051153284278077206559857499059516712164437354880459386817004963046678223098609799674052813997400099020212897021557464483385699111747090388294141341190602151366254862310424190833044878042098724458954087412465134511398874168881847867261494190981668250182116307348754050422520452893787477531055488492782357876969064118034615755906225339288783165735477439459152353991336284525659970638264323688464838198078478316400624018654310505223013913837383608090802510910288218744966111402332972374650050425112721581085195263788229088140771847091626284165483123553807071306391310449110009853832022158028110098779019026425859226069190021119008338869286506941271477892650786028737830047210378120540838979494248097337017265225877895925210974532494197439270974265508785384443936700388004516287302524517306342645068606939030326177154665448002043738742639628179001378265490897115786751912490523726284090185771519417610212319065825019265742879969577690164199479761192667746479207320642474464911052592020836512991057890622975557671555837699535597389509573390782298633259164645476853220599867890431802081163533279000795113447652221932650382533931690397003971889023641803875390571118241854238882301846511392045020488838868527099818060001052261587660427196151300503541116089692371752692979609100539989501905625997273391013079860921336687471956534842257206839978720995890126905301777978521541067249564971379636453625408158002171026767364999857291056120639902716219238725787913531624443251238269652698746330826121117155694949031552476983537491784698132940550041455509167489262753752032507892060183378201943878599035653007142654183734886129934292017738559175000003571683663787555893285588633821081798229217973615643693495358814683364404671314852349416218231395232750951571422425614131004582372956647980549257868223799147464604852999376763240607184506498746065028451505395978938408231935292923469198404466936996838959878573801749843324639410918709833901027732294453622590930422098516356597593622317212908974402968078882380866235762439370201648162559191684313459045960463186631730248518520384193985520518471953721000691348509641032432016293491677330605291048172462186646717365825142701977520135430812299869182082367856784189391121091381450868787667226739498804202309021479684099905414432197213118300270668248087657427701096692122191051927825940375181077022088832933017695150462575014404553336978426830141413763291778728044324860756787637166662406909107680419238948487579730198742259340845240241100448459046077667694293033000131089832314832070532760293894919133114004617846493874434711501308184187084204371639090762865205360487269303700075047141827295650716128878405635161820852923694485115638826206942719012217753957645228769096254058604192000477102827087598618626756088466605648964416861490541014845965136770217955940272396235875584612377517804203715901989721749735047608354409619708758074150049190886041671418950029248783897432756880384985664205608938530061548717406787189570847776638674164106144699171755345852859581252260037818740521437052009172531071088878531398233205818996112032499232107859474248165169025102396229529341633892291910996459124116138433838937348618760475771704593480901545556376927647089112368501423171648470953709777643694172840064177764483209150727144491388573816750766271853529791994392172584563497128641646698531151778190841037546869975582981631419995134925084370151904337397269346073310356451900949905483193448327660101025573988730952469973986755172963510861138288515127541778121204743257782079406697690815977105075581541111237233287478326870761132762369351556632464077652900974227957453657454241337216788946556454108382355468937686994340511027939884578744408366592999658808263731909799337405414409310696777260399145038621120729908026839097205058097599315216637072092770820164152983865495823704114408645097294442103648026132818059794054190551035204048853741934389972317208462111090925569698635394855348396951193889126677857623762637298850893741235962703086143257918559355601309269891139970674496727113282703749607502898429544537007533913949178172826575474488669001856744183976543455130471617569944307458021863180346946382793109401802918694195366871798434724792860732610351575033890097336306046536870288314528895133826089538340253832522992216589283502075459731852234135897219898032764685363218427129432184752112908531388422855292935665337465198803944648053304809507283861346722351862266166005310959383789277813911129210386740228026787460263229063877133462101908332984598621974600432090568390971712087464723016683561063074696166167545783679654757717367504197179846040205294592196196460529681055882596948031901285282648042759884382743879646191327353050398175019178898977270637204967719505508252707473435788383897227074340326493040529077045872510963903083031729093889696278151800305910219742478140012477785338155001790735802275514455324837424005104778277678237307437100538484652035169910650597028130726513872088639302938713390570336598721599001829168449769972284587940688913979980442236195944386824027100647287010679012230127288498059706555373353762867861488146084283285169794363415173864638809431236254331643194946852736584637288945836792173871150673850911446378958309205033807555177363433850448067927878541214421589653883709944126067465028624084729679023600140118353532691893770260783537314845695861557294292760152889780211039708257542377006708326878378957846784419344498484493004003705355249945107218576156806504683545645963095981694813625931047583806788726647242133797175161487797498166446944712429641451781975926124195928977315063105715909226716900609412135861209147743920589749032525717372920864609667415133128800950948119350841276726155909084058930927334054589366755719221679963348566343543834938543040973017036999828254303425225704260135908901026744819356612784990368837862419916412579621311196686034565114296958309197599771927602491595341939492754512392324678780219633712323376671192947092018554579359851321746011812476700204422720137704416024203403253332705593186510218746580612314713842612758743961747037180501558818611950534258676877201338625632896643345283916991372878233641855877655121679126272778400262821299271984034349948128969174340249870135920238067926232952329735749178795736490531293373206485226824918544585422755903040979956184503897357838646322297276970673511154501118537507036431779583761402491085620325235262148461629764135942396918316453436365132552015514653181032946154291706050365999171768675244026528731488218482404962398236851840660069641645223140134685273439733761825766066044120340168439120940830893827357535702511139141793012318493258109980118021393635970558083268177846040861986836298918514580368589963540166474736994985265294090329771148682218398232729761055097446739668730107296623141779322609829435521746133414457345464425825811364514193797161411983887321237537208976359300731315341095633679855193034287526351033462311944420326513426975112374560851545893500737743598570622820986662264183294816535831810842710124249427209576359352121976830086221778346271913990506025405531514136233272029618690138604272797069350093263444883825126763222836678154404239380783167950156272540906505610525901597801779472531691925826331981060971283100424997663926460400487014886960764541557506540440117186141432763515100691752295039648197084284020242216160093601221156252608274429054121789814027980980060620306066701542032725086169448283862576553924945880393487024475199199527477665369132232148052540548377817593896973666992609970131125003172585742876360892019903694633446441057826194642537795234914591298083886998512064499006313593438931446737914988720033704831217601292467767666865001450278193254442157830094651557854839792282127770893114015699891922156454946021985935753967167892350899207390239144172679202587403248423242800046789578112183895167866877368605685638207618880545377355315367631626798197481862724064039375292584348552264576089876649993322441141360084538175216278385713580348464902050887339204857579199745245189711956329772290724551280674005417246038622517837777481699448011846417067511573562068417070239236155664682019856540979919923757911366232942165831412628857032020287783485735815825376604278998267795781876756310202020017504524525939445559425309294205450792291655566927206143092745069206610392169472537492897417331883152981444234730725836608738267428506297809686444070050540433130018103785053587906183099064694587641399180160198177730089909631623754901471489318198948171579651441689539144351753681303331822888820336215469992445214769433850551862765122630900959936851290664138157561110032804616675477624915027061532195936742475126603018968426888003443747855427697523335438414217742972765836568136662647238868601479830880046794219503782134943352430399542189056855632829113401457771444407287190217833304508547198857382971200317651532574808072758673673451370208902439955747028981580868830799148585243894453716118372309081629074253407846961318102213710579798200898904895331747990055141240440233996791883956005593463412076003767728258945274917896251491471592854956958593160166402666696743978506632864925814100535356559946283554852552837487154042627897904754277337589994969305453151230710224757269549004990977658658432739180892396523230488525048250187620788663603592671359043379078788648387440485549513573517275145980956517798796551820277350883781017118054094698188234836738943300418076116307884568223450039891842839930162835133113270463102787049173273900551674416258299061716431635915443374167154943989198432088436130851009858708698302848784672330385167402680243074274256913353072661020761471640322817821026761434925918922413911249969185035348250683949803496884160193860775111359222397671873328786708834385600256068857719621627070722402925974397059678322959492254670522769623298731619880543238206251076909560470817872798646551242679772182493271579691441135534360704193991386635706403161549880497901776390270637706324701146102532661270681532929227854756159217347099959793690779792633161648915850708742721587478234795027874302909121203625833639644119956918057406683661545624946525931836673441046301601715284778571676880203827116446926679336463630140133991371493366469847261038694743258959202386997458942515561995211104610806324417054621776969456812688256415105771267736892072435514412645493699204595461868683352091093169301390414614136648932298772161662298638569237290161447252584179705792030709580572953701347339110147565077156730248648819433020361401577242198641512814710377924936695342760792593875514952130834842322944388089802472873542530253421489263901708415919528296034331204288280339919229770450090616637044014250253961451332736285189181272380238071028213991927687058560844724759424617248564901642378388567883932744427298921981596189342344125833783017212934470307657265821834339284835685848947249373023999340463717909905099450832040279500569257867426431042155045093538588490161731540358282946866446027490230123052773114999948603825153092652255535370514092907416683793369281775107873369577500014746439508144740313826610860625637045624324354164401636521601318441191188458995710511607915464143453318700949866154066039174193694420583894699110845657699550873377965653184221854022861547092849773173273823264947473875564032527020076576256373137379091335180038641365142070188241713946485124977366893279102482036076306764392223795650218895846861338633909908400883427271414758835982042448178795887261562129794238518197625864022051037092341961891820882750250621710190635989077249141868044947682631765948966975903282305608214274466853044796435935393556298439098336425281872906794359552336587319445057944557821057642495572159111835581101253836329630358900657827468204092099066680167788184048327663674649007143226613901495471861119451863861586483280013395705317421325724577191111818258291862297308890862081084790269634095465178587098739320528990077435659834593326636578453346975136094759108925011044883919169649298650295335116326605497502989000766189678820668819823332646740157774491320133215244177530757520498054731782579117843742156608006825693572247083041367881263702187807418795808958705004318721151794621331661336609363480117679086128041933202566302592581851633893413559119668465721853639387127007022123038615549868346783568265921449441953418160518633872508611590759949560833484679288599927224328113412970850128898262966441188292796813765480504422321566191512939221568988364729492802661715493675494755730803966396206868175460342259137033714808073820365015638380839062413333134967218879736597059052324710135335588112387100942256086889092258145951195586074849637695205228965116483702396240313905317794460915189136945570357388963199757633069156836824424854208170438099725731622235877186586138272245558528659775823584183402448796927647353826574541812337772508132925336800139714835965520889406750012335687270197938704424835235388170963560197146503495063297221905225318538630782254864392094581287789305350194424662355606166071649850287081859021191090568008797254027444999287809937085289353729213296767125109668736086160498938802552949934726775563652934244046482695427514273849483915786709833756214720404681716877295514103449170292463570314317058831958144587251781851693581025830501840309752900481445307678109821381520639431916797789013734672525382524590039045643676665566858341889703207827975093145867268694241439437480995097636946892577678298675723864803243027100256926759495338799777963035953803876699334272160546517511872209156359446630181142693720843946428153849392050990238928883232394034026603445596779293691439448331519946407976726206704576159919794701017365633356421625067276620330752012151521610032885068860734238760873390150696297633384346261141011759172627206889040789121423055310287951849618173395732037974247730460894443644068438149831684693241489946011531338886079031844725987948088796795839177233083650854704944128668060642659113281664583308507458667996730119955125947008823051330983987783621382925979044633231877409570521360575480266940742980341908333901777877287871810392725877074964622284550890874389940809951189293619061484098257158691867094121695173960863732403904072802616677572257829917808641881418353570623192164579121323822176528695065627433127783570600517987325440791394273628967845368774630900229773843653876522607141293251348732507579954593737344149270890301378492774317991308131406586297862927737950699230900895439176193406161578789936586161998277894402643059113913765552157520682202408478345382149109742702567793487530390263680214558194007074727804302232696671999635460216131886172250654170950605436011218549505624518515637450213041637496672911966685034678476405668334081522776997701558774888214058653457160902623915721707183284937643766507672699686350391841205148286206294579845687047524871156002156365145990584384836189815983907132117283582008264716957109776666814282293865750231405549028599771247221605588020131105697264914781600772103988494761266847540238355347409486549420195601856856750216858425061754358815217282466248020203143885603916436731427140249278599732609821260509186046934922907444727265782797108776620787814793589451578936930926184639623809332336661464234222691811227249714844134719002798754776338100482495885599199729967284863646089917030838569357260419319452675462117146444654250954755263074306620504956090843365722018409829650655555841621259364681281269315682826280275679383709464583651551238723386637181439708165082496459465302557828075904234521266255008125611414653303018274680575527614347627061155256008880929875766998382226924153428405171418705952718082685941635377677942831186740169861961254711041844926589229113680632043612147280670257942713531989264669310654995215845459783027744623200759386734400975136123981367419055842707181426765652361381909238669230125292305769041501987574699629127990884329696095687216591039415703168450824421197237624703295273237085468809126729438869290828219659800667094998407539791308642509534450371125138476141956681790984187132111006199252464968768622878679616494022256501094399049038437372298620762971220552778431528549019817915184149059729594583622753321572246569737576986536800122854580315361874930949522036459088748489127018102701950060669952775286151493140083685906527900507682882054678550430888713803665995888823685578945920104446258850900397343319060612539765281148563274727763645752883355688177302962479226839270883359836468374618005345260226717489292705661204855118611062028000511662417666811325603652081268247608458349464519171195842586788230705173176729071576226193826244294132658244772976627938563949028703033134804043283273823266992578660538834592308173248906016825924257235126772044297939578688945977482531541555794756519822592612856032971340961572396263687765503074545412048798719586125609045186102940126151227214083786867894007969972626656316303755758203707355780586964184965233465933172518967645820552598584581695197798573208550060082291883831477906330838288855541319417313714413327611043499169636607226739854005736961260708836420984559476051116851033036826285688630055433245111875965533596404129973158343955815881525819917657774335131481123604175856781351972092694416973031704518163519983494603547373432178975334406625643666358478027601346156261434166107625151676717915887087359449261347259693432083999305642293121252699842461907307576346794027013099726702903940377693992447795057102568026303096351647720733263593103217025350634800578705423264494005549494223005846384042104838193375197343473331148625548965568665896059375382163246087902589753577813062342000025560754604376874019812573804283074758734519813073720309251499072750483472790809863539438012671616712348767970961058206661623791425747377139189227528146387827712184949241463098719072402837044057938786808555167914453512538294888587242883561968344027854533788902588330798545790163942741600370539918928423043473578691472006760753786596530560361922961945953896781029972666417230729729125212810736020316219622745602128581683919802374581260313938697620590450768909263839363022391476805486160809145136530210296300713647779868361869387419220955529790741838824080160414931081073129518891279764114998179744976358038783388583145072571204537662923639239865658366300300180786067827955214188179933492543447618141081969396854317384728614168233948427534487971856594848516494111536002432840981583778937740826316151852618108111146362756260992988850235715989144441098639103973984310480121868371709237452999264061435785813111856774315620520325762000692533684460031372709552064883109571867077611181534698191482881837122119784795491517643720564236475088209222625641128780249235017316769681399488775297126387008396125286429737351443043064286741465440490701973884930154784804532813985350418106219607960436462616902376654839064931497186044061108507857295767231378901453835946642556906855724574917129380481553458950311624811916163923099381945384516488976153951527933587317244299755071215544247293013278079442963065624446515156131620578054451926688404355113305107138786765622181168042335906199961978190712148946344878979740757355148650167268008905838869800925155667269694775577521613008026577087133738973645319539258332715181226692239528763411178925995735036580538528375631836559893708372649524862205051658828651724347199640629303278147848215810105198235197392106685716808797761640220803668406541532915099994672125636950017563225392773726126429210792215071339402723157498649107083640971342394196990817832518630903548517311704528889783754947190652849953461430638311057402589489125726592065616960214541290638713867302757723382060744348390572060951787550790540053725372332113497502128537031951605745294877777698036838980708095693507201652501838001530351559312043775065854202404858454612185142890444219932842439890864644711134771671319077016821779786112769417022079168631894056252964533601596480366904956881966432719535108357711049641480704487733355159430711236721809728412854541118444680986782739259857413325771244779074419168228294893247723686524581053419312194779871787537657360377134491186434164281472655439501937751528462825677922992286860547104927861466623416755444186775395272907699273503271970778531376670907948261307279123799291882711233195660375176721405591026391164214152648200821852010174813111725666401602591461904857247091631928027238953201996919335056206277405925618307956282083949252708784869719643923506119981926443080762023566577471057562699518435045256455276215081925775016070816257948352731062787690874451369356996755500580980331965369357545661852866365307028445133213022884551406555218648491555941140537839163324535212947691090562350837004342577418907050475320437147098779237324794913154462895064604169286744769370034281805986285414304971648197838132306457390573161987339856035335846181259454694255967271403657012140200188125175982122978741002346769992953159296481828664203593520933768951172247751153905056157499216438357991237202901001751088437542428412347616206814061858266003483234432552309184226756037747346968643224122021279677495002787536567590056335689961895297166806368724531993429347993904653848816800686655929784977652998151512225083086372458543721616034454508533549627414030787077923329117317885120409470200920854005903214094895514956573796414225746720223366446994682091102889699059269054901417951933506440081434968249758972968427234194170028530066337754971940434453096524834910178763102528915557183926433494673656732200275548146511709603970547697513766579860225294477433565139569852747291729822754375837181071176258260433579842758917692071812025394284160289263236535917687442129000430941064924187021041744164641764437454418445420852457246038787494784705125566126140458646043663978478390136975276196976872369993935819872972354548671726973143243996056546491081291193976757072150777449578483611049109789458478210286715916559109721029949505533610575982817116200150011104452551598877332344750847589014033345351180842230771100489860025459537203019289897473532732219051164603576263242840764442514873810278407082233770819947375824616828640761648582604945559193934612019150320482530028741990413268754819607582409892061855008098523473930441689702166703852747235031717574907269475744117404080024084493529240734267302473988206737523471628705662384330592393995931720590368473676411383883134805439840167425176391765532774857253105538329398356125946310779419032370671277285259222254339928391431291408186382489321993304896162704740764751451287077184693125976258219641720740008375987495665886752640164537222860804038300600714557771525652080024099022170495330664674345685795972031310999952396573668537549728872684174362332665604542317343529085888427784105960019162160236560396775746654450536733609586975768861966972332457475759199216264044168612302659709392084397968616066212178291720724456733086075145172557156345438849105369600844804774161763530100867040418320315978262627723210385329520721614322240248001532214010209535642771853286442680909198804981402688696530114835119296498610183575077246532116182417577263168928031797715299582576476654103684803091269488381931318564403192823043449250387721122963807782148050701959317029635956957538440110331967553371796965172391070792798915994116852493060132462691876314202398232708694053915531997012172840555155691474357911864699417673641499647645668329064622661757209882819551674402076975942849728662258377540109356486773471045058845474247551882757048343610432618148830017012148517168773064159189388577422717005741621326378525960886983012984624291830522051398413671642039967804520854982725699094017820486458674197306159690352560594419848599859612589951001359952341282805239795917697547467278672382551178713506594292596847844450770864715841949727100325610896029270142340952494783146849849898229864046329326310866119682510283228148413829418886461348513044059614069113057518687687806537490685760074788202764932962486093202512640643320526473040309047381300598181029976032095472490567897651288245441992910858305261711839510194597370989394780334480439979367253594225576285153695557721116218677377335404870170431972864676876191534572056339829129049602986870843043640529771639852283247064967447338918286437140126822299060785244498799946105622801745426969519990655767597506702402281587546089138781336996002996224205541436479275016088920896661820179461841526980395693359597403612611170831728857962264235115674812162143764243044007066104094687483192895258432623695110756566987867029363007234436310502606349278537510105872988139979362101542855148439066441302053177437866249885250631187954159553118389922354515736737206107644991729947550997330702823097420274048129619881694249610974517319413041047880678077857298043267630432451319573274860315131518881669614593936645021116237602987307349163801217666192233327958576949380576533045117222320513130304198368306103686730623583837221073065119781890689643985434801398897278677044500976537844806760734939490948739494731743814322885385661976202226385886308877651367298893070236405345392376251845657026804374791162470505079521955463955699487398259380376242668513361372961157857409544940356707116012434385980618966176228281796822116292930582192124244832980974351975091697417333384430539132258212716571934110114712510842178124748554099664067325590674514386739662538601233450308535804687980068418585737311046008874077930994799070735335106732739251338856218122028522347081828114926058237165635561227170339474708780298288244554535564787285456793278740650884537228011323295165034050050045592647434862073689116008433237279380253089832439251703024044367726000480829767740765689738500104050320935819048569751038745786784377212462370620467004640715067011102752270620490989967148960474168133611400227924023549370528377026483878728798329573432779350353711830844620583362807649929728575194301119037336101857222766084622565260929284977260002825287212218396415794464459965404550024967293128100615547453260917725598504763180299049863854902823330929270708860669263159190865413764540537215421774721701695363913507823741546871239787728864293463000264382863107840879861966488675298279250970696044067762962785595264554191579913180213342962818078468806050224739597765343109934641573062761163656013856941228429025933787352426275331525248285289822350954867524411612646930009509223060279772045455168614874978020627237782421095166907367101436140373672819282391851477363076543517258587660681323416008793394136879269609749468412808344011633455041943316910265497610915116944658090704395616190985118022699712910044504287252966424750298071402547999677531078963766306678477660030471637909107203593220914195626881794421514801148563412905927934050069796249629066601681641271761610565715702593048760686516282243833684866141057649880136260279829475418013007817094993592745105611616385802444971658507330331594119753277103324912712252732977966754763972985590783121612512593353470935964747030636368224314022820996219849442824955104835036773478913350995773418439555936387421737821191957242591648671237327853017350576588178992611864753621014451092605472981275746180872879027484444549066604905009777008786682803687607620437091782876542510577193652098943589388189734467785212502172921344555003145673661512264988516325270761247591222594887256666686229939751437753382083539085943850910815910193753453329076950785204536980832939962855191431206090806777307498091956796851013467938560823619967587884412507964789121683475856283555229397108332878002173992747756516718097241904830238141188237344395698219569754406006077380288728570830611798081491265883735881363742226601790370325198831140976560308334809443573054908577265836083490375688054331629440780467210844294459276987439792491783894775442829690078580917677714045153683236211015404033041361832541153977228985531981816931807800820105024006469478263227550670932975635401293722836689965089839044451862206935273221963758462388013425945905484592947252299645961353653209716840813407315548543164201900820416920473365200899533238164357972318614494207197105003862552743935511647688949639631620106278849628812697349095297012669015389221895278563512629615384966027293278006108009626308234958697194728211830517474352621652502248864242365251560382635351000971434983132882756450244183574970478277151586621460517178638970704066468717055772011243591439078633614934085649000725244246347670686923632690668929041002148818462824330717584243162232503438024160042544127815195198014953865241101472877010585898676707454891467656271352505756995032909854859467965315502695115157294893482576594884314990317986862004907254864939745207327757383627845577962541474052111525010904414349586227572731652533021933950747675119057752251651773761217427601393637911857609156009031624594013485538874278141781527161599440863375716046548484499740270186655651039836109664888888069011960493573333186225301542698635113439082775835680261158392722426961550527081440359878483978439905274619677957501737285055020335362480673435151444851404486874793152700242729855589860097108288687606610071708889027236562821724331790685085873992259246569316442551063270359368818837345864797530586271166098729283664272217732482795368637755486554123726055453671689647988299473712078460552750930539353651113586153759246016418516547231104135317587953205086782206962447112668057293468382118336366424854686435824937176386862156022887314351591410829608593771930308200974169160472332953069140015205343579300265563509635144351626990460619094654057104649550763813479237931726463904522133604803599385492040252629718313509857694458445060743199199196314805036694386626232720676728345101169931461724262062095527421113980014595106622016012416284644486245519449135886270051708178442796206949679260474989538581663039615819099605223780253327541759652176519457664825135255229958733438504743017838510055631714155540818550513584747030187365719077388324913382859987211342919975357100263623438239818682968051915565428968245647729683939932308186902930485970874038764202609171260475186657988390291195830430396311220357867993484021641274477524693215423704758225634378552554763460566275669867780546591702908113557970258201038370569770661383687132129691394813003996986454810234645583536642183312826166022025873554871657501219893537760145900521138851457477033010975718736718846280947362874906826802782907617704591001104822577748320314089371941965328461463322268130562406190735409399335410650152581057089492544742868623035310250005731279226594822564413079745548111424048219123212869988069179373531984642854231654896615825561280620714465464975096553131349130788360978866741747484764013045452331959957592745641104132291309292836428097556488358327443281349928326683506166522583614046967370026939942262045275322599963127691387654918341685305170091852900493467695286128418319971163256849718352731115023789999715678741248875796594805066681008491263095196067369415671229500840919146160211836553634815107611539360256819643279750787794494990386028807746654178134968386857599359333796083905381827153373659674012350559477746392072287396851486913513840764873973071168353570529620507207287513007409107154315958140881168986333887981886908964125878853324674791755284499544759252689449344614077700694879155898877939630129696823914429082690080765617102661049018575514328283034136882149011658533393349999577884397532629107194507811401904770858599605831520062534004527187536297273740705382652424199730980215852349240188636191251496587290394133203011013439233604956008327405275070175501371002906677831669988308431860477876760143276310861164560317299358165940449628804488329317783671175292882261428410132323716789249528005024277829491426803008352239919298996092757234108761533457190719870586809166402216721129550022511584814734068263709790464811028726470871769686824087398389137677610960022515611758611065519290001908969328892773181076278352856791322484744808141491791621396333064079781101317934824406198639064380181613820325166973297005126938111715762595145981749942684400684140938222162540460936217325883777366101625011077248932645227553166705899003289875049399717411481064955170183249632432657803108113357548219507198792540744804575356069944378924493446299831521457924351869973848057500158897526048798230814924141829746069132153324621912716963829871784646215107966446247230743802122986118762713014659264398616716508112545508993520593866890816202553018323928061638049160898679929643982802407659268061614819966230757115053841735794173123770980122050345023827464192282795472632921095968832968045921287884353272329434508697353369404909528833138485393190516969071020584635318433116589710394791460645675097788617453536411137425212353621655280786718842722251810504399534512352291332403448917506347098517002222787379788439072290805762070681230580419276480215155357034318019365005798846659869283742904536126021462388517986355278442477707388701455544553279848441367991868380955796728796779945826881060236945128532978282531157999837137875781141507891624258666590319492952224469356969918775567600480004002063828035764524354192638650218967604534870624542567217570489968727932732133044036035106213320332010158700397248168898569714520751158280865500174702476885326659822337557759786731199058384101844078375270890143778316593363928293054168025273450490276858400976086733218469547102705351719634209577442346142796296158632236388619679980582971094292939913807413961792521195202600066005365303987324838672681582814064857724554065126894115802390928804682035693984122388787059767570499806375329363620710787413382156686990392865934260318607862990225626835147104095286332686008700757980190923687614522151990482583950338395109664047739695572001422930310388524849954120064795274970432182747950763251461949135632580380410266204119935054394771247025695741963746988695036002385025983684517561007133380449417634638488546043242022754256539045185636002760381952832601586072445194665324563003987958517933086116835793934552204716453000376382468041294204528348811441318942132171860626121857929799168237955494661451492272832999543056691315211878429269522035409851839714700232112525353799885356222332590877313486680044405527039986585107413790239327414405254433808941648861482782874087575597416304488715058347330260882825023235251191772605221914495085889586430715997108595714817755665747232157008665666599538316120384722803520726892956383258181619055586821896275418056785928261479187037994247217226691614997300324085209825989196439391010378851678498822128215858607819396261147139127808016356686742095013375751396567823435050750713316272779504945242709398517826701728034726473196707823135400454791823491166730757933167608789667656041783861146156073988856282443285425943720802083664734402388006459068129554387391068157766980160338109344026792472534646218935270749239673800235413895145262848520950708223280655767579848365893463904956247272186260244398312263243536085019792801827130154304817725386314774172075418132177744249466419431970967111351471526751940144094174007747769202618579500174220998192075286803049460261225634614098274925911612382578245083121833626717020123141146568049944596925710597470513812958609280506994347387694942660621155999724259347470038938369399213594378373351513061016379534134169893820533406852370993874104970401251232008742051471735682200294641329966760854854277534951682551452292190365923887679443670951664969891443429421731080353607963678204760604314465487710793992015534014429970496429773368954374568581066908815402653897518510556664422560212275903085816782289220725490940716720563541893013005821115260888104064805072701202340770184924511718391469622583908491486581614973285456457777220525207727280335038096448976228081413528764668748246867290488007959123329262075462561814807235120664695454215322910308153369592663415139592072937624142450922073866336993730272685018482992740119689883963841032947412244007724968816856586611238145095010210522466257857198989385250182124195140434846614570467014904021568254730307258404993300455944012987493828031700659898027181681723313275867127797565162777810662973659163676979721828931638315633736697447581133856872208989775675632595391214616115989634668012361584940816318579721350052167237195722053889162996476963586057547450624820044671188228545093605301685487345790609039097363541515604753084894257348539393291486047494594472548575837383726777793850020287053395094946164893333258462513050082406751193486608470475510488949735180916622184083603043064767514744596632075183833998829349480849465771357696096621253199109131358960626075632601224227436908956916267797188154079723163411359992167876630120878393119316734226255701109375777856132026917440769245330168009239891614234234856709855194049786886574070878602832453236806722249969042711938952185272439548380568602261093653826171044424513826779229265181471874558351191693379279910365937470811221710315267271696168536083481577208863180993908695534633975359997512668361335928863898025490474446391430073215111606934003209395993994988810540059475329835578241492208726404337399015123525968808043487446022331496783057146996645823591961249458685315192432644010709127008128683236267435464995911515716922550374199064220786379959075273946748108693487659200362906023596385958412206939722298763991349293748889869950133733881443415872424418054669566460423494249131448371490933579165524518368669312220942848573097047727902185383337506968183035618952492470139247884516153874912406936166158564293808243893068856959598782493787424110424288368443412819468788903851229971435430904521618871178745592709895644238219315447433284139304973184854466869275644187953293009515811872519310135198856939240074914396480168767116187917133098951849647934771248534323993468822813068275940451524657136353820174652058338236122813068364640494058128365352220446857876188083618525938874758421993026113793054615728129171694306029149989438115148864718262098827712589212252815408037011748553605369862080525090498863332175735861686669341073149259967067376040610314429272581797296133527009649638188954074353753335641445034750467110149571126260220377855068601180612155684359025582752564521705495898085365262120408587890267094689771696360210170331673673117254014232704905314814598027690102963111963530557768766327438496146119266253257024297070780747735477449600146042037295668305578586684984346175723525988530693781697550676782737858982855943894429286883861007494538589499269265618756740872040993384001716639875760250562407254817001878480022696382368431646977264901419879415284005690464506995029543213235566143628263079102644107000095238253606459450266767853396541850063803254594414749670999365700441536903278524599027973394825148351921421454852152072557800027212064499411909290557496095734843767459287688979536318246953282945728071871137417766779560226951362146455275687087410267821194450886478995491612115494690611756713755134586606333322830686931603415717492763759644386485454053885026009811944394244052422827608813823685827426583501688505274620631322103565291509645529669121849409098403886859428989571059143906531310631008029142927566191405074760525866303890624364309337802753208740573002265086052699129265383272284606657403311645930522738788258872920623713224284222929322617334710543568712674453669741145386648618419277271799250232342961582194646986323060216639490304253045941504513154531631073795214305860379209208609645411074064133202158121351016256961340003332819193363950106668656534366171043185153846372578304486767675498123504552070486355711496898052139616160651140609074688174366896917552422601998220129192953677211406635634919389613762639483014823279818508113445291795961469829567046305458342374364265131261268418763070801836508003324071688578447096763621945054076261548931496001521427427769238425684873265149941809161058372332576565014432575260796584190583313854106681800026320187041323937419226019164362828968162896747368586678794241923097332426971791053603441320319699048666313735435889591525224188266519249014071073603337814137689468837661998363220238460879476242872586494514415391824882608491513550978838676634655084390399082220429313919855777571453918052286368522971708248311002573482291685104042160672478051049770600158425012148414913284141150652815643281364673189798948334336023673805070236487663790799506238568145934792328515500405197904302666626771261102802595068055019057869891209257231718621954190820424304085067827340092902967645589719097461976720874299843876578491109614125520534641619299737474719208345414862542077843223652866523606325316018358559499216104041399532876469831640393659073646327587161140669741903725283717884459947823727169814312335932546121183476109224887287923324714670148132171240703539361120203577249787490238460460957785718649405323115656683378285994878251753990826811991900427207493031860391371497418633641165297931683426305868176711592969244758196556343245279767262909636248896875124426632441011450514945028731091848949350145279394018246721306762103394404040527949240058822278982728471451030246107309338953651385782371551428092709085973499291669454348117009715882682683207031896749163150812778069460827618806742420706632891442191225574240731695297553683294353755495524411764873082305115565971363164435927556426617373764306136277016223738110378446360134910059482004998505235319959276932936717051839024060172638663488528460867185052148812012904518262394233080949191362889513898078440439282237376176418019962153410044628019459462008821710557102394095971030577754379240038145890376476355336268016922874257072588261930435681984590489058907064214270823842827083355741360846779997207272579989036326717065615315646786253985581660799503628400889186554599182259024659236471782617094403048847900681880289706320563822065982489328618689638298005974188371548097026732951412425745857310289112699379144681507852587188691778684106085609618977887039855825591215281567947685029917039381818775122316566100654824173875996721708498061063744248646886318152538377526385126726185023307169175810158043178604083593366622434993641623545343318608456429798007676055056564064787494960435747176498527463692717579057877689314228492261911016457672245878475011142656335879626134208986019647439326408233751062865919331468538032267747818547837817094866808223438019499707503995570804033738822146277266361914494949933219824294495631960833466617732690117795527096304850675690004934106114888044703845483245167013324336457388819228482476621913451394469940515573178902785421851837265813893865784002746619267887295292302759142101861647878334032568201340614551865070671834741904192106063168670568675904883233591535553624129724503737517307829284595545757280807123761103100678516618144830596127171938076863342897069989074918912101202994033978740382987206301284005869667717721899192351525666940605907715381131483007641906411282893979372067890453989601484917586241834585264882273246371946151716833255568488910135126985566308554713874557646176929771595196857335515134253025589349385417758155988083664313606219812780322789070070469008513604202968873267984035784101084315420776772335197467579941261395237096568323874954945872193007440367421118699568179099465892223769259917102239168718335950545996520945199047350867027447018708474756144711084622928264607908042766389064198026236064594341209600833175729782173973243207962087574387358218717173196575023388246811682706011762784006418172576238712535249057313045615837213834177232695695013578884972291579064015736385131696676022531379129986478019530108025845934255580269738192448665307513199951925255730811522838225414571442322956649789805538054164935664633943669372762541380938930640059537676898725815379771010993591229511790532700682164253042628597622128767167838318754443435598773195316550749284850760360025943645474354882715975749645949573039839531220776119779680873288298228067286464044239073156221663276188345439919757486389095354097461703640869123911356044607801108613352491213953920126194962979423580372249429687142085415607029801867816248368901770762850919716132479221664988947387412860084241759835809100245422834623151295526965084072710329196558906103293198723933678917381237932211630474166611959991150165861548554721103509726048491222977320711635887136988676807397553202158102033896986334346632483566231198021990415267809663924094598576055502647420871829996773893296023377257772634704585276879424396916425280123085070416108853512531768718655426626880200517668958293504429698186881263906641701933314032588879147199465199641925198664625274480510655078207794492335756534063503942727329145093182514642800574856796221921550884610476819398604926867473588817149137523793871863290995957681088871521311472416522860982797058482027316078246510291921261202358530899151795261709126940981159210907193117740848096939259408257999492549392760027473764695245125131194326511349349903677825534533142578486033772751726250795000618674656421970611634924584369790834193941610835785033864463802305137219207357517876307836446371826903071404074414984357100129122147316457076931917227872382903106416357538388271433104309234814451027921344849555836500521528198585673545420104337861921687498542263038324099206727103912444707657691543393251181472779484598223369949200937735845439464349104183392346276270842932911109977757693067725136586511356063973202775581340996292783807210443130578500577120644250200900479235999266898138270222574602409440073057737434431156612040991844307946538177008960994733387476841172133945763080100467122198901099513414039319777114853857505612858564951053858371417572587743670794347578251908577051488590220329913042552792163736705447762210990404427590865177497816122250889032979093199454594824592998342633526190263721296881151872357631122719204694478238654946082853469339803878976087953517240894959918355518570217938181007469597583752535832793906036270258483053044922636677774690103112231620853387705182132914445954990548048984448459709149772970760007780514232569478909927442473596850363744766670665555310329743880377576107890868507291812711047630554031666465200496546552531301566281392470621844623015800332007553981515935254828491376340842661794469156209204360924270664123295929406234183494072308782989985580174773559343677037559314705887866955022589856717535914635046326947602259201794469004277210938571153944005719019881275378532660941188597317380556232784107490435837187510423602147327829153047731918257936016169754150471408046483521936691789356949406440958769872414245697137706189542347119239341499729823520025740555626074056223759509128174378273236717347676464589111332796580797809162357808113084099597189745446537907548964493083435067766054177085928699352136776686351218530269154106809716383964338808715348991080477948579902055711881647940644853574133930054923374095951736497948889493983567382656298164813488304798245413931047454841796768160034991326212285600988533391210074604490419593207634094877039633972069146432546338314269303190171251380816083896678460985572205261695021990564611675075762046195338366510498876622079685354649356414717388257450874289012461206096298185797131677314039132268118747815571050184088617318355334608858121674512251784685037749563755806865042483110598093141341540058932228516116990636390547026143612096488803041169366991075332187697473192374931338660884013596381045797861706718531899979172291850699306062372668975056432150189733782806811512793934978641888601707724277893616791461979422665284917819501251993649907112200995106058714833722633949074472187919515816969763551046144491563002374297507895176157017521525813263126481430325704554139602685401032215685690134768675324669341765110032536451661680296396589706035987673644389960165719442304335907916141956277825711241920962894517615330377109352574509275382775203076880896742049122544146191467225451771280976313352665797476163459263114659906414814883876671559251151967677289643431622673679765566367708055183814608228937386284008454099946372679535938845920302932767983528035638600713177085225491219770198953750098792709004563261628246657995539570487684535041410185465408676286659362903952591916086048919192930776643408888164639111113887838002677358765644164870131199953461300455407406942959440683197921021831548196247653439579722912348457939796372476331170135504388587672322395037494541675899678672296991847605552211486949977078889719408214260830231805945772754867147225605122635556871005418978386162965928497745335490300691492387593861134342239241529995445560299500575553927625557455524003674951969718408596365770400122261605919362011138276696903833478313758197100981156190726109948880343944180050048244839976855625263167925531924392696069947948957878537988949436669599101385612278734425083820626574376764327942896748515047571772288640966978483372517980304613512996463755426735599278828302490406688537024271359946559141390849826572473720238965801449646762183982535210906608137331372599962737076672923762732244106504532045608445736774637496264449349119394788102313483583516684015339353803308195650137134540131669018876143016387594368153740745857600716156888659485178802226982919008234328684447925987275936590792088893302871615755391621671164422408049427138767710246025684593898068508334606965164395616334672968881982970350618063009098991446404733198218125865868093698020755693210046909114540419903530962909146166580557006260973005259445721304977954491346954186361031116454565619812899223450235854343153355691524751654656861841589702632914777169092573880223425013641635588112687179795958864781433743625179442263383331878399776347716331930526474907692289469195740430894052592943330824085467461686040118090015552190647269299084672213658935644680125513270807279990602294866826850045618077301941739608868475917670487973073998104292804279298152411670678570519154337053536360050391447034641931379127759147578384245983161736038556048786883867500765938949120472511008000306950368211982094508525303097242502922376850418538658258751228305526011039468566456585828053269636343447494309102120029586246207698919346016059011772138667199677248538274004679535558384083613188477215012208854663138209800279642397033392503500880740321104958889477949376472010760922344634321204955385458698271673866977432013975754271324570414915692451271464881017688872566497166977443001455445227674296059948065941421296030657933745902855316346009512570818870930074033987725651598781275443759269051343229011619713270552025480174317857247556653735991744956318355329451005382372121867487555154071116516145237797889728657483521362529874898562060223485237902581623820254408279847110339244142049008042998975376560130316188329837742998935770837486719984484283791246993672067271664219436028864412930383441080231375739749507204754536809305260057629331659731791429113176031807039474829097330168991750946273479301610515349336587537127218932627002079673604429645616478518175152404907752970787992110242475171125515151731467071727318331401208529895596383566664788831442291111182583109956209937833616220800677394538327687022546326488848148822843383150806802764261461345286263691571580610660670645568140603567365971602879046244340500518519575888851252511776149502680884555013324318250497613675299843456206594905069474423157062212234020229521091364983718004329629823424051431241228216039701088476272240421199737367028252140664978834063525053835795992344618372465833648386999542838865731799423528607988913762067355533270156114269634564331450033722209141389768891424478577419232332580811626303704409866532601460409098337845902042575990932730043147225292010170435323652471804528261691422601460630021501331997096716975942536252459919502140421525401408184072934129704782794133960126746993727285615358107403666127676598568250147212517829501103896671471328317146634111108429568214742251205573240552959869703933795612914383752642438001771794181569954182015322125936384537653404975261205587597842435403138308823699579410820654163683515011967112362145718660966165892618052274909896206041115812523403250007292048864280689103570128222937907677241498478576719674670446155995640764901018191240862881504859778623068515045478015343053368466559436676296770767739614827121514802795287667284622898552120810167885558987198057218906985250315922715805541673014411388077326400491458233288944187676793234499672960329017890477959646222418599155172831918708242061258728872425912973757445882365430759228062535245664607933718700033697192173582353238512637294096993115079298889355361281936517674333570134249020525552775415837995090898988687224513883232658831731274339561172387636054683445508380053273374485348631582329249795801959932117119915266517441325140370869331069350942010885578438561379306243031015940745894429196152221406354176980282070550890478345270973088873924276212047421725305879327462162685457708100248673126006696057058511172715025433324777717739934698835660615809122245633095230585587149570855911984833480877589368094508402968910667923402584550220938186723572378163422228666065927801669046533336458061983643971909655232477403652343945788074757153483767673183402091634468266990640943862241273566861724097248436607775820649108088214745526364742578736568278640272267740306855667967462976963713574346086337413611258956753098194763994394485769088292211193546318110517516887834368863198779408692957824994552892661983160857774448488769631171143960548792713982114153023961387094025487443998276053798898015894486018855091340839215727223140469036479519482813984704074433586875484162850128221891783268476509865450971771177424489083098942166948471916775023006265111279442241200797724392443721577400209800891123779709965925503412906456863488955059284798934673179498559805455240169268236434000836680650224579685205548439501638758305145464957570770040395287815150804007249458938843388186775548553913629780425201065125856766350004921403757262197516479134626426948702877534664811391129972509970124225798013809775831039594366972428828177901076382258292138617220125151890943562527520944568399496623138209721081229915445465139387306740602640628893778284325051122484835189060436891351447261930968124708565470904856370039214945369553887012424992502115746350059940382737082780600803066390525119553332247461391148498077877014891608276162768921683607963319820610848706591121089032494374572836498659188423221743251825623376682761465132364491578773594523203802875634207385692222950948057286687777187038488734474248392950219209512676883445292315180914436317187702847505287146728133187274300185521158488491007733619456274292249372109031700885301856724352591690745185422702609465977802959333857319535866983715230044361624851968422001179823159721814486204878368144296719106267415065363114627768879465094383563574685778998334417939519121201934510081574340435038713870945778987465567872990796486087605957359071188242723103107869310631045103690903169106419187423274249870225082798210596793713418819238515816255533314258172469320292591197683863037312720020173894928292394547040824969172207586864581944478707670986143319725568311344065695582671142006582539361381451577870384477165004055283686219450781523693546754344719654592219350146981439257972342380595601483440518843303192143588854073408138144651210253180625852844081336559069550246953120272716560841115639901974183754890345354601224605952783680821802058220836240572703188251948208337316146469648113649435564374614429932929735829484266727292098287242504382589876924841681091165772279188741471493251881926330592855172537945603213260030083184626082480993497770043031147049842750236420589870373715823034984117287203820710809996392667675971921162538011786950238555817932375314997220374323359394058258971978587902712833035268443930091686919076081679906815948603384991706621078249857042820045844661916712095875921200670079892964057535555151893629589860814118432960153208287957071741061745818448929439117821322345767287404299835197247657556786602342318699947878608203133530540889986046869877621281897597308854732380185676068489098339093286629206762757818651775801231484331167936905878850429264821033789129216292326463256572565620847734308744089184988415229643616853757200993803167481702040782536576525716939090087411828664336504785144053881175474204952373687767149726157634548054431095100608385111729668573036955734658380118913166156545967085520110879188352666368589885834738760203190578508802424853401115819677452244500266260406209991501004663668288473372923469480779792616568108830475178278922829383943222033463559170601541387221835291743453498572830303862710530842356911551725497360447235232549263496487114525262010027906945652653338048242314589185798268241486858369814515414574997516990097478052825434217615700931523506796672359750237447311258364513124792620810436335721853937744554330902729689913619044541882509838219558665394175547585605838939021358903480464621948682092689526031896898522310752096070684109330482317819388335082952864821733641256981480372810497275548546899532243654209030787839517551450769170763523152592051110960652782954439730403768819013278749812309980030256708052256211900065087718712591247543421616225294609162723555697039364638523754590437825793072007147898527474607073015225867250449150186712770541917037064405933420506561673511241231969752927381100511406634860078035088035144665123419221458638689434913452750881686927958505362275098405708283911677558037755900588128867998224022450544675836976255605834192753043144773860511046532816995099746528461171485114852039799190719865692500427089161957091185580659054600945056058464166906134612767900881009389969566380519573916104054399780786209143311120796937850406837558094388073304516339873814165761865360502290604075470986579683683050503287312805027438261424003506047387396736630749164425515782389008465892391472591229920626928507364341438239493919928573021874885644254004428411408875660908251698027623326330962158167842745715545428462748478509573125565495503505896874262544260643582691961591858969276866900261810586829762487545353959065343759232256413552748937330925266338518225665979487815575978820776312036782196417845462854825196943852145122041682105714441057113803848460184321713646625552802712911120334133635149068950246009083728533008474309674767090905327266276280386997978805208349505980640067833132373693666220392779297202890676621197804007379739054987955438731923754371982055512070124543808912431908299209255144391207404862495809101426772594778833721596497870475179657889975354776954071278532166532734927661851516607799583441883923535432570125167187279873240924722505196232430629727813502886895751500391874199708525371664606274810796330643120797084634462616334209102007662878412199872803746115351832082817524497149000601813818976439603106809731945195236605691671491562506751613027761056611950653053055299020245488373239923145778584037086304034424298853511766727455969584972630705540191902230426737951152019684537462274053129971456880977668972404563528664425717762232031110650910935095237816713667777688748381111080120640745433252801094815011021831909988901173964021058755540696603638151917487581408003109511035061381367558140122975272732219023698641690285783076031554918153520747876407189209086119589639332116182155203646112351991358357890313394922954899331839617748695964480047672402179306333489397715555086760083755971705554837831445838386003424663268570911335929562020081708712874120617339688015074736344583939565012448216344955598899951629334322034855247330646329858945895664018919798881590094415472728657082511641849783865553603291701004100168347639702991845096823756500053398540875982438687204175629017672801352529358811309271932164385705492203900915731524498742230498621082442101011761820461440938234397173167157359267776364038332145764125106021668080125654502727365781481541853096774384520806504510721177359563533639122320531230526332988014148233109630524161558649752970502765077581933406694768965058120899142480527622071313250466439662372323139538150571579274209600882614040157506655663026660263669418293742578445811050347351595078077897848459905901636124281287036021180711891083226287411911683443855209897710080652439555742546594571956313807557144081643043269705589869552205148377880105603619964582378027190317688080220372265498137870812858811971079514815603508198009495831488469631881525243120635961458991560153460695647483409936936631290139517743413398105119479486465242435383714184439806529054263937513249084230960091869564286431866524852170203274990462550164211804535991811837692704150727286044414604597192440477960661077661881437824033922733193377479988506130678113065361448858000797967877913883796158068998022282833645614325073857738936023752722744135020190285023225888674469467105081506708746064893837211044735571967156321512466164060639063785421294035772750480733932789494307478112652341690567695135164532798900910012182766819367601958665657970944447109596280538135361958327824763922139761616503084772291090826171854602505348672608600519817549988887708512409299815322732394154435842284169748644589739846126384941290688936791022937359563866175085070929078769746432044751398949838421944028735771561716965890726220876847447424387234638440229086193799452912023904589793757754238816522029682222199069231785448246457150566351124705598634378125072920955365138706534748948738947666948746345575886675435069344543148586056353223661568989234440932401079396528746516623434189491943003810094726359139353446677574613640814249778001735110122106098178225608233168546790422889337730912796435445308933822675649666360670704509149728490065809148959950305152318340180932514399970964019877311024434802837491722686595869694276828189301404128160040753132718574189454973063191706794519184500046373034712774432091133086748585702363878592462649804159556811244136492632879438019352285771881535452128139519983172141335030847155067774967497399110330809953883577409632125298473085866558380011304607221583486016933620494204399861183663375816365659343165292707945100362983786322888256110362219488862750927230842191963170526133989200927225641530348237815957219733147537782457997793432371856825986757812501932867076405901473808525196397240429513413279926506824057812621843779873945685538918683853849897509325371677219315721455992379596707454307588479252331706175906968730295342297598481553400046668494353527502399494695830404099042742453146431415730819719811474437379056812182855555596003355672729557040048337958765046512772578670965941368599974362481584963215839686381960532268594278230638431527505557603927237581569852281311469742525376171360134043653304632407269535416488991823550191060490919904697765451495757435129860545922385096883786561342304168512674845116487594113337933108334811134746668022770028302949779994367626694156794522659725060978953608393285163075495589107270050192398644578652857291930705077503140711175986633591598614754817887385494245184975205930900444999078250156489049763946602441102092865442701660714413602869256534995323847742870853386668730599835082974068511444083085010478283680164247487161247446614115326625608136718325210511464487499796214526935778765103837771749048536113725649497857294140172693169794110125280276669075846237618136545280924670012144517368053389200475082761869557820548608831868261021143138056435176009272550170584606098512822928291648978054008268144501024255441270364634033908160318591055217045129985683743798727223454105664061095157488436633014084663177631860686308667327090849694059247966483062220963112275629580782331546127702079056055631121730003290623288127001460359059545304004064657187260277277559814851097889728602776964081811322876840611475092879226907581873790699589078020760260114088113723423943531110491129565517627959665156782727686877923208053652318450273210379835146897050832229668733574126861099187305539683933432058568370032875210027838180254343248762229325180263972122920337181561342583589663663022637746472256118732048044978918020273908142517330031103903897851698312697955251114293427890210526731968063972392859988668511328232512201217895772402580264478240233218108159734631573834274395143243875029583432421532697175497694031344649740652527423450887248622501540510701416435081556199635855945276697071789801838440487516961323537771842969889098394503619822204858192177771614831378644275194052869068177434411742290229291178907875184972565723141972179377126652861965303547279901144849704916350565686478590665388992913920313102663909400183720637257707031214344528904900742153237350616641031377093004306346886433269335252872799655231967962616764138602953115910875798215619690944974203035212095087029072665660544881700208410169794112975587395092293937091057605527431704548331467221252422189313715844696131825123149457451683276412716818904504676539014506981831004939012773971407935417693703955491777530146904306809244379846674601364748292561705190929647876542552809551076028161374430323934242164442482547090786045692545289242087558427656216048599170275726441220761338572705096102121564403009395125608389968804316134996492257669610448803420858298500749570327796843985982919633363282909145577885227392118894248577142366187253266359750712304486133432690373949407554866156245330645573642241960979578424780258676674265856837032184357491169981728903915821449176985104675033916832914941788103077629112184949489285662518481638798096059723325842949385349600034249382062623012175134836618172638676600739875449157837131896832082887262629504433587403999077315612980586951543595362880676225643613731451919288589838946133637044785980932949481362254397521357530349549395495856244347663199002493386394169138377665974746647112235279406812639257882372801219203732876467031809443431958597878629508658797616060882115598430053784798765580976555925950897943459226165883326492560440421285086249458681359107124346805490830061648639960322508636204239102451179113827657463130553127969044939600446626236056910941324908925495083505832663696631429367911748723880417153963211124926267078463008541586091383560649326082788533539281985799047416109023355925000774277197389810827970066581310086064259367397169955756513667931526340954251233941770009994406491821385431499367797775542384642193129897238832169753786487402889004877405272041529817905191126109709214733403306057972412227614801559999790528070597056583560618441949419700147203051892290588515807667293157621807767265299930750214643303606431122912764937054798660863474082648230005438202813229465552918437810704080334109368996918294247442830158856359160145424096239717316773867746399080589789421055887292273532710806434283074396456584028572685078566248647127572908313593719074544765079472410148026746479461597416109067965119987289533318974350232218817312577968769768021582809663910464418528338770235842894585329311758566670190619974319363248757575437916369730969835143700753599508803614148044557893919266312800774494442222622330161100533053622261426835790031082581579844724601307670813799262483375193615473766015896703864346799834196388728523640289117335904497094160268380701950562156344951595255854691758394940130876810829701610906930786903926255266439378960909741525381762782984267415984227065340205590048669213176820919041310445030636359016368192016666537366712416477618146978138496873087048075749334301396274431820493963692829518209903174837860479206031623683746963849760542347916739463719844149088169054300768983832001448082516892478869966302145350241977729671390879077750620649087797747491601960499810271044630589904071316435097536288547144520891039712044168581711824565848250766655967582136846177137423311367036755411621139760773576564005345244252212201471478414722315450205567327480149589994812501108240694593582499792460356860248409870891104199226969278172285443319537691930016679450513134842363245010849241697599596868597191052093750945157294889691669514983373384287967301234854188017147599573370497411599462234593761176157206093499842696549695752514671888776930740636266037622478960663229787592858544642611458344156643799036391709704865181464615693271093808138393761898004806259123783433223682665318004021789833169020524220441264443800735934665720239726107782304133376341028110595138829490277615959894993764082211437013792103088429495612419482816769084289224652150588593310263713324619842376598958817867497511233236654115684512304379435307754799502789728163706430132806192575196722220291268660625315747118231684351368574933390007266370096591821608933324823558037563029567813193213445703916694158520561381782334637463681463726616018233100644355398493499653694620944064629092875813311871581763772731557554429295804420110284796568213156985012409160567841116063391057505230229449730647720431457148206558380322302661229496160546921088585151474262232057150440776785338155475748031448057558162202969046035255015933162493571720659093477825570508622920175815262298263856286420151728792021546249927153761941452269097781673264247392706564463433894626160909817131147182618975480215894652897488480402140292310019220484816234524829760932051919387702308821480684474559187769779855902836348493497651014762230977842926706847719376268167445230355003458172643884736545843380830399625996323748287995471826680073683905951769463348568587325009734144130114699381886904364041608092164317391143605784155866879667704421967944288789509179873203315654417063354934450028592362469254051089320574871631858875643244510163721468353272758418733034746251077959314779444348917306087625664484350032909013561392579099205516680047061004878780805802644359281810109005334402282772679235827384352616563243436200147337502564217133141300920016891956624536315395516979729095493032834070093480588365115649484655089959175397186422514024947266991620634799476535027715457821084236392926189757701261559062883580093373506748617445525007574790706466763317464601368102534068908210199316372627912472408628504830174935919604057163505356754472138705933652158631633774187017692211988996761564413059514045002934256318380512615455254746908554164423492743637710439391245433558296632872014497466970736018658616988355249316802720916353383875954062893749190657754731932068046634791716833591455425721900390282908184940372135409208313299028589701046449220359598630329284873508128305053271388147164209396934292896989590180761632343204338062558383735118623991193206546269935540381630278526073400684475538002155744297158912983575248125825593758074125178132275869456503605017285094349693187287995077192034549207923800816722276024543767895892155357620729904089386931395139403837981155441387065961706944022946545714153048688821743971406123188948940179102442027343074662680487109775194365788945788358220384979220855170933602900832864074450869600934961972383996329719689576624330498076592403779896396972771955308053375779471974266973196715593123534977994707121937009649521657580231143748696042593065208382639197819782911477114674553664544193210455019073748621130998193199374006781992634906535779911283727839332110794896689472570343749899233179628019325654947284900658457311668503052964602867454672479944503504387367373131268183021295307374767304483660671892985832344490337371885457549371642464395823516589662773689490958689233915564976271991997773967299684894370529991639743989477444594501211387515151294736048019829359506384656277970067849631883888078035484195569479215683709127796747538043765378417095551637177584200520447676865408273955836929372949370587375760008650719574615504291331779935823801858693290802172935393302725151212276185725428984435138451010499998839803074921056059187247047876903143832460377761376226175250878126151774811456285765412593672679000101074448282454931291226320457174338117257774295444252326078868627302458032948214250375667334461169472347133933952490690509540051663444889607072685021443763000490007922525332060969568347989272859674365126336056206057748853003345784998658366181771644088862047921128682256986918039190287644177999899470733836771117497159175371158508494901976716624768333968609209524993064630468401911201534398193131419735556428970382761809751941747157216769861347109897775272080446322002083768822709412202304533418238865786181846938612289069617582064463110588037362509037990878493847333649204474260029418596583989118179483864559203372963281909516250478142028029379622399721057132297048157715165463546926722413423366810085618883732470196452789142765599326896996105253602233115943618104306416098252163950366821932610801535771057074408341699985378527473710109677809711342245276356856015613244617419053073377082186876324979836428325799057118312223986616795161604980011570304129917743345707868045285379887799746179196921199246791243173698886558651545665050879102432317023006454131939068582368462700005813176282047125182102424898502502566114204922863751782801333662917943172129112885404957600052891729791016083709517924273870788504097108993782675853373104975496774924424108721895145775932264732714073310606020419404878092345523446080812539662971092874147770714220461527962570692564956593620302338927673790409639704439938030909503721288001033512524471372251225676101028095869806636387181879624993276178541136065606095209503291883863999027645915649768650633510614036841878162187864264508548630827159026255466205357839813076944827075705199675192855467253831308740332277581163925113671922362340308121034636977067449692659350637163229685538437001942256111257067998640063078332204166719433729219157951167119687021910136944026943726852030823311963381308261175624385157646210162349205492941536799077067646828977412257931492977505214378338576584353083591683330944984643599545685795824550579104450020081669460896902147725213842331067455634554818264430988399984993101335685558681491591683856767551261067635591886645282790014067178405738008909265750661891494407346875028550198586981979149783663346315225599471603762997090834524199816386251709763705088377640112821014926615477723931220487055556006007419894041572990264194471730531171465715057539906836504677595686036196544067422757855573108342259825899787052000831139921414906337752266055085770615498920685534751517996127649547514596223302936531847740307562951283422448500679173097168739467842558372685567488411833131702907613966270314002595738519913710364446385574294446573950027889859153675005653300040265224686652280097181800825454563057633200291552263518051600269362611752660797094751482507687520224854055313558359266694592228125827145988531493553517063134916138868763862623349706555606266455568239282534014379173935047997809945110861974222346845223218806682267296511862397760987098038462372274187509875302871015594471714709475520492892198065815181060996851260174685950978634519377800701163692872052968041069700662048686866587057424326358203175401365496052704272188858038172483694574375617522968843433151160301745703767562871472063014729401028709700829688106788511094264963450985725582818929273304978427578757452098970935458927484072734183868516175661413214480110466638916059054565553293677017997590655704525172186346373435468209606622694373872099302219536438755687139473522302069881427217845914700891554436624857176087605368500319466890344142942341288072047695331249146253105891172594937748776839238106911141697789598171001714448813929275509579861932593965505675366241746092403818937568588362946163450333174813991405453194886290904631941745524694681027211901342809418590578208458232850461616042651698583084477404719567807176935478628125749494298197414874390347571577827909887681434166056256113829505396077806248841035590994354047755121696586396450892076239462883416686108415031691944362610207597037909277598041463623291495853239186739922659259329008457746357753895475812484371321811666888769750902256239366266470395469033547033830892293161903329853377640773675302614729507335011774811873451893507703325637495893959740455859336588519536616236179633986193126060182656452195453517120918422197582444562395528062812807606264461633311148523705347525416906823856641310370287170628789020401333485182448426114534800847244420078831248052146611827816448228513082383837382356089707421259608424783911507355295592756413331650063569820929964357563930703505351464480556879204663709439561584577756888217031391701882739507638348630024216714538872424876415648908997505119060585592895851477095605722064941420338292932493739543406192851103541376779122642810844388326824140110094703253317764497517854031913646439434868637769691601943492204213222776234985025810211120031470189082697700011464659647246363307915643355479187978521973326423078451996186159116154328018583349583490335353124609484063727000683022956440818694992697976983930816574909528577567031986507554902818664631945875839133197532000003170908987234284640816531666546345626284364721690018861716620109122803896304803244449335473465127616813339392430296850989273892531608217483319423397997041825760215325909859959592124301102681334569735941498406055812777518902980495686022445703041374606835757036864942540389200556878516976458912847278700117097193579334623507073311341586602106016444111441116323530269495823089413667098459410713986957709124617897924836428097176451721955041641972084652122518768761102579912996189264843615081922943749575158050739502263921665160527003254637459774657993023271061544697872505034387788758757814324836290427313471236651845418175736308703087291293861166576629840176566076347082329012904698468096941114406322625092686043026001653667498501056875654611490810172660136713031956803855982166017786173796307846779383441199207639471216636286639774354619347945259252985963702699103454644957902812286100660274118871542601026199883673857562945220091504189616729462605685493516105272172793922137560030437203203260486174852860038665927743395274372357621032415786776974721266927108553187958573634559433429447247531100067102237982851049068551448912286568104376025098244243723826436745151933818034275664964141850649330340993125411107358018824042045010541911125825091389240578074146288735724906201848854735664123764430368330499189731913959443070752786994609538812074831740464782066132626722052889494999845073181826202461018941532867768902282703016344585701927712357905752904138804256388069050509506841496112354950910801281251619159643182467648890710519797397250090063963411649482544124635930359930028708194769300542093564443188989681708053153304419717691372093751179288823918931938026299733257305279084010811003499413881365979600414045160147757606224770605651695708312985039493800170955808974374669328452404772271016982797170997382219999205973416435037441334801772944560739261588776960939410366178580715516911760697832703774107372509936297320218829168585575053260535817845885960714503947898293293939959368977708453438440832952498515380492033676613918939108036671920734662111006496934000161577942092917249221980517761401143486175026504600356142732920922268786493823760104615131090591447925261820756565882823375313297098482125283280250230153151693125342253768004650519597053370599006561200574631138239389483814179480253333536294624635089084132278175660631753668101352880650693792180072031005538287881418420846397375447698466731340400006095627701957851871662133412406611095581688401867172494345011049006970395826172822663188910122776015305161817772284228892000579111377485377202202945198222013924820397695535115740964029985069411980232102208966034969407002222399734299012197374906202246651454090970170759868510546773839073164101828155950169618425308201563125515065306823853260719601322826939317155586086187521269947699313245764010415782798005374138374220914065412246998098912180698195142535842431365701216811792424512057143080029549354330030497059249566312323636183196987799042050054501723023078119435689776055929518049059716142780306503252497406912969226212881878134709065236414936677718152924952407886381291955028888461373705423470131091097874827532163890172764989275586145214691023377317566231417351277936792661067610033751617236340386633678983638672648983625546473927692170944565887286603598210150978124996037721073035177485913662873578790823233299476881644815568260961342043682836449838337239196224494809846933131626622596916043966585740673124967937252101696628066202488954470885891905158997045945946506683360935176090658570131482256101335586341209692594558571769292675785653327354032899129260158842430745671795149939390395808560666791559433312891885858427495838830360590435757059998665530874776297687663813837394640996208082995491915557661910098390296353001217415917273884993231955686170742232341219093797906075168747602737616762965351939539050093815055296592704947449604761975782337616081701273075299184748670615363307022642164548815342016700763545884989666739693383603722930621732025613297576346383925488205499776408267763471101591031794847955017575997930718018475608672801557358567263302833670678414836439101879635511195313902105742380921481000765453675294455114271369586875453557088832293606654736498728802635927860920083859935411544566800717940908737005094413697204374222453618569238377320949718369301870037280381233658980008385525980328468261985916762875228072077878676934816935607866938918405691266316005890123003179025925276551986207616344090271840472048135775283537871841521113217552121481650856285180567950575115366144158060498181211799962865687994458877089445680002165646255013970886313339254531692429232071347284828124125986953185159354477201511700848569910735155512528477594389419211521573781170210738530532431807029713794769463430256557382425530827317727645780540823009921988489235498054024249563062207114807557678424350049570077279606867468168571536026877878275794251168035979407165981200675288514845117426229376722023342234406779475997701510333579107930320790398357928048600288629142643436736225354936062860391971768207362374428021448661941207748887477939232767079700108026689968304889145589241111886336427943391970353746370828982604992406941096537724058303279046130187653651243827297811611617539370398169348275230764865096444157859188242812762803910074866600455718804377492254093301918937238898250181600169192239928428232670388837654467741576688907687020820185617303368509178988924719631802477769188794036119474475543311912720197615324764754658703773369251051306728227151371689804955371937235794231556973783238467598316473386178345191353405940237277426143544036986470948086433073756187512702104640072397991923061645869781747345375142073341991469254038930350456694035282328904509935056193987466241592799375214262833086139637562536919792428432864382878609690604955735210433013298851218995740807124092085507287957467640357601578361356515765327441284699514834851422781442520142694284949786683433390567155534621759470865456418557168562939802762840898895753997110035364819390985264735548760194742828156069032893842914632177447491158870146566929245590488295425893162151059062659766993583140035296277047474639536669003115885345834584625747945795560600750467874277929406145217241492292453302529075026566930267242131879076480949602654371613065424776793591553032002676970346478228911859780219094006850267632019230751538960976244412907848576804506324495596242015671647443278886062357708240381270837144458819772855459909396982928331156063861624223844520724745216008516851389462665900864443630544895337585083759071739450027511036019848027088007674425356666737669463477220128856837406129798637232859555357595875499547917379154918370587636952889055760990698101108488187394106206380645854626898302678184980407817978177285189809894588311921976081251444507195594779481613463751802400985775472223503319840850752756726116709744030956038253552402537098585656255330196992054443228275993933986484501666109951017195771544601767107582930864403137804370342652697050129192174331600471969313275567668511222321353953864963164348017596490218928445015980805435670900360829885824128129392492176374649588467876357899945722733491125309165061903090303160966050391240341494121252109111450328748022161352214177013264283546923684369494855005939284761913576997222064977244595166609266863110761860601888131389891417700108134352772969332566113772456764278091205951633205692038960258284463173520479188974788732992330301302954845424802755896543769234722819255422180471181730856414562179474106160916507948717173647456807822213654196525550084496730951006020429732327152375364069672788571908788571473657410262377947578389423557494112563856180083739536144589679330546813250887812809390343553219378908236368040250561606076876587510152852891720615533235645325927448816099710202204657746655840699271462100485113273843040823990754378368453759142192830369868327157533508388342767451163290483642762870932099697638974362690299117171342313958923156646687255692549110927267527795263380934443116679013301291009034810764580050133432763884001403259106816174235453698271032582049014688564770995132038360989170825563433709526760871125088894805192753666504575291181938514594645013470223276428694582557833109580602863044787589472279622059361186657664840866478271216661958566801242368002161834230098514878311820042731336821902411302334788067740177811853181227100974696346842614799397098484291009821328534933025336519077712658787409970448597599489441180866719987566654533104948467790544479071477056006567587941198641655031459698067285383942134063982226974816914518270659194149475323382942702302614542600008742846509230330983326962591495106226635301829293444792757798665491690317556959100003912634982313530324033121477714272164784248372995686999908687892203701161014753455472452456212390428120088980213718309987329839199335262581356285677673739852315215225630825286505903108831261195174948418020780285750588370565363077880754157728507303061716456163309942019442884480268704208195227224905171721036467296114762719404714605547595819496513187548595435981872521605587126093148842719039611311051769784732728858996911589132721139046736433982359484728400332362108134555188505895824894544035585891064563990594567262204583060091933185880158922488715008417521846652891738600043760277374466671679310354629123647477718476875382417289923367612731762311107017809195183509933048848404744681349005002301735608095775813866294467201129881997806916350820619191518532794420263643691633568370677261456671675062017613512850379447188749970569482443686215498019085380781878541551284224078044791690728136965201935711624529161979476508162491461534927840158479699479743897283767960350883166680493226601693285939800557972951957232457399804960990570479900899827919296454615299867522992005370453840671205914234405884194477908566395847779024767646022236657917793671348965530331934122388165653890784583001022900459402986200250035012801662995650427945141363191912697866423293128198308127692120253296676198224244870718572772867679094732784465478286582552622681756179305292950816426485023317600688516063406415138935919051295362275486886619308659826959252195267933061198069360594796050888507954671197066627104542555483316800026613230654371231487845570881815342300815132642512636575677278955341827011206336273568030855708497452136541309578730721948495802963455390991307020360437212695271638246952881740133763469954664839785247099530789766835890667291590653714913527895004589687116168650351192837567922268776677691490049061639568419569268342168875731986666814469816333950312445557902928407479500819696696690376030161606237394293978816138728365356284183475408307454191949225867110053388448089139650193740376415666330333625487473576581616604439904159077645129466049803203353402512749171405027365338736017144882814142795307900678503826565037817373624732273799183582664103799171310737720059479979018332233081297695296517882898489304147442543526340275685617010012774737707798021061084304470603629567005921885288815960129711103658775890112260462245035884844523233821882676316110566016885320646494948310907394292667849595822505191436447870804759187301187842500143913885157389526379636019411693446499312036715755973446958795608865995409971752838478668058936098205022083067891157895688211918161691066364066201175688205856881866946620223954066464444420449165760392949046998231160324696444870770402753717484261244419418060512786858944252972874691119360260621267540783993968953867102503788141641882514600179549688704750294205986698660132125162469167531298492558418979023456466884237414480016540836671748997423081464641468014041519109085040032073891703906505115032210554090175590947828022457723108319439939341421307396721962441427878904230646615216931097335628267353407089790394686742585024502672400291009323672559784045304903146487831097985264144093318572006231503670404990151392050371136108233532970140284625932090437159506308793756527981076987256236523666276017584218029287269492540937688676531378155856167795746586590399834585030436206690876337816563414665409630883956807449791857239781933051779004971245227055630133702045790247642149746225034718078028233219144872178640802302727591089898869874692304867397100540409739003722428988470124588320744016013300186616110974989088679908352419373462519993054483987729804385305540150193875980684451108365136031949093307833930650364380873464684451193091119836751086244750507791195623884291924643412229380612870604702162669217593938191220294259057185395343888472871705285234761891817631860677487234448652326742985559620194192201340694956992137258381786528924237894628226124938352161235918816697535798479474217994780120981668426511738540014363433215357409048997000141612994228964479805006089676185324525692272095866544819045920168266085702696432323462984623220418596467212399428005143196062379337943667764048087905318640647002386606486511005538943519179920970418475608155497638731023423771549080383023004704784904743121761559177839733646848935605901230790949306771282462488290098958879043359649634075932170682647436579368016621217221847828501061639259544093936511467371811344692635190321976672912683710997283710903088483184683010065222167858682142147863902020374319849770481635577040681897280667224531743414041394272659992118626386752163167421597503408323520760870724617267371851150414882947887740794977295546137098008492519580006338424474193021574652470430945365854831926352172389754269940628417203897298579981207280231866466462089507676694169616306009058645902774711846217302878649367860257371404711992061583090109697572066844698950978539678862133875917610873346967790964063913131670615252085875417477928778289758735082771724677123947227327431766570129823019131015033744604265545963132795706025074914389011254158695389008442883296478994902412595620223616990034352310623603679529376033260423829437251169441033653552513798216636477131922805802177376357464646227393586212301150206361354642680406581984550293489944610346224875657248187232550029767747013195490475287897756637353190040104903087772348293162456884076894249414063622845588240044601910885928222242557981799690826622745177268453410475347821728012672541115304599409988973058751420926880425458820988443146939991461118073055339778135989059342427266367134150469509429445012770614435500849805337536420567375877379202003577183538563729667475604207843204917114952487822592317939061907277349658728990848596678185498454026186341440269588325741298169766570356075896789455541926331608047652633109290972951513048110237691192692646296036620091134250138018991462607171941613855870151208246346916208507063829162698907534968171443751730944800557532502514154826455386346043425778482647854538677686383907790925977032564315638750798328302866023891476847668550871329413312489308539339236001678134296898735155852269161395032458991557377994847121352247766925055176957411263931331278233511612308616677276649433063564452373122123289212226852177761201470512124276361139746403493533985905207994921533388226231180566719681996000600544015161953419142240172335296407159494025371582504544053605841559381877578048219452614200621081278849219040502801138926186824136723886097045934328148568459302591777529579236131283781275788896169595837816067001026256908161788429917714186885690168711960370426792931882706410299998633738088686762303428516185601363515535427611522620194710626928705473843909827629840275649430676464198341114972407016014621304162730180429339736773280357316814107708380678051022883240108563387702949306833140679375673173346172649959417731154853829811507694265581351975271706036034992729761026884588765092873078620000640933132678092289926284085372887310012118206522754685106035224401465661787602461920357270388035823020754782097347490066626605704898662035745022216819779789329695457123117886563824965520175124371988759515626943859453234202477271678124188273926739865912628978619229684604152695607473781070138467308518787034726989958296173750742522745241367154065296227797317951494902646118484959219552985562268477214632955789549863792889577095998493944099625848946027757700823635446611259253359729172486402490962595711921642628698768398351908632894096524841027839868362386814001336812521363663622139655822232234462144379095707679316874447305607731542279328135961298029842486980306122033514603871620773145506347648924721543353756693670599875905002651239799372028197927996041336523248226524821914607973736504267127684631564127172305659887941249575387382050621859496529268123154907624158804276517595523673161994507731135398087700779367594904389837967108768628521353787071975748049957172635133825361723686194815516277108561514222515073186346922582044077152188089903753970132672030667627091608990502022521216510915409394763695776483549783203707705236979033177248481176897828271590230001502397935421211754089724534614225560833422669500644079113218869515105004797483513864920673788862487345712836805241532190409773403869689642841552142089470758285249085236229142950816077073782687600017883602344112615928083967171052480935013799843544922622071462974129749630594327209991420378993542609055005337407265657924792368011727853669404585477873539957726212840546745113125812079633731710644454749558152448771376056065870365897682927767043651577023855607500254283156514966353177845691588262169510541061475603791369557243102508279596097976452592008743927186067992744474149168153119917531311216049936864403645308433101902949494219146232193628937891510737454573910420509071734991153576107446029901237728189122792723546689491546614915843911456021816801182217759618546106788993308456677302717534515625121813608524225532825086376488768811914178363878749744637189116610885642326529828280163865264626751413704705794673057990624845291439804942320697935918711376319391131819966405956277726412777958554954856683149210478583988246156957210320888616041208341074397127060763321170473562667619847641248648346954059275024475158298742569004595132401923237352776832778313642040715450935999356395583486998727861459236055064111051153126926239294212264484516345019935676580391429052583093905454255053636944082794669833180143377736674506844021408492205719224790027022315357751384970712620514215590217975725196120331041936867067423413991423461008978504145877804494033327483464515393861646967849686472344693551898967526393247400378134033215747083234355859562459396117235233333418552677039869461612286135370582196462295573011487242037369893054488632643888050825755220392822522842533179907263860828013151299570419639033593176140028423602864846502523780130925095514438436068177586606280063248557420457560221196225687502283859709880597034012624507325742932687370078782961828880537735116628379342109296426556797874281860665954000337813583764697603722413203679756768359258166723454854952333038810698949919890812371488648900052620177698336844576715981273260222500715050397579656925546372648450531627185345433107196656188856110396817299654968268325033061269244663765358716244840863882002922588719296192701276714764188923750664354133474749479362708678780871105786614659462427596450984477752039186150312228564478254857221626904647960652858449712719400743872088450984645534256335537170518842482111438028221098108890005612314304036874188318957660909157114052991873218033827499579451877613756846958419232708172028365435652250963022430546387027879142970410943815875266458659916113607756949400388608418609695021946871671324936888892514101017726914691523669838399877063648182470487325120989266305747170744740775614867621758234701322416602608486645029656483897026562319056407343209773176054971165175902156618051631721619896010843856141779896300548342321017832409729070546647684288794432179626593706669628653583071890965875293404641998050865116249014395326870330337449680900762258892006514904675979679593881298990291215765357546450721457911771589926466066505358400428096822610450712417395931056540857230810744703234722710939374602307529116271070866774486574054051056766937677686235553368027266550110905772599338711140949845587154775892746857240766665995115324245149410441297580699702946371487664958857659431342572433096902473272829500291209545045773582385985217910911262301050283508192329949862021580484109843269906076977275301914867177438903019639218909160610116977224459121652212565606201049631269408400521225096551270573990908601028044786294013207706648548185155505116196871650387788760059245979128030234032518455138475632621932920321427161551744020916994410125597539958948660263832627675222301099365677078601241072963712073031092524940934276455542981692177012184961652560364809865833919817779011319446313435760952658246061431559091098565376664762824146602470953345456013497788110376706065446328841204879484423390517589264497991066503481249507792226430570066298804939554879268054906797900299135959601748743661274338213950714344275378386882413510424730543246866868622343135103498907420594326854840608567219044655046664735287161918877756992189270006209739930880097719798063239015815475125854596479473821067220537199953794380555576315290435258270974347345495404780898441452093045568511786910078047483798150416762294023477726308163741221946569871812094643333524705007466774003687113955739692366619573162553271891024498333601487077928668732491254433226108046916083229903843207157721294836501767950625897535916615091935828873428145527767640200056410302221702922962450456152822840051573132634540692763197144749534269269830819586004023339528007451607592383483707707916997604873217896712950514369594563737070309614067966015118686470271159788880689796986140042966815348999339997056072096039675418804092248380171455982658417942268892882591055040710274084127173255449217659229259673242452761809979573056984991796725623821200542157538889749400459428620705650096948720602946825908187516229484720450229659407565476506122765867642127078552443260967119331821039886689531205122229793324541407848010542716463843811359432045411171137708193092489630231945473367765139939769499111425142702306953034284277899607892852787611004495398206909841796727566329042592022515062023355318627219238306842855480751239616743744458205730299425163250384735031261166991360538710573019856939470796351337998193318668766810763406584252779323831822207234411277616559547916022664155163270993440976464651654692755722613128161465121911415960058207406487262634794892257885080515982857456460399849804820447865949402638264972547884156590336745777975437866293173431866411600440408226953398829795498413769476344488586799081721794129506853028769303294640571788395537246621752132192919355683026745096982641814927907804885331328155439761658730023756176504028598229335217729751316982193601635469550450095477863418636655342237557178324716396980295109085537781283527438851367472529974192126346084683232572966716654729353779801341466963857862141930109341952872049482974820585622793785554465642967461287176860155461620314445272185958416808136820270355004800850163570708809705586924263794349995129747232183610387443263669355036490265462491291359029665768109796131012820561995185482607934645178903326157232682902894065359389817745409851577101886865854875634511118958844967107876546883297727737766987052047213590352622636880511174951863474424791656065913544807717092012555675156181621348932905799296549561019290189372885172876686652413261118657754753488413838287450723398053147887238180093177514818111362628269678684944589048706002056601557145073973072606242483634270964354197842771869727957802535159390926277628949091008561955518070008963501079259756477887875535502674468360575695529307616337592732533714755117175433595772506686573430751959294742853814166285227793861725202488796707201169835019421982872013012853957839911163828921618962729776333598328395903226861351553315518234731644862171657485371301619206840405751665461617079109270830793157657698982250705864784475209332492141410620481447008446313539059937526030252736276863546526191367912363786059141450284493158415027049127274639048596266061521177047284326991724973017785630336456887090461860722790447362816238653208802242235374515744791030329620854419708484538150183351694179507620829328308462310769355790105875400689717262848637262063095570519860280023983765186802575998096529782534597502754372755894484454313654842684832625911000451309355499687002254283828046132966759528396100057958469802197517159404820046421663172097754380367294518523500264668300059870248552534532381020360973799388268291454759810982655640383898161733413975866751060477166546914350453138366999049268940635313817177622341026727375948869265324068567137125046218335235787368000831108038451587803719948196237878800356652490886859164954171561276684941109268079393881481654428415693646678060995830275426966719324696130577847632826311498163083872106046281007550829858817087771489631675536528645746896384175569752806920930939743285166195055126372239664390418169516323491458722664408899382285886306084959555582495709869233839896858177909081381887829904770449438743780584813416566848088375714957697409603806721792422609022188304802839074615731156663568357016759689342403473456676032266278773504643025324043832638009206968893421318228591389923233864722571966665794462868829363500550603380499662140027730997886177895258741776038314855469630649464868861754414365241226202048399645317852766605829787107519520171497772671349820412340302446874661585715770124334957732881113137268701316641316925726706567581700204674929098599185064487201662931115494352256177367428974522809796944671207854617442642881771196992327121452828848165357631952495147059661012437458378773883990253978962144461569307662830338285818276158401249119127953261802951147505492910301006464481081934437681086605770270061558115931744390187699806659750425074458810572518944888938409162576727726108486500168434137053981050081017200064872935981423007718848048867296599136244937078586282416368795300959640187019826097382195485206617467635999080478275709846848945268008103476123771140897923916816820016187210682962303463656559498956456746256433555314311683680618534819315268200468321200405468670226550343771229460205252342663324344783466994796481803399489945201472888551402982717067575387527555870705892045696212815588901935014656958634149602905301043336070633991275310686504710046299256817045225639473312478188341902118709190150209043609055721408105597003676743288049898513773121735727368622955132525869469386681727663851118369273635916817178242146422437013190695375557402004887187835620531179698512450835240806338110898162797181063733876380495029983600664879116045685276798292901914884520913799958427892419353179574678086980263095576205488948784218620934449021433686619118508004877771531883167798752858101317539334534807579863822114769249556073326669867819356693166661505257853064737527323571986181159957642658766012577338075640621354902854774687203428437976500032238203384351019903889100138990219024819016974155024232064613054854414507659793797743257305497418368600783432815588855287224174063754622245888586812070216720323136088964365566185033188891067053841264263266656089534280036811814482867083247079583404610076417233804466324735809955310399170736990530488781032845943158958238808818197532987048108868503583665121453600611843559689826862502412130749545921166153023420219176936665083222107103325031731930140443548219252836753337510424320227688996997494538319843043811741224692663878490276112896145368630382532245511712439351493142938350018301058811718296818288653701807377113715971914161642455628928232954197742506396492198527725859642950802087333756923798401137098030960303363858289721872351455204534156239221902516908311099497967612105178052201514392707955269018976526245852243900074977350124110289595372490900666647502388678929848080992026103275731954060751067374696448231071263286154897808637990739337427372361816176423662032393744920362875561320584515585611041731250272051051406616457452973569500216598293430757313801396793986149015548709743997880577636235400288316848902994344406417270313006219632498412309339139264070462119844466406470607051994954473227550661721465575439720136182373164279437704780150450557692790406819928429675945477330821811588428973248284788508736913760164011872476261637134398019040329017239392053586967407630842703539407893131170348515612874631478251454323140683427211967392723740441020975177051219669699787695846218825212808288451976967615835549876324932339096409184912497628210923756299272643013751829391638814219104592420834959241531602167970035985963103068349063757281680348091697856499071829577504327808731447586881600616658812348237337258493006625034500581930057048650211820587519372298007874633072755072427066945889498230792250991864288546134092837377787600180229404540979944253069703215816014002434158625201873845347681282864442082469830420179259677659500067341715470013600158660815847621995224922629041344430743578710632678027751198547017238128939216716209343151136632057515393823609341530510675017109204997678743012168644246156477968622019315854006811329229426954542527243117220895691334426398977958690484590818207271087687777167165390460455967167992489949106101076797926403495813343708750952555378033649719739364347300434094667145017640333117148621431468892461951374411176115534098537287834241189196307241114357995357093822512977370393867941395151127314387231281128871125500764639143729781995199594981888792867087483871968585285338884793931987106877334765137811051892843467326389338047270629020792582968712956436409302983936106098472912755930081890517862260093315044527612090613846042761829239667175283443695079191855657289634863531443570723244829920931909471606714103644137790344602317659530486931319080350594714864361224179534088159255087036547594185645529147880656923579060532280532265586914691193817438593754323694723201629640483729140686325811779128693168670993103381621025051389619532669252016684023333652714782687042373443913282483798531733162493855302323324478357621737508045362874014893160953584646950198634718899533519034025820690986437043187501560708203284811414687576284662755270225378999392935513186918880117520061580842281160325000618436323586114035676268657267516590985558023760680472584810530191416078022874025163612893348662272682286447275752100898611237153544358170688991262311430950260724113224412599314731271657617918242040140264555729027355128154223617769354398481657374564659784233137321129293837976493459362078304859650363413622853431184670623513754832981880149881701307137447532535978689669668845622334575085854912677809951409494206383732881960985581689610361919861189753846887743325687727398681001546116651555574876012513983283931954971042824018464775671515892227475747361186099318817026169855721535219679044627492776599647876434643346920770167883999402941084554243191023341789550522394496260305296320352719011216700095714340443951548443555503113859024454185021126221921668864246664000778973112691193815287367091655416520431454325172961273320361569888855073415908416959374698802051050007244056512996687987540435874797535225663783790306499524534284047117709283553648620454069034060370667381625469627671793249310573699562675752842146334917925941723744204526327496141954858534441563047606614914637957854573744559964642823210487474593093205573552437135020504226615914570323647453799377324578651220786968590759755064002633832843722908887159344590445356417994081556981908547595913822184238310721053136473260979447400631985773074530402637993639623158296696873477371493584002993207528664485821426781500458774520972656893884861480311469302322760069152091194205639155044416554718066175950082851188844145283531944026326506966936983555873598323951115243677965354943078131634066359059915859335096703181400223062966264984688214288346369935306813988996120667614825578826401761538202520043678324894455968232247490697743194484307017629424479919459807760031930436064927418731513128460108640227227596307098776175897228789803135978825674949758330262372051959909884956327997389076082302974204097469672845390367505419118336744886249276518530787915586518417787941845487029175748629861885880023377182435311486572108707481558237229572392798351694274098019084015977642488215180584473149617373494541100410100550136309989522039524490299987342555327053041958339179604516605508484778683500151036502764090994617648520906616161218789108553864137507903063696828510775562853126981942736873271400470964656301796286685988643601253100485930462998516937316663238924856438198943290239163075451468317806242821562948088348406693818837129423515936280527445239026388949331386512127640431798501073878703451296636752121805840741348000366896058090699626895562377872890637454161119364712623525186486105587761159138094808937812568412504738827062700169207554294378185350869669394590071592965049919478427175824669539658269279458665121726710301483395519351446797186855093657285278232032737057888866762926816399944162896092503970026860474901536530796630833874009877591304906553014467242575663507521398510517696589076449219932766875917668561137472860643827147483740423999270663508570111064363595533007182368739170793529905391167631776676216747287431096400499881339800908079217434679697872317652158982351308285334906736067193716026468855180756885046428943743365335651469683464540899410432171768985989593892135885479057009455662601397031538937605669867957673238507987115311175794765464423569326071975361486334421375195165536939525292238921727804238721470035452337370949625485040463093152301021774527079092138491439926632369457526018792366555249472230353842913239617993525962957168400871196736862289386664262276331351378978416044533663309002759793892658994760045650733763263727557965619365588308109899200067097340620149736343241867953687056017472558375387321578917789532820722418393755211846680461594775640452992561175392205057577454415047682413967616922022078974971961665534038639193735769778763060086031008550410625394647584396956738835967906573849066702212021231507091375785599325425627828433921500474235236843156555699187094707072467550438642990893116521531600840761588314453776794353880307794353316129853289222317470923679699691438351655671253908685058942277322654296459620372553554389068977159423736243731314079458568137612581367883585026828213370643704835293678071461803789414892123962710125862739579186056479106560664237955525606707160972194133115570086354493328974466538293046157531038292388546117976231397350634713216811045985734855890045369101485581647263751864451269734496448902778534004607376241685933998334883642875840888011246675423326299492368549183825708581551792596801163881016026047340167313288504107089578108563347137257588223920920338402569625615803584361309186383285876339223630606036283206254498568151545697147035543276879183273697535368557973086549096719032669726034147562230801875721130349191492408453592376114058319643368894188573954283846347193169517530733131010825204323800101132989991916261007059311412561659277330124971388305273932933630404007393367210170822146787547456889570746582006852714667713590548339654983659126216594921473923032287710239143588223072484387931632574788249810266640781011892583572194251492413353455924450965508204921417742114552014189757503028388730972572643021560457077373955019616740303064226725776818536646402095392644745953714589831396414041406791200854590367982084821598577281186706684635576168801707243895673347435408622634912049011199935054142407064269246966984364535607224767862479548599514536792379574483598431114817465861011888608477372894518661968429516037591796706858786203406559848808600714568301357987230658160756124902822138534259427560436405578847344940328084172710380263031505259003631449714600865895079534644790290644533301348537841710907357069608226582055857298548638619690474672182022895330468335556986285430180952552070580635043668823315338237735491234501423551226484084471177619746362714499400774955783949185209882155882325772110180977905288466941055164046783847098671177766233125864173781270554270066678329687087765242921626562438870214057284859077964700277883595907916846175128602933076596806275148344566348456218527847321933641618313682147747456333882843371901108090471150213660591535406751971031803223270597689972647836844983915071999898692958534978595048862916957177484920308402209272786753844705896629464439381144671517489669303058675111841351588595826488074626898789649937039821308058035411179285573710156811680028709849708357606598217064425109753922664744732366795523554082994779622880623012576275437204877874996212157484389597430291076548667502011640854402037601874084495512851932394833971125825293150625052154731128095351935813670162189261952208201312302799428564638671514752705247699128873115625559774550623793985057584111427545609455001615988611099825712987655039539519075589506078179878820077066253242551320954759791354227495340027094471042144589638632502548470856095862484598250081421187082859433834545380563108467567524958209594297161902895905103233659411901192752513005145138264391462780779181752256035522903384504063217673609437869093533301895421657003280863506382806240994964491057206436563338494953702324517750490097109015598163261144057955259867698673402752034707542740120334122003933784023796029892231683623807411650780743097639302439615724489703499484659656194911594311507231561268288045325648995019190274731753739590457071825212864829103191679554716260749734240325910478963495178137135154139785739022850472724475140946788058346600588841909731578232109222644156649680189580415952981153491378104205967941406999016950915373912952689560733066010409493365384769179977296727943120550326606646436215599289604739748317512955212014630630404491903355710190166298691776395538409333712917023768274324342540588684475600077014682286979891386396053340947507000689362130153923776163993586906650443640625993093391609823458624370197583956595907866239029487664077141185195259937696668550945988861966473817394313657253744474829159483045974435795172969505390043230235793757348642338198647735447851476590503070308312862852488058948409953024715058069463292345414367984808549016250898728671686080870993687073665032991919227857525226286995167382030506536703057098049519809221781663310730174802282196676037850355337495075723437648029356052464644240772520645252142108483332116392566764397100039160637792794398441766106563050810845990064154702595455446470470897133406445403663881938130547353006908402090768096805933736675042500428233611639378804891148618145703876986535071975585469890036807803125336915621120658148991306604742527601010429411506532721863344883566445815921429414220636880283662651329752553235214431664942114335436612079308878760944096430946016954751013664101113550311411995555292170058442257050588027937170304917563728948885112238574559250509178186111441507486147172663380213006481604425461278088032326367872917202378583086073632386349109541414833606116075136510573651193859560479925285020150839428638565488277243541709483798567271359107052421903115149597228502946189255914365935368238670153748888314819991201862557809554983830723090454679012717655367550241985311259006913056995265868585169312289212059660355709514765125967098625934524980181656015534224929690287467057307993091517607958991033988776699929221243335277818917184748166902626364122198401896268533996424976715932069574664589237528178633879597966830517862584384063124133852449004479867135069677829870588830459235129367271913770883252464160895706558676603869467187020181032571429286311114640244714523968397159530720605537309224383284769481561617424826602692189818548685759061893951080060834412629777985859828877899624335219794457908577643984341272665898265235671816186569105624955323125556872202944278755728827891430249265612389992385761927159219018825401514146979435348023772829683333955260074513873253776669281210856121690319209427770176178297318949865786888298001026266100471631633288911234666660748531255049516532019574682475246048296679169195210755998676749203991229360464031678093345760766996206341116828689444183036014559073465084876188918596143457983432482526319462196341224055192837675474654406734060315598122243413245685575035086805534524179081735624232258013971488920886209754878355692895327018114229328210105387251994397869457672370842448480318359591536681243631946666873273447958908029785870629644319223671331981457993753628965140071537238401615608275484819648178185966173658243820326207210633592815940441575840741952334505835158232527677375430271687561489611597956109035372034660887516787029600421233759798851867876049009276694071714502533804553934095820192329117458057465788509404998140279035425605903244942173357740679198056711405499746003989005640073393512213178161610428407176708177291025377346754580156530402738095956889294361810135677144521872463439030313541586807567374332239064536698724314010024527401255662807486032810449633970887983023045362340378611588164696140013375995794767931205091231242857711890632585565402601770541515766604708153953393030859995836849397272339972883643273937069658033325314727900206746730845620738450769813696352184468836846776827538837073616491454280830804610777616058042353581017382500663164976387176895949516851779881823846701738212206755952175583311280903782083230231262665397094071252182325162194213094819907484874919193698171917731876346790618340303171246060497174977764826124595384238068585897399938580008860792522551896217157267483353261725461380100660738607109137018448024737304807137317053551420149164694279832185950785285448745241611449101747376788157227689174537323348805957066676978842298913294496558697902463185207325169539398732738184988753014299524390066008297332819743969591426555664675240325056491518973053116995165807775326686848109848952286673940730058770397770862741445722990728768057771185740948168271266603294460258839266481083272306866693607707070324479558167237624289579933927468098370414845705169788373301058950750744723015278782895590855053064507120897053545818816891370586659850874351872007243454368221631357499641051557114684427129992803465525756114401545482978057264462519546125747021005297732222882797917920946104453803225999157314251570443413132965895538814731793762903180325232025319771700886881523060028833296807820818878393828449219135243706764616864113673507188520574547183042188208632080858659623628567687327070358384685662343345505486272770300252028736164842807899368947252956795680815508620415860400755199779014425961577821738833024155866448599566359913990262473437308703881593626231519371154397394420058710527722510573601494837275026851321506467689217953206203470622139490995118611557443362096429401202631886661661088478584939914545688751301942696086390976687883727164071302928740789435362131144485904329167331497544308810575812752100434334788768376071970691092667943091547373573453590290126629324280272116753514732361525657055563255679106578175255663675746487733660189572002631508837828273671121675894632406545008771300108994493422696027013464882084767669879198816477437823310702133680273909189991331363405616386604406306677559409081863028771951398458606674317860811496964971864713935207064633032701834366075058400023489173756640008907382421255019512720564543647801263332598023145785804800021229175228341551576363981018514782512927306305535683674707453295282084014455222672208014275017819296381226523911614285312787285047454613943229168890348092499333095100894034723566105592168454174807272291638963311965949442676705505181236570471201944553131175503543348976968710789989395049170447797290565923479155916128674724537253535957474395519506031203374614914238234142554384864569871402432926551902984384716267549418550414821128121373076423566806592448953511364989929944834852537927966677496880435019567960820013732876999452440379221990216350319921159412754079146000495710194676258726905186067890799505882154932972999529781251617029346692677946608819503050608436012727326235543417948293799862011874137076190471428679748630833022116276474378730233042912743105526580759356119806195308017063403448385249674934840680609133529080897735980328948146819347922819661068940487849571340487545869378851542448834696332803423524721713078645729775066719894567795132190649861803779450760929026529334482557408403910609522914246262970033957662992316708859615706770519201205009309859425758099789600179023462630434335375892233519405584972964371215219331261306340868509079058733370530711560370874903490928317595696272412757183871433852864877845483536100484381374080610486495743332649427563837763519756570769773358414686036943322285559832827729254252983022015985739470387021731560874120390946741737500997253617082643497224070369443756402417722967290572687503760066603889367088056938132776556139203564848303501788924550646707538907478002686059122967918523546381576105264717499225463973515041196964715028094851431226349822309955199759970518164382200420846744508986183041317306526902814529265995128339171054151590240398601541948498897224363304202470836036372282738555898011505106549740198738257622131672386097387198719818740678453628309774194633739080319799980434901995607545667315359755335715999394083295909719168451106316792739583895501954265173890916416010054979326914749843170940415750730429455166424240462393679867314495522216677981736672204947204992278891370915502959266330203307236064929349589425436355017102716807357332341147666998212467867350994514590648895877886062201906966284784634311382324661450066811744066288871756365991627694109693891236356782863191751470435989176452776326621503249239471980217744974451322792119027738672777380007155451183095078871317492586441305897984898971288658377975821085845299104059154319574289487315568542157735234668981129859534547320160084489871481220821036349284199007516633086377867080050855474200274978837443216347221129488785304313771120185894713254517128920038368124510157150139665046749338031164554976852902831038642525438778116602706863207627455766328695742635953822688556879279150413998022908541939624154447745330616994622525222863526120017994145007067041870552972734831112697570128322907904214781786394149900636800325971963876484217492154598052808081933461005956687129558348432713959714838764701166765814369145438573536200465477365388025758393740774428401268419494768042598871333022901030614048161099239842913620810984647590341622165296281620730694857183567884743274866053549351077852478973371488171365267058648464049355606680546199548553610705527190770087209931974988420174311772182143195647504733523032642161129141393354036337209091029688411657931117211072998814629799509518038824997792550680828941499903232000034355439086574214771615034025750898126966881170951427850687504117281644611719446213630454460685828222289202159414624271409516341743139210875878105079456431508382673769892797435757768046352898473732777480683417795052520458420190263242896946743539031408933538945158646002894751180608491220432292890192427274502782428059425841840633926158655621065072490919866088735740904786493579527331254745121113537788000092956849091789384161879723594382949010104604089646586460992290158873643556975143383107562808242650199427416389737574409349820809980068213414129729290726767823644901776093908134730786984883451748833498158918020816628265487787926215920967554230626028335219236845654348882739710407715956842071660959939245835716525882285863946913229206420606208375915643043485807289260704896784734179298618851001730657495715056127891162216675309830414633971055828878370867006990338659525191280284497179796776840414980213405155277247856631539225445831467598486112747721555216494847784905262937971233005328024052768131477738002213352607319614985186627173378920028858671633105349027638445369435624100056193557615743414913519707739141492827476493587584416806585124466136229988961735532568225973069730206398034581653838901620703550078744286000013391897326095876819832912417762675153365260476679899576960110227259847088193184034308325725305205852338643302765834538224789705508392415904788756250306368150557413465175040658236550090412030853911918440274082557560956706276145612467126445217644359389075672194877557478052701003954991475629555529348427845546326366478746268478865312484307108960581917651678504624951006360364268101046063944829814201275941462954553391465311559529341666996178752152793063710467090309164862680040858622975129434967668314633111728104718841916869532239556286533286763349602851076541626969569361544108369303785916407701752696885856629397725325523890596884110733142938758374801995889563172478465657217490414421448856293593572165457665945668658817660468630909548573491557683390418345558146311896521405321287864095804811656137675862518572444466929395370773538226944767077348868177782730469403951316996445893286879353624353882919800859002470028289797741603074011597201141035183903249695137179325563360246190049880573526062181493128330082932744567332074874623551758541903818926627033265623205024706916361419406069601587396324255072045267803088685875514405489860888806442353704567959069619224026653128639031531964571558250884987053383927317785822102124191510606537341510636887974261619114219683286981583891945552848514259629470836652223185364841404236506295163606790045354832478398974280090243340302203670977055388326416142276786815974001409402238139010097747201070877812839262643408098006384489230502465000443943626146355318680141218718251076207403653581580223449196863296930227132504494504402459434750243439540493334948312529269574847698353596306881555774086989940093803468396091434442504755488481714738881054193264930167683211113308078266433200988008322786556197218466228714924301477648945824474513390131634332357347956260637434666794662158107384694858820367878755863002447212585277027545773731208461815471212403091557098044963976382828865316120279631383805618290975138667530884825218130430874448244120202882752895211552817042533513875956213502681962903487977046509518076060302527696187565585950734012496243198788121312977332905847824387155191742180963001432208695909092264586533831209481470498543069212990844654169270356103868867070319122785864930502118545357964214703860836322288071694695376436166759270537705690555917823721137060993434807509182537810341322725501176448070711096472850466321911426477118606431929766041149875137178694935751655819995376276397692776850863724444668673769071742217090075019420237961828931778790591798964172129178496402544925151982146576424893369734511928893277786230098662401124330961605216711506564452905786150335921627048166604353795805509330237667642921544263574712741174844985528394061252872844546034159499358659162662108343538107853250049292063298053730643181515428417287568571608939914057221085630801146011207045097260651803123118044155127947754707864926746065610858228000452964887921264950682862328550291115825510890894828315389660169104571293053388586799590621093454349667730518358244568079385707682884589416355768681070192903494558146630598192397048824569731099112527055298008618610571474393516847504879067151940332148844566581609568587047183356173190942392064974156759027383292655611764686866429795584975112092525525749947269458505780147867305198885195641028682312038213875792285898650795217444414389962396626566920855412006370235887208151091193142897690900329490642146387260407743954554779843558089943416382627700258297830517658060485733752390435309163330817219964338972883561859479435235369534274635468818372967761177264421385964801521028632039821170713850184210336685393755356274753277936181733046334936747038560925931281657056676023027037296709824982668959439192059458077442150706689411142472695727108855577830075059173075199415962983471564940191706425760374903057063574732511719198462152151415569944438692052935910474221769930537823488580558444949436331831316347370625290193124122495488415571706435234579644762920214362158665722612537057332015188853599271958504229410806843352265012666844961587852583921363680417698063169768941619263329660221362277022686515324975686836934196794365993821485550133860231973652300237123767814940954992641000844100663201037820513472627537994323579548995674652950261841816544770122296223456136182480594970091394220735168611888491576202203413301579236239170476220219391166842717765358887043035997880406744015355284524888831123321788626458006563733360302661586319976953944235740864470703744566027325989502530686926176200092092612793282616664787255529783649360292824955855105438028074372165571033921681737597930435110651653841394103933291103600878764240393629325673564131346502064322016321549628003012978979231514737853738147353782696414932138463582940629667777821418984649766353651473530775632150086037036014289411925037306797852056788939119787580932010027670847422306404491996366819339951847849544290330030450334728930854948234336021919140070600777775933855694122853557373880446837997945777819738777398435039449579972407219650148232819735594807116957691564925213200347829905690483273523252723302276139910670560033628743886071402221907549326978364472508819879014642220658530077132056181188102153873924062015443976925650851243941266936789961264814445908307138947843978185541103865241490442841599442334076803121302749754203902073608161706626130085453456162712072932712428616285112689099084527230670320348331463633241843019701318483299461413777096952842978019852164605091807130851020687150868608568780681127794501395419501392642636579416910229544544943243625775050282544978584029275456016221917499489115337943940430040586781854352105961151705378825171435246394276748137180088179936362416540544971075366320840491812893375451047071661556261993940179645098350783953951332731586580419532363217894043971171913245165614808524611242853275983584290548296860920697743253736347754499614099882933199149932659990839717260285120253016230850057326518967459486313174343413722099576841170774979928993878174050959624945388874425211094197930187367343281940212272887489748584692895010627155832224500954406531706315334367323127584102577940236295826832525546378271376691399431421765657851937491429533067147870092229814646975240234533677495662829536823952234812284736207672575250015904179917200340355909757916257451229753916325863759558531872330821751148712441493377818513089840324809469080105410456583971245907153579103722372534919995029103526171565721305392595802032779929302852898731160564317072888044505309541599578398474999764702157934012515272045183081014472380694134175550263896924883042884621547482851579557261472137823760095429553627515924315985771975589938988078288198278547488689418523736225447334033851915599850141972271358049987029015537715628154201328496962891551803370277137650746464036769888979341332457643298463112555898536418470082186023425993282438612228541015451975258258924765385273136594746653443741595625946729154204882535166080524781614644304407426501626491089589819392876333687908229655031718435695551391216293639562128421533467640206888888144672905809658166406768838088505274803071809743973451953905752541923770555266578854511227018937380948580999412654593914850665720118830954938005076300056828131292269749881380196744339139320636695132628521627402681378831255897864044048681164907308660644565079073812507653583388851827735068168658567993320082202788861536011438254339572696113508844357560176039555335686564029777129409798536241120185061842099196516385452233068080699715296113802385643363548716453130448520571218049805965316284128553450388640590192707128085329212617940804238582865578482799131638680264929592152516994253657031721469140016498319409702565956974991199094207519432290536292076066084963708200450731618880653275496472687877773656431380552619796006574080062416856919922751272602454444788088588821074820805843898946886280787612653740120657205188519833122946471373635421186363095008269802614272768432893932384182858787800759699019440190453418491342800744340788503720839721052828318593701975759935081148728479096488724216658692065992098048425031574420524182280483667873024167423650060054169344813279107604974652475694811333464415125690196382027310832135499168700657591509732400797204024766363768980386973007317801938284556023007296650906022035876769960243967720942189439267626647200380727871464757369061686447282396743230431973122519175537458291992774121515970071772460033299048626476959026859162081350838712234010336206393022070481717946875627340873116487616456549548542822437557488997108418371800343257164778289788200164672097344239304320056205862274596291434380412439802683691501626271971442274455450918473233235137520851346651625789614522438661522558519296478277935290937647204151520307262059092527739260453726324419408414437655883074845498815426002281392078047784322048064527426936428598867073661513486261979672659078620427773223500485621838080094849179718067679048226411614381797207027759899956687531241946659657141990999549420996124256360903599750418973361412249239103535142011528586420802767253359379425394655127272847078155788486126030413335789708677042858492752229737637622773063197658492472691006149326778052118999653531626078209093945173915542784267275768433173184947195573874768349603140086774863067308245006988717958715208717159178030592564403826313707715167456502577663405717011424962529768849190440051521145133027285090476463168586192958953633039091260791798947414285023043305966496583255614352964577236998735940133682993821137627184220007875402391485828772926440822014868965156674432980111510944702566490866251923679528365342881790466374339323548855345814322543342986109108074284357844470763952409393257082826155410316691580703625109531326753821858500861877590701587163238709718797075693078966055381549771951540161371127231802568123509487294029322204118654972493161368980300096442144210782319315774197623165448422991983977780220493439171894016831377623767605480931993484670011378202139232095973777960209424857436676625629084153728092551152967807119613018035736423842464270776800391370200021873906900105856380846124902083473371244500137543787446485641728470884522477553963182454788749237258441428856743728328611873685889010401363834502722429658986865174184602840069596550015455980298687641095398904762970101167074906197959926209933122309275984209702522640150844716177759782072219929025392708891844482146370234238991238703234211248838624392205679492494708670206873656702992889078211904755511552295402015833961368086073587159605223424586739492779529470218033878471679748936018274584486178055943516018717434382574681471875256519803108806461483504073826317470243708710681999894952365026631255058082566274194495062084145562451657824912272387069675079806170945287311031385415833025512447288586007843814946954452883836020033982239573376952523426905222657074882246235871266495617561015075339801260661748036987865586409098390259309176456218017048903985827510273926431073975565625903060328335430328679387780212102281227754785398069850808772154550154789665969782820719810950994512965121737006969629473972997449892353273216655047379903860479407628357628785339590530803006308575804038571526295328849390572608134781681492535317603436972499106058786902548267451274926928047818278780422811446139207473591928305991964857097260122338949795217702554751938186761480820504776464312865238537528954122471751359504295656111758836965233379968035482595209298333528916965510571775625394191451212713870656685126054105815896471231304741705088589441655535480249203875454370862604979802622552569317568987461205167725861369139139725655663649090524543663107208203606188547087083273095274404600468912241992056125418835626041250115504820008538045494865711445183106142490357372079522936487393671236380660303025078381173554348620572491992768562356205771610864915278977805321852866575927686177979408552073190090669400268929739878684080355528128552874305798988242543398411563890204797232342003922757442600501235865944737904663207249614696108062837586153525307860765836562572685513545660015493745853900722764599989686264973196563742074378814229548413774674458094496107075426373407212716570280391204650765347142016739774829965234419882932347432232178883808244514082867825239717113911710645986853661033878460013578352970065890280700344623878146235360186866633269851896660421022372373434647457550584756206864110585059845645569598872483450794748066788683214424931320484441487485813833494487724635316278180320222992532360848648522200186400511053197125206536824103936380150548889662642713658658188760838823712138525633588356224650420271643383794555370820511810456122329395378148167579274059793062990768751572451265861793347838472997047275444348276829413718736064781837012268236552428600437220801699089478435237653275287861174953615949569439032455975140877850397009128528195632466921789197147015993607361484187085184898177772348325176664278332381430997823883024131870434009497052767750911135711641777931523260632223487058695069773688679032790795488714485924184601121569990067366017469957577333867970396635677608506020582323608133953392873520580156516274969912392810284655366386518494954067721898741374713441790632261961469169195361242118820145652285267420542611799203235359390108645070182094471927303039781523289927446620527142600489101857322334731840831798353001108778329258893095994865667106454495655716107955293789452968369564081859708611483940900569220356900486287094412848512831410618409504349959921269994678127506004108827613125778429547634104204472943070541600237251242973928984225569186202549433859085967267766750011147603573302260917269830534415631003164865374095345339704552561999926209088577980544009523448676070312778553285886277361590427738543541914538145949644863053738958950200839561975556797410943117913659243430475895624258208971470287941980804812602162561071590501029208645180910802737108516586668961773440253707301370022935739902087296927077645493689011414932416904423136913657756273262724443747889583564792973962510960980088939027750950289584552645661929238728284020845120023981619336623873501076044173026525958653029644220958662236936339632625382885608136365506353852566270623847067242190492660546537271019731315782643693752785790107975734174971519873955721100700052627397039330383245050893197113181945195292736126355579357824761727390973514817082201424691673736968724180165385902015048422220695721970790162680564334164693476812426833074857711664802319076639593632710472572511994580377244084616038439711982224835876124886488263294127243809848019304359713740023027667137502861073927119862048289878220185096128237588955568457179048050973281959502859847448693231102169039332812508283034986682866911791968824371273744930282173457542434182113581445939533802152144162124151152073277800054722764585780530318312794210472357932145273664952751024328484662431703494318216509455990466298472238906701222320494817832825046932250214444051445557190184665082871050880946933314308798957522193734462663669872900081189215833504180844509705912549986871054424388699643908064316931128061384941194914314792699958535930545511501273256592658484862346713445921627890543491023170182242011711991902664181297355075139111392917376926506556145789285633570702252376683029163992520073454497255669111902454516809992446593366572379889635386505101132877469907798066428610222368687549114639406800815715614541846260987268462097794214243906308308252862719001093830783609651349105913935093955867289508094476896589613933174260091742053400887508394805447484648030157226192579235232008417490567457436980918735701522455461738273745847410262408201049358261372556111139634286381881574342074462577679169320409834196998114760504959930257826102432472505112993120088269374852765246081655824823063321669974704215614666431934752538786399532056474487742538565811048873325386955227951794955561034080791095280403006397554654252595228493297867375521969959822419465767836658409238761232026003059153872949763083928323808702952264615932033656383916907067404607769511029086820597768907543421635500218842173414372508078880764432879451603433021875614773556799082639446910823778342970102090259749954693566970109890654230556224521868837991808294582811382742512797976895535179005948344542668375727733379145846445437018945626102940474277453933941183057317134280362038527660014403562189828073764644708009747262644169015557589196786722855102757103740154157182357784925785287096667897149064661196479083013822067100464646627971116632847075968175346275691501035415314101853053885385078304205666395433708198898416731593822384092902585426565210937105259513114484668509644686203947398466980104005276259426445099873564159866129195982950523039802261594221512336353885419742072246038625800367284824607470740495346016334763860956708372084156117076142187391615220100219718402779561596072134871898783951570525026751123038771384168449799619402227063161626030392916291000923638899266215433157611283753003208136930624927955798210259568171981524992567739489194549703848945434123140657775302336538593176944546128796780396563871184317590718815570250425496499794222108472050317818189455636960396893788189851243136308276566070673889684287112530354139476991353530225877351377889097072362208925492766845549663013742613207315530531162371142955587074195542071229020536952440909667317963788500597517910866921308648244146520337174883237393083861471474611976071673012795204018811331250955895892304221020008318931599574532900361241195961977974987883025230337807192037121503414320805623113164068112551238183427811358489045146370364113954535449757205680536878621433373113402116041410011628861183202938364954317277116385206869570943945482627841158155796203837632602290351510494030671910289435879232787236461239792162285832052693333931010948511136052052222489532640575567754908486599038002692206061979241056469436209511604437611342162637849774777621207289150105225400124900793679595307129740829335029870117302683134309158373110382579075844927073023997014997280276487299439160545545658547536518008574620721194656236535120567406496610104884494077454662776315016931567274523843386654334282663982945218976580850635170310916005665998462257063040297936938079981832276673005588128594129802923101422351071726277643265910549336072564335428924619124187542961048451335985315913157532658471296001360561697306756740665531992499139327919861643678180647473173822447327645627342669697298939658579254591334583728275359712488775346215983284002139225944528318015895925973205908357563544350842835271643636361961937623050146026512779514900966792922236926989996925065395526365912249752754547619326230819200851722175150597149165055747908507440474805056426058852044590219209801719289563945001131255553669663804310486166614488704689540015396339346377561679916598519117675006578414845437634339398745987010214418528324017398898623966842174750651031035496899840579024859800287850946979570212637866011101566402829748479781281614466015411087624773855166286590771582916014429615848675572112222521219838578569762751874731957295555393356074210843573196786045861625635536622216144668536913053164732928786770571368324271467513248882610184872792598540159682958075474686740061598415690694908938392175355105882300354886701254669069428815918740282738478052471760671928592158786278151729128722253366932871500585516806624029013071450599543315628746622679868574153771570299162308963247861190844195705722686380398834144946334644905241272086142899641916087138404862039552423929859360100200141711131084698723792050646639113266117837079394856420178699418464927453280070025759529373294732033368310993216835882335437541855160420218719148850787907825858953222046404237340100480590271573548526475587364506788020100808873108954634163266132580614400744694872242054157140599771578359758145086973805835909314724663115787665592888408495926539160183805543226297049055041588268025119481903765392642793564660575145667393394921425407951046338731178790004409787327025377134372906040857243855508361738965449061434616245694819338797263959175292335244857034872885638777959932617224621455626205112579174484702829389657092987165562281799314107091123351548163226596173469313432476045562741597598567753696952670934644145020861685953253575305658495831075561794847023105519244791891140367794681293143283624103253742959455724339944831392785815945276722126718796668897843197223280353481965999960223901977245215505249345028692843553402028629935453765859673984252971198478164608151281820710479086932011517717873011944105335007517774711042198671520956044700726030531550848037684088959545931934003482668979017981519669202522519307187797674695404795506455404433271024304483661020450162821970996137865615469403299367249494174740810104372273045878593282682884295043949089456942401139833496370610322560022321020967325624748873587911796583808104933284655017878341253600860149525849046146489704145792374889987254655088392181180102270672389387061165471098346921454921541485903758719315380725483194895993813476407877044061542128771013783198146419248508701130836768700737079769188833844254724779308126690041463302955286155546977452726106978905167742562497355409510480458550623352386750822786605158221987771007212494772076851986814351060622578251720185211300788188460360176259568913319256551358308734211600079060712892107847682216686645373417347292642287815584212680693171002959197482321651093774955677496228269242300615816864914846793581688626544430907404403942312198498140262286205149469527820837196397973658693636795696017282302506523340475269611946039859060174197764085457601857888999783707664377154047279824500314422156405985038027993678285496087077841863819731171392203995929527783408824826825068249550711732808228444481214820470128476349318361311961168229656625702851997705476272855505690970691369086283937203135954466323111214090897127707496294393561836358075760169472603710377415745097833955015931365031201050196011464904403889267888578564793199139551587156648190769738123205838341541657697990460309322913024678205096799742611170952974271550641337611188548406164888896287732188363315696720290828894919615838182441799555672035460806891857914703634981674652626159258510402310825254521478233140264091468016695653776994900034800429268184858641462378929141087470237174796713403759123931861860111038639962660902957101255693689812641310777863879045120063101225890526893893101366153507984850857631749806431410065155431782545065254102159607083828010144195795051484859276797046961436214631159091342320601408566171321009312893819559998192922567485031023054217708396969175114963877904182006232153846929993381570574345472026812976883301386921354578854888104401859503610051725159937726377913436668187305345853617090179597347933815025250323055848176698126943593962601940821868812704289109500496827360342436249908996583813619913159225539242466536148020042288374002742041641537014482599730371129757426498578752826329735058291741320201730882279430570607755750341368614474167202367363994849400171497459474661792915477086065274204432230539174822052848598291710855340401896487756954582224223415347692215634397580098749671660072452312823364860453474380956494561851838033884016125330072725001850130234163039010751962232997777582546514008545927967886701997582473324381516268822273614097747349209682158867213495588053532041059727021009121284090138718064391440484068665521986516901106197780816449696326642536068685355706743466060556821198306113553111698726492028221306450056300887612492877982147144333208490248809136079813067647916903262488810971749935617435434212124952725941292962604788726994785385917712055435063388184717934983238175427680425546966575770716052015409240293299228121453448827556876865416858441102105165194370686337639041035579967818268110476864765658938570961097637545399489026922900912120412095527775967098188498013516572315928532983967064058481904149045498559618608211707410211465150714795504270207609180707318249035911008810914394377428345452005406075916292167153053875158818847814499641440186526533966726288583370035750848669113289454504181796330423901203119302484107539916298296432959052977430120984204031234293339362667503903441888449576439725804869704453140805233149809645940279597910744532371330557791744114406119358585810683068812928145521863951930250059455529317313798318478307396840031422922326558356355571238194040552667706178258829974829776606892358757774349388053445809780817360859346927193717405162360383662918051226959381982046342687614767831873917015619361613671043917189923818551265118629617763050132923547649170824106203547357917727975361250011018166561090366779314863248550495162818786686758357518857673769260107826913687110400524843415495509489754999135223257227254397568456445394715607387898173814020352361104203793177652103678738573820428950662520897673078449526523411541332949480900375590705439657492299459101173729019268960938088961931459892460556333505128571603525124800724679669792525503661236931906903946283611166281086705038090274600640579746132981509477219678880319732270700302413636877632754393096598515970109395693962228347391626217123699482999014792089623208374446219002550373974697183077494555401459051449113867852121257691089020585180552262934868533578154920093364040609752893183541453363862637953552810802707615732229330354342944536272793929940330788305864682579503539083731535526464286816161407696440947030229595899715022263579305866050531038885030984311395824384208877114369460679458967351008535168817099936716677335051125022613353370917637628016255389992604063932241900755790786373011702479542551110439872508223871252181849257897491672525533629865879648128089229942712409338282047947544334224720416538265435640628521361229430355471762065019205395748447035405005665720348116045562555578843335183660074833851917113847072292865148969559934524568325817722293499954438109784462642210371125742676490417378373714766664748290107912226974391303401917234779426390148461223692875584802595961092939600439360686354540036044342600180873784425745930552298087490295266418744023167886497757984628729808832036190260596858695033750024453281016745320007239023791082358057692412799670772187514756254021719264565605009648104356635387706484124582254639506468122898159564712868040935967281353413221558061207698422991331054056554894735553082820907459483680147777635835154699991291176344659086166814117239089542800990383769042316524061704310356388076942949787930688069089450780046341852020528884062819379052162717946955140478423966751564759662593180026432081633191438226214661162057991257945327671480539730250910412511926309375136071827396566583008751108267064839774517325382964395829054817665061327588801600043547646048420755969798707215499441383756212207856750200024327653351874467821617511814322089694822137378028297164551153844184348137182925888863390087637973501579958625448419989169358549207529229485880943211858460120778204006552426570989901163548552227140362331756230065646552677492453555662076877364513106598079403046033369943856197246475779428086441217240134868773257886039103448104593257011082501748402788522071531580035840449166766138580283005208599965876695942592677234751664523043739745275474082137351514251984882793267279329744967943529353055487962057290209937938905798475855652366027110575119184926586257273016295149863646117685645591812006670220982747472702351135200224365319832520819603823469414571189649250815437228866274721807921904817849238268258901760422018228829550365196495975454229391938400462413913805359327795879752866463713338033760582407626069195095632159316357037434086914076512222899984379529371209489439896091937016327104261086633217593413234836491005001350439941910345541157454359536728588153060490622365113022340591674862878764046693564258307631356316785096240694053244264328904082978600415753087951163048643379738893352572265590610994971250205999222486685578460069755938887848478748968702837067755353831145196092353547450875728931963758698337587126908503931707706727934461197744447438277500698530232341008888695421997346415011595141465005857209470908701961197396994343693742070213028723458625136784616030958181680557561426253653435546024347794106144779599716406352251862394578329310974012924092983162976792817421077231474207758444948236332146417853562377092116571402677892421915398978069414120612641708509850212958155801079271611144029610447552886343486796015016109814723197644359387230562829292101913682428145694207027464925037526389307596252486939181908922523404649125954818396530637793710301017558894547175385701663435788042776323395367886537372313593679263734593299250075177060775326672439268882987509596628430364758403164668728527678683301733699763427527428198209734693708753365842614524314801977284321778608969270877318196318828657529956609760429715806529783137054975713775559539122480589563537174123192851427071763373124145881964554089835526400701944114899322241613174242173012536668704098323588336254993505437665760788657516110743059367993805465216210979984746298418632073580519396085031720258986433130867906653933420655740940855874711712424280193182684088329545652026955837987177463953635154341758274035643564777586991913377061885649347522090822334003210986666539546223630275384918070223781200800608460943671105648957180863754875514757673326542149519698340163459804108339198284718645706908883667670387260057005542888444578059564649892919302013481213237845060819074152021253856998293520617429930754133072038561393330703795353806292390261979935385770334288399748537069129489444393765531355352506138210371584293148342223248028510466490047685921700672061056208451450407840856975180516058202658547883077729087669411712581461577826013787398848833127890786950975334700766674460389202632031076001183233415103539384537177588735527256516683965717477140581513667291230913763724682710079662152275953690007946643654815332806675513405670686522319240571139389911431440166512283043983825283817632507635868451625639869297025096117580526334158586728725742502487427048554014113312732991710361760546806252849639219868160103291332543230045657733928451977165485525618893207492899201698125387443198382244850320940870031739350889371187884726347757126024530270477870462643973001780597069319350745084347685258531273016304094938082076786849198024775643183178741503562098288927736429745361844741716304541530269924918194154626266034278779734507544010679712229233936865557829640101855110682265778259747766300181498713461331094690894606833111107018458153112245166634538061835500945216887051224638825539453967628229467628901021015750976656726978118272239416965622416727045263894812650695235442082537592173177073634261785138011235479131973030111581677094580444841778631497562811566517659972500324605341129739607777144359988139833286698419837019328118416612223331465225276337592281791521497204272381397248443976380900364898362835194054797282104283312861027425550170932229863106933054870823122360003423207849325051959802357492902669034527247745066008154400443167900409099346394893338618623270380443433852148806025418619825654465664056745918956903366562144623250934944606840222439438613554029037784808133813936437888505399808839342560667141004811747964409118391981153224388563689292794320431754533771284012594435536366895878845131086029645538613691275913915543536010292719416964545729586332524960940457847631033696160163615919198153972060935882982272369152549161255727247991431099734753853015113719580898700895178544872068811546576317490733882183426760626502215308482984914358013422260011017948158794575180820908943983410272369957181716936255239276320924505823791541527818174024479445541385368698434981504061776425323541492844802657827510248999574357971383389859904977922179505677199870595782662236027064744182171450510957382105910207565163002427384262554063900467518081231467320614009113669535132463565019625613703287309484464488266399405974230118199378598940331455710521317452213741552990076870579566229080320218375031508319578583115437214338005795305360824169606721122676642517015510429416912987932278196718058282469112481056824180179039321768835575819111902536433265745090333701403363852492422000871349893677142096858893935345473933879352346195346280186765149107360298311372354038331696627045799153700246600624443585479575395125617695516787533931032927147861334704876319017250603162713158683276776332148305051398156717541593026309531651782642734603868740850278978047509723232668868135489368658214782119353073466707494178597618392093274568156538828215745357871431210050624847332185146002235614631936141679519375080043652405055482733659421337042864301898281163030301129405806313039623183309391322364576131908159545719511937894784669602240000927333064054108430793821697169462447566555599332503437020612706542922260664278553942108690497419215065615999013341506144948335315905908549246774649405302295889305775595567087713798947984058415159219650704751005708758763552549902233104092103715022766146702319237183871841233755448313847832257301553330369918957130325855707802542888787186699786827654352276492268061937323079879855717055876103772061383588445444815781936032029811985519595521458995207615587826673273745059875169870211111426510120768414668528545921981560464425413341076680076150189074507566010040283571718319789912133185467811482829096918646999523427550270006999137533987931113941010643914751818888897500153072539940782407950157818747569123408706251130052631385278757928577219052063018097825698696111367769689740529227156403811511981128856847488548026268767652392189906852144450055406100313923968555374296036673828721023760159124702458760120817168305090919136204245046968185008445670076245499322073098307954308276996270752700129666234862089864460156011501470731766687440008345383672490933934638221196404377476151666422722496045944753321507461785463934683894463086754128701882226169243621677086201772058150407747528893300208314701581208969386815990028339609260513025804222446201788669615882513929670254816676352399378466166996642008767084252643446250836486749162200451544768687556221696992042970374076427555675629616541095622259307548118941699940244888464406582852132639275712653587123328006587422673572483948344262592430032953097158696533761146492239432482187230232643657612420781831431684205636091547939286827084644059853000467683020960103077821285804091922333650788787178910018573455651637068606649667895357522620751617055597175563560339382268737293974024495238318119172988335739264051433983459971973139583985074258409725457640121734103591901878139974893674753721433769189279337104150866225661947729399297210254211435886500086606941265576605503426303998187095782484063034061031481309486018981533094877656433473291100139612143256558146326233880017563747062814329254625042367638739257859965961852159264229154940364665716778151899628685941782291944637022077411970604556588528912791305890222986630710698081068937906777089162238995834843618298516573104809033496610807675048761963400927151981932160182104613911638361528957886240177284149341195612165174947363914989827568891896579439227332686284388470839251545878669050225597132503710509726206267084923632400326003822820321584718937111719995571481920828583987629424855124527638483283648472597090114212876611599036343867127317593139492936652847334984143740098198026953131555169224471888695448362925920101891374443144779519771721494237989488794193968545413508111718191389209655187215051094548683557149327151010353663625215058753848687364582456355383035294451935033858570183383315481934557255050682551128936448173675039725627127013153263844672802260476596991768400049663788025368042169465406593839738437595064337983568285338631868882719670390741415734419939210087255027588361587784744715711869504445363767488432844383864565595636336074948891542567858996637216323521094922827388327327092163679035169815228018425720129847980437807816141464439460144091517211115415455263197608301471846877038027520272485043003938583955634741624446948465883833207030176926836632264801724700747648872446399428075495747597295908933175951617002568330291278005321744919617303194786099423890289756076410780863948272488741833360913248063189348573765472672132622856928796899221940813274126340735831905163092165245694724220415053380133731964862258195022166006761215688603466390831426398158214662498297452340413497376603096817480170259062656124000379486890704847460692723309987301218178804783314140372564294358495209648185335885547003094419768745929097880152653469192698293200545701248297190735472484826872654223813638465006670458542047397216185372657103861674745042701785877689262403086476907188469352135473368572789403311453136578507840618376272159801219557879439869205629839637394952347408197247088990817594362662584739796218304681678521132897530615655890559053733777285329733052396594384520864477993521400747782250939682206953295184234008265521108554200374122791007915452337545156030762316829044022834743754924317381255775403440765300209406135054970647110964507655221905969928416834249956172758901987208494088577120137578081732183877878423051655843292407361174070064524570311148877847838278633806352724535739524721876294039483566680933561178155909730838160505955054371608949738431059428438621395941722195915348172222036538427917086558298801379548697836440785503622621402542989093125422169065085232816005807911114371899201118397106251008762513387694885644260046580973770076705098343474388335932929955192460709540471229683946166384949798509832907695662900745651884043557262660889687144779046220905186443419088464349811620749718538697402323935869027009500231715230236586018112693418271669183541067692482441583607080323828076455849098903891792082124802221203692142128451331650406965318392024042797482504477407786087627725669206224955373719990647846372819531766144413224271602196519078024928644586210251991388039992761401616836153921911820505169996919521394000591070547513723697809425078001436008948342543903514082473453403635451337118885018995885599408536116517659395249827145657168850326445033937217639688576179722941380563057348800729408634915327770117713125733331736934946719592896760647398093158496826868363426921631135009452786713345935075465877616505693890108708581424557254270976457895937477739625559445177220874891521667059727530109775072364662992962241357030395025659112440665431925624410907181409410908198674339796846240928348183071584155109224383738442060262878865580950127880041023281880473346928814015054022569634521200787136271130958771992748281319589670985421186934791958471332754717765914683428707253890360017170777013289915307744736748804674651612471643887426513831274491131253527457390497692632500440264942912556719049726506332569603910535616956831386895754259645449441501976673985769878078990874816482387964942227123748345559360492207044233587258317393682402415319052481009611847676901514258926945519569682200242401485308314768765757354611098849198411461708404247632902298329106307005550736930841579196915163396282187360686439761171249345154580250879698446789785655170797406850404472013130870697607926155870972025185183332315594359169078444171920776479454011339320335767401336129957058389952264888167853173121003966365975822082319346906899107039874478964607337478387696100415731479340581737265985020834267262260900430482255391773590079983764410548728158085059750797649873289432664342530268284240917237095474830092103438958092015313312994195919223765662709719036881612805816508978390648144238403775693136251639679117363913157025437511532617083644722821681069327279663715852006809593961733606104923880964261299665788803200934770388228243175605170875590568677171778598288782212503975856861461487432827954132195413631221433292119633646523762042247373419815665300939121229112857034121703718458848315251946090919945551114287430840431064067578338769379362425405925791373063794725355056775261310818720197574523731476262267225912847059042304732588904236897824369414358767702273380318527665251771072852174467224738804894480674373312545058103079410106660867242267428304904606346726140180697076431017016342284765060379188357608450263905886971544274349287092822098483911719986848170162643300714719101018218181112252665039456333592401953566742101146084011246080738793885999572680817538124317460915865441012113011030331760815569442318952464405551106248273082622317519440097890869211746430603540984355814430001454320139607432556723163189462425333394278637028965266509824760567293395195830235905997285113331493836262807028204758849209412545637789049132710445980756441553400775838925675893592201353530198832225555427098832155634268647536040457657875477502428070662606588701497629807362986925019299749276259998531290468466715261303187228714435335285187874053263471208873391431159205054683582271786838461788424264564839542693192225112928182763117437368040043163383154261220735009601580300916291768699715923970639941936387168752643772026742583006380258508339612574198131000131146581569913852889212729783814252135245343894218615119863745262380553063092487779943436001328483207294094124096478233108772252865362031105713437378392758020402403436572340567045270883128300899755996992485621609785074644933696324648611482718445492989235794946979206735699881803917970046354486429497320157279739262110450239800080356982458068848431683059939795431100637575802721944411984860184037230423832409510309228720913451915828392722353831634066271151413068133232371365745323144787023950601842909345563547364788223867342532948370015956058858944793884590420957721302171563021660955399488211714892183278152341519551375961343881988210264937092306266518314098268352333251527683856577520683957736399603151328599005411176910588813625342070418552374922521319289419620105329375217483303941065111980960490413154408307863702894363465765737436106965716303041961260487321785361776190979206477278232668920891720460837803106042570355071524133671738264069213418385481542678910926048929770529497633762627108385376728599590747813897921668057559610835679629205125211903550032842421620430589924377596519403586730533870215326377357040138348708167427280240966337479101809304957135870374299083123981490003457006402495624866875896098665577148401417655594022591189683136321572454861678050468951660559177976101357423687689499764098350774500257666367789598358973145381959147039135356767651253713810153116827878043595638619353660233016926221500898284463050090527619278598066461604261251856527560900723428838809284301892964605493736670447632147746546577159362388798272991717476889017558852783350792954229916867612179092290046000163793800268619962035578699067199115338707520505986484018027103693452768447354869369272606418573665708974073041796714074466081633221172874290086946143739236611832670070857171335229209639870179248524679980558810573222573437274053464278926398758341066868852368172066038405610205076393566383588653219543530900361306849229617554798644553921666036309640864496879846744069242845521227865470066841542400864233090088595844894967950782460407328973705496920977700382246012820462013527812840015851340792068855432470702153684750278893498740976775838763245332971318067396003304703820046857567957195088691769831906745636691616934259601248928722435478480484192199500126593338497206701731238079523054407429249650970014528738723365412360598820333606455987045663094776382105309387484848759392248534785071032552565328253105643248044351403108243931446143749380479758054727045556476985582605032277791791319221522561706169122323961731981684165314055255067097264741822914784254639063035293912113139156528685824420177810330028391318359196363743081940263111335894488138004486995615559663513639738421941973657650183989458924748793868491566443682499783614563100569399641902402699346490228775739114440608187546455580696865642688607636549042049481789654286721459088417771517550614968280357829900777122601118743759513019997409461131024511232052152043684408007602748150859964575690772335893797095253609185630636105791226362845236129390585436030460486252989829406634882720302806444777619622480123617804433233754192115375481793012535523116994348436667980077454288552544785199808498177217202181028316019396895283037245994282184321057028134199867797113516492773201363656521283919019289148244340062919745776497571404023183716465850177310762948183603862602888601019639133907098312631206045067436824243697416846252386463043589509028889897992893815422611657455123619446467995815456465134690662250905410411316019701114896453121734952940575643661960081058295834314818694424678640256551236085747893901925743946443951889231306534991674289731842316452055821103960779057473261456336163858548009043294218104330631925066407655776699255777326305832574061658631475305297228671990719867384653569684692751427496467908638841989067253210999249824914527609964934129714357212153558306987203545536992451726852439116362488406445214575234258375992300544062345348391858009607494623416064288789779837675659445426854582949927108893955786232793915421941188431534321677062666735008960536326360470185400577543690606533175182937171881472911199722844888456512061019120396576413535683809268365484172745790176141032062949664660267622446739606253922104186304319103807330385848144142423767997089358143511390031897502642314171758641637580498266071792485095741661720047360052462798289156812950893527141586223006819071711158541569208268386453319361795426090493743577046848667022391437479930821546219504830719190395913639229957275319916779137900118166502421372664524632873875280758653995338482113729016570660437864591950590493448531652870154620957493398697753585569890267003965947169861907391181496019741694085831524552167420832889781550429235612892519818971836784061275169062754363703606325737243419420171481950001600778059387233014244893895554678451831635501746677739830216130089870286636597668703060591603690514007829595591416763404167101049844554502676756314427469544838970040357312990195644072048223185756744801694806148746579806171126786812426454674937094068176602068921573633755410237894381045369476909281737269386671534925924781772025302590137429672660957795513413706934108763917073500297091897073126551758008859795844048128520851730469443078557423106504098034530721491919986128457744136766523448439052778375299114782690032245946931516017929439566598386265855867552610555073096722060104008640002194412647457268005700279377938384588971434248218780871010875208519660028360854560281936789843503757256648624601430489196302691232085486804105083773256083908090777771754063433315970486991277214227534813449288823608309311401007923488586924361360955211988635917743478459724324469581235919261059581246027252085643411716555806172442037684416354551483645969430715464375797044645901506522711652888099621412863802936207251606628167793074906550904992389861964724239974725560677952396956276878988578814089528025599368421816115110413479105675811214515173139178718033036918686818162832561302711958181679326369949353739349722620158875589530972641713583587459378572099463536903159984588498283818861890896595575907555166078049689149462589381288498812266983663107193462728362864263492928859488681825066381894101547139179164773867943856027604663966630393293189972949251196849361088944021126146934386532419835770924855635090930885483949739233059135583611633438730850162253018841577792522626245334154164093403863223485283459549165189284799106135470690302051249863941396086344804889052219838593195823723037572613248148057649374962781231685855249700589799374542634763890133373515250220868910234703070668672164241827491018591583535255702504207741435621624538588863553442388645864909599787728836177379086966511854694100539975531729797635352986089494845197067103688678028796933265459423208890330937049197350987269468086220986310991446641172417382325484938566175420951794969838139858078652816854867739235085191341175696635980318911571538398608262146969892780526998938953438172288422857852629729601283094039003994452378920637221829231846724117866610697601766578745890768755533434865898980239861618091260292037402365276356349577133666229553612163888999509203800366885752820630269379967217429335021197297879047781776863527417531142072348526567174751030941054581275463750598741894400904212988199572660030781601600191840919413813631547637736565238536124353281596384242007222702733158287161399326053609786239806738514364256333870002604402169890749750539432721622580144223522278219375453381681563072538616833760992424913183541810156154624996120109721701569389092199050242438243619108416254966298258626802600514546147607500070674631330882491161966877012456527239966986357847093046959045046906979970976631411303518582308861525091102318166486478770305358814081725205095230769114251031107582418022116558989327170293007708619435748530910572545489800548818480942957088084281656349472428470121734432581995700449309738314910880319756699027385285636443328225600795620891252499851088793669100049444423636105762083313203041700198982442963338962511942927535464412761914505658860062120546528391981777717026132418911084066495955335445266204341302620431335809282081184318210653008010851443774637837445854402308156764663929687231683263295016832440432086168132454269834851044233998717221279404958642700447667250935356240665583990126228874164252208508961991921054913790455650747870913753171520272349742975104624238863719512518127946293475462517748892582893670237481545264268529529345561624207931628090725978521816947376203265975284307262759958645506709934800442865841059164585631160450064074671423296164647364695651107158768406792206652356562988651011643490644337720311686162220638071883577894156201078964042920362052117425451884466543577350745236358636526587094875005168150643149413617903315887391366462602273229946689811985978641608082793984665058864528945380719516878702058366501002973645159062182819515663988179054943916901228281564375896972041255458917754708027939263823585342861961256305997224184539202855754972186819001277554650361933613424919425156560948890408904331013987546014148410403729726741226135494238451321275147858239744202216016638329023950776630673519958276475475479774646064088615625680135658102827750454151181620956731747508490617548525008281311217956444638008981215947385501721664157938207562579199853011470142544231830735763053869902310742758079289480643773889184836735738747411849466169382748544712431521693022024250344566293116415181450521383808450623351642145396914887570847679293840014193307878760641798553039626732604094044685732117610574084294995817790143936890283467585177942191956977675769592222808117083470245977514296092546136002925924814477266383523154215889307992607562956445772846873165092303677980339887824861663896092088997802138899393607107156285633409296795857545911684364251877250776116981332245123544729760475867763490830000851716587880155010308443848413480924570265613471882408455303246177672806004657254875348752207827723807522615949482024862077042439417089574528209433654163017335666750246473720228024034304623823745500318423706884092520290126459885438592062736076610895432635352034618597668491807471936156151265216427442777310425475674711575797596301993526661167038846327840004727691951924837179826611958791352950139673881853648109607857806930681451716955126274322448263976902283595522018223725205230170862749073954920192732339101242496687870885448706484149607250028422289070001645558065838717850495106596603736547265519684207256298742245163261352636908442484145730813549158120355507297926623569289832828997984167097945825715507324356134873663295188913855942575673910883319458885123063649014329002200864229803577234863066490002428674077081165219187411117847215323977733844608483676066219208550488751630571250274788386592545443674484663132033960744886723050126129055995796539245805489888142491632593249872203631296159390063058206119600686536421056917422174183235720089768045566259069279835174229268141980542805953165912445530869120397813024970000188663994269139889949408540314934092852129671418450568654041273738885112650519871896926793525926402340803491952181459318339960077539042662814020662261484324363313352599897985816771442170615484306627798318440956582635105128812042623829135727605936977644378470788247532947609133850039415043955121783108356890399943520546775984997419252155737516776937407857022512759073632960094629055725967921346865659003463222718083974392834783576582789525333537823765686602814746199656461281180282056491966893395572320079788721607877785164694794497849714985882472141184747552030059677487525501767413861299260781867409555948779724728437299997046605170002149294954917071890729012100331481279212327511856671632865522656590910831494350459914227731607060564383910843524964540049694553829545667145727067006073981947764618947511041616987097132005110948083977528226005000346813436979051870717723351234519623031737879140424738162105422316695773874699640527154604842885699698881871255166608723444785728758168087985232686303591493522110325699674748789830861556745049626870657443993107333154900417691580032541829113968176684070435502980190557594538233548919826219353787655078757116279125534872783154152207548380535771043655580681053356688582357829712151272492226239658700514957413440758628725013169317282065080361992492530846853528272037775798597916550581626293496793693467451941289404579998854801508126546651123970257155189935571439864093689491804721734922964306937028997349033001648518399035085871464433369743805989581415810685392124012566808339533015959458999765608435509899111749999464975156779566580533114428298464700487218847159247080672140901515362397729759765327324902512025706590417987922946638017459283040352634490047417066659372610312979652406105744069963772356466670020305678911422591615964169147021098875582132631165456106181166030145019440914320249585227367584476957784663931412092233848678780707958030304044059336712933083768439585292233521504104679017303030089664404408156511837865077713524549469201873644688351315034625638839999681277848214141050746726660911564362600457614120258338590378182069229567871995851447407870044611181460243709698810939216782454646647057737090270975173282638370128143110398333756689277514508963296669337084761175756698878745143951276144052015011138884680332580934094280181637333880885371960033474722228409128555401532878854024298191155341164614257755285094623282305454009992036879406109981566238784399305996034948302239034507411455895074212212891329912629249832913435896249552077512799496405108116170715410066242434191334940425650019126090565297933300168168887281402158458639633448130825693457922993867123087228355347565029505044078346388326310112533131819795604828865702441549028152127703360125959743621640214711904692778231108795056748065222315076932695246029430005660966677769869516863744035537462039930142471331776112634137602050085433246555166684287279877972660736785667320020826147727245263009883533275458857119442119481827182162002732948101566545776674112014100009014216330321690366957411853741830122695326639448823507862425230585540571671582917169152046232067318546405298916114900450315806061406359515501305965979807721161621750773827614705095001657331992128338247854320186887667975139822649676864858040587969336270815047336456195020872202389959438907639286230213016778252648913287239989514441115832607470210140869952028649489760871780069856391946106650561172165901756303073096501011522837180265109228670702883846119754062239318589772846402545860415507670769453723150562203529795716640703317206250407791471700504823656666098189320427180681007587406811653218982148421167138542476338440979558360157737461456051335159183822197028416062758915751414174269469607727522523997740977768223368618794451033446546811007515669494426456342822764371302228766340825400676645895974639448894589232646022044864107153814162439115165692513291792587998249453387267304676808505860240318183259645608375266509545618098170341953830393268652129572521417340612200613510129893131153415009449936514653044620405556507614138782523385837149863996316272013011747657032187467210433494999153213653409778080618690755417979763529995031567231048932413226820143185815947604637887215965084895696869007676700305625382162647230723952501829903676103566748713078920847838176203249018238087540639241782619375684325454790519900467427157099655575147637378742874465108620491821581365791539112163818058346824473963795301054356319040430554239192318299366253659921477620260534695118523198410086172183756858071817607826595309384009145061603744684829216137981839827984377086498203198559882106615712963257674968009363885219588561835228104998116229756141019076364607700013944151080762655465221514263017233358919287986981142419524882920133576873123002473838658282072005020169421238715874494131040044727796461054096296660839731649202582123032468781502223665864111218656476702376217923388980550690450658114709576411893893945616639474628133781678078265791918962711204126864055174158158325492786075277970260337842051025657319815942655736680540864380407556037208528129795172446796560495333354257898353152392285222193706291719709790831559463639136594904498393687594822685981688021507035096135338206953282685904235390870907073902093638942442497080541049513528506383870445236570166769749062022113447876124585913462417350770296370479049827775434307593282642792175977425997714458130829198260451134975933171767415771626414255543889774365997119353239369800310455754475980032719047554590964102995582444777195129794343932457654469888619363553785822985763304129926490562646909082938907445136378387297512364461785817468932591475235625059877364004521480469105225198891605312300576455342178468269989464532224146527143101258805948096775612200993828580164279467410605018201731340334849733224365729229401615245364486807306809811757830329210010874350417773755681208573479043237794762513146348081598897443705572088306502360012224337200809324436620229375525587346610152609259812658351228359426426588274066880010884804500042998621206308943959549479483496072650705252812028671594608842688686317047737790589456137194797484280285960320849511495286036921130852991030197134225009784961003264377355788907010147122964717928002883026481447065377502592624057787377078929056224873528241714162159956752250597503500078476519885432877636019930437569781663530723788147178279485786327117539153544696992092793114311872455988612218838245660271614091689049486356615455625397594224633039281608871578019488072192696141653071958216903355497475708722868802426224366331738458472766690963450715327881490908455504330875320538136849570444075157821182305469408689665980797265880285009783849089712919724605520673568851205697039488545800253549250782785648122111267733250367055286191975955927429753442937146444605435475245346332053090339552526059908492379296293869601852130596592231116932975215079714467505870989036426457817597468638480176072557640682354651592566938756394702787733458272524260416354600331336143739730266989267966124162247724650633111045201588005424972024451801426657409483366674117588300954106859303819300288031039269660754636513755893225794786787161664641889890567231296684989999170683352304108243916208443277519979169612708518542620712669429586545395144041085294328687745889446910830282891550036702111230404079478153898087088425478891307286707275236011051637327091568826431262734794898238633034760808100879075517490990990870992270022549017276759410258510966259707066067187081094853529007703153230596720672154773787270440209571246876906064790475657248135258554690809187382083873723520577909096118613559257714471180745581307636496332820066905530299799507441517463980649006213278016364873424473493699068539739113700429855112531978619590258938012567696855249995466032230993421838499980232756268364238033606302861012766005677270102367087115910042693263500731089217365298464185376031257476069704820871832367036886007783047686482084462548230256790439307617703789480915173111630973205855168229222314055174946359809645331895237244429871781312277446945044724103511931186811856922405402172399473513215896667476771043794182130858236983397894338667020005645757030948096689493947283315224760034277250639391766028816093651602596516803618256633083363766359994806903613794361362236643203795407388132516760947627526037058275438670446386335434732904545211204314264911371685049519047017454716641913038250282420589630736163938728101843801992699071957371847981001574112315435773658950516131514857344701488342014172809392285469175662157823164243181179785954186862897258680456213881903719458224449855583663536395755313341974513211323767945030433129056430060113699140405494686017095951914571517973220728120246785245551835674353391032347953006413957105810037169859376278814196801690776329646838339512886423512748882237547692843094286858248775717498143755408149449057681377064031569785828845719275272782735062564711073046563177163933617237473666923887551115750027285732304634007164667414441568577534330296942095000822667476452828808428220359730604687227540975343587920475574301885815348253157843411413553247146898028585635733921518711365393147079377689838613410728510875590794841708864796854876235545821199784961908784657126029444781313756044774078298421471933668384398454387575366382355730846564507733494691710784104728820443736759957423700805445318039815356486224965135704890412474689130277258914588399003761872500155676996905391999368675003366821272986335103187237316021824497363269186773257492042327967017968145518348709661132104272987611006364141616886696543118471830403724389284209130811998016913722826260727749676193929613677468886183764631731359671943202027945398941585649412426118736573268706258307655380260273084201100847871012995582586224483213329844848572454529123058165214975018134504272008594849326378453718153675888116920864529013383316930316453995216594065997939454738411410280124270304902034670531153769972967223888776912958728496212142140621857604674323490940857060848981119423900403166268641034756357589681563582884424686802823072055300054942356390218419992716943352631933056792577923992809650016349965602184525070540020297260649644867744958554598427431139357895613685609424657426016159704560799371263367476040539379818134244771558459422018044881964222594239698137362046652111003599516345519079536250306102381847697595850089473861864580525784880581613401760034982643327470738899293882721347597798422625583297280184966338785667214910941393809715105691803075051632843828658215836263259530508488088257762208907409504865712032946242762722859802588157491041062094300444996887632328701574600463257373098471124224972190212002082262102029669341402167710475467240419403760167911356629367235961977706711247351094473134710880846468511277391493004459105286281739301553430470595074302079306680009515315568980807944541002374980686238871116533157971089892686653074178753782804563042275699866318279361776468376556483949614174330038402730038590553713622416099219166755016077305363593199992535321514028327805875979529876206502525889349413544336489360535874108781485503747404367820029496193989912808827393873566386644391109175029744337768233426968673907794250020920586507116351071474338480266780321349530119638332777041290148223657787128296966810754861524602886422273334997651153626981757273864673333629907507640718432063949536743512146693077570901424329441808501056076445215561102094139314277625287920555848005665031742502665681803802500120944858394641460275362503526409860489257646876618477501843467282484391816398167352274730619578695058683661970500964880117391317600504811189826649422566587569830732111791934557923733077087772677222400753779328375852027052571588712520541498726826192278256785829003066025221867427751492452728437979115542299181225380570921554215877235714275430549125179379582004627644184621788932730628819306103481658121786413469161012038507137539144877304428614768466076895605020677496500132573421960333883036542421093498462656295040118525587932805513697892014518019916073749688193755380307509751926980752235962436085378678519806038347061976235659648596501858123899346540546128854219191006656840353487090329450764873606929232316183683975572306746821994484673947127957933571617218960752318114563888904779845547273699934707515541968221592910979330546768990832642177513629702990194686762953807297433400146021746347650756508531011599480201132237695460495165749826776694693940769155675144021310232890449981453462578283332793362113054896726466686787395045322237196765883467941953605498172358483021103944764150144685815821842543389194922374670722657523027623380904350232061000919588128129567932230988646405902572625474096511447694942839532674416616423404072226556356816007842397041899703881206043341684924824456474965754049528032752788851305626829453510456961977351468562781103496008232346648367715395693353308265569444895337632176200436541742551507239263180528948941904502358826960766512547117237978244243959089482237701811739950465905127746197196371871187911752466075461999390647239873930396944299363728907776771643546784218426548705675545054051352573080084760206892846070847270046623659971409244219188065016738529764563471255424901158926721520366842563519273673264476513243243231724779918005602457111662883134955854584475729596832517569118491397478959150715833118846046524326914970386071146893869033594371056326438251590306305392028687452134887125847719236197578552299264916901744940870511585266703811640351183413716530447642396993758914557982043102591100287862412338598067549093967343671415936957834323548039021951501196063465705147952325947833333327439594103091407302797849362212088779017617351907637208425042522222815176093254707729307973711487551737799136761239186529925429807490491638405304842989402103350224824280897830374286979622214190546754697240213567869907255090968965191691693229527943888972657437901890276377352768280578329322423571279528427908858600317594580401355497765771229025328348156898067612380928297449951410081189990811337193081860821641692638459770091757029298911086417649192394105899756252564486254910204106335098128358494319769738607633900186514082052452642829841123978830734886977952819893107226447048967059921404336679371864018524289513522586310475075572795248361118743987913906116959349960531918079314659062830246126233863189412422969359149390546065563386739339914912932532154272860074337269919532458784942201893936504750078070405237332245225899779926134384216450901339197481205237852686386349695491318940295741288589439692138645549806013534532059610829272028825788705325614186358386181375063957703461462319352416270703178406992800994686313659044825534222418729054005496530718832416274467142271358656454903281155145071499840993242840531967308741247427244721707657201234115778826589744372697721972826460708081285318188806960969681187894678088960182197364329491078777118918922078522417339564271406228094354013575075510081516801318971959052352701017119025532620238708516840811367405781062493361881193811939291189853904064404050579573424136085029534174980573863615209102648123451065456314525626482134222479206756816707235516046824135180433364649201688499531559572904682250295124610693051499412656557352434404068267450002682074846544310094333283281448338617931931016758024603085259516841579748299867590451970530052317675543511132849794450440491878643742688014157220476569130569587098734794755944692025554701581001828751417354269146036790842895877178226336824498760076569161250643833792505304302437300178913744856253310974997830336781621497173002799495937445868800133273721509721138359596969722856618964320235237731427263165143050424006169764998756230284669777507046387021658709366911830490482061955571521404875077158867766143089141992962763998245595458878566506170089612418903841126962220414863924749845562717054265013667904291436772433831435169307762386194593323671372395722278246851729184753172628235419645443129247913345566334848733788697575913891295615463293544183204427362304884221854716703581409085914335572375912184115413376650582198542910792050865982692465646695989635032661902632725139226400212103530531046032135808535570790834620844792497288660071942267045779852296531842585340894372167088166236002781198757588538333397553723796893802276348717975692115823742813184233046601228038456828248110304497777924142861937198968833749706930499771326621772397712560801080064684988272669880009167148756799996141946282472029169960404370349205303355659635814338994256816527920721238713558037175471354101977390007297400442025578372944002110073654386944012713263174753274311824324994136701869470935196934562133130341227415231223114151496071651200709865918065227299082606285904940446167340615586543703258037898460532465016787290730889105101923245124649990103450394565530745968935300635709065620390174014830394964971580037226618132007530591873377205651194253329222664632173584089136642482656358085809685971100511750652143995917466069158478050649864958963589836453659153057652335210024598824157761859463892600865383004122294134550646226773815052796373154952778868105129657236520403671815322436935862312805680644569834222449790647910183418599104376593887036501908155201993204493341549656322455990243333419298116208102030106081932836685711691895712233418999800725683487883390315177616222548862420432690272512711549210780007578982912618740401160899546475167711010357144845740405699714023144028137082247292294410074101048530509113882409880417616357542807086682984210902546530163329146474704804052590592294831228041057336258556228566241214861348268238613992980866585675912762780504914519264593933537192309319838298219692307302863085098389136914141132211463584176634346498360525135098714782046160777721156632846005497838739836131300817516540912302518417245416791299570583275656951931281600258444382395703543029876705238864589852608607489440064677994034303374157492163457640193044143995529002282949482601448777287455828961762672932903044587223668479433308575462313735018714995797335547582399100290601948358929793963618884736865259308179717815844106501151980997830833085131365859637529103868723962227233923717216170895613019609245732718971058476151957826247200047093738255167186630390048390985124101258454220313575601088607091335785703294780690944572255822088613910669522253640056436426491335758765601800275433991386820331021693343388270256062588975136763298271460259158235188288475363420373296887217036951810645746640394776411758076962938631666744483234833092255269610059968642625487574362767754703718882133957544609867123697246433082826601592881560876376042005434735388059476141600786964569235463596241637546541209006846303838398033513068146065684077019836373872289904593821661950505164763481236012133357683773548957604872874612959341663437452120817745865934886666048832465817963197334536384963106694858764894586487773416744769497639427913942549098388461938007295220620405785925733338474283977814684186579400224807758597963941164187320147983687228223433298689809150177058387929420033277918041452461425402546292119445751174317497169592628724998334467221130752049870266708738537943012525384088294917489030904508388459578834601862774707500220115158232047391451101228341637473396326916983287833607818847627304366376878061357502186648078557624136907132126008728224652574193912731087986468723965898999718322197093537127768929645551430794620545253084624232108165694451255088794522980080079798899045359151385400248507521440510344142200657173221738841036411570700860333086936400590977695377868856176611259772075238693306440076294815598979243858250341546292956073456202354390481792461883150866048832334211750697724246784185366147150537286554299607213899704058878346874021131344816158624029122949154329413952950487776609768757228044344716448667995179950657174724912371182620607557012144265198688015866094732132242576597437196841737265714271321777037280001897986601459108456780115236956541710977828806796129190142515544523820176059224273069500082163150502315214876621440144154902240725581761668749628040774496799639081252984125105928384488880796045507122553656332361348580364272252706421528454405000946252490572911425014092829062943467805898824056095825787218292962346251225314343218651695742970788443289148359333467041853308911644111489041069849269083313737007810823156427319423971706177314040816233515514381995171530703452764229195156122158546899325059316000533612079370279404241848423142910924880784750235591461085576375891372364936773329440778235267463022572845176976448046421486756228500848185923832478368703936076538180191109963329075950656225023285873056501809564225807617908792709344972672880992410206567558562778737921634031763476477173130812297156161319637353615262412975644551525297724410579447338415784062855139984814917400660604569566606789379327240824350318744152398140360147985492606046900953752330515562532406269284019917813957913781696176762353285060457264434147952203197344005602583110560056299916564391515595497105323763366651097703971578962024969190349155272138648350650814604142156909935319702974027285269872767738879175548781548804177383194714999550175948951573908467329799186900805468222296286168793971989941127397512814669898128409373298144304976783209419926765975227264308803276356728219670868891694255483718607747992906999072957053249782783782640500821624160839361683496440980873940873657957529063948057854650985919437827871833995893292664188322800399745385142627578202116583209861053844583177230328398145754858677981143990982874499443876759931081076532092661172146607360884850427917054005871342521771206581478067457532383577423401225106535308042006069226654335152066053159243299596348824044148229394598573533832476843273309582398961700049826377841010409544184146518499043870319151096840572818509571243912260934799892654407361960759957645754333855549152259355712135939572812295725683489126982794727224638221105589944992079010444000330445557665191777223451554859535551939322892826625651545833549553751544723124926260504282689668088835249500424117491860799489062343177872546971224295726647545654139608467959833104056610719801526932492742915042328619320457195258389457684624507138362169169280078440213954357363213082558104161852941351738942601795644014185506205104044177518868315506382697686977735053974225924000558728918543370608002032499733742289013487014508434453375091174031745038229268156875599951042065842098233726505668424568872652046818621568726158616395809814660087891607681167419790828151363067523262440918439712483862870110914104266332568707711052520809759822473112417097629191143965991584786489043168126432045988817989573955717268803419245550838513815918406614036918066044695927463105281101075360405692922299751016606131268446976981629658199422736913214503295800730237567180209098827977016623223237443246814833972455888051029349981464550740683484144232055283442182849005551264878646476060533489961052743284659330188254765126170479970831924311819519046771573235406598568353326551116242103814406709641404025066206053579300505251169074011243065144517146507228612727700584552317660670977673830816545056563697853538196432216074318523348726442909120275490125143558935973410654517715111448211670912727364392227745743329962457666985338222906342293530489053630173076604826437600613697773088710072192031900309797733784893694515347499792292685387082885947135933641226203365650821818903315407087220595049371821907877939888736730394920333946071340599273027689826656793240935767654216388150879892006854530082663826503396160342965139479458799758284868317618838041178926028567643402160027620365353486445280415291616683123695627589660648502945225333937715447907402112296209491972802287958164690198704571933055486079649440021706948587380309374654667231751192476064577428710200876080942483341096657714920643808442729420710663477384286126747429526188209142854897350269696874714366225015817909732197475954804829621965899804681768841180695319417518727890002544955373304778656919703475712554040390903489593434634060495228920947234089755220731753466223802120123885409250856774278015171485807739896148454936351977606935011423248421755340416531884928361428683435289377600747944319170516801218757217201965822710834054419849645000227610268957791039891424855987805768657385175874194488309643823178602133009022451399779504421709474958077528833251877228758420114353222515100536279169646815756216285222071841916161980866233062132773386361630517938639798505467570535625445405049452507302495188015230421792336818353991361181814456485317874768723946659295056067673203328519115901576555481182203097674667269690247421547558530438032564361855162845432421966377987594752187435086775361549330773600829052948600902053886282355003015790684669735422190358637301680092037571853842539307810072860825250881744404728812673479918278790206669600943658035041145358472053362310726341777628889198927949522866925015205274257000965857110038839101343643873362243766802479929141057561005795293984484698214388192399951930250458162968626298554156621564592543887293002638695074959751202356922400133218604724697146403771412077129278817974805427875686710797024678656833123666262266805785307282220181583487128951178956751664300930382405801064160027353937535618382084005039516675346676580501247682615598223858766704680211797783006795038545531439501395072569383861079368957963048158200426988603564271591984413513542448937160578532893466515856540073480533456988447276521239632349736347377106210840763318955283978914309305505945806489633427835409915796488550691468610818038434100279545822078706518504888133833045034174457928211931444313971876396231037554734379766101302393975826124018863058938676600973852235532897456665220484032494652450139204866951243950630274852595577082532079172765916027868351896880659566407917876201942092439455815294747335974071751236180625592795490823475586690869831528558773672755266463489494295283305723819029779319923394106934338675993562050188621019533523203488742474685690904479098964355650648798109513878988289737367056160942118576136113943446027135369551680267838270178421227273513405937782604122084914691710268671481872805508786194281033232401953304854214962921498724252236900794938651267591030604473497666189327617619985624160476745429175739922968176667728680787965650600614702775092511589127212054950426737399930730019391982748690848880312798882505046166185886044559243747833891111560523389562266320823011058587213208914513122081783016274103314588026066705339750114805667902262669239724663155053286897104433902894908746856786690605663248008128219683725622396749886764059299810429419941526125592259127028445626521793696396581963587283630266024703248731380646747267902653126454571622465482523269833180202497575110641110422354516028561432252866593141323806793116731437100580168546927055807952220903373506692470232164687220908230877235464036878488464710050206229510510420740176502974213622927069347114316310260999228030251728641270975047174036063925995119374846471841349674094597692461051625630632360857279739122428969478453796738002262688770691288164091311213175653130045248095021205911652654396364644528459263491573838027472008902447737277751713074299805904804984472419679428779135886189182298664991023816341261967331846920719459530102899507289704516182231148287777181677458838656264468128942698403143577215907427455607968824588524044318963618415559946534273591059853843886854575940708403378174814589380283665772650556908971905053638128939169548170712120458686558801279653236037106806142055696166068210104395910040195629066131655641603389770378372201402823002290918661595965816754195668572945970681196505073361695605705233303266718156204641056402889175783085997788923405548506379270669236694104095949443640293586408078280775879254318810284320076611894540667463899527074212404076742448842166124906763699185296476187321288118473845331064726509692447310871058807074658684866878505538265884746297687633377483237079626201328709877989590758644726966762086570144689780664270684488418358138690041473571000898482224447449436138066197583887325529002183416835806173744135701518824743616771904616837979041426855291166058493505778682360250357274161826920010585259424645702315533110576572565867094549233881772044212251096249576052451489487533662513976806689110082499396070959787597992535188847290706343502477492328213152229374932591789116920944238383099369353683452183490384807838929670516675937927068303282212586816963461726549475107576132271702795586846759353675644208133801077104525550813019889528557975207620986905389286822981497015378076297670631688483566878151432269235172301597781062192228656762508443311884515494860535178974415228321705635687346768601898742664596611004289557557174970623021313257378727129591117384400101567449214989708475600323595387940345851372817932634330407240800842567565048372998728594087691844659381936574493927942524802834050510971426561119801936555166619612414928381264829196524093711865426929073798748958992613473428856586724982004896307354834660081820213565119630698587478641755936194029190370548384836234604883712572904865415679540537764124343041670250570518343033598587155142671507549024551402837336936808002804886630621867841397890801304415923354479028687866188032004612868091180026704095263930547528682414507864292559420172889126283686062896934143800854413795862811472011491220119511687542026099809921300698990261083059449406707295289076998878484904245265013416844983328319115872074162017592987082821124920747657036600774730584781210082630408197976451730339313205546093335492806208857022474971647455571120423910296142264220861355893841783612630469830639891773105436796290955559810412494206097393087029336429102812677890216995624052075230078351966415733793847370137294499162402923304082456734726461022499112498879103805543946147554753260218482442379009598604139841989070400567489034292112249419157731485923569432177106514257250346174680124640301437839309221567614794574326663493253101833807262528252295165162591721010644954453559936319276645436911639643130049221946912320350410447418732958593449958000836178065178822084265848430535312125222412082729137630996947207470943164086176207090964325479450154837722147383180507535773157505767116195493385449109019145083059481613377379830334749358122743665094668808532966120601844399224337579560421008405367655931978844282052619360626922460666858789888409623895942371318861500072348222309681872135910889275950106095073194924618095295472026231920378512310410811921981415783171426711818341644037474604497435992809933581106160728946759870538455728761212546612769425288416301267659664710095441297661412248404173082962485923954596438470712662929518625928682080449915633995637274906839807496744475078097715164216311478788489791891301325871983413248654872544222475159547633214670594898715919110732272358780362207021094255651713766399007884822090457960255861004363557780431401663949238980999155645782440386957519642029465959316543092123693592319904644299109598632403557436291689720673036953207724568459779172714340833801806258240422760917514400854298784228167735329416820453814360570980418695677249620425146596043724763199999150571775248268439574291731319814017734674564541580100931350801211031136918956187621752486827846503003342621834606977840080439115684984754207533461068468010242266002542238779804163301256900572570326067675671434323857178622732288369667689585749254289018484113703826775988970075318461475584087600794111789957909102269411101593044508748738093638759438670819534847165237140655480800172182845733021860418977457015672536777430228882467997762210532215747963197746957526738908908867228671975750801115807738214434318566905210314500909337019420928262326901206349131358673611588678748427478765230463832402095288316748410974137244710259865221970889179166597677479817464664684337353567959028064825021633336812613094538212294731506951524925367423364072864439520469310775116181145911658345365651933298211098683108752875884909955286899653214992081627364082037471770619313601229096982214150344616879548710804159958660698411149163130694604849586121868110705434476329098778469757481388400091869625962258645366179188170605217484929859445568742158502949162932810136417947465544849014902206732362913468164620598325952194192253388143965360981410597704314342095382496885022486897978201839436876198501562904251478237298933974266967316280930170896404391164543453014775783146299198264653295746232356938264411929951544314411304552047785410141012493634844646010862648247029435429537242851954387089581584068236150687555991535162960215398257381103858827707129123821533960042156823191687926532473033835433236550976129428256210548954399945839919508834149666613405397847244345780514584420491839996722876015633164403324621058697490697034310481567560049807904571086043429230400151235594951504449590180753452184832397346975042658300035247653810851918969010037008404532939324497817418758927979272504704648666359008918031418120223527184910454237521850432113189671656024659358391509310982915042505303083240182982974224642000699643115271337178578018771873589011999942233862550598577401752825933688220295525616761016415458911691804511462821195644563046170922703258287087660647219941631164084594381233881669379359847180926286457673864684421208317500192926875919939123422916760183450578451776612384322138485507682858693450416717117639886498896227999780077089852647674662508703499038648876189426549825965349008018830826456742965374194790972845547289782259081610819996461282428411287784289299721754523998159665785969102302100967154436868490733248113300064797389847629407568787686826991780268571496462474658714207799121556837541040105155710541892658019312042210001840860931147305277012742053703420574274819831390098532582215219600332356111851152071566312129489491466147396967660906026984672818950011502991814418158841062085568909462297807054569369157692404886235503482906633271988992427932484395164036003827789287130682049979255563342172782348477102233959670378368110500182384697036567603300194783481577288598781521414878064022867348472213437050512636760992450175345989432552368288792797504981263866568854670849908599788384124253146876768057216872934311764893792508865211727743103915324682938383839268805325140001417619383785763450511347269507423305889602386439759704804929895404815155973941690376764509958546771764729271070396854009537348363097854645937360892803424952258257490408618164871260167216161306613964679968017333563195198621789897926882866803845254050530063868803670176004494783088813659137070499101481091333289277622759775884272655348626466242658619774691078442550217600249166898288303716733771794074300919081353091633294931656104050554556108605019547773450507031798492648753206998265937531404934885065065784485614682304441561779227372355727304545641349673746769304479592779517808199732564341158685297515851364069904336334047725203666591809904265111549559572823851917134262902357171032432941614051475363027027655117370084061260999118803133417373623889775649392420790839812895314274045278235106248106008676459717171850860491744898776228910288346225862914958803540171161091252614976533836049324942990416763027229382697363516508304797081313520820952569268731702860395656582195269405983761381006187228913963863185241027907195799628151280886437486563078946930814415540065620590448537854168111554027969466530778158473202017209114588795755221382357793607454412222462696848427449563494621147642411847559119104021030688561135009859055355383545690137694776897171702918013557974404388779642573807798443080671817043386000844935373325698004262913654814167613007919000264172541671212195595711183845807389910163689958186748280369838262936551050680889074206528406583223508858753974661945835420576338475428878071292711974030879142634723966398599480367237682632717707033593023578136056187880095028376647688023885789863505910596269480782038886490669620737957576154677322178462231852509634456134146844227660250382632704397983165157149099788743318940372980053523865198975199136585614366879924549503689762837325967639961253849940151677625406599125244333004712221595798919238056155543031941582926376295944991050891329794792987642445535713023601068277890292900619686914714043762204335983030105025133652746877074272573079466260847459406429123716462776901277696060465323431091959917198565136646224208156950309139316628291525706373137586947181801034930054112765948641085418290347149502468324372026733361083995188866241754843612657349313564508906608085563557829860211739750736359325554954334797652305058813585349356058032161652457541342177441304324205762898756019922979838239610657347153152853230711068865522397935404269412039864680743791025306938494211380216325121206639301170181222397821155685814371295458285932131876651317844545830769404529696077235775253178943036898903326112674014195426543913476048985017101460520328283496552238033365055186795723617444877313383365587071876780328462412562024404698033748463199218901827762548636157749854525252082230132926436407990718440891694170620992609835711232613599235323093244689638504728682239325361867365518975542457396058765151784307644943849882981402387084208585900028611519163352496134292215515671935929124083296618773351533807938497637785603784813050748448948794547807564775297686353510159772654231298675149834714816728394374848724636143099132118878321169723586541022476641184209489847093895466396817907876038212297153497383367264607021916000259769602629932325596833762335853408721914838965438519636775330728790418525734456925307839171456288445160018012417023246307577144271664951214500952414150407528843288562567231907473801892663346845203146850960398374845447091600125296099399723302967139483088641773909515897188708916683534767776737513710962942228090336070500700836594757757147591363655503490865171085999478823330244104632508396315540173762768203877481309690563782590297849619190878616828289225017525464594759641527756563504829345242963416958752095892790362353246074168796489713214182445123045973509826525289929008776898421427292254481976126069712129054419259818215205879479813037320011225004865204894768832073696531699543689963675288537655301952705925077129089270031580738229993611473639846238690248500997953569531049437571261074530954480294608270523436372321360754901431663053961080229497082962477544211875652230432553918697575036958889444686280702561199048412208963083128936642246278648828918249842357210650513411884432090622772381309844193901638957286757374684080380508932980995585831979189772995461770788630689735946485227092390308107836475191649243716685155929144838142991427499779940535253734648382989514509110180077931567757131653985774845527091319130215931744619411654449795778396148574790652986147753355490612727708743158248346830838043481493913017324884638428682860183064218252512203789720353749986823202114642757924448317777529107892844259338769480051909678862400013362859497298626812207191367812122756345115263700457204830488649465784905946196300332202089696242264188662706807288216025635252705521284694408742405726480284892811586063793358568930898202320925322984051960702049721926058109284083458814756710547124811999278845400699266379264605551634690016322672857861155621907023181647122865785456525732022563882360160116490447496543220499698974397343448641514040276250286530382115437327239608716747659073242854926192728035748728466181827679844281865716626882333815121377138888707881145765655334391673593186198021492515269508252946730466525322640470623540723585860865092332542455124640802977532499644645856462724906017623702149635317854118581346719794313064962911157194285335182315587357058485015821438878777768273381632452034181997529930139769769938701486135807113860968024338424039377753726361733147772119559164161846578791588220658155725572479168547866497267219669644085504611456218339817397970263585720067978029850740583425092864783376844937532796942737623581850586160349588190825773161645827962977761655427199248875285119234319159205493019874913657073627647237904443328573944101908456064048597296322024343368526178111446527794517033816673447897413650059013487243347446467960136346743770370714943415203022902376985643779330857411190163059276919587251526443507013021275217260579959978145297325853244526241820923713410982205421989745133692921966351767003918378325064669078992487163602332146531925241221991686193643352381768921851993177378022066658939803621249117452602630516589936189460200506746081867160722346558255766533478879079489569713311446152275082005876132615836777902707991482248721659998420500847501701914635000733481230356282451938173179846305052162328529093870201304827886485597649282212416969190637213476128528126637714433905299301356939383649543851538828447714511258706913816586948700745643024990209596620544199340329545671140294738852358821312846704114998193869357169730090630327117409545379001490854917510704372227105495592927654367626101192723586407786233622447315769278155368630452459885648413459422563617986149347840067200176191687436250916510211959038481598239911337893461917567995653460830096835209489129581831121806470486993681336809981119852433086770658348256375795625601478663391673788475069131108614030235401707658572778572892258324086314052143787285628763927001472137730969493861872453388629502305174030964648902227940814352858655852982594260657375788954073246537877674549982891026539539310988797715968493319722426604425629771799557210603596254314655940113280163107040035820259857461907538398408677210042142210230563629679912607117044050728834099150343429136370154059834759307524839862092951317732496611250500517327657978254079816323270414184710211082641354043710609222048859196351735629935802250773115370077336354174713634414435983109375820788441671392745305368044955815193208617156789542966463081134913460394842804127749093599387473328874952321095130267348111284236083976686187081817894223297197933518647937976364179456069343437412279483536878195234419654010123404998700745409166431885255020296667435215146079249857889052375810001462379932251591690710200020337161703509525541634780239227029180174937864233672459601456102435126976874899375106755034324269153168472263641262240113324649582800087431834158926428747222190586701080170588154084491936347735576503382667717524962115816382571736404847907364208317363652263491751860946842800578127311567831998494510274626709005657166732493606522881875814099357864028627205122308366436011661755931191908244081079540568185016017570529157179085009667503557447763700144844513588756750855494181490875718175265475034104941255368977169941612382001333213544665446682637121932605509560242030237083221410351535744586006001275833915906368193912512203105654829324327738175694208247961680966740472522056986939894045245266382064131241324310029943106805502992967944461106942440801477395835565848173703120051500520720441115447348188002642680346308359628495017289981594955071257506284997436560178275453276278111965751749485057367129614465094494585914006817960323806815698327327222034953407029958957971964289467294888300955455440643567723217857945159547865772406237081093337551017808120040908477312594156674004094963544872598983947932074494028763063270673075762062771941350328529340674580765795569632721938136018449205588194233037157444988326645288732981952020817505074733532195398411427172750739184202492642495105469981220160263684865472869503959395415342372410814275731352978889965596054206147472307072668038909394224999006839757206015105637891372193159997813218327767868108181149730906574103667888248300347867249636308155541191376351554853104487571300100016647853478811961155984781683585248048036622814309239965319993857548322022291467597841354889598068330944082945124917867439704487287408176769792876570660844067312717293901224319396946123188792624357621745597707217871307744241978564501602412169792753283070040972232527064189955093614878135907391286468964449185535319497204679312845307782320137624900118268750759952139550249635051951004124907987233356102131841770836816837985793052013854322375639712659077248485015311472902978724802284632145083811403425709398544683335437021360973884741773427160599901477116168314095507565881710216801746995287870086421340896717672542562835542761325571731285626279019467076755253658085876143408068325302334784961807242602928253393320200669109989088623036821127024939561112800653001323270847373841570298693507404967581117504991417270229853563025279655064198022581884799330168169387313769240697977413620397745232841925360314413465938350552853115320293274133833311083577533783788598940776527441342381527064200347493800727869668885863049821433040496920966274049956523687722719294815948963143779209935009898637303372206783587298618778250566496790904216277020466733669418485134635406773104077624853837609006134756207227313399949002578308362492629137709448956716591653067871285013086768581449306905861032646086003251733763818301667926719080384536720337105130834321976337473694484956833268920485679515322461104795074901156291707705990348628713463432920443584632520773854083419786820683580804453201971164718200777911858512814706510072536741038664445552558645048635142357679511634196584180044557577025928923708101656296077122085984034061237254570444876088806008974801088633883001076688335734497459270449955374323493986935406544650011560539710536392027685752703755064588741414833987667344046791275226699404535642445986564068845637796896424180993825713077395812379534519893948574546832229176440962574070223839767756869795800097627067411519401470288850618539523452091447290670653905424442617387325807798485617566005550974306654958368296070740860226800263423222809571774426707305941124918338421604420668081995194710580594385963018116028282144647105569854111575722967788539626665015859345219820884074645112300833996910656602192611836863335201540307102206016578430939637071328502179319679410582657583414621323874195129617026725330774337007981575419181077708267152096540330420381195340411226791246138870330061885703568544297686980990836408324959410747600578377354216958289559169812815179700707605464576979286345461989851107775210235000195563564883747753359829294340258703657512628347848944850788330252630386649084993806158605462270501538230168370529230790440624594134418515760051061856035152716136443825312135159201484467645409703185091199642117556339381404901206415121425535307595489510520656428510855826149411059486555083984635121969405643245507036607844042883711492935006822923127594482833659719828404768406456473574499739297935053053816648685918233150630739504457597532872752630753264169259316018113309398955017628615087712807989006537776172458231141955321994292355322039293760332872493067143350415995813555915096123544523152008679016357794446080444224136917818273841291480347300637534658360121772886045462131485024745735573631093247510252943510723879340321643792459621637424275783788084566357955007853260245389879454638304163569272127991318185565353981193095526908508604168294386965516041827487716125874132823292281126860019539717777610156489462154266110324376850548298814663925885521271072021031463846773878914533970444312976727875598159297425281244381003588781762279753631641466132695489364843462359097229372509496744319030258748998854411419598763771454945173573491228085417340498838894117617249006106397845546006485886240695182317352364039680906300190292778740516518757055125294986799008176292636371720988051563508807077922061445387106831195405341078485208426744663728055485529441192665015544598820555445407559281440263374699510330396619698401704235587443232379062004107974455120214378828190606190002634615674374556028322575211131635365903466097610873131387690721837214476598297047206123634960060346484726547851322190859401009253909038624686275793564221237821225322581472791759317490283968583712717549219077444343040622313770903940380473547083233119941789870563667049395879400112880012192473358213566362317104379923076631901700852275028275336094804813708494098808195564319880860340635791503993163127093969093908411859164888257133433005895708816039182908036978728948356512669514254585374484325802949360215234095764374321554095966736374031544482245768312074773362999033752512962593716009567608549703453879924694232073333076474399656030700776291752310810009076051948815989523347486254081534048709825891646239767333583564868907839227256728460527283958491525091932437047814611247899460259750337130165981675893884790575991712729861654197706354449624841072146605476675285609301290431262371404944728489397992176513981279567539590371416422578969538380407663678160532823374401127555412402168860216258944391515443545739828922495023089601334400652714230622747640703930347504128432151627302437458820554842108828510532259834899297727893681293958460823326304122351751213820134859241722995059986580869703363334548686418500729944722095349252743034879378412336274604853768441351160342688191119253980085689397659446006377597174824388603975859121189461096168616433706386157883292909848063674758902346075387973937022742550280123573670940593792611302859570089456939728014326298851874873780293994829413419599493899941542576341745674900247518269533876262932457071111572046613444582944437856562777804090693581360009984661763375127947987945164493250256567882366392459507180321040220249615466601127142821283451555561386073576258626155890392421761040808901207213416130376044905318004743314384214130883269759981083652104030374157452873709557085994964162105216351372741319672526053399366636752510926866523824661341454388971824008641404296655193538936062243364719332116781489388984814421282045573574755189249482731296235684500934337830129902802003158860186313634786122048351714533820086859673865590366644367339517433448038520757403307302012659988723105596011902800543572764075211921647715662796898308639062353119876058417200867592433561513378729973866010965180565534467583381714440436145902233160152194634128254697075757055301662522617974999965087997553946098261935523902913381821709672824579577493770934165481542000424990241905633058758607663545904647349109617007324520007227544819061705050393506136321362765082287473014597352114533390428803922032380976988861986599689262681442383287106021866677677868616600474980534761056563704782204076886353524419418805007030678610655241258623211407399614913575031157944637014297394551692294010682875754741570376554654045826309948095092757491411149561180440825041702097397965993125159121512052103292365338358596677929968471298119298848908824328770411779563704535579590091804923500872289953181043639040443146681450793040412791512547371794085947709563814191277688964247760200823216529800201151330096257816851674378367187953721351649648893835909220142273186936163971131864465955829616184389325286900908564339823619304665772049817364873060325063100364659910617841189372497417463871295540910856157187339554999319067250464112448316429151902068821870382963876734467761326801808539216310465951511690347360118397655937011335868579541705098784985224212799330640831430947521431160591610482227261669701277644449404268541996646999411431531241779509061407212266441641247695223155492970387636850864153535678413687762553277600700569171962283590024692395372778928997257093513186819225538279398869408339999080030612495633482986881898093091489640486079209880380627517288960452848216248335891859127965379471545057316487808259416710110621073842826729352610163892678576089832763758762058089087351147698185555742014129596577633609012070893419036401171544354453200519400354460704554916408911508321317305510182086663339968305683428538774828689515317667603525606749991072316628550442939142076379375696920079825546417703413274018547377339557076201389865041538674111326144543560689603145867717087529314344162029791804961942255652608143285220589675906883489318821482441236018542565833589435384192989512129627696105505963696030371469780040676286233686294974664656622494239674899755027620671431193684490760128840307395354776111955657861058960600056054572334841560037541059857106741884755091787713874032422335902307196865165960451248186296540927104512384638909903389453556804611447173064726407584297202488544809727356601027559529400054042028591410042730469270772690287999080257712649377065757581906862715950121005145255719461954376916318199105227309484530176621156785513934913936057672045569447065527352498982812715164313802608973407385206563021572129571380284178005970923317759717657272402449428482463241930561522745867618773306595520436163916132737156308090359936402034073978321328199766679574162776405966843399623083168796562882079372060506561976467720188373944429135519771756829642277051792912108510870202063834313990670024063118103873817391000456444298661271977040010536801265112599834837359794870224706149572432325525225845989656915429133685534045228556525049895537329701187299991904381676783398457023672490576020870506077658185762696440613715154130895438414213102877309999280622553125008650279381526195250268418854043643685376068162057237766253293779511366538579449919525713571455109666543116076658645316403678209914656068463376464049311966003053031534431363028731226906233170966383944447207096926470636494383491288515315535563713372919427796211158088710091353536192892289302470584077607763890363158738153071278305733298290945463529766742677382157274497372757173154042568094426261982876692429979487004003107018358543142998486973909923736384788295692779639043731697584356046035258751064749568517300024534415144263497687935073260839107172782347619370727594374795662023027574829584711026733628643347364117269182505838139330189158948219434607293471396482626892295121122997797376195295192981225102273478625969085405143575852236428984044642666580032585367551111667459749590819484932048976394384272952443174126273644569415360331911250589235142908906573147667464045496116269096079276020107840690000289035548301076561966908841722350546959522433333489288550591854867796985489707214492897202239621602215023698043041701031418517324064946785026146326181032265296455587235226552695064664756239860103670387676292042290021280864751814608584329003611693751706260144758600614056035939187492738476540971122125629445393008689404680512804959804651771182937881218135047035032110180937325987219558748081611028869805210659114813428779400689794720395184068386500433342586218890354065738492207642663924650481226997690085498167106456516280722972572472884776910130509633641669817895021263419458679386692970893375093652750421062648869155234396288348397883806353841598720972177633151988345505926166979221769192457243209238851771490162676293271388792243241240011566197276386711704459833815376009562477858382407385616451671150105986818785988720355059955666962897194303867557193633781199194881767308995133808606074632285580851214427395071655497572346534942574914433506712249638899752937116113773865021582476073279168882663630131012849057450286505902057056762156056532559668350476841519933433631924273850407521176418614656826011293730867945383821624548909004856593633035944155572984759645572920980799370979789353816530171487499044616592281449660087981627294158043674588788527942681829356069097566433692015519291395894382015944514279913002353032926482019195404765568907554414192961338152723403716618961165060476994155110388228354241925958642688775813134107430888913099991307023415643470469346559590360851220108938027808909914121072839255677330571244515031464979481895099829151411951836593883105519749348496949344762150632662245088541406151221873665317948310725652015327982391419408572545488924698539259192779526407612480678552988618765131415480213725012333310902165831938652801784516226867507600048888773480028175337628570027924920502562315934573783678072603258447250001218101094150662701430069118224293244911801525271868979176188928217399412905846345041671227344537789695320431366149469755692547626748901474961152256780765660252747900976713343200169657387694914026745536683256214668160841892547744575964199833855997204429615161281679245381816163457753348964026146786495182818719705836350778708891652410056256943567258226302107718628777304462058136213102394735988276327141094679117069735373595897891293300432475903063040657114771532173148350945143453257096533787282166759144462268945259996481790370109743175958467328701207574941420817379031761883818824286176461195469773147783913556134621200903835919745801545633405098683242026049136963325786419635075713165128465700354585450132042026583916945831403315173362521346661655766880252444105954043005205931890017953989929508542970467454854307000079774702303257604496492577014905109087166493608558057405938061032932436581500067026231206170005725489282096064167833824079627338200402429205873628904502768674586403711073038279241826780813646559006110743838897863912192438958767377198643529060839372568919174708847694000998320398159442696683693475885134789716808399531528291436854875463236746709355676394029644785999026385918533269558364667714062768905988471078197924145394076583484784194238963236107543344945011627631876805669067814472442838209649490720967860195397061987295685705329940522400627877052399024149872491154225360218773530568314656416338488909669049870462698402482828487834244229480488327034170636202239101005613614478058646674599890424598698566625442298046219291447213320999002079509697266896368693252344827528022172272087785533462938605337596821047409072130914088809441019704221381140719186889020702871853460008146574905496982821924472224663903202832485323264994486279524725627924131704991566513981627392057794365292641758838411252461015855515441605103373086034137757559916476603554313590319765596972388749784053071900238236752738595910499005966301891541386556988306579107223652929090095088936418119567764948174575209396963551645213526893730081886151947499642370453339978314517866667450247015260942761585530279269682694637486998362924143268105568008658045260643457918694181239085218074446807914577009340284462395981583237935821128563357514806599394049373376821937576673247965102059743079485381056124854293688809392152215705805216656222965355688697484098639154431814955490702267943542299204274642342605727253162918456563260941287053561820221022203994415617399832627389847457567015773003669734046736043679752356656934115845892724050625407883395131731901976459469988506443534858834754923242099985110983312539003023899531364530045888021242105859529891528839233357906787337320606135767623764415887237377503863273105324665136990851685770289459691245668169998392355024907938949670471067864271969425960608269829578539132576321788873080728492812030584455217680878606514770810282791570717294668088032202000467496690262700649404555488891665599792668490447577581268094165174810658976999737140678258490110589487385643650765122562925634870822391740849913554453833650291623884934732448562896962352222692374856656819942032878396853125711855587957846541805915330365462761140988484878441736024111256109587790007999976670187036426740292677959022372326544005381735488013605910389567794189804189954124223279038512050266209549811891898502831077018738177142548676693414251469406330410605003009332022752135131862028373888827702752428746114300922614183389836702018100749578140928907191279784706402134782158787299511960802053354005792640373922894152457167686644238206229624116789804061387541265324659086170222142808292171366858538270541338300511931161615430173396238092503810955343375147384313392394271279220201976436797034568781138219677739533702832402250430053656053942709559630723461334768952960092157678839001300496371996791541825673648148350301836283380987832220154275945804248190322963696510640359365299954210963953873732697022145368148472468173431363327708701386910982434324272640177845861972811934865929442397453623687541400406730311389652014666199731915501818758522743783786316476087749180918402917786403364999416993754234219285577657296868307017333321738801321218126122968002282018010913832727136443166477559440410615600214557047728335648857874059305962290048495739164435842889087479340123433525874919509806445830046254685523490054367051375644683138542582299295693200263999009017737048750247916178403824494415967031165930591994780240341214347294411844836739447394455575362444732321577799500409899330124057282029438616049982049638395739343929902073770149786561480413660080397884457301999380183543277859224963978130641543445334616774758147271187725914497729977238760376377671769829375172506353507574603925787181388843195317709886451113145434662958602920645902527829532220982751148744413979259227739776245593898311584973159579977683457487534246409434711457286811397439672164895883522227196479137331430753506742280657527849250233509010237190023095626541545543788623595991054861759070335989792521889832523931476866343680592665630122843528247248922452480899661855044782173467778704812120781542913194870605531772568585302933809266208072109988295735778946297108299813757650466825296181372726501797548514400712567641791265255811511712925101525094680469047672766068929892867290096800249273596872406919863515616202880080942186995395919318613394196387321966032205042936057914827414696265729851660379020245435830989708583671796499709722089607702653658903333664038581078234842366627722956284218239023980338377693685738657860245610052094787852875892904699746532519634474225374697015149934080701125080416574182406312071908387238679719865394491386113810411359642090224815005878041136206582661119046208682292793895822187120331875064005770076490872346261357232781561610259872135958481584871649847951144701993741864847146009508663369311879467047274378270789233919147595381287527451824237823424639969947873301312802203704129018024064090408277787595392804864919226920041144360442352089527802522991297790479572019540485520090021202573656227531053171268120767505270397733657258786562125382874173916830302811869545887595388424431619252297909344169187301575727176986192578670041872482506161541843038078588276791251292206517175726028861913632569603059919335192827954957721208580425744949572168244622682135963166676188962331743701039422368435999752572474621531422364963268113178117604639600264137080366426590880743623719426114406354358121945163380228119830409243290383384926645847129788319912243017156101210457995701393592918704134629811893592060003860428541766351668861856447621912899028612904553335416327427993604412615617909749826390117415084674067194953539441237131959370463449531274035418072625366581227475783800628050137092837715199641404447526899611849714999757000613207749889612789744157280824590614587787436368521917157164974721597006311271660948599784645936577556716608913450863647400003703318914450393501076168589839468968308072973674618814036197947273784795179409491024598494999725788493583741596389827545041448361553851597062665815265080449977357247325996319234468559927323560802854219212402443948713750258283596861283399785626002189418889657263646316107870597662659312008760516736406403812502410580058765583212611772127350991305112826456110395916409567162378205405095978732190905806762686506627454600026485252884586861311646430919350680363376885001162881070591228842280442441303288970015935207744958441026721763404610351294475356155313013591301882018083511048952677087339772697995436840536116120320742457340141388381689501845969968543136125366603628212938894660798266587290631509486082320831651858534281001937334715550718474649687741620497417387837044775252003297409110322700211601060435056597960061366414956346709228825692808540903647043392843944418672028625071904833425754587961136447238032222119795906777191583937297305437666882712136714643629324175428690946765046169261848329505798039282854085789708073209797376607021132671421929700323240374343417141424403881342367981610123626402175352813948639948288567177542354775700077307512066101568371861879297587040569342195310452131033492157060591727831654818298971750921498044658292707117813757832495184355694889332759106452790949764829703572994279249523394835196642786724471475789932834808766670956519549950001337489635899791159888442122015288532774067005517622759725613344301741552512093369663229299820815504414190632865630954258568732027572778653361305376007295761981082386514238792803504957404834624130514079117459597228894191664780920762263784134908522545899167668811317084928944791478127902623034839392866808959308905040732398096177736611437032414002941812089041302981705756297435661407264921395820783743507628603594785866945616361671850854254728327767164242280075101060652119981043749541280944234581550870732581710682722358325001482341899952219789801025000937986198937440171987520129936526157328038726099577602180030916590656636224498371517788976899205148908351324373897575340864628573399612126830160600622634702742898926196030275846704304325533899060781426830257643487232312080126306056704071239313697200834689807279155378320434177437398629293964858174413012124765685207096772612253937848152354883346661013414516493441697799289462401840265053744408494093736438160408593244769574416461421540077966816664979236220362535413712820933250510478446412700002405612670662088107737695149865834422622594118314931679140549077230145103606042413022465471432223003888183494683809298313528611300107301545298919309325102846389620677591323453175752508664120561970285226866265431108586552381789968998407424064136547793409532480858592681104829977930067911030222339473099754889927497346462627968243718194093255798812844400767496674918976901752616301178713231316022298300814929045505330800734292608831673337607700233540863231329582087677589319875555238423961990065110688393540573163287783427016908724403906274385134774375923369301193616756246833363165297603725635397178312598008754071425907850595172145538370217244146823295717343360933508782876360582450810705324406876367508648321192959986312034098285391929623950534480947504097357758698508050297557479404977407542200957540596351876876560471284123747273883951650698169647977527552645077018399295839491757847803586295914178069126696962408323456714478801477220430421145198201400400246170968909466017930913486468302319015977980040999967288010787905855488476356397677486364040529135733538939153989461847580033630823270086034834789567399436783389638744538416443403691122398342766116147597901106615388321775080973052512827376798839873274892500216524640577017973496627455255926704681195260995320841228783333324316931827273420387241495839087778679314973035678344148007545636931530579260570801130287240647912754790504770068478051688600439102358186525531239379563528177103302722738220367062043667900692200222142968404721558917088807329600286723599158712493553754802608169422704886320918215518226720898630699469588808455956436109001236891453818225221098265412545580862404975115934847311471023685458082670663530648216361286912902674362204417341544349976675328168574558640980869172952183376361299501317794170070556810282944742976887788986311002444555072169300537726164249355645783728734568216538503969150049880629132044550930950428593729409024002650564923860764219377157510648570708554451311608649690895185870112368602641240237484941892131184733349186159252085432382779234361536080136285776009350643108434165425865456080572635427499394517131318217637895659067302974744939206507396369849342257734830815230100631808913560699249790090518446118553906482853866386056678388843549621268022128529397589908067266905203353209384612147602670920441548198279482255154131378938517944089328127588469332034217144305366060949352376364904409583755457356589016932600257494900018253605203568741264322825508351884783761452207140638101122415223095675393200000051221815788614155523367104993732772547270764467925557276818453072838545179886494606045292758283571360917397612791871475008576930396729154467283667956165204546950290744922176969663558531390871120014784045500022671742564422222366636269334566437258392574691445594394123299918436921970382427530621664892094674098406072820122808579902571944800617510614036015539769756582314303687932165097146484032665908759875976068234777743723872716233187860319717600845761308859892235714398305619868533868235192000537558159222473706226251122135216684913023564849808324090987556561775453886275698739993991618479698105758107702877071337913445831026775095785401384401876649107698074181352003503961773493600639281986208145385020263918951027983128224073030519022015234297104101663385635209883604187383135451589937820884289884265775314131123498383963287719648387191706730965373571337812373750902473444939780013362148562620872096147919862405401685289679005415300846279838910965107230778799863651080651481938222270693396155661978286878947601845605547715158012294548431417817437627007099988197485890053600187918775034387419399001202563885870849095888425756487659609527424811970251619593660778645479641014406851231354070689468289581508648753526108759595187409017662847570491848296926247506275364894645356155215026922115151831210417933749016842123922351614256096579416524287588372993856203745649295521740003317008697840438721355946806984651463041491300366044840770837535341960948388063556778120395252353560218770497478153174192342737276093751743290498399660944716714305629691480678628352233756658067808417152770936246171943022826608248023426170305342051748113899542914449382444149860129193404155570531747658060848842403640951632434891303913157801153090165835253168855261715185599640138775890382310463888849174474795391127310019705298924257387711970476035791140406585786384014586972959851384209183815604192823195968618862076691459165342029232147020030921869953924977264516064317619085256088192632574885402614887173288411649064889617377378513385443139242861609944986178283317943142282199200452925172118327459471261973337258879518920896569051198129131561078040154813674982353649142451162409111427488552800487185330162476855004333977848875921361134978991607749054108755879908193395729392841137112751583544355871872136837768786121168923242779072716463991090801878191792363840188946234952373052925571575693135483059263669815139216459551738509245876102900554110466950806754428348308944497582624747314208366346498130961811448324873643841740131282603944726712046142269704620675663578917695132340370039771242249624739563959955034461992617524835068483764691741139249529273712720430769188650071307092987709521247403873865676200335860408087269675479477661583563881905622050937692242310013593258917734900213294980423404111914989766163768000996534491454756411959216588506468491601945307445367078309245260931065170012614201054104501872159895955593375974239538069868741157324112290852243055958759190331732266172929846179436581560103847095747556164510960641517526687953838300846697423237431936037715536863961499732664678518024078059438593651992111230518991523456372918454944445172755338276680868182654779848995349567676516506781774611943135738237851373884773059676782125228798821362651132628050413840210156758518902649737756243572420905654461141763628343412079781588574196478382489924778043519410508146179140828611341678786557184348789789421220670634172125418792044795842063831864557417149102246862841964262766807028206176767643820998419662833094580395193768155824854095151119144814120065054380134632914062423556571973541830178596631063998049557478483424155437070525229213636355450544602494726599462451020488950088650176672831111746834177914159770593551508434793951669556788589102333480393942787023253560097363251597416266813940645667672406445304444443652561227484154181191780219644488561107275071462770465711817172657229560768732694052264312066845565421353647953277695541927895311618083127739506668157736021025869942722842621575189481217523125696650763224097121138135292190004732962448383015972207341291663937866515960829258315549770566297846473619687823506592593048994908280278097173433311838966279042779400372334972905161218012978577709853697911827408199877513890750721912796124696507771237949151333874129851778274227258116825497255273132511740998391228756562676959242042824969975742952026968583684654613550309865158427691537019666869917143627636526424739872712250962240144391378475796583772928758554351954812116735676480342107093620417840609138348665155913887913151941980557678793829385420749580056824336439330585651413159172660448539086680152913157401773032654504578295913206977807777480927930521128017117503644295817121450371443435529709305905551876621153508639806749357262921105109572144516971137053534048603035708790077616133395852781489126115640670784234518208518411398169128735041594212686917560899232396224105338895780265132264218535777863364053642988598868464407117699868441250974088480952453210777699580644660560158543680320874301200430942687596308478377002381129083770834917030997502658643199939335457782014079207710158548161520883979292240957036783151896852550037030793329858210401442683427255430643329729836417491865770333101147250746999571893047750161939183138464019886240204545583568123252954183822980034005881080187134889064635765930981083811578359251305355934086145445059801621754343116176341631592198365813439691031397339656819747006068461314286764240489681071261987690676679400142915129222821372466828078109411226984408757161330436504638687910558566812748387684658313139119626935473085228157285372674188462234196993826488567794294377419403870675270308178835184356557263146962758247091280502733937161389225574045281472169573761483247529312181178955020574167634548676481748825365271410901202366792059502698821588809662853401242124347196541754724814686079795810207091208441123639072507826655051218908322625203287745934522097245248514956630571940732117452101646971846197739841539658863295417697483179448429866229559785703780512742819589618065875336017067973498481360451320414156878495494173371893528905748897731073035800598949594734501424513454121588622602269917017071895984661689184945992441636904596401505156200901804154855592767632514100551330942682021031751628328236217810999742556588302706754066743269164840897264229353900638418685838726082041624401470151538839420550816120735173851444735504583156257208497125704066630693065228607750014778041131251962666626011770129406429378591512248499226778130181944982039500275506222864671368142091870945944179529113048249898501491630861147141188257587100481472183116051776992011219882822907355935670702137887697381603704474903177776779970832536689357247947793343841924572148868664375643528213559223353254572740834253064356886787091277143409538954138300729592278122968738830562187956961611269901562781772059748635060716760114329571523957349203014791505366639874502727970692278692125188988741254832471605001038861768840895716911692193983567661153172648345006079782045527956392445553327286291910417943388449521188538048107098959169890694471206759665779060210351837339562665717169770437108997241741649276941578482618550488331790352549655416526840074449638342873786354984927183897096568329727580435353334978532074175763962533272859381704075907408659441872598828432931042453063969324638091275282305550851306208359747837864177684927398695059473366456815246543111550053030038433583904085208324214761568379151762101981003853429301253968627185243903315467842581383560740781138886681366037969692833669488607522768320972454514997925901754253636773795053192364474208087417306468997632442065036327002054855911048656886475056758303825397263924333382373569941920988330282658726143985134292965357476822917783150436338126022273919398498910129018565259130474053211702397047195438085361328119199001572984173119585032185879208386945293199060789678487522614885198547853935371530103478063493975654236746523519017904975919139225335658834720408004427979723610112555207045890047465296737400262234886143418085475665210181789311445612943868437935640851800391410602830352945955146217054400279573433946349333547385887546998535871764702686853324862392348283895551702039963449550521355750338282188724885441042246106325847087364444677646529227972138051315607085388104192361692202921544731285137048943521682481451589270358780862948665907314437448156617401274204547081429435309149113330635973324607627718109483841704689362066971031030048219490788755965143367444865824048156070535847306110207970187539497906642621681390065207764053137434995435760875948162486280975107141174863712510373121265940066077574425742455174574738870673695392861881130000368679161250004677348068582913948752813580741305074267562823134904242313355662182109145908660554881004256876200221233240284949369290030501880006746802717974845165694370471195897137486331344879528677524971895089444309681119518654325346610504922164547253370504647114740043982666523478453074919576691025473958502274807634048839304112584466950353235208532518735838735994735466263570632890846315178266821888732362272508329972158164390616438417121542509314962867452154841898541192391131011681605596368888026915856170429740410904721698191876470161966330042679512052022321812586805519867698252202476908302261559671540629622789467599247541186366144479718144182121193540112708953568789334619416772657396158702364998626364686051974753701798046618905591539806610014035549076452881440005860218378914564213616392775110317857417001051928028963424313110989091569737008057161404946176932305171655040414347989906898147069503103374694018134412843326889591081607057464072183435348010126652275935722617342073942062489519169780662466648737935725366550012281710504501214672846383243434618123429461075992493105908068710295808692438150044402843827773966578365347726442648289406178749805460121031767294891230770179879746385888423960561065247972254257084835482229543133042459612320897814728001881684384787571186208494589042137324134579908052175759046657990378678180376755327856517140528109172625867778140309673856207092498567460231224625832311426563428019498305515070660065439971409785731041378932998963093057486268827149437551476589665487210586981710579092040865734029272984161797618757683734626711235019266506605477007824058777312909387532457645052513584146385699739029148214351332976636655670153643342582052533263500697913401593045922705264333882576869770665174501076624656531708652028682131113040038946214841619207281575846745740666537586308719395065381208855503702502018616317790565652097560211933248447657367969135140337664839190820877030446920352475976239059019123305491838420642575248941552508199082943742048391084354428759615606454759577498734142318254813914104040980856011105516848017491760362674876351903595680925229760416465517093973372179947281308907856554444158846732542693391852619496795248929765983773667957249073101847563972823504642553786220849029637200470939523705874254700260771884393674634112578774897744824077769949987421693369754143782291029296991957475475838750714157785623782373107599209932493957314058326234008435480158037318248213777063118334995739509525289623691053313576908664782441192236563501283836759177459045138906823653782896760886596960236055420530117080597823023216495289449904848753932925907574383980111498863900338912346239402179551753037074733660179277073568604322556989147788346442223851669457597360176888738937860311475892065530165228397027496080411258156364924149564259133422102318554142984528275199972080578656956709713803787892022290925646901082482548668570215049466860688873336651594607090089037025286163276632421398477601735827290030135041131257957600582803034651606328013030700431354221365206485843465869152769514512508121705078297375612239297322260158239542834126127231273645480388189382240197481375811659535377737466544283657603175726818089096351156888219013733016437419381567488726387225965149810180107890338871832839822002773317879401953584760220918436593169649622808575468162668513375266848247297103399790722964989421447062695570506942354938424292042315071312159374561494368769809435483494702874375412757511451198977044243342007017878343941673988962126934719159588098951187661977540373595993582030849278403175085547399519076406564410500229283416488325351581750949001406367691983271908464558920296050312593092333211566995464463694399844628379808307361662136462502130902327963608193400435869347170544108552044553523152550163293337324450379482127324773059242176122210361081559376786672159652390995216612934886356141137570634985491296367663780407967021429183595458017127329956199833490518519000715787494665071568073001131100101638480005715614222434168421187005669220701301306184278221231932598880697675494199792161504283639101725970738552709637470205956278576457489199777965502860104600624011389311264282686202401213162566013018532730423264767291239565287630795596473827484983160968419559630315600063475675532888187535248442312522337763778137230148015977991344081887395513408395597654669150538013496501839492530316045917250999975686163462700509142728105641999481184748009635748347153725850014144801439284624409574481819293459062526323811164001355858749740300498861243310059719098814237898864547118176548949661057745956384426656458807351017162000055347448219794952441440134953948610484084350631272331571294026446153156418420922737629904779872081733629082132463510468261945720532661183076937865982654373595783470426317035038310494189151871497235820172212453381163481038522599016216242158840506993897325662845688230958158371335966235034938848166357214408923604395333722785103976342786983908154302337006394363421250034550016258017730329414954091788307460459151710804224125991640602736664578056684325145739495073874813328419131494674978398129576654624324424935174260844323623385541972365549403448819214219330070959986095273383443753206735236493358037454027342776839718695309827825873859859134493023331165385638199655343121636779731505165554803900207482525852395936374499600982067868797981590306825520617009356269284155108322709192231777544831715438530026581099472056713551322659524870107024511697475956584663486462574441264396254534502524556943711417547989896374223809436195071736082410881297356207279129204815433014609445522909036847986079771788301615914300148887014152265127035113911587312134974713521686033441652852756228306292906775316367928699376125727701521244304025673441001958607512092332867028139911684498669326108085954353877780624632976867233190793404082696669152542546114030502726454013299734240856153098171016673533386748036248979281268753663870325480591041157701849018657032954042796158220565073897375497503638320155142809810085760043069886203396611580592451618555873785169045386828486846434691994371498935663574334151100616112341935931683516185870859709373921456139208716510048108948269221794024804476052668370950177183661395050022607767788819181105313614261963801358322645860918251969984847165240366763294614583923083938430061946011919775894713879452240480261397840258206642320624436356361765808708905792315157955965815436607456090148265007573405423882206752596341489398607050463624877422710590081405619243518950795765495418941741031709466774399915532487956543408652073293521051010484155997867680685696280584716825829574344660472610883486439977460494271809826023079848436112096517703758696635763491801617415849810601889417352954704034413120393096968541286724427174516726941694804264867196959800128751213193392237468041278198492031653846298754964642648444982674202818098956575048028367837956475179984949441559551553801961192397703659242118739333307025350381916380174112215011171856998707472532625711911837903345466234514753887255391785617096036114004691594221527881909810855907282372369601797230629411745685381091105224476851969456667840200631593198890379654614188565503839277239551535458368881500531864134769669000990975650021780252998121076547412925904222676307849172068448413623963081581224895121556353231291221525419499508407663780596063356351745754936093574535769693706367277040613540143913268761688683454125753050554826343981179335384172400025326731777352444333582231792276616058013742029114069702746559814481834684837445132532798868443498208294962540830997337509622641561019909353748171213040564576982219641995977205294827355397184633481849417981950575865096308368490268867850722818935205364464155102705212578933997200305040016623720767643583892433328227657266978606766167337969148995586060771152822683764322766928485695989186210658445216383395001790168193800070429858068513738242472927324564147418338220190411558625351458174871690415033173176518245754098477263837677340207900982957200070084032109184259436297472939496767659630858677470518353559570334727712466703770132719281479836374923541750240450528091248455708541009322832141183140719843734247815505566824568451505401520586391202701484262199035985581954188335258226684450647778594050082144895112658488993020380465174945236739169550679992090867401804542727238314002093394733962774501894656625864498274260458400507295081553104061737542560073945660885664513201050204047528354513816869725043076101100980437927204374800249400575736469406519692610496861172552968517778732584121158637389472829950532616150211876470890070718092273172883728795486088665816973644380478233104833997412619944671242541150204450530851949089187985907942705994846310524808222319270071763605166692142653652557328624752172870658273465423714350046452180249379501950776835191039872778801848217322613470884240753336657275437420652191204086751337342055507283433797344584893678209106656913549010476010221664857689203107070253913063263512383988866303450604509058059044825506189906642360618134784154057995049610903376858997456554238404222070263702184764538172250551368343765632260543124541604856346971977009054402238823336885699374368840021706322582926611947933680881792968173122179295892914745413592477755809121903613754136078654393063312887431782060710265448617703387192028578890987456377740593627756548254332435132727180407599520216343063101143884307978436882897192602496388280452810959864092400931578793514772945576632742579757075534007542588130578940651231838793704452405136922179745155147088530267758026049157270021801309172099779600929501250091728151750540027586007875170298139344042197844515784799121012553402013536114297292857989997387453317224417766689217112374030966566532361893903534485958573699880079068111561718383867659266069952376891947026084191625265746438633292138246849142278039034087957004172375865793252916800339181902910344411772349649537665915418042670019203973935679420310876759430926467521666161820921380453168039358632886882604861616112775163773275244079976483754078935321455499722547597983955559267382296350629012051264408178705400722685240257672416421119519732588574758032783076516697589793144004874761333714595259978445773439320817815629775982175025827556656192968439863125331238801427825497798893008601424188149707783900196314969606919026464835971847031315532910797063238547765291610832247258345623032085777980297914476737379574859260359529462617458094681687303092291728148749518305136651689348296683983051642693049850503650232303117740398645611988366086386711673408017951258004653910874217217566260172617544979884302691990675527342127219440448930126863006687953645495723182049715189045123780746767652896583520148895221105575898460915749523076825152614912000994255471806355444635037548893202946792030207894341379216345570041372566194515009987600865646616429599943416273956190797225550572510850587905840726533317447248199935459299592134167731182189049710872294031168627760555273121282713308024725539806557100923638261303141956091816622893136671001267986397420547973345765222062947150397450736720913016833490381331863476587218418383949732072350790354791681270729647202149272697955285305436607060113809736182947137980639816642853699637751091739286071095133343673143929951666684293423561183723850502602069494513847429374314354097606183673645295701501976887871556654694499944206618384313309118098988167388127171488555095866821793861238133028393220787783308221478658556358917014364355482155018836972853603062031937297001440406089973815712944958372604284774855450104937803591921209025441545850333226010220457022982185752993142905127540699892884991613603278248649229370474771616424580426822762361716560305370387967094382639184576673849372879675327408661204843155365112652980555122356397930713895514972531551129530039499310032159818176116110224197117143213617789508223073791098735108024247254391579751099865690665083593779325488520359121412795893505747053469476755836059339507725502190829501890620631133545189091820497831914745423459012789482105047074582539793366427759194750088632973911394158393227844690059801177656944243133050828995225129104516110120950910994788549782593013825404365860291478363232101343477764362648488377211767167454630614072972333516141668447709067075465015442275632399475311424641474051387067608943537161303189987006274655615891519341137461583409831134003501659262361682020218482893775852293859604608585918874319592500312609115212568400368086121779009532754854268313967677550721277859598735683057904866514158626630099210627794861162445342854816751671163214619151908927157871998124544871703366360265979097821549640824830544067753634319087585870479200419740919858785788931074309808208206501172006912514425214161309832836368796229239840682163072598923237988685138913044614379061065722623211471054191306320521739852387884666316410053647758035693706219323088653260523093576062874924315304848370685283156603830467769351167764082966606999701043185475001684494497867000456671729835906933085117321295328076533746517715729638007304286951454532651941882639337646204769511234172590467380913723157198594696058538866246500631381036415686691832069301770400043889051335294424268271692626596608740150920767018518276464988685306514013408042968195553030533227274499874221478267050170286368261350718335936323425364066443787729622085402605822839494961283697685495932786732010579463059142051235756913365478990141276580569142109345122737723193929528362586626325729116736024360947826148727848072317435410383425164672217498346044544765725383433913472556353667027089493505774752925864144292093466699018758513009226900577350234148752889016814011846766566074169743940920990146607170393717267221117434554965250435079857665749337434787608941767858895265411207742369502226937318807082534680494195725472398814241267006660459748319975419988849634620181656288036767125616563213147538924208965387676511069126452349617729753859581715081614325798887782074978736019446278471577818747023738742790587690348384250803397846377161194245912843030729396114462944328009778362637874144652794297495696900158977456425579448162093500414136585097209225963864912906207956785317889625068662719142893953250807037013505622052153771970288867984168334054615236401518851762289406324662024702417209377199146240607467152643375408515740200421325781306044101596141590312555338846793914711089889089059063053299998176748946500733689715155271604293780565787041002157056472393976676567741672549238032436851383108700844030196590757117850059681938252017166668755584776575044366969544697583237211502463507652343132339073068321846329814007729172916297964177467905879229288516445984880274310453895248862626190243242143019764030012220081707211405911777701363962834841730832644686673222086926955773727561504539100542025959070393236101495755709445038719925023443030739599227913789109721451904649692600407961197655688710974723099454584222548149073691197714127987854526572550052520060033493659878733930406863284551614874535167570900385946490766294665245922278857266065247698476586919730187464411356412025130978399904447657481469016331765308362477278010678801313295555650532966061728636325548343426885878878070326097121035125328138894234687996619812520571913140737173647745926868052182171132442859516985188867624349398878084113428407204864791550471398910826323687042422308277316720509602604714904670904618098801248163234761463574122021853045385744618696509917845339183883973252629455043400623474712799672882898631821339849499141774848995204292755818677211869610825794572498926561594984406457715506566903280343266187761438914632210759088680239565016859881247278498429799292895114501312503777588817297034387897818011009832573323049690691943637199559357937397946692059206426574465341023631116308496028735654883900111984467296187522342717936772224775489252812274998042513097127397086868985987831165476231115915436235995916002750421849491602170441332791806638921507713138959045607842149018908916636473840876634435385033389317638633459155766621156229086045566395030534085395419879074897075624276222593281999726630612145233445766166911754329073658562041045608559903457128529275710962346636533091884102402656066902795626377314547723814110974078119213480564290936010123081480820673942044700759894252752992647991303308422373970866483209485199407198456494145714817137644504674948341446275049234374506836796503560796436911871289898945694997690913235212296259783988888650694660716749015703810288085732185418307542327370206927013558052628087871248419993506506492726377522407786256065046439066529908334140738745780176692398720404113552268575137729342395408664804605202289554813947692354467603050322277838171292973489277384723082166795290932097934726210256145449074195884240113560565734185938956317096453966616965061989770766036421390235029219882963190357878486625559723606568199873124461288103030037152814112040895405219267325477737239680859748976848514862487516020685603750027983634466431120589255093769036775466912454051262380278445424151453267139681106808924989007535020866306705268829956193671269627946201922004631172750858618833234375345143872588861410299993166725790825054189141137608628783459830485793765654426750844966436422672835319145168381803730009431877768975791819984483509324006789662305785561673179778214803709143715401183668351601121971141183640700993499214520261348142870707382380295972702897823700239665533536997869490694347227436759335739529237058023059058554230179845331512015086170093656420927034017866656156547869016520060139844940639542850074401558897832488942843500123923713740688979198449882037817421711522739264012936402234147403541642103022834290430164542247854045034067595041891210834329155803164103163083070735603170379073704378406811262590307620304034879163474477728308736741473890216847142485010631513250835304808137024534824605483658243253323214594570933322700923855046871357241724386334476666730733157252774567544156381795662582363791138765459171212586198941102923697308827096835537174163127854424695403805543695613495155130684603781533230946122937684400676261952107798907194233035026852995507291869704631475605419763961230184360044657992737522670844528318490854633612602722985256261931387690578536542689695810812213380838177550730020456893027395838454976734569720668829249343969687791006945084339321586328396352492166439215468562399222685720077348149585344279328202741671239378864520124923043569256602140845788577375741021983122109721326536745502348103091985456318140400547046487902893048090367587210595340310705288308532257857152409214111030961259981113145481639693951339397702306122131517574808195992520071685909501237946604264334463519583609012616150457865274401762570620975454844542188167129840903570390916471470381741481124400430551855402295596983988010997466457559821187502896440196609468355749281396102147057835666191561389977205005301825786571811384133354288359556315161650998646054041742420215112825022133842105409424019087730771265939148165535590174341691419370364710386659547040913966297777034431255239984311586834680123458769962294298361347962708170126719191070909082763596789364754680923152157581872435921462489426005439371415085627060568249051604194501454398918468719179429882911391433635071250758067447211029327067271705535108526741437897087044485054393937373374127040711482903269934458279985664280858556310126099635812340087777260409227124362106940990100361295054484309184257212758434065846331166093727609415038952602757531952934448277872695615996518730946425537510846368526238135975117366773647942758256335999892678053949906444480033381400290946753694034102105896132770987700396485905580188029850378588371714977577012997714883480179510588232527252195697237841550761477595028547758422277330334226120201010462892613398188039624879419659723597866233457591245439500713647882333370936283578659851685541126247601367193048732781688394676369017680090814988261614303637077842185995640295000361116870352606158113098652684435190576612420426914047127132870071613075631383545415651660158820897738679465568193286872924344076963267188547994515293098743625920584876735361440515218354736548332633134231360471394607538091663344999489099949069402448263515969176517557967127715327172433118341601245243409345210201865612359763645594468326365584332712338930717474922026532727672237154585084149884976832983647750079509226402745302642550842898277303201868870512817050111949365617891215958028949219393664608071235542926340430745911376267338075930745068957441167599634309967037826089854428860581552827728297472695347352424172089549120127300689469228395276476218040720264098626750880398643525918713724436901206612867444173251999624043083853117526743760951881705362535045896490294257504192187790559820806853616379100317944139326677069161114050307298478633156866399692400066949091589801485263586790470033459512108779504044534095717826605275309917210734120586409952540734323908487132085204043999836504752054577581420081772950381384086771478176086475517127412544214877499877435419044946865503488304296261738608855357192662839052620620117719153177543987152709411710493860914950566541442639288541162945945544749444819224312730208282638145491808687975246425927957747423134069771149845658638160803235909718219926043756706389411475095803838100032602331573282455200116628453501141567095852795523268849866236610282951313412710006608420478788935344145562835538323297156876265750214118966179365702955431812008637378615248184801738511618628187753024545099873141149248507321593470673160061752563402740036686848303529304541277864684636851812839886114911084654438208380513975655668732057828757197182245547332241850058726258638332865196002851976661264687986653431020545573804586513643704628217423751232815189703749550391333326957780319711316943718288767602113002079601885637844969439196744672870994110366036982699384380647908906646360768561587896925234494479295647461194243059184007024939698205197674870202251875888348553934920026327951963186548996853968010832207964915941370381345570647209575117483700752640730565831375579497224768329360718916539273615215898489976239321002407127341604780326310513840039379101183168369325125061631412939738622637003854514987817077418430101188495144680511291101446093066627964497036607584444806537986832839320162692721510742418947159884163766475751665836993909689320595768326362054692847003530243944112112193421365271413949651959094168745737310126884319639854606360243403037399505241056908661486944747021324704030971268672262517013613026492584498569156452453378764124943498855296505851323925099511842910128661694469153321000571454765165214699425524947886491123509201960940648702346954482466085770664732427217183074604725480572370945317240117700504121105682138561220698347988067513251838699528982722796908234202789559842686826335924435891599844799805265706541444690383812372093546219058611112910632599564648606229634598018895791510914349993720972192626912519064188483152256809754787202546990227679839466135649561578577188608389812573492317891754931397712082880626289224356679359322601541866688160565881106610853819080764072375773959037881772733639219548322119102223887809412148007482987676666983232104343263517137347012065133309494164746913125095417662981145190395065694828541031931678354861717015655118301847502860765639059123056490445234646279609535181145512973107630283982545769434327254118902172352648813988824578680129515348078045275172710542754431296893200823226245446095012209358006940865332144873533802537153004114253058752050088194320271489255604474740186363837990881531277851770673451809066478926736705680204285730579520694168050709717751545999708932147328127579467581416912603876428973786953058401728236842618495133846895129766136800943185443394300772320758985384313005493821187381955407096971397231224436358656685427179098795707211367310135960707741171105973631726983733513405646304566812452728678085200309302131341262619884485131738137783753746006186509212103860695341342266116904243228947219875714222932881103584619704744115681176500911817428677859213784532630720855841024354543715464576069575342730253763240332264171954700113970568355567715980206415402525931955005348907524367446408063421018479478461028220153189249958933124831643254543876525220738052111290577871600350780488897087693858202158071792873918354526866501974783833279532394090675708199118210090697832096740965515154737202062776429317890973233194679332761626653731464943182884902990495337581260398605508953631480742487567598512557116388305749868287179958075838912054109992402956768948594759837929359719174298545164178079901470167520383032298275031056043584530599285875828693557485197583543475769335977060505370829090977497744233485354155798559910181382844478655511927871634838239740073048480083867653730175378947907949985930963448387708378261087336003099422853107012472117155225473614009555034840564138437379619689527085902445628028163342422735012342440383281074453476806635950946471787830380901705043524046436415436908585746234232587790455145717549098656008577496463242989973382677229145332432373159375316882722259221546721068147795661659293283287714930923684687690404090830981216394959340885475014363944062143828987899207703717669860188066429969228786461152670116579480315479914620906341531095723493019730238058703508076661302079504629963405010403990579823453156950820648702104838958459877810509144420733338975103731152093942009925275920150656925259188368865768314844319641745221309116654121261099587993579753976133308158738849388070299303726473309990394875058145437372334609115804634811550821953824807354490023039556487336559282628917336821236040229865944477906321886608996936712556085954099403278275805836344894872656931039784795800138566666867670292330125933766530829944257700182508997200282399020645526435249182301968507482038643728652284012915155615236751918808020440748833437361762062052352095361438591314125650053542639260132275163418030007502961071741660514426745114360255113212642531993310629782028760865371122210708436391134724584123452116338628619372684136967095781882351705144773247013398731079454644460896111517119046984005091006531249848586826841240031192733951270791407378930466833546973610599683886853736393056008014665898387544271631525408186509401769340412251964291360852323410539515510877637415686561123998510101515354419849314344474050434452013152400655953604407251448925678073663570609397205201678519066149856615554348105116014753283217854835310370255240850073669042264222124691988655041676957119202224323526863943059423962007164248981585673943493725634973890824510271425110533313702430281155857393201564515738157223595872257978019399447324005705330007635422343755392551165191308569566293194620244390715005233215492497537834552828399056179079364912706965210189886443349195232846147592390527940052740885151097678367307694576048175346455497364743417818109115981622223394300395123251284134945935078669391746500386408971200506386854779119298656660442668373428943063967588697571112890660112747145015819474140026360729024111065894297900133556755812474523343744546214943498346149155504617460383779803520238935623838305726998426992671654239768360629279732431266865269393030526407115761624852133449191857979536642772996123552560118469265062860901874369939743121803325996412541842654322805861582750707706616277832083453619725572935875728575964108692720324383801772778538675852659058369800000695291299659165646705013577634454919845957757046387746503594780688589400837523109748004207651161914715366886879359887038451624591640402766166084075483810352408349041239479144397858756766502281727430562561077358450131217929517063425493823031456409071933523200061888902746888390266326877734571029012242194676688915552327957854655100432921599507523398150561969633699516136965048348897081256009887154143989389408028252644818645796114069264633300064039903577517427024366292854545085588378730700093654005211225780541528046722897721535028185624838118691913297578289527657204681640748394898826459626907170904195193068279861033063409658992347907852276405838715137510637945926557661601454608006452991350972910783736156820294112539165558831294421158234453750433360864413496849436589672355011050009185309218656140566607513560907153912338453514402293702699267276830131790859964372079020075891495261773403156626884371083361760301726604002711117401251406530782636966091465357222362279347537287462685045144485852226916866494833921309875788851686121945281523637556304048990606891178808354908412784574970899059355363732617052062801243326722007433389899133719339877442340195564790176664927147379802222609201755727271397130193656828479506578853474112634603389734863091665680045108658582529540604559055566921437959534694838982269915204674446888940170563532737906421668579124530832728046407985155911407138152020956812684060156529915890201534928913416789112517466059859361278002414461797344795211955336344106216502030637992526353047278352112143006378538196330837642278087224180196314643745459954465120997476166406806313723428666493503726720232976357106250781662921613991912970223052134074489661231585257757252154415426058688348063999236114222997885945367143654224295829500089364151726375065653325818334433600904400417952801377428077910277003419421973321628179089331142566186219509531314479415159059393062737494989184897439758115314884241497563417765888444996717736951963396286316912801906428856222935401580172226161832622147285467524567384342608472772526566394435027189101598621864293310182883680593060016444418199062709552294383696933373891846717946029142273498350100137267409735094791132612847698510226275113516937313817920504886324744366368025457497150208224261716116436008369351549873283373014897161058848830194058687750795961897051827927255580365251993730323545591215401987522022210132765018724722074530709013272798515727873271646431190145677962214103504966513007672433265523724287565171567985280324836503886819137037510853376411150152879442460423798509404735548199438230177032696719612086943862868154476997214122584678088889945739179593487454686498569569747141819976250937472082219612922395373712235882712396760998900760656813755542170719150627408498948916863240195027959308381921732618573902368225646923193246199479412862438161747506464550830315992231952774565404165971613621116952682507641538818157021510641854347553328293836192974151307976537516174756238323277242119072844990896147532910372167520201461054170247775960673109821291874032449536141751998648289219729308199994451728132520981702765188910891629475872793631196522299440122847004162099896973357788671908598430448288345967207273388062603544931557356168828269546157086292604708712792759902640039869916205293275140060571960110764087035598034227184247192378603045530898088190409609738266287615117192021726777169995624974871655529472600661837766078591339688926296603185605945099584366438037882532044671804047067777404303761756034505602366448791672633077262199104969001943898831114414670294797308700237643846457463299562223169636305388901462821080862757725108583088529894744637737822995942192888380926512337939462646145698766707464763710842389121573452761263719985919072900210590435027479150015526987676490960467924547436902510272933729381406177893595746577335874718390097913065524859016245756313097617948214778800610995143722090960206475733199253845454741716163645917716763467399379236857776603084518078755716944826203825815495560798359872426330432896884142793067400734123332875960701666642679027990878394075794335662343315597023796987870409507619604583265031794204414121930085723910420868692019060525774921648892595577230287479309768303475137178438100068674392929912142087507990437300332313268801067465798524333280531043453551547406847314616954181904842694243014299262583565647298559748645377056514929287268243435436031338502483986932102869982610401423195670972683446639375607932905922972648236044197470049221219305106996546191390632891096764128079614016999289199002134490339633521081566795038044175380870993674823179914495433368097798241213583808211215975198797469223468646831184119041164678946568839125539193508410263238861172493974027203557409407656240258195896319036282781777206342462633603625545267341395791305408775777966345993249235388324374402006904172212369983531731943700805527036780606068692030361402820733871947963508157110262544307418669642535818087929313743375117739471910118156143972952090302655591995863009137024372095434618196120398623488373352997236509071494772582277842481894706383119033360007013939033767290737489933769708534985610973737892218102821273216431626805145462461384512132387174410719487994362766255585871347845738386150242400532087541643224061104271979986326291427646880925831119192320613458550237248326526699755115452653903770667154969517787259331295461151322413151798003085186851394182030916887524075031934011314591696625238887362403687191979331189449805274405577475569141089963716431611476014762894526006887516067690623670621583413942013696095175641740132866426759488673722495019018793824443526976034456593260767299266037135351484228436958882353617238400651363277832521329953522039910846312318552587076177349579402912439846186668556950805656636709491087855754823384129409621885196923489153849257285643510300460331692594790677221925403336130841173594334109453667403987949235181060060953505963967357713678214004496045762199050551790538645081002491985087497949631420231342430927356880127858554226347837411503055205429101386215467635249808821338881066330664650777844863039102802963917230062236602226020042138112298560427942309344735167737201937788777868894461678454290989337548568758466084818218889045908266840558113894704218560860994124886662583834686923309725520515722918528241506247793210773185802464740511336260817008657343910154599752071827053817634242723075042173218945152267685345361587662192794615210559629271112035786651487785320890995164014302081405963537738536294921086896758960645708066749499056589747293633560361928525440003275931615587118455770562278903906308435648643604214581852454419774313475906654566257786971277063865898405788922481004047852458625660648562807979689449909451208715249677661200565788228397227962671309355297335057259184824555132834470769588706378476748514561430192765784116592608477023001533808840086025614368906579905480065616383215222653132908017405941268181725109249507179146521978448623482548252518779065382952557012482147391230922663463812909080625682367957998311472224049002496252937042073065029072403939731874957974965557658985467188672759979831711591281331111743936734028532383451363496104747693688876174247265300319120768983198249994436934917091797244393494674407281167189490117707968085024068786286587377595486729979847490022615601521849061367866495355131491121975227273675605803912090086860221014512068764501002619370730510041811961669047896638735855626049273894176840918715363445579264025111693041787642081640954110661281594063953574920604280856165971900184125268384422501702433684527182359782198062205318005207505257307878052995356338719002170055385577424918860476022178199753316943750947148633107681509612704041911798681451850647385074677934721549883259261163748481299406729199489713018035973154377343805463184468188192141211683538406907265144747930737758781022838466069961690686881367296907068600280162840502732735719269687026828559204064462819677536485542510915366343161077281598414775337546771764731613841818923858558565686037663179164738064779271484126152790478619147815462462145129758973500307209007437571206903966951245013121080509012079566638924875195884781816034339051342576847891058130255041242350385707982791123764881488305962033412424210995012142513812374535176485747424146807438275110589011642036826835184473790359180277917121607895946464806526024433831547947030850001948065217261388760705398979689041471483842804158083334771645431128540597518037441639079933904810477482349455971993522864397624604849563127262688945648245656488979647503510855450481060571179092510490385271392331867880550560692593584465205015167053557759724345898321046591828545334212187234696336603394907643364270660365564015087096358564784927951077215440373190895336450853082826979174824709118293422540792244791291679534319435585973264671906358579308537664470713574200614470906760872502568088099042808102119077668140585529134364644465933473777025875664109000203741792987479262011494964327814215356408595545449461537770959138048435850045381116016903192910794563318956954307254826223145566425828076499335926429827567600157774159834723068915514429623936695043831011417781682314142463043692879030854385402010592715915192173276099492040125050572932975916583568613732694834977820772658306077407084356704644419634302082071476380780267150098737280155505677233449681624593043576988279296486097432411643266620208942136583944965867265291368809710219705927287190699069035896873891101172681033520360487220723796525741936214634401828844691102921121339244135734888092193234304230257047722933079404932066057467495151916294486083517594710646467783521223830692546847004540599807864721573416221489725180448213820196327513935341986962894883065950983944205391478634201793194832006489453248354216533225185748897726141805643681009984673325667090999088390599560646194996614704351252402135452231920332122746471469486889648419739573595032255111419368134602345310711944351715545886226221244351561900934222971599895949948616949145009633632760864861198315034147919464496195698739605848824740949604108275070787650266590790632806311598404976685744994256621741548890263832900797377294094996140593902019876088969296216665716499840629471224493135868548254323680220313245966996439529620528369696953163103993303579950750270073627774851266524521557727742102296549152595099688990828236157150036241537777747286053493676342138151161000000155581383357486825664364001772274006179263429704434535788223884625410545708565266085823283655214461860182248483232118268919610396025265044989168813546106145435024823404030916477821871194731968827618812409081947668558554481284816158882726993599377889528298868169694222026983277263883021905451942081758657848724555605211982525011478394290440270874176500945860175151613227874102161762144706087345653570752463174701826409013117786337531824990070437042867403761438400186243666897867255102988756747406475906821913344946389160678234294613312307203195725026132059511404658091204338702142109190208884390934772263730305478395994275689549802670066522772820794229789251024616294030023380222263758554078524586373399007497546658239023055267303127048920713627064458543277142136078136220134423449919322195237688530056566416902772459478504116816105178043098469367667263670123294776689864016083843327193244839517281542622187795768108233713573323717158270085532180291594006383435926213258221276234512821161885072462686549355959635233640992986109893386359695834124021678287667816068457961924455694035977545336185892160048854313255874061927983644237427854165344325683716675862981976374832696571980587128520980007645345429754602800112518328423442690230875677731552377854845435738111456177739913735429838709370047900870848191260087663285355241615245161510157036023506687354378595760037307100238991514655174122825978149231413218259544088634942326845150952410199516475360541315899353791443302595251404985928687397025144869993550876599942896265135724632868070629901101394900809906920115481720919868505050864968455703150448802422401536243170516043227234414282656645209465135995151009709624434787499472956746757011323058618868722862437652896189733127368635518787705098286224753530699402300403208078837380602870642455497624496821075027730089855664212354333003999857562154100434526186581832941361054342830086264668869663944802268902488682643287832845004555396765313022140055344097053153261957678817324647602025115414436141947855220850469444390517760701960260774266523512586647423314768658803375084230517173031837295434712188230688397615710853917090357171116656421415645770601733169349844377389747845695991296130037519396551523499394866130306455481683027640548040841131425939406433532566397455296165918984834472097872482838417218176308447443929931611085373372957377748539282631322008850249184747179972874501424975913891520120743132270246780338824967765912550764262171446684936859230117971421272723556679210948098511196067606539842396610724251796667247453894840932973742924506755678617765601258434804245037688142737021619158853207255155464554369467122392520900538470403043608867661096033907954273274505668404441719736041073658877182309771540695993988763338402258042181283842157116688361131959032655260475205686272446083392878453222476421135080107807440942851138357191142062317749345057284854088805451253176751717897813904438645488175433344487679540155134478689608415550598206034128666562942174016458884217765219207308492064902846253217696996148851368054357115330084365105327500075068798261120315111406966744315485318507471170617705208441175279909143466931901578349796937181420112688222741603252381827525669684144791345035178344536001424501075227037603077922850535114875087853515124479378212570263674961513512487522532916631540874226218168427484082692460185476990919933082504304675805896498160925878165817972263340410097736353814754822787204315977760066764011153910551795528756702808726735843302945532541161359631435962477473498857871226969017081545724416623351725333008926828183174762152242825528733103831217171276861854632336094243047487114918383633003479045861414993817260095325297868200216157056236643066596052126696746310820172719280948969316748245241654681317829646727840151511141807281800338695766619650683730600669462512575851093551644209038268247061217571662698026917344276961668476712562408101847465990209363681115412234700547360218774112980268935494942323471067945137945374680486062496304792000904666895148556913124760451945208365985828708980155403852199300485826923195799371554545661589584763092165948665884962617037612826848057225976029778208533003022295313083209879895543429864424320027631796701263978704165613002351321922026927979658929265722598622160781617168479193092739031881571776817610434900306609740034847282587152796963792945472052967122844499599348902532505853469627043983972856758517876507033023416190694663048298470569112716828500116519178721571698177844579809737565637551121920750546706982820051607885386615651318066190886209194063868368817087320139126232102057985765387932796645297346588526918096553801839246648449692494193581423597434347023501085488164173011145915188448408102278842399012939195983355225184907914139877581751784278065447208402483593545296508360637397344289759183052182576786345246199506348206351274107962944415730529042042984005663025225638571601271939302325627970818665199348271046308264585572232192908861066736571063660255967505259121515660107262098032297780066510208354804121944232106012692154862150121061594592237351218429578901184609065830382193254693514983627904769209972854710442862320598908808560418945778520229798057856316370845767089856605738069584460901250665488004493233308815730737282932041113494584679839710953462142659287613449327250152150038210334344639844520745047135884538997840762896220764251924771118502890138991898574409273285258156045912767185781056699958027581543905748917261127232525958126527327762558607277470665959302070998779770946868570667653327462438744378019308547536887299463465152330226607336147720558419557509920318198258122173170372243098327571058560132921689927000065426967741497972923829902184367557865042689520729963767663159079278988943869123726619838400932264014333063387991407921496818277400130077089874141340338447288491584089170044798886242132575516131154467691294345617329047396341771854287247941115461646244576273103699371040784345998804291983562120499254868695780582874530176435107118460440556755315596085119515350865438281170087491630422388036357746615261750988959780743740400488074884025705896383939083998189036098211445943207954439801149245078372168318054864588451075809987139195972670409822391433198687157692997897983342546563463369183712383826114441236902143677744986531157713567641885203303280536108262248390685163402919322462697273974674453404429827044833628655528574408062072747043027007713248006815511237947732170733288209168942094516838191242314376356974849879605197917180761721786553336571594126045823992005110121458449411061935477310807580389287856535918573894733237187381202055456662645144111152334507287665883933524245693241391513565268090944074992024891484212039634057937229737759112768065810266719989422335982132276338019680074600417677075372995546843200584529196840793551924885605910959499063767852574126690575915875775648812099172452541992860466450287411740057190467884243598907952171718570265636111619280358404624841946741613377322155674123576265122508173010527046669985990821246340577783188717985377608104277622902391915937979433619783481892560131036359686920732376871176953190414423492188582848485068217132967189605871510712430528094806366577594155845293435574661164529248930806041642174842768586129702585402679706111049391625854233346928225421225402828213357840893438132839814278581862074869796347674243072631179444767564870040258571001454022121231974811192938474387835998001237122493177560821606176896937625036944530287287729879273926472355778833123836919672518495084336854122936751037439971771089861180270958861520255252795289499311452494505136870859543215606084271132122730869547714148348665165400814485769259881980264806224627366250460181899581674479868201456120089866197656979145438260663789939227259136224830050345946053077550065672243478907226748293294458404122516538704156217176944040550732732387037788206702541518028641935829285470323325067612871829383403111204898473885692389852953494789513648231207381803434554559557580373210675056644464351814977761168527531532005538369382848162256326357904355450124345120667062776313209481971544775249731815449318453386341615609810060486313493847992011802193530145303906548252860819421305098985874271394703536963450776348035690185446993865963151593153103303032007324738690252121554371383857665980421697286512641577159121248659659028515874708002561179111299679534728763126956405520266023263613214690758016500899225865615760857086297639205070764976447780985629092109055240593380275618792472547801004825749385681642264296203424563620571800628566398058135228954203021639247521839180098911501981597545421125507518122540621111500953530387699236840000641171561964078203940773293117434454840256550854204163380279467326080328085992613393048315059921896908248017294547262160558195196550326168286000173588174392630806015134667059144811943901627154109703303562109132112299951889861816341068369240391200340209870159391952784949363312122899407584230172629262056690485837682602382968328531123853640783745172015397179801703023745156746549845244789757291146117902514722247942565002646839782381737730466025624200366674218059240158158773447468647408676715271766096112676116457003250627279634465756727919740641580463954920040973117782656045668490210642903575311136041440446784023066727838269512727295850321432333909896239448522618882835583391120724517852689570431531067664915264315115119774665451301230310626532609471819154656082392624052944078814626280972597011582329033519109515511650221409760500034376278186840132940928509725175804663526355532326103586354005372112686538981729421893213947388179564546419762880153316169538953796903668549695531478299081446059413050440052105277027182621872214188641990903508959037155789236307458979727151099562618108201850803263331434471598106538630875668379293614861564744148289406915196954001755341331435657787716109196034798791059309132672250016984060675328937405220611452881694772805660939112508487213621548213107254206720123978116663769438443551536245430651008117041016169934032314528048819619665117427799212119510549555816421921082702909809859434862836598852083400570157510084490310004623534866213466667707571479343486366775434525431084419731189668771763499795717373447926538751963560443001134284821163930354408461204591994058573316530552929281237574871691951008205266280635455220116081885377876499811479577987219457331709855046617307465915120376086520907705993196231494150475050754569779756438076672779213269501667398245163904370549179674925458808801657747936456267452294392458622080523781401307864305153280156914705090650979026586447554437906962308660102677383504324710405961037106843206631941690040897788799996367824339056204096812534817888830137996426202252336909297002358011416855092106840295357640704447381128391027114344777652115818670449781667228815264635482438864524622611388830208863658243996874233561041856094386306330612724032627946524337281002147623099376335103734881711026922506494090213364835954319594018904303060562836542734296563822531350909619438344997783063867537412058584918844167900473061186047871845145946170268713255607201601069225725439826797378766129290164949890264703431993991602095680100721757675545344326197343824724635422417554408592477667080352946901877130010973179349473206296745753384924521652913671795191338182601932897187377297936933088743628802264515177166419196101029754617737766981380809954407267486217388206243647336243919491934695728865820824545547923266427230253158955079665067658655324593113708722170433749902317252517675799843474310006047979103048604575800068173975734702441697518421938991316891692455925581727869852522214779639544500110618759169943796530375648293577101531428051624069890951432381303726397883972707412307781458516267884481542725393568517461240807358932745690933257079650524236234436725900179393746055892819043457075525496305237099232914260400890188338519490596457134196925238125533718568076883209954699328199762166583913095488609895164847482931709532478573894119659309458768484443073536557093725946469772882633998337582788981660389412739899669603801581681575312447403914195935135803859258120971593457252571266550454987427244597889843702592970734900918228915533725856014409406097891050269041271085207864001525670543732002689782015414035828093738110857527219332802072441739821569732209336248713469506908736400905245398983982500440311858437788666809859820930247223707104010317404411390824991013937761779469650443516077353903853048191574632203010639890328116193565679938374301518949703334208680334374303698027194591956530276036584089954637109835197296616369996987430455666940196665603259083099015715873907078904269055055338093455893955872932963834185822070521431640106309183515375869397616640589048072615085208912040728416962524123898385829385974267382995240643885992056337178639673988869189738802194732924546017377510469518336232165050530114101871387404310542175771598044872875620212958184359177212341792576836528763936363057115723953829588439063203009641841369043811437148867096931422481527926746283305248485620854243777009540381966988126187920674917214107260762582412350659776803157838299295528201308994341220887044485185411773516523157628197026341249931575187903677096077603886433619595715013628017901167828313686466668447836789943208852228809065570195750202220554336714042880151226478503864457141986559669646798233807639498626778414492840576973148052209706703605741704934487186650857575121604054417890664138869952406454412376489063688924500739483488482528933122772919725993971733982542549261786736913415866125233628504176129060582310545511152437565946023573109678259774652852218688539185132426589944244365188560823257113707500657811958269360980100628101662110381925524258025115977706940930132277385729571799117054067650528856612282547589788264958503678290623125560517888359812989263913422074454444788305931323967216962784245465096230113742899454399683197669052690152437508844307711555611516739966728831114876872316325636943227188724735116822093787278369187020655288486907822506477700836699764867835065875383846397920012991255591771334273314089552779505435732467198212891948596948647756827436848018100816487821469599743242426843578756655606197445704509554930137148428176300703874598311362290426661820032776371790128313834045051415138234690595273354585473459587474374450083388858331003820629656349014939427489842087905878703552502348173074200182289124440506546945923252105950778312113566856123567560657221251864972214729767374612654990990646719992783215294268513623267623119119964924942424958957549202135608616251742780698053171052093908667072893870859070691265877460873821185591486079685828883375011678980110839290545890951962151961974005501889344716858322169004935590662854691685590660411864806838031653675154609148951048061503130649747623366115231158491283196317009375529978174632546712685367742566612919660233735470219993267610156945856122391365505446412879725066499779794600622544358583206039093685969862023510852058154746047860498485127652403435942204996272308488494549186926114525466848485322282957690205086849772103957795926707884301208986830888496561869194942260600362373099281186892332429158752516811095543969238465549570023230373427246159700713381677544625584630735253839061401176967541848137770898944458344436560312040725552566105963416354128774642559769140709767542322931831968190761113229268275480736786296998799419572447626920497658804129474735021973545722002633645020789836384747783015399152661780472378654925919619508827503474532619003859908895419062369495874636271670115296631071631761548793151225121813249334800088293856224284997900124212805581220763106484911274810225282473012546886874725748851355572591811820826387981303374878451694825761666658960029935421779585666923759999728375901056281997222996034128281387106433133933048583108936764092841299657783728104449512765621690127769016772784839909811648503923852815914408850145914999896482147401231133818248946368480204929185096030649440287321988458576831857181510363233038915586818101321774305126235512971593431461654275883692069820685762517956213831941653356380335196252314096150240248214952939208503885821561337425747062884246107163668168867368893709205448380051052983207498554056039945643172073295554093204755712425655047560135280418671195720390920672847309636644057921637609600352200574780953760328251217485813502982171104864369686123246456285213897043316391836521007486754365759716106994197415501148492921202508943437297605336957600120514863731934789109576898003698168925640302050466820495680773827900431339902862731386702712620482001231235443150596291007886499367546557998866631432280447923373434589330429556712685236355827875999097588798849105615447647369769383119362182822882618763864981652028749660305423263734637318543050630143680668162922268961362123939504750930270941424139470498135297150566888283527805065016704837323886881893987096084970902993550508770564243878142206916605113210576489564089837432061690863354548170669874525399646336207884530663989102743887518168501800315889626923181283204854852808744360732912248400569545206985282958633729487421077591419245802738373247183431562703344864152383894525671892790774354363122500115630110218353327282817968983106498895282941125176253631054082826438880195286509369341204864276267028418212188462735387737191724443313683885366284209631105483549439440071363159641913003565984535598087780004166617115930321678706101413995850167499516767651123540850698139025819785942820268185535440235624246929800563127617108995570689341103776247887581723733524068596893907768847909506426529181750288869762832690941645624355580220977655533468369318966043544123890791656261283743766923137938024498111513804930866286849878735977185561683361866564991545925882418394517579480038166505176890913737259670208955790377964869940854257798529997746643973727334732082723322250571518379039312663871546751730532497341570319445549243200411278423941772824256282072849918856321755550826083613048862305597451366310773948534815831470487302173812850240194516496378553381597324232283856686967856496428758605915899091170080257770905654956581787032990313899503152406586340060312461874685465814948257737894376463090189754640700830452688415322991075760460138710985140187386467151096290334097711010888253496386342435997444511916793519294024934950351019236175705964649740192996907366310947247451451444372118899931732862931483970353638986935289634482022084007311820538186264834366519094828577513085028171208619320807433306864396252805847984358493207575751466419472400072488360912443225606318161332809363167466005553194195276111861297398334523795242907378198914045053598040916422016538661064101057372032334800788219062656503705012205687568586101720869381594946919085645089551433006519808840624315003361860089538566553267870212221424318115609622842913122163970549821737385791753871347466695021923416791771068566539564214574832704592956366691169255247049450659225035757707538928588289032869535068666703248007766693501338247579270650705615882568295078146719523171601199775003590898980232414847214570444989772500254972802764116110607035582275228453814744971954497316529716892244232893321092284270761738948451965488958710775989941202243875330808885267226310090593838947501094803916733358056044601270849394136889330011862406462198174326992455698361917180664006928725683297882496873849139091680003150919918879974779490989277529680876041841063726686207319972322265241531591279328269790246044611649712062982927186888741437478807352174070161494311228726880473856149956635677480731266537655636471898211691122171599785830416213491937649190169308409723623044571399797797538140055817033056582904963660351859060916325409405163285805249075517030853534879752226799736263372553610872508210659406098658603826499978305093366219861191387625024483926217945884615743311942943064149370186640797366190397933454751968990130620372491333272755915882301150110056320649172378248564162394287666583531651826346641150020566642006067473261897136485502014826426983076326118021282324574900593345060204491774103501892194618956504021275630764162276048985605272026958805610013250450080230712803435097594237196284999231875977432614402493663994542242854667883519483522252820915248603052650107166419410893001285706386581653984042590175940695670044455744483255029725776338419861479100674857599725466906811652945201605757838051201436509404115214684204086237114876901151771069539961478985062534871336942551456927004809948668018465667374402610692596964439766323739991017504317029345391456253438541189650129299031245919904681824792730394395665647000338187028042713491488392495179564534822583795378044571532010502751194581645136254731920108585979286022995471570226027259373525586571828316666019630209480546742798294985147724401280486003642548998796556612875980613900210340044701840931996605188669358343737323115125961063810744764853532065514161204513155819663278471502490910125153306394858739710150206819333587329675804949107237660199765114076414940071035696551396358489451640694727025130165103442462822268599833886111302698105033410430988830769605381719493237010506863817160241449936753769476206363492591247769151772241427013533866001774538460078510820889847896533860338820617105198648597534444852480201704823533989890157310122345509393933480838152259649475811270628578532452979175249295577484612509587723261868966347130570839236150430751449188315930019259381081180657588623744626674508806625775600683272174856627676218310379182407275473746665815842562991591898849130144238706896176218441025353590862543445899921936217446224345830222445908418207327410201285199509089633301764560587732815320124332581428744644316118563157603350424085506067450306970857390473650573848741723181638071418978116925878261661323714009337843043380353997521858282956378650012346822181133837586540189934514704990399956456549694760314858949237589388453079193248363230763577817089379539596417462399910012816863717549903711964049872007668520619910842393689652198169252644405982202679714451603488484240634520376325285985761820068327534774041981348910605286467645130255393439831965238529144014437561171895333492750938411111669620116552840380474643928137531121105168538479616993417773553985814173535363473964635432588137256160188515921777757847377836058321679945567631383164314089217996046117228425889405008820033559934250666208426849174664286633819394830625106296641933437565383285902715153432245346601499541361228618273721675525903628984400723674928526129169866810673678176615037583683302753748461188869972028683573122637302030542989446985076857553439570748438167648666454473377667627684745074677855682443571574789375695786592136489495127546745546429240577137036153553474707657105232722888707700220440288349701201683776947446877296597811706409071742996360749416270033178864752552655772139071258826109075249277844017817017262622639187553535935013196595858360358140391171801083017340034842894139692398318347523621225628589694618592892984737771081226801706542330401464480628857491904330976359912811838640226063188708189152089966043700725874242577753780657964860178591554407659037441387413675504072232518119355768623495392798196800150435154588981628287838179601210211625538858958530598835705779846358015420353406743494250494680680236618453328067394182312936612227471801043261353773032099090566054555050777337942374196406159330445166908332523421627179619027440069241600443789213675252055244334892702526348687136035659597815162756271119329459268208713239375752683495718548953264066042744835508650157115630959621441783756161335888450160652536808923275417972416085807157168175554851085615716081621095690340587942621549487351368537890432523172623744715240097018556311926282886919507835346766970792549580797737119416527514038018909193481523198794863812284084935288171416585067192548951964927436531113400360860927234164393431098135604167567365007301643056416115350278220449306136637357261864454119125857067075585778281292866113992054237656996202960056025891582340351665718812323619682196838540664040355860128783679578059522309685941450997809507476181036139486704522557473965920706720101428863434780812055171162062212046692176116085228541957867864927839840611482038419501934105358368692001933526785616040963991321547412528319795160322993521633798454293088580272139714708072576228180884711456280230765006007365323417625938614662323354657145898782394971466017793087533561865173571256786744389421415912226648308918765874987853928699484313988078534417531581582140377127687664779612778454981590009518197175031870411754977457473131248538527415485249059786465900541172437840757610739984886180377535422018741922191488166310864754647066167592934738294153749394576757726852495251014763191535947157358216164227284818367133961523222770959992911004955327587752047359634987515000570778972175094897354957996580785255097707069860212912069153396232536727474616180858380357648125527064132434231432741499409717123480447358811600672080683553139189809212795364945758829282046641000152712023424104684840807554872475022104499871973985537279003193306860092833466964831960744973892457638782381444234730519889621621568203375601241043683890882344556623530247038643371767795791818097184840595946574622366879961095472727519229312507065794573491819923171053290203532177723775805629137386743005655997286403841385771751816502347092020265643865311214295112828296691526336773046849049687527444649533247313636621478863620890940533721299946601241356287681674187368264422468067507352246249557895581204671793536936926413249484861738480463714718724899342204743140978017506323850918554651784699189328262753277667760241042039236835911607622684031292051922502633471525980955616426635108707891540030906281531150474596610965348651797137955314261481319328569284163878388547654168531675595123233313160240056469775913856019405062684520649171469399584693800919697743754458553452441240215121544912601821952590709614602557281843919987508817547496740253862906245777433917579342643936304421237366025496081488635398985731506062180307082228427673670395888141163999345300502397636242723938259873572329782807828712779855256379608276041133661799775480599574218452648418320291907654400834355507911081575056694813047356576999953340754504511791077163025110192453251452597730457293425439915363806589883462651622507417624974347923418339189682134364044807116779333663721124198895332390891733388126444688727966768232421858969285165607453432415587175157362522765760092198008232868791668394787968057732324760194326316875740343569177910348386056747526584353890581859448599141642351998716611751469025730755262092578183065555642409901823723541566556186534686169378381333800107177540998328901260297127273791957152919594436432953450683996517875481715696067028004061673842324695649767585525538629066142113542065510788045427202290945373830978902693290507477069830863525313498452073191989017267011889453304649513226244506920180616520232796206421429631076804133571267688769255591269057517862786701706087140527422878098762759996822650944102545655976354364476839664024346872884479529544396970036438959556797276155896020208118037425813018719278760384981206734382109639199140532754338616154529422292990932003911789343441327270954075675274548283216121245625500123250373970146974909476560155209262357682978151414396387656526171480363173774893795406511487235080492043391996839335536611053881066015587564774935199551390754875274027832399737492547018716343483890958019846228292059282223482364209458968069067570898299821311753773054574215672624777418683746232877134008207389136405351731481310473322034733462233350906941363718252337877231803766510238746653337621414569756894587283523710832509283939182448258662792511796626789220119102374268297680315638127060042463270882218821223177046034507542760196943041266444324319638723844955946920583310828218621367083535282183838470546872544790854546424454228475018260743772929450720459805598048556513057905114912652691318210889342805986276706880817516726080017219553629662596878861381989883412373841479465714089211519011348471530732189584611013757128135860237954761102353102882337606492103407541403339284574196593866978255438463757617632008572332764890043642070649587120799892898909096581745949349212102645292009733791642406518612885242707602901877105265177713461205186877776696092701227962608190343447712669209563702079669703961192573211578076726320632938729004547061098665970379149904514964188544888021899445653751837438416591861195061296840711534199198290123957803848848569135957316544289361451556380059816373678385971383152622236983598402422135787636770376144856298513213337503048843180274511629854351233209469998083631871861039224404695269337370789778749118990271143509474343404590294831801713198079541477872515029501290514568245886516218806881370846357468778695673200116071553157700977434596499598844771809829303640819431503293386027812531146986639305331837726144920913172009570664972113392600675266072915669551321744796093773405650639724215626400059676762132371374953840940655688144076810732933637090345692881370504869013511742768695741008482356852354675844208666171072101471624997919646100979116624041929691326092037091605255293455352416339158103360108709408957315653791333672316339774808001068882137897347012978052666179846412002091023122872869400704151245792136866107747321352135114382046258392446631936838996158007610040900437163023284684222890033415261896349021475799602401159269992569240329755503685910113673265475088758425890368131124543052976130944410375314481490581658300574944883368235566825559354543545672555140244973505961605933752570889554047295907152494116118720389018469213930789392905558551805245308352071081024230407094060368910990078381033036116249788034880932034030796439172876884351599393357157059324689385759647009935319737280560376138844476333837431223888862485453081714613699714578201073281254712981660842984955866671660059127700956714818519055240023503746412525974176553358657508768483286838570711475594953043989527150354941145103658735370687396788236244949349625030413475196542215008736826597460357120743554319670015710541048980859353903158551437332717576344571950087941085155073951785384275006323824099913672767964676158589220385225174006248842796715723133356275806716449176521497156359366318493676189754508861684599073395842551392185446211586408750867136459737304353168601027194607767828942024374219068707417466333928917950400443244691950214355481917814163787288449258868473868630109579201469578946508586564212147908427906311018281516354368508458987635963599606402850191386298558322681026523042862863365779391422580409054711127476534139043622685898568752899176413444090965368570223830976370823786080483724044641186097479708597357292452457543923327499318266295256739327613249320025792647473821170753002292918566786682966141598747889254956076681823072373576680215831813460112002186599833516938658288054049429772555970594249462003602744781700866761401960562441727131997640081999077271387240519312878365735155634109097605716800105223389263334442127286266429372441897408930093753630987906124889728937179170323201475999760808422704502338603174631143532262915675976129125369084180895705662398620179758604324314476904179197003678580481093838744963010802889556094398726042146640215374104997566329677043478654603810342401234834896057173563044588612851361697025591520585728734465542415880183581911028828692052803012740339105991328536140822690770403555120358191831980745588546510086504744465283304250430686465774527130126142510751454058496956583252093963215960140140390460693559970418567919962602829120340829536587521382845406275505035908606779768071199930269786770501497437700234538178132860766119977033819436813419435325052808852185999871702543284043409644709444807052994915207234487850519187787981886910153654556071259090116957602100884758767236317527005447918438886152437075902249958585131564854196749146726053767063279892034009537792588626986273905671562930069594314233244947542312901990052242804965613073237812424022337430721351041371990540200446148884704174497633302761730476628780172282374517852590796486947253735967337277737372746070691673583092209181309928184506443385035499136707906343286082984175132411754461403247923350120903846078988747567738404794744486127735853380369455239274934361480655265607218450995999742632757256337319982611657073759922490608424712311734395817993252793082450696564963692727371792462834522641239277946288956567804713900595574362086868271949268940622154291102261168017130583840722097712178340882698187192324181380470518472846520648914677608568668299581352560275935485126949516082314513686107722906260429589374637222431147836694783349072469151608737405967459514318424630542777923267415296032505879368885178392167694075656610234822784570265110389741918110460629917703126454282360820475158060347022751218085571576512635277115253407730831239274270469092170390059275526416162898493398103407612345985053643591967991144455018451128931650757881526438516626902393001425194321815996612870161799278491682721199497273221743077854623906928279080619986402592311195311823454886401016952532223588862534916154213336298928389471879017492238230112514707734629102467086204895397400093775829441554724027151140435493479577734365226686054639882183094819569113054050709653725768857092975343201097741925110028638965582155447739921142088853728128302337377790129130931017084419073921894732625507305626358753141415878679051016150688371872040914035460036833379952566629215288732304302260628371235530938651639559402803911755464173198144533355791225882751642623792663537443063527020912022067945530495774247440536674426681853669127372314779988537515525482954497578396468868277354798174233661828201503394039872479961775328164777400291345340585440670374101758657183983340655386571611413070312538242403057706008142414514712893069080450135089745542777431865297317975849501009317117442568559926516215880770590606568752198237289179103243823543780275181547288132232638719477319745642186974824603554593581845044666923841295535071677162937159502791648699232855803549271599328645893987016796196120055882551001238303093251024196056923329854259731251639494289825817847330617793278268552612221540729554332171640021507098190414644445994653882343977929593891927755969113840770984046216437085025651194004619719792421824163063807582713600164981525722050179386623274246430599052857182169036116405869440874941015344488722040988231625872793634901159238717688609171805975252497391398206538573944217915918173345304011055679736589787597521353061292321242144524117391513752003507680360268943787352590978047540177943043794937528807310375953329489502892918129809813366375499006284954921623196866564564179816839986297563820052283587995215518253706450648865833119408364749063600616030726884121934682514206073360290607486066254853751915805358354154091580696570797626198850148373653587005354602911349688902908916054935571321184162361055025280879454901910681195665017819811792937783797243742437526890320626134348385033606287289926132276061999547846756311082894423979390442577441121290957628502182797108279086958815188684249268717239209252780118711202337282747574290866177942617603112710345177233199229738703304514102353129486082675758796244030774610657744782108430658507395975821223971390675555989912461850806333162227986483007524545532426051971544746604362063652645703152951958473314488615203099239449422489681043907202283323932482435100594742705613925317601422532206211725856166356309458273547824971278090812049170356617380657847807205973750660872756078839190208099240974327209051792688296093145349203942782000443826432103412692110139480080669310507216216496853499166358978850881373102227219650209109969297458908468727211302963913796023793529503547321141709981410587370778186622139649032320641814535977291177508557250394098798013929706705882968941899999471815314830784601981224532993254753901348587333461047224170273012568974018037017965903109391940216198883455384541897532127417499216724694626575376306607527599023741207264250439905440730222823316578403344856698872042730634998119802091637245014236907300509794537964072374079084614633646243199802808113370895665827491801517758521170906154278676066952780036874489229124871252076896716402992496348269905993762004027689938299166884604628974279600115682635685392143561763837646246679338776367448738017633268889430939622383401064921916407821055332422540446393975030771003878062282183039081077330846887743539319386779181628408785350482972134811303138335469912921834988051946311523562572676593735344411682919688889754472030493225702146315021134769438651360108141172865818665401943618250055730705367867800286221974436132498517149011311961769888386729436093142661421459381482938685876015088311192725582212927544200330430300247083010697897158199500775653921976760582095253948315206850379716223738448339679799755444768712275664317475430172962928026409114659220911951148395000426223837907741329025988142522399871494188347147143482494091419538728479345026729785346554918549207993429738555884848434023040650961663101214713420882786455975763829247891045505437211685274618379993138677112507662932132511445318388264182567814987106741813458550734788966678280460492583107169761106504855385700415262068536922643632234620100646855987774382923036216408614792431567436827699524529464981438940265140497586511014804422464220716597612134539196236097478377377834068168461871989053758773040569492747700492733676731484645617880327504220694264276904216264529400156817903713905131209377874382444954437677860060467307997685237508437758030141347416474908964420347601719790034795478674935714562339752446258163192965275706506473207450489758764316509380095374682924667184787888193963594886212632415719314939663748149422858014347099679209320525043183924573272475204258889903310678148300383612881927675817053390797180688614106852182801183971780280289269165167368194548305487776175284105288735394513358057349067722377691765184469443373777506778860168272913897348642453059642791776069210392516464862551880420361722759627172661847180746936664308107960394474033025465959050476800153247857687232970583083686236446715539094593451255620690481196082435137874418789700209936757693674806306757890449277427343328641032866868395874440306598384118621348596741155685912478330293060178178284257854719688307325372096647430755861168965248195096418619560102113147143722428358189108061678266948852627939803197416000430734631290131640315274285896570834595728716214179007025303431861028974282198289516368829518190290924724167069700212417001279754189909344321145342109703702381481685269425732510609382744037406812295277980816420215085038374189960099630808911117692932219480548209188722992195250093038049238757763599579781045971837481583670308248564779624388295352896241415753617563577098642206147945733880178172056207969733159358332412181103081410237873216143237116208905398570913996143462704067269503646032602921701488647281061107551559278647295110606884684631420118118789727638347811274906807625752804858620386543070282424092607288278591226415516945667082289260265126007444673182844322661984978821240288904810854848439226206599795505988136028375363162831485103621435707004361324409627838021611489702373446876811243676047342645960619475204786036854359517344633985997765354606134948358935973140750449513187643715377343344224407584432032467177101957456667077256711512738135430011556996996392745682208247135770008245587211968487503382311771702883031137578010816369432875227727593460069005333548567563729346725409533733177107199064797567561567062637099602541053241353548166564974847175679073772096667298837087350970705341256022995661680901741436159810723274667824465630623117449731044551557878377297080759093777902385101987805877777599854787197140880654557233539616752050479696226601911596078907749123403591139649468874605997417428677315654352365465021284776111966898313359762845278862951137223782986341039049851360273328375184829054571976970552292127210188881129181786524118081093706355425222498027399473818664735281884784885695544561337161090098006813907378100199528958146192565870579765484169126359177393486048557913002574520056618522008371629489682236072370365322946283144227777713042131373622348984004761998170660867252034812578484491844589000455368894910327064934187837996256513588234687965823991995208591434400511461395377000264977279567584883828043905057054487220904309612664661898755528872410294028497832463520762516383124987202487153291080776026161067619238656111546500629256200348596943551717807419081495116128262332055040558374305399078192991065845545147692228504990543943482319760149065570776193594638305466010118217256700029924811151061653648576888442807810610584163523786188859189724684523501710460967601173581609167083573721320089415700724689095713767560254171478772381449952868038343117572979035161419402395641234001257980546271668427212988429736908721358330668213702448382068580893336320126064853771399780878735853171091192762926972060911177139480775857934296309710919194870568341743544560168636311936125438001179985035578604444962064904867863695585219799406927049259685664661997857808180982147345101996187977934578338024911646778273184949340920122569357504763373841449895961954703123462890138797675469358149106712713016974517538857672792505229508576608815260399061617647287077951854861390651686343356232310319155963152915707559119465157191188643037011493130105884213793137721372018128448422068019927041405017497006243629854950139696280250887360676778600438357168394176142865920038499126063646996081926528325238151045459333975663046836161608620277665865280258817678250871015062965016088605001859364604198941496242245556332560191257696917184550739376218987776368563467730377380482449056826691883777495396964329484978499859243580285688822518292992765082564919640930845714395271083220435388551184985568109844367240449864566306196715515717967298379930388783068861054195093827879871441365374759362633973256053757627297117549553402068035925574237079770501748861162132388421212880342238526336189263883565708192402570368055346129653009098320844617739784582414500396924938311082003554726611116283287988270555743665338443881813812417137974182578600376476201435344458268462151058511832548843959713820527076453186569378106779186949476526940516919052500194184483964683595280637290771726574306232399621099886775795118122775247827772423477030450258509025206831493502214302247020183106203540596733053507251811502901177070241527459927414876090927572010524275836465563381409000062116449999169649749316247925260155969652258884891224797723356882783519652109062534901080544023967077880809829350968417570167310613761192093734765649816011638440775413962401023343561267612121687919044789071503181326261500143808347816783309785291045990601632363301777892161408477556684359228459867232261526044174717881866093385565151603585271425634546538004103674071122459944057776170588200428292672202603770982660249030533779892155380906202412118489242011250380197439702579877996344130628849308670844491032105369003548261494083635261466151896867437532374136952186745805561483124257117309767974002445017744823671509340006301837753532549190717098432908209504994953878404025858357982548364169404833130173503578968298206302038702695846815237776169074481612185095852330637063689784302961660641235697674320480703635758210754220551064128073941488949766705072078512925266046373719627096468997835900946665618318606408339402833225137205241066704086956435264505404791723833089364548947508768597984565782453786049301250798224626979393338323548317060465400002635253337994162050036181125115199255771980765079937650653762930153774064246418567429890901088558651270391768751265120454341109100559691064117501333137517273460976508170462590262766649621492013351408522055966207290113604277986148002154446099074648087957663659895231061781484754462770520994428906200961029700866637105627606115364903040172449533836590483491899349813764099486659090385044581194765447992277237510419872928398993978545820587850603495673102484301322185845809898005307714731530886524251610528563428132720279653439452443255043364799095918184749113504170863383509125248572614142800482874218509323831068615107495577219753586952750719267761952318532052357657104343882491531072514491482750570604309833809639918931792719792188768988951998837751756802005916375390577662851988746398705757635052511850689214529074945043940738064121838933643299268338919253715398043180642285474415475181763172564952249760591629906240044029599559375389600637853997261746097710022948538424390219955888439817469797091844808784158082206925594520544276223526621914864018068316046000235221445797416829986138275780342796736705028968725991149508406826793655970495246332223665879929869029987309566802252929712495789286219725844075437616021165390701034492633834599498143868645442017615821464995632578855902560492452792529575727533259675427385390184946559119624325775132927434900772490813669982902180349544417082372757531551227734756069070839412245278679618971975970051322004381005323749772974617067963334065291753894283146384123508088253073434127889112946659736776935450196718084193132266333088038041794759932376175993782702273127816708752521948816181995582283447125104417332199823809651741442814750244130893452372634359878980668273469854018443246138653833026197801889306864830917793872367922918048037732231727207657911850529008845676749460699281097786516348257973592309631560844481857147843939749675203960223739048404605934657824060020296321485597543243796757580918422933037414424741754864369605571412505646809740298214796552573234813450375926992737843083873297740945496203884415587495200931378845690383496779634642466388986726116289288665756795699663255563484561986660652239702943998622473735205659571185964022928927569863825738283477398656101852959763610957014413314617818661743828224761390520927686821021516716863267360086608184727147659797777592065939749307331313124556304525538607837973065366954640777403129204283038001119676174073768294594735851670566911324202978956280973439573255948305454088386530592552609669141914107771761376311740276887639890579813880459893804731779578757905789292281000642890324759064962338638639720410189397514694732544670368719082336040955902653052635818744530890096309894438568019948604986579359338550269207062657273594973196530840916442665226970586059838007725480231044851466363353748512590817552071205090275845935162692532421471106699895854092890715432434645144660208506560778946270797607635669901566703126052047881200588744089836038433267155463828248025680709125145860035138421370056392141372137052206741256237752530479852108105285537835670725435593945325006810910494924233818407090149652804570307338048553848230559467472130859358212724122579751334671423823574702990260363945636606715991226804450559940368979751332637298802097632704002595284790390144598632709447578797114682107544370759720168824502955712530171716615693312912932534133657967505634785043026363289038349466835159389505053731824127885745575324275471839483766123631662343964239780762056701597459110907159487572375110946203768247961175329478436157810395516208343524541288733623431966473429522765168536714176454074813407199598543504414257305910347193091601751209909174268629451684636818446895932570804389771497010516015216226434252833818776255034016065205306879985493712711578052013807435973578850606657189752283530249061424724547457128748642164412919596982300923851700382991448618607601576893397064569261488181413536560365565810735812568389459650552451892338675738461228448796015671229360324248823933700425752053157463443331824983791579805040493919893741415677935976716329747286856350189389173463220312969871255641056752632275311626447863361823063658085129816942743474895697210339996213756668569819337335952050544163431533472994360965266975760689176204766221894463062728723388799621608864883549635682332956592845563935696580919636775324385127197636408977991175850887162540081303163333391246394115426358743615481922115854666220050968801751102935496002931236137281667781345515836819267477959305309314696685065773559020747474675617379999658323736990828810548342576010456277914339302920748828823747340847648915072809814292908966475953241644509380368300868821394835881265769681671113715085227406813801753476829623149115513052394272342145349008937417952623676345223401980282744435609467944230032956310822664224908786036597727259182468015136587003260210672591586008632276825554449608934586854003850416416580305229692580957706921101524690291520451116368516110957319138026271651912879666992728643526447616936471827015538368225711629545716300206700030810801521687320980674975059443360548330305705062941655374662989890542878311886419788513485864295224156466107677063924892198071796561135785081537324040468063473361885067167395946547589838144780377838995486786515659214820705211102125428841852747739043547030170543823912346891674023396874532292913713069494363181707984425211731389252511693009173457108189774927274277114063600061176456201068350397747508479180248378065447071330309543224856765529005670624181949061626821247384973464151261889872782703083639710027604216941833045480069735814272428611275233162350073631700897893769241335090295204897533912429188977521809615861162432035723095426698057084773286894432608101442266084062982725935209644351465940446962384723689022957326408677537411488773734239838857888364689774243106246964090727789793527320277275751865152019360568860844245882513155385198055116243865981626991022905109799339223946821424016371403851539704644383263343861776279513962122989311017710838185957933737429768572090131621333322481429484972736273885038655198148981242804288112473119270336697354146020917471405465315081061475290745529577215544275046910716671545765512734474147653457321916960863966264735356027548125142877218785872579396824792632868475304619596527028959643419757434358046890188085253708372350723486504802882084536006535343353993653015649798208158646587307572924539026015102871988951471863848842759301332179544958053260640383749883647032023743290576246918500930012546334769904263282570968115533175534170033075524639248612748675578205576935289672630230786050669380937102466534347803257679295968077858962741655473445168169969842271587061166647703088624123873363563496908983809085351953723297938101839037263451465273400102842323284443415045461731319255901479472350139096168964348721092354819377342930844714119358792069982893600742917070666953274461761323182310762979108139986277004678918338553826448195811893131151995989898587148827293162434708793686265854903600846600445654533566422657094061623497883518101961500599615681178475425131827900452675727950492017097307759772852085266181840059774228559024123221974878998669608385798437943913854014065204656277637367502714756755979099688906843278568418368454848812339596310525230283929635886756488201446796597479781331433005431393283450415956628177473079817404012821899802196023228445717676982811482834831316867902845809773907728012982680415186742539230366949102777111055577853902193719551720964511308314413885030699025694361603264517906773928475094975637684661521656273885251711738296729027939309864897537854549195242744691475276713811248360078844371117503738084786436024443503902208012779440445366701803900852255366549404103759272371051231140283228580438470692600735337535201575611362703828335760107413088225150870378342037606650433636365232745666671391247683150040936290243257894493979382630605474586329518123254527851995724487273439547317155370687237701647455244965580267070889174362925116780254542066385419046635802611211356162238483088653949553776464956256010381301397701541255351305661689304330428240285239328292729478372922577133377646705074335001675580412478635010788029261146888833583980172223268270957338118333492750128283895809313168665491637105189425774018830930362700100718447628928155536987507440733812191613183747889496344279562409435975156679178187282384289653178671627992425817261946487088819871641077287594159147415275158296361870736375412353483798310913835669892132803028559496971098847894974273326358596698508331942671265837147107178920245323727249198849825797425274444633990306642242075682433929191746366101858999392868408040705588379777514979669403942263868217038845608919043572443126289210674175400319973732300213065477229283111548228836158085655003478080488518425933134694556940784018076451724290416405340625266477134062846121273932715373909483761327267405838906238671547207898792402019243752416798589345006023733120823412864068604514546933060003053307168470866311914973457665023354328379134268154465495618135798151043283368851626395899275451306181580744300621529045744928323950757146622156708882821472167235128721826713629381233417333488902780107552709207091384784820067160207169705941155788051195879907134318160860593431334084501777980782859392141818573751039324525122844721403907595680190005049299415623150127104226925379199524958216056027266557112838136848068530731880506821880739992436749837824442224805567474720524174817793357288788515760752505945987904359387393478601915209201175815561254206277974717779849514424782720115724228256563350076748220850530613309976046461731876362111107472184677067813292839018555864407066065033130302732390048373252727374750085041539273999393785766347482082753489875906963787616180687707999317815978546212498571873854134972949282103654133354358555789420507376698189073721724230898585607842266659135801732657183005093254923593106065856814794763290058275871591013718768918177345150291353502858646627526761512087741316370995941798583369065949805483099053662494892047501696982333159746987127920341250592124329520665571929493891371934365122401204812967752921975823934600554593208080298205663277108244720090963931069491009043097631953070896541884242111509950023360080891830796910672315046175433995450839517303310779340015278419202391656351996454582283850976380697359658486224861239317146240619171371650808085105299171558933643592048684282156867099661830120343560475745140426326233302953373140875602902127249301022616866668392705076329670186656914251178261341710310479713957749854267234955299704712731690766789515587977880646486797878834286869754427778186884609148570081544963410843258379090044227253838423429507429058937258391000310110398285519956728547764272183072553196817993553333557180674667604288206980232061310689970948487517374612918584852737704003880537708126570039529165387960729306930327758539584414641708634863459275864705784439139688763510292114508772070952498617831548953952041827409051480528065248132103085582149947581593146809314725776674366436982754414774744201065875812000153107960872882280876619727015763792397994209718272661945233374124105294916342308187427688065166835290410084109500103508842313887904931795166802989648974388565688270655265588659717127299803395981728073819696245008531188390159064670659024837036183359658264762990421208666117955385023652669001285177864663084308195210631876709848073509374099072914630035098976784716338018948199067342194088872688668322833465573222900934387394362688733554599802465807567359457839052738578780533719726272555872757383952327444842337488028315664077924135673711010687305188824332877207229484774785991936381297967415933807826087145599903307231063617254216431234260447177519271069312236559539767804906044971545669629961555240766060403963333588026047119802809325662701244193973095598448827827431813043393660999621373284425495197797549392117871629053506483491846220031682131780236428846983766091991312211229631555966844211262081304008226355080447338494474037037743345428684613025261471114371640089312777765763852608890380861719480153738468051346063923957687832022762869095613442254652548277526398435776344997026076940102852050799174221617879098216023326880665384022833604191162574582862550850215980739613571590463093396635059611088461537466076584819685432980728231011650957106234547675033510339438438471176881952481565817455973866561266742588619911173099423838515880837271560007186053794104243692953409676671242485392975650831390602584424848525439273372209207033449176027506166523095529291125941910055242732431739493899122549793727028539391624322091138738251564268211004802429796601529246807750603859470075072350725401046323522139621019812671783632563636602706532982454227148067712519388021470783133367507305155833923478047011597054717574867462042522928597223602746442050547359571351035719523448013554583267675107579076879348221832087233669855961466113170301078447017697775325723433836936151211944239394850789139588362142527346504749201287767663333266652454252448652144339309864753094452487104068706135322664632566209645501146883805191577646202657328730424536479914950434074793863108303056580802021593402900580915230357594823308092510182798658858140730403997711983467715822263831590942923891751040863841766080670872604852803691101099046475423414445409372626288231794429399966853042001719193793808041941573343257188308611911082455287970611382889850954396749543438496556278436074553364077867260077858116213098582145819161189660646902303588925729390392464330486748345939857344722243536814899440995805068216611117014430387560465270639627182870140441492713794582496036801722113562785953231555731973622855636791003635212593008262868543286304593160154514970945299743581569497838570856951956197742383240245861166788761050949707562210738606815503178289848581186312800297437617004537158516881074240547987256976028896164819002712334821604329129595142910162631186094839691327617751611749088062209455255746751817890012597450240702669341404661902594014844542686198665519636880790837764318713287044838724569997866431704905303535625043903808386162072482429777579412750226665359312748202829896146666497805194982247117415403373915093360415984574847052658396480144735412689021992095727221438899219534025321548688759575124746092904761194846099236627158324548865433357685856316700629745282252935598138975832960446408239035698794824831109761902003885455821896454959701047101058347889193925816059869840393918854644266830117248388385507786871281343044293831944522695027805775178667088130022789760837354503564714933643997346672493382636450364079073150704035095005704943585340671905842248427821281944705817221435721402257797636484284898387224059160840796123025009846146158001072064108608820302158906891316285784019935266132549948765853948442748757080315909488739570762179861766177734966734276143215310382886506493294934316211475692934270599083135022831657647245583038621658911540522439767597455134464802314438015092704836767283368522422057884143554934072628235620324139982706450945616951119988071191179014361574590056551968153800612845002184145022198497523649460847867729183229815183993120355253699336360263594476431507399396665200047363150684470058755187159178480071259289312576245322753741111908510378264747146894923765660654080651269567392392502343973000052887796085898574420093145133337401235864430304317029061093229935214126823322703381017289393498159133993393549730170596020771722671418768387489994991236330438084063229451558125878109826471212053625927101989408579903322266291642977919982708808819274241630695946448107050543516648517821055805004342444704078395239145818776713506723435147589620350190443756250777212823776956439508690825454018350922922599219120662882392996916094570181182006998483174979006291791145331499042710805090407256992554473456542326784017371095747789525497625083932429619558375090917679280285674338101775176490632141263971939336386624242578550886357439370531162000984338125691012899257959492498371047836377137349729448083870230239733968066816218376000840568234692055301526526859646477263053601804399849333057983157273330378672618507683773302937816529411251352715168196735435119974490909582505231343468936228684672827795278824247427253598390660500007107570070640273492240547202318194628258312046962148095310481665181198663448368437718441554884241066156282975147971745881466646418245874443543699044027768279701730910371329925307147265131356342980697397242853548793392195855736097723525289251453256858981615679520088828548387356432490130091122196266207764074854989623031240244589411606897570647779367427978085764981794205911970178114778837154222953199415370344747229703639857977580197192920180425357110309500986384894730454733839139656209410749410851045205659701957607520964437356088704948002080442738284417389736244429429077102254567434512507641061277860741652560152183980074121532024312881593382731113621737282619685698657765144497547202392048713714528967993614377957163417603318212879278276583043250906406931284728553604918564879473345675620715553529465043996369936369761852861621960134144944326055625936956445785464693315067440454965924187300294013875778009241050628810693207635735133843712406729290856463170385040522788012601267236552188100344751125446257863837565275682708704452244679871503635796077127208334331709054613495457894915603231239097339677361514096198545362808454353783979522149607050895030426696749701366156998398048788221282118118305415177406976725014767490134797956180446684225950518002334665935411588276232790163833765322729932213886876733306455175621809226754830223298111793624554937235964503376386209337329133369904868969287159253169430001383313635545308139961620981316657434659269031299286497528516267123591290763229204119572227467392919135993024990959513234456549401385460313476657883540921427351871384128945099811614538459086475684503935181496890497610885052959278865741436787756208066757326576992876814099889666852541418700392474540105918419359981449999100951666354271839726579501633098362053288554523982445817556035518783112826047882740506235551862825198510183819719511968847279842449369343732384269417091571931608322623082023269544937958240902965196121882901064405232973136296416062481832906280195289837747822417667750680593837066912632012130658011105047238206918722692486010842628407849397917548763813824214088985390976857390165364179815300818331462562190810425959514254679946078207766916177175237219981538558323940782017219436508715535661881323747249816063145139691784618573358248416088957646690665044960828201043152173261166349972089037999957191740472113654142367272160765681385475553251919879984377646845677224926068654879139211337137983523406993239719493262901399989565549327337190113351535059266557961231532208583290797651358874597583762137069070098111532613949846106123722352961007496522532924677717831034311241688097696514837123134680375792959620659410170508037435143905445370042994555024265911835551788966054192425202789803694361927079200449591131178204683603607428658050235497301975308964226507940747064975572519842037620146287827627769083502488677773246903883205926780770803496320435203822199401464694538002174158642025758196822141830381898228532520212076512863419548313265862404754678052998878859264192099703234145033205874770304018774181929539901290141607716087722691767187597833626481043997394196049229532640840771228531092670840144734582636092824377938096542554528077979282258906978980810093053854785205282604121007705519575506707571803591789283880915064932934584888130505069366708212634916707580590433995178703192462949002558144639261880931045180299752354200601318587978646554694744173092147254064136961981352762994909446778034339102606163772830649944656849624706952355397745527851089236601932702579366864809510288090586107360300305312659838922972109327219011934683493251678824571452002625842651706231358481615440180849568273975556861408858222814047485485883057985830977131663661583471864583343009797503047533496650748142959041024468668640592936490164824603496923177555809776557476278988210089470104821528861595865598876537486412600379561343539420736692560000155458009125895667388955479452567796641719878161803416149100895803923876025944998735700888454780012118658486437999136921989677748193432491548624050115627478181026919701804846573681433819919362427986135901238168191791147942156437985225603886620440000671550711122393713671635046517861775892958780193903934560301470350376664137715952250224185239722049098286663857091547547489587249739290289050162156569029718091368190681420000109431588583134718798558898934900437984867436991575549299794244619778602743715661865722550295453550734649407162454785892278526167857924342300722870831361134474763022607953453172059039537461645773805535884380104027604549704620109636256105664346018047659444344953887344408112757436629847101228308665086029653281334150555754954520080958756552881761912516055196597213674594140737789259673890077099801704813382494150401241859700360718221984758740277633646542682238279747215100782861829786200897350726358202932584934824630879277558136112286902766104204991118443495563877767513241878099965968547652612812988707809722895856609030864424734996237023592660224702727883684989680844105787054303380325467622988370064152764489083000300048251552462613334944515502097331239485422298253093419066049540089756959156506824091463354687241126292196607631409155559347937977871896564989403748786955105636616812124726183904334121048059173106950814092759733533678899815811731964592252055479919469109546973112949705989866798146805967900472525997081804465265906700203275200338489279605824076180741358456716784519974651378997646937983539767791429875891780947904249111632403931709303821403075427562746378904072686117930715922999301040375621438512797066957794155306060218888718821238468649393760276762356330570084887264977543167999438587119259890770675457972141701638063525194500264609559966328846775769947621059277751283193870313315324410709057303209911378363921822468839243503827393641483107291207593833628064486730464533129262259741579227555226671696393532198818732181711929125171455438885163823472169786165110767647594675462839011213325186214856414265396840220729901644451489597905428330053475700049232148753415305672570993503151038162199170415715933729828642832505850702168207358785938867365240094096870224006164293875606311823971859627996022471259505445435227529031091102165503411168087981815242274045862775498248860189655992861495311984366111158489880394251876261280694397731735403057382145068306427957005986887168488313805685601403624600009482740642717099044292720692031236932616162106788916631822375816305427751375657139642002840094604434495952151507809099393290750750571895236583805110311608488633363433533158434854415381810771004046093127147460129807910632888831882484085350198674605727920788245825965404233520685600415455691499385057747168828942591770027271254275106323327847902511823864690283907041328026392524997008757343038546140831827341413924312233175979530931410963503628823368408665363455054706936602477296097892019832444432921444358862459258480856078086537529469680097671185640216816155931013804460139818050247747263820928922252280381061713841898142810414357489804820044283951362168940693367506659773474357934506357768395572611036396431103287908217395084083505586448039904916227426198869760762179693682243199453483207229994282376138582876771356361084193705782433341517466210980252867425831921995807753405132170038671128164501659290815958196848894955524138319592857575352035771367480569075028725070639387076672995288047678172760067718534227806856566335938397043366954968465932357393278083703645559933500094352083405870212981093124527938103236344323992145469779970293967760219428891175224890081190284102710589469451055158428877675966727647615926076137519261901533536642629806797128075808334253996240198382558480576393274271845429443001927935709221700494626967724502850076922885758753551277137396516110340303996292155180815455560997518233523467374882131771861692899845896499397342972357878403834210088996056615266700797990551887852031912168521361685553008345366737667518831530654650508245024457705208359073720030993045865179070223774570544049754218503295510207199514151015889857252001208955434986308785594322022171628699842298898993605620938477904323382078396879058605256080288273140553793092908716430919012148026313347935060450636662670806499697028554449315993747486123010903308315186540099919290745579990471756850345935566575425715158890917327184340300838410704586886923216776794476962745438825852408489443935107519843403808176141924159172907196034484988468756441529808541020542511680606974514432642641503387891097694554788738849054663669333751824004141751235471698303860123967239154612724051189040577158666791734704707753299475792845798521333648666976061475585428775623511468364351110841667669255053952245995944278232621468939449581952549123296289235361302841392468365412949972361036037764531924701456548240024073397408297086536170848807561192913708108548559164280977831821000792295642839913468553143224224958293951782212119885499902687074311583512739518435670588037013295381684084176197407674088901011298059176504196744527187674523839701140399290977247789406219209300274664039155992260045678961412052022304419682727057549060502458641826805339552679664885993150290620154132635263018062998089914664477439894589251553005512784841886775694099103307684803133277569390865146787403485367508803977604603128615755647401893825567288767207291221971798477779717323119013641751671891987065411239025565110326493830028364188748797778893669069212710747944900532021570658732847149512675536228774020493749211297487663817449419985745951574911757633175813086962711298429129499363430776844519031015307564590106485657854827112858454828598711480165053079554836448738238278483233046913426416050470895002984266926374936886468894727808764414099276463327208993870981836602335534492158755560282553578223715297946072696907966146054286126490787083155521790208329623468605930770369680482882301383631700913440796920393205554341980444241746588838178725623910106633824252241495732810112076096892312801995198918664515838976289284148434853388211895741180057778651333368898257792795949350411595843288006180787863721796791175489832162299013456165393836552281821284917020645455582615494121313234208949903774473468806070959339505951869183157163662422384987527790747267881992958481222693138964403447917427935407551790499948305547573182825763443392858015581846379244753990242640826620830121825358554125869443398825348272987501931495877092747528486431673690098434564838947293042756481248381826528956010568221187878238707242438267101506235528748381917934412460997787268845817323539574927016338348896955207657940627115302851990310123610279606246204146576042060110274014419038273783119060581678400186380939084062505338737126291076356736700502796478906555789934842404011293985209389727025592510790603739530437026402453841065742233071954951135212493582167324235460820091639789806148906586134669024815885098488352854884670991797155449049779523556571789354098156527691991504692392613791396385216713564480536742941733166746401835647147813749392891637272317173793785851634125474236845520583887626564425804375200109504609667475591316738226169483241588952410500939096598451226506444201871788329999086226285823955934559531305247437604358474397971471440179205390568562300954547258636212383873222494829176564858545969781022306541188011767746533782515417203797276457599012913333420280712589537999207666978772441606488862863208186670515269830024525547078103871546061097130134700632522573506814848993771568249550744767226967269151275039435177472843310044604107917424402546205486352363121616531334857946026091463841558025184269696903637954295519905790307146218492678323739302860107853595871844848260853086204081250458973842575103465126487266147230749731995153345675995435204774717525588437598573280116999043092950121285943494988149361332438282411904409063929305356967888163075145201908073413230863610293655022765566749525729577283457342182270366126638941144907908106624183768044748069999565848537307111431965119934580181287115354314042103633605259907044866902822108107134071642107427708720269255409540243635721451900620650375189654810910390521519363631555829854209625043067855815017733625696440192038695908902414395156855040935448428471429515141394620920568304419184487312484451276814071593797020146372800912153712849855519168713143083929905691077941501804131075518992852435014837756139075054570802111045080396552906798835138444404954818759002719738019207540381103336928187581378050498636003700167136505609303435649032526398269771175479365592580450945213399451567412306076926959729020451820727451789811861412099444211741437753679525173759911362188653382040853524590404195456927361834563771550566626061067311553055944631936492593809154630487057921955030900964654374463434906292273431208149278383129153648147913081637491707124441286594770975413604113432513484849623451971591567966158696681155553534184632534028331876714782599150672282217407608413071139281104820799314423525062148191260348272836253231500434248626532188742453103585112695047580971926732959443439637691870324635943831845527463744113477515416604861310796047036658336369144746331711080631081395623781275333081894432688558248420263278362933521861346562215583949213804782789085616385017212667677243490592347222421616849570770063870471989627203804593102070654448562335599605485055469241796946978087205383718348304229802850851906535482136695495491979027036424059629029212865900584958013595716516686845862723466374151982990270374410408293645447575246235659576908287944988460640373171903805927371228238586499448388759266578278203912362138868888021842079765316039579447622191100107159511124516037749945032957341864651130276737578340941114933068374620644231344459443616021220508722487604779821251033341751962498407465871844501574613273198846375395608216198144254236062156419087347306111768744117494830686546890944120288837137727415361853747719556859957186135061703948638416035364759523773161449133618576556631757520343881557338010922025103484607433234247319245736294622163598934540437677006325087965095798686564633982546278925980000923722638436977562007801196953394436161963004063644200492245962931753011702756909052646779604784994635552579908360838176765876683195984466265778227974050147144924850282268445514269229800087815835848322667099187189454456285664450783443232221840756051433846082257032420318024847933894060714064927912097425746231748294656522550228395043574187277294367928791694796360833376908507021639020541483651600890563613646248025756738630344295866062633306213322635458542216679506239615997378168096345741903270176637418008464445772486312401166139867117408890953534763760748662719911505765378570994119248362272567016320478092486928750284472172208631986707270237284282668882222567199514549380758379199315057974180582884924584567580634141742926218888000865241100252950289839901308747308407979960307782922346714923948538282411585988896985230609082811847232335676434689751901128667273862341408373955014137681816382093817922746350432887953419376910598942380536289837272225237144574564640368296886864567822817125465591694989613129931298296119990286604014802460720816260556657921824235460513216487022535200479212011359463315042391717177588839743149362296444210799108413564293814765644176319783684521413522272180851156374179900941773316879774522549573249317796351310116402807000345524070139063703896436304020500635412080571152716117756994368918487554124629892875360217426616855741134003154393133659887413350869935977641163987852395543815518471199815768642401005234182645351285590224730620129097598802756687837235619643728132087084481885864035474840938316221048156689969006611902704941582045668333200763611662444285228187833376124224678685039566953268298018462744433221689506221453211253657473946130205217978588669157837152727467182175577931392289591876537044235448731256678967272123378233998513934743398143004052550485367560568302215352078346670704643911795846182046368427929983774153307893817555909914058048229299661906942896413951563546715835647098083062033231010469791913095964138544981568380714608378575026213071444100396908974211868376138438547248867801564204952029401378747716437691604454252233295965289222851032988727839615734960727303151571763376212375016208036854765644713601990035429857956219275182896057924631468148530539349002245368443526522427252257800829405175727226859727339669076081038770019610092880344818854437131970631213566566266762710968264265677229620906135469196390363684068307753198157995620871901275393465562965156656899617431152344825345594658110819850228135594735934896533647007404127985996729241963021711643226459808864380715077934077378816574814925822139378432899633025585105309994937308420929217577465849256205558481998918653900540967399085716289514376792874873306896799544407051990015888220398316285150039083817890921689185849081377881160808915032531791290632265125554524956966442020409101102429037018317794341755572427000234504908359601756371144212605239869346496733492068687238507142121864865486515466357281487546488086668326148287467348421554714549617601749274745235351057509559722310407315704680672042150689206644555894208811203636526048614823877824532359630191781052218880242473248156600441599899961767013105339190590942733549961041541393265988286431304110817363267735509170107441841646018667646225544471370739750530943420598298066177885944595316133519340054360545665087786018622343519528722985976947929312618632219828011054889503390537141151599062150136876781790196000706159495103614472439759660109231170372483998820310607935664975848167506283458133285416539056877128898212597858000986960040220267438417145441234079438903976076077850073510009017854970513153632046432659050993248868526352971587763102045509146373054534576355404918375327846002935359298788964911575335794844067772945339235951729522262916821100564403351059989900858316730326422703963287614235199312951143796078842119921118232575046647187456524261782198713535825451784189899926377419034305762261978121480118835039178986408787709095638717725494988936132054378852426301837041818502924644991290780350043602299678655451303769209113676590390147196374059572107434940862335220886102805127953458666795161183124775238057444926997934192078912543664267374935167643308462098864075804792317951327369701386784098237448944784141909793050176235796139334805379330178141677014884054035915536993890115908004248550855508291646751377890300060271068392008569217304752522701785275768555924411259546498667857279744113829115979030455133523271490406661101079346921419703891859593406657468798934322829393453851595293198500964044536297703933749870494885246977806186317576137416975066889404450024099811201200482475619962404587948449153640960340497080649608772899067634054630375266910214991203170279996487876932246746645558522154892194461050363966857517424049185524791516820870793599090972423606247205917280140554669946665671500811316554765520554170943586432651650480930625657807852655330372817020184810290994586014254351195472074646065952078763912685067537288266909174406340842831834778322370858602108729957052523498921903413996329299569556371074414865036762390706605665857458799012688427740491248636076630035336090437544579072749220817320474755011841900221615485812695557554308307469503884755350842275108648967060064994886325203005307597480226615001511708657110016244401325052155629407125993401762115194337179268191426662965983073278675605313788378104047788792134702459155414843741370246915968281733467302858204542534287706323683801770280938319792765608915081641855658507043540223865773875037269542059156755821603765768660999299621698161288850455547800131337119712910384926419700952436601642325509948745488214223070906948444186654748798533548613997968325601265385964058629807598881274841892309895118195915869176398860240787058150220373479287066464694489998142465100687417971896831803507839006347473874559850511755541511002685480783451949108279971907084583694318185775021678198797916111334691899766689640936722415069463383509822632966980945799794351693494581966402715249761475029192264125011319976140443122814797076963442377915537210812289099749195842590175884445049471769029597515911941267145810314087555175258096118602637229691537613753769728623693309765579885385219299108082877785454050004555817815632901209348475978935029438855999187730429098402386366303003124601413514805429147283940802982785126662968839767718723284707790750865224626937878428700588236059668681931689172606480696865499273916964715520387942791092435024438851912047994716111821729710294088940193114298340757663090107794464146616023315768523538159637848226089677713020362759084288228947620461618666941144773883968365238258519461060439487409255163855920156869263740985114209304900564125579498332945594025390058680640145952702490778062419075536484267150322494660808881672042082003274302520292322884173877512498619973769026458709986522546381856887242790965400531126897355125717420721925672743229828182594791411507269253818357026160277930666552570679066219110933430009279930143076714563643783705336984509348252755383523439163740623372099452980659835685557500826734008303153414893689512549109680959449317475377099941449472774272655812186673823198145667096689361712806018239879056384049307054818924941620880068831087943752811265969555952875169851620003028723307456299612064619884010257263771276953636219902057688821907001168218835092927403839692052439721381139430147032930570988120170437940510160495527845470928529028250359350010721389978757867775167765850703147426895865722927001151117725633242660265270935404259558209780411176662983204578770117194094420438014096563557641565067810931219335168194601670130898371124467399710726795808938746415785862307724172498319171737964697403427646137879199190973293115401697607510302120931524847255952148846833199376284595671625728346531633967567239689839121700801522716936700434320290944555653861011912454783143027558325515943136577974720496439203213045848926718691784872148726167777764180069398323366361478846747482025789095269672524708689322411633061940548556748454657680999274568297671966544602760857371770273857610021128776798622258213233640503983885194225223711762266448177442729841687422253997775701209414285590099991499874097606334210838256431969930277233754292403261350882605314427212118308252010183038303700670199788565003788864223246812462639485807868329939385531985582723302411801763360141772995654673356378415711014022257110033033936682184754628740774888243058174337443607107765666666383267431239892170594500610909611991784296753636507076199159011902426537616923049170569133371046718949158501551569665849136101382938212972247994980775488836425197205074227658894171347629965179931633584241500025809803726249880120112965577443947344450861653861447158062366154557559304510870040326833209102360662600468696060723512091719948171987594756209303513650803409685022876917807708018472629431734568140718444886986439634092220625196398824289871470220470004073032119401127129433852708827621831401574521062607372865957293065057797426587974160212262447337857225982223687865323744896562501060981323218110395431800354665702884149567884419208390017539477864475514923214910041939183426714521419259083085886262206802930225683104772727113469406554328719253510015258937591338486507048528413631298637139360238181193042514184345432625675325234200883297506523345187880642277060647028167776625025873396281656592218590628969921236653660992047342016086937934771252630989779603598558638969733497351537867307976661122904583188063362548935918861322506803572604098878948451328704139936376699477395396218144704571601430264984841292409711278098563479156043053376875204918247094408295092717561927909940923040214877578241835912081795560877509604621242565277539177388101199309973685780177095662061392297458923393239617922376484256380991018342507410954914659996389096496847089954630546396465887143644744684036960595574100103509453086916890912855826933004059696908053610080929101906598666931542154973723699607987967508355480319397056908960748073494270964468542697711600759824065506648108406832481209075907685568454626864772276269376186977326454080642013401320579148880900774186736230942031869204900848058402183370066653776843222332700135577333570518432821232214963144701689431616467657684236941662120497846732026430034345995746161117816785180517384976555330095083728707617738126107633049686733204394361152765102182646192395273930890995707971881277998125651158499496393634781578343859724200468898912237686959441851583429021605579766328554707735232539815101261369551739155853245686821950412987286374299174836333433966249358391198815286008914970383962610153040042336988795881739487654628658997493964361013163372850665641639220968490796041109185273903320139649888761901041384546257897546018759891801389170579245918522014586453237901188749651891221206774250232377827210379902165321342887747158684225744248473060674634530719182651102717074451264816890211116863668722866236023050149871884702686326096052231103592181069291899561347410369533761162728908984447534279331136500178132514333615706015834122451499286155145226029360973470718139436543599559707288497013943879664154901742338837051150716625004493624185419689816895413522493810304230533224741725543782413002326793906200638780937247339096309258463613477828958384604865262471803448752044272680359932841611873605480245434697019942226818612010774052899567479398483178089285707707220687571901110609570665623944149439886369869824371379844184953495694045564505690907702562796465184981543165799664169882760351103112892429885594570764911451834868283305435315384445921401520498389840003974958130932949238224919472282751256212389367844880457111190051687315362663912154273001063226548350190352899193572146091530010016555116379128357025453911001954295816507129909916260797039676113790623763554375647227630241416468374323562510270452710559709595908336719824759021557553503561704012578334632586259021563494290989471086516193841832105831802141814384566454206399828469085874348424717975672105322056551716658696105763873670815459121951107822952167673741918314518042541863389434925740386773805822108141133841097840494419522417654184415080554780604002971543591176528254624640962088839428817172381118396848531849629323732273024390127823444146449959181778079196209210464140603988203482029186071023512779473049015937302184743361117141924531114291548434068178797496394777531259327514017072713727730551879264874358805945042860146369023920749974016907081159622809450309160365346391233269506895089974427962142315612797962976661657399425152561101214030574181265298434361357348611083192975856349666484136113642236360945866490085647708491086383874386190955283194697642779499903661230410755784792900513892855321764642959436428989405225371627507797405213734294296754891221015245460394638963742984195319149823245448869927905623426823728171818022527097624616357861195842109447951841737895070040216879514393507086176213086889189663159822480618491418891767727759902403361444014066113068548276706644840997499760651853967724790308980407920431692742954355218056773686620195621866494985982334945272175436347271043640601774191626096876826258938827899566327674868380138085543094718266130176687702474355222981585973737170451017847901336016472167571699702716082301158592779741197212948938350139399212835200510895166653821746491063267352467544466522161395037652697864125314762892174612730720146359711608437232861783973557030057221576227572046597465736147223900884915286603004884896413232187903902000010642356783128240643187030584762222922744512880201626125736256949370564614814978145111335659748361714477720161533846083925595920301895510105037677394479240819408014635850583065354290513093828952989274149863692673343073913458528074232449443998757483359583497657474046002674600951947154656176989352944057716652798060683553835865139570756767072391904792168708015006747681677859638559905353898066685280631806178280600902684378986362625969179857679709338166972756477035274564251351664362343083533812130247828057624321502178097291591428272538228961426376745867244501906454265633192038589442606671666381630236321634560589640713244665120065535575171913919253288479402634800891289117150567313822145513852501751516076460591698960297337307885590653729113639246269959941037790231067148499461444749251870595563214219070991470780245135503212537361804163571793151442919429236239076724428507822460599432350500507169903232447796680998652189157380759530522559376622558144147095608782775938538853653489778229359662478223252346479227008086561085016434122421396061795615155688083725831166260452887303628600568290568730873502414155883398977726376408952092465080982838107834095263637833117578369824903264085960085604758601345612234499063066552745144764954404612135425925365697503512300223283525301982108625446608336350526316893231436371961163078844397860964220299967562322357191390644330853451457326078648806286088162120270933496006724043945307529379311987823081749523028209038371647289126808170856292065741472631077021355812483448075299303235107616853637469632218261899164038552392791784820577049760133096217320446279287144859185996546775214032285715694500263438386764934546982733031983603829840479654252666928386316580937082469771295223053592265336848480036229808069463993944912591765465771536969510617476492367092343117236992602865478752940368339395791843240735935396595425498597892301083299765075153812458987281951986954171546468541382294370924353793031157417492283492520998593673990378303510709380154780537261195697223047213630872224562670478231409694170966604503721877292493179208952035635426528721799219341416623266796071672055517549153026581991409935583043272405035409514206098272255630199484565662261557908397869203501522777478796756566140707213849230086860959644590108085716263541944966398637758357155509293293045704225129670019939510256515770122795169602227814005227792846334690877330837325375600277377211808159920745380029106513434866961981031504388710417029896388414986976112087077731760683122155714641330185583174373018745351911386127854162904624706013201851532886195170150738086842277295343770804906706780877606187117527158905838689773600885309777006949843614421628314731800902368654070691673987779300285611823218478403158305909328739269033184940097113769997018920651109469495291428326517076538200554617092709945190281859180067188000825070241670782633935305690308017574326141340056465847668555800230845336724358618227401548024471284644174199497561498191608801479626210826751221238112907027517206665418488378841604141883516143589871641340876709652941972413959555600525954844818036144356002737695877434127931202005163202308005576872239055046477940149232215587962813429747895527296339576261128187159832746031684259971663754798015582998363341686356002276112174343311981245973662521269592831775963240076524775362934671428330591738528069398684416355377285960047181201338439342227068257483530106683075653698007355215472212937256948263395727149082271363372046144200038735347597065557420775800424107251443744587466701604447480341019989094383552635013098271225617986250934821363485788322855885040148915545926624211240041445647796401529189950599201846935518834029800706243183272733795249139769140413370913036781777775904699254863820499545016160784335961955819868503415182326730054006501566883008110145169259727518920534804795353863481019125489713461454805462030961316943530227274695239597253639965145848848580357046672747392605909116250011655598278780650054637519701190069353235931745457588153040471413857143335373382285935673629284126151064436526458241045088534671454640234039791968347228140158483693955565353267422348394921408768803693625533900487846523087596290120597082294187980104813891550917639753575772624773517813612494308897316719646287217635213435548877876160580865102254699239331822443199892373421354010979176232246783822828442793750734474275451810142793959729406384800532117829091660077703139449058092134290219041911585140842141761462400810261526509482030090319322729227706103309438923550623167742893793491012801878798227746333352865415000159743932166065745118736134574104221895258923708080948698857995845536714644929113245184772683054250592050144696437129613723662733794881417042190993587993808954752829262206466805458198551164020037352033849294041605257844525708341581176548527269188575932491354709798425426509893358574450254489131440571762549280351928223972331720517901186887727444389954360083831697509069268742458539967172006228511402327722980634667409623346914591375143957705081893654530142251140956592476295573212915784428560453415440711360710982706205512568522820735211485327019432394675645375221290566790423373651450086481071137705044179035261962301257705316898406697530764853975558895313115148134155237868070579006083554803696575643304471362506481467500076068658580606990185307300165616004840132554052410455887719664286072205953111041133731603184089550975117619576670069109406560983373345487860473307934585041072896317974206263564709764544602317038386684145808000248200078148195115848559954093074582777779516412644116518365187604971761883432181277258207950988147009438077927380164882746240781058712459255948952876236008295717213406576484453942004643596798533482171466024044949891624755483808136687643527410227748719429780888984060624115628130498809193437154001380362078706449854207367731415934435398686778493013144831312148147230049648816367108054915182293200238547054273874216200633494986264035009858026168786894523989562263101229862684500302952211814649496570033633709781539617277028675143184185825336862180595150407527557966005737362227286492334900760626597282608926159295067700085261301214801609759677716109440971389667014953820057001670183900182291589643046303866559373926002546848242482551542036317588779119425872378916814736845475596035827548483840427350765603599068661743683056891314314091826038434376977921406474232714906421121059666279698588145464994648861633780059136090448152009812868515094453046583054222344021441957185530501167559919998415604175268051969679482141999028856168895595056126961185836335039269363823880403760920220135846926438973349266787262649661336428271862004880477319138055379987280698631451489135530607279091854315505465930924972655280729070202975150540517821851181919315815589876133629040793679304571555115209970111064167704202251331288013056174346430625081271350662806015784208230578927611619509179448319458409644244944616587936663265890039480330732128022388431386537199459695366561247604433544761759042455484952305290459465605415544601657163980256298305010152614894248269085155166110259379225544195059960173426410860711697337073705193888190944772250229194701520834670870000554587801597945663911592025247553928209530630718585587629464488712382961117923352994396566353832715644469453240343306004527460840271845540937521361579394488453445752849316744920186695630614205201212550179182721694307382751315004660489957406560472220462487772035062103992122089588993945763194846409634406378199129425144070968541224683043492480845284915591138721508064834592354220408086269435112800836747418278464039149127336805686923896499956594034765593378386869911046640678459467989243052485672494024436455871871056119946654161807626365259078495184727034411530303580595267274078711473077172656105831598876765445507405708123585292134803045612528414344360473286908531238446073583224515359985487197926669592690296856645564160409715745565844944607634172609799449044280556851725825280123893567886512684972674990110970636278413517305180248548515536623476552451141237328608231752922710825745181209390064492262528542596822917211342898343803047836490123970675819274210522068940262409341793464832162293665531369630416725600937003958710514861592218857503349943917765659954058945033725176052824406466958781079217024111093149409135108811809538864453599470533041739464115715850776850304315434653719130771810706159983275744558770460168331075716614615368639893080983979290045236304949896536151047955375770320394639557189893349203483255806050612490267098830571641859961884267242575205857293122516347296079644801427877334783782888194398011395394896630469461656934135442486703918827695847328978470287547389446136970721072625507607351484002332471208426964274236094218848554891425820098763443523402348246041382445820544628098646559631123574877161538464146384151143387983407978664715271688107234626570639350070324938496724935125486546077489465100882005398654595530872634912872040055863404499877135373454337477333969185182168024053192516422869712310260673662477780563545906296115084627990407457146226239063773533217256546230022847485264164308010891756261639958177679729907614636933220486015627377162677852981797304040123289926889782880261543573654732956646647773640082630213830150934046948568739747843236082496453565990423010218525264842242180847678043733131472715959637518566063071202936163594237199623821205411740973773273302702623367775821784899968859661453047557976912609169077336965321481504075606515588678637722164910548391207139407046178636132785152886166825803440981840762862013330778645965570058719392583501843242596446155282900519029658963016390453016845825013399444566017507955565242208558074397081670170386863400958994830539905687863738551370836876545870765802234282002804407653292112828994426265442610378170372704301351775522821706569755509783579222832623852596018745032881339535580905571301386468863061034236757186678727050264661111320707936108797706310980549008106743133273591740773666406008731740401514681486550093421744298016608489833514913472249006235087229133871108241654292271165632493230963675601801169868879815526288427713269200782770943661031839729267364880836657366968211582770920326469725859024908368033522190697476269205455712482975242931240852243984176922738373010914710129691956796984464381822459685380994390448616493570827923278008774137425897390360672374595237044429670867585758737335132435118326377378389949673194886931885570535810422024766384250795490188333649118647801600631461229641523069689299440330378319960485047116769983815528344071270074360436280073348783114081643596098349770387512052983445352541216578864194390114128753700062612868649047950875887880704990410358173972374712930964861052203939227261205261492312775995533496007458599462074669643636946308484401418879531018350810684538199243461751335869199020572641350402704245000829505513184318814020216768905594605713665346320318207912282573893485963433324663569257297759802684301994006492752536357786382033636386736501074246899544344947175676133562522043897015141990498638368011069687373873174504877703609214503965752366076460040948429645914758839243297024986373187768695622340698206872707272146025216639685388064533602525356394221821619066817246731642688833040957411963155283423454486939936968125153149104410019422757617440780498179729879608560962101793415610773900949213704044318554444592671161836545153069015588538867645445010421052543287748308759492029431097441467946062572256948800453490166555641372658909095998008219311285167258827094488175907937552794505768995757667803329630640390441339724978377561593647713258628388393985403657263290538256935685675670793487906350185049499419714811525978152708845669180668670171335284952454023730637891716362007186928985689466028084529227865298085013869717319471022115129370165648240079125269496309430842182718897855530101081895651113049754219402862077766385532955539776697298006828907472171835030465484359833609785274360179990680453130885270044178242777282431803165299270411714498787728719916940799766963010687265474096788511590666323758330846018987383230226370286938968787065863417067777723201093115226843768314401733946760075350984606016351447038351742857171113153870223031898998437135980569677514586252742435000814784193903126237368708200350032380940999522787901630436588358939666910673069435461922257312366979831488585255801107498539113978441339762175342008583230392346501265235972148314507334334088677518760470761344687178225698977685371013087472465690633157822607284537681978124261643116123315493164235034237805888825834168881985060889833776662205663463217286114049300342825645588788679294763821862542516992353774589718455207564318747631888517880102547794807425045498879340061851218695374697898219698966915300882253544927666681477323235975795572808683908572125539903789132250436799952593611314680943610170857475613952569081465465215994014596864802035433384477938101796208094180002896641239824992284596575325873783257829062007623225803146448270161856833682585987953530989275785393066759236415706478773793099919345146922766868979069794231095530330275116476865150451830074562110847005533997077350657168526697715559485991517440253080748607321139511911316480148153719443470348331316615849867854658901673125961321321430557087130425999414779763584722043442562260892939708105060796339363405762135963963990159883108766105208128199970521036463867886168965825395353864253553693044575043676507070681483641408610530284164860107263490996984980358845009573542989580585510302332967026534563070245808386288949248667857709428363437786713574238799257590505018808996959460584874059901825708755882797376143915424262318624282004076309227284524760416663751923345431130613600249069588692391441404182869590737550220377792694317484377590016618744025559623828055970427796364850642435601261055142425631866025140229221602147059137937637566847015457912325100667562619735715699332470729852437299470548721511369600295065611421866294588633602617349620945424616808796962168814182031273229948060699976263559835063870926955522952875372040945754430118780262077885344097751872748865261841419051583120673763157830587560139570823464284598688458421394515427733791921716988404723768630724880556030974522427282928733558174924937311156196589886015804013067130485763497591857761385411276059317711343990503300284128385972735906315176637162795234885121073074945895644626333390269803539962106023490292396603904580623295737945566092465137824013360782472556280451302393649482711918804559546462202707188061287435586219790238702404408687300664359542254312092576753301040500441293684895188735301373696273376122939503663242662701426936910864829880496879441534197049869224215972033268445501306715894040924820051360182979109977669134058421999992890008397853633950121764819450255483731288579220222558195948762935668700507687445051002005689909188748466398030491450716246130412431949538506039704223593977742019948001965962373218759913944954274882010130573163579018706718561233713447984208691661354534480714658267901190032274291726936047392317953444878191637033212044846608039973668068891824037481505908720759357183402535858562754543825297195700514331642346853587109631795766546918149291485964486908117968414873714333553147933480700987769609996278930917928217212142113495055538348599804495412827864694131078099123582304067615752043157434265785178844295762962411420011971345423092864112767726474057976266754114242303249154235141484497013695019107408578868404392167164446920358265508900685747381089994363598397998676654566651978482764828971104488264712820655955986795997058713365654918323538398512721565263531003865425352876674988916608833460263147492289298011646769158838096745306305286223388271317701016059948954888517575934899481064784610902767457042827074801871880243198952412379404206107552999338395344798402378503710198987648473714661640477461541011983025302009378614643288288496443899910507961799232405796828387696043483181494786243606134770470088545775769280909651026285844151721652213651711392818585598081298945003114341780849916530412046277218173720884376254516362993175677490770498347461690953906187279819709771453654339695622548364107225910503623851673114950044890227808730644375327804679916407119915207405129350521715296479089315586597183650933802170435039852808364228447355359684848480199052240954413441345765095659838104565911618238510888851944394865083205485363739094376148731608378434763049928515985939333100566190552469150038559937143767581468203342019172456067926053852365639076339055873503902369267591409650286608136745491051195770443296582552256311286253938872348276274283386144329949278624301288714703786930748158708370149821286680206484067184972486539625194229288471938176379697687387957872434788134989926981354277391246674041833349176134743160089503780366668036424063174889000590316106091244393453617055461842286091518905279211212888767458735182696080377333984171647668458766411886213680778351334610090353950475589019444377361069025282713379517349080414654169974388503196019090427101799402480513434362148265089827421356874727445040236612167973737509520065209282378063725001395748585298190478031746938668823820435860039160078360184545865422314445140578486086066811649030479925373531438648027801977853360066995940263335532845627056376867221721995758474496832673877988006867786702077382466167485708937313280692947646410348451959996069939832591734369788906458747622699400323258893073660436650585701822022180464577400078906019944126088199312899744427403785678168171031868240901966025970839782210038234633446513165660480145924656034967337178982587881067860075849780868880043734200099441717785830727504630850552892924661380501109479822053223842873530519104518043940403446505846049203766452039162281233595850924114363830100801244602410913817214227895973819848916370595371119643001043287045936995100234077138096113303854387878367347569467731449624117084908806565041617576187024686040993963171838458398568527467451683259286638204867449018747465986284487712873348377568274118930398672678763935499457207321540543061569096445923489846968399884823735520651765970668409909254572828014958895409540448120707033933499514379528709977700084769672894048789186364375415577857759098978363821357065025822297174981855575773125756563657015296240613416238784857216853636827802565429526995179186218053395495197373339441627187615670765719083082729960192802770431944689035987585234118178118203695549207702285543592712613075205393326222917492180477261810459452349647575043354932768683461122989219724003363331346804165521273616675513207992255294039238267212667628930423606183020434023907830515797375687578422896103331179857757059221724238584567729633996199749411953516786198216900680193708978873261747772719730720115459142580906132594199447598986413393269002844303958278565043577881096606554051808202234048035983506284137901584264140084200515891040800592839262547200680406671490649651941789547301790764274465100811571000413427894094224697960799180349657662850032545789258008639094246796628894085751889241724453085367005975203775959724107000296778038570239062733013015917538958866408448270229434897867983468968341410628511431364552409606123114456775930962411952582471693238036872545256456540406773775731335980967115594860077118594128911782257098706112719817891155196855653482809324961053081347052460800364208842186126735163838777100074005951550893793548050939029394057812650681590066140300077632730843437817577939985951235786609042900937059317219074564538556553484068492378475529569799837860642330172085999101386008626714746867848599203577093147818800558115985286639802241231196596794756474439097100467696455076274259483186376071312359734281397715485425213922814636460246754508798818530281853116669395749039865458112541627590464411890134413901547688026238658529668005091131819014105422814691022655022704206967575423492071688392303296331284670683584382742734835276213791365769423959341411315949051306351187949891342074310334888145036186064398916312118543898145107500822856900920831164667975322582496483030142994098260862771418662584293297368188345673377579199513451346006134014579701956914565899529140328408167016827254281915190649827505377655675649025781211888928893371769911032743639341935131276046851577382681799289425671430533503697809872339281448910848395832764011168364794622066440267355289016129540927283805905487361978648146924847485377827373935726881181451293850276654868605027444283852349526450626267133910132072650934228171873425568799823341806637211379125689648236049069542295560406343047345991100977473509209845903281794083280751475028114214707569770937327766416146445999184690330384853647356576091721379712294046701748246811831343022349126369921744775819968200786906461211828701296920922574474515025384942654267164098883870945318056232585618622521274665704395332241058557502214894052407200511021629654404791630963914865783498452462677748063244244489230985378709895347656468181546787191691514022840672143700500029762502168111739930712794493071621781852543489610877816553169753188684983477741415846354996170158528118623927024605608567820733530215980845366871978515093344246240133459363726662316044048310336048737408178182555818044178662807746902371961127892623518525643390080743114327638184573565527984519990554470736538021975257308507211437361554925597282809867160048338733367987145393859762001802754490148068569008941322925074007033638677661116475589877494250662517638958935077851831460620207692701526478404804044959189818751225034471785420984420015411262278336379708539003780736030551859336721414212805264578137843400049374261328834641672074348549373090712898931111697009762601081403459859036885083695221011660936421283311097740599710903851574425726882560772066286416744953359802454349869996027492930126295795797826508352582798291672498143646276955726980012173544050944242366380768277644394174007353679337251306542257299038944910280936068568299356829381190307420208017708845690851472173315255325328438503550325499595136620520685319817885746164340825213062389897147033679934118602002441818572851611618325830931352227651395327883305182636403229107732285197741445960271216195008682740377622853142923860916600143946159953624718116329101017194324780514740837404499392347916820133549890657680291288166686596831084262854273999894162102080493424480867743698436324526936029524369487372559697000186388199077886482813746585727052355567662184018513910508789659333759583101569241901133214785202101117146089121599213610874309558476555240922168652903304877325604189875813676726114704807798833034284436876407297369295290026708304588575908223807423514770784524378487251082223697407575678490180472968759920583258951336668724013142512804318875577244884298582795311008858598347408025223008864333128436535331659845963871622286631564915218959782115293387241508456676130257714525802539713208463292383662049996753673632667141937207083427580407187962557841868691176121843953926154682810764129964853506246068664648929883960863122681794911549763306192038123566003703422559160729568359596391259683778754275030303167269311599441177457847280852402565546935105900028598409013397119773334481827881492309837557843636887126895959969736073502785476475533026757092434481635711573512330991509557188476726528040952955186555478280020151521672670498768188272316334983386415095899468470021808620917850422187788456788306071810789460311014537745200902925439217948542907029135656586602948697224274948535910233012098817008982923327547500054036244457076073050467153350060440634107361643826433246246160323487483165993862594404854459713518235304069342766811590150389356549266873865090734472442361049129497597082298094720360415379527396936349325992051134584366516961563696410640579341667785938066702816161046019092029655937202522477898580734459570680147242921996063378752779409560980887426209590208426431025437829086438886788175536311736110990844787029764287087465337935291821647654968801672797298487132613167729770371726632725017195333302720033297026253189530094395817356382164948914294859658963705114335497751298360979375195223175090524436304534078729732269003269673813570553720583851047939655114803769858567354793832882482711313760749205997973785658443502244437465815173578515872393762791446292303217939458378554260124608464354319141517963966862583126977018850152098350710708146029635462082256479519799881340916873781008341280231114955896587943054286324135405451422873647878542211710947403592295777337683203008509116330135956452467222689930113808268630985443804587880267155529026319314274777466185957496385505786448708449442692225140495734921378986597137536280413396372567031995512651031547932723454407904397765950224850121846055315498175475314593075503162531626477708821308668779218686021030408138575394799472679614095732125111987394215030104666279299920644851156304696544337310585057762563089096182641517505171176550304380920224881549712707323720350425421376670934366214953186438001256964829888698986616673730756899717144071168373253722963649398768307222596703973376622095903204854523881733132849782415861225819571233361223128499966836570974508582392725948486308850540247733530312534038884724466177901704748481093409051826721478707959445527323176797329986552439230608712169950769236244927739576738689431775172189210925034743513353423354025542756689028174500193836003375044045614018399641374163459821693882299937075132936990862053159328081194151403474743096148321192977741141634972233282014831346911504701128648123095778959912616245765130483446059896448354320418055192336201099470308588804823027924206182043296111046325205591524194311045561782579124697612992213656007965156752756484701146389584062063193310099355701607151640689019029471491774439924568845793207022318912021648726474168682861155939186065263632583360541857190164465632121033305373065587213038664741788045894633685007774375146029743029578023813338911755245268431437350403080406718836029311320442173661016090001545337573160487265745141594515541050814007056447330676332839591825456804748917964734114666405792447426480502532398373033509680251029675837206564109257459163125582798018881535176600527866455160885340061989693143118970691219788792882931754461915038371063254204072762060055348181600264172945757696270039420825469880175283699546066786303539970544628625588779994464655512584015130648948588216891894500826249489720411532752063234250342025469378591919787766080321725440769245859355696741173555876274653662814338351465980817129279561012281991126920631506102179802069009990606307359610905788384619183218510924211787900741756405098597270505206358312133364374208270071197854089655114327433402092863671469749883231202783593258065852329682889311679586323016378443473865321396814453031175185580627506663814087602700038187615599835676740675113943177665102199629955019884968580654950898382545349420714605429067470205029671991231610041661627909553032887563029157802748831349082750444973438218092027849722853781536637687841826605600814908912808786246656680294884695492278228756010091509817340061863410059721922497518787122974419181623284181523083036894645780233868084873535837451979368991495215003439506598771236671241904553880071520971920792986382468762949877398368136052891347857762835433758681936896384470109341931062489387351053597862419476822525530238136742604218411358828401642055461631122139509590478533558533002007033927879865664044723439248560812202798874647207069225691768654768842447768226888568151564547255481064369284489190476651861466278634668204310040092243647962362082098297014538020973731733393496663322834463292338562735503201470945809026292316204826333442712974907166532410091811173194585551976654156544954945318711300627726848306763104827117270516740191904206239310331728341846000443850432730923536515438228378097303940829678977374444681509593810744671328331197514304844902624408713946364733767017794546273408228699264736467429128652525195916364566926716032342402808677190592259645429268023167159996781249599912057999069939086362576126859110008412947120443258868125132564197132239149218587768727539263099549902056009083793087472919049010991022444508414284568646845023911855391694635708339187616185759539404208127325594397629767006356028127552685744174735049631843494839051124848659012207450382992677375618439731137068915102008282702613394058709343430564948382654262880067299533083652082389760279300933561926308545491711982784060760267625615370287691092978766074681019388062634771344398951274452824548087639291154023365681857685142776356771633196245243699838191347897829359351976392497926546193675567218359756327543275324589366700129360931456780356287272730301902661260980378936880596010303097116566356358895103475285058954821207042362241944000834101236790853652842527962268850733091396289177244389753757961465024122137332655017175399345794216425402090363220045273786873710478358853440746204372000209075494950074656749161278582883755494932167778544619383164270719351372842843606331341720556645009474056305756219867083066985714026739171078779588029227174140719995372547465186523109672057963636599961767235266724307702333244249535349296355666721403206333269642830234107118568862450508763315000003372500954466289043661167014240317300231696947553168756114957754594894010753510365316320968381144384531566323328551524568003649565057537601619630667798516057461388443202529535320613215785027163611975201905519339436027468464820833527313001174466431742516288062884669338373451997300268057869944682615035632434963543958455880684560879896723125118030774582396267141574381178304813484848647493795363619312029770170306995027577818454056227532822597389408946277046757043021286520913648933861587069894749524916671696628902972131967882680360520835680502119247985910732274872509606969798639307295980251106996543628335905512732677790901943443435423982136943512003499243530229588051866353101464265865952493938321510031493446703227910143250106108400582509299344177642206471984472959015287121964108013221648950312063188675818509341940077602890187791472388256314698147571628276904002907363572498027817073429253371592839895577730289679780059073626988378088018576939893779675598554746537005213947314647460614395305735805261369591477985584453869096852910125104077813199231195558280366040604419175318983859937273000876010675122941525625176199246841110905109858484981396515455462779206709566942331991508078414286305896915738929120872060119026045771715091281308661182071850442623522709466357415966591180929756129252482176865782023315853286901564534754212155442077474122643613096938057824902970256583730232946965480569877199150593811798498557098743605758134284298912838884536207895065583024420869489361379750000855315650217352360406907588966410525021069950296764814938375109107373570942711448067368735624292084837432248560863671822047681492236395996951550021925497248950674618140570856979251374828248914277873566649758412014283441475618123194988532858173824783323932329184242131026235355398703907599376435595310088011986544822223387121877141636739378332675459924605061605746171226927622254781192653311681869873730057030471144837294516742014641322055528518294069724222040121808605962940148083809673370071702709938718421439641991513937487399840583585877432932118460654506696903984244254962215688832394455324333610469027828060558746521911204495048558393171992279725469084244182314886186319799767394755009435283458796302116367243452486832861646716037476591102951316742901555923935599370426652721629988976247893059005397329653791087506618407639798771119964454328597150037245158774265518747102280848066705456256458166845501336469083646021961847892662178997872367403028423226892769716410095501555632948803956400772468167702663019963967174646409985262964448125146411353885185787170079658743993337471057573986394857347368703683678798789574984984777948031207563044558976882517122438185237457287168429246204527123670127442999012567757046771938716948856895500790230460475251793438297429137915383841369203676772592710635918710071690371106116906074125749915749247980616007413821674085403357359863342850398764015310790827167912387278116976751214863987192443638292407515269220528710228076271862319463278437844413500559272311339669750817172040416733214908771618928635263648984608489049890217643604496494518317682567658232158130555434431196602738219958874285165342572320423269546340457477740031661629062768681969765881154481524662508404584098072447522423668707652509776829520657472268505940854765588282307134932525625542594958024848245837332150118347932282198361065448712142340343961764359382323672721737596369673279847801692150312329294580125850699900092733194721844042598013616688339664624571003486438536221395896594006123297546234701001438477411408132908500493802584241250257737876547004911378361682261575898150042131538400972099432742874494813418704376611467029766795834185937441142491410587796111667258153251684454898485020476184238320503999565907689701927988856812633503357616986760043279701144716439533008447820453294394166947957585263240449443860546097606133787027349896551741671854170774761426961541963352637190605070467161781242397659527675979157050975659696366586381177835610639474052300998983192828061762506787902419889559460641409836983078062922105085952226981452567801477548760284171494248558944228331239635016210055166401441737037658285894750248255709690538213928655017234655725787436026560730066833097671311060645670521924914009243700403161196785897287858418700220009660369205380693073479398973287741040050799921112675893507891675522537120475678477718571613387367258080010273218875100469729905140821962445149098824465535467635775798048657455694698713990266705419485720645960784891254218856169534476028624263688960706726695892556723143596318029475726110007161335428000174204248728017705860498455147402328520407638640461096514110493330538332016385636458784512727907760570442496508975994032917106575081847277948800035456003903113328250245516709118259612880605988120916223753122809409973332690542848446014582428824012879873048827711869216424614002713000242958564796724462448366921132518560641077377755538089475155628147119337626302431284736762089231329094524273471206074179121288736412749204351869141791650641914351007148693866112380316712440087344511690736510429687241771506549177064462772651642005775425994811061865457088150040335305697068638191704963887480756021116117579026310700852562089159619838042407159894194275586527315248791931265616794303915497874581250368502638499792098214106379745707129444518809606830943415895754427538998343818264144785779134708747932154634216574444387995092971614738720511671032277922814149105764903762294980613725838037985821346558202964310544491505764576583220960980779790632472436219618082724446870573928822901030243558170992026346489932607375320042513200796331840214615500697395884680635902888739906343873389962947628151373115199245945528640254676836759415289273252250846711277099697080980328479344831367481712998077303985538896927403527166903729167398304271341754252582538750039680547714360956655190511362291046652440059570626815858588098193654084612900081547556545626567799973577173430162020774818311869014112960010988161718566732870852474231760495041536375120548378516046714353332500881766572858144380050279503998108613562331608631228792345781587082714003845117132390922752497244080633703520951056359616967985824131265428829732405019893978593221524104779111787835839254353166135235701811847706412883803908954304505212233070396308009380607096036613296254360738286250578657121115323123919612334343216724290806350535132351914691312414751609303900797124631232702980006083667378727326704536423063268289467671129862035566570102092864586319874742297029354143062219044819638534596785189019723571017164332212029505306918685374193981626629935660436386595030591363070202481088478938071332086568936043537715602434527511038941399694107448681587042799203368898906649389739535083777614299281535286636052627551196127560577297142191343757010556748318286889776853117322370246059127980915060140146122908880070335156199910262808007012911184659660940258779484457149987845951084468019239645691013990087888117158191332720645227354949167784336299726114458048664610560890116107275587940309123655291826201294640144408124715281086279796400549519446597457235840667156104641703147165878706586193494495977727881846077143596653731501134641957000363078502170677762799437736948442445635195867697333203063620934553696287677250738623672057486365453422969756499613569909902741637661040465006338324020891432110546477355701860082832633524712566141154761290416241590642371889099743687050255583877124280476204895284547252674963512870892584151473238768956013785636434687281806514631133066438354443717521870374304343439166235845588356874862259593224586177552807002729814248525369325049989587451230356872507934115764961655332561780358021575958913891306158543033847874529270353375926197571142732978648398855546144746989353955727845060068478354050360321150431068595132019278859986909989097482133418201882803410387960925113593579537059451948660283899034549266738071962986273875315412417263539693225535546145599956115819496257920665716004428365782522581321860228127345573793625633458146080709495878030394081633015543367674810689750893707960283343022387849385851606480417696546381970201993745701334704077614399076692671820638239393881337657674473499899209489253961548474936373784691111589207259498909333329752602209545572755451889362639782100266961495360098591521360910142884777563347614320158406703588817791173054314605629644836029754431292933313554633181063725807095253457542408450965450328181223335867894347371529050327210505753273366611427774323174358952151594084409848346057806388678748872988106405010832054708518458077326291245039832054266811034032967467170175372845476280505978843821198012493507046748360537633129000401346103343909166716492943673237845430889857890733647645408526852438047103715826601441773974975647880152346371450699652847226286642675505981353479830242525869916598841357737431565566909942563678710543817307832306373873067349767186262321463524851376205490310585724704686623152323662000311862513263545145105741629591318032262963764079339337436014713012501345832525702827739026998014089345331405609791807154935318347573751550327763833764233134165390911442306762325160760806405935649684043305246898431851276578270123263988450957624894154058677897035980304523187111601085664143402521503596745040386169309849047005029922115661424241301119101805808580963047665212026492781266416267261366120615935131371765583839397626673995592787061307382230708978403379891352527209952382494480065821182044685615247909652610186697661949230998287104662128396861591884239863821721047469326620808010019896023201036314212718610384046867707792882145723289066111657890879860263179331771578244689397898466330776934307732352981452855340156629268669595120825940144825376533547927051238976554066850325628139835707469089324352717342835500592938345339062188464114040126824775835170237382343900166589073022595368643009771050124393867869610029068706921208844392747220611046193502962097813219701532993271677949955589490242441650805828980426914772318352431424757417530540365327131938699561124733289575958112532520783192162793602892155488934190174306690836272035590488946613069862648865479532073713180393973115368903614615353496359825405971954094521836990930963100808853530201665063446879487828126121127756984513704500114133315740001298835500259219573600158321606414643232198895923311927983053065991759951846774875264369112379535503723429503224739177760538559063287950352294813911156143479734923716125429908852670138648185923111380973450250826763182826610867852949666388544408554193010959196218838318968930130947143258171115195156644500884422220414227896973756085508398677211634560005238903040785326061183229585023638903380358531919156671188059082050089553095602818428008623673882207748357743033819214588996946601253896846666495568597485311193318200913616815619222775574177042143272296264457899072468408916650848638541790789857821322266744092353686884307415728700710719981797321080739157763322939336829827138261579075342745033135013955946979879912382806037559290178944896044498975634554767072540930171113442915041062334054437301838788053730224203201684500346360656774751141406688682977582532876161719536720215394091062458952886468880073948905859253198448927881255436031535874148870725710522778692830460053416405026308124513562518737963601609689933025528859012146692594972909289681658155555917253396729323622789351696439270574313563676205431062039515114295015392553676994029761000205804302480038608574241870433113889663084019838663052332780734760040588280323177305079301127861111412232109619310754992972497687799198930663207256849716208728545122764071449335146768947755119348503360668621140199363001260336234719472453233916141443488033015126469018851118830819318445766045908184965562339923380123630442216092259770063615521040000329260153231396189963401857577474580763186911881529518229311849230902788548597409645746129610021893269713635488890869585907743898699734900933570658362533029690866542668874217915257373164603575327277294956420349463598581855198342399525104785294613260417568616459697331008359891397461075589066312238842046324636110161043390334931590094925653300994611666814973364177816216752577144519583218895343494479743060191027386007540821419124368929932941710634418464130033715334453585468984776332158433959721440634037926432694444319623375848276271620880107222525954279759946186453112445366406832512038926483866170227055656316133099361859463522465773524756043225842883684346455145388174826768382937282887798058156701900910101009450335801737793016531928899817390979867511761566485062921169926233626711566807869589419673445684820329760762124491478291510393091151273619570348133913100758680198003624013999683004067580065443450290280608079821497242626787780113604792911274718414885559896749430228418503812145665907907193910346637132897223261598160982148995205211954076420308090752142521306270492892804504782812899382702057460198390138643938127234700208284348146442400347719058088326314502041614229220980360630368036172309670396563801343238932134003695203492792943798109541595523376414866943267086584128081081989436150020015673760630878976667594871331666700569686703150823536290110185144884977411128085161009017685693437767568503423564574976995185834869570303638656410827115928255223988121001636249109952077324038143497861179158806412926395161632168709569825005017467900795415594612408524442246947591002830192019471435534337012633113828221482422982816002948246899315696825514313322426773133250548083506303575480100455476054717354573555242353357365971581305687261431504189419757200201058614819528463580276320775525217521700589402395523580876981656919444236712722012918411110579258080237543828566516660444810875406006609609775386820131848001862621914548028241355931144758346328682805084863900770673095196706263132536665642947004400215308777941278030913945158448518743319352304157241656274671677515689327305098601604732072321624772979046667079550860413366133638913029700296741076510993308339121441570123864036227421821777678048459698464103458656582443074969014864977267387494971872213433623405174641875924685832661135136942988393152459459388290822689074358085258427315374409143558264542164927203053942020041584817976254723675268049257096304422745236548858269054175714326938646861879967193934853489880986840930935751572450390563051205451653178704009566993473777740489675806247270426829784778244807244393431337367704614754995500065101766006883828059183917889755755323265059373642371156147850495676871298783195128281623732350347948780420995833560537843981677131768771961287059596779185939860871365609201539703545519376588691193420717720063288843254085217335897792617462034955103886157089680143832787426937659875512554385071632706644493552215375462668170485089301816870976981831689414201988794028114880521838470238684867892386095842999381248939368952810127244443030186423012636480957640143150778166028028690221428095484045332560341243324438611008639209088523139224267821501620058259353382776179145228991889537883745974721749408232258695654022472947094369440962460201726666494512142369339200845478019142679036763465318130746886985547006345845856110304651925002682068712772893634681462098302719666081159332262687105087663745800703698650816376806046820697926374667318840461637920738325869450091937582895361149683150305538664739347936548163446237452480573261751919382058175572846121040242211778676881809779693107806613677190206324959646265805585704942874075510784075938517992231764279508134735218566429029164124922006637496011963544168919025066585861048395773475617717157461984038010687404906265160438385592209862312935416265061653957491983736819727933215377205313178678585872277311207413974886326107956605290724425213095347065763399539348579049693307697073341563610666694714210736912320658603198324753905736279352984260932027005396835802454907823461935189370267970962053287402639899998622624171227810636340564423843866490507511381889128717202129881393405785621866169143245890083209181160751293269613316365374498839658128564961105300055443163042823429113274197635904445955778671164296381686790289753934854468942888008304170623970210603067851141959502347985698516069906888650989085313863752551120993841281429789803031386017784798341201790882299069742223866535525303903972202788921952243914720847605971044895001279614521856483350320991462462838693842597215486140625446450779144838397327285962410392750478397746386564261150199112174585038777745459037531923844744495081005385507370595437130120446402734868565350529467378418820006310479409074031042846501148468495090613705855573766197655399668784940762851013304777958551382806518440539618944453426302478309263295253120314098983197739623829622171968258302974354183970998261100037933924188933962823265472190461990420649474555550867925635290990550653388184272391179122102002654108570925261932392373204148444044001347070062831712784106493408048088160562387050489431214961137016182452317131421604458362461113845849043183377090288696516481469219319541070678759316553157789137581165768126520832721416692726309837035955867669489210841639118734504309279700090520172213272151878296528679967539874848801307977845387967948885911069261263207212042195590005685166344025649040061700180997520462891278863567529519888515095665861297107953854446523592991222257398835387989278438024533520718124108342220330407862850162493603748499387181175991647900421653976005841653486324518600942679435667922225528367641240072340209226956924790037872353836996659201528211612963877680436425940011024210837295632232498749399713750102914403740006236875606075281196320719030941406842510165427856219701883976620860500489459449385762747975131809416815596991232120230195743307134940113000432027723338939533963415755681610728607467123284645805380370391636472769062289452988190212692617628431602859858544943332704618356665354608482758467008583369116548070007484213684190019956241688301896751144124589595822147529521426581064852072352174913461260223948755185957878337334664602531833390118961903502153316198426083961642758725559281345488753177561537272399679034570861261673071320954589274015030005653392904962146336803148355963183112331512673718020581301701873090436443923062885860522375355560718581290806439114269261935516997525210909695715061884086919948355425395101471434464665015616761977170035709828061271764885829144837212095492121441876749994370840673766043057056226374337690492013242997000328911333977806074966834850951392491249584726558988277239269159340414182225245338958751761896092848882380095034948019925936325303358142752295957164139689003509017762923909925380359571061556803165603485599342497552613901890997608665372541470546889053509779916179584035183696221466814153764849179755323868767323579323729814963646264315509158532819911133828820547317395514346279979682377535783898051823340475697534351239247511081193516158262343239929809828506150542762992446915135091053590026925304446653202500114875733625418548116527766218293657161342748105000634315986731836826252531426531471714326506271676639336292419131788969069893777711546077401804838268847732711451757259868202585183700944036838229356031271495236336626240746117657480230859394592995749780242639409195106762616307014047597445434344452670150765257211743594071663989742754542516399364145478980221148861421159365281207434291817458458416821448336369133988378680999406098454763508296035289062027270093108998564461163894285652188300907305720750361134344148330542416662075567988617917237028868136343686398367338233299017887613970282644069346787503301035744981914581039440038439837428875223802989908869538977843738972277778895432752147070355704219771309608218946859105030115924145785027698881127559698576969084040588499685110648226530864206193618706906248978989053112460155682271220189920928923165981023153617161773798273421338076747446316164790552062984504158028752472677073288438683741974514729896718816103586962180168656370723741808681108018677704550718354012363662999099295459421134843021932652720002275956843399036308216158263197092173726735464064866432021087129589319347971538197736088770358412494677326436498311271581241133194902243666517391845688764672280450085697367348489573083779622106306368861784532854261104155463789402866697577262976318224449846388853223776291719488079565241003612914108079668651118686048880334892033266014798302826651519762308800233481277323584071122059398516889197894356404324609851557981064220192226320365117746600627828740558036780285093617647036489001608065548301242251141385975292875697712829268546532356361634777713518471281032586500136229709390586856342807795690909996803311556143391495281011752722281835944868289131498618885336430914874654753352780415462840065904932190979519465695641838510931332349794034978046008225464158398864293670887075517691787740977583210441444887213882234984867804318994445218347053691867488922018661224131683715753445107677934652579006252170479469466991167500866089023637479029311775171517011836344045596990441889793163490173653993519782959174940196256908496645205138484163454856393504437952711481611067362344834431530318885399909560748409520507114270843206028864203360399093861565614116339685800768428227924761082872661020334332708548746524003641761114985210388777510936315947172011443295955804466943333005906298857968027744044372824533382095448270200278225762369072930581676741983559608383218298911304865819994754127732405959106116600919533194982008234375121095496230048183279287244522717999649911975764028976249575825236760432232336354267586947340650363472040701610666109869767203439723709796827931805139750712184755951750924952275772294047732166106005397083939988923359305589997815468547923570499846845303774475984011678927207402425558349034718405900025056987510818778577579823300044912222653129735851361865582343935914844063038047354593973071764395692698628230368452123220278512249916339446307502158714266684367435790597337184402151690830591121151876720849435225722503607587197660342146932545196519082711386682675122216895387326860253089721939825008732797224942583030406914173196865805437112198308813795966048699965580334267865272682726201954641327347178846245282656003449773510222361001351666769532773615390634730517174843079939061385331128732817711727732980451647643440162964106101747436667155405391372479789359722641553652399790859256729132529379094326698061949299867351075719105144941200456335229304531011569617630734246449565181404556638470381287294665080353824366332023303818405140842552824288252480468089079696110546227526421608654812355215516820872260748577663609985262553294594154612529963273720871290457064841068789265859178160631339807168831100697303455208399165349817890467993442967449317522618385824146977846966079651803574463721628224063907729797160517863634262385535881256987468550272064269872930531532771180505079485404199928706024850476939044767467766595428574786106597100752706408615680811826513880016263924851970254303517886451911617484548086457628305790556476367140308101783332561173131342800463956964677323437614470628126169281021896023773342475267440488311869651879723366347121666597998456696863342543982053739799028274001727935212396221432090827900107702812508077751120830352219611752355924753841050766159279146450140947201184805356294608815854303813374557584805611248457139607997361168200108703485085101043721639585506356783327586697030443889160246059874948540968116108611212836945492286401192940078705151431902745649385639311980588195498894223476745804666317471683381729611919164908645729083654188072336664195340424771091911845057034669120692224980236282345474475968911460302347395507668050569721080068237160918401459855940171058207873818718906329906928641582888893529192885556857689378003341717053222219501292739919286100191305016977329882784533230464279811725351177440243009856673414645198608011075610382188310238309358415092410350847819168137421799013563003042758355451665466634514991085973304622688806532880054114743798908331160491681600017180612751743937433543946016164994490538913201444485786341634968809791779724799045972812661574167301492002843838583002413134772689949238341475273669872539539732263905429598418304277336393045035238262335514775300025170655615711059932866076929157064857426908626364027294286834013192212768621144783188370782695865167100713206969684909139127941067318521053907703304208092733276740197702220458666987428059000762958566030381946577218622933523473167765593138539763673098502791351017367420205459911729472977170303880804701252774061139513122978489502548436330455333099131250784996344878528608682402325092508949326382807371439126193336099025063810518719189317776439516952585252177296851863236873472400693287031985090886961368410869136725983367779608837398196965537284141294938272059630870546445256813464253747575842102050105062139440992470758995540155625510366523375685532275363186284797603379951582930755657457258597059190697006100346268063440050664940481650505003792230085402698099181637519154919825087213850895007329217895168547462934156982285185722279481588268852265490628483106691167625622150092745760685920597632068337148277602832023550197394172795871391629742170580382003500181661413079506005280708764372903316379588722268577843177081100256057388577517718512380323754596808182944723831098449126216171886111563473063532111186577145268500627925291489083112058040202365641483245567067413457047163239151424793593123275936197275632230241153525230630715137359298264882619628322958305937330968718094781609547529086103517411591477166236543639466931932742568273742290803245865465940143629338208238492327682725752187967936664197072028055008972315777625492633184597677537900696016262912819586679128259806540638286194319619627078130555552385498874350209903667644349642471132577343316728157558407127287306624317797026702074132760773262957654417404345515472380414576925155430866730427468376284971550250203061987676923562630036308376305015066314562656399888481295634988662410987027263810133924423182484267821051656769931828314222340170910689000328036589395407998815129115706933045297462050102620384077651003106244040587467934250474554909156646376925607350755352810938209861903646161383601642285098235297386229217144139967610781107129014554531228672505327791337988387277291117965231672763312966101428640508124884274088174315429372301900772006319599510357022590430299733257743530721282495933313169401846383887509491077399984979225476228178198096780677308204159319228607807441514506251337871516530564418203866428775034786359840260233820323101779250486807310849964677019700228783202192486472941711763379982845796086416965136895538118464804325056450022979963480931475572241071495262574447421170563703228535929262425648621285208670696644835834816362898919110492813193850829382808486352072105547093847334709144722822156532322819000942893197282772380638218273514414127203168782616073569409050286947995200225996500078655345174713465123541477192978662367371296280849491838327051790450399287613526085510453368970140541278304901946992283300182807791258403988105808462074429778085205150673698218900172300870391301339432746015230909297917026681890188434106936366732136932295857833244991504442261137321796629228259557317253563091749368559449094977734476999542339200943732222068235936146948714259977039625141072904145606952896389479052426434852990694188236507941200010070407348585273444898212080616923192232693935736003215688022638979439102065330571193523473204841523232221138068163586168104016482825047840432582611179382233470198685385406506709846312144631199286923364021915315447804960476589217887337130956005095837534211055094459770235486908008143475486998634995836683878768913740125049603493400577778616542510623070301584255791556647666330735752516949893133880828750565456161471920908158869426046854045285151549255073420904712968444012593139403282397993183780444423708425677471688536421292352924951189157081644476582925161954753763679860788251008062862075465892636774201749902295145983456565629803634534602330406512660991091038595800754981221085919709571434057833763076238774738236019254274924883831246363573292255382762955241338274581235536805234417163734355883109590618046200477893601735739105479577735797916254808166600860298728918894740685677558758388169121362237610720589518083539438285769539264955828666636661403669600182142725056439484560428969811037681355114774851885593677079982701893036733247746548470725531501098606366604906222396392719697733558332754844953715783965798414482784849259690319612144655772062262902422200549571622270939050911302799637126271562145328021121953942114047636214396992113883247781296315487055052432936288099460045521875282572551866540978978533938429824475952155428958289955057826477222232682660264796277726433120075066909898022523900676263202675852661685071968904968428294715421035744642887968223802710517918792760389396786817839006331876083911429223533397780763665485555736491884537283578112931394195584033399227400442913602982972623346426828447289398995399835793328384644396819472928892027383216625398172158627261849890345149229545094797688994283692575567436134948886417434951007363330682625632600590025964001522062564317963166781739639596015019410973839006775559820468537878347435375129021458244222508065486191482371799865145463854785019091911669225572129745723629513790734945895436430390246755430484699974208269076920392918206784230618754454797950821014444885926058038774439678200573964212003877096968371852637866216606521805418600646463853356077970575737030385199160635088180888141133360852206487015260141622521738815578349207778944267320623774513691356320141469196653721135679371769355386264067662293285627761162623542829800879645164551192705982225984109860148110342602643236077401903212815696602968011646868904996387953886783372152119967406047424091243973941124463212677466453320862775241554135456771117856666552789360390580926998459685564391552716681316719518304828116279022500775943383313720135949853345732703464390267605238846046473826761836212230262334768391070128696111142639379480540065824794344694770016758047045746084627741498956583645510583023912375744458931777568239965454303288181653941817961648832806969707590666129212389622976358231966437323001212359257655297906875698709243638739842597994654473381041325530149843884131557990742015114391177711753735147471024149676108934811852060481191030948862049769305014046484998592718852654910315261590388008022083141718407389821930438874901383650891528648027370903965089889253489661622380069872991973173028948469729288764590840098565202121930811192733834143518441476581701944367900170564866591510550457269976256827100412472503348103351847651262800083610638842527508064509355775665868775418220678197181661420282106169945286094949647969372427670430362524806174540961589037142184996473419117461351093896219020965262158677706904505568124661043665185102035205074760272732738548451858339482490680380473985719461196503764254428299808411508376713884394320862693214103795578221312269082783316580866971534661303426004955363109295871016536056529138308417070583477470210931151649439707122494623051677746422883141617775109183722364612550976916270973276492159855011771096879616428081429991624822823843186272410876217987031562454543596639874106922855693635257218276777822115166344667200308734178159221572489428035757304109937350534666683134248789733610950091147484064880041595299888065840635006228738568758001619007904542887907242461218562699601027613679978827548565015422831073590640687365934700372331765960149955047674558950338954612952291916159990402958319644318515416095721337841218754235095614760944901352833208201785806261800547956350292749339802189605256742537201345404259337308076342846432800310690331034648508810803195653898649015374061918197734167264983257460292745463291900513531688350854514785635022251395412549832953486106653287507584043719737300239341591198617055232241639933741942812024130592715940300173671440182140792190812710067908477067673101504961431714689017283504776291885966446424594989667297031226818835264145152848826048534997068265268188121412122929149228894563433517583756176041518540499939244569967578262686359088350798620293104810859936972687648961289313177769515241396348756794506584167915178804218436609803770107691441156962954942705095119699029365155401650622730577439784678600394717607240595152346509094724740239226077376428138804157317336600492430226229154908130761438400558887358148290086240481110605453597228194718377061167334526104154167104759589123283211172746303961356852005824456599450212613818857848358405447679540330046114565480026721594681678023475720197816110642102842266797965769572257830432495681717495760879531262728434566186280223482767681343486443970718000868370541357542760593676871473408037943790310342127163384148271951883801745688298644226824388844759737871211402965885426592749898837113175003300264982180088868927571075046659702966493525536055560036361210151564033786583888112831372017434358483702522670153880666367318111248763425717673018965481120210896214923946114491775412348389621766722358430623910387985685451201180806346674580962174557259988301959028166095982016605997305707932307654654249160669895238913688892699364638383474624337367256830920142033933936411356250756730300415202584255777975186932391532608704711719009310720450671325929562604671110679877265903284894193754569446678094917789535501150456183697531771176856004517466989003610101833639830574855263613545757331263284328524702157125702494575925079651016770412766560509885478845530867288664903610209222791539870236422005598784829013230966385092666462149388490143263389429250006920255504181533181164526701677314607945675074210734259783669275436386972600250509592741679465486647807315885229936707100312469987567381422054364233877186968731678716980140581149509998906935383047764728417638949289720792103684232126917450347046590871285044239001547561262319245112582328546223446722508378655710965602544163755420284359067983878785322016603922604400990679919768904642593537427989711969013607997260164096339101582802494828825323229609481316868360714872551088399624804712378831371941528758304129164913629553191701699024247018073133689316901731248436726356453742794418765349651353188745105297287399291620285815231045014299015098890512686315775654582319034668356871464528951764834738305198477671117319586725473509649819885821477250034375812468788872515943163830795356179930059388211663348734568803967617737655487220529788953472975180211513863036341276724670244868165002877697800154463480721011185614592307979700286608737837565247087456578936973393608431897374519442671257420348058302768885315195102503589450249248595923843134910307291062352008024106211079129416747591676792651986750145205603711118875645899321073164476938836769014816235209936112101014486275023298333829922412299858046767222636967170169695093385894332755374371268238240998273847122901535255309236230311497840431101759755773206398144286938154720326169956924650932246716615010002795789791801622597657452907188045475445762612274654471482147195358156837164936069499455011991753198344465686693293896678680911044789971307215455883673279863450053203245036258195807639777319855167156153773506211334651800034675884049190759213050473704999085135108011299243957111860440002612498407341470749102608144923492987394483368941826021205120042598572033030914484325544238056015979700131722126721885440242306010488834758425805399253453904688154617519321235520402977120870891468363552233024762874978888004969020026187876565773051323846763196583593917443228327671245673686149849337833473951857080579270201016207863511138017510216690868829712864616442100661039938809460571662876984954174104205090611287735006079692960860951745172159236711387123929005845905015319990423352030326257767543840289984183532131190788209137589916677840586056476400471746884345253235770727647481103594963450780354911387757346836932200123282626916866993080851576060819458698765568381358222961230020953182881279336048496098378570126866900315941300850668619606227808418663564404547448917882834629852166711177016772548700909941270342939506211018468437870481962921906061661692007186982123567641650547386200084384723805656272830732948295684746613567476734056444874615924184712022839787840138176619111765600677811962561681633414697491795572950380976817665457017624033072831199709490658682286611931436077498712858603829323034711731216664179706445686144128358497989169619381295470816381311362460166521863249029970774947260664408368205324691395751928663629618982385283539963839352007796636697800641617777140285020046027167795939706608942295167820845749713583300857986785881100107132892722939358088203606068299896220606807262504033025571905559229662406013033857480795332441115232531927433223809083885293344445094818356910649385651971854235220302707447365111267577955100371042102283777194175337542614448003532460830128763098112836441845142201213769064610905710016834185852487537551524345364975608997801143223286454764570686675231218117056661038872902087200280105508026107735432944889188085872259816993620276671619430917741954246225503630057662443123421136530369289762489764188987915022070088322843269201035050845709032145869924925944546830572375278453590374826293897835913841707726797117121461057730814306596537249586693628862650509720915422460241855950632358141305553809148301206392792058380556350595994266821170296012614542358520386584625451598640034205763852018200492292880516084047253582738688390214269721902636628992865603377599218750580568310839945103569590831402079189839228300488088137661403780096350988818130970610560684105187591780141917171190768067615696626565089293855560045219410123952765537130470398917585830161128774449262597827622817659486744669357796604192490913699906951954660660506198014026920981275895854048906611603293410232169692539080144385826593449903095455722500947267604175503915614484882062802546122489300766895402725923077953330575166022935430840380950331993452153608534244860757108319311615901426547745750882597084232078490409185800033971704291313717824028026371281776139305741041759797703601489687515676825664067333298376873582364593239616216716882546844073909240921226636595627081513030701328964031815010034577001977771339558944136324459373045916102905460487722871629880197338456143137347232188951840684623216688887533359739168224618339545197742212936378595411043969094137036367539505404221004170965458277042806973833724543457152402040548440321489401675146557354827294449092157301065616508542661646951435175373762511923376386244784788020429557362740907388196372421288466564083431023435183172398997788372546316485643801898654155384181380357885613890583094603926471111846637126599856855858980749837570144121902169317421392674481750277009322348189083325191375689857403885390163331329038254276297595009917068527886870396022300982931561391154292434098372639658718467458170800125634892442996729108819814655814719024612175038813101469660473929331116300097931563597106351576857518624171814007082853321070702650877771996291518074430670702595191107784223462317613447080195287108449617674101580694755800091506846998346298537701364669310878821088045663952791162771479581724812020831179657028736226499184968184796420332103963985508497085779899142850822468506709937816629815168150155883305341138955638689626292749401615013915967926252743409461730517930171896503543064771106145716614460824311885671698211120007761367129759713981201596114105027951337410502136322686638279559067634796498629179947663031959440392994414259484165977763226569073043991447044925132461913075463555976348813200736485608768192830563181740001299180992032007509633593598703314627719079850855215042794891071308062220561367585034511831235893343282506621795442014435710848610305472868930379307749181947282563716526987054008735914192811888931697136301247358043080564677612396348669012309525070684776382097841012180618802033692101427144179917320365459459576429542601289128435490959065845640528643413023306057487146282518481824158948466492715849924596690377270506003834405973017257776365341739958030785067761875770573018844591523111543436342597246721689836232181031775653684680430512811175704047912812058720169791647913402206711963762996591678770286120860734916090936561852957679181202052720594453044668720687316911170728738477228417366655816297800651626465111934881270066840046800981348911168541452025154201580361006268003729800228401532386079176191467048520970726556054934706537660771097826202175655280673340085471190784778577555862147464620625142748837214887443894026380531276737309921389371703576842854590229150991088099225709101597731763825535103694528377696447504680799239583831188335820395684254256406729765149491657644576625122988216785668175976533345576353131117030100450676343990893036608931453171350314939156569602069453821156952555883232973650622608895646206267417586693417329165943691911126965566726522636346435628620165229708266675116783078447508527052457011433799348580184632918546297328241254169809537238564351651398710420081477929507600090255806422964580466680591158139068838493156206846577785545000133589378566712363362871777434428049409557894043055903448211035569029178411619044527878815324324154031396385944166952978420439308608622235604708591963773388132274929737973776024918764822177510184839203222829806472475345293282758742140829135572565210807141183066781536017329686608526300993099459808149159739138695142391020553991247793595852718896883193237722992070563987208268449530841884933528378396328762933756731691795539177722084318544191962467428472732830120485207971462203786879855569622147281703772667599973042696025887923040179316645942323198870438618219210450217051183246804855988103178552373163010034715119004860410072619857729004447449848084623774875833819320481102767519656468062566683779658132167235403120793135781849889274212258951333776892118258513278064660503589452309904893845595795737502474910858646078973059698563940365098909175677225242753313648395240228083540240523144812787611453369141409794310762585945872759019482547205684025324309678837080270212830116250559274320500316429726137621704219113030414318029034299239527233156800159175377305032212132305596857400825992863753619354862415125849966009946344506136472051407747924861105734646241208455444925929497300058044040502586718044914074080908445883804475918679491018884998725555519218310602500088039479130824632335774040095280697644389768795722461930049683275035637730837188421668696652623782961304150734410548720729049115650255031548973616423090877162552346890148996106198906722918501410568760583773814458514300602854945517344480173030144899111230920621200458470264186098044030444122072620053286232123393557974794409362639551264977406149891211902935959567351510452946033964383450594545783121900179914275416219113127744587518846151958156543297962258574946491025281493758578857443786950644112891999969653912601232348935298855651354597897182794287964572626244553114364975530655313762963759058698636050645633298925160995820306646498372395170021355488388275264494360952620264749923913990823181706414206527882381870269428762737282181324679823708166815306456372494897312536879410159580765125830246292173682963423889806910414601385069766619682403586654076368833327399969074332756379995830873072633654831403654334617649396776558265769728234579449146920169268199397361209731728272923444792204825281633865757393348889591878858412449403579510959969435656774593298129324821931483921672163854872321393854701957240633822848739388272682960628687268333876609473539893654239884303708038013654210754882274462159879451082342489917996697173694906690846810111672924585216574067296198067138139715624456103936551399847035840824911097473478454347019222646204087220279744940611745097389007725365216389564264244102087958450123610633180142728083308124202077651284648476620555302013849605117353356126464830116242681783812934340218476493963423450892691218054407695823668331352495452530339203870409896385910053278796175713487554693632518575784556906143770769728004575411171042148244681564922879923204265186675032962067425140464802081066065917533239289308656470531261019968953936360093225396350927601151055367644905140117614326538225592279767011246188139815044816068763309764376760823284014615782746464211292950731850322484631336599732618406534121711974229309124369079748160415528891855203887299955108435881203259568747027474195676277089076240112283944984933353282179227362740244957268673996764874995610863356882733771221101217283352666996099560086653329803477875996505342385939034142299590436305828398053797919887321715726531180711003761453632042161139186794218676308376070358645931004937276170813190377833516080220794867810391569038368557066276746292097302180998586161643249479815389424662568213920549954645293376218460653606454864930380627267045223197296959659865576909238197820160628042156928173418707501702231984166620875677949452181868806494589079273558182124170227260464814474894470358371385725412258234917534017606474668780604161653432232491944573757734050822788968635441628959806928468694562571887811967240710008145175127475816796298764344921824236911121980824940039907056420925661068525238348931400871052279742623541083427686904751452296595991447986869346068897443345768995029434438649659482678636526682406640583368633962538783616347410855984328533840496573404865974082425825525145819726768763555592568823010956743007147731704194319460137073896759411464679014494119060535888914724737852920838456601338920302818207964908046172770308301352890166857230836474714113686332675175100984985939632917094900772884338758789851790353638433241366530224675948635218089037628644564927826317751594306329310247780774034631804304678679990611691774153065519208122502391104081189673890024042615211859708531424100953759876201845670538313800288661588125213935433703569225215084943756048818849931887474310439891650644655913178191758728965408981892932399929399287640753490697356516520671406936718198400652035780030282534794757354238269797377257003404065109716701542293614147492634386170012787876120099244790408159196656182496539167207638488352279973297849338419660729447826521672238362095013483603180731181668874281799461178549498721659692463815138452251384522670164236057800847573509832077480268577096028813849320677366079869943158625267656594145917269953366736102584464968168229790098431565947246328404557674966085950754431929789600491703053445108505360539586724493088639883032482361201827790374118557647833522365523949476096952039782252759646410391827551545070179790637910085483430239333877734879343337579561976577244168651945159540562177702204995196148569364564337991715504543403727408008893589942577073096656890855486068202580454309261434282265570714937867552536853719201161255268906164754664312852115699057962874305612448792991773983841032307017781062036597793738533788801538049962802231680403994984240103792492896514925398026418678863571986770294619251442294614145479207492961245846020530144571695813393584261213791295893853275198485213098674542113018694076659497335432024465111593986043087096712517860021315765160939874652995959499930482087438575066388690922691887983608147001867581135713133691510336053279808803680546319094836348833384914070976904687629284682913484026559214372071262736085822756819866060799982011746131086438794232561618990470211372846576752286960490776257664602620964470498995002202750501073279838708391604905292547725982043542345129563375660198283233350579199257694004686194220685816301782419863258441030802316372852433060346311636160771688941441925293626059561609401360245044322795529815844321387569953092127087261014597265587706133618931273725074489993093766781855831846016280912336951359492007194376083585285507772224496558180329029550572714171328368682377954390285939737716477308057993484596052953784858036978385796282779236247619632021152875119867578576465292936195506989976614976835016710415503642261365923096374915540616110845942463671567237361736493198971294283475628895559207784001038301175105282019294540685155902258909945844195838766396598901251301502364369744500575035538148680995660944464335481118326570069884281529273514327189251349413098269868429038366916319404265670186999893269300607103232054440144551500303984053189237934680304890082324726792498402224326081501754854147411235558485044043261569837488601795339219093182552253879061288705374826677610729633265950693908107163944634023646841018464227641794563671649592185080452341176961931336327880522131559291838316557046870433935304993445750224247548254742536744126602276156821415648681971835281963136074268212313207809605496102375060982189104603812939413662048287749317287738760795990933644671270648673452323082129422184118785529991380508082953411848454575644077120540240834783189015285090569631904155782729563940502073884201132184377407695553546073210144603722784841790503438227822113523660515295787664977849662512884039558727015241756689303719763412005652267239190426028762843479663262723169214822528872402444182999227308243437546713939076685223344277827672832498041471697349186416694753368039376823285067166443823833384111627885861670481420583280378790559831697789761905752670196771745335780413899519770630535038116688363052220826565457324831255543658106377954767490458350035034966769481331836068643708770738440139792236147849273707616225445671252715000314834563405059242325430611621867761698076030959080709942570435783858937577178671797689693244774971167304321001358839663686358919337254891796394055704518756399015747604805888913723393855711670114765421706645885254291979485469803340143373275072338286846055332352825524034639837696078044208906856616640491170690913284614817127165834109780198374059191722307362597243780243639738905167231152837819463219101244701808157576799375112449352006729166673360354431731068026801345737686377869485179087293185691625826369907396240550466453286158038484591809027126577496349047384468442190246807785065777289724967474937431012373898425781384752378810245150891188272057420612886228135191544640743210329619650083607839084054054760564950585073535113084586379105163536404192677423390765988698221008425591718709980237197650339650151218565953600842673487035294014809866401816792630078181426587632471437891792498479325640301638448033380213228586779694831641302120831263844419854092089545026268975302529701461243408401893301391931533220984750442558590782121933023159361488867578474279910389665184941807292267436465369992305598630323319074327314239165314169965565040015102061923180831129149939646724112789966981745977685994500282467492551687120055847500538931486679159188644515805286645280085864461011490898296710935130041043352065016641477926743606428915135856812666264757661622574163381282112432279515659217354879577084180315877937670199893866560368890886999813374155709121525158095377927477609613359143692202533850134086958317613567157781595700565339413636261521886252076049507804461173043716145041804097807583469469178226227197346518585561152831132720933414340204882840434774935624541060065863153669174698923747665330284597405457341445332765610178358979256954525028694420954541318550679334498578696374195022177332803922701007962057047979460276511266279913256062388635450068417465510194436864011423217206735979257524434878964474138825093321818628257497150919209834592356541054709997347355711907567249844596453436543829706249340179701855348918385539586331977571897741961873540573202883213849132108599979356352525130506531331003163682072371943771140694691081155765021163963611950369316874239683627348669746785288486068102081534267904736735330230512519395432533500669922841531080289378166383121099821944772177618328140359424331441641419469159863720119805734511360817716261635498749248342559978107824834037187720331617007696839217515305211413338016525176144771352304599605793036107577716064369095377690738782298103974525957856160642402001177300912795084849841175815084989561577232723644241108620524740024013864957578773499171085997365044858336663320194665453068277487843453616817906624644008439889688690193258643680543245003621090317763217499886854707666011254907762187253229724414831235898971855865902138334274102622502952875225843311174425315436067187523191163629375403284012142230598012400611044487983331079311737353599618002733753442715558915843205959262870701282020992107246491593688531588464770884126308910971765956847310132488227692734045017831983727113841222485629003569235920979657133714485097766111478993746979116635421652962246601114472897540972191640458348871444533046638037842284923105885309809260792985750434984442289871549846471835656204748381353748866925086673255132364225202573515608150647551067904360840921780303300261446789493084566195497558658978798841601461241475602192488075956950169245230952986687680572570539356613725439231956201863528993154137159435799629781625220615609902062284348545598386410836353805905309340526783257930296403471558359081700030440969700997184061706396832195839277460529997122161932209420638417732386653445759297159312271053159138935138172284496259222987673771545256193359611504741559234971367835514329786598685647681821851205056567876325392926608158298365591513441572896956353638223095862303665456515849779461453532984528483262766970390584418746307760076510926630744497933747809513810859239266295845937093206171693181203376785733826771961181064645054711075303415900208460960982675415819122773367543129130363955126211178164619019166764706201283755260967606404986111261177319838928874476741066796934258840388705877514275618792062583861349167390184918719671031773924580517847618620191129674413725930937732102342689980912997111543695513124728930728466706811634778526528721338376046145173986957779785485400767969619103036782947410502811527348755083223776142685925740797004546832367408240754925741011292722181713381548182654615039856815867017975155642001769841750592469716319543055370850751686360066361332828215772164343845691987820934402809001950665881874016472626202315683852582756173343418679425356481673063226675212425642027270967410012287195071125814113331562429283929729928253461090128716316705101125166155013712478665000866312702826104462199902794757016137786489074081338281262771513451385342427105048648815018007643280012236357685260099514926946850003814609070494418190410273150808872474245266502103892781272558846588738495124423880948949055526498958021789508949955284954686807453081150233017274494852604436066332348290167430388955564682424609588333277596672686854686943930520765421058066215568932941318176165868334145466747639484185505563265280187989317942514461314438882063655632639804949983362176264941114524780251286520745589367143793944980048230474566218275583795900764089583994245588770476640919538735232951357808358110713144118832631078945691976010492178533513308002078608833324103894481948079947926511732134359415043394260096100343904365347770769333089092042288852080923770898335259128523333533208551870480877037090197629572965922052604733452925187368907893408074792159066868651809356496524097607058161194863499281384432825725118380419619829170052070079291347409003684834018144414233336856548210679091624122068855049729671752271051156232186135309020614995362058822187580050564015598660785008118784310081488624704804040210872065733830262076698880310210866932699971684450942230932716941454691718633193485197550385865151403150269749480738002626438223156533850541024716631218258389505241574201404069115414492267301376525294417703700587242030879526378929611228517935487187205227554681376649932577305919301025062058785499980355382912343487292869019372640606161827884837592954233194658977927605379879025741955355661945208613891181655605342962878919330653025370897013323446040902680232566421622931767309089551428387438316511470999293686657393845068209942980488927319342402210691736751542867960438854254654772791842314826772849163000973159719144264603563293721259337962039054906282469611381484447748805177724346498531320912959954747185597205735467213296405361308469924528687838766038644464812135269258948235289199425331640048546842465688210763880793465187014038451367363701959563986514137169538066638235496413275001778968720548118568774751086352708175042410370768100438369870944748600687294813481297625019352025194440466668051907529788689660907827029555264114266385335916397794106660811908057549765284570304236110328738655594701176375990491823941326843140814392749585040187025302078886403578132867924437118728278598971620594103636864400680183797185492333032337947003890897519520574320229732804710704862315690154648732021789180682931341695316104937780592411824342646817762714864880760992456677607973765895216561730495731523579254664724482674539469851279975835570157450278194267480876975181958785137734258098865046208283238023319659449322607185632847489462816066495062697755105694642495841131758203868982154026289587966860769793915649596675443669285974480926871149528232467746715169415530164370000494995807477694048873674660835436844453422662282493745630749757721080615570349933206653111618371539553957832268752863526617114009165053850148405489986315389414734700355205612490670271938420625406744670791948576991628354897370627408216735318126215040703840218678145899693488855440964086944339763812122199870180717772079041190000099407862230985802486627591039393272714882512296737108286403418727014080990604278251078596770704465239347093207503340445463207504101782160693758455219366438928347460554407854140679308957922076279024793569173661977160368491208084995759310025363798348750191893827720046242425900290053255393892252081885229516358834970163217804283320314768253183278846354790207908895506256384512383327528281523206070259819519297256881781156066004771764529670196633611116604310878921859849880969031184985887389548430462038697037073851727079143686217259222514344903970242260560348536566259880928743549743942584494381482641432986441413137053628276336769085480083008815947659602956954467078970154566718862920384238850400085650606367962614964364757912394109459212272112555226544576528225698790078072764695370391707582904278134903592451565228404970014626021601859708565402919961754815896071370003949982589116910320417560503989507380488732335494452118131448466846907712918881449368810829811816378485669650006053963456705411962956645803415602010021315133450452197020868365767525843325126614998581794616988703696466727441564097000734504546096359533495071136795014706216825808720528088826150717712859247613793517801170578147664861205364703570324176697948450826096265912582186476891614282849244162475302322885674865879537085925388435913625606604842324763149156455228358757572677263008217692017896883497224264743488460735679859746860825770201643664052176139469581963888219522186167618482869327291373786253962746242133584850874274052916769305279058562011196658284612443460324167547537728256853245216420226832820871035828338185150195082303160732712902673682587762089170577214390559063768329899547509211284631632129651196027656420200626469917260693536678137831732628238749891458570517993744298595691998380023905201778271878329723475239813040056182719713199391181688961962955956597839638597531429149391654768703493834711788583680256336558106152009314959032594638687201329275305947052667002871800686894894703927107189491783371063485908595884593177823232655083357172711678668395270721362000656353697447583933904785705936097438401796223560033682687708416620311702072339932685368523321661666397152884376753621842822886686853854789350832779882088507324531099300031466684000384890430195461736005635397305542945368179899049747427442005042135599043360855774850469723182109033771999362048544289414298463280420093656109258528797463806429309137962558916363251341146325985948744850808889795553694052842069770123654777738024616428335573448962239450580046698092518389321745112554968325822152037817101324408313360424834921157121089599167324241210007814149973923943313928317614143827448528897594114619891240781207980585220061476848181809219059659998984971141055970621328349020530764795687388073641275567399292851748291264081153693856494758140031368013501637606993369110961848712727701659977142622026134370494048669725344674833243931595552618119001813130194861670343684759991304805542186062430883897139528466665821349792521660726139616250832425346964168453485351753872982639355830892432830066916872018038281174951251324306737520480576545859438978349193207361905510361430342311478672668005857324444149802928936547295900326804834110366832874069844078961169946438846363402915037944688461655961799511048340451882472693580466823195798089793726879719653304169542097396673740184383634707599000182730321925067083750960561522967897590663318909156009786696618929607950755514281693995847032221904050604230006905434706861347138507899499659040718176713534074882954637941484464741014173632834504111294079019285349165986741665491997799660813113623029504773446974221828115374128217746297028670123377299896449361354099145518704658651176515122359498178294187622790818132508380178130656108138492592963811076238652131363858130489352639814532150928000132628064666011865382092662851340793241172586816623417910857644216314792762241986839389386342802189720673443919099581614386507267541719194120184583216111952624746656268425275849159636703029616799282089763900467214380831438808759660074560757736174152091244176568855840269447650218304990356964367417430557776966513192533732963288108161017671596943967671126592650674030951338592051584774261465567422009193948857300965971323860319005823733699340727378751701530113232237587551116678702681299606017220433375861383726908372510940352214134133597015551853563794524732717781221546891085071786446565227390546341701228379579899943224069557643856327113197752076549383704918270207446248321945949999012453942484007614696182494426932791557587130998993974166034038242192720927449715920154340888484165655952494656475584755047960965656268563499406089950862208656976837715574707708633965949775514470202220747248405077282820886081562752594687289507568771348917596672453793148405992376895623007737911923421316453858567748263289204363471476623274152965978290789614516691891901142420215066294255723549647514728343800319004081638925714534273431379026888716403264708276008362443827418930282894234711301734745821715836552545362984826055767890427418193781806818637346372625113407995021476911673402594353734090541443330599379459147876242882835401901833029813750127484723210376014898152702881776900847881996104850562929974154488077141311900628524579014594098252347522056931771799850059796644782615283410401495972767866835906820818642586343191947885172539188488023418521549940959605731717338625267051335108556715782277147387473520887627120256451317466358856555585383841520299158234531443866442824147148266174513279086748015304001328605590990587416468518114948557921970864698339151074984765223814080822939027041738113126994138574534740374704531315719413309732489688129937135823384850810986235834500271483679508777337826973000360464160062610272897192739406660012977888627704727498398534382522789941315730929020144353695060807338058386082567235947550164516812243981710472618510038514884374207874243552631809815295278803158949502155850413666827816334163552342501847889804129452731684705044089864130037749732243016207618742365344896321777032939033732510485999622249015281762877383681685115949762860241644145509650909254513474241765634372733634282466005910384192078617838437592104774534642954415201385374222677739292254193091823049733434520533986111910638051165037007364542676020817835427539098920424732332195291122674878322262646945970752985646130892841899998227765005931541145123966630697439024723585203909568727709560283301287604008127511342110693881077489454211763407325784042524167308541515187371472749444885507635735450415431758614869147782041112703681464202491217346005884968636683845487630871222654877301577770732493935965111890620198355055077718883281127137429661775501110238191998705520838799899011431714089729349366053321893896699606552916343227432106563812859368269489788142452559469690063722337405492799947463228284215539122799805074467957184665157886368340339584041464644296595235449326593397700639726208969973182635588518264980923991683013285207524034959079181142635338880936345828299119406406301921938812632269040910699182822403750560699274098151687846605262599443429469273817394995167537724620909908911467055987096276936316334222616490160826896027271897603708882005348072232451767898711348067009296570827118521590924109639244889115084370821736412991241037584093497201993792769659359502976798775675275900573557662654050477972055945201862746280101525248523225455797318798871664173559008473326073122765926334122516132727207663880419731717627620983867367215296753618184994203094120383746383705588332072540171992211889649398566001196661671259969291980792404581769603743998400456093011898028305701083802049139565894853157963264356594547559525762383335819657620118723618769611884359578419900525268794663733814224831015840477646276303419984735508687839878392450815678328224823243319103536101653498701884994257530548610050824685852039777642730408104773716754746939177892581308557340120466860675780106741876648059074368669243911595321301633315680584150292675569612138583742087125168984784713749083474426030288353237243304626364656127591345636423691848975974286554715909993157068575080143847356636827229673013200322908312738492751309178849737268686481726451651374642398825345611498094437018088220374460538767610481248312930171344955372469494527156330016000131355113923362647694391208881865781772794421919060416662844387018845383528814271381918571549943368547855625134555935469259259666042105109246688713865412236893378654760699685346584986335948790158138170496119236765361940550030982931732801703861576832011184355616450800917270085734036320796959701245948784606646751647830547522322971958226046814347569393747305489390934578032315760042173231614275851215680386503637090157142691534973885604661207118971894284791602906010047686956784779029164107074847182755599026871268055801211867069036659122008606658285838669475989940459056359850881736241833771466902406144748616595079530551972443625780414387332004565646517468243897408236755364266039572928015347989572451832020729455365981901815268166557535788659543090365064840882261455641789191158915457883951806449910912642091900393715216377342351962034748692558388380103959108926152500667740344821872410506510993082674849505839113401605219270798831057857769872455511758417763058101136313048854926050450180001666169664974500462639311719877523294225506941755685473486273116495379937465256058672616000489567382353498626244743753566783222067719983749863348407041335574371610311686359472182706524197940966796439428473767375718645525863760923206255542222539242045190169133014638929486573492586519916593136608430048832646274292188009105747105970647935079794966355369516721966534079275138338655304635052187288270318208412383878032847692921129733186508228536520873430326176830902144527244962733395927077278275277522097638517333006249558808955184104194824122348874428621394852465066446948159308563775463003845145060114337174216123919669513011488097587670540377185099544683119641532713259842503434163349690538276092096977823919900510938749568235342197218137120248818369645208830899160193965319723335010233287983663130498766506725146368575799526549980068109257261633819506898189105954140703890404224795888779854892887208972472536152058637285442683971891418040677115706067155768686154004695617991315278972897969401695962252635285618542974129660787587547001131320325545874913931414321038043791016553120160422977014917443936035630304039678733541410232936674164725710354382263682207739770906054884227285125475445098675671657217524789546793561786074079289873465089959001339764564594579230812008700024629116459202839209237446310059964642690889733918153492142988343425565020022362779573108945293441011431601949846989065070238139378837358808681663589444989735899639342859640777962792963233707787217767601019046287979843022051732552320237543800377896282846595164886891226362857920433405427528613552117494742192153909963655743567865336430954446122338909053807697945510156752389637943484154465319314263325384544554163290947959016684968081054969026800451683480902760867101779302318104642324970475793679174326112513787716477487886460578630020912094527981430017762174811994282029642114165713252769599646192613011494687656545657507434125503659378879839228031580382648623212684496227550970492873619096394747980292450418489400185209084464191378071596022460204471939753339461723077711809144489772955795470866375389047845060653827107390164404926581877356691698933932888754993077865840699079858514236548779644814053291286940584671980383507846452856685018648232473490030510697455186001126742366216432862265792237962993344306516467181412458945003154130217802586453004456873224886470043782034182425833991450052444596399647852299832260863360833227413424125372642786651419081475673846119108864666306019221225910228992345549559959826768911500429481356776630878752877917780912056250066553831183767210287740794202278473106044262864972060735662393978318092213225954854801994102962499170751501988352088460921756068962826327949710911649515779976410090041798400995514111384884936162993160090578354702356453644819532204467234370080860599858635440058947779367715848341175043043463802157759518124168088874274729820101177615423298167448318172973409132667336663402990824542405118767700112972944971157291346620830702009553809627971115386257879506610187317518622752268926184556018524468759741600870807930866485261621842893900178369144159782455487466462212160431404898144325059289368827644924344456714641395457628357408597919293004827589623915317211086332011893920803884200157875250028949087614155369203909346784748463334640116824312873290979457412384223492262356582638461604416146940184352426329671138627611145196003661838692987056807398362532238509039640373699631142762650328560550311429492529465414072724937338788778967298681206248547718715988544785681607849797515860416471399596013075682701541071096859326510580151492459207937386655431686266936200739810379837657574766377029193423094294886105457315485111150621423369650397012887147231337625292187421197031231865251095071250882443455915816145222097987519532004985339544662202456114789554270504629945816333250533392096266487584895203297959429126855482941394486371950281489403637876164925009277291522316208066087741340252393949285719932082513708296854997499542023776676600351599521939775145642968807767331300046259986372268449951966469465799398965905664765969352136398972339854303970138391321275021715777277821577226164228285205994487209350504023589023606398648027242303791585997518266119561103842189370800274786364880840686035768302549858926421290623391071762227485382578409999715821536662880617847563625698587701037147592205995149942177290849246811532491220121499226282647196382046905653879687497604220519230984736092662201902397781685391416565421594316407689174867059672819853164861591345845141119661929443241665292504896260086752412146828933294653211433505885638485483930623771500422148358646299989263190942992935873031916525319531044384664597245181966862326211412242466170172053360592835677224977429845219983221211610065586541229461837862099721036726838559271458374189669527448744537929122144319596701190061867737945181612966094802362823025289585871020549698158336989875776508632064998569138219321347566423612053285197059460894893568250930492400958767646465723648208699941655006590909138173013655315626869725297955856201258844699387276525714865686550494854112441439993795207564720361156866173344900309564717199545816534402090588376298151749150808961096509561354217133600524875816621065938236804060289736121329002546207709495850931085941955830130054934072361632181545760629030910501308966332680521670729160588992600453110050189477358056591429298364248779438946598504973225533838458623805448030318354331918833085629385572028619769803394530021991746219198407802970391416339509714589844288203689102608332092599091233604578736489569496054062356532666107063142486426765275587521405587479808771020178216492485966982466245311552688267357382940796485768142472338660985533482932033941304580571896254202268104883942258250515106504586410891207748170993950787523682351556959298510399839042108480556809757795835693608768361342346347240909196934132759417188470397897664977150978042896504271511965083704315051312639096858270298658213581434829957824839360039782147217475265558557947682936597094295371278558079433520804353424929733673214707928975137631165315901612211602732776940247350234249338294400737315082975054806662492233075860829080124063936946318293229534168990182221880017873002168452826229541599090431892789663331487615928868519868385833285669983390371122307802225107178806237244152203879125870214327708794346027127247585710488406493857422394617419659876602712730074648422638504127982895337869029083809928812650067580242216080710482783282122882360920635517661454329096369414069526933632375121718588118304938489048887889888792812483202807495373452624295717799303818422004187357711689641168163814872402530404620795750085578359578368875072855771947220186031952888669955838082018353063699805914395447636582730112541813821384944843810655186977543220224541910978650375473174768598594793205921589715255798463747943803038319679450767424764013879382504516364209910370302646228676591848533764885145963865008463991918059287458563172537239164390964978398087628777099123753263347887444739215831156009062640267510150298027494315707265640523994342869582294698327606617272499010149954209566330036209291829558597602815593755012068131775148318468979660432874116348051277053653479271307920242594593852484248975528983261920823291680254761623604809603493636285599014562943431258134614160201273521318803841120710938987375461520820910539335004850152168765194628830595279231988133819195435714668395972389065611278658402451649391025981011471061163183901971993296047312742408475951648479388651679912161560772916182345074674277426286416612772197051663472957560820312025968945485159554603790095587077041343609452606933541772490150395383118873250599815664683807141093303903788872362075096959159721899477241905233916432724465881888050354168390698969735235576338364453721018424661787454397516332003302582381278583660394607167414855062537111631662432192402995565096683764151485097117045255513391202289611019643155672609091924511901990844263979208703389497852686176033682935322837864231524902726696403045854673215093486929656881760698701655108802438836582947329639676647034751579909518580533006973808357988373738211747461383861029892240843618521764947786433673201532196396633879744379288455703221503232271961491444913821001382690266887736001166914755085232665150050412734388980208281072638380540559394311522585829111036649072488717854321377451749025884990819727087294963179878439152975053908189861604835498233495741175949764599237207053275742742210085368520338928875219583393850028010848817212316124775396985617174017202152277811069964386228163786261205188508177745407242116256202454526216013562890525375154625572082164783861729090535539196520172934358521073470609139031692343082575231835631218156865679734879850953975738277432721926043750104730898478924761490966392579121263575505953274404097896148436874435215828913056166552473055221098985413968265291748610830035558729803465414460109756651223171931374745721615253218246237788359903334165862506391298504011308182661291304553134338958336046868050428721753826203966876822579581493692510225997506184940979905182343505097919283031702390695735504642330553211585065423518181355989879327135774155812715030993463688365999201102405383513188573589296404490649908473658373555717519232840881308578042245009108055870008075806036245151745727486956134707652331529271163086934728987857161507552856154602668885002114757600024276791857178282917010120270443184821566356166675935850672615513979986811371370711961121083027726373699178624127043661090050134139638892169993064160466129333289524736575001084398297232800551923104313649618719798463663758357312079983363170441334682044419238721437355544495149728310621157727546985532570777101731171683477137924966267075757019396430087644724952364055953906525947674136754038950006358136735782069547063141042250614561661879527764975744274255046927250550540842056291531499897231780177695502907282143640991885228968633151862443686999537247929964371285527880236510828400999676983187900485887099398265935338224888829540655095279438971715525734607473733893469251750121079878990051106843297302912727529390182822434076221188588534779182823494939326504709843707644953994676798137257452025411125715891229570142626684602730467184082537668236514331096370397017283307407698278956147029509274729554475563131954692852779391873347060175050781739146577369051655725966182928706948878233302539306737590033092486928343465741450582422294561859645176216540924013436216942866088287447610324232566356595353502322382752491961126756350201512859902329891672128509672745256514510366813067945163127161164498624253822989993530789987258166355022024317163373489973496064358542376477138039311751914521512764142890175472143853834167534997322724928243712577209859940638869831668822092814213856295567837068285331190033503121741935652910939042906934078606182872910355028202534970005618083125865792063951719525792480092432943968924143004253409733880270707465776553970494411164675404766400118530956163607963479202726875577234599551265768955692416306180038676223337170730069639203804654977600745290372472984351029137822388762000591716728561390173607976462296935131376967787317661624151799818747648793285657323625032149192822477651698475120531379335855101892801614718674876623894964917436337351529785547476089728192661420699172439769147366958149089855145608249131198509126767730138359557322360409077192109351672475354687269181216210967286050519808060345692896944720948975092883786426127751512370437578453803193986191508042638130344208242137771580266573477401472190609897753276740028144593538764093174014365262124399442637971067388270344741529625622278377658444152944167651075761046683451616155452180919388601613765225225719315553466244743517212278675060295988234585611441788353037102424582753884660543401934263552022377606976922379213363046895181263031383602866455424978019449661604676669661496547372017891617658345245487803359032776641447544057785992765015618109417390546197392722924311320216735698017535979678449145538147946745053134764983338308427220597719913877986475305840110315372302027846851200125294230464807271096501480116709651806600660644394305824902928301266850301059127600232968684736796489348211845938190210208433211061219130684920852758508595750697356428979277725129018744143234526223076183135558284531448553262064156244390197267099824887712279218045348276034480612339906970972299449726701246725656799380921021276101973204121032612493810110967725916584509902037121701785245239871424310945780576755478011479307333781480986028569618608168884325520736602936113312348836277428082829710457189407542694082385107082961633089049163848457249810723223082351247897611746802291883509133361257883257641827918963468862170291625121428021466425798248495109388796246868101246103875744522041190803017644709452341859381939231532471506741298042089511684022229858323852526161176480290781796793336626326053625899630369704810125418423562303450454747317655462523604474716318271367774702163353599105490476391192665474655770626398414601155613216808201929028117912646891396806773027896428191929260698039175728933528237273037886584083188838603215656168242616657955961198506710645521425114262035813533306806772243159117798705124184398174025249905579588604303010070049160089990073948463439978127648635355600949508090380493105456296594068419033822547588107217661412527298858631587404418260453269657920382203850557491668374069325791905924206069025059310459621110520367727825256304098730148545690322440064981283020944747991745469629228800214076827549350583250805831050191744626043020108787642049338813886196021199177710552622763902147449161971396127314772123726775916468247304636781667495962365685756909930199169420905842041836389492409664279185218829263165054601420102952661768436606878063773277575917015970993461871497595888715466926638624788155736910077449976771881737546741631273498016270875200218568398390032190273308367155695455707728786379090285332808284784307052777476843622764805796259731163884032173620352245690001838844279914341435272282445224928305915138222329821572921145049986382683808506357180656472561602421455512401533520295005517819510650786439561913860109586566843284327192598792237591601174418074404145900217923078918288314517809280932941661607044982011458539118797839516805119786673657283402256197635735260704271956145854659215538970481084281304374800407876989192120653501489554251354903461670359834911672279416662617932322595590933638351330454099418995046176326872694110927017187142225506456188459031075161067696062186277838403239157714778340408862819967000279596713596965321250967037638209765761042571837426170359521267534848987430561666990339074063138966596355155030847511064703741936773380592393629573700337065267013014363492545303481342899604765597730209144682962903570928042479187931945732308631419990552135524430488484129730166309200759603247727089438247863368902076789609884385063022938602573154956596051617833045154448890685133411018894466122493662522205010122406474103435021994187562728862860112754304430241369559228070717517601195254107576653045580945173021498612951573006535774420509300538966863055576456568890053641462544688970289437351726000098063776260929255694052836140210391522301925769723953812522153224063068478153123909463935962195214005422591048066896244540475166049486722916571081901168481299059453278823722318105990690356684631182930392711454675384863965514846251297522210970765198818985348496822908367267371471947144203154610468214397360179222755651642794801109276036868117935577778384714180609524394539554628432706451555552633588310717742411820683322658288460694995484785296454795411897755217853342148827654150448721647324905763870170736325108266730542304404449397043157925035763246645932409837492627280486960519521301683148014846109411897410403990974611992101724901467284618641006412459297278896348392723872792190913834910106544538550447223966977013342793982262539527619036810079304585394414073978803773785843414277505976291199730626068939658099452140026848373819573657704189189064260929512213674057712297216631158517851342537456730953024679268235040177539911305540231206155842893703649521015389168921818180462403577012159042838222822711726803391043937693303933178702023185029276252760631474447009957224226185346214389305771139202605513663622984216396837498275306982665410289251565209577733990255385147402703065235145183342112151223817164767539324905622403897307336263644298263156258328897081250275957941069757091403709443103567106347205884298029395777018578613274350838492202794819721317018366444163453905976693202226429190345565261210962106785255930869850801131931203114878397555522716735085285040381912560317155241504741111763090645327686130528735696301847075307548813835253676478231613952108827186692227430184670599383514370493923165868113852655790693400286428081910289430937483767382003821638805910306293497492016132892940684795983309979564686615494102207768538082612862515165685644501615260941351925269623219438586943158463665327268782006400386619455529051752735571006742181918279543667435589344212984651024379243073320752537339085100278406463290316550371125829248147163115590798738139351042453019065427745162572923956152248421397524911472292182234424370466044969826400119259244196200356209353784524953624732655569071604706510809648451093653368387452497854018884041414733406169299972146992637098954689109286218466516138306771879327222591009714674988058402456253850934916409303289271791749565473258596772811671482527892964429646193365598372535223337208560797206134484306148142637440250002245135371602357924671321212996288912778506735131779524335552809043451837357919219173309408720507914645016273504876572592846699738399008883092324354856054930831772447480969175085178905907712157401085621465956298623933140746491210894632179730887726585536891574598275566076156325205429143087627566227547191872045396547827394748306869586739036979318504117434618584578039966901361840023826843876478326735883560483342332666344605341927732709057715666387469948508548398298323472892861540552160704867128952372182202431958671510493364145684196809580654352769474577120858669686278480592110132365808836079983443943648689807145445347180437994368677405938254127214600206296001018384211978517863380243808847551478478123780597022554474904237362992452310228898486918045205959994878683851999612267830224221229201865007493719740749220799386599039626415824184069583717137125941208005020732845721362286341548156953135392645619003378430321324693377297801718324889064043488918571307219697274654949455098762042123513285819363261762338818229273184821087612873441661432797742023770642647305702924248815040916123231140826412645351987849143519671002739482053735151323769595369290671248327243631216571365384323482344038006304065913740484206803288126477333637293744640026023219132974790437720260010871725532911368589485304384061976569458027007804919119322119193366155671013225087974916726524552024861282493975771035808069034765403215530442328587573375417259523267211059024398998974259823859068844343617841208779339445703901832787999366277721964058959164917574980589668197011568987764563555949437873933554039711638571780669759133079148739525843276533677152865147654135796707553027417867404341566512044429294464655546548509126692031293942574090404642263624313665448670530177677300991754102001869485521352950590589999231205848339717556383396481888197122378846237835597887757543406947677016461932941959962309682113000975538984501212634616619973711123358664446890323695418953302765053217582288173441274142821079181537948450548663292416993118095678321436345964369226853309792019227368612392077568258281264155893069358830761251458384780503750425514943009409152555923666201100260272166139389882893652717809227933185518742725578949229287406267614074811517863194045537827925237009564804316711382629624302149833872265667741218799071794188543399365068977245360285933122515803928052325941840928083784673460520572845327302085569185407642026263684934468565175849256458967962519510733139171786962959125669381836550599299472842370613098466432184137517239431942429574581889467403741064439860146523772472120310749776257324961582244927931934898612673120851984627459813558527530753769235779015258269538543701844800527042303988584556585401557893976781368172731513531510079193925732416732616508433590406261691684079909119057689392430267528841381024273059646447444319469661176145132707723036365899113542783712277171706670945623961608189705573809777244308524187864708731474112889702016821861397830744223252162562843078303941302623833347552641666546034590107413221932456232303132805985739470619789942300040337653940999596418894861283651972329773079730222231278743296984329952290497946284348048517516579006022918724083050692922962211072587924758537893727276683567011860921742170336878881412475265188433750526368055138699101097124185526574017758628175603864131155436795799493371989139066612295173041029445063054678667901385047424934973110759248514752045472711500663026756100878810542014026341704108845732575761722406129482922942592539046267476885214822328976016043831236530018761582822582112579587514970423370945669207953314923159885264345865194692880805987456216853536533188793848694977867711938095402565681447572924684335360225156271373359283877245838712313143496069988251127461956381364281790575324643334257192393737359108746977598232421692470446014167100651537081952799868408095107672239581489656645537342995673093063209830027512072320837637504468033820490404281726463398778295397744431287391163343127467088133680527370884576265932363905158142544209836264312765983373070380926815974151562733604505555603350420296609285725794479286553196686584855716999654859595805070262272320391730099994407189984080304397148660257479511687892013853678987615523833431325313828915725404689888932790308915888675931789151439165241426111098529363809293392666732183314043223687638919585366591576133444159313454235471595306968838744030495032187003424568560359337122379381829681176648710004511945207176802835950306725194900316538712055583779185026271498918803227072968385739547802203997042633050709222151133153410973427077969253850122319346835899131118918200411499089887970132557390629269754290518617317538804543730580165337849850753469958859979297406494618149982748419078028453615896695639549863380209960228488481401102667827854396784679221556725564799594583194629198815969984298001884759589247659314803824954205803011733499446000213135001102200819203870724508933583224698913468365350004760721175418328642042254811497058652420419394446917041879784138018119965168578228726188884894545763418532412377304888382348861853210004488105385613407523873905399270990785933129261473692638168715637833980044780076734647411156076483491268722689018148027586060896963348048895645163812376594854663772909450060841350110330127106823548335122814756266870251712658651458530155663239720684254279281613321607099495738280646082650548285360737557427454660049678247532016721154972562075883732450602696786350275314898847023762182661156089054943504918212654235318317711784904470237222282568676804292204757530646999255756529391823809773138418050934482482965574011510973815625182921132551262734658405093611547606196059533532208640177922958542330373443105211331644597393046871456585360265037595062544049796425100364570755907833451364118680918798055622520735663345062513817701736988460463000678499534602427919178215993783258930610172412750115642322613969235831790924747184184807426811189386201132095413097042259388796592639531228730840334367954558078831819260038400776254346067485615008893334544776949905716786321481523702752211835020372933562114251195016003048574492314668482945521758677640859301849911105785208745229083085268351920279843289805400715028496439897819199985645213610252132579406665869608430368303709617337085304489575844634857383098279248533523270525478946973265131530409660723202062014802628514406567660160384510704281806605780603867575897859094253904444662588732173913473174039294926136995588350529887432327506730704851838253878560348334799998005007476852749899369880598577489226278736249221113736918563897779956050449219215090256685230434108447300625667603224976093805813673956437823129268921173856298820684890537764925084929126452047570352629963653599743029162950697510108211326374302534197782756326323024504084679440997481899313041959162736955586514986155397126764264135873529194358012057900619377539095765824263998940768967009993298708367203700143231868103803615916718145318288849514869599666734313234524202207499293064758255546242626748671149297484377063446142009872948076733306879534551676411241479660400304086310138589628231254418848375578192956151574128937944339165749772285587219936559249736778087757313760176701161731541314313678989264246827053305203805645302310411252802018497835144146899393045241527748851550332726951541544100780723572452513449003281520104432861389245695783881484529131482602935405625564102650642421003651052846428419769063946535736941674428957532627170132370488306681330784249066597413084386463118053240577777738579920283989663913503437892455933317073009760828019814701562077286247153266639100965149989278339576061979503896473669373453014739021245400296785079177539996313265014958697347821781939557891892774022512783167772149231050097937116290410994993924420620340561554451624267799155768264329444756705423497216730045429645953143554899086204179823344995245595219473336322993016866893669344089888482812574814631052777443780422426176169141206435013940989989327047788044262056065610993544228185512341454844087528039570186676036328582870619275208631238688250089648891092098915700820949357532764076187046598951074016399733773677194084319126892719232971486333392360356002466938129594962368681640505709053376892869445925257992619486223721379918010791394037342801150348964258094489249925556873510264403634988089670527582618980541745839249840724427352560576400874410746216368802008990907230678495360033131512917190102004992336063959679010416423212577808211455965335848338838049486417244534721915826419917730812459424128183544589684342714607491427408988563762328102485819208068763754582670018220373115409273976169082922280150110176655081374497620224391576641331836142003779472406297416950617506709313956025382325768333513092778707024600737430218312388130047048626909020342549141947325248551636592691952917434216876004600477261504674814479795605465229721459187458362686586931600581436915025563330840780349047937912058308134947242651401043922256996874499251415852281539730950478392718322908895810103165038338570536245487257370710218485081077579350749208852726601724085770192148121309846721125552319768602255782499273405745019022023811034686430921766576970646786602083947146202634832236522083945317520444061725774724753639700248486336763559331945177729175831190150858167098466973794638779376876570115690817347741227070554449083002883075471448202602018379609393065788609220511759040948777891634216171931707500186930632679421156656337044908642771878944677174765232579423445235124246797842860799184734288841742642874419764379087561302756307432894413457740570776050058726275469735528172430985250391005479704375614655085517842731012614431166592131417182213443859073986154379128430031566042198685580626084424598816145870192009630512117028880352970189919491303484331919210099436200489083950312967239301162359764647648160841302008065744432707337970283550051759821083613296641461169941505523336788495856877856665080651917154722079929647353783068297123629996263109389538667327609114137760799074779593233524490496309275160865941552870124320207059947453037084010123677024911217334310365339991467139838623865289254976857889653975528277678107670650437110561053579802920112903293950874686967792419125022885556332788492027967093996585556854149272185128051699515681424428161133940582395578040942625817395343265806986119741152162505284412582455672763029023084715355807942358898329590782226497224126585225431536081851589752920069469685050942531016033481381875734920308459467505607997347864980594704201587970243991217964744221215977401304812028937742541637216577739189608279037499082946215574249318558151940525786525020223553949341097396228477345400742257515091730840327499890781332091126256903487091671788955213161896481869825803884629178277743661827800736283201425413404310727076626414613462749196307848780161762575103210842774689771908991011579430102028418532324810431186126243848201446176873897572725796315994959280539744972671457863023616692899430907879256828615612153674848691952164725799096197555703104686392361489079592484461232698743977910900276165638227566398555938526429140959351974992874737571235804617102524888030660825629119151404136909096301738961432219858376529883397246169723434183605677388799530105442167211241773330777475657363867189183313655685932694859794403823578682817968863148321506548323310987884780501591778796417376918062746107300374641987228984768597326846393556906824025264828054987976451844202635816792749516954472966791480785997609291317497503756387228803869242644804132300417120097248728668074474994035114051066751571188282674193977909892984286763715169743062812596152364904739249317526691206842103970459063563903080990722180150828280714219140543294126624989865954567839675131302407600154152935497169594467569303469818452791760730719435495716526555661822251009055178657212125261403396633783849031018058290382726000065843309458602362156257682345871943966987447274867274162483216353482618827948022352978686494324730011760350700274499734072939205735216400865319330954616858658302047343822724519799910787519044458217463515162504443758707280096023306619745526367212018804844506440364218601018240655454612362945755815005059243059678275228714145430863716773134457806223923267998760830166641385119368228044934740298509795475338759106427161964404735576912252631717616116041159403185733937269090861729128723836287910232541170048559798883559745055228243401568120675250652529672581683171365367548520204303877147504944831053952374516275054898034572106003537948232601664553128390407169276246899561712763700055952214627443574054495081565182486668205472365606117065655851606753861569296630379164146507627606025938552098381066459113510404008932093289516579423118823086871629712627982903174218448518994249286558829752120578578066809918056068685873282371232054446832652050919577952632845597132575164174726436049242910629190117703222371914681533249373989857972967564109310137598693074919832127972517692087755343262535824098783152341784270176065175660682341620701795513449320766726771373900747299966221037512226357995254677940498212415234939377169732812488752261948681462710114784570660951243248401973625914908682193480235550778274413050594446097968478220275914147855434826456786172943367326664664182992658978784686008387491345343376234392721225162569311625241759770828796421479735295262076262099111654115853751076727198307284405216610631210501858378925449949189034243044717556055842381404639486840767322874737335429087155481020758912079857001035893332811190925290166389151870385576997335003507424227458572832359018187030095780241447237495361085400237392373025743822194177341681098781654276052942188592490062701851731129464269330431875228318545727978464692587847094278498485707986859240047463802666325139778643008686751191024051084085019000584057663945903304853437905253281578733362691429870537150830535255851174087179981896897575919739844614598364606890071415111917317565710691392181047268366982124767040174041947927164307259964349880322513488857854068079360609074804765104894175267969253893582755722957636032383976247621196662515851819477235490126427966639030843852471235447095436119780876338169346399595266954562816668927312201932380093735961730706111165710270440609453525863927653620505426111289245822105990287415450796279402807572263750386222674128713801140349501573237697082241220254570073426773973470694916506860913725181847729804751464134026463797692336017304618701543651018905788802975331956304386630837562619804126333860451411081192597638852254744376245671155224034406596901542290373326305865388595631723504740903945417461159173517346699939763216614449845391200246283431839533798348860625694215074498104073800752710272224047829231115395683209447435208431985769614062937698076281467711682941304469439545359167287612611767161241636651141051232412496755553567796945119235211950669631340148309673060127941016328186036577191930591822930281665218679497146018702107026707883179380790400124497691648049342964710246410903460472825468817723315254819844440067810739038831981895588436009015248275268189480892434432158882974260747472172880785721591951394861107214296181256383981895223810219254023788243892059685506040175437673735957050914073735930023007128500022159667673181823938257132158097238790549692189040451406670218848751473993224787146892672658911883131961266754078525708059536412853253504513007388219666995762909383449812708438272905587769005998799849671982104002768119470830724803235916669239820629726228593491511628761784658422726444009956507409863355252023984141094783270655978447317364787796524259571203175862704102171206633940231351536622047073289566690775850034902584067047112244820529651396246953398453699585920143001947075467348675475352635041861738739247757559593955130473239561366662015912357019355752989884292448100089427010559640972451124206148331254149467761301866963189857979945869932618208483532068298207924836662501154915254125118036148630537465102344601092054807206491895516286406552974203268224337087749634455075719132078600530014140621975455921566525132501078078472244991314452655354916466221129159904970950127834639705607882437378227387940244558553420408119376980512425954425163969452142915176308406765909915452704420545080382707463500416981954400342522248657107043313763736786844397273394620826394167908124744379577792579709349428766469094785647662454842958495204309493327712827874911221498723628239471750204101726853027945258716243967335778507847415045049442324503938305891215828153296617417546837353298403183137701066436910330842593729063997811018182499258139671507222098191137223505647536521501101151970631900473702133726280320739642314279331972578378660512949997293408396480483197704025232227801355869645532377668076892844481878155246266827095731360254892742626120544847938426797878578173209738088289999007330337624005289369631985415153788435731316180427246246982706499743194954380579666505762582606050276180695984252092516291779789316543691793144874551719905257001387470829085709339547103169291878723717565982606965372351877178409852818314803729696991312282537434157057894392444709011430146659942909780889659732558857099727934167013689628357850405095979232446067800322618460182029936136904899899739405798878606897949956589212375303538484096851282105557527589109410226927255285522265777436374276542033272313335864968310523177843693043034458234899109747549594590493785608412104148304138256228898291043081248407111114258773343802097851376708723994527159710925907183943373658569734593740311658690904992992664105257053107225641279129415836938045478895295032284050604860069957441629189226606186350667804799164269720954464813541111579144953264119876260763047057529612484907994060488547903136062908519159010448475956505069723357243880859154027106190979404572694798191908328274426632611463393151915229448314009320885742920941887547625330913301604102109400355410174019752568346953064934342402702241513195747336671646272360152615408967131849794211838045806395426017420704733951126831764562152051389645971730215871025778711543686085221124868320695803818761253069914762604488453427411183672826260861443874478606973288533229116960428079573536616647123125251243564260474155847785466959928216770189825176706378050498118789604974162567828591276599706370141868855047020338950160803833864161483131085185819012251054120746525021686086210566055884732528899791612014212335890989655541741475226072883557734455908069103062898667131561647827008247637546768449963342882686299987959126795983001823658866837820162128597136838767797991948150031171623529889566876097208298437286767309398621866288699884264801617142465716772380322294402013803343256848853751780813555871667919593447569136732659223234362177760296012974949142191464199837281837019587166923072862410140958046765907145640879036124162919942058628670397598358959537444669758601791919691001440788206876425370588414005673735050820497759037073203071998263064593186460677956711561012712447151303931259343031853767304323650009534812737359712410253174152339612687859572922103320611789618106563164985942034112722929353672644603431296420219405399900262063337753138318813671555490675698139077456785278680059029687305349607077571750676861498918956619660460720498900844609405906326118912141976406677595445237657847685849668689512792787547776123996110692492097105451637506548942677155234422581762465738827125056794097881421738566745072959473665047417650967564226477408100248915261422695140897523259011420529653077237814241293611057335215608755589329585944647519518797277168090593210661410350686854253159520061195118700456338709562502068752880922816521965491829942789392433407695360962665248647645418351241676372576289426399936521762077085386389304083583565686783972516727363972195504060242738390596597209907153786423746004701883571213934898924671454924344944720632355001916910740647175322754283012108691920279913922475136161139379307316064632671560896910940729908440001781169896737331768552447490534292278853294959279844223645057442578679850792667999067089697176260080858288123711351998465961476202656773601966958425578280776202254216683359592728645236932168310290866448631274671720803175691829559751091719743787144286178224282093562318429342812429664232445695347631376876228089222629289121663450339003515347747951163841136803176369008752699163124301693630027274406166667976299697267887230560806373182722616985214864562785791210553019207923285021943894381214550278884007774794258704585648272480761171927329356196338831037833337248509244367769314994779849368620983252843746346124469628420353205803236103146374322857885539541257455071445318151610432017646358435856592788336243244034258621371823912650019007774371083030426072655857154843499423549228448078724684359190881790142301242202811990385138598618135964794022997827899913503292213813516938478553201405556633005367274856641680407310388082137521567229655160726693733651826802388294263591335865030360171530521313907770775111516371823472759196358407599880274169090930913161513986698206439881623907884013934764789373940510099283484070317254411516959346526118619850160840895820387319239063582119251599893486481871896409655664614325515834843040326151034783007721259001554079055773391863988491639481273948668946741761676680970922240092562708479488726285349023003600999141310798900849454997059995777624076759133261346203116806016340300251773291495367213536426547155358977246711928275394459483091483392745708576492172685880300820904385952938002924443575532340343764411836599958167782543765432857234084090647617015572613595657354608361605693986839539641119258089089186941316842199446366771910523159962188278372382436445848464496409587644680861314909235205023251508404479102205726862898588775996575798828070324859154587643223597886251378214290157833065175168353773313095941319367722294526752447351565577497160777044929729948901542505752296721528714762395226279724756042107849055307697120217141037619639083229034785167177908113574107598139523675511729351297323546180723805907703385307047656909914251548581060542708860230093154129178475827771866397610328645369777204866028813551354157933299045377629965645801897239252231420759401526683010549144078913441813963661082058166667912275342985663468581735087654827400304131004075173444924992291224997396837304376666889633119096203667028293525189048685596663413230442510957509987632371692507780338841465868334587209374114854875437329341957324445341737312758367355691180287489418916836746713272485620224799795387963595951396052899077875763153394233436330505669365032808558187543962089082184115890382293005530554468558927538747660713050114009913675579440025439662826776272968582780398057028601400852196762168920177274780606527544130157408499648303565744166068631016482162581752035827629463762385616405429336638359912870464324336941022548458263508743197472697446967228264897972448206252944568214317474072692881205019894920842566680063350103137161686406791523192029192923798070400635995167654926987301420751188588386659146280081312931948542810504975202981902204077954277737752254733030211779522019301706288073094990588007249427354757854610188289869618713079675233618569460742345524349378680796932687783285055050520175882653540100573909381231519777272592138122984645959255639641412747020252702411368294371471280134401231426928446963004446592846064486770819553809065333329383384597387144853020667607400866913458432070407726358505093404235573604283759256790461445524670254364543136959654332665771733478999612467256863060048360988995704394232254780698486355302755761827097516553578407395271831497689627256509145351486714820034308750665252415858459603363328639777851887370092943114166382591152991077733147703441738752386719755819330517198011088220816100573409663740524169057719944949096484948602954590920134747018117156777756826061816012634533257795078102280757610162157690016867579823517193287627219194705436655005425705699109182228849220990129206995693928894146830778821084113599062559904291081646625510212303868520442725425708169192355721502534960141623103088527638265773313182306049168206353075737817420701324958304816363410917870204694178278148691940608853435217632789193619972191684041404053584299637466448256242069508461077740529091128887291187125427487342542235274247562359997794392702685188682782649850298556667956389251367939868318149449471275879547403072604277155573138512610065550543850440377856820883173291062062278590574701335896682750689959303876486365833658287844337190676346168683534723500541772672108280745034335179181762574287092446637133843481398549295431413576194364162775602773098569804713312180737040207186464518831007552430799352531426101168131772282878159694680719672145322500411667622890992697126974001187927866523425009940040827392118161210980783762620204141726247722402555774748664482969479590962400109160979197313646505290767957669337490971919674694475524320731002949035981674110102190855831432808960790891343974007920600193069665523651667031410474601950728271653533470171954749184564087529473114981941047237478198707755022474382854085738854716395152090830971861236222548499291924381385956954837321663197058028960150862189854606840470894331093729416083130113481535817006155301615379169557751765797231833728886064989117118871298335864604601129145677919569172924158237432482475013655780857001221306625096229783980718234744896863455917119614292588593853479502543439541276888327885951875199993871354638819303988964876162596858891524652437820449259554972506003903734931862638999065590523323012994446474325375588306075456875064316558210120865376687494363986901884683968270187400317702780060721528304326784322771136323545859504783567968385189271033730556774998369927416209296343985464895684683518446347274850392769552201643273466054339833594949939830264423384438901954160562199407565209743953970151738585480013751364397500677511059007979334301087007965375420234805687979726101007800774633275156070607705060043106615646911700473904962418767943267164620697687344538188133570305327888228092599151597024158877117087414578515949745973158133935569530524152350466871910330592959441679311601771191174949466614086689381544452682672339584144520615130664299279427044395202043307293812783035316340051872579654514453762042014186092124191844590205543230969240662512098632613361624101944858767821856958942297358786224278345647370645617530515857785754041996125933990083981577611698698819403044048859703040188506826237315137805158831828780798400477333974902595742958789166014150532581869143377472355169239878358296429321153661116032527342944713960987991374624882055964051578381513451437789368136615276707473119697662812982470595193072821500848848184058199338449630596360602901391073886692434237106744726476502850523193019251293229086327506273487550053678853174700664155758754188931686775729822890330261615354595796874939634677049882046057640239892696826368571439575296630966319781822384851431125613073883683717205732189761219986457525424897838181881673467333435039356577442072635796662966669441819867639637212740787316670540201480503926391871752676279302915862433257151432507619668949832971331835033882474235689023270326400662115243129847256344929874944305327069439715026784079768273034884076601747589728362134257823586078509371235563622310075035672479406770924261631285022054700611283914973237234548483397643343664713847295961345099720677669671437769151362677143808462851004165794502985491252725351269126956621898302488840808381937732082925878005553969007083465968152502474592839384173133474045694210070385815539703811511786692708636520523574593168117971818495353832696551757272789930300001465354873206879059035960307453905451205022975486040514872744206478154400101933498706806183546428525239390809183243570759067971714254601241285674400177631095700142168339883905090505152298109134398199669932429990217787793164025939985678263981703636308922849978069494579046183257573551780959236563803550375668959610629353433196597649297841108213594934058069803451858886031123791019675677978203944440622176779225829435105537864350877261802637461240982628477367988282417623773958486585529786342811900099460904102711671367845180827418201528381417692955507731973605610745063546003672717150317903237254621801870843701175010014791721857012972226117192022467779104820257325200348776239169513424050351450658442485152473575140667003482944135802749419021727935001909892882718863220032062973314493668321463996427329523457057545425318754160181080914631800017320458072063086765024060703667244399431861144843188056280426605141933741720910965064103507487137884937116961170833688484298607323427219781003061114104818402165624762256122507013480250902288013873300064665931767097588706188780477362388001383261365189479093414508862841491412621266019470257821463232118029557229523217062600382976781193171757045745419261635651831002038752193459309367656406590401715721849537682940535938482711055074752774130298390498416681680979519997081922528057076985836408310600547004821492605143776972388921623661566356217336492648292467654833705739749527223676686836223391851838251797502041208495864295888059811688205904994820975785267563279931822198429819761331780589066514122280356886173826794494981336258957501900302857340772194671578943760696927718125158587514863583129931892491683619250947261250562833298392537547410530096626983682551773505162867655502574247887241569770649330648527740544004588681241938223652089537618706851168568120871085047125904308026154601215254607203612959504330444872403230139215207275951482249619746935721776297948094852660963581096715040300973524870336688865259773248166520649074707594665800763304574621226786169559170354407454995946593993178808017735484921864628440740748715340517734188874350041741075831794651241732242827349521045886382520600940037960667582094221903092203039992500495570671900623187559530361651289643809764311100189596133361121788098127952093314057639330647816721728480717121636375906659337648296280036580100165330260571053446265566723356866656392948341276836122794384947445280323209929731070082500451014019141527446086130884100074740459042251165255369970486897799616390607070025273943779568154872101037524600391508179671874376760414009149466657700705733351495364136145883051717444788744575052881046481291656649700436188242905038707123023870460134453174863869717833066655240741548726020654989655018914998361955915733716646550288858080568651567771521196903983280985568769296529379103217985440859783116656867437229769785901951224928746750347559033240743353549201139939191943963625694658420302346328654722185401920678367894332069130817676925800060573941507115888787032382555375291967782189020473152750448788699790465410789988698916273834188403119578330770017000400726604572407733423699913881184917874051939214995476322369178710894577145081469769787928550763398355663544224702848179681826762793482009841687725739867042076561483442635639314314690319888220197494145718435275036752820212258312556984908216722538674184670590908129580674776100094704729947280372796129459410856355630611509129243006085210306388668832528985254258609711619100512701422828528996072315225728431244129629357351196344731226324309335717235126843826415561821239608609620163613911909722541028138626207091559452923330908467318373787100013788810531410712277932097218616267619391578334862074924104992861054545538538893451150107577359799188949509964686950682265343489216738935985839567465874065858940263795472387668501805040364164029648763013833738125642429887968043279120244999420728557463470435864673550185793245908291800526284466814766934644185338111883180397216382249613709204968450357645995658116417263390663524069150938469123227385686424555655899439291205223599529926534776854679669123925932698334513009328584596009644505491972776752618601180821325200583294326897823562571092899172929780949224263534155699586490986461240833691154920739591285958973194217106087756528911266122551277985216062521515060357168053988597317462985622987718933753994957577696158378473206662838757840861884776847173718330258450797676299530405487189509391026696885504643454722128213021418756395301285182552834451733120616585774707203911620221877026177141969634168829027809086014514648718333223195200444641311545029654548866887612207599906915022486943542224916049697048297885051576874610933922048556345536871450471426128111068613004620646686349926029362987929771101134807594458710769190951392954672308928531524481015451020580122105308192902536286678974436455245802639740229814626781021728296132797440036631090488043931968092070031028310865503958505745876544589576814754257082407935585968891313963284407352867620151712340962029435881388833133663445563914832120606203876680513104576232732286508824010151387736417605588329477526640614815162721853667471562938489894139856432455381533185132933813134003746435180891235136152401194089705182569046384179140358565743053604733905308936814788613421212605486891720987975345542362841801419138132521052068989869593214786075481506969216709832367511480881299896968865220430313700007895634828247008236372095419839533215054409873173606896241953967036158388792785039054531902367378722997121116632926426040118543475412318717394178582521563654027357340807776879360924915239385063941331373801306684411425342606650320086815885234878062863483135681155292401595078530773786605588287164979019373436872426135321375902162950869119486157470015893615151815364133511346839445874038852817530194331789673914520851023497753209635747425567077631149481190072432596967062635957398360953599480051553445575327145567367402780304767197657537888629775904158784870321074819489894689829967770296143753676640159155212219783367372402612140964880775946287504611210086562827564468375507678344636687394363399729196300594691779116138071383630103206998030464415828076263313316177637102044803360525678625627723603313433097442876484624911020077992996640470917505497884908213211113939697489699408306566197246540021586703934840353000264143161571615342607971982428035236860749679180640672958526601302163222032598503205292675157841197230293054087048030879630699610650656938615440553920996558043834081259481460080584341403143960560937051694021318773730487879207185168021862995675560585708782494398641518736687147459009711061313366033594479603775259709788589394255157721400417447073835376894106215546852111582915308940960155579736422392466813653270281182331272561264642853986854488070364597842171476144071172273912105496327444852555554903091188155958648872826678638652675461389527332455511346022557322065584132748142895952183994360771045468631966315105149263943955264522131178165108439552294750962228531088376260885679076778944381658173832973334307671209016514567711942564395728936658031979779943332862598286473059852487350143523748346572236797183450684674753907165644198697411757157671546940431448870941709138819308931366683293182263096911937755487298780618695346825283811481957146480535876124046223664107664748467611689233590448977412099085587878771425363138146075286624412472510050553904943047700438269840284121022392234004111351335689930711049376262677813831059058951509775809223665355443874516051194852079623318850723826853327365554541402262597391027796699726144586995135674997721695898947053849526018523749849458975381665682995063756148519173714158666505484737321340180975182171527952098399107124242335041139147915647068638452988028709043160858266592912799654808869965587156727527556224178270704169511059921250206428694122162494320645064323380587739546920882356441093903032228182213713145958532678407623261578905255473541206170497467532086585385586270347659225827383943732655134065138237844459804701241429542643961043692218780408043935788430536308683445635689843819962408730473977103431921317051816780607169741489450254930022896085942340744266263138040018858030519887207559249563485408722410346260306164630882655618094596948143713797170528045633124924427558053244141563941661312155829201437778144802227082090724949759381414134551475300356557847046764255616104917060364348781247537484863989570027022403293981986077360776477354590585252790305396700381133575175710833029318166175164447679644806280440602929110354556519132304676326788235745306369960664982628045213344127348328321206670729299592697214227321169362893108928301085973455606636292452673127388020067129888419469524193968216952779458634053515904586708623128164985935324781647100527079670431195837901922407445296026063706678233937459413575949236273957041053083989804287142478451915766604691464606166364416539781393603129516968611110929648598544145008629531327274889599286061695589237598621097958428423263556410657842750579640725382155329433470138957735614407775669433703009113027594417218510039333816330843306603622422234843534088020177803305663250064541049766345169348840316124682451133251862339417421190558783914241304723993289362539201467068105108229592846231153175303391840503997836679496553824350014350003702633291960354506564358300650965281559821089099881350192039152962242510127944485299883014520979797485190531941578864329478375519383005149600057434717207937905272452353570015169566354412288960734901552502795307480129266104080205681590057834307831786141873015348929497780938799547182192687025547343761965397382093365382262017372945275931099571178163625645852900749001043464857332858471235940167196647145895170656569795645518594002684628178381702059982983160377422643258117624169251597874029434528304647277624596939255195554893754626132002473367608154109731285859652122449449943906643568492746795241079582970853400669026593296309027267994211561578498276000140597992674573174897781601971773605314685899628652465310631342091107686212614830911845518856718759686102259031771473615354114038804029473604970118896076599177888171542394300778373993699012941596982497136029132201905425372927030384104322971243733397974752264731186325195142109370173363434161152135742224578320941297941880552277919578542405425316143504272509784593005750164249854270994538769160183181225614260722862856945762890320679519307471797636172688901952149661648679568449391444044852529744857472083550480593433848188217298354361324455814189609456016541037564670806018804799656159793182450303901444086666562798105570729894346525221640304784148812341297533647477338653426576304449421580130746713381930773264593399630145580489765194384437860732387037734074739819124428309441289041450189290393144983764445211532881611859519790143922999525372755181355458574980007326518483526084192910520941395613819180577201140503227644200786796645828367281615737866013117183450120586399502470814446440979982427265944888889544936003561289677662731687397577931732346221555692248094751060835182228512811843921825758731418186691027491300300861839598945759956694898910810559488343276206420071481099381027089954565133501458247599029411172607815801997895999622532682006451102089508762453220004920709345554317086066793810124929357316905107514287444167783261580269123390444018179774333430163866349912157408712282684240071370880939288266969395785746875335705113995219030224984255324058919503304837413640644496661482041872322816721840846029211235115649892914706744316967480242365840834420040816617139922490065687943132310417063234973405486520103064541215335217905268248987948813029794303451500761239866431557236971688980212120615529002387019264925532666533961874473821911445278111585674492706345758215015156067767022951407286121896817763274176065516292367200749117271205808822674548418856851899463434276392134141230610331293153725448875506993371936988102829632288678783408574071906518688590630974310870750487519681424326512122138147973209190859795206708324606296812624460109504170251420168460203188410024495408974597825738915178523520267757897109699543631625264323888285223268664469663644839414586172867482488981194417274004442042187451248842424816362331459743229108998950152914639771577070894953635522706279265084805570417105093226054074017541785002872384040719897252857836609155031845698921645125508578115878634237057923834792267905362308817704867146833062233530459241630082364820303081247286199079194778324423328294636001743380448573209337244625093773662480773751153105753624429646439870580749752493320491421130879300479818812176850866806120386320595859947708655042797120333402454707429050120741789105598753736235754453958545537844759203392471270516119389573811746060375863192442823012133552655390281939382660696432162633510839854731841687647419778999517652230929844002749273856833261608646470049947947828429705681339722012863771060428948905468555903392853557971690714806068470308071707059322167365642398016560727358351897593893005403941438553100593257692032791913688804419846831325028081583135157956707901454579453866878561367019931065015231985293498604108113752128933070148114731599139073443096981889514625116408833737882917353426417829061287129276600455348341465582620941735714109600702451670933103338201069555874498792011538699986521002364247048432794133334971296549959687377907194903848135679184703125011991293263696657640762703293695357720368886802424695979283639989678606776919106251049003554281333156836692214372553380417402755171977026937575001199442276584440601361092016161559276404984100497456342936565675156778363715591324124515938657579970469551630526898102422358097050064767506385444047312377783440131274909233551007630843176572182086504526357469947621886110782636279646502850975394025744200467858639374370952934479301996044417936432936968430526161050414368460441666113140312726268525157936513911940922906040693145203005044594715722251890743829626889902746359336298744665836988126418512263440056347659177632613808898548152332562064825699977390477091693603642712341990536626543108383603962115956242708396720404838621788001825811180144356256608175694549480140235989298831639616164267329154233067733186454085214560939081404733791081185588680940950105864179328846320049176174291955962159598035894527492955514496488790530840171995294074135510856537181886405196423222703105365416676129153214144238804740263017793129884600358060821504170836726901902424157986147012187400091328636033674989646027473737619862774536330680174615995968504629676980655537897033182547799640508471112717122752569563280917025228258996523198909885970462429521524276454074080267279036391160737229948096506913583982257745574475292532461838714177922606161272731997128668182583095704397111623532053179993060237821058410858670690722466384825153279042094384190163413087921696782601298588262342692770766389024763027718400616144916790571467913889254161201824295669603780218399627215136561616191275686737400879527326640370078203844646105180112394537724438641127237322561814001866815541508513780912310334005686416285932151070345267858460922326382166503546287857577304558716343151842647782174836984623380076214974125912286708870468406840359845644826689457137293716073152362400900814836424740723230446377073073975141985724117137342634668398973375361749195445282049152782769255258168381033209478508360611858354095669711088190555322801445947040269104443101623636821438463998708904559403915111860195205735516742578996028016543597825228474302767555323124420603007686452315251507237149262407385894818785512188395789450953242773632253911742093209512658850754042781713887346787091927538809328718672710393147521015827451510231954943663546140921101108611244344082523448234340236049863343640864707008731618552642418951325686017974870912242489200196946424458039750645055529919386265414873438438539061620682866089072828430862219877074171491154656036092993480409883420941915713601867877925087978072802273676778549898622441138502642538709597523389349699903633338254065823059117539976322957278341642032735610612918068444988255622599116630219347575777592331045296943131431005590465793621718542378812266371956496489724247642033254180850089773404839485274878975444457117697330503112582260842751241943832504598616007751381847546780461257590242488228401358084871167866590644394944079501372495657894696550485548420936913975096811830701944540574854832885499599318480415915956195062384776655338800131236811782711740150869854125342148904895813445260588318837815179524927289283467514394484129133239343986730888902313059347412191445831292033237536816743309095415820417528457046058801961700239383644102326817134472784717242927348201918437806664803362595421555986271302522391984707767213518421864163203067978449989864365753620246249364837761098250883382586869322584753234236696276242206632023264064004393343187252621920930882565228303630203635155875773515600516385023092170119138047540429335404506537454986268860589665048127465362483323381014418077020860175027704250069871223124278003596133025924416401384724184093368398327841973312905236464503046531268774647043528797443117293753408249152713219884048415021955376127089100251334272348327318279166589977915433762551291773563353000524183780637909091318576160419932485613256846759174310147129822730252200733851054132828004811692521204924746366890168488780964179717513591086293005494413250778061339461623098945121032266078938999390698335117296999728074326817763538306555181339698209204029255016189690836969591037251967338018009341462670334889899856966923644359539652606295050087510402812884447855309368600174793508374319291115963113811838546646083978196562094215079993295361267136813155506502013050932267629236043182051727994854778101292425472325488201999898668349328312083744383163344561124858946991316964437781984319813659432586125600738498518058172370377333217142823689842154852188043470283540067324723810057068097540726277934293598186344037248149517248509019462277132893681368144616319059210911226271805762199539438866601140205867465685779060832653082644480157814453800892671112773347361527597580086952813194076861401976487473215598940923583767795319007405450970862786343482680175710651878447328315891315730689542531586070519944686771346155265286165931335466141376137733538301086286551541001527609019096434769891099205194147592767491621841007658170787886380954338368551518660485624094229705637521911481131957272449504224789523081462176857944788471639684569048712098845718716044925062663668864380736686751827068638264902798141479580159740587729513770608161919500727094179763393877721869847085441524676801912920491504030538416157060452395070882913569599526426387069334256894111389040783474548766211993952255547086494315310864168959905066199179821933677737415719753199988053930814169593743009018004701599961430854619646031661720712810354511546589009607848298189489158180667418401380473901641751159938178013656833838277592683812264405277066153830793826857836643012563740471214432188743562321157893210200373571706470051065235669653711715144711894083075090621562264701641671672595170832561352121327142816744508986588271312945110482169025842637277630466714982358105496371227108745807884631058332674436595227676589359149184734486964394513866561157129101960684275299907332839602100748321248599222666173577513467901198429264718978354763705888000681566028801641198798928590660390856125741886353694453067585932836966272677786523531762400721659753285740423700241572239157671375681171938540446680420825826709047150004150616339329722352206857757586408624034310511564872513028194160638510079712757995456487381687215860622954233928264277622084038431738879487136668153133560020788113152996701449750346075706644776740699120684881507551484709773882810394867539032881703707356306139669326798221304745932236981040565798184139496590076673675242241054997158395391735009148923449849774011033094275776781384368363086254171806867417236633378096860164512220978862343241154344071060676690611562309539800619101899390113876589280142322367514297030847492010244229591959460437243057340862539065412512107133779969333953123069710350854115887128668354054782540391228014792599728265875852455346746874776146374022450828866723308679286191569608053242152007844637087633039424378062497551892534280066017450188458905966767845643739339466332641513835849350651251503859843826974113904737278671534357293369138234399772879629746366353733853123190924203231972021320545849669195713020844610425462573050432115607446377500189668245053221527299409561493315888547974343846705974913045712043076632405577321776958562663699557313620059384738846781095528412046779504098514106329100178265390516807803560506662799470497844019241336125544368616320987110084665666974011973815927445900466824365875273989323154623961841897794519093536754136294495387877638524308615160483082764686608622924774853495448440092242856442691303261710518064697385428117667431765190545020079621430406862811125178097995635076257930042529488693518215044773191917533236170434033677542407913682242870550632151294572213729359529012446644849092442478379155626543993015377212768443099067054350964190144620836432851856055806038512446475828787085981293060555679651136020833116237171419727011224394812235515042289574509855685183565189789383532909401006769769418987090310733103182106791183144066283829273651901926601971738504144561822337174599678772645923359564188376071411096216200786405080962429592637388725384833963379294136648874075076658589736011165515299960419252984177147996976676365880488706952659558302538183617408231527848873031940757855632114373926910339478619114769114796987597513493879269497247445297117036070506367446958389953703596466074351944855908178996717897501111757700980898117162482144512874199740291691746709327906307338150517418081814793009628652221209648226164465456562441803900516199220762547299778022474306719357518531819034139027585502966424250505485501709307391832736706462906591955286843322653400261945162738616600679728105893068855260939103726888278709245409233541813112791608432330192647288475291472332234619964342182499879309873712090357061899228035522703392058776294966932330747756458074070539057657689406380979659336346175977773558727182913373558190815726752888317493503851779801082247235069229827691763395325610810935251654652359626646469021894755287668590109225562790557355571364260839411777246781740388463235406266061102493992714873904987683040242357843940509185674989316035814749465988332301527874898668974716190824623888704112715876485054869046117054816982923048427061818989013412284080463464181462253163262095869142180226646851863739169025458967999880722439171052271658666124225224388702269329716548138148358131166811995510501101191005764046767724873743778881056381032372899344837180237044911123862468032097384907845233618424936159122892156873887552969721447889427080491468556297287846469085261770413523939479000747025926616085901721218437058796609531959918974036132277041894949596108096073319864550599830648042109578302167027082215577325524451395885147676029221953663401605740735374976498842967065498872595706876555407019118483497483908179581489436842644416795991362461269002928807383225946524650797171831177141292894520007180049399444678564731405090355009915807707531380041499897421129023461220954519950452993260510432706324527496204851156180953385072575519812647011543553514403114747428992692934429503784835619259189698722108312239674049541004557024463302873236640784703257030327212593736371121547897711378316236292474316160572611692606800149525712896341226679292142630286186448176040687590917351942661482372979336411814965058003374506773934150120777729646313068799666423052813241610457375915442717165049990985648110548048372344365310902977343021216680539146354637179818759295798724532531466713164930888974229939394359842740952271989110468374303572329094720063682819816726138727239571275658279334130452214702733266560835195899162464852112292849491776974402133519232299506652786971064217961920308282681274889005141882718612868268778466414959689388908150421915144315449757029436054379716757725567481180307835988189302563700900529399675569243510747435610592545381078494459886844622922319377622324572079376355415448188002413801508400389649655437725350240115344143760283281851715779564470166666417096984737819100943190799032304577053877098144704871365909585922502171311582937366631860476177694383481302442420388488473136333672503110673615343339782523551410455563377040388281055989489044768529726475479245903851546190142323916741917554363312141270680650782820261864534824835560256345502381661756191456010282885256348553537681095746471746612221331699632864205164020614335842728942409511112306719494585385791290802923944383636079006574628066435126266053770530406791681055455278341633294650507192196552239149742011325319391029769227144302167778723235934580123687828871225561097937746817781737833799214605696003613319585638669255762142704755501356173298730033203635339074072307541684310419297985176576010937104790616496855553075453938610587064028893913010304962884145511595070201481766245083631383552823889915078323219586969702277081971148249586554623300914736433421729999603141290131872774795253868325692673792876147587416284342296764603143666891648852449356912745598813409913691240847978200351880273491309898520583145500519958487025631480538273247324394410990745292356701574006368464957185919939398898197048758308664215345224011459747736409041679782534149221212145021570506456375133525426863436483182264426524335594511872463786101909130574130766023526144531572905941882326410444956231333634808267174373260160464617593172494845501612842159819746866399047286588898604716903308253277779813950743331769749852983630961912092833505487304598997270105989552448611631610152615592839367698585508784930134511119524856747943459595926866149592000189125088455713608447910155784359763727778470927316225529782920832994326241135991148773795609073213844178838559799749995211318409398966240408087648583473011877708656935943975856459344007735932113349946124905844665949088353165444898642044135591193822687585601236260225671700948160204795585974777069590981945905267480490148719268658176302842270508558794516029946623794525462247626167619270986942121857909600908430893085477855204960291579318105716219856357951775800922228912419685369430702956489496322672839302705701645293919376025181183206356593125672164908167217536227239650233247186310307758264472940206522956249762470860475600689525338319945766703383411650569328670899320307421287331405123201220704206281552354939183499114083488887610883559651049713199887567781157203229672927621377363037009197640387733407670825247863223377358645986114802396786274137990154653085780426744119874068701311846133146253176830875553780468518324744476000892068254072859556562389950460157827634338199631546647269447795276736458622115592848014178569165904153489225140852032577209187593191707903872689876757553364347043456411166678385481089282199626925632009854697553115508771918828249109719292804979946122823100854470614624213860646370163506145986093024763471446459987956242272903873676059730210040739613285836875929941293890841518467733338704484730267655586715678690887148282367476502763761315457633448179377766765909308293221971716554838918042893806156305219207652681011281950913174275510596125210868130550722128779659661579101686990987238197098184695750235466337454171962830016320811786341005509264130945307584762160479656611523739926244134217499789480142107599643158162521801069405044370039937485998269804894851424287476226580416606208779271587556897968802105436679154089483463852530994773237114500509711819254459713399557352602515778535703938417134231660660846386942885350505500420462544831695142687510443879305455947232464525867897465769397840979123117598355568917376610286750700810128381427739187459387230057709246833436669418461378441320254123218477677108480274739888996236437727527586452200905787365542717138009846714217450762806555332708026660456040682319622207692946409491911986144442790856222685413979633890993412803463214172042560991990877337378400570468499436784172670458188675172908549198518468461588267623735047627076170093231899774962179387867656787471393494558760163098677257424965838652541545761442413042286441554076395317422212866136966904725988545657492744703070131696212899651125696379380612889519135985580794162216483326578639672574341928486866033357538650258062183652559773154290832726903732040180997679612005940337864562573249373925404886886158677012170411683260160564648165185116087942496213149093509869536461242316205370234676132901790446786419613450767694724188701631975059467230497361620648653755802094786581641448215850528643141993026594661044019985451604776506254888948022891401356095820347883482937384842922638003259004605689210978494204431640873861938430837580102607948925052024256183040683920017306820199028163194401946187496053690739746679365629115766127752194651244385256097989629834725814961339669149871640053470438063649854423718929530293139896415408619662126066458296487664143729397935227096586513934106590672778470575369442422773802321997647859733105573000485165507708273307693236363962078149010323186292050688620353987752801905127705356268137515460235184649505083219947343003467691572092557226315781252826217162094069707292863103501054195426755891809143668915647861916516220454407190198027223954080739549045446369278144399070057282308155302473588554302517224905648350042766886457904271878969332472710047101161128010748548166031508545269691984891246723012448526197794776002260554778437096860925431847584125286018960101464801621435677480450400193265188295818241804212778196796742556702813673340956085093600946508044222643866299096172031004267809579617302835316902276746329305440986717988201310534134738470519389847833954853688052101330585316175164557401790042037873369066222273557404161418305133403006619366781032044694325913614336322153767258216717810664267563365566528521593613035457518513840792397100530214736616538092973173878253881133743285353991034221606743611964081317719810706259127280174190770362126630665866091787808976850726342345625837410556529094020082702227561973255267808928587154935060749794750770653279979833301659602314572247118470546505337686632519730783021365261256739123880000958320292828735481699430244903857945736407255207542280492628373955826899890612981464294143821857652116742489226832645918434978003949339163010711210725294360853364323590820766806332095219191436163336989493795566396270824139090267534894295106202242491990371721302398812721836664675784675407952689200838704628967483881050197149387237556879442331947879392334000190884523678205561130104583249738665269127446673544782466358234221431049714705988040526391334282937608089567182000568235620968172512325137954173836581370213676493312936853478928960833916213009499145174881314088424433002270387421881876883679989875095382072611927916722697494662968206586614081118202825918491445913885530765303772214256529489777672436097486137725470781720862041125305107785211684269033601865840625152898730711219873840370257295287229302637109225832883603024787154064773279087088757621659130069188578811530507925646896979907525072193473844658480452804633201572808518606365952222517706989869957772288686000411781692036732331092376001067932030021539295584629015956292517701248045210677968845475789561596994681839070292960041710992967365458479005122137958554135094626849725290978260889339647610633030788249505377149309887059918825759689907925682502429912216076128139404203544550179031367544220283793858548720240330650254399098358889360483716707427409975184360225367450665302970581550780636864821196137750158914195614681667336904311564674525681827399318779274806864037150925928675732031685433567355400002406033417381712296059580495977867374808590750564358617371211394170265856857951914080091603557255109794549274444293538234909253714086862301241696169830086987266538941318999554495412757301292915833894985137330118073033860653321228245193449165525371141547906182853874460101351581666980471160169866711333871912202378193632175754010491965185539782392651401938897259507181578733452551217409826619520319158559372080246299882340795745950339599420022714140933435246010876502995232494561717324136806277292786836389074267051955140970740912363743662314556340102789051716841655506236693962366976179306151155260411340686264533770211194237319013060935104371735456610856350608021474072917983888371376359282511431608229432207912654549286972703765078534685022804724510744849837414122523381063579596821467100583271604734661760522254935020260210701718053841222355849453608909435558127252628441762433462183255028455155611170262960003325385086328645736622180324461224019290127113925012622251527547919974961284755283020054765304708980116617728522073291670570030522100839298090993163256406306578997225217602021621986570053828400833918707886141707607382048671884877564829850579520205090598783929604454031426363400929973771866990627642664958471286928982050003875755732416823855361213603266251808820327083262866054704159109908157964592000636365857209391761929031740497435138278472254607356977502561541182792201767917001816551511168714832590439015446235885684466172463497695208873885875656741798470880048383349556260303880067162968568926377608750207494436497623247482014085206719622472311322511480341495750665423315782706383888331779262692100179466206546135116110537333367218581058860902138924118119358250034600329118497670943655812049365032054900203354964256592480203278117196499278698442022391122137096263601223160081043188935320230266170385220615934933006364248631553766631766375434874025292572794368536577983462856256575811829237859612769444097586677866200266434199788687928014254548081264216480282475261568458839333502405689060738451337845749279330258248994845321381556096617309905727316567416358086027724840344925201620456486156883908324059001503056993263638785420259164948112756593209735753266890751665754862291906769591313314951600006249331748301127603373257538331908439703215175540143085871591207948844856061306867439509481046028746915327977682351498240783478994657788713057372542899340432934629402200056582071775609931493178148835148592772102265162464655398692598635738454031429739825753515400627696589631749107382005433336858892470534974760239395111778853999052675660227486361266911906054106128864631343441132804923897205888731039225081093192686475752201898818673640607652128578776980160202184606647212274407909814519614359144102181172098485156493182494945419456279257373976820064319260494729325425671565322628942613553618448359292364068274213640725484546753612116173870209798961765290005069457414817881363704054449770947523768199486878528381379515998761784708461492687624877340641681751720354911210668140319135008403134248631405891633939399843987124731170939326073522141086197901413555837588025737294315240494982095121233844386950524891103185983597981877943308984452733835054714654231634191706709578647202201251429867347313029558648871676174335512148353065293897499971649065508632689411378087930575457713738266226609114955604579517568165864845297232455341128113766655977478974977041209070152481320246838247086204272568653174978484063427653889706221453785905802112309480460741760180960616170319769742619670607827056076752352686548991521269021775758569172168629394896740756014594292937252623585019896136110736001642590572902284697782918130846195770523531452583235719049534999545203322475093662552703487016243843821540022193527940132115194238880740083295858800647989415164605565732249085589335925580695273131354220616303094948321467918458779074207586586707296542624742380697963119032819592062497831251693699858550689102394325618518351955195088488080154715037278447403595222828410563560830135676018593290290800540300891941119560218636963593661646632493159155743916115379699512531428275380867077790217049109003575195743010475040166608370228280597088226998595712691268228102166176854858677416252975499258951305516559606871554560513068311484907591971732471151627406143696889258561635695298216638071549510598313322777668046489473585747296054487683804239973263853402847253268277090425408623260409470744768774128114614886583551569997184378098768144033574318446996182049731320571584030521308975668290133816856256354338845642868085333491807729186691824157551845929821523151839338275541692434822030023941031180611867468534431645533362562808717339131978354209943110419967303750694845987370826704454202706243485420962155229098629221529442980262895920752887033789480740951068307340246015451841685526995819361308358692128244715464172982860661642795407044292360445306402484590754347593899252183711895327542366534438069878394137363263035910351594783061403544867318314227929517773773253420699557245654715317618771776517566426492829835832261770100096646487496576089875857294440560250138102204091202520997877099429321917046814840335394326805878641943784989392846554166867368101866734612065260001010348527491748529411412269911604701432295361573593289228728963798830405023239282490780126340537862225171524326962284707118146471404827075317524333256651891378582686460644888028201377211259342451388669469379380338754441400852489530158059189636633669068244252149281592805423938827188257509693103080860290612914228643220215553619733240562916590946887577234784845843524120472097107977469403746867877119373161311631180514539565003731309130194884702019159657403585883540331510673318650512394421659463950892864525003875706736898037828891418799934584844041075280072328679382336154418697804615631859982321430077072673755979860219049044773155037233349388758167861928059528118090398009226161167420281628542568541449562025681124510112627623525717791993183141941653121600609873785632408148595427774344579276184489255771965582777064710262804903114603986636749300451679416480889529479171472678984308107204808833765269986315082416214402380519918338435967108043628911310493908390476013967795376801601922497564364648191801650571968618988577002435659760286876253439482447898955100448151407019236251752627492440189520712939774976060867029427373747117843148649866529185202877980687412324217373058445259222640061380273196894977616204214489171270950028571149094583417140242790964761753401359981548453532885885778420603495404639484913975152039740498813255220745039164150460787704585098741236209430932051149658035020676936545794371343571012622652836138067037657968604315780433356605256145895409304925165287473402548014989945495322753545869889410522375541069247138684076331071911298991950353712899169742510418441241794898279967806589294772285914744004327924301865850336545892107102342920922265442730927895801588349248187855452172766429068555424386264351181640250725345090462448291110281888057548640749010710321345375670946812363372725796269154027274094115048485096046048114115657779089555626623446799473733635847451023032362966647201234653023930746410442862974120231703262510143789934031548069843793464116622025902671258840630372879763075296360235654246673532810688244496231019026806026227133010801871797618866754048239488008817012301784919674339628180155440802497493701438045979590516379404986913158949376028564070718651556145679664396368704637462155558113919247063331426889655992381040363305879925654271292562118241997337066840745943073321769446769672389692229237348229108597945219257246308619936099203025241101886400052528321100534730720832968298281689311153285509973382173248582881229829209119544147993138061036067362227690208521944568829043605279366615819879160375137969005803447444381991975061682429772789706835862170618585137169850129000918135673689835907602324889985345653432148127833638539460388121779696869650300685916283095098669223530342878009156169923847084173335176682525693318815605176064828534097721274106931737882135500117564363561219339566509198805445718158672853182651531005013689933321132808101801124985013265871533373262521103746796932626827838678132374959826593564734600252446629356067608806473031929689251949031526871950011736601001519314971821441721935903693712793100720826508403718134755848811242549442483281798852303652770650218002489123787886089292958427488236246926688623409375436176986809184507394811494262058959971553443192763591107129043486588610622756510186660732892979360837659085988267210365803267885796751818322854979307922937767768462940678504609029769821574033897884892801897101876602759346779423135501268330333663996663436699418855427299843816137439977749047848408172304052961634111486576445581243733161349684904465111677029944767295060351032364179505203731865781582991230612043423900147306449815996594824567984548665308620211692094194533786708598597949794836168035518147354081685590279770516705372282306574450922831606592958958632696191420038742291455079532249370399563451470156776974240022456107579172285593594913349158725384549364214062671521911927196528849926476247209306160446268763446709747229768648275958755702246147647033536539032452443106785442462788723390213302522710980172109891876845761475206783132033282676086415869925665429539813303520019567902268647375392393339914117723788306973016663991395190139475920047784052216739296517197636067416009700358233017089078335500110152834385624390436706815953706810980369153124631487041489023701290256910463177078141352619258664371088501317983628808672595114590406059249136701653107763390394935431919015306834154145201640100042893070636294262984058740363625701841164593909717502939521885448127604548254901729311386314052098958592023355234197220199819534943104379319956360666689347167721368838713045391602526653836213192268948424847213651340476101548315347376349661278931281379068056218664475825861794686119512085779072649109214346290782448062497509716146500962941296272751949939184530060934812692014598236069706544546616317769401300351697279543622883590475086362860314774148958503708440904526491662585638994463893093321051249892983044343036065182665888088304280253662894753758103839598169834131039596218619491663232009279171994024659979685381535909143429471681761234411054380204928783017463691905569233900292712159086974393874497209914087952966370587346793320806311494205886341230193689369768024003730853320716279046758990634865663634257461211204871447418677536740580195674692517883379901679285460887151959182600490850022345861215207429056258874611422049406811917812409417929178093169697704766326689433453151483274611807759350016999741697946466986113526599968701080627203919909658407929632968018308698561337665865865182624991338634806433147017636653392503347292705672656638390255615091919446498414004972684489872165440945519542731706974697528687128324557819829919388671068131857707507564562931612903402966567823370486428816050426310335145186320235564378246840988257522518364953354592767747305462835039428155557456296911622268662011999782468585120929760087579271469257756120494721466001898730467863079126822063751215215135867379160876974207178144278769902821863743952837433212994508735475996853812021922245569566047852681547826243299176839480031258484940141555338168613631728625041980308335788324241191762962603299852301288193774950436867303832287159253856182674300263350174044204868588203647230657949874677959232940993476496935223907849166192039122041912837438012802846742485533423846255566164493857839964049346909728412379406035698451412029410043692770506955220018172717598366298370314493012102792804456927566014827085837399076790410077701637341971519338011735330250019437991245763953882858252546466259724507321725557322617732222909548328097059692614484175427040958149131043171798945029189575129654753732925663319038886906712583248149925373242844151974453147990250173305586642144445898409928353215556957837436275737659618774255462369613192086627804600948869626215957843033021363384292082016125355059568069654214921333752328823865606369298880150398527234653965389746753157153180844042171107475749845373709780631586806216528156609264234957999263108089557806705538528664932973440242561611544406588223989958176325649506637473651551005141415997246244425981920468606638423214763054328717945033671605589341739308233962889649961777476534643090811719878203422346165477888112331995871720733291513902166049620746062344040596336623116712719666272647222301960622302810921929005670313583934294651210917328254823027449122786306963963085990699687212610254495472618929658275781461352978976299053288499242550172748532665807198353204606287133355647197599976478449722924186324824434035284869190300646889026257655475305802130282807381301015924660524862625613177793889691835488600423771128778561445908883809573560171394017138785446073664076449736832493250351469286644234999053191670686765716808947673394582005240623715125092530709194716125567930321789839642940946124181466583117852700869926218684944538438635326273069040212299866819274913622553625264787778338103227502672743325893352898264809480901089874996895182604772516909524648928495483867421429114083309380276241207400305597134045208706017311931573504040986562563715561867933662390255108963579645593759020943891480572464956320601534979902571008522294817084458407749612728633789398805578865121958736755578678718153918744948165446582241744345474104821383803536419121671826965599213818348734867159856375311335737864155325007879040871405127894223485154944148545600221075101724496468724298265565405078396786791969590898178623332467409223854660176453822306039651225745382222688523068219371816885963681318699910463749879568459711895354218310239554210871526446576937067027425175900734633572867197470379935424583616994906724701190504596997327935718464678706545045811198369705858225622923633036257772560570685198912011218172077673823258019466807981045057554973432851282264809926795402322691388958905660653672746454303521220175538805896366957798582111636856901596964297895418680268967325375103983924718371608496562581327520601347206866741022443508106321002848536857619461224258323344376045824857918466471530539416692590977798933906125994697868776783726975701167934460930935567958532682546845836618936380390882735084655383319805532525817730197323097608820803813579275382052928847784563298373163311623812426540621644480909584345281157325609950037578794441232505069858412405684491730007968593172208927725086584600972878113345593531129609895963410979936683250117331981589372302009863272987559396674607072664180470662620173385738932257058573704153395438912265572095342038727181073309498961391555233188083459436098903784047661845871762408484813445505898907935301134938370373820566805304861295956243048790510569203293493877214031289652969858946513439852280423073895071413706481196074405512202499977690780729554492930943943759037265710866525033811079840156588856269306189247392860092496822937095954182289899792045663291292351319058468663817760693057585712758124894299412357421742797808096915077207042428617798734277991937669928079010026853922200992398669261864813205858808774542866400195995737176517384395123436232545904058701305659308220898286495631690996191243653556532155957242507906107809198691909238252116165070670133145118617169346931363447204505247400247928354456401026190862052625811791626088132056287182929807927990740503477471835612766166071535074694885666324886201802487618930690562281974842474513488341938004064483237103521585057540181295884076102320947842577471287362764419154329978165894925624766388449232549113976269579597434206744833488988742862556083007642850630739671071054660169819067176579268371101699196444846536931963128151537235774214577289621782491550690579539442232691697191347600479318565049563842766072793642236749506240836951678682383498035833777572162156953425369949660990693455934140172532602978388523952675086614815219022023399275578819788242692105877536015510196477393698461816641161124946570348374585267840995820461226486673319524310238241973268006555906207484400983744678944361953024815352414935733777966398454275702445506119432116115918537893088981968724903084065611190897610023176664202823481566782936727339955489969573563697270547754612740262277027714110227622098749053092509170797176089935647533462003998803821102309195040699775216222602168277297793348299547896471868557053802155941401077774831089332842410522048630848940448400429364387368895122995256229528531682094896968475741218050526919741690266767793757961275319638049042404284466064797473463766203160013513549385442947720078693256518947427863972320434515078925741091522937527502216612761685697435174592482534608445280456594360089456352133296562322114831852104227591019959447955821704018226252749471971007677983589074611443380230658377758111364948529303344546944792294581831627890590354372862035862117520071005420450026083636387767996004141588617914315604123164178697359599253646317290549837921523589574380985766491894456569246336999538074062348498639933549066735160318027581812517182882593213671401308722060023265862790985269224924709726058341839522403188612386959888961750063820722695532542685917698528065725385359602855298711378382357159263841535511847658709213997761499864417782555457360275807747361944621799810698465343080639332053283471755587148965574716301124674122658931786535580633986185272568183583006630516309518510647436855079800126366422400729115810734590938197134038950120737825783394932674565700553782318098024929817235031445947205069262470107379533293072746387210356915718339125071946084909830117996848980495661158615610875129888035940384513391187450764150121090811465869246561272960380229156509065367539289671920504744904498795920692173630561558327517379908086969440645572444661351780074987649504293899715490838409717315881376176797926739701689801243914605477093995440422473703116733451670967971708841377106039452562573216100939438372522181929148657382088224186076674668654438104233629053418048624996759741579127293109130776464437456202097950850920224571027931821684499379098639072187867494242354926570077482861952901271344251215354774246990797476025921987032037067631952174831918648575465356804314072953239145524758196685054199751745417681729946224305324245583752044491709126534404040269994321493395098222962482303909570912066007736816442750086428671597762628738051254937138337378039614949744821830569743871227054033998129402268958777208637298206054351435522126301522331829637826154095883116951236405215532541921957566079593738936011814528398858869464334214828086717819117034372521580010628480208380950151548630130932629353940808522253712558969359243093917872524473075310582041330637290392748477897509180457370110388167231548052936417678728573166133231933468003127473447347242137149401059819982832861766801487638102576397986270405835719668103567432842915303593321646424808494420938021468426833779573537372530626909608904317822224276312697530041010446132840978271773638247961534476436077733117310423465623111806521695069221989156596577094022290758634905139068859791167691421714352553706000942399819858583377216482513585372454795893251238386955112012259075899874014744331508343747091600959103172084219488642091529330592418638619776939586975863985107972406737179963927447747144968570003034816821023319478464152379221428068984678802129363367671940398228888989085174780314304599666812380787873514233023992089526326220943064781082814522569484515133063494683887079285374475651652344208958705793397999362684171800938941858573475449459755264710353734725860061113604737033188116679863858101253530412463451253691203245138896521484647970386693800864201651446775681904310170347198642590860324634352315302234992173933445250400755133872979519564502994394822454533598201579977338003459483299722929092105825820508737171002049124528464220045644004916116460800090777694927703444856251051319315607882267872469279807978957953436822468561757772159602929439540920954228142658943889789159625589976664101966011598390591683791770297703259766171646084330396903210309631838664419168876914400768833722403413560455768224951668110551432655745032938927086375317698860170122101464759245002991301283168394000721000068075072816792500732150816025240060172025605776165314780109000810720028928042181887430319548608556210009928304587159628584016079442038143969278429822926253145636999517521793872999325613785072460138924816369726596848323842669103121230685556429691634027763818479790867159915996840874804711412401518833122799919107747212631147216067107666312927157814864044356437411070227855853800373691073107865538578296972559922999575737622310825783526304496995048938161788606534686229200236902367545513305470338649674468310052254902884047362736158192712476036968994289952179053985689776843360156621590451143581608321701288228135864081145034948960380775198543972093430396006745413051089816682557400973354304710657037169252188189343886415333259133828610254304738215317711830928998549110900582737410353758688981122805937195627340016586614110079257777561593954307100926896578422623236193520337990962293954204335777648981667033764347315564504746350557173652144235046092424888518278114403907666496532782148180936474208989130842661297883172299560012980703374124415653541038633153654693211118360091057880339070374332290733957096685207902947754121862012182206068126955687424254164063875422895392228030201845261087953882955331123741643146703170165991638079563634521825950730491144266636430238396191474864952706283495839721148105993232010324272607321743504214356494249050148971356915386623424658983202900962567791933082646539792617088708549754557045924199144516372881872942645611074697039086788411407037638533985602850306489797282924973377174427706716066106332949719215122418730001225565249824736255631525629921128007923267862840571218506876116989557619822968696700963769618437209322930770983940915060669107289457620220477593762514903026299810203567189018402114794472326460130695764586384907968254058525140145185861766667221536237473845433775927911516022380131040255604899362269892350012517169472615809944340503691053091495971891574827019152421992765269067708293539812408613765814982373776254911720860793144267953447834625507424563614682613300560163493897348760058714655668929991555411363701256791463763291935442164916058750406360465953657927126485053758623049562589309136084658574025998626732559423194807707849228486536595820336201041226694715669803924042460605356791982600439936910006661463491250909321913018914425795005254582075027708326080802431213875233319135562498040693758892018876621877876358286861456569049233171862469278706613169367425024412664900328640177061096289211744917632554692643255241145508764829050742958428471453570661590155986799300283068757373762360362584441973795502270218312050776081643135920747404958302523683645045858925892723937894002220576479289571574964140376817354814116715036749900168616983331858426805644603402091147660475231494367030696776679747269583733587965777409334379073272584267014414022455156992207168498445631147522770127032537027759083465462941354150744618494122449183966392044911317900660108780176416634265379625132159523151386839215281032165339826316887486061605379602772329745971350737991798062518054735134045663542922499858778707449927147153186434841905675285568350922524175804063396902899342604004234188361481497543551653017497053835483250210257948468692487759276532694407791293954987702035988027580439097561486517050692632629315848034089912243508582385330502143401724979945810628281726030651729958460645287969336173128756253559590923579745631204284702884776404210529547606377692117731435560430616927326189098225861810596657149235717028231252765336448265161742964956578642801713752601117138150149319902422565047665845511039854807613006478789413374926726252108903782891371726565711888709175428480672139503174707533141223218792898660319998116468558378652319001646724293116500224347359363832111712994573957884360632436111260291801849505966647555275194797937199792676140016108616743386264812922671833399772057631192186949588098016888228519464996876438521540041921902222730157330969930697483294162983857711595059075850214764645524677105129949416961797021670421907526947055859886021803497668477018072257607065638658207498580709345397448545906750465402481176916092815553390380123978785373986185305351789407114485274760440467662057659402238879877589150913929948653370838802079721628805867331418361437818482079785248485450416109987326991823462425055380399408788122358748096552723647084075889092438113400361974080013752369370361875622483984909451659482288012107254511819793984097732336803613564669795201839587443281329930817942919126513704293411250190419146129534420949930628779351016885532586868224440489289120742869190987577655055731633472201550240479788326317700511517810237568144309345679587414148596260188690069164896060595454576781242825883947780176061505578251043947832727450162416160965015892806877961383687080727984329167152562214985074202487089093309253876883152964634242948832657065251895085638262948584678376497057615872284585740443365842218504635447921758556529617123395100734384420068766284585412088952614010297723240781660619115149172241325245920218654251614807298213683498984600335911859400883120226666677256854167223193565768172637986567103238852501185999264099096038035777294955045513662014455027360544252829849002792230343214031651138518123086604682046723084239075337305868175743934880558840006361113555821868193305687318666981424972846858338989002981764393460037022101084837971816768502083226280526874831773017467221007740432280120546662601973756234001789389590526856380907027898042925914178982899801911746464349067381581313580256006344028220262421927487806743136921502270563022897354548734817910108932263687407539922263689728151580602204693662467724186953747567188647464862389325418048259890749987578941109927344132730988874150205016076098426318304098624429694978506349463609191326999705831554614119603889241902838889196208209001703448404164186850280684075317039973223267062714194548657736881231596448392561388739868141008519807297506689465461458761048431651185506352844040271651539540165386739308765670997085616041629342555152616142157169426716209723957629996565445512964834733844526435222062333766283199680648502990532912319937500718708854070031890881331316655713076960322262690569679694553659087514382571746980899208233454993681104583205767625466687945553435062384270977346663667857880655609181312728121528279233478763824482784593588876478669844005284379391699557493258855281944131900413233988633418025040368677655567358680269529296527798499148119665135724018430293300347865933597548215511894751911134259044794591566794007805778804109241909139153626583296850913294780277733092133962011336366013423307317595455204038596558525164314943522409172328115485545063689238667429971521393137823829624741845938653690944110445651658252226126626334580478195485361719364296834530535337834224399557395042656904434900194804526333638152448818789911407565857490168280127667794012974692640331994327551091715261535672046693391033067681503877211529947337735224566769875974696796298252592686058923161622877984091354593658504643080019727609312443734869346251067160480629991234358193824156351017131779351663237188363231290718333467952552960798621438610031108509909412238208518444132993959743066942427921024459203617506564609773882263335670671186191368776158928503797805222439645976122847042602801060199895512538413868599017864512740575223861815294754935901768622347756091687966582201743883022315311724542433792858031393833262716741266523960062107823615650873531891392777020925829083504419641648122408006988975177405845367999542962252634040633868529332416846336624032684112749530239212858368729886578676196593331007427198430412364486935426046851699716572735972213626942195418819628003857793552811598046911661749324026027681380342679972949819785516709843871971291202283986914540981490641718147663364028762501462539569571336968781086085425767819750439615443219507935607748756115453347642840127080110078220763668940321409516317989569759189842994722645126761391529427864714783008571483037610589129577991120327421148783254860783565429400593776860772898363673053470997534315757984050501487965052443905129817284288136316647506192377939054085520589176177188107448944932832226141978547350721189595866159236731822725596153045590402570190680089873230467102547839831035221301137705992110337473683258615844776218759662405852826229278485757370582618729826902478766257760146480912262347321304145440129121614447977952073362311296215053101085391300965712084313448436607930842974840288039330574193008830901724106107845726065175484355711092232136944007529887177804633715905679517848305537695564392746969105922058236276161622393227625959136420689149125781141774313221900425150522128567476597292528810040241800924766926397200229222860408907120925148315849204571835153214001985980665363613257926063922379110302706496872619591054824621253287890881468482577109221776776048193519665423386537949008744380065274341779033132212349835983321826530879389241684835870092463554030258369158692384954355139856911354388316938799559484686839742487961066679379042709363045150758593369802777764376899455024329128873363668525790551157242839248627823360191127983372692440552291740031901218858923095464736096518352872978553206551688517508946264452434598684310603647409200037199743220109964360849496315419694495969205659138641006203428171320511302586070127298740456093415053981089325516222855162034321666774464927164019550082342290609939815618393364457067855797882157423090943551014452381847092909504126039014380082446721213315726537257080257276527517146989407877928632195074136234319422832525411985193685285463392629208435788412273702800302866619151498864164967919666907287512363182583738646747173093113675019823453734875639704198508729764083217070797984714872160872338301797111723228909935576139079069304008680574179834392009487270133458157413522215926374980803162332541569536814328685358810469190670360223743994024566233709038202505874368637478536621732603513756038663064386433421764670263448547407206799529742139551874625637439837082641632667681411121753715276393393207648217913796923359011749126806132289500678229897952055105650919374953192708122321378481139388820256975563289968493167031556836149663107350557753775161280847425210106791088424163868568474620281945217126989616569416859525046841046588143881090106621039198934081785009048216627821494894432833454853107483057154774291707579919546867894955431338659836017833010388383369953150262992289587688476922279483820793823288345109111807471687216451169982788046153549615162304310727492500942110132533900084931452523007069453827502955638126638022602216059764661923400919231928784132362828122868041844755922056836261242339305154202651557220233492643859904267582902162132750151249138875801179457945558038899994380162347083937602222945559790147871078460383237156530137230862161989037261339264015258323570458025913703382014756597033499016809557519415103058499126547390647469270422330066145957645871927010839286761190823664176447407633051959898895809515425410676821960251024307551299745459331283233522205693582651010912449495054681209905487490897730518983904982000956680399353646916008360487417322657307763450227675165386049597406497146074305316346517548260643665039338722800785801392413584232822403797833288808088576113104266866651604582697638179437667720571386133012547116626800622960397368419182946877562300129731635374628540838113134812007868427638491602280775290021242132478798764130673905523465860757484259870579769112096959870079946132921541507701449448641637230989432262087769108389417920073474403623097401996391858405946450024077634053643457800393961274629037080747629092560445769867063092291322094416240522349656801289166729852960047653396538869633374998940678060997479538639029749772260101951268195876549254025049761596118368981884219552363249180055682938086294642316332043141174853580133280669533076204678092565639618407573853750158300475121198058409631968649550466173872322039023445462717559615218771179043161679141161450969340814999790498655130953345701813624865117018345334038091102621301111302420933607435109665539012743301727261046135118001162001104519691127373754009701166137875237503407306331907539322763884029522123605485625796157425817577055652055780683535008836744889267816394467024020623823016309121809158809085694006680722618824574026835056959200610390825223798639314830811372633239334083299123262974389907857543358287353391372822009783427813437257547216554200236356231952036762682509355614739737105978950691505909320900209287336695544064084796989360260657612237545421510608646675644509161089466876304427807012980724438398590920540448586892958052522015422899128736601025518479011273211266927528927148387965594273066449997974623016517585612153576547867042935105599571089742453123272524762260605083671999229912860556674019992231146843493359526111470891626811628643927770026994633968453478965677750245494061122715557973399513196575789436279871090135019516611219390285089359902931332602282592219446754733461427371981904377854760447275938402816697749515291269268366578224624414817900418438395594201699486617742810758541800740031342068372207729266437881798139488695562612223016093083696307784464610279614097551659652572838095817481948956141327765024275330220713191574596031502573762373505336964521138569227888446331293184627136258909998259681778039047495520045752763196885037837252197240783035474296556616269824543325649397954599956557323256071848848685444666443360394945585722143844704667368666138355538937745417679410039198701111465756614124827695284537725456563679099938166181168139716090438279609793970256436696712109338507189283540004932186424191751385635612431505255703088296943422761222657838617492417800246368191528099923078242206145063925207473642613661094863027892334982688164298609420580311583818793739933660307912260275261157456785286286794788793528592314378533587855586358865485207575932884927711356262858277474737009964664354698715227461255352040617294190264921319354046850507316435877546188256135834782732700064529842298466397263295356978029131892616589155497693107230775840234226973480074719352329460945918422444666092263030454153892022588759539563396815475835092851742770415570973446151170798121704358765640643644312905949284602894895423635243740435339956241227219464835797650308945682470041232638843831993428454476817311749985061639335421427248597196844685668506131129006650044562272844123135778271311026726196246249657071964139390154383556168508422665098086194567364860581582539939169743016323796223310122233460289554145434923866915209297694804597088113884631052764343766570899572095652209595351195308460956782075307088812487863921631007518090262097297802113250055623642939127873073914675801486889090987950640101040051940852396479043297988473886517927119414576115422137996678943411235687485136872612940476692443984804202606450238376519551739401332748124282587717933224423697592979009155245077959800466608345383820504598581568783234396964924910881903558097749976357401195043065080010830933680544601389261730601433163162443810761380054660495025816519962198488913101937526542872950820152715441869835148811285245556421175191193415605740906396777029988486192486113516003642212336830996819597235597390044056021962844952170019340099722279795688159214679931703179182121889532907888691266044975161194482633696973899488665979029757635579570101208570943099646354295277162420801730826688732444486495254684947294015671996831651873303662966851074619298178388604703267153351695991676614365099856375391052177806477827803934053682458975046154000861400790082573241394557331979339529440318173878792976511303738742435017179628210867348837183553173722153439003722749784299260329927536080976861904499628737657254898961250968653026735291474895807376671024275073953783868628585717778270193982997499304095807459795651960959638304681596001974064967882040833385931203271629204880176756133003390876554578447047800168535586967284422023618778747335393302526832436377721214968032246694715745015219759891850059515636002102937611981112915965797211001840045268576703453830783497744166428345089879445950088845157240463848695779674462432946799456123472668113231163790375832608737084555549801678363276089533527269445101067519381737001618260142821821860995130758760574703915729462695282152410545536169234626784284549883703131471712503862210077587908133529703786259667875355274195215869582470819794772859813161336936626755857668320911728963740510225517740321474778659556387931038519386903057340775519090492173383196520867006896019927713656889026060438429032578234199998807845555695046797059603731381807436028990123080467709847622309275383067854345231088493844613046885415391233353724328956248433158728814382140059892851429633720837733171508247770115809654829765371202147474439550896866480488925628587859039706223450688172847827335473620253944289767759880203987699240733755384916620678178375152141292646473641919605732652031581048783672571902028107246580774094087002076611112466140743446582342586064187962547776071989337106848529477694404253134533043623324577292587964639270670611343803718624126978261429932191178547539686340827533584318135312218267473873738514341345654493166974152640913546764071072009892937907057178770103937139446993773056165135784355973552078196060288993025506842953440128230731364540641736381453171989942659217494570099470986959430852320741949353493407522834227103085686927271817682702707314087016084489624807962655878022664642897634937250024180294240520933134777956678162443820357664623478896350754558749675354328737158544989810668670165420501661569734732337269039231468660638176533830498296995355307288840250636323258910406795892080147083618475372658537354001653029430002538441005456518079241602002281032258453788433818378500787783354605902293318240103580563664485814875139773564176878616376651678941000308343481690114765631554035913379278839968536398907119639985162996273743599565578519718560324678662207315621304040655410711794236978260560789621201856290695684684012027612452831320339018057865003427034828564943866654072831829585231113927064520346785602923518775250501597531040627561703880593375821418425695017394489224259015981924568400544725191280453250963444473007062291254024461115106475864840292782719132085162892670750081110466388671671690450461603944008930345486288163028175041854875834503437509322729308507602685699143272629934132152340721744962309511032439278449902248247950115683140875696438722515471996631713044560998362798355496622548679115989500589997140452894268170522063667575630298725228022672422635465633134309634414284453781019750146759031551163957426700801963070828818941264024415769010663029007667518733127487571352311234784691737388978734630916043354686675473182010278464446694472442466583294886308851434304499928717467825888125545446025091442196432564069900963085672630180613251459664495463688156659288820540184502151051804295648337006964466218610939209200384854288041555489442500966505936605609570598293698265435408710441275661892491601031559790361094952573665160580830949763904168940966155646857755910475078180684726552515745171769622018329640970428591305127903300249686594898609821998017355066930434640998397726140285523842685139680048953402771532106903673152444412346050154371004947248532895662845081054336844491367596789680649735057432416406268436119760449025718833537490094772600406710389751841323347441889893061504091893552213799189089626353970745822405348723394121499199006421047107793545499413799288237202537687358442513370484969171602839473696545026514672950068608254967762647638645901566834964244646348227436819949806546503660176957372260068487904145779976498762952034850007428862536089969050599676388475366726414652938901858594461963557579689320105946806523420990611854970295416496630328167635524980921646960446425971683833430645115340366213272958162828051911872497322756044646367902182833356299992407611252604251659690977454318129163135679426026017321642810546793945843122682067496782048694833669709211190002237483182754066146455605497408115654918933591515072877335099500841582556161010378928715059678347470245479677703997647094896255736520835799028808673907816987652435179230895986229717829784725362833826017038102115730168718138161853014579321208007290295875080518939739054416104935068308781218609084567108963501226637725944395532986997731238512927117243876935271066384048668909250415673123542985518783445133228285727512920925767206745655109164460656646171052933105859169198025356518024159794455988752663916586375360856638196548193943817490688303424510864188387553518033834667100940261093622914528472014698608554211691388775461368307125360901623439703543957399571726244057835581457359050612378595216014775479431043339083166946167815429713163151920298086699285472580632141213136124716020717449017935273718344245489211152331251477680144786709470283470931672683173279473112709402898788999530472997926434176495499283471845358248985471176146125396317040830242563412188426719772622076610213190944117478274880187700444169930962896904577621211954414499977421353682917187148044985849853584577682434864418827050486975773942337905012850187109610941898600626030232146396322594359126829921092381497398328355681350846724892548074563264664232648430127209304214033062301824718076588161003167475625317855233446863758617075712929906408883898709291888606530983047819746705900992961434089741755338689458406555461193156676506384056527954581663626597411923438041973265826771027357605284990646765597721409200437978336972735853093744477430853246793259418981684663546997647726457089062765737819870797781427868285390874067546758904022302419104658317604876850053659772058589152573337374621859969268905196827523044672770661228616818131632870318470285984805911664111107589048914592400625515498588287812087648955648030115681454695362066496546282725993016652904265363226591547555953375340671427581999501062352420357969533486802308459462915761437408771962379543640850103533969470055618668912365866834246148114995198488250225358473130948523689000798647748243303780445371850156627946608141926858072071253130561208951642455253835035759539071561051229299891283814368298623482665750360196459733054902927018544105110916655225947827365265530608168872572807563577664736541770153466644299761609462409962167260572998068684006607686310379225278583778905584683680666555538603814938716494005604275654552591722985976185676149958622377631975248178997627421116945903168941277624600137355915307358845822695948244455935444280826272650962312861581810793017962377353115329001013850153519588079626945372368523769711223637419790072266190094521489897801373399775018886001373785384763271428055661209677372765279977863261984322016745566155496736637788793294076401947796534665207765048426434444887616065849546785976331207420466991842377040171639395286509348090585363198893908682428269484755909237942062315582777694162883828540774267757008669564788028982603778727057824185829913224081518138937297485053066006775537150954256019469532197418679881189757633985939205096798473238026785443350276648670833001241473922888308982612837182812135744609936732093334248797654792336673081682899519919986371130273596166204306414821028554638069729779432847496441198840534143947781739420929252435459673500836184609007797932693849616731375108594908810111688746394229685728254059897042315995788583629888308671371796791733263932607016680496088895194451988276759865447126332807340249007005738803167500001247981153635307226510226521081797855375065613445919640430198112868083752350480643368233099477213475705886874046282063521121332892244872233716415066262618895296890252505001353415925227716548792156625392566508277944294499188925138738273283584161912263291401279495950132209541655683937327366246441295778833203791759395783710622456108762215544506062910656308860023994037967196563253507148956625772153278811467136929779446951056962390154692609554813533141731823526938161795289275813987388477999397051649262964534492755074607869342147178116754060912649644158817872992720592161144362803308173032737935494584783442047954772003557003117829637681909366913457895737144255349448021545713992973581206844364283076627836296401341721438583701409230067976725818903854190865249947837420903412636402691540172336136564527724507313634835964427687186528373578966419097794596181418999169289758868239462516940460781625323107019405625512513682334162190995459703676789003792597851939526235417296747314153763178784340387091944006346205744280308482484046776518317627203589828294163470553577764261335970826872175714626918243780702350654609840142248508632629430397503925974682225247486135088320144812434768548488764880779970895743735351917187455349335200780306019557606310179586369124141726191827888564933576096027350892762716361715567215390964654842810131681371396745486327527220151512028772912270767866336332272904216611255902821278920187908471209639560794414396636311087060231071885325284847447953203507352131778437676213448436892954175567242146270367049561224060819751589136897866068543089476500581419892108312140256303820172242547078252868820101705493381543532151168743420125253478744562271775398981156926690862795515609552998356043930240193539129965320214211460347669883006726607473434740357906831808606894070272263351887623478587605523621364636380771006213219975584547618715264143412589889216700154101769228651828515802753506802676622478162124383880983940057561254431909183948587390791727351300867829910578444495021813011628613113741011807060981680758747776304137651977742434601974414723854171449912422304723953058764084655747542510808010939314874937822242848891950811485050142430251032738282375939336648162799681652382402010753848847897332858238796817779424968285597490661561486100256268828937945670357128467484339461032808606404092361893387674153503883839131739915870006675584750418723355116543200625752129131962417013546028885712195479128319079631896194236427573471093337267187477456485611381278219935865939032114314068323154601649889445827286474331683780880018606352175098789497733262859532050567690636697073998161530479410114069923796258949721050624124395271443856003546443538242474132236213410577804151362529742518109665605114189492051421516361532945129071029119806128909912459210301873292681407461760049705445471109377232326780548008688724254956031617018998559229239272788760081120518313003869953034615332745828709057858613789046122609072410475073711592155010524417091208592358552169372622742011135707851738652311555391282635162005369207786435113140489036875225098739966790602814076162840939921029746152433185888629673225061456036082712521740063168569987893471807955646568638636464323879224986636071655985048925160443256325851962536494951489895291443460697283874713335655339188755445107816707848164376044326726869801722733900610092429963265043850666513245430609720393553445945384875413417256249095771008256691561383230547195238442994654454880322743457579706040189033194066360035226435435540814380677081074154921992025811774603850520831024852007437079731661802384263317634177816427502646324269548333646397498773695317970467372915434145865553884428848836024720792932054490602618869887880520289327245805138870068142432607626790711828246594558799770014158047525780575422529059977118097329640643469683985527455551713605949200072322869831430064743558105896181485778188814164033514598133433908798670650619190113697934324041762268720651588061355737318151031443663524131853154473352546799235360180092567007265158123323101079879533729983737855682003308539276864222142385291958584283952826756590990472645403773073850262778274299877148917478125667495516988778629572575478747898844511322720289089767147873014371477051971861434906701575241473048675972025721149339807754527059782929993730870927210488939305787028455603800365080055818019492513646742038744341550107854972455540175881643952574398299246459899192687252144031517833783916028356334201052204503581341718748999590037295520011482934693448882467689238264022788028080360354512257286429591462310892299958408593659033197846584911514361928860566999852899528337794759679124236469899386795769451730725687610046078718315142267601259056454065934391890459324247443734570852682633594140353829542967706935092114694899012105400526626447011545130835852789478601877709894793731582037625866041614954380454808923415149952284597136954124183616142875976486179230862731470595768947326844095199653361890758688397056978385190600485817933513417946237755304533016963567329743168408171485126068704053889302634650075641847198920939324586748956183025662165138151959213327473340643876272949056373114922017191564425219518187634186758305988478365781662850567255367157106884086300291819422839194101130692224861143730430971449650892051674043427849086054095712878897921105121810024476563661595223119868565311532200664055082168838468669322213472015318660897563845057929485263389996080634021969678963107102349695297720684273737406994353782569105712568600106961413336267883515034104885948851409405495529477412756801225970608023849198002506958160168856440410229383414562383957505292890257790712058261073373095942279778822989906352707455396258851576884833443415305036110894814602930875090569810547170942807442078432821578413740605706097108609223557692535330118290393486224804316196607896700804253363969828836286716459436739657108118137833409668263020055270932091849440647370555677903925095735363189985241942890514880368553529890487421534777998891299440075051442716733063054191723177947272226709649690684643680248372245879158526690767064766559470191000227648602697132815731217819552070966864710127351240762153606299907056985729799105739111022732652111495953123195498774249143467632821827280181243342390016257723070167574253153604823528269109693082933128826945926735247681849961765279064076070327618915166518967645000238937345263084716784324206413443199621080712521567345023448433448624886406606566237867752337178122581441000890072387951948882135180503425787847615166193823583378938487080749567764735291775019002895998936170557533291062194185425503914828010132741751568717631690056050994442488844666676966789806447050595096012775648120503456639786497478987879300104633825261335258082717164932784068049593505457403407439654853156741784748928393982731213263621953772506701745289724945042121219226054257768590311704180322066639504928177556238118645844673639794145901168011784365518919102457263827969474530347559474939476563027610867044411124541507773551186121503104623830574957033272001725886536951701062773392992662257132699512691323789919872543651977392952177569695071317911820651587745098837900672076467355231760081235953230297979323011944333512108343573503208763623045770841207030331661781239176304205103231320924941141762386322871632622673281224679309588273143986695377872388007449219575020870608877452253505035080495759555084610545721398127951731133040172365519066115073078279654513948684342297984190945846654074409999375625884411111927920858010018136709173420010060445476475361268905876807781964006078665496233547430907016158105909261049058834740775932732686503703959912145968518332547648737026862200233437696300318634712877803775885314087478745827623819653880909403932434090509288542209472978313549259225412013302124079936617932851227576142945744922293288165661359355965014265994704198440593792040652324470042529023867552007199188383258425862947984240873530426204359838443344108395013789048368458552652320220078098626865450020653389768813560102856228609450177124717845207141109530436825280272246767753908982862376209886292801217527616561525461583342228970229733169080370675985426325636570939338107948178798473678567184626289730619107872939800609419489111453703710633327935239965982552640216830231661002645799176418887455428260297739688343993304003569328865816312111848896291902778843780461509588063469609445201074398766154685686731011536307429614473340896410408054308732319929467307656138749999674026680682509777110856079431479960948646889592629888972814946911522941960911937200839024308119258955142869546588152511568005618298430966161752702311775620121239808206986230809397566837358125123967298299195948893710287057224875419245220667735618889486953789445456347453332806748299612511749346948213936416118703984846710144600223450580888006501579290946642623322025708130824098229070381968245788010727469007078602572316040800199780851732384505985957412894880729210072768405457561420880740625136688640144208433113019110384226253645414885559048023142318819333129870194721592369322306223906882731009749627861969934635070470565246563982444729252188533386644680286171736324957429196861621946946656341561175469877334002631001509890379940439897927909733119457246243197874201556507697408051143605954225058355083452752426978659651616360683792968999837663114713093505579598459151934900191228373424879464514413919920292701023770180149863265320472869804941108989532725146822474294427104184086943025965644467984282676941093445164823368906826817461229455495398012053422017968419057175342462502649487102235713091461245820993841823604465440970677471095335750601446100944692650026981648982259106640168353750439109541511071667850068492467435885315180648610053627377737665258333343710817791498284246585314421542051583032965932171898495943625091834345178885453555393229068246437880303254722095223854715967305814741185801996690313227138485950123918867574091481035254636258113602732105558639250442744356910327235362115141730445489436522555987987141533750801988804228000036777924994593750400471544910461434280866525949391762155158533700904553294304494575578561887031252367239422799701505814381626137595580141207192329699305550024207513203191600398744321096017687593538533001941264238662364130674931205895151990849766468328052576153653110486065188316425264808977603899568539354620661184441398221611263766122991907770348840308051583282337123390343552477060906343370049687220019308896102139621833042407426105096400376900144697006093967819026505846566408725593618514534705897225005597248160561177205818745654638409720762914950504083355488122044789524820832223380678346505900100246116843067917649006625820160254800593732206327892205469046022005874327986498737820051759123569255869494003094438752819227107911800593805404114002334252509517369280722151800810179646410789295491842873209588575341089139650760170116880590897044671434775172402743592918362847935357090012505450794919706944250358615969565360642577816398956253042664642154134355374058223691850896938887207489530366787542826812151555139981916074504038954572801014368607134035349114488440229329263886166957407987567423943222283239373081422350138948126513424411333684514054386297012939650433041639032662369197348538214378394217141195621016221184796520499221313587291478820456756173705349835729112061183347701697406862328642346516891037440933152242678782211132861609906660982323908999352585515249866887510996856562007033291824867067368156419903713946381525691294826577705953875567149685161915684812856289426838097932483800873653022097654802231119771554484326947784455165071721885321691225710277573967524903332115637031300869106267535725063446854350025891070739113465474194543852975980771735224693257773401262200991094701766448962201872966455232477615558950616517794616703841176112286937882682818260408634590664311328344496460272027488106431110496589113208309677997169359266007803293651085211824108705706138920872048700922736128166185476121564902049171952425367860210251589050186594384668694326967142865402003781458239629169431598112602743423004038622059297557208561326680424461538134389219506199351168219413305229943443722616395380008082403059870513109375579851354519940879430941811468541821340967693365283610693818064107950211689592330708107883896726099362418388148932560898025080546340745488230680241630437759080336966727784904695485967927261974189624345244198852627499758853866825084381914373218951322712929033498528735467769796499304632974979300514254516061674495114611943395068519948251286802321350470970167879579761566008603290465365622397711108788110872687906310783685301524271266458377881666707000242071136005652989438347509006932984970424866260351234937898855890950771263204388878161484816104536893771140698332388696812886314961522265689137629761693944623267306907104381683471824813004444723179791255676097735528030845304797784251155199371123271732190996621432524080071057628074945145497483606118781200243414882179070391369131250451500177152818419564380042791400525150741914555934857157380045251295924725027255242046206466212364585035774046830015087465389921125961005822963162419339203882925131116782980073535955286508143423297307767838543693092068677976361891816501371233697011301934242119478090498932282107813879682573616011544797018835290016673467475266145711499404945537665637591840391649322129688952185372835610940387440247932935680142949399676909614113191387296702900001676166434574291681555385957133458356852847075102020717294276472098886870979001164579212753610155160607967287746867525492745055214223945976297130439135094716481186761680536563025727843125595298433869279639642451817364304462766744813319300244746393754267606141223787213280010495193092842356772961252603952691437013143125696593631901078394052097160048759202832156561581668430602116375149871447954086518719591030970849154755457948617814362480398164743556452979782358417161764818904424807079147773113790008642313575521716780181054593636142675177705972846042615049869915455360464316210543190023377729883353833796636495981914989268889688614568599893765491511245978907460569280325039272308841696650444563765739803391087059413541147990998579828970183674505957998103096469494332388314252818049874324711012667913162873448458771623490448451387440692448928037309400068981362268507684698531400796991977977704113763569312981234475955030626581342322438311441272414970968298473689708543403310744912283031241051640983330696247218053731025290402386289025868942296284918948664469678883100876640178674051965266723637167288204663810271906603426099099416187552685871326668428225130391755865818535723107138415492597089602770595924183032377574607127473570697058736261691130170608102837652796438073719549257136821812039261453475177724921044634005581062925981075536848998892906884545150165457343183871249088024768734575975935482583827253099544220246393124790898779946436740984283034552754627666595707059740862407496491864892612906475694504109703801452398465903647376582746881892524694712219051294391879923398163973072311817314344564026428525203703304855375225064796171702108546659203838746932607295660538474214616046294015957622655952332740845118522970063078592531882414174411916691661240744372165094341896870557487406058248120982625017077018421376783182734212863179492562136699008798310407936144178335033883083470541703074309774014621743997059679110599883911545478074990010654707701389385530093245720081343135464143363744998106380282746803673275723231476901110879477572844153147429687489142230280393246831633726687013022901042782068921906425012749877943973144522293094655832380633464888726910458696084576271833582068462219546363798844126897473372014312488276772140615014632195946986440030243743044449417376035162080749078003802145930604355521638454429586288387932454735869499458331479049609270567146039117908808814848320111363795789058384499507106032413268390877842635806287324017147341098908698993900960431456313486477522517569424799160999901759438170078015045898073330040605130318385031407589909011559083356773424829722047011025283161539630225991808562930550646185703750864295518074281109847824774118719856448514315167877367642375244060799388333639891094966644382345068542784543095585397121861953625486834568996735345839155338238014699716141914567167261809176181400516728369181091526675331249754121403820686035224684255556981534002350658645288507779990546585345302087371924620691927267978070979787030213259907352425824236185564379892645894961271871898414961934608166952009273897890424103089344780234394482063632527548268241465741993101381182473347921578221981279982154127165489507014923681271850387659538966221596051692489674776659409996728138100749657079245251295030077675801244392075094318506340243298828438734579341737744901545640796887091800340942016027665518327322811825040137554235760956660264739209624406102168510234142762160315928275164941256527032958638033396170519233583868124231619409707052272428077501857151898797449581388365149313562987923210033523497662392985214758161595979598616384836907502979556058936716875257759983484263269208666176446045898881836039081837897602524122133109554320405395268977785487927702025839187062793157869227465802415942998673888198504275251326364846988975581760585430186438832020017725779107318034490241794044610214532707579138859812461469980163816909118223674484726549813913012195968137298048281049287737401392214463296732031522499808806797061358946433645821870740755133957491645025749228276023914849144060627975125233366910052356810506336307720856685244444788898491261857750117261811938223680604758297956240180770937024685244352832958842770012726861751540421085389192631650285882502413823110370924662335858417610033071517677428596564101506081061634827271026921521836226595587007129655666306127546330658905187009438059389932552163277979841002576642991930928906790405668019417802808330311220139149934318977887831299775767265914217335082564329158110835865501428382961760363782500410405965654534240201922207050544090898219260562537683256731750974965630471561509122370745583189483798623838512763591626579435185656805110256227635392204265222354025968567931647937283180315377681184473728305315154568841194648225612797049898292312384214492076012161823770794047059289847499789292339014854616965394491862207394409781227836260047391674593283494092415796477206011857541417683160133668194457480595604304771488602438483412874951350963192810574303640624996349349229927179520246446482221149816862732446412537060525554196135164570172290645978824444010249787998003514334720906246572483784529716440595748008681561262950688022849129196886401587221637213300925214406939969022572373371750040679612155796116222126321512384809970111958756535921240473058006804759726621375188316500398417930864210368216903255369482219126848724394398167777512349193224579523049963344431555708208579192435894398761184734661801931450800124587873692269871494150647846428349728888510724032660168345102269996822415689829104625949405319836396552475021212623772224125275080229966139608218689673880048486289870543540639629244514254112564795488708510773884805263423729421832753540302784241398179103831470324812985341738792841022446248560952503719280957717104785984291452986483655170124444451213901571528567854319071565904478261073325957635642044116136367948565851905592998898055631766472110510051132142880169169120057610113846643425424162866521100022424857255918339255758575962120000998269782488336011254354665583819868344728569827685496552504587662860175894646728941550245992546036943057849277349903720544465134111225529253395099088887642290490880628595496260691956810752769610734124106920319084519761435636618068552972058703447960011140372265347819789931111009216121114949899638031063795047092232571789156305064673113913031532809064369699814365950565566635669341793951744044503308038386860498348573410284431905273716097859531174766957171887447312825171516193794178426132282620634009570982513673756900386698910041269279686472621598623207544739261434943792293062056783759381290002367344866988995053539931174144834711697023027005614052945271630451786664198681439462076217951306005011675884533173182025475901640223333397283889827118662582243160935092399729488613353064070231942150587852730798418325559634504655621966201264368035513316515291066988640198357277820975692733365221557786451942035949130696414322291994864729627655882573549870302778018422164473265701293226402463036194572763618384584566835826721919846763895567603368633699109949902475709739080909431476490941178636565273461426778674721257855277970573250207815631884739785603469553909546471895874352200694372164256034836019587223395314237584967702417358503495190420213669074857226713870338549849908096113694208538415163195166409386336955523516047516770112876609968065359273944467353645978958891699638626732285918092403374409082804639639176351945842826039426821320569162191473166876609001895250333658839185838759125560382649376457883120642018899293983074476954746404073029907863424868561248435251025486645944220501400418899844780845955233694514116696423779015163099899409868606495985623944051334171748898212190822953733989804268349875780649496404877494599225977613649083272059112815230049161784753734724050087936944001509851676322273200039984650591797509185913649239220424614888127680263520734720001010832839180571373433451768048922532662235807518806264082266863680374356608900479366044908055532631361946982635747664709574288606729671316652656770779025700373237086481968918438615188914714700476805520368113663803385858273299948179235373631181258448111601177408039893548070319067051082947877635263405118338345628767058506503795674061736702967239729276878131495238026954573117202893630720309226072068757846632278374111794139492885796498578663877564089982224117545338085926225633766693330814474217300684735608466281630843765289557756082273388474501474719789489584186621692476387476390272892267491739961730546408047027983928607952414521158508647134875271502599873651442266601479160447064201721312631290325973300016448737548286805774470362588201708928598567922434391714749322588015874005613150287811056810030208198586656198872005244436169103693522743889281886704859537148934627075094167141251942530130748300475986790224426704957194191074306751428966566589414834421889157079006557105701713361606690482690648770597720417311367203842187341037058526003225398685231302231941591223250548889450911327484841564429145312256620083268838928011228067843353490729831244215795694650224530283324959175078373121135314910399564908272783441482122017045777939097292629787910240644464760136953937213197471560710983309835756867567920520397606976030485822572911407867967929394461910773839504461098835390306247824159635446299007947112739730496482341532135553824170057031139157583608804722592508487402026250149801160306915742348045051319480499162188032507657671174647839263736481578218835844506526576551508583823140901580985313950739020025667912456749189687578067100045210194731897626265995387070213522896702480136419265283374420179121253726145058432503023197274395999198881525161981371627323310444989241905768805986292654182016270420466734746011499761371775714621157323186666428107756147659585919654602965448115695398804624383240297676854979262902405566354980318864588846483688718511725212257501683393194901938307332619968240676988033590798540595666908332694519660144462906634006857582503645577257301309531577812760594946620896498145573601680467696523984438181589927935585150847553358323579455780678533551894792869777847780159514237269101935930293446631872580301860065589917956210361599553893188203855027895475288354286712806336794356456216081201183398731134854897988713504254811434260762484149329862724324619545973514193855538959274072563521281188206231753610779201435534603496139407083736276987663207677522463392296947362568029271136233810853487162126780694162876917455236248601319358338871015406843245104671950170220414558402327681644026439184331362459144982915279770847007773132831650137462479443332133123943234537389584988209460653226670244134802192938924777530200925585391567817960892217747928960377973814422724475648430276711958035234077746291589653293927125410893456889564308994365919543108886507756762412859271355932264466095853588007736235697828861259703671697152590827726280871554358062032268087299195183600299260695810498375553053182679551729561762409376645070320287163116679868103286182820173778154601491820448257352999301119430944696866424071099361128368038494853396764057865067692957414680773318996114066453218430985324109996518580230162564012238741595641140281734914623048601087054694614587562192062322131056855018513031595026163196420689879045044775279874355264420825709141071782300263188589218874568773451718662532846998731164312833440909311791623938431254300381186506760312573590260403695961083714534437195467635451869511019161162167699206396001236335652347856832801151362087243204149207009311239169054233726929100037374173321201902002073702962465554847500889514109188066775647057226504575050061285230795627354960218476136476724662847405542727063817920091209275334849930548909939276171092406643421673522902754116546079000838428498022554757013639036016107449905928249095745229715224086298452724505033013600476816338393473619006794561493839901172180121475730811817648618202877639121309583201087585860645210281030019383270399221774354307373237893619066837080748312734045901503195232518030043679549453259102810833689479479523196553871126806929380175391862255997831321966154577969453124403662969037071243477176088395275244444140258132023558836271784507227220093419803636336943283994228101394354203051051242406307301545425457019286916281634488101437611757464789915560756132508551832521822193198777556589629975595740947294451199893785885226749768663043769889567717812573498231866715407713559020623588822566011097573047535862725006389713773491313408467193156421912181835606299821385444249670979108233724416675903865018429418338003601732437063409225363766315023003636225974264688183074481975172721984878793349551085188736625870936133142675326386980209167146001234387228720917942329950292305773713538987088535156088892615026146374114195324238931322677604865851096218522326958460302411835261996999601076830583340972162599272434316669819484936781874960103631425830400779595027507421306195044574911068719158091521606933501958841124079173083491203342955579518662843456902684096288122645520644227074030582609087413153996483240919084307758347856922375194299136716919057901961383466157265361823081719284304890202049892496350613986550457760527913168339249856547950452579729551375718879627096189583038522345228550116039713866852294026231636988154512630537677882237331033743687977965136323811592406227164419960898719126812025349857412269921181455736376482804294451658890769315497112009845951577406625524938465068195435462511536888388228783294051994369562613208861759364536848698242061643008879342920307002653941568594118886800964281667029232001075888505103476414820333600715468508199964451020596641510749867525187841197503757506803098645936691548595283645496783701793333683079750385666257557254398366672099518653180583660973585731699119160356980385117257208964378934818827012069308499503689777383782000855119874288513567950488599929192764303829688495242133292032377780104431820728699726633149678210810188094590827749933705027807569087267545151703142248332372194966665758682142756623906298315871452075567822655842011006932189338887456890267571681072087339928832175520245993736107530821588447488738407162048960599825865430086083856797007065474878134568065897488497832130525429444583844721358616147469353614006191566683689070251516034790257255695954145886172623083858689666778269326400878366259735893374236976080337739284881499402941297088900548100939246551399811695614782570476181251726674258936490771523349700465876024330895486943276776116384015379753600817302709706129347034696587766095267531169233633354323980230035637517384017601122528238318804232010800553584944853550182628469030273961524710233173626558991205548588918054076891675051678599288351822736627004535377842303385018849137946936664609631655696159807059507949334207440401722820093623957787887278647406351242142519165609689499608757260859521789966927527836412902385277946168509687747954899432478962912323379104017944181820452057874685664813060115473749357100308719927079611066911092176436543738888447449183370238458277522372774859650428821258880470823870484389085367371729322635602755984514593129632846377908662827713198159218910983017036549149744059806446350191872535685501156572186514840399316864827619950671988611008706043355480792546520605753979808234610639005051774476229849219316540495953852655546166183880817248437322298372714237173666437875309880936509105063081576069672323469847514541896498155086766005594469334809589623700829988399733797220696187963082925486907159530666133080517392350344975584281099783032809972916372199805417020514024820287349542669495140295903216615423398464665871114911086174953830292400928565728896139221559978114141191603572476845184494907016742749810376456224810296229714919170188181727967501588363880288599372246752955408780908322606647004406718721304227783078233217454358686705670797346513436242974788682979732012288539915788965723042260866561553424209123766775845360076145946841984648745622452819438336807201088476568623736456995503037435302773750561464154624263438816699564074827215907954686745084601740800409397388973980499524227948781942627531778853122086888464143329024963611196223949707727693396069517893783204393286211900523370385871252293107626459543288543319715538486092758984262511236019421269476456319512318202675775405280492594609187298990466333459562740822804258693295635272413089369481782529336427243072039193617731356591067661324005444136533368554593938600520103709542523983629014443108336269053408224368408437482183607814693775202297116928972099626870569271979887902625247025119261899634572686470481672934039250041023548728171474525490027002897553865559929031562201369181166535085376974990177679473707067225339161218234093571891369834915546188369218635240111210034722290688445869300997086142803321117800689714440254312420770363224401660777990101775948389128209081075923050803568741162350292691366673705768975129219316834019589280306615283056462938564286380504073302441756049639227532416164198804021356885073560388615052058843330441247814255679487958158958335250733738918762712912547094828970790161696296957968750013270827452584140968917530802716551646130336981813690017461856672842207931862359563260444369297575413673752387263833789343905808681816620286864707764063133660650967139028146739829367967988517361295025300063804683171413728446290076103054781087458086262991922234051512171768207714056766338494898537355089101693789842945574182749863353987090478131993181470274314366290701566782625756228750546824740701418477942383807654684175801530720411151894662502656269597941586112897802326094934640285704833176164525584214555503402289518559205185078713670449391302744816646406895870720700355914663905846349720053807035818301334569546391836618909839119211065954230596991416597769803073821938193853701412826579278895364582646278520880923452772725233246268809538301592620559923533827849374772517397751825828000686738194880454438923662369837653783787337149573446316471882937299043080930284653763637418307920620419417053669760343645261268501881985951772617051141403776231022801054998418986351989494220999947910145578459087127754149568326418723384706021247688430130530909376724893035545825277412397514786745634246491882680965623875402439450656714147815562686395157632862386952850204851123958917851269808615506870497993924507008930869615555981937669392976445151344629945376381200628547454624073392296305134153728280833603361817997232735370184937872206673224056854671401556394627379051828116528205013713843350572597529013098141258799452650741439425159723193754666885382986781161675386452875852206923890947477293789179282927573465594041818269818875085619534913952376324842796564934937407945816136741665673738771023002623483851891973515251685398446283453524201639681704090995638051496049381615669922903474369437823439879823867768296632293717919914510568403950602419490510830735772535800751630434148765360152999168772462005711910162438017895982981062747679535816645885140353381224893279424084552043486437369362309828263637066379959239316695543294581491627702416624120617088833944207152271874704956494856362916736971217101911516721870353231357447179273359752663014723227211053998960470636907009480023434549031688396318178781001728365318197436382737820426890250173063747110678971947493746819395980211929306443404114286573582350633854839833895257168931027273386954012131174226660013481712120557109595364064236628002315982430969670606634798591409480973103166975742368137997844326338650402681599291450862031947097039069928144869740206180353618601373028810476802077946761556768442546947896712894312664016758029085805022950409839386601836414085753836474648704516857247915970716847507209124233285411335005705854991422954098694799322140150034586882692184535666655910068863266696975382000398786938589692700760536346484586838107454151495831991640267561469475147391052935628952191226605958474521645996391798331283870512456822546963071184900257460534195581730980263734742532061595563037673444249319181245423420578602253415730260754143365890062785813995883846330942133334276836127016146964988512579346552298187139812343728934831461191747328801922013636196861602673418203981726197159319062694806654185577179087985816287615906483766492720511166075087929968980057247297652203983059829274576759874599513791819232961646488798101549302778449650395928666497696609706883739540249994983214457589448043464092615501843719390671205745510767205911605759987229388241800261072945123173775639351665507711570038249268323318336054542060046226655180808820300563109895696231329500414394183411742419983617524468789929214761649393554777676457085738564671766185648655884542285354752578966802832786470513576147284039117501442664102992584919161078504246703582084074026877528412306398217573972581911433713798103162882873569641474592997463085748957334269016715519317848480581899427067855396096851443991745236495893165773512877209905668186117936923357159863620384136720429315787446626185256409367970799362872317836597147072268321833415134360013612154869087929092705857879117515995567828642814313466482268622264534686199700964985546779394167485960396446706866164857991147816502544652640724159407244508606834547730064710006389731145234601381754762756623128098990947196534634017065447334422941423859527759033821697880083381545552739493466889557029507815234203910301158284302325185048638805442064167760716140812851979343486755413747374928614466057890989709831036527018806603426976199972132753737202456579402113182365454419599585589060046300819087568744010120476734830466345415219517683761316745201908496481541733821063119945104064461560158600498885279413278600650954520055819763169717586050122201971112211766480548110052318254976045999675437279607498038748068777764776651651876901886357801682316596505167160372433419204621606492042569666864983776501587865525346627607798710883193173014119323296132193306026062757434370161869342504196108109901989207113473915470553823835368799452169556117223774403217972372455527522454854484092982187588796323983624361599780228511897718308604431520252397906064972254735612042090837498411198560324913275531654952078980453184631526852573425641243853616728845843269109613326703492397302378900531036627060459684363134151112374694503677455320790854775134615415257805155621073978355753226559454236916964211696636759008269925589111499049430407149021133895989395036654875257621886869003609965828615891191974288297516687156542143228381464635185767605251028863912889738815893220952360397256246150999976277639904047701091523201206070676070171631968136795945371446359907840270183305444563737978835381084174853702493957643460142190757673157342657782124355709473189259019900215407729230176984200278340845474436660196171935492439674963094603451762655969682755304880817754272725291438307517131256079651125044497016296353176259092174647053173413949110090384750230459198667958514353797811378748763975600617552706172272995394487937355834662053055460923315985901844006080438865463383496932193818778246670036826423964613416188279210943618133295241788314666852896635234002268356909773492611734801298575294178751081988558576293211460075045249744505690839989592068802241797299506385700417665890295488417097776190748716160915013179053242563310861616286269856213232994916449052302740483364785560426966982161778671752143698166706801183920606886741513506568317882415428661800955140902956142398191203844622692865279602216954370724066858303573085689378737899844396503502670068419614518261761440327601762484722358757741560521055590753547184490914409783357629480073140425669503338228198622390992792582431913062268403867835355936660945095304681035242466709473610238448282606202172415645787911508950676001233765519568284619334982600511871151656969011932407342234428608592005689153394096037096672609963924844695987087747501435108122796524726392949867488178073880717863737404488025027547438269372890568955845422762709656365755602606932999391314428642103375130949622631244885880387806074534235563250078292788835315252724866769957240471443207874845516949631630098854642475955571421136780363261111427582908900362614044952322277936271442611029626995291656863764809402675839920355980592592928469164612830727590869920480331970450770846131410677739523632231330882676582370293600254825647144001247143710543554254730011645722522130624538711634219427217250510502448971314250500863334466123094547231476517670563952350030613459518996104856353528386736764006961294241557045762601660736856569752119246230876152146964944859334538596576346715844497272129585305005177660329340074055745055572073684383095078424904814427719543296934233550814190794886909222266560799391849059810759481313561045122257557761434386398635107552298496405099585429833208426139208440038876259462870142264661104702695307217252001570635912174605118905575214070661431409109652878060041246403426452608271529774217887958364727832070456460376636534510457471212518265425450121054790025031289623575724092967009198154467228970880395208884217898818527673722935056837467726506617131802533921252982380534735868929094109651251698305099560361127500718182484185900661412979710212855862820871108280129573612675671704214039870063368315125300867627276039591532927738554626533950407549019647001640624866854218808927441893197316750054855277602362830141127197435088583991746249989588174141074415248186409455699728381653718525789098806466943778202669607316328257161749419289966931435714588946228350348090672905812566608637428517031481853619917868844876947962980882184990876345515035602451865811679034391816350793769146480637828145775015933603377767972026549628344910741665262177899720258617337699020598152916515369223578523223951377932547348932838938078605286673150147611673017521922215084989779867318484192668668175178864999934166790780146641690095973889788812558799497204327799966269815228085955075000753476523240349950759748842016732908337779557814667937742637173505728272589331531660886285227887593255220235082862091099622146463052845217451455418943878744727761747246649175308088190501423772689544599079817199436865293604927749010142222431302411251262369669295233680019845871297294706679542009420349368503082394431933255504919875531010211260422191862820615975516193858339758079769457399414372823325570632815817540674368262163320023526073665829866979438199425853257655777784002731123474885245104061381414600517351618094198377073218223219245869738576997704235781108287138529783612681201223776387482100843500371334448112907452851059513779163276446099048483753695854506080249352755572049600171639679053151782781899883339254870512550893446982580753024184206601043237028162151240680162979033503319791025283574051519049404194706047901483467594139486883401069325667915939301474814320625251255145788915941882189092952363542990146318657552842061874110142413693919209822907338691974860933604480287744950947208520099334500016365346127825230580400768000843520268412485046254343997666348548527918702469182843342165536619159241956531312481378034324181974973662975241422607170571905247853469051793616465479277220013514275627278198154493057889773687250038706264758075529039674253269682872090186919723749284034790426259732781513826066483846096051402481599277229164350979111465410104577506315580525616490780602046413940409289706128216719152037027938341541943504252878470775702628292300269653997010394565068001379781622560250815614489174999953249241821350335157630121424800479170084370999947148189345040704817282009889624487110987771767449565117544440072822755608013229823483155996110666582856530205585069653877272956968985802021339239579574126240246202945832161182000046427506198604425032304739010914296015271160068646285014308340009758067478488871243489446026913388960021156629838554932237721886555235721159629851617153710222030379660742179263007572942420614265203490568976738343108638510998970305005763892012089084378678269236275243070061222580782369230801119294728142805356479160292739721993462914523407343676635721537881774374892808970210120190298669809648127679540808527779509897097603414367829238164955980073873331300151009271329126964951698031505517199319781836385119565422039190802025847716126270055074379461030732611225840598529223442172714151274938604178581726769325084202722694066309788396710345544616796825619605322308540794533460747870200292937647318625763314139014745134753003275983818373979494623449509585764211777498769548562866010049177144953937458386261978603775863405770332430087408717096817291033032721423038690489279186665842304210686761931507879161416080005084294460766633611630444209210093536204969545740294545218046474636743917972108904371626407081335542767327510009566144812395589162541774391752461133866883458587170476707246572112524913153129672878840734613507498558841567926683327566231567287614754831575328463943600491505637149593783599333965628273470554859272589044842394528444605640123548827841426662424832543711324978084048439188707578142650937842118028137642822869702281502338735734243669891376161971044890264631160654039136645637923750225619022264366743518624184761663285822469625605223563919462371795397480588936873604730574090543655822137835333004319138677602848147865172432143469247857553154366948405531940980217425428300653309990941769298050270139745705936678877597028203371725675083447878114087905095305131391365766787482447561950389792881278905251151397495204375825630414214212413559177012908766898071774428566119717081460945253071389221379038446714977751196541813785519175634897307882555111012445029403160445086423096883310130960683026157225612470381816755423532594104462955979361864132893877914774254059002452889898823160885058240919262398846215447420879475144476992240233464360164552723365791505726251070920966330220298189691342893313304074319645663745119692121621160990174388524410845232574542270368343547260228576291031167035018210516176704990896297638211521406444254034424927852326289648933887112033407161304891558677730129992047379777118388778125574923222544429373597321805721870800339001489683102822409267140927191300935989306607538338454074214585106890768048654500001455864598375548173894012387162166509948026920019176301772804995808630654813194982631729329760919210820395450356229438668742266921718121678287411642850875949280491646356346453465392248129904120301904654869276171152406879057253116025217596132559619945274766461803896804066023372475594863905586953019188118761559570746569561790945472429705502761216873294368700961838711893747684216861200258823117126046915943523595372470361002370162433336938725720792342311056941107181429859722341538515133990219287169668928467985083550520753632658675903972919684984053799269912063997048325201224764241201207702121360842398924434963069374136597700998591786422189330816610963980748555193241284838653522026014237456562094869107827838096615472984888905344232526143775484286712907936814088694020728897714993955187186509899957530762300229912166321799552886072454281392999326440620168103741752057519468174516912038483002991071679000204807951135291917123924398946419931666099994668215823574282884445380389446674113159336195788910922263796281808178278416361977810635889311417879145477692314283551336041657186811365467952336650678935528581017403012797426014336586022744414013640977857858162019992327802078510214378994378918405327573690332463034297691672011596321742965042071981314801128111161857648384150641453704534190244107049373913924903090415623137216640739791076291362500539322902564730589177199733708443991577092860418307459786775975739669685237235485023238925608362231882000165875153961069945720004313850622402707408316951491766322703336367284091227224687927897224299583675922859933041820359445231543454776530238879289298410254970308637837634296340038241709586847355603428482042705881700009750643360511181063260258762277679566249482041802698377776856731729208368176272474582519213860473816223261628027546524891602632074096787711533579827813589987613576967631115340155717357380633172660929369138151222294600346176739007833832349307851467800073696498345091050690101299756089293503001262188686335357263308499634971065146865818428989053381232554550427677560597128800916437163875836261567986807199347679537932316317307732762530668940327550058442631549853924928699756579424469407181373114795419231752580492480977053097464695044203090440350074232870512091136334222124943461477718752121720375574637975291720478231017205022202027563785651413224143860663993127087812243269558389814999309002798251184474225116712909153486265447692613442495764079003582746553141707519463044956056527553955816683354069723118882674741491302785048723987959177033344623638577457573370555134722455702328357545529211157839280967322596796633364063183308592341504682965049451522143423080595991267532354042133879740102664415249595928160835531787401540912899048423707903266791725980098030083153621384830023752263275331387195701255222595967274622228546344483983378409192130647972844570346998313723618894205019212480356623637519039012023565523112827155123789133581602445792780808616867105869926018152064613895522924386415101407212010653825364784561012234650361905482786192456604229795663025508946733822230265085720886088284407195497503527940894440534905667308119507853051165077214113448422760559251696279876601775711283109063967967275272291067097103436848987715911854177156796307713467812525725889432685405191877477580056930958561143193853288123382409358127621271590541584355298886328251824202834892004448105074374210072419418866027775336373667052259085296804858454185937819051763231882583608646684066998090172371908611230722014043873282324564066007119704359119401190659149353997480269201901447529910221137678454832829459343153987101937743315190825225193969848710635260899331785406955479230405256170810521741151628947216524661689990000263669205356532304770014816167242576242687339084777889073600526764179153260952286912784635627277731275456434294854662563675790332511541571019846071188815300960121342400731504304815986193504005082308365463685934485654235331788306878509674406768371846614042081372246229032460231988832377692051636850313803006892497328437843968106999691111206805264991747318487507632278118873692210999526398450094943651214376753882555114500894862965132563618344612128469957696980562946754887992910255653651244817946348026082619823004583545281715751244737921502767508212968205146822969820462751893377715625813080698212565150266529235526246846506437028994781188133397612024463526680305511596149037331141938084087028225901443227847679283920691533440842768359956967172769990114807029623410925823208979396629341633822481988715965017163939923410626478479089474798001080410348790462473407842745572389823921236897548842006021740434731454315310185343942404140160217570970842001814603731177430501698051873689313117188962562450903968133085798929537277832432083724892696239647742178565456606721859950278386254974235152269875282788797454912420089143643907171490634371992802512091931052611803981398307368898997824461436043402318357793644627288747120157786986152231808178794331305335859669420796350965704745716383419011417212671509767470279186211490264485340326388616697798387178305534125129805858837779886059610229512145546439085318619619069908088109315580918615771409478698961038974150607151866315737223994787585798182184593821400373368768158424738362347381219398462737920518098854799799188852499452583712578006056957732609288597253810047523701333914842531072219199067585599349080618303893646155121067073692562659184242135643281416184838567717183351527118594674118287066194563408715238900900062250376633739371455218197740854463743678395776360043598966839939619697282667140544897121961702207344232158374986566864087165976713348434773133814103492899029241551940108468418215741306122888670033786922722602155480816710465249563748194910589943565302802881467788263357813782718449408684289965702008086539542359126583861872301323655467687631378644595027354088776067270942698604582474910589606461310760924893376711847768804334392802744198153647772318885902630768789318959605346811500495291221867687870592657577729084751336608513083347455907839869640073892132045977227336709786070877597951988737391930162761071475020535812164796720471476648260475162411972353062681897061073330006908326149719672642006227284085724866344678727690217194899511894663469010499852839431608196589151374851437028206013874219161980999514990746038800608860166675306589190609653702689887795238325754499607141373382781998530820235009857651895809781730441276245379562356954914540496966827859008966084444713822408045659860798354302888528783332431121376849861491050223693112642627395021133491027054450663577223770882696248694289277571869611183357300655753332697593196971908667959026463302992833514717010847446701984585147376252654835985022118844422248547904262319980226510728744071492961403430505767214953983438237124417827401887131218706659641205251784563526287015487523842438906430761241011958633104375874066583532269138629035996304444288286956812514934318082800157901160345276834324129577407350849194629442463639840725256047453798348832351886068321514365591974165692476439377311748395642461370419673776859268293274428449566264221379104852811832227771806164707844972186797141775401671904281109108702103707287075440214487448096768144928457947262728624595979256905826478569936811732758412319099656497973218029924477514365506580729834559842593956701329503735298681733751600265678425400395649882077578458871259694020578399343088719330842786891365159049766631196966611362110090927705889384358279151101662898741873367170997014777583821661263500255379008102380694901278955066767163960697581973383236694131465606586196504371537266167135613997316923094461664994132771593368348151009291888920639530695022480531991238695936901588193760771098547186648605856483319127240344620953786127963237926063532656063611251085963375449655976490463707583505785662625025842263443648710971947093415367464513467692909907428529952199537362922271708245315112569761767240674875006109718917158766120471475446930781141011492180268338171318818675161453749823116946333178710349572580956637484971130738386672707991076426123001536311068010190772179222751582163736991032395855242964885434306026268355832294519028517611678337818856175365220316007775354957252259871296276789985826755747079912111493791459773005454298015170520990023087123362168210824418642533937476787965006434294004397961992107787188230191351067644868681077756262336817335567960088516140127192129665171104098707670107612977576985324359819023120946836430872340557253200923868616626809499316313016370006591770297081935514271983120860003749168433424164244398435175203805799743927782086423604005302218014703957421229465421234107684910238161008734780742242012175471530449029309518608103928325000691217472778486480680846707563382301216860501667599686173167713283591498394364548333084201259060270457304038801529008114441971333639029466748755865212999546228665853482938015583638183600534931925484019929658133902214829815572248536675870557698166596950927465055483823350049280530817223879844856679815288233117130715352538160624023715656564780522440760559803076404560408664182209234208751461642725884434288335429974282618797339571672085868922268661144079043033093146883625827996251497341747707496150480176149686548738736666156786221122242423053274572178313220764432009595460470760701646837633395409194577993926426626575870256188164406502082408530763135350847224843714762020609684322293052281970691203701859912101218418199373477657418644031710031713381750228230408874306163453058275439889068280127426361834078789618243812958374318705457716616952186147583304564855326485175311688505177622623699309971565700266520477278450748948989271848092855464557421556682805464733489905390782867217463551011394140731638220448270089725468980419738688281471896049009176945009251301454742802991040886457874546916932145358917411851814920551874555781236253019155930607566634185736353432123130205833026292108527594898951574707543158997046354796588218760390472503241052624285804753039875502436193251061730550010952615893568591343194431597262824366158219976375521037359474060870866054659464230285644819430379974254493786312589843420331899738719433441578692484332754526100550837834883323395762192896624340823410719145252650411955915447409962614157170268578947576707544446664614868991629606819898486048075934382398286057470933414228165713244937470564500765681375501786795290234834458436993246002505512820324890740494353532072163213076240654412810633162555204710813841506784564752653535883986447285558696611513783658529440730716149331964736376270949019788185103574816410669922627072739852036430118159474477211568986485827516458864834222853468196860376458323687785632620322584355735600731794448494488983913490524812906995091302442825006621200801975035230903427926467096895414506246913846473959563145789667856946502347740495518827331046735661942081000043614925881907245955373787570408966615116392893580693571445384170393894685403541820400126816592666622522582872701506028145192382349555301209004930365540275084024157198019763842415313004853358147731480957919097419143147679598768311832829467754885294160885708050349539402095357035459459095554109600705860614225658938751524589703865416019495314921241541618026229773471656445238551603393301001120924484776386379792108029733313806339735781808368588188388991023001283897208188325119977614838508424793380568029873106609590024638706638772692086339977534206602856328333435512678456532146290288841079478900101986580154363649689954916334365692747664221492199445812368160615382987293467836349359368795532372156524332610502986745467091515359518205686675739060003834590652004535433536367457675683202504216632203831177140433739522561964678823529247104319531058112474198386188804398885545210243301469458605569954219500840716671601909648802522131711720380882270469998602663168253335767601136814198933745939724579993366908042664132989498477704529188769463751405519449203537648807805778085680831198060049568832398128342797296636277685035533989898461118518742432360424715725091868708034354329741064877239009174583559249209699071475664938130850799274511251318059909356345769053017544701382390365124606987370823057758226074270759002596598163205674777109582827500815503748032948120886137208440710716563018457223084668537723231370879633276360536559458672852952401319753380366951909926102625450945457627128423825891159125213477799468082283164760510496974957087344701792032240169316416557241915725927568510941411349065170079384660901923349577623978984321603656223072436090795850341339345533489589055603619697524934327264533009752380219541302749108923669875060892506468209000466279540997536877321314299716663511117314821197745984877695263289983426539887319677550982572879480713260721123315923867299350104095099609973476739679064865352331253207375497260132128836335794807377926266370336895404815193366488049916095294671929542298014548093253941798402225248048925626869846259381537304994008929221108474589181989012545798702359196973622989588361423235030255044475849377319078039642781365511602400391084154285431752344253637791952809083072792405836834749328017723806372341637541434648887893162271955278068091593846221631630464286393854811146255230817307416225355411729892201598759518925998629900510195341711728403098482961492447505329751755783475158660182585793267059247404505649854128061242620767180034975555668327345731040864827215997791604518832800233720619885946939899927683263674466890497659630958568165181726829862768497198542181584671071372872213785155274023101362454216106984225235191282024286615832905689019447354066721334032211773037817595156784824647073800044301521573278056037985899504495176455211912869543625344854332331479455612803008904734484762635621684022340236019885550620885542539794307692453235151941298483853563474589460360789270433900249783524324982073072085491812947359018089099580050468294681518867444439401215035878927700762282715709973135531608224044769986209857305660481362070214991577223435155605651564831481570265727668104140971865293117556924118442953314651467360660366220513187149924134979746109674003648318353521075512247178491496562080654889428417776370251720866021863937061706590673295129131897962239216156085363811039461268315489138052482582148896662796988174200892772804597995253453888521237604951027802451888052965499420095871676364893727271719869250900541845674144511605430328093426411974963843659463651817323147455672864507442303282437546887590300480347151104371783301921870463138078871887046628215261290582097866224415388478866592522027847044489571890344884094681943049770943225398279683073962100128908627509102149828007493605106307006171440367040852535539500009868556794119658784942196626559834013558261169939602500929400407071411188282700409991155248574947121336539161618884200807685915335285490764221829988015204019042021761447821664642103857883270123622332468531205475512798716727148817189583004012655399672405637828988375344611009640963847158556341012854316274319500195357089467259750611106517013685483872839379026053953711139798297992955169464657926894500903675954554821079920356203712086362225960433187599433867674813566902769291637954741987762768588386112748019329964379368338160897041642402678048442172353510245519837328346349042805251317521738065533900078288261611988344835607481785342335449893157766283604849279090297974452462526307619206503403010320592792318106582970537494887966586166413751107858820753730599417897942243573307156203540308266920216484763365094615792797071841937983239570085334287018974720764482189793035148364837730545913073943987494811712817079441818473445342607051410529753326991471261066090378064951232607322706171842270058169096886148103851465031189269691799922144281626348780161853745274855810887047344016565476707031131149273339003457318237448270363247744330516347328700947355633750352910450183653379441851069554794116136826109241323845370280257638017806930394754588477307954498087307947916141388213149351500363815167437735908859336728545353040076011192695722795929536240259463437206418541522399854384282105345482172331652093707923398772867067763046021490278511975038326660357818045957934766103326125413039264804827295596569128724424241131988401064804949377786547542373486317510215466825246800054216057200740447656012680903925595665736669800423808980791230523715089794469550271300825280534838062220966620032374052896378366238543411508076501928085747633526469528425725977662582182176693492042356460997942136088967820510893289618872615606280774108748610343828473841715245399455279355117692156986028908516985280699726876613297782628062389772909031605644106769421204289514814149236443249335978538372630985357516408018884878646059341597022694269196834331807931104488347071529465991913181770847494842024083621247247725376555404761928562809666873528848930356870324370502078710294208031438339259398149475232626437704221714589461094342581851470277055460097883674784827729080796577209298752207115609401651563418160354939348117391940001420145539241671266644215159911075240022056024286792701571354163402264607917695702280485410218334418538339539212370311148043439178440708169100921566457219830362536005066444989827666144243308568639540317817731204217095423866531467230933697053589509215912630867630003584174961255272579004961196695495571358382381382026342694857001240167459579246938999644178215254108350849429046801097508768821621653532180287896429131803253052631491535431617889276315680589015895124431462024398531612786487252395859655384425133874931131736094107576975842772876315346619082877831707029373412308842875211118638864466303440741774283123061083368201913553903636187155353778805925851626755897992968131097752994699418204304296965208536530844796071274703837138277424783676506174317168663976586732743600315712816584836647635764877006919974231848337124445631930707871694793902752008661702875293867973913769524117258338023951946971919541198955412228664318990965366726021599722672564195906668412188948476799097719054474236997556592625692294489492827334299755033550167222282116954192917143367518537113619559384115835952221505809347603066417344664482976439973462281360037339767350149609479153661685545020207342095131367485764164877763502146915394344660164336271102720239876892156764226740888429942648275139841915041235173946368486638232711556630312385943205001688936831301739279910672820825721110501822141815856628196791343350165163792599410247921385081412125023361883662197741953393097364624220396162408101228792812156297346356375624080608350341682598528398750405173388013055593204283824847693814780266257713358732207299203452773287166204020309509567908483397213909503438956469775061873087448768288976402262145486596227889875701558783680694514540079996648842294852490853037032474912900521792305819486117657752755628246259113131303162603370982740791538790362256997668860102493698289310586754739083461901042680840185173846588056752928098017895791791331410224193184421933764293025241210180052771764092900476809376676831337954058443161616688921913633312958109583806876865230538074505890337646155614494936312570363321952998047743802337255284215044094195356174585421319174344115295418817291466252490941645042652998649519915894798170105984564882644577147034593574113232353321179451107892861211258731758866078295330651250735450587508880116993228045306482869202259646073201195646831496800477602190240999390900206984987323415159739377904984181485176590222860288787928048501529707736519715847066713175602424610243664340105617092521177048688605072847774073397653315370543423710341080791213578059468235400507637571783693415024196206329618308464057623600892631706715795815343593454154920016730346777157554273504508153628189558156186404569008363844713974386049305454503321065036763676717342114946634854381486937539465184392611731852483357372507322894373413416880022478583548716522308866268699246878201465039184635138308655262047970434570127415093858963105994238516706976785563726385790201411997370281177158839402330072204943760791801886757494155317351653560976027275472780100796885776334439419514495260408398287145238736716485207057526651649432850013022665660274507172284903570474937351074636841721051631977544244121506328494550265871545423443784409019661719337637158741814805159609642445080878558871799604472346960637723910120108971109028355395997278086417290263060074641925133765718666237816904310983058094487143832493185099021785685599774299496415675573173768484074662768256608527564617012520416037401905150917263414632270291366619734325092339304731390954098935907761807246058862134421811417580732572155003290798483229497758933273192892108439647521170138279734011404524914337709597488439739405742850358387729855511556317907900205010149660245802789434962762494338476372300870266524323422638182393899432211676541186444761819801068675751306154589679752327283388340500781501835105270151823631353529641384669131888734228371895261441722587015878418019031231122696051469049249607569914578673154655149725358805144655834949639298324179881033636603709266372355135538854794833486791214493590813896026647172238105755687939106205489412171340492279823880789086514810985446550114098523494540337675515001064427924301976354662013933630634064698181961611129146721235428590757592301460597056730247657491999998546768534754796553658196402037226653639337303726403261412491764158215336252656759209338683436913339857439792735109388795306433241671233142764395589455076335291645302792354105319165049117740199592044820087989758246053846998694667715659456650295613602191298925142702785935899510118339153724817802414605755451707926685493411082907484223834662472449088863853421626076932021475345349232581464728250826688042791261399862151962314486798826340243527489551731895170504693815902058506928641405927239245594660163396501415979287979451675135759180517342192180832713896997302558061778196109282809613808585027821624099250960525755741705835554787372347592566623073913599929785943974339947882436445704651399533269608238103496217442155747583664450399752166267289600318506514441962186577294727364667146323712571293787791148798131561719505758713360525289673276916720025275647938970332786591627679561003791573325863904112314536600975921925320410749402334632138144041986501632521507199592185693430162142990383291878258561629472938050975147190122279850962062803763510854940850385169008507803154303842727026068672671838344029224730421287724838425648092634631312870712816810298695613551123042841881341793794628322562814022081337985447471071387856142804065813599021443181520412018203768420348982380361919792646864974921676355810579955734790479779298416413374995994084364708932523842722661391609432356629557440133225921272331560363005931580949807458539709609151818155343448077213821128069949102627716956174027280646274339084079598112974797903962784950234631371958233431514110771167215805177561245173585596104128834513678563987221116196056297163857923269215250626840662744351523237202458729187127995088616268299818895769147115928251415754991715419372819799908644976402839178915571742111302995613329528053764652577249232441830373898876778227242612024698435084082252130993005998228376201783934888669396214547307827547818599266982631622526138703599951723967019806221847440996294097678757552929101451074596812635979957161904968382845600480422025391219814995998542018941279119252879586026642134855405040276191393442278586549023591203061098244383832124963251907190945962796251622650513303965651803767372497794724804105748411003173654917544015351431772895670874853210417697619697497386679314683655892375109862021535228397239334571100955176662652498556956529663634716600498356934283416243031904338895223143143775266929090647565452783053481867752552360924090739192865740567923557885408554777627571576756177394131030479381602295124706138340790226144634710815120368418958228189853799140274978754686449962985994385894232335858855153629782874220262003464271989477366812590052008088599793964533410710454446858363628852289343917588851914074310178210232988066749487960827603192591439642526661655788510508817479945171693000411749820496671165658354468683780726007342710788766269039710344811270395042219834670304049109260487608734243462651107267527058914623988921613166098101434996555657998588143778795838850025438849099181891782370943700515942187206750629506813548095006662513615386114651400284706941715990888443766897170407309760607260567953019592131076343170338723497344935734908008145611088969730607418708522520354615272856404953212387901550022384041457540382177203536511250990318956167479484354315125182332247533229341214354942255764337009266144785784221886752325923610654715943327794923567850702288913262248348517050281754366968426775153183045262823692036463702982401863933961743854632666021874202113557494581381468079798871817003611304199809960994648286645691447145313208200653827316799835707905158545345974848411762967032743113191970831155201762912164848785987581056540646695607679011976510725472067096354202312522581801269672072401421189721780160964879383354297687983715604104871881012552688575105168381048775170556487649098297435364370216019769766220123293493075601815448181283342193100400886707219659152557179767769404331041291205064010648077850149148079395035952747531858142105334238160521375013658889684165564878952105994885646542421643775292182431626108868894506943199240426104859119946967514176804873034209978348521893274006057781661205974232179499915724064796250443828873823682376022832178518585527520677502031333405126761399617398377310345039570227576906923087053832166605697227467178124943401890756551111649542558571368773319942050790160433807325962784792824663173027990219635920413367593435293271714377923286924555249877347099717053334493798811983903097320558162138665732607791953302724857506293093425794439679381867218153197145921042606858832711324210654516395507854618691080514144593950889263775484645243063908388930866051738803076748592604924217456736833509671131593538031716753489127248844835468291444210263214175604913500384489143313769242447582166732530250771973954626541840745968766025322476633891546006677210882169341761776247306436898274923097842576381070363190328265028442041025378484772635298946253734873494606084295989735112739102716384566047566888202214682332938958571080177371424562103378172343650763409752998951674283391973953194792967512460344900326438244602875337328686888010851913165700803657355085467529496048662390091712715116445263682038008397460925600701409468568062667239636794331466597201074794751035214591616180255239421969473337286097353785053410167009963988834443854704829591574918854532010678974827965104007901563547262840894473837327174679450326108307100057373037881398203572319054227923864845049153354407209745772851241759826320720753373147857498565471161424756053852526992016164466470686920380498803687448292693645188510614901839207119138693703265661655470179770898795234394769366209127234210875286020950503725618493939923284035281457515519890590525620799833044113212856368533689842247343233923051303926201344774101016790595678511161387995032167398968283323095053671456791958602127922977709317154049256531603138942030894040488970631550849905787847247041601576014591272634281345658291675542767399583182538125728300204921255873713236279856100666173331730704238583557010656502739764283907024951390341907861487031885315002031704305385694479538463710852771925335106408505709262603290961530494413969515666431043154901372934629236964747695279928576389058951352707589281110230362767904351938974372898410255187816415999907062384238319462930779883495349258275269338453570494306321695258721252412886442418951219315703663944846721981844000241984193969649483847694633987597195566746731988020559304488445661352882250698413577825589035379767220973303150977464721877555955756624366498172608868565935523898774003423642989216883800572680098890721627454846412139024526335328884843721437827942819911058535687841211756431619324558896806880378011869592993226348150548703084463078925035302411552498873719494338110689053842498001521394068794700050858906097345110582434456385275994572054047741914809395827696910304681063276223499561234313522790129680988721773391285810471533733214424733201211423643215806193082564425907812212554187040945003237362178281932777582910283273848297895383209185806648904702877624282843693957314134911513025161040811931085091634478479048823023330164144638984470186044226344025584295721410239836907325837434240790874593991586492004612838756404397617279974949587389277720494339049976183279003238887468822744391015760030380339072290532058148651528569122596163491097320525386864266464752367574898758194329298577859796571496966720458209682208621308870228468651394859586941753895164128499287190124229727500704754185879960003566120214619921127795484093805756748995152404445872999281278245608242852000805483905831436627675114817089676572928197078221690654640368839601422190010543053955787248397953871437123721549014532700531687328337861713662918367540138694451544171504075626517972316442021254974075712677214190491003226356242499418365827298035364046401923855316208519970519356209938519030506632866380291401300356605717367898520035245314290037227734155863015583395033082071192018497931575160347790316891893284139367518151386469520113038792023413159234317704491772050038633303639748887795222618020050595604335303586725263095263195767069045376489035633674188115691285077212821292384852461956636941342550101956075698819536195147239746575432242965784379099661889102791716511286899438884895879079659469383679118214622726773684729473204335680316404635354072059599618755294243722954813597261424325990995890732358743472929087576248537546782786513433502220486175364288338164685511186273570075998661064836240755669712146850021220606189299152569119614884433597943206362307823062502458102332103633368000965594081916181598286194271040705468013823549197899923381354907063773697110352544980876323190510074178702544418777611566943383283886111414544453618488229071972060113737255549226632884031338780499630205289727178802505406522640426290621590683840460573456732864894266333956430723145948993354667084466351866619820641845238581577318702044747716581656106977245226324723774430134020942304293931419033330655971108165273888620363604889484733149293302999012414473167942673458966251168738420216044010379501944492213458223346449133074761665421746363647674028627278844340383207062141930256201799891041701450250754172803061085004238013440917613595751399705793455488680902740490083871109743554041970471321473064759051955049785174559976244165979362232377061727096292043832463653806014381425625090232420776867091293791520627928298476116974422684201760813782686625124803322643579136202728771732129046827593050077208155726194163650260943328668207458014906081179451224749998776971730563208911573266585164996813112718219076045535350915701952219860118910003768874109680410058253982681771097501177559746165210861839760730140570380583399954945921464122493977750556285973285731441962900928227518771175002742071753312321514784038648134489542213371229318808478414384599891567894739084387103622234508382812776210624042610058367532090641322874499652052499415330868972739595059012316509993932308114378131137267545699013667194528322792371222499099618305434582347837948163526058015772321714328573297987864611376287679879021887129883701396245225319150127745320771080117961775827713980571178501065488274436570064136994527416391937153375017792263812012485864835184099877937032094100723904192395678607634306898396814339378698614464913695714827667827627691565619951416913377040527661653045574290769002860886041399573048262500642371910672976418470739213663234897660504681529531685038835742848498178441486653377210898810922083750013438858111201181612772256279757422198483192790416229398572039889649290415337507314494059311824257670411207598837396534484060203642096159978628693049946909409162372925947815498025641623712281051825107916917937462189185752528758058827730247268799726094355642337320901304028225804287287519782216339212603980119585612307901724455792683087001458077619194313222204626281265245341553141303016506239807725595817840185626996559417576589075281108381430410517806288052098321966098407494513389094523112905368346515758446874407986842735363366037409859420526086620288568301709067354943762182379256871422174102021034132717819641100793875615698510688159481417370702212078656451785630703835045849124692550841525392538227441345241446373321215701959498678929542757119748024487628464195819300517994695048232137227369400903287125326716916544516372009701885098264048184917231231921623601277385105213589955608240891893902040056623899272107909643100959566137519020369908182893867165939775235984238290035247161223003824715322458680776666838862130165463074755473951772145863273188487337732283529712012873421319358590002365735547913262450844547180912833275354788222568827750816535656201077613454998459389041367978621394874127748005448732232903927656224903572585300616297636125508300200926102488467454173651600761624535182923891891329782418181133100514781630500131102523189152484034378711715609753322078251584262947465275819968709373492881078073065503339372785839135822405128624457551353214503939599230607649291168732863302698584580894468877980373353323497040652972370199421553110953022853427873592753349387889274656589404419831891754139979142481624397134536684670043635499830013110785456923859599819974340641137229890331278703815694056342664697040362318732650590571376007725316187984009318212024243083962779800670255783034849447905099133915212292775753840770762654045682337973447405147174989804818834804137875718737257535842601510556424686549132196590980498303098566544125791913640926425837976620041462258944008270643010102457149835096361887131087558112557816899559973977036276007847980008517692727933138668370930194879249838160829097816522042968230766777020235126814141789732082911132438612393271546357353396697986110844425243758542229800006177524923959242803196603066041723015693336751318731937315372340123651028684905176677971527223234604064869696312219455652377614167125318011106592598559232834719902512851686035367924911230385767634142892097565974033330006690208387043369864218718341823005138020096997636620699220266279333474219724211079760237570053442677557980896709981354108091905572974317980389056574820232477346258404099338029713448157903507251032563908998655635836521415415545740603074445416527701993705866535338601848120818714784041095058470091039564209122177517143383397734713149918784823003169422426546713892703397759467542221091551581363548325093210565595711963855228044854906811279621002300635580604321621053361989105429883257631647200265200862397600950316453298484195952245957562868023719887430985443940452578788645134515906164795119103668812005379351139816332899294114695936260108268012429856474623768382317828961683685165583714257417460203337223223294797243539052116450766171644626473609830841869776917629604362135208008509912814941144372918321053413364128372640667309836572381061304317828940846311765412754840883696282124621542591747059286632260203028771132483778138155867053085940044187438559125905020550951395969738258913300952262474357936071850386399685138532849586202599985224870690299608130833643057885194929059058379558361275964439745859897992863847700177596803880717640477506608430050438797898815572649201237562344276630249243870939524079848307880679009240305854326726468374279478915793429774204270331173782354883347288317697244444936803017016182108286668026008072754303618426525400177098039678029211845803541702932489810001889756039053739214136263877588366100996076278307224790781130549460100770289728271391806335762327021066494069798710750210025001428820170727906263037467401795429760230472213999023380291245653420733545290085828658632274547202983661018813798483088434694794161479161202402086787737573860181911027713633413438531527762936292613771876943498463308180091439642536210562226476230579540321889817406823872187389813755142478721434105121662781232136508379789307332174866483658524317090036534639167483522992155022160368288743125956777639899934769838445353367854765836724408150086588122398606720073341408084670313741645550836015694337829346369433798274416776337213406984474196090638902380678403126181020644749615882834195858992911631600271168258795718185760249360923959547585111404657896213943487677237612025453082117742370592100420401610497622885184704604884193729498174407753559178810913720968888386604152405126870620866009869911409044188080381213074213668114869013095413759385547541186749755449508130059394359479441152268426869994441767030705579204863482936605383825379492110985235385606589356030665385149420650240039706271768217598796513948906215595175183234583071397788172815920930078805771655701927932166550430726586022546398261478088827022346941886053385048483011634968335303599984736785096494505459193497107152214483024298696341762242449779858430345985411466672547970037530636544830242544644648938424854151537072662953267344701311736905134952523114800510032325068367194654110241029711867323722587008268968425873027595208782657284323203654492527700184240042045250116602200189665841409120696220444920711860283733284777154065719739106158570078551770258404822794642211939992903807058298256330391475265334140973138886422885597179116668516405182386700155295406009119957372877286401578459016012970385802454638953604000610274659529426848001817757682652112512772339209996270331060178104979008111817944296163131234116075807587231581599250357321809187576520652166851963331162852463067771391543971712145155311337258906568934196403722166368566571196036746906325857690110361365135290393752103486432831622329622495770745103057164213213424141170898658483203976972265313520728468362131522449968876782904250533200959053636724746092316030584857154572163110023218131320819600305972286714007478482976893542223782454825643733289965716298411423589566607223419640344896103838256669729081699914216199576924402980514105927053593109489292670488740097281404201785266641408633715052877206079013001905874009826946114211337496147937982541578790963946783285173176920001094789212956838770826303442355191332221856562878116406207808573191890461135726404448708110503423596535452406902286467994767231375412531002382309582643634180437203378379977433563450503805631988869236039859826912518727837385509615082614227685894460769369654030002031802205600498350384146996044947061301915531685459605880112862917024109197300500371638563281746078656069207138663601515435379911422517166176266014655986732285486401589337906161512261517840678809074555247582386355901378388038481531256682934421586216708783446482289344228332854809058407313434777165644960618378901675301805173704925439069367846152515441658062433496315817496666540405264136890562721581459806431463831824872660615191575791055658785756313711881121631059112545676698893060836779590240722533672936892160488665500417361592116869742969931607981376330671377195982191067596217909381745791367664285618013429258422441764085714851708955472030856569334913106315866731676354630912886287973340969999573602769835032121947586081795782844539646597489989862774972899738420616217906244053560627382118399373905222936271512308821626975184806923699324876767771388582249134550925922826603301190473562268681036425954833381645977281679303698337776532595699911276825881141465996896429598159048523937019906677299811256007152103614921803832677374078528989419918438718677131773014492218917598801357359730633235653825402873589666311732018484456185940839992669314720971534015637872716611390940488413586756303461758184781370918306046451086886242058845378178498634723185486829798609049111111860853200278444046692928179625042814660704700122073306134874302148930004113704341628545044689199720976903868158444049736590589696135422956837333980705833172196984583960887549426454555694925071430981127146430257215901395192728575203615956667868326597315464400995607085522065715036901879577690658986843403917440156859861099122407298759117442484280771970930134244499717934367121820487395028898176161051488467225131209466315822414605115937034134970844374463414879668790491586432232372400987618306354093549694341053232505218837851983034497701697117002814770077218766402239111378835925125421130191058094896789965659079583950569302901398553958589752137087421521240139170794012655552702303651535624998728875870737569941740294841658941283874114935826559452796006998933786260422762712341415104202366481191983877638613971860313381120508953528020165377387652579003077441855108144658614014429728759950393598759252449384902054306879948891088387002886181866787324143965374728082513744526268952600159020152801746968377113635979476862191274070678462478253723308777436316706583862881005802451788850027931823755649184719041686766776561350369912263439588625402426488844590263741774963347649946011360602070574832303335957901925495627272433006520134964661044198031848254015365719628780364691282903348721189578241240531949725870136809185862668981807565623745764388851795507949021150005456672299747834639175572513221625112058873505559444918119641982562049621045319060384255802751326662397029448227992172192123794123706403214096844074848013930916546298539807674166308229580277654369666014527666851182461576976524186079529363586724403565227290368630044288857996158706984890312313376027711525969335029057372829424985078160202619557268116263075088839567139408314202174229214803014072913082811043108620530883886990192846699820688358077780659170510927447499316742141415527397641435848683460823434092404550696121517363702321763665338490972388306396776835048294718453520138499066316047628387392249122017956064778354399831401675831622000937207734582168832248609032599227804715621513133651766461528977770035936898951138780868858587852467608254498981857042252204803600662818670831659451002819807886227466648427189933126774726211944578414376290689663897370838646845161024178831865611689639094801763064828376307103367102319506308010321588349870314119731175224593832789567938423995922995071932567319864782785505562435586477886295688026847870072507649912172448022116618455473084420467224923900348499525331235099866670066218005369334076232085009249383175764336839965898901160148132157595880724325704070129251354097050607314219983692980836882534243501737805904602554485937663148496123204254459016571452810871228147699022959011530102138217281486206946031063227247548298415835707795672797865339576948976224513391190624694873709535882106105308765164361482678396264513165611760634718667087942343618791735406411242019935329308312907709827388586832174086504006086812207646006766665327493205675597044409040568253531836964020675089773201681517970626069923127671455383830891308740529699174690302423270302738673479999391533377130699236364156657052540771418243707175297224341532011269777816825810648837241381257639364852722040740182737385505201748275620404335173512335625353756599969149773388976325377586702443454259431948545149635750780355377588494240376863392359753392341824067881126765015627649011428736783462399419576025175450651034428890017249969249574669194000291758999052371616395818618868108896781958088602571032397823999352308844342899296521048652171940177049777706809419605295868923836213610736837959778317512063219824572126345789910808545794170516062503810818264002995379191317261071865687085555790451659557103103127935368772059367308277619325676963232874334351696616029086284273773537319846313940967858065309635726660716421821585802117559478811288947059825235080784454474541138627039528837713296661156690003694315699232610971092591275535490867979945015446241628688208925690867443215280006670848810487835552615470032169006295696093303863301875728485313023059974955378333992484673151669638559471503908436990065764674139711731476409287838706675597166354739604186883280928858720342559521859611742337815259675525725718213110213724577210599641167894990164624197709662441934918529315175322327209290794739257777932496072446462176055791183005843541601722244737068171322109495830347244982937968920248797667210091704763244324390337236190544873831045936874251405367750208296984781185309505548569168068475273719627615293451052701864725333410475157733337469659539965141175665480182646250164791128927523466498383031871955171577601430258276035148345606946650720810406616035101721446476503417716082267405965518053374192457343737468686235961024595363808061148797846136299096267249389392712880651676077234112027879902589246018486371590407832147376713916778206073717975244578429722030785330943001925604037238444103825026217096416961731736767215952131565313884195339464059819123965703946396838390998937112322388970445437099241696221692937442173260272141251797683441302388669064556679910425012142559099558446801038035906792459678326503142889763464157091294543105804323080247233657325176336017542762968616719336096326987596809511411421055717325638656078601154690853598668170341736266294993628010909898397404552447203066803825778482749152630913567166050551304260692574011091025784212369234646368660510907397990454557991181483422023549313007792411277277378272165108679967622055404663678293250680632254778362977109085607491405583927748385327862501576604238784246796157785333211154081254177310297193883095841244054946606771019752436102819049856411187672342087274248984406744442257821760621695703425698027335899946710582426717874645606915515169379785936012453594118934351214938650044067127542621821662728105430789803095925067156030782306647788701845734697602457554432583687770756925847240380761347317404329907257198126397640549382400549094863495745615396072228247519807208610683656625949821496156998151581780851023338535552288932195733671093555168501685269664416198583405293380351457744690294913998645159831089074057621374217119514762345851029407144842820731504018119321068151049739543433779078080027941137039375053060424996630749568573608033418184174998367709978138877868157891054650151454967329726797002092166468238975911900207496554378826192954319361383485946336486550134074747443443360843576392846908599854854570044959936876686592440875016218862124885954869701013476774000957382112939843517126767099110284822981309308430025642881314110222379035124405334979367208569341448095402942198492126032171266026355989314833948334267044998786817225293942559356309910170664283756354666055156144665728848733706985457928108919969439158806813941704092665044808521265493011172158350998804355571797999958512682463508763627200708142756479130031861467966138819041826900415750260043669787639624843405068919846519833689427987723900722770707810766818036673389407205002326819478027323772858770536014222708789106262577072880543688630445188492317980458589738528797803335377159229736408524932995183420873177233305366607116956407243208275742520090401899747508667273952365135125955839998757169950468330055249095031866268439653776939301039098493915160206346622459545511413112075915251863435029988910756274526791885692383291866090441058538120650936877836511387840535319435978341159005920742755112646592984709509383302343254086826632582459207531240192317894193497912141092730643826627076491881435629672789130999207545771770461193254965473355237277544441919531938194308173392118981079268584706657922609268386738754194240292174492243746956696661921099915005113057758238871407844974048853220771304236649120838175412670946678199177558873345562774390279627046497337027691024700307246996827175547312623204568562482171147574040730666763935240864099384956685571973355177098941678199433173562902914294772348353078981740409397066747566376647588360477510015133490665446566354903111157516001114258729910454574737216071731411640187584604708779657371195914889418020750352080241130990605342700808009648597215345928291512108444249751395843214740168215827255692836295843119436069736711269867276684782889877061242171854321116727177957649634731207786738167554193407871331558175496446133179477926902877351383962562588866539882632336630549577042859323818742955580394063662449152502790419930538490248128767148120064475866699418901586500015367947784133858462110985548434931286516423217955304509002984143540963894019265874616843782424021612781056061618461339554779830589826513435036557645208637135569977918399938934678194437499763793108568789273463712867626996452150471684463509670795148429817682789984586782404775047129936444776018772649811689604822002033184263086752499376891750309646659792405436009396585290100786193362353763514013550028524925829992209388304722675534499210154240403168388439613983269942260334463297432559220142235599759318767641603612895289495702123655050869606504599740584365954864706354326706262759526940874130683874055691236082424343076342141359788195887836918561437519461060290405384104794531632502396654783244134196158282012521865950508872096943990512607114429482810505465141982857605875036344317106158508702662717158571510307735350138649136681113345339784931945853865158682719035950622417722181394516315868936521769525233059122660625638656205760041143349014418520961252514111106133420825973179992789538965249468571601144055274983722798234179403000249418804060909233778733906093382983182147183137346884773833727452545306901137618971027532920245382317464123778539551511384186362236056888232693399565751146772079441411500923800275256638119871962518870830810746400149962407581337752606738258914671871955790818199063253484912499810902099212805406555676699692775865202371429424912882651338641104505866117349521962354563350709775323377031589435430556058707659371574411793998795872249163787274275491211788482565645167792295902952307430736808465291563493108012421406796878881831578237947191887538859713548954024965650176585207100193130900341638560777283304860557609479128020851026326071253350468142781377014499165113901247927110192943772121290631871451398375196510162622404423340061185663667263017140743534345629138722446742983002128989613374883609613886135389864947264461268879380872761709071319201460957945803530200454095402642460176299591742423232307784415433044570031731965791459775220263704398903386909594850331759898079645565415367090544838921223323216992017611050761379893991474813709620330092659187929130693057853070205559482967959193423559835014374497865942094850821696878900776605551713778711913515032646035596408172867595161089233909262020006558455046140398747336550239673224156871181658506838603414499816497420444329415432741699670226493321505035251284394268318748822033474703077580562305563962569603249047800611428349229109238851914651615085212742465004105481502648426169090038381654202885724276754863360345419422109124609556290867923988560193116769313875391272313807197762893377037033363176915436164886694152847745916404459782168996836020694595546624009690512293154562072023981523397790926998360147648787378343409760470915946282944170885051574899338167936841481485687675163042120180294700095031491417025820440712955900740793196206098839511173584590877877680919540194642580868634253336688291263095141666555789349045232807494549429387891845794555103324547778595234422868772757264648988690918886467903794390810613547692455276797001498475349144123928555006797067327716486349367988937886277037357268767454970643558502871520647308684004508855049916686144199919457853573131532149766641889374756845130874949784389217400583051180275994491695671470235555317665581191518047929642107731070576697947374772545144591098643070338687013647322551308008673919912252729966837573702003164320101246250285020775243646197871740147486767174761973422454103752239539434157378211182242177419456479574627411727240121815212098930934480121982400760188313772786462257070873862201033979889167578445020300204814598525688921726994006502794256460149759865805298741175484362160198343520547430382171953800025587803062856492741665765925198107032983479889151252220723830919221463889205865877425873693488355705792837790665348478809125282528885012393394853645181636394575136975839009240128804953782721060889817969596091385593071190710053987736891722037161469131588411147472243165245232700730642874086812863173497114313427618314024170222063611610248755220344268128736557160445559304086089504147650400105444537012770525692272862218819778113771207372133248485443172365941496609418358287360844395257364251885098247220294295873566042569750896849635737083572002501075472522771655505589478038147390756100319284739235854687502106078226417844062108128893027128211396774441045281997014521925817654971240653281126879526875214157241395186356563949037762496046388149951886626345358315599185375602940678403090195501707517803109681472223535189190020358806637648629839310594912467269040389034644883787296783433000120155492758242032713092151605205450752017503446122205310326887261368779211326603128291591731202739357380092635119973289994035901538581330730698245968706155617366598519216963563050991452589867384070111284925956585680637001457570945075373639980037558175169150695514119420585873401902452443965370090764248198466211769620216576183642159473076100775055706061918229493315205385907241743973653745523295451036958321437130326045431862263931623538385958677099175659172181355498465649038878671457092111625705243227262719027145560673302428993707183602025007361594553162550931061769986856283903749770499174105123824484925752483246507725087409061437355201185033994541844968442736307852933775994774938588422745381302965568019524681264481672564915278595561196581236261996862607399182150723153002965080925223675795889231609038679456153310028282324714018104990508121886041410679727484853062030820765827121856463777434679754136882432874346060494476501531985901124321578178817958164053028862834296315485917253483828082618225788410560644034875192257001572522126436265732874222505693589165088631601172957129351736647828266193365660443582633123365475025351840095084399228762239212578946008196231504791671262629364570302171905652546563559981940769313701019923033512241036025272035571569936876947463196518176696232728532729589274742238364815567531215901112255227318661820556243697261729161140511414259251927498735901755416199029190618961592043080230393289378227281207992178251274043661271734204780883417447181615010262587215775746478642574063048937722347905899138515210175676263902847165014361782114009060877414054889765949893090795475168643671409735805734133812353577773209584216450821649428761517321337838362912465766345078045072824665510431486212340765029869502153368632236816081304732991410295709123422399617052627004962684760821607404698057533523117157254284104680402922873961911136668481541758728316738360758463270835832996110016781841669309757742346583739077097874549239403937132545569136449023143818267835763626137127564969838448496747450765171075140750285358778106950644503046812580914918684757087537582164432837167396372353950279999416074405058042103547959613349007779894902618777490623977923727614111591173725766774802316750926777215296244678255088904950269057426437550108018805523042079857275598901671618755775827975909988346342210657220859086982691043965665379394357791072686281166084270190642888056347418119913284842995369935524390618278268275346084082157743160578532886582265927225530621385856109998340959077551421827028785371522033000939652788981187893334716426302320010630797836616518127443324135995654523624534028371610331603161471233288163175057303897442909102294578273531764498197347875318894130789386463929416278105528357176914881117872701058495585114147026093279809032927893059361332503749123429875174040812020879307701860293452373635136626215990997664409460126414489087685308843347002093304678788410901801458847355720007018229906053248404067129064091027703523226684929977594900743000370387363072198018994968881507637367216196605713392382338538469956756555146824128456199434317685791465976351817636859841152580922162154611436691445971003625778513913328928330470037091781223741539958649291299464516783956498735307805952097466258500352673402751919604610977951519999808969620563806387275683990326812328096536599317331004489793974517709746967471573869351642897476577608704540743811489885770598897285421937139377659056383858943521734918242076800373551877789067312094313608757217961528942845963818047573197167929688719208393495783847824881926979955088977084676206029453660962240092791691281619545653625943432096878239910404545832021428101837068118080096791400798200851867429616369628251130593078828079156956753066446246363408750277001658306493889089312824650212628636240124549211992335838616909635217663302803756824327594927224559256199301680656133137367300788514324639718175730565939762762184400842587431833596856626107274775376735885669995031847134691574450016023864201297447367550101189890901222229706050559180321326860573591541893187125613544976976752581399077002741100209576659178759012369748125569659085916891315183285149685163690195253364888267910093020606275481837130161045121056702634462715689937430964119778601786597188689952563297145659939458975281527067675518949098897855650503171205507404510080897359366279753355028765037507812167117570053429101616992381328111315748883370036464745765369085122610629315531029344100752656056514435346781559247133758906234484343801058745536319146683440650245799682088665698880220882037053927516813942435757142702052946455635361330037999248463373739270223653576394819668128586523168796836784598733024787405788832645402262168754555243601978880410922151095064742490428113659216566977453985045128587008324550740249832039774748515574438565177361663767083123909914537600253058871671343467450659813514776453946069161749983153288273212515321452918247959388527136849691292846467464371216673662242394104223815620692009076098233737985000882501830685827798285800435280582809746137113099772818079139158458687649032587424025656216169602767146047987303057629439999368864723306046556059968316178304579393071751232950530525384412932619353699203959429945712896048269008790948189082046042978288707236949267499563394746199831484386158397352254735888217301054349590063512098214503193913171872754605823202659891554107758848153083490020396261236452824871745289015966390146757495662900300468968489254595049434688575151130113087075218708935279946517713606111402076785787706310484410039329865334631045747305592779822538140929009661641990595591569307629809666208467705641006527101005002642287379215315047523448676312726519429791830047112308010249391873016949535933382831168278224995964644137480846414100803471797298865773891349848660544993005027632168397222153652691300383479670847628218451931502733514399397843002283311342768859026074732994473941595530403096508988364722476010292687106839175786970622878828604110197255754849799265407151031668252937884211913089399626387513410537539065338427400472954067096424445639174156343668574479376281763970212627945808455352526392879087404508430158545004357310159181889959652175910914794252206900217427152549495467204456850721576092732825812739117233788898695871221045716552320814267010364097572645559005501982482426217272751306642663543863785779990107962305265349438205328029791602929478903308108846432894267790518310021156693445644680824797196365878434133770383175070788450796467921605284469959052570343780824231507446872711460507297810203885030086114478766769537630937068820898291254633843922642112893571550254717120737925265249266978000401512605943535165744631920254043368185551435961993197136568819076427024997041248382208308041379098826460962389520301472149733181281907911894886993333675195278297041240288090576068707295175348769304022548652344697266165537724072095349038950530161455646454525831123887018183065334280146775932206148064300707056980885191997917740427213816636902311041090138685228735120587846119007729267059613237319412150151635329055834731236853571834511514259416320155347457197870631269959794202176667214971163393042695637281375918181211600106130753633831082458668061934212097153643257860589122465272816580906388957240656495967167286061550775634294060652669418101524949577763595096510203807220384825292921962347759355352213605155042418768620707408289097518479138170846781162222799693757445042511491578626881448239093516296004670568312335568963983984095470166177765508135696134007510728060121475366861111290776019897912994036697545344256266480500309409722501517781917468758227416905804068686615687138736887284138281206853037976118422999160415494747246497545478438924056324513629957365379242495489659901124456048549688022054347447794687274686265207235728456610710728229437923976646677836191951289101902834188654214242357043569790162494522881325432243746059923223916199252423916131837898847520081313841760948867375700142510343413983357265254289346386942006031777569226421673976100085089952064023548806553393299219804683137659308270126017846388219348348671287785047332984715896452429661706726634113285735975220660864719822354716655930256048840277892812998316256279736061447452064906078171503683227125306051598741029273244742504607145182254370023328574070618489129119887821860563440265907390715761257915039667948790436603088232771894769049612570185518334251430663785526299843054323374081221843687621511016002490526162548849875209376459671166069915103837008353871284617453723027596055661435525851474267454025111054618668746161437883345873836864792001125765753390780618305396004362145096515192399306572873398388205988144989324620946073611153273275778077391506728886513283652451951380689415776447460144738039175474926294753510002324404383860919577154998064627107298092908317460263137013179076275197760943587214473721594810281508495708450884083272901650981454354110262543769034428321581693302052996189409759959544002227866277718331259597415162328993865620462377576796648358678586711368014385349693556418493712092873336008777005516945522213766186657020928449124477369085378150032200642794534031822022969191600394105539222288059220112258194643908045107302932369464930347585495892388769936490011123028310010672654761095315658862262609177802843940174459650631764053721285381132254833868706866780950135162881502474474167361629721208671572449136269403851274884021667618280763209578399560613596939514806694414841649623917807141654770515066668940812630331408550082842123240947944203422954021025662689291107455848675193059690585968425545495525403926137633434449357483065587580842749900643197460800080217595451445809251838803175095670478648083068686417327458067724136074371694489546720256799152441242017276481591261015753839771352088882277503619409654144373424567968472691778238368772245388606975722649751109996072235001810731063801300919580147072037801909759532998194839658264112762218029896841105933578181089547967042619382727712969951741608156308240846958029824027540833855955037602532071358069959726851835255086960220460436803641371788311350409077138257432326865049022005961087815494692127407813720725639180715505546687150015893546532049713052662297369519411939117179692040942293392202788276214513339134400544150187275459950579535612092940218069452224485844756148696341477840887012279494623209472813647198082872316219095300258527006690109702048882334084733985597032544244472609359129064913001014781126179227563405799873189936392951126585419714076161886235641554322765290666450588697561812965683097239815885380768616156294445115515335954872771698754540169524784375974872888706778521643509688988163054498544649777347235907835492224273220112043150317997248422975958536661551731169016050782967343959673342902795319445012245984602172868604722057771749220797618213295374081653288577034543424994757707219921449029383543826106378751640087177342774101780281271266801781760047499849633377789403103306932486329118828983776911648941641616572791733793639589183871098569390603311323431643822217171912638639021076563629947331023008345642733146247454147787664739688805547664223953253530592740551885882365511016490254960618905777905336763942163824739145073114256034207134487961560750266600786912482435334056295711879425242413809009223156104951204408127286248778507306901370060278420617076144433386130007233210772689740106297731003364536323546327095973062460970644611650211971337739349363768786901532444690102800580521990409127237912536549850471607615392766921255528820355424708504611683901990871620189078367497228438813823143894643356492607436570284839740045084388009691272450990539579466080368306681629713015078254987995959022579637174173480845536309338888503272918305051655334625532781395530741712523901377414851957569792016131328077932516628411530770101729788119887171678078706372141337101210433729829826809241732940253039510396536841979639261709022719350678746597598345278561463546111514260941335457163832912951844703673486517928725369222041417689665717830723827720152898916097311371560977520881200514681705074717059135890799177113434091631811933491179164946433595340478617482467422078127299366560708232765237349454810539391559709177599849869641243495798199881444630703836395864401029219891427621327679018654498103761720946859560723603534793268365879183248550093305901846619867929118176377065510211564025019071127800839260597073348989427990745434865415046996835887496254259610346629981282748456811725363724612249308386487079700511801296481536395725261960477340552601477584660692921235919969789140031962004322611154240994993121147959941529212838312040924119097169849298235586173063307421819537709418824724164735724034041386379799524014380717582077528673951619826325455276731702155986069575510580444235592996098407056114876188556895488039255841934237960711604774877230659232316077368231350145117321185912122015286262865004413655603804972870359643144727740690429573923854178006970772488063179684162466465245725561128454695526172938884358603170726971487288921481628240658353867139927100116261193155920754779914203167385535527853105469801164360070861764158646849541732931119206259548536633515653460819864106517217645550150171750399616929393944462934189601095544625463552652811289619035910289945698019734396904545598563388492009159145643071494688107001554146672953980201934885130152293297109719465047252997272051722463983776496013253775894697583768436365741578110063826447878028010437814824020486517878345180153876956552626056840487311493881075901184538264102523478576303280752638314297606550449464154685573294030536632633229115251799222942797236150172571722493584837988659997883957344223409596743905466628116198430382064995345128666209847674000966279684074867801609072831824489859664940066686253139218745574581806511365796343989543158029653750237694002929831164211831106389019961339548533294897501308429698154074854329029435071197674308017464468454998155817747860562175764863750946624648849317437832615943456294472858397437575104186524444774235073079840162135225255834906921741204895195793349864754563638147712594304582453710840624923436491095609492092270676636646861001167214576326349523155055733090430151750218404117586727230220811453979478360691629682589220196066757733112126767988908113225094929068616536284951202859183043673103218084372150518884456439408525679221879869818808075257412621140866019470295470563046496034850675896710144427043183720985921645234706061736857580534640894529176220555220515390507829118102557889915481367090414822640521105374254865886903293878370183220364663435531560749717307432903792645683125905728781772222780557169278734162301064504312385286454177230301750532738238147919409542787510223648863332751129659760530838179221916220637890029126287117362183116350297897583831151834206245216467102539498721140212154545251555515167712919174309511691400486229146168720771239216954608703837303399950913359950569289660007624105234066538910400168142855115119372970922846046568678621247971089707624939921481107974263470906206067744447777718434885247362737067874359736157410246759411419040801215595293116314014079300056527239955775266491456692444023284056869394477898978041836237220327840457278821733901994480726306556367887848521673476952023992587517253272778126069704640290974164949549799539319855100071341555726720755737602030345658887257460764968062193303931336321836836846198063017078771543959509103477861453285163312992991981290018761082965145259225312378019673068967044410108399626085349865133912881311536696955625728956064880170961802955817380008161487362896266989148550906954584672492521414927258918218850536341742457002388575329967674526684852909442413834900372559669618706998050876297781985028023868822249939782402176275670200120053889205816247258472102760673608774977916412914286711583309704736050040877254608221156737138840564079728595343991999102468242584773592888943664650035763591621851934143096712721601151032444558859839925125410677942380924380223479953983127476635393062193125142032234396404762593988495873202772689870425243566018933717470041723010403441875120767806433426752664519025750804115237557320107846557516266503968875747631021994117078306767140036457860559371173835203456688607506816678878624230088332954415183150604796010689154907931003329702613532322973681848870331949641570269330969027684230850150002035804382343236785715708693758446110577548558989830533511487409186401876846616630211157455443422358227113650651323902960907176004737790590996472298485411518865020995921360720858416432959050651405939915206602479220058998614261414238888126645962400819098342990532448879637572900796396337980746020302837941082596769756126651501705143677886681584690893812986914582247809109714896871495903156607099640962602783023805785487297011435703255018521549980061103608320364071513383288122564318119928805229115486379665247318783417868831118762568860664010124553687298409346507369360175088069988502092057006924987003676043533836594330525844692808912247241207786693977606259885729786860374848280107570834950170770625331962878138906373150774013541271411369877139567779970520944406760623809437303030725903815250022174878826871362352950588591614089529343312219238887386360116598400295219529003410701774607563797050406491033861745393243796914639037324594021224049575866735955728133774355727899809754673511101196541004732274613083108020387390255280901521937894912995799982190506157618784803366399576953125800098469939514383564126512866475516924367987349133945112855924361918396903738166246174930924302532771140559470954919589328508290028683513566161933899279020037600068945498518061319065872635096330484561756288255973068795020422749764933547998122372236971382637700736039172599644917069121355446905563140823850269887476050388194408819648997572511916356515621204354132258964850397113275339014179610018332990233170199653405611253478901515534294853979910061467040149924376206457700383948045363598590015076787845686247897658733424092890430304767428660915207988044623263481414535957242312650621706212781676748639970788456220929670392382608642809530076124586810572076603537450773402018149181086230206496841370381558039706795933712311126172474218732838827556620579041290810467486971287121012142991243374849811310495135720919607446651036803986560416044936596156294684162956949133895874419032238122173617165444179689341845814009885246045421839603693518871575143831477994953199068827359903115284274074236621013348828763180427299780054420273001925484371208074161737114393881441002441556884374885215635962993040635428092948594075548954254460315803564387100474010128017046414069538471738949782417772811540290804093611200654589741252340653252597785818626694397743336170647740677078744272875367511786938926447431862964348030552164353403893984288548081655565270784746608015222427283236534801639019884270588193528898726836554016541450645117252182658038412071290053850319476226445556300415535187541537246506614706628673680396115458386481188951519639849334568877175123188604999113829123533109017678496681965723957651347667486517516270489281628175222937849490148720671257350710537870591364080256559101507872804109208400966725403188600916315091979966861513717917452779931429601352305005932576638247926121246845397627968827705891004506159622178445328518946029757670539466007560716566723219906752399934711000287825554786640199034903835891593627106428470287833962870530756971881035072808277216736358570011611602148392994644599296386142762778766448950463006101298827905065451166973332921622144967977165805081698207089641051144203642949372742550761182993204464420730761054611527964691319467160934207960522173981878471324977564813604544433239237306139998774226256720612502979600762890162660451276828116146322022501674492290603019024380972899645328688738674196771500368207443739053695193270233389614576422364666191356203465218522443040878819782822433662202574676321086998975408042974441491033976646622468134819765767486138670770385274234268368482055721636895310542998516988580332605050945001400729745754423405180619048718310507508135684921520639853540298264378416587704661088643714225352776671318951304031829645143943095245530241747074485038030030103364168914715523063124384167058845061957202280936078618428042742285918668406974034065876022731171266416729055936287832289203098892595301695543749391320731155509217316775083935820389637771595616469736761253450207388138997575569508480237574630397672356024981993674710061908510534744314895874161013642600756078964614548599449376853285403308427851784480338471189235874262846398013906409432191350068760275961519731980749735291313981641281133444460951732676302242941007764360187218335890053031639416127370180458427048987286876609191246296454611408922813361452780174569816633610214893850787111747931780045609411934353217825103113401452242998500483642933054531017246701738544156119305191217136073999857735336283494118627118194797241412802616812057174059755432287801012462692673668084204939832812090791418395007777181296783299804752494589925843701546232125135218470697950837961779526470738663066556365312096194482019528901491694364828894786268784302962570099502306127258735244050968817708450684040331156923630796767789118290497771943218208090990821807884975671137005651031760406032547675051670439952019339361455026483997682083069590535733856471694924954157187770586018586049193497572036852695601373802654022942168791568329439889933733163568445757110018122857427427229203762408557094676315499770555116040416902586270634735566549784755123304040588940907412918802056195464632486241860534245758543159243401281200028894249574487163314369223896460005886530254425656615129474675204383413672764548988870249831163507853123096748494575302483486926648356019334101165966569546736519124531969018614696691169751934122632166784326063709555962747134667545437077866828692776844562646558150076013314698793374562794250575905598372904176213425403775050862364342023998582605796462108396269314308841908061938688289671236661674757762372627869314984535589462752765477537945306837120336493820016203695345990158968130806153697011446570674634877642961639023794188045838071242974441534060824304192176644383789859432198908207027374174355234805246410772339454758387441169836906115255333532075590172771714386316817382660258414799479536209803382613972172431134801163996952445417737459245611032154642132873235268069221785594802135590961354626215725908126390258351912003545530812857108797945343604956147037883088577080711333813050505529967587049874604533352610194159085406832958017551650981050527045519204886427843974004738514913971884941207769245972797937502588110693648277097012865356228533279625542618958422244006535223165388708822362605372642947890680728574558729063108205107379457808431202945714872426219600245192598299751556007979205899122660062095549085637722953366639763421600614826251404146725120046698176900116076161239222638093921421592342986879880844951236669237440779554207972928096529886148973558735361354193607794206332047627907259972519760447517489443087472639964534727812723134450721733292999327048449451904042908948025128166631764465456650384931940479186056062544122992599090616566068345757950884262950174079212310511167852559294819260234435925321167624837589312073705039120787617950771514308012693623201269730521594280925746911055968685029414688728197369450438565813142413155862124276465497844539150572284677611165740529684065892416453203852083670643545567679451992527465723137465481882116518296055529041503784855120633162886141413939661913553305821117010555437073867665562615136563112602729453541118053167849348198177555012817406731188148215822727478640311845724773288371683323790295302805270499447651229312788923086866634245790620221266987356025184049809864192901015850358315294371705784220705072644803288542924261668344851887606218914999748879695874564690119795383989769752605897520459908807464471209525715222137805232697614200170493631078327218716496600147881495609188314456148304733101211420034590622153373155709552125425673070689037306101071814014865262524976940258267603765255220355448227249285005431307744813250076750640401218882852213283553334613872021714580605355173773626351782903363080796279762365850279000914817133274914628089117899398800571878323651059103352124068536971306377214248818505752692364443624055038180384289692399517381629421435294659350505621156017396954443326085520649837403366402728654877173479357072558629286194520737386999582060912150253101520961281824414420164884911450832417418725439914566749803046756610786730866737875029957305575351080829121606155800978411612959147836015703201797969565268874843756463703288625450783986229676635012138421749467266999189974068195785646353450278104501776793732604008208059754143813216865022874668650840301947175156224216211590096009891833648676193102425854278367269516430382532236431404077533303616774176158627804443415696068321874185740470701907115049254504720498480734834858663782708337647592528717451011447857653123683412790123929668301264842512563565455812668319911029253721189049081560995771176454263416527620770096061649460621764835715769571530586539985860402311183104143154531185947263915037556715880018179223433235647806345544379174467689777221268284997806796045257876862597177270389849227996754427884694788269866356221358562188119448944686330056983548381779645229418563687627693673793743897165722164823050353339825126982195366050941452764651654702952871257293491654514389972111798666726597109524937061051533539602520513815439296051144378983964528972222775879372651393089732206091651713553039447024830959840600704828752275830055070565717673046817857934543313485029618736795071599452575509471106345496212277252313032643752030691769930590374079390943908514269553029386751172059098507724876510112881665981743428995009553304846372987500375061350903549849483456481198773194061625454131588458658882497357354699659032250762810976525246828679953103085923897629115695102105803067395106948084522177600545789289055361206876194419656346084257746636592497027440216680768188451843550923055359802096780526689328339892504453225685508624339610622998191766345200185947557628136645406706361189335230116813582238449002687553773866050479258910105335026186229548584196396713066107613012888616161007860930418875670190989918912456595523199863583638012303534927952385283868316357609715942340251916830284249358224635464122022517170190431368860017424661003922455587239494340244602353643313784052576868052936675479327604769088120045930304870472113239103836673106301186635795359827621652201032917483697155562177243494352136442035627679996097596188322885737844165160409287522570556963445277078752172639366122335900465681884206113438872825018320548304643236352372491642309514504228866346986004506896448038141617659183897177484913029668427156275610394250547453138077028110427908266295406061316577370392340923712975350511038789327718738344755095793070292422720462665698838355419283076492809252937998788822622804476697736574694842194563040402553657892293783000125704087299006013814641297870782447192547064717956638256964691771914234852882180533797130338464750425027343340625635997942690619209709010238522214809175569556430659666933622049480391375367979434243694115586815043660698953490130128175591135570127904618568180678983856889455815446789824666912250692505589475556165994713030799157371707894573911044986878506365415995638392766782973463911132465523883690957570750631561155738048305599331875214890315408803244755099442517307678178898128862512868447860012645701878607236074489685073231813883987842874590360139771430843732757172311789622802937319902934885128973754034537786381935278863553105992070518529425967448737236469654926507867043601656470724256909155114502910914467697472958088008164501242131551625595254837387504577899560522585832198620009863480677774630312962761174739234304471765956135949276935334939769281225087631482633380273418140735832741068423186163227891482843282494778032403010284021876877990534520098693352473671926955243530153732544543768203507120665488499794054668348997270001474128096509998788696771718209488867672022144476849944530498468231371944936458344277082756889673121423852792505592214621034652983841058279163168092150204951749736359070573521252506763619745410661958476019374581113489574270861117622456028507069464985394798366983397990669557563970673255024936568360191858394838727104710765118728620901050092200680445777985026824467594390889249325422308646193964714994184184026730087106542888014014641073082300366273795610850820613225412399016591434484151762635711604864192907810281289382289025938732250201437604870249953582402543868092782010978653171106753357044576740259292457828745064308480598933396067105637260385553727697703415326573107280189183373047941697319987876520046949242555806197918072269095274311352065770391245078886459195887248535787119028074849294917897715435786477191145802440967895666972903115287947902821965374117757430584708833366241239090145073698868122928877629246140543561235304864625116031619649346352144034810553668608629302433894907694713517332455499283857424323209028693906999538055573553374719166385171621447069002914596097706012359553193020252202916386837807747065086059340339545212675093101253360078282110916754706851320953890202067427738248398360472227217432580051532015758079487167146524629055337822722604205716332708774937417168810993310323610280616513437529049132301182333045511002949418367179316018624115070415935698716272875337079588231470862985105435269837547910003552167646533026045214462911963834492161358983512090568853532321525774101245191655594029672737769603624868534814028680216185650756619051036148047883321806530550322183272266808417123443481743783556822818579186389038441300992773655675970519815112962841714108419936473300405202914059225767234670236839270455357846355590695208336690731007069379448466481515166449302953279230866445346364824580993208453860292367353552353784553792938012371313699768126968525833597009953731349175180974062267143113748261882179341534301306844148569306366115989396546474529385173010112279982936275231926349175438601121923270636921135437001899263714238313726485944770816885115953837920219184810285213477417088708194146174968336281399794887210309205043383837031905855724405515219950934713266449261354551685967844084493867147479080344205689340543958906811916030825656654582534441758903757961254573953599185365585434617496156897984908635910982789434893500864561738448681316328612615708991406369598497828165586428801267988185653874483738537932856703910806809863243140151785826182259273707006791268587036118739196594302463521376522490995120313804491808690730377539632471626304687001148184532029641524772185528776872673293864450588168861157036757467728918984938602009723824269258765712160996522856811078473252280162543947611430784168665759787573150413312074066536394108851763246585962424459796971129058884260851372007552350452638483249330595879675623807853650026717090775960203325241772946604905118084821866342641847067874190709643760021148042949739768023445173940327707026332711239372768874369052111304625666747638893428144173726003641327815994494099845721421538182160634442471567228504672381079730707891071696371844675963464257907358060333803192345457558365076953827141874566992261631041229240001421443071770705322346153319192075930473194734691696045754852115290014657009240247811632156238315462867935142026580560139528408759406795460305839918031177302751737686663102470368911581517937913496798809920285342226792986267043761651952059577259978856435396530827655176967377422420316437664713784952146367724792823677703015702711119195454794343099188553094371008737987366667642317705989639636910535133126882019452771178912546513761317787291628806128825218162006908139078820213122960856739867047167796313936749520293908222566737575353241555651228587881174379545899240029778350386231982643804011378708655066921954575647281334010540273507218474385014030163057017436752786810659224170454966424859168150530699453308058449138994843286592457377371554956949140966492278095522516796847172443399788221981619961440807416802160200877092697137020536849087657890314995035294008701966558612689874123404769273165652359957424051247761739245968307896701021447220363551509561417160550056765186663210661546579814905430727860275385141291240016835789414609002812095117917340091944793176250864842314494257758791746213518578833631933011366310613807515292465721083015151374825638465147055518536157893407829207475557853065006749613947859923578377992817792949508793720935270972362370590509501265040537767263968766896761741346038605806682959136033326074050216894775651447922210791634087487377123778162400366426900556242843301310303588552920910413303051443289248065422535957518300706630776360381741510304791190170507534727382007624063240045532015941879468245696736312524704114202060274443480907587241949947043747462654182581107727589745182368897952876601211520762322685273838523058308359112017120838272153606109183333859681699100222885381370683898349002813092547705946837038034687656828847251818531615464971845670664891447437571122555302614348676763770640463108524351565916712566612455689643712917435157543066803695117003727055592192865633862459822730042396203525627128679718328287749690291344649670028163473778140844054249328362295626303312870017160614688084994021031573363754715283323139511334935921966363839880337116748177442289080080570107876088239625604344857005744921352520891629816812495881900705784803747432073923491705132398665410204300692149272290101451175086146185671451511319493819909104820461479109681235827778928767963639717768029333856802981392886760395949774355665889196615483276153097724480133008686401595336806044460617655008275022023219804988389959778487500512445288250881391161757599668177862647140603459664494526588105439913188801513407009736344763213827156707834727924174776600240950856556851340007764463964726799744105913894290374955253144409306792644787283360613967174185589136758506324836859722081460917017527417003791309941636726542119703609642387163445847025518546641638614273046450700142853391543706131939729134976276158143907582944554363627698784824446687814499543527176504287390848466872162042496820654091034975234508602748873660569137568110656788087286175353634397272950084083654025327349119807363525792619562447343826051468514848645661464181257304557826232249707678894502385930553310042759423918605538556090397165111771721526350618739362514813962722976166721490074089848712663822855741077491674896958345564791212579831914282490104980848435625451662605331718647999177610749865880797598846766444669920573916420184432887265437984097228668214680323686118734759878429998200880257742008980633135211945129018243005743526485040057198344593556810915324208761521685932833380609118730268991052944240938111717420473479583828982832961680267955664871389681636247310319000458673482927322200198935694842351342864004532437868292548539378760162127581945064272413831099358434515847524036028197199703566800684093462742943002467629227998130339681944667500205100033372598280662021750279475232123866860233119219605825304486577321267253492574755061035306929682556789402685266034691594714450174044421821789118923388588671518405876113186176112478114146701167407909906746278018078763555454903133246166086735357458958277825518216522497800433222470273893143769142084251664731825377121798557035472781148124827501618864132206180712559051845957488096159202405927748701412932817906329393772487531369614939643384577308827657678290266748784107052112514898054761544296873335242372182864262086029711146486292982807801837768859864804441732886709674611517993332905226113830263936331118642155027358057095714834669772779457250019752575464004154624423126595933484481084886879636911774034313017725517528607184990650236519140018790365135182463379258891215609360507291540642806123315152779916570840633828341637643208098200194752987340756279787834513546743573260478543508514662359161296823932988531130052916322714454200577700162294462126499923050621191936656217829780887211698345004613433104537909743643865541969739950414604144178808670946871139203515076472869068145332687580451214073217353011774334542547388270245673206190734305878277864739120226052070713468749749845199877024815434883014589961386501142478939960513636169650759917603629694714734520944956332170892426056721986748310430546845661293228100332101692684974636585286834555318996722458273317446997781499444359693506346156562397046181164031436513918485061794793151308014011866325807472799267060005164373257942940510659509900301753783719129424311203328824476482809116218111037549215019464387066148096070986974761480567470267919811711551363110794268303730342660053239588202870285139971008137571788068385719784740738646810961500067895101166982132359588324492538167212549580928391689358189537387992644825548017217744468840102411309837828894455224514844481592613582073070849345972577400014044755602902537873163009295751613987600428354593819566510099755691822671476268893081780878190915583913525600415560217245768039492151975871147537350282020263894124488420910211089991671302101764131849907797454653767001027661683100558098197892903953572929730802617652238434167236698936158107408115524330508527600193150835454858758068503063232430473209432745262921362290256640148091893350681349237978896108618098071347031203402590770140656813203480475333131932181024484704849231433506296072629944767811033446758791615244867044044685519305351111087557233473730464115332379863238149801149450702779706467399672669038446857053201338629439955214017407472453973632477316629586791324712908109136101238742096389107652733627205318096273006026439400387759982788231412962162957582496516308029589379186096541160243120114177713513232690237982561028761814279194357726289332486562508878314446332883312489615949965620783184433758566797967025952908231612610930384619265673032021028850714122942035520442840427613115841216436520767449912120674034754227588786063430711787976213850709812528954757374597402025946702636541352907569346388249062475972709781085700077166454751729631740702299475287411152698105092992461447138196786999659348924858290982486657136729888729826494147345761598317617598498839070393784224851597070686952950155248894510285853571587922105791107756546056899307663533743286760784508646633059309699889496486592016168482037044461962112709445709403183002125588523619328207116469803570199659860186658838108099991539367994800062956535289480365688540818624006351988874718850614311456469325920219825462193496802784711478427082919538520482430716766286493516641242784589470223047844606307475974726824894786468877760342872995356131947508724235828882118877651997606547943070131702394674043386673919256865212304708022508644064597085804654316382062271212653494168720669226787161173916724843715083130921294387748710186330084308169476555076113196961670941377702427358927334122845313149306783952735419327928413727859262838493643682550936422616815068675490044197146578214731894703411762635084236426390646692072929802299144035406222698359482818124170249721061765540646718301676627960577993933507467850863325117889400613935714481186940686762827927113268771711448061480655927847286871628778403571704430389748109847114904260451919543730099954403308779878969311838704331606715451364435529696049806865077480826115062677609965274598428843730601120423015304065969488200951750144511374630298285103146772487200781307666969900694640242686648647457478706203156748584999690311915121148454307504972844171372594299780658688677618270235252590124097424074261531119981475215517091383870448148781539902256129614751822849056633353878735517482768059185862527503014984903747988132871047924167951087967493702665722746417060474481726872666231916108843899660123365341576256643068983920430083116564172548636894585285251049339031109708152966116979632355738137069067974478928295120908392442547737506762910853053512214342688466023903851874835431749243909977894947010261659649506822715930592822801781604383333219518712829427210870138303967280262469470561273692649951434698279076595876163130302543726737007745158556232659578613512971376968866222869350322048055789213489822854718817346318705542358885212956580742390413165721761338167830205183558938248917353904217465743625575294331748713332249277716728618917419039944358659603810958068414022051560405119179180804444824552197730094324509142747068812601786637031476482126067177617664264105900746390455636915140018837442020370883512062727174094391963346223222908062981490570917650257439905905535706203376525933621949169827314098824289672336464125843953149399104811198393774636817129866983072601647278558219201431237096803450093559030332906784422659389836691447072401447532723966805397462312989443146633662366945841247440243628203680209773892349208424393984832465903369250266197404493250517726459884443980520814250823454214197143935159466794223453494479427095829212002990996624356524501987221558888672876711002646786889741385187550776020840885878370775400445851040526229536177476296517993801830011879762986952319531012961928081387880302983447050581908147158173154500423461511488998328269492824216915522269511328041016486730919401147647930911061800657007427232591124522875627735900179005807773350682946403389047536013470938534830884300138581258403426516836724195968089773075745375078917036554026889104145140530028879570259808117503809041242113062928179008044340341240782109013536680441196786232084758188116693119009783245128924561840058888033296251504331478402261597890117841160898414679697014171636411054822442230609625715969828563801547616962045190656845083181571371056638131966428919403329346587199497395690980567077902530342720269748784656715707402156586060967753238979484032836695548651724469241042712232765743072866416682878913697699058687676387372173207717580393112940605893072501009659719082601398911680668124181532264930856333525781339520214350540886682056206098253426028487371296279379208781631244055504077609686646439729099417849439567497506155336578374273087907008013177914664238758336894247526990274521129864588024547648020249951515432009854065448242048848010373532302208770294823278038434645066220500963391422932251501839284251317229516864184598487534815342870017306740617467103562688304852474154771164583816535836656110618492198683625673750604609862183392076175841650699708684830726698160989737008002948892374464295579390204818291882850119188156877181438779235594855888707576296389912274944380815156380515745585219616934503845500643685915264435808073912911055634225034520778559937849268162527117860622409231301607964247031589246556625351833084962981208513126253164589892328511734032632359942459531016249389420686247321547253126490526493709028480843404512681977126691432422122044724253868214403067925618231617354576563239042122231313052156228845462762291722804829964956798587320917531282929992801624213597009509231451914582764777338211940945134491817784782812579515646036824946482621865422983539430470125768864072328233394996857108535919219406549678399987466321487702242940374397329251665458088461233000419890858473616771782209245694843468333860583107079186633880481584346593444488223551212222977869669253195748534684988656652749043542605564971918531089134124774402593005446952372973820125839604886558339910190299614014259992931161911071412479711148621418990151850621666631818661093143124431403998723472038107974749860756317585530427151953080520110556427587481138380427057482036883175008728547689724629163267842085938563803648331117241868090395098165791324699724465940471778979983199696137850713993754378105309724276662114658565304961996150968595016765823321267080292249773307851527380374085163342060940378992314987590373375977370290548035879712542660230272583496672165026978917375680699956684991082251729715864576864303811227896577614749275714271195184678435038115155833185314079174289786508199747409651989892290512245542729804336985113121207063303035569020521492623301218613935904298897745997035980563102205959308432792174726939783871746603494786319591693469586000025902114413425839651383723381470645247002860759448357685829067613575420147082195713716817859960006643779546220438956663302626960514365191884522455361691960412167080303395635974017348367636976272343014535764064300875344238455245255849490143148956314975842890525682192785288726016722387397726704835035324284656048808548694019998764154709105737045527565746483910711912433239878478559389370372697979314916800450969231601187353956394510380908642360214036918173171483915213892249604603470454981706503041122748278355645377566142587176719418549188583222431805184444074264254230000107962666943773186060807629176762933086872630223509288313164790863804161592192237527288764728990631941578282639182340640405294488061286277149366263094201383568788543896916942233781379504750179455023285608916891987113537353759523470700868749502081866526340859733328838041183796667552062912065126789069863557946741640927913919171867880724966988154726402466227691239483083988438098292070576818983002423373152022872175565015946929996906452479069633185324854192354422761151278490291787437991596667384801054406575690108786571228203456398647009001753314433683148886781671479310151123421005235261923492942141364154748331750508376599172469963273380482550206557594595483610728965805148206366889101700923860522145558496132463284578165715035291421020095767738183947115162640532542719052849854255413254375840838770625172475932885479526249346405844669116555454996550766652730831360591455865319186281733828670238815837310500271436738978666103376264811758659912080710192456352041897920958147305586232536421723315938188338972905157683169891445344981439346244684177576754486403435367213019456305042170638431577352961489645105167304726921858835437422267893849682096099624763810467880920910189112415006886046500512928051085696781340690855717169236689375356694425710592622743727425110320553809798541116425403865426678232719844009300816809931247323416652010336869872667467256136636065951683092198404194769326363764817892446748252642310948456398016748718668613228908268136864924693394412724587353758084694042416406764698495278086157681823462520134498194583437848403104289759540100280927291378282961812173518879107757878889783738091002805413975551299185948033529498358392410511480466569167674500278109297173435779090557656445432042596858114913847250260795560592515458264843878593227231838883619577928081419280721479949214517063680965137118813576084590066573944951606880351720177646326379441568286339647623955842221303114087353654797017713846368432506293901525833714198930755147490812796862073942526088441845889524361015488158930826333020303262446940813226460944289058520860683799900190139567311438143001745484330204546969931655299608932993726718489975587352484092686600848338135466154928901664173654216094853038765299078996718855144219550888255686692033803412484673364610534742435094133069948162947170305011674727035759446722155307614680223508653595802713142311519326414493317038391781096171624315111524986078297770114865084204567882414700869376122048425170787547010464244791738832199179297226848118806183207547376574538021238431363399899168791936830684856857625784542855301707908776183176644879108018837106765996384301323739937267324543428381787054579873579647042649656984908081703776980825662078790902401057370959609981290404709645240701033743360858202054095758512196743811107209234697016228332439396763270770230024887869098276449275346976129672706879926808605322520441010375159611635703592485584512482404301391807085896150359828102432121249757022651429075252855063774065705756106892893766104480860278052496020437188260051088872935049442810251216153668585989401854271588075029402262750980110511751331536321133518962854487462286525979776196128221317025046290335357375737573707207275147859176956194788702981104015671791563192095645439105667039389285228689128152167004003627278174649250086692037627942282928379399121468601797477908399097698352804991547033553306937237446889933176143112299318382007736438461496469943299174613713116024235434538205319452865750464457118265010003749107606150910914157548451270655522065288417033869377194050814330277560453262640171895623748200330828393380097230573701352887871247524277680019711919778869402339139564605313154574992178778462493331186198313829704828055061105474949150621060519864173632854081047592658574067409244848590852022284449871500556146070311280581013526839441147709940754050447098802969650533209393968160228003124999566693307139521959256361670712494918344618043319391145829685585891324098764914380738732152213869715960475343317051096752354476969552676623630101991544401569496853341565724702695623569655593380443151689532855912962608053134738794399027429977036411908350353777620217064202193395962704996211820963717961404340436488802174601326944991664841738533280313045448294447852729902764275912183319774336502760899701692557768351738893181211474025925131616795392181820696900443170816636007281363972645066841997937278271714519913382851494018768603415056361765448289747474557245200621747383062241658514683257141164035055067816705573027927372746005420939124259174773285447201519492811926212873282080345886076868372605594982509299666984153976460827928878969152106658133164311251772718286279953749023204574908085145894542171211032227744654695499997685322117046145234223264622292387310152863689277722681107149158099433056979771145553917385461575301846491056007531819670487498223614949117464469848908631225509251590415235720116272224525127960197333942093349207401667577278856918230903546736185343879971808556455134512675028972941790551206238574618077179768701703237614179706830348174342712691948587457149923543787372747370419417424647144961282794106414594034542522139542411396258154712446903445096980100973850677990203516527352296252252459238384161374957523293964929978620612914002271227546437537375884285392382569609382132011768200874884663622938922377029682730212511176975408205939432360610795109792593767513081580490166032340007424095422294790598528465835785948112321406711691398723144768800671801121214770880346130546898395313272868673824501717368944776141638968778944249844009202002743182577050637885433171088227396497378126321013233224384816279576637117198939197167356737723769255081437319666666877352603405020198276242582978545695328257844296565566530915793675752920724471619252339015476378145394411003078571001948618029727720708811238961150008251981998199138888680320056760024827505792302609845087110137554400730746517010852805465759158647657295004131020120517028157768045120093582531970315783453416619462496550942801368410253979230371725113116503022223396194619812835066688291897770790735503131478623974410109856646367658101538269405410524600825260659227097242274787376527187314174612934767284998955917592805953238592162693180824005009252068053339252079505097359442873780929859307067515408739203326888422895620932699103039934211511786031109165761574915056433551616860347105908568384913924652815610014017314527017771486185411407921237686898379398092304166783180520460358635632575959056858399245689977838946848556236039529112853763559792461983150802652013019654271700922586491300107903732299634165034552186381938888567953662010540397096869645001006794765572617375521241162745480602827076743576126368209492298320800493020387362753283628062761273116440800659507545561792553311026442435764372837295352968323082091101062113610731727363774676095821050346283032013498496956981832129730916998227452577029204233758842565032963659427516709295190379607711054384967450783867529897787849734208931457404090702898941534264847712603409269356610400515351226252368586660374680266290971273318814587402000647679764059382344095398929650965613150526809448697212170023139246727765887422584799838997621856287259786314607813374286727763498414928448960283525244586045570893441195013402700319145329465752745336888632124572073023168209068237407987728350719801145420809100402020981505047090442613076050993671288450251167295414970706617106787432573028644784203607242351650450726724626520107652591215350439743713299182113267093652570285353066909697863318703464083179885123853820837260755473279360526140630554591784921123556230423074398931326273356067251464631977737747707210836311763219759769141398430134329378894556992143239218175871338735825146196030861158480780344853187947586469952039448355530780079527502002505207375315911641351765713270179111464417648218272640393777152484745442613271204139435071515829852798111072055748961411127010075249912904556453807212863740791809516578864705981951617021591803505716724963621033971364377189384690825596569114961055466695172215264693413188862003306720941495381703961756309946592094074322852420544370934682975054746248747314143262232358627867247640945598538816534675628177047486075404635298315704624939995047939653635718010426752904167054342151865357521640521975338768349708153126751676503073574299625016561482390540114884393840845749221852257468569334473740120719877435082425141661168183746988938254507250533240312869578880304800852231614299993520554795925820141375731500352660312460146367045904746446911713966859275822586754982958193463454990270126071341360162687648458789697717006033240702052714138404617876828897230910676529170473970555091795286160397228944337697268151007080390713732053752071361478342217556401683566376579628321928232434922527100681927154721232229128169878201146169907180697876493458875978270245378080359325724294844005102075781359917884530036410668281357881954010048175201662809664398883730668872870548294240236028489415458637939569134637030303868967628242417205112597038255366183580979221636284459662639230063867056337584117025669591415677497712976035191663591708367571509835287474906499873844094176383214157350359847463959829308604175705136149157497674770761901595226792995021555948818561993078320860932405128454236714260487012599205470667305348656917352083142781556084837124041425010448412486776961135946816696691193431356717112351889856398384844955166092011220627377653245961207724622343664944821260938449298882831660765696061087153520999884411981958174493916130282128024366639596749461174568590593093935921140556879290803014431888845512004166275326172911241149726626263256645104598125213463538843270000358552801523389628884850331244651444093975128877200765350194751164553265820872574830320150658132537714418605348688473838689586166500604952987892144788896477844266108196272364531121261527141407029283008917720352320603085565991936107313174326275067806063456976388375300082291059017930578832037941044844522731683220470666503902903659258947317804459739134631465710266425985724257037762173653739279444242109067015699179943663449480063158864352806420116868149336259086290593891920433257626618226819472641836593333259138138067118321267574998992655759166726047568209363289850043667161742351403067359705843323223468040702280014171218350930404788144836805851604717129844531885134652486008265574091629111342150541820078276123028213139212953985409760387941219464758768888951832819736644000718055957150460941034052574438173705789600577745676857848267292685484797093387691842357274081671667164168788304109484022924385984375798284467713316232059952271614493571480851111921721571436841255790127643929732372735649642339466176279434538330821320344111727215396006344440920350248697120444343712203499044541688803182658641182539055721016913549999462030510918806553584017847888558046149061598245837661604952452683593533067342396984167209356314981907424722185835166324287249552754940268196224711749500154329298211305118275753243514659559726632272133083140426767835240843151124030189216324637805629225616647686606378053266142144200293152078725395937633679838308047379482459065855226245048804883772972126769649655034349779386713872041406858121190655112304098869774476210442872619365119979831987465903818995543677928924411070916402151966143608048725098239406651112058990316010476997598006706440315478995091670930986969865382676444931754715971648243070310978005865493618040061166985381289942787220392120868166356771888307920240578233140683676768556561032382613706308790842046776765316862395176053498157352997273388761439655957619431876340234046314332259546089758424890514383477636466366559843000630136168912582437984245880342461943219052881747273277344495001097309460086338432600441072913486917614977993319846398297823257906514935741343347700579045144963806901545816583386617519697392711620148497153306826694420832009219644508442961954710247996677513774159908714678555134282175172532557876881712207007314024377879091873906534843201253903438814159322877965288080984264784825084997621440479959818988514935191277584090402483511825097072259282420088061590678728396467553714753646450827820723573178665928362951118755119280807537225857077038539886546118866429860255272421023640195850789393354253712958026692386208003972171828956063209879100764262810950937361952659346657053185330318574304308096176968365429030506768907525120315055760378179162739478635187694738991139952113507775151574876667268881594070740255914511494011442528702861980422249861269740668810182999326142639737856031795311183578405156842254253934836373395878405257289203525229579672891399421579462146797850365886488661126045022256428262247776092774877323485342269039681863073572758140752599348706980591649022336305260533723835085862592756452973796911664629046583757131655017156424364880326824082524362705150469904113264330246023141606581754270025484244247871812097269086999175942294244988277357147213248707899813779026321291052510343172882175222158331481095739794666760535603769150358221891530390491274184571990934047301938833999891394508237981672600079816661178808214703021236177279072791608665110783940899428222722448009599418488838540582993801190579855253309650944057076569043006131885101214963995822756434274098113991175670198726574087993000505626287357887793201123663157294218375928128428505986178634834644381617243071353273790399472754917514595337474029477316616532888256305528952324667540403166885085846611265521381390418223007658457969008147238507718808286068661145229307624674179406394606434071036869900154944384428207467386449196338534048487342703021854131677838473206928202621852293657632050267230467860039893667286677252610819135881458821247882042364737573304183492086340871783855064886569240780505215570118761339066448356145559335866617522427606411284315742797111639783227735821873224348688566692164967503498658105458187018041420894255833634573080565163941612129589278251192925727111824372016830247753303164080678127102531112482822955721075417034410586818391025383944429521433657524770350945654122283952543656398768485242147324079753736303732217669087748297273480562600308776837972786056839302909521649303440833359740334141026984387908283853256869658360182355045069395011859436023104260515976561281637210001284708665678125518087926584612014814572556135615440201211625505544554222337366663461032372234399321727480730682269031341781042346612710465979222319684543536098090458373021910167839844603455682079832080839818836529477356928518963259579144546030169218121409539920008091695703518748342244246483279721110753356848723314656473124280359653159622281187815575780906838721586565963020927059053452505928471868413721117083212069167574919862542742518028521283864152779518752129472063365929078247660825952637974638598745123477318187291976026024038264801893653513383574978490743136337869232411422248193575857691154686880875727137308989057482940223533357901099482280953022069179880403418843701886798736819022735596932322241009295119569788788458096738870018275447443794457624646150829248227788105842158277204657835904090124308574348009996332682121424267218131101512559938566059392291482579918042783522307339169723142039378803224173330376432059991370317550969031992063568253359770745915578483534228098587157427196880575411176439620312072535183920077863072379000162357350623220918683530537630157948618442242116605251874995627742653524706575910026446568335105075806054910223464443336710003205417673035490098081385917535439636201861400799082579987085400531533018185159503409868510119096432249529532034526561468774941108085527332318964307493819725650709704369636773392526204277485029599127938245620033410939429715127976563207999608204079517310725542432678628934857266878681502530771469289045887901167804994164931499068930177069314598854162517084688833398098061617850863476908534226660532862238295274946257518275817910106880198976465452883828831491355088300382713684369227069526285233333244063940996563934616925495562654440384301669068714853066614225646286567088801477386536121616952503169846169163647987074243383675868682789791889190117047402140833553979658669211447105192660752634730181818612083144297173063096546266977756986546598855034873126364298657682004265439004522174440929921172408395875146271365827593467283092595514681592071996456157680279356838641776087338402889226348756925598479259717722700760662617220883674900803530422343132242989007955239865520053005757847317439183964478977200416355062830236912710386678516026202244146310438326711894694468044646254535728035310800310893844579722342848503652497731326295583852513093078226079131034511095602463120016645973798359160028087790930220496494727158557682187954925180851055964735362132705986299871648464882820841675253635842534985874338586379475060555626353113964866876808731828330385822453981865917347846853557202452310356132320203305925527878570663126923682986011066920883968013867705392663183117452928574889211659719758527211640957982149838391971674394846080479159603425396796132562660535898527966069599862396219277059226324542672294246430234157820883003957324534393071219115115752927282895926398129557383725806637611495591606777442867354643090881731211050630232331204211707225705804337311563490970229537887527617178711801613561515870852329259937215168052581587656819951579477920840821175215474218804933966318146584730910753693134227872898666960288170783865763967482768200266502964531136173579993658402693722894369863127579055262387279202992456499444163656077535427298985304008683421940008198219921088447648276905718855773331722729248809389483800902034449350288525334932411847195539833940039850067102396308300860656353397619963085502502987812228025228676132962017976378332756800677782604141151318593348196054293091328095460089783368252434849378887931564616266681997430586664879453023913536291555488318182570940902856648497862574640333084708278231901256837924122924147476784494446957930448069206788308867751638384701291850671261847865459873183722604291341479414549523234286862996431274642716378002581260038573758905108978545258707002975627713761324095582489526012042942853201096903309646850460967655806420852176472180858820904433839955595040026834854546216258021518619467156633146078557865137732441650727922758818410919277388560819130923244446982973012173678224120801077975185780561477973687438638739737678229114063315230563886239466736605134880993177949363807070682333219729792827571535814557423510318494340388205404153364039072979329083303733732274079159707490541652829285695669443424535027503659028187078409029131647761917128235155675357344189639048510496741546558508600981006433614657445545839554344078896561735364865252482696856220423877755167766039834852908651794696975182154470253399426312584992024676316649592171424875288030166820785214686330695214085527411020907050351702622724752940483794786368344160685906061519936828569875483455806947545488420015838043823300549830229733915763970591158622721645395848856089399918949560145501609868895170612615665701678542034958689769171456951633003141046190137304307992678063529702943151695920034147660958147232223652298756654951272903101045622585860917383837507419392398276187881626346912225390150102633223632942747166552721226403969739045636999540656147374953814154083207704033437508474649030163397905797534655880799614450062509406879768872860760319233686953371137975200619088499478796770232165370265534683303977753698011698983446309693184407231201138129259764633247902520495914732275125885928816775184959971860815951350521261125975113588718504851564315810417648332704907687502656721752354650683409236219291393358291069218555953613365538325377341656763984079371504214978999439689153348382437527122545372571607370476022174988969868054369704518949912295530328596708693542229567259815015236911959891906526753882194817580891938743354437567949709466255258839070941794107480994913396375444312466770975831625454344665300266525149644190661307997163801723312746573323437205455706876669340485050319246845763867961547193726767566502229260929255909084166705552366099075031739775561447987519097106540377525805813638084584169443480401933065385163357136672113361150027544082127137377747555023245747410061476576533918790414055160066120958427400831907258039747115937021217869721525973266802107862793077947190757251645472008215402136655069284980935832168041962025615150219502049024257752010648787427590935373778971073172104719027741445738271915577361331865861424645101122719748693097923801473234862262829768165597367627813209143742348376704509210700843099903064109411983156983046146555062858672317221716172106986459722830922693405787141041035461163738637216626812617374672984444558776620483682807198962760983130962508594907311397735711469094156566869748099895473771339719353303549597841713362016170191985672808170078316692449409223335687906183423151990400691525713396289196335279084908740990366344072909062613497445200617110495074183854558662135592468808562660456566500228191942770682026056110316222373867577589639512741009731945317564227748169070438440353629861515699518580597067643133049473588457607139549679372411319951685774859657753922212946470604408603068131349098474251644104890755695487711402891791401723598861325565446542900749285221489727761331188198999616887429741876685403478129263694386059875313746704155089658817866140730829448522207039289732439042971198993689780232720249432613067280121325723568801936185488564159585015871200353705795973105422291837749102371089219199393512004338907263832309688695000700236616459358408517643604274235686805312365745415048437235501645604175435267620624322319544542901540444601403119476165618000488793957874359945771339006558911332200247779586697009220579249809251943948056738352239021218637278600850922916229571918423335781278080150869684718001295857946963266245024075856997245465249499330911605853258950540420225461615585752908998360689689497612418099357406334920288079294936453695810984307629091666457701697941100624291442560230752717321438493137596785786095424695225819116635570434008419967385760219628222866472211310339224913856356202732595665075951894928560388822598552595570911935770571455689226442240727782497211235237651177200005217493702878419749318566942392418975067656393630424081714319879007449644226417235882127216402781437461145707079722747732307992156099924063784521462208861479699862159467078241341084403302361214458189893465750071737503174200968716736121693696347813248744447683646740052392036946515452814507873804171839388427295487027429380969117582067003040317511687703999863016840517101978929959506972126439888175375490422377256931753234697895992376900823381145132677647096646157269768771709168913149327759581921877682477310293577038949541736652990530686703154348437638254346632632481101878595987631380188683516491001306022383981608887591187947419689527348350943879575240765208318707113755128697181272212156443440523900891580084377266561601553629705354407566548362155891552225832210551128727363015365047975196815833843678037815376171356700914842725951958266405456960498626533029764977271617575881456681332551661921947718397363282232135002572706734592493461732055289326195721793166710664832750341324378875260324412133159100912568245687228013036463441231810451909102263104362978716892770243314210191882315716858477632946491305202286595964342658685273791664889690109973849195358103851502580572911751890837872969444367558286054339346725209778851685864564706001014573574251547515801907557955495507709031551806989226218023814171093281343556771591655449013451168452907263001022916558638992974952860659371167673744063165797392403036523229546285755844184140488505753327159919167133919182198114342481002386079364368708398963336315615543025960005544183226559791444253305699111215383282986707684019929225824371037889051776713176019611686549687324627640328256195122878437207868042570312306289487718907351895555937587331433272397942464606030893236511192466595880567883122124452740288616639997907054924154173703940093304542348088950284602303829204823888267836779614856951903548219449338023166621702676176809594434954226883704743997465264279985675432782690382064903689505901588971971031643950350426257676701109293420170551568986541160234474029486008320228405527003573153509229173401844688366458550861589909292616297635601000634114352302732995804869480741122878918573387428651011824906143629894185028158400754326405944154816189715778379912157889715615227392322000819391667402418240638946481709725322118163921531770959085131292375918350442642671580479349796053462227723973056013834777537994894324220298447670082081986380810116319816081253873616668239219753688636221899970769041114973869687165918382450759567949116402812803384587376401882666167938010310645345079944761933556232688149011782882073118265526421039477292061609557812262988693872492337091351978615957047892966183809172222562324988751777908102820232578420937531104838484596122803386111734553719119476091752008494584845628787969034580616980920828634126814584201556781647078747007124859978061888685006839789769540233902242450596529823210224739081385818681897944897108974418991486858853721446471008885074627351715477273629602491187267635102302562569435914224868694440451221570112070403965748103437347448570600048871260634043017031170898161763578031664124468423742939913715885345576612203805312622446815175440051210305589721797565675108584929652146385233704145165087508174845867628400895493718349339524559280519633867095073719667068237853101400806389676145933500491534393417995926514776336766300291286712980631754012746018031949070901711441442377480861234024926507759190380285458906684653349577809796295644547120455773370528037781951317331667305892629463279907096833430589507171588820338870853999296034064247586376705173291405453923680933033898283601073535864502944837099541326313365933526207760728963301927217908130651126631354848635055123735566861908489955219869658843318990913600788916891955427138158538619913077254722569953593605220073838818265477097993382657483572521735512647770893325652087053143269761767928759542809853604528910541236597854175618635558358019996540599103357811639809052557743736048988826459990443779793366913095712197388153324573046672064931565838619374248920560780335938242836255205397955359341443482213737632941308474704004646072796383634952389993449589156740489594809283227658362891489033506528987362870094363891092399855609529046837864934131719683091164599919932701503903965436040420799007338410658243127446339042251363819748660407999701197478429596605367284382595309375525930328731087931185242271397926156364987812964036050307859808931708947697076775465884405237066709001389371055635453525134316903219468101940102032746389867775657143774660682968498542137347132407347618299396839052471316725176821258622417448588461354570570202416093101308342662909786141761315745069705040320668589558379935838280015560368372866657593077712889441075930374772118197472482746881623330469911140281302494862435919983373144617602647665999617505006963237127234309892532834244577396755577559223120066470422493000981913068792865005316347932204643169557855211433030478660986562968548932725618902831278251831894562605193411554448508508097239993381206475625686952935884862138703305809218517894404866803651267715932377938808624422611464450259143707065084895458627431909396813034109417418661917471977364360941779724312698985655994895436204722551917084716810644456353509732793649241614711797887226020968017558355715061347647119799146088211221893239217106429067559675511179744700099672544080470209247181263086362018657411274762455289407460527862039278366089923339270230714387030741609961353783211409163566905867539304302898563356448099112789134617425968286966464354620821299366446971480687087191504482744433900521329471392626096011845842955030010602326864242983740908430258713015317246688072134761932161955290579927696619309430106538430559660930443948824764050190541630745195469577160159223611339421017991659096582529152677416054950912750349471716589946952340034807921829568231950346306075604271341906125565479576646815356895511789080118701206728579243840423969881484595781505511473121780162544690037458409039853539980665424864422614797564147018331506434751068621223803540516917729448000412544668812909804199068690669257683344432352647101477404124922451765818891511144363535450385457620211919801911934309968993900971707771337084238894378013952369901871071106656375749598978609921775304774572399330338783864974256253895641383024500193846355813583993280400487612577416397360288900508013503612622198083054443424212785401925690370870059483381373978749233555654225290213891459949162158309408597910047827099618875838450495208552613843953588266564825167644448342422106545226621344563709977894329381404228836270156153427734612164166625701114363295656751719653417160572951691095815072937635432514931504689730409231666167208176453201900689572401898972337816019375839566585156905685095884208033405707849941933622000701519280812455956959066782583616719603302787440832204413272618640559881381446877354904455042464021599186403831291460778065070206091040347357541851461692719722136407823472235368414380221902202269982480405966336146573923137381488848110830414795805329253274998208918183195378732630042573115310384977652896933083661609622227472958024061960097961109965960360439085117441786394790948659732528872433657792915859123134843538013458861609598522912499247922859022124895621307808028196521562347258396633146778746132250002424060301074700270766326354773802005844377372437549163214105001602449608167198510902595535056436011718795849530114381196423895150263776177905802258235579921588595994088340722205155383517560956178546189562139151219191420601779994248770345554607621395120486270994419870520527705311603876699653623240940252464184294300826447567153326137399943689672153909159172172775816367524830739306356665498355442433706433388832372944557465113132807698089794097874399019405985085068418239596832830734104179824171882942108645416535761896567044822055637268365495395018139069873597547038220514869198251452302214860079067285837748371189235531616799245245871569078178301828239268689103917228358123298919208346129509149076603194307820479078062704721684279981763408587980834269278368176568179647804041294049500765262905388920470571276900882531695067353473969253381975694332380888485103635191928951430231444963884600678998124783063599629072289492665012201090615092060732833138798362863131845331281760155042279666258919193885439046940563061894763788124217175478814112368291212335944496663395157403100645049621600766477384021338023157468743925468626925305870416138681530673607201494741303025430033796821909309767424057902079340075509875050137065245535113069397354465634593729533855717725745630098572117509981175736124772925143573797133547857599691486874442895750010663767553661809999743153316002205538384599443209065785390994652288642134691344902625419552657612382761922976105342887363127933594229980675477531308652398184373211539223036708053456700251857723674697710651542471045763475804849661575547404652512581191650947301804454582721216990206034567901030171021140363681240109112252061193220389108302121262371895306344580414141203223576779275346463315314766078253625579503152145101639790262395196032397034127451210082873702276317235870062784304386534319702131806909068398018741960603939439686658435444514570168740145958093580536500755508965539175193574330768319413086604562975232047089594263135019330362475140449064007665513209392152045668712566129408758332993471862600817836990536201295931885107952723255254827119592245556940432348833201887046456169308617148723295542705660629390034884561334640269352681174561134101318959503897674018391891749811910316844407997829340370057027854604766504411335669898271107490073478494846303481990360867487572069602214147846331344441223727358144721405167470450691205918001346767493458688549925070615649938440948445710567000653550186652030398151832596938748527212155941894281264303847838263621975727414945528536522430723139436722062593109151884146094270473772609585504870749552839974969575592581252322481215334340582166028345559485771002923242250891739094387573197321534756120984708467076823812056926936311223129760625747194337798276684206283143347657063645056988142392176687338301079672903596703345792009285443172125414430482273587614277554500376072739403880753545221634741329448064737800916908316033051914933244060237420046445195547132885518769660250178475293236315294781211692289494348760111445091782115322670123138893297593781614264490919202569954044666302838106961139201383502876126326041318035103725733079188249032878896326488242470458573953935184836183566775532518103374655333541074839535323821562926046269557271800341877708547478552428009591878126456293704330110565427295045803349675144538386847482097745276559376226945994985979126949930298444808382724827682723663550038600466289416130935438908570051077208040473793611609467800907546201388275340525133192689094214208687766700222103018813817286762960364349262579167466587438798489020052850851993738482740221799009660372956582267517667023963645984796623577232051688592754278538973473701844737202004062658880568969479028166355751340873629227556984730936775761309818394786038105148491618461244004383523092650178064512935773969396543238661990122718444773252333748995156962481625902057761828045638977456654483442781254600336828854305746483939926627105337911185596570143117570109967629962172952345888024548606685128250336039246607131893567457704217116700664639955875015821704279544837259834281050847617151563338469488363771386546059065217195501309364004471204751701223560514875329127597072853659242554817391115052205873495298956830134207429893727537464977428339868662784409651338029891823147815816683614424273162324288511128513326031059223123576633291359956643204813950423879540414359163710168470806583486817375491414936015116878518966400003258684707035549082318950819063796689099929633769675908619613827552685829384774855961951498760195658867247522840813005556064496983284293805786491369342028531878181224091774525286913298319008554865278063157370799696493442513544504320470614166516820569248896796676731693536943198796815244062028280862715993057913223272633153347174745203207740667241817885589498617037122101269073189201322280728483678122407381294662614658175539229192766893094166903874082653331374802715386398203071737491928712911908137422974737361696714524571984280249353680047334744149115600690977919108608513907801025017244164907154335578526941987935188745648176129849322223218080322680333413686046698551437774006789493053180616792230563478746689761263516393841156666669365242984138980252305803124619429689973224008184567848963833815175306461127442679836923050861271640599129592215058808026154679498675990091333407835089901044893654682703849740918147111519350312467061794565976434824945672614561359269025060002044495274556860137815201988147395137658709665515814417567901363115742297591181719128704343731081850825521962605478175774541054053397656159690073936124832189699799362631727291531618934724221031543985546768165596450172392571646516929198557959795808518160147228010112483255598962260356553335519049892616462808339712040895085433612556955543066572419577245898122134567541634050660603964425554672386887298277279190736454513801760214311541145108686868405749211113044822861176840671928733616639930571301884620246504054204492827437413106018492584546688216532807109300062278109713152206273136149454964854968639688368518591097063892871009215187521329459937229972240951020620792985811740488085359571497019343405056062603983676736699851653413975829416158389459534951721499044432381691300721443184286868408756353613130832782591788243402782727343091927275527742306036750822568867205501111593819263401392201139175253615533001827732395797311214588731580401668612348364675778098376911369956040991314302340933308258320058443704740018365327905741671331539485550140205566886689326446296280084248809137206592040058218089512607509882458113051110154477233648301142201130976800535250837604371504433068313579340965922785633583152702594400836214614178124624418172165974905771536014561704300758188151607244388632281883391170817061991703069457335918507175769103231794322423166794751563161490486861142761496477764600192418917682530794483652103510081023957508791401888836278102711265121067374471009129805890155113232321705587831073089711971742714579365094108215006839047866775136677203395784151647965107465451118635164262878010068602326610153486156035791269585029700519495276595391659737355501718053147743120729105996514861412940489434417656331836106779211945690117136738750309119985953029098342016419124256381959342055473948450876498546388597823889658481408339224723337244675055164615787650784225257337671112651146831790099518922199080526631706294704497012142640692500118556851357937790642730781002654024153311592916195150382327202109477183797344284775983000940751877811459117866730986959353207567890603198358785085100372462002164917783561654561481151681268724684868953271892538641434308836626236747010167156198085294916090675342269419277277123752663285365607242526411556838147891551104851279292469107859657730516653391293692233826794495337435035624931704422577340699530468767507697562617622610221197503198324011591566723529937534911661167569708264085168844904733227788220719745409100845302603817788558531818236485606401485475487159640873682411854639917904969950720924899921286090158785981707874469696493689574402243710895252142726153436694258783759399992134710951361609729821114001936997009911161437485039317525749752228404904599459784868235045141227114045354320311676531443115418793991879193792923983404255254440293187396195044713457606317946521837033548883381341212434279211726515138680953179160070506670440720720041391664701058197265346925759335959233512311515441137042044540726975454697824396829829042175120865329136684806661945593754229009206749938897128505914771163526984602065066094425214159593591412342051434760180570525794117419108422817390213175391411021589495689441877855567542426248533668563526418355312345328723129941134601853000696865266585943079186704283336464054538622102139917630273137408601367990487690467577083148852312264512810054920491122653467988964715395898196252597503985991370724030652907891826193829804204400064937023272002594709821797703360291771869360487834084097064238973069652481542482497339728068108339368876280684412566190681886698210502829894991500882103336436759891957957946307605052421163246234014737734302423553979667817129336604719231878910124205475346654217914202394325070567029364018437332251093965541913695710302834379262930093746245874714861766945177826895409448319568389177134451292582362207316021936680640183649937791672658370372731617690924475449843690989825750580232346860602227164082147348244885874556411282160050740062428140999026457892931032403218908540483006219478223441835492701152853792771780390261976558547428599982467754014054647429487150994924348854724861241300030836567840243689867559152696894775604378800287717083633505504590282373019177046190993196949769330208891551272713845424298783972935097562973860676050567597117945930666977362258178727164610534195222405111267328015255404523300116412059986750545947788117526490451782296934328243368777150457643696031401437736247250033443788458124311948610923449099878108999348537655104992036592500664964578594707384735558514503076144579402294515941682670735230673039756558070331126079692602237182049621288559365784956046175692005523391880293851131775410683915840219643722866717475546412196248682962077491337457050121047727135689217800407801824463191911465977379991113877269986042809711917690471001699102364763259532937530530151517788818830644466913329570131938149196906099370400196343604941687885647590183326869295425649008630451644965280767998596998297194381264938887897063506307293225555493460077310016956503889752237286991373379130229509004620506481114357035219147893652389032363588740017429176272237816474568833514072928541131348786591192257399841137266583921864502647200271748183882674874297816734841070233398370476336108161862409324873334247576618040932054172514887752082340632229187324622448059740109968214754900956483335028173142068743056029610401670782607774189188157107062055897204834747244922441107187268773898357251100364558026023826429239995072796712027436661846228233962607563853372049424451709475385779548703520490153723555633674044071465591140116827953069458555872057114906053046538324449886846938719100538681788078237915073150156253480685096525533952839813603464335119746751443041039132252701201539824343674432327719984121711314864034116315283539907140314110600800483482983410020190094370385571339273640763719297895640426425241480461977502631490809249868604528796308662871124123456546020835929862947724724366056949893974697964380508815894876866159100940362655540860407703406928200292031944893653681439782766231033322107645412911840625920085015230370737867313325970111412085830166840236604683525705506185294648931551981447464470362843299834454641039845050084042813935549187117775770212161418674182040538416100667766986662651420511036488332438255125767804489726975580536597288109924704470332211884780841718343371959743476792087349259087031854927472666374847192958042048627111408957710615256845009288837326489019986163200573300107187215850275263508366982254687508544319606093669255839639941339347008556058624081682012512762672965663017604251215812893306871782159497092452610225405776326500570683007588861005760748531967217585425083448196395055566014646697971321941350445727450441561326273138760584932214707560696257778012786286991003169977459400006855768180825216771629154596621605164854789809194272920502692302949116605250181604857003127575426536425379553293597543122843037359761595390968760413236952871654107112678196202307037328638279767082495567935753391741232514774538509360976128878773006070052887040892275822121048706985267071163418047565294817080634461211731604090621786231262041869256185776091795423639839375437540005533883469797913767217874191385471640369468242766658047790805774250921950909238074517509567329446158027028272008468257189169598539906494305732522104332316656293235542297982281622580615971720015129454911965622625165577761546787038062964695942610693561308974257754073822861205977362748425532166835849008456240310289735091003323315276932321581347989743627334538490100464655395590199114440645043731341845026527118253559313382554768180183212668768570190233618039148648292450291943024911661431980833392414808608341094451400220413781265748643034503793180773721459313205686470250690194938559295436746588039402505389558132950558687390799990867302813854431856036083215556955877220317018152461262857401461586113656424613947950212173770381272420402340611408467933810376607981454925742552680300902109746968704701593679418156453507279409546986343824485022401923180300347567080926773784940450008784326657835141722071643759686025152967708566085101730920893218465523530316744395981116699410761536255083730567422810249904772538135421788248852498721596137492359773241490424297486742778860103500773409441037651147852182166806918999771193989183561162071169201906523478210860218593586885140385073369953313284563503264358584959497696298636096186879344592403427064829638405277887689838975275380874252899683634427653668147356138171566190399370158748750718505049165339811483632386854787170231889604678413657988812001284785667095468080049514422462833526623726948433703968434324379737549905027073302263229167632171831439178650747779589263369693515487550226156008540656483561599032112977560282542078511863030811984457021011321255990749234085407629510685693448931555865373319256064962553137470972249040588006969341811319062449597436910084563714248198351922174094629891183792701555222796393053341562823461205900323930942511639964706557095765025378507480162923620948021370808837366531459253752420342165080973108728989871577590973788254273811372059003172698926269982809294386185112890205941145257706720213199886422766556886614941612271188410798093855440052712989323926439609688144165070936927688697036346190467450802096502333562407104416613702606321879142489488224210042262401531104861850142617083730145643057651231389292208762136130177228247891268344426005051877064874990061184560022640202192387743605461029975909922745373127283885875411213099768588871368109577136807954556914889229815499093092658664769767595833322467548108367921329310837544493794949674540240011444686503644371170151052340921482318380634991078152937849040556209467185247126279925279595671462372836640406594550276596726551471729002623083788981465484177359460700232457876854897171881353771977565674231795986018701532427353122987461251361217531329038304156325865447714373847539760247444614562299730194137744753558537230981828820149303771437297282878227597088060779531114191120448736984028875637593817682361745318108430836780742181343258912913521640837032987914136482959916952208182527034848711555236000263591713785064635888079478896632159570047853695921402332898899946758015471781373479714196543774374424651821843112820387126165872591660331202396033227538373787488921283591876443604602350506066445890461115335568290775458521956965638409331448153003822248367729441328051279150709734148019340714764019923170597071282197826742722514019893596418895131576158266410237311196596160170996372870025111526321857466148941556183691772891691829270557069425503916986039182057708262892877115797901483458913773447473295581260881547452649440193813634745703444994890763597552210725345034925360268605522897755532108785547269516534493507042489854594201493993856702297341048185851142878684966313533662273667929520165198436797602815872868880913085859069861991771030590965647208157945196267344500001265370649390154614687832017672283136157509570447171823969464487515389291550557413911001198132773468412842705158598024313037276496427873541390108034841918859634909991050014351083421337520729542820768762333518908734340606756804542525476010139658583287121918959780706547690315322532070468426297138556034524922885833058113723429119361333598220787991482495495012088015589771477333001489152420547749257029084493373413900476091765150383828055479723389492139290292042786813759450103059320972683803830808088616061677201954692427406145125202968655630421810181123566220193561402446624344669349202812965063890550903261613842134012809050948167429438610770644496663746309307494332495393144954337214249225190780146506656245930958657774593686019516857466463220262456366451800325671610855799250803919405784936223676978155589405106346247311226320248657666085998853926499530528880818360438847901359171678218277150922964343886951157837547967421502296844890497618876188263897329861861404912642439687210167868071193310109631950759183551414998403745219280600589961217405699305760652014011615391960707482358750137532324957404455251697419707875778486261878959955066627656264800829774292739175406204246432078565145133084970075707151271438284745092730789600808614232038355822825890888299614618622728550703080393715947919216322960102401303259707694858686913366308720503731552605716849987850972599908542516322123274855749303210620857276061703467276284852356440990067461088261771072170676968503149757047149364442927216308808204406065024437954780914812611437681631158305216953801724637031873433962154028082275271626230717427455109220605669287279731481386945721007364843894503068215566559116926033140162122654107855461601850072934255064179570668321095595165087442762749960308438729139217985482003917484131786929097917487167815193792615720301036016651182090923503619056838225390136300394472572638035774354292274739003239642775734621326385182886546082423423890694189147076808706984710629127870339894646949965594749770212178911833519881964076628470732889963299992150156232058466950819776211085353729712621634798930928278100183573877563341559574559342955504324248273114944783839436594277461931900420296334499210837562015630464448551284607811984334623735345155439344312359795700153266868867445803699499834879900638293274722157309978234288892207106516867063893414358137619480916595876941803356370443418032784374871993175636163060877506713984616319307991942251745185358466251898556025449648999236907410865660519721243839851651489830116588699777886676207983904165551539427105025880964075451953621947267905544441296321531005057754096167940093994114721517478846863100611820455747354379152628673788443648757126263561020921868135142338568800265588191400946236978319955564624921613648245648352716561470095713932326220606473692797640238099376734968775608203193885352109847767502370815747470769296137462701728521550292126731254534499274606112747880383627996313285403900927880106654917494389556166418860181209731684614188212715097405968736434369061362478970436783288431831028509595070618315635143660459770529929425439300275463893273112114471089566602057647120139789461869822083129484352622667611102847583302184367582915953545237579389473571648183257133586555290173461033060341674559522377713958700179984420433074245892538765510625369458646860297723402037707405395839339057541954807154305742129789459306348980765246318075571887187936048962030045132492179480187979737079533148163268942094160179572757121444175700044902703706967531110450172316778203576192109361141985582261116487943621234747068297018389818475503311761867516822372874250080367101274495190524928912599580440890975434809749183130026484840183546070332084981218282241793348009181936094525841814864769296555427596271259027939962428689976470416586473336732497196073045684758620769921423715134288644296548499875129278581619942592826756457080130489558078474066370707638803630598083866125183621548581167538701388639619810514021155755809602379289770667630001071256591819246535962008825878447481305066690575155152637801125944908411693097714919251487577602614873549456874806496569868905399445139186386034334440292149703757988793464364351029072979296665936862562322851690134644948456445081596226669248805040212734840327312441795949848512855572033324939293761502699896389183135193405547841202181325446853756281665005744442104038595444587419948270856376315996163970343278675143468634429214868825276210400985900982836093433455401050594792874888827577255400958249164799186724028111611212754064941503606691324633082257975722525842146171736225717540975372597198207647396280180525164559169132677785013793873448604570556131538882822319372511393193680772544825626532643519367628769464542368326850510819265910765480834510888165454902406137693183684023499938237185040285549604091403119339682221047095711484125235384491900207753996087859111519237045366816797394210529850750611064774051164362884688677970218944755125748992108456229121461476992000554727466148010186711011582542355392790198446234829861972939053940170827665273320243079680659218477319252846412750076184857406816329849835247983506381764418581435539718590931921798933938215779442467152390737242009875165324666829083014346318559473310695774822183978982119907168530169023725382389979015053270875219641475557889082413587116344067528629698083179558186959798051835894913020609884377763282003050500249002905195139996139080427381980398542784857062964288579382902895222993547668750264383514397140777602049972139161423679754599878405186333941462215604996115701578718176018307541384512530097036304061169194217768014150480666721185992879584528828189172874318504433656193277581369555973861117004451138976816687331051227326538739407757251584354810042596150456565523903867702353935525513718031207131832326123903995210830996572920624202740733580850873992940450561833095496082322716530754061598791681068541493750402577861634607827410367658795478973840856604103173571249155661993993867022421558089069313882868298342980862105182730414614018804258294087714731932145022633608687794172424726721504482125006853431137639317955987824032973933311022674437803178590528246727148286570911884380264473518689088940144855206118909751472554808749891389760633426017145055899217993273505081401971948074643639509940060208454827033343010643061261135543650998666772269448567745680225994726681961528865562829895306497539632106688787219627734132244571097756205169001912620187929734524568566703297740711040480195186495254025979719429757093783957095864509942325115755444499922909417408145888386403172473598833233457168162428917225451650793774513527114574750371954440114737441687471710447090092381772416861504975993793363473430394985917583354351900190205535898375145878213677469764390645952262697813209361860117213593509052313363569079931389579260482973612920588343145486032982669554814375936107642563806605334920055140917938838075539663182171198300750429178495615469452467483465160042271927689390441202680450593835639592464618085872047929283137424352295135677579972914494355086808244682244389702401236948289912595350183513323559031652309755845500107989972587348828500850954200857833545200115012893245333109627937735047846040230517293841398496025188882376468960965126165453536810690349903987775545813428919754258524533278009248613940407319051905005167808877922436410043498637143895043082404410698925282051275195796945884533435583550489903942597505599609611100764473108278071491621183722534475891634249335205964080597851840130422121537613201789037114916457132738956570241233243983706093374682418273768173565656137501496060263774880771888538384856087359522546824808372204302784255580169722383461186553847586040132855985750300441671439008271345936364680235872267762067985309885507162697635847478623037156199628262605839264606171454544496830679144903685506802752639063041417990950872013415392302647763210535284786557078444363976912883799584239332664549785137633401970920921366036327236498118612930403666615842667412485945038212146757906317805911676391672185567167902837509932858095448626420304553383999755460258957293183396954136706548654847870531622091944627532924913640754202918408177786093473882579522719356857648604941689279948031329506928409360201417484749084929537714559830256059803907512856924873241446513947181543126865345491079296839574862306711858172426129367681526649700236212754792205133438275238888064299157673713535202953166648171764539442286085444590547735889603596201040028903351282165781705311239873706802739127408588568278584364835793991942615599285001538031908511013630011319837942030916589101950309826300621861550708853348267238549431855636283587842714490642287514365059228867923592509751822167532884663503408233691629569720734936137459262743715594254521126158131426026248096738000817817286634530726201368801059967574757046656337742841057964291732208637621270041656781242295865467976315411497064343134847749221750155184986140730810625934280014356608408077588271918039006806638036561870000278842689325678797791620148108832243269900949131534213512910025002386585753806615645854634853818515881708942576915252264979390525757584675935908071019154197149595929587471614308959891169141888140932535097595954446015708276373293247909910929099919471720078629586269729576123808278993059934915157551482021915577146419513639695451182019997787523414620794301384087266859497216198183831990925169564974096685010788940765213706234341443248844473189507660446853279357590076491143601188541429337519466476874275641986200023295744411373299124074965093021849300334518814208775759722949081132973161466827515495725662482095242903793868964867755308409277811148591234498488625004111779641600889298163612266933795673056491065535032093015883562590334528679529371346386687307712968254182868127242537344857151755658021235385796833323572687412613162238222193545005207190399470185467713753335526434063818332138993553543316745746833423444694491891706780589065686885994152646262551703212356961439415272935499163631570088599588313853055889880337376531126727762818299711432899048549767235644344030950764998837190924823488948120042714083557309234852739457915557817491065634100272116764726432667552055716147338909460900536725416318238265653867195085879720489005112913798160795462694250788583388074841084264957457996394466932911118003575308065027339174898168442293833948863200203188041619638985585212450906323581828735076287626453509607356552039377691386684778423223147167640791077676195036067714969192471528367465062494134075383914026721776220054936598503876620677833529433509527143817920873462327798402181573063522120802352898527325629984050580425084530778624758629788491324952107270961347475944172966794141725167244971673986851328658499278834089587111426648943967972382399375345259103802113698275985517278953907439875839673046182028636862481408348920442586730860866315727438631290448499386990956462656523098058647918008882445176375620173293243143674077414163390478893251088131637880086220115849598736793655421051396441965846416360614177066092110447169249210195594852803649824224384850418430816371956085609789077358056140738774809235907962115867015222031796624924110379781734994569406860690649986520505835880389756018453833045850346446871665214083378001999521103485290634458116193161967853342238186034060443600983140300084196799481947296237631229620818370625181210344760041457832958726674593078427531146409255313249292621418644942761754282229275017537288886910881355540627549590774343794680427739240774188623309725464995188416591029790742284937024550587622316965812028652728374294889586947428325141476437577553330541296116624075831301728799660485611995687728599164950422164850685269701042578331317987854451496244190572844724023369394250242005197792049921917756448817052179554125222015532919335728414067164826143910504637491122560006485904543746453580523712730388082320944741689949367595989130462101637168209494101082795796948799766883307032400574112334127475395648615853748302659654614376813846267361033830019606463395399289894004182402498681072484213305405053224433111927649761699903262767597491706834163884690682987625651642184557192360268949943536226616546617825326739307958342821963444360845955129021621528001226430081066995717353152008377173454473607248110909907740584844497672616951823405491631588351820873635316229069184518750059280870387630376549259339752747046891636301789880453479451529418100736765008437229358819604612535639221760875546583183907462474589134297962566476256973281942445179780880363347925205163203056142393536415842420871142975316161373876930466533751683331823747865173215316316104597651528239135068741732611228804443497482650786484837868502335690398933114022245415457276229668878472271061641472293782795417191536932204675765294427723855719355218333317189064500403875462475566167509024762298248500473748321455073829579297757088954980458405683199577864534824010573860185582221539648249768364324792031596708485270401762529206517020712889106583356466161642259582461350711765762280500090216609710016896001052511320656542619020991923180567603480828600274365029987518165236473787381735095105320699727706073971404497534156539715950227705088691807876797312689719598247834577571192939392938230992660376947023326819611461957817990129584707377567189337571775554977734087265754650057462305654649842789663540005807889046422870325677830763852041106411677215980519690536382057075390763121116998841094385345720690390903529535899527894397774169708204547735007442457502139393218973044474560343215925800336349692235420598164951836886689932964895441295113386143913911953180240750156050759987109705180021755307569555015324040746309768381018926699842138676821643088935820750481919995087513620801400861137938615069956830043025282719171027738661750310255562061086564331003960561106635960460213370780914050409636949139249148517827114831067123370855659874286256653233204681797702917176451819940197414724128626181735222554714085534889872395892999857981774119140489719265578725339967400303743016312694187546736318793664108986679823758547588000550427934780425547510774930975048802413817137906691070175769907193614304365620905422219486816835803386969512200733380556975767635647530034529388429327996523813435387411919295114319193816938041559751008732747841060105563959364593511438364784110738270899650105289135865959409137608053509446757167826408749624554357725248542981095062474065057047005464561568787634114171682733642585470118194762688565199961535246084450722279332341102633045718946247891869295623471668609601006296556970963102904394179218857854897387694452268437742918232881652964149261939276995855439518194915904515841517109764439608036252203749753754164887319134751995890572301346600824517067803001649925569198465948373161631799981957134549532092752872675840470103653561163495799302114356974836398329384706414778125114455712173363983193313733960244022596783143919797183947624419021805131143031273028581778920340435070809957546896929988471207097396965757828459485360593741155838410035409606248164677715006718007158843101466770618637730202668288887220391071258166388795858812049105136647124367370435588096916537478401646172793357854773812966484840644332724881103915979571967748434219946576036485153824721992361826274629378519962338728630832341263349075266314775048124181448852856087573327620369210261302771698286599995715582830829506653444550119858773577850622791475560688322831804089582524008593717074672026232870302210745881415885767339311631886001769544987148001858906983759166754758574592033181067451446485149858311756782436048429863465549065904248264332412093684100400677760168317072278655355139693992930197642667173753703528911674863197569712562683211870482906772479829796020099950935538859162844611341366157757053260066846120996776348377194495184045557818692084035249791720636795415860632844637657893792847600371845319812480796850016399975708366086206374097577944421109461539973688447488122800386035166824280367348022444308885027829726506960328014881861214674045196801700010255690739461900733994532748529551419307424501095967969365926956624044112127590056158212428963292578459940324532772739658204261189246101998663562963430861330799237690555076617201838566873641405371859183012380497487312914092032340448156950806614354992442127794667766886676720433253417571740858072838135649580849706308425530704663759290990559561592804030422431413066587492983093012898289284379619060717992300760038114468659290268322845608040775156840256978432866774855195410376594550590853500268642499330372412852657004483392906420502749910974743022503880757663839845919790869981957915451780097345252024401952686856202598557131318577175858869872557619869523092025797216812761722804498198252142712494161687719092559734879840204808839155776364444924520706829166027356844672185259384304974188788469680527310125202050942831394629146837587147004928422456923796848465606517828446161127059330109858914180016339607830677807884464439290085298934163859328854333793686521397906119668454220484772133749368039720707537040606013746487161558138266364615856116911447624191168080506255502468226133904604275452291993309332243618631387648264298899033443657004707077898565880034944676524033289744895810527730814106091393982238848982366893532438976915479086291298397137626641699030890864360528560210748625705365984289412758650614984443247000599866402179242329829126452913391318597112432782511187020250063316243024874622573676893598306152523868555729986332626997514169434726933519948101275591210390088015836488922254581574723033402983056994754546728738601759695824794694376259602809155009724217994028093885746005227238887955256671297411690811111170327880651173937749172716822942650609408701959743598708015213175476554833708752460530253067818768431718973511994121024374393272051055747464744325202427182107551141993396893237957363594972149577290946591207358510082973396531306387958987357262805813603919000814586179781538348239219576994655099480326806983497795515748972980478108060151594744112595142516506480082680024320318967432913216702536387243127383844564163659361400852091374075104670284607425398972752680802357428032226198768020486906314461031509324661327972723659573906858626481638733391204298575239677772731756943524818222098635295235545930830437612145891701636889589859387951556769453128993625916506892420915544180284932010604013133440120805781039124995857684595726246931521541593539391774949610874359680971519590620208625961376522261353735733703422447440181527196907944254413745761986490937015749141416968257644030065812284339278097763988857444756023035610285729444989126135970152850182181918878822918830267479763440199991517689614876497715981390762094380593758844092462066926771269652017997740289133337891979192843307113935160667101666226729330947870443148282501902449157851256016994786386133400078802822221074499983909254426343830656261501936146419831494654291067887902738441117277860744633223040385784589339397505341071125289690899543495010421716761887548664490983676051988849082997423229572015045723361948847075625600547393540393382238292375093853339320875890764103327081499295294784144965945378031052781452344134867732542342925565012735586404308193045625768367823984642657814099607608707624579370794794346188701184501375410628313133919276473881339089810768561910176920501089253583240447584338162380156185087812906512207931652838439303526699074061755591246420388158317450070328839179558713654841410318749570616984024796364371746816792610946784331937040727766810958411672664559600821364694028343327420577095815398608698493031733568586801601252483149886453856833159808243478514832456893113583294644331846727620304048248034791240042920584772631750942502496871357206775229047814536606991614705952361980946014630321119861325580824436098513280110058857196955370924939436952313331711943150170954182850859462360046669722202702130968657465860330752495447810102435031495252669379638196004649696567805042749677364381630223071736177134587805096906553816254910232049055705384635848470447336520187236106150238936797864069039968156132857132790593817782933885442338028318290875879620358647574328702488996464180278945227085814095462184914183276296348344941515010534767037947230816874619721171885703795822954280675298112717011340615055452451855483813934672716018621612509192946347428581262365573599357769240389149105019819231504467508449620841812814937377215326222149622921933139298533707302355406114681779607903509033712384035167112004018553433012896226647074987430557987023384535591531722643266690607920846828410595413193772011456899380783804157247219822305385579510865120460549839155835838737811926506371451310640768722752317368347272422123268331807588823360733726273724767368857743219295961695871145411571046275528172928833356919903865196559804259981042440189558956001142558566058830009624710648470359499534495550805384339684843463142324294064051648781907601350176549272443888919720575363250641167530307358993199813233488383684542194009399378335590242603475929346006314318133775959306019772872943823592175859465628782713403069294060408480376049679485222280223740869195426415351329387898576344524100178032608677183247212261509443000184064122829845250421709346604677139650020853869756725205963338099993718125025083602046436584796163008723435887831193511709751853001474852626198552625395127791664920084136628950706312334549415440020680506373364865398746347564239410459954518097377796403821925777913545409366875775024828196013003465711855687918390515745272180687807915057304037310511233282534599018600334458385497572551570563458890709957951754361879864343845527728739488005666329844402472166163837869071798827867210801903233375482925105215525967713093678068689011163375176874459344591992035380155227573299115318078800423308768127869398131884006032169190396601274155750582500555910390744159589421632899956855008799067757907070558424425430082595357447201314642684680573568240208496801451076463565386708529403831303964797626925005718917183390909166327093824041079294351998810773647429444762974452725858460847134716222209215353934012893514156776468873460223107338562664075667190446719476478962964098229322995287804482601614219490087732069459299781022329445572440769072761289571690445934373698416728093637250475168399301015980226452369321683961532387311991468075324340288636482412531412112542939756733687965724098598613305945388259334753820067005917607563216799220525886424619596350643184261873839595548995582415497657751040390473584894535387379292571023291096589853787496789458167092441308062223560419195276306212747835483060495695577310096064707295219060167456775094077507594986144664746140991225043984799860025203074153148108787863774670010585461927492862243670643073375830295461157281866662105145804480206721625245112523454493940092082150616099417220244194003637068212940096341096491733279670265160780278594656412354415562183529994652816988044431987322716154540745229848078736432342707374688388402826412525081437830830366113042505114729483542294807962979754415164992678515278418302867653425915059009883549150843056426344117656579167485182215160638903124795476546963346806525783965922164127886966672312999708271950801909920515875221850002912385488625064866014696323652182890397839858071034521228797957123686108730704354483392914983907124185161528417109369736746200012875064893681145354215252622622627329953922325892324429523682766381963485004752157693823220766035798539083018630630400866690675885196486155359522702546361023050970823325408082084072856387506957265714249649852331160747301360104172965493384621949501657720456409143968068552312179981763672832093451642400759215553873360882829495984218111861655244764560861515142517241779535177132491510806946089149233795944849479715865290406074093643637198054685600179212016407275364190877363415059963215835161735153474019486875091254877540968615599528638874913200581468392963803521824259284902712278766761008482014307035929668414692336531857419932012602276632848312288419798927325748883454498009394010409971575450632103027223683551463137417311170289044556719904077177370450847416584908534112522812794642739895141086641150013569921212742494001430626967034483579331416439656716454816232710612657814995779230999255794153387990653192525621200617403909359927417913701958119043836929204176409249365401434858797566065582232733206059558738529107987074482887035133112769662955236508160176398367810727951059789734357922486567140683392739243297197086554664743017541785710739891698005929470965914659599943340171342027529263536194624722194572471130937613560623513734260827561298513799190246822575534759935019402272113775779028995160226182771084050547612241711407600627060342400576155512853815572815603397133434648077227450384840235781172667834577287249373431892253867254496745225392841636418071508193803643898444246714799717318940682345926395183702481545255151292493710760114404736546494482095056431830678927309198352981173060236141097176692696468782900098103571688167915336838101684176448486204623705037650337695155741824859185625191408170642564100083274902840714739109705407012862553974254166526376959690843859373879914111337741882629268448756220746522620333143740446650841747353705320381765673125151118723219450399141508158596759997674382425611393276984161310988748097790200754973434341163098372255141507325172565639022363441607429690179972054197418166343166992694004268577853594680365176224431940698812618552918651348563406582638790506787303825594588044082136120411032590261695439572773005619053554023069287528686741726707012573646172702794662995411648976252370230628302525688052428223439999447149485029175412484724497645616742743286809943526872126332984631732770460723373900333099729554436683403887183400160937246524573842355352047244616073125736592519297224485712170198405817871629289342096185337937936798822735160405234568494959474641661388742307190426051646399700742807789633626213059973187332882550967901645356207296569157570179020054208484374500775010390157038972425998252628018581149273132912361851497035543189653801803835916643302352918369335946473395276704665249757077658924954665491564425291847404981481706364027006786668597673442691802396306521212373756370124324616277921513429326177250196514913225626620129181405956250097688227352466882423134430562117912007456245165701322417011877887456872615320162694671386308982799757060590138414415922095056827606429519164407913747027938762138167064925403975653564310540878864830859206942143398840496544165429964062888828436481016862863392614545957065681713079360041700581623130190488966853563729780932597952854495782117946538719711789558634586595128147223737536340986938383961988070072452689925315413988225930531900934976031349271838252228927446353742808754834179974213666450121037615282591937064506322554560249696291203921192373453923702840484161704725182379596136104749833138915643080767926028306369187369032469449628409781637586266713735868191094156099412907286670011988032382752290918309928747257291483344502186705549457712228919767346653801697054160525689806797082095222392448271787670437401230906934398077495315574001952289254160064994592516548174735870697039473562605145475613040375604640141503545223597669668442662384365455992154502739051809605632772482051729081443219228310570526546179348165719687240839193531341104012985285978599687799352785114326864364333851933996967501118255338233911434127434334579467398073105902422873963826811402087956562230065452214548877737167553874814790285489607499036940555688251217995447223679671867539798477019111540734103817008102921758100355819970373114661695887076711976491800547526042646747914355289338719119885048984597482513608210804999747911840401760873694036286762906759984904857972557002211170765280633825801652765887957141555199434940953981473145359080916694157637380119313493578821618380867145238872785341907340913033361686652255297485561736247108055992913360001842996781858261574326534303839697515386423403205954977040859749354402267218281154746838079778406298092801275508140813664479522365124468378407396458832656308042522316819095061435744810108175681669676961245098692766377879320941474179742844549753296685727787054006969151565202994964902318388352452129045665223761022647835660500122127291121661944381253941585869399293943614226548565678598131029446758453365437097072118200696736248484317061048138291290445472545095117493060832643480491270100289634963076029038477776366578361612144546841002455200034413112183463005524022380384893762342865658441386962461482063314096252399047319335495105561192873017363728495436761513895614891669342083387957058650213494987294887288015199619406269422816903310273762261580020327221705579310025900400959045826592275435505195556805987063020704782507228777074695183153270762940506512370425531875276444264723277194302003244927894744946292679151401546220123008349795756107334887435053901887371168037748885473415962333181494607593644071119253349149285035732056367225376727177676349208074551073114018889784297074530133066919432391882782148115903579588458780189260854612909172500545323178881096158009459686892239339121683989867985488625428042120411982140305183228470786628414541862646321954473731739561033049519956332717710460587158666586965699670340881474106947371824912204680710742410899800530462304743453555137524081995536267170315673844742062397445483737559613559220410349172689476042511972823073820171163246786397693109978579757186039630729327810040995553404111878335860200427225684257395998813099194654828925487287129638637373020597427401132044797724256832663086781701822136717289831377568917600138242955316561302873220499226548691899091748917310938752337263194004896863380683939486422773715274338159604952307788127661864544881799205461530174313729774446576994963077862388922023859092533044713747019986386063405283291580423174903144963235997974703387216451290609179458762399713141799609785898868735155095490959262862465913764464461990267824922523783727032525483328532728732165354287277400338037624918510010623043347384384594942394819826714637452573969139217898313043462168010508505272878576144680449251493578597684969906826036214285713807358394186839751389001452129384590110597111812423287850191626414344891555291864679575448965373379147592526977005860176734044585718614737337929501722652273743771171080967045550777183884218124532002555265827328015697855466451512848374594694675336422988630381830348214044168851944644633082598765057080953727318804901565942652369324865268111572518476208487016998056056438725729869628640996577809164597401027676048314272098407279909662847592049993293943531729291160862264127720099314985310727549046772211556856494854749994785420467625748873225338801913477407528799940214086171412565271206827906546586339588898024397035860817988485279353039059579105238877555898594204743758845360401830107020079940150083157892952308495498085835578607680816363635635117616200842068222700562917331714342530326017841823320868226023975597376889853325961891873310995938099956290340017708711445093121952216566064810609915272315511525746168721649453459707970695813092479800991536630286379549302879893200852022789581697606364830491837313921060174582985144422448223516906522311735798011441182341407497661681221808019562060358576212465822236202271075148731638155058038368669387565424221420955792543960792052306111835331773600137493709120570096177166982502157150892884394675864881434487441054309685102277706736000904842089033125518020805220732197705370742325384983226723239367798267776915428160939439675168031984774029493513446343544415094213205754647314294174592428375199356330365834064752707980286161013278832802229571067788617723896207084128031399181871609736164371532974228365974436269752481623194050405121848725695360548375677814935481412974407079355585906572853441701229471636267468410509362473831888182703709070606234193998044061806001362864701439925524814461679865224421542931136161665398644925680864865385235872771256369166521726335206057601407993756946256266422857674567518645097001604220928402969409281151066653877567880286498057680238894480360527569649197235214646321294933584901779925065302063150772294976348393057012684979459619011914654171603471510707017420464066222901880756749153197540826244649796577173045513030490319889219273226447679657834650961046493429643862249707944836945051118159222764714170872306207767061921515225507094728651035772664469504659861310263179508292628589046142773637431637337576960825451969856593581802011051680022841257081808286642558412414881473922073981489296261338284853752910029404138757092460155234492549994867756254800713196249105648122093434812304948805058517003119493745606915874081751487920984409424510560833236719612833037598732454916993345781754669755137670325087847121409781648092173517423795257975883913710786501143713374114503522395131730164598617254981172248154143037773768922614223672766825518579384863740178572518054999146400015091464929113420022733066037888173679793844965620331509566277729987989150803307500671780561933618344677316536489086928990079705740416857119075696326471162570566648526009249237091001983389015088664641519618064001217876928175192024230301786241775093779456255113838263017067921426742010914594862887529325633365265518654702754510180791682217581305855950674371467144599124402704688492365082263142832006518491670419941270229658895099343647317454895206561529368768044527462666171093146925804038138409931375209048956043689093899173337708128917713771966080641604687419647748586754840196007549795849942172931540460106846849305426505842845615874053735867452503778752702513210804006115267937516770609740630342498305330295420525974462155714581565314199413529338533372709989728715203883095703467645636981951413171674165334161880312962028084405746042462822364011431572071103993671024319433098804291622445532661657867663455077592523356464298332080152654971553391873603379012307514822664476704074553857071126745263904260010519228628267530075238889239967756250919560306730467727248154392002733137479049907711407899990560351125842717513374923208514440133873180048109713599655768135399050745436318134821659556974262091523814423663377148091098821711545190380736442102642060914497370144931014646678504579893551689307059211629772583140224657945493678278044133278249655650070396567845187872768432556380831513592856590140070026589898709925071689256265269181239385394693789740501837094900710305534825971278999931735311461147378389373350430459774427266390411370247056188564459941487858237215981630086601328511895721074012256122265202214855413646967104624476728444831769820819031983880522730166706033243075783672087420908530394002092123054499761738632620666239971626891630836238937829534564262374502800059230423607935275827187919611237886988207743687070790231829165905259725460033346915939127231435859216667094455760332072573223599927866729956871784215022328435449517210405006785524583889741943237999073065125667805231129827310556420003530132517021192659445987983040643036861895760268342291140884914693558095192865199832000256223024376603806823986806269646065479905946544987890358230286233382193747361930163688079737228221132318119987945871628426117153658776951252971252215717869818583774035476851494133469776989857846337344560006536395890894128053754682112253126408234057419086658926008334726870616001137450417484448959332762173466012100944230374124470494891240944294733398394747797877032010835926509192131552234523879022268630157155007744582962077660581708538957069311526507228668931337621670434248798026751947520534004012623083747943383710015314806943546724291382531455964138846645099621529543677021290130664833559658517745219907806042011646033532333432094899225726306033792470227745356708532710953230610676225927082741433749810352947763264143372153630109722566961123160218693332361608682716848434244656791064217900730489280001731489277576199450495382705576697498198905132942566747336829514633177786669814032347644400326562057424364544243702253006711964774763443549322276217408125364648189461899924574656579660854263680939244478291117769838047405083788256330894200828215280180655227868982050424612744017002254710284500679957703643218690326972380337651903039370204381576253831159436911301330669837702162151488548206223333991597776109196322251053503304393951372722867933826531774818217332270213802210598808810227495609178703864602300922726829751956133045602122773602161782386464499657081489680695657266987162299140958496104552940483428962508260030834285080849299674427372227415164735561781533080941634958023542582027170481847274447790329961475226570171969938267973719106625056891716418582937977968567125289491392559124635187933747296767164897383995622624422703856835970807039413655362343591925918577210699964458861516291483721269290250731004763549860648010609089992407095191260497847536595758541512860312299454280270633955115029328935860639346170526212345453344139959696335443015811422061076531240372192864410572833997289335926292588258656060336441970978680171932153674390401452007338883446317906607174170061900150943411562657798411572558583857065953786125297273509380108476453642523227206146825339521418565390547544173524786573571456770791345761376773845074958116343989038505438980809329130170645174527442375747680986355253936222810050674869806974301309556977600721464487661205596916668006916337777276577252791996566227420374305972880223763980124121135126135211063444929798664951627432651090511346983011441039322882548493400154034065046670388330432647996624226417368019745114862038044703152047355027705351565142620751978797962999229407040438564743060691813073999030227633371282637812008994079011674089207230039526037626010381363811998590693854066165789517425960220286105549178347506327119089890484175442284683169569024458982889338271924962631236270803909297630249973499050257783837948530997605453992493695618391622548518171335243693680312538845425336556685395174018884832295280321687480815209829497117770263011237108991744849672024515324703572748344724634726888406219021470370490902568581536604737081909612755080660220328440406284690851388702388315733166898082614030278379598588492174609381839932212017328460018089031082690273168020282304539380374745143730302859960729374302559240392650047751997823454724447470862729431335829438637050790087865186430964934841858034019177590094564148460570277664215588957949386216882034856367350660235072038026604612149439808295252130645213220827373870590537367122337620452898419548474119149373063408070798378200854017215093089748118018918639720990779396353252247612659339295773643403416641672018898903634552267895115940722680475074447593974363896247931417691229216194980950639458905686141763585571150029498711673991786036083473509088371512361271084807075129839465625094205070473679642664409451317135638096694283391702161563901832044653793503649106263326973333742193239252965309196660770582580307446977379720843496159221423758646327428243043925854899253333154560702870217656321406773002977241067134946596081261555627521734039765332702310529096498685247361557766918934393009912331658429356013983048737056493615761298880178006917994675104549862051022391758849881058494371904686065901864764817935412918372313511677376291924513410264078984243324690311239931607792616317089174913259019722019160853071693597666118574463083875786351996125352234895993910578911460914465192345232389338664443957140678357748014906135716692100592238765147394043896619121601514244470304440040085616242905910767401984891029526444537221666106897158284932474859719596646297256690845800163454935850430504739355283326727843142554872458805625442533048743693016032149193237874851042526231756844766417173289787156897776982403174805367110794311633434110496995720499439273585075413229080988087498067205526047444893959588402809254535121685515626384034993033358834749882129280320161449955051521469816673922712697829718178074934236694127169882235336772866644667613274903303046139312749391329773789135380267163555391610047112281876843614722319681611653958746006157124431297037875657950467345132042531694150826489908047564007833450102765321312850910799743274758443383094623852126754709190489633037832501027405944050095368998873795012545380456300230025042985223465364247639738162438253933333452510771160474064142366557856290774751083940181320135251328662277009051622072134262354276866164669805196132143601726567747502862008023210499527048450951558488644733254843048068628382780038884915481035855222553145395236429545535265758166264567174562851765243309148193619697563630606373184447709805298595482102371705304728516788584811868204310094402263301077719112476387659478705339467919336743727989289629275899877073483886023174632181926239692656388194639085259793714189698890978883405237497930091831251458055371010254989858733141925582219986079377708219816076861949243018155878581190384954542454573583438945728103090516226886325783847983559549631580814360935160777601850057776304614655105674659114722106376110151283778094602701171598286108686829073527928255593621641766160728542583728006400587558907728695005394605897886524964938263663504641704869828246527350721028372011161020016066209706304147604478111693558838604712067907997510108382556147309382701586762103542116459236878560303465481567659861311558444611914172955266915273937904563719401756768821027635660557532611625554179399500485184443610652469996491402091517309678100687148347478005340089814737726114953397140872501429863725227847871385343419355851173629577254702931950146497996161146264781230085528473558972258346337773214446100843848842119212751275169268691178824725515846683503184396387696637102168912924938124860185086124617575197522377267165269301797041200792289546532531555308996460648589571722054427036300658592674613932032324286000548743787391030997008732992384085349575673773060078893851380260158850956862155596127205721118187370826110161897509197066707376640929370290636257944549616396280634271750023608154487264469101039237879341774910332441055777501569931198118027228078197830388753913765096334558892495610299483533760893763709723263498592871676905770028073965453536141893489715320180407941317976476390801820187312809197750792769495910648100924252776070441825765763432845855229654407114086985553851612663668991650203287592898996253808345532136201954121965752465592434375830415242586287362431752499236160068957463195164687757634000764165186958975735731330982120907316618780725878311314780291903998555661705978407222005828713793367280060899484598139808476712736265693930946515300093719782507780618711157671477674577304404239764368764825811376620904655684084353238637305925506361447453546408610579386653463761334550983248943785717642725590634881389128530553248259738208498020646419397197771301161696985569924781529261002480180883801033415384118720748999598435185002694264145124133053035031570262598533320286167077485274993844566924815340680843416644463950564505719850465795658557933006617583575625234033251069395265409473305619632517701950401031728941915760544293859595157651666775075222882465142124502558714506242979553153991523014512059864288710869080264619639248101966516663689181884946384447559080629286256571066022993331823524572707766361144354059643307413939747972057012061904681913435945097293512953368964616832041155639147766420668274009373335688326540000854722686785960658242692788608777605185893543178952023602529743409677327161897312327557456249615649260063553806293490390373717570602584273369538968814013484750718495620152267023939716102356907461274646375715187983145594966239300921374333772384555695222708703027747845216501246213284569691441965380566697082076772005924466708114507186637106593052642309619244538432387172653629474465102910905420058359069565857461863411616884022747836354758737933097821855220544892121954467585902286764167826561878874442269057434894176422513721565690210060476210806358789862379241168804629068453383036635928761073517255985429672684531019165556364031401944522064300992002148965283221632520863634736195055727637417284193176455825675571354843056792384766636385763449604035365699136944459907342314391152347700798868277829042749040438624606952023152449094097158489196199221457744148495115253571522141014350437745949609600197701478526468586642483472370855382448351455688390314896803420198981647124788060076301539637455533532258051291794483801047127531698887697887725562145733102274438239570219350119157638805771497434168638856030178241396555809205828634915730355769552595833526918509450450183624122256079224691378145215558047244981028932816142798818595980038185976416435105228410663916504574813902181640019495736646552436297783302242286341225138728593182614019263646273223737039734909029415564799736487733158982431866628939196964493591733235233309804045745255553427001683954564526416380082004469257564801837069708633126437066461937221325545737938804996732948338937918700245618724315563033934975526565343562839215865759930891067668307901516427199538220647966287194457066954964336672812214018341224109988766442711940676260553616163654873116277579544133304242751522899575499006872137429864607520465082771713294907322316360516086939412333620140615229831423760145615075924369603596959839838444539469069537024521898637565719859342629097745826695613135831199818488114626729473483941862038561047442329578543828711280450178433426900511108358256918442711592648386455975694232694763950337901981493635589907354352434187383566279232662648739196503406774366549686399296518215129125549454716916366181585005829098875859849926257318041834809605793226902410324789467594411177002272565680708793251265407172151665889364247752655499535023092818395216830702505681274958904721118038495285021239295484448342279699554181490646813741210048455995400984102393922766522762094923563987492682423506391826469166872342506090591909984416637155917148742056482505645749722050932225422086163764362381294762416008529429488267477017409550180979163234894418306075009851233672517969981422794955264048267694424505998990237221378221475398527886266420704093279254201016738169398352553033906528796764865760936529048697758981176509715256804067826084158077971224928934592727246400305840267674802579566967524463891384896125296092672650151731549868525648736476507093565452811729717015331118731080875036159993402887620294344650207986152727077327987643420203471208404649107109801767579901022342683060021022588243322630071572271002639884591501152659507235402849613499007386980654668569514188098059807711164970407664943612311935446633708645577770868001868606455785256094659915166508576860816249264954270781584053337120340530979088379681693338262770519653605501472881882317012644514452209041531029598558633408496163603033884320677616551570574570321534212763410094078851534659398881918681185061429801727273502621350299680713823399892140726366321776123165639939289179936195702379535395719094327231723948167305909116128955093375839811259993009441320749426218861088567292746984452831210348351183510116594512747604365813025360953731974115341404995504036953765679961312738788353525972962724736105638045665479457044435871976642628692604069174471934183897609591920594131833404287191103118007923669801496019473472000924559732730225943993585290269100530221685486829212978603646576353596951636841947927262915206870152179073461349083151713891368167055946708475442817447531018102521328264050900647961170645302894814037607973206658362466573798828661950507162083240242135640888609992640377366750362136689809610962948003454167332257201195592622990451781490387959068069059740319785486113282668596563556591957285318035055653791328537533799983856850167618914585054086355210600700688610567236436142962442200469714271377600713585729209238675958694947319648794634525125470544209410757489850881365959594577456460410123085126432875906805403684772996546726373072455960318865455295260620140017211875590409587060634688506961432215857832980728306982291454881390131380256321729897262315840723568267303875206470746762619467352046587906369404054367774791035863276482551976995115826748601281546271011254085378481508186703310755733283828967194266665835902751980762229043688579430370227633555196284886157227677471065731269199067946385310414369536873053917209588382072532976387943159875348972877434291620975144199876546953404758256575067623588899789977299646275407938829597000403913999643366567703738383662580072749401860154330446945122398304520855699823297851167994841119001358766725544735945000273022417510447958890249283604754064324672017839035655079638615719698063787864983052518537534406548892080372900706927172063687517907871109621416419395196183172938056978332239303691183217539093686934647003088215952016984673353648297403207646190206837973048066121784334726599830185893005564632653584839171233596787301205210129802063534853053343122448081500377606291828843171766404181552419088128276384648917977348734553441075914971785426279188685399170532372344796314590658895598733246817808932403529330028567578251726239743619329525848034943967030304582261900701377295249880198259514622448788476221183534462964170571573415119992679101420537978354503451989900609130668375049800727026174496624420984530031757099273141328223885487876500919369308047172245000780169499487539519431859968541720337364232846354019154577378015794490669105722519410724764074420087747896880818305883864390753622752412072645267380540846787457243554064999159017740974558642772213820567959645790185401984563368687764710238631524672958312487142463232600448455644561418630238194949424342355177911016413372803897920515403097114144810070078923517153118995905714896658257561194944458371062239303573732253759032325196159921865815294807327893443461862564713121209930605436868222288193377820427270332507233052262670914986196028617495246068137073175275168294188685511240013426110471024184316594373831876529035652664220275127249800375900775967548248247292082575589850384947334536317262147682001899314711086852307617625831610417460833625688337025928466759535587188619092976249725488983366224869785867093682182208685467683330888203505926722897746176936701723343297981673591522940180846148254057840253632870638025224598362723200761595824433454122407414040246071192191430221510919506232481551973208696925614745426873507779457487877379134439032851407630838162192357991906583979263657312220718187914361060729389783021825524314251875328358667741252252032078822571288091281256989716591346297518414634041238276101097818408686118743672760852007372572446212344650062926180947867323037595423712537365759622930620206920426209359341066364054273821907098088428841202390405382583919800199072385489310825142370058338331688103348640089979428119750810087134889058369786464545436049034259995455057878941073188674504659657827822003389276303892037411249316999541044722747901189022807952990261305901494491348502623672426659555947073306961916079314782335216769410585014171941046830490284714653454853358542545253338213786425869996497002156890200675146185808015724871927051989223197925113055500751019860063413628133083764513600864121219408183830096859708897562087049505277352843651361775019231693271353244989487826191344501930634790189509833248789787752431027491297893074760777827428889906822408569055369737713382858916878483540052885910328831673171549260545294386777916853641277446474356034833164322245531255830845126016574832538680811355584243252762248801781249877864826949035012237461926988245192508616467241328173777302827523296322042553579278405374756502996040786984921944122971986922949037995479678370080489212620856011095435096386948149261538948975974777618013909342127800231245366541441664580067521081576790357084152525931020608451489642912864299153713660719312036313804446324838513041020573181912483887607648338414257770903889175935227181767137414297743987856176001850519616536288502739108963013646654971328772662350645854276815115336674513100467126389828506896264742606271381114016767548852905420077221376407652928445855793243202566405827262643798922878643757764462839526829727564509757964394910575434142886410974592385114925313998632629951873204026237258434451122652697127473406755746036434670036184099907309971008004704803904617718935199580187432378573721829865133773116450291839299349960440834383739585958742275177552570790332616327415822490791621694532042035322118206754373505644552933561569506679883016937561873649450282577171629589524397364760670839496746010578095777181514070268029477568756116269452632087102348589192027532040834530506843902795203581590331014776577644516510845901064592031450245075888082685737731897031143843213318724933000693634584858325123406905675704257330761643566889548086441474609785703934367229348646843767091286813561880466761865279018368279391503554602373706362027359952114231278070454825035998787842189045282319805717702170934586754323654397163435905573778769067835509957019409433940023647120729724846999736194327709161684112831033796531122418427509797032432436280345142012343903983087839241647877737441143666054570344842973924642637200469520700994242959366009537724383792149547401834956556453850099468376836791850543447141154506993783981161478970450840892069312387896437606134616166075108680930875286078719631226332630237461906838332360856278083500236777201781093244750516925475904853154369440536365764101483981762613318818402001744094625763670533779250422391664793099440541809203968590220546003014671966686959004066403125374335147035233633133109391314223741120044163307179601816279842272791176217749081569595851002857781154303558370726470140289991928859500945215189539118605206616276427642658171841043448270540752385374869442746414759348328041845869469941945528219176526583625975707990092483396651973620485041157561638683989460757508212694106842408607306895490814130776781626206404724356760444086459359826385929918676195900718716275635666044404022096558284203097403734916941504541515841065922145996259295862953550321289606993563070252425092472140669033572267861282266042574393065827591534783847413409176865148147724106475651562466142935489316718648710232652321038409284339823284314172136781682801269679146158701262757261898773885244527207125704818218905375429367115637055218729089607119039933908411934891000017351924100280638734780542019525116806334941944828041678552649128141358870675480258161771226257816464769223089335751259757849809403039862482460842369819913806708952253517553470188962447241446895241642551003732865970438357867957545061338621666528200703016766725095314164885833250343429525092918824575070354015791658224594599484489714631724746347392184851759101970509940874294463665162628752135823851891170607235214557795605993783415463286690835462183112990358114218738490219039992221206296458367705562949102239778056684617623245196902542776584234260937007994219154148507610627230059734761355913006917321638443048210233817902180601295269959242188610413268599413330865642725026893827001930980188412316613365727259941546095448923971408552915155003706617216999112549957273334861468880719293939030478552097243820786209428025666231488910707369936718843713422449122484713587855320409533889773341145045797736696418615543571154308098172856330971154554006792400589463932680345674005114162069231308122561861067116871228301526497389853150879901206253847135243689778227842460597189936778579264838206373122056240735938892298042004978617927079567249954341657911322982716970425062079359777339590918947559735960580086554463457634854708137577269884441732605465058619886343750545332002837635198816395380618111512197931076013565677220115547464282093955985935729540825839063398202715626135272857597583369513982031269857800981615305281250076938290004717643413077790860086989892531104981659107418007485157384838669885845472325036314984747509893584771073793242741022304152980276538266835719971445378610269692642605662627301181465403162934720938501474949963936285969180901826869774050910882684276295167338849184125745451825937542052809371250275865046756767744616127075723894003665754602252318258450305496760644810573368222794594112513042565663465317295895755995149639472903444180815504250358508932010620107834250144871193199490016058608249560106454148670738051598283354352961163925952361394907812964249953515370820551569061663188419738104900773339444394108007096198505378005370888479841876958140475620260466910391453391664694593847355042630572654187512625428793027898902826410889649478920157525557456934904596149253822762669462557609492466680098833942139489161206734923836792329137010100821279827143532386572468573400164950029421532562415061502572366838196084214008438670453334280901901832004636274716700947003394641460220936992760883024510061536989789989265680783804144200420792517392352414891465817484093780340954808198804403288094122941132375185970624369934817188077845823094838130167196872834012326577409741579103816476936171422968369428695502323045891827924876974449380184786355526421593457357227301345981663028098369704415871748358929196537842967722278170486085451014277312696297463069327291304833846057096751546378233821105491603439416971501232105023212968605827636202219515188198631761521560891263980671610881535253371032721731543457173966371225587438417752586745140425326939436028416300920390990271307220508774679527844801130755621601347394876009636394401524853018355649237452480427926744844002977894021322523417971291911357463658843277211587768243872387183051223901195081207527661523815791480021962350917022624960546386030012828455150514432408718427094591180756324368965357398754185480577564514915196350918623144883041499836189646410005697369787151636121840819107865680645802137805596783265042534688256403079184686178772389123164003921670921553209003741319842755412942780849906475122831523703353634082567338185911299084171897148605334399060961753962735385224438306942053607393730247982244905775934145266686811021621858676294046102429130628851825735960725625042792454426883688629815175923961651006503496896825596417955798266628674261076787434951205861939816116603128076162536422409933970898600133014951983295712113413922072701895594785001977005149779801880210585604028479106301927912017913615077626937808933026718465438255916486983524971917617045317536340579908176508341374804715169779927870291592766042815073415311585008577458162119689676444461512237064251669061704664368736935793383650472886929458050671461253225829123384576427958560670411990008099552909958996427895599254413359237089065090776343494411255285912777630578066644570792623553311603814583394322820217916130887493969734134296131665102116494898538446733558994019740731989420370070673050070162629439301353030164906183641092876855601811315233297022468107835792373462546585230454272457592993750858920147813060866438838999955202856226790198316482982831032001130377239380639535885205942259540517664268722272744384969358457026119719209839441705444954487684547419182171409635463373924096727368940900188944333931728361440720383265213498697395356277267105073438333228100817121411725001343407962150021711826848357206000805679788584821849629803474280302118088819565277925558409996260811155245484937074327398101037734734551758559279496875156152516688615033743665744046917082155826332294157334660878203718378451009535595448881721689629101040611206030153581684660017966877889035787089790316234170755224202338564444831026762006801125406656884142834219528999219341114549916715335006107051334443743635895586618264267034120509225701427306337260524088623320295506487642127189324924985055113897769826185857426946119340225000823529230109813594988385473395552805593699195650658979640184590653179342709730942218650136397844141408792989165438874845853763477338865554245746821069699834265119834036711018664167033000220988101812365477066422438468767316038660916414682300719623988302111158567855282755414351569312538452877715648025523101527912533146917040420117631995087932785546961984173127934601063250468297138308282771131919329685818054845689427361731110741308398547589464941130259392326483390332470436253190962915457611840309172639721727235483131427413179905388158863266221293669901708012037008288907171803988418048928401499558876921471618177551614118805821492546667355400844165433281730068116891578465052621396748044696527666967929287830354268465023622727649815611782526831101964066087192443772021303051257768815160780305048199925161703216044408285305333295119202853745097863222216077675708765962985784302694043263660312614172931645698410632029384631438706760127664172707257095030941126459972820857746831712380074465186360099762347425261283094606655636699109889605147812702746750381015281388267846656201619356634901336741661922239272890029021310174375496451619575705392991019206716258505154708035754343689442407112680711813853006444606649865933550539122484538819706331106412555543018774514443129967675593617419248435056746449008979636637266448971762880355111511142579352936745827839874692577961355706587616642369159653593610309856065460187195486640711253280524292381570723615918599308071051910753035468081615019814256355051577433691488332248121761377915775202120790028628643078019693443123079076555901541624664960662586780901593595962472864680479658517818898163142032122085731810808154910707896837156032986226592239229335217380844875875487688056513187746093457628053484567106336625856910712144158957946958642003046490247955735290668177358392078070456176789807009082944673701762955728083152776926123327338375492976876409318273822673069391214653009981173812088754786497373829992426198171583845113000632962532346246333107839024177714352957951804033371027134729529015602973253243347022648855188448751986770616493273122839875155553029851067394170892128330909810341283804930893828203368150869321874416898476338395034452095211024665475398842605889189221363575885416727141057820641307155304828410307943173745062647379094648498353402562090542774263051257950085738585384107466111529470160915814177066791804714749722453479455786942298369127979117475769107983642381495296777842030938648344981210245927928452052101279459322319549568719135767446250521166249964610114058937674831530529253361557038205218465462833837254488351919771436643485713336484922490407083252526621005318094183374965874248175692318735052172358290938575267992037947325404773040881421616808976394716490003671327277018286485185058850192451354622007841856903385276369731752220026285136316414823727367732492240092308723715938281939691344435517617766695863083314473608667594686377551666298933080293477683427484062316222843100939317872238003751378447362150971045572656332462448143798426374910536120407492928022600915898097410559198826574686404628536712901057207405196521562374596992651620124626528667873102321308288013418810590769766190397898474323754871189661126117265624795797558522914299736847539379142269071938108652033708139849957764640395668183084306243826912614802630395059230526646536663398607458608404369247999149593714795072033246786747267812379085093075815318729926499867057850565571403386029818794274937464716365468904137587805038939634402457649109135455528550172169930360170708142992220740190146890359110468749093982483814708427182853614177214508706595637364091282997529958651024985229646490879281336907232403815451289543939915262895497661661749494305453185060109161332694820685959159428094472155414723810390540221130005651237778282541038473774420317362537963871897446176841426130164093535562775354689849091412079530803452195708646414399108505903617150489246523979698690647940014704902869438829896997086231048096490647434073599092882052922140433427728431002214483947267155969964912751671000535313318607725443290986941752628490700441751146241105031022672988887700484585159084054019375435902792242799053236184911781648006413953774304381514464552540278902991065207511787818518731819666586731632939048560678525047647754769470897598933958269003929502524949426084328533408092722061771028696966548659768579917170594272901494577273529052429260455876498526226852585794878504305765924995089147152439884039670367377643530965899973673054917410657618552031729900935368897890316402829633621530142355027029931131237795454256501843474407730029490912611798401240026725703338278254452172050315661499313492292175134948520944995562284968161234065780560344959952587876425611632194257829541348677639248178644108402482932262881622136244228908763569187320067726941038714984593522298150766693812240704313482847430636230863952227153193384713519118288990491713168662096687365030512618991889903813983271059782222634626631968555794334836514322461743251676957577944304031901578509097052010267066304398764305979177797755709294599644099369337531624597867859659396813450207679465853905940284059034749398859157297420517957815738871164066135030356120476994612402015477802216700712608931649902027676627474088421994117974824140732898618254259679848436968046117819005982088614011748029194243803055625159739952882312356922639443339864369847878463051745027017775917673813643844867381853806525147197343391140918668843086230171648687269221480537579543383338438500159613237898964633913694880397909591738291231348323744571374601775094367471433480789921325869488200129961116894263268326124866438839825774929712590239860460610557658008971187149606068154437910211790218961360497930481117645732762132409161397486754572001000894069053362593199122907746878377117141647657571025842353853732426334555776323941130675940212751332288863560171345591050870490412283857288180924688917323840214786116260622043916244033839192900677353629827892867841893624260814935832207574199426149376306624664683358564379386200591477366984263784678902403904221614373339259455284400932293411162846471468819381588247187176893962261153706325059466862922042457302358998490440697619801769802321100479012319762366324980779357227988005457179267007018191806459156967019812627188164439829518671184599727134029751499728863879750776140838050437559655439550824757699050444942184374845955896848990426828806255684406159502732497896907201103683365653935024363215346582741636769036066444748248773759275362639112470511791017732258780450530391342577139670558339468667008124629721283620283519571775321204012673452042419865894381535774797072128770172530781759829177370156274018715201975123582432070339794647106628072531050111707588285980752536328567184808838525016711211449640870994469819370855540169284468934867169363927077805344315855265751843433840248464707442756422818240820173588176581444213618962771259040741982482651296950470493173986032994247395971597275536207885304456778862386799615986354352094644192568850888374343012149935061434959531150648269429254607791228021971858809565870421383094169928906269785015316377287265745550348471837053035986621130817452110102046652031730577302999653726958277148204521135133196081668348041646818725248468377818796065451466906982292973598243182017708609843081527896979559173263518647456135606073608764953445618226991713257901663174266482041828629005513101519735601986670315576214586685742244812585525625260889589507613544045489072851685730375723035154004167503248185703418122475911721962330086786146788731418520322377959938502850154178024157082272360097334913956123772836533493278203751395924175622721718164264399065488203562449577050982880838928806062995334926717767257203098562975021240032134381047947901201192191755572395866157886775195241176896532823176441389933855630376624174902327505630124252442797497651114824348664127661316705148897579942308386711914801659022365364496505867385778994803017078747198461353044780093600321655400948168343196928374510504616831112372465385606640700996756450390627852009519462003127923869575372903413281774534077328339673827563517739205900406946265056071147860890442000097595301527398374397439584826781615636596475124768483983127010848665429234354825905861476020826914933003313546510629722120086841600420162007736107709579477563347791369370252634961722292142977329414014626396636797377399343549616566028275972155783865450734278917126853602005205307758536823770031482565799136460160866093371751442948897151936101486450248674179325652512466409670116517431767175820775678133082572862899404013200659090735288179984276187178096853293963389236225878771095396751754782138956210819837448460833073055341034824667978247605147100864876818380988342600817413442813346568368268955195343814591436066557429621897928388435875217944528554568718693915255647791744416134848196315357042035423050117871606821313030982641616643516547331117803825422993471695843085033476960717664668582657149890017273769301695437699964897585971328675595669344317885658893629656181349322912809078806543854077706565797621998987436518869242589321690569990142659607657598299968505924194781129095682474120445339777186316751276044612320695831036581409496011866880207969950951166868051938961922761581459114205085593769621280790971581660017142714270178488860358102709985607772445556745337842785714384508433740254634821530955369134284471998187362436276586139962840876951007854960821243788593384358365756497220618180336269838116622977416353987594931244948515093004673221196640010852452851160642162452009174814713253099717250937881768988725875875880760325795464844207720971857271649670431910470997982314318789932166574193046575933809688294820550770676978124792692552189198690555670924105442933369894365323723257008442099260838318844076598844745523550166491835263666247806725959948223230007093814677252669298348252598332543500843960030279748676519085829178728930332312118106906527913698855766469813529077256680093271478401032094069990445508713009383074048062435490161835555810387091669511933162709523412548684982798943261371134451154680650153003878730013522147065137918526472807742540980576100622953815606631440308401869035901394865543690876571354133952939212595565527115608519329221224908261365564059517178867205707188064430690441906427669662139582404953305769144913860867131194368656376914731404587161690110508341499492825752380215494468136789010248554029813827630685948650613628625914949453885208588448519911767142403786227801886836746857894174382136384973218770397248500421674349449293054083229613941940119155788953476954541737674727326361113158924252991284533851058639661881276903950639093289221559324558326508194231312408502359165488357823325009191440393174733722401214240665930579129941455267803848806263413150216089289407977557837046298487881047893419934107663414388530037463489323929723862725260293878654243115386339853082252702005086173286624497500931490706808302449924038756490956442360694496794330894393828662451105258377589214360135391583515677591805819466298845821887607714175388758999419538524390410781783725330100385377085877135651868328473969923259309263685442673567089381001068800643313283606975129782548381552660243616129294908578616647534204452728335144326156415695234193564753081244800971008904693530239183536578561722805190527330784779280108638682328236859622319090803810117360982670906607877888882114586882422623423679041060886236516039562431174783424442680547425007059088705628939854387129528156899693888651532087660819730827595257479950035740593001478543875117291833816004353857811897930566348191647044279005676673146769334779614471413232413043906638140994012358489886051349510274357302307951054839044183359196712676349101963972091580484124203410560644531636114827805311322770424419673402173716346768034585059335945732561401253902016426633833686496270720140744302137194435610861508998976820899723342098479052063961694076472292470149313082669712055320863863359987428582615211563476727392934659454492911580712480351742387678039418894608056068943284390270081105713844010303057395934927155770334182796351217261535583141124072242205499862351465060679150022381091216929950545167044457256815716165580879113511801971559464831968994559080504872429190185507489894737711192045233775894671589311068405638944200588711263921941522647074746904928650287809092179148154658663571983042513792523944446311161906457829127088824267601181923734349262128627774775975008831769721115172907452489970305806805990223271040382196142409167041440764562656541416283219878417517118280768609571795701416284645193412089132974409293353015717762775709789229741059542872208504436856262532501849666065888316178667735334625089769456657568572949505570249491289818585842915442940863335203368176796062104680188970492310958823426946845599795625953394989213493144696841891269658650362100781921628252963723507594100913841345441582021870208331137200746004403784641228926280026356710083712253784278681816499625370796891093040224669080551353432977748825775575087705245531967988525781096228882871132491775988603715216791175830008186013987199376549349594991235111185328321957771824694877211580552334899017955173777876613818097186441475720227035035364636943677114027622452450673473747638097567270589547048306470447283870489300858335255966358949106131989940071974947847366179157930666676057966964937358388723623696932945280066949008216824240913526825705513282594176983538078143757329354462438062269751472467132155910294560024115635993138598517579216572919114542185641181691408240108064597129035075903654921515364012534771776722848587156699225596109437080339036996798858582610456375119915986716443457185518589407089880731769766570855711794788378081228350169240179102273074733729340803267717571557914375866191763179271277825105079447999004478219719623949779751597792588944745795551203806070421336250484666131824949750475410746225154455580185058249770831961037150685545323198260883403998266850739813790379887161430250337180502038707519861068551819106581505329779595129336033217805875838923309631258059547581242631238830184625232875745205924773775825849331555181852207949091932769611326838652298783134623748505131388709928080552964888711407419077953736997206523261041187428357920810280018461759243507237049719222700001678822218763858357876242256488371094157432278008444085105050832885286515448271594337397754595822889159871331749709070495582523491133163430475378794747395015372851190436734049809711672789983499534119272347320284684711245928538403072478242228425465368821561916545032499616704312712545132704334639729991541182836590087387969982193912407199889964539990466677058762239033824511625580103257817869335837396213234106867345894778241919032959902791435533806883229487949375435576998872899340135099052932869554064684211298385440787730519035170288903325990999559029603473863967994684725996831154264539964487198821100970680685412063750866163949449603048750598180628909958701729027286334086531640828706982698995194266641277762775709145721508812532148453739408607926944699003904531499396970436093127075199570333577187590933667989603055503907371488307958734199544530521233530948355902311725768521869579251097251553848891039193754307213406686785594163556023472688701130873651370661480257230859831589225554089555823446074995026052514832754927242187899796476119706091004864911238572495842676363441877081888792841037971554188867933258448856386746709402953251407094506071355081798670596673478108911507262920551946676877289295015457385715240001165695409956040759420349069028726011473647039253429535319824893564673361929293681553526638434169746965811079141776608433960407034501267910572909354333796084003509930749813174439963266029272082531635837211012806843890781417944584781128860532296857002264828812540340146083961281185743221596181764347972190130149490956534585106265440517532525174032852859076441708947550555091050554971958527967546308304985396582983279810595709583462626625126835079590203956614772898274456765733490038082841326614222326324112050529483831993829306150765820696955160372435139895148232954800527345052014294177916414588898085570734520928823278576351128983581826291203423841339951397471472377508954070605398167453439898924233555345640377202021849942304613224487044134965197842878012712055441589348570320989862425724988778693887229859295163182364562350172425045067075086342764276080851985841416712636427239502938302008973464351277028124952860458879639641933776810977528264693978529590439041090009959703470275945463853277613999136274983955036560738213253313692123967582249059176617207909275979350256754923312943618716389672311985972276744138379044728187074547921576943040619939667370436137247393775528797868026726676534644591608680524593067856928708371809806356455555048396885031169188118775441494468234360732206812446602925495145536501078448926117120066258997164388158465574119311317234942976088080602991953595769895748535278415848867484206423665733362155563703486721805322079541222992552381730361030395938979216215119321829942107412527460638459272564520503615350765778555440819843045219918979004393943316686292427944932948528058831600652084696667366851746101921812431826659819095331519926152357323880647512844159596331762384718487226684152192141367059463465285150533012269037734445838062064946537768407619739066276072794716513188239510600736281444728464334410925810063005099492934866073910858271872919835511953152377836703179792082103850049730185079059057264437008874536927542526483723940712777612597272201690204941699187636746851702797265405106035854985559012462035332458258588540452947890064633531203859237597281377475652925752485055361648160710752173892171974393195351711811619307808623265444876843392813218980457499450870297644832190197467065574054325222818222140968188166393857357640177428750013038480479626244969279094523997111127085749458530629958991107466696385064960416177115959237555475950463957445019945994013139433069493738841886922291820589654458465888525252560945339972754012633538280063180273530193850082187277253412538230045420856463382183746232615802442092101393776258263199135429348993364969924461261890208551597784984655055190613190013217629572355043767457101555825366821659567804169967006424873488566124222656176000498746355650120453535850824106421369054395520254344461165357046692957667190304952505138486080126642767196915002896535168326205415252723416488233971977704660836379600474061463041279282678378245393123391247719304371665511671302779724698308209539250819770354236946564730279026634108165726965116964034128287525851389081862345734913812249603274000511642498745080673471006031912007416047603432096840568249502427957504533127777259295968416447856630175841800750156477834591209393212039637764243784835747915311108249239401864480397769904457597098282492624956334506884788320835093738845561004759320999632358492293054152686154408905233655000716367112584202660694586585740416443025391474955803568787746059983619926378293571422336772789671136097121791234944207444847998040041423220997031269084727593290022160455824105273938620171327233009511557391299308724077558219924009761077367721514570072780774358480360165966970796117237385152607061009750858249364836876185843281547201893946116811088471926117504003847605904699793670229780731943532418904941471815512843434544942132472140749764128537841525059986590695220209270208082081326348070642906244350013944261770439419455985731972022782305452452593114455779423612023181818729385280694256803094042591789212180159516599032098224181213366528811212376737492387042052252240956495832064923371464115830207482577098293761490474834041349009228292949570458503128486365602797927875325225176979341876917585958774788994852582694040763055242744074241839534146074961369127556267501035044845911979377182786032177419911806496183766880460162853530278469951443160015623716508357315546061896481651985625633094913427027419982882825499366439997334140880845426679483180464767483972899561858969931569522268605084408336793264889965480304863035759460775609728813362595949776476263236727448635293283565951927084675916809934813853678083183134796794261323165659509080268052556891710095245363375597328517154539556071578056750792989963361038733246566466785290985595055069529911540559001887612339473823841164093902289249429827186736201600606803172367398093862034775636222069979591412611304336484007980444548693522843841086572504493899152705091997138689883955618559300256146575823926966732472878463055373976110660159204617286507788379963000291384534684265778206548162955431653856216180335736180380386573254571117100696462327896933868241585147029793566803203784222588928718473805537926299162607533568995576257177254722257643868691402773763590721986949576085981750332405697153404545192168131148917890341180868374220644570428260426643644790124485243314227326862203389393248489138138614777922686809015163578127529173592220263913789232888932034233517514378304699798889605409595555516479296676502259838517178371597011406256598875973216669280082652890988195642320872241616885167758917649806488283314362344935237862871365534626661641715679855754515221088252881235549932458825556096765842976049482843497518113440918252812845966271103636532464319403365275769394476226644887767398732681811467162686734584761206545680890469155476757593917192314005631227823589805376119051170375433130325943204187909379400732569440219037464424155052319878677157967363011266363990863631751231559450705864233894439420553914540460871119664343278746679928572532398532451015359772785819423134878717873011878497357605251254715924033392641064022974941781280346947627803418034503119012063906282584201507828442226840046935668114163668306098669880101948175800840481885485000966387036310932401867808864232035981891762469289131199330732921026634133013174337062784286605245978561883533286299026102666174677203916431157758622721715338160018709607719189078915750847780339607390696332397323161345933249313059297808690809879272094555645400010991292710442468620423427027778954068918556827663942881547301902282472853214163731759695639800066037470697145338271984910633475031792967555555078523041341875610062359643960050580220652971655270450925913511270890131738993527573223017302350675310040920616672002584591919273902841706249928660890960124370489396710358176646734194960085185309003273839613479677917828995724648631569318721519884821795973503559593172887134303771838191090473046548669018889317500754337762818780756246073808269406819191836587107292189443101791578066313662477693941412617405004231950284782363282303818302682914724969144533737576633010511751632847661664951029560302629984559772573862828410858665490924022397785260234864273636858891755992668718195366815898341663523858440887134195590675657146131530066323420856443942099103591279902416096917038962873652952330043038954171322005108194888282035379665678218886394958019642855031944034416506885561615586094733336529048608724442902973118109564272380974714506050741738951443637294316363925228348330519735506258086957280326527411217679813931700639201774414917097122803884697480999399214283186408529113697713429674291058182448340471612359748943392399910134818456968674770321471510311065310456998474078933935510665097635264112889268013262434358018656812645283637816552500273567686534078443832811267086095656718855228329609007734780790869474203697253092518838305255489814389933080132319008607765050755365932151940810921390681279319467365129181918483682475398248850156539996731299066253136660702830777800232310657175939943008262717436977104987323182875323786237492959003316437446667069124864240822425157848395792984542928772517863575846139503489130269380742163868174543146174994759470569354070214691994835853378244133991224803063552392255496727743493109051278266803915741330604926283520166116223143699415459555813913695270323300889926782730331444800735728828767489066181526804645626976005049855567170743022866204696838773882082295378128374521001565079270910266926453333986428676818158333597673274145391091993865252979739526144524273838863442499202494588045405198266223330025147737556274499943667347779575147566643295161889712114173819816312536405434117607515524647001686928484810709301100965161971807417664046747614370611883873121829673345677491735103097956138911334495753641150476206909298225680558302016667625341253905762926678771847933018297406611796773426709752724900296212360009571997757729213077871830013323031304720351176071044508885773193571417446213732050947192131313397826686689193515190601453218386234780301075227556155032778919864119554808855055714643436537195962329813115208853809596301637190129329609692171711308784731404482464027989865725805390212235187977529830361198524108936128172023877846769902382495828455163463725985110881257138641435419319020407243418680997837036623752280782168359077921566563324538398186659031996153359327657837522066827845610705013646206896872612286839045915717745980107963326936273465787617450948788606339013547969853837037196352054847919731757669145250537252176742960017039598190904421694217021031634155147745870308718520200135386606684412276812911086628800005017362416807021117737613352873134477300613703575623008608654062705019714854216979424051753076127796105783178662360096824880840359290061116779435330469640448074781210035668116778787664807518242106375388021331935554347128111644898427693373779523330464960231707320852954746774168118584569823253009237563282718292976642909694733208715342597880943561632256632192404161919600852755389933496088164373476633906523832804408842029229653376005777857767941777240553640490350329025398778439034502827190423246193367349913997075586898266994604829736942305692136333711011457322334983356895259142928108205118275124777956509328835863824277392650416398642398753671970143451692506738399504236467888245783517575095545449401753836377064112996404658649157201403299082668500959792578126084007736171688879717822968121951354342509753910449154648257310737991994688949522956995362517601932301463565952982653009421742176710763715696962153046765583239226793115160413156364890058430357795924631017299867981891287003266860472021598214672058609834461452080131954995742503312532341271764002195521783418412561855626531299660821419228498078422541440989116890046227275702085194375794099152025796006281017637555212228200071822549255442952147024394397958954596303557923447703484999507883011217707136969448632541462282799807027268538973328351010553361231464294967508456034970848130742627177017733281933492627432679427133206006783594397364157207043380546040417059625556243704434951868222399797941512470958382033978361916295071291771841020412834597650897647086345676494468261353913781085879228391332238784124057550048227459627672963703624368791631791923693587112597761341004879832990591138032669195643999104158073337362795880144038874212008819260763303645192992786394156842551405542446421638366809289908545679472973693658190498269836768455854997428220578148921436125226021685969580166760808224751567964122961865627698567082594364731925631781140390898176586480831604290018221978991430540880579833183434320162795448926508784764834104599779889227007647093838923568349538789888974099822993750605770861731194437063944119481153882253917426377527539403654566605306996140048440318347027556988833757653697432434743377102966300948965279717408221482545568622563598133401809456418884633117959053653713811683592751307662660506807368544819747245768121158834994325865135672514782215423664289041969685188986425953753924751115890946699743720600363886277146424989170735320892637092538042457574696889031230893572474165223974845502217146672077936288876702780386651655263810852260644517020855073092533768136043963576539255121155511646478807000857840980597019160415977130654872947660572247751069116073804395481287308400927965866289640522654096756443841893542983873763376772152637085296828184331431782300656310015764896456696982955984376772450278825637988204250487478381139956965296563360773731563598580844969656873531903894121223415205263249228906120974419861347450863533211243849250905089104597113207110425544987422026584986745156828642993855879265374332965609167117524204649713419854741607960916341943180511578340526537282565456400979630539537628276644484423986957322522618271032888418673072052478255188205437235671745935992693900778913916880315663273100904229262586831961995963650862753489861822311603149696670570113773155137496395627444166631175513228742276156885518995039492649218797705861281516657994411673071084593642097101004857056352865175295083618656659401923771688658574171776634462573389611722983069250299393189857046238074781282567768720372572387307241355572650524069583393701633102273853886371175139652090285357743572203815404276388695859976382114717126404303699111469320786667150959587238620496570049583140707129022528368190617853962839779751498634990883234973719174577392376694773295919560679798905977167306715880452757049608980792013540358570485673997157026685876755435565776396512991680477569656468479725482839571085320220765634448755253304879118392202496731085956592209153743049765747815947184186816682502990556354229585923932871695445744998446310139688541089195138690270741478602226592493574290381025408479297101693196965125605984803347037257658843653895636991293422094475418211624630886549958076639430115008058427530717044051197833079042449339246612555772896204363045568019273515555322979315693267972499296230532173991404866370323080861592439146879907290453395993429415177663943830384026318791662797071964700775371458893607800519863592501218705055041329452158629405078848967913694346698721337143093098759737115656473510914620218687397385830277587364546430533618078034448855334125475139429383428278070635344775413415827698419684112191372165954826166679397931194675911574649450986657718455417921521215935338870755803983097640968241467049044757643330905145023987070024523390341368417423231124678202193652152765024894124086386751081483619705120972892062679036057148024818941496984399557753355386965659540729864403832760916260749054729422510598806757614973211969417784958697033044994137322668792632665200506144247771388771031026408013575484440872227281182106981432231676190865572688638060410969751343635540130460279152621880004469409886242317039118993886672349670261107350887413477490745467238741458795717416082995378763879103754057950119548506242788747854606552696459916642570187697619601742998756518548486178468086669610057982104749384055888224683947862314922211514724274020324309801160545170924918061717145402352426998662781472271689509591724838498646780142810884146743557358918016408466495553202094590922307039983490504134362021412179985230706977840377929480389332532419331665960757730018956636429639938978954901238168614776303818637295390075196393386144117784737517926907963436035245377102834711834674698520166757703538211895257962600249945680524356089271229259919740504182610799321966745824827317227608552174342497935233801560842831486868535083861154928216822941411241660273937032628946616937760565614581576391163219439705857596924882459962049117870719794763529398082105845540153495140502783892112797517918345912789282131641678844250441774478006161914959570070857053649701739446046552282383498984979463597354535078002936207901549424781180846772786357561166717861041158061469997276946513592771745662279518860433266049900426354926268538379105899083579304764094838623480387166959406510625803221117403165289511244788395343159191410832187826007773253950939947772240528513838077651479921947800712811550408390692882789406360300456760655380921878659330053883012039511514332941075254324777592872427869496098693331648797888996339947912391502070784865513594448702897779154251285352190374843673340741656086667832348130837794571637445302466701923976376979540827925146818710706732797581330410634194911912497311485415831592379188035970622778149563848797727982536348547736519128393113260674861842581419636856625828142816172778678003839161286540812854955745844208477769633507569354770120008913467503566957091404572309599323989014111323427264670057834421800704404454062862540744486200833670412516911685003334720168483042774663618583863115138360469988809042474711221101065296952857718181778622645375973515514087863293748316102827191218638857287984530140800236263888248516011995587525603209976231626712547024891326511953607011216462724193142120572719991810986124821494618861797353695888594854811709896769043736212849842622312798339204189881878071278631475753312036667492456625103909356650973425257439410220840310589163034340531474140466625421042320773940546941284071204470759018976777199701443407485774086917570389866114142773017487998022143471407260035600141008477877654026684901116289637059312026782850353896768585407402800071913750572804071465658226302178241241293758956440133266160230176306330321564914830356935600311985776423816094770485089961408281925060552367111347626369449031806547728777688864203891681177534629936076891251223969046358172125065135221086868249404360215032339480768178145471745374591891928229202282996146645885626511875787003393434818903960235457841944846325151146202139757773330277584708718882362687683395147651488864798844256570446597575027495670081274791696272322948233202837328994654887927369240086262628729352608990897631852118902568426265829871052720977888330823320007756238302429478153885046322341878961703675039820226699395800036502749355286097623888811400265363579992887192210469701167778067115229672445952373614025748095969276593970967062977969511086562371305391911579966576827915635080809662537435765596813008319860955361147453576516387697134155778604474542824055425072539043493920468787521498367010720071625783940943457475966652199004210373351287693294893613683308864408801075713256260762072887396536176176787994661222815342205085153146459968175637662379263511419711487743001362894606021899030178371028200436323807799450818583842556908605263176167163277364950921106309119526881281460898397046971060106616957490555760712566811133716971857617390481784124335407109836657024120840167802052802835481033192777352351888298380636906142201202143244215516798177379977886854309864501569231717213426111439590784154322318790701890443212212027186820653863719292682648371782598265636515027860537599465728146510809996719600482143688002851410655178662185495554623681503546364585030077919704648143706652451619066484320104445898091934190500497979916584253043993603197990699052727638954751600917410185050467416739127342281903339802029630071190350706354530866584955080707532027263125818057060070015086887132121743903383162215889340756530439055324181551190197164073634493150853510488365127640922673440466324336581194524465210985976931375139072365207121628738357887547247952438484220342711523135248313111683544426548193040552933755187016745050869207483522207464970864254939773692497052545361105374841708723552436674469520106457586232616615429535075401372719198063797153371431287889859762830216771257124958158777655206979713537174322325298203452040815399472643642859669007239597798936914479789743777182957508805522433359521397298881906782631695867261890307084846949656773195827511364636545548463693203500328216853803434879650846374930161655133022285801017903897156664022374963782464418671234465629221271522098013248639702423291147915626257774448791725467012815785946222056502330563587947755034635724611609326157579466760115571516221986409443884716689796590509049640926794229040182183117073835736700866160805468695610576296699365578786470657938212082390998506819233240281721711642714310950088559094855464521731758482184664172073422185538318882571596558644296843633627883261874327487120813364612008399110422637021896999289619024097818217643824294464652591490080604379105904631164276055036796686555008850999190990653257834114086439821384214846074823031393408217593261405570830782465628057275433050009108692060390152333635074715154370753626330098767985106483305986904744980944089209810682091543283966167851803451017118637291253291406321075241878262921606808057161579207291007927965344391074493886688901473660681652696846305787378315291887315199280832404930422181244149186258169089774513953735057610616247135437749664144604784081371039469304334071430536927040603898734442443908744571880803827801095654372668530044160418587629347450647354947580170460091837043381410993984073947904369582288967363430592397184739766560376313436929426188695955533544770256289013636798573076104399777605452912937477331774571869438778264493887858926081981931009866143225167398066078470747306871010123435917143490138396837042209692308175760240074606240483925461367272980169705310120446347343232752788169437886018727467315231469769741686386599420460745276675083986458989501531385789202382352434762804039872232746474746662932177181827520363749620009924074269832355653783354481616081827473964978574854968332613388311296732847186673526609828866873607626955975774700295553798090214298923163232637995722287199532053539127718105100040219292847936102754689505279523597313799002058940932700502148267077455905480471855130593473635804335437525936297481620458851321891381949350314792495837691613554053939300893687161106581971316682200616246167448363908865266703478597903564344582907733015677507471276849621383203591097010431317644053333254044415304813985880903774368754944286356356118737037083775534311284982035245932083102804269052188428156523992486454676164129991003929088047232099994628442537140699601718468595321673908285030617512084330063495344620655597822282561997292181997342326200641260608790917430746009276191210691874532968838246257645344120991087873480019980708862078755734087768841482414134802063838228840970023446972950718073580094683160881549088081094058932011342413547514293937151634790476952848725334061625938804116486443327459068327152860485978622256557862666635252714053775097584519437859811827978614036449290817367506453709148476137609814434815576089421872230754077414436341068107068170825713001516458621506043982677002179334498340339736374282796446543890479888842098553159746681463082920605198506632701971754672759259503067312036391062079050623574501557182638185758773859018419343838059335978094493743016646310142996543860545200235510234513948936845939388565368636072212509315274111214313167234217840767605508995078337960099156664939682897673156644468629196207219338669364741477033521077836742068156102684780611515561187192742495604936265858363398157822400837907259530099043834700649118812390548864009926444747260033592627591626738943025145589201592627865202880904223873699681534763515882474109373856554742571265583064211035704788575465426902346243763281689884734808348771741824530446515235108592183814569294098240614018085917422726086266286322216581920952804385026086491635562739257740500582181984569820140044705129890323108745474084775195553730201446091240281798389667693724428489951021142771078799201270454226094609662878512487981217904314092596491683911968457451705816201079530723556023299975015849794061026387608249309761355914938558620936602665947628617525694435493739890222635843732215262520020450654748473813509592308271531232192606893906326609963829765251261980511584367128108012800112032672099350358305357103697621621609910698938126522687391812863239698533153144443665910872761552676684975438064040199119404594839179774450079261840717691750050778342153328387997720987728931376850781898370125011493286383767311391786356934741106726073638667527784832414201208080670385899570254313143572869049750503312574456813526646063732154051801937539551707266713314760320051851260794457373500752281945848011389815552325101492354787328756402850962372714335918525624853195622008982929792869900363055756156060620804680548567726964943392564176752997176765239783815833394477664616898844830647528862426509971151511006507772899689957813736905794040034756391056286807124033426470180922015688430700731240942766252649617230236004430908639810847967712154915770064404996013193240731414786710491948058924104417839045391965390620636296710751766455515112652199024899375729705269076664222952794025506712812205714412657128546722182063163635853036244670745418260616248268739900634096494206866131247350998578821711226260323311309827450519215667440887800323897405770230079016798591400178639763405931635203729180432243321656348493940718005167751982699513648238519529823008606546332526738432901576695921810626589568386505619204467622332189751304564798996245138054769771756877090495643454796204133304089865587139774370656859406664795687736342086303898319145049573079611624687418778312735093322418444362233535355922112802398552051411386914492132050731803851710787670127755311891915319557077396526302814184795935635925972682090467059220934142228850521532878192105948746940064452272498042896416903834103065016904024036496231903143096056518986892878466268720406611497496218698702753768463783853903902984976751178517130811421909638038611251561641576941819638477226123396450529189935277753284967052256994085120551824569180858596690212870258375978796551928686378583137099212619905608175049401121274470748817692948872915488380774347051965337838386576963274770853846424658377819247660871604127991308783593519250603719680372242708222694944970492790692738245099441964088679950075398005466443919544480036152633234678466391679514411000405903065823886796847324259663851672094376193287844596472832076405111374651799742759791259072740683990376840253908080056212469785428332574387793467025518041325422423437499920727915252964756667366241865271933037477855389654372214925186080188016001306113301979339676870310472676561555098225575203126566404478800751928597240268192874544633832342500887182207708458396783833386957937904058959040419408401819930236405517419747669609216908788079438836322289220172883635560641220713993948521776905925655041908854996993902766606868761305226769254046577399533981394068027926693298675578176900993602976374883340038595408954812560081862510399222881256059626308902422775911796497546725693089119082284271690359422875568309229936235260500021460932849920221535128962821497768361859000504347533182156702445311487229171647104799591850514384361818300664210651760056383208150912290838903300040846345987444777525544942043362150478974007813785062328153105652892975972118559593114409715084898805694101684723142188975032987888662950995260767016939105719829125231215109720374497423581449174940482357961673174415148689037823984628640394991373734900229099637141663483814791511656507570157576023983211936676935149194341288354767077971284411553845141921216869174143377927712592100053815932643546632802017201799020584777596219895867414064836210458993608503714190242962258349303042223527328614133373779532356095632406844071765466076345899235868332452375397213143580164765756127410693460161974465723650464415813297222286334376851493587823099200594696912927175132601218174205215499437635912003006305162450486894249254433865738638040710360668639537594966560283199538494232128489494736983166629387889494292625542825647717608323677903283047826470778721713459702263366160916098334225071798104542629701580168922257422761293242389341395402916785065951904437375924858376451923535382389059367490761288983745937194959288793713187830634590150402843362008395635874499848409097454579208348496980911139858636410770958852370777569451712004960171290626925889127772283616379084525336474091212427544619339709288944523996205084344920872690749426458968030224420583027935367975803288371829308342653799488938137678782113341939964480718240494515955434843144838927157624193392620338881410955440311267104314008325322556505755879455549458194666882363055400790356176008423530327909323793582500252571985429448501181335291681611662971605131606821307310241834996032906811977515991997949690792284609354858949057572668425301522343561245010838157581649461377027146240026967683939215009066496384095177307117966504038117183734791574602039841629580154357300073400756217179072232150923565842857951176827099718976552485296632315031480567409503872588326309668770377295272119421955520975113949017017567070196283934222541607263264407300470583141707340547529902230286864073702486530148966632971916625938113960226438182590502745608671690931155337859604199557730726946511494821842500662024490795714656366842153154476607787273563498430530918837272173548840029007903698403774927640817657836364847940985035322915423117576991044349968891645669611740661262043110384892163253590634805456119520777896688475893785405635419535003221065047712843582355441210700397382231168398770758199513126078804057705636000523841198254674886157811507759853665017891693192887679192468974438247166073109642870663726384772856037093913833591334576739345838504927302037782716289307442216438387964824605143613132509773557163102933779944208334248571448046544949561956362959109412945173381456859197260752541600765872003591088289539759627705625331187444336820679388380303354967565728124701001422098783382279260485481371421759595802297172895837204308593649103202505928802290711025999418693734483726825956135544960599231782313982399411331957077608738828043906047043669320589817067302767544810937183984073412857033193805260307664878705374752839894942643953998728892279013417432256521152547648927612682892949300070152981376010016668731409229673420826595783807846680967602579519920908558732159225802365671784747213078826639671118559593525971424864323211085952758181175488852066096896651799730545314451051670155787826925595523230692159063608898173738365731236544552274265964129678643241883490451209635546536585673307830768882485296524336731472550137138425509794624765106952281492457006347774011352645677768980020291239575042016866483884375824984995311453818759163447008918299114427491216830713996157760525547828489628635663076081334393781467229804841504072564390261319498889231487465567562330605161516958994964424138799958314254456124614833390728525715306366187666466269508655293323423505954298627590534459327321354864262681009676641508844448714066246366610925272763296691594228522703672208418953009601146130993772021487971678533470289992085258949586527789269426417743386707704977660489902539512612076994340135645833187078999363131636315400257982439014253468735398992619454756027493341090577594706376500136476882698339931585657645029898286014149802182596019334750332670102179332283681235131301035556981217623562720332310670377458118894016404959317467059227576184920435776543821534648422417813914399352682493735889069695637843431982435006771849474349764373670805944752619542763866239107196359347264476898945615955156861503428529756171269971661095474590234818551184936511198864090319062549586519233834240845975237571587022823688902342812444300791941311284933440400108463926349535598877495488664813783965859713232147553152142034482669229667114024022141898104868918263975744875638414866715849203780766064863605517573209795784537638597902376995399306054981443936757269242659821108514643178642460699794947191324606054465847372438510359852750081512947684738883688297983710901362813935472291409870744751109136703091647471279078141213610481425054468277716355479072296011175707441641436473434907952141564211001052751770906891255129234567716410228547265220934832992328607617228525324702554121162162994239769543209609643069731634118979583845619706645654921513479429170312300261413391465673236443223299220805323776445648015441225577363935878636846222906656262985342153779826144739796214574263247063483739231062310064844978647284813468266285908404021016004416910531132763641264969241496432530411378039741525449400724977004112103828731445031663724634029831752059446501962659611335625984605379323923459821653721060873476392218866131455394256294474567436111219154243072869747302335988826337921618935871676797236882586537479649782681586533751309258204143465587922501253328689470686366944150329552112037465060218388809295235134770183742410946934481609294974140524156499607107408086959130381013091616603738526631081021562153753598416555423945527590925931484946040319942620609943145066287788047021607799817255100838914477110106087648695626142093540331524265754036222981681465910637884333938172414650614346980349372518123348400417057324784257975543862757787454484994896169329770683655517627593603765965304781743961560999346213761485559670041098981674893398879240137601650035683361506811279000205824212667777070933313285294240808915592936231502446000721706143033047043362306162531659132628004140901502429551568810240498408625548891680908332887452210061681450525840280617295823204264781324933502720541757805421671229050463503527311842024483864461438493829765819839561439701183143520070668486530486575169120286918430511047477370540022705608747914217082509104111704591759870301878659025165961034559967361426930797570077364085807211172687758731834871371570388284401804665332508332734688987695844938901557880917443202352983763199139275189645165651347100438404488741877583913715987602223450907197729034129627849046694020008908475788993986285447660760456111373373624041326566852822982557819821476150684849985069635477465199440212653715245547452318646819777351710770561279251802931452552085482954163574781491200951157632721583658931101315401021377529130222833519915657933701377597663511059410095369406068428846288330162683264364058983592809238874417574340296578189309207665763215584024926767324139375732734376140364591793464000573848646437755721410988859736117125260875966351669542798037983082674821902037722927402374069103720818121083739213769434707665476089319219953467193691011674313553620961326164476145456306861102529264527446177526521866785082969819297898352323721649443195680971030125654582816282286085029602376823528182090789836136768842798812446453002887439858664438901060994226679962697488429237692943486501938605811263040948959297488654615166169117934639573762124834538979400926624986249548614389318083006758818285724302693134744417242898489382473715933705709881839018977169980196107941940056224877426103014723134185776294556999407542700765590992518084640431428972052284498253663716082928234567783099109462417276620556797090382274901527154837123314768673746751985167421280232466467829356724818857701635582038161158597300763237125320066786187175347454721004726655664133810443636671193073801810974454476260479701895615705903662654620166073467165340587087665685348387341286920708159654611216351633818601430948432092500841803439138594594487797632967178225511439130221596670136830032682828596137764440586998082886168045254739072446990919047132114542782553420872179938643518433292899616279918206151520487666304115352713576322463449693775878396190735504808190985211649196260890586562618235503961639500312711467107904655213700231865799195961653347572731125123399100817900588702320754991488761076040604758262618401872523926136863377396791075965331071409827616550448948691897676839588752279911356890025859192410591245202508933202488773650379311712039330370335927088969681096914121763806316945002627504642173957117727993390535902139798564817237698069550476334826456945382861658380958164005113904115831269751339738489609408730440738248173921374205476074181889584694558290167235574786435899651865606318234308723815385320712199887407263195858700603055323004991064809527035052932576004831459188746928599573449084700932894665798061039375085500904253742337491267644475376862804011150704192600656595156909033474586763785713703810237693271246314085284909019965855273406581266979920343960634568240648405212493634877759345098849877972727389558923416507317603805923796276044744441706528765929627329143587508387161892493647149243018072130782775976764116091973934395209630984675346686261207180000707392457698035759008993718501620615353052089400534628069541884964637431089038771490409572816300672316929966902942621621038881280236849272527058861886074412161882661114007184492795675796843038335859853648412056047130199345829018843108431580668677772569293459876674706360184163962420108052688648625272980987658708846124487906811879553183988818541875184268471216210555956088716465056291230168087646324350849068494647520526340122803919433660001679966970835077725629387948283533149664842228180617272295094898532240275007932917086217059945359013190094643674085311449316232491347745073612765696962067630324823900212466822295143171925914802716357873855051000264951730416515859174361382273635425194305899312242055244349725972323798153261231341915658373698708812079494024170939980810935772581875291042766604413766600658589767644715043069876357504065869954220719558777956322590942122713090483056612645177021814382746363180160468430488013038463665373263539165799285837180927607043973327289773714888624883170042847744520458976196999777153124097965281109411768146914891293636332578718892853179209120584560270545003387779469592890282844362443616800054770427454440317511865735559873412667709156240852288550272924843565402617403330078754968322975147692252087638773658455205255960810966616989893669339661502122203376571935241869656174986516492662792061832092822888444310092656763962970764824353694466979788517041007754793409652298591158251937829627274970016001477790747094038831564568416062656882697209135183508203419726349604496030721104247075147126766883368288785571567135217843693237625707409492558993916963724799539050218792127534548742139992486772102445473750676277550428840243554824612149090921921684784968367086716161664702463590518740869750760455423233982632172591818556911797082924870615245417002607908736282060926767965274220004527309755378187788331086194427596156984795539055325092122405460350925447153878718230158627357760798713048973654123258531684576704893048366735643694261284048869104472375833306060253414796999575163050205769058825901315801889689108242871797342627821783133464899652892341209849531939540923150016590986207868795607900030805897332937605346665095406073990970709875649519286232058178232275833675071796968125009349176640825212117364715550212778901153395507957831185977299377044688433134674800409691452907601853683246980963828964496281297865095539638094962575431633794204766253180959434614712532889999342504238463643220538708252330437039928729280055691149659856719824507004365627505866050809626411269558229172043929526473575443902950901692601248200871850274135974213519788493073119444737779398102995970523853295845924963088478065225002018435887424034017821993766669598165446155750280773905408262591436737617010475693247702362556235250095820262587508425295885619812922123896802954908556077568415736062262893445724174684974551453469440634247877434763192005684332751984431748107426828068972913654112409946366474560764477586373084196905342333249901837022783275264157332063206389492597723293011818767690876384272447070770158361008894655025912745381424661275171418371139054316868788002990323264780747184417628577989903620380792744108635719537590295868139763257697555083108023845533716085361638463925087173986085998137387699812941914415778514389599921067119554232202365756151930930047403942288241343630877948970647856187355527340688472175643800242607549343485999414172076647316615554380068955726795186012379176055671454756519642571856299939723333403693903786286042172103859286510078665996483200042950064716980790312527124001781938219585796248805803546555825584664447694866950549158241482439377049444723706881572148370831209109258830227830565506048440506127565794631409377044004121520526969189819919223318156327597729868223493343635327269051812611807269781071708852192222530171041022442434343391369311289429639270706101512923332306842642344012449197643012686140676148246378599464098086900249248062992627811608327554445624505310158608711998792419236015608995064584842468754012530606901189880407116155770886356947987394134916645742515850798860246430847085158577686218761865343930527188272537724807656616154910311805131163863876105371282121892205008777240705992378675690514890300022883590135776765895190106787148142637505242289472399552373646357417854654762358197831841843300812889641985092227467301731772607235528324950243178847968590008290847473273422961753225713192285297643721852080969006951819798682316162665407972487119665343095528712615473329665729125312107435295074391702771579021798972846227128898778077487579938897413224548504285471351036529702699563846976164723030350255690042337130083103933038468555314271403513150782563548516180365375261250827047795937666435991041311094884975940556396531871776752210806867942728922781323378906751129796187893418028562091219794338561202599681936185955099776706859625560420843805674397866283026842750611881577728967970794376329241351667754785186456917796153471413733671805479395484912898247606476363816276238646023166106579199196876991510590386815797604528088531602795519975024994624794318986599985525318165075820892356800875498867499822313825281268454870778706766439398633016493483845059148894219772176989075574339802164756552423414286800913900379997800752390068803589618037626166063638705836034971413688549261398651896314083757608853372857869639901356830553976478077347776605037774987099300313410282378504573348265467627711869615765518647675697616252512712089624509092267895934068970879663698330250347499270940807072125885415658394725401836400579194000794202180357027027186153860487631109122160452058429981513745481744529511972795251591095715388382064057061701184542661721869590557655458392973441889011842041178686719607188306220572524033305735422693391050521013224453127344172307055640058945080460965221661846828997410886475150539141672790886707324035997803005028035914795226285698377943469268720115239051282201730097890984308182515371010535217101268430756560146804384451257691990501181233841125088476262462494742491369911794222926998987375377785424696270411749787002090634671498485453134614348139206776331990749081544672188005032620971823267116732013215137490352337625546655006230826962822240634753469104459061664709803461611904836532097681810446471426047949117375684399101557771922674860040593055410778812678170205253318948498072603795923770869620084793906574414428800184201863361166227270733342358017633567296806091542466100561517433727988501091199484453360369911716462683378597362233899548620985480474773365937498721114843341227333551150935332089397565644615411251257543623627173219753627427980857123309023628759113671550945014927428857190551662986944324491060892749438568298644725759010756683728391994127762737494649056236847313743740178846530984218638661921648953078332726011742867125345264310858051469185805080945786552671682197585075026220807138794087827669895096482078553421165246827313805222828778936317749735296081985601346429797082593840448496165115962936650517682952525103974650776328351759099049915720829884736487220538970372425572290474296276516868427329003419314885212600645555497810392104790248739854665393814514836474782356980029699844536101062382459961255606627061100209193705093302313925035070990505759964063694240233789530244250474321060792671327168820222054756692979133239031396306283549713135885824623626028252218854341768525494438641257595630649409891350738594920358329458408982103614780350809047824771108717306076386873491607859199746225639551822652076059012333989256649807912923808487012431838029788087734434200205930261741142369702857599380811039489234935929052140872309893145865493974935801961403010702410955391348635768823407852469187330626305665724692574283037883821835198655797787091550459382125610887381845088482521097417194737876192370801210121350868061632032635931712231034065351188441792654340779842713873183933264309849042178330902811762517452629177609536610499109966742536290519707832070791853634575545641098451773535225846741855179123008842720333678195946365293529263420518950645972772680298754289032402405434864729862163469466972710917736689215326259276585276290795105270008102041327228444808105369849759156399428986139696065559444225745801359844088020641961435188872992624753899118478696174611087155946208607622468900868321427509877901019704995897817046599998520132864202630571552037000224209359028834469189668716946535028704231513418331319821860193940776604325111834701544805847149075088020279555944681203767189543327901485619106577892638794740553939408499387015654474671331727336496658422885726239038503066689411179547018748725907107718643884581770744218360026504677775222011807339991537728150243420098965321029898465167974400330782524878590640151455685086656396748002738544163366649502175359880767020326265187707304458304088101172794341555640470871025139983221728056970139819816969178737558230165379454833493104307623103959277021019371171090453822287401903078379942424913990872349224765348143597154895460329413959370739130131195844222872033102528721126893015056853419178400725361121970668648457907754579246611793701923245707602324976889434388953370677429121065183930173580555746660290965803574631253656226138465104230274974860640581987739269408037091381593076807366552350123238029692332166790994649389523819446634386472561897139832075784871117201718772915502611666368961252770023391202773861764744955352227432228117178890676970260161881035578318469034275393004767401881006578544346934168666332879805151654411651423936145059431304841640567851642533023441697383951045331638386734323406085287771097628572358075755932891512237681402513119478952096338017741580939619451332757995461229894456915048379143920027992454743199523039299607022648608729607403658119875484408102447830173325288460116467691994278542612638848209652288568319004289940229874877870048773457772668385691720806516076599548290726116048549168161996220938977069871017069622010065166060045730031437147745908221606145930073563021738857353403893173811227592997188669357298072225161734591459267565805352249444555235781827132657331711259812583085275720625910446948129674548777849286704499011142221545962366641638222320132669362424252692835451250957554733752578445658331635863871279332175257052477265670619678433675456119203616590080785379062945983456460615993962058117917812152902516642616612196160111361536992223982345526800888492892422136827601872307446500583067060375567883658886036141319341231990299920858377524947989893798408257494601284849282099798992755307445416069310800189328746189695485438592083856889878477967789483883972488590083727457289667522165342176953935175809621731298129279768639737062083210159127579219213071458547101611161781926866586045152595047612817337975501264588182859667855641595165698646788532511164101915471752750883836670685507486822826130021942322133348072287903229789969927271402626569974739890323404265643917247305938175108970670552321230830275393157696033370680972529838793717358155624067603021739802297090625405698694057342109747244910705636055384791029108967993487580043774509452587984581378604216308516577153632634302918217198776746041381609205926553559026241243567150974830232631796601808560001555187122019832393786814190063244940761357616379771674486584401232623414677039658905265335119450053138856742948137401662441147212752423918447415085079886061351900315081464332971541836099720115206916089148581077425630874845433108004784708954091298518258338609739965139681885173628215141553799219547459328921033966890934836828633078244748242474724152532087088155468706836490709188454942128652389770394321296706545630400772593824111056519682732182056469021109581778147341945641223385860390696421274753944816033621784319204725892230926334188679450539535523010243701496618831573687011265208959924223200510860245761488817557076369420389033844209687427620365636878434514675014867143464885312917411948558385472778033272652506241880000347917987076124028545064834753694957123288959009857536477111387873136943989678721518107365330627256704025513329034250952441261399756155956677267107041035767691783723113908327015121897035239157932447681956962970666656845266648898251428441325468786580040284041738778623423181763930395712434439426577597077711770813803333354912826558631397001056658599948510350932590188291661877434846745126239406892625832868901458418064661084667369584400710896237832821374377153787329481788580312980120290982769923575233690110661448037858059813192432621538644121629844566992831774219217055887634051650937554653512833968769122564494400357955936859841699077621218801988678345317063163751324143046786903534265206783720511158249492599663375459257109606961992648386325707202585817271270042238450704206382935952699839256511897272372705253201407763094978853728610345850562795274663391789962846457666818420682138254571370986727383129655334586695486466122435962730470830572182812996335923897190614185875739054588646537154946334056347389164744440579840774500796599383171929160443569441280603923416932118215832996933688109977620750366885356064973327923696139274874705099040632956210788057198475949309774865928564716002749823984536922293061637853482776066751440326962177231121621287851187936451520878261644891720818417059495102712607490200060127737592993374474823840389624227093391031769803886433960552208729562249336021368379093490947625913491228441101624273223924915271008309613727072480578634960464304721212369968860481551861132605067457083332440607749510947769031540052844919581655878864395136645113927176421755074004491314495528534752580943126499408319404064004186246130167641902482916290579451885281489062821258317036213923394905729266747983494200235525872791260283486732995593415001199624983079736842791822284770244142683374094645447426491920902865107211232884777189853065339134123770255880478243017127687225537780237404478076939649638726513831746515852929052898632360549346702903298264898782934493627455884836642993227637117796756841311008929273911158200385339801727394540739691650754162734684354297726351870792309010972035826716748266641421357627852507826627645371697185245431671698551834438931436318823758956935650299471564135231613627982350104640594928411499184823177761316192882915479912283636258570982475114177290510502971826408351418977109203648708326878928956900171604228478001729816749873597042148068277137971512263688644508089654007056284391550563964622340481801325589909876785487581525595557764751292590318643638794021853948009715808722532397768175113258053954331060722740288857783634573528891451313857936975227564316879654964234563773527629694092085020475351738637255610587916130195911930809964485358269406293513745841233346378751612792949243447916448179421762570313162356054781878676065919947999585190428441852006035109503160779090204132141732447381364989763672840059476132407937730356409719310497039979292902721058292930637415478196311410929225229264223100325758629908920608503528311922600633361113572504763176418281875237107819512099309002598640843645117966166420044076410134075642237302608212287644777879063768136594512230553527724724135013159396304481713453066127472319329228874493884270241889939865426493824200827069811436522116958616651139339571744676665392763102302070603548371536185232496736958703347925968224314424512174294581497024385641870194839670552657392652943167907534587324404355917695452080371719734032446665713469054802165627248315868369253835981370046353159898350841343443811463502685057763091909174949287248283392171556223198084783455525666384471743420440959832203185157510204680302973214425205535541160819061915014024712182366833232707855002698513662018401938484308083462025425273400097565586545956052454761932521805052289123016653045630942762362576979480797466320341100380028071148044872326945616003435968232756356069931024075556590207006927323418170691968264191836217024320372896547108563422019482860989544265915885970111522777806003432881523922070433811010174640299647155630814543267014842201371930678940865720773039235663040843794042803422561234900230546558413271609369011061665628240756752038514873071535025880843595800687053366146920759097187471121422784176780912506541292557058933756654055008175658691381561371030300414648500083908971618063076951441647731962756712173964480238180807551168922649442388031791894682466785557114684558811131430387323874474811209993732712273370971099607206645347858947322826986580732951003989437106777067505855959140429853130048660790438989983244736786291444120538881382066947414146589379613517664305822601323345201707512846584719283278501263854226142047231569717065745505407259733278475292643074005775011780189431347795152141136514366744146639119790263452099431448567891789866909270851432474737338137949927920670128679111174370548428826967849073227894427363713199712613745208590491468883869304998191591776017495426525399287288645256599355772622133086432993378043732776585189049038106732721389906231658729214295020871616065977083186008331512264350241626987655882272109767969218452992969426662463378232341932822115195057959482122132315061422846098101834363910196069164747361130565804268738263512497019464659404045004849654532436483081465181546866734627430175311327593691089714263995778123166865032407527181643583161505456584088938789574531488835993569416956405268987116117627170919793039990592384828169766206585728333097148979525254953730082073577610764794108418049733629601157486080379459015785933698778365754071207625875025789498079896853091822870013729626688018592241131681403575231285404346488518333962664667511160815479169431669513384313411824838630033365830629274656330339580756878921739417150490632030287794546951594252311012192497935844197264306896430420584764846230827737834034519934362469839544477972184484365884715266518008767833140278490420429405099854642580323074329212787983930995870089474199192883096136058310921219780659048760832559550914270351102446835318071295352322265184242638012486722357721570610312901222166884485098903496989533812156072058316500349951711118156366501011143689560233078929836401270569174686005294607977781322837431217624558094791715387050753859482424234174670386688549060511789986796632939097936001399793959595780919745431594205405968466299305055237591089730470140094878107919334461914112428589077987668512832689389863362576798554381643524595849982389781058977020370481167249390921878910131049673959074695946027575644214133795896724979065738052093508542894081384956591166742965914266128586362126111900134457963192135847240985380013148128647240941199487320546859986277916179726826024364998329697166095001196743303186256517006443456563291581320093159565291241046616705192186521888154914221469448659653922008087354614130622560298119009426168934289443385409628466105628635178141528790035218061949322251404545724685750110249323035119101416592729013858114817272313118721748440109454204465125397417496144530700317519599333987522607148838979020900697993738152901570725700608712058401873522884313580629544484258135591913510505078424124735651776998998974871038949770816347401060366269202000087271758798137560531138891089303708076907731547110108271232625267543799195166715765365638217431328674242419756670842735145507747095064670162221177494001005449021658713457029096731367409827230403049869162146599212047565749711848354749877209935185640087088316409403744960899769115726007959871477605931916158885693947754450892919598565092196203609397936671777733057187248778482787556478805907451321998803385414029615749040076896535332569531518143730443533761357613966515917871407081910136095647878946602821069762005429914102054565228848625693880105718109178205111521845112155765387246733432302486250331799477828026751570987104365453439329725072548515599396998178762316792845513103135640619243248277054321849670653251972133605709267932042669092062779363075044225693861429212781203212606307059663475006190655964253596325636587816092085321016452293151751392814192574623606998142548331950557176525449300617089157637550579346895050859936518363885290833750589335144938680978380155250242592979808315117207356259333029919281484710339016983748700199135763007271157079850635831065014046100840968305656843585944546816604520146849061385347215423860806355189978749387060296338868306596850325696228503649197077805638329772762642359116211888358218172847198165865297838758332138738552980506755832101363042344357697857395404952386713520499663533727839319528879778680473403315942745929017347484987770659948725795325776678154154530705995262899610055878944857748633384506388595900947162136880716999124595715475531475798817586142193299919119462672724638621926365441335344333274880038148036144727788992313339294634986920892998211523358368982066428229259131807255147798476937898120275464358649521249845114411832590686800987317650159107023655654932550601272481235891779869089852335202619316600023837897728709879223933792087928403152967029479508894028730769343489767347946985358790685593998514735426873570046428104735210205915717395127118043914598022477106101935109752032561791485228312805486156037185233866475260286451794535842528227091541042622981351320570086330993192200115248255673702252479905640299395475041754447936848851784858292564282594030182782276152957753476878155210188978162091485985597177262496838296826050369374032398811011064923675501664583487133392726260446339121606783935188574156214291042626831525517237460533751677136427537406132332124709733361948245115169452375283520103616402850560954834374520797300715067973770641956168188792445828010783514668484359489024134173416781336032513041560589048148294383344002550654086551980461477069874024548702639929694324737470525417260365890249133233059574583018587462047984348625330984122439279349402891565061101863788746931480840791370704419036418541105788745114158002336671467182205975294388005765864070409344728035482888592096143668732203959323377607827866510991687245406835850441933528863492165281129348199682657121924882570161597463393449490579637196959737462040602543989704167970703137640949033445403640644397705952419914936497027717748711855731962588725076552374769645642482489323515162932483968162529353529603190573052887275487845671844372007763051646153646543138896621662534059718829841836912032248438283989705150665104090277294255301801611497471976576655096359948796255883797355374097655914462607593530010248141464569075457138584204725829873967412504348645901351129171123401280362906712120139700704835930896397144308092210778576312660306988775706159874024492813417331224047930330562013501741327653839246025583257401966994464172762030596215005699681513877974013434330426996496376452112724876694069090031556891513522579798573609251891268107368478615156638398237939589126704028706544143564404567088120129348669609623487377552553203079572848362840639121977927459958088187395510611062106503236348114714788957748722445609183239334600645920162948990739829314838770638853011157157044739003565146554324158505273179615058661524745070218841526542789572545081400224850243612593297801373789855282563118275977852616631698635359438213189397515328902810540336044515408933620348226339688133655242037438759720562066326244885318401112671780893333522385447779659490856433894321902103369524274074230728224575905013995289019293627661789608067324132427204820871667606862548598519638769387046035969897019890220700343537819566263979968009403278033834527943179225759765378200508174797342702329195028688247469068566403265857435287378012016867685966782996611260949645103835126383082592655922765993466154616418929005742615139418388156442425182979476736406649381150194535548019166395452796160957804094839543853175738105378442435517709793424540931469003195313689510566486651557305085367778586280860544467807920640157852779917982037163962966564436184270024510552566595253206623708909315228955316410664895461367732271626527556478807660377020132728552458890805260716563532281813773457771717963925464055617589170343840915565922383199052417258910931415404832985614543837068104209037603774571961735440324837323983659969997516423283331530316796824998494728911465806907389386846614932603405951980178974407307217519941563396074168894887830064195370563591084732292572073066750934773633759012626255865715509581960543206217125845103841302534609086080207632286169736040743689259947212966833403140209862378684541609299946724833078964780666235931476378654966662024561836116485350285259942593201187719664094928204344767097448552063889937979310550064937726774107857561903862512154390370714838683137216480632563806178491191752710231510171700364033878787193048880005080329932032745936297554270648438384045392340178076965532435576857031429672207016378091710237772274290582343417527838813310797358922085779218837314122128672062474286037656519279170870903422174999267715860246475879339707273881608197748173203831227899808940440980615889795803273676666167378289805627144358198947968235330683884670782907887086601675494016815321887288571006467699109137021711275641265917309147851521347446452533729646827272733781767306814034262632432403912503916801694427717497897594999958975874708269878249635773586639866265230656096758548626183047750523129399856521667493402167558426185349745517513204675605358723171913192440426024843793100031724048600687595979560610630857685633491096270015623356375709638820725090767854581702185031807304000355940842265678778780706490261998994857300763710209347423387835866427772414619572684518659879902767285123742857828512599903377388231041811286436975728876060155714287026764806204360684113681966341638786741482446176436701477563586509978128599103408412682877287441373603711439435808161532565635878186475937330699602258401167460412010734090263956998147952388709985345108483594213011405331808700285522959045722266291580830953220397879242982817335167845890747232337861893412568950777384892361839535710387543920607736595491275858594889633243616160200129550510390684790315593229221896709203063187077609361982502227761441959502146767777327679757106693939481363699561098823193161284237147114748507431012133418030318437671432108745166374895859309678701632207729279974150530043175795900118150890942802079035731536330327862710273281317518236477919783597966552795493068361103354226244105394268858686671995726054801046506631611248489015791972102753169741691835202311563787273992215812340911022696949314202795000845015070506589328393414811563112957843175422985110225505220546910619028783698701587345915548079586970684770675812101030974225389380318794244263385264110609885892878543009118435369170066407077518859310212691001762752832767484563844963337969050979421940402465767290700838210311500571183611822342527756619595513726628716310738627441064159132620351414713488834459934371038389890762088972796612039029928318059563757167145410920608853940096620335448661539043808172952196946570600278056591787488381959614104703271205236631475182512826470934650258317647188034274658357926600713908095997799413642571972974288726795907611589611353343251599085061560813829664646781505775787739759924199798621432392249090912996220410656658968597436866227596821275911243844290375075514141630720362282178319204820630589304764686403930532537015178201679824777572815600223853443605654101336941364861271486203399078013859617448381659584578207851846495612508844998274984717948390090116104171335375835927998558866845014344731629874589122666633877910854055521575084234164144099260887383201440826167880851315113732314441167877354133543944989472934676415799602267306825464456906682475611605247915520736396141561637380666086134600178258405295082016567549439367882720024547501045146859533736034215597114588306927350435650141900217072320482361849777246246291435871405243821285700401999058224624556938484720987872452759260481155949322385646338861185490965614322099758479184867738559635519866981746201668875543214707791047238280469889995318575096523001832786905765086013118306655055716483476250054789760180921622933209880650675036244798120319477579520909221530986159015535108682511140002680150634513241291783526415602749347310645987832084632139591947817421785108707734461660564692207600271086698677947914002367300469179193109794180850816585800839256033512445239503598526027907936208388541586790033147432963736426427250080324372183552989734157091203758137044163260405826632120052438996334007041804730030534815983460813836691454106083771752235386854500828980522608486444184568617887852742990152304132648407856673131508759533869990271697776406004657444046846935216555547933810433239308327442385120782332754966822294796933838067961751124158532563688691220352071539322103226326189450280576514926690285628281554117323579273747284597645726401774555587117748846398969870127545554978681018607231149134909289494061893291254246027467086805002077563197585354323683435419995464025869596618945719683399961364418881278903254968472608206696381459246401741163455132676395474772134547471985022169564113283744075476408294093345980089169719024983137417362128989427721830622045528817527056638104946046894717595075088487256166605109018815823913186458365645718908817881796887615151255937556783112590740665551769764518878142750397732334620088359131070932561214971190265590644507503503754245077228853640317214772892263794336229024927110195872304446545148637230818639827075470855687755822322529505233681369695445159665837819869801781443905550614611733263881494715243935289833873680764720547264753029419152072138354002892497518543214574497864715366957485412505074927020560992589383085608562574147158459928314709235883767889409352576751631139281957054720421788764823473010273739102474796667270879737420632650264292667157624286934836595468546446244981111015937945279316066046556836435354368113287342993756698779863897220218397440070500054144458266172576102175880717154011502506732270323033481132021550575340346275014730861069428367379211029878228995780773635802690068081487710828444400278322716337036493593047758789954337235974950878451582984236554539861401775526652428798553452913314316651784679963482471635720227132153504539200069719840963417669820602567588014966897206366938009439388847649199283072380765139796380900949144426163951671512775640018605076746469655907960925048241480779571724076998934212871018110275858375127745968254670973779089857435574341459113592745796840628910223244959285686990721795145144565875266688851459153228473189016243441810209844316105437009075242401725382357877700103893446620382380918999936091646149082117510401092291169686230161666078598530495851992398340998170537937174474066139395969707610549148871091562845033573928219191285725926908946409010016235745770865015166369726737398338714695294738627565713619848145022537090640925757206598777762512089278570352975149716814686812163619806101480898183374691707872230557287428483969883279180720126883668867056899899927188537886280007176428767967267799789431022843594255105503229112616620050357853452827254552373952315106262503894938609623068667635150284524499990148953168604104461756366053508045284166134625598775639994040827003171806246346994751678493732326056976083798043723222585505275034415515082267112050993772037118897046327062528440251853720705390506324599032684895992326662363821662464230930253936091431125163549657352948643990045726980801484080378385237459515681055235368446317302501790486947941262601764186893604660946079460533435710393302641302462013585702452622985901085037831584291630161561911751265857341823674431318703958402129697668878444785201358631906331857240870619267759431571208981541068830256398169680892635426040409145375729224558589366778609087111113723119734133048632143908309863491698031462352228917075241239768995332973597098931210771594754725454924937149108393388056134369524604437707394431739398519181950012181044969243356671676907186652452437746821278162701333233577383205697430850224343489046423111702848626801608514396245776012885195131913932957717328809079113824715303439249644149012213267032583860370134263352467016374287472600024129946057499199763278617137631935954829135291970534854936167980713226736881905987204866484238444889473542994751567158099859492010662344259808164355395452471697953349141819891623752844634835514127620992271619144500845976872160579107680824084727263805663716235688002170149267898699735226609515684296030243766788319345865213861511235563427849794367675727817579741291290747245321429697262087795525146561421434173759903590328654055784189987625200006633825686454302178664963402193544271803743713033620229047554058790044701791272196996698377502245412960937944983129462742618915757333398495083019830564235984690459429967490980587638075124603604481869605054650639470808369433558276978044471445850941342096067241827740160351756912498339867404394545114466878799982290502908330917588264501780433269472146986033133281854179255749852083741810745167873155250433655465577516510410200857817702140156467893655733037172546752287061589584339501059640348115236692466013606828238214282901007911602962806887690057302676240720931880240315177809683476696627593753973773056575685080448426269447516019625303031816478161133482196293031959665682800233362781325268314282937432120791171824132490520271777472851525315701158188477500586956314103893752412425874546420532333610406381908805989677725131031382597911157563738385708396219442055257803338335236706369877917555031181505711366352449413287613351464730869957723106754187953385159139574299321095811933950294120235351974939395728600896246741081829820125598644200388683916971982831215784106823186496981556460597872792427924460358478793948139958887334465458520057848004323497759922564841158777083512804108606086832928877797774681096422485721733332216197534229557618433302205209686426368952065660683757857991159032281835792973210957988457838856810603796081813456165957335296376796432475824126590927698297149259678967192994514917726900333684583576128192453754051598486853508837049665689680875347740979577141234142946244070887689803691675153206993714857727498360082532269334736271331970046189681714819300809490691164480363760614998802594575103319862966482189984338102790061572384990612778064142899838486137706539978841739980564121799380491243471631788348454035476633043279764335026715811711334580528384116401561634596741096703115471121844898193915632925194044729106399911258392832856889097928316032592092279712671165127058952219825967772317927522620874278614842144355900714644608445300751332305370546268212243012994329259539417407029164244376498657112851657893395281907048723425024752080930934065572621278672168284567749903065768302854673009552903991487564459271812882459104770398008420401817387541371970630428240947020322059037044853813054755362116430119039855978166354792406068769747337705257976129183180011961176944820894285398596108168609117108274662713448865847358429113981135316370450020412362266641027173825786840071876313973340706609379254716840504349773297675366843851331426353034905744829871200167508288790193598524989697681001415082496831068551326095565354464083850788109703856612276219103459574817849164161164873228520183016982420025696054820085180389750735299335975787213850520250219562959017203867269170147227856271074438812942726356688998614106404659173206280342756009219831303522448249545699818177753479188178236648544030568437125765787259433627351987773848172999071958150929491119883853408258406437523570604279297077741932092883224030341141742456970793099951181268346883520963216541335631778764464110649141729103272781139802881307123158369650963470718787996810792718125517394194601613484923641134122026839056755592933829061713080130022248936332115279349102181359751349124001643295389982461819907241387339373652307824735646177576718776057425825638379290342267826377525638610600192431322234320433516697263584760828941739013927026396462982508309699900015624892036116023943902594331156121236697025547436767632125122960246698975549631668440321426234123782157194519222768321081140283859729966171138136856751229773695167297915306762694225148165060784617859333146490631956870769297114231124791530504524146784831313523746832878318724738768232100173168134401453718387175213951193016520565011360201693261256410015705365534456315170528550935625464211978604818913668319866833316323410818009948495022823607139736362560372631832585074029799444571512545671139619846019773434776876903702204635256699879826445446281717138097206198791025676641141743329486613888405059905609788450899453072527774127984967370862994823244981032150412841235200767230950827747592154302069366357285398954499106921304963161736496668094861135418613961273242597620485918543828102398810347343881635276881893344362872235082140116400895470056238715335929593360405989980864236668565656366812388334855442348348200934402638911745956723843704848896591552386629091134409932965075516444712107041256537656682762226490052167633305762224554546295890711336847735754654107382719575470387756391674056430437444705780860374029526399556543660126633236651096769119877401246959616943701647846110019001477265849948393763215729035699126333126638861481990559264085636552657207871159575284379650288374450848739411193002848248058501413974070419065907669115739320973149599881794368939081425105525430882682556886915070249135653124094655837878153463409339544366619760529482819568218024593559348776300287561994805737488296903554794591975130686069875724133817007650415831810117212970582890092035479486364449217877718302567627535017245310136904076201095797139930514427443650654508243759745507281319140550182975744733032055337050133134145651584357507898811268207348905876180385137111508260435187692287208989809165785254965486941668275923430850562409044231336990620821180008142104431240191460276732096207161711252422334788042049065223025452117083404817481048005014389660045134373231921146458744152050360949054933111943003344693427956875222109655156649381749262501522306757158746317154715639081540140649572169429892894607847274825375261711910927475205962663934210777860633138296644563251266290905587984700446418298205995688646456701580611567418573879848294961171533888022295562526498501459923288636299599726501752142004765645338469601055522268061532629738861776486690437912998581709632916538701241646658190147301779351709303318200327797568830564936925732787393000318015110998896650296799423189295855261958857514504164097153207311751831479254762117879575380791547345789544805009033618231418727459317903219700379977693359825363982846548179791136071576589204971799320885146244161565661560610666615726812044824629747341857452205839615354437342695334642981923497543012464970951354879167397765290331903391961953674927997312562268351142530204506455540365580689923036128024876573576270665499997097706783287950008717335315752165022899251309022180804843177532621156967598837164048141032217321943865979350011318251396971484034996059646314126451286358654896610464111316077498461805908277337162850878645703391126807971780469912940723165182702353152887162524583239306419711718218298260046502568832182555443243449194003909082808594473873638703636959354757600298240862903088689640705808156800986678025300588133368302014808832569283838277749954333422421198480235074936721040910896190635058176307248079110098898467986605176197620794110793674283945832190795835547893485446505039614578904651116353254650148258082327336744184797818035108140844157683994881417003840677463770189205443566390276502894560433334103352317485232583466845078713418812229276013585836609166740085778288932113127122284178422386345496539998317655579167882991661205504204407435650723458503476300215388725717114925035889053864040454247068362080771197078744278183335926693110624692981520970201961690449889197212342935293353197174811523373421458469203632721707072071146164755386837902407841476804149531774729339972308839465574181814646874161368492291548193888369023545143578185270567164269372419081830379449031126329796222086993116152008681017299572982394213989898531101002121709149454778853355454028773929365336959830145454239170455213944745241200987078389489645667746078903963674958620283050217436056740541296391864405524805898932943836698484228109134662143398833654216189366723087610997228539173050090784563107828720753308492316827228713748256340665633347612265755268849410437896470351452509902016306606757257115381318405466129048486859574909260391127926729975630696899080931027398805351734224112574960537711853406795244988530376535966283608902018822830965901321640218515377989309022832080014614481623940515966149297749000618483181904738156448046044767089692511874070744648698515948136391529631272745184908695455954833902866429731530412068770701285236740902652839296995808012797624204043070784677393252651064109006325820233060501641109890181815225361716007355388226886415275453834556105475692196056380326740401095386077365698106986081446158260991161833025751235896682120524306337288766313898314962438454500551113390281904018080654478193119827515912887498536968495445478037899732745539079616691126255811360573554132072482793573867636579645113061985166791601067173565407700977299746494103821315862912190876909131392980951848101072480703499872717178458157985011893682619821963254431192148445825703187688867218055164843188782106990900115059075835313021585707900231333533155444364480398467803522815660530514219260557863444354977733626018870429364253265982302725084220547338139050687834355604522314254939286070791471900183891271641074874989968795532385982453861336095391059214115949604043386503184326432615721866050645469017827072978517669446230166817498357727857910156737963532081835325685695998623172321200948057116978141411652874366515369233541390516750360756605508063238879367636166642923851724032206423186216211249600456419146907579870136791008077352642130637041049418264811976841666383715903693199665913462385748059787647843449664566722423701430019694869520605349699957524850421206061796330165250460964411257069972264403712815376396626213291318154143808934583782804247736611838283272608779200491701782775273062062291090879414034748013310079332158265487277297493863590837411465654765566389928345377158026892254796308139245106250948211067951231755444058256311375378537094591571895139318081268706912125526080474347944512808540092484610921721937508507401174253139934243343266599986841102117047307712808413314454457001627954282680047480128897890180912240085212261233825507679408754569014455897065921446253679709619731042126386707261461022545355514154567460537308027562076076103017797692884503425380452659535141282598157869817884622224180932155427374100386802120671626627777255339441757737790623492677107016009928824381624263558765563447118714332471449508661333465687728452571591986429087397107160611367589624562390513418585607815435098393936354193543254700754655067691710232171472044937719961216686522993280336615122802754722906446441400161225900764688044479820164041165613879388962331625121952875677642171307439856495957053718938797549004147298399274166284418210123365340479813253340325467885845965745429944217320766239738062783691919816334724567621857165620374470380453664379073699583634207740881367554284912831964423560805055349649363140357969676071910805416119858657335329674749210628737494083454223099514719258934564842833390463762697078772614651513059286540143142418018452557384853770757821416027760264477449604997341331623060465644240912176183475312474891089070382637040511065830820019428819035785494940824320315448682596279270415474942911310406693374428373144568313912947173112505168381902037985586193703917197660615971742070824651637996006918329386934528043008877454901268038094562927785308675766718329594881820849632124187544928599865712909484648222905427902183309343695238472799690727735175060598091962025475277194153825406526959816033362895306069068029577713696067741061691988453882738528461099916138290399695104990047270133803887348334512870056730598684356201760269707935891939350493966124888552895933395463246627615656048842277951745603281950199074685832392189840172929138213065181786105961500474820307906618236169418339569055374908979693494130722546427379746748418614147412349993564673953328539165910196609825120425477239076010794363001234498646289291195170418826629714570073097060954964573006159837635922909883176543493902575046280517045000844539300080683013987557607122478501109743812625502295803567669297753179489242583313334891852092894137004487962799540139759205417690034099828432924761761870422878374735945379530578460554271563282808696754968267181150307363923616482197702335629427085138098847298552211937514872930615792192710977471780180790576796102603302898684933280560533833977481457039493553880205168516198534496862514346602124340174168628264431429821348443117188700759143030088269747240061571654410941657220352226180996914283533507588452733649248080400123359132119283162412617903213340900737288987855738429665232312621791198647375928361894542547277832101481371496039217380883858128835319654655149465166402649087531541564454251651651752493660496650588283917932711663127772351607536784473961938315754674446451982279595663396530911947894352331322978781323244993608790271737453431780454420388069864098062351773312686793243528550129335695164076011081605002260938381566568898150709489003622072481516589473144898394875944269196481748879061656161824957729621391250608285169205441049719659677032098998769534758885479625150999128851362761252518400202853245156426743211232375657485417469537622802308094589502420449614480810667640681657960550180789257595300359192884559914727463966778489832761354082075089897776323473098451475303123795575319043652659870121741908499834358728510796890076096808731180454611979428087289530963038327053454923000154834491005964133803953167355882039645449489066599557252862665136096856900400089663932495063705130177439948891874837186808244232497784895560667229831545314384860992070845953474041047277443074210260007031614738752413842284438650827962097149730472761302899569347643998957075854530787887621474699460886780870541636830724692087443603733549692102252216108183091649376197661406652992620863809660859795537169712270966160017519574996029903050069006027314382159284070553349611063043491670489649901484996420997807668025885941360410949450559596164337212747204754671536650601297876010352102447295611562352086585006818766457659633955882620885083816745411135404815201855681187115368341855468603779658276639248359626367165792603410650171215454900589981638385447992442597689591178136648594312013331953767214383600616405703909905200225430785986827649476495569893609186083224007307295391438075599109397938710963209766171470539893394490210905754737355193158744319505500591074291184262674732959778262119940712051327123692006401287168746828159861781745812656168785529342666659777838474974255245608338608516415696220510153582672966253435524654049275503819013185090560145822299399198165733075677060708097218795227834911847114108862937083107347094933444154508886959174671689074229993275916707214209793667376799556752736766284724236086364384845788345252388422199200894186360207681490606373146681522757222431730237916985176631439915452980706929140999499494320575059924838068853517428588164654989135921181911064689541560060484640293571665275968650206379842604786637477172419620171540828367659359952052536647974518918085220259587910060738609119201808018252423198781787700399974859518358220218226382347692753726744024652110830036275001196664006717250236649595500733948943755097466366250596063882673233378228531523212786983268560582282762680701386197166096936644561897893736036089710592835309133884765715486188011690768637899116893151324607748836218081371303361529314027929807764323245197627181247497926646616020550943761977243923416467075566433621780876394505724925772289831606639194504564066597440035939817910126998333685792473862817162965454768867177915943597016587160813098770100175091057396648818095050724599003471039278676668447094960123314756534373618707751904880523130585155833374164390261371295057688972587212024288604794340495744582687633175237143429972647639090679460169778554081325033371546272337853548367075549629535512447927776033435038129013933816182951292915469345407996998248019601177465899825824831095341289721540316940843626607812660634470166696398297447520048678569808816112569175223057049943958131825863777628343963927758764659437528956865114615581671817896224659530351738453684454685283612031148189792441542856853556966062633328037338275060634195376479979938175736178914639695057368587202461836122629122981363468707172437029530724956234306748904510763101524997928334928572735645036733178380488693310004884745493236279429225932047049986595617515814648207281090647124454078801830570766126854452973069841768911245268710441598416952211655585712419283291541211724958141950636513945309886395993949468351379875754339360086478844711419310082452211359992669796075642770254846636404324459156849377047255069220169222097045208784611984215085257931830864208514227499417533684585297602403690954484429228279589327588398740031089079694085795634219997041418896852528847999941439463964357861376555336053614215025230421730284464161000079334200465730726734276966743084217012103482443852624173910962719804235195416312982420485869178564104596823838843339641292585348503667950584151826738791551214813882009618051927771006948988509823306994836178941165262843269670487299101135633830519719941340415836184413890558341668176074345204642490892703062406611780977522855241188990934623245607191471979936336200786559197417373433722770201255825781963137224032909545162759948437694327744077628201657097342294999583507446906712938657794575769325924971808690743600018226073223044432472931697145985081005506024757781317099290186931350906566250031401791564660905949546464846557968016108724020639502798738882443467557131592608255865357847689606386973433845916393524527615646926678724642968591272494620976317485880455786778375198986594561690899732578885868102867033218402928813167131105807046324544648614354994216588444782369156895160388909909519841375192727157746725779260744723714718218645430028248947363575162726495818962127089839951127442154423762961750236310977236582089230539063514896046934633370552347892410977677879072576089539780678873860639324034402643014701251643576911739046429118550847719606766397686749805199957689218934750285479858871613683878767414783355258408250701651262526886781655317545217734826893122488321163599282905217766693536352054168223031394017405355118426105861038881103560893976870369853138372936932081579924995549342829573913833699075747902401236412181836931037896618981548336839356108160375273143970216820497663015741312636427562347315889939567097996170701111161698586684043252880059997265105323865065376770851260387964395120504612838672852790124842880416001154241448841906954244127348353931038563565560309379875907332829659216125510346137667709797578987971749490919687474895668191896716250891332839452072475270223940281302124692888226839636735849377521580721702931962818389977562832185809821959404194906819467587999806280158970732555140204685220200481139212042920353037672047374874786166333606925644262855588053736009254640126781231881711067013581552659176277455861221593732677795730627451284036339568769695368272509679046077621716820329524017957298274539755685653334281828687105398839709010929077322175047355161226209792638506188326120194413939475897405542619556472056660605090474022411533243532101210401682005658105026717013511757411092526750440371776116582248755514991316959884274015067164055266534650310095873565178759541947444512762385218058920982160125849226133617812069872036548669215736072226679258681437556474554661089484693619485066222429240967353947125885028154514879881320843651673517863854975605386814459362808476931530870233851378906160749353617097016518264539645610664893020892733813636361629922291580634719411044903566036189680669550603166722495841829344634705607122962282187135474447016571410605174140469211020537438570311068906825216518148581168304644220467004057681137544938548565985214249708493774755304557562464309643194286102650123858275823651260135493395783847207718931822370657545905609647195554645158011962934918371274211710909053631490278669092791083307877286311854270837417950587795902617835976555455414169216031883180143666203957922612119500279595357854621366561919403632999162412458931046483952765871401105053869837590739360616132708821225047081338801723783234983557292340936437380244539159196975911119677918196181227806813482764181242056396374920073887233567599658046573247186916306968537522848570195691841737134085389518626834838243437253167251367798589133838680552925757733600855592433060157815026191422060878193059436853834382674966270532444786198282296268784906157528782477263784807518781766665624586446429092589266085146283376069134929971996564707449314058030856243054139124718966267207486145571976650984632347926407269639859253286330478567475702124483470590296028293176345756009482336855373101132787008922957376579241222874327195767966176567289889736328643108388907035416888893409855277419472662504850004576815260586195170498993616899854417602404345666871026104368229434215452424526091832359710677465134818773057470957588986393593178760288178618767942503715988948855914945021556115783098837586941210020510667014073879814215483197601416560198788099647125468824782652871810752174307368221417372901801690140901429208926116852870203875009577159990085223571103923169737188981488579026842486150878382697243494859654813076334681372646390056527857445727547449566898473717694977854864934788075749383744658387946675002982231666785499718308944031827070540155092486303998029158868572703813264182420230552295883520597101480661103673934396891706404879138780154667170071253747762335507316094473362356811024830596716179820472257878577034751405928992943647571358559075767933577290742945674730465243696375259654765707881913012338741758566863426551804954433955636703510877047108419809803814025084402907908472706123263106716224236389657065883964318095367455519774027037083950959546702140848255823893181257696312719308391556052742685754565563065703025596762157950048067896517293687798647799323098161816546452050333204832390234375782373625067927646074363750973311562672440467548993126350811993289286155406532381032086759856520618313737640187992324108656610467552472357568405111736623958194881336761728168325830338587598740718359181232266623590925186887068833315940316060883964910644912863534125196581859788554846836824105414718632784438208288828413968080507204263226411241496600781719487247676440364045662087734629413963454806282467258006267146964963919133556954414473876978857179211493642600697305188535270842249598421155166344711081698049705383445859085975885894487029358946519266903079182823430892256066523896918871455383009732905519677892041160887362151093673207588092937389849530743336391983297193127503035845928316634608629971578386818450921198088025072676862415567258168287908333054521706193682856499871939428271280416219473399566926636827205722201944027674684121021763733730538064407191827629801243976996263392849283830149438617426270877393367141782065192144191497458411145219494833232411512513788204796612599932373453132479435789654346594045962868596967818239615166557720320450069931325665501637880253905312372536669500543482284301629210291229490853844680255582358180818656595753915901740280424554544228214100548829605210877174994240842143022263857096485164851984378962199426252730546714504257697484231768276710141308760444404628947103808165188288520659581999711359195024452630709967253747422094589077587693826619394265641777070999902654324804461292676727000483705623154376090352852963142161443109420100236635632700806348141275248920948598813499526472176260084460662591615621032005873708264221125028302037049100662526701329674051231936568112396192668598896913080316281376802792679772532762057221162919698200228110445377858770527454246010975381340805104345970376815908621275259574421472038004810240312852401362417089330469619209208580131728359465451531702601695440553140112003535010642482777157278893693795976297678369612430957516929770818437525776496470837364475081223100362824285430535056710006648611740961934143347863183563773195920840912839794756786901999134991668372943797037852707765578468685562091157455008175448417953164937876925495860685368937970706874204224475128536885386014372772285367759665540178154951173276832570312534704907436062349590537395035157244506133922266683709129226311668356882437524324881873703547645339130682438030267377730710810111237830807319810752058181116092569168904963172422075726867495494211638554323313658704312158476572875780298096157794450110091902624490316692835052204044697466891454741734435980784243236151424312715429365164594580573634313537807520480062372730429358740941825590152565081995805715234997048620958189550724441938502303741159278094634198623393027811014201845069525249977775630419213849892650494180122600166389427723087812989481385558791470301428750996085560257577175558398615765991245118235117125027039551541836066224111745765720440972764328591345438099623638920576518814815500615232255455883461374775480708833434243190923343945875151800758549864617211482987571101060481897335868422664789772736297209154889498659450615352098796018938610523492372295500491301537557809409200744667522207090562992100964098657347560079791596351515588497135520133854382268239035462214091068976591819016708655823683418228794281335707969976948368130191520367168700563618488723590998357518079368727270226723237989697706603791966419311048853845160361337082927824965914741318697056739205141408887588940279188297905063320499965660630542898931941257688947879325155771490580902068321054861325374732219772289048231635741296734317776514378463840513850225493446452676182368531679248753186529913123151148482012749727472257314253420790598022625595220297510386788132886474955504602856710622228417050429221612815523586736476470126563248299877897711459124992639489753888545142817042216925541833425149559235167420483669001716853995684943119669047441994129479076259104766140429670203412485821833636205266865102192235748096856697914286008158822414191407202968156112120112884189582005433188657180234703483318966638150913307719951954651129065671485925140418164615554987277322637127297698411182569467205905565127984338408625008328292814747701503552376469493591204329588305618648217841575069884515512390413435337618744801172539540992354015401074763786100786536862773717193136575357969786495286900482306823300489287822120178977174194212358744348321956838130726350610302986534135479898732446080282806094107867603143036877265297248196822011646795494693466164801126699275912957625211541614704076646641890897212675918370851206944412199084451428427779005396374554701716474635711818158943905546560656751454744110777336744681728684433223364636393097122082811158927642602709077387082735186250320805609078401408489804152575443539006311852995471344556020814343408459685743742106945207986427266451422483311560143285660235706796562308908018125242777476780631708704461618997213577764627284284448946253567084556359408405864484857543149024050744798295760685853110215371420282720329093466730812619902645320104126010295728331726977700813925117484947160733502502873713462317018927717264696330458773891541151844202275494779525430433038321281208550656754362153652641510905497500447377576719121432098556625296515090337266755521584531476725609234918759069107469292396155306232283207978043280697125751231637699679283727057847774133738241922825892175087259238004293512344833596627064584676370225651077406530690235683670722222251509896170566606016029863262689371899553172455676940529543580501782010031770493959865496811153797093848127616048686179160157070262507540409471386203617307234350552031647565895336055382964956050379705886858512015354915323956141980491471545292757410269698503776227238862827446602405698785211071152237462344105750824897680133204347168583646066614035443393703081634500203523886663895338182934753317149748055042221161708285627014797209277178724206966165830058319258900137982739734017709802895826086040949258279068020356069429503044673851393479928713816716066298855912060358972300877932819898389202155816294276322696693640198961890902969000898085572506155442309589323168785506664466160071289133714054667745009762676405115470972610464363933181911871731192284822361554471302614598488821952711163206150936973668096111010066668633389136096088000872660895515789301762777016656359902066065457223077639683544213451615004686622238389750222043056986229970685998644605220442463799410064043803156790588418120570863864881381869244110176885165245003100532683017486716659000318781098490798207814116505254927827530717322625720589388942510788356700732482406622695471364361397158780537101136033599897417141125652224414586930796732181785540352542408355215932428267879683983936723306054318691128100422630305832623328882843165344251257316565606927273683585218681605654415598015554490549466786175092038372655024578891780504487434467590610282236464983327671083730689885511313240801816982666331831453064165751393063359252598195906208113366920737614989086655539164590514826007596175333421747638264643563846540549629856920029162956011075226176688879850265864026910871988571549081212612384943788416186832254369203879529328394104165804772220592686483018883239844553824235706337172428034372475074141995257964237224991317046520579375987351612829749267921494945190870924960175741115689512644656938507222841279019738129737648720684685347336487567604703481380602493778226767014555995671431233860204444433527556669668236826992736186966298093687803140271042858913330916447266581709296864183628808259580813433636704159542911328863075506705555019579011084577376355698311501933466884021114706067139971032754922699005769767314575974730101364203843942197134328910846535624069680071098473231037354640462466246657372429105469837434599411005823758739135525523685136930460595278123972457633051401246482991684346084043373277743858612932614213687043193361869779795151419322123890634657081493865871839175854438038217079790782276684254007252720280054772883504113803183032558038221381827302164614056291144561666794564969974909466907350663066105416606472347985739783966069673967644744531999394587671705309578856102833553430736187860819265409528475174416731429010541421972894425352789888176095277074265917179742431750102015193924868396314967258894959893828432717143388553777296409209183111342009415430225758916768249005600354734433725881083991528570950392171366483141431347180743263903611012794283827789579651876827892864899334597887213403874069037405125914085877111682963942255945614837808168018775675287821644660086927671546913110942978229318847248400098629417394218863224661642783385313158188055066045250273754010873399776624576432312304608639975984268201993174437757103514290932767501084255062986602577922752841632959587745616468648953412841695251128867258190948931201786419994730488582294784308183259310159101736700029241396427005149356019887500945414181577508198285789143345115901244361404377649585843041390953090279185804730942919848567897072642885526212106609643583641390940204917107144009445956191064822627248474281442116366209146653762070514043708319900370002218153138956103056540237152220026390251460424485408718120653152354896231476623049356801805514780794381736412849881137966876861060833157844412408758468585024674455879385675502249148534876180535594056505130167718983789033453391476940955815381900198147320072072701695925309803815560680811810421619432238714452234891859781414579087613112006856589059280099963705551685472528989258595715135626383895677932088981677274764559940038415246192349618652263992213202344557788834597491671001262440692209669228784242007895564115002056044685092778641707899189242396637776220751151106581698000765518359263698541656565478421417733968932174368548807350766723036124939240838658776719262744356612385295235184913182486962921745853183833277697611401668135672572149266699424406520166776305497699413276700287128873170046728041787631749314855484280511719401986166075307358913721221392726499057650913459973262576199414295173714314131948675681434839209121144580149351997053287229102584532194746325544492414800102015522218495258020835675324395171465589298980486459534037400998841814034158467540891407096995232850968694683341170084995912984231720526661317572809338995731022041548916983696169808627684791536113160839473059412103417059135693553662861285049213501841324272632878516383162957652291543466606189115388567153594804988818450209305043489266457773633959153930531968867280872182319410189730337210094192007248102362747390551083673762178412384918626738128021600286510062536365537191422281451566127121177478209847880094599609204743459119178012822007753938088484312327651297023524189347303670984343085535059824949171330869085515177696456489652291509497348134744608847149924177177913275449953818253625403035906338477390356277836245378074836297477496322417042460027009201585022545783693430339194592399204999454080629136553526792423650959383218420554543966318902535642954922951621170274335479634420562194003464544158200647836301011985607733026882678310699386482875202175434818709496536144215727505413209825067205699633516841092041330365709079661704983232767679973562364101059262670426723464871313476311269996543453195594283048009002012898951107170827698380096043701395140790839141219359779041888510092377102420190693096848584462046427035432352665518439981012840168611796583046920852856203132236640088850507235212514187830551416072080549753992363389338976626269016682305236498645258961031245820702320598406541018814908636677164004643279579074964627571634648828324328741192065499436413587380219552346236320112394669424536256130079503093911030332865458980330338901350115489724827325265999342914902662424638104669606763558719106336155395594603113034892117484577470022251189362839018896665778869432130248190862131682176367708902762212843411414121819549786061236142575939374399381928310683187057052181214276792070840280853258840313671101612660927468056612866186068732064819555272547815663752563805565379497358186162392048003495972123670710701618279654308120777292938987135329137726694112148063548890216627974549566535491894975099010197912981851937535650433918181275916932378261894344072535062022693736731514346418376328050795402858239193316022711952255679614185570352144356973834633217098029222598635557481514363259104560177229311765853476541256238245535422271246658826098328221076735329968433448237572009609155843009440777494589517626253469272075545174423734596722029619710276780180040958441296247263656988742716909653793810086567513613203674775308615708955811031066379595753156179533934359353971471062801633341743177759901703182699885669488147857719970100373601527082139224696326691542984021721732775883463114444132526806328942814425249216089807785731512703940807533762646225806958799842920877081500920852094401313740298986869936635279177349221366388558316803098487819438997343917500014379800810655195688401634697140825113580480722969083763058869953057369363317101565317196698334232865114666919271550137323055925140361543034078762075982741236860890448149317358441146891588392665544995479098801205289432170597140065182504991394625869204166484207948838134702482385925318966082017864608059430440022034101657080798419324061619627703657613448709331959433472672349311660283050075626352607346211336037537949076889470596869713320831872758870741675084110415417771970842914759350492768481365344913941953221239535234670663225426793351150358042063950041663086242996907513998933847761652521750829514614327125661270349165620896118243553313025388678083787234421835446837844685611094266119778207668463998226508441975480086114781770005352927803115697435407675037557800002368580747084113721159990473801612763784700799087360266391674206642187974430553715076514262200923694500284321560482916876861280625078240951952109959932732676013982114346374663171807143526548210612059605480934349946723144034987024526674605994689952028167156608972846553772002743305058021317700006534901504337116150085136908258192837115437838912391305670456136153943650172994693395862252821194254954002491728931371717062394961851937832978198432669053376116436416956806080817854111489050228788535063923847986245665231844560481912625857196984977453125911923437865713483712695597329934401915280117890222406844099937349490041849416858377191129033451780797435286877694836084668564677924067614705032840376234015865570239271973031792174633188942047203238140442203053668854235804450286156541246689137983441742552417761957443883979120485337052371030322011085611854615504181104047416301604171923924064658005782530114710445672686734428110577825950761723801428127556133275718549723399699473662491326826918673479409819687341529245600528625266729313151488635209375557635908179134805920831125550810532180792719168061436714058118742542539603661605128661611491437891318029999511683353293393232778754403170317311629097259698495526275174654731043958590950385514279404651412488200307582784462167364545381850294924902688151712374610841401021816760147769226051894908252332210562574290015114891601442516640378361914419133088195697572461843210249250264850371867092503938912766647520193415429016710162545511628844357694898738130454835792943212542549737825898691031699264607388224485900317489193674581210426140075057205113602445548129143930422401085539413592087218270093062149213680726357112122797437811342355947793478293702540265114609811149900082796471380642210587708185659051335850549106403573622162468574862971413765861311944964726036687985455463093565556974001856416904754253286836685198091070958299677564120775127651505824459545640353629738669949896017891380505329699545362973029203982531076705563654981564214884971550819861251338858638998423731459655078321195686773943085799348614618868450831618685026748757481610939006157702848314907175014906087549202236696582538537294543853367814709140827452145567516435055402026369127443057586213658458707686915167796064075663540100630081946731091200547372548651565845754873231975519372992259469441046220661793552355584859614128829339778430640794839661909256173848731296414173846004506420049908099417618598307900276504063920612473976043444349009790059739178771760014636393350147415712114261390705308256385846821981794101168817393429713592444966759969854586908759886075114742616290809863567130360270470813588832078235741046051792789165165150186933364058821519959569229522581950826401400708923089492149328814841267612034815663273204080401921153290523210138673299571605237811433178944797279460963855419204604763003874314669666006031890783623038997820808376900612743106784795994202603598561221139708417673256007992938329362940919283895703734808914001313225686093278301129823365036803468529505689279162127694663236189767300558513348536100163104830095299453219393765809970617525583837025616159427988499010621975836510491202749166592529840545358329788604474830960149006705484592530734109354060344997543574057116882350363813812140214202738522651173642987512540298170292524214354309252673875021492091514469853197713489464654413249699124000570356818826240671512232435032575351718543764369124502635248675723612297502407954439366902245667471540711652535732724231861749977021367624502237048284675264148058880081320876716418659735065920285193014376878338522554609413121439933661854808975180063915799048257209468741416573586083686955745452879337050475798031292024625488892715234398312235899625791539532527193682412172226605063282064456666379085634736112294977882714687128610863043612693926828561023364067401042219531144220140076429970184991909789642025982112568338300489948178523288926923663600547192366865265806813566663337260906805487598691408321407888251021693162649749551853921637054249323875303384436244990669652130382945302515365847013199792931822520534501822676611802909338337041169948960364506163598054861304035445540043402865020032660413778543666492778645118160654705500418804890933855429779106324166156929515021988472318754197026074561206098819835377075898534389772363996072265475542846941286528674972023917893607205835682541516659945751343232689734295926344218242237106284352232403975146555544352749230682611346054586870004438873293124343170685579207391170307689687677381303263494531813175937659281647587816442222654374632397979635476294383857869527663799107180074804812291165868038900173220561797314760156563324520161602551658863919289212208257791470024858975165359982605052923021242505486184305152480602472753470753384797869813614516242714805382838061788873938838385649477540149064797312502942765984473457631478128055705433741161292923727175835639207167286621596367503079363408759554136473562476453403884393816925578417919474555299055734323849480124543918691394353730340979327932592182494260250808135736947834420349399841952244047990322071824922556189539790068649691534860199534100994041983175422394220605292972515456278617141509053898905842891788925964577528723001530805682614723102552354027112872316110494748177937101237922898384576405973985883697759652042741605261245268340496146395299781394316598379326102961676490419490590177596503747297555932233588887573514267916604931877896135161469106528199980859732851139029306481089889556015285182441200993366900835154887341543236631565819676728238875979837137004537773589648411173802886557426382376849006136973369804397186016369988840063841453903361059747110551920395652500474015704736457239614421849601782888649779446922365850795288491698748242514052098344925107778843767059995195112703652922850201885695057546009334756429917614813362033398170927519267264995945080925749071756264605138448746497741496348418703042446364723039120621910982266287220160115519770369622804483237859242631337805334650261290139321068065917050160605176669982580244511647741884760695963018412795260648410230775884030912286995397258279482169378704836252801021797631492701869297526369369131796619167731361099977969334694476619656657587015271904112477655257170480557119308144085009795392559455101222098465469413020529116952151970282090723714474357246044055952646716949737478132802662803334415782833109012931108998716842742962315256856257021714097127716138032397485690221366618215161462095927869724249512334285430575953980048226340121773172876438079543590086090734665689291000833697899562042391278077670844623957825861648291229432196008485229375580522589682201239177241632890768977885737871790091661980756605955588322020373791490972288980131028926497764562095354781836044967706256761609190589508618299637755990571417153542184066413752494515133528933703865845737562760503689763426064379521482543655506523314898968209983743114632574484868343720128890453062812914443100495738116424055523140267216876899339498334376467453689066117626874802151480274637801296199591649379853419846431449634996598683704147239228323072396800613835547142494105901027840286656893794732553151812399751425860498419041741339489562844874671777102064268258254828013301859519010446170085995640474260606807071230402911854073326777070248725168206898494251180067721176126132231525626713536197925356317246946163122822915978673875814593234562385578242479636961284027743894207592403549255927974124038050490723283993985495733130470299593213799425579573907933721584081759065759041542604537146518154607088759798750430330597517105522502320034524151212656688559978469119026287999876765201505181633290504646392882965582378936443062977362637213182853617215110163940012186637608707044590783030397960614091945075772674093418934049538673165301305160891847775688813106427551329757491738436333394326938811697050345834308584356155052012034722483964712217217213816871988314491745696379394761221346858641234851163431191321377198299703099230660866828725319878946129252503234904674647294317036655245914717680135032293471823477453440892942599893742642370313855949275211612162003999836663344142958725037493844903436395193320764551717548307536196997081733096281466514323645150861335080118534815171517303754426640927060180081139416746399677463790910507683191557244676361399913623020021997800610038776661021747161218959590999445131573085655009088411553809982762539609579634300588529284715218490703250120184722970137441441398032775300566893675601837753924858302061917868373855536422856714387097200226492004233278723905188503088508238714642672200664609152868325318530704549997049152599030431314736359287102426734553157665913086708206678554059376286969866479088541924040927592181774091141621802366245853493892309477934100310596477865105462918964700990287738482991355702864316347776929685309809664128774492146760715334537408190140071123747292557441007171472778556977773443367129893216129403239747530427397059416956741334150804513319457410009562151990687411768962070674459120205591207684123358252628624039440435368019544476047501645061312799103029504337528813831861414749391183827106948744464389288406222670379241585768835511874061726321038115657553766693774299066686531515785791197588333579951545108788431927442301596957720623155671706352642840697289571442631725223070741403254315960418126214142054154212717526968157460348334168980948028351366314909877566260447146567585095548172613399319979738457760206523253757642415594006547020121302745662949787996224600271660639843795783442329195067207388943466800320150968814173474786445926554118943176787053210129999322625595975733828607994100403311623390331222227096210382777116041012742334134038448515032312709173457861696341044780777295235526873300129576219575208171311746187239294105284924373979607609711273333837208824671353489403688764202379374841124312658787992258954976084898457690281515497627105325946394457403217081899936675179118338141824727135765472401243403306771820121985057385434376106341698930381790524948692109711410185675133112555184309802653432534274273734188677305663129866988944988687292113716145003930627607816619171413248084517900243456999936483377718673661972973869330663834196210192995195532782879468842355842375462905784144248898846857444409797900151961353553659901550977623879288587563424959838135351111414250812101939465369619732039785807478835511353309371621814909769407523149912170191922194342632002428136595276910946564667836378952446895061115977518819133882008770311022894310071674094656546283482185310822390847820608978368939895242361760964065180141418976867291095159080532131752961835153324424797399070013827732867002603066276906309130662767003146355539347414454641247425167755290181976771369006497045594012217011260904653317604889272748761432329014457134119869480916642473993507311345704284831554828347288665802308325893139422708066004618699585442306283609309893190046799694780619013326279320139221965614326697078530032688055358318350376250896895827426850535134964182896401151451917454094873242648569623894812768248355520551295758573934885080628635848805445174558598747615859183574901293873245523950324028138407434211135535564884074193003374682609640530402265041638967729483815111985634220510156341836378836167733864979783896910163028141030819870463180715130262914890996018836602958536685130075786978521019896859527508040016647541523772259002093790712321460901674873309662068383546986505864069620356987572946889002909477883733939957554598085222131649038660564344809002061345960802673416079245393470602857624549583804140105990906987883667743252015824539193077235486429244383854522619701243259977840370510005922067949446291031477996351729619068557659126540707585231473496044856029694400498280894358162836843233322195758500612745729638626166215882773835567955398037463450588728052746383733245865868532998519190403900969289784798273070558121764583684900583908546227572427014287791726594360891852248206753471276704075707527430116664105423861669088354320976120211164811798448323743578933909974294625531223133466949124081192581126506646820938307848592876570400427312780597305997212305686044124440925869183346856968514929586097286567005807406250126247863508443523955233064079418621714632335484572996471284319024400075249129661844038670435705167635698966875373961539933029132316876343304102904313180310168731152610869609805903041365294508935411134389289653991168388771188635848630220562016992641914474840238263943728602572771346129862785827704347743043422781752695122943706382732204617267570742764777280102967924061520917602931202633470648677261247670810598279758596235657391580396324574238094531032279120427727049776577692970962091855502622008598353051104852231402624334101133602356919108903271573781287164610334787791102777493438961678687484659360582501281829429734053088596325943828016417818309662475531501898070650113194520888162933545945767933393821318654817726749770876549976241016650793689561986402072948984793671005477561812526700331069717999145304992699631548445714093847277884733791305873825819955295370284709536904683203037850286618660236640426770346627078378157668846541826779402100475314373139543799349915629534384013859632661625884142837627305420475801211490719315154202971637065260413430643410660877645368670297216757466350881789366726412424948123955813371681135350119759410123471634086161048361028731377904117936778930703034366845477919185300876825218236392635641550018857822739219396137159607672753826904187643060626048048226347901281844693435192567271355900074084313474269967861283502292502482104812943504420071333411819900251951663545890623024995231423683720576365893126420462138818703235036387848818279967719815277014541284598373119599800330335283739867416127841107484738903324877900362858075076412653529418541963466924204918518793692035960066685982115931873236009958152790070239652148014724975924196395887269462977164032456272665911691739018156601630324277587257056819028427785902810045237767344044705477284460071993467556549718200870319984118210102690827698138203422818088498305486507772519917422405224388696035961381059208561102796984252629022078958582651241088828610356741584861580537814492642934175048501804234101372849246270284160708603317457744719817795280349140721224483694218037427278331024110133624058694219716701700248833328495508672198584419111856651391646219748968494658847998627258250533921256413565323209000487989489177467160705517429558094016977703902333398018391668407675680671079968419459349596680917935818147589533792827674043778390650580543903714139207045550544485010050816398151386498721156163913651881403118337418501926742729572717140850438897053204023411594152265202899743442358354159202206569780218072630896584660024211032497098014287333367612139741406874068390338282199755208409666659696148073739236664607030882198213594962162686332989395660134227940498179342163228787739071591092979654041073423047078152206122651183966948791369255443106156039971315251783333478820698109977857063561372697408264365455587852562400179095214500511598946503883982519548775836435674639827151048268868096136673693999974784381736878507682138814489796500363269692238602688820794183827764703017137929161640244832285767263802439915439982580906601852838430945699479506405246044557095178191346760095255925971788727172884379441554584272138548957326329627641403365398668026480768458811114463708753683326018235954720336323278608318221722414963942332929771720041804363317785148773226342763077821868009094546680996538417420325740623188472956878090804378660569542459118729890762040181824786495213816015890547898326961533421037902671496260449175088037381087519622472442065126396203436815818629441305766495678332830558915891184834894550342548926127606360087935605780791493886284942325260330064160812223939795247510069751106062971963510635812353113443748788983197669543991757925934146652392020106461884879325972324704665362405402389702346381361680493146916185131076413198060923192232998906026460671112484810941007884015265118206374263567226389258215062997941280591687526542845006693484171931298411676696698210854687673638881719624716105323887337733289458736231150021958998909685823383582916534304826324542827999295806266772846648318005755964074770586860965031760426384879131132552303019530630014191998932996791467825748795711830003373929508675700188998381471239502104028975180406162804063993371786543633150026772615973107073884246600142544498770339034675473274337623839033320910322834394685136892158776167589729399373979390217762696759286605570407560036199235410200096793581722793285879761984693781962956365691596895431529197292036086130755504062849035741318768113422587535659600678026626823065690541638397935988896455711521691161683703896162660990042865564112842848823095004358798093598867684726373784548880351940000714714384253127214844584432111252641276946089238439452713613125521341932119416077703093037558232931461683281238049980420966852005528303558111627154128574761138035293994873785880416631409749531773558854393142492059330621882054679069244963507717567216061258739765796909619733312564764941824579980414199004197132953449238985245084613402348790661832601040542345232811407944732404441045111800818490741578716104219961950981847320479171010806691997424487739108554255880781987539076438028736213845000571986177604548691609614280662597310139384298597683517487772937612836815524128984839374980880047289316135950646992043796200375051397911684381942475248426548866249206125059508121627858618807988803290270450719775664387815102948123505221908887015120069545068742500430196628575433007110588551252669541467726602093992872452592646426086126929831273785935352135531003391123668987441160760450690694715085754001109683014645297382744077469287669748928611622626300078901322677874533787782669323403568564357322244194942535536633160485325117738983477011967717000173129310858112807960803160283833354389727463600353255271043045641838149330933171362139125398392059305759672076527788191089920218172670481401280819080896359575471451293492408981647343038880270266201775973987632863213618521473093320896792816791943786118297960761965124607346555660988652847803091563082038037913828170900962345505476076496438895896712920717605376512299438143321400009904548019946396039092032459115000396394394134703181701852315860612872357443164242611612984183775212149069985067882107561466219853547931247961898887881699888206221000815737998534328073256866949409376255367095008214268898864962150840347529192448711653896513553273104479598511952805135651799409301137673371140936742868563110465407383554248801612423178929643302276602650822367367053899935090140883089265913279177426144723390604621756217874395333737729879396257368430835379699616815298541811526522220017584225973756951322705474303802337544126904011030455947884083085947729015319964232594771212509528381243347524439089918634087937014361135145180087450691054079283404194938740066109740179404192605560085313678473308838945366499648656283872394999709691260285052792242408676500652989544264825728477634217528020917440415311685675425944467963558207520262881973714239513106185646984158279291608620759168076172538859537286339754932535004880974079628149868057801896430987006908867390960776510927914357163124534986831413653160262995806666227676920091632220324753184712687051683087739050477093466604117820518066417448219486046252048582787570632553527337582248583621569429249828343401568958582894118044933551870730708498721029481718576412806739784520535206868318311073328022999010017953473272212448845609852407476133830204730585203367330974772204213193616838479280320234696012278312076199462925461759909853494770602731039391243179941621991837779072242035142421853223847974606322571522776363354657777405400682439444545978722059562381382357147570119025715785017840041473093905764523991737031555617358970026475734899508170679186672767872691624184701683087984899624398717447571140079340832974121131756382919198647024594013360468165843226672173327178722753211939102148755484236464298486677160141103934539517917315743562333959328205976248362052286279684622705996576222373069927407278108371902940572396008883352923896857830348152540529122643810412693125840403364858930398556010048810094986020365401029410213968808975852807070594551556614786128854082251999063020588515704030366960322443072229488700967786809213326409364413388746216252372506780635304531440817510261399754094167162945771791417228477336912621223222065777439065379827259321709160217157482149285207217202225676012537120295359873918872218387081655777361080662451007068020472514100771246790128665276257433028683465927374060280121634221413291840260659386327413875596599105486482193899214286629921030157799140759304938718538444175523103799010580541652721058910630597842765626764017319242898736091197589606501561458262817069682847575251267003290526544480029204890864237206074059677067466013793532765885900328932431566380502908811504660078958168836624463160556567426618096975902228760587792332558297336457927946645533571375295482306548735225714310845330808344695741850819563073117265302898731493046500720059524084160619129138569904788626893738251797954371803212886134964030970423404212655231315472671063687969304185826316814812554202137461164207676881811794798941321382279657654106667607204521858717245751018676042414519720048691602611650162055348386224759144075776229298208625108748611560731089149878261391844101024117922019472140475396792394837738765666097436471140663992635818996410636391811446560857365493411475340554398782432577425068301325095058264606722577439820856679023078429914655197909500956801999950134785606307808585000580295934330676071623519805325782729470545470336959066134947495089011300970787513432255460505111613819913427191860956417474307588819448655600939896543594903761212221760363459079875794264989986558485677243210551523425562497980967594416656908088251777972781135078426817099090197796430528898369842841724692006328748427883842898296152801016708313770003924602589321606733324713718762216533803044654688863256565582232261977899976019270403368663199536442906300112088598616264638528860483244358818057750574500270581392819010001895525507331013693870510989604523203284749782501683970273322247663835926285118897381269115983645426972798403182409069057421121623157184652877269285902956750376421478222733353166381624096919222194240791837727652825233278625139096864231571171040819769512306942350339112305309245420860382400523244170786985982078802524766847103634520939993014058255218603244192557185809401563574869939351198399776902646979671724960615528301075606921708807362071020363912494494211822935802555531816510415743374041606081398662817883732892438529684113285908866888384626540987934451795334439683397807121781919538219682956402237608705583414541214273480361242899154317846535444780584830787126064182869485858498995001008596577171792375790811487902118437291249440307086785351583253352143722938905100764582091417449298966816242286922140419972295148299894004581328292596076045435571277561151505728638515587246258229979991344775202114891182956700881988763247236473980521460738843672650361706614041834345928887775922671686184692395591187921103739693956436909731350303549337386706889111622155616763539005634364017858510361744703033038466525092950092105055484038794065609594042915408998527520377588020178575638984636209793521291313764890863400563679053770876783526901436457858672945920323178209186319726351027356191347149732910934471769523937726895723556351074356655568476215622321051280032640126825630253642465259487387598150599403293938944733737846747099113314215617242754727148916224074543320124016888544803354008088739797209982730454210770480899940223092795378586414228866455638130981864044063327402812696689891528593253251617693855090024949003914448131806559997033313154708721570229239789706132143254906930632697335417624710149546070354764161330251363454877623571724598823058447132876211946161500661498894805979514610311251953560339963689428770310849238697378412632287718509266094168077144975030511722203315276146533787386991875141883089630924095456951796439911479245669479286452755903771615015320945476112596729894246037084790619107846367276462022018053102232015387191730686513886691100796584372175784410116425649180038001703520647794204871442920839212724281137674993782442432001948364642547957374232581502111263386473209271934124334511909950503026906278214755449312132045577588485989433358234835178341334342133405721970366801495353183912242449066940540099575535710853635068900882733173542169143856148506947526788140606942537688585667827029503009456529676483772927331624701816915025547131479059646278718044273091811577667754524834643136046581473241882229335553906327422774104265927998207000737310468908394362614009296013768721708504438412676079887768950929567968714293311004767932839881543900599029120230108957719623013832254793494221890966984584316643113573500010347262196658104252236437073886367898529215956173440846436260737658263622716086468655148477246971803628227193973550040734476899259420561177070113674373867189123049511195167349772503542456819293169914237685433152658248609027595058152368820068704564532541637715142069839156887709035910753206696200471677137907927228249160936174013913781023619194565508432321069054765055176816425653053739172323989381162375696392695911396585211682600354441084870362406267560797899390556223212580773871588390897546101603059858711100130806961828255764100795240760498257866815071686697950902914685525400019937992221280093190318771334633597236553396802428040158517146824622523918682185911487464557502842373815553189594008014301126474442180195595036422171090230491154995950282764990555078649283002750375396421557240684483135114343132668536078717096324786679339837543573152439242409426372685883504173108021716987907662055510846957841337533190928978369304855476133096037727349459009883087226278967274529760802071489334395634880434447215402201462908269203702663489171428303200506851480344034474858900279890807020235267205334871087027015090459654920109108307633322385352266932231849642222477174282515697159019314164149963798364489127135772566347116974728992791376525863663325484300191817184509635221452000137256141669721260863710533701133795642149213116984492501452882368892070920785032862120373469023746809502339456247555447275245888044624661556550139469699058453621888814696004969764239170051287491892863332210417238812226790745402255686003392398609767405663632349135589367327709521259286190422565648953712760134633525461941463001887543062635804197062136080738404463054200913994564415226661521717919610598955201661946342809754066126981627981510892844731009282246900562148706889543882199677546015048446333803646832942982735657015949792317423789004228266218241093874567640550194142965892128316906134070337639161047196484543910017249585676829863841286303991346428203016870145865171797144288927119971517264795902660507564387401560552756893187756971984014485455706978485424558964637037237833353988306160033801403316202116779201681370944536921305306652175447649835832601126080588491393483072260184427681644386790762937816105966341952297718066568748542570245455724939537558539176640710275824138977673286379010228677745066452357355465255649781613250753200293068208026629334427597371205508621189370212157688821306082162934932643738810326136626787621049564148593550999093431185619991628184682406727173315254222911722000931412668930198211614022440465920060218517972972393160726959539327861963120725552255238485312888874517517043598333291495915861049053757838431294737797638552275825672485350362626991785389488737488509858970680897680876211692096281960321023586608007244313316953753818665767869189928212011129061201184344125540527125425106929745212580776736957457487586145444792586270594496088345781337206341286616537125300999270942829729086746110875123413297379481588773175659397420823073874865960682011187672877186726888033417410857009216929286423816128749952357585367684209163954856737439811869367595222689640520956097824119199670394735983969955106690650096450697952236114572583132749889634601083182437624763116459544140591994181317666735221398580924929106099114591918769392626555558448685337740957298414615246116411111116269651994169971844757242030468235335635268444725893204296896534266453461178410597269036685751041029847601307761219728361813037430274781151221412127728776791122233457080640166177930530191509649141639684602246415442050905795567202615822259376535954398099583381366300888709704963563853925116944281982730863078972992025713352151685112267330630479995228227821216337047406047629119354000785434123283295092674394149788216238689255816005324917918917531046324516411639504809141208071097084093337833726588715351205611495467322707904165463170752004859256187875462172447328880630463199191208771804614072699884032913461787815400226062294257636048222267992283476254612750525678687535185596479179428761643717854641403495300039257054040755632942787941123627200875376616071332910838058110581805016236879120303902552958309931499069305837711054553260811053141503509896451524347363822011071068061618395170452467184901672443789380459944284098166148520191105374890005534203950382437720111466579230413707381422512105342468054221076237505816023419888539242186935371006738178919869030905772618340178880849697563730118208181504868827417137467929357286267947609227168406773799768101040492440427585117280056438381254186037730768056065850037181897589591571579387304720753192825896361229411816514778448407028446782866482138541233342971717729377540867867416772112277680734520980591166246483024015803919489419863460994005885499166732637668203374885171913393422574354917155215754321740764165275733232254246013869645460458081757211644593998393339004704197795649432048546848724672369026387957545203007907887725369400986347939723615087891849445302758989734145316335149913916990950347394623953679873534273605798821409362103094803891476317285548038721286761627006497203786379002890044718166541909115754419661105668995409675684566412975939456040793797206416537304007322309338239751831061163830871139871471948302931352091735068439139862979723366461357880610013005658110241304320837761088098555467077637589828362792146118010449593810659120305784826012235730235212501724081670720235437242825861323338056960307377250884133194155861952127763180455829467091087226317481375689287514373243752867205666705849749823117024589417163805854487204790424053730437887246414278483078131578017948151081873149651615105360120291868122005218085455240717027960679758111447823779541756899357738103366561155917326893614794187119665197642530105482584518044222524755903370567414019276177963247859912182902052949133304514031955651893340258529547190163374208423222278055582080484133788525394983052538709195901878120844052520168489960995081981327709078535534773485591721223795314390793823332668110614706422438118610075507143615212686722565555835779182644358802286418223098329510129355155576325689821028773128612147102127023723008335765586520834813575303018611388620350344600627109213128965917358875069618601854371655736032366673319713096941022800522209895325513136933924683422567832142355668519696446386695660593454388891028895851921340100261761262697798164166385649975094258842117404860353302636212807596186912303559315371978794241152519582827701551011756130056829736577923871492070003729472885281058623618094331403869279861543063071581486120246940054448665871161753760678003514911887139512267745180273819601412912006629963175626724621431602844755543591791508792431995207476861974706736319690720777808052339145276452975429158798508628160721854699253054173996412680798567511073024903607538425283457322588638944032693388298891051455602270196095621053410357994723629353923882232245418258164283883220284265605369954040110021907444284253053100451544893240648019563220432028591447912342521953397340834892488805145382921896401692789911501395947913034768110993581465636443512300363403135283905383540267820578884575049360111790606203697115775003877450138139093589351182187666452303370030112660322269443337133440622020578157396691535371261521235544118361016269836280399047538848044446556466817846164168188990627124342878994190445579143813218944932071821402212653858025828566494584247354269733235791029481687561675339262530254217050856250287931418424052861963963709925275463089518983937411583693083447939970806324551677305371704638722235002831524301782091776539481783508053694251575313075390280531191699647126311230185368426494454503629693862618754974428472206459236533219048620772383148700425367398653736746098179132107928066354500092903284942502068070275240102547663717886229648911323923894118790296773050616161065144574839821486157111171768068879043895314834539151748452689254012727691910897667786419816572384324227443723818139768428501636430986955818378618823913034151797832345976602974235719838299129303676485634389801877153049484686956910184494300844691863292234119075882641856647746194163349201975609408599013457365507800139289431197852311351673586637291900631769375643505066639761737795630473395882579963539126778649054176465708884264415655292683592622628590531792005328900147297664986937101605516033643767018820754050202979819874900560694405210734624343913654470553854412820785795589260191815608148689062618016928013610145360734703132246185203870641238815511149280201341747669136513171033424128426109843916447442512989060163490982104090938986413407933864359614745090834021158207391708469603842706299233668074495723699321585810764541231303236178095956656728524721872138516028873452761668379201058571930154251219943039403507455166994910731119502675339242288733341479040546343394427178130116766539544553684281977976043397699651109796430323155060127925879049617103643233626966559619240472039708391305419763615685916427263978982589996730396969630840815279276031730800707456396958055498100190118217864641869872295335404183745382355312895519067327828152543195653137136227639271116492633606849316006964744249705934370639998202816463569907249653941580994354900924677647114828630160471767693324021618556647785609034596887042240505390333662600697600807587414651810192208890320408508166209107867729962349862516201827547391335257444033982712143733736014539582010772801342553688688393754790663997766112364944038445564407432720576826836805319471310647446966236144390975987350152251718180033128555563004506185892288986284272406097655576758067951162749921890940786271363322203411286528464668545708426733202760151216753263701541224810686619300588582005256248544120926480613934043661157052008983935025197675354223309694310943841962759495411788698301553015812056062544498425061175426013962580477192159231716691856996500415642984104102233091662447036462573631558567510359877149776642702607392681738963447430188293183036675019473816312848740886597473834283264239175253344518514635116625594315894721269276652468544729273523515770270318985020208521898992232077227514060860603811465480606190379022039685643969361761999478015010867232651660791195245716462232913071870931128113763936377353406612742669867334869200633748994430592455924676221731335305327562819483598591968057819360765426710976074323033967840129088749693253627001937176121763180114716151464610391134232437296586771068832545684699729992847409600383341101812444809588584330987494369699881941388057220050975995128599508212793553751356851774422537086278865810262963096202111081803777367987526856365959035830933638089247677630374887927708107495096770425648437741478364585347813511937739085897527854220031136802023814296900006305398454348896542661931326977083285700864779129017395907712813788540598761462826111500925177286517947149146252586138224226449185600786938101163450138276456745696609685415233315120675234455204715586744743270937402273739007608816180280921005795025367079346344215810664307197387463709698937584399302287993044151743800213173119884126502644658131431610624298736293815999556201229048219419382208422451165875270499635105571839050449944870503789836444949958579344214350605650612891378510971499329312932111325888136123660658399254038579544085967963824854005974997483182585750343703968709216409285076467143924996245113868087003936059831981224409617049838064137737174666906622295768287124395216101250036943039428476375633365372675153835237695534871245387515096767742891630943060239517997136964762831367197015999013990722005160092739626718729093167754884899516975632925960588225153090275623788913663611269362306983112431932208733631845266409611163531925284638812103690472645048471574601621281733864605344091442620171584542909936748074246996794868482640953438063849194135238638421929716726642002876938269378709887000747778326663311992263861279243191288485438807430746787235934990035242089022929990195656220269400845212081916726739639222912768776296476647448137577592720871071010268344176590166754378018840671354873730669405093769961014040900575799047194493085711444427920457844326123944274157604026634260754493228171139337081657029512531381495350992182316260259932800426028545392465170864147413904240854284794045792566591028747094753328146801037699299250299623492686202763705112221169400770983425810715548572341912058416309564077873077614908645882937527087394906858324250558666421456662444761380564757095978945125059528285209468884360951105633189635829791510790987826293993161724251569472033463332420110575791158112065980615089856952832027294237838264406624195991485889787376583323104715625634880582673520345571776151559491768893612298145788408512296883593425144342575161262822829700038809464067200301727340874236501207999501260599034428895207918372299341789007034298074140663189968686430341235322729798292228692105196954295496722773362997003944090688678822658896613159152422858509197662456051455095191619788121474295382990053439467326686428541854043844261143405768654776723784469939807309241617236266749232563369451564649941537191696697304725296150214880945838916745673600457593807214992196145175897562516984566328034749089148721836117702396474575866591514622792258780492376638024345260206843963926233962532476957293646745877519758270298449485823166019625993275434786250187066806650375980568718495232487673066343918940117892956516123605995327514951952192773691409004000999453924028057512927484647640260181310781683671510748395336352365621468316250422523866246625648202697840017051743812782648514009834332383755286514619874072532183908417735063072330653541986003197314567467453355206819531504430859395972737592805719200217346805720637728275806120354670184238834369053941566842590890808526379376024918601080112647383257773278781406979006824339217997581286305053448830907292381705680903082119386424483959257322405225282923789985308202661612748085458678006396417287510063100241096501168618246814479556290640240324975928665744906334043463436103628709879394081996855239989864052977446729908418306769557916266699799136179953285644273154459718122659839991958447522006171628659898479959730194016139057825899419513638028187394053370640354479044038265089916232203396873475759139976839521586876269601411482780736272169589224215428003226682163901444595645245710065272438811561960682427487227702956529973496995508492638017517136790560125414327011714437980389278111510619154961722560006630847736798270878376149122556188803456211562160629625330129460429042643026151886446547900277315549766458707415483021777713958564925532679695988446858198341928440244942305034375832985336380935247001170178542392465888704279503697429917606225714589221639953440848175301156574779830476048882296305074085336901324534751923138073023359072492410992739634466880057764440772914003051389227328581032040036077021732122411818457041037386764791050181991826900824007845891559385422095512840543985736247396196044312133158611008839681409722024765703859647727633150594367143906015656292889971387396366375893581321847352937488301443855529546425056758592636990901877206912208646227279481926009759727649791278083685863374089093488150489986400906780650362087489501251303804578625287915476724055460179819178589696602745251275494374631386170104963517224991913171724592522077059489896256260493605791204326367314097186065195255840856467037435379493109492050160466289788453113237859105859836172804394976177302124286736473540511156232102951538350696226572571912280626567976543672905823698973176743174937355506249094350371916972037103226275406339097577036818848815282860108446862214311803641086906299833613456070526960263618240630454000778144166338750345230232803962829006764990671947240135020845209724513423449043359176119593374508978054159355653075181968703748276705869763755474466328816698547749187439145982246222182395436612881615665020411530251196141405993587030326696193516388121625900398995656851124018916623153926812644675470515437219795703433427097466696642756437231433688157946717048443917935424015481163344472818035557749447171761221839837002303917299899489514463713440604936175666050379505907247741918363533153272770462416332142607259667568590608436723287417914877564294793527070348472056948802214666490538836471721835736061509283068026364627973036894789927223822881264697775991023126026876503805692848318697550766465348029627260271695020718362897579066214566348586642030352098733637328036259869834977708992831701827778695003106444092409572579313732658689753172160706581850207422342150589017904282943532911909998456087432595445518204742536061417478409764079450356148975692167732336227145995452204454163605891611999342496585793237545209689007971403912033181756387745329851037456439291745564237774946951316743702240985536072495872350790280974442957496288550500578629158885309708522811398527338443681695517203238159721910400248612004445963622189327062123698826756044398088116420277408753891090539899168814509031733636338738257833872307256974218027433888944368084284099954780096608144375997709103534894949271645780060399277344374173124884296191326449379467205281524641866168796821444603392783711734191297024112161896017726552083586433609076019266196048918696469496801348346943488068062870816031813327021277717898481761257760776324395764447515934873889936736091567045004617071843454156176089299615315239627393752873470090796738457468008057290935100461300514974899975064477455939864527024436056675173206065359628114663474560299579236845062120542068456402949555012545738631074086810548290678888271687990693880399087210260326439569654126303260244173941420714011763204750142757064078038897969387573406434025514639215881597330833115510466628325062031153469990527592590490200385026504013041227724267909929006598529602031657444177309163784977447668412434490330337662465482537767392225040273846193609723075142245608314048430665625720260336668243073729116568880835327331300610032074268712986011029239048719154546814820885976530431868973176439085181693715950593126456915175526963518602169328019535912811147810179113560641351577636370680213305720173226914778695632786401671541675766160879830837103681435405448910935657141158431587377756798978456856869019865977912059910357901000429497067269196478542194468776030141576306396206434526489183821456334642259179111838468691163298516647634744533894935253795520203764568586742410147830938688464080213239174659173820355611858097038281043772314701706125268848869741547771878756595017491870070442550781566140363450808455559742538952258902376975016409773375127526832109331052106103506265997168933964567473618930794988436023519986338735086724080140636751648426526370139580448894869393783747109245727150843449754777243506102813532152193106409249708972020427001538130667271837150876758049623758501600529090841772744483029528902526111268646819739081344890926670301920674045106533117336495284080358706751677760989933235924355878782232344878391424864588232848638828783252561472584301988315968461412950204811068752094799960861457262386325988749694866990481004248706498584616079030586040138069035028768895538072439437997004896693259029971669588404535745208342701789920059516912123236788743865035915102324229343826202649724750401648492530278034254601767150169217858091418954167649414742023867853142685907893388699808151157056868995631939481062605773595730668139260774502994349286741047335870695922969031761658129973564131872025019417198183203157594937255482814998992345111019975811696536891283635355138623115101007677376807249016120519185758842390662869088962004531166719320354554177580659177288535584727039142091350911310713836488293877193649918359499131157748510329329397814749195782868508044810579685570729243959512024090477323866403698203396779410260532118082072706616919965840117635242570484016993242850154141915535147878259221650228448540626046102090786154464067133974194506820696306906904327308833460304395671360686075441265231355602748735163985508449514031643415593639119641772407718980104249339647331882405971934314070770619144913528629400388821015027000559254300631735832102386890050237154505880599278859566822263474455357033981384154084069173245832847961571469707989454231004240945291630822868153198208584417086942794353805188491024590064734619621671674782742569410867384216347279005801334627790680103235317365519378157162606083822301487984281750817981131204758178847968009267105428657752181434807182270402252467837328983193247827121223680092569367695687727248473547968342124940918974132843977770345517275474961691508840435682847700124686498002281851582274787279967466845348199737895486066085734562782090702566375816102872345974920969171510915863412925859408951846648947534062223890350977881518822118307767620280148580820542356412594380476020693153017723138747106117005688112331775848271291402208453482413014825694322030467476586467570775134502497729587216632591905301392843881498136137064693229298890834724314953346299933688393604531522448805343503298362388016573666678456387246872618064410035309679864118530222738143925232184311776564538222187133589749074459093541588940045447578916655279567126279961350964480315932212739091800216700722964872646048200650523329101040656185727144681282047391407355955707230553159532975984692733068311610117982871413543563801009473887244666277626722584349386496986352789087952304335493542009596061221602394213894325672115819927769190803685836005267911968327161522691752581212151956377555600033518979644267541679157820463557951572756036481053114541613760674010232147796985740915716135655086829320852648554606454924670663210398100507425967719663846403665360822171361750080364102145541389571372408105911373729014594581130243036545857112349314787029746982013085858036730801354635693201431778699383791184446627163369817264093042433668279743586796571228962173857591990742872526421662942596131071237717894278081707699465093241293338514143771361989941986260314760771057128546342810191483322755552000987679014646589296984368627515455507808221119445514101165561028478280399024198583888132513044279896417319201584749170054154051159290678708613274029861260162475882279893127824154207323390221966909952420942096379562953451718753261579141149806441091841510822149880321040661442082642204703119069934972055975171533249286605877113965421655343948947448746462679502467810623468535503289092610231035513869013382679174962669269316859722097803306851774332679711698193801796552600119164370086339437463457713092496137324055853256352701159485526767004108774220771197487997767933815367710628128002069813084615016609635492115526920703500550482265514456224113572043208315982301858034368560588199785958440233669433940959557767549023076898209823117108592623442054473157024775985604275727007794306465569665595315252111014817969206260151310008472749074175889710676023178100414561274246455896302791862869463764167946431635266957794742102264588758038354967980122790185953775316422538951582497609151419181852794875289300544978504230670621266921575108441219775137685040491689347805781873058586562551661354009535729803667915053902219943785922578251100338495564365102216890847173259003789767509610291588273355443177297986715870727038987432956398040212626307952837435056860879482927239043459048338756035097898717744217691350395057551844928799187608480705830680381237245369769036502882917595188558833094260076824686745856488174053766665081797663447909385189295489024039350832644385499159153773659514503564572481679031791469240920840501092122824198075182596120686880479627211293053743037754423217623043024967173039080882855526057842321213682627127472114096933502481093727738420714729291225724552844307220158627251581814827627936276590839678994071647392404031362024423151501607968298032976950395322705740434053823762207519870531370328276476979328599352573072582702857838848894028819127063566467646226400449040882470640052436876505311053732565956978959771590029536276610766160526468476781953839727709623703186647920879257854390105920942559822037123761154635130672616232239369609692537435971375485741318600012551496879564191044399776255012994792898434706405378291405887819307298221007746957468753764423444373807142988920660587363511227577998401476801938229243289334960564910108586344195109090548965405830402319718553856942470083782699310005995274896076710741868127818928188131759032204559769980779215727296372538138499139515226427726967101248077199152370866511067831488224081128271447821521211264642931266654581593336699046459677944714709842867236784535779103635671966225931331787605917338089851958148010411141514180573543715068993639573175761427224729419592046522848959340314052804301688180596008049313393608232391202013313275268792302489559580509362188798887716457803096550168091591115312708136964131354090963326105060315350350508505784956812337486906016662965678374997918594401353361211818256955929842417335680546137079530798954887603437416876236366495273716384391359261369915504581238220363071254978649361995768009970683116616744190658219080460825348849990032864061345619596994404519195589029250619360994360040545423931230473370112831422717934852747064771347154066737385654067888384148181773006386738831928484303001087201432469984621814818881451857691912401139008032721837471820550909676874268478649556314804454400828347847384932146157775553540676576593816893186911784852027871731304760683387915303399418149559669536179700389943236290293243320424223548192638179342944222285779812811978285412115676182892032942950425606013366471321983358037288783371157021235181231045553915164957568577028954774626883322235528566148546377056249685396869490875388481844166521781016422408289057771499432924779233020851361692793905199888773466401556499488484996204216183291088700367642802233127170236018879008503128021380048905685464453235724393688963202897073077414234308667191814081119128734412716767079669263475318126433984425943406203626129601760357452106298350598618770051798809437154162882072257330151572198063626175715033097542660068593295085308590425433306759008472799972977212486535961325179849628166187921496029711118486054722182657342986679477793342206091462467986127309545808354124710003022545904894851106124116573485198498824798765447198587537403463223693517582747579941899704475762884379432822630143127074613182627324139092833123015563767688213698527395981288007989628355959843645619166565177813503764303200008604701920444017791579951185056771601141481475894176202221054026002588469509266009133150815183952998569153663333266353856759899364277010865445656390985932639219923349189676955041022981369407994921903626782552295060621540680409935702507460767929040528698340227361302278177053454438033453657980179482398917465701250295691253750766929714820057463110182091006372661672445444230361625221017294721043071189029722355082573586800783778417314030280029769210756570224397191825676446934969500348372062475143121583658269731056067765784382162645723925341358855075705673607668356777212434178003670880390494175569629454814231776141384055165465243740961635373510556319224041099094533984918691030291697088917115385181522685190425516400249349453129283528854539971933972624421047769722718511997634363273854242974527001117262275674462343624990789055223018948165088237120712993418728956949116887973751515157542776624532657487062521649040457532151120789265193477466983170619455356067191854895285197513069655931524463095343757064843744240433108354975939908280463755421387280294583850201167441016599767961771033182226159456153636379760388556531669994284974964413476480076868130583790872301832840777655020475108443120498017818887766898419524804795761475692487312004123373616025513426603583845279875116433507130891657452880150807057390484619872536150188382303084090228224418078526349254555897536914968674359610703248495078816191592543275827780885750991586265218803352633270764634112455743911747220370015137170546036338217075291714770324891692659472874709979196322421135111618176103496446345516666482832872313126968564985465396766068259213027421660245658737682210163032598511491821673689843847609398622937532299274296367435181364827344172834693109963922162752266285016849448901799386503329690962809263044541678619755011868140430929002393965389647512939075478565906351374908660079704719446908269257861900202652091018238258189320492870893026168638676726901753576183620236166316685921173181565936580612816245866970681797959876765631968442606145299744840983033073993293155545551988059660801362879921126982544460822445388706763559624385629317524925075363591749824690865246748433499426412897334396459096612446101645675450002666434344340135649428166963486241163646378488035669176631314043945228439510775320954931611824664588506700913536038020236787396341360579232280044117141451490295002594282804473158581008471237057993074648616302170656284491738129287586248973626623817214097010750752828148446082056221434128071012793000859688741301922082393568854268623498169313836529250261868183998755742098745816992502569501004071576479910007409574667453180677612011515735775231581412525568784834961622772027280759306736463677854130157682964323039396751315117822145500414137013850132127631802610246523160370156210990185599251314434259838839745854399616074643615398612042990240531758081813898345103911989105152346326991045878512536676343654240459535066042282013461585529839583664116899186636866757888570087614697610444415110688277321063597073669781364871801160169627249349919058023619867381912609367308606825032978510644687039789963415308648323201842505488152376332722792220910556751537035572692455460981662246022311449344654668799773868060799428760742311397033800082650547529062833172780490445842777981520846785190381767699528092924742895652108038224840829690873103440581877123717243756101248544508192908949020282710930948877068693056502300815420258079377236450697050500487625626276594163359514862050305414706033894877233698252187603404352779546079205111186743801616811743518712080446708485949945761053714764523265831127791500035707709746136781343075781851922441981583032047066906493255491440685696097689611184741003216819579090882481809312565969692681778512962587329939133914011795837999632675551178232513658546873453666650371555947739875644026773512592527910652648649667116957507942560007561655839587190049804018231553687539557492791320869035275557493696514701952737824899464821190648201001684931238008716616226260775918753066528863142636490491210963850389088863299506256302213786077388622584410788905123430331867221045569887649979823825830652460602195277567144424464637946869724707790278134662548172802757316639695928421589192020984543332246719918322568239485425159528355872678213435231506358546678829871516654776626760511122002470856809425723628895591133225805090757681199634754552800612250858731113864104340440908356534403129319765378306694200706282089222660002048708491892046710677285428537038469559946744063056348018130900564723819365668705914983158909807867163903135276459437546841226778650355672091020377199126477490968641399414737512906841701512006099756838797313013520503238810811750772774740264582642831223483165057028335534948244281492288250972414163068600209898252964134407903951158580560546271809271609854996980499589848768776884338493624819393316822590821239110478210769473801341609449395671363181623279681742255751821127066334519075466665289306475587084612225349406193203510822439768898901032590007951481733630308362375775529548328270983529172342566807147012167570235538940570728545061505517279176351235579267784116865554250179907318964336173948258494395507006920650696924914110540386335907528662985984832490689386887067014465474643733813307868901294361016735767529462027137617988882041562870492996184376621733919996455605846056952686845960403376957551918301145739344211499834627159695491284262117550566715817954121127800443127298490403561863679494025420933644497290057892730675523395645989963350451343355962461991939421105751990485657971465344160940998336262709927741779322292222213337786304340275282166852829807856194484753173326782138182984677819593997352341765952582774920802037474007125589435038225696527509232609936438784003359263480600575107086177774032702383346599621844231991738850303354542610961481119126571372313732002376676489173041740925466040812325055516606672572693515482365232648744654778316304051721423941023430307812794478009178916827907330141361954492108200409093173943849093335726039769056962965944715127357521820730016539581170822921268535643742828197684351713320931455797317380590317949901515237840785094289217006315569392480895479860948107886120427572407370069052387620367141449534736512500611617407418699578532969542048442602727592393161012233040773318929181566929883688286293820011635245292453111731906093887601917572563565031189783994781913917770061730610014556928434179612686808632936524523284625750958818200441728722428031064239022339537628404960984244182946726380873049093298919988707383197736456056486615884205188157741035267842910617562234958831431892375821269904419205989160887044291685036670706461719760620819930292391601262884623848073191376768572651602251410720576295858783580056541596547195023151475298554986076751435841129353104669865251059554429914139334464104678196402485881513040780642271841972844477626735239244531815791439965068223122353682011122491032621152578893554428178775010964875273565970548384707851315660224579729479105727072474150922520209564073448884681211460231141670978529723693508908572255269136719962992091190178050243267802545571405898738004364257690806291671117371157717895964343952579174908295539327717960178363511295325851954215789829411481748207980277098823924454727546520725338593851239758763383704168423192953557772450880697011986864920319900795079148707195699257345001527054387405789838806707556981379017993343312189274158617829455922140371804744995425844949759704867057448151590283497928423126672501932373393970839951333865740068785910543452285074613114779771879408387017741470303064189872646875968002486824730395635254240114308283225436846114609844165901801093099064875857556135767794747923066620263883258195604118689695024540844387791467742869217099100393855756166608861523238069127503200976355812210973152977627400242927482335819215526546574904122814879550250570262910829781308990848943395298081941393853955833338471655517671984626214134635573893879140145670206895211818045346793674806933469262894148100381854324623860763354633807156467849681730260404746072212501097135503320592982320997724121427431242142073724826817303497708809444913108729647153380047978226046589345393122660398641375896914993956086756957046378100633248143242479994459124738642939809669636992936895239981086231226574497597420724638436190556494831494906386794619144468402817462734674611112065257225256118195512750465504125424835307937034611229847079031137317245969258018254930749638780942787596913560736792778034362240185999085722290055279026342520594078829558824031544353697392940394873782941832388283906321510952688518385596258005580721227231462365739260873055907841776014540847536577124239267091642072943318279554046475239286859489990014321979828017542320207816162203479379305327328628660933801587484305061882415812849134332720770155034974314859230621344739499007491694625286873788183140133878378672995364007800040298956253801892634438683167852239690077683460126710367551799297503478819111436209889846615728625979161701378077646280774250961277857811681430606052179284946071942473118108759815276610910978475229025520911290177224735859802329615711553707543175107442569812694385313284655689102060672064762265409964232026985544870192425732862461550875287205589015412628098173806703669819551977986171569941847393513469288722385296191373282370451243874753848154995888873110173937485297926696582467294917789430386202718124079041957108747879601778683207758743182492300934983634015200194571945868539503212631352793298123474784927848933414870225755599964080157297981283559858532358410597915252247864280867091797910099753041487462152992458746493235656925551800781012221567866431921134659975906101914818186779749933081900333214721000502947706354299769692301089403239382307859807874486811362717005086302386488165363908545274845419099969999206200403507211509795870944650487148597886102763006009370242750188651303521754139250451996326166658025615331038997953477584400828937863908238969799525712464305845195160009416421832894042719338353551378554962438596900196026812413288049424755347379532734019812086353475362632783712945238417701711655176043541449670940641140419738324750828971559917192882618546964010410840388567499637282236493560396068994141636499228122108245480478324463506766970531749233802936371745551193528768859299032363716022270259760500591782847351022104343590649880669565647064447116711490355563622251642008835951065480215926155782390125232502614937659290636107020459862536264569216610155468960032400419880887296681015648599853672490926456671911570292524462787079541698785473844801821661567406267188295579855437363447623528436290030718229356360595959374487212331420406343659500132366832465619176045741427470233790784410142439140497884064413362524286337753289344359249030547809999994710409715228287118859693965180743601903551989085436378940153863962406088577703982275901508945871642984700234649750896213984250906454743637365844129250192209055970239207749695547561551159576273939468300746024984689474263899004025789758451527314195051367759506828822770634814511817934285788620517034797814534014166695951198263319672776766952970557042246568176579122922481929625371272634913834308548807686889114501576236653344508138799160628614279056711754752677889378382139418082552600232205161604048871006476691956634944604361654254460968946331007389691584670684606472802156224880094378119441310714288711491314291851239235869086259225570149346259110183319069101099703245799545150506188178140714527044937678803863728057567253722629197829183949850597613171075279477507805076647351216876012285685285300025645972782501685879828711748487132016546392004716825813678776038434491164407724768406033692995401246584254167691311001845568126290056126783349504688804185634907492708897333117943327342836585966692627340128748405573357728793398960532090759807520591076117301098000478332917707510715309660450253838753134483057440792844817126413343443316614582471745449398445355006814037502279835026895190965629369291226219545759907215241505446957160945586031287047185528469702349548790775650796393671546018794363122713854271338227305928939676333690902516262760045604656980973680231575662012573585010761242362214348883539195456052489284115311260680830500558261587118215086237914530045176131677821620245215271986873445046080225104951917542016886411967057972361412713920319486472553487705053051138280530319229892426344108623578795174367469259469540571269828201943604591523484947532070990249355491219677952695369473343733301755241424188645270382033561270045343067006218435835062384388687034405853706911754160589737242157679916459245114218811014801263528623307267550048269251974592217234912376421292021687876913568337027990937238204199145711441166367716471627606406151783219660898520048331874316543389149666611420916758760195881710559003676035582873252947123576994161150939963684065168380917909085696138538287531218443526582201820285871466972596492180415248246518283893401680333537420613243724564761597201624993662751324836137448122427761989656641352816198722664676862332320189912326579020177347323577634017287027346777384779629472397031700923816122667308954514336362007653637936170270064472899553076001087093746299076600760817630596805835091735346325379778508710918474344770281404900935466343931957215129718371397082339911125543376275897969798317124841824320458110014999099058158309369737909397835295924041514036091682457360456291142974022036712671731636162621786166099303614025040379889230323153295750974109050420202256919281316295826873646470803327514470188640956469675576459100211995642281277162497782440814548073774591354813774727871570041950806945870945467090410628832252994817281924053842886005792710862944128385338444786781932516318159518371481367298830609574335853566631357110639769153103401960791148920323595718946490235955652880849064814663896334542853044995756358413515144661355643653135065745371384509817204175685859160268172023580950698828846447990938145557826268557251575487365960082636600642638143773154038469860256400597518384491398534566737584987462371130484530802613447614918951862777684608648394334141167991773547406674444344086178685332128289032548307566747122260720349525927253307415749015244058175628276652916948570265290623842687883456050988575792408056066790546910499372147274815133397035478818411008380138226807102123473590989493067141427976521133259593877270469659631126580110001513029305197915330525799114075990088321111439537475776611177626288060697163585143129038679945337002942567256481294909204865084085027911395760509033507456944071779464842143617550828012079997931520472164135333934769823574862980484418810322924754432766096764545046263712174347934646081671476037848453663186096484717891410980274122384340161877435566845436480495495536175252731360997108645830225034539649343957065032743770724145031930737716581486138862456850356397307840206113897863365087078874562735717067126625538217507687916682908450407741610197945606807755075041186764119265584379189692246579119342054196710420807257595955503106299722056072725292511259200778585804495662874017762470426483453878684991896816145896546444511454064846714154698063314058267855478357646896415394390284048506699580801281908609855941632709947009546991184874218598617056269089712431240533684596083226754595147906983943961916686787612912117006272388738226861071571124799860121724801788040446057177320887059446722311186642764520883227395264540743841678147026995995125596319372597330017456120778293458685445177134736007000197875660648644687531287376357903788661032924280549559107952612950782419639885172084758573794511435954297318472601723955458941741705891676606348753844069787291925746097003791146565909338118165548038955669801078257549792034568579663381376136066557329532292650036701993180378118803412280411546410233262214109599250975728290402172296890306726128637823856550546590910987748446981236984009915956752116515643066266678482447378845901030056390026495160990028311444213283960614631571882064464771712941105158837428073961208177278613393858410713881874915805355854267250627710371228392435561642094992584735875099247417775641184969559769920713340249774672624859512833842371355426896389308903405628598017190245941492156089448354553037314525301466752403946041819105743988165344391962613032525433481175644234417919212381851060777920662985142604396198954999634637395064096593385761726288619527963012295467950989689440635117013192405128974600682082642255950843316488917091710304797669309803172276852176776681822711528387901630939011640172558097565735338063408637398935222783812180374173595811688942105715880372361328156352198979280181178343859931931475003064986308810054753140769195788731613346394183838301652675724950606717704924028457167751692157377180487158595927690003299085225528324762840914744332162153417269488111309489826621210815816522762105269932159048780564292707922246256954970075764327523168835226716894046726886938332068830096619854006980840153036451997670694711005676816051846615848821352096006127010315892392665052092766188264294418178784430995536748223501379961931432368970964264833610669744644410866863869123657789250365577784045021989454665055639311719499386873711673368249335749525183209978498442515255647415503928915199558618215061950271611918175597066764676837537058275735748869508340985479229590791575585720987877949551627906734245544945503047835217502285531689623169143653990699891202629104671196877920002970138815774453063854209080643628724549098927476026920452156256643610616551915563698740114129040217131768893271786001768906265395769016233631626681587503912114949589844297317198948325432481808687120041818702942404267120411444523577836241985302130069005840139478153827846297156271877609977987545148299611844111508026689682360059780209603345708802573819402199189472405264190548248957468143348817449993813607995067626497635288109536189286062547419043446985608367383044248380742432848993088752967103984638196745627857266408880871383891915807648636246078388432315712114892259920733161067089038359437473433556797328237154768724192183050685285442460472779188869059721380993076866250945388652694259239720154874962963556161076611370700505125273841505637239114875155426765405634918451158004451856532004971659266453735981058601848584492532012565874184545413306860561787201576560510565923575505891651501423992134770269066273044142314759553917624471655763640009660778168637899438783518424037096296802027646594285155950116382486723173096897897008464928028950757653180518942035897254764324288719822787198417490218506271769069422722008026104033985248539079825190935644031691490120608049623818159781519167726321664028391615577533232361696592957168446674978892153830888315963942972624640450808591914304381826445066522716235429405952619740297821778099041867569423553721485440724908359228079273488590685977422683332791672862732579825468336239972492028822685172958390014091787229553832221662779302953279455116417921332510681249565960599870676097796889934713702586875707403047412108246330933377678068860439853905139268938974560343033916300584827232278982085279585701030546016732744510275362101926560035565525326077347285477558659620329576871062727265649487085911301113019644502560286144336696648996254122371265050510434636451086013346363262048571168405544699318491609188552119693774185856628427094615056644660057900162084898113110115547347609772489141620205895058238795426539719318089645573537189938857769100771832999189867041144335627364740359131969911468815120785792949814195616087590467460895445024368378665758391574748238345908835721996945331941486570650013285531836444247100875770522075792198092436328452976341702066552517480324422703309746720235930808750376167146605600758106349799190604989681226409763033548130999845752727236614307464350552267509364578467638477440309080612868366275123264146605614560683979002320163285035308002231673295279322210568499592338395489631482228096658724120315149191323819949527330912191544333209553891532341938286258345842264902966529886057610786431282563106461775728442345499880332503354420682755226457441813002372919177581830156866654682376580397035932443102320915683195141235396761800592304049819315703823234083203672213180013984793228021360358188461464096988041447851788650796039457241422629829555771076110579027944749350634882019663767246063421332201906914678388545453110166696643951292012357363217229230898587797099031261847385007762288934808879963044574403340147797891138916743341477510984764029640624496564497476446453482152644021433597884637518680144521063138006636929317141135674245741421724964153789211795013987945751279906794100567864168343130149637008022874313970500788823840188326396555918666415354015598724628634297279707152859794882924336954539864300775584826211298044542601305379997362157690125237028595812849533817814431243644612456658643168235452847898759855605852314013313936205609074563898708772556934621667643227121825595519794039348932149503814790079087713059812839926510550714998554446864715463076325062538916128255739503009559098695900939620738534734906696694417526952514562149501849595388666949641348639995657179610731193724460193619252093262301916722469203477810223421996517094220924634968330050049453088031452970186686726744047878441641900368955943612202119360585285266675033354076825273281696236533102529865278391458312094453945614853189938254407799560201429484986509250170877667460467646145694021587745654513694685627942897574894852411375586206927742178603220571924428251614676777553237770313444668534979034567687187032625042104002192986272636435974366602020297238827292233375016119521810076191905820133981002611543218431005131855611725284923400007602919175481173058418359686732143329036839122161800748016222310831075832735515667775218500446642955281088603550651980522778140369924666860101440403718556881848621840091645254441263059926294585523026844018724441315205406190853802184453512604811277220683995631737544606057376308965788637972391211233702214564639409686062662951553631526316140398641366592373723823262802405764323269138444067306237084781608324069468038751068128336052464184970795235523198303956422410041587271743776198452404082300950704194358103822412360183526186898675746404444526293370132565163987703464154817260962031539458340941933271289607327000459070216104087625975893406671891971050434026469813949261973545563890078021345957034668541194239204747820011236414967505004047072227146133295414404423579257221682410931943326427482114442756885848865340885770305487176677975803942479772527179333592910867476351519704771983478823564022580691958249276342485075802459554580858366792533957405140128178977632500007091716110835341314062754585863802193102633968672672538046990455209858984095354350568376894529108481776799341503188201927324177328163004529114483768394397397001625006597307645498245399664245759542583396962860433307432076820074345916531407375524134654345719758865502782758775505118498299640608227822136350302976671128011901246110824391540121431893348036736112327529314008984324208090677257858413846088081858872690242743367735509319642115366088264830333305408788816254723761595828782329912702249998172915892575255929872090767946804534547473875454441757469940782725324518475912908698458165969840202022885565212140249315347606128593923640061640649294442607941934865383164166883778592000868184733816580827589796688842927446761542974911895806664523941827367269742040471316967287152070019870242936744071289790815057687039621733948002403676801356429167671441694771435718129448067495010325443206179092292618729080280096049592830016973754203546093174204440439532090329738541026431138558099590437747330662757384635901666592007078266691436962862782949257529394091800851584055841788670769015645666441300258367984298780771833651534042695802575918169757324008849305510584931143079995452158274702435286938336157838574865215613404715205368775260305658819814357569772145036616979290912767328542006561071676344001227932054627057278599738539031105570567918776960565863594317099230125657003063559958300661150538594925485094995197360951982771409119877823294342414491325414587701765671231852713918299258855904515481609588170451316351367477878294114440975039732856850734081970272311400594276580119880182220906824124913900025439252825623642917834050204368663611296967199048692924195705425601692687726252450322754979359569772559213307005328453204185402674429112613753181170193799370511082798150424408713184528102324351734919058552622952345413173972654209676113494127223350358245967317326163479389038577621529374074188428229581684869178073112119349448299192504893400294716394473221505280044327919100813755789086062527009907783134096012420505913822287431039959296273119257581766376052721713152015623608352982919906986009545157348895707805222060475743042507758005427948392908886177567922438879623236310269957376353112022223550705512386654316884573023546877227187817402270703541306369167819060490250546662573949775573040541473584893599900244367090247806362854238324301226063786857107042707583449927667373700657847270213471746573930849049046676294142328176985795432254004944166692518920811254142466895533612693327797338801281386053267637810687992749354493868528107468855133116275622205624820586140512235416167562489732386529459922420638048016313814366680952789437578690281584460237561714213134098159347623993195290126801345261813435344111991876023422062654535498667587550034149253427350426510433717818210884474671528605768268648370397617953740834292097997745301815214272129261121868190861068467016859516511799459455944452166626263012736801488322246470285329368716917757767667787894617024898246501964137183603982581199809143552014203652094096019683761555217077094353996942175842996311738143319277589288693439699270511725072117677077713876405204626361420060619151903734428710405960288457159434046592448489806191159537180745293455712160325056269043586636683290254568196453390092204421832239799595164614088129791442869948189256159503326045480170174755896358453494291976287478859254698659734614166009438360689173537579640667123841358515309882056371882113333224728473227553184384129889056899947974422676765204091219534210174364037972087268722730140976341105332360199249708453870970635781957355338702394642615727958448298258218630172491503418454878970021036875797582156473781041767710337391671630115145618261047696704706024688949210083279758790029194049837997054939495495722879425253130487920506165935409096471056549350177782440538125175711289297290916593418017049559116955570940376057404899024887514536589218026834188373677001558202992828173790735947189239868966648902811743408406450468506452138001442415497608029406433244933172981711079713368672153941244490872935447329162769058529241613305132181395989399125199147361423015691205064467854602898470733695863779562392386953027091959605512876288546815559063278418159975514225915079772709169556577058484641916433081387281102017414509391817638780655286883092202370363208304343225395423863796086790011598804940820115719622574860228932281979299440868215110485237784419035736795205396486600960584543445449684229222425791734762476424659206792331419002009255800515086698100362162178469267795917181357007611010382879460596535044639887593206856253883108836427788368971888858725198633138412943869158806204310385798684286620536179839539510855111926863126669232882508775040610201502793633050078923758717492390944911601464525665958594786479646280564732707052647860759638254864919863674337696097701028841441793540424587806669913021273900526881783332683629279928948879424641506771605778187253450924848668905818375374759255070085168184564698760744595264531180348251328701004207559338045421471257202918040222973083312241600386964847878533040620386322613418233042777173393985902942186986521710223248198108307807439952411176549352281377768773953607387083874188952205503316826676779179520098703201418500786737736227734904554244868603763482752057322505294624196020467777210938582500459856324566261956272581969595497797909100687931771705397144464839131664450091719241798031741514770800614645712454573594103656479063164799958642870215470909243381609187929401217313920556851889866671159618850206303971239815143614112138451499837191606044703490681978348484881047583954506746147063244636415658794463003961539878121679331351257012569143153433161905344419399401474260654680875021008870663028392362174364695944831192806455650197129760208059666994607090173755199634680011002534412059713957909513623460904130915047372513285637130322667547323449474955979047356854063423381465712521127771015236209333269857801644952104191003467011130836124719125651807238438496645637481501153975275171187696568042491313498305092171356216371852904343121186519871344149204042688584032869591150971231833426567951774187494326636470363783685267797675100462537871733435048932051185462645840157647298287205844593234549864594338452670807897174125367933945984119479362864426868986191216228608865173351940169441864144339702633398936871693612063970173903156555754859872937125012466008362387364188118516422046361527458124435693974997999848617320118084663379005839431739841228483798125983049873571745581333377827662931027413853020120132349438575266687895725104021164264573760817251056423540408254717324389042460567729307983418059420558338107040850964920892767223016442273535767067890835523331921849341592160974669520992662886580372018952940853106376604019564673570601942709531941545284404156305988606119473903937374953111329119298538375789150310258325948761820373027799926022927235849189184341859057359509213885899384245617337377654312624181027588532109249774703148070255015958036079368230817658133383153963550135297797038124414082561878050005882844525368869434233574878837635873802515675907590168303039709337618442040764800881649192962467935577469441167059225608812559027899287431895442226943611268925844397047870072809584292560378496078367060344011593886155319863141438992068559046985295562115190147433730506541355651461754855755274870617881346514497866435947603041650979979460949699035407303106994869294265524685730828084253909060251323866840493562714138786713999715176189137320116199242801351024562763519672183445625839235940548677685225476780367667422381180604708831946742512241213641972835857063238551783157391968316416422319831461825608625383054408536066354630846244723075585790471223457065891446278389383672495768924023883449916273346912816915532948295955782234691174061785066376440891270564879850864382802232841501988863512030857842756157125532221817899913056316539609094137228105512687779864838591773323608955489966918651163575205919204956502561055210206047385430096192227564989561445290697921468852049648820056379025047475566149812585907216869717876977947049863000741744108762770988479334469679274380535733334488468017617869102354069081721377507813563732518697007881125723620592284681826085983398276159944338230473612811263517118953934291562807984363173253795693093036730927110667989208988038176501620752492530681985987258185925264715012869616947209302349635996156010386895062697995195767191979789832564750695095899086566520186993581497211473934418076683889449803778798940414739236938696111392675323599972011845838487179440710565427090531026916349404733265403937026711695292713586461512378017311721585669089689107625221286523723045404521159764827400371705402584343837816115351445960743540371066327566855296287932471975745433703676530658860277071665410239352797283970434535786770468021518164502248910468421184697752900006536913062723300672204080791675417678988301776804772251804948706321759118095411724777781506977196476670104772057784290931774758092852171497844601946217732245071898271632907078007006612622490735966594913326434595793789962185244979338765220780717374359059697043463844913473784630470891679270300523976134810632935758958676044300301045640847006360204328505780914728189947132414022935899289679883772292712413407170530022024897478486941925469885328218869260273889242807508676523407039336643725886172968166352994297612068881233940164467123325763312366679932208414394551470200428605816451024164941050508604678814033216118236410482926357928716818303342280907321219782993167657980094868767501045539595842877047449820463422061339220580925897551510387987541633321972639009274887237902337562872958691981588056551195813079420021862978734426642018248999139377477801141286359639722005131610936462441039766138514165764717910530390779317870407579890604532056049935027892713218739822756437859156930003656200193239952696298084464599427627171822485155123650836636463127708199615946322419043499638516759445317865688765166076120154813536918816030841839899422436737533297162896955593850364224448790707839709106517439980334965397227274181795220243420422816056158554698220645473755185988272174969028239099471875160287545005248154179575201480971465030985385878348254604229465306395059635369650655788704829908184460440196180421535736971091565856354839654697329843906430664572087887725595571895137595363522612015259254118748908802742892136877346251922302740325568195466518633239446396432138138353630285647406289643810923289791891171617438719547106964203523209494152913280940764014220691557240904673274389666700722090317439888056714177917233203669234316618614703991175568880808426071728221411516778538044916786655063032267021538861050275515615819153406750139369481852443435240564092052353392412979113086428163405469637931231226598831078126375900669468927101662160788081512935292253038381456000369303195460880281525172773849204942580047870242824544744555378323226723486577474588762527197433814841281226226018593446401366739669970709522044120503180489406058362533129077726429712109684230793112390529736291985952284251071416188388545888386578676037396925537970590479985545631324218043045476243080514102864499351646419527536573519620948644892916618008903554115575440913598567104759952898494750057595152366204353541775664120059883216646134332565822711108907208091090085567965433052561490189353181563086794629708510885904129165362584081602115822469538519122346060983004966112802741083241295488440596516533416880850873876033177167983748629476654597608800796882891236936316330855782787336684556774239404478584871287636724223190717342917309193877516965512983001146293979776823138489258844392067810111181075713466690638007492103903725404657585589853606382569911426547349377736151244313225880948250033978692793417339848597567850832592661230336078366914701293418676193238693366673476523618514321477059036035689112660867913033406703293244957644110180122271478522292885647508668894795462699095915099866856093128444910543795860142601939836418625728155443162904637072599694533105461569360840104244653247764569170374976388229217467424286181627544699960821246920267446176009869614844336401550590194739359610899748716146589753018885799928053049211703542777108566995864881024426463767289809360955082416242776637715630246951369519244709527153591171994783680220716421335220411615108480385681515532153521419709395338965049575503937401621175717390127432379145131554686802364580094795408148071895326179156439808979489593685380376887777424285333997248853023987207381343215561400669896212665103076596165825157474435673410326719175926158915687846102903947546484807951243477234011329845062144365425033549879869961186421888074096977043047853302391731848618535937482081493775974939198419683614898915144652082417039050229307982236918548486903117078800047355314421711786967964939989424701962813430540104392321269232903795258404019643210973571246330247666551886019597469633902695065940960390683764500188139901964826862974252515870019535464567448196947201497991134026503159549188221370253070674988204870408715512012931176995246794545820375266425640712439206772125643993974184159080972158805363842544427276503750951774335840274822814023424490221821369311193180487083749563161294739909608487228174702574356402062761662050507432860824225333007750600275043847958580711080035217307600674155617172381538017018615601406863108278482229463778081526678995978513517303220342705021324744736221245170321979665684464102318353678849086035397443683029659994156306121155020140833356442076676234602941507970244243209728237261434160131148224483274066012631655151277132317464726856361524051933298793717435088479028626985616752265782795121974302230932596537265938023313715355543500307854110245402046682430244512273065583382481748857137199770456192874765036367076548828771402837958948008021478514492918079527992134058825748995513002047309829364516043536129915221774138977895579188001422809793317087795707769932181811724303076662691069903202461326823715426352943745201929928843532066509604594877436220812609025701885389050505584614523902750449619813352321794088732650422719632484194083321155363141364563087868255502333010953823730527994590483974674765163901184287766121330615421881719529441522292802311118994213278777087620930848402287761892911748357798333338166019006675136550736671957820548140748638327142011584125984115017634973491329406991263933144808481779119526271005952470823522568574419480108777940963221243315008862947982770537520543359286546052444572165439427549134024364297911985651049618716054954821418148223228135290171175913257057438344540713591180922762055958709863992686950636283287149418498408125559442972601683544375682860615330907147034149257393460936704308037765752037667265353779501652514914060215018804600130562645835576873980207350456854042023922731897702397538785301253676495722265517598792878122191961999382541764793094201693762883717836536110664841359299897417397144076206473371785045863087429150799633099353842406204658871438694718673658207721342448319804571301639754685314156552651868319963195688909873925005730445028957520160417061189868294047492066203638650842216684420790527319192408695932843866397647281688155994782429741534232838486625097755660878588933434063169829300807379710949990430236098621247367565731978154162200805138476435704862368349928789101424608819994827419959470039224607527493122999843972398001511768038187013146490633677138957305451760330065922199696277569633448150026174819264717849314557420655421496929504341485327693735343962378709833754326953199132965144683225473941795309608123084282631136762878875238005513452089764437655689366335535354495263601992009470706065329649441201924292590855179056899688687845970843192938862078322532024743723948063998012409148171323788526761952912659004305691334543970786920656568746749715628106142481727043681861638906105960200025819208498053784198715533623063689382063400497005998547024722830402276639471979227211010720768115594827612302598364981299333901066479618989450691042749159877021692366003906664717699779337793385236926318890403809868600733385007682562873768235116100595218394734395915406224290346221931667896207727216992055853788881658316220349273247937752280646635973821174352723693456451679259740872508655904384183530968933102239255152789846010311698788580472037500036038034565130241651243986023759293433825465642713989351313690244996690366402364894403597992112837322088670672636529475995449117976504974900468673882966987924931124950648658331412948471683916790167974976689371560284262745516533825139105402333345939237477122022080571663043549916490179746322747076353607229200623859150479474309667627836441993487131100293643943180809582367364001482911900959752631100398285797699217038428806609340007486656815538208929025835408221988980835906588609587408223542534395715886636374738855755763811824762128314825408251009903949599326297061305384367415232324386877006676961978295546586660549591912439936059729772525140810923717954080111789470948156435770658507632611740985759725046584762769307892317215538920477048532077761210526063152451391669278492083652790119562663514083579070328876722328560283396441690372488501033549014921152621447208072637325108282731373729091926400515638770207722351944055432729889159904587294669458571326088219107186863648303987728194072167631564198504851820408799060061439663985497057596099773158994374203441032808814784700422182777242221704284484781421349152771137273817469168784567957664955732859299625576753772578964950043338173433315573805069268116652639347613881575314653765198540023678917036244848207688691148571078478977598457263244700211600615057157164617431978963297463623385478247517935481483594101992908532793330928124639442657683295196727819483742875294857820362583039316244339853487781307490552615168545810305496759394890960486676727303817586715401550179921394357575708220161234554317667907706879419885406680746410941483193593395332861227720890437399441684425554864934546233793704026051398742934875718191963023835540098823410339741904583078094989088112225405031128935697986594647404242829570498288753296774756872448433627203489036673734204040242245075458229232496071235127978962466260075447419234154205454219590056324309380157074101152730675214798492319951163096252994936716520853205180541160725335255162967138546390152341034452153327511468937793872619217160035526222870813144267032783433416895614784137766195913686910151465572745728090915887491976980589176689721004173295482297499624521963715810782236533812519373637573664274480420275318601242709844070518176249667427433034453071218221522051985561503259103829147690347900603446078778952259920625811884449374338760703495043293759849674889301649011057935057129673326905632733779288672145411112867011408016384999638143616441324098315373267118994658123162846166113467963223830131968245891229179686818000749169396135725438178676070166313659225515678056015480627832870631924669380224974865439058664337390096988168259143977787897086879249851842279842409054760815892950063302759442987667463916840842531004384413861705491624252723187638978878325922049316120247632897383982324354111833944178417236704372546542173907795447394802089126146690088337283075362775085991531061895063942816873163263700261703062787076734501332800044471497503395165011773730319164157048359825628349885489485630789601820108447407282208881015912683305654740844746173823445552342869391103778932225863850414617764307216006999341081486657280152084062004178250599276540255222830122943596388976260073474889169039181113592067354313266046039518962756153724449446580509284518222410107306504143677090151339014843604844184117788099893194036437762857314586353984186208904055667950299014377825943949959597638646919135607888153219517913192213399931424159517165013557894197183773305732570746699111830024091848797989945774491485706686968775139367926266417231850003240023222481394346231422583738364196089926087750333682603213702615362696297734349985130895391639114057754902325133392844695519177649264497953766779819376011821736716756876146942093398390531539881421528901473027970037958315123901048006421741303347807724388562548680814839540485381266406951382749472893537007578839292681630941025537168993146369794129360304279413205794977757931911193012259312882179094193635778346400299799817873308333895131131640477907817898724814431855443851356546301713857295139706695128256231875994072805655917426313896235628937532063905667530234056041079053288175128046438634815512463604468254655828104263913224155074714200441529351927985451726398048537582651072387270355670375571010609290656485700092042486038958382267516712998499980861372126078873791519208202663717597096308377746271562671241858967707848552895588296284349703764646043685011072655697445857658198072122538721850359690990368115023776163233102456774551054335556950037536497360185305642354634487550292333208987829860211278060314989712973564085304575415708389351210543651366011292807394409735961060608412033934165525026970335074899433865101750427220089546229864832469266633128678869352560580964591285910457126781827469504307113064973508265482256110010865511841057955235518171314875357140503057834443847154124865836007252137991440063865788574158580201304834504905019613181867333015811952473216361083622318009614923945928064005207750535513067792496342311959739444780070074814965988438815634873053547003512308413205240147578567020582288317838882675624978462072151058824157286793520401507749793522792712561708289231404460672574985277354491645033014020445412800736650920668055897268668630592327618337004376289658475041308067581945639494062060387065009182250504336653523233922272246689861472715601016540063815673281704860403644131200056125236898639057825283447192938322496432582822714359742541684717780037331171183461425849259783376146620451017687345802451459177211150825438275505969523690334204546509496017394291639897571620051221162079103736148871608691957513317397608914607131428694767341125143102913128850963642512514472594213031239103439138246348350259389335102353581920509576011444895379855993195289851057103614652575141003156049039690729286149559029311979991444970710965967976247014305657983937458128812206511859126084309100873084766700798925376511821245435384502386071980248757296734148135079983431475070501025973678843118087371559343601545115189788545922573728254544443789477347224311575500037091765403894253002401921530984257425358519963758083123712655518822911687729046448309817723527506753204270912184210549864240216241530965569960243114325336525720936192651847078252786399767599567771133312041727742846368489779627866981737900872471501132514561127861719647195754076789031664058227906463556555324088603398332106393036920164681019291817124474743990856029087790871040712650472445034204126804111214406842069647816963012920764571260191699284591620724975737295090675622754466729230189383548848936865011094440622304299806025445797444352773063183054776642303757491312882284214306877382117387132308093128238972507764160445831845808747295119484461239922997557285867495522006516030956317581430053149681404785202696094969180699072926330490665219615517701152585765229495190203939713690845828467681334105221353788902753629569558004121521326456199667916216156373949324190537885502383633478212712380268541785994354221719628061817827725474473475579893156434944231217338520305417036146627029217675321082779508406616670690079133570567796503235528622024597526961416372253463876173501780022395920496981760977505323224411159052336537733329853730882186436494986074299692388977713377708504211264019514793814109745569891898937069617552333413014934046833386671619073062501071231039037844754048646283049317751078823050129551849244669101696799483220460386619957387767528321548662734272190413304940362419839655046896521175133961041165841373514454902237784055223475395887250285181850846530362240568737851129620198336922377111426311848876716167042802825324402749327486149181410034721363624098847946026891590306167634032706140383233819976542097024535078446377478165508619981167625242795858134734042625071820317391776264855725774053325376647367219602408212580596992219645924689270924743830271225973353398044034305659370563215814148356262795295072075116266317822253016141191420297528788310899690281276186496086029082897882245760180208440847036159415936028339532816625298131870942432749287455594925716659961296282121634277456775385359139397128232181613605339356355330065365487016296945854586941733292124841571278343849013479478615733756649954380959444949298189802376953923141515269925999469712438853393488627232686745677919320451889243251487728735266471597039066333856585086291963953945991706950478266463016818048241092879931799329092670822641597015194380420478137043823608146951429809429511511743295491927913722624403181690696473014831687836659524416751918656168688173578999107285880058473733180405654049397319822804852712769313221373947344979790368241015723524964994780381265741888599175118180398574619452883398494116181704838432239401456742812640717779499489065677169858654653902383117170422465331616855150376153417344187534376081636919631052002088574137891718383534706590426398277869348509963313414971026456914896194600394104823803657461691682068214260716041158419172871756514104136372968386335140693858771136827841256277498572973343780751623612264795995052998736613374533001233136894021668908264711848396581456315932051653122846581163170673786013188745910988869624461071035303977365125057915782710490664358170379674167610275660606668004814908769878746470109012430163963000635891414107562099133939520934192965073183509722502156180604592942393924069451263734903808604451463225752375749625164973032527267704071991920242862533667905938724075409975960530399554020836031410159144122059123577798420657882239859380382784686942440718572300190452202322047408401449414991777255841536500505171725808363678738920635958665999235688793756833700569674363072794695360414833200615339102911451655627260125331449194026237786374332598868640107567344017224951759259031856614244925885265121527261848377942128125646242715300967987381292599315002089438616070153488978918388575798098386037609956218625493879050652382406334503485706271313218168342892213584921189996624100358965919935857522622947671406974130991832394862395506257294225886879474737577218633471309126083331615760336072575650402341420615025294754489308471423522772448811902306176663357941843905238264239928935991320435416676316264249076552716688759506077837420385596245865866630288984220664198237870286425266704363643124313982635741883335549998589774541065986369243811667868118769817757971031310608091221485381667624478260443300537139629862233853222953935028087404666768630053608008255378908696487086636809471303705602770633857949454860874300482745751129100444208737106414872333461073778536097539151537563896243730454274808404763690319900638869782865006199915009427695432276358843318585578719496948451484543807569213583580494830079578034774247996157508297105392480620279238833748032060000345553502012849510801288534216631980307409597299371765292520206360568399512087495300711485847474447498608416479998562731067764669261245421312833961858385906238375707071554237481244355145984618204669370930399531004951352085030044481839452212206543859692439546156391441099119684887550289190915763158709792063895268450666900623259810782869187101395998496966830957753785356414932764720247554804991210437376099874499546962634007041367167972174942754342696512121931574503849108958847349640648617141004104272263230225299515339364139917499371488982651378864849379013056059190529792960838130057091888679041708357981766302125265583594162406161861016742561524991700891514720739592052533632093867700280331203378245031878597289260477727163981456686123700313602724820624239765328988240395371666046630868947877329060891908568282560945436715028635295394109782385704463259215376596183112647865901854806613607530728120523890042175850194409536136185937093626018149339544135767011649941631056538460731730427096041682588420698587257916165189698248770565715654773583667368536055242573922385149332186607418320977600734002626139325726046061025742894148262208218448634618225229854712214389874991855676370063411164469245323496136627874865050169800792628623189976937977611814017244618771078828717206394621870351288129327204058915681627272503389948750128361628032478704565530693082882608252845683996697745297902250413383965352360256341392005881738796479114739431675122298488602396221857039087112198712841809548918313985596911995829220476325759014699717061890453027347846491538759604059605717540516033852964549666320710644392696653860351441540438721070425601685906195198103891472215275091332218502487205020280737908279270915019373411985697264216222742430941889996679291296595643631544814553466858988020175114870090766872665974726329492955546714389897711753185899426930859340667513520542925416366025721076773777843508516527923969154639358091797755254203799203776126214420397467588260943279741771707470416042460066861193769373626305545729319651069024654982787769863214740294735304884104378430006962520762514758304005650092054549773387718694037394316922272314966289008032786143678468578596307007100710669961647816826864180161393419880925077150491336738757474993479131304319397835476635528247704910491160556064503533764925666351973423684023235482645386196807592568625180959527593334236827680098043596107001670000500171603955481066029303773556643986368310645651025735890402542540106124632461834474296977547479124736328473649944505627071062202178697965878451810015724376516410170212634895192712143171434523870026559956416937328435229596265703909981353812491167085363414766534513220319709501401389377748704053601383311317212842016013038982848924903008756180032978035121788339887286132834340795498529501933084970513255963172702493995206820983310016173813163661445471824560530920327324206814586885593396869969435587573424042155564244431775011274621471422818827297348839617541943696756750005969212865528177287106968755229201577202205666512573283054602056337975954794018586607458185934385447701593384019949826310354141425147411060787403998303421681010976468679257616222107463943484804777458270038652375562095857416169616194384868296251278351388478857670432231733331305003582559742079643649763132017902133127867455333683546457989296214858497549658943453333116375486216160504867006213019516121625751076617724390382516498765882977548604042811382635298143708954321160940310340734184900463054242168018198913115355340062809832762767279363901389885518585504299005627279581400020694650805533780937846871644477545058739935202784692161073304653165847478571545029130329023218603312547072818722835141837545873458194889271044466410399647254028605966792984022092205610734811655421042891673469422223340462635000614485007064368357984785010172558640722934242464288711429022477665204155585940387036256021100109717743685923098546799950141227920100485616114963972185140742884995994955347911111810809762355965300429154257217759258375287054502862549793919048350328759483250262122282054585044349064000193699308367563367687458835368555357720388941277470584822259053863324628289233719561414293411632898796304230608616339381429751399608783689170133165088766371062158286837731470690998298310114284356692099324758333456359039666886989676689693687428589716477574946242175599279902199402883484837741632895373591557113899574408490129691201188586047736660582183912955825292809152225619042002020148326146096344695340199681771136310215735361946909269070916876048130786828306737450468043525296383837496147091452802230493892613771524396904683988577585856915364720249684482616244626756109638129796854035284537939219983552222019390257446903859084889419675683569998910392854673499555514059499324481172167037969616337867223163552601324098215120709261065662258306684191852285534997251166429372489910260668789581002865345416383057185422230756540371758341619504915853545426400750834164778780943236937049153206640788146093518561052917737421069277491354934116488421622591028686008538124766819176115574198533126093991561859809130450061760606088001941631944959000027295293519075400538390175431660231045854333198300605448525665808063457745267642629850802766665031812612243828830077344680935121199031473253397049738996914399574962038767371208045030323603180291498048553178952008806303740300692432030370678035753961889299947069312578495899079561048547475880591531818859555481154519326183463325306929106871541501803528266533786758204741605910749212333523355347230554275427919749216528427538788878723239861973068791751546003709899989905136721144904486126595076810528603675524949646079197653807827877215131424054457954821909939011262267760173158016867000339735008248281012066569811202444478337729741663607311443368450236837477114200212028865252038040945091636056837995416156770993190121516405463417029665090109879461733065834940494689760386278993657380643094161738949689853874202408974799371188238514849621905616219835041427956824151788674290023776255175177603665458286640924031676155329780137590396343434880612009156386555824009916437366901991594873389056999194041619395627536811212609777082666155671094533562549425317488860918740246740325881027331192653417342710108880175775078571950995384509245961318864917732259427693680547596628336985778909409118228904341912675956277350967821493236501179014845911534603199796627449706786290857366531414028514995728033770893911055333591759375882780226232835265594234396126204626801844451922081344788916433233360196291280067407298147891040563125485963474192868763610523939929978555940947647258917440721522616956957853716699098715273767367746275328119672368133621243027786177146253792896540313208368478098621316298588951015341471366037933601018823625812305345892811972528886809925359205132729421365440362330094626268144822612208088767327146753766325326616159608534539515787412537951785573904725292585618949503604760452784274164363827233572679425213074624261955512793155954255202109255717151647564788201913134401345199413644185124607695337260762384456418480612720088049300618828371799800722430028600671018127398871937021928165755564475362270599193259857012550712262833367508813821452464733992670152699018555991859381841053997322980570581955937515480644987770291052630871990546469403213684008713763382503926176441090931526094533650846302521469719235149103663392671494335317365899010236058489464544320377638397941960399407168664340538167164843554872833307802302289695840558739423892820824045960612802568818951821668914209845087900009478633163738329686307205832904005873510443614020470755845861565850574486072873398459844736730408543347178463002223978453592306850706003024279961911127560635663727886836505452068469972996147767504967887180215416616781546486775365424940064370944104157552334704773406024744665865802778114779588980990994486327237235809295598155337364497177842906842892774284099292746438705385289921524777206718622635701931116306991800387817328842838323414397473316286488404047532988625326681126514462269512290874589297618532435070789102662831012593371141612651334958835230432478552090267472882360612857032893464036169549628053332548713971913841567356690084452269805308171474530040387108011162844550884611519494664149727123887727669256192828832122815321136537323792727526121104351639123981296338978794262839350902184566766896154055320344164842023547969617167874918827383215639058469443228590390489480128680005989741283104763030561191625270172457613966178797886191874191685734924277811625296654796358402098052037020759919996489797442501186726749053317864694934473547912933502669348906798609759817129181101433677657302622742269397963889924218781510568168583090607324959193962171958879294956175652007390754633009952514576663608131582543046365120093740508040000879011105319304157732128053419689915317769083826083091055389582033118119427597450794170498696426245270465679077922836430195472242068089853596814197402712845332526515365493631060356167312320125948340384486664610099464022146720373152861164328331533638496682183941134577896181059912962754384223408739457188413571478234645617838317544239526836742199007273802302804055258602037817911819766267650496778017133123188947337450774314298080210731172819838507621116174997214457354671907744954960888219148697746482424889093225491671001234023316201508488489687648956418950427241467935137976232523209979092422718435437939438939993807178658836014284744072874901383987544431210965413225591883154323333927630981600345523600338460457282284397804913785766025002781468837537743287019000687590189816733237591976185755872669864776028978730677872528378877234754396397735988881749300863671693563640385944815628039032869613954270415031704956185683590284950206410978456535684480948764502314552016555394905907311575682652070902336342545139045690597590305398097755807353912444239965824772147920688217626905556909514144526895444199406235522607580071116964094932981780766726422017966661900840860780678669352818044533200030731768316590209835692733514695077532911641357860243065245446469438714742510619224122425601644438964254962699601954935751607102759508755575768520355485522923604049619245754879541250164796043956952490020636818056549659221947812475868336670668055188621309924674530319276099977296221296107280541702337832063037588277906679881520639087540679419496553812972925847682808594574322877830606786294885263201106870723442482386510850430318218776052985874060867586712373605936509824136998855354169272620317537129299064026680475938185676172210240553376478380669287616018481093795219036584748481547450446539258301552203239582475808934976889625593675741097521663165198455906824409458892769814524019707906787437399984045149619672372909411934025596258674825236490892382356278591181366904770640226600076202259483513946865995065125337041808055295383358828145872496168703556863773389183510023653757121373429899643397573155855198793091933797586155105804233259721353487174331226802198802917614610798784063927221750082707607942737629061830531375725931455800663159136728801303550159142679207543327473873415225322186337418756568192672546313574996266797065180670378598523233720955831782144909487344672954313866673881839260652899143085682402194565205442014116633802835529900162776297978712064656300879147432354175977425889112228213902790759246048294572033412418393393441135442079753231440305773562420232075587004236453960735428289408375598894018139815674208490880491708204670764115117153025261849958237430979623898292933190876840314193691588750855672328036656071124741179678163338885831246302908516409386091969229788008483332453129445051658454489495820242271666797673278380555232957620849760799890965853612207095599073115862995871740448721686004998239688497302633131918421460967738729049245106466418470084076853499369299572503584432100811076406375792805807489120698957640276140734206526322072625212872725732569149139963418633247143698573323458911511439456674479929845514404178075700759726384135257784234412479029134390559283134456703379629719023539826753390458353357454273807982856568358117852640249997608666401241138059752968180167218217260372518170736099496887191141090103597677457567095753176250652665544121184057768674944028361867298271281890860100643724617651378389716796988971576705666252606541593793017675732448475962112021664819632582779923749926213195875208520250240001482924781362678760290073202730466684752338250111272080535163532186806722769946915141286001462852335563143448365496275578468841739775480018430742534111853928554262797052149860560545833984397761846668282253439787393843390816432195119260382761098751507771598424331303466783245501642161650294967394420118624424936511669634353218755661649040364814322809286569102939710979059926752105373885299214640090285459272598107077602363110149702623931475008302006321534602783090300728810931371647467686086132064846098388474640266804682518279824557422008757869360997199240900541510207489982460102374392041395211792961864960677249530723936174555982379937397741176885993412070748476418329252611552045814284719397299908996051495634813775963226218983144359367669696442694951863495531369380872689437762434838909413277857266554957017350996955347342128703083969672231931546905958603272688040781366993682223330817948283346070166926420159480040619667623477902271119724510046318055394972992340954954416938144984907959617834571221099431796198150690863073560650954942569065576512330780487044395364656493404857427102141055541392429738243265730079157380023130064402353736835818983894858700844942260155734198391989528901464699542021555713330125058127751920987551826528438028164975740711535461875774595944511596145388507851355881858449780155657248866551159211867233878094075996217167460035002085991391679056326061879387970991139535687189809175232035272872788276785330078913538461613397380363391589765402157894040480646468736752597425237858539520914352783191391977932822719527553561706959176059270786472756319274791302556120340225293733333485366885535504866205385545826386139804807961171251557010902336042844106933932611697825990122414879263195531688359501670482147281403487335795755443655231872706955640317384114456784839363570578826460910543635090141418213885126966264450418094075514389020249825359455505232524311282479549987704572024915993639016721986175028552312545267801374584223121235705873496076668944804070390130093686149744103228416085859322871122331582129256732019297017805436147046862848529803069195080040174172909278066993458211436480409809024114118303098575964764821499517859950145471924011512382610241160044641253150915171987990047385685323646040965454649350482774729317655375778610518743131722021639556500426925488653324235739213471823485969251035147579390777362373559693771036732039186674873790659915765671600003552129454579996536172806777504627164645188711974449259611081425807498011892155492734075426824123081664127942974987196669133822441655474926753499908116251948040167347916639967878187317001138832847911288518490843067713220677783356918561098815531066890211226107986741871483428567804137181341693143835592572406068726744531880351351941759824544474036091283050331795069275396038206437919996521687019917460145801306739504127345140590985381909339982036047934455204203410403067326716325865269633797428290806292355029450377723232265645272024417456606085715438305824090908226194266661488144065468588136649324841107043731659763624622558760419488029107507935478186500296281086200206433138585570575898953031254343584064678142813897302316251748973650292456063505232271075025135683784214319930645612431481808906568032096288555548115974088216741653063053764677204393187980719823255716343271545779761072843107642133001863690548315381958651727950149389093196616174423831870236924344901598841102859254566354480292069081708955380768899999053814225324676605097246562870559713245979063238601828795913684253875277230334624503352424064778465490041656196862459939572777166613968305501805009576121890796967977974450297871070443784015767125219981797957201874659161378681440316920733185529796823497170057624732512649154759557110012322992967647312309910652853176800392341714601157449030603552040386256301775896440437032821511924203027056793675615710138002337923723943154392704537385239272139123400903930429361903714409709543876441825981100263155179336789754464959072336357593785810530952911563387156059043205624774312681217619926718587090200795170294266424022772050251018991465010612239179654898943377230412945588679201301021383069852695873317758929842524698297608721360477882220954701806555188410235505486274123179396702916723041614179320698940906560427448481882009852416799688484369571948118202049694817609502478613792923695496616269859306066281261995150747963284216340294167280891255874921365098520255806936563873505443610276918237352077960834030163669876045208029795381358146820013351154973626145965905982170683840341593467074429455059511609517740461762303906907951872556350491222301291084542666916821914038854331287860340013434133511142638309119634723181588362200945355773756098960060170164825600297695909474570481427324328269146275607628151498981660964966618843628212711275116272934521783626787964647765483687154324074646939774860691015259359118935862910940982746791982261986761226142129740261287877097211361368245354309087769572087437353951869120637587683606885308142455443333664688637889851917533447833792388326652316832219831524881703617797815903473085958443092993512416750840044354666789045921439724219388561445844433537407944234042038047282514865598725490123993451439375964900678448739137579934843961372153611953405210959956838025178346035612469842128106119350976362698978651334664396099044395340069473929062525005351834434050089394660646312571140082524255767973971717492752598072185901137811594781159166126227862958096382000913270731171543603272922457832694636365007517651653731618885556600650887604020378504366019956286102847351592096868641813676371895753314805040768755175424952060137292008525316770535707749082454311377790953021096720881205132588620458873549172537075487679718866706021064356029600173085405676031139107975814142306075050931361056478674385614185564160538814241708080868504862774169303882104636884056320498937467967643669554347449954221300801224970862835180320905128304733704393485959623847750993767099527655835737933412465879773226348752422458425720661122269616301772371415508608744633609163221956761110199138016926194626966026408745266594464583360561673309602055150531949933681811138581908206212425743045402948174163814431856026935765971511908133037223076544134882914340539894434433570438370238572014418240236522035392056183542553331421619709900741598499894416877187090085308407628383354974968464764667329861279877612666492126733188451694258260549106641404188501033100473744539736708264075626511849799851697607640619193534297207628711629477533959442793515418477704719191934852821898146858347197437195382099112596294605772161578533705605216083373007130235939971210248492121119314882860895972262791694212424243600082244631601507360156678570563819507435350119169931760616141487722631892014412068985326043701581538469188729814320454004017839545678705355258959339392935801470797317279073336267829563299547969853924232053968080838874346638897644164708991702949517817930217740480223438049389701863193976104278966433583481017932612455024720507594062905221918802500021489914081375251348771731930204470183006969011865167075882400939892770896492096430475227912117929447033323658851993942245594039526591397165080414644737344893455230491532054315393676310536355047165839476386756717696745018350966060625170127733799006765361297504621910963539867029331103761534834823389752739296556017955405029133722958061681486915302749332072415080678110858385886947035176443850187045568746234722040611998991154721403113614149925004920099911858530885771476590258692181240406115052168175856913142118049000518212552306252599796393282211767951481047905376238303633097102309957978247366159454742977524642307878164676986243812608032968914243854585312630146854692491842973428551613740222492090659739474519679651481909252303682471533820450572516735226176295007254683926337016363936913569474195846797087637189330832822929673924211792310421365550476179697206571267196040503306212595508328208187807691388572561585500139493094252557385848244377316413412425917349661702472074128737702230215290640138387794287993046084898805397165627720250004368847434171189834804906797257779461222700349540565171428482621115312372146027197889576297647717229316180159999601251810686425026431791373845483792562345429058300753715165837076893103841211745013967843671257590352767663171636577680493553093075976035371272890052430991860364818652005241603914290784509458431119016697534550896422358322237973418436062350575053426672775628980947299458792647512044988135126066405881292116495786093036929803891408176219366551848441981811970259268989060013570829355443807463576725573202471270036818093514935576930349498993706601078074427066015347325326786987508101346885989495198309132734508834777170427675897986076116843798551321101931931143166195637303831560619610148944217974264890514314380478165048072800811290825100610575696463032663993368958211269434360043643755089633048027209685373500937307354093751869649127564038925942368636144459106891556955435511867037229184476340032004230462193972762119875583810806451837670489322477479917232382668260734113502902638273380079338494703984972062882202457401242974138126836298162655516210193161025428198551123087096642826315950687022944068066569772026512636903823680140766533730099618522095716242551240959468276346304398533268749075720829798820909593891645065926291985545360878030308284413039092065971095324114284887945162320700888982097326908648204209656843718474066849618046800215581127628337849255580405121890065763531329184793959042133612673187510225447747597902953490199200482070101492853742068633555017651397638380529115508653159466087338197835254285171302764089002670278341040227123674447603295671992985713655949323927843505017174505059439313605107366248625465096047310624034182502736895241509271957642368444530568567514814680422750333081783164982729081001217932963621603198672732470499744630964810294002875242764193046523191509990912714899555864795952775475467281441601250862998110413907429441474565766780775925523380047760579513660499670433439020021158550335519052224733200438741328738160816992928664383475951279985767537864013264911325181099390574904926623756321301003495428791305889058971646735888505171493778170602565227764013260961689207605882681154292800934403095494477831336706872503151256436574368764006242099795295492276364234719554567791026990106024547178623979534920386476934027554297400820837719849413632612152406424712939176190237741246812186525308592615410305054445776569584751909549209584804977009965772266911489429812936366897784541829489635416176701720755036426905942239658180602123898909975938058825101943012772228762966542898386401750185239582359883314879927331277268110958203959125164159452517785433197325046365259863928560450047365986747437183352106791880655319554791248920576546963616413932937616318186416274299762206734540333861381724450393604718188476534579343798994631447104159796849542145034492902750397667650146844775867444988306663361143076254707400290814178218461228599253460172397148209541981864642904824490021862942285785682800993535028502454605993116902574870873188956164076102186147051039834446887712821507513628805960700880729257125215086804529941161459459550974423271575446423119502207371627717816974797454419619039616279232295318868927656885879376489656750033401017623181706215643441195570203744173751023042068548716969493076593396079704036936578954863490016241044930443668489933764883066114746915285187308650608774592092096258477311447127837227990798954557930466032120510715249407171661891938647904288563351609917540300807170045335420638602048778953668404668135779986925640041669170093380094289724241144252609222102164660023814190062657116166118809036773147247777619656485230187435223763885251134552242574583165869031509982237338253607520777973073737528308374459471607152742784406959534904120811306286172801933546025628420667713472171191416601078516476355271633924239249795646966466871116090747788582640047426552606828060549435693034963866231172708867886300401795688371925820698810448180123872467345216487087512289910765189639805217832965011226176066349072401571869124858237054099689238668490769908370843068464526670470871633605149567725341518770328298755988898207784169413031613195779365701560461195571330552525768095612644305798853657178063221707327892445015330852534193320592165143853131418100981741808347081957503853315933532293689101821690028046676170843788261903079945498216422110164520669659337326511176565428484109698853491664897257317415339482381218797710016793893993678038586272643979738387894564324425402232615844907791558829357179576491127986978090889674134140169507207056392415606839252493649226434734321398719090024616830456273180927482244863706455146585537026806984072576028032292828117853904347861340175799526197323210948188186896441390761334469679608570795149667119960050819236384575085228968683070521605197276731585486306010086068147431051555995478986913385285742925103551230649186072286556092508543385596259386836120069345066851919077080193723040571042276246471804994732385125304592513883460048837151689630660203269558042137173785952635017327422850103614119737069661695777298221278910637742141479547175272179417334764123784938616773153155637791468171206395435433331915674069081032610584403441334462983822612063564977775669016329345180103806337424626427400273274206330890424995178760103297272282482707654797569829615061330975893871927991935062862944535633608689197230780648393565939875491693869230201467153283019657841111484384632636815904942027553361511554769659583458160560649514425828076943669366221315160373008118585150296002557107816893890497454442952984847183284963433821875761735128592171343209712969555277032312277558591273870797463334603476464729463779182340175807841650828021385617172235000976180763033684368237010640788162684834785760471558979375554523471196316920345533184785819105185483075143039752371479254833143440404374785196783572090260488169032925944691821564799522789315268977925672460183257094978978566717184560438384100119498999606330993651794034647870036950627508713319355223374863783981513326344066592189582210236891107534475797473851459265782020298969524377638640407513489498559373052388305451446717653454998842541175545532264861776654176765858928119724186690184670825677038913131378907614370376482985934659688640650287777842357592845669531890711304341747298495227350380812090678620189976766667285462830680010175700105610046085475218402194908518510106456370129728144898814416126099905247713686097395978264813403570425269545380246843504027696578580438596506389284012090189852405681318465697273443884754947503518237551324129175881611750950148402608288553123416762097614051414705906953929439745800015566755895423967460913298948627084700625192264662956550156952924849897970648084261996363511828923802275619775682793518399617547512021388313163644803879845011529063148936687740265382512471099090663130513599012178454780776882573742040272860013592960976125761706681023750972826792844467014765244143278436706753240808117492644897662293303069439991668258295397255748416459006122370648832177515576027287927644702251047598124981136179408558606718503459720179810000173160372969336060504731516435442480942833263668787987437611298338732546115747311078403023031321799128274316299915154215821948820199850271647188462809429983234892069185790769728748515853216129426698864017434108735417665236271640957101300926204623404964639412560360507118581867996945268925778518643438003311759546452511730296989517830999197744941988457035313128779179574822106406494076495234050748020438908714955592299539091697006560240021964540788686776665765229745590127336210203962343169865516862940194665016961646799463045865902701169137406331368191657293219286026480956060643594352405207933167838340449150772649642412641444436787679398408221598729705063974452006267597982881481190907085719657305071872131902587239869439368902757426444609086205507176262262752178029250171508528734154901444456340445143398841105218869727158562739051279200639029665136878838854245009181095796025259275277984105899380281285211857427539022705629396285773539119812055817033999364691915657627377455651469634202038910421793289445560006868841698804567513133003504771427446739456421074461725253693057713924312691342336545921242749268121046518082003174886301804681054527270637941302767892648962813037656323005189558933406863838720058334332216610693399635921896108082632350795288051884102911819446631007688878969424846025310396027623916039775473527961534884721433594976961898525807396178481488519492482782779002333799718589173054481110456551228048205785202780637328553268921901216044545753429269489477458524162105205544006060574983461268854006505518830710002913038114752272773552567671527314261763209755503881746424324374963898027938383846030944263508146736541521605412505131813543756795168520539958005174672185392362913871954406698043539202872525406528869742467546458843666150496918145247796284374783715390397133784432956778254526835490588914776496449780223121625504169340116460435086961342715358955940879059859980654060168917049110371255705298894630482369727892648803863924818007322547319938076665586866685102876062422180020107796652524375080154608564927109738317950002124069860193267624377756994618744897077569830207362066069465781962055431719328391122108299226843283839696538175179794661330287475936815314311114233836892092107269246430516919795739410551972425240592778221568219984615893404896636292756502960104525847993933605471470969511702362712773835090938815990850848392151464166299555059584050231899325321983747021822665735335498722555984229622897821278390052851379331217246109640122692374543156662460294286794501924833774461085536931799635339779210769359426211975551254966050629121714072035211485996946587497415900380183018021957097192732254183921292998185313999243186802106060768674588257199677036869290633839866355133353806418819480013225578244030781789613283674549478449754084776759393954877849592649043828499354718538075055905861897682242581163597331149669569106022814935487243601076005544105081525939347042504938811318279360161860278922750953385091352191347959476247539981848244426059669307492354368553611645886031321962544396255515921514523602475987497022005713808027632321140373588915837984397702189511978457316860414257863758518163851249721244113125022823557097928862797699010752632973347436701252604473298243139546006448762770703117655381758886244182049143455402103970088919165241210378805367583855704980013197654196113392716128953460847513348093088563400859148887987701967786539962152371124114744959528944362887958378392114345411523836002046461777472203642914341496053742617733052295097462880886524015391668492252635524247896311375831826771034531969541283148334073677013543968083023720384224609797514125279972569483410037541943038977682837212013234186219156932785129040651434648849801409816265239273693566335769818175114164288060846068687866910900425380366189728422873174973549642623029314996889293105947935086498272871895600522074932658887715003423792584403712079705272629977830568295941048541154803164773968167171817689950782073662299442081398404459792227720168091995962866909064962260656039444836606857822603794475108627190144121207573209399383723435273382834657601323889318131899185439989098288517543812381025878596836522263680444682888177723994303087213258091838214547345037478877035930094389857383377858609874516828601455231708964723285466237022606942486037816432866471282160340879727251609449041576461924542330405964525394015104914137304911243528672996050862387867536526850399385477001164477461551085621067556018199099218421488802705983271577570579739242029415300158100243919624175243612123463306903914444055793233356403994582213903623709215496125931032904906056573794208706724669670510618010066812882315142580056233363081680503951577101050031720037123991066555749518626129806902625550335566141128952590975280250935286821075358969564309632659190417225371140449051441674663907428313921467219028823412697053421007395724134583486955479075406363639165592115406105930408574727489648854708717017489117588961286386672523262908028751786204008048500001140050588980461951300869444647008528298411969663731030396466813453887898136600087733843651760019481780857338553454836237808402805389440333044955292968132944940170490799219939893473156599093745780051065946717634196335250163701285223950248009112338005554710009948284679828534574678220391017162567304802055491294204950108050715381312517908285891956782190530308863510760734184506020532530267980375442330187730863560505411320249371939861242035527634246495786879426167318651631202455606640774615409320329330375361005146927330168004512674500439981090393408081135874722432405261709981895731465939810668327389005890327921455731451510018037612830393140698356015862091012695795696653044411341685963695138978514622023768798026216939426693368918598820646072376768377127934112418988784772553341683926998936359787591905975865369862998713465148704312111462531438344061279063422012771187552849079805390823790796970064441685159961526861517522218208611418052323807327317635233874725900376401090138442638454378568001962097205684002010758863820204513506747678616594574890976579134165618219100443707795790823790983341937138645176148291647520013401347640533173365962484342491710659499632873749312306601529227562718313302735908425546586378029228399205929447321903006716668032067796568634695786229069370297867432099272023165079231211769020503444830833345000938500038899331533522213702597878795386562394055157499712986912925902795249924775243679433825623207196506562879961629085497978923862584828383447981474424680731685379558188584936489643973993503432191015391068647896910820854929043485703516046523043072573046051658018202167586548257389175602133056506680354612454075340879929775057185470161594392718039652036954087652665623676756522370393897714617076152470192366307607933961840502663571907717756176864728833408950221966305894715916984712637102758321121055517296222651719514430183304026448934211352609849239432603857864306444935589908813519010057893595519439159364889347213162504015055397072223827311014970322815913903636767437935725608498264563560691771765346253885414621155242341677808353125541730828223921470604895565231704898819817947550383947933242904579499233136004857874188565476324798742646285677174625133810043010536185601102666885778969312872226794265808689190575333681118744596372453406149645741246688911819498631742929669609956916706276590329158088251366683149790296820945866443141343562405567398116969226827010440396616308321635977246270357137539429481226443183828278674033621584501106331119476580239268853894492526991562552713314938927974558790910809969562304104655748926250236344400611453042893012277795895501635567480538692972577394514420113046888809262465150649303388536715040972645796163500170991646107490009069866623733106009220112580579345576745932602540147284626765920874112394860479074560617546722324010272156209062085546437667829995623643685634840258970088889748395205254640985061452587139900800157641248250047636083279990258513490835583732693266287032679868269186085942995920460925822978398277361213114398829933305424976251891176488074624175898742441552647733472430010577517717059778259560174775373338693738561200856884381412186041303815756789786839276378297486148732674364937704869893753146297941410785050582200664421344130831563156495639990272861023976750833748875412707188474156884998223016425713718939260521716465937048017074876658406165633265302527130711658008070836749174097742611740092002941123132222441576114688117437654143087201776886245359939699531195096558566678382813927140267493453893199722195759049212041217158508981182688624677066522036145024364340719457786481707423057517654840033217958752796076934983162187876900427428743057017042660084357088941381060935299171969969645916851521696010596449770141366152577736356377694143027954877370359854411768157147283442087704068492805905726110766883041220134532660271054620334505858184639913458549407597834074989875712622228524587836709117108014304589189761201160862736663689637982147285442323962422246491902221889438254155737692710403344791950741132756988366444698095157589909690456219879067073626165686505783700995554872988526146241571524008570067686079466421477098804938934821820302885991275793492430251106147381684180689748238703000827010614058845278268386756043675929713699339088898573366472159872719217789424227263736517896300760772460040044330368715746653185764099175069530854077836762203530938878152755751868461387914951108326989560301828567027396293159765514730917028590938662367555345784947872650599225605557348643269779437616415896361890711960552958206526027106390289157930048224336982223181925190114338206090803525457542405816990449942624406029563517966015432305492544665995545667043153455599562454589345581528403772383198828897659743295346951054417093387381951903553232194776239456745913213576561001026808688649493475645523921241323228058861694811155607480693135504329310166744298972653893117002259104341768421005472099181877782485154150751026548451606024229260124456981071212338040048631153434011018872691052590602453676687265422117010074260398238504405025823103392631740955077406746924514830332234290402927063740995828536338232222936463584310710417431553107288400815636315314970056777623622452108318840677102810732040516939733767098678418488266979393806461827608310862279001649374314987518882362383639570962564061498966429600794072451261133834325463228221492189418701684305643403606765712347160778961063803903301394116660100250197070841625886922630335804010883003208219541700066631273327308625844254490628927729685847752272694048720798198009243593363352633767868652830037411969799347854510083852800279933378166270409248769175284978914339777688345504487311458368599402748527040145871771159650385323754588957436607311896795317214368948474180631706941412443566827703901662103052306718586118009579547773296773908490901230498417528951082921822975262224975355683017532273336033916827637278129848199110846090363496191291769215147061249888103380439537582857968528775680602177087263128568304010252606002363409678974170603996059107130852084967619681444173216781028219435133887609051605789319330996144433492169389796209756402778724832811464756818046995766658519197805782989835337116728297998202275878937942284142009880943754476111994923190799977407892191273802595345428622701970069476463898842269723593891562096230407639732148173202359775423419863219862901935326851385952409835982738888907541713194658996358673003116011037210900540470004029346600633849106817539703814604844154868028400035612550556495975706819006313776743616461511167136257101749026414788724505216145363094644626502053589394225731413475675767805215596743688108004126954479156618606698976476720093162182623904072877367691966293451592107569840267542407459245379254858771082704072852402225310204639550868560664754024138943342322817551620587464132084111763281541231095342433786513327244036569129675611417159741969106587514946254951534548705975979950876040713043849538336139514060486736073690795405105894621149988172644048034387876186275648967223477238457122182059487905895783255886827267541813394634317228278236451702046465792765386528079818326011459205666591851591731545842640177002900637816833426070309445401498358111418611489550978865750692631565354803789349384686039589460886366228207496880916152382508156537789960274839850857139480939083645046490490470417830297065300575164463609510260816764643809801304263222860135721924091537149489629684489928021936215483537379483019772134855715369448491234753875603660982066111103122640278270183839402052194064002839810529859958220645723304161788346052973021096953189782200424519375528115088440620141709344801850242710861980362653241464502739481991335312093179046298545387988887947169099190089821208148626518030093408115239316446607245902427593595107509073583178744338028539315380472274799122417185759256488532119229389627078950814389674149969280218364042631587461843581663548179385538115135732939804162062636656945546464837937883799429384305327727633292646258675544192725967846360476279739161734225116438215402359495246474400537642927712719817475950305780762779107116652018554893931913396542883792277216286071888523215562607863083331820536524218793203680276155676449076930400165637055710562251204188489995011070713597074489811075478961701609574456647485782120588738345339257776701116016074184922715664944771579148048400318322866894027211157491390991255046377210778483284985080792710523031426925869031456374444020213045255278193292241114262289332325075264145305924464130869734718150738335593622573047463070074257226468857918649967804640204456632230056912814072704266957786296431484223227820093832711872878563347630992595097147978426603616595343469075139609384386881519759070457641281217893768896884556241232316996533267143040903492588787019997520969610318726153423994046409317399415334309991384877783763894066911044841663875488744778533411007796250313265654140252386408454884081659584949667238923572412486135380884233615324097626962386904885079650680475809636819989399488763708969163050747981127592624707558674254530862067951775365470450238420769248870460062384392243337401667023064641610372356074734249128149052052426868585468958376552975062862783573215084652898335067983134953300487897423160338271072287898348999290309775500814197109559212689741522558115042456373946919800908286086155407173699684646830490858254771379664127419073056180630799841476112491400142015196164410281762329591337919407726859300449893613013255254753546398680563137158128647904470347302958747333414447663845360358906180124944842862225991733996199131473672163087915121240551284259765704147612286014769540735619699414483514702861202733426520765694869765166324443818150953787955739187130950647392140336331320802779356645013638874878273515469641471901190433118838622862497301182018834387777723742402389338418843072640858035325869819890649871780828119274584408434642659880541197438016989832240661080321858876369042124635621119375520332867996164378263011650341983445639467646640807512075903430298592080661619073163068377530078503178030418317959064860322426341104688651540949392468778993815578259530356133087438478029585830470938462843095252939698457325260872424720491568634529592504433428167220955561074396746235908042974215929767120690230518487392463499863967596242190188981860313768665795956908621472983678857950111653943046211334840954260084619582615589580143973513963178029176755648088398459501259529741260857830901354673019259297228569428374345884453564154608481675693457955246753614188840065206780646471052934826410977140330566858490142442559986626103510745930569976702806608934876761726079833627301149944540700046979339178425760934013964608522544443954065998646953204797400972853520782542420494922834028774095108253497487408678301766553346558501054096842359475851244596339667262086562799928731379665059398001333928834615672924346428861453776696378152715304141896093232969559469500550036137527436577094163356921423035458196314623049214486687972259402282949662304655270917136456105601909441187275214718003833696560450365821706036389968693290129544158044025699752205949536395408409349218297563023155856964231817836404456525959730985163995814499535140585676187389018855415672170711477998311301409170873235564994399125330964548646871808445416520523315793229496332294110191805294224727320361518013785652021424116732106957646089036287890410492662184357586038691808166390494517015954783568356818411052801132850878713633464134649538860957574185613086934378463359806763371063740949173281188695218773226057806045883326730142380891550787391145618259853666427635617265678829578628051406678785121339589847650548237725565693848254172908103195127130507137058834627659607561203305523492165074283634430638903392236415220181793614285329344948353534886137824021023180693220224275749979506343055112101482676381250902566838887619782215007388035221156008537999216445999737077365720247011596451205054640040392841837472682992907161325932995701297578906467595646578400089564176991889111222946836361462278109320798403028456285931503914643254931579837661943629094512786817227132483398251145927127928972730228692767031698723577059139930227228129128798078307311243447632610730870733518846610585619465918108055502681912963939311092952408178249056218304616677859957530277771776644706361347533988999267681333333571093829603272889932339781444643919371366869368500738168683148770796054337093651673102994313400025551207038229707256679975270535862395843507327981707698143907765273355724314613394489310849483240212310855924752449662337343620498221941764505398475948649320409446248218352350728894716039654885452203185584430070476498882097153776009200976353442819817715776639799493700700237860767817736728758420100539759217662618033766889862888601398225852058647562151908311711920183526832473942867334212532058594680195400111377072696775525948454226262130065818712039640551015772325380266379131602036206501794747922571580136875579623627507913320924252134380013995454984124192622977015024524027194453680228033880630623383151438175364189016338747066598870878273933394415285095744575591447477888739532898968009040054936449996061857195793897698646345134023524313288344270833696715733768931301202826456867079311406993153627244382142635409659842443936655480293887818294919845701061506299423711335501048853864804553150608178056638039167857118417953184626196992678058358630050092526318071811085913358164596242466522447853422119939727373738796919302387178448861681400845796838395455804182406021038460232208584024254133660498777666364189970954286537711991709753154012452666251449767512576220242087975995725694317323949961604519407089529758788143174594292645268031430928855452788463416694636542180041042017660553972754653752608266754212834209893790302663190370698018869906140841321538407822374751080181380944893653693960056563716036371245841474419186981679786018176957190079368589772830400309057122219499415118619930159026899487102268147478359149834106918733267728210939986608031535241126174981963572660787823842699610701335826304709267915800800616663722583792156980250494888243148548365281390615757591730642917564079985891086554648001107155888273952234772656027311932577783821349217252095311059760346468722003033033308556725487503690067740568091764804991123383364129192176427477919946804107916049384544951436769312563270358337206293248785177939228181714199680338585433711116856663383941003611280682165430194717894614403429407352111061056629022674687619572149504270469740225521930091282215519415355091047532328597714962625669317965079989226140794081609374408022157807119254762613903836268880755448835059907261918568716120947096928611823643386948356197553687176186363244401244842132145561231355121860992231058100914906787973527124621319302496185782677833630948448295885999822318250455499636708706264538033061172061203686156615035746019949067841921453528642765238658635601354491604744084518670877203455686743050109561902821075855544148291353288811351189572009733219889407284390026317711660526003788761151296468843199320929210760596236990892358391643593493032974994743343757661391950766990997393690491030159117170377175672289706074168719270754835546320916049930820536351800438286534374799623551355771947713581606688780377441164947933048000947355017894245828733315291615601008996264503383804801850580167090609131546066983878843829245383693307110040126888273462281194933788727144575184347622706248172386538284979908928355263703121859147723306896682272123901546715652243245154206205272329202842689090582899244917833962919297390969525301338511638320226599702197387551531573366779030355682836391940532798087628736126188464373112977235816730353647601050976473586897411854899315228426604395295184985668654644731866313386859252937106239346887908891952412469139137714861868515577041302104613730731081029120818611127340434852208028938498357230727795034061635429552852332007317580338536870369095031061982030845690548975166924136749787107874129607996280237746566267565035402370563662311067934700896382312886557422460692656237479942984642453332290738763975049156669038961772373891174979081770569311180815875602280331268194539933978238137157951340967421018577860563618643118244836070710606548390969407870034221260674142279120786126767189850931738131276595423371584045112653474889239681877598433898183405919719980761967711001637772307206517232601081952043452408592184277338887844957672168625819309397831038166537702801991181553711983770828977877662298289057764820121304761374730893046383276454656114891612976918025690310356468571198221092692906559484132467270355130764421352630750547942528816880823423064272305074683214223547618264497584203771120890291130847844728218693652374848474492973260664792913797176397532422976355314053002550943592708765570964992068369598036588476061639994902262684040382627732681649434562413408784983985485451512279550317263173061718600546027167915878184899825832258238250613582718438731978979703388432107172872005579441478715841556613816723001700335767824418344257766346704705276709078616691498554645925727419306178342951361312448788698582173727778101234931288189014754387026644270301987483101860659615887878057897841582126639810215823018029793771855168546367350593021061349844697391780805296783955595275983406422540627890296482936643306231134740343949407871219190838604373540729204886677972565057435669389720460697309056469384587265121227062671008043976261416548832225884747383658612788855693756056097257566929244042982722403253228062262641196462024801787672388272639940952619585927839985265450169824032808719920930123954168061129129947041344379864547176696361471545487885295748232292402013383440277248366938315303508185094747001041595725660281410653620665137637993230341441743333095019895107481275626916373873167682131795741139245483281605282651911402798660743451112406144706328556032704235027623970771470094440962474289723911364285441328660148019010642792545938621561136190390594327269342362405092081295729780836912820916841593425432677382724382108476370503420051676552031169534387946843698688991729597564591377566938919060404970800421487801629639420643954385163997844958647068839146621582179767876322542429362005692239544624208978885242201121644299141360648248191078553561434994052889273028736930801769671679221844994226476022403672390673386616703508512176631338551246880429768436331840091352385676696168457337537966734662359182200556526147469611174188946781664552357773304541003637590021866724538679602646837610001164719887611510588153636331899754809356160298147469846061445297059258794706028491446646685778890491949919836210245795146930110387098931870147130576738702712826314585259531394784258406535697592621151209293307330280387787080038621187009482570893058119790929643982489490151661982124366427338065863138898855666293094757033295494360077991803507626468929539932133875686726040670613788772853532274096174623171525997890531336840329916163651037440052373018241969439029450029669000416673120340482071328590773271628747890227280795375882585740190289614997825189639510734784887241840478647833577283195759923885064010229494936625060294472877532932077784526230664659621888236817426866499754832647442965223407745020012978838956997345417800630142634253941548348099069609284559646559118516521453034949977314464984373254268927673979555430781572509957057595218211507829015471694265416097123603538220820335932683678616617824592232010639169193484902411901808109159933361088706514079863487728747481456104863459112132539942583090352135046553469859224748449267828968169894219153072364124027158594804978353906898611250057050459444150017003215847822460561295711224590741822996894434430852563519634469509333218334714029285490783415912777285560458468100502095066131680350190495611312850280769722670816129312655066502318598342969771939295620526363174960779420833876640414250999357692672195549907862462571623170212022282852925486383454608745134439609663139253100229496577527890411982484245724748417997739977090623005693955525574574120200706652453300202051152109874119162226434151475449834733830171749037531261484937324892265760287249668888341026158443078485927345277415075206148517346770574224588049077896325291643594120325241103948012189321075386900510911911977882805856005404858145467072567630117980843639419941043972944675528776555210333728550531721256043008006488368670371629125638356669047680010869550071126823056045607629945428221930015956823610863423684495883594090022645279122915804738775040455804667529461096081917644148519251363306926442093450621934886997840096481164356551436855023777233970006039352829024392297482387371124475896086640561220154770704460564079947353309089926477297191399375654903960972152972832969921770662584120757780917416204565179023625683169900851372579419788450811511554182363289318474615759482319546155130946629139541366689164168239119204073233253281188765422127969345378297826965609136227289572562065757666877658533609932290401845917759026106851608613125873337368991021568637608048595201562886324786100795154195328053989682969815369154284485131389420667255145823562183438528287023417224530451254836943094817187658215286241604092244084904644218903849830153152315494316085344858957076282279410241154529171672821070842703366090520019599343444281861679506852409681018328058369625335242311092351589024078404832208795213214538286189234332089309965063300790170262098788648608346564489874949931030355920732243089281317129940278921391628396845711578310259740396666246168310364313859230368304996657979263198972331792586768101428569048906958250793557616194325881940947821204079539030125410340771926571685725686379986963661233845276482299606773829171270565742025624780843678126551486223334390598795643146267772253111913800059552944002639215693536008733071318665798859393779211280446576960710104452922815153915309890105409442373910736944388034918587803324478086388501568439914760714318045909985615779743205820316859543951611044416472728524521262317128142389160200480126166107209719172193722447485869250311533948187335472178067748710968106022428541889799621391614066962403100771269798330175702222274338949737613424772063157430894769903918769205142498421083879209695746931698822187510278172891030677120274191970032723831942613434366570396003904328826415093216266498255072199631682865428598120074785195508102365896824771601200312574471351221990682380768444140125346653037181518688662872791156944673925537757427833551517111459197785940377621324217092265694316039039488951456769694792706350561311326462497564256795506616352726414615671055066552580209142807104577490177808524871150950968156807664700401145958351700344540293525019366275570389331867261149812408960391260391823026840350742509397652088691586245876541096490805371785126136941042217966530491321791820441146392687386628111260162791112510403256230764195668224766928262089984431283290363411570173284417545139598788206193959415402891877853392492022935983225390828885662571687140938035322083485306983350943274284637960096164988371153965503233976303831444553417857818416034148079607412801507932523572548243799801238177756860780368486885510927865860824093046955899816273238214543402051760847961419340773083390187303692213435420370761444088300617068571561410975901623975195841200943214615458427646821803973579504007121090916877866667986947276303405597582940456764934879498752640777027518543698608513342898962498217588824141355786906678056994172763052153589424883737859829114401397152434394414211511333473330035345007214945728425205819317021909253224531153470273256380373388843594183062528369221216376334858399795709259390178364127460998505953498548451926353040591141682118392798192824901283095206068243389905927113736695765470958694599448528902435916733148771587838915943741497420114221957047133500296678159720778493168654967317720837847197918494651583562754812313855151828507743338459134946214823353515910746731590157765632438830268661611348165999148705586961136945084932520209970143457786838401403618515272112422751176249559464828568696524784845327722689823600415634079153053482674584675663736474310618363577427170479350425178500477034863702545995401426775283266080032348918958285689339398752255660520493209966003705515450356305876631614378251679670914533448121466526071086431035910817871621855166347178530986808140330036038269792072306815355834454785092993974330167546327814568250987376783769985161222092559783099558552877884930387314660715927995818480429157114158894652883396032397716651405797024111004696834149658477316294454992801209303093503869255473832200729709570067232496279100368247266529702136847314006989078215970026068683935853965852245390809238969109902433646785652773775767676286545750410180320566915508577612473433382730768184562261438138308723145110909790586068637407891105827207180798361481268109433097391135768062264481292711818248745727913118268521290237959373881280600187482535230408308701677013654489085185517986932706951133517264273579632125265401423368931255521120930386847764991907406111840666914175781558664166700097306418250647442955883056396767474779580474855800923340947884418788729840131339963724396963867286200959003881491817219267220958130331905694517241715400324965477709867149008068272623493219327798284320770779851867021637170965307529441610098015419640321950924597697707735080929491556792873409152551300530031554902038615138609598519970440572969482665610062584154084372494826410033277513603722535899165692147939327642797611921323457698689571806520398090425766004471646887220970147883576358916311554295971657080502562068109917553393153260483559146984877133932735101707590609447097656883140448150855882871740597247548254997398437306417032436211900730668715901885568888007477358476850636275491845324465244593261938609483748654406692552199580745217493976089027601892572473640660542201009615113893210561124562448074894574947588624776695739004432639057443370767655247048959393924430126472407265914837806122568426505891359905225993778997875362096012966596078615035819867781991449276435915092759047423356568190626162248092643025809887098823790152647844698060174564637730695539398268296841590743249230794880808699463157723124040880008520910352726681350770114188645222301712245682771824421375840680416837400874896490196293323723631694272155261129461177350961461881059679573963811274849016699898605372616470221996424286902674536825030300791974575467550290932087834517197950334071855592940616405960547008590841356510265285956885257406007998225558714292428350967323931028488495498549080925435396594757647867991862017718787595582802203824951077499091723789960824221109073186672371787818679181833886484735549503145098550573370160055908310326768176055212689727765614824353543900221281062036450524951114718540809045522758356491239620732057290233852171002301218312697770088389449122239300721155035260576678811791586508613811744389671992221088871343400402372431411401896187541112221127130883800854482889718339033056947790957805010856474113755657075089198805926943347809879559771155093013796055769452883194650438602979023258708676326689064101975241062844503602924807022081130431921730970859676222282473308662215656041362123307396353921745307967526011883769003913276645474344042737654950177977518121169437124665917461487607393680226006919097648659695732138592146583382433641951670197544287035238695272628562745726048703440940950874861989596368297128223240450085064904075739897679038366532147690862929580376250394841686142258035300881972041028264620671965796457298092806023801605438923835643992560400631272672060119684807741870192896686640166901611399295775778628679811861390493580450673917402276777630050743127121334613958128735207871354372187112107916921869978324894502838361704564359321550791000946766932849685750346036864514908943638884366265730095237593416935440657548933206529871011923366806348656853605410710454770135740083141726845109829595586961951817462607988614858749854583063713484524520482704373855036962795143164579079733629307884088030088421927999296756080837332729208154405373418406534538909653945069562566148813417625950660064722422358038570716562743256121400690083626095159798182109885821082104905666240878057592659367050988511926275439457195155882255437456090014616237511707217120310690034527595279254213811681178921122259139328604928429892322283230019772093158705116764703879854029076156915357456953938379526119813057767590878256441822269708767557505656305799315863406223339363109691856353858069996520044498107837881787327769433757352389133893008879058225832712575019988717639378717178721045235064244189872696719725662416023577064249782350508182771638766581092586462762825934186190081285583541725551325468378511003567916855535729519385822345103931806447604928219894338814984923490487593372615102739099010434831851373451407579016255131264749154521306777086469948015090240358730765261182743758368620811620553637890861773298400896016906879219034693245647870762125880522870953324673041209704655577554109490773352532675444271363391053989258371378301056142842172836510880606509264332912810802393991489642992003540729199243476243918039763600441272644362914037311166803304340302822698169631637017414105218841589057860258835522067556364032964367150358173018563359656546052415727844059398803563022160275905273592012136310255950320219494522607433280053097505820654810363836988491095511563222724977565499234318638855398466355790478766019256109166748786148310943437952087338416217194893762777066137601539395145012184083208008384890503737574692374174271720496070952658338130562525909577295042893840495431118660006968643515371767173408137573084065860732788909641846933225915123761377736651746787320473113391329501449873039074616266660322736696852960906503654550723949128948158667327446637719267103992762911848189834289851587557930250270522722631626279988696609946327358095566678116132958913639392293825437013744365319501728864058847677540830571447259273496881958863596848708876428632942342543566992624500752936283640677251766048481703137207097721643631904313076238046943642278739631643114762055995887703605922016429111338208900227638987332410209794660278871247261944913723509549205987484155083943188641594836733631526372087073341556330879389237319600301144686966845393224592909280158844938252265184970476414269364368379745346327702017823484526864337248073173416372132817295674594745610783610373477927333962292814656108675955270740782773644707849758375273754372480802473490435981013934794774390866320235839035980857096081640473228587176953738894241745352053191581375195475169544082891871933561793640489158284985375722356462980683600802144056674728463583870350490494663351005626757395736448248025163053432973984087013364838988570654246214536607028820306132681662414403310351322631172852505013194431768847987362127155481529258124656964713088164678628509383548033013365303478923504629571158003831342223073104421288237758055832076726873421285019633208329437746380689813667407285234904588842969926767872656333318189051826860204397186831571812841250265705851954829340059415015508535107378406500626321149311281983303627493381419496192320363403745898299373694397106208320427258249376478561337996480576391106784800613648704627260968138473764849192005335417155027303180990277089968682448699992117337880663847435993785420648353851311720544828273068714730497549995892010264885663588569927554316757119165715418636763309111868099536346514709887305034937844568356297437044825133621316563680451278776350608261925241069052934806206711583515534144414702934738734098479510075615510835074972680552640988810216675688743594406285427058700165750614185922269931814613543845850702349820822762820781489213380036423492078284688035813577109819349344856760979154022075224340895741805122988920438980349031611772589392149036257990123856811341872245859226877561112141542437786999862221055392200829791640889137058071163480874724776872944028175195272733483354049751184947748838496497657690812797354937685123683683896936745867110962951793833216163394707595988584933969008601634544393992853823956998581536695737409429198853638271521556611738885512547577414570795687224671102952230571687137941983019719892990346242763135142443847872687156309007978229099520145652152021096385610410068765241382801348712902980127875849058767403698790430070106678707427304630498512628023501898674746374746204071781577287615131373933993031270614527934043983437500450460731946355475735621524711015700323628394993031855646368996828070192491565865138723551515449064868126130153638568743974290103849050143338814702903715946134466786520062235445815318679817508383734896418401917568878053628445540617679187747703468185275485776912288935345420734857193855262420971938606068801311040822162357099005816620793656625240115213216802976796298755058050360297717049228731778878570083792869089430496632115380687267588558730815807986358252398862581540552534317370696141424618946109459112755534835173825364291615501485462920699379830863280800861274522804599637694492441985263182417260401482602959781366290845987074242071766923836076313753450118852665314913004148756651937427012279152030516297034361216865251766777332905694991852500039142436670970510583564541018188353760853798834971649085882214655983380147234086732048935896530362970988078365334218958659930238055196963763685687296731627661420075180364521088075093797511603343408372369925713462789860781103212704373020805450363068515741118934454215057877665794565594259939496578327017289767744430739800803454067641670757053749179022806483425616805369750895263535821586584459927489354077685059732930741661416514307368119045866038120875405279304527568535499103962397904708713490823850905986469286984120995000997238092445425853899729886165697285197956173608448302980653556115534561055824201079768681096868362665402725246324148947205971499819493744080677238832256911900416133933911633172991145641020609248334191020986317821378479108278687503693763081508311783860397705913527093533978946319501222645630985134779497560741637566168106475017445327693767984853224324110634161095566872730147659399303401298563616175267834068379107894197889576128865142483166070117110339963997379077237944170702823434925825160287294321106349081384726187844611018296619808633063550564823465271339980055584730504791813188107940878158253325553593243068141511851000881342203850440549543862456633549372661172134531677302036626862237106670930319288272387946712869810857496129328969033236181361734090902072460391006159679674072848662775919714074559519374582334535421133762724459758168154331603018077809856270613395566844554266216618049840716169586896088216939612246818244019088095717989024268691342939774916616858232083627793165073199248089059702517770802736867395499987655861822501363664909210953796473815985266211021523858591549747826640534318634365618017199008074274341695631000235211488691826629950146178533398190451749103198851181853935417933128188063427875164116125724385325391408424835322622715384483777411184564342508822284452653344264524357401566544638685585813277085072243021249819192073010292823575619775367514517919180520986625106445564473464027819370522798087605034082550411446925224298598221959894769175543541601448508825247762234894707683579512239960890957319170771861494197363479718828766749292257642964011536340594938600164051179675188561012452553896562467428182100729363762819661856455356319845354060850351167758681726001759782997182463140336729893739258799357592782137053675947269447698130907063026604361277303409066477196210484991623861364332676177340226482706349829390753888788417529911301397440961085477149823887517130053616972656061474966746404026358026819950974289416764610875254995052549988046318353250508192685785273685001583967452380925882465246202841014012346558421626530966320162388788058625758505382133403289210589876586160792342547340772483106778878543743143445204372725369422222440135939767247480541849890372585287337476957328221489214924822631853692092057490636350511470815475579458826435951744284935892940707947259010943786660810812721298272595121991572536770055862228001605881005209789312985320013421917909216243237325671748513703272056756607531453570149258854755056863381796818746393023731088151282463661495934282356210919464474929720282026623301634355646625422262817798820106089291521253027600301341662074739404260496276116038641129698922467284457529166588355625710271819067658266059695078941657636439432741716667671329013278839899242559661983771159530362898486893909975103845253479413551178291712440837369264273063565320236925523681356263964200725049943371691685953506281053135197684956845333875416760154431820046886652766032983814497771421012642535714177512279037961623944774770949622604649393425411243181531487301805410753162360223555204481382483926011624916546672564481332262691511835627643589500658689386126269848636835869836022673130244709189727986328088171514447574009615513449723888237698940256584434587392932393745412672900175365884022251974735949155688664878459050303772067152140241092980880433736237129309971752474896666918359288048476619324013438300130407923683711246609688877376194435737652384665422688434043681146278355033268088513668016679798469287363481333470984626165923385420216810179291689685824953219308835948878611872961054818103248336434041418588317944585366034064714539241389184624257254779966677808185870610062818237163022817250493512662374451498288396210607798392741339235565012524804665910887413243931969576948851357651355056395014945989298606509327180424232529933557358506479578910393312604370075355873824548685586977263733813772811950913449592287772290133044272598954466817464790080905486310696784837053850200057675895683820614533394047117472949519649464768079532268561094316506815601763345584977652335320706633918110184031296832243806111805310054182447627125859520792453048375440257766233543311048327269360153358773127006820452635531392744876900826773574408569038459048592234594836550686439104805861388157097475340342502986872564812089303011265035405579751809086144269651951294669838249621387921470566547322551719416758179599372916862756859809721628430028771700210985679109233895397397726630602794988694484489827838501706716201773684900481655042298508892707182478110973991253405172278589012930363450104858376000896886004937182570286074653204059127496270442789454117788956964988110819061288770319509557926187065242935448128109083091282836708505291963336843958451274547605166786131931963429723533049862575994526545596880480455049138522952792578806111904581098455692471788951183980888514976611824516028711022771227606813857347903540205263198768942603053469897602162023973963871643051914491572806722794210169353261387630613732843776845642401612767512515875099514089308502680196494897896595181661221702335489454264317174388663632729110783844758674589450396033788098803828864642228642331544125010614349468548603995109228142925388545095396201462452962274344307450363039681168411679961453869238725427754859903604929099328582873953092579885193054121733567769076557252589130013462546969831886649979108600778403207931458634238634939041886796628876622940009129483612593377543743882143987164766846620572746349744693721654070836795304544080949210941430357756154553357875230079864488399091173989855200254887329656165765829917562831107176738864253523425553576268946261673280921233467568718046801709925363318043085341793454423877354260591793360950751046730190072493279123500541592504329042423430424048076627588869554354196095040222765147850743423966435912495310080477952650097260082757493092349587346522724590922402805626833489896077024409811563577231316668111794782260789621184748111509855407244298597527394481893798239576209644796336184181247335241324824603246743084287790927460371668191798624535228815156153370478297365483964482667313425314992222547195746023217642089594991108024511987949295242982437385231303407472074298309482131898555559646960936257605645109677589546586989576907242452694553497397570978016362951846621956701338909589118424051643035428844732754785071680591960666784925418229512497298886847357627836763771956838920739293112663402638641129772350293237654668927035216794990027034451165637032250203944102091908424596230996945904288324565716967256539671468444958574298846084153794087077050431177435193324999240631586784953803047562587294330061372980017716690413645276313537913172622281301521627278502484372692418781573015317951548657041829118200237951532093821483997302920716384489943475809983017270553886688752333351539378631121075589199781696168259372894395654920130040029877974229517671784047758839359286136333672350633249352097264461271067530712434551506381646413885467202024546462799681239312851285340652677355427527454579553253778007579773292328457061940218504721237930898558770587877561747871286313304205708246000403671367113687307786662645595807825485826589250592981361869106269164695396948694297539467965150994951667035761637878802286544750995071356484771456586236729947032336028875041876207194892987905948328993466069935848968532042583637651020946479638201301558825157646339761659712113348169025440062845761537435764327327562930224225799947224652073882396379427253405233732583406741506738008750064284706757551706269892489913532021042887572134858550594618777110876655884641722090609433201097442367422863024608358118291577476590079850058120160345225312415471920728400934503234212006542123389830174740147699757236504607342422628341986196180641968220917988004127903388818403703064333445448327181395034250268801326969182932961112043074612697922319300374725145850659497016158272953730633397607524131938989651860981153311558140652092117338191777198962702768415695804840631075104212971168735400181396396263845112123797313260520275014863124217122159101972692845094583342044562627879618173785184784848613964710702897404953867772109193281916125861738359147405244114138736218798004496341210105389849249994981695100811477308956460361874348023475449718781825792648622114026447038633671378648114128658825676182811254726530567620410247918960865100598686996118716738030678053723454711683676876531850814323138244503733609472286948162383840911340414218795062969691275361909483482236911997001444812886805746408068413483083062072928036854548164217565075670865399530807373350167718320735005504796993122533977928774751963459019407926894392241112017911143153322847999785426204393871054720932299952530819315270331448624238505614330043343941445153312476011681672429210482181654821247523197694743122962707664200277222248411836943737826710961733769094845720452602184249970334914249295175951662171030016713768210803429975344711461400661641977707243400145588296211967529083198467649221783275779865407236247309354379753698230398405497754921589627310085479364320214108963551144898789398996222281136277177736386894791432804741692284283499375158008946685068357344402146780927045301252361916020465666775706592627648299019650930614955759115168326635905282800628159858964453123567021233118817393145913243088787446204711916995446544836851402699222691053453362067159632031314765178753897495077301092069018063806861593590223482580047130028808257705191345706403890384386883012760031018619088629835642573258524843085244448449997126757806211174623775461983765855916758898492240282715101764832837595463001862287652323452637130933853435428348642850325076304621860803201109781370861354449809146169930766540360217392638370299007375121879659806241123186852358687322418858916352558456027904925608457260482839420029586069285722093640822534250699543553125631956014505150935093612581334708292862924624472351159976505116122334792033058712022341004233071122439507485002172574635322181357226479616828351615870944098096793723988982830142412953488000471637431269090488674411699653792061573732985314250673640740550125478931139801425905083447118902443273806361983439394701915019866672619216313291277515144099942441693746587893528774476256075480677290188487397179126060666710339877461117317758099563512235447626822725319846278246447895052606550311216155737467498091535303889743962628619361374620959296005879359733347165621141477001249773423134447332586672302997047338410763711755435623366437526019027635457983091217406415839514178491398003688249123824094576014103336240398614038254876684885282084278253095049514626183981513992312901141520773381044106536678029876061914098400431170919143994728264985701909350815381013328710778460663968993477630033483217537626677041436197967384425211378134152206670543264121493945755966983614169344176873432692809781654796327609462351269657114512317143793091679784489588455240936853146099660355569908894153842005839629560930875668538135162882415504276803219095230262768238662430264802317675703097069957573187702549619117911910179673603441000632143821882979476609517554285740669352052741026349022850068058197772451715985162318090290997373668407353940651938094666188682146291487710134279886867203905338302663077651006625490707437137957227984613526725076209059803467487800928096638758675449178543136731810411707442408667989818900637789702814112161008520759719866954181619569766881735306030566798292854965656590114720259776519820170031305788560967476815176147119560817809974354253426118720355086400305009002619927098822052892640617080102867558387467917025590471950893806946039247814600262148358624881748428664879047689406570468453778083907008496284626337851855845767228496593986873536622065419121655130206459931673701127858859268161111669361146403209693577380932606095832658045605683750929355678104833356455026500185058940894127119692862298897283308056295757324958975652319577447518453257849826570127696230830854361736010854359402654031847764000063365704521269359248370205527950805509584522239841902710074731916379569156942009094127035299005252729970452432842169550828953845817339436723421735753433799274854786082340696310411817180603467685991482144371162795753062430165776387686724781854983141451957576180010845701320315419217974079337560313671125989702999673185445712904849617800111412332423879706503266751022656892789206075658940000075974414653315814508030558963257315819614832699502243521562614314158794864375117874577121292662960058166816049545522031680175762343749229094693499071809180371163588228783025005346493016935507642991466425486477603246554721274992536804499211915647285809373098809432734918320490020730267391763256845552600763308583309024705831683332272945139019368284769939418953796706645307262213948149949431100652686163218696337945903993797157302389630721442477832674120729495961620016279335872457830694486696013402387304102879965372848436216951998261023373908117131520247742795849428483304801586800065097084987021703808034901920517236201142872494089584734413653610817993467038947025498025084626958627475360793770168040187563363410511831650557083671076404944473671987154761191966315202404331100772303066107988749261448918494626266838053147601096970078237646564061748748980905315828199821182073057783284674218662460878001561510403316051346653409175566576121081397209939468688599770050799762038211376274909038565059949211927791714342732661426673934416636174615803530738719533779273785424497447772092221527382529710890634571460339861390004537414134540438370680150743194525623141228483649964723944538372500956563327215348393214101773740669038668745815695486436823106353377580865959356660596062455481081219785505335433005495238214145427134290575188581974480154334096558984244800775044317517236896770223586943461600707043147428337205026622474935098881862049339281938617820382859275190647022624273949572054817866944657152321746176310296041794511041065406950261929040253987382442286703651373842708281987557943166157183190749795188952515692310374694662017917603429742111027468068803438045299768897078252019752709568821233547332502555139034148877289018016448503128872224628831103259402455628203021886651657948171813575518600777846322647689263092929670428514625347450833168414164107151142230640916074032223826285562042579817887391188872726683772818425414611383910111475246184493365421425102371203060675982848761659291595981357569920669753256675116503605511503215603945769550492179373109266687461172549142523650432121218867697817829914522945821814995534673032609735721307983021751791174716198218161882859988137509116305329472525641892919069955173649769161107745725362948674059147386481620249490900584627332791655387122171684356811480460418622029197644517945734891253312941336122389274971901611494936079014437697820037797970621371476875950318266257420319345067521682032256599019870094070078320014266531029638761114768230872371409715626511058890970222182583027444644449342216855160746121198965528132497776904806741581236843760366120641048832692907971508324421135277739900181604432025978340803446990308740892681427853133463953448985331723017418454852963351526953799347726792307113800362504446230847175069012330166062671428437220238856524052029803596390607833282932424055222913038273759752251981406788324546109366795693360123203842389071141288347638711850063214173102259547551900944501707356230869686012457113651899917497180876277575004833244401710300880890178955037218266143873984160988678786371741284150460992422149542349366033639172476794439787853545691029571700912235069760933117899337393300914732172938788930798946439149812483416972727838458140336542716271647245940882926443876956252196429116343543049100109640719366454077346040003568096380493845380935144863461294401397126584126288064439159515023349237721335374400191304897664530483446905041866568272468602939066810946264795753247971751019386363295057771382515655524146877288665897311153958854511178345450690944530336139820648022766260685023863875858568325636094318452358613865578050514403353736929964800099003342541954630469435823001112409771957397813648006475338825612454121988133593425503943866141860859449819798488085605338563753746931385417698293540232803644101242979132008378783666736314461118287251467617734468728692886085540115640090096494424433328051459461778399333915534913838124124172166397894104561606217017615418279469605826106732089904298416822344079285702612485785877035617400170511267888572734271950015126010891843792675136445418713374200771441743412935443291856118995060691662579523884791050668478386168012774234694244804556096137907118783073750954593364162564361902027684260749500368126335116747215169358922263138087039791438812559082667672271142701288811979439424426045787052778608307630460232043786282507786081131722838360771250199197215741849158421932980769438270446708588983282640967864982513344283984945905509563474235782813954790800103256308935458401866458950180472655225626140387827195547904656703849869786601079273761264449180745790108044731931795350256348974913620119160264813708975229114279178633403802365930839628129464125567236664475046131621598070636782443832153333691900438648633571520448897495128886535520989036652530795768152867088894124325204165814708362961767219394704447850846326604465803174085523596850665883493902556800684673187397461289157420853180001824376921788335493812179064514333918882787811725522008629179035972628850048788426442763203213744417384105931705874956732115111215238437413312545113922027660725146543374378890558164237930851686523024892686004054576967328530198417278090824327996482766134113975403255179700975118794195379549609634337392701171420344034240825462765557396417469715270013154676359482445373237804509240049482054246279656871688466507938395937042668342201415638390737123976587084507425419427919224945483196227026503552326485244037587211500791580758526535131129635282395697021102844540768730674858804296231769834039823266200045768282274747696931525742752003166249214434905068939446528064617162395188602860782082087438156212870174553029981205968249215716421509988564896620351397456885534102991572696721203226013590708585973329996238576060724471867377684239419113024613608659607238331005588900826341424546344527611010744817109130675092880760283740758602488769226970994111699296573553455303249666492265032669207322798025441674346855445552919720914228295357813725923575454412588711319346082980811120178141514296386542388486011224570004590815656072985803637158573850857709576218132618787415292467210105620123360110353582047239890410901450100328252446093945737189218787147583290808314426638385429309902309740438075026336276892635242699482449720527290340364129753004777466766005716753572223256302527722277794293124979218015864817661218131268699569701091599931863569873080790568142880684379192603694180445922262078213031204723407826629609104242267615741557479815632997157556976402086367812807207067434318280337606546411564220022685245118319911355693320390935601263271130948319406081321356695896006672038283304465588692334193280404132707009456945169287691745258476499594901953376547705590745154758229289380562286368268345048660692992432075635487341501542843594894146441271185776448368064940409577314483598935302107278558076307863559488360055523740505598868364511399546749632578086574475717091013306738908204068391141965909769915696329069809172786475672273203921859118007724992327796950050692344757561082870275646384247499067188684030684576168428742865570692987491762456180157871864764079973929415469682895943474083202317984315370526895172949464715000957980599344284619109734133477244577839317021511939437884078441957908221134654053848353390095998233988813514328268377560412384699382643772571684492458060370307529279862557188375477325437325317887888361480473064319353779606957671868136079329993461376216283279951180824283003783768171103641235657981827251275098818436856369963760573803004548592657325506898427050758563173941778207111371023614210324275880770380945622190183299453045845646142865259066116900262937333357806211104121393528283225563523343624022406636338334343112610848844282386139779296116709705766266932799315918751351519300469204713979963713937638850321205243471473342636065415562620568615870137743495065564404590273719771800773932675120713189321266165274519427618589209411387167068358788672208622425994411319894516282665122013874966808573961951689185104287131230285960407667802968916233556576089768443489349822939414802679354438369726934175940010451599130831020726595205804954374825578789366285796277593843981046546163683370949225988385528321302572123432762055979455171935240503001759589723589715056034452993858500910014412859025249679612741781296621077940520580864828224181253313809059366564559466369294333675736187492136834369322421249033861653939600305139975051104091863142054677961577715029993850216252168023760495549329144067563772390456102960313257375284935790656909532183300821677516160704610793824255307340902773138305755914359840875323645472576368602129968507961478980523248781698451577372370215944641482574821490362368107834995596943462192994515258254332812768968670030847337142199620290850360103206487412940152584961672689393652080404462935617913566569555651197783430202766638480439699320847549591943591396231824510394292744034292133733604462328456892856695597616701065255558127292483480506735536274300075827756268228774878148045151672309382943583935923521816202989065765351347777565753644398644095340693683133496797269115245619015295465294175522633079738738076577667408868269016452642557127221298172715528142565978608196553178736451101123421974322093896305792327205158260936594706541051292396135882004370351537281630295017019990721491675674901329975620808581427347607653856717485557492957495668159269202374291871007224570278449352109537995785951892621320008961497951719393742272953499162404575661548604950248568922622232161938562627701201443874649951812603810646062046888579984205107861065481286658968125850181299549268312490373764240658216258037457181293736013337301813524226652532625567973468082092328427387867041162330021173929150173642677096639511184745349714323222641253247890827296255565490145302462682153002245202762371578665215150474190457256706377026209992646041224499337613018823709291299569465782982366694374358102885433868009268954012609574800741169665111558797246109419538923240565967793520119873507551025664560986743728601897893086122921617602501663357077340080527378837357617616316071914993858024226061339910633655524187751734652450384147255473041734517582985215965715729833041165383027742357417178673435062656701152501229496664050500896611220225063769907302212655592975537119748032884799675415349774813661439999866824990270315434391859381460926555254423447804490721280407424056015257603728931431567863211758021689018227682210041762699842626743696288423546812967399980528359732350944158522539807238752130541706335439477596076488052816087411509316013131601350262082756585005927802571927453115987910280781165785206655463358652790143146169546051092420462401030687524749000329923304258082755801211474218438965424801537191722312673165649015626752888692589249055241816759360942137527796823940294985206868520612952519697958949342994308104139928261076111280061741295923189880297808203357738221789109932886853822616313044077028830637690472586435785760640087398640696224442037887275417255154249720649737769570132588380824831199063482502628889145868810139259645244803751130776904671749921911104176367611722273449398771891150830845521442184475522167977968971916130049615036914689610217493696480055667960148039871815483429804570030089001828371494349142210089501438704226480412513710947385913706953417619038085313870472140258490809620031437450044694767354293520773343838314005935338927409839829727543180062511095394237535852113383841589157960749560376544126412060203787761342900977979741898139298844528467441190656301948609658446231414441931492504674292624319650804972984764837476522748345297779659307690467360005303907756507064614862063098051979368689014149413549683068556727476669807295264359303226195978601906541700192680990673635909087539800214422750927467939344776584013277405429774012159059045915346156783025462206261437264200962822952806671240289442456638377248530145896472501328316469934023795114502087219824254903192117905140200416538353104712072395021472874537401554912343036761456089104815813141497106805761571521952458711825827623350080337314787797039704570752523164432643959026063754388239831552895834039967428225986784203201376048239624815180343491228745877560765704879120819714297961188995078503584763817976594344356152399848665510205529650084526611945290595046686978896531413931955995934486328834059118237470921157470192696739197402560877732587210421918830636732171236506027935721946471283463464636821300214330573845983588057813612197261849048654499338841049941332674400935339557384011723020171841282507736776157461739521375289728555917525548102903562920048707116619963863064044517932030404719669234129495164764089934651175599060315372244173135259211096908439031158447946864304451261807298988235785279947274440407992881771779242411587725003854238787308901789157212406223062969344067192451808785144584549445686728016400326407724987610981912354089078947090082077849205125340424870357865466443887823083371842534819533162186988757079381661318375697644159773199557676027069877972594920773245310182441323944323999326860672912022475224884625669794974188066817699932970747056577159172959217386603740248344498678369415787758329549604419606430532341615383795613581242117307090110967614311949516193690801835024926600433103578961271931516325585129928312971108632033860013590614698902359841817589590827786677497461328824949579694693745979418012463135385971489214678572127628962096801422523985105395586750770701273609121127255021735990544018976248720530135954233641532652387202329368289971461157143518564541566335382874067180985043014845313223481577301421625226931498048650232197038629504495940567626680608279139760460582837482712126496519467437257769020812853684582300324898850140852097116425786251099829370948700589810768442419979486310244003854485389702185608593009430987615528775509760732687794949261788281120507705386386107829943113991447962764437427423007195097058857698719728561278556141960794043683388939207977072196735348844182801847372012076576035710337737142044839301912008256272760537884294903080602575416985628141921473690055995690615961484379607924408005184139730018737358519799015671751353363481225610314945994489542221326213206269662854353354985560153134074778025908824163712252975093481686844775917808425965640794858685235179509034829728220138033144710947824755099111900644291556331747921105401813341878037403146384628799356789425428934882584534501514096787519621471278668635204911615129318457753615364658895344939183198764011883680465452153493528221875835911409305959615930370632618600172894707852324569308037185143252779637602606636384057142988741675134948662672987425854439277783359317754683689850276443874861559084356848720872069329553405931970555114182500131771324684110274143273364590215421942030041905895843175982211717250856917040722385557195375337471671519476580782712305505750368064840743848009428881722228047279895620517454994257099575775821523508333317911241872942835869328455561293659362433561695767899879594478958324581742393549421879786992217437355431295134720446577768101506107304870259380219120291613204495638106590573233530679197939607266096699017346531747943183632571487176465632900217267641410354638881840208858007525051147122785731800033347946391610364877183665625981359101991440238605834435052209063897079218219539653844593333980069541458020727410445975868943018493744927359683215244490671044171466364989696462481505129309995467883262864388216728447811721355613610826648657520581252463149632774290938902768213289038289509617996508313110058757495053398041293484046650040371945401322616484744940502729349148004746461700170778832648658367593080214303370585182294421258852090158360071138039291947056575969096995036371218097628154100134249754171227279707419622441283004886476620635199692193469644634020425125249002805177133143588193807547229334684571282709758655291172565012075658795855546298786904909088554809458828896478859069552283130680808375130531736524230332686928323511952763818772295089240876983929068615384345917499389208229856530328925079943269267060335974787695011329945972095533381353368806201231820795562392940127541706373042708259828019274549209220943909778655676063063204467314482972032960261074647165876208638880196953010682587896836762289309814270048601192943657723594417684853618156613883389679039349185526113515687471733185250026041064802711802082913650249895865508988283047365302764134880522761479756358623934214808710754009657081739297889394689848487328150048036065926826567325765862619140314417808227634580339191445197250417282347986111947757488836861940504483956125713150391167566627901144495363030024949699868977367022954291165184938846725170297211162650500796265510461935652564984704461749948417981266008398806245445489994014117398529901562122548739082302808902656022000016083702601117389280465346017142208596950362540630945340998919232077316593152300859070498724489542479342297990416227075254663482908736158561552246391435812771297651675975568585324850939407059865596809130910614806774151940343858148144953748242917096276741341720165140921600691336777085094882453647530771147514225838208081176731915728849284964277807945315630727553074968830469477777233260560620459307462092489372347990470594793170969272180164572666933710185572277616863593753972028280574024619108698935366734047190881613516005676849712111789441344000840281138563443242018172784461558876848207110488820908519106460611290169257612210025503284233318599053253943159418701343606296884599087426107987201461179060696641990123302716308389270498043664678890789796428492698192724750876551887157403613721092630398047184571590896947093345235970424662065748198873664396678934144651825327755476916144877935369305351099782058477492602548303519626746439863204686125224328255945633984246812600217069358435573670384415428223229819664964400620521888237112026570323463300587421134309487455786305439514150519969971745834483188221431281140860828526382546343883978421950591638221032632798159219664687270591710293604798363147002467871880057470496330869731792105362542325048138345989198103344152217368780097791865303759810649636564157506919198081270206757888949439184371949877504440183046156814255895742127066156175750331441767756719082067449311920216692212200020801965741662560027807815844923713458995989373307873246146235637904370674327343591482754745599896326415289278276423132007501903229411197158044941310567865860890260914315627681765857321097834499985686276041748378160952889323980830827068957733997036849848661962088245127466159535202632621211909207360422597166104531313415102373228534511526903064479482844431746338025973711420491975337225519054851423419837982401834220423283096354560594880250241713489770134366309206038990181584496192577389379031974968345720197798592058416908679532091568572951672686013494724738278470892279846648362426227350155221186470525803473557997942628285228399142259483650464665253831377358354780315564181687583756649505064845080428597623312802484988592350696363735727407813288879435081271075112346478756494839767554346658183948349081982074294350784784382947719990448094786675067980192524160160374435207966790293660551137152341502438683964312184700008983762990585507782155137014901126588925453376516775569476264776674562622244885947266725489460566459885056768533394390698559960036504651528749605372607425044749233076922979645866321413740329075403251978253141859289789005083177394447227384218146741852347839582333086774900829393599941063368301319300217799939255439504643313203787797127276647235675572593763678762136571890717166016148732573866429953496357116074489690085391146653839573157025777775322566459884215535236698995932240656128060357547899817041554659427460557136607131031252236221731924070369628332679443985629378425308068909655330797949912865973138885599376108493653407245885668313240330449000254944031723822390307156589912409143880648045941443073401785099643149099464636563918205347329639890725168816656683707186451791089049176409831848714761135663833485206148664063336726601105712177765527867371762102563447855825462038233821053629260198981874032068082533137967796782264630172033546496201043209528855446050917346931452212303899144493940720673098625513541334889810167525036051384995557838769301606801729774082850365498592168107759467012700016489028783500596737487561507835360378428904462905317371648374379217013974880424140659755919991438713616546814802578339932130612141973690154884576488425190142488353509763011945955595617719454949727126808091925722399914277090325561575706005910796575297721229860612942665396929759756712918193547500054103479374075931696125718031814616480894495069741837559301793306619919107059612099810364232211925926395095299307732323233501262362112775912771972901601971477772776929218807148366767540343069382474124352666048311026130641992251341957753822459694894462106688126599168171576628879393971786065535329260931408044456825349843742740122868409575283651324039992529278714858255135680385111418133506847843764746047223302627852801842121182575394280574418448093951692863225525037944521849030754464744057924441341560896125290906322018199620305120298652225430120618374252436387161671771088912441712415461430642530916573855432701763690549424180868511672468307050258271341293156343693231829108121364265854901320323619951651334440803296798059096148077588762282919645098946393395390655115492946259072049609539023963169583104954308060135400792654562668861349765859829803849682271660395606291647316000959194160638421729355414032760659950661393676362929195774605530034342857765020010070585074527456913830750516747007719995806292255583655027026075432643058039430296634001320222594255189466068310739786218196505775443983780705098009949019367600642808835818112111887228077156276373126745102321725190318715299029588143971915767362533734289220723919900751446539578059206134732117353751455583601699842324853970507060190399546488931826005044793731187938764638215310813671046309137360852020475656144764545717867700992929958214537408246073729382097985205451992365923678327485980306752552879687879849531300019950868294403286993926875579261224818009144758837300593674530542285433929330108139314002686058436001771067681030448663345634108160596069641151224797142346475011460419298495133527025274592543307324376942096786092159668061291831465251217949141002918536105071773240107725421683565889831212223286462568223705685525623153671786642141212173033774253476917479631528797160011873341333513249214619217655322790141441847260031171663054157106210609403536455473029972336311880606937647465525630671387691911439384988390328341026473106710249120391967148283437270117481000448440027716586886399171206413861330089682197715096589607747212823786204679166113619192544912387805222139589866021641031474219481710645465756993373256090980859177722064794266123853810021515397843543680826344000865455953046679879817222063983636748752152245584251576778170529784220992597953440952257005087628196699392650048090328145502473280308691835620294763071543861853820891254437235693764596072106064497764789342245807136406280887642832073074954432984257618900158867406462676788703040463164210952093821843004863774561572913281628753741453333244154960800316250154111911587975781503872590458524890218878782477179993233061081259850801617329684608939192895578272616027891239991030932207460471466597502439184458313648646620260533155439985250185324656541252528386005229779972035383304125207313935644415983757391450122581374314618511046146064399695203513742006217382048863184196863349763753410290576342735454629572442864370691122570651960489106135745568631135101144695526084553604976055195871228544091349245749337864833257519467601638344068919233953293941999763139943913444663327528278704618762068825432764162207545118778943804242593808169732018389356807871936145218841396537174948741103321009825287830132483532060130065060178944436760163978455778356211951699215686979701076468957012185720057522829202624035715090451770891473974002093070993884576914640979251237813416866606289952886816559763235338906209310266606210835189444635679543192980362023501180817398136729509046137941370633140920722650960862928337921294463681013735121533565741110930249063596557312416239914031416640979337576739487412796954203223867831278467261853080865669847692240720745731856720678172463596275797034430529840538726199155117441603113525528559611054591956211654157139745714154452072664233486760461354477392219060254481111183481365781125197845419055666621418707842546677048914931052919719345059652767828142064625685244708788225185678158967834970202185132939639682923731704029198493319466459715151242286252185332771046042858483233100292995554810549002502730964798379940690497799694393259220972072738695377235216636835925909895069981176732574775417452522642939082145323500187950191652855265194451889007885271677458502637298966538109917589541026309965052735791452959465585447176014953878763284380379844234512636990472909209087859793752576645445766043334309436948294424040169960626742505008826748964560349306282827621920837594588144819755684382021426735657464814822409304740459804365251297794439691846046802055671894598738483536518434219733621280018793151349919838393160738090465589399669976617523395942960210870302749380115862715065074552998578866077568499076034018504272479274296800247305340965031545744636286691142382156320181677602053012217857696191520339238112358368438562767284840696254400338857755810419843200001074794637141725443872144913722304178311057270383841770085888665125146411026158291810472119788522930690451927454129251068193383409712455064166785644680055302191460656373344715368077351248981366465365655537932211549031191429453025742097202543447685428208104896789192843730480235533163338205802121320377892508008250611372326583803066395210270293978337949612084855843744550525565591792720460269200119371878850895032127416764880341190687159295810299877355869098808858840420535742039925067319488552732852812909495056656592032209302966859313345601836844788479256514453912455426705143825283177648889038472133780606035790642710533989486823242788689126480941092822887611372258883169527365546665396064151967824282538195251549857332091999576933871300923905474344622933887651923242018894196502895468397280870207111466452951252086275160337107534739890419584599434563881719391464356367910882324676326152517665215529299379470543090625950671038770382515825119422840401725593952035485161339399021970674012475887839836921574251770896968747578477661255363439650550704251452770167957664428791041546222886211878299932606008937135431239080559753253432199202260994665066916390850110468623040498061436176163116460725145363096225499941888657748124766725755200447028205301053087901925390493903565972961563001065102150638722287839442384587910568465635314252562344784921772336659204416333447481944232935754155815499707343365020739078078771075894502538459986307470012957939511623889801906525052633689841294528595390062548363890263451353979196589620843651477681216670678778555286381383269650258986205986129549717264922979329684508851000699723024430015487761854169513950480645875866114897628687950566296670575284660880580126873325036177534001150311067794317849528396258329535032447496891159960829350847734918964142276500173036584653446581698757788540082586762237206950027387304375448528663730648210401029051637391217049718215953947166679809792950744358257763752770909879394474572599740577828817866141882518389583829074078631309633341307343515591518978589654530096628745274970229317811923700984556901644392164389262394455438785441440302551231869581555921816903736944503928518307953271286545363280702911912673734791003706627512808260762183964018243184758639054848228651219730906227981003698171677825859447756880160611305559246743121664895679410352996895956080979639555997003607525696571011212873746297851838921738681461976482459065843795246764520744025693688581769112151334640467937424760834484058695260631758164968030720873417284655223636765162810470110198822414889445542146214334318916268115709725091853055221466162198450761186771898925524698339431733906664672096153606676824731835018049278158343747639739731128348721690187216685431283821797647853257619563692245111602388255804727935878413414617093431551858436101223594617665675745924754354718930479640579036607258275281411627421147469804578502505352665612208165258334850512152829859653165857953797612158174553890754604217700331896430868250341001798346456283799754916940595822428780157986865711134689293853715566467881218810506892648522914753839304552004207757370722047797872738855893196364735991057195768470056678170667489972077927970203495008668056962584891230762101626200465191564990480514821249673801723163586040230717563784248942265114735788864427083122671977943099487835738867635042482384678438691129679060524197989670089029961734122455536408458905046993920465112139945273114838951325022728997830792596408438346946503522061108847131111962013115496871328567336324134833838272498354767385470816115025427808620343245109745554672680594243510708591713303791242942770399027175255678450222415010655099044854193051759220706323982277319506433346510174850668614910993683221367397113742402116906462465150837903198727935837014721973177672286972126042452774503497639778879763567311063264539840466751095057930608806036304692699350658995424735953304598730625262231483366131779218427478473476370200974543675666648397978573205077532298678603118386519094340682319871083834248735223441255135867240970723321341666576213248272554334223172566844120765803220080686413708733831458340412753877984828579361781273558777836568547576685542663057248069328173295565795206842999876916562546453810676461948051425781387929061333184160623686947578280926392796538828813651921030152728095852352940357622212342656941055229050726387312590775668798820039335340549745752722477503156231923240800053709707157603623646075030930725884053881896729706130382320022435105773668184506754934399061215824596587510465586512984808388875515772447604770788106636166660565853822590827575004829208067450910883339316379965009497504226466293229785264126438092065115506785722079355997889902768755417514355497170522581553459049486371104009799657875597866031546647046899097271235310354409107119648943319030685264169774837246105587398789468675611129383239649134520185439760849057284960511524981741497936765305355502584852983329750858002932364015235351122307034710703129492149542173968129739331380614429316000522379855141006604807096642953433913059137345311322639650041604768680652697687498690513697663375723282474306199939158617220925937512268181020380324280138441262664506286026931565668988938172467607356101016532187251824706221717443011343925733276084858913037752148274460980931595617357101851141642666728220616220096004215162294906991202577069167292930025153448382510587476693829839242602504060495200289300223485914709870899591379735348132311855817559227513665688014710954280266367458528647061065302967442158422860342149611390116610257516343212401521241432589385210560001392221924121102248663420755155974266144607789612045588370218621320604604086476979806945248085383555748077478384815097200639191306896848439767546052459384899155414510560682812843166017592371895209564604070028119843822403758187587376732214272693562682969792052181103862902419539411405339763185136110843397180979560796020564337342926575026138872775952269060279570087911125429757419939717155818109793153990018451956865065725227358845184003100363541625320624185541872409901949156755697267088997999567543194581376394493854139419095147087839183961210837882968502080667202145183884383342389769490255657681235833035383417186785590532958370095935935736264314035257216444477332144593452201681539191099178107915477091765825680794863681597692136790475178953261125221128669214650458493798149878384335181427158864173641267876460445179565019225827612409263950731821324566780782780628866013410816315655735458837474587767059184155926118100890848637561362986282700290092510255955371262810918861283302097545696767596151561135080087901550487391618799054980372143237630939316812140186632923392029046039392779234377618363454309087436646487635655628878607120861372976572511584222298891777122297376238936024360649115070033182940185454708038072932093415791176507027135047206537965922028284037221862523112781424580992933137256050749176207565405855887788241103665920826024438188277705035195957194676511172948302081580937105229506732794044422742991475867806683420865192199986201130012517362649265047913202526646800383777720442828471837147691980869983583619755749431231309460849915057262916165569322963192928138968722503616568727380750751751850582127975257704088834617866958706076730890796384065724734032286778272559804465227569939206749508522837078359981617682357885512637418995492158633224972600551405919083260921869594457390161758402293979220876448751178789263338631141436355238405721390848404301759788515177305720444595051643543140296197018976848387831612108074725080363246949662697008515244842762954107478445189918026972883875044842335637619592851262595052381741248938174620792965847437327438391571550003758785611347010226816991430150004343847430394042180419152351175793121370747835890813159987211520036232203415780121668961767754879887520096886953571136497326016446042925953633861754258405268339877286385773011376637684513224361764134875102554471780861730985894365454871963643112527944567013211235093521328034073784901877047171390787229813807875930369029628492963660717146141902965957554142185085720238060674821292290477675860229789323990418616525565991593751184711045521331332286263293259812343059386791319102984457422837135271559107902586637189245526600759637507909543267872558486700830163484410827788677859114640207121343056522335858194714437475764450518177964146319419130337144662101917655037958225208788591084105803154170720185634041884314653510301566273775377412906651086868699866551329926593133472492264400185995590408295448648027421951964891646671901887947425829147316032775003255438113852945001061020698082858100242106170421286973986250093341928131443958829126630552091032876720839101152662486221990753148242560328334332424169541914563277714528001855070850073503380939283017812117943783109168888607885508810122843710993476388376476553665475960526721996073029629873533719168636993604495263991074404071910851799083179562200042749476875619182608598998156678610575175048117443699109908769528025446005123424919142775734128640172095509326585917369245609787531995861474134668190615092444278424274754338228926166179682462791417760692021934138928202705073027808330467274214060742181439502599857636408391068392455114254502067844514081425869430805400591337243331244052506278383206732095040896285878776173468913222522468363407677228040129002299298348340041557867599994975079698369219290761690591826755411475487140267125850879376882113653578235722724569617591138096364227134579181054301307778827885340555010862123287224655473132574240517679085134983879574742362270698612113503316192841625502807555600935180946213420460484534367423878949594539555304040064372032998975775344977434024086687022415000362058275086247118304328540246023426433497791170934262133783851090423320141693355093480171774493831744433904825909068096535065069279884288177797243506588638457190411383286363913026396975459271947015387031014627027073189554206539484242897218978630350794504932711760576680940301183030143470930759053235680592001379048154358637334443557926873162944669219749000821762704256281178393873314972928095122492138562497320928327973051993258340313949637860412020961191461122868232227588015801467544899003600633063980504972888684958311514336675512510097108579534396285180697987010995787281913025288707353213834748615959853029443387023725933472396423059844366888807965739852551197369344617138423224436993274264198805704037954083798077905944481491386498496828451743538083413472630928167499053920211133875937744199510414455234681869049632984356510979633750323360215664579678634765066892951359898691990891304393915728802383655810538777721208270160820036540008641962568740940232221896935447109767802761346741918568881263493871887318643209722255174320769484892045711376620562355829955703649143032340194030911167209489579036131277539464814378235315376528111966955224594899040398648621505966123572683247763732893175313509894974160382869509495055162035169664776907971661648960834325264256597129745064231747909057274188708513051753066169979152454161638082422133136567591366508004032884334592677471041707845369003772560883082690715004448027008539116704827134358894851826970517125324206288864122949687229548820069293793848719021399919441127949912712607947677847260620658472669768687063051218048593465746978119161490658987564559916352518155221308099623397481160232704501248930540008905266313442798545332612177879981709195407906949384355189787419544234761572714974206524269656140040992765846167648155073674435114600693346737069422527750689936657519054460916519867847188974359494943861699673439699281217208787331180676240702937050108278167071741803576233106559587440629805619455503832296909216563686475556561301577210527220593189568224927000013053413511707571334873921057732961407542622317344063269627275670555190240717087898964201437286706680285584210540248256518926599339574554733196341025558347224222324985889359474671728335960924539236652063502518976821347621155141460298912747462169246463041468262725231413658089908127498779087551930382419392230392487089920815000178868506228714653121067525423220951915985417652028927248935258833320297416681628200536236570438048504527479199551795009643503521622829345538891523052868319278071195340833106417510937812861919000305247663004536964646639257795414725213670524497019043611144714929136862759273595368918119877554786723436314411648769640539479162925354957077511883618670449915918228674977234711796362107570985236833032525100300194508676197628042562492607969602248717592765186349903506084481178405645289824920645334904937950505736517121161733291237876118332904461023112334617802304912647829287781690261505815984490463840725615319249757007580290150363740187074711104480026037026961123429614396999815659472127554477116067542189696118142599754759104724164539017238838275672147005190792454999978026556231781840791345667624231859236543901050390925211122456577776440583942372684503359109423849553486259786634573056041966245580171441768513933833684972961451820974114950353642178272281016501150315676795349592964106458401785299594140876955488778578746137608001207979463406473210539264912157861840440087887866086828401434394423245868764454712560941070238570551681445412937847977157406947775793308775658405094656530197940077984710689806609229243250005709915543839148951879686651834648092592878949254391665554847573183109236756811195561721786213267924314876201743255894268059818105498419885759461724605362995300174357507051045855668514843000429615187729171131316130797978394460586205427845459382967527394428005875233902279713944355957197847283978593704687064045062157055842556847022153091153977739816701735597146891731000290807737778829787454939878700138764218365567685208202740329255675534568185657636269840599892621828294157022652257753303182886867805426339218904848570847158710048044515903998367440682466394118454247527654670822891275004395366521553121191162724142556406972724223027051378263243148856271307185047992626227083152533136019361184544926898910910660540555000660663424558043645495873966695864085544213274801778389331207665181527346774517852280976308383659919788369532892000212861974451944463240830150588197341739941553698584327568031972969252676388198027678755662179104034016797474298829478991157922298487204693238812675041765082085074696841691870180769470387331040531739114881225810622807845016022953284066533225948141318374648253763654651259846834701264038726924346497989416720735433099974682254058994573961937730695526505424288746297471583000360423255277954514750462631980043549314754673510889816217195055916957722557601448057924182196715582992295026481003837168099282224751817120616988171248189766255456137087369095065108932497244644237530989528375561398625718501610066800228917048820698193555705797172763654939432103307899573176512874502688911174806310679589886026403777627142624256576529864688131468891844821722243813173423339885425546262401057778715445495466729110898787214083724448889488143766831683003398318874597504260126664016366290348005981028703363306315755186309773958313445470125901080413422008795425058966788514973419990839163671756066386428490567954302955367730989056855483921272185989830104861254824581650642010068001497159909604519388235027900268767804880918775648728800897775171227350610484099748991990482720298627893688135263284984936904284231992911200460478599789447104412324109513281715635636291267391012764957887709959556978792316452881669723577178649593378340272902001211539878028422763597308430408557256996357637339735101515318174910331870302360192578605821832634402015046833395915590650211281567834664986403748050849848767345212976093644749335396745705942227017270982979741184011178321502531429337745148367703718644652548630415192824530184579867892273639399695418421770444441145496828787759729612568011428250337132225187010479645439671297210270960478926498006976916573636414070662363533008674600433600620636182203262878597590621528765245011252629636589874211643969371669211218263410579114745945245046884583922374806944807110696727561252207778035516865335707783101096052118872540175695913077414930210400351967624058910427972225347968817753207890066184007532420460834310066994484407427442648206880909569630874554939366296637070434964370490774545433685520257991817211368489972650204653118780870834603672604828845795723759166700391268137301335363757215590878732182546866213481330230588895263512544876587739310408648383423196601627428394036696841722159026840418130793996800256201922799679480430841248556393130764906299146563219540944251190565798090403086217557465586924261790331396034839685921848576145128092423109634107311722151451363062734690582487173257047562129290293909926469928226629931776366559430212486270902781625282746473118063773362617775592908252010821700249050581269504356695871695190700525099635933660790474825204407437107529530215346580078079766458445832402566224381299155446503320727339440288295380915452671441255906369124602356162279325303912498214362421724775043473180079577572269936863356935390690985945754839056754500456362359458476660344005888588322513761953603327783767473242461008112074965359697561717498385684630009136825277294881307073468666226791128952473470556071511238214338293150328206824367649011219469550910118953865614060142578695993259345500582106181136395879016731053016717389436453593057028638319045125577652240111585272327208725090765737670920605096665720424223963733335697856812889024843144353940917665128884924339058127070682607680882200112346040206846192680817740428741976072536981649858203567510514870134733904094057660470569548328450874297429700873438515935299474673063604007140323826537520644085722693532324158915136608987305397354022100813787624066538802685546887772579536075171117990665081065112955360477171035641014635343611578833788200551320464337151143121904201925658818104655046799426332134859658203885550529866314495305566404137394582837473281257925492275761712252428135996361549221357865719936111056255540060577796137359951693355096030127609584733353309240375556552878208292614309049215551358728990030033727345164580617216712012605278387438081697563855400929625627128082305326178909922381469746507065471806646674513777105614823398909597469503815693868433657892602173322997329808788410058076658732007223937778369161466774213395730124235136558033727004803832166678143301415016670770907210097449373397227615179695699515666076421247837714613315859590928503942616504184208298910163530155764671005509889928599601528852039117156452616333737128185405998915474746902555920795549971349645765342167089061685447826507967072450614689835407065182359901871048864077466253497833233895897479756728099902476159534107772444413191499150496990854804424187094927298467625686124583831459586416842616953423867449347878812232069239555536948650659646040125401022532225063883417922165271559288602409758586061299194998014791668006729402017213587805207963105043903528154015223248675099549883544200168566450842477533242275149299497715562091885791363850357092315184120261791975185793056787796631212544697956800478808676124852502468925323566346411343707212612698606169345269934876878144370995840293237412500700633779980669535169629574844157862524831592735002863051728146046128282410790310903821717981139482509268035347451842271132304972358379929533024785335539346073213938402554348069633892561139036242987505258109189964658931304477300697143099669532808628786997461365012595612310839817347426901119169609934141479628606495711706095322980449606741866882361926851012537222203019872804370356526895342228308404025283085144440905028843493238716706716759950662876376842649358676489158287327341530693009326760028143454377766868994328882313702885647327281669506063932328122732756882292748085393664034481169867995057234682523597104789509026389660381538610968659652228947283220168643661771626248463435560353644589468319282251943742277578148128477882112117875312890612437126347792893982110952673769362201607537105324841654721568723355651642789977422885984405481262125845995731322663098755743027083273060454187279698136095317337772450734502765741918029696771122765747477105360038660344405576965258355069291113674782817549494575475801679903349781531991218695297924006419032396526248665324621328845820995475114590853971334666602120651596617465896445753442867899678102465854558702747446055668301034449456973474109675475481685027917056259685269481041786320583714837904468505719590969534474981965842630143228760707371429058509799170387075901507417738168313897029294775552489637785129232520978142276832702414443222482438375785418485150854320851984182152558478601603063116137651814743689250274840758760214546323775737392972894216387222632115326486321998399978552847244274590929112952148494167001821866642279929130052866024905717928258068752703643141803346608548723651754411208265553620755294758351611555991327037812456163121068169126591489570197443281854782814433850746290444962792245856455210809730956920615359333588977516430875451967079203059296074585963172871270749580162127820763805214950449353683877343146823147367035858701378143209460079217383491878982663127198867755696257448378792151565242996600753137729455107391801682602421181400907063996971235896965417490695371953752000479826025704479114551630906762590023493416364939707013511899967736237959736132921617126403943163195472714424933810066151187654102991077379100834137349776536744369947585798917308822012011563186284613747592855636252646733802506222208461351769359472322093853995821026242790168129609832263032517523767977689171493365416778639383227302140939725140011083086076450351948725999381204852283012005255690025215857266665039177869129897924408917918783449016030494433734892230547660211801614578760049808923778979707676249957156878424887398172529677289349901173360157368084086858457420598520287810761080111599455093742668306098762368314579272793553634140136949021859451410575892707945265325239336690914014592048531093810713351225084258151096293809541482118729053364724651101982585700196225385655331814466417702178185730867994596613035244334150775548290223523414704387440272449112620411941292584936491848782936606519425139448653325899184913263757711796849740411060889971629615082514253703362212892311238435327239038482158408310122044743648341317108227542151217176934511682176357026810780754790808718662876389150404227233165069871283558616583933240219264115745043459230659974784167902322249435885670845526540595418959320567891224821123625392796523951480719566837047643326451640532174965402885416006538050760015383921521473661481215464089947992238898627094365997678632397267204979066921734996604988940174419665334799409885115558055869356627357027577382429760122488703087197530763157629707309908185596820183360444643139026754626818818162803056663802627542191275522492442560938118881525705271703205074380232082404528742872130883378835758475001560110162142704148485895331426219350019690719290052073689413267182502420062304293133288027265950496263229162677720107245499413804346280627815305445957459957568988336536458002706826049888634608716417516855825618827379691240260066412913907653207459074554601392564216541625475547775500263343315386574866689839177264035792227913072006293049512589747331247998959903094780725395957463229954508719722970194548195179366998691032945605671993162826380756223911945047789360980442351424545114775522148231815045880038973144165458713941857554744311350164767980188699432485812341429630817360394080714853562470163963370700414790261975507027276307381970607803137342962154714639278989504223288322758350449221454278565110627384793406309628964599086521742591148092654558042909065253917948633313050119676637666416589816846479426326310012356256624867516159578531103062802223279704245451472313502379922874193474363219269246208666285487629195317007440542681359446964908041727717175169544854489145974955724579495717267019180514588944143228434838184894459542391109746795766281968785107990915222503751189612664005048913169532568042992984442623058580723495510735432898710807278907751926413044674336333611711293062241690395412891275676476482631858573315082084752224860966567808869410529584470326373190728165625328592227531381697166908894749021824727566148323446839287626939259617187942954631924437729892262788688806085240265279272063034015250955750848962497847259429022709097514513158504488279458167421774482848854219243426019667445968724099400340016238393564458755236301730195638823904635046821821364382335232050684804953820780840383931321455205678129689782231773342881107700603789051169339119588728019021884058621246767467427208590296073212344096684500395978729131997619000359258037416677386865519271228509814954247931429441895411635794453933727931150100047824340002444495595998371746514112957471660803052330560665318312372095125880983048162960466305803834649164315349675237901675367002028858123139473551858459282168037396463252592961264727339644954848325603649057406893083571941212148993819108459725936861662740306224033642215397055409253689719055885732277770516380043892111418673383259207212672553990977221791281732453938758473800736102598464530862951504421747152950597304817488888421881061223339995883008509216211073889202127369623647906721143863778336777707003238957146059429804959050514748498176389670159631657522176933563043490013994092501760379626962402696055738710642756971426726451114388976671435545647127404237889358461196484436834625178603165661115064080985750819863316685379899839236477196248416482541557881191189103741402018142794016200086877577004213149355418500839696656842964783183173239001867610588713126036212996037178304634751344272362491111813477133428314019945132602327416627381313645459562434234830800493555987279019160598166911387723843086874729222406186963271173675164914299080927841472799877357109688941202620718497257493949123817939812377980324851402715765155090676778570716828579632061302864038612348657243743672305357221658012839472719278982222832416037268647720536113398374613186495107731402686471325336718226628751153540769996116108142816203331008142749752347127514860966273528531231775491827782541678659803282863296541403271622267842015229287653110157747750056354602103848646962949142407295991000529265958874501373312599361642042333501970192662324744544163970554573291348157693197411553243831964711263548930350087993906245763127601032694482931939220063267203264586349463915367303390413889314476723614978226946001608547728179285252509164873560309336975912071980353261229102911279499611373951866597283212883781841239208785318759033333633897991048027986226376797911330457279830911921742439929399802816045159556639175240933259467424381690198847567040236081383009931121743571102014349946281067948618947743059621570787855459581271388079676932797786418725722064038817813802960344267861929167234346397701866716582887021943320357621407546511626230198957804549267662206726076945281191240343910966530314317115136810802842085967807084998330463261526492333199479282736433920555711729117051193832101721511752039243759477244657316022249201124832220652485519501122308829453358293532371685513874887600535082529626848501689382973790779695193378498739150075045671725964878927073134292114440847100185922529137233209375704073386763078789535400344861758799431079253088485754667634328499164577795732400235533700907949695456745070468178282845859364661925883448000043611649869976270461578081223348025564390260107814171852278278378505657214656583121121142439855526484698074486703043667137412036459869615137325063874693751809148014622694162091379203516913199458257642376024981291613232816269845625932359824514417402725369566370302971165450623793765046669747336569897935001477939904240054325163252735275508054070181590678305244360543456966678398636961414503604415208673429358584205448427288231280653238769794185046416230869164113265770903423374626049346716625727985195932160124006239929787818179419267067700001597317430852710412630361567020786809687276149994374434099845806033665947758013904623285229748326328517527419861411742078224826873044956713118534946030877580583063231908338028624394378811518762604005874761986828221961380399612004399141647275673803346247875889494885879913091392578231603432589667476499162249988544335210291405857202614300088535597323717453970735769373191640782573416771847276761147775408150370801922223893830985298769084181913764681576566910642657677070324382008163881742484881319246114446103208833128688947448454271149900642884816601691986766362001604069127594463241388535553881457869135757774058400798285412231181053951890950311059461994589487784734172960164586038280238043507509676272385257803856832131450868614988224492967973971016789755975062539025267653729884008485412152466398039417973140281242600497245462233252106019417102888141832489622311724251280976704531421746852051243086180528229325499547052414787811521900638302814895844609795864028141731604266344165994346828591777381171999340238678101854478907016053408142102335831082460685633049096236152440564767127352671727052893323903875193023633708736620047078701122452692124653076882601272003173109437507220252238511752789502449327259155614535769324526413231236913816212883666468740178675615727241028636033037890659714179640800757518387148620338282320850672618299422860971424266403722922947495256744183729447594302258833011024411634813248931664434188941564187212011110824805524965188748556851313984523092716821346628642051480764187157518134011268357307797311884393445612575818489207091717449808498156182514833263357041408595109701257284994021276633457946861604367384383685745677752099720130361421959630744024682917079439134803264691171612393465396551255893357481057693654999910647886857638880378704616029422067347961364062810407926111318367852531757066869791468789268126867253912457181705105563934905428324591450549914674121512689531038358579400529695685488879296673665505867854254357199058442677588571917021872800818237811827212041404108843355433160932495556810790268325803076613292092988715682458639786313791433026865130672780038058540617168414977278842300645176980530692314474506729548812732213492578534775891972741197870367307142133634175144938935727239200840732393321649750925630832485459786885153553815150238278753382731315240114424486642316066860389424422703721027171890009260155523512768952221166119987405104723167080465531907743706038743659211452583383478569337982954959972116747758578030153904495689702003534910203584297536968209708794688706929934091261977333778914971765320873164311247440584347371011986098784458712627544670511406282807337353936398649058586733404082832106865908707564532285728713662513856380390489293284030413411226668854043429247823905818053399321549031410347613087017299545722610393536115470397709417569529773332246706042528165674435513992680758395967007686754101892789211991519005585040401401803724959243125035705425745614891813074476298242924562849431430345611232872807987542038261355828803475296603118371999901088856123012883684975477170974886375031129920712362400597789855491582165343016495032461764488847515126667163532027932346334700941256097679669862604555681392540235384162994983734848235721263443224283507431664722382755091614858615926130274073775970285203767344277672104030938819061143043850903498424511713882293914328415936485766805582938051078815888999309721376799761296548556839269229637245433007933468087882345554835050118817463558704699561654765801629272786830810440003490912763987767209132894229561769552288827351512221164749180204101319860272518800965165860026261627419631348051173524525064830525921729275246113732613114832969666624065953908769481959824931372956889379148645768638147675259616720817815351510623385586806248994078452173992327830668332203656144645745637655371382894840305043333966481526627727939259219029495086742473258210860171342418576284616087228361671437491542718866626008579063145114168439424145248380187862501823543554684653869849402204531585159337582415785175269062163476898968821064551772282294191570756290865652292072643390063598072535460524092826364384286482921159231434576828713111890023174642167452312761365675175452720059083364801445648837590622137596349522683348656627602774727795630403776269734806111509043439123378279743679554584677426962341514502623526674715183052274615412323239930623815617075702310584941088516941692197410936935106882033364752529125081092721646259549029859633293270953748541981708297192294865860301505787471449932981822931338959393409530364598312330623869399963237739255941209349046393242121292704552029686909280378292746367177969053767836154844978835940839497102107031510259316042562615662592478797868486300731384379494700172257451780450259928018426181085708681249256975211235915518003746431633377543567852057926671624678162845855128585785548101170815526452040684534031592543579970502108399472975210244479985007300571543194151077554828246467034513028410297825181832661669386470021890130207583633097445615797169369610057964197623855139007584504013084812444489473992471079752354328760585276975690213574675066679701636866930303127126283262292424963233217878950359212263470934994961199394299527084581072858931837839896907933876093074305231468648601737118685638826025199779614360300932414984663723255486849508439980223769860179862052098131539180716514840228890170265980445359866360225686707001605294419842608550255781194112413079280059170782327286923839837933895608342084214994203362971184108423480345403786132738672398657202755982194782762628403316335586105964360621078695798714244168954024189799893290270852629045478140508700247798879797859985258516788664828942547422978131269891787695408443894684510238658960244590915185739626227162567638084563359790430178609082751003500186703780579407733762952370607917205449101247176555977362939121794083016168507228098455186512681072532000642528955950305433878877300933948915068076605692783024834747281500154325383632358278778633547639574437325799740246930288304185993959467471907208817444388274897898948160033323052359626281692285719699118367277991531335192266563256803605442047968369888399244967542934656279360352537816488013901260505237590303156447553190910877714453283474909432709249723686568526507314401190044543497969763373694347784981201892617848433991701754883104570117654255958672549347934318094107340104361126111644241638672874337361457203044697667632153461157902933460409657882087104301108937541600247207969230829742806462344947075870569611908880954943959964934958472505486892205574938491638301078238046801384477151420968322255151651646379780467887629306458141325778345948706337450257528808410736525780919429281033728775329926083757344242937296838172048037888913471862785034339388571695509023184513843334544671322497926959041984774192903921945318481373947419473604875095828483457480497050041985703606829046241127977845428590375109124327589400955651041889118440336520486031966608753460978008068452972869113451881033126580596228872675821026125921856912164825572011933231102077032389555574585577398745446767530986435718171737906772862625400037926711674551635068355409707490647252147332282501641515758526700533514856418290581414479676423036789466792339865008474523719490459243378987855226630053162162012513252685493614363369669397977991562544585959360757001696333929789258634636284076848574935100613176945572781880602526139827064164127112959901749169249168599413970222854506589547503825791407825201578788802175404166489882276569338975714271912087667545351444941998228558708550756521625232870834494718743265241508532541151848742345791038518283386557271886209271604983769085140005909935196523493351819463633749754243872029888268881425069989937681774705781480457021244324557274432402437206753351833965991396936166374839754177117873064626536414412827010477227631791267283193254219200839440622727551286511251695432910644265770326675658463968394923065588619214744522905329562633715818702576865653736915944695189658365575076758814470138232630181886649630418658158835508591159096540207103178314884406155775311351339731851356617167744473419332211450846941102964334659832844575599886308461391274672720303095867165258872608014176579090612467677819034076156765026976885390322529593798300836107411801207501500764450712754477577477677761937309814855430436473596149022927992958708469291970304349209528388295744446420659890051859146545766447287176329646850737962076163739894131323113154285756216090184045427392174220918747464605653390810864064819848600858831359668032926220766023719414201623756880746023495055514156463262148113769849778830768138302241874260704162582106431789668701941987325855235780804988658234318003475431807054400913598141709044861666131756469246373331350968146998455329831735483640372683678999676954457362822732817542367618129755125694828544695498501888778016646845064049485051358561097755067177577286384527722222171121531105908260835393521911644196016912046147962600170211768282513626489598407715111365135910623951607073656393174352373866889672876390214317953323216379346137080280858641990024124650965399557947171390948217183086173760272900414688689511745588711605452780145250897684671248449814097471217686666619191144551141652494373957965914031124236018555522389593051825251099805973894015395644371288363509581658151074710335661703504317574531141240157460619602597283233218470176461332577143015081542810812640509380372592374044968954515794176282928435514346767860784924123376318989673666615532131786133629868064541516986796049303918355246687818684854631367372306018886098481902206367194794007910847609127072547423594898294970317393169520778008697719400032171083524408910538335660967494848008735387927878311408363809379349698861218804451281277496602188651565838261763978587556271765030904705098510140524104285292663576037278290606234952893487148912334547641991583019554830306325282054810955305317988826234130991961721632118847029460584271151156176518167794116072078697690417002553328680686496865657032632844554468140216372735127067306971440133700580396648896322990575925524754047750510826037061586137230286864102233256040338861473030126549637441280104718915275011978234479096171338624752759701844975860566751465587601373290231568405602236296379341011922896110971217341681009520108875824458360143777237046171211751811951279992917595482437388675321896497341754507567489490037730664709338985686475950678937802589255503204415837743932798084506356065163562101247354972118810582011542900635224671888974032331359334374246626774058147084973087163252143283886277014829861288353352821213472017471962904305201299471606997832535213599900083267568511824425162346727547229429961220572240392213846474325612789258824040903186248296203358227028431948177948411105731912943730943332921069303418628145916164338347416363402573308221995682224051352441380190039512285194312176002669496890373221510777258172523977445804617939643030407188388978988147683644640792246817436709763168121761684542073786232921033051926275481672815388539293079579701646415302089608405740257663372598028471353325350711064603461616329407587106375099521082032156168471290552494011957191313043393124617015050763550805673854813146477802374291893919185930621581137290903615498058976590251697138115147234809579277403368201987667433992239145642719984618334727785157891727776115507986165944925113250607070204850807291328327770234431658198297774904225353956090127380996929898623576370213179697152732054026437161014777469998582007911032745054967020143610376327008870526998050030262309598684178087222289707366604745745923056986363146745713837779689835390533423310290046261635854582277920347358369287211524563005717207833621238631870377328101574070277972836069511291003475834523467122533585924719359777748152125592183850557522789934897913329014402159478092964990444435920404650228317032213783323625267291330480529534487403455734214179404152678590239783532696112501249044778661378972069745734931024614689699489654193527941158639166823280865204854292332210328952666063210512616456631148660068817012643159318042029038676373526070003280276338548215639113106894546515316276088895240716475544929038664205563802700331338650896744606182406167188788975672499191269010574730314542585500419342105698768040318779183161126446287400919209373813854819287544183838743083406617365551224452595549936504428683028833982920216849463999465797246343412557442422436532871575939506418403525457499792871852352164894199726245395422968627818937963308988577803246295714746923186801226081709910884645278249833183709535064475346414305875019769742381212036900577555414383775171841096279156030418409612633659460319725776923399584976966909136800733981266204117966306738345111237505538905734664320158483999705737837667213626450036815516951148720185577135237497794012091277669456942614782984489296572466696630852520810300776448401271249961697663932847325775677702925953355397269263914881262296903268854333853941975039840570391297854326846531887184525022568917995837094146795767287743691924855045166678755529845744842475654145985877243432401369980255391916053368149432686064832376637586337482884121428206147202741778576001318620023942447852391714417634923052326208545556922637640384131556530696538572797021647943986925708810380242739330386955429759689995389233285304838806748766315243217109461635285653593473418570316108371355847873587671594384425740921425720613688892392688447664964449105393294363142364535182020752616174042111097589949517099485152561020018917464966847091735014817153597447309961736214133557367862828818167697312282840897227779991288753436429146026422252928303368257713416604888020915299397310284005030041015854147525444466970212275777037861945180787383348007296095864716502028680883907156184073795607996756922865201898599821388286206240579495903455822649315940111244590960038690669210649290228783364230121296220259427978390339736857988739540140247117499484186948900219546922539424912657823259065110526933594148703067279197489842207936731459281364424131574274299555985084669468228066356471023656686037206131797910046191674991141312728072026376523521698048301312059140768437974609860043951167203492108193320542088818620920596064690054482627716782691519463504682262065468820854316449360677154698526172043554077915745432181815988402377765977247167801157476977183219891081645664252082142812211206472954140231453097835813706606091584411072240736906326154977646863554107798823421316754777606145079355350990490617404251907913680428312949614822592657657558571572855769151103793118468700443761786576981129581538043585619428966555401769988463247479684957448130595105410629001047181612054628057839715892194437188070594844621513988535636850725077519895143263499277427762363446866407379869765391511892115075296315707222062846195324046416686203016632425613626828712391912189803130745561631985925254572473936454699246488559806869088232089732782573883539894807493087955917189392335841765703857130081713337332066641429926097746182875581641554610361973966884401506932942139435840458929064863913424655191463870547713221508152548205991979558049056498457062838060749112251829064829544944053250836030636695004316042083964171584221224900595357862054018949060905070911928206663352298152243002636184545566259933850598598156424970331105281724014087400007892259341441603094986012796229945394994485218774027239187294758926412284116345145585177584949150459592989101353407997089712847155124572623794721441454889630748502204603048524868051412832192179361824067311568988274509005901924547125920965010644773130919145631960910797128748957587925924460924953032188505381051064573709006754830411380008642994870439854869409935901184440868097507613917864045227343979566582766695060896480728870670786478689208716952682533265955151972358450089977742962446628343593357910206603181068634017950802203866882330014441996857334613678029760021601264183021804649844722172670367534155806987624757766549926133286371818200087754364953414801301958982872026596065929341722509294746258638350923772877450767123693347205414306020562729958717623233907793950068803201972552808133167953892980268007146570545151700842385580125913581387501671462348768772523062082826268053064890200211199965096704758177727325086271135871369273331768440314566547918567893803352633881000341657263438338849475648684103211930214516876828876604503340856908532469551654797201487485920167774291072562268493347759164587406327083682517889200839434221132766240854982998331927542706944590979918344190960318030350151106617675856895211694693900460631674267529518179598732803111053325599596825203806062694856531389447571607059643800046976020651287413843692756737696879400028493742879425290127630704253888692671407260262772934278314012491568740814655992884687781233598236400797045677181134832512600230421205841912944279829226958653375720633224238968870797588321417018527975710475633077343007647161388453058167321914705853947224752788615178903293290793983336184401152608148839908304707457692465547806263865572699477643065260728956120338374156197970924278797204634244445754561565258344047287788860346141355933034964321650785190954498748269672493278052546703286233688948640158135034451493969695021958982276957053422884672233165448557818553933174512296749674122005444283412507383063024727265643885912035659544119384291396420389927930930516519797034975578112199983047633346216306031357229967795042599893081387133354964455410324835588926284739569035929528721727643611587135890981278040419026184109077637613614290285852410520797977355222936264788753626750970662510023981093028407796475734410167062868896081876182608882468679194948308262853594649718774881480823122259309308440767028799151969944690336129719582511023470372879682541751677412216453532913655748036481258689158495264957674762589078833827883856313970559314711148800715138559647537421591656270481263954967465209420945776331193551154621741972248730104481136734155229621892883762754121418170017713765415063771029920514681148506651362212703110503124771320041354447577858252274690135713931722964972055957505867155926807528951212162649628650822438635037153207590703390283558220721631671910441928229297864612170484649733651725714573914981683676990549278989960802295743896077324646615122775150616376063622209129409754948240272996523903433194010333695040433897737092954348214001616611388199424770522815366604978835757616504029614008318600565553070882618949848944685464741536041188389212793985025193103168426711936027570870453384685145768341433623535135835525512040119797705736527266137141485099295684684254967382733502455614481388230348283205895228586414190675772692663973398477862706693709561234681587820052160330450377502522444518419321523989646541335264268314719513489198259669539114509448108957182499363090085139804979702245204724854140135484495334904500541742674102264353435859889594404001454189863424296090353080262077313696446364362111963339668534962447381644609236024543195892131503359845452879239242438119619632903081034131502574378197120959141745293872328910021982484187180684705058193927005064938716208816643743358149682609864739341400068086354511165497661031940789880830480568772692556154691368281775614191143985738600172183158218885126968032236370074477626605510957779320924571301156279482921180996109075084668537209393844174216648326184470440297186422740859613123662137580884407941398758670421221068593316810023276685578171139417913254239760016291616973348854993559551227086355188784792941284007600183959034881903999994190957084604159116248231552242715059804430727974042851900577153192048147333414444378894553636421599635734898159375940684611405170402527194261997002344647210550457732528322838834536291307936355642132011439414718246148382153671803733461662976388556640654208409754259527221323472763055893727299096041804241514098954894273321034124282331897176412336881524994384445553872799722614739255803724071976698490116811763139810005839160678670935650782146277232264584710787326805736231883972214796402307554803549493729671845138738883000672694551804094184136836313079509533306964375123401238724162415859885763412561348191640387375159765560002842282452092273177562680330347481230356723580249658476639432059204540744643616365570231185742470146851181020928299136408653531532979794173574403891522692479279293318107059875091238472946592310843006934413780527222508963484939740868459325965972693408747110282944297935435515014115562009081618098302797439178876233156880454319223715688618966941248160364795972780186563622470312358239829474533548335797260252331848918295056559363175482780962151291392874515916251952743883159479909098119715286886469390274609851321314928088691272525730840741303616594871845616262971329542010958996062732856315438602857246956387237002252676264061018722742123687911896767456516503297881230571693025986552867124622796807302472344315776388863259449227087429550684301343952644980597602825684212708543684923496853104302636939810891674412348088823484460268712543085232522520504238071784327786330548283006930865553141049307132005095836815397178906265326887146381324403565252112414489412045302207726094818854330867135927679490987579794205536437749423492639733996203519053048527353339659577682083324168502970122503472887610844610946866555504761639995963097219481542709480268553991545230009540085662326140700913952535552715476219862024979933006560296927719094526401315122948726731211398219842488715944734435775125477518071536783274721273029681816826018669649632989996737722720956627366438114724270971182202496351353359585129586906496398773086967818318739494234251293353794937929705243419133666385558342143312648745342295795919655688771953255999909185332933710073698283002537781920532905531177619478562805247830933726429525519157172093707088657174203448988754653200591667949068612816028063995507028781635546445139287242670971690145847041136869605538246873295984002890642323491809829337370195184699310706470908590533017858876304647269567738022942511942217365402533227155526990804219529533591257986948960558419615934906587843662138582539825552291253945417230178888953885725743831953677310313652193436949521992761863657919472988639466450196563869899630027953263075944232780022027937521431587660512069860438010950981972864838662400884343715375359976395700752276963850301743020289384110148944101406777442876929274690352354859133174354222292916994240319694703933238999916897804382722988318542045074974182248124913420867838776297064959689653731941409520694868427031680536112116324889582046969887003175380839044977081866708296316360831903384750216749712780858382115327940828376548390607926399827716401852715633472423125060247393903061812816057133844869392159350026386544724204291654019541166610351499253155161737501798299103393271661020190117655916553038276877534461304626787511954426997313615565543148792043707035417733988666564382253090036846029383846379297186173548650530763788012090431990461722462304283680256677245861466602786174367310354023341360114086238670195871502611865481745963116521287389845766467260818803081993443461764504937199936168598817033869893254537782402444097250491295023921318106216028787505920831237575936504568669486487864656768307813562204802485188032198641650557564999123524817747959311227629070355757583551352639487831524987743311075956814688808185926095789931854039304910850157445756915244397002892931566680517979518864412655979408119304362289195730760832445782892984662722330826741119123564027877153452461423009472550122173802094191395901461769816151871115245328319382073845844318516514054124700071662386474433764204810900169998631693807905191226394469791075665661341960336174469211046746412139566274399202700333120316610801889674036194635302378243615453241589351686340249215370613830371250550010533021656961541773274426556559305938690025565261091330433703603413719825759566072063380948728171792143635129199624636033022115260285790358780851430707424194125234736796328459179981939696206839897947490909959100800495333853592763380296416140547057286996000748069882592313722784918529504498194098245029915599257803147673635795667322468694957613306501297628597315242997813120309878252268974803649000792266497892154201202613176647727949826707580954478826565164377489878804757788633724957055996591396120399001122822984656557768843342530051403229204311529954268774747719455173494093329157224923016649602077640934794990393055164003764235261965437547337831588732673870913827985860942394913923689561532470111678825027834846045922212102079581947307673948127208902272262630900308216360136179289841151185312711036440764758471624129789940557697235866132476563917963997540413542916459267138668983541119494244095174066289584658715261729861745187260330737191800416851427894171520634254019176489286022126985290635988523112303746730205937331149898944969751980043649190645745942139247154624125343370123981160550934716597188405902534024679964202451713101201336169287005088942916738168480367618204606803954082783649037166581687518330172223759792901144451348990768834349974716285453274110753022113784401035678203539586249787117385215033431341028355715821283799131327935856229886493616484294386716004276852513611736136081346519027941296655354756308231880432141018371265477186013975263448795650583192227600857423796570729149068642284175351670994091217998126859952030346764577958559454846494995075378613700321104762198382020799830333866638335488149577818896999378764984234087087273595131808056318394565995526038205682283987719007619145526934414884844243034758338791050185003797258004126286878363968332405172526169794168256578825538591588162047004119164840346267244001014610558471372284113195151512758300007187287007428919301318089519287525879773891268112574528056151124225912122693685529921723819062976184332468917605776560590024325242892498237639785086467010596426878010508167084276914930983948253364061386033949222091091334182380288589816947378576432884698239727740512341530824959372433447353479129488763458868161477937438476203634296465945217834296246051918079741712420002938212003034088536639954823908927594534261684218759150362602612156404297542442595540944028837521356996232974365819142628435121323281049456544690545971710593396830124677875497390428189803033568946931119559405947525999828301201260536773879386158788812127689627950609362799571321073056609132598888888189736545881014427917895920318095981313288604213106918081355848068882888578536297609371219089351765760002322049045907872148021400969812541548770731293668815501895688578494091544953640923271629439978305033095296668992502727323394435825054062244005690639323976072151811212886491057004267533832722468615214549709187336798534633056335137745219504074322057809100667720676334382543835098895356477709800414813440051090495534329669608155004328678875215068304790819081783474409000443518476257810136699415459139453979074249458642466778649660772668662011643486631468228149878161530195600796076450805474923904684487650623099180934831968893875432433534565663594436171172052151659706990679548122468111934381074447196381275518311057304065263204256121721184115626758994682739860664548691875195467786545175986515553382803004680871132658641433254737751890772730744433847524203718670114820462538900964794731068164985454429080613283590616474330811666939951562382369161282804994302911165916613839297940436259385352081514125027261902157454102304492500835178504115673049945649749136191783855450279446312579485297947679823731842442392730307778277320566842340007978984447367718310147321378110698314917713462825276169360236398662029648239576516201875473370794687435211035108268479930751621116221402443848888253490726531790465840179526765626002845620766863982697255386532147316331520867578654515189703654174810797407409772762383788162147784671560728756132998910815984410113013942932142989253921487433450240707301020089873402429578360585467527799883215215032306943220488712970168637524236123444934455714077827983267204697200902731137203174658509958278320440235914245394618174078149155745643261037708843827883198490785244487147028460781937032806559176729257400886943715558721477297771715807954415596422881756553836044273257271291315176721298324459528735446511990280451710331640104823092715114387785543920087996685097068720444125070607995721384872922591960516379758677390709180381465517350678020318443545449124042008123630603882059472319288164830805698849748844312134877864590421807053247171418801846102785594212809267347121042028977657384161365457903208590139706065350744427681953352694940623389094734689015775556650318602876207822007433495999529997485183390646861692892818317631654388615436584087357799110870518107362091797583342273957620087415142915075038720963388811588403512550464840661701218863363401114094553731505688837153730615390745433024960836227430769600059969600609187840214255368606950837209320802190560367212205041170028031017198076687469887739674732933168014747734200613802932733641714575474311343219604516472075142870685090623669806653648577807003620750205241815599762355339120756664151934497038550329493595733647011106736495596056574152860269470139955602006109962669976593806895841185412243843468484632214533893984524424657373641379679547930279600763371985750099281722923927939225835406913931377151597700602547537584105156691489507961797673908552726446084414805311603681313006043104777175113482879591369487998936330009877322025486594598996740421184316918853438106826806629156136135614747215355228005888114249684969845465871446579039613649717028239068180737770504744206615176917007568014922185451634165132911041779450798356966076044922534412348796710392038998403510087045928885528493913270004135254356264701440808239287308524679110196995640086295742957738604190404787193817067692973623369144974563149670917351274016850733530210315685945209442539625805047457980522238758885894501075038270283142817038444218787720842807781972760851713712422393167397779346274405814047151646552672987307084034107181032529621703101857590762792414569428337357744008528050182047216995953925968961487886414730071195369380891266046046115877635911779225397814933338806289999129204758593803999966376350778399905117913150104854060725852555279734734311538694469899321314842563128196233814310666428903805672539227910189063566758596288255021764583672293988006085278707926809780959530524171871755962741187384936050372486014439512264920030434272916037401465468434161069830638681177339641316367955071852006650153787284636790330436288171430878459038819308743129746925048402522021081407773630846065950841551646247791102832783290903974688376566237266870308562713128119518481417080248556432373107028203106632162269877540788588423324106937581963916341114112177517397323424635377364487853119305857674365333671935085971271054185501708140624210857028380849478019073017466529502168315164893431756567143957376331470434878737811408907093070567024140505446987387066785223653528773563386955759603120726364169618734919277095469503577075137987960559776864419518320657229460642713986074136070324140528371223459461885715275316641391263370030713486193841399726220702938704915822967491378948881620001499280964972158285121104559041636861000135991547320571198277443110931342550067329665854911364923829817504228055444290818935764327465856052151339589813524085558252758819653505952972174368612545704463965187548718717739724416492692218697897896508851743483698516281148671438306938332019746283588333693946650308293728185795421792912367974998548941879194539882108096144482297993385693045181492434640876801301947850439821824346933357709731315063087284466949668116477013459590717730452506663961837887320387524321566072746937078997983586766194913192801675345171141818491919556458541896188861155472169462215068737423439032108709499676954626967441495719070100234998759292581875381965326481496923662589532370240042312171396814398174435930530366799938331835085577797258391294715069251134933014281365586188777243046432163259310252025727551623241722531883382327092411449881073731495965806029717944108980695645018407639358049692628050060305505642742006903393179413189142030886172588563109782575698785994088226085281317387296391264266963507168877429880559183026252328816177425377571022569873331690473438029784197537704522483819674591630763674247937836879057227920296139251213851613677911822464504376953029936156328806428831133501581546093306346460492499170579709789067433205053589621541114505998667500164783804061477538018981158937378367986333140820715573465032291557684538719147236482686968732067278558215021966822589157704467790201038740070560818235601931569283983659315988455001423249349048267410754408696754272908207172316184245164390980419813974161136492391049617765452249515092168444010413809047465979040538353575147040011389836908246145002759897324101729442344158948738885440045352152022566049275296942829895994204908531077657604971291833136639380762078412877074201669789636433375241148549595746061503077312735328789942292827620131653334651932630625218545753784021810460652142134065602430734593199763724578796348743004905859133001911587332848008945992609787767525289509269439634012409528866926331231888651778051571640387200272727042836420548656181752267067493755189493219705658768151590296497998960065572108558297285113591258041467881894336161118112058794841170002444987540733055529386959238531022680314654199952242960486941068455106383674930774622831703911168570934967702878495853576290911683035063720894053988248495580089410589818296717526450796534898165829492623140256444775190226544385024889280411805012667571584497566563613097677567252434906046038229729839359961543830270437327860108183716492728898958263514384681203438220297651324577499013774181275629820211570524914871708277080233132949846362960000677180418152225884958882845210965188208628844150091027244099350262813855809949636188666647442399207411469547405281170190458233913749838259499718704174331646594646553445646491222767690347159427454268938189517577902784909818811721297342132847935222931442161718773841957646098817769776420031030070769716520378559721202037946979313403717006401604257744736128521963393812846845214111368278444922192010143405625982730570430234721762313353232907390403906409157944952889186745170889666798688868990575508450900215393506934790962485531590716497858240504225113860070208132338038885491446492917594371207050551726265320688838720935846054018819317913985240188400269765189951001663575957412180213699709821109076635052910182540503600224832896825361011638887292685687437156893193586746113034304048719886838617526516532598068182891564918665459124330170447424719405137981665358773173458431704678882739575494304016358006890360677877571598363890642239593283284835474782879948028226601861669090823709766903510102571421722624526670814043471774749122926185581544840876841892593153296752083531488614987500611265391228513833354401163130181877864872633441897771287424891067567675854590982500067075873777570329781540535602318824316253482296611489655843105074835154676521380363782153458905039216770880623246299110363479444928670281946234739847097423738165032285906297168304996403853520754388566618878416945468258416108769135089061411170192997143747914306168941427789815891312436807472787940395969892432941479339555621307438077522989507648044362627036848956214021066684896325745845664191443914021973638543903009057718684778320171351989615842241735295426200384573989120837410964286084738632583931699135719438512956398323665905276122489409671069307853544460508814304489132417557966615283921973073700689513664937232227541831368587728932515055605928488211217069147629173714869720052121839440205171407051016561272508680445114384414344268688155436180565160212145755253392914350500064536033185539090596957747548739494352664759635406205800232042213554865288853021244960570772200371648608972885262090890542096930910390294696603071253531410876818958732623435003143646200415860406229562004616117846473010899520158955304322616123681153950415333723545522622065416281527307126060063010010242962849593743932538158372193998151114268521663253644822293786430216725864609963617694877262162699517188447142778490290420882362860328228284433823337026448399243571230817023270669592736435891984725680614303488085020916135494445021597450314685598579130253701796064957080167998781288687405436565880708767656467628822469048520369427536733252994518776203625388575326007387472672679962220946234816103292943817230227382150952016600053190354705841197226549064668245986474321283138485059455513424789721970106852173045604561203301100226141629949243396809873858804819354182510584297570076248641686516114697011972067521459662368181514847338240470229078373656833511843940985665219798363341709135912051284882861590576873584400211727804207068656695059183263587185731214405715621449571285366627917834729726742347846127214711921358745997332092306501228850636295581563212235665923935946256678366490234788643847020959620450994322895195786845386413274781506017871208384128729986089586266988341340042883005904559119141789648384513724060663680622852007686249412034373960391568918894944512182155102937371652717525098311701575838154385965044816864855890935519061323458919796354390181414931534490760004703773460451954155333442337281077968138082199362425737548179778897495956498729699957019966465164210727470532771311483333650917829969339362207391401915955922227019614534486357405742876728010949585385939359781552456494418098456962172608277023454210244057214897801851632118577625116674315083065852333282469533896609524969674022757431882062449063488514686466856432333240948359840404276922297739377148531903396925221918052886908107839908072365827930528991545734357155531658083464302724688144343569365561098817520533412294625508860733105533382150491962613606389543846693959356368119355567958332379179724344662563843259607874212287945695010972654471927900735800343057276544289688103569234407018636521372062199044035343043788159180143505328126010911216480943092182162725878221186209880989423989906381370191022483116724984384832221207144881025965567454216842341829411444572743052146152437627968465353168412787366278703565111432970681043602102493413930588252576435796145442724174347102510621458635797238097783530223792056189654804030220253832014618837522908918794070417607820255864500839213723033653103429792144404483456753029407990410280358394323549299331512250052231194353526064303359713669003820401035864111068004717106349020939496064105762029699436763811306786601712400644685592365656703871841694632511154206376785953337474787061865637368324355473876310971960842878743720120905502519532447726498048971311815019777097960058140566512521871070607298303416817064276609592261494717679519802681568641548221948511660446488985930763540543846265080409740896019408171836463146902943336666607064778453611982135760492002456073824290478977737142896549310128249797116508156136500246109617336560818864684082808648802399329940490129029881559223179260178995090925657652767947956695421814395206157334862241278627950364085559031403630865571186612357297855957849356896149015817022822069537455069142180754581354996976407551436351800509592606668850568811102118476273668935621347625740934105582331082057117606340613387444556068325731326654476322079184181280613498919496359646005803692581718284471119007446244396548080566884267524009252455723883403357577531705146041453602996690399057109276574072513790490813086070356658015088984869420196171380081237798996866741785604080633954464548838661040266924486479668422290667711005159184601484772938138672968052826466085020281295128440639331131230844469203708509898333135244202885833372269760870155395472803668440665126056664609392805657753254181850484438638541557206652045712320146065956985974290689576066229479350018531131278409897902003179201855628493842347844913187768780784608994720764464094846054932426573634293584280656729689042543411515479731975497017683897904702551488879419144601994724191313386671438101741384780744460969797402822691500493820056599308449196551262409719844142965209188178531276275472273296663599275078227986282828883484509109675108424730491825193229214809528543203438030591051891347640011633809519607778082233883383757961166392553153987928620529034516961782209907765824832998471970152925763747776890333822004294039654507399389648497296346851261387016826432502899463551984643019039509980587477579891887493622591013302648554067326115979263521441069183697935094845271540830399310425541682438849225696746792724829540475344267466060935159302878219012548447556626182750351058991004959766242319976357397189577221429805946639534952972856966339490540315586591773746889724725497995352331391714810917687004789449601927646755560103231750713859899077298299496858015443651591002062768889100031065055891441103689650851791972557844739862439259838850036857001642980101332399897677219145052152666676796812886073750440634284606288123880040829065307000546254098732083624734191855964260925481739757692454274770222472173677131744153911882672410237750244389672026361458261365658374862265148097335661845663722801490173554672486539865672068752941668979272324055415900382485009460053226203696734524930807879071383459881817296100459119798689148688386844802934053833125312237299840727623264393654851375934600357107788766935151605563365354407527260052330895443880162132594303535737967995929129759325416815962549491816941082735302470624137931176759415333777350485389036200291999832949503330137985620162870101311121211762391314551230995696199810450728660604857729493198820844160732941295111157920265016311256576091186695542776126739517490118279052269844201196215306100289797098200682249907633916591071196746104284348265571415910916044836951848286353286802029500442100202128087901990967342164263337367635105899827644073385314715462754676543225371948399134979004488781617932095648103971034764223824284330281643652892602795364867326073757955273665962988237153743917459406791527979149538242905868683935621638982643708596730900617130093893144486993106664021874081206343691201178945308310559470743592380305153020514065593730809977307235235154847806567046966414671244001928074204650156332048364336755128848753061309384695294870477541603214161126194737353488890893904502084780867663281388080782490095605351340937925662735478414197248804294410487721191070444673137070496270678339985427080034715472109273423594179309664261725660222026437634134295928036210628052769936081844095309788798562325800323319156002206298338016555042602467877791951863710361218652988186595559763064918013334773483274202788910551604483704867617733093473712354971039465083977907203378983907482939563964267855553629738221330134496206879851659586527397354567761560015446572225132396710896368973243194995079135119745397957204679867830245220593700492978879501610966031716484005614537390906898696553686122048318971081001889717939909044231369400977900752294311416666402933888329602412412138046103855634058634377882775101963390830695462439671146035203755260503347794810902526026122372537823102764366578299303492203581427461406863957133517272443467339335711029930855801526074928269673294505535323443925169664367323226242371323757513232756773550035831281674148317275981154930305013389268889683382974693828464300589847270521734904079015459330405978090722742700401811381862618270849738878454003720106876486315614938472455405444459015154771067652409033519990235891509900114760011928435010172657425288502330353505194501616985952475641645426562469628331279134926007336123787171726803002558214225587953171375396632199832936412943293508051589829827368020490705925019360326449456456893827269237949797388531210291187486904520454765245401710610805332677669817391614260876260446228767841279778846516634451590324550316712245159155192052898415220042698111108353222088058384483467246547620121177843332387813485468423013119170264046020286394786283203271531813543722409640613576490547143262943381962317848664879251998731338848911271644680612947611732981654794486813233412782395297449361969666946904859119461563846143602516000064000288295472135683315046596272450313843214608596220459768397346737806678757188056581222480834646072567497829071457473294961884059802150563215714570297775228501288621210437721236795639154034845619797113433307631431454362124064096447081158954766001929317874652391327830245837895923345650913530533748370028081932019656774152716836707175788638608879184600988313435699540548047832839733181457548345313754788931711154546555786511022745816080033215474618945157545005738703954969165306047324195654586749553312708227879641054349304859852954505817530308561952227169566766782687419675814594250299877670779278601507579102623375144604241366615893897127654257414016228198306265522118255151886439118435948973116086207164159136536167979000272134089770372135295214343920248554264676635511304243407252621638347505730230180002517698754682641017308043405726772551480536900073414158626027138375580569510839223872195104383799079979528013066032779890833410120698967448761669168680492738158934768262071923887296539041855351787349311189555224123867505015383520761428972764234309504212243928745372953890915754239475582830403655902334185074983822527025971883266331346526626465354711210428043376940932802100075724629895795201375916651702646750069057217003107552100228543463117926549363707568940217951747234512482029717323240753408161815388200942131329576454256566492149449061745675511122955005350356961906878290735261426291421451542014427312629419944032944613140633850762583566937080291509818727260492646599582508848472181967478593200576442179023497870592342525576083721558621329417011618847226287930089219139153044501118545621822815722929653838827413829349890276404786703544768345800834444701275158346124503891607447413633352119914509598877175689406486187666218160225587361246125971261256583772630863111869026623134626826840135382629235435914071667928737595164350883167234257446174090373781533078720067608777054595350706315791456769822203702047232299772312194648252038600158467149797347840469691111524625294664121255792041067126520643025464682071948903763043514834668780897528758340041314068899165436938023947522364608827521091810089406183156305358059951010861315381504025659328440217470832522869715145990075223151921089335349656480672496105374576267983142109164120860907720429382904680203575594068478143710073209325569668906031796694916935692794002312503275852898604713146629013948635381069358919451996468969462139190858737592843343701769092437265596332429488744827815732679286382276101795903971002436297062194867206374042914098046184388529617965888261659874455343337549305326053707333736251980957163937773417861579174891523756914129276512597203101319946539832945078028134788755233112622767457947500961015137019016608339519096543239453671207692457213342348801426660478471558496649621115421706860908235102522417715015491271301715459532795872372407475786207426813869681966089784131659961421645877922647724306843224091890010111451141288273034512452682627015360046798608682804889942021335747432810782524027934764295707750910579305643064525124358412980945098116193009631194085551813986985995812197393019165216960123552658710005385568603614062446850985408829018124287059815910093314290865363874879207991347626456866939351647567667054461870946446508011054059771116185467474091537471819649116404862563496150939520254076112343913324811395842875426682703654875246546979667549655957715517480927083876767945911563586919632536528542758797256602218161481261247583732699862675616855945845515949374565077525330653375662026737672814629155401460535853473719878034366008457438220493185980931431793029568067256314906591329575654519114252595208533126683671985092051661289204724509260533664974335151942675427545170273093185112021800273754193851108125860528519982765019403402423615288717265590252183693502478783301254925080722538524638550465878296848814451298064585799585260061600005030417872548027383311993667698636209812139421466478137564306913569218476258082203130983206177914061861183767680215635394928128661359893114542431203433562119100361714961476025060426074164370255168907900626367164842502064417853201447202770169893419748283329987198009416258260304876022102924973638806420504184501079461363677186877016478412093999716161779554166780987036573444755877859209757550219175460403744001357171811700663099556203334500345842707666746129715973838292614034291318316107845508918361676394696717463067181915392416035336235484046167251280697219647952705662121805356203555820893694556491897834624273936576189912111276464819908469038345825941992620647607039792367706358562751667166733479847728401302945298641272567474946721728763090248940339493835704021720292064470808405904904896833410558739110501070083684197020738108285513316248279397587231927696784743312765541605023114579902486277100576625021030752253301382320161007032927701046794037373443122636409786999336844282938267237055461826498216287421042664086302746328213776200096128584699781998003623840709006499331161192483978747262847760434845258462831854881702496577117965864502524622939322094868206458026824680090728528814687302758383251531569844513813017429555469617554477261456577952172568155354070961463656117489443399384577150903046645703877236096214747063636049601715797788261156802820899381664724665082437635306311394640486579744288000423069590032207727444662432021355261802014858906498725529765742694828025280770367425340497635055722141924364175766417034849165989182242875842422239969534940625614749725610557731403889199513523487262603048570861896438532892797147806015210307298215787434925395754672644917378114379877831675319531530527427194085956285582736267977007023877256345162958337863153096458452191787946549359444694941895304903833859489373779565951116075746939796098232943556441745112136515237917870549944872778535271578280922131457701138239648946301209956727212622085508033796012883012787871246623695241853840606224917125222112688996756532331073842802417789066023171289076271486312994771259225161816508585654118103411429085452418150200139820573903603657433605746956629188872196091353384564886245020341845671934299128916465904586147645256965760146880697661171459033201267957372067269538758618809151203746057974284042838363240334968331142853331580531697023547560730019829812676719461376230915768231809927047669160837318822033462278695130079482847181254782392293584942151374632087701684591794184350820685812873268302997198920775242917108834870188271776465368184488331780728447270696379082171705948364563844049565497869113721378129189522006452499284966899451662355130268757911558660447629144591532219628761147121982337144135545964853631479751376079626024784811919995938198284586332600194409418266460308253286688720304379654446627792483066192931422533243978062942285918522549521899583401602142706688277060334293093919029113206577838303302898323569071043983255033786434007065952281128244043302319823959549395871615769292029441935723574906527216869821946332945844174716288567508347714806517197116010900821640538633962369557206703218091407015025823762984821115290094408219181635071419261096451759278396757346791560286588399889979786635017230610646730030212531754497785144302757325001655751666840184330397374654301994760704085527970902410655095710999164708956722534365066419257988040403462105635161610101285712042003208678488895539455025631368682323528511692288024088463848947013311422691718450589122343165067030345689518918017660483956122004376468774448959730020832138330721080142884509569976761245455920851760714741397920676841805176696278660539361726351722122158290199936534025722900941622861574549609553617191402373060443978979830636628772232094737495247595332116257994477510203885907987987798753138534847685209788646200988814799925214093982594945194090897271751717879444946836465096062383252546645767717640540197410753443197900113385330629538116360678327977006445433030126618675988983336991302967127735754937775777518787779372372833801123159016269914897330627398615530820371028605816168484413781147128013073305970203116289298110325250572842288128730876833483304767775332838929452453763683114107390252645606362861915259723545564005562078675334470191627183472465474132910132259088491371193128951630230866286090423388283743742380904721145089289511452327288052702820230306928014990822528596178603129469238942761425088919481511166678602853298004267873802725719286109669602516984637089974820366282933706341314144320548176589829013252381294108758667443607741069502921003623353277666636060267216840128460035116289798478605747356366190944134861965912688850816205291712050337744888057332743495334839405277168840700887506571610634573391452456791867872915594758801718545631273459361400831607146431954913202755745332346028136276073510544322428987490107509799675920241131982178550397251590266422017405875875490865333421277397703514408517603654338548621273451142307635371555930782745171162709150798302442673044705201930407748768838986527536839879889113021805601591237761173059052402851373947377418324085640668995406482729947233600961662358457236692551572568377282590634045716573344747795712193923091443853101367833189653352776824573443876132972628942663148143768959207403079214794002183965005875255103409836124433762475313482628365536104101070686621890507415330056098192069470075810403536520980342293729181529484976049551855482313050873709269723396580317514354006045050799781804783136582609006735539537751791346002619201230751329155930510006628175078942106355297333844849634767877932658498757575561145761431498423957946659209366338011331022589543352299919548509959063019657739032402575568275000079428513861311279055002079159490682128416518138382167793636950805627212655266541017339275102915251699868750066918047352143981113851117609274128804929415677261616509225829439950278330127283814122064013209071007097706475172088072729905227984201147693662296802736462109308127019518059029480517458575211055999541331457824240019613053636594563762724934302654805204427648175690913910834532478849108589669955525247856214442661134260855819223144082410583442552157975857956499325717520203598427998444369255339002073362327158696966763444347552876280150797076283817511628089603304563955121564548401224088076047983724198416478428542907406149839617288990777379223161432901376289538624322514287210144272271077953727713665339602955265862323011500276083872864439858443234616541847493279431741583472058234560249698065855888355727796751278785517367677845371718723041851788189449540402502157477093623428844982960141981124345067542107894396975052065679812693312527048201052642547981373915613800235018423194589811404498179819095138328388468185860228860451627518103692349606377374836213352198052487257098021906233892969120036652805741740685140450100063577113725585556205934574449620707529119535781647156441412501935860513631620344332251204495386415874823677596985430816719401481875178980999472014615468537339368107928515459998679505522945640022454076353409892173228022826767530519365168900398631176582353571826493062612747316184379794499949645909531457269196612627455732004570039152653327326533266391529301009258117438664810393268304691904811190747425473957874784594889502518243960311344159322703339331250288061717353208459748334408162048698745328361323351350363556654142944930830257500980791572853209737667358369715057181791042678889372443264800228006440107522208554064183032993929556200991050144047503163449329020878683456075416411006770003909189757330657062962678407955022595137514662171213237095957034772552686949963441980276336507421859562571031053241470509339801003570041688223573669464689787093695290964194072704989803295017003005825784134965861295774242918633653599990602527444375007954569218974369951797063565321448205281398559621885572722332867629778548919027894201265298708868537202839358544694079697859977745130619389005696485317915648327525918913289637538134695859710569560572488110144947718874420103023196877073194383201605244509253393397088143301972035003138967138253680298002548725505321142893285376643459404374612878951499612481820868921420625638499232835746601696414864609317375722399396594078277186195371974054323440551812342197069021857510420809187105029650870353226936611294629460986507799923594496532483245261382408851172805738027220462928040744223063916254625363702238550392088046825258810341092123755314974286722219888843641938055944140791842874958389439195571608475571432400372994978082489582917138071086343106910632445232296560711932540346482709801326091291935111636632073192917929968044338199248510208210462104553740487521096050224597858754832647898965871809898465355931522433942492956097632158584190713349171403513483130193715637905162461154542286948241696667617737016460914314441053435881005261577344083043065390514643136068830440839321809726553181594158126528634963692471379575017047273333015668780452044586254690110884867501887092699299292791588411456200333652037007642264180305921738324471128812431297733026456081722712891842496154763163106032861084670866732510427303787635085092303224735235038064397500898249405461879896211029058240725296411065895993523667712641995161807564617980486066325511445691190719429613512112632307387398648787784546826511993662584657988286301091662302624990209590990223441894728504793267050185144772507749683800108970025524997242364174403956472976212978688303440073565473771877405609915038938002705424867063342948209467738104331838460683541157539648130760762531049322580518825489252173326418879504846175968327161980973972575028972064489439690598045278359746194452269831821423865899055226845224925664316374108899083657044442661197452219795431817782202007074975364262124428786556533132975089584954800030381495941185837251208553628844342487452733756178294557048917281789918030019382558609596071910361270260103931787643898949720989200126374624711294950943977511585353932269680684537340429865447703372064083023306711574272935811223771209185728073495183032856778070130705575501073074546442038871640658014317152653764342246207536988151383650908752022931608983216010549650151852552878861068611272538808409532843765899748870037350863428185032369331406154614371677159131247924572854611277932757264035761994419867689348615907253753584219630919929444023101038713656887309057531762444347480196053699926706988501947451976748602792323723797981541910161943767879235896484124111544753673932629681539940823904459865564274820070785473412191648592204014688278416263433714866029923076388902482657615542248677052720791594347208225845721822152226315039185981086958251708369685979624161529361209701770561197132826061884315315526143520107646978705833174074533462899486373586895672186920105490111803257372759979202644467576098951178401320448274722940114021563746121111565046388067218088726694217392074380366878192373796765691197350076438411118004289497760761460086085805057220656884015956273725690369862891679180708382283903899638753286238424440078586436213332576869445989814763738854428034535464552337248637332766216877960032465139397498039310710710012034729453402936916271731692226908062813184309747503272047992684354666185878162956019460754739857647635037712996245097696341722578036812802393829180847991702788714880605973937310197857670968020250663010360126738437079007239994436953937564281179898456935375729777083153845864649181847698487614380016392309850614618095806958973582895896851335694777446525784820902636976666025472625045585008405659030452455077506943995288699396213598692767998411658389365206399428103191485593284223019678363437615534889762312964041800629464218786811812637428259825968239115355405682360774880657375083574463102606200476155955334927929765375202740353526315628797583050091246128717425677946691314389789775892016561007496660571728686163109114690003424604575126902464219914632970577665419802164918226081783697715360353281861347898661894268740175782072060820194514090624631087271613873998674033783477637239092489577436438628585714355503776644159519676815169010355699764286143789640072607826052511370994555428137538984746510049602810478309691961218986229611521968970780604314507687948529901554202682565568336780523998177301830714928216695649679181662428486767251284110538221631497001820304094245475277287845120896233035666972593278038958315125006785294280499154389963777387517735254315800874863589262626537541136986785917933232044740530900645770968286162229887774145077542724044434264387209661490152348223404936043141341360261186689065014781047748434063791034167842583242514062271082744418542199173850504057723046429036809915704664671165519158454655729319685102072911936478616900966699963186141299998276284005526792246452895781177125540333035669590845281850209484527321857466019055491286515293904589125898844188462786904394467149248934969147498681041273064813326223630911448658818485000269579210815460179238357421551180896960297276019634747367038628444662597204714214374411737117492233857543320093049350806646442640623609742575960460725891001127086730127449575422864982483548202862205883927378749477406550532749353973823020511227009934493935094127468549659038727405352076329870051520041291935024273621211110361915385023802802024501787862264458706847994280521469691720184262801075478118045661992329835586749917850812712970637268403410537944061582073761756126065731265357920805624275796762556083852294224583875684219585681947952170332387814577669918681373161988177436807041380600522018595798529509242296477178590897688076288327110765895450026210796744419327452407658371413128211220174701572051176208283703529307962155692633882468319588535037562532534011805119239337320919762685817183855841691792139204400999989103602378322502310467236714528617698694798122527034349740003440683611870040146522576264683782358961135337654190126653771512583611635570248455104608565597130451304685536041536168954832347979906631378517570821808605592083058428470862420033202283743085636792190628162085139771220768229333744776604914983206097512306740237777482671974492246231543526771388716181305040049743930772286228877325837396829146897451853628386530452149024335990602692276750681646281746576209884048817349238396020653715011832116002963938959024753229613014410068033667135757179203155345877942423505539583600748900663621708143943236658991184210797324676403760335004823976108348611443544798754322145690479964700266810830714163638446780937286479687655381911090890341938943548351042431915976566131643833893343402391113833217790352762758745949153576439859959353679083071294187060123487666102964243797847539423671977047694273962717782511376402551165995453221219286191732926668678049841765475557131478305564076850059617544879576481287411658528572950323314657909749971087789736289276138845041549000965008412733522439949325742580678390199562106538761128754960534958687695259742488639488642059898146134988983296239650484538634826716202066277674304626806265881114560603664127538567868375887751854761907749744708854347391257312917011878097194652697708589605314140039260045636885417854198298699519073846015180665876384668316375703329272872924178437319502674699214960335983129627871603347219290220602693460739464942036166793156964898049036104392053050112298681585499247346929574842140838762387496257359105319737253863138846896466809329022214634113131382319745288609183500640953787873692172998450354686622359861913707652663388875834653386192483269139543845270324345197330826020908172228442710586441693422339236866896190192622559448075328158882401416458327346557809240977275817155225739064082441553886528833921568278320114093672437416239414020595465009959465490124848935450854485514078913085831524668717893735510817749875044581471674915448763141770150124511306557273376945805403746660499850006304450973105756945728570522076492695668374697935295988061422705569320237282474219665660832361137679372783358857290778589252532432837748757450547328784079670519325778153898350929197838197758202628533582013516752533626609059401591456261107511803645376563666705102864902113411910153305546956467354939251592537073616644073820892305666143933732801736091080294948516932630385125305127289719467432733377945855224614025455850591311399110631962996162944827188829444967091847669777762451704191892198896134140990938017148515386739815179999432542233532688104295584288300433078620490818114505780113112359434275877511084027978422536940597060507285613601929728340178406255103617849998209038919726107898963242076483007185087130465863180944585907804111428821136508465454927687869439329105859870225461218991239013310298398899140480396013130440895370746068217104518093671412243018473189729624077559662041409862213305359750427810220510533145300175146483738992004189545848611943264002689071340556272133399911834747258886020714854472148369222464671019694549096643014365595002010208292150470897660902135974184429533147142944655849055704421083527240883158282531488690919987884828283880331271960173646281938453417973640480055292634382913179800926425126927480026001431069539680992679748181863407088342441219434049697983251872142922280761148316034453436766533448004615327420395488192469636867812343160003435630424699913718486321279714385292901458083747443188486026093527149307929870377940175631159836254785519579100324153024365460496410910898946260324469731169504489701443617305327081038745680875232153701888983706637383741382129725376944706600237427630899581443315761518869562807887354257678330324680793830652320307622075882576126057350804557663299559687780672809864680894395266977589604246494521898152712399364612902203177257167982318298510953735066334612752347256699522547679079277084393050172050973889808805259936226759985845588699842901347794996500907231970871029051619148751946486128153662021755045736226002210769848305708478348721191067942919079775082618101667272707036203893810138728765302670997534376920601360432699352795653839718586431123853117691641516230794533315174553466053676701688083232317334349078185040127802652681429254710201309494458951015064390722721330265224415085722602305146693537468792172560283065335715638010832031214063220835140376636428326635152208723483229755674752732219184434554077545440615844258671154031841687156749617905986703182890335869900609772102896015097143685761844935923512534367255357383995661550961727663115953740243520946029876488933891903878129690514462550224925694556171211095601731421569247264922361643379757302508117877753868610953005946747557620524574089301041005564045385416720877863088010884782527514891776677160024829622314527827890954632487375339144674323029499707559997849764570387707792203986798848097307562490566855783000288115071075302294306650024724853262583449392310326229056432559774445159196262773194036390337418951547644796995307332800838820359940846585792328089208016078074884239368056973508458653692207048923352663150993185517238849120741222366749202738359898553641926835960371512222811382316564707994870200541265724371984483459029528844629461821370051015865315874191450607025649836989121214341873700514568463720508089270499545466603466372387354098334751984369031700948033190815171371130930040029357673912187865436084346116507917802691938944735553680839625550085624190295701487688421322512801431714776520373246417477462313155768931214610998877864450818371730100984769632395368322192003506333710518217554287670753609299900384164996948452204245238920171764483773938726324107224571020048468574222651784796109126564491015816316148644132142006012012145214880387535953322651866875318336510138489046716878847826933809139926728857538801401696476111853823779484909718874571793416692131805475715694810030548974935467693549234049334244829908204902215461267967117467703848399126559209284225035679104399755795622218101125220281949413723373351526569056676105980687016883848339179317507565211535922635759330022159263323874661148412782163564819471343248286964626909700182252447627051949510720176033222172665550060631068641063090617600892904478205425644444256521291129588776687054772073889710163224327250107819424148796275621973075302432624083064113554781264200972726122830354175513703940568220605759459504517007868321058324722810805122431396432289672829735958212183762174782440808855217745363867174843702159152323698153464770727566448471774163186713841844084543808720143044407139900224113361934576380767148002151895868738814141093693012011023251013107066510336199308817310472810290180541466850081193548096950655102924331017575915818810962491248460495993099700913270578122995325890338821350116060261662459459212481580614474215608002633892235866327228762777625465963273123019505697650659182912360956344049613562377383536585598466922500538204685156487131186336784409533150770258037670842347216946838953865153170347255473243536855231680805945009151208826219272251108063035064921499950607773477051441226314912612368640945215298020805265612389746149786634936940710075565214990595738431279363571452563652607148468146901781067311514245062003326999105804589171710964650013087685702344873294235065144367386273298576183829709085080457928722353941252135654607236607020552136338996476430493170029008032317509739530351301311738305247873560896876394096971044705475579015673359486237275897506133718503951817347345878460833719451981929869696485867230716545662976175015011797213205765959426620557163016977981543120505285856754019380538808496753849389292912398904037780948233417124593207027879770136440020597389271789658798968989116401844109047318047489417198329346595106257930747650010030226024182749734762226576259892171384268675724036486305940482995393432044766444096513737487112462367226305667396865781855485261710252342461724453574994582309328443908527091304939031632845653205591384037909010873169722681363103106780950372767935462602334096107748087343764197180593889773426184065723163533409698498188869455248387140566019571497574591140767795714990367323735630303409914892447428088631535950005589938971706002792644632365034323607251112206565973124352720115157046149161390592080230713274248841966007272288409120571516578016848344988053054538356509997026857601542416260016794283355689497989825347060900200578987763870007893671530359003593930533080077751278073580859824964399517425166528341777708722808360101687223886388897036970912425053642893206031604902525172247087288184804831093009849058069748886599937844798217725474415437548886928267620351704617448560799993210648015844516694616417440159942647839401626513075595987785203264095836839624330221405932396839774434638632924655258365527343775648886806670615198977125738807182807977498624708894429603806925576522670988182667844702887226395272518187599824979960080135769630002104475636857884252417708021750272369062069246088844431513621056636014259986628698578959067503668011460447891587951331870117338833533022062788184094654902272368595429291290539804396350594266098808959113181136369572739713627533837777418434300456189001076621367647460277165739631509080433945067419387834888144597254565625931188059148123650811241021346167611035536068297397135545562135531400811373290026189975567450445398651996716473237269247819433890696505454505608764626485091046914576778015429607269929240514155342435345440376136813081443034602217183658039973235471962867519230565669260633818639789372129168380641947275688195742490397578535158879585361313464545294575401575425935657071627959358415326622050400750422103558715776585062727441509193661820357151857901000101053045026946555574248135972763866700983482492213197687904585008762263200530862472120741611014133275630023961169836100156750757919779374734260831502155650789947355841861907218797405745074354925421639301955581909127115628569463078498394857846427320756138863861869299845217697712055050981952644881800631699366246749307804293304006030032950724844061755976607875547597056807008491009672005778553973527403351364868323202975189916303727426651976056935647896867128026304246595697004072255731013607716958592148507474293480036701854290487503902536239384098224345576702877739326495125667085690454809928937089389335737913828470541733786138635382602541006452702403722519540723142681350027585094422851951588142048380402751303452003272953766429688934081931007694632795957899209557733090975207456656383990314347772359470546314232408643434010192340905703017625409632221681425939831703917046241646821265810290605340189176386423637076885987587566866511182030883241095609971298356843627385878373542208265728412958230250676861328595818004016226588467959730393520580310062573763959273532294312685219180205238681488519134601101524868325813065561976269583154523548629753874478562608723052932579511690078409845230583948675139778727091837058125896416653031538992369259512511597423151983256932482571052565376995542779875394938690158487198690689212541565241435546428160673784742702184237695649036319548379522827745538885079287316135699136387022702336714979602740147101956401521524955790526737925938704126985489215288274775421779800682607555809108713387743678169776545673707388386768949009009504575019335776171843814099658403074006842495961814460651556425705333377926357392822954234582758817912255251670639239457825954913164218097668607711035629810803243184885574522553134077779436510069549362466982602567024545715327339476179224888004266886074058843986687672991138762545024432350145191661315547776399811894888048117996338957580466991480959041789017526316936595854060591476076245637920946405316645599845016757288510533514415943821068252727628860207080380106499937450022095699627394201971438126906372404208395268453035986329639405946443507297758304811111210151510285899891485808505445532936263136781294804042740128564253231937636892547175703841940692356973607819944187904048334058632630762076793478644394942795216162942512777207547113806357182473397845598301873361620462846569128040181672153605418581545973268412232145441443094410051700314499148693999613405537214909780303468457695527994252281972789788293867811041698081025401753781887353155584242277949478802227080211199893706439808540100982519182118554984000551676606272412477975506523276832954163774675858940803471574381072480806214862067451727551326656505590189848792382284084833267261371673168889111885602033178982955358668063465554002101968785619107538869623608069653429874772235714349232620711159349516368242663790880239929756619969955563017993621537991599691807343280082269194826785306108011811561824191394245480288877918506641740143078515640697389108788655706646457378453396317086479101591970599206704366876544629475616844749707356607464560158157478880011730845443927826326012189051649748174723594024787982422804479149096968351167042861433573008734132357895232299394123126827197521495320664904360284403183868138952972803767411905123786694258134626400910355783679430490828966077750715282675726063179527054551958074479457924611900525304873423466635342565887241746558339037320049568235908559066942582104483818010890634203223832843187956129858792643563793902104793758975978948571728402896552113794379723059498600086643151950527838098359619003135051037013476459618402317806532664133395090000787493283630376601208907814204253978674011611533590681160870916968718426443709732132494240877774386358435369523603857363328921554704591626640042911461879874383541038785393023043283530774345049307131748468091164584017102142549181383825962546934176894730753306143424068849367942721459088079360412017334742270346825687339816895764805196539536313275344004114110280528925822138772610988438989769237233219356130731414207737759265155027468476827413187065623604404419365438541018974257623761281531962644091503468006075750694855252534958406913131088297644561240882077184607086900034928751140617881311388847131711662249684764026710874495376210662037975233303956134967327653225974032794482125748244846332852270316765696713820992399066238607882176056694078639389538183632394953349663568435126061388993394474221704354032274780199974100614214020897627525037231447746011471332435975773904928308251523649273696379853510773335740207048816353660824372329599606761912463863105703753599890452637769814612996052715637017144986854247735587391545201643898962112490882129589910022925253380638588135715354078772425358380249065537632607091498850093889801031039372447953781303388032537546938954225860504293912813527528874547868023157535719478717061863710642961034542203252131208638844964536284550686291964054951353902014273950339347265169194550533784062604524826737016674671950236637377109739041186454012151165105670733521567581597651827178861846603908590861990422134405018863060936643801875183879020476199911280403485427975513131952481740769052909502577867124141094480819862131331336212248231452968960560486688684708724457098671832880351569917656841374478091619044264567047496283594468425589628804393261951757415255022535173007286529561151146860893181158881418294228230110164719900011646198705516069212377334880474314696893593699302785990378472407191120251474305558798872332230167721565831271134169831957063937449268911913902590718906987513736867828157751737917382186211963728685209931084728600856750639002390893779925817804093803272748965318680872154956919965584073209543850610706014134617490859205863603509340980102444510235019911285324023567689831788616958284724157236043262593366919539372280143016822657613843040351782256840929674897980879059002599175540101520365807256060158623088902465400382520120079966106927697319440729369316388056087017553065980455185138195689270001508707093237949387799331205595679328940986523463623630299647086478585032654636476719200924015869522217205021407128007956976505375088227406969171102910311222391064189949228910868803887092670467466810895943743010224746373531539992860929028578653037044232434485480234520975182053099645732509082967815908390085357455646487910104074718563696698143091199117438726528309335265211593047328106827145067243769508614739519340150280433130206295247990800157063678480932178026668405758592487840948143085373813346649099621130162906017357014270189140282693820411392895263732595696498591303025613830381910700419090212903387277174502788719943863705826115862237070708639576057434424394492110685348378791624179901063346822723961690227068771961997522323993338951344510010364325732702267952508627378732616010288179041217905369457951237102952695493788232294226261360490756624839923262813814353773978002853609352574634934156199966441617739988116368033348665016185853365839769739499472063681633802127833837411178681372774079116452668339670380240538906126230315873250483131438344618078713276199617800092483977446940795948001029324174701382197827358072669877924268932995929649588868924486249158597667697053392907377444684719587719850368661979832157401829542421145649612092813216405669044628206967252929552130202336770654816670682702655303057620798800685819019892936832724208288518735748654704772930006503237089904282646860437990863528655318055014548281025860264947902302611758745131321260188736606801165931930824705631698862021032596374207029626158823056451927269175857731735720555555748994049280709202908688324180215195836741464312874665806741510544686006477535472359571219289370140034014003248405497044783958659763247604463920046477696594149946855001632897350719389048233895743880835175758108963931462322622317813034703110694971690914344609903726519130686075308039292695260812715604566264264839017763613233062885797012373778980330804224534501386445588669804456167770971850433981574600341210512568471907078044275706922115510303067692316670083810371653082956842355617204640414574421399058406961226297235989159804779400155084637180639823145817620455288414478755124372612346702423212441648554863602670174032538113430623657570311178605042888947774704659442553962096341673884411452836029524970676429256880159994902385582260506695313106529413008128651443703951630535906342390906730142338357137316090952482704766096886616190298812776127647141777020689116551342438613436246715668495098232578653823905920448310832077336061051629802892326446107441538200489163314411100476258529167953908163120308888160964818144676233357833391226435480442131751850507514278036307647736298691098951730619394798149943507073754112959214323798969816128352944725733478976879114816842730378357491212944454841471512802119692620258967776621167436029953541963463380685021079445791333722410621199469656263057805749178361777612153152860086501872853869554385158250011916375559099258202867796516105894147753426822811356851204250262571043577815906240429121552022968629020661468022438284845977220386160265010215459425930533345026473948821617019000017479592002905824260979934800433076528683909898164752125766784950769279317964449333548557365288606982165625083708958254082033996046890762217534015016168212390808872399237978211143661861541899050150510189987528919486018558606775483779844771722989959497033024005447500333489588922614126268930036439350946964878067914594237184034128626502984853301902840547392815242606573912411961579765933270695561387416353738145816177900323704113811889931333770107895802645715921040111224774411292880235572865539275418108852942117164521145299583547870237572654011126198320973699425488430893946705085714117011851389935855139894530464058047464586046243363977894999385089721711688679702857881443537422200833651390159715119491948481011761943768715528838172963580156300302272465906332248732149275307438170743061392748140565689180832612658717747361162895210674567932291475507710431750575550474092318696593403831349620709496246121273510686123065497602384586824716914948861536946177927819433746316630865677953659106254780650777715499443981932040647288186217297193778747183735449884773146550454492268143070630665143851969481511828495501323013780666818531740964515244463715779448263938571041600362785895417457931452754752197649635882127775978236001472661875000320212440025527280426712034232418063216011664462926583082260857790041374521359127530389342846634303860103780251723228955355867464305245385247749445945256403382119282542504323758236485068701749521049049080386026469995252576178325376913881489983494877265468688244532575080623522231004883446627729405992341232333798505160506450754630491682291203610178190010011207392303102128422372842841442952846171435229703686219565710429993074366131580543584438339370381244297096005625065556087511073243119145296972802553899177271744079549110167722963686813449229500108372724848088296418171614902008898021391895568234871466809814543404068250619491513676387825078283695748677316867488505168257570065367661682121772172554918227238379276888640791561024146227870608748502345487859279817784553686941541427573549944512968995147725351301625497139924760167561936144679904497204074979715615771310313544848112198218058281750993003250285537122183251646965209246309763992570433584555952577748304551751415478213250402128924958815308415472517272280289647072652187942630735842019180449595570222989388431713086710535326045563222959157974764301993358690202015220689891301193460123386329259185906088077871325515531428513346369034152933534726295538655358372119400369997794079339352541911464320663392645657998650549493649125398019500094576814677219894543510020431303258415777096042698926838734298782728558793554390120849566121446785530734350243894628393629139441039523030357366329309669822656279392378315838169657137817364125056343343666122628555445784944416588718600730219545906648699629725280062223139592380909401641559152897151003568633161630828581198390119989555762252587301643531604433847964253578892535362986676981604143057543917822338982838137985058096173160158037298740212962538813131265662591028619521911147633570466920228593443758748380309463606525792569031437758581094370648164051252359299549055649683066078060653653075492758362593716306528273387512868371224259011856500303444634055850849843030078394755028097143599030852170888006749534347974924565769310881525976168615329952314587419150852383823325273806196918583105165398826431849395326619227114322587245053925028398564869167908099379451645526260376103313057570221499800464548633186238616580911911590206801855108260066426551422455774816438881310973057340779755387841021084059841336136619031162840992971604071679361787156745909800265148586968219009595801845721666451248807378044641363155144517788481113960549600314818201758070285406014756187327223023569914129395442452318921294491352482634379863925456382646108190864128822588195197409542745606457307041022406385894841978045946553298788582002108802411330665619454486157383119531264645561448334856402686010210349757576514366488591014037042301820954450410438299756628014162177090922006877510816839969103826194662326766065554607729288201676523891068306391152073261571517554964421832216138268874232227686037060669563276608323711778940776469697429899213925051283355748513698752848991088272185670745546430186148743897751291211176719525719074746333855525154421779731386784147054496975232022993538411964725146861767460676550313210695110403975514396770717703566219615340845799332376168187270224764653921985693537037423825423900416175421347028681297383482876492920621331012447707851783995908154800232243942003380734298221792615401068776081010768273236240729847366153904728735525803725424461286093692350571601234223025633584470206119159322633674871740700242239412596119587054649903923697216082387348046469974351877210407221283160082739582168097592818872374471324934131608902550919809839597343374669523715348854174729822119921487572461864946394444946086227817485810676017069304446135766783710250887720568163790313176040846062819996929990365840249973415713262606378759865959127528627079511850909493059102427971243051900205901192772039906917924245572057830406462356792403134316022719038532305267843892098912105215403287390324754045078504116829377333868079429047544841356790215355276893536030632915336879576391732145967010122966739532679303555498902530482841794288339719247464904997978251719606042907908873323503689086401793884764301848348388060994723617201823374872921559048122735390576856138301535880114150708818307820834867511135314341580722605143620365202475531089319229705828503501523298774956311123005541968351104760986115414394685272224846891561523949990056618659533539927754291407965360814776777378804765508160515107927951659443136354706768760062595285480302063792847379834191184544219089937262866746910175983384944507542651233558104820159860663195242137039215154820724925468802097931747198409501592360724938444260775250104242020361031858508240638461981785760944665060372480099550283942174463673448582638427357354725805956684036512705578409530090014433049787023609863570792812973435446786609039405502666446767373436146250329599011399351431890228445783600684760184889818070572774020576227473368424758041242344026812185479277851652468947602282515005812524476663215275662385901662795971874110985533799911327710952555711516169735625750607184813325696868489916699187045341012159577306710400438588366001616597852302473707172516148551086604829401117667854144408897122252495723307916716080828805536983235327087143320831820769291392536388551192890557833103572846443252778014875885891260427832353455298508818384314120976784107395791062660597768290730850926220366446244070488668706843111709915498799244626688590707858109813744120443856236583285929332372396726286882557507848960132577878326871528002232145865305025039739196141938617634790116774090688770036148458808243579199033670780461165434137629482388332499932180464952047494437295108555778828848776047254407301924094786894803500538324308299323675775596929101663346603437783519106134891341112020481468242472004938098680263702265316528162488187570020434187768110949707331619414220191821482255733148238559893319560031920630709047527869453722512959452273765802018920750564750365789655190813586364633320022976072922770353619373531255081035642756457603776421411650735840270585897999882283037190710311623672706975502164315378397013839977010562794978467916991641852225762757905942523971771823922394624114539861609558231819948145695407308690244967275053417560046067615917763274784354445024626864734408268374799350183726437575526091654028894721071744708818506736880093077366955071287201837388905893575291938383358369998654379041787945485334601686178330854722659458952269574719833890689823857918047482166485455107184937327453439689880626541342711571264286909165804957738748463882375396162943135000702215394467872505847034901557141920377176961840345613339851524552846659442204343483613923904401497988895227147695217306813098912596307258979066288443974449962132700171210113764949857821995207349218832980700963772065281428545290285905432089933713659486149173974367242664611119619868893680570415535560241220987038903667153551841276805220949527999617157864337560224224160703462964036246835711860476491335288129560765288201352902481397396494946484568179301591777439656073794120226046159318858403260054933475599772587052460602542356328106069053491044268244747284503842885304818070177927791394413293949435684055247888110786248815946487627294681399194003316708334010487869084395638697010185795669594915784402565597777282312079691568120092745165505780909971310278000051154423493220763820497617729176242930010686582347319460816507851858463543192550669860864086624838956523706590703120526976082831387206819381288710761906089147906200899815574005847449369196261442894748946145069092717015426924684177163597219799876919023134929944721752772242349569314208974180440028470272315845603550754593411801849330654632468859153653223561787560469360101531721892260412107617467582156266576313274216147484609935473101685925115087222427793381947120362396821712895259018185975903873890409422919925466862141479030847691611425360407155672101458938889630430376685254760532743438123327680908754780006666706829985003412889364452134447789736776218081075040808833661419295192430456964033569275607430493832904590877487084267373600000175573342327575958184408022415674503504103413641845191232260859354912469620878900602225978323454406175118494697491316323577919496471895855124450972259276079956278162974011892204204666108804596906926311475479428493186767620564255062357116561462601802997513994970919761332805930320732149919400078362665700906057914883670124054221465669272226006323557638673364038786593188552128290473965346719763989332543516379379021352472277149069713524729780860855871900632041580943557590573072390470585462177394226619073454866168648552382696712240141517319551943610868524682571381573934746625982773853584379375617269381690907397981500066376170538715182284422456804972678243095362750440628161172811656038475904431187920913632881199812075559665630713281094199328949039059161171899940230472671213902719823517350291792414721369132607768925252029832690992785979108343020099150913950124779647883242424127028970061804739299420844083467481262913392300078739388610501282033916917577465219873182607775387311574805673392771737384448750083359419065852537449318743970933847821388579768122452231262626492083067660389692513322857557879842084995585246873820341635123598139214733869129719913512005567654543639802597678932302003695540155810342391937769827553728374357768051823978310778197859961296983294432289480224535099831703782386468581317960567938028213322066000479384805962259691777640111199098346723684841760534037204792300186507653095613418199704131679924951844243486692372536575788964437740674807023417569969047810130016192685951872674820234447958549333553035216392257586519317948557275308055077237290011121003391238573768963869663749241185319659630231636951397236399612934861548441485508213935990493543723578867153947909532668626577873433788573702572958729388069537922403928227222438357479313921843529659298347289131126536268634557033654890005642942169185240617910444732806789649584812749245674594110895606980053311891623523873584168436581355994515975519119685348887216998585102669736086324407658817521328959644056657842095669555381903746263553642723326990368021742200667467506233576482872533805916675464770283839731351844273889258933104975941943865300899034180199248867892257954246986591438874795253622001683888401866475930487501326326421914021724765160057016860880178453853380976063818253869476844194434171505630359852603344014292843515204967439311977265097667961673381722537617793696970634611353951876615962011045767158475753735615953248871088843720911085466347567865921453056760320520660840651826630178771627687122827210660063299192961842126846041902804990114989662635121765500324065154975700009718427195046712337392259426922400996906575522852354661601628061863685180302801413805082422912666115551149316832825762828181121464127752146966703052778189939388565274707121125875778489486856699384212910447208105742413165872217608929969177439365941146761726203207448199584101140748684714901108964396246170498062956187784991110451295669605253433876968518376117584928485253411916277010559770721528604256034894196346953344202441280014443846386870995135125603101066683589585331068605065445134951803111701956630735041132249052849558679872259213593304986648547857356394338006617579979230565468662510934754923339957800744083604511522876117653238186339462015509263469786259070073982863972512816123948759509843004437507683979090154995575032912474044170140302077513992577053788791969374436578656096482152244121735983540703990285884975477004299023732784478849431380819913286781269608807492723789521722013210749410445352016672722366173819186096745274820578141316671450759554261244248720302394400043812858337081467449558026258263322374460016166620115533195103380007186004998221604197153478920842565976792705442988984913680489579910385069261941800201304524050763845268341692163154011816126947842571775688034010503445125525618517059420893763872847837022046696672528788533548383170955622206567041349017619725281328588479580715629663730118452487921036945166009590036010034151077271459470069736538209386625888867755065589638092160368237184598115458280893198415000113371889567662630357955772554626142307560923648235524514817272259702283970525444838481974566104868786263505320752957405400199999873368472965084115318749643193642197181039746206780735207610814278524336379607787078878433109528695202240166041921400288231066107502743184110880616744799399928950291089544123657639663943704046190086207249984977893380180297971978729495950357969133268515510579482117051855258984210039022999135742640167004347195233245956408432972114691543117371593200081612948382446241069037546586617801344309472091094459212402023374124740784541434295105437945017649788052095162905802219665774421364567883787397960168407847090935570660130684217271160562687990196235080317936773699003017235014640370225736467352230580072931347684591762458576427519959600454301687287000347692744577058876516536698614096800818755684629854660364491346829747732967293410152950597568101899783219159923454984896320133811150133742755058538583759517508622294378461071912722975599400765279070223292793582732747884006216139510059195035442758397275078464553889319502313937298471574949600899888318331622791775909077941629905333992209833466270383431143904935172941137744500732520355592320569785500678978574035252243675550883440480754633744767859054599112540751531476174683712765454141598018307002960693975942428923213788090584749406814038790618279286148274352163992353527437739533924587104125550179271080943573906797779901038612234042888876373076162183139048962096646672625874327967273769177441811298831422577476667062954270609951189420444218305597650569456164866470228454424632863792945068913505565079837348921208605788717751233520052194853747303348009192387102098796848458741555378990975741311540628198290354757300084922947399131836581158196093559979431779052345274713365804300605708406381678372939488496001853385630222928190876507384837568390764003375341804149108739055792842613401530055827556017996419096700502745374012375502994758016458647312855623319068823889629649110454237799447860643564082717469227245796612608001677333826466826594713112695815171496930348805140004674601328513531530633476523210777941196899795132284481525052354710675051299539490869195479767900221445740900895967559489498987528952788709693988803374758071193185000868614204821425846344265457533551911468475363011572853639352729546064900810416997213202618935400867812303523610875567559263975711855886865471010934409753637752802715549793193855928549746061537525957906805015943568284914420776026531784747543241464509791608541218633250745596218005301448977998198651944935691651503154571970313806446249038404936277450078064407030907673574599143382157918425433185243868617129736696614926535952389245479774920293006748477823538786643970614996687293812953034821702151187632542570964432336591842265779863091694150550189755536942739741625027430618249625538703994205522611843353094022062300173484165268725878658053522657746470950768715675791020271986453975196541599886635084164697911729714236090910660617981326720819325512906234136074574993023130055285475933058610579746772322116115222429402602548369786678714944384604420084209781902646972060857100407899832431592060329266812237240232053881221991297500930350070232800495077758047572299339302206962195539421127041640440244426634839012548008450835565276044647667388844435449780858068566351985098380462414712502328525933543564720305280682227740713806659297754842964887127056210745924457809806761208428833530363497961601716688805513847995540866091163971062476570938060445592977358904246232828291042939840349517681711882836615869912252202707817056761507638470699838819624520268612287871914986570360657679253343827439353896092094587025508050885495450143447829947232366579239609081587577302306897893516462497839128313695131900428780503434277059479441673143882842295010582439612406727802065796276707102415965786869470766989357361858477468934211164676431374670051145598386351783724342064393555018361060381636993043948691410878959507880422691801582818176459747879109574694603910244919797552825802015685176135574366970008034048346948823051427502657541077243692811169153386599071747790814093570194202420508029689135666085406303068525586511715238376375161202548330638164359696341311980150906151605603863327709331407392074416397600193122741291750177236105587664817497160786639692087763108280295861185496033923526210203432980843464504645909377946157215463255331556249007882753871617806163076691950011420238775914680158437713505408208036216824151068746073982743396603922469235215256077277057826073695514520851133756127912631547478609925458889058680152552449923535580628896768884316697430075875174606043882985207335566785378440135434089520635843416806430700671737418028588308963167090638881905475976168726231008121649044082691705855875080828535314748053510062572348982088439434204616265028206239033263543150155235841334393882362121556233323558563995018134978021339476554090603630675864962171415165453674624359782916914403175171097784048772871780935954945723426562324925864049618012333522634128753812331380421349386742341038553665260955155169871604309895906677173584552639831904404405200482455318062867905477525057100639227718561996712447203963681644561638851976064580594406745492428235001499518033610776012069185625549052374412163596295171049194275337392141876029340709128474144295125276048689468351048119255260476956471714535304978569379465721479564736775423347994039279214213973509460545629077662691935885370960391717357284503494349715675420067083479187290180974528485159307227339904910612332271942541596191928516909839827777328291668982811039183058657426941136454589116589754285569277843274334298804705035803037365259192446808644543089597514650955373069042930898858113586811836552295467187261580832374665968411193977941253669873295773907379419403640756464980668643819847762760138438796482924510897875121773078539022611538313303681721772355851241323449315749281141028906282039655087296453036061191764131871783330620882336723718647600267217554470737324579700932484043284082840798937676574953458975404997692659574361412591041155225161816011977663804225206832792620750623553444020184789734502726163143466959962560984516835270887313522614049177635919750739169641485415071102970972326340945519821925104606489576993990427769843555939925324718871024485071891107511509446390129703905730424866465765832353780422823559184028294814645307656939211488908387777489377509982380063232325679189754345144661742228482010207510263209038288009195808163749043221057957675281615094605480300311958291317641311348814087081438439769674417995444526415785729171808763905270018613599832454719139991623501356051005496872117824009640554983299149617814100180943365506389768645160206364872712701224318855389763963336322970722471410578401019119101597695839351264826834363008475273499280433249603907904268186828266037873089918591686868116491455208120131155161150695085898834021478156464247707548062424371693010325290170640383674934091523968125299302613710951063114124450271265624401705937976860115957840392601401681234079683113261809812885478999855918094950470356577271086304792764882416154956512728405768105342348891868709703366375151499771758236378042956348185992881258177343541289360256111838014547386799658859037538068489050682733168243206072886439056033261506150726761499819894774150173633027133567245029563932661585957849794538673457755599214026021395732682420515819361857103575238581003541020014624491478071149303343749499256743827034272054431430959856424811404990905820348936971238531055172643880649082529263747607244308647572154057256815674406641768399109084904138415601242832185976802883977111726606476583146008112163438576480098749850608068349332438530330819884231734000600154668614293760067746001383120969943694859738725698889689851023746285854166079439361021590383026366095361822247822235076306260166478105193598490527250744342802826501251832992728669428340169127217414311446543393369912366613466970109763698316635976307356530575949451471585200750197730586014989495373084706393008827722123416587757332594973210205980169875320009911610764264653004224403809463353343957263073310741026410081821072560088092129631293313799603024837020655575932649024989207091524861705375983651249645902371427655710448815156167459220294715867642799646140306074989851246002118766438115925412002479442952480644520502800720961137343089661578077081180393596942413158569054463640573618501788673509025740497718569399511521004983039303597833210236570408817494382906154084267372584353256277637403321590336888127347158272547801974803461156550137910868940074249382735238171993263629462833742295904502122245396662202901637100526910709148417724597700772198270267264838366161205740248779260082965934415441455360306896355798788214167869271912011637035352665155105730768802379987478628699432994050520244912754012983649290529516020239471406024084839897056433194890876599305778925655242766021932877662578546419254033007444368189524324863400697121025388762925879765119693162507176393279344062723267574704329060024556701437885011737948222630598158772128693624498544926573437707668986638609577774016988884717343351307393505455678871518808601125071922523396616152659110115809572661320455716200747327032591757347939499718791410979781570148986872975077986375087719694355730924410858396731393653475998014933773351994530951284719357683949583923475816116182246998356332797137591776547284850260300073897097200685415305528136601966419792971469847298423588728881141219269136453086473967728099667604103327155915707930849751179315102546087219998615953673280733499104466494440736119858129070564834486026459028558838123238824138056333928463253313010686057290815855682821659283103042914234128448215239202205585596267222372271355167083854689584389233678070405416476869232235998773221859677349668645108828940369021776839233401964170839035629282912068003292925984681978732168872765109334372181368285542799222630205287354799329044577802731399702119374960591866361632399690168293529570723977303232569388629062502599210802947049296492831267690973299381605786058031033944384327248879335231488454187807260919689733259924734821780699137481639328695341090372500965767096665255932248623754467512579333166620870788455161641937823408141010868940954556335757698870872819637793239490011360344083889424289152914657351468564854131173205403152517388193222781522058200438995512227888486885371025137532466036340046828527124069675959093993741608835036043052668741205834888983527061257479538989095679412605147348872071265711272648056340193438345378730954367310548995720678700509512154303202488395196199091084907805812650313614413446295265766201445775443177480679904122623563536189659136217009879228056880711028907547449018892391994469410606858346235245611641699055677117342866313987771751693772365110754910306546777458690947990244059616483983613356595516820930445601004112633328745232475626438721624907553341537178904912034406010583863006770959315097891552519336159443336209469220744552419275454357789688867731641625938333977913879351046780952342226639369856438580089946847794109934628219755368632691705455315583191286029985683191176107458262562848147763410681826390257883229092779638808637943159084924536090722148874780981987085828190214532856107255358401919763055948400735071170391536648302550860703053647407230942187866973749835991420910557961497523868707058611253514216775473549688640106726543270238725029072801533774600759222262419580783407608288449290378298657955627531767784505699841384470831868130600753285072016616933637841100970252551494923552634131354276727808293754417989201362332443357977269580249720026072357259625617816038876034612371581336355897809870643674265604168688777644366238517495572196415360624053844537332250834477707170186495189361844229264778798638475513763766364762144201327048717599736259291143745561872324179081712190592798863796945758716492167248989009043781667034221108264393754841770911676555933151263329740918868468106506121802058189213723821884391661660446293911833442706778459257615791596843697642596563310938793115606691180124265693746394697377904816614494585342630222669746745586398775963141202863651208132940796666320160581968588187228471254854376673841538041840351592897245449141075722036429524938470353802223108577332163919386031458965357598129655096959936356414688324451433787790625139062512841086976730944765180280979406342215164759913805523222972519428481181915198290830477242748154025251557428701725532263347005397064223989711632995475752477826805715039880394021206319924417440702281697250874654388115159130116557270590023690099045640456192360737906423903051706421001155310248452242122469509355951325884544957643366212515368757418983801502965731103515971675590042771791976248012394899190980638551655173710164702114282431752017428158759334255161522056024924317688213474340322728362520086614133524805544004883126192199126399824804733865542239949745633052419975705023237365940290095099416335499052904522920791864171255050370547756117241560288453118346036704641179699689257884446196013266526410064330471557365767300490330075703546551500732985925840123099932417127705595267775954591346910384008811192801698726669325487954557308909389362651342775826450814016548262848424939121707112906798143326295808629080405827378465394372526236548034481720587775655463408665128464703845499551200938367860789099804214906354165079505898966512972397472939943207264096486498147918971901464698581952796384069947071546171244236950528941716670604575039669747312424448523772900131552117637584883344173691804189118735447947530315930671870441939808194873866890811572513267443185899575425875164546313199958879203763203505948077252599290272004840229636794468234755250105009229116830603422017515558847316642717249176169200904299666944095004373160658294838994867296311721692519922529089967085341593095018556520747217164713249402955369697423087860988159785424318361443433926968209494737990333765273359145384862243371501514682872187856719047635799152425593203937693685097350901214325659042597673995314561637775924024423209727137110355731253345154089174361742031064710491085302724123823430391781517655892527716431513608854819345611171641621645085987122140820391957705567464275192151219234136447124384948779907841129374525302892209241920194208232442832838765523566858575715523850746275418841449958804747267133901902256485497508043329398952501716453456461559667198963324771306604856844500181212500368550842470830995032750690259181230023781032395668546135421781953834619273973738858096276502467389151425788481788981032933797861802272213118709689534577211037363330536998979802038005804594040990176977916285141096253549828611055611126856582117682584897255948222856304894352910903779947459258956137940299601754215707093281825125604086394629285486810958574792800791719088521584384035571200689673537553369016401434291988961410333567088437895338420610060727861555580889390182833081007509619209367091320800128776239293247362250930340191643544289913141417544909113809603261695590261991172175535854730838529097924273283677350063058337372209476595140849692694703905688239414544586263526857828635979934457773877555399732291325604175633369791431503405581058039271549538014540356741475456030581412520422531851022263108895191998153076900346032077698815096233265124992410034833935571382516651318996246848105542064317595799995267689953906763671762910270861553783305965755509571725079871200554214186960867949524076360737724826427582276535272283251682159046435341006556341501952863391076816401486615107424308314577896654656066009815604792723497520628821335896176682695826872231215729989854830674852367099774800858848775745617414936611775356826796531164738392115340667762360153021041145944454874969441618704140485244183069768505448638555061471639854615780278025377464761524506218914952922177960364703158259533753501288879491280023267966521556359735151781851586325964215694802171498674497560529589200452450213273203654953237416524340639751762273484614054932748029821595505013926882942738440076928423197973357092997327217572298337484092531082598531964383647957918297866655932423623356481520649328676182769307492145493339816398329047486603817431348543602588549746063679649196970171212189337758595502546192855951097209325805046678146296690012402721729033960232336021047348273215583491170161213028738661398599576526816527844900946608885650831917434309664552191904802221307719231568716152938449031266526154655383755758327271855490166434817193908215467531010273810764152349296402709569255122395138049789312963014996432516446654829749414961603639445156329263509225814686544504408970553585160007217400672476772629080330447723086092962924929816466082633678811772972869394224996242442343950381425105846059301160498938890424821730252032480587110250684574418803779255688728862745483732303351513220515130038198868341399945425283869069263011659192340921605768834244589545911365723225078669325056053351012276794073958413823495991386861755380510776734244443552669993194451056790085116396408184068375483231068294762509114054761666600622214688701076987403294744298824094313498012737660065955960789784197686090346581845588573454632660043813896334371893170116103196341010410888607887735127403040651621316432795467631350160778601506085806976358238283969389351848710307995898955763551348915458014695247530294016756344954308431872902819288011490529026491445494341485546232128329017945226678445710309535040326772269351939719157236074528657111871357823625677930162718797778217537702322214921630062706111215928682155096820537497653171344832797301147051335369911204869590148008664844318831125217502657630331341309297193255951551784107026207138901517562705276082792802230778864233476728024625584797748603206352754353598959332733850637218764698848802231469323271397958987255290953565955204023349880054597132781732326585339527615312969580545647425219568663015554043405075411587084615017859425999092379392145808574068596724403701187182627387824341347651014281612415771827962892683857014472313721174506510197291626156329008770434552675528399233763328478395547476163657361243274999429649078081989750610445610655769963828061098750739252333129346609508646973795185620801263197990838283399734538373211742078085542785939448635102761657913500139594880228082872968493390504740894795870236607874607978016908942785020035801014242933968293324127379354637933113416413073353683359063376353797411883297490860390021278655891956149248281345146269776195333656201301181337744996143879958220207961590346332408433924055495799790632951496048182458970089276189106022710775988836650432501628302702007963715973753405141455141934878746949168882891894268706204288299643719212738769811931279397486502371038339658216648624341489907048845541777088112199617101951459648104635649813203106865928337390107977527335509680976896785183922509507496196734696265022480891353178745308947591150215235966461421775974423883837882371599743880196128190648451442077000662640382471265841681989987797139948322049674571438410407481650337811648535873327883862785313601902077653497981504605055823672009361750845970924771582194096677455715680002794808318504516274073352216801620894483667497861779704378924754628915268070563651845654348842399929984940244958249960350075056508035344863074212527218008127038977128009607994993214577639898681366140727922695978076920465839451028701462357759062826598047748160426241158182201696375255419574105330001847219945165132715215237552040658552146405284115421792738651761636134901305060024408925172725793402878888545146195882018698420429956817848907680336388848160131531179405448553385654999831292258298756268522282612333529111958751580403195633076715219520506769419801960194089534604900247536204285766515171315478316273356793196109464375821316334995539328561467129939266638924756599527684015264290499048829094874612044251339779077269278898686713701070303255338944765489752198376565830416711148897697286661337136755427040218747699058120063365089697669857083724681652807891920029208286356422443790108996559036801409664793429681703741371978384529230135676859915994273668169132355460440989404429021920695205512475276802399788837709008319794119298506635374912090828788219895153360573377669583869920871302564255506637635764268610941488583659208311674166446008654128389524424831155334089730364187427832483777751850012528196647269220162574624170421340219929591661780166225092664888214945815004723253351853324694867238228183181649301120494082250615597966421008435612453129010508008021118010445435002774137944378545517811774294492324145484351771205108485189139472499766997831977742160828761821733918093547703341795908090299403018173123569328752005917496353254673649588622504635700412185345903258955794643504924662362589752475917806610995468710812291795729530622948426472459940021265558327024659621695324143592716105077742712855215158103426024954834323556681354355071529737703423952386992141565712433610018701882026020273968491536084870570546405122281945658680742600742374650324210746608691656360866188755260032837206323199776167468738169371275481407879852453444316870869267751713073057353591973318430307248315092533751589443888023303311642401878518215924527765612503081203223551020894459393987748075609118239003742786440589773514771655080373119918656376018715573300670143156783826141118316157522084942623117809282929464900079841596605766324823891828528413204010058969840491580329870986307792003114861984850656537999554128959821248802607400254853294368969205993588199360389179266213689061493928457768741196881305691857040843775156135569600079286163227003209099483719981797163509676210801329350326744433209058388143219271693289898222398796326300076959118078234847518143025556632108819686405859248081561167362756650980199916646076618062653233389738276874042832089424093530852837115157988250300979372844477462477624525964295352987393653301530872415586321645212597282029183746824842131283996348133514515633768719414455875865210477887505295404213918888893585106092139140676846489098661447855798650461465979324729461695344337213307913915991760666733532450894452580264304358136948357996981193386806211900967955551111087936938658237571507269755703563375286686853652289353841763846469380214271878775421227256711784258739859762053811496777720869139177930253180661460371408673084656996714793553092418583947406999026018662173529311255272180581835470200400585527165717537907014948781935092983250760031798158549175721191668910576123533200877937395456449380201721621190351781639213058721812272157951454890132203186565834997255970852606135914565629075924319543423733585056235413724279204195969253938352474273430005704122083434983268346539457744034634939625368071543381662943417040690579904728320771577608059631395434105733258753025115072202443266720837594114815256120252541374986009504139213400049934363000288825383701000497449470868588985953334451983523153952040003537111379517757213377231942781374256819349035033944119743469641791530197508873639142226526459339944328734984331818320547429024261079601379459922508058296564368682379525364528346009799029324464472248668931129157097401989221470990753017198972398530475850872023479146613099046550521131693674104253977715562692123782228136943077953661045420867197175164070206409586197066803440422626389537029311387161233625742631635141685775481131455010486752488567917416752274898277685222297084014961877937977739900806799214968887682189218219095710787850267714808055903718117442933169129487676168198281041909641500127254449157123915136293460185093927264985063262889363883612329520667363789625397259688598655438166415586148264899879496367482454247443178886642847367151002259478433397177814577672490610201514383113817616794753928268778143906956049336058507162307074468826212669688078100147777462696398961970858440657753431284024467858845074563179036407089908475928531296570961133934638671680638573035916007987764889658390640765107973213953911863187164917267859680936593686072955744788462732297177433542134745108053139341923399156200838182147673974972836105065607699971406538506100028022033527137508241018843075046498682373026960320169659259102454202089614165417518942655479079741120926337786322176948566732187240031215826972651046276019520327759852914651046358690636338423925707284009304340897322101139676094073666247540729111143420740777917451093353111468420215747294609783831174023512543975075309728920544502854354068701062220750297093105711317069798361572037810163958448508944810735224973791175715626887811405655684164207206626518123787276716879354012246517848831020119719290100566904029335253136192943297531222573994591822353186993641571182182084556335117938649826229340777020962813414596581883555682270492088520311219005887978953873387379046766885198762526725978746476569617928320676190918074107642773553624311425278881570373041049563985423561999962641295723723721255279785658933001059097602668039442667946776094809503401468295456805097605299985297179561399834389969274164135516163605318519018242141472875338564529568601283683869212796509389052128098658854604731958640705760526722011523845951887837392370253562606910546866081524847402855602496907317881907585446715500333157324130358021716119458285846118766989760550163286801761756281830098221288348683922758675935675724588936040295963482425732104169071781952504398137742775753100867104140557496752398965915492813720472244507027547025084701428899030805408832231529014090374156617603231931469543230069393842294098041409782909624320778807710868142657178840804826953162972634125624080686090558572414887360371751283508049805224778665556444529793965386309940133178240854930810855688799485657984068884623749682811602036859957450992655241300613848127106407363581775198466930062426231813458567612031372215048675818185758424659752020910217189451998290023497456876695133194249579654904163977959124293754724496520624893928359900065859347395928210488689012980619048628251385314779554568471571330945284424105867409589115975237561889439772033087155364330795606014794401435470840299274253673403776965551147073337626664116399296177829940722305195691065505627645664579039733915722617405477295894442660715442479400128308839892917096202200492233972016015124487835864267014030347844130328720296872613994987073611800820674532802127013722285703682482538572929787490365502624713037791967070400534288100025288577123382900109360566473316115046580905239186676732538871456402547860874016346657431937426009941933655502542064232540632737629703577222098406180078600259003524652711280388340270567862949146754391325784706365008308410385915268289934239264491009726873117520654564306638660719018126099610267576164157566887231666837489329279943483432641979343044845301777892975389478873715362378952005492350667474802112673341535217435777833930994969299706482570184128006501998813118800944575753096464296338009817751632484271705273716107803271496648059136835058134096637029681104374871043797134197853229113061013674804901634352385056175579602794150128738611152578154648280824249296463228169015531880120156661583675612634876458151149307745436869648434033868871560035878876524060046567925339372600147061464621148828127453388163140034270309940092416824454859553747897746328123511089179410636849668602241431231524455761543822135425263173490102509034337109145025033327189156340452070353933268394345015374078028974315945469014108372884917792523813614922822483936924240144180748339559153550940503835645449696269817777727374423473937034977155551180873420479650957747032270066144886435081856917430750361079065897784503993891494902826177568670199954692223860382605642221625536717695634448662376358290478474741299729231003182166831415771422284771386489717574835119372708287668399891997230635091560816421502665083948056932922927876887693365393031883511197376741354792512028866878778164434276087746327613543778827037264427127783655790191275042729893649963539778592721749316823067822811904899443579875607083665279939132132654531119329518367659790116579515354272481420617189016460003946984016192867784467937726113565965964730030161339136034798058247202386405328711610220480266063466978223559092843684306366837157840786913657635498698082294754875080912929527759160830524034629394832409260660805753288434844212092870004818487774314477132952783025846064110045803414071754707560432106871140892117897341105593119841410624413509846497596638777817307323442871698393234279664334006680893395886629124661146271099162301347780299014435428869509167783472392689583615582802735218941709937123917976862068874118805059556935207149949375591172814592774310404124364207665917004477770797356485430836365393374607951251258797144129205557414881882180288518779641010377110907213148769107028522027243651465145840725414216025740506540495653433678245729002205054829824316313277106770131211006126814890538945955132228581639588842953648714698129471161450522633568736763179309249259430400639476276018459907426773704638209481757811737005903824459453175651646457395967250468527299172599996367579505026709852564149819445830398091760862918856138889700295463882106363296235410964724072070301633520766301814625248297989098237216401006222078441388438237910909150404377739356783158741253674665015778859718601917264039340408260114014277465921042293479750695066985647433521853056139160538298619061582338590323222570195662465831572646727108598281462465333377066740459419352375126296107682970683092606227438326792336798670924017167648868165001890912534536155934043161926404466880494195711281160731706713276625050469522550795691012109893137567145257166498605999696731810808414523821584328821186642502538832883459069731229136011174820590391201552064125196576498392398150009931226641342688149020328334218071187906990154100710307416270613350376376555900118656749983109814866110999970354750402451866485823460887789258699477027393013497750301268741254571375038102680576429399383479873345268997757663655679807441268468363833972909348346305760491958464113663265273383677558844902419659328040120430827323788323881186303458844125544987433850567320563398548706366129954045670234973846597001879116702365726840701391173558249384950379545706866982512169445904863015139514246378385014632099457957850990048714226954339228254244615471482089076316643293626605215824283725296360887179515409575227513792955935133483512980462576818738351225007556553966703912868229941243336345915194306928060216176382455175138283642374829269404928438658905582025171205098802661537808502784168019093398221825107141594463389297078574076584810547348637918986024775447060754063786657955421377302897573587160010639643104853179621588344155787727860600415311820561811603170921321871611996087305453407215742075039159312671938095105550423820428770128448279402718262158335551518026156213174761684749049688649259226543210839670433858005843988607367317249698049711808256824551745133246334357156418800966390476799093216727121771369972639491559537816984999593501021189311660033552532447200436861907090379758026232625734310660051491645670077761226686434378694408801920677335546377435606134780819439073385761173988448333170042000868623763597581309743978100633505380632432144865297588402862139189023859060499382941552909638393098780325259497374064147740406302403988916074012981445740597521260327363295239475916663183952470340951824300866048952149632661880887743388804218491391693354583113977460801853732499622093831982722429790420892584914688194439526216000879158049395729070915976312717009233913994005382817962769418444792601451464540046008435073035624084376737880639299194717659602207906142601251084065548828955617019015439986276831484061612596938653953355567976949925197272407958292287543251625819032498887901959637805981551177046526799837540781730921106760706734085783471792580704716704586165817799433527754461451773224599485767446806109220899790984092553955809996188572438078343601217154656270392532037540953346932851785740178193724666461414945274122890501135334761783878671941007569376234977391470441469214856443796058298082391637835866906549687355857231228466029687030459671434960718490279820999140892022266164575304704819669297793394264080666416151999162684447494126287787845482048632112075195859572252165051709977529214973466130723513100751391999271027453349538602993903077418938494493198713156846364003574709500927338177439367382267520787586128900390403449116093059074169149667022202083147111552919161165790315417195198007609862310388999236526230409695080308615263956859253057947115978630672907247634852392513774296851381859204333896687397611326529455377172635788462931275806879039228873692875831256598890935010759608632740676909684660099674400449399388928118269681501181936506532986079986288447665996264507936018010939298120672827067989596837414834135995410294317533286525966224401283957378145961083399689121960679950186669245793268516109381956309036245924965231628477602008314549950264328297980587829323991251841974888718792986662464727770314833414060336221383677986573244998680825353208586454941147490020705189295183883200564786389351774503899838632102008949646041752041924663997756778917670651685018449738773250359710375105883755442369361537098072866940277125881170354537055253245786042752681944595856699205554204922673515698874315599068719758231297682703573281271448757868280649150038139388224404459410498640576994126068934117451263671111632364014088860872267631893465507967199626538704273501747776758876836874594094185551443036356822425577797882154619930303403282573043567683758165446334172606227232880414498419788103034488864236594058059327174418235927550877785650407293731413402439856545781897203571345352181797093505102800774837329870851390229375131337803025479325572891907162089878588040486129599511621042155954551704346095538234438643645221447616103328091113452879342512018961115808914440410961679255540775155907068293301151443161895765923786090448945978391921922668462479694519467814069301042821103279749981982054926073220386053314455880756182258046448422544875494392595614914395264730416534185713948428615579605204494877964228188866307889137883266528915701355556215705201437101375880073364406841883499921053761198653526649534726307872796764035575406558174310592525500637725547828225702786857481211030246367745373352520330911774741790501009358058500046540019070806450637092006704886669758696568288708751777953864999411459026840213241413355633897860377891696489619882863759545797063629199039610382588223490944232004341600711640710486882377392482594146454709734568285589900105047376374003707664263159439193645880419646017381741534583558572090103357469362416178351875695126672508327042037791212172120584810100787027377660507122626040035921494112030259104205275981030072659991063686078081193444475235255549117346550729854477364801488516647631017436512445391825742542122881620841118893710939245063894343638849044648001706919036089520486611818647925340119098406607486585559121252054870498498617781286740189624410909716684725561415843796479896010649970597859623038604707581723850949286507653167155504706845244193416417851622791486016772234964098657085657990409022217695363544693317703171201139324884194146967438055774182392372665521981653115199065423695271285673053954814217998093342391757533310549982665589449871445564547161786044821621256003726099693891006749504553548894124203165859690696371973581479243936307855155294836291050257700618687861054678176386081374603050771847381854574106509752119724008264180014331842648036032246437752777503268518426156974234661305470469081648281469752411155307837073624172616635692614131207002973940405252507454532681613199592002603737253532918350745480962247749315343466976936837279839911165257780908468399050208613436567556286446270286035010061996728332841247141239562373688715845350512312927887573334136567351233769686499040954134589570739375629580813215597200301533320093993875930306460893130988990237997246239610213718742225163775417600976115063838162287560203121403046847630574358797817114189571595493540250294146650691946039364543522326577434018181882123287349673614210773558652682182839476624843817582770534799957362117200749974050844592064689735788207134292775534130477212230821222191216039338220930321757161488073152323567917659833787059392258864023618871274338828176862553076276350119897835667835350090801653728779416328678833831446618752665132349150163984323834911035512300103696890977502060116364680880104204825730783418955714292296196769807299020220374146159049405568964606374695960646411218851788797631689933376125306957550501600034748824148908372875737585650333703117401852172196873450903500247442845230872687685515722279099529075755680945128303039566293158931231447669250050698948054666986061153626869926396609661217453377990665591374847904338305448381440250207972578622967672249318438289974392687896415124289334069850863654372980850557588216275480851540974543929539582864526871587263794550502270127225251325774158330294646373895986031708435210160917395098091385298270187934180488608043231732391745006127618504370382810983386390375076827350074050250226073580638986004531564853705216531767086436819023421016759920969928201525032750452308888993450430956391570761857771705476573023491190238119318370686559079235314407183027573486143004219747971634689642846567223303032748343870145873997141653627820307374737735324971113603387255576773984037420670171919344912751689458951747909995156760722634513284122630680153889531674118172989996220409689058540378199347099722672814297653505862247790124289913974476594569184736354026604660110240161810973106738605839988412406768540994293869090444942401351463281248004607082161373727289681835244206323440926301361487365123749579731926915042646864213451738716646499949638406610589628790919224757282626832907201427070255774135824458421837684679487346604063740848624649857273306556646572669534609832168766826713168358373263307090680638625823707234075613189474462633688078361036195677686830031054762653489565242805930893852949686224557218146043408816053717501032915707874476887202429500040537580668996072882511001481333738080688884667403259488275217024168845349472838879095235228074512104179703641948282130885285070853867239504892308515741772577196243246848190213050340756280085527344117763934480841708475899709006349122991637120107264967482017382093121394002858418453121635275691275626436582455816827015425226705848344912492240670943097102924879623869765227490670778330740935989557915207329454356948352549900752019359018314058252692797161917129781875675164718059312867520536087437554967150063913096811165605573298317317828557504875351807342921549985793532254641104492129455186276436919551877476013213661416754107366249539530672509314019800211731394656049541732588469844008086136506832171478579663146160039481141374384962446154080650771258255354049291757001383341457595495393043940574922162514129574359526779254004098077197936923083067019102499371587331184110183522741516256106354691960858282804091745108099032447585460184514136570516153077917898184123163582213376403831974024791296494061132735377488620162672535610974226464574837623566740202059251621023432874859333988064018148109718986715688112564639334949804160342268728287036852726346725373032323788453637456267494817314501653155897346219139285973630896911385317054571122134929101788858903111419068398615393921932631377765814525003445867468605704273454602795065916805011474072106601021690541451664767014323001963213894373320930465926585756053521859954484369167766122691352566462345029702225007842006713009412324412296568944784337044822142335432282840485528994501231236290065531174140671694395466167497417261338782126063113016592275285500745734263705298435206793930286373236805847088537889004415750658097676785385674413158597179965497329514175750853101743104091725803817460063304638276590780856127041585454205470895800056428790575452458133053599967596468161013841902378285373181014415933940394597864581889453955401547494791195918365094169214211730736486369583281024922127647595838668430533997431427758765344372154570319748941830357963002683197803833711924675303530102242902919063796535037841893828617927146217547899244254377143758640722514279845561509314424081455232028632011092976447095070053199831571429312937363782648616199718428489563769695773625322849257801134644232612924646935430765111439189514868571146336198123304594344458690049075514392830715352844676890512791319711031382803821452362278193863656729975851358758892436241871468064748116739190085820101102860996901589586104699787062480238810477431155620927410704590507633630352710845556502665382622207982881421423046651888536544667764290144272765095557400210755203194786435444363498755210828961317163229963647284541988277882448431596049081705128189899305601068007531620406888120317424397791339207611419596578223658927762827898219070738885138734463706408886706277915747592568117579383583122888476680239919677992665047821300041791134062060248691661069183347559241979087500832762682079602337563763135006968279124774537347318723475089997457329963008951708465021330070405725025790140087044211894394588189026564229361500694491573734849227438734535676445146238619535807002457227631514539499410565850090668169556189372859484474402114215263079529725261809793259403175870205517040845958355552252060874060134261199463750090721661891162005496980998174850936016154218342219782114811645819994212601263676799921674392887278933908080717912086918136060639506806936524659842953805640878137486692094248036895863275979435035295430471628046534800975819402196151654390090967949341416496989024146353665409421045769581249019516315573244733405579045988447677684282449160440711447629556998415727178659271253492086210228487938769065751677962803502462624980725796743089162518791316329591963892126807501235363418468128930769442983281524851400185365887842502408257078764526741586767537468211883854282802611204678260204648770822253966009128961683922062828106466789955097179609323370832053996167485213680106036076185728286146012689679262941214583082457994910885908216935654344377601935466857859947598180677309317462414498076368702867208374298497429968438138638967245302811676340431682382415713163923653732080485630832298521672211314034379972247683546395119194652640173297018670299293501212484592147195408148049246637917553666578625201520214204310725487042565993614698696018284288791062913235625539974705080112413084206662754209816337176423285349087521622296540560558352240557650712400367128567458538781284575063639715634306002856546830163335625649389878758066972369352516502767663489611925638104101457748220790070836145183847998807262258370547425486466131016232275495122178491844052794866463143764679857065959979240291074512120440974049595251280048469266279155441264296099371855125557691907832532495037184612732544987753520133034163655779936468123551778361314422705159972472301385012350310202973423545079106776234346017083972060256199343439714768384558240810862451348134352032297077640838001905648441627987655121616629495810694243373919715596567116430641133410485089506056465204550538099980258943150089933169934972051801330161671823716548926786713734514879877305825188819908735679951315216562371304355014536918472122010327227168453294405193577084924134967205310729981630167907975419982154213465723707011161885264255854709303886450100548371287940945507178615221081373139036571942308690906695286561346690100444968928327842785731636957056044802194984430350348476041295840713609868543275028522341041240716657133528750821744517406673518317502705142560120711201045239586110357423294280534007320773932355394233185452852939317255513457700601968733008765940138478876586949807375468134815768134435691542422071323177337762984321450309463368792002122343712557622456911106343941376834290693187244513870395949939807016355232289917792779303535606991739564117577008282219994286356626587610769700388222379065921162422179464231715538429768533158890586093190027415046694424663030813929679794751766079413274699641018426752001402311570666356932859276487582528327256573723019015382677187630066868845914791937351041233932384051440376100271524911949801089407433515739002658570441940813960115519697650233412072851807121635098854653734304135531460711791463547171506140836317075793889176493201089648801936760339529076855776420259132930028008521654727112538711202470600339778558118814327535209746873977491915935336126529491149291732632337062726714867936421976330626520805535455065846667430514604992293228512563105757261615035200806846367911680656252940626106882490403132176335399122326190237985004494926876176255288977047431304263045699164615610596538906312004225050974094747096882135862715848447386943542032789928893445990392768246941818347754336302774611482171736203675895697051547633888948432910563974443528334879756221936461932841431632641561732928585009378055003663409048747468837801974788875907680637380655896980819999301517301862010385080379579074178771107194015699767190163894998432927401478138701470167252589581018204073244393755932974709025501880611588988384385387415624643361406864410351661077117891531447348420435682523532169581354444392925722339961038997199608284801126549581371217538561234595875233457194828224453160347289318220714747987027879537173496498707018616695706875072355720130745846723279576623680573165857902784948047658834798985033248449199449043633857675819939242535953437725456073730160933405631010344600924165615810298310644914244405174869332147495491009164557154769532255616247814995079601978171393897032932376821921488836905038808052001782794306834633477176985176594387569397547677156056854310713791471483550820821418772647592586162460064494890595375501638642415962075199028538370851809454240038593306185726636916966458726791607756249452802987844047483969582274507109292501945498111237185850362480047248467732159915787898721283632398925141424074084443486115157449036959601234896527095872395432578065692053927490941770121954534072639850657695838985317813071393370717681883998806199929804261844142859148926707117083387076116689501192558542076966338825769357013117111306168839442425518590925899855822683506444152291096392742328265560347034828355644314720010017545599206439315876749659508535095727616036248350158593571826243223802729272587559606992619436058158815894341281332774128753392768835561729498733680131880818009519075878276333605399439453344148124691498725578741910817653494070185549770322302119140095108469637044447636855521250634620039329934226512137224062321818333560872694634768466507934028654869644411010259646903584115652457679178070482460157052197113120158511587360069819500757935524641413435265530285431080411572280917202929324555160986775038732851234164062963940902111684547890190159057885169176741294073311794646455019474234003054599837872195291034000502030448194113716666793169510034657203914914666204810060942172748576011225381293471881458466528290611648504188581926363982452864430621570918945576676766536511849946373773828019675961865604372421367027796023226175017270876113233585686408559473460804690882073731584045818763850868484234847515084745074923085613238359876360027373902975382119664766705052926071285500006308198781655529018613039252523114367578612304845624025533135172867888746662882241389598160646920020090956796936298567908963132941200019905328553027881469812812569285154004832467717903569949809392144807977953446464653726491480414745009122577772173103623019676989989437389099232694374253713084043727790759152235558371298626993735597303633087382888364625914773704556090992360393305518465211945016096377992947662830902513664613717006725584616806761840847157982189817773368249773626724641628437643628525776522119902332781390979429217924269216482824120105692192833686086784909487368025456615267739542186060097086311142972997528898532107521760460059485078493257186012377360597603083689405394247565714814008225738692695106218534462222321857183727063074622306639829199530387290678894222197574945772536279430119157136248923624154643631047643886529521953758065017669267571044430370292820205905697867280237241006788468385662290532201896041143351280979837520295990059436564579662321329653910226737650174654799102890315912089373612706741123210170911065456300732595139219578727268368056664292522469928857973880298325696405177734483086974761373419503818958309344093574932245416279913942940430521817679649878891939885366697039517475482994010137849504081763520702320202849792417600908886474787049162691372158016506188896449778868605307516954036259286412146682051486098681622281245391055693704179856182145418853100373459066197614913283382214385419917582437790457246381134360716562416757798542165460389867493907033582857739342583567101755157802944611730394331738442998711989698444990693603603228204571597468428518944706128223671657608728161373502654663808209363280304511643273650475416573761814374631229951862622473759564158278381860405316935314470906328211790292480052850762997366299682081235791570684077791293169704253296014983834627175854257214871411155792471253096333292926394391061443633247069045930065053710077319676141550041762585600292376076336034459913141719943009659925675091806640741274975077093717430512613051570035266086105845851746541660848057451403945968424403832946527845561653058787545793381504529552272188063572490486020395468342885661873541128908966114209597710044459589835430335104306457755509988237095783406494326233391137004949585603033964425593263220271151876975238870118033860100463546173837813814543529998390348204979947703747207947435077675100364499693674336918289216399819721686790350243095915796943739391056973552892988248788792125386275436412541769444683637079728318901187212544972117215254948245753937467958296634753663122884800982698217553457364513971190629311819741819069663203428763654862162040298998827465271801421908033139485203856789402929562742673062175644425774719956076148791312746592000622160928672369574350851085890633687582078118944594615867641147758930466375622309327214485014656622275712923254629571117745590836949362483718350275539895206142633529229283731165927583521648818949970697090562433602633896576297339515424913404330022678140288421791537481352423346151382001210510509313647563277032568700920854474410418640176227442288427875836375027217167911453894728908974953950818847350229076493313174838773724069654486282316200687444106768080833302506306678926545674170918330754716659748276321796999605401915873471445055815521108964967307140976939006698339172415643343292622671711884458642211253397280337776552060153657527284585044640508796966051879763117129112961812555731052380640002442197920716333907313076018447056011709346996045610470589911391930972426615784639800992303897035302238239592915167728988641018614003177838933445748237776647576364044328952744340259558748508611288924312023427706449307412559712787689672293381461372082917351447525829073508213420565816712203116631254503195237778567806508696335022580885164868399755960877146006703681395772404036885726589362971250355889387220870931148897799234549880948629140538060092114493054447874421397507945521764956178740133751609593942493455531618150381456805910870158367668979831592204673992802550035465770590688619097109940772093976059970916526920986525271212321430242457173753119348545365178863158541542878975281917339994048505550739304164618239294660967632400514082317606423991358845771217581483243474659930300144314090193973995868329479433194541296343453424232575121921761516060067186736183094398735528031024591856732964767813273326873413487112444309562707745144828185598203674391844423419847736072029796130079726103427998067136703969546370300753995619644820730763423678427718114279151318063639427491955570519717252860441071409219594131222820321779180139850728022706194791444705362104762023188834849862872669959198957705935715694976587521675991914419342355112762695660821159659106405342717469714859643218807535871412498543847085255826905909771441781953982353671730341810579242393952713478809278142580877054633889785575749193876962872246308965690487528587195536981135704996091677612964989050136655554930237070759909210464206716667632551511730774786186526005481137696107687342757632851374937602155082741951307835469426579556769815881326761287309268719633472754506981439452168322632564468145827000915570040557692379539442619307061906232070247147782296749183749302263519329258856648490417236011612129823216028686541015485524996934858833019777855392759748362892806245605064893452649565662151067161218536937316459865263370318460095848260246305824404114096275468211210604847898913777663308513716941032952619761715363709953745847102386712067241765635272343046719224144547516295853774335129550434473530947918250972625588993815844825116858815991614039009411461234399441507641745350937585841151471730275003769664407771235390752482995994025314512409817305824032379266023148134520905644950239017030742160686982473709711550284967564199603769619050253076045292061221167419393029293379147886328275572450736378513002671478688659054406373913417625545171361375248550971037116667793925646420994840180635347095289591990854029780543497307875237690045980567117720840178350338041141800581522807824720860704136486176115376350054207340433977624420716950406535600343919561007888935346630738066683745036153125228363999595158224498931917964640658514386223439773714827304294353345156991275634242782196525614783847536381321971557247079167447443501967417180015846589270574223608248970120239266315196974475697641522362258715890293830653687792941129654505013504727392065150632716797871619885717963046414455369369543325309864466573304058016380720969233984244621469300276851578649349604982381896977659418955626177502901726101442231745556533561320647575738013030616317854675425979531126207313193627101598902381864203633803436867766404843610591383133635822847548552866275384076818605555806379988600099017055993868221237213109875372063344337154706359977076404251819679398968477073226082698186031708381232933122385742719795417674372740368481126251252855857810345411065095772505118532072292787141272167468510212420443041927654553980590071635275423244400205667251047284365712673119706114347523654918974720772187427997916835573249078686722423508852734488318032578566432042081186047311723460586175176668700730025386803535109164955669546121352409946506956539836765942813926530558629877655758838169096198278953702264001538708638079498729366088212215781372341001744237049232941380454651215487345368561716041954096437880897197544935475856069436652144556611643263700213466289806407877650353291992119866078870332291595423100133441985438713094013072232007678584074574664053515919244227248983816901991945057638956737229218201354902416340707829389910195897316500239061083903244805931467346138610573541038358287271961155791816434592339943981531250223711937029797774973305836977650312715921436454252045214830072334108317737673662123276329197525804439891620823520004081076352238211660634017477516800663562413182377610271611752120528271600775656880204339340668797073082574075914612304147554883953130020579754454124735565646370210233655252488032695599724305236778440096119428808540833856277615565339804357462440077972120591096762243599396377322862665120198843419382874423842011569477487539073611786591229680242888459866655420154370901865619032212889224660908512048280903960825528948403251649202670903661547397671186115281390513643745002027722010447326288933235068691661681900819715037002407155393460834105945383346206985068702823472222745456366409123714354125380058210561967694801610679087479525535645243879495428514171549187421364794027104045784058861978683288541121056523631037064219563966456618670317131881414148567119024321018242848730011893344154711249682590136976886222871060060995743784815731221834406929348562497327934966622761603613985443889485875297371910312861568169408869881264212213027141572237182962760804117882006131436643562824903594777781552165670684758092921614568112566820417821966197816279251330017011499405086978343891536326620032660182901034803658716258375274458974609868663554633568912462191782658380035289464201139001160671480008961686456950311624757022509114185824802216593590449382280841657818244746504085722439454443729337272614172288715828141972816245720498472394878644269052104826233072510825818825282565187554166271452371641393946474502322935517407695096575380170616925404246885525186247126545381570309547859675052823539339855204441336379329128002345367097560578012700943068616600031973298846096132786302575886759882779206193187333310696478183963130777962818746716320972786949271939849756438147192398825809814254996198329624328075968788682472304692181406974687575637037238844186292714544278244127498870032641671185881841362049956816881000649346374813511133018634426469351872225939432333517988847395299694570017797343268009012461535597768634697287529732792811394651726013561543396701448825559117619780716558828560660063619329890449282676303021047890811105029969069356727652783402730205307134505105370062650449473187893271725619918493306222390993911284424778927564696086038643200108532904513093098741017000461175003657006173966573948273293478832860373416553809868092925805166486415304955914492734665198276838551612754582782770528865738391300942514587593379028231420637067151278183598953493536746377774027842301253252919361568687173766934610487542172654086546094934166968478618948887023158260358593111174063393824371431758071249303438381546376835765431036083084399343103263099497024744120792646189979031707262027058982656201371516208806002321553709401272773257572072785253002362691835289585923340990972354284676218856095636395323674782800131559320579493686911730927496954065779925176559979255912533590209075037644674094349122863633031267453609895812229395673335616375292880647010069360875433591830390136416739444740441031137945017636038409102594229368843460878882959199422722692795009321790941802425288209362922131406042885347612190978297232124527054950412371371027408209310489517196210103445959047872909949256236989795800160402162492963144164811308235493152392170872153539435087362510126933298769341913778797839214544108128248776300310871068630908148317887462332395000475554180458596257540605749465745222183821819164706311839661460427594193618398620004505192838031318394939410631778600462279579707360638557654468066470997479028221814151221043518415567965096113245859388559654173573314481881830005185332807311308448264363322845569444434801369847092404036177148181583216215614529112014944752201460263484571866259473400894171697103777472492020821067207982453204793554900385947118978335125344797639086621238411719776446377133524421153569333757862248121232798181287358184746051222571415186976534357732089975602802829396025433950383754481573490558923245775452008057955510378258135019025370095946248480284807963350407143761984035184546877780317844692776598004269736991751976062668512212421813552684155424834213791686881311326771674248191349483375480893218551848293814202260917413519042342709483400863972326018510917088835533205427790747045352585232380473238023198085121801972627141044478604199646383854906736041246929397411118495123383399772981616416172844111237461535721395837591953708251599862690099341366081692697259719078262118055934786452012680742079363521339140504949747129113818813569703594740998348754782227453618049906559716011960811649957854692657564932201010428360452376606988011691273452618023467085710492262312984235229007876085225639592923820788148466671248499467793536806623474685106938440246811263668999814168516091500650549331171171785870929302761161887678754191939832113047660450519476362273898769079425931420893364770415536013953635041984958677551990556899333096836783341226820631020976361076388889805945110108736841751031586965092820890009622133633843180256841274028756507395773881588586046733038687147301542491295551876866752340834968320559373448765595671573740565210275905127466971193910344181427291758089440017116351323881080179783522620391010111198193071906932120141164935565015667195175841525752517239163056361432061762171201649557745880802859103284790804287897574425091678729750906570471879500686386911432107029762488703688809403104899927125371638199901434073941768597633148796301169643296374456528111024976467038484263726822887727401955777278172874688184841050255833649929833033312267340509638241037245539343798152868924365163769402279013745420532791556917304082925522753300113687457857804481620885171830200190253145134546002800117528205749283157983989527707369665017687038667604760838010040862147260927362574295082829458737993076493710135472680689321241629107131204963404696065758133571398197730539542768650558241458969918236381667326952998695342816419399122035219628068460180689879232958316079120839342182833448869361704540659360265713994290576728186644881431453244091340285124209346836143938928336471262451622779786751915970044962736393552914986332857253502073928289592954528482640493935825315066627983634901456351829660200116635495746683064394416516361766977217650222454082365524194946629637598854002300674469684926691565886897421950492478986435497992704428603848579646667435449079139426521782337719196857893519977534071559762585281276703496810206800081890633794238773057293455947979269465219789321324989349978926926814727892129430050736017716828888724975238573906649239303261188679771797168510943266580149369218574602844576076455519850948328942745478742706746494306502566973834303094327256519779292077784274182597281997058669555541208126520110506549363181671950829862955352953009799713196457942297516985417688483946161853248561958400816511273835938264834596311885028620057768091787364657763038225016489992590212436212621730318691660114321201273705218445984739831471466797223334106889118498725574566766471591009236392139957206659181245786322590089049578772868358434716569926191118840383355402355797272543184193584647072600948782993954216420132501071353914583177820872389592948027996071226321983343571384106033738709641047169944228780284609815650322000207521148909074118558931753599466215058669718907136969033460721406477617990696247910014860342707891922579401252947577981277639606404896372736623059680472670078653407515496823235843811553507308594156631087342999043609342327491002331158781450897278978940557689821854946604187137048951840426088304784194047672482901540185080795081119330765500149132024264110037636931789525564768834442895437074872538041234996749705269932040502623345713917811327143189785898250623024689243937177345648553176925470436390300786358175244806112680595860366244922274472730447920790283331097587586933651718219448374223419081565088117776395761161231698507923685319562091958184942728054703898338232253244201635535032202148142321567974921709385692233327936626506225954165272911615066107804655239224448653992413026796834115875016659322869551734675478605750160283876312296714219359178223304530585334383520983664693970785995430544241765210815867236709286042445720607089789794435598994640106772079012596275274116049823940671104691199858754793675649191787144361118572441828683627188728136213983779854835614062322791899550305501321113892062531363463307553219806112472572926861451209685969864102554941525607828331935512251939794782879785895527435310113741447634338045850291309107153463578825291934431279309761800472497552609475869463975601979251821150521494786461752346247224784827719284719078190429711240677912668363341157416569229555214563173267906863990129022889978861541898762563981782167004935399548185013427731800219093301996642494241649550132960222218159398720699956104155831630189712056262297264058729670513383523463812080000490914691154029718250781482760793898807928816890275840559467371460373669769144650443247309551562132458098403754840314897638755726229122365326361599658539092490278509836852551620407794008457462786049092827465027808570732795217141587034184767046859705474504445116300386630260290574900940454671761803684614434867430332962484052680762166933860152562439564533653418954451841863400762989397523712896423575848963325401968771174057838159490597899214115541739331272038628734717009369832073828592220495699819221853484767023830461254950745211443853081703535426149515130028046679532859584069021471048856881220389817266859361891949269334139991220684702910206590248650971295104393424090737681599862244233138924082170802635500425046693803047526145493375905474282467636839348658026222177315931280118590882213049558506801166968044573934753197291585528983348177825080956457089806054212889358135244446456063842516781746030227950704182894411938572177012082873525362383136453556241178190441598733763666239728217624462032160812158159359571288534563020669384630599728075037124128919910127262924183246565271712091279116095978844818464875244342552089210997227105218227535039856159435723439895206680722365204434373272083035672125637405690102412839600667722259493333059127602996145761821000380655866631493687719293342117503665587713179514277368600120678756450548944356327181265429620866132769477479705102608400706796738656301102260177728670689320431059950836925138106072489267798590668516089871404498341346534303203812946750249797751385010247648381135426865885428776047643267718255966310833782055587281570190386177745708025741020639225387271758054665922036347010888465712537246285113020893905600736980382604778868931522893071555348327412312840157663171084217034810393670139737801759472937537892917518866498630898138743202379077888966556732693944360769028216004610647640921563788834556532827212465852234364964110169832502968562510859069198119722179517464557287357697040581785671551179100587613667092670331543693479808484177335736603579726394359054845472085959195444320723487381998261227829027500355621417932271343649680110382672518661757128333189557359844903466898126793302668578715185263178702009137914842625462820278165124954173958473510766157985955282878817121453873020813099921583283602316999914399107168255493216339081104755763176795366210429251957228283734197647690228466315967888704505006768983598245480724022119809519275839497162278083154393236006887631146619848939960955210490473911323472310342348419672153884754612644401527000994354391911899532899669495279070670413520897198044899847761105861895411398519212627251042623009875689493879965919463712659256280013619503216102236962661743626213828994009639792451166481649674919350078590290143764465216380716406351069997994854486563217815314069176750415262250448535836692172492737954470135407730106446574565664618455275455640236078365904791078699917046222774213931224403350221567579653967572830110760379236027458251099148157033521438603756691177718320013342163050725641909429013851664889810678216620193227119344419294288830955550115798354600535079651338753848428657805865258088196743130681391915834244255210471712917948603472430870605452541222199599658607065533021756454935969334320735321582479647389428466939891808554957211729632070356480624618470825707827922212048350595611262894426759550322080218584110246390259326006059176375052629046124474935176460811014265128813623169659593408746931166770997167373452669358041079957148301995707411982572677250949402408862631815546890198402854937286160092902702905943670341697856777853610288040408559604778892840207093830469398537678699120056784742475641665419216675221117826830037193128697368821940667175218578043590575825746114125984227507251378525313530815199364620064568374840174168729723984759610135239359195937242397716232627598473460725178675367795162562703740227217450511424891608163862565350723689081638670330577173810348929896149764595571944728157484905179626303179399380385826964565997430147800506430134549687826121817300703635447342520982562271238856789805366002078709872339257389852945825471817893987873516639625716301327530835417462840009454973392048510522808240222541875756466944991059132838415792641719689109988558141083094595048746431629405043009610917169735957064462677330134744538791920585968013419882402137182609646377859982019681760596297785851292034318169326840021462891394969558259750310295061628490844403831762771118213515176252812504844817886484012594581517834651510554741297193616522634900524301209995559473230722042577459196647335784219904583885996919698508258455980107462582275223033386806360774040097745265784157332599276110382367888896270593574583846130401118491886109958457954225710543516202335708905454376819683039881139264554236107274328071448338584523265182566018560015877006508745840456473831790877874390455402666500465381855126787389681168853595101087643568787687389372634321455868630657786825282069152969183396639621574868397658132815157298642218031955598379067551650040089334041538654030177807777348767599592638421832083934766424676606501107353558515731861276170951694157189612973150965030854057709959079206040753061252495154247718246081491548707385923893463347771211134254394752699824494475203643119640371390602470670595144374922193872627721457141192975195374991285555737085965496153976702019997581393260542940012180557152285994192876701484269391279822785907849555262214859386410765419106590430833584942779305915448524859193039929799147256082288570610831499518027661340827372855722186824464567017627004696009563291819219260332996727311853009720720476645141386652900211838155188949592838109508415590128223203209821830539122326324020324042691161213656111946511253044545171379186875345365239641073063176243693257700915546424172673804690837231344374590926535950331260440547309085192296000745899348248134363888065032685239528731404874046041700302510380124940856055964810513569044789822454878050543113797293904481963399309207684748649871143131179573772797830480408036596321257081014292270533690956557534783244930993133941381337774369433262001799408197291680021987331225152444456507118828057147075042601489712986553973865820583327335626207095630492981961159537636009026919232287280047397721237025256753591252173435608791777237957750886916104022687033728570421365582393620629706327702728072654537601366143405419603236943994877695170119704653209631614713477122859111974904813706711584613482525147120731884430846995987336305892635755545319266802482452308390842944558882406783346411700448159928621002892597082061538822230452755126710230543972435493890691831698722880766347964008955897442898001992094946489490861172417414838639648728384517636559592974926556197087485316461735030414986043394846121059757330889854746640343271011978508606127739127135448842576199503985677392753979981919155914682323679333195107921100664319668242219528493579392071975266546470102497889221507410794299996683821725677696709562354761099756006722648940389194186786454864613526286936503606497747424027850715346810873314488142490468608177443579926542994593257364444396076088377838495137723233756284839484089956235503665630172958005943517803146746923910571871435875606877784235946725739517817185970300800407897788969009598894984612486635875616883452330770707477772909322991241364517406163571473526752178182680678497478223616501763030238858024429474911236688538752010022426053264656895317606987607880386176568811388855035849972799483693341049699251678974239067255282438716521416984690358303588650564752889592292532744678184579169979043973365276102203601931245928589992230190500082730614141266206640032054376951484977163655527728439884179799351769292486044462365144302224481910840063814179387920354441025530295157276697818129786623150561826733013653810904359275622952962549990013965874958372501828757725136564380343263146742262596829203748571036699668650629870674890439537634143781610065159535851856723383237818162445318376723555873631112952429351074286144554443474474678468486167158267235067750064400881011076432814467368085510522883347406894049165846469331687344013316838087581367269011229564458044933797555726381438676848545927989010152883178201748795772770872626144038368363425209099956303517423697912613588309897021024869081316922117999537256897902089870586219287408162423195133932128589689208646170252715011909956344055180557860239849853576192666527898986477591545242560224677611890035547381918571778097146263107863015309092386940184718251004035462420275794855340903632273760632519381276225845581576471401674535453352581292055608380469990229053104253990422354537007424712970461360086056362447065558510149491079549233871381907491718060197544464414326909009268177628630695345028726910776504125247972768630740067175789076182820277570196435916271628086374888137150343012850787286110969003549842036397080458820838549860277837792967179228156447008467147265600060374319042036195679524488097615557555490880481127724988075250648347236821685583396647509175405621025414212537164710825579488811558972326529227630574604453806851062209009317688043278896698372188612859462155314500859777838146838159755750982797106295579926055964352824885882129258890272700469494421473951310956384906614172732035447586316745705554740517340294406428554277774891181880612820227183655545561549804469478331628864899533155318623649517995009980765169566226645892535132565628034579762036792576592534189666125097297045700617801681682306291368639741275436802019787046985808044915269127372602180859887419301268580078633792503571976752704176008448706953912895941399167663477405401764384365330587190747658324544666028589447290380864979569970706843013982890834410021069636280100266533709738588110024315290045656832687475285825948166617060909954944600452480973658649480373013634457036464861492235705065802388488295635547924516605538660565052099745180797663359175311932997970635408485757533020059725139592004352833210194130178690833679276104130392755414194826647149957284427559063595133255686514094969091413435261408293590571150653251832984206247060442787242835622807573170088366396430739169110237385158041690643614080698234074401967446215509444020842115181488349973287843216602094756966163174226378750452924451112906316597163629898601291528324218258010054324169679490114463057884869408561361722166669955767046414500196761274942304617737716772663027455771748478895941147765755422269390082294703369524440627272520014562190526190074063305677324090585239929445889762838945293411070098421517510613208158363540387448744596634854430588626393811680806230529394857425442883541975568301146362025741598605712358348951357843717617004392498441292762054969368556648546046198294158072351257979477775421848329576463277964187301249414387683810179861765102440801279973081402184820176553160676012659533995121578566690748336049488912463048067613612706961607704350227614019954222835837399414280823331031441416077366060780900283387423136233344150475236910217424971057898791917213573612969506956978368296213924286110405218389277423663737609845328612575663897284476419419120967055243617539052059467396558579783724759892133544426540677334686955056844317220100478110586431556684938821875286206737603748073160801484692790125389771449216684035698618655260083752078284638391595069449351092805503065794159903251504341933154430503882433710800194160885847790211135676499811092381390924066093186512779684158425354825369133756889921973960841249382823981820086943330845952494772301349796729469163980157179280587443494712608584691440927413630552646015472803739099200775777643562958907165381400387016140825568452800874454099717851036485548204923169960939257285633382089972399863058309895560016215469057660739552464935104897095405642705452490723994273209596144014599585457132300085448267863592606212722181117803483315161020088174152336655007107562741118324124114409102938408551153598514795845029058063183212772250894997016849256300769117656398496469393450874608904250073997347137612165776871118182487015837324882820828826737960025139495064160054389195148831832288591897926416487430297471522384496436525466620867289448275931975220674015571339086970875117092114387726575840408648651399391785484846346163336505619368626759504770211616171177840918415430732831584169874519515739359789478289342760786322582750874691468733254099372461764720240626962381428604824617628567346058861495485878333934999765706536134215057450270395457906088597271920575821883040267634651059621069167922777346197567369068685165581483381491665717051018574625820754721784345579289144495931792236655695493009044122337100536898142075687166364588671129337558255292918451956852725029679142020481839097638910464794990792767705272044295351264731779335203952311745972161600016331572614931447646208115607000479654852372062383175627777244585922701004793820094626432383559743036327691091967301820410133347156730044336008450524519514416226776568990502070408127987148354542164898183226016485762828317540743093334107809044808099237063212167531051609366987793106254012502005384061096684910626499252912512865251076491558441802743569764671131504448704130128241877266738084491312606777130033295390378909387919541952517019859347630810776475091935556029171729717981316199134895943808038380461633879636558688505818312212284191326530812019373676647803094773847486554021819117463644885266001829289650809643060646151205228894645628643782535102942199501346756947114617585544863575720443219855071220360025506267498100446206659859628679350626766450313687435050861726403727801887890499580637631707956013369017242040792890252603647834927331449661943346577552413502046942760794308975690316567596926982629148098276460739363292523647816081934880767467986484326238862613797396022884228788356838338443128647551115418879763958282999141086963134184380122883069310164633280049234415489502784229821864577745485576787323587643731090853406067390840700614931589425248810547839732064615794178933383025424496665876632132973719292949762860170119478950493778532648227763449598786979756813448946845705691342555824806860409549900304937013506940135882039887101045867947751086668736980048280568706329893336635530165093509898593383465025585523592470878389039030307253794221979700957495921710178863012575107031166353812185999316678602183790550833781597891673822499846102995945409447716156643368938522429645242270676090417381397788154428310496616305476866619007932638201049889988209344672943780311634502528560775143485611879973256109835065360955659079539041269214534456779993358173449222830582992007184442140147219665133634199450772055405620152211456120048942125119589624887932388057807272130661019813793233963738190706679775761964589765848002701284599769249588801094057366350498619293797970319357669617604654126463374063267478596963520181779907529810394212283607692038678996131926590985160993218529623449951185353930809083529904694371361136628752204440887818679628483935655511415085723260802334596441032046203363121240001465205274424464886511784074421331069835099927019202942554934748837018311733442315041089656584621457947314976344040388796332881030583476497218335796251413449659173042610931527962636146198199410892657597715291231385388867756974872141614777145200758056698571610501129418418956950196085540308541906692641458741952331437276418544470507328897207142957773773408028387465242932565716722452360865706201035623050920759657382620444499693943101224095672218323632129868009009944092429560267186796172231320806111588168584075998484892885691431588678785200232787191481138940132960784066132363992364915704059479021267303503628747090985621696279170585213700921008620521694182593112511991724027092014151812140823160260522012466365960022025057624903050734567890229311645024986097564069642037491176989241979962834938224042867861730113813544302896328709744089853814598330302300744176933651943770784336684365909586002928508439329589222173328898187125545950700876060502958962234595382143281413811709308603757377493020798917056852370651183038925380220813597045104921040437155459207855430731189194541204543785693708447500778386667715707466671535834126227620328673209851856233623853314690032251886526200103104485902852604456853095845987164057189249845141936352252052854498743487943600758572168633048389541297514674111710067962996008984621696742525676853604483620990696735383438229949774674449735110156194178538864164972982454426414747269578359540612504417454764160948165629691813849340948564837862881801925865671865137123712076301846635124361655924218063425839097505518947695666555818148784675560023911084045359654280406432288589884268962872857962690159541839493977639389611941437305604863525638765128961045570998512463619097844619732289704018473090510736806971852262584839012229415540856725489928035570201058837256864015280890126081844563530068779331402453292778784549156784179772014066530813050103058595085917558804767257354802219235876663294946318339524108748854113274318397579290622989023461306419440850613742652320784115786762910812658055016020358074713846901406482674257179514047011208705909343302366771223959432712926789704025072703098963010576842879731130972620272266226619776548855014638221495873384240742398146676219078477271769050272549612660901100789678497755709159050333589012382210339179926139592572310769497177375886751326199368538942681415088178082926737670158527442988193949822047437009018670182842565738068223277007247035037349650647560043113017642379442147224247104465562959832538250856258251715416133868835904717196630015198548977250435643683671300253967855360277902268956535794027333909335626800499223734706468265197427292656566842943898182096211617545603000899066538331627332174533712561684413612845802338109680628027306908922325189471104925314920844812408104328861458840618484108079834640082478484616812482379204589322824870390793081420630232062753526876046438358273992010881022725916657479018968621613223444619204857793647948860240899353475956601163065866837798298041157537728637955052342246821507295584899799594685175238257497347871070794214547530522255997474155750619341203066500000433257663590335294800550352916759097904753455034539024087090351736678402897471077463653740035052035453719778478147500238636699470278089500760378085780684109439276750270678463127952531004461454983886170136993159398823798440860189266215740594499816807498783604270237661890174064764067132015924379114010847092389998039901017551961161204005633933061556385411681546711870680865013117949178306965777309156592462287081337258161816822753496807291834744152221921221453735605287605590464991649066458268208479712705378113600334920263307876994993477874608396425520991266596639459989571445503605563750165091923490355748254508477254931367534427399580231402646616586033575462805172291414973475201035732746292479604806706599908686229849573730260501237188690357252633765990282492537799702610538096040214915060524018927937456743079022195277199951787283141941572374232171640883251026003766295170993017023690075581641916572474321405888210216547590152586279383736684169657378610243987096660019153043736651051505800178064346979304677248819121729724139515579415107065947801192280739330738623720612649965555038859961853148564639983602500318012675940563391905812887300605650594078945640062808698907769050754102547453982630748390519336557736710121036028808980707623514494177538238572159233304189389205492187923147645341897459434600002250295345825220961511813445356502545655056371023568596249671600967138671014712700175015485640358287938957711513406037765252150258348043907996729054532151741941136924658952306699360496749674461442769442910171731241266697151369043909696354358736271126812365970536199620791532056094796613920347628767966967455467825712214111544284579346594099364084302033919250428398928676314035071085156458630738588023290013442879653864112655816765101373858878999130338956779341264522619936026535105812914796334990713210717026586061796462958070660874124106131023651766138356613639347771131388168970529286407302443430246749363017707544407856974136948086079190832286146210956335565339326587836719353034318572255153137315390921977633458661021356137230187133736232896892193642282489140076014309816343209969965278849747978198876271795965796708025228557685676911852709315770595751752271229094267050415124804280941947337712410264696089268738719967217555177888395859241387229093547793820896095292653953688842109637937023821286964028831901044659196147431187772731480024014804027315258073975525705915171313382652790321613711296001864421323190769701474495970133404227067570369679045637326985276308802644331886165574930651953391595979352421315361414060698656510346811132771317869932910845015954303300266937337530898466153467607590311836257935977671039995518058396443934683849808730057314481161767358431982427981903429794883320926478283797511572319102194651091453810345878793433323259665271900908891891122027380267249744947291723565327395054486374456915328133159436692855880424806795446355959764161783039329899979694060713221871634031475607365706667146004500535280283939260142418987861206165771255916597677707324079997067291099920832807130061553922839774714051033755074744561234143751848319173139087839735998110439963531422944691634064499968009497133886884029085812504381376436913539843362765077673135760943510734882972700003318788073417818587010010584074980289760445538393406408777198958115742579341606712532739166356829055782732130478753784435639061362013653070515552709937407134190400876779077212315816616664837532017296400022490639629685756489694575022426346654780679432241874250520963844584035827388190236138861792666324897735662385797183253266415564323479667020453403339365917690080297604784179780574042503067108041781232020671535796504228588366181283784834575569066708075432794767915222743793804709298657803791030678256947491117022948772190661675728523211770403083538223758107218561330904903288031770674712015135525379959707783014839335952658967797247980104972248282101595774044223240473323436043084654046839073189991631351950088351512596335318512458506328574503167365464984352582050984624915851770555310802462648696235120473141528971435570869109828440130266657889123853473314864117951065463924828819782963121289796398356106694484428093428668929666078079689174608208581050545763902577283474589823122938176203216929625628093699310214418292919160732484907800971652487148718131644341844590784570666618349637031506475224138371901752149033955196745475552257986083278144908381669643887698744105103737327297696737629522934702040635900634470714684466888756332608656717111197994126604755535843462411457478001138491979824276515699823744268164305809519695647905091622323016792178993319555071687087193721213111286940533142068297101140806959150445795716495102968221947244316736114437270996296018580984838804011902270572083103172608662750581887324151755416628328723352704417512984279452400206202764077569102991920737759390944637760104512872301640355382234888604084739094059343873537332287622263923808151063890160227676137219814709103689266385148894671546868444982166402075677643146843751334099035560885710960250152972987202706187284446789352590021106895822223492570481902555350096567246924033577102067364688888824421457811243439367469199322400139878371427668733616243358444035294506537901322448878554100396061429054585989416635985581981320120806718365641472043430810734468347834112387404975495574286281486847351612459519787938138632050976923454185011521316194496170277734361137663788050113862803259399344300166362275462877457222949906690587150653603326253879398503976209603817129067346472917140500913015516274804593158915532365131718454177201352965042692371881164416824634147257584186311875125398953678539291783745291182499144933748355105951114805742201157718170264436923562081711365934200423665370375845080800100008795684104335473788518682938693446628735137280088616636987597895087763364856438554833599883605136266733745007180432510495758501556897036261057752917282374984391862931068026892039293437095813279429570945079366959928078552473516364431645789676722897480673214003044097932022080634878515282581116353900114777613476218990958758372608726106666423316483916691952587948014321888801880068582095017914711282953959943702210953630899859570621631408587401998045899488167022134280843879927824441256361311165741998025726803126730070200474113759253745680292592346941001312392474275755389156983188485671368645807768741814233958811360625608762115944882599737944692763751874955900941618327433175258011948773136051776510556879391551589342764222228882995749230551735554731687676016309916160890931882953361864250869104317077252973531040502429144289275515929719798446328879166515017018287513614828832360251226199007163166750323569677155174210547231701984277331811449668719381844722476575269464035508369582064421371877750785308617984967359678861997398231511351762323958718111534955882495414086976771946132233432934494168246624100181792904723765021812933560743426980438827742143944585787439177939641200068053232068705833117005305186978048294068022867488099993849965724631812945053097460758414431943742365409410383246198430338982833880202419890817849582591048370528135904466130172966990910473651652670562848947235705694256883745007117333851422799549770560168025991237232922037072452837637175692719077428088739240880419900691944907400200458000518900302450911778142831070789675151237568015582365651295114070021010680291710293303818971286110131749394853293118866367987040176011992660674646123094097701770269614093181453038232141274622267158722506092373390533830502662946028162325650303246929656624809807408390958078259605622518421521287142155332462580642780735127240470130992240370659274949578317966488962362871741331047697967740433996995696694107584847074690907446713379430561251988873660126251182777553151472082923725419566097155459959190946659421590642908520402018199129114630973244338839093124294940063251077198684994921017144311260394685906639917895071847925717988752490069659070284319788520405067247543979946458472086878489366972744900954229386603991635548653712951032907240707360576846507845517184790768221472254162809421799256906553099966304582430186027179149930157068988184044031630927454358698298970986419233070879918345017414959878447703323165068969396662830709316526827788792969165753377364055584893463500302059263771783742668151846189540159449449579079821493795295068281423725147651913497110346115307165315929233643436842142119554233043919973834188497291072653169842651991142676425218433180469662915323792126957594862546762605189599891024635485570784699963174080691965978989530434353434402149751544689211008259320099286841298306095454793374726961529035459074902211443252812524889672017827908461560843901171638908584561613768853344238771487513076382453473951604030241354793737768407880426256258498840198791041028523877259703854826664577576988335814738927937053903905711862499700570330311416053214312104261367103418221166135795161278171389369107506856023565230434605303810936910294260958423387042212955579169565074503326403025106735360294021325980735126656596471660166560691634909739881025213400135371733491023737812811757707511324549975562145442547716436450068704616827423280176416169195055318761343606355139625706215415997028134118605549310987526840753464612378033829121885686151388044103041750076325156888997278470689936370996735446381223958592678001780839231569383693156871618218049520545433502009747337538470063345258071430506588735683858050460956274552129634346261112079419164737320148573244917417459141608651747899761183441055973773199326216893566521395401177003937562179802045405871974349874786156147993059420747589774031443852896902816713928976882502857885075896559649107312499869435191528556810724743344391349177894751411420307474735463786574669551911618130350282211255273983106154092188511289092213713830371288547274145505758918834085180553987810430259577371275669769052587263002235553240571373931074235579201632772267667851763946437662616781301786197666374691964272456373327002595533724909615313533898473569427006398714098696750021413582300443925242844858595369189903617405444017262021949530293076184817633328464745602414763482583645830534036224380014579559936968535783467865270695883958684968160464327072250198037962144406428440417039345310998596361529095227144100408647190071717071566903364504404511078425339890566427847881657026853414137520958847053521530488172844061247357955178331748214476657459144405386612920468131464165901346971433631140540344396688199802494990948226183756034199375381860017494369129832197976209790479253920449860196250043107249306345611993578843755791681784458198505570314344798902563221351695949600222348439084106171286976277259254944394890223856237018104689933820119472647947828354622178644293496916596945829068273778885205139659532929956238440170996803970909462542094050267454958563454685103034943338338201805075829266897183575271432685459505396277096859614722597782351006692717599884436783025720828984392078709342507180210289306786029489975328162329739475446144137645667215730027740569256200040942729585406274351775239557278541780029778060376614189683669656227294325060299853815586067151893192347595319402707848055755604604293449288811048442848637072647360084939284087052607982355529313190865342348862940698526263124728661548490707193084757916238060558534456081982338519471998787248610998739572596776782559163029961738489531637587008651105750378412722173634144175946267955796312985194130189671972402811637751731273171896113120876003940631632748062324018428131730910099813768285037051200870546534029342369163841564566161670201929624706962837434492106472902818338701380271363113324542872062020879983714186828580474081757872567550344399987842392242666402667692742947395039745496939737165005785843849792897678389328522449497352889619309849353458587300180097090545672681338640582896456422251836178837447515306863300960043594923671149383603645442126390624303155911922597947725321745988872226610496632993132848029485901110899031396415964538270138518221788354350332285810053148843790855918508491198660977167007238287323434349954446941563285029955811219965079711079347816182981559773437392645888738021624737239512527057742453089483885401839286210258797985625837205239086308633621150719915086793442340537008962002295519258066102246131438976373928278193076672411571721052215596286077221085582960993459921752494608926299448788159372479751262516794388977333880951396542959441208022486907244288875378694034983073619738063201712134201459397426612517629706701899918953294009699061508494301565741241031389934080405736845391048653250618413832310732691362903984719576834418707254940744343482089557413906879629416317453184765813321739125356550300619235445834924139729893707718801386278206157936918477422240298497229937043226557123574773675988328231700876684653295944594142552283697184054528024478998379640944857933217037439555816146687388007281767402257468565670506754847308931302031403299700947700486135797169932655717736536240768733797991810465812015692899899810731899849605564320737116974171312678911153110095967144626782495831633146474136423804735671961228009320392324714059470359149064489199385965217658872908846944883658108972753426646453527650901153416795240802342708235407250774150829699211200091680404534454154413444351608505134367235867751706802685103493068191835553130458914797295518175680384178611146874491614680305479219478048933200626311520120435654817058986611236039498404952145483967020785417120194508080098013634760746782957085559197531910643782813543753110208082231677671443040165889070126195846952937044304231355329901441343580640934678508602325366321339689374622342477180941801814235369568498394753905229782124737563520799400437666133823338966570228139323871205961671670615675619196480729747414152153467284793924626338437401581091047382863464398024357054938023616004290690401630432399489377586734687185506972625179419963388169739783420179725333441369775172987339818367852731429742174401559291207179173588091229120289065378737364608845203420575134384479853225899745645371706358331054866896374234531885194758498197794147969559302762307709178571609958527157445639206204686960764639216322621066571818474422667051609500755194995834445619214243494484369577462462446718097084490796360786184270138944005761919552352258716474097685792123880449613583187912902271221365774463487119192686909911666378141601011597269723773428639608656942171747573517771527916119112531036822386509746883124820437590920982881818902242242680459076501198880765591323063540375797018385462484164792565978478262530384322758669895469984684025482434577673746261752576336285066550861905854045825007951218021590271986317024340867430155143343115151029720688123914132367403607134322153803796066979444116359674558070443420629254860850640479573449750836680319360331265572441357824988808807174158168144278060357312762181674118566273578253527200965599958577562087770510207099341362770232216676111955554916190490863727449688222735418460538236290834520349892188585385956826547141845816304733683973584284701712680327910270181022254637457301545011110048980494302637981695331275837766790302516326994454654560818760362326653968660501177085420039857317123735207407921017721659484866083623016181112932394074609026113604722345039453945080703707408241436054512407717744432402185249442374183630743084683475437000731017015142396331799297554957804379466619381331727687565701286272134233312317842316751789372689294515079833146085599933401738332759210434992866969274596697892907664257567436638803382905793736908996835299495222512648593834456586367725820860898827518467065126236796285263033603041783506948994997834625136024688092223611089770481974037762574117812525335776134854462042791385605233288796252607785644280342867366062382766104404875140718362248241864666627897201837754795797237982879968112437464699657016660245214828756047254792468295343306774697432286393708784045192590866678976782392856992694242693086535075020911974807897047712456084037131985735800140392590066027723915323686071075671310285448640535010877633409629487201118203294240856991609777968330953998509284086547233152793996747911378060293932146070331141759342569300408504119001280556688102324892704344040474632640906480049363656324711425877601117524113449248014213565136266319394415352682950391808575471571928472904748388347585522352299986743056067042674349003859835756301351602825051813987420564227340931479463839401903644139254166607997805721741175907332450753331693355865524460545745027851898393024507293475248630525029187801925732658324724429237057148145700324865522941996058812974789769445005291628155743477180411626028564337003749125486515504699322954015558259784920084629525298965822403005464639843256484597558378308335771196173874703971306079176142106537508784666654023552229776464336785387044344217637557107139455571558412445032352274806631313166876394668019943350680857634411048739383299756380586282023743154273149450808935565544128999186974960485867456350822471928250674611727680088112343340108715241020497424118168577208401831252398134112176805511052256658540901720412344077436335884614536826591311258834979788745305651952463145244386082763716674391121561007724541693771318204583587629732292770570946569832991620633810807743322832734528377134288706962751765334236569703194616014155152441002982765859915237979184889245527442387576126128036101113007991228311236324209490330177280769175289421336689878230995549420402588914054829432212818262947771219160800453106235384549272465532608449733250904126837931833493830766271982250379722918634156410097846341104012033076590677972653541682586470697366219907366766615926410609674293813055655138826224311673984473403385626831761337554900077546235856347036438824710726924772821813783627796031362621059756504645679447588879431944703761641548145588741291842997263219331724537822084625665834449339942265823326820194370309561926898400888467892414105270970192181421261416370230064577423128754601967142397510521580869320896934053276928207832919936057718813244470332902649408748736968698505084444831984435925326065666036492105631796219560502248177883512543469769215158843306578058892533702493704774845165438787157603506634631062100587217615694051898496416330738049115016037412570001599758655749942771283633790999500368512844369030598033459090328923068758868570825144487797522562296618388127339842353719181879310604819591433156006769503939852206852167721786826847141469109491171915278823244396672491350815030947490498328847871251667477678000314375923455812042867784628043872213059352859590165383115074357561620151614586934537561133248025290358505062322383909747558024309085274434008798026027703079589251105952312989857240254860832891661399671674667917684439801377980176398693827847886238796890801463643785368736485448515377697526404373367640287574503307344409536056845102553417413577684600340588145835596420922189167828795295747720063162687126897171574448437151145579508192224345156078602416493673958419436680737121203882437043491490637920605476301377442154117370488464928755818788700911866718634263444078383412794528282142955952364890273867684927243885461885287479052035366750169960550475930439906991286881366535210063780186547459894290918081495076132429266583702181665687135038367712564013514161634042218795245624324055664736845900298268430667738544952403210286349185806325096472616791532628623165412203647963073672169773976582102644414548046999060091923175349483638173449603344074441314520968870462141660794374250817339369089760492436505274353725996609981832470237534280189750959039713000929679953086332581821468896297480222781973464190759354560432650494665124027513636734988336246305827916431982132453917118283896183389057330784738892026920244326397949570006516998564247984260842788159319347419969592324836394536092957829442763065889048135866698495718171168427899431854740033397983568283487014408138845801923514380623534831588515859930242447858026377641688129138709182120588308936842553893789800763426534324932615290213474382318148102885887991511112534000226227832563494922920242525657517009385419120040357579293555478892259993534690913642823434627002979068037935939997241053664158493516026727097432186985823409018190899746572657551306995353564670211793645064621480246876924446030677042553979378200738989514529162296410267329073564449812194266852848345098183475239385493840685096932571236844207563166686868015657608444748429898368104777755633052628392635508876794841302080269198581051260826478986396380121782741080200762567001515453125796485720649709412618632692290685951186653948645253155987496269318063470349010643519071453584702616751057453655034700014091466401737888553252147388207373236953259384394118338737754760333091644924937129444068888877726602978620355832196830228526335016890960497911988889184960302286589345359553313430085034706557084865850674632837141066618494674336548206007183082030602869022827475424302419148727207666406093848887327011593415381266269508385788386318167242773802056048583966376515361052228624003393676598000721121478494183348793909274779593701535081360391441804857927485957077895460999559472310374887043391640226200387133729755699184424804175651012475940798419462807622226773405566683133701452888644643964350977625315112694732080126893773557963440651985418663805362272673425589278796511237199396715842430824962655740275370806152358857466530568618077604871033488231398692049767615242869883499474247814984388566001840506839728150591333393727367644255599748214271630981915547144343023285515279670809781522288767688341009815751626106254699573664374709840419620998395246191482343202961411204254736228560425513473670229449514325189016648492719950964465590534768723360599061345193680980854231330103072739988080514058819628465769028202008969325499724161666016529079275804340252851404426432850939962595455204821537650441979213125343168314424168888529952883052382843397247634302309848377450445224260142871208346765111803888148119250438977643250960251903541516768356581905263437421486761308239085417086626819864291203690352023857457134493761960034549634391214241828894503039520763745985504475918981016955361988999170614263493720301289737069927494780412665359560382041777553464139236088164131453766128004006524563964754313026088420491032255767666211024740549677910418293178397407938859924109024855189079829059975205272085205028464951709671541232458488470052402061461191939130927432359892394363548417660487972115568248701682101365879782627093623303900040176876046344788480529785788671577386865990491688446776803508896479508819014763085789031408423700323451669940358189832215744007555026713828421525183764543369474500852696940839521765571773169131887215693709965450853075320594006124013211018257197161971182241767007768616534010737364546852047617286736724425797945246786804130083065835480878296318708822242865679878603585627209428609501348732076851893424607745655502595312981296905706195427203212223820086773534935527460755362048982221188647183243698277496666417805501792774901467193739210862031327412308248245390046367054718280985783021220340461888032389837233946622365595272182650687605109849648363783363845367122852271203709870361539144851541269156254738157738073030058199346221343397731857236536468833466853415866244978735289505268994191840856352028462704912321707028545226679056882997195881730415894576895283981544389398755226085311300561128125044601505711990820282551175696353686337455538688081035207352688626150099100801893748086356330809121698839808717522819547035167248552398653486514372098992912576480906942138615456213937838937158737118758483222448409725140474171335582561005515732747139198812240063984410832675939867018910007883093105487466506801104375889394967640020740665734021430691721479067119555079833286175792558455012634675105900590958802186973067973003687552566350793055835964881625084630645195114943711223097661174887484835257004289144338391593574775320893235064455978734129146192740400816775262655434006544463664406137476191705126784917336305665458624868324306962029361876484552050784041976482582822006409284450615276211657886869301356180746340116876143360501013207906835654321433914160093396785373909701102097336799903334275944841121671941431504551216401237695154061552603931359313502445416946485254296772053232860091624796670709079262124020389438474530977582020966782957447582502459103881558792741348145000475844143937000484203802412599688022595148401710982086244197131872833276312939632949906578627976748831888990398884369609388609504590134971950367322034768462935131780127324060893508393087919163100243910614465712259296270198822413338690289714156911770944082472296043769303455932072968439381413250602128345718348437544758882927884577077402939926910306607026838386514205979924051543584530769136525355504611696375715730277906315041275094895861409904819077334258572727140820692269410933990810617372683787280440217055163713681002812319728874498042744523742493447255440348684789549876215426945865091079598854677226852126274825727904189076410220001630457497614558100049940398613475321504397334272070206586102231226025589876441619975876185169420788372290554635972341296534201687040596365750785625766944197513965114174565048097073607351360611630883272382296091866081499032260270894401027518315884600628598474160002101243639903919130220262535711700999274902047222854192953433001130477190631062355352919716937809914206614120652110259526654439272663087190882816456283889321496715491218847728505251463583316875711178504798385387281203317246825658191343190265889667354052898071653030389628161887622470423407935175258459845397602285145408838413023085828986392634060098351391775153766527346099274822243689108179167190036679855494481975105577522707478559772487677631701597189703866241808428444738774731675972006673005869750269276118940576294940655439783884501039137394307191160136120583855576891311826465831872884990047444922071584372392001787022564635340318316248302644755164260940139134827624563043296010928898407005293444734693661765050913592534811684043841807596731685915707584096162505287910058927366496252950463333924075415920694473743204609701873174169043628814989150472002930756163996122094783461665381782317562639441742292212666989866780240090872294223134737204314510954353163503279263810403870612637728482749794262803192439229773398210612591514413179097446842130453120403200884450885262920863098720790927365889463587017516031774100655783250045893434619212731347769002292976097270327159964547382555222732380052998275868715172287531594819090668406383526391869136481477883488020759385481567716586942087938675197278304750448429096975782350567825858423806195528589441095858438565446111333150734182885795944836670239046158968549661087333696581309900685834203087735562609427266992694481200673421726091664028986379750359788473658827904501147411493772970857379467042103873269960894282177161419030897288095118741405980277380825349343351733680412016960863513022396264194342859039063971732394769960614481708463151612433555759755589719248457414295444133880255452953767095940520466816350961506085141316491432366182140373831213003472699267174490388048551359924669380727556752015835852138263097679925445112019844972584329059672000512758085937234244314758432806715554708414545131124833292413658679062743595186259448146221280206422889751074851570530797867680440707064597627475901551188244101325642079389857171161293943207379989360592725836352589197722417771813309503020111293357624355218783505165530648560799206595296161444865323359764606434560632783371418030997525799378328281586833397980745230212150907047271889166753427670251512499414818394174498644244763933307785009620802759015925427476385357827017515714173161745238263013709584710148091017798379136356852228755706036070527831930119587787645698371953286344415018488337183466186681686166870516876450190508921206296730117388797731694310107099413304493382203101357340617762478303070243168939929697754503051952773352413398379697860919553599490163704383167400324501270077470491957918542192440896451889410409913120403545164673397322004698171229580676551065030970285665813140708323436779324878749920556070839214512829381367642745573713654666597939749666436592117570659340489623034988625899439471382521068949445872091920263477876620017210833600970151270601754021889821987730566145762084496663116244833961895217682455212203784452922762083109784080918320232059994817070819042192412271865129138689590124486153213634395598465267552886809826183542632610245058374559167714579921277199357213738404541706454123276996608057449261310072065160046001781889945800444146844293406325263473493162451506556079237687958616439935665554304871859530486672132687452867466176774964737033370657550418667040662643395284193855473982853546004755542095824680959690807956024497091739836730059149824333799845927472501531982507886103200524416111337388493482570167785518574867116697510906790535064455567125646425312114114630374211864738467573592015581145466021840756255287504206111936275518905597445014437786319913886015696166951087673940079821645281856245880174358390574424510565979606231809547231472921136759921034065144088427918788339197856248970765021687406301155259240381665483199349168952389110488485348918210846920659940103461684030598234199204080295261552434676345530913313455505172901563319840924046804698990589721251040271916545511166171168364810067431703500191890739420104182064830419514938380348157740807624945420874274695313466712536147323773267547799766526156648229145636588417982174899278092334112122465424998322049470832909459434901393512455254909631140609785393928699233765220323619596341201743365399954223120840370999473075377260386533801922569981414427466930765670768128767126091049150471342165072221676601936774004774947629997093271769376517205854080073272481052474517058600740101070841565144411211266784134962992151438303455484955955451460032527325366421559131591873695450829870749857830029615387187058007830342141361202801352808662768852337591311193689000424678677385530847573784613126984510564901725444739340269271062133515876773687454577692666932607292132530529880048396513828897292193046511485334823206614332137673078333316121280579148399505222619041390021839439902938446363128731955406681806988336067987051745639835361436936646821886561786010147980170439866170563704987254558056335502173225529250520478507504215072170527957215200103923192313682781072777116712245324102660943086524410006963962573826641799979192860794236976298598082711263368836073713422641564600375786396902772921073916619510459416298072909748958175820424582959792113095780522634094201325882774519931843913151278075698462864856309735407133803833317572812000172809461523670935108482439195266039748043366499775715441818682643242775086855172017688660523208141772505286887933436415053096325493183672504491696779412929523059956142458760132246949837250898501448843022000581121247294563110509557214643346194710910462079042041773230958360564355927400367508525223292555311237498329227253005172655723125839371055931470571292652001112920657750611039583266866129801738913006637625659549621846588967517834997254668014047575114376202302984679555892777555821993503396574814924096372991994559159638670387971248385746792675046691886996573772874836249737835310454921566453898492341423028935149893279452770197595307641820313586582537859943589434807867066242762322913086266630631461965835161984215103667516798911838410940083894108238004682117857978791110641493864743703981137357360194193456970859845234700792334799249114156754220617696858470685609647946388184485891613540822637379674098115185360106495136426964056548663735595133094255297516687894576798138383360451433411385572764607142107635217312375418723153863837933619229593478865737087821272225954304056612187085894446058763480777845638014822621552497051228478809775682387365443613912964640424261793864897257926666342432223499518629882722062198274952731925923782515354907111815318426913403947970018795925365407538639653836944538338172324875971631352149011844814052564046854762922446761747276052195816059927685302558322255876406326582407040431308199978231434156999880159821277131775761521072689438427635456600954430253005928213240614318251603545546289186159804341362856913291397548210697293157843071000382487051429740590475704320794903859641998606710366026909138968271321016318936460707783414849103122491223607462167505819335125640685352948159990030043361393249079187037232447346267083838540385571832454192323077937734782258366688635697628932847127500123783372244402262588455576140797603358554838531137709601164379398342572001496802920134103972224294388027882827779382761124097722675080219708526134830086681343805780297559449658724811875396665391438565655964138727781063465548226974176870386962817681734578090772566267524260017448437694605231951380500882804836471499113244502352384058046289534354345272030720315719762356178740398254376105274978337915181262840207416041500299779845403583288352509623552804164781214748322485232124187083282936880472038878383476906003742421650884962919475517512179095665452379967195137355986927723158908571460061274396939243945455806199298762415506284183310923216219555761516991053632581034374831312358104343494072235871278021037566519331266399183527639326604277059542010689748387810801878689619808232431500244423875006019197845030138715952331991777144659713077259307004011764688939652959203404167737435498420254608865797579698653507499348888810225093179756177884990748575291170431173896627985564071155182092634323209296037447710627353428254386159823873732357314255312450973635017929042979390074018664640466451153096922083242470769033763271793785279660040358663916467868619364242444068669350517423100205750588994993547199493467907696685957131308034816411483112945057499946713648259425276000133630311374639832170386428058605185513501622852444302081437082994746928790289557215701284346391746146340149602700298161892521664008337439852355035381163994283680410408578407566080667444091071162340448721604352543575716975784283740426989141172535274561023165952550343792055620302540230650944668302981098856142935804350211740229835718170268885611496257700386630553876592451908478239086516774476075202855816932699479419225741645654344330819887940318816124629444749934150094849424338355781751978121804272915977178165684279396256332835516280711342913177090830139348225952542217691519000661997627188231803534427311333790169580642464917873484081705732686925031416577929611738663966184620066269402755841108159835266545236626098652520497264720648000329170575314378392631746182295476597899845449444168917846066220944884979768521342290185503171782533798364787534495772862240622224943475726503852370183913745001414813123019667988586828213796484389840794060006167757164561229844694676335465476159759827455233033207651962337746865044380113798391658054580121628114973871797133562235142313238566168631412720643634121640212970756691843905957050180325664513680801298865503572240432444843846458529471272350999759708618773251718203318357880569791616695549792824270941417531112141772918742790591938317735392058030371090661393137364014857858581638828167400321768213116618207882722727828292168550137392782047336412990845500226195503092350338202608068514936159166058186494467288013354392879414544902907561295526242580927352607399667994994645382622017131234397473958724471593681615620795421524055292333972670035394742304846170060693484431333672660029323866797103543026278494641341086213560668859904421198703290191946664225013638023073541020637082715265411278808004687796101332132339018198655164233421498850650763775172989908734967611479194680925451554449551116501369706154703123285233092135210419252389779806214804802204825676117017363019526870727349188066762572242662113142323668817659991835003128619660343523886729163257945366081184794381477968612588309981943752417777478176260787541699279586215362067965325637299667207403363031807756863857228965113389462614777093165270296233295699549287672625532744984947012129335771814506562222688739528071695956658052235321068388671499800379354590624176953201113644602977203171581605312532464664943383602377883591646985155295280559713355181265310592674277077989412987319018206266578992603245179309480394603894905121059122951759108968995410822958560083980545716853986121120127376257796811480088996946765452321752268118825969092719481877337352029457995069753911164752419173062753140107520969854086634059192400667349459071503155746524932470204781625418476047426969803062490632353279035541397100793707746708269519126650733943290027818556242304250095289732419126602376934880227743566812462398830875915714168909544374607112766169179970510541084258135271043377254478987705648094594729545649548492505264077363914044844403137743382824489303603524194857019955311503332687839629628160974220578362590134855149746537375264347518114334275837406531623025557455329482022219173081710934382275011987663514026898600607942345321923545500349753675791170968684240746957988462290498166826026794266909240452927557721200479827623503721418771107081436570544846588444697804350531292264547454596805464266365594052140343971306895708945012901543119799472347686568236448044644451915924317133239279800279272486891011341284443067467275583195607027203234484129756086757602710385156032999178271935058605612870156835588401034439963908777293641124839638780066973462906748664084209388391678419864937607027032655524966156968252146977799219547654401345689018292002746219300406224058096699873964874845448513390667930676405161530531393917058224272618101939276775024290013794556416966642999760545978693819041174192281166657404548360343413498524758201602783780708306385638899533804620397886112225939829012939565571353787259357168781568958122183252995072911403446943886399707097152057059399007566979173480587147396685575154743402293252774164676767168310127641297175723707671601422575817775390468259672492480005076750091716736132788984428373511319781253179293312450311377461617580086730749123038366764667933950826338141090595567558584418491010363232419016089021336336573123759387797204935895632164631462579347772785128539090361582499458270693247992162749218439159863334955295706661266208756007369889984143119775559134709862081046643812846053025819402332040332090401271491056569005457019577457162366311746832526527613043494338258398283037906373740122275785211335891564584239067278569430558399931766379475476171919728944372636150992832341271102602286830436693455417569448027204057814628592873131262443229081034371310370310127333792131323917240196923972402620816253485370162100492418954756784192572475492921504634124513721117992486854826744126436662357072890023788367804625597217535035233635089945803243834623903476411450764529341177102171676930068380325920456354682738556307844656248578609092167170049075234382536592218667836569803215700175127753951863462404490045213340483488322484448760027259875567971347719072707119313322281711463940064436547214280957087697394185829085425211641632913636872794094272462982212812219161868780015567639701723770582363693849658665830035779436911508007886378415175020364174499734382224690767886872211936481181273891351246137011897347597722665771347801476579077140483851532517872962287674962758724666321358796006913729105721535837646925151692874516729305058193653357819209445915112311480159613813868856237755337212468343845094969476074917334993630660367773012654273424771722837852479935764811686289693000976364850409940517149728203845902383542432789206693718155505844479512124934296409177675314226546801196203237378865096962209288824119883336511704751773689341343156617244952975486585255480039192643736166339594416301007535497604895182074076857844277342657511900894732915273304477016446784207725809516237995120955360686657163088262299860278235584589656223631685200269763078777677398347232340549796636659452858030736884100264527130922155546736901390976941785558338273267278334464588986302528954149267148175027508317824582078345914658413898695010604153105683093247881382440146670210861567412981449476332281037259332138073342964244709653218186064202715681433176589244526723667290500885019513524239102515502211957343069299631184560599369551368991252804691397594791449604299161495920406488850159323364967418317022807544569824544624969315099911532740542828344330578001505356655918976741738978178493720205034694204238746625879242500518973480064431087985486276700426026284738602504600385543867831403777846424461755633901054832200050814593318778909809891290731736461813474091268301767218639423775184095238477770410788907586942677401111610642328078385933040078730995285637674664547928942630218707475669533645993561521614928670286697980486218509413275505402771298729391950269908613021183268359720361870971969360075931153099885398012559903710450735008720303381899266485882205584717495162904120533756844471265113967554609928741262648849364848897430120610480403092172703860236948824153217498644035852866374321621856126213948565013791432835235606485272527095930429561323260962405493008447482526297297726106833815939943815760210605515705424269307224168918584298364227251514216172620235101943718020973373092004314228637208433840317391384531023931105202230078745108465668013231377689198374231577105975679810152800781183938271840853685534139511694898712771133652955518746594072783903010927716772776348430767444862967733808696251448909275792013800548855497998335604052615789406882853384209594833386074399630112125147484657519762269703860775800879588753316569647253053198336154810770629955070205499330324010500798899421142707777460406550257836872398482596818005004387356515691980633350809154487911454787865269885153163975441594481605563286845088072788631420364758485773620692002573229236611907108634426281116559010063508218465333310941519585766946887052553896868626590724872170750698018360336745545698658016753509319856119841733969585601211041173508725035335331762593367821036643008669314137884965577825928574029856789701265246033161556473153264395745275029870989116063373870916375396806688683334526883819343106080121909397595874253131303387115423195586164353571806260024672877537216901584839438653824106537374972211264088595775174929068130266770806110940133757297350632733218444123976666361189119517905041128696808947368785375885598977773023426019749130638799409626588004293787816327676875559829273155627596969903455007134910069221882830696873645833043489271863433283028481400269610711528767034828878766442407595267772035882348187126846782096498595783483026808090438853976046231214958150799189506897575280941841267590600653518904827182657561562501853020298789012427197838019938059089648681208129858170004459640609734733922968828549817281897243021259673167995345598247705723816172296291257438726318092654737561043961200840365486064757079274474293077520047179093624481309223827954801962815324063740395074030093441732032748836020731964576796268023022438412726497086687710620046191401470173704095856838993605915171062919374530561024889158695252784358214608062596074178290499360512551945314033019346980871843886512205549854300480902536228930364410578111413141539913685368054715231703734876513243948564206347454932847881091756342087263416008225842687211494759447724162091419293333192103640907600137467247211341887899308556124314857117347639174270008567686151341922499139688065748777997145544903798844808102627788165578626908540526377143373271339780883496068586274114228077692475679937612158939434609805647499037529058621552401214839778608586935875977554327783684396105504245637829734352466474340849291043334080185024221993591968329608517142563983264370452093461768467422455453049639745977676233321847852356946636097803533550440403701828731053258708980626293656327667372639987405078057189289086100427468930854457498723082529400234257730350385604766679201728947798084238722151739880538069778882721338331281777778129788808006475069458422890886949833314887191003881315374707160922106499246798429942927850729777730750171115975678481555251967182023802719806006665748367685608492535695574564041098889174448501063920706298931225201493772218229356593041004920243732366884854240115643967250493250144523404615946701564759459716210410694443399384959809934272822770949323533771776974212678151798122845757727991883513330414018196510001421950008945801053128641989415755585520773932013912859456149219738809615751356069062756767150317126278002566730213643037212882844266266519048110391251031093370231176484659290328081286002723830039834907494711470037979186025248104889443447395306393971676318039116904582624463773157390180520133043473695925956916269101929305141467319375777108221627138915414117967183704484420597679365528656749043688376512644361634979282632779201980276232406986842511178970432056330902075262657090044155898086287368258083038712181698150247562899341345144620806253070628051845539906730642490218098636754876400101800509451179766850698234548905466501872188080321361475440736102755567164491095803582866005561964205040874407725164856444263211645323602778215582104277638784935862722871625116873666735693762091588232448244136928629568413630102100228413558877641296768825515199228714668383606107071293265949973367121793010273369092560460009336789467292120604574347502305473201627717351992533148391625022946248334664762918906644259913921116111119443669488412755330880790035153937515454572023348458196846506275202331258135461115068077877598732063560205765023039587332464572226420093816382965370916221549531801966245981958742220248101135696723586183481587238542259166292797493846238293418972537598500953053928240972075165035565643767668334181548368134667849925151347344630741746817280709453384312696388996197353692146789349701066106073775136828497645935835341139114757067900193369563618165149514693619753284698707222042836766896732037388728482739382277746373254898929577378792907101894378238017692861063584237820390644894232483153521784704822397775303906227676330352718364522129618011827147187057225694578188609501031825130235238128131735142226148942304452561963523253750652018604152456642114584010450184811010049977252041915937509859575910190671274429793922042900454451882203527494545780533448472556749281098977130695313971833037888966201277237280863565505433760148368011708371251732844721329926193850295038863482938576662227318299867751911059682836252370401666877295029691831574872528983684330696719297507253205969519412892102822403508715953456294677111005597456325202236197492675699938764936106662447879164153797505979546078685888366840004348243299493845189139271127453508343021564882378748536711322140658428172922649646712173011355689477057200190144459894252001245893559982816130872165545878228582973511576495316310142086030155651406481844175715783889301837721827209637762162221328993454780288580402786939179039543877314064417924960250502804154391262595628100769545448805268491736429787010746236068037115184228606316104043464639245026989931627569636361004980549152548973472972402564658571871952612258597640613305444066754506343724667100705364974443608921212751300597845056450596271692979828816213896678423566733507580461625993358504237124488475416935766318363451558826569562464677355973991673983019593671993408873165986719550505523813354522038278884641918653369296397080961476865589807624869879103627850284612168698867116219001758761293315841244150700601825972386426760435089347181615008831533914323408072708499886339364117618670287170452370233121980088946478413993779930389285727037813638470780425153318474674597377089842706358027388181422460366455612948747355052883542926437972161014886013993932551190932234281453324329103867563437718294125264995920654329855078015897049640099775482595216488093915003014769717618180792245030893943555068254559931146443026972189956217451718140965405780424166676542568173504403720150150489641699699224935234409085243996985528699785450571208157719873591933970870311831924203737661450907103703458802089033494791527553524978886101152185042516725419535823898746938867949495458600403971559742984622608402157702253992491816334071192201927813054856694099481536700111340189326284683420137481419036040809745908025111166427028661701973585612577723953408162429222581217082815306694717932639808064402241185787756940023634230289694830756726536361898007751820650363213573316085481195839793623457162654682993371887139483125567410640510068179552674485431925983696780390262080678360127446523136127813406198592078145331854779554355346234223009742036853111407255759696351418082951171377155667112309218716033208399909244249215048965027470748348372884193981294746054272419677131756736359597613046771294678222443267202188769231176527005532834164577095948198680539747889663628949375760057104803395895917706527388302859954800295659816088596845243911658520895181326210741571273262310260434318358149771263742475829655878386260798351666657046958107686235562915308431435645760092243257086261485351204356051298278565662436973789058617366510226460376327171020051157481864964772382798797525848070531289890287440784434204217998928626477770709059403451521259628157641643213627728052354496523343591130642080725769300053045244386293608706429476392380096249407696417339070999089135013517775683910344435544177213854583664736853326145958933251958702534502923710376783530709820095578512510347011970537507435412795651981338536533639407580674388474772328424982618777721343991850087728125348554332383193729378952296849327990207177431995855146222458503902021107414905472822633428174721194624093245306435243377239666642626935391491061616224322750316100129689754802394323137064799246959000251884062286569343925753198392780041749755530825950293140934039438449473715536248977559656689023779567631344741502180205382680392554434808165086238487681961221840399081761566807323748788006077549694995412836571266870602270341272822009300245347344971047308051743655954344103222130870487293721699767662008373954997403393361336107247641183237668027869650917356755182601730613964607388132453799190328575108479057387245909132437377450840728742637725560465135651300755966578341998876909496629405010501481640598260176989554224455730612448933680171983592974446355115927718589906060643791619026253116412286169022191283544021922759522554782739666549565869095106104697007860518253407590839377408826501649796351335694234323226739306929728890174216091384740285366609407550831189467673620767816332994239270467187295021914746976605882797994753724834701853283856474442204603846897562888032998057849967853019841147255115754392863685092407349772343452899038394471565611496335012137912748031316854265752978216997067551610097811117597376992001449631542975814059504949980113970097913957893403777289181222491510293238324307681396626803295414766449491009643924762018229740062867739591150581927396288366137410673560725635030867378021486157280191480386119380116385581669631066977688905599607656990719655774068337625127430925202034975559321036438103969903438108562450123088755357107452052230976968814347198742462961065051398501366359624572088031191712904631530293249519710682446513439084813678693036709827946300243868843425505809426631624456546815489398639359975153897467396967868447958557429704277702595076192766073097549928661379287284386260383107002677266222827167715117222836325583973134025687090956664078768823008182266629388359993757001799504778954851502674655774091520595188576626035821997888737834525712172487337516099699782954235225486954390420922218881495393137314498769530018657067939436997136850267555011286916891664415427834352056194933125417978918499374842361747325841155657693430243323542062782455617932361013813699349411694371553815272774557948614428639608709185021168848131057496914130964362525132996483460188693874956043375602518970949675166920089214919691562433793165433600798957300211183857778005142854211852881457769984712320116560431124346207826501297092363517996074623167486652462531276769062686904472060967667655563946732402759383840655871809994121123085046042347574071892284766192591471941092866455360303157713857787515969213488307342423172019030821185441821261306503364369427156824686537353396743288586528560857921005136753189560077677897002398504604768272589978989337797356377823604258643414473898629924083155788453988988398961375878152099521541360855929935884075935648009174377388381264354801507656450563457746097629148681975666842050267310863033961101197078942760995322278767448034930631161179599053565368680791336537783782780334818859107783370489568294284308723918465041585488052274605987231524451531234352948182030745848623120648157333670866105617324928664296884399353843079464101129939402768355209972330263084911018409798557087322461649948641961885483461913826423507233040460024906070507570285923956914422446818420080240404591318709778542730017815393454929953200366234727138387899504797231459161792891051963684335179750125711800223270877209643031954494647738305028867944560909719293137717163324638512343139801392429373528169679133692940976524455731840919027023831348975032761785163143427170636584770481631367947941731934534146234316941759060208735887254457456368226857235650682498905031388120965072277733683640030393402759406770182985193338345950445671180940012504931043479066237359747467867798717895015833814442937682414938771985477147645308116460732573095897009206412214234431855850694726505115714380614072389385256065290818288020221685328393664702820365035507087254346044757079936715834161316903232305166449476883403944533919549623694268151734651133121336249589472221365194713858801363309688454270020829372941094004112450914706238697755775722089473379146335260087568346731488778045844023847788206070383717159873584233841261256651828843009339474234398236604792914371517336998845703001865995178354503007792731561405384295635798898219568513641478246995157049126722853436094278885263104299442936790078104645580573456631379579925098868504965942301802754511477285301855199061501726497841086833097984155153116393629481694932836701159068657516703955362480622757560830346931686484601083900945573839934034200538922142931156989825868808268059909973633094221788798122792038523596765636542312232362203972407346432786043959076483831652362992337131561311970093651226474954862670003571621753368225616303837200098161943588851860141935827904777534945330249366055793495388155791285866169744659068002016947808205874105836647180632865139226848374560720741584475775910286992430649849331332486986243604539242939641033027798594776421068568934110468356000235161645582016017587639359081927015017097120356587635897049268317973185131725700379636002008424500638756542823061169763379830615771841354863881871072991106907817520503227989567607715143066623710530892613643433171052698141789613488026334470835261263600563672456247961297476179693724438300367651721838195847579797173805480216651902111192737769985783299853307866170975430550946217164534589966067508965858361564775804645899732705204142493115311514949671482126030140722984652789787140627139282154317887352699749338736336482805635566762913058215804561988566825008491077316712566930453060313483703326017575527301422317654386838936198848190619262729973218970782503707173774448129030267119668871268828922882960025083869879677299279832594112718927042016850400396332427559951100626265341790943962173866636758402579404182600030812679377528708482218145650125588205787350351237675144488325575792958496047687452795753192274562758711433402612895184159756964963123787276741433280346604211480645470917092539800289803189285833311171084663968886844837734412836191471732148601566717730751428633171535543176435906139176746540382459279760783967987221366669056867307153724935082749434567045937812442459309065888781782210590763904485178288241850063423217057426535952209596944164231648312363154351519017825059211681262080381694444859424929016488245792494603689476212103073364704621266450440773203656664592888846794846037936410482051538753332830778976212227430234846832525951033571006081126909022522174695204685989938333568207944250318189929045086761500678096217717751217400666050609769770898316660430482347924617899042045180521853521558715912031603085577939069021030712481502719324887042799216180549310579874933865182011640890515829009560535868280373670251240287288266567481451692531725695407444891917042040633830835712214404470314492435444736259883470704180361014497941271162281623440014307273911333108191357520260587783700305727876593321686491576033292810011083666898482829081247924090033358439800143607778278386210602767551103753130292196722895885302510345331956630653786946163156673806471401878876008353134220851246001080910414515861204247781923920596777305494532090204491973907273188713721998939578314369871716818791572467744604895728788607362971795533149226629489269263875568674617022772987102369469514737777893269793113339907219178208521044524257210194441466633756447753877323545206072737521966991626175930564416834870427075464553206466317765637111552683549864379750321777825495603267406247825165738899165059404271937984488477703096461586203931368110121926395225575813516156198348853173374316103314535930652691792643148842744063282613706338817691426920543482758595358930005219878631219365394044877188091855245752038400096035356616898830056042026452907831136369541352209466452690848303025596151334283401248407291914930188388662879626157908880935677974176809221858900404128845469371814310273257045036331863524232906457373576342832925160306993712094808592426481753089943885359530836845350721626081426086426145827354277402298591757716086576814751780517110768423642083972698984017703002516366954406426391645724976528378242884527949994021365278014734721268741458983822270068586000853609084760709804299434131267186885356154992618193150616955396924508744802007913580714861952142760023883728193475505850886649609065534248731270579709157742482782403881077701028290851288532173161154275309093942919528662642035533064445989623921087130287835533102100251071677748182072263355621763204965451502023821897752852176250063172369480856280228985903830658179779631998755496087271556740031236433340461717363368147127176221130836207174254914527323856530337508646232038155953091705429977233084210946416390307867482321571264064879885946570869149448002270371918627012706715466594982288091261649783165753776670190703486953359388647484167196145167097180552352915077421979267911335487616135813539601086389328910360863555261532888777192869765075566598504847916373584799271858238877637657871453124463455902478021488277594407542838720329527499139164280827590726245812555704937795340587257478739492763882859131617943365595557725510907581148192769273211070949648410238595654172139287273059952932635755614364983805568575176878539708363668330430932771176436761718333033563204431843889132781784143343569301685596372969991604053305462765705551359361571928264389266479408179056239478543711496386066693085229706261976753024640924153353092041548165173227733396240041369106170642722678975342991996119538257171288483350746194796915681390363829869070356198719172452079776389670497924306302320537677128084362801648305788242355707825785462272956996594355822807740743202056294379386044133727542534178911626787447425840441291602387519760180281735746102254348513194629465452162927854171139384634720699856503717445143514281942465467068806784302722803443450703219807832083555652821411418878118591654888549284755574075834478936479551302022933104516914791357128763168149078129379034607018836883249001016111323548423173898839187503919508150706319871017857897840441893205097477564235953437289065780487602011363287089280870299783739643383533024162125756350174313789062979042867232120246304926883078554502577963806837453202619004355459070390974646983776581078422841137638824662016577629053126489043530575408533000095825131033558882184791830088546265384004303970810477097888069581056185440774135390586346899570639840492635370158098447777352560302557191003634135785480662372911477649653486413546103878159508353959622284207728426586945617139799997614455445877570496253518664470057775996504504484447773140150855087704461769329964533069983688292814995610209555632773337997647199193467328882591277621131665583753880674851818155125765247464772870163515763152673470904627666327887124974055038087007047896099481885583639607149775707407261610199072056831780429791351869153390661045352010342260239353231370917051954260328577644151220841780043703228728264504553100002534910547889367534231177073431767653714614851738016649329191423489795647768284144350559208415109775152284434680996950443897239268362267516284826924788177877893595193231736250411016891527621674241600039683180455587005238324012152183579340048279973547534695460484039654637632265607598911266285683766675900760268245765812533300495536525527337385351612095757258543823457400430582229463887175128359567527606789125949968840500076106021055815865458565145541581721073985321335399766604449221299606196889090110584452341830855771676120661050701921351313690187612807660625806806504524645008860178337768786967312143547066769239588738327299724981069882930426521036297268820925092740851810188929802426289996997254704905515497976376826574157689128307873147953703296603274540894251730874367124979831000007206156019524771040987498746425603356180074161364956387404431545315787638597708347986337126738784449031513852018838806329655383279069643358462464130647975632348762462525751723091437796341853963922757477526925193072101346060895428033254996600241552899387725533452791771741065333205747278571660906725397729842201467496502588151645529468676042214988080611295337854102662763911553325924503752573854718916544425543817370285465307714877300063820436057676885824554086681256438137386690384115315965206945654088404043419250144621493006918374195415081602244545248681374994393376595655757693062435500843287608839670346608761302951885788225394700753642598135131913235364320896481510422571411631462075090608154721550186888079663031400684324976355929077638193583529900707637999030504432814841975638458986854238727942735117337850785624599370531729378202664403173460716201124964885945434422077918818813573697061075072809490745373227427269284575468309405936661743697773015746113004399699599202765207683668519674362253770208733506518274654602921473383888168188298396622242328238474777922132743639874131201372363510451766607661445570899724548180667966514752771629338643547275672950279804396202003380807155280036146865641995628301081002202946075989095274285874005713924737308075832509131140368591598276351340517665643793373429576308881697416864950292813326529683749684374460193628026632987112709404506897104241622257886502242727650130837528599800811842795639676235257976301918165627441537699983746698515412313536738091105075365721538205170283091275765214836339017321039827446852882317113770545526646972581114840983631650403364477915442669768312773878517372272615676489112441835864024020356210578979089157661076140089855377831901167210244189887567985366720488300411705883523089318547964584040053951215643853232268213371417506219291433337945631954916502449633219737960329428434533831509871235859092580120195157275620740723541405064560960653345246634108069326756206827261497719386518794465317278104649644971394845575579180190106974824378745946993076107281066747781920408244928280987203010203099065625850719468328010316987676737219072366722712623352246032009389003643973704998312073767156006010896654996594833889511345459526662615907669237199013025219261547540826947402613095105495113990543016526587133969071990194729249881668743236186580472674081666327352832272267266518819547820901268285043837087638548432450610951953469040883905055554845556678409690433905826928974268907799559966626178846553336941723445015089386726565504081757770355032443579891988477989471237191084101692041598041750228395011845511263062932445264411610043946873150026689940384148878276902025943720346369442905429756656748877649180255293403708773207661936746700965534968110874221868599804550515515118501297527444245777297812574638127725332818482317948884166284929125480046617200560990657152124788645789040805533659755581193568128864825153411605667197490119420143262718476401254237838508485114537942566702384074159408792286158136486225908532595239426325227419238420505161047881808919564001485616578752804335596958033725668056545892287069249450029236767187874698816141395288629594070765796525170749379554963041184265785926141718947178928393731601271223283294925993474029275044099908005767126830919174948687090841116756430188070944077757272907412033653038958289154804647783069616404871902975130905900505324507425775666152083544923364843730321606933991643157546571211438098118370593481972529246810480731541663969332953340057817260289583343062981519177572629459458626614634006423465328498300927775562920127401968503849824148905829471017213172769109625201530540019280224809544114515409933114127894449958643169126133862374727222765425799177466841529804850793131526828130090988640899834619154337297146478386695449434164609406179632507009519633203503607869087920939688133850990646113496157126729874009074665917802934497393699508182685108285688833699457203831569790330325998562409524432465544690121748379359830948160350447166774766134766128512347802236676863928964751061592389745804433591203932978834664470634399516494409311709415297444245657217592618138025127571279352626274470019612058422430896771781158805693730068050475227241447520734132817507525540493073894645226559625271548348972981259703152507757202624682659018055151321880347529953177937890884994749772408583288506721361928244550853232148761571613654300633623494822995898725903032725925244760034546725381934134786079685725633230036462554891542383836055691221710877770304566850241861966586781758838016164439891126158720390483593211756445050297149164072190652455640417585761467848079058167379614973739817551031376837282387696756050900733059484558143003442097034855360494964546577846451799612689140951907395002223142911979890157271893499074941532651568582984091675338645084283540113572056362678343633672543090661641448889072112609614484300148415172574561447059222032834370194004301536484398989141496179253099197508158612864780649046722503885860588260544532232897783470258663873373952817170487883877659714137817306078847136668979593901117612229421185643500684885630676532673434977421448823885465828017335412972602678848173715418144383688954252414961169768111558782838582617015115708083912241520619132838964972864897179026787845577333961434037856918127251850492126676208778117932998786723444451881729488655617708249055566870770120604695073436407876557550804739966369406235461070108221085192658700751140430307265857993868735366063024583375810531572971607787895913754876189103941440910979473415753004053331460088461474297492929767850549130081653781686519981696561510226317770043576363184018718505899198462596855500046067543124259504410991387986373319005624048425820311253250218046948387505305840957807625930028843301195091766734189484028303164744367935463941240386258317964784827013365128432827615850279841389342732501230214008839115731525310484451595971197682490725594538569530517470015920802492644045097086572998589407576506019174273079647731816256405194974282586282148009399617841058075539485426171244994578970435275985774023546074967711988397775285202209387898812772588384980699637465132742150029081332359978570624424666626701534896738145348271196796534876547588334944610392952145890882312793361704771684040558515002390038077159476278832530554994518512136285289601505661002575959020543958241016692075711495632419743595440569029892028759177299177407567532421450377012976512081742118613715546792156980752279615456022965161854864669887009501133295270162250044827929801317007556515658651949935789615182965057199276846606066592121746903448990255049731376474155678885578103053656910631231459910925892726771963477533023574183354297330918938948586919209852606289723491676443390323429839619413578213257979349528160992817363097056600460134150415396480809126423395139000748598113680272157858049548178138232057165595433364073581136005719232780190911031891412598656410251372914299730201071719697617300689663046463280014014978148310488830362712944323206790299764710873352250330827628121703048733964065183163203438780236643230738988846997007324242954508150829545007990886306201217734707601703530805834524376264066970915568634220813143969407070920054795595784712455792259806946927358876691441252242344696691348616788316340522826556681057232200768689592879511493409281612476758057993345684216014120607790400286391884708017871105564607775853227299880135217040854898082452932476077934849769932796046318966581944479302026595880664071770965244836720710119752011500624301169970683555455792731782847308476532896756944523288821961119731991461522852479280081757991894722515338805032997597781386227577548134315827978537578376348540104885622963092114670587392277680439212160119137786767078483832920496168978576715333369853463379718625946865988819675079404394371682966275026636131565120464968435044113955801107658412701486414229742062035711197981574027537736974990832421255347351625982231978347932274881209652953060846661615719374663262634530759182078101150894921960270672862887078935291654591003122137981424943345763228147344963886509297387491017765022304666314017706894943737221127403898260307805784843127505048508415012048276137343385765767828577712888963990307587701117030212929406439394496776560537525000920800064520339278891823268624979373256789809431200882287032429815815475302750156781500091318637281956453005594594754469540160197162719794090187932641978428438786541857925516290986941552485915483158132501471017416386600023122275448582977725155097647959835877058941410035189853564863323526082570671855385342058592487122535943200473307653647948242292755053795132389130563320686625286233739381786401941343349130457592579974676052959279090489889558247809701421074331471581407422961963971762777180855533045422048185592140831653246913367315166546923104254001742564733684435617837555416598315354915412537375752581928161958933362689453257568833759974216179894854292632233074964838188451483557886273617391241998110637462544806622191355309441891981111593658695187180473431222380641077947292813002078321395250034210709744799896343403211340529830957477199078056635931649402675709836061333586734006608454122302687992531458978418303474145796428081954204757853221458159466146564869623859802592456639423272029157774143095553268167171146856140539391285266376192204996300186291604016482419739153888885342469758673021174771188084542054563372870522648282209969129977009673512371082710841221541792302951833773296964990696626515236004632470178977326245951050754419948164495202770627659398646154081812669379076227139714923869711350001137476370437414787073978349402336446664709401370483095931278336882724672695540167076716195575478395838458768202184366190433786416256587436372619465091019554333199609659569567894936939666201478120758942195675312313971676659250215910355580433551031600447168922344313689503610822252517520380452245095831589380758592322855850069166834062523911673040899801377040449751005060881686000598788976899968182669201565288261794515715975326644338557468601761287384805423131644533731088011603486028406520662582210405890519652142828505666204337617030038066438348271533109902610222870123568037481252406535223179514167666601478004148311921922609883510600606169977954011711568814486141640406837710120286750954177523215517394999693506190439017532814750408152920415860906969611521927317899123733253578233464304283040732428935652589592176585884556061190909873649090399947667852660469219739316718368445126375687658104709023558879586682448009044656195488621927730186198245531794810750376526022182675193526325738566738628952972394242224152812871595959029306704236514910889441512106107116070726931895164745983107486621134750257136780962921995316814893614919070101138680770260414499214780165590347665185027153388590641937711886588528931785257276649498294228419194708578259826528513575353425946291243781666630401232414853451979475103901842066394720229269234825837907938477026136598712061886664916834862338336947110888010928970726653299252883149694987300156199207573584472387000055659336463088115971370425118642897430812552919449631398331234430955196775771283141523950782416505676426705634794630146556838549762476178277788967478804179287895337949499434154301736510313376098209444010493744749784194370608470918145530313141798529331720428231088748502272410319573298369769039908336159342292659266048938967115630070750014535437694886973431697765599456550837529961195958706959301695619743082937239893149391640643678714071835980334953160704973473904716890219959081289067779242402580488862912989426145850370860527937863111216333076113070645181155766779226447122442091160390159014674066433902258314267874300251811156595766999783592026565236170402821703783350350913590400845370712780088327775882750158971638969077452661993116356396181442310895993422973478101770185797963061848396071844599299644156411443621923473577664225924934942377137119853219953036896087354912620393276881400222400623449434328466038955090369226815827889484643077296550944379565562482240100488983870461953230770932993778500667091007574278680686822916494488407521022231579823555555843649191896092157021709944898594216545597202876315486598998963148483255111905517602188158838451509218751678170583842376218046646858791324552125182417784898025891784626833184221473044218255656903702553658031934097744086332843563173413967179997121261414931839878051324549809479613868329194632515755902353297751908250324740902165734168432443052444774909924675389943103911031064415465182677016745159052449180133197830016696424476431493164098573903635460321232260876669900856840354144669158269463854748688729460248102199819399227024962534961520721023188903182338350583648073251461899168790886092681363542970689478908062639206526653845464050326977048151228288807745781958971064256241768411185345897236102146293156524521632312098947287150127399257111159749450408690059606047689008535610908990325930879374804353851358885115091387148110252606399674802304049359778354251964968259947907220143175799351746052862943480350521933107073678537187627944397454969963250959016659068971937853915182015962935093894081897749037120018283453570438581260075122509977108153170338224768522235563598001452369949333802493647528405212121318799796571175797210693526675453497509348615009607325378233865527861395981459869347893779932102004051211581726077480671524775708163653843556925544012371567294583212365855677074660536926523616186644857017659739233267795268951173718648077279728200198205859624472419377185200163031096953963365452857807586764255785188161345062521401588884005980758042028281551487851058503020644487207959358312751519787483236951042386381946934277776825828944208177570829294653966352027200645601086346007864403168503123855538550006075001035136182125309614757775977601652899058302227992959012329983997884026383783553410843376987651115638215340404575818874702527624573536780001009265729799574755737330672020322969400908336936383750739228838236125267658292490624869627466111155063160067470602328289986205599128446956758432499787803138882845239612410140100979193675734260608397768081635294151814052015399644619315088639225649123601705613634908253048282704924290049532148137489564261838538789842741225750980000672022853019438636518132488214526647393365063444126010601427531814466216101623316893045632950669091275176568351017476093700399824207635283591965201583401293749749553852778279817881771877495013873195663640887321351008547566614048365000263521114378651942657465138735186674057235090590260431749646338310450474793526256500876524978593732740912557391579784979510913381507544366946814159944600512693601877218923037945627046028357390444804426016957705731542447583880640118805232021207162279289737911716859089980055292016448151149781763015080529909435836878081405313562825208666501936045277732413962618088786211690757059025690996835913571717083290158299714548060670829455877700227846256895796610737586738230186443446858542578091751647574104093492052845575331236089240604458887751511784842976175271911155128397047748454793089201274718034915841246589152779916145882970020107913369443857792086110668684646678611316602944456975792033003844524906663952406762762218098894166658472025539159587161268975891991601390836946207531839751161252254336059582659056051207370652139038423102349001462713628306085141880353254311935509555045269640518483648001905031052096033495712704547226509124455887623633372118096445298282205225427495521481572853859973675860411782004058997871978549560914894789895335864734866885109886056939223596450125549052476873759248796868142585290848125758955974458601237122912458743534087081043680136197618305153317162487728867320927088634263102197173698356638453652828323842100267524418566656976755655346197490018676244338035371536313676493185075068568120201333820247822368945008086075578458117605339371498607606023157844865337040798870646422089469710637526726941024880959762305229581278161123651480406053486137465487942121498545303431928320102223087310752055157760846666887560385125101164087718816414990832883796907642674179039776373811801114706265311051201556571646632739576505278194614125345771949352088025487863879222557852122768385069866717504148261144207752301052246672570025813438226569603492312800069963880424674677549061089161136378501155693300014263638293947799032620505087539085925214672352717091712380565825143829980005335615339996014909649029641681742846262957561543364630479444079491709708948554628354035724628498523366699378553911276263068130292476791477035088636160823707202146031870163673563111397813252283066261361950052383971053497553906709522869564135211032867811477587403287464744499704101957168789915399237898388345371167781515600937221260126136076776365803541547347033860031852050147594641410939251930140375352337084809948257074014379329919038850854555121451158477183181968162652696278212434095331858726356510336680808951293788121107352945034983181283298953455548651536193721536285380403695618109478586827296391108236050781439523005905510003225455698330771031210189688958927235031878404432919206356889533047029189243910215634992348662954419503998032757478063063959975348054373300598539265047572344858752271084836329651891916094198175205318328484820937618055651801766836089155653207854315263672530710772566712934241196917447312597758891328647861125664298427203172967614926599130374115566051361297278016193022041780282263031968321933764695132488552905570078992796056322815967070023407228898856873168327480622061386782518131008351486722694722791323293084847907683230707092226147383791842072267020657876216157641669416533877164286742310076128995693968307571739428261884219395698212644881276399828258050359161805371035350822533956715788892253700142832253416299089792020486878298304666959609710549726265201153164289743143724118022045595299716366401169581009760257019340081675374072118634271648261126890703629192778844126247802974316336784574289197186548802955383846536398972850323901256260564608722410406821468396212982844791268539609557255251267138405368114032100660960879076277120519786939443720055654469990033693960790951788667068054236346521991265066163247529528302825172306422775597250736579933526476432104830532751583468459743347244027891697402460746510928659106752726926113382604186155830975857163199518793620097461282291257521636553124832168116412051619758660322389833310927613815937280731784787658836783042249803357946944796980789758479453568131049249598779738259059365409227136935147795322075032939073762294097369119295575513675375395985419031624333501257735238199479594728454645536439661238422848646036424281041399374383662316841665523957352716445864390657207975141683749827065969963685145301838561645410655886401558927134909029359593053394666975422758812007085129102404320481099069201373638959206040032149836757193032053202924802372695471161930547406073230547714020175220127005361012115007018512675066692732661123148577016835433587238870647770374175213771943613382755156413810293429885268516456723780072246755200384872830849028397295204016696640608610151347588022571137180518861509725316451802220623528959748652387361593714024732368272256928756771981342110287125655220559948755721862299513660705855882994326427030099146349296883930884228293782324990675731338421986944048499557129543788722092385818663841099558372998197300188807701882054458266985736682533951326606305513331535184736689026563667038148767212546695266669949793550516664568874903096252453380076094479148981555032012400817024342846329327437117544793705323847137582960497749914014987044766003176980619861148947954679583477560348303742324521991435024206474127517254053498354627957340255682376075577871185928806348990064038285006173748510883013110836669250631772988730477967862771321334961392290324963816029894070900153310818700363775644971457053594238756705165432139556871733113616416825084331290902315212837125350787809511239194691364624550802894710245351368184914564804163059143898134758883478701432302371113249807524218420356217295886942593969442136840458699695434360713704277717869063802873380640661172305224412441683646223652452283963474969212017398585233460956065501842491388685725089754106150225766698653232066102598131946881897505964956458337095007406001151259340611995942774467698639893775736997817874064294366298333005846688754717315557445148615718324272681380651656122086011087583127440776917870358963801402004329601044871956448897607210730593147442168832281638747284619728211676224485972242747884292740354770210578776592638568634778153095135843496807759462359749073204768401329309081708384667272321264775900426732631459017787139408679226078558845514577972106310740203722227835720080454375712257189801782348102758346065348963226872025945163935458144705012080591129326637354408062801253479400292764896646844554410859839154252702443553808277327209813021644772071644107706092497104346085939731988859888676238270301982750317136547247596536295590607614289681632823261111571731901725047715880239802201307104082744681425738687154451120642613912131230097043565727468271396547615510292601163593941616164096292747109942169325434005934176008780977430209632883465658955329292107574504071566058148880188408461068699809354558981496519500504132255037825034567750429403263183946650042688489929512129358771491428674289201509338601138684129092546133421838410910193220771988394289145730007563446890215173292496198270685120810252971710096448994291964682554523833191242323629432252931152003492166801065706532068390151076354639871921735981342095186221756663288928419029561715218559697612068688848262925987925659389534762131189966795867973935866891790762768301750248519557054156098040505601734853300432844053037700788972073290101330243647774517160700019347925235779155684620058720864519758162677903223629580575359897204164906840388321876469354565929626118189922916391069932454887471049659990734866893542986610658645933122859160626155850708608984660745434280413929027848686409580228765274619106353207420864001558546651378600132264470298746725497421379816408628683910616664333804223434417937363468539110645444154931587191380504219490770891420987572410690113791964795493842116712447548943317822661870772142958616061655938749360727356501529504045222359726559594554272084551383131982432525947231141016160036371616518357070019743215991965477953989527829201910636351278959916118051626413593202060983017820588027917573428583284901215130411373542707087253114916602952900124478872142821344932165264353254025009436130373470180502754375479686643925091538690472465150599994391221048380558849337666836443139971207488091608940102059080399389087647861225285052680981623222509386108067118949754592095444447546289225278212845747464018823711701645252254498885010617197818149070366125344145146270529373101430258860201583177933957071845341728734166278390283413919201692253442751907204876129770468495311037233001138223124135435378831067853535852263434356945309688233952030458301768869762226916830318775353306419424184255194578954467482833373471512981602240461609466084116652585497237158211745112761650073508784035625007585313853001232389650651370595950253060395032211144734852654094841954920974801260954766359587661942398169652745216513699007136337153306463986063557579167379505465135029749350777223989178422296777638950565752557749608167699301670789890167657223701114668529047556608474021596003261996651406735717284216464055440367938647255008758980080276460056083532561665957149349335534215717325262149974873060925548724233400669544540194319815378596936689510312923607841911488004400776512312889951377669206586004794033016565988896946935621634769507370482952063636374115387729636743847637117447475183405413956531546147894708380084034658809436020041566352126951388507158611316951419839977087559276148330746667799002066184287251734106377119597567065790651481302326981416127080048893385057470114976068705131496834819546933118793663204709276969901361877444120492664415356349177655055899975801791580805063593066612817238149280404795922240662981729571327527219592904916516514498203638330021629139056116000854142106727328826654396546666975994710412761727886557409295838885927745191951057813431107244827184273333261815617094539156672138738660768121994354708632822234913260167857913309354890442721025408816418799258727771125138877127665793034050171327250995124037951386365092805049235820647954409473619221771345445157779411685116328430581491229310387064765088415841333426520504080185090232032394098225077713395255709591060779695478142882686988470847298467354189823823251208336869133388759826405156680443702203325659013407667447024422070312085786518464498654437382654070553757133783753821156562652212476862866470013403096999526463729231054113468931647865554656413324936530571889120888615060625232407237228456058722623936302175887373740828759546301898076403519593904623820807051721736449287429164630643280494210457178076198229749443687608654412496090998733029704283229479210518625418126006832747264718235402850156219505881257683879944179472430557180510085876049241657186044661530552996253349570418455848274174491274552418465072293910192314587970644156196388825594055403015540729141137550649983320773366069146715060056904238774247159046572342799280650725567411833574523027040218033322135955923710146015458064604881439677030011430088999958625232261066805306331464938486008899130265666174107096045630791409944182044375184794737915706121698875488309944842014843478675674340457055981358619956638780712186529373131630149553593734165417889296119216145253567972852532777729799686652429327934513007060314289236771071743099407759435077312595532831374609961725901825901202802722735271645189159354517696224578608427611932254451288737265487943073663051534687208198588980206361426326908399333068553241022136486570574905296647893617916930709450076021615707536340256233529776934656840927116922481118479937476101031431242807234166183758357190568551798415977433165941200830641674724189491799631443011585839681309145712947443170820185046783395377987192506334044805569653300319553302219832728131608865161522809595743813856429285758569879890311647481738390689978661490860743241466349915092863070269836636975645096837402973427127499064474793843677134433972626872117168351172148148069272143600796079095136427068832317951879433844997344877773415307614137832759431506628932370481397289517282360352140749116226588895770417607452002803383389590610625320435827656706038739320780189973087295434764544797609734198905453871186361236123378519267753908282005787811483021679783223806942957869245930556785416939193497996521516486061431790093690808372736305385221773943233836671383542531191250563062933168267069388712138107446019827435364260354448386342583274810981305403219921154445308815350377738322132312520915435927913096723814691601878336533341689535852045260587989552768254877476015491798067014578446470265819671260452642555923533371452519760235994102828705441568210650725770824563275700181144531862518634051786222773951908724726399616272743923438326912467313972722943128795609772603312311579978616280291385148383772225591881298277493434874920071335237690468293922788902016944992455977104035103504145740644441400579455565187005259711888485985058940151510310682194647718187337496662628688316050673233383393552452834854038146948029521164865619370859796761396498877909034308360919428197574143687537183683185333553550417079602922088472311570831785339760569323987287084347784254036971080415669857243704416987444627786094713233325177204504443861208924619312725909603459598761080317869723486262572019477611715083449708927875913241561051702386782758503093870541182831783086175815670899333667741510225265711146208898403743598826028807761198304591177176408663505827856126539858004705759622707342455385297928724070582960338644719574066770082338065662385915659222528428392964447557043870300768475011301131964053336606932558196239701904982089084025685656772260515932711405461640591683029390323941885509257801889883069107980413363137086690535707573946615874491162608394567785069045573483922699341941329669556421049487011435525458676329612258225822853722095881933440158943963886647538849163685582639949261249295090697303120838316838885915668260790744422549123037005786908294608036345406055273231000504290772675216509511456514827993750975649881598221965968109465694231191708085441732296829288632345413444522127153706113936396263337002859524857561846622916774061502708130555152753084945736436239230757920806155929840521616076423935791778410575312680954118765907111013497129216832820494008893048764092352326225960056204526061741135865605801495811730489799606532704856193349647602381677453532336658020416601154296691149683697588805071759417535060844366613413373660805952607309933484757093156904021374318704682830375555847185674898189690719828235830580909095269042491136543586410220874883241716183596187159927118333069983004521319235405595286539502110319578869408855332032752185712495783349892164791101054171150955465726150261631710217501933818991610135630353995705524914429307879527012045089123290447122807664286813825597845786855208268572664944316209103636903831395908801605092246305315435373692578812805046141778663833359763504105035458104419299783057682048660226600354225520755397593324456595376610426795890424036751069560901546586675340791315421223671854408261499748226540956773043660905115445790246857823998358698530928094864117873325797907768987718867708373251215489704565429860132491368172341995805055644140650059356608012142934971646360981446219300867532798399138985455181930749702293803194004566810839289140865728702086858657412981240596774497488777089018122434106959419557804567029721366433166706328477873559149621403208520964137406901723862462580293518993014756840785392937820821325455046399473272603158754500145109638687811504506274930578152657494599057361222483269856960735021332464316850642213267279086091350433563523972694190986093324460127483562013041711592505061770826926722949910154055766464028931420729995046885605421919435599111270059946228428519316533332734409952594882923152762582051505413286657743139920790958871770431974527734409047713152424443170880774867130202420476452842271971817531464408835633254004476642416715767404768652981751524060466914386661337550631374670092208697532387592498625109119096151419306641078633937719845273039339382393290488179138832693494078418681188904941726938695304698133778099480988316158575388311810745924687871931998324370274374368719617147134584108601488909275904504200676283006241297566480640484362047330728624872754808077533045064542101606263275663812198337194461224427777474767361682096831263522232560271026771168115440732725714162266580834642328907082235386822581873814923497104860918563085583822582228401657234224111846045982101937368405690226609852143000809279123387099530401818438669392129830125367519560577252541793767703704278710269565105424193538970459869694116524706796161664994329728675303952246927984157539094753590566014144151791960509292135264366611996766735076754232395439842478084046865333383052293649118384648980784160751407654408262680156655009929119958166909399997258763611524092465910327344060604880884307089810705828757222975348130331198697161736231366682080635841880792409783000429232513936927228396295540132427092919387903622786820588378769863192609891265343544438077363765450550225517988831247560933471031753397242456683217538582182353997088455543925088907618625759884436696229717507023844887219583839476180029877821815411006907061387444261548195321121782953588191105026138267371014881332016623694321952324007186396327800768964925754999060898997215625968089869139099792916283314746720372577192078401556261832841568051028527541950882272586825064820141719436125928250196826596377606384568616515244873074320220166543486652907839005314973294972472601447554106863285985812969105809506968629462670694312797283480758999452894967012025906499800083237360003222677242641524661234107367701803744044100870299760795237296765188378527373470721594244872059552581097280667020188562844122057030729877285671086724165759986926626011388389892758514707225174390941500150295335000848782484916476976441469615120631413905481605307960869291472470534177676842978999564594410306064433775495008811529644753398049611286153342330000894769201392840217112514037021182608911547959540809407280082047014856166135145608428764409111427046147433898640778889896005472858544387804387742015434113323328684899468935465782608371106216316670147258586645327622333357021832609150796125646048622720577734294476527892114000312305333525756258093466500951153706379952324116141899498691918215657192762347358208472876847387310173323020800460935736234384502300202769829583573157956259645600715542511160538882674776732646417866111873899653459144635152403151253972708170076915428365043227592283013551413256843603445003056668608079966181355115361541485260600587638527382019589023883839987211149832962064069573685381299798141751604068248128489863579727163370710627619819661828028424388204341489084035342126821747867380846695354129460003706228830842579522992302724022404748819885126701462219137850201589181035051849031214811313590271078752046257047025994252400671411598319834507133540182197175642313962253690789397542030188164283593380769707213106743258563259286805605550093496447437264258427308619661398847163285963095496614255646434210792611888539775891376917536538170631129689998421857628518841337698803537024420108588482635480770742523010055810176624972612050555562561873760797756664706369942568087162762311849461620052221853112273110610507155528724975916540082967459351466150232398528755936148813741490043421672123876438272911621416014189376804526327272296717637465872024854128991143240789499095580887873427617749649799533001746799454953358015192698117031359450879245784048746326079145669396434793998698034316624276836822336092668661628268839755977291278722783045638967115801265595291087105933397015628957618837911022682067838445357742525996224159192450970048248645931349703663749231716704709882076089424320313786783731816107764524865730877403470707287446996559782744291811343013559275579640171131832474748507539977086313351145174251363731222791528059223906942916453043248682833204928836776013585844175125084717012268360646059380246307566785313881491175039158384732033566670462299966445359169414229418977461907100422743475663027456571123120088969510321006159167229874246847340271327283847914121087300730424002811509499282155919622683686661674943250941728997366582026800661341867239849848584258497993818596015756352629927946558737025160365362624491920295553254108894243905630580156596964504199305691953675180490011875484614400693526094102579239337829927508873457524104265725272870768769098808195765917443666238200770570816082489387457425171495970601401244867395252222706417799517944936036952610005781700708074326471820183484089094010396527367408060327624163979641373268278248406045189389573910424851885332159791640300149428761753720839541460380652781298017622893089817013715429881770217018506160926541151041736548155050182574431678135847871923048633158787181827975954866087977106585266228248875524123393107650995420477729565883810891355512338899269850911084344738990614354188906850845288983411930049447035989746271576253191889862089857172448810185185810165107817404641730908065062478946363078080489981756996384617636078055765683046965274813324575688386140112387673991988535487477871622495271364630251998349336649202377785692057376926137371947635731033144821781740643949863450564060331951057381620962934344135112121777311651964533480708943540348179056627404455290194618430578596705667407508016057951654334326577198769021143266028626440895615750181047632375078435592257366235719063197743333299142772940875061295301337109956611101885672997267819457572995156096261914098377356677119780862354125034710053952040729513306306198869570619083439624754291764537201746808004360616936279200640622424831745657559519779450023257546743171237561205980419620338631615150940988726500535782179976209786022184587005342801463816845685604790757357487056236225387195003670688128823798548387494448590481718339738048046240177315263790720778697072014738754176706376952919250503708035444329125018805307522465303583031915815309372624139707403163842218927303972498734747750361847177412248414079674103216623874345210911542640311148354524429431765931828101980193547826841830330565048093633864463723649134620003553372853685571745536755601416537085988558147930913757827196874558488068423086657844416102696491322419666445177641482064212444866665663318351342823810032493056805020674561922891157364628125155121891008017956474345465967859253063789475117517726742276610041109063494626739832477614559326330108357120865025878138448709319561474580971261042020327888593690676970631259834826006148152331498486616063878857810884476055205782258981374319513609569078835052688329472337706574497523451834680094601229338937990534674155722415451227714901434737551283290273962833936603855669590630014622351980039485774909911087548831173970710602887036628750549705624407570995421729115024151707779457274228240638158290640012514144290243318478538727450596799270161366474115968867987651282496805939538952231643165828175352538404749390970285491586575883376604602602661640009240391952189908908842454355037202664358269176640463670757586279635909536080752870244524020050975594184502189794318789743129839976718035776305285486497890070314806023330720891276190366187671089274385326464022623052682006507718890858554452348578401706678587647399658535903240851525083604346753846820653592620405743930464503288004195043799412379499970477094072998025169812263335336778912879414900873976754396108550243317557053037527863502040299921373796599108256785963178101629182914703959559918156879936644647226708500078843511768167173385076577797164332910329678359834018220268570255741557258836108536129229179721137511480093373581091269049584314913128983737581138184234578772325275553548869077533144545839387252510724509454798007117603781879981098683873520824837870592264829566643998968280761708595146539276937744420227908383963879381828117163096877179751262287857713110941810588685994650951138803869350839481843170018316366217649054299795397988747934291505283356914856689123623109241896072529336251987827880254470377929320448767212354584857440753597638616407991947119786687166782244066767260967932390284385638363508918825538605947292938466504337751820856803902237839648917142724834724026537242823773325214468905713203112907526959949364359590066072892932141386687722723626778961127458544409857576913131199276067643558984518438359706593746122502925094669203889243785619687955004166620915569349914294506422679021262085453839123089186167365495642482143847114336684392870419602938920118246622708656444066242016234693128979497343323380110207436542027081345929742151339366788806517134398737200180354088377724921515750045837287736830804271260952782757663303720496632124962134993788251626032989053345925752632699467116142520873266849954965249944131126163292326984547893048341172612536272743052586258441391652561623849308827736086119141256697457107615173132017068523044730372888999229616227623358447728605468764159476959246465768820586437622353872155311197699354644535250254480235005302176456629597026745101603455691472678951721966320027876895982251227910883022840909177239457011090472534633965021895645360811583427851479360052403221126170728732073391987820336090252179298096493716029114873321091557734541849675366949673594655385323432916227771041070806398830283189107248942578711618322042658548107466087065264062281814453136626451553001189042306011977260053179043775926442249763124892952662851807181313955573789408373128338151301080865612169298611710845956290237339872544723695381679891018041565369034754708664510859272668496522579932851119049171054984688710068615007467878966362984818619139199079966603133320639505125858009744081102892029166278170088896325656285734822435487941137152145777816533698498534157187503851096932222423648798625920398449662611192722380239692554480833358745967368676925731440843944706120823060500952299615054688535331186642740735168233179847139905359030625245045425067185014718189542823146142936418906155198261836840779533903868145855537115262987024412152312557633437936053354305491010762864316276516906238523981903485058785082657957132936371537970677567961428304115762637183705690512995126548905509248426753724467344833955167809049571584284904856320354059486022794517249303731422484683355315573109365350062277076755765578222640228608361524332825569986116870381933248060034061864071904606464516380082610866294917622469456022545273599406150002999138774062099059405099187367698664802868440790917438781880557562408072229031506880507666853021426136501463737243139788730012608724662042624002203859319169332637496901305077479445704531568977880041567656666684862546254181380888540191475152078894544433758394538051490909869772173495800638463066155707378114830316084494952186043400357179406333275662439525931297485641804262359267971230697882553840790349526243128118842864319900446092887239346028731939065430229207015519726220694507813869251540435539588201475972078384647586978074490250582142110408725503904018371104846492500890641275118587384517322301820844296365218066493831000946577690285576103161736085543778071264479176386066801738869397837579111981303600378940317074928137552860721543229332680099971516940564405432967755739801058808364884569741904137791161933516668544900816899443537140393778467107786978282833559462288594588808366990994275688948332169217229328904710047569974209450514496137615538514469092796123242856555439788229481100788561025911229986159284862519852738866012506902561497216037783129457195284319412481067469960274190236059579706782144384716592923054985969281916431092893232111238950673810345079850756565483226059103116640502748272641461882511132758093669617178899996009459516827499746962260055365683694484267885177906882074529047962863427688023335059041675171983345184503823563573721947299780950331348751762302238749980222843097685866312297540897054248255335428540985700426505007288321521284980937697784500019248628545461865342050056169000513802423502256876824132045577835345043790142438094573747420686234167300564791667178614129499738375195604194960065397444225317294457852838260785524091243282302964219608874436720368720872253650217013205409083653859918817537645230063783163452136829439826919639765331534673515307730835185267313509338857998334580893845928883633810268213128591224495366394740472913383705949995784906812852321322686944137272998518453669667316398998807459618583209504844119090143655894821472477865177328652202815431549917952128035397916031692352433927526453605900128663954956884758599952151135086803461280977370874063587718946154784042748896856837177100956125429928750255025625447759474890598343306322893988551498224228631970818235390380243069957808592566867620834545079752700691741373257472626512313581958076637824021501797944020044845256852734686095739038445242447004719171752936154741608976648224275887070235397115562552131195802815427348804975943800545683485075519542393753540312227609243055007916154028792279810348074011549857112524216873438463496585511000509667249866789017183721613304011856155830083742345847233684856398540528172010976366591340848595330465649553312182178971221862143819200554315418071533910379144918914493369762240174349388383584172387698250239614181205935352026863352415953477141973214520652778542115363591114699559106409546378162454017738336035500296263087341032118564512769564877189339869482908823771341389266699554875232482602301790512072499807592486016707533694396577255118370422369949340071541150983167372160813316421835186419364472352447561132473822658429013159379302893608333315982584186976777968600813187445570431247609958439392953880789251931927176024684134287134915679635758386291902201484286711554623251831512863721333695586619342678491385312276660102237611162337520235200074773447556445404921961717219923377616855641241554216258008637664953660628155915474802398907301302671399231278703746315216818942849760308236286099531249801099224723352778998515579858742125077657356944966852439288819825006535413117506091882865080073710569407428706336528193141889862398441285297242632833889758568105122145430411249386817610536184082131528003163232678653629857636124554315273903221165677440870072060800137362715342258281610116018924839677077941793614617654802619740270651997253801908991507533859182797216126049728740033338027514553085035710231880093172538432095135369560471026392635411118202795526017404520088551511534556563470923983329215304541812967845888467925891845383772723772558465127678056933034839869221616091031526031144490595191967011583867169112996818519895728972834458116886770878956553941269314352564469598685859036694049329163634276173026327094060337047827196494323182400442053174954217479830873596345448927981595873470402795188078178251508911162945930842813980434998216096599300840796819174165251035841906044544500270330848751434137084642480927357085959937980779899786108784296234001133647958260619436143947816496556745276262064655944096699177113890184474469649732782464662664535709216196477083194185685047696417112203455897791884875027361865919551585897578286107481510350421212107426957683626191374996003091949769441166542974648296970227432784123671710632236033979700842354188659748428977215306953563470305972562460666703181747227314771130579917838475426279494003010300727267730220692041502995400943121806718219736413558497276890125263542617006847310399240462361389039471558874618636544774028060055398606465356708529832150430832002662616545147292732167319911522223831854373457231064171347572423954745556753181032677272325726902405072954538460994978839178122607379911700966896920004400406269399912180195824805462115165611168464335546470952219433350313975226331290373814755023931656583453877520595588533531077261978588718875220393039847306134300075675232178647892619572557542946707414878105003256596345734770497935986707800171650723031693458222203434750307615888325960457891855574079330980743935352626810981752573451899548058348024665844129677265315355543644963224282770721817031211157689219844969478607463504968169760259714660930787250725366719813651962601666069797265829549727183525338998848775887468450944583432900935057852123176648855400136598545980443962222991643643318467638442359851052613509288769332516861359421630569167172868509915733768633628056461662143486970634645941609993009450947650536881130796076785303572926333187298549377737292689661382578004122358774451867687388116794927017762695701716196862848960717938204257693224474812422778351932543718281407740957415956946070678933240010940920190834302161696107221063142600643768263029836430289732440837251149955697106255578218754243948480836958218785611553688369804841104338294211778821371110272796316079681983750739235310705278970473237491147858477213256980568342702377644525590472039964701215828820500086352524565484455400491207829834041258669667856004624116492273128826842092286873903692305288703321351798582431672040270322183967377569375298451992292024040030822701418630085805274958104825011595842366395917963655689691794594576925354494283454760973130821569050866800987825671282422890753962835239461141036136815489038595891747971580285496739709586169642509189201270692416831622139039887105586297354592503680978779019854529137862806991739330146409800298469107705205623916291406226399095159402112222074240220154332011291851802284898986279978922760247822488629516016209174843872610544400023499681653980015031268589957747589471977871981609111790993682507655321586451065663707510238730620973620349912817606709760472353265421081673301475986374083673265308786115689803680336968007372128283991894863558005761944686767930474539938713751892297455616505690541624920431505931878916463207977291494941216796863764678001545783291721269671636266587348002773553298355668793801238867383029951956486273218516197103183928624675386944360185889493898937163338786343004106589971203410909798919399269993520263350581944708173070131913916391115021416964515402165733180899932009784695771708471502583078707364347976131194437694573557386632337775016537514063452781967054241330645764287951506513425202494327057916923160509889080514302025095877438504591271664449215324698191527021544680030276862067904440589173643107457093997844628569560428821041039156394915867241636086905608129891049888137737154598546388317839729000549996907042762691667797349397987036698753379484081488309225681299370728412907736503669780891364441387364450604992267534566133455282971783043795552467331624502932722214117888760069202013687555221415707978895845894489108467534782789394893774778259438327980901792542489591765511280434506821925552380901343826937979622814665754292217963585244132699438939274618507492853150130023584468672873196553986454434257912321850071509723968564817407052761593355984968195259251925127433574269419022531832525059544512391998903418337985719887195805961923385108612464631579795250878296431417146752238573899002650978848558381147361086455620937913736895508420879231834344237920344852420326728898507707882146952065893466003181887623738862655557749871534721784353861240816021140659596694471718529914598530997951948400606804596341924787751051693461079713213178227526914337093763817849082880746168070180730229447106514176133620818569782256694752923159544549682771993374578825167368166966691039731405958534935992389992030724957533293284876798180504894922876403595398619893224018361226229521952989625771408945166945101450673547226999317678533458939655026003540062742494006634961465111705217696018187882480967561801017187259511388305616136138179266932535195094190496220196965032795321457622777361970249792010650521863920565240978312984710395318688327589193071420662794692990328887230388233663273495658510260202515705028271014923448842195230769613050862078467598931855122636530344039123692527265577359847380379879645072425879020151584761224736841066869487801642475165144427003849737081488795980548566959572826982254200823932295347154237099736082144471736068402679441525666193118850305878862150027643222026665535836396246550933064539835772718853952916252749651482415249161964240207181321868095522996043264626529980656402101140414091194401606015319931011896816788775792946290536487794647715350851374779998551259469845380057188291223113680156720088205701671757300036861625023307418949633974064360301689083810045652700209582576701731398497796308244825047279553346775883378162995718134461390417633441866668020059851276235853165569546560216918041634530283240921640525752569318145910192473093787497869168667317373199201484564082668349312192686549725961143906979042749255928215352450926819837931129700147975419380801545157618745777876565906539390900870329717706542472502093858801184304970062724150084520727958963543328271877069324871491150145151550640785329063842273824941106859800215002676134021256472304778505600193609896726416782900171237692913505116477175285129041556919080241381095847396341416065067371677998952432510521089940747451504615344819542719871602088564468193187565255896727088623559373835501304518365477859234067775475494990988251230323709578947498917980185258272199770942884788522246690962558378267728587603401076633515205797613757885028097654379714011924458776822111966978440414314665107943378068892531544276645670954209442608179761910571612887058040824941586349875938064715874120550113184201308549781003900284796384154471143480281330133170957943761958665066544428705668942869461633383887387974666008330936650801072215847762880866650517880083542297205836413757564811669053311099735210059512813713251098507642385270360299549725846981544774644248185681580897058394639070745031723916345621046247669257426519948581483000520886686666787078955752278928666958816444386823626813713759886194236925209281684359623411365957395153051749217958949916353650089981273827825536352747736464807387364602727498409095530164322849041699040187288529601674924389627694607438907485737630004963271475814609453918612807041205409329537628707985136665083365151320898070410326041961727780000448945436898481927505693416734704578700883259772770013516738550040174839758429166832157760170916037282759182629955307745618734511570281822225632800874484359488507580202857807708618474010458969601567820837088023465315552129014995684373748301973052514476225967892031093803119895117614619889282664000682869257602742909159130699916683989333294873702530569102902260725012602752304885719575202014107934037441786232825166772200988083448180597365760567351775859057687817403241562293945021125142464817084958349542285860043865547823808329151655970595155777385683933494568877283185472535492449642452003471177342209686974564118947115556343229537203447884607303047010628712798729004756816064647142994859387257011789369885593771185704273337622499498995386349387634076458455850231908600994432082553651647864380282190160323668270951720910192900280204693447160971194863288784028607305261837626330609437694382884901785951943444137152704204321859766830225354370442298920734171656743904238748774881724650961421524468925816428976503992056793049068294257561812993179151502425143603020643772170992227531742170381314834000921372851066479829079611801689095904113288130366542697033005805212195662365640745667504468626653534226443069299521750037481545993422517827915718395080024132246356719854378612643232358783505680825804436190532080300554692185465228778163466670202793366856558322125693785902126920120199047064343706274470452263580022304494151161641527147810581403121484002233477959346068686180503776766196975950021451475133616237739251993817506598596012638538451371424922531614144437030567991186954458207687922029832003626094637045705475777674357856488831461063395372654505863706204498616764658562387232637662608558632617976130003331578860395441645047831704653150310488588461778009436841383004777660415152267040196008521175784943417291982474008256937628411512285468049076555969944946928659922453706496762047427725907007794650399694611131959008472005096130777120526263249548941345678925973967419902853653316395447043235629764826577525284548609879972097387459154138526238302812830193178053078045331457363241294115978030741623069045060063148541163695622871796814711061932660686633535468277799554473734101114061336095497407197592274425890779839018048341204222596496347076549554505255203962039880618486506474510479630002403685184784628239329385212209650028643713921044471768353311091913820813247543468493249635951629157386459761591814491632487340725967351417586590097912347519471110585807129125382826621565267947226759369808201100076037180335910496698419865839294518424707220619237769082239260386657849695210765594481628224556902318179185661476803941836915012441641534676136935515253324430955832326071446385228867695478988285336649970963476232207239396236146460988771400236256057275805361007826206859046679213774610673440525388640375261311517957821692618970224839923072202755860525234188930245780914880108271459287872801061780113045967888083660760389366843463002897856714985194992278893626974092285551511034811806373961708567050719241665002400933344532780526390925231243938892236753292865860045736253285924848477621164237612372753674833528382652463523859488290424655620558310354303185367264943871789788832437377738376316490947879321817936693496593911156635168865451291928245370841288911086866865541712532551391302645374069997851449346886885230482866650759571559959112435158955621022691086067165067241164718242406114577878105250589212522487334429383225663280606945707478210827910707735125273641596482013233604849488865704045217518925107009025132436459440551433697105011425948835191718829585584399065952300210196732884699053008833009785355251828665546226759091082272768268895968645456999837629150281734930975186423227395926203795476697966076974067388113375650235504110138024745139151268157574033959743627561411920085566568158506981674132626230246761222292687687810935463496035146818922946999520884417059673357986973252576811439083438193654458829293637124981864590810946216341761371509822457980617954695561904634674680952129200982529351161871275025057560778448730481632328646319925406931952607772307141758654004159880457821487516090590496326150270167850418903451351931590146956192336419542405813667328462845020338361650569586665847660560454753420378541494061869168419594937568642767974219800492423499923772360873689774364393403415409721000390458827095525884771367370855240377164240033588188883529705652679021536506077053311093117448149320622074307248514329961384118415423700866950476861504559991445329808361922938303558868105529770488144479374826702263152719782268742492797945579729570579487851704294876050837879016495671334827084711594695053925007086475695924815866494027251558143663660520042090551164729866089247831811326996690206474054812763647367014694753453841927624813168502630489920786018468436121924621425871185476526272238185348690140905918985638493201617169785615975599481641367430030250940902036365409301017852023728416772696667014569587030769905661995666861137090736175634877985366485206555468766589206507457852851405224690741845250294570693289359926106170919525665358555579129680703008281414627836294023109445799792388987000559583482804337116882972927489489590374598318440066647536621868981925282577009325513022643424634979061439513440800410832347958638964213473793885844510045827093553136869701713486118947752006205545643920974020909610902584484551754776719732475565585289467018959480375849227511120300390919314964553603637930937736062664400173208294605556477870735649332943185207005903306836633522798464932705780589922309580734305586207618762036565369264798493554210539591401573410489754460889465613979467717035802838016921795918122613462548834867731303220230623695041744647446870403084847304316174347834587651357167324700690498777003539725078540944804525407100070008349965545189249420734230129183174843541953830178987188594612965891323742459409984006917691409796261919979313169504551961204733556556638552261279931958322199870208171085210195470473056826144867232421593082351281240657280123205227707520906564489964971362782736188770075937631848013130236124173472142638076531915190583414566713929972532436535855655513881321378244440149817026065478592115284851972050267696017147150949504723628658110051885727334919308100642140937075341056382753784019072536131460270509647964316710965654310945849236232137707045041252255994233441994898855019001983066128504057330248918915666493234167196800223637968099345504099886826850021264452998487618401363148757382824118383231015448596849962879133344031133980704023634529058778070253556864744456425705968571350789365265421521822359839236221731697276599486320821375020437114139718602882230170098173268596205900895073317034017115855754746537255513756791515806240374126226075343701831232083476800555717710166928735972457070169751997508251017798969931939071711400828193386820341342036224858656829790185880386965845249746975861216970630281437123916451649880807785014528937988377594832021943486704897606430452948796087880140241912788141797158567954396198837335276710154088536596998638060127408730597644344880245068561855717327261746206191189540095807016709706672653423474047798359474711480239908103413107973662887008427542043846615834993168917873559408490406151769677295572030871204816964037531512493651666823986759338267761529272677314909828601703886321377050794218765984144133898078718699552603603824358515108542338811920950480758348559962448941922035924730915017209051185160110695293624857078722197330068289883825605226179100807330835875522008532687038589220015496353004082007276776823464114708240789985032028529676163367401714762404341938379637925835031388904712954019878336760827768121569053908578709232392330158507277251548329236075152455849411680450644796745408098885567645055783584935372734453483690803263933833815799024488686240850523960097962901446473958311110501609955200800242346502703265375833515448012955606006645479583224383371798274248835226649399591539546306668258486553054250587043665796363323086745678890451773701828267988846160130925001313909647204833104318903001365310761368902816819708213449224257289153931585977842713946533399404635642918516533302731634166942226304352411271125746867229385538785594735549986063918309038055314508166463562791861740074718518586929700965712883052589697031536705379411975520110154844261826044058143299592241187251737996360561662832959498982709197447598866277044837232419622475005521369633960722583114980660094759759242700606791070456828377221401786569067757699545147577832046541567381969244752098622294724990120168431314149790282924452069979063958887488019673799847070462473301140336511530994285317312701003588114653854391583441529455819864101140382691011933338955611921878125060045776158372505413646509754589591822780711626476710779031981486334279939938719403307213912924772232815958490385234938878657926147914173729262319129052435879490938948068129612036520279999644382199519872766624759680421291839698091699244507168898421585596568245610163702241106538829216530720621920601325175889157292067312838222515603720847031109097538309541347021690628784893844882145317389471288563436909075631290899320462046928064857656801159188593391051635878024562303907411163407480259556967436755399065259174680404629431981693830933146887369265359652628045945885888944205680253315561939457328041694167469445282706549160429758300906501072270608478918850201054896540241357095481775741899391064671398466657186769897103015044124484101429776609351531862067145226301387201012885026152368437044602623599357969460145961807427151142324232689435880045370455828925164468484763884077660801373195203190406819090222471768671419756008476682987694436938648581769008422241352892707209863203947274557909087957093964018900167913930898696758676743246685295252015522352993155244665863824175322782170487891662682396896721830933090968469452754433981080789261075416464186495853194622531387999420242992514709409726439817107911964022044898305322901649551160901146463529679938117003549979438562181000250480131309239763377788972943334160990082011852699716302958795268898430108015354846904940205737519064036892862973269677843503854744423098546197476154762039265705724486816690788568055896948209264311992446360266764428798263252968397796995562829110238717769635920100542253655147539745883982591739824488365068977143503509784802919885106574878145938644523248279000217445476193133999242977029716829793008908616172140533731326726643381861105598081764335520174259019674027372305871008752728315111372924372631784746376219753082753348306490556070270793874092030716021931661344514028947460073795953070424633195100584043122446949756312569378011591949464673975246112012299657093863926769417628104152470275851304909538669905982437942777384986031619161757063317366595963337431701740565463316195462942343203500083277189315604889120015490830126222084502519338377651573856686118555864740689834195014844883639956340312575901804037872973756940612827537088820598090036103255198918140980377396196955910399579697594263437152301744904352291933516742558583720924283395000575409691191849112200985450575935943272390805356565981748644378124912252999979845628830583385027000217982234139722284554286423357746599413572333841968760966416240015404599219670153304019526639576691876123731922144852489537294209988792358795033902364293452750357494446173100579240203127911888812619691618780752305732263580392213175614022282613590085993879143380186306948435444745424531876987882582111576162105778878925801902515100243656671931604405563907456440474954728995009717494732972700716417173396333738954979929459702322294942034015754867993028188595934574417763840171657630169609780916123500078975524351959765283568302689511211435505162589797322426404390289927575797242052632689302531711480116217074905691857472635820303917339140582196601165076957373550683463757961599389366657920769289364450778722787594045210211738345866465087303983994750989931671902149642852385838576390424782928127517738342406347698991273678377514503568911555677182673701914063774891631678418260185368187678097887339569647973140527517477056907448205976389507298447337539337399691965078177620241382898867235311052272923180065715321979435496481920572564874198206165139442646153658826796787687446827279328383469634172439968335546221632667024465919401082505082897309269640033392899582940182768386515763992663699193715919515582896473521124416730697376865120922298708975172020874748774968530906167569656634182335929821709685032018952373058354014041100330686531779747665290294931973192566856132993544811816320864887910025914290785868951820974761711861193377903361756870507259138401804362354262472856450626579901516552076269077662801643054373687495984217971418518629283242990376380113635846679157168421515615540088390624842729435538534712694825363499898199283557362007282851876057989552331052686353587937422291634685657543745696092247916934885681121420171340036149791915883197542956796387792442441783149029071976430726127127010954091494728636521767977531805040523352564746081069823049836851977263723592374083668313181155117080007392726912858778473679586969588148996829967423144053764773836669281242000642169475685953808398875448057253462472736113262792102239455477921627952572502236291925419524642250539925382976959723296896741491911040995623691564327635935261620965388088671165910758273840495963336423629213554762375525624329234866515563847976772611084901751085445860338987395073372490468978447190802553183441369536043442086371465003952457716355339498298636466529856538137066379864944215728802167480172578203135992910168183232323039454413281701072421203284790762116995169983336261822779233749803328499287643550165004333983580892511277196692041619242370005855532909400087972694375701572632536575807480183222122990444393448598504773127963475012577177064526603454055875639358037834811679663197362532473736509143168130603156891742161694913401538460458486062330041179096950672849085201230897224033934562878956856169834093088396212883094704993907772820780868587154134666413278621881733797102976304703350658055088233732602102853175641734680300425500375755277706971860049302773084984873375072714395981544530764507852901100113715097734665211122545308111338244227329700740387209674882712296011215855243418206756279979552231673676765222367095425897587108743850091169760141257369420057012130027097822403072563142641618089075713303155095392812695589062775180841448590638653535440377154228913619505520105347787033897502027794845431779167154408292212042666630460968414140236441401575970412497594100557182923327691834919817565617259122376526044259224990916053348884335484490957016846983951915887894761366708056540755196886224098801545621348572617853284110732059776015277682027959777356904309459109544861047814416097048304887386613556038434129283673989235660833544671323951243603236614847280874213965027688178865237034913388827166728439520854637616585044438458149335913784608141118973664758887889234400066576710673929965129864442269450770553766311401989651672372135081869793923255570119464562243384440124916798625753452753094772377988742081876443497586422113039601905021847559792369257334636435357175033106096550164469117365730361548479865518433561550670497290265034123390112425981744195799778167188674866313250818931083748996724230058554286961375577182824669037820521111439265088507932348278414058127041171167877805865540990090054318000590806968078984445026646595129437167264276065120839916416647531697133782400977991639717421803540900175598702782318179332553273309429495333773477031061036058726693741256088323672343377447919332498303879326288843067026224110710919379974514555256228743334916546447184915296705921346972640043605794228433413393712173733117747477417440249579954826855563666367158741638244276133827064204332974254780941259157065104672764150207812824005232051021977685323287554628014128759339344041315238026744888712603153232851643798177794350101573074257262281383222262835284042758858052699763794669768654924343117078402490203828278535909770719949527384241960984451922200014354896933345627306446072818285126062613465108332058602925826450444482582616080047741665811600743206294027633716174493827649271145015331932188921488106986764050399094941384544317223960217719965480606632559166839609040819069046781557349650705259023676720655421291529882282493019406099165244685773661541169112759833702139893485938452436667241743501625847243054689668779949756960295067695582342917591729769524697986030020045671850452624779781465287998222244746653661293216902897515863778382259464066945148731794772947323421962704280226724562750321084390295311316561970517464630106004720965200004245075787776985377819785020843304973609750711237142509828968429282976209347441869121567438678842402442155363025258606261341827211184612748969370820488064183464246961734678986228406177430421224506690108832727545510640377410498894863810345611747692298997844300480674175523248591774815765622729235674407630701390454758069842422642505788717306947354267528688106664338440022436076769589938786639976726280063832393284954705137207870961550588363134928253784632671334746218496727854055820274524303527416161714367853302748077106805122767394973632484871678721683753977920414496074231946344437675928499804122793359554869575417906398884032199092719763981125243794925759308358745205601043615213775194394281976662443853261743920229834672307692654174033030185481057612193600978966317326762223773534360486163618556393920747961656136680574383158443925988751021258665609392689140731964294675549580929523812531823524489205042739939437580624792434055687448317249298271067954391879826801106958831665191853801670478351277388487423836104404936330888040120004041302333021394184938134168172288448655740956780028705303703442673150021561554327837159341663694929339775420482979976299448510581901356645134236955480824769351205467344579301480503609890040161239235909830503938295107145542433813307462201111611688854804106434509164118825475880538895709659255487331941950369973060839411101319185291550124241382166973526856011165492404352133150815484325202433975309803571419331037279085044778475232802172236205952418355888782064963190862703141519391800137696613826542152227489884382675890071743057590695164906358460661438864405962272099836552553679427358245420948553344505809253439286103304078928150460342423635122031110563904437510526725878496068141570193857309217764889843974900549029344130638811075531860973834837571199937526841791627341626745312683751189894583871502935546597760329135003863741465302467264878474309488072678004398786014988609080094041325193693562894852644127582894376175298555238925242814338270277813138359936728721434462829463985966602353994977940657850003961634013827211941502157663792223372569385747871055483495286490354095124118323636140428497550575342484703318670033819676580257733332325507870622987790033033777926009824564818114537315071062587345012533400472858383647907373562930084248732586340949897149770432583710185969019706559492376569601150994085409738909735601864104565894559202096969818918295863377102175228958604321184500282308655257465719612938307549764681234318624578244909239897012885416627670881550905309911193935073139678293053423652014280757777692757390456070316334577310466450441044450728205893808285241733327552116020074771866039478009508622195965418530467925693070179759745227774348095832873458037755323854115725028666191484428658521156510655840324801023450767404938408828604259457705773196349364431075957075117952364439299070558848276152963253254859264210028264313183496092545268023084223076362359815818048052192645251970331677953592218475496876459019298226679274586233938607566722759012274722396488065624756010841615983127879605164018843529969487484698512177392720970959077827006692556978399270340771187502403323245680597868578218244688860559515718405167206628763887758977711138706407059438899022618883458439149597298643448646155802335297489532319989180540325403188299285286074591941833908459434521127597028930968578815112662194634260782522929922024687853021234957660485404638495575023396917808446798300343798822364462195065551475981944569677049669396384935262027514769791424236287269168242951006313766772599640738363028230853378752007597795278037576984549691497086486394173688295600904536119524143129573452284740147121990408212121455922258195012171773805517389629353001547642962931603136358015329821122452838760258052489695402342072651751809763439706128265180489595079497942675408248263276752112909397291212624267370012901191102976967437211437903098032935901043313206733468142960665698288783772074166176951163633255554031052710982676750702975231016312161593330863378107397876345402892433368701584740107240324608283292849130304121281865642798848831638148444731383556879325997118424432614500581794819783652040881457775877874554566406246251048756363648789426334302714754601063914468807896136095816525480243371933127025283658767931328792347680519613096969041254910395322997379655581628015296229680801571416222394174365167282326810745162385041924021297375633117867407633123479319239675780231044108302292981096996443280938942216769707261669058876596026981228603302486038923497311771760509782972040236789136025660526172098646272830147020892009080902816314215429733595669327608191495205167316305809963551444758500894759352229491111025593466421725786493628718080348642008824923345996037376001579617047621659957992563255176960232156959259385941566227911177127248253950508383731438012950117566157443831689992906942113180583692672609742799566966129659224019620235851685604473370668385788364659225171886586956186438323399616721103646111228623650997698380716500914243167918216044031238179747698643845373210653089789443362166296360435942306210174164405669548054668738445298801859545758900414145049048974876212428459928148412436035471972487922612012160897633603435356604847088236462296594919384965940413159450897561573399248875476586363519507584488463050795140309211054053655181478357131490291006857869998138987562154224193307283147021804248549157534541827000285170058628739303301934215985616546753904521353089252993149835917623431293211764792232745297883967099408042262154580845487651160717198907073389252412565012832637981063956401929572899474057337366672707790760855825726162926440544355680778143823310112240349793006090079262437768404584476901647671935774582545769563211193079374116209034021196768816434170502098650310663153189714364200864426771067315599038139178082771728217601618326620922929775609535573376659362245357849062397547120473915695213723026850673826561855867576239311850435874335404602654462487014487483046265513091174337685703407557892256145705343583467878576371198473348331170378994710594541082186557183413229678778550490709057847770348078624993166949484623238276609705133996002141203997593134767521964651263084520838649069734326563370761379733880000168276883130973774077870534582597256053050423694696601367186031075954464327658531960505854280211870795295848120384198632697730693140968688629016531435010353247307836928606094634033982630549608857599445095566291693519042969431375919620521515800983856768481319181332929817360101294153266122457551577589986788883679384290803400991339796440735586228722126389588461213323442613746740816725405771262429021542338231126567917789763973151515115719100103960511015827050781615865663860462262643840002203578381223731477107691283784945325897485347470149700179567372101131161076606823115983730465194607081054811282836737428534356738241454901081434761569943461099956457329145566111556563023102524051679575993054284018378972467583409327902403099472038060823176170259849909420258219723662469961973112549662355687101530949125283885436063031433860587293663986106107499164854985679254261185214367749355471553830589884745958016218895045541096032234850030006738437501986777882798487883826756514625301195051830479830346788759591487438126580960656744058092309573936170170002822011632191880000610373363238593735888251163543974370714210255203430333773230596355747422307188042075410533768037496447180231299877654408219432241261052401366950209115476842130674941417111857370504396389546639439267795966984945597745353390924364831728558718103122574600376299920231472583276258587298739607489524732481535558001442777228009503651055822261241050442236738210506383309349421102382090613033183574584854428753583746703321052885609740618739620398948307580235323303108374344876114230050122437745363089877856920752483131679156867123463392759637949713780290448891047793297465693160073760036635563339203252182930137244288867987463417121597111220356134237462779001463309058446872819136977012257151658836345729028010719705286551438027191365061758099995221190311405103617371910825047368873815318724991274825645878252094255929350842397128628172304480100226848700367901952114169815442160565352580917842742877131850672341101173569297804050703397611064551761019761664734511220957726335488347864955901474367253593255616920674806396587017768976976197806675405005234068837692125513885123587174962940109422270144308632858411956356354952490036060507711184317217684635719948139297338988190547871756239441678031037988211114115226528090705355920369722054052042549036321988174901804433437718803950716003162632075430793903163371686925116651792498865812609290989262030416616623273609252482961526310847752356362573381522589095268428202528519920495785015678715791129341351198754225362672762868396814029701230628814527177263560273684284305552917589729686543631637839406537255117038291787596562463495015960400159154866754761978064175025368239504448897409216171212277939878853717641708786430056231554621206743495841019823148889887853731802171697865676605346267383766533988323287244474666356370263582214689855722283745792995414472265494164199367607755231462329623740059220256024589891620023214418402767920784728359555844695533632304473021561014853097328288117808275554463995608868184427688960545943529953893885419598880205178129787486251306042472680068338770415753178619541258604613042831938610438339244023179961762743282207374383943857951782252599965672465262892417899269926232217960094074235571239115319858921537030367871995267929862268511788306935597175484830493535445287082220886568116891808081754084700654341182958618882030935765834151395798177103585003516141868638353706678798805582969850404753886253855333656898491927625330651191857366967307934891120747040708536268035353397685638839742022126752341377330497035702314766322441297440894616892189059557875673863121319641326249704390735176712591540329181130108506934253814428360944488708927284747157384805628239353187081907394588117790148524882506405983190959925274252879197895117321147317666772869801427693211915256249564953923798417442409140390576531658521675862332042200674182669729623766644169685076667870432000422246560564323353328492978744465303021114305861217653210966098272263513893912237637352915518545645892600485244964942624266277519544034900093367694077443989595089198218695022536160929549088965984271339338929195049981346994074372939288655238603738939322572052263478217525850571939695657663931847883662858828258995255849269556384307131258126134840465881991675441741485278499041902664852524686749400703855671678931549891287205413235966621433536312247459329193413080258888286933841739823893317949010130098092177329409843296410155505665386852572554929263958035962462128931647718827663980578675741390911648216272101102650909638696655686212950943583576902583957478592873514352090507173760225575375302951668371462215013744421107886018574131373400685271912508073978787940257790843344031569198850813748764382754709892589597181341538470914614915206896522335168686866206988021355289515689265526362231572375616879341163754501065020791835383595869168946728870553453679185010264366919302040288641743175809291786443210769802978994669715281813907152390395264962644067129877231300312568690471085331135897577411406783726623854775208558894324436373118178574449975689727460401764726476091962133041094269660317064651304006665105829064233868774891828063432452029117504217959193489272154577904857931981088455789229593627361733218169959919543096699579644752923448483260134279149570254288131304881351001364693288755885048725360741381578126601682258085081317006077671511385915069357432905281416992015052483336160121508336358657473743369653133032713903271283958614295956304741829862380178195644347232493692987133066689759123115698352526704338617226524893116018969641612911434670758128014862121070228489904832395745979051539745029947739482293819078738916381164594597770319304221088267348890556413512660869270330113627165471708203023307466341712998572969448311404990082038995710870423633133139689247179860523352787966348258054767930647911372224406435448148865778862782897001702207726414426196460030448380764351746499553418402187335418774293186879522839340499525999541759057427461371974721415111165839701628274308668466966505428500767799269896445249125583900534497985505059541697232281149537389701608461807940729182977897105102133701895361040935318276397250886376479658726516096492191134533459612596126515235354304213072343595723076160750023628566457903985923959223408543616949985731889925912796661938497076077178747165341054853232350097824110233001951384071820029553682539391346514551049824979715667754730127677733499628220204136476467511232437170439578542459306458165025493286406269041883366836601246790761177318196940231627428342235812773959122142356330509319222366398135445774499888580804385440948040073889572855599058938816703968560728792647891292640878977831520765571943998183988252394310217417936766683130216884276207779118547469308466823500457105794722528441757373893464126575699530431058768604145113887933833612674828148256290783736524138282284470793489221909134928902997058835717636113616278543221676336837066738812256824218724735679182339977723627305297271814078402746787808662764605701555879549240583493863506276286312449283587326662799114579150410138901023557907486128449244066215484759516469840818350506927509554714335840228889982456281601891319845865020176261313454323754056590737603835582763310176775349859797581426755279861193476433576817544569982811070812917195873480304338691234498114267367120436816907520466061609875174885182798518787479975751754623149646314625745580650725080486319023738768083837530636857540767307803282171461591114399563203086648610964158269509589556556951425064889687073744824520520011196807884506694803043499858805626584871094575846757323049102477867340615845715790846329149875771049216503743426917932256878742511401240489320015807830286100203173792668632504547967274023016191591109372776223381471766393232425158246301767624019720891759448090892780234448586114717569376977876993007178263520337640795991617326468833979757295592986048410006343958128664890426081156675920705493696378082302310440965984750116669699072583057988887543849969572793421170906583928593005247262251647633267562789621427123718462897008967228632574468072720380239918394854807976635076305117927730191168857308580797950094410963167369416456091933664393950394487982224156538399712622042509688194108756759278958400942306045157550888522819460144212667885405691739640945524580817198005269739598734378197146619892820861827031811662593444518094460707372977759022919004336141561427269180649039320301932102288745718555438458554383961796603057201746910172271539906703243467204442246327739285838405702446703907243623765488513016728678978453909521313350681694758194001365612820454664366346701266367330603355590890253442456775598409012791350874945150007147685178262997922520020158117989102364103768348532517600837249987060731971237119975681596241960277751008425709250951406687978884072903236140587526047379129434415215658927459746411706261856021426610941898590703548830702479995462932918006228372486733771588619438205715408180602966634355312255740861721082602209460212658419439232444618568683539812205033267995441566233616550638577834186823942005355164028526105573206517556424109161723921428152910677223760798207847891729910141694909550027362883281051384256021551089052401353348337068737223199195844256285401013484127964133745143182495581667339211716969214470830866202228275387699494858256183678771927788291510734848463844917219956455683017823798058456900179987574390558874251124232938007059995629730314870289883848587949002664772564724276536510949707288210151912093160730379860776474566572462046232624123988580852363747845234487586291131569236525002473936749512360172183140194671237574916792960371539617081599753384820121875073117688203707935935474250811965967973089381679388428794243571012954286370619446962928888189199919587022990043115773363074219567486355905937716310406974023421384747233420321010127940468898886729991028190804879110592625167387312633162386086615858187702165971653626443886730763560786476671272860297825795227098655748580360395289207391722112938295385701847446193108179816384715905276735410183501367475445625001736572926424711583384010672282086099503277831445704534962890653169265596609823706501123400762683266476867035867551187882355944334814290527900157272239351178631016775566249461279253153886703501516464574514083425577605783202075658714671600617328742215584710650471242138546079863057972496125399634735862978720525269130729854214763666702865567265187509285845200780062952982588298560547800263232974790129402467095495894159865651944101574482593318288237962138070335824127440188008131877752547966395914806720955297239760404775463951206598783910094458917434280311590241922749940259497799204785199759079133750854423096692139144822148714195605573088025074634518530565427305709694875470187649842433647399468968206448255919611802214113019125404240778593225027108441632249415221227561658136559410747326326794593123434523645623596662510156448173676524929811722164177932070254274991958864560259347246941767834383129890671282822273779112078852345156384062907610755296960697075225789441948433636255901864508024826089373718889427016001267522534979666522878941836407238973539850344107191985453429106354799951597390295127757334658221551337254569779760342672814273087110848804055071655526741418483436019790668690664977281149437286354640370297834349672909528684208884982771318093641057443669486470379397606562775919544449079227341631721972675809703580027206524801747687006347426253062660461475504315505415763555232203421104753020392100283460414314879539333631668407876843698781003537761705132042317300622205110655292296714869664999197572821571149383462199061826989902685241435435069369468476800045340186163614428964811539192678662503285606443200899325208734170593472353196190736969380700432055549422090890277118017876939788192970618701068873720901099800663313175584602422007974368673718375975190533694418327984419903014457928477187520735904737971476741887221886946128342768289359332605624014888263728219802241420803958907950887171697844412284834824008053657500640836529846699430796882509302111759092618607029761536661722511062137478687361874712628936999536435154434262549511437760207693426590559593764923405957689137233126106743174404338058759210692087075199460097632688437141908271111053770541194881082906038909984391947710609200285391815543742168448869567441534194068061638860954204914842781611983970980386686234248398426620179797436238649645737299283872396734084961539182023788303261698082711039563495592643813025571241587647226359283607523874831541886844291994122682980403452768338207057946830899387171278675446398638877648665184407989269187960075535396144270651370732437091728050373153306594565051812118124997370290241429704091456866879301551418006480521811271661772335078244534023622289201707686318024636535837306821912323716036383114486200650927165046418058451229431896396612830656546453467385226288753689057226027524533931860111200638512442576302921914177511425796621306092154842730490730902623600963959072744726521685575044946504219471796366345376125239125909451658443755010123385300547315119919507896110266108222503925280371990553387843682679010496590833244776431700216744273029731169596583338171839739859852856055765045291426705914668808635940678789574046099629400923498097070563730282100069130255257420221113501153514811384945372603455398003893891712161345942496874476015521987098797352359466423571842367265154396173419096312512229648576737795965759550094747900469215960469398433213643396747333709449600507489785464538730347609070933644951811779163014126330238278417740592900513194332712111294845257896730560262670326452167742136145483833421988453558361214798401592058837732617141805409575765077939449605580121967578494907313963773984111066893656976603266552071592062742301466760932794143050952554958535984181103847320491256583467640869340849317305307129505344389730998397108312916830261950602169303487347285597992225607994081615692073752787329044557726094946133665162132672805445123539690226934278848900069922174761653937803099441165874164280288954970599163390504730148954800108090892532587927335035574807074953841778661589248522688167032528718311472266490981266272630066816836359922631292266212642043531939456908170875277958693601888613410574325177542647259352230782224846583170871027643774259179173383103262225260251322494745359189466016246966030794202807563093189924288606178506659493129314022629092333971460445661477329233618413567602399051773970529789845915643430349724264116369053560213120251230452765747253127332207259471075627225862328396311575583869752379734837016160966516465026768545687220929789677035326286583817444605667582252183916042223319519082812109460046801683585141000065311514559405246106444142018684401708851044832993985003427455347389155012759074120102816915424891686006162029607210162989521156454442569157061664497140741743317671620068418450460389878966388111388569058570836881883817613346020103724473596586328795186462884702700629625873902744396700803083163982270034998469853558502410900135289988705438422761246113326476240061852223712468356322603647560015634512178291678065729302411532916517904884732833247442185794857622764705195793583694012266288047994516901041964687241698773970310621391915878013743046095966904418538601491136010573646419963248240579595379528715685052176519473847230829966952699363105638558394991126520006223479128302410231762401502276323943834710029975814442462145171387719345984045102413549393149027984809631291012004312646859980762921441527240381249234058840758038327003988713610260750078585341151306576361543635262148111505131273283229307918704307307460662612731904247088092323140784765792334478427997161351294390290182069332874596946206185072706479644173653986072563860839317745673018319961552008799835946312555244686050189119446063876522379101211259302731151186781680642960233863929164714347352382962277531717973675414199633905926872653852897176337608320608948528670319491977141810031743324393669708474383672784022533645565613648859257100232411073530660163532628472254986251624174180240207555356110715690204336575711541527981813889629875800734122346103968669291570582222491523178330062416528778698094803366293004449930601087113433934392386848440793526853212949185329763917841154415415535049981236751888815545582746651415195950025582913331337379292045320601037477647323820235669751320883258472110299680224371111964374292671850115910594032210778804232202049708016702166051871044790092063725005517279585884383900142034922539590903709801897523143017262318499300976536240861886090456850060539631099244975549273504852524832383186356568834768113009932830589052423151650772434294165229590319219931910034899068130185916473806025927733351384726098043615421705130725698864304961190611612666669015872098452994666656978652769573375966853242952892483157973446410951100587371238128087657544218590140106981685267761649938040161969116155162565289275308938645703338733880955262628427247492901679129183653328506830441561445686743915461142158339995762648497113728956500989408197490882332804512860231850052036651309541265279030386674382710621409273081950034527575717627121743158875134401935112407738327611414418186211232191162086021772592848299123715085270907751890698366575944689393829203130704427082103529172251048554851985660095594745717062122441176535125539671797488627199407861011660248365358223391390461778105815709073908751740316398247235281341026493800404583391442498369858269634646059907730707035345372334961454027578653915633960722992047108168109379266868971256324477571684412337376454688189843593597346632196842297168317370326688590291772277418867817365824882930459999000267364430558667057254110147005888068006193941942183180284992036894090755664615284595797270689510734948622334297123558857566233643679077010421326968769215458803035241136821734098494267401638211912530559326291878241207277565776360299754472461549297487498930595801488311539947883683696353849713273543460565198818775286788772751968914453246871929097216366614407041153601602933468619132444279004770159149222583677805439469667516939619259805818732936604389665864089157383985980055224840315302410029434317004572853844820137851773632241477964091360076933951084118113729397148194286624878170939375936229961627193284810917786414993230481675133164716534603919651261621766688393732535671528046026035872838041939080283925908156721705991304538676526966576622016711897475867739309611162347732697955064786170162355365946936542857825781369130405441387941805214338170822890505971144691159051977971751493030367606246916482994573186564465257532711243342176975237729709821070203660110121678288256512869410464402710975346759341202840875471569444161988131933512470742035177184372540621003051804824272619977592921599122006051481942387456362287479248624704747529892787468627200960164352405881993129622955731572821332034377748048265763797127508143351184410780088045305380697654061772781618343969427287807338427077018315880433100151958335612110821308547937469869990494633807597085893087460841886599422386659677559557561275849592881397793232541720433283485054915594406501822346866611879679503528184589974329243412241050620336176726861482952320281180826178341246535388756577863192953637307122504955812864792840807005097754209860665149372500543124813783222763604779062612970386956492141368935202129052298962878626652270931188445578580204467255475482579345601264282934031596763388133318407821662798468484709146746391489133046871843916284319581855922167671655941089836827438595798759076075295493219335431357894818984330252256521660058913293804185029258686135673935946799170430983897235465565110454691806502680759747715727791857473126215966474019708080948647334400947353087211319710491086329730036702154434285540159032280913380297653144024055991110191086518798282508434602395415307033431870055676605781402473222440515833591684891685012081556956332475906092466969290598867098228245261613904923953813392382149910960656488074561254635945724030970716128418683474814228449952315620698428413398758361878235129753287735940064476469551366270387913239795610359649787466009864153716549302452441613399638057718398041930187789175901923270977669184219074234157695583078289103446720750763335609380606305457992225997591349584913721671524383868549544658309255919504317805294427967304025762848998290990126357350938058874742396773218718426417868684124925149892797025215846400568415949763210479867278118299450115023606733782852935093247103616164639829216632876290862848855942186323071339614107431871266752737747584233889619783003268569770278665571340063430502120332947942991283567248423339982561689790527111689760528689304932776001107224476144789732394335659984104314360171965973103307933330148290458020306304275562806697492480522788668500581577937642287045609258865438953013256968615742935977956090047975908006897268237925061175108455751893875395912295853622563401253084656896883235749964172786619377266389858344808721668525213274056905030525479315993882066036402829349672865716550741149196997941361070914229092623909918179396367832637228878770033912910733785117302309776988486238847361378275683072231727098804156685500205662660136209352515821417681169357148811870016575659215350594964792264215603180121322711376473675977081832995518380093457995024319807858248791155092953179281735440734555652685077633839829238030376467288337545849416100771140338406102894290492841690501352092351997497558038139629262759487604917399258800475376199820511815412886231906185692008410902163241005122095991724741426047971913528501084986398620688901995805477737783729926621307723047271700160093297622664009332138613844205502094086500811641410050241727838341603969753223331046851997853753116373825791292592373763779286408302033704784682890389045861188869243556762245644198643776761073829310820313758211299675179840616725438049074226925994195167542826546887152122392157013549062099516274630105187925551363505970313950194036622248119459403387738322648888528384527256149142896919968257876844702717938935402074776870154519214675431199654311120768477418786763889253178854125903072243812696487013011236540543120256888738928686108184906664292538032967241044879708844849678236191760324081714824517758747902581217949875263282679422102363987866196724991699075138262316596652045830826963287355952323979588531525354104910311863013247631662778550081923509343386559954776713011515734716113990656441061861653946038643635039584604895461780559168587774947772772261664830401695879673615800417703252619283381764294310934976176306866271058894283415179000043678099649142599408042901255709429675861354061937928945389603078319810390316340704587650254031537153023631886506612750406508471074983693667832325376770815332632369028707659215265636638594505957057764201642230748905089783826857397941314057567784848334282072245062601929555027075196739644760830613892289785450681768888667537291076118876548111626018471464554764444341629138744320292018713097802127623992346377038634665145103207733242728316679323548392454487616612466487859199630116604558781401778719022776266722303106579542777668492775484739061890396559261550268220396656026004344743435345289436981037671742297516926470441124774998203077583643613227434252670167844971679139577268418133815889907170297137326283297290875105696715390881872456959696190077812442732952690465140978226385881438766682075693296833075432033735199305376824531004624503422975523031140735995952154812311604245009608400860633743513257828501280381327959544552244741511755922800927238356109752922174585481797963933177112085204935656741979749636469469697272126904905289484268180651822873594679686233831724043450030186547643936222114099772691512692915756904105545615510364953840587977004143953175123635812971477261168843593171426242979759694146250019907835963056952493262703297307232726608125417645976678029184995454127271358714186046514519426523820994840610453378437422264262483031145801809900932762545118981452040459308739378464273641979366431296848561651667813758950875865438611915085913171105431833277991539812535568874067040731577473978595053154766279645887430566427770682783235393163617596364972725613866172014048198998090336634952412540535861640354040112445667991837096092094895867788194095181284100342397301398507085530250335142153658084540163477906239719589591601053290358977161621035016634222259180579329502604089205317109439675750159815841315863142491139105785881998687821024806847477372677151128033424985085514020744293179050036845669645877331697510132923799082479702502753189594436622146337166540240863254949596983040456576474256003642331368790083340231227026862184615404187059449026103953594343495518207455093649412134272762598459639247621078938201539539684787376063175027870768909665771573931261401927584012529008265895402345022215828876869067492963400470746935473914509064990283761503710584396851525805630640386517661857554238298346399058458896053021765866889156265950054972935985105629181655363457191780864511223304625027171396159258135845094562929514037693167517507628407717256280157307835547455398533643325348178517108891462491822780622852851019816221840296594078888954390496267416056916482606385715270021928407561604184358595151005326502283226263424594170082087764008237131271332694094304586753809868852362862381786234748867611054786343279241491941271518784599520329177997133234069836917398001288258114414434504919989528177209823349979932432947338985346716209322070096000066714854581166718679095716938739167375863436159824420421824839116098664124371475403967822545765013672263573365349629828721524286286152707129970756343710214020870107176518654179618774804746048835346628192056792596808290807228791797499493089921045420944592545792266590452889923731174333289259670654299372401951353553688302857436670730720849308542842467825797696659542262594160328388682799910996822963682774899285723939589845177009133722599731007768675951815253736164302903252825294336779852575244010561412169411907231858047774702375343791234841691265716455820948565808820137529228090450532811293160233570921973382475132062896345327963420041211466214154969444588860610955039257627093847291361643697425232459646334890946238934365134516563730476726790424631094553995067489596317313819169348002577557002529500810206886786621353563313409422235264754070240090370942778684124731656100736837097078515667432221617545220459294861918671877803403939227859842416221166479739423618834842000387969627258481525470040138526640776158105286648388852156393119589939424471714361203836462012275233152831562443291451080743275952543355665729191288557443113949953089612378820645701445442674544187918959956212799525075742513419480084503431074213254893174021164942581296825161354546307804703974181160163120190790149721203700037092614855798602174065984232341340867258485041183400789022559514833090831168482013728329648309667953502011744156789302816574573121360789591611816646736868766573198456966275188209055910472995943195232316595139042646838304441218560157561726308744609924216987099055897227266065129776634137002075658594194494392649149814391398179067025992452393718486826438531305928603082222454263619989458455136829922791742439707442240787076094981516258579469476234494889170759141048374748853505883858806020047731633455651404307834402044422634952341944126129738194315019938800945612945300289844368475302625720400486585824127426767173977156563986261401845097892963181814570151667230200698657446156352797562849740371159369816327953390926893512479879397435909857377734619165056836341210597335237829915636012153623648628032800245310916478595600050135711552195683895054584639841003052063206219369903500546215819664228258325706911863815014778144038177432138808858489572820718669625797057476155165846168560179316622791569156612984125839082010306219538228938376364848888889228471633618308126782319471993887547443475141120277620587371410590207788602405216815215983039698478860030550054578394110667707137465133586826167089503730587083375204027504452301815858479023343785758797215709944436975551877221153823863365243474601723534151902848095122766491550316887027997712164741512757545740120341366185485972374975006662698426306876924954842159387523418470595242324031899495789025123625056973529316066725936065423752082302569912017368678639477261490482106874255577646873539063486741543647221156294522858769711971989366757574134583326297590105627764693937952120399326860488046271581476343226859499166888478640454560176371083624409104626748497096955669543179020467795063876832640008450423267939618084337445799323856390339311324549666941739680829095528901621809879902583449451550660198185098985564668722417875265064486065170490431375552910463054311471661534166818928251482626931946895750617991991613267102543048478781029953117647172193036135477289606234699752616506439680968904077817955736650321842306601104916142526291727254887901109455628057049464961265109648744240784480937387505727249059353866734464573100909972776449807154162315732541111222585032898336186054967867155451880066700790271026768702093472695988955328582407355570884223664807956940956176164887607091973921792472310033795142433697712885284209955558901227483482021325908946952673775567899485441249426920449198677766114318511462907484385181962413468701874486182193377565966770648619319727666096974976119659192283189358363257931332744866660836324434918390755501143694834511871895025312242231105284167894782819426378187270925966441814046233969067860464617425973981191603824369198757633708688310105387708538043455392946691650855617335898020672140513303904484827631574452770283540304761500705402618292504686257293071463427303041702251555312984117078945458052982603523087740511755585476922878384665263328839054549896682815703886091761820399683691225961185732858626400863953831798220757630725756325517474952127907974021686972772310322907113423316023483324590066081117503810783049034238756655863048897602066429430473220583837754837477226967271332224903897976420700032215918276633214918105910278216749728833558316281651129128021891288471157984930214975524762639202803281660336400230268160616300021214339336973860205291117300229894213120066069842088944494438807519787037254740687746757691978204482168465083562192446800683957366970939745979328060039973386927878125243136114319488854053656416085112052841491634782973694245727303110350396913701608011705013532786063929144603196907130678971516636797076808665919859317194625712706122189201558446802813268030597879995133160527472185138889601122590942528004790872730462032101534391284955235078220470622703891404268117035432780697992063680900780796669434174244279444717329056626741102647035252272800159557249123127512419560242472539276514968885342619705738244450737367731733762406352642606181772458064204743574105435425537288844619319475241401481355659799828465984403209612155681082542788637700749857018386623614197915801893046578413392817301355763496126916670164345934238050789617466773344774589596057445340190592730072136515996083262445368069832950397512993880808323534328446337044727140441656176407350879722768950819652669110604693271885286968125087115537774728510092344000411614187126455061307431495807956975193449993772522082084308494738402363351963262240423321794211755691387083159662595221008153194790893247164140330999007171145680220286814537390550985524752193882665268693109208054105524957209971704774269571449812176057025545178193202626113111412465502301501184022743904692310351791538994519913428831479116251377731809103261879383427090850513907449198127946564297526236140750755340366131142831990150293142836492604210253826897047613061170148659047205026619224331892460020113681365915977020318114841744355747457481385338797370873261342925627277791212330534807317317323790091021675863482460039927933491515194509753605549416273467901713604563670855008906611330521265097873886511206927141341455092847778705312899644705711568027171075101823777259609600419431131187741045719132631901648375246144884189407630997955000242494376635237269034520050684390155326472909759244695294939087678049809549046432581050068098617684865404489510634348805537198392279928229284313012613860606096562064859074315069609605859293477581507970275977763986084930356178140484865530073358635937771465277456845549048794333523441294935096256810015794640249508256519012983941520770380570567594363011243882004817049362069474131226406413534944924149598987011519836428065403635490423609763990230197487044484553557606334112196021020910130259150569093682117948770915061892093473936061558733656314812385116965000765120985165534527720226212336950437939625311783711285413354570655558385986605187251013352328362069526277387482210467148539414823056087690891225607769647339058415310643652040249388615431774358491687118406813530100345602642437045579755495831559286312088406781864629122732661999817096273555827140177479790789935435681821057947106138276303859207595052947852883109825477852674177945738102766149678587867081601248813475345967761657402848513546215692411913029699787793036607564038236069793905695766693012891450172593281959321163052243278690408004995432190390505541564846022645246093839611548400348559946547545220265044187191388532634241959981908455866447722036129186739652494799918796630747159573731078330448017360643874450539823801575695392727236439905237976677347996115771098057852846985213412889316735667971227168252299531601448124900226116941242877422174074897895306178622059423524393326526770333499311323463281151967057902791438396638897690725744566460035545416836754271472342585315476418333404919015878175940809387792301255361399269785613329517197276570267796736992305665741364624435991100947560747011542000083256681976283468297652778880858055406240543347567532503627123470719904691541357147170803557083276518291728144402639404753785412533691499609799962034363535250692459853240833340417681315413283415087095794092167589736584710908855660656435841934470252818271266939259679606628982329259332861783452425672332849775202970583512791001117441880560049355931754661598154713637243387911524529439800724135931715309639461415980350383003137172545918884617121382616612532425327010975155090629400527352870818962244935105106530246331736544815299149039479662705089932011278353453934318879848408622208498957620039316860917591145073674483715586762955899171912032636094936320965422095515482805316251008245892413074426319458031568794009027773309255512140121398613484421121156727618436595403601371926810559417256108553021080416666383378650446712739733487983110133119407596941802713209561879566671456931045131086295786303207701732504158087234120004649015148617606863134104552159525704525659316388203492650382996809427363378281693836749690985756383385180141884811239457502055085960091251426715770085746765601329033653250238744681777156609981370614033545059131674598013871614302245087979007396163481312456359567585064913561712214270088753090534975660634836011230261030863514613525712735663177891194617623235349640911773859403601279372084537015057399586853360498203794637970616575519666964522179616988095478503072092143764925469527879348929330032509818315010247461399488225405401240484605739807925180158094751860729846463199678986971665734780034909273577221838391336438764255926464566173882339723663435674032245990671822520967129247851428929981397637262086071842724923545706685898867214667219633883457340351521049987287356808488766294327078856119245551314337991180944453364970715468222763632636962592154437649271599242031553630649631002204919380237424571680467451838751546625506247545622668707878353922588950528822555097987340439451082853026018857356843056115393103572301628042864994072120612966822238709690455917013461035903428382656523351222306895351446117952763284866053918949205819480985281025324016891448894474852627856354423880911300525211187243989449786328211517512290779226659287229665947854306359880798185930149607965502870166031073212489758501059526666917043577175404732523383552152441011499668063587711790656684414648799348660996153282712805431805816908521191768036810082550963949087829859126361851006420715772099023578832734027638775524913103303070249182358572465115653713957227166555039966568370907663512160574493537787724099060676112646271071664414002911246111761388415262614679322305491526525630680037802875135327344271338719927393582205561263017702838288500167863423888396956562803668023948787371078284777584865805561101032087658444527004490144175587647498371195760494851257336156868547625002696354557774004988551810228184941450708102446354904385834334156801897545289182335015297727565881771835939670895474244533290981037976176024371124030870805415839572614752896009429513400478002614457103237089189385693587786926794109139065261341435747801183280140699009212186293694793882133839640715246502301820986406720287973338957006968101940049811305607065060044345249269681418663369353873122162474388109082912352507884919286150269419997486618646286223702194084006749035495645168410995603866608916773838249737124478118276169289486414360684954357534742591711528749852885525053801861823762340961250120972720477408114570607149507616508613581810321785525654191808348921943593803133919231502702752123557619631751821348789428358980293572576538629133274613399270640879355024003298781240758927688027991478217282840378521639026671433144691195156960922736485523744334707514091849817739147171853564971015907888388388727861283161659179991805412347858003761030334991774223725445711642929966780836638534198898395823406600878598723462563553968744217200496703652547398040111008968911674496468204317909834179277671393603720990363567083593593523255055605554146932022190897308513821440435070056214254552845195464216369444905060087848481419407131771077795881945021627720081708225050997318512085092889396141030166556503396195094254524160434566948377188590251607111539976133937142986995841718073498331835045515602378810484715100069413583849241328310468396918270188021538857418279229089370407366361889482694780838393046329023108957155382188165712116978695175776628739290420865116780136963276172583059757597729913955716752784416707534361756780262411852925874525876909979739809331469285658269169440097710022805350858617682202345567383373228395011928278334719673039989077532289623722730514279324937680610398339248619264308632259190691934193692683995642572555243131914306434206447079752813525209565792761669242729122788657071076258158234664754184132164598330439170571589405392936089842194498048038239819999703960493712225486212263789109530089161052548317847897011872623866118694603141237893811819997613910554671306920249845662185091978398230838762014581582832349105903785169411259101494784447235830678284832812319997782668916329461378465016521202874904905539301216631128020673749011123283023414217045635229482891019313823047419786289967547031012767977485109866644243474972587667177287102448519120576818598442361797787286634043635303460570636328393519326051882183139199780777050741737144511517983255891481391075478679788199770747318642290689948819520055290520730772013302870765758406978363512111086120554364518184662867259323110100954770901247652488464334069866125278216827465323411405570731765903748583030766594046868112500285354566601633703488348362500844941243960584700051940339665027614428132535402606680024270509841875547899615170276477645060740886099241061172476196743669301582743908558808162276092288675726087639434012950941101250218378641726282263656933669329414796471452139045059869634553820325129474486651914190080905649341923865918289668045162700726063084093483416535369858735924707952984960820175493232793469520983669232245921535508868393126358379953992620457991065811411180776059479563698340948905676014001921408814728158522785003968393606902034610597741283995766185833363982890449158479309483322234075309758424896273692117174291379154742330454892119524677468583164434197007259825872290698887330772443588073143679182326616615602491983256913739058789521741536250903015629327985117755324369588950534739326790072638076961796540180220621710592007961310553950630557789036178923107862966054589070102891920059291426101068461698548636796068774651234017673149355131970867463947954532291838414169810664231410510518908997888036351711560402686200231648818615304393812728549508456194684583251699383874197228746949614885213180671599876512785256150298984919841819429280120279088926311408503995477451432955912502930195480536389086880360431215528007558514925276856105666840098839254326286233740891408370685088122927626629112321601761545123806711470614737657581498677610158704589054675285280170336970776667468502086927352329920641179642398657412017417058683568523498122467729276808022705570096202459341181330552358461455731689469970154011400418098653636281822427280410148461037700242173493535710832598360188420469118607119173888058122032179641692703648091966046803861569778002701669148170822279329985430006889949181374271602690417367375841493043400944817899971445463637660814323295581112076163970710949123002842201833907502009813058735184846327197061673266754202453813706021479265144321936902612202231129807735108183875911791937729874363948624395060259155726868525014387788929527336600646623982095334258069861564667314566107528866179018392386662135321306204211768580817538454418991875886375682744605311421867415267025999171287532511955447990861348102083353384227893868003651518114150873339644250627859313576152883523318059174702233094644974685623893460078767253804941666083723887357738597391280695872330238649266009001840595909186856988358227061665565465499072208118467369543545141793735574269014605839624056746101494786028158326752895218309312626323070729129366515977840099728775864090574284091982391530309335262626299633545804110992099080919130042937189777003259395841071566452497313242850431945022032500673130522329641743569943513181146941422652625744384008969442112518255810604136129224043231570432421799206035918377042006840605175397616781813043041307649282333310045852562137365801642209464726543401164796627927686777775927092483142709991437446435983995889242083736154572628028313105458773454598661525399071227900449413609816705820220457977043001625237260948590596958424556462737216641217379110139384758706827056867916481021662404946203131005136137726975263400852725879014021939659638826904785793986936506011139720467441211175592755052560161729394772478611528526612410058465059331983260101955290492716818511161103697288870060077641512091817241477382186203022102550810474329263836448085252368103296585264528566420952541646008414695606483872291858232393748694915575519555243807261156165450420590940337890594934292081025605697870258460388062782242864853766814522887810311754178562565925538617243648295923298409931102879785349301858828950106822640797888239253092599054169042183362549673871243153672375040760641542440493834283823890766071653020754418048750154873908580492900573394055063030265953195535514225579161489475728671099903860856375830662181247556422312394270321287486715664592185319058527458494251130682369346609320015440311148012685271722262799163816046439670699590579655131395052143863203711423390985715029642675366339728562005662828926688106384839656094520775004057845673095868536462568471608440181769730092136648802552622682652502788102600685655236702008617567040877438452604986293093841586159201833873909333788214002239062325051394990377646715868133815034754340763182851996595528448177401503509059800250599925370935548940318243186268244716202417994066126742170368987286527065721152832377589558110674026025394362081224530682358500791543933170373147159089296729945814953805039838733417933893009307745409551724090834135689619748718625012302106738852292970601260645454040750017117910642142377277081737308986549903732363223262701161012197448278620720102381626663630728133440585305134403440700252111281127963004497119258042251506541266507891148971750763666553741193394522033911797860789909707459391177931695852494250778521762832384900544128196578658528703945490578151187482297366203784524642796107707607835278592104337720191787489111149661744136582677133289837844143162939812899195168118298300753891117223688389152745414312852278485430894461269078116363626857204252536718472447449427063010585496795736344262614102922567387473609065881553735329330332788352403989055304691170743561379418645108623624331288513367726452480120814924665373157531479989880032738774755938217680047414065910119327375797140333112314851039648725447195863116106676088691110212726527567977250146629201133648124454055263406681485492974331305045443863316268520131762454856874926364012737867117895798485835730599695678455860321730983120621302871592919770275126829071063415088029533585453604290931614383313294882205045120740875254400404946982612015840458852945317077290950565499697935362785574516455927888620529110703687005388086808591038265517735069474064526626116682499915720470406189750083052320280843649809946368628329759997699714669075809950876128044440147833918166210453544928588037566286137208252094957296183682961117034107994005878252202903724724036315250777243441228163121680015648923305450259280664147477063187899202501894150197905858826436378714599322256087641352677164527070623131779754457606351680821556226295675826008033770131210662254767137384172118783083068057271021087043607226660554865025182343854536026252568789884847415287973776521401880432018499887141041918630336835158466664510150921611565033460195700289703647265409300723930731436580437255705043529249454145377483228905683772947409254691241490117198856178239183837439387165618816541894878142869698978920637761648097626019942854695326738352448350389599456445254547647659006417805515005250942307882238554298069119959414016416595803311247414432820402387870653421737268268445772010719823484165865251269122414285377590282201330051411847651343393585701270636170102814072373205986398327868302790285749727393256786344283667197610347923645395114360002364098879614584244145270020957331920508190830504922454282073891330000483195038960325256436259956889801697854502389363089068419220767431563480141763610938458067190783045844563281209904704436567162788012105323344333913760957229115909324855139831778795022118602637950939295792449270428719720934249375319415628130954606556866941554866199066396786686212003515383114687207258182173569382432898622853306932190485861567666848062847582985801628296944888967538800013656887991148393211261927729914549619682178917112750250494468248172716093403401326802429008485364718752209036124413642402868440931408525748302961480964837991203055489900509156170103128316055235566113031245704862558440825146970143834306511814543096428300299874613034074753027388718469633399545377395144311220364831230352599799295066192067818129472783503050375721228000876541115247055196305025887433049446175777159632455380138551546890549054850267687070885463526832875780581186750463248463274786002574961624215344212301305863363191219886471854171974230556862184128206352493179498599943450709464606870024913648742429559777608082941773467345452471040889299977077863436267717392198420385599017330167635366328033717642658242329452837247004804658344898598475512871484415973878569268448765136600376245119399827224974923051405719273968631942344623203446221137138525366487713494432360097801604064332364598810825856127488635313845775125715757659089322914170371036325536354911752448260106890912448452590523631229521877656941140981462389929101280348595370552735898913559729167825379975873098886451230288070203786639056590426054907842304525069979465828174482863445906504874702164669442600779410560176226756510049514389148429029686372464371136400677443324501515599695196150085505745091125946052066859588164072351090627750878406461342269034567297938654391140932806977500606046850131959104333232681347563891028305065362401610559130265150676855321032387417257827585590646084114866529942379928321268593679304544956594272571482032595612857508024778389895353029808203752001837066947997990895787444845324659730178908960981485378402987883124498356686603393775241367266791057315177212032941289739025959711007069036578017089491817660230703820060706844237030762290402166326133246347111779381763343201969365565911580263215503528977035547591170911023473650889603885992022676732452403486572981801700595342454277628703401453077196211028081328183983745327480087155180499675409731201311889000939817762759605006092328789459357955940500742117118937421663131306339579967851523898286902186525434835786736633718529224465640794448716113865799140046622517480363687284564624262306141185094504967225157589909458672963235401780091327463979027397857276830085057835107434808372826493768571360479821861949997381259119726999716320721967537069663727416389584914508998470547232534810430825027348291373421959407697248011183282594190378665642054051793167333704199218824728449166575018079304956365745771461875267527791918508412589754946307521406908117146720720590424789903472132695576773026987749440814575010536169628019261753361117077407019554001467037947524218764550030888341049272073252019672634175731262720487263699864983101414604413159064144694044323804983878066124362983312854487818807860994235675846383517636670588944347955799100729012390938118693966181462911541146144260606344765296113315556662183364598554818265652113155432321687947091906503960358806104853258992081890962430086749443145989924711867023989219904319669740074340139873848402971021417726097835223714705218957829588742057998591133325384066199562466359450673521528840100683383147693849280832539679371869183887600413765363148328673901986384017696276344187498613527490523012371298978524243130515459682257391740778849620983937169314262271869883085186385782893683623495440278405694278455547178188829629967181270504121787541999738838924126395463574665023810357260219210293388535404316365855329884287314210845545517828896978179880085425433410281790636346292056386158798197124519305763747397403318346037311433215134047983728882797075004069323473398495169261494291815021189167100267829401834343981520373296774775777487588940586110056102233933581736874723042631696011038372417934371758708566557356480632994544301298194400150276193601959747468946888805460447059581099435061284141526184618724215689732551811872431654634139951880200186316692574581973043282209854162874584108147759180031093154422740724643874830776649147305964710804595440583456822311251289677550021507676177695012196608011954069362149403297990908672663364596554931862894600336685168784722363787260466704735695082241825384076107701435077098788605540199745269704623392298385415793008807139935657060265956931409344477316147142711324123986105138671413856045897319096244104602820055231368687533583999610511214976754817202699052788999515175457741621637322226696789595708328813351942833800355330442327478036505658428602759861230791715239734818272046370069707150665328646810585651340759947479792408568175352554303928396877430680585393652314309162242976134678841715029241071970622720293989343683094237851320285613945972788421775008445066487718861039525165095282891150197419355320651974513068256434650490952643623120329481133638727875223791131775428780147913240195454483507357821466149153926144695957342256988275705261159132626423392536660841011442888698363174815958297889712495217397040472075906599365100978061095818804666508906182847924642380912445132546925634288452877233678145886373111757405380583769923520680441914336229174242472364090866343935408006465845727452244180024974910011250956096476553680562445980644529627125191150904541690291547370544592597143534061150617078799211928355999409493299051009291900145601757869285287198650856330167772240368078106376547331088137161980958984019503771050990205065443651311772767944541663004064518891203442410420778289634596381056963853153711553396650855646155201944615644627920238051297356602670402369726520371719397821910341989928593891302849849962894002445940815040545642431958280319410520894011722878943840404935522580281151757806708335567270253409014645525139134750062080197091464605259608810711160120511872718861669318386795749026567316808807568958798299714538734277222170744849877907649333924428323178864302807977516202860133217730209559490120971577595417811166930043690563805231836369339465735044977548071649395007245471585481930105605042079430049590132961698106516441104688131002314215672173849222677417486349212905129456127829012246803536293753310974185037589935571360154840073986702058331780931949138443768183591005317851720685531740277456351422397321367264171492568888965354185859491238743720237734456400292290646840911498341368454508434981459266974683311455516328904089303387319531316878491565387888460290289857494077989628977530990888644617706631386009616405430431708586531988779671852150376135872505173152227365842714266405123803640755380762156471932137344571050780566639538576302752487959168005650603406649876483876662703640223275744777042436790046706861364143976691451662272667375178983844828301782697999861658017980865848801804785694456430229856886589687706860591453785119588565660271299320407201212576771198472270846923024158863286426191585605098031061439133867656408432567073060000875013176978415164062060890570304030942616878893818382727757691384882357381481015268344250467975701457927585341250981645124644592603664544873992851534996302035108894169778154408537334698509865813473218388267317263907109119097730342394145119160659232323896409519937281719779106190744651144360942413255919142922566042466530311392379859645387045722875644944106823528410451271887103852624472271343653192696832543630722597613882412225223469839532424793682250506035609859572871676935492068860206528969792673863124249440245750343263640145124393479767137886440322907634286350728568155333397611267765147921071007023654092428497670091697260072652805260056068998345095030388761821006226344798703215051020476053706307459803875985743369874454357839780976434700149886224269723779754467148244564216782265117866597642525393983720463064314673428703741817729468911827125345785161801843268888330808843892110989536732901524703454478710541641413830553646995291598958037183321508790039748158670452739618966757514026466325458007991141254973812375083872581584329948282020644225036919219655445180692218422950246488312725300314120500331199979674891028014748416792881839222462322176486241719788460041282032246563131917326333850664354709747280764778211228955599013873827395490320898239660652042913181350772491427194111909520717097089391484552126013202928940538769378371970546333730327122707921903284115414962789760899967450397478726264976606513128591184410265118467597381208216320345448582298086238382033534339042323895874229182350606773995145095884121707324692346164700568318190210040839433800362031285122830212361707658112008666782710819674986855203559584245936686159508968096222290847727750393713229585035687362377449182135664475174264919030530049848040160097557682604845356898015586769189532741363075910638880832685920024591786546460936561012879997797955370089969162054478787289795062886841959586196395705076790903022988540757538234465756768467920574560867630994486013526322008781538280523801970728756904996371624224041327106231911781141521928854256297354347037765158744239493236261317578813558216432257680676684007551222898490441416078133126061499073123443279750323128988169390429541151302943409407588198945631788152222542969276074133080796683842829856523395684781825430722634235610928873883573742947291175013948668524437667311969672603863617509030195137582612998284035025662924241465934845002932630816597433356656591013081568705206470567175217445222623058941206363075379448780494815805560429098119915259885990102251105979742519551732545506748672229427709382065755223438925028665401983232626293898288231060987977043789231229050714295598264190369050644811669944698547157272627130739510240448036311649693026818281068363435192282317837922627622606653863295760244867062777507050507683431941346596025704547952201393029837470930401956307844207829686552259789204049402346487298131494758951658365238886682057211422473971698579309264520974416877205842483287522686896358469941692145645117254536728374337312676578793396982931729618682305026339908449837598009154921024025628128911901239690139329308770314256619782970893152973298241541152417266079160511015307870627927288935571388078252204321953413464851913625094710535847133356262366708447037154094282127304367694087248438824812372372554399748693561736794224399440789782533957508185368292546196491420505352956513628014831714512799214207345938219945604621171776704888433502425172283140238123287069994482032454587821265989398218599790887858314549022041320077875905637585343034044570426719708292460878672631747962226709809244420274498176863477702423256678347211777167433084618969228943149464315640989006841066851911341678959289190751409661046101447179498215922443405043114872045809893650568565066654000591560135508004217974194336039024376056015730529653170584374601497215029735753841108407318747133402142878395586841613187884215264232234851327645945089919259559676527230985870021904195375028181781323321195375059915162776206168509339519218109861413756475795662601808576844056298434899010299242320650300519410676349821635436680768888817618580668538234994552315014926595392317553345373870436496360340846714575793474366760624138150849623585730271717588700948198197281352495916734384576481696262575399595345830425377602623231957748790246656874197162445609824005294718566232019849950981249806302755140551611125174943378829715901369802215850547385009692847957090593487976988251954464893365403048601038845965370402193928333499994671152447731163260960655005397567576487465256372298236879978338967813320778129571207746890783290844758771457823647597621205275234358494586435374594901484155743403927508749175848261746852973758541090185729025072033133397938498791407782309508926004184603563320649770191254419436784224176545815091497645595677316290129932466504612528222971596691567835918002797401788234401886007238125120798158645808825578949953941155938936862905966466490154696639200235528785447231903186048506636733100733437991413300922460319109181674829025544953118080246364735133307488934681702355284281336759664728229697505450934879955426281709426014744874192104438462761533645374765555285392172422666220886276357987605737599687159714824235007265154012062632971547573958787408075629752629628809296137017039878312864461871605973477094299095111882666478470963810007741000103166141003333074375342347455375975583538670161253332769431109838733663207625695256087706058830159810597891650103670737337741642850875650158068693877905435851026008869849812849052796213870016226727979633978412225139337385435118024588317685936764661506031842360171428454567199595840816112000372749134337704168486817785241871721664702860050027408521775396591771245309268429325079728696725750783633197139794910031492870375652015848294001367854632684590135899522785160174052282242588217407006832514092131943965927521958074323999510357709865690250052492176025376773601129724214295179855541549296901021591659450114960179393141349074417297075418975689141707340842926967986554859945801642683617846874182873293387115177184848834718285566200716556035809753940641266207621157931833348542381258610697229809275202507486073574320963284769925925386856801470324558888693030560818546125010644176140219851156376112268264945388349679359402113275655589154354105892806913350960780847623459587120370385213006920549825355245689311360488652484242339146419807410866370774184148950111192841698284277607687071973347985592075266047090338185459257885800670866959860988439814868313039662971647835919332902294754968519369135162575924756155815206744465398239256985724717791978694948228754362277949558031755568038579949920478735812085635121710476943969442306453813673194634390387314470015600575105232867610214059778385037199319308846645060815907471919731489785045703968532751337137625451344416255398684570285386227233817215772146593717388528250687546807198538085958056945463436082774400190687814318956824650681004012102182238888920492206779199250595938657192309622348119682208198768553279290958196226470981040606667200265307357316657582978536825202337186484346432375134569870599747110535085570310626674847000837486562749223858083780469995524556275232377968639657345335146391980819414586879185704743046851343819103148323770149750688327294227989196824415360808641997690353978566028871707320571877058816208991699936298142285861066068960858851872603859677390868972995983399916384001146972175929471169411523029916602735651283960357317633906894244843260157834728166703428552657425387580106023352271922599660012150972234607793824411620211314922105536128570851071429508829624440316849148950527179719814040035837857770652904968555454434751360475413175610438396380631947764297782542506643660427571617346757231922633867375983714830824829916872787811396981858490959774121420323974040234331735279469156885136629716207700682556129271764513279331908251823554463936729459568376139824907898683323239897908327694668963716296649249807773429832988045522120459249817747339710161404287989768642579292944317463061866555687027889481858091000840228397405545823080351791204909927422309674884079223207955671486630618467180300591897861738004568399977653597889327334326608658365009045021848323853217621903385344427906671673886447275297575968866082837523605935860436782960575283791381978576336545556770289735329887618599348113084759100657527707412842451021690629938788837185077580533574765485973348676235697285431068255658532551693581809240154732028627388141224569905495661373420352119978442322606153700888467807199220488033955952801096362843149461950953113984706564026707624433981399835162015050682161132509052619691113761945034975983882152257478105626152343635316595325060712585490350630332827662596832123718626688197102290606556226903794814632299384174644035886266457370083868981700995669751588523847418480829388894036338777353690585350607972147747849191898990685045022064723424467171744286934115960086846934126027508442928297568249699054154986023069622716654244263036923329242403146568853817340650084292138749519824054978907572507357417005224362381176984469659878409613903422296994887041147970444521484806287486911562178614299437173715705049705734866750116110037545139038576091068307411475790680049459823502133432321581857233784783754738525037843684710722872190519089063053123141733052538683100331673912815412652570679369771383154653041751246676513381820603622637143587748951278499262112406386131909148256862038823865371181367578562587695022171330969361148967208337503098377351894093497328393255354137559814003723731553332248970050890140679166657208013386887322093780267343885568671142225323414889877053762801611881673227171981209923136324805438269308133302981900876817717893457525457425086024180331438785737530338211945486608272574363540206442314411383533507436286068684352654490371370587877143577732704695420723321092567252573514052880135872348214881044144134884344203854958565033482388000827543177179620075284721783892457062628326595414238866823154061840901884909340068354809815931901581299818761120228951443956821148392351460537807919391880885090237608601989284079200091161625385069144517921481414771475707542464286176316418076076166038353260885178890365550885522554199938834392068297116541850857188950955009999463047045305395262339768220262594092213950176082271399440999941352593691342947240556505013749409182531745888851028010839678250933514894876450451130498563838638650657877888166718266567040191781634113152129284281987432670918580781839450035153554532252568710413967112848467005761786676587699470684394106809090918118599389291143614508081159716508397669502699510858953386368543811123892275995834530338963065339556749708144338475691962111244519602169173402952526916587785458542962427983710541749056532039356188574934651396044518591290168207692429185451755761029402702061325758775251764525614740196651584057768834902833573115413559261413187389498842093620276085884438132725073229963108105241629023450637641472015313434621487774123528211405421893007764164604342222443259845908496904063878630779486820531867088382936762734741869934749877818855643174922226940344126930950517251157369600521398891786185339041668529622771848536586278194988902464745240705441874283651678845335633779890290786342030409970530433461782776163636157514093643409017684389091016816164995243460667974938946449217663227356892837180030048129120498558851695101288465387981722096747139108122795964168128125141470446595729308723785683303664006220754465696645570244108078028210375951469394849968948124465234834890623310512619777838946784791109574412352108651260315260021617091343093477169676949731699393920698040921060320858615862904697481414733903858208384251685894594618770005582109896532432051705071769633967928076358870486714170256317401682761976406407862739119146014491689763331480422537181243916685223053598615890363633720303312684965332778036823754340469214631462019297081489097878300326471753992613441622082091577237573552494683302823334576197913558616355355934900508905543197364439953071175513232120421458625262880701593667005988675219490595322928564640262070434566684047239379444754338057151168237402539443665577799501844036815809624163652280215758077720610393665890732568687544036947479002362736680459619691409116474208395911313610365624049183492580939946867292622019062659596377054260248050601516991829088711963794920956036289546429909551308746471556997597830308692918161122248087621955519522455131091137893802334798983755681053948096501709106844975691412769501150228910091549611704470455693605354330829338384213125316717176109464607664455230063367853462113170056635855788644198115967807876861689420083296449651684804051413780577498818615208431448896807029150661472109479407882829067170606481474775492572204632649644351788981343900425814189291759907355356772565646764364046211544082018805920338504330996501064972005680468512661262280645501231251223323351503269015695712462473244069382237556027810280013491299875233055666276496894702081568174245114463644683001557186327139146494059956747548419850686978963111609871369068695969867304551742968756774211740890524750910878892618797054335777849476129893218870031194976157960627092480391736179138287908741339596313075544436056746824887228218384191646696463527908051509120316514124859408828597004074138404428150099472854999998961515021815168144966500549639473357090560345052067909792954681706365556939158514552814366773673492976555631912873954579444121029341595097271343342593489004717556688346014833274727257571897868920108637029560933593470266787780035498500788166505286689413080165928744311972528590256882287880341804321945711316365334169179473025060368909400685184577894606135610939738983097313217409552309280376723621685034153229743974017952050909295895446207518645712788117673373619218909089881524788956360677791309852145289343892098604008547213588478116066891470564387639177201316952986599146242087144655114961719353860371108082220951557519036986006198991672479154114282239626926435390811134419722802983066353356455522694453499635724278817465828422600202183742686028004595277568886594759292849062199254752101515294554419617622396890891128176418427040568814227202020223323909984016593243595385439047388977626458217435180503078743258262401345419714921641547442003492125896031730447330310915642439925624996496174834441600302806712927347865504934430393843207485488518438751472615911905459529893975321429538407330701773934352794692734229892690080345396733350812572672620693560185969575918324136031084611898394229913006511553758493453938191192092512379924668057019447541729589455397969041435487013166822805432958426773774692611050872149280307744462216956313940813532630850859161447208176011091484174821254789230213240100941163566367052706008646104973580247959270731198025833640015404419683082385524645506526944363930741478502421143326412459490530122979637724657668300155746531348558992638448805688436332814753806935855696573941772674800652635655372850894129657484822258458660556076879763305232817590919646742708247078219158843790213124155856025066106369703711884309226388435409768058120785419620911432336916637406382306067018680157026379782383013814841950929128476205207250276534885513212062652166360484768433867764698175760730746089757643914157042425600623305274314093739439217708896314633567258062283347924770029788307084077642633368882664146082332589244411099817174242550661219116443033482409946179759652775366411671169697779301196582359050689275286021026402000610232736598594707121707413588782458473120150211380820016035330059004413100654704821985502474691200917123098788570866987224651588209173351731007655051246152061369185330386817960367139457889542213833625309724780628657157417569552408601479888034717395711740788484229764002718980966645190569376996437678716697515914837714079537291783296935972096515864675639974382482118934896566641911274441140118770509559397094893145297976103088347804174499723206112528949944110763302685577036724639622849177240903401597050064896438987826432044837507485670272525850023110432153505965686549280532956479736809140317997738258163540822764375655288885316647302050349110113596437020533658876232196325311373359149833131626109099465329621396291167614442758151199686852405678808679266774163333628588017772584561536640063279604367062947648010913451534396649127827232304777107923920966240267102520962270124567411173810546772482179547624129020703093482393559891100645270467680382371200236840717999386688329860308707809876379147094698691009987153992008598238570667245424169903704959928084584554824865364402562394815451353382006395427607176307618529235226085704193857138995179359948042885490732458763433614957244193816450061253335751752159348923698954238580347824856439599791848216456334285457993057890794202590680226246303278095808829813211384807543076804648931863908611896208281250794484976198004842978435150171735758559528394365482404944101102984772250381778837476763860128608594996916680401771034785478128098088399038895618351463638153996512511007530913685275609247924490045987753126292466254560846799530277252325157896665032827179914342579383305796292746745201769195174731701794603174158962534239950771440656292950963284186465134727151773625545081346558935312172358523454392098779405521301524503101931477799960825907776282714704238993951800616853859156254896921504555476981346030791002991465085682613354385142060601130874806263662575789018174272679827913060837423420929935258314357530291533278866842660063886420937120389254493326531953385905367306556637480263345931282436475791450050578751632169740235864592488397584767081441614554054322432881789200332232826405893039737850726081386390749641158107361898910549303335962665532637174120178265517576148135092401775323321297583027181738055044017051065347191938938780424491027461618586178968818392522360003824874868694106590827675421401801808345927956184374806116186741754762550131765419406467144225813079972034711550783823390703482953902779245505097716026348950051473545726536081139681256691963168276033791650289358965556333634978478155861884653767152556887471447881585713404677730573730859603269126964614031275266347074593011550865577644539460494164317760383679910166207375158292020854458463390986255556564274141623145977988126287355031289939218360146293252752215731248768241984539157938638617101083214806735228877651355441454016003532457176488723198486586501481336283445439970236270680150977311730470525321202567840193628386287385132670119507596469144480193381624252318100515130921146256310040796769181612744597797194911397664752406604899795682407956898650192932691337000765485384907997422297854864432292266835820745470884872070418102432873772557730352328737136985404330688689949152334892410359908301820635631015204438230635820227462082347269841165904596331617362304024505300250786590624888853232880217734496531749710391791308441129929230508731453605418404675638693069409011337712341138344351167536302744350274661132280193699886429064002246239436634985831906718392205687952026009530958618327887403020946879025525389199126178446074691945494809817834947591637375154670844368349583784077675625518499623969422589895153121399420165036805786001553326701571021355336952497400132782621078933140363977668538896768852594627869004414508091337880891930833389375856453400143789745527810981960973654064522469007151807968815848585338091109013821520213187745504644638985752309592370114093402932927062885973984227128397028895106642660358092789687613110024680788388629516164089094574972662993900852236789480308364522609032594112117254036156556595031612892695652109672141547223541950259906003300418514490243399093531889855265955321100649783613023756253546430733105592637416045069907957911510107720982827097923943447846727285897997693464287262645981648622915173769175666321504537887506398749495407147301671456867683644416300202773191697291194894856944370319648791178837997264240728664695597535237886387871946700268748457286415379099658022831788274694993770011142035872045240515539489312812434992260969662558171178503939415860769554738981093650574156157777400653523911695285077459937956771652578672280819125450053240450359064775601502184113214786297139114582983932377302302537554730748462571237790527832913981901834962633403045019784317769634047547426255449434750149183454570184758598838043833437167254800705385249185522658786774785975554214705584532834977948222152832509253119853840469115166118994920220048001636993138665865954887605676614358859058647579639735505637924763105104412489888816332557282774930295431198547607535538837606850389694631321409957502357150633656333236418519351004876468272868911391924999790316632516392552522489061671294370233466192975600742995731125139102895838673601683584289242773461051881069878189956100408418868590995570121581944651599524911485289702464696748411018302373998708488387240951473139880759102559012144614496195916564697131252140264163371674940607642799588845559844997980676474326658755687714211624192987272035755217207610977172179593407425892309847900068268400191774160482054131941026555605234966832291908121681068725870425523848847220676809748049817201167776325049294423906427935860165633246182069050702591190278983083126941752517775667928365559796857352915430007847414445374406973654356126323513273214896179153153233126730164560139032730003748571106765077316741258852771836288302109398966535393126922299854788113754906127624003154549293498359129861070226353475640657239263876465762432179939153362036854395850648859709233332123845263261734458598382029672765873868453817761455722066620200766830311211718853347786737562527308043946351401818370083608857607351688043866894242670192215835626322040456099481127023349869124512548693151554607523229781472471987175218075901227655940097430739578601422725339162760769185914350777797395899324489454323944932654212004379001485644267214652957878876857203247199198716074386019494132763838934954693747698403143280353654254799870709323382794276655252892087261996253823373962001269352116804232204943697780949144648924725293859147830076910330327874918861155796864668748260430594594759909779408025211325352537583740478425788549194913878188605964505523721632255378355460238453617569781642368004312556565032706379627830451269352913400495719304036986184813570476614726750652658930415725273317152376765904910053705674914246223347467709490208811761093703278392315406592144258910718698981236382247662532471349429268887355544445190952938035566438984653437247865779348050566698417280161293849354504590195346346101443527924515874798304237222913450777151389680241878530621813403598322941272621889778469841061639004352001128079760310901791007347099509400350072241688645345502251439151534386784372813629607131708461496359432292815066792721290053463785526337738924044939147326517421378695047958261099787590532068951693401001565495645927535957968808788565003821693048270172382226546603340528734517404792102963856904185369431583720698035913066609949307410710660295029918121394804700572138822565129150817625346399193586578032575258065307470566059290407687532690632032268647579259327613339458441360690131069300449786334408956008413878194591737934740356988761892520050406112151094982386898991339219258384669117491253021787613160518951317767314803457809919686125521621912439458368210618730038445847421710109391635953073602304983824205826107710393000255828448090863488496729117325987878204089995296650606520696742636166896140862418307759500597159341166236355476445406714689261428991051884866630868809036448876871692112338843729245511831374449160657860519228491725921842256412248866597398568429323372687329910370249554365887234607254068846672859909227401984225485224596483726136955184598595671304262721539776448573751635912209669971584019343378627096945989193931008719739138112884176252447445170679290703844946215517514728763951844335571044829215842979376698306239851154344915451912058651215051332556184806771066089776642484761458312152830626437681562127140734615986113506909859762353184648377267416288006885488681637197116654132606612695442819116220806329292753810372537390104570367926226770738138500594174488238059908043625938501087736700009143292850669107985745474574551668646032102111384238803284674089634454185306455189856402012627569840562911959993016493737580493529354480669606890883176347496163147660203320164888669809562640074803591359913662358816572082601336604430788131391145868903159880684929281011904515715665306180593399442924732523102529287967086824447465465472029642642735605223216265382149499049118312126891279604720422165276447228762855977604160009552308287836502680094165555886948337842109288678981969157079361247572631828636496712453668856089762431623997826638142602233013525769909159353159432181670617415280949107069918392339965325582097348232698060581899669801451002569103860039621679301967640570597290257182215647922489112600214512566054623641888663396090546422220263861251460245454790107168904915929407840486814053812585604445555342650067551942519291446156095521217633419930010465155678184513708201633361144927116011829067159558593763603690614019990777338901830339042036067585976283995769088549283882401306800290944220699335651633672987570490762756218503278368275002629141507384186409354211617538810427098334643079542973107504162329823672878440280203958581887351474046423227440294577328290799150480704388523963465262496965835315461366312794548017338392022429347103730838777587224581809420352741945509159466913181136635085713854055167612364929710067099214548534896566430092154560718974869288318599429946203726545018801062899035638741604477933376056039897670653395891286455430937973265017160745862889847056037757587537680971304153981716250276502941698525867958912879876335192362952364119008661116740569598135514991671692381291987955628290296162139072129564192775372805550696406997494520584095905039269206691664948086733540155948229020038608286649984865481546549874078638140172941987581864666823835888720436175844932077683767720784481196043357990546740013282168155677450252204402505917048381833644347696218167938420192525685745298591880367692928382062777068617974909574128577085522666964149460594762388119828793348785150141720666196510252020164927776010922235421436859926843676292791668537168613193016731474721302999793663863815944199158113540370991216460644327943776117231356209745641599519051792353944408447374038953931153399342012071179499776465566099435192451335271723906557733962849727762904243958152839324079896831526284191604941924194722465224204003398800934064037290089538422475964641047095813989627351337765533278052167511192335511200677738924815433994113544166987128948827166719495144824338785617249820490457294827541523166479506138326169013280634519605579037667662624519954164294513912562911267055113752826519233925113723457514057558928970386027663929342093377843288552761340021114235244267951727920528616107786991558281039600686026101459794043881526495102887638341404543988695584252632928085177848522747320413360165051440262074272094141297454521064183131058089321451073840504526850973080509203550455881176638289033681804059390267297544321135547523640417797472105481260524020927203203007459783176098694610473755071413090632162429501896736624430302089511325733854605744598986681661981230233753142814980099697659157668299901706268765826989541085444377743289570992908213775628363821924065904212563560725162567734227846966497891904629874984508280895106067663428140412420036056171504824894472520035035949693122367699763808423403567393460776701382672366413762712303736444779259303977612338160535374134586857091295262750575481782439634447600431244138824572456266244589770371915821527727556760896478706069978644527747486668496949827283408503024751089009176014820541401762743846887029539007427916136159345676921219996570163896834744787081820926182808585158021161510056551459641923615406772212786563831148909230548687652970099762598412720461867387418041791770940075737270869342751787546997311800707104422588755428803898465323621659908806203005012525122392707668741737446642004981676514793784246289733605807739100097461270558822429227413970365238985082907064004140748413195916962038865102478363855417747981303628591596024547177936068119308258535972199361758946139007097343279761654606955951455375541906059223023504554988457536847814279588879281233686640524189808258513761776733877575551847649511830703691090033671587464444633719523970696432020639131958889116649184188793784904135412579654908768951273142808400487701071196705944317596233839066590706192598229813971613050188076787293601654320276846438679757460730681475815564006938938406679250886744149833562755055332843655691787981424977816651729902311281945509993650564199386248349892357659250124800854943811426383092049473950355327146753026129148331304446968380941832329098567839662643700505183000916989150491082782572540513988859206828338957570363014744063039205161109085783711554152195738630738228031873233692296896150258201345756764166720815277483634679882495918768906371489798374490702681637590997268009176948330088334817316731592187176460045282559011669360874211685569961832788821625164116511371899671946284652774434237672520718407773872769066560257836096665745209942830023947017349686970406583145708959057220413816463528234962725626733517297741464356697352598613967912877979519165998540581349392502396125764601307691701152007634671843812718892353959384643702583628959304911523032045381315786104742974740347162900961314733107491564796759567478710424837649673378284274424017418991120602508702093607556888747437449691106828128875037676132953363806858647098475457600116579595553147900523057242765321032351763632137197937840374539211104896438355561664431966853387669369415066149492840230642034959160115295008950800278014294391549220946583312602334232837059508745002498144332955154929714911782483493984876130405832952043338077104615978634008107209847519594298142468278233691656329706957125250390305273304172577712524038558978117865212510335826294775664472819573572918474557932723273768774522684212815459399956394356907170652205673943330579889595673051288152009378006660070064483070034264248839202747021170335944416248930382181833580939817505112111685644681502689319761835837624220851637381557510653912193023295239875408742793539999066014177604737795845460469664508553718289749913648203640702478384351869467159233461858144239224830888678329551987419434784869876871041927229262108511790576384825287809350169367145339409765347071309390371424143898720934461580167528703716990548245604295106357710670323524028562290321908102153839149965026315284679504696051666890839165566435041390754787027810257077203190068717980931427707052798279143966694846252794296487451745028843531167323608501464811494539168653022477939395201147287019069414101993630093590627535833046717656135365039346868235802958865229442754267098808431587320194172773790523244550678525471450733644602041405926620903369268210633600795063101714110621221966568258482637510470827675335460889754761494955141080938180212238031615859923787021509562190809423039264200467032155080016038471372134182864218985993780204277215547725426898102385655399919794535927015093804460199161322534553196825965347767622400995216499230623070620879012451425006063209052195681632534088493451917504940239270173274422789571823966601768416467146512063604362723312694941835369676786251492883513469388415966412894419728772844964642455084384531774596483964823783231600901277222098008136100391125105056866881134358939340062942842737101154244833132334298448836546190074122265218192221771644021936461002071979815422713631098052012786428776703134065815463367586975117085949380505469961236835608395801639593994785486229600174224821303734381994549714387852208765221025049558293141656124890146036848420695003758568408420850626956403695794403487658334709069958639173640164799332396288787364683437738852526264748139098941613982489074642393768919952666511859211315553229045163083102242935773767284603891541589840804707312155957595649048353906795207877122402284583453172200671972170064493556997158309574874940867145184172924262011241695033449022218012206440879665796674964573532550595673229623953102555704112244735229946573277979727195551144349749338041286618116810392716297841157960580246387648309711536267756457676506341045512286100322312032637601218936359975967659700094795739821802313519020952048393668627024980089849468423182906793333747196580747234021488421299105974946438884104348016209553781036181970684676152910938088049684380086305525495638918828481676730420011138407632704718982116600133753208270436914976754219276924991447673827528932950198180823424310183968176786360357201498487905461201135565907159722888160834983710536749078820266886648848755527469168495742828651669130983758996844501893410359605378831833279424379198096907196357704400268220464319224307604994765568883214955563949288095315700942877259649214928957901611300149926030430425481786261817375616964170229215595789385574931711291407466970779443109591242287166490027739658409559531263412926879514864879988846905137694659048659712595393180084911508132700547767617666046907131411823729656701089483061779211627658842613349786909172772710361814335016666567980852543045328121104137669765480610300718528776257889228007919779889290069204400983113267672381037671717274280229281995256734182587478314391558037716772763891565796178019449919199860613530795315369219937131247560968955138982496570527563512965764549899542018951279104675856808712854068467444549344377060363439796589889945570236565336748035292906160399114601759134346958075217211410655013286763431993538317397316206605204638787579461911590872868709436006511026035323248777235382273183948052415639663102462986909224592022727559964668010059874479504503999906488732238333548330435443572944444121585768381568032905325647243790566297116445795510270042923720581806145636642731948863024648072094589702966599627007811835259354557940115929243835359386799047314334315048994153175094354952322063636368472046058451255800078778302805957837027111374733291348651277401508538956189522244949762939114340678423303579801538517961049393107861592366010144924433903383280752044021141096586310812220208316792222389099537668662953457442680093048592522912706137549848588408975585645607485674792105636540151810537629493407896920959952605406882039538768203128600351134019826202735736829379091843365346861798241900888506592793637535489865492740164469677317212452424676045295115873408728100516145869047794715978760616369707374798777492330843185947304926795260325870610788374616461620574461116648536773719525048815864126167889020145674389604567906604423083292360778431919170448735078571256637540040005103140910111194258546468990677212099550276014335343402121454768877080050862483959472060834004105948714980533360522999292287837426794940318424066033478853175007778979250861433917044405115688680496871592650748153412639573721679243394234339738572839662706865900725174579636253347263381529441679042702850566534588781721875449580796912483078188846630501870922178762532566375967154822151268198224760506331842193692184710853525751718290370164278063177221582827291243506808547594800246743700860184146325258897308314964110931397679509236714010272820160469560111242266333993928803552943781988307433077122214001237965775816832744523914485177059424983097654301499981071372812480582335511141074046823071864018699759119381196000192689111984830073628824037137514824091942083251134273080037609925057509917069255594174423806664154685230394782744651486569897640941458086038321082408853534784090667457804383607594447686226954166987852923384233998582343959676645765969972992418583851713029255644381009661799893671677131381467269605229268210798775443058571048228238587187250836293293612981731191559603018515960743431546408204445471460792920088060085921366773463348010236226300662818599177673756273242738638557267836590832084647665890054646375469350936373138499624554381127266599845163179574325021861507592662651947891711339672806071550950496092252787457981326060088327565043175002706761296446990792672523550307509096708922525272182534950548375770275514346474790307907487714802174181222365774811914066337757088484000237365807414325891321403516050865650659741737383760536537227375573435649655260156375778573349111963207473904442911179101228556995292823124469487836726406351194135866760204496351520430998642215325707180855334248901530924827099330744950392397042408222768345802357646906405975255698579390336376963957226862528032475749922181460327407986904858579535779395380835966523141817305885927883298148357675856906112027262712760656876857145768479368295259900005245966801568762012336682328018949348078661279555248739691609439622666360607485047046580135890985924021978048473283881101921784378593697570975530385085153305161677429857917027082819699539029846667684707748181875891652744850004618643904762391092038451225946322587723430809867915553791836667899769522696049708620356988532806298363514123643268816711567976184413698517275190793489616801997509460681011087483687640001803724591638621375706064999914203758073616614942310786066652362922012327298361076909331424209964950933144680477846598827413888599412491228933878665857074901746184454845225974849120208218980583392034722708273339464414796874519380613037416529162483579571424865747441999796826592602637210928787253402905917314756937125905490264126528608767154478493766136300631454991311469715210626585332602732141387346487192849686159135008448526054568658267580031124858543107772654587198269443213291902494309373756344704821947511629281120465954043007514960826622648452557219170669170957085533507620705418010089324123709090185147117641577552267982105807288968111331778715745486208925757024883620720532586026326467924708903829423382301727808161223697645268586833125902548298983822786349915799533992167980010372783982502579040169916816262615599250247679143761050105106578185903713825218746443768876839979060769432310186395343367709230755695070747979983985850810981688617781078615646088742711131515527053074800116976326833754995371289859296772895767802154796066279495849902748337911647226033799801286708219316289821039407666265012697371983538170580611823195565352426085873306505744088137583526405896915183657442181310993995571720032269996083244079765384042101735396831621456595179717784388269533685068251193885680369972492865489399981460277709397901196928167106252410100511848919452540525401240222213295257239577272211040713138235755250639113510355906234910167277687804436120080336681473997520755898207243423820974627465570451759659838986086446656879264221119264085941909609488650944607489675832947482943730661565654019536445674292450458898335126182187724034181827050274023573024500158906270414746184090398512764402467994835591750448966110109082787210104056325672045393131524739403325938762375951770742761393967997228394049594761745585441447979025806780080557818463658518778569529374928211165267689224506473605461566436335544983178560627198955224128512129762373332091610959186347520122400735161572195550704370632095743661354904055184243646312434925747288440909761262194594922130983952999595706650982797546337216817488254092424925768246308244609217656690342022552615311552945927904024843421171632636147643041017278410175744684886709796077804774244733545154578464812535678574241780063507960330846622005912000213944637817197964347819103131219803440317050778462944841317483731469441846164720427904956071080167143769533068792592121927334195013553775757464159617398394127410869047586305945642168474383258025566815743839143495768751713665510001517205486665477523176923772579023419421417521091028528934661872241067189799760093305476152535560094870257950011083494147688227458453689437455311135273265944416180184866572751498443153047147258618452615079222497518250314250645659957120190289874583638121645940100691592943888960430211969605827023714062668578638975428503519488930827661437206517566463758251112927801319555875798056912094062629182271369200983595067522833733338275970296866860190992194450818229003264751970974311270271280889380597695037456228581899866565668323714043830364159681489644496131224888645334603728546134342219959196912235073817083191742228025539304874692784289482204857811258060998364114919637860051898935053008391428870561789060235841209157764540652505488457058763680722301369384847912942096166979234763531920966979333800315146200834795445685558021909250201339054283628449781706377174541831278289728121713129132845148320441058896305335086490170958168783126449044942140013781779868757072134839769306942692680653653552631647571914387543379111794667249538320664540941742997148907023190755120033764590135408474238848514518232446270004618560498418273798551459541444341246844774956314288255055897005095117184201232430604984621797258991681454923478305064250375298623159735098206451662691878389020049594265554511268288412279066749730217319055217047518887647737328810374562361101426731525111148432235671191988821239166861150159561468052129896661853895202051305233409674602012906626692008924526380803369249828150880574984094756073370261362528598783552566995810381450769414123089749173676124287866666696548768775014232788892552704062073742453780234916339139900456129026283929573979582696257043637146358956323359390177078864561806026588860443994899582766028667466465883921862226609693689349815779976265854524104545915424539166232816457247214046869120373722541332617170293496279196091800529305102679180467607276697152096359312492617215629191392302359640640833763239580233530845166869867883682902933128624012399115006961300527141015988839138809237570082512250652416448193168318163894130042976923998720434182915629291270341646007411550944504590617749645074004197333609277073132573668342589899325788576965115603609316943416534844261726858263660709340436391590915355159026553738582440551558620495279284076573964492224285546245955112620878854720968958409984513092450518104885492136543841785659749110941256776831309375859516256575818569771592820216104781036576604215002777930342900967954273236570383022082476037885291336535068930469503053661446160503273988916458408174593671855160560224045547661566811767382219004732899728112202876096328017288768283875273423408684038459181670667685240093748522008437741653481006521357131633579015213816559884776555385989007281198485936422221589398298609168604259697935090059526647205724183399825348356376736285395916189561960916883131109057445865301718660282254693855222563723738216818287544182294019414959654124765403906423693204919242693787665760447911403233826907320441103150420790324102025327867321060449196619689339347142414730681270181072175668844419242413810902721126170625787004780510138333674709670507376154800215708759072982895902971579071506577572720342070491364329265834615724470543210982925223478320335206620958935720326089990556131557506093412656732071941113852169131901224113594387424185663865343176306900194196239742056599543596939715055436075327630576413883714282174269367639210142716220389078974737391766560871627715031757334785120601881856570770156577354142178713311439315735582740206030633073165953764347083142734990908713843406220871665463608002764842891357358020198510950758066298246992618277684500264864473020050354004083940568761611917485325086767508119067680389771408520717994207128782349203612399221853631680425855410402691956339939071723270124740559473982894920120038338855666745931507264648484808638705002234486776624429365196711675940704916976353532571520225595940842577700114496819224595538178136155230761791087033324199389219088158800577452412042974674359911963349864723916689760461624333280513105044155863506467594625260875315499000595805856823939455835101973296300556295815459208528037921268071782482269225497884295933002829365373068371367408112518211359012896560512203282916011934045477018229428993879578200701476915674068159059610549919883256693660216168158962774445119242177629895852452899956533862575596200641397349941086110847537232824100407022168353514989990815471043644130238740125336182918299738697386706667793445061184036115761306507659802762976317575068268862770501001922497800394175278929138745250378717836222056703104912481897387261097469770277638184492924403259369129004684174535432321708414600120688083541084061525017230312128992506070375468793426720260477054109364752707571443205793831006100045102707084059275601065908188501303976235814475143136696809963805367182275099452919366874140359806858017089095913973447307058197740580809864522052526095440551258667653843129935974755059725843036416642541243635741019544606780151017786123337909994531208309785696193103911445655643092946739314770638175705460158938163921528986528821712894383958073468381772916543858718764841851788488024650346093258831208338436787424469176447284392735067396318656094807223465860977286464394031196826677211741215310643851425388696526519058290064907992591452335553192123109716094874396007773148345810913949333522959350062902828457117202452158968222364948161011802227669762293301074640768807091235484299241214460125774752629037911244133844380469458367922448962401796631267285983868323322280382831864941989896661980321070898054168222892672201209200427894735174349438780086781480697480818945234888457483024754102103186126534761862346658267300982584913060511581690070504105682800577701484539079102660280985335740185841890586470193293336004182762949702212401664202409950930015704325151278850527873102893666587698196767633506445500291906714458232091934073343669784545846893068083618105899918245701848084781828877008968568833147664400787662781877892726730952558171931574221962715701750101882943971475785561787316527896930853300273750510523901581008322858471895333966782735379483750909423902943413350977156776725633602434165036131727972172562200922335614347823150862128260464421310001730767984317886201692503220177307455577743845773948071195501833288514573149418564447106482936810670532456784993378878560589941583063856037662348246509946178409193083803150673170940413726008129338962577100912669987796188601299856854748639462285328389602468305128571144736645809722554401632320010015411064763056901120209422557443989972580555571343414661280771792732873558753911743565067481553904302824984494123691356411007964142627631618143656257717933469269375393815012383321003117684752865602141659409495569747703440376956405178537346924582528797356876372487011771920659005355745125055961487152363507967446374975497622589785811898485405814015645127284692785862045227442198725670573587528446391445614628128062282171359281892420576780206718395671817004639145478239065134979996813632449700365318177793861479206998704885983534691783958809745240777411021191989987804987493747082613216160346878753017853186604386760153450583487329177602048839501590908003917555112111376556947068998970375629446532996123393984908026737071796781478944261767355937561324866280747108991498132735316804011168945982759863129659409742483345127766559119752002215163662698507797682431600584628790536416745904472505238751942709246804741206525600756142877984759435079152171954872200941772934931447992736225679862364506450861930159573517504782825329745716927398340360149509776347092926624249535623027356566171647409903511911782608100156798278992333765714758896662302216461618461191454404054448525458668409084463252498716762711006808710231658097598493756724824808855605508335896293214885295124367617800744139038580561310349986876439222447555672062031069017344546519723835707641661217633254978682547941392408587138228926094716697234211834440819316142851179044236696293934779329502667353321602801075429090048348937374086897756001157149262222095835151713235066596261498625107481653938998234530550085849066659440472255351195013562966091619740206297851556388658319239678969347408625593801820471272958096385738435266715118810598077816717170137154153127798360859165886477431387053313403175838546251079813718901062912191652293548017674853094508761873967078003499721194597680579706052625371193083058345266309728076807454413127560890928650341274322318305015482272278158446787921777681237739667805236700932036381256902201430058075926265192023492169275676084471512242661354044445646789845539348861529736168193713846285971655851043712178607424617671029019127393775158459372004980191615303349742222660750803435411491071836098027341168781526847803014954264127201503349428783029285968816028334680209687672138722343126708469949981236798349460310459697335468460673477710576223030115073650568752216686772269056476653999456298373200191197436598610685225760176875067756147743081103515329278689572976570925918576903504609583017401359362492076078889897433581892234181793381120523379992682226146234967250922257767272236766064072018003722925545030747646432551992482828811240154507410042955917604622652804573285981183761260414053064502538111536608563124427283387192159625101258530607397138600250400751957987675526276515565708410832256919238496563254378281121936888182052371750498172619514946809736093475240081245072594943104489792241905009950739182288243784751460723630666800173745135235263884698931859006128237532315662621625524551636537032321482664834794373643895803388125487244429702953954375601042640642891424816254614358620598871601681912817799880474686213088291196242541606603219542215972787302351455537579059883863142857583700225691392278616817166772322671251241293695396809163862993397984560721580507919920230055164303018452419767910900429005692158249212440748383229394637022317220453943872057411576734684501924525185632067383804253658917072738925013972655845209804868548144313911317914417227414880979280888761365436485744761411843411593836466156066799776817142876806635731042503063985146238922099762681692516149880493093568387581143189669514670339519578625324869001849715268206142979323290673860631659622841570474527886908782700544258592915130896004863713382228579699954959872914084517576839382826604991665707560710745943516698135482215009441310551118510639149690538447565471165975752513893958938643371385254449061052931515909482731348249805693605527083084529183534088754632880032281817683209985198016818397922040936454972894685784121056206183472752340386253604195904228974026301345310612544614758892568150378181470178871679379792468205768015033148205375325087166294477991797062470414004656320658836782919398418955775058299278582104987183970279214838779100663639905453983677049504836451117067646855579487673782392870091229364433961270650400612405081259710265647227026629898674937899518165961195053497428922034421642029084492055390979956692289315197525125961914159812570805433332428209785007555812608528606104112065637940200134136749378280212108519396522187042017352925824589353863867043579869604482515989203323804021180927603959401431841935198930011644087449026638771891109448907045851698398409192805368489925667337656069890144669191045152301761528733189352740583066183167133918676301103204990293135070562382392495494095669187267502045138418233591737434756082894958834274311547117729602643911087001416383438622462878314287379099765411068231174746850398288048229523557920583920397544415011298537580341845812666581434847166460393279193194081886041118652023988316896959485304667618202622809280475632824815354320558038094380264194546183540736644359245094523496291397985143031424233938200762522895810585414888488385898482488087806358216942457802057936907348749686130851824495027198471585463024093131956428086352061485709834051054592228094932566240308551616976375980253441077333560689837725012842193649718227275691525069227513094109005140928290612215182173746978797352385077726146825100379117576579555537371740103007705057429723252458052254375088156638635074050283847870488736769606440206224251986035830138047257285078227261455854979829534610695908624216298182420300760754237639682782718899303360335572247893208123276521415193770627793927426936425006467472494651390863140395811308254738640090953941920063404157359310023120387709177769479546487816314369825335751207246555676271835305264987497695309774456869405997977837089480585583461999435262313130411794639030280752536926129031653014597796892936699071000525067952884180443495199110398356259198148009583752329991704702281702418098622178612977167756721726418657238496872459794184786391597754818913914602294282160302104282088417566268872710715380379669647005141719871079228117664240165421784166053378178467242806544249791338498066465927930396780158943798659400760117525578087902153915918100223055986939018585065089527880289621584662409477857991243240189124040827810964462434839513148467873928234417166934537950774665900304305087061155393298649396441668160625096525079016560898545953754269313769974731130100568793990632240854949951902476849486518114280401048291423395800407161974172477109108948808646248026392491270528620117656206911989230670401583429811323844231131651136362845288949175007535776347300840062103952463824612230547733052310783870314090269064504922582740666277813180516188060953901046367670768048479754137054475688277608755121178459115077569176569678355573317474082976662654904261952949841015264798082973409756544283470766908468979053049218772689153340098317081201942048139030693515643084512399172280438324190033719466610196058130767836221607246967801788778092551350977032507479659903672481699038019241374078341618786934863863830881058865064702932140204968603914294691638652238434036535764918492385303288867946357999940801188012227810414747777659246360707498132471881433691324034234024523756990059691207765920550862500972328643911786643868244982563636651417274124551153978727573530777630885685737741954159179791028737061794320559449071905871392688505181961864572288430313700684258459330817210090173551684002154123099951158807146145790460700741379210851309957788106786713233224255170000804534367278731014826324289280172899710783353367034308391997836404506102187252364261063303924000680176818448723471784935646328874218705946353562662706106153135246334326731714887026451819962102421491296245824877096385526110908685214389930063601317957992410616490670777416299751594191177601792293930631841570009105960831587170337370093014892101026298623362160736044721067738261962296256561189778592942086930129431350586029499534793933947478002268905288536263859658088663224715873271152355653170011409462425335406192558355247691227734592478651158410135906968838607016197588331451077038083035159114941519918439553038990129346576281350835420124401301876452235173855341241992992786833304697160159733897107072020588980131438223243138158279881051008301797814158882361879157510860280566747328528950531900144264279411192020529575492930603691431838549419568562990360233963512919371562412828761384746707416246969967060854731425954004560691258702337651440151882168703230396313015085663471639520613226641239341510166585697045979441449856729801403206484366642426755589471893824157942909007687409797485654114670928547133551632628616357167466189049280325207577054741078630273652695399107893424912894418225593135962409236323361422856882247578391735347757094686847746782124375035564160004750536768111861131990285628387468902715347869807416676783993572284346758395540358866231588000344379408394608685632296880178311687983632547798747882421335477703294964546089418300334724321911056160517440829241131134914868734689919333220701684223753992690520975814386447791600269472541405210788747523351472161321538706908369792258094718848271904830965847409325454594780225479292728373815876030886527231284604284107879229349779870391725652990817945961860478262982358486576789496007622228446574870981308728186421203948793116977913095663885491458232378841568220274391439627387971094859629881582189793665665994800594936524789475435887222770467800617003336831136664739097251550901617671755860574925131083140687227148979912466570033859359743302276606534414374306348674224857272244580821859112106517672597064674970336195503443580276556108509108108104156174163509882970305706165004851263774882639293368262280275166514761602390751711620727585665795183712410198955149893498566714539462288334265477106469588574270714608087646922721093298807624171149806414545721803863976316108692543062521881403455464873815804742390869558960901377805839350380205150631907303149779008401935222500358107348545181943370697271620894649343029252657904048666750362182640663571652625615430111941196060904445392649812790619402772302814022600053173337272501283711668554125369014510109941710891661734771305732799386073050514834643428337349158499855180888748301361646187762188989289790788191554027706904522349367636518206643817239742711266422517301371375600708270361774354795569713766652351868803869822281495720209815289322198080889163396668163513350397109142265407847905926888895090175842029762214683393931934323349635523582717345747322387039709190147630221524721644412532252172555917764358090442453566660641788750186796236554828190636852062982422702367784277356876329694304216534882473591416240658004624085114180859811146078909214534283007505838403495506567665859160787899179419192626076351589716852845995779877616937963126456185239203351352462740727077124608078333534473659562792693355880215408057581940030399344971318270269266079936985732187368629016255782107848763700847742696812010934652567967886376048743077379312803305198379626139798090233733760644005163489602759651238444489162778135997103151387898397806047841932966046120661623629860518612576594158062419236178080193447495190651926216924136960541450204803807025686912320058643357389137385101039431456415971299826651408902099359583285943699174714411302227168193839186899494800423288001336325861615125729597372437332818053288312942725488058728544769245995644906373546893842121085233074496721351904769767838112911354827485576651203525808668418562777205512478076574839121769118435253065026231205812367045812633524222353956115890972118047189907901178074278684949964703863494473831646515787311387202379466068709784546701375190738120339247627701477160075656594761862521634305308133354849872077702432132353035770569485229751240849324495201535246012917686862931895514741726078574214673377617411017518138723768734848121117212504712076972963703993957708293905648713991684841063868414412974361067461892563644529258820906068035458291474655460285551196430646167180010280473980768402520511196313739291910946768426145092457513188637679736643200626150515050100914353002031905579416622044946854925974447733223964244873785122493600607969819815204446307645646615686972526237990257590036816452011589122257738084810424073954935855950296303439042952507137040068693881982861373250187020580301405592420642989625710502302988681634828179256496107315554169227972227556435880571955882616635485791361661405452610938519241572978070223030297485119875964180257667702769351874766051906054296078904886127093287473839363783909204224575188804624067317672386118327047710069294593163776869339590313383396884688146259947342459940867516786124729190575222519311060727207935231405146766466707565390642185926246554778916693765413563622243561482666886583054490884642165761648736589133561098785907413436855849989873113238560571492564100701326480098040430547781714499175603740906685367924391473480247746140707825477443081819578893062338312481869649803909970305550105877835584896348505769972068700625529323902988799754755019585398511691996895160964576919397768343510868732696702837129694659205866334659767008459573560746608242445801497668840149524282485936714358021018896347113582304715418689713847518469266181943600211647778132457895178059985744690959845616179315444234119755963222821030174019286313908193168947204510831837517605150123333072999192437062586469923732095810883907768754609155566113486332872282406036936332062894689775382440780549428845965004484109248607350808480747400717052029766640671826586411697973150967491015384093718844963425443054571152731961782178544416867803376860807006187562692252482383081529401318655208650723972937799151173095121471204630370664652458619490455290835067973184568443509419870592756608871923604808281818628758351496936812928586595212216507394542672719643852110999338942145403471390947967166773897066924854244737033619660678305800245504787309429008401705761929486366549796433444451902639558136514018818129215370555450419288117329926514697327484365002739726780043734567421446076121022629212047255748796243163595507903529120238957427933132149178099088997987354091637669010997981207838926477475926037167164424696596915239854367136991035582701827155033524610612335858730391345515486189253414711196292980703543739275153208392211732552196187312219642324510638706573899526468332541490688486644082162311672348382395510777198453527838175831880120291155582989944485849260221864091426430144327326107570574399221591087443083937408189014281633854512239368794717398129565698360961494292009965802480532528260347617630744329800542749543794625446373988872766375824712945334692540411290062335220488521078269902159601989284347485374835901176010514943171369603157517260643122578197140826307718866546272212137525160644308772008712102231917803572530087259351863014072619529916889584322921750079255999849293406061658731951838113070602399113858895668986816292097543948378695794075304179003502506329606732212884401035756399247958044451992160029218832119699517150126711928380873417093469070694781548965264213912598397856635980944770279381225855982907910316027384181330889990582613086410070811300864022969101910964556049376355966975852017072372492079884987213661904709667273271640739358862266817848429840749314267732191883927560079574568675590733349487411597144190095145370373820547307921015450910638829554723644778072097805686611532526135769876404678340183237858659885668284575947255638690759977186175107782210105789648052497637548715652516960862089658805271394850672715639424622633261332342956560648577284841907395740595330674130999914715332697306626285657275407135060280513939931668593746305675754575449054437163411429869758385803377425890222095341211951362723225309744352818814344569374224550950800721624793937418224813106020413391781514093614209390649611992347315169415201301077275130499649054219266328845787910143419878154912976157605068837157965520437048179773339108725599869460721048979122848989774522002073293587104151923728047423645280685717433666431178608336424761024837688563369360868760998511048982426769030688184170581930371870091487738759197042226754995867218163865842639501839476202166180787719433527847402125665492535225539321245015746051574352802644469463367532392228248566702210573409879285986568022303674045399616172980779030763632210420062469176616737499981924178458533027764109277642517757251212657013727884586740508826219782917408071272634202494769803047240739560878503318361392092921129865197716846875300956203196588024577973186660764650853220824829924607505913749556461663874409528527714141250207235832132969716146540539820714869209747804323787222325653124780806768684263332197268751189614536900395564323561146765982174324131177831756608809750440169254222682751525441199338916894591099249939231637771399598719993229521696277616997790562060833740556747259116291248149630144830994230904568321451406280498891638599886656968551301252085800154296368798636300502237929898663290719130391661251376449031710074976890542501377273019555274393460140407629942163282055175227837291585350555224370573768068089601341245549092519224451099934266319532790673888910617370128589173911913437210881667679122080762173771078510621214590779609218699236335622249872672568382641848507701950220890723546821414455575363898310099938328921236097634431939991154994317089484330577961797723438037010990261938702290889065961491882992438436056608183762580696242109028734911674972872893868059460019148833711889011552849146039846736009699557152857818321689611558270342212646506266691193076902351356215002202924369737553059678753588893674183941383520597815790846767121563924703838547317691949450454663447079342217424983568892392348043261717921002669246500994350214074364331200658732621213417106072909557720929344197951276654341040936727666234343044479958696499667037647554583735001156329981861510001817274722432222320613851047286558676245991605567252165040486442504201248346524494100225312047928339975559964712616862855101497481696109285562048384129968221554666757267354448335100233143634776650755531216954396238582740048208798632675102028233834478619979519946336187673358143911864341444590298478459358442048194662029465077200090924114864491774245883603533774032080489733905804770851914440921214024469600768230167014856101461217298139225335400293105877942633327721011802688594164567389651876603329789201009639655539003032221380652428705108388772510449678065142895959862072759098056629126838084659904064869673075694108022961190292852037563790028934466220167727358895112458771094951814177674266567254268344824482387163607566728363242292721344343522765098596127277970037774619973834898715410213073128619940723354643096396867863447282939533857343807083054250254591168713279493484026642931784180997587919373602064336714760363419970431330538407258001391317479467389579475890116709417181249813608986081815206020007985434005866774848839946721336464331005115900235014073655893773486433481357127325182560430240371478801665418418342421314413682133020006671229221449459410005103609594830400724474245629000187754045828890046791567210591033706797519432703052202953707686258177387599376477576945723373734402932758413617265607924203969573807759580929104650222695984504692794936833361321425467777082796285225542389076861337498666187770466847990999065892925264585699420829617409969472849498860127466396771301127692990847066398205426493253554371698129553445064358009555214181831704682552883632690457151304483403914402130897006350206939261176605742721043258809546172316216729166137491267611686719318248573376832563486836100504848775110395504882310610342604298102483878495336617155373718944125120320675944521651702721128466149285520544740055745876426542347526728247145391923427906511399739893208204482114503456673676893513992499984615904318120376448768136272260878778470866294358438911941350245952923245482499864745767839686781818765335282683032340319269605556964343674337954598955011406239317368266248373233260307563243760994150070826618200758532911988583957127641638239730790755735853088410955344269543478737508596159247684195113655345972260440584495310621704635024712649089713289596450934019613631751456330772331609105665811181220872651184002547738690470458210867324612798954953381710715297014620084087221944735067999903584057571655377368886722844125362488754341729222099548655706743537905066704441238140673454214016849728091332278206998521375811369500256385454022868460807576962446089721842550449682777518913698446850563140724500718391260860756394047608425187006644679362536660357404162960692352679020288895099836320814563081442631360212623710823207872132308790347809039754330984375542790544556704431573672963821504747438210371980130519941522498745087445876070771384884030051879350146158168360242831598938481633151806287997197054093746621612400774335879554352518979344551160729981464201381694888330006720294538173174192339747492828474371744536114356958540549353374796574123070674927823584789387046234637804347799101392155165633009454564382743223415572772629327829223984492202179132849905486531056218329313202910051892580785940998426171419220956949914217343050516638826485561899694433727027855475936556418037813942992418492503319356442042810272465149508641333935963926941155666179530902508459574139802951842337750883499798361850983628126787351562351448377397836632629666384226970420449633190897327267246346106115300803822593887207487540410333003219156270574409310586010118441084203436376459749928795971036798031890720433393518432793680596395980472340761880920411037926069818525665499131314171338623116638998303616974612419952274397845718860160398994012925166204605941773637381869584852342639051887898695553867721511394052831433332409085026936697310720135488497218416017137856941222226886418349745391931880576600012882273230223420297891642357841365925824583674499813115361218649561419908836068943007546553881283203539364551207896678008620619753579685001965000408729789659079916420498083909493912023246132399061642750979926980535083175764201902478350815013779317993831655522746314780682022876799527342563730896981861098507122886872374854219676928693664242276056903967701945888441777108591423379567221639134328448039133368146785732086160464890223650916968070317668021388940053856812333964537836166360103145802834293137462790786824611265275157633664637601903890418774352327956239345415585054960536498818394648044938683155642808749974637236563563082452086348817802062914871450223428508945283295793118745875048382971314132140713842091953029868123476318994292825866869245772563664421745239339436256603502653821904023785342787763805401510638324856671877462298095819713613639473623796067678430648496272360490187242789734865823555514525294425644425259323387067447065359771596433087491867897896324822919928322884262345924671509169464800327352335687560960328998004730854649918853522421027700314920567224332667576435586019406801822839193961418117188262181654970295718229569222280262963799362112864452575196699772927160732181712961000391375196098692989639821823833618632649693847221156424118700791418633333540434486352261282538205402445893364404660812623989266764070252810549594360910406055606378182943971949649173140525878194801186060441464938633428848596483257674662858097450025172484025671017450494991696567777904699873922269077722623700694344152569001499242129445396239616576522052707386582384561167072994083136694874753750774449497822095208526676104434206936550924234978951717650874764978034868118490812841310104683499426968920230092003188860166213803896291554214812797859803108704262586313655179173498009659998142619483221879262153566891177723204990715163587867580250359475993983251023831597912030602972619069552338007841972146867317923505409297352739028598989209428936985076925772632650637033688017262573390121166462486812470012970814407519931840696449627728425437441466656835299155596539667096803448144124536021584109921633497189923196256825755401096631585361582956670083437621500938436300833872162123144080479139314618669151611800444772386708868318273972959984410982737714542249081411435009021704579737893621932008013421144642266453523662336178439866626406212045319022447888089310732254768656633479164856814722079441750235317241164985328059418551392485975144326771195868917601119365318946150718951208615568622336240139441347591848146651485364010476715510121851873127209427648412270106741343798666539593093837883069233630192741927854776069406003338323738626235814330026568947473466890667251607440079078825120768452045928431919046785077241028388324284845838092403115775660936081332624805560281085725573522599390542530519853618029716197804299008023336902381093454946025039850919478387271119343246387092179123237242856656956962482545199733529012772126516259847218723098438748806468879645032231734212919036567982934343974009575769345674086884147309846906466344134220954940368640168275917997093601349945949611256568834965564981591183801721720471488345997709008412058797072670236830142129427603723527913402828261294592919807726295436736757531225337007841724305584402278822035655526041944878173936488631112762703283615267204757252365086231581516123572691396525923801154327217392031097239301406322661017763699421105893517205598953772332275297871614513912054249958004149429492674956742682046895417047679978196502855436543851873015636227762092731486168747373731573770991604352307056780772849253876230834713539840811920938877423643366802239497207308920360044229751649877680880647299986116563165140219740758042305000652655892259067575845207339332304397311157874240080888165788336532513817967954491219188210185729546129509649683486425854314586011719570182025871686453355769373472265452581135372911818662027031488873288525557650226542965529631694598282200865295656881720023459999554821176495164897481007686678893192373832674487754202655738491854324905944407851902362244931518889151120658758739555060024459860609273867346232099027714724409249071126058013835868757787241495459816148349571725870071482703552766741289160908716588654186843722924973330299479311929855362796822955148554600269232664252861571299751389816736569254283505366680310035643790641722189664267347777715181097265182578683960334907620573356740217581456209813659278816372476935680100082001610432174416995119657498406051137977079137312281578614768611277770723311462906249450793241146316919702866411752789824625649568281458811420641164319499978829480525082624107801265744065320673098575550738803787731306870958727204216744426272517930066898270003528464794703754070966786447662267070467147780592142377073316970327280776195928237501072939701252484456096731703608902427971476404828391515378894812406139295378077191023639459724654943996102175107193633783976751605226175046072308497692527912662351422926508593908729021410878551476362695279374057242221598736293788725146185032831364950930906861753537146184425277755832510487234388610797010455097782369084127789704025583961087394799771398861276612845487661323407746215897756916734914294865991529369384641226438604682053255781026928519906598565487039708212928784231859881961314144538549104112403746226353475299309825879746436624433083184521720803352039330444737386909853449124287356409286212648247150839054202260828003259981075311915963930861784492158649046756767408392668414110409591824270555788259501839539734921461294385096781858806170137988523540635121123591860207236848607308350662456531320317021923153451663150011313673142900131982554173230076632277274880653119605062269301311995563242592118610001163069614497579499951014454142844333764494842921343863992340706552158243244136238173621355669345585586018619493317368718102850695984690047332362496916865398430887875296329331333819273018588846450701447784240824797742508385148576431476080052081930925597355399792472192454705059583962118042831256295984246808925924703737749326485082578523885581734947153688629418351392609309552949342029114851667345507160919409372249229763664779879036073523202189088842583757056525135704654802542036906685022007124010476853791975079520698074091293257772987135721655677141790410689451311341601983574108442013254789810695883098890768421096362602225406040903362270411253425662409392883190424595560454634379996740387654912132450128009415246049930734464917533893730009048751170505067597303617341493445367262424610925526171892114434573667497542780285845064005712957002212190254953947665578173792420119796775726014845935328657543136518754477888072262632361457956512343581828248285349252372148255059697862899401076248539908053250248534960228638379462017400763214824210676172850864566221071971672283338104507604046952920554961013628521416608949675444066711643324132404741898468685656256839276949475015084561223331212581422997928936691910028854996011517600726449911145997017789820256247426063766131669142146168750546513507832889090418785634100732598153440509824087225977045848405637840598137807654188650338358219075793734023667447630112515754218205373235370479824225033829143634951603965839981384705913527622884787061180681818610597593990961500755528148260431125676963876847058064892824719814471153319312110533485189212799347705073171743248120004553299033933674796545433545239374655770482715069150945479900277052168880791034448354627305671514436881092129566461157420003632821704615683621661220312533737038239925341483962844452246631934607508027288233365390197748511517587663132995196795823023684132402020306164356334704888903486074463839162295253354581414332901012054191559183296986308078294775131516956006100953733166944256306011229057949938409011076788143932173777972652189284444864167699147747656099869111203912436148020842037976337921569713517318750866157842458396695168461343871821240412526406854290419268592232107664204012238493037589078746951345652083616605846529845002836614673100371386260955682695822953532343448671063750875664636160067928046879333057857910836575311227654461104748404710467119381433330193248021543313362891621115059462761076362546432048085545133808241707458970886797783755403359576735736863727108810968294379265577614407718689413446419579520516996238344487139931143075094107679287667078768710418734077222750219383312357704577536324823433719779399532961113703175479131617934787744355440563567793871849510696061519163343463066963752561052779699929734720390372614119422215321330367701215179286529235677922494756652427744737957103340392953119202465343600326765799158581672719516173165400018719887141288591670544352321322859845465278954398632665572901433143320532294750264525581257207970159458483675474602702580294672215166706301662426488659160170013687613215847374665143759344422897582104333865074410279339687792986228753296475771857840787198287441245704700634448169318126222539925166470859847161052352078330224283381794417300673380195436101511890976413944336563600313863012288344766899848406118477819087764443236435126054205685582442859516374112786403900751079468179584391946087901673022688586543450900614309923829061571617332852371036440002238699306507944935081945423147175665477570853307552233718884973911197285475411056626256701200423899519547290459460976178467083651750033602061416846014590691620300833316084926341416390772363937116654004263448424816310239301238857735728011403848295847925893593541892081506928553857545569913325097356948702492126878543680111728216855444889623561256472905628171178197046687237717385931252045331065264421598461844857283283461914852317923405498893640701691551737333516430516887756630060306009629364253445866127514761283660794836516901055633621494061914131116148898156226279545769691893957076404092584410928431843473484265673670013607930849175028837122996858375337004998418004736574745110208608360834951648618961937646750191636876162818640776335911423622262569751535946729394088684185525646914524982408583485638595450974670047286801191600997616834127245880212823596528151129281342555032239591781504325540503040070166409435232547678428069662788632705257632686763110718301221544824334918658785262067521562262787162219907060522104204902870373989768874852931293450726723882016267297649973004535992892988994077627832747261508020174466290926301413809648876038915425608463595657337314788032221236421423971131164298455606356672186501167895458292563243575347923790491141421449182548999636981022308788080646858532598451059209276540272477588393312140045642465470574179500572013082574196547242214476337822951907427421337839498334080869212716823665277031587749352334476327573696324802307546200891299849663112923614177563860598580733621404505397005275142595211269639227792121814271450610971453938472904420593515090301729341137081530503599293329217899536759247607474551986212707291110980532671856705941835728159058313099520226263000600052141015877014897028970977591042416351844972791134888240573856948424597490869445703403950478027166831313631878329209046645537558220756237661751506117244678257439357037641140622423216115108114303876450304883095281516790276979995004175347533315639346086941762092479587890474571953158301629394291498468108367660614816567407125476267203606882957277446951539406595367432076456292473872595867208237749086968672451087607878227849272980902406694405660162451528389132989008672663547588697048379529665597080893598216405089277971846657115975251280449376566905975529018210935579521531680741186303005898628627869812007987250328687050594463534146914281658328373561450408346053613401544683573543168602182273933675058514224471009890246030502390379911137125737297749202941215765472761497268948623915190574848472799986126305451012522342409162121860870423479667803543454253691617509731908443626781704031512474147489820465324888070371900864178485227452863922574627202509257122205208638923139407729180765929153507433176795587906465398639614533134086707149963458150941220541959608987940342932112401486281385984959375753497872050909968822552451193952278123203290604846074479323583003343556206408014493571556210958946810624325899174132651853729480635686647688866034452302469702956913951593243910979636706822093473565264863270626211083181957964265312799791134385807525739858204130179165828197321331492254593254323896318439301984461565954355840364453972731408549289013499595813223103083346311107028892620745454485112741422464280542934088505816860565118971032152335684629947348613979300063548706186038101062677850389048891955160269949758099965485972135269846720827909212766168206207484429543935079767601045238730656079227108277369360896574581490207275062442224161815837310876130034297134572746436699471274777441270396253311205007601881437910501371456201997374976563843010626103747221104734381823479726056544268158754966430369753711687890917429895681446905200292374984638456247492686576863920140627481261932942548724553009038857317746448173027446096335888672161285988597022005574939489771493868133483666097199061051664468351682457572135429974110243582284147845369538125792367352023133601234774368916634255848678685914728308465472753382180782781661059443917292578817658565627621448624965972252442774490065887896513110606973604511656527654553564946510160727573432060822038643111054025025577161263682376022125848240008225086248629123014704369849450082442336258833559904805021815676951266871362203911920108047937281567405043361052156887918929385855127003052898085399278970760781838586519421349592791658046255790970869293168407663651938354947304067538814401994586409224426104210012881189491419526023885515213873701112075888176597979496625755093926036950723022575266362557240109102166633728600860385710756042659088701630632578386275753777962288381249663138805270044681110414054400670185148014554499756213907969960503602075508871543001491968475978387770406855791431165673522555889161202476117117719527005729227620877259350405428687828876962070844436525304284756949217616283187816612997996874858935423878434839872654891667680407261538474196538147585926902175537490396977505040958987431701815576364383125419787745941872659439712618538711917156836136060190394256738153632728559496679882651110008873248798711519501836849154979811377216712075511230293910208313112747567575202321994904251078214831611139873293156308175110805735348334459994008396847437005998181140831452904510841911691632381207873172785003240699768731660916598361610091278926880684849168594196315965955927953857569182044263872693651263048934111775850838914187172276331809493835235577612331921116371616006504606459051371320639546656471872991694892769432468666055948692558195931108578189004535307885152221367679619578245718199822483476452914852666549342765206800136222042985360739972688453645644022264319199094588953546047782956818133096628667648904963721887868021444814689143493750179430876982640365607290963655190452282158964275157841212734731925123013431203006285264093318665031493120828225215923912044145242454107403764104960765773391842055817840233401150457422190096104828604463835961083181912429805417758665898376901680717452577186536003281420786862193709257268148795046997062786769367892610028351854451179720279118658992854991884719069006908947895538138842204573100650718181028364822267259915872104583957500995140999867786788851201110069501687549257317592182732948921020242958246317578285846191820829266702153100645879009610070909695831307566196612820703712908981557183327466009004248765772620191668229719859868186666290988216691620579622533799440113930169391108479393634145517808638296763316069274016184773574761042666233218477164478024549439922387389143184183892324096976622222816654186449424229139082230740744368804108800974627745076275233110307098987335731346730622214866951151450916565424465049645664141329582051256627238569219364451190764282140988090677532106675525063800976040642992047053822415657071589575351855070361903984476208640568486846832961015701882064802838473719767488412013918554091384806328603622927643365785704928847043727729744789191891361213610021752139333129215917652848511855762368985889953704102909359582015073984732857606644746165793169875102692196756719028184038981882261815703941882614992938435221699956000548481359786430352308228865621951460248034059836583564718401396774126622242404157910404561645191213681452329411945750547283530410608404561312902492239437095655219399558905343840137198593847636275525836083943733743140804214999731400085933755419779213700282273595657890261669780018418251825218602118392748530586394360156933828937157345767081783907210847035279173094651380504843811377045181883737765954286198639210187732169233246531819649309583509870191267095681063782011775453508014361221029499418974539414619316207618018658961230243522441211440711871066018784354172565232481782885529282629751209447525410475353763213322640867183060373411352528038187842389817301968553048261346837009365507060786110096748293802868668570963170431565992010601355069331778658673999726227620001978800375710020842132480252404260149382757824666314081262631735130512693937388145554617597384581129459457022229119820728629392429152221277967125698941096541725758212149356532323632045146155315440414910964763161171976583607606748014696077759649734631719186166464877614417670377985001567288402138782314761571165216807221706327617843573579357455121916976780029206244933230381698924512874230972131213873807852027937730358910474580032625932791347051230817957071545557975485036297192579916294728544506481559014893978538905874117991613217963579789121151191330029056245141046920233946837694320360975999430052137563774004536963675163577927545925953989381063917835221136204403000070883340914653058100444437397035459061200675365769219923257234155038355911254928328893543313801335923890337034836014304538061321771164273989740930305179672801558656687627697349225762619393557124825069276234896133720178369203732080699717114622713774047351395553280797369712271909039855060835575150210412108514167044430811877721027583324058227817532700018351522804410454854684980617619646879744182169093627785859583981883719587443436028030626100975047159434898084974407942794563163140220648646142041666638489232472969404253560235369508341099638780841197121035693989965223709155019845495594164896437519547913527575141398392620537597353615514975918250872548714539444715041211074684569804390002776283516659903980961835356130194455876514662616381933085619571823221129775740494403971736443737384141518314457840879982629418196966439627627021692917405160617017426099965742325887448130453879252604295287395677079669392395627870152804339083703773438577845718671599296196046918886999708792864369934504320373581389663098733462285023109216625916466445370177586348820172061578142091280689511662691805996571570453407821614175262427935327312524919901147496977099041365366462182134055591887068608070361495917314888581049075867671195227313407493349803916932647066095260391936706719237405224074638481254394164207872841381589176194506575478574851640607246584248545497851745029187960036950744768283745578383301713138984053234862573758296848310665123384266611850286781689443616634555605433941643267360518406500648424292868463607154907613725800029348100839269413328497308521175506093105301025637779534272842881676066138137599641834172592347036845030844373287968647112981109185654282629368878299328117252435992936924079787367226849216658413168708764790516083507965774108032412630644091103003473502438580742869073084159612092134331119969290112745744322551103238462206206510073420605390978768432406028577329637785842621106772863418428808287299975493797577742582962908238015975272171325901201852326449988230704654537877138569407100931785831389646916478541704217313806400465772704826243014538343184864469160349236902998427139664793167975830838251375319688161371885505569600677795605858376745543123514840896214597372901072365424651990233891692962170063540361828302485163720151023447265664973829963052177872664417954706844314831312202857697588027385408826034518486582952815238602816008233779765399138890646311661266732498711502193259483190920443288065019957197961106344334600187141763322761278637215876538064305110495202381613242194245472290079984775112541433503767945518603858792520106874362947467810569412121654334819836934056156304141331310008488050420171762140212991683176764890575246331073408114995325209803809418762238649672921090395205213782590495491491203255558449878741767122027966509385889969525448310458528732809451463598639409928670844456382856167383137730709561772117778261467193868777483930148068623632180518120611289006851298180406504884591527087085938884823546667840911224217496162470982507386386360795826351542691411056040175505340070487233511488609485374277989879454145819745999484544158083175596457362769224837362588989664120602946512726494152779885460141380595370849522596897222248499243719506394195078855962703810347698461902527130913517499625723384454582517244474397536975545347964419625129388402574386738652988714292083301126687526931716948984425861516388535824398401930381119554473928238091785540800060519841597819406117483359267080525307360877447786589251591043486482471000659203360873046789369182457405775779307593495839709096856856343003722070811351467791881616128324040679954372797451768825288478552803424868072680050909599901303441206132437588184462227840516466470303630374757983061470390334208423055396871125680660317537827801912816526609002163504005047106235863762121828349497713276816704104630192411191192345452416906755378935856144158571132567613025283585825334594664134448660501722319053589111558936826246039485798005465316988318556966763561968437035122610437583744305126340416739047686167664843240483714033489666640223642293020515096725635101384537127185911210648469481649263997074818695305360655628278365741600998131660922356071565321218886243878022460954048028112548591880726226882835480523249284659955351361040172945340040159820363610321954320573604661674465932865567543989509800326018643083944015797583478180087607819940249629266809931174232863212434785777842977497919903790195870214421135578435631930153480610399839020983843804805874936068067076864122324275182367056250552402383135341053909892617136868074857295493166410716614146428611638773900273976324167661237187109832392981735553684642667890925177204511736773296716193301184488905406037783872652623120403567928151722011771466906862253729535068750659868061122088831388302461424923538709426752738548605196058721736080852510107346498282674930647761134078878038866822436707083548973797620415385168011168526397964384177833019930748214040882937544429448135059970052324806078520472171513539699427893867478543558998424845259729795887540254554432614091068879160321612928492730754245616680722990010455999923663924328969051693133332546648739542935296183986669200724647860323028475589007035835357635049266252853947040477822677326566381501027076487789153364277764676031352106848537569321465831233523603443596683977660146079827407088211737284950213753020368277260359935164314384927013325708320512791294071800722268670903905259201879784956099835176759393121134036334646907480330620895008198568805562263815701924889746458833151840022347007463878908430245290031930928902781973618898460102752424897927527659184457189891529479812178466801280991495533981503671109267197714079644261855830875120694874790193978140564623540102264465951186043328696735990132979629423542428208438063554878143052580758255995819153470674305095838302812553861245187212968191272175542619819645300363737351274744018619127785427735023817881940403370984700895657455533644004590913538618294229874338273365808294323246705207320179960427327476429875849918434418822423752840501616598498375222817068947558327260415138006621565376731241713045323071232831202242380640521755746916702072988479764583332248970471132244310610631789273085904458494299987085155352677481621017624334565480786714193586079923679615164902990516022914665596023189532928801209177545798449630053943636111395398330011685096425300624292554737268425964789160018182410796045763949313675378269163630981007680427157860058313653318949792205823524620259492019270078702457111856059861449463340558355806456499221236843475389637868011521909152220257090116928311576868763540827038641117250997455632591105273501384315951092577476556811251050775047108203386097582937279961185229424054368360118098130176698355204572850634880873981168472351008542848183175728083950487413976008062319648977191446599591109537589928538259584138740199279519271773222186010392550992844949427013728272823461962080694002717031147083244487742375078349195813977599787156386858200725905179681236532065884685218324946955208227803409633179859113218373530368888560076842171751622328295563351817465495109579364251706429929859623134277546117697062705731865466309138039845016296135767289530750136842774688814311632242373843016558553136186397093743335920501848405630792766000241898950464307367376706541536880430450187374229029248601518960477483766303030702659551267063241828592147288183338161520976702195694352396816086483753889846040306680231779999402205752780053948168714417891438839722078522451073731765663076048506018826361313461007918169470067515059471286601367062168719019094569566987657924694368768723802410539058476868031022270301280519242438498283466249942477249328378569748026940834322356885112736955539342501774643241548153450235013823397955424051561255365203506988167831254984727751531212065704120782936493742584518936731328034793927226743815694667173200864810548444173705027032706062047491105368971614072846483612058663546842394315913388125730680420984275881637320100724333394490081724479138449043552276764067081610655182669572474103237562380222470329326867932211300671915298125717774523399769153357513674979895200765613973275038060380601852519917548170589541039950408455100274333313365412197960449884970087926039729358619311958942893876321701666973245786056190316320082409498897635874311635148937017770457726733762213287663051289737925729923262464613377053728249834294396610679008950172437867640526291260201315555239660687181403984715971975283243127858320974548326278403744458125389806028060790735236701627217586294157441609988386363280458668994092299498449269267259074846297364304878135306376095741710998602667899979028955754613957950136136889762093925713161153745615676033748895895100028398732768797333124297506732658955249511764693700772860962170763152166584205292491325881421105486509653671973359547922964568739909540405883267167828996182609885442629351296231854687961080361749568958397866158150891408417441858359582751981246997555237883700691951240444915534391776386417169446586137312949006366721578499687962935995556810088505655517457480657071299849016593372257925452415262225152483291595463096660942743574942169111542201468807020775301738357489606458325274538568435941505506557252310757043936992468553804767956417692503668638935474994239095683189137126141166100429270058651106641139100406159131068922823946170828044357844684778076756862777101331287940298099759150410594598853919806293791961761826321997927623125776043230194354269396905741215625825257789950952530376734940247045854939660665898791809939371027916999465433885544054184026870753373120953527686109467188868263875553612678433581552844197830096799163454254016171717398742070155966853449413312220106757302646772339322644679236002281657675563347571210179288667344461805005117194422152213345119450653817570339390573161792523550142773921506267636280233664747621106688012732427128989259869432158733436640114367885739730638644508399210242290371088335255090115661269039845564041379012463805624486813557924714196851633482119439759596235180341572485457091210681603655748239145626960869737570882809581192395504986760060950842823921710343329346342722040892725356697142396670245386696227016510950122981517913121032705314411409271282484710485684989534031496660758781336085743480799621422210262316063648844326244656857484810823274965686675257310417512075230212936748285405585760172156863823259844459859821575717637945899757740698934221261320796688049610935604730301029012177948504166965075308635441179910798705893315903267217804153358658136701105570253543757232392437818275397048397136861816907271846819133838133396010291614852134625576699995824778323266899135151580347987466298229424378746432326238085296875327817082316631419799187674625029523048051709181372194128297404554442142528163919319313947935142523844127547131840988116942522711601827498568333231320798312782628165609551192349358413749451149419472689861194837015229670481053714327849036881989456985251674762838633343941682219288165348063596744369479004043713569564034391426190480705236279385946406482064776414664091552793649647791105859747427494861449049653861536723632107146080173289115303172102378915280584910903048626829426499144889530022514298724669676468001148285889866655669795655267222318398682025869916832809673503679918685189534294047397421670155199342163531822634995684318166854911735168326797057646612257244946635685333293433797568976770045828361939721938127876577553408696565599197531854755834383495693018017080077948687244157122385366664012805625574849504440486591313837473115221060480010965483047425455374810547249379855603959345385822607940757467510251101685594684393161800699969232634422696211749564938410174071966571288346121546811776148296069980304107156376414613170322590426677871118612021996869528968196666206885323397392878415547419826620891495020669377748947699251272678544046057352623901100450323760448440440797956296278757882949061958249204864935902919859613153392095451395029363131954923317244249379052846003857102626567485550706017128720309061932669030274469830860171686569432849495361642926290348195557127195362973594745894653314652386447143780242474259969764182936900942787808082203071069382319016280556940128044568101729101992624227094189681844437428134371319171219708557899984257836138510336451757388737758547655718613761384168940635885877408899505519275068335234203843708178925886321779030175349267261609875031661749276782310279897607102211724261520156919804941062402215774706537613149628603503246827591730608845268201972207956501317701732071985606850243196256797653214689647763434480978031630782892817972205362905960707915606856939193162457053153291542721436470054320166782983914433750406666801512060791138364671691965118524160581093501344946047946652381943182260601907945725145199456649018376779790423553726389874541060379998448549509972451929594221682064435361406680430573433520372387924327711365836795995013635710330472503480101340920881417779158984191372404668724396315310316243951482106382064131774432142647013779223829530201394945980182303763821798668683536404588645219315926307430269667737701369923977745969719924344626789044285666647854313783467868980227109452438716970017861367326561082869739698302770045773275704170140905720687229604610653389600854193018731269773141924083231897138264814580236607315667465579543987297942031572887822083809763202232217925612467003528491356583548288001569561137284594409494131262250869334621522654683591779136691281286420939518258935467152888821819946475241731503293606511751789143628602603242050834750165878112016275729802214106483383770120046179375786834929878768120698528786998081712449510387384613961172982846649304459216850242401449790942943929703172627826933285134785593970141446804480758699120760180955077244666130208876869053794748719959106787523006013050127234471372910781556694711725761676173398443969543672957714491012147105317632318547814175878420010206890565896390000436143357057927344585173529855751202326593046005842303303090171200820879193298276418173416286872117569596563299232670949186188185442817232120699016033085909255731213042643899398777429507769199095297194712473603373041640783771027388167783511618213813732156730021338440813166621678752441113262291854496626275595299082398694466948119922254617516023599008645278927183692578358852935467050450644405082083753849517962428644967010570556197226027033837300965229335430432206490885902414449586426586045154846751012725566820485914649150855372562923972305708951864893740399873152996983487928832157232806497873200556478265837433636347343879630498793527888362691852264789264318569520175303398804576603116839182327397372183160402466195247502301567572205559060695545881347880081936205555647121480187554168843945981942200462829716610400696276354251106692413817023292040784361178211118270534549526589578734810111904644851636562967383403418486974628643953940462729074584682061550694518127796931792508745957008667708792234726317133093312233810584532005373412614929517515577524468550564399812385139086462663370862044266779444220060323054362276234413034032509240599419761529543840889945850199764468095033596759963298092692313649091868611473783820647533930162424575635465923785178254355612738888043283770888156006714314353025274048936003733812511283152009394213515637991820123814705353493378756197298016109822195999908152627174309248031908224783249976511234218787601734657424569010462968951817117817263724284393761809955094390083165231756749673064294512920727617330986587814230358036584653378364430268058226734429198600098672918574929226754030799724759564233325513966696539386947590967039502080063888534578758682312765821295861902584070280406845146070612749762750450376789028601459654005303905494810522212462184695096559708473841650376352015617615086529237609595901282984271473148147568581949984036193305382995467119430786451853655154055166689209295498685529935861875021403436784238689553278321854856343010906124612003569013645062278049187938545590945791755697442887176485057589223873615578369808505100832275191894361824312505215921750097433095964447398492410064205006751698021381130179023161523722471541405273909288592857564642250656761158218441925407290840540683759424628877307772392624830500319512456940216422686610635609180047208079106954269810254592754914823700925311953935917011363322322107349101342085528200232075470799684049861188469709023831666047861991296117450640865531856693774147455922692132525727911380747118732239552219459921883597498064740318479211918241353415516406700657454968582293341552003546911763055733786744117821138843419968683647651746166666573802365824419678484535421042038567432429064823995806715909104644289562681541726516292776057923091492539905187913556777360221129565234876011884833128044391364175243220389773802094104374436990722492334111939581270103519908868469610430069808043087757525903112533386987447221293991195491865471996159032518776918343704025768162288689675127075833626478868776209183509914098720278304201644503295927247101776988676330099387853766110247125012388655249764792684567266304369850459672921379814005926241176590193457887148257971168630742030763213825552662834897733486659992510547313993655166589216240062286941312992670422241366778377317092109085932166186725697310290362403430188383475060207560158657136797448863026218554620799606232909068543343184382822455304068331336788954413716920778950855006496184292888518688882136451543421206455474579518810764769822098353544539600442116103426308376190229027479821575651397314161549018595781070891937304737214370012724922952977979055330269050191765315592232377605045296120784218561950844143085740464233762635434539225179270980233459703016837588947275947123415390658555644714467335397527194999587854933334794484273082088235704053867479392528402488861613838135711778269741649474885956425056740814663220139133636169430080363239634827288428207696848060274817329887051591674629996102780514481145378365381485331498493945161148927461137898957537505168196791873361558984507618153392720217658985540161915925684640266525526516646628058595110286143727469365443510340958331200981307807040279324871498627458873599826298283012383611614354187568567024993429031015583650102967454474353371685444163757746764898212216433263222065182386692001532156679477984131090644372052499360103086323793676526842370774283456907465306628224348097951226332526505223458662084977691124891995905944608245834053847528460005379824558969195451405369924215908025611021297214554515494182811936215511317695392367582842041565302360194672714457737951946579160569822792328972241408368376542340466416375224675172015709183811627965249760023079684869819432308688536409019616967950264385636621830005378382966913592561892721868938999090017563791892258514516125901933112837357217976896928736548748079837896877383605083335193234720568314470689852483958580634029881954311763184272052476037966969311975928251001702587015256451070773141523342057459929891731349166283145503828844135927138180713942139779701481211828114246925452661085898647845502063614134823968622266095836466094214180939934168971334459497679511228824163764551268403910766914764553367574894017830300019021607963180524287754171410885614961360394611142331230571837386813289916456772066009494059801187357490921695322960024874692904337155032489257749962988222040858950620945528972507744678953679097224030553069521388713638716059685136277370210244687588188728470836208291184780871568827170338632374772701788936816712896869662360951089435823768756596749058977482079665519541091600746389913800661625482519960975116422861375341908622433704256419131123760540744944977314948724193666821490202859805282956726346890499881481234859654911298607720615676869779719569003851885489024902915578893768810946395292807318930178269435562037887128620068317404674691365992111006074167291211575663303818245665821179035695595553126510377715701129110974929564925928478880242159807059338602553156093567105425018015492697294388307454786974135118962993532035768332489970168531174740992069807782235164220615872485643754046874775904910737256629570957516783258028410063842065786666922913830305348970474896344990614713369440613138868875057944346019820747086448003084274002309870321664794000518208056799734485357970219802782372942435820361162839733825922225851021826263673856137209330068512403818268668147202261840076795739307266281969028498431017528173997702419006308528218552413532293156098675066968285914589338381467402394496255159939706954694683325535919397783415348706614034053878274555710805779826599018583890029109100758927265743810463507899831817978794933531376248594410739957849240691731775126791494418775435913862176335888617416950898816566197101003157401443306668218819085921260353712831819505634579000457062368832946487666868877134756672192147001065275854148270404647117757467668511860774508161290678566800105686640575168912439733697123898895091387358276162348573108791502653477632319984376965765096044528600425522276332526873331165889379350262237275549027527591217336655424242196956049512899968201573581623677312213988048634003565670894563657601210137827620205725340476686444657644600008649712889527416520129163188142132231907675301133247444642128728589743095673166615608292323545553904756530173897619854719088944159487481080916007101530854098083459820595572237202878365767372116603953870107052412329487860670702472544634669636956025000826961048695125647245735135868761422544800383691721549901696374740574361171215543686848283572056613336431137794824266783975937623206592854101052619819116787965388464118925998494887296969236719313483137504437342876884332516514905985827498103502655827585160313453476529463150739809086016741779343014449175570114244717948539577912653983819121037728737116783415803025073596868156861575057023779841188213245124116558246304001150312672890559273432496238541642765005315069211419748134337058612014815390972172744430162101816560462433394704912622905137507381463550764472015770610384878635183455409080088945200307297614455457384221353969819034308233911835331157988924787673342058806446651866163450693977378098957363879857779993062835800252576039964359324493117555370037784767037233313453832882744342742317113987691081101671547219708163419061588785248997535340730641582637998485824172347012344591441282046369524185461974092014111869317859243692588998572877451593724404649472707873947572174747451165488517139234735543737975121923088172619451945094158844024010164465265200045440001406985495932946984646933786030584232159359905373644795556927536918796479738942108811559596370862426803594624235906888942006876566142208360776585506274049868133505577949388274123544286552873559928406678316548530379249923746291522253268354794485471358848157507582284003620839352339005819915049694061565094367119025825563498211001056963646253557928647353378113385238438749834577970506834321495155151840116846996319769755854349523632339039844434444833491463486330572155675269430978462052201299733364915909201686409582782612700744527228788670121687544978469414167345615704752813709300970000292004946762058719476098760423571382042503349788168901387990515706563336374719057805685470831627417190656193174407590680813414125269427119073216928569287488108796468957735143522567201248105843989514648369507320444959867284113096605717064390003826037300023687716738668570245467273584937958195589705752847065129662183271789165162328258575431265507486984697652708883834142431246222617753363864780622528154715196296545891286657854974442059024477839119555909655525982044546940491724301352273794679361521459679156122002959952149003137628251654083056658672606192309623005577022131342870829519453878846034406862611480065439817076384734390326231719853251169654842263200968119142209856732940551291336277786403549434545434349811663273660352295863771147688173731032163148013941738207936124373374358318185155532159761652285188246350416023220108256371326311953258276487725257739288380482527782471688556283662463068408653546869632408791639310858790631519143682065793928449643782783287139450915373105020843652274036363603156177168366859726205612483396599719655060574268526770522048177449244877479887357675952454051917788602466775676975846709249774998773087790051626824980654121487789953308125413590957449994000056457182503385079023487668531476308102884360019411360024080660208731150157444792245716959930144038161991820272467796678814407098086779610803181362276537330849193385915853062600730014462630672776007192480805232523307036969337404804153840582002067896957967627626820692382762921240077330768761055030060718535803594220606703838458757310291905610576442212538790250456054532475827211375670175113781295823753477543113053650289918618788331681149087422021782657816857195004758410917214007730760730754306339416457380419112527527498823913945441412584058413003571290867227405574464958313100721303445028781319610413475545858979850242103065530958701959481618584924255846481089418691743802481658052498670461254491401790923067695180277392116746180901899671843176127236470362246274576893195009262484839678104133226948673184075216916345870347329065947178279422960378628893813803737801249947565941050005296032487110296983860108081489096505037366987987480238448429808675047635965855978061658494346412361020879836072460667014641694123488227611329442548084330931257595012840188544442712033827999752364307663774926599804910931030142981060403143486474466271481169473201304493152880057967781639619327669547763149934231258917458567066704048982839415830435440112187559440275068232892839965255929164743098058481117110621214686689339919183895070800283915415729178471565483954440267692194831224238743902073868448467425231428224494214510900005107488130138114428173012301668461219905358812602175820353660508136110021407569809837473850647978630296748941586613568249200051422461774321841547882089168442825803859550430784385905773793629622351517399689495628466269936364207509089689836925120489017697196349270613875329843449578814721420368290067475104792879134465317689286438231776025289919914767233379759080798484461966557217607265201695650117960148938401776447842082444480258583890679281652278357060855676836314687360912819948022803655133839156518154601554613481620197313573121442579558470660855456197918831724542447179270095515681315091409213345496249842895089347474435069343428154388954879881042407541980495280594192361975527441923841985070746338024612165169867347597382951243555406550078829042506726000426594925818054753793935798032820109472948763142693581300481253885298098678669356440858765401184423530467535131822767336053331181713127637356448991941115547894889265058541041136432366516320156840669619221776252791678091603235696937423487970301645676592946276090937727443834497551191178675116588764256744970349865476202029396915944436265633669319311839746587626208568545707838821796136306326837830882934933739452665252749964295628103537258673487165398559491421802647118451344067458137018548767201682427968345065225944539486068966852662506505497646108200278985777183660580009054711673924552851464765115540433026199067972676382200628084076094887992443388569104196774294211777632427914433528476788126725002632908122334269265295037077127145433484999821141519990998476451374692299986087040769045850148938196882570473900362748360034907533550962071242186565132476458759265506484449737963492269572867251626960811728525850917055605039161691090921245424864417397498988374848544908432915479055672412603245801771812895065525126592153871531744886673492978092367695443371125767294434092574826188371320351560574166429501383190943904803052280045039825925633048897237062034337318985833747681449448544214558031842350965027858515183399012946815558308783259815102251548204983916089637792210558525397890033657487114368296181232689128468211185705210356332215039040288797288824475505968794895462639895178289605022059742570656728273292275549892500512162691952583614028821676501011553206044426455726247148129733586237440842721014846857490861140686331669602452264355132367435583485660870944677440023534042277692932423204686989590725161182873479819387961528849739751904689281919024568771978611187352706278563704333514337716757342826643053046070153546282690812168811685899205790300766361497706171161412648349959236732158878339463396675639948981082662245392815559626855318526942843123366582268706064756255873249252028658850678629294220743213525335360699569890073608107836365968573209769617282989581209489515162359447493882605954131648823242217217913619293010873252404239834335907642956590042468401373551440403302080706877663709600319557360194527370399435244962496335761345265052830129489282811383749867298119875972581813303404991695778220443014184708695543461762115120686429782416433328962071447253570242610459099065783871706123180025062114449761995493553921318269099174279226035483385548617487863120410642358775643733658818463909144630686826002091067039145617263395255289685158969124274463982062145272413463325023114716720746193381144608664454970964803498946057304763395589097393916699637699283394677002511625567559229161789235170296941079317185080023253792593172410177833183648331909665030536217190771385582751364820779341253560711107717597869029358919849222473725229899686750923461286417254238951790569816438830486801710677583757882319770161203004256980818137216977187115492075760529336253765344410197967693009989285578853544089396708616470342309816122034873545081779736390409573225003269328535396736445680553956981739847121052984255492222595468559381339337099576995848502297918028944036175134474581756347619304085956835436477272753807665724871239340870157494954624627999914441544425731023299042970162842782850563504209814052392320608993270584412862225766313021478591716092645988210311592291418833740221027358200392910063088557352444471520545469439838645612701511917905878383165448731959590788644945318214214635108877982213955433937186226734175530742611702338640288954892034408522612863407456925699500053005505826961085139925390361716632002063681218411918981028359909848906986187455859292648133204943069807694435007034465108882951208570496846604562405900672526275394367238050873082065713263573940740629166047765129600938314791186133131808774752197115794327663891314920330798575174359583791955449061685476123602635757597922867013850824836959290548598181928390417029525990439246055072833732640215500156271196213242289303411527662838238582789345964752895013456528901928748520338060347609087533495692391887111619454603509483830363201026513540043410679752380599044251914953119018830102569012124913457403002032415709788463073889993852056542627403293034607967900925679604751936643936865707507581670012188281169076714894340674803359919075211416471361075973448186778738052513073673135335245485835117386725126750882679448968618850419439316017580200538459869799992692231275473253608238498335082858944639339702180063630838628335394163279311954433102435274915198010958672627715750841581302311139248903182251793205606390361510210900775012233753431419668883379808110658780774717967882928107896155943964753829507699670374321812202159806415639614737854818630824091062697324993323796114296199873674823409595268484685216851430671803256201003467400550712391707954324182188410621290692233997228745780362224825125854944659457426836866247559280953372932126932217961551515845621960321215124221022266150288824800768932777502699154758613405122768468084134725970388836364288622184110865336820489037705410100068422047861486478935168399940287946554000261742323470968119519883738290604764276792602346880687043476333282698297799012790684195550363315867378440888797127749208140006187485299905899431175110994657333949826520043799417873497299147658739636156390293384198272350975957325832508300887126577733952787063230777174169103204386842897951042568466226004112626185646255152060842397117209295830213040950237250117589562864676391330675404135426107031655939949438357645389854179101104214916310446107955750485988771704971004746797233710692321773611811621199642198065471058036184795408279697725288631650320253409719941731870468676324541059809483978205753337940841852175826897905651998545143218899775698074293982483462114680346822613617759456884643494664372983756687441802583977184913914694999120798796127713440131015172892967591106607254973503215098496652503114886249438310333360165544094484904521612233793544136216919599544882517686491633334459550456354024817826398990894485788688545570195728759675241088453032038204962781708411812112389991574882912854704697385554160820371887406443982317019587568305646650217000705413544256832729999926492831978689821498263468968979410808737884115864353244672830177130419675837843341381570696026945830229996768812272545035326318288816264792159479418073258462247695105201483455072213578136608291886047287513919414173257754154428030293882074940390737951671248857881406291511930282826751863101276224918331732703101459816649149851710928826143701333163100652509810731746824521820318564817521260621513528335299038122291969199351379870035056238134630482660055499539333726036622656507278311560197028032270201028041038084718943975835485928744089316154285648877825032970245135820068417991093952737072053041996064507248898093616318396922150370520829326362110601798116225341994571299583454608264758144484930093977675224010108491735390866061154299801130622215770284950277306312299240322978794841758226294783236711146465089439762025018150718860089991981322525419081065731248073140885561815813732070589221189005064126141281271543234512433854074526804237967910547234937165706483757908007990880155390967215921771568451320463551153018545086334423809349939283404866800676510418954402839964453526600817813098786187925052651788431656819344369176669311328503415449923395501145970574399002829751956006610387492120623749850286220410122862197962956048458953640188916636237558711558248139807112296631078862003594169040303460481082607887490943530449900397061536106043912913957334153255512795448759371560282699662107772198653008184537056580544054846549038696327164521908462412808316633068602053675556510043006638921125856101435957200712113678674544707074959685218714501269362881177266533391104574401831652782615076796011399028641811494272705537959091172599939349706737843228102981295415243650013899888602832417372685296983602026493955159579039744723554998291258044433680140563583439356176017787367841999312618638957528490722523145312280370288139262144552680060914506995256936898588397639148979642984366713506288310678559118965182069079879686933084898972768484802219535996348793834823597007047969402862784954818616744588728556111366823924641682552287349526795071949804823062484629699167401309193166853358584024858413276586409376786720029673009409832240344981040654305002696159172279194670392306236845337925884378880687777333770096274348814584057218957724771633815301864052926227448398779202196272891429231114304775350439754479969666368241930590292603714800648657013551584349260293811804191771759158537556953322168449932748184759918645403080986958939714235425847512482955640495098349363515473240756923316347117522028310293803642493225315125860520192671161706131119655199793647142846668120168115344216103341379794152180357006490257762968277676276328814932291765460474414851634973879588019612903890433906076721196874558923807490497537379625857547157613348536482115481636292079933838961031064402083743222002340993272992571807471454059658307065798399157370907203481965882630515660864764521083631387948729646730962493521288843389658529769310306271082527561655143893058765160870429986384593348693951863323674439427754559079802738903434467849234028643126333010208764001562831077731064696866864952371221994593548110594901764642325110480551562974847313907522579317315491597770951956350751062114794714870510023589065948838739027556094415706419773484392768718603718273405831168411834011626130555630927966375640816922715027463297837898758365409458780511010712019548633511171910612169088954145291472309260714561657037048309972834053199285214568899684008935740053876474599068887640294447372780451080173600313783082106685500737969834563539446723513986203342801702874291669376520613221901576307608543699352623695149619669326831740760367544139331070450846468497033360587866291682790097825890265873259920857869695309306336617434411541108253803068197072408689532542365754145014302988535914901441026998805451564576794905361102078683397285375057172780107661737396380424041593728195006559003719704123965850166297744102875249317783086119687825102949130156306572560969911937920948550213484040355993057719431588105868203920381142455454608874020861861357273333011677633089711041555892398949775973088548213338201737983607002290511884184467062090915645607780633349056503785949527644608643132702825400283566233450912573964462169167350817816082483890546219593108721357164430883871097334404604230309182650608515768013758468765485738478545632418690955256446565050061941949626632845686246365532547935702544410254324507605312163725053875241453885459860851811894989129765021534886221003588517156136740411477405600190645144362353961312597961808659376186854741138552070178044575961121417448217445117760532877107036819062898788359455709891631055595115122294486205873482827753194530442692261314686964698107104107629656072855169787286065566273363961866589197488693045921841494424637400833057794476403315963661679187427334878655680031441883916026452332275334635846971830086714529984611244318148770299943684937710382776196990177675682101614348776262270941732337171900724519463566159135001750108376167740772396968680210402508232779476653588204146887192258734201938523710229991071582280783285090090803669637459182492694777835538185239349718122282854198249054680488427413232167285068222124107328991386967606119198327831076543347034129108678123016503443805623700393069453831326004049425202865097684174215323822189453761978219595221116375177167790182513429631810006541083245449425103341340047105437130355583753174580415305619796364860417631317142113767768773142257346382206745676051364494269578683138656235760574038385417691951321134803416727778419116028577937630498816765437260652597819658314635905461917442467439527378182070019615867482844179329979349501587559673101809614531737499358667869201450711048760842498108821411827021570864428479687424908254746824580741780136503031575858310516207355005484324662670959785471581526033742162985314149291973094118941366984966341683615542414374802076034429428106689691516473408409255755954605951476181899459309824903952468713930703168418249796116119670739565349287760363829266113146417605514030756863889453487701949511416095260941160988770596258669526899723962269649587276425578373907286021400865607888118943405516165271730073257133749030503833120763910519724846839403392141082710098856926203340600056239578283009441845183718149022854276069344032112235571678664542168994307290577525684784816940252481061642625815197870740369160890434231711892922139578160811844047579638084569099594528064217002771562197217350251894198220728141355769330775093281667513508058230177002377462955028866658656293816729863451510607220725038200134516065880969893581688164952828063483782900535158538992624277913814751788528071772039768926033425079265120884945110817040861007821664885565256399196464247008928079778145220803602145166803811112633920903163646913486277886581139010063643460262325092161765650643117774793372510221761461587156515454974684422671179614791556328715305641225194145220887082293879149748009340780812326081318809773565151331117036442571136615113582689374422858866102210345873353914661922830560663757342915960386518235771431923702121408267108282692958949609276612690488534232102593165487389399236609961814395140036174551601013922713194593864640412007386062281531401907114329896541408607472347098254663163253942047954366257541505777425619961652914731857905312249815397685115523020140394253601708422090322986686785957824004770918452085294577088455697019298793295928562012237943315553586847264520089057337652407955147363968666040050193038910720098878023136897351938470980894270149582393422994847734342182275673346889590619349971737588760543057379561379394298672912462124272434222470498531852758905906199962507636592240031652704590625933039270864805486713522752583928332735981867903291447994715230035570205922795679203092879773701871601103363248900215396987913094370236913250382076869400472853344380639526891492837486339839682873696331165402168094293578610903585475685328545473421029974534183299651460946779559376211727385310768443268302196340944220083752441865022718575003168303205863441786538688364189056300558184232355295492071576828094807918351520900439459069683921961994721436121119064660665756757412274239594729326872773968777221243849738421653003429055749472438055845462579279942607289816981905697460483850224021429721739629659242231813762025253209215575809049876206028148359866432453843209670400180140915253112665242796767990194540334460472612567643850131715603723624351752261222943115348349054984594235971545417725339985350159503111430359696664853094500313008862031253735687925985727832424110298076704411691754974736456517753956545585906176857394737644509538640870145430708303732111979581952780105833645098096490505402736662548383146312585512177895666850798155564372303208597336734068597375339377274957754052749261753062665381989542073079849508290559606564716358377225067489855643375658229587989364532998270231092972155127771601905718273474501022663017527592971884473482190802422080417367568184969738388455686654635738492262362270014695968937907322994056148278335598078479146811579106091112604581633384634684919237818669175472038742627683912258283270563454418740518138791665186735005796456184947030090531333013847931613444127009132608330960725797544997530272665353104496674930504374630811508606585737449923294311271483154306951708792701290594086942841440632326358834352688562086582207041481219717825676107666116995386638383810850263923503927370966147925993578419771494309151249126688513801825296220140184374949643584629993992520352325367622377749202732475536309437403777587245396110826134512349810089498919926531465649449754940914011776709490434643181827871154724238755696094451037825517654600976751300461484776607779849524431538059602407184808521809287310491366951982883839442524444770032778415792196530115458802654648977537811673484719477777886999157845422558138316820052649124619822923564633487838455403515732528616524502068613942864786186852745253918910748288801993573747590604546679969293067309836279694162328848914687600821857049491955063657397946249732481512490287822539354925444372413145187765577637630607650273415016208656019850406690179716005767998477915605455162367609769967523094809836199313010261177914855929235508050912404370152515667669921076169741230490891397018243048850724131286771518304994212906237797475587917321603469260010426889349912467649155250794162044934158621569953820965537974785774830135274055393695577998727667456472381982194954466018646667523110799508532258685323685156030362846800263131629518645371678574472831559288222101923706909090991925110352481616647725973514385168889147305781414324477724578674460815949982526411905685059693295539551895178102395921643237337158348323835923789191438352520918294306350024331742435208846274027486853392872383809853985350386408857600050822864082284861738736218256776570293729436561321583789180104182419712812597757553412500492283216057378647721314727858568345931267030466593328540449267215602894684776150425441215248667548657370935047309486486566633025043121382516204379318328194277881226210883143963426449724799441081017946839423739741737711432833122752164904720557057365611396656258064650960316835134547783777972254374004089392039280527157009392479448344044141600158452074425587459462980560533529585443101242388248141742220398573999556859320044949685494492634918811508917494278066541244193478296510499566578858035398270306929046580373917458409852106755098009890302104248699010598313861221338670374487911374236244579465394445082424227238100765554050326563758178092111553566933800396501993977911250080017387603204594369589862624247120603351941964663388388265900828470465826148214096284986712435401838293334312690069487319797646863208284483919594468649706795125637770479327870504475576462900251652730790316075896364110913158522575167800808729354646898243356768086171293979274795844266303583203589277407201840416248939227914061081941905538706872174165735408716788663837822997270732002695671224932004957848714502831655589812971610958862031790433839761012109256104161320896297534780916878019495449593736764355471174452018322005927670208117203758579514941439697243563229857978334952736919541141285765886379147062599796624757818927887304846205572823425852902569934009757528427360426435361258827450684306744742498303504117911740723225305381731146681125893331047714838018953235790347772372249847296280292858644222027911040673218763066024575914886381503190526822172277077654471478798173998733699834549408254387542405794838155420450015885680081870827300574293037956315254985191981628621268448164988690450081163278271582734595886155732354570853846043051544174652057065505709102578286690658186546320046831388395536690814435433649909010686713715713106412095165878020354739599862669243581070555199584270656594208970339476030822617270076029819722966098557986131796029147347623400779340518390043656108514146723786015963418163941184494876116295274626423390078966081907920382957736271105107706178901608011410028661122988727848773416715830573057450217456786112570077589533357595961374628519687795754124811888405597195245534331336976269363442016833417521649455737203069002598783518707069529046718847284285795023593931534371005196547594808855738829359962812196952070734883923839191844163508215464780358410248619055996812393446214709477173266051169757013371860940037918425464928630518173581301484454533596279895402009422417523016904287206555319777482525556150859054074089628226807921475181557017535077478330751151001083121476661716743288777193865990700606906910715815638272904738814664266827657586694185940082244060097905571532877840469361587656115731226481333489297280368817583029985792219945402080434707337399428401680412465247410689383113442101074763145076125260853874991486799361496878786579683300287242046146895109886920551650588563090266628234443940694887267199547920138369476544033828435516342934739422335651221979472913856891348810390272525645058739372486558743549973870964300939627967296308067222680187819610781054660463491261684218167112018250048520585070004740525785641972304507093790413792713595868703799426349897548717889755429970356934645171689201397662218613149531466155983611695397888254866569120626559088530988559394512957215559296356977494461512437626634609577700318772066901273746640975173113047493153804462061973090665638447902325670708534765909226152784063439392560643581706270852802346090399826991579753560027001745713381541579317139197169657592685805064649961331448762137250996905997396765918203263931472518634694214669271855550829924080057092803824423586778187028755322306738893106037987673566230363451344986352731735212241644221976173102141956266319001375391902571219108835585503034008299014732244805624918511327155460372893246621962651784395423701052463328983699386859690260778334074872115294541833295693277007221592080535801545477675125071096118759074306043169969689297850519349736543878674337403214451500318467174260713444193682201879812849135479025372601803753157150093975680835278342113966812067045509625901325842940102603893758946338175605895130533752417732310321678176658889281121861569226971968500009877136984490677007977737460964891273789864828074107695252451541584340591013295218285802623831421997538861049046609634009265864571014288010038853228998736827957397695121405217189003711886724166607590818689299150616657845036609226897144827537655902123511845154938579679052432871490761041065823275374094873149612205702415057211492842856685101708365639927117951048174349745402022683175209671484508429267723083577904914689487585132035004553655488388123584040052698084489381180728746083321639001513327761065971076298375294409454778855176351913034661940934648927758935055201907870117998648531117002619501092944596422067607812633564310517397134879112747166182142861100870429577774714431520588877331305000285374778185473480157147894539965458848911631144560174559827312537006406986966311509971130810275677043564049219540015183187655969481637833787554710585771355285427354981238118511219366278795141899217618711684344615915719371683979753956399256641698009828129796444914355575336116789607699544102677567335838847740636644773348072885752996727344191039858099132048186082919727268975502987658308236859422923619326195457445386644323393175805895206149929314135384396245536730105960775316174043985997559478862704042781733945563794685483309524728989643663519557897153382782510011366734419719301529971480966840314149721971495040971162339563361988512564972414624753932436779637748573685907743942899920443432854108344232882665819582932060026068174899654627385892739883243016330050639252661723630891428976867849024183352014872723181010521804482287727213710321090099183102581780768512037339755157844473395713794530902301539262287475436065076848386230363245779832166611087050347228533124636305648327452807561989705512911089216819871137116047595310091901462676348630461939141809665137840234223648064304694402469671845146231698277260027800874962197399154397717234535914377444908808756925825085791292167783424992490678383760450430700835261986884186790649158549832322210902606149818804938237697444413828256375947309934871194218065116619865584021495593799556268583579109388326072711672806277531201945618644222571177230195188419191235109134703682461868873512363822217329100854795204934569343943376074805467482661631168542929169083473306603805739378070944867391223965480882954199628732604961035081245482947618010984366796075887115426451479775868557068323810691147761716421699700672155850223168782377844412880995684897068423259091625622653328721609842679146243391774638829565620652501360813683725025690265031347304810737471909875439081817454461319830000877961423471834217501001707627352840824925117852793699321474944938541090085482642873071964645405644247083556961982034091914372478365417089323353500636517658651001960291347719960196648456201971258208954167945347386324557148564405178764551250631088205868759587074426202365892284759005461837321966716719428370257725623271449652476328893108074269452265167387870193700992359883758382173318366077916517747905018791499166402294140176661432638563063227862023771412052696742704567488135411877443662996055615334685878796393462577253737562948710932805240092564420448540667745330231287232944423904433758120647304174442335280272579936442564036784682292953621012537334682762818509929752197114475767179845834833268269141722937436284092602982287527825757259280045426285094452621458448774880451049503993457167932223602557696898670418633809359926186692865928331617818911343110433352433708830258477487860451593477962626498577447474605650332890219980668872078923899346949635617925130776013859046326297149779903683344270832500617782755195805615399496379532143107934488329341524406500612253465034339377201486465908745333002923450134540029984321378910920639635661873111451679658473683723326417936429820820804467487402982087596543770627687023386707062572082995203237509125745097176511029073222622697766057951554725273839462868319970506852249753158807566048511117396892450324684465471919504926400750955047553783331802272186976774969025797349269497879701459480530868600321375715508908230210090088266039792222187830538236014092443025361426072984111725305799689740399179464394966806739541210857927405466315163101134183840952716723529205425540074256462284968925890004786427488093784054367397309550430524824193844003785161443875157498554339759886550321735853516233081175394894471961943798074841479323463840826394432638432734108826383039028718574778054311512548213819572417847543249386283760117863830722047627389508491842275400512568368456050149307005732609186512786048075872176894524321184176590345895932461869274175724349901867109538973670265153293838824129356794550359850366649294152983236776103123652309139938140412487179688618863222971395011572995403231673211025874068644646437115957431154110490112296627743337702925933326329041842300171081240189441328021786422068503914321719124617582192613860225091059162475520058371282813140527414461773417901566185437916697041789364559790257524121307592738788340980245899632762109054341057531331081568662286843589286649207553936021083758401115556204324065356598024659284484465508711560582675549967593126537080692899828432820690400237206545931665580939872981509671965145902357457442226445969209747247469662752995598157508521645794186918350841082454428018937593906842086987374214644557572588289323203959686817524959281249062797845484631407601706703131525441097389553188573976202523064390425831650087795976261927148675423939060360545988631848751693854252167702359853313845152684158253975584669280202033880269170166842453321729609518704556087634827677860488894356689811703656730692200774957809160001883556904331473772658173290920912690245078515077938200954607883567885186485743240684542801697738986108339973779542901893310638292429687445996516320854688521414281996763012884647837675650843654582146794493368763386825505886126853867880567177482446663492794384021048892933267185651956771823426648028153470123407384323447011496339409175695296089736947862599989116184823815322394070495670465253681226505158007851073766063380841519078230835133007963552279801013017284059492894225054777344947182785948877449862526911502359496613594850534974979717442288463388072553783513902767487004410659721839656216145739908932890569853455545368536372594996561200264642227375167706218084482319500617399192073309101504056662195974540445736820677325390487478117731606822573623312896991105820904595486048968264241839961178328156419200394069242364155097502317534567258151265777397644127634602493960514916354921865188110099886527946478275001943883693366117360737468356539510233268389938806618466335889932257609394152302428770405237596002142714524850271689373193946698439173521259794310593405353144166220327244511378214393525110497363656511579928016556371089516661507282938046471252092725215029012516367972677366318207121771724108228521723505731213185332319389253428384816175211216890092342301080181350766739991783766484784019805642605023353403112281586228323551919419875856133517092272153804189698564052582412571184332990117033435686180281808542764337163438767003666237329211159590753535201376313359876055136164803970572386960164315554436036179572997701176961850288507113122676834615764027597327328266093914199088812837497833202448961373480304570334272522380007675864743625937281680658007191037041171453819831610174373105503983560677542132633088993304722289344386819544423049609650421927259677362094542247777390042645656356741346044834924501152336492243797610272323859025880455891062542904922093708456949306581495267432994411445512301168195887186689767057058222229712289943113801124173489726040645005939415551767763849975066557910512934296414398840597487907138202858325452275725719982429178580144085379593762755476970511319888974130368747702844049201801160485620795691670347937901929895856207719394196436199243910088376339872501380971832813280614412852725950834018210598962776248916986423437574691499056248236306208010093558941587368711555837506335454679554399436206920063490967188803086282520920109112589769254533270960918933261110511057224575734201433068932780967699194304187361597812995522624736261975683082667556005330907197031205299014928765397233540801714262188879579273031194014511344145078077547661256641908780880896288958645818321613935030470366872725492930695534642976351040704015577976082292255887626038986264489227690631210172828817774393853765366264092394932120864414860597726136952272731979949013497391064645462716065396013257474904010770616755170914706126186884487561226325951263749312869537605111361299299121882078433842478704102869526014965181305400111608816359942531487055201684379646038447559763812855713192283812899111861153620822747415995455695146242963936461450890362018566405890679210890540454734221187699685199752028135250271518638883026502017289973658787530652107902757879362825937735848157427144214700304128345372418228964506453527127505036411346623971540704468212631449243608306688810920001752933808051313750510346318336584980429224446089833342420877253938479848240816000780618188700793031359154463132341640229182727004817191338190109179284127959137733062597204915373559140399341768692198681603503231205678456075613289061291182584653035560990597988359683841517359286259491756701239095893289435480349727234012844339707596064791295519945525968192134554341412752197564740595397337497244768311260900015130998434771741384990760484323206921373086481741516384670564307731943675910681021631557224895684334225291123750558748372408687293046519700934274172850636200508783288619226502564451836919525890192868935314318693718507450280262322442282570195592189932480062347093334061982915536000962397056290720200500943281902420626548105103212228570516730853660016188378647915437162335990961147282819462666923296582650489952488997711730030374192835796659458857435395071974655136925879512157612510792894946852967869446477584049474911095587292048373514155346312858770441816875441324791713864149768853370816056366252959818759422315988278282151282062856075612046407677527825570808027717164795969367604960006081108189932882927800201415612768098511153666177700937912474409702800376939971359832461239172425689665001072402812067305277484787998713942329433401493294626586353644720109000967081669927266413615151089938915542375810952129194086550347209574723406174205069152713622249500928191223571743347324350716231361443207784082608302672527616949335035182779081040640096887064875136470233477745504428287760311146013031923612879464067045217876699311533971986460847488131304763067536172517230838134826884979934648806908211615324886041598742192331826113636906787078302860792438084629597601651920200444364508013366030603845144690295385189077572827322110699267345885731307221442012784209118714283911680943267260520139266565965406792943484265307176580894742884448463358759186529649225118270729604421250943150318735303015621803986312515123892829619821737167773920018162465964926972333753309086383943777004554860724501180476406588239439042739713942389047347905218884921395772983821969800639389403353152154524494748094978426350408472404353434277998572559333627892736635879649685337353822889347868520022790616147354478201288348606693919500888405973132369607957835384863726290778804664555662005504420310351176959426898534778620338338851823639948954919882725166294873680713135053181863855984690277304346392301247781960664229560993066081409560804042282409355374570099017559524789082354551919961988417541584348416017183816849961532029189013452151760605542833861280291496857874977807438948873716060023129912071983607799971278872606095792790577881798948481436569350864412734178443267903963624808029200979752628416582210750618766850205691459757214706111624494887186002242646418235434355734930344717941332902365448450857848537878819959324643619135707464288654917092870601030784810846371959678724020057585689721560869008159660715053137368303280812474658944202052925160081657210878365363804732462618378730377329088176585781412216663433271654194203233885305730262447953177562605745724153691069423105811725489394244791435697943062417411492442243657455667996425005193570463226166467014844513901818153237584669990638827924168027480899017749001824788852553018571744558388674145199917393081846501167411555119547893509498387924295709398878913885886195166644721576987469479424783055798916873957210449770876998853609545875750358145241847627027574011988820722152118354687987155498845554557439979822955502202737732242893814032028290706572269728888798876179187332566177914874605659327396653860203020211117964691294363386657904617833702788103633193872949898410892944127647224748000708368304460189993343429490893638954307964017607214685664676731334498246738131387737186062167571883965729594757098584617147646992916869320528626574508153229810648098930164402845113579508368290308963491473453441555136183301900001431298559868280061639328191255059081287352471459837766662941355962692028357806706015493999650233424748571574866836543592377817975374420751923341219027518035918566101126197234303556487748800349619159582149914725015380290697659572024025728414143728572753175188163018234827149111694638323693764760090356076710925122555010337078411576269686520830357025687088900973483213793289663586844747728012856752766500980787708443388916856102299963092149482010441477530317030357772513999712687159122206276754645497119061513289840586724736927153052028867589053744102995661328309593779369516022727365796836955385950669233166281679507118282283535699217194740447225522964211186560126694382927402932270448289192826679221258553157053346476703721794138045900806121982108669925740272834457336506277327984315825937966956843808894518866892346194464593783429673728032228660814233901835660296496494356806998349487884551269489424279143428657204592528066623361565008430969861471580390469850145015649303326309528559583240608835170779570601672550811638826228854709484999183416607497311980453594437572300561288023536838090829347689987227860190124117266807328511623539944201920254083985156533650873729078911241204473011952534846752397189789142025045021820170242494832458702145036885298927132817066563791972432914454836288284828398328722663419516367334824050236620075870385620877774403248824585423267710458566680882484054051885909268299820905345282643953310640161585255729340733283353799522515949035493178086322185694094165383513327532379072260734188355804935166241106505719352705178464713582056678552991195432511891279990532802650835013744642910386017277864472024088802590314398654809511613990966753668862439155737915033181859670874444307424565189228947170969938397571473270121132163339433318840057476039933811082366382929797440619593957270163587084118128716234623127879563522679422944283796343690623011318816497716562599092423900243182325644462225194669141188244268789259523402812804947709459507193891844840397951195213909613018460906247652714780067700846343742603267387484769803594237198746409632746391937551019348331602837231121811361920232822033223937792760650249355428961892148361792819911239154711197140976301170512305857380399703576316315138847833199940244512618373160524896343150710658490137870677900934668410352112595529495670420689751007930684670779610698876684397334240718034343589634453462129485000730206059437002896081692968973747625828730858338697839765186408474484915903400920466659068184040419382285137329672816628296182496378267013406754108940706751865281482454431546530341765841725824422331616399638402636772790335968325365803975634317074983075475952637432693893273218693613065183530890609170035304547543721414615425253264451935196490527922068718265871226448217815700042070712905764821760952121142382554768986703963839727205697898999711827413030315895444502406934288463735616738272957139850168063657645048590724570673784763186307743895143280008064684923755171568282131721692707996842277203789879130161106310394637270142134786884195729893063989914318460564446348103860919607299408904133622129287120360945196137848824628192112367591910534557299224017813097516906013376780716286164605902340457525821656403641358948017873780978298984985075625358891887299137688660437650448351319382942155967414325847179050217351776240407884702639501042145661316686380924183358113821322380391060417586259818332110271350771655549223058707721171137509657157892017476043896292073788804142000759783880549484789857936062517692505423783522963840582510271780217842162776559570082548714467932002897247338133705897933462298170537853958591508011401631207107878737183616362936157963787952205028150169530757662392871775487121871890163236461624152700834329663916935660552252123435821097049741126667809798041393417230828607994054221062831199494830749278778900848263690278184320862971656576125300199381352508244535695197546053537884976154970984254737943925288949701091260079883691858335784863560182947242109520657972665137332287582526832495266240912804752438978897301025364050316245771528501700263282037217521751700396944416407607584571954415952608024584102653038331618847058232784654873973232181570186334637851178438427365621289234426515204065206824321879541169776051825629914810766601397238672120975126911114743459901916672632123222718907058956592237324030102231069384380983377458872184954576664671848208645880819367104825490588071899329906387947506051286333730372493361763047691987407417512679445890628491165453669484310603960387593423721116297941944908783202466595261032845387512171610408323759437281518542000135368587898650063857974541472343234951032210301186188364132400971535483726006517137328561605761736728030810748664201610178527789755805215411489516683846421578635957425719935607543342222950108959882488970219700703105787673908619839641768226966969951009046669399099164891400133784232383903735716205046183478504351570324261226888822721515825498466218945721855669161280175701854648759510954994456623437364660688924625598880844485687079291141521300335293619854155317894163601874776547332285053645820417384977634480074062442624115334259991267484156892341539028984025566734771762261433640301627384776319977687068966520553981645055932834031681301480181996168952507759100251611262194346160979756404769015156995297207741648741644143261569531155079213234600238798936149320046636161493250305689657542989803373916365289566055445621038482460737159344330304403200029312884158296374580201100076535328882343724950433681065940073672420633255101709198950121881506619005621001731077042259866053915900790696560993164924458069728502051771127708899857353165072306573833319459943575219502485209867814871472328525749834817067937635757717579319409358488031553908402413518729691489337398927536778458521390914584677731315736864622438642483362293779479282598632197589398765707143944634645080910825725414999009179698367188093888264880533890155285046454477736380891523508786231614799717046079476521994930817552627611003928995535849393808881999061716949317282550175060558788639178916340768914647165950751696299715295623783828830431423308135010362882922715740660764050675262939944971160029920324042247645136228066204492211354877710508291344593043146528643679315252931501832640950593262695643670532348458714342137608104197515073023989639629515753489925078096392011268566312419115800664273976693454015985596114705385434422853657373702280360004971847436290817135450145702221114519799855327335806387607837063440482629067530716544776406603455775352794544567968113386503684717922823382354103258859716150602682859420576916044501274816146718103891392157860173499308545813264068146627561865327746314419886918843267528253653585958442236096075887527326803148095305636395425247560015035864842062327499742037045294024609490488657413474935612784333532713247787540934398534611439583848717138717047602129403453532053807856638802657682774285336690224283841013040884675659846087166752185645423085505894169939972918858186355830835046258820068698485553024138480567167936393678993230727572960316213002373043383460487123813709728164266755548935446091921805658451822567977685724168760590604558945751060717445840916847641619128304920541617087094884804764977285476184181260909980230715205736091220024168234242465271920782596034580760906878838868966944132709485781550758379216485350806528023800676309197575658999792990811656431223031493044551913077951610781105330591366615790406709261167656421988625181512928596113871515352574744719584801766104860722868454608352370319588813442528665936735765923845956438872364729356517647116372872020157801992085731858245495279825299355864529909834171933379560259762434876868543979756216146672584367892386826133627013958645244800249285941891307232103812377115517780269642063302601983455115278628514241542412448368672902991656557586684285233597847787068012225433268014228498741491001866523567484930195137601738186578705651141094261561802725882540180823398522366980085183184753328236892283702066036584997908457224668814255697566229102610850524649771500429552389775391692325212422607395677977551474550586630015710807838938685427282262443766507616681090003540658174746610443649806736884302507649736254508627711642636455682426476632750745471903308310220067810043740996567996742132225039810912857875946202177015237127060387956428201362702515920255984685729473155809809388945960086031151491143732982374823620962705273480004288531150765440896477641580220442409695777304096472425321833360106282304911757235098216309152425925271793986519910922271910469525113585923096450013821243318609207501977906050447804550607893987647663731726653055628365837961839629746932650267522935058490423993031000083987390229095246841295336233348836362062560339265074250315848379166486205467539084496408865828947013227518531487474488001045297945021960633787306131345591081806141572050262019586024882621557616944107285377590260314351021727462862791376846635877518694576833613686969487473214270965458675447972023601296149068397154760846236733866205073665872510599906901450830678319629254023916257319783074064357533687323622563378928483412555256305534356427662410143452716929307165765779955749329296195596141574090579334934939334279443037458765042570932834195645018241770211274170191728630208598560301264546414386565753604212134609257790280840172136915139250419791952846047980994829659477058161198017832782035891919772165254303260031647029269181562594230929962496672674764630894383875671383779323199787670263956949573702278402901019715555274402281646999670652840797136601464186502940141004813912202033684084563331293398552900516856339695391849533846068581048627883653983046333489989018513181667380862553362198234427348210132962181488010432691642605614464400263141552408501661736671739625071849553847450421875355931068854691995349922010576003990989065377260538018255267475934149033305042706305425936915210550115384449815115471307636077550562451944428150195534117524061408902726469304825627554697441662677816483976588739476633779772010034269692087334418040971160782559414447962833789152626256889080138268737658326004101288046259001570333483458516765871259107419774992518701789315277167200301204540125156738695080047375096652297643024065376880266478654426090590810968020243416604683700685971016371608431191282674943505270516857043816949458213760772411929891103147071896105123157574308189542777044538142343757708551399549815112351016068245227265267864168725354276371339399090706118413487409660979665146239410146355431965739857692761653690638530826246594489649609299649173294996440658792760780592193268071570643785704226937310065557031529978804219596022380922243441131896960635772065412049585642033195415745587235714403543800496102201470419312528672713254633221568145754016812628765857547687173360141861188654186653666299468814263811445647309982652060763721495934910473588578493258989243790034036916547249037921696523736879610190185514552702798135247408603257931131605732750468064915364956722854136410706071189965393027759152723150242994459974380527760827294497073280070313417032873012483948953103102377403042419902655510270937231488365708809009344769904881887665051479072837784878285434472104604224011186176640718878710123075574633720233556444948001819578725500464920649135857451440870401077410360460595036684562329414824784250618920631196987435644422312518241721022356788029767959788082623103409771771391363673997414222246285797400201508258117031915763567141789629162605813689414515397666280819912350319717983403787758862542406666515186920532271294984300308123485778297756149823179623932993133932661398290736727783258114715039153970347146258801352844843621429136783541446809842256366570586887523514783175769062964932039998151852004060437812915042912443728131956126312497421704343201310845209076883453819544013580152915105226545723177014358578884904917510381746866354894013697333374194050967887450128835254342517220418905774270770925415721762341296810655392330706869619092362507250762358527670147840332260526901672320727869142314885694545135126432091057843574086428955330069114249268389532105826560198799465365787307469105122509100025823656200659980013182520885115730883454831373344384982318416187947015581913578356378063411746999032226269500719489951945340738385234779129776388915773261444308686463236727966547148091599915047247961748869268331267006361877863143579200343178890902935720924764813997386426877444733510907510155232370931763865031650476969287357698207458114485351830060982904740568432008378379754476033382466113062585707381140535963590702045062912611118992248574982400010642772121817140221224357522290167030622497823690177583041026946706952984690125732547948697937543505736443930452670430241187583009697998005704392667936196095573225969571015773091719388651842164579613343819544735648548156405857765191647628084896434712288716608976940385645471627430768328876252590768196838033200170655572281971749761715658265468699202701917953639094484643810294300626868801789885394562480835321432037748327736796947446310034398762463085334585977313541537581302099647992133003638461318439225904514600310227320606457380980517761257401721350327580721533074870040293715588217809943105185497426819398200870016168671020035960697337378737815537843952353797993379012246339963085731604240570773825466301778902484256576896196583760673948431759943459916252525384047796646269379670514587453254881746767850449627746656046355569659352784298093074771945742941229905183622627544608006283813519801109516353502145907696283465658418862279518768148034807581859442151106378879757803630938202246123004216200926773267871137982644903772515994317583734417967541512734529982162577826269386524118286312947697116733136766044294792541211728047587572702172770891456093728249838550517368445036535963597632510975386166815467710886873491522118909023478757510673925069948578182384069601382446651762060502152718162251988465225174311365554795231739984988251345068377095201514230014622516455481441270100699651071877378953948615606765069092979874960022430536822759627489227762815272125185344596592039160890898781356035801030286759078299336432766477523935812741260087406980866230375610817660463905001024406474518917548644541414870721516805605409424077386151948487201257119119555754782187573976449285521332605495343474642605039462592434521509928746032131340091207219702980494225032019883118305659370849625112869889517894923341252725990403082494124055323323915126200752916345859171736868632393485466639311965261349566047993948821070009848410037224111531333550098687799419931242523623398511107379000188860928904995706298037866363453229638144435432596328255764253897958536497488722576858277865591109554870685553361665279198401449663464093473147222308058308779102509182607629758902895388582632791227642967087987601381709819651827620226633425633985038660105713555926445535018567311840147858540172938277773194789199337362205334140905493596248410645284440441897407219117496549847468499518660234580044379512721644087857541624551190415961221929743598596532102676372047937927349209734739035861777003426909174967980629274192500727426118763518434615521029461946532307195502147899724435754236940754235949960555642660633708986760236093675567926638760425875013628141659444942707431679147104710073069004790352116999985293874582183744033510819829699938416785020293265832121626137953357758133566146127503731924045396475739330175528596074948390707265065861749570053680804164381701252308182493350266948884445404955374487149082089499489736461310962270436140071082549967627920539313889642150305152132117751102451497790766442172581666033939468689024885399854038580374126378404947195099892211468309237116282196077626361114379224425503131964706930248515673758197147324266376991517196197166938495147201538075278864777830825007453714381277069568993746639211376960982057840949452315048446111751885295942038753148514661340032526467849152331545791419469532618447024511211929545628874417824280300938090577534267750169144421218347497455217732467179203328443370225791020205368530727124310237022774310940910828578634059956380894403485428783998424495061524844156736920156980434272989484159375050693204628582800208629318526721833245997076757521484037385623326665282767484351997060721072228063432507777189301495106912038566398634550776860215464716581790385296359009448505574472456323081592087337051975910230854398331291857711397096937906509291101653019096339940723175965762863042536863328565124200687655213174605443518665445949651042070322665907591556426827601463569994300585562629610261140697407060517637795395600493089220072275506989807577891236151995152562019750105669631826297590034024285179629404852315374993314714790817009941389957046845288272920506554320882535866183070703413817820575709033530658146460581597363454380333283634452870591339654250023173023856240828320129736856871211789001446214348758843650310276095466378427952737044885350299998562027018185016639350803027520438062773483541396325448580413864912746333861513643760297163877277848456275900745494162996304330771063586332185726635459539348901890659287809621378503271686792870180997249497800788300242878724979299604262674363953016667411004544895958883587793175264405628466304407971013861795864533865999427932723767999839258192489797067733862762409048202885165260679762493473197988473675433504174051498585876715140995135573199477447997792419107855731321164928413207871284650854285859300538049137585213042123837555949708825051622355963502446957947741304554057824530432603166467721550841473768561669560866370257729791589522507942789600805220779554422125388444075091140803212804211296514789425697046095692786860887735074183808150897112638525949566227406808766760322416935175973928223028310515372438089857424499418777515094542208645247574121726413718798842616387194832638845325672178876284148506988968242651611754996436716935034107469122818406548850704305214847766325541421083008300639559875813756864280574689816778771086582141287893346568426393351880972436965703025538780901483070195865553094297049554968617434202717043740066494069789571463852891726387473919419560077951963132948907127988956517627728296658777161051206691024273181688218593533626509863148788433162697956661029099983577931019779036913261795243603077367950173774948315824133406869516321896001054852969374819740287807648954057383782994118852639283271612598082122483313046829536852999876847471025496237201944117153209207184652504065229394221834290390037299920351033374279941043266186207403258020635896146997892914091191950895108151475910658555705285551984236351505758152514642737020112316458770642986030871165911710621416823330389117578427383267645311352366653072805026032615237024795793959029031030960910243727861555062485254950795734171723092113330622719561927648118743572650554416202970432631314990303270278715992723592084832680599270839153494362443936238132022177639193131728327936825406391700511578649565389952775137661010966525959839383694029621838904212709113435039323269684819297518498092127006074350157549430851837313661201145851716008083464558238135849875659704470397794772273865790652099463325434358917570272846036765034037311073052520648394549172762492960830232170265419887012016201127642466395222734891812313009509483820225784355376284231875903345984086779908541943981333418135300167468351304847415383288308093337725147011484698829141576389090459695998958976117945871040626516106810771644792265571761883821184515813687173069648300848982400509358068677214333925574225726901857544688949632717416931084541526495839004793927892377595405589337040074464198403828538576583243939480280865932142333730881685694913110212122385620439070202422623126848227224999125879362105707571793108855763033399894352765260762790823867314561227339157542385911748404664771772364445503107175804397210297489912650202931592035488818828838787477005573292830592496790966964551775715807571454194358808864328608530949351167163173529712383278266326000073039562170043716902483665892557245229034103319708660678954174211061902295885912022358507378268725352699202930233829377542097596545573259534545230300467665464450354527489656667900420692281102338044294748931820580938457576365503956548740793692447099484188601564211789725816739123402117490162040816742625985570064212858292067160092263016725085318761299632959377908533072127320194623537534220987394055682960010528325043898598380551187155216630841073297957614259132368520077106414290523297240313525592548542230595792977238484615714843058767596286971704579079221349022069287313219248181129843472685228596496636074350512157985220337664809328804703329642333090978521680664612460309542311003721313123793810514964766244819251750179178091760644046921956379868306975958344312054466836230946622387076593021580482841321364619080152600329262651878889262102479040749150980417202249208819193658864956192461710438820365950535686294291389468383587252201288856925943712877463283949785025751630122076550521782582083290341851726435555028035954198327640703150165705159746233046577473311610532578006503470150437592082784692615580799960410270288997979557287190122529893485963446461925741718977785967325737013694334439040265835379833541788665054976027730541996463614820448560305805667162562842938804548562062834685346402918565233034434711605772300349383060355530365126250048532004194686970552947470857804181565109629040034944522598083732927581586054541912645821248116023650526099460398535144336839082986192822826581598237935051648840679676054472631400604955438976450551232743274725969995096703042038658223698132999087062255444474299457839534749423839108360154173726311649196373623941687855844192430002318189231972852100982792298484639624839981339954284480998844988987318318663695467707863719095918278436890649585594434076320370106597029456207102361719802977261529702123935636018454541863220504644639042703960809378225852853234179645552679721196831030925552546318244637335858981803002860996747306872516595689495703692996710041723275878090114523647788222297534373809409487309346827674130738377664239556975098602414872575603615637438306392541320551128993841930203376085212082091500795714445441000928152240653909153619591096899666564911181543340236095863092696451835660246736411943656633954231015498797540446478624528152772778718678268064418601507300767022122547104892260309243370818444651904396381415048324842843834793641731597782766146599343591833294214011391639470309494229183680804594570570937097237166053599764607588698169477122385096675697214958437200489826605815946933547607331909337140367019835594016665078635702137015678198482838651059562437781806254503262404261268210921936086174382453309000160959784136945678427655880724243165926402030822460869275751007744825214469118183448143704320352671658221071343031030748379658209796981076530045194471829041954033751618422114268891772627588959494989962201270383458429642232925427725135065299703178014313431854687076157670923722503387383119544081094535072500407244914534728557617776548150339332859428798639474599287324852511862839172775094814246087875753115503596936428195459279101726265111124156235258415087372000032039982016766923546740342509725467695299724779695441727907947230737585259317762758431709813931400140572156184697609621454064351813403523227917240223385158400161147346873493994951203753025284771352954490505891746846435882113817613320017574302480534004954599228781296423066112936741163165968592795931049143589865810663459409741859151939718832126880144693942009850630105619272494405797298069742988217229461152541758929198804712832049834402937326611254969104715136209799668409348720300999373234379359566103077068302299993057188376162061021740500735158910104337473933131967285530811651763480204885931527828299735260627979452048248092338646760304612010946506002864686261176062958235162678057080034838393976683664636700019339708083604896661966187481983422287507403544600579698240794685035962977201175319559572090928578325688672525313431273729085884104880598860624833352745971137246228949723983924315510714089173540074664279870647040405219511949272564746029625925951213908300206689732210613762514472545682014142675653578433749067125816135154871801281413173969580953456205587730221872655373878415875895389152092490457583613625417849815593766287069401215377460109954429604783201497096581241967715343890302677676232587789824302704221327959048231846212786946123942995256817871779561839623563471652407062272302206329757353615725399513379742458897800644910012554771984592394127959045558944312164595887256395314178146802663865512187366572577801963100742431889736353591574124561836731835249865670136135746681490692292074544028691493869485918755383052449926668920885106092297255326823529252316543547079580348886557585655060312499567245350719233583746900138371232552333140984468728481458473651240163341723308472475400425254300249267744689760120962847075977762196599634379037693632514255340632269821606279770193049416447944834657797958807057572230560982258008638454947852153579529461809130161846820694953715789122754711854664455652621508272218119078702139037512529101412578896670202028934565612040312143272965195708207793061077462801921875573346430129034698167744769529765353318893855676663656853224259266318791174350606155898941765032991987151149570258388484448875481619456772747841675640142805673448063428528744320490156454037888410184045264471518496884436581767180895508288734235982745695956107863773296550086552920872161662975905952546725354231303144807649127031085529308240223387242048592547657605759683301754126453505936584255495806404352416583490957972239792668996497983987472388693350482785890381508857411057214756019206276481851417429634121723825288023371225516137800964790931754437346699150424933649521314925573957748651098996337155240579389892012132078809926415192718704361348717309558884985514022573877300571261464780570476660032561287009562634520179838535408091710878776562017904166925936960042591580481582358302098767341972328843782711408035510590795146772346483772436644130141729424259492959198721432586888056200484198520574860425912991143673405176749789006517332872302856267645331504420731173995871752427701310437830583713265671746990221747877591583779162191659972753693603738550016458865282261720315200945155200531575693558012263747555993310621018903010598203626402363311790447596117215852992377171112318705702109049752334076798383719869805161234125205343308638754815487170864947381013819675299215322445692180151808351372405891447108813278479959469725739487870704300366162852219064985528471559059337788353614839747181934370998920455157626805210932302589718701371980403524372754990649690751681630361214960283458127936574911628840075917055882028051807950231263934757841765797715861220256818825719221851617591812165020212405453533479114690052953108840030477275131324023762647605971361422044242462601464957215484542460271859808785088619561280450639849918884624574464535629029538476968646149545548718309155792940437511449046540853642390173046522194474516790062361961762174607073742580732291553033733877689738248580912563687780003758795922882551142152813630059486303021751456145095826366089275354317120626818275391186018707340145372300240809006023668374224908835294079249623247172008868411035610361708675067007673588671283571670746020753214563319555764215785775575196841832377876484023786227912405188582197598803057774822413227016182058795032432860659790361296068871772746736533776909754349614309191761633654260407584315844456652870542157170286259353376348965181281032361509057209717798258345583352899948039729468097178122002013514230950112054803075803553833753289462253738287226497831794760540571266988986114681346495014194515387488013518742064063782798540085847537970066752212136074641493013190380118255788373766341879647573249252564073971726429248387227008665262172262257817728030350892910197971955748006139276622045827103237910806681271349585461503198623037056292411238310567441733356064085471347283723859633214789087051086873334891611687255163245871829768295134981646369118357586236029551215771148313711249134258263978940887204271976053543456484910827006357435788481660021576220731342672908259406011300717012444340323032600572441687207736576043161803326293051903633101488067831258334390092567505110301863259363330032678680459123145935098781782853447736966937653432831979735284195423593425628041448041427639077797188479120440918595310128254468501932965043526149271590339747205483883434967191358708593748191396692360258443969396513978202028296511424114470354254664537741281929180269793952350375529524868809709397220405211179672863657422797547796001112964357411534107018694170089829511538765280050923830897036805273046558562737441131152265541641201291926987350650952629789884336091586596644548100977366312550235612002707320706564942201625647710450110711166984138962673615474157660546578304777745594490219494942920562203939140453728673859186624176885540333444410277695100757085336395211128038412722643791692485476363642535269911176095101716455589510844227745732889633280605746998052012438981061315992219858956314158682071371309393861746444895539965635634432755681592380000194942387570560305212103986939975352272166798654408784424152524026253142479447164634989634167359510487805006785222826280107841132413001200157672490693046195649691826857177212589277363706450985106126336553705005198797687540599631391062213567639659850258162506618550753823163454826319723098148743176780860304540146234041915490821701885475605464099288012965955831175683304049895878784865866427035617505358170789323178355171255385233649252277807556018324781632968128293651778250329342906942796778824514174606216920983398750288300546375543985356128492161269191900107443075413327050753178423010573999328811966522511842908395563064011328187708841542259854929995467497416314879099052471504920787577130199590637071410840118899082605253231285381307429538622498466035445134703481769200725094858987893133780047513438348237921838170550310150793386100715689891873388398339013229623811834240485555525754376540289598522285203977850482564756565381572510657354431820781883898025809961775695841167592220096243643769669055772054872055151297079791537287477028199185233507042265511919652955829672919426882063436840149630179884267291224827343992779734117772668126929914435340498032285581801637346632365766974493987730968644214872520793826723723074524858527708104849150775480409442888737187079195635657286433579102102130265120322093549722992803316989471910354498931185366530223473583455137953887458864592648795037362586313282288510450935812446028140709940144202508525250336360348626109403196280706253370857065754850470305931511607552836492430140845349825169913043938864638199684638178203897893874809888163526344625764467352864255862155757681659353630739426231027535751623309091470264408306626174848465847589067019085049004673086145995145706644677701998359048590213074386802014833822910137680861644500282816169412613904822426097728340930900485228449177612317035968501601996072801690892638530075600412744048336316549091220274214191606607911689560552148833662982866596714888706251116968391219958420279806868011787253643770393473023278278543436408728028834265207494045168191428256161488750770568949745442511561027685290600251371849078765303181807060154001184327751686202258337340560823866920198799047896157621933160222254708716381715155339382413877335484597639667071405150487037338364824332347104641047063605683440251479826967572084357940305208862761825326019591644130909975479274070171987618163996946440354617409347641921921295552089092368451458620895243911162553625777575514346099129859719293028106001235623133696813237396060665852890187600920483615177145195561044773166820307472690439651680753724629016604340923564891215762247395540089987879249527606146854160881289480922925264919303593396214303323916597943344372998222732217425100070200998029225858280252773651135744563174042426582352332564058877989773562004178559580396258383886432028687176083791826983104347211591213367054726708279009952026626958840369529712228849127682835999054785612887224382858475855684328360611232698296525302865002298997647340410850270662470610251863691990052381028984490992254833856994319138867590759098493621676778055941753818204452852884713249602449228530662717559134659688354475005570749456442731752513947431253241869783313423728188324953908854038051431520462955578140940894301122034218935609788795884354435285869725613705345917951293144314834129890154437465515713388546641103465825550418318011733347390332381142217886384306186663605904941688855402229065605999113763060400570517387493570508479220349881291797462864060351790399839554902980819137501873679176734477231957677561796404692913189129503516782490856446339475462740131414635881782138046033767719792957515181942004216307459009499201601955313357396874247529346564042274879278891379773910342666045442031954666632852931694879101595529459044781285658127715841573973687868787344628237559212681323086961314744992759225162779060757950423228442751146821140137348947376413213401801019866104809689017519216194442197961485055634181337986475815181202002860574389666058530750954220037749803872132913581357036185324070548321687395025505918721663001761350377542922750122437999514544682552655630158520755659086156698209957940937161673410566297674792729096799125819131638629262990191355923992067840768338841620333715265246620090408706155148662614891508628249835722878599259852678849411329179094285473345458003151092770465208632060597298250209739670788453086619260542836711299045493626748340675042249901562851291569615634931746676404723882389359155132824177826597426712700961019534678168382617636751671283464771007349409595779654927036926724794721770968072148872283137568030530558033401993751450123729890546804021379086279200425740691459065433482770526620642685062639267691911046696264613308666753317146097572259580597019871953766262296858793527537420696760074312501132933263219883377358718703387239166452941875522991458926008548019761687989043311804676327670332640815747557653047468803619846375071827673689375091276431310443455508353382562205159269344739461219474868644725432134336288305821163713376055279379878307852563597543890195451945797814205074176382196796276136486357326686709363994700081537178863510728699720452275684014180132024807529031344195296373443110873384014770526865789061460638356385456245110274648650303826713812586932836946155153219781690001824406734459407767001513385946048038086410748324413331477345740623467464967044992967020376302842310099548270555733799821961600589281439967391954666117569066773311414972668579859347589309129719381055769495196150184807322233539368984683678345043408948917896888922404367319255715565138296114867021488744863955229727263044591018001460178008456532961601073874172629548013361741595794493145953182463239925071652430476873900251591474989023718661465058660641468829603335302824923698812553053696857090176616661974221143859637285993065267149087370265189557449769972492161238567323547071084815082608466388087724943574369642583886595508385857144863802756663041988331689497672297077111936306244982070291934278526322131191063417344393923511237341074096339541908374299876205375763536805777151035746976159354254578347955981928690562248582213938182937967684547814132860953603297552025493922836688065862123969532574609493249564282563020243586650372451942924000936327780634209155812893758015793726800676013561319373351708761551870741188552356479453958780927473347039922673981412681062017136710079261282994653955563607647925243555642188276712803416610833342142472426189140474169171240558691246846097208375515020650714884777617487577181364887093135054175331789398696354439145469215274206577484590480875572251667981221103156901635107781646643708145572125254265985756579823707838823405813406686103563082164926693620528704393249634541305482437226280144951014799715579742494535156553187279592150800181655492198977848687846356699667013805791697119314269900034684901157229043391479535155723559355400003432984663058106440224118181232105055847947109130285246899368251041180702404546287414140573942476975464860674263458849009355494853546101847895901252614283247172550835624871116538639634597092438035537908131692701512771272945170018578317834440716059091718793354996431156563284918245364650118304136745829808464810238460019844672317205921059713876043230001657308780546151103868326293051907512198461605134649985154570827903963532967324000798490827956529997262798281853616023365568317092097879028991643810826014087861336506510953210701269308595894872931920110337997840231987998424376826321208590202108341495225684739110583586813886852657434667378648023282579795967502614071671891735956400337588359963036460956553839728008446454324619721266332938112189464882433036695943887136935442083834977493471617599521193204819119841624425676977577139337305460966867790559350989683206330380348792271622246235299239444718481294878752878409952413592331849490811378337071481947724516910356187135145358345729990285425830786477110195800672193502645755985158505434374432799067017713469102070046385082955811550719939642121202179042454953205036099535113942134251315843509375491830730719716552738645537321658330991530149600835735192847368544315830264279493501540184677456900679139606250448661339474961780650985291924300197278473286573159060225512718341623370495381076890509083625383838692613719073979639519196316717882723216147925142961240726588666366622384666594018251283227244046142496127987764359714543751561238166232513728170464196981565857762961755684702459790272840228315015509264687394699307515048193982532501550255051357902566717907687653481686900082558118278694625024019973845961764396636758943540121360631418548642636616828056966546100698712947524300878588197850957722734359845472717599667189494001797064851822297322520392083038650000930621483780122436756351678411524733981481949943989689917645525016712835423672371151675677170495120798281663652151971696964595351519425301892703938330816476803503560634155786221571657676788465517550842900028292242363279765205389826514940050165100180897925262034636713851806442688574728402785684229782634222165286871447640477066492949688104751913623304037191245858072120809315062559282182082260879169483880410069246810490235822326900821112897437756678624194053017720933327864963768056265628879075917670484591594547164703438873909464713136905658495284215136044064314267040785206703415664566380881917372744254696531887634193452994695454247263313493374228242180098971594467104623326247942039475959805424297261906544432658838240639447597837735140719759774153844911318813281014639937561081049569099644194500656206052803790957401795359308906245229678107763359352522666072966747433890700551236757702456349686982967123584920811619425728509518494816347843901441289547305431060772552287965290107989974042721234784015398673083249978099254417950560112525191575468578402226839288957478249758078496535716459400393079753215863319164769966241509306822496316520658318525921868383720790462112951802554121846306001274254075866458729561265010733266645055155650583703910385922614336412072781955038295138845978499367756836619152815190983711856574261397110659694247081384010540360976976560016106803694054172553831003931021088010084512661274248715943611611872275926077048334191196742700148957428591739403781885680539458633482516921308535286934452785540698209028061287171368914711414957607564086978167501006584425392288494404434619975357075398483955718463585981490513981699112447013945255952649739541669098251517716193099031349125025467189662207509778938472073057916267603327284358084697253626841524340787513276982839450254866395588564690356841805196499856081336299372341487732184476657233545211614372531304893964533105452615350807296314161961464887374797808407536489574582324148283637762812992184460863329164184926096422790201571951745070816747229508503809765906696959144783697210302422946643850258594188075789902625819992533570262066639754892271298636216586508134288423544428985549823713588738446967044664298330008856784056329215682047358322269257663412074096646814647072962358332565886460200419913410523738141912939264526351082733780808017091678712201720294201736644228655527611908840188768780321205337949031960952880716477030272148448707624339927686422575747074178359802966512278571073845281195929709765750650734957157067524025788353385265600957059392670725999060883935256964122737505845212497854503187625364727368891797100617968277273016419627887795596802874269259083170778260045481367934309401766415119791015505459843538038013111580902184273482485695768496936699668374996203549363490933398275022276890320962915695478230416752692403079148954992205292016902569831359676918348462111301118690262465733811593661154457545660722236823180945743295780264433780974424726060811847171918005180543562367220228134732591636807888805979151073449289351860200261156115786569112359165827486716951407568657053785816328300628195754117490831688578920218796926501426394186828217878745813745907397170363356444409253286219556358137788085228792170139517460959286935145902238382513054342039576316871571467773512652168512792505919570269488081660121281121009415558671050605402021375605715617324798569983404102640890234536944557368187590087608378690458391447839948776249233304766790589201323122848082726548767554620218361416267115719342287998261731410883604864525048843701907620048771926589983505565979921505095406541443980808647275214932037878657389979643696513547307969061404812550975524330839886239146980064896702456668266067785333359095585256316186230147782778404631515269904611900365360249845899036982626922871735463054261956174452922064202309700531190359151472784408734279367413483701187375358961691910103810767468740956584623385413607038337151497232401818377729736840279775763486663752006442085013919292426217465051170969607133593925068454670990745909446426888832600402980347889905726998087733640961282703546577433884296931773514838691539245138054309286362306129634179092147149497992625696416517976645568523983512544116964168048525513669308282614101932237297422018620097957296988136831166537808376828842415062382495041289281908312367898889365825459380408964804429605554637822846732639637747789628176516883967995168546448362557070176102866491381548999315862706887165230746618740461979726151573139646400642104191082039301408680161896412839784246965200093867623685939976306751759327728642297249405641221296068430699106351524906098888711845546296664771280533165421291266158222303201702382466392805403497272808149120088977357609194429431879845761333000145075469812843314431272048766406461091945019271047262681461978326398433180019729791355201767622189121912130593773160015759924704400756422081914760352478177592096150924609230552521977525456879411261052221593148449440153570545111253099918519757251262319045421964519040088750371137752772626044853096084008771311219016707352821500078911781726172150051036974689827927359360816047759238884865799713195358025744195769206380127991516160463305512863590583785764466184260382870124503025051643452405950318837625191506324812959644317265057713419804498236531388731602772424643681957760749592217112201341536535495771927008727142466096115716624846224568844222929868505863502212812170362410003814838461277737900023740091538251357860544163754941649873369699621467318524929004804856024946310353324701353354433727445857900351459065434881712047215000974687726286230657540724769001062699258894866971777022987180443550308315181295540394603983501515256492767150302912005913850925669653374455016908924283187815549148566850162935850533854464899803873211150113718473416159201147999873023103682225184926017670335952199057245402677069984527884172124360088746346338529572984593147501530750620656009839945439986813555780669727325170416992990682357928907284329999957648712185274849426092112800777565232821654680111650290818046230688281918581844027643075440415890202077712334839988153357627525194823017127895558799349759344568185089930801413204793331543822208771759101312802638664443764704402469006919562947593245749336732968744561872668186464584919818122670112281830598669021747808838817496313298283591907328867573493661435159569182105848266657953839785451119728838328577492682980872111398115079640589729995425077617938086140310388075950977887143399062782822289383190431735311888906398658854180912230953852864529407579240596043975875867597830775887937177941392677000566623546510351205181136791782453163520761275246414254190359004208136035621544912298858048229913245412645292455629975954183981916205206742816445583279801231470781130579401487541345518355281834617022870641497401636742129717675411094423226122178151651384341452570021655971016270395498939463348919482340061945807858036856590885552986583030479811491769210830060558899509826554739987575192147938707985998285522198580592114837195373150262458211760904322000730871957574949148332115528650335394760853427631705170586307380873950086424209931913374397379546314320769762135350901955596325408229792596284916196514880633575045145172876348956120409547465951916878947861173808414773135591500930385162181882355126131778275304205949596797279593881426469236147165858916192308219784562260968492366972211747652898637059449815007371694478829427787830950578824528663413886275965124520341426199165231141322483926587562775221751394284728501439978067754527533466645370315025205350031911460514742676509987446850795137118539572340271334726903675152321193879125411505926075568674539941135611521230097233250979764828228696421468200302675904463462216318502026651120969618589679558103306021719812235085044226245298633646145567267681385792240428953191385853374111908657455132205105936119233334359077545984226172255883150742363569618117858063955289556631647800713953713154965806190426692178970603108045052301302483020050343131136113537460813233984277696840558001554625457716568436016159774984151124699868429714387952599946661975141293898521686289835289522474849997002984031427170635333345440914807366751189210156292198364171071675432908385821852915857222241465489879732443291697667307112848658450133011612738898447641917449557178982454624584711128901299854038562658491453100713578093111298967898005607572661834904344964374211222256383280940339678370001765129899570270174845237412175554649052044421931430377386401726097441657650956565760229772578833735424126183288243207480062707427855463248508584140104676751708509354444593235076581318966229466118320982682668774215899120031727078886899693647418127353834677604818885042062539973155564771880554766334741159908153037007427536891318751672988825219632890924989911028558826254948463615888363732154651566046427812576870459567752189630816621185679886932142819944094106178194949187507473230318421546306720276820100676547741018365772709777135656570984708094009535671220775966112074028360566156343679123431987996119269492325681116920251840486904384950406976509244784483704815426867132459653064116261194497994101486955498565818341998437054515914658844332008001231547398330242388004251827217818276942761924260621837252428368203800020477619744301022606530093427275921303841764903150551022702784042113584329275440002948370919961058236951179153812615537970474807212549555778965715227947741974348242665806187029171740803534023175187790324413745975586121309128356368734503685695952066746062583737085417514567018895569830558226284427793545242961313736589336280166363574246785677415070171942354485468903036920099384641787106513248089698709657853173624603397974184313351071688767841362177175511072113887249441472822653355388171711361615284653617369866856292680749088183211689745167675990141406598804248088530340635555082510520967639820892625753171479142636186009512407005738836405176008038652741089687560100393772979342327095302566457753019714299370509111664369927213508943267065015641107826859317798339801613091513407755468876614537649257039153998276011663884680244920236099437858666024252041035234095090793363076950320092427080361475270514776525563027986698402483241146644019945745437829567264916468138486804827814254033455980768110697755250952238181299906925092398518096056302987049742775686128737054107392492694227203815068424970432247271912943299942461616649738557434419489771355469297156446366477822081755505043620796139872193356106880739109939943788914585069288433476595321100617512427054228521862556644656335972680792694219154454982120310270282012332320422718836831670742367983329620417645739681794043584074222446953124352780515751830526380857693487568376162210674679983472990648163958845778594875491906599170036387255564584343049352699497647154105057362646125731756904751444974270574249579138287100569281163783593703136340749820283461768753471454340449081239036242498744754273111599969786029897303789951511386353411675931262306668875036158878369241530816492177893734300123302587494475023846027791661911518072325699411111075846603745847366136230610339217344855400292708016595103517265152510414842592926769771122497702617531837894785856175293500299132682298744923056539214098395291381469347199361523078913782329755361422818445733880424922501878596847757469255498635229409606209724907176688735371985571869184115215882186779411530490559373634065293346031435840796373923997144626149569342827971481143153852552324335529700294553290017772771912339490919332120600763160275618981934731249797818679455881242853763676425117591417546790659993645023735007058441834239151664843427684572108576742574567756205116603854187513610842756984362190118912886588443326368120857451385054829832445187376065006724276100378722840511804043609020394002543684163701668021931577954690948507397066204602661123731880034272710863993356409774011423362278048954454007995188156783735973677512495400880403876561047324426138633821773071783265839716162962500196504335146351929392599503786015048850718029586095627482062543073055044958170567247753729624551152173328350235143119136706705725872570435226447462578135304423818180686911629933869973809620138167957214166957810887050492527371527819154921545448750792110151399739928903360987818056948439675465522463938649922562476757790746132385858006241233091777149440465961806677463995552299681877607617534872236631394602091875436410215945175069984448795733145868764613658165127296184556745834473524155269272420519087768013857777971059893972615899735920796201848805685021669673463041685587581115233523971756575703051367097405305532934934079372105862060952542211094144575373012296860378572608754066575426724121639236901440653069835129607768408979857393450190588123647937320239606876519920046888513886324065773045466978281536933834189217021228438174276105427987095258650920221402480420227330050726919216561512823136029753514138444677882754362223303903488092251137545304432122932102549973384893574244128303218172244860950723819430476742177406413893575683443333466995240945666400369877348450605500442516106981988228627765891150488755405785872198586176962621065049249277957120306747980528953550338994059293589646974993602103143076182052120123392205814349899097041409853049231042268192203451619959101665065192753106619097985737922868345944883901468279417388084891606924344748630956748102769381203095427816228818281668939111209139168402577316316036755160835195287718272729512202130806943639424063781397196644837162297113183424782746498473435209330099292954535889665079769599992048148702544602634980436247743522780509866227897258736848576849637301003255075922093832344256666537579448619411053688691285577048001383655659353196501395247013983934689283257673094224601816875383460257553655926622054200090237463250238020580183521639620806433750933774340832293313038243044903157391502099187844556609258667374594002397199422613267731639485975415882982946593207331546149517151645165420701790607839655769707727791495543635277355529221023928556247928947241016255736690735658897056812505350763623063231477533336623396667073390000497269357534907079525958534965425351507298126375420283790488670379024389506761772397976489579428332061274794593107789429692577524068492774041622623150607851493001876304151312990003123181663340255678510829077738644502342637515901456453550537283190385409787297780334869351596059392440584251022841588073119490976918557671878389608528123394598245557382478573958043331684058147530352249537933109017436286613437053853824792846313393288775276467335653206199283665131500632647290056653043099665011268235101702485439719113665311631111755994826158230327279577342979022381787984924133857802946539062720367487300640789312114649533233907538657353924620498640723562152043119522587567167528462236855137085301604052067680258483664072704191051391021007404420592539377848510078912226279475439802123384195097764306288750540561633397202039695531800927775335022476326244511283795418263716519227811085481391280642623990561710119726938707911843241797746660870556879572540963314413396990428977846005169191414242462089929832453267506087281833294485375111126468184217304047432909513994126185633305175323024466028831941836519155771893221140541291812167656749541099356834156978895857557579229302940244160381744586794827860685620749234447175945595093940711255069334904282948355291939439051899576479528325578067681393543392549267356557638779053666915402340208946437949695333408543243066617571086528290801335855522118050643114306481059955386960424453430586513539440998289254880974346504018834915546160479447948081773288963052142469260554301141210975642311416052878678230643415938946903922582519135937088225974889803468399363556222032547480389460379737639524887327373314959632866303100181321376594159638466060581630862038653786673625652228113819428293542840922677711366498657939204187928911125996727211876624581861905740107629892071167570405343531617788631890719971199679523256925783170015085849012116336366832011490628699337039281078112467212781820051206015951878215340413201871417640969661675277502421477992686289477873875901157353558284310425875858177866910056872984650078121873290055592087105974767581137173059885004027182973432204905109149737357513250347528016852334398590593517562121570033230971136960127026986782757422483039609617503481397402250032225921755149928191952202529484801818414270870359650747577458391867953683895844630528809035884197447128278562219247669686139438303362818312026241172116740868813015957078416110478780108939659796577053509671662489745257590019411431907301595625449711674479047317402325380073273463594285606691644148494039686032477254629681123635428470418004817637991488286296960482051727088497399827556560777985287703937461897030516311997093456066808041468936403663870382944077355886976672991830720216400365010329423785028115581412723392721661594642825588353826419007180677819911112370249528540770508419990799064968383302852324081630038905651165841733228109767630870655071652551875542762886355009415040806490182975801763050182027717044461481170429896347616782200652352882758513483957896522287196271136363905815161317469067666462403557352442822073110401683258919342767121879093501851668609244372297134729206458893320045162558364283637468995333542492132656079953026425815574765845178734017400723545062229323035323144288275882376091333927243185911919382923828378753540745149856292483112432816525541313982277037913391140469253747101803122325008979306594169300532717000441761842611734047545409346472256085911383468704794922451063898939051506561765653447047749573782623018209118579762175084515483933392640565087545536475704226265324591208442103400235310704664356448558766546271824350837620668027258533281856225204449356889640473987935987926839884948567319096718855811698822026486316966575915361067883346453660110994511016842368601136330726018260960125196480603381135363252444365411189677382738070207004594271258722955214706030306405270172272705538902799767865905376151489277420864068011939144087610349476728321692100112011766619670285784575170317708736193959896541849118163125354985811958252263150847645350903603480346959896122698198474996259369324530042099411625316437431204487637609550638343963797861120568215086904187666978036919272139700656608841293619391368848601155980520589538030486920464302557444522795570798318731386606545984087539702228371020988770957897096517268190387602005221535748320955326171469456173585978734845949607950770282929001616646204121321937951927002759301662546679884044230229901914495833377161221472815441368466757796241889546285886643023555679683043012406296040197740449469513971772285069792964409105653794505228736426424386077047199207164848101141043097487941152752459920783919546088220201173563295621878238392072906103131074464260559974495804374367143931417272426269144164586141092968721226761423667377966673661751895657346499818836579914248875808116704609091500755736111643803899833016256693007350348348771501830463095282277362152482808704317305234617825955014957245420919987900710893520652564391746012041569363656433962947099622686483156111115116931902352545144152253645059595897770556118424638898088484869811435044568250330792370510459988476393688531864649551632773876365755617256969381721435665247872943852091540862177762922356174880274336484958855127770818364729637745357702960114925720137849516751391524982773038258103975390261160341225011040886739194918720208753998296566900958989613595968788016025965340848566089320598796599677497978237193006269154707426854083254610543310179792393254983030653746925482765307268530406732497132814850395466349623976550270645848037317345401550582698603092152730422356866949166951750497846622614811244070791268819601160188674683586206854375090433305588205522787286792190291034923304441967131004427483949451333714660156845742106631817486252951168439396181791978568539485510942735680160621343996586354201156428601504289889322374390155897309713281202426773988113409301152367690794031108156005495728730317581407812606632943699109515618026903376636611264324406990389056944871161407689037403647790445998616797198064943679723169740662119099000133543103286305321914600151621747200058329025131397086160075927337580743609772350450381481972291030902477593436164803049264718007185678355178345824772027969685404379858456874958457677134811078717977844900165757974142842792693111527703595629025878657130973333399796628682333619512546277152362236195868205624204019411296454983475632865147182551038565900483713263942475396052921960451438048422138877826057655613572615183467706569831275729063017056094658079229544526904769584552859929182123385876804753007828707243164578367527303385140101688314692779065805843667043496545062625048749853805276292474890525462356245166505407733449069419925294116632160685244478350216777178581192886573031377043841983658984370676027519606166683209775585030808118756497985751862765717849739908996972410602453492803439314566761354183510196028698099236150294967349261636257819965545537616360046275682595922208475929989617956588728550653512245459994611894039379940254177231785923324383052492240965993840194735318883920118342926011063174804260817057780385766217801052660937003902196515684803182744356834665952022554055661330494358996038734965487260895261201756554710471082415239832445864525394401353860856973729826800042990949175474464441510197700438465692662837776093041276884443068205311721284856150447729854158129342520292358813214133063812056481583585251873735124614568456017250670811083212796772200818204781143454258928788731594210318834856275491496114404447139591019372217662673435483172052122016864989982153435319982690901487248892798636234857072476442942204664012536740011439663965184383468075577094575082601074884768262178186498949420380517457989083374018075276943206964128332791809447499772074590796585588378264539798796451100302414194038926423204768531622414955935495942597604425939445639419808534391531271573386949649902911875338418062337001710385533618374368829917235067600712450252149745965370340566358476925318491332856668908996122777997013329449548100384894662003191557599399334124228469374597257266706115920533385805090536451897064679379565293730776496659240577409621478133191833617911893087425788848513396985308302497115316687117349283101159304356485444970707265287222034529747401108946069288921866141581471842150765725956745958241972746144574106266276017273572533106320749222482456573432905492675966063315332059054247329686004814052655503655175728678238726892897774316299764536903414774880949530003106550108455321573596741955590333572583782310885144433616026964505696858305266239232438321262743318145462263781268620700782858185282493568642004207078882411354372993533286599326455148958903478066270538073360273229547423903969836481807419588154489852563039830009112191357907116012387019576782611274396116083413537778211253659662623440550843280165947273172303150553160920469762419778488624189069475929565562785609565917852344955304140056021766709241564434269995554773220744807131496172732918275019888343952245653618504166974216466030113003671445467451446038021738744205658577570304757681836116671279105368663454999236118972659921875276872640948514304998600901077553878320170531241681820822861757488801992514709643922580488319866089218250794507887557326069999290111745450414741770080866818353700413572976080527999081454704943176273441622174648206653120844219796040594905497019112286704837386412963531555688228409344921926831196039818613018183240558784406203339750020313632254258845202874932014754146449947543419087649850688043577217218039421791754447107251272020216764577339425588255602979027083217819345535278723412796216667650790001300819216552078115773345113298900887709557610848053428524624973188271785533084904762310201928061460859630505494407095049914580436122272705776073058293601851009128652306891915813533870024317872036850548699745445274677478171895244693647774293136480267635556138414845790595725472851639871437797954675398063971522520502056414862234785179096508890048693912124640234138883623162883212892227124462747776597324810916347105351006922912116388323839083614258280548904841870791188434552948120056188276719594238535945712259762812918703665589233549927466861724598928199015359160710494000086110363751329104115719390674996859823227942828644553647978788699427007679897445909085125122017229185611643345756203204803233232526351875372008395102704952314710604879593633186926895544720956489797367185213310086637286896797768419742513990034453143681680590816073881866929361916372743202547835118091447233987052898560962807307866600219912255587860929430698243738750291025366363652358797600573901390133728322354335646890655705806717003900489037852882293256752814251929186895878653678079944431451491786783227845046105292029566832033555603943765951553047239408013011594995281621773465212088910209260255826903140471250466601382808071374809040305673313194386701373512356232829596649220960168244307322705374645621758945776525902202925910271378339162566389934048529304204106631908106981716370225296446245014168080753314760171924603956077790147623128843384509042852343275338333640887870304754996151685428355922414748388512780860339202453504593698317663496583634551434904678898953199603728207960538550395280575245479873202128258626999825885032763484981028941574582132635477881151742615693516043209109672752808338491227133085730199551549953188427893214841023475826338007353758648999246497904289911311919273220804703361246239254189067360727084966081516246165066668486689039118617254312851823252047107817483165293108785764005960276965306922112738138438699394619656815821852677700154285560849881904014710421204893534660386236278859909672345750377578514021030712954809756569488391362021814072150103121163057115078785220042562032256916595478469503209426620991694848868784053172524215274763614493060826751806693831905694098746212523447273375101115070044919494695236377812220544506508643744130421686505819110875397854836484690765085042704821003111780644839214815157300902406024131899532212476553120266823211281833892296491555641641845970157482700801327509182517327754936473703975695919165447222568215272783471444906025265195124495163373027308955943397935631137910075515725195151464711821709997266281586469945500277104707197188725047298968018132041407872833560275977500635907954745730125170936974927265047382137758746082676795157964530231003948900327548135966973602134700544915527024491976292441488440055925457867949729477182618422298904287433902972172449412108745191903511724090138971566851156468604399954205646507880452561114594382489906480157581975046223706451669335698139180551181669644838936860337547930864139171154388316381854114349438675353623880928924892671194044621548335863024221510431024809543990323579250975013671027524893055226936664853030513670435404393717193975480816284515989205781750752240348216178287837111250195147208310007859814467820241609822498863462405616339133066147338389211497686399649172935502287442182133203908690526664910434696496963105247536453580189051812263239424124222589458749623164054585555743043946357194513779814118625791354989038546130568714830611689916962192096187750626332654180104987716910806796447254820327032189591673574130956465829184002091821243036883318486386523124293895569802452318575773754201250909269266383095436511332810782190065740235042465334009687099148489496453463118999631071372600930841528828818800770984410398112274213998054967804682314494035899431721103469656999230729314224283122883673003285967113809120314267606269299608701645071412699163444228806134490100645758311647393645654814010496549278699809874598128379641226323491170264763986294988181205556433976237223104123632807519908698332751064371621755690697217663200624312099622427622445254668658515202605639813107036364803563999301870499809921017790577861414030454388677014377026560111506061724394724183474830289709447244584372696617807524451039495413507811447840313600581251029482507073996307393188501803543936799455207649786778488907154992959782453216833544617465329505163688635838219512841641119603870878979929724728810148721867757340010446093156990582493385497783644229010775076432984181222657173529646457870033433600691742312420028897492733727273097042016535414498446246126393079575124444515270927013324427850820734975039738350689373364173583036750682571745580703415708210906826768491101629534683256848744950700904350476124431954839840245485178979016072942910916753116266589448148205619505011272996639744011701425222882001132593169389040980978698053839753652232637847415170782269679808173540033477846760421673906373760037614471147623222298054109716685683549230768689742252632450627369476038793077564958787619629673887924391363649391985063448632989035411513025139207358754899984230200058443659449560750551555936595165002995217683160352949117514737080343815616349448200350588227126079675616211907354378621470122999850748591191401256020651403238938184696513975043342996860250482475670661988550426278121402099585607857128296161630254142978978699062804276516925082708104708151879041915394255792868927446910191759149014560784967884278156541088762518488421721734618003018733353118775932573202573383894300862325351561389579866338009209930044945385366114085635341858310024597801295133307186967974237943900268233065022052692897048299279269293776908227262811568716886865209601614320214671146404030357855747511215457252997464031060677813394884225198895912691726133016539606283925417711028105822999129255021852136192405437106196437824534079085061385860469831361337655890127894668444090604740158446626054099893966747954970250794132033047806084141365905403406370129873009965902722035180325245334316340909696435703828573214132091539941887160663932153825679881494214342314760588448164972360084351300236726480052844941797265984905255473929472086948499281158224736829527888881431105524830917650312188913098603980318739471112769337879827529306562714706136018190063516573979626261538553692978560605870288422641258089274611645825641696102192011203172046120791499369027663025559470274580495094761183165275007443119077519416093024250354359839390645184309963405453534982537710637635377149906520584793973969989861937166817310968501059249618834371351671903420801652162382922314087961218002687636036683213302579482085448917615172684331166292122434319177352995112857859317140371151437978792240819218909735671367904359999280492548969108945865039751445853120314665485987264294498244001090517061357239322763163532706864132820277920452373271555998942297337521115066051520684415178215402778303723491295840677052774102689286997024198217036623564502630194681975285610941487481506447080726601200575337973696695567455942987567571571013497600670598086571870940239544682130380335130435906840383475510857002612552510424191777672852180988154943574527277213993114302665687662051672531440538665338787923166815822613511499259781181359066078354936705875785172222186549088942044308297471408122711515055738446959289408551926202239659334666324507289063600694232246765384968991097798854823086640368965932642345722780642519046493066387039415686867011921703875698760268921039334188450509148060467677249830834411445638016890763821548463969305795081923299002423172752978702315184055229334918438301213632411981332817694218254771394824191167961712266769258748494416883307867844750146905147184920321815872185460520479194270349011503433252462635755523325736549308468644598013214966194453995463594389602927680344706524500576714718335027751129735978988375090539864326372255801029450857869298972784652208983626906133763888242492695498911536900896352920788071683262841185655361105960064926889989525174771925156094677555304358211456141965199514619166472405899590759737828095026496693808354641885395750546536358843845480981378403613465750651606080533235618035492508578293206126131886021882320273107777167373147778953504723661748961327926823957803662887937832767624347145281934277125378648714745228804069023489194746853415332801154933701335777732363429205653687313265783021797014321038655014196365393905489528476590148811445162964394261681402051242421608923225123336129669874002377751563969562878282968833800275909168153977989594522491554951775937310342744076175163102636561650450334489035870766305263736810684856309612087317223813627716672325508638991802352795794918110520344096498180309386149122225685959797124421216805127672518716178761083202866173910111438553233221816576673057503550432737009957946851582729148470364877603411773356701881163543530782526865654178118572876005407929293852880382619066454923957251465214789854939970054875656416579773128800583779713606857588226440587740003269165346207025742524573668611961380271912193372206682961404394089393676454627003855783784736988363539575794834003904917576410912535981102401340287613477112434471379884934940731993406835699582865685081246986459202620286043325934180716574987130123758686473384709363224420496052174380807829621252307058652931766643575703351610376183138217391062457700038914919473849190546207031321208829959634595469510899436336604689789708002747019227639582710362682432103552968724722132257602228338919250592455705826253844308244563124567415540575936475155978504349242977125939976189482868939742261572861309802103262404702835027845114411650714046512656172075159833931364264933194206725844835699177441000676208009702079302847230106813423054675978627938442912760066331530396130991963872666592768760954443074325912965989245833725612321993962275207713403042959501685244417919282831911450161835163086792332139474811863618862473023064367943498043789877049389593171830784416801975966690334976755850044674593310929403027692187736712419036482163804275810529954835930908892182098510360854374615906673042650937783103688125558987563264651304561731700978605856629698223489684793851640654945861849187087419800530189987874174472144267257603333223345452519849851009414988368792776650602591480420111719688585141356770448130382503104183376806019202430249466273103987652183183328654652052563150760181632092877312791128645083660778243745852977105937518636958492210562787543642106791151603097712908798006386806372055675180254842796635019544564726654093609557741949659124190989096190007920012714857012269889636838714844126437800708147254512458488460877323533532323814955102756365819887507987386977363381448933162326167169467271619318675993723723506297972227730494806634289388560804788584337406506207310040158701773772634912370910246159709768352626136058137792805492277261851930760366086619252370013146994757336983936993583407695092178564642911219093814951935334353156679738748560570674729997889658231637167245625322731651698841475232849557050514347992652831757989797237302930242036719589691167580309847867061114796922421607311913146793190971414459273768012211428266903292478651091760219409495654100082255259707783161603267258118537526368476646160106217687357862278697598507915073155419453022540577540433067647997380384222350061100685871100485883110819121013184323230131412332610033579593211790744598572242798424699508748114492414984151693578554172927035493098732824267714179520071149454466047935491868390968594931010321089892904161135962270688370937796735265275431223034817748114729636490982872150160817043712063266026457794233569651018887860054216120332538263288426847513351845714612503709368664353662687152666784958801585990907972252408469846851513276563898132263744878800776439463663855814444164777896794807087646922790452419973594608778017981740106381996976795629652438001750815263500147284318285071813470516107726370814203074665454274046777008035015699339690550651777907685541538787976869752501312965696359569431184471608692188476748805828476517985238627926058416825901320526993162568213403063082958885760300062925559940645796957471622706409048222427359121319261081437549473524711958601101175370211388260784109161928504451322476020644190582570575346462546029617527160308018635687144167918697270632569250904918918142022128414807689791770574385616515124933506409669831018401098922836630239386319748690546233377157122863151634936897168587700097729414289540617700966617768783033775944573597614797504038098928285481087555749747507583778492279024980495914542453811226143834393281284998438293967530213288719482243509855108475754523957804772100410571560501488441706474680464517418980483508741684594489025814481299030817058520441632671577384154791629738105957342665842897391284119302256000837384538437468817612141357680358798788217912007312745697203568816518047102634108758582876015183671718499142590226909553260451693712275241426110733738713386407919873669984526920134288118871655256097440797857789917961594894035938174006529406898861647736129293122071797714275966314568346459256526257637941044004218844158078952035800989107697383745019287936239234849560375345930954788929241140348776846524210721536515074093377162143606517517602332524644897227828672912544916103429770191391736932200372407420334949267713991553223077507715936144552333353014943199833360722430852781241713998593522745715312097803018206782065087952002464052776172101105047862114631988510073624184455701074857796184081406325535870808320498992304236299349124950920709615023187315430327391671488194509233169627966821664866337786544042341229057316055601405651100276500900504650222523636513381329733778987484761395551536746317396159908600130368611731677275060656997270041647567662129028107694002165461293933199440572912215699246865565906143614602588389050046036033788444667936519748063320204706042988819155265951372821250777881344975507535395280445392056102541218990101625234720539126325638216709337158315873176874318862320684940048494982169369598239689728381176473741928633496605331978461704934553325940218219420267923447769358211382853074838777326342510301530897685443049047687595128533494575028803703145362326044703710908720428557760728296135887602449125547127618968537359810698138340182237386681651110716486576420907764731091936274053922642666643861663021663915610231543533328064507517024510211409807613332025335897975767115465627198268731914534503871203445993983901529517759870639676118191181441445083785376759818041718740917319858950553841829426004628350775363483014630798447606967204637113567470947113063992354424092225562282569843997228031691704288678317990002367938776157222962916187476231316951650433395089511270905963163548618634890145535447477709825259634941033475506300905286642047776404345452160799624988558480996720508235076960356160236143337827518342257499597328135263917663113757766874502674112882437748435940610637312845252965170989946212436550985751327106907889150688767401841511159391653137363553822435065546494014733702026615433803516936939794023869749146475637326704474867813303307556641016938745189021862455077356533834333364124880168599908005319128546877557747792973030563820859517789082483237903695714387396369826541272691158406850903990907469632916691258371724374395147736589059448646780155766427273813573442630801594218340818813111375759316584323680918287000892839640338292644591222346640458927867900484063192035620967342307142831153500683858293723854365333660664113008872569893726924437663537666568466108274613860307345207677227694818469024374902906991301405722332870348020298637611894841121675597416047493526790612864813225981293950091177728917275970874767227883813239621127624800609890282515314057631058249337716985741362415382555652390684018065960815404361417512178768910750777718642486274052014246516268474130426338631535539093033324481098356280626461012794037753505286980096661801717305188896073082712315131184846387347371076605309331677269799852323015322447008188681571338139599971848503248391271399827427046343018846009713433816995249713371574699123685548783873763437201357248758070903877188721632496692891344008752354821765018176897501256863643552085321643802130787764525847143764461258118757332923864652043605549447417224229958860928619616360397014804272913010909230131688540881369643254564664442809778578853986764768589419819255046317625816846952287665084883709793709413382258253302206743681168003243215675777246081559786271425582811446575025578985362000386734971468875421241354344369115647711320386170120935891490688018903553049157541269653865532072450589674533984580174257521648020546561363001991305104338646332650220501872818540006594100755503277827518083801101255198711077878192149907070072280650633961304850807064768417044497207278550058565072678327470622797683381559772949286208346868039336689092040255692618508041741853635939367550547593102724391246052995833120707722205712379523707765633602456814253176959741095244274639857591527936774616458180569846220841257050341983956364274931327558069045650319483362292887793283546482850476396669468799424209341150167266583797305481982032255184279564918771245316013395640555743285561241657013435071905489622710779460513202129735001657038820198919451755123354552809097697288206210864889411371788821857647304548636638151601291821518581709231810354496210314352875055539975454594297940570351446854241955406593581115837797696913070792227440911458384729607801349161237866824852501749386258332948352619727826084329253819051621010615500101067961802995443476832560172979204049783242205533342792546466183281937722207688620515552348886127120508660415412593239507232444612927163732870876861904565767604234606661995637487066742828890403974548509070448862520396356813086136250888412178999474524780027048884012009097155979637711244410393295629619874535985303645108524619673831798737943665662227188868442299050000884243737514081872579361720601652201575172392573161946119653893513359700058747082053692687915871086154579973515090883582441166024299277953979306814223148862382914452449560731060310980227322384116828605312131649254969266210221108253926166658956529655207789493412376121954026570851889625098213023103834904114602679831718398961051657133791048963762343677891073617904607655629855385057775429088738302853827506629332585030725647378707561285059650152191133040176990989999191047617390893935892596622329006471727353068734585827794558554881707810540087874929416741840731321434907117880829373340705586881841070695925055546434529465463929158601871692147856722138772015130561656077855535719323787114706565411293722384854004585194420984612091427043969021485828555504808841412099576918768732932167034412460125158825664949889668431515224953243328510964120633904468369670492715284727064370267001182650289066409398452590687519680738969788538877049018264079763990764449067478184936547458108655401124134739154082040666663252985125804634047782262502220690748492875182332337003436081169565019027161456938881839153555230016717821314036103126689551244372088847421403463818304951752399922901113727483390317705754175571640928776434841610788804549892322949278982127792691856529634065058951404830144050573104637979135930626560288867777374103878684177610623550388472897937876750498920887201667688684957083110879352325617595357904957852805705437373002372654821667615123819405349660293766486597655086567500618798793725105987689898053061854982664058074665849642847082778032514710418494575073573977965780946142673637955740393451150951566172684355383288511314454476172010434415391656210618678500677555612033269373431898232737206024226656660644184282083145115526080461062739415359905157883565365486348762535148969225745537313416714219120288089581070610818553927044939429430667318977253488086389332872200597694013353523278161474915587733579414378186644850936218768492774470268223285031175822655986957159812957190840511466998732947824794850297833476977020452423508582593257808334631197660798185384538481318544293551152756331514306502237811368040018504282677135676589350520255468702167083923288403878809983814870649648944915458237861144442808467867402641877428066052126278082031080566865897274188198182947059032302653560312468808058494928914037825864893271322288155881965957760403455882850558663459372668324616847694998028826393006048611824054508733992097790975801898664035184547908022723343595785223003659866381501805770389715037622461221967070390564911431167333794704868524448599579609148911394924774406646657602183697309432209043465621358768928218639269148041484661587350533619395619432565427629842921265457060833192121720289631376730077306126656198636517682527519585182188576040122104746311050259462148609051083602498475504665357838031820638696571161134604689840668247211224817803981051070085048570541371262997923957915760033075736894513455395340442435020793012193657145566322894527155042144945668172817772010643029816708671548292385213026850046624374803978445145626676092923143263554035890185119057341794504850192855466984243440703927611774208469972276478706653451785509251849362370832695965749347002078323543225949058329512546811535109173983309775767570319794918004731284648306432950666591894564499034361465642485829343077914176895446197598637334459196838114255428590695881236256792953720142170172358470800460146801348522481277792806117947273645808462765999724799532534322103634373076110147355518319199413286403046355740546848056020775479268935889926618458629685210955782989792287610296534681584866269314430984794229055751165805904247252316067215235610782348598413049723312768971121424417032418180628709925294303591304300140331236644355691951381168224333734973071081323702820653737651552109912696655913805685289447435679648767057220340741939567475986948666697919306515958062108917646180227973838137352472412586907836578858311279801129336625883356430542207754633392999377080818171982028450540880049882222112027506581843750088933533113005940679211061428449199012552361125981078847786568318641831108385923310523125853179276569307835067739912682164603362299417674383720905839610156489078784689245922822549095448108984182184753177442801701588092306612046787158886523942583314697538157813252731779401734814347950140160204140222159033472693565315510769737866397151019345590154279672906917644328428122259042410729474234984975559327002039267658763052126309588367107260854730827082166755039401056638352556305264631785120557629643996296347056826668336689691971900108782276736472091748045954908840235161192904919455183216897892118145590880058730577815446223995551305513821482222432950535145161406501125954739177350415545143971893571866604093553170575749640908456797086456310740504315023841512261917678558218914083225179008453434816220670853759888381433489232214173767954357240898322031178196814260461283475010308701047791178923935141296869557529989338086554765787739606889502966719150997648651396226435636859345994372126633924437451553140841713338875628674589863664535020853557266662011627147879238689117128702270536689355438166026325360986056591653449836720122345600621863232104276313028501349760364839726087223057720815585978678168776513169116956719568230359366451191914909123736304808506893530260611993222064249212143738430725339508497115056267310116076666180782285157598520812329823994085582889051511596885267108563095784383096671488298676556187435596032295532359957122417461556663648769850579311902202203791715718256970767208361288054349010474617900028422045104684500580686211181125090070141048416451274070241650960260568388815709325187386574631064179313550736724949459449479603924722214861708285146566090436795302186746950284340048136354188423486886808266302732052762356637033148496934506858651961428754302851453385231309151949289955997799180775539092284195590914629833835568781138518253811071441794049499128663272364439132530386321542556684784650079923877742511799868841164485423093352317217991155747288354887059350737753713060201049438132277565215285357889297638218802349418136560788207631996026609512272975273946881528833693190156519811632525702770132309032755341375557766476262134725123487466341278558625306334002812346489978230847285731720695833147897821353564677590312995451889466348875488327205983715676125546892343424089378634004437881103046530009462035751731294705169183639523308030904915373242523627857133399163942561029700903133122316132857763067204140145501381509841208847413838199118855412194772101217019925807369142631660452055190985002481132979719042328541935070373623486636952342779129860609364917238272616806906397078033247890302823017145659442409758260880936553225573881435658074134078224567073573408124177549736031781910361527489105365213215573500426943758112118898194963835032137677308089697954755663630218372321971372915630267366800642715415512625193202357252002535073018957209572241300824682563445268721198339779102179282940506037411998092072491108844316884848048512407188732238807286332775266529520811499288368205781800877192120884784794284622517453320388445011839109954258286013016697746090297499870668853045864025877457316066656339047254666862751899919730236282993464799531564919221379238305330513002653393857714983992042748254390223783770109759553975562158961772081558904380050490890266339638673244987131298234133478264567483626704688734299273883470744856499497692977978400037714997097509494137634346966159635706651005009582869954874588462572584281158013783412846294657588798913125932426378746791314680727351355889378845840863290831624223329743989557974032153214464812375809759811263999950412484806354176320509958373579951229556535267313647782610295787024227368531717266365540864155285818985694956471377303180462391379228359003184154628539946588184978150348894023592603445202739921131842974025231018342297667772448012550904319098636280109196594288293166331038154399515100598484924087360721927566334577526170030607393105887690940531117529864893137256285737315868797622190094189151141213772230979860183527319661346041431594985523325261679900468368345254378588254246764310911472955905077953898887814739288530094321273606245043115491309462226465366603134956250431210169992056954638977201194868176689484081791045837673818004401233817475613810202905158722238321992938183556331087713288245890067769341668126311388125892985716811485598442115601528966305025018254969088843165779538408535664894007740858503996401273604890375848095292523657583940293165595165641057107492563523402111514735687649482651165852021640148575922985172191927959686943846034608352773096462588223452369132146851395392447966512770505778695162482641711648791498826862698366828122505976548698375438522889477143532211005419086568260961770781351927506580883381430814016791277074049272273010840721812923146791951264222855250158379406839514654583361630915122288101593765729207881485195509835008967501813368462536501583375429366306783926686940061059932047514453198212373558975209720595503774426412163540337732049627236298809345048479441414314529907029021279711164399000396322594912788626243114153065575281800224349172549334754181139005580014752743828606516366113222216226511629194291697772585528840866123954951810846826196790740117591131621356367241624212963785070169784017011609270148065531329589438699852397817146367946566215514891130856200034545626090928380704811014687425106861691415683879035785450904084978246808372972928412947261351349272174523874829225951821047528729139969203463718377845876840960811797394910201999435670560062357386963513726241595536221609074046787965634636018926800940803028007603034108108583569761389207966057216738767629933474396677303198584227218534895233148796221493360546797084360577775722300800129789686356364092411899001380336608635425962264053473110808277634567735871474214041386104519466680288951787277161813650823723897137302856994819505104630344802104816412143627246645928071285569268856510928645039385857952124627418969702615032676629344332660535657433996090055046286379130610285075172583000111848418762024429479134703483420489535862136152779959788124232369670056305692506630822414216115771600364160596841576407026018089681830678679262396197283167646784340183390322576291848199837583811141486322861566200641340841488032580596922043258883583237979136496183354932672776501175142108594857564583246064541175527329318973886702415177065831792571850356366695925250844478658313410575855795356192199629041695807466343166187183833983903139200211656067153003027739993205608374514939781597593251869156533293136162735720206992991522018496761324438493570966813546917372684777508490511326477274144910255433321594507553143874944499591832019162633188323109303387196815258978942177107630750235956323206039266493466025083290258613365183711514640832500727219958316745611788226048803621653539633299195305023038407220751789264759496201062015456748370117830096831789807621536959268738775799421434891772857798277280240909814561616675313061099035921296249006721730284448468673594916263615095629813952835205556401122093325150399382710796109254052262354540452552531537727064581145721415213785409922705919654811072329303366812933670028732610343668082675955803752505803843720966238720680663311370223223506196808568413523535098301568333686242120997575275621081623631994253147224792831730900963430530195956375375902347383358150816466970582966485636677108191730495699975451821626841471299361364912288951162610714510888765649399701232627804427756429699066732117506044887498523465490956345681262780574381609523515435635372992252884741269673166854671363373838180752159179782472269941762529813319593841442911169223221785051371566745639564488168682772345563502177903056592861561648562233514364280307265668219621052951113184170491238880572187102887479963395178254326675590339396316028996993994103942745385249357795970374144006764350116236692187267544322619689128521476066478345445361111524578931721804584965739186034056058949159846746334340471469244551317048163848936040175304186684092706896519304231240416350382869349072555910475981217849948282415332448910455754750522261553119097891636850717771468667717656018640195426249095746004156114625164244146399582696910006158585646245926383065237531429160051127930715914223965992784838524699966390327832185843234767329656473941810044456539873076077015773964422204054243007953662967981754502896944262990383899881717373770844519761513204295551276966150566806003010764890104728095862501126195437150783214839176218021837427922639331957659782500363699718028061573244380181343530037332211532528348639061428433770885653551584353282516013418467850662527023908988673602286539310781491589587629992938761234033408398067693551143207623977556766883559701194935251613477798713674238738881263396671987658096183933623849199581775715940011645705917865949918657168736216483329411929689839989745343391904989623659181211615812812039510454729073694882086615888579623511158019624295612090045967367420369176203295300148578227773245863459317034136447666994812263812550514447413419151524131277737861857636758689317636467301961184184725742110395755490254898533360296934435224937275279243297961328237215775650320907972246651598711590063804230841251152236461166603312912156284162442637273961562875583547014412534842822200344953929739783855671072762411017146281036503743762127176659250958736476551096616472947021465162721419833963657229289800132543447222672121492989426493082201142769138559210024963711265240635742865196357071486443873045569736293454482787857859097834496735789492810926720293039836432381023362980200982951647517957204079865296184384721241524936266481749791951827328019785554366321750169749962144487361856279658319239000149388781838360986423114062964953575286964205944019421830671902445510026531995161345790692822468634282359998025318389542343003791941011323761840471422123323475741001494533135479901677558117371512101329315555374779567018200413819587883485535148836799995614174222515924602263672083541240675623615158453797932817968895975515435582594470482864095768517519507668551711788207460108304640905999009588440508042341743517912085717401092390619434920021752613518709919272137185733742997256038395667199396449032992398971090327777903499303925428098276874733229934662256257516096141481069552703573522037911226499498586251917469888307266047008548757270849194570513446753467293642410931474092752287790638849805592048542936109609362797145982150553880108774621331465940756006388007031017716968553497481890916383252969847914165099438520417475218489062209000923163278728803184665634324478832517293525004874241944021700036054095471492747331135748637467317481972564211183440419647437064141551531409267328111529131589331166500198797419018352283612959218035832810259781339160368558164302856708816738124313857396356286924812452494489638347557030449369947778760542429137951825209946207814055656055991363979141739553297388453574878382488179808934727959905862007001314383816708140320417992992768091255771609735876683991193933906651742938293367564226803987563867513713880014201726057531315758194135551345110022651270361368158445129511149179212302333604747436360321826583226690132011954652269083688116458778142515851241663447253817015654259962191034808209037793044037808543326483613447822132470281313030169732318631196452895546291350876997053932152891923567318995592133985166832610186311029202146911095088674996451847665057963945493954951904146957567132002303314074237441061940320781765207611587384909196379930918332050636306541148084485540241925008936292032192387979798030969764394112423441911374590876749978657353907972995573552936253109819615988817055580987955930495352511887384884192625539975646857658047507564161521445552111800771049381630160228151659698253001900841008878642413384962890344337850229773335085657597621564616859444469226892121349784478152074775513770241148023483883780585601942412841820337304149283736613031450580843843489590456648479765805098914404347336735297478339560405488303681934931218233734539205188292311247351635794304187055058445516570027043712831098152427602809869150855604301983493554841317235262371689276570722544121007314177329398331439528777292837828442100612165339734991456885271501811632141876912527119915855758520120916962639304176741243018911727330438908629673143255241777502340696400333383048856468844523436754804513404484628430542137451304190151537853302723014565469000900003430664390857611540347173760236212914041560034327403246123163151888854266151352404693185492985896541235282403638541275352988081524742185899115735675582447344296895318770227687714618427480049856140941620686826648064995344960318669039661487418322223329956929552328022209286105374189431163353768990698574745864614810945063126706241563724395368081679274833576780369108163589664571087055263430963748020806475141539083056757129500172201568032784496733061369919702076962257883254399786508271188624334933422064583281503196758992115738542872578434755976323347742006079305007447797002723765842084950951628088683987729310715113253729738453326649294694339897811646450785848140333563687355416295800694479118384965568078459085074078311534343292602033904814666021854896615617757330937003680073744658783564314254317006393798918252672109250980177561308452536863534170060048225938534421651523856865816509086839765370045126356571346961865512953541458509001431449583380316819737228940127632099753514632747131716784060633997536863873668233603958536220606539279352765469874032271308653442805735375864651559023937116268881440055803896782263176755820147876737280962145456501976041326795805014518289148319887446809963412862105305621990342037714490721888397465797463654110781936166988082010480755543676457027505848626535414467171538378195246764806315292731476463266049042302275615079766030229335943495627684029315091254936534925662810408333341024322436253627537143630781531861486307763423419543642083617590792201120809176046372451471312816067222641727925763052252724691865133516189259537788706792452144754946468038800056612445385513780893818053296150474840312218552059341439568041201442298054214110156357792519660037283593177112181408962940565456083339021248035850729203648656448821333158509851037120903206140896829005569776589129976899836915215941519313544784355889317637693435936841778700998927849562960388448140554648146909923898599487803649841239924152597503541862426161327157766190850874653025276307563932267830761601963273482748656688134031156925935001189099154249428125201998224123504452791647820588915779340022395895553022672825527358953599799424446550640780824722521628494756427510087579209167454408724756488243335355207260118034090284131327955399349009346856686618905074632813457547355189645323613802422392630390227203678262630195388954937728736010912087688648211580991636102397179728505553002565227768402148663372966513049118739190344489620138490018055060067197342673035752744965026318207250352558143394866639400782498202008374770100349921530927683106654917962695313442864365362359785482007238234721490517866575083944402800347170905894716653778187702151705903191410549881541840735067734022358924544317086041583451741282338535335635391553011868910422625881627633144784022769945928754270700920478044703858206800823030168081906103939667932605029390566260564138867975083609371980754730571607739697719153813799701515832312582895561129801112876587038017506615423796584257789006253116104375889790093685547853785828081691289809664696432038666582445275956851002402755720543614994237907736231764720631641447945569040831678858624365065496766960464393665871220823967446246588165481286767006827144019331308265386225225742742640073876511074341875180636279327015435372987892691687694883113548155288674377508013343174297745934768528813883669710090805084363621550564005370643791235290444363016734634027083001715687985893741163769350492161066767533356744403806839901400471696949269260129688061927104646158070969305561412049419527463253228020014510324466995762712782280115482497037662894056833496640172164563501609207294420535049292905603806981187173975367523873694428178098895155553747660764354152301518744858296021137622321382052076721059263618495355185887767652649024518847234771790646599171523381452957922674211012221659512520742782144056212089625783784353164963176562954920871245201586803849940604272343889368704827124231364440632478716820110176868661677266096868405612246000581344191585769341886824453281249316408384803823954126739655771172502727565043416792148604535151886981929385686204579306268247799069307346795084680899263570351908218424047843850928630523763602981866580020689036150778426864743459760275069957740128787350872646213631459461621535036139961572738222100091689282921255737900260221884280261003408003774787134949400716690761001611462817610669457857748340553918287526601293170208848633732188559752041552212912950091312821465084909859204935487990247616044817766208056817540893470564178999865627412610641671147445128752742660011677611506644483664537655460804441407666645830897416827192961676097765317481891612915453229638348558208089529793249939061532513625874191079446495286263095215071287056432552533087632153875576308339464758619582255546834177034009254423604254143536260234433084970357619539676579777148857574159296036771000814111355037106130660744929625535726579029740424822674517453089703733010129762040595976058097466753291099265147686721861041084214965841060158557883043170433327383416831493635028539512145447176435318324392668020332391686076700612124446356704952120187973786681724732633777647037881496020931024908122227266500538142908571986002719569428596187773982299570446330400211381229696373670124339981262558581015597580142939302687165625698862995109234344526396316951384032036824685278083337481828982486152202562277105757076966476383704585196541686169366422908315677725678043870269200779963346055457613533709547525823591032880262766416410083348266384842077008835110847106177822620706919840043192473882915963482722949667567996996328846007677828078687173771949225392913762595820789777765675203285685462881767484340617936555309523485535851099544313452328305914193109847603220610561561820556375913712708124305711275309970971445953943095890515550672228451004257707641553466905638430079368910820518560418462902956293393672457724485802930641333095615750772312319198984565929692899606684983238944796318273366696011403387777044743078960023537502144810838286804328989132019362600810555544246972925579970423268855525869483252801191842373956431345834557674980369542796834606975711108302056147804007471550528842303782529593258413154827078621348368112019637417966332315118449744955002783095402594860377934703551497325183694949448871778021705899479350941759476869232608451628216736657183054586483756067846142804479631063041327290613495853207809715412873367863782819338604871013246384588642829231613531002650543276088758562655814677180987835430227994237720358093422015320238365137521765384534309558222078221632850476033854168148898998987282714378259722268324877965814646869432552144784015034813834049898445850151378717859206076842601420405109334830198272305475292355942880975893283077371408667529443117516442962947945917716095429611227679521344945796605577269470120808247134929301446672512024556635612494846654692972997898310548488078962612959096590282985863792256649691530196960343783901453806430397813515083835451728675687543370915472605748439943791746091135819236126218003244599877491966075707977010058312592497858881491279370965599027476993238808354108500925667078165490537076200875694777361369874529125763931138264007524890313018590346587488760870021878956461578371135018946606311333622654146572362588310869559728770637877605713791729498384159686711009682260714676172968334034034572335786073143689025142486542216301197412532372400653821005916610458107193748463034412150774268694072820142406293256595621655220074591026627563013327198470958721578293781907414040208462740739355026227240940335621678982604024240177420090852697274457290913201017854865739890088638862114685297370542526959916855878421884620747811314061081671702919984088399803408447273242404310749573020320018667302924834350829392141547680919614638663468676926025998381906881672706836872236187923822053683765202611858520508865248750477280530978359129514092767884822423609328652934096163507113790767823828107538931704754465457150193723426427636605904599461416732841398056421410220122971058667828975993552362173214208617900886566906864183648779291971766579103132139893082587434842358780570840734935223694474353970654429832689273224995594487215143834011644282753789523825559035961618852354995097413043522339265331308515733400015041286723296078883767857083036619897413499611463414433049318662078638349775176764034111135462298643197250352089229095395990256363821459904740453743138622413510751289247676016654474722645579259204567833282835244268803943530162494189100542195020483962749556996181773853846494355232143742384018743313337198418353458199965306534624614825367976206642605520942959478164669286516862458856477856212142409434540297434984079835055486253971720347371245059079345853728746056889851821040699951598080082079707703876027179926939228052733312154187991745388263337425514676083628150210302678450119530945883046470547157297790071680745691371626286318906513969212497760425166863658339955415448069026654327563950851383735020883949246140523757421050536900747894062084712843495178568212598789289245306711317395059533026981273708045241741486924325687664049386061806113853708387137644700800472171635660190873709999767343112827007342367436975981779490002165357263692566608213814420528116984538366962061993909428374340020671379308347038063816451328047863095379505943024228002366697871365145005180846554490301649034584836203630228629217849089617560837526767481322520540621033761167153021686287291604776368235150017196519962252103172333700263603087801538237433589937813896787315371465898690278423004737528999052541724224493900322559337218321748024906214834472129165097027015147348135994717854346574414796273649013531744043583343021989422235683633217489062108795403872420932197148163720173941431840907844829307566922401104004825433926637910800215925631852391253178108330464901440076695846865645945697074723088722307205474776736151873346706747956722360175117834785587106899400426177484118146947060790719044453672404336003277700577138930559519469726013659777045154405988031131059081289887830824878990841161778905840786389039823524339749526879056322868781605440906344347064870180182324670945198729736444966263270074153144557237018098994575076656910864786945691597999758061085229014430871378278999707175615134026105628489850553167328528769286247706537050483082092326822293353418157972620231936410065746413766511359091997520780800868758831651122227846558256667495350814126230264815299255238591180939394917085632693439027787513735353090987903062564219640168374484317514015815260932441068585183041252753669330133084331501506776794421164906053587902120045401748632407076211349671970868737484816588576413980365492483998424780126295336721692545964663203199548354810211553640253035503656614620528344043497564814098856465843817204912850481201985204449084263298330758337103323448005949494228671050094738012773011591081672203086306148110608402185808136967607141573905193203043569857501902991662460662230139913422744108083667473384980292365255780785409724845033306957109682503389414685266653000122900581590628964990628546925101632361806929307833614345666556793116372754870172217815624697059612157907042767265942932403994109563239586649380179171846254237155705452700088733934573268875310811664717651428253555639226424031495242537439338488344077110195080629074714657737617038339349871300473092070605565599312768646326682699563118531778020994060898819652744498541677341990966444774229163078248068071191788401950298498458774143593811556071980654543959504574049798333099927794770136763322458377923074587490884305141357778260120120020642063222739093676443668484197046040503020872841177099245661786924878669330058865210622726296700309564544689029363461588236161347010952820889275410284653472240349281560177301057195722077286665888456820742510967796128210439434754458627085875486758028716874320903058604668563405698982218560127214111314264791459036750075799976685557207391116594574441273316776356097275622826614841443528923590279198261008867766484617176082883933266853181634959317247786127112513496003576438327614351031466898585664822184860879938418697121973555617596573801789309106771571721976232863207650128253385114440574282486664604570343365921015412897607531926169142253146180358225674181460323305995810591553296717754250937296063916708313301659711097271403171369381225294368819054602096264698355460726994046573091286469747529233761385538922350107232282677521991338742584195852536431596656092847686812566043050401122778394229007858091280360621615208886422724212219197987655102604783018397935547179804003929807512494281552370001643852549622070017233915372470830028427210536602889752680890889960975528736842384414313492630122733986942997721814269732831252480203372381255611142362928290842455859981896781471829400988405925187886684575763220025517655280357491257131445337596447074304309992993784117416341930911680750668936368173744456516197226931888435774496678625594574265513995806826388135613874955425368202080159210083632290432552953057759724555370762170008520649471235072430904751720435522160568983776006800907300421779980935271451302218512150140807147651440160240096242574232851234027835206432048779287757037545857029486455063115855575086303198565816312468741865985909661154322104686990917530268052069811057538326841101535435792879099732197642736751268663176494556812632917479181824223367057397576157351664060795117157522551061453675392847856552149883269551391600179963098801203639190510626424820833477580243514839566982465386858698630782139773046060368364339281157551937243166832624874392708619663786697800050900898038163604002488548797359432651168619281150042603234583692520165264507831787551314133248114225089602663155112211094100058266404144504450367084769185367748142336367940843128705236604138924468329543609941843958856252294995294617827173225589613509098166694679987129499637756580806380778086453487381745686359010090427337094341766180101150847632243883336400159517574370312888775918576765131028471500481919200245786096290021350236552422073903768274499934403605650332550270290609307141271737412168923190001685395416433243883419319670569667623916748148633710070484868977850000708277925886751151254159122403373435896799321285207973310152424354054210442244492309265202768343464671000048606972646987660106690593110672584272592084554148495775815303853820519154332320618324126341486403568540253976775130679488961955754525097445274582385144512008543683491941433681480962617368695247381927265228888986735994536799108469048101886776920024829093993077477800210717115806616795151161898022287914034038044600799385857660465751827311638295288474975798103347841641000106707658948729821246890447500414951859531483593991025809512262836858066808627599341268617264805679894304671721573485548579914822560052134589494008873129336964461266111527315129165614640715141901676594236269943473758170512938609100602567313919154045889876008182397633625395401843668105127804956836683454669668157188046800921488574256746540408303951612779612855651122106290038575243190120326124803990170790475822691533827399215442011853658219290560275834140187686940158499667227757684470458121652170735777637285077740641705930104709505378407752521636807425658584445103447083060363234132440067554400820431114563230672751602879897152247780110966613216651846358496452327182869199548826418858698049155522618585193716121736535836068023970364633227497611393714376089589972611637124065648016501385490083448803267447263873487959186220344261121963780121482383004771918617644307557957337542236665765879583357373165759489589333795145415228364409214884182106291972780319024054574227080215700680264743950479144991262712694573807428127797637656106770946080967916863651700668690229241673794761312306269198729623769785766015112314736139262125550174377598737913379302632271002974042058640447793586422142887752900332955013597052443677871242701879326569939012266973127847632790295628003854056748733061285238527248968706316997468139189875644971724974439040256753707087048911144173461065142542460009309065190367480524552437247419986879314051912464659821831048342750930991121105150488527353035783573899812676659782509963218025513699400993727504970551312192750394160269755798672162233871170204706481636537384318504147959067530680315831923245254456574685822518560478063685568098838761360344021592036735659571770759822750822507122099094746126334913247061893145169500918529573004378623914094284054054706017399164320569657157885970343956230948787521773425420089817787505929336314294973318126735499251056888221633462057073527526365962047912721760901481275649345074581738908582134758519878750322029928373361361544430272444926334669641729166818635456644882042551159023895392115573112134301323009963731903884717602793823718024984862017561960329752543217919023552192836973206184211602686634277327530832613759983623393540004773153956780998971739723688476895203353574036338716442721948760578407095077346849201863245021819337310581174963269575680593312305169317952016731478505138239427138495396043229901049230831939859641477164039360181348298855790316845082338387238868664107976029434130899419509389470615037107830805624687798807237386491678629354456218217178911300308174108089168727541886706215174268409469639496261312957898403144628847999305668441698998687583925495197737269677774034043177604365072571609666291595479703945420618818997448579331467836703054628966761115278738003165797413696248021093740868377025400550296121359620588204756502572556126146763312126734656861323271925992116028497461087081940564934879742361282360309100140765582076943567043169870809823293227834434986925174892835847753031475343232072319330207267020418210275192301686977496070951534606119148539330882845103656504230742637997230773987855985907763331272489945717455560041730977489667240600633804655022503710787212020851030948290720234649534449370390992807246495168758728766363324915986144007754617068093130067435826347815843555853972445536233678688924916034352232022897476193039931593164339192351579943812983172170805632423765160906304570910751086291201335003883978014274357256017664326529989726827564158229445424813676981451279687692392967353899474923528061699157591719455080931640300154048505321160543090202509479602230279083352586574512572366524097229397443558205143207054522954476800328336262882659413084195336173667581022334922543858434296328993762682666003790218148543558957778250271713625475543828513304159462375261792218404586657035939934913765715584361522702401006012599154020431048435390029745603424002523402393672826770335602146418496888375906705300355104074626509797888151453011081943920238899145075019410443030662133510773731973459608083998763311171197720287169759815440402261005493075373825203408247252868235113793728374295156403256398789898888391074263834061468633367360770297518581509263578290708567243703416134798336756556299689320608786072472504007570166207412766746585763454095283895970154391734961258842175244972671558489120661754486482536537307707010095637632285970225780458674291304724687541408504927395761220306726761770936963669891377533874110050940642515112612627347428387374123703769627591212001365839402200245805419969024392142483666620251943943862847577679788361481839188721533876678290152133242283870831018246795991752027590335807251482913875950476406469984900093065924605224115930134894014367886033701842103537902789228004592702926368910248638467652494173970168055089154804913542716975669982399270542921985082546186984565675195719082596967946764384305204479532203835943903517471347896963895295026954934983749563583710037046396915064138107548556184914525927793877573686805180519460315458294755041585100251988138114355719353005317936498658053772175557190110323262132865536192295359677898019074102337759378663094771717515207618093743240475453850394277444184363646518202164841605752687986007781622749549463865107107780752464887358837229426620056494639373831402779571950965191647486340648580131940521035405189481849346832948967732832562315933832556877152808076613650669641017495339866479433174174569928155002676106076732872980859148234594622160529751945413073566454821285835243506703049841541663072737271264570364760159041007877851208844531504833435908240545599698776190113737073914631250518243608228900316139195642894847324556805663368144481022935387648036514893877999580240359124903697588741052561511695874450209020960905103109892682906685792959790219807184355062966503178215065779596868857288792493953013845818090881365481201890992612257360443508530943717418972235410172278938261364263029576460200957344315662827267213998938772919170175767855110586801308534529311780605082557801165086869695653805987881778267647081482417269083597844613495687718737635362667670053904404743591318819088968792597043181550601204673122240459806832209470721729667954621753372317838801144051626188419743302433771877116846178532502298838058367954957044570885471199434818403661715215162987852858053295982456318635797666761582110969031761975163617361516341370897745308942356814297027122129910434897265997890776051784712409974860215053768003556297230055433596465916843009155959359794033206356988070057840437621641116007082562732536056161551665261392575266953030699908325982935681599014960029033237703329138853830272332355379634484281600357527976585502503078867172022289986992076297124244509449522876533772704746159811140108924478572422815828637341144943943863493214160625752357372115846916080411326133464393697065968436319494155753812913481178948376207588426451536103319744081529474197627915858333229030801389559626600459256709763428407046123189039609613827791477932717233757284380666360836610261571586996086803483286519237727549286092920381550488395113695267733872755535202283349596929200746283114009184222384666554822214192126167074312337276521047163770674565651494067042071518506806193044166662690193038403586677739668800964388963617087217516469768313582406040438190606860668835373271168630537744717601444683169484237323778449927910716107496260831645059258903473740089287264669202629558705810225720196598804015042701101883209231561108063127377200371641805665533955987014429762824723437598927802272192556880944037394783078031458551807922379429145308428412659413791213613160407665282909567664005532381730909315223569923748460677323980022771107338463836276264322043574093479593044238358922864514868119614187902315343395944088523200052693305571288578033645791846123584900200411665554997442153688123654001016555038023052623105433926245018141323092689968531485056841007248663057705561510195747521994402466324375942866530199683984580651590617499846692464887717302975598609129591683801384125442264731003993869409534819329620596776954615117648283633141107310094332850420527467411992335050850001868304449147250342935840078872309866812669700360172727634647116712458721629834396408404092565891442009618878733713526608818680093774942478278698724743767561955134074970412160483652603088466030922599934211146497013197372941485205236254076619863760738235296924470064614586711002233146331918234267619840733177950753057177903767489538029535142118216971669970904650280564862897301593637302542216911786918372132022112825541782240611621247649372149699486518713435558170524714300806053044518045878790928207359029504967531782538018270401123559824443658535266226013972194357076969467766632069183526124122194617876580863126385055659298457871626426661295734771938256013560468689412174242150639355917526998601656456721092784503275977312439297179656834264938800203894147019574879344377536460158818767624009438479575924841015110728139272623255694060847856574468466791457246583351198495587508752010210423527525337751701366783349687160708319751388165067738271297418682373602698579343070901274901363769119765588395775159811999477901069580400417800388075827828432694349403782215170777186494055684402112007020423095100040258530224396040049235425274342667407404614513465998388693858623946935047425711890588172438915567610309516111842813442088054030928014047554209589036045634051119889215700286857315984145689087947187413834931856824148282244028802323228048197593463488131951049841966123411782774761186143608933501892108897403436482907002093574023521094185572447940538160778726407608871032030800016813607771717671115725967588752351599277961619752735308717443906276899970938998934392211645042215761449570924403279107360203837882936811680499076391188486767968544540263077595843721393550704991696042603423588016022106185262083028759898699474167109754008252901810544320551896539385254604018115010484667398677246139393297472023105778531851765932327967813582440797683982423677300202484416217616552040760337225849066690641531477492736228470875604448512678993737391726415782347226683920857743590591563558754516913017600878857677078677399705304470494981711525151622940068747283790113008555918578103770687623290809394429812471570538901741300795231506291979768888199879753276531019993299965345239660070406742791369968587988399135343152079227659952619592271802778086671698291045603302180402884723265567139900073316376618193115741575835575702059741708312492617186049878037022750421508399306876681460137598997027945135231147416356343753998418981814778179009434615011582063967265436145681661036031031659195205165440389775769965416506096286247774848868237380333704448573662538756595702368652486552431442630897958236701849339023775460382400894885207102349318653268599403920027745349733774444271443129137685620107158858090800582046755829552906052784587525317025175531037338745171411285568086882844838602596947839500365697979178327000760692014841079975821785587155624865921223153054536038426793315859225662159553018168563328417703162907598240138686224947066996836066966845792487205956642012077828240353209911751990049402065937167707274189427357712014405105669898274848569466775951348703260687263408334063666789939019097805991207610962865660653278597676344092744954219150114863587189362590728616778968384443635716609524975570375938077675944658877315254509198778823630011673569641330874292617244499754565463294891423139198021434718369279251106368843990758592538479761253755257174885182542531092036202212467505449443753006058938665909354173109614380053820271992857736468648933176141273393622190101027113865955322218388316736253318403324849749643345719761854973681791678370427329251359599026230734709478036379202005022173791064752829791002190822311195053984806633445879270049953274511401432856951446021241732093114085010688866599304904245775592263534929728929940455956135792202999815760974788082980645837692350102369224128622501525335300327903812679348733036790311246189577248740605766680622468059071853965155102828292205996233368363813256195604915553787023509551626940317579614003069840901794172432150387176490538530678128340775865876805395029332643350898625513505974096077846451204197380658087043595172698430241988281698442359079843313640958510177040580341307564457329195881968465831523154656133246757437537321595556760721759687572958584808066771788759852654380536659954163152358360036289228456286778988727495222576485388284213344150100641507643608725731615422180271581618408228417577383279511400721821719074974799152183092186624885706852662864967480691652989739316073602120335052217263749530895194101612549771140616553330233919995875313669508406858818936723594812898106902619217192817487405433433740053838308026050487896820944574258728739494997269767199717527195218906868411051960733078128176025080770088687861502248713022515283735917059979193676852459836060429234582065155459071410280737393932070604975198143531534233693984873087460605990715154145965922747571909298214014644611217065118658830358496305205227223201055388396493467893378559387301454493135827545205402119604313952789727268673976195025111129006934835039173081864010093336640976377319395287531917351341980286285429011647851432835960716952303915760272937960966540928338406640126465498151021522190975999514624281972409974018291827269732739399932219940380910601961714470278504488803028897232368363488545764971086689256147265258277072554711436255949184586058629199977729302497484267545510392345051598847821414123418720722029985895469138823402163747069749475093345046488135022179561746168285166291662567220641623314174091221037200339726251224052710505614326786167560011345287275348910528747264646543155749789587335229030545009663662862381295628138003853360549169583316242055879734184364438348946194848216097114632735251315034609452030677191957318149650192543056157851041178391371207915752362712622888140191064415468289934039262745513633988059110178187694229364103397884351634393117448762933291132933502993405948228605067158459516960424543035931688299731320202230218221054677492403684317178956918240601905316696030387130051785907196389039826848730805544569677792688914474820208887237009361232183334233712081648108340013614831708177346697202621035583506314042802375374461231144499860719477856724624762724987531220563581578514302055163774975625926866920757395097774212153853417365355329407932141497969710303028102374235549356407147263687516162060552313853941544514229334009019954267970814998756355333822376394110725769319958095527987841945188312258487246319910087421260281711332241060686344944921458482156798602650239197222982447431469206330814500682287783542755663135840312715140274302233333981802959069375094032521948910552241092227768605620156201706170790916838708730814246374677823502301496145921542441533813140227450752765536145688451642297077290549341800609970945036708873525717771316451162867906657052356739821743078069660007232145421323488783719230230378958619033466477731014696908918284246788124148377624329481026294290619694923373758753829731325575165966910033883864848265782686110541245559420285782502889859591328642287245804333634790832139870242285688554360459966532363858895188602035024592700822262812446490066682341991814209360480094279428553018325993721885227379600817216950756593938120217359910491825056669434666336027323998263621526496999234068905512577763400007718272941721704981589476156776158115489285084820242200708167266978272481189819121916055986216336002319638059974435036951886870652368804963782162188124171763464767205314555242668836072955313715672629052556523386632653597971863650330851084255432332789148934028888672924378770946466510593184645432742244833602275798500763377986808081387464753161311163935006550586534496168552436833626690996149853498332696819413548052691349399234995043972775682211080526962048983110292679264619803465604242074923382243416142332575171478093209874855805302654855256127686255003951378344154239524568681948859815747581716867827793077225373944706496611889757605401382076253262218588039142793316195607262920825215621995599890648626796046258095288947382989502096407599546497267388947876548501901765387606985869656785669951408545048547205739898429657529768925841875716158865950679923010945736030217534216085148626876376014126302965563401082504183424739121805823882539744932258310406299896512267212007836277972639443905746168312677952683787635608663262062600304354595748996612066661920194829966113389933721383405718575496396589881695064913503753377939931770742349606663062164627866996146881568337624729842422341259147046701074125885154219422769091630201291724828707478775837907753919408676808492148906885814268218971499597013310498868687596222038616222561568984791671477817644294758670838806255170462732011398997267766675000626248618279779830777951324677690940400482723072330460581248114787999483245860408998857894392795646652820267758251085951111194568320990504059571943609859390394624580183774712743701091526007988937441179752159497716835081834552667417964025458500551380938050981261627785415886411411866309696199652290374673375856299179512725510373840015438798649646391266027634484125343260094144369209676987446732722348883926500456700188736877337987766528795326383003509036208323030922512330991541023669689815770779407681630929201236467558299298311251954593218203113220091367571507423241380355997085673742459970756175565737736528384764575757447352841771128563484296723388653947339719925956458754685182542639665195478359438333187144249698436210830083174140669974461366744173160250641723011718809466084869624751442447753375822081639048417003685529533249930739911782961073533795940758185445620360204491763452861102228851205861148086645559410288954091093024721478833021175937068230850975936836139832027406666176651780647076336342431025492806951134395827696963130173877554617084066778614765203992671521702371749290775450223490333851179155413389529628894819069800071821513592320091822664978558813847009600599392345648355426923108172152973858582388450413021673244267460069776447051556523666157064670761066573398651003810223928565995037398944132556439448896110203373425802596837169255304726374176365665217460212447826867579689812606287852491083447268927593983596649354804372158089566777194505881329159186172126068199729974632620295518150375094142766894104636547994900219936541970901547864854077418957074900606310984317652916013694356334112247464320909708867487563337435408164834140107336841439930499750013722756945241931074389090916554852875343212490471074846763897406745216867114762980720472256243172254226689894107182962996709364976670159450482305132069665950073883006934838913160729131283155884412454015599267037072301060025308218422646272785254250051428725636678568993933369702769047736148202111291808132906375001985882079469604951203937010590787280443313245680849958790326138397808120967938632258667700242838112875438381833863520044728967803220921436769159297480875234763355974623123113991858153656685107420825924731347865558941877093704795523555323038435259184004634020974166883257992325066535864076640214204452102477487077818418113841135216778468684515605158669709362451139851804374109024220767855662789596720102251294144029934853461718732579235355051033811123225626732800744878502061410369765611309178761126548566665973565585302740915041921325046059002797410080746698641454186284138189094562577822385686479359011718117996623068356772720459108526006514225353953162573612320681177836067616613078892645520453721542287187591768225655848569397621131715570132436916754161054381840128739693110779220343247003255593213778522737293813609846112299625184542563286281267231322558700270309093593774072923054695363153914400852415618095718327092117665676165955180689620595140955407864560553128659112085023822386084552297047666223739170069775476495328929930203553301082842459115960620208176824008377667321682152823222414105911365419531762041035177138409735937629493920534005430429409033378502244628570087703275412239657682016867336661237478861065317551474352507300627148885710108230167475429654629821821857581347882735174195900669968771440604499558821610929633718031748548532371211559487002411059018284149219422481017911001393633426352923912844591402728938095127685320433859116742801376399245034674937037193463339972524319553177612849407070802076652384493758868924179497682294037046338176281342462291076366858568479123695044930220296950603520664696869534370154423862885065651164754755020995200100146659099633759878078698238626990012943927385682327939364017328405208988850308916274825241890894204978033628828976463379689730820735693360062250232917463666421660713363165510139284776251258484937624665890252105883952550919221710737605113597035710671990397365373324873404232544293898394305654139036260522995955190604987153744887493195570441154381872707086220385006087723272472922590216385111612239663133912909432954510959109991396966320788681458445620936087235543312805693355280121224037021438246800831191148589123884267633285286439930621200069346657859081016976728313162799179449015455543595215901150771649215676408170386171296309061980223116032917054691686919155933897730033291652727166932094187115957510180934823013944559910216474531518889474616743956210991604185464253046092934517512327573417453352115835465549667085741442969067263756537117530228395134442867159741125084744817537553457011186095805018284676708717332895458755685477522502286158842312513545582466002180875693971417591971920027438062687228741182299708009406012422557420670386327195376013850403955431186532455803668607743533925292812532915311733235991169965398796924672428695823354705616243348774962343908429158130450785662885941471743695127912373196262798806126444374379976464386711097420903032438980909272359521984482732671465234991771325136117746023144870304056766676362264648434642928032478646919036615665425871733750573315630145123317882801625879826256889577171394990497448968238781462828962901416875255867683240683991088552363664913747542232475506587780629041517376293507314468605523442695891369105215158708225109889513165207078706992856041328477866648932043620911158606650407782309199084269273069976900363373690348016754576703709684287836624384749615015814084228527406614297295694548507237759148799663401965708474860346308494530874858162715676819434383870378695080848321856088523807983811199995995000694670758608797811788214625549030101900025312947559329860151120193483053422714373586664608993618099703185763282593222988376738208454175054682550352727999765556171173185981522334704417975275689223049079985754433596392442347327760744638606836243549144813469368054012916944041529863327039819629845124915558073697478753271432807181250880277287046078877155765993531758855357518577861644638742373290957498634812955173189502934968147466760458890499801939966950248649009073404586366804845274982891849034095084153685113710676025495507393197360888046407980613840411119938566846132218595152457448366547739270361466882912186579690034023357458965087592059375482012510149218413593334207701564840456526538638429974880488410465097283427640156052104836196831505649111746862811984666559222562239351966040027134340402483609597083919572481010169730800073045165054671185624709245835882395210318993279702738323202966528989530957624537216361689369015021457023040059999687468100156102833559407388194495663341238326364249087800994769798084225928883944483155052406187917357234167945464177583747626429371584728757136221568704750862365252865124459804205388561606937521554071385460598629289936785989771848895274663175393833555799368354700966177420507150162223299889891609881974797000662319285796186035788360154013938355129253990074714293001370802770486756756310983132342524602238803378334517585859146175432904731861882576635728303109138408387103991129635798380531675670973451586460775858270985717606137349533332494634167046485493443925916261748049437146049015092002418432813062504217462707438476718405953719900760020583417216961748516758559713651393952042960595901552310464455939792109309225222988498197350382073384207315429529771327673538556122077969106458297428416242155742074996423223508418711436367228971719565479396995544749796970695328948015142150931851448646448373583773634099474290913467105220574815351908096950619672119376445637685057586045514244145606826188967527823730388380874058442811384911924228887947692419789018568645472940390646066002096520574558614229826417214910562087174734478038471861726802915546640893403543249412730404176154686414875284029703551350619916094106998327152162722362234640769517127421511997173156284732507839599885864672884340985850251111402670836962609563182420718587642566372634329088442578526943216091901173398863371049283716600963885832677258470459410838506341995842071660809031090374553620618207848712466795656337166355730521084659896516618922654596706731141803332555650071692517531176818812727890469602303381673773007571031801935446322577711390736842762550892465163453703049431571087445150116081394915624558913440170382341048608037979477556182259096155694753446480066335236724844988635334923343229809675722535551944591904261570537949170848443330480831092369680389359078695355315576077769184876774715429426074806363505447299883773295726825059671753365249918574853510829277164596278612687635866217164429682285796380461214947871474869879881833923189246305199574730402097317729670936546470467244421732145080417165071773534385407800163722155767015936795018588283803290281755225534826898554176509823232341367138800480428469891406883282521317166576645645001466000048425490176339799492678709350412514048367568967592823904486976145993263301701257912192862087253206735113647593277988241228750559346080571912516094833631289690119787334894517203939771367368447102633896680702497422871412141524189521960289336747997041179381143416607327239307179904728348423313480952099353735950951172735479859746596549657582738907602880142320352025039204226118552737086516244747937843049222746530723109821700989343595261671593521388089156742343940488106300151075341722701371479233342742873073027344469068405354666135463061703879870495170081837121512385884624324105901122064475322770039476428132034896787414567952688935157295450917142061912376069176796819836205627856670621386780455020391853725998345440971809719463399609048723239495728784073780959202987266545543382518335436558123418033512626187318713313904443893196657164531353661155074635186701065877246880296571817185031555666349795410683263668967799068584436939932842594964157216965768958602364049002444264103681676964246515938756549162455867042396649774147372147925891291117097164523888143003792600732608411030134970759030525045899981259070866633115052175901360207798403219067323124265363959615370144509540853078078002113903776689710888666584219895573020098906007994912684639221361329140503417174327803636832932156481803118870390972110624289813190982469036167182605072146114006553939816436762603885144264439753456691991404917791291718192714278902829248890367740713087746200737448352510514903222483459324740336377055217052420862984782608374388228542429062721948059850168888244811433248925268011733260488427342738910418845904498033977493021830059410639682342674937350236389862387367951255266150088427864266271630053236831462598288082234663701619262141053444849945262591633558360557010878756031571656403936285522707315433995732254639097296735957146098331904596134930981461954938204140250208829709243663677316753935017145097047609936227610799610690472245034890445833151315561144585706185396760213776637666099283899418885544474204065154430826157281432240945191031056406697922666833307560605236558250316069949462151903109370018346110716325637681290326278112940548569622569224638216474248497048520431391351105944363406031597021133167770526060851734813441928346279330163051687188964144730660091024417131419583757922693325329476263764851529925386845713696381767833383898435550028110783170856515499500315816459604416703753560752789173022838724097801598744710952812598261937545222990039245204813017177351987293178970777770212982613364232293762148616179482059564832199365472549757889083080405289386158359675573180758242869987143528399537894727932792737675366890718897100812864635495042540756764904159249295689306371940819290599828979144757880316074996952842334893903362229346547123000847204698627104893964095129245060478497924740455038131523950547428167152652652543604682764350992310769446335043937134716697290306441655861282462801702350060601089169266059582987739946957656749605913574333190064776209157004384824541679757493310050796380942159644358285594233759105151098267964486846446421163181347919073736973877392326771718620345244349100297393260692515031567916485949425333305285668578644924615323154018178279294532959059033546599698003519187421839112385612283330375469741526040996862456224520537685625223190810939278529314315751584290938241913051525841026776832143592838649006045417402106787090922182011747792669358311705005226130373410387057287887549523035135004360532211504374326058743029439697684977587064777693924154447724207564654977855868565644507590322541851929921321746159107285173998520648178341601685555709068917883244689413007073204004896480604687496723382197909264082903770113205939858044582669962182516408454120020540977108261139068776079726850942825476198489106933825434531743575025791221960681857649969792437181714611331611640474480579108737284884256592286620735774938955874540854012173261876808330324122075978311472088045899727884637103495486758217519316894259875116959724231786963575715649147962795073353108727260417128952249174966776809505702950864776905675763004619840135459623567535265746607191600135328890846619750780656743316088276497689380177839926513969575447956280564184506143747100488750681760611904155028401423886530488518747211023655336120618452858095764160499714788686574747242820311777600952822645803638208750133545727414384761597288425251654825698320584637663430592097966261050116599383414690653533339741679644807611937763340609412125466078067423021708377164661604282705133091646472793039555706135651618569533544708333330713500759960959418180132615024562122145514125347090320597318985342474926822850762348092993665999398086037807880172899069528899353783528019806771768672122321628981591172329320854851020011508758482016889216694282872378634167072544481496973647652684108532399155300808085933927093186510004427017217481407912602623821212944171364597272254711684926405114491458037215254096297417681626415645658385341186580880261532700385005981043174002400074965987496808679647125346143120543988658079904261272464493238124393359693607313266210071489278092836640593423623719721607805634628509432514216600451410799138366752696857652008391885320072436901724430800918616442937377432381460961041778345081916535865778973910833950387010042509966567603311637508544309459401415489930022185831644860549698479697566361620170832848955611498897857430859237393385602017530614597051900070204161405043800679533457868383080074506844634783891946356741013639287790186848420687212772115075208088958031241068882871337878421783480505491472012242919565299128439902419490992483032936667042161209230683054716865377025639834159414189432083646812885103076527131199754282477112994064868415444298428015758267798404232263586161070116929959169184860534208805100699229151906458572791098187318881523457706852062951142988180539166191012867632760873787206026738703978956132111210468420651000207366044286130422243749832335580881359224233150227500943515680756075660131465940792982316526765725646895934423867429444288821957968328862181877720792184632993506394752807102785266348364127856315101129953484124154978945235668745914629939278500041335556964966639882370275151757638952324400153706432745845568525772599638431408216215301399215477584814166221151847573866232357836006979382616903284582333009942010014274767709843210748055118590927917294694914336043744541316188380819767574156345329132777025691781086836030080435237720822912461834599246479569437905738581889923034803864333028186900508707835294528249571377004733818351431086058683111946376110356601978160045248730220463053658793323119834967125095698026140127481024622670118338163096375127203527751419068292936441358649601422473475185874715596414233602933084541296292382960880518249320950165502032973473731995891515905583708965648501268044333011259008832463877578203676574273047173220831806075653332298969179492262700162018418647134676174405553084714626272011972984578625553298047653733755960416818150680165727436796079365773207896343695654732788283343518469949482232896856736743564888287872325147853539330167167024332302602201039472300619728973828382841486063474450183169575926045995988313671602099850948465149974916553576524604263620607307404412635318453189608837191913729684234207812505488933580119146130858047777879550143358416160051222621332973295823096020835564293632638303075620279928690232723496728553254574293181757296771777593312333160902140123652826807093108862767618190130022498758970260097595307087541311103650420025215405116004425139256078024324318937938401381254446521215869717507151540874038943546398299633203260096228991596629630780382442655313461375621810806894401548279364406848712788545822834148970331628639737388006743486620345389373119300165923380946841558175304091034642718053246130082763825064913314926859912047518596454590888270103390658071143129169786854644753039111770901920207567677167925854962040708722677182047799118833098077078197559143169064330663757565903129319651096492102869064905132509308330339480839403980861897796928648203346486714474178472339820834454160813033293866357749162702177575073599236842037832068064175364175059653773753044284784745691508566276358565674096320127235902336412201775737835142943801537826633063971766519764061362557885943404573589869930776626887440314302999725160754034772689532933170234546205673572328356140755882776896558184098071037708421239942700541183779636461984182813542235286764523508369546497481661600098007110737439693528923359577844651368396696061577007164637461031104492741675498022078502965161402758642493225126655433856810166457029532404547910274182695238871547133835326404811641013432719404098859400117626368189175400479255583347816401747940284991298565265390524943884898506238440457990786199870399786321316188194621688539732333744873066497469294311788114063069849255775966684851617932321984074517622923725195704386289183933327134331069777248664175451373662493973910057807185931425695062802478023696644552519912867488366011221415322963628188026149985210797033227535852718760271084414815645455820980759930859654449353017791366795357662232203946950081982566415519955664764083168373453022186677043713887409906094223748823011788374750935647990004542860411819263899916006361620559934730344126021949179451510984422916938510385816277548276759941693765719548058527205954150352085593167869815573006175567505376913790089315216949718707451181761859560044619829949394791389632626670067806444998655723530088521907238191378821449592917775355902486690729717096423540708645219219134636704558842536803632052819761331040116749327148499944738874751671326530448503615272203221682768611735876247388007790810806897710206339837459679455641933048459668379868400063929606281042804964143692981646588254712094525591789025570112726068246122751231853508539413474648647810445890697649736413346571790289589500015105691857152189485912047707568694431653691343651669346394178705462340524387695768097961493686138752280394137726332709907740798450588501279331336725633850269606620703874736902092542363045810065236904680659407641322334490608096760797052912860287024810229056906578270505708545533186395177071085636918467591293336556383721248626313720169172078359973713575271837730935460052977167039034723513935257664662948750024747751540926602550933954538238291720791830256452590176396396949063417500739634210153184586239248731205360691460747222125121188485997660786692374338477966760919895333633433649815498145596687165315895820963670144776436552436718364020060748721609361873462756329768967474086906502487354173028443294474476930711271168937433949484691050065033834055249648561654188049007988043185348908126813992298837316105094108758453800423065393240598990693338682992103680773881666634223753567110980349681620788265839695559037958437563215710007692026269950496150339626256573578964582089787724368121556378741211038652160495661980651739159057591100945750385157741261919327689087088548904105226615691904524296767302460427862998936785568043249655656537059984222743214104580049223742109375188976484178454790588414117335807873385747682268697471775819165851031126363513212618084506022511663206205248938035869635976916143963210466795308529650838184909090632388218582407013817326699998533799404491385728582916104580212480946992872558480252164726564789323285965237185739590403357148040435508520646600387785988867003974558688581289744873103763463608295928978553021570957224276388889677416664672164665892652131434764797768690419345411165953920378856984040381707329737483158507148001998249921571364191738547475832063117442783869856640596694245918708201330249301671875750920165731380368348938768219215307766140724170289410735079940642562630725789000834818500749837055817086008612971563053452948433215476027024847453263355484436862113484766887283023370968767335019757481807562828165781001946161627363771752893721231911820009311083775446324438683307435583156488590688958699060149351286120099172192588105253047467625971833048122329295883860405457983375802528705839419440483719648281873379623016468719033074125450489625152478057137315703617193902019090731280891723166900242545977599714743027724960760277353867518018475979932715450036945629203025774364640177248258876842098587777426004481935449895052636421612226472144942064175192640152907899028050319425947717088130853389664679741432782375402028381465043140384426641606643322569972628022676092964496646936201983396711008158050454090691192467066631540388699289701727433205504333599690011993700499241843465608388598187975541088002289312396404843727735202423811511490023553102274665451689588296400331156769916329273365367303054701045712866761968871938866515123430472152615885209172853339294322515945622019926515056476747026147560545683296308777194390386221032216241541917849976829469018079021198006341331993101337283150541838916038656426382722030803395679622921142047428320109013038345686419151527734911307347333876341908199823587307703002632040629556083284582980242325318587981910844812760001752970465101859819476350640220551014347291534736900887299412714214683219797259170667211626927403636929686042626691316728404353711022229241958991554734004004137418789231400006356081090962879996254087836599678654059391032762116622210202399479029263929386630118278088688085481195379763267445416185738120850066103355657853447758905064850340099947936489083622189869137076593617217082317626697973605901233141389001058450404382509347485418411001726722186854048302083857033496778419320069849470007453521836114407671922299181635764450389421996102689343287551713130717914431069586911327049471946745834977346793356199958158978669060330747639117495780566901857088973417142361778081467084386076072750257760217086535592872207335245020577052218508852208879054259338619366062562863494109615677970845346721240756020102306527766119661531102825270498584286897480257235848865289072836573714693453069083314782927431112722969644911828655376715288113120947987208309730560350237036401397018145187599098505397005961790781828558562417815888345348201803008277149656870666067024442504498216910296970187756943248082784532679895836223515351103866016933302169817522422247172195526499413665371099589884592674666209700549462497370624196555757878212389417161559004190116225963873436388706813007389189718621238578593747423953293928338251359632686505636825979843218783698474583807136342117428719368870655495261316185135768227441580316540122031721162312451931603899736257105117621126958454284019607222076039541085462721783008760532185098961946935747442524992801403729417640545868259413903385526448227974967977121417264086915821040992621745359066939345948407918536232939423948222694163267984352956466838955707135143432545750855490304289206358742257764795565760230602378503782381869396267724106785528706483217093465206033000851740022288440765545014705516723280616209076151857844046947232352331752036360047788508573648835445524906409570331419514329740312491760042453396371387624774176830433790522942158247530079910571176306346754144703395206481952015053063948424476943001130795150355563954402842833803683156707431293739240087633623591875093003769560836739550906673122447354795452206972006349064838020898017795145528905559214858571359467632372578340754992841684605603021866297468484201328822706651509938397698930670956506874455221722026645750270752544445112209952725015473045947033098392468325655686872723034622183896002152844966873326143489264345914340066692070913289347377314032196518388615752150389715288325302378241861716082562657183039425783786809478665745039442056671360167444383578546305642107578846650846003313444777770066248522118003146866600995591075872334049267009469910773192941539257071545934789326194709949994111554307897636272968565545067674413991799437030110697766432373372937857280727537797630056272553180614202377699439573418375178328222152368597127440108950693125440128821949574236894670368312193996167888759822097084320419930668007464471332184844285860143798447291153672141744349376084392174834797404251112691557500674813999304354612463706022809882791471924845454687015219666956849226301909386463222179367212544385091055189949223867707349029972408656895693963348038534260626318192648242316250999704246152156574255764189720605545519143113212213618750209145450156949136491419519362774531196260007325882002725078562229815899981776812841727161258999384096863529386721966466644291991451801290452242319172588225156051206095372738169243503566937722526567668660530197147733802381850323604250451460153761621200600365448788816641862290328355218220172651231045515257083763475463482017088276188357673336433029488520762829468893549809060010302760908340500504172952161598543820216700846392866743088320688582737528231348498563774455585703606452736042628986761520939186631838421755244925998408471410881015466476437986765424434557727090909159835401723558477919358176206411016955541970130969090331911287499583585023167692650351332034858758467514395907218973798838486247686066313782335087794933287487992503431716126178912544793282334332243109091665753492433507146812951952803656740106610872301716877459839549772299832395614763201223532368342090718874352110387480450902434531643727095694900511889922808152855560828707264493857489719939855257126870322661808444778629984880699396396957114119715878409157919400210519249562383327204706892262727712671021316622815507776371952950294288736718184231524346883778503789494339903831999715970498497718934628792944366675083412942673743807104569103355236410544481787932022235580570526594570411077963495134710459841251446595388192969651349705359402796853090752136886990548229195383121004569004554094297178467760308100973779091372198785593785122957217826072575101491421929242179751370983775362491581488205383954869937195089172866123810409327958787448178861572552005250081074291975577677224018045012429119806666954565226598209910881128568620031764274059491802481997220109077156404264504396922121441832947970956354672599815669654373561964183470808368926542020226253517342855276270053392139712996534796698220995483391274535356868749465512798426229214973001787960039278589875370679555423420838710453568782823545040835346158045638677046810067275614677668875661294365264669692086651637323920337433755006840826004692678803695565440496595188041325430153149551724312780873897434990563417207689438828961270303110560485294819475108130044037954749100109047984746324225657254166367278523662006631848654059221390204107679686867267625518568355641254739868540418420266022576908861626381194819978648764270294866981338871144630022144619897635211434481767358931505576736883018844592751904068583150849828219580330165842084254570403937242160298152880122240741398333304041809039024886878953473570463336285659793533072872846565860334177674002941037842680123362159952177356704320287419400858224287129506127504108614644045065785446032898461927528167569828346077478294790172908749614552093087037815343833665150037259176256740335228591087373194027524635771736529658107109319039008878387138524717048895453510246740927863416174915223502332068784457456348413309204364719236791681829343531066465212342748354064384902309314820106295520600203451511602929347293858953980111590175664061756021876125372691813249979400733132563007932074439827648711880831810064669471811870691553548337710757236899286093061673358129450237149333432639567909341764264314922737445813344821134703849401900235354164838784946701623768249250963069673012685810621133765985787888082955535742318189450547648890509266263434829583963487672102958196560110782609058494071076770349943124107609833439365955453681126506245502861235933392074677893861926188333229284644177616589056813921456050491390638483584426503001094045890849399664420147003546427690862897594162025597237980604467157123655373966625777575502948651083228017685894678595884963660980436025014894607243889778444357254586461055105399804994640751694261169168009556157960264719314755964357119008191510643903835863811291807406260742104782337728331033829557491360634889848771400072022485591592703313923743021852426147113447117635938935051048375460037127456137440853104743620679279794060828850884713022858853744528967920765950175249664995970063329836464824243096580597754461483044135132471203610898769421265232163009169630910390635423815069032088556371919583875563578503818673092944094017417279307456124776309052122745264508111677467330584076241171164834034028275375101332038633269031291427544351746646129252175958108071202575246891982847138899151041718001996513968380780963774211098372903719641233270943098365031570232142105639785819229882500136709385081420823440700419514779183689372688850460526405035913099353584205468639217819431650372609603697400128582213451056438416081744818993522562903136190547291887226596350869018190362004138063894175798563710011463599554407207746673907824587302989670776155068627798553615119673219617141300460692730874954684849459908699574233436835322991776671247464482145818483257223024613705413197308215681593364476684865032955051126945861517542626304108875097904759726156147980434673356852667502852592090478567990494487041372393712095926751523923504198267176569951675963965284347167783899780972259906454752441601097252731992046208370066711061312250034853110326665677025051556125683968613168735838846432961561604211229656509456665091073086574741120344888426740261337669773343821891742919256553242764426157661559298752043545024964827726599606259092682557805460003611344858194902803858754643005511414175962246131624613364524050236728829056299363662529724054193819981419374263739109663033147276782200481635004065134199549087141387308826538842254972498857100632357686399423282820294766956812353955476423207593985851685993303573542632183062792417396774746900616956974949484637789151161935757607964740566031934498536608938293999798581643161401077224009010927779506020937200764443478584485700977077438746794228398502814588652027520890060137702247737822095219802778014186033489968287710953035290111332291947991961112524872566960932549883075536143249841042310961438040868495928874574323534774776316838731339637327109710540943713442774273163443749276003082143057534606272157581792528234282601754003643538323771759566772416900693468580154550094228997503591107448397336756211301258975216562821420018936796705393647112165471954606679101901621867961194420291199974549444340477636671624732887907574589943202072503232555626655541681672971660670874267359436755159174867671860374641483810558257725988260193781967664887893666057817705720062787948486668329876164301100940620976091917300424664916566556189926398850674818547581210332377320925725426974804509807326314334483188174058120852158683390226783824437064771699442978017486038336377996804255476639563925831378599323586068871198917908632164899549404641356612450274459222388101844478107882422375146317183293203558871808861060454157597042548384036474360134700405141814933018680960185241518609848605295212384199084877873874140011733593348333234989669935744374367708721271394278683039837129040152349713802389024023083557771450250842376114410458721043739897864702262901132524559797424486521491861752402444592424299153497275259670855185903514983663134131222750358509234130103231232161271701367393936138604102316944919046869512132145189341550172166502717285773449240521088003872369333178467880503048489944829068755524091526016730941372084833169536207393480984728883510894402785470490969372275187539335225205700861586608199657174486675672541193401905012466768844738274680938283986310661876367434533434366311248388265506885017005651497473560129884688988851824300373503994783812490018753863437135697858956016361142905096975023316652266658587454641144145778062744639565459978632719695578952206831919430303510742590600263398350205145968566958766329595316115170786647013876967320149216279366504801528421880370144089560900879990213366782697257507363015175966462308865089847681021828095660833469687946847126346146617732556319291216073969525540542567988922934522156740134631659032474075965937102222082669908364955193761704796926027491727997771332700217674036084417414474105144977122839309734104034479318590086513868844371953958719241108068908092917848859312391323595909681145677263457465337520307379574282163348439543614647121176203108424830314619634225935632027443274696677428380798225964775026057098326796639502237443184675861480561289001435599640922301449385984849486343655451045595056158671266022818786939900008596410329017073909475778727531677056847305450555749554114494394157968283588607346261612780733540116489054600115574735850628086847656335329059447299943203132827459355143336603588757029167829385043730104783230594405976264009548808353263534681072719740795060207440472962904920878094249078201029060073448622247910669098642477902243107224751783769736029789565280134327111472615468685323922081466404505091945398877882996232403151629519889159792875681881060468854433847418057397783944064385365917424793533589598912612200802480030373680870066190594771778122637543355243413054251101977281909522219962189028295455764002173664684519210740505493778622643259626969597032864848179142175614639476829941837769264202989024679704947759835779999432121240984557378671206950768650352128157101732325043174376656594165297118789108093729267959236953041079796636536374609173161252248079926450513331793974310923049117014390732782957649924154301263824129690253900281947919156021815055736211890710820270750286388047121391332920201228683675293781297369993409033524316772465549194431630585346867853007961753664328258244566138219530985903715738129469361395847367394004247631733173697742571034210278924411250120442384531191476490667187966406216751512421184003444622896067439724149425302751122754593106033051659538845071194621564753098218357439086023803881550191447658410943064655163328571392193724067494481011225212005746334487328068337931440923740999884946392519518967041922351539252065800026270143358504338423476138708935934732372804588984716531936667525100842932722657385382748443393947782383135720243895023431317834954270100610316520747922299446139102741237541756911461418053560673886857179907578858190322958739157280581787965395254638569153984847121299590647602671245510381915607785016701556159042575524479201841519846318787219357672739597333581534156585556662721693895123592827882168662736821815764909143180620829265456416482110817670571287792106476643196786895344181267316810636477171914752936510631521735169475860398742890838156649504606544702369432373282085724226247737820322211671065200816744921794154712368763899007065639297953958569038340114163900404207845029963999077909038093453601106735905358151905669530202645630277475172094334923529118049204527862109388015172761963279202744034027228364418924399195082887835328109040607258098670794737856587432508235686353300789269323440360322022707655258206367499752400234146290674575398701166118528140691824862146603448731259112259645319672439185707897094322005028320074873849144877537597258262456517049836131346621282616251021920605679219493751591948373540774147876959024346230822891273624527502748507771581928031472324226959898543987781825225033746384881780005838797998402809689102145500556780424351824512945816453075018321490534042509612461381287670990158271512955648494895841163448255192648347151358044924770948004597069851637281604717125249473830291480169475387110258194851883024505990724010265296633282820773216498948721507711251546542884292915536986542345162451449897691660877446863395692350745371534770767654897311030888071013056278381813379484304355923915971612441912788665958137666009263493141731122271015483303454219111034893439779090690476602072570781810990958980662931278283596370817416431615366105821792921366663085442046990862617414691644846981575290567841628602092258985835443440458064348995907691052948658416486229801978273984875065402373241891434104596732639456273541497554433770551234186707150600589566489580663063544897909280259390825316413852165792923798693821087110663750917845803766892162196520167955608818657550326801839568225258706008842000514920323405562508745171581147156402608138199402085723963710631289111679667578383153728751453902098652445269574960663441262488318939553046896629255273711510805055425657841128872926871053035608083465191696559375274938820787621326738300760028352766042326027786624622479609388186522060884563552936309467375207396211755414126759291627784230731236899179447451337171610036373323513362309291382866154467998872831503845783552602531483646839368467107503572523600611706457099634761030240775352816689656375441705210156692879397013283021135913611578478083314603687842287970843957332473166867136905050575875870204096116516306248560403080427003413587010679319347897076413836137914485362161709648505941022685190425989289464520942345176504045031768372549554183546958402856172990241334451419083610168031750783974945836923956477272857655167638031593826296299616025125243016300822003408606753714607532695771093849124470764234637764452640454964961934886431727726502336140297378308462080902927423335638226995884486864603819723282607263697377491705543163655279011183188132805422902807635366910909653290243827246005635951101834854684493618367723884308400419785961945611796108525641645044782255655902921818384430569569810176916889835937389248689349902079381364006312799173450300665520322911155393287431102441840686805309576084215926643921013118405347325638764292167137624840718612821434900898774656466137354258741602329236480106860898926801814106272427280514174780798276296882109222267975861256000962177633073029248256618794155495287276338903347458265375732132876900270588350775792791883596086621474832466110153510614630559513407063264531310765423569911227893020494348007833979574815150272912737233099564210370037682845058589741158804697624186902688446221655307598345118098588239290825579303039988977580825948084722081935341935122922526278200919676267037197780702412390089513673212167525755025040023905432611588446126545795082644957787016285078130672404574244312473874224639616652901744159439785761340703388208131086074134965454383093703373789747786264142371660997658685903279526387541228499103486437653964189909105238021037432745320917413181189946479587839507795978096609030619592482153874676497603051491565978584193286127127346247790212380801359743525186486039421778778826283638071767999318382907924320357131199050168585004110201748085460747637262596815591520908550770441320705326496865933506267257212039965889899214549978161774436265276053776265194996193002087226289700011828662562559346050784342413138227044250663808178578980644970173170146641903475165811384886132954945527151801736135178107031019822305918591769423992309179251299869265659535515171933456384688549972275560925835930275282307687734029972395977930104845451308565044085131546340203249337424240039631869686761561549342187850427472413119725102878060254830489679489762143061271015393476580036657673478617415733380640310430495006707174321250900438580186998422796644856446948995767791501513972513837728511128716569556605853660827168043258083318665172508426240564459741406157625579425859743049834074996142085849053510580556742082621507683632233132829278649195565888605916810886933514228887859779196610425968962822398144734343403532926297851771239678954765991792400447121362577930327661625156151846691020306369946326929881743957174759087107933447850048519116940990584316163791877930350729397128442422510756644966470610209297001297730442899623416952100822499232985586037607745595224678490019789619208745880005816329508537809941498248569393416016028015776941578963643617355724936921421830517601373941665270832709330634270257891145183457976537003447149952489222539671463332555547441353413655255550366936184996469844740240913029469700854515938562812496843432397164160394371705053168264157408171757706313825393370134840100555573574800001121560605954032119539340939407223039662304269285510596916161976779480723746331376911891697012129916098534889097742244015447434992455184206464364964543087187747087491345910684594101010009300037616312155229027520720517465070581344135212269863138654762050513686045606311895737524694165289248420895868669669131206716830612133859763531655325585916578253673514643938915783867986529829808293037753209469109156193320862021234117558019994704939353400712456067688300871524949565546914626034248310005635034201662065499811508433873441450373508774703658526907293216808477591101848068534986840849027261414662285463201412544692092616493764812460152012599922863325938460399151653607962643979385337362127941936437617338692668120028408995176092874962093254077493331638991293777870985787414327479188400816300129418663760428065672476010499452985456650541400100178488501033481025942724909999511785408786039241558046167989118042370441165852069492762107217573457038584616684524913301046946041886332821564393756601893484506441791256633950812026056091991860951895647829714258596416575047824443205054198012187706201622614465995817569177401599632950467064136684766046868231417063089338040893556251405701308606530439973105404275410646914638380097791088972743154388735254648258421063274572873720860774813167565478158176383793321204009452292257460437042506994398584864828011054531692900665316599510626705667736920596111566649358271786032570209255189724897921688908652416856031409855733649204359724023867636057779551093674476985068067430759641921528071010104017669658200328405805091069153260629250363536325118729154112785916180946913636737354654324940186266677048520803124906329173722096182059139836100615785551201023609553741026478409297364129703526497486634494362052537691209755440619507758751272190435328416993709264674900668364601373432757940238602774424967288152019870551992536020003261621172088820951297618846301270883767801367712314398568237586821138733643395222798836284323265029358192377967833137650832967445087755439147798874371690214942852129429025814494815363822321839414618716456767032603576078281501268027727621569174751455818110223742699014861736971689231761528112814153439697360489072295390003992568102707133617013632230837944283155238292805143508568309183068481593100844134046997097679040397721935475628112873270713638297481381183761076372414625281795096245886903481645259907908266770756336007979323794558144407906369490366710126109553931785809435752484801759315997354523153802625566130790870383029620091049684173400524406707116375541662504545925646462628851105297587609051064391550532841777794006439169948229806148080404320446837205188425117612953114930324751319450487397612692012855668462539648054342680203056518094799190213805903554078537817433402760321908519282144241816566116429460505050217285756905774253490834017019417783500919003979111910758389482950817273767784680600660142908826217419398133669365831190109158124297147773439586142278385473779568621555265093400610061610332233146791296502034776017872506681714670434294793243431158761905531543482936968065373795751693983974012042912281724500020059070656492777917690370053121759362430946677966012187466120545826244298321422921030147548163741353790527513243920402595072244218721179595529646979864703584852343163215447739962638565551419888212343887396531818016510588813170805316869837444314710449513208362503899580992515748133647212370785763045829864426872026707816602181161191412514794115348102103297981444222779117856173250980403976161380540630513648241730556156004347260740695158119210872111239375502780711701270973665298015344284570599758917858739148737307157018743406640766185205892591348592618100743212102406786460760160941798904657918199743349239915099315937658644113331126641709986763553197445128982570547400711438280270567755457954772755037962635496204505150160860198627885890912183551130276366895480475546051159440191885449119225648139504299889065476030007951912779274662317244368391179532613324639657804875894698591730737030171376844787655769202721097119154156339081873118315756596410793781601092719682722852546454976255287187612408069121168158804173636180267939062854060683325971375500459341224892252025495370761183284671499779690457943727746439830209754889004850506592786524334170261305272047504591222353227313584176973845926812343172007964351801437306032351431551213559503375847352344538902055146367097268872268006820128934876849715537161576574328234463815250382027741864118514862313262799232722580966089426954452088227871051189978884143172870245432057684629404819641227684864666496932117745353272535229341006729752966896094942105549727107699383530549964831340065932327174608626122112112264785249054396523595256757939126195006996908921787553251739301438268448108076666363644386354835617997558439777596091941640941335865914541620398775988772595633878633148122960829642737868202396640286061660840459790636957116873948937717318707543739425623975228338139349561630621955313932712693892806165269386751190090920568463176381096791130514749721790713641119059514716672105597522048867969746486487860088564142176054221017207315179729936950745889762058222180029879160349597876798757289497083937262493448920975202583250545058977750060489723283497908496123294773145174037076946460681014375409355246879760261029065863462316988617872401367136535899182966047311318099743708906096878416178963086811368944416471922494546270731750381346447618561404125286663321812970073869286685054822573677850031587296078382412013947583890639418138293148811058610908144608330201278036233589367060693196017978563575160518299347569305230304281458415957054795521225146233628751482286174287217342745292856610077986780302455343392896556816514203754951319779660569087755621483531781068074319835238107867948426210181998555091314801974786404385024121041846020944401635122063299757517593427816087948890610068732861225092680602016352311754047596689284476564452877029212886781809930924179160112213962442295994835392559398128655324364748593696046152725028559513744415245852948928059248937644958249127019970765788073778309185976968149140853896990340038255620990405108357336218788753912078204971860136827292754543611041048709355137589530034661130033374490198630000774112218692076419459186157530534154228679619415946407482415036718079900998746918849948849804981757486250332457398352460354929026634615798457564569845108865645358765468360485166251787580943587240725630615133515519088782127532218301908710063539889809120430561419837817905059332505829219771376065058192733170370742834637260892348890269694796015780547109611785248524281360020024991573895257467618379900465163098177678333660005857065567548388471126823661379216752725995036091193499046276864272081618414629808003875124429933356558229793180090896699358816600127650448585100925730053158446591487986715120873508161339240788772090581978045319713260478261004832395828977984730616752758892603914332330007264436028374342664203396722157129786717010370679621234627436395607203377798730686948422780954832391169577820847709425814223703365785487727723838753477827137648946282951817305394483802332505306823774256616001072484849195672868840912409997523762042265060967973453610098313482277819666323031877267800332262002653356773167180210557260431850246346876284339172716501597631681603959343710264281238555712025114916686729527276337209495668983615295384538918101447258707511148077699668503783468213239158576343587570130769304512031732110130038080259936494109985614983427312038209336944401796118025177888080723485674126075919827158917994079966643103070692050979874137348821131012726993010953783612487941823064423976641424910080918785201139598238186555921343175355343215984676834238749668491838280594668883424023964706818785967883977881920258997180421445261687825180389379003337260440324446079287282505349041998990832643685744061484739187532076323373762940642423565959847285186169994718094753603344462140655878069772431684537537663690468047602874362503906963021715007076554999027159952264636880617809632937625740143945179049618066152619527230615454842099903961774802239388498201795992696527380520210194650674279396134383921502217884574222997806029575436015998352653242899618981119644152105671790600819155904655758111934590638405969517696083806036629730187813857274123032840364816881292094236326672029700377172314823625137614038212552562865478480628236901727057032166779529298918576189622436919010332128797194046324418792144384584079677668772513943688021366379080353383435250440849295029610674340485540545566688611362270311905806415751782376529612914853586307783829105985571342149795484114001495081394358442134648443459295590318551940788680690183288534063405932331650556972996565196906046881176870632028843672310307828447373176623566175997987097594750915115227151737395750234430252759622713763812643415108729049722153784276983843297977905557847574692425037212933761521971338103856226881578539911628092106070293196846173429120128618243507294728579236164029557500231016644362248756317153571724642455232331679449846678713110095964524363554602096928090317253413062087226925745611050518749751606920722940976357056290465358627295152180057096184261312555021748184220701134037869856325852682228264926456253315448421241565540410241376999195258601245389815364996509585727846528859023474941800214861527955153967355144960572195174556599926472053034570521335639929503774619758738236965339490823001528457783207277632471604160826226788397176594269428106614059322824573402888554771648881679245468549711840718996054312591138428193489817090357211198584868763640249348997571958103619362316045549713481922172434537503376770647092304076011081845218166085014733117856329620589878261772892824490003836670117592113680353395690773494869860770850642052568736065130006926365945029732416126893041011415533368731093504903928040711091757909718154580995561584891239145679448602498882289461840811032481984841108686536591500538800089625799456481609554604089268230335237706145451627889549656713791872513035615298761815644762124913098853203204801089363869528989480899711850108094943325081386571319376082614770701209167101815964021287121880461761832193880236017735750720968998228497998483842146185605259449897352437496859495024239361742188783166737577672202242060871870697795765521174228132276997960264917021550744582264524303977980972200304556330827048838478179049466024096658384261845219519384769700559454143669604189930901714394627898107475897515125684527441405483431714939858270089268698572124030320066912127205631603376639452055532613532328053098074838338745192071511429127589130793921085799652848621923845156635432282742062331603454599017796919889594947546352783764242886329800531793530906670175897234036188538087000926642608849809985244066736249797503621980678880495732949361145430213153800377262110487352911002612627252108838845047637457337388432907785431649514696192257416496162238134156708318333763929870048976786148873332142564760777549874022879140304661521293863877799549114842322604189792846432908334818177498213941552413725000174264508740982654391867129965139987772891781674769638448691839095730055340233575883806692958989926214892029354238072297301602288065737240398478526284747587597514126669952816472371398896645821066664309540088044366981666484742032699054670272365715962783746266586176260477081712495359487123717206173136210270165501008477743988545552915338704635724737300166763338819495100208243492161711756360241752828448552567306271532742314985029168566025290590511728395170322063868929294069218383377861634986724234072705966789575655645744235109977306049464125737874124220707607951806385469647350715400121219318127073302939346484274780962801757378666620749802971449346548579038334006315074812290910352233262939440066565029118122601084549692181771506570769708441449585809739835199242430926161738376396674088629432612111135967253597034722065548052900648736532149911533919203377752249112474536751880502593456349184916317689949800170737039196271862774929301032765175520225007865553244057097949726698429922991062240459829775118512125917464428345634209519981834272467622149104687914883119524228367089090312167040125466554551457408421219413559460574715338785586517277259171615681912424389526635764116618175456461948967185182118585694914846275044417022175617302973185674105495059774751529276283726704029860479528356510953150898635681256390510724404507782819403484185873429741856880778258308002981892175121068336452158603205306790044572648265342706878550670321477845982544087253127155545529213352849150459817568164296336214325582302981219029769560296161121221666749506872752391338250149105993520859179112999718683449946977950638765698108219495217321943974176676010926775538432917914250783472716447540570468524437633475925830007628048940857103669068272867025001233860713185090299983354625109765633310918400692815867523379358572638879436487375912270835658996041260104523200764014460585312777340688652342512540146295591074131142245307417760754136264469168529215436578256684167759257242710157989671994277404427971119229664401213859265556177865869032887607414523579619745517754333836829099296699788474683196769565829160354504352793290399199216520890505629440295829827624270067983363644670664672688849249642280230103244424027792957575809793418087061478726049729845436751134214346393734984003713479436258798230811501200524536472632570452305564385025369655117252562123407914893636828277801563559620964392724319460911019479304172223852994723785803515879052880766582762126462549354049592481906799359599010626472515745020089246509877324322820213327533140845040925162244268239663332220081166796054044527881141546020507103783023741601249600003019868156501975300518098982917867486779600080533611631167737946503994430496772970633094512841635119302274165608552939769693202304748207126827268295644552509204447285466187481508592253578648328841824104242767013148236773042899524178748054354650643135800823154486216343108817005524018164384871441511863867269661508582783722708289915979805741121090524359419648426764014988149065915136433447944363787500530830669850335016520333299244989672666222920392169295873677457033012526612734376680297527203886807766971145788616457318436414919374269435242518101441491003328276489222240586445141608693492663560335777475735281900733039351672691205711388325536850120258007054448166643604057537819442030236297280502025907149033250526583506301828134176101168123806562904991500530204415668402601307678884995281169421746443721813869157144566229912773898020395615540700302554845983770788719865686468076118999318549691768216287636953494316815071719165597140848012137316538742433830114839177061889961412187234307170920758002447115453997268921586551978174094071557310235896978207659923809134742788044778817081061927758235160757455199610506352119333480650530225263688582615607117837228086633568343657819266026754793441667356610165959372604342907806260261761051510220304678904422239443555513241708534036785160465288689082013982288054797202392866974597688134687598028927020997758575523362641710156751576559931178314941289379955251250248153938848025467522105421104359966445414175790259664861101693744512143445406642835811041679285437251328070162123267390000478986323962496421028341334307135608822861455930486876978574906199574909499192677588457341613184652734174043786534204132236197436724612278067712710386285524879924544005678969654608115905037887005970072473037072122480753135454378680940786309738408495836308996604300894107033742788428898906585930364471922391260847130244765509302963809538242953619087434165118856621538310591652078381590131131399934732182003950027515626164097347490574570390990438866010812523858686534792794026189773671097553876232939153418982034117468844210688559549539399726276149900025498809919328683707910508242139716555103001220798127693365309116294029535918067136747660049029385025608853313815416857011966314408458915751586160442635181002104752793373085817467809639869432665748081869160146843282794372056930415482080289668248986037611552890630715246694986539819861765129503086686962851621425866657498845829873028028324841243750470784420228899426256880784094048363570076775686881218686367818755439083402454494218593627427436936333479609210063009143626520071425401044841503351439848637553658412302692079700681064976263944225697961726152732134770559244972479166769897524643138605987233948379442176379995509678899225752398771677038843774266756515452192778010251694918160333311532491845349489004391312808956405280721585295479891797184351656249027622102698489979809629256300896706757103897659455940231549505208842732405368111943334406327193706703816638260860404193664027819590433735462472312269848192576089949458158143681895281567635600939750741266956969440795093612038973444194494604404705248568344401396537394505968644926639248321188308716001181633863555265603086409900814830765384342963260537780651972203851490147266712668332594775178979606604019918991109239085585076486588521402815716614794220008303540546146986432163390132519737159617411926459686330845421068720097559284679923712077867335345840049936355978999805756443006868786973075003819556055259698485284846683092545550455061941197862959093992268054961386262913380852524051178383412338501146861122751911057302630179132645506268301944720678110274809990646299146485105094480803785730456653313464383975779327073379828142717926492819713844064692577214139583231161156893143762505655435748651908171241918292517028145438496665776322277551193970402241201584451700239162733083345480574092364848508539495596608957144335857827120601592061911105492130205621590116040922682986998485883115419080577821635154839845793992024700383334483955318409088426621863638761199473494035441308829541214698828997411985730059844889364078551600354978037877631696878801216148119453345371815682409508194316710638181067013293769575597061323209392703525282829366587292080067607363449825492287027313233568611881385309631918576942203767866674837362553290481618431186162520059341632525846470445889390862458925346103325266920804189575241855638443296751704301095350303419770563761006234325421560455026628263586400829091703856991352856404415141116481260873063099760950588315558003326571703521252805534126406310316463489780134642244555684552650941726754774175296785024507690466275764707694437464416990571448087519114469172938010029336562858555365507412800824026827907091284837383021599014318278533001215723725436525863764147587239149647427590012131025504543742769368282446206091056797626315497414055710007547743481684547464337072713879417361378213788319036734104663526827281827226523870883758709303050040208099841563772266325883667659691007286816145848881164847627206449105493538614961953305184374647410961944533278934256081508902236331501382101251456899529855730640617652024290804684116814435347112055615364252028673636790086471148695272666756630564198521693540578238196796727493955133812005028796509396322156795950912926487494820502492176491366617450725845183464009467596804551363735715874486425098462505356824808875147339252257040386399081422979529682264926674631015000379642373368531757935391134349504947181611679769713483418343671713374659402050148527370143515989304031457014876802143057128074635359827176692928306094983140757758778685802910846352807523472661842957441752688554180645180312565543714627971907000306040205159743444244900552133413803514403277760155798571645732975183067492017342607862467414643201445646287394429286597352455967607061890326073004833384202315977998724617027130966386519981736420363419680612171795186755830600680865905486557331741787343668430695226101516629883228726581591630051142874315547614665523404606484448293265800485440534234138577310726949269165367988920878358129918910336637820002803618738001141758131688073025529858804721872879693827638377642302884561983889560061364959281526551349540661733935976304779695341864442322816319164082664493600296568772877018841441428665633152144067917979495576855428499778109081176193622737768837229342543519085097605688493937398923432130468339872547815158335226780649791044975888677250089238021819579099540223487350920782110898517467645379168157102932790576798061806638800301197586939396163466145360387496420914176478514199044236483393917840112719304846224966907933809995382150943013955958391489858782159914605124993956719893414836626904107948953825115842671570488814561059806722581850388394310313991098511648788325915472943146190815031741908819837052509557741729041859638268575658693337026036920748259986197498701775042936936249919258560911979274830781364283835304988294548171795425315548268156017818818738676991507306744985399137876444379782862811225539379338900159149224115373684264334321295944861924157261161033895310400353058750040745219334638124259562745675683732632361088719409338602160396329650940775476238953904372534867958746569146427159121660116951474917491261177340226721174840093065718455465631613841913682671986099706112509220565510906696369951718108633648414479916577451572124633920608461413926641485443755264340533094094598436809669249751820441411000710694958833099337718185289314005209735461536485970028628829962343150601543349378109456275325164407131810261311875534726676322284674049772786327347154754730344034454701782264622684620128942146084712543250054951993455019523943895700665115581583761178536346686074043980715982839236865616791918974367973233821332277322830297783422385392133824125863209978139824308606929138338040115117801223218411259755237427307358468945673296987036124299039106086792830727087333580224548560233532054876595857308941824388325441726203168515785581088928786730147473789913117915895560856764307486626519237582543713268167280965908527101450134759537975803596736338321178540188075356195459140713603068006704320826387949312317690269916714718392713266448380622381862815341983033135540100537426467390273854011862466679542267899790566935983663477518024231454337876329245126934617766487274583186801794546067032939898739800370622276900929990044797407835650157465688295098607083233503823278148066233553258092114891174444559888029210871231177295371915819466799486574795687605692407884716882931609305471910985566318428116144039782656362584722598080672210462822158862965416464810771953772994530148721378294640798020906014331574893162926513002595446208600100234804571294566551251967324703927320176125317171911618100433774931403592093285783337942503099072072811413043334157768159391172892933173770308706152737898859476365050012745653131889586176776034869884016972480960254461626637079584653523370217802284995039656126360095492779059714488168986878878828383783934374717076919858079704907621875097076645838896759813234799364283691364830042042348935720996969006536118567103996000364337461953644191348980373992603054509331671466155430539619961285406019734834166152344989160943850392156871945192656025405624354744738638134726655935643583434757515383380288156875545264923544603477301216206994154745136612058380902619750673809590772298643711021281160845340141661841229937076921363281459668972695849379256139222162099071703757520726109496998425809552382548967643694055093326647776792294123638547170635561402332538425744222320003981227579408224218173925917497974906762554897645535533787394482615915770424530062443960217643572647761042136978131176166981270476241692058384724746113502211724769617148714175379227182968309513129560847360363741682451701424872005415784204120427849588608857833934891186096355896481942843717801886672686650927065332387724783760794121028317028306177537366654904806933283774587737136551078185631743755093502305420348112033113421370074913116322739889944145856171688940980585910509858246657059687625842525567825601201818026320523882443400341168506015173738987598294727067513599733774996507347301352567561109878345293978856781761299815015006278642942351492699759612703270198496546290622675265186316772723614419272450985364957912654089844316997153435495401529340982822326140426114091458438641581984636836370670011242679031436677101116018496675200265511204928608785764810924726597358198712420386134554255640161461845048974784294007567452179220547125650031898288649963491581419196889908028249122913199417609584876879148018059274356112989572047535176545957043680745079711183401821206908280854214842578263049401360387551396043500096171573860905051425699280148274839652599394561831004723171500283313344948566847834756033687032366438964751941308843393581950123162614931469084496739341296232787640450639011356272127413038993171193252262283315811177058453045775596948518784648241605311931811831850703843048678613704091566681142539874863603225620201137990680403470361370904394859588337798835265683000574910059463988566569296745587019653978312657207454095238822895864668481973788091909545567993212320273052580030109158639111766488736666849314608039815490233577207507244123765270978176257320495225223505192343016207813837949902629160366683208234293913144257772881607746561951999193433684066170584363411086926256596244851633818049938792165190957463116107982486507337429126434795761265120162935791684474676687095136198848528067457512216254149433074477395895101665359868583590452584197147064269591105063934552600194037084218622021534654328991920658804106765046285330609232258140120555782851446113476412603583489999217256380688175374074638461795457779574745784882516482415105555115420479646012038777544243324164453274872739007112400600270968861061783252579518737574921029419814136682167437347172554440761961621766927353903820575295941359255601061221263904526845989879443425723913244833842719582433803245022074252881825219536466631281572789991451198464053487930910118185197336625991588738358284491871919059032490314297451582647315836341088810243706769372120836151909811732541480732186033756485171951823784527559758331882363351221138099582711727845537335620362265334497359970646904447497971180131312738734850031023820977321775698130116409219671712028166486686531250061644342474146376536848185246562192518606895436627122033174078372334878775038714708893498321904564303283732164100152690555744695636971170568414999036008511317130630395786377456380477863637366479133918665496848242087271037152651313499734445141472008916487568053956191466779001138311597185544954189530188836636765335311876298837624458106079398807987335020453555869834276668143396358686424390132988782878821647807675835466615085454415112585459489948539158602718674760786147600353603352321481816912961483496436811823580350461702026691461133042919465401290224625901957724108128096711822408049553352277209516707335212159269009939710225447940573250919705880196764174358079812980958940706254400496081346814626857285437500335493284056905302726858392407287752907241503643986876080359314184296014685414349380050124902221020709901547141550238041796833190320660614863252660266181069437081289830748752986626197660085246209154448916523454015363161404757826622132402303133447717087960864895530331762333030482554630056615057040676229256528375210834164855726576298990901657487514844309820114049494298597623715645879197558093808439661715365727975256814695617033235236768797791677135655998038319645923991963026812672753626756560177232459799489496413671074561480358616024611028016311182502951186919318920398204308018277504503388827011873016290250428047613557262415258751901128958076806166429405434751343584757058317772636297112758519125879930161016091140047810376791228140369054517833233491236615633300591452046823532165059135080167149352026598400936239247681336218305483094384482987090423227745558512941344775022133802136560162857536820169222877466019502756527225625716146197779193535765605194334766492786196700293270775850009885446729826188825446802061284714041388100145198605639357423303215363830377375419392164007296990831333381342351538952980635999742400730662144640491112153051761744697322265748249695563605407805456972552991622646152556763812147763116805320743717961348956026316571555064030296685993590790079748719817863668680196328514508045231211566064180591941743008434460747599837297875347210443553343952254706060653790104994916154824702630003122809543192015771442549522822557512126390443859115342444909689184462611801660396438764808711409777871586716616044778129806409422048381171899946647276065296521009467773945138156736120102796820993580381511964310073713221356368004438288008696040962411742809975696482984718812713142570867293487203328212171872859132794790393319200762063160995263765654204310728531193351916308307977786727098442423728529206539642417308483540111973076268844959272142082379492601110494428764912130719723127426315887134171113156462551526910309903587336915343221479438902374627548583325255674991403195434303732640142851530523165152899511255411654311647072832107218243782714631456116298450345416235367754543365984840562437392466225491170386318728783893652825928583884354674137880212900820167022285724279304354497875467146933234650152526167215541628154785635037909975919322784393248348131902317410665562585595560312376439722812189309092810386095650849306440042103182128629578751630208861137295920481436017723448129495270577049666386951619298613184426234980169719339195196270111561027403652591874019224069817125093906985643279721956529153558265060748040050308586020031515286653091291091249377487461670272717724772653293132972613833157738124986923910167288432261133222391565894442933048488647099179756499212101342900517832446812646971921462690100033346087122179961678177018099740872211274932977402134513083309516047122582076387004279248584777747071650275580818741534169336571524271412591619327963083572740063034315268267956352323151968095840097029396815785329824247205415198734884241469731310893840651723483902166665032294959691479832751515881006919353696313441994808871982884916646493845129494739874496386650695249277907744684857352534703414810983969466940665674990204537927594740245461996341637244885695422097368874643486436310719721982502218110497607332628895871693865371121245255241056550029951683753376665972375238958939922753785917487124511631879232033951969161652740919285424095661800477653895170158156903142774785950588943952355948439410208734927527458988443410802890713480852321433473305276949457289897282769858995939381844120333070895928011828255701476183372100915385695034808725442444784480966529041510552028507598276744561101072994653180994610795233569268319862549399884307421694307801921753719621602954319892557008755413575005073044665749060625283021316001144954805160733969971461481113203674832806511600078912257453275177298021524945842105285800622165803981367779584489571807290596735081921256002835230730472416667389104354132394070590915743937131219085059438669218459761591645131588146644957630008318413698217543446677623500468527252611232475719920316190375566047553155067105124650118463054932599405523430178979746988134302019772572961143513710373652453542682514890517433095474849275603022404276523676008595411024397635469728501359716705766377501448104425986975772189925228217363588003915933675308033776350586543773315352008511195318153063317915669278585003675910096998704070936729992869001676739671788385347440619399729997068331344319975306785678020678404864363264033173522343423846076064411162878421693238664075560307862894830988783357438368747417973134134704289514508101178267839721195521224990971418417266822250526567097838305595499507790656359444485250044863664348548004081059089562027537913364048743321556400270418736807433898077503668150030809824352066426198889859908986872249571845947009737197593303056664019188768993382571389190583305399589341243378911008314096430575494569192955719899869809378988652211415512957687019075975536521745862519983391504003201400171301395892640710623812194209933815517601347865387335228038594819778489851337575488122518656640796229445341095020754632912532823500770870681820031836745792016546939490899506393511728275635114138410733505384828752608698262789931005824987784476898790697813058941460616347081760983446286157535400328111290403949416682222066726671598741054254675253042375306737416605083221452902698148912143786232288682907921280158419993685645685937101101858480013311963076691531406530208509245783480027441716026530568942260230542698263820063473296330035225884076292830651720518431606830678999429176584295847349641589687252722182877461649611122387214032999719952571785495886119103906801319012457560527416871549949931592929477937569786356475902741127209380173499444069549338709322859369227692307438729365139794734790240746805311974932464377818525952884555636922702094631135099856040106745914848522719910370594652866553408011899584851438156248029687612276976840319040358779660229904527250956306542549545062565642833732065278759957273696168068444218554362278342609385734141244474218498186810783096098008489770337413148709517117473205391190908849900766156745912540699759540828030714604305892778359903510847455185275175765754427749824917786176415839328718870624747369235726594202167370566105592837369790035623799545940766938482460989404629238994725234158746645859446626286047907270371062083382522356863056108531020579715541639834877469347659472297561381295807734914067403025317543855534953969852312153429075547862977288650297226343983867156947719892737427609675608036185975508499854867722616182619452610889236033863712115054129793791697644590957367556257949391492869037838619028121018163445333729064218313947944667832443236000905620255913699924085888064627578601973718276791566720900073034371802149603817854277531151617142212558610125939803974833502193938274056748007153374608435606541013614777337487500177492854130567065807169278017709634150754551991261325248503794905427122310737146183662632462489374778491611109486558127443444279999184713810467015929482071958664618340277094625549482171575612387180263587470909866887911519667331946040753277464705666144300078033001356244773816846959486690034221749676368899567582501430385501747116561532435256543173510508146006880646762896751030773387168469300319725835588757684544418515043310660336673268422813715789617604017665789417028328386692449585137080353413711704646740738450769712629132353584803482526664923886834597524186137459592903727859544701961913865475309885284093793362760342136688994916181808733212735243795253759403819033460315380027583825057680699114114925074703173093688046153700951203755703495155947331950249224795842535281886184715004484537221590060178313489316505915692472760800909325762785818624065235463474412545652515564553764600824088706676874453674835709170088379398432785127045497049312207275118187959626164915380402436142375190167255759056736448216531466702594188945783559675072147366051635395713709962575079307896161060482717412965727219221839565043755259335828916236337766806123918433056283329552424376388877864550978910110537625307856462048867421033937309521737124952575109018306078302170843165493216812628197469864689300428831728465389396439974327277357435745612633167099793684069492618649934916833097387213130931874368667776478831763697447664315001310857977835979912119961851483702813613745593875628589775427729958087127259967464851083033728044867366051073300205577238743578493394117650292933762450871299802576007513411666813383807229365098006601248894142573634581236264770713999182932957060222738946617276808932942165438616696618544102444729368034499533472782729272193563315598681869190467973019034605580770226809733808524972682497946575734215837421802789545531324080943595341839089309069233043287736583224260670161881438047436997289157191165071010969226735323483833231415311128143691516862106325868437843580855382113375534466933264341796601597358248382183641940660477542400255830873399778126045533140150737619160200667964603830165179726714223204002333792530369568375376368042942910252745602308238891217788675213579343404494223081505282414184792474496942858997592347736297342910763004957896737914158963784491343248573072989420058959597582371759733843541363455197401890003931961902303664762173579399623094777264665209518195699163309175598849196804688994585630061169435128141055123188805198902781326341866904725807595133585503856718360135853076412223301987016775476305014215167474478566788978779287138971655537086359830376678004938867737861912604734328517176144201542165759329206743719973684292884349963064472086640060970954491631951861944641663601724559072275702138030349878598423685201326941133793690459831096491208887292137015860696755176409425236527863658013581441143833475089075121836689288485947162787673524193388347658254486488619141549286523325176909214677821410840854630454502204511999737300607538582740059084280577715284582649611907527524952017482877184029181645061639333275819540134016422588106929044126717758919399365343896430548008190544330359428196913137924670287536137313806801207329633564999614095106845333852786031020852782610412038520787697062669528517432231290461578217179169075383579426585174743261159019977173010490410405879040280285529426247567083263925943071888019388406193906478555713846873913828680370304325108692352151924762639131406118900275759736886803464289774979068753308014193910773767735615585316735270446935571338911232578725661975672958357574469373976292288898376624583174683719476371290421633737936352536015422118223872263758859188910597844437409787942155024683856815343013236533983904335044122348017967639589109912088469787844030639023198347027400011700512932787201339900305611213563037838140338179082767885331504758862436000264497334134513169116423926884275691526354449464476992729395143330033933180445637339453661524023936567596293400187529171379789885168521943471186680485168665869108806680293182517867252570979115775973405942362318555615937715576821270216528398357057894022404116387480332192154070230707209470017138659579354770884884542375893040944544548587534486610549526611693937428809764251535935382268338582369117745475689394307286530028722952268828065213179659799437763030789061852035521953816712316126323936667356736597792489822892520013492696279599721206582242563612952739596252597597463504449962836647004194437044889636088163069186724608850938555268859999443658944912085942093762769841077024653687263611616135118353852973724055872781807871300906484652615179695228981715387171186614892185390935560238087360244409026858031875271762418068382393545378353041607711432718783898248827651497897273640644965290756044147131434500444653116826856149455855774703187387771847631986652606733469899075936760197667715659980910518039757337587283638430111144647468757892991332783517117509857907418595470519799788747310884709023617677119194221790140089742928371127082922384412195334957368859761004257947535274635884994843888934581608489610394171169098403656182114620769123892608621275240180163688665780856286900300511411950286509567179006622556166908684867382199460032994159928672581143290705518810231404481019321606033453590722867238906887985663442639048245900115565704913176711958368953229782118486851124249705782187159470158502830487188124591429501733184600338924875098223784889086327079810539199752427917945306428418710475442482602464976878374407830049197223634611454773631656311040313097067385577814798157856310871900761236444396521061384189737733177005278640278448022793477988849356011496467761224864910324618120856317912240405091362869120364315348237695756114133489041389101496939783467147736420284276719903009224290877406164669365235708226356122168847043390279814042686304297742404058500947818336539706720200622870475898970202638336642576831272397251478422478113558249637582330651299955758109693718337138722254686458771471840244942677061231192341665276042908955984404683975707996324777858646010903477053278993239361022008390524205060148256177096689481785804887696297268374099280502810580563176443028076876622245767445879676707650525037721889628725701387084668552344966653003078643782172656144445061666558099059891085299237996354086944406671719825087549837299535395890461325833106518590559814252518020192260467436844869834047826895894390759252328684390785086200093991254051246661837949074274181498399832167124090028570762114621763429905708287462803642351503636427503906133825659717470847098476319095246474063236542843536910186058301998658598727301781455246835874130467213514404301936290370536755472587039051240601864432343472579304628099810844561858485490179598360895734377960780156367357152105420692783640524796277385221624388184654273657095272022922387269357500890660062582186607538810088655104304897544344186931809270957020366306698862915952342843234750926787128310901766650639337142705195411644876019380236884263113653329815309899559093434702710368357114229483044567864173809446530480817456553087129945826591222246217040275820078329162828920335102675327145829797771073728012339286889534139631683137717994218341536948804152356855369798837967069124758402630926294378419883427722577496895727480490101122684205357082082365503317127611902950040153009533392236829906610650596978758469577882600598805550728141331583228238991071807681464284293258009879655862387628741140140669633467205050430280279741722562413542995313069594283065485428328564531439726013601463875665854245372132122706218799935991882793402092028789450762022024887929356582908408600155113957692806844618148460928645989787143485412142449574366900708479880821235245758443665709069573219009113024220522970249235645474742157126682391034116309933971576230523548761953475058177256534827858335717777420086672988215748820998826248288424457748984112273796487216186203604790970521988369362844926344048261312350894695116972412850025531107817124074314248262920790247578490772941817844735351711106071489250760648835212128577954247706308818653637298775336836338583935446409312140628823052317216598520611978903614602072605925455354740923288737144067131478950027115522356003466052735314263036306168662519401007711772166092823628206980769626194445165729499921195739425620594294368983199537620289689904482953746286061080358864496323028184943020655165615303249144032916031352379543545394492640759996506532203563425757395516404251526143062710742128971073213690395127019842116058057020816662057748447238536618617388617240124557395479161916028006012069739017756458341448839295445601763004115111967926671395493167118809597013561650922164386376297301826620245004839689202944359213959105992923570392274544700528479870730397358319719990712622274491673894013886010691925986697624525693363205829762184982820473992095907029502252702751174339802562523334324972749331684049436182427101106219801164276605952149135774691631152298518354686624913583416616097127326123767558203741595008901120992511273331347204674111999589239644894280319511929716173680693491793468198425726360233212556070931662931822055674324134149778023022847970950840271151798339131976376822075158721585840663257057949922820692165042891716583713347660540457452986749838762590600703145714688933068729947780189964545460332438924382994232808169862187073779065421359897261670241808300080377776391878146169797434013127085288527448386070036514740343469583449678854045078568280974363938694726467215671474254645713068978764087716462759048835090627471068580237762289869906215467346310164185100918225808818508120703560585529319905630253702248540315338943309405059427436874878950300969054227868942262798803364110189577351365598938888516147156140090521561432990722660708772331569467566321273341218840354698331035711044968449877694391706522271003760120821437725098312648722286342749655482265029961095845309043469519198678908601338315889537976635188246464790851887482778339855999549204622541705265987597272804496230127670798494590963257270098891556838374090349601237515972481648441173262418401552092304276112550789212571614178630965918378947216381999479337146095907589018102518848657821331002722516028314562807568328811283920036793946872455391217625046025599782207846937402621939493047606121962742240464382097733253385392964774591991661854948381898320258992460178697056462995034544912414022714084147049138134750217808050231795722027679374215011449258515773928662343341712312611466302599118497690743061938390978865657411130209448607943640590226230655494523162355365376258905909736477075157922558172677650990090214113133617455707896650595302936880269042429438007380078650034451447650602268219806277550540357659921464875840754911068504005545530538988530760184932657489987375726431885027074610965513874082617327725891158080500911790779610817333110490021201619198103968060602363278171064703755326378187096068490814704090743577556982177666960392689377053947887351552645398843853032671417639064618895406910790374826496758295210038164117043908943238378125384651421789820539193706230579022363669361315109563719109594821086100052401517510839418854854036453888581242162194126632236515609352901010935376209960465442504113036600065390024136547927292668859745759417712921123834382524217503171859890648450075067828696851905414434203078755805196373535777485664757156358993995129261592939427144522034151606304110824019168699805342864616019913140045151415018749612414952032178599585170989830701170164315641490167674828518285840879406313437442816858508436089287553982452767365152491284258835906700311957066627690066551734531550533300235136802550892081701216980279121852008858209242317491927064836434091217438582743800172352838011593875762198108930878457595915143820853433823886218949698247188639208254043245958130468441674611272460197229695628121238388549943239379671802096030759191434032825581929333086306760082782050974851232807586945046804132656836437112782074812850812113786639953533290816945494312331997041250666291843119885635692797072667590657249256762751888275115784436855629654327011689845771597325439399186998090329765030149426376228384775969985321379249583983350589515005346710787235330081159844475970073043428982487526282694834526334354506908073134560449381096230830566998625369145568759995842184736361109507503821066380532898366364724074478649229794260528308200794496642499650943034679876194575760185774656882113240046274920231969374868226520569802719794498395174715293927669412381931657721401545058437185450571284163401652559071803552378208987505244541740549885806238134804386481912564137749785342424431996602633856958122738347657488457675152783341667890761108480621356265064520954555090717767751578392679851536919425184807925818049995174413607137879766368673387028049321245152028545283865960706033435374939839370921824706215814012906224104661452767815821298022033977236697867529012832675207636297284186468634344881357748368093018828420604643270632518385808515464057110801933369115201615966121539095195251673579816356332283499993031574149907626619411618291319806771452696441326117641352355761491608940308892133499995911044582159867959035806479056364547969558431941179328795399781721220208362646534869223130376326163201860825866186354158636755250274590666685304858067661533562395572447610256359257912460710736415580915189465253114427192559861896840246188631205038548853671257913569020255095553694678758943848717781517368660236637341221451736640653943168143789077090661720924067107188510363333753174572785282526221973926193039103528486771268088978451564462802327403657356886756307627931653351068065135417775668333889540363863220713348375654901515775835844248861215856066926669492126702305584012604919268765705707466299911595804552710654492904891484285091174761827704875916684986693881161176922464041540938389827282579745923452644580251228552483200406095621383161935612718231909942972024510949837017307770310253682567812352580489900680788256160512223961589038781940270613728285816093405984496975115741600326599355120905209037599450232324499693724225297721887353746213088391109995117973675103853848530121034038549005839658117314350411741294097257118174723596465091723041348580418504964832180760447510203043841414399316990316060195745962387889598521176810544828559829520670027056381587170050642453552267709913396512134912465417384275478955645125626450862790308649746878085603278524986334068550523057198896628192532672813750856213477876016494374522769958530637358987063863711155457519566809719428920617543505417369259877997989933531679772028616517976722741299814121066521915024585045446176825981291857304218639694640327880859707081378600792424953606239778825672508263264532570700306277429789042105769268807872950284771473555513324355048376279230849025596709183030797894589206043668831665931311692941478964311071382336314734929896606985134138905937778466554810870003916982164607906913520547891547484554686258221282027633129391618314287769964282881175237728718467749756659134523648824447166302954155287909590591049181834451762889041116348736696988247014912119581550439637950914477495404303466016713168067250659436319622873725873271160372790976828591762187063796066466540537105027816608643460880740006654672504371193423839385218680194164703947670295805213599573616259044024591439406868966443994155172340775745413797678978922617923328332214818445185676508517371327788121301315865727670796913764067638795277435709331497326387090252986997831405452769994814310489505220342858020870018264818150581218388230495165979431271700014270036620604124038842331416374192359094882976601527674996452341491768373575611011051313979554154255384588512370084024011078039525257036435378236847716355224880263386547173673936539887986551249053723847041134430138394171135068861753577959220984030041764508011604640674860761280057593072979754794799929383704971717752331352493138383097685212759517948727151621503926975687194841804449361965556695149197009661729855750516311078194298345912556949674758912583607946532769247546377917047639419077484251558542059009219967949128277500814698037281962159511011887408347934197028805604749631282188510065969354800736100261856540321329617802495945685265995094961708834892230592517924651421458160008637533510046011988521292873869419617044563202368777566096295913373232419357125969507345280447650352385441986672286204903110687506664130368938415397640496233815023714027596766470102477192548267615881949131893545312169063184271910792792192174458770104240158352366726292931629232265524563945711444108390688142557112690730631197465074879146405504042620914282721581799017689526100999909500144715203537939202985450416274082580465526494077253892301312213695630315975170636770295815979361767259831675242287961037711728344406870792102279917078280587728367225525040241411533930251434109080712513951490830003050246230454242948905585802667635251136198645843272093821188355826484962874815604456928935829119909971081269390093545263917480623292050819322786718519591813633148266273652926126193681644093291199896220414049333826686481773935532748198279300254672675163693749018733484807311048278157998292947609700908049834951824243965829089361585688346934436661578755194788121124253512943826946431276219041195217025937580837848147274533641348584036174392858528457584326144012218709393307018184194149628924753409987786599853104266387280672594958142783717079955001539373910788903904919859375950946677400095987483191221039095842007144852099540786859459596834637506355157940773393552442452398274097459388507917362816809774432953302291536938075294484169637382132205305211672729679680438671710886840928593731740971440174808851437971553306570811815213680752970132955448043593990909890790457541431841801108015776468176624208031671837759701299927397006598444053656036671599275842189682975127022940912661924453291686726239420827472485421938351861121576726572592879019267362551653129467428887399767892453536007832077659930578924864860233773725413140488443481319735630180248831222723249297574630021413847157279765199596632901115629212459315853403933640686209272589743876751808003913112178056344712108320235097965270694771800006700955148865904152297662779786523984522727578930325531521501612931002633361839475894149436101155467938408356841046110474872007428874072343851996092475279287881550436944734226041517745113292289472218134897602447630753346777605667027363607635370098572996805831539901886109281946958432913965205982413940258237144216244070917642255492673836245441998864081030918550323478139524785783571474827168853919865791516531104252244068492130361726414449066717585676902077172109479614888039326408889799675925155628079284357200865118171782199410276871853819143843558586074936699325660650860426565485923117208486402979338686149445801936687289793355526461695992087029300333662015736696457701624440923847929617013727234259144150479097574492226213231298651323598624493603126048637858560350125306234838792608892540172452148340684201455142477915913232417822322597044043906766151692761210216825129160089708354510078336459812696048109443505006890222194802597503027979860213401010234447458067150773419847954141728524117148492251441607638287572318333783583284850099954365471739787766000234841866045388682030185964711977527983356594394311546331485222867843869951529803901858068483586475946394568261083442360425879795140179731927750725526404440009088507409673543225297972121754865854921907124817443742471204073428472498864995469052112618542378281379053500940326938446143490542325760014884302999668233613077338565500362213326490743954148337823673663501648625880341849302628474960701194838102538747442547291508520323907190275418024852086866266145475051832408252175113129292720647926579881483040435700879415681066518315866318218421020913641324833170037594998111113538230137197779013842870321827365590459397581550679238274881100870120224699681195624088208637502996132136490506487871407999955650072631779140663717169771077198587599213964998901974412493471279724633288860277087309279246881283095489569199335634193050566645027220050239036478931514982705196574792288778059257180316470346294111943486177010124835826054963425342917461826457248063120032928980136275671458210758202087960157711612082786514129370448405092607681918167287341066966188343955187459829553136829652338073833959099201100624432984580902019655265150832152574890802225318109435350815663983190355162466466197379677555219662023108843021850119101812202476134259168803202972171475520514963617941684487698083768403599247934013921867105359694218757459135104537312422840040217449450956844985076852913501455122593058035002945172049598097575504658784831492707953417467204808816622120624927236573944933288065205682402088221629050344796396744704895791578461808048716643648134710371085527885468883288033875978924730113731944072213785245404811963666709512535248408487004252248988999629555255201205547189821256108355013344470388559989057883843063819247756566761602278052982629547026095121078453998544672805047634849371209362308214119465153298107376371044403678746042702102405211105737178204111758370726500248726167792332103841255708601508435975078898070330562482578749534209614719918879128852169321565429959571728641553236526329428103008530264928087088424031755633756493297506547673225925717321852052499580439193818757425968676260100649686352616703900278285736567460548560991069337043656692818284575515306886325654755377807668562814567478474048278906149858892697584409191938131758671857741476250145808770942085977347603000062561441692180086020577971003643076491867912119471553702618525322830009574793231627474710108372336166120059550727992491271372105803366262359441363180613319582819345139966422548497129379471743422293853774782751127608519982403286035418614615231448111166653012723714505021069269524329753888140574663955644175598790939952312613570055625377242852804311602325708064288880494263161841452175071333851948906726235232733547336531884567232932738731824471950443462771768741977899535712126207825891445474356077876242432682715227970287577692952634221795804763902013509244945049292782164221198727946456798567457321160380577820359828280613903352470619312826988151787023621197051653949608356505149587042754997836644451945314160108500400185021382814926900377396727179148912272578718440235364555846594745164769881200938762277989453014755486702450994169938619319476262236916759675047830453306692050475388695120564005141381579050333517659530199777143348847965327877046169938937683680934591522581291710626798169864021696176804375324516180082611408551940758653430903230345961659016574876583893122387148520124069030169239869719156905590795971051146231778165470871263817872016475205660315511475309175385276812772030352999702896583481682414022352070759101257990405751239982565313716230240648488084055529966020548473233087875922344488878694709911390301805126661727891899185925540678326845792860200767445195073754546801397866296048896452008811957479605250507893593103782117704593362003948994804245495628583106895704102481059782441334200312387652138824622327609829310735277068741020522244703083751310854052654418010291859338466559596677831948500784955824698178498283591316281024212248164552565579733061165499977607786318417836678279045136167625613139740040271105632974482878949626987680536584210418636924722520599170445633066384094102673333506254971576422599142597925327461649623096413870711490241811437931477115781986836208815629520005854715845683548116187020716663896781076528761059022206018429829105842364264804350661701078219726454735924507786268666045582111907031685171912443200574916046105580430762375260856639724738495187493123129963440167348997760068648977164422851712345924219965627959782523245516642837990002896498953811160538924414015652727448377158312581650634289695560472532080533660532380993879606353245147992746005575791486851778712224108426761335381467317191520715701131765428717493938863223126819562320665482061825009186450833665336830703453308667404472647198031134830646651070389646234234541267542759423120972918095964741354608458293777887442984039467795571612855510913293869665692275832599020414348214537510480726389285724623989196865253817329227156242504120385138376183944401448894998324568755381660726757603657663311897753932545490685645618048110527796743383477368733460247241824279852515512603525102181180001536924967833378602009755982143614889638846448609945904461082526072570935346258607266550960017017387034026555600241902585136219291097050192607031789435970889046063240070348090005377402753302022676727300769903099842065301597276622140379238247442321993578805129254198667324065868940153978741713864978871817431719973768038054714687442735115949723918860898763797278490460175550119263698135211952535904383257258455196902761883830155983133868843571540081163960056217619394215155509657719558176699344687707145601210069777713608134162942899949111888589663728705548845025990386456288639304036720422735227028046581320208134276484723042748176204661057462219249786172705735913210770475185765994932910479345891009258517219020821035317885796532974542497861025771233135210717669806974442082767731371655906354222586563954262642664636030719032409074969058263842731111111196576376280481170706943016497884839206100319605798458554556117745624972292936266811373844869336011107898474704441425895638219409900885796916698288376542378704590396059479371083607028716435374001527392384464591791931773777499995265733910368848342893771126808880677211896323475485736869180615844362041459314979389742550713868053300853778168257112967838623525249017781643666287065497343139747089421813053167626801044100054818404511108554847769613094189211845339752173882926145180595069759121672071442942156588387870995395385354198204819336471238083189991952024895960853549512193661971131802384290028085067227555204977677989772120352329934361420797865612137521672423842960533713508448424686305386821511881375446249252468959065702029243728717190152361921954293158609245262655903751542481894893494122336251217327830255822353526055617759223127745320144622670792857793101914841253399093791749837367667685462623598690451235139820771789990572576039116531705208738506235735965214502826342741055918145201105702163221591972048779890787149225724594921855729084678500259666561470120589547691612752729473810067154514264688947098112716203791069453906789844410631300000715411440096640194847940016574853917236721621384811615699000423978954249331865767286786893508094653947207648395680292007721046304795322731056602074049948375110527978848795309004989588459676071439984307674598971911153792131854901583243647571101869085391211405345070651148261551771312432066129809753744818881467144822912614939594320686023996502066343646554801873758113734157418843310641223367405427879716715256215530170771449533341963868821030866815643516620450883978314982004123794983082829335423965953111280000739699342457799829696287155795404202812886902720717359783428878072043704964717394882030756209417420068333018373742555711627601378750668109871650737874188027994279662620098290285114692726978125640933784672517764594413786210892906740014497261179305051154247538892506313250987432332373539602348828878106159733308705449132867156534356794548141317358907773123384076412842411124613803367156513441315764835547773639179157943754293159391903635477094748071955868168342354720818786604455915753603525065105512335763955077672619753476774159496684754248715814940226779135616348617468895792432415309648871564942528686413824426835623870767014548497809885217085690558901872465871629068244744018849406139743146752954188184785576479604402453370931719416405433042311985616283205818243236323769918052308727537426161903477394192590388960578404473740304351843959588469657525486066663881008404021720080691089862203589196357688730613115177139314837857308323967555152564294248353290602418458877040407718743429828976339540690106531853967489443411612964834848252693181805172276426049094088794113544249701845119984765721768776008881033237480188334318713366546673741548346899585516101448818224424673429129253501092331458894007083686477101642572854678420233807879156473132346944604576799896324462801190961571472382717618131451192775098754002827521641007497029268058809391855608696298605499036370860945649788349647413524509936030794806252197034792534194731502176970874640851184503271931420862711975652395529324681311894012847671722303481803490770332262031704136188511196551514748008919692862363006928633080722397055348678043773646921839380219572884373314448207436854681728662540596237356048657888002330522130045009549713910439699687996644874718765122522017435083675328854328462684059210137577590112680661996793225355466571747347837064811927299360800575874063232870611851315584609879077737912792281667277500275324501276544873402952588270970323881225541688845561010630699715509379460334413811966703835430239093507195058961965721734215864143378796084382344324023701441809753948432819272942335044945542438907241821637411558327145837742046865197886217060537398789563379360790383301529250936913384655477679093626420162370467558451795030412624422803433572560161637997495773364167642025546889634774855724885723188356073916939529962537283495957067512254589321521772273831226279279046219985037106124936500217315627275858117467897032048790405351307985817493686124173136437503722087763193846107626934618337565838742564990060529652294390958204445608286861267482956973969644679866119394389493287285775698322789831400918512199735149340318974349659079136899704734169470235676391838257579331538140496138278998079017714979238947207753031803977734928189034666810156080276013546537367475872066117108691512218457665393246617295422127580127486149746303718321334747690279004407737743060568474621419222280570858513351102930851378431997573630912472782840634967157244252070878523279942807034818986288169971715099875399518840618884305592490697671693528901929591379858525940284787047440716381037001318250955910362251612790073324065210575343185788907264267487092349706989458393542185279117653165238258980904313834178699760525540857018871934763496993971171982689341031852149629920979548369695505873309256897536252425316364433483281907884264872860238960932410339346898068981064130559740818342784650935579485286473428121479724348015239217676837530226213649128206139841226516136145084229739786658693494660390215774214016378808841918489246426678858152664482487758574040029148178103557398046052273612305744186800371459860892457991394398370123680263638832115801604366043479916994991662057488043110773828056892891350636762157063690383892886368018059619654854589150104990632828166267099592448532264101858351902838465110991072805658255117473401770581747815289376711239344893724894783339377177517941530050352944432353136880372328589737854842968198575472434677974030309721268072998834190454103455940521983516042874608763844045966834492071439976363996830269156327270010820245250368878345569253568130316007482557214488769069126351775928836516758129858665606723201610397197292958835877017416070994599621047883205029982802590984859241714458683505849673916615455634363212249284443770550184129904837407586894281951210040469058926512068142343457911611570404790338669030475617562403959628595911116909211420735490970158801540164989260216770774652717516528962501452066445320154869573121828711117093385220131190544585777739604104895639269415239661924511689226443104027912626765681633096714028350692531731108431112423908392018550297725889243631501826958835185490187106981630158402731961463661457301730452887457286051373866741771410038681395195022588058395282228616105777185438976071625867225412203026835512535259375419820456529601306720734902184021586637512826495360957953120219361331704369632404428799518805770193626804626789980539286462306654196945384868324989391771245458717558264190634846096737720938773915087946590100359430697048115811415059428648047913833554095057843307252486052015534169897159381189532646848533100868613112928751181086438425611543239413671813764468323190060332241083882919775209349714105279506991210354795125429618552559627769782966717725813429486846490607688893288705076380902792241323060447182259772283871991501049216417714802007076138914288503252966464915801242484541913254951977196765400542090788407828192529069456678636010344872060323098223177130976058638763894734366229499716114403845321470871250931290813007220334398141516944681662382572628919358374234519912378487135405259014590910460793722205431573711163788298155302104379883381854944585220562958784530083562576671910858641979768859858020655334878727900323665760151905143523996628004279370643828550686512339019341252035813402895011407702347492391468084880726943526374406977106647882189983545603605504145147057736431795715999749499089228878774603649299360697571797240271030917974943250379699445908536488445214588141000667828495196127783179435366571864060564200164165215812584773057630879749458521356264215659681406807851558609377873676009944010912053677364390621526887387132095133139676617919617452117233705065691980585765830836518339329596421886340914392821503655600119525495861786172493731171997168432808779544107397743199779557278763279337058115784613879467714980760564340659889268129622576698871348592162185560962825900745855558454921878390478636082215207947941510926913820300542322818194843895043371946231048722499743990547672360110835618086686069696705887074479934013267215337952970401127414550428330081288386437347657039667876320377900211203310852124488089271117169748813134685908446780960883304440207264644800737130877686573233903491510125133534334863172151434277010250981370980424737604236698298697252865089617027121544615162574208838347328824707724388216160825343518923531602467454430292625413786976067712830864980085445214979256187271813687555181396198200454348400977659827893698470385758874456135889173453176028467311043715382369125097570818245927153835465532117752047981791109944815820805359066646970673950272189901458459241679584756327961034953274597826075105448123469353834323329988798941846871546951959456420806242752567948252346621742906861842268626292912293258817703230262080706222361215307146579100061853355561427422513045850579810012020046391491740723193685974595728031120974900366565654066439981318306189083089183797622168068413952403391546114512533523934030187787709583803459509807313432651800395603159688938668714427903050421104371745542115404441229702862198857754016886057112869123955081216812552513997037784131482312154266935883372790047121384176192471115630850508913454541469751833489761539010664718570762953076817044315477437531829818321887291056106352856196459039491295443978246233234245631850397080364709574164135391285602185536749976151577836715307439154127081561981934420319962714326828819881840708084378275084716798587546389516439256744874782180587998759217814965567401324549455041449684801968300501722964714820365350053615095310653114791098809676840965591357945887975639564079345892450150929288537035572820952731583525370245959542409530202986235907357515321217653061772650269545092666209115307889393836148386304682674374428538617844308401846018848628496431386876061813808916143768745937088485929773474564598025462238725396799864228089160960323977464474031308283226691952239393465142018278030360745849150022155271900709149990271347467829815554346721602798735601625473408023196246810341471364215232661934428916870438090739196384470215664035253246761629223673785619500880711874990901648371795311443310621300119459755936675211518779052080088008147058938806415892627223175429769263138321072745125413469028281727973747411685442690774687273150605623178879744542365079159899463767729928532125817762648480649132370917066733119482111610534628476205235285567967432861350831963125096157944024306889857231764183334259941314730486572452184956366454746621549502158259921852104180197204758614609916020156235050186915260760849172466063491612815001899727011391969452177521727048615191717007390707441720104410468624890693585852404691346354768188640231318439785548088757582268462688372751062911714952810841753974822816293357621514407601906272818333941285235938920725060355344391076726491846586585069818752373633494310434875875302914894338412370116338822670950962413690013489047158513687204839068610960671946463682312087804539841039530520608458841187308844497437719195388493627297564996512382516619721974604662462412936687484337836393923593889822957982127314645084450249368801061663816632562870334095481726868151432223527272894173503833431961321532808828109062051465516472949606264941938587998315996890694103326118448050975225726776933355141963226881427937776541206521355716531538532962258300749183883079595641288800334990011476066898183799238297681447064111996546097766364911938991433767085221133184325716846241587392876764845338904995575000990431614698187818985521299427195338732751959335399002485604868301868456834292027488778264822267285089832368833938659820181853222270736087521788597575647818686051976149450669652157785826452109287177760452608796025848821688164744390140606456759456213772571676269705138289259725683075874811591656513906749635915347587382575450042310331543453042404409051149278705197611950163560019631822401486061526082366204915971532170342133353180385177999571755992150207948906240023896729919180166453215352898787017786114399495110427804942382944801044308632018932426140964292237900034221199373845044734023250482630530463982811951503660062990408755951641396776199301111810166763992912743739222904276761139657847389792615493749024997164348555517442402003559934309983205054014503508280465017254935082397194924889630682759719831158877066273354788797627954031783014833646244363033564660328279974239701305221686526775586403393545334298729451440273561821571526875606076848298170285073474880451514382672560244837598117012544927809530952958407024578979509631120278739714147014118748867685297903160886757522580522694445332842194639920124373063019158881106380901740052637677375482993822983598502242535829888678048195989188428814255813198934861296562013798535762746864917260101078164198996733901216125004463051201115813574765708530222501368730028237701412774003457922903729761889495986391136513790737608542390938925495240716789391958387980478030446462989171384941352852380899324941659535617539370129955602486997550773243001665179602720696144817325772999919013770807407258065390204161973972369837091369170259635688105789807281064218578032859588640804145732818609946188730691486957248098747703107097526422453583242830008002062087192659892312653133013341298232564161023563248997532270560901088094267766035156564036457151475093055159896862783466627659064513577092017149964624555689593321711312879038537017304399745170479191821641570262723331045291687410915614435063316408608369295650123541078322532393188325681168366391754091601829774141508344014219024747012202134656755366689945667694588835581854536478794214161390663815550843841922502569023253183160726196135428347532176439361335273759361695867254916446726290531215384195571002926153773226399916785187647287208057780329266205367083355514181280449618458494617071563295573990721436086718275130235133286213060791829268667221255784803858785089906337402716507296249637956651849730002311810810122832798725289046052930615416720392476168850900825544847659146634902584465795124904823489479368389086865343172073126977221920506005545176029459066492253193480808532908122495338168293018068178517705381093878125568320661498438220577753436800043334668641107991470327464557545771093736536406722415489079963216595260057495384539532563060444478682718594967143066725271867212373186843265978519676506506980248539712434443955165136838991288382516027525931772372188298032329568945124035264154187613071966663370591548313812856452076806320782995143534198542926698411467244563842949159379761975759347361535286768693905903810796473369175235193116376512120821121111785412172013474449494303174886830206347761783998829728061792281384528279714741020695016255129899795593628057268918993812147232585757951669667538584774243935002108310915047738283735341226502272588139809192521898296296040672528119441167199083111520656366511399189444099760625473418926064735979917794014790434689115261518456476828427362200558601918353284177684406229573018132694006559148756235786694509387957854446003270470551362772759594596904913197560189135162460555650463776411040120808023237995773616898298514060820778429786452874790818015804286651040246281595517556512509109584403518757919968430604824826918466116573802181069167533163156029304351982232044771211868386486141738831383523266911329124943728932522895242652529896050549325084817921789749278668531942038140568681356612392883361159618834077113630514348340485625656241293155477206048121942829746017819662101374356794130294747609138628246090165468121328503193258139911905875433212162806566745651140401571020624358463330349889187858887478016275664430488248123971697320989145388526867892566850298792584385861374327460941812917572471000368418434742102011813910092501296964499057729870105436995887672863259046680093323890816730362594419746297821211192339667095382452457151914555607228479059563880854592387129853758115100419498341291752418840265398519974297575274084987424676943855331886741669129587745847751512691302927475575119143305123626799624274543878459170261194840136382325757874329809915400810562127744364598500182336630086657156017996209219719439313241843047243175370682265789374985040789576671538723469657664745634092975150871801934501801478403695974986800512648073872050850478292007875705889048306020330679726972712653397152822253255902236472687574140240584250037911444078613046832675109700030349691658569495020903351006024974672363372145507047457656528909160868527205045911397307071991745753583639191633528170953881509392964703547344867249811302895763393744400626034647394132872902981586866600553193655388619206981855821915694144129310181432817075308365218792092939861423881523966011574420856626284041207430934575193092888783893372424130632677463567229652312930752453083852015061834206452307337907630043971045407616335322934231709304991450691873846814119974463291054234412576745096723750536869794446825710867679824169140162226145582498517544375598198929285269466204949586309434063406296541550509553792601096072433680311502399049912608520292637173240175941337811277201247774534959443295317971673852900239424443423016062225073952885226390799809978477853887670872316358890102944132794978169270476591288917398737328985062583991139636835209728367770379487452173842842411858692576409662280349701804963660262660561038918543219601978049681360313231851357657670500108891369842428912760750941465061607693555525306253367526136378589963722575845559623514228388999445768895152341273390476721945740958840522216471854373138295345869873359158910748082432137087554349821434606804018271312091219694410496154889567551899195214815467734522890999156172848515244431713830845344434482446373885475964450227395096301417881508398079547712166498708129497411369248902116798506219527801314304778884147221885056435198784120867981755264871985731539203152097837352072829744255745144921272159085047064974353425454366074801501944689342067950316419877625489412752635134736043743485611519212069758785262307127809249602977927092956487064851882124281584153591855637013193051147856700210103649495912362896755407054848939959339898627103786684989362231860172345567923279285918100960642549365163117682215050745663936375324773220192831971537614170483807172918386262572666444073699702073206142882506070334383546658160284215734798252472015165138104161636201938492678630750075552237333175187075938440403716877351549135377445609093800769525483692840121513553378793518519778487109043180233298350996174772505283358793919417163160783777414935888767534644207982450654435385221108875750241488967366599603528303391620485941546508615200864226792651333162729448788600847016400659961226478841995318435256374302083038505333848697784848014028667128285913179994736764703335604728990263479068707187523086769720733661716832341419951672948186074472407452357416084780338987246581087161255337469732357429792234666390123657688326205494531053292549137513010669698482826514467175062815995172059174730980522278358623051454663860390253503604810420145285526586300290953147191333469171706474393187574999739098495235761901063366074339545377229813829338536567161658282327480548527998846871784598893166045638934851577362550642591800303301407278543594025534440089199643857234496414173976914634735113456271352613185967129296469640814925800765901583372235757448265985561411312587596217353495286367279381096504086564521050006600562065180381269716569664275012609736246465966073817626264992163635175864627955619917030997318510656356704928050149308620972284952722609377724575754601201705499519061198512755582130049048624618206110768719513510633759859972855154731537834593604379166406640520198879016046148805154014777233125225330360961966376792792570529792068920880437663928066863234789228967769866039229876414034375071478651493995041232957408816416736516376371693244600708689683327738143652345133584437660880791516627424377048653315453640696361204805262498945733234799501306804978825907586708877003150223592202778003112192375326255443072284110642079151891678014940835607341292530277110018196564117490053983062348670654987587517223514786497471794068249186687685467374986000754967408240324532347352853944869207102901802690635338531876612115449854150189141819204801850551695067558575349025687011199007727159576299750643781514569045214944153860862195227861175327518449794820245356856908660069919397918506777875339531192188529465551047045934805257986176039018168309553712601994008627595904572627701276199427360151104272106435607388898089862122153449814604585987271118914749493265438037847985225735432716799409543404034076614443062847054905368434926928176229792829906781837640646486507045254254720679833158535458268995541862349847156589433259979889276148916922712775713598043173768198718001743504944703192725873742399461222425753347379319338692667817646542767746752648224907743766856007200366249465071653289509831712268158732843248074176557894585946492157409393356213193451728231313996389226271606371229390915160885800143208815319457828932386386041997055951981407946617643608046126654017961154772277450837605482581071737582688504902753398143311892909412828921797569850706949663070651579811834875946518932638387689433632078903594736019557577919032139442579254202499692275634820071719379605840896428710886293081259057141453140221342228143286018990638553949563098939762159399358568550902185033303056645544451590165630366481624207038310103101558400841689969619972144315605237655096528780083287808831201436029772754267110558390403853102164440755795453148902313456878534959338173205795695123901932716825490835695894214864658061269726339565869459341632142226521595248837182861203016137300930429354416558369394986413852711324064734635564322346915456782159622174269662729536225207087907475542764377896785786890400050310524633235107285155733199895386449295275484236472706626874914074741409609846850857121064545393842168654139161418928971462096886855511709681975876187136590697732776153098711783603991418248150626180897678027649006475970933779374237902424037311411059865138977897941734298948631521855089205938299119181841593618373461853726386552030489509647270590246316437385424726254794899092749814420849133966592440839255671109540425900467895661868146934350049483205927664506034730614607879880800318993597897209204783196478067643171839758323417152735119824916586128940577741848240246222630302041576054112099129590373267917507317241881506266961052413623540818022988957431230537078153593431873300332477078967229453478487990074328509724843324205408201426287459844324039757740528255812255008885936634538998383521611982768010601713844140312161962824856666843224754648172257675801492607036727798937643236035686903992198416052136214234717698060579469294552015609578112191508375017228182652349971740877311248309111463187366729407027427919076454698555958585568790264853994593144628255833097588092240204270422635794297332996873289918241237391886410472907948124621648681963781341183076014923873743541284540456784079628089180506166307674147348324459759221089421739550009736204944787411177659991581261655636830207385381565305486343404214838668402058384436868600806974634265617357164598668214133784433576670236284687183018747208290499385740062795721192681693901965685320847098918498825100580111302428081929488074184746070680722085485360432400781134299388328076212675350140488468554363718321973702601995892245171587184155720522529581014428738551288151208195455880903120151323550049141164788037173258874274626508026313240618351796785510345628359969104184207824368487554107822575965150584414638945846155089501960266602051961299371580879349933497034867949513962430730739910169791793154072068984226084602105107078711431621896793870080860946381425798463443105269422943135352694858783361591005539190655509866173852332877828706397153856885348777117211497612418468442823097884717158285719487211252183089808194493050688510938534222563771141728815774679111365883128562357396907476101619202875453532345870459654281896380898388681143267351313926902286962443699259913989564519821683570296561372685694674332079159238887230814627442129519279011330882222019711363832504254978684622447509979538030728295491602326664848130846487688688505276381683369806488540618502079766009402785887609194056562821824875600009147257445666855771212557519622428149252161258438196994952848445524062089779508006740912094142892662164231971615770716520323673379109349151711180376034705298737615097800634004721194444901033161619697945953545060433033579809759292766514897551318816763480987399387935834233671108906477648485481634234813489960142006832031237025157027682615356061279763843404573271292848224005476644578562139734230161715162618317828761736173892697070745907779649888890861732113446351633462163754336011550132224489317242509199993957280713245566368992092540946331367774438894894666617499623355844289831440569366994229410755814825695099673936560322277689334685285088512513927616509138876651636755404660285074387075884196018257333042926466408406910874265409567551609094639027784328905128352404354491960623934011023566915609237605956287129181874821518014031771634646046221525992547106608412848681793729204871963108095473646580786496199887249433382292151945516709458043546301900812281631514482763333967463302150870501252948536045507211242306560425415901543014868317191781899673317192721266707164068472238746206953222270667604204033447114077590832115300234106486049452260722800225082591276060708744354325963861034039301170480101138971027524133128768368378179415555264392013903019229252719966845721283398578736764706808181806420385206677518703249642221966501334233881562255367155751351137220247865934777925520397843431771860185698670309647988854006426726557474995072244246842276171002783053074771507814892707895656378601755812284682278797865940626436220038251318986256344836286574383018731300189971707542479453501311292361989986565418464316158074166835964086479189199280038483351234303335472570995693947780377527390913923195928234194866144959591133818791183247430605053000486835669121143603850622171690913744144811106335650699576945141829613128656372815978924154918039596691847174666662677007418668529833523619738737108994436169422144147112511191103430186924858907918731495477226449325480605521253040947949060670906481429546216678125218189253075090609586065267682374200030522565060441327825719326957676940686727648992301838659172837276722449454274125857176675668070601100341669061032545052009712435512412501805210939026363580834155916345567605574300304369239556399666278704931242220901945982160960388750443098434594387658682716618358059073988193456297696081464472522788132081093707313662756222915369614995823295148213204263676647239254327296940290437813359356295479226787642521573381656842977498967987530791417091780490595584589988272416897313042333836797228939721153385068630355389731936528629779686196181086523203804524262551513605954276325203083675332239915444964835665060816132694198036395555266081749694891396266277975486973758428987317157827334505048145816243199231312064636432632382138403446651391829292080028716770669128412339501384315484242000029891369762447954509061096159564624213263927007788322545791667362005756314021709569388471287372056894440372377179991502133026703528946793547402133938981480589772352874579589290010769971751191546047272673830141694506013500395757067261672944449184026094142669145012795118648510983680425254041168614031191184251138230016059650493908862522957632274211012730386051126335697483619762630321446130654093176578322848314645585733936659627306495576123086398623323278189121789575546219532629607182577073432928159429298034435515798674439294158545242487169507641233040558610140181788107170538640165496984162754454147842111560029441790459841908553280851120908910066977190299269401249753035978472799025662218244557003004555282344945277144255337905721167525383529382725810500681745664433277269388819741105846515643113075910776208016679314990397133005254192478268726077900368014472689930290747105128963921884941007926401898722417323324701373402898214498383550315169822502149751048800344936357851044750187400034275420741522270953658834306570905779978365089279215525555055216896004357682838905402916946652352512568317797150745248078480276995725687685283760692105448507831888423679715889056397767682007364226215822672333476129220771964642108296374542796711052721946222591501396389023530024041918619632103685378700404694155775998070507421226589161254306718343317781125577532971702563675890080714178820294879835396106639999662295867712435701010064201021604511820424872229625147378024197564644563325671583151155393207071380749397488402422015246678958034608933692633044566635637361503675940586745315630174620986744366817452369667377486707026844253740017057295975123216001796853637597994137306831774830544185387158666448175640262023727103972149493014897813302364157955366481331706645104028900807800908400399545791209618854433852284487554307598423760595288040620961821822364017115534208916430545409862736861127360902094398732571439990865266157140431199208281575737187579643917889180656407551515242020763986841230726194770849494343314122700868846726821891341497090982445760231610114826304842282426561781247474405585552227503946446461819728142447401806178154865741681154547649692653323913717921452744989982870917178062794410323740488294988402710720157325759551494445790327403466965217575882515090328005065366979976474884525440677343259039699881185669913990864963071128012855013232576343955886584837802372572463338856673623943185132887787865872737332261656573273640016508667910692828507333782602844390053083127626096275725280900655948055388276007405104314285826780349901003025059045934273407605075859817986191846756806621482626854570283857515474495330957235351743071477535683358499369634792245694182894395606610231158905487718868922238974022272600247501552942650784602056619880839279669981165242513129921817737301577664809244049686559968785598888163001994702537978929630390736268291490929359914259111309264646231847775036281866678590857637634766689821568567220965131958141462304441907748895494876599210804773918501530698019770009185862181295491290107620361457753303211487541545719177948917421628671396378776729158975937663803060042449046488262747190177687389360109645409489714368569925314653530020015110974259501163647580596486158689662963068163189144200442787679197861488651752465464675346451921771631746065775453945980397542095002054768341338992062532388663067967101091278675695388533456492186334731727944975471394325191595658386887598020963422212706351409691451590600036554708384481547670774003330260710731481053890508094258962527922137120454063186002888661583975218452854766539953842112043459094333553222556570341483157595721873396805144572817448276635773130007079672925190793787791181466831226446644887991612475851475053085932542454790852264400725538632211469783353859839137154836804435874097422566830825166866869034684510508539813111653177481918036351875778885835657334141862929033379171727007853585859850549535197109701296827267899460172505429917011934780948769310213606433882472668269221526207449719067801693614780554449950107186578712912505814785498759599156800680659425190138884111296062039744480128811117092763896127661535335345537113109922650827061407787030149864912068079081815218205061711297143349905742035968861787796877986502853407794174592820055547533278294568724706533710891406113166313521672608890499204264625560858673744222360749675933740388273121043830986524324384881466432180106397496299620351300494415030312618389177929366496647338660503757091990687701127939655674069384470086319082827936461400755213042129344638380873642608411535199914215367323044931171656227119841942492511913598821290952249712412125351001255010380723051792286695454783479826589708353509253682312561710584186031207359690409360261234687269837103720900178022798275619078208099208499092408811883291320636461826789941641347329532760853509212357200914930270573794909237398501437925897204940167865593748670572145543135620462431991079853716125608712157633792131916252952828741320501959379608084089825466897588144748810075248539272844361288575816055703893191539271915748838845528565822197082905982260012777875833362190370456022753157903157421294849108098193786458545283612608619308600645335957698362996033267616791400343320759483196941049134790353541502652507189130924336278716102638541451141157363934542640160946773834591300042450929003206661183312538416830435304491287319072040210471542816114258355200107579600599687663115847263713242713921952500632274870343589120164595730371081907450481819631196768026126607558115971605940881395584563362379011644200646018127334377520065939412324515136888302097384417401540282912861891387713823872102435077251177142443212374739577802115090846937445255665742245171690343644879523242074751351081135716971249604963173401032366828518378115854685205116752501580756860985299421515640893805010277912252771587001225634299182430247247585210008819998949502488447483281748312152585792027570320934244412728783414415306260049130923786001565882908527507542988361962174108979867452249322556010998201147504219081986275962642219454452898920238346993740108045631521882903007598612781546706465234435147168986809686600018208514522104984796853783924083890036418098276690696703909871787894906342571125382111589985436093278860297848133042090142577517679638766739900932563245290997719155789386684292921434765305222998986683377599903834465429619166866135127227574364676801338441831107606207783092241301809366282967340098017763310679394668279390408921698291116002197801315353709669606142541102006048522975973423416704072133030698722209484389805859348850450120492064754866736920206503882729425832153226083195516532722159108357761445021056296334906175647917715710891712075887470225557667274595922582007878420687579147003912781990630456182191207089286496846818442815161512069679364972207233215119781698191485422183372717077379949072097153915135416837147850912703861550914377637367788766057578754449026264779219332041979959419784152024015687769075300091736868528340951986525090606312231838848580381351925950695974335614539167503106560261508194395060481873341044343772720185541971701516916129296218178373683780032929347154626857967315001328997822881085658790826430813484711122757367480112676000172415333174939256895060141274870458371298823111559408149278983596562883173710581275968758628961326560126111983580238335388878275608212803955142216092034550443548762840428943856475634578265662912351683134177273928215266294776279874220796991225161314206039898422461218588178978313949443532371173281062939788966614198173990898287568802708177536443957271409528468576844576903856229320536593969887327926622500992334340728911478963689817055263756521277783730851201953405077289853743936961825766109952058111790373444383606756044226826083015669167277694306373161619101475222162622016383233510825883180325037779862084669784021648989491122308191362942297499196776011080592292271810261251201375283393077745917324082153342348247987942310756255774109024258713250121084214416066065570148559825331924391336576048167969200282692793620991241087634512325750098729949214842714741949479906172624818972398687949945708329380320785117873871370692607436667146479508347342511230773139971591363003677975243050127596048174091679443546566246878708800327013591605859314469022887322484809081197519674229264105641656056706524725462775774368095916496463764221753364757211330389345853363540553246302911773252819953065879310537219338620518914882119347319948032274843491275193918445705885909768143172891226480300683088543319906351969682286230872461149726020449288563077142659630721041111465409186032733611942586866189473050483559537159528264186535009157862913503336356174087207496328903200744429315028508845197707514610282226324223524803734197959919140706823691128353487065837626870485947943917362817416425227798034422292724394426435113909577992998956631963073105177891912086676296362575764603155611931692730543421033674503374718839855985278385928630873348161067070998546609992457404115851947668711790662567081346866190803912923165981984342089962667620132813950876545811831694765410811461464501695747458203512681565819153378126265199735517598264677102832782517120757131445405848577977054089297892233888356682868870428017850802823476557147963550359843571248542137551983933958870245057209948418894872056449836546689815481016597550485682740197982045104816626454741344204698321336988898009233970359504949932997936350462785048626309055416333828726991020311265697798713602667485311771448669977172208320598794185518226507419240731546910652695360255977823917548786409080405858984437817938339526308559550137020026805160886291602702830589266894248123810503069863761551481400803170432019593998497362334635894739526786851399110548978453675570453719395965193322907593267152068852240913475771722692386485098656197063187439131694230423523668688470408792288361223239936567276878419649346959784358723522036590675702303197315257565681095391961541209765216595634700656150232084206384990451061175338941991855219183371606787334750685939443245023231236180942496808634689124510162016273722525021225686306225179215682801337827973889322124088951653032580484778686803352483757264487281331268843183028150229308841335018043087632639949222464437941238102403701489090313270922590747045062852246347143861492759487605340622595136274463565437524718090671441293225509603888697147497264250662759266071419852323114939387816651473136461683919781394940824693533874618287475843548961664758681925209439530196044932823071098609100780173034649490631684357204552069180128461037898765839944180474606591172491971317623716757340381054262732277157934341293003516634947469674080085543202572486139636577204777882244491546839060095987531116710167367943592352408153541733213395328233526325285913855299283106168311325835688957952889446430365750345341939073338371290356614238670299296554598043268099780493450669762178254040614591216826830939344902982121781745817929641800353380118416124751675298998713407567390888497147400314632503226299936920758593314660364841916954608988279424604866497996015105573916546991114496431820926800752724270734758893071831105440596271542282952377595176855995000276883444327381671834317715907036743275908870672636359968652502264564624333413952859667727556960448302377470112050746110965191618807327396298508064651715058297585684639153156842225785553450360176397330277451552608428552459111829620539851925643087423820157740528511891105331101006039474324567518605178403525729632635811994931771470575396533822753905953964380055364644668487316672000619629955952825820230599505268370425401293524925513168856822379253482134594592333015053861441472159781490696137270791983315023837594684929096016881514334305829469618811818045845400560732244303590227880993001247430065866323453319491408745597490501374530497806211586419332831817186946313764445702659107748813656434675717662513557953764389939574275687995243035727303721750855165269155954682059808041497036901945285483094245601358943536015354049530604479026131083364718898902041008263876073856789183062578394180318895869148215255362989977157942734943385584519182270397458814894502331949783820503475379884505467562304720016022328817839527710311131213865464830158606854287036386702858739157887589323746474983812103797863603056500688571000561390843815065802101773660219301815322709982713767258603538229397578164268695976388596660853534952013860676006428807446534089293103184776297137282564614079891383712441693918253617481723401789571283473410660130927502714262134388258538290077688959768259272029235034650020025772185261441246627022127800827150730032545485960277616504790474136600901069427215599564622903100923506117409599380771470965038776087739049635081697032835879153180757707233089008905709399674809320312078177786579616257145849333208140451298482222270770776342368110354468752592895182108192267929675550927180094154629919875163461309277951490084127162913947967253740014888680977010121247876364169330850473284045392202132656754688510085582596620631758249649310545675383743693234350443876065601333311057439560603456390612042902627687018583895329236321325296691144563459822376977549172345211067051260491681476055327201849891783673557596640464881756680724011627245562613853065646836981824369241177240044127432901291317481829128622598607623727846927029935773876360134656041305265516790549385550613935640679839167603265752617846921577994905057264704557895693226790278034650649587944877276877435626486195833287351681694585015994768546778426222894979793850808563076821061204907011278211352907145255256158348819488878341923724020913729030119533375714176819488723779697166740035475935257852741490613222039877402437640434475581057796552488659591582232555773329444056182358689736654753294182556038268057877477196343701600741752940822721214660033582146341314894903857372838963642441052977615064959618032850938707185442219569470108362087604757965884147175625307161766067354568631007299555735785727748714960878407922802177498998475260996169408723511201893026368087766329163540714568181455172559003320594236619613432824285674520456761625635448964762774022002469833040387718092004071805119473937401811283058860348704848403898579996293799328186073165823587619440460959907465317997770103908139647958696058114278053841001487170432106717882280859779680441404892511559691109864143660695173851912349918743373058390986086821516768170093559050072740452508033938869539430853505873023382854483173262359160818621302463425982106636370482494324025838644251122187143716378667879729401705008914971430910269695959347020440478474063566795419763919075556650347608561649969917747254910472299660418577448238611264647869375633574880969906318458974499100488475925770823241722790671267943891263306617656693788437513867337437629526980156081365092940349351101469197019534946077631786643948243419722364087238196569375482835162030555253364071819196647355059224455970539803125151683964465252190000981260301709923263356913150117457230413607559043677510280431143279987384884929048313124015269502859720643461468652014686573803313360130457762629866583084077391892066468918638111414649712321568433670593265237268961802683660014779542820453692693390896993218520024614266999608126973181499359661306452952256392910537475273520711303797005720409678513604520789606833221495528011619893942930878703830980060632659650887800282572445246295707029724122760585211053415824178809285165821100090179584238682963698561217645779829911430265414428171638365454797714798367272312145703712908467468341992001706218373418364215455431649957910786353824805285345883177923859005922026610214584023202419876006309830280316835385699593559583774943719368500818613470434871427611461063848285960542914770449500918449806131081175616436020958298604166619481922766448588341653166872674134490819058402822547790712254410355230045804109525964118639333022448001966105247822749575992605288511893088095339348491345524143867786758409389426626703375748875570056570723135122020912663277574917080594357036342913188290061154513708638323516228459377319249563597861208089665774067059217235968309185647058376337999523679825023543834364771649116102493091331415356607600194725071803212515629649355594037260037245154255658168230811243650343617229661816406216578896201642952282115384359729225804181060687047645745107372631225470771234214621798029768029450816022988968104089696542000620029137022369941954927109163743171061141641101487490403645576883150814228065919604085479160615805088844825035692800035528866074168328776681592674345630725153366197649823427663067023178225193401926926902784806471969265249624416550460843303281742311690315671057854107283768268692204845428482020073857457306952337503259894623146082553864854048639772038263198839236295079394770224289895830815329118879066050851361501138785910050806641246694310981322546477090621062065977550480180181955128851532470227454119933952766117046673331450972738004219691751298643697462979187271693268256411991449488608831001926328499535547254102698723986504420641080306704366098209910792228023802581573904727155910445169257461936003201355168872879246339333498652892946348303175763726786003286347810546815456399858671277445242310746372227731121772311495057212396952069047149357292405801139391035429726515886636108079859544578965608143313794891483714914703101546632169552705827684201973905114445832352430976075098410946515895733558527973606218576316347530916342593771481159772360857874174418204024564975205844859079550451502487658267087486451652656228855763994443111029639257514948650029931342923909702802424532329935925169503595008088976331703384542274698482661899029351587820194712845404207407577765077947887987446373656921882624066836251557716691515077301762263694765574852311099169771115103545495700247587969244448827138344951571890335211275550289059098607203897897929160824172130578703066528922031874216468449195345724310359607307035064153647924190097419210103238751258523038531472710125449187149671841468864316731413992249365582692674378267544719769244312876944239710436128333494592642352930119673128879657898871390698019133161188473585746048984834698070487951159821346807007292623015379626833651945043373249904484424624571724455772588172905774711453507952088338872101336455591083891632967434021753559291257501735378970829254781306375154655915033560053361129742625873205746192282380280916891196815278575720231745671852777124401304256337347019035183887090864486083254111233577587915533622219597923798209717433808925018625393544049754630372123016671382227761861883851714017827851717585834936365365607775673659410250841014304332935919078984990511060509601843226654593339682536303117921116639440375022228551129433458156185644768942445764157031344595615884215804682672814475695573544404839289849089091479260213850596204040880308557219614961550257105507417475816387990224064017734080773278737921811645135461196307856937884066132295646017462645511768701178307021823400194171235358820850610897350588497462787391085167978718238100112447940636274958761746588570726545332425492423083291716554182046182689978377805352332971694529208583254168282940302714314767786637174540968279688927176192407422302610368827122597006187760517631910857517111319674652150858142804718687402221851435492652495222024876067769420924062548224209521590318303373099540683586356734329034525435966213331214179227004917694474776163196062875892678160716924902718398528695771397599045451811248166978753827501209498454487812312695280640330802817209972519412649338580134865476608278303467880972889939117494871845497547971454117145792556043081931081118431056907000035190993631133545973256724927936920062191499493649293649757631699063149883183581870181382846061914330715690204330693539057280555459132279755233136900790671824842313068867565921017293666661332354727208211711658189321198917543872368188976096352100194886935652111597550884989929200706301883626877342476190915315959596700853647820616980139194698318544412600268112939724265585774920801173732712374885162986783918428447538930038862511625537309676109196659160026368789085479427205483748769337738179156164310201058531446914120822781835723234027897850118517049309304899642135593792803035746656834919340281094970465918460017406828955451642014685431489973505673851275268940506538584533218536594454640205323856383240565369784781803580696466636201912813384211586423754388222257784255169467728406830146736605679009287792252857045659855311514955534133722047288543369698587955746628447370115780342965089119430221190545830902153083526440774492906241080922511347921203912867495620696887116853910292010586349152312884836927920148354093142597263641795140674494858992110108646118791429036291834530541391099477834001370604490100093309618974001623904979559411112140892774636226703451612318408507213144245420072784835397254002535101251467889851920863208750027219164321823438727574731325535080558159949141735886801775962160548062093920244796049854064866295363061527188870025177913505876495235217933165037848720333065116421377757213074902563056839109245845243809527076195060156101890500115407795775530500935935821642165724825740765769767990507388116703826643641921213986817495640296950917564774569425412554882153072971501596740115849052465419456212526334523958627908256779491313880348625128313759847216371609823216876316482214257035225833710835357259350608902755614285181918567626548595719095072647088734016746197738992466608042506419309229411952530614184425082566792589940572540061352684931070500615630394877264887342406144491818114317593428126946135031127536506706953464927376111021856603538170197678608471009744160134669365860230316623852433077584488009694266743792333194824168556118722820010259553676954560211353020297786881068208489417443641359261477878025316317557911247542093507285723293701903067482651008409359851250177293058210393818523010477025474406792898963462266427562809606439359725883318137286564139476122054432934616682913823014953064564049475835987742537950490579404200757439469780247963755796860951130880295123785068785296073098584266531592685910044480699828461498276789805164189180441155236376371670735062998110723675375015916622290499125043732028581833766348617000761721015721687778412332137068745909400570979853933798114513797706427755214935741390360099326379931075883929417108224829548607559569532665548447774540745617320848028329764890988766393778795973954382184113558056683719834925689748475745033247268370410833390897443686467098802415265178362632517960861650496485595307954415686869897042009076551212298576356430005340270650067693765639547174679040850699623169860923773875686766547859212345407642287927185701356446357143103183882369995717030342877364799965783912253773301285223282881683971926778377253125799315041694056281391500906301184142102481295972684711041911903339144903616239343748522769755540075351280224061136965917117585115345318874786506229491909764635733272756238434910324979094951950309960316681466551210521374280101194933260235658984901589099246387943989865209499907227930254957973370401818401111555595135553855151105036099756919454490035080093035000373854640170975617057530427922313766120795195396047750162577985614008418788142644961857306131538937177601212363789101901136927079678417631572324577909446719850208715889585844525791945502533702883430597244725729460347415116553932909015969296633329826165747340719658323999007601842155615874849553694071673606634728781189533466204125066237728844234118533097694587129386475934527730296220568176026331694964196944379032288676718472725106920936672813914838426243067520988922831792410781887177526016956578709569163657131871025519506108028086760289212679897407414542991026638842628392945883386742122895463698836634909185096103295436477326022327798006553157469827916790020016767617948438557108325716108424047678372305079616302045069446787784221821609019090501614062005764177158099930962630367639238574558102359466033090942526634175661265860543576765122494455052606493505270921629575669255554189222301839638234247122615725685551970588100963731861755873917523559665822142930936710643164333695388859170904317215345066562568581323956801984586613182129677532312730232665752197685278415328589860168704146814241100499577665466011957870770553631327353510210376752528440001147722993786233553673601569902705386011298935091762098682595945308815531492269895955962434247969222763420435764469467310899525476077747515508012905313421002484759112206874876153708607792180861379800657203718947322431535566443835359405777059416275717143293076556685420062078175534693379540234030358487195443115055171958810339482016823937493993214197932666154189281719612482005013569198249992476235230394167907531866700599867043047095088420157845171043082750759675158815754436084198715512890834447821637637796471576210068964242955449344090321316380488366358090543556931568451603338124561496960148790307405906897595852874461877089817077760379519873332193117864149572435354726149679020430088642999345023466816347544379378796355316560188309033556057311553092030969154263955448407043963853415883274200561982844725214986911631041553212618889903062438173366141366074035412765835149126960458946432733673477362138622519694689381366903609727279474782165125463225399533765426786944759217309708439328867289932195684261089248819467109993765532074110514062975727788808266911238821099329774937053209686348231031109910849675637628001702908945083951217464216832984789559781875570340661786127772926563323859747934116958189747520031910941834276764247387936776637275268889522182330595827076070052055140676612808081784776126346920684292629453878113288753633769259420341529555935463179433499131586072399452251834345386542265323018372532846981197035431160956143308766713167926114709992838711630907817495345561040697650823295174009048089961698713416960884650183627006237673555718418675812946043480543792144433572528049740861955900649867351646696888996672230627013184811197208938137990403943484642434003898549150344017250105194403190090517124044405438301500138111052070786645332580123438227701448739857616247362286824505508788440378169865277575329259589667215977605334670089702589278239865877605238879266004046950861740435481776238232067936051089743609986455126133548841277199525712882164289724184438219773965850095949192925756376547952475707937670335041649995270855026608336756305991318253521285324589368387760048680590309417571230508161151135796057263425924453662996062361365196311414554233778252780612492845099607619092368702636912816897952141058562484011906190299675484109968104386167546558779127736997720934533260694817048040602783967296201454758135788907482680138056307708519539399699601003780411941802203268458646756214990226459345134591845629730658201923322084196390257187641909198032680930365598950771417522628460233115288826449368526228434742896317676069936191506520905670349620330677863195664391647066613161911701487541501742234757911860925009829110333280266096687683622219719012771404785903668088826170603916893900981315119083160680581265546976301231023787414646739908346084086010331580638381579177260434745451128198149909338848846730787266447608513442812976281891010780576101143234477816243978627240608949946220030865048727184385174151322155067706423004480513977435386284329981785912681318549349679966080877737269881016102236082038345195824984344016589640989909037489967393354225019938082766720855749062605212364107085957767471273175147721850767300485118849701158257443798145625744946119626954867990804530649059920642846107963335934795067830901015670368228282053105000167324603731463949160406441768377772611451473108458466255759719944451305727793122769439663592973457856899483530002561601143353278826423523333799205149378168785543042426418299474791900496843426257772515790293744199889348989320183328966226354747023144135251596488859962878257335297684541484586962988200505254890363425654397465663404590917941711180060666365193322758595155310640060912760229324553792228926096377152171295273939953175729054639984925751110203806355488927211179433678883008236244644827463014224425616334099723618823372408217061314141489602960488485263535409707485866643875462900446782307423199030718626535783256854806501765408447589427322507935232336566692654659095323358343481565800398409910115253747470839055106578791522778749213314282151238305547488875843736295015598902473204676191295294202464630618872987649757405827712738303214595366485948468468648834045984440611387100714762421082738625227550576349822607254226589735968442255610222321294167084511276730373441101486667397485338006758718467039883862964995576590696622442456967796967875584319678753058481322010516662518911016623971813528651044993818059878623115398628420466609985526124555529445501650222663316635809667680087822529186869096112753622175783463420728030904742668828763331060587908947195695484067423149873525758828323847788757044641634014103244522029789139841837367912328762744566200478776981743977861821380740360499407065117087170708317198503186090622408730526172214566296297116062152124345277155755876179569768193606224696142559029962901694548447675910799177559234709389430415150882686210195505819789153785247486649727053639170976388589789013665354414413314928013906312484547597855137518099146857899170823022012490599196757483209264405600264903769689304028056881219112310307888570300476544688086652121021643332014673522889214317721047648616729400270550850580642606853445892575839246735692451049881727695362115691921096960520776117482719901734533289110236031359580858368725987948718099306091728126933966859100259488105037105751981551438750336395638892995389006412418824877148759717833239487445578096384851915125531553984643633943663751689239296289503159783406000770016391052661401233637316131398433475808940190682524965760300131083088306629132314102066229998910618602352180736407288450655652908975400620227090363185710325420090538558375315706956847789000868464705724429821484103165465114969341761928677128505586641702540373179066303343785257945623519104434385358923763454497751178676659181271215277023176705377279304766889837352362516182118179737502458891706864102902434694666316702348518914601244471263073849297778417810273801530991375022854773102381227797765990598109515765873568676110582031446841168595502704272462501240226909503974694940415373952626494749208433214460444876300615593698540357722866803057611019989956784213358018824089024305197134159356247241481205383489202794740845258311965116201218530251509340709300878318814880643850657771350803084285778523689018289550301740455228937843067382895354466075637095418886332607333281150549918457969601042796135037230438914876260173674826115034677878200765343993021077177626566226687200882960835791620327292419905011228361774622483439977593059582589055523973890461435020416043057432117885516304172332978367258768932408403840725376195211958484142753361076735552803791500794081017987643775354786164578109464771814541034208056610063496327281557414568207101621333032192368828781174727599572845604116756135515156875642935300021541589507448899399964668666814649517066628964085277627318872898389283622444655617107641265258890353736276276292641085921263624963387496948481574465381064081874284460128910675056602089072112100153596392248242773797544641116403628749439495735977252632039731956687352913390149994942865536098680499411386684468094202640135400482274294062249136641469736444472947523215426025730081237634048068477496361180181262532839811252004385254902612872630630684953560780640562967956613954210471739015663270896058220256631142331884331335359481409974207740483992310845530788062861587072686645086265331364128369926624725549406471559649804406719283868138378953770838110385216188637325429302273874136084492453107328958456288999396669183432411134315214215344690986257823280319757554706490054161141947506510499542626039610745742183730825337992266801192061479821661149782175620034162681761643989591140963702933981459611503592772386287911631116377792446524247489649754514693495519101087622748572532649920579196402928937323034891327532391253672923525833035127227474025927484272688572089175442645317668884540251192634507995715006830676310288683080614311228590355517347780581734152887744140207836309431921492510062157245605942787854292585389766839820781194075003746915751611289519693449791417743050889573999304791196182747851399774294796511691952887233115055262982668767931957426541273818414816608647050455344994216628501246213942035976330830789055349476192614285613759305362219406928848261423619361687132852016002472754262717827186847386430563271044207878727127459872516311008464848327422280555538637684610359473366145559602990700301234249026270146957429104181976826852146236993669444479753966367050644516355242052882741624204694791745938131277760681425905869570104875797381283342285597745189451268771198586257982236529783364555014838757864672989631636034494389755849524244583728435605366952579931372913407483192458646634910641764984443189732106371159396715323967064198665913175258834111446947236864156919341114103069099680956298219914771941640812358040428591212952707004552421039175540126350067278850519473550019977787820318879186202236188624521342328136436273869781174775814791289180175635755724512373612633282398035898192923412044563235267666063598641179814854593969304244301414955464507737314512247233804485079381540847430270181502800677823637437437021213174836769002937481502254713395363701905976950662253289297996506354943197583738108610753290752496361557916809065384750455046084339497022728998300264017769087972135738448033571724999254857140586269703772733332575944969358547916716036168219747978682593461190462367856721916176295698450999441533115459739126534270377754405000521681287808918793472178144137659139511192217574764685934483918289690032545679180148284191950835961496438302526784174332430173109423307209575510177886005558037805865198268372202296739591224583083732286943078761023957083939502741611948309073132870434500443209802560524819358837902356828669904537903185273505151343029216352459239450262024593209067498574031733160652423450991474244155412443256607492265808071115535935213743100999861031621221837901919041324454235983739522666348011848906024661848412091157788764358417882256656219650829760371059440117657950877814771664139185156799939073037861962968528886992557709250566268415837121326219815089917245439566035390716632319115524841605948487192616329612249704193782287265988364196306356763158880886916497663609592698216497930135303928519134926730202341067778902458715583927694413981693557506817212036505322504833227926794567328137843171024442671261229465385224245325863833790307446662386974095381113121973600961528814674241126706996145875397371227505321081402194145126532945218941780666576985663567980645492081888076585616569750403748697070819031884748318687809389848792842762079366209148626929243785516556432756620256951047208630138838977907858544605369886759264281103882796388926708083060053363243056325300065634939609099381068233646707624276279892881336231887795693752636999357400355733780359923511604674299657655697304271231007130205205578274419465930042342894987606569623750020990525203980722274460550691317375462521727005120717255826108044312830631637582986351874136773518294928418430238439920291026457706165896319675720627373503583892972408955453352212424702130724304068787543124347113837481311696695497068808112127407082338220952729132436663595873997590479279625908687429587147022871573549168546000909570594944869726757288908954405640965515278987122310668732540571337362331483367111402465062923315272173213412160073604317605197328878852546025028277448729983370935795348370376557818657124617925667306937503017724327839849576829854074180120315121309281703408342128002100778622855605033068005540532651077650331860500249984755525393175391065136024430000756105171734016866986736093122259904184694647470450056129320095365181865201575410630138156402789626351160275759861876791635267028007940550959951008619423366746956708215058224177485789820912141589233368458195188875803089419242983694566339229038153419852056077962656093391076314113086974712853041546329905568223436142729503625370453375467080949849125411091030353461866046066866770424580267396323868850524832216054891820299014128795218109406609149978832427706603565874595074620759740832854581254538117281471463125922541901267937689501765273611611267817206761372257791363443727635899969272639226424906967913321196234123743613347898664995690811674411560971269326375304589025245588279633868047567372536784079298570292948940581058061766655653238962030264133508828828635637081918636374097128782632571724269310418901616667921629975564045359706660292801338487168551076631417625549060785155144234630238772192037579610537983233471867647123315310989318211756658809300076546160791049791986873461516564599575910682160312179583957502745147883986487044805014134155734695115097628193458388452890762677624670161184047095288451232393584880826156442537691439622834280297248266421587412648238510481425166205537394866021519453894340731445943840628511664440414198838626542711624602204612020022183977424821750218234938829481536930427051699137528101196552157137289686840726399596667871842908576056389287459424911048947607121861329474501148676073736449544032670126945665900206061515084741895344523358169664432457842632483819399586691705840911981654225344446312492998811622019516691012236772317273560178380290687186254815551858865058061559337345986304687931523172634743943737564761579456772079497763551028785828115326564685306977687327007327912585584566904282329219892663217762210700574844136759691812875484570204949963224738623371238956431430415897164967620568023487885576362443966665937128075996407395219272035125070563948866469898840010784461707313451914692172699030941459926733822795615741287093207039690933494063438517467437443419375146813698106783671648853916228441610121221435040492955600588634903757842619743938462277480588158476040817600687994402511508902854090538331936127414089980830880242386643529814195856604116915795068380220995985198960464245888099782268226412940839859111911025534185958179921113846667890004955856687809914417840147627840584220701869575154772034803164912535317728989390820928774815998363380211145401057921307976671752669046991686863272956266908762339546017152979615353226508922378832366493348664763614027558565667004914470548184935651851357473934096681378762492262576787756176501018791185258450452475082575317685453059239607028742148235864384139301951956395563260954013423862043922632757218115916046496947123546935258755902149636588452304649607770899573817277056607087665352159172747002112086240656961575907335004507914515794194591233319445040200426262495741776722086014971973575471030365050148089820916641592062397665012006404810339132825078688665970441966628387854928983406208793845221653447815977610807639607667887823847469906477157886407045788465594350326220112352424285107944805302226862664306741152551276612396728503640375206926586614524092124844457702502229592397848080095817478417148068128668293441897665362637270774496509707720214565388803670008958359081720284262771646523181635563427449373288719335691952816429228596164631459590957698641070883146297971630473947088993376883648665730913442826134717478091176694171028671261701125587788572898446913125301836265127979469849880094811693656771012893155113526594262171003057762123811714639469654243573723614030249061290409391844309124769123409404952085871928686741935899505864016840201894570141112317951405497602973771361057141888709496685798874930068726670487032555877437009416827234545733114064548399300821720493216124809611714698705835916164987687421884946077114634608807267760182978585669135288474617262536703400415365842968371684134671966392815528297663576537209037062733196246983960609698010073190800435826121769313300266875338451315913699649074479556473513174919027018634046081120397777403023687225991381634399896215274251536981387576194867302858290528454685237947831982831226130031838868440531487407822510834267264526909514484590691027418427494720843617244250776286777643965406404015041477855886424395770029858597032909867233847911605675337644249669903725625585458974137287286097442094685972125138017674828961929702852789818574909446614901967314071600242199580867888859654585551049721761984446760753971300636111436621417142689476027252892133434727816071605854560192891895380936652715078833198326781051658398782562013981043027584750987581179973483504596041657641335088998923548258330876383401277701757006694716221930230535685036292568611317426988334418365996511679950267057595200784445184755973599260017576325344182180139920561643128189661361921781484273678193591668437413955336736772479094074239269797421457821485670652349903073861964217605379407643264604668675936712408460343806106217107974944871067280359682140281818002611650393385072120291502679660833576576303140889789249825043423533561801172931384801566231648674970380346642541278792762809964032084101701236687581154058175927593531539297157394327613282204712674070130235397145178622940326092856528557650869241033707189625702846302935353740036693966541103361291813716865209339471148263335454646220404156145193680549727259114223587408591759061876128015623842652382538283331726891023033344366340017999755272308533785852403975449788812686802375263619228523489608668446251297228156971024279965811921584693835457521727339335287932414975323977047138713771109004180128781437001083675000695379269746405481208782142738319805662511931931472415346223205015408458079630159152871316790735348527519323929195501408770049662239584165764289330177350512805074872788369549570645576592540982071541387949683600606750735218987441269856636012578559753607196118185128504811048999356059872438746293388621533461076495868977746037623802052976599612386691315684445593263911146873905639730762239098493452328845426528786676395354881635405852347363516823997917955992306136190923681086687872042738484622845180783425242856723508947120977968823273233723274411727010449390437968976016028118126729807115181637997071959988310596146235225890264977029597497140078956920640298107741567495477066938280875403792042440658549039971592451478394610014847014748393041504402230062944951147292859288675138797249157249714743123764606257643209114831223136823040024936225618094635873466541235604934691564721711214606883066862002644961286210993720710189797025093744335685702198807035475945329303996812062726477365734724969899747057134113267479498093603096162257472468566577285710324352991701916535105570545325399961484249923502300180985580713939205998411888492471718374707106894178624873170700865418591712952931274626597080496080397653845797067314696427814761124670044514158132407277172751106286194754851477109578957538869243810362382921802847407428238917668003041376891774873165504122617892367782352354134302245628815317571444384661323559736466405451838892682366104869954832741131801529922122229272808738853142053807778982103395656670270092013151900862430170863866296822846929328152729801475189387109339423186550887745377080747231848008719125404186659317155989518433004263845828857185084212064040112331699453893312263891030999975561113204423299764941449847573992041618899473905014599407058744969641269350727553353744586621186715398507700768501183269650135538496829526899417230232003622463592345477323633626575886000406564862623775574612108755564900150782541913532260661614278461574992523200214433224290209765960596944462426531466663015176895989694047130403310220436796519188383902273837112563733106769341512040331077581891247885374871241236506267798651991421845294391003675366557793260570377598011380645991861619193178762399976570549091127135084570911383092862988026302819991509087744764886979316223011185620217396820614119914350067448799665371124067245554766570418074474766008808716982865840711199819322150960883506991199280664687861625852833744655256102069310901600915629740836363170745826298352616931601264301913342288849380902684749508924213521042511643445526582124405118818888682485072801282585270989461095326490786335263444334408567928628788497557839052349666255993074321630711519263922238974177812958168493040580255000923415020600898659604164484287612443201700955361525014482301039437840172439717589867602997330081629425412541012554438788885099274988812214583231901786890162962052173003043988887047125128216943136382023700603542965561737462747417616083658552190799081446396987223102655904819642738551599394996814103433350799961209504699536107388446032739982690996423573662678682581813643167910794222261983658714514384321989789349495963036294280138865055339949504867435355415689973946816921321494492920203965464243788363330357560251226869870790705249077160196757123768599899777184795510246314247229224346351265313950399931551012562127883964038935735928534208099869691682176768819052192044159390081717912785245758372519941673742038652196260962113024503320043220024779799519189210640215968356301022680363917090129000940627837813669840674531097225956460402981950624386011006757241258493817921183067692956770631816953098960330761003882066793705048674223656205823124532018365810802612655814343575252986502446359929860531709953950993839565609522520697972047989586049601429400875583237951316914113435968772080116158967316919109691045064329232686432594339738860480493201841623099891862164305113293049330274385849403782253214771928385277282352660690570876115464031155897731839399475813604998068992254878960597552604340092039982700471288503856886009938868416855027991986180198225291467815976428727820449420865812471806299232829504863063339497107393364305007504711453454942691923151565922542659254469508814889348948299954930964900719732532461894878002780282128409904468663818291385449496270972607621494098028553646289247842890428023588473796245008371316013923743442625593462679779689448335005122449822408734582318336674120566639219638928878610049374330744893335172858730827405749176935184343867514347626196909453242906763996310723023126736562830008279507267686659522726820428793209866570294321332253752198475649845568751653660827520261201257135917164291436022864074517241265774629555588560303337062364311512461759730891436054204936414430966660656310986213488116300581185252320590062871227114568596761523346022787142195539265145543092034831373876804305983921990814124065243184969474593840155299837051080863894401789667611610718170804440977073470442215698598010378171613473258270307518671317942332333986853344090593845285463802409202572486274430334846834807026553717213876633509182423316326256826971750706831742293503799764822641589238621315853530174266780592354325174483052660767844912978438569047491090121963551533602423038465297531929864739807838197922237174052762215072306961673453656589565399498630099071079049069377119065565070837168417746484206191966582932733518376841273433124490258785968898957240980816591611776559852072035676994788451154038869802480501914765499017942479424115916583876778767338673014445424615025350772758790376233562647607063747981443038800839204399456767927406480204378731407948020714242616057872078103975044812269695269291665532715518048775326230297815433721327061910194986783831686171761126474997757366083908025913815428597446718247121531085689084700599362531274079685767594651113423616072296824910111608557447375504482124272182046066848687040152476127107708061829669785756296481407921843673471634466584345643688246760301740587575740405818593383658675001370317524712349581345052247219815169596779598621122838882609081451398601027834403216847833931289940530918276888753643437518274007118814854500445000005577307796902533821599060803154563128800659160862953839260766472446334118599773173016757478812173181337967936583463001756626320898202838465201540242899816781824289378960627295534527071880237200890515783411496848521181378681053875504435651271887167626105993657318661816109225990873759089988168680710412046575018215418944438379161309635285530865785602876718895289942570734743910412158314860788684198869672006083166348727336027033710876636036227890144251297585054617618064542457875271076803256962771034641477388901078266637197424352247011582688671923149980772439219806348921471184541787057986232322896797172322703178756522178176746333490495023179161951931134402016508316040934977131727413086716992867938426777933647559664957036269991829410234587202287050718521104258685869113813640004756096654784308876922959847182522169330915723927867496883337295666408220119375912885435346524304943586862903360275733773971154247105869967244210701077731896703658638016441081750573507877258654632267809772958825302525447618513750983968339124261801812029202562461684258508751865709030598941948467106645666878596469532647064965238537643058130175867337770542768501897667007074498944654531341020200322205168031242929410461708925384843627653682316364208502776742781590572410910724983370811456678826704249910320279324207401920033263794878550953090547522190740331971373721568639671553302210778765717946900061160850163328776198509655945687588428516934527240679262367031156206622184716880938096178241404232916537276639462445186356239350262936725691647978688918071131899247878084447861151708967289310344435681906069121519960000522009411341767977400338775953691856247716632603889652840232548087677398681560636253029862380692644580884796519513637461291538499040439747689099398991657915086361066278370983112602488765498692345424650535319754136753850024959024380816108719322079934844709670810131135984431729230615949345793762341887329171458897458811301539708958851134400415130547645885216635840388718082493842538523617305639123373462120118360992704010593409354833413135861832143992484594409338661715277419092167884172589071321306931401864251454767377609160363538718849060626865181915411893060175335781454773819763180092597318443799495047086484351355607577616676003922263933750616674676713631865924351979154442064822471446508076107162711182940968413793854637203457430249666742198060477159081367957592956565944195555496420842002585790149050251075384197377137680857950220296158746303257828003340934114856734188274139104447588170754677380767428564116388751042309414404092592526011146778272270325593632610279933929766569706048353946130826394176979230505043560047650870131488500906368996645687420646896628793988045788131234356156719024004770937227116613607180858847380073914969146427455257287491201340886806653448771734003421911410493227886320277505273904481470578620527886679068253180529384842262123225188819709657061124582517106816021816042058664291161178758844492244122824193348248024008592562574430475952542491663374101730292122833766762095425917137832695359088325181911501998340788317732824804321589793102513741986488099204897784820507854268446362707669078625776583498887177035663995519055014498885806979554446119435537337258975310006463912609495180973027304133175926966153479606962346876842144426785060866452575293409619073114243992783387989704942168744142643057428005608246589534814680084521203796927309888151518072002030013001143750965503983559475679252548555643816868430063802361524079875268591407410864202330485867779183013784427319858509689222587766862749817865877618670973386691932175835950431427752552260459815939385317631140803843875588834948405757201839711581515751963401223334373956844047326754560235587106391299410683575154198378453163471091475181195950526037824460260525773490322697108187002229893049131405666454024194036092577748519420325317136881896577166014851360911013952422619992266720707244094805083674282379981621220869567757468478202553111705287684136626736128495630550826292599355087024967588425136499929114280184612678913084420028954921084424973245641046183071712120304301982344136495500313326800029845596905742596266784264852154624944051467232609700157994073239169144469511069529593690039678700277973851781143009622806121489213930144288920761098117815575943125626569193279798678445265170743794468422291266891194500080009742183443895536922447270968465986026892175293745860494078239288295895333795003003559963063162850513220824129988744384043085720398652016797301370631678657253310207465939731198968375033628953581809465847519566499756829885989193066493778207494549293993832179247796306843776420072422721420243353662567762569699590345374473536586599419339102772762592531849435979199999708465251102980796647900976016794958597755109560854506871697446591144653964040539238421203723243905099683345884098039513322716686982574926693694234594513165146408972985165613892456097539564042146530003939318880897846184164541300170992980855199499491737449814827033820304566282303634711811123799807921529805976239165646567644421353029851174805344754529075087257488123076300590267209521224121987582993945693734595337418948287544939276716645864591514654186848168541149707691254749383702571205590680541728327226210471671209096458305369410652890968145901429907356068663000091546886318295390743647170304208555285453548316588003109207967277389103456799620146738634547261062287192037577114381868224397587709708078624012593173997474845290298359235489809633580117414386499460137697174822347874493388609069781861357804919507830161972841293086571702490291411629512362938462180159353128623762776252644958454963332302172727879078740962973197090835036998552648751952400504972500761341544469336064270103361047641897685716157910963760048919813953880378935262478974677039344254773705969009567217573097661546134131910723681368631449635300592369104649219425555981071791005303302104026309296350048484069902269666684715668394617649838728198268595162996322930505501673183728565157337568872707187766434028856010456280046379271913998341314235552657343352177864107196719646662496246972253104482694652625561240587719623651666683769197964567494779153513917649918716025471119618731237132185807330691543728555128551702865730965653899191366774019484460939216098265399755259888729351658027143963185407441725479332854544786644589773828423611306934085570051184259803017443245967730982940870190045559579979376645016572957396656820779771958136050474346346038575726954599627209767813238627552614231118591630238467602780712192683242828132993779922808037413099641057063861954414566980625048534119982086427499428014775489752474540160867117750517392280401903063004868652993685417960788926746976782680961925850406150052462953954798765729937576840035397725263384521644325019715561951799545526962676432950375048381896143673216966634518888340172642955441417039155516395267911690040918293734099020337450216870339438957165141882413501358681015415469369522312833409431059332669257033343369221668873498674865648850898283782145217599028690087896072921511690024311260137518194712126162946905841422721380142252698975102946125472296481979433592619144465740050714012021566040708312786954532566994786092548451986681783917228670729705634720314196716184317404845448803477678714767536562194636383108847080511920472858885531201733251670746718751234460259729898382894354420230762050166001278484194602916700702879153773574586312322684683451189099729378330151935602220647857261213172618412938612320795310991495748680085862927014532165358005758137948523359476253762213993595701482711163313320054343685774461602143388530887179559285800112276854407338697903198075862798427150877679662420271534924909882839498201457678332015729935997023338259665067192224366531551304688900824401262360107144334207642514383304729798326587965696544449583843942402150488323051388422119618442305666776595945642397667635346546623255758762160928902805913369124346467438189482812056569633285720551038274660993510976478160932346748121889011051226213646239230053785901797318727266937135595146676755581658654227265500523654561700834210383723614213482675157849137985012343188070840390604450610464636702073885528913896846706869375992737362937391863568748588340455415378435244133920694714462308079678431464464216301005213534549725252703217140245569992385642801746741409414219003632395881149988339590468288682875127163385018560708628129884283038668732277564485238603892733387556784056813183910019458276805012508139633249285445720439152682444518431311025478183669951187653533225815471547583623359382394029335410730178848170997192039789233871145126012968830149388699977806338035223854199975313677723676740503788353745949807412277739083316794726836331988017269306675889340474010235488515957183785002614378771157488146269302174529215682859658871263926796376701010194149008138841872219796490605235872239713553029026567477011004888616640099108223005618290522034271404960056582182156128762031609978971679503259769935113549171763994021298069049663153875980686796611797776687781164107747013901190264203640852151974413501913720791582366385959793133551460915555457969970224640429071401252136085820819047323682848178648056027492691496014182012721688491058769353396424931997500937052909154956497898660066405058508738474608064691175657739666464787294337417719018202570970789187793257698478308127587528692001438365080101493940207193715020364684494407239346942333336984360786744782173269503739736030583864081697424031040540760042395444057913511165848408321429337715672650968226824969255303418741145496436735207250622040052680071549430529549368098093337939067933650179317242311935679895954395810256479103661459942657981799638750976213860050029100558450942764235131696679800944703107119288197870532204159981337120030275038992847881187293365395868531375599493659035828968962540573256150886347965261729939290482592715563181783955955247795284279799662540013819340023986215740928302260806860431718258307852043750399934675243478970820315653753398091465700454501127970465290370392955948168135870402003137877847986473735054611606185447607508142613485221978312390188507600896177941693394033532837320373938356409816395288962250668069909677025817854980255029508021759352004939710512753617442252628608107320894481380262036058885533823125642022910946596804635006873583401607683401932419215841675681318710547825716931946706090407313700784673350749901472587723017571063134987460507936023441970718150321023890208716136148948558601035855344745016390735964958278507459169924992530539763567994944790484910197919482485777952592222516037236728603803496588847225348881670011650830393460944537432462172733855698377742070595250357495546556378267119246053304103355469893456545095193526680872110519246989407516620458838976287517395367344914366668858528545708451056530976089391456037541346268692295967361288417754880267660112475770287819457694521482469049022755274794228488546080477161208322003180673183956713555420345960869658078545117506421667475186928067192374984472535296469200657946784751878073477573009797818769705887909121682672996590634773043093342164187224731095856346870364684530077795420109440906027485395097737047477953360988930854060121809747587363327285495510866555830055246063155646916958455921391949942311150247905515918875138291509375513191822833773239066770987113151344750514421235097439833592933215991130413997841013754712249904008182200632701498992477402923611922767744813701972715252760562850515239430940115732635340577458943847227437327164528414018185626149173278728012967620303939003757490449604447084066042767826099305747603071280208603631903046814226694258581997112511067871175607127690648011674749764569171815498285447410012972033009782566242715048409835167128857698170665622491879441109350562403913809673455402758460278811573985585689563767846124371810746796574456938504299504060950813592019329477600363279535828044651042086611161794619091871432319807499138935567805584897956594913739312206201725111785438963499642981528796096585654277064153768880561324970538919838313633075822750686676269866083607074519703520773361406327369366068759123742625032155115010935399840717636666640484746721882708253961646881502732708828778551278595982821417255404296411003674568454251629883212770503903890088529205709570712805060372773901074398073064321131514824497246469500709698233743274774160652789210281241916637530582106861918887839155773102740285504833801982020739944203994735314205658955718931705798130667227966845254414192834386344465594454938413356040968409858404239504917339630365360493670205974008173193486016979453651075139510487831091249173387001738551979123735048797091751475229903580658097037909719993943293562169708578603660490994455117269811064668106228795102221608331716711940219000148092056243642255265861473140914203886895487956917822483127685450209685497425974142830498694135578441895346797155721348225525201999530299721643705078931200215738934083026508598041405594258618493960102146482539652948633949488927042079527994375448319997334914247043107231179274571685096591899342387891423619382370762232831985742582417949229671721692426078347827927903641488045562714316397150129491191149023912475130182225955029338112010336602440700367750445516259438295845204403733650585655691343373445957752844756607363824568998352593507563401582257533893367788373628625890555009658550713199838827743684320772930151450713791718110421066887378278932562847057098335364547613699450786550395080467731008545592906769452259020413734672039446455916393668163926948617251114237522013094530134041755730402474077783302794576509559745266595477916011513699615724779046001580814372542304843441976517456206276662502735205563309268364609564689533567349272906891968646771314111400372873738446348184679274631416989488447919609769740375285637317219709199481106009549034466810921663543270563081665141499525581797263107742419045164590555307658930525770681403544667248296615101279704473256441695343264382402510801731656506317306992537621073637291552857320132942379542620280413467486778612517094216864942717532656504280356302232762129714566748099727307979265252661905005813046789352003267449286088738412751241053556660741563505683108031191723150589795653492607571149872639489446670055748262335411338445772508529466986740791462986446591182555785065069977995348357981054167633929378035552142843368927916542182508437373065440262001261614676729004807639612721479952009358673817478576197355530057262304156860109527577621787151827038350686196821392827553774874059414249861351208961695044455458108138195372854618566964424987554315783405370465646410563284329837745045481268243141301280453276768926406307839581638199793390732365024398365988444389190321492140087165924370858747102588654046312942751308796437872315417639477548962499685707200264722723614830187672928044299356952444939375688280391829859433851934551706090690373487099347046880635042743599253185223490925259975954336330591076124362885849922578713891588547411966406729069582497089287467478155784148962549958126969920947919829287815808984441833612235188578499301357235631342451732503963638945589672477425833390709232319174128988266463269231408912792668741920060201673106915525920116040706643350825930246251855108693546206424436068514938736376644735280064843834496491105664418656992943904234422173349948398572684317273649321247946812048210524742179751367020796085576699524657383822966089506313680299120591326175786096289983726287270900735950226723430009178137940229678355618004876063903216058948506815641475262319254392794713229822898992129936503680313305243488096810446695781497581615216428440919958116577211642675860611225293780909635792244348182707031771193548931482778127344320942731507658769700896346313904433025281664268922658120989488211487843286061389445806376760198716760048734004950013325062201392315418621259390250702567102410481444931538040302226911256331430922905689015545002323818705012697223177594493206618846849570763929865567913521192448511046071234265739818910571365293067034920718449035593264544291225463282820876797806000289297402502088073560798306961835145665556837254462050092511170438504365960465003882622959712568184987595986703588441638752798354124455700631216972618329586945261598582570739114658503667544523846709548158824391569060032913089553850291471043294238751104607131576871288222215804854256777241926922276786431583991034297889098178114872210909692446604493740962775146928855309727621135124976723107191731059181706679615415513585194977175079492766362316847458427869744185937061506257527940924922730352888496903376142683748694677242675685571441335113851445416695117110040010955880358004916799798067136809828105781052166301953823047076606418592492098169064856167343445162330012874523066726499703452301226362275155469613923805594726331307273905776423727543243750202138338475770514022257109299609755776041005053763160850431725144450553767347234371416993576217392882122223214011788540839788626585628993948822147365791704668155753804952621892625545960522250164668774053257179999617846270849199620349694395978588884341989444776608983935497598797600524660908920009259421667560555685712136488021502246413765023941810672275915820403500165641081257782904556103270396742794281112283319594888600050011061413766245425835151495679852733704775275508235864104199349705743891795891495889232209935325646989508812811016803732900669468661522001234766096698459862146445908109921845528044090625430841870350025575014039142932224110619153104684042860876758064330300796115506001002749310578602868881623981827577152023838131008092540892437075537274217826079843688195069686766712744646937832307109224321388268675715133189685731745052843386940180880680762828779075997969352830808362794778196543405574712524321299355595559475744125224715172339386912133775161440922265375270527705705367080454048105251641956713627484776313197364846915933817228003019437319448531159873419355795021217728951251407094181539563150320044729546098283421243350594004624555734521673465868430944344470856033902417119043637057478351520600465243133814981910605301932279083810281241656477669912399199903268042418824113084988231993978041634330295246781600413381606474876586496887700437482976856061469857149949027213157000697007052726213210701122236397780244810231010210763242870554191018088376939895118059348344672001836248350831973035005585229423138480569736469635225963648696607827454132604852476714770947693680995125456050228475527827296918745704022227745397482225343253637804485315328498941036182803211709211355425848321794990312058537172626273207696672506826174788255521305779844272239593167585694945180283885094257575461757323425883264540423010606028408298960631670229467149437505021776886542472625623067896339691588361752075681578085282587835366902384742979244569578366315061443893994081683857524925295551140977947578553982688323673524323204118964770414194202223459069784181163331348175498564903183082761919491883574151816653249918726531664852125031108205003151595199108319212002572778542881478150801483560432740564753477433730153435828240822239835986411184470107147721762368630197403880341494719842378499129656573420392764111570247814928200330970789508552406691272724819717420444780319268219004808435671890242795220344070718191531573344876175674279218707986179392764622800656404970001535358152960896797723923712315608653483516086609284372545479115477802075673866808318100853079677658724349156690599546786945900647689910706165625234788547947829630142860401076858947111071858016783652287476455505230514936008652935378342473532208827703559375000257153243870235696785896375099042336639778031956187877186832041554805603464410715253358902577843614907403454475895365747200823522227059627642458217175005866433094068169389207910797361528286330282592418083579729040636196936678666059470794377298773811895834987412667498603433030484249279219854564082808339570070100164198529920566632799522462013596422595371137845553434989181948638657269593980286932126598266197324314408010530972167228601133838001247063174549995662120667338067610521514235745794457853694352409685285430225178735382605456283054287038099119052318255295008767118172913474884362160488754161682490322138688891907563550886352403798884839171639790952296583569503383115098201673659928627040327306617340108309883861950292253006566679940853855905111045780455620652624465502945599411751871236002585774979619938534924420696412466924511379406005828112375113732214320179037832079894728790547734824403716942965603370516306234090103804929482229739727860396466101464692591858227736882158288338598957399361147478774223210209032935003227220995310823499013559948536059444087741485996934181926790425672467346397006692009212234191949488544064006997611549609863190626699905395506277061996905307170422493715571821274131462015939082319605330439669007035318155976744103947192987479008671077553211187668836813225382933272750237293842160302770727416205151360949483872862501589607259539082286990971784674918868240203740935768016649141861067572763351741400879794392938443952000424943318073611857035996138487153566025334860680460380384161870430530989446070002547406220151883959514454257507667159930440555073695542854643009677299161458377291686342528014740179556420218249673312992164350763096193726261908788605632574872533676342221625619657492445879273793941028483282181190511974992948165235175887713995405067641435438820443646758928072633950623840078274459997264938469636775527682053169359379141105966906178466023468114270493721349675709114091548257700476953535062575908524475942169709479009835615180359434314135613083916491635438456240798800305914279195731648134265184123863580484320552244337491017593787899363644244406680870773783775809203827766379271855774139179477519416519073601306471906941107174690134130486249944718381054534259550972768899215074365612987511164775006664027274344404275278045027854002450857218425117156390861758401512966834011547984040123937129059919004123492253991346831913834012153338757057801484238506065850830588894724590014132075568763893542205384879567517294863786936341091799097360158643185287743255445222226102760087537759510965272699874496129284262307195957742842978051270371466788205625364936162091335649513416869261136494110762659770730819093587160123687032952272960584084610622431183032048720942744213528100882908670071612958709329717192933601480595703935841330094044777837629068487653697333752314983549283113906452663983831093935131465768740215162098323675777206915590249901357712387498092664449497729883034370613559694738404330494564801144218755891319064167358909311676809923798376187261198257738105033880650316887954911253757759337281769197871140522203405532910575937560601158634603700090334690940810402197525086349388853019920685854302204713953457253196207340650634574639059410353608682029365478736529065105236773739853387058702105862602350124513279200221773215850549184840213104195679149930952597157201302892322965196964194223304659539835933792171478212360454935628816360546456993303850428941478903703408582343037657133191277971565595712757796711499287876808918670747640517349676504160474754219577254096841927606660174964790222786301790369315044676037209465664240669271172961786612260400804689225608598679167678160999161046044709240065164400185872953464184315430195072160879953355089972199009824890061488721900710946062554288553756084127065349895298959102537529515112525761088016864186641616137193629577793682404175102916930880752252290669698702100499169434113237073655712449892312746068407419295629360167832728657729754249548307677517676795612713167099626792202923786223719236026218176931354128853740080604327109974704256014149127595321108125022351645112141838455348673053017966291894846758438410099365276298375445156203457924565826890959913907328286732915212708210146296868795849462194775950226746221565525419069014978451498701841747495583532170248478904570772081678857272852672189284802581009407469192320977870903336012208607004720798827539362085081099662143750308961814409222473776069365888635000840088276175298682743121374606601753813191839411748347874863803596472833187663004207677683770334825479502281510420121611966228608529967861090847438293603666241704483742609835288175381997336930156715608266807663087103756532679583266486283293157379297259044743921113733718693749212743522004149147313758473007795079058585667518118181274828303088376638790154651801449681641391256357957598178663336374727614958268974967891801757073424139694169743968162687762323849238585081957338276459867724356539304497919887853601299118774122624387339546760192616838477664919375876650893208942397210329557615046981017156188405272783442340405993853438023177737631293003388062473522412572687659600422092665415606485887075679020383550474288424224083375863317627772050057093599014901292967947332921619371133398691909863894199509554761000294495146121444107840500784158802398626361041578101151120450510082299271887287273945850510620083143034916097321746479144127988876896728041515262078259708357538484608003565458166498803909020130865269166095532100993366321692850270579340836007370819943452379771583988938671146318508824777952296236672342269839911766861707993490898395222254759877947620113666772355414854548326109626307776018698662548921784226472036930295238534060635645879392750132486478455935951291852151859113660026885080681902746962701367797187502522775272574370742636297509224836177506030803401252335021301917207368213823285546757867327360067964110800542853358105105906615155307854339429589750149953434682653002491539917975514628773861128872882569247598011858671352015513874912624402572849859825623452582967462093067686546434712713158617107374250864469524827173275527096087765893269952054273445467161542417496350611136951835502228561032446906386360430174350084332208757258290283094227820576491608740669045179509480175378901285355507591415206133728398509798068845312532867949377428415723801802738976521816932409322564545717201973356360899445866696375570682649200018171309145170861851664886756292926325922076219653682045064951531900034625361095465392444036887103241687859109824906254673196514325109357361376115592943599642712634285226994978389260689598391761264911659391913948001687915480246155785238141070128852025712646837053763272218830925635101159268997934504979309131749975166810680877227579401211210241702457098997906158518495626834615165913863232560779528109666244098836192082673046302069578016556722794692780693105316021183773940400972147377199854606425434979466534410706953977596233497773098341864140645243967363500776783787879305819788340971358128968364068016585425636936320635606777052436476305917926523546723076733341628839786874667368857014097177259461323078929318342744341137641000029385863446566611445767371152338715634967661605497036382811384359360056706970842077755890784665661237047423314692592895253419668848443050166528086934597205443528664225009548419434316352588885698676980943564780384282804614302006693624799785375762786948597546054922125034651722920903991567535420221307436618518425226145727942450263801344710742109866647343919704099311290105947671698908435513412641065071472724039923789489896335215827267070059649739954641361511896837561523639227213902830292361327711136604785825139215774849609700605454460664121707422490934179199842946442756233527811041904643384108511517225927418652578557845238554277710883208638422778273401813359896102439397011336797758760657469256914197822035203007919225748041186985920283270406479109580471780346968202743728550339604914183371172990145433365952939283287214360925968193586523515361690440794387808863460847489438470114392738274909305791630440024667549418545201535988282725848567451326100328317372997187370424098194881202387408051182310320856051631070733960784229442441886393637494033044033803658284716737372577868881599347667446778810415979389549467182818310090671152349267623310265905945597102952212958702590812187275581208412090899061111215440099875046241490514908183562458508864219593620766343777982014214608508185560915929253024623705562426232107270033034792241995732414297202070619398884107190451604918055495621557887058557936610064375433506821298259146451107155121389007414501763177414193813512999495970553845716491632848006950746894940711531661480184620165275844954105697114007986551859731433168780746938288721419399600077868270589246779327430653604467877685402720833342321658373955782848697614230065967384576044958967356567692085914468180208827156415268939780361861958217007402833815357464237360226210741266398889593802283388983936611753147010686274281529564565312309528967971446974097565398774528435684202984363829803465220758768221684614178268219728964443152956836180528061781954699008946361405411569251638322967904397472792832740370810447513917140006833561564293416846022180319693023115010747008778714161917006777346722179194356308910650318085993251457549479039010130850555932876305071182720432191261371765037180698728822710837049590667561564779974042041432983494987867746242834022433358493384343543140614171547146926252912689718052444411556538826303130029377815511522085889903007417845367369611697180701436855258172217568734458033065100281560878084130300961648292946701128990313817856207128672984204660309290565630960801530646905444946269846345768651879015059879678643439088569098296414295368468398351505663521341758469473384619113569534382484185948531476242070319626041746799872597805632896473737169583845807559853281204962477862169674848482158876956071718212598633300968323729419408656367475053430050952282861818412442668823834298254485979079537089006591851428705664768499693273380640289402943223254871744444930653120449204847369930990139029773115760563769284411842813350457573930805797651769376856792272576714896511135382308879127068468173224494653383590173570586905689814967808271531089518673504646700705619411110121527901299725152401187451653823951081642106827628283051653490931685055661111574960522396205424254517105251520880343365243369396294193680874296097280375343011942558554893374199065890816889337833387395433543119047047584033110842280755455958583519196859948477463253523137347766065391410961822264130713055474385745478107330409703677404919466893429060899896048703180023497390391570674931392822825044694248948897434420998398881347757592362592052529001146975943290311899552548599921848314459629603225592078557164534923125838628129589255237273600965822423295883760948691245842853714389112604019344329768609130291557505016003560283873569282731161644183287726113811995889982834210601196096358725646660597572232570815394067810929020805221611570293393061376574450696655807962511583017295027345494878293095462978270406933865203454233110645151586081914177294121028239130132349614878917198672017875441735308602153825079235239083319847545815802337701590034059365606581864193420802382482404228245634348823653474877700899316730157161650167377562634072433902775532300521727226645502957550818770197842433810522325717521578362658550612607094894873800610301769288874297692827589756502416178242248567863951308113763351863203686888706809019842335181694387961070117638635834903936743959407530356625938809899850194898369197660322697637111030703848941886163803024955706499294132694977955382330747187209140466004844410747902554811546594669143247203487311045631195905742816882532757387941355005908976509622140944391053361676492441977969516101605369416420077860621581805881196367771396302783632670931650351969325659400638336867342195341997062846970023171053684922580300777951885587451233668569524402166494034647075239697578822920592185144659006739289491414678249281710908585571389457477086319369406024918697463045886296483289253506933746001557367136064900727758261760932550637696041182890868961140791821471535802961191633793777003009636406942603211817779857660170693571272668368006123330377744909798346021686847667035077900185053934371615652974048242611011936821301243715254720244804003421329766264818597155846136944494711663380297135015708268423460715396270523783833700298696226476704881045851588983294096171291589777333885670538372428918622804789190550781601257270431259606183386926208694360989477764165969227836725484634680482257632240180470667166109860646907365773616009226309236263315791680435467866745008148284980436517281231603931736221419989894336936570908743627175591666269729282775579619374427157525556910189607430409731666972874441575121583288421398021364684432048475836003070991233518071231997789073744272199609765076010784364230559598090586756681291800132795668624881128772049788118004253334663356529124511930188503356517040645636613854772772625448830521697666941398241117204370959596553149044991642456566697598725845603450537570094918260225628051303048723162529214129023744897358418794319862230425150164483193331282999597499037005855297251632793150738120306559572213605257956635252557120410017848696221903231213611669275830610299965446395275592208988352280001427787084016924497299138513096391543864373545221921319879512068418267187657409958879856338440499059081764622652009643283717531679278602511051288404954098700388369205958051423338496736487579042643292363185991052872915519968575599351462839745203756699757663985061410567416925247229630745166243460767200548824578911512266519834988447269579023456875813714838493683080440812463833547369731120612233064108955312216238653734436865887421400822062464679857463140547830558399820871160880337161884333712290682527254017401950167963852536753800146693245879563272645402266929421693340739449273249897900927611819721573502223171256508476783205560303082396603228881398394536063459374126902649032563901088288696753933519091133422186486173766573441883960816573429295505481557864740357766324943552797799673449418909605606422298349368681961996470273060037702117426196993907506442752625104042072573552651851808156587873114922802625895826501147086264261012986649380235415597430439887114502820736813693998352712906825599341528163309514105147789711686810953913750276930768995290039402016839827634885437344409141896637282127546543737220823326689229040524244817603370477912858593729622942970683494338508860850498217414657548087583965498115864023942910645551966668753543026595592311571091860730266174819837077089574135980494460241006346054884488579408537936435168094095790829904240416014432116132677991916964580538188087819653620522712558216136166612341976950688563623441942555796939391083101698394362779348209207624362222680139213495964981050925037286580795668077420897883047932774807604810636637245567797224864834587669782841114747564495818891468778261817450388390827079368532916409852909832027102896025717671001484998369670543338683937482807167642798589735858552112122989496209166116760321430422371765980238679170091950506691563250730662674854939236627892947228584229751245284658964222535885032818392955051556856417732420579191595947133497962475853638942743195409433170915040825588391373301267829866540215665654420359295056920154041922943959465096218484587204837260514265576468110647422612260551514188531017943251540070638449996250390730527796397456084012378973619911569464942130543270874882886940879912241735834179330312042200900508720333784106772269762772668732021324232506235223589389273964705625026186323514880190723046758267973931650533017976567364084672587350758451765135636368511338170299649880968578459171787168651297592724024943188552861097030370944508308859225881665010686566640369460785541392101530658738958189925058401947800504291592959878653495055187620695400412028888007793568585710196962577934180067538508186356988812376867047298711327323476921490110066291141127173033021778769730935638008081902839999555428275712825944449746819588147981928262876304876322705412993621463110208017600297109731386979744454242227504878933933158707104585559531391698704422983659459217134201923669927233323594712135901924682461695427453481522566484072086920684733298848975371112756124292479062134765736996377953726041495738050774288564465462418442724605299229471709012618148885241379312655792876870800664394661175796054720770592116125898483522092785085793642428794085150045541970623082194107585890499694772272242490045359922112681395651737035913820083632722950716217033238998854922178710450731870259129457023513728763743768787883608710892224627099996458131398547880628892282573990513675483920465467636813377768040902397795223515844787489328633667423243555876448258058901945542002504221657596196867273199391831835862939350401821252315511983187043040985473899420316518138114090112987823609426513118212124300638295587257343568896143173374509783540708237252979058650028856841868165159313081275359602923557091420376049192856479360478699259528057600483421194301378216347488559578423177761536427773261434819971151628012802114759952451485757524877431493292776048346148222453843747365971798722192633536620381542388962827471874549832074384196260017159029909240913971417117880374780887415707938431458845449841242028189781485946676211997174323985060765423843810986074452516581036036369652192863666965918557441994474127495183423552698491355639189771283089840154452771783867547272305715671531765307121364000948214390780433356757228670995868319156886264515453566340819844372681825710082765194532172067006890998472012585090127099012151624630821968337783723799904942973418407222389063272325226052976610428582725308506972169049044737338124264821327865807308078231974350293019639126612123450201959726758987097337550188380221912145573143029013089315736404675595391685014670621953551156872707234081718470929166723161399513326667174603339259908934023692888865298199906141228034472351346747847787835367105366856664239645822706083044681411558595889243696033660695661172661857220579129837017782935344880077324343113743144650254122779224327754707853732750508584169462441856048879340550549702787731111527768975623581645465234556470575018547688223896305712269342121613007747012021315247435535319753520886034678727584716292752492076475811592701545037659994930602761366305491369153836628217530558634842325912840833943003842994245993344047247381614297799498172426598397788736357514090025723099378755123617675678882148458552242623498833691230603159936268282973318517820744572316919787692819160367945957772349876952297689323811195246553657894893130657123522869192390299775475017759706374176170856696666732572129310538875370045660648370239095258694400781209338422667728009757138946378767991651802358120104577559091770773725045944843253414625665533917350534661518323372708859584163898005775751391970987906079222886764812046166961415953765485545848548071296268687213522487718068205552220541096452404638166543323196392753682145730841521520181856954240892551283368489776158074229117890552262606043726845384344254014116001459467786393172435681156383255153302465462329288260945083194511763562608140306513932566545501021012940028542171567160363216666942721171237972098866813029297177900546700789371171426633590233555780410118475671097013631690887924495250116633712748287780270834535095032276648010670192755570528905775310913308158476282089319812845975730553388602851693656881228981782022641341124269900128819913998121489974014698768199178320037580810780320296668352204171841699547665566367300497918531364485928437321291053184651665007015289738088644812742439616544216024237917543358754168847566418004545848463556545637158736798704374784750739127677082354823724761338375233959002405819045167994092105722684099778303233317246117972517879324403384954040325947520176177838608806707575488485940966094514951157789527918121571782960430855101907709647071233794572754438112926758752244410614819328868448672973249183328806151472280090724600831851060022989797559594472855167479186383015099026725187936006530449494867292649836088333243430598750041861930724423987499406477443372491151977503017150349234384325236370852774986631385716592550703916996073811324226591489095511013969270741365016253517503054852547833823628379463952457545442576308858373715855292385458957340658971399424334935293933423660407249029012228756120281864147597940346174902439625964961453838419750526974311827003696422505309021053893502208420020392559894259927992524700996845908090315294515481484388349071162387746083610674781616294771474885804002847937458469825444848766980910452052981881826021823158909231362916260974921232430381732047306668618264306119963849800529886554074731853387170040940220628119246136609067443524067786072656079748971127070176625819556274377773944717464808290856235494251009323411620080938820462411588985608511508128863008112412065787866520833567590499268512777231093003575719009814614784641311563995993421625486159191255554192595912573406599179441283368345637282295311975287345949652719408919192747986783102856420758719301972168173571312093219458070965250004038535672700967170003094895229379495372424064282191441130038067627881928442833816165091656512605717866410693942570273997403172807103730755479409140519093036609475349361101631290751635035889158717131919952255915012437907136932095817965331336131448364100691682807818145067113070992377011551469474895380029595327910761948267846711436758836670051516387816031756739099740282000276926266956438468164282600123874940605057087506896708191748958629004753927651630670312094999375116495761097652747685361208094129114634105458831586656390403233008354776299557256644023309716226415283738777344287430043811986614574934310404703357158602774560776088344999781458655098557172050996295522173763978362172415806487967339963805005766391052426708292903743667173464770175312181490706945782955636878691985658765192495480328991090227894377165591895003078768950267496691545374895237746673900961699621698987144740096865617528466495176127750007835155705803746540412459340471469159392210913510194173968821844391432866948190181129686383378844046115557198346320103738753923723835804773937976925968610361899585193716371982252419346656086881645405986533768983643637866878580458253809776745167755944498575057456191605035647721056266938623623733010897014783345203529242278367301974046030664390680267533564792499623619178605515505878897824513443619430411804322785261023154682783197942902902176409153201663227228087970227903962409383070149866045308892820693798367957693348654004639136676616321469759275837807152009009111471579299259390689992823383011418209962430356574021063950960175543921647008217052808344945407544499692148058500445164169720956950014029364569179523311067666856955999280303711945256373593783902189056480937331797259627692338213509676265364553373202809135101743867509328426534116782040216983696801748502471970074663728568854678651441041156569934203139854761165083465499816059077348292879355162105380429193293619542802018439145806826120523030737568794546810038509079467608460204978137864552171807453892496333708991874413085387250629462548353265279060790666831823365792878119000630090800602563737932258539565299678924670777441704016614410984446356821495491560058676808289844146777029712641088684214867171276052287799796293026620590236162757144791102687709898925952234774202034992008680909356665954003231089178772385806057635453198766658245808181381452788116047609357168220623564312305814835333105826869224828212240220078063975472179217161398231346879027234920491509406123576550947381909809625105852032705464697301497489027896442316196211064125609170252825680222827438222732396870568906840388098202864926071533016775104925465293029827877990826524129845626167343457840724357467614726085535237238866902961028515698155767123414714224915135505884408231157260501427427047521996015236185690553809879584942315829782248865489958439159782422470127595989500251066018425083759527697000711904255123160651808853991282660547276199994393026222491918766542102020499119243590775390201809911092388368101191091765754442534469330839414728758310401668880804764401174402995691543127640233114864506990973531816320546511218792250985645054417525225178413267181538545825600141377661196130636346510113968628887770284420955160574127941717714054086162630906572010670706136979951136074128864546541943570323995293588615553592923506258350430831563915430899324488433530500887148432465481886526562501172041540077687045627566917109188956313786749584828714923618456555889484401817806885323481675733059341737326156715012354982665230300753628503477396465524339355852283383070275557858050571370652367479175313754934208624731038090242661205973695515663495402404370420436333958582563543473794058430148063169424390881334471515022645784731677619319779493161979452628439406517418867717311043493151732732254162970595592210222707068090580302045488670811996437496740584602527155643406067920524824015527989324103116728486530208181286739743504187832105367491799520234191404962340316321597118674754342006762580489686591221176998293770733451376447608844555769648991343587130089939244910717514729379937511860630966922904165327573789010326052515929202686572526907019858143380261514663325007680055447053226436133950703611813744122555871292420617601732258028451188039006059753731428963960107005283674914888161582447150808917566417340842306136822749772410460679474475758931338832868453770730289405390136536257447406375819641386425003812594844834323708404339951554306234100843516344563602921043284341068514233792654832692302594951532858246343210661020515389896824780381873709799938993141271400332674304991344422382561111088383006640901066177630256693093018808093109987710948774537400296785507070261642181507302178474988098631914110876599048362696175151250621761680279915498470065860591977302044028164994878656146375023522493094801108827517609094364538074333493391482643939619774014440072682101119990435473462091959986380373178762367584234775507747328868830831728260750347226792291555407293188910410957518250219643895590107834980207758655418917737641143488602467787246033833049972389860982015478408029252583942301119736945983903855205851507995334807716320065810862419044361093715685295090100363329657952375598730841028883276246976346738556589641211126387209339954010002045189553024459994986360786100650131072591112130600516932950240766686483932188860191756476034151993860500934148165008895223498110947012520264366821050985787629872082314837301583522659824927269440617944904455490278553782600116998870476664477799397275799710918493086878735316937514721392487062040261807782511262125341836731567021503455218370179976077329329040185101405535346976557473669003607784259432962243638544553578272543316795977261264468722857825968420158145406852709539290717210257307212153749429727643355708698908427617710261959777759929728390954613432431471252994757854764833952768252747665597321339323314018660123786252139502346456550791096677742799958021932415874081012418603927867326733568284242558572616534272826357821854906819734570482478174333549220478246696633846289320482753544100062071365609826620171752824088223343696911514472645608266643251049273210453017850419591352796350468597984931944279434192911301948738083935153955043657351023551672027573150537385529016522191682846439966684094883915379777288158605604749191876173573276098640691007627551101465284577591582562631488702768919117574872330606059773454275747441561883949928913637198671628944952533047188987142180781384512305673434327007066856881504079819733858075628430113115588048875784386179332814409389889022729680349735618260330177385989745611352654562138669025150288203130071818570471907573539225134560900279817481941763632095756726289790685415501827790555133952946535057738181125060210214844853627330078637905437447227015755887419532222734170493556066125535729533538776843868365108799623327520337956277209740123942960138984122848474350374955336186540601786811277858638262014620007905948849096023308783765566476656407649023499477661404058261898232904016162013165993571865040533576687442955905372508338617930669375786800246965007119761852461287678869631319647816286070075148968897792554582085575638392384488070864039257882431305118847320060704801578194953299570440917243537084676813287017079364436850881898445730334705903641340867233765190283928179488771885754742028808062181862919454057881581128050241207630273206823865334388317041059459443356973934827398516448878873997967210910519555873851153343514216609746400911235630013342168039636323672343166127305408982775218590528344603917461669123150485330903661891734825946761115881759508616518723587442749591906081721856508573824722630505213978936018222350659140798631308831756219640300991943493785809562269914487538600008424789789516658065924084301190999926597338387738927555980888361274485009967119260812098307217268649845340456612013839346709466595588082808773095754237486881686441231490865920515149678620485613262899447883983373902210467610391205753564033436916678988789299613898146164397303373207074807089223025496866725844848591950870256489630433949525526695976604105157509926329136570198118781247775904917100734661395653450834603615043746958417144093179073558203591898931268491727132066573158399603652809672082464805157451536989726250460032149269974495547504805058104479281052213496376409867931612717931029615896551415692213484204817044168703002440441612206992080803765361444947970787005616562776466828124488800896101429817455761885798462261511163964325758671926288081510108471234521856638887729208958981095785843781121296943927113104858368322377938714178912057794026995055483885043037972736210755454834050344973635533200129335498020501521461305144585533455878215868463478799751737356559361035523273228679969788058987124569410835526723947272811903157147659161029583162379111877931153845539404845523448795569670967392826735538396948855522741230004343838658319420810920370436753323088284629717001324267035636139118788539479735906693799633841140362430886208817103602257535168845487007614316702563138068663855110246451100018468014448525901758075688745789437212574642466757867634335233383710763972616305803586606714167070511525825203169720112669708085636686275591594846193417098798157433199476037090055800455971110433145824651620553028973069716350709525025708124381133312097768664723255602136824866653071767203818446067883998689261627525767090423727996023968413983145347926153381841219255139571039223652728477484699511601531717338797341673522293093515573670873140617279665031853269190923772649626745706699381761996644853659191989791864950264080866375641643804816932831368969888230076604541452643684662759115051434783812117437194448197578705445071465147612490599521964512974226745811945836567429695508264606090751284347179817982630554722646945132606058925741717579996850497264983293169027973585350126357665358463386517036646773734499797480654777116385722860373721082006378423020950280196066563564101710345703043701373757114849950183838067371912027362096928356745390236379778861719725850624353825264408987022253788633674109799851285077853744759787203937181560651162461390969864178648716010331497452944588722657322563107939597946408965524936379644365768829056231238634743666821871307967732463059381260185166789735820829872831473999320089184587183345782189682947510482255394174137456373110570987679067402809277729243305478522377847711546287878095613325471409941452307113639117465350758003314971063314259824762357748845191115072113193657986668755407213438981240854570294573932085074638736906383413772449426010031108394692894077277670152740174305217090698194514895145178261151709959889430722367910950332582350999068261416201275710793781534095880457366430695556783012834351833657545496245411036255881973213940419538075343418146002074813266936734170849359213294556307400095073713862974606855672834990389482524995998199308709431720072343440000998227845305962593137281188813574152337804869947718315835928839579894378157499007913454892122216711023922558820365651129917489003796302107854967244521243310086848733546500143320613079470005616248591764998359157574447949490299026695863188381207755214527969154017565234755435189541029750465349639938401953659696585973829644496473103305069933226074959312665615142015646062643835993516651026697148946084835886742473867164285015898633542601930389727409641503003101177476479603329537525774003300819135433109347749490887385633879486937845517601196423395728998764145553833657456316287122573829849910880455467935989249206900790454056954709629291777440985730829283057922073700731323902542308025868304445598330202970296692423312682371426801378849938162939625536004622463336155206055503927382062788659559742461278544718407836387151197267715949678425282915158744102391584611545195319227959251917677804550726806793812410158230696305505150213984748585917770909678162041468979317921650086268523018664607283399723955489297934455128348895230788072311544215537910503683014856401377220204894114322974268273040402615520442557050960000437418527377050205751902658541194647261140211137407048238173843225185529290135918683787079223196112624205588131543599581213456237483179135493512060252551756852406779914018114187719408804450067554877494576372294370028457078494927579392778684267464697663056590589466170608572740336453929358381087023254599175147724339645810003888807410765553698066645380575751643045677613688033734565190834210628160636726288826686791439912780876351418819729233701030199478623399632444365243967904085104373354695622118933917217027727241869501192534490578836864568402189062447306906621690373111558309635537892651210148658101590795269515944474334486164480528682602920681689737679105105610904798041711856079596030171759292868306081795484171203992869855623399981267908575961160350369695935830597624841635650485784511016180339822586019891432285860848640626932768264226314595071453538484206870672117960022110020910920010682237305828989183972687664398388377752713496288482526196768961089026059915619169091601352507122719530586471012445658524857732146273585053076563592314681331915506519272756737389168405079654456129526199831698875785632424774825254255111017006147565016171010367524852254055706138957022452718279321343374045420608175572606635342267089338405988313511236515348196029790435998588083903917761912441596453331202971499920666817236182573286004699133611526915565636782464285739794552855215403608673820390544890653010014961098692155073196649761596687584299903367558522884975701198480751094351899714321623784493982904463990052637192653966536584159662349796750982080469019955645198391885420378018103321270236315646981868458437827880026605140772466393830169244258702454119167925997524427743760341236833094166630123612098251501000306503904878285837616266700288312936067393326800095375924104931156958181592344235431509470032049273460350438940866145543718917692044974648544210266903311759006524501661108480526399917287656209511709151165176876111415241074232766818092534847001484231681767089164458402906964850996270107571636694762406182677063500794309777564465643520433988775426773659837084408448128854823431957404346396742586717372871197768672183268982290496999569831403954001032264420882255066334172599795869111438947545060465010508921867893870366841367826549357120915457579002358488758899917123345708905456526376866876959188467169181922409231581510894760083355936531163429335978839297354014231710639756508375857932979850492730554755209403113088885211334831760009861491563761726661446184177505247169651764439003165283403857824476389828994053471592879361688743648728007083813960569955550918073726767026634079357701262148212968047409242314471681031959886797431069364236357640685859250140589978267829930674228678241203909227706198607760893081794964816814367799839952979122235299920838595990798031657539800839168582646640909685859535980389313430294469735471357520142925896698593537143906664740902119760242492040025828650382917538530260308403574631356808013434069254192823014712815830134570315760027357502469723757628370415196748893400094668640127758720912446228912560955226680357040652781188809176386993669770423646091713199372711221373835133277649301717114301209527349019428293487112295749431196312857110849539429132844926271934102788449678634336977985881969416165822189349304089050529472855189780094312492902783942277201097613948089005888757624362179925717780436094419313938156894988176341538723836396144993872116000446422511271000181637378993279766527639094129226970226952127602022970873686170256384668837271538492994982724804182712540680451613062040196048154868378948427797009669010184316240188528023077434811594735090156216368229259053220532840183389799561033840680707112319898709393418568337861330343941121177131743663577321817631677226286702948900257773797068092557839127483714076883378766230340085305135560828458851813874066439163489728218428313166800146699331851035176141628137466623456110850700803794180332613893109438090771646886302201363814033893816812874131786384952307527122454481641006955721778967623564730578066386272762972100439797839058920179901036289714844222299907955796118082141535726687845611016159060131448833282189398830601082787227149986040150071816083157561480785282739223177827634598466837391125996979832301651370688240822302046805566279032993130961313088181387856130485334149671023792568248597652623064941531716167336558258234900801371110559986005442796168098133033125153925684786779823303163024666915313071379085083558813330424902105163254257447127980624350469908134405899108562163212198953450335940150993654322110436133614607498064723044026888592080239784704633197742315901525664816527501557112152167390626101435054266423441337931886859319357490334210260837234818780780374346432867611982166589471463903070962040161340715064740494713215885476508490505702987362389162593093358143183555130349290032672088949621446466426785606602803690565503118482649775203325764573722186869634950591002087033388662354358186643960527112465259163134998248925194488760109999045521811632609184077993857294595056968495499332484775298292488263836649374553055680087133743051376843100351842482127404786932002197276456241003628904744900894063287521164660412481428114637933823476677770502885156670480024228263834479436001766501986758513075044795186350055555018463149725137763140286612941408769533325292225115690307059885946886622792167405740648668334755606893737327180422639093120138204202801581397573441566038773421731912078171835751513006008749106844880383508757445117827395361934010412060659134696347262879598595063400301615117333775075020067919028621392581194111417087963670364663529638332424067824968946894716206484219272658966178580344962856380414201913857996960651233197933672868439180053017851507408627982354588328014391888097865734745026573852576148098163327283009222736905264344623461863196656366622391589688996081451730590730185252625315891828895305372998416196726440515180307014733448135457701495477732324721002193756950757343525217911789738235795231202211021495328988204014300033066155404860673954231392880074887565012921286444258063589196771586622005601679239249034617037896984527037728804557150331172103580548218178332338943109564946462772998554287197630974147286514305668956460339667393604940584653083352266452300369843327188436056912796303665061577223895223439050964279036635872356986151862397153462734823870986841160010388224122179916736408360313340749500520204973715359990700783538377356756436519357330566033597381263839461831192051944311058106328457621321506214035397317822251476541894777637693170776080601755395387707658130075677796758026599127548633163969286427648717866597612551477640037240567050271522946689568668994202944271879495828149471085789579947042966511068297758209512193018936494692233950860378130597296070470820769842330592975647959387218564914142856392316918181935785457384183357158291789127188592655743907646952190829247840195584793869887669043024141236606992676528070631204866456161376445939399444536837238775451783596100252907657744992810307165821319788635983255587318025704739479882052248307549763697123024647770930109736206962049888168409197087894929378031823431461203496890618147467907178481120933771729440906915891856807193667130435232502564560941290296661578735783344357919503827283671155002399309414824005594544164762936342754195041182966512796560609865543751001761406718497571216905999689436834997759077807401181506855313271460134829363352294804641378525304647701712173929874571299895236415832066951316713647977296257077400649605350943443893770617917879548655786955788361337612788370699324389390668812061820685652718736808520074766046831422073720850784490942680636570552174416754537938651891381017270623046143705177877692409931040299586424949676792604650654093193983096561272228262014748582046397504127449893952073099248839662506782725681107183961132096023180647916307036300055990910608721631280288267093660193753897827700232841405102495384707668733891860290341189055959596904322758134893554837466235088718101355584463055606065282234224698714378498506374450539889434882577156874766311800115811667480424587135464589540171145930761404536711406138318466047786990876759401363799460650730437338656274096419765892658235389451249359756578808111552764718947661273152286493602215021014270496488258957953246201520157341923915209286526561190534509243051399072152025667368766652839651462852577566258764588482283943317382015684927015722918095960251568542528470366052409747436506702389834379595534086843821655887664128921694130714237293930271965229940861136727400702648053677256006601758890549260920326099307313404478798721280374193964501271198542811459424256634525266955692269198972256682461205561521633654231884776844566418551588040751935311062235649957150038832164690531898317592911695144235896991506205114720820999010604379058576712700958855883389457352671427620825155249510510075980327813644855703557172550077461672065417000243034281615988313403737896407686325023853335873126794437740706752099248890519835010513059926627950306178402704363259406070202138010525751293709954524946198402122273097116295878245054488483699413862260111902950795257547202076634971213124281323413480973380198935394660625756658829095710697225879787351203955533735473615649585943090326895958122549574690334932101903210605189969701569127532806601639387749335720141086989336843258302506145205528338523708400140418745317284228602781609028296690579763665702201374074752287408045476656412633779254788633393276594073859724551187129682215940470575957613313484500183535445378082709098681807800096300564359839354394232100527805691392195628564205867522059949862425378268487656465161624280204616732733144690798334138023146350937568525430902996127877356364448252903127521732492067298564760872883740278308958967600501739689741007029626578677447363863985606453346577087519510591773122962434398654355084215824611069657947421561327336066478785804492880255662977111021216398894121824653943829461444730927257269221443718800266208471579656530012342686283873568724342336443822098017387471277883935777800441860488081822179526032905773481163324561095016759336916899580797980184940464462356622705195253186194521706902849596384250544385809776260384729686985819857935270990220705214701090072578774407010849495384435578388815724294385173304609831785448131750342337462511052107991409702505502449196808427306126986161539546036758965130941150494641098739309764885695347505507421597767841144208841083290256976606844651814021255791799421181835878557183648397817802532756328065083211802405482442895337838092045610578761347406260703609846972939431003229015743459524376780592477061721657529185994141253626372520839350924103482095429032882466927800393652067038463929493963987313158424254103190119717086307661970575691463475458094332896602466171979912122794277605278421729041788287975324771234608298770854372151886598180641568623733257620643779178077877705023268431360018668250396091522524891946564351560585132267688996646027585459715992289341520835329313472485556795214811996397382243792640069228031462167422578985409348559048888741861883564575439908551516932445607061585126822412512475690444619243229655761699193272860372862722881273068596807142598039673291011994618975477583137863102304320279206723462776263385445345738422045068143592962116902436785625494263660158799281708784622768353542448511128053002503445807555204610213867263568635677050492250774598615871827670884139479516033376390599307004094738092281664192512723393315892306651494503933467821753209275981918625639222938362711654851088531248095389554328618124056417142897234216360395957030811177109718051326645949335229476841611359932142075177232768279571953803934311319607984804797307440966278036643012163199391064915461823362909872196850183562173813093577443650546283252783596481857420261873242889852579967153145828644148782655680201466432586615197057854387125536165453530694613650716838089316759269694416830135549598795667412383693924066257189987130439017622949967624266111560184299649518425008415799534217883577001993389496049489446070839551469886232768992558593355935573150179915660513445300884257385006608889712545211315433644738558555567931868679888737855914147014066802016628770083313896074800043026040144962617032135134997875265849362801640669794920350079704436440250880374322123606094876762938894030255272356054300260544021340679354613265474685044646588205407787315281472087211478500940677611685015794290972765501446415741374110098500828819799243721438339979494174282253855981932492842198865891366468859574028862384866955040056971359383485111733380325179591484370762759562242157925468249220501151818281590936891531808762288241438386830370167951483252453393452940674177117861936385838529600156077145182804152918226998738438305939040423717563799000763359935909521677931276512559540024603586595841761472197096019316625850721136611778725028655068131998559276750627736548886783770719460408418314760694766226007299748352040721205872645497039320872686204437103012660272775819340945132348124474897857520936512095156748465448982917326880596454187195204197413528224955197833836368084183793865217508783668793030600630748641656358935215098558804291773456271281564726794337495487544171302013357208585397501430393010383875001517972115611801817562428108469000654817770883364772663951291956040926687876570263881943533738685469520136969635399949045136321570660867846433146351841752588719917482144721921883792859031914356642303710960390039577097281688615629399607517843117218544956632122290151105552479235357775627993988375775952638298017247283213775354440532459216548364867301461421502738508153140066795479736019773837661983618762044471252284522230762818116597748683761159955468870375413049445865776507418947187075664681480960250666892470900218718562142154391832507128586243697349954040359211623690336107295947080196970966603766613776270014192440663563749588608250232782507157550211483256680131213436553005257077517767410985540511928593929411940558602855004319018728241593334091224036129173371043965972740462592272201375104996124473572212125365476683092596828940151885480119011959962133514382825622504160744323406560260863479913915917365080526551948597618523345118778456891039006243120180598224245024469376635113199333219488643748242572666087812071509095862963612465945248511385181351542416591953062404340242789957527854560973923968609088280167011268012490705980092446820964473641995119728081347820004548144653502145116037266706197866066117053141586077793775831906634322270257543889908285179944631556183639520980213070099134531755803797932808568256869928650182718137612160437906665918795934683975959836256118619011566664892146086763442499894824769045055115435795619076252616123024502625917848708470678560361502671110624705925422669643076641676828464919757568389700848068056840884373248141102266909367986715762522478885814349835280262447496298749495313056126614411520473539110483761695027235105632070035265907540052619801266669631091513172949601235664665606909361659673441848216230266271282029426217326214945616886060020186919585123976995382486917396573049322494948133440567317263577801657886344423020439274756398217226671052979683486123778374665464969656834606226910068060333492747916674805599605403043294173570754369746672550232802693130426417056017632444670738477145807549487643800187062080958670842406245391232728542147836132600278419156683338440951492259129293869593761225647281899829813917317184478929347471274863367823338116639557516324171734939691020050348833063539945679274839966559829934281867504784041993045277253894098177588427680774292443197567209494376095698785161292229778031704153223802713776487712053079229290888854551950855931769249386852240253340991249966190084553358229794866195392959627736917041116966559464368055510586702651727939057639688199588610776529091810133927345493089933489595624485503084269333203332694375236742451103815445618712038465188475348132981721054533772932475941200329658849644047608187252206492687934294277032106710075776077930559928781875978806985284463326877067053552599123764804871467380964563681889149864159923923412078054618019562661275968487248356537377688312367010284065202213143244357171230769783880941177877258408089266365057039384149286408310198436770754666466806328995436118828097914777384095279648474667953722281000241111669973525481174220056211952656849573351270481266068178461172970530936794986292272341723944640866375893220362759705175915688776640596367346967011438564709131876664807249585782854776314722980057353905970980513148766089866738970449581006568562259499150583905276002583874695086451411884546995953124412912420168508119483467588572523687732870176666272936567578072508789813204411190481488401679913249690644597144400188125325026923544660311424978019000885200050542337186127606246662556424267084234982336423260333575964772260931752298568001351343008375047552792797006553594776566448277334330683645092861418932195911624943700920732802306489397970446216774569306672254404535561179658817695840136283996687086256688398460691803043461199387911640544148095582617591207053826987909018705221125811899386671762974453543869742231092050045549524865384980798187901955458028710287412215102029307467464027416067073134285620255684334846443089712965304975980180386738896643169021890838540568849880533316507613970645533756308973521982103137518974483593119819321823623897967803011862889829443531379885715737854921166081282885609363148634436678545679471508437632590017293485701589232588244930609759286896494168139800662231871313799652080797387983326519765744056275882875898229582372524083947677520651889097847140862970568810874641301506896435528244847888918159850479923386939980248547732779305802473319971143348700994267347913962477065503887988559258855157820390743588079913513064670033246846119520192186204395840679164253645895107106773022686498218140034433627197021376664352912388818032834392269638286315616551864940785777758248198326160201456225246263058502476575714159560040642589994030339512470593444412407782760074203559299033289865504902606884057080787897331357077700441869858765739814940165314194464208994502809695691020134218914992625160203107344603569568449799518583113242125359783980103164756054708593054578977291883922786269689475417158577293315499832534016765518678096726964569980880292535150921478480562420489493707002649701914091175294030092684521172171436116198536436625577213490566365717126595821393046135230517948521088369425880396189375216895885562930665918136195413076220532285969425740271484243291209024770494300554358684307018279798764666900656811135910765105140412901755707852710397626806425489281753309509650959704481436735411430819266842461504866132378413986792284683470711457609977195641324811889564725047830499449569692117842886395248860231726749911253519435842630683501233068053934949792048296980166035711607599079506580897137210182656193786266520987437408452237702231140898822427107761663751401628854895233541124177283269687684243672328714278177455117330427312401976552995963253916716587700560209123105836111271069496295282381390293840411939356437115032698216143850636476492099832020162398350617076393162619288122123558415191448508900268364737885974993515662750736833131094444449949925625778104038986853919084053324360224244463341539554860121319204782005211279561620863281363078769321364842998630146053001100825516128775171259725157322474840039797270712849896570830570857560187344397076989733085197083741527848867208263616466343179950824291552124706664222656292965096964939045481667913571600663716287310516693360928960938087095511216839189562080182441924325259926787559365034630225307335584791574695321162692007760201084140900688812540928610188788579798851692484808128791355168670031680776870904647032513834742968733299466661932117454158524215770564306990988678542217896981283965658984973975300575507164109386782856241160003619670913124968774216625707670859644243202807080647825651120100801786636714178610085495931091648531595249153952894087533208512316601462029320615169964663189860705202234448443139896336400557905420861926933522632467531363592599068514937770876008980157400037936503203232456387353869980931461617037193591382358663284025352253226717979346779205871346306245430698095151862942124562375025500801315760185738310295983931721661309342505997433609475057196815434778654043747574491139372244628392188088255433897083156571889858146925117130670592381415059542178184737108678414825582358063626495373692352648926634766617499437376178008263345863926272068888540131717565504563445122753161467680396581186813428222046064529054457753577299847093568026423441838841732705797140565825134619769992183484938278162168211003500436251001302904637591018148458301480875340402578412164434943594751126338214602174903626432256272807296778466161572782087832830111773828384261471503135070068335511397113735114862732359639509843478305431121967181710718701544296564460916801661028441378169691392462350070503677125608781116489254766956147250469068858576762655898903734421109314056024709118752100473848801936482016173152123383418980382345299066370351438283868083578608822374892621000643704464977790650185888187388008878884482517858270586514436509580423675919513340473172441770292374004905216658460170802188556846153436050289349345514831599477357248523688105939364128791933498131549830583049634372144241541774111188300044750916086599304439516268675708136749809091403169381692775314322740009306652777996182358011063424928120436780058503911110496543819128008672519957944446454801310249817133976513874174160403584032472597230135113727597194759667226012850266079356564622404042006670329048554658037669997849288286052372622362061384913528792324820788429684849450452811234644002008768678735712847275252209005837693497637230309375356070878698836349892030685412181532907317559298484206992251852813135212950017167048721096873441452379126018789209380402364382745659635568311792855457092609562025708982464261874253127200778124672700421653760163389561199622422162570433321082032335133323926824624223755579501095549548364263165036644828245739824930942585052267663770040765157732994510088541698722100000869879948815828564050671102200811929262611197992609407680457942282062762895785612341917876779424753047679322991701776985255649684787336766556159486377947852607780586064724339238197430958266054496197960327332853581029699075679310194533829959080044134283464161430118212346152984468688842173724686446899447594706842266359493044829046438841817184382438674295978980602849247202686429759451237462931110108438464162611239237655574970954406738925564645587249260418349862938478799073277331624645476891226628441765304150883995029423177210757744200501133163227183725978115572725040079549168046299046515207574348149601435338201597541074700281184618959966878438211905732040270205981612706407123111605417111574172542495227074769685557084964552822849426504813212120722066779639733290205169311397382824729244150690206499196630770661119518542102719060720557756748235830746604802400819813992263432737500178135148687293137305667723040382891722411304987551701389419038117455357880018045831668472017548006609126273682872719861167870753689112092765173874422823089867733885350331238212989594383989261019607450684849265788967020499713298222691346703809048845852006947339637597034349384291215057018388125404331714574440039290715816139084694488727787437322892692063147212385106126965169224916889382109572124097338646014485621811143823044362305809405454820594179276652842333978099737977710528861211896008478084028966569157349254122155600706160331066227548924307645683752212576929724064638651379818432488778992178719475810444554513665744563590891223269368713544659291353399047231150584503410602236482240378472988343083309165388711777880021029607819842508009723245290491282048628886521229012122117618387827322446957621667919578347542125423674559266321167580341418398945165066171799844061436497651657012377620143808623601592862475575340395469832945570780297329232732553518564105327956093568459206757916470166242395846639867587857712333360907708596597084365987394990638022187457751922119187358647492814325508028058658781358286100902832518967281286874905154789645025487166994045604662903070290773195735184733186335231064308204807234884597730530882998615792472913091572993086442591257976293125958512791610485886599154213840770109777371721977583018830593779603801747242535299363054192227949803932946969480746398466389714894739506125251950903083686306155062041803430715589931333398390391675729482967548167064370638858425387903307265560859011237226204447999053833761541682952975875784889942617761744710298658990946968057838775189906300720311415241250146033599854650583288615518378491444762827592211922175493473919787290334363755926181567211485105402104176431567637373643815888550426262090125501850345744533054444202409166650363559166857006364724183581071795606514548432630183797573852904820582828472968816937793584478284940347076297463562571912970819088756628549043181460446430970282205358231069119005278619966452087280425636830465074094873668669015161079650513306437240759282830318226662957506636449993882977162965556433262943998462777855709905773292502959425285607920235754817416686105121875498095720025289745063120684227438466339861728483162335649795374616673812660274020620596212853572518961809400376856576019454164578631299956989967494381606558888963698452387633396007750379029770637742473613621889338004990078006041696306739282835491381623392219055536373332929200725675237097060531091826772210586432199682129165189306915697307691422996621697451933585166909176218942626528696461642239478481801441063236391616767168384195590607620914795007569493679410813926255830820048400733195822698764257701440936420370816002920762028828934415282755947700859875542513066636911354666487634751544560792143210004858152986467533378804167462228804252870444953590247989074014428175333761249396663625040788271504170998221885363236442520991090302105124415236531658255771267936331066723680029482382362458249456637905938265123963468283245082590868425250134754965949409124390144122012733985747284048508844259282222537255129238131439749539069033434198369877754164276974735455573929336962997548402146106381572821201354377080817631874491199228786244794438024752215774074323929569301974957769893796392812492360880999603580656342410932579586106206403463267288998189042388380220748475781038599525471371138143013390879547012305877112052200250116684151084095588749242061296462647328569726306316679718115416786538355347489990523216194821095495413452638973988526139792393363318047750212746150301256636359029507325874039869933179321081277592494073195294206361769914761727705678554735054615769402462481563835171746633915277556046003499492975657389207468903701486003621116874088295217773847812861613356338413022564001002947438024043921328755808605502791339462629520703192928112382650486799754030210324566019186986048934149175690717744529016931505443064227488611141470311362649995643134994614372648886472789640999375846592083301175979808268732384834130135012446476128334766088970834109705767534679043869276382480159696025542027666512152256659994700120187823925716815282662203700515082315105436081890382703132480725841427809667781512072753185729376440413219806611005245248602188584187030081352009695015787135319070314354509069438732058766510943306977318539041575508582919619993452548060186869327252640256788846033526593901499260338146398289919824166960572571598094573585031139622266902705478794828683325322223476112198768144506992510012670079525965728513645873938561691673143354082547252880111453588670956493517552701659848573629781517189684786291514863502284740911742060925127375744133440471175388704342895735454534866836742892339271064234594023866139630661398492240603220434866507004738254033034741693765402005184593383183830422397656039560824923939959058244901249127523727250274774973901556654171564431261773860627202316139241692122768168305516572733135920833755187001793388524714314403203987184361442487035549431505512834322132610359654420990101104794617120297109201141921160463651302846481952022189705267319078748558635597964810536673928104608046000687038430960004345371503168431456522673227463117193242847158469041170065450740797993618369467836154189394096878498758056941595625482670230933773505428105785940760470231332189979649758014431965443934510441043686174341972391969646180441242180400199087182090679566205434642217885509644432810615015262628001709277083252232068048001168987165218002165906545527766969107335043738913470987923838016243438838667322265572966610370398334637015106908641339399637794269901210793141441840963122068695393481912530021289094592234517774150334945557274802079234223666922902243897291351896496333295918995518608501280742430937034452338178691027749237611627203650023240240617421474050314358480374539041220088581163311813342824903409055587821796732971163075336100489015941406657558371965351183382281213187023129746683210248595834741796656727803030830650700920681582136641566418022407391490567245685196422322975205031328617473604977604035192728812409936646561157651666552855559068448480856279651685522152289251683398804660649857556568118511124786834040688351686089389861240555417108932843657248407825683279953990966324994390171701359469617813648320007669553804241972932541191749434109817896761031078402183974379226758752683211599223203673663590699845682681628819324811877273281986314429680338590992147651321193477308382243464519232529299495356738667617437373954361967542281910521050868627350943816085322220579127854065853897907074432627589082977940378700290554178427311382075437033574734523234789695608838944824095152480178850374108370126370212775640134840108066375052867997934302631839909341027055096800644517858723685577287708316148026543186929677740552254416416419868932716345941375235953164608070241469394983121400387397566612801784283143593204390697599910330414536388203079859732924510541987833674862040988854556685646452497845088413979403001186799527449184742138831911773279817791485264249299591543935240366314559581792361544191819703344562980332535897086614728908550783391796789963757643676902007038559126857733269923847681430737864009938320821639997951127876789683138397275887677991043039011292841395428316528905717947417726623605131971138961244853166055231652725084761937298082781745582539864400353540791995654820335496012707521255623676591682347307618384495723097903641898581486205008868523364167626295701845297671309837032982179869867424191281942391871562954076761219681862180911601159733311190245210740595791415742949334147170440911426842829803819998921223117758293350273271944239028335164658973220960093063686020190750719109445983311235367544795952290636113423530462535447871127451600555391414879113386384913574144015682771202957438039489521931094776961421861529613801932028365564118219444173663931060591727706967923930070375468229862707075203900548430802817013822978726156563223628432101704250895494776859090163891468323875196070586611778452876442995774095796519142510564167270447224339692813593673457994948458697647664326998419238715107518805725851706574418147661454515553556690815195713255331191092522020038044742365333100990902483746080995711128705356534408378193665695736076674208196593922466314393248492202962958532428291729700522800949763474642142513079320279942326749752462802029522365426571755345264466001017316809132643381980896850519578346769450553932275567211120845517715951048214396953543525949375274329312908963944123618132815387996248015149807411413044719820182843615244340806463860683198507347274200447789438033529717103762031102939958810780979243598733788169157079153248991563440346710258896950251177071717898234116840347891958768431266703158303340432758855696616307258700037402959392491759905023107235483569644114406882590553937086866009012737454375486147772312240895383517689332097214165976117247493129555188981697196648048965300154497647423344096930535405984690985368326942961905918252446618671368557335038694943340390242684968575239331135109836530904761077739980587599168440960172699660065265614558967395505425838711442391078912478736203647170843504151180491317163019231261765332005598547005988955187493008500269992943924961024694107921587655310027050707481721072497546821792796351468886685679290033865751422996573446847335752407354075293048297852767201528611310381685953132500651575085692333325090731632356729267998600112426105943689322569593517084606911427481991864216657430295961813468602152633354684776264073815755603414207137350443369401280572892510224405686155863256361716005745460082318396310238714847334954580294364891648605575103481118410362679026173842684281717671207966207081848551110454575720225703720205022021706056710961483266701967532576902890613034813344424392626709066626848644980193185205209376129549000654827065724466584714001609013932743353820983156510372301852592322993440728141588633304541989223879809859687006681159094922987752506820178631071348267524395154162186352873024796525376364196634502639516279293673994425469614784842540494584070764809487826895067281328869425127147343110924000943078718970581566423332597869155312285109163866680823558312030567526184760628176988663991788711254502894534190563124199061708948215983983776664643548220839000826798973315481266178062713709924245768532927400617473632749211542487587075972883209942335887001459074574228973116497528447797375940412032745594436780516587524029742831785928472127970254369322042282369267064203559859887648338004913225490982959486059447918685578693259310635991024886146224702270829012490707696071958373177925752270222601828583339626174153759880282459430060645549157854240553499018481879238421738547529671933611602313877724295149987776926760619834983146940914480107286195002113412764683908332067741856589017919212263152548917926579700169612871701860436851334622817174512603769028129660872871896934298293044399276943140376381280377913426662331809341159132432884014436453677048641064157811336040484037834276634560938715122652952505858042536969259868681686234035056346999891316732927830011239635669361396362893622756958210624084614563223630747430520576567929033543426274327066845290055659583372133230756341762766430505149108363215088644692764090079629742208884384174668839068337764899271548787232979163761839436640164522145844094869423549984196214940829775087300055384724434192605602897141543703617253171457924840336234196165396577787012918783101493531739639738533081290953010966729365303124842966544816569111403244056240520802780012907406721577687209457889574887975634299567030787941148321858353572981771604165562721899411473977686399544946465940642442362266374814195911154332967316901301165659702825641855064090328456358899141385589983177716667737986317228834952454501463640099543663598301145162004530157559724674719594946516552211967391411708413710778323733998080808182673453733841119456751434710537938169827157164853375842886792540944960848328185639649550067922740235657266693110630164393458744341217865565200685745973542463822054782118913062881686525547304264971711807025501045482995393086220187175498158721358713951302452592366708502883772159301114390199455273323178892023491641170225689358372070541985876502080730474694235168580119999192366762421373498564235698898567508593889671794891418171035764564254771074599307336094620212057109018857165604375230266390927261505474596418428965841935312638295782309197614092084555761233606403876523391150763619063985537388972505083297035650003376555064382634007224379195634376841965980853981813778287994107796593790045774176899031563143457665752785679974895572811149028320762650291320867829566509843952624191045170043417692849048187651817111007862168774673801830797177093221034124009334073707716612241199146379762809386298797445968207354095400508099862259144629305287847785039986374071514901645011763497982200411415731442146438363465329943165133498712677528684320812920462051319734036916604379970378527824017193208792759196744747595983530773938407164843074781299545395769447087447481624511952090802913975408036201854360937497842055228672982208046070691697674746136625687127229043185193083524055371756441489448059973300188652555700715603390591393689114204546967779776508095164392423258690975265902075631843539275979193465228300316686687024320776828849433958931806826021907619406274687544734314694476011100931344664459806285847589014010561480320518155401898854531306720077580180393364982883862678863089312958839411394784517046104200178051683895949449673743327827170260690824062937227294449462633143006950817262091597095855321170305952690419539190786150939215533107167139563017159872888157323459458400223678925740693660377258811325167512292171295280187633709095160708650961512163893175161476699445349796650878125620077923271357001751721928237409954417226098481398812142914719266668207042442813083969098669495466797582146711918324945811914349648572307034274476459331498013552764520192082017353813190703547583932540161209084709924232870806400699056312540343597678367289747384426845471662860768504325478279608406018882303838399048836511598957263593794346499036978833091698574934982674209068994903820440531898543731128687968997654848922505313353397848674542801498749250281995734210139618720743872760034169063934815886705588956773070038423641759227130107788803382862859065707695881454605469701885023008983312828429515470585633493858268513497065271800580017832008244942141125266131219480479597460643668092481775422890804494635944337377832699599308160593500427519859140801602149239714371718133992790619201178317391782338079920265924393445292759489361970085011852208909421831051137186148030060173332648317152578161949800775521151874874405459805404101335283710637418134180123878337754373128701305091448762654636133059496384101650485200684204115335275433774710380465906736302877594270492149033496840066642592829665721986748207703265561378790765084169826328327320668826248301697257952258716748710085790978471888660922123257019260934446850925018046137338971305695806234636777889358505906823118891264221155080700573465537497813610719226761374527577247898304321117376609084408006234043899300052112279586638739919085935025825744167104325041171359694093726970137865633243643478427039794199684181049640907168780879867674593231128946845909392017742592824555820093646561116195007925368291569574912411092121807867689290115689759573193608405020244894568351122132696825692453147015173520723721125399717057859046450122771220052059295124288179008022277599851518294717220792732633840418182036044191020839631949426445968242807480941242799967781180785676281405410804046292363598481765605527109114050787956702580548459855838824591661254857356006343066695262470990750763504428159704432000159914372858977350487970463508173130704076048225494996333903606270891955681910539517172515699661164140930769213502647375535638405732891988428991899991600314153644004793438271513008881251188782342240011426202314663119155642635543346042700972553070036260644999901527158083963958479414715591104435735982481770132427270011467794901305672871262882915974816929712046604965908502243728843517941998722353054253133496417205506206846744830461691347537927557080886155300628066701802838208527389927098543648842546102238579448496740309559500255401000967799271441452842958378010585004135095735674938270583361661869572857181999080523956094995675859876198166233162521821771915766592395193220179194615476139109541211729085762143050710382498654481412567751034890471211586736925988433822057048518290149282990983035415183179140285579558938113720502501701266210388729751377405226904514117841155420764847585553361110978142174340153156811138312105336874125048844171813981513357156429942221222380432064620780176053004574086168759245451999750736009604136103760964864500825576648490545135054111379376277374403077298219865632655514524340680472641859147429908698861894409215586058154522786076637157136947856929476581355162870803391191813873777550813137414392775224103660448165489580901817602624594556264621499384524369850732703322565791535484682261965705703134067450960359335579175098561323160262822105943034707916546169731146560483353493044857611321661147072438143271740868460269608231276631226295695813201043463932017341789318393103252437785542396198515671125452803557213932029978672702617933378644979184401310059410160777553343830710511885657384109511959918041356152146757944999559295448928475193454301027330021062557623649078713797670859143663850865413039196103457614603473876392627853725991509076777997418115153063973055809060198446696516602029150943242602725941405677316448700626670187893463841155617250562787553158297066839853850402392304122695923351968835710814009373937228670151330374484863213802259645417463198668077064325280561227944250450553805234122008602582530554734908795208660592206564309655097745617603332539609891794830175861302188661216549576504955626841275408489458741209950308626502935541609945994187295555859265184622835571526147106157098493006954911092772926961976754282599705675046199815738618597566637919895683076393179314183080612918443503287494809499387467712928597461712542052556256318340014998804423421664026762886572263763056109757883697060032659463131911185044342883409368495000143433569494620478627314338429363139176195820007410858864794422607959018477103679822079783571945718373390537211556034102359034199049470854267221427758309705358495851296277806882138032745028412932840682591206367485348442381787238985505416493577903490065833781831926407156861395345542116759691607777006191517345278762922464524602279752271034074561094766054920525881646267656736514597189743252648074632153001886739879825923365991931577502593225788217705514843655514051639438527190466516242881914756147895633122379045191254323485423659647788890478603839049279075853735373214085773990227918994100463501577413480755135569215303431728538253052913375733509165124377406793853089033448295879500908670901221185447687585217862762308667381617438624213385272027246016507245031738225472617099283077940943543732942229703040964228929589031877726061046739642129946699237525008151901486726438537335582829949888937799641888670856608775764318814105035474190245822559128932726155963929767141215368450061302680284801446137712621406802787050562029805844860273497359271503807726703738500352840602004967934702415430017995682400086494223767013092413787980495872557043740043174432680357673775602396595345769003370163544626970364072909032553501729629554017631963094243452482786422554013025117896035582882405333253321903952155064896662060116390562012320684287991864389532168867127746116568607567341148369821607542950553828311606852503698514159432858822038448911195170323827687355903858851457505497864713585287049872474830530441773912701822323444655086357844735254520966107082811835689455394064996973802245896687332882659327491887551521799848679178575463465873467880217665839398776727588205978322593075557442036048930793404945742330718150765991647055691213533019161817095759535214171887420698089433261328478548020814613843199347409076657290917224113622299274748647233874594088999496165029680642747892038115318128822672367475354929219845688840422716046547389564325384182235662002425664717707089472325214440258658563818660780209710253063241673556741934616203929148830865466149952357657547727112952080456186209909101753091344741912830937043415079344292339179630575499288622089359193439099880157362968563064149831319317271457896900981043731174668573305440105915998605291639431171487493335414349803932919283613580079181395035691974025324231369700496377546427545557925772584019442148875739024667979838620421523154238394331553623255247770483624810953729208586506173919482143875951353418041785214884257556991210071983904155907252602362412133537248312721772865259650175622931377288391730134589259269382766316694256847539052857137856522342354873914169010171259209496655037706934782501975757711882513521519601163753831903462908547238251090791843635581573388095155235334119493219777293568252174505316159119718343289845818760773183244617371789846556759784043508297644309998847169412553263845057406799124907218040448153623721962952909581683200751428603629362900346133460004427611480400470670664392553273922991823554494740876068913105679259817057120471854326121185060996803223096850360632196115216347404274303984022757158420922488169175235545958065131906298756696143475805888919794031897744256449846233025196319467415954238034106822592061858196586156274045917336681714522432603937857673693482152842618897363184345692146226785392868164206437715501813259951822626460386363683605259468913610889323529496729322305141210564014887392516291875658571418076137584591594450935621487646167313501580201720742303256949121398462171257763457318759153635523037468392078143732943781882608110113334252072072715161219668141927987984641489851080856487110642955643352050194815148536885642458893441441070021105650101115709673603417826379180604587816754003416263566080835376949146580543020337961319340603182033816771690504628538163899974098194435742702825777152893385722631799710605730175193697595514395751129859216452502474010638928230894945445987333017996129638842366902402352974830899090542497986474456874856087147092958780901932856630106566518149331958654456239527512498816089381955629263025103487148956791740209210022132615970731469355992438168539760220567260503557013464363000861837675630887892158251641398339271891908827211459016662224987269896561126077448561797824095317567001951099083095481806980887882502267642675154462090620353629470785709298384321551815741934620213843215738720338822071486869599133691586077264039593578975796301592042497497221276406795077238900240023441116264006237859998014586811108157330145057471974787618142463632444314921818918261372968306008584785919979905574283398934085504773860550845655421058381341627936793424975115690430396104879658661620150356477001630272967108151641152040527170817362338070706511156267673562798036285278935695171976948651224703711921104869234478136761897265677901208771070916310012273132559876018618576984270867068110891725840423713975737758584962692157530562868117775750710450627004255029364212415712057323460552589176966619921256655074388094436327381050958963454269921273926181864794446085997846768614705970988292771218450719449335054597311293678358564194148294692806479833051214627403729674494712723880101625116938981670139049441921458830730452963439163283245437420671520124947462413841940208697482607579006524856180955847381057314067426252390608485437467379885027850504844349468267583553719432782733213907061203558798636613980125635585401734619081062438728040184231308686211711510367630874565703548820386773415420009632027047760277998911507781884082706613699859824278137281604069603018953058475474134676152573160677664531086066008745457422891894697304063969227853165277087714068726182991899877633727385814851842189103089779529868936529297234576277817218872089452095871535296467379103462481110629514197479575671749377330052278024425844176431228348206252244124183717981158708538766339138453763014399533317944251360294747457391751455341670312736789516705870612336928350198572480294180569335913923776093282810314534260732473146997817868518229040170653435463377534192268155166814181967752086065488125531012072929552497411327621385591464231943439435438438465564709512349485163255299006363322580117128545618451697719653301019057036843668514922686704861049358691869170731770299857283480790214896808980081956157730981428140768071157575477023443449571792589234867038375748726156560468621021822709559852183049646884070719461031093366236691143307746052746843775064354471470013231923777510881908558812491207080590732791831225325275195469040815182758345580692025022939866044727631211417757206051849037526535403135132207978119659874284184511522248334952740521697467360333609735089939676568348406207410722073882238194424860855114370575971298309305482006506630620544874549423117983050176339509782383704259944221079713716217258161351527123061767203743263736952217345843069159825538059673016368352381666471357706650163855851840374887025194513287876562861212280280805391588641266483429306125895603684093696326240938209943749579591587325207431346760399223603743727816110692938747746418890256957411168018742727686008803804196363837889382529582447610062980266815833643209706455336327740657564199532350034832323663522514914589736592689838151473408383660621608996798092920446620571488086518310131135392581030022811062842009077672021484294849130297337760972897483163614848047992623574637121503633899704681570555196075423378757987606203519818777361701628310427305012042513170740070520645060158273360066306681362256959449386802396505925195106273702979229940514220390544521293006977869555802081606151815840728946375411236612501710459146750612392973665876321460863325182224227912515700267734353667290018454179033153892425383578175285874588796978985528427933680961795414513244848873488949724722487109502799978224126413861426377311780426863515244811640627212861818628734715069198240198460754438997916325285421272125557010144250250486484567010257711948180223610861810170100838327111921737136739128156206939948985097355038282001442618311607558320540637771205376171282597576319870339471315286265839531489307320420434943487883324319239862665720860625769530267192015352227150415608287110191416579716035137837618607733178214747495266343060947576907371674616729309682338725175126455418264167391101426190515949522774583466755024726359898705947079014628232431722533259631677700217278942133382809487218333964650194288906376034725728267824987253377125994853927351590059835046082889316978424397594486246009910856148289051745150097767446999618956431531730926562503056408651885863935434943224796429597627073185738786721798979848591504594298199955915859831871261321761730147866788393227005436973857360597146287847671641484537225765297522349491671951751885696737133470577978309067444854153439827226331918320762156030953507340066487568061952897839790904704527253343662938643103237304106510525103141470669163857608689338042631030226287064558677830364312020117653899720757338182221039201701211324847446060950221258488891988130756391485832294069344081746300989341449219134173282532858686633719240080079985526765082359893974201793707455400544133811430110159904564469688577023156541731085988014641446979062233779263267406434482357197866196647473371438087038361688899004106703003011823290832571865202941513394916982095053275583488963952534500162668285389427211143579592248372936230386398357443846686023482055771277134711755369833275989893469265411263085038657737068668770331422198622819379016851807709226724717847210973808127348917547649768305498020668453475401489600056921067227675289149156560942323477929848599244063296702704100500218172733425499636756679618872933193839337351758777311642646502292735096581224547324252877189243055504594792918420206577400566119109018967011383741016513554825889368845668717039366001548762139666003988386759145435828248421480834910201499608167823955855760106663161704224872190096725674688980565146410748824058577881677118997515772917966223924189809622522455948638588875427681878950693292918194547538165778580282194040363378191154097286510110602942421525549806032134129542163335812265796802212231318017939083656331598645616635661091624091453859890695294120832936500540202767668553245374932633773060222726700120429244392505992108760804813475787525005928095534251837124510221300373483811660100228516803358453693277180350363882973584960299818814614702855758204650289632912420018186544993884182323255313809398609068450956472946808765735067552180999802236287262817052178494653938744225515230672784502501562517447095060414519401459959787828913615163858495799836058389295651431408481297890781970374033952753314068093236564774957908526616269394838700345446277206962343443190469761359164009913745117519796388087310953681611479680380867775272291449111204488847675571108140038517427481434568232243603841160997089303132473258662188310994771464678401840010553526552367473808363506435871927258058642255058362877182889058664258134617045736102166200937585845394362381932908542542255791394559574593906720690688063152206411661798039002932497860200110351638079102735754461351791927548023948129532788637539828502266381014012862635886517467445819453222366044750456845466735269390054523611332672796249462634391774037735957275040213395678045493217643723603357990742593076489924725657825786168742800013842761506620359680596096684250163698825193053220029060906120927283472076688454302573527309959980951804057546031171605060906978984376125471809628606536936314692168760663329477142422635339839942231006241872909298181531042451493336893871464664576736587471534126189187012654400888291485606895713211733872857499916933632514048673689585322122675127842270303993377973745066143765481277419667825915277315592184598649049347049924866021969279113984899682455555513332792839902685842820449912202113666630767494643820474416446032889752031688848248619888266563986240086660399313695216012720933695749647159196567212873463493653318316374901914638748958106881476931031506415625600233600348287630469299639727330428121093559988523021018556658809813273263675884468665176020472712932909247154047213251919703875441920104175418825173715312369330191539262333619225531652642328974994403390305673676094039432943091626046407387381253118413044629705085849634314619729727046129797659094664185731556862813344518571248005901006149392814352592083685052606836100033801573762666151726060729834279618199048076967362576636879665100639101202746879323209376482419928401793545230084426794932600889687034316947074164919635803039110279717184778945433546570064134944906819657144416919928234276136890521701487685128310874177510136619630609714957461649877940438457933491077532697271769006008776045080307735127058012583494753178026859388245209756064231726862753282473447784554366549645747850582465664024957483002802878872079851388679822021149757962571961354953495447966329498494186688374146942163411632042774795370037975241452026090177049098089665939840194823612430903915939191514484190065523618892376569728773558285930961708669024665878944976378669887706362519408408975881374754287449394920020893677531853211074905575328249128607248012085956150789792525981880462689726170839375612305692423934689338019753368857979537477327746706404291973990422425964675162766121682537007443326500400605908773833786294791575027695496838126499145274607396328175824808886205831701599813182273461537742489968336901461460338077418099250793150187763494373167689742278419424892524419439693674257476198290167563222108984250361464863184393243705916064703043811634790863298921902418512589678485707904012425949039649411962147170724833867925099031685347992315550112657578759687305580706136342944807987246518294436619628118253578785387663713239344721019420084407770509394959746494124076585708461537049173155579503950479220817462429807383854572292071110457693296789837659729431872057926328953583658260343061068771176424787224135921401140615304544940323193351571659283283003744616385833172796849757266632809266829861440775605359300914997578627460055583557951982600737644827464134330889678371933467133466511838210497924568398501695858676448319630720950970760967373907393884422290731824105417196202146386582599677021452293363730071533317101488976132506188187966144567208233155292458418368142884882795967047613285076070722297838719767520219891750838902733879883276388128732744095598182884877524644315317552435600275802332918378947289613512785508122644388432758317991967966885014026460416838459820901430271533585943636919898038738443936555066610342742556125191650945689920257265960821015473282870853906509138607492469800965438277343641721941130437173510079461403144558628827137044771689717183053739261948127704761916450923950468008316810060494502616346442668334197525692461477714477647630323944108808815444186314166776116236409149765519930798988307163652487405285253383457629112375099381204640235660932891479030930033236526130279773048510096486844423939159711295727322497027455032674792214231128937630716887372939341049495054495494161615580547117646124447763026167444874537506884495879183399418031407532344160116980565692101762936233893829833542235460508053809539835255175132677684182871117292644606714041253117183690973117122675350094151262391418303550027061581848622426068497886989873894496857008913167276143466940554228013026250819659657546184782224753283770254993278665553638187144016249218437090216923697102505671709703541045779103626113603943470822928287794064952505412650589774590133485246024590522481115345150181276169028110102135902804773851837195488110510633642139538409376988846569646795812075351484442922584657395091569750909358220369224194571172975688394041887655676191601259947853487883345706650405734901205513044960494249507444855821850648852476799045847596932327110758513731788817636181209657637847449412724389225137572814115236585799593294990938697626653253922994093115322384750141334317420307760553108105763317036029716705469433523378015305430815351940757876906246642441135700955326886938167174254501866648381202740916154817564372211467734258880713885803543418710948407666612999827060782766528306609352072328335158176286135795292457936359545897082314800973250447836404996854464119156842242983629385365343488431880014478760206140620648988450203505586628228075714750678668352374285741280039543564985033198078646593852161564526297917606113097786777845302827874521596712556861348928935926777424895076441337793321247538443059517661676295230062882166848332601884535927236224016965821071375591197615883032100588381513500204303138906240073467330868390777183714984060087236122320127662273027453501577968864242188558601047362093242123538708621510269563313643614967661198387133709509913264715090606994618531092051537399402803212731726118113690992719220707183074229062757999022491981155649138203771831587786382515245547240919077736650104983257001249501474203923974790203247614141878484243991923564719171040662683262919196902976892374523554242553434463819126539558332810587622737524891919241509798826544866240574057759297077334607746041274770787454134900883733728202323264429128897798131663313018856203051609837993147937444418309912131926320191159913778154628250780884983974941401414834114343139379729557322234440355478892121837040151051311023694676102822673331340836905317906712304318053250597462581527434709507298130241707311658601657815019679080934191571329490639943606392177754477662260982969120316952488385083674695062977141235212740136997165207780102312793068137095070390250047750169546615077600739850522209966956974084261208565233534404268783839911957159918996212425577076796188988082809110221844609527158475496069066214436467017832294136012530951358989226994186936664292386766391107271458489444767258381692639144237492469959050675914819858354766315778007539507311669871463687487252650516190192902396709850613477081488097042530043487167522745315874906059709790952300438823388154642856663807232987722571470211057058618475017018450715307550831712683433850102565343016847974252268190985383091967460077904195648803948459074517675766979858111776665500587496853220456917253366544011800881566472259107864886388822382818403703164855089262708194402796788126500919348827155902252307402742695507549796606081832515599223187404510151155674915439157381209455970358889464219298684898547771902583926552375018001957780239560805908376591413630030351577457693807638725019666131541212373613783810162301268898440013912196743833382065086255074300275578902711887774098166892836427845730917012853125926129925064063225216160052678340645724745094634950421511115887495434778820970975928796869772384142347403514844571858699825766034199575930522736424896644179787973015496818041178228288853700463785100738607795132474676645843598651147531359110482312867495273795649185440197804150772445520994007266270042475289881815928257445001302654758100994394011432986427735976075681469374703468436736194595135770768079547565887974686732490309942668678783827684494629907455935871385943385482361516766406290959441204655827175838988979335457439912291489731213377315704375066373423481589415687435568589883053273878287389813789949384036989981334742081419074181927792825293029578109406637590638747556856763593216950511402663593636966755831352295491021733259741137628054011985883744803604954351359258029065812485861060301928362907832706127329886269023238320139248954894422686716709896727139604677579348642822343041040560216710636217245251728147409815678231720639155867695374985512628069752532037359185510792504717864625536919451389239961288847973532053087550435662348402712280748941438191685994165666509731198998801919556331611052027631094502612139637567050279934517317812089611140509921065675356069228303665614361462911476992636777245047642378239044880375429916990615354506633866800304080790790818375013245888644769012867052047495219252087687463696184115476145225405327470130762275198149090793754891419125127486627905665778211189225001684876105341122067788586396712815396813103878724804748248154533951220390697651608496852032870324940542981025505498515427965043361096778296172553059971952761995878941500496253939818494231550368361734764530582013808969849421525526952095504302662450609799515291321459928760035557360997983339744164205918248002829085078716561711619876696648570250340338157345743313139869803865083180686639504174187826254178174966501771358591732042695609816388271563847437873263318482904733687272042507313740065842346918929090031645508650056071870796458571822811982837901022048619107800391046209274259172011436655103412892087805550778671293415428800937863898925804452334543564819678663853977352048597105857247709132492796818864040315490909111027258180213803613825428897380524578221528083934196325104047748639232561946508539735060063597581699618075770345773809264388547787824229642863258839483437243946978219467152148195253516516155423243740117966794223036980693609836088450858981310312072705838657412751563359375323626531114188185755044450262678254253420832980204828872488876956924852890856795448300067296731433949831953663549311548403683021077562222164048905181515960870794568953723489815660030731296872949673592614241004644645683248262201824196086642901945535510374418467838624675995987465764053270625067577782977884006284311328153996115139277520181580808541241183120779931101775383760337069333560053924405935789449191653360709326743134779924148269441931303859566441250328138218653296001954508907183032561929032582852241966541906841257191639063724725853849763358850788805229644002820095936614525983478619076147160396600357635250876963490057513694564405169548237071523312781165296653719169247489104271322741292530424738640969768135131111274311491787163341127565836915654609351140138306397886479892765613957919602590766018294011263831101303403878553145202210658768287853711710675847737101876393402253708582108411330352527209191719365827037454605232001471398560947141623255391949782331285397105906162467306958346213791818163124454509421528493706378417527634251704496475106789314156502725842180344054881644316889758713975176484233219360038347590224860398350639993092162257085374163076701381414231353058757810160729198630335759792059696928643578902726621637787185378255541809426653600460850673493332133125181869721138187566443075441004445507427285916324158832424837541675829640761220268824753972781763604731357103658823832332049001838739457500140881984924928921842447479688644020069484198517257906691739303816404398859919811016482938764286816199203302200793820157938538208845006238549874125742195843365267251545334013529454279678510514989868817904394270831017975422517042475433046529763363266240285897810452886978237894832552325011320207676515825480839614596425332463539781690897153131535771214109594268874781279869442562105173535892055474558813536521328082863292976058955439246369262456379036284964772590401078450466638546423032811348408113657380712905914874150848097559798804407914977545843394591704144015624103721111138496916091115929949303897466493301053782529628618717832808731519083597412019396402584424631063119152467616934478473172696457906809040298508442002119300060593144984507710233912257294116778345955724504393878568946583877264562875066676939125159405908836972083013059111059642057503147969561420365741925594217075844736865989841284762896688298582675626236652611887099155475052872523931267388594590759091159085766397924175367756245681620674586243357525930498767933120230095968490359204676553803437858551721516359785046922148102649186955287331918187218155147834436056748722007708509517070284897816500829620530920544864771366346591577113947281225290125228869653803421854833380838803324009647982670701187331014508684439194569450185587964920160183228559809948149426589786899584013301752365435241171517260021528687777879758519460883082460129982494045029756283875196765808644984923603565644814569326956406475534810032559762907450252215704692149950526373585813981758700625184832123100897959090224883032551833542937480723364232100994501873720128100722016414405710997233682433217870205464375999164771500696424401437334874837810541282432712427277860941341871968116052735434590991791571001520056705650594959613294910142779811390717820700209107423094786860225109527265317839620195073881370655793997298444343162247316790028439182119606916704866402058358094653846867312389124987731733430167324626981421104835073950746575036741071611880579406950322677555542689118276292496235170667018696883389850079729978169423599513340232444147290044819172916622035361651715457859324861087879056965177890044106352161149038421085603805610136473356902115680206246395201003356483598690073655027948619149087966540637656840516911379048271983769762985876872406983757000260363881217407467088098493207978808646024472338851457853486495599226143036234622419344088407610527801295631114540757989312595927457093745156186665530712877590016104343874813557104971939793182734361127125696659330105407948699404663092182023414123564227569539771070254342378498473928078879989222509828723312108419352018205433125476992710873098863655683295214551134244437885807594375071871402184732246036810078069504752349164638737111223016455185826466284938199585133855187189242997379928796088058645568506076823544369662739290636977096348633622016927343531841815635834896871485991682327756159629888567355312193376502768894595748635886039653110564431790714016858421542613239027701602024353649573223322689726074045069224127540326343205594270029661309222846425390634983326669491218614260299418311574323878182058584368099120353291194288157478917698072521731868605232740795653811427047801727493681335126710680617145208935535702559151298870104321704663758166924883114515772332321463935170223622883767935326906700945410180481764889410765922888785513706639176126051432223729980059050784281444391536071642014041357535205217688225948256613477931496697598720076225101420841769159157429538799639041771204996943201690070137563435595306075070805280123010248736849237265096718455571298887665775367359014857044296088628272011077770129350046778351414803746769868192747018214483254550190743656215420235157146642219286184773638367289365553455509559458459443692819828507336340427761653314836862751865774506905252844846456985053836656298211528413567497718543459936993253955320839549443047030740922200101741412026804601366965317130766123395895676053344642303764811902601022482663225310471600370167370816008404285973146793119424147491829286884502183138483931065655767264655194691791758961675247393693493584058131679329027277867238998788790317144408574303495847568672774166167941483176913666878732020724081392946947173294518133720613479895568761087777254730507664490854240990462657716221687500751050972464822466450178832500683505111938933797412122011971288985383461978143763502747183029083494720663675890423939768705688604881880808069759298835950644278798049642951986893708317642102866716327515749177560445348558638741192695411880694088812833615670084709788850688423020306051999983785659503717592475370691120199898694139770935869534917165304034991358072762269734716991353568535660962166939715323387603778312467424308813361178983504495792476519341365998173022985943340034718120119048429133205522187231760528900810176863958839851941303270043369819967101723317871173873480767071881725951346545547733266142816888157589024893778443874421224907601867555150425257791273087843096082446056473518441402097908285469587332935638757298371131081167419463960221106658247470327992763186416127349153056119475506957433928467081403627451906755833823739927401568223702877698890576045267590420968502579065335845332745209987899024035653610004001408321310781459709252141131610007598517535267572464102032354676049315054015273739776569522481925857264347118844009035324665586140984741112942936819951265613305396753777059071474367809635367489334086960180126074699439320249668040250321379303294107311380256318214387664747344717058993507642681265586135158930436490346977824988740332987571562470236520445403999060592933897913759970882509117367181332382554574239348922782421070572860060553221257726866116661439990591033830828056997924341559962615705017976818913237218210468603114565396999841474495136413868416641213902394211087619206156749446161366171134062930722401867801832779680272675582683461520384765429602325469698482356792383357651789540248914835871096910584826382380442855650782237046695888066689681632061953233727876634877164909886108624931979791993808969226838412210016197993002088392003982238514053359554144096459239376766529431209067117566861062070776006417436463332248973205719033415920483658484310449422456868672385065833050406079832338004864425766709556597071250303370336906349913171483250683575302500996204829613226890843495687649550452540864061482996633562258645792318226875271092226339832612008092937341235605866841046536274540358673676826701255793863301860958806627111984047653752687799894159450965791115405620405484787788960575890683003495477490660695060218289345122530998714798872827168191955198051951473343192877660249781739944597037925514212182049920986392027538607176172336837349591226218603247580567649604062604042857570566122667892356563787861015875583760332407416330998436959673740392668447837547962550867431869418937458062171626644568958082615978020881225629030070471923214502073011267794549286142557094548713572494615503883182395296882409126235974664377280511066795663429629512459783802114735980263198392843273621350998190076106727760203343119052021752729292456541581530718754982384541929067802902476219886000512232220832899220015424607931058013042289035487564166160664431737933536938655290840474816080934408426976420260688598667057157264821142420098046224282225933819243408968008430837238053752342164918927740345427610614026748758206019883557872284069901705421800548960824293556122282719497705004235682918363399353183356972953704076561276419366394709067228736982761666176954494533462877681717957885789864064499689982038419057299009823236732868773403093364875264423912047780992428023827118102943884859051125747090547752232131287559098599736751285469067485387780258620254262678356598764440993466748688068001787563880006217013895801426770356191237388986561977052309293531840397379701218798222963619142072947171424734667646534254251411022277874567644799361389172113623040107024226955608294864070233567226966746205184163778483496359225667570560085592151739565310620302883425006151452274812344271625734793544259814957294807817209320922225923291113895120903917361379488666168959099257682591251720717168618786108207367736767553246139183755593536820130632359164071889995022551057794200312891868875085635831465234870752793343525826922106895702236564931385251473774676001269557180671966494967359947449951132096481649091483609622977021364747179916752008660891637600991347175180894410346037292410312272887358478086634066228050167991726557836243790619210696189538934705167070047003607110082188186464037471099197811757996417935082595584637593746765109950945833406720313376587845323533043680715229411703829598476325047626320701778956918856863563455475364638205706411353137824152337380777851718295786239318897489836073356112312114407928106433563820398775920547531061052999916884330174313319066461365569032819123829784196260000239628893562225004311456693563922698099270465335000070827925913855517490880610968126589562701433122730174184861481019048772477200994369222517068309244352394651970119282822884461959116834379390761489582763535869157614824866256301516482989191191275200165707732742093503267114182343034463568673896170316339036749581832062207997596924409951544100943977857507402346728635945533335672926056653840270162519807093228185937786949381007884043299862553591511996385116493123345546028692639653798294765657639121918636752769235649336850911228864003302579467186322197512793042733885477238858725585147157161012107223680204421465533911835960551991282915833153393626352765126006102300327687922271453080064841033709442183473016105427144545871135543648210164684040462095324739787899277010750471740502466097038161468963533641575818877335894493113206534423359041035732732246957917530321504434433363419954124618035539611206609780496478381456562191971267892345016980109853028659940624786400879429617063271977309615184944663695638110565499363968989326021376275129008697921743416788958869373644697881595886487489031968006949267582146083520897455304187775029378217275097012023074726539926613171751691595833951353247831377954895985966173436097285671495787541437256397251307676305548589106949832073111005026564504178322554930642990342420922277260555774654363460921240993317271763557955683977465795392632573642036548771046770743277030110387135892094125963849728361854523570744818783538211280931401408320893386897174134643234275557321864899523871323452886455294901787866967720646679429211302583601607269196016848965833016305933025077119798773241128269024005195279071906793011461174960944236488642284804233575903583367754347296593072457036808754276997328753382873656309931071307110740739539580636596304085467354829059755839039117473886666968106198484235756755135497351195255897447306244004986687219073941823307013524914229132158329820314482168247284820817005474575223665313258662729432600259315328268020282254069248423020094479323320626328754470619350416984453705872703718917507531790585498965825575669284571939333165441440193597690970456914909021959580720523611245438855262641141318875369050715169946225595386846607813270595574111584072222647071484544773295909457130259658239185230079401018480842088201672794835670078948031727139881990597279128456352336102840097265842771882354151761841693630306505557840955881553438111309787588933927321896011126115630437557840903870176091090189147779497927362830741842620510734237422900504292393639769324454699144685809708332894430908543199814984996498387224557608740485888409386298295822246178417997635105977101271115288234493798773275176851610225270036453963898604937460085467087982788016924097724219630099157168423990177424179244827016552349529130785093184169926702140692264511135985236039467550956590534165827152434429477837767001734091309132421720187819995899615559478200071283269471128464036061201596342632730789940246863109837173323423208169753243830663764920761312952018565901160613554780647328624254846060502693689526590124028342087761818375365796420923136701846214963698387420987406437846294148222492305069441113555020611084419176008013757784575520560719430267144319226860213349308327848258537584610377538294902057426542022461862398837070131941720188978893924759213170111779582853854878503162775720830131187511531160537407082159328259427886149681414076357817855411181096114897796249142550101522113816834072081898888213552147184785440305576033439048309867781806395203494028624225991519406194646042938421858246622930953491374812787937749131552468907857177169034122848135302444065177732702276060907805938341748126527850786881084923808742671760296641629275273438151987119717276652478707736107380022975440663833040542459334334610521031681804560292399995306642824775499356014315217279029744277420005157845621618217603840811329761744119682119255347273913795677136420962059672607567907125365724640394042515429823015259872942007343879401525693601196600187509946263791299627847907502352619590193274496892196942673095791786224654120562517971041734776628245762616801320266045936309995397376636975625359116907919037400555101012466800217724251540858150681476018753984250209969170104391270751012199804587753873238979322349209863135140967128770776559478014335167336838678527290380418727477847039849677638446145287549226832282263717550928831879054810943362995496433922040775201915117200534930196743163355663623612789521619608996619882745723906829943237367564109962710758714541759243467782391170209589694034604968860899778342814242316254425530693905006793715474006960867854539400717234534761479912337420639734014290409084265344327186637524299043396023199439692721825005755609088546456860427489970395571746834828935676072663677844725307979745427068837696326498279977470219169637981909433888771433095111349685771294981079903482332582525969363559479335523718752789921051806553774447630378326711422479833903451223809463296345155101000607872194954594353423047092886227229733834223951632276717403547469391193708521680596061897900009100313777180542289849650452190614439851593489536010601981019842630950410491665830969058734230415265347074384982738270005569685773902009234782265156807188254836950124045630998558509825015272972535884691472103234106923858058270209781610986371326132770265370271587332611532531255242704663853791949210088332369726991587516801377226121120896928372792581028228025617953180728620361612921621141321881627346534935301730963093367512933669225092335733818782354109788311647866734020505536485947220449688807006849110595924846384086326920646623733749038145922778614260529433630488472273688318391338499045693114150445618784266075522818928331905579638233938987830737036820289029392973242816819263305402242661713068820541535686139045996439033935155045613202215489462063257216198042334729538311408335763356953285490126689092603902183903320900933415653974042725608610327007719177037244927581031105590371408956369183837616729178147515750053103910487973228232799575009730899661861925405125151278114419788437003237931031280358685914431029039585278816050704756927989613115242949786187885504632998563445406429087887150582351580464785381604696253023909814591122160899168146220441149879138542766009786465475426899145324181087871541888115552314507543113925506332138236950232014606966405991038208447889976320912591610194603295717348255153522667230073365815372839632477128570793957881927146798434215267013892168590340945709702321568056871637883029579691420442138360004022962378538490719402916834582499172394488525376433110784852150381688603702645171300346787718061658814089584711878593204938522106801506405432661460680421703630963957454122020998177796677655117110660338670319038659685119794980521568633965855370443931480250938159981484440613674103976767540601809791763151089478828494746077029294479299146971096185986895013583230096385414840119734092675068507526252850164812221482735596748580991426062426456424999562787984434473402747993085382187348229724262360291859786546247340661230383769470395703948907398595789374414078509385589291406756613394123582758086150265164803881147229071052809751740172030679954914903250058092952209593663074097715521239113011677109760732195436453384429761574152888066689245751086401078303200713326218282199724996153409440389114086803427514183555862752070275401658656512859882819753451075131318758638001290778154101275252115110597953678576146975775668664397354734955507734308481937648841856968362603464336955239596919119967396171257147075065080569475970162095554628604936449312472419250721859700318449780737865866400844569848243673815673270061210451973994232695925466837320756047748887421123171472993943646852702396688592053708214799528382138651079062928573717581095284268842510432836573732827230249496963026519075418880646548972521624677472619582035643364248978261056280875954759351006483159842422209106043880525663066020898019065798977650388563658439560032335512898504067552025014178704620881362736456344471048188705359726752330504232367483596495527568084628209541240924004966575756074897838604071464537737596319480878055808629871665437174269111472009527871030400198611604911846304870803033531640416789045963298213880144261695305964691747638993669937101364283576240201009336582859707053388621047773437632712161829571594442032753203502602674361760472176547252432839585454308401447538008991418270441647303714659715998320967753971594066967534831325594248043066856544308930504967943958676940331006487844809671178886491483744591949715029658537072952182575757231542285580693029493564024106598759224935471290262023803723453904107150411911771791046349001153871819779371360347944751388311918312732985089539686601878451423657568590487952464827575438091743929949622231425510940758850449832388537915162175371368983852362314695908654795565086328904775919651639564964792959088626549715291889144643246934687679760452076674863605192686020995649427493118495071282140984672510615664631475658041561809389811837538228875437688467857674378538602632829865953595621454617911387895683277543071729515104538541584113736143973629774401773581109034612478041935082109742041228534853117494548755399752388249077793234286969052116350389889548196632803140844870628308468124828019206865411609970349104040867554579608685615237509443488828892768538073845939366782083472767913904824168882263645067656035505820368445920270098244667830783356284739020949521420875443406866981792323362365473047514586372804598303409620842828239041404887256857979182288915402010015408159146662465300972351050206460618956944065202070311258609920487372569317089051787897738450885651984282881488819057472114987446967166415844410349313583787659546797981607757500741994972667912982855329089089505235846089299769699612312739138471125275721606915340121172685787302212084956438495352968214053335112487670943581569172232783454608649611161912527054101171576673720866183416540863344672546058758103675609126342961579522500372607441572994273374404778106451145692032257680167560158105915487395487429366944044972803805094452705701796361826884142195425508498842212064924676618320422208300773303862097700019223006540617165060911734827291029121378746280794596799350412876265179549685767449702600357143330794522589841665142229420261495851595813937391691773562897476690376150690593378992428597184937218223863178272432560974258058756835687819075417981406816313620107338412225984951269284967937884224455168352815467501042221165000601949532332587029136789840028743486801775343621417973303213844616317180462371751726549125425990204808693782655533294305656929318789564396856045252092845670225616305130514516030337150503473588238653086484450260295039269065355717412601138983001818637981757663136618551202409258116108035076813307063370201660338543065871329957126825650150019679533521662038249449567669560069558825139134475334850126359290122369467704623630506102012847385962509445696402311783676793597597943252356185445209554563146543656415274775910814842395836321635575219021553773479587028793271562755889084065127843645208939327816955323778487231839902320142872734848992827596147528447306029757166316372961871523390136439769804789737710721450287866785797646442655425896260567157244097297366007249325571442460177022835651318140763756320832442606509518620770660818106252421179059678471096546377565868841086904394107873060217443896971237355928909351407934249480861442974028295697639178674927601431744230162452807597530033040547231564716947532790635757867018014815070073457890648253872159360907709164428595183899700263748643734609427596619253023291357635357636055078880069388483586903322834821038654905520677486034764554738001022774854156946941478586838433271755518828384196045642719363812695542482118631000471010831950307863072927543599355106314441864648399628334525606436301955863151796127211466688910363662388523496953042842928400207753165565830337773066427531780479773789360684336075576618655042815088296946229894200267192512666406463895886151113020542799491484897333012453144119066657306378988389099869312509414574998337522366783563048894899841079833353769657483874042057905348294603699962269947652618810438482509136678280096021362811248877869312450430985033088337536423297039889663532854292751553099025525854721181599880736611230568006036622320323911322765180861370316911419527153983953224159458764190859864097640351492267540356853605668658305089928319281492150179179873783306242747383963087998593162258401342842736804183728256546511501193561069171352543802812681519028516056349399573384565848504072369308623196256369773794045290529421808463885761108561950269586182404493848542729635791575341179096253827997344503419431808218474224976297323590733900341025156123781811629136982551598284691574178430624306323780954198778358308607710883913203100094112157587483842008235143192852616323278808899007141633868083984789545235318349856842122870751019815671258175440920667099414002673881409753579504754311950345709556464656788945976178026861915139211883540258218067852950699584702810758030574057423970865803241255444553256965828258692643229551110023794697011019575307047036645155783670566047677904032682301584297464559600940298674281589382224767525699393662803160556127556089796590872933902540421036611690638587318280928686103064720388603807589120101327791215525428760402137989596741180442840106582210265602162925430865610425852001045107723658895921009793253619432111789036566756489164890819540317834443365475229099010659126484520231867361426359995767662514383768506881201331543287992354241423951839230405177381655206772547794463199332843437842597416802718544424972258815177918813485143799058380295155237292646366179651235294935657527573642217934132867202346739822827147474475046903286850314559210137997413529869032800401001790348909344652542187352589559378404499174201907485652972850384313667469337730665251567517436167990727410694497769843051704411712137141164613250571505156071683518998898521481617164677193850918330864484460912101551394678180989174622009173903829717519100063151337511546806393520251892491139052251468553873755692014337650439261364273780401985249626857540206913301977110906496940932170633304207152588077904604568896068723464590621376985274060817512821202994392805150617118135362744175357554783680054546398176582003901334029696399111705510641484138839328360029912035164299579372799843644940360563882349907792884228322858123498913040438681735167137250549243055656279062043104581943629255981136156538840833073623112336731321641034084543442330084415071304424187901663478943280225053864299437808962822029098228137643910128195374782764571789818260514637099025165944854718423812439974392636410537881475348261280305024294664638977471308620487820449579771498864184197843518348745334315814752193994543060957018693350989570247499047077912738201098482001649939428305205614517960982200991080097919806537941366172842612180160413383907008379797717125124580873547901031231916212525499895072513990344192940219603333862688182437125598333166163954478887072552050460088986207265985066280630069830726784667174297967653004543769284053498299854585305622343483536706167456413476793418592235651136870748528342270134064436602500286253025060227709884900274076440914982956708600927220684839009109795847979151392454274440993250538475315852210723215650374459864686036586236282885938891660752500931066651103884948121239573652072504760556746946993392034737227426180627470832221532091754566546694924506569759097561834773191421472294742266544512421359279381091267152770310389894725928324144366031083191751327628603089679012573751638989142763169163070673996881119607638482005562874994999667681315249108849849281063434055710371267903509722268512692764582371340582607746241039856024816040451927960233958935475724196765514831969187308646632378803277244982102303199062786941806731095883204942268856009548378016347842999464895982538553096522031895730505051169609999497207742508246472599099302976366052894008883774128763946156176653329294491104247946539225476397222438649812376298033566880185484797946458382908260570343540537036788207777682603312617976305488685135954940797936249008425891370313740594508542510614365522983555711393391626579143587052463011258763746860267036575855659184430723617583745549784637937253075979590651657404674880575456333345848876199693142861333787745920503933662844619534189766971703585573466966989703619565251910458887028661485561601646345297443922443087312116732171099754200963943656975563643957927306924747127757936325496905874805077702229587667568286533234617404366008708123734396165061859039955298978821430723960924204166324169234822167452144167034134641564592507748494929611215364926834733954754428752827557693958629323869550132561240659968132621728313747528514648990595944262933782298362132529145269139897671654937728383980562230715680833359493781453242342908913128477356735105822104277881487951092017182983412338222092481200432967432917738695566035340427433896397277525464064390997440409647945891922566697357152266890674487280500909952939318134243940493122737237236750996635584827992307077016829567143841448427371360381018279606075836813462788320494546685216479798699231114776728289730492445890976228859089396985184670545898914607057049148693207901011801972244534669224447133913920162032681782369394259538445705064228446417575240729361792764302939875049332252300123650960240732443489715630310387912141989441782793122990676841344834750695044412997517402511574742251687474663998153495184608550529384192549684464575123874127551306412860240853955613012621126944950707146551563126586696673478553716937343499143422969789609104361650810363358119154150507475002307580431149492582060088751457323900472101988904866713805758007637142417662428286901255232314144684990307854176771505786718616705534903319231648732351898141014796937427490252594535096541229903069705637829776783466593992620472093296744981965716705538630551800818109704521775593850530529741283022710255554049745782967811969263669720166248699348824445891487426768189661739255254445637426234931923391335174530031624861197769091124089089950325207770044016860750487674623817069362113604451096058305890065093177216444710927625624739370676933887650067985622047971762248466096242065735061807410439191083597768662586976052527841317137142605542948718914055934328729529746121471042249379820871578499916832445102218480825921311722238945213323984379610425680497247665731855138337140466881589717586724408396838705963539041921985954389377794701133390647870340314873025935925982367226451435657022600260476266487445913521805400537213537493747304804324532346106993635113601736560244682772984335529157918448726628649785470622143643251046937498783921626577949008695043530930346394491414411005568498855181432655051057990733821548632383881854730825208162452574271472764810850756724214290856796940500827897987920035309323366928712751539550155689160529902436679050775442151436846641721362700871839148495822887078542311773247960661807108378136761229865269876041616511224489036531929490513523987688518492060609205983600141591435928887934533460337056064014265778622795987950383706207919604509175487697540711987247842343174078574665322084765352552872552123962115979323126422880128305620342078589309248030233093832542623185596417752262114530857135330716298555760621570133281708018738574510019871443141973843200140373190548934190384499932589968277305956188203402272859506313275039504838341580258359524190637337666242154792530115458836609838502655356149456389003253733804564160082900074098990644769331726970737587453823698489030007277004736054634814676443981929804544293637662273280707644157694956941459612370953539770889463886492821155660123491965888972889613320218696534952134506544421626988783658912349676951433818640963671875436934615269368441119807208125133547478416714217117921639370099646317352756887509065672259676235895204457584020970575708288642384451353694457911050269854084022795633398184032286294643764614835293491422850297095265148962093930123686521296287778484949926313304230813971736475684813817849072335070110116441217998772865373564478405686913483369204298667557388036228939231979932746504661095820989667335920750184016367412700055778193032643880152030757349900841609158973408599499501109018958407429600435247100154966423527476218174989280071744671823733406046895908286973966832044177043780018184478869261845168488139800050551421489834251543657831980352003333849452998933229589494427547088526473507728945004238944743817245403939445946554804144618451166788395078701824819502115274647599226330730926853213686407397355947184688669541385600915661785481746046110233020204240089671653969304564462408014736027902083686323289477528940341264961822381200336039048439706055030515056583842261551556971571217687340156804574112650959775373225318909658029028374028274215960260329772050502291559655292134269815755062221761806988393570271461744942191187305356931367949329540192095726692301208690836926239800652446911360450194910755651663448533462732931291257029301100566789525471120105185737689886072613273716430182997686957059967325340696698150056698974121887156501580617679364287267134742138315828795037130154494841846866027890124791521756334108604257929508597740645148270092285954582501302583694913972515771939929972576595904531885948861682677119855311880442078577052687747003787636849736025578772684700057205825874579131960489734581815871192264698178463085019338344471102755756748931018293168412786367381975160235697208877508899355780796307462117111123082323775652905758093278025184053685517883308155410175904957283850436343769178744341557509347301760514201804351416241945342558252521269809149767793889700438401726118044367804694284113170537828452848516005241506396978519576654851068788066529671124364314992093068290099732941040853622389619433360779085233349406555602662186889711748214041596749487470537131041306930893013600820505705530818661830231744777095571551987151310371624329447112396458872996499445523490808220897490666247689908333872773316825672828328124413618562566896183822392687466407623877848879857075469842953933117268322632682215539993190204770837651283490231219613547638060503002898534706499844803131644310669021381216522165719767802497824261025345229692544195673146467787781266105069900259264273451217450214719866021169348252305831912978418449820569275334574993065340980468783921575225891049911401636507582902607532129065461530122975864545561659015219846635762678082297121881012744102081037653510118261540511403951788788897738191122397765737883422249493373118964280308829933447436800324593930735432201779744026091221131086452890901942279720743092275097182962817516052284127082749522467150434692245272837600732516173704867924653231566881840821891449223343859718115018868292106247176496006799812911307831252424656149349120219425164465443767616773216427518107657711046156620512785096452410597303292800206774561546052285242168039744527478888080872236913947625265585183324903255806033526580233129367407059035730470529132503758015689636957153068400494684010475367770599138105001545546131853260430277111629529710613358805488406901417227570600149469856065045885529499521949314370529723695263624873742535396733790655968634561710842370899784898027931503024203895400149812336857198563191355212532988027747231488875462396138746527156192906495192035511264522167187177115413045522756631320120479948088076623901139915978448870297505388285209085581940505658999168217763180579366150349060610353306590125245450782475786420144871295934356387638743653674260493129403955291329063407363396773188247355886437274955803893119458716816823764654670187758628056384861477045168891433751261930011136907815114045022931209173904038822468018002827344903610281194455920446929766018488900622040665263417581964766839168922201285603365410480830803257413747082153974228705244905000167866485524515013721570649657788185405667775989751118419749415020088227050933186473394889203509413509864542273348620425673203107539509988628352577124337755032992873076931993989734550098452125696216277101524978410626053570723750216477127389646993806763049482129250531290402058941141680379534012995855576414462956177142530268524313414972798019984935012480443616554646317978188184639191399969799766888880022448009051416807079397577238460062920359019978333243886318401441462966186773719127757272022818324046299071307925676827067658662897474317051411301926181413932478273192771699301134695080337997567777001159936753908724496592455840157069336985162600303603856508064330293609962102483834487319474001566101323139592391859947979597698928246615382286820912497811455653510415276346816403429955297706622889776664575691295766294637730085959123083116079826819513353446478413416343689739311111989676228471312478246079420148816431625447137843470622544557920756825658066781235975647700529149516647258099243614075083357595074368771141319331636782851256621251013627892697527713817210544903460236121469940907068578123741866882235226574499600530623179458116590394732629956864912382619886202005874126522751255817349457031411820013166411112125451421931851445078344783776864048287999049037231145498308506719235346927555945516906993501015100016959277111458328540505804964331279291993288726773527596543117420002189510965427518651566107413863810523842902094774081356371028625414589810011103600812802610199455207341133622282646493116759095623579379010484358032603299137556953898545049836067684471335633733173243693869148776886028514171217565447676170474241639182911192793797736187417405002558683109349581657165978877919003063164479806819342823761178212178100229327038268420025228145743205161203567280522648651314208717707162231678083105635063319586978242906556469186611094060905638214190095796224936535746113579153704603564151340605028868391563900990750041003383091288008319881197499357629664089428366700753083838339391624972430044873598238605327479445651379688718659138287570942758083895302418075115150173265937826322426649954908681480833464870921088105528243731533528382282107739938307038180310086152510329132902836759249313768652546653344864420003738134164554291951733548019926333187817728436751927011839171228935533782829646164851515528513222739104264097512074287213484934095171573319887840281546346979477582636173398840642858908501545455205863451462025668954020017314984962636883981027773929049172475227162282634719740240574050684938076831141997381028531666312967173061710605798693950331772085970772120275001594384465801353578407755064410810646623264081305062784914336105723247657312516010146181359745664429574255795154900684318673520822221707434737221199412536446272773328435768796501961378214165433266774450843111778601553143084457328700628927723738279095972333150475080053470560439225313045640756717572755810647273064282328101676089626760805481244402154803399856709828242149186340705573103968184362688573344482209851638279389786562458340419458979681025425255899045514360549691557835691820138157922430840710111680677648557434558154966071704266613239165518922380364602178715172995956176862911413621128021265778089758244848675035959547245434052704871934221205202336235275769085945390468898908388087711821443280065249708758478954851889975398177926684066660069980784869305989507000128914302254696446168494716738260440280957459354889845263457930219859090661533316747976078302559033183469602855615358513694040642087606310904527163188529310514796126458949527625630923681590555667987113289403026547079263676074425615871140586637319227456533159539073705437748943200365209757260882910103682908347412230983732608297070351670442992042683186574295522991000829919074885784300106984798938576509643498298653181332066108148398576944636876920162986503187901750582386397459517731921829888951618335816935085588991430434581075964433178424218737608416600250932624877722981107711917773364761176670779853410944808428600563956865642877539299976517428895358687428753306566238447291109607393810457948869087163486115312745687659498252562198173297050918191382606894830881488059075116846624275571254021994003286451291943242195402549255744115452116426667238665077910083381131961732374162656337521238836619802665834967434279566756693272376003590934082200051198040529951281380528680348147707927666786855693312377157109885762293336829272337564485731319127828342891628939138260217908935780910626797789422368041521041578529446786353987271579438406171636840356572539105022293161307761543282378850383566732099484206695032447114371823644232717651919323976807487615180345868160923056462646928918654040787866587942891546222339725705221902703101458044012027740856110193925645421786296155070581269858482192291545281407442097290040792036057025277053559094749245996658018280507749511209691210165308514390924701934080771334289758118760811218280664521977625375996354625433116365353378010684887939972592128268477540755894961397081403280313140786709178248612145866631421252063106191904634043977136017298666636988333200021404794743754363856949738388895033275132943971365791794009034065611348398550673059064275602925001516937345172843946123630707724659475742992626517040618754967417464951435261319605541833956385506814932109200377829260819282432579176893389177990243560453333991442655112635598106552001023123735220261640624715629658713527761741734088979486040920464327157375034397090867558309057167371150154229815418054158110586714884595706087094182203952990499337007030927217196080355798153594589079527369767098900408590293103676669088281395465147166489896097678415846473035251459714770975574848511530971388007656271899882690242267117445233491584150546237716142580555019960210063080642083521535849645147739622369290156240139671137450304761738681914477471628581375421460600009391037729911427182053786549968837216597578852647672195104703008041595119280448802632147152107901867173067923715747719406392707411268603733963173343577998166530215398995390486376221671703552367498754843532786465016540122452306456857457890664357719205968652278574293217914753309819993987347590223251155986741042428522754693762533861546120456681820594377609859034554798044425788300787638951282581309302303865898439978472911105005082942660348962141857911021163123727951136856711154145705155505101879740216145984627335606330412925469693372236477081385169585863717599557815296488947703952920247960398263501128851241383734532193993571791683438764233774812036744888376922589310271545365073929952088763392843838411273236830495943142677745739703589584041799071950673718664748228243844280477548386846817107679466132503202712434717922699908475528599175845967653730695450834965526987227605013364777580829326016386794715584356597259129483656935540093049084375650763641083619463285226019176238666206500935210825115591596381148672823850709085512680585175776741434481614003316160168706531101271378063402040847722752938040307551338873715401683528145422448402685128180017436153122986117586389085427876999805891040233860095487819234666137082854180801926876720613477292905284863589765200677834045814392761240043093983319984509094419729599272616055645945178759376716567505051628177115629583604837627945772041127502829625130238515202446946620704953465081392176570335201068102599101133199302949466009468731223561939457953275819229704085352010362183737517223405008289064919559015997100703229941719732489905801915299129569966693428510793941910380213416521280452990092048805048007196302293043093852233095264408538494542552791423835088838860061208227602666552932751847227440891428365861825666537085979657318656786098083238598764913395724143695136854991204549964234437905906287847629673254441093496778508967343473808052714742544844749156831431247737973557263400492914224890016527987037638702192257768823191025249309756741733451607724489362624898897140269670679404747123005992773810616566699569308740405690280805164394425490125566789199508894714369246138846320763378789904817466587069483589449941335125122099666513602063341566363983857873842376878869823801266425643652776688106211795923761643947799629159672370958106733268628993279187817860882061262598788748342443083061877567762325488007524892328007863409650351774730725222298415318796532073659899012578771764448250939450873297011219902688499544378385500206428173722561546135469908089955131035359337683306154080812699044832309327641248599437096189059280162448565186816489556407659970318421979093708699716982926827927335317365468342786633976092268091319913896040338615310003228617065291053966288227913484297670323060274310768243522158093705493363146204272153834949470776919757518319608537779431176085893333447868278630716099515952982463384169328962053711595352127012048999994596914850379558563319964512295071146871759446683281964511350532276194018006241912812949899866461033526544844634811001219877982571677729716485815862049078924451509452871192933014450786316791637901337303998698311896225011074100403141583895791464224771234964506211195637700259378380975794449402277984728353329882602625432075211055017899769227774154894031606755737508233839778807840890983643789583136693738356110488469750936877869188508514508772312497349253504343445692438126547535492367103814247170301559903999679221052612025004613132160241333780294032686663627127396818555896932953289984573622932461495296674468806227292848354494197598625656161425469215009282726500897083081255599664169856867748252823254547807858073432148449998091253715257193642544126596728394198159277884735009226902328117721466645290575737143075149820635093990378460251550697919221875216038937777411492475146946780340078733095422006505405303905496179798211822966372735328228894300281712391072589680862938195784161916632189746637971099738887988609733114911037734460944879574165872226307310122866328187940674579331137420280265811343056675206111730157919054748121265843507497128824054596161322924835520322726713532773559860277140979267080830540569539102516948091234535690805743886327595636044875534965328405503905464445872056851588562814299973403484228474858689969502854171838072948998678836291305005616125944291595143556072829894793859804722731001082817474365110156519513676790604537204777891730418043621959760515280973498976794298971654918711051246788792326573544106609181444780953339158275364141831220964567611504866804605008449611631815137048211930126407442464505262712328535207344854993873344733621777186271202160677745781889687100107088615787147453093610511163320417478541220926962708371835638446477617004979483573465497751201155505234225187552398881109546391510111689112877662348595701867404063905745187432216853578543683148652068448084563306134966606849649777791647843875043763108729221538072366571417536511948529557422505815716919167265806649308786370421416201737170690687889347977722483662783081225261901879767797269922835167836246658116506430581027779208058443355364016216334577334319681085299051542831025394083008396246862360048770730604646092340018114262417526343384795829832382307013123646330349650395372678799877751526122593679553270119889779490146060871097724329127965287586184902483862384161067423399581723270141679070454475140766148361800091760784898270944586513772731076506502783924211964865282374939319726952647142734559812913700546266538456800401448870107248438411957036953300543438446072111765773567465695822880077165506464056486020011417794805779619274821336286165152493885761639075205076885942941818654660506343331632001209364517371615652730270439638349730179807169096219961497921453273948024309164555559721491448927830269109845843521230058524482331768458713647584492100361642045744491995453067696430353019789295946962408466735145163223827193177266196685454644698820198745690004464987049156435863712325885426629197793982246524372108363691607343662498944815865903385382335903541978396445850407370105978674710412105633659904293079939512394253822384381891846649382592658789588207888920338836112107491000313060794614806441839772345880335367613608002696531470946698922607685808456187724336837750065584756215230275502812514544975164361784646301538175431023327340226895184112326006129942100204171952169560359142337160714371811637700834339043923271900169619291044334041350925899623582199555940164379485569561594816556307628238161404004116332994982202800272783009137882500127993486548065026501861700098677641864377517673445909408803565662312952515005570860023468805340515548805189446405100781665953252829911713204565840915914926932898001973898578333678010634247675065269595407831980018611627427863261094908202483357200987732543074019989380424945133708810380165510120097584486232951269167723177218630769543997272659052236179436377008317421464004013763147497061936860797412260895199224311533338843623043952787238425383783276531733165861356586665833265351096527615822946554584033298240632785248172428941355568315269419832211545395437773451257990043022280539962858578956446541345912717173568855170995944134576581534166121657768939311633881526107170244353698624079179540839029163539070545600552298233152179165569991982343546888328757895509342153690560618428458480998831086556947115677707248293651226415237862355825495775579235273028098967293917566179832207818938561240240006138175229183587073388609732785573003815626983555355866569220041055352565265422488948046007772251621789291033468367088340107210290445829841953687169124544637345584703563418947987320709977255611149687033454160045550599038332252458784460269497735713296906630212627054606638073787781154443475969668662295191662363605456428229975228240082275715662696404226627420740932913584757670977332287030683418675098426153041332011301451656104450237778248040182428597180464224009283281577174916324751167171196858647122930603731150832154446897270086856171345406416847403591265894358131802002401768645943844662840679028823639524478774311282020363778060976131832165962853371408776004354484409371940190418557901467904924879880158416087748227043385351379233461529941501910991196767949324133123635326629975894114216931073683006191626986527314692742723012910873927042861978910499801544099208654326449963507758456039058372574320982943146831803974152750140226635791751000604495939647901903818802718738875705844946020880805170941510176665436772779319411883755137156177656066606369919227513206803645739487422098789469282915899606840255788116434697733948256193785214084940042504361710819873183232982376617067866608039984341132991907656563028840078434727290081668489454954765865905224801723711991226186293662133408475849485647315731821862756909483674757326195751027177223982146003837196149082431748022445940590132006481756225172940476045352392737182658673060766285332419288742699927183496180136769316340996150639667694348096703342600111641361390487956559315440988252775269102750940294428525031706590521597498284644236981148559798543140689549863855755808270265511982148861412467910527933071259898414860323755707483832332914046150963695941608318494421469103914416062930303660820728255364627263159734079013047514576034433032815470753401399363778542126988920057607040095649755619874684809091259093599678170169932018305247312033478549280901862640543854873128294657401029244746277705326636353816810505880628320276758425138130621226148867490717809132645413010278980779223457203511172089813513960643301533898740508848466192534117275111293482400714952497561401976700101130978538580729775428155205868994312245007216607994405896890308739596607263020038783815971636977902907669517569636890634485454954402170789224584623615065810000761399921705404265781641723199396722346912926595211913073132457166563226411829958938870394624938940824804430613880172997567322736246522701336886648088602963518914798867052248491875712059227470102312178362130110241150208977119883935043488513191513288098430419457498397387346655230593896461339740789940801793373061568171501431464196691995824526855616378755508309875158255341953581418199638480473577073279140851525070978473196472879124002679774389016411351949900918659819867916664524919489787024770007850873493267882992472760011428406123118775457049530081867885887407823590931415023511502388774786902963707391141166151937188750471940367275853356492845953024257276838332136596020283022098590446439714491232935654302385321941870072470202325322069312515735427784549094238681465147067604727907449695225044135115359038429665332282769454559725163077982428504757530368817879430450368582439017676016243487185080048007015986480861103976051496251601588264966426514285322195077230653364974650491557592928486209991681687305724565371035041843593273504423754187074562797537806641515611460875017926217715728225952954091702986220792279881115223100629759342017920097781270518571258535317051089551983894784525113294357252699603789828706450540554129591036302319932448667153186364996710157849212521996290646552592863487657334950545882428285159275631803508583946760107637423319208798536232056466855336352976620484294675473940763752700386463327768110198595813293407476580481540630611219279057323916149788683770754116768366830522642099598751624408445369287680627528177260618459872874112672997502122755279360491248053117381044409007699971387723219110237978573406453297472921969327152435317896090863664656020119485663346462699943847881324247105711766441237023421984316183187191204492978539895480652129488377754009635659493241954972375320977871756031347824259638375507620604649962993728749466070024566014692427054819910777769774718786672293878897113131450924203638970888999450341286288586925533434508921532524787555295421295923936182557457916712791295549470142401409916233823530638431667048608637339544228616806741412744936295637294564516133513447482673978080022629483024103481116122620956149982753089436895612993077497513782144398362511467621542293915853048431423101868447824447714735262769896862243183167408864326441491437752959886613086700836015477922437530222132912822348523346117353936406076599935481161959562098713999663889486220113377607763593193133008996495302823049682541786074092808583038262961834551991527065082385803962709058280355292135537766261760657577187860527446768867794167909608882844546878720304191665684352702063594658216567850816660540058637021774584305504628694223858128361113942897571929683240317858696171815327034606674889575619700820732326488302317833553216420756004457474719171928572614490371903743264435391803691441463445378036557919730208804082512217258331973680483948780856663485935438579221897988810698277113006948012907394119695387783645731908778390854533252092527740130134025591919379580381895739335787818066457445134550663094710940323975522650839096965649359848282247072150445278110492891215349678140037061444513032998816895066599832387685164320914896762329617836238037947639166882890087644976168874117734787113756598085003230609992343617630349410982078348876776177215288077440983961587848124597520638384120750722051466037192827786563906043237347715547013113549283844347020804762205388970946063174822170986892736899057766152801919753519039625365894553914602622033002604686357874203250753092694451401000554784372799343255909462290580773415822806036346303707975153465696687866974510643896836557144436283697914982271026319850535822259069732314598503442783307588963497176113781402947149730975596368099250590125903652446888372452570673325563788980204055852238125430140237551227376928677368201256010593397342139990838914882193778706921571376948343783637190238110299634328067825989786395057012258533152574077423083904051741067239922396944900249144696040273311875779366710212454874941777761553618495703556557278474243657769049749585395057545848887934609785545280302250124883786036122318113713184500320863211667906756483850028163417496286262230377440717039496573367718315455354068035461629436330001393885862942958536139615519883701403148867508504895235428671492334459836365570861617763368013233444039809366232697743066329445647531729678865629404313342564720526107992869327554125489420463068705443860778342501232132992442956945748550163720305350580274839993404944886428243839533640130227673643874585359546658204012295487347014823703410446112528001103645607262076579464537294483729965889486926518633830966802788075779898891750893412047830864082827899956719952940851105989523340091478511286819663552434892711614326541881866876944525540860045094688324200982630479265005141987504995524748572283633356729891480090422924207462211903956564559220647618217807151304585047818914895997920395205910820058599858614688681758236900748269575442507439353834019397833191426092924286512537873295734721430812548974544626504593206982915400725444916677074403372872398757854609674171876063547925814681441534627343703953774680405849008409619996329505442182415797220222506617438909154819699692819737279690648985778691600965665801151799216589509130442344060095232601788948911275358320715775934599732899767655664956460771214622900376638105330031578678323122230381543251592477654700156319698595179963289522208546661624091803153708877670751041700328208214919089698501874425064421010861975324562413314022757703495933122943460440991932745262443607558486275188179789878935863781902191090420209852262115583050478692714683089495709261230695969280897703949110836155324713817496505832763760708364916993749179339235905856597221185058700281737376960109774134718322461873490417934202812753814788586147813910464853336180422840905253317373584047344688128404812438986380348966103397290493908618688444892071716284028198522733912841294870511083174491647914048552530106237129324761257325498796057129208592633620218311030749288591605405229549646058962357830213419405559060298148770592821919003709450232839099952804815753368328418343027498262123541303970815706780398299656339000677138961810952357204195927175307190158957385484046610768188980348477415981317492080613861704198336572516615907354969501972815238393727017152813389198385232906946359904113782524154175032691017991637545207052189808333123961143442399797489818921151819880882124445500864766357578051542577843442775637925145837071844413889047217162925015773464167851987763005969625049137226146708615102821071667089357031222647590920436763096532084034892391343852575028648656306432151061195062729002311353187169090744051628016666481933366595931710878182722993972976950164484252153029856157341584572179029753108421709509960801026930553203011749107393034462710653941780083369708143104084317008131839786021637407844696111067525508252855898055106428336659760478112238625328549457400997200170844578431142800846484704662661231529669564437809890812734132874073809082110943203987002005482884106173133741422851675175689983903820839560633219896871763243995692135242448575103734564383953156438824539297265620707063850937356159197859395953933190304671983138060116761272013977037199181768667599001040441560867450785277947462905907134604417688556809005437724101898652009058194290182456501564394827302590375196068618226405001885309146855482458114464233427610867860642269817189753924660340652526223418822946172380542688444447499254682930757038509111341991757160648341950578780506673722487402407961876532087856816830075326869422787548251923987553203717052940584579880640586613717521325972125867427903599381148532513406890495583996254871012145888200911851199922183421655051254736400106806284163313414294091455624498174537659238559407256419276602567427256744926516739659878207436314255988377527411598690883052401943440771837198159407007979901147756539006020289333576275031410874470823794004976842372926571200727358863258401252695663909677231437315822819715610203462281601632105060059032560105312734837820425598737955565362772255047527281871558657780767817339670173637512228579704349825748103160427392988828487919952527601655580086525392974521802270772242182238547651443986113238414340809206638923985394107441558536541811359418448561860136032912111209595065343473832223664034859116411483847689494064793485267961854619443041790831494761658520015734309146149975428138409308252502925298824410037507087869964217345516187762359347710811539997581760374301165269840664782400182254097204030791215223810142665299914196006291682567275788698780709881320289918886969657123940115991910499877425773471859994756028536031046258928186016027094285309857535007755848822515703893207149604313756281358133004944704277869147190193412896355512937260544941185740903486068866187237809106296036958252854824967695622979912897842944743456014430684581315847506590899179534625386753117770495682374033999736402478453851143680644712404465720643369671127637204058671220352030817849743023483480236765514657038385132790148426578116965129391579905935495374901359007774799389542628476435813528383386239489808948178820346409799611027979309818358822781021965217297124909966390442129147818545416291856942610909016523736173645025083366360443936800344070993464890793635211683312015303862543446597262462233147608391906465808058020729647177752264584817840966067809055984956725420076546589768084120244638086159913071695412967873779180205547360433963793562744883754014812412721568736313733408176322109638348290152014456904423157630097055866274680147053453883882766881251273545203224589685026168648750288889732895106417966015106038488844600732936845108808425395753928333863758588818829409167567690011505774969071698766053641806546831157158430352392415537384153653079002750376888498425385264765874852457112390168347230859481808975101831739773666025738029500542065474189638457513565639188181723929957379718973069403990645032458738260820024199649874412390302701176212225639233716674157625598963884599013661593874225653804784951863448434736217319829937090061767154154854310370335235079082584944760719250490873881174709285908325720104717169214015310826291896630373134607245341137682887017868944196898686676728529116204261818208993183611857610863861437070507517883593427548640675636424376455928791983740732241470939544435414488025254231581078174891225560395114788181579055144890554990999332807004350184854463374133014981019441573322033631669733526676869986546117507229778611451122788833907639740965970563881988153609589656977435305454032261393005836615381759948089653611969682740399566059482905952564874121650243873677088482241117932497977334309487642603887655503645421827060387319925370800478387349670658749840063311386686481850826272691479713232277755911849904115095876520972588868059699351050887152758631129653240938540145427980463589852698271055071353476135746579948872773582886985260001997704810886482026894488160182080516882260161828375815480285928946387816057193793646128671460407877893789533918965044368269754475265893374807033354953762696039127164129823656052107087638599140244608675726648445793482122063242547115314627715938416032649368122654671291339302578794725167872163835020688745992498692039618239269952394141865600877477569903641150952619311883062828051394635446269841893028411242527688548644205748457543812271890018790694243665322218919692148332740035511626168889089599279156986543348315412079349159148268374089947985707819334285189895100509307646470162370419895879880481055653210593468751057258175799743703966329581545982929799724489333633917834468379212126003771291407581991402564329404972631813361757039130488787532064072554748675613504007919057893634669984031728119233531279198530269870781968316337755107850834523086454955003863405833378856708901547861284344701769036505287041267156049471361198251971372466990364463877922878997731237273482132911339834262353596390345160040596759431863371133545526516443174212130831676519021866736935064732416982768984597264090796608720259337069883145152159519232024570566925633236578524314810688792903600447497017412645599542630397849261511826135718215867693120337325329383153636070882437711239086551107318773695044603743304497018751880719134959219096464089472106025525828724653581687925818749622131830641198178771221420506375517381826210616717528161007816274260854652295374249558522542809974155048722352743074694812518636102754408772725779396527273937003624961471428468443988828489262948942907550626605725882293313756089131391547468315597495011893139810579839929077214623629295749730212803693176328735080239404324210709496580808033219160980813503121155784278816623948544485763406939155338266877210698246059615076045087572059781646555804986377158494259852745214962055200089831914537901385832943741161665462758016775197687917020417342947793371435075181736801023342350002079841425308822638519720492574486554182717366090248365807920822543009693031001915860065673550047256267658627778801628723882645546019908282029466715611472534227165556828742101964586074437154974590845079275853883227221978338725284254184159825671679057535710473858384062435739064874477870022795168523547862384611112174346525775732933922577067234874292430842768696489771559963224740349148663240412676662112463284556717009447174509674634343159486054883691440516744232788184034849519812239078629803696689990648703193960002335047798187470152022667412538054444549032061871959237305703800304130154038961850992795338252932684571775825193994813324240879409338219132266063885452301679482941667397429731852936497273653890064491644400097886845514562654176157799289933402513447509844510501325946236070168965456828253815722592616543479537801057419300073773944605477890401687352057515039147193208226947095050854457230303989177372060951463405347859035109050958321504818701813415174539881179520724910167427174060095852112886512740741223239443197030521990839716676576359102719235458589237580010712162859936107620798905462611348657249894119551978537849653268707235713005937571370984807494774226695883817609812939112633450681127448724391547898964634737843806053001847340710047907282428168243985801123332256898707754421764714296313267890944894634757111359476696564357028812616190976953152630183777517585311243110584392291974730146343589455525682923886865154850646957315316416508658681474027351144282869431962887964705781381010071228082421602571889417589378595385887992856088081759723402767484608572625364980764899145957923403557738372224359617897911217138277301625219962388272368495212959212149554313850828507573960930659337508915956756169246998651962612487222129876032995187209066939068960233079146239060226367244806233037035083558480610092247417661480214007039307381848193369509354023494640599376013956340677387065841179345517213219557963376396031796138142549909637220927256894994314039018091497544276147546669020207983569661039553900310981250459979329956489707917335782749093101099265025230736933375524799690275091804069652136792271227168429302998143090291855091517766844222641477542131268481524086857686988176021557324452792980666753146686317515046514484663721079892307141618039933298761262366301131872663237225147265377146818699508367716491434867024288074755081872176874566224556083694848672969282248886450034763809742604693128083933000200592851927708374986133160404034972783891158035367390464749366097128825687424451780741017110753273355964275440524492184049915310335426515708256655247267648774906231993827301542219159052200791298921201106754209202406581129508430321523888043765543051590199377945387382252654965463756542051035803407011099321283813683456002393252704727260253925870091994911170521588836747348450863378848612073222656728016447178966912829670895963823194634671630063768683027442431844773647154474043723740386059366842286554269253051473603134473549272205715264809434432316298250883144401656190081264747570930277856181882087039666180342998761483108088677140846207430954563669323018823487603346776385400323908900160913418828970678758092043856792356188515902732394509620008463051513724687657002855582407925318692887829300682012541797605054589426843333809980010896542877942691470125892233523734574662099499011572402996269934677446653281963191129816075608399010612568745939339751784735957643253710457877476232377190376622252768512937657223446284623510189618768239893454882032123789975137346949901327254031626530893289485589330864138476140544384708576427414613564625849506960854843767925451880436266696818192507385560633518820400679469689567148109459751199379764555314740529055870826167415285713862796028347204726522680983609486306631889899901872967530977809502042295023041232069823835064601202786152710906146722889739596895097968487275351427911293372832387095920628779467537014477679584285850464120609118214389565886368296664037577768133071149050655263788000131967275061103350383605187336435267384293754932214081924162650635618321287756176922555571387281202164793493467460675495216407539778669656384042944792974546056793489918134418571727592598144621401252995092508129623633629756876453160479822245059280601742142746856576023423026089883745517860626401778359137176292324232203505557514111824864730712793237732101090172995517359074875047428057001168919655685143014965137194016596855727059353057315826183504134887168558888199098777910194957029937225864613225235514695639271248352819978788034468640590827082253942791087813476249775733767804852329764649059976627127107015533245870816228199176123871672019945202816861226215954872832427938609618099948934932056105955331559491920020928652954860697262943236178863798889135722521337464253260504879941538524562854796661332634688292816331097011393042356969223157006813464299901809964629240452475097697324135165556519054918506385972092764711375430443354896504815334776440584990243577183325963994876808611407700585121948953460977967453912731951681668824841395319960584695739076852662606715384335401977296994048711951620296176805110785414454294751952443863815782582005006828416699900022448708113375542582826348349443360179527138511355163703426279417984226210991763288455562187020798550689973462038192733998482352676748774229854043709468881134963599873913885523850074571185496968847229972804539177086511088392296265668205221635274747154837572764514712045498908577863616460817465143531823821479742207435517441615074343795511727266002015182164643829896973501271393912657001860995818115955213467795429851079892351277570546155437473144655932274165289638189951894106738777200649446474633729941183029074132022111181368374540367528182930868698132483982909830253345160663835066045044817818957734992841356884632886611855415836034811521554918114931634112498017089642637589906110374082363879864954676839128612249169874638319866756366101989050436307085604664042042081178630808807618790401712880119395647200239279195403801262019822781250069757841866207266158395989224415190328327019310619178608840782378874792219734887142043872304466250978232197027204931501717750525266433638703083687479245268557135403293941107364990470111613505071050231876819930938617011245549989625572039931731182967102315020664144861873797429496261659785259128327697342505430750752587248027308647248328937728825195143286418303378046632668393252177156213118520217517556828743478311957117293738989863493389871406084149703818174822059232154226959661001409371798601212553633659531004304527073828603643232753437897175840724738682725897510991494405726473023822925131162881248467832121279209630763111537643939408454399743319134342964483472215621444399014537167875467113395805326527666192611638946748979575942218315313705243234920815972233486286373324048612828685932069506896893838419899851867242004578031708829608796884305236645489547778709352719930033869363451680792139550957166852508290069689484944318315695286298069755374857087081844517531006029097046969580245633148765068224944081248782693232290270215256004320270230180214005817220118426277046198459745001002705194683972823348766136703398970335879231473780488116246683342584426410752578828829878896208973258115882089312254885220344276887185611895314039308271867749534677551985347276347998947451508379386016684633245537332017554891025429505086811261248369717142754531444655292854674746292157868367781740943294210541795993971210270086024668473964954559590634448319790556782128296845102818831362296553661458139779379425181747166929394149671072733848260768498306029858908277857084698918690152505843899552570730560917914128887370902678189930453490097879513662940742107182951096781769529321207087992603053943647133104888368211884656150102230037217704062808058027053057833951080670498516628716175858768923441505451212143813067686545561792582888848892505942701399520014974595006313251218655750952329265658305897180025309505991006206292818216878260899477870243916649391780462925948586052031812942186675300950990772544863636296440077836415607318986233260765321389279209443161486322065396240180967693828775018905722927183994448266923156420900137068412754174545372052733039143293558576736742149571901313617992636276569507876179537425108009605988117621824461465531254184845968941159266517970911948539919909040866724538271353963157521954625892455935050333435808752933681732438463151178511159207106537441228496112721940627577591277444264275296698062012329131276471028676839876517814744801627686199663933664921877975974611542239372369717510521907153777669796843091528777987459302271632499146756485213606274156623102663191110127464634664461827586007487507793566120488241929898790943907042600669717225876017640981243603318023399832749264194269812196291553387903763207449393184571140489927106832688841600701656249640424922955823653942069182265461136924359601891863117422470779062217396352745951251569346088845891367388887652332721905616909869260693461603734239856967999831559304600851241794423012673545613741903453456641888621860646793230448974219585874129830619968426409691525066410634299096137446377727723059440717042527780794739320295184010815773069239316710859100703715833037650334122227050906504054209940129540315697038127272822238191064796804501689144854040596056914431154700898288409773575883652237782677265272331307693093796691049937961125536433174008954592579417062214016940169521735960544488599786491221218717252979754538154737884232346778468172969842749237855490428675636894792585608245901626299258963642704429334051210209095448119287796603636058667645942013053108582635687749359170934572904772018742915642499168579463320218019396726658622323932123879386976090071088061318518076027516411075210617198198446937491413338605368234635200005665590069326570054975962727835005284240479346179739231546562842194028660793349142401085935227060700477355503202945965481886211805790506069606001891482617118911890266517519731066231612380405890172845669663790586992072046585210218318974360591586385045909581836633160699440314677200312210381542639684003739957936006017921421156530118285946036574539060530798509637959206386480590608392962485416461598689973438134086560265636634153125177159448605626359860411625602405955343666223273744834928274652799655771071479482833985701622936394561216611574990385030795535922708895068277909186871244388991800523532833101497490148662056010195146410585144931280019115249131430198489609518906158849600700808788815404296063565611222274852021664853345892688996516556498231893515536572355480087695816427942712753745538766553108580046751388850991797885951605990855104783662178753957932877707960041213133354245306204473979902391769902720521967047286554402475632853188409241066171206317815269435200559559786005144098893980784222449285706702340233760539295947988556016814447307986130141719152777214741186830156059397622140498807112628791747682238581482306024188931153545900604161640366535621418630039074084078172974709831065826335309249820233756021853742575207027104771124304474189907260006633594924630128054884907086975173598040689190181167568340255886211770855575441801878344404415541947932615959851870643432252587207418953704541418195949349900691044209240646180027496848525368732705002190809619954089315284703885782578736559770071262364907884225264309451209988898663543224832905251197276075685654105223102280080985732858753023892767653729736664480179456948734614122665249577061266575141027255064063551218210028713142320026543418506551333694070842407966159151830735549290214624420629521341082532746463296841471787259727120939838620397047344251227561241430567361244159104649519771974444567822356102969696259799060733435705310076491388937840690966031681781896843818082269906340487438886525901076637191365895830879844910113110120552471230733406132676556847925125745488353697851317410841539869588571547697853738036169272143747739254823380921906377914160519657247270068433464427733984672622118175875005604630932076046832261176148020094226157779606352515551415641948951150724822432679563741215838109168442528111948777268319950516730488233428086413859873609722990806386546567515054922009425276264514277753387454815083055656467075252695110073021422449496527218987781738173107435411391673651097848300608468962300414666273302933574616232124132571473484031853131390746845321466273194176943852447222692828768338722959921372513446689103087940053789287111472769251238594759062324984144786194756907387551985318716323970772830371080304599338834492458598041119179936900209423630913244313297790716947672780528291386329306155133078680936012861871050687085583852439615461665729180577922704973387384025724459243124036654617003270529506812427346452091541942370604491231448231390240011597389147656237380906547724890282117867941750676186043047290009034721139102413564209493787320545449224553229610149094571066701592092860899147907150752019200767882057655290799510648008190059390861821509266906041098315234005590124460031547388636694945840704523249091689585210636316700953253498270693120442103905436645310694085668441172398039412451893747580730679712608373152369869123788883567319440558832044778002934693445168850899936557921359155601567588317890709619104078326177213710402367486207563300435511198751089763020836459211583343108577147448423730264381816799202264120361419809916953710491042860594974316163324229379534620531768524524655404038941410460130195629210923837464530916719465271033476269379933435678776405331114017275260427994005860459037145055095948124558524302567526853293999332889089430709070108310988640338551466621236198232797276641837264762497082713248333597196056597758060290791229956497863976386004950681230513349882489878322097536655235968800551403108594346985520544068565558267390601458916287356761444791776109943602807444806880042964481831734050319137019012027018738903384461142372532214259509676171077424238959286872974014679149912884331161908385627319091589238278297811521999112614627341249413344062199313785063364465159071022821950570588484054081035709977395834991187360087038798816361505052316411115652317551753429171326446136310255428992333837347378555284934646024813637088270692255662768854691256157356857149281538285578944463493001460688557559558198329800236216256204282404213791177582598511010182810598054989769122312394911336491855727423010119436026729803441098803256731705150148406379280239712421311115208262379056951150134702143958192438858525720217989981377567001291590703670579446225895010702843845475339342217848289212823979929774390334838752261870507494248859757381496190208697252508135652190374542310915195142631880276914266147372380043125152280315934607362183318222194197687421085509043652951063320686159158452622646832517321218745553071779924085814179942045146196871989771376019246788071916416986460832751104557645647652540237209493023839325617301254084176083875474956234502416098786004399235447477302610827861215022574234629706470704620758490065335890879129227796086900755726108404395806679066657212217475303241555134403177219068728241007328618030062432216723963846669924537436331233309742144524301276189612081470119452308824384063154097693991036337024336848915008018250626003786815680100143248936701278922453955721060542643404411876666704825422252600227778879355916208637357355920434850049056057939916672113898478989735698008904865399443467203269558062703546224038755670154124990383841847849270578139237154404925748985857298178468107833858085046471619822018265861174800802675031444337397027354646529785027787709969360793559740132675954428378752117741428672528616351829253505380614604200854305606335660424484965447689590276482075459857765316314886142087668537906722215251379940866925597293415785374062686094917406641677663055904794865071743123886599492490486369537718461474167308348992946607039499121161194044930618964005906699259900066796968253464418826963417416027395050013086444877898887599957997575038253287151300113277779561398947758956878610522457168008995247789411184609789141653153849672842295713198273242543002888196861279782576103693047197073993955509896992394571953676314216044257144628695313136317748794668960429378205975806124211247413909034949793000697355584286664072118129351993639281470292882955246569166466022972543430077866016876484918306152050883158055886610853693017985554978177131932523481026224727359975941723303161585673829137925106054895230596576278272762390229440174240219539106135873993117135273865530000364032764551069032315871982169159191314081712766371764548796173734931280369801345145926993041824538304691929169274096285208226336336313060969329614354908610082869625396433452154521750643841031752222756648577357300255853640480570712079653886226254646859264995476395232494327419972517435206534470153257783148786339607978613121399909538115049021035546717748810625667548945732191649144271808142223660426230725472595674939256824762269154187655265403858894900930212439619644319211567288097310404034756740631964214708269202360314593656453422315898859288632066348572765859296372329663280637386350674764340203859724805475173303448437522756457881412534035751947411000493215001764588572131279384063722548661707269840723743880746984375415847123591957000202789561587773807250728655727885901816171853152549365730884812715793046721672210544847174213052449375343617056879057366894166029242626191167502551960012269831013451254799388256877958407167245024775467583776219832724969577046674775118994149924919608947351723034136150289178517918306348886016809623091681569854828469682904867234996217781870855921799670532900370877603794317833428234659004313629921632703845744046260730122802357056607315468118122975063746371071620742838917178115761657656591891711604420306963602511258129993776706752394649574832830087272299108908220735216557439826228697138387097084696712709045465501745606702504456713430126919532070861099611566899370727514662454666238146880940156565751986751297513498687826241991556549991721227351304596149353964643084585833471339076969721985876895370185605876586814656187834559413688178303008251983667930552319170683428757151176307369521332217844282423198938385103377111865695234058619683459604502972583870562355849145373525470149637362528039247982921892391141127595968405553507438331057403233721501926642444657592120572897926514633407660816342532042000263553069904186866445001133446501200296208692502854174588587252821992743996421144881362876995711253692739690573985418723980488628704955823010283894243690232524662427580263175404237905649996100461401261000237013084128324984519146758207178952109443794371600422017480460244588274079459146740392540086874591549845943142932673328539364361509113235579243348225560447403690702306398811217890621366473724677445258999437143057788588764197567773876454003376513975609750990425211923728008443109741633713070326119471064987019018073798328607758572513195889353360891315635573237400187402975118603802012688507442802526886838937521714160902598383891915814854454527564834708762594671558537018593211942346760409276450082669445374546157890902507644433178371710967635564825173306253806494321659625781723771784591140038470346137164527450170102284244923722367151193267272590800117030814089678957496671139185387116642956341834256077897501495878060035819606541389406440911677728987358964250639548753754671322829623221043223616286777661283653994753132490132191881593611106667003871760560875229471001084410191421742004173253187550314659719324263164019072782131292318077004801162191609816675420920527176834621675092072933260503205268229287189025347951234664228002083315961797857836699904528605442005181115588804160606466696342561706110928043399547648294589953831591305042560606289732721131533563360739713648239502838204983575288329228324755011870143134674591416795930942012701086135976251748505099472727078238394192235761863399846110254856146972609013174021630283127510059303818500999559514548684750692734897816830433010999853333724167146555466315941056392230741853529666985923996835884969486203949353138180563332108270060168484079152002222076792031678487470898980376925884053793891740765908892663706309575728030919671087484166950796150821703169266027041772750590732920882249721428246973355015090707053823562141180726103355832675830582679672454214597038085261338231178947154237191106876752439545596468502731273465352435586346717607218769242505080309049264724045790085834043452280637759422421476579417126802530288292150324972738560136118777435796719765042937104825528714620634269440479631634599227319772277674169344262131695253509120883011832123577343566199590411148979402289649222964944572836529359139853766642653546101418020407711195838075727915472599105491060029737052200048282778617787848463441846819304753177055015255662573223162674587526938373185974073397597092625537405998078347470179959470017998741018452320471418804106256536809188480990672571824856073128765963067824793402244897800418443382040991332037625499613162057212233875690051804942579486438200800664524521214756913711053843314250869702961990190949629170384968521248431490295446891209455321692863649255588201995719591183628193684243386111573374658411114136965134659985738398175669139267477688860330620560474232905945833661346571963108513819257262479107988608157912448972853369644803613571902474652866093578509184756637453327200348454502812615121653384179745418410197369382209165872420556354224732144930484023681616593193309254564556356358842232969409489236352045266940768036516386405651822044760302741393839119092795356754557488711774706545586468628697964425524968605922818579987485201745409371583833166403760733513004914576275404290376947875205300997199600482318949200166154821422029796745545941081082606141331028114180154320847213273019608797493743222030263860321236648475950608202827974048860773700083144183190807864737207968048015225106513602937454268129971008843199623298410151017870337670290834841364916037604953450552617017637824901117491068098210207037976718384798576492179251485627462785961195307049039169856084728367701036699260893525290205295372962548136888499664284170474855052242212042412829570557822911517589717545489065976781530085358721785132867502648706434210263481019473264931452174670071674072394245897399173690553195740346924702069376704846428075145108381115627751323689969325889677193812153636945511403026472837064676334543814486929801664672394635326224503508006966432704888244732127470394932071133532713631101993976426317445562840805153825095322475158590186962156501495672935357128990201203386562838366345680039831373011948052614618739811068350039589439721058528740984538677548715801486362173791086914206675638529774374612670667666449363840430885159596503080546320666253535182920654950489209163732909895023270168729859973267607403865355464555265727543236431681484087620360466781376916342338387953897941069158954808202712404984196253788734399953133543849011109837550551426810130195766681108267125240518075660475807917984575046654645524016031050060088543981282938115340522473204108387767684934603586840879932870197715313726849061944297375351523851937818846476877626925197142212896053397661455571623304449130935489358917104575129371840294693094513281478738141771595725512593551937735132899032223005239525966274245962968484965830430442855242041745032927342221834338448472589309735808920939091865520335705481055048447245010184837063314743142322130208163606182569167287489095095700239347728053283363034348235712285658029737070949083583066591629927527605994938484268055059899520606277096820601597318892806553735735320456553403796450242586777053009408826091402980275532246144618645193600489191708899854199245949849312619566827689819714034224658188327234132538437648905282269757645034301062620725638775121673825043157921526747170603078729180634142018179119207174204849149235611244656966950031502384888261011635655345776306518301639036912674452021427108589854979834645862757070115992541803332194721710488837718210532879218205649223701769170177473053784276288792009916525405370374444788359314277454236783428722246781812952562167256126670240844742856857553103804733844772139111880375778839602649180523052045668695586673060083367539199897782008650097472032374698068931064071327123313320585100881656052167037200956240647410608303639501848990429581936235786327073728546974909056551489343253381445594640273593281052926994674556088465010794283167006359247833280417069556757713012094265689813075668530864804760830062998176451192107627802196377437495208236030568585077356763262594461414406537300149347254194409012483988772497663360741767838093008427961555792219556798765947784968096901647192026814970856106902883701042619923809156571028362632960193180310256850529671424230774215672461378289347332615389010626966976443474942674656362010725708361590399119687444180752908322468271643420442547928957426353030950826798505525164165880661125333293575033353591651364054612979299658611049796284218209978580017343773940447701057588795922392939090616431138909189706824032023213560692713538029716174216444176783055085917077459420772596514786367092513194348920084125912035940685140372086353853281302554563283135238734523562620419745705746750485924968684393171643450836520027084800576354634171701106720043773643583372823170060417296426030448455207188700333678519402325960530597685459259410856690897094172816122432138150685582646120140028484744532163012542439547406845121402865947475988956198797425882947474158685373587324378575905360802924920708790088800724640064880600513390746920547034904354634681137177864313576913257443801436281277326665635153861226089210269888466368527698904478386396141595512339742381400667485372880428507581945488632579086184381622657159660750506444419453809839597321379521796784771418926059847522653638859735840222177909931493568434030284467218308074741792771361082038249393114364474428895930776834007010130252095219134518477681589421179712592971364659428964774876239510641765022989723586338522455932896986812675032472029197965090521858552943362655674053060976304180273066180424528136318120000824902299223103715913170685632479607120098018495052445232350585574597782014574712585888029764102944254604014739717196807302039308137939028431802272728137215800245480687774411430195495746736790579484775703736520688233031480510293765224218432401970612695902195864786053317164359804635866915504575730124223208367637865110352754707432117361463643616820836147425913905173546076467127199064238538248850606524070608629080195925029380542198341861853096027269830035274601029495632811283569175632999348380071253562063750729210198249985013979860351412932556711776535013292738692892759479476782899886843772221828069050417312148911153872722532603807191264931224747776162111973241491996008911688125044070895974925435175224843230986746593530852597924734627533728229202297161342754659806729401416691353472774173528989966070070989149854052639133351347033095473147602709471436811544194298186604013956852460416821921945647045766278304285076245882834489158891178194027496347181682351451812901273193079900063123658897182492249390608314906510880295118440781361950020053562798804073650243526559878978438990408045922875215845611534739405864216770184930131932038277428620697374253863856757456523813014990400113043846774224847856907848183818910014349330907330084270459254031609929938106870554407920041064227268474537242835628316857634223875458110577956005813180889024776314447921100190505982050051496378175850652211573741382040264539254572849210606986104390344785477312816052272575670779932976995362050735148678706035336949816285092686722224962188438847331992835222791268233722860700015648881693524791542314001906151339079188320615386560022402341779388590382498106401517478447209647868503664670567647553246195911734116014564514576424061662327168099390220252492698620742899030993211361535197301145282151570051919065634324814483734214989587224417207748927521051083157232447589506168639329632775092567440466718953628946190214400815692709102056360052289062590555419150706011401764340300154801350254786391246231397876268558382552108509381253781497324151582945160241153985769117752229914359613315992067701588977425339423295948927652594702197327189298630315549580387624868152427264788961841829814532616306663534057412652284144676796989727453024406796605534567395202836360869755712164215191667906802528869109037817675045562081944404518577457401977194161199579868159888263795371036353969739475900869494862416652281523890247368126357666424744598215043629468013148247592635005996357428759971147112896761507799066929163499736776964549167502600015579381726119520197466073763066696186088777645680881042363333071104341636476341662594980513141986730139091788677497907133534488206194002819661412181836390507568292933662373752566418502633549978698278876816915926396186558364993826921592143542293744902583326104927615400607218848473094828412257456060035211275634612833744226368544141611542484510313944648404733084857763401072178394294258038983732980769555130649079328753327328064208473005298788084010931588923266501188773177276358594280292195808173910731118983578711034225423502051697639236863986739494084564261328804139304185546874379783940942192255544267274374274589830319772305300564561971361563974960145261683446531267638841118475621664134970304749663085284400187562524044080616461013788898551651291760222785708660230989865552230039552547623845010577930563046858836707487957715071363638429311069309000787960035869899417762550901522251312463052915219290456865723462676841165357477342512035169425234628875852455381646028219912181369564895940538725336781021990501847980412428122611774780776494245257018230956185171626751393222224275552446988865381919498623023831381320015643451038944254046744077419248569594353526610173594455197996285635678326809651267442554101901427001902077642589859123908766937949826626287805618366012011552815938267942607624274930821919997551891409204874508124852357657002907232623554231432149746388851693322783792668915134876809289725544642501521862760673733065705575779832773918412591679542990358966157286657718408431863478839125932512873586244473105529812622312196046614546862206526625269066442484163984717572463750914065414480845564145695203037387661871520305374204566638417561660889978408178761343302295496770038627928646867671186148114858123945295118897150776292714169561972417860070184185241660745847376698482666545260268576103791898830089486294040171672340087956581311038747930669482608508752762461875951768189792562194770911239296256951983074101486506692959507093554930616295428683281081952019495287108664920555484169782679505605338689736752348138970165463710241270916371824256635435996977218934825781807836674074088880932471032849267928444871121412648956835258030207250016570979126944508343489780391807748537170441541854939995366225132471182402778551166257228505289089284410154064020455157268212538244398946173606410001720939557372543657354195023824426739941168282394601206206666593953489782931536562899705706989220121084814979153101446573474499847215705593959310229779969992687078198214212218747697997937169280099719460776737403339160393664948657755862836000178990792290068131430639253232408519349289673094293688349286400943259938972863508433309954701722297554158796351066635242078621373656196589520432214932357942249584247781629385381594066873096896841769123059897530619217203218593481947884833238747758540258422136576243716170467683583680463899460651226591049947624474694781400180907092521985722971775464013948515406962686568727783338691185681885324857385332944658794810434910002625033118907894052711118281948459273065684282831320516154470439861372158764079971108712822849300196958373223988074859159232413156757010270990513219054281282349277573295762663341531445067134119531190647858306606951624592904853638627506176377386066464262489390629199738329288650925071565279142301792142603881321000542273625714054487821761558292290715438478607422039490626121357992030652976253806691409573789450936279079796086448143782000094045282813198855020294080370475379238486299769853247653474792682227353499634331878501162938126706233725206491775941310883868754514429681392744671535669871693823518322171869794455527238495974594180489251466716150682634393345718762810736648409016020656577501484796952553300704535673201029215992552428689611256752110262628062075745542213408347690251038657592385995757466348006267730682290256110863062420086892634403058854692987752795793406702940851970901926802856068639866009972384147345544215001792648582167719568267528357854488537466740952555038212789830324314202394460304068959255723912080835838362250009767903967959024023843638835850140831344482378527897607780986073768001584029179461840607191179904001912341790775625766702615377052514658814029211562738615640735878915349269893926827876492899516677217393169244597472764840447859351837782556958660094867635312292924415096204319165647449221710082280374686385893780690844285089797712688038842607742848699122162049189325906767421721495537675758391780031586736028189585404495070940042432352220501227139329391360986832862012166310502879274351066916280902222767510798675877026628391697755488103169938096750104743380468011558586845055597865613927255112102729671722933376355092465669889730241282011092480797274707822491427521946141882325709024983861954150533983120734740326632372073195138768562863904123001719510966183134135232029125765939031939524319980665426445186973596057583917175729295484442173186773683891083386615668814962089837846150460816453961010791424698613834364983746157033358782951006328359822603279728850537327890662518558248793125512497539650962040416469577370204197736614764270590805809346714662028817773694694906812985869787879410463554140584199640178399982606491870063420381388126045548218002804326917151166212330330069904261241612923707440671951915732638900113256231536228915175634398792983110214380998699406909547357105231559884442443960978023456791429105960684406444559841725507886462366409002078563784213282340680121851132111457742290954384275480977341209809094916631508970939318203375206167708425220189639952051117687520362710009937089235669179715192954375568987905535621303652551580599076019336678369853169859231318232300074956046392199551135885924412643924551943482611101158467278540994458841798007260850455712591800666373245100342431741421957572474060521040733300688058321472606093021687264767551604561768111551447303825105768031452394306116836812800605692925802979476617851628950375485799702848513488075519908074481957697094879844897500357915105530176654243598994458722601157861336538448360915661075864274383180882324244739846425860961769804839133915024063634651578645081624099531544043584676948570903796408778171637192043732203493225545258133315970121965595622047846999215143765760651028746841899188146861245532764005623186750241313318207973384720249538207400555108541745182104529462061378064307611367189746935841483461153254763189984959543744449506344336972675550328509366255932404162478107639034090132222566497977709559878387446966961790833739467953736346023319947572355923872744212152261442184934183288098871840762351050361947836799128191938083741314000900267792938322611917285810464290416977474820059455796739413545821264595489620935732595583977148925866278074923753553473344645285831483261065970194957848986475703914292689593600054227659387366134839240062308155563555987781548606338687159405072523680420794103524904053532001093891460629946814662439285499923401637693838451042515618367829664656878430904463269131446133228082311075665473785753274257162520060250217159055779429811501217753532094171513558156576387583815035604041610778864963370190814356581976233342037260393977758407540689416355602981238776413249863260174721526244242641713013131261209320141754184759230635133043653982844049569748784796547911835787230088918960734328984266358970125441079283231777378917052318523951645599541599974624481665689012984895475221571631159116423424495352456481281982919680018554175551357616386564411720270173686618300990828508025202268428688446255553698485385297686185182240236753699497046806239047597569229410795735002314923786621542861848234904210934087076930853567705982877741138149360423533267420172987881532264236972522867177254985419304307998799317159826929510240702647065516845496479761054043214159511075023985200200816319816203237683990198818567020946720262017037314915679544692379743562412337490242879100464510166974074495209844441498165666146596209781622052234027930967411513883581770526412052114712745633684326471413583677928148908004575395909067210724710435259803259683381154205749191723138640929480351336116456385520737649408495858068954112127720024694439133260739941161161438024155459866178456645722060562336267483037312859538469296868466235349483489816135461820776510716252753147456508084718801025401051044774609363757962478645272075967925522153380168381486918635868578078629907374688707553262812648833060079353397318981025958360248003824937497476243278310629921624226423872971333179527537891765996146228217585147083281620729454171927485985181713019387652942647788420594979225642448259739840328848278476093688762814896415172733619645585950030993626300900216534767505536650219862292430949428563557061579814244917752308040200306254287886588480667833293140150284802400285733293897088676572455990684184922976371419117155768800304702014146156951912198384998733660560517519941556137315619572090489651437038492624025461581604547314182450876908359429487272039155557695634058156117863727846716760723225028179256628802241771999321972813747209605380309825756457098301368161007463711334716090193195416414724572187815265152602482312558514230671803559537056628212680277334871004718166861580181490617820606884798056615416701104158989675310000535098806773651896111239953974789859471762490737080326678203932931987593598995119806044908648032810441529653943551326854937826995397078513556062044752284136924227811673980663172342308801461104006035215800305305167292930643773882735927253649933321817233930007641369890072975993257164531598114066515258962536876245581986604122295279698856081219035594687202001859231762141708076113969758785115732216043384765712333828450077137746891795419745054071716071682353959696726288684873690915587142683101824915671178723577248437960189280555964656004403356831620963735367950132316996039445503731981983059812379322706268801751733444127679573432067764270219066149920881974188189785387336238161315252040411338158913992478553254705029002554417023951373067125752341690714975139905472100558317676636849005154620362187284889774176468622703439055545272779356400976647347384541532881300117400676966968165169825695005225179169881467555303133105906287654644123485835618685365690762712911817646206225849145820700986074966919475229549786167070316366249262732632454374918885313261698828198737250941378916850016695320653149177199998340321933110466517155520005572668367145134675131754395875399083821477237804930873501458352422923665165074938930649527828833288175096529910617310512046592162477427449066406584961890782293868474655825481323237729220132285956958939164735051510397626727368223137280754168729763599260267020855663699787010232397867826576375791345968418322433062020939530376259755463239642892728391735630253495219356198455358729131917037180595196569138656286363545391408136755827847176348873676647181000334238804905705708063685998499994117076705320878303642408878086823608081925729077687231547708001372814092862158388315629038006618341461782884689094615882256441905073456753434686071161498170493527728317586025132826728878085652700013348508235214612167795937611259628861465869039794413400032734077009207715628088906199817784554868500247648973606056316511455975962417956022490454772324119615431072267615235402864232404135950630609376643351978558446075762698609224847864909913261468855693202820416259884981351369453835391097590065680833057304364437734803261424510901254843996138060260490845628060017418255530331497768903662321989068725851804663167308889184096774851584377777429477960304904710583863547685314876386798321793035172635842613402954595045270295856954844222780968767484630693572263321243710347197422561140684420710263978954897825900534144872644372363372514023010969763971534727231740703636835015520922394412196571900971355993717008405232278187811267051450111145509822439181477786550603080457225217725249254653831966748220039671236882886342560444501563356324930519542146558505323718134959899065951739616384184066453070205087912198154757623084209237559493238779451980693502962652612340115612895879122885139677974554291557902528435772463257033869961997824955583373697661649441206065306780596185704625521386132237669664958872472512191579773875408455004554334885324841323211118420791633502860274633386260713027877305738743877284898106037323812072973011016389479222960875560080534626623606495122693880042322950820074763795612694776441143722635060756823490788978767584346849461628900279710065764123716248638933006667376806611432797487192425198294448405190901942044389637332076299792094341146631257303917026717456196167878972690934807810788905184149156772579097504684906878877334008551674611134070168710035591597431488653003733761586071429301903194155066549478548715647800488705691754553765519484691616334038052957810240648895869198402963840632487677009708348595389637766342016056478313974165747810370911749001198323178327966654993436496017169298512564087209782922437592127971482433176891274703786685783683400091402183480101221049008589795726428700489843684763339596494182109992523910746317490657062638939259861869950253819701486936516824763720754680374504505906435320068785503384979648942365473763448595210954502224178970949077420466240331796394645692462223622159657990278707878957882255193580027203171369715702356130165063113496371657266650440739463343247132473932364519426359015507467997805074681154891601334708360494818177289200336243819863130731791168707141967050467451922486693281481299418390109738711421066037821598792351770522482412977549287199753400212998565580373052810829583750152243768171122547151476417971678186722306464180571430040299719440011164961010915479311409640515063807261117145504853518319095025532070673745066651343213545664510807829269891732852277584597896819156515171951830619222756546584078430054802676908984953740376184359922725702839985927894734797286628321699456217140772114440255317137075528208272511950991300234959683224671252788197093168912988355509212691499751774773961501741291130775571813534799237066265697708787568574338583360979848047771841052997082371215831755521972985610399703509587127801384937115709172845522293972617587580861268665727082415098483460593161775315972743076787611654180292177594240549395949568936696298128157339575092552349154925450103519220874497350092833770508312045378943629706985801761446130770407075294905678936916118309344721170427800203469016690650629349271116905040791342311649719088304108415069924014945031341858865419468824891054710107373526047106997057507642023606646678482934451884582632321244730615196711097181916330156554853072469772294110278941729585331432231584559786543410069390386001452848423646528474162024199501873497491335790968500261168216161801225545277751520783890947449129106623877876313948526400764080395439437354790918822594953763653154584177309198768845928725141089830221814372845295153384476871949486086714070034300829943241683747250736900622374496958302134748386795601437098303526965378966204814714030138924197445687806378039279855026189170266265379521383183884694161593297529853720073915598270387468599922571785031710269277248031354034912505774303166534653802844746587528762868137229929471164248423694034388775646508731932737981033422705960939405095167466268980572385257195445952489715741999196299012295331628376996550209276577682004942976292537221826437294956173465247858265553174233494115884408473779378775898069373446774116845027820498432956412237708167450003243982662852783383608175446809202430058393569675650366303224199871073290336209420167213922697040627083062746986899787486937265433902847763658677015597519844483442580582552074465270583012200487873184332481441197853744780580816078985222965317022298302575616961055081330364798291136170702875508224886941642589904848276653636721981782920380054804838224568287223376323624697841656137553989304306808740593690698686517971851610932871267379573185945582709567409496266906686292645191719550735725799202016827925741547309234074836250017126623494184308655008895378953965599458947625117686073982013485987036413085262353993348321720149749280673598303242386207538581989819504014437444597552948376847995866873960779235623856265663039737814983885426478288620039534717242380760417074399021853344142503022680517668089847052059311261564670824707797870166348689977137413186249519816075270670488562115818354011678223545902344353415558201635959151303344342271479775747468033261796423327929358754412713347017583795742692342649798928521933080981857725293582960869302333708416317375229579575847312950704537450487520624462251754529570999329146665813805188293470803797632482989338475518545990569617271610975427685369735569063166877238492513330592512151970792390499922417803699190239457526222023693707122542760343631255455628408810559176743615141482931964858477508835014900549155906535275769908422528485040117752624116341714817850355631976803074783287448636619035871959607323032279979903690090733296691244075380278363576067794638718841909499348963124123990318666151467846037343467701991054816484400825183729394917212948554429795780768010574369262798820252708739107775785615374756489281718467039051698695116951729321904260311811837851421383002214991952329484570917281798065319228658266628896876471092158593341848278358095323912031113309134444684184768431378713917463119783655289005919389063357544213144433323669290231115804496788816749966599821237740403539518002203582735956270310798951126665873069311881436282408497312508076049481617395593452194712002785254452054390518891800391884862600838337390352429532759785583853364255209409258016234842149688699315346412986017147938867521148240313822975937410395174861870329679597209852702285054891310367683699339080531841128368492043951789475518988772579184398278279035740211709988281855498636902632033195870391320781799443370760516727886009540166516088704554558577824362126560077081663609611668280341226577299134329851532337275843925780821297004771871545465813962881633426583435369909423275927930409179708694491522144850721259634963488163473051564885650550333194740709835557818542402211849826001089291698891798140281919063309186602968159268920269529323781422380651748547711833410716189448005566593011272553947017509574315047735711508749473440377709124926637983093776053242162511329424002521263302043620054457819597560097367880728566217602831102053184446879235465319340364861806534735063383663161631565102484789467924221962240445617324312985651318186564348512645898676188380081996555351038068499794297015722790979155946791388143144501254176348958964354489440841825492912969091159231325421262541991729495812975964876960826425107076077246964615177790584826252555864696338722440311716341199836632011735776833687474426318226993080788221437360257352994457669328504897265679760019444297486409646269052093294350811835669036259216852062601677499002116244786454406815398322139970220601404904119408156275308795798146093076665147473215722378512781866809586926123662619123202777883552340938655632688519587373440268308200575048253447383357076042744587447302726147661192781185123786725893307369778825256378604614213169271223082520889542787702412504980205795909081913668703695943794353266184598098409932216200231291444699230473293182562739053270782818458645002172901246964125378177430292737592814512513252134281632487440244937840471557729218910855935766994539871505980700018641164241381694304218569308182809623234330075793207626067863280448590363104084153203850933694045852237684006012648624403955514847208900742429705209502697619988610946535763784237904263083354319601004225383577233874057213254094239719474019375370912308567993745667811816936235818645334766926204302612608648367076829146702066245620813447705822910971663018195542114841740555742406405638380430055732692599059090169843032745931757762027970625923146335557788356822890227912250376449644608667494577541869729554912659273162050937906189135495708369183973425747559049622836015382943464581107861787210551497942502951817868924336212938587873671581846672211872061502125733200061526594013176124400551097838241725591838656780191566465318916229209579677346135927947288204474150067939539835261896449189891543947559844358274657457099003079715531639551578563452249249656100864451163786428745660659050183539117537200075897109077192120576517347786900777253564316766323737261593239462956747670254079446690067029454933128231567888183356817435612877991976138757414471273794153689799062660459179074451666099416393477849255102796219590192972700899227069331442402254394973665462842515423517391347301564002915484412479161570762480288081201184030846365625644343695752569469555867062760866742533889594568144191132692847457572494862796201717923998602172959069171012791837784435186550919076587176913103753214073123196449492368547703907134421049427364011418797883816645926167181067748586780896949271960998761121390842227163111967265482987138130151925043439500877910480506690204125561558533299198282803617296813854513657687939048309757807936817418521082699410826291865395692219739111912234657354844736096027604763166387448652479505317902584096934101919654587878147473368813804756945671039628555864948431559632320732203413013467936562933084778758667823275487169861799632074139535296685922383124706124761723304533924896170538896179623805695179956771636725570890573257516890900390811877138640565590254853195306108091446321680920130650181441329448935605503619395874763737494750315782655506598118890320314602934661070206531072162334407103443629439562414725195116078516911209232903936871905288196803191529651700237595727728181878197806303084216336940696789781845052622610503869337166302152486371642888653944343235825079265636836131383835737875993530819566573305056519901994984591642661364034903642768515205602196009141362456928975251467053428423863001140750150881413369898074159741616853216835760952781918872017463128184712272566336901642326432840216971561887435456349288602176658593104860964396304123673707223812925550785938510980470201081460487466202316142897365362151520144901399796955902342375942615197885049583444070138051746342525351676641229695838614865284401879513121516890425855884318415528110397358517339877116847511455802854423617970786624840600861416555196734266746425827231612220409888319696097781887524682339729585266442390277779345718141755995118776006057726622089438052151721827293094902418092758180826598702321233617726948484766362737659345909848907956829352808299854747104966142060741580542976224734401121349080531202071518026676389485861038699454382830093655040781796757128544860512703042727758439685682217141214943127346990268440048866636683595328956090497295053247967377078175701733465542289361309846437635256794959348632118093326517111403624017092171609272366050742783409223927974597114402705165267211286203884711266378345904226994247246223523452978739024975956852206669194645257925616272514947520521724772314979652697043390974987284311819129517123847674170912030577095716700418710999176054463061836357939464610563134381928409881418853900527638867282932086083341113654503592582107431028613517850096447386498741668935554781367651006310509389177460035495336976440490328827785787379677343823235381718802128092695582314091904319760009434473648671068633424276678085455680796466431560582538494140623131801745752484228026685705661395450942793837581938886601470328208335239291056822678171406824454690395165709109236508825759872762994778008281331921108271739888929585368258574012887744580681667866646832533270820249389907979844105203666483365810642084054685228889396185074614976417530380520690111029066270956183547347330376817571045922169630731564962249194453917336715282327631971248507739089340955945646172437632915436189414540024900273926119054703664900442655212164616761753796646862471378250503251611172097876330539937525456536951030236814174622458285014802126437273751668978250261175340289288024586579007738624656146834933603948004028909323568686911593980071487085983870985406342753837419512083434057088524456111450054421122191358930643332794430616337000845080976925503558388069069631929448987665097393667565378131743978444690404127887515680271891642514858007529803353663700875411486809922759638316942115588535045085452546828847981946847231288952176053557940363354737721580062032444695029757141669019754367981580000421768603077764571358603571108578661273403090129347556159136785876846993435333730360700725464459864584635715247842796030175730467949613931100305927196302989957644563348196896367269868757760631485017442948500205686572126122044159165061443636026356026137197105273712099410283757792067621263630840789909851364102701339153979990527331704990836991847388987234741841483222687754778404830605691970255421107083584491834406077979235942472085844823837976254351236786044599142541935219490689701998051740928873345901055660470181741680427933129482441977708633262123328785079845433800458373007632071851458691769935488259376252475929222499007022382676954621122977987798005413561526496904423776805496577668181365936673792722333954252866782510855974383804428901001282962588640305207773365623996438258647349099299629387575987404666149818850295929402538292604185822050169221467432752049879779756353636470941712928184116670300247889067766377948333774617931268191511193165921495528912365504037775931987082736058080609421259788113640803284333102364376134214631072090767444959397497702546398592095640135759410957588960594024454648742718297284503012430379278536979108355316992256520354425832647476230518217929710845985765783497252111986741014393918800485232998709624921051849288156737444073505697705269794215150643643659706546612342333288263512757129549909622446790449900758814905479351749485245058604779783941308195147916625945308860996650644516261391103209636341486838878109835341385427467795551123691844550777888984896079462644158996155380599346312410462128805141179164159423665564731322967556461181075110636247149690750136041140470052347261267455325565006855449946212936189125948569363638154014875222098878136542407270073557516786926093968568186964473776029375850481834251203669514365682042050159585129695800780300253416495346797425598062747178488111783703372637940134101524353250282989359549397337197873275425020605352472271947824584977238934338113656331359444422520946616573897634815724821705453587123862679417658073996629902678125129193457180828920117777753920617589566149977490938643602577585306829179996014650688506453422232026436279391578608313644689154809485985864998067531452873600105393901045018664101689966596630115798326659024337399151674280499161242835091770070165395777779648247273953135867637808279230481669698943417150904131923832335932305595196716934531097122893198718581138776578135797483900039425301751635908168750593127682255385988683005004023493996425685093261165029734885546155375459466953130235658584265665940960854908173988666029487083763511150556783144986529195040191212049783262500822909095415581165184990497087020868119196773594092894809260449880578092975268388633526838210739236557251246552055924623089977720223384470174715949201728933812054462271272175741946157614578243500234367799628082458444406630172909980330539045920513024707249084796102940368296899445476790543983074767133684306722585620201823435593830334541442186420910291365090379886792073070329309970200128004387311694890861929507496251767536504655724188870921878592648092201728545710578294158378168545901165164479579671332018362051996494412757352148419056870288389799842099850719422810278446699111667360283635527219814028707631256975847340940550789644943728844824980666918274972595198671115283639815183833883314691617795279634794887528693974141136457513730159620193509844181396934028682704635352644621267264574051426879641607568049988358467426903817986313650604446293008246686690813594006340783655936249163802698114238599159737605629040624944901561724934679822147116825796304351845267326571172951768616522426142642635151110227155190586448550649964690082965546422270959335925135573692365371117795494018833237602696561699323305139409080039172093037936619173005997166918254666941622550017301448595510969084213153703960245707824829192500410110314789644343870367197875715998913652579137958746997219504232672546607183200112252958390551314467691823931624070463922328864628241676180350003609062036596980141978037973404285800063627011824087327333352316484155145542430886285690879032364892211153270569028778234316992217914732351379934825254489805137815963512562087122475068182855682692219474381162435205067443105086062380969416951516873983972636610536803703975733343679848765122032082619512537305840023577468243516028912193900737216645544446757301483842184214241347311027600901146855526718866299560392172890590786749675657774742831974962174965083306499471591333452508383287852848561768852996313222876851851865282945789227336352762462210312242151851949385244317024053509095241350793183418802832216287182641900351945728138291060609220468873065866567691452617408673852120094984808516025734759310397308353010494939462709690934772819594249336990110897873377927749898515103131071238932104505623190338797345430479077611393927512971438546699688368759972035958057320875873000071089634311076232279576352343582932085747620840198337238497074275653879264840167844997057994014889636312343955414416927356179495011304899369638788041010995619165414690420531768067005971401781510101971102173351374137373308856622774285163412945284110821212116741701336686964740679328873401921805878222289286103500934287253851780617669311271885322850694319512358605418734500932353937134413679770064574189262684746409581434512815830546667286290719530424268303933121142337516250657679245850165388578018805816514972679466633446507942365571723502548729089923098291647205884426525231672618214529593365728132414674156926890927891199531209051145949995355000957976688362736123024866465682870964542209484397021293954673847896435406278063361972036652917000182092368547175682057083810611928036545704764084286185157426820091302092326833993163411527661101903604290966804678956089622188293526330438062205190685133430928341361756378924820467836876374294197611789748872145732829221053684899093445294638691408932454011259268485687070128175243363889025126181681866655121947888222685579396201327579494183018608652375195721640722027400322324063932004947837353999947121672294811369557626629683532735132712890032553436372038330274317649316888765384350992948482739459793155198891897896883977829618168180482835704136292160467177257158038419998997851783032372381020419355357177920537572024243793925312021805008138375787552866137193890153312867390779670219255404146312266580025335335577541309906183585647797022974993339182691246058230709460910186392561709597749478260987640671507441475326627539616584040087657700215435518691464454855421358202823283058056612792485007684350504397010711907963772413550428775851704656547670216566054490662330134958926991273640289097008910759970591658522009032613927967980244091006789637069087463627895255718014341588038495995544982143858066049473908119314886568199016439570046867781062276415454794254014098980181362468167579817728193782762228163728117481608140600652733418664704071286421579819397242253243215529017118451431458264216198968295061035753817407685727864867235499722513911176664374236451212523693131831619027595781945657900620703614188708597100583040713002061179881294086653369792605165772758334836924353383621567593812257384032702646697952788570788485917407790009037489213476599448763675281621381354255786504288082961493119504398286396840606340251632666326904397120674613847406138993361526111470889765129087207645697615115550458138670872046486800263469501293314116482907498901523599919943941859505587969640315733941166709480307152031681477622621043138666605788928052059741707880146412820055320655684374570170808946521834744919631536814717146967043001972045727544321657589603131744354095876172027074211036863960404088012354642084615160873125968115177843105040936136303367036380010357470090571660777614092465954913405709536005910512647961289021730962135479023246652395171074448064203285060243767390296747035883809565200637527428445470495861392399838180623422124192759951413676239931323318397606556888415752782863329898838726028904609505975269883977473219836437158883637794663599697837721561932229049618550642146536992166919693434458818903993767968452050410189577362537854373534509275101113890192458799917642489055217462957677394096006851815552358082622012718361470720007694795738549082571329633065086726244471752389709239652208975549454927209298130438814598155324060320283586107193912343928496556726513541617569009401441135107405398831907163800006165468597624882646888766319286916668507911229146584395707543078892428680622096878642852303182384333469562277453516349843344082948037862138300885503061037341869630200462142942379590582199163586470665420429231918950288111417880877448971834337743450859565657275786846634477996099268627512185588747344619284313613040058840144329396545054098881686784810295550136067803963022935876878922796817710837363068730447548504146596317969323295820375862707921931809203670193554264375422645293543444311451384249560339406946350335868007037438876079722292233873068088421126628424473610979411803882297175717772520098576178763208459522532125421249767397425180545392320740328069767279099306318499359904418323579354634876214820617369407137263768005122076664412707483459613860320353636312040336837300874531248944591638100953838989301815910800709833547053719358808248316396310406357614055445991039212464957621866597145210037033210173145348521824491529285462156436826825627854292991895785807063914414403738642680435501976024984384595597322817555870003416430933972697615089651066312591134450286050550505480615879118424330267798351584187719117771219777505436459512552150185883833174858777891916803867265569400791617371967794578020845826447393852780611046368786549720556339456312665986487539003842694492315455001225351339614366134196279767501852300705234369204733913780141375920526396991888712449282522484471696934955605102579559282829081326588976010232793943355743069420027734199734313862068998526344983519873614967458251347152416473203155197269918633318971543518931672881139888654691865222371516923484365101607558041741269019874753503584512767510346028250415504677603729301261620489095048989807142131756047817958019961005281244203772761630777408971384424331249556781518044189321482364361552360154302966683462857426750085865769277519117181645885684803646983615622512514150896502630973473808415120130775368687171372201252020264089090506445957391232255446328651737599462925501666280399254480232025630414375541166467537049678259556471838315404986506931727804990191907611418368280301329047308536353791951312695454554417463093908171858233378985325543523976059143758332974220879094961929268539443641088707841493850417462568576690677525724067747381937970914403432166945961674273220621246118228798379496046129376196829602291021294696287503283811330050453275737628129601969513255378683646261651978195675348494678190932001684930737019681044919347138005980116165333485871072833965890602362500029602220733765362788551333208230985089562227493230932588615394452804587554392207925197071939531174971857161396395215882629182994900004609691534255771368036470107411171469002691010874120856217728785406924023045963497363194460093782346498090019958484127414354754454856507549445000722441302599799545270039764055976402932634487034489160115893919103766464929745259899450131432411142605094735738788581032153999509624157533375733559761231195097147742897920238477918690111118537967026933397601718505270174211450632101106869425127059190324693492621955417819289733493423200137684371539920053619328739362927222781353523749569161580806328647439350449173736943872417556442527725494993932003210891434234666891393533193771763505067849420491692189505344897469334506117056073432252100444533994849051781327150551265610047459811259754410801965990566604883491308530008871765948964875334339807119836081351662616861734375765269829998130553766628898521487085061813100552807275395369585273683724730455751068073513387507074515711402867449335418643015173698845731238103965701868288517179202820208760923369967949054191411151662392715401115443810465870599421233741388308170467058298097532259889135299799554392353969627298273009468577894339294430287327560545053538168412355139746314066947878154695759204784776412500852708270292701339962809170727549618881936487804482957559290726768008363062309896558141994374568927961030977024206185479944805526345641232142601901550184548141302520604571112653839325151992876921591287673770171699885456591236422802859967499960751400452415180819499445649272139980704198982241926755494130820380370470226796575705600367757907740593776192525319640651244980427778063982027714274676274842270229078676730169955796691888507994150242251755056971099051099032016339267426688392799915687893044969474990799223467575005792905258260906074783928601307628072242375415207764830521022828946765139683244284055172561372686070187472824157345305260729622565536686180323421491129175502993479919613799910942887556301590543980879416878041562745346447541000082243686808542697405590933667989951241239126817812472685863169606046279469044901429037559754913238945178591312850337367633443339834137662753903801341768051463531955244910301367126948494155144167692870111854705964556540112891890234912896992327206806333268463584568814368540770969392673348980680836050104417274573837743604941458256506552901408406569174239925942769359876427092970917674325003431621864008755675567491143403979687766418583073796298974234837013114404188124272903344848680966165821356347819020834624621763471022075984738414901251789794921741218586756097261205513639982522445027041644423916996204976734385547039004845894679687727935659078021001448855845790099370931443187338206725374953610692926193917939702106116405225943028096401811156662613324104940447184673305860747723344062632783160486762229056393126721974366606525029468495534224207800581513442002278965794053029468165725163356218942791187580450583766346115289469096905091518035416808319150470836297107546491755771200780843309764777891158869135876567657252679542782528266554982159008605095149611274837172446147072847663320889638067146320161765794951880802350827718235611322617382464956259301974406321031194204716604180485225161078584230558943175460299088992297884427207579208313853149537480045907184104804387807461942258637309691591490299211541528088984365415923490643677235553201271130438390975273809102906110318988857515851724013849654570621096518020531921311142394660928771052054768926744569280580652004126392050523678360911063554561030854207963925302416660758676792389947345872009174225278540295609320201170479565808767387892161548014891285759314800189901167559340631075857114222960352537778535033122311873839109852012908249745968979283533874533957228224781012618389914336633755865944893656084495193328189578070776899528036481357428898852619670314856640628747271762931527064272208710293497793159926305594705638647787705318265064858399369970204056178649033972764461557644650767752543755127621624490749270648138323168456379191957811436330737056322604284895529509358901913686503925540311276903985376748106165363100689607888840833859190059437153672321085397329153601964975617097231570230359352887264837555702477631999098989642937195750028349735910119911428114860815293683912072231380994519420277791424015176827836263448232819848572035352496742331083073709551650637532499714146484385687386176791752944304789548533828565833868361039690843359120410207559560009775994834592257631169798316863484931416111709700198311172209366656649469483339435494675761513071402277642155440450023505590384854335787403201068872207878077978925727103595450252731658678799543724848406061103872102212121596447524593391019254349691669599247669874223241532809661565466787143757825270910282335508033442737939688758921013571224389066863147984921557691404003834408032107204785467355900838804708348612109420239800210402288008991302663196373392998894628577719096519466231752231062595323754873141238831108243837248771959676904952386025984178691646223587847126488393037623348892529544245182947985025694584105238304217463987928747643262412408134025337565915921578323871576070614949620177647488628769932104007114427301660181238063505125876915168552569389646925359321779536413209938233981609874669117213633388283619176001731743889810897978992373749425256834884760269111632222837845081390279489310533397140243061400960741921145227288680913305979542145113175224430525628330617739448116317784479289163129350139424360463987403945031892314135880458251281499204209222524370665706191074971644464010732672254945452693157201120682329750500689956539128919114117123624348514276985244851631859710788836601288873371097768156760927648377968335705635834492854348174791093821561840774728058933307743467310516476647384622885935143143650177380101849106206070669287247066398753267144121412441363930356598601382347012719323855823983341168896654878514586788100916029927586434599045042552827531083022101994610345541537137336083706612526514437507967434159249460734727493867590723655147686244988650837754811899853382454975011673519451076431998698689342330844898225760003185722450709729230024757494982477171876096379294909457913301112270842748190114846895885290114242022191778493987472892575686585641998482411754778015953916783041513578063180851301943860246815194544661400106958984846999036795931758596809823654902647809479031844075589142708952060575826310128221510048796894506756852060002298485710059299796486543347357065560253363046048982605464330390772569509761005220202177679005113849878344790716907774716532332889242408116969312961981081585912749616080521613634630138169772923714638513871195735667004091232381717379317825782531441734084561794701603374913730853794684813040415296139480992982979758281413980155149719966035287048060067752187820305553573218722016086987571356134840833364744495586615889521472243078775986029853505664676024652079497319791368588898618761216406611943982171172283534520858637296682306475139616956549246130615751547433049675847283300487972905226969111064484983017125843682433529000339397277416990065472935497195811369209013720583290815047729593181487050748852728289699634032757806120290697928206295792966003989507606730182011247684744387503273300735709407452599902315932638656191005558436295859934659224733175090117233287611828142312893890322212889552782968721513878654445286853565131136527341105506145623518574132252016190292362602982285915472920636331920892466696199836642945312926141546998325452558247832543332687551103798045137744548729259582925969503912304106406673542256797759212312255089970644745179937873167539863656269848259216774817963218546425113000197497164414365544013368678586465884276643565609709735786489443680995619981047045078616664600492455925556733683179514990951077768178832277081744496192961220900707287209969078047930990418458685357614851874285431236300148180406327566298728707714238883774244392942020872766422637913723302579817394695369802412569704163210548644171079461972877222479401689652435846023007718745983329576608190031202662345173052639050612855130588852746427951201650045577257719632875149306860614609721286503586800505049938906551063086084660426578355807406813228002067038657728992190946754108591057019789008523864738398088977440321449125255905427668424640351858124881716651297042726703185659642163292278037047106471193128154238339021148866153396636829632545465107288044538288700445123758558394686734166460262274178611063606154194158193083576005065635605189211991965818992865987493452045271691835717189168236837330737057209642893261633134462339279027959611181088225456465235127982084361944764338335743497635436651408739130584823334053303415830034819500289622172992669564232171233474033007279774823174642589234415951392022807777244997295657336310228338507618103521552389193670420729449560262025296649145767958217654638641777747976001101706894756417230519723605881489306942834477834117818840127640064657319076546018305348584251962127070983297497113707555584408817169217577911715103189537283702725906138533598662625206399950947418570628994146829765151898750343895727304446708443247704892096484207193016185499088883147962144846817131894364833923088710763439852977031185950882812603140952700875052658670422937136300891313625102265346160600222958112911929636148732678749144845481657032008397552940816642830811208900591000875950760658806424570768119611544110764034314163774194906516961821164128493938298186092150812654362717542958357829203123418420587894792599700022037840611274502037843487379649890480897490435688590539565513899379434902122658801699694510792924426154272768611704740447965673782613967910668072219544794814280307141163297396364281386373708092008307773475375537858935502346836129119292526892027714670476442648442759413650662956015410352264619177278525573171580375774453064264277491150533561042846824463861950307883082511090076158885803977312234012228094355270795305129599584717716288287417074165494843610544361060944477050187202698056431246996652388077572039996443933187129333526568655158918979048426263446877677461022780605922055776714273605409124478264852274161212323272836186353248079752516413728503305963791193526459197058302133102990976037153639749066374628595861779850222119209752110710081110335522321745472510669559168883714074086859098288820209362268420408799216977993354931052439767893118757407840109704617890981897340715097565697648153188970928733586123211140281669047630265548308871901580447206473640587175308947336060195491868318574729212232857476876864225235531416753703351888396592887830141289516320080817344772155057918988081133435370917403720630931818325922855878937108537655458320648365968868649375998686181814308709400318405189896937294092418885838340075410421863926649170883047962451181027304085302411494218121156196065913273860999056219217742356731541530300693849146504424905474862243149898952590517035649273560419906729884703773201592286611981002378021008935287115389782930590991764043229753294153424763795497809381888061158273583360646784794065885194291111284055492165614112309570258366920411832649806425811827234483556846927475668562995244360752703560492665878578333222579117269895718678032153622599552576177302968457717998150571411013539147848362304507743520959884997011652865969356271223279447787106253551449013896206729824582238865641637888261310206542733707991331748143330024295324783908895184155140489519279053387454386353642477180948549254854498204710903135101922817157330136675891035319042025628869685521817095306287988738426939851356982772898251068657469120262340340958909227425479906291643493518415937814200705769909912980212479592392813074330498159021486899281709829854093008451045712642702672439517741030552997952797070061189788093423521850456000093046827953843088581547181330766705325483841672252690511314727849907129535299240825326214729419134710984732627291206944447426620601199467918283379603672987321546881924541344192548226649811298804361893629880404919532619879692904031530475672526878905730522954620747219608601701136558176720534126455022956342930264042287371673296217563161858590391643901284094032712879113178793387365337342926725596913349858404083384333742519605921470927374819583479573083727616743928183171403016282194346805674105405311633386938849033107694902801536422607301490177751584942195209119347808222880442563120779742894405958349509557662375174436134400458086237177251288892788226125644539307261569222371651774158453533904640234082567019355533729101716674222043936226498168298947995376454686686974119869740247904233491868276234683515056415296592295814894217265221251325585961520308395010077491472114192061015217376589395000616413643376287341575699583285478985512527877702337992355823815183966767529070430039118096171539556325023723588547902631610448867973990403408065264679767632563286412486001842632486143882195298828943692015399329334488380234034800541905402658708545662755199248956003608061019929996162049846218606047061571119727109049803458573133506479843160902567135310121461912534218102402254585275951427126721647749169697144080669467182401807708665687287916648831585379701276877526044001943818451305776964179964714080103364474565325566463513126228048846196274081641480101220710893870946560725599391406854956199907334878614322028897374716495576877824724256260705271749882348872725771520013998029830625470574235222499606160945967962687566664590826463430823140955584357517235785816367320657092932977819614921193414809460014664186142578546199074201125528380455424206247904210796359319413955249351956611851381877367521270816867062945799700111792067877292820705076855104200261993759944762014784504552712204573184485685741967751433164912813084181130223630304637727332018280697600200080630390953633296594093946146462364923944512895317737341636802860687636554477815919063381107410629640168257831128240146845477185682971036562410024328036846254829177346625413523619971444874142714026615496146417501730834624723219066774541735970329083032768110404100934708154591337618237877209967611245939356471897848885439200259109957411157135892384011864621491117611249897075701703211546132523204794919212412062406431624570389847611605854274171233471980457352238439186252687124347394304346448361216197804606383965767420135530465071697512791906652909352733788168274705111949047817865045154911613538722734250305648978180235602613474481402448804916562544957269558931761185745728366977952839766635525036997165436489260825989862562548166439369095438150843066011420385557344218584528283748658992439778650907349207849470537485916229582385105076413655749705257434248325949057356670124619701769799956591311364027576969781219934474406107211000430567548763938809673328081238049857394497283266484608420464320184372470314055684476685582485187911649767890044824576044859434719402591108678532794539207231743269339776589935978099631958112679576015636173384423908462410241818591305282100563591710197314224621504687103770184914405990296577922517960918587300236015806407518401137652026467462970773745626293588801605916814268089128116894175643843998117392427967571090818812048695057404269486476051952356925986986753590562161861102817041472686352442651679740644705153167884199058830867252229343284397895283785574170358765096893897321530690843163352070160678140134095745235613730493329317128902073925350554596389955416067135327382012716196188817126601748055813310462541023751244776948348630519714892759569902971957761970649555806166804305650469877466350563240235200419504262218910507119536199978825530329711755965520238998497221861894742742488893891860218827888651163360788637734002467346563042150442878616413092783295090774262695987983916755914264262480154978202031911960778221840227892308578958153214938642452237188952124698195154521515057164139334638034780792366068309257276292219148299730069542854675741587318563646934851936700910258916250925685262941200995798279308568156677769327729208166975303594571593907468011502123660548921832259020426117325420108689791029880408541477761064970290388106340407669305471218335631831392728138544503639503582254973721726922136792572558079920510316305432771813466992962339173958317760429115151977678841225634958674039021813180122314517537402950872715911449118401570310516667420892532850436090099805182735989340179346428185358702309734856354103401789616291343050311420384908224612186049044494647427659334834045251383516898927423397045070519921746808960962010314371216099433800037999971600828971494448495141553301498379848326870530865891006113469847272036683067187737963134461461721047023198841129848249304344657828343536616627008962981150803162851443699054145271560870614152314587167802084104642221947043747489761195124131115162488348427088561995413080563301527004046669931795952221531420727708667608319077810461868197430465961472463422679043909653298977250903964583392630610765461503029515858510441251610840881462455092719954084984590933453420327895581801489767666150519006999153342949742939370238438166810671712001861302502273848033576327115920140242256763346800243281358405538775498810272035079054995875344118444083410216979461221428727558071084475168130041569431675277194853676280711339156793965457592370623174109099944927752705507485710265763355056597006554484473174502501933563846903599006016505813087274508751592593081470861314451062603389728827102413387285221036565687731716514587309661624668059001707841284892460414299170479864002708206023693987748246606559210871618089940565786723927246509772503402287284023465047832618204109453945816083514662489352457163276834177588989151996461066199204399514971452089061583622868596403870306807804981595863228789974329117724270726660736082393700941958020891997941462912520735944960769457439890843414556968903213983253258375507537641154833267132030631793978448197158061728999198712731423755078468646959521368553706734834152653220078904715166209521760145295700211308015234678705520348682924769195305506158018419472319642203667273151924640220229034028598322997965081822173157029758626508067089271821558370653764909831858867217447926331538076065686784696503687482170659204295016226917027493407899156458052678002869017504852228528138987715690685743912223617876027921162986830160485797467936568603133999804241823657861152485512657342535496723950273953553043528469993133664767136739478374379796191097761381717294833565177240143059017899872575739952349651740889340510351958805240838087854562000699682619816858481777496131094471560046984972841419651606034098316956306903613227254779753382092126821770943341097489548347514096302739839486904063052418627827621773430107877414754587741762046879796979266322835596019601291441499100487412238169133048318945240230646431865920647760512776304353247248876642199625640738294820372281842288000124704014752506562840009160499783828862816165055919661523560551114401020341939072264648433669934855883747087025493879783217625623960223401284939950244670276573109521587915244479611706039607885377899318789969157071306508997654348980479818337863512555566393773023215988878215159546890799095729361002594675966894924912491917656078660207210114837569970062253618274965983165692215524957681042597181699042944207764608935918590950603000599029752838587075344420113886337593462717278813578073385549650616378568033382238726016640467548857133564681376652744306462042789440731061052910760711191750826286959082444127066317620662215095436221314637744514615274418713747578503495010388546691347490567498279937287245640992740686262145014443028308754036683294071365604248957103782092843115303096206034454677925349131552782399215737818981231400554031553466085722035806080700429945815701092590551273304591094544664902196270728912226947795254282840301124873190561566934384264994652495221946198455829976169648589267650198375381993834168487897146385871005222775443098614664599742800734516003285226067980515257079183402590840054798325309665133610520132600173274096758013006061356765246920873261822934778088969138182598899052186035003445633169578164371998334105862823617406481582630383576032712000057697065971807758241900410545049021607356552520344600986606505769290669673500775917460612015814753437580524090719726453675529868221240738272567194969265647958834670268363518073349631464563742757265180214338273316752255762126153578458655062721004764017169801552638842663431650705557366373662261264714529981197389497375789305969081457242360900557187706447865912099696698006132308924087072253853849243085332489768342854607411857023385851794001974451551644784732932301879971371646803765269756560012012387450006324903408094060089492807023751184029765256036639533004656374605417823306492600157876048337939457051286448731495723678670205290117206789832676181231267909034243466647987852160687053832410122958749337637501980153107684556480224998266620835440296009088421125185102291388204039242519300657973433289122375435925334571570795886952064406012029276054064941987253262738220654276382977555709742454931821986290328028926897633966200681233163682742172533830755989619759184541823649423201483873738352805342709753992321337929093603233989729633782972259117189790930556086828551231129501086284774959322537890728425072097119911386860765642731632489239894515888847990136352487882168053321623894681036132027187012148589858308321544392002489228146570518223346348331054871513513043006406795035687271653902306759305210252674311697780661142467027513756408106072290493143353498419730523346535820207711502139374882329159951517220586093653754905189716629474106124593776608521590813972030377320910952511922379076374889957372402565370807535467086855185177736737282177681246452717097923314970980333955913519659120406400619160873814591180392760135564498772311364886514478467877351194852203735760691410392512008658418594189433545323197328078843841377493744881382385742940902116003252137916508858447779188428745899022024717507758238198324181816406019541073788722576566034930128240782829609263232045934274686652387005563102733527066045336895370736868440679754160581398692583497912365719133065011155153526400071327918416151629686069292466102989898697052269487558107705384757766043372066019360569810699306601075357128546838129911166448261070360993166692633329704281658742745506226536572234394867981748912379322166177405368498201158205827425650096873582192031371628601243748133261837148113644079508064738446407532855997374317775102283193145692510823480081727295528874553043865664091371042599237363433474434617608381477489047676803023720923791341549196983340144723065178636966523550984528220563202892929834266466771685228161520979025448090180875709587150979659598172649390600943064680660680136278022727035374711204617633894027412536241137435405622158087844128738446660182681738806587460567022560650547852639692536037895011033048502054255625279716429929231210375169643482038066925817642642430842442795071111831122528880428154790806912036559034161875790565726290087339955172619896185894287422344933493515065344507213988955928641137992519355742641168032430988700400790778930696006085714817669207890039828874086156893713380093046570840781096709420565053407864020633792312381986883655205821643091306555116756072500179420637961591873392998417350009289206706702810407021484904381726679446102573225359379964223318658148746452058598857840127849707124703199146914853377775649487222584660121668751851741672477854652431466434745427023415247821657838427613773404628722726890278042662645231424647318082134667323535491158469416556432698486132476424394053170692688868263848045714414082137020897166865304015853861274050225776356889246792618934595317468868342946895176094922689400377505910184374946992620669367120616387143471354457000935106820670136212304442085691716925664289469822827896409617569857003065901316760102607801365190479026536067276212060630860898816476062222528518854872053183130951392916109715463389318571779187407275914247266732997275837045222646778171978633468970088195853462152893334728746878524569246887418384641766243364817393189971092172930779304388270866780322794095563158459106305334078767065695234244341321304103687726161880931927245377984485012256658655304183124995035984095060686822668616069183608808263419323333588688332167546753759474062728093075991552437959890212143494733552451106432499226314654964980780754509010915849689477827838667518318107165177496158687337909722417044424724352811829391556878066657525776641498847376867685530580380739085240928171132863398087201256695611008227475448161876753517944453214207946255375368363720454565724106718447220707210218375919543786928340945074520702177408435412219704093532937372398910546295547977235310369815944079934175905828450519956393665784159217277603149451195730859245035926426293527727001595902323237842633905060164591360175106316734141463575839665538918155022042898949690550715728992460959040604263799257503393912387692670451780928689019355101355596758253526956670205018652087769705439141492344759193223918824994367326301753325580490303166327408938196781916996592509992088719087710307090442581916455303270457588226542478138962219766081595969034873561017661003132463881677725798490851186193671006769285980963308007645476316886553645004525514814512670746826448370904566321317255791062165836438160083216343584859911360943152582000167013076085424357018716217830947305452093673877857181469850222375804066130950108362638185256792061671087671470254248051374601782818326067229821384661138932674584291626326388420939963595906910661966088685355648393320057250043927756715721157064761672817607672018691282601844740060091210746622748675890948920751469046362257646441423192894008638136638365395334696563670309795044149426536118977840162732746652037738698580604664320512315123493695022855632038229081338514004102166143987527855198486173482655596046062558148281655593757522009002229894327681483343864618300348179092362988731770611547303302218508680602133855345843654957548524422393990614987922203455071944605783100248302078534703291046337138405350073475384165287445475666067847334985101873606697619338466273882551543779493029775058085738509766313041003570255130836816331910626040641476311208664562814922155368606085915700239163603857518448435399993161602509078085117645411489991508098945253663134768717610523634071168902758233182581585259604475137847790269023942591864680160478713598207570882998568245714908815017239589893778705545628990950224139178766465757934487142757794346177093410553962164571205646583407765743081186174835532357217531908047415503378928677391656625659847095988874828913539044458969024940179972560034731184233398495104441446556290389592385561773035570526711013270923712902811038269672804544396898216555500720055572975907332406920571802873869117281458903443102353058604458885950718728657879596183415156418568263080905492209249736728945794136925571946367277078714592814742851811072017728207933335883316054429041563624171153467554545048283859320504711726826287690905138418498732486912352314321861954864476499063186649925311764718764175984459679185438208987200797118899949106775839340979765349066364113090730185543046169490646673853991831231188688853060128192016542401364265551292078969957682525403644314160294608501140478019254336606216482203588789314267026781747302879016660588423631253534504058972712094405160205063311822110837665009309328631715973561274830116108159965480888617261774087647329980540145024456150951804474401403702751965163646600302107056766616411697508804668978329443861955976295755550480950175053180246214730047007065490762162862056116947224305509117693538141759793986924267094179959313709449696591131288253120276698942379498200755933817946074358006016940394962775319201293751917607187393322439375878397949573505395724143404443172842140170533399690971528907743051962983421590819376509257706022593873010253719259404123479849546083602585740155866711266177581413046747403012994046421172032771741153472926857187767681413348951370774617770904057476483808508811285046432903387556021196402055843878570783622357174015005064208934509870749924843383469848924058980630022252580305209063888390924595750212420850710256496327443974289388494336375095197794346546557075998987300155950983788393246320389836924377682002346964269637662184867167073799862722063446061274050057603060548187871080152324576188555965286285092590614738321067853836327094789820217045351045335606679709100126152536732086405597136275607582602960965376279951996846120329286715260634866518919222851042499685909812221776013433859043837731394786083027072460390178019417721639634254535046467385953150010712428211258439040514126996701089479489427930704598038039772687855153078488713778654331462943558813973988925715216175561046753080668740522539631489142875457200142603233512998996237084785544130798284683843507394672645563319614176492536579712904021690158996419674574156974861700296286814584582209724494310514135796550451892288199009364283517458321041425427114669261887421881596543733995444815180527430320287640055176308925529871875512159293637651267101708844978414693644063660194814903694929346126502286971820599177378935366387935485764709826517581624453739058285361796858298701227288812306259844317660468794264758930577174510909822874770583125614553554811979878926509228371441095497544697518598586129439678541789277772852132694496436407872867349781870855596995107882997278038770168814973041462686401356051439397759917807963446497250552606215596117131423361486342476793938687115551647229396884192400720741358208760163777038410024786033832631762171966477291474422995326869600281091468166820422945742446749785328208593762335936809673479225145398728712468725779750478346383633222013619338684157562893440744547962724608857864371045205101901536269521863474646230017824534812241837898773240315152859572736548022839628130766459435952748848634213592451705189835712957580561755956132078611609307458483795080236903299019211093146680215615268334533453323956439381460766229583983332413283216593875377355527971963447990498608687946478558270240312635253244133184145726474693577360990969309082015639250025108358812519856644902373844674022245774324017359486566860511456244565208571962920716369612793508005586476477808639597109952274825258785936148165191937508301075339790078386174863473161217728397350451539733325402267461048640200056544053072973160064186433838032886465811399306977878734347300179701224126552782824118060158139348423741036405315675014417926375663103112571632567512317691133169007663431661107681750838255316133795120591825072376546055392191485823086961912288812436827136876781749253690209083206445046641906586743756825493173884775641299754531850701405794066767560704133667720388433605576567973357427233452169497496583288847504445821157382035533951319711116884938711560435211808946313552459756963350526002598193932436305821621956726554337346269942683298441905850006176032460162628046042326858762678917356711373963428220452323796012337738890794704691573335247641107287054312117211179419768518903895240148203184425321823464616697421177124947725809709772696586909098898120287292687991488983507948745291322999316300121258305105046763832742695323950486627830410440023736960941398491195542783239056441904265756112207180489386312456507104063197637641781221395036292199239296118136776764561251179562646718669746091905290020798922901953101549458166778923778616405630625737265644560558593018630255538081195362353486482602745536553249673800885106808101471494655296066023742880025583729358295441497594088225368252361896060501060408696279565218144074829596873090692634498465951717383217342270536683805604597347939223129365932944154540922985973765306626291968436616128217318755325733046277305162758036765285259502141550379359215910595840178035105841851497971866770470160581502748378949847135260120038114321714466091901530340636688529724244225284627201229337944983825429488556640877115162471949988470217602681437566067043354174169362543960978979943580317085080698194707369064400007035887092296728763808988466948940409967355538608097662618240323960007438566615293144421884211818801888524838823127982586515504227035464176503752406577494903106110407840784157438342244373775351410714383115853808803729200744304755728923958165533952578012480066669556139972976017553349822950951469360900847032637401113918286190107002049887434298024903096915054657235027118634579219222055481993425276038786958468853142636097329059567490870844124878738643082068894007684369511328086779695472503823033580344777104278974246220151526007862525749675358328546658615203023489942259933719280850335757864360797972872165497812391105150278476980618579906845644345802511606427601704257745688926518776786199096519401190056051781260684302749842013975698538824981609681516256872669363820783081135610429778455578306319500448219616081029961014689234388477718436425066604880973870804163061816214709445198050531629031773589951666604625961830001583714265451308539672700442744872761628569719812410809383616930960356607320835198129681359173249950575716178719229445498203474044414764720560526705466258241813465194335881524345396824919821729760131250861598061339515840415847078447024418141566011872094609002567969308599327297793746873601575586885155231555121990038986285743796537590523319069191172444993744183570984339751165841026547665128231176886536593984364797022368037851867538906934846464220676083429121586705966149105975663453473880562110880047527769457719735863055343737308777855645742359315162770165224493649486560668401311897016513003578200421607862547065539272910869144071431231770698641195299290180463119143085143246954546181172303520675643216411773154687992716086765964278787252848352771120237251964809324124491428812991569788118619985674044426602898086751723056302842311533062294997549928952992707747538963103891254554630959791085348467585371564762773663518697621037598878202172463098586617397430106274320029991336183186252130295129370808448538717554133651240310717658885033142195640386927971201338112011485035554065821832067108420900684791746237003353640768754835592794325315248741965526150646925346672112504122123438835356042401965706492644925191790096050498631523455678830640091303592350179521893199848377383148850183512079120788521323910256337882659341530940524024496001628709629646779615694815114267182086098126620871056771108038661690279046866446926671931101467498792233317593638042377370563437882216811001874164299006954013528862246644368271476100799914318835860593063062378892684897944725212102741904271137138609333164474866729144676312038677721004366023176763899336090652830158827385586198210900518435831458004815410166754373392555625467152121587615749084999639204763896379317280175174179040844621000875177939036064641556381773825253118885637016311049870416094454726472300187190579046244152135447916424654450939551282037850868867593923479312262783034808326427934361150576312531052814791623047053782361016236115131102118639684910388729606925806945543067916814245705426435074380394236559241030489687402701316987279874827009318792092116278298729430816242249256739218183376519670994226421156374672846833065047935369472481460583371573155142578205050572887266934711862760455308048963365481106122810308522170215555298160955514761418335316926939227755128945057877940405295167905579856824282825706042216848544705378927467578952434007820582841159368140115261731290127129471827169181704844743321710289332447223986819871108067004074485754823854463872096484464051669911995303068990897228794748836788807137182520060592352507599309913527103441079132067168869134195955636687903258120422926796539135536715823995939021226921352160994704798540659372644702514512007637843323723433742172429182493586638815643176117270479057599597948057636937470305382121227611970649401860495641716967412687237913571263823101568679475049962737730522291561457152969413061334921550927107206713168405474808748991147852952735983426927590087030763586752294170833606049753977966834057898080371498475382385537673701079222827347664376738635038797973383765335393479972631499798085310493410675178485028845359394601731436792171990807699042202091937182848224523522231325001367677118701371424151595055336233957695276891101366972061229227241577542239492822806935879220148352898333866653789469081539577497535533251271472545688273654196245630643070304206072128144189632785642958206627298968373620000505441458924829301739048598537846410269692220819434916890633164356305175122713918962382884030781590523573766501544708885402290022122223280596235490987943623830688086965484024471371068224618898181790602581730356437010025804896346506710468329355841636333966093925805095836695228418980971051362122491713638784431919741616641044665814452353402806115644205030824169461457841644287745957356426455662176532226116711803465778985080445304424856747683397013241619026013573034826016082649422104805469658100474694747671257233217637062206484641583020806001742730478808423944381238341098121172151445263549959480766202608787329815608332447953719665115698383143987475633515625781303042628387557334918893604252632318916888773560097397840913926572436231483459867109504038654267322288134847867135706237544155047812245122913880085188578598094286917377586281127189900570191603400034574760843374018713763151021362641049671752842269998186524187342233703067202272953840066185012027297426442188998762204965487754839132472937068734051429148659104267108635020182257743455520579678220870544915831964612147571159128426217460700094191208867135771756058057301584185332101642439428706740232308660821002735472111598054828131904835546385158718146975889000883792170228801527844533783661914778781488433304022912940838213825120602074071076963561168474094641284444485210437611153500458673800515886162850775361175228466451491307998261950066985589586305444506675229487303059566874327604425164799039214411125530576901304818245157922038419022520195685468073898470127651981626163517428356582018773532138366222745591756942387488484456169995476371929456186539907417736793370613391745134112472634257436738167081152339684181931506793726281034815385499427830883295486110194981250865865809847285682997703766460851261267841594764210473297324554375403570725330015106901575206726509852093435739431071545040920450046416831374074573136762126152815396902238010882133184965335368919306782934027543614418236520066090884230046456643314608884382957158166410080356238670227303978034560242661660364668688630137531306147847584296246074165464856488568908908820103616155827302003538171838443384938832982726054663642298481401311008525148796140559915133938161220455353027627100213089144850275794494315759926970747315683156030413913658760452392828558084797965409441990781017738470613352463850466801837219707543446128677396887239381749651975217379112711526875807926974509235143310396755755497676117991910209115540230654055375736198541759805035392022378083287305467914566273666706442023090660115312749437172896962027664390864582103692848859058320821691564417138278420201026435508528676704085135429976110838526636067788880360543017380726357615483170068192021678768328474843351738992358079831163476165093665026489706320792483161434052534532023962164504257657822615924085234227510787231909644032527107159873098865627320951349448799332955877089539590836393498946454388173368173411562461715757863875620539819573771585971169277318478809996400477020053625425186404555554511496483023989781654750668043038014819171100032312480872341175127422715254004550543606126109595024404805313041972272223147021423421052754770655876961687667716292831911196410575949565590334333464549609007419516176639886266934370381116663898329671680105751787777607459102365941754324663436795354486474514398302128860910700697722452578924815784038011970166217965275698463069690762574533160391531941319352787837221094386672254086228265168314507842134880561767628621770435960451245717801449664075837358724773965562074529973931071457068360039823574130685553794323855979376110882894887728131936027993930885224404009745054819955799045387379363887952554366023971692306216969514994777407550121132886003727637751718006621735970447345502917535415091983654232877597259986440173334303107149619492097647468647954115149150913697389838005538912544878405095855480849611507555648090478991923931400104291194834932432878342753732926852924622162272032466866626425923191522357601297533373500922362476134674120418956895861271579882623467766891189774676015026752808958923689499922665055913885200859058854409557751724450617309444779506876496378659590103215080701725830784173365836453787626941790483949315787288456655967767190784026458793028696657670912148376790322100919605144218332104299667957250143170899262254836513992898895135064012745170987323361880658193211267558748452098490169974080701338642888485090251466960539172769980420059301429066840522960308987065734865905778737787310860514768145571090760619824371712815635369792341686550230306623830511680861510336806970804294910697158563379574571578531959601075415067027975874974511106749332813038174396670040613948326575930055085228535410544937455447671361947535657872335780880967058705189169308243809378640324708317974559878639681916417788682491533955098330477408855832296853589461404627549434969364408250260852977979042638342650850376332877098549762182524446682029590861875292813032031160307373892336913250090569139636560100891224445832135822006207074135263133534869377898896102567942745410134263081319097118665053442191316027431658793584250169169964098399575689256989303176203128665304046122507897331594704262140521391360614728631686170975564984595261717668707848598967146519455107222489681451475902267333065372727931328299480567290965525939444629058466375233817154726137764318282451951978858574259056114400824985321486208821814510582162135934347850044368503906786212203804691596768958148501763086366706105810286528320925553889186431975258344864741675139214869244251658529795392764635492309137744219487665046484788851049888601497614080253772997993180615772655844432026998874853186638460756465077129748301384125421102176874522262079397788093499003828328526392310786789472012601603454520528365891953629504977998781048037855974082558023415506029657700965160152809373719187123258248169226285099737979575994306519141366700131403980921306513976301652535040962826619177213805695168019689017166772001313304331604873322147668735477651243698235238940756478172387352806841178959461220434287777483986360116039296853843951166131379185461924124622020012906337749575540919459846682917984034906628130532244407299437920644332773299491525320710333567683407893231436855147444817630084257422100632461285942590718675041354807139151978107105441076582208516090656058390992735683726287377334911267996288233491020248508348201446866671537357468938735321500621427947805243503533830193956699347844152008445790562214229666100568920543111471204375474004167984691322777674204702788248650854273564223418049875597633086636991953988967927662177647506162372202626003295567324175238074870609787132702084961427531058911298074384249448520723967010795515667072660225568598499833139377582325538821832039014978826019559387517915241710504970841586237881628374822282730797951728807775024708927843718908021399543549230922703957807666491048126343070398449736475692070832592830578478347286433209297652639048317830071372429546772349481748113384954044863640673483087780919064704916087618843223426314873337682003429870733163655979108574678822276820406571628441439225279464450074862794980218627841983346726262727714836046325470893406319600484130119722774708212001675962870667432697837355970690565917407252241423356766998275312562120464576716331554851995752666618891420995106221012831133345626633206293702699660447170995556151097295563233815839782074684399992475098214557275145995574471832762305237224431947357805717367751331519125427510083747775361702254999568732843128399855596022036651364846621901038743724313619984986125393456500162301474523104648943163253082799551336664117606432333933019646691598018918866563296284899768608907921976788531204629736109195569469926538381561124640124908480399198572945609855446325300828839965078630525829701350243755547535983354247718750262170736282412079037900185052834359419479391591293815054145851868661437793715116973930831860996554504330589152000523107982018867705430982992831698067082443880522175933496985218153590519541524779790817396092340551901593227825021420269457757803420158652978159991800328608688936121018889937481288387001972913385712059219238150798593362589698615845160233961367937851596402549827508792017064351274695349305929326699401555915042296186182404882629032469214772533067765290295927664285138357117504373666510306354769682776491516025677288348160762590139432096732464856831538083554661286394632156176614819185778268856896925518047354814282664628575373752477839110231423869100803744168968553228913757471731508741086359637968709558308071471246717477696388969020937406206043872322314941993935039703009465355661623394478842440864786100283152753481522969363331490765737292228939134728753883131049954037472555086555182296689110358082007888679592100669883645871035678288888923455316652622355518827283683614554058825012634922237370785882249697303366092375264556307699204967458615592492164770765791965836913999013738390681307037008579558566116662205373922031659057866059394446256035585687829969264315329997084902484361776837092215260774586498636461272036094250362018665401148161060676018942768893210198508634047787326112439312596321850903470656371174792253519779245458154455657556602920671817749304824247918211765770177209780888933059109404093270765810507976861269301155844472186025749192672771334098963701320349081516690953533726078233124827435228896863201436596369195228842397179993023974937494062397449688415466016086778662652018443432642087723596745732885691175985874972659222479514476557268674851808398647601292993847550114156461804013288773234637186643116592810014626525737851257343269909285581695065357109932896450768886262083150156898988708894421201375857397005424422186320656634826438460272706060504000534764708263151225088355087279988852254468324035125987956320965254562323363931226494951766887568819770607755620934395382341390660380461700330827597971664998074163853997398016271827988114239499819769805931304787999763096343487814039536397110955800624779390177927963260398757556718954104154656227925672189551621973130751764421024854461414868154273055244525437354751339824426607941896707098283332891040348040757490692734096006955469373765205824955030567731421824746503829574713632494021116000543525589164497940746460858852073510746855283867099022912838929363563539422650737173301778766145726693983083933204624591614929698276602627774613636820461747754227967936258194659089492206692390689418528501716855065553089790077772934550887554651385484071246216777266737635360297227200333832442197076907822385351784327492087880648962124830509127723626853974687438752399270783166262745870537919570228069609721374258100729498394972614310716724441856238791984927949729784231671224380622201042095292691251567249232352574091368349968841836933323727127741258555976864201658237986868482425399794728329821147552894692658953275077543472131606776204194709253831302493217502425984367275255129049734948419316532159988586676180730912559161069012209781152477152586966977862054284330723325484245310243107056290302602116883689362277024095831573943983339549477983189187522027529738116779451961635022452032043661255837371682989421822856896238073827738578402683516996057222427058715662688758267651495673036567143723195265858422240633978869651161380882849167828845609446472645824117536669055160337113940053101082079149205878961721073890529428390777104278406640972444301806456469722833607032369730487120319040392116147248695454522951594965418334424148753943858824805224360479637719497968244949242055524603125779989635316868012358230473895732000557306998124005468395468338791989762877413990677944365231558413297105178721383915177072488163191417960110188399118367829752866577808486741366406485164585457646895127257456120317388329225160998287819445147686502653065369104437604923021643008117295829899871528553803380230953506657213733012377219464510939116885418487940132505069387749598408469498634889218599959511455782056689448968011293457337451790844011535015666821331699379872959464940113755050074017951622671785408194176918094151941763141269483546950754568817143032059291523612350678504767419255075399421626843377138582176616371375446200734621257721035527054097510854854227516547290547609327194313280136440097139803783918250915259825146156472357754479836258477483918165347363110309236669755793357759827907450260239996023339685129859328257574588959822929881247998053454533400369063188529448452907975067845519507676963478764211325590136281143438027750832882046411484145396691573488585391894955242296617004874564637778207602908713018697382359872879491074146405385616411543310651122858514056246408935830585387754746433260968561588863082200144669424968653833445905242637047373866179360036560189810201610348252264698268824488475881772743534785358301874998897834386686603271207288676200698917272569989340521989472677055208736980635901567266652870835148352467994093957943532535883221995630327971599146798424109484960345440479433785382100962613759522486649440284891634825334117307931049959912278813950106379773936632916461992648871282091402160001845055591004515978648802896658832156026640835037740941686967049597236389620092150383250500242932518769981199078198543906205364184718779371566239952342503713878394210671849747437339370238875900302013028899778687332576140413150713646809968642405540095778091542164945232863569485471953126457505550333501094085830166362843472631633909709460206638262072788007958160741944140954882806757178199674097601496002993523286231360625682710447294833835460309892835582513177460749714576203139287795331373900061399657862469135649492695515139743404516976948994380955746477446021979435063071622222999451147487673768109490699364555513097017673099406661064367291496251849164459960816510978428447748455340486611897963478380032400429624010551034158870880312544217639330117040042536680988630993485262785608969472963971205187743890102376770396057620786654701900177618929367060469240046931968056015772164986461587681181655420109025299271509501244007029744348989260123267888976897726045928434326829471419923118720609631577486795916594966549221891591217427568662779433220055388696380110744362278697796139896978115068171832673952835317609886802618474657772848665039766175134771906042800190920058486272975313216634136457650638111736279996902855700982724807916203296153385740062427278394064708565094131518136229559014786010815035635214292908243067995372130332799495993233496171980390118463095386888950804502301859382687033623513774576498299700932444665565704621483973822803239613324178445344925755839820351553288053930290671717973934863695296340837641399453267160106764696141304928323739759051364387002497363032445636771799805278414250004440606271351934405614695036530554298129308983005157693835407078262301931787148446567296043618092044441448417318089031229097169392638656216227539029515567327936129814511627498528236214894778546414039301705340054859441297123759915890722429181761658847504920557486791045892068422009681232282278788982608537824531700869347008109468617711423126661360365508566894537900025379776273131546973946267865103001364132912699795429226851671056871550056496644855561405659176050279452888866036451635843075724433580618644465651491670468351173087973212646324583457135642215611765978284136987262681787463441092478158123282749760008638899871669040652343952175230972893479160912457529923294330325470822610471924613247120933614311145051033525454065025880679750328015520369560018341989022218887101636540557160147110507317686989261239862527917985251110889076959237600789961944074334360211857190793679166214704343846242759676372479777328109827595863733341809668178347061852852343908665711817733677745021158575731268287740739130172668599475307252870302517877268761070475302394882182897684192803783886559403190041369440879695059906595032132802339232024057041075002714978125440983969077313119050736798382782999388450913745593531888436206719779511117354801699991166698749252827380598699565666206673804784278341650936339225676348007289748270443364064249826170228972086712414683497875543425645392289833381912650494398107856325914790570832326559604274216690721249601377715223515107518532818657900959062877645714834710152526627913707312488024204257680636062367708400274155184392259562698049913855997446297025569054247085707075638062179158348279401212597757400791236463074875002936373234605045758104429573031401709073714821243593578269197450572667501660585067842755243002651785005324998371968572978124314105455713287560892445404005765544759511300858987595644049527784741272785506132946218583586547081575229379685048222325152398548427456962997840189753691811826885645697179424311703324537616367268043904606052428087315624785888422799612534101118460828984236194845264085811507368499205507135287430087575427071154383709157459312712598718892195363682696189537174396078814695846665959064868436975971801377864658493409701151754493258610701185545515986674538462803065074378698529148594477556578006014505840203387799186635900375043463932373937942613886860389684760454059729354570350919547987386173157077646797291704400774603801917497304524845540213429942139888976541606677659020973416964377446022976977022849327607761735573005424048689997626785617797633030048592079181216880995476974088722960445889130371510827163810563186607909578218445703718280277954410045418824169552898637177105842401538320560484595109736232735340052447146032847176890638227486508595455205106122665545677639934732821082559101800173724906330242602170953524080819188049291552878934805923419670473710086105937971365312856328347083181507937442211539054209512036193304775457791406546925005432263958624872470092551298590081887597087336232296563398756917568264290993139211221279125779841007249618732489597624834019385971804620084573949508429996691435817620060078625347109470833526236359000709973331502975061161184221290180374602738947935823130829883379419153444887400329114978982243934395456513229522206525212934890678973918697159405383710424074876807170287718691851738816800517484184986150081083039476763235845317566462591460690161715112308545254835879924083826478722628377401547420227085092672628373017328588608138386456748142967942749465687312823007928480297148677702884678350468300349161332155058872902155205643326482778668377476427156343360174110141088676084291947715786044716895133763555511874988877798558991886456031088431080288684627072121912573718003391236847873190844910381299171947333049933792386269199610023774592103387875901852389495062680875165746219155337911547063958200226051879032396296921721150160181134077518865062878921719329055964084136685644174475261433314293641600357057302614622317950551529613147938900899538567347805676324978707914321862942916004937756369385669612044425146313244980070928005625775199589099057524316671819627818889063521404854257331518878883395892714438196723604928358566965538857402242091755758538119029011759203932961437030321896013640920089358920221417108306783244575514558707356538099809530401983943395093022692380205795507993082803098521986709507851833140827879879391585348795205466585483136708082387984628169402300200352035037059515669230319315342191642886405863723867617082687564109668338417096221775416525763049013498529959530478787412031744655795963208741177059663625868784988384506134807481947368812274569627006701389993155508426620268013507118050954596042243119862688718457394148887163657143334191463657182929847190684836254157406156867138908231788628340528454666969568826661104325191563013133216054097507995632137634446369738664967230407742142755260074597092623727928445256318461718271891344946134845246556888670628958652447115839705069758110201719615505741461004171062153329414437284340944282585471621721432927001256603173297463813402869093245938413253631748291745603178561016750077687002925848460319884099696009974428901015868859303194215339997197881481595401765499309088995085807308553975267757832209390737014153178423546616800731415264108794449449288551736283794838740285130561335422691367930475938750971756063333071891994005482880857678052716995671825375778983047383463610479311909850385763988873555047458411514059572774027552022970299554923048472045165069666523264103498255284937716269950789203280265003412306891837853863006901312908410418993565372878326066895890892981349742418629392696204059074082879026495086358201319624869802642123692690062700217434529849009106150022415167284029978794740727937594590026469098981376196539573419040753052976294514726196459000100309239014645159315483253765874560317036489877127417169575751996335728742387838744640620047319308142381560828359816072611897497348335711716051994822149582867355895366931784818824762830463773744110196602125997844766785086069331910275920662915996514200857594682338193602097835871504338872249420266430710589936656879816698081684396615235422788704925839752044128097424318334035044618728418682926634186017249850904490288615027032661150378992103574809230344404531818983675854678005464599890526792197895391439565646332963381686008213026953989965739506488232200370239184743144924263967101397754959494709371818932904656835474894833973885117613819121537188164105531008249946374913396276100294609029067061617773205925798287523600378576425205551115101480263819283584049768356571798964794617167131833706985989992375895520590610119062109256236734836817073061008240121367912265632435360558275192209554275948934789764505256239565119540720705519221924646534098270069063001355326700066897919058697906210826034981514400532810541346864131603440554502221647948937672716987848089169256916534060065490710908614825919707787057474080207598303192122133781422553751531760429709532981666188046490047186635095860623305176570861755286156332852736274234495060391943394386543537726802341437660662065653737693299499085073250024563289044739457310252943261449018864663598546750934469573349301804924588886442852225843183740471050924024480680517502728354141729139709024800604314452010648870475339288834605461948379914304414826386360935377993533864218754238245142820724131941061760168445088918304685124956783960204061022938692364742484690157155829303191369215702155647891903471887724839123388611106659445938403434984093454842290618396429356204064028859679886009444893472506307815521646571195473237637223714926137877601327184502395492926592661747975158647440429437940590602057117279329251842143806791068467839372339794599316394129757092796967321195529008843815225504603629413918390667874642166143692704409641621507918800457910362082246902304515336324066540498776582150558086551518620093575236413449644344975436317460369488160186093127080980454787751521898670200344492490818104601180387935150481773382505646667948944317923479689855501413362035259686097608898495633463581201665601518069530423933808569846343806660777732687860450535139216657769869359815640475168637045003622694902931612966856283664383677241066536031242020234837684149967812746413723116859839453128740569817105211579204143640538213356425743316964102351407605480163054945293641067909954752812224901149535916536773751889119142680138078296217243900836337773605567981891499166344140231631357580277972165322629410158050627396228026182665532671760634095351818930681252216118527422466489914372563117933546619858625359929515862155463257171415938638766237835322682825740935139880842062870189423187167114756158081033650187035254115046959845279823333475039887712059608587637023194065976937946150458250469015784816384922163698790022706176848505665139172677856048862899519459114593454248116340051068458300370118471236650582527759203009978876416203600670086454812704204401734875864362845365192732126868493272190365052538034669487127280983546954255173798423174102202025502400974119575942554076419951081103539587504289207401124631495721047546255736585365241666651584169884519297505912827392490737933431345989859095692019407125606993176777515758065598875143617112177289939999493200283591332604561766029492681827898634587744387862526435907107952445179294618080670390926705924581927163496528546769073640450018897696716685221985783209311663119668891751900715805727019166648474225490401969837803788460446518054325446223520210971917318118798295620563620774905736734107269502453797489817614727034800757782712691886443829780063804496062998448556946386346449566259997271437266165023250924255917755169556546743847514235361988924524144587506292502053256645505289177011122079693901810470217252956210534716904898437151730252005738561339220655840902232794427976374619515243846371281614357473937018668929408159274286481572801803076037488307841738430153015684216501500679395584170039244347727516180740524866982428544675652023976694166674605721750952933277391290964756536774360994626072615462248485090090283817886043844228839235931065980850659782763201606423429630412259103696593610589566166958600704299165643670824792080215875556570471187988905235759778611520128959657655071456520207397038124944640556267187369021655093757597127738630078655021508192821353477872994961729429708697597370611090858716926753310358325608861466437792570007683612852253728716776144425930370181414959937825404622432462641953596558410107089996157371444718610124206111988650653379502641246663986285024705833074496134632026420828762499161510439196015783975572395552599442202189518732105613200138105136490285359449357070237281587903947509300474071906227154599613169494393748559429802476009713718755267375100026068520697692610654994461821084352764397799373016188448516158673361144235655466607535130250515966644477584143788904951625656700971324877648909024940880974229041204885747778229168597750295457004701166870895717699469520567525711324442332708879196143293856970744254475744401844104097380067778744805487369189969834993638158594865133814988626144269880124430711662428062443153395903863131698479472634852860857367110635126813328244466569974938127165130499725111550469008805627912690189677305712599030218405732563482093348818041522960867905850442650204149685157948886087402265452089133590518115431960074404960986838980319870082214599593656488612919593234730390419966328138614425004950492642179403824057141165697782440899448735100085934438285850116476854238160470251966740515233632618028721866824401545406662123980701445863852638959716277249051300600913157342706534104270583480603986451951701674753544204695337445795667489078662365232719301263049587883617081327238696915659357112354466533287613815267958708847649880895880505760355058117054137788792372238003740318497794343646329878727482994773701293514407083335919125517188311403333035610314170455552660697678922743781687408152034010931309434813656817600808253017485799293708660251137445700415117944174416638847466437057734328702377824028286217939445366983855790266705206544754046329778271289039318531337756166330153267783665756724518561250298306144245011488384311624577969065484262380167620685424295585366584851773169223297568674469170921606289937778760021218837310255318865025847776231455793642627327645062301716668348366150428766510520846677342715642994389185427762399950688533080182720004981410588102759499768274933804620952329638726566433612439241120236235486858067380250683582507247368522714980718073561318851275428570298507309242985230654813685715444068023467908732862103289232927451433473825923786037145163028357647528770545287392303386580969044914026692948586022902672881094495742262130572972300823156324872413629227031687984263416423597293463669007231510099205093710236689794111732120761190720017326348855849630915547527239878884912760653797546655552430661197035930345462688269564222314758096276623650211209013640293543013265622019415905124506101594594611273738698680255107144188417094576766366953469718087988444480298415765076139175451864218496016236647773877601191083529679858378350151700940294773589884640849348204976119323345679015160905109818425663374277549733330738606735051308122493415771913309425413868187383520885502657315805152443666144297413315578243987373144027660187594730316651716052189197491472965073044381407260547679676055226314934970059411609932093928449760532432875174925681136594607425049715618874028117322406407302288712736098653495935152096427912341589219741960160202799698386096875674205114346873674418000189499379746543662392259383350731847681668059577558030796064866112614969403017178666779967350159461574635349514666495609862982153382107951453225237048937516588773942673238592823533828903575135530642830336232435040447894240919184398941921599233051476428415701423720080714910210288783230870496653124169035109118940930409440913965042849663845102028252752280893845337933167297215605694085061773622249553522046321205338847117202876201589108515273412767444829719883925548286276692872700860080992847769397777656622665067911219023113867963085404244306324239555326141144587136943849073112820439291278144812514733161878101133944001136151841404951369672244320672967157915426999404146962331664334727623863036561156104128709402042907946434053795976643914143873377571347763521754200884396980603585369455010616130725292758195087334945015665937052360570223076191252788426363490575671808312489638624749946802012161784648200228765834588242063668537504902807555364623145228800507419028859074056435343102706889210669717172927246082673843898277583927778856064625136493342620952419001354174952635960810244572698016216442579363877891836726007032877800104442466892257325569423612270417515503437274138915295370096362842322087691462705444693773151987629954679318911780228819631903924624202759309811827245148860843781652839932109752107953651702748205544079494910532695265268133759266701514280655371960429310200351615080209584471269161938334610288893344336305539478649184644114886906166488855610201795825597003065947037515596939213265536450120334752895799307658284433634305888498493674803461222640199393552477108329130019079021247301185535207949337193435580706707741747416591614773048338162806099399187586225047959206808613801868807185910863205846117374864162299254020365002510844607804719299637629263495167071948126341142578148349622660662047416187995060913513299052083343407975617213231305858634145908587627470437103617553036855023590140438535597202504600955239759993799330390703979825064469294709108893923950804319657570571619702898686273868929620896260052350659694799863431632881575990245253207239969995976047351507606254018896231491835092965995574069930003254015022986747196353404986795907321248941624650841445560431299400320725835123961436701469959495782823240987894475706676765945880044569011172015541852667146649543523032093114620507505928820044864825643909652804629552556462175450992337444460449001415673089934393076872066262410055215780632739578823085479833108803979700179245080771366739996991480103831876574812644086134059843363920542949994886537664912414903976780989152082068802546389545078124342371169860835423041385897253397186310348942543319663672661414307693706152990988091222837296017570598900551283252230373626553205363272497327716673854867293497076747700814392428043529026591489262958800939941386452628325242318286670319767480605231372497749947768828385968013849716367983240693062305268096298370574813538722338861061072689055087190469218731700163368465187901006737229160804384814277346745998176704438601002845782309611427775199126578229279542256462602596430002764607351715193781966774095454404665559497454081491093551904634041908130197165806638068545660266699017475249778672221213386188677563210667971392430331976007839604258925697038433962464561526790009649597176677659497966326549463750024783720739239805879856454883606132076681318534420130261813325807609114749180545589035552913071836603326322330717396192598722651207327828430058037924352372853072363811804197770033727453842726403867563441076147088275605141530785299029877007794547028985163561174993991563791298967878818853382555313043171347408302008338956894207348288772876905398180850120584670155918427715551600437343791965786062647085859517320005535279706707052751759493462121435907966953954179294423752962298599341476035857040247947483584047147742491166764234266887550858744534796826205578108654439577061978311003809133897358536702941218237501872150245328208011051558842723576568289177364739997287092073808027122628170644997018796799566928495112427729635052189942077846693388370335295194703572399081412815090571407486997824331206452171353320068907498715502536584329551265145268425203682090717509699655486221845177800583579040759623455650613356259422802821040109400907732458319769892619723099619167991580736200868467865064714951130537730822935890824722211520310035631828279331245861579824398910114346044528669546806373609628494785801889164916873530591391528851885099871084693718256800779659259508407237523791669813315180792065104620342330107477913645875341544118572173808687558418932646801910259068726400154068373940894797633990065537439695012155332328909069962098403250122235563654201824035245702836423570334773398040911820184110151613411491932630584638946283287591222605936438157228253839705533323758989438182129550048724577874045607044328414015882812781197542224493606529082711392251695745920639830590117260880169610459016763261886005702927608190398927579032865262469533300520135412110615682203784941395085873145404693287761320076836674328268656564560455176006717027852623370918531439810292770153970746133309614167202008395986808523344916225215905533494956200687812330476871666703353117146408464077440847156946137283407963910099834228489410017054086766041484075902666474429736477235111169932969259128980648379760025227244427681466331397268768606485872058259159632184558955010740063074590649155085957680866627810871650505556417492790770774516033998816389790794506749090371590037873482110017274639060048644696280896871726552860753705291368076590257984003658659882720535167844584986852320576335420847055445976606395931610588303960725404500151354174435892174772785409790966147858212862267757037677686520459617386862350041667074238441126915254122983021705721256676891668672882755952042737055890390768709993683942596118771736143865302250697431791271126272928488402383727347857770247101786951835887901902770284044391212270245306197385753888919891022120774153705510463254601996344707242335235040297325579410441920445283908651170376045027871063867744030697258117231623871972079552599164507850230780093192857864237954667123410846365085206002952164689913665594024932700622053142133368304930962882104312946887795888558955626483876455187377313801375880112463171564464188500126261748925005912443063648650454072962760655742898484545398204142765599474262843368709903668072386604321623466408989409259666931998289715906131742757725517443763156409353369730943804705558172613332617889967649339323135532315713070256726839256835374540111695687371878968183961267316333672951121447759569553652010231995081857545729989146801667174811581784859762678113076465643701573596776382998247330951470514866102347363577453175060571438273059449183880280667016204804470626567850589272261325892435287863077987220182312167781892266389794083718333846461043363159992278972239821358623581705122234909356202123312803409840312137316573815093873381166356153279280945762842652481191833374226393999704155829806956571474988428853960946436299765489789242589396300369667698156571998669849871249178280815742592817477635304415927154193588882170372889034609702169004634206975217600752314458178611186790858783367363586372730748460690393650249157466360824475057512109287945348000890469674476111095554299040184054960976207721747467091073369396223298680685346625682307646368290172376242766106567040955502849601308962719310555264157915481219745136993839431316467612469583398067805013693494100091021261996810058892970693241113394179545708665155355135765977156987888988195206773765649416756737131651559781519790815836826389902232761159263203537054698538211789043298495956850236488379242942885931193000268464172753706847809297872628379389830245228440291974815423522527269864511986368256529808003955752834046113537663532755968192353805711755155129234877697857800067546357786691246058606223894122687669397299429486217789526397048034954825627964812042333425532132351478484476201390294795820666701391178736604211714383455883331695388404180330980686922713881824426681880713297994276756690784486417690666898869825828175097946236910162758217364015881591143832775714713497084523066257664694891469434801229049419048859329280102018143086372467520414955823690808335488364659131435890065240611777436137771261499783673407122355321946021333989339692407076922574266391319974022098381438950432664459797255652648931644798854379908549343586492588819283951567779786294383278710051239709609419407392215740977458940709569743677706568400182653754079302221751205252433719186416469030587963216010542506161299321085890019323809210578704886809887058229577752073939192863111262627825726693734107390942077508304999823843582428149746301691947281402761698562338738849522936661528623630735276294104309788626639301294330840691127581156091793449278835526945966063466175578635982882395781802708724128380360660950111073950589743181388372034633749367919898627885446309123222442598902993229197912791750912981535290401885935038877814428868550204961405713372762013424459656679917324287325218889102756757938750086598902671089473547423175475673960000981407788090090463739284447397271932766614181448311648322230205142756626146443914738043829153836545816442870345536029128088060879638712365455982867445584083076173574218975512129374222405114690026543139824369041738865907832352732404695775165025612619741648586180024613363364246711212406745232721135911864639323677386943175869690781959322879326084165986509719163109541970445902156827168577058239347161532061727639879972662573060847978929784059447896962646925120789651390302105979533002290125600235111828948042342798594544603878843205230206162322454164995537501973780104157143471670880530598699958234913240201275894195150744189254349255614403206792086603576711245441435405086344974447026924345105580867034634845313268300020876542720878714242092773280308163913663749117244833577944722393616520590260192388569285933408071640124891528059327820215577497442887764730410980394878456041215459524766942993413719479992033893905714423366424701601546946756195970759021889395528198288405913990745503769758266310411698035063023245754203680515901863495639840053214644532725933605936253257584550442124703461858577671381434231786246489851183292356404543766139493824307235193456773531443310116005372408813982979205290626531366964379912555162814454071110941608754595485351040686281197564534976346022584481650608758522162659881602454481105668001720671957671226825724320443959015367365251306442820788535447939830392938828124741765652620571770016322878363322292555198331115565915299540727615394419369743084300758135566584634218756829955368046759680273399598109341587664270986213045477763706224110852418246904244659279703985127586146701590173492719701940329819639130923647722038293133047842979313371732040839569331336578637238701329090295441677027810949943774311978165684037492429341246772008761413134463406950865346784857916239595218186729226761042515904545091661141389769428102534957677765488999440407169882837118366972501510071325548363366964765668809595725266005430668384091626159473125288040984699835239956597468643961298393042823281715023265984988434573493845342538707118074956007899876483644563301726096571567420713278362053608769529655139274615702715562728191832268287617512044271162276599359077145915835416086180517025216019397474549892581962709597524063232545584870700682460864739109794146447227078659103889856584114141346477007482764565928959665906453359128512409547134769261134106600186160136026299886257284446351859118549875550324642417254474812518411838854862415035628377268305513109671140920940896908995229098269716714760141996613317296613319066022209024508001375804879383999015992441042923473134336191883903086919875195634797102807460512350330398578387051379790302497959819454139172797332671994129696838511974820890006690034640081639790175156473506997940878430596277949711120568332656881278653869724962933637430006405150802289931796249676663979603735025253111664068919318786769120534834991834474044398676767651008888133334582625881756929489988057801087958082477443449351110190410169317411782195342585411636447241458900867346705182778555888344188010125160985725233101070867492414407376825207405303955826455487571836004371567037911553983908845440407140717604763690632605844842914387740829708118572645455852642761064487145607534374558041545270430297360392039982592041986212234262371188534640768854300301415562902586032978718350133376080483019766931734854219015275792285956810523445339459278781341631395800638958019786570621992841259251462846486984220289726970946026747619787263255363572401814989392736290065552919248265397730467289255696391599838621930777253429520157004566853878021367766549373215642757140602454002341422976581332029746495748515257526281160486875275662434930985908847981194764157821866180465292925340295674494384168041652259938813217595100361486417029718045539313631796364172665099327138734718061685591897799040169701343147775136055836139497432393663262579988871336633835194737239825269261078870235189151536311964249645677546745817805638416470149555350044313124768372977015363939123565074546494363089007182553563901280236702851778950173224680798533122278096508221882444123740095655886526613108467734072278197200720396478904841075772926465777169243110698679097351916249917454919660953287453988416766920778064200745767459836603183135109823428694987310011470318820551479833738222066090774285422900379779048232586241933254344170866546332381270415199874285348077068379892317547195577554138619720658609672951238339292700731538345784718758275699786622981940283538984284962824631478912105818815004330723802215945095932665996541115461807523616835626407510690758156941341132336056672941053414858458895033389049641566336138069062688414451480152371310930863894576813223098189220232462880078258530436668292301190256279516740035033549778388687117904500139328345888627371870143568042041874737065847691808460446491766675695318228120124090891249069016279820038234265378783009073328346011917560175054106420057632342934331500600608343604081990652562694624221418812913916875801245888050435961555887526169830731084499974356480026575651107773302630273557575798385495436118802994011282435070423980904948780887976027106009530498463571778711598366435933504141618388005304715596834430207413577818470135415227608913329567212594186524669818362538372826724071864272199992499173028847596714976790836111854685984741594882476726357984385527561993600345585940455851511204181402214379340420979539322004598387362295945654737443942906169432216947587501982691288557741267933165793882332816753574241110774913521684998847087848544522633241864131326929430893030465987211519313343865471145977911954895184720747096446013039610978821991102573926675750113397270559722553684733686383860786263874894893168173165816619279552823057384877640315226364996793321882246835988403070688120369617770598475500229966091529111378664247160244832046682929346694772579665557078427262890681493964861666512386937562306654518766761449653137113565404273169238017146505237087316079489216551838245477335674178015930803560731160435104414554781539859628291796711183936423023707029068674108000623834082579672045774721639653520656984833994978061496208112426033705745515742748494743849316491035847002287609072146565746091225335871933530649024207371160813514751549848194062113781463227734541591570260798411744278445970351195788143451197340935695025578584937942637740609464889668453958175370459934896943896097948116591270991487601346532922398531620849486760990951287976082004037098590601544629143180743394873323286951676441413874763896754120813363418896460427680318265870190652378678507723521367026919802105863239826076792750021333472436194085792129782312437518720459326816077411543029505756792756638225806367464915402080351208976368728665382090965847258413938795818154382830771769092867290795484702140075633238337678369919245445777717005926281049101943027395233129028918539517943811385965758738742354796998392876100732923982042798219232248082074185278900829395308663655047481329782734409390995039286825843951344734359222053828788423349631798495413995601075786352598357567775825576687386018873891975262465633698645508595696111718007663635535218952986398404504922077212571911706883049806434288895969583667060870062092268200330878363427071822438621435950054924493465932004457605824403179706862910016319894162109744781301526932171241459583397148804436000563690946977282489355128288622839887272381468917209557333087227719418611672864738018449042414174653531159582936677158307184821116342809598883072933903835184426708478320873642997619669778179208634747814402267065802431318494098988099985379007253230971081029152180918486190730925723442749841787332342845945381055530094936302937837230353491602859992125919136761646493119088972195232549204547650434249491926274198983067395043997367961448879726405112000652089420736360302093198365022000028891871141967728789344756160932921326192503303562521485723523458396136934913009349915706832158811332755386592362327123862182601736052093068845295294519687871651119269736922983475755671802141482426767205814893396276733539976452942018873700596647864504196130370609641829740914335899270155299246459516785849900042720682638794500383197498577144809934715076272813601498799185491123945816649730651784961432417132664215132017919311321586008693168612270479811019522350728949524214213335599202558335084420546637285344039093017402736187177929370746195656456612946952260540006920077439511192965200538997088175181002422361124914260697606780255695826672599589752877369364796207176519808642023504365878572077266926052446509304010618106790748054076572971442481369651422601447943248173124253770355419247537081826214601401106186877220129366216099058722319065602583615338284089088432503412077231572528972195086465393205707098614857010788261570727254760501947594388499479825012522230847144439383270558570076221200252955910398838108130345273559634964376919823722663689206841554664892686248382591308710354631942821430361745145316867715850252200049374861618318876682659374964606368169113665693690516718593155258564710059932782137634898073899864496635149270900470743671217930358697001014685950426565619747739738128800594230037562867188359742655894154497724879934530518024589806005750049877230448298454415874482265325785309230695191072185517970400257865394497185265734084517738114908255799971769357524160081078368833825568515640687649805670446480591506689153418482810281725679975333726621280427148836807266467619958636748541404773460075307923330906437451892877651476871849111615102336582344253530036658559563482752659269284267795463049926925141540980066758684735773027446478212608951521126210100249507753875073275132573776935512142800229546555107751284343736953166470854525692397383188517965321463984598177668245522213358631298781635288565512525686730908095390913407573379990712261062797807131350367021724728363223230283019890075755553031527842553724014966102520045905033863475534897450754777398222483828872835574311702248984704259721550160716718923758537024641180934592316195534762537302533558937256251666269978949330020224893754608389119592342908294094387809874222226290154442128460019190961758687309280603567300959026878780754009323389723750378737816303765854878839566046612249942590890027873913110940758247450882893869276086708791211733146001119153094206906354893673565892410386928903453525745182940970063032337666259891877169841209889513003544933365138948888089442621793039174747035393314778082964026370501022159336111890134619837127845890104857034641000583227579799257357550918109455427419046119331481552015385196737441236322585933681097795875795942327415330602342135071430917930642810785386286138286211172051808251061853231964667045263700672104497374982748333444524117203472876789856480883546954396912970338041149381038278178508513203041895754846378914237853847348096301676125723221034472377456489036264545278567848338209353990078279716963065445859413123880470906234939426197932041701220149851693736038261738772517536057444648799681739868546721666054574638017863805590508644791303341837898585830276302726327483903279458323278502213652596716478843935505943423943579603725422051621528085642104401305234160691360143438740298742146195270413513034525526787020965518625399187771057144276700278913786787047549331380686223925500128673333657085858018265492584119568782634066252397972140196197939415977860915522052887596459867615636843923403799974340376186472953754209989245537435260671171442619534888554510396512911985252190829907369790081862194449156598399009750265334401962766727648011103203003757896638634909458366838449989233261766468130891229721321073205772698401745924068680338961088519894804072172279491525646390841276496720437616334301434463486943262713801505835862444840281688716821115382971395517770452216007677154190033758150960075490162231414603393794138085226818794437177452942973311270565262766744270644759150333783019798428201164667495028125734357819970341127053280207828959268022365605300001052226093723536551040693478170074046165593059453534328260879484070917091077864146088127200344826830269998726867509599357266329477080654450583893892872523289605731225800050047110962591144139601833713914765327365708052906364505283344401451756855421473249967512229287783446094173251395844257481395299198641354588952958097675145717921361565930810712016499558315617758932904994840613205925764824516618935509613076578621746925516958772786817798929852218606241557739345965328603960614490653918140301325598299188549031597248291637798871414349588571821337026287625538885980131170314194780217600587737393218546603525843335744941579923325962609676030576964460728580330289740428988905280661996975565371066216486272830131436841162716525833155890598560203375755033496398203806706638372616807091644603972409912954174194593793436110540200607263067204753127190534991689221199687147798619779156036204179374356395465209576175772655236165229136738485560441141512636828349245512888960181794140856321857808780421520474065256913013807392370470792380564654420901977884544649266408413349745936346993983389105337980416564323229447856063708523234581283709370337901418749936552875685072661108681235807749937169006827248311067421871791466649298172174759714398125564489420675118242143920026610621842902936258550123732202666442119339393927428894129653183127000275991309787919549633885916092122132717083601573963138701754246225215370782374231520965445442492232150585478480355284599063954143108793905886095082961482115172764784196636728981014808492197212791905177395852912696279031287754926224250075966408969067796878591370165959838272019070562851471372688066791184211555906492767168471190465502114068550427225129813848606903046366571262932800596494754311321548380116971971677238011577136672601832299199753214865751758441166885736777612115060361527352477976256034447922579521939614951627611774903672155053526922453919182178312937912068055744901433113508220971517459928556687796855188505027007495809989058333009442521805996161285669441462067654178961691197458339310806899134565180636818719134735744146405510326239256125274388836694360816996978138058893375841564399719586172810639370619724340829103902605697280001212785174926624965102711479752256629016789441449204244875354370086417305435318403309459052979478261690089309668635749314807316510347328726587502490911779629613298204761298806479689182717454686318990233757568830289646220535690349818167211799056148688252474185515656581985480291078627128302446213147914871613640056091720984132517061538883691544524789594035262074426278047694698492821231836279094417599060804795545335916067437387983198405859786404852475385222352200020578767055597747669046389673469875781265434782765497032819703148094278956297181447205846138701498518773601392404126073030287684389134947619107878277086490212548836071106151811595575533416089991182462343878442341043031941825305760778930827062526588800038072161489578258379026843241152893059404895843515510945384311297931187023241410107723126153954414930856769127189734901718696003904571056303318447247475376120537868182717273164885296316713637651955513673466592213926527717129232120084955243864031038207119558090179479227413768891191316350998835578440616866205186383088395641948052043614682986565035295653964275110719295317108673538576786192738720889288488330932129484235610119446608604616498147109661726086850854468408494892299205227462453562928871219760816072282519604291074668094560951185921815933141794065488101159746328419732316499890080010002182016893972827705687801249871972317082028364596943268915819769701411641019596562338907502185523322793098369733400806327537053596777571469220456635521016017918601610551540164349512044238177454781919355882111019870948427274858857547356499334129790940656079248890657567833146356620368104198448550451451037729655328514315804367251207238119151763926491051095531533355106984016427399725876171633887652171755341124268465003841437102086645302172625485467547378342317390615194490271589291346736848156505141730310188440997004354439967299204748726990225857356361547316884138567612781230083393713890871876738324958925311155811614804093911078520950289381743988296051785324758949709928632227721587640417273730367081666016538966157081008797770865986393421830830469608130434528675418951841206718721239795438978306347443031081191266063541102160246294159685348399272245168716033943594062416746919737064348143514678060565926635053537887524063709459788588185583167101923775398681317255422247996992889326490747696427540592642616066781581023753140878362148663832400954568235822846394913199948849022997451485965176820945658586363207301794267807101180485599605365625452473779531189537552519732048062034987967218542391209582063057714099185458764631194256661632893654644181804189731513292358504023923666799443035447811553020822116542098385651757207090324290994755940011545969094411427833461733763249288368007303161093314355789762410471008824260075487191158368370147450913061157496778559587052240487162853995652214025997396258009001181062371722075776097383501342698703093330039580926019510345170512218060972693125041815682856521891578707592071421432007675161869270142508067126042365702877412885308353866367307908277212801515862327777081987967438596268799074342931560050361694196637367777158577577058415168396914579457958049248281395545267057101463519118656460106421968532400123050555211592270908997398977814929784828854257734754059471643000696168451737902981986595586314167666349120539715721262253796871398893212236694591459969222238021602223887894864876974609730825223986525093363844617526234465437583616217717977725420762476575951784398136284686957864533039702422227284890260995803546989072449112421946945449617519156660146065062234180213677371148433191695686281960041005497927085960356916454058475506824696938048131721807225647138677068552400074117349731421251842757195155430056086900349491677739873170112866128908778334901483620548633788063744017995873984224340425980480507897036866498597596159046890873998641884229366203134300199513393894325489271884233099869359857007494551397464064425149946830400981310841610988086015390101291383258328508713446823571846231402219629058512254333737055198636199151994869897521495383882268700164194689047882698298845195441116389286428609360242622938058916526333244844738214082257467099822782727612055758145629398091138718340739031398456976512925071651376445292490773612429427417035819668445578034639555991077669520840691672198326190282849057904179282471350826425060253535687861081389181855164377983166815692743614055827666988658995893589299236815127443091543509128077797923541093704043543173015234966591620077639550585772300918558014098604719145357308296709374889065600312244835281063561599526810989219424005295561833566347840617512600434840378477429668797107303476609057987962352400614522229527055932480084443474620863941614752684396655249117347570665010951476302305268206926690408499728459600013344300408072288622173859188134563447928809338721653510155427526122305370796696834451689106763406796090947588214149641069481674248171525571236753518056023047990334217796765100412429775537179222011980644842047742507195413674426393170497542183908367569311942482194167361915744076101685318825745487037916961985338438299277774071305911046142700054381246161276558292410951308994514503287745363876859720692607206980234061009672577427727048839563695037654611651053098041228288801869417822129055278881901406049681093934155161047795106714944356303930903226092512024550933980911176529325687499282729178889837333386039220025072401369710980540139668792120634016657220438111252465318795717383138001626133970128644902995104053532932231501854050493858140038208880348153388927832066921606132402226311428243406898857738483527474268441609458310215634433134891064251773604376305293309669957407037635787332451409171133000351429186722916265537973591641116790349996141931762885375025088231287692984181644134968474708548523281976405877303941693891627983461546154420078092830424088473187144625654751551482695523728184925242154762223294393731593298875964628044756338021573964057444025632231749571303145038462402424261472663738973718799679773403472064221460908830249975578084845613139676379222864238388372161118390731952476011469452960389490502985601627635620927721222988472151414914592219086450685168338261231325008392053284693788088524405864651700251122526350822710771991351290206966514797031278284739947401204108510456223731742304158444618599885606395315779575734356893950881303917262962459980460762585231522833588128608967623475818346365095490311047077081968005332200967257922577903280014424921193706785513945833507313162612987086317012599026534034626201733377514128871567495385570523844006783267605732930882436733360612546641667389668563798352447780639921677633848924661476326201503151270471039526948163975403247769640142891140481896578420816463404869033385292081061672380195182156794389747652290134856893480453585961260883678840005403491545715511602430389768777715389272303945292243584255817648695955424916549948837519019634060888588254632381977377953718273955701761492449222909684936471242175051147311380097360787483581976670869718664542885551404426038053495201596649564591077653953214637739027660214827831808821609639077153412601736153288743966244163510268890052445656040401727380607384738197516169520299018803595363381023441835208708712587900553000689283508561505588385662221550370984824190184870401536933524788077376949745511107617471192302824275165602749245714446603845132661857882825468260347790754762111104540430046463816782480628247194673318246071072162601950540449619534605000678128259648089515040018188714631956170742570950664841479270221582770705741021462611165536610282070309574960000600355344156583894667324384248546460722215366844681724771574374850215540296770591849693172938861328052253022736012998163192428134968704207134991151392506171118983828450728413883222398992121770020330170166101655789880774725794035031807895694640855388676018524366547736039622615786906597432111022673628893729270082101416877865858202128149788304208481237875070104015058957628441023011571108446600566025035014361007514540639659438275027093665740348363943914882893182243229395588593697753485089983430498719438619071627964629140472383502877114038307277102899045093290801215251268204238909953077127378218270205035784222297157330877339594895436549719595155601356584847740109009607822821269765583640888998979138694927945966842191042169897824652872957941250028252767552323748086452421922452494558002546138206337301105996113181637525132154134364381724305952782287329051528416031609592220138110983505669478640524245347667330995346643042252360705829981810302162315902403834894412834877120866568928248396748074740220016553335377693203407160722981459592575257700805098788278381539427102794559044473699749604694776544995154448140034630057074400217449935378279796115464657265008796426212181705813883770261537173877899736574170575643786233842126952363592779254190688489586548320375783735845991504789740497905932411061155797542430392541108589051272283540659133190476821544600646411515320839462091614003555364615139043829428206053163795276432542956361216744746107429608961005059166052078929132941718226031319479502848398314939203546760774007592136681983819560521381110253356768431339954130483683184666600799630559872251858321191016490875754783375475611379639466460887439237448635128881677624333154134504695955541969321306819821674831666683570281724738697996656823335115093455482600125228684297990499170975661856019912423865990258243311897446876195849722032198735865194215025330320760581148520261550082553025621738316420679955312387184406834719885033099863858261014253343840365001064227260105028609977992457759463016215647665800836850141436107852168390922223355737272190883312693818541267090899098152887703947399292390426005028688041738486012632092502599784242519107462325140819988990280819638803756622506208754035267652512773262047127391340016898712983373367908314515386995412204006806705226518726171772905792699928538592364233584678460967935886767021355126911060711137470705617663128104354897691649026862502307723642770213109475994011102912223116998968781544460030218498898036699246885890590464584453942913133027231252063626070858562119542094016301885343663231470585631582637881261128788771451744912113177954209432711854565435005673780486272307384703335996101444899813851438356486897360128049274474136642357617710546444713681357675326330484356167569271658811740952597541776948612736214084177043584034070883254286125926608893468172024355906152877508722412254269719292087083090503934167104516729525271381345969180354994414820431735939106181833042526276045420027789847085304622199801050397841661357217208399449051484876629951163788134352036388441538780678716914167827326501490648197106661330143025421212039624959691334093599370127475312143473306899932293290233397161458781160797203830642079336959583471354776663949330738122165175916467312586900362933327126125581371525148137610596542746380969136050646406251548512176390045039480616438546035629526134095186597124600005441198663681765049545495342011539659266848572180220950286890283028771047660865956799551519476305806108014053879559722395897356056018991946567069178784052800949676859715996162664089132453149339627093975712554116230420344704044428531811477910606186147875546230013190434198395699288368661469253210225548611094238497866802640621960457504359744711883084642917386848688793107125023572521407362285783606614562011938824422352311041717921991002752757153608114166779404760567299273709091246084039616044017708679443630338544373714759105495343232640338109550546486898288662611677502446820160417401713087805207006377593876161991813710263689558752504682826130194629618949096579790664026262500770893217172144860000469615554499850448578139344229384580505448540354451982894193142533305676417825577274770911497880350887499001697006468528071188515540103644128419853284102266755558030730968083285329468541934601499420482018176723852362628334573452016078661439379856560480010561846369823739926676232032546040645592710500184200206583143395233101731728521742493653202010430054555926514598019847894750279832153169390186333007396059144732455181524943326055738793570837425800043320071796130499276305206750074864680983615375251563042587698387232292523467682186682603466637262465927605399916403348836740508414165450684674065468437833980860159916558335295265358039980564650807862861459660117251804425267633793218287273628373952582812594803329450032871243548611858340400808330299298165355295670073702076825034039462301245911864622777453927925962963561550156281109754619656901696604422954517322464944217715792280109226612955402870011668026056971950851215653225370970820870774596375478297062267799003835129278072399020246809038661501177803816533445266616672208262262323520604203261853203630041781940532091371959853140844443433021685226203012780718519942031727464174991965744822813917554916886492186536467881419526644800538455826352181303469926077055378054098533497485947711752715173117557110313068486410920606332507269894240583858625992781260596874154540969712315375921414146273180116101706870366207398956217608110449169997468222721435867343677355456620245784908666628426450619803663633094708138982001030552252786378380289688386467080840724938501775128932845720512990985920712236711820846217913166016397131837166088196677804623631571175465805832261866201062438196470497761698764233852673113732752317462894493890821534012810549818195962352900372189887867586637695843150989628913209291075758001583526690629271388701357009455257477578102436607057004054138564237682410607483580266771653292115910065226963968034530736044913650164439310926245646534382993310610768720927657472766432397470815398965960009205371374290007090815191914518628068555914709250887442019186174348968980374333170059425622486130328230330478843024579176071045861657599621400043612121483357050900415544853820146670993748594510943716050594112765042069317846708226499187520876283976192583684213505925266916378162034214492184351934159205122052796603688984346881617352616446197793341209106889000777743125948969963450661130175728254425124329133718938925339488900996230284912872004494782800265954244378462873171297144484696791129921494859000172678326370769693086705355840127807679122553028270923359130820083544426799753051255291095302689064358508385009803771486166355857524502823142330111027083068405296930434096887190092513480805295573706005593381567219630760192083583234860055022263383884882790258400716221854610275481173543511487441424774872615538393909035434003148407600992343657441228407650740092907632478458420777777731225832587631256509751672396616210890275787225678638317687435541120861557287570331904787900006777297011224827999702606347152544501382880453094934413242148995781441757132599034241516698818825123536409507838820877333214686978324979850022942832008184054955712952783625756680540679185455708307693422128669438127841546835931699471769253579389519414335310369792839616172478367379871773226076614062917366560708764839827108632622734880457370626206576577229031452114987264665121355581176461630606719643625059444318289024876268930091863583133009172127350554477319129650593855217288472531978826545224246802131502931407255707872134251188091419829090236585030112449875316915816253836963920046984343349375814441600914524454660719315427617814340581759710486059316091176594805150361751124605479391869051406110075764603877789107063275132177351363005877758067192487978285058661078877677564029840063499015401543641583397017512783402335983144701557111400476930220214809823801952637992796776190103402920064486471573238534325777208784827381806795892460683272107697997613062073682681790195765934936346236987450541608289053288511593456447878942669183684167366207101248235790587774376206352839725696723121680463575928336218335325396053338629384495847588133582668720970508023172807489647993522619779184338703235254770302363907651644020515712187567406480011688525977750797496274311354454901099094448902070601094216198237015174454260228655246554397602582495574423015589365211582304982652429043812596740838271033761450689837387671161231086855867531459664694285798637195240478553412919703053986069498794463402978848087300667470133935246965549383082495460580661856112874514967255287399368538960078481570047105799617790094482890601626688266872488469255910045545498489793854268194822656208884914394367850461310333463284568673399850692476733014629075065574145334521828847895800364701196863161659301177836775456922770384498983953447691269243877661118535788170616868102626249800183657249322563713120929862413004545447784556137495607697145131745074993787557710577365379748994384327802606607294644711001712947874906345755968641398530244152368800881937622578091086636606813991222239803787044845059350363628660960730126764430663979778318760032199875807478251220832654477949497620908680395544243061697799521851932659364368401848457312434907343677837370786098996120619072718526122469472730216179725610934850827598185088906356221688382895042873298948273339470189555366437474005914185541295405841218580518095332743453408915637889878310757465378709738561335715812698864194944097418382582466790185297934538601698908603036543234368395879983336546333681329300097617422452610308176578854510269970080447010911375991552439113090533896327949809099843997768990586396960853154241591226665980083282042493837148592751443296935697150072088541514101920076884351967466412146128333726799768172822124511535028966479425950668813692505864528681318051268030135221263727451690140984852001009451588761852322445700108230196753719160034326296977984598249562410516334357229452812799862552001746165534217738505983903392299797007883011220242663867901214385303130437536660456167328611219785447533972382134420499681205731528787576968023376810934521070061187152519605393373128760116905348513190975283748602933946060229927909924473677782357525852529345622430640927700224675421227878414132465081329740123111879039221943085077053196742167286967596380830812314841134487601573806528174330281232458533119170886059676756995874769685335433950850738329969495928102586012540305057190381097068398514121459640959797221827203452910572196243167480564311215661936686853705626020992405224614785791666222194556933764110801717540288283694280829917023734287037156153961515099363048818289875788202080044406369322513286837918236212546312039408849398827458105285457886975280905698989704150186415545444206172484940938219783791837756470512983540325787646426242639425623930754187400184624765196749060043659366608631195261081328633003029857132133086630945091929509562851621108051731418299574252347903015742672346368824233871984437226086885246619072428978180001156129813809889614649401629890532995957884206260297002630835591840622050877720701848421286473018002910780821775591952629068033174997804868962736753817860824414971176600732842196971738809254520954971801099807016229066002906351541862471554818341387315516725779517324177259393285584782634607252712735248652971611123247048877477372455999305083051830463301874127005251833771176271786778175551941916453595633730769424317801409454004571331261923997743477819442779260914451815692273890949521986342389108406714214660899950292196138287529454954973572415203389154164443973251453207481174706159294216483519274660320665768879268010041146752161816828499608392157423128755927027845753344980177816802632866883503312088367026265707948291901091731148266786349878619480430234329799916062437657752134541983975483080905322945421198338758332558432305097202920680733189378217226774576723904571799059852775960404384881192462053326526395593623884881048176997223072088222246811620328474568150580963022301026863982694167494881660500784315389015464265676300658911076553869880239519681825126156991623025563655497435095762409024381182227189190341904464538495174740720979538013497729367774862489241262927607354930842472085351968707496345926573794421120899944904096423276293460666563785912316868152123989201955650114245472913485269868131744778383056691342526949858551958496644126685618243850420942337593821799533477703470520030896532243427664843044585278621800517195587474598032291356409580700151434645669419667457293634767517843532634511866446240843885279523832144895680284939900501140404609596662743505291706176765750104517790876575482959068358368829399734031773718861414913146729928526166758484285431604028891765594020501985325687775236018060901225145003352057571951904313215623335959092774439081331276158294664351892915930650640805426687354151372496273140428263404969306831709427593489253494781197892626632991438503521740880937468462522826045630881080038277516271507229226871825770628092436132954427530263134314702582301233591512954582944825095144965739874999508980231151653832831445879545333184797685867860197631021587441065428864075463485615907982912813360155314172386945580547122025812566152638383729479875914192022150747461345557174544553063752142625183212520041170411975781618289314348981827305000639327675424964906850501387991374795197459244011335337465911188032691776005112736724882632655174753019191133877652700372712909524987741154060628977207425277044824050682765306681969015052912918360291399041283536681969789909907749083006365825661449023091266198357344466933513504834270842647126423647358228202867233805889239479902882796036445947654989554516453163791055543452999506284520370513087976490405029173155387020573501117206950337353129376035876725391981583752500839459995165907142677587087107043311597624657636875355032443972445579403474104201812991034995233736474353142866003876987451583488370902930557519460289868827528730939424204149169084205227279690728427084643212385986739294114267843993895295918896381174532160613256198653027176808114922613658024772279373653453790675367222845489559029099158885609618320212809051375635008593538169977645449334163060868708828198584440540547523844677126876795616611683882877230236412271021963463592091522800068188473166662215995001280023560721163836332983600753770166277951597538612995765788821178511644074048230747928063143101157409844416744328551673090692690807512715072454084843233282386572585002195694795727892354019191437236297211579079868674981333328505791296270001545837484009084725554538795287936228952197623983271511701953502084546640253452242247737089234147616166432235267480674199859293173199565624771568587396449386686948292849999687272488157292093399944808316833605497101313296854065014762927901901706024391681863464493900625342330551228121061558674536673625508995139118684941705201283618199810678127128349031802338842088781947282655744626449472120043059259982341296031036174057891019692795056572526033781250184707508519595054151288553815953196068717594123329046562954450279297075362559759629960659535175618635077459889387395310066318903576755980338507936912079898445586669999170311020747838579897056687929308905325746234225929726769212026143620458420207804049733173061371133310486400363814047212471539137158363571972147372568956287732156365436558298281728335421785669082169596880661147519800232062686568828336206402685661987546592668655780953685162923601063194641393294048214237477873961092542036431427890299317428385332868392723333280507906764319825141419341396166252916594633774919387223155502791769192772116265552052675633072954627184735420045341726707850276259340399719550215739289330688879028757181181096077231532423947575012403815372262819077034680322876956450880849999573147813442855326094033114204629073984187545594784308498365640291842474251821499364229372283493831426272277462746012234726896958229402171010197436394713846464503957797330448010954281472723305141217704489514566700753574750801837077218336522389117499599591759890061716156008926982832440645581680481995097459732060075443364362471223138475037243653361739682507728381366744520202020202338874846856055394879822134585655879220576651769206026054235268035610651577618011351393492268559759317734837664176335785282625979554374458623528603036516743766436205016926093820948935444306246734170826415056404164879649611940818356296451607052366269362405930446369409930462042391610195592532572331522272224847718984484985892114368363973078768782055645750151793812059546580512637730452713466369060650244046527553494964389824282588639797458382987797469396117972771414029781884863234522417820597122561263950682675761427658081441116745523642893781502141554350727796499875705775975699039060399856651116391268712831399202758523680624942366967763157435872867189046416475082871310300521908377519018431902562584572206124462896546434491058150354600639883688620498868139838951002089640520304304676135733058844496287068899583955090659819167035376282449356286130402363639877645641440373814868064751790406986125887751761716208361514574291357670787699725681708234894748386782688912443809683627182309712051187489857963982543087898437784788600274295153313507437201736953176410574096766504824249050000835597184582308221744419285010591417446633250182201520125731907427409927191855510571605400925733467172411605048228904198727753656012464429566199781893158992776875102749311229690187967803241295335875804785969482645743278046704899671726010071830828506025720815865152230966914085427910969126250195133666965076377421530383970506750382803225981551126878951513400531146825144569867334562731353423494788396143947551421538351818469457590310341450144812098813775588375592558417165092631978341190476542307923027448444089643518244656194146097501793411956060008858411924430415665039904749389228619454159311109570147811901002382694190432700266214082091465027282284183146273219744339743962259533672256930076807571003292326780789944510842016001663363262310404470577235340129574730284531013116004601272517640901262750902893296944159117151607022146372142696175309145903783524414722984746078483104501082304055445038861177666706797960907396431483522900947010193514314330482689380005589697801010733555060658644890382420032932102874564775865713078445164373647986726131654212031788880652900007506198980976209789851252646675573522907896314239919217615120020539743086554044823996469000498341073738748349584709992940974927446756072331465977046671089629315237455252422083150796252136917162341501656345886494855830893529253525321102660996858543235229098225252589506786751052805289220585108892363078084213358962289618692023092844797277022890241996270501518044286254234548167551123420116618409227150221841390825902959596552942719739040735133839873004414606466177324334846265653093451511532215606249768097344571387303645805301057070972482227301112374676954834660358076337226905690594834754445317092704403029593880270623243691685560667109642653333553048692049898255189601020130834925014190574374052086810252407300252528485373772386282826233340883268833819572295216962113262430983175821218520674812637757852857733533735298607717990868132663563259331607400231228126035556542870631136503953483544546788491019168152468830209594995908334938672277512356735915900645963403912539300643312000181402987358949931437047269181020318705881287368265564595824589980179913699710770305866205066705811372268753306434972173454474612418341991751300759507040207393707023079251707495836137305206924703941856299337725309083143290348726766610183134386897285876096719916884844097917005651276871640956692364141003703574225359871880380333581064907348819056525271524036821709602216651376101779335952806288024230206353670957897292351695543736430582462869180725615676886714656173256501028227924324287283164317559900537373073196723895931762110628883519933453653708301763539580571711765108724114883616153266663855557271048784736728229066534338120944613585295695714308462218695797222357623264719222255492448686365165056239149139235861741238739644216122517833751914977489431432555941699547588987805063099279914158052267069006961514511858437664183230987105039927584566345020141792367830959594524044331610542047918764933804082508741056341121510272300436270081473690355278128363094574469676639738957774490535732774805503975523331343910012355627884201436017369850785699347289445922848627736763567118712716372983433992517701484828797763038178893822450325410910694258920785529496941958378352002561275784843054976249448128546600597881791080896816059356336722773743991644710036442569508203403284028260720483711542997585009440358320922511568475607182287294471649294632200982826691970145052313836946142497791108691694272828409219599941095121886013696925413723483920549281347557048991051240683652872790702641973111919455263008896055485046038390266242148670302973642038405752616205356422547137969102476209133772301959948577272695623749550320029148198153450039808237099980121572039974372841635411526834825497206569294835740277625338499490518252228363191807752000681653155015181330483674995144041104177123040050655070972830186597856925432080093984313998024597507091123404293636818504332760332677886769616973884864522770032096400379478605370775345432986986088665442839404948322537272488222359287917228327237926654542467680812910924132850486026911198385056289810139569286548002629077143449331240429482321005626972350050277799595273275141142870033634733950253914807533466513958329715512770100665288961015887751886130389815180337991515413106292748970284545083154473824083638467793050553954001344797844908250461507155132566421980807783065915580390078873688176035492984939245932403866220897447521178572315976085914680407490973338216303600879787248052159837336971310231407761019877895188013132868944076256809807870347612353068801049332247248971121241150426201137588396891703263238180071214984408393523467273986542285514749384832726495415929508493255622153108593516920812773903032618557518490111875350947861800874671860888639862531353052394057323752029031903611038991618340126413140772031657034216688777353343521005601466751980146933721021896408906889774977875941035798503723832880971018238450025666855624914571321960897958114000381267970045403970309854008018163416440916060975276449264051443721620936482283725487558166767111563060573373865539611616289908541181867400348001017486663498641977075910638741005646639500409702817331120233724834689639313911474414390348145882291272720022469551046883932505611420484523074263752881526882739227338054700650652287125520818272040321953653702063600382093875183380724768436789890413686932116459106834667138914851316575175902662645685167298835383537002699288969526447742479421211138744859215629738126967020256623131475949793423673542244254463011648793676977512378148540854654533970374838627745508725564584129393393634448021432676376631341753757750219372198427895776935208974438557221623087243429306302320681995424596718828104625874030183606278425656101771028241516076279611598630323269053508278608354378160688861646719726577202890015177442578802810997780134603994065657442652390972856941921422477729291696869497647441815171448726353745220980441753238079275909940539473515905920786621500313594805064430311707025892565042965455857515538445399325834918243929165845394496888443576395182431673271763412035118405730543783054168111391024517071028042590312477094286807045569563486642447563519207281234287507619306105539304269107540397680967308518855244155959189281428148732241055863296585437309656859690524666972036024816377230426589516682709912409897388357655342422633246597546169869064641039152235708928451985816026981920731208013256985068900659274852596674010870040558029627554491152327260866926138865615582841837536848097075239884243296139507293494987993668156089349997444761341912453387508304910946502162191945987609393532589657384977379075260886519151879014088620252914255218015454560841104113724526710236876356975850631263167370353233281057608077560752204444035832819032962933474269191051823034296236135869526520063696894102141099633922607784439853936069758548353100763470451375029016237770029469443802556989389349283677309139469396232844718368683609464440794470500025180563740317445564066729468219115370024540136222870704309427283744616068707593534054923970517452595408972974039197142174957880874761714474654515991404314290840465230041346603545111777369123879768932941120085473306246996070956193785893189541660540180017580453973926976501786365037023981239641195426926189562858665738903879774065273809169305083898895881628079937132341873058328472787563831825477336054826409905438216234130928718741816701381013894726334094124435831732647030071601435874946596358348326732006841303077158003099670717163688570535820960265425594721759483128106928272280645035236877178700757474541169632754935642816402625736587049898779255625362949923269913388754701908217109698511268417002339861223076369019343693676394689520850428904851887476760529516068202393870847369597840576295220813455854643928769595018489055998314169454452706538941406452830938821921275430180278985181202866636965759790681877511318573286987361965895078689097138361199693399735848266409425508346578737669796266428576041076067478541886092737885646988068975411963284891146669116378901004547320337858652596276720210275298911338670695695187871601051421469495990958589269875634948702896885970208499494176603574968249863997138126002549432589914817687805971866912163331424175533222903708969754762077348687797287237916777182756586098778765167179050744758213492196688625072162888736638682108150774296792113909005934602532253038576184191487825886967032025293353546417258774219686698861065784069039627237148631371977555274214906160223354930293079855960467634070262383847391851075129647497800870695640620994618100714613540015764524992053064616576413545740679532282044991872938970622784352154786262689300588918459504013122440610434455843589194043803694877929708506766461731786487780766541839368656992571596872604252377836852243418365721354181039744835782427943602586426079233906742805352941923830191358756966804728306522000354053329350372693231592850234924365521144511703009215613067524770442296606143053634957794329955642135700074674479513381391264201282250039125049560051656960512039132490890396450485839700776937331906683032425676918600654979246795272547935991385680526211833102215966617815794506111846435298341640830801532632869605237491076643488299456999943751640320616598693767928135691210140830308721316989354515263365163937011893149037558042080252268666432421766219369582883739472034699506922888087960983763447292439928457071083895769822360126634004902084257694980679310605872530548447963621375711263324199561855619682155142127498846553972595458185068531157363857988351018359262591417591966008480716975858427413864126127781130778747739767298746790957296293465505876535892492049281922334698662882671311371372831520008847570465852442373256613416317787983397228289936055895039017130624806371999408072297886558237290602597816639356550639541663851831880566094833502019465287304443234297094716420381530919676169897624674891924839064282985927284409277779605288191890918777591728116032137229713870759664468046356112572356871790747258556289045481485005959908756255986144051373321429161121932129399288404578710802138853773030177572368661124114155828237970765151052207256278473134931143775446444766777199241369994379428133874909999865133903697346705636734663118898527752940596468360483970076190950085724710684135157081955320813739776299555623357286988081415392059280692061202138028594567686714707530659544623879322392349861742317723968044076334245658453956833073483183711373014650387462373769152059325156654947920667110567165178711111211060813689568907727401356583312990487253785821064032720673052932574147708158349614412457654368592232370703951527797620838449011810661416688312065871521193786295128307771402142841099864451753383504534880141353304618899770053362630585280821876172331326312048671781528350327094485940829851874052008508035237244244198469525107678888905668488916454307194062112644659383874182662502764230226402162567238949541988315331269025927157668994657257053487408628416419234150485944218133128073318824924798432125855848338873170679826805346999150953540178990522943353688445498213485041994560968343429601294249471151110861530779683973969113346499864364785202644494223570455744263706190166752685346195178772185379277049077629910018283748933398856955893406597690671951021433797319053494118454892111805101923383799671190562197092919552611682991609291292462264305042431427800844309721021877485780456134380760054516682054852402836125266869703227823239560130658814924007971208278933480345191237164946419559613208389310147766026211076266885286626491623427257271941266988508921214093830019115281302043923967193155593002444698994462496532638019544878127538698537639591145750630249696554627018564103773502059266504365878354683733885476295466193896680444813220250282334182581368212617131296158321809471558543464303433347858769875729580629007495931022923505328393595373621595646743932576740724958834802428390635045176626833815348373176697790416938080849713042261883002319740380701759914574789656532993866078968007237520780628649452955611201810759678992570350747201789612027541724160063748421903363953025595339119926755098807342630489900272783579509613508787072600727737426502449746410670841906877574469745602791994279868811398333775239792683505844835491383812285789910950625520307501339418410822458683056593599925498413289131496917020778304242328339203917203796334254085256510330598218844759258903213307913295909078483504950670493274850549724080303829032289670974048527357224343819427772128289862320888323826852720168259157112074696540130179419870053336987147424315958228215409172875965027758307281618249460269816369737083418183586200150301915744705934208210231291734352583315073788736312710398591083507047100661929741620832009516280247780911557712851571406350636561773198387386292567672873115951886802050837485740623468565332408118708787021381323020366412756175027627403042944777480329265193487666229664663576172912694487281891011112432332764599090470082375435934245409155468422840604320381043190102761585811631184373146110375132984912335831299652114362004223828542481108604741913290266360721104638410528547283127355087741797383484201747619962676508799016430246196250462974403468865965068159635389602566182149453969524146614505534503318219610750232764739019347298919173721875854979831373085933616513688901721137618156834871709001651250344084891863807666425177811323447139757953518538234716735966779203531806174195488597376194077898420968181783092746136303730282518824656992705988148683523897031005019543540109573730513827158054692006924114650928585596961723386031934659285702033312952750816989849850078749994439068407772577835293167108360182306725578194118531060103823828080782967707679717061723266998171883119114041667017233120912393831315559656483690525892596542573842552560634282565168388576468993180788603346710917473168671912281474530089877353205514987571603363614837678258376964710782709914152811791782970152847314904369407386452631671928725769383686838991125458071345415581479613065916564963722884986645912838337420462674572811052935010401405259547893406709420166311405659882499320354412029068887040406928627414103392113476416899254339494527499845830718807447855547534764248378354410251477426198735402095164400148900022901244796902966784447724721348960949657159070445067007480241501739949423039353525613618121456020076104850719267310856430590104306920861244200205553183818170561168076037009479905449983428748832997060367466919863827512603829727467276184396013825973633655944697490563521148371914697220479472241153851432753992510017880260623282929238720919248389869859937848620277852378879323995684839248020897810585652617572141144529824918658849148753237307772859106666365157666458820519173451356123623492432821666697105715694397442341612569049962757603561521779552738630821949025814645142426213784082085660650852553942963259620557457425944187406214661204471079488837816367818182223801842540344665714364287924306853033568181666551093423301798505363865644829169250495932177855451204785555805385402005360801760233749964037931302714743688359604195097892012070632000095190287731387516416427046962931644587662546980027209717770340285824041151047500185647166536280739965867556051508732138344597365256099565304593041523800345495557123801465613745181549663756879199824194091990808714694905634492874170644086711886144148571441044401650632716932370782219629752888180214856149427556825292417413057982028850532476370091479575505553345064930743307693322984900702788033564842713136823549589701222771704860635044885006760237917503033548283761720435041341158661211868270026254776481877364731945609761529548740413546846633137306089884123275455809038143262904866551473407447294182846509812378593333058096476697094814520594985082702961604956977935998619946816651310243238172774268063497658943323424825892535539784666615986575608602452623134936974441902433243904643163987319728435462329431909255519084044348132684633288986105736975614606796068330564587636537515646074042558018436517763267513988313835129281984562028275801894568347484755971174419093755640069348460412455907663463676124267835980650358753510459911677250561352041946538975858142981085020327195618052228969039515770479569640984379265485748510244217857943677706512434569612241345083645514965774747316729909059631638274365787691261307655909474039905024736465535598644625094972984508680296247585735492452810303822334042163299156240341782705865403584110367014052812059194046844179665579329273928235239809703581899453845197157946636634437692693998098936744668728638232059980936015354210387793574004647838615073923555843841407932518684781501982494847129273146599471885765664683549841117745450956864663669348997256523189233069517963625879149965039754977059660735987236998727952017720149438915153666947382637109087287147389666911449028734099603160465877324008456977405542000505528549326879481311450776829239211375134452589871165129116633885736165865083429280398079684797165907530064439788556860453944437245112131937246305616521563271065541276559323844661640168959286571206736807505683556881580983476668071338484604524742672419048670556486404200209156983421704881528151581192965219666655435267211251067741825131219014506852993316732557529215053004564141531198193382657025049086584764764354625296280859800391114044359403480265535052091465428939649965965245876837039441089147093612649578175611627999577701288842635169866563794376677315738281250362615133507498510356630235508121447458094513632608232251041271325489839842475237141087104386840801846685624144040025143149439826402614609843040561611693449981332546531099503148048539254770921917251318269354870631455668709288261460683180892485372228643813759997791223063772358962645638676636790709731362730328302950228013041350605390367043112433096551471720621693092845302442945806540636731280921047995791552536383426198968008116492797912527686232437032535979908849345434548845052257056671672849960371550648707829902122713691903859545213072827731185521401167246629579595625305247702644309870208559729111074283444589238154572662540100191822786125896311251369575162979559532499822846145889462371569527472569165222886995690625470815200527948536553827140217682120194424177290324329411388536010257885395745702817139065277570270168327041946264658322710647601228550487527085295207992940256986167411198219240137173248717652023685261296831749199811243185061188091393675373988741110174806723353590305243849172494268210218577014233734338922709192334080928680324707659642646743179278678017897955236022491140302426332869546884788985508929188685695978175484133474026189454315400626342943914752836597210807069183628007657352361894511651542445651715944767207384926834323739107409049668470487234292142509894816206986816527188065823420225119760544219548812716796990798457904365752577609351195430598742136800170809897145360593782024756975089398696841062870064096736397776306445434931650931532971242426066112373390962819660944736537508021883028506922402649098392774149485850335461198700316168708606765737326953802511793142018023331323734328035422590308556740641145583874634312931207041053954833821331851262355716310319164736222493910693670062056763305837543734176761402023854997998512160321785310171215408071006990558918578679916882033905571068611795748272450205618146568473984666379445776099896466125507727459943049584737902130864803461572257716893624066835921546407393303530550243798013932138329670334114860802154460542137006674993740243458773912951967590855047313897614905260655874729337158897813350480772459631241997648486740027182473459798493779267127041938000791551896522922774925080801443935750806618840085349150033347716698337579464208806691137637311567666870041259441947825003128133046633839768697395969840474917558892669342274071500853867739991443916147487769947650043314294624960312047558883437483080250616482578403517490942820474847810896180774239425241634616725210049841667312717538228782558428582728785816543134645984704854584662578035118205753458329873420418630018836211645085117946356870089936873592161734190076582813199552105964645452061762254295403039588705492400269064241223500124910825776731996498815918416537995462179005806738583953692788419662038781967954960195957399464581565077759414126260484108986306420934114194215622476917952580560659479655455124102232626994940989247081686332725570009318825568429210744121805269476849981890192550466234970263221508237539584373068213342804294140982393455415450794019994683110097902297427345502680232174838334311391777020550648725299161013470377728096809212089493810905432595403436279803093796931428137239237491755502149914084874157850034672421339909922022374855783050379008970235790635428712613779363865993836387695200483704933449874514581193510149079490408577467445864950111618614053640271864621676681248451859668113078936765090360511212809875153452939314002418756667052164277002499895001696627108002980432060171974471386102190310133095640012390657081750463800201599966010877555312074165513477674032377665427675706549634927461422725469436978165563141003237683342455412570696130278248763603147222836147279835603949689271864163599643475016589212476604390269137604459281620091492780661834403821402070701627169797143609470029665850094738848148205683700573987779423138130839619717811026403326691745227934840523450706431146743722718963862795869103492133900548069669502720614105336587202856626854086753122017739826293406241852569434180258948015181399920761068888119695611424603341801782951086587071158514974968829951724246893852678463684989791976504374985978033965571084346703692598555461494551181296667090235212608614761311271326604604821349540862666159794042288140465972961099758263802841759174398946926236818002359646156732847776992938910584437926092882405136457066099186303619060183762842934612057537111917865998527058855121542763766129337128859071322792680905598732088805419552977504792931289794389440809711401281932780811905086703139508204159367239983943852033855380914679898149019372382099964920059213332982380027776869157944783125103380393914990085144476776316783971762977298228725457817681545462296647745129523953127314719519744894169027108990393734337500055648277336015248784822907285411577423838427643261353828706189425709445181183805227019784549271161975439576402373301738599236921587151463283666754688240955502774536353001523257378161779361015717408023966095173164552615849169555949937317548335990941602735671499563852978046606491198032770202535271069210040786900033600643687633251562436365211910635697830139396158154061726135661916072645221172863683782164257804166517235476883781097702314242049263258332457491876918705868259903298706100336755789035812062649295408793356120059514586309889376016396887613185611677656510110449227711358167326990566384306131618539056681410058994772534145819969220574564427717827339991092289604836403534773769892813171113735102849075800360636529629375787637768259429953161409428218625856888848590381437429249041132539654786046755921961803792180350974054608979269915216056107826156568585970975370686349568945292521349509561145070517041179229128323394465220414036097933602103185491309852653076391814848518542442299755634688894304644511530364721709433767644066872446305734385841487764917183022630473662530253989997446960669170538814445458144450502657275513798065763772129887634418974068046481269955927597941779190272209845270128056327953389672954386551572994635512449039009143339439845400196923342633000885994104335798547492412355796941124439715330950965505539709246257558678410429233014533790765039777090167633744042273457179968802608050159811903723287626953561235951575312262627550203594444038062876656252019337234884171236148852180488881754255551295761425095487598297638749468310478424196093950786381199805131646687841031196475725065158020266737956369389927786054020108072473870156237084604996124343969872063641346799433719689847566460339609510389904142060019642584616922006089434450207012462031498392756753473436433088278996147523216801851265116216670018913516195671567934728900951855617066956449530047161103933816163720045538169888378687352454982939451701067067652005082574318348007594831837552904224407894900927181415111344763524236694973406569015521663635773939749640155438308123941025316735190964872073464855256265822492756394586290663364148153927211935711396467089131932177566286068335133244520676225674466944930721347140636738460808723694469327810061123898742552887817974839254385659664390462026338615389657000343878457678160232015175649489193813057240153039061767678616827729794067839758640703929419988931025463228611636032098465162284796886565401758957497402173874564751347875749472369186670551056730462301304826919353816104090515730574777361969013827594477546541331776232067470811248202822456055570438480378214095300245492172348845081915764656208963669748449632073188861846027787611199687282672671620746730323838634797998387209370709806951664020045996967838619857061271662255599386745621708494009024772932059021368312271645786486384251122226572087380275028522545519146154857696887975207364522860483649265977545567196142845684243708529095162379690253760732440857009789655887563542876063149102286782865241059292430262730929079597709521551439367157438686307412550618417645950768594917570172667289114654868486489184915918097327124064173420939479880188533666185523464084995414169482892431889290821965559583010365954402002316003168933248335957972980164041175498829205193560934058455439362522593147549950220843612406863835929025322222995283011123400053413188765760498243639667049693384587978462405636037861396775160317094507306386960322482295604778811447984740386883893937734854463804484851752738883910426866773387109328680104775742174410916243130953709625176010328198292985798438796752580402557048364995675734331003083606138278069309467367096722407614038947289821372095499191903550859438181259313578632801770829517081891947317980151936309226774833384276731356602948152309656410014336836880530799112353253190333499780724915349584167457574073974530397894513088300269133393525135679021912195250480133143479058978863085846475978918359273689436379789585121968685693156893918125759422163060500258366880508313003853124128234973971801529235874211511247613601747728233856826156296410949092570240549939262175530816610278341391097788491879924602375313386669396360642009862756332126329413880549614550660151966187477162335627672611611033136253719452460696809417334819459387851418449231833760271189005975102304838873424984933587317942361370132641782987867992031071678286885425963762767281611773709283480014659771307201728918223270703584316213434245527802148840064754472474018033380729373932944367794107284501052564800542332535881240501958113030132348262008834906651688628781741094545967588371909326599435452629240166365158277952568365936388015663899638661859736176513750493003162957517035491665589119463299833445789602482961137980349259829100196869146655102305337155859483540999956393936572147191830440220791703491271317376313211920453531001041426003369972705259985536309709789381024757983680253372512771785298656366399824640995507018977825321117286098218011226499592268548533172583412374170799104311206717007137361703000750286228562768256548675201081034381748805879667671143410958620481289696292921698212889550894806809697951383739785897270301087768585417902184791079961662035433047000100131817286513775062532300006268196980926388026001846749081615942635931462865116014880377016430065082135613988621517588137148560899139852560008224965766390771594630972184071135689149064692854332949743726227989753655799620911029664588913648978882497875115568073495524119727008336748993382815421199887865700721178519414391427631329632203195990204365603348611719570420756182944963696499719934759633113569662801036829396225939033101508487504182314595990422873101437106338062470539153959556325402988158118021149144892728317373096937990883292785481889472009730774236826165203955956566781751519160695816840143852705551172231839903714120667039314632245099080026946203902010842778864076008434923310046006007216876395960539790735928596826712674297713621501206093024821832615218497858824622035362064719699549350826048115397097168834038404378302874590942035512284138591168564668260116358822736553336777339041874478396071565250212702216942464493960059050366050066947387934891141438835714143628536208748798356120186144427751847229670349349315242028234438413256944469032118601507668708764757175896575507102911950094027514274349315201253089000392838545090796116571921911979980507149850261662059643303094446307384805126805708881723504906424829991102050872850988466382469442917141935144199887335215091733159075651441356699199233321370372500116380455709974959894936528298862001729167307702466991113421949285005935460607607058064232255364150428644621454434019093529912733200926307449350203704539350860041623963184384122855720696461084580098660164198151164013442765941644313626408573347115107866791222646230303384702893936285199839556282690556342281346702254420670254457685286790642907498955824122779325277696298408376377355578263816539067818513959748516834185277042851383662240602014477231572555223369408659436658973117739790144707077284338742255787991021791675078156161334434564476355791167608330571406973333853769010940597261510629078058671723319530742424708985060867957894735750867036258584371217421004138899319852003347142663582241334623809139560041547360764556719978716933320663135032379633706475797305477079566459621160731114327942548938400465411899296156507556222025900614344077426854991160805974077522298437311901835408058991581167290283386728821985941757940768688603886591863669056311344192375700826635887901529854732876744747331830831337244751983600736742598875659102150000008815708066023619548605061851797838178045300645801252219620567453460885761690413812859914544386689498604735838326531549878917868815655894541072876593728731769362533862375125059413449704198367442554799862906548163730739350507687522433200497421817989897514217705899393815680746585409655701109272273962819344740780976468583910830586222009328484877063663210171085669419986566876768021453060342221525858650031886056179307821841371544594531937515231799773504325985947890226614942062886305914665581947075763865665903675301285016169440269935273927896539668172888183076745192488062823516978530734972311170733379398688311139452282881865901805566492812601966582448593327802604714028639194876351313439420111663863913428534775418808649472911504229824443525991231591328073881315586768170575224204537307096172002260603092845986491982921250249467493722454760986953028100684053928402574929049259104358183145383835457784537211384418584535969694244834678585794454158468372770803915975879772848618064134554679116770689615710215981275492637208705521593548329271183919462797738709200657523835011668728747879790281061546753623110958602282752114877462161500285696540292062463206864078339742028855943901856716172596944941944986597255492448985449890912831102689542001745197260133171540596544613404414943164422655308081717318517623522836642316704308963946789925322292385347174565330327593849523629158250262420106196511543471197428071814987030975198990949596607019653736812501243156146706786197401063375190285254836311951652317863116653477094214852736821613491500502202566985867455609594932743390350082960062562297100208748932022554344195120028521484165554395535954790279663560242662071997599348131247542250635209558977522116129699156001780807251162607805559185986389511148202635462099858783577816564786662674451171675450252221305240995777267520721223816533910276572440465306285510562195850155191869982786258785246898240223949559281874597778785189813886432488908804004706535701369626121377145575694532313352221649458434195313743185076361537026467036771890181179315115891845567027208315640002902079842131919787113092838529932693615442724771717141152961291888792389877074147635386105387333749636220721549512772241472816777409846149580363292520877366225024022161437245660868370229599168257483264801322346995269775115635459914490909623825824183045437955625344337379592493771488567627861023107230190994691635087784323394760644602816332834097672380003130709769964700833143579262169983802644729666870292742644803058700463348522886072077319511244233418422788480377740647742626958055354206130812185422654253207804989388376309970850607682875407795169818457268318402314588906525126365039458909999468998148951609218942961472553268017664105751296360334742028460157600838624983986501955756252913847005758465788175328656565751900660072531243084766093127107711649795588376820764537269660529270247441106019313581668332536070495637848778611802644171852744305187801684159046499048540266205829038786692783244372167194624493361206252565690380688991832385699812420994734705958614274965509210199185533897654855291049066697653795248561651419022315957705590963389991831785318933604543025906033051682622550372526888826880631463657570580999511108237125689986553075694203027010698908888002128255846965717619551935100102956006915579491060669699678885279202585206004926584729531243423253207647181490003073350138764931032180118527900487927532464112370097870744881710688417773998902818839217207605548543465494551149407537996680384345363702437559288604399229405624413207218572711987522060428017983545984371853432167399313741952881133476329653072065490973259420183605874633886989881101726076601602079570369987569287324895273712476862370955887621766319224349906136991548525392249452338578956208159571521419354100290085649191571079537166188699047775000853798461200821425819419327929794282457672891803444893967192440768100820789046627353745955090598770603657346032804089593544190262030266236863066865205111216915830884943506512501696465290535479719442705799975208003258961384665144418609212659254097388455382912922080233346573860160282795516309036197171070775412226143354256655567586214514663068862140264170293408566051650247412084132221034988561362575415183995401287811636728551230556369026946059705103210413851999579141651239006142216013582338179101451478773358407114334597172549272785942243486032538941258088454674047248257332667528138762845670785844738803189808572362629336876682903232147268667914167149554714660099239800638861410947590355941215731299371750823201867546816268323456142912689829944566350416155758352875481007693458384032275787975409122008543295417204701160410545997626504930111132766955114516345382126430921011358980261517976835527599312548612033516423365175042363261149255707942238270801541427377643070798221686180472226890984776661623540027671015570949220593945746013537376846839631052817492145414195142290370692702754426673869362350638241482420945060126290482449463892133555546971442735904294260158673733706004985275681652139775281434886858874153949486654618845929227847147909098368593764010969821209059691523797282533793742687505665061880504265562161063609415942695870751948909245665532105487505798185248262445278837762042140055184500433124868211695519401517218025193005655553984924649239404655826461891218805695130045139509492377378045843215404172114911248976624555015411524868808046646374251966478139410672551415621551862045460046396602190388681071399513874909312240546827720358708011061338605797890008848842599351300026379268602747807774738952668416229028623557425082857396649721142221956378112428622274379647763185426245256571423896599769962718768462566634033779140558919290960644108408538167960847863679982692381657605994730231508767138949886360245749579119063532746993609458271427098952744416809089127343589618743175942313116533572656662502469627053762331596377041048819665763970009426965057542409938200599252834687865792694251798022387288556507668294288853545449888140702489269000093428265474991700881644861154482162220663104567853995469038453421280803105915230091590692752116719332454976983666831809493564770247544526370177566234776983631945570706068784763109444022267845803904469917223427961373175409819236100335344355717303740204645570742846379243857841389232798673251251847046847789194755433451838562771206340064184069586415213459172698768081152155252656543297474116000363738381168831387101227189676750139386355878934399755347662240529068281889577622963922509934034864163237614148165390886488620584328822198390516838159935332036326992822364975925118153328808193417515911190141811008381288791829796678865756851150680320333357593922467783410483104553323732782012485924382339430202429140084255142506888682049703421200496668915357931304541353466511798123383299290092891710805176846990913552102701855812146621413117190729860739486567775525351296280531726882150207132677829912623461581310385655325479873225327033665316617724409563201526526448657963491645802316663948488502450053026928024230624166083661920452437207213481948145925880767807850172522667058766883507627173781577018516376565665471752639744468282525837719228511179675057505707664586892710752480132282863893327537047508723322362504199907212327356065764584047738176453030685877213120458630817956327074913209700269455371877070918957626656172261488249666903453634166001711384198166104930211541125264967341414854628163404566416983109578043119479580538642569588922111733682802933464415858565189234738567149575795984723600662533481728416081667825225623456889591838979649706929529158254559012953929403064444257908097707066131991032310927523291273328180997023775097290640627233884417209869802815870493116971870010323882900898126239786179313462843446861650136504109065555438427699124517232940102936318001549730327205129160885493205825861807866953669389242453208489618871804984367498827589163331039341352303259909917344616250995433598934423772578271733796371986775667049837795376908015530357249507281234369629271251138440250592841636727934957848830620314405777071334294156249352418209247233204111473826300374439071950263090470292950577248571210697452317431828753414155862275468156812596764261533462769818937222139749963397930014285984661896457477758697479437299864018266741274147404233098796762835198411021291543014310987289346065148482465409146922567523789083619542230469327231054192158264776321759489363755009259667830512041165981620025408749056471482813934889506416455417152743157090349469086734762680392806589923884501510432759058892187026725714246207323151322787412640307563562723784559155254811462291944303251828010280286627584258644983387417931289392592691741623192436416882447285397782021662896809410176852445326599602056911160611832535819607183327556134222312204283382336158504453771994659839498191665960153454943213290095556323811482532007568750140423663672390500494923215532800973251897248523177608240015328674627439212191566887047599713276341182795528167922485250184448943064097019685696256536128664912540616692212389102270049167392593079630452035579918437339212241196832760223307957695116298921380434631450446668268460130792012877870896615145411144037810853579492200014728652596282729117045714901132123185039890728147047577887668800909107801068536963053890799082029573607482222568767903911696332327872566270662989692761808511033939658609008494481766663921499139052850774178048995149296236363242561521356352548867094749019076870834245234091873784509689228556139693126144201231192756857542816585452574063489118222010993692515039105710315927435283252935455715876197035633645966946395557912173949611644216881387753461781981586392857927101179888435836878396689248474362383159060661704095342352598687054599597274895821763228014718238836146813615051718631726934575558018375140998426517669154598158948226869358566817211172345528507072689190438903165942740090437745685936537050402886129704286621061946874665538054032424313170584095377112034058843208298787678174301671819285366790610654303910781593751568699573107096738380963113284659962748498751058424294143734552806356974345267799274980868616169248634486033574904337893067133961928646375402757503101440258052286620071098912675835773396759476761842439368968564153802870757150247640817574971407944877383460519066232120740574275126759973452111229766468886544104983504119974859290741922978633194362265746791127701049277808534979833320157601880122787999023213814233270965767154823651107659343044400927058215457248810041122468838078245134223611248054331989196681740356783391249608955457406470828975717890658558268745170143065476042267972775168314488423141550831889923435807454297289343314607715642365729327860017242271748547940716397777720745737643227940419240583604163370859277399977491582461129143218931660130655577206807608478471637322689216990736928871809259441833142372960679640058098978789067665662614332961778667273093697441187823312490571053523978730509635315708422907917764019353545180814075212421040719780444215781406288079547414556943282737738047974320833129253409319124515243331733773063674780283243522536206058065734774113817262403690118928913810412363153752881940676265949357110364538298233897583515034183102841306579024862893378667517618170620553589155439816473296727382156564498342172171185532567860054116752043120278078994905105347461010146829742872617014073616283738251699418106678503244868724040705575431572788139655778727979318885869747669858019825497322898294101088565786231383926392904491334717354774535788078921341229072265798856726334425764774361889644698207628989286066979740737158111081184077198462463351458453384268647896775123727554169196046232531958385770416097072131901322550111062095038823321100496258675861091825053106823379129715219887196673584584666024876845552205030348143525201351282282006869528877716402453607183753615969696200607501004713235314828660566878660759556173189354900467348915774683603425945326806045911530105370111393061865559517770310894007587072035345687787362571654357548000117764849384303954287924304613197703162935133798681568553130935327159773426609697998532299280594334297971897496649717944123265091216125775864343430220809400432073813406731643890992426974589849395570791372902595131968955572988273398102696072962751747150878088213430578851332784921980678771396723511829091880529723370590524411401452503639103369319496540523230938936372863160742788691030439237051533795043154003523316749749967541813036248391654510916125605897449914620527377486836521903649298889080831426730210472165108593017806060818616172292632518012811099439335367486578453538133008883351814924002116597086417821689901740332713640122442852939776546185166887259902235867574124580815661322163666233992717052301377017232344631897857983935826097593453921043595400156516340340482795613125064014850145655069220982978529690554507352979283191249465862684295374649263069894401080383493357604596224512962434949202243407069454779147555034399775715210026012063923401078980465267162472085770688215502390132406342636229143704189206595654777916010630930797728344041268881650231926225954486719881011915597967716167605427994210090010260934639668598058651990343324699695746382690236165182678365886867613054569932454098513502517003749926262664202619215300552940085636513712712568358305302846213152458554637385859400913157792038959003896642613685934258453447000760965569236013324006754730605520949092296284428227142794662830040977800924532844578129215642841050274201844193188926860340310231085319296122399755601564175640764232596126662168324492215568512201544507708074464934634578443740385046561976752353464166397622197666142680747903730976719815332599317722045415101186560204035588349904025821893317498808222623920380402429416475088935181610524988153993451372351689465313188847056669667530160397403245391563003483829117082097863019571301650559997911040571882647334950995917381815250913524258253568991159950838231910112178045286913545036175396330373052805765854357895563128096323956097754222958670061324311855365240070660563766580878611407211004666109722223177675452455499480425807094259531595493226790925043498194174202916016241296072576965925013134894230070080786020380526103403665060476464768983778341782968552196542191797671538984476948489200135527148465581154140022338001843810386378515364564179955494068908050928828371937511576283823054075645403348591544151001236107516450106098844406188754976633995394515433039978221482778946402305243759977716016289064689796903525531732503720181458380708353201199857024270728168618770765326873054959430110420487626226673391351249265228281943322661284814846406209247708723124564581147173348805087372229423573525404338486147021016474018285886839569262200148111091563695547862617740227888176610082182679211674160713386972623961797387169172022087394345963350071063388242991807146267962949166843653789035286185724618133594018973149375381196425175672898858625282752450529111130276949178002677198269110612132601508046355989570799472516575484063073739576094809029420104533404296937832188067949916467001899075064072294010353108668552094693950678568867013339385054806157281026280480226969297013769058976487158214743152391365552327952879624056308594713119778458546006021126521249516438203241568903543274793736516542231067399271290133201842501162540567799132260295309164798934927386631674753676551167940467879872668112372827177614975682727209487561291533616850319947945641398255452820331429091448636015763824620996553293282384631749926079304362548225667929434987807005648147741022283053870516319095486818096815962082927923047992933615869575604344374348951437027000497049569327773286554340643327030261014637630454078007522015774440680037002625290746219684381515871353687284793821808115206612269814173580559766718760159532477438436590194421902651079606716191945770709458670788585819333619177825159992267717569638188150419394834567298074702889814237961049303267503401547442004003651372331305898802839794562502199756051047032107064210097811621797521844018922736727511838216722243652820541611471953879491698063133630073004876522021388617661161259811820405219554178710395161953243603437285878553009518593691365220053004454711954291965814422512214847270975159772558582710949119926318607084543080195905589029586951843155024069612570034785278468341241638722874522156174130211286743638718711673059937616675293686204658006504100455714610842374987056385458518776855517326668572059582171353212061733832062967254299662198435567846436993965339132547323126238292871919059268837843821964633350889057450249779132426785710767229034231283782156904037964270937100001482448847683582977517755299063911108055174713411624181694591436573327624082726397965149528082104820238640960820690665676491191848131268507972073529541438350649508221712257620227112132194897782450307947280936431844310285034685141335726103231325844413391821300577562764727560992535148044965405847606233468843556425419006155844803169303281644621255390320798244364312035483616080937157016983267969873428855480291361920460456338336289433747412592304790341762662535011490738846792165083528807768153073930260598785958108394511933292612637975135872740688297410618581513838094486038465099456742192303943419764651752283640177865663348117074686365091478576271285265080837914866322159745190310429809049030055589459265048769511108822677416774815267902751685259114734421483705723498296863085356342656926133850145627016166190217346068089999900955386398314487901087244918975661844669239350464740707681131703045118578751506915051113574971878814275359784773414276376506596617948127621878232644250620783433543919827605046786349195498225421133578337481305580563369911865085903521116361526250905843425128169549364402254504772557003803015224795743201822610126803682420526166008534432690720339692418816475259513228160427224325644717464209365591117415052871982326174387654688099426820976812790414364481652337887666805171817975908576883204512716113779334224560437176647023876101445852520499447095794339541166360127430214194176041354402418505725862029976663078204355493088074023221887051792046511118585256565529458560416502515802819944423205275051816641736262014255954372966513867284902874630267495279876036670873106439407908225488493389558151202878028557011825995096411515758100612315178436705577557585880362355339676857486862153007013313777962861085420577096599186170075424029387363709628066066889332782394771592235174236036077020876430315453678462320778784168508091339096702364436941130883604719224507870549261573043844027546870243353554650916982176662477429517118044096599437738557600573031260913459382976645556508339053076496920039965561332095122219363431520386639547249794626382387190437322585928696471484649374113623235326434464559802907735491635983372811341174825799061964337639480115453044803788588710736807152873425874636127421518477805230917032915160894632806312909724801198402346362496881415984135525020700752314060319087502901445877299766731104661078705029813684819012722441311268688880080725281854747329825780642074068775473600399342005629802965745154068096334284336125714058434146236443836633489078049138316708948235123655996917704171037545919253203674319067390460311362311850350425122268497262641148293137372898639940446024937336603059885969212654150013537631787520320517345032286782471792906199981610756836572153885991249864860358543083984288671328350715934029848141057308523513024100900528644590143762696223806177511597531686484688348646918981031501934211664669782420303190739983125590578732499022386717007899964823221464391770238448105871085999674282673334777321654140391340222402230896651665112561734143947516172906303324145632266293088508158559105591074720074999742661235693516938224696980622713649686375473770521167209943278836080582988692583669360631984790600938988591868571249934022442222303041347513869244966324088556269192507467827019332121685417256890046264940056139740260936296194806559692828592451808748511027017754249281613160851338865411538594746148150323948127901648795408911048732858813614142255286560937073666091616312633650392800243025354361415071287145767727025720342442493350783141033186493022001782864015569150185794742691644220740435648974633227859745759392270020584503489875595182243498827497483638058410501089284759564260030324311603498517619891745927086111326435703673708556967655500112358990220720359441470640055987808288966145376787829750707245738899329322750662484919148728012626098140709455115136703637740790037069667869242098060531695516842238874145992871175846512357812095680856608031195916347513535142947567556261683365705965279535125273768412975393006675412080718355731935666192297313249004364667942008470477964450530954261111687154438407868706556152351060266022495337237300977455441291694486037859873306167805812114298494612941204122018974772937631638310674850548262017104876322680265436101960019753636809560232481297919629096446225862168126450914747854307537563996650231972405267801069105406249960936718557821423915091635901464410486563798019126298733680097919269736831097363579794015841298185006544713145751098177116132429113713453597869670113387879294104306161034143582033015927615361163083163090681186095092864061416330303854879672580709856915920055662376604669918478590360551796866788458404936388038315052718412094107937684820639565523661775192833292570814219807780557855067034764763546630064767828039391302255399576792214420129193400696421949636090365724225690577878516550594461483281829277309209302612857753960016459586054067599174135773535840074022559758634687624843886704286993369424646909429272798259818172121779520890203943871994559698790957038203332297324021528686111951090105779006582906281545084578036990841376959409592864201359163013912010793521112575250625268175549483778712551409560296929793033468111552128181796729119330350884961045000516292140322785782979978714686183754698390765432036384125521326715903529069479155502396306968172777381895517604343518878682272885838290536875784882505962259873224734773015704107019207739594603760996886888434690554759064656408597240574320728885051951058227029193358583603996891707962427993963536438095666334680519068698519130010673945226791796614581728080927423386652157603286285748562778013617165442572959500003122295119462719545877497178310544774657539274098697062408972738542428577350163088475174631502017496451963363833022770041394989460540403837003857349122180897040675218685797389465966475898131873354905451863928472601108096990337657476421236244492285529862642220308004648675860845504674334897380918193623423155930007065179051017627816341523354552664285532340416153390443348577590043751736190032262879802605455120317710365324547855972406886531725586055736411922732005242032519314410888006130404275362004967507486642234859896444034115008083287786201618041167489679544847607712042654776314518494181144492614213758407943060754245606407188709891900875895411216352975551202297331330177385853862574310375100896424548688174531402768919601694643751568853597924523622767194270869501920087507255377082795840710482015452112537502457296354184987032920689869461586343411741087650928749586651642459488796427388127868154417438021974056087012316190257493003074220317048051786052862535286984047475289767602009741892007241456494045326487574916309925801725885342076708370022958801676518750363287560649174873306353901951245251142909307800179175696684329080744197511510582862286857107106246036924082819664912477650133155723227796487748572161284145554266718473499541401595319382029046715538090567698789810090981587242001640923058382955125406528940156659127059636449299861564293387395415415731859989576807291453445116360113737552649105629198165901707355638099176700536213724991926234686151393102186719925188091634576792037716873681967603636363794256416285752256837633187265019772965485976305187138929025823329750558453948961215267430821233531600736371049537025177266324731170005904250956465454438762158950891609773139078338561334871209229647150750961734281458226832284253978628193413022699127362460163196931317129889544731811424208941662412559628916417925832429015720570542049843699667783856230016537146110546606692501766775137432378622423951217623845638842935431888558786128791320892934278693612215386779152657774158823629752334496460936483031057192375793888581469653581766046335617694651296577036187319208686158086559297962519542707152153108462470342049485866925915989653943364489777100889398504387520098976584809501907695960853293872164295449784863446857360780895206977679174219914033671717188325610922970253218017439839595624157059666770636515331874935226145275593825217715629583342990160797430026996998375000066691702268945309192745862511445042229876695386094610196651007830685631930058013883249146086125136044775318718492261714031009607010250028690188760971053527128036198283296933572956964419678303321220829156639248219159282845459378398826996899340873604339641051636086442832187463522784007529097381450429477009852186235512004512632635612031976048205174697153258728261146878227239757722926996268957444812504371686158621919019837485755020278895202473423212757605160404023421592484438442794435724884977443484400143608715920673452359134216636873900321422242020992435910886185820959077658526956964870165087326231838326358829657087982177888778554851854422044924684871487803284062987585946925712060747020460497225059438463170210962776592851269546782722031431808020702215819731297167446198691364820816531482670500954640379080369329436147334792868059336388458248918551019313754672433557356481319744265780714089470131597153939347379519683097914574450345479756387586204243476325242499869347654929753590910222413220208881931673706554666576400610266733656434696162869117750417715101129009175908517514058983726795618545185260907944204396332558883064567116601315175724063960559145687000181842543741322795399151841671779274239671911395705970762414340017977975056864808312253239529312955719259688617414013425944667874458616680170907018884572209969237583958559522627012301102744923979610064299708535706960474252423372514323295502017062260400103938440894222176020236385167010024848436372417502357157534783100885173218272461748378923713777179015250203701006428211686495818935024865673157775006067269306699184278518100321595165895979697175113475213915532475856698183056918209915625315293602110545034216731274640204659361489034237631084185920037194522560948027245649933311322405117739149084342233169934346469382986978666520854931611589651135789070681874479298812601415856388698747018980248646651347130963621442256098891094619006002402779909004814676614739547818328761918464516050439013898923320769551195153350048041476133461906556828976608268338088963343759858759199733399273937322743177213568549304633061896013217641138102821338844911441776586394716401391515000512291731510561041494583513756872482575011040654730517619123023548191791707379580039333370587748154618263714449258145415120652012124570800635460857015332850732180967397915365718176792789799543359137164828978558876514949419083278032346039747308381258615799657258096916466338577657661669081809102483690955479458540878477972158001123363904416708600414276596864177901377992722715848653567178659524667246695823030065762477187422641612188307810214212253283328241045123544497643640164112292464563724831580735980124252597578139372947331132834075399206587540299663602165667473360700461870911676973157284445579415639406465320594102018327195450635234233082525994852488352497046646919757145047046496105565722933968573143991401108015008795711756826976914845347628556790743006048092960212890867202759422342275041271402123838919590402288736625686382007724435622587705138724125163901943802335520839660810662219963213627364197687871596373078154800247079752527098146116798916759238799113773252635705417411873065506150949832579004841475419184769892594907737682244682041114989881769709705346007382650176799165536734905619670872850843650924190854219380250070091485728737675867663627399512140491905878511318925500147044567712292199281492442135101913401149769377827466915469199227432325750806180471050797128997262767977645624500581138242333305564836055004215081875284223990150122132328377165134385281573433086608249669650088862488972557502034883293763460948344445708034469988559792856295327407122593419102568090199574348421895002205163232579149394252452392191054816528185377893190213031850231212735822266705035697283597875381926328446454226869232896061427393335249612069362998718730467404073467931590102250088462367955148634600952359599469861027997430775129285654992894137381683619232980710112110258115757512655788780660798811127800892838282954439300602708049737882632547200748240453650423491466544011489968489897076871904833855565743568820357421417621036831465019546445330772134238625370388871450959174384648640894851415040805940952786984803273794904803876741167782125090325684996506614969446768703498218657728157512603263729694496567442250760758439955022067207699875650283274408709138376789678757067844034215721387355709952816067703524164388725808946275396350875142967285898834911573976907902460313493607013738133078122268512682334629738000882713950698427195246066119709171954917971659596206633746630267360575565883404130323799410130219983293925069175973738578813883634506765026341700997788420973985651005277536012991386802342520090172508471845476714184780116327544845522184611362327490955848274624167643641094604884348211576885875065641960822214775549708241057380205678008419970353909548997224069939245510695313300024969493530975526675022140872799657144176032925993088647968635029483974596675409231012967333683443308465928239280083711133803608679537407904964947265249568107970468570140879119504685265901441174608455176128706492655368785630181939834787053418275553705311571514380060902289572753835943720478496226855824627267351054709094153391769776380406970962572065552941345540822957393029160623963291438411257728979242777672708446973013052810659538415936504945481821102403383400499428636487075825535264470865456820083349420835483753677016777813731443100405963615488117942660823717270320934768439706004032701607424694106409922793039222017988070754052191204444825813940701183236303323542230500452970288527442290824241285654110528783473060967562466130370054447352266019475179288157980266868869420996067190519449632026165881749303721191213291845145562959197005987841051047829680215154737321155820947347784774294331873530618701090822327754526763046533221031893824532809789173425860396316643067960410038627401078961179826416803168782221540024409363468864368253641958362697724761836854040690836604237630517546752328089209253546222362173878730449772928008167493920688997557821357616084142617483660691600601340822133564723665813747055772718146846960271562320078915358991457489756297295915221447465977257497028365530926938607027989090944929668341065726948542590781797637112132465925150706073010136124281681338816399520763510037627409146724775565844798242195441274666655425540892751170856490098635944614268088119986335855486630382516921667412809439067007884425913989355739782964656988848048464638190007785996215235254091214901471326042352938290192441828149860682991780678691182991132331368289435758518767041562667299661131179651847031746705735967176039989059731879417538200273902991046582876508702278192789517392373310004797487975389929882121814322443919827215504460412317482310312329702786009009449829304200843255027990214714516717436638457658382086164246606958518475066961854297367352964005504301585272032511068476533358141756193336296976168353166127427543332198736697219410857329302188952242265950657776120574396337153922468167492852781424966671152470837983816993788135431742549995772300492190789950427783542820309077563362431820012279192330497287543716709758497782077330593960805671012213698679481546074740885851367905656514167196280892063366067964541515274171077336291124076670098812760506580566949133652745723319469467485764773332128709029616301779536942464471519352901801287979846408393892956600098491897021952294834549236828809421769809141702506488153959102085869411673002008946263137179784647492001902515308208447269478041747728231667584312814417207881796603160194536318808436537538107011868785572550330425413025762140279517266531312806642491514806694422618589947906212849348411411786486599126089775036224725517435700350398301918822301129119715942107086824717543313345677996872261013011725603431589460703747664216916690166409138778381256756835593609822752841273646656840314031419084455172187943992282422213261392080781289418193797666045791505905783072543371933974711275114550433184137305565406395278298381529019508088996171878334473564954989772542032856199543163496632014846536109859534309144234339560603038863469286058773547448275325545394774801856989229697453362559597808888091539538525721325449911512971485483248665169263718665477209043388510501431187605465919632611353881802644983513123258980089307961877894586881436343978034305184139440120419833698499137312714139306951380486031407733935303724349099693768790314634612585601403327270270701832689081891527921810302288618963128884984041444474194501235364546999593528349267294425712776368709822598321857175592044157792051230931239133940132740383746560762858096704631633587904688203137533179616397350933784254295060521741634226377383735264822491390510917487392064613779313104003125902396759175969257560526074916032914998790362600987485197666531670801045920590849962224179521723495332572275047023660785023382656297856643764186884970699020637771877885082931768462003751252358740390369441400463552110919639450229202494756585830745795745107062052294037393882380812094559727858850506323509512326293996901331611908890239503314996018286118951965873767895142867052274797008132612738521886705987512170875384257908685491693692123938095810757369876998130732108584575525533937514324169050203078567156726880762251840885264579152650400285543147458886703718318995057472966428338545957661502539139137915267271654594539819965101655418443230163036896762769238652948032196772396461603383686178436913115983204420548016741062254812576982321791974867461082190489242551743164125649149616587223500317806065832953083720455130732696122546539444740656087833297565246435664744621911605863368626960344596058076409562948631905329588494765904883844446604675651650705667409273192305770303630095942773224711732670588701393075082510994286186336232205025844287252121455496503637100925404789111111285758743383427045139660628109792055914595669000852343607861142869518404919472333336699702688300400611764731913917786767407238944773759089182388680197374439534040233063682434123504911117003443782489354302249870962882189221462552752075283059370413296290468648457127969486271585641529066142256301359977558585345330505914359864341477717166455164056481120469960553651005228961439730207043315185889234785719972122138288490403849623421245801951149005426760243938346396692814892094453528247305919558088771118948742614171049058331245325794123081176113881010289581288379274869474029315369809796409850543870560345732086789390107241542373500860765052317313983350187040595817822568527968654019870353451078146365715098416168648594766625330993424127018536457811779576794624704538189746658059821034278999909702163529384849999623500031020410489656446736726977638529504526756950074368290439075416910492175379648867167764996644869428641762942721895169260167107665429499048358197123861752325188229583165066107660487005845387938270173704909922402458985832203309931274357512415943004120798754733929916968490480034112118883389066205512306606720889676368733776700132302106055189191050254863013492322679432499984466002048886645903196243612616955522657561976822555496393647889648659092366657416641089271560289519858354224128525991791437772261317848057924974296824673694211228556851464282919029628000085265311988969808458264237482043848433313186025760734412090400527108030071687099940687367867604867473796300488333447645830986127585734176597454177922413545263894916293206591943614258949585255949420580458670166491408863580037853612718816972262321077813173268117538284859550758374484534679419774540909122719137910689863702080237565263967627375821241372899269244965311946889835406733936901680686410827049811898226544960947957544434492969682737958042758188979310410619763550377687823636012028747135976039696431663996627845614661086543220805638647364480987562997597685030327237663553490929514663660284181054220555604372480877331507457506929587126595952721481268403371660212009849484344093327901708405193716605326301121806628513859048901282617470144349269667830281123444001871773407531934009631390605662903327929375929342325550116625038408549134424725609827006319858350819697572758495825617281073066399026942076864490775917150081982999913098932256019803285650952137981046746320457295489769959195336302987530152304180439637089042864349143622256369019814565132586962292372813693269808172619854634347568328167061593126916994160953362806999090089442129648296816082138509150285980139617308532230613440239819309038327629529941857026696259455921168935101751785032546265336959608393851253807543988591974058196655152956489419945809627265430675835659572961128078561778697629270197655137568102578227708035774017582167660447021381902420593388230123387874686335122838229914278017827615991752972568709245123929451021667060891918899095318298331735763413656970510202642820909333905006689387512772745344063154668399095895112015781877098162588331804865384663923730799925061702626528366913668099881181359032645210355586648017884090582477062151264984394915054927691846652056933941698611596268568021832230298751807895466274442084952077671093010027689171512459318542992069755952928851454344941550705880472395941412187963592434219226650470336574962363878507614785125750165756981974724094277511698584761972428628825899555119769486522328557668931464594592429217554094480186697348377685068800706009538701496894865408609371511190320003220464910942705397359593382895958978724157334619335081505576212191969365774791710472430533890243673050312447166932274656830179590284150989385408649966747212742570836949328676889335544436883994690103300223098837277626530046269590688899052930641446535550222981768474772680694917129622725640915569632486491078239228468990112714380957381594676597856486044921583278457815835339019486142006905148635532556332460503814348432838707004147502083263028868690281805327279828829720334255520842468990100599013265058498611518597266687307951060369664412888352585258541369631803749895125334376876970253217098679594514321270320946318115691155830840659586526963788247372147722141308093196900909787206982738810370003464600556663598256390398870647387086385543649937947947756161154637391383516019490508928590688075725644692935114414813106816134293854426087414379549734314360076204782378685547873763093967280175519607040002392567546186123409543402434710656446640875640145048788580453036581407048036965682360068361221883104816317324448076470973279840133615161775912214844942560739851023321407364681439971658164592088899397891926525863501976285454500424852433617617106127130944950617975185691594642965764108215722099794195743306336057123370626905352624209170883981322499176937756739091056652803956865447438780733890799029333842646752034309486397102571863964397860937199308189054052364488457613494847436208417282204859382653079434215776014530014315734636710663360766250173825429747986922582611312013790164452364833484770134099332980319933177474854052952887639591779636714487603104550793484047947794898571974960060997515907490158023965253842940730549469802224527495969277710060578693474398396081071078576910674923552744206816908338297369207860337760725017439896658212886979495560238589609358736937977316306103513448284650349909187950530143495537711827317246392128221799490968698971382202725861573896095521121698422788752110442305031844470380409212483379591461964175933745043584260243968526336882011373295353678510688578209135800259489864691090209766860840776638406169555406828439632506106761785673794466077255107759378465078440258857527334488851259332509112527709976278738740592270344313054737778425136952115059226942657492834704470614940119112306410394915052191940776962560507924278040319167629132118232826795771129173846887586652386068487992431779910590144033676183285445298073434286124068856114852818934473409639416483961787952068906352856500860489616670809617014048220728714524345322579451596823773612103942582998926435750863413098397602610868097399555625531378655167303158133563191249262313260352953457411526680381338870936875813110050190832120723626017951349765751399387565327188250146599197794016169474289354114532479044588059513727520719059586850915196063034578630646275135843881308742520090944977557109999988121322104256402023157928552535955799581230148177830454701908626846319272617852404859375122161338226871684636809625066220581089908023759079752325234946855444455815810207523054018184089548170542629019537800892191208405145167214439780979837398709452192276410116139866174598473056282461575911706375464538552148916777579838305173062653543352175795803797189740291777365669108863149008134427819821734900880861445709647698299606702490465437202065641624690703937646614297992916246815857708843175251785207232998861848404890319289647122870777883821892598226121529344848559654860189433347206443804784276163519108628560002693472786191810214847423820895310269853437294261073544821709706630691355910899466764455591375476992561666366503031276837390864790552434160107590333988154070794835556923719421802641419944217325416694060787548884886362228146867915221682342072335875276473937345412831646978060977735418875149766701913019617089862792656388691480679017854574051064356936104322552260674581018712559095630872260721335259373441887355256518428435794834985467155761603295720339024679750818255779323085816739937301719163603478785448266617321311419540458168914860951483020789004502529672078818726815756724690563019101346677013652375082250564585325972933943332724119192194274126825364696426149403442442195972409205079490403208664093887440229834224311996584841875826969488187882927246095129681670678500571204252313313973240087134402764530808011033027293470219188846365108329563562056684673840428221057168328283587383832818714416897895363931538915423580581632473819237017757748756905591153991904022941784392614280846346037898417230380425806132240209425434300569775685492719851086185198997970012943384768027255501993021703182742076375734021252395870820697282705834560925521328307568610622680927491628054917702362798270871668020387109468348960979276539741148905752267448859526719385809257436866720737503964382182222468705451103198410049261643463018170184961077604088248932359138843209029145708706352140739201027164939573564315107964262152990568242078914607165870256559423445137994031531966848503475713094385086641982710921721161478369988621378430010032722547834353838926429785139974189669012501425252046424727458297364731879950036925207191192888139600960969320518766867093474709848186876281536635346800779217358252909548298182276454953229914875310117979342190230383055114812465494669323433487655452899839551575655414327849320305881324357788568383232477606428034505823548900931828418536154195704374195775271994432577184919535035658407617020620298071963691991222244004495693225584326728661428233561871632382840245425113683405451924181058116311458168913361711628328057946618177252681396987429336348149391816090182985675110859819957240294058595196928084489998315682683505144485796030900247221517798957449310174755334259929907098393204584576533556269016448581957556338142249528402101524617196046452826059998014711891132308607609976625896214023806445064147016793552977502141627230250304296347304684559414132756033623429300069637683184443471292753653628699536072959854054308574229629735127298214019372213678418563951623832399132292488095375039152562805874558781477661520774932545660031185789493060756770987937791042858101964585594849591677583702330304613607365391279983524739406102262834016447265931171025127951631623985082109728715811617647289783388060275434958032617296439378607119380951902213762580983726819531924122830564500948133308180198184111344758645389333182706996927841356105319346522380125797776925986458499646806584005674946019516017028243942254015986750537742119156516796751455952451123439159674163980599262023183449286373524140991876935332698914361889299608323453846759559642418101180769073609560651509489488003651986421957798866710869827273149088983446048176537196245976855266257367279235337732203610710365787921532658387558440136828400491924603465666454066909378588920556794986452059551922473444762562426601932229625419851231838575529170967511242132313208451587624587776757120202503302896796224078229366089224277419430493438412824349915649736613805816919275084596788708036806801350086243944151567658019458878616461304152305618937050837895013962277944460144577713271870347893824196914917832895423465503423716543920246601470812711651217668147183199019158410507975823170415138521587851505710039183364750998448435781780406100312267730017069907033921085166277023295070291229855779595346110633030754064128128976852667454385613764682542358554778228771056940929056754506953893232193980351893727636524561385273955127893432714088460164815473149253065250188662583723919653766711402842135116745068093484211013636437525595543036754304179048539509145554291086566391524322994068758329695943543629945099143971730910104046196380998823002244450357228808402712909437121182189828083624790609307118435090342074330670268761231368370204971171931242461689692348569861271941706834151452538034572866868803157109184294083931962889085844959771288873823241599990429617710192377042192262821244638896733603837028433704374589471413142954103990677578064100593626939882416513529615795046840944870401691203244841505546672468896032866888406410195675161490528163617024359440362732281225319842637733420961329793643076204338222971936717625130233760775749157874776995586084406815707953935166673509216541717683439884930344904044960012657549426286523526188219684237094012139869626595743481524344000408707369704511692685019105288506158114894246556841196294123781890751533687572032929982326280545613229714122484467277685469136047172936908540318581772490297273512395933987063036564288822001765232581293687479993379800737786641255553483499236668763344589156320923015230066865529763757508191748151778365461029886562292622336816441577256688189230596608479791919194753977524446471889196759010765464379137300362664377811501845405496595661090079912642825366539173115304101416730985190179982790862526765691979274082902128374002260279279644429403755408714693806446330690705426123457147776747457862610567178418754519799743327145154845717673719720009298399778113983176388213474238103111642493041707198296855282366447438689339292767634932315734921255120444330260875520109016731805005803662873138867610307878769880824756087529690522731789725669885991954399851905927933497950125896282433213249125077689161250586359808471805567823475503291275904054960545179098262638337334151067951846185262694797071193151991462835809291108919337300377906404719978035340869711398322350348606151547671057938758615721879209177902000398919774025935259170180736701147012760808847732322215638519905433779566001364186917113897333328939859172516495506391382742578241280546877712448277189854633620622395979666304292348947596375249866953403683451180002928946547340071239106027557570942365431451497919135805686083531498870621939281636257766852277546773693590240534628194317429798404933435397711614589460577638553317329844686048489865893162731686993978802367101089913491333610108981937879539342641269974852092259465564609115907844140519652843436677419537481513347371039861274226446821922196320202215339904844249124604154316192121683753151905059598938789519603443560242529636444375689018920055478380824812449972321878690837497735573819635700314561491802217531809250941898039948005283750785752538597918151226510904799885384861996253296588766503585507434944380770297751391402549461500106769964089702829559406176309066317374572007749412932334351231023521492635979903363152660607908270408688640401848858376828355197169032542871982466661641281217354908615050309210557468231254548041065130266064224468346111477069151262613728907848167057415146999069084189529769178094226867327646182257708895991143790155423643222110734003254217127115193385541413362247417650467210427401510217191580396339593342742430950602549369853574713288203645591913861046180892999229195865843617758500009387346694673591223540349729293945980040669310438027022091577134574704024139328033269613513214703028268033087519710721584188842701012115152830372371186017090126483417914670686049658091091435057915483292744123079290859105819656321760509892200642991740682286934920550907462082727110446871719909982532063745189198821655672098341797721579354004337342699975296105717407207416879178698094143399780022203540686660700691607494699068455178005711225643535361862054179027944077370547698843234507291063642011179237777434897010671059453856058215540796647458277054371853565089414062551987538907069608224293824970485547986438306318314153161716868701949864502658033397024443444172562174820363366403725874204270920866819884711548739475724440739965951440564236847489742366843926510939569246823572329118460238070257888011640744925147321216581658027298871466955727592926262095907533728113981912483262326305818974867401958090835527905593056753213134055414628356405007432729336817418886796756531905086181031294019691896428909472658331434063461458464133676207745770568305878734775596760862683562777557136885668672997059033628185733456597319248592125782028113142571147012377080806245870773692300119280114927412045310932404519881822659447730996593038584500538948780618614901378786536867686787542857949733182480441939659094006491067088153609399961681445327611503950185101184886843666748005507521511925300465116319762237002344144470664963854479711163641948034655936782569105970584740095506818329995295205123663371359825505761817364402971737440046995357657916562840313614453915778802592315524488990411828886409153627927449542994832335767261708073780078184118578426350237069429654145742981255315267879790721483480923159759651371476353910244432571424993229713686874340755299053088682354778337281843431247449386370648722588911507689005266247047020484749414135600852695405999369791646113222400392495108042662708124569793322323435456110965281624524841519969776094241323313896980570410097874675644591018356939457799849893153274880265092083149900389472875003634521839787404541975508044006007480203422576428655858114999753740750935693615042967467630598886333868960175425861514502350044651997898752130848218935337108105114314347528412044828179827909584632695351755270228942824435323124305363324311602168869282714521918155776292250491179464152203620285480977536086796924303468362398850874273135136306268138191988187389310009283218357999641167879629075180222260115944712347435344397349897927698922543926556898825331034407438722529448752260156561421844527666822868069217226012932381284552982456547923832813489183894579590779600207689434093039696698640103559699959886237577238459063396725942299079903518955592978392125780218961360143411654265507829110595570673616290072254334438641628592935325286359877264371980908779728387294498456314824978331690098052871656853910091238692628372275326201133235874582649368730640793238038663105071656275493395410793753914601191364689222615279478696825926283711400172448753632098940074181016735016532762717132338716365618652473043199695042842498334421127529433881255560609829491629436010559343635222337083896612828656803199371486992930307758034214523343451829418328387433626769358072495176693441648411156775728889689486940448170298690634198257234221593417024502839954786371018007772537323457127089114769312721384039368189875229208820349255141073868562027774569156874956140472025014087325641254966392857790646000600767994746569278686594022075114597541151734363920467689357718893698054708460138862789964361091131494393530562137375855935811811289584559555377304358783580202871433508611175563564837943518376703077720184976353006185299884416524970125994509256148156479044134204217189110171012045646312684123709804446490790368985418938801415087071151465056144786340668974367463317374119453458582522855860332909530808200727417097823786447367154514061896006003965344111410103196755453365091248140073639189641594155805190974156538716361627678277630961141173079389620785001036907731508369657696716974005860896854712200646540880795934226413904208047348040640548809216327999469413415946581398160826502371895331745019422946104885892197418870160949180056029569811261335901177375337359243266246124730028833632099718101028846309406000455885526828330005904755581164579715562915439382358755656061802478086426712267590781235031522237881641378756258443478399656218402025196454877171971304109826243269778109642433301876819205917317719822292933841558186756060204318359308307395750285613495874098728356519976653910241692550301719145848190536266077389577930542984628703736980699992428243195318824175056963397482660034903366763525988749533291618206947078323225319334807902781125478295839621824330900784541317050808476776144121161778609175991079329607115285577161047052349105296922846478724992335676386288827114054721196173133869593831185327690647511922744490132723880032566707289336061655333827416502984173588545594749770484868164325735578582800902671216060643088049519299325757210953518095076118840069943874048416670747616250311003512456546492119417890573807547738367742274137427000139248136945506867234077410624908549099234088952504482859429687668213254204586715752758896991224998682062048188051540457681831276386860244527284867925995785903839058534243822406185124775583925759975749814744350984090153171495257062161102083097393119457642217204248157174452020009620024073701826265352548499667464036393966603772088858475395686027124777477025761574607843934548042598066809905171516501642553569495902522249769554991272870935683698709015583375621939081442019369415704101459712477439930486536020685712678184136765848497201460794656426544864579358479244499285045029747817347821025554373832120928723490499565285283706051076555904955766165166799549448161500404837120653518276098443474922897742878141243986124093055007090484512557880760121566763274410790406045042473657220155452062731373355834680118604728755221132902226279293810493320068583892186856391907771214341684596720507341936524937694994067205292301883208090271065800158832861465525168727867365352821524959604972663751112681655632591842417232122806495891404354318642300489703224480849712231619542366016736815748759246101039130852868534521680277181543231212350439984582939491036254476142830738150748939284563234801511534994218299727828660901741066715198174886761384080506449503642605544509155224512650226801929250206661867553383149947979579014603126829379205232206610650164095914902473967072937463248513308559520320965248940555606736430254137738547123776283053211057908780378033939532243185860113152905577902358367313108008262598970326653898217357959594049303043758432032777227974394572924521908710659844703870800780775863614740975454654707962604885885600687149269575223077813684311031954992500867127144628814086249094194895670170743117884806408385190363535376991295579811934833119582777426599942579945704283077338309930645946733655475614030417243338303327059062196617888116537272605744877165654276981315049806741983083470114258360297801997776453233798481141122198361271532241800205640661584635488064891275491029273670045324977713628557048860750481605986671860146164082523550673258183327203359021572057938387219593028177172016622182943841200423057859707198455119776961901522673237948833382882697396632290290067869344761506444973817471816044828687289715610564691498175561864887992498837104866637521567084342643116469328255696012394485457001790059282215168622074611528804280673277312503256433606938445398757514140624251119463249300910498476835727554021073829194738014488803194770276850818404609967450438154523495148405713980293550826227617408979896504056659510476658795934024320794815771456467074591002460599227407139034462927065081880530391376752251087276469373600047469025510879619387387268967557515518394632121982130277213789595061682783752152432689481934987146564685335551996024776369522605300156813037282874197292384196846186560261390473935252572942977310030148479352320318719677539090009442260309295925760581450203421341471375047167699774140267265506104823065361958527671656886463962859731911835916585454709853047052978429493795105332308468040547383551909314131483256119594566514388872536065408919241878481415181964824519993704440001064247252384765418872910551963510700026672988566795356735254351460602782103835648498286293585033331551070716719796762356849978676028891956015575805900866129515691209014916901648292902271097174206777768313441112248049667623703453582017130902778329170342632447826188412703802837444450437500263092891858695156505878610106169715089809057279239140510353612476470076211028403159262938176965874853123444362671758371738845678070633913269741477009672594759434199923875873770060933380022972241206705865754211945753055247416493629874158902789664506646173952608919042511414871522708783881145767316445027120321171990336880014266185067639516825487910828229441936802163539158299502445980548087895995553041817306789669064690287303030956931325795779314655790245581310849496231966079696248580650568968389983426762374384718363719480034476197484437763478383802960404318144814127555243298832114218115901567892915615893435263736074958053838298904246870510760325575939277605134842691718488395746091058838684080144824045255214776736427252097443044007043104986567577307320468146124474696776975459006340242873509509630479632711864711625066030217377792336044540140558628951965842203637771204623622732325217831768616140248721699248395221253710763840643439888342997538285236362872084593524423210791014082006871402990121620965960184543161497578206620279514733284395372524470490487857047719730858250609588076340980657965827309751614739013295249397765005218225069276417873126519283181049414317112472013362159091169142065413271281383079626311163790737219963734525265579178200035049415771723616172290420633254347629576975546998145316376174474055735275517691933649661158537311579434643356105279320159482199911280860845408392397489678914470023446704480019748436108812106753493788463670542510059845011439472494286883986618120909401615535887194464657014123396977559600089081849805800694398378029553073042347823020564855314425690770468273711090868672656831061139425881193087189862070390916003319542496705824003152366888228981686156537775495518617072923334388991403848934137508188581859788474576781197799138950175100718802213766216764448749066897974603402017169329716367150219652845128428273497509926299064554048281841843288925998640869039729157860186341351361445184979071223465234553568710886949895753750025879252515049054299186432235490643834697366629852095666933652610537966409623476254524057573160651702963577842926200304522273538170102355960733505188001433607141761605340705990767635567995820940174500495970983224484138639463057135611156600202790257933220183053102196322683681950279259633041069629638575165802543874110938941358566008942105390903596375158109908178637723494397010456685723575759855252930528481857363777319767973927807938053271191712493173341393066552241225503583293685275533440236743244018331929291532731682726663523895015795499526104746405342658586082421671863812652480655327259937653684987488795457253371370581723692462916930792327331660075351461376736880777494617114471532015914386057499393139449033991096338781606007143259984099531277089716135536074582833233266143383270351035138906996276462616681956126965098304223921663361480795659595614778452668114809874246685831976389558468457039287979409986531458701296670495250874616846540400138851414882740879632002338942318167052718536084611601545689526888160606348539611233072174595596977101129883509123546337914660673860015840484310057896481355825148059058244157226492851476227060614374795464719285017285174435924728000131011307832632751797986588769704109543272978548767379687066098416072028888678012202726282870663861708219015968098859747628111009702441208391465804633089208143268633634418596916617053841917610162691652870808060619921621054560808151594031008465326943227042890155062752341890367696758904520115889767694834077147309206955113699932036237063400957726462296039505841191576133931938908214229796277649447499526460913999508144579602710137123931340853678843492849844766694133759681916189681517549278847417430865853428165131683022371564659146219266267087173352125033213914861854455708555501660573904245548549130532457601206349436394731610244421321462820651094153757649416904660834878536298421487319600339198508084218573827282129746331006584375902293720875003689505650969860625202208755504074090367756388951988429428845531508372045063654898248093383957487199240026121834777281235369573031170366747513084935470205338596270451783242808505519065589873849492047895721932604879123602274609613956653281423584268645111895658598671665185198106022748628021894372386865823964355775419306399014220069148941876206405687973161663468819901760239100738297725186432580398581911726760078144284675280605998341101797016925205448448213206651030809135875428064996162645308202578783090935328794392175111250103392587116371521174613335359882273353587482407954103066653120665540443515279730834559808042085869411220458920579189873037085372826294122672543988368487797627572362081065003230742331103617228586958437208515388180383852848477752377835800132994446413678357552991478174461780059758564581606661742471475641598946658974579806584628118075889220811216434523230944942469427837814913767132952149930848202790061548927919543737279004093983327767783469318733993912570576843135466200998438294061678167270834330795313455326978095384618076799262205521946643039376811800732251329892566038025656628636759078239001931517802837653625127992784187472085252664924979943564748098619527850509217290717387093508309769213227934259953739070105272762519567490907162330042956150324880346710909957389354834670023941197939079248532261589737764792727056723632244819436085986409372167930159041566037652014464225200091795121953404866348028924828746145774034897052491683684941464410837744356948234951602392579738837564645272003790283968349568183314940014848119142148884871472148256591591348521152570075196206839544155102021727917659855213426801500278793277433622620666396807437406566323439125493019015505319870497486774263570347314914866956586069722512263891525701694577681864170789425565675124065290048021118128286349391357147081433880527562810439426119142760020187450976798180526637637408040324697460700993737048085762188431632835305266552920556411744536516665332045053874580082076695215717872743540793757199938321561279565100785752066259730766907996186323298329775436977625579893110703434989112444930426067892693930213401260518350097019480902862893283820273713564509797528176547586381617481912695856688007854141022501600552170280693321844423131386800538816307424941185678317342363547036461251915939309282998290355408392265180045891063653995117436131717694395329528003665041581299744462598251554713573650971929413409668942350386169994815273577911515452191318098516044235894679216683507170632258106778697432163736096412609300184743591376733888142527286140954194681602508527124114858193346229387858661823940270012929295753809951659239227745361588356536083133452742891574670811399196382184104433666476909002242885171066587465355380980862840251969842701511228582647445073434889460685790253399556788887992769193878057288025094119633024041707214633280260975425418548025298186818128266590503540433988023782075842751261396398513461824350130411783004116421301381164340086160163037497031275679581164412762611079248009832327300506225957075468755485970608430684478687854530759834926110342631351924909766576228959638070748717294097817099822905451833732796032001975057534120475382795143641495682117184970344705903555972856864840475595100343935559378674678221964146078571479098713085235763932797366831936646536566923499659659014151119351722103463572297923224592303182215391024654506393163486036787100775719663448380883451851556082292348786143436829627172611707643228469821070240817711856090060402646411634734546085693606862765883313983692075356957511832340918334214989045971894426134738773525178220791860602778167390029740701049618786499546019581259947709716441595414365290814441488150516646501060090095950846040229862505602075181969059295349437242347972207994832067393627108203976317650185023286287232371679266389316442816661531287170981312681628611403487774098978879495940219376820401310776760558049694587082609812035558472200359246873964436221686671595962324077207190514343070412494047297144172393438948093175840737008892875984569071981632265969450905572318712028380469179942898103256007229555348956181637475558479768500608656172526033472545941322844271029899153841780499372911023508231468747798737161122184223631755753255504693074228534075957891900311773534336013774136478551797309647635901880839878562160060214464034711616134390847371287987503145703343115986103408411478430897666204430634534248839284431767094919969316093847362541492245929391375705842548585916019378347456076793215415648925333109692893970282790962514862051089964215157396976319126817519649959883422094620786610238680239362839617038021180192225139286063101292513893959099605692336034646721148186585343896009442617983715416432365197353596874170661048759633256860505756203054125679775465844251668069387603695457078373311556377845680046971030618497260759256214311808823456070652361839271869355238074767109295596946190966906275637714824102208812815963142953595042175425503930083737755646284522443263137073805905869424036108225114011087076806747858854947349778751280792489146155706006205389494283973836191878739525488753184087513540317578593719330468569009491858296472260822422426993083452094900124210219535445197273674268591332287224807359427835623236205618298949291506301739760257903740818773789898423984640719745857993205269445669698034436183764747145485744905238473361200511009909921714604301525585969255013912970440457527419123683192118296239924259145572374293582672078011264443216220352465194874873790126004685863292159512423603104321156331333819418319457938212822989951917749830412771908968596060034470791454120131365239092712287890573576648570928711025854002856509792924833298504379622533089019910017208352011706489855712246459350547503967502003151664192526584715265283530588162558540737926451496201314642671952726287792328654579180777812373301514993914505188185630146203290508847364690675337943884508264254186800321493559224209993121665823125002263607427743719571319610123834397146467841571418732834534832727571333766042281407626799987336618960010696613270640606531195845956021053513280196070239566454420508181074192553758337782854196139619618477983675070320203183974154681041926127831244432045662006461953371067418733135236243882833119380817352401875318545500952145338271250658264705399957669359801223326720328716274014275018835290180808095981051940771259819283312226358399203696928123530287759337369511579001670981351440949164511871685267701286649393091402699811578732509843372343707051804486810790065741411013729879653101102673172379788680616085927357485989810573383983892559233534903940410278880519720040408225125757233226810275492122386461607040794498526752235226340518748260830475227614151724676868518506267133183399986726706495388754325045186338524103773693491326518527796241455586777026788539494154440302796562697283443053845677074590545376772490918081381254160752580929917837701610978480820613575834915824599542237488276797516503785142028406042641437379585140378866275613275760684398196660080925640520097492180830510418454420369325267915495091181729108282795802634056824511256369980917234608169081581104320333053554422946847564487902454737868734081178203954461088702517856428248707776190834941892774071849823189543566912363398928927577128884382127293134013416667834508383072261918988710864455728515345888843704422587432948106830073782356812102192135719392201387952861727685093212935497327215618303952666443110804762198167989760102616244595295951925448019738654223167388018275509864590742062363098807484758386327653464275487614492702132452168188113500251304138295799859446332130322485402909172287850977377936299922050489485603010451195804622955058241781532710394008414908493643883792990145978594403513292023680033252151830454821937267303438200328612695657539478798525391041746138383097093472986891928817053580274083782375192100789291160583495531091244198525225466577209072708405801537317072953098412909161315089620725796628521342566404254648747043572221880776114817010953561847366994449422974829195933128399457680268004169073726592060882593737487553047771836908361534395273459808500039767194924310969809644783607146314153749103869349328059948235768582541951992543819483075370779566675445824258893905072555973623567892759267337679785266239048183110442608854768264425317423573769510439230257886908756720932816457025265030493885222977527601913341970716115763123267900386205568340239401148656691952072911496219860040071245167575302482824052553406252541967659369870990928539960657967134490120259858528014028620401341504693283091914844783143682648936482226670620781273801559149765205789758335520341562344215320036887474612511106588709432173151870087845839858684081665175231963620018090264961568802642463266330390771322992290759027587810874673949118287015446378872844768667535273139523194093882444407279519405411432230762396035943103391843102326602113718849607937894551564713792550131992248752948718428948542547567600295166086511294820398006409525467986961728184115219881980650988820108855669825143741726652030494385790150689974225702700225805811600767549106076198148038469594440366544440790347067550536098982737601551782099708093270179166358601212512544817920437169504363420343518006412911109002437684980213859463168856294153741455270882701500582209085943857714489256169629877180278628802543148091413460162559939905618532600537020860661522943593373477455179680716024277211877014397292958566730017568730847556419033086254655433709870260375352570933374259827160932553624749579658268441031871976197129534786634801209261974315554481375987159513265657965368944564719198313092280829598966167252473033457697902254340250714224817375647505978297947250219241128459789572462659354881789746170227279394369996003457872005741511109977112481504144035842589247757616673805942045550380957694132790291736640298656781045959621769486974608822509685123239442312555497421143094137538528250151599104978430548016627338285317083738332759433945665161977819383211337575140944211617302946719954041357453570953727492789720880543450771398114948162057356162065297309343894382233272651622291830193136161737637675516194201744831819074119213837228056993650140458620310845620923702690305947010593251896959619969880421432053558949950174696910753552951620004878680651436766838263608964501532064546956916653798515585824434544210203281190086693858923055363242181225998874059022144046059057795068391543732521061522244242537491099010184933029715069006134075919509926798719322804983018209527350824476528610848433307606514053269380765345780924390210730847020118321351856657080129243901240464017436339445228320369026385150712318353433310933937326756003879168671148032243258120455956820174165892029543472088153066409919651872813681080744901376034507148359596813451688360364125216101204585407553652802363051079317107976870347266009524855419592839671420537753062481170261536455113962050960674633715238727990763449403638126423849500170754771295303439095813052097630776614547948139706793869329335550115540741733982378619255143829868351010893356554727691332060443284441694189637187747433527772317011338298328576566766689607897102021593096973194664299736543096006480673034201050946451275497135571059443221897433491074602343591402501604982540657384756654492250664854457998735782765550426711267752234488838785720235240219181154805858467092055785896472787870319362208174668168522614720878455703992322305821669434817497564296423995885350428079966720984925701835650318303388454567731105266523251327586643811675267368868910860765456506468284754567289862070188561029220784908160089832463351036588662583312893339383898368292681398877518264458805667653288449748539666155785679944628792277994212059088075420724822562892396185174800454380299141858918567464104538077647396586054286819622472916116764754029044438863662978898148264632700733563601404619856217904399307262329678811225657904859865535077962457868245408262302934302892276360487910510606820571204063296843590510133289016656421273258621551941099587922949985901284413538317306726019558294217766311482470694239488189339149637562796238939108798136650052767734264113203310405023124480004373332026904180947434743776340071861277234682536960135969572375540340774893788061559168293676248947583627273703823267010822215985965115263380515734757599652519816502801724560234736689427336246801250579002253214142176405752743536194598732557112097876153896319521945526233391494650161948794284515347798913944184091689896716062443471906173696575760546436561281912579646157409783828022586906283166488959172751562099183696260918939442037397047898782967639682229996992344710967310730273988079970540409182464244435573673536637597018703086197046313588676892650016718342002492572753197846248903811691652575787186215180554360997377205557714289520948274418019285874840778202565762536949680868242483598226626337847501721625965491711485272401528420917288490710280867502308801157720494101604015384588563875259675172905504805810246289644423817390297214511305083639903836142675567640607044748257790362823897715195789439240304183389771639174226194165650208709307180617610244178921718369009251926133376793031351291549094843281179170094277292659625169292410541412363651027102414186441073552809846389094917714072625195057752825484936303761935175827566620568455588751951223664573786275934975647071640820948654403329931624061493774095581107428101179673353429229958693068558178329600102061269423918895724804779741801997060488973452613569395666561457549718246540062572183375680846098969881605134585589163091184611891651723506872096112548105895378757986985875996490743918063699109954652486142727695626966281741120291644819142797192649708157181897805724757036437143444618981148293176189556461458040454762510718395692702359875779707187362173069696443502235366003415702828594423931465801147247087538958466498591543336564715007834548186948391949992500924574352009351593011521823187930110342701765762523249121329867976438470762111783440145392124462442988771418965983352882649351389203688819829601056030834852491686171407253019985560707051567308933676399761312620693917974767698270531788815557050555857709383461136366345862418357731490252077105186396680720503655363691557245183134790775969073528071180741197399195857219817907828035038417059882498767484431160189058795847556252805348603848119554901262539794623355015627233326696241129985352116212002125147041857175020608202695038427849038021700700640654265918474221605030016469065275894200848711708406509873222312218298333586883005300575891553380491124898175374851215876413318477634630330012222986889014296636423697708086128932734749371839425095147117303224576520480253739010591261444743886295868491027499895952886420043567567244005696318784364013010325755924799770822754898886966191408212173095736670438433313426706848580915944759175408677512065193699194956243351446625716981106969716351518052883684560208820206080132747475727851554318502564470201495209432107468454142052888608505305539479399291855152266601980271465676094466004733420575892804762641564977763634751198628465547831800731367174332270012210678734285662775919539351497210597597140652809767493152182749009358572053583692425547795557581279097978395585315505179528983218531676705863155165713816952308375380530511035080427504108360295760761264147667636386792157144450585981862756789536159725089663945695170450547541107026427943025101989138507464485557346208419887817136813567809645707617454574027684534784465252253232439018092414830166692936279675464989138447594437616414438376093246274827197899253870274657226804978301661799953043728706321066145289024108818600305942070213892391287931621262461853970925221652171827205887120048354842363682421818141638273340501917581252023697247705542908588487261651861243078264682402833370062375728389791374557388647554305308169477897316853205788004790805705297861483247975231273383937020872268078252029263773168223352594382439846414942522165621548387069510235638148139188552099738030668370852343442123877319900111478287250786842707076477638250271075173996021472128657982955903312358908060930903197518420235515622661521392596364013740538231603829997273108328956571292636559287811479484553726533232101046979361430017578714135097881709981931188856634373783602174986718741808213884512759431299045131470462847808986676341281945082942131410940402003175896469082551233583151562609023929158426166180019746805489405136424283586555361859793117312253992972297133729972072459934941843093037646503948510222893343600383775271511534707408725208135997317344160852869460247962755672403767350888608325361711387234175293144003847145295366305481601343621740731233217085989435946032992344622707141873794040215116518392868644166828634785134700524033953687505916460398471390456644015557065013300914363810539591322378280818134285770842206585723386185384468887419677682081638128314975187963619247975897130176511189592062688495525707836150345480739905787729494149639619322878203272130080660023559573477203952109041009729936674088649189273737791371662312800873019596906754496788713918756994348622362075534126743742845108629074131528520736446887830261021387013634446938895545426965317482509550405221852060751339737648893619552482357416402778198374001884165492755065245551429085731411661000403682284331295081795317357743125545513212638611135337105893443724227029307423617700856547042450806480468591052518955807259202466537100656602717440946236643838657648706636014045757082241135565179763365621023791020044732743465259212684822295476290920978653476892588439047738206260591115753614696679800981436975140988613669713815164357737074759695722810312900795991683263624275405618304878914203203065536864153508701533106414239384779347746934033250750864616173371633238835891828031891915366956084638478169850994159160079807392794223035799924537368286503923071474037773335214120774736643107575724799876694755998457224091940498417902647171821491875990096808666485261122406483805534343193562222999962174333378581844098144638539764748186290471623620694442708689836196725136260205051159017920526739132963524646295755025440815874105694803225182620000927164594754253297114211949879666825415709294744838330785051082185887013924609965310905982644840187054870670483248002069972127116445536358736526751084397664728768734051697200024251633575645448948662913585929027044782250318528253846298584108599476403190016202276688749032213124113621847617469416628025698658066938423774410661898174448638962728886942133284891508140605759152629798110196190616977788777200241898975528089480604204604721203075712780828098516984963417425099296178630412100434117088956904056133691169953892838150115073104657602361467802615609881539034015686519206094306459789498397959911660042731149383657201940973834941064972640627701969125662331410026368607726644231131613505597419441646203777177582777614034164699137007132019625520956989851375489794464994536431818343353634993362690248760869796993359092005708940902424346165193251480286191510157439728052207351235927261204207383429792557081702525421003827273568930877213531235505186030310698504182443424663198991274637925141099445562369483635345329264806062162688981832548284241670966038473318678098596674599352966446934173784342186069032278874890788405838785372978666317259257348900199465591708409991334056353113128466037374602011056233070744329690584154417577007045811887739877599273332092714017541766097784407098858378260883341869274464329594014368892665736821432722196151290585710757897824336925737103599015956958491413299914194890893751865407325570942664125410730961222264094016555309795817845420646711985218088681089438234352801006241429158357002947767791543110779730554438766909490702469976092078663668298597861095381161119727515274655920709825063675375607393420194508950652594098701873829605281679698483541244369380765059909561478023434017596773365020419773858692857812322060966229194516301297637616087736137265882145834187050934058272380017860726536970328383171481341332355678319065709365138725096696488015330347270895117246317584739917297775114932798634547211669858029000441279525058022309878950410087791622723609606732555845374318815542276965515557026134939218233547167458676537555583960014893905063005568602648453299385653373916534883632128202598803713066988103473189026998979161571901412320206713512800681427298315951628518205309017204606826561672789375785192126600648222529119774880558113524036307497209856706535591958817077001220998959575845010856933016953902371196021335735895113140155287623049910574520141103530481636225572524972998504338303634148501626439013274416646557860567215415815660631977216063431988696874447811908350507129503604570937316215896345024083115470525479484258096185975665914578724087977230670782796483561668651531623649404345822631084825300696478656285628249249201695435238445133909277742915213947359293746072434799321147710743164361303180379255432421372440073280562695921985028583587054177226584507320991479018071178653676886153935705327789611813431266822876755369162598410728067157543701887371515292684154261649701307931853899369382997849833126581488096340591369049433173992145703409334323529545658690762316184596536759491270356174175609964586937354813424817533333978704145989147556203840562219954428275635141920991287142152303029791622675303676622736130685305066362237292212179393842469901194934032239467959124922101871753635247976187658695773426091395089997512289456884044834154621753168745092704011735961263574655153301975024074115184031568538798644008617899802910492429612834776134017956970052241861260783489864992424975677575934782714525501878318311381446428289926247457031928820303755012578336276024150108053592843910148293455597931001930145171680121801991153867845831381692357103045270296901603316398067897514183408177284636312713664818686415270799866325743808981128901069698574475061402980819499235956340701892781466525662680359251908853720167750381138541762904315076046935466016866072066618228147895223018876627108394409964769832738885440540767456254858966584875224384509563019883086950478383439912552547206599882842840853133374344764807633490061243176973727968716148324068420524655261008745747197389228951389315424072353565851743679892401109705888139405983117238576249680008232516959459092314593276699096516773929736167395401478038160946382179024414290743628246825564602140939006150057520348140574162155059516972182754181760560936172793489777163985013107585978753536367546799816889437315098707691437138412710095806123441987881932755842960471783762840460515185876161601572991044230486035774162902753831536215568247812012990239043147685470043166391563778367968865089513568699730471499522164216564603381170943755644858918461718828063210141162335482226081552868017143080900519744703634766467802694214846711835599989056435947463352069524978386199793920692414883177851617540072132266230440467138374434905856841732533789353661623523998664819073719946607030587145711584697828789198878433760743978183103770943858176566440275174808281017272041352827424381864518629705198898670886731657781988173890979737232777545429107908562438471294360193905954136618050836080104820340301094534769547392709653424339941548027322330902386583365955957841686892030240402999624822148940302251124209551652030416686689283671940347413688826948761224199173502939337705110929971949873430135510980710683898549869461839789382111621795997699387042245964597432094442225348625206619944487352763520479988746431356683086726156603303767987302583753827575394083562281159490101757448055716414787516935839204512449312296318749351437432097038044843154933177598404134268631254501423776412025205790608302921830285439935907991116177641488668454636533724649872047318938306777217957178232213577224464593774180099673795506584302016146607275159900401237630008791409132499956452299674798490710550069517754557352692807787941751069462562179363984682956569956055090938664111128430504723524870809395935777057749341629344873953812768747085722127747464539947412638588834314548548720682762834205208956321048542608093653881455274382849068356385135600342587865871548329282263850238634120678757823837495477720572687977642483324280245698154671086470278249629032010737104409700025114783051315809564725153078328540597575208248539658243981081017225845025013805435182137266648679942889119193482107019031655195605705799495390373698645184317223310075078827765453393170401674934331510713552211875025613113278732071772975369088781226022830351812154840420895442376341087233285161248976847827368639551995252216039317298686965600690028398091760389999654493882923922386017041405831787594633354552615045280405101949365709845618762823674718138006644332966810899075816643604677642646761234710009079188682804813185108864357887001220119507291995283605232899361892928460965128548230393746052382722112464078694085447912583182021578491686342876059546957603581493484374072009024033574965522216035865409175118966510726492519874410098141416736342198034224714045367657416583306466847723384546471440982285128852651916885112759613798105697735114186276529071618495292403405440924729358000294707559348552146244449646532829155318097456053760238953294612224416415038562631062956163873603385493109062004426298990998056372698757022953795514825848565457839060667442518982637746279625472562863331171021814520151694706021768153981299973961346807756881581500108873470511446949973987245011230517419721023970097380198069315254916469893378647691975735971418707905738069530502018477153510095303416967969437780332986461051233484992322381151333187060103725965820368636593612163805577154824037222615603761341035123034650552744538926713606344527066097366285300017350448426164634567974995524993286076914164498294756027662287704211291547225951882066638788841411616804654996494756025997000179718204143987448428210483014660267932283541678759598478426956645922516573234622622779003882727127547659698977663659776714558147572657583292347585465309782940978538470749998634862923389351955246990192536383360258434926484235899090731558308080316865074757082435598214067514092157493692574150355949173872865927139607911146515546062315147270284854758568300019561230406722637136284167162748574979552572283085859728091498666148455700315528626810071536213670336487600788578291355534096608732200962568997692939416305148989001470987142784887971983492441071607476781937746955164204560035011947691592330787051373190309330454831466645845064233144281150564152627076404171856334578565803439447124975435439012684646756061993671616091659017791366008166206459338334692699410012064581408471002691271303468004903527581507255942751425662802339098964563340125190182805242372363427622778790950056997046460586870858640468421885279070659007621867134672924457429935886515491238414454105485306946463463786060419970325172780038748200200310670589212964396063883409988853652598410364670678385827938832571735921807726093356852485293799815125381779975433894960817378213866991310089756330856613966350451180166702616340303904280272951077400673748730065668565743877749004096014855367100834173513651985282359676966556716347602087028924977035149507611657067337739547764920307582121445236128401246848433513789037307782274287209146062278152997447048042875739656159903558114038034737328288855246997506805120070509466345356518066125555422326547809164677729663582466080042112626141936919167251178370405914320848762690814769552298840444123800740009254841822110270607153709505289264480683048622575577789082677920562430049577499976515174995880541661209779979930408664962740070177429841862966834083929409105034827274851978278947175828721315846286890119642380120824118118703550284766805335755271079094214240512851651503890960737941037413330114258438674760070769241321355178797976527588100630449169220310906460824114653065993737729641371946848349136849309797281664612179220049867079679787319071288334612470287485470633794691691723785926730902593181341882007714428407229673736196683034982903068242615205534741384354020656641884436729765480979279453035369366966267349331814507386689406639131345983582464246721381581475329250502719194134972757756279081158427402543986910825155730199594528496305163550517919435290148402119910422375404528144107902637437400964020035046872892638169530211460127678434408484666640128350403478001696691200739101690255693200746117259363983593254529460469019687633850208469072616676274943006206369107001026116131209627260114795217968068708047673210658699264583870890514605745035373866750552244520865632508098228118221752640980898022067232103163062317995862467814078150390767519033885224529140654959148213116676711126974275054838599946373909415824264706994815894403778917769483095662362741397484925301548993940433672267383820380931300929978717220150796959191829374978038818633998556684418600108871767679014849191048454682877513655720967474457099220722432776034109885834515741895055625900536168771580054677987754632345125048231398787023138025528111777894862985648110271305924059045775830087760711946051185260901019947635728685483074376331105224531111757825698911769114537205000258750442828999670106825946536461978287529423688539672623488531438624515723882728534569490785119426217863135871411694093949977376743801031987519871047922797693151249048663736669990880939689517804535548999444449128782364529263324817605844494455585353552264939952399704280097708709974582152395170222991886856454981702916009441294975819054630702361196566679432386121879431197113987148602136294757302945872529954702712000346350583366965583749884880615968559075142398643911136664128887686199987627293896104445220709958623991412290671600913607709300852123873089904323557863022776544428014068344812204479400769998335960895990452725093331130454186059496693341248672321399611733781407397506536972617784354889815647735545715487194492942230481147152857021325491630952882896543394587820142332391749264213515547480928228803873740232672193137937104458195579043780209441897538408288716601920224417843249209038172810005863395907297666562825605338734586941206642054037767464721620569870363398701279190406947473386263357793415330231063525527465484079920251951842375793866397173278222156972265431105213523384868707078730084410126279195260725209130830557784326797100760323700914183000925841470972509164587896448405053504243299118859755818530402680406436336783254344784347581283474569040159597252544889572726554655291518946798660930726057798220556117815918773305613203641270454668206601337123086135010062786187906676196014681205298133581704607624835808676049247954243991783790060194472122617588144253934151786527180569924857941330631088289753695622680784182164145079269487029829256851968106046479129889146293693576448380245038099666326096513636354520383319749539295052869894827051098511941816039434369816051488164366701349204855874462776065006538970539187136477782991679286530230079709484023230312848390372360826547646851233176452378303391570958383566075898965951062685107464106133249412949256258560412326328487991201006606396306157080489482793725292293695307940574060742362407520505447765631046681630505936817234144167410230149544201079395317534180744789897024343337413376362698115357565863660266895510517150992583993608476783214027409992053970660263134204438368295737928372851261932070594043579702825497994578591354042591805247649536644401855165877478428629793125207405256681476408345383376271514110481586500522322934800697506460947396795842610510007337870028516639161460179291946688906441824826784041355025560487437822494232403396901957486601757414769203962756639894735473509470111175044843080172528227680202531326681883389466127585676060137480961129879617673055159035705067505141763602748574653779217280332578972473269771428732168798929992638886858331009438413294499234251123501459837697940086715825074707738963785098832348345113663575667994089871240574891356148414798465231238111268506029410316172541934758833439355929672873399784985310120643131292836973890563972836622840767868949010084162168408288539798789567845432164432404634440700512847559861325441524786994314419387692092087786850650163388816020964980619453504646765999784830453645923082589606251552788865473397599519066999356490776695662855034187443797273009589530821859205541485351411637385614937948791866926606500816778241726151959982556568414660508742753764572178005058928693807314352233770445566566894507531555030003858388865988988861098652619367260222491230224287940197839961227855329711036854125742848317591145941837967503225000057348293885055090368717967381599251119813222083562318482171314583541812579115544544651013281423568424411725720087401898823870837899052104942360981596073549325663616467580668893875233449491506842727400398835694544820768350944376356558485119341028868434864488889447620337031118822617303345817150513569449820534382262328330455487929622842221416489829262375588753091241870648011180963179702074261617772692598455764486342685358576966363751326608244231506971373536954674946492587066305265716804563043056118655077657625807786619120612013309966318455908588522916155369481701951411508946266835385052623761851604422605569538815257422404205876854047029323364439335626722450662276192049873627841356983819476871150013829530803590097226610765824939404166909578469218714471682859483943783173688323532110897814253145010485217207979400371706349838157208079013221773477365374849930440230993103830451874524297790346966784109422418521356757435035926704225444704211433330213031151047052892005082768702866003234846702074453068286253280410943247828174864737167941100531363613107215602335270627653848267371247106527620715893847603691820037875887649112520836116859623172072494514175213298069323636726301620616594321535823394062659696979605532901811309237208601763083253760643160161150837825533288854574878977203124699833488038778750240279479222828658527442728589347032647135885920111902402584516284589745516471504468239632818776905640949177871027786049662397787929899046429313240694555680399930244391367291040931286250784366665205401236700305016498387493870183868279675677200766018126928596236611041498060584191161281849970735133775128810876188130413728506714958274534194588791512001953304392735460112938447216919307144994781892088770968304795972703718727849830852624016030810155567918140404191575390795152702678865397989750827432710870589868815057490579160420116221194991318832386613920654934214768435877315194647593220634496628412783247538714929000844173997761099271819830179023801813797162703179913653707790252232032624742876104254325163003119362530795210183643325896420742942643148142884610939334463362749330014159538262333297199551427226678086807954949114367504385623545156920271282311025185133973408053722824306544955100691747548767343733995271807772687766270958142983280395030211054454046144157663174024170294737551302057244336035047616381799356689420953817965440941894273892456772246761508530272822996247137251268073304718502595132322161044520735541789913000628742455736134895166197548694357098645580998112911039726110450280494823608800832542814155335379098197905736684457787569786172546776675009133165482317500215064221808142087272386643576801027788889792888868822415782265352547950097843889269163648134846799966637913252363574015011501574245716221491639273626080942786641502659262225092518407047026271782685894981085418895599193079040383846171853068679241496931092423096426443079941144830188636872291324128389575947394731952692708276120291445007805398898170107238188468833796371235260609742079897973701125262646432165628992345686381061369417117642211604450743389824921841247316648212317036317848349812755868497808533702558464861959756443866876722181271470695400617405055843448234593908666519568815388180599753174246720020960131022309226773487304897269682945822534834123077783424141511209242882425572298991885546582485431456097602355545046405708528864425858092285319259423272737107141415698104162421017175097354911369279754399601925136409100496331333915155460044246358662195487956920395799414799648530994771944358144907270089089478447896255293098162313867690829103001803426550430265089622645125445740177617983900425474309020612280602925349560866452095081339676080445858532292041315481700333743391887799559133841919393793909987887754440433370182277475409017360652761213369464073096022255693872985950984494194213676702572343094237105078870189340462661720917400609077490220608738558174299800489980335758946399501350507745443000709087759587827199910313538626041403397554980237746336126217705675598482827955978798674357760472756572193953343909569877607190301321604051394618402044940452986350545709382712556064071515519564113715724439914187355572964494338142083443350698879011476474533111002579025944062869645344568999501873124699756403540758987300909581864432895113416545311023658128282542384473139689735815993067423771921672276088119226115856893926715435498595128430202415186053076894700074738143856880067191016506838995898771087597462381215258222318710537487851253172270182893586393943262352795025591389319465801061684391294517775159945943133258106050831491139953657710004085130346785007125954165271556545292537769655754775707812616814379946880976927081342377714936846702907891906501382076613840858072889832956737603815665753585692396773759384508207246015904341727258159354612535963689904533954234026405896156898279937136468885936911272047201665171594846584588492920199348930059907697771082447717477938573574701323793675981946310179841000785269816964982413950115194280296536012736509011538197317620610818206620761986912522671988413702057337339140519876686651119832283580464761658268717417029974145194612618348055751046591144800568036098221869860848709471143513329145296062888399621230384865419191709506271189231879470289760359587075142051794223657173308594603820155068145677434606239805178294955438939210936250411756767287324112346436607714454944163824868566113950455406192362163198631955359495877674002586153485721022461729716598864005270887572569986190864751353013766480870065937372149339335889731479937329809659476483055659533676370793003056449003971365643297556095449279279622526999736367477129009913295593196556411362934379244332412184586392076937976773329823818009523029269252309157100561888007206574965127068497130034719974166782925465337518670429204361847742507863505891290407942328536848968671666963119808589960723489611359569132339828267106578520736377835313356120713944848519394869235254014174225524022518234109821999741826611250764391556191515300974146751316193956960654218209174774312890826515646899350117737730167348341428142371069439093671416986712437101631934006756218573369333121940147769563730281351527848654470867917966738348171450096635776795739801315144682848389790139748401837233281477730867619067131340098088873578396780562497783541690870598954697643826389959905612113891717587250378952467582513731458853406831507774145582334750763544666433049482631607240613076410273039642598942185343582876382866192139871882856629513283664613475416289780611517008196347363421530324087762866966663168460416687235561351572582766190915857276853600112534585852614355629031270410101658980687442212729060148570668325461796481143733214219872677779963159295011710182270215968510224377833598168232921332867881946534940152285215512789371070005495180284272188157016368065373658679530412245656583442854678188251561193446403354631435609313366338995054026434358824716428482323978643522723982676945973947300328934860321709863444431736216768818265064105613211394916177188587454576193174016975572883562267360126217388177584193651896781551878230515901955522761455175024764853029725525011967492019847289119286257061775918309629832817957741668851180752797751104346383655352913358205842838724234745491053347111409639292149512394516625543867739121850712086560817660553778106049890489953471238083113875720800828847483321176229239057479607692421852960478255704238608877406029737148834962321586593925173228456751771300406587153496066271834073216175859604032728302736901076860769873291269507663788780589642420950915528146405228845540111771858970033748695491647004625309242986504778333431713775683573333091550352821103926901763204869851524790697317162592478991566165539947043714223527857199326144075021487833445886997908693438304320457666346980653992367410025430066603541589340083674418434841972277391770543662371875319052917506210925870221846514696741360177135165731249085615683893816271456628076483684871498524056382432338755790152832838113604924983071063728797490554521004533821320488717718107734755282890210448376608575136305247007979471126217566064092776871690733089653825280036316233740572301296267303171787298109686879463488213851208023305756151881577346953063870336409204415924105261916107498378304637254920307951146488064595303350645583425772191545716531638137088420276786069731661273298755966580759753046324272046581000369654629380463912149562163876516416397024588172140131302471530215851936282194683353910261545803398446238577124117929344664573276437639156938568958071023217517028258634810485363748513484562570413183778162885178365105142703476694780797170718171346244192670968293879141509098312230513614501342776737713930632238905335715265028559621213843290465409962317842498622843817283405687036361774387176505829823803438732283361618033314427247394829304355477961366602888933724497273189390598855461436567382444707527661324746691641647585922603341424081924449634593269510191957634995034150853694927955738759098046341491424750514158587043332129946715405618852893567322947919947673045933206652318563856585392617850739248146137776776195813507673617575337380953928370946086444776610116555144807555858518837140281410844810682314880261430224873636550001452489650067591897641236454507547707599225330489469035785861370752173785677222258479986843244735104848108259762899267421086639661126345896043654736630111657348970480467918883811218177058733397081135627349757100395768555765891519197214341060950114047660502253931370798353884122652346778701320131581068973738556588121455974367266346946337707183219250697889885545758099645300019356871215019764925405393109482333617722246712305731509897248248732767243384306812512611354563597495791974809972145440516844483082693410601968989486721344553094761445671229084185937213669819469913079544099379717211410468288164932718428391708127424631126695415271882410270653084217374367757586046230728724098101946220842399724893492617917269974705230673524568718777487867438874131801034970811605617208219909174271750878166961256024284762828555020053724841899457612945758649007813506438006681586819766572031379219213765278841424680845677609027086385511419895752377229846682216629508081735835797572590797724498029593214895197508545124802945196851983545820648316193812228852925028211982958091368851715599691305875766857030370508178879097929281576481174542447650743713642057957848529305559594508310817268289852185247354481770876833360297596772970915807175015178485355504676262519729198873689829610804111232599829562672269083558260974615674154185636217272665156067814454944631377190933428496276159156727521639268211887612375830265086086340350809300725454174401826786931192852786814209987755022829074678860580069950916292431348305233887462057107407196553627408470766634061130168957407277158463776134083924890456163275306224491727309324271819611572121843113497930871201801213447046072171161457915839444835141751229736340190632703795354189036785477054106856545015790305489198328440662765494841341897239967114044573702704274436734631308882553493195327595727205839286726994680459095264293468159074963258377002826541406756070487764404880608563633899807235676940982463871972293272949500461337738914995390422344443669221655425759068092307230185977246280276429765450392699531283240887219132936237271274599326922567421961756110119703980176192914858794794286612544696790445931573048289967859922699989159279796934938651548365605594264936008208405253010421387226124891376502594284017562277294388441600487889322800129028810329679234645220257152576491415593160268466696444560453843223851125282159400516550214075425529880297686407506879601171900623801803799240422801871862760383147274883726467939727020214104584151229928518703329637745658065481661314009752993392235767122595049528836483842836415969202925812324434522904266448178911962302046822605755156522429939585977450253894115197821131485564053172837641500028340619493953153769382119662930285351435102013752883480257012918706967310290126367980602400028546787048732870134068085010042759883923379995288541212848302020822089006224242157415835242813752833346909009520063954155102997868946139123090418362652547567731035007805301758003946026268802283211842048899713938670501559911136514036354326127978327490139409401854313992538268611769547042204604613725414555781122169021859566682717452125588787912194864110393837594583305321137580778599538105212212888615157353010748724050872463017509991885059664711526296991061387966621190262386848915252612915743312413255256920009033053051569285268699894282993372021510079523939211149299892225031778505934187566318731995251830363546956838002808089980651776026129313497061081405327369031215927024494666650873793699192944893214441470544930741787120882674900614792964980578595233459833181147595730473068210557753895834972881352818173345169161492077815476759040537443475142561645134860259508280525085263808427907289584328300577018900482095215800634459663541098698979730964536361287673847600295234400048305732235711270688051720544960991802807364862994795493302664567075072512586543894718576455456935894856446274278466869274079366367735957240625855446429433785224753093038136717801433881952924326799827685643510605939710633413462768825644726039363208812642832856226683179736886914430855739243996506065168432810119515617469610710847802822234715172516628588910561296477738098281826839389452069708251163809106077472313414695100547492011231727129974137753307864905094115979757824653129214248362677282291586563438753514021169079000754434939211386334934615435195126262857714584570575377378615364661208578214665420195139408885445644950780480154584936677830660099893845681747243743500009039770970422616881591145116761830208387064798301998609373873052380935062440171882738718749796697920648164000168895374130635814949511165096961012358743294039719182081199559524134084348687463854947334493774014282773774621148480425067378383171245497100058456913760172147234923713750189116077762616904496649863065694450995123131590865887197469288764120934610788051489236736778779914042433750017868333475799145348282538167070305653349581561884243799448821195656346601478572607979721620176881587113558147057559736124167204597104817026940842805162059544027047393880189686317498567314864412627773872839897839664673396415687257462563285570018389867763037193851630783976103863027593728384935440630183574704399746196198670960601762854157698984190348694287160249400466657020576655391546441124815649545715924376601828879433232513971296571935033662317488620651286426394715097810710676463444505880543847875184847808540385696393371867384213135921532541068244487485841889103263152006663146915514083692644679626256140158135504265397242969362838282140593265758005500492187432784023254119577549910318577114283633903080603852431362316160788984796753406910033243358633432730823651802613979257613736770028980947977041092289871733869240760563368142779578914861259242666022185985902385850459451754438553914061632806589111402305116259173814276438938172028458059499826360895735084346204987502645679176166781132669040114156771257067864986698111379566881246808698273434002606515552782793848266064424641651387200432370637108945696283737849106719131021928488680079952257140243517717553199567242645848176405225813309122463329743062704598335828272429090158435028388394435440137711656166828004782632116873075212540474285641457764316385936052792554917298654002534053419096901051222166991985852291032371635837425383557898241681970892547523562774423574291872999275013780571011856781333431855520957201305988885501507579286673821361055866209064405477449073253043944601884968744939906151538145620789603818528012641693000179485714636964981478144170482214245418246045177048713412155299456572306605994370682496383395218722121029703766635732258733003455613652459835113139900068698150171612727526683433151881331618870689940558125513292386107058650165953953823253496644240445515748820887526379146981837941862988504754821156485742769561914139074590545948654929633398831654096050259285881105484513091967155049405888737645913989623357880197383734561060479530939070006580965496173906951123275769944615799736552165788134277050355344726207796688071636114248077364447462962538759440794965495124544467021224870389087536224294283994401365975602271507222774489322908453316553914222841352248991591030911237419282377158058476731736568161035087696698064643466497572934149024786702321178832870712660911861443884734520407750525028825539539828484310482860676413268401930262127709982570664069663178323923325860709711512965010009058948176835007163150065324817143158587948839503841659933961878883034461109743612692312412545747122140250779907447005864011834677534047938817639633421481884182309568459329063078417220391032013580953679568923465073537775521054804384311083344959703458022831575727675295360407020943266155698305725142695762372241096078605697365758770969713952191189489382746847890017474432736185799488229567694807717954880724004176732796026079623605470423529900611856683094761710354525723571095911819967433638119985479097407392746058316891777167375272944497266777741437007172626135035669111410790254333822800268400263924173364966251119040903160732745683476124516360662797921127026498023818468210612444801135635234863761644683025792678706754410469743555060999419834409007483457009823097474635145190495357895555322068897407621460228839026867362522412410357578852588179616152640788512745746596378369596180116382909566768968297069100899049358347992180575897320394169043868856143615601243474673732678255802775973454828569609293077851535974374031533167171296468193499066067009247073935725412012162584555914258334481432881995865223601737718596336762315580800658872845295953459601627964728106988544769428994568254526653511252070250582082950338102205150220325534062456469307244052160881162147372194796818820335810240414487385193681320735795678260486277887771852771173132155386068557456622448357871426130285752838201038373232121241148911607809165313947227274961276718662208192711723599044163504034084796012602207258402187408699803848577153369581602078214832689666829937897020106833790473626022478078262939427496883851326909243020808235615193843331180275769168453011005338557898008564944665443016614758633769776866292100587768122708527629888234413640532824407623438859247062183620082514793560121702780072197978002943112807578541784359590799225750492558769372980311950176522141233476888909116570361734295150151618253459373072135260553107806691646333161161503973959673986629143667044423537491231362885572783746598185805167527026424347113410150451207432569073702231172034489388063358870700785557764046675926518372764937173305345667181030860670738122499138017542331314031650473708869479953200508083863425969581317612144226120005351961995440326895883738539219078683964458335208502273999059064407770255469088579109753456001537304474363024228867952935542136448285844544666427541202655042824669595395171147193938958691723120076896074660436164726967361186773707813845214560439624941983727869153164120485821588134120151100350783460951102837278237477724136400061040340985552061488950783854835291216568147203537158102985519826609706153462882900423606347989656209060915812235899452406994416886994843471925408072049650842290787766268233647279291389036988165061336277876393318406943701139281654781051010959186902193043121789865402517737106200809163778297635566679369312354293340323003016409028544637571125029185048788916370807554879805467896093923503939748717791425191287090390427292661061977114832850605721734472368878851749058488883681350509207879268266715478725389581211034911689363507658521146958542323894749009294324762144027771404537062916236977828853866365549296389093332590233558737374448115175096858184049908164324610040936454846838537285976429727444575231459473681615799002148237379256551748455565907823228902614620264781451315326720351523047118462675820169546893068324218564041294549624809903866063836183519696277643998511050352271894422142583776688909257582793961067628577098817184958937465990388510811704550546199429158481268838387825626833674479071892356689186197989096504515502232234475821367017734975317452551735940817246022405505560423976856232029914151262111249803083393626436248555400216084688683194462882000394631602080247515568762161217720344391553729142634778581514171725382257535042254430523109759238536527250100091813316260506972521735684505177955924551059674547268348151549707523295633331310841024143483711995667694666458911252950492630583467297088352046225825724816919109597150542107157698024571905130754497430382129370146006620421366171902270783456616522289377014321300683474741478098642790562611372003973637393830833268947350998225860751801114970135263127076285846459527316626701196915791820681515059577693781310307615579362565627351822145175542495155806127418634241673686722530120405173815267023292440542653803705631874018978487163817198876371215092610455945620298566727031243719778579566381700726549957724978678254478667580197079358854458605589292785142744801161479214809974944229332771778082412528508232376367029002329376047757660763236189168021732917884498911315269506653490156853526780116908965637727417395385221712541168381442273894213402370606734020888839959238235455630110675820791192479045842760129331614853145605120322416416399006945273474418547168545825827692117359664616380987290404405310900349370525256990134252368329075961060987885403011499379476283019241343117817825165742473595582880719740481146982355894206183555860738127624499919844289250674396363273818490412376530127516011318197552797721100055676150123471456781897092609537056486953691530533788883379277204758820963937437827869473070570406953679110102057049197944221324235843591062720993468871268292727113147511131515769013986342082328631321488172117588799029024505715994484954795087445908511959331234312458056136112315407142257070580046269863938831693070684979189100510252322757708803462946578263352335320679596795048755482733440227457294001478823895413919932299746005639088563114131981549265324184553635181048615937787467012716135347681327764813765229162888413290727460522822226726264077067052931149720258263438055827797116768982582690437257639968249456595288029183611306041542688191485398771649772524308887507085212369587493038563786475826286445210544590409562250340309003686488011323425205933671123770537253750661584868342514752533700821546716524941375650369203220357536645998944892790051322350589323531342315704638230777527940186145628098548686945246598940607675399787763394633175057111467213158719884109977885488318611754208954446086936926816412805826857401326947168373240001476312291621830082159531765375963662083728793794159546865879462792181610300962621459017019828860539926667846843526057627132687574653673208986383940239483076209511286878151668431957301268552173262679254874121284783249661580058539726985113172853773027578960733737193574045094067292060295432061972375776840716634134989888302763109095313882804746164118335165657867267542947000589565703394235488611182120726874051314281407330732667116484901082793412756545794056532100991508946070457420198515000044068538465195297070426736336557480102746675245749148105739978161529967924585801322008674075933348567858530000454883757480929731892933992944751139934562081127668384612771576511831289593098458378891967654349697780905229654105503306519184952741012397143576659304391172461273831807867592773284340987812999452586289685673064141614804641809435827283794155673862727640507252672209092206195067510190953187326359109368744695685781425706845701948824287487923025180246496538547364857956679082526912007130044828838075756340089998638754184206827417114410035500910468936298803917528716276583865109563616334838560004242428555285733248660449992753665556028211621709893445938487983307436946399459478849796362963362989916582346590000651714026111759636359200532495421510267071583893179234871726991222359710880506988180185853503553425670493092323274112419238722294956854735721498147472512778285473462328171506819783976292674738303572002416170547828960101001133128716377754098334427756715490425908080749019119021505931190819896551826841542884513589546635027777461851332249833789858086148956382828399796121626083049399916613690943596084184595351640633962672860338580703482337576679958709962353217546934972324062859938845014856708036347567821001469557280202873989603901257464378947608673738741876690943623652251916901980138449316181101188558411202166014624193375834125571592336772641221260994226378595663992744000514006878193151129949516818016381396637370510618383837556995100638184495732119056063639395480465011651702191337566974207322950584353203401131584935204871221799247381151049417350088670073667322880411056630325648234840043540777679146926464614924002931328909435939504778314734079758034346392750153154751475193034536400840793045851566359229853675846369087193876084176693552958393006160438460440871599162111685246332520503420227251989732955703549383503328051968175976455583739989563582592903691542794375679670160900830078404429411702029118897948646667335999052551009888148491060607317554360075402013581150117720034654771508703966479169340447430038744456188126531642069439262318466324772312232436016853588854570993437396265243739688710483459793062074213072188704020713798484878969950894845761986306840417552917167276554455032229148632820267374596295694842267845606932364924977535447619319184712025366990426293975334339831157986213689275640629778349572040891193182738128087053777858149761008982288875578894048571009806415346915934907695644260550437430319658257940954441754755783812005519696202403674538624877062077416606781120152422209608340960850778880036692164117911064798890012103670206953834873810661279212366365227940494016661303429719467771133594196668281055045931214290442212248990855887209700561961306551069828528782504737827768753718266019214242388312184345632971098998177021372945149228228979828322956108294444503264261830937965131683064659600133387702253915491857504537334292385712957046981473982043624050454196511859068776019920111316941055308831753713037773748559584698091549333448742172527473500825937265641644747785015658722755021687400911610373914569918340547519225860677108831912186727132067338124674376608163632776082271358482669486380644252431862081440922316270565117005259380895720005443618364333652293689983216324573003559881951000617181355367335867267080343370441321556108050347486364025024994691851297870355603005519424681445649829944020587846473993665171019247063140083576393494919556070532387838761942436982626097950281817003751234159358558913473748316388895710762678744202472805711782416032369967945274626284249501607722929272904451348402083571093399711520912299405344907318729759779993196947950452478109827957224229989912173228788420640456959305700254476513737965304918742603292991915007733505299141850547520860738414868191505345045643552280103579531973002864262949536133874671280112848196509115375467661935592875175614361268246586720527146060929051513608789896300690538062848625047770359071795423362862492948745385367286382596069507174154166675877993132583297513420353101241974010891910432527965308830346628215577964082086030193498774408271248510774795756938933216257621123362112847404076391166084000753334859282677932257970130534721217901874884341239808374469418770461714029349991401747913623989427277485079186995969093150428027867605719714983571809835143820000729641020248031977605081918458130917385129156035204627707496358447098177309900539710618067795818391595552986812350350039000560979642006656643110187112800725696847114643401961715314362631959469085709101004231388142639493879892021607189471996798729602808001229201382377829516671300950660646768175121892146808129246753231853970614401125333638796049065524030414006897229625496649056149622822864263993231397904044147597063593697298300285533019755061750243852966277854631835748680684172008868841070331505303123145184786825169360388194754099126170865353635863515459293313007357933921998597378909599197038983344689012188455953114246422848032708801149268422557694782143314496869523339539872723476806758519166404138573447245438948513163327144602796661065560970063136374774985427014139301293836775945603005516374953615617090021245008423870400957316473356312917804420449400997470405399867426287496908646634330835085095775844093814697527813141975806915582013731599810049150703251983106105402986999225691428005882372669856762879157782441755638377388613097394998810636901104890082750012988388507206186276661263605034552078384236378817873331251517100462896057372848238859197092882834593148643503540170402714703839721253526187490269114430538582987471490579529383336188804047232601218366277453730450688020672553984917614998756590184125800186869876040389316346667726704703664038127389968714999590220318036576487773544087821580103515226977889198886729532208192057347765226669397726012707905224913668649327605311850051260412893756117847923530030220626885905610667018219004605474275954517288607674459121457424150964446463967195883928395391573169465995639176573528169393052383357703191312649802750853124138868367539620790597672213914430312523796999644036072222995643309427852275252648624265501786779031404566663241856981306148390444275645617895822035635334668109246393441434053089779786886284976453783836696280907419830412114195369199872688260563483417550618427217764803385472673967409113532178046447944804851319265705209819427674223126109521825918309773726030640209348143878125941109333547559081582607635624734803360569161290440438146723404601700739313283923541844061306047714891824823535530461238163485125876022611897289270046649048771706383293491176720957817315701011000153655924526352627794636588932117631589532301764699633142618840777273172430558800794763624320646693316281878081114643115085379131892462424738531597788943937968170110050882159572843548245865708747739150782647472559078927513721518595173081521529271367784968446709258105508618939792225782283087966686959380224333923050029533399336655911120493037412307452107095909877822778857354850381985075283547493322281424685199942608476832456718676780610450664833584118257279014895645543223757375261750159195908858154968528066167292495825536912068298838832390798694467744297255175692640907716449492057156236484724330035796631774448047873957468610703127267457403282380703028507054769576070622394813762234268869686350522009537349390708857114131976938219841033938196481577072746804713868098075313332363558739239264697273941348887015613344850105889384057270232700792125706921309267752743428777196724377624179516864007975656360410081099671648297271900722074469746306017620200907309840654414759213916820488641224224328025967630634680612524551341082227118893539842845201750850405901636931306957614240453517060824827793103410597102916192083113810340805606747993891758769671068485990502833279838775741811872298554824958932974571638477207998920182049982817375432063411834978455788231487862557285449034008893087549980189017495872909564278344189875811432549533546081185683546269030644364522283833598242958260855882600206192045211829605127369258640886885333458233543636214097596135168460100333761031885953118071312030884153973514519073134752680283495172896381941731911325331340631892755179716009963713739647882474842286439560889726929567525588721699934459942529477433514565583584018932358734776044090994859011853200251453117402830774092143249822610668528800137287802804206206317466179858901879327260765894660952582849394665358637226166443787612715588592923122411732278577815064567944513975573895841503846682500619986309300527835378763884356441330524283063805709452371734042792393448944844327847473430671911445872431455045499840490220968155579125176518774596645025801749145472853863552917626423571490099637644163997602884418189632005645561325152166354427906364391971079957982603517062631200726313950987329045600145884470853651302933054846812584823381321807488299730886330334612818445804064846360269386326055294006989517216560919936722447275542609706415141246651184859047448237623279160465450876552775175874069074109106124254128258121405913950265985696254458104769848986632475582869353776694304402302429550662764420800161386010360093815218350044883842315577517251570897823128301763274224730963165420992497163364844156687466401656502656646718348358830606997498713082352688708112982633105995065399183099083270825521144123313803514068808275427272054080516468435656671523872442479071567017716731955620912716688447332699097304599702206984195889805004229812254508315044604390872396630930276750096093081930968936968748467016713292148922338144937198660579225394297127729395803508836995197918186200815879311314428308965416880838425072262245626973840139560978013400078759740654246479843871677456897883023433831467957372082716342216433343104683130606159168619611690490883189694092784481187016697648132296467919918698467568540187823506171693162138537593967356907656543011251468890931239832601117499755539230624806637304155472456950296163326091028891863533849342963673532263706674286586819103710775236190476074511164101244160951819530736325506598710038953330862265642686697628675002763499159866302544470096405957003153720191045666644081409554215310964095523763324789476701131286424091025453916181187158634903992519951364088444322980304951818349799621124557328125519651059160695520339921727445793053989044331406172190503753714932738896099352855540338854796593392472190850482113121158525978566902103672236485208769264157021658300286196926679719152653693744789780632425897522408374947006686490453142159276980647367881298066664697063288203805180832843164295361576006482349125972774731218058448826830264260944297647224744630909079000140308287839706989039850651751452008912272014175012941871199960524614358369629883949443060469805730821471657440567912414338594356034925063843348611713653969944889845038666189082690288805079246914223813507382577393851779448245183808471127268995918776068576667444583818449642427495873062288286157398530577832554231421279947132180591989771168185025651570977043273268495105694612924663774439781021156977791987249836764314724225938898867871841156181380596062326199693137632118480313964946168966269292184826719455059694592507723045000181653137874536415510808110468755355033512388400966780713965990819404938288109862591937480971279387688307414334684512480719667045574117127255895156238929057999660988528227514691064446196830764836998891532702877100229231180278055762096479445341800712655442833105777538066989682713310181603717380930541589427549556949485655677581862645798186849264635374552502109212264308855108541308093412410758295463200435705509531383981973241759601858201920144392649037766312147073074029392614445609621856079010737468428810839835889921191108204915383837522724843139748524806743410250840927584908641872357074893370669356855775045920540101130828154326991392134022812923158244370724120465433764351175993099677051973156140486133128527511592235902229909194284649418439225543612570151568681039904634631193914814256956322501193587784397519150324966577113799703414227334830792331242947320262730780155451578303206675439202591594007502838428914921452397169968510276174804320985025436536321636772355778522512815671185051824173833665168448751110220324414535218575795254544882362392582145766828057754557043347943697488039227106399385143394817580455817069751835791179730303631275176787919217421777687118942408168423272137273651873228003801964486705137824232088159280669072879208930289458739587398398707679370961300437370503773065136693401182077113571101660282044451423138094046602270037386695838038462218217362992210638465155079646734624925667131807336647426093823791812265389546687786040295920767218776989660392592463119910103733031837803046449582071530544996454050019186540655935738037708195095765633809441374872544245594582852105881379046571529703616595730643211910471644470524559879978138642004774989329964260052996629864487635632090447408377512829329607002357186292477782676863051496734855985741647492186864797565182566433561871387854802457815649870938500928451098103662119109890309354228256598841704874023077870089140569824953383371353688982726265516635354493387059553473752732276980295923693914417754070373455545013922452117080441886751572347391660285108717433893811735888230555348810534292990695633822231529428499981598825450750279185922022524587373223726067571612269974270495310394247904454015748662024445787996279092019406632502375748207293040803688934989635875492660541330967695929018254150330441325997741334330869577407650863097605846241141713227932878853815745350683342925141552670953361507640728728506556945054935380115222051402111367903326273579927372421718394597838621020463571948557743038684099217293750661308738796322593383270303200674616152072441455679357297834870725048526289579439256567480260848891630130719576197661555825563032869808994149714667152388662236336744096004727291094396706797182962489980741958749388154270126691359656740005034409242746931425208622948230192872333368295348231121490246606021484598705212509132065249879089039281524276692104428841247636905298424139169773422226033766298177687942858894071916088889092932193999546260598683627683935966123697372122499786422659053221959917404557437493534286773002775096912287316279238124184763269407420886724553170894783709600971697379992911083492837613200712010747260827781372974888503206924627075864738384021262203578538313139081982262336685593044533124986270566062008588774110449005405283503717391495186697567851921746644218628287164265022368630871696518965589639877380421522205530927860694145302355649281430514829627560757667258546462730292261415997350975399956221780075704917001662049556719166184039176733519261216318638319350061906099984115499229638072279407128180657614810283093422527071238709542910900884790377985298111755662794680635832830384765525372562335201914866868859762558257671151427706304653024444839113782453894358587269447113684078918992540658388546494889089907086659993921342532301220121302775055157447921690354085334735785104769129297401162490875734011406259635798955474874440002825541694797462187911435863293577230372728925956311401847856015349802264662484579455304046139270249064672765860907584668252381990583842354793740923186894921753987487240802169401678048921177581989924319208218812016394839710485971116107799875848604399184681434972585471824815029381540859930638897740812696935464825868477889904296949709833532555956711684742802770160001933070001908812528658485261064660488960710660845977451425544691759487446467804006982615247908184290873456064722514402704733964449126508837744941724967065917662345353186684668472026805301442217741555053586577124431641924933855777371614134677421472341900413885939455657620270522877840669566602477197140504480440283670550181105095411719910751031688924556746363610786872070855072105229990490382129071483347661871199840993853072586971264454783748506849412318051337856886974855346677114286022740416545046265438077947878524093766962583155461521601061742021624921859686042146497512652719779134172994863006615065558183953355210990090734368029855248182754141376255541141503953285952666954527472698663313357733808028841816826770510261876672271936912107332047428300348809151450838843529599597757932998865190346226850776014989107756213209171349339454412238324611928517915657546958730147615560594471997602306174933360816007146420522418875498733634947374916905052025017256724190319001448350434574862307779788246818741210051132365164399446670816044046983332527608826981098121809637942132399522276002185538063123357166840871587189566075402999198305840979408816208876554871408182657932342970769679955779806627589871810653344824840431470392545406035154351657976896020472767750111236705504571157862787580744033101058081643954971338903307598186576050763908411598960034169865750492478324702212995839971925336703273592916734507846988135930703223126135746285880531504933321742217787835907488057691628953996505257891519211431321495067612584561950403585071040236154550937788355522752258520410325344889815874040758911552354530497019750662462919477680729674692306415169828223981304145822836422161083692562772884917484310999195451415520347741574992939106906930435005166023336824583176263755522300069443850502446566127034076079394444413078856274280784330388064758569190653443654387964024716857201348947289262816443903662810681570678141129854293746229643516346566638966753828069445105127197603114628108894729878886411827718371686833525904248611402679456214579832003984424953509455154412532623140092420649813298761247429280737958220350189416580282870937004266650215491565248940092745097096077168641421797555748648447085044027701923575100478013710334773666245838760268374435045138506871715653944784602641054884083934762830997681143791150269605555338093487080540349649702971504579432460889688036960348188844270339800656126173412212928461359934555009459780973960571743191501442934993479655386235181252547514388923935355802806144003209547634715595934399880265612392361821800031402642114070388242933347886126450804093342965134884282204541799744042750098413140960122772496686793717721465755397710626822183608272225048081267355773761391052025561984381982010457820550442138649498343906516800362315777701328616243245956500025861943606305147781275970384895595338634905607894096868249884483554039221909786475618715034042893004219532102490763234489942427092917262831830263495433923642177645291132686867662627904767292567900296258120610620142733505145239981744219341102630967808869805415957626779343432595697539222895044326313465822133122320335317495017649736197796045217797520538408418832467876190971264729495830966990502128087869243731048934315476976220403774167251133159957189248912885278633300982498196604001213601701943307934437972907548608112361314271635898858748009005705589150873926062520035971009150652037818956923453323755673545783937901824298327927436813917344181371091898161865585536114277559415718298297505088906050564528354587344200611765806991561331526653737830917533782329842007050383111103730778102873511038073628876674521940989768827583677411201856681215457515440030567916125529608754297589292486487630750660705826601978298895640457693945077218528544739983653828688992131516219072726267774633082973523828339158794894083773436210164943864440112603306534047472918255374809588637051335999818837570482927121938423584922050746649234605863247644629616813895832988432403256813071595697002101139038058319366379315207778193590255249090161112164376281270484892866159311257611581920783192453315379044189656688735445468315641048393832268261328343804594494309458147775995015455960313562567135111402008838583187164300447336382838150124549807416233111671125777296356688799634033403819320768800331798609291288098863730648669986471945248603992555984659864287202570159447212143281459938428832538236909052035622099749765430735468639984921086966292093252964690929019797662513438461587640766755545087052591334079446793774404701629550989963364971323713606844548147263722100411906668502844714532056892559446975804072091383913139039253212655645700434454921942358416373254913243407631304954253213293536553430337513861540174474255882629870166097241518646071778324720671083436842653435224092601447229820293153882525053936075940371033357753658717018111242660382037011145079354259247974656934396450491035153501764086623544166961585098645191163955399712946513090537075728086386940764896540330110536520400800755198713035153213540143535080695977134036107414902319361861246942394940507627533875541353117719653842461392885268263277988373575280509473293724655496779771351830759602528678489897483683491202053965269914449900378435013048391816372178084133831662415949156363106216483762204087593163675269699703379331029116630084127686558442892997285598994889576811084066253562985817842480998456252566793767599523247778112400204016951260700289127631080067720492147559534724650937654766530577356004330678398915782016411076422482183861319268228663313144198925567408068532280629387417983980971612022514306778323831283202617667972889896971822347505389604819119187755147111970329956727415654179489653720408391444685737231801017087752365126725909048981936307967880758879363071920607030997751486553211992097360863284570126760582746409053469706535887668013422691363782081185714559562051506287158686601869010287386295149628983214394631508466119801206098696570240056780421708130734916541244679595912767749736480490911800729420364910330642598423766078981854146837499331592371898028059224754439713433440960214751381458094502681299525198995608671667905876145438185006800463308659028811777652003289702532384196042968039787127862765319543155048973378204526608578613522618103483642311559360505607196512350576480788189718417859135808366376285887608034499782535706819427814406689212931098242027938713006861656251319143792586684433681762505397004144468842615093462771126045962676253465194170103590534835003569491289196702178899339009444976657894542263282449383629541524481554990006460781105858661601860282651824938531230363581291290683824712764945669248881181099156541708543525283093254752804420943151981650134688746062529391628857613653141946604396999866555618571538175537201163341845694460473168552133400417265159719046969307653403230769132606750920032772249384362186854837409618059036575313598483470634831417768090925696062968839775251492083985165743665966112219644627288628283756493840693313145058333289364872555403464106380235186393190343340903874021294208707631036614272443672577355990947826368951184019773742906543199662417406360836316534804248346650757207419451392331594469741486391642353749162455409114929153537607650372522808177856651742134568872481314641147885286863025436938874671755192247133488029704543249603497194781125275991450756164072052848066959702227014878125680173507424162295491563046945916220301729635702208571460834204812002731701473257339140189507845630730645444846953723025388485876038054576141307475789123261987638434870058943886799156864376702812537227601074718502564827832446330717346220770142765183803179732355134286032211578541583579059235678630388719205622846848360331535842608048988795989163590773112982104940492722843453724882653170951978421790993039707140995590925107009103044521479886863499833268408610387509173008130813720755147165214873561191263951209052774424146059482693464213137441586641170407873322849254925425227551555075235024214192537229255268897378797780991473103478147339181833082186963378600432943444189119316591744052576284717343337497796039874731564035663512348938215398644073019536695905634874189338902496024137934589224089665782936164344908399787351760209700497785952955484011333429978473641627344866779722281260609644344940478338411378487068125313899844355278036604024608794360209220462607144036337243025003646959903051495013762698288130788181094870073163907070475576647306094828725413954027267224699224403302354767248247589141764457440158694327652883582159356555846705358932922863187059659164945681614984357009703021483268139820357974866945087921918809289547121515668450515723743776466944736375756372985327513541951387356438894990488170030030746797420802441257434922545687225505461221164455726659939560808609903423230240710400225220069026559374984212490766710595203919102831116140629497923558890648444485450711454633252558788940079840601641572387773038295997265905514321114682995347849691486841780625993866723666269161728307911159854221290490014271318006072781561298493813375317849366648196684562238896630099399918238237011526559531394993495201572380835639875911387967110943489719691103983076855837741912025962810799386401540523045704765758012884470580726110889756116335553082938823984641394816939292924339618061677371719598059237563045143712146491973971889437071360321396097175931979244111188783931064216564608601119168750699625336096355994329999719663589365171938682605941787664505316895314880414092074936947236873071996824685384356037640169756779965949327775301137032691051946025730845736154215605203039039254137615404871398910452708057992844288223120718508424156563903227809624452195523326662067104330332498481107947839344198217220363134688229015884679599400266577811749640801862162997541237090929974251430234868662677299529741258542920233863194933240120273150577617466879099594385260903502149485867291821922050107807628969885045293892942403752135415672550894418271133771894692741391788001461119835329911476433346748357161884981013489800107091772779399435696477650184632723802605591128390483374320368441464150820912761470767618706374986406754465452251806806618853151229209984201091301315520594777150923770242762212616963609480279215574661941810429813068209729060040471226935059413130631095198314284298842967533889681781277675319952980682559979251496531144742361258679906576810865386829743973180078647614873715270684637077269366591480483674056702083533992331972807499593079873516939542745254485529080309792211856600159010682080765547657826424913640034176700931531112279322389639611414466158332119873112109659577490110019040898068404261610195947184311804110118019648188932934504276018354595381288006055416684471998009006125310178286583456015428325613497518254923592922048932923340082029599964600793874088727266999742499442801695600526011275886911066531564254880884635226364669390151477366266825871947761324469020618321062063470586376481945482392823121385158571070372473807163885924829254141195820062774387094099691026846568195343291067844534344366605530371869594117324044586768306019644201449762682265744989870101372105139761237365217523501286427390879024793106109914222247765311984152246708132357936788912711650110073469446888904896154771906059682144858427633942337269419171777521796855941808314749869458485491968135364870652426233146953888748914200795332339206737472458284731117044792917492024918922254936117416794672789371230391214758140334974343083919089709752203140796037202833948376724085278447247982958985761859817237026092839268278375850538802114400773434417745005389931356040977484722336087736993654226579410687425414388966050474096333593436680107293293348191999032132938649386364132038885531868820072092067365873107434009625400523042972945916139540230442889879912672280090466802050207679992805966917602931059516871211811530368142128998672357862853973043352790795189437031806231221460538313085578666368662876321790300626064599052209618255522422774780041815039678614699133716576050072206194021045495256411561113486206303593159779538798992130639785806863194299793531327964347799354906832999418143642026205378785556557270259261375901408067026960031652627221034697242789003387139312460493880560393575574137345689424641734091692297412526180769138905722423437848463111387737552146198518867860955809159986346544751857121417689270576818498120966153849584954141380875646276640918938194708133493226768701656605217561904060161045209802236065897793759448018800369025259065257256919115366192154097291635475618003655761690635470520661470261226464575899996647129681669228695139397808636283561799502956095049328584320168138453797860056471272300786568799848300358309058064994049756847461772827221413696801055534958224910284750780232760685447588739089186175842759252818622824827724708859091751081574564743256507455562668581324467651218538902986659757038624001744931455196656382556984887454202462570586261199601574016360835790704015594201293138123154167673623378354702431051079495350774851321233300915770734633985847657091432227146195603790756912016353809571961022506063770338399565156976346829793038045139824036996551230033509141596975394722698726298674474262989973566488524810525090120285651496703539369602832630976838609972202608524623625319383706365751558492581467155701414568629985044697504594470382697963076949977648608586702509815309040127916802264345011939674187077882086753900167103585102173635740570729751436306171897247001269864877381281122073421155311269712272691415008852664250456132831351027194627251993604816044504232483572270268320575048820092677211023066606230962848909884720471827671786112421704322491710945821463186090945216052789795182810498258238238457344986672291819194984915166340240625329474932367825296476261105632925342666281063164628671050998982253743463235144516856149188738366826281691598522378455007845163394151427727445397136630819127243865569195966383543090524295771056689111925606075974060695029748539532366328949332328170347852683530576472021263854193845937625242087602999506825928460478657143585501491682163522164915676912107569800770999085265984054661264258488010475265686567614554996271035652862665025651907497308273124703539249643510840520349887677753767564802962276784101372373231894029512618484357526956252845868340594305492037265800979232864067207141687024414275741148370960666980012549146878276386510386706839565377842859804522801522763608723588732417745551352269775437002832446311101904537663706272222627045219965610591213120784799140917727863839142103676708160881972081440378470171525154750964826594212940950760538145249751011426371698022711809080528221050288981566333111229516328478559274203367599895921263727048485490298347208227939586538266836181870732024187937099941720111318217200540233920932053799563630025793740351503194260213225587534277309276372516598153653175769670525149621068810229700173932982087927090624675143793677438812122491385210916285125776930879100149020770349245574766382365000256229112109946181554400784973060010578567283285209964849211697364652109136332017387783731790932742524255907636106484081173778543562462063334891745696338878116332782308524989618635242880802193356555977719287004874648853166622141471370349466388720322669513698104746686966624508541784011694239936182273658460331927960240345737097513342206825263975318879377362577313359476421298448270623867175264493588786369072055946987101918259984168965539165365622722296885160736180669879193370035953515484728806894553956785726960440606854826501791918142861844056588079631059744682568140320487304041944737780818285074975787311699516657697373261848545425869976452049179398595897097616569664970000143565669716002969323485040885417755184463083298558821800460082608198709320925582989571826077593551452255248882186675636688091729796700001724942370877284123091975710543095935264099662006659205172878722614999983091546951149923430082850219839815594230228179592078782616129576734746453917554173491903657453589738734137136387424994587145669071984862757927592970669850698697727374545085779120320667385580831566401447650349430255603807612706323355812282116493971879461723785679627657356868950726408308912707946410118755353648768177835326377843552679208560824410874946409082245021986932715903778891596342968918294089890523697949492292536298528946042227011579495988309554925050126011806240786045556287034325795664965519851418563546445594377799426114102724842901733264885207202052076441004461910278390962256480329733480179237790551418382526729515537589729886348077139735570450049116921346757012554032192832954657070508505156125977465538153320705344668859488129039659797951328736585466134698742435851389269648053129358369969748146781390712818900599239931121953863492993463504802172842316503163230874982291651513978529749550128856336526006197698917812203771690804409838696855045416914521073635899727781682449918272547850235613140969665996829389187300399488369595940165202303065169052693293143354754276593123444068011087444444765122077809106995945503148135847583838028025028351936594476202105546589104166701665248830830414365751906589343312644741625412260491668701826546936270549434574267589708018872039606148223132256412273501524797812590571902690423679128552936803928917567197534418027489333961440090959604936744283995589453037671984030764237882957430889877635883805741303076422987380117341918929993584459683615013026711933325110830527091154812714451009269543981196208774401075782853187045796161128826971601276283522600490180082545521020537354984979630379963864971751699025542124436115700199290683325290763146711674883877027995557036967229082159259102925866465940116173720481980931400001091470253315943992885701857619834599068340984009121358505481846008427361489774205629268121330080464496134374987286349890492329209103746426388147289087416501493965273648188097502864737367023923542106025479322420704096650036968459585488500116079902779873721448201506791454855125599957309446592851911777197686023728824705329958576876174356447137806547470400689092745447315647742279442753495570192087105999245560258949593048430564009780486388395275232356960296143435944833888068897680752839534160345862318179987514628620064542592168799798066012604680055521624481653814600638776577114040339853206575868064087922369127286772606678677493378068903542734713356750896548544808468597749360137334826664095037233329401835756099784913726333802156020899034276921279949656339890508852239185665253439981322858377731988754326434388115804892193475615199119877153496081025510307838218157748151721299492818461395679487398951501630790854518357206620671960094869753687147699537817375090173665859469686548380528707613162473191155323451402778406373274898798223371307575564991037181681862025190481460854449912801716568935674062699975901806538408474912725990922540178525664837864303705977444528391552797755448209734637796857088005090826341858567396031619879848571874084315263403991483412514631840451877524314901347258285427486574008078173266902626661366453539656984916395732312490885340891157953355648165187771371949886418855182881090112009956615345924982961637768960166597795497250585714223464741933233783408966962559009747904038019926123954586156205196726193217753992867866056506133338925472259250150831122177109931784392473663375489487674876020788849124247537734779753241838261739279791542159742128668394788099420940147884193716271432314897037031028551923921323183666881594333540902251735904018220293226872230627078423012964348566573327060256962693207454943354792398141392990690138118162331037307720872767087360052368045137578344830254061257479708797894394455240723289490261169589517548435180304100777967583336835403360171505126732026570846957676318364275659412139570377628504402626496618310184827001290400554500303205033942773752119028174553249511150186165353109661521958495545535014975615805647003897883315150494178989320632123587439337779468588472781041545199763609089742574727034785429502488816846193308372449759776440151906213230023190597797413748815202615814864710886302044147223408159846103875138925637441461684245895207504331113809437573063873396179417192651280053873030464076247078321577077409100709475446581839603280914634500900422039230006378759745542786119310901178677749237727142113957941408701699977344821672723980439555775986083165164892952485491087308429341213357989842237686187879218232430006818155748830173669864898215820932834173430361456862745768344249620845499178004422863531393391515679461389497046042264082913985111111441775348982769189131254720117695313962128411453224193952701276587007031834509342265218097719159896664659406928544061316756194176752993012175105949513611777181592578523972789011123399949251262724358488856004279257278835063691731452456159867768845443219299248437691215020294704123658317597737365232421315900084663805315548199979551526246419354802632531663117036692045072232647815091058225315524536454424991116491968721650011788646386365986491673359172284488255373554857206553586125773617439431690657752318357954563702129818564170748733140526511658951831496858011678317040016983058672366409751954184483333050539222615272846502950740139415610411715435745892456133515968339223016752138921051041897384281457568430964304539321344852312695452748441759702210274185805146613951877481754058863759870089276152036704754876296225075134487260700300757901300434860220409416753610676029346375384653431888505422150496244393393317786012116804892488089311522975468020502642511646344131301285703389362096193626841200867443966144717375577784580862697294135000887714350030672973543263295903713418675988802763931002522714446001412463993345627401584497531304070292038715401530284865060047729432592763217918262720579351918748605771079392898489305489918065248429840008041820852763035828245142908342135159226075655567323278811508280025406755946241940282369923891223480683300289249850798944792931106371083230244579760290319022009406173904114026340905131101619144704305588169822778497073431545102505028031230555649245423726684475521682290739104232284261411149997782494012502800708381886081465660751226192290388657242924080286096536707857111989201438622197024803376455838255691029845787999181893284722552005410828235619144385033418871882942478380001144013115472831258305599021986936378888670377889249479275574310926090637813135414646445361682169068322135316798639613830541386628774917406820781338442479767577744461685112311077450643829644015465400092250588224532674596488227451520322706719798138656724860638487731099766892999501389011107985075630678621718404619234891030889460774374945875311947504153501961386145346359842698966048116638923687914296098015242237986102518861115336641748950619835150737756253664780394677195831914012587475330613017928085535221807764734910775104027827351001215961115472640047733274754505645562336279272144224295741683822901379987957711785738595281841432465429952774761641524363861392400012992261758746916363362583743555222139925135892878299041529841700322956329726046217517052143070872405490369404518538590737105871896541785739243468673717407266662902678763048351801512850943736182350195565717300150656508360061157908491807418054617933944255981767906484025166518108596520806063970260315252733054330238768995536691405869289970400598397092470967346158963843547505735971722189076205929765434513522959806081178162725339876602723029618546102128561506282791476870159713338529124422855456372994910766794213074379752376503628923739513491096467444652777583359724096331056896072704735293523469472211267634556664190567769465364976466596298949959533583706624858029851268020561131678362084664324106681076075306430343693282824443970390295831615369567827623025143651150688708462039547138128998693422700072910122645825629846966682626405608852539076500824711628279802509454606098437225022251784658506769704763315311087376666667373546479321068888306644799444965069259459530949408214017631796672738974876450425051967287161999897594728097616079796824245069541873779277351945418889975873121312712347859917385788451952929845826497834679132463321856831809085783226546146480554331900548159789679746031439087892943708054165064553328536004035784884837278943929885722072309172628693387329692372151444454379375478307536567569744300904197675291582098517828979614698184568194725406366493223401495504968393327531848848224306007556624845225018464325083119159997959881405667657365884256504000401593070745469130454651729779407744070705766207973969592902950721637743051860650221542689867550216289920335112311117286032679959329127099678879033811570265102617823935027147389274653364614483475535727744235352205831145755945238280346471561646359306183610800470485610430703862944861910000012444083801143946411770759312343475474286401392372901046655599411517983080714589743855052596639905874110100271164236075674973717511630931623110082336264746382628324945740984892429411932091304981331575448833161092593034520360853595428678826828947536244353327716758867026475231563410105636933693149844116324917396849565164373284339234087724034716574744975242255577868521049252043277707751069740800366561519378153510798344277754164705983339354441637247358245138573697734774551055289014388479027468541327358294485337960137847282808299201946519940389091671595796709298411044560604460956599312227147485803403070177002422330917897989808905656071964599416290363218593691968566730422759020509318055255139031727182934246401128790565650853237592070627713558775107272369950943381564396782076369155945189410921681526697921877216581990705022498109873868041747641051951512784662313714519105205278035273007227765445512569173577501993027871510314880270107373207795372512739457242033004296657124070802771779598539420163650290251092271191353626795987868487554592622033710570820712777767619288311009553926598114641988744174857159376453791325477894571566996740268267517935532038887606126089344141371897479210659783691696625362810144105818808588030319527450117386703724705117644898928181581359406249762361766271040235843513217693773012826685230837682315964857758174118589312187589788748095976638641631310927673109871964105137462930305108728182627285809868227137301997036113392929658187627037395106289506077673999591743481293571566319466990109122147432794427098643339835501483269791375711481288487035587448803817104189842322617337782477532966317104698682756042014529404356908007344273141241521617253335177580496366871125233052149108759356416442339374208656662300612001744286112358152217958421486622034779522097428072705743624388630413797321995112734866346998785120287222191763843380144990647495042088336609002997640412661800824531106096876123926238012412236718384634251092462702859677652263607757553331999957612684061629341395591614549832391664283420222804478277705490237858413961698739131490516886620172509762821887386603432065120320188950029018695911347575617940073116207466063297892448990725898174161183561501135174823701218777457526711940939941988255809238113889370891886115633101653158639176303815662543297840513227043683754629448554978568486855508363427320965108361576080677951534563487081528004490454378318756586174445838013681857106352126291831378940955960350675234373391329935480346131669163181865160363981207589277490404155655314092527922952009547470089797257605634562190891365435922187512169021867181112189222918862922415222925607504490463964608147455608761974391611933926767326031755646628093547376261182626418683858341717514461695337012272320450651309779435743687585370788485929908285516305480967445641393335217564913406286787033876286513661047427949828288104560665084969809936882276702507018119883782732555386134040659198481804096460076073396051358508226911593575804113978694032679207893697916341387911769851927624673128945313044622144839779265182486016863671252801676684531459804439448694517454468168327608792987395734676635695958362044840814644453041947141537067712564819290120975399114906493361874862702982010608848115769880306135024430757764947816360142858658579879781715421984661228248708177266544141820087783675554120193998406848535201159374411714086423871304245279876751845783242628965292532402179720090814460779844597587481556997214072488891348183498270235673787343052100301306966528157121558702524588333921807801090498264922038836860953295894824521815238892349529087557738494751292317370518874945658920321106662074499129192663663194915281295771141166423796541323293969540572386871982548332215982980277660708040962256343913334198761532732484652463819451995965538225250419562260273151386594713857328710289467519516759408459893393950268481867827781858506136851606606310427545222954120614712493055804328953023143341920221791510537247917478301494097702372908084559473933611043338867734617048084915789841635883628422635890486159708370826982439939562803831599168037819463895222060451757482018582360523518615411846701586031938077598520012469803542125728731352488609039485751289219880055998687561836152913135298562361974347116378846110846625061437424833090947329231326549785737719171169755237314849690916272559894936092373859392940011101754104038783454650411254511184561839401702404367448243712446426819986292334578487029362756621908710168806023614792354184122386494964776645202594189002792508705473021980214567673435632105194200874310740336393684007944099173156924435328595460856580542113304555561208541501764364381028080129362372323294864408801257634480394372360675447623179874015341411601228150899766929031706654917811557130940067711433629381557934676328486690335715522674894199117687955242132151626033688936514095000253219204374494627632870213380628613013093860099858714320176573894959698066595083082782773828182655165243106910718383373594882227395127324023658817972786447631699637006289402599412886937054835109130666328863672181597637786231450738581779896672375535441983890313267356921738555543148407437280869206071726164097919505137856433830169583173878001816752663607978025459019983430972336183729094056339843555815376455910790615986166721147603226738981938030863235281191067718109177335977805718025741344904555388121277498025456928851187214568952756665147920886533750504728234972059787181080940937487504670336996963723919408882387388488314608585593256275205536396002458229293610414475053484331035186612327231392080252788034668852455599590935414044108922054630681097339669564399089615350810259321564887122757810928191797302675427922554538146097384845018089183052493733877627883270056467229164962319686272270443946376308491102151850832720168954390811880379811283596591600638789126457252422278339709950415481986394946566453529987113158905467961880648693402090014859146960544188165865780754245492647802645991179912360657554375421294487392320297890660372164110232253214999692687648649358327176272487655916393003842413327149335575850400057879257744250322256146292494642926759719315050883442342014259413646621512912215104128734053820542900626093174536258396049498954052583025712766725759623323732408661680134779151277856071264954661499901191681809588796706428657619872033972987675661931363838813624624181865912169885216620817375284824657963969865998055656250864989375292748083296887998978705047377470935431402327622097367953079527151720191294766861706848821846738160534678067953443546023461963747946778423210119256700264554751848985976988584740121076147084996822833957662305131813903560746871528979921020844837203033093700512808191248321063295313195851564173848078067666355026401580870013028607966443150135873945657508106984339797581830280395350320036231373084695897642067867019468184764673308427501178148827930383094623010200674094354544891021571389632322811060907861562436074472517493992695913935403811469361047416044235516717730191162067463567872815875160175026339071234852383344045205181705453585316413765889699831752678297572337228940359323285582486944816224383637051499852993909367435058310670679949711109456392018924936696591974743095154204569788898479694502439895947353237002398650852960729171179486651455022605291294429111471629522486622806094722697341401174734247181150817405494106837956171163332709643442814515205121586840273793363489952753470031069096212124014660313867386902245364181379879678186390342922954483554658631154974701407408645817290411613608291985371785302562646965344012826717973725271036163803516530392229113168623420079147752193755580917376002959128445736661674766104827768693077686098299881666619680564525694820386807255838854914118215218956497407808040493218728005735481635846787763090995711427824521273585647723693158602933781069813560530523204177627037071151934816573587709230837722182750139505539630837146164636018115557515760095571946119384074197808136635138935038549236744731671885807286099070441169921512969675020288465341128572991555349021738053557278947208658224598566826827164008513259996012326258440357672769799851609922780704134533140304294997007085362054071813633738648974522929086872432530998393939845093114036128151556098646782194225472395645342170978207629852699695473820537670020778263965143242064058602811191789545478552977359914834943857667665619816782808345361411440643137740089390335286666349906950210871055283522611697192751804580173900056441321094319355742549030084226637929433447061327451263677913802174642497144275602233158907605347104496667938087187547874773202261988374669811039478621968208238334474707514559694760455746289063310542729925706070016042957784152877978812090284211041247583854252079831390056531765851261619838829904719111558833882667496506696785402624643233386924204796583486578239016881138335880900274864381592053871096342040103085508548740398406093203805965419244692475604558907646821262486541863026799773580239481116756338503319314150170966725996041150206641934064783045988796482108531030846705393593229679304946677597984342773761220042049926109923856489363761272035765157713937983898375391327568138519915836447215226698281127293749486362321082799261708340913119858527228927271083816325740810290769570148736882573642891591922468376634840784523982873609686295815680702364739993604780664567058407012716846158265623073246618729006389587007810354800561345816451771271951991590515553867670091107663266036061209926686073695118864429269781379900234527374563730371970343875142007703955034801713628037070335652358994251471047948518520844755685820411779467960593722765794906045583650141964282284090433221112936202530594380563606478293868819556984583854194043432141255524746587235573188880158554571136859348140694608177274849095289022031799454185195331341616159065561377215550048172207033289702847274500252449226820523908288053264758212761295055917417870379491241879999663771427063573853072049556739338397595079989998950187665908536175037223163516878873531021330266228949188752929422795353183728297979936139838288247325470644430129660858106827625657418138719385086526682028891366501192545348477964013198675327463065674590596052147780945181955241117570140446471879085220551607350875708849690817517027183141390664832005024659220343988700790850652402228303640611652220934376677208844150774379667344702483853789620122688494037195657755625435946712691675445707009805987327097232422566174003523190194798452051251094867960908195591551382809042706708909745939866636521208248741822278665990558390030004505078576491208684329278069579984519031482764969262044933267609313270303245188372261139579265225686359823410401693401508435488647558424059985706765323081605182836937229369131402646465398126447645446938123582740789649036246165863350489767676197868155582255859802185057801200268409893542448296439394063270840831326409228305645976272594414939348339622315068980030290955879316984762659845166550401246418860279620754691203300831662388251142372353380958671413381046854756359086286677040024704771787534635282994215181059631019646567314871025891622559620468829865526467771827263475422645667609697188035643395030102301304080185429473312506158873619021154295857527921871020689891471280008036462174125778141222364317236229735825445700881197712210686638460565199431492270647679417084949820164979862349042475912184369815184252678801521576394292512386179577307517048751952192647323718562077816982327992598105204282437329104383573414362091257415050601659226340548877233723058221135063772649403614873036676184028977034761545400861461593125593472245353810314315581561611751336586264234443868117021261556879632897352339442423933161092332865959529340994596236022525670289615421168396773090338580659708433321065906624095698945531544659828981580917177409386005617085154723025270470889065334887063845889630645030049958560269862407162703297230055545765437392361573753325484035128062378025157495173123991354606473427382451521633832573779446145118371397965797601720069097739879242936672620071384952758447395805076679147537409665661275066641129485191548588588806017232642300089881153537956515088063273290126160104873068517525529667629559039402981595282420906909777729302774218208278770102271233240078404315605642689118000140615005144098825193570795914798086125921667824993056740637667711201490051869383991959355398864381930815599354230716790632428844859679672093123431439804427152598265723077158707036954985717935813597659663301331618504321700704322561272446627183417137311926298351593111385010426784960090370361375177174910581262701949200443150104189932299254657663920228181340375701503989981363386340650518908234469568845767783815418340662855644899882681305176860155735359461830433123129282196698846999654444273949332930372363721863881444812999739290241838035036706337398131924342783980439575871218512188298499394217493059357098715383611343508663193127969105773538422014045635050801616897152835219523390469144024541278719054281688570826847021761650529366520864485381936678799263873077866604331935929428780913025853801991139947674281291447898745462905565034343310237718816458519241303881527047154179768244296159520577315503183525074079072409086114001532211818080581356261376986534113925543741279696706546274507372595128226948602478520857887576742998697304314697185612505366128566488902427059380313034545066617078710265971336604788747978279634797455305193454974884260914628187871414120410933119076941443695298633691127150721439286333227833039309584400466209325391745641490653303190949429625623104262059096825271521646974617907524627547562958527201694607264847255379873552789389593278576928837976063900839791977336993490336564650502900449725818883275051938341358230465894744266413588619207937304995899211995623678739626492670750745342500603240005546213021535201590582044664257230097589124256207387803113306776581587371374892166214707213263042232435551711636986160844782480755283960161879034984833279480813383871318342044974790067272450115314635328689023078618473235141328627485614752479492101002589546332527195232049763753834716148244499643404753429307469671323517905189564433586949448343312013309573093503511151042897408273112148082234112440032670462464921825207024406979948394358891563125021635436350743553701728093870800692877422626874710453124130799431515170537452820408834667421300365813408899242856441057400952826652417780722074410526530699058518642477447412582584418593497550100683697820021632854958944063327195487337261603023262394725013405613068179767880676150593452637795922411656363893980338614627344821075265404754313333858309535871715598980358207631237388580300672751414611381309517864337668427641526799462124282249479005469271954172070849551578435689884662818243886012013590018088640340322415262531403318676255816900749436546379214480235966422760231403246129112534787656652316379765068460804709256179726349631155314428500556917161975487081071610749861206542605702576915911959987846724882771843741712704376170426353295743435229838458612633873823658336026502994469886274774563266488345717780108017303374788814627315147265339365887683211870540516407637793652617286882761250971529570962571030860139219906745848672535896681716551223329612313778075016086076839845812331520488740324128520864908363597531354751470008581682482513652321449044132971909047383994101308768176251044513399463907047531095922075317011797006524406080220873896505896628291733044985925917242378684132732436881061362380984243164873687538173551291267356254201126847923512964349699063591011545394330934828741106930941623570654895495414179589360374047540020810436486701485356926495093606066824732436571451906629415682839104063623246431157115787298417576632239806450326634946538981429790139956451668179834804785830073693354137709931048203271691490631721436387745281831849051685275937230373906216316432071441172668469480980970743805841779425730520735072671128127178032571136232833829104806849021245092392498915634375409290785168802624609587728484889604161510411799801521169823217060040275121332685193070645035095982777346423357712963329535733176579257582420904962352635132790381634474495263941122908979830292948246854103430874551917336335671162111817218563472791392357371220577575162717275156374878059529254008512232380606937846852557075385060496796733198671922668256502759338433186258728994497168242075585490954983031945677964899777761529846027272015347338987738439997546414378702068373949258083157339648835067773238093805518532919348887951974343660358029074811274477843538549905011664042318065257649399698545042506989125351282405081964642453228826993461826450609655411016006684542395950769798145149979037372090932336487381729984708327668555713091909030318043583275760801234005010903102448443167285685219321492424507601650755921155583062254875695838338073785346744307071470431016196825024843728056833595642117576871509853829031413751343332485374820128409934882588930518012465063745723112048237481828691230059265673586450566367608541999148435356655285733473084034389226934928922557602901931694245759276746200434817561146975718329065529408641181683437682529973320497111144499562767452489391783760467964499203100565348528232118338562887755188109634758195272938949319930255216954805083696768184574303713598983467941025752685881072126749744861801423519143859111120727848292823349794735465749722403737752314836471289186316811902448310240846952142321134762717290625836838881735575294692106503567531381642052732619652562425479337403899549266809603066685845223053060897061367689346742099173022463692871406210031420656839055677713531453653525314892154084079833243981522588493814763379533828245949761143026246019619141475262969979385709602836444330422618044779803864153634340886192777278445736744114333328129011113172871656860832840180378386906170541027976171570321654413392728207216684699963423856799123846227537384280750714918225391124383197543201912025506152327739414209671271948542029245510455175101188541274766304624976263806620251702197142253847585424511979595071573038343471107684454236279954548189332590994533974950574098872000125574928285207094164074334679467087921739109451964575682235406103953119460164394781017405453565125218018408902875592159679206352805034927779574084231110502278790081912083162335259210085645332883844191116158323073302202038632818436871208168668546208311537775631167086720333626399416798684474492745020525187816815188759369247968398596772240170703038618495059660595889231275985018731245036597372976507166328628590894831509479503778835145132346634753723513847056511762069501442937567646288556472257756587814416294425229758927463874670288759519534257759936004047337243743958499041325384902720501909063274265669515421144653972485689017501109307644447193121271304266588995486852355983957759329131755455466048320242607445596340941208333071118864401974662184139802585442891963017871334520271907648389500904425532326098351445063166216713477965747313728934941466932553658136463115970261146086474191095215677334758369268271118983238576577103226564101132901685630281668308701506955999643884043955508803983798000330139106722194719905654195235155567476312778157244976752965554352766448630580893298343561576963463324153224708369184692139579722830531181933974217166392206669037251117308930857788952573040566158538392192507843979336434593245456482076192004734675289331336553333305819088590125437346442058443479367772084338602274309982829384630716026468792877371962710364179736504895417594833355354911124539031686948185956179347901667620005600585391463494647134420757452973012905525946810664638279154917241036478755365540205836060056948556578715397793339871486986378226053039290987934169696774534458802023824435037866249719816205903978804600231223289987710955861662110269868375233464416019622741731121489800973659863380133920561360306714735653739268830787273421199983153986837026524856391547049692058122560484359386876252673444241170906727439467685877162506559556840571755726150653019711175339072373099239634818025002280490618310318262217245178533077465447318104154177211907518479222810266756406210811044809630491013007312917356621973209491957974962604813565329737615708042969340525733372594718109127139312610295804107372149225359334887563817844463049144309710119562149605716473262640665669004149741461755293354348523865453190306467584979859289411382791446548124730492760434550016891609235468022822146022422548278156248015402335643522410865227513695323472784353134472553384512856159080581202226188159844279512269343032327496466665021080111851972137005288641620332170155105942563611044860271148936791416353377106736893341869707041286084620525655435808719427813197348430299507056833367635601564485645216252686759861107164672375833273073384583854288176061065995509170854389676820373907216811139363040321382376420947850019085541203855772295502398121351655948769051083207301187498395048064302846554095997908515209673140427690889935393063792795126986955682319181456277758612927840424653648147377207345648579916922088673615754273990489085179251404455870132892721221389845457082551581888321346843314040115010856974172936040872073709774434374937899280866105916802888319289882828540067963454562769001062199410283372259602789189788675946224747986640975542258684809434410009306194497982173972279078953085032598478549005013894945797027698793747645597225573751155890812533034424126334788767421512575551117646702796532649381514761093911512956418967311172530311150361140838392728085738647024869209354840979124362449001941850671485944169368876646638349511974138960378719944300528942873812608125782591083483006545324644468108818176913591042669020263669550501662876453955867869285598980415569825489535797870029740659099297242586691432203347354704749384141170493773921652700590806465796860561666804950469773557393262391951706023128091644731803081649614463773701677153034213303412310283733284977624300856581262591737681044842229932049138198244806961792597491959837714074587489995528341654867351464373449101157320848770696328878288118624644314033761514708983123696473179642022367864250454401900464966133748780637603352602841789593848342702192871542463375680525055917277614902023846983481633620643181145465376627130758209093130678243868213021661157837301926587046120731209232094639740240117422591347194763508067353271790465163563002969592665425273684707912284139716136906912558032451857862610179628990588324537214701309876422295934004685722006568480559104700517698619891720076221915063487647547086157236761592965420815590032739671921895369038750176072814642594813224996754288424318559892492019482108328483367069457929031320081011868143171590612019702012720045871067757226913413799168077073203320722596999246524306762047670148310489649316573815422553702177530735916374598638039913754373856000926624978727282659957766492355939108592668424049234543302848250869098197829835708121496574827729332952844645411871773518015705181980123900479439721855593800690507840070843910744460142399974503158930835104759533960062911974104975929655630987686905994616479038809748633906490980467429847577631011101074642313551626653796388358100518396720496566907666072923486186645377757521852084284657734076315148284615994564091874983070862531002334996412391964313363379744203360206782429181428905892701293868732886652907791759045185512235257375550849644040653138195519891013611711362355577784264377640756139498263137183224771704822120563706638356307724996621371842503636355562954809465335821395986145696402762552771648621527376149404589216555349151826007799342741826609942161037715409417867430958956103559511334461942804029967121010388808567490305731604212504386124436801285455213677561901188646361038332099939502805321317996881352478212719950974429199440042565341172869273726569565285064939961351584266492343920156534692614433254039697205828335078292247325159265661773898511248117736658557240486449880305822445444065777699094984949462462794719421786945687990630007841263370469331101870659744321401803231733830028685899283025250851647252084154249601096030344373636255915412252141595565643864460927261536080266910319056183090758988915765800309613912154250995438869021338856818582168726421529092363885643236361741871004732244242806524144020191291942177211059128324586930530061277075083737745508436211306715722730607588209796870506253466964538752733289232483518663986168041245435705627644921800317841981796154629534082437061796318082935385725249696413186179491801099825475688337487761997168350552321344319747177990571684103721684057647029868657706076536196315123478276071129344860525847127614559577437748546730396259009159771601839381818286739611103002943880069336284894907269121979994542946130473926270706951528715109802586398873332420690527134559539502637405096543765517759760928963169366646640858812362181816694208116581527263123099303133803549213681934511334431684548210577030170882779216409854787508931875673038753650649007129499022679404940098452268753262194476447341251775770697484061759779951724671895311311767622503917893131240827091355367732192383108710422293687772586505353632237822077529978919764748991187153337530374758375470177388364754531023526118300546443429840606344931868195710983368757896188545052049801809657018738573886133852738046085517343614145681190109510052003732786794568249572656594403711131868014424346163178414060517414591091557289891982687118857201604036338492990178435227639641172262928425939499608389712949585998702533828728427945512096834734548636859582329411850055617559196153829975550429229769541852565960726502606851505875639027107315284082974846796157310498898597542844413088011226566414178270272729215838232783883363379569105725206737210514338067076927162984235632546051525318073335772878885818111174448655816549913677061601442920947050439571942076472587979434941450411811262376616150026716034142861163003115523963384626098297742048044025952014216399510513823456457285520442271690281916953609287985533539831008955845274625536633775694783263781391967314262759191863601019736190181861886956435013061228120838678813334653208464004813526079775144404827793776792744732727764296620190621537228492442820592774956349690617496742100303616589783431823004663593257280971059859580710123657350940042525555930121298498531893277013526258553033434825218186081122201585488812037003984777445034765040576169157200668381444218104691550983758714681646476166662613503753566659184499983620145704667688379142740476824453296778309671656635317882522986771293693152878491662721262536560273485641506940038874574559943665119038251073738371746474689370759479766265627234742982802491056413603869382385211579463964046354554243672595021906220930974855586283254745506162645730912560773720835040733524701119014193083016430168432015006947591707074170193507799123571882438653838248407911394090795700439204849595348583616122058002994759032725454827053668735270834681224440392903133754620512476240659929967451871077828549825874505964370662362874274034692160330194009904841063154682829867261339473253446220536296630905506513024228439772835031503633850919476666919622973234996312591452406090580580353656933672567413931718729669866696549812681182676370845486851300245173128512562357373435643666609445004169987442970669047098936784978833389719318196377798323692649868790315878192964348051546779309001746155175712367253938431011424250610491843366885965791844945889416196033334154090394041516912468489034113718553247939696739966043190464397178438095256860665836755573104640081446827946592927658590367805388614079557593601285266970117487929951863349791049781022969918064756382956495248941185335864005452167214174991418913905072854329833813666879547028729729367908921848324560057004945267805126234058387952437287026241910501417020234727426437601264371554495839247129793033017275944736610827068259254877222553755543791774466573301875793838443345737202887016749113636701735487287410270960097695393043595029933855564167914258729353725281402565307313811911110978031570461168624131094373137793862412311980570709170114745553304147065696561240335693142843960308432528890270802803074570357958975952733222874915954637113586518237253719402144266806873134377734130962170999685733825885671536258419057593279018887406016522268750292094479959095156995999158291455270310430082731552319519459211790790672611463922128822567991273759390801091393205791446423652587038741883885531737831262440591695346658820078704250008220334154477143233999319816033277009125723741744556835304830190493328215399663281629350286470232621827543056842739033200689753538896559818169100836675506898148417350113815804045578060935263910870908901290078856469240419593811646431922437680190675221165151868700880532997333559086633932410737659311305885372768881395506007727496217312677232364909856071205143355918801314229358875489656847557250448139379002017903875113325234623282307768383243231331959588929502105956032906747238592944754292242162420814278930970903397142441367671343930419189008240036212336032075007459726766221617914140426088680811153590853590544447403966715430797770213647671100474245491003792846449496056826607204556041346998420464193641789802548776490528763153858049340933269990261142218896100431884788236711628026797998925666924424548509833621471666935456598425156199391684110244364832963283496778678875392327485799844995519001138808775596266780272421038807951456916208952549819153737969333312206320867480987585531922888620999335875033453742018637379078957529032795036604271070010554294488723893980563395830724621975887906731387117557478389773006952765258100553544858447524162106129016015737163048430631928621336780931216409279792018401153755192988363496210282346172896872606259793916895136881454360965410745281772777202215708083215131309711292376468047195659179526368276971242807827920497947211761067840285163141511010429204619107209224679383150648478997819367243836660350625106444864191259620003386281793831471150846981474864946517778522654634214709947794745408801251265972713426439565663875605074082889747801513559918061327584946684180470626382453648680887835553407245519456637672932152085158323976698366568477917015917946673455257089174800888264027033449615211331700779739744286334979633710982537492854893609765752869187055318188992877294834610529415273312649647874104608497194597165706840484205492865907711618032930373138956988354322702083264461530219302227039094370783559882700025910466277505840144192133835923160464974550880888161770093521727300032865363986857118405901243389262425132161004120021127408548453135534470789398747123361066610051912734864302813601512618375085584651852279998750479088572729361543085072514792173752913036449999525571740939550992522898299081149632567419799913788944144018782810663218860119469684666782791336564565997434490102247068044461694470264219044526542187695897119388383924558129985654124008099045298339381671951458927758142064407671800347056679911240909988108168818812847625739758173004490588348082271467795898416661460361250849992520578869151786248118138164247002662033223295413736148993708342785976406382248264469413477946596760770720903369987302088849264641662830861176782957842536229236598393224086547723043691564878512792075681822692529113670357862451159191395293575785650823202594185151611846976952226982810221061182837787972851435075999745625817022586338888437124880154090711729758413355908590879338740528851199688291680873738465129127564586145980494403525247910681861103905695405448156066131235025975270138574954718068200359151595400809609380719844198709582949971028891227544471032117364340981574366480143479301065263610900507352292902844556344318418458313981580057351362233871793423339043869731236314376888480865388676305708393925416137378807809927893580551099560600264820307050532106634411517105805082177647976051951182959009031499295239966632237238041623393623119253666115135280102995879118216820043695174608434615838585650934062460311432159997475714919935287147436776602553428072936454139463504169967622052025013448438675501383601654874618034364053245083602430029539158799978102861810784728317287350479531259921927189317412606929009589317246032102170202151771110632254218650739142462431759136925202373563863298660874494356524105093314272387674095889078315834071575956261803533949328814222241696108169794630005207075674982101831644785090504431105590620042418706359672518808984957886500748783951373626920259100929166192314000955007818942203837478945325022812707640526685650572327260879121820060530076599111285968951405724172779239641420999452453932031429983447623469812294235176038607228553086277238614431346991809801952300177929534313681300857400056030313626209609790549518785152138015349560569179187124708827944930404525484713238834015392245825084761606982017020493944602480690004135164204145881094923227890107660361452410218790066364111588119342009852517593478754430078462983298667804879699952334909117511916269538059325280427987850075331805731020347374063155637383963225244123982369329688818270143576795623313175664724702325942367591479863346873089296891976311655670498069317622715570934420666301429836753987262235536558357262954150152872610359924278907946602995132603092458858279531393267035057822437472510112992095089307860826079105324195332085296410856405346956003942022242030169516495902823068979042202504662755374663157890700434789171344446412376627045432093852140728675763801938867781680494789210755851335619250512061745217816873929214844656764656251713444970757242958073402929725732471670960240290577780540102301009364097836416704660094596325640865595650855688424043596073281948125351951150383021787564919773452787951397910048204851775650187350568543606381533347986234220409131398798699383623558735058052572841289599809194074211052211116034498262405424869064421295291761754555933192689199406858971206425696284395435558987989950848852791877661232220780710125607063438644995308649670419050406274060346791133690548897686993092988852745729563107669204933437004901778255710133862069590904132733429820519376299391704998346027897715919722132005612735327060009981322231645859240706903973801859441541250830852168462972374871056839630341771464483430267624441919484743886185343108595801677835459589939467335000190568738854361926396718881875462747052192282183486000893443694975278199407669600392948015520267558310292008905414790565817718325768285584783821169593511336692777600705405261553157322305475024476573497222442845644761735285969179198485177908739258349697897238057566025619262373002261269356726910388435119837136148113014551512250453309471350530213033793651083194469477801719541672142825025726513489697633779495970419761429611686761830883712281224501376890640682694865024993370013404074909932126209390427489092822071657078780330457013014675345230770967248360781725553640797259941176855950746771403281792324400992432829804412740391615791400083945081646285662897725037492700661473354451200686097345629999366571906452572761963259202847329155988888349973554464279027373969360175407577255131404289112743742009024009313250894848669044903767554527215439412868870872378301214589690144838677405666722477050145359451495042668134323518398738133728904103581824649025597766574948119976944475700677533629204298973525437712217351163984315394876699730366606563871618378237338098235125986219005478873748760683884514097717545283634953603334081080301547054193497276721408945702727764674951906835768107665823040084517555655912977435118518904442560541401611441812179667705449968380089547901598954591548241787521784854505654395375484719400398924944929984963888461859467253596210943679546287110432844212128646108308280953652361529278409216982716572771790207603465754873293554232311045652756100386972946905428942998840720132794610106839245573494807495293491901665610865214464578051147185724175582207579076335779108386358994559032759270716783427834995820918536797305536865763678355658421423593724646887553974635312283922451884380277656454580388926142919401577125373366154295465265755854597242254111862710571448670459304926300965593545628370358662393198720021716837846442796439605653815458476404342653652287919553809640734907628816946367142943391259744577093991639223905782786966287954703473310480809915939830148143785969359348493417638788966577165175194713107208758682495331261353817683898128548309869170383217442326283337131371150700830007536667381491096551136513583907949470494779888095081849632177504635354317600677726873619342793637903577031450851765866872414419053227524164688278251206341657671261666119781879496976979895201908192784462439209594954388630604777616170227448725191888066850221400277566482509553605813868371342947643994293253798648382509843460633876041886997736987091961226894239822536834084092132842297426140766320722361357812982062726531114198519532552065291794593155852932794750689543062311190371163898257911919683429032410167017202957020754998216586369892311930613148768134899085684202177490934904357789253517717413501001285544881885102032478283895138510843941725119723463408406836707198016049194238206518429327578479945566005272521706568706057217542813599973715552079797612060828984044196559250991743076928064290456088319971978359579907172960732263888815234431771106826967629714647780911722788242457820832907124117446924267148243705652486417547069203656375418706400481718015023674494941786462959220082188823206274027346307758960163372050687144232526828255188864671027566534852450518370375254823544395025176663054562304045598551484603466484690896302304012283734238049397435928258845914483291719631436743989014376319166946497429309457086478123957580228380148533125698658903097554619176824727757558249221258897759682184143196875291554221952180606751946477001069752595445340293116778962349298512488048152533796932518326257353706667329510801173145098630484214453238248902844306769917825984081229932588863005807406501121375512668454717752523873840790215881373108654021045127350342839120903295034062819910663615677095852299374732834965468647342092544633681712554267864285454743008781640615675513683390497904401898258275479385684372027493588137836357527094770336024743406906989048182267941946009220194323203913657742146786103900143127212686821160329607187269346369595730959847741189250922104395674238282610659978004545901588292386252041669428443924743925323348006147426255400562652312820855105259314517554020196238430034239238377378884766808840642084656051891615704577654916905280698806751846256513721174905432676969613139022332730611491984670713754958718322190544984259948767363119442712420080469431677100299513606916288703499236226700283973741095168423408274684045460878130013855607687719808637526766265303735120182258351615727880030374356230209677944648708780959053780251994758767337139793261583354593211218773605590718597237206684996847739113066758067386219144735544515288792807264262286605171555620267840632828716178554234392872473454388455721807121093725395590267098980565332374755047222725528646456012887853837214322820964173602939926794288897536459638131533158033190972139142737186868476790684647690910823857390592360488561027745307375603595369319708810137512499297917795741464985527396844739439389484253670992473643307498597310702292830939267977458798891346371914966624682579692897802395174347649069324845464992966917965510725034691387395753126501443593207784726616570810710229194914880811976861021717467211634567983451744593712425120896105694824626592666647795898956283971692254142793555703955759724644182324206608733011314905522225862961022425300566395631427333844977634967903474536801378251011108060810862014325838424564899056019422136762859387634997631420068870074013225268681371440107555173423368242605517100069557511744706107219562044186298978570505780946209480346939728381813958513096507178903379226437634056453898789611481419326946479547230424549303150671035976169038336229928345639687451444098656704599260160764728454816568463625842789685576715246170304236511766649881616696651682385771303833143744834256027699842716903651021458663484241243367135751624668042846976546524924782990578028071130950946236987711388186527265114399194883347114828809673730035985177603221984891084744870440285174715397000028054802897313957103760008381876112111988455021893343310939089193498174792017692247225860966293389307947418231750992476986291222338573893407232652451110810738812201553173692872305060151731322288352628392330356401765413843800251950514888368700019967993924650705055222017666228752099009487673713543084178225364815102616266987396406614404204592523954170627830780785510730103796255957284613878768089734267430308278161076728032541447104720821259025227237421516926568314360008461401034750572774931688520170125235572174007961845397963296861007305960424718433740540948084481977399319295093442315883928324784657493498902409042357950909467184221711134824931632135740405280519538857483466611985026176758188292772825037753934991133267162092079338871020288233325635828578861607988587625082246226618868476013751621009492923380169876048094494935505304602714036465964137843378093755490172175721953584217445373613669233876528383593875201146155394593654696169727023028854296131160806625462766717625106168870932049494883626546963179792047246529130628200557733253643318692125667030255586528944961012521268249238366608079511009766967875558911725898843356798934003348044689602746418122703013532588382087796983082627251219987629703927359269363339827346322061589363722464830047928433948397918301268344073337601888820843440091441622655199411812904884606208607843074490140306771347393729607718731874476631647141645650287271110398064715688414353303860994750331199059433838687172369896544819411898293208718733890176514550869184886744547719133029895280731937331109008892044768682392480611401155327443665672021072117335548654490861307151803328535500419519962318173298579012485734783394543299758563110972323562607240647142492851142396087115760142224910283617744551661799183056562246181634758546026718959140338678286142049464725329086466032772939492707017148919606990856023465114642306760272042415543410131637509553833944132193704650587373336350823970168784757355904744370538312848937571985862659072853094395531498064041779220048451142186933560252579238713498149351445569622689938832837912205754579070991379902129080129725820095003820338086529874615288164109924742461078473083908085947411823877930340184478675718698960906450873651464117254019155256855912357034564823714441524367488700629072526373569049566222197599999524340867707191394255386065394585729727838364867739721707699372890463648225366807742501278215424495561963389944526639307023768558537106121443815142202931736432178067587805775536604703782870647530690026735853570845351912527174192890296080060594534701315036418751645855318720850822437410807978054465484329349218583437407685776316203471292599576030916134528078961659221385148680963173199722911678247465955333529055364710187938262057000613093726457126690002590797407794379215009878804947383362562116970931691874281628809010452237771066740750081707648346985365596897596780679322210688368939595311853669608694887173037863077952471257501895450895937562156280606481329739137451168412538019879378785352761049829728902498221009453818133242889984064116880018986053976117752883895460532713178078875891990964375455061952817058781174883962144326870231039264781814732715926922162064066143101202689747353282540573058863261500014265011746182969883659898309140485963476553236011417223783932868418002205638180602887627610588712516592838580309963252996186278875554493294505255640957615770854040034089813503381453284917836453734892501650519280102597280021823365015111516237998806625990277352702461423973862749425302234520014163886384677050306159999058516907612850451485956219178596590558802292350081373365218050237923250587358481266849702954466569656608210358164000958954893979629576995451705230717303938944082100575896157101885993604460393393511896935970538929795141183373202577097155469373028269738405487194806997236240201110537154811380965924475136008058882903706899903266172881866251495548232355567991652144283637373765480285428234169700334841156686322165087089795692856345209325341513664457411944122862044079088273469864922174139993126375955162788397472724254027262924624557150469079277475805890646650418033263533891987123728156374975732487707465892346806342566230703216953910622840471744458694614705794281422480673134207971269365117780079836530118138591731103179064580789089307122940227632180757474339172660703552643881629997213814278435980142519357970426475363823042065719037425015123896314408036165703950768965509266654964989169846876349551462861803817282015731402313230133613852586085148312840318154083376169069183101090714173616166119574808958289890242770098481513407291108418264520031312128372344412389695922802626088825162800528574633405076985195678621789081060928404684876351638722919837615141935726440477237977291721538360950519931804665588285947813408552353586534974892341572051670065232595919484389329571960529106984781095640867110097765887452415654145534201821821221527581340758372769707232890817162227371874740959016256736190935103586233191479403503848298999616253813400701320385588878894793387019305787139245501267096326199913153701900536957539299968244111608401701734513142393249858820402775658718494622457083559735585417853249668126908105899119657101679729954462899963155907830458547559107679181908357454315539741427602886780332123083843564115350346745350771493427008801241478904748799895889635345978309692316524373029066740351520866588197489107872936529801457257527063219515730410246859213436200387959162416129176331196132897532838727387347299781970511860872812802504033693168839016828055002508033900198016903580232795430289994677548866205607572793121966578347940074631231446001269375562255411717290804136185002607649510394593564229223739091774020968884005587121551992336421980453010559685926763391801200364738006560621516995421098410868761761226051028840695594163366748495311402529157635086400488209209822337422271030272034002921800679348614920218720016465683686043421279158612187315369990554223335693019858395246901349643711228542412444802205726464060153181097214062691124208032867975555634136506512395049817727134967225902866206142133861093387201571369570005110421341267971466769181094466237387770397560404434601332775948631204732077825292531124932784147202613220078416357462458886198579891147787655628271589550744877195484958155233866272412753413372875235192794701437394196059976766073205304437662600589144268103032038471176182685515915747535729779670065675834517287733417740055360991899265309242162455773580106955167741436008948998216808339472399854590536093508184661544314677595856193109520810192671532265536509701303555170429954685614348251775967750099027763644951419800657361637683859831306209739085543243010589180445452065010669610787280155978765850431194346027891286473280084885431438651773855953940743821794612780255210119921085852695900166913264575497788738521899985547407558772163838387796623011235951466191352749608591189569683940451122631505951134980249517941553831454347233815910354213101038660669362487662972970359414827470280015560314906394662377141296001324359552219790313917257081018090726421413675771085579758902075879906539589264483340129095363527624647121571765995602697763637794611573106134408404294112179193218289384278220916910419883450736659101295403252073053909903029072043033679771407462546935833234648732870650506784720414811867287542030317610743684708880647149451100254625928388720780271203276761750871233131819965881985121832661753774707774275587883527413549809705413672139633656274988699085732885891403655269982046528308025886499575555402294037071512093635642967657279571967287389376835004188297916048216842033099948791919046526419670506738374355647862656271618240876167637833468818493941679203892527718055179793287104879274034676731091840927285436917698988048593518152273285553751055845153754814447242949478114095387633618260091757940140329569193446447212737452785233382231195076289712564940889663791101895395351325965527128408781169617001066980073103628445597159979157246821521212431112328683323937115582070202743206971369420886956268913477653074941398039238764785239275416532613031588873344483451813025637556630646200962332418077562332524799099137385327740805639372814585418351483412432006041911212801609405258423302354994149122218000247747780553668093095619737555839995990089849029730744419880637317777613421074286149745143870276704172254764443562000935102306325326526878380511523909529670646575065414368132364786724613961056159944898285948036868824369743560725104555841771188421387519793742478094035563475196084624428925853780593259550047464009711708786614212601081991765550129178288951731755566482459805805884430244074381417743459580931807383354014612575330153277401211659252444399406640289804922494096450405110051799379780805817444167060871166500808978592854442464748327652450852879309374846073209592232750410927265705147408335452469819607354544383163808784660391259349372788004804949285360466199321894474844017561619494859842634323071613160792428729876587634254087857946454097420877996078986578438534466293347714917847042796585365203985379774181732189036906885442030062031467734837570807785395244234986738328649673356273303816693765525620765383006370004349776650035022272939522466689202332819793356863408301347502024606529604614467367531623640868460060201967059134587807260494708075556250293061815908663002584608613320644765998314615073930617022406280411613896707647979411199202834690235875558348986301501549016202103729959610404929195242381816046385739898062266720556132979668425458734884538408845218034464998748346064691543075301127316167557602632449925770909531479256303770314433671633831769299875614477909250683130942801720664010971267263568671077820908655383570294503859504810937213040209441985673066736432268835018717285235974778213236042850032616559158645589255952719746084280361476312724317329247805725843913750338974598639544252850557640626915002091323953622395251406673005393657829712041046441324686744653043084603404533639902093527915233834656154611290830888916400878504400513822994985185716719645605608906650594609224991339445380194638203501696172530669869487829392890650980436739591043577646300538172880985786515873282183211025513329920287811647823467802730397131134131908371191806021101895477654617366186228786969428392271462213160998337695467303496032379140266846248440331587756666182642315474159183907760912689484620021131963643607856694858391336703676365064193072498140257074113456983782157403741334964266592598587639294230908323968750775260169641121154981609280080420599490494603014597459819205232118770012338647795953745011585960586614527778984977957956257536196919011100952314303620176818901766813426879272233622544027164732947944861774696714721439923699849630872335727027200464041064610688302611093348611874535533062329455401531692162302176706790367399834881597052279371568670570314035602375354325338524145494847563937504926333279343823568892911099516698114206778717781231774668095638611745125168118712666225793068303375389427481066595201172905038948829682070028474265924967554309257563612358548963932471517790580851460068692770343812644160753103117279978214265665259307357720054689395829964958409276961063948787827558765685131463056795293617789718928852287918244062699852190497448869603834764394637154563663977511818572300077075180361844510466670303445179909980836702072034667110114037641899380239325797214405080005119686241099524963519024488325110461223652657198229828289635474494000120928003652239156030809657413939900464709906413531108236883684100664085311124358075073049295452000574573042603024793394896110844253310187239500735411999007321984591632486739863484921158470133167532669288228199683642715180994472810540897212830125082063196667663655862807794104755522950623322776141659316002038164948780526825573547543494567548708991176506647922302709364840562575323754469030337300834987877559112432568329335755890619138046449631768946893914720246001654377272867026073084779110635079028663415760338276379069454131777975140344626075306552213130431118059011425471400948239311356789994813608696274513758558694068841177236560121513990240574815547931659608668951428545912129357033350115747210334090070192424542594353864626978028516298921289656119073031081610942387994196178567469934133774417317141417916291882631039139004955540115473147175714235498511495989354500340726461158759931166308752095209587632605009282884773525927287268676810084857126952837914467229714737405850415154863067755806719880231132751914062153531638838348592448433861274871646709878199418913844868369059841186244228144778050694871108471613773806408782223171667711211061098404482489768695128777972595655703025049681307885858373422522553230210637677729728604442247839754103968312606877843749142267519926418561264686354680025638517578366929747521124134035817146286296506141296937922779718616394586038084370745384979877911254801577227517877682968693566771494341610615997286804474904125080212176647033214178195512917432451205320621405185079088057789107890750222526699532171455266923481652891667721875842702505856557991106126581325672087084036914877651034294950938159116221289356903849905524808555030615740582325767968331133748700013049009486630815751496334224211854069989162660870641822635129999732765482056225511684537901789310889654416020070420775163750962175391328800171852672153662084023587355344070022533527037229199185776014099849989842792927695974406779831712104883857238420653108595717633021213778771949543143688914168284070949300345252430202717021429675070540241177890013308937356177227645497911653979683207820423341066911134173677177465801240695020889445301242578094167514853120683886882094793809733782644618276653101824062461764912659980932958425123837705138842962571942714704723232057769650734212677992661567222098130967383360538468915064256767151823632755551740025077715318322790265551972964712146337170570982052430302535241651757733248937781757850351825377030600804202591722443662652534607511850195678136050102970032250351106621872169386552799411993625068062024403061182377179780483317382453919217491056816609754981885012708436252212516854301372042655753185338160924119590188630828677488355754710534185699067385502883987638105483144292434487504734606405144440443430659250562239839729844671782634843854573028757142508954710974080167683808594563970822604801803097506478115282328086768472001575909939128635887733407034109413196000740955710869422392245144935970626062036874183285716787345447287119795919660156126179907199810511261279253023893147976249583042074283753478945528840862814380885222860150754362236722172296158206147934325483551420974395402040042900707157174796984123154223177363836030709284566712188620103311179205900974104020789219485744228299861474895812318027799747300171810118114066093377622157644010639322208043958687150070207016328425020249924401080784204443336262616466645881891755087698196963870101619956605898812204611966247442046120675650353735652887735271275891525832953732976233833920321059514621367139952646965433544735612225510015227850353126134761849290689639288008280476524836724577791973268317563753555463677676733455037366838688448324421303603713379170031375608965543969837560669642388526565102480349946801668608764957114654701016655083989309762788700632695288888730670405609533583566556563662709966702998759113050964290348528280522367230424110142651649133151150487249422500334989842256117190862681855768750120713915641735927574234307012919252148839131888684397025081925481365197061991032805779753078667976182205578802143684636200182918241870877781287985174336747426338608581675667469653195186034245820290676120084946184266218628756091471024396944315053752684527233997831100920125624809532625736296064101784747443583892642661324532415986925329049513060619305828057414856343398126560250810244280017417380093488063453089175637533051351067441540435800661418184008278665084251251452067488496080514803086787255220408382857656765040339876551891516321398153339762437685366451194767337182689652925389615358293155461506764399387707239671677099834287533519620259876828704870805509084103327272180340256551135369568908470157463594052513880919547681748945090632690061343800544157536244190474609290051153184669371761472595941645406141393173404101109692946607801751327134463055012419732835321648581921591029802184287401171945079069197013665810100481567706815366141205555678583355612939309874401389723852632947420358066536261459466770657337668524153061178273901890273959903749073862289357120424294021340531222031841483731767862702732125478059809276422016857896995988725287629003482519713814676919291052637909524158281934233356304922033526172517446101770178850056311996306378827505930314550392451697593657595628103383925054131736316122719193166141292767993818409707471935983807382729390795279820119181457040526971863545613936550270280211405654610128406273026448050472330798741048787184391657432405923435603064249633520735991965488325694491643327061472682761273625466025600362715043114713341634238259793257429831602254595388690006083564236687190283454694733523194453905581767636038991315720634112065657170188872108806989546011390787977189423602144646955520945683434622903268982848734269997196443059108446978725181479975165472293617791062536489020092159637350745390757231191722510791845565096712259888158457804333497686198682561407782937140468623754573705830800607205380731588396718165857333258547714911579922755510264418908929154885441024758934897900645915085364480593947398954626343289315166843037611074207202594455075125568765919017496472927718217708111712996112189058753466394475709946885692191376750724213935992860563299071998363305124330179738313690831204516870307991141956383495920361220763017528066395850193501116247652571172040433726064825294626194751571622974597585364078680599039666131231329675267268201501837266847787288989509215275729604077386378606848893040503744267706533126255142622577946841991559594276927392915935581307308778537779915241393570702237435843987292339360886527760424294129677443565126476837617842288004142872626389210849280589741724919904825838749586516214540091612784393864316257769663414847285014420382651241851535728830341923674199769631144507753704214905556059123226276728800773235686496613575595935229479838233649838378559640596854800704941619060967326720344903775591573745519449354110129028624208256128378385877604547996058517335997531114424741043805880428471293059311682171045606467032728010513005819782986821556534188702438011479247075041568949561431571649927608779994981223179902619549015752402479941301480326715834647728960104988814968334531997178846223602251538207998130651030249085816045812363036079031054435742868658860526919322152625134643109902815241856061764850457840986449222338893898954653248944086465723575336999528372416265944487281925711213029587277815015880452331591103618630982821461450345577598884224108053576960352109471055039898322709123856633488342549195207381295678913517285554491366922340934859026083565681519991822725892447538981305534264659801671023927455144974229462308956094779864868763198905386917237222194311959044193027121429024800349008120595615801007767744990566502384251604331446974342473639138731034853876401632740646054246028332887291085711893550975436724920500538705294945604171512460398233930186575356349481689232844989316796710914298941238558878383908372591419896445842503209773627596996269088420830211448708847874736282805066010898262624828474772350303953926111046334465195645076427469166901839749163026177240036967335121731148994333997375699791233563433521002619153464834277754886487550906508944913398367865085304708989687468666165780070856513152725077659028284242475900477651175332300853326030664089476290488175184237905525208417131779562042286104101957426176127635841911792001432893723116797435185949677065856603039921152825027763979558993794427783458710375199142452188221860771012442450692442123140642323245325668600100327900223718253388144744853938783129217441118488325713750794133740665927556415915657821874220426990507572896123851330214898661525757230724919883370002967931510627996353656889825854229116802331992275197382829387568963815252491151076682936537307810674621279444783810470310362809349480425079107452953801077377902783285106657643496669146636261529508584833906506839580628496360954857282294315797946838485509091453045418367993593962487284943956882160907382679824533142984157600894121158395294122033314846433500788570582903062683648830317518267875929672434097393623577929406053099976071185088539681209467775568904715680682736219350934967766028778995059110158642648852205812671229348313666783129129773317934006852329817489323337710116492489337537540605805202374767746503386506015839795966678950345884140623232535596667682203385369774255578779809215382411206855268714921047388706441695011594835268118092119029447425034355334063670826700514274817517988086724643683924192537898850441970467067675159872056001487274620561562921341088893963799691606631512176533348764955726431721296072378586635673463407614644630937692220885375336223707727650941150314519054967501062091265450169225696651295460614912330944821566324832825493304640502219027740602364130899069178665329286533919174990722706749226937965949106447105512899781040658497623664984236605284100206855029496687353106806595579725738406229576426581326815646815747689922064716298187332283706065958461661033240447444585086465191294587332086104115127231136741734928988856430234097293535524225816401160384796943738996924737297823290526641793188401453873854826986808290013338058653544806490731071355620661439918676076252492465145302137646783126014532030724621198261624527929301227607706065347440213212579387085776594044103607573780942384034931770521824954899783555361328050639023690229971175583424981760149179379973222486197767301133066577067546200986635998092348920148482868053462287994901236533004553406698042482998268971568437301991357577338818415946599175060508758772063865948086700108663373604423973058144247393346807419055891555666594968985083313368857307540592451676051367734337296544062993131277413505000514306103041897381943894171646313810918388545293567976154284244921976876189290545736807451579620075742052243721905160937568435636001988250034669051839961200667968087574950290694711564638923902291710048696321409665119574133801124618610140427126609563654953564133749689756457895333216471294491629198765908303190076882182468363511407929531014769769648554357747347019190571999785803946711505901157311166465102283069344016506916772739138115105854502330167777720889506797948751388001423845176504081203170803046511092146641857010937190688035665949226931026228739634643222147536921415871464502720461868695743108803044481240883854291199192856510914074412380897491815303191573691031708132871456554538767947306275536926292408880700010640474687474063262030778147950678031573891924254211718146738942514438872879011467578682348795081916279540803857022915920038069879861085954192543112493160270566728305843438408801392841556821446152770398850606106815785696873690533067388060101434113598011075349301123170974727336996355412497656778706345608632887759522811816763998504258200392933070256664403021730022259861258119992841509265185367877944578911922387460568273026095159191004939003955697426656884048595380918948878196358540600866550616129591821681502867084802390491810880673950788971641284462494794543664345945379688343221986129816733684037247451788563424717716651345886398752337931939216412059360618303012412869755806987621822997735685424172901722927788139359520797590086359256282471352643135297791536891739578701873088666213144706395588041135501087027552810216517562040174315903601716525198590009910983047368698147340074114948416769468938969736269915406772533852185949521505160971181045656108215535425193555428693897208832543905884136769852566585248040913655424317491105051399136759194335585995570905413975173712176964263970693644021126391989130908495928645311471510188741925183820309884636562149777014580376122298776045842203973310099545958283327337217884544509381503115264774966866433072002487045117482338356139280068397757143740825999661613572236170178047919404625386224588098587709122113318337926995533771600833271526111176238922898884808988305012935312202431476352816297835305581758684060549066580471076011089103655550124521340184465105770636107642829159092379683919609148200864872465857339200471110347394189514881408928074589134939007138025626476061552035490947545345381627685622795375460044009141081907979221295419486505662751615627400035115225089117848049033490836419223286210741780248493756641062111402869641320413024294890059994163893974403888494502343613108489619489840792046719557457165155955143339121391811033251849876594692658901099071365677284344544200284352506884735893524215841265807602653781554360749659621053017768660695931216512050911126676792973110832050348492052636472768120901302748402485733830401321027175347512785587755600615818514934130334311168768242815547521119024061636550016950931754987748390125876648160516656148206322868731116362787361474775411151670851851594770222041243262635205429949471736594218017500537032519373844945024510873189875442037837715307514609768834923223900580765903842674334870662563632559992611757435602685896592599739184269688614460214272291000533180712648381946585492087836749997479128423948267940606255620036809356895122584940028192391261162989388031785913794970644479260033840977432540047766215464515565677113820161867753539304924888143871409971102396696247016603627797212273195927892136726865597225650559398644708935443041532191680513675318449722428254095740567055091655144900707245390734362927312175979429132388733635579446411111596185167509864468871480934214469405979367813345118689400941510587044798913187169984421515910436932905756299869827251372380592130268596471310903555599717725959336812121780529255004399662198586716784839539627234870880580149676782953488681836917403651834395861626386356299276597466631909171720665453895789031671981472403941797091743789396878402413498270429000369125819544002616754915217650128106668236229399364189225667895314940612082171034791134753616325006671712980334802809447186237772972080472375901089407740088664068454259425199954414423690772887458529779694569738577672453576814117685953768494962809938299313831978940030514798764951341333597628401829379013141565583881838307906459305311949846136886755416890577970800583218722770771731159284752504813352606373031568858742794178962655079501045872965622169415933565452124424269884921886407403685256655013545621056131825350450659751856142970882546249779196699108078374465871712681552004745437371578573521369436651001859387058351468865531841426979038224246960513404807401112023851540081725794672880876619873696351174606875194266453479362145731687397711452223983382019720717303403682577331624776015466793283083958527083598492233261142129852139581284546881769788663967323037393328799496819840085648148345336569758856067516710143660337357600735077745864163660798668307985804659143610576308470578424999908607218303644959460704514839583076186645419905314940803837112881054896833615933898897764485515545577638458607123524051880307262711647894396629516856879138079390409460757999554558149010953072852403493793402380361812906111091829881887192475355645687569656749676708145382740123630855632179248514505451740966277948715186847179077877031575926054840544231400876334249837785597493584943898671734891755618480107906532728106742663514567316395228599748101363196207417736353736170566072019435562863711970820883458615285592764616435174741620662444212903837134858385668312469256016427864457305366189364157176426815883050530815988325948539764744980834071295962296577384353293784421636035467017332320749658100523061552922868155653432345743529581615080254334806326189097613201507373697213619618119918562893644765824446251647309070156589694419545872909902610464246711163093396293097855970531729002764824855599901032846016362914731974657557990679818171043712584184667480447720959998995409441041906012605248504725029774691006009196025131706729245555597409721928195830620353533218882211675872097239780904610155217178694354584621782819433627403074687035314231938305861967887100140245943623372383368173458377355455317919925092130973618733094102370873711213673129044783232496485071189147282373971130920590903322689820943339400091052737838851144368583597845684163207520212657132499700162888206232672025971208026951869240821309887738567715841048836888009983673783837692438018839358402503677374022389927113600770551152974302206404061918438472648331448828556344523204992408184133993974876864528907950545874799682465564772103506311179554258374135621771899539708077314690413696164274981879457265503440966843474432236491631669113184325317773343776988908040773489971216488283297810659123620727068690403546410617840520598814955823120881930535130072845454718291842001119966196236189002557473804638607893353496721072443891665504176433570293874815684664811076433043260652479285738794528693346169875459175791213435950178687698754280994574732278754933641788102483214949642828486399748627063707334541443023103286859953585630577147066063401471695329342650026495154170883347523388937479635944757881060713718292756585826539815088406227109745326031453840051463666242047807354050781531507658901525176131428799476078578417109647176656631528615044141469005124944458055797388500565821322694288050582288973417622861931552104800572400015460059437098500983685615251807152186455377567854877582262629470865129166208610554294768845081207687936078372588624919741343224073838598388290356167178553517126221209437196052068162888264865799117098369009678326799902444414853597526121190399078069313435403588523385479026516379079450148317836190123919966674845776592111380637795174749062771253121239461870296882435590629386489059081336646526220924198835072366733949406869418911407171302759154590621723194339860249958629714012118571821197572470326412141272853783286829405916255474249951511108722493632733249573718847097481611367142017850299125119327441950682893348143152789685610728659665122950406092739044285419551700314457928349270931754974139000930438543537205140987425988323054368996401535781696364671522192968511677856034147384518687433285953280413767534943446730938122956042253198623702288450783914513075597044685515603611356874414119045135134518335378960662491478710023825877453372866323856395284051950919257656135934846364737655751271416023461711277499695282671351943230223484834053450716442455815494710218117513570327431342988462993225235781706183405682492121373346775559927399251024805908215127521891048561757187752092330789970311604691977151684118715372342627904742002108074483137890917372057950329170340911319571996995112821488870154110680615863254727088592374279008681763628448353982226586375816566364805497894135608227542482131671250543954653717665031310682669345005283798494790227616987754507250932382809416892644078402603642381375657465714741315088374550640906551051681538909559550249518658273585735714410205522033398587019940372141144508398950569122506280778053941428074733567360718950105166717741186694736341443915116133154227918231173273886167491249530909677002805327273015924370471036198057483397519717310369405047747376466596049321305980186332073494356544575553584183058828156872197180844039335412781462012312915441787962202541841669967922113925154503950402279099746175480663576440331879778671457568273133906662874968524272709657945853338514150395092103585044729108128758324586332954718164724808108394751767918469475935681830836077685838125938824581952787063486163931160299577025208685069221004166588033235672709176045488477547833219069466001005614446918310742423672136448518484368532786324440722308364607232801509774430377317120869984595669640707409269084075421775314911876741235225947774730288569620254685185545166089121683905454864194679654080751916109554084455544861300830984985850202049419711874553664597162650143425225756682164283695807321313770245702660391836137087027562572656217165935981561120429536655934372428009462485718602965056080777299656123611381861243965951855543469778370567699599782631737455451735927905855278477674746206768618782537419277475875823803824327856858718979161270421687298719060052245458818702593946632187919602300699771501318602049998360232905165127455772843478217545040264240347654124066549239290435430634916870997914732801207440867366401782056504573677001706455840357763938549567270645011168408630223677894083894566877155711353184877070767821179561818713712530169136015050570494167674897010425461729013660863512500230157161374217009671513629764682443005329741915259537540029391373830775507398314959932280689866360548754366080927353055794435834356411693249164725485442786432129765578841626221060207571294883270555882285149197030303395693609889826551619009425370913402356856292240997802618697479508217298139696947486005961147428346115854142916056114116578899800836627604404172986543941605370952150472836728547621655489560077761866295993587960649054022922397285194018535682303978197890924346651347143030608594640865244170681268024558574114187170742399294805338260393459400637999920714760722113463409132292288257480042191149338590779042197817335790704999406828867575793720758504527918346487619560583386006241152144373163091978125183145418332952591459241074817058482303891464350051981845379388094869765564957202819502763591112866906771081160305395381406681771911196365467456554907661331515173315578900380177676981749169835795912216761637433195793109644085260357778904746709614701785013944768960364971479517465783503138984017671669534747241690777835417318322278867304146595423334027256514310168489342251797413163656627145452444605751461054457608868027922030116554033283627082727991091337119496653106705292468528526195029510857106532462826926940489945029766329235814286099992663859024605587015499969165959266714508407042822558332294470145380607929819575491304950372811043871450939334812496870705463953617840259625406754931341609615497405592113870887285166814982264194505496764088618055697124678813595387197413831897742656430399615111526160486740493527337974864683154505253009524306948407583810393469219333582345873512429334802687391506423065141407423981133660662930986737793324460828346445811046854302115571067688674223236128084280313818197844634947075061521425771004039124539543444312970210106929494255617185155037122029905220071660494590229940048668228621621933835756551210466284871999808806397442758634093210630855206058242235421901778460269131809650590771862773066994420972364648449595817922790621565071111307138399297363797937249125422782344098425339688104954036289758894794947298343093891855880985806162580062690626384470574683833791154784882944892613628399032787794438396406489973418793588451569669411849488320361929545302506932428263758078695555836818684211215688065776461084593294786532426625961520978173928717199027844798480424919802281901754117940629441971338512746106508095106255867001043231116493318200182711131760729074578775394071738318661209269476874519636091374404727127601666788716424665665583590044298678859827840706840566397761345183868031018351665135505746423779471911392252978656584845804011105876719051450330477149896916958765940886177965003207806076799749963212822457110824106752724337443972862786920488501648377065832926549687537694951056070162144734053251558276651841532997858877361960345910501838373432958308949918369107292891997563746883433781557429696003164717090006436655056420679718690471347743840708564771235494979959129337890251463705590671547268523440750581850391125678638143962961015241052467870463357772738333132603653417321797352339682055756715979747080516039660451208552555000263201681259821271975162121390089993015254648133987240957985556275380994600258050069864871730293021144925961988824210396022627533509478575421569387642753055285194794336998448876413623643449102401533429686312756446344749252606329056514553374808841680403118099105155981525571400267077095013819062996262535326410103912283311539382991502753650327585469260729756132848562004004884161152852145842309844482992644201843200717259229845317219452348473141988180229163728242168955751176845369656056620402533401732124300908300476649474805575970910521921367757621189927463695961482087517418508026508910458569577926262941973638319489623742088204511870037759483439533684017411514573008016700753695829031252070645519228189734670121280841927075457532388720459528427290140420593941337232286611137023992761871443618709740237867370887078707848349928369412165980673951741024700157750918981368550139946475159296769598058266737015031572300338416790722151289853284355953838140010945259872086074971931924408010548932383558560883216796209836222621488408258569881481676864894863364539740265766264989657764829176122054737776449040625527039903624267882345393136551962084850451124890323935666187995670228765019621836267978707056499690672592324335861629203066532973383330975435038197736296723808788965552515982030311390603030749806827456623199822925716180542949496719505893354983532139651931450267023774541038421336131822517850124727674292902278465462197167858621677154387075016402416528604826549463840453181737686609837999306263544134819339960582848436400913372894237534821838136807076285798994808374749592035540759131932348562737867882849510364210791286075411184306786349637428162893139228010054105864584604787780896125053568199347665656277462826252751068351837084677257928803516930646186538160373364466305937412494821824019573229195457820493739644098094289864117831025170159934852143271385497201682460736881265138434954847949319494523391404809650457015237273260445555295951758387452465630838084828426313579996845988250889170751414395679841874469421045634376961235693541858652641067163228069808058935887834291777476488879636927057644081470794229645670550515855948844062846716827770916873275355031915096163018204866984025811015780181287914129470271584496365845905913714179201773963129738522421546874326564915239288161580004630944888891277261607821365082204690201114770089364294743395948153324530674834801259947971549235987463700426470280048711632295635575140358454406084650048628060481232768457325609048372695087235783057308012341888444989027078366089361935143460114815887779085945985957716826162552367176294902977179305478853045179334580527315460035468684018725903828073989129860335557378622554953910318387646748421483219302223755169764827996802013625396182843584776390961335299666307578132321945606510551518347004091852724822919477052364963262848708333990588374077901691593031630991378067578531620484750506081792033242786724142564110147325522692432519988918769409227022285797760698773933033933452706820819176374941205081708535419198636408256562608547380312696282958819889350947075190283147545864526429691444688972785644680677545272998494980422303938523517059913207878108703082104186726270324661850095261057386613520785355291668548139724963776397543495980431949363960889923831586956721899972251836405235680429950410109844403516763773557604929429312143135134527796479749387791495787656361501658052826510135349351036396416163080948174455212890460045452852474767285894176457404812638712178491454249769775917485376525712385116896834104936757521960532435636897661157635356113598532771597428998157272506250335583704007035613527061801186228981175930338695971001249425908441627653777132345891441673057918946284903663773712193574124057969595786256514176368718499272219553148183372090688262322400166135268134525214353851384802986431272059268314280674716524342008343290031963999374914688001799590839157889753975869539144186923554913128790856273177227993372539849376027090281274841499450910135792399363532396633317224830773973449881291711855174462203071053382548498948177823476600011194799565481770331034513316375971012341315302402962713387274829439830027801997201438000625299116579680612572474108503319113299496459351499807011117691634677457120242158256187248705400779833621527733741229917816911841544412063202065926397221975579699464701218301399358004865474933328359379858572798286198916705905422716005686238800142005475859933376700849698924691309003900410294193349960924889828103193012777792808003101242444302984623222571680980210034273972278682657293643749259404854363417006153743405854112304985638975224701648345181576705032711463959298757134453271532605395700370749545672208036671678695250696377415830465334702356417820657783885924400690230800708357629289080322839459317760666811158891303702106219512798854993871624015862881207010562607372525741684388136568233337997790432457513275434557683555756620828573233729149371486190032080964545489296451927202106059918150841261818981809341616578652497006246775675411752182695061923827073306653794834724487611918704631731823588667077321764474184761588297927591662307308306716289731395278542445542112762245348718819032429863509959804250137583498069696097503611593208522418937383865799615726838630190517752559760641126243927592527618240327930724949609702138149988608094312159371970939178208142203423265538938002076484382040322121476086047299252010236662569253335425505470489506038806994704767527937730977340523122701283051617164642575616447877904270792511813026092817867051890305384252757046551000279956760197236968790850730913297504761645982645666341051106753838945032778327845549829165238722058181357637911354161790586061421999127207834287653680002852555407806409520591719561501055217334717657318632634326621737894590286284886957643817614522448534467897878709987049910106194682724705570161151070631172683215713316753442815919393524916346565050871916425921595594181657787474464524274144137334163009332236208661496944758043920373649613032148254144658214133097210739821234962035220507444524299457719013214003803408739174679884885788403719923588868357543601827610610744600252502359022460557917541464098099459636271624167368184301340578836621179020628996462214385560697925391266639312417196362139065753489167228937066512942897398753524486998631098292359603564752190554782136752912371696898873767145120146397242569847208821510041925788084077491598129720015854395477858777470561853379651155158118414739985914755152130807333467074316627055163719169167894589750398927950254408158928176963303302667570182701177564749007398000456197301963037301087524874093897037925692610731256788657577725439759496361605361817236451509316302102238418948025489550107333512902206749652533540040141423726940542666287908239003947121501040034945489148938440440121884585546444419016109893336466237867012202085011286531824014225417830830968217027855628113148930560895125561670535607692438752119885677284835375033081621804754289332410604004352818530953745334243503407902129179181455861397224777783633461778291941978838850865764034349267212647520959589392011568269692871653545512131298877523786702805253064601154339882981208632670469095546197131575438279843551665085723241374328963345002432751466728375349303363051813480594413247859499131862783994872892326163206694203909695885701146771242403996966886910996166543616501937729548259924957839507767487195452766627070586601115448054761123967001414187366088592650297536633698745709789465102517140414672992906755318142617864633993097927289171703767264444801383955356938844604642963163332464508920785680553579932654269456066187641453227775209824235044764414576573445925568613856679982715025912477487849743220696525680081624926994130206507252357533194812883481557313864721210069478085000754566233182923485983436466970710296648609320091855758494272846664073206544895522174758780699249896150247202425868113887629808177405004597379222159834864280554487377259865572536302714101775960770533051756288720182275697741774933756501943931328875431181240171193259539826334937795513000860945404327304107701382483641180666007411231014625230776795739448768205563743255908596843419809638831999695220095485401874150710081238870197378407061488856728389873291478070777104634190741318224077686040782862121563410656304898310993426085451112059812582985911733318241509156934554302766084002004380040801275113607023438604849110332964785494963447156474525116927148832729361589091074570664527773036209298623140840324286307329929338524399492035358557936365927142831203067576049038906475978323105811012631246087590602652840733923667691268173792094501669709324091422984791457389742964227002797559485771132341647075616172661033903441103202164181230866065913135964907169757340871655522755316217212952273575529314040213688635013463605348402017759887176746353010295372129592446548253418459397664119059286761765822470266141051053685101820946311654867298771041977235960715777541711907836734185981503671153565801091991409576148488756121156482442289739320126456285819770780415417303107656085160069585464789742639774293198581630539366555997504846633078007352467102097045585235495332044754157760092282829721606226794391053187945345407217992509328999739967404383966365583484552819882259694869589381833420085149045467888535026589506611117711187203082628944955285142758729096458746363631714416453808096984507911455720397261814259440356203979521816093743405165608055568884205961329551560610659816025887047802086089254140866838834604193127607747154263134087019927571467456523990104024295346655339104972212651349667384171834083377227548625621471488085838415704236445848894691930815589016048747650259639342861819647903729132290874673757674110596790927668959790031773180406443578308606661521976856927210048024534967267537703293847120070792030304228425083497049486889613786753814834272793322682783775406781558794365992582600577697506427511467367849858752547572341522783680739381484881549095543196979101246197890526021481031959809275475406354566404674185429390170797560889075021332121304376790911440136240077653555158705157947091221588001887488442299702597564836594904810698220695150966569274456109128595665564692831942827269594863077897358229264002325709892498225755754384864284148194668715074735361228572835278857267759249959019133246643805895183986911291698061051317033399235851167779977290236138510998005282580606474667533440017590426926508885642878593796992336856035926725261772361643934279399912311366305311990205217096040939754317789272456461097697060765614435798045594775832244045029292546246395548927338941219563232227227951994545483846493430766003721268430078159551834876539074494044616210610873125671418941782790448255980202603024189903091829564996491274309234136272175529526785491387882444138411624739962140878450202956239353629193498260727501989373394777362754536177063670386047771095082289675348092998834495016530064034307786503502141103259018088359046745405249357370870664512585396347006358725572928289304829629592955551134032432760032414029762283771367160130959202333125865194850739338681233451342886943978584191262999530544323215591036276563347891891269969096259984689320840667486999215383686000243707900149301223721869736847434061328282001098919880270523579417607962426663258405399224606821396150246531671572270486499552836098571136352771389602198919395546425817141180120956385789177456631297845211306769561326067228617389545002883309869147908113054415352468959584743332178485044668363835908348851227853442276253048616078081048966488822544082345852825127673216802073387919745797042681902373430656844561607237951969923760278073356554164463230216725797498128947046814745482226839191626970129340544080398770148952016688704746833343155312892843512246913138206188886187528124191187631834689609695849135463393035454448734146097361788169324297838205276924801603187953474940676902798349218125736392846981218347463640838544603786449604576633334942686955143197863950033414169332950346291475239310134657228804300894115367674019881938407347856833625416769106258815499018610528950743481254853684231881988853649360409149142343573387732005842707943476076266309274099269917347979559706128642228648127081620438251969426975831295959275722294820280059619605434582156928570008506805745823025041387084222434397784364999873041243452799853830361336146500263354984223826631435242197811144026386719507805353795926238118687521292972480144539673982641317631045785867270675866154876911558512405700881689867700805410598232643359287658865155518580527522974449722160248662333794064914635287617827870236316243115949591053654772284135565382073261240647795559297818621704053818824866925228581422584227418849913596927486667343919205131424084868465075602963295126316207952986394479000366129391687115562188631295561028808584135943360474328399260507312196032895746558813749765873308237701677002542908810630934726646672784746558316743922287848563593778597228551552068942208838689418550106253755736223938737639074636971438402601918138597310915498380143011217686562519198257675892629459565597408303261820994275406162241746611493343760511399220386661653151203546358904656072781652293936968117495422019120010640894009480309358846653608131379916280820416317008602348199111968520834188453801097728703342682943106230737814487780831192228481045701512273081865510729833616443542279585502931020630196958002371548179816649724973397770614612024207280512290013376647753924213862872962007544480560456249454222370643133083831195560194475984124387448647261587024435121440114954050266962127545208540071991545275044345220737383100252928238671428105736788439128411231731273452361957388609392817113459291977156764069908274595076069633788999836568161187833837102512181696072523547069501901644591756065312611294088479045668028395619871570067719015196483863012084765413523890706849895804583941298930882832996008076068477937964372946012251103316481371574127151636040767194727605155209190535976165614120353536482493739600266403367946728208430789400601898205798840570300670494030596055548896407060773133041641448164689855049775846369887743136670628879231410057724363182546177235470623320566816790854322095211217613330132894741648596836253898239117714952021809566493368938948085916908493590702330973118008123420122079185649190529774447576008379147734957364484383076798156361317367806348034814402608346341443877682759680588267632610900911139162622769507281029249854358653488635654264313237788732310287328478875182897725801517246448886810885065873218038944473882002932521266894784767840147009289703302077758008286628133048818670197485594752578496519581580863207468021727009443774142962417043657458548793234420331730206237328763204893461662766819727227246990060852136058173801564270127721622376461636258755937226703529973406974369226830617113290276131221399215304835583886039923561446238903703668763111401941760630166515559646232415329369234764745548400648770860713146166025110871438552576179801048116016543428847023310604820101096714103704676610915558979088819075518877201708768815118238373155574597388114995228982956250162435897842811000218197363573598148842797093083209821788736598428881714169481109341933442545749104553642581554138094004636328186478159533159200879682906134978726633245029409383444847095620533353403879269529146380757811158362287929553148627213750353528268669557526938340523546405289349969538742653594361285848774745956935838604813615934296366396618348057192031220555390330471953231991549197996653946931318323412250042301497615714100221867457386430865578132929541788305278029825703101933586032805469642672565944371616763954937868596234365880834369741159184593352722872064162990423782112746149885127678401650275746082802544898793555318823403664017161290546831685217166872550246939442968359459351186953024113810386053575312351918427350895659037842036080132230210447563164918047430522463297658983183747161853130451867037717225379928077434158788022969672961325951869691035872815879240068771763509793958915291376273445677494200810450693315908425618848893643291280434385089470003232307900159653175792991233496668448726264415048331019232045738312640766978805033923568360253769581120637793908131552644120278338455623565866923779871802998001215369199767445335039983950998664047430611559565649165850123793616974439198895592642725219517700152569273417672119540619407832376909470113511979655081776853472311910126260208707532195674453377191130649016316224634194183816839639970550518991621367576190899425709016424301533958690996250340574792031307029620673126123027565558474464955433185024735183178975217996332979739009297053100814618895044573195413621372238811507929211836603691290811282142107296508734948434545674175286113286013186157504796697120881604377418762843890550662016977980623977182003173546127829778288668359758631636181481920870944701112041726565959726361892138395882647480856165548344409287872018924471302000496762950752662858501091333801244450670829699287776450325448351488607593902136718925170197419213644208099973934558058380747515643193147451419116963769360608516652925745754444822521332115880882105016206490947270319088104016993274425610281981211626495098046122686333621081099254569803466497210172012128588283322123145807055358872358876537671702134405062048069669714234188971400990592544225065255041941285598010798455336707595644666002860323304293793299767220382498964304383731479669281339733141001603416046367482988763534659833077815506173097150121965663898462563558400230417823941385860000360457727614705085469150941553567642584691375947979194596738691945626808597567399125850945379881573064730345358982411918818906002600466795630968770668037003996189497358918318904479256903926350944849013887620443391005258475465521030961774365045911518409423983268519572067074923227298900032260703347022554655636411073595912324310906431961133884722336338388082038147291517149322977279528579139052404672294541612298451193792305373478883900433626488620570167100027607569440031804755762260079510349729982519934084353381334364264293475879531304868369415724738621403260722577327211728780335643597057125674866146983679378216189576429431014504748108311670215826612353108052908341966648482169467619800734552411080728680622989314085978300503626164265907775750159562414382600637577196349298501610939889179671986628347102751287570630625355234372882483371328786111143282906003491688799885460308180551144174952595943126857147663111346558266558954341926027924934992050248546225466571145237143910768439351311232722239146866669492024573132401781491802301502633225469137315362614358286708420682370807720643211624792768388955958635735383252896797782551049086063701659762448841401679201633504900381655583643529600777637291296313690555974473116361010123273962104469419377170968846413370038323613015991902157909864489637539108491644613797978538327329318118909298192744306421324810940399935755584947681723127155255356097985586227431639753464669157959584621247784138654938823083898562724760915697253837321836315695564187243711697477717283862285545446434917947856603952138554506785584583231206728318529770402009406759691385946121729756087064372748819777947204916272354721989892447748178231325064247501639827798062140895037593233293285593489915812378912664669424535779842685073729284535480093855773253449371678440004971045504159591276606871545387992852789902023065140094821345392894482441485007539040696376058337760629412749684251101192447242866596918386188558972335206910126489646043284922261181677433067528837000092518302792989052366545203760583158562845380859412338330970651618373077202185804193624441822217482573347547629427283785929732131047624974934138582280260071648499383093259856790271209369400765328007785318398488379589752011380576891897743083863804659772348172093117361808701609382831886813317288874511266600537611205424856154359089823318742896600514719818988924887145027016190736679217302707787806872993835194791834418847809311386295263686691933059065499572413071847537697278148342799139241906159111670966855566805687490302009249854521018820837833331779391307460785411376167259862869675823885554648825749843491262268580063446086353676627822252244947776440895354800563223675538362501140944459571638912028879604141397938307355724607466406847187899380777863313290075206756808671512577942411668678839079774072238799430491301984289741970180782345120479263843024857129414649366520297131147964763708293154576637600242475690657086832846221800620682817816863917744522859704629279527397481022665912567986691597841119366846493948508172355004230233280344109217153501901075194909371976327471221965592693172322534093348072721789336380254875310518338606901642910858429507992319507933247181037082860282693511183466824955922272220744194475081070202516349516138666350616432995502224904103194638569257020433395557768038806693042588339046678281753608394678716966701785555011880067855361811027242616754431489821802977694106141831715998545656488065837866263508834016420283579819403949809212538406446678978515262844194682329511660680493824209180284480564720202269395972224808985386696879056525386041100593825969313458580026669814828268869861068164024368620418991171791402609024695710823520853019735429844240716318763661185578888002429485355790922307060364603860967559997944617432771958486414847147287981429106703887036999041314656671191616982390193417029134326755205628076005187815451201631730992109438119226506390894438630367099546664077339599463832460491900495010228056303418312667627784670154760690508723899028888324933425960702990099309977001523162630698924003394123900749883165712012898269531238814724243229047080032481954911189607592921418969580188228340148817541409748478391116336513027135453933797901580554595307680538554147766421587860845050976085349519377522522389506309863925594720629040237166919936936400025146049996886622271654809181304161679439980154756410542084572970837610408741060587270213680563335055850706454887931667643252464290482755174696506196545478291001697418802776726733701031072258444135533580040065136410931611087603177400606328470221462775466047237028037690717842063023691103170168425984257994533182410368454580687023250006810723612218163543042678528693573851489099448245354187237433899163925990066269584231317316095997006017351821356997240814419499037826966473279869974105196801675087064394763920532420325808869397036391035733173305566406384382833466865893522392648856113311221379460940435713171908695259333430640013773267435901647063830169960822940475241929883487160760765413723830891692988588472843021409375192908666796057615030469376134820440906638279210372028916464013590064969871495029378172260876410927045040475622360519933893565467509564563781155600758896946602778213484625803190663706653696991965923570760779926443218447459549211734352520467172620704730701734660882900366115856625332044411138769062522545392851006031891646036834131220027181570155634208791800024719438877911931111505480278843986458274091989629590974984486067819125156695511588338584653281951657264108915922406177024985124395577947413542384160824672470379357683353609038868621582469092043523629652705509321502364540665981471334097479740457102939466377453231868491656850843955237217136224200701145820701445759827723275606901726651333761618868597491746862075231915882861353301262608200448469559252015008996735164291478772679395813395735981325618492772661329036245438287830753626408831170045940953007999083230492060608413182951982051793731150321915304981390054908406861507058833863483257371454554802409883151014940374648178585431553892099029371084557605232601641486509058201433307470177314386781045686686583972940453378207721889442813715616868005789275505658024083296974765879687759039965073415945337365468342114860391568136893730053664921402577177997255282662589641552463037876593374314585088257209459982721732223459538125680433646275190238905338199317695940922215104892749388317974864861866465703618630412424649794115974113654539859004494100687906367310936007880577278313684954356616230960583068378106889094165231815648509056729733005686792522778304371226897430444025055946848192172076327503973635448026125528345853455472833083665648274478855482888922163744276495406386747015540876252380356385612164886032490386360258318914397431869234870641464639365264319549036081454279565222890076387695275297339635530090637199667564833718399147225556490606593032475210178170298084073930154751325551556139046176295845125994245047366695970721668235605430444872078327502586082321983130140559702424209753762377351253423483583282659045054130821114290072053111148638972631032158014002030989504314965483033298711502924825436439824420058820121880512829287884873244637333398068100883028801166760710892664531364237901027043189272547441324165051722433461797073782756079492208260477852712398526146494074458529893197508304284297002704072570818867765195140840873851784694796575358271028208143102186901302312926891494209787002501578145325712513350984146287367202067572353032911741550139053592272168877769991025913382671135614694145182191373313932230252655053605298510841814682368088529284668385117560219162298349623468866640356446232113627133286020779756742316782468950833847447301437367944166002528116595310334942572242047029198598452108554453000113596326006395484984752627305790234004969649604923164560880580963052802768575873154752548152174697881856190328754875840995683534947657059548361916665868979270032330395971290961378707012561531537977342825825194517582605578639903932873878804458523311798300574659910493233234409364670813278136258703930159449917893502201115970412591517559280780513982655866128462793311152575072837346275386762463113323186062693388471211649940364103977902666758386570903276083277295769525353756729130014578369166217811203663765795084376318970605462358027649688710081532509321481391456516331318066093480547990985647706273015816472695078013827957745932637131529731491483563854381140629389852344142849119368914127355725505884342552747843922777802384742422806837936001563338854250611353748073579108660262838284254936820341212844579486555839371334896490973899379702111151702085586127776733297734315267158283000739988477026323786919511804985658666204612780233472796806289142524141473619543787101323826001074384837672955621525483299425701095020046330107093307633078441934447050533672429955125377194148792270031183646886896776846126314679801886147682839912465390265263294600805649954257448079015913086049767200692472111703649429836926773242841975304629586086431820551275734024865470941736650253070778314303356162968137958310990874905048896497783509391008149918038632122580194496647799260666269893895489452003033986504160659516633256591754750285693426771679789259300090595637037577369055770301417106844469603884686904586506526176629528423869086582267119724066804776790103477045122681330963846406962321767041824571999757665595664261334030090799163825719216436231687770115964989634015959149068973740070857728961482583948733689930613142613232527247494239113225111432882776327163969755402758857198742743770934754986451558372092450138953506972682157105719564731084066150110466501087035120708799651816192962496573405183670896599468252545246146146536205208953532950197398362310443667904893266675560017889542361210207155138111871805685803527757750955900101489085976734093977160010980964863733064647537500771903404507699891027537345697823450148096698847391408113451648836750250533121372944607400739817547053871973000426795104645083917530152361109231584605158450330029406154246860227534024254060640330547015378787105277412645426776129536953641745429294165228435078291642985931629937128616251328873055085843978462148380022677340196011400339367907344081857012351255293965562768316803142788341588589640598528734887447066650233071256228457015161538655938523076766823939147576897850601868793452118605998221407931750650301898037647649229781441326245225012321702571120187509104018220040683476351132560651997847916762585021788434888691235543295230451164057226411965361561138357710256456885864054269972661049414568545938734058904730596456989630040429069113738208824940656980525083106539731928120496912940357461363050135229925776805103663000897594206283208172391700079023426708070527817370623702175080400025946503405105667486334957165066765928487944469443730584436183359431219518022462664282889115662924614940980180386696115773827028334760872094218673209991932909922512752309031449670888140157562804069032658759663145358042273155727585485120165705608554223891802401867728566007884646243730428119095671220458620297307085876789627427157522774591693792034851141017320038627661657879573464649984109785190117738298095957097671369965781559724940771140199690143579267513338651054531734871236140255892354423383909980976428798890219185878017069782604258143777760118732231065864617355133578606712410203228272660905883772501280329039899760046214716771311108037664012024309789085852464266336505538927377038355685525292526049955463226030687762871025244630370716854992612411565029607169106299420113007416609936386661849245495755349197542491586929699789410781725814884534811908594163707468368020458627033313312758168402014359161637087221287649334129933035868751153538598325201615060763491366267243186549302016800450020852343119974525055877865164164264137054124967789205656928968428961326269087221870653755118559671711854713326010433545263476398980706986437741456898392139751457227156830551502408936470730221347229997171240469127236661638412282915496866699337480642823986530010596936588623756146398063793268852134926753853947411581476871102219570750795793194687097640754113392022442122270221448931546497372555173872123229545413807924944281366718601342122651487537835761245638111067043820058814011144950524038663459333025244417897096795382465140244536804632466808467591841137477323897974869720972715916445182093466757835594342741568378862625897297550062859801526414875330505046603002731966893448011211267034988755214858914473015156722044747978864165303188638273717625654777814177338940543048902702358436230105274942086932469523450736625313165011939525691644214638881087235092111862159950515190655287467397592632818626901092869591602943128950531506910057495290230037278884723043047234798286690653729537396300630658369406865125227930737007653020139291421003210074470108557080013829258102350232612627170200181580944054808992502460263525487972279041578870131493745012426495660621513348646321549094213751346108549309140467139269472786901078164221053955861372210160483549750034145998472133311760196809640437171487905107620698359028190398740284229145652178881514988463866713154207645716065881842113514285086761155726244485319570139199649039410181211338721059878722042175014165600414265152215904672155662022551504256948613972989604114911103159930586532349738448472809100722735954850898082575010503068184247832433966499320606284107718911865402428379474519188093908409870898183384691496154866482303778726989971919582830371086892444580832556977872387209152728363437816727325052463045952955613198815746025218043971114422626375778032189875424452965665398532131412600115887752239582131805599578885804066660226067122859942670288461058310978804941692570244972476583980847468812653018847241269715944379219961535237681542163984912395013636848341106462638067416253010595760493841929651666316593219227811701753985148427500057019535442391366752509581377774019564360736794151645672995826496002009792886882645918062309766558554962584991713858459562324379391564907187705043966100828188927316528465487322560830568751772703440109632060395992744897825480537470436476541312030082203921348576733801824899195985600839858802282283703923929767856749831111992803119764564151828349434829491967754060991866157725017356202740085688858417888373178196510392162742735630381476380584712846016074014643409202867781230223088533786794167497453828368862524547988084683657178583097671579507648160963742780623360333195891761977896825156318736100202471683961171432369119359620089856056061400815416349017825285866735242034762094238929874606754101275987017015937709024150267965843427260010841021889176669635771578151608348535879076209807225043454654827026280391174741804947615570272832728092533495971601258829293676664770261165300513884858605185866982552130594046436201987223241494437990111566311319401679061565054235018528397192216948194536147321148033593778901592663311438107760579979889814789635551279139202085278064537222158422649799885758660418210074011358820067745889762309925161119677833846262781518981935301860259703104464557034087457690768875711151987097720723570860734341051818873028644936518039625629503000807622515215202522288422489429054996943313916577323436859949159562113865315599144790019613894824291717926925670108572472246280768924327119712185783344110296373610273147225396726102387243473701048537555149418475613995303338462593338615601300902629422356330364107192886973052039733756471086187388385482967271990213927071746538179705032634562233602445571024718865434135340295871191314378044230946682633373103896973871480149985477505719991966854969411935273543122731443893703012422004617874477994001118408044889769748911220655138004263186877688012854996657426045610549894532248131465599951207755577488983391067432759652719821389684911686723349738206141784617223987336789109861833059577141384542089126902461352424285454324034570392878180861314405735951083362232458214742061984172646703906832052511353716954762377763033741707776729198972742091550087042757731620773629454040829698578799393967172092878095502242569552621531262555351475731760462598743152517316085957540822101279652727754039730806097372379227947765963327385936103847941234977337250287637209028125768116264289605254419399965453209860576005600085439839190421163411987974742601958676408869670897455107349381791675170598507591333238236950736793217793049679189596297766674916212780510742961699066193945859758885532280178157823919725052874918226361748395143246524011256629700159378253880323968854979708346240003895652598237512996255996742164110549175363815061701605401283907105803512845276669475704792238141132353338503364491805051600815538419922122603608631652074701233437370964394645617847047881780757823199267298322600278392094028161136485311595804150039860057272364805416531506194580520571371536952422412476353351004691925125579912658830630227563378773132053156535992061340348221795194362497058194018709863907604285412632593710954428872911410041476064333653341845839406560804879431967678946829819049471926332435077926304328607646061236218490031294540776167677810431378711571314940293943008505852671599501168017697274350247204930969304062676452426610988430010970185146927477879696536679357587718053339141240809523402020950218532419003346069343245187302340994131841243553877832811817735149258205471043647622275498254914721358991287373704751710948536965464188131711272166629599262142638826382560454526067087175755101467283915199868149815905051706808432511555891450149544971696213234597880719329157251070175253262385803804078162126379996022786960656044282458188654875710759156815461190287364260396489995542365213286754643388050812186682855941433435939626086053170878994415838943417656792427712130128547853643690736918608980720061303240081519652974933182524973694463921902539069034434355097333279522392856733687022226322834266155631924113119137118111713643152199412411819977318021654281588346005286062447987065465658640369663571095351266920551777373876800946234694405234522966172759579232908586243763799025910159572756467443666900555650021289837684497140696990744970834876548247363887981484963900778061442907833035356025970319115956431744140974144007766294499248466116749650811105338145235806701485999221084931532974931519949628957682288733743207647706266672035384251968312198548179288836975103861594509307788698739518327509656700600926009966507919819279759624416352051625500146113234010925978197827531251567344894965976770018161604117856220934446215618854322246231412583809559422467846244609716544308297919259697659625149730442058219030543132807442851026747313595835006465494349941339996747008814968355960671559403585613946557590512150882594450592259151047828161092918199215913965838064074612457579908544033358839044036094044170569224631660638024984375837265746240536329451185210729808656853357856959881812156836809434506558118290905610368631917280857744597453943226587390492354830915427716817458320958940845726517534636861657790023730449402083863765325222828727549854843934960929192534643541878986049390380620960892223285368195614251744910860659878327602048356657710646163810845459279030448171641803040850044204994020513547110294930916578378646567918208060834551849285468402605505635717350892553999791435851252966661264921234212346442349070177633230875782047652171173224983833687598567510638130684480683520325905710887881728934824056459347684577089022327561986265183802696359933399877245451882113813694586966211942551848222871430155259688373117204984297036939126093829807128677648659514052235814670042825468616675561330025972912545309129183541632140390585135932796790252039832811235237113386371218964050004957890792131180478853009214457842311300047585207240292265562370166627833764671901183297962166318440079635840391603165735430233405507376405964749124090590022244542446122579806330947058931570198309562041614657293117895239321924190065874236563709752967196221693781922820693168598221238304093906834384494199890146998818173175233865636914446059548179029906714073987646498267279767102035213770934070049602958392894622080900064266596856716178497918961431106831196937860362379258953202358965876930758562954201049098608695082770562532879105414356569507047217395711366252172462605476419407981093706369498487187474871071043603959338349991706260634953989058846129612384496825968114794621749419416810993360545296868958734100300126656055470159282193313051511177254490024620708361067077972769945570433534490957723577976814158360694274089885186988843803811004108658141508117035609471379718325401941860219264478913001740740201580476508176733929316620654220423380734762484320384178698551886342602854394820334749262976762843541495856512060711568526201138824555369485351993848807368274998413357094949444100018884588161976870616256237905541369841456430700056975532176206409768868286962296000703279844187465056354176501709621577585103806052585251029646983006217240581720613441148274576807653759702198722773977444753985941513240795988011958861283736643265857745428251641255802130868246099107523594347906990284950861200054367533199254762898150728900844588356653426911956328682706892050363298080383846894743462054888634000461240405870977652933620407158911686662388704851797077963203294166531921965582617922609099512134844732027069203898890914713090223851929326987553985657791314942747725885651974277248010782768264042699459678460773811310397028951286320031093284455476544169666749273432380703198365604590443903326261700266192717653947686726858830583527759673057594615108692142373338551332579971278917676989570176476499425873543217308942897917077583989305945632173646552447590477878157221901337045175246530824972253029315274937216004048214345702387530580341669514940364052257725899461926618180901364886382384052669343442061208439156070007758843122356116690834814745058124745030658394139065543453445779404274003516351684934589983389094130233017090161598322819219271555797686374319230029051624686356412132780011805427914471101188906537976235110383987550669151437819901609128439925879296721727393109206073352898540658467045263446797228849940090962943131920864420730082970438989980816595978527560464481391732383067247656757953709571333587287202665859660957204937791142772948173551094662217812855722048776932627933748379225647917740849490670842403523836816268405365984312382829800525528680838457193160475467999618672198860819177751467689277124545103473442986955155256045616919748804422080423327189871907093972762451674129711249005382610611920331098761086529001771328041898751714880772315217149323626425873215610708812833277917363948601978834910575223147057283301168329237380137830565858641829405432227546394993809076340374009565614732445567747230887748133365195805995755589422756918249157574038162804937332695897204044671553960757297325668446141169785071540198554847217421759621281207050940123848260040458015767184004547212640497848185088493080938338446450501346700382523565618785830167715136583748042663073509552403087819815817364814131199737449063721143228929396676931572171673871660172787422420304080413514661383929043233460507964235887286325803982269704473608070765268124425228028627408297257425955685456473142003113430172017484399429477615272055120813465839045939230447498397367091072902706944360376726899894732655213457987600641306260891777389038888639104227415761839604964292319584481960783740499712704149107268570939382696769235395218044091811789601579521344774327719265743515726838888423592005533681309875664649813582009224181680390426908624735640591770660125710128329082873493424720243356471037190701028308519698079164867454640323348655104230167746287708768341370956552774720240444714636125508726222675076783620685449903523958957755973676630270470379057746881182511116237118834630845243059969596707008574411053444046717925267908272359057259225340121657762512111601335953704674286922371859233672734924848499186258556630839931729894819469714714406675402091914254514879344142577208431076914420089547486216522832696443309681012679934589630987013543535913734134889733599197685782589476885156274700627282952013368800361496073247678991261799313041551790312825082124067890245875623906230154086202714632447134628647677316520340023563453023227811632136628102414489375057558213733326274232540243121116247267877997166025060231430893713990770166875169143002854139268443783452992836276304020550057454910543799032659507866932953132770045015775402323182579363162022276271841186506278628690062536636592274870839323739548169269109086339576880065828680833863445867061935961881415237298301207178970551833354688919233443870171036145017392326097307291044699083799017660347904321122256732173159780713028074530630866835623769119075780263179732552543550752934819102118717802753873827979268978100107081489939333921051898733545355082221158112998719013194704058340146830346914780359545825053117506027176087608566482718636199793484757188716733390575348458099229505276267697092915464854626089308078534212206497712855369952051607041625866161407769477633545727997320806771753015542967710735537358849400377156578266709187322532453427724046620341100871602927281487874824188974808518267254202613341258343686638374808084897181177274650918131908182910228180798843674795036062729246976058222476873544085817053349607684559345751051409985510548281405133712377764739789296490041164632317826474914463197076897833782555967412095149331059447077904235517209837027461555405818453270130745811987208935078201002381988160989579995233468294585056230265935089646331395635924277577889279050720964482149179154862543381165357689275451008909050977510525154096828095391955922111095623338385838919405713935245031489407288502219507534501001284165336060723050611165907612147437260651227906339550311137329188917863651029209341602745278008933876250213587050235049687314759180654739171732558195357251690853915728477330244129923756368796780634920525469969115558050383687368539468685370158102792434357354414177046944600237479162549950521960449434113218261862502845025706738184549038800118564466960296411541369289722848161823192761882753104169225400203155033539833059024323915304775087083321162559528158475401023222338797125778946291821915855056116242873706114724828534377625084288678732877455392379596847559479431075001932928486311084656039219214540150159316241840029249630683776408783711788037626797419852890621466396325786494719580516561378033533041185992989343281181427560280816489000206704597453836877888519847270485394624602599788221859851250341624230037309669177193903853192781877417626299009089676202042063530802000530547602825887688620713315471597509128923371743953998495426710482706289263162674565754205748631603329313589940074921796788264717092663647837321617083384041539296092360581565983994004728289833477943400959995079537421610937678003627116285311558043916503532982021468026954479060055775369849208538893158497585717011125195406630343666332796194563961145557956427942245996926491964798266121111513009298342981503864450510256131725260117220651064708511757055642984674957472870972751248369138122567709967669178481707705634205866332072366905389378718755826572502576604631839813265326996166528666325105913348862031236055285964439433561760220205773663973417727458709015387530931527257702260106552282146612873140520664611411511656568257561802349714723748551500653525814006106938289388799676019056142821649176588515709717351128217906052401478505134766029179001703838235838922626948041440089295810814908321676570211511157323247256730892814111566956674160811277496042089501258130519411970717777499895710163670746022847080487723349459686136924578757257407268656969142875493467703727563642994663981191236774785312668307764326094685905781063968418515774584243223608031769748843156042825001966097360326926091277904165120584546520052022747238963662357362177898031319035713399002607872620188514558271217294199469860662630640393271755875111026419035481617996417886721727964155258930627935199050336817574318615543909851461253831633158264918923530014386975646193136930100754159688590350222143275301729745413187611886894016877241672240542637650508376457066073322296096712431449684648822466861001562493923448998252172303521874253691987968827908635113663431213580977595231156512671689735942558075380665537857543647935721991926667751312605182702172590725008185107888233427435112595769366185816210899625003357248920516183813534862922108303957232918338427763871363676092473090160631289052204149458711274947825846587289132646643299063718238724377855871315528104663619516960369494722610664775297362514562611065191390375758119870543196972807547091253412476256081581707025969128897172324575932582352313632610157862966160044397220319305757224154319750180540941023740320883522012505320953767260480920967153721988960261045043740743024260129053082487118547964291743104237013535642748550897928736507757720370820522727799401130942591076880950118288108989952599997393635487196456896918356907205746859498917149733023338237931210047667162253283659811563868436145745973263902638282647535933466512851536342298995020701074534077680168161775581452280915728783465961465280135521911867721493778465173291379860252547875726916408227282595275215763531965871409257997238493688471932141208071488758212855600957185395502343422269453640925794554366832119940074174664940665200322890645800455045280210540053757493256634628929600667480020908896138460961218045034738560787974286126940787060489718359369654147660893840120963231542353851158492874101303809375516642767662422844764823673126694815053029513053420696960308405031927494262539275809465773002623478745996841705282000127491661546533493079548713585180278965018503346837210004897139297856057066926864720827419782122443901733411044135427909661776603354037420643117921612766811280018405399409678248863042260513037823251162191619965767300655734130025350869584608889526520676029370126417016163593359316869630626947629501768204989913542189221299246854928605708328994312955207224302623062762447183504677786206063232043026948403511155336852163286899431551686517985489647647472041942590771074019936093885896969920182661285884761564019306140906741499868293603960899991956251300027886859113838555630665390445761270419606647338698960500134957514808471087349697952989077396600619042976986319763396345941794053629208002271675696890564109965950704464774053064826349941820658714170839285212709102010461401729369996373453806182232029144813679433577855669047741338731393946424469282159885273833471366408610822144428078362774004798000097284322228327392225935383659041982325926608056124324747300000884779267815573465477568689105889883031914674228839670927327578225787077566603076110761397811035695521348241540297519644254569594836448553527065974280593570774103468614347179850093262162672241941852005276118357316540038916462481747102822148788191881500021956688568744951708510932252478661527193131766896917139095192269233481317556532394519814628567949729011006898646398953701509510110432618802363599837233653710453521204252906406054026770824238294131678002181191806143742525407641734880311794820248311996653785043540217325868351097653420507358039441102364007632318105657885105030102012708186444419664086145639277594775585313039287706890823669791389579659553824606883420724647926672075004085800456800236163899154712010555908784969335499785289187833867949877668869038136990139791046506786090184039610444312237288105576514171697037280757114567779785895627671597152393906035616617968217616997996755097851332953944910708690170801818615041983929870990168801429388541556885194715793736372341769001805540803012827007911588621533851273885423034490241150600137441102973121320057097773495229965714802725648096355889305899352228164562830055414740874670755024347776624980728453240492697195504214664047917221443606498882111253406589184926500156134219896367530300428199893882210173685566056597479975215730831633657081660222058339874445376872008312708350217025934246369450011975830993662801787305615327840663390814986568512911465398460704264474826185890349641043254998009357665124500120845720303722995969596998525783100311313893818074439990543571838927992172449585599702930186675060989943226223134210105145846231388378969931960023517092763809366351862607298269003219111891224622701178539035858766265098162672295826604191169383165700678996038952488011608097631824869406217816278185317243777925248181647783638269452043996404296498701423791180066880765128198645695251417843103797245946733998729135922081959540407899452601643596993075113958514714750497942314493306305733636105975202258833434237472445077558106229425118961077711363541342153592712130421520231305783363863064310609878403095956307489100237784590012233601913560906750908025299757079106314338688193538677279029528723557228305444944141892193386442271915864796958092902228498976657913879991841991830796868627912320647527552333432553116230787976693968407077979432713554833638274469236131098817432638182598488031670490249702293282301587158263480209676037080924269176151365677203626404659562231579830693097009249456844700011108928271317099538450169730685974059042828293077554810996996766112181832439352912098697948766570971566119578433096789010421817155553161617091718794195295257379271473792032187008392970473113937880835667560456619763448370026882396902814029298271461975303875754057493389045880790371112929681979749896639774663048128948171989584955415173568556306435046359445176996800564004079993129535979064042643638680531020743682043789743419500963734529578242610447789359511166310251487573996930480457356688137606469817891048153779913780268077791036868518699919929479837915392170926171011541832570895141298378942277367209415986878163189135600018185724509714925779348740645772012664175399312274791462303313140837723384699115789972009025639812191308918925458941976015626372718810848700873117196693754836012896156867883908428457520850771662647445540157018036073591551203922993150985022141094401095109309613395797784612630931307823372015310008363809922708987368822541137890405682034011750352541228289363530486802424155262461323575862065954563170008697579963143541370144470803367518492132731726683522511677678017577053681912460421975994189760345592767366869011150503075329229670510910492569988359257662211188444361513166193246791115896158269336255573787410200265574041777597170808145684081086887161025501834399486383507784111767704768156743359462862837651071289629041647695592312543837689306675594902110939665996913267261724869868076444529572033984640200740030253785960577318872878167980469382545814527810111447069074945006341800051211860684697251207787825858754849922182974651891264148668740563779181190246954106218345406919657888368570847452638262528203236909456598670120455844731643524543524315420744170477618198618758851072175483311084889749575988054528151365102211536001079888907865609857337582083618400415975465990625302040297279191677049023161463512180558592419459557310519219243112194083046885413916019922426555600315399942952189799019648200140595406956348763917317362487077896371722433344268745196726588299627899777369813438673485646844123281958529550083280876674310911613589220149522221138411928515547044605208613595873618875742374506474489097460335358272723821229537664062138681004013733618848299036269982386970917030048278810053699520425510505610597454181486531260888844285840482179246366174656481393366389010794379396537251549531750227511972431560956816979449927146021126947593318532864342914606459268000111912869316830235170288310063742177406543961286096671277698972875072540166237132458487222923856152936724231944666516835179894991182501687478969454650750844434516278225345787136464495850482037972253667711782940178922001522456221472704700793820841351626506710331084585266849255763701965141160454871762500956450807280434205403472203428837672527092145800538200736115455428072079936642492203749115391059587712391330541455491662125772890322423603736060967367632913488472604349192190336058446139190851719632940621025077751472311951839382707603982753992159777692201866803903444942444057376163544632526692580452833538334319217675603937362004961614461045348779854691002045826346127378765492212165678242805809958386168249148856726799429009746210245109765908045756737675028499362778331994736103103305784154438835618665293296971117103538923104374508683062381263611848440237876136873115335051987077478604665352506321106897463210318806984565811976560058261254600203755262660900736482994364334201117749824683790665564972345721334380917248973333818780009589942838804710734115887063793013332490379569993989281902104951751919434002911027315224226364783767221636434928056694082854763263231973079589192484497961216553058172750812652791404385770091223750455623493986765508821929750252728600186210362406707493455197113265397848896187468104544154798460729470103104120223840994757104910576785274318070455359331378136623461142024189257236594173564566219050553687813206320334915983858202103199541862946881724942971531918784346404281866602607045477680695747037643613065353763658735716049611952671377606229649686429732416032636630295084072066361294873505803711319510231837420450793920757051300494969639428439780543574915739101889626333329553977523263276643089102590350897277776721635532740112914366412765067650027960312883310181683946581016191354449989315544641756317707826290973353259285226455163606352216795642959697711972738434078550939547270305299683811089304885813157155601639703380775292187222733964878045170259121138060903849378402425728800392238487689935264060370423033409801693109359291138262847743727683629842379852495609418294347624268407843177567148517867318692440393540552134124557560864294720881876490383907971185353070661393342518441331583475800971162552771374607371323454739043786947716116472631029620070484660813757567820953670879457517637608092076692777967177762955858652161652271000225901958903770717394681238835450101838947148562794521488911162061299304759863139317616277822411003540932976413926442598021284944548178465222873946154046783615291519517082643094261303819780784900895887762302913496208131431841903200682751864603534247207397934091615841597701349314213625124757742567920022504957826727549398452489892803685542749829623858789689020008988102587545946885179483221026747532148999297516659246170627065600766978333186167675048198153144272107817865876856284855670800536107780421048611925207809349903529928231552943013980807070487578062990256619380604351071413259170938211870869847295040828230139550093556960076136595020116591295464496466424953562418063940002804054249908590734394711416118999104385463473344155957016170171150389851009943469158170838237946318339023060312555020175635560647354968159544106863922002798230573427876140364109143178606504109251138680731378057251044067746784618217182676897795563993691678371032954075072333080033603264544290461432000261795816383145875511389076939415573191849354292553047464498486266602986048083719235681829474277883600673866494668548532535434026354751430250217349378291557981906114382621244889424415195549473310093960205039325485131049123640738461778953005533879351136173614942274958235743705296883725549542478988338283002702457789210424337996374877975864948019449238986649331982565861118874851349636873065607641806193501982523004287282807887646725372138098471873864061835244591940356867661777398175766959994883093962842313410928294003796354151973701009130941351448548967629671406569842405643783943058659017766626630358403519723916910223692173106250883790593688184283229225634119973465980396653476556779720664429727265833350971220139124469712907668397728692955323613849061199723674690965133334041544428841307958040729300162100507785917034686710670542503233042934238004442826717552828151906674846950189440416266609086275894148046832247799230152648655752769106479944666800024283382317910861156283525601907972878822935439129945998330187381639583248542668077372603079445008348005385881781510017652524911241754697614254094893262539545358971548943089713642632844246148566496684322394250352784388655944388813091855951144825447040530852757171723480814241183459547936936496457139232847341289659790973333279637476684425267861415981862791350422760035744791861463362151022445170064834360055374000268648164539828001395904113195319284102623390101643084524693569890365984473117722579645998766726908807944010171684096909683840857854321737147461673702086996306176907163525617231359494977457841623062857614555601330339665396393509862084386069332419015755910438284340008485320358901645972003573041183551112687613055875586127003423911708249037381955764346368141521257003874085387726993621804334612933681276409410464221394848998812149661295506388809176072444459253124470301574058234768886140043984173168037095253611070120694109555278756733873779480150622749159741779939091978408721001576997118439017888923039080731348298087788793636258054177973846231902589539255538012538933136178309367553950387555834974445475066578523717046279280822653476975154382786314963055002608833326117501772737812472271990275892107883833340478986331625941706961582609702444924834252395487381724740033489475957897523152269123951165664522867300418024133310645550712574159097533654119990998441837714878475977695651537492630361072037720992923396604368109606927226729596027231094343988791685340563239665440378077589689029944834700623374422097906648656772747559951894612985596968133061718227387170158391000997333983005346134947740424205332941842478080191172824818388933511953608895307252987349073686833068192105606808517451978216944190421863221803778194417743815172978592525515008982658357808858501945562769000400397438148459380413937230926770111021118550256722596636556781918813492043811508308056516337840416510066486169942049245288710582819145984548810218499935296957013753966739523698724371896577101971469936017950321499732914205208745866732042483366258800217067900216565894356812824946449472020701126072110561483817924763664243048945515028442705526356074640997479252729146920311596999508361340307513375658251754761544082459937529382812160272522817882829754125767481393992167602792252228682463765116357156381986656763591466539949831835365972879300541416730516362930784724370125375552149144182876142245025421225612093754662352969136963270507368004709577118548517014460334417883588622460206860306700660542042171214218818636440648916384778567962318623070552148535238259133247298030976709812622441955055761462148151708282472146041168251589309493838940750675248456755478662567066129220180425106621496888446122490422182508672122302984418826854541905284434330420824929303841523431515659769415138436073962451851255394764786903978108646829695254285618650042715412012825474712346153637772789662859619402540343739015056724456468609903508740071264492948574796917144823392708029276478521332517608362952166379026925817729599923662958707977851074906464568366242217309528790116452174322805027131619632167129084419386682870807134909519847082122482338688139853601269201120051577621821694110042617870707237041396651187639106362590653081159899130294793919858245404499655047129335202944082012605441023241899127414248229443946665576476338272794561363939377651076871145168898958544928650988738354059554068653575876874509897995107810794298441137690261701750468968306530817114032749877955863666821981349516475738045731445596145586972056640912137087297999727068716946164314915252076861773833311221564896940976195145888782996995456324625744086555396385933533961479522632154454110741423896583467933864745985560304636812735249598143551711493287839032943007443226099002981998350123608865370677193570199737620785601947233254365815945793678187233154757204603217363386175948392088945946076107150171859039778862460239209721668264839500115137476906793739739885123695216418180724366670363012746386667986266371878247788240161148505503676991169968644794731205301929940074820852279501659799943908952779317566478000937717594426066879180262045357988047126529413655714712854660817773873641984745788464491057303003938481343316789963371612202833598326476904309256077364875664731852587660210457081499217956063660993857605440798849999395426922535604157996441685764350689883234662016274962587071303310712039111071608905628783549685780276915348572049373452090422926156600202133007446027151194419519802294029068486019747563760219294248752036549619323003220933105348066427778232600241330307006288840288409619190014276749840455904422345351765020930524701740134291019225876272295675823626880769344410109889404513966801266066157321257195560955481846798070077128427559649568937420880984871462565268317963952215312080856335509322643154818989119153647844049349032515908990211409038630354306225073372361586157277916410348577090863496907267475384300483694258237544291930449235511494959391608946542953126049055968081148222964690484513270628246899992319411220092129407263654032153722549267285647206232791233956600997175037909517329052448652064776281760524284720445191539981735592251555536571189631304327292522078726823221293163933869535453744506750246170203356891863245430763148216181969282555326829710374773503766858653329305355309496544201906822380696045595916246223284597333843560325668934587963368499196459560059818362580663889461577642748744322194995368597612534497613064806055574594660637527774717231784844815921753786303076744155722006687982844635630742675586933884009241722823090734483913154402738727492445665254187034018748001747189673104083380651996410188428007221256813588158860427228227826375348553510178058129961599136528450785294280944874639977120600034292571788981666785078874170037611195951083506721455371669451967078892371928394157810278233661373809319519245732992603013953507884059466507807520282752509916395405080722523643000793954957966963506652861948766803099237589971151929059115748653414924116349118638885120948299043360493182097432323030643293616821095449936440759391596515329109237708789650068534509102289103249599427428419302007373692461432226621062147572752688545548507662125743918457449548689231376881433757495516378651785192384124651033682292853131807550755347347219890179285539196731900715024750184267414419418694891274533226761574647709418265523105666418498800055887507573717374936346500471933328191953868869003148707391103559299254983788050137352472441949023988094581269759154930468591243935935867416946614406246207602307465450320676422151246480823725912902220942587048779353707985710128719290251111719397953832480365630871459792690273610477041271130384662221281069204672448096396754464409666640435848599352064418142020664424490814537014997010231052917402158575045809312456815155209817092225247178017112370550872677861438474434401289721215503084881194657669470628551948703454490716353861842731270891566693328051355260652500511766402954084223578388564756995109509200980224036841220807046235945371118587192597631301998712481801928284826641891844737953034230258869300306706041734041919025248530044108211810026682722655045916912002899713015477517576223407441440586488346719030707093058485712140473141997606745932819156363555064047051409123330496166494133354137719581545728689150058415232204279039613330480627324086866527950321296946442849783801619919267087444988964554703822766404179358450265999367355642006286701897028418254091409764276192581412272265436341171852313316247643648657123990984639283043533380729698207385595388663134082411286715830201455309016935490316629610829499575233854325952193448158703016827184884745504504721509184202331926831587699520269663982683820761188922536200142225899785325453340874992025843783645590904763459404180347142216928335269159729017485389588197768411644726063043483964532329792886156823279947020198720665905218640874496663972349915236398955042045147719647722356860790845442678631428484361098048005860313974261817981754430369359471572985403384025476428062742762474511206550404951205403700196411997245352340125962902283010137950379785975520078774161199754146190481667766149766136034674970136168942299496509086254360830387254723834140793606643785910586951062419619329552505887576569126170867556458794868499586655900626361603056169709098494341379809808048030628570307476611676853654474227058030349545278086925547007763088792466278759852203080291689221504108263764319226841786804766921985632164077848289950159922488074595133818474086211075370917597984799581505851514083426145269600406609329277962779662204897371462938775437667675562882470747279187525377318796502283887136462271580044551278707210439021159027204137072635199162451747748517468292695397148676011457959806644767215799931602724470051607019143714975195920203614225620452585398452988309147364791480322574989102508885198693170010246387671787978769130742930857143600353764422857043829800943507471046542343011801493845668944176486521287508383305304340822046548434626509294008655036793404768236338581466322600837501364130297898624489477548502192548820265609790015802768664443267693740471429901946664305032835508546680558805539483289658182239577420436629850628971616843242118325490465921999629061864440896003709702880692941860390346654249271767128210877988199148145842553412784000389108400074568000110724545849984632661156066026836996553308303416250073827288968006179636593237227233522543176993410233457991822967389009737301744184527776420334712032861113610049181984759335964570584011243221361827205895129034223099031429413245339442299300250037888011049337047153182378135938314355056445990822690201237476675246324755886895206522700232002445586982620224868297359686866181210165990693886718798749943808065766668383115375382939874085553593332682022129313580525917322654932568936960624069788091773235046066587950640797137330094647482644995810927088725832925677790925874381419011203331824156692437424641476886656160306302172703250149543656689716340996843460350068569526818110260437838018235903403357952360897512544508286461048808820474195116030509173137192416199306837966128704012289710764516151842696703551434831527784861589980505580209514966448341110086039008558487339948098525215161069555061771909881178354953289266907908839098672184223186798922588175577418343974052503386939947634817480481113829548131789486011576282881398405187389488885470937822322397148103753941645043980152201653860679676768300912805512592313621505118941780443490748224495062742991088430507557423458075316905898460694294509814228585046292687533670297069087729012145258411060333405454437315060928704618923444916256765635005209722694957286184003346022653285166762391870864938305864569232566388396384017207298664776843022722902505626849395173682084982716361661331914896996296796420541683305708087849316055227716172528812797814947137007984744550288926094684028078982075137336421341482207023854619439481670962482263853605459366459660339248899138392964663396261849651098138968250027759088979159938369485658136039474158717182175432520545482914808554673211594522633429435379053756378072616392576870172289209596735109541433444426845754199398152235726329743785092708975932511719945956497498807142212080037888411368860251020579195313944840583595618111738662485378278890857669912962100587842106311818274387213913806258648189261408703295834038150323464957298585753065531360884631208227895330557701583423031715876238989981188772619412013608140530850521186825274711457334099074949013622877762647980979974451151515973403300536782398873814554133926712110650694455878343643728044226231220120130526738781793577969924045978832601926716945739052089393039068350475315493889667345422775670293688116750950196912248971845388766704364483035191138004462264013626116498096766713078123700153204253173179790778358826280458930256245995426630207404345202063378253327635401262308694819663278631846835027053921012626865324757002461770701406958667428908270918124343705893895792334238998373793651592117204307976078620043487287304501966900419342342152701205993420587814227009531724549547569369039582268032404052071276851664177946628911136572231227678324168997274340527892118067024874650135434811425120134017543923715788187012617471605398360742151666186545632388867444883508901929509265095729228932371106028417122356319534224557708932797852195610026579997483946373993747151747405592227639378448238721658360299217269210339568233601409174572791886580379402281972400723789764677170870584542200732167889148111530409583560521432749360842301206412564123787319529034305050865830105194862794291995460201706431427926525172989925617031818097908177421254461928932084922687138816527692358758183953347943046944284860784876467999039388404984408506266584786810729600662409090074519793008037976904992368820993650995718394206669079418372779836255781187810324310798170076576573520981256794725907263624746120263392350676205165569393646849306438463639955065905770215156418134748617589431584233964011976681331616685950071536830658894838055498653819805522873889727008415640067161789262298368772258585484262606728199760406149762958340571439495736169778546906900269901067390728939553190194955069085280030989666324900128323494121569104426392229507100004662893030914577275347622838247305427146192685483400022984311341279091353637622159472287726808697778752707366171440455960542054631142010666525164001535718587581404240900181352971475945242967765015858687593703399711720533908895816968147484557905499484172181358547828068652445113211692966087290315110515350543366486764375752442995348992178492000882516325539731206345045189238466799700563453320434116474164774911896615437159023173387104959018712854991633191771910103561723112075436828617405952301630309788029901919667466633848849829530818467423044434624633987793840604652325225834783889930322447457687320155917764001038220308517645896801318781150671255295364643590843678981522421930822521568400215545481351589956407884284222376311179542419910773888186098697910937185293823219532288325858599107550351400279448928160985822006588229421470899089046794973096442120865542738936732807114251782883320064538185242204552167171600415546912320308706750125745074592519164215122540621159048051325860821871587916707589673922234417187777490307445727482440003512085208579158799780364675448126463663780691190754242866832421367717100452207329253155146260056416383777924079652156444525463190085790849278535107567771400340750024605826555623246313358691504729018800583030407674576422508348727107073018643719456842044755675715113061925560725365819769028240933508968594371592402920214310273224020834493195050315833410031276101973611531884234786594895467634325965576390122367033543273168355308182263928223786645040265938614392520003597940799046935902304275479038248626856897151138036168308589699636433347929294066231681666560451714089541366684466631357831983092799767111060982312605150476634514638088957713746020670145191774684040311167110746521057769093960588473376686403780617717125101881022039078252164811659802886546406138120286168052516479864310062375546488742742631807983062615021529292565595365552145694857111593544308471680338464676849789169626659404102652387143770831564529160332119371821307075564878548603716975233059636766014740474816203891687477322362707345978755870174784574508756342225944585602513388512066211871383035633362628378308949202361045619406795067753310284856966026327357714817846622381294012274252487145185938321522383925978689742313197040420041445850105235033782527849609834444432204326936108442088434035665128365030852358730564759102125904891500899753380976515065862419612087847798881392058912143077202337855051259491463753562604625030564794875402351489679483406065948654567747391632124602186516850968520903594751615628861395677573273171477182597587838407826909238513324251335309655407180566903343952602505646342552489240288396780936831167204944511501137967648467402863335257538906446184468597733021528139534117109641799717729682465927226710069185368482582447000138172648152249180624122117922390233017298784735003955984191448069046613846428008927494306519966907041967486181350395956952952323062839173488641802762235642949135208474773970108497566041050702522217241950011460596877435740074281417004481560943549712260628033022549795359160476727513991352001639969691843073226193876281975906675907479055697520170682000567635811319496693693971638137768674618739638499001188623194346707672628340515964334644906764211068615692405819931776308512883175197816943190852545455350262993114424412466430330243044774682230180681579260011810705797289474494748415650200014238242199752204157509555747694796206928387703937503758174827702963434479634774576443784848666244618265892167895656149256852015102690678211126831778813861569111618720113110471325343814788216293709536037181736567891609067287169478282357820572108855750084659104915034480803473456015602014371322685233149009665825484407008651719090437902459758433697336467611205423423386454281602554858641697464223837073442934263257418959700637999752250776788061773137964716551923340649646489699911921734243915112327781206796397849942551909878745904354484083555356673687679088371448415970719363131288239213439009672453823366872203678031220926142301048643702148878886791277093236812035969583502892823168546329395965280262977232356298010757738773770467563533662931700967527996578862987549021185359486354747503364207558322050417783779123666138761440688383238110007051891410034227226194326025478126354413509481434718866548339848513687325612361760405837649230489292148666677327104043651028955672517011606715483631155481234027743092612443654984220276980601888015085756089011316410868453505759146544888984715773335509785793756439274199454709359387653940305752481021006821252178759742984590598131521786275950511438655050823420313890957349744397222964500058885328958420501161287727655585191889536125806809768788939672121174794313298732719346086373789013579466040139841892653674786060025021670086322982304398359028523683540101126743450918470045538943492461472276918974154711839188254488818057316538359020582539655649101942109222850953945442263433153513570514673908965317807250507613026374588876124215201361296096333078363783483283355304621796448096045611673434617719853692948826308424988834195807674287830375991989503051235248237986954723981987297308149659660626685139933605841058370349732335752254775455884829440254247436123863762106350523607997525746359987224215317053956738975611626156614667524635846490443007401804433960844897642297311922021659119241769850680187486572500520628116220284719418929123215651600530660996988784327487571293548545780182275833525101891196267202204963594491930531768190954779773966143789132704814141662171345664502675998366690626180309402167080398089888044621869104899923875079813698579551339704483047406325769942359789623970877333034121409644114025999282756588870074028334165594614575558636421976921799127881739071293869285569333000067796711437315406752191140383076429762432719372121355507399644692776124639511215442184244134426953477488975866865762028891700645234717978198375466341344259309307860793103174509008873284503629623643982690705070637536386043217265262752846138820160912201487001197675924394020407466685411150896635656819635306224528463367885241853933781086404529161411861796622045566092893293982245145945303523595557416577090135692587300402386529383770967239664123330317045205247605309488522107835695805063053238550682764617563259141406818714182642090558970503487335047572432236096481714006218173002999184288060042690095744893011255079543769053017804480675194434503946610340109728951749956534657715508312821097613382781734096240342503906856932779893941540672059924445630948102734323009168831285809782119034905267178412779949129538427142144068323695382883543732221491624241743198924777404293441058904372057521740723808329707507766503047741643391057881944525168311863367444067796443736811590135591172266496775030497324057929849690712822392279609233465049055348147114189817965579536026388888864371712489410063862175467132743278493379139367447259467354298681873432299461551111715695922016005063561763384930935019530639129792451240681270348632509795298317571375256946428117253000941497392003999678792830450553549186578441972045166262948449403422826610667966188500768786158741825726796598018112654387680582516160606281565732466904791799798302509776948142213950480403832866676913118625149490230070718024224833788508502525893841030881729890036125339333563841872004606381179557083657522557495881825466282185119409557200341860869541826760355204505481595620080505509473745706517919880537581061113835901193510267626520214704722827487640062256454069216313890851477641422278139589784311296678834794441127876752711331571887112271003437168306970621957739112542758475017604319024221411206702800858069202132243756478489077212479017164161553940997948943587442526907441348026029751553682078838166012210601909393238023035360281944761391147692012933555328364030740319161261884428703034918379908499103482069823973296521902956626406568221888875818556261047666350014339135468233441254860524633481406892230731717613310020718393001581222047144024494633794474240323734724520759487137803710296062513095891329236560175095523733702681090881991149980026165954611802649246506365019639319666541538124404540802105155229670066962706267231308768188558101052827807998280130619619378407410086500688980992292418044353160930003273270228488754541932919353693057078831472350306349080151365305949618624652453891655806149580392702308603522386458272508232887108733097689281148501866068620276272597814995148978411429065603315922672476422331074701490250321200061964701110964840500839039377062498334961313092930263357057816932603068058900862992310651318286326492824086946619218481509624613217154232912264792898302119336326344011282563357454903372835872640174405069813186150021097273860903024660994399167817385061041857540591185988985424917434943580126874040594106320159290833541968066327798649048793393939071715925580971481643889550925704959641804243456692050736255835279234811784478655612023600314469828094329751485743351115273961406516645195801310704376193088889709474544629453376107462797781532606302414734638912900045319288865214561083264534653339187406328658113359505404335168378967098141930747993282815880495408563469179810307580830524355011063071758411770791492765961648769498875101270553458420772933746904085195684118528726413539884849306424046554775178246456637045744442809388258093137428235002437719335376313071362648228124703565045212944058507540210041058818611926627087744572230895682874446195054643570844961393574168766569393110477266024670289474199561539407724837681734882619172495533154870160013267048693276414329303187933770175391126141202827748689493802583766923158360080377980585508024913962207190493423964381591105388388298975713364336684677399485511668291648916795624971698586152470341606907084277137467317644841205242332587557221772600431374132234510950967636650289165602427667541679637084831884271148494962546880502645660131342695638294187055165286753480465326377735116626900629304056718244447021869605714686609978209245177825412585736702150846353191139977955005571847050959635317936476384986340615024077061673727016811765230938602517544809194585534883303678410466259489064773028655631012535508127981083515570247351038676491423027111037640505992655218118227166025659165587704353759537426857553528151773877671142570334869362653534080442853679008172840559633971903506607653044823924761570362827172506589924295721509959070980737836753784445615989821129978759170666769379054955205409627572271301066838698497596382846526755863250833719207346541510768707265031083802134595575654241512890887075197989212297586427993402142839418431776970727150224551389639019495348457839045605698138635749273859407820482727792843988365516016935432474755878928889224567203469576478729319996012958196037851978294889324168059673044728787997157191178913476838129229682357329590090545667425973945078270784140477408481735904556054292599428873004002946311127896256524499896787385204005944579938785106485244354692543834015561641029642198054156965884508953430957851361675386193227938394532702828401273721145261595470873285127692678918815002361586677848664401684188664560704895553734736350582506298320116109366914945966059117892395794007040392744450578253383688549464115359173847956945484999970798629119269628801144505627161736512398255416828732001481225455839824549811207712351041306773442208674565455877390617313854732875371385022882671963838607002127191475292121466484210655028141338599037997440251498506103510350072775024801254077659700271510472112171624845553022405645017451907055931138988000435389867505166422500353151521630631371257260880439966535777999770712386834527927575689829151295009752491481199774942242963226336329330742920988623039366878245518341045536279311212938319638423835234730841065603370058139994936669742293403763482949419393340413824795285480476768270450811103142589714140199847718200806807924097261957510842598223108007897212164135928710971944491978842589353057962765211987042932727175014663491217498334743895300795567314483103457341112418323586359610707355773029672733564090123521271058630101860755418364755440606555889515892652346332920135782549304593912597740506831338444530453250890599772131487807176840294246679852574853555496091710177459843426917995669918961626871417449909896356904298885117414375496968421456704431352637637852798680604253453888174585696617959358305000630563495748732846614019627465353101089959519420338437417665545310829654424041363992330855182530688865899269735463992594229084706068737602248188824408850476384131097760743412397737306187213299688670896000188932145482311730391578980908030191093235576625567581253040519406828053947103133328230048957498102409025165020205599777176932109443076748050597099492278046717468462899248162455883283360535777115861281630432016652296804997164111407807956214031926859463164536040157820977577056129044068942652674237307573072142251058248537277164092737504386443265747133858279369320776454559884668543447884966839834201308489288216379046130054154605282388929578989344251573858538089003527263504293170634972342455561354922019447307063724046360615073392095532009942996080890523910944382289342514869728187557635654979808758211596941847436245475204888087485012133199454070943955600799683169345930787637831336170828641768878646722133588754187940316774073877946481259972588852819287225085458255507395188524897386960348569320685807053869178224911969473886506596312873584373951090403820151820588911739549160461041920656162855927986937905692587045260096536617947665147787036886902335402308940031948710863218698020358928109050599471262312008905276946456427486203958409106158683887701764565726339295576123204492927066607316554159964199113459276903222400569119795615407695294798903677758067565052886741550440363149957792054108437394335610387730077215192878609847332411854391037119318585778620703080773933432512422835302549578311467856710761386936979580655207025314204796988010724113783456045728860820483025927513924801488357214811205883938049575942305554586049066772546007415584257972219816715382254008416813553818761090999019581298392762306386223765818213692111624656639609869439073473895181266776608171280238435987376239074670004287701461053503348323797662593047413484059445576859424658440415299200218927037923287275347121147878149144497179675954109078757852504910058789362303172419128374561579029995201533648455188220721833575162031687768152171126887909162646087712446333313286577229849136002915883249098149857848522021631908794067881310298128410872851699963135502764715310185216324744857911982138318878840992776578801209966377895554986878206466000336840893646474151075548610567467814488627661985401112379124762724187193486451477932303388178340276221010373144049714323693556431718659201771822124388908735800964482727089194605703198759672202694518484239081423032011241521922879090349492122030255825059494599256752377101090993226896229469211485454478848210322050066583660856979626059353265755076736824354961456971957600387865634820621616148238702520096700755571617477344698506414148311725255927791622978228033180127839898893423681276428387625478227781336659703199746600329467880281618501940434102589954843752709116333310557013574732773639404413379069417247529656799885501798735935732210393776166109417119058980394087637044266401579797128785284803795258835617724975856897535272143662244802712403618229616618468520958548744008375076290142612574262126441682923535768686586346819763212228087015458770478971603769700098978875816118834689724192105120749611179973112893339376331892440020775638289801119682156220653401138847495344734383685486739001583724996923888415299495979123771326967581834151798159183187388915527811961734672446964991555161706860961581681257392682121565954998370194271232024650143609690221021612677427606651950797904424789970797629115454179923735756023990659697208560827184491774598852338068837317922823811293395001462514786025572294358159367253439377533586778107522310309604890226748807214527711582816115342445812895633603333248594677103589073046367786950978485247690600863314828933793020270065257408097902202526909541394761982336195363398512512192188027720923758594137688942230398324280896899451506872963995847597390254967043971488659744123262992102901061053897205005540478219000905178658498519633503380452079787624532345863125865697046709372357646490225535197929138918889115846993401020616708730209303298817989735719327269827687180627960419740502738638698911678104521307517452906387366178294798261627833124417703493744951885148126154050190619510991129561381328779275200345660948939192260625224661629725040525364284556494059907462240786267546763374237822668162798262559483447855999190038680010533929051741311002450231493746761603222255985512956266051415290351378955212426932464679961449409296891987076811265495080729864433274442893347784707573822149801003132816746906299619837299313108138089627721906424218637375790707298202486121826980452844304745472790400117376980898425119910405659619978408032031352758802750024662685350924374924252197978186145690383820000522040123871466335143858661018550951014275893612550994362097859573357345131043268809579646541062600787975146944547692245656230921287906139590404503924206314468319488031084890684139279262768061093652383995534474157127184451472874972391823134177352899214889041802371412159740406336895168687670296434638483650346451890409805565921320613590717119416859082947162911272738732775770042418043837920799997595010624606412158839545573142785197679720479999383656219061114821652866399727055214521479396278395995034777093694866135353163022470413863374112187063452137560099194212178884212360093491175878376950361317901162402659808603272704744109149575789311348202473568327354434347928150604921928580117636389245291113760480451134145206533095334649842792275278229925566139169609572272005752623313773891705677649213048696463699487501839144350432302495983856944779255887015542390264136103676881399915676351134933860201465234425691327118450599631748485110773446967068970778234396560692528423086046370263079028050844808729636796279384245790763046271916294883727407838969884916510504071062613824720188189764701125829417913246445018520103867103567172135748123318448453143061671332326487190087107553636612337929616332814763326077832164990467817505740666515034439660040854704431951079916176494717770577483443429960424446465583873629180164854602676135804453994191366182086243610450264448187547594516513073439850189532550219839854065901920898532583037127579010791462043889989788552131337393143503379679586001389168077149512116196789193628823606478986207186621151716980737624088606803472353293472429854108885247910522372252112350814067191186068361292536335533456387039815485573021829042111980721806204646574914446083907113546422990170197679188965173028751224660830367139806732371360145089860790854915852641370343109999641234632802667461355882816637711785039445855301319456704892622618228332595023062656311761618915298464033132537469563863749692966699102980679915384105374554250942331665572300749586178301076404594630194907695450176522582787223876360040012801185548949312423183975699402723752735011570146631322047653681423280447556522152270752635527245986658903774190901347594952813994313510228718722141859847418286308755598977837965813086021735394573094359253156990901809050979401596587203785086334443694790770155621350814836910173748961601356889308908174982407423825865473651115766323871424363883057238504587744915463053475538317438440785222738620173672794495479260212312858517956509135452512398069016669905229039150854171826348395138569618713503600154259776380874982027595563776256484658688591167541932958232804241450608014440684546637404567732944234818360710154836604094197029259727885280892696713212507109038549592896186577949465957482925602359765873133490614318699857300407840030019423632919061264470754251051164473694032185312979073314034056598450358292661177753996883753707576753730705704506236137270138821474453226352258378052760005399440820245958258770998238751513351835960948406538893329360278882705546798432130158149552785786936304082782101879172833143903287013850257635056562084842275665708715147841281407323703420508125808006231408354055283883743073897700626231875624302481587884417921910022922384288241596375186084188459282747048198920384537130474563469151784426910239862979128026299881460475935117407893703615471385079003463414073539145990437936349707431623277619588625193136716685310013522024195479368783638572040143000356375207971340082389897600672892476532398538808256234830893864866010390298092740358086315936661016521704385554378560248490361233129793557893865975292336175765616565187406724927485416518076357213916296804324625530787251460769239664261009360661899586792069143345094274996396364128186625803527314902455436666241895573305068123833274457887809108493368175653410328788257889276069242333659832750989226007657085457191090571663996350343313465486984171577801497260487484979331407047719992650822257848665297069822629012479834136205195504831366118446704396362613674363476433373791590153965245357705164711669590507645506733526797913952173478099778166027494246520751472095579701979561144400827994996178184024454387966013983058999837052614993293715271484477723958110812978621411257031178171825039707680747471601608315531029685082492471292080419147646303156178023396576185899013523793282497932686297281281479082648221826534812944945742622825218078930510395506679409136787605924520176593162269628180232618965115182773216529623789270502125899107606525650671719025419799420167183770821290389305357489312282562689335223186486455479161304854278411448765238815191031648711376584541766941810079652091658502322688781234730103377154420004991164394789620610286911622941822955465165736630044121084512541174429319164283837672132940346829643532165110187225155923547398936523064205450980583809870206813936494449612288008862840570879479434599759888672988124324299726298503647489622270442843310401128068226179594920981379778726496253341913401603382612562376467659970817971950386879977014378452187735490199745776200923733528117315188367731864606921929380908284552890311362126908776708523590284860736881659983636126827784218319652216973253436995370144783501035093464504827523804243540428837802369353407140198458902949064469951742304635051143798271879262692955479164544338477530539108135446617415651362462783385527364753927932948437454978213562489377099151069505210926600623973153091830917096633261266536463377917414037726898825630161438552828562961377960213848050921529639571138327517140500803608427857807995844573774810339533163030764386798219212155184211362486123989755819490297881258409917279685057553050115890009699226052293284563548763121769204875078137591506643343143564869774868905169152526305874171904344458254535514554139941412117857585096916018539880346403558070644164683112372198047631427846938230738887023715268742269559495015272384954018963416425172846391749185442353926588860085192708231457601856868050732824476169558044873960383788085021277238065904681049609209029322281966824388286826233719529534566709682952825663660188784999533584873989535171408457240546961783116308868827110394698716291898606531767709260267457115639595176393617146092578666099293868775364683757380895068656590240118973903422686569274932710242399256458186492460645837555398559650942190910100242132814928371359424387067956110918198126515125276327458300929552944341602734512503506132369537110926562504488034664153592506048947273676206773374096175016543593014111986770300683996963601721259197931613849326205910911947773139617064485016335960850574028404299768792145228909261528233654256866186450341001554939983629713118312108604007684395439856920394280244952802871526903071154710547593416750078244226478972474869616071392531527385331682111728203128611012178855153576075107179191883544224293813753233818886944361801265340164934174035666838417277636974843209899178074218440948332233608327621166092561087269860910134524616702502521194668736128445978850031395501046707407582717314255457054972407411473627887797854329196122789711514964454682523085360027395648291781170186135991425635397583301687289373909647109266740345447730345924446198023821543408245905855273335552577462575237576554940603052699250593802357053498770667183398672375286111055240521021846274473354151364805421637157205019016639165910837279185435617438340758202995074521790156048095139330231872360293122139549875898988082761793742152847463613363724013332219232004971322467835132732432648938061929176897457137746728231787326708426101589907019084310288779603544517103784770734838318177194370299853526311206230743140196774687808375726510837500924283617816249189805090326540256370632759892676134508088648072085562765625324170127929562588530112864117693707853683945054699424839037923847508233209054885902613558446881110650031561238408123160854161987580414512237054122036867773356852764753127572720446112616452789655547104645426875959551502310709741134299913188109359877511547850383126248586830034097714934007122452850229301715934592676803030743471287515532661694892322452118684742110316606687961488363736188209253957149290147959438806736359018823427725355462746885912081102336531651920953718591843706373506133232418582331700561821369904367434054193057369065643301754521709748675708623888544963369937341439103419199772943860084241047646310057796438841928457798390594349026151209990432204306538123987444847485647561746129380070566614472384479105730277264026126824737274170650671790914827332175769615905865785096263147191453559424346180414026110303340323890143289546816614920736130597956410914856283510123497564718841659103083200182510853676271196489377485885615745656876134940566586531927127710817164883774316572659355296390951671573622211642597887822312856576677681889371139239414395452042026911467072326282183086377892644741220508471138192106253429816494172561135439488078376953023684608747336345201838791400082627498431991262036226677053577542036784383909574472184769712157669717022928008295486063941906956848620490131342269533111126980288079954688789370957185868453740108788780726889670729306689078793081827294718124645188924911313729466589608882485670431515895847249176885710678804871926947766971378442625877925406470914094739696298507173197966485109666126665319210079713721488336495033059680015714788180550971777317521332165265466115209670852702219538442003221629008611465373893426232548251862282533388069168507242960844411891623413991555032547921048116825717443633958421531225762771233083740457415881761609375321222709996272075955811944155288653864429143679077363612549176238990673323035214108031092564361570145656833956999830549191363666045648682174075920985079568968202787816848123208567784827928736918256933214057793043172428119129120644100637094980185548804345183584637917079757058888610140879680694899840750144874711209523437769154071924870434021789342032647335667235652548873642136403837623714374693368521133672961460090456087604286581747665762897073823161013735191276282616647790566913799212773764782050017955692368437736484297955200868947471325842087686105265594216040168325551403564823558032396533064445714046582623055401373144126220619880954123098993301327183502895390988486074745087522242645792077562145069803619704534773141173358711312343343408027549579529033576177878514591909764823887684820226244767259954399665401767300246543684408954094582918251640106608424765727107438441494495624717752561632886381876830731817701700827256806463474172890558840729769487240129124667887234384996703876319984744531011350614312004828005376102625286034300407430179473282700224270549451657838593397696953928066635940846923321422259311165570742066337965331081354434052417002812409606521437532471487422303870357213880512697950091606993842641074030141508585955677833215169393510470638664785387309341836940903040955796222713689336769480165827026774526093514614485919567197622077500898928337688508659998248739628538217724340398131443770371671486112356969533065909639830222794628612718245318906732563559506864217037570593791625612935062617339769030635511545201917219297694062350681423468497546007340231958766870683162108160012956752524839761719292472636229735131516015505695942029163827536534213284177130035741116241842990552565213128151029130729994066130349076944870178427434791816341040692788319024801949733116164143127046391948211683729505595403372233439013772482271083559985233127586896480654971661011743307173828342773567074188956222560528426669697263031446562150167322728978006060004968579576598379846805144024863734685908563548571734744929259040447090013749711972045470922064656489722457646990017130403410351897468493968227100080943877207123422158303973584863822842944099516311165008384719934492179198190297916602382030106384242071236488227146210376059730306543787452988902612315723424922780509905436253440505469328529032421252173472984879073931725294672924478293833721176242266389777800858303676332408431507815280806819618676827727786150330558763367893641295178432742419960259516336585175000769900034423967379138577863398749300397988516864574505649865927857841555149746101739408755438343513291011655651964034383395620499835636673717012844497896435575948765522835956578195122344420411166407870453481863877832533778833244317458134382487374108870600186312607058947720082141140752758724929701675060464806133248748674469827261974904986118456807141801097103468431162104626641752176512049479042384532794525826771335616283808726127254205022282239425174389078430758089651043954684914949154910281438979226483619979910366158457190407606893539003004583333408993505078640190287507252335054746696134240401743292798353266128613310677648095158140010454904188012164626115932655792927181320691927916880081602765078233012441870734121890867093832576450380979233656117879689543958843826120675987546913073427516468389944838538138778439949560168765541926544033645094152770322404611840638374989718011987699606796180025172059355496620114727029331377826675830927927775931183752363390824701300907192693471130180988702269662706294514519101432050861299423512492255381360661517175693559477256941366122453100405455848914324976420569658743705051816609781636566629447843594920979213186018542256084226778669598738563536203802586260430861679571951996894743093238996015009516974263249443013612481738220592528784096830184676131387069858129415866921762854276847964639013304977227192559248346467306018595072536666777343011780542166914382995778466063112522952799385773989179648800947176059001619140190086191823197321669166559464495318348030289734267979081922364352314019608062510696040032292739604855096102084775729802154997221053758811956237801302207616623775100579596209391663855627168975647323897897867140979902630349738336017784142535483198080852422928245829972805484827713685332512382062822398307763737501512185447812415394969675408211212124588617676194112056360597520364694206923046310834293306973741804097829337216832563998338422266127962862367458983473228384559768266689850858878395476080562153842087267339031811866435909282578780293176217738753528915632477759469375257113562788383456417124483869829012818230305176970391431655127050677471539656773687845440646212791228786337427272218953569531612361524507506051950430699855400647723858406245087841447010611026189476208618401030966855386592746306844256544939325927436996865381105968601276195939833293489681754010525971473521647864155284757708362705566880101826099557917289761207902882690653341010242383323109612242882040245912475636102780324100857272016015434418090943198797034115676427385364796265076253502831624408240011518180244218428041918466974800791327497628445010267386380895732064229202450694680011891999846888486637821215391379832551863728511684812188372793445935932019700935550688533925831397400791410007165090786040803156896367162768837786118540511757606925829366369118038869603680244461419612627702378975071432389305563239315802397565964277745618262596741784008270254611373780396877661140334015543466772521144120752493382443182867014692238933526060733069276044070875500278858741654690568304030208680586249189188029263468718010551322716875159083728466203737235469542327644886317207541559018062590077281327370468648146261975137198172574729796887122818443279985576374017612814914925617825368472093965016398539128515075600631162278909711064092598548559849083604092794749140625027419619273786471462147523511166073916973791393005323916486730451738721137462072273923522492819507006311557279245460542111486415804479900411817790953499016410816155439765918627771107177792404441519626363656076990745918687910110587967226860207449543261043397603132820590254406372112641346870095859360532790460500818749027114698980963209919324488129235922554215958131438638418072066816167734461615650653693506946051749508247346449604065171060447771467905773753778132144195530064147760771578555984167898661355234606369669604334860488523733070338985565335488024241554400722628529685602593586219951739482958977319406656969645593073720811651075687180751652787349220280437887198207774528044529037188078205555528203567595552382736423095642499833405784875114495710418785950644169376142483841669807872546763467086470080264740112651860323629557798641378874589763832705070571578478366052417732239875150505579700935275688406611661573798860813290164567148448698561689021354134443104516105997895019806690345225896006979649427696323700750457265858528229840285220566023652199839891768409381603464526561891676798709139155525821033220955541594011225058759801430584888641040837742498976010294471980410181422526884224478788988518535464718506659413729853847979032028477710638765448465581655545062991823241321351103471973855260941295649261091340519185151101941237409723324195841011850337932745781436798187239866688155674248095755927394795776456572728692152560524491144873225140835198747736122036955607979255187485774974501185078247309999337737771563817453566221141668692762587276347287563448587215622352774335929100789467321658388921178117348944491350414030335205461397908398321780265513620820578944022146378835013887977820649203506601330883108255747897689239722530618523755821343916080279013291415929733349215650173385198878247566856331957243653418122691752159029749610366134905726995597596284846414043685203815055405997876573443214691425579279434920493267320860247153100616758339155133741794754872762762707478377701271323993692785258603144306904187206434115761893947896758125016753802439323382002258355145077914728504292252457426102225873591124204984537021260507542679831087796170961140626914579534066698312930626544119944415640650839391448458964699619574411882921159125294239002545498775887109532343385597837795396506281619092105557855455562721508811674099348814949839239395939490307359267526028504504696716225813048251772352836052893602773839535677551077939882251964666743653753277131826913401975565750962986404964494107304498976054212961636623674313827556964980824105819042805593690490282625616635480900997107946858940523821660936637485101029957759974226628617363193533141423685632916627079722947054735953566006726297225027697935355008175268173139343401055191594476622068855402819924385320434441718599955101956376584724747274072463932786444965505034514645861777166845558175015537169733912262050787145637517291006259028386552891873883553296234155316352223438833270803208185287397265813426272948193072990083468910886335377895934804941505235117092154401392758665782265468258742883884128549819511917403981902587303890862811547927692386582579480659501443283204261155092008594953351032279214670195099391577802854501406436451105427541367031610368685440231142582395523451652690266268301405286664214334997380419628599152909437027151026998928401425228627597517085480282686519719455219074469517207098602903153009723938345980622489158380161066679753229012227328797788407443780201603533424955945091633708330759592769900711140444471287888768610137286222739857408990896061907598951865471091100061074577803367389206184168789862955379460477353098228991207287329708205917627290555659954218244222716432934125557711887696058302782462057444750718086207652326994097999781138363327593723753340463547757508794839626028812016700768345207788806646025659619717235864549515666708335018596724592859152292016121669488929670701590520231345837393594925066840145968711723079300369289026044047672888512087256572252151095629000907491752223064428962619944930957185674727097822169921245739878738174490265100136809032091968931485212304852592968405087898428690259799553669408389537866698142841303053851052422927527398567269476310769202357076969957894004903427956483716540892852423825490294734984512565912901975268600959223363468141613905722366356252209102806230318384673623873223802312544682350571352502665122661178320255162042806306592424041673692279496090882301767364827693637837076644300597543723272145737062266753765386154122071118897344008863054814991742454704284358629522457502491715134758925904121842210926729332016009769418708732934407223254461322612824625328433448184430358453969653532464043710774476431204456458194268622542623940038301845704745554685630882379159066641130964734084880646218274505124711246945082785954639763635701825226658123506773255061711336637910487077959665896225803392787901738293636369043603775155023121524193811941638655698447912576826383300756568631751124657470283725866602074747069637399955569782053501119007165603369000322058295254170773798725879995300389536962577394132060599581993740522042555545123687186180992654294685523321236953161734062263985207960537895713402506196031958563814194508793271394734576539935829736024288410104164887502971470429670605548278856025100381357275972099025283296923583010819449960775298464003426713859767925368155027606949357999394588075347159496307892480069415898995866108366881365051601651677617178772395128877775517650177123743609672550271839736755449604501551313742795040477839813051261955150500685985295388243597418084024208645917853962872355493301069772475708205595161673178359422452134757936358125382513142321214042045807554712252386739431860230691176372338839709944641815647675782715936434989326313220959011565619265203723762219501165843953995926570163979589150392784551331419997851767708067323415975987737872660684247260222168387967035149958077423329212712831026183062506481433911444937382576870454502773852084046469552243215278010311306914415246368281957650125472704523504261512862773717319188589240927319091301703078753235116226427287911460708295474418806431487675341091564058611435732110143285561532893992852124193346421262867141905017896141805227001560962049936927563150671121074462612320486496642596043741976357858479829011453933448499364916088168199931956567010668220104857989419572472947788066339884115882451195793252925951583493853906494311229382261097952603071947150410572526273323686052039451790257159469563112429035376151069009591582139205531111212724701092985015546788239429262877198022344772454790922425430835683628416041519120421398640253523972444799407023188987857646694828385080447787975291641221366601211007669027436629594453521369038323873337935481956892827220853357255861182708348107975185482636184216629459653014801889865601467257615437131759127469784104744845561553260886863840137672572209128275991134414634092932709320864555714575271381648457355655873468142579335384057924953764449882856066677507924367627573569330287077295440741765774645195837718115324535116026951352654950543189671197589326715942403437002948206072190404822504832049090335611789535655776820975433937072840314484230255955367785590275580041606879152170796037852260923002850120963486294505980214611548030347803524274747057997304962191489015091539214650899021557258245087711181957075296483753554243501170610629806636184990666424876829998246810626220961998201840999567101435934902431410615113070598144475513485151431391320620419989625638250790700653774800805270393858613471294146122642656085575545460000840907743018902643842884144726725085295344802901538716332083520211486903812531944855833036315217550325433939805554626279891419334629585048885327532457854576471992333120367003202131883970148545534220604020903445722609629062083709320561280526909000910189879292293612939474231940841743498569989590482960201729788869012674147100161134819150219008295621599095217989681811615614989910186262498227744525414438336366831285434695014411560586045778827980055582968584349872366364371178533970134835101219172406276895447077811119008993836656754850997459463259060755722119771230636164584010709074454225257399924184059301376816643245886982245562915619613245390337733880817212771782448798186401909637500175649176719743135229662805924629919115305927252009972491748235618996700814826038807965259988298456206723586481872183408650270488970389141135477320328981480849236442879616148054331069827334404177990639147768232886701231684389694203820637606364870679625489487816482097726795187865026468387826836498835759597775140745900213597423097051661345872719283589494068545003486013105414198254321965094730544197402672083535357711562579728207675709675636323545537108377267672219837335182173702287930363456363933455219331066395759749156976853278762927620831295918085382130045140673783837302185950798497572804822195708604394733086013671328885075073931494682274506766351114754622770335626676119276183746520759867621881310624836418155359481467133603747237964327283995749237089055856942355555295084026150021796881114592958842301468766666018889649191691514088564633371725806366187997057420069227153189869100256566114734179385374884969723537112449133865403546911471338088532844704091266226783963429476668312694440555831988654148510323479914304656370781164357920307971501539506073131289981530903512786220054025431613183136233309542786222469835525717336038897596482105601040252727455793612744388036183738827497535711247811309600363088383230214104503383531400707326691611611249941176910892367363682125276986582142486054740563175714917501544680804458835338456951127060432725010083586579462951677770554882175612286286192765351746612095927613975201806402695150623367421448482034034111422277990918443721638019009723412315679950193565429521461461822905473001016961107122942542021512036127387059871889617523382902754027624661952231557599242870859807080132781803616883859503200430836614063962860517587696574414855106218160330732975511038579862569087031654176042458527454570854581205635288092532258668290844087954494577677348878172679053116449744953937824399021902904215982621230177826924488583820647539170291151922191006807960500670742675571243455268675861572819567906359477733069416105916150413086094526648273769598933690139281324771592833389664999343915333621660472877688629790883665826940605345675536122019264135330031691692523369676955203278633381048250243014704047572948487881729342609727802883736279941960704483837908991989532030180239519099454918588169726696813788939847058774871862535980793661732040375478009767906649026254883269220069924802710884873379572820758619606690699307358857923796145912436573562991540647884789000954727644518836613209345171211402407906921137170390734291424251775691475969148932624176125942558282755729578259361704351144686893007541949070894850785124698850190468184304164330668306055205211019590719245036776661373968348358430925891555839763885408577850326319745652389666104595138607268650922364457384056691425511786603297819722188147529029051583442667277576659072803365065572814160022383474482446723415065248247574458226656115312325878273359728409463128006210946588794387061211395557272195247854955409448953161913225373339375254441284528181094915132437640694384382526536008074593604168466586655059345905567549400740771029591723844713727304819716427731341987395316357886449841225318440825999166912644104650396998996068494783015156317810463289779255949677120382155426452711134087967278290919171790661782465449587671033366211351774640522056458192652121260174364407422169746777545648045372802893854949060670250326244299235356810392890638344734668446104210245689700456143626766573707952718786874338204143812506975138077994021056933617110010341092218137551161977694262961536823888695838765378377783056335335721607459978258063534395676865567007965414228247115963450837947292290210832503058685969492173213417337286298151220491269881850996034283798617612525818542795805006279594733548033811557191878037239812043997483172967147834760663317180493646169083102769362716310815436866023783779495022736103520723412602114072708985114542788601565702552682148225113185747791008055617538688782327558914019403562498385981073459456683127874745197652165073350072880629017013521808490257674122517110277646515974195082645978268770422342428744763914573615600635162249098748973364819636722213619169408672328817672193606209075179314533959970413902118371869770107206985776306578699753880806896639275458112314982468937414777882120897088035328400269429353556881310864537024728494115378961441271452313047014316315928071071556014328132734146382625819346209398273724978676723198732656977838618633019730449685106892913528679208633693573380242835569604242746978629352124407189041642445369866319942037911603463361781054018782234150246216859477811166114211457394445173590996613790537950640304677813021835303236446097380814801935629818790840860333223169476934652752670962509357960086670907781616331767214846395966597933671169483931544752891464540461544727705024984828024843222399136471480022885080106435801457392907663146051358386601419445269546677464070280958397172468655031691753536479136321160200948750226116684987849847672217183913252077842222336485845728161790852909798054815434116669224157700274730747315794354358093399121569536836184456912543836137820949021322395914428846450980844346268836696442862596098480380205809289324502579911645813320774891732529846206219627300734637025460385161716718697384414864793760762753477877526617811756970176478096464630947979716186678758539092693149872242960415582570063642931200925599838442555631794994709644381547550427678080579675916698812262718173479277283509506106112240689982181046703129665163680508387905129645982673419040399409755419883303521774846584006338706551268392393081113851604281590419080058046154498473337859666392177493580545910115254800729463257849187120702751459617924790688467251440353437832408849582124734790586061196538227678327386786849389708007078881966329005728413695216927925992380825865000577279810469014578992274492050260896247314057103160045250772263582855918134626023600982590417132128267551615393904513229614573587861262936877013170106379333295878942849274195270404026623550593981659978501876462551341874705432715940264867207755827399519641445167597974866219411332820538923875599853740375662430085417553949783726890497455734395251697280824459370078143611551387921008041540216004057990996059534523803946637305184243953776228227701711040128256244534404525615106739612204470689904733871440235800544416201241851484295923902051479540914986397025602133149380726003140559915589876210650031082732711759936712073537192361288037091838771959440563253141986899377533836679645385915011079140046370697751947482595395539425919293459186360635646738981348493336056771977037417747440506195072373192107413668475212252966620426027026003976707843772131332478770377578746321245861810186719426816641714951218184245845957961957643061110934669265995409684561330226412533740440235662544176270483892908389629774158786963387644751447293246347878046523074299313649057382374168171452346897518314772365751141735160758867532189713501902856006954098058328345482093014866693375087544171467663869168031782251925223256924779740558581298020602639265563038899300621028652729953552233614148557722674108807370485384100682860309537619010639154233366368817990175431739226005668070506864960766664162211321572275036666221934451479368237219347373247535023959679473393301513254501091955108241904597532123409621624430463452792288126038588327119171449776962587289858199709899159510331198929714328586820464366699959986169567084303861353534617187551528266017338579419279820922950391744750767681119011166021181924406749199084918540849319160790139903946215264045365430844443949805933487548364404362176941570702702581625847858187394359926643738469984748292797669718159049823827003829872154468672762248367005358436810408351400411968860530465847937568713766066130465553460688960792196401341682589438731936832203388800501710009428856492067279837696488365231134502061132924233979682759373383010508697512107806863163974657746282012365782924245448962374712669818473993798059879508313723783499559568508427505605773114794132561139926124788096701434860523059136826789025874651247729499514406512495517403862505133324046206138322495778302870610153970491579979099853368850425427887792457109625295968567832905615272855988854973150439086347314546208728264787501810156184521843507085111526915057636131616915615448803786459843000122700234567795446643720817214771024874076579911182421318470057083778179625650469623283172944129260831309154473010183194703613601038073578015018899261779994720787950093397375930230901505393716135881331523013475864845511545929966275213233354609847863308098788165436985840449873232331757858384554821468259050619484609608612679895543048220618858550829887383995088169740596788407388879655342391676159174576575870245447215052776929541745994477950551881865328477980654931814301905078757685565667838158449231399052217340486658413204186295856520816654626389566505941397409700653208537302113395134125207359112571271647874148897300491754753890457649769381923306511455920543759338085285298765541659590028664797640255459290209637700940887340354377792154808165779198049708333537594527838295274065380708519395884514901831478043365390424195324884261968438842033803105140169424273445602320498512011708886737330035433207639005369951193211988896071057721731560953252427561162671392370066560592326049824713541735034640571544852345979177734631666782911839483283560507348362333885976593656602690094776799243949691077372081181981220514146854628701163721551935624672274695590529142877779731575155755615642665692889744239740807053755340279342457627462330737525005612134132033516567803185072490165138383933808233220470259050991684271782167657322747348734387020032811375016688780649111330867619897663688833727818675995503881689098883528079944952299941955070703886606088060882339134799183590454358044591875893231609772750419143228238307020936514029589931949357821713006517279240099945201806925125122242273447655336331481893106793865942153035014140202838275829419632517808602277548790539778879872082415630580470213598307456801619304887260111290989862276301659668161585768774820469247110948916549684097332500821134081809825591213142466442088925364749186089046936559666864671229813889705491827566071924088926904922979731872176986244943680884211060156953563925556388843725807119156665057320926265641693495218737326813838188886977798054744963893647295639978697954356080416580382125162155711849458397006447872113670868439228509935166656255075875629633370994535717887623692440635486613780312352247281418125912544373874893925763113455566279909575938109612040254232864490804033933241745197126166382432675761050244007520971355156834576289073629705656143139221029107273361127871121751769289105420164811229165900488366184801799373897246798913441901057144166105796795813039850319789866888800315299508374696741811764726994471360582947899847905152142627705929290575447708814540293797320375015419200871901874318517703164774018618242625550273099675911199898721285885529918197786763516882266769142108133531103280905028848201013489568729814794471182670093565453263026945297099388959524290207452951283282340787186773821466139770117273211654698441663415793865425032658767947769497447507459385021260912856557351873776800448271282357253745306810629399137264650991350742816745771306352437277526619248146205059014744277082053543556702065761958928354119976616026229605804777514579393422555834429143738819741065545920411626869414285892817409773239769882270065309696108718233160936169969520088587288682118723836471261272728377239730227254954954750746740938965888670319783839791356994934527565577986847105571187366456692822610678622859270615100183328270970316907959286308919806533014431516109480639993961434395002849068881850790046678730744052592242154178293265699528748943555690865847203628723680061729617914367915484596362688680016540931322242712713268751268159616052524034862412709186346751067893199373126898872608293369180551945213540774814719475870433958679224396305007991494914987023130343874881188740256788430655633601013623132763918496113315344489794878591680395739137042660480364765319649870110621047230593247317604724907487265863356909582754827719817392854188763821259433793578463981129469287298968047967003599564247233212910579032917072906673561003223004288739653754604211467013082720382090602659477324562814960653086952699306993677488593744807653827974759679486218616715516120163534260585632971760705751853255194817468928621155296685403998612428252097886282488609015108120592543329710444799167290805181801617293117059006099516340414277671578329503432372926540694559914505315437108099818922871671120595180945385919998875703829112838316387736525514650718236625104762681179887881672516927874721244922388675858701306589279322559630011095451199249382060288977668321716914888326755845470252357948582509729715852826908509599229429236844789025684331283668116707521187210782994447040510880476705578720729698590042258150044408623408421357064162133226941848393553467538617237026357225651485327681422505380681297772088943848846852645305394328705052244237655118577034193444445205903937393593633337555465402853820361373732952612439269582642120596534469741217924672122385526141658242736701287477482275333394202744795576439737436647271588210451320068664787095251768124794833861216556772391720684096781425748628317819454627770457071787873867949747552971243397592404485070437192852405319632765817916586181379880793739222869829287753487091970160088029326340932014414324191304750471892269759868782252684161459246292089932769424742795294643662617487307514896472263038314384640564435796901548174786369378690464650204790189304003644265247948414635703549831190213819220628575559763745151965449864024923127079086116064014640141624748863611339084188135603322530468686878948619405305287128114523401924265447082043870015887232683166759352480753471050973008308868167159046998341125052743801786272742061187090328673143713470731012195369468938526589446482595160463536870549932590591729556413057862652895770144921138294952985570877862195014670982457309916711132044248741296296277060928087892388940825578593797666807983374184243987896299176644451445396094144853920291230968053081080013174714309662574613323412573530373168357196373133114773809103085464533680587864661426842637429681574071551249065127877768278215688394006753014676590170495679271302480865900294427781931396258895728188936389460507993744477833376202800092127290044890967306014766188148659943563882470741169061023421949604795055525838067961987022508732944035789288043743677545922850035905331783198754211120809841901324079754463294033139194026996358557724167164046966552739142882784944695127304680364152423363200324983538408373696486136082844275618995764467559429714569177138604670185607599883753090134328307607794227158599546902782268750241679137028170815152270872768205430568784288474748467823103987811669897506436605339927498788335049255335405294527579625333354876775324519621232136650235362455809458079024122831410227934483762750832434740416326682465028883455232862362568190790730283153035197199364717369196382820441897938640402338369561749201777964315353143737067253944730045190753055805661877602551037276685901284574535277991973662379314402120952372284264446405115163039935195323108584324111139093627287303615167550881063977504498995845083208121295727472865848834394115646125227299453796870924686921204475941242890076025113535193279872285237455690018776357262016160774161030132241620246973662349437013230475897106901782618261407666308313113668326651015473727701489254518546419801878568062439275079663960158100282873157527725429137081423454577795396722464711656591743940474876545787919328207631386105662265539521529301178272770329051732448782778232764968773524830561354521672250644436421216121607130055307648055037016150358929704116263631300970983376248404704014986863087107858595772215973450000754349348500729199998902582260045577470294294105997592562363810534805220549929045536635959962374143030146530480445981385001779961921858776691720963220250255888283886976067480195178285194890974108083923626019622416289770072079711683249062312672982467901683213260583151231384608388334244100948128003583899996650541250386716870999974930819416110669394334309776341341634607366370173565652314731339455608751997147778931043416955384519252627725093070487747657481752769918070940007771640846953119302302960606710745855535685416471323554119352408429130562462407746254395683322844719009101049046468244997060129387497518014607217312239574403874705005880121538283725786112761689751070760792447541274959220359556824049227383273566830559153020977296967964470831843495185564110825205328358294100022656793469095981922820186025898240124165618717911806019279188632326089255648834849396549531381608797960774790092552583867398793871762339089009486190332699703394079978266786901030945869914108751973752111067809391317854721391825693635505085141495296592883705417186627839681074772096097849792632472822735162602102474886717729821746560389046252826317848916482700940464977121438379211574567866147100573317396740401452126401296428030329641935360805376853941393718485020876222304267738503400256516540148557644917502675930379873138404275989986645678711764234389365604452120928307387315250858004406453236842874997141791039762509033981101485784619327176404717828752571941473978714125310827118776929884537063283031840389925331739288159746385180713814157787917525577960757089432479420951331494806260577619709972341969351868223241002990321464296589951205914695757653362519125170937014942115253475438957980027380002990555940322544226548657270982752461007664315060662258309765333403034333508792910857510527998563467341441838192376049796740858702775465654226429320286747862782681166246584409069296262996537433961129393546985159372697181113235020983019146179422113817870387350452220350944364451359104511239797059813662060016362916404084174051162005322009267512860445772406487955340792656280093741122323588338011007595236385530889400343876872348711448721690379563317857677917536370811907847667934074762172177848099301716051974009256145611336515613388825027343882940554055353354802482625497641250580359924077115380848359304973008600628042826115803053555291250682660407555790406155120743685360129237853560998766703622865135181190030722937248042080752791763390365768871638818950226517123623629570589823423346943019440836043047110889884029512681451053438867666863761872713459582643259089588220666217576718400216063935918646704122462997489537926541491988359904198758262037732189725383612848698948653496268167600819432001261197327208442048468916079628183912733104395980146066678163071191303449100122880877881706625397196159779084738112630731505597266222470016952519273048446991422515094022365465732373582049656139348478931009769800168647047063769303947925033300601638681932825779456615375801853188255688300402854970683116153486482793897898952072735432990988151071822538147197873247075217634484742612692713471301609642057930060398900220777508005367913545181383607408568973611862609622960765201714390763391743326912218941962957196133390148066248972845718427109524658006111939751287134426414813053944046509743372238805443158116139046207898580689273025210829530391063831135263218336863100785078801007342348446874509106793031438228878893366027483815573629838130165938070631221824522894793417434445738024786601256603771638834155930770592831352068287677290865148492777317062996839907434768959581903870258038970607589216708857056325729132108087500774816834604804656697393586525160930587454847989612322509669898521472139120738936953298918191725472113337800739932553751083893461793633199942836335305834678492813590645454422735084061590654150866490405124238449192237666725665949877792786851415495236224699356175958673877774564325102359250558436572839062019145164694506530280488065712318623235485185409265407121382539858309309500277665395492288826471080344232569113697090747547376125559299551429759784568354548754165448260423045390147267961448058798608870197836988125255075446722352422293021376078252074841515442571714710517606386597809612536744066338105127868379496976838640862180097150414598791479554530237521725935146731273320824118100825051682528487991060390400779144743893147188209459167820730140745033457319220256588761140815785997246209056214821976612315644750172785598497347051624919419632078528639452642526701394979343346973840988421904915377728289054161399854225775138565439139991137327105023104682886053847792810492988204336775864561194970256865567116341808004005692461328874584505444745758656827389763563121190277744538968140751995348120018870409325751135535739386351240738775234122820750390923014211037477048361978783817750415774718947803182958495744355814588289677315495510590320626491141335316367842346431151678405608448227411358487401012378630967975572896551777957334806961558934390843165587300730329847131602189259173555482045542101022073678427523046197419345419917958805784363793253094820198565750865672208465893185482601469630230209633956312570883504450813843182490194641771228165750770438763452661607980529073821532950540942447165067606487502726510779992861101626499079434596155662488870975619266969871333487272464252563865254619845709163357832441243928347323078355679618616586753537263855013908281000500116811589810250344879265784154545610065565225794868878836749491932878507807030852934960455058554125668480825780453026420894090089547600058441642906254072099340938402036102327638465692774486593694310211508538380439126092471988249608928565009861267257939226909949782566486348841557366004668367256452508596204866865570935814690048013101691919665602037746386489409309073443740623385872222497454097108382240202985436075510276585016689674673278448310257647955065509739397880912946622324143512916941804881361984764967837333853773730638129851249435744583919048094330612203276153643617716802057972735906270326216881181695074675464301264233600319401008987883549455168078299821833834172613053480127782968256149921460658911716031240670295160488894159966125562004852355001004449909534040724641498722848951889696265969467554445827390043500639036377454868388986571784489831381107994721171925391432730019997684358776359534874230853963365196240240279138083264611864326536787988102529537722940182189586398757665104359357657979168600815634998278223715718810115608270433867717686860814674357104364192622218330974045954103210688948768751872642536630675493477407428002114458917852161093646322481217591698609394172700772597545833897781692586731355236156954975847413815028497766969110316679470407144785797528259817427161350618567142150307089906950153591143464078886186023902827523115114929119667470031822508370195750638623176504289806872869027615598241852696744073334607002675341294531245786599145796503542460317879936304315459995583360080927410079745738536015799653348648167763970542491571811113928397396802106498323704338356860149641708290602606401962038347496228506643549010254093092023377808013470310838817606096295287875542799891450492260896221950370667535774719893583649167709777266440462238934518280562302167544889764565504781271840260887355799234305467112445457725335189895441175838561531825025347980404079522881312242647674212305515827740378407836213688555800779793083608133652419107156387298139407731303528671421964479332773573105293376738175110056577127144081311762145275640308818936042131973424426336743092248619404315122245123333672675081688313598208555429879475114038779120110724181339184012082027747742055125092799675619602178228843017155989183259380793725989522014444865974026897615611342048945271600538844461215898074092437915416523690507171773964854485338862434025155890844606597042438587558048649422676367768640280027106328286251750354274236196822884455816744916588755814214199478136448811417585448254382130802173416507021307366333299672812201004882841893021499923966242482195270371895305043179386614101705456606985780765171426173909111740315642489539915473931437681336222309374181447574261465965960575283481795934107957323328943115863945703468112596010808323653031091676894607164817419798180442036131578838113776653524504437433643113323607868846416591540929018166607759028050517293695453640536059794290215359189417367932999810387589882122730527684068358263940002495507030980233069203623944007406751860411308810763439308309877433849369667009893516003443928294084270879498866332908760179794762155328234808576398135485947932206715619521732345003681357409249039349531966441830259206311760174916048182766767438773747317252072425985214929492304387170692460925227031024917327211463529913643621881625654539858679010655420306453679599109409246380721569723721845318253688415857107450224319550181772796859608306618330162547067839770282527887013053373497945388835010594525688954398579648152016696456619305395327870458668389677402172179022875487076011159050862874428050014324409644070659845808686714517529903428528861137738749097106466539555855822091198590342916198077104417746360404510589858051906791668258258337538046563399375619154714968443180527908907981849229274815963923856706573430583286022068751899932807332775920727672245560045913187019813345368388254887443158490751767235469841172889636896607582088641469967539334853896560410601790026822328947790752239377804406232596540065296856177765961573137501086618592173638171829803434680337083680263480515700440620230116392700047024873677136193418255480841160326159978233703916371605203418714606520365566624301286732201966572536184670530214693108606490722537038569129101135919778216656726891268435740015700701034619434972925007137263608075969480332289872981627135062633601314946501242257610986417722441476443027950926351262659646271365003049125967274741630168561023498353941047466341904230231694875787869777205171546315324674493510957655290098049021597633299049071948060355086694865266804186450263531153622247445482536808905082223384409311518994844327582961449397858896059906312270610818416612354396853720409845483935783193797769808633766365051631057605090723629474718856992255265242097636053689178392042957844391563049309332151898181987512206649319533747678072977075998272959079268264359746142847971389107648190494243537455836177678885129152528000552804840677441286122709224669359304518371676088466461660689688150317488751046963358414484276431632005334960786636772124168046937905458238102156612030272468258984464195691756519137674699036155051523087160412203275451242521246725156161334464925844349668278819704401393926124895665960571004330193832643058232091542582293118581109786164851559698837342952615993406077735686072535936041948985329854946821601810251558724999665477414451209147086937387992232982091480521220783787270665942876563793680158118257094888029981468061344111214570379422858203637729109234954426251771569715687251747029200892643028938399356503397854830635742778524670038484521928206448983956782251555161651171553545063822269086806694178747842996654119726369198598518572515437899412954536512603258148744988362449809426918500197603429506134755517147732106989494654787280502612535030346204388516225509588859384935683463909079424295281462754464617906924541005738137292926309121375815932343483724766133469974807452776400842794134977292811480046850651387004171487081583503066565438966094687139512438709103584716673593562756922338201390971022422073448215306170045114517939351058803133124470736243682305285901348070715529370037271307339190770023586763724856057005228461443276370687047513302200493805339641858634072148847076131503152929295680038746341539588860706062799831988576186580031869334753776867646673822191701947804958160792894476621024059730515524314507032802712642648902604784927539528744737421555587841070248012149820599801074942160905036412944974399579850136132242730177456570260173086004992091641973372464172478754710399726313614998295752875481212367856984797943816719735295065139672324883866432175414138054112315217898357591213635748224177698631711703830768063023619443718324979778998542344060876842678870374006745695342957724139739612889907006778498235163065946952102094387110133373664075574542773780941278046241274472777632488897712711443730078517613997202199076902608008079648789288018342053703763431409352360582550543178921670156906477118701051825032652834089968317982471801542719654483107688664757031722379383526060280748426337542032549229640170395501650495910403421476237457065076395705586120136892505237639464486254652906558043795508155818009827413800419794659660592829131271148433053514498708344747859720804412190822336305374497320996591522037913349918184015158371185038935048565547983819513632510026675549899619237454928203494465711339718132113157030019927767808357148033696435257063722947900929612514869597321504747826886035786501400712820774056040507273457971181457621734046075785421569239456618426138897510545095261216132998427013827640407065096517058029459203737821120602322055870611404565404106166972973429576196920683453529009622599267729630181544417061646390176527993236806816397557102856736682784033896625709008884621672606174215492896654147323151092812409462427739229815028221717338345001267195974670431413035128720364789692006106247219874061515478758992140450950077964579080893768658177889260404796776029955230507329208892521016245258174034135578026338247751305954871936383847326645712259542850584453429812437483566103616023660762273307624313785038678771333536236299154830965862185744276097632604311598821104863493162397432225707002471010309777341922718524798044547048117958337893009001641911300210752011133692494341177762688484700941906825557595408050828571875015556138221544006562937166188087043709987163862152833376923265038768610184854043834111122231062238160586393489751838710494830007265673336150488461769220580872125163765893168887366681650218099650947557699879402630417710790360042106418003224842144171230613457325867861687433494250770322484752160055636865992195185216517540623197259159726740437513121482779826409649487202044330780423591809375306985559136438320800219371300456032098109805731404433382728350673336350917716876205785574006482173052688837900543408627665036938386558606496274756093416777926735212925372921309863698846230728143237488920845561106659996629087464736648601626175098793740262445562423251600533452032067067731035425698972860176006030598363288903406022883822121426693791403875472689686670450971402872883532823013922350817437103332554496507802078714830488652598820522904351831951261722185041563053394644436810358098918721452875664270697248693849923146454958962430097429711353169930281168544069459466905845067982139270735499874017503838811455954807304597250394360234673816338433445303231328131366726193718381381342749695071350992467518644527622772076305262049144381049336467082241243399999187051219843133900050388484234804563246431577604082328468299197712624217266055381168578322897912568187419426714520282995019217407191446120256678616380799777747930675142622736321539901972818892435392645943915258815328603490005642410073229923133719079726421480433177734477276778231029794306186538668643146334606890056698885830367805360523006193793769488775668961861384998864297717168910817058309080301708718480426564289550034996423422604126700381460398731246723487717103813799426930340770000925417586450497848297602591774439415223753628792036402341773350647221561556504941176885164746791024922281413274811269986351819218234557625981093567885478533379118060518924330131353098523030808887543138905288894562064773195129439283029635838971040737138548685598663692171609948180039725358633395240707721143551784616095971827432621686902927465812861765523548384820123529058383720707665358782444092971580622517794389356210376081419326744095677639080322576219332783535516527744100705269863688127098014526258406377424046946011097770287455353443801669016437960365150895607961191921900051199035250914255538428542661362906041783318675582036155709217114754512179003096810188120059097903795716583213622844094875365619375064784277843414733191395567717984623866315518632132711991833091491838672174192287777928140050989071871223049506714322062812845039960593758234573720858031573982931680585694669736048990106508217663306244942427484470525071509526314308061377151830311012500151115319131252305111341540649270123500222109588567528249141666225529373560527557452369509309472642346135755384014314655779980802126002496277638004344408382334492461404810144418108006410773510543350295390834036498661513356692227065381391291773339039155090460719647077520870847066981968651651273893650016301927737218370449642140116718140510004315692169456367935941519073826769353461524016759951631085898458470861401081679448948753486938144464929114305821093627588354772246989936942641587308104693575629548810809329575668336931000325381211923448084420772227680463825104866637811506043802399122878590587965743808378193438827139670456205079859121835384727733222224753714938012105173569072449870134148997300668876072697024314111890130652179563206550158714420280241936824499812406808024533715835489858632586228168216542652049930356365531990413997407144826663723475836648067728123120910629491251574966473278071900681450514805639219297201115707836888876178626939217322184823455575787016926277898455666695264154977845539565474174208580611126823540885155328873137966666154152667296739361372945372174001166208598946465021198798621513194180424464782524121463577168633406963762138215493163606494405280900054067655170398551103775678226573536120746344390252659495783708745976479989999532298573321927618618737472785752187997978484225761028976203856509765803406375182436472340342371774110984966748193189465187860133093650522913757716592947387750665178968866982902628702933657290076155899717065356957451953162201005671987315805610118873952414491649096010743560538340299726407794122940644765495629579725948258315207032948890102400975633599957374120015366880684967225639552885855490200335992117523571226360782849418213460772076335482596946585873040618825305008117374520545572065318511585399640767275988128975061282456029371189703893450431318243335985654177687984580647217216555515384749314049636467324453050754202904179194741032839652415172328867866538208579956438534109710301438734430028228496201036841044903523767807692810081931279322958623174100293332916770596095011639420060107565290738249624934343218080757797005392853212637425266548011162089445996642190858295957750528446830961666080649258213976691084169171132760070943363089131759369357747028420038439645010476663236414221790247985558331287273868858701246610913440494779563375768451689932452539169654185853635312974650456141363544838387404004371814487176090852544084315890295635734855641099758084612017852894782192745577905259097052293150052872886387337831877672454131623235288370441095740834623554965823083196061753945294348188039018641024195282920774818324709433452005413266180110162845332546826793746918215670909980271096599844351329122776070747614712057202095003964437262482984937677712898858383770057510094661197763283049584059930759161704874076613988537899186900346644637011030601133576865944475587743423736751520681006500593425687785123675669884989876961576447082916780499026368819340412620698524402720219392241759938294389417448602332509891148118034369585048886075008182000013335370328612783866529611505824251726600428902359518926525486715774597536446237942673299929928917382194806355167044757223412865509992897526573687693319652315025337485829113137102906152521684996647777167030535894719944810532594889884451956548472370744518963639082995929957552582766550949907996278202554533120590516920942099191492842533685988634006922675801637746223261031894269875718116590411895768722066604106794456466232838515734724133379596607105990740076001657133228095139630576615919979093957311847442197642862553082081689092091590739463582188292190275014897407680597846484860969691513668627298070301275351184405794263638964458012530583747954787577658243733457727169538026049470032652078070615173373599168682341957162770400566429437320566412927062824328285636105362392808669695315278892714058023830696817495496462562799396744241531560007048352251273460854701295616211768574848451317832434699799011271719391251738202892797261880793234815115282216287423063112931680968539634723176211405617589797130253980165180452814845948368081526970030840252074891979132316477981336528994049856020726102149164451145082842851090236878928004803949191338975992063974565751039309641715651868261797752667768059097941457634389218277843259769534805301057109876581322533889575289766280081029953219302764530689314062033431111001572254594696100630756862609624259542327916710344439851365225502455270525154356670207256284678547403515307316874720067596672770906515111922446363776695045413855019678805772424991185505111510717083181303358298350973206947978478778031128994157403638717555817782374824903014981543819362562901814392135484826768155505967818251566056080715070508539446995460415943013063677749517175727298366342871732420577543587495388535234858746901669650531665518252763368589400035504567081665509022080747842217842978370108386957435009135502429981575988036768962738855717532286017110949759058123153642984515376792267624530992847852206216580942792472579511042531714974931920813112533252220151934727812246165040747834656153971301211099778297908040695053747739129725885898209653048608542609998377755454919348595418545931405749596740407822432839888537187891327993734931223521234384274636467110299640807101692793486808002016211825701202155203542121478698044998263922497611883405243704161089099917925318930622637834275681334157076291149204289648537841509973535678672979174444381775631877514766794087204685092075027124408299350430229314617209150103920164247377562604321796358674425245267368576026621416508264895072223414923351954818523802358532571896502500642817901393103842439926890566103580889910145303102202993438874730678713449649188664048569079693099591193105935252694693416720124420043958342506747751229552171479565876825933608446606237433483263170068752464132460461127599219619498463533133644198997350555330120148964177215229641217572640783339374992034415051584437852911986595071386029382246545734258145883626559189724275799787082038785300583459648965721527777008628411273538747801530333570443798783474800374347068546248407131981634501396803270554533686447012593480846755990848873525199477850296540614617428075787508431157651930730164396859797453722354234553145955098873509028215172070274479510685643824993450954158455736346903544588707494132726224546944288706694496589936510184149771219561495106620076885508354158967470488832758646513449426140368143550302291317571662886124973165094580258308418414774671739486729785340513358630284336212499682946514045064132249904372275038997816288713744542063339231908192103539867107623582549136481477136489339033707136345951075636964554075480967077463018927561862450010249872325538075339374327715135559236165822239023969867197932582813487901469138821844438122218836324500077479052733719718289366516127063054066705101189547331791410613972309136586065053366693951434887610212563086737151655194475095894812827757711742739814582858611673070333921873027971540343512072857028631911862272563449866963924960400418067221253175951347749504568847237625168599285036949621346815824273754068561623256428805072085798225707099386985220542303469526257107514447644941139224123468567008903337715916400372650992905380199818354494756561162355051029987551378939039005221117552262873825995927618714948823589765539216415633823412246979659287983006285772818247892616639255999904228544471500828161095950789232505862702581420004154588920938693049066922769181787296484379643822576895352303549859548153121806300970424282302993104346872851919490463170408088876901976188645429818692503269403176439045094188053166919708087018724782571846475706393751516777240477120903533208070445404343386412675319830670019158641213624073231406748816717594693925536477561740328975368346967795244591050584501224903309290009324998515085061663598248654085886201185370033059769896718244452648843313025504350937177472919559850385631515817391672786323053879199520391845001871385739641477278394988226914657769959074649504339994443777365472241266036255376697581330137252185751806088225591457455389791035344045157884224395622220743960422232307701864462040596127315324968183205564568476774945076778398136459533085353828408806915498929160929270938973702451548780417265687603743632029078307703766511440997127353993961167577698801382337131126344344721586503254998517170154877899617756096639160712812275620472289668367438542835381000768958354828910747296124519312255895962950924485004307140202309313995868982764173312205134946634345398465549914471537705139297016904392610543502983884113642006113987553399158655928609303048310825445226427861874514013312505500382652000798456514397982643446426063138559435839458243743236087551665353707287904057025277825768261931046998271986506697868518611354146094073372193783114567242444305795734269201092246353646997141300106534320576592940232246236627351276056274945433770979854089687398926657173254712882984885825601538705284876606985428861012504031001531950935096244140160194714447765248466090858305342609756833717370693889098864458804066481353378471330007353029224167488823656662020590402576188300563961062467322451112114493760338594380875126849675080019692992191624361645868288497005764160842473045017985485683244150499299491189795055697001750559011362476410766415873265558212388239699872274507522842557290427717830739723111491433500502192915076393142953723090270769161727658235123071680059558744560081062850255517465782650015312145531067309146981748655515156663060949399045080898193090083985708181347767573206517692923282109944632572616321969668545004939754604140663212119009668405654135566767710460993658402683129907547260061668080550596487697647126355107273020118898080117018992403866312900452388229395086701288220015379776058780942902481470124623034640258914769761836972463543999306105344595402354891955125311790101571039621112978673275840343516189922905923550513876523638582632774981942242492938156014877084385790959228678640170998424295712034708951723925220682316542784360877621292841412409859857205075944639653618819305289582474420473657627679019870995676542210226478304483202936939166589402880690668360574618786404265983475963518922303657831189090300229785408744090061280462932104308987273525971724560522112599903081885935938040585574440396543441900115890144894263150989958675849077437409050548179137396445152069657651956929649157634056962576333965247808321999509112699859425127800380718573663928211733557295288758009391669181112104204431149861753135550651526600007698526442527247833835794687751947961174228311628599977804734252936722874058743200350451322772109723365429017703331480803678104271479590605854171320037745021346325267995943827781414022956648250052038703388313421941527095518948623887449261401544919112776873627238891684587574448290661344225627321920938687925654648052213375752528446100898382177582317916465666732031677267983978619692775835467583807417474408667883533608658370775109348847822345876194936799536542700515939206802443580649802692746592535887473337886414698757988406078653838411700391865717496977228774217039440479153438999672970049986273470496127331252785894302290829197176994890573733254902109002785161471500252688119753488340941747205989728773845493763306292373285536888879223672246664124271300839157936560868274431030933686303413082353643121678468216462704918383524862305403767229577103513648119461434324537119386431735304078473740522363726273772313861037493123153079377968756806323894093016583570810041498773930900582261810892462685277248652294604647773313280719127733854826166236297482238477988265470012471518574859510938027184137043149695259002810406200694098127118525492743461769954325759720794470800488226768675016712790099035892814629920748020326874012168623714181548988176531669608010584043145299127221361620862395776252663573312262403470784631420483565807420565176323678531848733689223165620851824923072255119535082879995966473481015955165021776462559506631879418494551553400564399143445037076258962327912891986121097719899995715417891298700783663265626860915050087301032465138552074916192664380010454262403495567529362434251962219356549330509726569694252456147750589428866496475245781440287373052435408582085050086201872544112042147721586905420922487419764070715018832851519433509443816999088923013217610140611510535975316563277267142142188209154644411855743932424439983226609061720198409889783285384474666773222327534841901367464961080727660149897245012289324903746623847291141239917511604003807130947037203819497324202134252683464529818879510118844282622492419861917497245118046238278354734693243339050161752197246097039837662813182369133563093193656120478198899345858305831025095515933906401117340490018893506415542782717143859459256779530229717452028561450510143839128006423050638918740100826942759166423278873556507184111838131752300704421771297792196928790301745272138490770029379488750693468559765374500063397155555048241762786365103957237776530715701172949502235696038509807947980413190387062502300551250806840978497650039085719201044315485056106708840935378540118672271959915439654137140940341287620831373400698319087948929660829814194492241197175765102450326762721615092832347998311421888496490671813522155958253367636164846888854343400698861704422236215013238890147409166562483780520967348361302949140983743524732271392128716092292473975240429408309216502962314603167234504597816380512270099697922334826085192444793184871170689856547460976919168738420617680019934701532561307376779422665845726063083717888046090802366388083061607697173210126059235469155796987980060677928916140694876478925600578432139832775253597333811228412668407766828918409347079695560988565145536585635263950229431070148271253358308142373673594679187064132400829672605907203495027850407105403146909072641867663614883107143090294123652091502205148549801886982737597373607412469211346496765388932723853549265189515222086048151817763413462285207498499486079772133090521339882659236684476247434103607806367513714720213688579184781114444677882454565582749964960819616387732184351758654827562605464961194543999288356429460671334421441480678924813191234381560125635673953774058192755769314347331454807566278889405737838522713156625887910127913345579331920631884501290123910216602013151325353285793262219812201928025646967272841491754929784321180170566203482362268590535366099577782673976212769228308137150728859141314529595063918414548796706017671542747301344635893419951076367492956667292442441611573750791150586636242842948098504941256085139755105215948074553611097539896999016119617852528016910722810067538737754027918696108915082550921907330811008785013583718030556906688337428702670827829157769516014759047863890328833270801577044531426491267279302771867782899215910923271101294549669395550015291348048985947547136643551136086777335795459796523613841684345879880643768253781629738142197535529034071066583778074588650269534039889728731599168591570676972559055913419147098525238754832763916525691110103751049637877256212061047546605813225373135444646172291845359279024009118127119210471791798543158746759788406872513114236024083284030707519852312888671721578490725961168179940812024631414870386246989915557524237058592130813066060723212014763185103152411930931377782561024853543116887072896524270295770440445110194653028486903172048548478479492337284651304291858867489286743653196519714129984040409172419212183005442181750888676128732275400590804006559363025953307941466569921533364272675811299651452979142864517367239393467194397879347678712079040879922328092304158761045154254768084331451259774776436985148092269318658883814055214376439953447060781060835705054868620022362746468065152742138045973469371757868161931112566353079900667085313770076954509908961304412790871714303612179233299459298021651511648474790462206222824124012876886773913767781443429437052939318819484866375287542399186277140118249502855771928795313705774746594935848928038388816695723248701611576803534509787754721424321232708701202033605074601734561412124641879030412724206574637492402455362695934740474295325579501210874979645561531711739748840587909881641684159042968681619857541744532923744056607718153565127557795764945667256271140157122668274397660042753738157933932511318916759669088389860249118356438354673344381529951336117424309360743203815664332697079782970078695889710998986102677963313963248124712664308408515616317713497390847794632065508186965565949002549260154870331034086798368148824202560867166903737048127069497906733534498853530604901287397829137419173122737998400803507112536084503359676802573115269024706580806029048914001751579932650722936478844038018598320889538911969015204027413325869151174880944941478878589079729210879369352312485668820308229113403487000368594664079519837659962461883943930908961065574772074528509929123011609865945331392051050651549700320831912887795945117572155887972385823404088186126823513415124559865543039506447158946353792646327034316845298879193268927676993190991815632148777492865094932697243216501422567731251781394692725241694658442356828442387498788447202526437642239012950412104831037071349995331913981573409348860247146332438419945748983854881520269612307951769288830780389333149636431030225765546712763176174958915633337368351342927069182140814242147701929540047440221469287147055424740131773745332935920356251497957473619921966355287465340630805653904751149110247503625627902359816262484678212663792849827855007267099246842124095145364772528309934036445076922534064256849830492909895835499185112266031883591495540997680753471516032305157031445605679058297309013227975879008971355680023847768550817285428958516077274911890211312489407150514489856749164354460946414431438464846329257412661533171972678221590610144221962189347275714379695015098987041408050326405320892527895912115969859147435749371057771549825473152508706977662949398277455949320151221617692848258025487053689019890876307525043683871955309525574142863182054151795254944753709594443015431525678060089012434809730142577312248463468688059470592870723136815688401818671185712467856427703816563975673107355452355273633894900744096604551971167267129497662573719789682956831910724466838012617180724616851696881367209728667678484961728804162728486665610468523488480565276956348668252908109399752215202823496946209233909908722630393715120152470053532837748101518792754046275046264933824360292351012669868023032412659472801389100435973717077147064760693085233629249168245584980244304647543904861201210167286847293228748688123399207807545139344667955215321366119079541068930987738997976517993537861509025443016467002556140314039480358405039536051285894166717031108418875587169847725957544199087563395844214330201864082137050455480538311022864801911750633108259665201232804941025153291837793865715262391880231030808466754647759343815311367242620513919593631823597737571034807850592497132147302892849049342998538591786118767376749229591846810252404070559076583932764689341129815668313121326946184760251928239680435539480015900208714604582458720857276232279970669072109356151960718772734180281624271053101746266681198301457849230535816426253477395043455497542828654349600197361773865506426755792555092467590305628866430547173967085709216280699570560673459725849996010775105340979382371045749001939314122762446088941539005562723657357974482530415052985510986080512469514355004136919833494756767284612154436439153005095181702635699250018646820371089850204593241658802227237619070091695068608480735341109320177390782785867006621235858196244356906811933099433760935243949595726957147957082695410467067660006705974866884640537442676000264892964570850903211423217614108530086598254449549190214808341589590953566665868993193730409871267391493701381909357611379513658197918367297552453955910628785642303782658079313798735526764467167768779701528544433034955479427447681239197112599939281589998258932436179423598815717043556411985520725407983795258946714950109398180188400231220402372552925004912735877258971586239801107326340724572761487216679371635142029862392757334271218525877111503771203965855187224878886347492716510564383789507472669445338926643988409586532368780232905301976119427890603070471979312428295089789170049754320779737999077672430897868966313628065616836580264666146296264708235059073843260941439454097461333407462735507921966723885110169481268391486733388204527312817458383145881026390744912353083663333254677522974821244117687118021532468631230455908377717850023988439809397481404198112114626643153051617596543524605119392373967034523295715768218671304774897373844014474999109656584471688735388777684848385306359013846524315331037905552856622372986451563256175299773425247334079507578827727229241630833277737108814736089491521440907376187670685084910578006535836770341166190580110145688885868007666242974318713835631648456422368297308468234404258103303210427246935622884613931541905647107123362622332482883525024811756514904041907526365964291901443371036243725363101483675927272479668702804059128736248035931069742392176356015929088517369453077935703866332529749165042152259962127570976931736594783968655625639077178898385149998939216049538805335646741278766350506638367792611038385184980194165840150844702931721004537922480356132709722420358118067155503818846187455614596628409931022949523173920717138993623036286113169874216457180149560989450637205164523967250913889667220366851575754437438013392488957463573797830488381385925486037824539102008836490353715557895674164259387022635574937392840548359061367176856962264733031405667018063230765350149281718729518300676384321267072355945362003582576310472304671860027454145867549724138793177095936550651378671207853919982847850543868789933280354892637088689799347700035455521213006688532454628842567366954195776865033987408307358205568497971559724397965142272816573132737690621964077496842897810534301773910015084271820321463260976791129703870617151136356672912300614546467726975019582671710468173453617616691740677697727986378042252847963651137801276526012381912636311957306012976662646367884085450961995451939760359686851100866988481836717940634487354632487248922345821865074976050458051609382120146421349498907126764332064686613280872016749944088459591934809827206043453618997500735437809459160127398468038363150294119633126459976931813580783592823491402875170191012031613581005940839537179656153758169783032395766367833734941313246153852866669693070999588907135250211767218023817519423004000723131432446462833640147057639714525091254341424406014952092203094615176953483030021644722469873359103778938523231711086815416588038897380018302167759498370486904313838704489899418412476374268235620880127021147166593673759390076569681121566918140579466609567056237156484873330044994909656918562770612655237218494686142966797585877186935037463766098548966537998244990287612946006779005584594412991511135584929818070351661134151285739088354656327841972205041797836247065483601753515127290341381706795883706138396079773316597059092768526561772042033859854071939660037633495180603251088080954011398467707810369568913705039190598922441590538781775765643533453977838518343118322275995262097690096677897675613265546697322467155631447891157005149281730474072626715819639392562584616510736205285691886073426460008618217875197888225846716884052853387055665589951692281657203174616685881496966335540561271161329170108995855842141644218370073388097155791080050148264779249821466630718266229518162588126376467585722349421843168744330852059804544651488151289731186401215687659299623789051279663199100801433920869422616108802072741765185432344881202639252335291382040431183062537290309406218030501116820155008333362539542844983749556750035006431216716054071693849702274420769766768886032468724339202440308757275722374814111443774321997539553896718662428354434535823804801458611929671648884785876115442048333630900884872340098315562821532632065629336252594371631532474814750604546298235951256637307396154951574254893828794606421711139507727974022740656770638564174299802693869987974588663382412253798763598578323858070755916394831103334484878998485452937165783786405417511321801974650889623850373296535548764237524950418780840429224216100103343310105229136113856407255110840322181343280183856912473969094964952565915264503014898050933622686970096773499444755933555158944146071458102665370708214628174240899925207803138442227809683299210038179570163140284415234661025959052812231528817872739077487537588115419438222715140764418724090848022276609036802438982936689929084957455251670800857539995262445919620097231973871082537275382932955304953261681214915511031156659423399731573943140113011665200280927983285746254912350427359226063074838088942232516292075581821300236956928185604372816513995442047793279543603541330355597845533297619509139625140786012623005093519725169786524026375084606737380311116748108255372317165428182654106055180610751659584156184890496424327843949044189649232238452860285201614879048742242115479347885985640085392058885237857149997072526787589697644323229499640889180395261092595215967115480019789882189149980256728603168221224278831522084479355578471203437779688317604749550066308022203787340324840943605248044060208891565957585725997440606108756350368183632762186434515383844199074181552481504024865640528963068546834238232377533347435693446899353210108208691369498114266718488418676050205903991177241269824817902073492024643478163010466813602255974589800849345710001734565834220084955478174822358375273359945794828377694019442313139452035457234650048716486652115260986518860235321867807462251199981993659038830216140401192479310501942164410174596658131772965861932936642446861704463429283755437815901946778076416029065872357779470946089386761858074817134164369431437596917181793949804674301909150755709211990354206456178756950185697119775950560103267078414151046984481936414229883501979106112331977980378788678249167417295717725472806107963819386989641551231440850621040145163151959186708287760563945879598812254348202120874757314646586231046667783336605091812054161278242184339142867861818850522021165461994826037066842283334856249037464566535561777043760153173147118442430574298889808407904585377995330238493860684487221570797478561238177341014301821225844102568618591652017276827771071449538873044805995849580372570675948877651555488390405029593222884562232776849341963134704834092439455333904944005594256239812793850512133743260004153532149396464346850627257651480668173556225310021330292755813073628177083040441862184035081282654000299209034668449898645589055252608321154727464366750040244388450726962429070845094376745756049212756409796954153814929914939980991334981161758719075206752481323695041483611333769283019115399466673142423231976626722588571505515185946016963760756323085812768442247085823044201193776311248865121827225006084759656927623464657017641743593815389371545010275119487219677522093684935119869569716710359007652490672525406221291574412320848004432209058069371519191410213955697497296450985143177272041749047464452173879843348658114462400875280785774149155418927001868992520872175078847552133253407958870413548021673958372545497582336232977241243298882996273192850123185304475346997796024574136927524746815169550282666809641713571161936702800853097316075013000194541197925815583135142133688701169611977270667544490912666439301848890333578794283839531747981179586125289414779798108587187037606044523707771047711385421366257132647635806831610305443413636317604213979739802821972151076694960689753625405212583760470595341318388875837542673373367651568780162582129233729029739034976183723042278167674877229905587533671368542464430892304079362880445196891224034665123615878361917774208811126202022793429188263037013443671385859054695907085570555115893456510057451655716769712685603409556017841385847942360310621342132224942117203471330767156944102645700754862171782011901323756625989539113082508155884437263265484128798798192608847346051339368495702613253575198686427243904322189545465496719183870745077788393277750489394037164203666696368534738536313343530766923455696289022749433270370643580963971943989502299424249436282227679291522254969172231402936619868250731016387491567423781922275377742386896318282452286945470522720871771562085100120033345868437948730880018144447661832716495814738031792235787987636221423157108303038212537654058743897243601382863521083665514022745167205812106541771288077066541967350577077104951063840302246108563717212628530462325871628043940949822314322747882298571200999442199914383640369947963044122705704767252661861714924476292621977571353193784007220326956253911632101791296084237639520940718140025004770187477091345941559650331089428987735368563712549216045083809212981928629721756789436154766488428648835752041700703291603654593225567352652258255219047897606727750841862435268093572840974540531043024699191281044445372234691603583072159915178578208060914929293657486698807864387555359455194305828267266365053856105577998951269542906664483724489421511223231710077278865433028951752326594246158631507025784826417644344827823424852292720317300129406260571558416240960209783570779579503451876159597212837656734546700389586691029568970888174237211320251645790172528698548507522655570712857613239060644817055177942775284770856095519583495219499527512100093195935420863991119808108311236196484533707034902315741494068087040050304334989160252304340164225523663888223130405774132683131285866429035904615556412868166590542491916975211790989910032233702332175367994396607912521940420948205099694868385896236703043712461628440858909694439855377216313584598894547885004910217097371459533263997881000471146777288574675510232769304408730761253573116317092917840186972201368595841067829445679813092834495448564131149469669367566763129773386286344493552100070091843708378958072260086396829799370357854142918451140655193188129449691986620918015035306341181845139574791809347945354081815086725369684772738027615551507172572818402098888998689369391823400087488314825141818994187624940218712481285013622100428175981516099405119816626860833862187131187264756242880873687543364934815276902954107568474419809017137259542372494338925466840272239435606539600474553472694627251123743321957199963689556414172782476786659279518143785998036468692845534306619717655546254128477372480839132722512910460616998592112772325931646539154843273199059182639928958515960302657957365977834167744832955645627037526761839213192704962634943132707890519596314848082510719817496834615088847276236173295478788290668631193229404074487283908586566213187044883276607195974507473423759265117139779009286220195641810112288910239106223992230547743498400276811941285652732045752016693182375505138673937267083298936587605626346433018645458729946386138492619670018414896895162479370033802966510849524872991771190557562185443590208424365464648058385269763094068565346571270764296814483723839811020406540205723379852778431058043152314403817442083769052881653659698428996167022454328276289506686728698784894614083886357660836653054467540539917209437991076498119643578827843696230391325144250078877515689558791604686280869131386691663706694537194002647174729837893085044810920351990323032697365551295380382921938514194229249427908624641846482601685261179342285063005613035982451182509944245581806190891167312680774314056885916415112825242501375635566819684628089762047592330560938081321224680690816672431148872879142609725080491460603625024246236807322946057486407929004305707016704885602699903294151386976394605327882706937983589767477419594042100662838626239681036139483153232892885279447857136032996155601267237891007113447957590945493930988059625925271219778504800208189530848696459798870739561510469168684295360285096961202769333611157509286525727954827933891890957215717387148609401730185508263927118811299001583053961879306566915683073578536257106118657781160333971907248349468889803058739514958646566132312100170239488523215346775800526300924590771610663668602970436625010237954114194327692124961194767583053455169129608970711673276521764554511818497664104666948032527225765453476469262565601278321476586753434620951495514938471609938269944881524680856532746634236179235074820402838729790087927923281427928171014485235130000108658062370623384036598302960960564967238383082080842175930742050166639867435267810081416432193501475431445158647527880733985391646356100646417496939582495941188811503772662571338235552064003717240173802566266730916718675921364586806703346807950689988105971107534498057492140457731998505214540225846226566453713797215150799170699965450894640217112761808838173167974211789901063860613973573516765179722157772355629079668280984908081155498858414545741677900421319643655501667187215248239969318796999390368204465169279621726578789197584934634173198731777162479070011312262424116533919865648715055152316123616117184719447997784316397322098993710693202452142187492822521597365824579930381369462343973983809906509959588127116075195829605286396558217265850818412653803373698165411695174524132318234467074280956662366397596150071700371183829291937100689194927781735739480826736393649341268894494129104929074179277974005831863807195800587838282096217959857173432747139240770202408950255383761945116676538370822265066441381758255054376634335652328315580805215666398433315585900033401502665805053994307126527731766245801216818035713756572976257099625798875083413597028065397583147999503872173014152156386090721194507561919573977573563110434901172557513642680527229420447785698260532902013073766051855584349316250405890027582473474389684649113342491286745465882006965374897322889888610088482544108044885385350377214928718150607287585958984237778626968328905123658381242188678449924255881624818999715005381686220302131861248838092925744124007712029049583546256199706961674790509194890166991608787728154629595447962047465802642522154464685280571305533982643034778620261807758632699651644110612441946266023084353864075995364677253369019981372465506500954836823965975316623265245135405816008013503221837694028618558624653032071770979264875828353250932701384188948913914027274212664350010486560039586120137282668277910575588383882014406073189823723403264988775374359904617155810681249763536474112033882624166547611644334874463457675142496057633058453170985697143884879176370900249876348461974489570030343126073325605762179271308193103077792657234576450008941901960853544669618416957311887981985074389071880467312627777338488469602563926404616266438237227617472560742837253573145789563886530223593360289952608463330691798232447770103902658693719342023657041335138858421105553150698286705964840708403118984612075498088918815081341546985279954571155536240577639038017453675675805054607020447844295853852334086660156638356648361610337052941656268153756873034090978020934895283719429559652868731974719207883924007638762055198296708031263761478721151635358455589379661318743125980688026257238451163937445789811434874469697224375761649412051975766987896921911456491679523484871845185338472830691061446584517905280466851215973567794703146192697601246720616011936512490748384594359571271064497066723384654451778316918997170788200634775846086716411743472159348960098890461742547457323577715640347812863614922602563406586704805521780177027760877661790232245249614369491413874948224790252887757899134736818003702806290216252042238455715805010472349372794380247481329287845103693400724404001993388441096484934462823328246426525114185381121569278545756974765043478929830746194430430678467544790842537804825658924007204347496641648889186803937403093648514336194546967801284267236736727105176173170868032030543959298585680574749049414094656769838623185759714029251667643165836831595924110648138465513727124234652138077886477336472226190197024321435294811450733568282070711591985535189847006011920583340079326827146561072548348394287699047255382942385107793331725557853950751850608481824735101950599032511662761763594330658483904567661009783691316494714090113399601744834563365414524763086161835074562785810940331865118111207857474867788434809133615201449919161118097608652437234119947286971757727259166417574794501535923725997285723874442072342384785318817957090660775563130545193082104378660947084966919810653279635856705133339496436347239753188964579406681764048234772706627903031217335837836259382418871915334077219184340415078189575290335712470537517162312992441248271972965552070207330586420102973921005867915923420794440348841276910895923710651745283482766726315373765611940002183787078072112385065174768434792029752497461700243824753761391000703387546488073572366583535637268885394155924101521438639086811723874746274404015744241359246319614128969580058942346264424355126349667869678822991570253450316262172841569492683056481444679149696325301596958576964313896008981435676789218615123352467137452790646298444628484143750427429334921711113937890611220909337037198732426088673842890232154193433154388390896683242080316165431662168450264223016976721556559227780394515570721658012991324667262865844726719157606752903981998842522103755786544545499750402993035546494527382778311729672339841027819904799930409315901205466386210292377895903056680054797787804553517449845415677349083581349977302615726861567947801715887144058066406192037566613478927693843180276062442200206626665187748068912581094119744487956422650566011514703933206717974947166212490640217107396102903511941827650603566206255933502695788860087488721299109536050968505449240161527107793812794709800139945437872065471209870531841791754481525821931645099428528343444042171677914442863110913441497109932067693893185637950270987026679253263224975614985399534848109324185204312493287293391335215343127090676438269765549251081311295127535114149145820588911281446536872153580906762413441512593121850527602800748020611674872779251008375882867436349617015508363061194078916708597015101842459785057520166175860931187348402089494035724175780982903688326370397566409945295703409073508883776901763189052169883368770834995716418419896111859255958334655893956827145195968001384236638735721331467147627959163288602572510655501212638712999488284343797451929226931257879828161507062240722752160135602680725189313269051361559839460335245327136651493254173754878978194743502646785647432416952967385956847774977358239252749736987328237915965086819130363241082357188493083028234193997177372167267024686612680093099462725274947466473858152592271827275160617925011265614733119446020411455639382738473702921953021647566639965114264509092422765918009855892900320899532771624407789341205844856640386411747738951099031013853525900313091827472387659589433619100174883500586048297548741917102569745108393430510764854414177244555290381892968389618253450147297204678595221791218973907555400646836900289652416531564958118897027648783182772070063118818740185395736977556963448686814424876229908233794063681560999459869953249672653736968681573462926627825545015014963229842136403440399169144074955496678238706371713512395224083309148187135257637732769988210047022275739000761918779169979745729230077021203824818381574869758384773229229593233110569726037506141562078884036793862164634881212093125574505701902484552959205960835837540422729951818240224154598781032669517275118968228179153671949663583364131969396359313066656893582493541651873510181375825044394663994046981747953927796812470951744817365019646806489567642229695529047571891377285480060835196663478647784108719545024189365438892124707636256679352555601475381530275311197614812615791301774673800768136926896973303998416794726167098985861447550069903841130812340839959450868229652312814429258214968466268856636435728053001618570561635888056754148631924927892816473206806402930090482492802196474932590628520049900916671857886034725794453835283030445566065861640212956276020770993750623641002746316443941638940137298391629181905398879896552773289456580092904864334091315500934947328329322373154741937607592691501751211032276019224395561087177484400323783995663550108172104903045047812712803315928222875193565197170895268303755644775135906134348239522945571383961442380595588740360184262389752007604891959921573214543302855332424870174141883520472456655154560167596604866090722068025673873458818735758208733674966864923513515752628749572513443034826271895368706546501014257276995225482842751450116474385646131001187060029206031042969698331490672608255318858605290510271046317413498241290358632697856059621946548858468124564665190179703392478124518346756035983845625537374687082419348804536862394253364047538561745136417486752272133458365904222457734467310267034937827511790507317139132039071350206826168815614944383063959054787324438730255932671457199302945845625460236813580933903151225642627208717328997168375819209639348486732641657912000281932453971656092628506958333638467190576899699876148118930742593353187319784930832732755951155894103469556952468604031733581001670383273412490812397742971755218779724968725342051307769924145841679314686397992006689696078157431224882384585741916990210281213590022320987397934727569730738100401767345267402703582767078560667360626887618547043769554559334897574789673584197174704975103964791443574351065436063695576463411371426695107420619646769845223626710512144003675724560515235656842552682517468367075254341632212826852002576015265704332096645605349711406501926438268301075155443758625594820953735117631015138396133444812600635673606230734304104162708300818261559370031684112261303761084710952286416085226905394893944888430744541518204250003498051701554621530148746412766225270981107446534669884696542876173280731274650062155561476481660930758106124626319447800999895901764537823754170259821151761969037746843317116506183352724032439164432265683332253769105167778276863896658129900781737815513260615787754809324938280446060470426255935314258985443636786133210195808939504502036665004065127999593704111126919512109481958231189508036108273574285564676298902209631769858902100596179688998392483409584923600623600514013499610536998939462598667230869473682583860415584042968420849394378899159548876301093012259375830967103543982531779195328166718975487878678027882503307733522823667997808292753195481395457112770492447367550669650435741526754841746527258080297473854016574969167850052070144504789463942492397459110639448567925678249628416910848395821278607118825573272940922523620009397136682782076331214382689277858533824323159172485826603092570251185920604416798952185149509356103990224936813455841929538372867617010965460780763205454779434645716476283187714577747435273835110872665921753258943432017973259327527221424160251819457066173988621459328983411658013186318794288985609578401037847018758228906207606673506768334915831818054205299022859940980025476785555125665147878550791623674480406726671218953579280603035816194237837329811248696832282965046601498443592553924822844062475337126490180992075643130192704016988638732104288914146123293550276641412991378003462609923527845727449966827467028670891503534766223233881003130068623429477244615652139060743572690435568107284315955613904439789315844854314798889312936959843916740461335813702216304261541603956675663296389208471829125179048254143407037750647852204676996571441835980485895385836142016627563443285985776021609228789475968328795982113135880674627683548628013274787477558389981793937121586515986702381524063630035751196477901995419130644164249513276203601569081432942228005338977147048062462623056316190686055065272422331312880916382830721553921445409427042849716148317750359662202144373020483296194815571384147306592361745901764858796349058669683871285572063908187110428484401399825281771274715970022030670113139775703394066665790103703994434733899032817810471977219478970508607950520196878107304780360731431145030349944705779753588988917261511430222338485778713199005933073996926278698806601284471973372181428075522872655832699105422931146742610749995999622216978145498358400485701157316614989093800734488300157591523207235987523888836871934616159045415267528969206948396922987358996062020831266831157769441587041638479068255174805632435508055434717575803311386622157317417904974275543713101795965428903321859353907133927717930820981208399347146814689951768507521935027953124069764360121693258431178333741113256915090363514716259436630184740884370209425892849313763124911790116722005934660050141524574193106193536928718270569057475793570644913449258501865988755438156851168694676343232210430151750457580716311367416404443225850522035150251834796197079636517499360100711217290493565937310410347454786962528923984937151827944593231698232362022134451835742697405252280318628959317066862462260421443937924262259649979463929839551629901169088546110276592952775197472422148940475950533020844379086876398590866372358309615496709690173587604824447108608769732459364293888686115711750440495158313222801841262205936076624932954253219327350998461178791363219221558965905503266821528049893613190793987808680173821971384127456933485424652640374963690578571242303578209171531491925505678555365157354216633787017137375651627957851200997759643243884201284345608690894276209188983880266868200351490031937510381611164111309030872235487123035030627807771648560766173146121924079821288350724851355976424000485091661430560838330069538139029716765093208129195396712221415905609786790673602499586532281295888181970873491041275255068412371146738576694327532836195619150011745525974386883609186087326151163015564867508240801776304950457844147894725837891170739900688728436386957404922351836610793435316118014215178094629122576993094002902023965166114476530780727013405588326503193379190359822735826734961560224707800922664370087540751847212747941302750970405956130009900954328662621477862946344222012047228382945286383311681854237231146233970387393068250894687577595152251707116801385849548450382073505473272263849713294388355616642278055346190890799519645657566107185927387624686411406382238483111414663279266164879949454001525589734726100470858970033018855998898187435908940765665128332604100518030449069662765106875522878581748555392780221080232307395726840030680131521746743578642046191796254203665151791177132533399107894464471064279478073091584480087132245186266838460457924466544650506782687429557974356492499420038888488094421520481917626468047750265528195662827844154144794188139786590847027395830512846031032813152486295256696931734836386594964709490721329113680007702176122445446607603202510917223575260419890153101021787470261491226074743056042589723642467717210463899010781346953932267719394122901947870706580388712153455049494774403311915785177215679062697434657957286014262386598507261338979723911136095196829948501567887244601914257410008781746538628129060509961122706919944817931403416700205471495410557192327743283437055163880013284951392490682334485321626832695048565552211304005242627533945016293949373508958915425200352081933021273493093153502223246942946874014061520051967719955064353850480184417950209842402061008615432767128364032132578857599307163862816716540633383618841925318514403791492362967005241197477167095526609398557467690876888595803211026450393657418310555915935275079659065251327389960256793439130422390542751901489099373290924763711968528293334984255524413442237269579995894294845853917587624967260989976423069837360531313051498479858990025384516685249006923771162822955116265032032109362754858603282663287890314502124770217220886169099562882873420327664648140878592907254811702262673266284948680403824848561385112695170497490078163416355917660331205631123754948728440146030106671460861907161554954211261445547027214608239225272551218842484048066628390458757918172220575222281861292054891707108744079197919842343245574618494715408116589130467037698793828955603891339641354319431231297140593581565350835441097240434519455905418240090075091701703958695836381517206759747130491712463700053091206559144283488384866644645498220943867665956167768938616679003407570073548697900120231502436365685858343985406887059101294700847438469045353963752596355779892387109273926277294183287652040161709525625999632728560358577904204090798492968125800078565062620991745909327059777030548209565016380953790823958818313997139000387006765182560969108136199496916827245049007181672862820919933782098210259350903737240008644102017945256011940444695455709402011189586729623913676187285437427520069718264561569696066343001624426085609286621436124794671678506747062611501608220130631951021735950246787821102021818786489904042560389568984792011649243150975951706567007029015459713245669783870409997242225818195807005052940359456863496173562190956887533215053333746831492829561480625554719262378198678736690649050180349183782319329696550971649235243193601603735442158067922738928576294785461506928320583900232254417752052808485267496918989419724288678431631996665058267358156701193239690034822763866345379581986145403629697375612091818716913644301462099390857932592437436803531355268959157391026776868780862492433366587266596114634519216985155910932210085646017261817737457662656733947689294746156142601243692122183319209690517808870798218002444786174506230731519479751000561460731593844278009061727125603973710272239891604234865586040036155461822784448796073399575274127391951600244182954014851241954325202601990145775477187476929685688968840228792595083490823720005481026042236946617235929451665550715401434716601028831334956803061365096075138478151993832495795152649727934487201478094442851863992084977527421386803333911437009684800897963223172691880601080334939731426371781358876043616487114911853126168571677806822237713744333880231837398894970897406706616863261754821041405366153255118639046466182517916901830646843425979219360213849157600376103171038235802868407093971892379389897023868897151021249771681142738183924283974898973124012847667165944687583928303163730816832001963656129337624025180085238885862214088578723267252162069571919504354342677466975975471462735467683341768296132764827342786677259450033720848070116004957371849224198898880467209028385810825555316748489649119712665917579676853309932388861074884740521942213521388823544304373200023920786802663497308362979467108720886585760065150809011394448311809972524390551741094408353421432721669274603210551061345338348149829655038209368817429959386864309356331146811560401484425098152545886379070643863813958163394561480288325946230672472693211244549944936139934801595020587552299714289945362649568973596351857498216862962827115836014414533848052310353210066334191058600047555204940149021312898403763881379230328425567574491824759258069548480532556981831020344891517212835885880583982275366666296706527146553083983702256244765801376882324478036527669780908323870197818700328568668240924681619681812959259154679122241195314392099416710642264150042894315431906222519558870058339858952582989111358852233013253082628708184197415786038516896441710714110357316519762458159496121471134510386144046431251627933082195192861243526476364589377018986217062682460001370969719735916618758342725452250350540302733126337731416518445788707695189286149062366558385967733369205395977206680649242346520664972237962976975505541425691999472717530088281228421806003072655724282805554965837305755031026514718855617437492937695281936107546791432468300372128487807994061501572040350900775340237226943793978357260076118625248445737085285641486731808851598178584338334708935102185302653038613253744073239975290395614204787736909345435782590216903226887965569192404485433501133482539428949356039069786527639070207914011979202391035472862585546696061999007893747952609901613197763110408595840712921209416719999439304088026783132448626847916574662412306731316859315854235103205838694137953461806007493341387443545319632092634234029767615056856130356944274840717823056046439424983531337672802578355142709236317516909514124491027579490765503803311308914083770863103629574312040176065279717481807940326463247147214401753932073517389410364419954563307321977914987936507659156732752766532730752793298306456504843941275574310149773379146293275765724371773130954652737489837263444089782950018681686175037900677196018825466624998754793279017077875940153770787280505436020798671920208245288945097592411217439910512484102954297139962188492671639976272824420796758097650344785347949961224276651945603478543413634399779986201151813593267338189902123297838126597445096788410411778538725208926775479814788280675206283202927774923673448514328193530993730212769100172065878424405589061972228897355388635885564766376437114988997632347620772664948232988292503879205851934356469253027151922534872573754768757707286215194276543035907643466121433901119043065980849354496192288872065858434874386763938056281358855216835259830294321846405507656273868763970352417769419858848658321821001522308040983865785226463312795060340051565525675992833643065564808025958577465720335225215288018925884534402612137466574736828339666860402576247237315618896086182380797468108174219369315157082430272725286602783969731192098085096888945632355219769952178159832763811538288026679295569393832608554462147684750373473783684066471215303298796132998617644666088227848520318394820816479822133289774263239187139452178476233574314365960566948123563306449116330580015811652219626010567482314926761539731922000628152077739353222302384924515051495733414549584151145345922176362898791405806586453151636913846522733874746919091675510098162505129327736589928240201329390631637850496233970854945168797210718774973925328736748800173699113473441998331726902038713539878724802959587460868967594340379451379300444771155554620926451331758609334763646450324797326053006759845203088306299961377558277492564369620132006701786538192896816059364570792471612267011183885193390334294305852937200340272496549308589714272763104741322233576936221253238601642668765012865544975692813175039569343164927643508968802073837293026487316066020181155508497426598987926381927395568017107103154261099353809643186831008762624620798006132385678112930121461826810002607490680212949330012431905157136182605831592172279922522372339809873394109273910479517389219221266099892305131288064159741167357468749020727375303652097436373288390258911718667476719037946565016360862656065221596880004376551714495711591111776938590823207303764762138220576748594272375777747246628625123387103343429075754179631596532237657617149783170141944409116374689094628432567914846794432960938540538877908218877314775535266252794216565425183838514359173208508934641156651703830434961324075812367541599025130678822888976059635975253059716272235677762791360449232404224053369765909408223369338308762421317894742350487714853939854654576384178984579741670848662491538410468483035851466532688816561272898258463293687643915129117952281169547320958069289523297323433564606500694994419152272734690294936609093875927999496452199835354547189861833494931523306959446820702878433318544025187727426927847487618809893603393421472354124233332552337609561938370133466033985284906446034097344326896959112184976276801119713803922516954932524797632194870528499826301374029278915915363562421869565248771236549479630252500023306586842060095447966516169841587315893510576055758224511163905803139645180270454471624489887798944650339056908195692219593642593054903266728607451174304503002076177119091476740620158188904043928763707285374597481773367080383170039784631880631069681225545463189410079104682696544589610735542332663332827267008868955106490182428542073786255694587400759195916033732816947802255253828727369969107383458542582573384880040480216506508970888221786359609237573589770880609348679607648608824534918847899211098587704675126970988475867502201167923810787016919008460406806355197218589737032930012415852857559939317828124099340779143135127650712425254278083384097420912647773153468441935272263807249723631708833350234011361782321364204414369562879398081817584884044277478775635043241768624219298613118343835184389769349703391086070219870781712658794888838665420498477273301434226365774316495838605960955551302080179766803203605597701368986857341360034981468706543145632931241570992291697153229996222187570093863611622139008368986698450440024255535782988716314807663511108962645964692305294792271982200468750369792552572283363678365021136057344559160283288640868904215305836307262644965648518949375301724256345694354318851691015940692701527615930446776618219082169454967277518127168996207202568769207731722458197162748077061046771275082379438592252023423706363051624052943298814948592999199152124001768069126175245053477803829258336356507173904627404285120456911220635576565305983942781950059066824058506647770792692943751751059754149476269934307259514993605034014223629192097118959707836134580084768216276157193753855197351993712875200753586441403695067050477438388385236060986689833529116777856965673704761187095245039465822473782060178005087592950909886636013296908318115501581127525718375826187490684056408976583701186493712487478849067820696200476698620620082911869811691303331463687530791253647569599263611729337810202528081692805935239767260350007890833551520424490881614306698621033908899354378427736379465767241368773628660736693880454096722599553889587379189035017515592373622935586223227677903241610158004459879185089873781611858485162765507615163767700681416401806425462523660574252484598882978097984630327898769099041822633630455108569263165316260883907596813242900976460828949854241497109729875103643715889486214591050348682015846493035903870661228508684802381023587353171520885940368801915839932604602848182117394860855795322287655251228460397636677908864903421916820907363943923936156600199405696050547412605564579877083029047175375346927207288518841000844168887171797207429741356129436340239071465707003704467543933832213757216648394537750602796111498779043679513075924112057461068383212984918183493726489180003262041264120673658218744169649526849333713089543006914772232132208808252700840171569724496418991561062393977611930269197258771702716634339803260951088143666372205761266777836122941503567180137249773301233280378282624988214932431606079769061552962656046666724313857370953609435209307819086610491042114789606591205698661371856127575466649373210780198890893078237717301930708364740253996232706008430532351814051827271722115053230266614517651723189007493993820578160457026919605629592125323851418689167948560250330978921835209591668057444811251478440743935672538581659605527697570824422080386867134132638925209702590070764547779393992280763890309942106298112905752372329762462251553604357098888775704164816883870492204573078349026128429851671942889102627173136545726975511002251850448597965473240315334209129831292537747326036313909281635414963604486618318978685432277497636781749658517269622599608347331639701796765716988115500618019440312423159062864368261229181996999741441063136387256610980685292139605556283410234183115078076503731069860947624243620959615389114857569374234228038810336659605138492580620324673516207938259406862198728362356007503078872862554450879963356585593534244177544943818944851941594489663988450753085271278548813259763965106282143647702939536783362830128866869373069174179485673018543849551144422038554510135223976809583974322722992855641340428651709196062355979123370967617216477210451225980509956970135395494223843806704588572985131034190310667947353712275490320093688713072916073077648436282307128664661953041581065176144079272045632535338970601542430220605907710019926462852608984472969461484676380853562230773407983570164171147223692674822651751012285627604882176684911158325363465858691764154666024548716151620644671990804740702370624447115414570933525227416175813511147721041642231071682008919037452416626116879646332133014804041645522131269332035304827585082655795404668578488728293420033399778761199375289690855222369088809357596480654120889700670133630425043572861210993678237397721544707104365600496646794947224285024950883369455625333803347086111276890328532885834082468491871856711291369969614708346437174700555267939804021360380533785300550083316730574611199041614189303899933219102352597850488164233250482428298945996562206761957195495720403452035025215301525641592881044339321559202097487496486738564386330372510323731147346946456079971361223643340129095115602544090748389935828759951837123729204988235904197152298119771325411962041193156331755372168449643363373286262535786853865260605158513439864725120705631293991116285818018737857281239159868564996099362905840492509602051289480028125385031388232306248043520561619065563806097270527794456296915626237759814919884527481942482155607300178655351709037801072246102441553989608012816669758707363940122220569008534557560298567375415258192011032904022687292715732529866164032245737722215793821136470424024434547208225856646632859353681294102239466164844327264389154902156425809122824606601291864266829330835067396551430640282313546612873625754931206951403721434883126130184673111491927824835601247586891696916284135810307971196392711968638690427158659795484992819175236991924648834607685767270084719522667311744228441971072481639986553011447855225977476667263731965999126031637267775264827638012506502254613851433212999821735260283779662910717521296520838513085682450135898406086216799103630480448925354220893676010389852944442027439590414657036927790052122920043277827339125028818742802154470423339128603705240743255295877160637665351420628725857556575959674291700788607513741559475315323722591856968800197083035369006976062203244480525136113051892905793576334310940791469976919572417556130038682770654424775020697506443448954645540216726461849312396409525775412394887013621793456100009217089970910636764912075458160792767859581450116646645196884050012726141179427663003632292401370418240190884424996879553657891795217840572516104761360524184768708202266948764694598250562392360249135065042319444106751075783752839587641705548108878132097623075776841556741325209708648128618499002931849073390479719936055237122663969463938512062162354483695259927929051675306768759115926120727193201611979032738102754153395746985287824331023695732401778435909872966393080540737038624420487823411421102945734805187998211918986706731145788982012338220825056158726320166813269583754608933544247120336181100298022349735676565978460433514013361584516280910483333195142063031258920807049685260946828275556532369240647899202695331289246569705366443338489570390789723774172368611111932446258433625336716283480784324723689835964510599332106271907618984215600333416010357925783604381490309906570127256860692866355075743301889396320460866412198811579313793545846564732097555187125272234427778379435959704909119708097369726367229335465262662608727423521409965122689476486687619250496337230924561760982089157354996420743853972732299754948572410696613425546137814103107677231578775177912062957652072189242423743783159820962423693498151197233770283585233719335679189245758314603981464408857244192127185740056370366332456040715978369302671616797811964121586549048702592459955217321390751661040419643883555856655912754983961652840233692245048761632413253920913795590945770557134587044920629397147379382908573461418794987956936048349053357192309275398547458325817324827960665038234071754415517496829131931206813601651666722099407125390555523622999401808523628432012293088601189939350374314298522097842267822862418450742728391472996255125835985993017291906344238886645304495562998793199434469319395228693497664072895750829922147508789550891890812169541966763878551603260813355087352540856090233741709067002595751320637218241073199464898778998582010442840727998114093634167993620463727995729522342745796583201511532850743754004171915293109673990114237258459665946462772941439301200358067392148355812831609097947162600165048044780619756593445169363581180840459071424648697093108006945167119125486167641919153373055211527997717150815464065829521743082437056839577081040504292845355049626360998056704979616227918015878916890511618133740858636607426981006783096212197582585615736022251718331136144092442794977398120669692738523497985379130841247694593683641953784344233057273392705875082757566605274078102113144354021934251303120386865841648618684186829360093932478332766558807419763966678576621062637102845482797660515607997572205954710384512970900113108551159503351344532292184006580606448736808996133003651227762050726883992380609663559697620408252894392369277501969423167452872304010253906045109806628508230166004696306496731122627013229886742554374979393077835523862222715835043314475978533182677687355825980232037854585198348171922926034338040968299187329166705866792578572435198387711305953716269703847444112714210122162754953045764944405622647920113633732921135751689893225503595262964031475808355045040691606548689350662897207474296301560073501088346892452049155460889612966816835633098166111524718753077665171158717523482096026488274436616613452470058848951746638056155062994580307495616171819547458270829199459263941084910539797400328624744606574799669765761899678185136553331240334752824696781889027373935940164821957777357746676962325947729291648048581124962545573474425646672373767277394954655009856617326809466480047396840178229957739430650835807872668829112078932301998024680920160269602082085633277698389720278857006885809216027233186827885479448107878386317651880332337119786614708379042277231464722378117222907846288510866365503957277659368766030371965608357087396251730426635124562480579336691028451130786492656164243775776108283347119198826387520274226794189992300055202964360053809746170101116394564128181507932466624593013242267193903333122357435114949208781678162055479989521120853133519152261031567001780000926584216012472242356672382131291414529842682616231219794961082521464443466579005879852302438463100045963912535608249022661969652194666964988659426133425348883365742200850530558489261811814554616766783393959175069589677530185546344108214582647175237404563845989479491867228715136231577165523531704870404574159066046458205861769977244275015417684509944515588260958010374246381990049769094237298447846324859430299451015763787335352781375642804009200760171215376429363228386491482571661268266657988915968217486404403769260547014547844345853800712654092375997540185949595395926840116368429895180920029302816550367453946569881673967650225319299541816907853478827815249235389153558091864776070909983181233852763865183719924157567253523246204215459735192693339013256252329747044291641099938054486298105539368462139441126681893234544007494882342419144166329308660210377821436304732039921745605840294003048143959464453786278787348303323833966353000415931219677698325134254112935967670645631582677646345991988702581165451133659212360433400809872370218609040068423315238782260725546720624287599173711296750894863837881554960680557113605672921244939287295768408106038224121864153484934744225931133016445891421475679209881600480982638368710280755980003351292415866843112445727824018171618250024867079065632258580020945369059851254826973442270146557386140583495488252628994641741801036582709738495504189906594235408561250262665711564110157602575421827879329182108665276163471060285973152421055561583333010465600558499843215878875389829758361250175964199075003369827455935574312891727760101580154817961155003503331073753411838610913465306117104911241692418878525278993323716438412041209560493811843978721833934088600426078313178174511518385150060212909671093289366084732366667945412021025737742209824544050859473059079210386107281475643442952975324051350188041171725371355008194811451034517915738034534674596000387086344518243989173987891665707432697981306855968831528443797143319209201573103131447529491748957523911099572113508103143962824111177692692567020107846560336977011773396509034602237646462652328054795450195176780031306328414727493185363142178049588135838374693682135981828229709688545476704994853600397927400414466497410685903932746988675025332024172996040261448092626517404689987445084576446876446365877175597756981507567727934529225615388094415579526278412594394839353441957340984207605596078439183277848720310654107677024624751471697637584097618774812393005034420857942264418592381131901389033356519832068761858001638113772209878409892115087155119527897011633234813682411074752175215586101013584193482921643766194824090755356535221156205010628318333386631776389887105285755673740687430407788304494809145068836915571318385226206896276811110687671598000949880529260854499215592893893419954253305635582286371998880718192840921863896376197833188159849659453259441322615374835542559726104293005234078838204135134658417717613897814060041524598377817297297214940308578096296757287331753912590603982694626849782269007730861020748368975018057290299010032228692071606885920461637287903363092266745813118668829668171214408844860284107391007886361251785203610112769056434098923185588940525799909514152676753022060156631485189442565757286077835971843916451719732344419983095926157612751740845618204547501957227567547886449488273767510949120088989146415658731823589888610940046145470516119894071756583247885827671993338719848339799472870424494198096913777344580777201387230875925904919470395783504598582217427840909168664059923560735782404362147240763872045180421653836838071898563897465720303281872336752214662967615036084662314557835255986942237876831918826089764894889949360128232809414219502397213432237544708320213650706491099441738151489648584630534912136263379982697247183592117148140159488552740547923602279086391433682100430250517919056428862692460081065497007510809848529575071279362820823456774443982715676549252353926105284564801401594515332271678041312600841646425925016550193294628958822288325121112755571348931794575434149223766512623027555553223745853205734564330107315122970192170853029048419779616393382577745038634447169602728592575841464919583114552874488626288278891375856255188600987525275199794229757299952186755913301592471415386950277976039234906649228653178853634812361590371273899945657611847879996738359625845009715841929119177987564643049340853930640231246733125510125120401958316589909808665136513466506220058477466546860092291552851977314602908819554078609858352046696159421369240021919195088307826902614557843296016283466436270275971824937055595643427763472539472627712879535935860381214498097048876046438130425972062598040877685610591641329294439232931683542843618579259169567299456313665262271423857411212848630178311262949655450113613178016439178630362035650538369357257198692830555795283695424381375499619759468733889974499725517816952595945196540412239116273561780847473642781944667355099845585509942153511477006930457719455924710403413464717049468967007009377611766251478045795279172053751849433779492642930518418857686682021729873370586637248127503039390110445430219039383863958792248995805079659429995216494917740163546023033907767162168454530130873789205190335034391298273371606128930382162003168181322992247973673715666669767447323625197720558177717970178829417797278209615935364293324866647355392005800533834219368747521213473169557906991024446331319741612502305452595611070509053405151001088249664616204966333867048481774802837433804891124440038880317313903978061804837703860764200763164122388020472051255782594407163893638461649893980409267315243026683823677205896807841536453527184225268085291226455574062953348085622194803049849814229727752442551784835085343036456209210089726759547525800913302813543209609812885564554794594578044333182718302223401710449270163376876973107961676663383220578225284671220208155197053635911592031253609409153744804747615383317135166394786286486778996850041118176998262616620082003364505898310508720445106293215059378302333284323918691717021675635186059150699122587968522595516161219499066270588114056882073825151203514498083802720890116873820405399815420940456994781760939235849506994620621390224686359785657754783024360189193808181235392662926564731709374413351641997716512528031807786242075797997452269451667506469331153880561069862911452592254168478271888621116230482241442375192462710997671713595586870010622382505543333962212283636271738826076882890198780634768299876779079068997532421997486111774276971245762977683020397907967709013505990245311761064877321873117549590341546274827487793747909627485830755301402459429581507431429597085995674270676228179318002449204969631492936712866623973024924982623602886800919149837705883298583554029715899361752269387582885858123519107121740949335671442999144454019544715312845533409907313797067799499790339455276110920639304776094830812991655206526549074212750742946054796401547174331120647508764732783647402062886550168092389218367263045843048354156472877993011651356711987892034281603776461793584856647058190842377942926773880387548226455208064772603594718618564169482927270503754713615094855724885164255408774163289229226864911105633229115078521756260853555042658262132791892329531360273850872258623376331845600478597599511245203874005510921218387695410477601528632952316470778022185954061286480932628381641282031171297477149884380053552936009118069613194167854423323419004356404065147362061880172845151959545679207372504642815418516215556826228131370446788901844766764948115334289037921495930369586756212085556070115068926100729465841104144655013113262911885188825758183791907076665564311759385574724729577343637059002441579940098925876968884435183487462868984499384291775363914913805310480832242484899919307711729314729726538244178901339613501116102836114668313659802300415580754840753390124519459334554597594615928390129272337345650982882213528492690962980603350256315378458540273351088276044911673780790996942486474758595439231666128261040059646492307292566491500624823273997699373374724841794615220507454096281480799212225884781838568940461051459210215038717744900679665455908405501757534961891340194976860848290298425788088136900273772257618342367044739068356352115604062605183978196287964722705309610210485735093643496316638527837832446412426605503105847886312894075425510103126839587932759640910676677753901813928614549758433433741604159243035198979680006651566692693090550769534138317779625275389454602945068876536871304965440532120865491788609797406591978591066547626601497674810826755808416169748809437678045329271397332208618919787632651754699462019129339437228161425521215976278638529020277939022757243670651233253206620432413167918262233411971388650289110131167587616130872021595119900166674703390516117837856645378805209714584582096596138498083834576317043800736588914645373884811701092811742458012084036706350700405383500162100175234412601573830575945396637774290840767921707144795755348874533256442780912613989652059842046221384694192442423965850975425012573307104094399506547747266578424486917272806594354828687045717154169731930084659211067544439806405992662169053745602142638921721684561281458380083497032494551140653420429298230332591710998674861799429538080412580087747764756439408194836431729196158777128277465756858038296017534106465886364255131994509128777665477602260323527544140494654126203154702732882707474998459039814292265926545599417151355437738359483635529048227518132934298130498489595141090655980819806502435066292014568445335335283994747456175301119942530771890633902615136759769812392744126118733445292651843539945921505910885352359561334536514394518642523518935586141855308798167303548594059812634423625190765676120772410596364414400899315236518417369680368982480362775180128142084532048169979536641934272739221975689726196828030854428176475040273020210221455321719205953711947115322759830234458320496178449663493706389805162111798695761794794422330567985482123817283612244824717003033867056182991999347971896911193782118114383653985837266460330146682809088140429290642338238171602576630277677078020114644060660659099230156812197581129775646173834196951410983709095314107302863898458926456367530793935272462446395173401860352284597931218947419016812068486966835539318833930534966682602074115278854227008347974686849909643946170537641678171639672599438179755397239301388073807277316515480781435644711655357282794592087397524308277168188771565863428235865739160398453609303765187187392805624756384771934993032704089130865639570287593628643087368437421414934487924460541534269625235031966402653893685937977712319526811118577744167283530333270705338203254645459044838470127499933151399897652017364712384530729041014123556774464590131963476524818478368744004653672143515907038555949974850440228392778489636014099593107548863542553542455077721777622876578181277491436763305681038483300418985654782447072303538005743291002628698618929683950547027784994829979073414325263784317771757832114711307495832570629663229757881852073976635953245242835428081767907360375161495411553562182871111736333145177381329802719922450469679245337808132509801470716821848775605312431613034082865855510825010754297869021042059279205438361966509387299047555418108042815152831605646920501631770886427106606147708106282329941726148860041868087102080441466112219801994097010643869181574449905259273880567735898808525091131849086290161173588207397283469368873125548272731255398765321832012824944677974730211841731841528917044684955591582152075922093596718604567604176548815225897718354025121640348405033073806389282874026247305583194247039702457581852628922419326857301926585324330537252455588958054293786839735858761532410825168609208983759209718816332744344182640505386418842333655133607379293418257305322595968112175825174324113008131489936126711720398501221434802765752564208584816147616165193111568687645183218465538309785324883028627111393293205453491947694236323368815879781925653206349871428722091843779043057963394557206584964478776680474837324273223596084082915634598172749880115287812999475144500286023657593267666825307674945976990170370941568263206604360142406762068412586325802168262740495054180194718160134143138340329739127535858177029984278111157564055593555479378389319362277180018510514369193887203541594986134636125746658425328502655007726269941801033212888667587156859003860761154031928279040270841955745090685589643131325831241783035373586953959074819012772929468208467804353021440690965915976033885712624430061407233513635269761626476782492384654516491931150906098755461205626290632328786287740755905520624743050422401143079578531088252242704358486119512629828191544608673793618036257936349122751480493907544998548683709690338305563642689168273344147065665003131401768062542622003209839600298214501675728641684051510266232842212748302203239639086572682338303624798742184497812439331803245033554904413689204729110849802536009203530690751769101151013759389857403736364520474689759870399970730002785705599940927540126203599373287063925676194897349944139488322042190054328502618975818043945233189795371437999868700079086329648038804715132568605244773589230473517413469364281304166359784829191426478870432384181307058991812823154121695759473282116810954347013345567990588333084349441714196237809654014468694515578368718013387947703042818380081425083232089876434816835354551111025811438811041198084586385129341759022267965959277338127833912165420942122289378326713868949513895853182283190501676640225448916031997135547522573992275285999849490796596069212449382998430421381921137531730831407088680082135910185219109137004908861880060801753928872214124950704423522744469105482140078665477661970296094024617035939641831487293779112104477855287040497287084762458816303111352946734637035603643991027379618324043221226021496490716748136165315208461506472647100739040280775814058876659649906735460290355216898494811782952883140773902155846334018249456956245659853892658888889730863982328400775553724461785161153423831682321070977865881310654540107016992406506895114477463052088415688479874277810960313227545085738693851366945536039663976217338607331119048245979171959378120183030541579649011520617311304570516756809136540971014699932981054081102595683436833243894682121768679771338756918557147770548476328790796332656076247145592354076976171569395140469563928674967326050532371292520573661693817419255582659661414495501871654629936396325788028210863843521176069551187185987900426672861570143228496953970731448718733556627328963668462571465380979471649996350534832873987577436749691308479880113055133144664853022985261887450133220963857976393246738458986833040028508420933696980382123080887809668235530373573217997664509015384424441626537452471609370602942023610517158496142329776384038371108522351905949534937168455921894521091627809596865378322800210679595586995488882557758699911806805324177466236079688848380906280361646376293371660126276620469381168096325015755158324485085273557120211191032482120860220395595309288803805061692276764209554384231695436416159970420903543407797289057442019148798289536078522490569488412643278006702029182049372348594151277201986095713185357629847420018894403721744317304966801637795082496969636640672782050413323881786615096011418530989276532655016545246465003928246401154969640364578734119961212629117191524100473310839065130519636468887751694694447328574726353463410791220054539496567037825272724257831988637707226734120848287598368206039153309741068448567303824417999731936790068683148020074819000466819022484099737545309605725164125315169108764925630092251147949817402527148317103783438620223206491727285229930266545309733142558580819432756893556336468146422926749303188765184198502520280149990129026507421905507141697272586259814155549549181931600384321796491864194830384616031830584623736006231118364745227924270051388980670586052864846835071423485400718836932199248989566682663642670666643108706398433980239234729958213346005919802112765380903195172399898472381144516256738127418545202260572761267729803908565652567103866977271428393186679128616639112168243836795952765816860715656256412240133600357824961105200208938223286452646173321922081604140833348571521544924848920641030094867207785371656078203210614774364045098563863687864071011100212903207891420001871168150034051426464199753354948175368500722235522528878853364157486836616866664040502242958666970391325231108267597267999713809570240526118363964800742894756806201123353084552918394954823181864119837548848253386111536548933026402126117266711785519459383788643925658250641299222048682697604478072854649261702822374507009441183082715597896974297867299560556125319495610650386076949168605874815665717508987274078037491338094714149046961623372662776074209309755015180077152201031047495975699864014032628131517027576738237772880104887452384301380900172656658552612023592731086876608821511686444831249150438828757868531747021955728503437228971756684895854553896778336648585163795974350634180952842050861558063229384160680715474941325093813242209644856660462274436027707303928502269485695008235161093829605870443255696029098554731540796870214391992535947525142819316346614539598619554653081904009978450362392309788629575011278213715984090284286244151367711259610686615401269897630236142509410295010214608099287867798249399385497078534704883393883970317111101808360881587466748361965690095639172754192154090166590009925311019906273144226660172469848686557485118046697401930738965461930671816080487045912853128423955471339330057064333820361658509481021576470651865636081226751524933135517977805636626222930747513512739858641756431722392464471586890319156909283752374877891333720451749785045206492604700039475541792096135141267660133685573470451111481428025165993541343252265885752612481584685745267130995748037578004253030945795351099411336934369888275689154036865547609692213716977641971153411051444156657127268650954382901885045603219330834444876249912266527444692410087854373808269683987318568694359705189678952807694997926147960584714621994531212522253368120252890145191400613208265204407683442658015093430911368050434071843004030185741216371252802988602680390601789325121273850949944105559020131653058358790828438668764198935232998507705093523109950507172304336810981945171143560799722051971899677514678561503453767261600072650381547099509775654891066707522355480140413026027171695386444730639432909521107956623049822797018199136837441832183584313591573492382866571407086455896982353794700951284234259552476748399628961507702246396281665945367491294311625087693807279534675154340465190452813823699642822257727406126390428324046807057156908149008755441135046543985347674227095746690483867166202503692213572759594328518706772186831920209468130675707602939266888988159323367513060457610810027467500868066463430982482190909416686141249191993572845031680030759130596126450832602144297829094602875990395562036693639403435123664847072413676426741436220105052325191615415462891308988334535808023696330078140198252749956062202668546412403617882628660293737892911358704476567265291655125184345581860222168233520743995076725634245196083318315223443339599660949170786573704794112855712137254881101966045624827406432293341403277366716166872740258275071585638403237930244407222914598966905665563543966720282760345633222569063012447432189540255815487402564694109200062515757672252567372067418615876525503168785337662333809034152022441585853020825375746534493735851003199914064323647665909383744124995984505376865968875334227792548103239155861370771354944197061802084660638730216300827764897615062334770216642696340499669990333621587844157974831877282195105702507291034745123132857649213434477099649778263234165594822464979180248008808815049097034705602945312421631221796559548739932533801900097219960593259695390924457336980648247662188683054178208957123053673644877745331133127117902775067130724325845022587090921479827589855801721041227261655353170585985705208048337303777402780929792506266765257986401537818470310278881160973076839040084786279030163734972604038746564449321014422841253585641785154972895718969788064822404061680269211846274747438151827845230466213384120516434449166478258338690719689131714424107424318115331765317200815400826516431252527368968553841626995613215254106336329690572846960715949469752358857985325120591899045476183436657786751370523425632825299886106518910862407832685439609494574348342014156700408368968416905349621583787623442730562754954130362081182837650951743534186901251340232191644152467090956448152744004662989604037270927143991129493722301172203244041226404578601469633312184763808243459572249084923118948114172178010387684775142614218593419654463579488860377434268538836057030713275460709352412992768962877000938365673209295661672813994244900702549873815023683885731191477323586620581079515595360318739497218703492340275321714013196368780854407159469812640236719989005630474122117469073982223743206509690224311062174356842800971298190950246806988632642400510448857322269491998067758270146727381809290493552004433590980081951567262323511043631580623750512876809443446368065969005205435386848784078763684171388062358637393385412049092278138529079595672972705853800148301861000681149294856647725641774444652128424598548289986672322389745899951695477101484419040048228192453277259302652996322685632083652576110164112526719052098927962255831701147058733913410640173723948697212138042138791833082054302707354258643554159671379426217624722060230360469692144110487583217080754264988724358886541652997294424983393138308605668781040145281014184440860908091803266564942870573283636635112733667770951690159970331696816389178006144795830715361676410847981480484628506055175908743364891715377749248822358044227023893136627293871037882754362377989753895990042249187665242748656923409983652807557427227091965009799918319207788387007086102451261160831187115332047335094955532193646110798520652589147026374792898887820669491936339363211650897988747842625110019018976565542313492259140596670507055727893340502442257056154014211182066900940999810240613951824937050143010364136322522503321415790439546284741309462411427949530613941409874991543537231833832458741323909120048285895440985634953096954251939427409689729463587676778824742636060465867456605832731129653254081660891441244739255715210780545389910087049936163558880585618317142479966021329033967617154539336711797184947705029667354052108855317538731787214511582866685297101517400801167950037987162026511665911111409995186995362349718853234439871136212717102975495841080698402698951383258253951489196315227794277321549457507706491664976426989905462000403157741654885800993488228677552728316805666589194856205384941392733671618418813849559987374258006931562945292683536577478834083083224748328723118059647099257310764512085661185905993416093460401631132171041135459478437628699592763253888007084772466052859270453008904521389142038292542752694723314445596657895253044931004572135002694005091101072781509711967786185572032863455831268134339471190544859479925665586043295045837527580112884382170922803029881706507660579455594561622535674992052079405963492895904269598816774596927828758496231156836235886861218094712557601378056610464264022275573920596951792897361294679599372246015194076670150267975134096134575126198330697380917505582213923448453592911715309155564930412317295068973952541639962092935549211077741416544889307623489184503207950004398608768309712461094701021520886741642945885241372000169240834935694778084935253154711680720859853284169654167895844480606827758833805204820563215138654565567298789986206125910734506545140001765437278962658988724608786524489464974245043557316246066343204150303837349264250220430165725178001791546074056462129304474503805101509467619260969331314468067099579399078370773767083381229791077466125767629535084339096355327976157371188019704410058325744297183429818041867630966975770383159296670784453873208779745499756249790019922497209111606416642990273233056336471024092405479867836179657978813835659542398421060934695184093042659256958464348067088467425110695269565243606751520150972301764365039665524817726374408819667650950751127588923958838111629618417771524812354786920849439402189665072131934736369819314129261629057825331224254853275651441389456395044205965508482638225313095146878588592462409746460629199857128792239372431604741176564484451148726134929971514041609175276113499672507870440795312501017214499920656110227080561840900450947926223721043492020630211839887438655349630434927454288538171634059224981837395641347711033073940946325765204946813017459543431456444724696477141500871177207793929825595750486689802691530319298011244321469507006501362134036621475247501421032119677175170784173165507993177893714790455383958444067206474424529232653983061737250426871808324984215575751905868050971161581870014192647463850373361006229780084073209509816831615537454079231491405435507978904951255147575068806827011756263158136489462624855469107080685667497435943435484615393385399905948464781244630848412958259561111036155202586160968928315482535873536198831187615673990712605081244002714849274156351260289569306107844018808827109567846190212140873530978475401761404723522421275362511919789359592384111881719242112279673489426319053707079934131675164658084158760181888639386184526748502928513470236801235768540616650891664588102242632748657584520618685387689896103361757375845105699610052687085610837066847520144589425388906869863970808028776816225129640352579446969279835492961087634994708772960513884076895729165257986825508137403441942684977066551782590161815332409708718917896967240149204075419849405470043049345652992535291187388690489396311252423809076676196562350090705588597333309095114594251290085390273369267168811767983124115743781192358224237389102527193920778855903759676593007447406138965402776006546834611777232757421939014399331596088452841712418468775245185185766793084397642089993411015354882858778798135037872711047206504612519213739057549534477696157278810495852721273745128111761130207321480673362988422012739183544050314542352729731139121370927220334952795006648802104060954294804922539233873281050512460932371097011995276861646513062954608700648748739370918940307819263231935876742173019597028883378759540620667660092494743152116390572571535528287146164796212340946124536544549467128019693308437026851283097738973076872628251070016054556448211084306727776519085775116807301759421507744511835438182390482652574948191239117203994665091483083619611365873677196630141923371459406151988663927222421210074567022057698180638666402309990158175651536722782270590575517965427346061713490014466211988092765921547653022748363661923531810538050042273685779819239264639536399672216094583900681224566069395243380026538552569393852735879006691971902259141453042695527338908047606258645747417247066446269309198994454589208283121070987458516641686875112872338536014462760079427659206643212547099555132993465316908436593684179571594459081821380746238711440749543593459299045165864479675778826954001755970926422217908180303662956915187900805703249156989471857068156201617617529258852343063611411212398437341905548889818419280072722230671572679886665305122366993555042055942226499346041337622320671614772023182829439846259858315977608797189388518488985763856036673814053566716711831629127638281424784855111903106281029616781936001407926881434208586318342286914057020075877772109452581483631033612864159176007333939785835717397744784414386080584205430892936486884611769996409088619687510837706992907959746262464232129660974261749865559562833770286803982628298769612808826780577598284845292472503437992682866250860112257963710815976658386008225958951472564930008501338583159398285831141560562876215185239501984545792899791831969054670449699226571143424995935547732863333351572507745454841913086776138182697993311891985186784631479883183224187508922213340306351908209812744872637457402699363594837655922678112136340277604300649688763419263350719908495929598185689439722556718601793620624786613074779906258224761690215944179956114601833115842448399582940205359160347377516607993191580760433636092272020361396739944562576702549904530610142304959681716163666039225836825418276510287175809451041265160768530136923366101513668915653087629783740639307355945026298357601104875010054945224291870472131328866510536522919608604579162950895898478051435697784298283279851361738070657330144508932177395574639628809578946090032609885915657359346405703187832964998666833605909625498320164275870525079990290579832832770395505967242153990533180094222367308423569536142196932619227194978981234898172399800145638490056601182110270791391835341592673509239639173493510787182829881168390156322269426231259984211934773971627863713699606386114591584585788444782079244483437970252520710155497193150667074030752107077742619245365802971133248536920223455292761059364462098888587361381669558410973851338449052815628079884443893806502740609449537518017570221999978298323044953406589853020655158146391304718886023278660778109499522128432631674771657367460383041684353425054420509341781067912804434883388037414052919005533128220532027270401878552040960221902124330477210684066233057075439887796012516800035249546051458974843715642744657334188069469793343927189520974606355322847809156074079698027275727992694046645160815019306212666443349132915549619480338953749134436887236586018591642895472288101607931591004704782542663230681678580573421279211881553246178786288480991932534970812420419754037773056609950399713109640718751084160388921131197901832446077654792373679376967184954065917795047910050705694813251486354405821148967505612995225949527274909249618366957640962898689163653015219113186983001908888312089596718153025472266313802218777543933605828400302323848323958239185860207151104193807871763233587107761406960051686628576246419907250923320369229799843961929724425048920668371075471263616339513500191171230847267977435284383821922368517837941369636521880238091654905923425371742493321994440085659914073975799770527627818307100957365802844193168068693074688291407745435134327273583414661473264128089358684368528345326086703691007767964895369969204628586926497392019068814155763354103841188835676770956786925876558837249400716804723092693265738370823935066278137459813148832627046179242149461056301128075889589096856310613435749848017617034829702697264096928565964865543993333908889477425176560731173858093347412996984025885800887698160869292958788867254640292576726217813986828318256605583206042698549431708617501209259612442949548661082959648676800174356908162840142436444668255610841266157328967759681862072489683775050996057473866568813164421254185550542846509260629885623126814450490982088293128945589870501597921903353707810271315900645898823319776573076781455471407524826756795176513855057275409430758864881553579605994466778483053930434779803238043149615308071002669069469500362888455754387133528255508673297292887251505081970215512682610269346832209370985223274417286485718142659832382012769064245787155839894481673265206867011251981225956252262833707638680259845377106580125149403637513879387619142640475977714046154512543653348969810147581188068599526926841858436655365242241293132966435896808461264619588447737290480246387534020803952432466753687495365245846312440806897484507752128776656508017033746989935458688450057605987391037013349295145010299995509498362160452032378996863258270268995549559053772127426906535349869831929773469794651087143867642612429022708768679919392193325435841318123552804197377643410161594900374534513070413930165982074048208215425079900389017351351833637967193221054690887021780806875982450047070719726943006450375928268861596549886094212147335665481461725304413503443925799158489366187472572914772893152022266436683033936490945045786467321274113185790851012140548261405321173461290238139954032343887342492552463061691932260711521765604011611497004569131444950562423195499744016535276876623180505170862419853354794100113943321234614342745614831376211987733921137271823345465601327647808760826709991429175602422008542750042225303079416929558130672810576768277509785570092331168328551811354048172220887232927931319823014475275055499012889356132734695391637562480694939173430635012522053959524709599120694577183447837073571522785004041441546152554880874223885675355290034556539655392237213574207495869600335554944942802359618459419472295309703611419537246176696189884337909683528973790951596865344610684960394045883380567672445403715016757791588446126679429871610635769476985858754441814254094028216703005787526031864472624488292924163345792688907893143312760106661568772124038183222215468125622206789423041618153895425737703968566476954938750963015068451421903969657134475342027287507630131634997312238993441467533866441231458213269860586625428821220848110730250820948830285941956309504919121523749847272099145491008210122791124409836385659718800219575476591588103520457463539604930680624964875089531106492240040470488545756823280814103822211532703239771744803201834214138633231650275530193882625106776336815525430400878372948529124429480411607039992467213242363933429554790891154948948946819626011670939540311636285692305004642184398808528334773903701633119284001833193986333536715669538608780621640045570283089164583285273455952746123134585287334782573872211590115636595574664786092617353676360674470919992244816508784322586890729589611564670137153657434611133022736583676427909321426425093703318227906846921456274457358570587634444992817136000907723552513902739439828817214441377261164256531307795622007566007435816485829866640257233486789498489444842993749372623653384144037939617951963853207015996023463521905263271153584880024693884997888123098018267440811726729044108022793913207211045000936524760618805219012274295027238269942823660861577320713019265123491755892196950738218860251668063989922069328348767863832369481447564669999177559010527945494024472845843108389000041568126301578632962703847241216243151791736079512451629567258541027979380073469551134653649684792030419533095661087524126355248728862019713898023932355514351143112367468737495902044503663352792539760902954412951550738722843564873396689619808860614513887753627732710317635514115957044410573965007545835103748283139604894903476229151296115907647408128139491212027603670138368033166477573377139811234313747689949916502510640225298358516980382334781746310639141706235144362888508775373666607490241491663472231244335980547073602353751147801913825102271144141391338515201371269649409633030742187016436576458412805025923605219261579992548289152754574904083471425998430696497054961712278494942036045601295192993971896975641906405054159970430779819318358127408084800388880484735651133101808071364021831039937901177366357853441880346417902420963523590542392862694861821274015434849532185973411397332009346763529161909649709912514455092955250129233410578652204633483508502281568228204414506384686064957902602864442086729983964706209489876603764494284009016538765509914737917067604062102310915772154174700848221822422792101115166651151768867473081594137110444909460412116149840471170275032708153028330677798410242550401026679183696326587281909454405510919843525152729124205441248587198418782246981143480155599417994450883046421104917613482323684827688960283890921104396146220863559207365187343935741784259024758345626308082005137975364713064243866646402809224022772033666251934281304343536855987014380216690776349683708974838064605136812652492032506893996264224832850476097376327524543896407401699009131733458478233646599430302062934044451741059154368899241745592337853152686097593966308472527684444362436905255043973576658995468040912982827116093889489640579004686278711348108581907456828717568528186005351416682575785101536458517283211899047783469258465184867634642749664927444252561672431073616007081859127197296271077628326299180024807416657221233200130570447411323123852015954191696413316280675503426237116100541842216149242546383082999527409943141045837632353862329818932805463167021648269217824438747199834351381219066911221783154356326672171712696157732333946735510082997692941426739603764827201788695872162955715973174357304255260198030468128547808163987090645814970509074007200254031957213902263638833199437374050299764378835570898744079061429061051697533911873224649286860610908618019278117855680335958274209394206308461866841483534832157081932387518311896618165620476501583526503064872671748501033560020264631508688947530862166901815494731056136473217869909686866717766824488251761042878579064263824244467076838847902313413399430671665356903210817982657092731673041236068943651391158116955597420031959840493901682997651526832283219141779380366559830770949978547558018780868367091460806483554982936843471508973606376679434893375055107208308059096111529131034855534576222363468469666747535608508326554398373154251223146317907938016254804758548970778862566699448835139978078394736642325441765291336209363744563175401045320464215281389887368414596182766356329100391197663566062401454015150834244353667900834270911603901971774558329928349292275502504967550842200557670902799002068441407361633514375965613457319836026928593650871456683297685305008899660089053978382868243575489863988831030690301809624228661100503916526599098428459624192025820758860588515815477044768438008687756188661175565352887394803896518194165754816352088027448031947471720633565809161741001797387969574875549518924665848871708992647692322296811609590695474345542540183095055264137510791577123821786656473120569734051614262607885109840192810626586935481277103466950752638219940530074425736836167538941456705378454724584837296997619571992402277393336545360099942778115934670251485075755205409443591785860442046041517304081386734886597937667641179594126889373569318801873771543441225568203308504117744992402523322967535490898414324798741147856950849425188291591381736118582690426786015188207814014051108569254028265217336370469806517112678370676101230884487189744884875732588119119374600292942833646135210675442662886441442796611621263155655701032196435874249195888504022692719805705460802059512569387175216272583714466902675895519565047657720763150006744009828221670714169976349061852179089873279683552482601511133741678068412395057779627559755783455459586472540303587269920155367476997990508832916230985094944993978243780697018726318145679677368941586464096633455003750493156362686856304693069664340614281150358150053784225222540882874894216220607040800690599591889829125559839998903566412011471682425267736939381564828049883861561236666387867337807171481525341333504150321111171030350440090053787791723722287213892824932638346183504093644320180507417339126695248927745441589811231805630040590994747201258303584601000442531693705396251468728017280680883552508138977921837023987494372976628224359137329650713553934528426790873321046751674489479536404152476871217399768800635419867947570314902798461784295376595506769647685150257367515076113700597381763044806489176669324265191711460420608404525316650425293627513176451593356877052267577379904146405739765604333198821030553744113977098881094909313263587173489075131448755564273733773657901855358197442026162094791600646220302961347447587150174355995282214529410064129417547655089323393122745463173711118526939433889794962859844507409376715170807069364627137485097608753637060838296000607492521439927956054007884454852494058645424333596391816032042004464815707148538444643743243325461947026045795141085770028119464148730995845960434898206395037808110267238920724500699625828174926792061996405183695993988994021253919012755946641840379260197916429717984188618625297285345526263119680207303088884478764363576677621976024792496082286479600066782455242330370830754584758613983015382748947177844975678392205157522270628080190325148146176261439883302100209651715642019083738402395478687058990235129742835119404711757511074206839362118409940948512301267682195104699430765785027958693002071808048336341313790873910439128474017588898597513916889278705453239383993800469584867215039630646512496430337158036780501989205755871007640160490394851454827153426343839695535794375299502794605435652558164536879912993326752656032085303524415243036185737114451454989236994873593820730563594744590422322441396703011984862754089733879409354408118041967796822966325136365202289874955205091183567356868378040212754338992864774807000467286281657667193491462355838045912578713878208906424853072085012137389237185508926423161183406855716603838181950077574023468123028851099024873438348906782623149981692022996399677692542437309509194037443533692990531288881242182753177192808376382287899684323594468377578043807746490069736941283043318521402627002903167058399809816060180816714322548427908029169155854444625212766139239123272897409628909393572714133786990763806662227017292148501503668169293043917753963768837244125847133088548686865389657089811799441935930735330434406207884817178110066785556637829705457068116138423410406382448632829417534900073086966315856154576523494648062766686324951562290664285954742830320335260109572867407868528156578318560308056657021444844609046408061008726962500634227440095091169454597503725526654601728022400996672675178573935805485486011693446588280335552358870458314512151592305635206699658283347242020303551939524910505657672408227126294965069106619826224740737617378840498671509121460146947226011739311770183798964321676621733383653957587803713873256189240297059497877720741184673509615527402649705332735340025464466967564402121054893168474527607908448469307472829944702086088857534095923297894440474171318982934721032441205690467575376434229186288402117930026972765127307514897158648974890370487326948732378650317426362921391183947920531960920491831336418060135617528174150254556031275697220467328264684886413158003270514329424707818349229873416813582249548576603298212117575940124771764581070964272872108747895046838525503558587259247328770349117661486432470081519803725848782769126333336265319719012463896152132006518420822378923445047770771507634595443006242357785430888303010137251641730432187370344001837262641513211718727763461921861450440997897813956130138870371676305246344838979031243212635387284090180462108855747333288851886561364386359197910900286035207061292525752428762471376700501968516907727692081595856281787604096323966122065109904024727803111040606206938215004905580638240900861977241813600038169485150694248347724776379092945320317466859083968215770549617815618031491950946686325938545196350423962547239908836534674370890183588694821533861635042358892476602178650003222897021195766797039329730086806090186899753560793925301130455382226407131412688560364786296645746658835516761312528224557449028341896501114181333821991158305399170637518756321294106227836003708959822522476644122350450905396932051499570528853249322326993596694722338391089672130533058985957082276424176953436836363205298007413980600851675147006616712091057425660241434527169075006316258229902591947562177830629673588136207770358139159840953093795901646433084800069678806034360444641769197361048294652545663842216559046258532842458767295708513063375257144410079324206611553728209434649976976974331834034943896734755484605655579627935252573103191736124633317397780358726515766052927379336032256587878574959180501841946540016806076777801024113329251313606299120742730153181523500229084638800459472104706089123506513331099129027152321543193900712914647735114499767232482733614342662560384338670513767134133943447063315875746102610760790896544430246937316534277329096141918505429834515808416467372301801808511461124398510363470606368229820217988369386343817108470453790636774800248420290574365451775775505863301238601146493400019858258216705135625104759291632915199118413992055616814787465730902845414361799840009275768842009571579971221706911200551583375203878512118180010583329097828316737544867686714052790822617047314680379206395430690619788454068187249379153138305169237491470933500412397924269626667642902425525600994210781979957754041494940496591363611152035156015817301156584774469060151963877820599605665337986153835629325168328778396286090335719219644317427558224635426695652333021954660100699166190428666586570332201887229010099031146424337688429034333875378955230578111501024714755283968433497524636568728957695575032832390404796821229023219418232521687016401098340464300284571182177941623989735588909754635718972365911038095598113801290320515574269900065114416584081098281915286385952982561573183196938163465289414426012219045219639159616891405902482159969602652813958179886111173876995116104695719860952119584267013410466733286587724292580703133964768668635407746381207009560926702499656699868404355884733333249796007676194242200587712768549616170916492780848131854768505278395860921716196534553303738905892743114630259304769160947529056185752038350871230463236467387010853429888236991948927448764469071382228307803533420064049932771534433170417824279670612535208984678495614519871611095248347634859890688372859589416604376333485587632457752035990079501112207169403744100300918974497715876891151340936844640499365472677465954422638584413117820269439732530548186722227519087393102947019320211939407576641852234014869379245598661790834614765131655394726114254530412158006777436073297761791552070755514575500795891584977958512305369392946169820152870380689967316239137395372164332410295627621919372526538505655117205880058203599366598975936995858076651992411644708337739697729733513830694720964128932506037881676435745664859663927007193412641368669504653196843303115557465335971514621450683046410063233690985823075791781985652125906035197186352570531010883284915061272466509270790452391082198567470757290984294705589199029743635203382525273294418918765886697097295361553660796063163054231439338574780691312607969262433241561919089955070272284362009928685984544044508896488012418480604576184342295890738084668778335896426105411057353705711341814733027126004025315395594097858672911412506341945441496496859812235518646688861346283412107207727513357071938824223722524979411606175351786051857214264770552648351612363512753411390511489520141987911474017242240898603774353699877012460547004921332381905862447531303807736130043882053238348721448525077890210402838985355598605824402328968371547912299092790440570417350256533242381232533067945959888218889085454996347105957483128033991616390382536147922468322684323208545574588952329598624375894837383282006966509198681834343382427192331406262692673147553035114783502501244977134987049800349237059746791826326237400805112899518113042745334256287941392434735346159572836484313707557409266128756221266159271895905855820544509063445383320394705042255301998681671310149644665839292107225329240834764221030380195265542298696310583665713079940944975669188874185025170498274945965437046102633547080096673416123133360693991822607425310239392405307450774574010741804698322490287200424339254513487069084754452125987878121361362797219076481206949495971175447517322286242489255471653815199838525466192250689180466170595441489984260806080625428009744080790891038096345670376522698044809242693459842230252318401098122820807466063365880462305698105647411534652483128000485135942770755839862432354764778233730415073464591884177583003316872408043732078806148928841511425199516131718519495770253863744244741929044220667021586097735497058342070911794547325192061885434080594154298343737791501132021314104965474583815361281473297056368900937674742553618484033675492220758227826132418567176156002785051019939186966556577606177708251906855002186030101094487655635768188261834582590669502077215034558295558758086746572880469109253147388353828634724802307497580654703922241729000344262934101660385987827998932301179004781693138965207135377380256337225194763357330212155303901190295065656573770808568862504111914892442624347482726016296027642362341616827526548826595192201314941380083856366097365724148376703001587531826708212244256284932955545839593859164911775292321252027358019518783350877417435775973644047642163210999520260178984112252796254438895103447179228151960572189720491550551751349594585543043165009823718841386887213422831606259553663124900054641095690885093671776017511547998227811207077101722559987745358521671761818049672971021406714163742100103290372403868965297854267902534189752355996907579018620665972067170316882465812170422901902602404965878307230557289257365527218671086217692762121303561991760332277456234256974998862606544810335047647908875179583704103741999809162935789715937509652224026526053263327337294129724650960202262179051376108749871034735836900298694959952473701014685169291133181038246975789885508624605374307545999763746095536157612364264307424532680683772195273085741541400157208673942078964047890322524592150838075223292737154919955767459538573482223807232794122228551897592684071614565049884824784400374083160151501448544326616619723038823248740247873569652436037482375949007726784594923621013371241406353164121305769577348943695184927210931875410352133454131059102376723970355242994517018181184234565087750204189462988068951963976065638361269758963876311684098337439068001507014179848492328220289772859204642530049555988359635120579646071134989461460079020969882804180246072088632460415389097983155900894828670597288568374418669405937511225705127737496608112462648053333137547753050648721861356494184656786947500459805393461860722560504211956786843480354148134699849428877785215404729507368455715170359532300066852241493118412391800543180156480403260442544266705850641503637809772962847292753363373675091403075819707179736492425430453046910883951958180058070175685731443888717203177987113674289682732918379994308827952245662263589587983196030357448833276815676530246840535095124438197153699970043316746576416790242024261537161610167381702687327258298997701414210430766574436668878996536250119822105188694708785550020957566736610266171145082229580576723261465217058731974378000352226267516757070503286408857455187068399309183017946901353340779800599328958430502296123383106509134195125820003835954021586357795530608618062843131447784153232850583912296804242362161441258901414188447267419902611001428618746226665637867671262673280079666377389637323949473821544502009964331907565570469293513962036268893688677781903427082571661944904016377305749949935955786794288385274054149395492093165545959205581699024248085022766645647948974232848358317228036906643440375208216656833988199091287592504417588199510122527279281172103988291517054458473455450321540768638527518488822691525403858070225346412335838490852782307866956636465570472761323758660072151253169585055466580586807324777971989733751745959688049400669459606393945556223495660399598159949467105508266077993775514832821649679978873257570697987431968788005063765285032644926194475346205600148460266766431841397514999375960517887751519638374794118206180615354572530622183861724773885504605730906493273256541700765969176222483912218636139549183600331964784854104049493585436127729101280772480461261026235208643002148203331900936943482857035056862274608253441482992746865909669921863807126192964089755581773129474309974589971110571740194189605322717018902446079320768130820255401884647836295940072702026416952729050633002897835597153782186387337198258311937271485744966681017318799262026339057859873282985272828737856859473525752682586185138147622826242428986765880729091462595590620862645339036340657456076168611713625610380018365676573888466071447199764804872010175050952473694175059814990989660041597637169057395544988363506397579724653550356562458035025305940442682515193733370952394969476785956323649906813744763880682192752998252582915732479158664310020360717511463099024709492527151105426429091880382643314460722710670483899794937270089237276497049837311257797182414840537842197684897893438340889345004262461828996736639132616132943311245659701410282873034124109762716772071627792781714390023256762953190561562358686653933805917916257250160496838429096075147093468126214454261561900999400149642810222566980129547419559456514978599285068372276918069130753766481994132993923912364173185952387416256968945414009488289127236764650194628383407100925746387446879348800360476247243040038822591621030858775667235602362241970104946235336359220488959195708441507380025789195682990313855845997834794942371995646855135192105098902000757896315493000882447366184743468386032842599820214591211654972122115764215688687492549565900209168309450184916474168652482039776337626696454521767846730003449485817711102684655326894709404972244409103250510206078477480858895242886615755913762888227855278532321208457284281074420473651571536099815133596225324211225938071100513943749274046017820769114389522751757345534049536919152361922145462890709103706885510118700975618043167321747521795614282004680804462610913715524694630545997148302836764031029923935587748424650720682714529528917252635331600135034926548844460348637908185745157391935983727072151518138216055991359209119455698143105337017459234236283180325745713778028349429716243077574398862733755778731158444628032263684154294459492443068464315483711455942977962006689483749723352996688667109301852776495373888472439694647828642248766709236070905702229049193606526677182020198482610703114945063094170365059794269920969470201139560618336485445188017884988963319598652233546612135893207253953223645369992232273328518599545643195982733782681705729798844657993051318238995042605254900419795935629076094901153855561841289400325275049409987589919906619560794942461461414108763618700065618812893546710018783857742460713248244180228138593459800970544781444133491312792506522859807384853693969357512876699728617792227491789705904654854330718732675672381411660526701406609812272135687638292881036992932749499880140219943301635659074061250668423380759908235214384417976034926135096898966773000571032207039112896314480463220079106834182476003419329723514664802149399710898526141982951712887055971773624171392924993213682092994712246807659967874886030395202082070775169856922217596045356527782294893185508601407372931030431845712809799123828870379672855546193713380903354174330636277580885709948799326370506168574444210516679706709550062842399838909273879284074662247800122978611011738448679687703479731541454575932774713709526710883024647429054101711778019900347299239973014060800191287259876249802965219563356708525975311743870359257460532713068232298605405880068636842415737103941823254278491060236663635726781705215855744392220361470841437184243030341745590286223502781330902802870664217678102337616429352648987307242089439491238752275473392253721175095851978044891215947715367693609687780574989221426863573604231497432051780563066141865252071999850098466122699990619099889513904140711495376418823045401233501091612029735234829105438717399226554232502337508761083162488311523011456864603825777509001150551978204116817366103660603564129825259637864059767713943877351873796314843143467152469826475658421291202608328617663431978850206463434279045063881328666394130953461037150219561429799824284405255841850977386786127379216321870342990800443463136849475634793344972492046582125938410497749362536839909312924285008774635338235135208145336157045371793451071358694828046349672520813765406517436185858682585832646701802045737585953443912167601087992554498816209165073211290510949664287927699418799878705459485001748407235821688058400310181879250705149066696906693419088322260967669960002677771607583092078297847495128066485803123370562173991766085978315243355786815312666684504872318808094546170042362810894955494418437154731791027602464943948093584416333114374166025265059426823477712131188827601164525560654206705074618199989903814949287414064334034805631525495025374456661734533776649240983587766498213146433642364590441424412731173667296820016863739755231527793952153139850100905061706976932611733338636378517649851542261974376320507328626975923323170185703744616245746533883227751650020290754885041029781417428258387140518060581373406912961721220431957156852542796071246761603639623707310257498906846940838079827860043911844385630962404811181629824204285844817687362400863958128776431483938442763169916786497122860328478964960821899192252672164034868292484133006438416143791254725745642816205828543603496437805295736595290275086249954189886886913850015664738344026653285025812884146075776600606308330452059209620311918370458220413447373629792554758505745386857781003544892310554084525918131340793189557484172795191087587957443342912813019561971562489000236160131047571499515671418653081263069064292534581242345715604385607451561993242360042713938616223371995502925475905908240152268894560021146382369612217076155620256901910060236853925659070218216104371719079720089340601370961817578545654913050744896912881471436185979835882391538933228854397370932799748731218937882117328283433190107878254388500818010209350185733068165703769460275729715671670099907479319133844296467059639791368850571749430352964616975430299942288049441148913220506488156152869055774781551692478748279617036241786421047251182374601352124203793826991243503376062407976549292395223591754849181290703534096323887425856631240368060929069503038281575456803213978880531250890403007635659412902501792242278961691370495994952797002549303389367915391115927835070887283134426996312522891922976112155610897269153989686846322401623880652641285126755842293936360240456900110072681588429917780224555637354683731356962241001021384708327372072471082787152961161298102741333261199943973748928584416015466317925092005155941635623727764692931471520449556931181826898625368708311910719651266551435599025719134611761373377032387253565591938140574907804322237430914262861837535675279717164730027246549619442644438140194117609149371789189143759907742375783350656102716300225204521070653487065529948337173459129584372749634223524386552485018808839109336981062412948229969744147671092706179482058307901449315725263785515078515649500342294159585495615326880771799316513089119975349950296000099220778864332586446237215829873146218979524983013545472386287595255407769936490061598279231143845733931622377023700234051012577431725544863551246137890545102133339599414073554571181573820284969580097677830135777694528665648426805930976971232458687288287138959844309998014260052839851630470846459623727692872763721167253757443661897553282240580151146921514672007795635187091758743259299530312536649783977531583390227143119610287303458948923332439067593794557630877091554442546363317258655875838849561427004843201479524925332682088102151838112895783502353852473897902639564794860860149706208657790927641184178057896985119536108726781495497330088166969068604417925410275872465489524972086661518285995038355291615309502865553294845974065925938958510736483671833780223865822759764174078049199795739498144631944597535725178264373837816156776180978926679344311155473749618902884878651202905524916409732081497255684111188137124204370639622542007851525219990198706328619915315428029649068556290378243481787951561462045067797513747540072428571488998523206267567502380450481171746179073258814396387946185134629180203129701715043580558492772952108554232961979227522021006680200958439028298623828931484820407147081745051576983263900353113125136137611087363464792405834879099165610575405778084849999207189100199530072646565647031910267339492219154118178334993304991438977541647565951849132268506369117067700708373155385824366621818833100104587693156568466331566990096974451045829967897239481698964402926581995680189412006976055549575538336336802109230214249743572074375701706311660655645453708458839255990533176203848725301322326933060830004834612757961645112992704587998006828656694003886788572700172861214790395492734320993633489647377370813367830280843851785947783801480226246344751378304429261338678373693422114466785107412919594878556419477999044960048273060613956746477309682115234122417075303661445719288030217856575693902922745800366807655356603714607439824070365188799323176049309842793832883609450808419733514638471874631316805436298445339141959309292991531485344837738191943499258234351982319940933442201443185990519006409723635894870705625019470183463180952619408075735146875861080721091458026049056216213310178390002951384341744035039247659696454612633700126743183243518917838511037970553604051103509573753058324967069922384113277871953725478688245912541902828629852335285740172891614917470352766818968520838431748779138106158903338332413102372342225291747248870352429462923277840558060229795611080283790846095361603497356044125831388582595070247276915874642022138582783015959637281112411771586110817966990558456912398242042933050885242148924010568423417548947154795926438398982444592504899738751196872607530644856247234514844252027468929172877711765865376359709231443442247550768944289583245036121982451203521966461704233031028459335775215812659321428797675565527181580238439854497614421986628003617669039121578176914515906402295865046362274784537074576559341423850090069205657224962945757411170919010588245773417111096070702003452605534417306500101321138376971985820500348489457360517385741694216740449807052028983128120619936711189057268340376028794874500869284931956618898536258660050764792517897383280303120114030009545153981158411516605907690280918029902193034079559738671686944898078529360354621501664735567391508099097692171108010048863162690478385047787824997999841082074833369677751849746245716096865964615447888031861923101384596513254554584773784615354249185858845428471580191079577720650441122193689614693872794897928032802867074559715513079180966778914856821617527999965857193696941854786461638237564952037555750513097843427519308517603995741401829824259205510586728330282045294485314678094601301456124149995280248805776751395808069023414254056732849037443369494955944143402041042102852498359811132592422773225898479113846899614123390717283999464137987048251335969002329975936629649053434870110288824771280268331342773791061345357239611851109526655204288567293354780681270566988734510689632816966117008383431359974099251469303468281655104982020661484082273749481147515307347692966518070241276295023181453073851268560497525420460535649988744752563576499675629182673232435774597203693954406585767974433081957676575526894574938981836098369610206995605693092436064986467054132434527150998625693968563901955173894989838606254650627907926550682882662011149923720576525689030118911884280240425890557187791301110211127823664463603590227689497260235059246091222143449229491000179853335004870747461043887722164989639746241394656066905965336864998814986234176665053186001094709008032803155945030671443824086155223810330724306405496915383764147313248133192872520423597827167581062575855234979109053615856866632461906413556627260235075545842858457360005142478352304307882663466162230061926216151049776090898749111090643144034663776443316543800688634276864841899948641491764476036909431543291169023070825414107577679243080921958554845448986950145143755066862142539011618747305655317328775357054788007489759542781629804864719745956416574829484478238214521286881139007034486938893767658131201675482597019126715021810706044661604198450533861492383516065497056402464770118731683101146248346249350987656584448420770478096248380366676825669637025833643121933037211637987850367123895656643264660076310969793591360683545466978982142868382673839493279992270531953672862994429446973352425096457672373136685247591325622437868832189824109729741177650334813876341873127900795196472169390076920060710537635812316345570433828879422508427506610431388110868189539389743743587753465022542905035961799758777530163886052318504114362969534889090252447180469636605207344303451888190329951857416782721882742964930350179088055635436220714371873345184795374689769195247471740188841129405642224767885296194290947772825303755059529327573180301590561155170013919447409529162383305253362195850634703723955528956756621205413962036044316827397745997095489632232891194033821733994819783743679387830858981782657339910094875802348455887590374893287500183424473807732058900599178191356232173293177886922984993312826512210503971317464422042185343807426757834292093521838695295413582898368443623006406700832031525237471952335096205149676309509941602289628465920661166767794705356673055270497743646476148967525136976835482640281844574510601653469169058526547873747040008749121291817064037336086772449020360730197896499305963067905579552528197111660463904545018535261389636796315327843612632554537960322574735782485774505136904835065499445953049132377350240252760384955743605866709950094452848913300892353238013282089335326347803072160851729400614658943601464797809494851500943105021650932042976375141758673492601930723802600731411441039922206560264162415681357323969220543675721079034466836727709719400800011324452763383184816297668720223685882577430484230459596421996818475772640437803635227081048366229865550812475542348252114631419112216615110253575255360387420616809404748396635753505155455448188080381396311272432358624954133819004788444241399050082045578891934499332032497033793492554729698961677836326957075511606523159384074579626861841401704549881246947187697236344651358571968235431215787093601577380634646686785883295202644651270516485766093389499922038515950608497442389763486681259939597139583611677457180630952639839872138642758072540668247704307285780261700909665787627998536339111567923973509659575796466453197295971591740881188487583259838387884435075975393886954848996193383015483304201412384826745006053555244528180623643014875624020632356717097243274992521341596889716823847386430554930902903962887318684089904848105734987144762999330021138212222559706338940153500952383739422173137369546419976079121767389228143440081544929048168442029214214588812474105954646163214066305122401311813306890079415939515407223162429823796553710070450455232128998894825155510037456061572990591901105870983644446767953547169040983821320462358506359132911865785013457268824097422510343997014166107824194461390042990175576052930979861862922152129912167213662282839207755786968604931606950931332435676968194721530805430561775354299628373152909116100695609165216849157027058006789693386374017396321837595540370155271087363036521861469173418767689536755331553557893035148530182984868893303350739668204714749883124753070302353850410729151297251531165442703296901857102183040400127724555324971017990576624606661638174015209847791523224602146572515604974021748762245900332415353798522014914621776473250896390697793629379236399552401160079679465564014142328301753288705829946276438576781547013517600531747596055059915307709105674160512764986288711193258427137552741343465930663993280665276606912796972017959412199657668189108803144160182403563618405529879866654422346939303701918095322576916765012362267431910041230056636517776690560712617201924760309249870669576921809981491499572567573107969077726294876870332044585885810051733425429602684022186689644364792932851715386996595749885188072623785630424204110733972088422161476717805627267605120183312360310643921704601598315299968236133868281768642022996870929868743070592638543630627083946163255903074824182884026793476680332939970916438414600876973534688166388739525971600491079314929005452606843819301084358361973522877545728917479468684174659251624250243854556360122498653060206861723790390151396662759753945834027404512110970992296496546684047365025559435999743851523602156585684942038122725843594539024731488317711173503975871587021465186748632542153576037731996696761018072113110367597337332949200947117382399339499100286821170019757840019195746747684195507522175159290619981724940304198700172535196893547924860161606141211810856247506088753557929355584593261271820560249382731036930657537446795688024634614824905095371451675043621013362184171115936482623667478085025437427967225394077826522156210133911021368691086235250293323448203889947585212215480560418637291238339612749376923644458667232871295904921431089047139044780593176616011262494865203145544043839586004194855730790202843538645650897512934735414229354648100547191163875942534069450179618053112653483127669222084051359326881793203497806458986808897359452128519952738825393729189445478769811472141199787397822342494798267712358746009965165071111229680132926268328817792228321748177896537332602494068396906287472543608075810597951882061044196273496377340666481344955376258736420010838274323706052753226118500797357239155679723521198137063988245461822031689805172042671310550089354333539472459773827264279859633254867934325508941871929420186160668369986531698638634815049260608152774297238595639809054459573193363182007995900360650559783286278877784286311407868677596350382818444427291584058432808414095399585401815088206035442743932714005471790596355026536637985370141877240278690857417760829789300809868229810551174465840736822863234726300743392937724698303845825377769315521506135095878014356532186986133213179472140530941843088699929138027915225242625450966913462142462423715484168299545849983473530719909424557209129683875584750893008250839522295149340105096457593621380784503565203640111050279808884595624768136195753851451601742748193980279346522717975393614910172297255994664596900799983870703045225218475543008532272290910292294725778537717695195756642017847702376626065372136904810827427446880066640836530568914468354630020016457698880011301547597590772020272304735896487529825288008366413908203020000448198771504241609510432558149464670335832356054717363399408959187065907596729897721654593835962870284764283179536618999604529725464374897375423267167398932723995163114697347103897891307822345896136008246640671481594522752728265187411442409877467386790001279207742575472294774748005519973191903121016474443349841358572417858840185691438887084994109096763588785110339989552004408222345128871547529166207367546461396341404969250496654555548750183693168483183406794248570249455223911295431240768745500900972040463886434392594302185210352174436278995392879757874751067520583367138237374201383152970127732588433636064964083887690290742529423851395811106998113374323263211762668463435654099698621543376470819165112914862629021333509475302559348428667797710956520807745100164641802589978345987363950292245888088412398658209648229808973109854430236275548696760313783918968315361155773928491166648277947517813051121025587440871131672629138551196665199273977706156431025716241612079548416450021991954486990010788377471389896169066302153153763187287097685486972134665856714493784694885401375769106929872312077947213444190432568296386281402158326824668470311011967088455240459551615195884450221831272414549908252476739247064010405511100715327449989541579397821903305202291232575885217653997929010469064775378381368797298321392672750484054101418222882832396980606206134924251190165063719387432535416875514901898820081737835281854757284214823929987067623871610920135278073808063329135585727444529651817387799557010098222216960209044627865452022494434153985580756809108221715070423084647419858351385080436303420155170475876293266432773526852585088558811499576804465514865041543662531127733563706379030730669533063673907477717031140267118358247927014545983386009435156181647231060114962112599519251974197433942448580048884984675562089498228602011634694919592483303713224841028083405120842189814092323630480423483627685916070953066090205028832001205778967378311110975088307623675610989722631161542130256694099310603338923841752830112844052385660093277480946167664717584044983433123271315605050125560894784711106375069712836332258484052646571588543858851422631208249833264675232642330060498062130736205497470037740556814211565715323178538185970225544109254927274686658095264034696902693942954627658836674198384634600912851759134667674109453973620753669746299420285402782566005430638530997587479041777596368177710996004460605014042397505129959498622742651170018945944796900684866060142361839454746989519421993154475034951992056144518053624845456924537098150094998724733358045040144171835089823465944997496442204156069525841763876673988421429416348541656836734875964947245252204658690639415140840165279790891824183682768756026860261968082038344762976728717118366121677318990207546422005583456655816960829482380807784222445085493350145073963095444625855485856860866288502635662367384904944064015997109112189137020273990489695271337467377134597759074642079555355941714657965362862723472308557615507611230177550360474029460973494211779747849960807123956502043532214979509495327972988190005895402554543055371601221861138181097144909873978896403149055993434657894640659166681602861524705997886447663397697852123611375350608874261396174020976478870768670046650208750226075560851971074249850892792405050433146249392252079069773692281683257199845461361655774659301160475398189982680200522082412559248943072181328069472336363875688863567757371199456064033908862793706724580593266645602724207761016963462525763169070228025501405415713447018366127950701891496994309569367052162241148615178161789056418937819439505440400810533117496341950339198172963958940837679844458791323194674058061922285535691163432110780352077503006877202177811780734655478053802465928118362983524395275690038183733262717695068015300687806940940572379695148777435593393601840175760732046661972287167928274198905252194000209036866495733924049312987544862940438948317677533827137608762961114546651990182329243974245214476835292182817787443231465367675720998035239571514625042876094972713791245576122073192570123736967874442872428383260419954006346061186728272096453766385911909120327362710775749733781765142308750623981997408444800089602140524922773057650480427207310455981477499861836648495897719207558466221405026914666844810038993613448758490709128245175239292193201009397987288961525514340345298391340793267013612527902939085250276745565168773754268959799285133179138270239073849563950510968937637059052615596613485911572233213176002400383079983158478159628787197442497303556649514174405743829701749850061075450654303402125927537308005700407056162001557218590393959170107247201414343503066010450042944263078523542775986628750489753896710306032586797336118700498126463621965303760603906025753562252355543254453536811141935501638623158981340105140281083297198023808195801097145684638479933233258824089908917390938669669449081389190970032461690998240776337698480842015010194875270535099319866968689301103145347543839092686904562717249559440838047215513968875566179977928732968370735591638710471637079877090381944582693268039385736666945921706860071081796153316223521627242276649627828552112993986302512440952618039300867296398339635287474685875627784703230777573418971862761756340903312741594907097813953394887926929289058946618921245247865247133925393931079391913992066684139515298073777705869109657064625408110321953859209676205814795529864978177788238016793500217690692876472936656186294694532886613984333284053491529172415133754658612551565526891926387963542354536180497764927887793306017765109164036932998055585841211680758208108733088103828992952498027350789157167040874618256239061753667537206456068985430858569653502492011735843293053380962757010713882696160590946117183444984708344813992701867473798144596564572883344757797644914976337222651549633468829059031278294222961977986947270319500677805524467424692868894874718423561797440302779177259707203757778504819960271691930872837933974821512580236670146516682979678041245301958974076751729733826202409216870717323757782486321079135679176001378745551673497625333049747334610475270113905626011315009485214086802572167406163851699847708852135241548002833428580497095876448852068367100111791238573135344641653004363941546421013691409662585057101256156024273539739020417106622452724513189669078179744497010552270009638122226977952321507257985596630262196562628632676110776175443408812896669574349170461753642176751345304229650073356974719148877281605684369778830040854174491354124287533023656215777758589186726163396896978117443174709472900495485570340306953720477581902748154249516007159884638267688416225492237658547947174161242394952494569882285917996211554306952713535267893556927983813651616661515938350903585723317295245554317511936229954299352875612144361082396830690554182453672873147858644094256343368606906415228360834635767029860124936995507152149672153234831787088936399940306272861271992888948054662281743445929537218681651281435726161312644774347218451476912160950887788416617664161215706753813968675422923993825454504754447355999543822151714204028286720039624276262052427388863565184323934556024644956588296178091847620299633529495419590307576766213113032065716117170914010200922271696516571491050174530181372967188357752193047428025118575612564951534858377049995135307327453332015456217302824407199437120836173801067566819604160057044748539224208234832233657881364108800677073605657486032055212109599992642067037140619344538717368674602256668388703166550228429778143523758670133766943389306458335406900049687184531039993078070902866630831455101268526882508749632583111889725575065675206551364468945437609242376689356157274747613101286192278073220513583669788112423430666165117982857817172026291870038283106127878250179781931571364269371830661297960087548206884499851325915370092138593257465653182741328942775728682148027097679301167216730980675721184366501465478391774837992724826849294588734432081769858064831251800397687027100341132628147394561073601081223846993344952568686424058993107047248423499711857707484148884069107892346964346253182778665266693111159900839080732846032480835860031082157779284113500052618165026483521385365890132040797718028623214678195621126399807968512077322797777753618645397203852269623423195267538067045313683758974760085908325599229289238421583130764728625960780693118027364899042210202974976288898061603286299777114757726113658205349782968895265927609788702476796509270892271457910487171780992851680579975529337030427109358273770102450541581695524463559496431205892295556852220903690955130188069647288938579308066630925680166468722319072882625318000266764224280662841590949549411019434028233060725701968238537289573907932528788053030430656704150722726429849092397144943919822289211893844872232332531231679872679479027394848012616702809233795173105464476595712991390592968417198765574418669126211676261952490245335455690227969971438536961955886899166029946913691143582530836086283395459626035050666827097509940389203433183526277454768894827028294699438577890035950260812776044827383054719101140171947703542251017986760572724024811836395064810778447231894235574731560936334229938540793515740122426677841516780033824066238251226779083275480318353825334747522077724936362550293825061120609355497735439239285405462779303094960972238008606828211025325984118055515902649933014783918529607047009887378632199720148708649672967035396045686198478907700158612082996110795587778947796600059104610827556000575441479048320442649197580998364685284628541355495741976057765168855108343535587597361814561131956879648879691921459311072779088182541307094228191436074063803715607167630676561028395863536395424673512576338016222430440215593742636839290709735532378509503956932195355844841204993406627549454596391935386626249103008619988511054112891354158394631425763921096837110589607803611251331299806335401045977508702006501512649426555057831023346454951827789077847671635970355525723481929863879007745018582799467907264219642773645088974094249262586791477367098241235643539637106162342594719543611204511431524200278028493139877524036789474533318347394559219108199110370447886710141170075378775784960077457629556997430364482447820851085025612338211293824188459792195629122964885880783675956766941322158350744831528427749869165121208091730100433383310761019240343771535818285774554255650899536410598417279705374638551190149307243484248520183829308524178605053617045631596127412966679317527290728149338740835102436557138327462638542429478373754444742727698742903219112346732874773894715994921208132821225788461925691038549215643424842815735069498291498507761703651730867171233864761012240068551984376786112483818492388056366352932109053369574556119857886186258509355291294695818219847738965302826715814139691325745099315933372668921421282296140034709562520317343021702713845515007426476348282081599200159157370150795409997711427687865475643451127946683958108100688943960013554459833873880537073331329673252639588323513387404082517243474816819354467944064896264261773549945940592731456077393587102404757666869146789711926240856846009591397580616649016197112837673507033732904451395382504381090568999746123045340536729090545296517177334495375298175555516513495282310953837182517959168749958920464051800282187500979548897196974134681022088564174510391224243188139627793631498182817507508497361254474008357561920332175133099073417453088487151320303716419201206611025335942303858135976804650112513210120099581415854521941120610190476766562470496035925274925246697825205270197476471526880310586876312867487364961854132320262686620051813550412547845704979628073810262413589724968988188306167552948341225088567300769697787501189279226242160497172098858234622545511486030266172282372944463680693184434044046528122603856282657273138035867116254091078466370871421689411292045889069401078516044371156608235446477848873560893633127218475637019883196227593662564828236664760818286490071596605327861277114816078353805268024682887033222427535110623539536466630259007696665423548091709360677219994119170598367745554154041612551569264927290828185547163948169403092135036500667016551847995818324584687213198661813380121818407717558922137038397550599618036136596975718699703823105148216599703563673078286319344241811680966723642420969426486525914974552584715756731222121697629624030140389104259105982352469660415653744685089825266830402078066496488485058790687714823974131340624157679086719406400417884550595689240022608233289057956593679274037007090608064442746394392432525788492289155798603698968862825979514001753908045785038393683984644273402879588029119500490299798562465659622334911681197812057378777509680928670968141922395354092637115721854316688627725537685866843793870660620976847356873137757653652385911597181319438323146630272053891477341559279507806880945531119315740475494815927408885589783207017766195884216370606394671056468410099357684651439144692916854789922470231667905607315412736932892219112287767209914739501895300458256324019699464057660591405756946667669718677931448029510251397693826897517619505406877628099992028478583893842290912290225224096599274828032521637500314348014978371865709717156097172765576784380494000806551523192364533828055381094333804792223444682172922686909398643115493186843436846481605720816655060625966638011176157411147532860412362943759048911292221075143795249885273114636884527386796695474550196781082567563652279527459100306774461984908054243686167591015688582501552098805291092301781184946169763975229480658500643010859481550771283361590518410162344169941055123753490764466947671079209308516184293419993680685951369118438795559420267130978743625091715489357580066655307021496987999881984040874167019417906360071489156768689686066804448716197791414213957497848953166999670711915500890190842374527555419431350168229721584072601946633212882929453435253139395799365724181643411453454110743849004559672597679638611909431119541305741880484642942261790559672603757596733081021573821767996908953885461189798764582087199574428342068022676480900398328030239939163929221233102563943324654005442842902048506478125855980253526646706271093839461768028613353827974702667821130597437623219239195011997246854106658759992734062380695175989793726360132334056690553788234287022126719166883270414929244125776810657907463999236887622662007843430155254730233218916650912696260019001546858488513429147840077133206710288299142268336709239804011350048752771223159409269215786902212209488737798731718692054299786785845680761548303643181746740691166815610917485536567818317496784585724601172170463854080949394776006773548401482554981005678645677435632186114758290676568010146389444108392663459630094219284073989176785207091202680731406642545239782961441112121598234943528911478972598876858826873665895182388528825392255591986277016335503938281517121019159260084134096945271692350292469909376593884284178556471971438227145270592857202378505766343553011683760789946004357350798284534464271387703624675945710642735667625677645306695089590400246253317711561666512416324188621354884668378148162844898561254108351368722229826612161510311607069677320208065112230939121689874842617262385201491401822931234130935888232347858877475824518863707468867197303199715060549077041979578819216452917266034721526169953312000046014742924655802557259689352780477738951778790423659306875435605580751363285725880549661470457318591039644495876956882142907451952317054482863942670477062593041486875058561471170036303136397692890026534019142285710150439955577042104184930250250132172713664216781310795005977843963652075092519546794567974817598013563032047827310871992724704118392006323989231380122556447990323206749414927081759234590288063626431481427566637023152752345201804994098052402277947038646859025713860471839808603671171177279923191167714332564527992795244291030008072562664866215421882999871321073962663611931329499673694925842599010459933784042546786483751194287452034399936048065063223533030851728557535540081795522633755026580091731700118332851323254679831559866299579737901036050927843492459035217484410963999197311822660330457358637855262091879460790123589349358469211888761776708543991286855784502334466685014423338454607479272790215291898870821059993271117223539242470543617764469944700587185406053657466112439603531741091772855736117503080846554452895884249798131646486126148531886665937891461902214034775277104389694087503406248964501598739118161563004473739719039229624580089838622642961600457759580942642955933858385943204282401342443338461139385628968361914134675464720172736020437859619387883429243919990383784110981844304588575654533588970271424077380850369163809476067727270724061849482265281729903187333835013906903031471250087123402956683592835407771269238307738399624634649406023017860558995674730631486672458982595630185414375388979045064741944298651625043465453976637597157400192576558665147538531771726406128408672191622512476798520876603941289081417623773794618307931422845368089911935967752218246306952972085367318503785922910816089752417883220839575199049050591299899939640586820504236966704204166297884587239845918316320530631563322411824907930187022946571107936039716652502456713969360911659507019955924464339529032386898598943580286791848167708918187093870591548926101130222979628543452474083600521303858794435416910284982422184833636245159977066843069840716470849553743346679057235543598982709202347420907514777244475075792091476291198461302805441109902197233811936590426407580655523672375562395943153313738880729525226005491380938770126623185995690278756291007509682718337211187537358775782132303550590018754240923049888769927078064451931499526754657010438998403426878160179854087422240860940106167595283562505887363617259315258705522747627397295638006905768695708363744407795184421998207356287875846852925903495880634979683615745096359152248193739357432939867620859983814823169079203756126019565341617188031352333323724244131581543654846540248811254719588665869773807225423430677209081013036081173362442211771366447772774102669311641847999254184468813669656725844929879547726509407082173790767795045692417064917185774922733584049141313104567472306551259712418996006055992889131301790011734061337502593638643537140389785861495548954305207768290011773027668905890079840070647424138185280504365976323797216419885378712782334593702350893279597711544548508991131577096873847294730231655735086361762414126588478616293990413387165800171929001996544776042311690412237809786721569635437821180139928697177723121492801290773551943863411816276416046056792948607499977404735779553823008085019056538002080438858512314001824483383418767223602805529200393212193208161729137870877526436496567503297066023053274004006626031568802669993538559058404142048767873509114228233784573798878251451441056651831797688742761055880194660170569604194470434980891398059549606693831416920068653899208060368229320207831873204972052119822211654468156948866710950562059037621483390288239670460593202146010874491903463030349538059092185949890672226724749247644174589152173935428308698603299634264538198904713603492379031996328660759285803626848714010378962204414148813308524616571176043131854805120022019034150116142903641843295897927091866798686226633824362796324426033780476248294601876059565403255296116082313511048869923505218861256506076967172658424012266095556260675568429129059432534382560503699707997251180437878290642652017415220053206795563796160231724677451776014656097375703448058955886819724960993394514312568700630044372285648479471130032734620980930074389168557102149338293608788414929959954020006321119164763673807931956564532368792422407149305794070133558693985421716931970800997967230359040280650869250709190028347469898117226460645527200544684261372615190033727603918666289762922747030874723302536356957961461864138465254655794264735314395869998353680929318927708929563723071371165084584753193163107260624674578393660818589084853990162045928819376755240856490776662868085024976558485960994221591042944561102846779049656409765984840831921972416784306950320383647219957479499148187631107105809072517300927332579419848109216213943828943199879806408430314118157647209049425444470070582661638504004391779526065277911423448817613894864888605540093470935385924062727229072925134746522394802433307065072877019766798065689514137559580564892978971487211440902927407869339610955734079118882009020680420707845144158905683179478640847510824798324205939462166945641840078736414703109593104815211320940494735057702574877242441605916496500159148587124164847265951727088255312429496327381132501390144948187214868694833339169115784874179361793405696655347625992009649012776246842444166688530829793944619946570788048126425828677205664487129745317461440003528367275528755450882841605921178001213533576482775088045431853490294461853686132899288642510442386106946522542975028652683844965547257659626658931349024886394945472813643725134232726614461377027312286024731440753936618344988408001660699969671516508056332151493035328559382863976105359417851535679140321352967559443362840322469337885743154494617806835064162383261587225779100903620583706431302908174936250473143122690522557115929154606550919160380464102890018188856177323311842092896310740150476197161059769950027265329926978851627039146745892648997945145413508021701256173439251974254872864966309046967728045829886978813655901749205053952691247116401685114363640746763023178042877120900275165882168673304235084770360057361784718378530784073793742393912660502816772818846071659449873789010077910593148432458034097399141649654714891790882207144407465924167541543783369137499184987057633422022709410745515056690273958052951240008085620988031258909219431612639423278572392892358111328624410275215167922792097871075175673749193134367997271837754467157360558582689565482496145800397904467877676036299234629413989172126647442982612061969655817418732657309001673101015188553019517820129534302724373192532826735484237496108260404187126444421606377547051782938013597934915989013247851042093790615348143151617043827400286295242251195193133900730435394408967131736435421383496418393723249434940277852865445512268748018364498670968587980043593913628195685650465048191619889911978088010082584541021859788225042475721934956124740935217853950209145249483476900898885215552482409609824904339117201465403077663400944056831666009278840227597324828942563917242014591777115709357491038844053253338604115308834024241170807068346145096379820806514265679294145393745012061320127630873859611404966076099341807128848592790921454932641907740894196989977035408901890149198128992966392285765176156851766631331110642971436699900083538744529205610046322785043122179438233385106027093624762674604808299923859934592751542348861691367305388854656646506333278250079321969815823043498886550175761682576061566236318526931196903434081418570022136075171204974071654000800468190549094184430547083762285415831188642619515830886847712478271240184290732094940317160014090786201042874935928385362077239542035998322037984180812264543657981387253915066340396312238525875019920926405431936064575768433670165429219132266161773170739135453010755681771527599130406101605871763209667372928893993403523346317541192622198616316050774593715622352350956117633357241587894526927867921249912850121180056819647501896671295084128820529386592645687946004635254594651804707648374852257047159966613878159981906411731662644123883023977094330604271246073431324108139352942532924680655712208723894025913934067048992268478551114455257750471396720973360784493483312163248460032466101718578416056131432742413499156777912095214874586334780546444699534192231469625010548266895807362859881347436691704137105884733029867312998849464137788657608506111296772020537859861451303844662344247763552644231440846191685883995678955279836250730982553979230984668135571339338924561508537996895164672197811686260977674672387722166497146316475680559879609549195633212556812199783028190424804897819974380239237880342782928696847922554077313218684970597491331161128722674285770617449637996700253160145086815268654606736588022136154510463538211388115288543978253464593327049176149929370736168770390653299460154288587007406866464871174944743295631516029827210558750978666338257521964856628257790534895011163370772224843525701607662941883926875181256531932772899400190299044094118215674884409312002195039007682892713214608375912051011687458290566316382434742245669539023554522601144485064941124826669505510009249543091801947620114125733800406003984482037962471474971893720811313445514636963374376195313541033485190473535937550869560904545883919925306339381107941277233406577125911437128247763869639965971390105949659604698825684298899060133648818163059340136544646804527078943665964674829143440087448830574473379173311558380054624519226333262276579455688590751885076812361208940733777566237075740717411573530163027116016181844100953992321680125165359020074628120431242521769033097914069057063572383617547197136252020090976743986235393382714562626649824202883397190204314733997839860770882546817212361509728819278192172195299183868022608534084652100861088263602288641911794946209014998432185270745919533235993624174224884527562900058988894652309746215770478043684886498165760771634912405116755241934660683586770154098353828934804688964454334481545046721705480032230931777955735227727958537678017252480610123940671207254463262048725231386466836157773399325148150762768725664228740146956950176594058326653504809794536768175564607703460483303691631744321069710403188538557640199760900172714380748150935826257376752699362355512146961826723418954034022715786283636524199688448154899566718560841142666605302187960334996986845475402698274901868871682774833067567547727850339071651693767107249921781148319804892358371823524155033095567525087922817633873019064780880712431151836881680782703825705196971380937628758654979290840046782317146861313189001167251870528182227070128804672380784883477606928289582249751659241096183446070575574518973804134176681691770830066761731372527003336180276819645894732582677469665255146157926240212865334756063582652027819735898939578383039216032012494347989979217083318130623120632122325311986446054808842709719922411311848076574553710816389318121784937897228379902251469302061344971117848096574599786428176915992779983088455415497389552998567322838993869939560576339120521386030242927850054839035797400755481003403202124682308491427029740020229884803655700968756810261971662146616026942230611509186281312406903376339826041655715914265547398863189882558357126397507348140229001912947586831564496995300205515609086055510693585585600377156579576031400653136405434430868938751848158830898058314620062695909178379404482418624709395850414438090225748310025960683652572605936981099649321598614896606350711615889701149739888934758397734616428987515241315664609648319392511682711497892403322227535603972090915485365201498377289181287937122111999608635673493218875426753197176594800347038984534177604728438940091321601748884509469312020021529544829870450331170140582087916694475634344245369616287523138321600096958424117422725854018824014924437845584134937428128735732656474555094154849565200625435807531406267875566394792419999014514670645647752744554741483875325644867842454357859697391375527178638928557475145698054897125591517505655596921840702589409062745571734281089483956854457798722058570547452918449283453201605423534974902043225547651895231313656295044210380441569952447508365249965364438643150529599399317796727401221695738499311626141923463962600661939814124924266539109875375879687854396858358572745608483668117440836892569021200995178295531416031082498847426898641083082871557611831765021780266240472580019646034317880839902973460291661003519797379560239168543371895400408130891772719216544670024715641957482626342950141358958213706660328175035228141939788216930853980661121577948316482628147230183146848286062028001077733516239260289558119588675402898168178772905863235565993775119007074627574645237137143486623360372198236435333600122574823148031824812324254907285373519327773005766085160933033686671753112765648549682512763266968217979780842744250000441745380944019820010584439005765745519809582936742717571087758384328601829424118180898539575663580980086047515918918150626206648787708609414130853695775434535767043471428923957440037288710565037410480692834479096768976947531762547055749145842378736725012218695554525010152634003042682733929396146150046393314735317436146808936643925840441328211354507792729995750350334612138852106303671217807255411379722148193402983826375079807043812711385838165540055070215340169258194959939655112477402587706421356796958854765871652345663256800061993595232725921774324475622132146664436187785339642816742268337035884482639912979321382120083437847412922747599547930926201930939549004738005700990026932134209723850212563758060117780914588798259506544539043487035771438531130890740041597407627074103468429220330892935531070173101194632689838986991225587317332447077573646924147614485094227058001870407726725567277590740903785039873758361765128181973550918880166668639297343763929959530651036451448126011782107967879560996546626869422122244423087748395198614805223490821027084091941104198717116748797606412732115930816630277843630316868426849570505615564426585818421672597488897168207105831802750007796446839439492709552434834390204622174690289004771776560734292601327084756417079965996055865767180170881181453617598242519210169078303787379248298119945634252545443623849277731037990726327586213932349571125411547152466798977699900093256490225548321078639752460308029151000492176450896366261444345665564923801951353273033827916177779305253931890451141296246223654574853683244614825909053102092004904183048335011877597987194786497788063601436235325423853237520270214128677356183068337839121702442738825124442178261800772096805667013453668103380797461140932054873552760428549603426153991125590424436840922236459727194052577729500141285430031836300732654730658405889615763138925608992203660731245716364900876115805867566148932483747981663635789975206932006404482079739002061224344477879758999418329436780446481077643761118844057849916432399056485735875912683874062115358863709322339817537549667233054684948497554357042648768282648421991995120651577655873568686371853182110344171767873558602870243923764661552945878093915719275437685310841312238829566829851765571168463798337311085192007675260285739213550229658962870671827681746919028396552348650609197324008730946251756888132251069935298711322480971856076111467359214328052187263343705312238973143069356279211427121381023251409623333170927805779409312271475477894071637825658580598475127667905638714790052618083648880502543926116071292314713171041850215661407380387620705852475417968012014960016391114853803828229344867578588498165970078780523615631924941285564712474179696245010830979696834368725716597471990170801274143513545337932619589588951612790432549614927070444616141785799036583379853340469823188844422455056735952125873724267358943012242626644367448539216888999487943977791501946296610543289258465722429620597941239651094668908044926992388622603259077938617059165127620939241434273086430478182615186224137560843216469452517836462347303099431905242553881891423054182519830083379634646654983648558248988657470804260626426539230921596139582478631941873554037857844859931065915015570339863102215821106479424560265533762446989208878600459840715474026933566043041015677770453812285007795501051388325782493025443817134763036238265697803465767528607815734042698481380749597639295438195627464369664037012470225164667221819242119422857738323991461286673938198167813321485099407425006019789826637265470953011498226474659723298705662919354162413903163699566248193365200681206358560585293450443166494747626525036438879598269708951155490106542932349082688303798030541542332853404855186372982107981243800775470233757497088646144209564958007585933065293667596185128280716261196518512187152559553319490906285682808186375558944042734855350144871360446621103191569367700471738370100866657489372168552887206185960104741881814730660701652437538621494760099675633540029649337960469678088571696189340555293145519098621712576231902510210407814060667153753050781313594902823841334437766029483037530552967968714474744988454181059167177990699490302245436378067014099421229509486627509737477259579467627315530504643277726827191806407894713828692987138707236900980791584734168938480331319232281642941679838726044176751531422419514483308976159655854345871139713305356098210955156067579540206821267702319868113206496601595169031731277427774528304257735304530189348982810702415533493911767887840382923953065023153492804489097638271752428197517496153760552411829639629055400308947967015392532060972250314257007738744488382772833308367249411148872263041296237236433770758684740464228288565083908177855805082927725236193245373407483935783355090319414598177169707364922821099670084089025284049044597658191099133332127970681907806302341913099695783367153344710554234667071464753000372911128045969640245336644513587293010761182644073605491756211636500919566986725771592293204792348667435572827234049306206231177053121762746993915144868822391739895293052861862866302409144007868668220874712428876805314702716025849952903521323750777723122547017146099328328231960540859154979607698687685220543641046495007618178769319406394279309320346522205948841999663964216867500693861161287098097951185524541604524718729504786053271639563342452341063901319668560651498430208157520128555024570284316966855220616832272320519242754762468431006559409650713194791415019038525755499239671748519722554569812085157535214312264970184331057716486604478248936802171280636060586251543648717031757605428943000606430589090281045896134539677749050541647231480685752132013683569266973107241162788183211190815729183448344984726770542817785840799015691900109001517443870028094952978084730426351643188924487973760614455791040523864590364345607048587961417752960210431559110126509694661909998196655719492456554929130213954442143086374713000325034482697411082329215483772380742838349962650940106322569941848830168792527227162224387572216576825849670837586014865363987137017463035226614182532342301872154137427744065630456331259264959563943447427252249751209152181410183989814855826051508072371632031394842129973304437981461090122956290637244629306031432068592936019564799161142407189537465529959884367712122042045918367477961025796613506789124105831790945535227608844789306176494688922055003171962259266045189776903882570131324434898008763610668571182543973842793843415635706442803388549855434477158622568105053701898933316652971839082686413247773009343621282702871393206487714471768307204592678001287923929916006037796369072478289967468461460508522086070726598311084185757772828655730846695411762562352884834362419805111041222934489801450083571301984009137472948142790641199802313560381710006809182597508654656349887928211417021458287176008746540343007454916653255159751364021157028587205482079393242637333753263772230033845621801112604608929736773794081969798255963946905958238037762644434307314292034317032264429226052301672715324952151495432188349784420702420376960714052747080780031828153023841538868411726928844675857579730734219083782232188523028685388656980925540317084033826052556264037205644578175087918356172581991515282788908394022575562724175063886897473597737443659629862718422366120576714530840057422455646317647107794639329043036455334338447117406406503019458336155308205737011982143054255477962681892064612225224350167266056147237738054689610553474956269767481984753633257468037518597544455894952187762235986835947980572582357962332627507867028648798155469588070154277002799678423556050492084336171186105252299721253079787722347457912425892118427963619159213336359232900729436052790105215285864947090691843137866668660152887227244377519122897691614664464077474450102988994499642709083976597827593955954899467565730785156513417027345048397524710634113530400521222506322264304827671550945257328514422008076126555990058423898645218057527538137240454403121156481818773825031049034644787296104748086715049332387941919732334753966733443094105576224627266908685737509871887742400166338290983727408321814581843674831898405536443337913693713797420716202908729894442920801424622708083015903657082380082555512138423649110156477364326430835261218701421466787599794265095238496610086090652150493724967179924714557088635466393195642462205331459342365861362874838221979708933768784665705226052771617468774204826518987993978622861400768187488611604408667340199733001664644125352101914703069598903213305621350559670781359527598385112173024099161557564369381642525437259180968311924740274764342682687473705900140477963372857061829232991508961499911532151084949683302435225313293234992198558431422344963749009987291825246985021832694266494096760929831941588360657173527869355930307460160651832015733379267908775258208167030332181686132206954847897546602702487396520812124779308386525269291591339081880539316015174915810805939313106615694956857515444591088574705330047680958140999977306628690299519218126142546094771987007703347887408938379975789510065437858167285300351951901681221122967171329362979051981526617933574267934539771141050034148811127407579208851862908702559822722043774376695619949317595817877126014157635049095890965362113557059362420739023363877652672715597053397323258656572039037935089634318337708223112379932819505602547020374254883946867437636286640501125708818509493275919160883391936510615481389557123954382148779748741720525405534691108737674672589435383702584514907992529334121581446981903154575693280521255207524490484298210909252001280322290592087387484342652560930095425553773341982990422786498226420785834520861714764596748517629083183722909204518597655829860989385636393658043825958633771073277689372718523464314101537401100512986561992406090758920465299515494540169412025758535647807963650540205782557909614610608721697010945124877245201780343394124485139301489896412136016697753213454289832179910933813880222391200154743065867763394575464409629687781318426825743856854649001876289860868630257835914758293837595776604037261805244770016819359811921498164406306275520091654533543088264255343224125397642460260182549115246415533277392928822414018164172909648455682442871284854102428313428906773193465246000244545696936723772040796971784387076908569751073064518375006044990633110352578414248595757752278232428030984270829504926719654788955887220525402855229205037634373334158946353635501651463162721605287998600553504185723767155841005297388962168885631160272667529035622478434718899704538315495838448873202156438971568937644649353239675287664797369561648895014026168476184909607286144620145205121865294463517942794463131907225208889241155935636975005161926519123665530910452792832566946255493609043331749947035713523144766514184068158916965554127401536264970500241872032652576785340246868568769774976510828212330457734172946594219852128686236578080813571389702912875009954644561020497557998251310600881377631169079619181129787344627714262031215338107246671206833624105324984997438022148290140648654703429021793859438730049906615235806513546939566663845514778339681953154321163397720044337714273623601784996399622004754286926140232956268419264134673466327022327974210267327230750296673778707898983374902076088488248148788283428868180961808175603402180342661204830083791694885877893444523699258535857332118929836134999707281895918342244140385900413111577045427095637970232355407234405261973706318576776256384942764955285754050798032600183907498331602387807640433097737946094890851652070546840450645499508467839826850732013602138805951834017535945742974761727676348617340935387565493517629562945244543032271425121564207505696646381391114825097674261469659871633377479637516949321427171016654429791165048602164575436904583667660210835078881220075019869313695117013182473758568353654433280999941640749366318503959973407427319714045486904342448449422012831739266749996312809794285229065100995552318528622237199593865375522255321799683444966392014727138454178181020836307798012501641586051874328234177440474538787014999100134901461165159498954694854717580100862773146791928466591776663453639174426862277949149957767734199699942281360233431738509951224051683211385635678122046114067153141670840313591010745126428183357597707800703936531762207788751051575205043246152901290055301659665361962685505553646703618231045575054863601675795971474883134063312560358473436793172031162118353408377778996207787924458874005707309988878389824362387312370796230142445915013325717926814759180546576193332847989973098739641783224348757149024351192231821102903518102320019882589033059357224092092859465222866556743487916774059039774264336085344430651203635758934132393496774543484109200235355145623974033173511796080327412254114162229327945569444449859932950294412153110609141182351734813041179722183108337366141544522279225131688487120892037367267281844407518875980692653608394548980675492999656084788254958735696793836345844181699004573165787582045771546349551973560658610502242274395371638057563836863259537699494104915972412988457971120322848127176025428804840644092497360930792779695882816695950486104445516010621888810266999902603072402038034000534223531370151668435013740169045470793976213594701313110185124934649863106776509979924235347428413766608601301258301307500949637372476046307670081358780472062970776740325390138407271044175664455963176930968800786057611622945758350673571485579573184367142730827873831027550016309232075060989371067052902305883267041814170190572572641426485601948272622064882591991373014569613682084023301798913581656283706270861470176198362635146542973005143889146561794286419358574286803490203089585405376353350992727747774376413998670346134577087088921935281041342945031803374516812981490537515996047984959036280970549040008223703918612519202672628248797380365078579254209611141397370983228719215934343926079037927633857080438605712688081142032973265403910931906098069943351091908892084548990212996913935575133227055350686621977887849695027252001225067442359746646942423413636322194090950524191404886145708666425273955617947440774842635439612367745244738058673679874517063592402735857562570374135123775295338920038221923979378477432757910127305824533978676895661506607437292362226703416621827476052842307957148041342137231879109360962569581157950687111325452586526656316628203606258219604430701390242552862177867078686593211111265835935746772518084057857799362347105029660176817448411841378289386393105875105129573331814178681969523258194394270475778745907621968722138769990635073733011809018237801826505482969327356078264056141283659668877264156298167103479334201666650705658360327927213995375524556864654151927576734455732804664852966134696577368488970328180872374882687203611102886849226232003096230124696309898949981233184895441070327734319316843813058947460264524909732904988588820491518509757843069429749213181738693114603357221684439844271723860396347195706472100424457993523274024577597836070234827077406569955923138432949989692147619378459936799947313836504389760092663241867617040762470750451882206529099563638960904179012022935236304904572383781835603245968539628805759179958648870179009879734825052149474214185431565277280899075886846373557382406872452100089971275227893651343854258823862408199892848519612993081187377792594153947556346647691900172756834442199027999212753377980634155335002400918505618463977087970226822931876512920248129629331122031489778774348226063086325456618387667161375754374016879155007321471748101017577769330369485799125714144000290242742380895924826091932210684145028241221865942600152443499515452681063891617776018086998961730218193734243226720732342153603405294767740456619930108349351005586337428675988052729974027399599348593510318785140336477596383975152649007988060755550035039287579167339839961972034333407526494115539368847838887100479935371867531313388246563867769170272426544976080591576849678867077828435554511972708743453003392602249059771380747688067172218816565354374625858350491091153439559325233158150287297587365089439195095826210642506949110218352297990648027386261347849639079222521750942474063953772321708262981715892671163095555019926655587414927124789731179715648182031969536909170011522874856193723012502471260490814476795727684198941108225442350564695591595393622545602886041326730087989858730797978281065657659275696998665276709626448036198017733406657205883970101343715107280498671201315109377284556220145920055183554780400514120712302087669430739803766873813941114955516121953330405459504718438162918225070841830081357397710070054305818182869383610006360331897731236927290128178748732557435069337231262743639147774040740501886575944393496419480005501489946827307717882177518465826179310179128713312899069181953754941137786754401418920562099929193272012846687848354475351675953810223272097136761281857924927100034901114679214945488522281661802625113485102353348181201980048453388729148517934751722413128780114530558001959245088267793935729729791022949566912688248007311490482417977154333256774192204038240141784653060455209982634056278785908264366701462367499514373788426842245959352522241069265662402605828118511398185537065586042005130872999547355482090326151667691748057655037666814859441497338637561120275370664795861723267787093604213714251969296641756857435294306149539111299783247643858349023878417910705173918424176561913779804091543393606319282433968754462811352516129682245751635803791573707964768908869662648834336414908220323369877782686665071078458533565506983625760186141126829488719296199565053923410729470154501893127137480075172956774456618350238580693426014543896449965510962047840878488148318008028451935021829806783374995898871927229733684862155998625841507460841986743870628077743053831418468164252580070855341859311787648215359720245908187363838805952458176503975284470334270902611164619042288237854806370463961521707998728210770030041397664234712654694191345196293966226775432625921830802281696784897600087523097010987745580656260040037531579741109354937276696202708043916239889916060423308521149200427879683289660703211024316325190866507820324147104934465716058945746674327035434479635085810751654959386453163755912959551699431073103042698671970613564317942966259012621116170765702887234056473749834778127784951393479447613384099698209134266347255770708967340558349698414062836638658222351374724892969284163667243302398881605349027887222760089638877900727944717646869689261838115862921180237740585469028967651048379274952494353988832973796349156810681839054649668623088543083416721522441140555958337874625664443275365906325801162786770822803408876181084626221874965081318486912309617493709480602891998401588922858557439710581813656407039989778956224435151557684658514954297581592647140358641373422864878206953228145729873249704012363491463796226431662542699613147561597395785748758512147519849031192215809434697052158341937497248979589957176696569096583083757276350316373947334959584132564743551385063419514151675451725814438998211999914284840709657381501010484270735940560448646974606745796328282580723345729206153485924888863661995583679910881540714602528821189959740042841997453842572665468138798363179815977815864082877390609638780087346090726742426250207207749181743258867684415081511846709867760294633973666122192770330321031160911840701354006733696260663306998595842572272988254171296993923170469140490699612484219036131129037094988809352211074263411786168773159984370910903360552983290134553873778300333462751554740862570417352972774004640911636280393396534979728969655535865925406642911073210783319750283798854123576494825466878885014460766091980439573031607583176446478000726909310899035828296886796748049480808465416832866768757194583596172046763367233918287409844011196232411255600215924804642322188020001292485765141834559315812890129706301084338851307166540664857100877842518913026634276131230723749165962530830191330269070723502770820161273087462115306928131502736029406074734042387249551389708864757067425393910291738070833514590300223409941883345629746322669192550965049104609009867735362733979821661662759817883702732159925129242306423982862507845787141893941671454710283970890676831112019157860491196900025507742606889410632279525214947955532946849260880180995901035638119211524766853171961904031793011119967657007178452753697817933414341785105337183355128178219610743337495173978131633977990852752847739486051023406524669792729274794513106034353579598677528200433945693975642528152329602918221582143139468944955666919237766544133681120665766098433732346277721691217115436437186429079393754363791884135969342581878601015201608829038487959891453489027295945158449693991059323420523185296519193722961449933010222815609513769165448461694523751913903696311068876310228204270096399461002191353098170932548443739464752482727747853097324059233680190423929775189003830276248589432012013333230853737774400547913359334863560090202426561860972714245881424124784962782996589318239748278984202615737043799148327558843550916439053681750109506088699520304877437476831180862294635732118568483567808314195597729658875915356291534772052879843062300681416329142151574271198428819230930367330846550702656826197123437548550289409944819927517028632024806579665699529141660920104427064557963724244170851587338124919183977998824480442400463854416670921514056625039907382155346433421829446222174623072359884227777135535262883589289937809661402235795590234909787658961288351469355513954270875882337216663605797304791745125182794591325015563166404352951906578969522729070035384448032799406389233134154904476682028871328468584815851225916136148570994194024252759663888406573541600214924259174384004575290907536659545745195880374834000018875908282266886883720999177356231078009498591016156552858820568843736332394987562025142136576700808434065679588764871616428493051173566091971177218901839460540163613238480520005055465090283473819425603779677943859042646641333579449400677865046079745594370480134439101972052892738848116672160470196163791768054254931484389936994982330327990514546971424482463022238917641380700535157250288681500227865765953634440931632010419259801165649997772848854428285460662209156186982285258481060007570528620261244793164886811991620668617628717730497170450609009859593266994809752710829541190060038629340931044448744719426556805848395734578330341481770002549908818688140892039514246043514069342618559934013123346977182000422186099701320812440944121441174151561936569252241575281903844946101728639550130359576103330926057141009905892070963170771128402597188406763844831058892625195687547367813857789683067207593573561728514706743033407568843579502712619866863422478169996571000282636912996537251642514898219207745990566494707652859589099253129304551845911761954539192502841396141762809384621645258272515653798207851428531648595990860181462124351040825454557424034773742477383719700717891543860992597353430303770019148922770906828210612361108643949739919170092117675024932167481467673078427425135099569701318766748003700667968584234987825002622606256023708886577504790718609370346879640975555325682018513593188546834427975709631965159437036613825169684459650775295716053578726903019756473467025074592370681863665374202340030554315272217867666914881530823497868515650864317467727952174084822867507250160885383343643399998070930226116125697151386707895389326733818796842920513958317676575431902199064311685451111487813337291586898326915968842735373145482481391448156405112033656597673499066331285758921143485732366794740939733306568827750592042447274529480904868408053200850354800635806034197456372112836501993752245097745145003808044872845050094392153251679730296590379629966608399095489616854997048033101712013579497185610492761144938602071070985807989659004426287665705437103288320678064656844138944978288322186038125650696062802080501412709540762075576394947477197503915866063416274809919596890719879761011742881524481737600100897785351219606461262479747532957661941184435207040120801090059720035247926599338937194319458106137979207159635515621167806860145087039075256178500313081352320075339757065411056736213880785636409308106934432728510342167594780187885748889435602550934963581581909760125422355082783481654354691983465530060787734688648859491383494257557380977133173542081720914832220860146787808720976911632512388742426558600498865555143218305295972806452513143559915413621244649818339069456829439908137309148445328380121472605219937471721012374859590433717388004074586507005312240417928268010063612311890755490949274392732464429000433736401926907922796043546916847328654230779759815252035575230451311035354313092489263219445432914456753881441144606428903251046214815159734638630234350854931993596462083982273347746784757151438238770301187722967318862794608244205718910213884158441361466583111726833259093020341776706759355789993460602940896054641151294268065448401116737414350601345559200039260801269120601439647859523479867624452541789197234116254841383864747913314897590268819816204490878857123379909841860864332729261288244872604285683806087637735820614831993409252512400737578812608074528904829344790526691808521389196565319053562529632422547214013187094390913187273216327387796014474674527683897193940098058266847291845794420543473744439094005626112931305527825859163390207788068119049043628095530740833362002945002570760551685609758685873876133862400721949169350635082469070569152440730284374830902854092005192746967357470766840322127428371353381517873960171671313701574068828461204608453657383237319882315353270618526168792001489184938666733144317827771167366020517499075306447368093722133998123944699669638976080219700594250219793231420530507159002458991988957914877674955743247742148727768162797256899902119455044071747271210214880689290476587406311574420571125505090869305936996585590631819440843250047293784378043524586902251462295625139995718753129222767744664461378590201366578164103737627847301576288701329394553570264956930437947106683901824445562231972426090532553749581681291441800361051358904937065892802962553328605716825498896098754086154253721546092291407843038518232637874258049405804864916204806315207695687518935751553702256976633716490610482157008131530347145418954434178549518226317381918941111535900486542634663333402495761685005926664658007132495150888229247303275960677948833070997298396256862148161250205169498386204960682834231866712052650973671585095915242857962389212956155385923164791768238561996499893799626382309469589277925888845093733449591367717598542004724507747844571459188354686871790910239271800771640404726230639547281134428883191664980793147257934154026222413542336940088720564655656115296543912871480445756112718757678484462389743034100159012631718747567276987712440357224235961426341581092433585139352421684245678593157549600135166706656925064714302455836250005590104489836849136784583728610242817553980027055361997784438169613886154838934191048997124417085936017974020297548180760475713241789720605232612188756437266355788568070181572848642616980655868434030224257572361194305016526002693879816267563705098963223933747282716910307742513647020789904535838245855659882467761647643302818309372378813769116625512007575088885128703543654262512205818684137435354970644284340968009137794274981818620632508395271089090905645784883917302226943601545183961010432958042662810516216304829059295892484822984884161276933770579785033540814892594448221856707177641845051748728126522348776676004637294715096718869684172014523136901695845185375621474113588724137067620235948605391925339884591945519498582172708175490114922949424954146254241771034981713553361772854042178662838566998979731555145272335102229517519999178556656847742066767932823356495803218952025333467157334919349997564633622954234143788759904133499144245974316239718821312999648216529310677419704375274533139887145437160516278544492813784771298654271230395555635053122507756643225731725926156388675133552858047230295649695899338827183011910785836477493966347888519567029112374124865541146691077152848106990306825445924603576876292462298330538233077661299215956335164824600340242083987366826973171592614404981660949546778090616176028555158420705196194755841688314100030085666247953115033177577168322780546668865175479893975761624951406089911126993014727102732255512062021943890142393021535920625007854313567562997107672892938673181792389762146124175987175155658134641369767105355846984680377799363665801034646477483891611163958504823522014783399121996695034337147096723905866688581653504034616521569422171512923638852030404567293866591140209391603758469056319503381229993495629866579243810435467627628592781233077056026411922016339244527162344261041736302645286114382069385651340387256317222589767822623290739887998710537850882313915196916538788255799170117447433373742977832427305820386747918415815727339631800536649992367677958386139224923518685308742013401356639179497964589592435114617544220560307696494624927170320593624244572111465423084931801769754535847625383976197035525433413924133469261285363269110103620302949369912219981429697966167511928463679972495306431101683850642024142006143671037995220549874935256198949589434967223077604410072284887493348673638582053778021234234082780319215765887579348878578450153752965422219246146597590421355794547444910625254821071293236655503967396044671748818173680233516038790600107712038993454403418988059616039133358808798524780221029646215546018276011950548478335511790293562137195308632416164400690890388273687659209499840290878721762455744829477469100198095561582240110436920790503507071839788808409035493335698009089444316725273954410111718669243529300362989779403913674367637467339851655630708044532056475979187330616460416359478054523109994398685099296863565238719432849784406214287266722406559934332583437031479095298417941113249468215520893266320821458642935721211827178958185179299490442524226690146277330067158670184225094187230634697850789969628956035965421406958077081955989935322603340434903898764386104516697305448620819499296914041160385430454994644298913371975324181968448190257727899449846072052225391692650034945864864847733966141953108524675977623676301585100031406705856711852936981813182408343322115899585336598187231932204707141257924313776316950750732448814407386798240378333234499431056153452910792240220627141863919559589818564374275786762953938797120920828279417384638255291801466896598706974351864764424456901564774825739418857753437815529718340450215904259671880837157649681133334735609370949258309268805207526690695146252493827900984530234889260940619510299197912703096124509432755936645455431827808898486528484434867183199447159946325118247036234007577400727996004034609047169494808824027427425351684892197137728401170524750871378870649920204499953280546722495859256451719926074502070627527351026222620559097268641860024294676558064343126595163558480333265912494314668069568756529552645083917608690303137585209026351398196227828604723149873991879770956835338703018792163441042287828027639791081093781784430930090660759916495525534341197550528622488032356338438377844527251486826333703683097484141655050122091119566417487504099994369991438816125733434745575114688046395833074842794822766429134341456166079158839246065264004411087792612629847333986938819632772302085352438835287886297172038644329593057544731020472539168288512974734207462407579710681439349402883489572820899350262810772091054373146784681321744803241611493083047719307824182391865805961954652434292303807257760084004233517783094021679781246861991198796575002271647590149892867705910688452324076827764143374351033082553406407649341003292236172657421665914936956428441788942924808497146220869960702391868414298440128680538007903232671847083019547651776503537424877587811999596818455815244345499235570660984095037009702550918738004408413589547427812676040723205968533311837995125030015021543337067439128105602254370055541017939902529834611492133441521732337017606912480643086489836309157562174308432620348508294894310774186356835262578465315499969844848210124799137282263675123728684031522752812899474728815006893478221055253279418306020429976437789830448857393365765391996756996464869368651292012128378426922546607570705026397375464065132669493109719362557828556630792516664854609639307222079803973392773580135980821446225262333946703092406792252669523425987769221286745876795486211057470974120638954242371660985017191874927805972175544647745851697943158191264932105343724546277311408769408138388982058234158881528750626495826896215708006518046320656901485906232312269280244621247087955479653501865078495181109278763116040120887129866087402343790705390641519284178233652169222649356082197499042591841649511082728743310048154138847783144482095813876120274400053065635221433519755008024624530798347569941142821215136877778976741455622387298875797840351371938160472373867647652490879857642080125205613372818509477182599810644129418435284978178220350382733538672702309428626756271287308892466074247885832318956630418572101345187883253563358691479311263311770213466414138060035974613987898943817338708623064147823421889610992525293766582766854336688886538370077343720152856368239593940986818073902495120848460992023058554774510068049966587918902963568012162895557180318555598402305499484101589300324953676593693193592279442097252577694059274479226204667347307688119300512118647117816560620678404652115426764887893559828078433938238087115512046668366605952424064855211799064810067317799994045146932195795481191497972032674819333314756375670210871864010605301028389209876173883683893934354257920913130022317917149874097249891114157073535465184316636532466058091903559605959242165856590573563991050561308682867468392018420698957482840915263812768763661135263299905629491016887166758149161735510791636714196530738870117830809847414777015955998987839868282559282470026141440695588381035352677565407966343633416328401966704975226097542714084714386802287127110281490229740047801327401036290959020783147483619458854219297834838970790358596485966361770523714706192206131244661581115852557405209180139293060665542751133338272877452831841425493952297476034940590351667738524118379877070967961494233800366126009209975722679046519429726644153683601373113074909369670153412313719801052200515333779716216603401146862793405249315237892296931913015881488235303843693265143295393800953336932838496582416786380934651598108236339146988259936567894991548059217710944330331490353259855948109438988237293171854855717742275334535979503066821539956778549020715039914996976569543933755285977348498805777752241147287670681152175794355547145601643177601780711939631761800113774807962805275921444556942817700623633086657422735602422280058109225511064529156669636702369243941514436382544504139070481599986540147105956605187849943767461883502976435909692301854258917330559760443712428425582322749013571056164596207476826889770904635093484944542876541999066019639164010230578901874512004947244591234026038447091024867064010755332523475510226209623166326751081758056902160479524935342276398334211073785038826694468250940997079778531193845451724258661931237810892611739399219258681188923654565727052304547733446447711752716352343152823886468181908250970467794299849154357562460219088077276978918909852224448345285737930439928745819748506106606011439362830655002793839769388096517717363624320999368556043050100122887242682672116391266064129354101955532703703234422791709242694371503199975896518550638712858825340403444255838276033844094993461175931734266963121712736696201792017560012769585918460160528721859674247943984826610124733089574795149941040035729986999461781954027168799061091255825459704387916298726446264376968809967132979334407938058857160712657168614997736469730290593348084579224312066501602537178655942042857507584365768986470463387276039745259304568910283166942962425877725961820991159827264316303596926420557072722390401452288495454133211401455160667304455244619246562422852505240934901443737072335626134681734501240843768686349649333263469664945813362080585630250106764981667226659211643567603091197930781543114471224576054083742449116802162187498165919750049471776365821743568111521175861628273958979768528730275195929265277466560866676873260990050974580275290263702773392038850022589541019786904909872296496620936864672723011564457150327361467593439889155412792783106003934261876551490420314081475834898878158233020933779122951239248017288309224304335157553568503137652017369642677279731807970370649569023812381510673047079564539290564268924799624016022297435921086434429719202831585452193758717594360562463898649935859368056082471690895043095959470110339870346623355202295936185992120295433809832522345318072961532048666454062787705041903847314224244230104722022039267059825251317340903991980288391475053549704163910313997919140497862318878295217712473577690082508249704213076433050495297001960593266343395381266628416873679760288056055111986190841922309445500531506676516618888643310863605039698418377709959877219845281210645144640775190402025996708969014489402738457060801167029580869547912033777380040430017560048029673140250409613284002737091869484566834336118317672603581909154414362994826711214885049847408956984858867448285306442611995826320973122353648909796990616654509756787460260952038558717498022172672377162598090912164718185573122908286383958433272640641043100276929641700326320390956153407380692417243786477663758442826022842621384405674878827050823520647983622585891503850621884258857994652955991928385663934178518966440851929939102254401641828894877581496015495149304978049883210309719023040305381513889873221010650093335826478430213343445613919654950515364324507776866732320571433041861058507859912432111085205278022520556103219448983063292367445013550447089548582033885503780548618739444397289536903125487441586608152860604346565552778437200748462197120836541761098869881796557566748066078320684167420013279646573269104192461981807106849695640055919279811797289789172165387318419458264383984191163251410586255972258650286269257675197466427666795847878199802653580089356140324171441618244341220380596941773855536939608258637722090471147367915695716436646196448492590077753720956193131260126890360386884189366351246417060182039634780235118109296922280372909599927371246773188517542130078631823262501145537718824170732441543298040263964219485393153368666332377605592199610031797691469083031312059720079737479435682750138426933778526889599963380876059342889190744807813516548057110611762718679458729436923658031143980634418907253097514953053515598537451124911255796749965510178409196632040628965421299879071022100154588093628539780094342091846435034862710230642188485029828939881767691393387234897077709184572060073471105246334347763779127012435612522790147649893273083052638227945850257294929293283347674846332290797935880540927582524067152802638539126838709645269862270786428035119517527686450983606536508089561445746227890376518449981015914317783300378785503394804263880209427516093781044200787473325947718953498636894211638759420712353669551633802980443115860174161015821448040843032859624333126021348583461064736955271466410587611854125037632179875084515207397668218730571421571091541536357778860914692974775264264303447026528296249224507754192564133389176771090723705928703525194830039066996015797259472945414593638044116757768752486290463867949911316236084632836529666941006015980659787800241836003921311713339725261104367042750122685280466507580446504255591635823986806883283206963818165393493120880389275056896896987390621442893548830218283593897158273287738810604004218225612663898522109490896785847222489083533947794599612287364992991566227363655439024923609563535816779500654687426505364966507041976498912570323883475970920130789945661782594674117102373288824844512593554252604298414675394707601114935248004050897061417574353265652314354483633325698846842266516402814114740266809810899858814269764624647454828547041076291152785218579961400729318375778094627673249481474845447028804736052810658679285399539875646142576585955533733186369913829445487471249717858521486628353941425933375248562027870980760084977214836643873611870559017008600248601025553775330946323780135391867036706386539216561231399492072374735941929267391950668053158728210566553227573087614968403419570352652629575683082252325358855107824483235240363363323903435737469874783326988952372165699963227182706884429986701130342151515823036988053249977484045959730430742203878771557783202875018404283825740177474456179877186274650752225377994662307859784880324970596739683795472697452940344325078505042090346159173559385253028624810937598863721557968866649281707890096556267052800479625797501780363588763898413002213396196291351385307157577098168514227306982895486507440674227254686802395507759972147222631796080553564398985771910010390103010172878195257624719195488979584613146058408411921421563717527831351826000443724882438984812371058667832499736944603027900711818074414376193573315166645682392996639222971716354887111582735842719936907390101924702565226648148367649131018361358429808763349177614074039851625033994335656887260264301899752109522867068681109927355840666423216296913397022912329115706205970622701191305070324276186929226044618292914530007111044201904723874673955709597186586721393418242640174926314633288180070763276606811208750183635447292514972619981806105230449912806691963603257740107550307303316895639000601485843653999100249027734178533313988601899808674911596604749923688169667740242953334037555129954467070097886922504018241660648910732614493649034460054509672574547827949483657106485153540494999255619514538554844897078677129820227725820491213846652145451789248863780704608030943618844660616651870763468374126666406882950492475794721284787990847116381915550875181794995101249052289563576438529840936971475637216278560505774465306897058229993853201124610965612050673252874431043361971104958465436205014864107895155895001348111631591022450042934714660940505224071176619852990610245364523844348617963126350992366905456235415075943919722013557362096391351846145992195294740888673018012364023408383378702625941114244528271051399867283983979658951120789147762497999028158480742839488633076034192289559094065307378248012142858179127184637290363237160228876130937398361657935103403104523896987715382692974407828801258516339678169891924312463213897630263224114356874727144490138163277673858562493916661291528589858485812064935129610340719557842186664733899304996410745300775949998524109375352296626233383059643160020472082764503690056779141709362051453433138055193192034077469091440178716492912032848170798056328262853733460813810780834275241454548998825861293439396750522758469597538624673316725954877987458303497189221485396907976568462445140124073868734554620227693710623192075738567796561508957644488496349525961794492275442151189725856171969072931419737897502705480316478549252435636020697584499339455034288576428389328171175282834457984560012472081309213945532952806571750732880066049691324005785281391675663975685150879609856861174400003498690930163325742414752102217184973303918223704903049463778035126025728948961684525574613863937979353244182220477833334517857464936970529519778686120532948391833792809700743317365481066890892570944816569940652812403775928922971756363251516727050084616538083629288959453824708326828248938532039912684959312276876989211674404488370401749457138770541864889279465407041387052549538258798126204271857996847631506977507475865061287562828061889037646193525084749338766000004826722432057237765988846754081372009696071535207267010055283062787170023334681674027803536196680288592923743062179125464340025944197558080839076388946698127841578712923236501829884366607454941820469317735274280123322616767429177817068334201478269186873714055034074047466568167361681611987654841458093451694496964769209836040449349180197576429779740796477007158319139786278167784531428990733015154840992768155877414543922815501960851107169887699025705355547265761805277455878659164334611164693857611963206696160054755307439030193692186616615569739926164031091806892175718506615295084457413861861218316854613898644157925838561021456980437652844492210850499172718767027463055152053675565504846031319145565158430028121230373365134403856683904493588708379836091985265796023230784958417672347436108136387684894954263321363628195440907348494919820085306095679173469775215581180641328973754769949220376809265964674016799349127629801503603209139743741675141233439084980050791174522930583629620641843988613517202578536189001016561657046831311027956146591331163333868842106754038824976310857958824679180389923505130913695839315170013104571114818540840178426667687132389396657950766119690068476291842646608909731305587693085346747469583089067239405873599555431080357544933778653917945437621306017667278060506463794145914583771487259200448820945564402756771077297858077744715746017161090936095016700291762757849502241581978006996822302331650976144685468973731311098636487950059031971698375776113266293589232644430260341188993827566662251449016424849968374321885663963690325717855950028424754388576051964633775368809304120217914551345553151694332270319247214948927442849382203757692619803837941797183804464025744999550006974445756074987164553633340193778798523009959152455514447160971376988020818426584502388447889240606167426093641165286582435404304242047898092953551501462288092079551026965234330906133187444064523553313805490940523276337239775965293392122335852608756516704370929508242896365767876554943185231711757303786713439659514262392254447260281133341566731735555578625676985736083490351148827477439421456716936715804308971897628523448049072941156510002695579539632709299422494895784880263384735745388257892091358941271609591977096218137567567957260278283289740282930744272935373643029410764757633389987003809049834868251214197984166964339781183866088369740340137995123164882473858433618828472326335273779907466757947382718842845737276828809533111236727909130944170529570668992435317882237179623473418713892186598079573917680755529123541001663065920548544746219150884524164550229502277749938803553535210275226570901658493708162293621170756681003966707778352225881030106189946354202329553583321032262906002191937777995854275696792328456475348893917394546407944088390753198404864048639317968552860705878615332018871415976882383735190577829633215177172817926866468958682543151748257281012776601864530634626017229253110107936393146331797052136596319060127858213137968125244987121812981426857281582734362534946268187678258084519591504409731449751896206177206121467976732110134282906873714686381408836778944808000738576650527700066641698937087132727325930785013332363729580922333050429316125047763710582749500251730892111546314538781238718705880739390195261581465201449266852168971539419133326633189732046076798322199376856923211146841826913925161518080468095338525783997654345531170180984001588646155189636838352285867378339518624411242491419914582007033153400048428284576091422717248820715732062628498009116094349025439820138033663763331787934274784074276534442293861826535335868667470458210896352065998332646553025998897912554030492588642230082825387126861795024928200753743283669254178331154052998005005290305317101287471043707666396870746934284907444016430297034906866808215624539845586256288601311505685358550629591585404211424393118078431681376051531664020258398161385325761530660323044016573282074260647578068381707151743734235690009003204948908200292089397499191422938816803715627585937072266950627738953247442229752419820553547773285009420926093108788769519747491359536426779765642915565143907279402408675384944815481370634685179596069873897150114834037276733886586754330451221163345130168487589815173721037791396200544887107943546638581101644462436107416435674934034354923623671836096420820773834741127349878328387966790300467304975089684398544896864389683692436397755754305220157153981567021812555712288076259506401942599425113269654846321205345623967797057795949117323313599750386494940929893206888205526367199285216107528289812940590925004670287109426561650372475183666266972500794341105975296102568888732410517788987192824903785046901701237435265660040879152024558508228645860143725037491021359011150715634663053382541321651163976447273652666719435830253078601300155828487910079050052117770813013958395764318532718795803398042998791746162606984903900039160741183842651551367701455485276444110434412627902101386006827662359472382696467860302540715812629017354408290027121954822433789111100487030052968412505621245011061559998245472014728225984675633182445489584362146622764339951003761553457867217219767086147799409487686655292383688102019824207391404091462125294425085243320766110500707621165497998154386537189719030099940221153340153558170592932881421880973918770723157577898183499298779963142115202366819677416135763541207637513146676599543243393280622328183463864725185041319477401126843232952938282876824753478157856896465699526692324034826171375502166547523063108596498420408725318812478280902228895209487895126164171028078226251516063491173528791596566859782191367978330321307356308811629809789026787926587260112944997300091630146233102080347810029114505416784828706439654587473322144183476944609859956333600494803231298408839404118614226325386769639345836191922960608788227462023156599838650149061254442852691584555858775989451318707769166328790954680426161631473513870029985653532235223148787524766022817862673384441560723092550690234883209964918370426109631286419853809169479162945795648896290816374523816619111232845705894435229069604917884177323975517925904255217393205301912311309040030182290340637912658423020749448140132950439157283974189013913701004259968321788163815193695302253475277817200629025818726773638691856992870816318929430609686992024274112295417799374323699447656593387371631306330412632150624815442582016960044937400658563261352871899181860874470039182389965218680057098139715261280138501512232796887881032147677224512411250940021195822004456861275889963630506746531013608728131368658601149270210240932690842168016413867934547282424558623890250514430453919304903405028420018437144926564838517398145303077010959705202038166569502774420289404351747349047249866991257994874395093911240146968270525388182170148633795937115781778844799597995268942290578173149724205786867539200777836954054859506965685665141017054472822221434167108000157790261699169720014801227853602221462951526537764685130842174427067615726382930632535093994960494025810639249017832607617037804168602315378545285541238023592221870166943938727876190789243444761736805603881241890639982681976674316902031682591124393753052800270617606007341366114653316973233725411992291862151832844215301064619304118866165234039612542667760635365742057653649566590923005717051539923993363357877084675769249154837781333022382557539852796143392724016525055217014687495632619742084107800321915246524799274694018013523237745418167650328320420814002030472939923191323420776604703011065199622741934000183864582853637474216155561594338577343485291972945517557147980349276230741384319370564646002929786373093852019719936459943114716220477413993050261260643763966628063615847222290720240231403333343476882975818795191540854769255358438807966898055343855540400477861652541088768054133308795240390704279810321253947750795778813288910818516560428969031251446614686084316412375824918240007968717023686070971654028019844121890328643478053075531404000760849385031151256245389137860566874569922937181694140488452804689516944311938354365245180333360474249294195995575373905452540824348102715965051249262944342096691845668966670223132277722609121029367941082720767935560010390179796082082046254708676297055961721804009438535424287495503612680685453808974506389162633050182426491419176421213541399714329612690035550116937083857133198056457252833282149255607837544437676407502171029451967553049317751677697183008311246387113111087596113108117296534202921538602474408574300569472523454050859475463555447837464322226302788900253085177411667453800151224286933287602981885371128994153453303388973334929983505158181823730418245306997418299887279863517390973307206773303976926306910175322364979487643182645719362159987288649142617320070510229645579263431427960321050384871906022837338555422320971876043916108376197491494331896359109076119476166878928134302252207060941393419429314603628041359748257955875497545967847471145627641262777398472534542718297061539864945957774614355600472088723820077198010130284604792101330353648675792866587673363783746584339637561378866230320873634730362268622226764185356062508641936018921571532147668071897189432445589299596311089556693343967584735476314398241876352309621994465600982251411211134103688127366459526138377864394578345167163361353439266652007600225223778237821331588325659839662433003979196520374809798950879018397747339214705843137975059689521424465854147062271391471145965091435325078719733249768334946271922966991518820842996159356521063415316725803938818078077684921582333680319382222210159138190417199179505977531250928753779413546741050174639255190001684226970391461976836747993111474298669103855501435347698213927561420699393139837952660589307131001573262023961072801308026807949173902705701994839178055147867232409432819165452262630198152355064359017652852276602059842796934893721062683421869065653953714304429401868360120993387560494847934974048893335027418833550147789316250496301845035598854259320120239186474333711668820045924522706709358114266851863424339262154459119811445141906717485277146498401007788767338922659604681629737152079212000898835424049309490275008328000184940903488370590944926290179332589387686620982887267960390182242322092465183232196845373803577935129301780170368971387887875761078342522850073506087709971458334807369580111750159209924615585160899476510208902117458832888356353266865424462586974495189982640390205661158434566767099252703708698620952278423973040403081817171022870265630145370450923205240889685697486277326779126774342213227088530486393635232729657295345802795997179455649671183969452303942839142907076937452951895844326948700204299352891281827427756756647149987329806407835608536738789328418321948748622121534027534507261850497121524850854431260928172126975715272774933758269682480602377664423504748948361360223424463056658762939127153983032949924623134822970725787769730957580104142654485134267878734433332082071506077789261661319960165837275996206731324667917239005822717473328552715772943223488632817439734020924962994097224837527803195858081573063851327853011690968139942114663304181972328927765497632911148265337617264101535654092124362364751350380898085059188129366099360268226138394759784924896467371667562971819115509805404840863021058511281859878204031774483353795103675917714907452580945675379499233637551706650918770552333270208704806033773178258311355894892739352047914763232552750808405535070666224232133309484784081386071709112612261920785332494257326615422889422187653584760729602720742655873055392226421744135188112469572941846111343950470460533190136068198432634660203410694282855627017654189040144797241152541639591990716093733086711363329334643125084745637194685875260003387703684082883556184147030897634707965727736793271277072748982170694582177969269147969883654871403431764927122440396481242564616653304111442363294389541365869838535438815036302977033347843901230398854454928994474545346077331126724309880768061922940684212427032859120074315715116423665634956070681446776333736940160405278771331164615332144415891853844399400979785654711066103743945954403447050309271649860025629082653921491222399170215746554353728568467629262937349257463193213382169545550482031693565743504876902721025309910278452962013746542219358641514808801090003442321192889320696035311314061982728454727396207149981543925520828839071677206614105417639387611454718227457631724004986693973522921159461083060283489711877633123055008022595271743998642435010892216581122671911645788935569290705129085670581915121388559117349848854641537084873771564433866072410287417705875196420587245863106708508448408621688693402894556873815676869797434402453168032888733529070852880764091143029209259140251901134967852909575633750875372567388950971139704373202205478706260572824228934807708361697651124604073116302290074582990815351906827982242417278289479112966516316139309308182255607897326448728150350201952565065466372723210611854254076987257002129386772371979318347608557103974458604646794623609034631145824147977496416054085684147605912932233304622299678879039455819727867105946620161785072862502577729327321201300052995420956269975911801107232512940491655826987143480456033258263477600945990738506195444530606490531034172963853684141201814811350734887507716106937924586170535556112743759325856280554578241264814788257519946622246325884650410107160640005979810882546884333689213552955463867886087410318419985048562511062629528972203419096820592206769578131379466659503103335258841288969518183258268927392498355385314065466045724671822857013789675846146535456520853222213035445817023951150723774284189486745854068704010198747055197590117478656635465196923552104693108222758905143352824317930672611473520962776660265202472272666896188080545770148077404072117227179299542000038711476285505609723518842525539520180312447577060718780351367460343905280949672697591708466447816794210272169177406319056729914589254064971108895258458298485036331436271190075648956809520004777231456317647519275444185635006322610978598152554208052150593561981403052796619925629885116337743645800605860284060548978913568999586849704412567795662039866623523731695732391478027487910479940073059620430097965697533080433036298874883422724145537469171416794792694845299884789980598543013551225737308344273007160028324989511971282897414481677315862418702195537924712918376899383522124746125197674530934586862686258621736677445091098956624118841430169692225549027054367767548335180360601466360951668487083311483010867134126673743396401647951243152724395428371362241460529683483073766974733518716436805211758822309738790759862918455727460636928995237934331013279374346628450800024671505616027619716010679289175393507594130904395435356754442739420486643264267262376188938562240628700593691437488788829685834670273015536474185753720213548831685379803638437450476499881479836625291631991818271832013920625038578227197244863083595877695621791520395688392333148718264959064687096780432269470082271772920806335686328562340636336506311150362759825384057829683976536467000709793116451115397044127402153614302302801521339393599874927478397804316994849450368163317498040073769366090721429325515660242301903905966956598344697264474298237727609689535187788290432433396098075813817312678358065473698200692910575993436622018118366123655270277830569434641234728453751449185083392926304323052615543149590901011126514884334133910502723327434576616183150437610205980297468828097464084811315494971379710159374234406875075025100157156833236133621416763325502377865434451716600180988030117176349488871813580605384441552390973388370549106402179786270308954688806929866366067622154128670199197086738971202834133915832198861937183868589593796386939421197022859803243098653992649184850065809259841328986028942892649989442541516709393713674375937726150524677085527553824655981134099333845882236904276504750094755020862587480394787182085026068024639716397598749538314523876698119778871944182841432837663577488703306955675890514760774774692818096009133850164506052131195811828016478157085431332102384041956607148201270223627903266367278643866714656227214756726573074027551391164029149106854794664105246037643876666538989982302236187598366741903017324107432934275988497476662186855920649374998122294682051560340301287680830454308799683924528401224423249955160034808168038401985578531888393349544235249088352624002630341376460446287166973285920269088238272499024002608388616067541688909657030641771888389692673863630019538107418829769834685100348751036519738244009895010096363140060493987140978014185755240556776101175275626802400859108299438373399214165929983522161790983600032074857527165984853211322611264275759140654177329229314467950027119891099217211643746041462868421679165976569182380456678118663081214823416710903759668099289077697891396489015615544446552614438949557564657004055575890134916621089308039372239709348763056480519667658551038528757387395651182891955062375724741183047923349828968509366374164817867002584901081709487749281840890129240454276899592734887911783702820403361781780233330304041399396343008983577752136268235364741987183560647709180247346477982918221966527122605862035412712748972397594135653408814531228229257812344024637499210814646848074013550216156142952897472734208308488292341114551651255855259123542363165409227197884598911759922195228818138734250999760442817086505268510520505676453299662203390759129477526698319922121771196283473215187260830920152286343978721272922329398481531226993100751041019390392952732144438999055736449918362701950324948186227235205749103229864393441273455684629405234617118315308984614196550712905894826296819829842802638790356519143444908694470690539832273308437142192849665949432832196266161891918395614467281120418960682054890254485424465483439395322281106815900445355336509175193789637799457136864150951796676258111371222860940248615872130379542748238387687411029808073900386358703952065883361071355256477990199747774475879357133605178432369614365783773401740328599177839754831275423757168701801746838223272271064504763170826886651671668497550611776405149787711729253247730063778254713682680941350014594121208446700887585418896548853353913421049718855198272336433476907593318472981527754727852094884521310462463507212295045813974250777963278855263465088712168462048964696471507171555419027013965336495194405249031193170759138825965208358052202157575952281748587916504025268017184078380565256809504455002606248297505610712223088660864334358745096838501511170723002610848959980458575370842722002537006295130557842903197345803594771144381411385436370521311401838293263927214073247763137064494985256845939805171076945716752974271983107653625305100785355435687316647094953779478609653672647261217954364127100392467602521109929001294674538388742291035845444416183096905505487887998802909347970543404295983107696640589699647044075058983725040741795621807456446954958430725840350019873395561805149445245278526845512872604753310671822289087559942415871455230730384366084785028584513618838789228061920235943043714418245600590412560429611440923622135154797724524894785455005315708533408872957990139797894036522567164275010186711028385731223749637387159950144201241729963309051480984152778076303665274534296166611127072793383521470954027362133989577319241343720199065821337224493655158678859957889912834483787203920745109057404176255751224874019260247638645457799083037722937345496898203092073998131803930274650724953209685319188271787492203674003001566266090580818286306270478286575342252252919696731992026777568225058565354392725863032522434888960131366079805210553943959691107056586879436187068517095660696557589366294295536092486952546484347404699534743878180344017270653674756759578139663031012565231164439585723978422795172430159343885451290779727055131461521663055866908606552214040607564246632561637566333904322082241280531773686394644643860101679517574166372043011251561970306011119968776188403309094779824614595241231830048795160804974630955414096612276343815829240239161904560247889189889868338520749670455156826051156632097224673475875924619521678247647796845201060390750672486300099704144900639236571310416746664794622938855029027707816982061401303725068326333792828251824256268421607239017517744785726969367066931679668330462066718124476728944916195366041333918488228165545138373969724933881667265340856809953526712798991275891887105642636812143829219485200284612030543757209416884986517617861862089929367616757758733735217784847610021346631148988332423490638607999867387016784137593655078864991957851633638401409137175677360278721310149460917843868556327405357282776689565893981178823970967397679695349314397921871761097802836695793477647976401752662247031755729998055897949673826631945646413771697513987849161930514115859515411558293551737346742121092381493525312932002059654229304795013531329006408322751837339488766159351144497612683665585792486246413457558386666510739795163003516808575663034800152651907775698078659318685844229285958227272396383764604338512092065124220505945492476030728891593637857036828875025338249472098187335351905940661221781103930908818980848614692460979969746314312844223801137759009992965786984478883959194262561781968352031039994061778750937842099142386332913687220998998502307202595077573691980959574466790389517952346127873269692483280940817671914639666812864278886664105961125856011196975125930152993830266256057350614391247603993958740538446211406157193448523136211967193139386350392076017796092326605826343841192780497237193152656524204779825121202747711783485411070868410325487809791262893581072483263758245435010346636363835951646583537147065573033480534974415674897628646479973261559444667990876524206002861120555222491047910300459197229761568581135654115513413689757576495911286268478613236969554511710992477251867617669466309129984359366378777524050898353476368594591281718587909952902792968560320156218047426278339084378275429098702270225105401590210258599292384415783595507327593484191340828648289126831019300257713563651457255080133823105330112689142319776545413617945677105599652078534843468484528334335964634873994249298103571645762535440889620236710156322682921780669381587566598010115005308381000667844639482511643240041164491373687151833539906034593639444020179402918712496520193028704363086162087547722563553114000265854553211429603466123572854933640820998657150065985021769840991754551886797965467757921825981797609488026043794277492542947083394917914989708315351653612714053384108802321712673131118313869658366178156423838297965339884807593147890351660779785939189092770722315050951959032270183661581105322542846843088962890528201017944358453306928043754921503174722241775865356458129119779941820036263406358050649632563835634732579124009504229291661639369367629553013965491484747001480223423675418109038191485462393681619395741729654403931376042372773968117238032279130467461610085919270408964351440099187795202106240771251894923502634877734360852868573640132007525431388711493841032207448257110197707191530631992273613007637604868057743669873486227345522449531549012220576223901968511439367719679397591679977517785920071501016754787482224263146746009852324691544240670784671777521801266505688062482058712803691999467424882104627365664544044611729409706712836521326203366567624446056202603069279979560175581658420401030858221573872944025382829202692356229726043294803019269653669701529323627761998198563041820885855193989012127579869965719333053085066800917903797580340965800391329576872947705453483903572524379144114607643236438023679067074595577082709402777350147803887357061316537566045750900926137073774084680166704694279338818747808237865461691659819019255632716663334253955367239126169004078517487923038659172995513175226904212613109436045048139386885641237299447270888895822086634041000864623137307692298751097602774524962066390314727440954922165713918791531715613696335675572502096732527216478843454821231165290358363019773949194955902894522729800944459811666451713526121504746637385941041759581249584492149137684560392966237198533530442100559636048818334283654243899152264224994138180862284572045816260874570055694005809139056201357155493363825724168011861989624020996356796124764830412436922853861943957137226526117620028557010825355447387429845168324776369441631517379253466744802654315916915704250397359832634688249671947949352135682860284871473696711937767889569543941205460487210945178000595454130171309518675386814475565177583147962531597509607664320492173642093071245180713888503675874193794815074975519342141636273812472984791894403325697376585201896216867885249639265604209067253835263469679327986566932916607199161609642857227896774002679916305932533144780752412671979850476561381516856257073663151341945505541002596959927201566857645847547053944460648306247999388953667221564148934326159351350767709279279346369583948332323666450950089061386686041234590861092409834571541284667730222486431977930037951110559317685499550502494272276206750099477138801026808157784718104693433020300963795985262533044771893948737083453633197296153046687253270412986276664917045710221596153626353897894336067572087962734046409850043723271408371240827829993259828646620620615647835532523045142999598610295365459922177382024928608334631405923003222534023582504339423967932546077851253533612350186367371172942765071925424827686115038561062928911999977622382441404019562288079117402161848424267563009573396241314090975998352445014359453586490532107031784580232748069621400938487590393071460257880759848293630915783719128144823679781906759710380768682886441512711725230880104506104711914183346261408659166233286016724228947896498401431682748173585009760473498176160404689027702996573647596132653536000603882671118889603254200134782886103395946204545499759230033156393656784866843814555494201659638915393726615202920615632298222166783847927262597888096916481719714359134435720796568302108782927031515257729128845645223688243020604202395739120433643407320403121326086403343649712501801828740239047945990260062921139943812255570206954140512289724404767924525884888655838145960167501586899160642667686639848503821792914694273535509214867423178695339868882967411209393220657081372822654717703476549081810660938723221204512640821092180053596652503956626492142917910809044800991511271375260102287037781687798141798975638786261502589136923377544874615430727965751185051089067996624659322688905607537406702295342840840001941272412917734106192328782746168240873421437734497886694220669446758211657987477005189515238668948762634838384099305454456331921597404382480076381068675456193285520566542159484932708917788974354313237665619154797482433789005116629698926400022860284322240741081859519075388719453097963035860958747810506140120627452530710770914575897548079420852395299618813845999241753214055532858947549994188519579834970548650662368458190023336139078689792845161945504071642304371300821776124459581499707512661519900626397661297311594330996785205872198104414450668175251679642317960236321120089697977182500422475623694788502944856485853609269912832422274486588756922659848668175045074877444823240320317331173198536922174291059551907565151039333588869915512074055542165134741571876214918635710777669518993867275125746879785157544186545031299745015094439611641226075878476561744618283847260906093533423112731101550341031585789811913704430647259329614013181084938552217524792104094179607771317675536806746155221825029889822222870732027919508593477439365149782956098356166148563990312697058585282427855834190990095289188645448257596120107163381367357933894612415004778664076921555948600141589912784458008143287558000989337460549161597302663552234298166289410454964418826158676534248304351661387430513758549799170497563742394558771106325093459034352001769797035545957881876461530640109234414648666142360303771056113773770606579538456950231466123251086535800099021142346547736205260606077957973418117079707918277592860621877029333412589080265278107563302002545401827932697614187210124859774753569567581404635626333382446963858829804787370881047349590365718910316759492398759088648708291552754671835226719410637853806408316472581903618706871997059634266255512666048704285254088436467961297436008299667150760852758126087851498712311714908837711399433373263014269090566940871996393860885587781487785205101426889615103952445244450254286494582565902571174244731699068358958466475370166047023371005595145474753541724337761744846132734273513816121507496846216128307947088204328575229564127673796345768020126579851929947042972489223645000734790336673433510911366836243714831702268842921103063728253673959735918962331608071631457830539004687143424542708249713549197714263222757475153506486491995175013867364655432680003579122241870205581607382190365143346512645301499723507259794085106897865040980741798600378478663129320863539431748622629382194991540590315655161076673180669106688516428404356131678094877602853692411273856728165205888902475959900484348336844485524778078743918502399638985691479750842101542146683587013167512636532455242658740162419256221526694192893753456105446826608122206529940487072888559291041401260015391662096529987848811629735210448243279693505434668464262412349434829619308188365640837205636921008435925103264090547060269599812545024704368905184702242536113618224664629592765410720684476033553020557904234748009825361012087239231136180710437739636750214544022266273883668200370665007546289999370394833558161734789717244596275194979305501662853063167213349452413494060931287293096292060154357733968849873937075913859913465648180492447657719981245287005895116221160897886308264915957419054221964971778831573939348247458016496913050021390610234810654247836043391700578468446121259213002841552759499150257685606505519712696057120674608074346522071104155281335970950461710948891806249165371614215001950388797172861496246635773592826917433688402380909147863764202483515617348561568416996486289498639217018104693957658910351382821971993463909942962972048256447683095702555670986846660286166916846492961485007167212340351878012993300321561753998592026215046765447186240385731086960213924687719393216994221219011900750636115027713272719471517559659639037797447730512459430383023268249550331351390457878055176270758412049820642748096168490065208257738337464171034012013398373408279781191800147028817761160219233071161674496734108641933194961735784304387832361715476134218624630121335831932765035991392218719367225341188114739656886122395905128897705230012770330780499749755427917522289304347325007122339915339422264551574564322950631785051865100431173998414679770786958615881468998201318269547787801931877239318366556383492149516759404574575751018145636219452075866428243495777668749202204693713538016756258480977755087059939838238714128019491004570081856412651135999755059842920247384920741299985896929912121206565441073017274185608565052612973919141211778707488254312669907063441461054597625490058904265127901335608170778116308593370052358460880870474317340473278992480822541131666763067901472753110641887971824030042918331324033828883090472179530711146251204380831151789732652165896315672276474067647570512689889212659043818288594939853763742586048057726727762033132036012272949996838932388237450709350405590007939905627244364238456366191766336778768679463806352530674133576855020711255061707723332541291551336082007046274776863284628402704397129566283421458922562201057062117248330169710583544533451412857889689279970465125566054512043626078732764391706149154694156524991729377945088887588159132638850085910732313029522727399812709640745825203922913631862513255909891413938387084065462419592742297785776785432828804039398011203775335190947671805634223093241885551802388332446393072813678993125308873768409096541406727505955465318633706038955403802286323940873133552042052229872216385182690666707732598219843943659954689328576047335969103753933431919034449791395986316186780297927323774190160650659424522102844163305686744089863225760311828966956379244952276570994228080116733378105547526511318219556057681087405217110010757753898688823213643664316384425649221717662083037822487527894261513398352635571070616847001207201141911691293880924872507717478671893134613938485375548749122978861560417237706780505070398278541797621750126994553964561931542713144404030707349123659108798596588559724193372868071129295589959089982208875905507852182684394920211065983453208391449650078700104913052923992722945922351849731758946050886975206064930731063336573842905091030449779981331338774747460924233850181447174607562193579578581017876955463524912216283910051482442012999171725581728975837922252025196620888757422260553418779754286351735688431517474962495271389112924907311752064537284645605781531123392587118561977537390700010401873289661830320887386702575809088250892028785097053578622277157583963891159056651412914528333254631015835151178070226827873480099694089125987475375842842514561445189207001674899086898320490753749967070708387124526303059855526070344249930456167053125748333012787285221634597972363999231047798210969830484875408291699436674124607213144091101664397908410630885090709243166175252674476161697731302621335306433192556428162444741650490094505574674086605549319433331502208415716099305791467037689923682536844326370027976770916553140217161060653018792128803623725984591544265680587631374079107303280861038634495388477578587917638935906429780529958968191665599354895184064792254853396246189209956913482867359434566484637986417052710800993108694973431099573207849156398071116916135878049360846582608299418482986360009698507622830486594557839980166984863369459364716443614091624944433249629869156552554550703038251203266105256847671890573780210840905302680073828713173765727580896393188613732653561629913991613179234874336975405770273475172998599827738077842310299622873708798617955887943773915538338878479817631798121665931651830077866367928484246758323672358621435739586834525977212538726298014876404538145001882527862399102431993149589031170413657116348680233011345310102104283259902743365692815175969488983572072672451451075618244700142055208504449333654176328009474933913570344577549009085200159358201061051098816470755105111736138849168111005767107269360514308424288661060217240371774050262318785672968012493441499992847760098389629510486366632029697255922396530772477123140972374106468888145671917447233855643499958497284166068130537075613131708722995312450300521310632970272619725635731326165139141254855997917973767207067255812345750082469578437128491604418336371789456510888994528334655391133428276117132568452723292537593926653177320836444861852386124752701029803257567742596091198306997173976899820050590233416864250868899987487383215967389714580964294062074172981838161340336508547224990382849144577531062051182681095867920326084263259147695345019252813681194667394315640305091579991232662217780598416348339005469945863895142746756231266223796865108160689122701876719297355881594075938417579513916056025429847230991469167227664604680693263134514199231526868490208000961585391740465779003770109541940278701752918938168380239724627521258564710447313431431903094295694004817271710446156607912477708018995838834848959788698390318041521841438449360362557329778255710037552996989684139331217838873364127006154973153888391430299726478781736844759402902554220110346897871677940050594692445664821175660139512405887094127259749605547519721341196983623926374006706172448444027187745813776032661668199402736272090477112716142576730567903408871496363827921090980827946785240978195374003597217911797403689985139762616070647499192741749203007538597858108952390271285146693583515032059298206063936186285813433410447471718301104281274433123023414042067092080303293146969153720503312013526116795332661527237205662323579639271690815562343936774155917635113357609195781249974234425976896510611343057152560597646656539155345011598860732633104231365136459606102139057925288990571283573550255552728374813005711850443595078392281110276038532220922213334205364572743495530765821204097786639178093799107750620292140008077083522516489760408853054459888663295975712992734637791574138675942875135540356130394813119384473259516339515157264269282442577403674550056641091306894149178522290116529192523277910441458671498123319060389827067218022261272486291692025455150950308475642971107394420970795056190414667088570481784084489601941905581151593969770899128751575332952230848728580349161424527305876153529336237869419025785714818052427190511827302236749528305408488787049624284424167385938290882794278610264705274695600377795069079078675948594249233031071446147978231715410274753823691386956459383337534301826761553218936400709694207405798937863641676426147790805955907388200846328917308679523794532292446197943648599209441960723715153854332353937670697014002456693612867176972151157833916381445428351901114740185391689249282754405909562243467371147765516908258694357945753325257331711393568650684051332157848573462065257164590487884245592080931173590699014368485155290281450428335638368357655754153620163998344492295192189587055435749025369126555640129586978940861367663464693951253125708036206868724235016442673874825452406605306075941699756658713067146103944190021054284632678477274344997922162662809762948462362322539208291075532677062122285293819367870367736090749480125057182834200651970408048641632745368191408065259417036511923935696162281797323783329294342050073247069360981066023250220669640589087364386155542933243460053940958595335631863650683357019004134907034541352984357981970456692298015991319212293132109869794432388582794627659638283051063722231880548623794267537798337323673193586740310960377798103837235475941929118882191548563986092462177919142160653591244551991942502979285680312250427115510786666926451804465515024633176782037959746642654620586673299313996723458714974223324947630058407573079897337219235192236328718751273461100740423990802637806084554975754755294176052394692840994549113962219708941960069940041644311299599822132338541676702509394798416311727730229582847906985479202088922893824460772462679932317941668452018176888174317518351602973737181752162377066350267108940888159553388379400813436575901677292022715960524531310766622493845049918370223976753637217960348286086391305281824040696291148472408562794634215028301055245585246587870348095093467247148466970576893226779574347400039091200755283247802493649051919808984101882204630415999461049009229830326611362417853713669199618043920160309435292779700155334795022530988942378185591886536426639978458599716722956427275442783348651580411678065579795299307374782436806903143433579315339857755536881355336866255825721335822022935098553675122049447086352686637733099485868989794727828777899647042855497355101244158521647653997628181593172408419587850991542214981928606916153298397207194308203467947715760676994485472099898096212368294635454090613647143841305484118634251583074952265905975226426249141553568936418291057852369721797299554586987635946134758908709207935064872586761643889445406286691475934791220080667715808813205355440914650296024964950713893002983197710839139819203350202625985494559082278857762336495306804084426884797859955213801046887756346510323517705599047558418504028063996721238673022905131155305344706870390928921169547293080181563265274518174083934171378219368510762612960365715661336673759451167453338945651834178746836228560772907543362952550234797686271262090246792487475611017508739713830140038169715149556475615522651857005947383854088602393507901173259623889240900043599565300261184586460316296711704142051574525281294597433938074927272340911624911237248146786642267944702731035121274539412386182312079514451926200580817054556485263954467163471840764467641766769692779578095580756031362978403239124998448206998744619937584371309703513507001966148130670343864064052946991707656118403105095839810002160610178865291106282612964264001224000697976602075224319883142229478537602011519738571660531134183411727108635715118142093497523799059360815120674050078148531464946995290456482486336639484575148421833130233527949472194344063429962808701535196559325311401286980285433034983250712599603691394573921457958039232490257429209413194712961650841205034053771556089536491389369429255811085258856889338956064188571211622165148122674792321459984002939040518893044572564676219159845973739501904351018514907959343998214827812246327227067691636065285803326240408695716735824469044518422962268391330988647661654583234903646044068800801101074620973604153268908706976432888318931885443298023051413923504396995017907740183319145368786788425852659781317794447913642929668999074811971057384719262559912802816293611746698118339718818642132369039984476233989615010705461249927516992541972815852155680524398959371972961233167738322256542382989307086026346288611511662347751479349171867620255798776098827244911440788416346945025920030621546547777355372959020314642311926605212153657101690492303308050765793835977536610121610522383051987826139521465740141897730837250332557976123224934223822828485131144523224618099814286564060850970997092560278276956013657617294555705916799922828117938050443256306762272431822064042021550286199011186880597675769716507427233431005917172983173992513608005930885441866994784541255161907177977563972771579736935674677194157658055730517915305587949656881009730223418527904748025279382360057210631673525307810781994182413111850936643817383812358002345809331695293273964770594315278360914594957569730354896079961403341441127101374776100250462211613991637466447877819212843568843628401214437471397362865259156783934590864214449326641049353363426319700473402994693246313263973162677166070917153689457350425346546197909644440575866015166140909452021258724008469084659061939712320499486070035190035984516240877035690715904932277398799644225191997376316731799738414432359876836509880938244572006409396391106454231562717131967327381809101555325731087470929190093994386404075648606686865481906350447167985827159578160807118418075906620969928443266595308752034511336166555518918198288309616679429218665724120940984556568790693711853394888862131237869288026799732282352773309309842616826520822743640839545998223589683242088621509904633679927678206394228493780222552512409244862258468787352579254157226527164665852994173065675607017966724608962070633773690110833613219637101549931718941691706746191382987446835729123337422370951858319609917834038847156285319390179550341831028222871700112002085119454650848137262389268713632243976235758693103452636224072201404889841751986272577021523054613022373673049445327082719548311117882112149542861495697822004552362917058596111229510267691313174272224861430084176948829783021052709824350135369007146879273431088611758746643383522142450484299465856733611574820570510451107594405295893549607517523420588366010781735171895317029981468707141628540113775013195636221059141264810287261979830983399380254172537033145176784410089831914918557012933379792683995564276860487936198893588617425975203718561813841443370153276333969552316335617532605267618995844420391232380549003669296061562593855181699785299782607896352384250871704910195700917072237310100513545024783539912533651655871101417816515836919685426427116852626574627448729165814460886918461095863143238415548712313983065992922928615879629040903948202722030088371221541530349300309526076868494226727053438219590676491321398142037207798620098097598844779346135961098235969298873443551454819312877216082663704668449831170929028147017102867927535242462313865474453938961574398712574659251536485981455127889555508901413097708028155630313827617155715423626603546252295037034068339119351711795657566475032957990571259806475790715211248697328418467483295530043652555039342573006985935851479613197958214184031578452087103127788776334200619416738976433205928644936823565246744460014666441842657855250752335396336452196710180678256007473211858995541497598265233153296726844891784631239990851807591446570534638164513290246092619882237197823249573474481185495371897913019632864168923033201260154976452955586393580807756133331349982159398904310539910948445237704135684601198575211582394057275844847812174522842026303524705755278106806253033558203901790160710904027448929143178704881791666847149791632461465035246726943390891042852887805493167033272945883695021425451609283703128145667499201594603095891372285796159152197421056865796682576031928664174379277563609148216140501827554061999095684546452114287109995710737358267934062650961459844774379493735884183496055817040961189672656399942609993212077126032723823572418096521133494603147482297508757745591362191428778727117213168155200944822671692352064448913476430220278390075141278201838813988353003642533454231783867263008170807001892651758027151135735266148779667264381918663470566967277682328422756607274166186271598912013884368252313554878842241101691269327545503972884710199162235287599659242310765030229213345469723308471367069277363833808157703403076043486658956874481430614909326856053907016602044607868216196165913063481298176456414562533409903253469826420932802785478537984042037433342372050669663877618664097189753904249865890769568303042060164924238832579112578186780973754103527908685849542211200143596090391573048186929038760765573771793953217429452415407330749564714970113550257318845200450748198710138260729643776563524310966738126194249209443325041664067226418035349633439350589105505566536898199988081627291616206576583317957726558780326341697054917868612894689538578795710081769350778043994617595629644684882368687578637703410531447373520440729219156202921940603598448539864316416482162722990237411878720406462896662002779541407605874316840087835164814526337072300207303215458166525589479664301119515843691209866911910966271480374972644173321277306208464075796801358133774978127934324321332977344554824404309627778748007186581163406666178134995928020543502111587468905310441783915391099718073576415093393362176135655611049952910966713325610102018372790598340789656481612127994539755996730149853248399366051393710292046074219315259410084604019359071997779462977579980082061704944485069017311449270473756527872318203541706542304634688213630527932803580553493878091565585138054083330439381784127997465039812803090006115328954232148466035054248517779055283573358080799002231436542004109623144464079131394793346698069139271141830830339264616476184641254916272215231141294082020586721734406296150931689841597876089057770418852530445260375514534820319752470254907485100450073071874742805589747626291585262944437936742370745716046700537241665545760190273044257967081363702114457920110500956374348097915227770817161157259961589772388129636083044841339056614837198529253939228470800846603562041515277156444478543236215182162480909562084679219690985790892633469303055109305693173857202438679386323670686053396999301843914136969412276751901497168296425216722748622940830980815903209943644583673367152836355016393166994869805709559290210957018806247238882881284274828726542681517960956444102406521072297062237264129498223465365650625160932330909705149947758826114258513336500930689223305138965037613896166350664647189783193394333426332088070082671079517532499339796753441967803077576544747491311276492968460741744213044759967453455913820383437438238437251238207051100385742771786423901440407108552180881303960953133788658862395977615601766882501161109056224061489093245082922737953742808583594167193303536089996751445611049999295155233976459562501028690247853529243844135054503747657766943567591172818610263909519039517067384896701599047830189106975318117675602924968861053598893050981602016994721642601849461540543472756851073284662150714616029079585352276428206969697944351204977275020925908157950015232894665429370328257796489405922227184133693461140892438971769924130356986004392538161115673948923694380151265422058643794081604946642716299920363004335280529765267122850949812017367926466698326747490723591105078554738536051559898507793904045909319448507253807090968845743516075393048667472187201349322596172838177328856779732783555163856944112119970612864017273969507778710457108710185898029051421570394585252957950696630228867302214586133438200792496595386464120565033074650437550381660841161049180960153933045811060604448176660065308404146179434831229220088519663966301867023147180909029662950573280419485117882901275222411012321293736168155357003840351996426386927744150037181868173735427695488964715161469717088170159180850306908230710275839915680231263735731765439536915943396258767437575210223262049858250190584231314814420456951613018437715956886744653234841603954634177896041419506358990070555507077448159134630944057021460902806853504508904432422030501272260982273097293100051033210288454079181735308787408746659519334383343763126361446213402457314437743836463973206070810392733389036749947714151546930653422893939291792307368573069602654946594433905060289057070919642963943985514658162649994646020383703523066588069866272272382005443181232819186056532701818376600033940777279428571233238438546856230215730343986158611653976939335460725368900013077658799889660916565106189380915569402508196667836628428199214461899437627012650136300502648084269066534049566428583035548482936717334039763494791719773275588655614398030580800984177842903388449277777243424230090563759907892715913241822501511525170442261896025466496916549619022009860843324102571393702690648199702406979198961188080771113772326401004310790923348754630717176282575498960554510127687368698963795424967392128539380321777036950976146108633923850955311455153749689699503678784393303847270278962108769665484332676145235161100718692382160756243657527544632720633467817249114134418321605727101094301392917058496900514661936911375817106467893914506765656106757630174762941063736572823486999250517126314582105290441777712074100452967508047858003882052082383364652764262391725149909354008513725938643546540545903753255569370122453422911346222986079818752617005009399922964227192276153310655170736956941814087018426209764874615330177490446584296947978907647380993698665298255072951245121293239649263477630128096476895743293717469321032679617104436683907416639278190035134975735424131969716854353163636394703155365428841565858475545425765608476837692473157575267345016203413669243354102863355571243465363433312590902408815722489846626162214319980550543279557803734461862460928144447245755136971025593049288720306549646888104542960924593644013288531916574080698382244606924826843721447345170965819277698420811709956356856128355016036336372974915194242142211121203417983063287625055684761026335454641932731218330436843523059529853114189316729162483945283573152180706136458875617705654127798494268333749114602599899877106511263092838371571424314158097104349695416144343824101988531195339288832515201335618011164532906643685807759513806322284399985110930923886921694697499495439888015154196346542778273236115547423008522982356147738699232762468822151709260149818712176653911093936129213901905320056896589682079111201570527920710051495681629433242379411916705531894321630673233043930480285493800191471392848385787963687984627948191677760746808007835961883888309939220191675674739758294178768761227588862124415946341392075378490862569062143409296209454446612634480424386144487446084647102387662959373821868502459402987698687182561767875184394858632813214498603225194756690880262666999013200737492685483740952848978589301842836192341809699123013579078862436407023841273352696773682791500586731687860982849378550951648611395023314806869040959717508766570689044569176213199398946290515247548233430020160505863299382945819186531590446319914147558579743379701740422469099598602826803718272611825151054000493735615432273881331640612959918634003935589652690310231939313698960075436049148930504595558826009466166030559487284558112662352300057437255024196610775665842450007090451538404763596445286314423722454906289566896107729765086195075877422059930344550239354168737226078167001668220639313151066779572538189527104875878757194579560259002939184411249989495642342227187403585366577341109578056810693803869853030227649702919940790747771691267315276623889216962911801061083169458699783743543828687866880681173594432139106759388394237656050643269770380589725874235801490865584638069660329992172309103223775905545891722798789888637722059128723703760844434171205749035777957059887458265326980582449475640123822556277795529344239951098849235127425603777130289027545764932214818776127584467409232030234031023447957972477666025866150138956250855117906729608003530957815312589796815692038031028808617521561318526946923259921972896126389395123512938382126914705431316827930159833529011610950358402375364534873969337360035442095799275542472731112749712662365112859531401857146751534560087328881835180986032853624471986318467588482201016776123340624391437700864487908164977742156494249119838277011526364613985125778800431534734938402969063240677912893669168538746341220300453239912202416042267959422868162199865468551419744825029115440181739103187948937792499320224416941165567401150210791968812520393916879110808165193777419626055052472594642427960828365437365859840801220383601701780630532720815928089962790462968909795884340216408810381547693133450025208428471291011861033802176879186740784437059461577549518867272632914062247965042678041092157698050518408225292025354323263228770692586014670410556247556400452815907970591376849293497585692929329228245575678631127188650750234895273019333097010315034475506073647317202803268467064444368104427610427335799137501792396081168020921248929616495830925895820052966377962830932270815854941292042283958843129645199780306705387999533160968356708809428537954794492413060350448850578615017343247471620878489992832044157144477264591808777835101478263308975446355366437808971699421430349799156825769014670573143573079682141559797231610452967018474768703745053635903632123345428799374577194636080671628558128885890524506170946145332032753932431267158184248784678303739996840063147694379297318030393316077254182249235810225815813678244633591261394223085696328618325863725040204811232317926101675049194504905077919293095346505473292913010212697140943003577411644633405809377945236967701118570590930155305455798560679127382174906695554324405262895703241226153224355185843958569570759077994703367646417272398766414803486099798050911252176272199138414225135259979861683881429082558300486774547691745440815152939241905661316486952467946111321134267817364986895626442812438817761499671109557552461870367308379244425337365503837462587651890483645609913986940027432359779496723787770166671789499219205901855765772461630707542138892583328345956687245693480473450044384571608905059022510829818357044993356480852563577637054046550056232519144001331747152479315016713889945137725280214835505502530024057264635421261810785545745095728368397346893615637034525942604979309845746511021686707328122623704082260930120502251954882553265909985103682816652961669465446151592531032181479660210454696229333025197105019773425197249197597749692481909953696893617804266519376781477611388938122333509981163537726935509651607421338159107893476318658646316972237508347195571917356861626655052151894851184608133029673979183020980951695616955786024447781175088110841159238854198691473736178255497340199540524584775709073208031825129989897431547589746273123191249033000386115066829251867098915220300577906514498420318255567276783618506887928231342533245920109407243375996004213333268555670838699235224002801340641933716092574815248970431910865427410762952146445064747827387796084204605562504566681993714883629506899594131661816653918469315102077061942061606018709762937372919546825179324766478052822223793273204538822999045233505214236958770810542254468917280419429045420920474789108305434101581459870357046636344469670564556582062407000123019778783278843323355700048729090688258262879742403244252723785677757435381919773565317957156776156384873070621397217530558105885171561913075679180812652723926687670594670376470420672707053847671157860921156835504741923151018146661071693723532422376895920696203739365395893988091322734532248545013952415388036085128807716521888333864466864181509368287410035028182587673005833809396339085761353724224560668489188904519344896409634459148152677893787778055104392420798691020140464853906691296352384840985381581253408834910897595599570821333986167505082906106348428616512807297316418293498824946511309097098412541694197801812812504369311427533968522457838600456008392759181679687321160722517534269072172193817595990352733022700990108400231305508029558582919831316130973505866917151046684270002714991837650739985825727695341903561054724427976915796375752825858094123909600927080442433613099794219769669937228084414091185407032359903359396701961743650885866717506474902288752327723459107865466754758285058632197110429065783486967240992683168574352202670188273641800834487334639162847733132174247003227810939838323946011666932545549748933134561162295636542062341828227758682176938985811900411184473236631305670453576379064123451026706864773933935254656405993587376279063548670056445145806945505670716569721564778093742982708148952843833100596972474460562808375369966755918036270156827856638741113083239769889147215553808716351758448055918386007741550967049786018750794521942159849290954612190746080625936466842353886446556395976322407722086346780187545112410460131862137176473315553566148251433544304449186094312306561600453987671984372768223644799611965698029615230836016116192609548096096812606894409870246739123557334828445103537165520007680402262138261944669676818011525871747585614928513994811069017762366696655505743367479006413943637129495070729049800569502881267694899955767444646831533661340942534998136388910974645528329210647566598542972926058911474791099824655659376809411755097144922151924266394488262065307933201844833777717045747610757849187328416679622702401995065762155644685673144220900764699999356062175373748430143978777739790391364875802945320486880696158571777402236893753121962623134711004211644863365248776754860240920018940641175553107003098160199767078762367963683726933648732792292789200818638840866577990135136255948078970143280488882826947993099080976416372038147585950086522190395129703017364229943509727335918600289599406154542251852220596812793835938664609898815031252126180028904214403523461482222022365358914703725421331216214769992245272405626868924496018458915934492311034603537995924286247425132854769099449462171037754281804312847431379159923446232690373300221846908469928008607974192401161167008017901919265236922658879252416919604510516683649320106776987591626089060339299755688657467533227203537805157136742452398128703509295304634707453288606114419462190139424941736868192339156537579522457436814679524224140450810566948794503941429777785452939266826302702413759755823821098951088489506300548368223301298048204812062609593852917003477677261297535764642076783421635539179039647804022087687333338311563611955259820660172736749977544158169024781128093101789534984355083256050910607082753324419962949387083220452181727989779578408436385265998135698968864736443803573902823978306155151634334765814608317033358214705558320623574199038477160434228501337178035723936231959227214957539281719277754968065198610417344280108557299374843281796214254101190465406635490860138910427023042627866665742412011760275473964509645765119912729185816792144963074598434244457201307041610323779081654915672665998170254875490580159701310066586435263091898289645567784888107570170002670139286618832803410882501326126174132974625768043819388519317362933455876308174252888282471915981658162915477343690465782310716322890399832701617454486300711971477105511099163718197624300950882862082555037840511029441849402573382324310721033343487474966668209841837124151443205879905351608838954479841370940189983557411982182863261746596377370782054565424971679967546935942294419228287981282861079005841307671830511951458034258425569870140800873230535776974436842373799262841798277328491954724003000189138026326723302080034071701129905790113473243646203528125647465040733286671432992501912805507943284142318468351854754922607429555940582738575948765364379888421534742424315283414023015653587215022733243587288729370215241561090785647839530796833405283375585881859002490128290147268804333945976763887054010909577728180188568628816962523610132463204943355052596030088091627583316750259842616080624916205911029677721922439435260874117188018374879548365087477801718825741623398982657872529861094095432004618531599553588024209681945242549274712932424035814272266910884419256846128790963290215488741417914366306979741155665372674981489185088329823658261121142952031960790446327564509844515617819671061738378373574536752568461336680980570241601380190490098274911983193388832461152684285039738149209471647229597991812270922641610078153501599629432415542432837729703356020284295412888654639214912736707097754093675574180805979884587480162010172816566181696218377731305607889654744994576243933486513971978985680319802909931759659338477121814222223435555564541691048552764146291193856647227689922382695002234139046850428307384310073116273840863078024510910023973796247164150476631341907616353096546845967219586065081845734498924615935482545011944249070230879599822305272651145865673876759202605268931435358481923979491269180915495996854474785921618910074558888705476619608572395313064865270612226708041452234624556342709786216430835905068679536487491777626073522054056079917536837511007559358188040961456271765262557064793450240219039978765904277528836214264139707113536747880696987642128160261106882134081508172744424667975585297594149817248903186798271519214823401171138241348597301979911292076589772993884777261581183062275309220722080706924570719880110182014762354846303105819979524359392320583861776364436673744537461241001021888785389489572148491745894845680105075202636438236934825126615417523539271232259137828247609473018069244428490989832090735735313494198134634890737716156274698718508642669549632241523990108102864187982060028450555542812608464222417341512807621387228131440510956330034660452613135943025037723959880879642697597901341044475534385234952666273177527642869492235707605564485571985080735386276688199668512612939428332530680272647991610951541410150452884481924660875108038641434709466569845684628817619102276011377827609901772479833009177768385026804296428106025835340017392851371349568548966746661446625686894818284581278967139130131818089102243883282170648853151852626064144273325181758151678970453736996843835786285878189368493755675323452953313416149182338593120309971949363519606273324767384156537856899317466977805566105191994497214180609643191574356357706546413899769319781615219726114377476616792502234022040578508781512746641547830504894269894795917067515434568436975435067896467449010941814680719496063981319213688224744331933265379869405933480192239976336366781918450043480948227701862572580847339748215966000559250921591628427344184858958949866765877441810735381794233487061798608800768311513897037376925213460264817193736281714396091600607127851200155472334201654032146418745443905722010872278669423036479026475611394557938889155536829840709066267179797033571801337141513324941985812788346337257029500527669241870175573374665852068833254490011189849078639192557565388556246794276460880775594550333260844916407691423583382093153730053651714827279475647544499023360489390524269482741837475583752426128071340494276685460456418788136647570330245614433554750997553959820321751509151220321296027252690580428081507078401546329628382296301122459008593418545062401041182627497122521370992002557454511988592721555350304552132953694478814297607841332098853584595933085437094846410456414223402676090530317043286766603601917171490509167047670661030660246867132912208624159289287696065142044868139894001768441882386714327328913949968049122095917608510687041467366525020291648521759913044908422050330820589436785149915710276733296229095557673840999793993700962759720513506513540641113351483520161798786758840250508803409908875126879359085859264451951001043629796884589873404341038302742695413467793174072204928474350930469566147227491012329501944893020812499360794794507677782480187751020222967629852894315298242632989552835656272650644837585325021860804330529548597253163278765647228625059575777804632552466008807768798527568524594178546316220069714775044500961880512478462639912944531156667785970266841951941373231159486975635161396809241978366049239880004650049009463645357374624284755140745460396031533605934723720684109918067495060222707519044020011616057709012692866902361025815044983622658215622038100318394475712295433081166225858096495126166871448816450458063483310979938894218683109849510083564772487114128459075129962568437105284763022147384501666792445411307538716498449522044625240721755199203958949651667317416725702593918106678767483701562001611761463525744072379150279558794553856237661163863003641454851681583736288016185546479446675119856830291269609564376438954746100259868755158966280784410261531450977646438287818196444258227127872181758235935795858566669751063692351234528787514221794373170877762148082775380370209438984116313042781932455226243688784711367782719277622956482025809865958418837049276941662643404569148269386545505595146126823547362748358383770643430243316660057178134808327869748734896087157904760115442147224621006440303411864744051846448825926391167871833139365613077442556279158269627263714322570813840861420660539165044949428389866607714283652406486750467870617726938597125669357175466974165912418273102816751759927441575956192007506652677567239727589487751525747906352350939631696008119022780462960978434701873589314185956100040548611809817905650516136249977709094470481701816596163152782059866569988452311444897518551978316724286372471506931657623170304532864055484031898046563724503314901422033777826578857256500159779161944283804320891629986235708531418314374993318082685982544392909304240615195630420188817788359311881391041816774337112500233636943449654331445178748460831827850946118558232848339624966849912439295625924610911756040268235138476946917177307437977429190523492534163880562175226359209632134483322664968315950221443363608766718012943461310095061563704353579578092205808868925627964753832692093152928302462875580726001656598990045702830400813613946063772581051986370826635742107756274973013867046784456681637558319134223352699743060531294310684955644452339927645434339292679021382001083743311363008718216785886433081051341537416352407661215469248048532502980132044791865751023935842447315107334712730379009785672527147939036928285516684108418763750007671902198449946451299683254729920457664837451395098959693534728104111732355971742993232734058655868635145619343231599802507066097417334580425832990590431997646486918958205609366368671503250323584303398177906336833993878916172465068223141609727284920112218930505124909007670904925126123467683931165288374016984917322769310010770301739387983254430682107029860414311659005938943144216416854475567653519050827458820998576166181224291617586029527896503935753317017598219377741294075555484554606291451412298951241177785800877191277392979779737828766924405475844824811579185256764382703589159542186782857387254671311771322870228780370212640779743550034456067855156926360447873725188749903774121969410668219141067304656530969169805442866629678164448618156891447939820780569848899941640478034351585458757349018348010993582451416379188681606970758002224531898106623921875901896890850351942612293738929917774306408745319440784521699567802274865320075473221583637969616166500083314953806986983737106599019639029485914570558174593058047917465777069720139501863238512509039563867411757851778083092407616572162217844138137491871845948377017494447244822392709999595794780740626173253459526402135681004830992903739897972228169807714928760614895827584240176702519085306917772435764186198090647477627544701789277095193904110937090751331437362000045228594746406912702693743185694106203249873148581047572325416152854031082532229828193166293065192676536594597246125462174562379840768620784438775539307455076178515398020154706322086975273322089837487024965413845702336709743925850534863143195555927377916756264975853432682688055600436078804456274751589634445527077759674703365674896194963341708375793441498104722782249127309003719465720198938409298340972231274907239135413370354531046484525197927412228726767115986390960543550504306186171477149605749397546323715514873097436916353042870923933674400175308859360034449209252605013537142166863986017566761522957866468600449343114824856051589749003574365845362245957963569736970521748846986984463751367407519335247372222150342679875659511230971457542907325925031515383606953437938120635214136536970088905960380875829751388624687217081627862879870801913925245253788705082545673941075499540459597839329265943048504882112606806430923515711261086743072711111095363159648397072922895830687395249696601144253526992485514612595617410864173397911658761382327359247039304156192797904513161951527703886307692663937264847886267887478728555403649136208468963093459645048679557047683331263043253299690452604913205787869016936021253280843315730375261876687024941347585695618727002572267037880972654271627974143003368043313437370959046915038268885546020991076691903278825836739613651620543027775593051085065248596527169649312445992152983957555979832261706747945520458026702919840557574764129152801108368706783121454126095538571058789217020023776905667187157196239712746576723122789313879891207323913403811298368617169254938354361253290511811493896632634568889975096427776634141894218751096572103551239543177040036853955205193069722521629435296352813766272622224887982150472545511822945771647055168885370093260468500796388462123025238207288227664735262838336930742230095872226275229585784963170874068385688775013489073739197787817493882149273077128885014799475859066191204727869009047903756305573568323089273986591590306519574715502398622017261809661108205486030427256406643718571314058153645995879849172709804683862213866623763927588303737510997086683389076123494967591269143951442582738127485675666320852016136567425502250423819883053931167973935665900524881274638475252912034385131075449348063143001029288990339020870416421956469055522237409494932585721710188039472597841113227624881208095938703707491947323917023991412265472439623402415435003887875504125230653882189067468298625915055354342964733049700853030092390350537464288869425137081357705764273149513838365973111813415209698266324867535110619363195898684100834524335260592017128145613302411160758922412770159430567225942162491863259457774181079990722665971669654722037385777321906911534966280072515471858337240418737958613419067528737430314983307560060275599091894328391772049558461029569268499742379200071086013325766007240047996344243350836902351463008274539003997851070003350800998436534349219808601002856220216631927020822193438182112617816080030016605534763050972326859151381694814498693354145184259297539164644999503106922033736384830686216349967582056215399521309583055288830047096929659228597308925911330507010760895119638793584802838682611556729237819338694967100005477069551354164313021115101863839614788640644885529916687293257376861890663013100386442005324413004054589160356120769855276191861170148202751589612815437924692967553609251422516042649306872387316667835036597957330666750623059547455397404838507961517109341041700855017753199052850481051852580398315909917614700742420824925478250741146125056320791033443121937448821248378334059814783811186499029442236598697877977264695548760153437589917868132518537750781955603888585749701407675087963734483453320001600978372162575766303747075903269320534968741417033547701161867223162201722274443781637644019298921893228647516222791908799161312698583171325691500985977387998101260421252750845560700824315957170486386309065489335769356227827925437450304996041878424178521373909029759281344713772851691102216735538767286971368239729415153479607768158154334704817893989216246112333604398039123154165204231746556999647867555434669391225966676364225168254361939619964941084430301925655181837806280419465401595726852744015775893393493945648238743224243134187459183290437217332768647588535928418191745563714829558141358644940818919003285930532606286010730426145868711463343589347746222985560883576640456689009607357992359945363492218546718097646177184325313659119122418366771638442093594524199125386054419488549344036305130837830214172598904477645879653260882812481071162821672006169399222293772476788062307031835753511059215064719851652001227618376169767222718966780518902534795645857328251718710940795597554687365742400528736046240094443419601742066867771368859987205909044677646206483083937861072807081772838425218494381074846685208235647337333297620962770042844639156933201724819874790623182912620834919864407526528932867427648240379659580938204621025635768068508976808166573596377438351008610448769519255928885597349022779201695499912752001372458634584780529104521045291280835128937607408538730470630868708952570664925663832089137659924761351030692630570729609120031204421989859574877802554752430391256257555805450633505169170853875766826530526217165955931501436950577330425783390459722091878459523121953686763288908323925817277147334306766388454558266124286179353460171380975814152673388630061448842452812320603894303445126434062897522841191862432775174544815584142895245204195896806577487421300089332705410808634147581535266814142599011673986321186206155840934352249579268306510809898323021142503232392947929519703084441954230175718304220690411648841656182423090488927245129956457506365234315944200147516457233258434785064406028451723923761673647650724223967097252769094609907048085845632260343623318733486063899381820167369263226729612494244035752375441148823263342209582184963533935171879885826076413435062410198652340968670328391681989104524928183201672737171024800333413071952630379962298830530023209517022198682153228205701069871522013423221677870992702364860076588974183543596357308949955704295890981827787171743644733557260446149871700928906126985494212913946646295417705121023394044504143949511834567582411639090872829998647441517020197408456881276913222793371717023742904288803715954909927977128871346002728330700871409370674474935980992496575699632843783586558757853601778977340386627613103812530607422484411823359613353129167791572289388984631591495547035907640264879824651445591342320554683002205871946718146445101612740310742519931593086433761048686966872772459222538572256659200767939228513711100487026107287644562390233689928162770982729660591748530289225041524319349808024239267001612043404288686229516519641003429297292125440912416678528355840954700116407530824617109387630659006896738229719962196070887320369191181721976151577048282793217623232238189282603782005559527104778496646864412882216528940635669749823148156283977569271237365084281244689483375302444154138242599734726544204819627162284909757763382114540341363372280522933808951747552970524231977931344051965946832129136345241203704735716000720314065671272948373712313320356288789665014460351081120176166330702062984006578019687389140601733902026159409476152693285389066317933514804460340279874458362303110685556315852031378691370864784932974019028552131874807800018791540515140398587884495405839672818878580626960485592241929296388870084594277689528714159627055795314822015678543398196083502463920715399442772147704838900485404349853493800233776966172927761175444013588244003566329430212185621390614288428647479547888588601596240919871434580991575742916016302917751226058138478679138092562221402906416776838519199046372049528580212152857475787622984087797003559213422165620255138498796456417471662275514157242237741123167067656940423455556542552825678333285511651189400281803917217102245186694519412289846643107154025215825631706070192431012502934671290650861473848251080223050668588845983453564827770935982387214359878526827372481458914057307821845562860431063412911371936753061804186099579941611959565285521416979201647150248020918823727150281149903768732228800854125417817733360360232939749364263355941845123985033958917530752456757255196003037624054725826057091189668556373937496378450544552939145620479429594662136263454117151522578944356524669570692315850827508529122834835679676479925634204007026339314316966657866339517701244349264174207594477190968593536707100608508248073669142284252374080215997929992809358419361616677772153572410022387713470353341081968033776937863923457822463288203413709427103112664453707831740371728139358381876176388750537501796005661678531787646605186852580843101068292320100987985025826994316179008646708313202672335573782044235435904688766496284809188807289374131844117285555134740426014832252370353973980826625392924759929141227364585433432345685991991990976934220081450362500991584873808785195100495503457746612130828199647858680823144963060272541787941458003986458136176932032310459487052879431817984257107351155912358596380202873868615569215086414954452967797956758808026538999356944397671824791025300604197311124490129426339159809530394913995723673050539850119032217477315261052836709582538313278358634611126684274252734145711321722397002302168333036898859397615221055249211994899102853472432435582627424611309275641560442752992399552893704583702273552231106617709968653100326349377227499679119825183293764006557143753374229363960029477717127105634311652577119204379301287119494769228533343650959774973558553771119723254099385261478700816559427963348829728625032365430716396199108126042355080472792250339753406288817919080242729637107746054414414447306144227585481722168256663310351024021716301866577831948839086436521019110385594255785085690708571135767748004552961168052248963605778969905127008445556735489592730371909689920390126705769990258222354909560138977890991567799388663837612647570957200750491653674934300648714323988973679967477085487421770349571060995449940159138130537285216006103223980526823430845669568093598640901418514594232396101508535799167428922479398000093227190138934782654037357834168585659924051537814001497726502826897538872890747969704272158159189198110706313914125461742097767914783086887230405527870005013166158441690144008087866945911649582429805189593679874905524695914185694317754634946824065075555417712290432819825017131006031389239170437317159675242351009215710427920622951541213001292730796181752185168976989049998653283025059611201937633388683171895988267822973268594159446831914112742612705393129864191059247646140648077156230586334385054443998699415444728059581274492318757262899547135290944031766623861675830454424899979896326282816173531611447255476168656938559577732539306313099636781019285032926515685136905683399810948856272838055270631897122891874508882448295147187153865832282555911334213662499581642560568151876060763491503033743888557383452840245975458856940336359379594413134003173866960759438418977287949301569593694857445336761015771850232202882283009877212205082005691984408497801903177366631348242922690732325001342098785105835821689588587069120476483641826627827220345055007356072194146516735515885312562994492290329697706734306075196102285738818844112264372324984700418555076738902622072653126368184663641331927362849577184052859622246483350967507838828650211854800437237510024020334109869836708827104037733745607272046016646701106620017824172562946873493601364455777510736648791973690316189001707368406049976034545814479252335831045287846651246854350559314015635014393350189940682397109395454096135236402566531496626614292647528830402077228730984950345554894955702737908028486756650750999464900932789319004311130993316293886826292876764213895211916928788164398096544445629342642148770765750941204660772062547097388740553378239493802586853494807940320405652508724826741838089167756469744904559391624313703060947928646754322527011322309526532771458915541174995541527175869029314942950232496241393319978592734742725188029343176307065451810500396838364821236276699447564108916416624958112872958199782401235917137499502720192564788644878559566468624563113455866727217168482139790213038558140367553325794479019072211461425938783342987862415728774675666336366727978827651493386069567154002080180107103874468101602948452699439057753262143784001057686961492778963828212467885294706134871609604379824465013038039065278514801750629182299273498564423706135320277281102602513372414502469857641256169424466863116193469631429663798126766893231114210641362604976405269101748351185842601851423421232410233173029193224766249655598663329765284890912443553279877521816051735128505768915849215433361759702796659263736771868142634674789816624017486992538088448343943599480431199664620775767267530962667610578200193136826446391347264442435271115200968252476658904878803567833389739859860424862435099265054369538642776148459821382302867782192600939712740955108018869713753673856763694993879520502480840965515165056896336193014392369143607226644120199663067013104357044514675180505002186766089389322903952168502583336183555669128964690728904278406557573780812355827458433515577033066507618918356399149365588207618941272701142666994576094028660499229120502408910802047717593769951620905908183575270571101888908938173778704165623980730072032729158389793445356622444939199912226441125552537263902702775780163784980789005928798945082399688515787822895999584858133217969895506465523647923596268284509606510986847704640639059763636341733625423830407634854454794040354480468637737423692784377775179968391815968135055338687129310735882300995626693608755561566627690688594282419972146896470089383453071435199989981320136395750901203816766757848415504894299359919540499615786787406989583166837219884127435310709820431096651061413127310943010872069412605089179840441394032808727804958602633990534354934843362561391559415965031753387572082439198355860250152363284254070177236297833063434790561973107196304914410204096459843860940859798181096027710014627402194405186834870026519696081009227612053683225354712888713995116197845523447278071847405326585813667191570750953213080478444438374990336219714098234351091551355794998594992966476402313405082898103324276436591813820047340850156293188303182170434685966537213171140505032628294703127235287408980331153284357453655607482864992542853686745451926811571209255219597887425282926220935547099891973947814745018220257387321531567530888996024800177737852267629477963245316711339017617186127335358648719314125795052508227608332978735139828979910779661064391301282155050018983610702087972418356682194936141050845406789087514082101774443630251901233221900020167928349293491445400661911361499903068072974626097620497510385262651981756711490478347641928841410747224432925033034359236158193542373822637812394801105188237247850499236009868995746161881695872610133628946315263422548386249939866796900610827696065878076982138740613094387880213997772694717249527763211324450976832905503097878499463058187891075330771577583881309600591360170908261409342952313179705397547278898195689592291253987421047983960779752966370105567901353571677005205081601783900171867034732789840963670088886222510182999538367957364314371919388307702971489207771057501462056320999011699177934185915448785715337781371942465108090888835774764272034738341950355778142349740501073981551883768361348375499621360752415886713512434043362614211797623159145816403250746118568220334472649428224735179387145191647104272428774086783545600321918983963625429554971532197790277046116401928241589553275024941068307491260030189367859224163168091300374624079478677625503007711813958765814202385751362934029796401493495009709591218598451300956179662782846898758976436650762809476058484221685492282275532683670969905148453597876856070425822414870418049215841552684627372411178925450180192958447173851227892384537042133700324353130009857544796347197591461926678836528891722250929334457648386754491372639937213684332813220913660632081088871286913548439878833790022033941590600363321442621273148623133548055725161063854235632878940546022852070296336002611589485642438365114380375403538210231912905833493933918312152937127943099935843528523819160818692176105603153582198815990244060483882089784108834574315528897377351287275331670595910357610478087406166987012093360723285737045228559871969348657923113822050607890561148024614197396244461287922619024665246117554928717329671118417000758099155226491497233559501864971578486175830212358425726150768894343251476808063223047303300495212199791220618287300270143791419183227623922015309041894941385857111533976998504779565708838366567755354958513446413277317065058402738820686189845698468148418151196858905844652321231975887447886701082003815558636508867722161560412157124285573341096316445908659397358874555735289545782167135799351194093077915114294224785054783694284900252500943655055145864843452938409794831140154209191065462926972701721713764893568926613991795807418021919980239029238916617327472272827072199262104847034070982421386552686259443287253747412500926553716371656132328921043402352827346741389247687896563331577129440543230162045633573723315500819046661972832498478314532021796553840545374768094421944995907416873912152687546828336145772724927975524779768784117850511770667222424725542740129882528567380356732871096852308654276398387104136121799343895887600132573545457303979877019656242641422297354239980616689948700607442630442012381224488310491955999185109713495359555688263485648052359452978862887228539371516487572424922974324688254516020087620479777866990833843257076233063208988950386983249795727512642342248492285635299016822817750877425069080806647410031181669363909864955721363311078659581932266617119596438969265199880190168755742933048243789754139598350234825560042805059176495051559357247428109144049683637019580735569588492953036719363133269158802773078658907224047751115692722963711564748604301322261507588885267264699990607049095808457482805038952245423080604848053830797675241799642998309536054056955382145226090391473925084858681316284953508353495324943948942092832564247374126812194561987452570493848306302934013600595498913135217407254116509701686491288953348464016731561055329371500373141300119626943910355971705143220430184849998400791456353930192017390838771629286531370756782303829478073438795925018117832859918183700389427416972064869522035883322788604454081999671291813733951540407811293095418423952279935658906827152601586791853209948615131267765125842352349282596047952552536949059976399306765331038424897447131741474716927521439599564356850317970413045635674288243560931871482711313513755718354552265667980957434017008906588584040697151376109933730582562538320792004727745820206400524135168914206745679710702572365472524805425665323890628715001280287150343939021195133355220365960182914037559101040166609217763273597765065745647520875086084356057349145040067474050018639158557175903010400894254316175458214411881969028726216368413727957113181818415741606199826358093817806183259324715622585160172600367520340417200483815703912224526954984981745760096253201687817090187650252241713275046774131420001068271999985972648901373785645030952693049470300929185087153589740801520217888252021087784600420560883703413800416473761642580773626724618433225769996223957676025591080673869399637296984226410155748309052991125098737281353079953167591916777618534649946315938705318205236862335903760028616781601022852582750700120156698452994140282142376841076243317759605126335998091143750612886527847223474287401338157568097377913980808283509187193118999168212925825237907938627365672938040603428120525318958366509681784258895651677197301267250365482882536324542117217444263759732518477222565920424214247672624817364483752044040579861358690313441841924491840878368631280911631934531088250412350696538159804291189410203359536404318799817813025478802970701884317832425750163391226253364303219908870960918060771475525570531413508623742691951201458356572333641496095927685238209582560584226546090646452262945959105284002734864760949373334181216840066247780883035889809483987944145532811986483692524718609351502998858637191869812040171001208675332720718622040141616112273918157341572482426868590974629776361859605360757459563569700135681858455033293382563159434466513802685279917260510378558478071911644835947345556477645649462696301508920825967627649422988922747815090304645749396485142507903171236298983868118803547470035531991801209343202200929559535626579991826902438045293926372881382181869053337765902962950445687183806205856240694059171169117614505008852020710431088781763854498033040685604829148207159164228043267188938818083763905651112189771270384062004638369753528156396500930985226601840976064239813160487677078137889849663895984716345107730113389803574222342566370131730618234410527444979771908553706355025719972201481366130141321062144759408570422552908715827069480598406724720470554430372966675099224047307637273639427194105974483823570359457891879445993368279685222842022500306409416407930405933048238330141987620854222664561226656988059433192177254053826492522705961314557603301477382299125135020782444771389879761982795877920249721840112087346093951724945474659705833606098482738991976267984374251334683886916109705364093155044685935217685905777316196116127749304833101806026571941400459800927267955303464556403556703556763684770076452223311058647949357937088494149529966697870810877402358543983353232734810461622809635972098328786190724119485092160676445058555052174383404811673735778350236784374825067704641095368126229495515399162396554447469596933943827099429376857143998214397463694325222422110669788790458949504497236730548744860177329473292151518399113771045962935239624763018354263246231407348668452975172982498557475827704734352283884561218015213304295174866277980351729560324859138497228630077977233054026502995375840236390926860005894125302159648390800626080819220188572192886956051464052679331058026982506762057020152604989054040582547124043301986170972900679828733806569032980411634481337828135833380661547301095865801166855244461395932819166109604578886221585930411545723597997208158493619853585731803184089370064205330998743498114491700480628926244794279490486065001491662903058799230710325277987935086907213478451688830577463327945637067645739883498266375598698303263997625200736472254243827245010898834334770868745350610449871021361670515098453189731496339145469846284514291686177911362316298778365623946021914187589048962779818133456512627840170950686373615786720855277521838095709520092849335248249098619145673363151405863484527182007454317033847172593247443968444580956685019751891696714634305704030569679991097816179641988701193967611547677922888400923187214812499146712375644780991981942623631810319054903499158043529837396256855320739357280078799108744616075538974392313087551564981535288023120705559146092042794447057037967517302229264780343803160937384373404116098426166290729619680356797531242179192623188560214319201227551104942107739298445303245537378488331343324485560708108297787505876170793304200076107303064512347459741674586030782213600568750711693972768630912964589392480360596179074661829986068213609193135463855112460941291673882559007217855940402455844244520370046226806476260720689562214332098817637224235707965449478980785141309260141215001368006916633573018194673828616976467650410815332786987011977025628986387412755031534027945328408966726164252485587515495441242548846449673233031734717569843965554403613483106673456375711935675638565148520775078997637623355710336612845720974349872268340162307905650539967338274068550806211663654715176710194048418522110386928424759319670637246581234705894931560033173290317558585409403887660096447023733609630001460174943817727099802656768398132230540387074189787268664043165115140966762475517373273943998648439692032488957070242141507544048555033205702625215798139628047007002287652563250461536622068009357631105039073258399834009095253284187901001368558233977389404810688199609333922489523536106980434338587001076706853433932051361129679642563294406511704724915242856735822817594641567334920793265165453659936020185020780377389952085818532300536381576340949090560929392549508165584845554655915092206631891923941998567883432383772077586761739132379298258860729294673866166128378642799556158410476121833828047988408111606832763158675498870202004706881864750677615744003499370599940605516044337929736411693892456501329459672733042095223359584305449945336280404914062636292531997737983108737549214364926751647859493634711747709523689058936491555846438956451813647958483291406913207030775561286618110115895600103093739405593306329815382586051820883168953515184927015484263030837409276649675207135378732939950836289576599823595073655078816594276111768897534278191422311621463853108506980616689382625634114355318570252111036431808802911990437628956407333642208513354781058972628860894344075152037066657446633069415670779795777716477457855587752313949869635908753497961043000505920661665681116370782937474177501089872475816145559725627456740073682157152779268711947785867011012462320545911538578286333803799020720587914796713352511059012302734489688303763685636440802666814640588852233589019369295580732862292170750359351639777060190696680866627346776744143888342237020850527109190745688305498745014288031174920967922391162405844698418740354001496836609446461055025893987902628359254302981174839248258002406116609500598934166352495355882214089695812126492370507297047058936059311569445867717602742557051392775856200507072763787857125362300684502090599728115643324345067348817439323226212181133860093576188545736005780470779340666212579068168714091809389122500003153729111174364592302336776201652082836548598570590348492978940483980380653197275982984159126375857915794735152021913795527054009752897273023204330758850348178062998834942099340467067747474338662705577672347915588176508280427908411870410528922702090674834679193008842443971906991473034278945215506225796128974378930137565784686283344921531530532306308418132074359535849059160312808525554464153194642406583052659155547934091531366779658801910106962625947581382167684044903698002697177740704641254848244944735303722832504171172767210776793766252607542473471759831101848988158015375964806084473818133223579017354013771686861172633606222052375499004220382586610250988768548220823899696312409305116149563246442287441027482636478622762283227780069932694332396072939630235294238089206107314208162825929764334680275520377415972177527239047511316998162742523109837758891659836561472963549976775904863703621905819154504066903625882045866120520341948490339742986999889390487350322188313436155501932515453187416571253446811917082131413562603674955871117183091406492890287245918190733116901029798926323280361557860102838516718111904405516950405342715681984427418505115101636824035680160828244711754691788109067206131415240264998529003445819406678109769912937333012978604858692421815425740355766883494679716421721840442566080376471536869213401478815365526037868793822885648444338611719832559167120531166420076165596116943534298943371246596602833717598359828771364643340910619712216020261144964956118734622961629731169774138661337672388955920475305102277243577325587864425133910889332030511404423328342059096113809496719018908031363622513089417341854265418353767033955201795162182221862778947009046678367051277648893587688361536715597080530395754086080713078307228371829849108228433589757022695296666850971475841475164565847039676066627004887319895968718810047332862128490366248971890252896409792878055163146384743622265715221816187457327859384242373427988307830433834949008329079638847115431802616038185189149428921064823717087202948562368356559738215883471143837143896628463741741153441667179162969902096726935243995710933470359219831173545365769151252542551722305736914698917865601043936552938829842750143085346345952204012421011942915191795388610783997565885008304522035655653845931761441828613532421084458051780954714999347000939427015092517128470493100759289014641410331396053400245355424532246542711156010743149253693580425514469504374849849461217615040446020621718976998555927738199966173491733195662311442087563746562804725560934848413547652535841662911443965755076829696062475727090276445149147812617231385419645584037975367492050653393975139493599189866473539057825623540122788617833334560975629693679338119814356521844304385068449648151847964086016936288686352425027529051537402059875754384551947098881724165453536051801795816981302167635531619758718276051321227544604982343247080702522111374501015664783708947431694153149455309471581190984217536417414025535468017073368265360746327939870536728525746927564673695670695661304323649435361641328699539877988315499651301345175187832041788010969759981600106294536090351985199773654826704613350766820537246622425067759211559891389805695981365498556708214672450614774643213410760348966736277862775157015642711686517310751193951006029692689453437138555242349008874342938018077061425426778081884486676937158392621188573343027039149772631220676863906101832152533474112914408747934580412969517554160242831636916875252410017872903257742553104768859792202190802066757632962437724152857067097965597863395244340265350020288120736029793506216426772585270021225816495936163304115548592083994112368663834963779097048560490099629355869224809879388631044693713142204384185067159931281943359711525986883753875866838010341361475937998609072091491972859818684308973280075916790234881039612407105729281237890327019406757910219189061448578503880040500812597915908272968583358659342924203558535133705560749505533603345681141456756592418790201163176297662341441704275799960560510370324317767910278502112119083799990240925984592910449663958452337731748204787774702472295974979971389281958077230787680154072457385337290956106304957093452682853250703305773690093496134838112090114781792265357998503706155571250922132156653580653521232107818866555438888247457089421204925893469697223620803149643179550617309795360514135603057969559614289597230251759371392535765484527705391669330654506326536342408661964181340803965944914640919442734182926042693249486429154926750991651075724560321475716197621801388404013345600556681455409638140517160435026493434317616179424010027994028717941406229346409679568118365379549112057595447509958594690893073055315429371283420701786407151999427378054614735113774977232191922082702812345327942611983718645609614067757251802527864855211964698040128511993648591512134812380248890504648262028270848110034059545594875301523819046633829325581015246492678385956493440178273371069418879617005815218182865457822359133567387947273715303764862408218602863971386424635503408385757225545323235311348615395165736491908365500465343388811021876900481726585254074030330030566520119324720218595482828677009809931130913769823165147155389250778705831805058492237849518918824316322453092789907088101004405907235915690107520720048093165288619165066598043668502187582046319077320775093942243107580729212185960604154017832535351670065857721537419513858673422134841952487513221743222289901709162950886831016062234186451630894992420118642870306092123085173934672309613489455071871460435833774317152899916838356206423486671898532505193524395404436615559966335818700035670086798260868890087443242472645794992771081150624435758275448174703583437936479746244171467594462334073405750442614845130666574355337488031342227769655020621666564085087688343782272309170997436505257336619339869971325484286105382931808914568190829278858523467038886323282141201340402136516089283467390476222251134312290064892941549186731508244332503353690196179219494797500617985087564786266296558527537320029547864583969851147259504050063761922650344745701797769841187673249034798347577237176886501824072345940099491610069250782641784883789048937816968287464297302736082380953397987910767418375097877855256971388956131944721513298902785794119957335840921158505735469322941022507630380120817861921229393908921834609832010254622104854415183406625799092354919375787455803297400560312169036034295784575532686529469474392387827934133485992223457256224121711821648983836620200679591087305966397539380636078447327123545212278004461046429061248374780624853067159896554431249391371324745298357539238701136754588193308844537814377494390766219882226636142799191740978809467906773573566584740918020788914913810863616990281771776498811649441631601831715223737974766818382445846353350571891108760476694037349276962231276414588623404621480237094207606067996962990104087717205094616522546691198601040370205213533499151369747448247849669860946501600823371583050441275931360331815461253501559902189776163898684332652404740998067431664745120553373229206816427265911552208804515923755863453171933159517436163703745046967537170204114133540462214971577801898204662264419307553317536180735604452936797452850272366679347586727649978630185095651726998844296284951024655209296586311643063584712049992200998483215002463003895262117076291586912731256764298772565384205470844111583574776535082349015858237883642344748053331804485072306517068071329550589115342888926707244021422924385771990008118865789232902097857921053263142368145065310862694087637160848453858310833881130562191536577585910163529744004172268982264135236587729455389580044489062921933842351516752924334176025927455044469130266147920530145804019651527627860490753671331688581803599616662739677412372417924770039842928093664390291675676132050409879688011646996187652814897684462846767900550466151166697960487880665703597563419385419055666702874014543406416554259929332452962330737499302794435117484376387814486493578835616765746618934344655529153566207614254776200772681337727269043853328582110692680551448509349830550035771337297222421967099280344963874167721152167550326974686464904531660652027993787511671733220040520356589682891174363161258508406097307602775238035133762823685193380731434742690790984403144052030447619575498164708095310596500924346988046474069108285728809923976674421132068250829222661358277322954306287937969917544465081622953508759426708885782041537363700228105415665930030927587467682415019971082857931833548564102473993211556189730099891164376588496403433357493589250390440667659338196567755028727758677400180657686347457513300636826938329401127414119735681496575450835424289478999060126540899170328423629441644919535629917762677411007570902071781727274201387575898422890686242800303525886362625428538481396413479545466570454167462292661299105484926245410066498337776876249837342749778865252316906593010394273581235489646229623667327474246576614017298934275850346294838369788161166636328409492190178919443593666597624850632140631096387805553080499169553722863282285871310135033986913281048424743739332129706610516126102465060972534509061857894969447399514493687791387451973727082507656940316931938217550654973953935800698319566996326982452750463562350567449867006277489370553891289176831303523579764205486746240594964795800470080743079550926149168809745166344705498655350930559371491890501715924573209759295949114314465935017813147081791770509339570894980538859311828013149312194225857802379460179233346914515838748765080954143847352881128536625696409668970595394276704685086478473505443967643877914715758351838178520428359412886796494611021638813206251484111664203860826568261773154117154636528291462416313671485706120161226380615840853678032605840318816284652924046287409027249903845249887384331571815662517860347660368683146990148150063765249755522797176739870737579893741121590130116631305060391927013728646065097003369719986594734281714572960394294055251561822955424503191957025762269817700909257691257053587095650608592227074687213313189938399250605675911973798419338721276684657495555043581127702427008328517132905834225491260901528874499713865836720310897726684495810693679250288428696213258565840959291571411114088590929491026226691661948122416406200996718835291381983741624343481455937000687636510219380135378515626061567577870019444624076553229957239169554182729390105086573760696998250880882784207773054699319185958540741417857039538474390271333608893090016754441177761982424494390815102671580199095604228488223753284355450689016187867387107075248389324162294781408212864855602253386704978122823798168867850449082702137669378370804479052474711239293492777553997928813363212446693895457321767430061236688439046433183817592742930261883222075645035109132388932331715797996891833687243477722540569449375873446024287159804817718068806802501347957078038759118586221861065401034391352975173000516221224911032501327196172416920600528746312127315414455266304178575406474240673979781252669953287922579593400735122231179398429508426321920927848852379847377791062256206720087879748172124051882142277045427666359684044250533388084216503772009206746862963885026758197710738243799800554884136410997884504440710937431446527990728571559989185451424223017606702016185431232052211043111535582517256128699683013025627354481474285046364411866249832178098169725803242757675104161723548106877096012517455402748626534989492584643995169696916902891771708402139567356285361485230169488735516690402795033263430044605900558167755765317658609808134906584596829301756022437993333240778373923514168147178135209534241511719466528272414063376685368067721955256464091231440443380200992465097532847635647935441076839868691089376364020901105932519370222366806729200679361076544353455619547695716802503435790969237403185338605051062678555804641407203021156985850309583395355768031429794445026685360843516739338875180261480491064904465454189522783045184678072095313192043990081954187563074750240310860294720720753659960570994190545141572717711407850299614894922692968556154470164423349808854614163989669231069146166353225483806351619994178240341471241937804258700936540504422567313682769232479349821705505865453772356728459601602868874011693414785341230570023500983189458102415188265977078632420538275069440483685615561294289019177207896736916900996663095642840832423256902024718594392586195378763185342964223459766063379205362491347403051796278363699442996177758287949035450746255112567159085690916277901021918681040787440143402640368346003847339549839954068358785937543880152233378822526340647291721129388709550300730279228533589199457692466078882097329777716812390166687436643729547513872685048644006071243944074792819140220235007417358952242165478526980189284402714974154674515438239680832825218830506019426490101776968099874421915867305078343873821075723537361767092416623507966255553866364699826331387914323078482693388603511477708440463383752182204074720502955389818573126610557049973253208523788936378259363979986602175395439284756176186127447529890438398058484714887194585419206254734804917664963562493093338859960884986986632263062337466648906756494727590510463103395265080378056489241955010835777551855486448963302712855368160543141196653188314500432308275269444376895196360117075864655370326941815644558752379774396190120966806587304259125329984452891435081236074839808938329295051560660985326817915595867951250546862889233378636401072844925101597605136141124512175830138294405670398262647927479949719969854000577648306310345875310792019563807587425981711716927132818319566390798873626517941183096781343331157498390196454591257183360245162802321247711224633612142895140887049260113386914187774474105564194461609500925606326657316680202601113733095834990890420374036096586409130484947404640912109390560109476907139574486324632608127054009980102459558393586817959639638851449401147043731861597119128172015081302250182995997567877571897158989740254664555101516312267677228214614514937783946390121236324197915643342011369169510128503774076091024107848512061843024396554348253320311866787343220496006194274243757584399717278050428796628698704945110682784869437431309626859264192670890169460522183346534804648597355993182397704517545435561250255239962380161750549846461853438225983206463814166326423486410594524077197425198783626605808231050020401557710557133890449500309021532951547499377052781867290440870411810472449893679801227450097993820749803730378426179240645168315666006430618181245868311194193361998743537514671822782182071568676592276702606193173432517825226942524301721221265746386020322809997758077320692512958936093619271965662464473849060250350668602082977339587698230933968905983562333519593785256201927205530976966431394343424485183145775459472862959825843694030901385354069379937184962200659778075845180541453358481615194180196684871577078153983482695503911177639303486731322088841552707799998391890340970721937655013395644790009730335416675362458664948944878614774543676126017225316402507151481514173228218514736824589619633516434945862562133980145752292386214958910286068435167774066939509666907146036228656993156049953718721511312302427080549314598189878363819813039039114325766650948025825300100586449768261805428952458121268407671673922220364656849890215776218685663480646372527782541304435832144803878048440814247234407554896145166420818922473086272160381840647306383240937507016113740178425852322180179449866750379568473249237325685864026096018102747312611949935774800480122929358224258521388347917154152592477316721757540452524803168605052442333921814854936129874900716394508558823738948186743015448670742789282479379492975070500615917247532576188105595669265932352572087280038114898518735578234631217174514179201703625166248894855298592417226143502720392239760469507614562085320210734620513825934050118939788673908131306595690333547540092060827011560148126150123188636783037716347084598435829803136540046064518327700499540332348774323260331508775709965852285180674555466421822629644689384778180425972622360698562382390147265825515576602636358821843605759695892986195844100989690883757259623728968259817958172901039397945553974353448107759641887180633565782470207960553465112302810744223821729190492425667708463084694405652992008542841762055995701991912018428506490243046358665248263344225827235951478568938930204764773640628865267242934646784088912092673179398862071007461823895587735657962001264436991117963130196724749097183273838467349733984769198729132992084191731805216384101212320341723490797220388318238359021033095683711615954778809201284685986420150345052599684656972959161080844000082897540356294940755604982398123689543613649516080783550901908415008687274173710282309875308514629823190509188059988735711331168343680718188198987355741018274217044651599772333534496074223846268820463531933822905767635433861266694047855688959108236620391414822964975254508244708915478762051528291444641151215693149394135023913012805249746531311894901127761264606542707109716533218575443067197283375932223832440866817253941872204511808244606037060954247144459208717056193888825546318496012389868837140926241642097922535164688330230932114998930594408841646044329358611683353385778960059949018044715764871175522362892968879420200808745754838297171211290377635890473823844694140854095410378746966898633376565392227208886352800836371958179241342528849214146594731878156150307153518814424836809529027086774822629921983300461799119710767275244334311151085281737306923346277005420986596660298411495413983098506049997804971347579505384483493905062110019275503849397194131259226598312557038691410856518207890685108437066861147183794947083652090241848273146175344537876749845485328268359500610269107637215780969654527822670824873092776443354736551670199857290845365698678717338415122718469988574845800752727766270059870568781470879275439969207888067040938464629783631764695667224673727833197577548073001954574162891580344227001557061557714876080759268676019898500148675794171483925624375770801934128896816506446670962856113391370004693804069504747102028443622430858145928855681787669138639903100472643004306771119918269297061982719787159324606283239536405726262397425540115075121906980559038229978560877674198836315876501457293271421591304372023996827987775726450418572723229005543071994561348010606795958285156380111914944529961297983636738176470893701779371312090190974010059644258583136800905428051667447788773540324617251390759633439292753353925687575036732121567510667000258820820312887231420207463244706024482668524432066999970645302075063526126893257975812976291619354168547360288022751308096575726378309614432358696433638676836326862249721209739479624585007655597868875862214901712246033476404598372650981766525183875630198179650873334950932051763831366463810537087068192864779769341852541719507198699382823055037360504409001660896953683900460502796459488870065526439170935957886521299530972144819656526338342135099345245163612761839589031939858529017121882519564030654479189631468626241500635794666097933299233923277183900370243256091786019383754577360428027219818552177254477044186911636080945812619546853651038189458758626187722951651392601563931523268062555226369814131541496745894019293251726952488882529517245458103613084990084054919491597847614353462870663046317623370997352025701875777583760819921943201487122846151341344665508326222213660155662917841946579160251878789524931466335604020998227068771983374352780180527335889930940851040722940050383941140314848119323805625016640476256894583452435554977804983703817378317292675767619000435206791792793625851954507533449175039445947701635928733911053246860797001170387052886791627715703900654568126501768760858835391336372571178316373385109937609112347314137742589679669326149983747161549135928570330336622964264386365965216769532628084100796902937988105873548012798333979079546647583603469242484979912358585244900245351005960977323654615374993781680285506905933995653981825803262713191466615087316580776485785761706571940764006709220210815310864739766573502161327169605739117920257167904759259682375546540525339939586747274846301966200377928503528997427619173860760694290211361666504786231808709287577036772573502216055488975976576017482229380957320664753839643462275221950236303310146707749334528572970393453129991751620821421652904016409044904891747914671702501435324464779317051656350263978750692953447640609980404674891116152070980229131499975349738039593789116904709183967172678173052394545504753941146506373184515997813262296739497531203468358321372797382647271909952986836472588381847812467821092412975659959613211295842210902834406880126925073871998705818125515893446614811058370840449159556909131462597896599558657817260449144178949639905352257918771016332943636509596788103484494865703672745619788702338957949429822527032645363870222111716650464632510473788239617191139591050378351192619332686488373423032355326928540555717612881280453812431111368258970322851670800742854255608434211274860105711720071442390016327857065118731796736178679321755646979100072000586964397771203070270810493366203895097399236195788809243453146287496239287522835381668136737049686054154289145599350475216489609647974195471790431624322989832780601493232855197127278005402785642928291184596550001438183634880734074492168475987670523421606520501474894800885645431489004553972615818201912774084749748712515146309817430694694141803980634763681782005404030649801312042134907017365074018920563485666704123518909491881378566503371279090398283246921239081383724575155282139707874520052437563686798322608826852407178736541858191458609355250107612561241382759534886855808459389733050099572367608529045598889087527876668941837606414639556892474326698623394247746612777268045091684885383639408225793737734631102697074839181152081406223648968228353603407090699879102102619711521227473514794161004891146014187793359717574449696462699963343130813900379362694519680829009411921628737882889535363141476665573999242116528673671237786861952809702067576160354199650883590136562609983858477986952933865024157066956035436198192304468073138096751103827354921460380920606537015438307588027354672388749129212151071691288435183403770246479070949882983607066579563661984440854362148707350252062831765038091019021940495341838157058242512566933385235916497830311371121018542036290104599249024828534441558065699950514518842645749467996252893282329170964602396921352644840366111549622559690873538358870322843970947160537559234642397566382956016858848687757110248465904255195176851697150433971572761956654887422172889585530969392152291874334042397515921612329875482819195991943894167862188712555549945358224380600298121929099171812726064427941653363008265718433522604885028659084658899632031771787253621145086860334632705949241799922744447794773887143666201916731695321935395149852052063851446107637368918476342475317695712587176538174983000100436071584683685360235180376202207490320617563651555550604933825007494657472389913886595891633065093881247356689057395576916295311814410466049396975830486436384868915145232606294834709685725488770356716724130365526063331849325020367016452361935673479239679491456349406661806280642523981830361817141138088788077460364645388158034072106328711257624642630580727937020271955027083255754219931751943271096705239847597270743522714756433378288879103593051546736860754195607253610735456405796346918195649423386057903485596846307952777212148114802929284677262965185132929562879230439989484634205919992596836860613620033360683220468898575352009433412914581786942042428386550427226937164605533346156778722645094095410249821801445681064316122316114762345671226971587990040280696087178887006625644580031950662931585268740367456078739512939727175913378030443568866579462262535739773534794956314902786346761842903447477154770672317460368334660897750569117641062365463312683557390367397917541765396567873013309355512386376258092312197404557148844428066820340738063920490168083812050188175489670659699414318791211963547683061647525577410916921391955564703627806217154676684275102094288932879308052150690961214457601500111761723103679689214809765017033348902928272492336432860017976905358816513088380779273209936280096050495687442534561401474595984388941178756429486210068169790427904770121160587024026159585460940306007122982956442598182183674338101122714872089293188939211817883305200839995312853263747950289698198225335771063662442606299351069688159056053788006492245708380047419349891785486356982441633537306850380199193801473186773296885174079579790990728883163224571092385441495869263972174672259788863596028920634542181516073372911773431974988929071569710909900019377577095414897107045982593091158520578412577318959972211121834406185113004531257248418015714448014150816726171556209436389562657939432733943693220907620444510542345847425330198024567316122917581247701976213242185084122427190778250802844195403969406497294866115100303132485320922291351255224746968287549483902026785405120418167984152618203089268081584655673519445505947971483958651854350212831464387923967671616751132988935055880855176559340801857208053005288539511259285251335474831379021667748103770204364481732721271701986155402504888396405640531212709462491061305325816294461574017647665680968372685545146091017145596398395050167026422579170920338499300839152675974972945579688101871156549181465908206545029713936904233563229536076069031903379246708781006212616058282131169298595939073979160909775288254053624649234349184532300673822377270222246629520807499807158149136497514587403507819600128272833640222038510252681344800345667344898842500918684729167812766177010846992456239367435889187770238429238357639460112299219874367355936951321585100088995848647448580669051054233502736012389216948145941120404199161694523562082218949044043131077832919605302801510981013210075977050427668266256407272154683561129260764767708196693527753793087858217990346117109367875296120972673982292260347399996046891856569168043361384662365788675429301491322159657779196109590856356750830855272480023615730813097519956325651751224684567572623729398204259084545642017057707730002835074644793385071418467986846585823358612536390807474172560692282246523126991010821674263687321816356322367266772843643845161341953163689034632977857102238456291864201057100958099603032991724802106251934968263885342199198258151866391932992927300783943799301584039350810522612866099823218829696946626307491883336784589075358677628030635800445259541475513304921711068684098142199358095090160936817448191803802847760633893184512058367709412329821027471381598712080232673155542955217159623799542446466062920125524346074404871247357436866552077084046414850470510958433687373976923467260842957848450801949764445013503596746885719260199576853291175063504519999960125622040476182972132821021137486773580491058383686485167072628993087679004823288153589069683786218679991190480816662274464725649515617797405968657874009136688199237763349668540706143228004874159305377714493548218742856512856639692726117239660621211575704141075648768734444244738051767709236540176899327504451337289142340536749297165430664277291668508222010293076268609794481898775356368426257786128409909490324571083971887203719748630107262009696523839969041150108869116912342359344518129402060946430483859237145998645538388559029998413080439379043980206288298342153691882647453022494126622022754533296980095319528324775481773602331965238235871747398849404653989699997286352997956589207882744064389046286962980388446965158485853465250684910369535112077311688496260816554713916347052877665182894009157878161086127032336405222437427513611986705202123249361199651642282433602919435586639593433228538365222817608197764066304662604996501421784925831373334032257074565304665219401539218362912112811326536402673870481865573948716440776351980877292659154736818861281734420828174356589887475225046432093953445262303977717501048992837237488402574633960853472128494246999659528080737773424039531059616087169058106808674333192274985817493691969570509296167953033703785099935854533374538189924285573594391805139481886658983319690808939660231584388828920041426226300872150487190701944397851318615599831070952235393873414222668218786146987304784195766020621737333788710123880976298212714401380159889174853955351618520620665619698801592872617201012874099988393405443722203108946516825504295187635488336314164011640964123553037937130203120719272166746894552473356361014717911729624387740240605057308507897353958358383721224996729537106792259322394372867925406588268341628584718829686842287114795242391292546731067355171784564732427264909064188108193763332700045148988930539981300380323182278171515777809311270011968918274925047060293247831817876673131866747774488291904671581276282699824672437725767154569332876874131837469177034007747412974478920581846831524709017984669515529621344221865593819752419822707608243616368983129234556023050339122998531405208601326980344878181034395985131708887725083979589128701249466134652557496795280070676592929534423441812310953714355240315885382988667088932390422636781503362223686727988812811733707485772486402749023005323967919941466444753362442379047942814958798866601214629581742418291024911374403741077935116518742011102875345208718505597594299861310979081773205014145106648201745249815650017410510711923740055290678343607005923142090610097557957138250702217177141497810140932568307969700468832134166140119779316430483754024612719419322211807580037798798366754547745839172974903354897964055373014342140634121982049516741116764041222837792913042730865500559375907586077491749862419572496369705907750533834981067427715205656693493341966777028088985776169092343918779755921726883651906890630587639873963691983916006348849557673274259411774248105186553767100143865422517734680943586254183522790372597454910570314192749642923537803496780023271316111401163235069426953650200274174411588524105161970811996919498529345102666599210724763117348394596911180459252496646732256712060352967743452951781811267523038936312847850089073774241784229828187156834043363352753206292947762728637117242735460574162328996034067920693211284497502412489031701307467867714289187696602887130190069742887893886538244786602499697794528278768676181808747444323619012764232507853259157515514048106335947154128952908819738388485104775878838045385752624218162456721332901312981459276141712501334130282479918545283936631757713361630650870102729606136333398706451931604830144023453783714517916872533880692308405938383827707192977034717180285059264478960008434105170481409307333786962019607004759854883678719995707304576278785056516911475987550995220349991282405129256643555028510786734101324623226196528429514080672250366427056031939548002457749339994392171736545223530246435173598113660145847568506016305288994485211178314050325032453338465732832644005615940032108127334000673460300049896876205628197141585675038779613516056907268104228395854164561398164329736454226162944803540141356295824065397319388570455161906228282933606910843091252043769216278091619996064257337576293967816470227130965682030855236930596326173628208884708610113661874729211899381550889899196794210904050511303722454258534550955430717048629510335117995118245962394269901000881895593750218488001561436171292269542003161759236298541137168809823707717276779338579850333966166685147941222453241832047612125963963700360498566614503046754120858057967962824853725945233079669906885602517261137869909836527226927782604702180905371026054673891345188019395202911243248110292684333949976078194786828125341383591622428729403096176547536125520102757131833331825264949891665540110757055868051480044216220552172223300383529182906899129569222372608877594043502760934310053256208115221686041490610791411218936954753346943300449169050560963590248988358900778694337455697713359643568799310373979655139008685283243178272680812225711803310226831483497344993714776736944881997905174987393305377368826910606054460232946815515468071625453633146313834150540859880226762527961858894677131751913865645381788810679849080207816347147706317999526548418945028366099283446561268956490195930437046839870616084308981646942179191842058534706052273463169337833567520435660198119607405972461180976562155352947722368349079992330983194711368441766311815222614694907855715419984163556899734418855025954863594691245145677997910041887240916056727996771150795812887325532909391296436968240717213861451402316323187337883023281034543363710903367232428087105946678784917994967215565917258013824066356462173677169407190342660234650239404218747518830551072221603361070299040446961557252708584281360933081962095394852862991209864770109685523886195699645199464840562964769649397284352705107849096680272699394764404901288980779270846699077712023501722218408500998189679042327936142390179200431419987421324366247477593922386871372192615641651042678471280442389909491232089270504084688184545050103994966007046347316991975786615770811577823687428071035029126067445904811577307887073635608875026555951389952679478066950881183039061836407740570502931896934340287560620407688431573064689543858500873212172720622142186175857134798889952948332521112405740216397484999731762779603270078282976390991847036983930268059014739061303247039311737463032470029670383673802211252184391311627672837639841980896107794655599423381362835984480982628687757942500135771608188821410927857695309077448455995609423818801334184299733272781521645948561275853814757422328716460982595548696416570648645034047633607471730948423250991191869334671808185254831075594562816007756932995623916673459564554742034878093266448622640088378163689682483165581745316272053668523790395985670696524234945723445359007863901255635360177718582291561950761995918422369090667649146265686682344212614570608114366905039923247119890590547006008024665604148890567931480179869894665838518564729245572702155911925294638061562540136499021249440103801901966547169151841554213124118863419329046559252176852375717002666779080149524601363826799004255855452998593319535146728423550641552680519697835168864507291907430903596954070804640794611093787509861237771444293565930824162394633162450816062223264228543670584089211410282655630771700813454405604651078546554723866619394749878908115974071772074782736633876066014481203716394494115826412139910719272995514378486020554728710748202866987356151733206113841577925487515202268544207271058864081420564759012982012877556477570752295321264470860068369130307200465245232962762549248891176916213506165655638617289022988254505365796102431129998367240302312454119264200213983528161574233733344350119976499269242262236839504775631637582899260126638082011368212201633847310687189262090656279181685614626463870512399885371504418643022914928640331636133673005722769103019853452394688017764168545496782896338533610489090584472109259267244565090255125859896028581760140091976393141600470809366286633315211486903319734131711018489318284813437019449181871743293478749400742092114540530155965937655951007736772428807721773422921671959246701736816218331225566315870505233611210331116927683431046008090286226966252499149191682606033814739266227512157346926914058949476941785352892882025146410984064697713468849587967932819640563491142031728536838719130668874583863064216470275464752466409571785524814056300433012354462167564109925320939197074453712219476108642667290523218158759107398305452135202370366273283184982129013724290987492432085118764819916616912545043392341909651684236604990317625934286008475825125703306815646629322391192091480790495226903478425442896832023271496337341054399732025306864095549973902155065217378970256258662117718517999321375904408460917790663713164035738714243917237861284161561544445940121418056755284407155706708614183638383337272356338984091887146599249884434831585164208864610920708513658455668343192426762007314912770371687828566581491370192124378799374450388380631413987414805653712992485157986488872485542805376649506901700349334532913454841868118312732524953816645547024434582444806763954943913695354734750900059620522013498967216492928959616254641200928643105280556718220501254856236867396188317370114008151110684789985636687879311930557069967993126726611476803523149926101566032106918372018220718789419336650384861745139197438724631775686880756740769870583439726378815587654640878302198886406637120287135748052363557033308580061243911543693286734243436650067426889685187407073533285794190363250145461466362225923346385438478363995416185582688121543128427414376747639804815308761012007314756435598731172548006155005510620661805862790505324656489802583486468569307133254354864284689864139269902659536413234336822159423411106285413310089935469569961021718848975455891743655972696704838060548790517382429260041863021241601599656557166666116535141684977518026542107976743918149001050440849850032883333651906177774353463753656932215885847597696594182340625715217847654643736586002622889118233105048020817640261916386791803883302122792677660612519592902670213069788900402781486272803622725616378211073416473013138136177057811949489884790414561943996416849358769811405473354415996834627413137445790117078211805431597294594435248933082583463491326938336050891518680953670587908485490455095439981256253792759898151595049026964175559670077932436449758916815536710457691986724933918753577712570209169878191054393646111072931146012317113560880381948834953194449354565347548672513337075458549738484429391441180066773948768832518666816598159121326474341994350280397727923666331252104361755682598197300516694311400212909615958276057711922379380735163597330476510074048171944358392064561613410295343821416904002646821427498490566032897665237022306762103132375762222574344619976912288044861853177902477902353831369579064782750003049020393864547033654776558443595265733010846827727394810231904569442692606230807621775453012235355142804934410770483700102918831762512062668497969004804940115399091130835423836305940532693495455605408192763586172037696047602391958722894384026797576785458210189004812420229777967500101516551548557930462348907455356152097911619501067707792814307896241468500793901450182831360700952521144382356377028944979467632952677804966727463260458645794159184861468587843983293650960802560776020464358084330089905568546094471306551134664034271280523401048813351368279903078406810264173001581260392406505844531896457979675623909053616058138967841849193240310729767358768599956126796378113788102286673418633873989119413049155060189622863786990971115526999500836731406320538817070266082031190107225312365321571695613115647561064000321971388809840411044026886609519850442052458656900059209618195775538481551720156095576818389382978367304537799198499121596482830241617384618003787956694300368610748603108673473269373214798406045409744375053636799224972838945678510451855962654934622853319709987396629642879018179088259546165363956436100986165849330476754473141318375171031191055314187969971708822037746415195328221340507316196053462818943364562344219956815146966063997072502907859553859343052816893540426344267248972806484078110055919786610803515466648202501143120823649908127114318581831989853507899483205423637184908295983278294749868309809518308574510883732685192928706242960028423080172129584899791913729742519348022470329250662873784029638892760339194637088153790118870357115702920915357729325517074188109493930688234933856636075808889171591846830789897990106266697854991566649106100416212650811406103447965895894705132623421965609146493148820463819940328128630901394417130109815603965332951842244283540128739247866460982359986238487557954800999019721202690058098580184803865819927691942722911301557374541677152641352314579480256071917073201690141153308828880562351841997029171841004224985709084804987267603059202173259909742027119222384296339874959063846304832287903849413495846143444507109928756984626004955279257932483898829129527712249818718227681514240192918923633409587224130326329835304193365430679846284122628890515922402169683548923860666749227891910416960311287447367251293428460583865272903987351696555307313992493982669091248212094290157044562146250408800588227091808331086906853755932521816957825701874984446259524424057615696193956965712953803394094872675732781013217769242113161889324109540102690716564383217714350425030659809509169469133490113454663878322214422927345725856508019903637703717051424587585593661052507992830231271826544221970606032948668304853296271063619487121265664674333515764983578017145452766277080603794255231829127905358527497303057719534437627232663979303139390681564344737044936128018691821377949833002041646187104098106040760687266803231194692863737612764589494777795816041907982093944457336198962156858692237145229767704807103446922405640538172908939782366966098102524606910025921526959627360870183434629586797706295715355612328913339907794206889367764154461532986861026087915374366272715984072766810497352909461627102957674901347644789625032315132729123379647449112514952530135034556633961298329230141315670983151750843867018856478425868267750980574978296685161191728041077825748760297883198641792134881522333910275306684061197827382564126419735035627042755725744869617319523111696400631811792852907106633975520045148028789943969891872273849637119313648306491992583764775139269710878300319699675790068674430809094530834241020767692695579460467827692474941604153892561069024234042780649662396221588328370590840002681821089386341403535731166084576976060709034934701481350786394422927399826063894994506493800399760183330327912257358852515612115045589051579313306097406753918976030934607980717343876238356568837976510466684162891986812844644097875410795326893423771546816403610184560328385106445909296663743533734080944985682249270191236528694513985692654843453436543783106667530239051627345527501102110632648441720975175848380034199170221368487784489542278779799697491876655544569813052963836667333628735573447163277045026637108666162297592430198696868656050416751333861220779110738992309227309080751272522106948366234379060868317816299923444613248997757301842683868948033900940593835750846075469470466174942077322286690878887109961753945122141119282970008820430302605041691835944211557747926851461753141794812870485228645974248532985040477198676321642648474244605903787387453160115437708347964442872654381667169322277575515605496148165157147459257334775109779716136839812504783753258470056537585618585837099645884220845255030668235444364329829286972611408290436403538946728043111036116851155881380282419808255321245260229945372400509031099360621793937662270181187690797530583801861028313637368408312488598632684799476656641977094514007640531393481789280055266579705647313680316591339615236905297437203925903945064924948411276193823195992873970559770250333964129308112773809390419245561935446331590070700677297494569330880130423148004211510682218458944689649522260626912539314522460688118501492763840149174095698612521152564689799459427064603350950277421260556781569637899207391092845005162016273350963905219502488545291752982924899065551674990024211181465079721781212888880722816120771453009100754828331743894117375748240605390339560049000032260109727111055936087625200154425053410658320677007014681559676669217355363464770462216221488113478984207686519250759836134710053424663746234568884784385515109758048330167215994773617811532123539312641401094516133226516191392739992790197453889101586545985031137240056297830817082541924872895639735137593168148510610503837359619705383807640084950978328989626150213436528885065182651595328166377620491051021631793676843329443262041197097742000989706878380258085039634723041218387395825504023620110997764933611531509103676744804882039538352418667575974758693691858675165637095287604922694808060165325104862114812964780886226141542179320727960893521224533864829567164674335972576131646704367578363266177644195402495985699444186354597018634508384509391328650272693973170420934872381627959573508362723409959693663379754553298152404740310565800749892731165146090168659951757174342596216075302180009278520398972569696521487460166793634412351834806169251463437153126824668917226335077949239773796072941436403422187204386636077696617930711739782674063256271628466509787979268749221697798913718404445317095207567943749459356906280186789481661588556074133196557536101608834459897259360819622276026741158995127837542321281633944915048535194171677748166201862882806107281612777145809562678431462909471849778113724247979970460704529627531746042064647749856146135360829108466508246566570743365557997902574143395060247261431175611930688920358926806895511973183974780410236637592017723030994792820907786205655993533511276389080712986968751043470541587241657025019922922878650474614115002026089410049108222180297212657300097998390499545914579644213019011554154882928024627558457175538495624450196406120563282357534446723657792752719193212749475177070011639334158692621386298158336666022164115375070548988040151584877991623480940356270692451638713502067953624910212137661969099014178103460002274086929534053847134159056001515337470075796609926152232688550353103422240328916439711255415469248733888183528745286670374302935277878153705194117550532097279169496136925847854616201659739069187719079081629241829805885846770086689694515571085640001373964732796810945743933458665526285920595453743956178033195803844139972482408461773782921136920575332147514948458005021138220865401343467426444320895280054152204871301611457740401665203563447722107312394114917156844350756889598802296627491762801556833170718193143949265428316617670441949309591120109230085134882672837606534174341098437192828343094295719429595280659319076670973986035211274566148558302015021547184900047515485138066497667623193027475125775751176353428164010580615381947007804737585022856411809351795430048971969514277001627317589507844409063731628710710980829983779616089043250265369603657686089197648944038988901162001311352380937394001591853816413203225394589317887585104811673014060255481642878042593939374795502949325265140076482502202877653191052902647135936011825565485368456667336555811800109834017965294445575236839391231828541089678223004141325485051584715909003851140967490304805503319816573934292359981916383532865849782991473684688573674972313828094171470645944068006500642060457771869991056249888036561276966725829519206122023862170513623101955690267212480808722306707305851987768343609692027242164628380206995453957965914098027695410947927007453175711720728465571399726544306304157670302430957975964883075409841413579462700049649079638652350311040847706140141786214202599163091005397572644723367696934093213332928855425568521519006756935681666806540405680112842871292553858319654027220289891898739836593895816378715212693818436770213294554387323768732296790620105806820555322247072688283846451997925404152404901730560550868549390533336148095852387650198076642387838273150910032541894534012021137545951376249950560800682879689472164235974101414698992090417826569323998813425335659138552498002489608682629515552009494107888439052475887906762438342889045558322708914923053657431280946247344349415411600896562033462705671250235704190972242929263673628137991334042001123033697997433106005986632512212978467356444600169717756544033702928990366334094028229351517656081819044698866717832570090484540654161219561857226664221335764013857960241335778934466786905722123769944111315995671192994145518616949178855285046771675363637261152604120080537045557266316220176772596037046941939375346802225991963295172673805860200244026793570290004960427272927200366552292942601881459617069073526969977628066473372426026027796452887279285521503458643725745096008405325437839832237257281266656687764958775426380309745862211074088626194770890761974477200873837566114184528566690178496094711076806802533143197949553302609052207563395904065506895853548970318870943563506838253145047492085811222827363747331490046761860612914775173139181179442196357439183627957185315134906768879365772282143827937819309048867149373374376082062262444462814924704184457190190074568966259484345842910907905470645486827451904589404299774747650098675897324402851242249410262695865343381762102017240095742894318037992315379098276920815648177611021666143362803522594746851641292554928107710265559727428983291128702485674074622183899810555932944126807237800456922488644601400671099618671726628787459564971988943703863172629759323850571002337134030073911373216005833731011987506900626791439391066207066715983069208662383241198767714483773396430465763539909960114224250872173015287400654969634354991141303954819497007542855042770881867975356249248878400761870123361988847614150529944174560806612934039473944100323299401348949161949738807888990447754157786144097088992804268328083678057086425795614016997571324171242789614757266764016209066046385988025473234078088300509585720302394586847070217908247690065919207499769619637164676116153439255292572088713058604389608549814290491821521007184022791122562342340376306691498428605673362334480444254653853302123996484345942173910394853743428508551731320018749179113739642413451525482432565528303797901936732519266704754942334665536999450124739039225633182508160938860522955232143655911450062838067323681461023736030155531604906653787445225414083046065320288967040775736842886425060426789572799330112443713248087327988623399201101389446142639074591108379116691012584628615362718098210031230685440958613440534574603071348514392298403350878108293107808961146452407863997003442115447282021711321268589146737982082100826781117785486107150516313260265308863769660179870421209640321225677200166664418119656846407128310377421134461907112418139909847589755673933718476225851013437061902703045091806851020893166817404839524869892055262292818487889508180442736081596591433970746892158478371367710562012685578349403481418381402855538950317296094058139112504359581342984870896513198874824494697928344656169197937330296411817118070695181444187221879773534078560679647282523270636233824386628968918818389895172053672890261472704433873880008438902178372859791415747429059210742992591123122513196448317329533313260684282682744377623756293642707311642360847986182422457715867958893180564761852106151809321432684496633334800975120744012043870074655634428043759870229180601942925773247903479918427478443298626664930991309687468258035479559393561165291667070372597861003765098167396585283219888143716574646125728138810883262377832175025796629979614089997044961671696009124464637046722332751547057610698102385899429024936650440130866857102332862440800165066436112851951930534085215280818363751225701603235992877987890554024547631939536938839831159608491902912780103415135469301282800123750618265387579620147324914468843071013205917311233427018196159716183105024741743021118973755651728556170451375092949918702112662921427749559700100424723044111149590837249456025118233641825558005219378587051336576731088261384444859358091388632545150800874082342080654588409167591263131315990248937218136258618570049771586306817737946433124664628465765697098962062141243919483550723482952722133373314994250837940421901657236539735940361999557848038685727865105408990817074521935470402510396223800566018358824466198539948402250730060157199237950871446459152898121163360346036814180350491360506179960566245749811430728180661299341556913707346549710829989319290556639305500182180190921339157709118598804142163836148803190290803765591086891702046032185940322338431186492603640731316149176839730318620377459369802288315752065259968208187430360771300037242453555142933168763391269645771425197604777145071538854710455510567816453251829092631977297699564137437660327398993893895701772058199680305141638355834198608415287449371394423037836703898385059317762869375414216607884032769854487460306350586152800563325922489145293074530749086960870294484276917719172119918925571601912961065711123484264257841319125330409972642803328653499514831389618613156876289154432774212573137938115695090183507496301583041600339731626231468108278730362068585898954155697314466580953919649229408128580286672705459351438557373877603917113807088192112284903745602813432282485572050756797040656477633113103398005734212134772251083823135267600181289407094646572097174944056298030223776532322005016738865677416594890325113208383437332974031445470930684250616510337378073549421120875236218706665787201906798431473201877408004028291542234147916356389700230786275796068247884860281756720089266978384973767674235258006252947021083892923697671993282598428611410305663301767629760346532190301904996438601818536994499037796282434920264584526365096072957941697581359544744462146806576498310239566300962464099128644490926747388717376323380361623096253631211871668297195993159551699132231477758713249642929306959867103881881678567857801580594717078010899689643801877861271563382602974673109785710306576693774606741351207666053072972043810660672957981268094303532887607958706067416402853480241028033238038136962228956437111372808263775919895940529572243297163775516637916515240785978855659047678226160519699557171685689329305200616229344314345990033275159007875721921221504565913890945025396367037860778961123043584316063111166510565034115528848060370865688941499375060698434792365755061001590683693049876041200064737285746804227939247386454968780955592200642234761812380372892307515011428809233841155045108936660930865806306513362357570912188019869127211808574343846571083706307764810095980417640831637216717742640586669550258075472928697463685705269792370454804461498310369823597153935153001799251825625062542635950590803309785773920975438276575888946447755970637410748780256459144455767039898135634745244933297217007708833630333778000157674805975798214239479758746437093576648819945373987069221405405529272196150774452267109338252845320973505029103541219728264779604200119920477089176691617362648834762437843417001797539019408059104772060783608076590351977074897807863700444130165711744215450319957961116973052707425553366791231090592557387770945317314273590579364685147914547915514638786778477614914324749238072398823797232685607873404351609716220157525088855879106581646231378864959502880648253848553423305595162692320495244389820001686731825096516230769807045723667166166617122736345285605610483603119920145587500680040131086292727422182695379661173727338826310390687892083864229544338117090087846767750408207047125330986840601654432533037534721670588103759598208464641281382298712121532195989684958596175940167961311876972923291468450507765332737047545127593465536023335635652379748090893211640818961584786544931965991938152657569917636119452867253405713385209424940627453851760006482404365010178051213156450271901215019917084188401254045619730196866548970777799962568269853876230172463731724720687060068948419916835101980477489276311420974622455744968810057890576267526076222978893393195357700528199798583369043503221282324016794287771652420031411809728006739405111974957118002708658847283697254493094508952854728871696611363177527816837104098869776614506401009505287900445655075227314278473198453375423975553600736313034411927188757130391639808326102977508506840909861270403224454758910787329454251984412151360633056163139322334855890257372518951032504684189106584125826493062653212924051484241672628109244484427977802666808987315955858498375292640060250001796214829589567821863151425908507608151973391601131071764278370321407140444047140154868863206689524792428487255972154096092559719137187367336549062528354091262016108879536470734689630758645127545357298012455598080580851882401320899898978050109376799517902586042525617587298578185062850380619327076028832237889556840247622139055362403600459513382097445062816720481149756460019652820541342791013071856988187408905163865947411850777504842135228882874510106909204837912322792324101863041446568211500675077677351317895857064339249138697910820013822498250240502524421057442329528917815927442510969616483017011817944037305557108833251002244789069565357211679029539541077643304166587174548090431416751309648916162143815279199258186592090755429239213271986733780752552605483843633960999180731123856043359171486866979723515292479297688596465061544505645503786793325312874859601321188900686937184577854570110864663605495268690269363128955884825659404611129086293754986208245768941907368369052300160835661075523846987325584460095159777693799365246330035588998676435095855409667806911564658779647307710922486490537582523969210891805058944270835608054906704260632150006559426178894858147039032065263685728128352472357934534157308633828083394987682853319542562039236883142674747519087157626850485894143828026090743079093066946232218197490806301039107324401943540377900321285337866959951202987644451018859862646327711246015104524591194986936358095339304652308898760562797834546967536699507715392186605707374551429567928594043092652033330589751960233233613502612385680859257531982553652064695364435135404496611907776923173621316035657353592689849058557547746448221033532593612483409266019065668018585044661973634531815767918675652608002940142527828714969466562566235215957783548116280030468173384058485902021713425849264586438380140684090358800696879159144656403350849252351548575321609742459008479129629719707644198769410301366434592271059122502485903981479978338543941259024533237151978774603372544515376377037649144736592030320902429098506730261109957857008140573894629255055267504912229583636852292871415797110496627719802061209526790201502133081142334569834107027057648018573863871519308337482489539923527474598800739412900874308942545630696116841225340574176424652977800268384340758686831255510167544651459292371897078674266299432186175871286696723396550379951943750613214109962619332441303673034621526672821313007040094907442280076510920635969750297965179954986230262660152187489593444414515290730278002172166750487228037597042370695977595760572778721670413590198740911380517091715361087608553741103042871030772083311171387879906989944632721647075038439067687462459441610947850016324504142569310119323940490351455524575226166987085880892321498262602269094932695195183091773967464964180681033858082192776619352606698515783040363465649744793166368969363193081292297153948145379047864591208489684392361776966385868846617218601892130456669659979939532878117853976688305321059125802655920364691774385632258538546827819174256647765317802063808823527644813689674798780808189339431553012493003058664392090114129184686208934922840550184200162894807777058726456450010932610395665197720649487398957729481038887670800210553150023423536756685050868036810976298394060017289558421609439182716046457396689106194679193706540132989440124872587222015823522920968404258343164721333525576222404202275787879038975580736244150076102068584654645349633365201559895318993623886864736657652346031205450014133635027023293906656118850033488554926208712301902138419766417788741793821589600040885004787871037733072472681742869254635956089072304404137810864649387969670029632532456896125637294999226876620923668162737348653510870617692980712909867158572669331549552875950356558540081970804315067480764725453324325590045380255140559049552779126032458411724876413838149566892780085081067603097754537064673981829379942379829834355417819775992341892346337389817461879308860657697174177044732190461808878997865318223151260884413930192901128876657855359580013791588830251027333852364804343431611449531819642678248652857342803383435185681427387038255567944994157228110828583556968308029779712821182745882179530417668222686722715361937230515151340442959482236886823607054472139875496176277311813540344966410797646538893073737053933091822406991765773045693020216199251158992300578879931973343980642238193974957337365600335168218571297074359197599478722734156053357723934907547210566823315262287047336223027399012242894555604027243353634678427212141806542861612693015398834223061869890058767274480615543256444086076824025943338363938733496323831869954768890634500423983102044884167778191817081035810500879607666578789793567180533420433743562887435224091420758693442430383966445413711021605858569715890375697275518317425984229880683265915343563233213742101235557782213832909638806716282340027312615453521986941747345574223652042916406682615416281486041225955378062458308320105922065801173260493040019627938654048166853441116537734670032215441846544559372694410151742459266860484536702132771976137030283626332144866249384851270926290214058113364860789011525740156386229027407982803413952503548347208735045050603036860192301666429203775398400090200453399306396771748522534650477195722045184410824354980639588363598292216399124396471116642263317951197306058442918826826185272518380442373261041985286263995376914581888902100157191195240769324924412497428282316878764383976538053381241759758954438228844290380629512105641583803800362658744224544455307044583134957857298808413061179524485467125443967580834623824852532166514096087829186346695051054840378863821622179093784357384654065504785609405638829003062326076090662576066736490393338238056397662294179153297272726837538585575211806123444665939611623938889731916318593378025654921010898433929216255033772031841837088365415696219298658613609640179975514106709336119313107814997457458996480658399384411697022803485732515191119336847714260416281438232126892268961879414044922527404591494462106228425537597314169184401652845347153518437612696462179309158538226477155625294073166578311314840462710060700734407718523243659110234898688027579496486992213790966197768269195484994537362001890932570289806868550081766687650365577794215124388999779060734211808311229788066137221127565209543305995573623140954698121716781682361951046637862159410782882362526476158928097455563414709801553792608027128994310586986514088377089488896029859995665302490308444332974970478935207803330767519462813415458473813440179405761974251843713286491690197860738548710076910147116024024485088451508276542220117214038657683398855616709276817952624718628374013470416475059267610069821668430634329444597096085472306924278204824890705962995155380048701493769852875016071041599530679661206485244900166228475896337442218719231080474219935710601066073301438921618971167778498086168094527616657954672603056433257980664644457386334929492523862306255902038006509187924091712121767831538666954914332885305082545749221751953244481188430322598022631883890835230345597222835836252488148397725602052666017004233744582348265253284546449789367838625896578258567041916321784754661780203052564129019359039401993546554586935679511225691726284625408966254560351492184378585960858168270244267337395178139958458826394971015279187505658642395892614433456908556735101079712656365725888627115183506116382061698638374696305217104417248026088105064585271860990369133595412796814248646390405148564854751888643037888255451502982107723714884420812092951067261189623526176699813923982892224333208808185007430598039838116792036152790324727115380930082453699642781702304217944703237921636931344261667009794885566994458716329713632803974644089766876325962999349670637952359837736302760420646387044991779380467720850782357249576394093538222714814117450187012433832839001594792068993321924332935184964312026682299064451579636493165554949655368234511620744883647638013836426546477810803154348090688173370542037847428107905231801683100863413151850284215516152446346030485155679156578363429358133132280766330146618018938158050458251441767140771617310219706300052095722938301048576206120660466638683224584982382875594158964840943358527588049362891698554593479748958025177613682347986249337770688290526587391870357249567831164971486897573759303928433705986298652521113513250545058117990589534250333600452441646705108180602923357074068335094645694117209351122522522324308947815519297135270477879324434714092374008089881235529555470899041330404072934192696992009685439209155531264766074424979102324868565218255402082163223679449987285571679557940847131287069577588697581663544064733326627737868881701829151012485096577920647467953761179187317627626014563204035489951492700991692173690745335877059904094032299275200225083573502230935721533494145508020552665129905081160373644691352906306230584085640394670416581097134170547989363556261101757074346402916578180363385415174951319904340609452000392555308176567916751016978407684764423928970226066467908146315924804060576446425302928105114791668279163079951971069443725149628655616026870038942677235283783107052382206357530246819557722589417300780097800124997438117067462200695500449934135193990995270428042707926098922862783791657908262905478661976129175710978283729940655255030912750923033382341467824211472297769292999289492065672696830275059768999208080788113538094218687462253532951503728782026477413335672867901217951318483396758141199018544873300736420381232018187045809308729189696777919410496328083594221908550317939827200728097618135724719956577283384993270003678138375801399758581809078812853777217443694587680717354491904410266586910311394429278711435625481410187667022096806730868112205241894311612593869543945027823392418596313213406279202010215092293135061239135784119468057259663361133246228286639077904556402847794852483374031047012224864374625303565278408342136774770853640359278043803372326303709190110632452706956623108522359188459129022875262561691533615584011315518763130885549562360620407950593215898378374297735661384979612014498779601318156476172125329194074535542519511704088957424638395562551105655964729215832267006665558292537591205573360757269032083098072476116764101713744723833290684588584455221107001433471979033372004282859402293920953612265892501631418276135362627583744860260638923561395995059268725343500632255839011358886934738666153340687370765635105821054635291201457899350861126265572259691981357513108618477823619340755538818247830144536289476565495409121527662541401055884442889057773022260133258964263064959359078489466161090819497698316592942434282826405339571927091954137538246973875354178465939766944169435930235036761616175025669917059566820537680095358456600428218950972625970850728819951337444715212065916081836500847258163270450961407678729509796458843121367641134323028011671703210943906994837547992757752947172542277378024973953430677252210383675315410473580050948710878213253771413928009392794200238214211222085740857214167936662490490380785613402032205115491145318150084430806544018361547758295055606779171033404085723936099533483389886983917240568195628315830946983947747239527913991852770397061543965318127041362478103677653000630926300333066365406860952777490453865198514711642097970468672484555901366837934064567113739827259737780442813881032663317319088237431906356257686287760275960278614435339787056575542183330189556852887481177029567765947463525180924872392022532849000521766596440835637617234415611125355885309956909873269798483460521890260041756101020171630497444602111961227685152154735984614605023442268573608075389576301876414193336883751786289680913384003077339189021914497230798473928123817660523539439761207555620617335128402416329173600359217650277569690886350820955554973234217989860883781430171072019938499731970738328242079501240990261564518716398408501308832633487307637233719818748365358107398241138717698505624648248589741617347556749510469327109500673845143748658462459391931933567822844676425835264902498798546238048351592514558965874489861869122315512795706132463078587445765239248980481367991418744392708270823812693306717035426121758543541690412375064272370237750135704195715047146114185155649224436199191235032245126935856047101229923495038914537345021415129150390784234511545377456923769797007139383839042675525644629434506949601604146393456301995052366338085820955835332590043985446994304370730973349941791809409444964613374582722880960974920973234083564466260003862227378830441510036793047951803132853086364375878891772149795850102675497056674749593492078793826044409897989801495203004309098776968434230326594216206199810429207742110204346320764858043974102566865137095089085373796043231063166724574819653159557504778654084805961241106125771793678394565847433964398078511017281409807852525946255461322963690569479778963083492369835138648413271360027546102700509646455411257454715209955067335915948796389505073461953206501493542130447157255836714159234722684983525739094391062145341224649340453661436308921652120026473051062773520413122613604238517202564769062930831771187395604763437204351843544596847619985436625138577433570558164096871290165652677084679328590001027017164477154573853971359695705794805865585539955086213842050615709633262648974167064943145518790226858361229300857021578177591861348151329471629147974231681217241852331316387948784720801800239176464896070942365684606161398155528090423840590370408357400894062145772787216650885155075076923399024035561642211777076949115038145200820634586200682891249431597430461343371887866482023791472412197136061872083718596704463873902300417550914185038292076662780698977000121578867914611342845171713208680311985511757340102719286903118888858283418612301164405095688687720930731445829224780059231987091896468481729277969714299030428548856215814283566283497800730631498638288026202634272116733239576151350192944747552220575454293872671380922800467606342926747589102498281983865935243446741379576181589825085314064617767363135145618160271728652689984201381085189325158327858785451740340030191800864944157962368271832212549324508735757623600849308418750602671196266826411710278874472433439900523473792783556163102875661181816907149088474319985468910390386366576772203021102162572749676393371855755675896843270620725259480051781668720420465005816580204539097137502609615187673115438924184889181535956596834002523603733908055717882115878285852962777942168686307031233316055071569914760853254401661228988092602140426525745371788260374350445572939714370309450751612179141380287442033361680920192424786833835989659467889348833126001640026372549277870648635470388884514454169690222735121173950937264646459043021827400920674840215695046422617469550867470970029376278554319115611274613574064097361059591469254173198011965638763381099898693721646577259246039056758737721007734282131742718641406904389871776417204174793949828703699987997725345272583993104109914676348854407617760729025915002561389368995407030206852851758639082565197216417047713514401810670997348957766226299744219884161295888969963647062603488913588051972575258399638894114018853093602706419494546706708555305750906342635838685685249442374344485496384399861374425920900580132879395904736212469638671630305209430121301507695928220340720744117312456793854432309890464355475214952627686377725085452572005729956585576729409638955218907648298081951610606564503200515746525993995576717856646049517112564431936412418225473749051234126681260931769770517177464892312029845259362287724722850465302651282812602320472677294573793408645419823427190574523368809061741084085345574461808991406554209241887100006706914916778439253304822902934756569144359704509410991853912474604245104008582994753349030715370505830020372566044918433678628074000580423652229284746953556225462910052163536418756813816223185460517840413862148941292034856488980675775328773285889593439516993586002910354422189649456573334392935091327969282147236179436715658370724766494975710039467517986081262199577764501784548125432918127187096499389775345015841598606593076325498736971472704184235900542165662594269875456532739046295311796321258195680879337711808019849003039983065735153402808133956513696876462245208659005791724377663406397945037139713708911665886655552752768237019394370951986812072168883275412074066569057239594983971200834290803342681417333722808110241755930856395871102199361271855556479880566860353457786098866256958710060883458487267230835036512165802954289520498749139177728402667930650836448386623675549328103743288916779797004693041667958664989347589312541229417367020974446803463039335977648894525898414879711045576919412795366693792772367606898093393991297407230370898839221079401662590031646051352603571209727783587133686640244629546479462602805202647815348879709934442589426512186566505783316285140793027702682302792429533461003934142202407963187129349911317643521906661912114741724496123399953283309463748207585393928625824952242691805299447028993050843544777933907061637122470371709536274667295432608106156772256746641607572979692766987014568653499360229073888715963482800953380215923364714397276493859174301593600542868098373663945548433785875756166942562397827759066619660476484224728582146721893391578629754776356394754433386287030248510356798110359081062073807713117621145441008362034195049895965636378800566200281320682903711816320077122645900601749762052057626159087371016415712010526007626766314023323768862813293411324672934301824321397227672107330003911424465797534731113799156484687877828168231486314634569239763026980140866504831668734798143431451996667278552957100684265911749133984548748877975521352409199488290449035753067281044497475346019947569011888831103552693384911453739556714653066487090431626897370412401180563534883544276943027223481251704298521666277006276791246275364225850689098943404511873497058369737172746392095648088912307977488548054841723229682643596410396399408184162958234119923868717339074785477199609339186977309350789146018899168375858617183962482861607264779300588636668323860600443885626818789493193344096810809880218586393865346290531595909175836096372080818547124360083926045422419059016648098067202157459832299297641203923203103928102190680175278675814729964239139141556077061124568246588876187156215531640394625280184348819040448014796938941767446832954063432054658416778161841935841164073699468724378465840585273798124734531236271716511991456789824167254830891212593574302954210070670727438440058009333720181677862043214364995891254531449951866146211463205502849433904991350518075290164555242449160281230656916505330304918889386989087966750592776238984334582948013612349800732522982579602385994232486995057087827923254449637689879741044338338305681685575684271618925069527895966651167192389165840429361936718926892777459453840442369867893191810037478326323308755491124326036204755320619684366236490807651026746668672024170768932915512846467964792659438420298359523784642859119253791658645940892165453118389296331366812239400543489848755077153971633169283682460212088686391452489740497015149644392845049856193832188310825997318169452432887450691479284426897483063760245423172196976161240744836557185212787196778966297650817363021704490657755051266232006034169930896595213900156510317855393613535416862987786645410535289252079534964283006081835284527032927102763574064777037179382265605398105895524312879284400818785157190435398682246021468000596007352359207438517993870995041069615118724649017487067279804392240558367535031905685663444344342948934128046993514666596343064305320924492123273973257755497632242848912357305418233884046708914221984064440748914050893494183307805085065280659854636934745800656213834485833503054940131143238819270371182181663345764484197773955811792636960180600231300900275278418924537719152097513291858082131631883861523244855502112885255156422951088649629100480765569395762379052172434875700596096286625968729850321264681324803281482455201744045487199631503588593260336927743188678259328346825102807147165843272863667316169893203685451100042588459876192944729014457727273327854272575025050974845082204096453836838316527936753308575787276039838450993872575352992009552346731040108798265685834734587210586604071793019620864996905981360527960457198460598585179194977256870266939868056588194898966654880964460923023515983547941904743300168675344269487122167982241827886561792395400222896849137959490725577403923214895057526806558180758732661343327674417947348837502627497630152391267154422142547608335020815654677060718790344351524659193829868415656371858675489558946516808749241197288455031377617862466761487454207633726007124425217356148184361947089425211821782470148104345718039706573520125756007485744053432344966670956637984793333553981128750303581130020528335945115328600507309302303375387548093246394867594699684847177773457940731891805087247033992723755239933512905127437841999660631737911028150326223739982429665455932632299621733156820064498766161101663356313866595971062551439010280693065599667840984410006565564894260767013771709844406706914115899379917783323228175087712949170757075196266047327870306210375526718450993393181489378897163786478821889574517770045402902541709913980696396170187103893145938250553592297234564588181861520279909241516482926528195652769644812253295133345660736679334908840815571076110199647229882362165844902038271867545133840828315993099440752543951873268610161278006954815465184132681692860039370050154041277883685329685153599341854829208359062294365707906238680655281112834040097204040839862044544732600300699502516927166988519293866525540752439910562821422222253480653750883594923514523356800268979553374913412714967021126564847475910605633775030969760501414527463534275740538986294554893419440134950456741853787453592544002448534521197190451433261688894490990899318495043505321338183834117179705317732776844783680041752773067564575908631022090676181218960198789634161936776197690269916783549300433242687701655439636595002618708099959134536298392208555178104339390849658792082428953043879781742760363832306876827562538360602711033563092613646301347350129389393378954176742248813866936376051561866444360241600828855019154459803912650084808042083003715989632036754646120367750886943663627272885221642239378341756361537037894420169885893595103560915308094628508411644587854812512495588695005894489168240533941207483047121779662824716004225590539168024076130546627824099676736345077527739195034927601916947595794386317233540740590421503021318620351389278967169082407354771589539230420091420015971768399609489169099346235722911022573333466875703568076288403366355892108655795497995121272637322694244549866978687546497658319621195849284813507351838535885411761408956318764004166575902592017683185857099906212034012007404254964914588392970778013710191077097015627379050529739915447154281865261562793184782752112106538830043996267033928223920798174621797981522298370095360810205029132585736301321531878567049512327616468579196611182924053552167109735450994012094243836267112825970051313782673724617082935408866349575752585100013871877153692049371008011205480607337522368815706829764098652629655916444055835131209771445028279014912387651344045941851581625877214838365215305857362785352848302250023131439529104457641736235400552867556858710543133051381225823436889975771688849116222616505845946628860661045813234933151340807050621233522370482329659687517977525078834414290348263632103079879213597007641450172745370824312046616621729829833177063765727265269297266313944071881817334611263887690664882296537664095509983133489169422247053544535870757658491854206152547404311203507521584487502853199215303369217727959576688803490356918647173001079692183711507617666372164193520914556544952370362450115894225749471349653465892854189982136773031211933837948572711563240485572223047552187167887250704746131968392668841469466120631547052776904403066464911960088333328055432083664804047311575370857356853456797810265635933619014984297352902374994503744667319656495993100408710552334814815734730140113983112071726928629773984814623855533599732835021087778629885499715540206600676075089264523701993110762083989873861470035922433549454753317423664446062490964280348748645867431370353263538055080880748695407534490126872588211808778161200419965072916611048136466921271891371528703945438444021310423112510428721776604875276684976833594227881555630648830895303912842337979103225019115202968144943958343612534939379380218501149084539391665709645117540787991534075802971824381923662923752287209185225646464802650291826276521084830373486977002704275695971118392732286292687599646601841926061258141394948091072781150347724021373476987638862140167842749035159469319482082313173936373057905906757374232161657097908160535478806333736377011755162629075731623671452121005947663022504238313831003304633914589736723459427285155261842675150321680393204765557061964335845497029494413877723586309692185175228878654417948492014772216763741337283995230583634492797951751099999164138053563712376226429206348084220530124977135362403629036212596635522616645706572114969138904416329498278512801932289950685218228933567941918309096089730954980672840267003684019562511013759615609183128670166572863567765983041067067787072687395414906289219571795441839353261975751624996876035477039646735783044517387068480972459003072231457357138635041489687994995012517193107739783762206652870703146311562599914119119495649023853171248696796937861656972930367080011170843711898096163045537767300023752664763909417955273733520634662502337278064148186221372509926389842182688524395361640640381232042316408719137941815975437655561439574373816199768878428154335865631324056800214905534137624386603180374370432934904959358869458960629582613005158683199791246360832660981086159591770758730342475887237796058585610834550127437731208238586321073263777700931734440417675351208782821032543237586741610529447958163073358789705513388919945790112187650225184953955794678554370329354597951177247180352046761466725754882651681168854400826921291337811304746649691166449204876981145934612362089176424422452327851105570317926217669736405956640133954344514899236169147310376343341883637132621761098925627262145392930454419652110605722126993249296250892034563911887288236555542252026285343183899661698300630667040619335665280291743203375399811670086842044381202542034339341653236693095291099431102519402400177702561580001549100016151614945476995790978715683232207061288222926605161015777452449126171077407612235027684103310490515304208197772560093528935257173024684087917403193849298336714747930899313106279122932551582702321180972878188808083525005413620279929467824644382857504820400650268899322566169077944348491160753674508864803766961242276847646095812216255906189048247667377300766144148847226476679839306320520815231474297412109555667797454468756863379436876132815483148296919305773690946233232135068178586826832497324565703227834193238224107407544766291615637427578393581970310973434058081393546899445082592775551922395954692357292571293914826354427745589525589964678012763656036082898687001130566080285910457348207517397966160854714382997510555300307311021814167472488451672931674528993607109019048204138717183534617013639585776894458427697412565444419304003258015581244437904825801398557578673921985137094982563750810025736806661729246528997991508367223196813279324405869958821091135515360060754909206880238170850465992456436691187979360776272745186261324017390152574642247818607464545747919736693349165737084422666187011737781185076010855419385487427416551272310654336531393134685821354793918229999581373550452310194587037852270756079475608454899614564565585968523506194066019072577914598469012200982826403249925136143484802439655761897235886410272662772620372572321942312234046091853514059615553154839461465056389164125828676402432939110414448751201578700598398782090881681562016651085894482230329094090550108651381736138185204496377448357772264694848549399329686141647757201910870503730516479646822577195633261794055321862273394099628380183446588218860676687848354839317920649506897560376396977327143998833666736866792256718721318911143477129302743458882490702248806198609300401065343592455055528342161417826732794234440576108885554809927955685252911526676567742787208993819453367987164919377727954642545862651020016086905509708784536059020593027332216289520807199688563206910645370703539766589968722447044208876280999279041198919486084553739988541686219301568697681031346035801961943979309655082282526008995762515153063592324033571630409809993878163141756754317870610825457537851558123914799942230060051254989669179684914091057008893900545507987897982601268661950193567299753795614993800540316350516059303050913605047963850693924234666811737931124190598066503861603531080522487659332251240490558787359816143622501352524725844239805840011637539826777414594769458788320039429380937786468675088504853779706877674800854417884254607372071362348705708218075142234324550031281264826586721994476389308695224473525584090279742449633250551139098112604096377399108277244251999862946026138473922177430932512724416389597165038377393461123435527170595220621251288314217864791223933312895336990464669537202216272927329463415328674245059327277197498862035284902892528906844156888200416888818518922642263896357045459205785821965387792796094736154099336088918735092002384005207762872489793745313063374697723426682088448007526085251725096847060728781440751424462979316104409080137997654819258908951189725352057417523159521764637550725215867328130989326733355232903179012656071690667136613733076368886182233564217217930952508710378375484063199456356661560601202301239767398173855357586369821703476886415880114353412461613620257930315267772523440556783101766577858279909011217869825837305938222396471152643139078063995789587569876209235863035403677498308758759157228646042766812126750375363862627147847543974030539202398913031463333195535967022847086437858839939370519542684994011648153740832495499926466727931264712241848981043368108472978664293056344099779169189019729084933373606156026372688418784781100000989784790356663173597351016387628986829765223602266890027121216253727407493406573700294647435031605684594404910250851615579515964798783624824259614854132519469577670530957090081195657080593594136697963896299744401248616470706320575300763387017716518866766239657592601227618626994103282787561470953932252682491247314402044251995411339842434464276853541894731957695144752477467276679074673908266793150778875952607491663579254750987035481561719589097583714493783246191332201963202094677455509783395988274265729665908269043184865106571767361793919976384774209659953611346833791302388807302689096607900206320140435156543604098066289157640084851171772238678050776838411878785604491238031625553853750115937910835713191797722442893498887410387911318463063927719360281922105237683899694221828326186401425591020482221620975889895345446965483191485166565534605686270533138481426376865216020349004134853389966544057580463733695429214871667230162831881206648483413471638444986374180553078074980585718218543819230803387026823136282214373716575079834512749750465991015641466587597643588086911674639470594507646094356161917337436809496976880570860268015351274236006126288344877376372215953188299356238895729135881651723663194049095933418211321120413851464039126137360425863804204858344518819669502848035633801987135144545051952092380135166357186176336948958738286888690561628505382150995400649124469343596890653358586204650032305129555053747545341572925611321669263128999480988677260200004181272275055117059436726798498417296809011721551092124533787461153749408338490917841453938056304557816900274850857359810516813001105066856441714136557568922967718886929440109895726745382252025968174982936970280709745609259582286907269124555741111831141132783087081803790446580409631901178924796494573134462890520460653566532847668005589366353366643212408337175763588147515692874982977099842128367199260969433343849761481095687605892922152851391156975101515685830594891863777925289790320287001467640344983041268363759358855293332436546111200469645929339270562828897585404617157410031288258666464926846538819109965993457143566248079707807960326269630244326577875669094265749594997035621556353202556836802396159739243366391704163829720784859640594478466937202927217847837439770327819648048637233399261810207529259741635537483761220809751638808178063639506302621496035867943058508862392952647003194040440386839450967252519459994954722194706237834238601848438496799437069125860384184342171096273233164049084443888141159512048486428938557782153690338679662423044465326929591049502424672811703174722180841196330635157717321113720646930930863696946102556886053204952526476860666533120608344881363747458434455574350074516887468647085154612398138486145954593255084706857470895285099576221844981778313199961304379942027568030661937908653063430049029474890731273202286099526460459177974811237883639633626723695327299915523377214487477501792263246646298412856192212340990820692799343482518893676525158300125256508385441269879732902917011942644945838658940644315862950957203909877315873536008896880414742436916046820459010329877024503390857841751227570571230006383108151805975632717035651741545018154746978325696717990736263385317378585799927893553196638851400250263991318156929967354174492120475869175600244880083862264287682854881346163527562424126292732590570081170477039384438838676179860790024914511031489904729476733334383442019731600782423621465992031200082730457547244428682135315224896530334512995724731589985758393398570849888131666505039735467955684528188552315464815891146104923006746250860588746586589366141547250408601168865986870646139094796841097213127871248819689056985991087415969350039071970739732016655554083030077832019739655852761708159700777731620141364371173782515772900967460544793583227886869573862555875413922836270758806863883013796620809763106001810239916640010071196414635299562800640189204321109499599447642461244110568785835003924288538314080393754440670649077187855012203366058635127911382588329719551466851571254505864056114640245375147200256489076427049815812340105592983771989383423042966615374431861355327667452813933530301723140102600234362737346173928465667954137612941627494433358503090471944106642312694544447848686881816799024863921895126504676950507836547380502465761406673434121159689605714911417629686851684475274411639600155524712837434534998069109209469018593454891695469728254218542796368534782933440705464632468907072860156399334396438937645806351370739522205600022411299624173177026827686438314981259759522395812606312643093704034327321333474012480300270936503887140537165489983357229029117131552738357889872306537187592384418665472154059170680251583561096427412361397217964384439019589620800708006855815475357211142088723404583148787640018668438883947316105993433737898640191151031452825515986869924701728068460038673297376295617776173153994124087447077848656578425761220240374777869840146426114205968013487461805449814440611751172565896200616509870986397988920997192516227428208049256842640938043286840224862589972177242006129949594065479443727954857220376584797581282561057059715395262152008761695471437877161059505408625657614386179927323133796586897341840841953104586605850668801353196003693994556030086760199017224589438287738913777140580138989638844805214049261780884303690320774551589079744219570274761398752033975375222821685413414383666695703778437570695640389279266666797997294141949555847694879352783508240164696863276408144481417874255206179688695916773456181851795716287510859566533302170632377968571706424922332249062489316578988685470314109929171649521287309495592937167759975509320527812167510429735886931924882449664000497860357395839041551403070150477963529997765525561077445307112861964314526740024857333472331750641523140775402630573996978874706246760904598054242028395116591760412493769234680417814433145392597974555381853861042719393829213396220679950302952391098736216590000183967635618892225304656216116491961618714593263121911566053130850495038097225446100858054361974171512386930499193013962314137009071827512998026229730328216345524731291597184295235596030162581287068686627400748333694760912182233348719913723841028652753411663094560560659271164860534216136512040848363473001105684449122947099262514971844211061946670001032640654939957930722443867328913163400532705078539961602886155898542061123376900858389802744830741854301297238399950109158853557804121098276910374919916872882769215589405371038024394306483983426634530684490513098870911149836338164123472173034779739999821046530772648747836503088628888178960244275433930706634160954789235279227844372118565998816757427823387318719136639633400275949367263126477960758659194549944092399431298696149693464716559209072328099058833097811453221619593587168559642670381519627148157060029228984526295094713625239883832719492201948366473516277187783435808091651020744295165104483177340154492433490844740336074680973436921283102670212177904421645418236155732322548371693715772238423295523057537534440622892024089786520289883058673269097362098355287947331656557752761558779117006981612773432445248307577514077701120297450752954429203047542013719079370045652333673840423900236356627282228668395673877032152458358431118752268500236898734671975794532350619599495380981833736656052504031557370690453195053295881488254943421549115916651799569619624873081069543054005706948301484689789229107143155600689893827814413894345326659705093815124053739018615737837403811575520988310251101278219874157146716990311807798851523017075615549698636336783104952238442905096571809884340808615568321305359950804647785913116920432046489798088487718445023034068754517843165990943571960676752994755463207868028050425310969071747499083486229098185598621826818968657406453039701306134887494421294316070969767683929657998541914346872959772732387221641243011104821470485736158618699721374290451303068779581196619440311826741328010917370668593638850060330788152081861050191547236163969230204189248963664597641094503820007572514309301052086462588305802930592837049592951436528097317703662953995978710913003023787769255626154346851202371875446113641389721299081546795355084414164503897889994852332905805843543783072564750092830933241774423426869795668429161798224206573245861349213170078800711803255968587168158364313969965403116433530029273875972060931952549029349532322208736248981190646438216924143561024354197881218990316705350324171363251035316177914348742803946120850723781972408931479772461886219213711927311888923223682100189740993634928972660277263098058217996556442468642196536053021393057229569577349296819046659505648304598208913603246037384856396856730009816703517017673160771256760116364877088576069652241783470012557288997902636817599353984127519456324353699243664233434477658390179231017315045512391815802998084704733493065325943239263833504104667132837051226232144327436525457677831618424959195341213242438519051979313905303186325931988816453326341248627666649492528665854882643074998309167552116218771811935508035418771473760138230901187908948822199117561945058487639348239509540323707299488828533113084987518286263036445894429327769251905097488014705437120283285285086958276895314895814121722924843268274452070753489795118919490649591629848555238829585171460228774966290387013226739781983772455408317716670497045572891126032921083826924394240944533526107143608525934819302238915014762229439931587758915627845533030347352666820736240089157862502056639890946490164780383331343890163094318991608685187153491265678077377177794072670321264931015621019112454440474901108040735554943637583004478322526089022334997866750552201937342540359579417075356341915698610934073236896112858135830487602153392549765890326549633747139431711410807737612457953293050727475138062390004381141110055656612853178948617355005785702624532078624269435434145510403991660760536230910534015447125706988419992607869232649990665510648278782283648327530028702795837079494383364112754802518233933898024730384446236894456829555234778223935804070858228359081933308398846281647369826572485331336019035045600251731746167981725650814256059114986714808319383674082820585757957760145815601040488735375883208472247069565228951223221188351234551788737619300836435504528789461861425127774726207537633761617646202146589665723470840142994297701565509098608323554655792819964073549675566622514133655821152112757874432489130644736964091753885574471027727904804651317305225418605131601853979078485340435257849423300521063067665137262564151015531966513271932556024728903182925880801042207721590826191492893497762175624013076987066517427077412644250930520165088493375797332177710935407989985839822166332988601521020038471303730230628707753411443793786426280335516613063414973440436180090287759940177915345226301333604673507984303181666897324194974237497860400930182948807950454190512843025200737738356700863521227377154864849050673425618138088873113541140642968912745528305644988786637430482113089725029961527041331966068248067038062858682181323877044682794034157199693598145225752630226192871728715850125860913855957145792763065279097548864295133975328720252196527493127867887193191809464721728772313748563422053141074027509102561234668517980734664411074380129022561945966086887447191773215691967059529083938617591531044205868311146298127524348418565424161408814587678628189130434831283746629112021893518202190639261509062292597330451260726328532317850962237127282460711892732067554344291313824420715420568166296727700882944200034119834122895411445845024574394786839229737919801675254056383231674547681672831318284833002226193469173080365598451901627076375948820006439802303319117499652969994701127621950440679794182353592025049482453104234592193612757647601836267050034965578112116104137126455456357519328545838292177174135617969444177552827878443021048561042789159960921288395192032003296107210335215831363495836323762932974358949566258239227476601195902067794479286405555915010610892765580638670912427358920020647847558719888311710577547001885841728761479126113878850748126912241307891575621017346507240681753378851216240610578915399464153783244852516625748685498758603323824005781723026002659466373613477182671720887602736633744330945464694619730962248314267947938087148114911253055247236070618391062720905445926604874760505807171273370342185383118140292014492818629327724911604146663219857112279197242230736771202955393980239086519630106503605544386969908621682557358929843181747297063677724764775030712997918103312289553518073638609821384638332747990569092965924010616817759192526977313647603859864058888194181266400495990524084376614278012301933245673999304843587603192694661545462147013137167360847612938710350250486553222374712364843889460653254829121342456216720406619986811985411347985414749917406262455682759027360063872200499549152721991038447068125164679207417447254995209739625963577730990532146006708567486071921164938903980220307812954309153170532075641927668627378906188990278105779646067801676710994949060697613612957557090260460243484349556644703794036455240296619333295416153111383914310927440254922864611677617524262209380050693811901361349658091629084433488892567239008209478738381095089132848336608473493823571245067234469969013517344342583204214524510889201972438672913819957403179400661262493440148592614745369000725231915221450671630753789451248608306554906301851452117972118652772838718400064073286164737779079061383578046107658503387230489558160922027980276705572747825091711293498340161137002893744098721392914421041481224326867088772095333800722864115611255264622931466992349330859873839159319111803514381905601662900433294625726833790474277551473589361158040713699999051492919744347308348586756474387346023577414586112259413116319522674127651971738519538587080912051355044936315935661115456379620983292148774442121567111857006701681230654479804245409341234533770280165703497637661095299652090613662494584144415503782302279372950770496362518462712598796390394501215448490715958783230822214051460189758390865303596758136425624720304601906665663818218326945976029509066154525374783084197269015653699843117709718457466884995672988001442722250534050779519145577309288573610621195421896471010499847813099167096832587571199619349796238073507776843994092396731293108187693571129815864776228264223832861620473731199613047097813689673731757161930638643849544116184424172273562671364978758637933242078492334459955954669134390496092002944382939043781777604989583124826625181386040374739156821984253335555991863779682206374514633995130839392222645703665009128467689068325885304250556383938916766738660396349368775534093840416167257905425293790306849463141142867351081780006708491619181670062085935349057543904273450923946067930769471678153926803240053130443950110436211397154450747693054789776258877821270979300039565498100092132485215495427880708922282876137683862761332463377506700827132058789527072723887605384628236430214823713127942861885333295851545621764373646069525545455935260381836066244812060791083971089744688316461334550175311047091481285342998541461316333757123017362388320265078272848723792845701938825212482889747760388874891604334092792523143398033891092492981244424777240123420676944330689001622425948024580900256273051282590914008529430192983973416647405620990787124373288510598975993331269428536055906956591763877483262727098693819358277867941181145699732520077299988003975528136322573866380698541519485367163635618508855581400475254573503398197272086015346927502719880608966373499526353041072407109786339299177687662832443991980745278667376976732396944613150499829188893251565498265455399046150749704835332297735826687192083527880984422069700945120879057228278909179042610674281346225212948100105254130195358866754100054364727124542517576477399112978058638734208749621507124278852442106242801845908233278018627815077830205176065630440355410778801237668913716362509179607443234706054936119796388186294537442112502524701738622256728450638463617475881849205623662881617244416940463720674821225557111751007208591469340848703845792111878222843664959573678707765139338513486021347732403654206591787499772605013673471390255224831818975261176735879048161473769302001034713723270297230312633296727534179361979494853235253709612513840175936253943730813136461778043295673714461506583865458523549342721532016100234626239319619410083491787114696250312981452677698044750837038634174383825233523485224437123415187566540469591603060564663415697121558521167800483648197960933204376431024314397151581533754210456307822310200965148096348581495241100803177414960935042205444914446665362228737777270358995783528185018674286736192889145339068697659118034348909110999383178550096609026233379279197552498622587481540974781238323081586599640764572830162676588125434844436404214775860236446517477391853418623627579196799719292335121699232771946032862287031657022171251090342569085908692812583098634172230947895741568351796680675281735803935633623818250989743568619099323473322221116988285615109680198456008444176810777991350628871072607205298655197789268049390250836566985539816617638604225808061308832073380117886970740248748712972904442364361586676487566760918979388496022270022655690234612276327593914450614350814489974777699024083575874866601771580441951988696331776372642735081442912355817680588719382876138236854197788663975129869046246228878411236111209288328672342155110086911666663085704163319881894414079788257585563338154695316703692355587584811380462477187713065762919672994189531038326409536930001176025817326408278459196233900033245618860493181738916678188682673238648144273469452043882312645518351707269022213069783779255142386260215600650625355655531039711467445036791631882117743780428769357181179430318269337211937679829062794092844927042758677465255728807057621244934507748151828470804204864816261203654249626506167406709969777677669384849114187396140597424793970754661235323995161075055276236041211682404592867271919513291804752010542933102730305919405542305665543129597795712516296572869155843555433990980160537132543032501706374696886534268143457345512379428295902570968593139761176621921813284558184733906259493143740434461408056878745653648688744523518438906542466839470671290133051064917597548070675335478443867849262460082626607725548968383744166228203758672570966188252795628277351022164604551883116065856688684097687246519004736209725689886797127838002460323111187982324735284884994156330882268616143914139931731077866054658434623199050731601437900944852368645642668505786840518176644406520485517467053386090097435253465195536168660429606559064994604628971123438948685151824565657732880571126477358630814966088540832033578875298153024947126911847143798529377312558855988045737730860495781768722181928123189920342035230189543342464205272305180856233591836987121188332734328779285251026386088149835456431733124598526674473311289095072475551138899596436616650053437838584530330588178497293915180870487548105137411368003962290707637440870665005414526109666155417849346759089082617489298818895799490838597475930194576130222715015183016112270531781976605614334169157517709105405277812605045008759186351403710662553917155479383073048957554764324767583587399650717466593772372036111856469456418330210610137519828245069327180958740559748689746164419326775430712095715319283119574731005935408962228556275757834797199471935370683905226183294951118330272809356187035007989042191426333904558246145895661248198764960959257127871232268435923110769913899162002073822142586626020470083922387162915632221776397151456379152036895273375352676865901870083123164893012645668515145589042713526107421083678924192610333492581660455765383868013575522511736111349482308240094486476672829159128010632744832579473962006648018494371782956344065159591797775092104530283810279485618298168847497787941610887836510102288570849714216369502804353693677362049751482627501710478710264899771610505484906899425964964879509979489518515966777779382850213093890705076422505300252956456344412224059301876360880006819178852896921409732682799378362422621528402270075397517945913311459995961652917842530223494856336281889856899288773116197524336177507213635962307281969196894063492798421067221691679152082348700927171125906085283734373974955511990520317378943376248898667416479890674037833690269176080337903950350276448202999593345462210619420713519072145329548042829899818291326319851716429532071914508358786368585889721349834761525389320186477265032630446900733610572854612796499002765453801958711172162385295456616421316342625534190972486634417451326802928610777412936097187906543963025106747470774433494611563953297056956066366585383194538163998666039412469928547610799057524013218289381987900769972967257392525595493977238814610632705779759562450357447255594837153857914068771669565972516779364074842553052854099142170511102459880899022949751289698112204307518888669018698972488983185596435151042690554520156452367894568319453743880456631324885152956231668887024722592333296010083876080585919556031582682535587451143469374361530010218091801810276399740081814322426324870202362559993458241686294491293293624330743770905494108381892143105490400627189396301259936350361205640663976108553553264184072289181107913780761026013464503259467001729623783133027675615492576935097509356593244440428183536849336444976493187154122989570843503550934130879552985214672506795646685772571915651580320002446643088361016130705945394864152513393113454139019833778254235044389448881461764971334581451966638522517857815643810606300551485833000775767790442565162349004528454596957468729132705447311654532317769006889884939329844140138958714313991549225815915566811667384087136558285349697483912427176584289681352764075170100770338523660628445389026069889614035980783544542275823822418255990284839202011620756885528958396148360972138623770618171427523864498938897142371230428192102075544180710282608941218082760126413655513504101790044870859241078116064365339840927810388570314743352569098780203020256463690894604285869921911329875577114625713569951954094756644608515876810100809502218578646760488409458818825194325613614347671150221457699431503686083462892716913742516391725925888082143145172776554262975093400172911577486117641139107807042232642894857007072741394579322627384275663613783121206036278655239808898588000581735156919371344788115747221274851238804829291661689238251994662704254699961815521608762180217900573120776870825811717705179975154333849180942522419145705012092129532845167788967680572889785119775231660606911848786736758412638976878700576737917339804072809734760971405966710770775384914715103481782061478923223352761036830685056326127796898478744553379889609325589462548790212840332540371495915914296434598720128667517153381780362013459780551107301516256007829240531029817599139699301268067595067682863459838072983474149531047769984584889459027048902251808772006702596789705369632419654061220129435885905956901316995485010243383098028938336755075477496197933340795422000028499317305731020478058180378582405645101575953358538582190133744446875354256818825029258537627397439954058523121545957586307947076900977285671742010539299681359950128923675721451879775170771966943989579118524939414680665389669473957736433458430622277357182849044004621648946628552462235483229263717178406656288245945664527238931310361956577599144242289457239424642444908029404879896964110353694995253140964603573395080844856444389232512790449320467081547693480121288525406209378911459770057753649806124438387387002489255097423111329748056056114125792185222949765368021153279320405640020573119974645429524745144100414167276288065759582281828410994042065446512559620306494624468865448810234097197647277769435313179064152204274144843495592928344006264910037508773968353507812690288988685428511665167230203848367725070726764765931386839191440815617352096833988360104175844622002334750969372087104893696855407617888982965995015319898279865402292895013583065428210902185322568930736085579869859940752101306392736267454949649558825186269817289592016915891531437927817746656541790668424594324965288550261657458314803354184505239735103519863570397187010681836911842244165210714513480230702234294859325269302615382502417744406689192357252272252605845186753536576356405760569680002487080387882203699096970686714832219677807676171100339335366320545970475328540372881500520440333398239302059863724437302501861743993782837468327506972443631511880591909300442734060922665105435130911849506772754693582177322403671778052299092451533127034617390600401628331895182060006434371458887519610795784559025449087508633850799751868140252302828416589289837923421728060408828761843884892805232983159869063502856789575003234167871835876389952083007892444566682489531897139390860783987441556605420376918476828556343719605296133644495242323632363840495478719355161942164259726599930800619026802219184249249746687762416734721349007533917246275816819704522152020552476944700027545756056825470758673618734623766232943616445274195931398485497136892060243996304317829252470947641151643393982971367931895658354120711188935953058291190579970824519400495897625317628280204634663465090000672046179990679018730962483225736364682649738083889596142863116184020431705981996616861851324658570252041236134517576099447331221034878489338849360172961167183297280065341101778850436574806237953917407773971699076962328637551413440263146492026037617092314041613117346180625261633191846568691996868898973715702549327733159399060345310574074599526378223884141431715756033910369246486586691295772398390905679101130414291047133386475941078944683659634305811722287924747338951484536614368083430879700674448826826527494300132150264360953711935423255512090701228786791524010236491823947202459303605066296709250154521678846645398079948003546268571689615296150320290715015409971926591911428487223046663536448285239139905489621623146429455507274485680519165327988300219383176169668929867452783858857381662583796045596082233906539979369454012703779620913771871931446043372795494634218210873953375597263293586390630927082448065154905360714533689521439409417832949400950421117449254564712777513075473547685319523851740148244815488538999738473914383556950203833051439902066444359722829712774429299379783018037117760032773033548534889752020310785599040099076270558859704417592884343759032230724987994133986142090481637333896228730039738253634496180191115893067529456925006658258761509335376021780085198985150410925260559719120070116838838974841564715668204036375750322170408247466884888831028389620944515143345482268640062927102859925886583452260359411786677253422898389881116991879356760299988354776978228708621267536020536778249424505183576728775825200297287824165891864881939536677170292629150561520998817548808571999094169497367630465035050267291844145695157171314890065428618438549261797957567714758153621765471260938534810626331099558193105329067336250029980048861598413571269623768748287464274423319597656212142028523862685343869855147935474468467169629010326814517413564931767364689979220064915837032045259080744421932545383873209967454819381683822064002104215640759413330535792357293822682752119687796356665878576636419992191248537370319577857152713747153955161077593290907328239452364455369278488376778494454973027989547992282688131935647382226306489670780472263681957922272122602119372060889324635269218689187348625549741457565386192759213939978882902320225841758982140350640415536742943492339993995929681699099316791152296742532598918404545523214738965700526966066182473270326820904067996189893936587133429683188006927984096914719437625422333043474687163637291444363776166627265183716715857983924033703823876693148128302945741881201546066063966324533941509891607964395249732865274334910600447647168673994146250860969401245001772187801590839254435244114659956427001105654392591085356495337711476390891017489077694670246709549135574703797517317241054356100209919740645100239446268678800525616667802608736664419001769256355885629657722041299770275320512403349801504633604980081713169407205765576064533336567606040592869344089795653283769738955938010596283854835098877249853276816210923967203156700745031089706126590624194206237945586750885406255383212354346039611765323238693301937863769868407744580653968826319470473803003009947154539646417666642128182176363720522608892012623778734586827222691716039458840700851004267556308158321545880677277689934184531870263009952760609035644143359525193429544563079479041034157058173345965181597478699228816567897364429556167888986810303252811717730767601329564753044714237264523776717941334976361453002461146473196099538490406367479643029422870655135144832612720617859264922527082541863768789603450965951916556190113413312517650149096263348540806293368197650540144812574474259017205453779588211454746933782922049115863490106704490950096536755259193586055127735545806921762943777254396733431148663732237750015848881821008903372044902993098570324990847921622938405332885208377205614656474969257546146698864398059648112369936113013216183118319055706691530441645429451753404069056632512942377407202235445135165933360329785266877149123376367503255762786748013017777277159883419073313018051753821052994198865912647818828705995871478402399793057264131621842117114823696924989446573357346903083887781136637085141220813967449071478550847311213475590130210991754633411157269591537739168541765136696931793407577658524040702431732352119295153776976325008314115850743984218597552305866724784864817000117223915919207485708276364309361232765417206990175863713497454813263255769686777939037385840045904139272606219323983609614391747389416504761019923918832532995097614862203461977042688616055957115901706366787171275538445192462107570192166787633681050946360512827783768522516707370823906330959606949886112611636733785613495316703575980612434576774120335942970703371118184632320664821038839155116784099191985200895306106297696583117561153384891515700048381030862530663053622976288163932524080394675017382163891261950668417734432440321790010950806331211327286359599812520885267134743595809499352207184626381677467901058842758898096804997246980333074486760175470760110372316371431446779615886843785501800327791009992216514255262930569578546754270133695510779808202152924942593002470147246979386900312351671019693515370424398541948711594488813727449836685101190699233786472917201431271345871501476521779622705259197515271703686782598108553717619825925042470997963845646627240107265843350217125692447906168746868310385275137373164682502222756044762397140233716691940783079391605650352838516260971295249881970923848356799529986370692295991776706556179232563657655969774152563336673441642794709881680219578332077133946588696938244422345749447477397174669363399242888705471782009039032250088786863763595745135669209027311087092199567186260796842014104510779632360510073528956219988398735594356289611442980022366717817569683972485668519831503558466588119947952232287101562485701352540027287284771673090784867463475807597029514420146943756501864769019662874354572522243811215578985199632114423286637434921907352910653837387143046076213400913335895770248388561704717378244734119752554411923032321403497113928417298151330783326920967946732408490205539646582376681383432630288596827103732529772578841016585415995586718146614583087922575290503295533990879545786320825675808509577878548550247542642147967012556837172981881232487571812584031192134755751022013197145407031169825426177623853444559554258278512532374292717062764137559036236927573644554581758246190905907693948118116411756652031722634698454589214573351768891786572714956543214153328396290764052015384825912458390249587271499682300211553423926917782644156968658818988121104887428564191267121348600907124320245629056341296164805001343508023627627885381983807425663124693224562076873211593868241801068857586497627158968481144602019533397931825582496176526185658431335957673689144043707726739463542595795718218550229284041811700134950187853153054812626998953514843262952390018128395343842949878615368066445978232003257880182108313437607922978352780363885312192004918012300386263951787645663707521555169823399541709092927625739790620029272348539908923152148031833075165568737068478611404541911837763318765064267584751824424401767648924471470682624385780722422052083023840626015692686990952487919129900353216284706118903555427210931111651225534272592531738286361339467698135765126672955269521447981857003097132468512116263763025776456651384680883886923432427176385193992938430506900704552330078579516540430204923210574017895508586586918588184020108362433403617929926847950002930219839427343123966618817084747169222496070230824154440544436356927201548668085619811398490307095139682654334614108607949331768514498342978938269480189600892848646603164478743589128505097342281949493458751894986133068176304907408534621194380806593368540482369193778675870952030462509614539030359469086640006394207728598426145923414453559667359887821153443886281530180204687177637326434392610244330416305147426083679052050138989987719651921112285489810194463055766902616151629596757417226391340686325804123553002634032819573707874609414165225634486612001304681376163521349171902760614855623123256560875219068409308317542150844448907850417949970752442558132028677478786156758136032367041310287266526092758034196313990694181163933795190748960449106442634920166686582203991380043475318156144507518433201728867329857777189026556619991375942052614251737122793000249166745171839705937396372063077891318929664954660994681545131953261362238615125471945449630864549998913301406307493783120668182800426877532056506961998431686768202211684780083731489874510718075866020095331602308106749894350373043642358953410817787871343826972479351168741298530803528776816368264046247499486403458817242338003536413007062605136124157175046257967644383600839105168156059653143312158067812997502253952620190302825453449771246563567218306644973795658627945474365198746199076132758868651013262618531690122812282589065759071989785421979740062612502923436937487174317217988423086129235900298643807698057632419011653766583864612933864881825256210204568374933374455690866709539778155040080327240304288015526678083211495593386499486227913065044501880912497355597618288870587706005136767115905445097686174455030401446353834206163275248888075931480688290184737790455314009093790846430473852004165758692599186110211621798797143161115322202344183552766239088082399054144988255772576656024657927873488573596019138266578319340452774332657420280089312367413885561013092556209351047586751636432993059206340441574509244319927175374339047279329743087404933395945187709423223431542003535219321452576294658727808090515681956352375708427914619829018796469766197132516182311308697496041699553725000623388571380908440055155151893752548660333541177315830442251408878176108658606925942399279064746947960985625439655499597062151852522599355085827110347220735803989943483587648423716761504500872024521417197639490321343995146410107062145413893117373388616765270181298118033122877197790357977218530334407760948837691479848999613451195998560448038763762105153415794543965576893625953109136029429180569365135138122555287515508542432088485259734805354247151625845006549569831179211338848337112089933230174242370655546069710494833067701966697812782471180123904301642896491184477407472297391484631053607308092733093345295511168749156997021311905846758741231419677026105337094729015165419864337699673191090612367796268871550326882967533453568897858474304815327966219504844658778438292056747047419418994411330269122513698721104788472132698254334110593283676573406455362424151653109784425141585092688162604262983960115533597297027204022064250699028610229943009953775505864911533365635000383832777435267667657068541540587825132526036119455534917500021114137287273070303400179046192829397494223190069590862232362135495758097715432011292450707199281254217422068784399858640182600359452755825850548431349015429315325160116093421003966046481195330267844067963026894703899671611912284012410538510907564267432477917518371545621288745599283065758286992197398358533056313847717170113580833149850481290316930015801016100010164366171714534651630191163450746293932752624954805595862159934441416329401942194602133969441645115419226999913200686651916357265979497328877682488578752971079817182554891659402784822527538857738031768177854165464986627852679102416930536056565767572922759087637139177569660822858669112842750286930423311890136886787992280814458714549260798583276553114433644245704174600720281756912345839492080180179335095904620725666934743244022845867773203966955840799766586933091710103068580775464935895380518193474315418863220292232703887201583859460544061039804561787600606452596792727919840482430356466748492893891994518556340574089900484739125928699514354276950080554651686112483873843546325904488509906601006458515036302269500209659755756448217171559635087057644175121832475755926692693212339875550405981475080531047224830394477656561925278497377129373424670437540556954799737312761741668344394868130430317623614690230763655427911064099454147302796527334826242533285079015086956886781892998060563748392669144647732839321825516106009819110208465089987239132077284140817585713827582953200539477018343279619619111014871471907405082531046184675060034515791881484170970643738631902858239146936246268715548030882497538296928937576550004984746537883938392948722917251072362704386820566187409232283802907687864270351396530928911420887720474461823063345874696739739307461236945628563778327587914663282689415827848427604074125919913414137344519677691841703855892974544077486507394898876080670300717997468008246299602941088616034909718589995956703714758886152232808551979563719785935410145667362470942310553893019186807307024294803504804301901675761443938092521834214138651848895639014960653224630096508873343578383542294135080958607454079155660902578658876753757082646318316028220097312456711602140514664528730411988837786950295779002812264624045094412440061800150748578084872094649244203086039384976636318078181717974883361973364719582311899023779541478009864247708775853867339113019195150823638861139547786840397660123352428350506875454420916938374298117389588662522844330287389211593983969766973137055210871480950411719530336323734494430486123545851262593303646124714145370044303355731024677831037380379131896066304235657738592498408081101304758368546885849052810251402590356309539285256078058822164295087286566767127121367203482941121556053750695236378109258580980618950445805685334839025573494677809171367387271667424997851800529312944599870178576984709614311462363520401329402166964373011301444073740370762554159595878496073615107059952198011810720489620586736132926078665396212221816103836342286875584483602828846195752077336880644538040946733171488814856510048183218963068334313501824364696811063004270572406525664594739836662399137007080256681188155439198595485661309525406775543668969146770231119332936780638371305723628060003345769862284774931554490700261939331472226368469490179401265483459891751624528723376866776093185365450218318455380145687170094850448767369943674162068123498195679739427068843875946347071188783323302673214082418154509781514735700915469200062809034155513931385262539943222930463307516822741031407058677022577713970078380660018132785890788902680071157083630969829246007365805130443878174436215293912447550039624160997644556439071330965784355206847660500910571193024529185286821988965403145605761026061323381821748839927710613254831306301772622819377373665350464279361841745781407536692075305176607126037693864396935527908129624726723173245336887399249895718566831825597885863901218165549825402065085877396320239094957888927101010627374215460798270037568539958806443306188028037132896241020159847049642592962707094343122271823785280710606461317095512544012187200596183174655711298577511341037196822763079382392511105808822615896026247255356115436457108846174915338195852383698277466935698480619863938991393589831966738343126501906648065130964667692385867572967291406909075236846972130521532747900934329437366909642445991708502996377703227836867649693630508295571605207699779877143589856792908539786222165589144790214624122934299632142686587196178979706778520305990403505920220696436724213110842559625902000715553890452778014255607474932357964350507447973133490780331094960682711425401654834721897424141238848264310636977496750275116716367089458564509726217697621943444566074336900008082464434889488333529995906699745542090357383397138848553361087879472301712231355930885624857699420262018412213953477084692267345283313846341409038128716507738172441327371480011865503201261392332235373166147297677806416128920422221193224841712580786532362573521865937918666311026988681252748653972960142804886285501068661386590085945224508581790758743001673869529685671697520199161550980279731335934703194166204910277184764213735162813435872403970194611666217943229424068206307941380726807651507198189022131176287439477998801951935111714355987074218766924788777154296626426045648837491075046039184731076057374479368402103615876833288050235322496765870931972026576487615316621165317889252374220775079354770334021808130144228482477124874869483174622239842310573566348419632856021493967020034686688708066230966096644507403583684583467829504778929964132777379900835775548664209173626972917230251861091285428268995983127267969790343774168053174339936207852973492965099431563277859958349771704907349825308933894509351981805175053432017832796375002377677499411314814114378647313051507307358459873060468675572689417254057890610450875274508521662994950654798649815573065464828118988580132242992927789253102345207095911355782978387876535394780244349235896667386085202481919638932938222149737267421591119353332943267845852777622650819439269081815662808158062428336197794199117872884893633621092812278344034740250901874797346529455380537201681343248529209740417230866733280920651222278321399306447656681119598008455585632926821538412163182931441082028806053509214675248566837195465669322431944153080382793588551132275141513180004019207416432893613092979279757257314237990132651756872805698735106167689547609774407227760337503142512347433484863230126989075797065034865919472659587405203133753519435548256622793100565432704683620175197389161833362120901612386166719592399651331768666403077656469246005524923917248325889574106557464914056235866678838098111645744868037537144092836978427957761462430156751632334379951609352541425967980677453816171036054185929062629131451480956677281882468026793642345226437628938442972132725058811931002227064553898125491632114122849136386743348358646257856098766843013408062535685973254810880050680499685503907398768417779971359131715563822998339282684183314821994246291748189889560905124677345176696668465990089809481324695971356957041693019599406233430536758180511261426708328219793687456906004318838539395838517820432837703339144388281876417657160164008808841133568505356071174350473140447552030221923666271617532570106491950759528677897590311879628652320373902792598044825638188755736620003643700551968325354050434984090354599945059771900216022222335392299870255186355721291120652307083547685392343948305993568587168225315139234929454833705341252022557193669964575049684233360273520956145267410258643322902690047009462612186185373367580275296412166118504333102135217588154606848673446959827747384091726666417165789269822571538802753206598173954879640354950020793863830900711963030167953220201702740658871455738831296779163344516249572766502555685354122697458455964460738298293940769811993472095069571982114962960832001060450008984766562389291925659058330878573768838550581346752104022736078922780866048111447044682029354438582693804454935627002356079520947376769952181307455328572093807179174010753419409021980406602236647323617963168944712829799151915788968647882491724461348169285634875431576017491340480681097065701009936464466409394002385654773511130565851060787320034709926711816925798412218319134466593726069714122072974950494217825422884305196518972778968400746076354144423111522518639498203632754181331078130913682110748273386800503369117654051892004208985498542036064782397243281694434388809470442575650760641559772752724603912169119322888622218077308774886127915357642647430928633920349423669743236296516988193206613409841228123561601928671969773424007813678673572854727169111597601038854934045932340909024501915325833508552125940836854354861394365197045320951384990220464530267424615556969667616282752573824360595698233267382769606466569921684603850591612107390535096070320755407248334666372129699373308177476820636094187281923388670320299028083468972242096268966848422271622721115186158833547816681530133590030099516771367039927510603263679828964504966675529079927922863665664053147971499483998074244094484795100261104670447093076855931362970119233136714942606881239328145365623427633231763017569335333114628395704423965400055513682940413507049143004555591438169813142506804406395968819616331334602724998073762382384508357718262143951415218586582953741616321847652350064633657866898492067658672644306550275942345711613660693911431200111518805216001558555116584113188864444333515099200064090835775506512548577083148586867742540735434997833132506654960258967223627625829946952336620272976844542029401277290167909728084355852869992666710220663116635560126378976677265343982563133909376721437372070180004482012097983697968725599695267795206693982139827941551928645600464362377529918375961613366604708954204598957922882105459469273807399425879009349139481849189943749317941239891517860638972806780453832218595987764235622577442107496371058723268801901412788309230837718706121167912139283436711764217275198525322923376802440822991931426551238851137152458178105023797096870558937523000684227394988115732823174368627191673710422255079727750170030880310048099459859174724199217292523127705771966527220587539395344327978058405357664420845910390190189422085293796995850942288269873466461375086292897013121166987287506736374705173120981880653597064937218988490917781180410165000058247220134944040040235091094564273179626465510501356553548606928364259459477352857779950521390595719361168344515955999727352879735210449494641729745170214709866194284232662209295404990771179742671881881792903134976171080655270863026983777619172769723747173740912842871352563553613994922658118616791281680065270142567526276265818377644016975753110297737043818363334441048772014746283142831986044252879666130710508421639417605634602595926577091171762757920545939433669113163974851403958456905523248004942134987599508728331226697513416757856301397789345686695236990503922702989910647352690579690831478467206841529116664514117316516753049082527957140896085658356221667354613340495855237778537766221324178716552487088770269503114963901954129607273622288777221506298528507167603771237854656957950914168140759157789129285204054585789783068389365074673743136018947669420714422520733746603740307907758299888231747669879316311323550386793078319666133345679493821619836206437051352069268873593565727679096121468831508434241808709283710146309622433382110544686011018102395535631340170577595154903527234492850204283338229173297270816972141213208453517479823034176412725518792667538976419933819151651150106544886011633391258101082005285599464686170287024639403419861532275454255810488163926757782020205065963144761530217202295565297326130295443491281524453196788210464204534405478500972489695203902269383067845677289915114819121939061331723985150828061543323354066634329235624074313698381644084927081163831737847576129988202127288249484583985016147589144490002234818938234903752667373233696391469177816470721600721571044898683978229679990884437906237709273122246283823822404589984198034420201067272717017260389688754370275252848228399760992892035711920913743296015971114363484413943588148060001837167372104797107324545296888197348099308328357277763923444933676270137054275331794158244726839945603672156864226709334615033525395129305521720468254634945135355713821022320583834314950582664643524138453174125263033131545540726175894454906530891543159276029791961914875433442624445929340457925416828060012309044304143794912020763758480669468352323237616917290447997416896242198294515586775081372493932046165194608928660282943336848025964596759601127636344295007602065170062526330279218011135979957017349639020656689082971630231559994294652737990703898572632169963514725617429291344360913088126518442422735293427900470443889090942993095325699150799330412851569392114498748796824271937281792624233473533951465390355932703038805826138065734989494983395489071917747708208695754184363655147243802225209302167866242667513582588502032498820180220204807778602884229385704281318113067213703790615122692993572934252742096351066606633752074537507153817334001566419173497773034107849558722457913252124214200949114480124395184182499678035884731437113736661356874287434877875008692108617382523200439164403041311306878276803185638066539770486853785499256426329787795116568333492111623229929831099968199298498691592685356872213591842578154879373575873703221802897866551892848994971928022493927673682835701758045426484534160144139825857179094026472097323259202356815160442336625869202405860289507255221921963234250170660092905983344109290289252154309750735417382531400602129171468347377057326933953479808657208329322655712312384180740949084574272160955071389699942631716524364159911187262674885887988751143247769296209295301643525504822882364095285279686936774567623671462639238874874424507268223573198595869540804219074644762338328303296505025359804423947232379471076516619168423590902846857117095192373987980413346933718339606991400319906861151036064804322331334183420447284423670886536056178562210318576885783238075963334219427343535349086831910942515739473268690346111683087240471971474549712182582738520750494633132280929716266122110862015380679712508121242546470247073501384643157468614510750457059862846099113237160323507453195529564432884408349129707384706684707522162679528816627905292300815353413829111004689285446329179449656836006663969199172077683729183615520629830573603218511496235121983778666064847341690860546440139420585398703144015801823019939550317175775708054317416358370407797259830865253207497037645153482192128343132932271869911771328593114639831534430798388176992507328119444085186438916164799130710764517258595338977519415253994702319180794662365558783323690917808385193122161119054797414766523737152706789911206723592345498152580386303386576537281918504368883315462200790479925889783759775746906109223572352521134175119708557844030001314931409290360418916209807303345261075044166629299338754010260466216498575979911155008669452169751297411704667261321818942847956564239841043000340522246162800875823633932683527795535361500209044714467276477089677428251999910396182429876368437642325786604891312568547241089141687560633536368096957227405489505029881622524549718338798923835068685985450270349063763506626146383127999702591326694596988704876340705249030608051095661399946526186113596116987375288611943151335247657177287367146707744714412626312702586013687034942665768811568526581933917237010101953199800188026059857066693729571718743939234471242916857920874957115296728905527283717876981343093964587477365113473985671276984885142267016971998216617293924578135063410087219877230813357596835296334237411837070919159282583326121636068186689554024256992978573849436945225206036226120586998871455756788544056048458323428675536091759409342760494514063417173437139108469666184170874327705971083566385223861028332458081477354442283510916829387210656597387527133107453883453817996888402081349383076040915489571790132766330290012810881405538311260705966564479558439891492484071133056082756038538834384358811767170920260723519742216595893630638102983194253328068142565105571390440419347652511289580564319997005425426764106724136826161566647594783257896222146242651535730899215278730856923321017645266620770640503150880522484739019113813866362262332220963944529339085857276768017149985166727701071741974926951055110497849276942252807998994648608353974607328924830933594788923495829753601521672729836316945829222168820414051916333857692915262535994131366135090871375864431463767364346145255028959178139816749307092788333156284655797892123117194660900010511130297109316410687536982313780128566623337520113986878046530743032366896683896520610313228021684831783720720938523421406626648919991483177797315379325071832088302586516523012577790925957795481378210855739979962721216373367155107056634490901765613845687251407250227366435255332116689175224326407607216805852814431258929490624044399582818948421420690603144138221687846001433822743878816227693611981159676565245113053255019469747974758908164405864618788234405543474244131213763139013371907548385033382420002612640441500809660912712553351035897295640602548654179932444221257469417825647416730261357170138276034507806950561184743980188880461445395633037528448447506198121533837788123845962914177106124209692240213713626858831780973922649566738284239951343904128195153831928704484118676138351393130762402853120708051715494422944455143598745921289428718736223299232468670149156937329342524769221087739938156797641669321389702403303505626467304847332920148153412519504202121724781794251900894299419324483069559203446680749874402574380601858084755840848880742475609782292144709697567727909873992820110642452426070953411024566124152017435000617908569762936737917288142129988690602080587411769358823103098427475220639931096885599219214255867247922300650005721867002083255609605483108690795857465304559014248585840603438770535555235648474249324809137284459048966801147727283968239699703600484641757130629304993740282822416154046447352158264047717484419178605592798772796194669808797243428793853769722407230307316539847036751774552760936800925855113124820775282484298813873089336151302125550537448157600100573361324939792825152410971099428216989520405596594652825702637970337585351468043445408691409310783498014902397554626196867830860081233227966926051715754738237961423629269417732392703319194248494878420763888757654587788982126383719214363596566930866202936282670134561018076964731230608978929383631479074754769533790549306666234430465346540321522120945239699436093757241496551691882766672168422139933169510033665013064702790320522158044114006650804384387711268732068079590976838621624824315090706457975176453704928452503145808959512531735014740286070815571958632748341822999477417836384108804293907033697477303843986933831851448274121200271610529486081344030602644771615206381938930030891746222551380343323776880027131201644920727465087744538845700727847545304924631119888010526385204919096630054206564916831167424083149889840132080358893363798200012275382934884181923965180175026703724854670710912314140125089592084794871838848031360266180718355948640421616180651667923802319315067098143816551246209787086847949626591259190950268875944716388322060086646148682955411029597966334187616704480563949371638706636662219257053854565920645191286171026381342290340484668202305250521802701217380864795982455890520982143577148029886911445530164107742891734778166553474996510944678447923237509374035035197003696713617794646886395417684090270094726023998868360481056622872659822817904596315707594361709671686048554766735306377772684196178346000389567338793472931016660357185887347925222930342876681539682533052132195871974104118872718062407781306935173973975096470111060969857298235558851936820848755203804317877742855902683468192848209837860440229122419876296561689302053280214525907317988012639894527951788015246468691659388498992902862191757558263850417525391850933487902847276872827491162315676803610291737896768909708044432158803039306839161486906468127525240147881142064453997168833812677694026001511950987324585713421911606810794851781042315955460142141088121108720222982460714466492653862417895719096212637372718450737942569231556307376805232191353110867005566851717781900080779281025460185790320810132346663844813209343181154198927281986621384673697709168743971312739531235723372536729747460500156451356471334287037387406136746951640287073330099699328600877229561765898402053479825290691976515248641127752965088582928235379747205703814147789422050627666641432153257721789499867706228979666942796612590136341775870502899044031760547512963586128142349499577075380597298005739346805477415237484647469832429460225363934969792150179908273239572333738068462301326521608897524138350956661867728439952011483150830339002768141958591078674377311916854465848636356543722530357125637424629593463498509001943565624248022811705183300245280328408025752939712655225228090674121600389566423314637630339096485767805809470400515743401097670928075233574595604324098063251905076520912117333634393368499232738802853185732893979851154177334093726762123072104688946082393484676632046041290888767197770635402499697456552468654801179131276397775132086888613935440743710097646197558866814102110694144809950655778377917311860163794215666525950399216836253466786679092319601080218294640368098060586689616196173509041233777268817757773960916915947537782667835121994998322452686321529917885783908918526077131323860774329254323793678577927155195574107420678736696707515482797698724134427848766324072942177056544479075015385689204147177229225015026787731920374750586088289477916048734801185380597864900771918664234184016736648229507063665898865302120037201282694087495771782948710337650632809179480079276485531640823770758828428354433216254217851654075826042803822321381948787637119464069635281555111564715701958378435354661651973165111243323429316776429328863070033149347829244013649120889147836019652112587623881600126888915964425551788951986125061871418981981498857496804008863815442866599121123162567570271872011193879682475818037645132594240343739080758628031583122794217546873644149404877852289565428236156075793874602492791959599646793412791251031569669309662392230770903773438759460820501419236095638703020656096212945458744179084553855346226604883194310113856179687714729201214867044366190928754287289316420159260517658080747472368923479064154954792888531437450287862776849566947338293899145885596700354318743012552059398715728907545204512184235653547940956876834475026262516555659278733790516763484930629325386407287944204013170609974685736844355968389418190068755040056471708927713650809919984232068737208604012943022967710919715405458685134231113361674950945182822477704707603737297573006404257931922717092716508849474669704574961328354070168139201412166428840241518009653548173085946582637534911210154372951975714326404437332123339314439329819643785149363762355477900754041899525278745346495665267788265441125302209325906794714647433796902254462418562194684593775438150556586063365105797909247254555921137640961978254458084992835253472421498373601447816616207279062725979177863619477913629312709608952472289241263480622223431868434841454526553376353262027722975629735023601250289726651258853202446416478174720742582929981879586725436669307532123348838595703036150035064773954935417575475608285446810679007727816112100133996531325457881390240407206095920520806505446206347607717862308659303993027607992653134238202016716759011257172466611326575959504648713669407176710530422573739083015251022191420553489663994611196129590974034474183263356300073257453714492924981192607391270489372431887480744676256395712739970652949168592672393867381893930960442857241401760695455133334229168808650547429742635491080357247111932757150481532626896265458780428457519087008491144670811823565347263746910419557394153770770450784276172259443570563764660356916180266997257398508841478793130680708939834907023471220311885544671222740876878808864446916230517008689455461253687772355356872986616922262911377253038391923121175721551316756173471623970146396669818175456302825496470729998001815458879150994418209323200375521129941638405142832525372763711856362087428399920122398104431943575599708730226646503707366962157308565939540351364731335770697538198944953893627074253997976312031057847676687426879822742527756414984779768280258374254829661574490150803312704607754467547120603851145820338791219604738530391462426602345887130991611265973878952510449328439767194671488182763005454148399064901102459637822907029494722254569383928761659729812450359396854264299567913472414550767248918972859168932709427665521090851493355862663170269097514919143661762380102576465729689861194100768467076646536787010074739939458889373225115245547930387217068468358857857158154943354068324490239199172577728428307655429938044712085388242221876188590424436826196364646449838297819304320281811158972546681801771924891279722941384437550075279391869541968088740869466768470421133646353277437415556589680806350512433072667745005773150982881931839679855279925473993557066123825889179552609797269414768177688081576780105428645676290496701164841713054624442064174157287410206208282736161155893165288027088908719988611497702218393157839168472498685443540000435798818063867735187293611262927050690880572608033512749988470800940589928206534828575636880133410901239728971739339233933081970902297888751066640987048997894038206540869525315830065184465638918088326658253846539077157787259813460724103719194758579789973288615108132279899484132539239306948097302889464781356464333938620371452043370732826386159591374149927403441028069730319771851946423818220889474956368933888807107052597894935412137062198519784362346754061925855606842577278725851160830976020381616796268366142408380493220254532311705349602720700074160120167227388481178658120620384042683568652374495406471718900513092339384095917803184612111093814793389501554436838444541084566402195759149389065131148278871067581241560798335441517483114075474562734037124537993569304414828238069024365934160539564018132361559693915774403949266494086058345588081246925656665788766891281913206965907758116543109851887080449200844912595620405057701499556162019839328688925835985786687782785943334835286348410120462434862923853253290742364289784807875579104821612432929928454757275266560666310725108191407142510499171532542260560171681472746827683085011108970720105704941145426538813906621500166796011589984530461677961740350029147645010724783764985558742489736221959754272368467186326646872839079746626072800478831088174220772983848523042705924786995511650499390979083403274746670135667995825566649413770726089959335001524364802489064438369101580879709038248173853832131039629756028966194083953017662347117219834661118874440670720780446064311454530606695697034167407449306748926196048371962769804223254002757267761131673538014505743056721889033868597085290470724556926807813494292460360440926447445545756438613642409760067739164948153576646853128752253454110254900527181132258475431359361149430912389940702292135124430841309363587654350237929997432631100376486584890582647760963145783020389805709729349421217707435773297448120312615557042219317823348586451009901220597919311587147527731906720626548872850416626827789117483207336065827283926456014822291930378088688255206243089196095829399453367120505712317194042736724414731269324405419642400998805248916673873625209490644441878065916070366515198507595356392498961755391490154030532744649931193625905760812898499450971688875133903961970221739207010854922241411204373358633317727399323688740703548290604151184794681441995995088091766340307714194529999417670305598580756100443092470573845085915946591204674774447437889509165307489347677429266857757626268783638107938563042850089826255310261438232873043680711800583713499160106457825869909093440778896098886935053080035326463344501786514290407609672729435999707186535749376938847304950975178813609448459280506803727428202297792122324662344856172141609853142592308140545628012316698293698023223466754059583913195334412920932167208358001673157954370050457147482802088296288994658333393768765582172816685532387833342041115152627006327864186297098098351559732268637924611042186478640901061431921889909254099407074343732274439805993881990436545560070063837274110507057042012181182824102926069554776084573960335740123923111580964171891190977548827155469779814563416381283355494388007768137128746519143243868927223493818203059934473007977975584023803525827326347717242549265246615596763600156949332605258964014961180828568557461734811466879697360315565087680459772448738940195526558831860706054611677424757497967558901063527476864685083151204283043088149819658875058177418052384887287915700591102079370128243858104496702127681979166650679962802500879101087693915669483127963401937636634924127419211718929022489679230439023052261490549748609034502746999175449465849865526258724224210081971311167065804289886036050374794202859306617899863270748925545953874403944284077576560572508004814055835038859663767468690721310425889609200270813184550718869775300664014993246231430816388513436415207342595488897006602048405260765544265597720592616543950872323302379896082653464705569723129503299353635111423061135004003030089431792572542545480819565774380569708860921203476663618446591841255991351459417589883795625670105005415437601501768766809159108084430647370120999194767256654870358826908063137853955526186603453865012680344735653175888193435017387097671133191116353656923817337075503223260078373666597496267444540305144646686239390690083899220873847439213510455185071502632540065602371551959743227764132739963720988003768070930218864399500214083844243395270123183132256667044688817660042897537945414332731868565503666671749211455581461863327297738989700570169899265064192874357726165335441729649775741314165650283635600211217851823117410342752678918990893566939915360576470606278213567643972874168929315359966615631695288196459220734753547578867797545185348089902513764614010132790699224592128513204446667460665234453770556005795842612556078917032583270718224929472028510287003945805818397153779734398429328281332784251506704044462214536654621825526645183592979646930118724501370698768829677776194439616523557506229278340800816141394657743088052794345837869136928289497392167644967629393862221734558179089655357831964429170986590250275656756909655111791108639568220933598119163542189236687569018190772043517729831989207622502143105412044111590178009061920214519014743428905110229509760141088987965414880917298420823020012620138754596006991985032294371799863333627997665520386930399441688203741316185450199386353197184839462868424109241464910995602646880523399276580379709776605395582116183381705633025096032293585448110770252216545785382227778845795853909424385810544583771441186213890151810197411840602804410645643555463160683493299265578442047264059333847056389082593123805806718507954680930878521563027881876091376811221897410913041028186909177317362833108185316736205664813304723200114880220578713128465012487889443124675598016689264950570518301412981484981378967348120334573507466733700525690495999531107174296714845568283165237814464670458545545183414697612085934976734384477654837261679321085231413357677245775283349635540917642302519755715288448983940700915289133935401523720934854860777065750144090685730330541069467130294601969869132001249393137957303087460701176392376343161530094513821241519355876205167011314922651170279148626987660435841790831533199599450650377931166996953256798307821130753032642680496505673148277683724312457277434968911108349936324900382430735657257674128322001775595050966696478994527383682695186065439605633179824010417129474139605374275812492168796742471664519791408051222426165207024134730868285491046949410478364094750855382102065243102870986625615763972144200993590011052543817409658518306993737190120776985922394284692712656050017159379968579117954076041084129102095208706568549393500588767397677845178606655662367392813162938354544329067222089642117893857522874100927418491170814975066548422130654095543028522685048492440288824093440037879437008714040503090178047612904256478542181205396077808398288522778180274763598810247482881911303698471281732605605058831136061785488719405424475321190892717593297780949466489632891787606344215319699682973547456635144532561775844694668780880822786443094095337009121528723903072557255849008474711315932447141852789636616672981851220267889399394971161148052797934176899678591184048267868259253553603995446320070341194306481418244454835177847212028933268165740114824848506428511610460375170877381735491539811592413328298718494901824780511174210858436007224236702216018883955617169718269351774833737298870307861822541802961749812037584350035444467910756778837151378851889198635272688786666706987761698451812742031483828158986434567624722080867228779269091955103070842672794821860824193423904097826142453565036784930678914387078367678140935655610138496106522877807762527652397272593699213393299946327471096467360980329029717902900523528320293932574335826317401011036621543339335214681910396934527007083438683139051843269750726285659121890023817598125080448865008028456164041162616317079705806203257418733199765885727577214103086449886693564919783105143491892138813987891199648086424325525375417284915856650575716848318326245416797872997509525501655920397522068841459655279245479189660513879199084313964619682014317961622654630410464224898574368673373702712235601199593517395663845165150647723399423860036078894186353267401035832243009718230687237915270282599735216288620608829788577411370091639450438849082660678580002912524237542923249555135953045704215353535419629883628145112927877576389425818856048071609257522412431486085283931747171372100687098063420414152184716746078300338217872314095304698153880810800414307765452821335398842905450278970495904397899663692908637365445489093954807173663148956471883622578201947253779535888078194041048548050523124650051325370611595301298640232196489139902035434140830628019569209452768282498926197918851529096065641464651748790252695929220990239908109413020964327343546504393157945447259659756252326039337789491197627574771148650479206109244937010050771919987916785114736082388265009308676607199908935074712640571702126150452891780351244175666759711888389821193851940262140153583329091679104810846459758437377826879980793516780276783338255683948216087826262119441465927065316259510434908035907506656744859712469947413992550706401360468739855887565004014238806857333954818676655045550448146530140056391253415488001396654273953380707873313110701791691012702059152019602536232773170690287826758237227961386407096430081381186916831461966591678696477989044052111584955662286697444832740401308728363604909931585664835866013768762745688348068158698562668552721100467419915992839741560471968840846724579516244683511129674523727351036419665445173883816862155968689863140488619225156507051533549809766684280742422673746126297250038713602396379188192219781621603789214426346700331524743053452629872049741496234854019937309264415944173127931718699820779943243402044035123451848183595001482521534323990350420194049656843693614259389145873039761835531866588572583112965040057037681222752251502538501332692944138056013901131706430797648894694212633047722116176518535270535892957225278344796924862566738338097855463136181923408198988724852066121108036845751814627475625454189093120986044009639409107693747316034820893325068571708130232597754440836981813099334126480923033508847431646796793820695645947279236819986364329789787461129399775258528392289542488764070096360406145831055644577224344071963539319080316035609974247694024282153084216551109242783574798388254769053185639662552449821851008538591390960632490156387683814779361644915510785325717651492846442724397961739297359196439467792852375871779869094666337596495984297631168904599305283690804130529332773388274455467880613305367624385980670560475444660658989243266422433466882955143551652507830662062390494594647564770374839896522336465516945375634857084360724276453202898073750876139532999935126882306107628266504581797603511904041657682315069022943755794340845339411663159441895057223959221335284224621013594531865757844436839066305261225267028615026458875774915941114616716433241952077491427062821286265876973577915196365410806494837633953140104976182824875638552527989786034994523615401312496691092110917252040244981805231084595550942458377303561280168418073882435973199138962906070476952972462096039453835510643825827175690018296252686080019383757824537398842289758373223274250627440022504865280840415189032436835585360538693686184849542803550410159236895307439842945599919543392819474493195008611086407136790078501993593520011973848967038003511611842901750890670864268527369720019745172938648022229627939887235622576902487002620191559886680140627064301593271888680214723396875054298596753244031121546051682370909686666486952458608151392039740347631196522306376831160531767733725273612081725569004356677988006773536842222239425607761051655584062401814950866740161549894532667209224711124448215698329585114583403372941619259111178208278066670312901139960511559608525766020842643466279164803391246182736489412116034914017759761853783390655621552823107153294429421769180946661939653994622913035091940021875851769051046019797877666355503402792953341432388692587301821535581253663022121209518581483975508660929857656511865696040625819543408742521993793723083209886144832548474979052567394113618066167040059840313393774923495547619496145047163559324124599631499751005897674640019180496548580619847952158091186022328604217492246308084585963010608936444959333599674940487667791065880511740485435386650473428125190466619396885919105049137600666755970717640544812417787242568452430063099695675396740643662487018105553546982316061517365163986221636520937179443866969854812269431408456995554939015323411834146410243628956105422089616818889394910711159155921517406529753249296799345773298069061324830638281625859349820655597540639514181594710717846146933987917130162427762062417713333666928814615562877947575910553395812257432664965618880155041272561130404320943585034840997956012044524341821372015871527490499738343581683469130486789522626791872822597244096527619909379436215403409881124738350159524924018605661195772956753394658991750918998729827223939465905322748906295514869983787198920496670417002036016864761944333086435106022286796300127115115724213824586144173277218527878936266966510753039169238595980862573134232377253988672299689934147461524408387504775464490305284760111842720036773084870795254456852732680967779222407116449149199765861415856438029923787546171904678117166308660390242947877854525359138456992647894934187609080836114935894783685280008389475142167025182255167872123636522682203124813149354224957452623467684739413625334197240638595906081912183590104420746725176737995356442577001380510057253043705785331393154665046766469408103515838227773836417016495445465539090704440230591995162991255164969755844518363340937363784680778293845477654078526738054219765261680584756279828665382948553077193903137224885354780350347558156178154611424375767095342316730063894429837703450332295023574390450133634057732156250522809178045224044084250893229040423761602763006779578482813278887023792965753138716533207852630579880953137145991666046859267462789258906178013838646844142111336993918446827420439879124318058123462358866131742543652802674597835244834383061925511826384107013450173566924117846152585345501333174029797127772832243242779282439635206008390521340160795223863949340972218420642439571563328360576410272113639487128221207412770276611182469912298348939210842722512001925743814230102204028416868365027911668384520744177539410255869332023741360649458838608482753980488353097195044134029806317173146404955162272466011735992013967048028362888237291548558220251457796834426206424343193461885372619080867557414574120426124417542462869157656238433869815296251224313636481477093808102287416571009182518841261241082193056606444648941257853687818706976963448866790743144699313583061563489434813880869683946345746473316653044489499174377397647458957801926607293361398771026088869731165123785895087494242779971757036982408352241482180838558392309166212380798878170646031458863214406596073734824340372853751455832849072649636288726230103362873879016108128404052893588815767531324678577374974313595016077384515842621267557902516891030911163245153890406059924228926841719059446971349057170518320882981405304568686172563137259081148985277843811841498552935630306821050184877284443314854978053256458489462844795227478819982763217543113018357900927019615708594687301846240785942217112279831106330639767942942740039020558342331886568742819445046213376098992539110883504142608198331762384984464123349752543597741943697461248679430029800961556202398859118738703660006916431469771136784308379444619748403541213883920202240547409053767895876543936295347597639068928204467230096287321255540172749583320213104984665372301671566522037226489589972025163715430251059751287195681113418338814245191273780453518612091028651046125827819284094650539388529169255842863680626663985328488064140914403725592377227326946213917171862579942380941984957265081832885829911172824233209882361200044450722602855546715848233952192714908606137886013063811208740005943223808835594412509347452198151876435077114980070446473576828009408633350794691245463191254131513992358999995388840762960728974699243268822825971036258520349448277606598952569734253625212503983253746706422055686178470519107616542475945654652348816168916899112486650752109819817593997662004455028866879828020239964640571464258965352898821221494804766450057471304658653186111207218034782995958562645421836506843844521549503663819870757044636017660339902144727047159159383836074092451157875984864440609579034369750485086014351846851190186364817770561573130725052737481525217454647756265233339224938395198321370837672063986245463754723904795267128278701522174737639162523131863827831224372461088489197226549767548470946812823861495485315730672064890552968958529571815478947894595647740012642675844961249433434903158012964802461801052631697481099344034072943305252154805593403600045114182912223984088318382668794276423515621152039002309921916468863323510380087712960531772637276003792502359784142022767380558325625678453973397360905812267224107935546957213494868837041589879636181455416598082494990162127550790376920074703776884048158803121198868823144072431839594650189223151510181481521849244227596829162967943319816441460142380155939718102286617214961523880297961877204209632084329578274316226131215748701491122379667739154628900208404578876695375424337724532427532644884983444480011519250899870749755383112370496647065798197291660258582378329614803211731507534611230589061979599964829436832480373175253737145679804003779883847809070591973699747978770513522204644011763397172976707724311495729024220779483050921995499341302025045096357021898374643437022947720391040834754210752046366951136883390653592195691209567683681939126392089249001842889760028037792717423176035759041001353372090521896775352952693824487109935755755379349054495172394099485252399884185799021759623324270014234443406583080936696317826191938305416695304323972897650086581771645735507959693257353908224393606567392710066368365042811432234251431594894286283184497916693073821580267613253740459547790120008987320997563865350141169699267887789918515625543433208265125387448673459566349674740898290901960348682368998403676710102640993310762587685107923106288235599933388303756975170984227040681623057140850711228361210049905515385879346684596386994657804958406383844674179866688301791632435412154144453617220438253348014888933092622497962487004221593693927382786557818815922201552002407916303796759868622582432465589653486700900454475855613978960502847113791193617710448076888836024502761850511742035554495871383590133136801740964580215224206807025207053235654164318252326894993943745201843003621287846508677938673167410619250703707445746947212575265287519001516997365626626241873620057179787086466393003524928312625613626049085818897839389724116915111534144774921277149955686376034737921488454591905098284489797220184892312953371365959801857448378302577222956566709481753840309557072533068234204162357952314915286332977787670185151781018522514201246701519377946039127859277322225159649168973768444285241540998844950286756767716852913546431353113113403025411179157421335040550145185173847546939087995292343954343973714349882289598276781838740380284004030548524539010810678750061522055169514693273858463792100226333850294470913205568644477244589085223485790288619123465895747534361866615486952688777810422049254724383547722881374164557942204058686802754432987545313351810303281997244308151627384452085933013739301836728036818301650308243755524808323885038505920425914835320739031568868529272678031187865317618412196182714388744351550736084941477623127209374258674238649994859251508966720783000674375658223771730409471537746514025952631422640710204295353466184508250838552990088947533337473289139246227866599832584699023894407820668921877122825124479840440099699787417704296164873987644547803802734729437872152105146857510985494194419834708490283374400342622636059268144066160156635022567259711930868920948326538690690579153147508016099121398168576576842052416111944066747850479153502043906169204212257880648369548217135655930381643514151133704606990520543518639317544125269405525636897532113236043222681402373734995834523333077654980676236608477777881414367261206772283275629324311373956295204199925217272786008194593361112009400636679214244316839755381717711363105166836006695741288341963552685996250254592048667207179553812420442944675093546098043628832557906278120859016312815050305202664595893799642955472389235621566367428064709431260405322325258095377893142162263786824716755562785361269991151459721221928857154655924772886137409370337945829206112774245404244110725318736643749298800150285384169766650622442608796663053313186822679782489193681447632384505959669313328451777160802676946690664801101863925922134446853628589989053853043690888136896032092162278429351234809680373417130610859236172945210272021938706994176609584646243749041436958331681369284413535366873082623558985117410675690272796989877241404914893929066681930943588164679659114171469899334438195534014173661588977720246681427043868840229929152363310672518593374123760438426061970285387384820026410450380980079887552713683606624188720919348609090310922516536220618913573510002867335434078520729325875891810939832533823289974476646938739174027144772758665529315706242566558283509792188425779093236890604157572692830394437209769036089409257437526494682367746552693768255641020526303102644104120528202526039450362705748255050341902037777886718460864771582588273561465275148787074238636070073825749194320947879821072317463942785058514685846287984490669213538851111398775775225991036971146540738388251847086799264080592061803142332896796823016275855620222150806936682631740513210009207883414363443088360108251810762776584806014208283485524053106509874505294609670655286212875975818753025403611515590153392716835462930833560460456732372479868901544609317657384237263351076980430736401887878847756418546098412890950182366433893809822364883692211546100322486411956749919348167570530523174403607693890204827184921520829302622552369643005023638390234024803631291891655812864653337218428233101110595768891082496809858405647912877912575764356141530704826536744590120053808171041181994107155657181968577072559184612276787766495650979941354547609780604701875399640420454950249936513400134981981390955984113737484683395959086890349141338468191144232777094540120610072875924175025173309221359042237125460834409100879132079378435811225954194362554951712108187907891812692240325897276339559208883181459302832956076962177200790543624765509389284232740936363244084307618397661536909963933635534885902063200100696002840711854678304055637899367481698173161636047402648322644870383757329536057242794984867135261786621837890659114195067477810030892253752999599020786644361775487891062243646193239572493763616001130627341103108495603217000972089516587685458196245091837309552661100611187126260877735029315185356596547821114302292151775401475434170146832177773105021266784085304299189368547892269647580352816633003627358451300770366174705614667246270854817825515455946619217820256584451312966925823512556040461989600267061850605994583553137927547008534032862248746639252573431903300525845572412864500330908202717406092213294052853461993349789493249174521512027704398953520215641290203536513641004341736567256656919768336862396907328918378669576061972677568727843159625363056223294624457806366453433890608968801413618775613316689588331812005189912569406057821451671278493318717558010039373887032432607578864320874116711784716641938357820049032261446284532072746115145997710140485817417304809272336625313413186548609428383295677955271553666360821662948479920113495656002894804442926106003838052483422800903385074190320751982176525181711910635499665504903410085930661187163911038848283024379185870955663025644509416974998774648438979323327497518796365431625013379553995533866363425567431761408954753316107278038163507076803483740915829239685232123074472414508447809743516096348446162026009844160178314045499130878808860431091891082530235725039695672092579341699241226921815070071762888143320467176140256686476730551952710011156177738826618095845372744921635497751925052750967581797830069258039974194023297698233671005427761146908136293976058113768523075452473909885669929688022199622987962938009740637351208101925474335229430513876370689979928631922328703850407234408606074183029385790960276903582133517156023359479022712115585096992646070316045285595373448071022586996833831006289704841689510759029187997598832112873223347124690710678002813343229710281139655540647927196187596988391751510305705530156508592417523341395515765042825956755768685801616900591172237471050870891147247699275640061943353450513899197189410926058031029935185942068728283312166959875592300334998592189830362380471060678931855468384652318391264741757992963985544027863706267243060389950213034221653122920562120993261293353766427714907278309588007550503851713204090091858715036551881563695128994069831059641974349797446421209925468100956044818225867107035023134874535586055789702067177917759356156722605544147839305609927728039786505386334149455650460716531005874556829094311818734983574477020949833712341583426661957671018235264437121623754287425392609359432667139681754866466146736305131489630570472566846890463376538803730685926410345842054119127874585521688915621902453965604406636877053905337106973664033884287677973489675432075162324238445140162616967906701132218646993090164188259372917194772388944055965565600445916518037178591336353606156152566073482490936328233801838251173336805464562172396280054245726527571950057468871440461958982980952677900605400818223694920885035338086038093368412014727515736445069330288011551776899889852679106136508249249401982854324716129774914490628462691938957911876208787727825290663941056096323370234485491762009842767503982115064038861139849932446354884629910177141615670557367209536329338968875828940397427577179762007298139854220527563381114869846011611139007506701941369101884222432747527413498347600243938969066134687758830357139432460817848497493983745019099445079152879317414770802688059124737993911696144131092918284816496424025018592226068446991856281707483655618919252609956284443857381622380906468525252255944566363288714928781657225107676404520531059302919820622805971344376791478861187765643015633630466748722376094837648777490620591283309675358745255993790776145941908234474515864964166498698983219733834643062241649416168330192806861166697856749755259005910779807811680627464440971523301202546364481985227224400360691231851223134262433380542605510185149895939220572519886635210053808156211215820732584020414144228754346531310757117515516842929848542839861213656273516291104259813945819198260131908811647025612311510767298820884143362069078475163524705855185621814732979038002187086854574668063535074166177421025678121312670320159186810650198773133490320262791727824091538433706128684745874056363736775797061123467078905719086394833481602259591558456086970673219353887513120284986852416346138129476222727723326177371787974942311819430010489263036531938235287932162226214283870331399176378537091398008042596806633855297407312561664784295849950814546351202313354212606408943737265241733959816641255519358422551197078700538264783782590743608919984433005442353486931726294504285808117184536732219338534389642315636883205691280447650975329698455488856030331092397232726759042673357522544213704640502134941485677127814743917057386246677898306676976895046539069498767734416518154181990524960413801653601744136910283144473007585407757542870751918123823049063193553961294949447034019433411602495803936345223116469711885331711769916281132184661959805088062875712347002989709217910931478642426000104176893501742043621972190036138323661918154510545414760045756236397174477485351121731804427394494875915899926804478300382131869742300377604440489226508979998262482981719500174911897145010336754375905419881384753835004039567782024681374493051671410879296453068142824330975885824114639167473481638061047506392444893472270551877703892933273252895373992840238821516136334462753375948725168933024343346428056320938129110748580769009148370033743365010136836615583988749516782589888514140467953408744591034517757628349426016387424598520719274962866006162249815948997860125846921469118579611170591396371707984931268747907085641107957842056308878099689478290921145293864920235477924766099526671497254520919605220114696279683022809868955969830606971460714752479873901382951406318300900250276697107488522500658122578935426463650093594365628431720665660564181850192348646887096902922856437341455320731333224946845585322180204285789338032076698801028801789714649068254159636835985504219110690098130897880249633513057271656651607301443715225093712076306894336729801543623691410561049248100663289385578709661122122027181606764504842864058585595519091871935063183675875661974765650807406363426684902632730312401806303524787387316784117275201099930641409769451661639897578457078552064313714991816886978395711256473627878635004342577195915549431146600235696278163218960442866720616747865766251249170149490188399931395875748600584139443092273082359611391456702314346794289537383582926892428085132361827856309278749583714875815934152938390444304662089735032535442300997598374404325132439191489071974514999229916750709583982681486642704319213031896305380978674949456936423332224597329935423850038431641453559469384654358874136713008541783997023082721996555294562321866704075756062708987287919043877622124119072944170304837943033941622821483684082009307682685155785940501003869395871149222089735537564088149657222268090930225898861556015424006123017862769423664703624604639431753288442354520450687348655052169245473154946335518267760804195035659055618664418039686306759270514206823585091030041866594127275687296652445947207911141765766716376262518463285348756412668701310000042265073192725882854090706094111432355702663013119354426102918736997162041509082861575035333062315060001492094844377102521815300147582336042604712942525123702915374674335608545924137875085651794558923241063695153188134506625145603155231953993195645464356034425167555517625034480169765692302730382039780542677314045632325087571568281335644680432555867905498902775466973041232673139871211346299709273890505887945303460168150532072354936937924488526348113780914162786028564763451375113221292995734769210255139087045764124083875414231413313788383493722245630898037610306648072336589817083856844442118679899756467591269411456378592621408513285574356394358791220515299840984876003402571617339823108432478434239735466743992839565148057917367074231658111982461762877685679698173390202999325274309682526670406403905734213147011285298656048296914579758094825314735953322390154104602478617883884535235398461912905350731393768175739071821087094969452805050483195536561266593948343916545833786344208500713854156162093084110677479060139585489015907398105674783045445888566101413247875209530158836436864869653961807598765042864112232333127566269027371413079670150657309978259697688522462234388943938958634656824118585852087901483570197682070536377526833375416976477626769637425075407893842710082122272689537618088709771744564869716283162822231712329282542236754365888827413958961639135385929285344627026232546212924976417969120723904211647250666216573155854670380940826504300394546617021772981812826565459959018815426293216552474317922066648594009276162220739952603610862619857716966419888348827199561127635822366850307744084424323732474512525643882694827394940091785616665992398657669521873878043460025980362558403477717770722346694316322201386054552430490605668660404058837452333420999086507113525697396274197619393679384181922050068993508212432103994040504975752677288030980489719465319623671686934977460008366552184673791392387221582086779663608903065674309990161643255263481602540370990511970958494069266253160525518981425857148772710571715488836642559940773430674210922195988134728490012947072892751923582571566944277599786213151995367931247273743927431055660513615684043397182826152230552790941514695287065849643871978084131813074872066836230423070650572264771095923887562737657293103119207965441891591909840527601482573124612933718384772329289240564589822069046548898140154043162681888091485436895535358996811265759909294301851316863603328490791944503443423499330552327223823999590062215336715976664208488970534091132074354632913815832939638170770915707149601162388991682115524437366769829348852521945519123738202617765214851586528480056557559173480914983055668686635887609583883260773248326356875588067635124673457224298354980930623350412945546542311918105612716289946971270548192985855053922022338109255645396164081292389732474509910628181050736806543803709219112039110976981169064122393974436835584980191824649248985971056680845679319777675204179977053365334805804987438648481210834078564582339292311540332386363312080518497461072728270340896449641285409048990041638861576044452978233940070358541816755626592684872444347068975739277018219653710878058459634500394019311108028636613309453650070002017933381690006880899875341228394436624540289632138141166936107496085006953312831231809028345945970801475800817123685591505538619676935314224653411071237549746081655095260366383242878210461617641440046013495806949695211657814734227341334066633706318698891796758646665473282647629330814669528918362332319024795924017265577493311067761584409983622877422206226679861712045641268728542760184448981451740619047124792289903099792438062444719451042072928042291178976880152386317839234887926647764880281172905614505159840619821105243675174478775080180150675527019500567436085261422264888497974042809137269488488591764549889257300357334837686304868485232535655394735948162760011338788382026262942676947041813300645575485714526922455279384908019491456831444720501296957446564768891553933233897004172086469700164867549419422637383417065167859368633662657346179840087353493806071769100573361786174872965662545635016225892896102630434158090087703236527380658478179544198210722794007776899313097854670568722291521984831587343622256681514803514976711202208238819252607514284182914204251478799826608147731761127890838737460353399530148812622720848213797958922287076482165121237195293212297873958877240514332664412716465780062882586090657835215238355568411783179849342541525200955325060239688848112018630071527954136032342715794118870329633424961219585172520081555995230804688637181186300183561092443327088456987667039334907975355054323194152039167719447716128456881950011983755122759840348221012731276375645230376741281221470326950216276254120294024533228671429675545058471078740293003173007097448591442370195683238251237343842924444791072783242083206580639266641868578472493396152288059756330589636658984111967286375255590005865936251291203143338678135401226909853656247209274449597879877076301086996202858523184029745144958556156970691619887705197603576445933289200972059465805046556628007168458256370300280019739147336729637020093294758978099930097803697230725519065209554079197680616522699028767975239171071589622911042550580872613210238882360750273609452654761228588176547188789356623105609805326742121363945978753380031727383869550372696889200372752113102845393726201045474460678456467269729443920359813692444792099643259853852336392289237507438765005867097777409341325586759790969354902452319573138167844237432641816123346031975495190593541450937615600447428931531518764703427648786699278204508249112210832422480119633601190689068213669536756109711352737929174874490967917862140828423933913216441373080936654660709869828162428911829698311834264781017336473926898409298558225137581444627826441887033252499564608133425061759824306791904435507222939781593565963638216167595059361372819603841884752162129051082373792274541873682675321709907257253462561310115540700582176038558599174025946069050364079126018303524340870631916315088888001692507690725457101373284108299293261812233814370614781912100387643540588613942170429380720596122620775543024752220034663589554497622664892720871490030287232640256011299511112580270586786985206346849536260958811336562229813216552508080318029507723752605210194116236519822384634042175212105925176150010898145280332790474749934543775887465447104388391418362715951233989539733138670070459290998065719104838551145282015967397923305180812579143500937915983851161554146134186400487660245970633839068164406066975486189038993239720911927230672519134475371147017523276100686230977794178644577733996828513889071149784071517938616234100742247485817651778952050224452446275824575273829412953162291228263887900529768598165387801909409284327668393378187585589482747242860100372919913785737669222630507713920485727931279004305160303411468668882652312937136314670373457894257839932838997452634947624072165375280363572025735968229626131444878003165092366580670394924545401355361487267751450432820312792565988119026383602086494597507381354969977956206974071482759330205590684264146054834664895915430928011986018966659139318759882295255428768268896767089197115274102086103963072194519627959460837798694867478511829721168124603619122209080664360034411270818051811507210853979731644763026907162521866811917657876174809469800171119643809483517770871548038385882289752776963674727767341911697135278450233306853563477405664938765210284498854427905415308774473301684352516060068243142010380928236388589737215171795458393667285160547534378075813969813616897101211400285575735880976526713771290989916199975018101036011778962676292923932920467562416544592796561997361171414200688471969217912891987608018140714281170925711445925213350868018910136347502254644720787825504242758612302848204574149403712892305184474987022850567636238521044373302516094224930034457194278375835931667477444918067199619709679766845130294521162746631061862231101062125240928148132972709808205164186905543151339756920840358994942707346782868390286129180194695242110537572272178537176151135012938755029581354024118643005512629322455827065753295269506407347706270141332476230046761397909291553230042877511241352499909045852975682776795596517724729246438551966180684694179828082805192733114327520153046590503342071547801404334714393823728230825045260701957224100792450390251824026782965032212108840154163161424963701085803239074464244442917534392122630879725453834433319872955695616353955217594926558750478517717443832346646295941574600055828727974590400506558653582719867385921516424321403024725955528798620296335462262223346150922282283511815069085169529190983102647656908113435278274991572576932517152597817429839471321754547597414412670873918761794765225278377292988842796489935602774528424284563572262267477375668288982237859220688992979968787887414557653447726883227832497771793684619004323123051680121789823403235521054357735480423529056889783586683286104122327982265623995566340771326491135989939365245381400368491959521859905940942844643758991334645546802106683393385088455972342651002241212125555910954400853304248636835602366593142036283512542229340784821673127260456845721618233647774101104085531742795443600885762429854017802764371773078580532797274026211225215145483367893185097224385691434000688182627313180605427244004354368507803488584987506642745590300640538318767225854218386782790998947721098334979408888835898294754112304555379179247648287872930090071586707095183580656773736166174441867308963775990316290557604368320809342451027543615752439616396702360336325321249268651585655189095526051667196890982095568200231544390638932395122182667081399754120407939444756527791800200144810155583462304449659343663488553999505963161980263005349105932955473833163464614894278811528083651096921040731890453404088297802917006718192895313596814028224289848817771840055685919525769314361173970214430133569591180770304079467153728995543563909915306698650654441726711770769019191070619249813314893622300219595469223388489022610954768026256051738030813524722698387931861373722985247241206794598409612828181953623080255234194399349689213429697355482286113861885906043270860848405071685936620735652040108541758023077609105422396935802605984178709336780299654967619918638997265931281353786800836072526640465876284653062350790389764365034459881002116538044500344319410371686563123003496652255642776634729803583092073761214177346794971648361835461182596293925321724943000393900932732046921322484617675875070315863765062282180704069374891570127064252444373717516229101713387139069126605697183304965998855807128996313128306693331513670961370664439422942202497689674763106545366447264489779297722160758747644019085004537144144545861373433738781142911273071467649130126077130219775293459886996129771788302897655217233309165418714828657346304654932950431877508329362482531536592752154696128271847130542611644100870308907754055901767190501869123603937104781621555323892831845413716012020359305388404416617932182535835984878584417042139123899455569200827030776280485135124680836245264417279570220282198752596552189840611198934378708240026650629868933855006789101941140653819892991534021148301379186893906227679109022271082656770780811806803244184920474583601831327530318647091800030026912722324374178986243273302067936337182999280734839900286592496640613510323050234548852078237014093690721333043832682218218181834231892243322272071382130370925131087826875208694781813652872296342271836700958170482785247317582969514395800641515730576380067248340205657971973988092871371096981402101519257708782606184317922648901688331362217446543849931156400692736985756000853737335068712208072404511675338359703823900310520541416540704125306633986700268434011336138672938972123300974383600344537492513148546981913912774302588802708999182994226571778433654903204523369701938353580159801622574969224128113947983042206233829557217613510691794197397186519338460285286994095246798583667632293615307868262500567860280283672232814328110670869327983312434630904720467343296189100109211202285319511708230482390418254708989600498110024736827538244332835639212439049071977139958285817020910994235110817132293071566308300759659847615324544635588464969544122458601197120661981341610815995119521038734140637687562252120927341335039896567319560895853279264223246862173117755141620970153980788163030091420318867236638469573447122945553968925681996236294143838213486123167367818911061047666627866512265813346016904924799209431579983932994862783065198407372714088766091635013478848480914132581734668254999674611829115871027790212112697556300963346087573741636599292007533401527436989398264736883545270617985028407154553125064003507633338167913374974271668366304063861420363513218014386824422677394612228581120161159921685471233444329101528139480713297689510037411131134756134257572864245938706473740413493033561909254780653784509219540481993453968461261934220763126868900354575098960238608631227483156611299285782487964768487551319925076884439655583174419719425774387410905453021179017911406170875089641196058743974207187641025117303401734328678797157865191763278217288609315454352231566100200670796240853187351410506781334160080765088539042062132019447273849318468042236698832975991575068695158892736781311134698469905631253558688381367994882611203292949926197067806137865825208925877413593884610853849776932029917718649938240335356189703297558860623210163828739102958091449165946337109659952885203631976683977188689337204773004662830781890689843210507676696697692942219590498384097676882925132679943384497471523637767603936751382740752149722862902075924429534221558362714748769101046696773411600933217408353121864910256581611156268117936697095344189422436845161351193963276373178580843873515941982774104493483954361765687364214248208396661266524136547151584306913285264532694397379972007985880126605436098474566331947255299876363185044157855559543742097361439056075679351168704065196840686732961324379740406760018495716345344801843728450909297645158084756884293059072293470232269295272531180151688681211181390439885519036123105030344003293348308370156719915334304134416606339924045024464960269681050678313277330596512244609140394857754141060893590451898211877648514430305147748531511312729154638825021064554864557366427406215447033043999266577197553047895604429659359171092303017056352261990605459145600043557223165068699894213479024753117650793061531521386555780939281385529404954580700123693756717833528191131764580453198258482263734989767962020809708046459964528668514872685889203307269090393996081893646891276852450549859828086392018610416931642391665049881870163325422583051916534977002141876636195359309867702716741620434212219457814269155300206767145113440685438319257394737703954384783252957210697425768487150912452255373070813827573769119487544081346899884508846667153534094926526081129568828335371156008409844798653370854751983034495803345407979648083439353624343127008464103716320759071739902342145006082250366661514545203283932520384219003237225694046660559788100441103002861614468062345667129375354762192091189126618898748933987658248324231710984548292667977704374804608069752728909715388761157481732166594181208734712365206713875380884460510503444415232725645854732833821527309669192481157115172507136237497659343674791428105328267155163707281736155906644605209728224418686026068578005462069872728897853040547269993009848587829690844027769644302406155499533666889219432424434872024988304771306299323986527274717213952915132194344940767285020649854404011368950918580142777545235577180787144535393187768619534422987656187510760759212884861930593176756394073611901422187650633134324467619655988247421990839305524245309616013854574011914591308076052436120175804629868691318775453931380506467174679664871447791531295590029824287428508398828043222461203175195675815910729177989321737161112886000692874759676890876021055463454034116222336077149008773896829703455938166878062380531851515726416035846896041559677138549941603547591024712257429667430931127797375776852140433649415759713458595593923937228021965208246545233318112030185348115613257818246730096729053410017179140442794160086113487429374937777827914891510697604832117480253713992613378429538209274570015033175743592215181386807967580580608561777708109304148077228630604872334067058621719696399501475592230504114608400755802016491804491765823028438687877792244658379382537652299840359500405661068561955017242536636229802962284857647394332967971432812575246847053422472483754217370253849184460927174630838649463271765316168039655517939141551740170928289110462903168397020244105784426513626659356399168172081421956371783927021483479085215279499599489879905316337182460889215766491804266075834259138636418710659566610853985904713261777051469951425472947050659717448663666860810427896463385933973857373663522874797399731818654894350154705991259967745315341373332668849056652957927560814441238614635822859818095589213336990459842953901335012257413847764361358585054346763412057159578932618117130113770063352125901088419521667756207498082891542093250976499455876034535330744773725355691730834253351722776019183895320906065370834941169581594380079100172443202118951264701032588795866738891274036947657172254932856440348642279466098939144654900867297122256507454862844696094688366952890249954275528322350778637454794151774279119998363319087491457439486765734885617662545076635463403701488178403396857961855677354994995795914008466132964079547181214259267278494473224184764317856693851937815243403922632743286230365127393779911540265322882174982206179399139921772226785413192321886319266171643823078798758516270014993777538385078148880165226744911854596181345829831631662718043881410511597783724024869898346831181607420768750601673547408752489346482381151477649266443073307191559505875961863493873876200450582028601259513111257119553422616204771562141988854443549476364608621683889971441110849740163804284424696105910143398122338514297522241823913600824540162357875122904584511119768957483185532913321347755102357539239035424434732123430685005095124067275196651836130631165410219196674744686880447471936870322897138312826458152664321040891200526965473277275879308979983773549945670754243879151054392506358258662197616821671714111830511971438292651096263762424940123142692443727004112100347519248910136626407604327102985694269442035524502389350653822938801321814432177433169870755794413816104071934328426831599667627725010585910381993231436965055050248438444116989235925154541768605960151564507367016436534668849790097287006745504920313363164664797792140414194172562157979317556052485408529621099578954063274325873776028279999293892901278233211496796922089428489112972921790040997352925103187715711810936457436222685609157646493904497814548101047428913606390874281056271117355430885889162862429339462170750175558926637965692835291521025634454119925272203882829606079332639108316091440972525795793022285051008584211461622257520995616556726248307131662568618843373259323989207566931499898489872925680577680433355169794944817212551433097380579451210880235781562774786048878755730382503218605051529579048076794547120786236751033885584078831477639297559119848405615692505160026440375919739881298575101065171937684425219134411185746692410628859993897336618825049913391211945243979047849810451047084741796983203936924831782232452565076501040419705762906525368603613067256183005548369078538718418078967321515266361536214839800619987370245702700939326045602984054257904584356653407481757462638287309182250097589291093736870188103601033730067397623347176139559342882232968722176928379662624758165512252461309428464975529327838066211879228233651942617574044476009566407190420944751806154513078581700990247980966829651448611866438698057605444648463910261053631177977999285604337871586979644598809275445767143796385129365536227308603637119507902883130356023646896796187360502010350259627581466526189879414240314536314456374388157305487878606831978868643577825079247190021591396969665728846845259396610200389045039300641329052817937209484950608454804073527253119854264747694593784359863279239552151193897417073515226931286504767322401213846682618941826048279707936054470271283339977917470594658702983998565642262283304372755282491093184524508779375570006481096250729181320053918532286311132496191918507936915490111563724350858175739028748949021593050832412645391537172475189900489074473518561348776552162742169160272434682396873397868682309908511343868698330568256883461140042316645350526551913751013098063077177786988399813687202124297502572040264351598963261507116667306855339363678476021289969614175443409640230326120488862811785760037063162777835911889914791203891350559446040237080653800474062229512763195485140548734417397525650260867885025888185745638901787692982076846336168056373543527472108059298311090561577354415676641941439305373716521437964514258175778141550504544683998008486597445753748690307937956798253956291508868981040894835849985183997670959710746181160942522639948452950183864650973688693596637015807530289156224130576126157076634066185770313492310979761165380882742125877285647703936638692586650913172495198048868467467065573746627770514030140641838311993640621950890554731292501209605364532177486020647771807759344303336263654260592425077410128040178290068151747333916359404695985653452126283676962391285239790478297474097061322858116561568983341040955837872495630061642815383879124504672432691388821098780001197588406513956893733208338164020892470155671096276272867838867222549006219779318433405050855960639367718116479494739852953151699682673456722158729774344615095548895502980444499251348303457745729740903315267689225490248715017437498938366804668028953590712881715661637985763138843688848898772970988072005390013082451857275571043898677955272892248156285188410200742463199719666961002740124103076694867261719884911310622722437210572081519929950340891588912084268872707785736006116961835498944309298330173491918245262580499225694949445091668497352210331321725099938625006727935180674003820484468768202876259993062459261128840674705228888140095105262051159571693635663561061260229110963460713767929723933272706283789956757734903830356786968227624981059092633293346688863658892987803909957373642918425000514910898643173553670227374032507553069957554611724974789413396715947673577470052386542279596376184626968635556705524684305709208119204463917270110100432336683268860155261164365143673518654964200131354656666585284783108315774874697194851249752017473723612449781744985722151693679624121624407297025100809780750785634754667546768658061590657953367238227645384621847000049535046500664059648104596210886472897773342541978623734969796706358545815871818882785543537048446131693184580647612106724039958275201860114712960701279121137138869966751155262315232659298346102654358761597036542540006624913075224114064462786780619960280108030074728331704257060838951400438082398132034764187581940582206013961186140690895578559507590330609420657867040007704620143378925736940788878267114857951478240200616405042254087448773662804818834255420132130054778797145463514090455913105989502958628454987375998122448148440380468705829215061436622848486476034338577003132557838009100027027019247795188442673052199354081584027109480886193178952858254835894596215986153459175381323926732061705192458951149901897728063731397305074828668700438533999939560831632121797884891643609744959148986354933731516744924170525165380719223119430198588319362628474235250891835376174524470164051408325715316390941142022295631680616626588291800201647219979036578407953057079390053847329212331166256308190525488762167086029727713816646287509521499367647870740392056170119169034871985769915708567707642764974792989808793870411870939741192273170573345671439390754824760357519085711145522875202434205840565045292358508109321671409840504827499712217938900451661461652689870543705676831515629352593618182254574385491742227717014172193383740116205408240028630307995861262199226809609805017724684446876806160663482032920738698900593680628245897043841409667457084406836037400531327914885465585478689107038247367022396851894010746662506718328445410385801133505318934992073936689696853841666618443433717609032551559956003993570541655102417867800061780606808675180689597890277519010052202270763611628120303708487613104300984507501486735702031634061197870905965254700114426885226809869707636397016425821852606024194303968572355414478450452122162627512400427133990692677997007158962745324717848392669145798419994856740445448005670227495698844851518905892188557091694859677678146553522106472133130428109639386667063571711624400029904637458062365934742459122617141548873228361127206345860933898884599037088268995834793457884890995677514314834106632922650448744741635337359213453412414400426694378706229042277975933967241306153526869542614894188531550025221381540779751256352881742193183410421783708235509614704914758534476462333494138801548824176355211474013416669859603405703519105996057711099696994641880474052394810882816391550505212961034467484520270472493328716012464178919048650132413996057051406778474941775223363355590878262279083363302851756396431133109056757243580272165504333333226337905044936475793877837446813553369337329177555449616842666599986573413754627316496182934944760566838778997199943069341435141605173973488092955932917795377635427963672398771962248853401851729988036225355663485596525318318560785387217266722855982411567528872328554758283955105146652187872484841138312481818657715354002547558966892031831633381746881599336416477168290676660507165756187843318877681404676313998125793082898656550019357666736247798685028479395682880393676337635036146117941089090980951096409245999891301327743181749356790090783395906651394871692605012223213680103097606187865736428331151204402138197387445610752307201538525485127367537284313719244702283514457616751234882957587478938441240622684980045801315800823897075141984389742958753806636168959467616786918267979811358342566761447290413923078641833326898428838050931827074734477491906473031068048274089979406308754242753888093034667795594693423262408806505841193181308733986449471646800324038964179069415967210571701873120535354315723147809608180171801240096791444064532678385100954978921937113938380978672608243259773510141180235571004818940353115580836022144046650026952346732691780368571784875407902467037785634020278560023295780888815522056135312154680824245051746832909311723300657622888698222357209242632208310180243449873178023210060126403726912590606196131470378489219483248225232557429357423476991198894731325185528824342658664398109577763606633817185471395340761344636907075234344423095797850851009751400690495219056668993450916996094617060582117243503187157685388416544909055553910979398353966371857022001968712524353287538593025411026636222358840392243509075322155568564517755128111503047188994698309274117447034398786079028425298756321579558799609931273049773511222259938417836448003858449593576928490291380968430954686444422017286181297512796408686151809753978179609715698911624670490223224652468978049950906811717178638876993582473787443570879307116826542038192426819772203607530037523305462140672336734822301057188602547848806989473248297792398219019152122706692670486210471713721892371142434850436566358464413370941791124965617675417032501164097323802537747144721364612919111435379511265768936150729658275632598593544592657906104461313035330317409675745142855068713402031654410582179623093937355299976203896892354583213433674867607177712664956764241248344104826932421329500774480889786429013165617283784536508699408066984931174459369470769381496850763156825291699460593825561991125066797255372412558919349758989726994632715828921568253474048057952616633052359893680111115265406683597357985844609124994222697778226082394162349996252187172205823827994929803960566248269988840271485884748678832996910401314615004489255982784464259393342974499763386558263404057458621229787415351245099246676356054276465324901850210898303331348281094171735289534348811477774892591429056885483922693310950099496704719336906931910544262787980322223288309888046864362983488162392056196107624174904359792950272260410220656849274292045433116477874669630546164434985743098925770030469395558182176336754955633519670787745850543055967743295007274575635988647148444823067346033094310983019004589442267874045437515582706739129738063589218440927347656388560168087291338746612927057960598482149585360764578230381442275834698699038682103528995728890531246368553197697224844232338667612494634252293125282485545165669300890919698434360043153023552545450334852371504212501786216964530468790390167311981756520196790251200421760493441781455206924969358967156515408906502086120493780880989371867348438871978639422970086041443030816981717993410928690777291401980851284404963798642418216803626510476968626679166640975959099575804683102347711184770300855074746610819594921199771491789068578345134271941659497353737178924416676641420637723554370808303177868325454488002381430149019825754136125357166778274916542026175768758873623674982527323923896210171837027368081643852878963143907112546394546556132001448523054704432621301008813163556645075503177533283610454384567179806927245721317183176118028041294007531983458587986178692148105201639041176087757988951957343582478647647559853824791121853496613859356558905369359095454724695872163438177316473085781193684031672207292958448865508914133816221818788511568540701986741301980761559844162394248079220397355605295319116676143914451206147379252937108885682749446337130075482783374874904821102653505652339028649687581998629568552231161941582203287904155790908139199019704808219118102002524470645463734777907861722451142750017969799164264062034439890292289831394652989987539792177726005269256651840761327621751706146153383717808105811778692792125715693912816960724200872798048142944693143280632387013338058778558147517616479837509671745490622975498361480672540808205453626668301749379906189217867888824064017524496181470384553196960619305155313626809143773753225549472931190815122060988003938761044482357068153416188316152205729383942566476464454823299589813418879125725005717300624492552772802955031286689156341738738699806006403082029409257254629803830242091843505351820874505395866323670149152835826340483163318368953193491593269092596195284664138362825858995945066369463291871669530877773972114892273631591450090012370550038907636709303375881755998968265006779346743249961922079811090411885568918543409229667514153873623515990624707765318767228289584728800224699902796435951322128066641325583607549716351031460728705688200517741090790563972420736092762687602102954615759032171002440625026961212116185040058404149262582801087661284292655980138227483154309856720183026879941807995373910065743479151572294192054649370116789090744811926339184184701633450699163998400402443721202591704859357176728519528981376565964389017601518143295341494074088320460096333856563012876769922011805948390988652228158253081114392581555729991523579372737541151453738308293012320599907274100803058507215101254418760186590261454151726874079215266805847124922232723034821933134673781591512964201720972709853559953574931133086270900949037859858856094102158249276085732998408058407528904387457596663921238006133361415493500732446456350745849130375904307394942004908652329534993806186204947321641440145579041027939801984387558148811581124937456098817124151849373679107476236823791453257402050783454560693251230560305696956173622935533255489219859449241039739012729227522051651526341320880723390502603768999451659941732387259376669029503350210348929819402784895881523009407972293034467570528575573779632353458783340521798359577412459065864463975895142273134673592215145982163599087734574484321173257851651414908491537802990954976744793200516810744554801718252381659821148026119952047214538797772329385771134843546515971792227601107294500515508093358077482797395449281051306974542778505941683951123979264731142301004126662417457560621504100562335830180150019122218288238589428022234807704373083398307730365175784876490326363151165337351983364907711174004477694416412109478132938894022445603345372445691215793419311293793256399603653756765052038527442623538931022336829752364632733084103603610826665480996637425497015828783513978339284308494297980708516698675735721033395000680966444528817294970107379258910143886146869923835071240640055004028321976695308581048795663995722918982846283102441565070678258103822259048667714118691979634096674899920203397833773098405536588500916887795442379321252528160885645555111599095424368840384486598355220909976379527139853026107546630711933614808877969997721352975456295796004887888041950917734130318086157602773303137390636649825758687632896971307086973527798960173618419620944706087097379955370374659722179948460619734269490166201500872332924116069533095827244505442225852302233000096075983016848407780286966859505831633170379629899960620113900133884471616668017227100721321136478947668437928716386844472955994333684586403597855902236396533328935519126399501482653022534286998282867130645971820824920547017262890708700272787513381610330586028741444097198137239614863140958027718893975749220798630931390868662284531524215703396188807867901534381579283302219909431442535195398309012884314516218907121741412756962074799739507284425296482933993719826923981073027482446823141549829048279545369564666427458763841662773062963244769042455047081688262942777373632688937494371505527172684232604775958217353543168134982143678516575701231774697506134734754218883277378347004452804103282945163768470609311969894778357416945401940322562572174618308135524069225415746102237455240830242781251776355566535532125270941580592020052698482979027122654752372575920043813326307448412557976435367570227659776163286026705615008621870455887519028091714836198145569378522523468924290770461362879021439918885441780186412524435257180609097495632543223006327764446003646190461903889241976243651596654671804485796741702060676087123154631253060188618615644868602338592384952059373325990799558753510639648145934019233980204052294621927390746014623099881490284023876270280707515149080082761046541204594954967997449545246924096162417078194066136704141232641328906921497520889112199574457005595442828706162517097100535879634108830818608120039297943393053836387770449934834034804977297829252349929702568213876945325366941068025963389729561455819118686307394075904426983911393129799594304854733477672747035653949980957870466272750273595526198789985967201452311962313644174075556099992285699842402085417541498292706760349058354552153566123987653031544836046099911333886643749256493431373295811216203987621719462339675590712654270240185955082113712318753448650693584889693787541739247940696016289623569113499105665507987407734576323912400094488079021515941677668878727498666046744923169630759493981186037407165847943890027881852138028670627896917428524383000202682513887951786164022566723358349031051947728660987791804323847143565161964144226907678632918958196404742926533130729267344805809394966629898995772663851261676795331408822405377397177044225887385559806731902628148457256218296766164836805205503079277145141918230689473289755076160827185592483618166190372574991523636361725461149151706319995583995829851071856398873332554935559591520140982935592989420653923033738170505669489981138244500990979000324005455873293944551607095929158193490611517545068323610570660615645417490321523527278060926557737959789743108475734044281167535008440594440850803605466060959175015859619112098289821586492121349895932226485082284104222846193552238269675676049090456190963201941147962625772809075743397122626967793361752293198938221430212956226725392151445795788747197635194900507581495664976586200865023452466151076154423778670120588337804662661850109586790257316660539735751085514576969529483662943064947818547287614968113504938000325541014118072251359123582039271560910447737033744830524681106066411754298289681366149612249847215537183499398595444232536536439240293044110377756175558244943586542997875454395538361779403894689024762527030496191034085708704179413224545072709269595097398975557161282669685223891848386898969126308437490028028912607336043217338766857755299779078721554856162280116851382651381291890409242398544991962855247167237371745528432758991696928383803544320513543845207286368767730956731192453188855874776307906304691219178264000471137442380005270769340832847378069207347834214722550088538983938209210413299245511139757931732446160315060709599511550023341274009261287483693207923689149992269833160582687724258642257253698972727570123892684231560029470327158241179463973413079016097593484650569321228449620460905863376669642966385154295637358077509620814870810260440590259353498363693386831234454748016730668422276322527326670520103182169116134462267245145494021440142039654377347204852754808075217811220853810973490217519467291841208984102956670339593748484330241754620094361807613258246131448147939411021934033684002879427032104196922521088328404914287494828333084939400005517777591174375231796243261813048171785515310598957671530839851003984116697439200043789063158329063019794240416700262001556774117324795265730749650409079336749011010587655049707730144966511808016652667644570071925852201788240147239338888114011982074499622141540269426222760128702837427878295722974308452364954028061543032080232603855499678656471871771714981324053492620004791231330638928939459503511030083327452732444509203487537465779039326661297595389400147263884952168306870306112031273356529444613878730583133152644507727006204987332718699087322156581936962438814466235005245562952227175462433132825146670963352465720668192946873212415121058318564690350779391223782253237700175221991407034599532329669835532120530942196677049054327955128577115587296411601526238466203151967476242351683580715799542160387815366127961847831232488635665029259839535311575510655883742879611271314748799310450805003067316447234342453961756637373548712262716137591793712794940791218932565615797077180350518197804486179307617498477252184852889348773440312856653595292450455377871595665588440808614866750491802650162223748929466087207337987511626054826012749279555845622189018553958581825725983765254758959502815829840079408075533640398693835181552634354314763490292629598646109476525001014918498857319025131883262249851163249915660115136718832303482300939574658899540312733886880473559383097378020294421255106600290569752020095604568018490859247509103097586425501365277048896100019833762276330097218799162845814665431925762181461638019865965197809698995393886342362220593783819134571018581387794288753241034850242241555455104788589287555580599207312565503808809725116433955777736379947204202261724661907670739133369426768722912285452332546186740134193069585438225811349284902653504244587209523993092314641611985531863087050416295924965482174573985146614716782173862082575424092305941958820152415742660990547383478039866248366159042207694392543551388053433968034845553369737320959608098778528527034825599398583040610509163453924699448064323110203470823531341171682298643155916393947308680983416964828569961634246584299546519434331352004357560754324086073966931143580539242602928449301057523138561573720996963680928856706151042624709324946061004592288046064938789455110906266677674947179084788913365375385804843691058453162352825049952061865288750621249542047696670618854439158116510260441491789650333807938012104428828317387742675791068742341358933062317473770679601222480369566817037100365835073078195788965712534066315450008080936667001189666242767882768010639828133573280939027598405061655818642526963780403934543104413781481573183074534839977602752239991722931898572871438195103418870784599161495891973777354747031839263711927312878671607696362591441178603122217401505842135392657753628955683110337782024843263995894213299801660307991239197488070268471381523141570253824550828122706569665180176044899638750019985574229437757367988954087024844257747649999219172940113266281025523936799400566370419339813835134715471187175151729234970704471158461840461425865932272370596054690836327726189102133132600833356434146477747567263573858938324874705912658132843894179417802187241055319167259409915046220797811429783676988091469702114489077668021090995734226387159858352653983990057605304662545621149189402468783264809735857904942860512841365744255450820283223556455875417799328562234024183393891886288888175031228472938065668675862397386821034775628821429257352354573135170093288788201625252288247371565193730180657241008185019984257650398896750843987473332021300376253365601860740435946523647547906344762620166732854132335922931668919645030775457160085372137724016089526572659379107055042322037379909250995038960911370933647525823998057687495278195643490593553801840753746710035210975117064229700941632360006697161417351243429230125221085154741338309067117042218057939946790731285775820536158803566596696021084478943906724866703445856463250309361767335719323935180905568647733278025551490025865401808279951613373886438469624093782639012042075662719720448618899319847487446792941245507546373397218943195115818650701313144827746791905380467719291997276669641671599275368747718006328796282025709240003438257043483575609657267292165577991841910430494631279553532987995910118300725438154759522186316309679706114319823422764689156517073660419006360633473455946089932303736858988808656529279989859284565455599048442230611904564817111167089113332272194931009408688806051791344806769865487613834852268970118297458639281300204273104534601593851878684954964004574714717607156907142143028882220646528511051289881882136845341443911063829756613839357300740008235376425085348256145288817799197804079069060638193866432955098855055871109500735390088117810274175198528709113454795248091262777730424344646975122840340412887697021968010587094740972962970474550518711478408781452113799522290107261330558177616707748703616712234110036219161082421158646727579402238102073019765902233233584585163444617315543407923338679006355983700191684273769997299615941422340471687074048565105389931962436836379741228149485438812786570960078748146628386250424865466357430677097615112199731196535770004981660208050922071409598313499843890438606015756628288137907739077223703690922143451428955738050827128673791343977044062186400227191705990093746710445708722641580825977052935698792128280197705871307178193319075293166375943700997061182679355744025057376000102161954140063084862410843843492455522996976777565667948943145502841979807788654727899759307486345062716685347069399031998545987021991282347304358206000040093777947686985658853614402549907745301527683782756402128142274315755555895863928059274827471176138294699088238294289765115196808182841156591890380132274349429559575011964487901692419321216833841663647600903370512838519390473302249246420876569819250047671764935237945095111793598802654872285495196397998922904929455034499324352003726296293115719041145509986313403281057689308594869249935099804119448937479427411734579887601840028119453346196324692301355743956157996784564621066363746225464783676393019555073074048685482226591059303046169285826315858958146731465527188562028628786952828340615481437045871046242186747264637791832952401634536230390657242040110894989763780203209848545428326031719417450097041578154950218638708429945148760881384585950258988364381953873699692610183739297606335698406288130263566759390507535754438249202523995417147687861550793885365418223836794830509404267306060441548395589132146046938959352752756926564313903535911395411849497879299579676361587757735714013859167753125668045392713546567534536292199597467616040702992902764210441373627310435795382470823557148081717300631342805648788541807945429355820274455074040985818811315098997854152686583134344571007568570849529748695911431428463475614536110673149334802295694011472531239730028602752295951967127973705341041072991008082333896883272429265271084871502278427035062165473693166800701924216452662454944142685943220955183442378244200545081016950352503067107621005519272199456087320696192873321249932157855263286975978815865513355007938336579666030014247805184675502238426333462021964403290027784776453416719328224235044057000177521799640081886168072905118140278659178318739120683593389909042715097450401322846728361806003396646229262420770264935120434601725000539097574507488573729015122247596552774301009795295387057626005747049296380796503583610384273011569161454611466815623162311343240273450363286259322691850068753815671582678564625476136189588874420116720580555742237564025543337173140520575060963530324956618029663892338432962097897237049542893199702730725074596650264875025064297881777326007681252532733281459516612747134294247504915397143272218294773691894184010841099104438717832371195059887051068361508069648945768428177456442571267074899225768924395277521210224539486965479450258144770539442082279423175212010233892967415973573696361687204360209011250715095261998864428800152724305699002491945922182671108984302789890363044184302463372820410535634244563234292770756961677728200628381067062019513992610189172756972086782540058393549641864184411335276277501094673106798661685131598948424224285387474783894871387178475712055493265515844575508728444641338773719453837639375340758286616474965640749448013239218241212455707747007148783241367788735860483198829135217128292984881881181550360752651704719116534147693437073620144926451342382779610027855968920670345502866452656884777676584052627259802304562557757443794730338006013927908962379358952366144721474020425641848935235920355764123530066548094966867948070442665717585879641439388062408248931031481777925034771338589280691027118690734803988208280292139473961874408070979650932412222611215706166295834333606841183899875847141831497535922442250055830935214116405196754443408608808744324576394770002773028984718784902369444247466958274024111755325658388082164696728109118502734025209594126366217669459043919714379947011399386083083424354204829968307763510006075480798762690054793190278127792516571716140372484798205486627572828441774269559241581872424896249330950478187083027304341185694726353133974569867012212768971930621296517896317194339317638696998688537986996449688361725340552968798743856744963983041449178265125558377804893142169146583001351317365682992125833897357055086711835639395747571821256132259257936093035800545624943402647824415450628486051247575885613887983429092300572584606262437549811816968423054242269600740970313083942291537433448810646155641508066174422546228402488077960927861172839350889162829118766683601352524872091262346394344876933499556553826817929763856243788805667686289226564569407479984261817731119993576334766513735151099069713769500737009895054151539083653816244197215732435097939204656114371034368109512899899081659382948085867379159768254759236932751209066162656558640000483806725784663496265630466482834053322653849467459559919820145279167586655278942151216442694841574151509759521227163686069851652569916242837195430575599894080608497216537890442222323177132880031005224557932593516671347609614135055119281435570284015479785058789584164939986036353766848704440872072369345084516502614773434424640803234792388982342241201628801248571047273526037544979023542038830513194242552015682700938189945816341822273146877758386870780778500556105991770383710814367012674862737586835726584347414886047808466331866993946142689252751535338920577640882093062153157819760862817281344989721304444522114311070583122520978456081104527600072902470418272760564781098241227671227510502226470549363067670079296853595986729578196069885096534914711657237061492635508379222689452676437207512468513665713990997129289929992387629510967363885528063564896570573641826303873324159425014734054641876174662022033618759655079745890574491529842079662482341455226352060350652918838075584553174411614408222317933022659607231531294195532819981255403850661788686225298164967505149070372904378756270176316533367525609877576737782380173033548449185101179462593041303346686586579447209815846963620619624332028471558412038206482250911563306174315550277860559634612073923328306140613887599146693097363464373488770270219633662089984939439338053044537142045109504191605863207236608749255377972067999292570789036131992196482870864593519111125972400157461815994172109285023057041348984305406767779747207661533879732569813901545432362569200377686012314631846865734352921983367086512708176010505882579912472935123669768286128038851280350322244658001179046453044539944304019152730219262260885981461073753618628172259492225558304073756852523622388401201019022255376795149621077441730236431643442995223460814346653741992530684236502541439946729097678076671183099714075351856859000165680239055967585333007434078756935351918990729542212261381590081737623786145885633410395298837095440012824090343163105028616096604939672683188128962622877368484804955075584413383259573818331808437346370760214694574427091330558779431214236676835869653472417140921657842257363261334631298805047778476401622576541925460313518882883743261029918257797082269242836681630690974867748557343678595243117761533108193260438039461942698183326611884767449698979865667273815812537814118561216458300534973503421737716235319084791208286254522598201841678254222932791609165518437859897454352520419051936615262341844432629725508085189056517549765513522941443124930298518968215009660949469281824861273395655106353988349758792406268033857861581898200210817101507720374963598862577841757688730350537917086429602426730965487704169519500007231262757173506390754883117279638588548838373058184743903065127276350998904585562252867174916435447103376723112100022613665199354456803856405129339118609535920758307713771054297092101002749061493072734644626404689316590287191300200074160007181168443961533246615751517498779231759560849406645756562679806561721823764364204009390196536494573340583152706168562291502470894204836008956893354874606202231243532606262509906765157551852942455963616500581560440310447438068517999710129195307737941341485527261198602347914926573037974589589005656737769188659110718144596149845105319524355279259714334744929065862795604720207017681200916636074592703864996253135831983453705257997680675785470094077552960763501004414694699304390965559952812053301964028932330244445240179233601066524369804207906579849016927577760675065626710244820192998064937052940170821335831568473224986006921191078466172258978284190453398806087760354158973018640175701595644597615333144825483406046316173058042346451984604796857213025949459012286157150675940519876977679576187508025987590018507920682898835147927956333995855326923651760405560712276355452831463762883693690215636321408729076679277811305797315615583107808336096626914823881658296766581994013296904929952422471630608522378384424973757527466342522950541802836778914637781333601548602800542838599822141521645019086951459952557134883735162172178268402092148332510698189073642709573103870544795850186120767122311946322384501626604694924694449828260671348998157865544454467172139378087356968808682709916965290399785804631867178402755542683280880659519448085472585663342816032280110795038674568696187561038416539788532166423056386700421166243547067189616667999061890127430120590670430061525526395882369341990920357447127652139032547361462879311232625436524504647888770367170687336183427353350853507499356973371259917636556015247775413005164310550628135920343743305921639371749693187847718620477850755594353935279471625783187098666598118163239083743561632820938363990430368953852187745619732285055044779696732863289974949697561022255611023018247381302322943088807148227031496782163863666862851101092403758719412720769362382436071993267557592556701512812863631508474360188081309074965974365925655327227048991445090003407147376094351753351790822284840145016427026796482040803957857155161904946915846535149292688075272230972196123934943123244843583210849882006486989249605678119200815625853778613700976543558994062237095107894651727726546988014907794577930932318389397202225884292369694662538093280180912895466864448288064277896157189821595610760744666794226331090512730577390297387492415557481535497392313187081639435586364648914275849146430918285428230379774523235644570752355495514305455019288495590723828585498587703567072257606722517123941172202580762523165195475270133244886309641250535286512217937961356824210130370232988547735309169202478931494718674095376500914620604354634500956508308122639056995314964888336962437123973253575926394071205186267361066836014598405237737822760933189235435655378326572472660380590897187434364530398499328226811095971501541870137495584783582430668983618776180653563333768662672032630074910168551734336018860102002485117272982541856584288438158558812455801501265470482878940623265615945389344713378823133003262198973135290137748102265716606665706483654199220480471038167388135121205598475516812998061304203351706424383306751502773020975804019396254833691213805177834555044620649847404351031558737822664925074141320971945344213284739048202051135781007421214055420455951454314255476330332871918196007406752102560918957125182450044978778146846609807449947614301758947336689441125724271676127518633390514148329017093548216411858207422252045130169055840048055987380519725209599390706766322153338672261127538043899379117198944233702354626746655034467085082351073394728478685811476183537935249646590132824962608088319828129028353131840602400303542903095715930733571702939980535430125936609251662552776812324596486801767479506059407750186435541210356252998050570104767914931474208301187404610223574272599313740370297099381619790061486980847482426016667054100224947990805451243585461888238435468923760219178977015677109674178449321821208367154048940114392774766173860703542484318816625101945264195838946883612735288948815824283520568340578880107459300321273385060760304944776111694153859108919273671749823815110008688487461208941265055104101257160542120619231047503118227724623749449575099499173221507572697271563222607548469287027346217838090559624969397593117332174407692159564931435582974759628897899932094450590071484198924398077818960580659543681051658579201107130195668370526471425942698575033201196511227360879496806268452033777866933622799040711184856266622363613836793955037318551571755913015721632724537153834583253026888567329739831737560569936985175148860564714770159005702281058344294965813279596474161538751796730449587858393825833712379549071196223607678983370150653569758203070745205251752376305336373012022172432436254950039345831349015960978638243048958801851399273855673595834715682721985228116856582011661995237229651029474730165569798081384492135279006280398077820677001465412629481739829228884778696772438966314416757189252722465047569742676797325153390610854821774729870379337809435300857701720947031834381925911748193421689435188140840555845309195445865801149468711100233276886441444239476168612564924348320579750609712921952610257162565276209389685490131407324880233563335137077749304459226189490280370655905490425599570228394539703839730819079968724644610468714619588593360390717578357860875263979397422498899413581187236574598361046280596273956595295331367705602930578821335044055913066629303785902286606726107620291727734619675170826853977884928894808844377372568017985490378086271678057257206843194852301968067403825573411145694847739662347308142695305670606996821929594236488793244467894185091792929923757130404701485934301524522034759552069626430609402939689173374060228346529638755942546463782225102321792327157565439122244475566794685885071810447470643618000840468340966628014739219682167889015547556286658776499725364970189506268663856313419314407782514569720308710851778994549068308786760394208626871110725272414736940946290611766395416378901222238990483997619892637590109047765145586473346938866720615120341836957540941791025475979986486279533504466430106911259624286870335714423446644374216396324060625138197058076544418840899551504221952046525280033657980370386348303205743862322738145568750215700628073572164466672226738308611503740786840316745166829524613655749472729477927464594606144178288327659455279641851083830625424276924092617241614907555119345821200293196462356446314786959435612885093878118409545181288523359147243074112430087757913063657307027429135206924799255845211272414908394925357965084983870468468408976203349056330583064478185858724730590411535072650543031788067725361779321520460136108249905788731522787561938425003984279289320471243877072528214546268941096269171212652702772752522162818196198721600380804137649120251717815025134631832701809360375142740679878970970501306650237261591014733669081988122447863384258669558732677211546482828400810005217130550880163246985887328276597291800554537365537806112679880484739515845746560588614079451714908727655558923168087002701424384299000505293880831519639071200307118582480724852121810467643522541144017537063550352837832394241876385687606912158066383394354582683585718959226617667920200109294024197295843880920064179636843513103742329067035876468047110678065397079893889399308258794215149324853118049729831911795028714850289596041398867884061520821684826308481444459140503986246103533616305325476812182461470879618025762734888774549726540052699361499935069781540889123305913699488184905103092079047951477549444133056527504987333263049588940833919238451001208341046369963338606921838821010949893577126430285241800819023317809212270468210365005669467601307306961023639269415134136230604070807531232493155272730992677564075755427240949264976651476850711080952400892863032007944098417669267123337907876293017187326564719724377751882957580785213913295380880967589284660062031531953500859952615856627134404700348494270278174057146154246406537645709117236733532058782834483463204905095638980778226589032131424313879312683895300512514839271713522675597120379158623675419980799023020311670906170396388166494150461512984257166785497429499473766033816511535874661470330000116121173998547589591071318759031437682470516513085735182314720850932318557698089598353937533023596161411188495924530484710067358545197290460451642258166433771615264509150834955825798234406333551007593201682415189743165489191361340497867512361220423752653079222677739162708427804491752868352783079648775204615671533316088959686743086581614215219170553740994649492833617080612618644322431999849301784854952898232590394657800699881843714598357808517001068667042960221856879911868253964483248132720738167187611690184728481368971261214059010268312109678237673827403736340159628945183343686527513762765953183689374425701533312275937828377519573046974692847986354644014012961506161628266804164879490644734914591887547482245742257955240029896869764858638233512910942395076590235220448666309528978207746794325216725630700811462042605097190824619169023332985752096692421550471055833917517812612874154070188273108315012569278810927968396106207646434899369122682569876938108297428266609220117526353382789297884682241024346388722922035532380784916816760022213323547780108592950190312248909000754665588125021926732750864722307445745306090253844182843857278334106777196177521604104311846980238297547950599000224388736045347866241342530222720849133098649104359279618933636566545061241333756654622724750158173992425637952388753216513777495714323856151362382750076021604130081547715098633244619889868923768095784683048989360973382385065019724115857177732642396196885950227631190239110564334897433657267170640393673645318859318373327673275226395217187781606608956129759592728312806633938891103909797417716758938248673207565272118490679940403652338000434068840127450484691520279571833268649014183126987906775919761190362068016731153440425703292461944733589542829200884889231450940337757258754050129357777008473751717390573736106390062272398595220083500881791594233553330815130812723419732160686641666170485687247524779092303937915103778931647836640660420193272371095987676569243863018201525304347840956102436515474888641577527872536641493139808156957415710398413363202032565396353027832036569863686337903712472146787999553125979382980632016382214845626865437295932306385480516368923815954655742948343054978533009917511883641112243535511770745809635234801869695061682948160536054186592806915473557342696253945554502078698785080298063914500618077271873247528425414069448614518232676854056487101623382675646046001901802392439650720130462912534786387332023989045734321035002811717660683377276082674983112578282275196097844338888721920035699068912579679814528319651555436046409211583282262247629353354738003859121387534103357497138340856543165490786654739265041942414932738568571988839706325055058439539385471789360280043244267745078213462366754247935854893207082334654130258343646258820003749743266336528909478965117995345621700144857562788475283451590287334752571835221158261888102474459819269655304734001029588596487066670633002466966559379999678087016761604009530944444149849668826074951534768791563070255452539642701793271910847590917118014837997222959261506323120151596863048597673887780986162601751605496245657291978048107745612301660735525036893066683945286138997824683695066406205704233949421652726954380273856587487321424222288265256978872563602786813064444692623503013483604288390934725019524417073568911840649797113768730057831177473752133201857903545624616422723606938725852865064183674556072460932590969546403273430518720167456191324934708418802756751371798722607388903027347225456042284429425026202826529260085714463568433903413334883272431449137668365493848044158610892085633451005490959003706994287285361442162014110683109583710436029624199009191846178296945546390907053756940155733830390338744709047703958374864199101287802680837418010031767820293797030546811447490775177157426467148339002263843094820458428175199932091834252670719709616227387837257559069795378254660496620976466897080235695181429688964847060617691973639127646916721371452157471264541598089071343070503909660671328663837557902419078442741304889649229631708916379576983509116393451924223441791579893577335374222245903089167777653865053106271141878241596111289565376604926782829637252085849991693395614332323569499686245207498173394161477796840757733701555329427388686884675224320672704794470368064762076234062903145205578907899969203303727739747946976399065206098097342709838116131621894483163524678790427345090192289127987543192890138352083521442564162431453413686177731689098494711784568138270294917035000940829134077212519113781874354940561704169457498477541915002020392772985512036814508958126932789625490565482024840333444431048797706159042702003555149074459044586643779624648053367672092784864177044551938690647972068980671666442710940322975602226051436255820711178368615351927693575034216394637700223285015317328410296271992377544572609883709124454712631169773895079266334949592237758843153684226590047026026962073902818696379344555031088965484412850508257682356618620527517816393452412855466097024439052322512273616363576263180149798724239979709747039841844005192835193081514818253505458202542757914749206943808091011807134423617937293158011187384285165759609633830960590676805731020698471361280339993376669037821808486447700214574728963901039645623171971108590698909639238481711568997005671819945426276535294107626822827710450226768357183995053393401804913228617587248511327318735426395728020781176125065377041906980022754020798821783912898423484469066726597171581016416670009240563831354739552059726359950263286763260464536007619373159846881748726759215736012834652037492347109154620714920806772654126998382727506431263147440252370960687527149514483210112290103741861836458204095441730018594619005014538060901787939206741534931924322004408508829017799060540776016321682671958713907082672025946159270350086718129151817125446347510202468458670237489874922650764081612015786699452362940959518908485093452001422481815561167133529781511069148023084935641575616302093873709488116770926395351037834710143809831087980387118046537223972467931039200949886576911764735023865630180767345478031608881869185366615840683691977073981144486307070770719834140507111584355118313000922403523931282682206895838976752619992033779905046097580487402058992730484513704104720288294386400267254933337952681577690833650060330660204997016278123416872805779266987480534621324445224553167029718253325857391499520729632337353055471731274102500500266624655493119881455499646712151946825429489349218388394896792049760054358748570176161251011924892547423681211774011136520059148681520058719361019709380878466091786882752604267436157791171616703482196862268089156068050095200596549169530130034682035890388183133540399437201624581741116962661563152775383338141787749157658601115884409540239209306107133853217050542778952247877317332664709640932410183260476660560842644180073555838662970085560543986021514418843714771671134488456776295899493694617308627070280737191396175076901928763024043086466873719955156466511909019687352064720917054485771123512082009994492538653600791353284136609014184473462732173759837639819347606265690083251764192320473350161776758795419774662395235851517367797273811968500123538127405411600887143579663283148879942938367027468842392936154107249364927852708851490672891144698158874456780096921097186776932720132534070055777308126244531807376358883893464092650493714882110745625815994312742263103345659882266421799993949471073556305026538159036151130402400573810514658623411778604102453091154180984270962316045463318617934128262885899552253189678588339458545116786815742228451603294015700573969458236943632979931921088299750858261788834409676118458496217315049008879956715514121322613122098907981014074833121693031681858890885805023544684780525794954704871053532155548770867732447246794143430177606714275582669509195104314840155787329104832218720541850509102502273079381213466810162303898652084778262356840011618175019903899309165808236854085795027210715039528773200235336434591089197286629397350989995842920949834062930607293361585277594541269229865097054404356880166145214444500446020204297416683528737501349887571059189023629874618357106712242719331449548781619310626045429930465165394780798056041080229705828055118718557849802111060953938074511947833862195273087165538733515408880044079708129386588346492080146802078538298741186817728365514779018608679903754286134593674093056826726890665527870575022002699005380878663806797974581039516752712406968865211858516428850097270990186061247818382751795713173951511705691878164682436030108162769908756422394369244896582843939253772708247096198989110425918591098512188025313085130848432494940684061341169997602011714147798412838486011937436549525184618390021990866611781707738746766155595785471057429627027126688998450977137091192578088896814786195530301695347450625775716869773985169405669616627255159858402825859631116476275891512344323266024979353115432215358807576894183761642496708418450744527806531345187786270667195301771359801337474463616069362554672564312851884066848568102764879770575122478935749439587626944076156588548166691559020175388354382731069540328117045337926808552430905674390950924344263300516608681531080558160874878006573324571731178845343313121216045811806242920807073269910482975420261916734392386854385564103343385749160209734528077818257419810440093483397438167942231511929953296985633713698226471841494780109904556627591017835446047829611324668748402294750738857741159823878142713056412895186675970432834435382751941252817882781510239889307625543893536155760858715211617759473739278385148554793982018799906880156375767730169625392414182848222390788291026647695581212519780611572802337275936210543751250488410375014233321067752869150293435550188466085658061767035250822626149402375911211710243679072988552420858444163874107307187445924414109537549475141882327687512053837263134273554704887979754826230807657421930169095925156206639747965351224089846503739489478262218650276445368233060984050078707473713686577448910237837901474419421945189406140371925347752057799947951347734761176848350722075715565306903048977332992949897998587605136257991847719821592789625057555365601011825369906598965520766868552132972435424755960381230148708236201944847167881530755460401034321906629276695623866460745272103560721390760989384513622299484521638857704535000468165098819432884113414813785713519248066125498841467777646168011115835867562760673164961420464633792864544743873866857547416656941353699217249994212654496870142249734214425982617378637545134024591073541868225090816497289051375766092638838513716071979316548866428219657821872258556733853332783808904680561214164020238892428185730735692817069934884348763326876090238964292997571455271519741046164340052176707829578057392358912908084243611690442377671930751362067280284344565845316205303955026003644971349148133998448941046568314048961734735693552068382063533960733013947584373581774672377636026329669001065535633412383638166453025341504234088126475190625054520875681567282576698879233024191505037378657647628655135580336897007729641986682943653322105679755171157985848635029972649549804223651284506879810542705184416141693504023324664085210891326930273522215724022586886493875847100604306492363977467852687166858021282196778549208991581141333494261353673029226982856437402482923710114581336882251505846158115049891309759286236721828921308866733428440227762969667119072092368911887416411768906318781400658320739325845703094736033431768970564291119966084564129199681080933855652268092060831689923560484992858908751375970543934047450469526842520926130821263006673008035873252607683513541596810945520190214399251198540069309682621816919265355038127951111778267365449163291940514865790381281160480165208799004550740270211523747931564533852225543807305704343067500742867034826746968729835107664670201050421662215392976611704092509727219679585669924810584739898558741056465979778303413993144188360789700289840572932973762807372757020788302273973348153515516508816346406278078104392916021024815446027204649184873522689937516296105954611158829056766589670852593742825491686005026346422354868491318251656022763612449060887143369364146791035064197661375327566098886477108223673432358447227230098191524198162108361541786723481803341833457280627057887288437014090425838653481651769499782579957868698584534303115068205736916167659686571232555754373893788177578701815584708548485453184383475852221216434724507265487859528888920140711808582141186919645159691441805442840715124723954573497986743029066665630933672894445255904234877815839885028486007133652294827623393200911240865822136183605849588389377824789361298523232151809167237492264059436849037135787530836871167319350817794060210758024204357218609842130418602606630845255367852456449948397360140043535052138532347662319641951792734789190323962620123431890448969311319803147133705834429772882720344245170525250869389163365996105776033414160661540892911600133536939942695078149875381194311293857812340539916681680992398972638040692005301627206607290190064837063043237882089810351274835673551207573213422277803871120015354115016960098197482721954424903215314893066776384050394641369412085223587274592549320526662361988940764972952818960425967101538782805764988271050807057357379293301594400440378318682981317622910338734044261635608440049256167170100406979482480116210282719512543367205405932334992390380232988743186286271671199708624590633762041916191258007440737387515632059755131888459766306188555061060555575406345880668511977333618194343180064592194814360452782359998968008145586824785804957168701141845090271946939519540073555856707127588487549563853200437712494384865254028991879999577149425297549456084426438707631196066482889255523329119566438571009485666703993156609808703979254311225979681330587588056015784137081917428536427526717305259092435343635489892550082023331770081234858371720578997853760065197833166002929658441644461095156522343073448222578753777277324529397485714159531260708474283679903439208368663430605383409673113055881732095439423480584798717539118248489737462360564401204863786011846203073353308910354068963387667405514502497238752767014990570561609226556909765744231178014217872345427993579734242226630839931561382325065786253791790492725769380965378592833478333511460578818886620194110396210865329332810617527859127387180513046540551851480944007608979815746474960704415584602361079486847128213489053215544155941007454546199523226247423285835849488739550347336533191229470732842811870399825283231617101091050676345290150673007222763589280817065308778791242740112628991177486180107829384742480969143112019083566589764609664168264899173793170845686166331873074811857118560606526762066738138281907957075541878538242982196594445195451136420072418176703516556879288847016212003848221126191624849306267623261872507349159967745563948316714022466637692693186557227427342118548147054049711360929262877371685578559367231888661497836410473155126045374985905661278039244899210952170821189751859299191711768694170241036942906580687925696452228315021201608902869184284345243401459446320018350564751462442456402132760427662572966204215097756003328065208234848820930094571960423102704797053068283118677109320397622093258123768585460531070494415847854724262096961430776143710746630341973026840821989468387627510387896993882386356006292855042829214798906851202253695200862001226390865941069412033454534426021371819231159926300541065361409746022231828830960036039563654363019045318980804653524206721315768666263765281959936332502688215002430518582097947362793007364059961390097632959685251180739395570428622053084222160484809735998159447030388487480238836140857971627296942272631832672657560718007717126543696215884448039169677972473237037466349348137742676305661910489277088132750318182721271154681106152596406814805257559818181179565300505735264520850615830930739986879641578722891293620442373749139516410173872745266590047961310960390422872989224722832588386020081607869006332112605510163031885433187223213803408530950106289576887257451829616716203153416565403491453463543404561571930716510724370270074042279868671228875706384885673024764854910189822376599073302020227034992203729975033282370071997664468255120923722977728355938223730414639037678973999745339023335975105851157157990754847815208813734058797048787484328112576766609090017325583880094133239381425525912682318772933984795301996190061096895521529364075780247397220398392292406962333299091772350476220432961032033364356185402813485099202737549001713667180447244147954887021143328486778523307473620282676325104610138528980171857114957072008509183485095219955098418657713639881009726504627033178967543980984479968876727730028320767039151584530680422200435248296568444430314781963056629598051079183288107306632642093403764757676437896769799457938525339347044041845734048735188593576416778827979027641375736260901689315701496035574451584286731053081001002271845500071295574093176642145370902716878148595955168234559689600497102968070373737046026448786094397308839000847555553556763829016930044863614121887059564355774963306717615136075081031194252651062770183771982522361742375148936361035700686324723879083130984452269760502347015502457291197746889613429014995931790406399884219815586190819094010402747742315375858665394356759536469101402825840991294663292324134748808645867304017281854391666037185205866761493130581613702540316943199265257049403036976619147286949880295245062959203010461450643558945228328999752525564510797800458111085864355886799762023174157501500257708303191389452118655626004652741562628411240508450533162690941858295256643383806023204309985199105624744130457071477628202832227500352621897264854203537969997467302682019995041234968080547703787163077344799781244254088856215544371311284615586577778134062542080575566856618924582858990349740463674117122759092211356776604536336032801404820580008105655889754974473088567692024052182216661214455758489968951707584407713594960651502758625329689818132444482511438567491064949403379313158419875971246354084250155475540307270800136576458841186853675393143476383818614376890952594082404644252197215457758036737585160227724794068571869053730446378829925906145462995015209321248961538483407497896587593288451170459860249674630569240061982957137133153698927645524291963422567454618365583807569753138080495125712407911511153818341115865290582569369107891384867669719385157449943839884449374442449952052765454560196309617543993775921388162987499741494445420594098087550895414107834547386099632794454273370417606799920424270488697206538428658301746235415309151566504942379362476954055115681522213726839654637419808562322449776917265370913930046846874029569345908907457073484990555626165015664742873454593334185808191757803979504768774309813535732767367061253537069767266959929715367301463034393897943558032327391266741192529847798006766029744332359737661939775069124630000279915094335987625347652090150501632720687600850191012062727033294525003158830698447604041897363455084330829296431699068948439009220951104110303185195428139612320579560689850273990619245217565416157211957059400531796413578709198974063650621756080403812931521424414155972346803515056053104237476395621366028563463381725454192075365776314349154116466742347042661823045502698987144015595849658521293822642234397916353923687501356211640983586211805470417018271009000684767436933706326947277523528811420363051156771073939879229530651309694103754052738239174358287479287276427098039461664724606420313991105342514412172355501304869770828873354123361567679644039529565650206715333078350813578574445235103610353759050878669814913714684951784058000454039106755817306539523284219676803957386541427620093266484648552638469746573086098124964302152554442344603426012900819894485970201702910824057352677622973184621968323996185886425344565790532909160846607003246383906734801880469328416070710419273243528242848996691842106061146545074540417072896040031193744500350613255970325643069219067479847945969044764501108088064458856112692000427363142461528108308997821539990729114460916065555730294597899507544866905984853692002901407845632958900006959335026604542700646814687057541300396239659096239401090634288468561697298180529333404556581481617219728834407981624863217098313691540633864688261126077264668670655113318556718191262550921990190490719456692794249642851638111168802619036356092375702439306448500080830160732192863130378499646260502324776963089070227381428104634355386998674396981192906409094171585634608151240721577967427671742969540232946109758808619956466460983352106921338960837755361556166075207565134274245522800436799345047776957137845805551758159987395935943626482491030788856500114941817108882688851173457062468065118564054284379697795233066708897212237739514095884700885642601761065361528670062479273580913241612286225390518883465689084995002899368746665138020997985747230801587525679559409224399200938455057126162318024270315058797407055143007325188193251436765680414860119174758702869076393911531529949734143352377120977530710454314801576309207948979461584000266444490861545322630521487478642967920490319337747614365862297482615385641606691151250297883007166738819815109913239976581093277042660429310003795782971557648477485352854024064206720844256235730858061223728635016996985762074023850462646606480906145000762011248422990263389409453850113912418094508890471877034458974343831768256900916701828110827921584167158128981413466823619599233758667247066205576235707603957743045249291574616511882281208793319103396412255391840299583585476789935811968655143821286879799874541837184070631717952837983873258817903637715397324849974602416515209765146938917174250379179867448459343288369624595481485490706865392591385519404936974608163801359328955280165627663985501065569118664274898162091958414078393240468173861628383024265375031629119058708702351300423959172032175505197192522574158415659403824024807535168149281737966834262751496975016806914954976348678273022736791142629907160512257279667335735075199308963958583650792071102947471238304314600775346436501499202341995326510734892066574852899457163280704012536813528944513858272039744228458182230947860752071270295798751717845823269341317553792876910537845673534255629477823473575055942777820403885253530439310544062519503272849781088558152147473117109812475296442387190886260572285357761756211790242247039997933066137374991797923257387865624446067831525038105781189072725654687231179997913777925451098003551267148557276755500174116236832946831217294803154306368216886428032502078018270881690713857921391854122243194651889079526745003970068072819291684977312846592925521610468147850108405271599018800428047269696067029250703293008972716953417170769869831711923828946744978666053677187369236591860554104024544444112739086171442681699750244561143666026529664033898852424487032384415216298220821109132310576950040446693450125740624778876685916372217535019600749602572796979653497579558622211205285098496702924653360303440472109744722396889733785948727920535917833049955178925351350421809155246809956567666556335027101087273098456425567409470285615359575202493891996840242374541140730045728750114795243144944261500517315794106233303436237799675788306477007405989047647412489787406329280092910072653722167299104151611723237178927059329867182035946127113705723557883529981168445002375031261472138187406425971453647498974545252051123107572271567428969757238608366618291922037862812696679632306598943648203140166324732709817456874866250519059193991233585504658389706678561515683905585436190451668438026197165812961472370965853844616512654416012023481568970349873022614840132049300893061774952698931627241020171538881912928702214376225975413138485758177593788789241450018647543266290131238330876576116808836089581606578221760470487133261084069381728341205000247350916554757695910627759185184030009228370691197578144407010427374593954762186257483127317171805551413315017540101664297041635538901467301898409820937667924582320366998505654813356949717608756857018734924958864691522185237640223941262906010417434382722766488291421324076796360515561920392279001405190691972616296727717082022990078603971859124536579591905176241741276449279646957728223576226594509058527376112757179264782401665447292516685236402103150364468519291745756901162280576222759924700519910861302182286141402526100953811011374586531405034522617572451162648423476033678132556562769001793899068649992193029052046402516056324677212119523000772796641015102188845837061328951345593812132292962580920789264613974335640583814598484622106340471822935366991056545586923073894649904961814112060817075523289874783910402707049179586122649851483966145343601824092601483675356621174249822849517198915957836018828705101587206419995913829912172584568742715921137234500832904718698204426389720677558682053941568730836596921181095644453490294644486168907721333239608676223703510055360893455475919684680233934095549130860502258999202780988092195713163553234346145886491489818029612907298868094219385252702066331815712234055231773654000510058645298451020481514449908097202149723400739578576464737073359147437558309062259161625550999351409909050101574538495995760354392863759412953903478799876962959767541890569594189808814232945412525166083675898673042206452993397490107293168467241036325581029830229363715160682015247893104981096533960619834905096433733000867165603258384665817384853280835517591326802826620775065252457886341425229230910487474793777231028300145648688044054788196842227882177677598840134345752885383179773731888841238425916704290836290819578683894794894365010093424114703683504685808549954453042373716282301164406853925771080766283869689533391665278142562861355959645567251865777212615440383163774337193845112376557336594257194107486749983294375992296269635948680894200838725879110526799433359306291958009230393260621974108656705441048632529027559062737087789134448885999377122280130482626884537643152301677588400644771949959034070825006961103065498408439315017879145866793979417426583310208424374526877037184063399759490575251207249308240831261206056492795504721396080677987608442659391020014739519314543004234318819953539435848993835744416664327055879217810344161111853419942849002047892539232820702738000661583401984620638830242588113877460437184700463117514352518124697236224409177312600500303642898885643126658329102486319303217824175372304086490916950360889328885979190162805156102399743996912518537080078169639741267221405290429371267946040854999946625271224606461032718483711732620039414615412371282498861669604196036154281081385933451354709758621515380858081209057439882057711390489251058421402379786849930771858029015726995026480938049328927643085587565976491040176881428306390055277615779973880646822458108878814788117210192884915849555774775198570166637185958333127445819701161444038435266763988802100188600486754041671269610081598188879053453707706633809513818689875737706500596598977815948337104942600699252578134137578646916247098188234837554687536981264427931672218997675260965915785710731691502419417650426053730708238803889652024391035387506041698829301694764463825355243764244015041984144256928169163647759319294390936610613411104650481753857225287352548918940119390026515005061682077153083678945506414298357296378763777254132578592135234692917321655103921998267594539176357389404909269929479783130050438668788407352046060613835019203717776545819518975021810158369948084523149963225905005732746700845631646182072962332075114162028446099609031995451764619307145029708699830551037179085291233823519093142055297238614580321508757089633984393339814174504972760130275475133839610075423377900038436517928574187515277376031299484982450263170079881826380255395353978665090502721134991162224994692709333689098797470446929999167772278754989972403732714542191418757658551959337805096225951073327404247459885419219300905880388181853487218772973009418327588189486906921531298121638829008834442716391699449339691412376837676682324142599422367814494522328454603050575921374284321757774502015796166992449812480891403899405692944407012574257592709753739524332898741968508649435385411720880464163912345990791151202256727836259939418886578139380583153152038973371722429378541736307266527580788458882837406855371415530058241724092429204286246642614931315257157952662156697021288426310813728737271268873746469057103107815198080145428292900999749967857486122220973003996277067090868606938641906781916836448424759938795002260416206878880790641773597305349453329353490791326867294970577843372773655515464279299012421126051360730045605281122096682103035832580596878819382444080737235428616205884098803787066706968367972447886290304236653915892922788605104087895603072657642479493729576538705626997375011588242883488602501310043635802583371649729517778751387185080205744816475345626839246291079767857488880672957710245882297399413197443219053091285473394354723350412727827603047956072257661201548306953457435426663738956443257239904910338831770080955231272911719069968466775651149616305716756554048365832797452432384176200457230296330001304590990109753659073448438996947790444387401452252736498212598858248042237038196439723226414134463870167282153425029000190704893904871103929766553148809551438142894615572689144745549371218632407774845373189581075874112795112231642990772605420443764336905085376785653726363270478233972945043338199835440707997624673140029297293694075410846297767281616380297159666781297111986545996676967699288414156955556239749712253927005310979258386808367545722057774986648244729683712603595897975451624146439919879376622301504359404848960285111180283754167154245850725061608049689833829206903397615426641429418692674949950639700714280595024356752260229130997214931836786686094780054011723773175068815898572380523558230297103007903251315434969005571328830445194871683700304882967736223703197603424755325997116308623441092625679980437212376323911226204094440013008615418554364492777758095583516243161729539232883244029750492268054839073887221674047741744328170483761952559106048535328427848673288615767962107740761771253375911381410781766484861318976654602303267163736753736969388781105315958109804839786746570724566455737421744100797931959957100700473658039475174863575368458423971366635147837891705241768388647429178092325211672406275990857987879716473866648286940606386521494981972738076221138211646213729409995731489251989152131676042392049228487888636442723007888803089823184617229632979201954590442212315185723990503048806365727879653514875943868390160539731189625004868261193154441330058058964131466810381036291766925495389044516872547620870230532368092185883469019552626076208269356225141316427123805420897890934795758512641274781305320394324119521134186815036141759592183867489108916049941779848681979862117140364575522514752388243788597628298674841320180074088158081167132328046022415410090254213284263025399950731229572777395608215836905132334997079178468653008829886957405763150207024009057950293868822836978815822925581943886174739883412622275763982485798668874326373174381855307201846224769454623668826120634434095748003424230279831876081033400345569766782929186986335462137273268483430317954459896181624019266693831405095861682532755106479249360802718508084060867678380459828861415519827187990005505460049015510911121377167608709900007577391259464829438463307278728107038020033021425047378096631372317472972992468901792599784485081764613236924522275709975306035977182945622339401649878670173762463429595827776850455031113763158392253527464915986777809361772609794355087699411769506247737482590133877423273991499238289004160580850228512339057048454383422959079795726074344476033555190938914158628366706443559713105090333038086031666273432798530295625729809566351084850188618755286028692709066756243702540780904382129544543237709476595320447424322175494102478730569373551643331765451281316938875298939560059225743390022872779358971903410081407139150601197577470589013362223989249494843101719437194170329714297601071360944859203848527157427623690527609017881633382905036663691987235069728278790272065364261367877247238130055032925826637039344732431733358521269170041512846642681729342319525727413564958361322414192118402844705466633414202089411211457331359420020705131090031506014997009029368311482141204682629592987302703745577301083925901909090731432420151550385182042110594064903743505639522585241839291268225111455656601940370626777077666432813350214514381351784821700894576891591222576476676927105567123449540699153575540561839161809416872580959239029909788473586188166341727181093805826687109008450111485164712006000695142167763104847530390863689461503565019450102217720312421438539844133863840285682756305677451973950314963579676610574724044686534988911876811999924630442358220415377018796906208775896035613017357901178098262205671130672286093413459756695809572795885026902592636031457679841841664983116531053235808470773418099086740528399038974799853413079867448701926379524567322844169521737462225023379529393561479903340072333261326567236832753045211764975303920258380929271037898749190144980505579094966375942169691487931684353170455760767616028976425562100504223053566772149939232550180751712843681300751820053053500402029313155302858083355014469566743021135614309190999151108159088562351510043497650657404286019473405701575713491508257373252576671560194750051926275647558445021929754654310357427316111995283725054370958105469887602501704257225028479535480595731009900113762093136420194416362149444578364547076665892116708447413949879159978404331085471872081288127190867438561837136532789279350873398033802270163397915653202404948933817816268809214438582820333008756269421044851175095988073155411489935174695166870206519164341784713348120985786171183967986827087051618299837444302962898876016117710074821609737854637856348010722341779335535524820562994179260712379714202961521781299525893813814248631292486654277127254349516165880708472605733898292284631427080738136110310725899147661418237096290071465662790123975749157585827272778585034172196677888671955167143434250794183771868827773481560670866669469170409019175315813175277642102496967114010779394763900597193920607498025673856858975255382413545632756231160832621572611285709417277434335397642540146674248714903648076781416475267990361110500986265000728277751405204767953761397473110144061412772975188026778134073066069239578282168801052080718579482402827230889369184210697005734235788862531416845602723418292813655181635975792368833833383900682063065832923872098052794326417290371350697121948378885158450974356170559428854105067947410969412408168042033088821092146387688662358237388852137161380792810298191767908337726698113732618080002570232297464379082660473346421804104827163416129142148357198905717895413428352700123990790266599237979901544093398691688351144278994967127996541041890033153090456777900710867065138296363130954566630317243412913157365994659886749273882873050197193711086777880448618982348081945804049821044358988624960630624559680249292341106475605141691322944876421374481164961143572628284211279173499873008383211571390237802200187603239031228370046180057447887455471115296144349829290781623141022837573224215463964324076702817302854265932618519884718090108742956556886170923905354822578710104389978626919117685647721423695891275145843725744308281698561306024599747754739983242905922339489764255747014640638007736422462121795221196754957129307244911136588458297898417770851885250796890746000458799100387599975035474667264582776786426414863075750421250515155564498757949013856213823208327202474383469802505873377341776037874875430216083598305181455511461532243635513178309894285343836267153986623055746488470511308035353493630583660280132538039329651516324667203706216575631620003666853174890644655415795419744003788679445058638039463433878668720374320686894866478227427641630875186353456059501618447897503359924495736901664322364536954545058634869252087827913517426286570160818603843675207903007714503406138494067898567227050645106822556058613172821558131513606843515965855384546624009453546968295373035049276844405746263935639624815684393437369961927605037058846859030832486307466877523532893207306058381237784827326313956597804657627856770075083256603828846762983546735595027211041718801422394049603505225144358733176179538422409514228971702516703044202202104624740014059248062038037314293599018433994939867335627537176645816150458017467266453055375135253710474808124798581598519288499045781899986727026305762818238781461864897765929906617138615860966512909067093724608010996262195169568808315960428512364200346722116140990096085806760588361872255995975799093885668741640985855679987350150929008112731787829466888714467810369309662774192492909183870148986351973277867788692222359989698195466673840393067874355670365437047653231659999998911184872916438477176810487338215917451009802736999483724266998102002679476221944549841142580238504267420397468175542342713968013994136449183929400623531651064415643862549641452414030940408691280382032364908139358504291092290631143118550584181014992714391033715066228313339669713159792104118236257380455032915645528333369786969754286591345825414427836566239093571466325034768496662728576689030756102790260111471636999563168986897234712180633355833589588195414408432967089195675485046082928426817366115201030966441373311891789504154689048693295968248324756804574639137559215263254418445909679050104269781508647032472460848299650761733180782253150911657168643910252237960387708807760222299274098305178349833963810063138158109747847605991984907282273302176946177748896412969428897376709608327995817444324124378012022465825004754865625979810848345031549919631482912462277568214420411200887193497235151459059524969784726594761027453876184492810533999884496692354992358207413442978513090177782269540989959412962873171689730746254158193817916437158806853212120309999847407559442523139719396387464979310693926032527748297758848183889600276537090773670290970511140168733953224208327045060287296133130751478552463017609010623384565934327924173800744831112770400613548956153869091607505775661329001349658283481590359285626536609906366826032061683104850685716553195759610891316531415772221310539383659521041802465768698726050881357804459315403966767528301910918647431990521340999896456069428165175124550571421636850305548372587383870776417728536620147660911937913763625375521098070819944491803782111740029872168304075832598759008745166690006918012474420233637299631878709590653569062250139434218184000416910593074589239360516671679525523647025988290129299100099359902126372393547976151725485833590409587871539579021177123960602590660430130276338751210955436257652923371776766942845450699844013072480949422665058186518085477405359829446979399484233848740933845360245728500315805351921763757561907291233122557571138345286267215577206010616989080868780798384950644525802337346189285848884089071306147067418919953749596834980614725699777830633836811387378036114299356512420977522252831139960946346832214775732083056718463346018960532851784325344606814192806198321312931898421132184725504356690687301672258088554601298951632007725584855366042137953581961014198479715150407010624599957205053186314543814260703601634757452073816419219981888271359779532700715579278729459662516096803414592728526268903173022448428490152038670114639005741358622084266758761275234555977955276795934697862637562208318000629835181648566559005959632694940852083784704159457169520289214299807877896091880495953593865945015447070816039722561153791000565149633521916375730431626628288167628972890727146755275636249488052510629842713676016001755828222846030900459221161773609698196715410841153827152524871813883861840605518711166923042612407043105655757140226458109256910645402981690204179804380136291639914695288760323970757011956075055308810346652738246151502438631835192802499922784864925291597761068320563294805245961184831138330747196380068760086298368616564215635101049416555397800494945749200266126791653163938577444787350302886930628032248258519871808208046189273061435455953027526723161480350588471713662044828765029544078128477146517629795001492266683773902238823458382429867494691477734509064058994885739723998790219623930668452340034767937431024602281314186996056140003973452409127631297808924097460569544627919765722698236748840542329569737185714922901577669728030526146353670791465336541843135942453819848862933691854152830598281352263669873499630329537789875084244371072375497164901066350410293504058337858055435643076159136418109554067504136581453979055798800423334529980951922312240453970057276150211135460492733511089784688723547102973305441886203001567166510357090913210174800380206267258094479742528973778389171414602769517463032115737566700053667690497908233130418515203511584541256172338071101544886141010920477688364458266206460358199526233503903155914540170568152315955386606985800954822154580183385715889411888303253557807564027707707245354399117191895758022276555994717843420193329110877247211123579102529099812376251853011382981752297901248631407362228784528586929460428633876900464720346223489727765304415992784136090247182990034856920788019449626297486852902512224195462632849429516347607474698529136397125696512053530284751860244266224758986315593615412505835518345543337054263918773342072645401509434801192342759034093780959991074310513581331522558401548802365178590682378642705212525400873712640234040734459527829393458290253750413365781093337129933731320488850858590344802914543148221417168069915303965607512682003594270138582645229385920636296169705351050657549939266709233689079620009645556341364400114048729898816215463607876386221955582262903359958810989033276454861635441835398917308058666896244530534337596595407591708694310642659594770062399985326922933854145076130902473609395876576617423970604550923432479301224495224156805818647329996019604198945488916072972604768983059295578395265075458574144979797885142169382294377167914236476156287713202759671842718418908230953421194463330203960156896214174321538517552272120904871608056380026300264024243346216889014159323577074629091778249462247076892960236490897367685512128764287676791767489925935586060398845231899401266572801820702092781116998475489743138197854291450629322926563189921089501971265074255126183031531937903466914139523812314968783991205898953193553017926896284137329343941991882766758063974148896812042836651957812947921428790880794991821243682210370202970029128488491339099830928772870652182333162081024459859483957477577343563651999474859477205598985938175061882808050746058989183102746741838710480987560432139511397291129655360288808148323818703637517224750832346376390393387373113400212557846628015130163863197275074793223878750517964819746002479117961485380357433862506054344942323881129586731326267626538016775099909770995073859024402662665440244709645326820539592835393509847162964491298976870494539870648656939159629385151031513057310279658520002565831323033040479362322551953904760296033758676707713678739193957799340851541463881425943090478494892585339895234322482853941791032639809701721599925051141186855439364191101640531450606810705978002648116219028547274249529233524729648792642644780567789868822682840223312399026308975299684119388828848845594491429318769902461559309087466434676715376600901858932624508193087179020741394462638676277469946127715855361444708805934900407028944517448182811831207459284473406076336286186078858660431037033746894201881013456364293709574158311847622496295300321444736158931488901731794915444755227744159103514886138232109745518306420325194121714545696667949564416788786352516695302044903691803135412126042493417249486936099518991964583700758250694498782804071145559756706667422884483986559006334398890414711625632937518385540140583467640528421681671918633109639451784223227279356671578223716613578335174036926325424734842019578395599050670376026342489754135821824895661154175814942980138357324233922190142785971717958163878351286001020551789198383296864618733209204370733150187416095782000561129413942385581883034763048095205457709424988728802656798377004790263218083622622478649690117701663826090846032039488208194047888355488850363047223526853714648723184418424335995903870816286929959416807994344152187440643828711138018494632186385553273116846008013068659904907839835992060373168948629826603078896727747723436361619047210658999126018974607761496016829005053876396280088000072230673366636516536390103795906789231261675270576999283101783049280950094279079127447731438816701480212336232667902095748818972316622136399222268674308037169463819597391780170851317436650810855963855914161530870383225069845535250234083478370264477186920371163509376271268354878898559850927562998340217969419952344367986286424676253809049611449389840411454032776580433230314838314872623567486939612429036792536355994311574769569175943496661995591147041151176817145031188797111305185146228363056042448645294525518674512098891231357895554558695341830445995651783593994903493966023074367170197830582598688958620616640504797160666628529774453023686892316809673055276250137574732623795762427813900455431034540144643602235895238006043991602069794662582720874730233689909298436186413840460544910840862784696644259562184481478757813886173854637069638949495182715577457075171492704308591678805089759045237246956614076385058687743444630331712110919854430393759334998293887277235517880168755289310842855293926734182373079408779184560017857261911659733840760813502584781457422625833316432674563803468208179956743898946128389247371635398218799800610642972692617947592692158205275421967045038853179568097698823559296781196947967375717473712000135933585858456926722987603756343240741437863946588102889853769629520576505641485712194596058192465769958743802667451863771840982968189342284220216816548277786341975329998246836734680817914083460428309034530989501255097277379783773940592444381469313218853097379432305831633152699761893760193582169017487568882709042982661162732633975853417095223134661842842495002573250326800277498616515395299214524169699376384606129559757370893904471442538022385181622167057914991622717183950152084610022860496250784746931968437795215211614332245350653355015955387843886893733412041557257074760785330512579365878598669303744869703681166190141839296094835399346470072623860434705369898453625228920448315904733522510683232181012073340446183915701606600816092483112236081593034298549854010454613978213458283920252651320454975397276366201987463004992403839778306690621166987114651817375528658899409710422922842497174056224537059678157902927316626908601476489806484686839634299843029371020870128124749437580909481625971380853599921309841495278956980327382993092565733101889572409440149606286507562657371833287444112256966937968813590933438581378428403114441972178651617621271766995574572727817541130626790072165414705042958856838755824314582421966633264954991838509817962090298115666652635637825399644200031014372132895590507428487745351563960764186834093961541703556716951759999418087926272245690713878690423554468814673925269100698247136953150038337256998668318462924628599262185044645235841381263972267027159650835013834240676509596250941523816134438955289846120796870351098078690581249685622802202258013412179160623116835119679408809808183148927217733917303765107842344263561996895746852781829755057286711756329484564840625121811070004786560931184128610963490504580547571877338512281680318537112985922362455787594515125892922840515208607578773087661185033713079932471746498808737710805951874149623214671664508117239236732565962102492469185889113155101849036079823515146209936606658159827880356421317796681610478124142021845131357404136179089482304499641421153004172117878306873822602712868962521634354379331292937513944444167714926053572513533680631533931432618517378933557860006192709424426422146759907685801930493368357985115376983816977883100639486280452810317644379311482285206559427977887972733130276046300277659711916525905137170760356870565173194781385894687067390782977578349928854452572696648652823639026042413132292871194298420768743765856771761589728521637540189807201482889637839800528325435407080418912099946301875031728369780140982160622758118033684905557096604298561736132599094282615819090505135276433843930982766559726552136877841195332955594850387438970681862656224786941050200163997770191375412608937457525646865163008002610130457169635120130050355502673711078106806087236634671977216772698301150221849767968245474671195761419388673189865659252479751494902222264450893467846267173149106915008691114214285163592474277240726445054846460723265087701476129732632659365422081773831667218804945201762519091649414363990360717082939936262038106607105841148737785250708921322451072395221721998931647135125475990899979957973452125873722136994044396249317314441499629409409896553568578966206622975029768757094946613193899234319708049055719896569152434660771379165864838237558302447033817372374138144623563415453699664792979492760680328282080743213404777372456481938946484271048890795853974010290474223095422760353506033814474321851671908808485683509070020542617263094657921725749535379572759646858141337341098283693034683305721904341106227794134400972745258429182352290945312866209413708878348835373077597381355684120842147418698030561850677314565834084239633430732726678839017041444081962546442346661109033168599527708537995897915555153518305438261291467855048801631490139576042348260650208307941281220659315443354488671982138613140589301907272806042394112694827168304463340403011585815024335999145265678565273613288430675753839260661001652257482998260476111864132314863938853439814119431148480997134825896979192414478410993345586614090373418324280907159485398336848991718977132926133763786732203169816826588898381387742347325600812901689984247468201523486519710359993157577362182612355898161426823959758939496219986707960870208856998324388374692401460375805576078785973355358764524535422833797035671165145193725275403833816131149283769925284392194977066231089478467034772925809928764854692859299373445772501484408481146835020012876450700977709563800090594837052433843346798231493469539711557088584488901948481740771786283947612010065304233431673976753012784307199413516558034616005339320321635094799606247465569312277853123546507935366645288777798419375931206939282079900937109090816536781157373170482075093115263018592852233029778238424179506222690096046197656562882890988613605138972442083614858120765240638047304481581452622830185819713140587846328698945325567112070270489269612604406997714413862034226162251986213851019328914531161552953741309431860721225892736914467233302646008098838655615306337046412156745974331778527524712074920129952069755317841152314706286527226595971473830157172164167611027034299911365231258556635878344289359549452523514194184813778256393309456542118928659784751293573394093421125982276175642533466281622910664526845425066542691896951083430379898284040057637991137858864745568271865450300627990052436322092207825978833171187045771426264923239049587823807509081023298310044573768659781582588674008808414335989850304040913619084381171253112341369511756913786021533357511118929172504647826351826254212516208347832080764307588629323925494804057805837415574393995778333244325322637553966416579475829960417987965634170138662478110947498260845399198622316230846009450913412987557262902353943683982000613794758727883664858378832243826240163780692407012276090187782405428936912412183341855325624885329522612024484687132132843098977806590723042734421369130639302827380043729501019518560049533095806142220321614048734446680384744109546775186843555290738177765933451051269064309456797175320192596895374822737295520746247149325808386602931937028213888680155179918938703105984426588296862394810701504041899893111481059969974834582106724778596275765859085572279936051728250667454649654619178155909509368322410883329534529362251519752293041214170010607715500375363091213592126231865937625898831708425183618525390358670926837578537883933679709804398700204397875793327222953897220286725215960100593310701454711657740227838231133249830814377100848699418665171435967106425881799094936325934223242211669974123311351767349966837415567905256540728332443928380836539072788468708069918793744131942422857992478876655568587799762564934023147945927205950388236234668588969478277575604063522343674223192371947208856144467861433961038903378957409076229698065583186163450521901728857390800559185127153170602432268000405131291216599451794489649742348325122667741368320183575178882410087746691339417124646424747819931234300129646964590822844643069817561279427811433609598212443288366070657274770329528328405151248863203211901702083711593421129006975460770626390842335135832270812467487246204968600402129346280583860041528352038138486990040949386683985757217773184327595425345899934406261342811866898646649374249290280757071630337960402108831963919840528364437612330141904545757172080815029776071814425045564764361449840000183884896693127236830136800036685868604595930246486546263172010645078434043351222011230008793406286538605806145914774676278344868553118324055390036634843373380001506514323161118747403594249985166910436130308717535131690897458991679586731659792580676341943558836808005465559859729012586918014460898876460107766896450948671283749856468347486684020618242248388419034589830499234262492254245683441637283008888372893186384470362436965370943041901623506141904718948340241928960218745006695471044146339841798884324307462040628029959709990298930434251530966620584514594615945271835641206857082579593452121095307831312771234808921482511114235062064068773754925027942308517518021472831598716822100568909399516746454990347547425579050689529330503880143633121352112678595706034574692022200708391190744080958930375362468836569697345654024569585448785550144433288536555703867315162623826509402408701036602749491300024933237711115419434878954939000724145322984637898861846686781973870112664886463046752684052094402769713657736580816206511343698523509850370113477254125060155733600383806840035401234993444635516009451007194631925789988521085367761169085820894614801528808755250505075924120883123768435784580523509095225375773123090900497716103941360048793234776890144547353679534781007255237493454306910881024382411899158469311732709488819192162330915838921203298467186074113541966869430627080522075178671859368119335731134739817965074693206571143845056742574937632694181658139306935439016542935760529575107085715675477415874700486561692705053918409892968008913144004141994870697385211407457718960481828844312846323073680968854892349523051428494741003538064875122910427247420689301835077253659808326041551332044758830116205443543882704841353161418350586600985165629452544926469964812161615840533561635351473074777231459164187407660355100914070811882562725532853961679145791334467623017845600514564536934250738529952826436217682802156005127086714179846008133106491199173445558192625551888211122613100879039342744724496198918410163992057623291059071455977458646621367049825340866036240678590069034224257208104198642615532612483734324778465901797162167425679593367014476576896975940341440566373453802401506500746464992230668736144031054431377922069451840259606286710621411624043050882959122067221082532665889072940507346349861740843250931190541474293951459226777429884654032810786285812650188017320302906781704590737139978711830696358248382081224309939706986130538886392157188767193388825758998878012960337312790250968740754587265235192389983648964338787543681319287671962214768918858325680606284390316667918521672699430071339948451319127149518295672248067758989464533520943421272864106936204771772884601232224865212523523513406197522476467763086375422341075400567006561270310428433645506000136206630132919221647583466713501215263422016692993287633392538117227642882030146412686620277806963029697950551408658554658858021402581683982221520561514438753903990859776739617603885452267845356188662773579781477621340992547193110980055928062273764951416366068548753427163138875024211386948283719002709464163618919956374049629660113592649342241495119545777535402470799880133075860321572479252990765784918252351531660016357577515098893610362252457113325503266652728478007515680075675533409973216757774055344413095114720274271725469028595247439386379021905415784063953704619215825397257725174616248361697121209781595400908513571023460485915396372366815411065469902358827778656336288894455672177988356453511026461542963167182991769280333394382745575427750981455456056213733969564030919599423005384857083253460013160341543230498027263978232312072092137783682888047145367706753491994303985569501645175876327921900533509715301636009424779536719071929906794199140253179247301428953753439923727362644033323579173300186392062197620742241298807459801561591148204165970447660373799265918063128140290714621685656484395418475164331975139428178198774066423107667840904833669302475648609639083369111712854756524331789740473220787101510058058505917708719790016815904341718693491147458633510848811109204169329829164828296175808900387655607456841841135902666696252755294588818144787361358212421848473457824878228721740518510494131986879637608737888700884908249433519866863022000982897911263215236253162652625022497037366165185155970848292795718491552531887557237998773993494389193058753973631907675413743434522589495330633348274616885646702821936781027186588885362047480775052326857479628899481326900743088930849676933205526496809193086801889124355011205856405069818732374810153061957133304216414454380515627081535672498922984828846189177305316257835652469519691274088311530845745743861460465987829093781563074894661234781050235316367634166609760629381432544652291887942526278444743531710863702768984481620622962556306143417437243045285096091291621109740503153159129923906833660622759248471504176526494879835849516270852815607261374603736526908641195820968885178981182263213599319343774057373679075030817286371774617935902029537407830124482336269286637589175263625221605174153269759749113091826478980551041482152300223422033434629236036445364879195702050637004360066244301138090128907194820712268959295959874711282782331798661100480276695289392483754832524832034598190736316720426217332440489862773844245174204773006395825207813717744128681878025101691884146742190939241564299888101187338566414581879349035506111852349880768228761839172552063059287185681184588985312829790209888872997500761308828748262989091557157973887937114874188224393496002352835985190968871049374351949505960668975506070758300318869113802625441729358512421662397080150127259342626758149993535321599607488592568666855630571301786020398197482466362501530492898940576464208880845418106073896784236849265308172900325512030585683849437313164830250015654669931880711408074957922948900169860303850609257889841986629301357819359620332977422687081423201368614844069759354547219172832796514896087563074085156648546485234135594380354134513370052407687893899218173353512423003380275130396133070982466718653226515048315417386931648102187949425937085283478309112272203048680532605525552645773482451671215110382007943258595265298601013880980989517162486055697396449479479680568241726836104125044414790244071631396409933734488689152136665889904032109687671317268193037123666708241344455964335160865417669509886981895620914629436184583608736409644915446680390310584645397789795289341129621451896125318771570258927314822849165075993221763844822070120289171494347567910483131763129743681663309616262982903381052548026073854618505595206072957398552905102669858966167086672303662394900213080159995323219400388753324113730089644072558610347532823057460117254806361609054759117621443766822170473923436641358998573454720697532463629067197409885821727315840708643205083278747525965113454976250349993521360490964196652408497094370918664207407089167103483381734815938354348526173369443869172095273690219623051461998978904431046944267282481929022612806401794077469748710567282129111654396846375678917619909418903850690080192149719656497118085536744759964126477986138427789344726164510770281493946783497527991227993604892021281963755595977039190520894166794630218924583006333807441295117523280344631512142903664535576286677232146787330168076390415860643221398039877758158799965387105753822818350551042982726309988771328964597706104467644152911028575113857418661568252338065168381050494082001276316499521089321190104381170554955536563057526588293394402833040792915237198700261783043502113722830842951265060244625725623901728017377212871203135441518607365152654208841682516655113788574359342401338465453370542047174177413242886793668903734449299224067762329124500744021422974659099505444582300828602603090879268288061097522113147720897376875429670476473918477661043424436332632287992581946329711138393695576296626193842563879997301576087513710950686995339598540057430440177708278752606816453910934216259437620130189220312411820935593107302909937353774048947414108395472037312106434323907530219891813368063331668289708845509522830289522443724188337819408517851115409764050078861134559309234019444487241100263972600438438807887367999607139373359286867871291429993928404543529100474514085128618957874289248181652603160438086394018167588434279844975338479406649201386695269218406082465482587190064786261152109302844657273682390992088646392647251237508706310501385532766579580688764763356920909643985327262073957804787162952341252267213087093287197803661357072244395791576739155761803308840156456979376401665682144522010525846987114274950318910408152622612227391131167577172396929887444857371442481143156449817049700410669854345466587080075659236985465900424710191981585447217285504958087439092495547062868159487749289663268374377466549428563477433740014759817584459735600036892297799316877084068129500851182964243057040794111163049522811917880082131356713831993538784387883956337728063214837854170329199476123130692441360739665998134411590934972324800705079822573079169853553559067923231963175591255993536831982355187243265174109553844822598619136391758264992695858445391301625378160889063145607272168313059233771019099279393794966553076405005080285640477219561967701777604184882015909533687340654080145850746709952460556155995323543428567983199155000210744082728531167178235812714625403266169274372705540176505790002198532566293755957262173665104235620838467652720438764529160702032784780653643236137316109062078821408898556072622568837245578027373531461647827633898834202056545589394503492803842306606483238419843290977049483311300123333560782205750495378270643634207387566210966613416836918854546407548207894402927503413148946676875743791042373467053850910016476895143777363035691533276747223456943797949054803228108320297203528049770321495583434345331605002736989781650082593792365246675809258599802182966249372414143988797920956816174823767708899802853085018508108587241510419415470742261154875004334960192084293510799037538343735934997941420938159329961629654264421942051515979519950176489790215812844053594709879812894257922961490141348632098532425947613776944080640119231062548034987700681726363306278734941723279353427708690500602254452326940267096578351355227673725741575645847086111799926600710212588135823966000448464141643181139051832100027343382665406935226370025352307053223529424308934907780874416103503732180968683606527831254293671711403309606099680192296538878939897177181647013864936290157759619381556171397883010624367932418233390222316242830702776163875009314869686972872392097961315506468825753928176201073242405244641421310182911786782724660303994812387980315171903664309169133662851926047570732141889660140107644977863660575948594883055502644574746558227299401804097141646673202134201437274310584373427167508257099652064037267274801132269343051257868203934553946203737677968234218222328175193082000564890492852781483353556445795236005271654878132915261855803683476933567000534072840508505929523325316805998565466254492727911686699473973077122002496478098234982520407749278885095317151845064521428703139412259643035206396278904033560093323538179000467867845101923873135356322687317174703733288373885499037748678310130843093785592567742929068465265628107856959770145925147332874373226332000261714982095117189885115341199837570509636836566694543286959473703444744696514090819992646970537183338536795821397480903882799722550056378516042050655070173487968546735187851206511583222587643953248294828651817320836549104897347058864653865039235630362814267969862607244849536448745901752549283533021153024615869738897835921951474491283862971598352040679308738651512636587166832419676588907744494539700340909845127959431257531850909864075694591258764784780888002041330457220535113343132085525025253358736614483915968924763692458091845319467578247737414893511813672980391495913204687943645484326569929109931175496287299042467805451855275350174211028815527360414969529777449946669886609703879253497674579447546325768272175068601016349886241809919203729831504469653276572900492927193916388968820960978762199108473164903083658779597787023398275495277490576905614596932934874934652863517634287782928286722227899148326590171388793417872710604428157791127951842415922354900685585828382249199550440498832276932353202203135082960085027656027350010715242415144286617758082007086880112828443243897341146637959890881490237708228076492170692194828175494577556190830075159361949656977513062292488282749662975243064195697176523706351266640979818432419476956160448303431249260975308295109081584612522269800344824370840621253255717746946805747068552636850609584277248810610976825542694540872798597698331369484698971331097362473330078916154412443449758369585552212385612432317225152717445657743870195462683121493819119903304371042219071284920098791324110151172048910540658807990272567145589092588385224521916395658048210626158707847486688322029099904922841097589747678643003161945929616063435644099004871229492852173178373493883792151778153766266803614744910272170741039138787955324813090817446895518650614231023866451935266004832926644261575079564470394302659063857258543758037645126603317260609339346967595640323473296177494027448682769670566263523946975623721684454440784320720732378784314290920354630124178248088119401535828024372875140760588658086350192385027387440347426126150110528951268230018093061997317896351264583657136132039012787091026674099860757901841135749088219689671535971910182545657337206950398482361938663595525592528184605491216758751441678910076689621168366133921180385739319485069135453928644042035694108561704642376621001255793902187325940851766932229372752688370835391644359693045641617996570145877907365765845275748599546031118407935960398510502120147814628365015641519531931640890674910723494317800990824759148381773552612282118501985225447453986661579571071676199641234723176243357249513986605986479036060899460201130032939969551435705991315515380561121502099230234220696530254539445050810069683185777223195610547325626535264056041403940149018917644502215804203044527716056067645088836163376837537376704746125249862979279359488596759916865167666822927837132258478447953609355502138734573809189686991227188533698733980564590588915214144356875779178418414120487941120681419427831949780982880881821465146905265840888446203955780893246663956357892987567246280781345716283409264217963078675104418842819355358487007194356948255091184961766701235501510184727087101444671050184674408064302507982311175951889197477033136335287765197449048453761112414357996936409195850326377358707277293023059623160044633630595665881387793986832929356439700168027819296466919527488828712027444748877955675013811109670578614156727562426761237689435374118220604748830238039475525009330206476902739890225389747473218549245732494265132881973936280423339812770395485131687553424757208648850014350617625619778192114456088732764726865907807580952492249759517485271595477217180085832743753068818829353719623407344776319882775647352756873916977027663129640740470086087768718676773038386426186509257093956828033411880231494637998320916081103435544531543112570744300968146860742306840725809130425889262671520617699927766027437247265625874853715604032264324862770103202040282733451369563067047641978929465011193904774359051952259668144135533243908014658878008584902680423802165001554962827883964781467874664982452703548190852268201893887832330076422190494932013391284827210378151898228163481417348126976340163435065686762965209149009100266442531278389113256529334176224948646537885010194566104145957495800365145178787170839599815046211277156503333789095279588676823893874911878590108247493556123236898272825335292880958702606706338613762941332175885652100089709595473130219783860926174812066384860247411661331121695452524725962631981623728138564202871689050969232597423074018619293594485387792756157606506962471459755350857923080818710935603708033573692386844858707690479930445420160630260293857115468991115183351989801688746273105869831411794850023301090898788518468735792273514450759269992749294474711078011599211491814353563828276760366187189446542186622656020841668888179791509307667370988992149343056372309707280955565397779931005019486804729464139793691618075389519709572459758010342287121008905167871064366914709431003492216255777497751327675935352301738562712201046388859816502357248751875802514673794490608864029617812701029785048747727764197104550247397843552724835011492731928690295229677309962442798696316491415363377456591083590325233156685665560648811708869520698700694394266084565849850588755483002533956171352500722834562170804794450197279012511125556009667312789954576841341998333635074668015804663451921672541100621769188044937172238646274548354355877521227320440206214909221521949243994641755218596363384057272370439803243065368400636903521277819167375676592285113518825049636408730033097714021110419446298816661160385663435206272560750517605894799556481567886902577800165670307078432853537394784241617239591855651569420923310569925931253804837264982631241827575765251271044590598262470808800460804634941644937290941383297422240448094351828466491506633611170660349000985103696393210295855619932319494769322282192091385470436627835245540047588855547634719986232739658155109727354320002022521568143919157263133710188645067384004263976582730508541488869315027374434528463183207185850095302922706033546550094481221067484846426532698801088869692819876837858752901423228661519340970256998029295629129765899163918627626244674620987622816783717322256074392989089202185311358794517686610908647541138807275746946579183088578040251833296706595774464225840769030052132496864638413174911366790076387144214246442520879476351781862131108817162084167985968801989784669848146734936961998656162332354170233806654366272988364099995691622806072972650753609246614289294751481609400063215184072052173399537833161529792457124740937857969208455812843471618673395893194509965592418035874982421004693649370513375841256346362563740502527962823628691726373376624079608545973390351619074460406964048746200203026812572646118388568879717031327397886139854322968800429468796343593035284715613252784155365984294831165263343471069717718898638402979107266536674063671968903518369410679529699194949859084262783870702108468409947242110878625225070412473675626634185507361144082603943853219812273095409987423341781430564917779608642051991262989895675669924208587228484481446380520136029365868269754312987426511979772562014954953325883793953467238036237458391325123148636252957376557449657033698870353439388992976371386760371355887200840892226323664516574539038285543210943108734489554850586576861139413425682688768016569596421739269985870138359576944806996532892828774793767245891458456766550612140084098353390023775631282842807999410562507446872681730252260393923336193038000199620388392757426380833092238055955533603661543058351470785134327225866580765116581609411886441546181262178774451905251734866329045803942711049926611030203621874269210965411386487505307261152153755375886563281556346340674323226173863583662226279785803091900055257452036850540280878165054906988045987841406599163150766592342702115732031899907396457578382406089178965932901411475076343325483866010959890809283146201290181668977992287987060345833103655067286300164005491849459445568216349483301414068924792496792637195297722461776972853922097298593173412708545298504018902140759748464264429559211023960433134146196358311934975633408598820935359192033288264205240485808780874827120231093368212518894206062805916431337068949788506610712227787915171635843143287302137503407985133465310908136366862809906298193164715583600694803227479773136764423744006054056694725496131018951676882584874852548881801135812553387777965268113547477071244497093612687282800181029686152128246007603365531942317923820182037331564227872768639343273034299095424657540373678794749893463733647328055639325623738961442258555265251693419329463398627372618732756376858722900904871091945482897738426984148250355203817764566602393605474742525323767050558154838569772084531666090365006704592993429794610854482044929364089137868680806109509515604714954527405651166129862944537219767402801354999375727162384311377626377897262175515921768510242026534842974290192459057212153303921297393051816049054508058338335292144432757536650946567740898459523356710925848931877855619518675178438399097192330618340986320482028915209782170574289802581921909458425000586760200207308928611195451599326032837179101526646572557561458887366675362008475902594216691307452884340301865497054063842298797902155690021904278521425823145947186662498912838035100667836759955064851395933742297586609746925822160228145631652932227552784149591063379327934474070591494790967675427175401911987620729004193398705882275948590367353149968523544766980556755143227041568706451284855710602939374996648520334048732848385542940761541755605475386321401047276794679619327691158585935217692850954058896321249093014955099304461844204690105682890822854465566601836165348758775067660021369180773995346382513611128198347244641283694431496492702189829667580285896304424446794405052413559023964426711082902855243317130112704587975514377745562351021680675375214239761977391381123697720353528465359924368429394192494487915660328236292973306609709646300927991458452325085679918561258876154560414180017539744079001425487476489987910801623581219887798115914545455073469570575036877542616213319174400646654902538483709303421541887312639764172035749410241603718056209255558042103278638824778730216242750662235003984584876262736545027475269580225624864466047382614826005049475685232020834734945642639966709997022549784982826895991357101391527451070284092457268229340412463508269001240601908079087702845902362670668345847964029541690799916417855104831467473376302332845391093823502716268147361676679659064306166367494926941672406928645012882319313352369181536388243768410905705486946360846386660615646559403286834335216775414915307116271916383480907165122642495562487508789884755508795346174978788762728796058431828414454136041435986994851631053768427955531054396417168294445257217176555624590826240667093861558252383032751487446673850325610598600175369294904221805545525449950959222103327739953460321440952033916109698071731259202549841294829622152904304554360068879413068600983917968038397709685833969195421368097091097128829908484250432518552829887143216429449054461595877822918280091316149200432774352619270158295868910584231631536674237663635662624299713757222250038016250221443095137543891644747038996376374733390545482783899236410542294010236361130978100184319574094807074829142566335861630714279149229535708724327223673248688597580769173333288483249618557751484069396929904022556290120082894471639373367605465478012104435127517255816101358158442681390910902144098764824792951171908749644650680995515452773472179566487887076801368046495612777798789344229584211532182928683103025143416970126966246335947618239023588070527155757990433126618773961644984925526956453345635203065121037669241520274194067070098223618217485892616639569146790123473584244181683634605417275323828600614308347877061201287757368781780247520895727870657839406479341334969092124392551062182687631935119954523802239657795136498996837185438054118180193387552876889633319168015394286209041641706555157417575753318500749045128517561688155711363119082982463048613116848155714743705025037316670615577886547408547612960700117116121893099647046330345908316273087250088564177028024294375985847073001382273986813691196151478392882259806140343579382339157978457321922918498980928765438527640300402416206215506361074450548794366161312824806184788828894102540393024299134361183488842861526381739224779586820059727951526427061895764246575401023097088038079946538330969926366204592126934436714235491950336982903162933754017393428607749587099931614300410986792480339224151245964313986657801357780167104439420750233715816838298706840127188164763446242006825198185234295615779281053064905461113966905488469281930948281124354126428137923606449401833856683463997519324323642003980832486164420646780802039636920622728805217311713093848219691040805248811537594422543980724800631372568807566193445680290268331886829157694185073933084338762679829965740094628313553069204678750710407869468753982445431786433138614409080602877965515851878221065016749948398083317113020705978786319600828035460032478705032050996687534057654725158455622832308668630488444786578063877321788280333998867710264131804402990907784458072031000685743793696339497992835769065862183368771576168780611107808565709576039382254479070412303248814669502300359978255749083397509475524242215310202203960994606653101337253853113066234692542506098272043160602039201682444231212156112976561918565891429059916007540027387558329603923599959787844665015564183205027925937532808755945114681342311884750873982152230280806541768468865706816636820968886513065593983029340066648787006540502880854100395417463899267219368308339893591167721717320721326486680364375079774706529406385743245857839164759198273678440746881613949720495027985950575153621234443771510160010490301215668168733513413520078509606607662154014589267267272652835322593402100642902657751503737759611266435617114670541492580225190687890994223116402649593454185691064728008475152213799709960206157384736458443106195431610403889206189270355076989480943910289404680056167646697115160207980433131828693204188824538921871571340177623428658819445938673132219181708516550921089390609286196576667442836613075500496896234582845940467030804011800281031171359200184886508502787799593030792132066594456447413656464504052628143090135843525157518771858591882771459459654776415320098309267261813412475608388993111028201024451105797751031306890315508353558766503181917125787994697697889007649160214227835582514419454611821977092894091372150002517464135658493977246445502863287730000343995989822278170318624205832120284240567370800477491457947706903196475741912286688680282841779173378271151810273512784126125932113901005449348299975640241641829058025356903415246107190227837927428915024414653614069903737436700779692460304055525397713130359776134712103198345137070319472345386388669891636380251242754119449667735566986659885197640776484257614105005728860791669062562224864472854446638049727368356691614515471802009316931253366972272678538802511876581927709031969853141499532326052896363112929056516585651547645750716736782844196263279676143092214418763660463885442332173452734666784665627388966182232829143017914292355900051990859190673041429538572594789085220892531804656377006328465438692457290802284615895997297963193255735000490467184470643190663445501766002446474730482601394141292250933426914335836739879595810645563183922827054247597849620655407210608151832502203483448843079541050549784001209097072765041500596645652067581427900455546084178238220079913160593600729949801357883075827460716200592008563482181621941404520597492455355475372658798045224071057015858864272027033120277838097620405898658972644233782026848691820674360634806532199848143611115901473869003656918906888995802251974272642046931229361731696554337411892883668400235523687481384777335675840362781793130250375471584171552191998979044293893859807401312822302124486387448121559226435266623821550073889681949434091805489611554279711352335838194841873475511307186697442437994106670379121306125238719941759256572922487897380398078828527314470824246275467567399102762609700188872454825779628107353596345616546638998481399712550026703129576968042204041137785443731919772548380790033361316996454205787252125878000244376184864639997759408751595082709725812924684147528111872283026366758563639866425377788662037376449099758735277378988433301972768995463669101175121139078243902907363627398499262692764919681723378653841268639748555027984506540019541278616712227080205130198322047829760136628547304029810475707164015410001074811325167121219187401728080166566672113146553373956445582043041842393347756428381693703873533658201230619224917746865862345488966909295141284910853655281241423044724286013257518533915321084262678806557274414150495587606672259188560284434526458984613450023378591227444673633198764936215763368247772780878033603184533333997749028472780847165407192130490801825741581006882941439430602488570951331342211241316105921131590339483027011921855569037401174480261434843596358933054631720992949364645165858626072412122584491303753544076414948973765509153940497474840969155420239637644370485821205936895073049534085095847830965486768019575973143373075326923622296370734151225223945745733426861001383501753785488243015667644147382342007112288843381818754221939977832909957017049151089597896318726269656284831661342948068309898573670567148843645064469951824562722738826582969622304491208625070605866372367782747900738271964744102633728337632084416792184489611502408993586501771207369093009537069618340617896489142767068913541612266702823815220842362757423973425767937400549324398124682436047132947030540048785136818837175554672676414373256894783121082566059945409494114076102123866493940012044352108665045746822171330214170811012886403644607587107299515093244018801006525769692729833516242753075586512349803534746580841960672233610063011267912542181958183400134791570806104935092799003418270714621888355865113184931204529921820470248784717118724659870703701732415034012308861331235200554361326993944762849278206577040062244659272879726017507679582288802324688606901200088399219764359947396425001595440114280387761920665744345488717392118537667724914407108796673489330951082399707523167706728360007340745512498092544232460148577440880624637300877386183483889556367328460972985530788030165744062888299337597977064884908703874154953139745591041528102998421171040520567435230163203272459095791149766935451700841961575046689969697097670190602949870241247403958563964787846006549268704951934700617779931344041481417156325090733558917027736710883267755248103433995707467518058629830379284870261990997098005593236920688306614368533694336731835913077908067330999202916150225957368600245795124358292984366306176468508680047749246929060536431776887978014336491590547388414215245641581087696686436364677825488701917109051851498581081657158695414553866528794997745579624869794822676347235225681966721739194176269417900286191389836027686379126764171053765671982696078232551514200760246620430400678910021034851205776410490588073246799414975418715061859838586503169075206682726188273990422998214109074782090124881854544717249008577687665007211618746902715436510816870528053130076713367402790466644236427021420808597932563741895261208669733659782947179058286533663619114222956597735776878018739632348486945006336165945977530232111100341842169430083807470480281633779866945455689867525665466418107265676775113578154228115629902352973752675797144330772829587745889028549154257094315332637524182442792298830753180480720461676916288904281830969557221431506265964346982062471712255054746797892969285856938623534035574445669141876360129253272257510857545001741067210975634718321014636729087775523721222546948645057103202775044011543553670860371407681060699138421233266511158731181286307763156769121821494350372121684515154553543659452646204399552114113029061446259367192189658902237668644502138222629766959527000412085931453995252276636047644279663545882858537838868395247209965110911540255344776506788168764074671212295256417098576613409110135016288215072381742459785405678729811307385352520124767974828813251613830228027614869040608430229456664410482721812816008182829845048756795030087065912686239974637213081396554013658612841465187683683549268106243252518785692750345179348281580138945363553031611080578954379796297035138075287240645331603413911744180049926063575926204078268848708855402685326550459332798931447042051495361048344367592900291736613858135277255427281819323075539995819742624729227246527490408229923793406540748666610866690029397955427945176817645671869738876438041270445039778233444883742130768899729473255765234724306920975397154808609497601618043084096497875147834986107579403472426980699578341961162088083881027557201675802505889246103226393999496202016862080817738883735821375784953259363444207793457358020922673031574390587543365334019722932762298575416096160553563662299691739263612473811847275762742698882748019975977421981278382359329057546631745381287162528507471108035225723823075787236868572611391060674583293502195580710256129045323488594067152360946169020592711187002270763433532221992405348755567656485947546752216651569991457701382091328013490118737021643464124341914553719364750034360546253093977280016520688979499917894673875119441486643378529595033283928713671829276310643279125192031868020979307346354569568380136394907442735343222909934530850210442961087915737972536808632349601844563788439666445065578311716220914262256309210677852704449862876071296173131793210285811396380120161708853181085625076982126293066762526819933975658647379383066769621565856565393882187127971231706447247476715745977503209848002990265152262219319555777059722119057683933941981410609631915031246726811360839007543580902797690168728861243786282299812431030082089241020512625479129462483489525553711067149866715662279508510382630239413206151141078985247034300495955985194754279400913395773411709193173544689461856268941454327730303949393216556672260087514670327411038639520311280077330933762205486058965135821442410337407173062159149985070535240884483859612090458013034715786019361652869096423733255578144359221560662100325556450145025509524363811835429494743550767423850505841760054292273008708176388187361858711277436917176991612258118469791301946122491117371467468833377712133512044112095242987322377813055320964497816122164289006174473792236282773293111969001031085350407058645690112740463289516779500543943624506781052228600060402875075965370643473438847544965465958523775950568780591005601093160745142887721405296042996466496542565391587576826443457605791676134218654962881382033074693838442207606504310666116815140079238273115603624934695436138745377810838865456872132792641982144581977434374566597971944642980411950099920553110593586786627695401208313990921261566978710664758117089350555151055552704960067515548984537949341977167977224881397089288616773766419705223567736461922445606084872725628980200735957148475905035744888319288735060951463905661267812766190267491522080247165817273817140670531339235121566189852154878499827561508062691853782765031054418909319526613769166562422354642979760332124044439627139314408474400448393782444171104661949962749532634050045116069281264223233259545048932416648160891962196844320174492163248987783184821388610119149089794344048728183654746087731022412148339300536877169221004755196439202299573416113407138066819361721156685740897981969281824903212301258503166736449477273698727838099344493260235270157205261522613570722414278309853407418573017896165022237767992396922060879973430622101210510843362005854436691728253904562207889926808860461834170509022766147879291491867222383488198578601959889059887741327422828139076124464302557317185555968837473739208389229772825669414544391575217980131291835600100650100352424556969485116210361788803342213146329561740620745181780664065472943351386928383636588239130643618036139035060410832788878102701147055660810530814158842372600414756425643509666444171001520636340528119461696810504256897108223463127523557848050024261378527265723777686894950340558848512396721580841910895346138353207074402742848418284035176969560195282760212331879371646551288361444207131505636523752613284123170914290563566580412905896343305771188086522426420651576741053429820483967443802239742733490973290595518356218068294147519753802959884698710628133414878074438579970956843798330613797095773706189600541581507044280098652862428569265950611239128128463423457125295141057885760686077617062211321727310985264925342373310482546022140974381868838648560300906273045022902504787655670290968709589739407595576895640692950560207770392034882626038559969462996328632340062748794801455806783763770471918980270698388573296076184663559736049063152041300338883071946448724537643293731967144556263431789756483909385878211403440491247092788026014216227485989440362286159031038031183393913631168226936817577555442590995436089357643104499885397539323755790608139386106767285016718477186867144902975023407693184331019429531575458400131788782146220834046941210791190467956277164371183451195024755038513078801611301518270676422758180955078137229486453817000313585135050211644825153070239162328859134052513964252057145850541110192929060723480421121545346406980354314171961780744247623126768671617634051398232153100523234163556407781112022207650813301101166764720558838121456927037664090377462408586421043816563885446370263825180418566094228048046397660305274286008401638241617541251373513972650133335242159466252796653288312877310317953982074100855577161017169991388685583692963771494646480412022903804069723989964239048158904408643162404071063045830472854303319859443164058060408375302876364667908491286620839486513074668412371565608095148958390472299583964544421777690630043910447644498730461623210919471491600984894134616865544946139126854900696263246871714606014603512142244231571595401682891005139816621443826872445880785957967186652185783189676771852235285762504937674605393674744272650440333819900661429540851882410124249693981970680937289296142579931218576816231632527571052610784567506923159134563682951718468924696846229584871959367125910854232316766368609358955643842155037036403127209002953126766643708527374859606280156428763641220104079398863987334960236780611911245091564835231690453266547236864842472022681545792378829198777819632326292635595935423651264946271689129766318380805832073246573713510562994704217604796637384794994139755963910004184406069910863130366647423507992558794744441906273715855186450867042515215346529235918094796936375862871752005780140695428094783716254933455367539317585176851082451003773931547507941711361297763446978922900161757334527359877208639089393329396527830143313357750597597630369725817611465636364778524098190914108497494494977644192009713051263447452165861587436781477007675882467638761751244877045937541042523986392865275146240637713846056627518649451487664216081462505704133007255163025676256792154150183324965185687951296275723945683586228960450486690788629735728975586373765275215858320744343892908870369442642853162082043081591345495558110631543901105154085418027468566559278252404586055921264949039081442796500868451417923070206978809523414463918354936820154169094626886370371543112915728574597844131834619221942977832706040417757382312755265226302791346108857856125224563954637953551187745741895375320829078458513196988500213334044845046668579088924019186460686932923090725238894286768265899558590151821572615983227499417570764898227956759564678520279067825007173007254529069055357428254053699000284055950997765822715231463175628951309177084032568958023487722330801601345096226773068288315604028187470816721271983381841224399121771583034111580000565882032031713059383511837730691048919594739224248316804391728586443662881082387994858999859463254976370544711791278236373764059116327725374407631177404343711692640013842813655894705415735157519371332374902109045871163746845835484901921986578952428203211047885758930917930898632102184726347576441311132819271726371986799242584845851335285967877053058927621651432669503929569247761867649494560674533867289480393822103179759751709658863357239225404100256285538304352692808116091360726197992292422192165625674994803830742918039824079559852251032009124965580253579147930470581004768249999414367168765376694381764631342542822029113527277337302256968053850694719655191647285488300251361552987873150591565887450224339566546331331365741877351970649040753919267940715531404021226562045185402096087428181770055831648934037597868382902165572908182960486229825998633694729679538039385961872792296493308169744770910562582461751425259519944087954749595249025406022636860869644180560569468902511091671163105821326771143877325604525983942478673532856555895160509865198050657343906495449021491881181080665659929625882126120802977700648617461485195594752868006370053830914068886407295756488461040062764745364424057673927965450448434496310109722808638975349751295646724354484614296588697775318624564939467073967687946210506592773163044336485931837485252402789608592517328068252793765109469423814137499201433650254671157705304767143219954118810608370259184175945257385189580564281379116410810741924548287173379887583338368303405211249818626862540321702818560887141364116717952265825095751233880435379012562003895316622018685161889094412637583734344061327193459580752894558472350970639144470214594004802323312599241187307412952111335484687543297699522771165387689012069855551345359354065450018743285099101604234888551729112679059507346813766749906643367144639593344782783233551607243759180069213774479381192248720181689086153138715813255260356197580192576406574407032810185645926279525798975054657872904978913341309915167261708348922917695467329339421663878655170287062900271496071821990957600888808177603289043268511213714164176303740237736786451961172528221507909404192152354750676340239568343318069871659898659359131905763651779653233377428452786523489475650533186586092881750249923191104699404639744987375629499850601441293914771375410847901552124920726618290844641720031694297707476621772244152394121383495217153465777364888993291528363290128862936043056129454221952205918006190133498038178837061957753812060780525275729194813053227601949680045653178613287518922901801872464860483175919960676834763265893945739233663386243460975461107279759925244330902855434068150883903737198987575629428673826315861330329757094526188298103976060613591825560446651038865953714343509808023778613198603960059856355314711943184380417208279065166094026233079631479213311052079008956715022784721732341639014877887277179556930220595982618807869094637199889403079552783153984377990036034816056283711100642978814554373310538054927979306206666393936419729708161272004219879738048365630778882484527891146205498363281785499911770789278412640484735894835368510625979780673545855407170385467969674759476861571752256103725448017362088925200033892505958759670640285728506840499537287089646870515165595332446427390191037035495595635370906711265364499508369222077961795722969487008201085841822463451475440209854806146183564436871647974420678696207891207677901378971457244734343560357167185526545639298408507819597589975564005586958457340837281671637350156753063952850187306459687492673248993149724552035666259596891449156722846217601577882762961353998965010494102755423549879580503310359657131387177679823658818751998872785205633655643770321693581674222338273119710213391571575928411875907888432093581642706046790164420225854399690095981539288240447822132842102536731846786436686221713958290699198231056956967591442456341884024317111475665171800869692565167488919313063646857312072104648663409054914063583159461162099345890962805133649067053928282639287014656989052007713917480002364678499979764617929648411362869546443701433581971320986360853670499969198110080889322433834874325208277446833344479199976884623378485128032705948254247348833910301624397520437038406208344483915035716784841693951449423026197805915794886284172080316038608382100015698163251185600077099193107534452585740994781862974873542081079630497889594497772373059865124664216893461872284526131478466045403850651366024122793529763728263929342634383630849492745742124290717169410426576507375590349605919957846624371912214744793932481328938905005076048829710123353926633109441133960616213885181393666965522384189830203871648206587080368353958431875045656929754094242346671652673400655686775377762225586295204067237213165597582594889595188456957547332437465986610294822215057648228460489668209146515016414004898529412315769101226341755512072963143809025809324914045357994862589981487509475501964270463328836754147159519199670783487416440006321719094403757208019313325610381153378158821924912358370993359542075020889731200773307444125974033915529000497294408485158265932658387316474571463404304949907593655460856035476595797741136610189211431640625765473975695585167192322171755705645285696397029866999310545436522869227331654923876629966039868502301519911930076305203205906277974716627483301581196876587651188510513815553764712667152530840104130338239284346187873674396763117335024256347193206792399356910027049433283344831394279786052360168679298970542443662524675052308447042985617452296174746956730552763081322187637934888940597758687023572853150777423948507100558223817939555295984192990411709754933156945152768903490107943957849650761617217581682543377426917312157395868919208577505353016003743317611742799885193334170292379088880425180130104149894848065166358435427806188046941969809999485908818657556597880163202226767555690484532840392553154204016121821463938506263512893281700364602619117172956532041601534484565300042613397649142895535194233873858964536744803097175953746915243197707720052412791006030253397473552861664592632086832871505090206827674094695275250546112984050266213950431026760525364249313715269516201121647010234323171348304923118032126334091303643932269591911601163781687405695803556634435050602097331093483684665243641915998309087823374454982821122414753295039996029630829160025652044377259370484114189493865212692626063818467621556624607802007205794094583727524821148643005131696464791515890767367486427249745966051884329436176324727924533356306918863764545516877067881616055660073204955636732869981370895781393238365851035106564377717463621248966435344851657739054127895724550430716215013870084390754897130778821987437994452533688512898703885577709965798761141122877955951410075968196708579587870345215626555120807180095747814966350426781434541120096113417664089497720886656979666842759765985275272168253977678047792747410372438362691368885906016916277442225425515976336634379878662017114185792815489350535763149918774977384891337632053074622363622054978515180659323896713722997063206221023686375491689844147951235849368617787540105110098221521703897247356730231170339518703076966950758114659120414890831595201765103546407804946033035068130551156468406889009042392512257040651462025452919326541453124177374917976917941926767147680708174574992178818033520319704364709180192457833159579373435959470515689090581923665965952162547294135171055269562004400048642535541797092108443200938625605382909552875911346405952750962624036583085698196362968361587361039617555995567195541799687339066822336172075147334816001896448521958434152939502269434057393302063552044332164857269771178439920842499970974871303299367436057027391244014701100755266744984211925653636678676483267576769271703454833104801639030181761248938463037668602461586880327964416692034960556784776679804096923356648472528307231461463315656561386937323189179578121881146606671521812130329693188775288025298880800388914055238306526476305714266417695722846842192476984290158974081914957970059619815486605578995477463331746062658590127983717825208696349499325896522014210701602103815616671737087455218018306269233086954995572733632712729425106574613858501764587472345714902736456596244593950193832895309093219699727448850572048849610316506949606148403813374244152861282237801004998076141218193126661272660361927006577552357885623972874523482918443598578518344419744834229834029924532190694054804358053853985674886281437685230833790188889563694754326755590759833427177345188657056019775771084591370102384160146589697275226657790846419970403216092138594092436185273158169188761702743510542066228748250790704510384304059407875259530566411599013206390776694475769688878811322004350887817091848086522297803342803504134293051703700647303141360793808516189351038017513027327882514550813745652346847323950462070844653617274752596819517499514285145779422789645534577219916069290304447756965266179741001495250514951446178931663668629710183897583496114584042561221480572142959353857795913138121983131196731851449588767170821487692193490456244277394167901342412946670576380279746306238893073415035853038315540650726477516093130273655135159834111658542977193959810472649826249687032612622148665809407898255460098387373432976907363217598821442208808017592048864628607707277171103361677130267088596515372940101642654059795191575598298390006586203675680071018179259300480461287283657783357369193882107996494246688324427293439680693206959112451247902069712016896128493747942425041239785153582552554548276219097698146236000466045460129136603460445366926015844690973910372374955023695627646692424273381818959328637909022632780786194901776124720689119755736182424821447996222689964918756279553030725560837183282289135342265933411167445047023942245891047210777683989069234184591737813626191146757797742823526038488646329524687152063047929647896976787051157982377648005650141921476810911336593586420416229299964448745619356486438177577438101188508635029983553046825491851060361492640157592936427615394581757622040694002797578360182313326821585753752885191112497124205534333297324419623065871945046387137313875345934225211058054819736029871206257210949492606601831457705771790295848706950515774045345378908897673686163911331646818098755299116346191396835015823972083162530877874117332156515534281717786662451884918704488283164185870943816222501978743621673879186256636784220934456114547495737655767006084711692317205665252546611878374218423136537649858367681207364253217493434989344442800503862593011033492180523753437689110514175902517451189911114412678443127858033881030578591062976480334491531979289891521778254277653067578042970973661438293801688603326866270534421434888300300770850366389210190325427744284140521366619028909051723613255214767575818472811705650044422730323042324247398677159876366438266716181105816044121560090419519860603990052127222463173186477914993533685400037396060421202297367956128541749679257808007876574175005895266884821928969110824706463925008412377497279433670248771703950435690484310663005607657209159176858229647658562499458664411477352765226962318351412821725446163371795828478550627262548564269910183803957765367318050571516620987000859283460010713787019736094575110163010872463177929451072575364904225483867185051372959249538418522329368619331544203644442685383203968058853699216836488735517241021213598421823360360204164890828640442017318404129951679846189818433912645370692807611882845195616769879970475168072145032466315924230863497005076197364200534686156703167337526424758395749833730538929432846827436151498005072606979352859106222844114362979778215953255967446246208048901858896939793160515795661898656200315775285771133290240821991717368853424235673980611383346957786467175688654441046585508061172564734266403150896443497385740058784821735909745740233033582136612053974584203037250998555691341076909854467653198430723339792417748093720674099490220292009571164368165311091431307928473623417378747271128444099974777081563145189868938695613503109989673979980894993100550862833636254887042888602848998737162951567900316847535614496874040498463158617380362934006528403889831202578512923967317557224107033615975468161476133650344264427514945851275521972178706122181232030943157341586706589155622866462650392906336833151060069018628664825036495795019769519777582517851874671256123829848441887615097401151107033995131931561149175722778163388289042781526489997131506218900399521433614847459527608168211147162950774611757084653886542151924011169808723547673397371995432255937854790359156196678383937037334597967149025617171926368369129307295560837908808565327113146019833645822909681297452001488332100441114886933655730361088556395421178736044603809071649854037615560484900215425360607279444104545712952928576152322662632331392608080991796564509418712906084085285415394385473640987360137735320585430674789909792700730321713846634520406338998616447062082161629545615275238073706413489696530407542031103012576032175219825009207160216476772704973565857562353786020629531575965051122170533370342697498905564196493151775680150390845843329869468681176824102745368639625077554783803466705540599083545124299841309566114102017971600108020548381996921991388281508277042108959585491343532200635125748321039274953139738493900370784598339708393007051834115598007279382272672438217548869624819319105295373511929501482464174613971978405557363570156481565200005206204793011696463336452147917192328737228701440186181029461928273743224600441494736810064623798268508175339547542686465850714248953433177811030749471270979736151143014173168147380186516198701516504647012040149081998615070557441834622121983136390978265559558590600089607938368035950470494541358595449649722833772578869974542071396065152408199223197061586099645033301874506578640207153236910302816731477962782085420489856575277181955601722226034940405251843079604727733515856132858765361782711711958749897747540323134448671268076200257036425194693291841161354767864873319285851052115092419146870008545251507542317674526047801067378659725646640877157274903809661834748752709620504134783603315979633765274811662682588441663013635909740624365218976253738399819434219125191472276391820734705066304245253418240668169307759702647162802233602356292712183215715247615372336287851445181536215953266216657816473626931089298740349965690207088132154897494776871743180449372376260637716117417852685495499364836364799407361330390578007113402211372617492713009145413749530410585389739429219283552127161084034270151160008767951077095092338492968379402181213923404200836920820851697622176941685497768828898201200325228367461369179694430551570620827813712872477821887496101964046308358477028692796820064290336837999981048498270351567942031400072374944412013871389094637193648807075755928939042808721074822263112919092307871234668547064110927432770513927977097389296391652721266400790499885844228289160865338525460330500317001817779771804602691337605361819989556319047703987003992311712099047582332697461931187499041879136585907973537084808076380072821031256870990146656760670674095374100330964456844472499543420798234406489249383975173591967536398460367754196526394249492032742538717210816210656153548155771700763982417228193513449045536037831564262939831586133806381819944539090758034836077786706249908574761577514609756900229427224771778756204901475053611219217049992499476981746696939892993647195884692471982742037545269598723509288439270421187798906294152365402137826448240794200773024728008163954449263264597748727432108395830303476929712049786247934444076282620162455971974518290215696772451879276469374054317182783131039848819751679322902968796500494245713815517635757249873426631789626512992801179899659946499386432404505733397489654855771048499128766303073634976368059411435418065136307493153563986390375612198104031341623822530458627241814027405553981145712190155810059706180701875616700168323385235488040577387370881432255393586650176584406565703717125186943169201873507957109951407506503184367196950584409698016864442627663016149342027432254133542736306568229670756173525071507144553393619844804539396081563111903278506664643640291923725351747186720733077037237806116510083749772942431096141245766585283968495247070528133065289105532415498269579118994068127628624057244905555699475948997969366773216266853717705388505612477954877609625638779462209029049859519233211854382707361269789323266296081358490792088013836074241112897220227880930716732754236050423029191440073872096760243804863083053797516931143485633119459075574335254996366128923214957272739002711743186429674021809430911982294363961712422333580147041314195623611158540251615512760409744334724811661241447311009498361054084280515961187085785543897268555758454324089747048726217645740432052801614666811556103301389890345459277797377906669933369429248923350822405899172811291341478672018453022155752138624682375348891638203458839609570444336606009819141598813116193946662630432615831601672435460660980475584891817064876202954647648001577750717218640385363412567738782124575369277211741456785814653065848423014636580031159418590422309451496922652297259253247172437266292630359081551252584125703540147321921566489887855969331137084441619115486532610806389799189990669209997684223464051281951297502131735150360194083204264884922117926548331924131685408063987637236607165632599987832066406337417110968695049727111562472278395451118037347050457568260142143496734869506249718754246017527915523611922449483225444402133538356734685969741956635557467844530415130017506987999070803912248482965310617948774348421494634886099122648341926926621788276815853126267647264062604084612878180569299381184631760943368405089940256646281728116021941535981701752670078733482390250410112248303965958838311633163884785123428244752687103123298727805098358984142239065125624924079979312917140984400271981326216313399250007440697548650439644015952987160386896816373122478252413591655304180864314312474818027587308235904799775989037241150856237862545207108803864067875162321779026534071849557273411253158332426216494863946002735054178974648652790988623414942413778529342591296065581346210652427337263814490118489452428910117170729707104308243204635687392623321303142580056356841433180429510663851623895916084906673199476770288599848247867221320910683239785307799689100307687862660606285744198303261697940702020593190195862234318643036638744383582682370612066977475412402751400425534798506381809014733428326567484863005441600076300755937573778858843943342347532278563798769835426427557651483133719278868620728682332982463707544918577164317889076399102469795896943172354128753089605886888375032734295351679256694538152285011414381079582757316219632159480763523358790486536379597559119190673122020067789221277403993332480221727459717807230502581767539792285174552194157118097475645480905379366582553599148148903238916637166895499101029624228431769739846231108079384904200015459727460799696592381058333199054661821806247454377357668561693232341868480008710759735519213761678558595555538976119871371100867831697547767466300257412671845474676722862982752681478385526191365929441882113277242780476556760257540527815098055377306948580088888427927214590034806108099404604552530286631098111564616505413984519037744865038192116860261603205229580449728900514322926932230545033337163383383378653745945872768847874536503478902877870513994260661764079412650330033592100644727828305410511999063492731589851846211706911124247934521296469154828095990645352048644069805861511945951779090442370844249452059236023468184913142447514695322337421965424217546775177334965506497752128887670308148255821247091171828006124889325979098846585939276945510671133017252107457683911774303215015755545569908470047588978860975384263178948342972718098301242048607851305536893387909610543967515139364262685692136389064114097648857032925584763499958042467169785103202176452508390244178505956068599718404705406660171508390156537691934054809448119988317167880287256748938067971892423331998316388240809896758710999835395460791286034928356270923769660903220740201821290402488852423521004699003531917480485111743416353129528180745371957168804470393265367229721200283408098787637897122292621814293675725386535572231921986375455459617977815617689323225591680137784915421516336161079825116709729928817952681678998279367281585224764217997305834147436555604727875624284048543977397636655021420980120057391176353142090403080817295118228823831269079862824448081287146603919802604742455675215171798382970386384867881177055925427835336033286877125411749679702326270417098861997157652228210190475383983791997365696408031538151722860290125242220014369140965883227402944152025668954427829315116127607958990001901680302103850519309176038152801430126087981121414273210627688522474594799746712807111301040442772594233071619166683749041255579077137885649142994253959000752978727005796854668813618932832464552499158703055077460810133181245454632178397800997963696585337535155965160090943488502268835962846121509182277496724747118314988258064212701511338648731870252301711446891320070327876990618247978002156927840718762860929107156807604367330330901838288576849822191464525293243713837929378398613490187334024520938110949662996022939639939271761195632738128920667943719012783091535781103739297428625983100202121244662763231771684003639124597445908759089018425544177740801529455239970836190293140311800257686510032444931036965289510159550807263734065115980067696403383188620928747984575231458791771784381466692833283690708650020461422549465316646433161127718117403152137848773618881192766570336633515519824107114278803774965207473466968380933036780958785128099475462682701707122368674204943741730963568588718626434598308082618593353590082993928969720253151260143494191087001468547296895611884098061091633784828788323320343482291639271615374822898597583416084006425946205225630281162955694412762966535738345593163012978744153493605519173248431915257038891357919399396312119175298562944311656096236807313275955464747274042628327186321094819182612681124568260434653974107535344490661140016946710068632344207062840475088566393019054001135230399007475861609733307694543040165605150362402406794478788602450663598353982826740387395469563290330463154512420659391179200914757355293493414201464600606073179688814112311412725233384310680956058670199426618683077119538040034229407540869907699815872960860777300538070968993470186867056296519930480665910917623591717358339728061825429388965533716498615854189795979243688755834690420290110390983004864498837900746763964304749014976174493217754166333563204689090564337651327757504022508340246222085402220424228810802809249498897551076035840721327556651749820901930695486801722278382247406380049127103305780868004932458054063630409425414964872464840161845585249064074006886843240962491864341746932456177090418967994469239599693325400823215992979209821001958416955506190367477513432581175307199339837922008122847709290273914962386998993635210118187546108508239114229337464009759584128016141934735787604019860326546148613929625448445567221401900703226238717392270952663333095349987364309659604985056391464194453164201337924615477648732160757971724601113208763036418647557030781814806982662592432444437068076695905530429473804664493785778268347578321161308816357488506991838739387662622252442633464696005776755385971950843565350627262714817600384284055380279349524036438219891384169334265174246431950187210677042633060915525040721150039955895783575691862815739957301032052149255277214336832859032215869702929169188680424626055902151267206983269772835945759165648825338292404087843987011484030750188202749763923987225474356249364131851989210020364858514553362940045293778670594042178599825947302344464092594198396450422176357832103214701440190737318753951519442035563814016185578213277089115352134935877866268744865554566598322367112237937011729191925800069881709135100601325727692394530937440055662280684846862393172869816051956781199532908093035732855993342151428674249457463949125302077256458797922533064133278425669302280624206177953754126918488266640208416255857809745175799153334767592168826610249211756795122157506699323779002120513536927899998638174911251077123842733523813570191876483416317351520541222616875937825743188517068204024516589039541399925193416707419282609427057266834194131841832287661142330045735719333886635790044463793132199697087576632460971617192275729788319842216171781603442340316670087195202408653954103954675101436288532138474412435274855001685936565690089179411508794427298379209924809796445355990515968218046818726845985437913464833047219664058999134066269113400344048923695100933469590868521655067134827613497142031087995417226587493426819314282686609185725912037131081314070738388927220015498994880529765359933776611355830438393079027102614859161291886429909674563843595279276873508385014185690010359336133012894792395131531125506299623170162266390638277027569317507173517936077244750593823083252035221306015032303828608343598219160629291340179300025775899027875120810799881314657452354637907567262857055758445388444563386689163710452026530077630496179643191049364832321306712085436158370211624472076080065787877131900275402939993415439619979546364971297187532257819141206949701261057638044672175794598835442200013566861355541114396049000600563759798822096296294036265133722164970585085255886645903277757655872418890969671060388066715270014832931590187248246464100379504843361098262593931870085840520959818951754408206271652797575038051081676685358467313873568721094891363979080732524394901415347749596148317296959692737549000097514875585163077739499413587948905328773939910500115603361058446452744825603354615354187654514454385310253898425436163814090564009449417731420711677705481806847874961518316236976157299459357341128193161783531986688313992501428678564928372424897610931873786683037559626871363965965909933649744010013356634946995257019303900358305645882844914438657332875807852556542384989571085688492747805301010771858512645125990393380560651794005626598384954263855193682094618380069334722072759644797684724649688427964887594669958866279910620965438313993313427548168239097206050168402576575795962947145256071209696312155147831126629028538561687489375938786857938028213298141026681072382268031065562114809989070187397346937193694250170391003271023062151045203847961196161959173445621147463398830306556579444498521038645106942674229842571516687701421402682142243522741455764197676274394288202125763623747554031562528449669625971087405923667736495245056372937946640429334266720606025454535526992219916015812619671753398634189388224209878903406267546218734206122125613908108304599105079162079057188285932086626844360241576833014020450168051205699532196718156814617248345816759040123354908381445559109375934837130952954490807796546254765076951041792015662063260135888650939858573156118609416878517393981519997016330172154480720726247210417452958201329495732042346296278969617354274253841243923384042976851922875135645438698552325680270258710308827737065720986392017170691851577714190771738228790220251896407563650937453607018641255141940649487747929765354977689340040340544172083421621809868082253723745221202118536583053184672364295879891033234113400318434842367058065542381686866581440270358149003417761088831933109666310976487709255797118147984727748269867655624887190319729868104305166967111115320021433044410882928130929159431335799506394397114727595826108800211409625690808159941882607562375014299699763745723155031021639087269587358535603143304946495911256866368822723015702801758688039363038716774889057474531240966254194491472915830257854544381330711918798445111778860431042467974924995382664455283245168212869808035705373068428966048869651087678838903360036274886700518437690698092456503359213336824059361147556351784541463663799903798549094199801035151824246381013632812958109183702574854037962456403238600481133974816723768363165316445202080002747139704023579282516906333389260941844124411312245016399542147057625387270563173511882806662182051453747382590169399940114329205217574340807306492392349963106097422328091915930017560219956389707068745486443878427268930398238819123605033182725791876126336950353317158098578557547347761547144811989813752991459059534934013427844149948021148249623645298254523366721994782718600764519680104584206454970221014953121920851810830626513999789696547225777370126555198088620698705223403337164605530415073546392701094242152181262786665492408656556805952991967716885072190331731340587019854057698916335391616698431894595597383121469727514497904873497184920259611438940519233992379288128891776360066418861023032015886374093141619345056145162180976636731035836848576650961675977484525939124425959504323424467150821816471719809652477923984714867036986988765685421767160451526282976352532418473866775381044644121272288854036057426739955844521615457233881557750107190359296882990896559548349718221002277364259950222758835277976387998001620700915373031996175473737444588089850922348436733313419873957012700380648121586620349629679286837696463955786719556266089712673838021317228526437909654848782899379755579151387708545995070507466331248791113169654528430400128006017308658411813881026215488017494572516977448963112472291544817784232085887215452801692673073228402199375284880781275798509644787930190048177660528956056286882570282599103432590121979971177581165298675254055278901098372421430176689364375658770533210551391195302656912531578876033663252852481299215678042354626255051943332881986020011467359587677602291815004570490908656643542232307133496480132149677487929059856497283853140135033027462136173028071245713958433393523369684695948754133123696729415546400650729954780133050816080912785169884043808795929099242501815495889512252024662371546467373552230440697497559680314374238945361156022025409375747437034590904190548168976178795100872918660218527434732489120524589641980261099868500979035427630955536496851647793788251611496803568871424146220899815205679261096445930602999011921841898539326873694519146428230375443602361637465020132203328984206145873366786184883094960172575408275505080703770481465068182616750425910127522498825159851768290307741196458682704447787614322183847166858354104875133648722159123415623733250024471475602460324997350492851808374176643072470820239244906036240873470112462996869934996197125354851943504416254675970764006676289563066081935901462287356222661206231322087629802280182615246140350130257402173803403959336464277348971134356715544199723313981043180846945189072803884187658232602710989593864462148375099113935696960929260823235358223529216701563537659643231815220607112326613681175255008960134311349809811455348778578176374445474106423645629676478637355229468644494180115193980039761344426428214927127654682414076847178715687846104292505303215733340448005754128634631859437985918396487313659052486740999214586691568998485695834922854995634310267009586765372235475645394633878369223810638132757539536020043544410529872437883159788891611854929229146086599847173583564017375202534413920070008371248950091102281017207263852693871195339935571662863569548378053003670520659982109933359714473617960929381527291298279005427378145637343585130999497012907395999198117512556682225345502887962477807760889348145113213586838364990750076398224497916651867327446344119551128778251408561551186260367090629049705510768046151026983776776368288608426067860318822026697475805884309450011467466834602750560936399485219848647624064979406686213299556639013527785014201281076512797041182099918680128663685454812853803161450736457716311209449554971077290251488135402916970667724929821021195456592943876985205854400405778493335807003079442181741907507414149488128772069827030726107090899895763675553092193663409615399288349465553183582880503581670490964086686985457491081164652909438551812551788721264557262697421943590276837034653543935794516955682555845476321028725711612251366002014796258403968952041887208501531907798713093889914585114855992609461698868358773498735446194614595945850260837336060083736491399902476135087219078190234936307560096783311750055762866201526578613701727771029981481285108168504178389942312875629593505576934341310735858189884365290778050165914524018794704560597992638713142941291034077406739370830767133783234360308880314609400795900565651150840890695202067202049230128783233892767220584732564649976634574114830205309810236710548400716465030802810382305906105444162170247922961291318049634161511344225419677218371225756565072144483006781170295973138057250669994470668545345279668795883795928529269907187452450082707378706041073683612318449098325678518578993260519546729104850998124087031454502768036220448182004107656952870700423673545975146453846152755271593127848891279299108135380499130873892466707769005793772211510825594266687311153316909419014754483110719485024940138281102659164104832219550247862384622828237960603948509193179990198629305322491245455344724287925211059143073726833262730547913872029967573311203436721708411619290736092303626628927037556053167407700913029131823636492812010048549592440038477729316979140896920994687806536543192539770980678942567444243230470621177334038017936486134576028589830737994364637849730250332197727136109745447092733120936881697223368819031335481368224711526772231500085487848548026164783902921219841552454579116222987010385912883769928728879020259924142613259447582903614098949007198774226273131452829400801975322853169714622770089213913742997266201137679260546382277633083759214239110064250250163557695698185651422089173668995197579913579753297726118630639645421890990428707266269446900302676157159595900754976668656014646817194616772777391479289177187324487556999513602196256281336192720363371346203678879660625400966539308987396851719657316970438571650888078307294588074165088207981738011944844278435852557718349649734557989716746959730897205127664258539709050267465322965824484954478101531259382959147053917163540114723072509218539119238683472422035606505572400297180123563751892079777410935557093238769233559084192446984695863101534012813786005197816130723449298135518680593584509099687440013696522383775545320491449190620236997242901740147130061960122204058927288403633672388364792985720920776466341571174695036209047609633636091218410451863385503486309125881400638751110336929262470198245256925590853250588887262681444773991049343659858840749958471613339912092825839155895946555896724477903513223081837778997185998984083586127847909918759720748494886660151858133430417316969190610985928882633781861847059198767631883400565395513956990330942825484660962915041082222835183553247445702808485926964174325453911035579315000812040413780577753180794674467291745204774985281257859457962249534427969269207060237567689376079371248928142722124969894400328214011830087625246515834071915361242537957304152297836063543325415521576180388473032400794710444570153939984726692776379991222448614354430692997168204170364827807233098280036546075112493888149363267245680724060637777191863438852515795706988964078542932295317885829169720801591115272691601766174617438645259832257390926205639078797083998221985410102689210469028771603244205270699771818836365330320913071562664280735518411299567318977150406305759508362355814149834688749269676189534190037092081637003060368005659565974564084338192550694567922181911108864978681397459377547272632922903844666380717084862584998281992138151862658512797090798148736103363347085410353545132345170980714800472445377656852101778945991325377377456590532779391589054997272541342021012494880797991303288198858261988300422893437169470893891387634609456754666835787444019580781580063977150654183135699889687796590697511585028942194706347288452397706049969063371050119286191718351277382602362439315017964240242445144120788480841737499322764501585144708287346269413965202815741956753620525347746934833242536889239570270783478437141854303466160333868088295656622099414377390357253271397988223773585278047503489751693365140956489197557244790960846879319505903231724394782025301622738747082962741958850605752704730811374188495514495116891336082611463550565489872166998206041215987421823960486481967089923083652244675898856003926233266767361044367911415967410470706438693410431380912352286650000535162039654327976350380303911323095999724172034832360942971720997225062932022904644265540053802541047754532935697346217834984005513500236258224639034872946093324990139070616134384053278527950068361267669900568189164496639710978778542262444338470770046374823422035875811514536610365801589821935893405093799983243094875936530237688344259725775257540814674650512115843887609184408638498466984706236156517888241730012541977154683438224223526998661695783339348943724412382525617257501648591734993340035865114320160653329769152812507752378969969257365374358654170942879420494298666863796994964565355810642956597336048164501966514723125019768212752456189108876621776909388351110837328933212447897590377867565284413348535057969441508680235279928374533677652662498171072710654907139568109792339412158884424140831225088544013192663922243191746116758376929192302938516129175241145456494905589282906503097426599524690536596162060950493705505766484635581444803815913967774236882489538876619405697501229459467502279637324907161682341158033732005592212545273997195428919851343846506833220959730126567447519462453748562308472954558664672035499237123944278166553557034698952139997786128385220758117322841435643293039322020062278384986959103599102561999159780253405316318179623606437110997240231367709125539720927186306741073536394666753073838348741569832328655011512096113305438909733102156484825644877771035517579712337763536408587114112652455669296218310248759265640373669320196478754256005767461583045094365644237907188029755433402029462079129087962407000120491402085659865007136613142979061059946825045259401914306703764071389917953772095409315064380446454502690428438017103604990622887317769032206826395467116447653065003539776961272591192500538594403027303541858861037917505537592816317141097389310357228333747722832465963519327243024206154317391798225238047493071963236707037795338378169099929999707255480449828238665611380657471297052642378041251097628824681290118774188273914833786589800977438556813906366163432903696387831227153144842637588131212278047631447048742010570187594946878072095485683855753976517677565634488755812811264692234780583182658155392001764804477985989228301745137715317191385596382213631636377669226176862889628062647758245496739228503099157933963374575929311778701263116882452560295791534979071603847046409250845170071308720952440025450659596459635529790498109997215395139631313243578480915016327473996703979920937358334074707156944336096707512755613311787995820041364015779757680365127900592554255625218355893577240124325052533571598534930829850238943420526248797641617393941754523774346658021552311805053747541582786404325173740390172277282538554175465827660221790935070998913527366577896593915636554911426341923520611973335946212052837505766169427426242978890469638698938808253549694207177266419453359572450003967242753449121364485037964076831126959336884412792855440568590285951604731555052106255305173121600915121163500909654422407465178404347264093977445040342615575025652784837893262491236294214012193766412901849281894781518404177736844387681000462117950893186408691293299575003394197742309638622787348684128624548878916141766150283209493594026727858463695593030443035762070109367678009288927319240733591260549057792547643302361287512625254707472663310385848641528271160367411577948711424237340519132264630129569598991758938952559027603834891820372124301172938968446972978674483121834489712394102866101081443780707402988806994783910476392287358587872734673504067529563634523575071538758221032874276110914551751364631058169240244125795363611125272444554973882297537118141592781180285117610728417701338199359135360922269000624647207704830212855786196583691720492824457042953813005189631820338632265700806526869498131931969264979661277083856177991948921342735472355955492469965940998005190562277910341932127053300116344601014437983715815992886478659044142205965622159872279827614092245774168971913192993982433048185702281403378520184914582907777683260402621704879046032018652787942265216562949684302302820904816820677264214043074968055659583719267368874179684281063881527124724315825239491555913097994447236443149855804274276559962886394240686127186303464763349696496159087490460699722583470423812283316392383411299292127951809875487226000679285195745956990072289905287065856249987101438040388914607969912045485955405325158992255410760587750809574016979166677590716867416185778980792777990480965261929200461837868688425180630682468918353630065551645220480639381796732938007457893624258914567568488204667491630814655823178490819138936575326721228684030815574232708563222045176412656883087336196961096619414446614081714301798095703162913149305105824180695355189670690045658846163706311033472507269600611008866791462973380381610995622654654796697404203986826494427257844675524821965665585078628439188092503111824489456404948717195061057965287961552899702567046162090355370885214291186276421028980587878941039658529433140848116288424741059209386996600437065250252248840718811933590899360483384551505087110706745849754972765275208626942248022133847593674548441025797013507407404750976418885031696838966707778541251938028787118585502412862163747859034237634037431387702606235067218894614251995136003238531619597821193995400947051589609906324531667665589197223547253085655907008449804686188361181973991575270874684015156807428262846961547140103390453846610865590857452335546463124433354735129059813634797815291336719766358524648387329067095559022183128661183929183358818124434914558043979523747629786363537394120564348854772114933627450052770074123614330952566133430579603374993022222877455070489472731777073369161725325489142187796762871955235860624665433771819365863119625057858789020002568958832671999905836071158942022174099664400177237027858159396309450799778112047536767439287239766343594468737885676540124517995137948831078962079810776911633475892734379149256916887693225354879318229935404285340097069667610416492652938713030972546357304212861640895428216820451997134383794385399312637482418483853199523053746112728174370670121228047425049063348013067750048554487721733509657511453594967995824324759068512975890932944196989687714188022079644586084124828951206761021139011467585485359317243839400481603294184230933140494253189742261501186006077370161051974685391488895601456886910767719021490797164180237771621708557011813462430975476004683730189961029632752832630971101646543300820469758389158036103503863431538471583613678693046445605840780609632948284455724838859728254663030364276314501386284416996102128090562838478627829249509934751470130165029324367199064570073696537146134015418830799837796243719343323893234226863567064037891548562888073593071666044280910138760066046736538606581889420802986017219224452722078421711476686518251273089911456964376124390574103878933593225129634595596714839079236793261927639322233347231124426090788836706623685375109554404218151261252530724692046566545763273267756416419762421191753979818431517986599163339876715971549380008288470195170853983268713695652419047986862134894163018083929344975704384753182581599990081401259638240845579330015023209294845110528641944121170528511107389890673990611936502299049763679656068926107140211332084134800686687348058207022301591201088097714604735909588707597691766135209276292265782073998507698354891632600052150312401484497519279920750290604469406211156464876258022136899305651949338227371003786837836739685534872290869317491075997393474350164740510112730757384974646323694477701384525833437038470388593161283693162222698358987787722324201726334055416022048335319647311027664365864240180944692112611082112294108776038125287637061601802822896310659586990261386965396598507140890952551860314111772792175983347899064826399332217089762380663730484835464868831127124670989532309601266527726220180555838757857044471027292027919680594410333148865314666895424756128213614449413537845269519671825689655333048617590302275465566329514261330113704321310812274752341123630156362074395747212100769002282652097319566628896706352001176895448945943917737963373376792566331907468956819692098504164662848043490741522770353459781153754711782119155186555190196705197843803356945640718804147695333700281489210461996218958511711605435597737946502415743024082870301125715352104556709945790437784252201985572754948047843010806713122584662497221968959909381595490436747393681729229285753011151505624918688846187239098307770610025596226190355540132568327331269800339749430543982518259611610085418654575006600895825210918389474722033301409836197232971336565795977423857799846092460997569301142657007447616923396306062448211696209806831129242512933979511602760138502462577797747361478850989238919646179098044240094936047280769049955401212177066390635565780985652141736371363101497551441299114612279481375389649229541523193592782282899651907147860380441234928536898497474010490512386405476080969885876377600701396337715179308845146817174185445584877048516729095771593080358354306545193742678682902980655993520156873306132150263627930127186428687645261566815300477675272002213066035912555717216906017697559067234754293678139728827836777463809380861434249503940314529504007934115343807163306169292321665843976863698063884171206596547277029477842300404053529430304053549021098152380680152316069837811014516894348750791924205049449488488878285005497950678802053810814053063140601944629545086773813820135846465109039259184376696175471646747797802408393903164157796248040642528728151360335556104296478519572234715473806961334834826563205239175810474445498504102920133286454290460286522507647426128857769484013758511847658432121008092418239669019943743086902023973308083875156104511744795931625119622672038614875185438512475058741320846292205851043332591544633838208913469580467880812751762134154802878888456740526569948913840380542569686963806668551086368385147784510369875378026438198409220419298504831172169918386819093449283140863583112529254183367137921436808547022331834068532295457156718151463804008026160155308256705044573213259585868974310617612960122317483362026604145453951302191164382278868228238456323415865355648599626933907153325313751045945350107749786106295803884233660634536680121668769697922961387386889238768218920624623141876528621986462760822044875175148617081666122503878197840537068296099657192148165439748964946025563640412752404261980744387150903667228956189158085025624772926884648082012817254153411386667367742595074267688536394700786661944739958627778279952535281591253444259031318161224214451510006160428666459181236296496272835918424238154069223997548601753165467936457828074793502331593723974747818834874173903300165796126890018753746194702451244073259113925005537545051514553605198611384292839189006974390255449086512504593055126816862360391559486253263177731277244011228194783960767154802947192602711050428279078819125189219491722634121719322398326457497630339161300753620950311389179481054117973589196315258920722268592369019598283962724693322678279088069916032610584173702029884260312183652761682586428989757427732168690961691351804221269903678020507715803188193885080576982198844785382156799533568026585269575377674098746187635990020583625675079161370815447350243448206539227297707322279672399976983608342431139937302600688269877458568752927856271675005052520178524483003018592585391383079488309619009440696077685571988848288887964433756001011519599139588152440623624557160603624409784593583026577309936958761156802440072952338233641672825813502805983845670364838870484878067545301450977544855722032043185698039183620883229065777012159166257377954199863152969595803023290673201124677615108328612257149369840575744702496478174461345651943632574956956503826826530418482215135215199999392926158278919332626876992713636945459236242436795655795590799591846233051027198110081885503199696807756529714143643980160095110451636871130072941398267158999085130845046704362319102924552935451477803997763940707431846957972666403948583925847244872106769258509993667848731626149022294891881209756873856849972686510217524509252829535527866806672593222955339348078207965249514435847731326871257831264468643275722279436737721713836818931195877470491050879548810360008516816448146134193733126944208222542445866068888187011806737058491918248619336066980794501821114144075619080172669938654545843109921939274609204492504509260415860597925858345128787073748936390180882416767018835355373646847910644678927579669508991863078584930238633345755732785578321366311853404658207329148798742870422335318480502971107203649816610608497637981837229024427394854071282995165958990785320032648467186456840512819597458789163624438522641545363414193884927353411531266314530324929338122560576560839670842269505661766745513444486368862587052324197300333208319427582654439478581891451318104349734766210038100410903402090694784030164431399890985269799253023507174883687121024060269292531097462954851499543670931848607852329778419493664729306545633552776275510349890800076180891206195851167845529729043455123503915939718953136456382598143180294320226583959992027486949562423125329301680840396480368878271359176318370604553327508477779333560761415716702476844525466018227402762857421051871684397183723480682212655022660561340576336974407991887661073662284776974830122761669827681045119846621571594348870746280054638069972821172877697902618041613939919848505776189640599140815287194023186892590913225195867964340467880301172467403676432634685628147148360877337074939465951284828302345034720284656835977112150839409017483619931129133734236061557950085314678217406878848751393439200493628164733254467679061756159092482125662300562652153989880552260714161873060688624740421372412611075791000148980104421042779581982073705411705107747409507703642772970858193460212751357724880857825164502238901142769726749884290380105466185809545704161818841967549692670458384156567645436868328681483140055495834455297991677903371138065355978546221149197194648269531814459915360074933935532186064044102641816721546120960005975430917371169940255695549195604138608914917106696955538676319916563396035143887510266903428601545539747899086865517177124634975025862622684700462265546746823723365053023722898282212377410605483297476237172084928503265893503650527672946491316523945136427674449316557641708923363032300511039694093210251786527843580927359286243932055606347219960409438733524058134382842644079017017690264849489461488142504434226424884397941708298959383618559100292757701687525336750175418421599520278609341257454299471545289046512657003814804274369400278910069123739836632664397745360153020824019234875791849663512612499490201810931876585749196997475400043794488517698856475335207846037278307659189593754398945997802143177464224134057806542039367389344575981405231720871607283085978667846937623189371363452101961604089825957642371694225433952693973027774072283491028394678805725671349508112193956570337198253872185798063899968203408823202321341027076278117019435950555266117487091402964125542124739706016491399197265510774049046953579205713792862371698761076081589495446959706716180088375686535756584692190446037506627386825073022112991219094817093861115887762847083164807902744008136180326463907450844057931287197053941933824152311100825150817478944931584120603754351453918415364069245770059573147244279129752987549967972739648101020982130299487345511322454082793256223937426241405890063400640321220039744702599568869249625483930159550502844515122472978070746337077670390628015346295122484591551955779557067248233767554427091587903208318238180209964030565008568400590078152772769564905456570969409227964246517324065918196108403885389642654177468524724194984108356899571113865791674739763927007402079606506568123888049040420952787168490095579245130897995587351340156475019136531564112965316668333065861464548458990015674821500677528988508039985942922739813723322076148972650074199079724552826116671957409842047108508690109566164089348004388076278993756813788258602085353140393180949630676853000363827138705838519499767632381351742654139737562548837458260771980119612088491152621948147385146156434194317013459561101348279331680490553551411983581712796908107186344141029462131318920492834367615422462447841126402067550585944396669531117043869927398523161885712952126555805601806414132717632125861457152216535926904460262809861839803444415806729914002285969783432099942539697326530321325330877721094303896035318039556304283195671288217139395441283504855267688291482741849397397934296980358600877163668882745976902433972887001753329211093751045006284234242070405973219736063631617356773864272342053629432523574226726357831633623787630566847205561958235873298692551071954665297625746523344444252962533929521648155511589031180162424864840428210905555633066892203349913936400692194271051305487743713849356118223036485005815935251298435617059740961907305698435181248415408616714734916166217277177852212198700215298777995838350215672667890029164072543922167447907854364019574016459276128653844220951967964512641101503387709566369550353060771403842505824059360948242036107210295752686455527441476436591011989973013551612189281557339880020841273852193420304479169711349403074392846666950636342124830409710196891971418231932547809789510027561311454072839079320298299352933251062590633552963553763600176585850228511136802629203218894015607404702268939647952444976304543705298065844035356365788558236658594853202726531005603992838077047511910645077901145750304526566726112861684675911451384207144586177193536986160494577416974750329456612742889492824034682792625488351601147349817110573815534309883276756258137638397049777021565829435874673580787164693161164658115143131772893911406621155095310040050046859510691585158406786751827828298446747454791856200747571812011067770488650996296580403694054149029543753940250880283240058127436243724119444484316583641655355244576520188452256744361024267548601245829314446110054327051363052414623873104773097894393290302365820256965785189629203151515281901609819253823144934434324068644071212154265784273984108739779429367811632649748035695496321364706318848230783413436489177721445517643512801179431712467704586872680255599516179505985943700583049866604360275495678444741127546304991223053188458037810118026124569773484116834826877948018208107715867089363456195854817535221874338436133999367562839080074560077786851084214017655288207890612933682501385257629148397679847756526258458601064830283081417924452549896716958492286047798974454369793575129566110843965173759050165354418167296362335663384510890463363911400037612900833587828874947321299375804025797853426067522250871273423965926057171818557155754085684240154259451901794581898401976454458860995025992990693568042160539535386839822666494245540128107843325517273954998813741709450909798414623184633147035810677023663238635190304074686964542590634569002728277826845616022795790037150861292739055873992466021813312606550779867777586450292974042149176029601995257370612750270412373115755129513731377881845710669755661567233815867327369390977786575500202494297860008679666613840578415085865460272434994221659084926197515047058659951802310233926510194766261684548762476163170853216857485632167839095656588167406288555862140912169771705626231988551201458746671785484970750766437788037394161125079465565236297796617771718792795561951007679833444921312110648798237231125048962119217903595672956866699008483996543228766641131242593091161687989841306478209398028947539541737105279182658686480257498216628801074375085343661958274342953157907412721134223047261292763311379626118895729113424367135009688658135768553234534077244297923948852466321273047242925489691737310273328697526413416279579512177489236230985834205583159168897402640070602252695336501531819785098734045910434121441287423917034986761573028919562000053109844592946850365131662559484246591038503909964634836134417886135950843570580296975564587236169296845471019604273622871804342749973682574673606071689225290865140296841403159666224240786696716220561462121235374291201138727269314686405810137335468305750188358029372484845259243756057353346763320415685983619821823453635890621518099223477018923034772545938382400672207708243633508903076204766758705430017041995415105215044013530579650833565530722098690970218409105563020639012044251527420183695890407565840618840850478030613397968311468638028352553961373253721016213734342297857076903922989017456220204109977864756013330321691082709870039778743511385312447620006329770933727281946243043601372101518658009001087603629196450177227213664679548143420957754284694825871456058868650773659176662565523732432945799812438726686626949904524363088749874332521324704043588531432237541397382780174250060772633766899408778112683598981536248283344576462609448898208830587267302652365606785748955870347098727142873701730596563518089783195230861735540572486296167158138028170597969248230315659391934835030859826769431422832780367928738413784785578833187705450058672613102668564680983475825812671118810893203089503601395921811305489770080519169955012111985535110566434028218844774504943864545291921702510629798664241796954643165308597607630729693498011775290796756810849549846135840822002529325876988978700711425469177804795915197740320714170299969886336347085616893221644018381469782331565391452756955180579260546717473075219469328176952738808249675936327142603125099478275695648519491144412071383853993407088167317782179184633315246768421638941185961186595386508614658840253252102698723598261904926822400601331324260039589386123078339691683845293796523290370031373314274274101126776919941580937294147796600769541468862822455874987044601549666674837810374104070955926165232434036475989633087097735791396608987555801175186783266191148108766189447367001929288861763163964155290792069488890789038445754862607086792836602203677092912765603378466946166828176379466752134555410389819885135210897645496113540807938234196768614001216621053245391604204204358306330945061278091282034221077560248131197896279203761334304145508559313932500419180644740399463685025762760244006741051710467613397430214013901459904029227767481112771546742519650690056034316200470802755466096645745636492607916268904469280298291329939125899960418954344202248626534512610152054911675624000722214200346283736316894374115704141542742441152042211045557445991117702556104879746616570548306200383746004882538052633570129925056798374469566221132693842852154068013837667191721572322924573546781359146464164668089707927673915677695917244808495047721390132282722873417719385728475658230459890326525361346720813139705739632275941436628888981410492608450560203296647720846924100074326042778359134768474897891126993531346035008006368792384688283716053876221959531518803005229369044131261820707858334972852815482434967560690562155120682935694961646302923431939615727347797471818349772399725278914754467086440226569068003890752595707361521636314957863462224535010723793463144967025737019604428362877407947817550401638098025629667445014443247869602094212899356711941870632346936328937256084053303952568952298168286172628483328453254915925863949537780192147268866360476804469480683687525718024181725466520479957808557680156786335776078652672366362148822926842078739873271570869773306192549469631358238666531703994626309084133863580232741044881339795710286914719374467441693715573420198697026922646830063044445094165819003203343626843094947319103735926578346686458143897123489221072506424098801474709853799769015310205591842867253658272415955187957457468600760166539161416724647950693143292320620248287067793430423958751072071900186886941306626121987493367932058944925026060777775632789795732663376268459156247525418992476182523653961355930110223221269139322040266707644016673968367406566091101241238540992907308479754478167759787665900856351476869553557922278182278097429877731311056789731653987774452481685173739519906296613870718346287007227835181946834487692438688561205949057201096219494112274948555828544042397096692466714063884560592947334851149355641886728216614194684250402220832481670128095403866103653965637537561032465116712445825957268026317381737266999327037144748132307055078012205028899059112259526527539472636823757926796023728909553542882693006227397122128803998533349599114810042722593937898605569731186472936225821432054706013943882671199324608906022272614221298034526382514278484907493574281520835439890724150052969443055497802041971829507584906111597859193202575051636616108650741292722674898583732282761722257466897450423974989583721239094760937171669554272634198445104435901746472399040247215789650767775359317319891985999858147938887063016301171890744835120769690690812962024941510079768481500651433186564978995024048276849646873564370785623284725307119446542210976676486969719966300087631579516076425200455327084070319495954862046302966621016405107344966633047615447535939142043654516596143301996471980779724741917598160258203077613961764303800150742845798961538385165834025789976556556494649470944418115603543257059131449285738848320250578176480289263425674687494380723644215375423220323577025942811304778511156454571435675333448459271917158251076937592289764650925628174679458063955362222835310755088559469788526927037399820272128969511357817180380720834052590199992261424740794909093140016351956949691782389218039290816514331486293698740060375818303240735688557932059236919670923252738838118431666135626669625776888767225143762823394997484134946166214872625218744057862741175512525878422316891146231649830022755997493454800660734197765178192965394294948542491211920375403339189843774166470971456097643244167300169639472365206448793191588881163757962718544135436581215343041278598797938999573077387215646615352351466415066188604706364197819574849649148760975536781851264090992890224841479582371116937123025839481067506758985518449282535799700431719996294891143097169048798415133043697964756505310450060459895648996325650478190785216151316001027471323787782039719324520078004286927110204431320829909268263678202130704918249191735047503096788030723356616057713635618984079865874596387218136559483361299558605949077881288121864706006235321530922752769561524351217188343320534213955365590425895392798608786031916504045582351938282766580925142889556139710566184584022220774053324262656493319107038184917209760978916543335781974595626004831303884408112469257451429819926804155755064943677734879570510352662527611571358184686713706303404755182197889432883648561631202050792630991726904907823068709372823681183733997320437725347640870618639576896237000015680769515343177176754211118805671004081920218500666381114503962432541642616545004681103420801071443420434973308352186256167853546441945000558102211346933415466947707399518533297090190518062253367744175887593316727537341532714334658560848846787256772921502029309901882338388525202135631545528402197919019737758048361745011487392897880127803907586051007756747951842142999022486131661642321912772315909687164897786673836051027534694798490178464315456187433688623012608852605072492452931774038812987872717444015009978652386784430055102654627635006205338999160976365853350958076135906702599568643235501216497843908674734171088912579814114657036346989893178171235406206933988231234319594501400070604482175307862694415899776120703508009222174476607405197018844834569625231522472839697225535077732946482679611931677944238730724353890447940658312034117522047297126605083994188961883936725546388122435550421977775147523739256997751896650657986494472416090053022991689561821531293021055236600025667444488395833194400050717342304819781935217365382864370044227010260255025539446605351555132066139195065830613444025830609401558793272935094804202765798659662488429398778612062146054291687515541863272401976049767493580348258633789552063805353536206113955666389603144800862631970537161749152871325339631104296123593693544214593946019954988126192500139717935535647246743897162897264562305850871817569789369287999323881050248856723725304033419732884006656133737828067088379983067432255020034248617252556029641945516275815036273103054844283349880147807245590301383582671099028210468330816619972953832888034967741422012971921404651678175207740597712477697097461633183168865352182539777265452525573974508507734401239554847733860294548282524830767544796789223300143529861989141333397941988522355041206578114121027260214862798274488919632464344103406700338028386932530372365527144860200774063676349393485382074122977104407931787362245082170935559300528359186437575445517035045351909084005488486701876265483884448657826138882708241208842306708723715242585788883971153924591033363429128664667043896974548362843031610458830748695026335734916962691833793714008445417145114481973858708261666937802551078197106193671592805310672691842149355865413918056260070593112964555966455586895284408676945809594633510406646305873353477423048038623280993445481943697222871528532409063710840787121046180382137877202403762917307009999125553019299997237949349671288094300981190721667075487858454963011875158606663533871119603318548052046314216439138738165360074162682239731776114701385114996613752636197413669799542381681695355927074804828207003326688341913133814227908102940750737514725964422676916407180997842112735268365028311569667498579983680762026183919901246928108194928582833770911990304806336583745253814290464003071996871759663205142785773717457243639203545955739723017463761204950652236403174087090515522252005276188048148652223870876739205763125594877855308755959867206196995433360891169404368620531749656889529559290454791965715010923291930422124636307560066643913183196572122163254861538935626183814805393480538627431833728928533203927986858967278467220963681069875102425788377600341906936030294546520963771523600545372806175404882811728586543899520578829884935877342153575876998976193554808891050100159444603503685717088060732973352980664489134771136030521248740576030383346280885304557502271179382654475254931762341246245020066652739572834116991828648901241624275433050921601655463064857334330531714728843486983512284903512332425129207368342230905815769052491107903046548951325930819782940148747852851515629207200412951095727875970842744797325829816396049529279556580913324917976184140652124816678666936884276513144698913937179893005760193987311333773564634036942375524178323064683828649086571875368653170942543229650731172709212651483299178610600864087548717650822538815044767012540282843020444816523703757934442177432066229280382793118229196101085723534620307432469528336463577608775789529582574193281374075983440339127217430027010428901185193336621973345984065696347563235617786001541913118716521266944896789821844975126158152714664319440722188941582601580765773116218613148850372672569846989010837538854796385703385096006979165671715575049261243640494551584693950311754770267930598068590468203674460676044012850549465160027894638954965094210604300039811491534947138987354186834329795321100396549726202778192481882434426965395777375251803797943078670921388311240626557330508649012213294290100492140068920145499974056078572218940838037140695180219283219396012366859993660952180042334605662476987500352875501771266521348728970347939611422308988911047006235961564416114115941026618701147965348150421430673420190456934825237465986234879912904512383876913618518877111054811557232317708728827312874959384613658103110518932524440240082066636118448272046656590047694668734430337885250295313257260473031250352560872118310164330429598427894469807270749787659154013794377435414234354791905194047065706132433357205684574593338791238372687132962838697545695654963102737709977595898677964908377997939411103885179529550879596471521180340751815228513637823502846944569027126002525370491178049484409870734507482791103261120502353662752515776760449909284920968961168251621471118463989089033425307228619748369948007059812818459252968786521521957857800232388006784137520278940455562321218005746166311043735343381255043021376260300670600262481383093060985849019337772887585602561347625627871185738207846910910672304317339984432389140540905843138516220315020451176435193966135841168292055197375819365596282431131674758915106735616848783578332398062173021533561865968634147368248674666136002795277346651032580447441867837682749225370474263521576818494752696125167537521458436957880117381896719422168531360650029290734850559506248325033355318997056707449398835149638176713161122770733116470734656379070987511454608545247110107114741958172309551046622940299313179182947696997573567505591032649306791119339792736732269141236938807256943927178926496953729377393770133484564677054401164482992545812920381805611319297888921662176711239877777993994152257193323989606923125797965606147574287067440331867191103517899202377008311805514022719639840490672112745816016536849887076011789042755010007980596081578328357203655952417109911010905222506326913714544837711512226482028938711484497549545802411814155194676363773568071020932527446815416528437396179124087878291205011867613862562607843703163541113194599571997262970344736118190099346131916254652502831943241911987031379321409100156056096223450314662157026485998458683762108520582358040888561148822500713401573866699417089552719529966095289676159256168731069995117437792385679842747398813650671464309421563837780791994206473812560823800643558306567285790269762980057424552390445602458300728284390532247619723748158508344402979606587080229735307198655042704614709156519555257766949932117171455192972520104464327687853459504285569587150705630249678519015240063336477040739558883262407880172822412627878621761173260351780413400907231832124213299779110708165557706702945700922480626699809822388229975963597802606298546259272848144548301317603931607890140471929045665718373463094972587845812979239040056213449530893196187053856419423139600808595894116523257929506368056690224013485167102421770633452533101923221811861375439129898078283289292274621909691570338542018997651947900342497734400784209420547319426210517922265441037295980962399251434429979182978248480959903434823967543516660983371469051341343370581154852223264893014641596274337769829810424639885790200769947724769384587024396819873735793291044412848391636495591021914862572118793811205213114186403402762379298280125254547476452634858295231344433488909340841303067346640267621926655472643261034572031371609523862218496173824124888018056902207347772475444725036975070650556481327445674936492600695522129231336154736230862370432731442235351713327829899909856929564738364506637150729460384611957491012231930051277319894581143535021261238507309031144900465809766111653398882072134459377886947040893372132309080100339245310582018285309728816259252221293436328857191032729726980895058879941866225863755948971950064051705633257333855212400815456081554158106843635512276717519904828253511708663759181124723601850033170010872588339621380777608436728882913480872225015560773065108336205562781738985655616525325381630207995921774085121015721585573299142322414621952167214261868379491315170741884636059860767611514698454622084923440411698333235385597089061318953148205554653752313811077768721706286924669641923124577559877940278612455121107494114721743277894307647363438951998295432462075304684293085181376769194025558891001270148762785971155468683718407561438548375075709890752787754346484213598582496500384381380205854904623762094674800824656270277179861401756706621223592661636870245561544109058607159572102282895635294542207820468050617970997394861224563339817539626112647067685665569128718619147353318744505766120947978230810124942817087829841567029252240042313984484548689317105852063457944653520924626390155158185831107420824841765669745603877661440633594969417514590787908597736954534643170944946100386764765009681397292345569455011201345001021217386418627079401856310149237587743907359299659799444404381362570350227463042593473286434028703530723493473828403560107005645879614061941686098132825507298189674256572581911131011515804026679889488029156135167031883444244367997637776449295493892514379762849521202961089271710854405494179758328703460815694531002322136788076064324663815441054421793077418598478202503717047113887558528464703641271306724190792908373070494832779656245022032177467625730420403535900351044054232155687269398056286962894125605351885830143780532903597526461973232660516579731185537364465948670598608617302541759329407771016446028943375691948779870475597395288558042108909186716552527717521623435915417978896559713169208793207232176592491984053928180951642401357203602565282023873380512529403828578279570886497984010957060272350943644675099433814257190224845377948214213442321215244125470358078515025010302076751729152092708098967965298605932331457202950639358987830245513993742066783339068417404282539660767289424542595543221876679061199306965698841512563153205915971941124993115242937653074486058063314825598302237661007391563001760962052310277932005930515295658263889287663618570723151395515155574302775835152086638642974063964570662461089067807501749617535946262594005876213596465103693203039923298053831113183390857514089149298409223681839944884837889135116505989850235765298046951969387006375409970634007975549943656998623582600780740139552715297130483873086794105224811443451218743978315367749422735095274738654796031738140206512512587755854897017409117131835136367849073136559190607761810125854267564559108998477001919155283877543404867236977534973032317769978798128894903038927944195149755723447954901947597501756406890646372434202312626433823135203763180852382899218115762637251532129208760404070740387360370864767256701700283648575998950699234589467970470077883063468304826334142212926571163507011396131600321295940083929181265574397260256240947037595690037530896489241851161195435794596205747072999863350380456413236988316380891335202347125495393295575839527250857866836560275121319258482307657548255262064062540298154512389418792143849140421583091601707481670479975918282251680041121176271351380174266265356401265371604258481732874570115238508839681435772450479697956709577401655396137582770632391941708628849880972444395324413754117194270265985141635016277038402477681284261507929667688765193068282692272301550499506585293016302218740085990062789019781032025866684375005827755883406160401641246116247597995476646432679758674312593722450890052665993106616845099381535451963888745831303716270337233135551167560218720485573936262971978897763665941004000373977207341327211108786235610732572231770856629392604563381972121142189948767876993773962675311657859393129603420156802057273133520580217888018764379406241349368761580339834171887877180959049914364866889114862870746063982493502058509790008985619756650799279654143011982105366140431587890370076269578358717472855526692028808218927282513070151427612432347358776168289450600431158233789644816621791736278991306508862061410437372579021738066010373210495328979371211089454543654513991235333680850279562046582996019034849031792972211559092735286700049916788942175838348637547777303616857134300813892293507634320009585145972544823806665267084261874518763661942874793018802956331980217376138379980733349418869824192636778474210525152126762389120664169019493061774400038467638877702502106930725013010496657994652648078778020538435299544191951725313803117956875651075865929149381522026515486777992272343554058859786985303673332790143896928148528030731334597203774453451280244274142899539724850833855014916888476565447777686679086806169648375530664307381568668279212631721177976238825653446817870055424078448713379018754590915277699228343034984614298694378633475267678475715667789199369983331240528365471293751263599782867841600668920602690599604816025557193256708080677220968442284191618479369130778101859037503201895206972778833460925126853019302369325682855569469273337856943004184022791260380832727413639234949417795866364773989204423473164992518105155931269976081418416764732893908505693636498694601529631357427159697037595632361569814838320831741649271516293480668587028301552861883221027904184597619541364459889246970195356053971439710099984578867443741076375425931764480655534168960534383284667089917973160920831419295954500777671163735805692627037722200132884141176790356616935484853267720194573172418383737962489938814724475682468620651674230438649511807658804654336434281427586506321782574252365367965064428045557261883884497145776235189142184979789509965449894199755398387379188205595284346395581239077256005053828744300674438473344442285571468208910050557913822166595960431534091588623450582222927954827678910003490553250527872028612598367077113125728473679581701285892563375966779041043641159232584258787312981401416602632058022728512478452776894031990496571917001455520341498060173087517461080376758251597613406297798118781927496252751371020763845917027349703421229086214773528901117828595090378327122098319537651163620878089732581676026378953455118155807675557299558565764506672075534683160964546559363279588013692259487926202109929647730434434466612445382544963685904922879836578607635488316105300632369338540612138111872977186635200174198090656757178254500238121624064758869001429175314484135178061366475086498034862297689420745717540897872230522292983469614395906682093680139923545234527089679603922318034992017141884825260659552616177210596067567100525337416375129340127185720473851135146590403911694278723952445705600208477908876573387164745473868846900952295729613992976676368185213700309026058686706157563808940381049203276369500784005279400241017459986419379658055551647630380589359717187486436098543139379715118105833380821094701259244163118696347214095499343808716632605400631318370460467619560210661092523489923592001178227613039291876761127434765163198923748641691528727980355776541411145107247257339209576158309484038979273683608407172316290453658791590250195973017202021991833253468461997023869207940879443889310612441081538032820774065854378564774244412949200477963457644918351136855382636737271416156897201613627646469477775770080238991324557564711680301253485245775595374883164215638618583201838978807591861924271849690967534230565633528431942884971230596166087780078088450184732393219010018814024853984062059670673892424832977870252153897979517407091054998527580863115576805708718331848553754734917775748777844117407947461330144332148243532842023796420535354676011975166037512916226829060576802910016187705324931995177571310785131404486886552400842491622080274190059018470928951512000937601256267849218805867864634576048518188436372485026199740407696812559647337740326609679368613938518113806529330690243103786152401142773378282159363089779972435680194172585804536948258125263417620992709044703553795132058593629960935211258099273123770571823948420521444645987499979409242916253595429008573686653368195521724158960721933653842771702049257597241301830789765772184580377389912003129791855651571273515668573134976397737743981923216067513046008821054163798411776531152010116493183984916993575475632763826137853136086413723455039722004444658070947820516871649367426109589084282124639970704283027104276940670800630453339071861879324566489636822112676257063741467248657580322120300404325998198866728435157356735392475789940417969714069229103789329416747214864859970269332635564099819013325041473192273267644658580006031514320326143174840983820333540687401745727575027562440993796307167200053275968174416799967850805705441207441887350210913212725666233584886073745957082241308304977423321363713533725062255955970782680996907188994149558254840574382050112893384205247328101929925932038920614225752571881906352665863345809377281144447050145799753807018991963257247852550964553305502768540715971761352599648011691718206178494799171713107596680577697289607913390987876836570043026208550213021161333293588856115155347460820300671663310423459556717963192257999320887475487926782941062381526344357271785267854257932843324576727659079441018299503496009753270113204189975311949746652105248561094740489247982215792262117644179400072599807137452614606689572701872964959087912340915519298914421127854908489478670194868994362495926911359053856928164245917979988073713790686141453184330910648192412385246181655835792644945454865632533299281582337731409640402789601245584045107620518066518250358271768790435879549775528990158704484247732143705060373343778419001586109805066298457362854025605298261996971368000788075445044496032490582044613365900204205825297954571528711662476761695441499518267140308615127814438658773702208549091682290787040173224285635270841375237796674934860496180672385083805522978541405944345521682384345115611313163594022080257811677109476012466555242879889587680106013980556281148701133921882894308723883764605916892004407279037400268989109913884916481717679415010364543743440263160881084215108809676794302699051255169996872126526878023152537915389942269766097966667303949434089515334150497276999583560858361555861957796763601530613268400643883018156753018875886096476969643018985823282845764205795514081752056281769550107798895764536174142774006133457471268303462528495291874200748778949639600300539303788260124181121623296677806683129559369320621301469609456776162740418833280664300745641482261961314971279095421726352012796189354688503001640837443018686461374346660511638422861726646321783240621440398300568296664954432904857062066094840906005811073821688125448963882817741078647185161534908949456932237771024670007289577948771981244784819108230262307283426365775797350707645061051313157665557220320239533514116705234906066007108654817044702583122660173270538509933866205728489451996925049932931542766708594907016102277076304852735045451163781277161377014068868722294797807522338516688605380849066402406269752951899703212259373117378386846569918158796536473093928867159610152034380584781996199450679137515475931172536511164122359583405491358800441193146291206721686210401085129867490754170317863665079655657293729667385360830793575261941015611932391958151109653274607025984885678507489750489535672482864488715203915550255848543714360511521722485046915219944635377836602717725501710012567517817805426869143904056618584814766201055631490364194900746483559188152079740956916963996020770748370487920948284697913055544780727006207974482489985896148827784142012647661828946684871168043340401373410230479808928314799650456473297311244812495713200424109949258539001383648379559445284301104342100637743177464477201743635254910935351948180768503455563051372890428647693160858442371530907392074514394387873028796287122006592106390618440293778143134063644515730499147257659053471885585457624433789880264515418836733150755706144405895950127501757026042192645747495230884591857642245642366773020118429261380839629115363874459556246133338744853188889353827576245641314168776660840273682365011975626511547646624387883189997208840531462514572121408986966194612009729389898329770562134209472396464610649155966908652088454253888455985750228613029249347654457547494218984990496022511586733456734127203408897563441532424681065153015510995276023683207833412168230594442866257519053364512036461290025054655400058682861492132065076141022106115494061425026169909029900755323345227497323325733164253862883808840595837968307757368102894294418193177678217984493747720950498048198057296713607654200353208394059383122497942266161122028012473082608072651043575168190226023553519929050094037204322326291176806144492201189735461232986578550007316426590081201481594314588960674947664884135234278079385597361938348561448023854352148996603406583951381048828990981318584881977304591963684014146344222187211973864564296607105454970931023201569050884861515362771811757255818557776217495675579898218523422556595597817220561723903776471218919246103078338100788287275687493943428228920233639834117339847138710440119862781269807400987091708233100539759535617234662972159490577919937719258372856952357056630087522570854021114619062425768299365374044709802356314007105493119913272497609391437435959896277154477491445234093277190690469780339670938102204499516055176687085309043390170018503331942581976593348587221222244081132992835577600016300067197078051498794364379305546492826280759486817204035462858006812337580633864279198342572802861217885120659524054585765911063323371199130006098675433025487903296510264192513954208990001335205206538903454296622654098856108137524112413183731908430869426973476236532987865711726384257073042559335044320379205292784128199790030883239410070789958558748899119129286561056379108814193433940675375760468640528280877447729314970286987512951724529153586701871602121434909198228639056932754470534602305030085532053735820857210875035527265725478407112013678895459484870480120951029439286449929597175670233574640318771640792776955965291677136703199827539654862106906610758990131130586576618660988910687148683161569748080636356439382052471093349455668983744830411871416840761655814423083645993765918875113946623207134956371239149954478727190516300548066572407697001662118021852985068193733139633220983343632691720980487545295700384673877101158662645494626579929063674262577814586932153919145083622041576381343080886925361334734599992421283351048950840530812393078368213611742489984759030129203897820705983326610161953346454595873627582906220690932448879950819381461960023917707150446892016714393375667829418837288702048399683181633668658899734920240318743257691291058708397560599617174521232791180333858048519867798159954807778654581498690968181020965986625937429313713545252756393552501383234893753342635406758614147367946448722873175710281036633648677126650196672428645184466230375950112260268553467619148103511405369761308173957283795898224062735552158740378405878868448436120590491705312036466049230121155109759942282848813097359750143772761533966885463017090557045066674743829871031997127778939768296826722272302654764820132734627632939872498792198036854024501614735969522414622806583327394958745646776612829677056864644414190654216760596574468677132562186712874349182222167962682281735998991073326234086766649959449718356523301373152910987095319259865869211841570223778282808338563524019258143307669620952485672480405491766260751645552598711792786374533718735768261506805862167190144276574384091013139330554116721559476181018767655673202117652128915247690993791512657888389637990700471513991745139890733451830403672645943257079714406600517895563113676046257425290951192409359530630676751870914868159829116880903340966554250834189216872968352854688797227355077713904825299851480408089401375809471765107763564934094929678155243496946975042769122231243251121019517875242008670105554202771434001939451302351898371958112589729386757704556462647091195170056368230245091488988246795651774506487184774285781198377016596945176318404044954951084046350884849110897923106764023074253892661697385484378721986905957684620962437274455806440853086896326630553043726055826420204923172914996886521224588501772153068358935499077257574317201333894557916634224402751245492871742011596716405662833966998123268074824470970742244256093922506255884036768727251252721813342706725665689661257042860105253330659658465420735672440784203028001050267915870213313795060054413813768725775192038268084108418649744505660353742239395885348899617735142601270321729385337567579728177115719709431174407948072931701773080924155638975854678902870993351750208665111548904402014750590326197183665511745743350160958539822750057107460181954707618440759467600251847061352947893838314325035391830315726977111749112929780237027406427159126790299908598126511673163902791103955741029777267679854357627639530024241738302013362805210847113493847789347720833874314621017596499714283218377707605382175283943509015391840564589463744453217461543179474258719409961463305299857632798279822499496616356685308861398244924389630090342736058143026038543429502284559791099460724842548772887116498415238535540874439417670635611389866646166579606982894343180224921164065206548388353578175291760419523808073296118822305575065645151468340417782069155480145751643899271171960252848008002976367921815544645446561341232702905460368889551648246623658694555373206653867765689750624830170857941193118886754289486885200447976178744143323491290914696250527211211669313474998967220652014024473820259230236561437216451051576682927149428341584280226767955265841492861620913651959346438662838160171245475325816302963381096076985300601270654544675623791125216798963656892679280043226671409702733825428177031329110033074407247561317186789790562285116793210236293417289100287113868352830306345139306063718406337785096512944638598363455814319867729053244241635204735194873353507072136277289133984276158899955422119090177721197942080680180071357990081721775519258396581859956205561195572867781784825220277635204068881068893064892781879670165425459277329237513434839539108675772952537622778398032619130544107609242923524067653896274691464947488432098958736170244657331187933938249467551217633628178469076549260394839555934702042846333210171632627610755493799542661921191241435654758834140023349614251940752093221622255886465696579078372968841125957339587491756874354255220667047360543316167610169407287118808318599876296567651328899990073079732245991616925316971807864441343386203397977284651111380956991041171273533993791401632290677912733787164322932915207980421648253876246939422410760228499905046794871020147610351815566887239686463765319751544230647351187226091560586693721235245949265613320582902895988778078405362147566946724936182526590660273455552924879280443311808610830740124272101539966867074960333336181745152043439459452404394922826226955624158871399845234581288810675471941890522040881657227229909951382235116052229722549695173475478574782827113083924831507177305118418635908215216953334683294591609849779879803126952856252110513779062914277832576468368137664722633540466173984677200437715742874531878283852563439294740850484363193019863370913533122584674316253322013961696852714124661573985313114893667049510948510209411721967658009342377791891506012847085533676766549166073397238736110902428849650617181214644473133636137943611922651155024921944035972027492581398350932071454188596300907072983441846375139597635134012681869026015836497585233094476339486514951391093842509131479690208118907076838167844140422086133307710874120733805048245859876147141279674125245339545760656668844445983439985891928491119766847920125781983495550880061695637076831979095680683201132809646374342266498040091516824694315604807217237071945817349833687253371147946035560403259919157765154554608951253835387829764034428813579239729412887756222882700202768507286588108589741123426834630032996182032648003563474173225174556028086506603871072743318633770288882402598371972711119819377983173564710089601413386871230238595631515467197728700994810840520569417904043637744452675211706818641935255083855679728503201897771121426899476423583698072294358527167685630242969733134036228262328184873046977173395550150510598457477674228504709989738082370053643804722829040212556503856474022011610900824929187823241076222492809922378079985906351333988327989517606781211894503456208882816301660263039769305688159939499801170627234790258914648511176587040747457326079179805830321478584025147358963101196464553113516815896620400781097399468680962827816530469015226069239430026561886133690065379757668794937540652410795380677865104564908747484401263605312310556887919399579680880169784159405816189730539468358427598681384252870882480923415753745532381328624498001476364099648422827726292309398619478692576008511091965008720382195632591610515553968791593984610553846894841537409117713705754267486436804918099743536053456942149494488719503369745778560263034719898258738422621435106905844675864631896017039311587937613155151549063556791449518670351730537484207948029430768252236986577788732480689041353289753120595393183485271747443750062646206636621288197136542110817137468192974714857931713013987769930072284807603604455311051537718864789938325292342206634800224118325407676704228622310322388778190656892654287135820449948843481513023221740464710043122181926241566375763060766072149901235611585564539269949516917253108359990385546000924981995110436779189957007754534657790677374911608600158888039582943871074067623935352857649118867905687150111183356227629847958067716677642861348306434370467743668014314276332017613154140179151393919941427313515201211800363120726739344107468846877250846840753594730044567734137185597574316993878078412003137689094684462346838942149917429306446471485868019096242775841281401315509987399687573775762144939251461554828253825876343470481945994593907694774589976886339921385212673902537708669149263386835514206169244007118168381108649636561692976636150772912020201424246571491102093629420555264638275962517281373514681042505508925821859432042521802765886558946321631324209778837094625568684850638066465917324696956195381880327178264375891830755047823048599560659055199134788593867319104003455967224007128490733969288947907487546881881489141014673454775146970834856437646471242821233104880318184405294386456198303741496100676084804477488695585922423362748404936523044878304302077333985940458325914814687161642363840291414199042098067917289846761415552881396745918869815902260771079486294689334564778143088684111753724211602270949018613375599554126200642135191403646238455530193653930815004825456795177984303258693995423376175227987982550640000882527179387114967248039217874387916770995255193017328578834384657283488667522677706020003648519672319168654315053588909866350798034394531143210512151116668265336608843706477538941991115694031281984225715972051546013521887935427139738174081795469923897446040212263634668107683252527897635321169065849436896573488450235160049661903517374503172456612153042343034596958721950024186943186021666404072185293643008577737070514394226137958556351882460636301360252319618101187512975707549491712847336279452070403137473546295926275927851118832864714898039987152657474854329928666414040066431354101851763484959234125575353456506931371953094734529585879642751609582377518538914920249955034857687957820864105915402194705304636725547098507556812270243575252737096359591570161217137188778430049954748714842716344877902960234814090832078510884150423389019103465156645243400821327297521924627077426206436929207824703914174184470787493911638244840052106824260616320467434174185820123845117311745007514398781589927345587584741746104341447250017537496501086764174908202875942133197899504181244853638102557964401755393685812706360896447039100676492123865182891210148253234093576288528313702246426784321009802224761296245140512703410526077568875835109914690565276006223451072938704016695433371026860435025515693805644876261057628763853685916622283299955228088584817663316373194568776636226984942838846181880870474765373579202815481320876008471563012249283935090995060832321066344174386703302446572408343067822673992341129961164250539223748692893189956708921913883842152205920897197752673247402129019375681377390173200830282712701748383211479178154977301438112756949833644000701496831597251855002518190963862494120960606482789484712262341888852957222877371079490884084188596857405405705994716308014171799544200541232737005711388203370876476758560817509244423370418095509192167059908352352487404793844525114618375586963652024953949960295657356136585416351202925649964125737840639007605025550228797003401156296438829871313702530148650996608785811735058749576570434986173069801683359734801660206239405845033187305603623751579348347176113184543455627352170166979672987932348272187967171724120624008507984312663616428969566844428702439174949443782536402125241935058801095810328360816003969500983635516950768534660284244070081348766128478352643960407853620524374600873083861928694544016943373280242039404871661571668492702037758336301750355963371597465860130694338659539578122250340614634805269897515647503553707705038921263703695450255085596278413173427434372292277345392332224514122416819379374229321976394490997377682671441051481552626522681971106176975112687611456297687647835786195729464182372439720835610463105430405738543140486703998870010353890789483137465467430854791393047237877918039357410607225201082784899235063675678578976690547607307445485642461720955462434493388620110589309585762808959880639174230952197280558318316886919403572648146490103448296581661028945212982718507692642488366882675638267188929891961680766880576533212895764325359900642987977464045309622421319686134044386775166001809120344450228496464618863970005619752221202478947804357792100295435334833318242699314778722620096462844392600373983681703462883279536080602953516247503410751097847537678750658058258005177726978260071494906907736428696141911174899222804501005676336392654042450596542529127841958938246592932060629362092393758559785409191391265763339942263931763693669793994119438776712646681390393113904757059541202133920000775833253841435927498913536711626107677652966475873480770006529818524800315718807433444271389928047533144970721936870550604080174674953570899053060818984579305740485024855163031176899174711525868632038019295538860764239246211814265364164627777542943338017647969739421560440888818235303838952987635477467656016152189747397892177364790204815298885920579843001203920149699893658264741775445738044855017686563930696044235029666105110200245321857988246784295527039955827373401613645956386916974994441241094022453364600883266880781904393038617672493480246567122304556271419516455950563666978927753403778347557389662252773715955887740361669063161273008054406283324323240836900552746653113566041915748364880626346508128721368578007741485312613211653664585506722263959162679219243289250589296567895785619154312192124008206559389145600083091557327521250565713789162939110728021617556578350795988969225849314591532445513221408681131211880230205211110018431658573230264160497262240330404826172249211316826207295592289214810295824242662176121689219648952272225924129837793238898790097523467781298850954406371916314973417158459930492090419055985631390836193636378679608192170606247651960011078229319573757715844694605455117629419057149947409127154881061544295903007117437170897306318953625545518084586626399024631455325342053879439702538806107830881218696177616800023829407936617165068967153606348628289652833530894619603645988035162237885022541528065376745991036046211089051178052326561401839359122629623002940801623646981037067858681572527401659069259033691926770142806032246122674437948674269285164175741278100289011597670377509546424613650557072366218586540528164781497682702436113888650730021209900542209055637914771786808275866579819812604343618011792347717980802775530170132771698215414391913862036977231537408041982540195453871715979557512036476442426606323454371649402725787776299926266340150283271327817082976725309631006676291373805413265462846634069897406942013862246285835363740610524425300167013775487763941613750137891317090580723624781811970263534944642932581664662490047204382578810175852326561053123348313888010723797035040653504387298618747253842250553251898198867604498054292977845702526280787930566671787654197941564519756834535305725043509063448306832247147807514662672535450942987692142023022419477563875220050992918890675127186179309519088365936268566534115679382289662246497202313027584321461816488038576938088441230173912969840838351885588247637915258027375715564696259416115173350126123504754194878909621864860921265035877285570153461155686825919993041975282167573928153689594892347365280188628880679476333563200895489668981026814713252621830625336123319078740490079312044859550242645155102936464223554452454140770806842443389595094420517779947440994890015252391647214284151475849592855497659788858157308028120087993704424525137934652581033459694288941320030999987169383181522550153286290494646856451471845259458195377976532168550617475563947846043463321588200530551843546116986380121872697764108177933047525699488875831510092217961177394781255436816267232980919738613903568211651681508331144033542928545565083799483244610568967561103778331599896959594424810979068714181672249856623200311996678161288041531387258103073394089159068408788135106495423435421914107653320998644680513577537476660532112625008211832325285404704003510710166013059177648105314136353218514852675402893745262492495217836733248374238066636865167451426085147613157523864639495544687141619270500376590524884703129942733714021552353293279889781886337504542432887789471813474796930390345567815566231536789246635632098114504589605969861808367067741208377294077488921120450767598484790641895478303559380522651258623524736612414905112027216360082623202104721288452805479369776244429135631366103193309151096604566993273308959315293013099401120333967821724387081540263740055529333636709802329680566037730898688488920952873660901354380749188500331230780413586492879745110614021295103312849920813675203022813790147989004925079059638724167463913892941428341919450521748968605157070326098344152374467064191108355151214307578972191669721464237028946732090742186116321109592712398112558565850575287749627366445252249338483873186607999964509675423279306365944034459735643201776065786326162037149183346508479293359910475805014893201119086306506787362292092635370141442306483455286629357288155264859035092865789708498328752547119014572179882491356176651119127401642181420238320151758990059121346021969857803608469644422827400178999536107164112404394491266555192812472252170447750606448659232582739210795909058198036647213676745890683595741550922662230504815611674558986038651964014722524705269600682573570783115512264517145895565117262334354237217178390838224047793960419449084846339430876275247234914283000663296585998690297843828851415543769884524745740041401733648641340515544603274211158759008451623624522116072152508267127950173053873507474281283893137695406065197728129512938097647339690030985917784175949805252505361278403524598364763660632011455129605176911494839210202469037150601902375683228469539309830145585364271393767765934319341665381645942091422495852773293704472311146401477225701560785442793550016026815283423130442064263310694706348893779297657321767052368825921708197715455413397387265196964198064355347121647146950704627648872513726743529257064004775669747082076643370981043768627532063432668193252984744641697736558946712987176625548691655017076226422980243447640934019169191136162696559361188012249622860626924725653922224533639646817701959219126981444619069583123368069752704589990392492377951119076299593241319105244679338849094490143655228730523690028336026649236314255193327370277237685783775936665942367856958658026206100869083937936534909680220878528824437314750911520024385001074173574176075275126255474884061565919183838168287476028854324003338234699457094838352899555835007873971217901360083814422839275858177527316787898433795877284599430077278301797761614110433263923124021434753725326991360916991521546766760224239003981958504569840074572196759877135996762288151816912148600625322036974940789688150703279963671428926685512115747842662516792039653402336517764422460022257271054969956901384569495079830682798635540780372807925508776101381635433637737241425608348767262079092918381131793146892566458136038501458548282368913412043779510044721188673064100506710227772832998331498431676977569868958680009417883816222388765072889508802844655235118877333859033194326710519495537664308122407300505006506743621825999676983422120352981313784606397110437291108100356147867583841606798381766454696408222651969948392093541992306053917797593037693264010537983697143961808511478887345955279698084680762910577245316016925301384036908221029052060595243321989725794018516112452423846844473931916859726649703151620163801563726174751975851647332785542164255273154573634767949939345183131645345854693758641107398757153774209827810852898549657045353272315240770937574782946852116356145506562649955341660230063798138779567473765945272903030906411219328463859084657638999406558085869406684173557443666280645157641785389775679397276769376622909791594571252196692049376273242462703473461944679519824205243730665598336107873601456624692041120363522035149970548556606498073016954081891633936886254566597424372705792251021344638352775253689278832187045729533491711717361675461469007857881437563916096688184171489993658110592638354609306170114479448775169219761391741737535993844799773262072119507329337170865193322203763652314456494949089878412507166870529409185157891091383515661369148169099285180426275811379390049454447884259272223832302252728709429528745448612661178936484260889897886739500279911931535515658186994546819792067619941745094972590397271077380250378628210542239034239760008168953070616064311935281276337013050552717982101483114562258498263903862985102390242918202870751397035804795456019197186993539784164357312033678227969253785008877119335895711039137305911426826382158428274754724523219289665400250371294708736949221199094064352157850868755715072955289182805977749628601318764886275323490930249866080663366507080604718324641247421230902708479534385563669239461616167351647506473232018388961509551494336955477049814228060580092654485731598417758946086570079406385480046289195090224247373001284867325251542036665776345858330908449385710295832309452435396282045937675764278317642566824157373400176946588500826266821207072799365073945700463473679083232858709155852828391942261154808217375043106339468119222693746636252787225293242325763032010405760732269811652601092084947233833968278993209642563256368085575364585229512056062192555428708724788309673049177386105095056770085571749378082272854028930043862361958536074210053036089805201353066525845536761344653728067845576525715342069725761001649906824943479846927351642116828092433627516904693042657894311372661003003117558810489838298606260141627387318864380890566882065406684491591203388076704969349515653144101986463093449104134359079296218464990506407296507868745650062480264025034484682064397883141481472016923668687902582239407335693952031487841466674706303850560639588354806632750364077009182158640909556096965236155906233336061707445260358385773172347807368597953118011225937017055262195027893698247442060836312685207079666092243211093012004663919563778946430117598636311173487773759760720066076793683598588858553551764468675351267546966429746630197353209163621427116937075520660272181258350417789218791637922778194517871170107378824314623869649213178281162568667830853399782939718953591443649413109797503733854767187614766598566347541758480482636675925269327348646869566107577567217237999659249284207311300707923014690764805891213890858914647609851473169639203008762313533397981481820538351499371175342132472470262264625688836774266940403233373403385413133507821277475717040435521709042833272422393154396876575968783346259152119057301586072037783489367472768118059320813714817775642978349352852104242989509090488573034682793179983705290885016532291626888034853143276787362105783510758092241264689109757907702933156412393039870655008243331103705233182336181707473315432048139845217062727174296752877763317158707312133372031929825336314626871082000613991793039514532883086465024364222225950125046017012082780047017555517150447543335252319867758172133588349799425123507316288724652390373442178602434592097500924111871166391846231611880559421674590388977844987374760950559318490862507030219882605847180658060555397810091126933177337732455714555396440846560149993584463535057791668096812646348518499671219112621529584490171585240498234402165731184452881387532063894042053427480456900208823827324570409900491745660567163121623588391668083886291688306118984080169768684884358139693535089115883259515882921197358615674544723972219607323595031758781037668447690309165947715809866163683293319950510248017731308717789936611941039564751537924914227674889516893916647608298736212241792721884269673333179910016493158788685299121390840797815845147253933989070307589329324960782073491441628829905543574501776967473253939146168669409159476825042863440658259356784124208972887652538948613355905899900483155038416494898178323727192927287677246886509244696132159323878917864823214524697587305485393089751785832475535506822025365473916853191486072206660389178619779104357377271238117389008283823399459641151318352123032032040493145642802368559184716894319927867025811059217346778179320672944754147897339642155435443239643233841793853585159068680362221247070307160062559096392591473834302688872897929754049553581629714784268718069572402430524899531097416900098315310976024144932043231987758009393261864079030405135506119709964025364104523401494105471659427509060133667494256532620749019626833908950998752650697867648926376440395491851811394382144382038853651291715268792515120397791707068851799919471696117454232299589871223117717930061123978759578273555955609422475201666758621175262393726492053331525126861286109731678593436639562142049178379845653638421134766496992479575465665478479131099291589203877985161254642582710283740326193764081640828035512496491038294584800049027771297357678321478169668189874580546785842926925422158147409705355248267593310114851367891960964747461527409433131273208938375220841174924061977373346417563391735794552552153351320738006852471079762824790244564269007305573420455945795588205188006495641653513250014812535369639866850093236688407426642025680986982868617631256210945419592695212278573642983421990457977543325406970662911103705006634785217754267267328277443299856043185578046570960954214082387850285282353766548302311160622054811164228074847777825001302331097354018817469926955275876597715731152653936106685882534530369050695515884287209646868530551102538182886627567434944310160003145521908218955369121661811576887779508471535713883161651056191845568968028486007552050998831354783864414195655020597525104365713268349148654215309467019181955817946657934791056206665652004327820999901706842566321452431854372805868404382469551476927852263201380765234542317812090385849332231124312562240323448055276224598126439920393260670900048051137122435302608321843975471453064934073252697394864995640961525755888806130814159098299466923355442973179288422823113991239319616284158314852756444247811973421681178284906540639682538336074691296470644486619877774243177591725045559627823004818863069227967206366713064775334805189452220892780422643335734362782296450342958748853007220411179252538602367046549598938639791729493199874929217573253011229314348691079658165653568059975695543892412617849964265882613629913610514758447861353051334211782848067663083830986596431795753518178795579783420843225652065814487498592640119740100169013114091663090405395767390125376103539593439767693132796920166540950203087200151773592977533150294679054050061580803994061350518632421239660831900458533238715681465825889748570988203220953518976654933172070912280915254456018155207354027278707064383105258691602230408884011789712901808822588467884871244864204591686712944276613535459329268287481778710280455247052093377069690980594179337171226261107599830499034995087791505091807405207378719609223994515117967124665193435098224936843949761001560934415578885985366738232903474158521119679621710920048283958338454135156199370200856468030896615252774901880485689352173988107751924861726135403916130829988271801613966156045960465910848360230088625898439234274624415189280549186324810719319415345660022764874580660986509306451192432718605332665211521808052556885933427305196108101251471623794983980462997052807234109409138067255611776084861890031297784038436914236783765691960869178473238524397065341828802828372981578431574673019986982763875277846132950705339280375387471456592111777325705374594803939839208985932703314435532831715140099871796703784346005061967826659612899732084165237511683576642698421059008746854891724449446890593722312545421979866728073421910033056451501716577230030493396794487251499779489227814384855708705354931907947035860298475231065536563838839820658709961090732282898971076318621384266145480792989114110349598735384989914131627944281071751122339910055582839970622121078243682786603561319803584999377102991276453742505819294282318991009314435055590253083061143452270337206458398233448521912425740731990520927685252346873997170060939027966901219542383297605855685773135039252616272982615961815793762051656301902199457534964679833160199672718734888498478839498663971883005525138973020948423337993065400842838111954873414223301052955028908821632059960061954629527780683299494668193312798989303735860391360319978506987358059404567056332809267887519964036372185320787380414678012139747305768595902288203591576506086965682346944999131621102061253308314428504700830427338048812639469503910976925390904967003132605984710189397030132454004646073126631810206771739206357632712073802999216355174725651233442152745432655726671464642542126582275881246465934625505450041280234344255660985835734929115254363834630547701175557665870779181702221389612316680269053184084944805248513400551109602966002075296700909988582362317680116227836548564327834040452830414314879384159091373362230784297415292327172775427666091728248177387632612455723428030802390000554830007965162784961554506905772116443064381715205144379505484786194580889762121721045778878712182309656754083678383114178097110500836864415849255886802689202023447961858681021148421190468419040401217661782298247321592169771571158585243196953107466119582717364676238973513030607384718610034447451950051237481863805695137288385924010431211799711708675377694058049474658082834453400810129836170328480643905832176104383922724447471951543210187151402306254267393294477064477959357368740564946062186996258006989289841514958280604368216512462678879400462666395732636896887943703975843317457112104653905180454209523486160857717922891889086530820763312543758893811096482330335129617899637510232710502543075964207312504772390250151269276536120303908078292046576207353640140760803247857543404341974972948595383191052399125896295013666244707838332070354516341417417044973746567253751065785216891998061043178633536511740991191129869573737703531804036279058509301927300531182080071927967224287265120015230368136901032564548006469167283553438086281054185033802206894420300642719140823557073808688664461452135060874667289354018219225109935668588304631101582438566538869589906696487814538534280373614636253257456882975448390373877303620648307659075098958035826045262107662663655858938514193373379660763321495063758547426452575589906098244835960663434231953037149067423269585142187994184842620581155403445870112708767533136751534212302284476265120780052516085436944925944027617974798355056615576622017164130863117955872768330112206114790483987437226120242886267550832949517129289175967777170212150573598780083083707420879922483570174923907654900860884219674485377295063125093123137956763623939643306943571587552004995341939486955028122588524982376771973707372158464167157041028959960706986304241869829022516852780536552175666636491752187633157529903824213827790744498593176206714852001669548794441353927209428917291758996340051776989794287570532157352224412997107726520341802677406725755713787118158024524709870892988101283942168947851869892275468328563791386185827822131643079044358265566869102834558323725655721648313646610446488858816022767887558262429448973632836466291373837315525670998348232592098987175686238319611114470410703824053056638079266598748802157970674530051257302597987618226880239332269398314950869847781530126579928930689970569356615774488353546954288013569156246391890097923808042400022450686076616598210204912662323893641440261364941331636634152917985154221921504515045899845059511113985449898284859146020957346461227435733357267380220924323409689134030901889636311797422798930035110677201342585220567140452445369237245331605560852522280081650620010288812111115347480784435710757234037752623448280776918264861595079731748831490100446517058359170555934975795390680541592487744511558793327869481677283688057898156295530340850333201895183910517439737025914591834860301098959754565845141848532641225103293425620344163069704510737362768624862604203888734590650907797814632101552735731386388387140968195867517403384760769359854976176156564313338527111443571979135254346386073574265494023940544874103658286838386535537399545545588364819150825110086034384392181014425682216578748228363647627007394589771163393338598105311275411013109423809455304088607583506022217181243212248194662709721265026307624149012353549247803221135274032225170892923465378775345661831073642147525944868875447349286376394684441728570482827738018623117416502951767972434954143648799336720549660216833218579944347168981395630953939511617075212628554722879101141133582088445145225316306444213773065780534195367456844118564582828033196634373001550079500197069794563642912296543658748079948145512859781437056457077398715275439562851736587667508262914279107719485859620021275663168931407852267692396521197996122046239403945549906389270056841502238720662648538346891432113947945864338058463439752556537600952339144609110520791781582864027651988547178734458007390377292143935485218927778803823100287606030293443699748765392705489627304206883187585773384890803964554893487589318771788030886646580259554725211531947073290052557928736065254995618151346375362695288595112777298144138833958552583122898489301372664203185614032511439492310145543366371695388917175662288726425760327219911589735283049999367663476845138626236831043967053776532830512357655842939500786488654254849315748806402658439856642803931008469317509464427632900064400979809389536653815517129393396221223185432194887861009920979512335754597374799746101740442116709829829093910202477840631257908560631219974913223067424386149493586024613372820888353251368009942117175044191090008930634183784155457518982386913853952545299838403926614766422077090005076756272471731560632113530279112547993223296883233359938059968620244594858280793209414146108060666664144290697114017496246201391442906263725251802712524558637072000944323876917086791640942001933999370912421864961586731997656514319210346214744132589836414268313303033318742152598746032639380259083672144856507557646201138142033542659310445935901510635586098943959946517868369949612998485921851217833890945067664428353524057889112845510280195140599646411159234646792230391838810559841986421421939924885267613514049287686869202306486636920326562583665132075261056065818667985144243668111838893870606793670717546227856354517342583403816446519125526389867587726584483293665868397531110741372951109860708960909910141104840207756761446912058026730250662793441053287113470320081957170447938914808776709383380621829118863760581446962117396629267552131512010149464646910158376122843938625281036572298642482915583283377522181260111780142316344379053905515462605593562998835390535970217042055512348343802018158092080415737947247631983017672499614777907374525726902333616040955831257590014427259140183910255720770446882560431304910659790448463624712390863704705554721639735902142343812974167166270872602989622908702009417774100359275685694272856226888205158701862194731013577168621722172461410730973961953672559180917997267490209662428994217664862039927177771558999792368878138245901044070226325573432106784571994924773420016734437416304337723152429322792318900209059710205361611411610873164971528179370174677299866850065918758521088936079955722557055183755736241917809172684624762921892287822718161695079948618822017996624018611187139788276707319024475751991290573697526494931553001630092313963878891886168892270139283958132428955922992548628083602525974187920677434347190660049195326219863293605530612227667011674470909450242040326544065432603677647447413188679386459183957573867222767965224360957375367565316013032288014812920166795335415529762935694716480162072536893620407208475542338904853290913820800737919393941164404956136441229956703615224795309609752220023499470032044469943059317730339574914840256583902004019137344232607013545440530235755170121147252151546133315216267678557083540242808346668278363191421849665316240670179973252683808732850779457751404793877289888186541359114733903471450478601732667187060145127282270603674788050345947973434508547271142429562256244735588757494962170081056399177372615952700942544056748027550837807459907521346735383410762932210478645976304260772201584680977464097277564855599980343876102292758575081299897956322599798291767373210896806956308032271563979308467018605148171615595461281370910323782171095401624517062570774761447727198081635797193493206414262583877540144366683929518348901348754429496663598023576594292554228282527773767706735170296983280473528149682844486483807263810262492766522956801925286234719651641690074629032977776298710639931612021647931314031001187843282718560104654944920496373226532805153421231274459254620687418424646987927083154619646222972076844879656193576170031387413043339069038590956663368211730750301347378530360260349319860379378822114477646583976576044122648529536598444383576547219076942329900953072981104278752006799382200373646537258424010882326723262603880322394550221487620669715234342296179840507259503513177950161114117817947848759494963524451829903261886801401216517144801875129191160976268460606142935334727406188334887100766724727995922415313598027213391017836713292782444104021907024431036122598252015396532773095983423072722267817021874379849570424341140549465604957771154671619065774282908059442149576125901188042304595852150382892435099805863916358156985622972395633876425566826684545296452087363450512930419637964762329004796425468520411937649417420888040473735917685553080127696680359330743552698594158624784111506905149432396651132709408809513008283425680995689770529794404550936754337623380283967281725078800516297202024706441103676786447691595449031815180408976918867053694956006056991039395722045360364239122445746317035882004092255228696812890790231340624707449119323161507895436368758027669342726920114661577310952806086536806173754937476209658137301840743585648228198332910279603939537837940255501820065628387524564213814388198458724950143745961946174455709674287663307652687526142364103949460960172231172037808705750135767069506254171908770353274300195274824214873762603547824379671570495474985662390949421690932891572939261461647283546355344139097657392274524286448747212065185228982042208368376038748947404301776272117648743733610929123168399501456875821217499945823544490305110307594768451397814337347392485611584600578165283494994986049267836105959910636963732316376845568579135163541029891057002620338646264101477869124492798301894968102700150576584613400960750139139918438127194517127506918417608713446579961484401850232374743641120404549714950686983736938389350652323132005422135090763455578669945253506969901782347512518920002084227409188434512137245742791942725467848603072015548395461247993749250206040692123052757178223311126038888242942429143810681546264277549553519788523122267586566261427799009231848463701928163255263691430395056762378924166105029340933498022553249266147250956000824073407664043657051374075475838158314222797474433673893332036989190710794668625522133032004136499843463713934049798066827235291658106129546771577551377122218153577427146796911462916425341246374814429974712301138823316629510962204128042810548663092465717372851182753175738637095319564988420870952208656134671792195553052869012596139017912565303894690557174873263239234260976250904147310123280482636909677811204827528002404555348373543867937543457247097516487756566409904953867261001666234647374586965235125293409119087252559029934521120922112545283170090307130513531062742175514419870109723731678757700189044072935424895130611855431423808203917558994391200889692499067784251543291527996400675541492758487883092075939622429172441622010936677265591061389582163075661951457877252700375468827939205947778043556490799633477062589239474813125205391459353457963496156009685407842006732717224391160769979083690671491990734772464182334032392721762134626813656710431372395506815610841390706706804860780501816749735655626708492312106697942622046596451144423966901713429717208605796376814704519364618411451501593545283183972617688121533460754900403446874414328283910941243679878476371370918352592517300331750531251744552241520463412151590563116794482953022967092039201634640818506361358288973155433659948067785159286756030723632783041979331478580963912479001470351798306700271969026011018194255953169780483900608530012604525023953941846370445740761150527913937874120388116864448110274484494524906702908491789052536533206701961438556455326729752514163650509273393520749500421510921825635074431907848592929614251032587152176386893935414793285695826632580370050070829468769559058716907638475930032400745220688504437012817653439540328811693745721635827610500517587697328282116610267324836510733873324464048778965355775844016020916185809863622468845663255325329732548626877007002560933386414721609918580123845371454107197065395956421196027407466559200670882306287397179999246898349845875251312043012961072345501946906343571029292589755747058453864725301031912737187259638367166341255611957691405153045726809121616643031134205485864914607067791297260256002137672518315044984109916657795627261764219352176887819590437518069356799168805652146193990538137878815573842858743333447165625087870373339187096637531437680274908530653473119299150702077107685656546077240091807569075531434583693082301720885132199816585583429384258071413947738598202527681280720188383482633835168453685842245813053592726030394690770033165133505459610015909146389783733828649912720069875912548864285271107152765912490918436773074669231251321487406828301413862767671763754180824543830541599752754723177722347287985532184914903421673630565962102788831692943863399676249965705219507685713237471802565144007991723611649204378036507470485920539427476793249644838025431970344559962991594677933353630158427749346452366152472923806645165779400216341773218562445994887919596026108545864139852025480476008459562389991409797281278169925769618510844188183226029106327256976246204466640593509819193529843366156731964362597337588003390879120215741731297637480135238957233181899401997104958219124766116236553367763245666968979967028811298038377272158717210106932455808651971498394976374972228421585436720566284894506926149950175959840637123903575251008308474313900784523410533397745333110583393057539417270379128405437504206412701863848892212318700634211344445703848903678733313603963262864979569544672087615143050705271286534081495524240676329937143016483749204850470874729685133909316479285023886416615095914138411232150744641839823967038379872330214691189387814622258365881928837875085934386316861171702282109978436181315035046554345374395420187802675466508372234625312134774388981039735070393916486851908472824420872248684290060017378010965861826656209763654523637828282172805485224079709562512867288104126395185506920116332190883900323425829243130073029837292825320781815216420365513840049669337862963510888365243948111365227055709745903879214430218232408585570618347681831289649339992116627340896524239460805718912023105643508031643862610066641951805774295254856865453570509955675223097567908787697154452683023137369780868620364473602318571444335701994222077195352943846594282199379336344604634350162509437895284911561833884263487626365857869300407716387787062520077833336156112945097779855267238485731438829299824450516388739075561750572612447915811489477120799748576061412419424770789735355492434095268357292076477864872867290203487781155105999447936476106208026755787760248681187464492869910832739940311512090877588332533164697068004911858360349665644011426680733788441631006698926903885398542949060301663997538287872293135678628360189622824300851736009360008296367060127798999932628221165537259554866551657311307780691210299460656660455592976748462941857709151425092694413449478787711595829728824132035455131300115211631234670852797247677796983372424323110185605319461556811190058442384742065802749557730450539663377859242003160807476922910501113527489762314538079243546140180570355459541210323645890114089601470760739541398356222532403356127463496790388915436990591072811499497894918162710456243213556032948513545359000420107289357776812686386423550917595023471464176758438489132123513264543263621547662223519065624437911763397844067776179462870385892395494628611157419470715281778877543557869174789267654927551312604188016664640833097051813431147156421828468506659312321449590447290754905895010863635703809635369393547453413972120991798058253223216482973640981971396081611534231397801616418890129317344336553086801547124378479212824244851714087952311984380990378888254400732078268638852319557495151234816225258549671833843330095457073365985665974692864295144668311881289126725190245164498355598921437353462511908770013537293872167291867801944308422006763740086496401854111235678908093537431008231471410933172015865432216047498676616483625207370581722155295380967270257942090628224672386300371017888266507456388335329669100975368306262189756594902137639084679049320847550816407779358905878455002326503439506912179927392174882127668762990722159993343742256346692170439214610991790064580336972292357831654542125269151534210832043502805327988532666100476358338472023923863793735044986890463196588429185126210449373534330923559831039951526050477405890315326161620979307355864722555514022816767332139490856309856045472917544161065708347366716693220130468617330005896086593421713760353640845941753434111921946689830088596818237375828431051275060794015961718278250301158743262517279827401279199512621684027933110444876356848337627533986667151013652792002409469752659601305862495497229386095541229116140603650796716920160587858985517196364298242490464557266223363378609599727626629260708227822256649031969690319945800705421606985498421966834798489114505793658734449516297644734845848200934154338719517077825785100545466109832984002485288512994817190218238537878781645172642246580858885650496811811190039096283117170883430709596103017973444749187922176294351652374062261736596732198654553982541028859280629653167505052349699422400216670414826594470652401621339611004360440600620730770691904716080563376942273136500998931748503774815754811198694837140303611785172348013686234844358284429998997787737189073970813965651861111897144981258720634384695390382706069969109372376853933616036265934532017852931964782022902788620175624014056911973220896650792223610561643365743933286062949344084157478226088611684102302490674121916483126808186831359293986000845365555697457299189472538277169173316745887545314267570385272360746825002484711866874632366729925802655240651965476084060492058430431812547463939605085971943248092084473516226339906634182899740157119746544240330930625172322959948368047204463068452174873868773082476859678466988345235673669712705501109854316887606793785573731852853741549818754416913057521580299538809347565747299859637892281030913190955172436107546380098009798061046920420664257336292018174801085168857374811890316315045451950512756442008128928230046095611229213287811639981372485559339495758971276831698289369417637540400714381130247946541306778408381422153518672495670306268658528874705858342833612040744726830813983051532905182258088163204602232957185763134973692286495150563345165738041112180917125702192037364749130185138161315110603856685507261550220039238424090805425967157149777297745527659469345176415430524730583354260861339791119384095515092370761882224552322873547750577722083590946963836473143541522265602142251017602779964383564640034166619759284531910134246324782650808415754880686366042142712365976359097065197272563103274538270730414323356232361057967599653564627133787424293867307991363017759337044332644188825166897679193653090902228859558741227773969128032067725709006809958873263105806147582122694331773971395397085972403521467033027557213741729511928101488159894542214017540155313165011219818760968531580623553063690649334724759887517433160303686250892218150124741521031615115553186514731762295152378222433298096579201499047998834992968698270722759046756600873345835773399520672117288535600956762791600156466059045572776058356483259669646562211046746522873749838065137661951849955035540041657677263654141318710614090936171705036276751930746180695095670115101685018110402196674254304759593162588910473708892534871591705555406036345716449012311006659332744648777713239006525848853449290967965780462409670223811586745772254793939705341014294406244655325252204863120169141374012810275190045289463206367229119856341868700788921049100723889784357263561735855839831520668690973718097369813630817802635087652301340883090977831192403720293008165527382207336582659136527446960865488768550472613133716798959438487347236922597005719568251749125019073718338691053762161712951751536876125174497921315450965973841497438835888300993669822097108505577648879480138920335626116150821382122264799556995755464098159188422027661422560164667474969627096419389627690287895578652607328975918951616149368520015491057056418765748314674647599054174024865229137901141453619153591934202357111293977080587239995235835632733254133830406473479131865111140577474143305894893029754617197282334176070306691971011161881204747222549774462691053342734458933729235683909585045641668145988094519538522959160535059246652190048682186032464332808174237251887298794981007791237302662350874776188126835745224353671007707472636814991252222671528066948966955370518891143552214246286899198006939829790892532913921701658844590194134694323890677096856862942333589592443974128486704953722382926480932197632429635117461280794240543869855548902858430759016731635882904235755867372116250016895341701934567372141497725999556655485647423604164471640518217897109676266478242474701225203655391216061562108590189586254118349596668444053682426972334275084024694764283941408656520881930331372388736527747477265954694624349407238943184117994200510486326596305348828509125840709323823902441375564794092108116957073408911447051949044922879585746964558791413920006288852992414893934190395594711215440175328695020636027251625324561327084023238493512577831248809744496111356863162825640163593552897827485312696642433858920512676788922924066177126748327271244490055501281197603116410751594728129442627735780592432864220705641527028948326545684158579152588813483079420785881307767402887342555849379650361863171474021810035269408303472366129371843609385847097147702019499635770228493198898635117766598150139551079991615878148674272878127768495246667585358276466216731297860930988019297470861365586358281659817330812903927074287994292934170053771957197219866419161520936157392480346957842621006982449788682987802574094467508009430954929892013119154062749973734953520108714545416730169982411504479824155134503149679777536919631596549566982285856342828120192283689791620344691556945985838330978901693372067392209003643347198507292850812090826765907465179562459315345234295499520728862383163515104810025650341671117360846368098917515836369045376428571765248864096578724405114363144181874432112966401920817904063393431064161640571398325421696921543353468172916851331252360828901555587257702992924955536338840612593481858503319439500007634547140532192918257529977780140578721282420877019456002882389673477301478232822549208805539822910920744182443431897805164485295256477427590300108348552536903372233495292718909754453428622927518346411170302592070631355378248355449901758459234500388963210794131764766137559414762291095682599795306842256359131842556991488500045724463166761788128812179611638367391365425006035104246114707818597790431309371353033923700545945531096682960232942209941273485565593931530049490380896622560155111184917219959099188336101834328139581369892294792854147341592293912329775741735485224836577687463075979895232266175894461237081497339681272379706505824263992319474517685495431219670398001299880912127676518672884556040377385019909009339732065986269832260996135925578403445511258417994992754402365698489404254463593085156817997188502085105294639157087053186446900446795915399967026108393451883988260069265306781154881819131817494942610089309787494527378077610355238863404056870905441834493351993534764211050851110611563359863446208313171479735060735637950539858556299319704373972606872392524517224958391735179025442046079756476515029920176778553804229994888488889565278105206600727152766613275245252967857271616941721436779035768650804407688970450329504767795998119129826236107561821282563311546884960493299576071057936654893500869806303802737574233703423009482048501097015067918909461683263471017189018518837121132891708139618724294544722986289090314000568627984470755984464432936024478950532535876672894953568953405427295561801125405025506459112834896392062763973634761974927595368226749931987123134653433639357883694753054622189200320197346890285260060785092333188693778652298159299718951593197668827427423922899915864754205367829883533249214902153529715754145258828095804505955450971934161902405249291908887713067347562877118811959622032803787360162102708055749000774755957378429222889258977715796561822959060621242297036524341228787758478040714833790315975433784856123288546063108286953418038151761411340987223518122661605345563915885240299087817079671939340470092880386671160431320413645739196959697089270821920093148248296551138677196247476146801645059589025879297526822635337873415526329351877505479515420917669845593341598473673909816857295543031138013910418876546707316248031740331201058550281256972244985729022905360216375039192074269507409310978017006477592860078071399805453629888539984488570842422979431999282314030393396359985046998418982255604259803829818426829546401958570066599825643534579668748377240988913953137109715839026097317295014927103490842132467582242178559250252694174125163750175756680739938459088005659439715702058557456088992333366880291464438925804205313889193921824899235886873084800763044631597006837827812680868808901910919410487981601987285801962010715832386571466766382280065324785448192659486222106981499299194762060279550979418247912990387116967503883353382349560597505074871762065308211487792734672601965138192649242184540644694253907018983033947247591562962984596740939095413825116728039129819903225165143106758357466182810343320503535938004530226362184623046223762820356270780087784171339642376929607827925845716572556685809768058667293880067354900366584172287495814266337238189290994172032783011436868059778818006452201000029850985242278063210123782741931080096313148841054392444385817766894888670096606182969890669149424754727666309144668809051124062533514220802178595555664443181875395113523023728681932344154365576186243366062275731421374949867379737141658404603839488472362968677191595043763460323088237206724477892040774383104154580669626267237153511783504702313541003885929692793169683104841315810057669215886930011072478366798116746434520967005967723795395662211234784189038918645987852823023096778774815952299772691304917325182215434007039201016684044942179766748064088567831810444701509584622931610109654427347716656134833575561229213098199768616597913588230143910312438402055732996605293135604073529007641828328437531056871339464467906636572310984175569185156559352370816620906387291585829621972259398610621142545145701108309505317545426937002321673292346772306930847950611142884441125962031386719510123966433122091203413553469925643137824741514215500457075686903117044419904155818887807878926646679035825820249047842272117469647349849463173892263650848936199926398932992278448710100425334130226274785644489582667777504670144223918302907202518257490003754616700099631343311101299588488308402185880576889525709436252409379527320380534215637173947470479516912805500662940436183110415267999809755682555853984027594606767123731204400582892562430800173076172666165448469883280788858665419514486866580401841444738472956832515674351790894308052869903614435379352407708254691259321725969876671259759151657791595782458851221852892317872822433339381855939208135216208520525554915499274651916462994868772965315013822493192752743121655543228699676154086014569456752300592391728171582848811319052189594943792853683643568347501543623015750228672456456357240096543246679261793606037232129887933110408069812066594354624191135975014838724322816487507742166648221640852080898994835899381122121647953710269151256023586212783425955022122865690564035084914864731831080966447572750546899616189153870213393819251801425429378745237106301588887976637806003064727634578480314411453722939524170379626167785362473008852606767968653680427760912139891289187693995082693733160221987782983810659254086845418989902457044343802732462227263029341879505611667721870429607995673702661448199968783549718020605352648313437050130423203485004274632541965100525092335511698856984990101613686432706063691008485472009372671643572102848582535905127221943911069196928756890302997018952153047252101302646398270468335615436157471287886497728502896043963519925073349210352094206500389319936504909692010021097731022391908910889601765008420317620215649811043761383797090409732325008255858580125821858676366514951236205742788297305797863462535732814563406938487695996084083807976991867719312801724447139674936122192419504005567759149742121166433451085716027887200467475290229132058094565370623880613675570479364759880676416799271406467970576014959201764401120552996020643012705374561394264112692972138164466136522933926865646796126417657150941815381176699259888086560300395953102653433073805072936709680056683062692111998833546469484327822174369072046015451766182515212307016288206415150607299296572327860117350642838882373714573956840718020569571474999368472947977116541154166842938845820261237834293795174570005384229155584108663217236717563658100350204161305260096242928730530632384749715016210330794546205329253487492688636545177608893801136000550858095819094875704196456523036493334548494107029223394448115212240388924210601611468984275171995134275123532384401749688499195573967170214857330514408538857286748555077087545580106700355620846437376473681294723516598205236807213395163685748670125618684695784918125318186190492783855381568351452133937305913482788408823829136110536039007915552948590241475419632603391359379007501677552226625168818028846318180357054891782406338248671870556652299216004662378870785698247820518884015001961343964790082860907928658527414061516408848824868963514044607790926194684300882609291849113670430403810680940984248398162886839000227587064331552227746032679994547462075853232511213108590965124253656014329668970158395425963968061957753155841896306735441688100894973977079318516958564325314266764589209046686368239021351587595697298034891955191608308777219619248654217705985433418761103228081820913217935347793271200326344908745753436464457381419147826915173776103326297740417415307352026446374274067601554745416923784790441531398112047278798079687935628944092200762497991278909440961305967759031729613777564484804128217998329651337738512128935617031890298920427689843102631470865779781728862769381685968309027242085553978091001992515753763836914407964009191195112048579969171560300248803236431697061393601484950065948768803597626145352037735340521870507418146586859896506142749888646354839342824394189201251530063967129933811306348376137684891187531072646237477911651023171427192946420768711601329589852736094335876803070829083684024898181209287790666710393281148206370686162251904027842235587076689537617129866433483475930362802596710265842448988475581251746680069360323624859521467935606124968746112476917316257924283194652882011288590337059908866293646432484445857609952244431270547369947750506408116706421811118750831059134968935306739358367034310360587172563883293254852383718300388091756548411531022911845988581089224566493122194690905446868363618458883082898920478955809025273169438268151206283040371798013286405526569127413702807567011572608684227809869257296911087280394946486542921758674683222353323380568339707183732614249616519741929240173818897131213249056138527521371577847120451995329054389410183025388272545867240422556041178039852436536560563039791391295195827532400056422831671986198984116925702821665918598839594896197187598856667308799693526129499585542008030531193525622745114793399954046861003299406927158882017071523194595400185399817256258101091946316135960133128915244633764616457496009963673575583955351768885612073971496150589416847590692832750458277667700843985713253986250940468596056109015419277980199875004051961324631529078015973649318063298176353487870699038771763608190282954777677336610167976801594028316075424400363473646106284933492069382562174302573709867100892979557695195401608348547065819343623397239945346121530605845717633089557337824057933193419806208407401367147900698793604648971185336103427807957537544619586663141692618395163891964534079566232773983676896071956280365951502547261216421126237626563194073710152934270197186830805397384259279607560978079546515603465764949810691758949958999174808803223516392870189572038385984110929724531368394929131270900148269243865820403042246759205371344509226912197643667011665443906747707987045290074167651898828619312959032128166240386860084928064559444044954556174581945011644718908639806199429653126845799631113826839571029609574179802715706002045962985463535793253152700166576766100268094633803825384612428953846120216761962452938682083537842075746519720375524110938699744069787663877072465143983603762348319788139374873428991344601594414014024893537316925831841415662513266415736078744789256921997550884685859151620323209467346696605431763588988732110284249433159087132285914028982874108538476642101476083304084314325636276101715282985813367251690858253833120379662776123782807947895561373807462974566920875477262450033444672954531290512643528964955894198701838906417574444316769381569034764819179769572408324748792181786416106237192215077567563801892060351872533436391677905301215459878426303738090638956944491755314796210164858743375158050893863922251121869602334100962804461605711567544645775002026317216417387346851671069571794670353486937447282821381898054183619185170758302466198009052872450338194696375850484598614584620609667954108595106088862695876247787678066331424375526060315854339319428550423058786952098284143688576560552775910917792147760833732235057274309386353536913999380713965794493031732262740428316537275044043526673105270199208403233956288784998970943091375647845387739214364303922177170726187404959376912744744815724500203645233783885960034946773725680849349698328692495957010126421884162428736604373190809019345423351240795479583836312870301197740833821652012975324574854082898724863743451258932753544476788077579340956600754208706714622189909492699125956336357699935519870594514590014766024745909915019597013027151016125291756822074698734695024330081907967020887413736561034268461379602803715144925588926807065472238192569629535046699358945993755832536115580905778120291897860055311919109295210375158179828791026010193801669527187569163829978907722510890323252575883086804509785972817043857728975688424405971014664475187190262280148187005886429997323372231013602623391781065146125998166433637124431859266017485960790880997791418122638198347667847993098301725264373419883745448241428651143578670376007459523641198462368737807640837274856974280725283907976947060703052694022490387228932649251641930766151880598892581192050615736739540188134521022088058403639777540688500011001096656970682805726154751875263030674419159414924945390705661155744205717602805173033260544872825983684781845128288885451915626854279824349450162611656796227935630990953653993580561983172373294102251419555342089835483182161396393323758707063365158359605016441578688699135812993593971604342635579197428187453321516224662357235912271627691281708341106309731771745232732906661242112200140721600314089001125290716319527754553748865948151951677150314686754356268763038248541269784618269923514860882801627534992735072107588583831609730822994326721309352444366694674232793037701715771583566784009015852128078520880146290718936719572595635627355401596015561003150232331066802763554947118379996580952355453583006870837004557051084821508139445592528364311245193519315520558801331802718046437957552368568757008958891048532836949983916348572532297281943190787939670369214620185059100773477726299827833078102568321395445627094555724479785056507968110208570657057167931426683288041471598665504032954852279510501352558487188954499795759505998449186634295364174038622951555064406639218235928997814147450012059109411556204153236091193611782698958386802144969565604240239152903748438369094145518969103433501181512619755796773327243639283441473369538205179266029491715559937041908691195723503955823581999100201383126697692920601104878772901551370597837317176305496099464543999254158063847521673208455588411679942636312978025924376743495541480999444567001141574795281954553907750345668220238721053202885913401944114842817616869252395654069580346286836578876655892605376613398290569146579267822386535819969420701975732383282858858503485997333600568295258164626971825797589994367454461768518397833804424050183900541963056602921569484765732570881590344779735513136970480628088671972505520121873114875309180864779741152106659116794667558345528357575365925039572609958778046675701720067244980232812661326623835563357193102017935426425149158103544104739717939464510580343759886060133930185007478672130139404592835313391921423836381399921497697772715016355303498833237216808939449310903411964607365725396383123713017806391567004606433511610579510651129047294774030956927289315619558241086812611860556205341472968932862275893621809556732225370696650352219813778091053106347402200264702814737808444108839233494894879268393654761137037087619793011684458700290218417077103212058254192978261196589212565920218394322712803331267580083993037002315058294220563773790942705913777412065029636428646038211648157621154409297194348475902138368164632007331290161551299535861151971704588919472766548928887926639005657164360553504260228814668669110327413384405887849879853098704253152763013996659079522652247524952730290816684352864880804009069529668043251677287070532569590102798114263205719411094462576868502090741117543136810308196146966457105067624665597488081789827175255902390599536515421522008739835240146674847699904542179323947558597119466959696016796813201262735524916394239002874305029710664018774662003818702005581281579569167468265815413639709183554508872808798717253690440869081259640543694669488538778039865357146729493498634312167031532102826797020433616471454783874240724813861340655947522171397477492745266430310845885230006994217022001119473504033808847057508540955749937386728407802466819147409723098348666252611510762344465913232849418386161769666194209850233093559748797412007187207268689226375899324367664902513276536505869174758126099212784534641955021684694004985601596422036847971445060935412174056833008474282162869738152697266652484323194015723590551333896922864500460403443784757001291532704412192041437158760131163567281799855494960766676312420162614191604570481085758362801793281788961776641184349785866986806185024501284129021876772874725182105323192053846235783507953316293589660888368369724791752202119866855472782551088902622808881977187556085386460387451878907222691510859653873202598317678001346942140675075767082898746350935957273654503432365530338468022902903523863289542556651428939686881938723737073683595573913438616620867311386445079597843778998360006784191887729408178484260750999001788697223739884526384150656404064218472840776991173528536439997977833776567564682954767845763534893021721512889746367543414800757282653173329828043897700763653625236517810087462640092084269493668747243439053086112516019546209121883018584739943213951166800812897837635232590646740904571178539844298075690877729898892446532806609993310277175925081953586499636500347892096336105374296174869296862859669661035379446559495244265119467175028941818127517869717975752769928023719628920628551261836182981771367535879224316898847473684433960294056817458432745637854913762522688636042823114938631530729993352813945164500849099040345011594295878276371685409249072788316066873812152223134202454133536793982738650155881398933511404134393546610937928336384114838967807847546108925445491040852703788660661017376174921458214545014493362622561701934948506883037308774688300338037824316169750974414715850209297181685330586108938147050476995220460248384852481619625549643673440418244048480534442719293420110664781076690698766591126450221982570316929411806017828364104988633617344703286303408072904024568348737606766353607557608576516372491575275482846863170624093923258947269400258516915315285422381175720974950237506993302733963011756654478277906640860425430453854145222480102989340261263060566958836388927654665607859417723781730152636868126581659292054284431967479243192809817358293497428830441618970243570263236122822564953475250847039746079146853785665691840663995298747908573130756050750033638348370795861190787239844586079711969078811176504401900484126465642290613655021317485702449603717645037708209697002843212406384893551318384480846018511306363131773801724248376631714722374794462756252583207842563917679585631586325254626000086997480252144527883130071724939685631639417383585709080656394120714429595343569426681384733502355653314200593186554039226070742603880465725127123802854260532179737072842205903603456697735899023000967675280826776648915817152491391504429670580106089938722039320255640702478750536206335633735038660661054035694606276493486035412343225766646728444566662146291323731825319001786120552389904763678791176374211762513552429450677615776231843961178807985626406563280733081797485079890650992706120474051813792878316665318772760723742496358194209206922061220148281397404651000226874880847093271514048620382519639552189946137379566185741317300452059903435827864205714058336773072249089769628718163605981135803248428284159517037315503674393935547528900912887974151054609772395429002577859907649552600398362991761128455574731197944232466840965477250271518151455473739533058942457716583624824412886757634107223889315736268841613535938878786538244407102875980493285437915155759033670164085886963412512963456359788796427750046357299922103124147551911070873570680684836893361546352573337566150694630334497150645212147213797193425305243238087897119838211464047029410163957469367644245488215956386853238482897609971341094820002432424601340303713606348082010118701604032460001392906402499330044407909923898116166022200908545084927494044223525280851977210760515912529924972666823610968594947153002638834568149090928523018394549100584376235833979554296456250840949961689675125270048477596302357770092060680944995998927180843423401820925027442827755133191119669018954179871829987611147576721730597779766679603100820695425611284988197386369759520029374487561952100457824316330651572880687438997958441393299808694932742148852672298900467351833201972928445228425297419771801427974275194140781616823628215974905310787451776660585683783251258454736745440601337459325750414099117843304846332095138807199968679755502041089553558875360515558097053632228177633290093632982786409228430233606299946579643532062601409405532266684501946501154394608798754352297891321751940604703869245599315729289506814657971763254758199352706596079701717709481286752180129494533745840242597692413671916267266249040403261511132126895602319074902095522075951640786401603447952674172818137656809331867222144998991902905407621872465970366881093126664209580501988305547623299179313385362884705329593509659035351537257496260307089025308428328367243307734802763173552471519871300779502309002975797772430331686645580864196752606915127400112702048540771998463787563750313367662097878044943602819882444222110961887478638522598523342450604994099214788680059974908777929608549348587094550977012452157614022763998073541909904716701713866235867625992053853709788597908933391397404002162855870106535950674124690809821394780992656958215737219444383914044934119422305716751395218833106575691544911249536085861424425220402557378623694615228669971276907452335483625005215714829459887104590637622968528820347535510285468363984011169707949558888922060549709883610280658521510424532154343110649100943406213403894845418618839100672630189596250530565907343664120966629594470087318658191851984266551887054352339679140321419425651172521805251965831109314769163486013776155694559357293481565356416811602220138601747509888115936894513607887140880594188372530544920087101118747742198286067420577012825881533726681749710013439222698320907969985346340863682901252165037046852066555386463239598001489108114632167482565645177739393020552219530649561577379935030269607458775159931818226433873803982589586419268177994052725354686782967139170848626680337202059014345170207058965123485908454970986304514563535409715729481118264728350392285634337059721578433154575983680288719024423931404214240211624429869852104069260188147160411229957446140011675543184765505024949165987668605021028857953658158260316462100192477466544479035574776280009911632206010989634420780940963497720800113287150399669929526271185543368872934037694807839133006635323090610626433605178634972852087441206629232526428792250066890864518931804281580541697419189387072980236511268147764891702158787251903718761945296439894990060692240125872920509611005008612086928393131311394323651617908847499894439609320135124860970626990729307018213151165933410878038979268217574170786913214586776567302811394395920540591622003256114104655078484197963480980646726574051312245226724494388632505178668061251728526698992069563728180547677558368602228284318828018085953734990644531481532103811177562185388586695294835437562708666522162044560291417960938183620569004536752083733758777414245402806362665057402550376795102970469819110540059240698757414701661845671847403542860347539063870229200965865850940184029714197940603959192131415104622262032403117837172326489228359141095273418242726220156896600019173771998158468330960550674746506154612788058667272388464026265097624672683198155222753450599523750623027820086592533459619696400963322911125620174193341586451653541592131734274680931263290805312515620081752451530676041431084916666288195135358116835364413364986758171939877151432066205243074809663346805923417227333206995817848344054246779657522406186545527022244682514553015233260313977647144610549816585413207730507063631329787665391632279460822573691000717628324205229069526906958019400703276754135597832931492082354717319870427334331230002254292820886774768719187736073066807767434247805660756326001205630346294699767065062716700279304198929598995027798951543446732140338581612608075152667641362457696533446294625682781238361811281102645484497087819703444245368297925985047022547877623305725717299632996919834406976954242958521565029453055425253072008338883250587958171099263325551590308153770320694209505370026209026831498098303824991356964638409615716158159613024056465137836285677780997375968656599837262262291134430752611022271096391557833269909744571383654967266516880395734434193084914622476970578556557681520965292262703802824283273253539240246285911478506316142727729416210409110422859488260645149564038441250702168046953644528515217657235051143017039875094172079431081087947272675221486976012452367318286493790661649509271339742171630177304650094233051098377883968074243625516801497083604762762694136081846523952671898695919907119882998117509121720747335954616230975286033031995615543401649819752325068951627175427306635527340874395948812450755530704593999308590969070142476804202022747274111917315256597456794265330749114287236916763829203830063674643605886302121021875581285189866948712487625821495425475389031506121749665729259651493739560909406075221786485936661423203051753175123179780879655254519175589710129805986559005730054137036837337742212790017249240058343400730847747696925656753741387287337471493954983325383451200942073015941944921141037669133308873708597406134240776606332149448849677773301154253708544734507271081448867976994654657732604316567683079967619376848962476663758529639912204414863889736699196777474553189210421731319861454301633118414607808307234542035590574190988025004765439398986495153031128808307137098534603441043551343914408524881257916956456384407959406845217940739305766456833328086759192746723207782165519785892149306418580283975290814853608635206078897085895634306739259573945341207350214678450845356916011792155182631139047804439084112388203789338469006683981379993939633130066960902699901122366170897606888754541072215479166466027235189657203844532529641160918282319999298539343070722658600411289634102347510890892175686356019722811471591477730220341295844100656090028035740271750130332141588664370189223527118073421090268124714327280299622843355308754506596396836567536765568761361373591086417602306351234369186110925878049821615642555297105430581644384029137988989684554455969650418577708996044062705252138418244291824424968052290652720542616121201136505299312331125922507265346767793177418624550013880352252615547975524184708071344755266149726487668522473997332820648639223271807677419583076683115297440803869951275160530981600324861869350929391979386256634973063648065991006297279490003867575155652273114979180339074749744464803655973169742050450653220086949970069073805818813321801182978270203749912298964915025678425622811786479591734435649159785568291800519543150683500530743009370976269101454455337754921484513199274859478388321569553388816306489508033485228549669565184800931627232347536016204942871248635328632089994167832947996905779035697460250135485019554894465135475376217953281649342561703147747461571978333794271726194160614913139126881829907120367556487807888492430244856486806309784204559100503768769289701365244087951185928086426630594189484454518922894071927105320212137255893745206191046529706799381888050186875959533894467913769385203825751293162593212892274081967657101489720552981492727252420104168286452716378595604534356630830692657483074862126975677560048855848268193725167472345093446334757365825875381172138109017203423357671531118940592846009186279252168445064242693570816821830194454860210243001710817096842014550262440631897732950091299709792268528105357664572137397883180748457006862257548581959714452508671867457729314582483112182123746993075232161023477062038528819739407945891957428204602018724599074207383496659337531224551920746162251435216959821827642202941752120918092828106752418462722576314272285134898554728620544321247071304072402388353343889154746836272845057034643015114574605260898703059336111556656263700846478845326014250286384142617573882386927496692710093815058027360463036335374633721756948678178850754519955635944745391005632087765007466541253145595784058073193906957414987893068833609843892839416199994794139124153244766539637891550814678309907282767433652807921643383335488755666001442956764590656567689477912271665796228187228678696471974221229531317467308583749126909553567681011009491180823029334457680362776426499477194442215466324153460037630084479377009426808586876577796148820349344906997342260130867452723865078066045653855390519983323308788329194793527663112725994646322976857452021251001160012428237435529685968993383482982766545560728526606879468460965635136909670479280912835433667404834879215608886192339283598438916910475032604840317266256585463535425042372002360601074140602605537227831207696626940472488497839785236908623816054005072242394697264789763250338501400603091570366581364376095710314672719747299625344307613986194901099484913484037752601263287154272524809416350677182809508077091583692985630316328940701354717857296974219133940424533529626582452097965529792898341832530769190456996587554627911373203462965815792568423340849814653761443190752943481589122793283666998551981207438036323673544288905189285129328552549674278242181876694196932882817735435641227092781288429876585559366811485895034190468633489316125214361713013544960361343675991885862492346776459837604900089409609811552891473672172707700391014530789741818242305897456336797062838912240471779146656177721711010173034920049548890161772239441544286533254383555779475913897961640086949714484296162855498600700659702168981420258456460545921960335470481823896351590199985744641532019063583230033692590918017755281809161880436562255736002534828731643181996053043658750976246297529979014607048700854291867969534068420862623249200654055772069497517607258278760091404692206150603935212269568416589550122128049543521981915646713092966281862695955035425072814247143294924706269260851739987817082243957821078778413614028721324206954064855482467407195599561986105495544488201975512451785124890553188066191774146904083506476096299989634955444523460025271768837603791497992579610827608203715776448187920570902115167466065733792955588217858618772123881976297782923237843437156658353117434205957015536435349667450606871257112928766531613482920916707325183791455756824128981149110302887229291886573098406605237957137067733344299577214344975082434970798801710604670778327911023979460312876881930941241902655269405056712932135612486524186906550810410723398850229080836742975901181171438282581362859667867355533355969007971274940631754031836701153431573208938123370806564795137767608481301210703054418049050317784872603398465195687012192031503593323876792788606307954907744884368423421654450504955269659050553405466932261413588756339109278794861271990532973513108436580086005859756140313951308423439082644236402887638785687407391024264488571833698166816749731993711379992421365287738773157670117679713669291025652826089954165874512620318815963611816176798328421196608804396051304520825610093161997236717775897028693334774290358984609676042972719529707483602321741404862417096602192095438089876571086046522720268795640660687685722226986854634695600246140261616613659548511710088048647304526544526574726846675126629157512199214762226541769293265521090405624845628136257910498926351719392440856172355668684698526090379008813298750437284655395318039823686617469684957537925038306270935378573458390490561100128295119926345705523282144790602390380517311984208703060172377896632196629393131501469616804815182255534328269941464387455077776830263167810757557055796793251574602365820962346647717815075141855192582325313001158711344220074578987286290556795551811618548136658597774914577897053992595691217911066871756342711122881047571088725725547037980349087185522602822614008704861271388504189549516045480418064703444029138936084219300064982090550551281086893993718697591797611037167417744058359145053907488088351699627949299088407689330369953137935897306009148131860585474029215937255577858713130836815770589794496487744173892656194382753162931178359284223623568714467418049933404775944529641624938406195420189865456543217340988234566869928825837780787572679155525779787529452172052878548374329521130480121848064106256921064122620077679275052086994483265184295474292823097603209878506082085023885475798695606747861781279096569179606771905961274250051349748016871253462234406788024488530070441341272632330941785240865528548751316920335403160594913341506600909704709662155170029748186629019195488088738761199984860477808430733920031347064748321279067848290531733510701826894386033085685197525756943148350249933744962074728000462907720508265138235519608997688876734629689572872616542897344455483867181756134623987665804395583916739291371303144731911249109340912935500616766324540859349294408039048196071201962734809627737316356556530513288058068639046117318807669949863564163950064471762583252877625357660591019259816020132530662560119875246486498569983048335744011500699953667002042792334778076413358305882949825891611100926643973890635734264412066888717985787220085331483194881284040785306286680701703238101816319983689909981315415268365150405647360745577674520515009318536020776030858270114521849441193225613774141441092781509221049601855621170452234843493760506255002287962902091032710547825507451394351203610257958524366471071834510455677065151398008892941865842504271578343908523206427332439729339768824628938285820041481018042455398843269353135943617599971816870804311577591911509415937543752593152184672191414557614603468206141104469085091673879111628842624741956342877107772515330297071143318948067233919403131325162043637332478542820895924051109850287033711415878495030974272331591233773813147941849530914069297048720282223845438704372330858174372883396562487694778385272092382818828235574908638094697629389872777562904122552222023287688416068673183573897367769397111045692842701801796407427121410927929374573099311280028172139337383423897789775252861091127872253907227285936227458392338557449661802741767914662573152795384082765561456602757115009629636139940476815352106775612704821332835821789960262590234485591354323596318222821089872147388793056003589270571265023034405136011546035587046480267593432960187340749345619166686731737518616705884054786479684341208056281733367468135288943187042550947885042959043349050113778524887249438662737413560212236952013757406284876883213357326579465206458054034336855875604563597156390621682626941700162644561549063865968744588204444777681807070642594279142582377166718746073050695187081886476902101172259561315805472992348149037678529981678932620511039796462758370585629296674613418455248082454575772107004398300519130720629511020696239464087269821416966429096953307963280842172478919047847661467526751968005224455020002497327208481441634182247068856212231465137370227912003535085089988223117076407536730050932828854941513564824006800929414559124069886987641186269334851321507369760865695025491642473068349501282478221187159484501176327941569791356831111843815654515918903274302198033883253744716779218906338406714970092268096856448672944398208761066902561108835739128004811834796906657418925539011992805387881469498220767972617366722981226227893029104898148488362909499755550309347947636216365803380744489453044794684808398286853243955575109521332826653271980711912812010961557768830846434691812372508438601227863372101873095668319145218666566790093520097772517730446170244455593295854379034834608957228807819802933743543675381773711179365699714613064984888839654980314883074897353685309603489459580650297737467289352919194996111140474759337711804325293077106950520032874182432588742516428995069327991571335193581587262648758685478604282332000918597319739948359878307133904541222983460561592507710398252122895366924849007985838684938835712001770122753793009387647240592969286296104393140899849290967810216346045731113693345001598375008932514749406042682619061240114076738963385626030508691021743818538166626941230470076200491733824050896621869878559034576268487838587834070039468565046096704181891165439062168427390289735432301076190971731433889256365122921371795467464165880565230632407235970745429795674595266236847539416445025249325234328466114252736178741463145326434920350930707318154378960849638081432882154329638559524594761293874942158136031523375995441578419221337394852570376625261655670273709865345611693446337905649566280542183340140412457277261893048161112169900442479184165505772766307254569967953938753788580008420629160060685633191083163344887407275513394960840855766880397717124012790117484518163265807581535905365867363308340620172263988954285602371472257973152610773834830293202526934955144169242880004550333262529857389804461618094003680456734705543704941933307882939545336726142723200318375164745944494591482356876009434624768998139192244290783180178394385635113050695867816460934794115927122924798503782965564140763788768311176242906268075988143379932912510712533474433945418720677230414333957865652519147858904775154630845582160956548393348776464668996611450691232310691188222044058784641216175149807005788993466435276753970489375635677527976952332415161998413518780385593147176001925217867184552684011563684128097429148937202629726615152843875810593338912549855948304747425078326754534680537644509636112941743658371719483784703623913873059477523970555816065783490184824752203243598709564782079874467217508652636273635884238879193873220492785933456585826212965076037253093506505910981808732508818027460106264865784291989700103866714747667879988780187820834516469500764374937337402375793930949413425241798606626023699332473163423698633476837644715165841503635213938211035025600608313510752724134006040554653290671930958283207704056727828906570399069842525958808899557613944368484306617105312210409770559212879869704278408882261688731451876907269067936954023107093282678664349387812967441277941578397029464375927546594573389727735052936777661583251393071712040856370467279785744304228118447620780407611273042706736182841072679626632646459763102343710071549309209060265976371504667041659120025738981673085875527408692829091841808770187994003219525769186428201179096692855931376049343425502708386471509327493500373310783656556189547615891987904820356143594888880329395534264246728893701683501459271978259017295401986450750342427444710847526543435483027334532346964098073835723199814502425110913064113240895945603906423573473090497926310772136638150447374139466676934851326354832291320740364430262651978534004224160133536520131451909619605806052216080462559726680899381249727663021811052845334638220181747722797619007286223198667390438685031999786139269096796720444838083830669063488898247955348836183958577233829406881462845722178004175124625378148826581510190333745988010577746824330518447185645845176630434261921377384893602275787500162209407551649254393932503582644761967102256860219121067972521169638739989345098734305992296631215490269432124493310187664595813614125922213857966613260568414108624504385108870176632946441202944389829792907510980514452681625714237048066351259455963733508600090617001828612390826287611422122357487927492876766784426432099867068524483024785105018373010184845623355217231941074050733663361208941460733492994970258271309663843463528056444501524246945409757648868265585554916884622550388685583497774099384557443193106462404062949203665782824828021895910470341892531992833937288531039195044763068156441396631476595091237274571803826096672273961620784821714554455394688260159246596577483459882550530140068172284909571608059370043401893972693340940661996493712206830041430848862384112556265484104084301148678861277176278342940801709260746669087959950510706399282420785630817007341374709897054666098364748459554309269598009667038130353751550729198375812986161543060476645367945266955882415898718692214272728489537849513196747955832481069371554906942583928776620571471042680507513387344015825792702118743795461062678561323766475371355074549389309590643417075782981697585192534072895456069262692038585077675826492382231127604177284908281596847597840000665869707044062269037671341742712428123034098386983051904940066716760464835706511564488635290869359292737586872655270310621440059439376859439904914796049402402578389761942863245291196311718547585755895565274474662510392820242859851551787495994121850045532761170665265539111690958720402531102634570165726457046260335270515496783155801470539926953914376289510554746197072024106263370332766695305498318540839870577852063887632341360727360522009660971701825772910087344242526022892422995073461273759960683431429905706975373857712088086483401210394458558395763911100259215674733973437580573092371170197807550477861811202047605245705274664208632294171973750080685683250632768093076768852061638442214072478357837617933383001788524628115276847211147852629508852072449330556448098703474706486059410827032377549039620840511543620418740733187054068661829092444301271798766774851199072433004398715050291647970485776707055371133920395502675471421309296656061935443058847274524346132629729035166374648829972572960386374826462117003524013642733757951531255991749671576848179157937638090178033832574122820091040363551366877494595366015818855962546415999170979608059456620613923322120689934292911933540507524914994661590773889912647985585276033363757582740346147025603522260208615048857629793664832381066416869268405846589491405612767887595565061679774373020618970839466069735713887849392627918352632436034475704320513735744832678384194958398462779684070567790822117803050291280279592263893855939931786697649703024265426479857559784803959288312315522347746952320975375528774450220862311738287968795608292779357002733434918279313433831568712823687834497998924663184397115360036535251466844795783898794766174829693486949573214569076808088960392841729894940098085657529304891177249354165919896248415445774649885217576786203550970144312242591956614435117507513175391983675716370678093270704863536481375888501585706845654154711588219263636149260525020785960131238419382402633403025240471336800134546218214977047505306397713542133513771755440484351870300102834505115089330663001075758864611559232580698753691359190796666495843901107964385043395887381484886878455287997913160305146004829404778974188418243098093754507220914846542149826978488858451698458678828787792618278048132064820078539341562576223985673209195428443780807960708056077229393625011634474226298206186744527355921378603048120105159752877078892060175559214009171140215125159199333637167980942264637188574226878587278301390562768503232650244129081365193457057215545286649062340971346397234859422466987006185137477260973935803027172423903112979582787034493881077112206766768764432236041013561451750039659967507246508830116407204754482783297260477330260654910701718936736072974391292343948417041293313717139869345822097633301221581736221410409528231767147305914135805356490518694708737252273398652398621576287037961879157961125587990310624740272034708975176106301985287602783081379482243009305639358621743551068531126564587208690977046681907068167461649432527195193585545424162028508600442749744162486155964209559651754238639545449379761474497451639576199008187123118869704821114393720199141622515389553448954766455315629547860273957266196885343750856109534866491364394638760243278637247419152775719779163234977867973111173627027504891398434576800716875072561220362285895209370874269206042818307293956747614773023674178502677126656237210667555932128635212660435033355615793243082947224196674225394270284515618966127086601917061503047145001992241851690953292053653472153793068332398194936342422394185352486801466740241739856336440531418926600501274257813945473533484636618476573934665137897444834542974671127181662578017611211327564677912913670313129126573774137169658237334893137050419269126133484222615326890486358100433178363036980218701909445230766337094545673312511731838303536229598462564783422253608474792603216024508942244270864812366153653009967879817792836018339518873161456578453860195775974424143202518617961004419474530828390960306130930319875051621919890395565144511076261688729163404145970359268247767292876371186421143932408749204923249226738659824262536111499093152733730559789384324692812785628968794934617236755912578722844006426829798282595092595034584219109295131013063152305326306167206881525025625399867443144497750580214683535319793837560230863061381603730476917345227588688784450776206823224115055845750645835775100088302178762822000109464217236967088755500304010401325031825911348942008067165688971928463446395264477376169497224145702267325031796036928001509830172437414425707741673684846478453704970305367865355783817776176180314207527759679684608550196971020981377825656345519674252464898342406304393799747280825305261689800410031463050316126138284977799661482802119438344473324428691537080105028939157151164020196803879514204706400158947460805883673155909154537301275227569050864288475366756619465936854317212380729220176099214164746858278928172122891960320621822145635477909624722047684512779352517570746856735861983554442322476245663445060582760170413901462772225546648063548652410702765446018432405573519862628405279164163774949144244817626047826841032856706113457946416133621722829589447862488651689473349102585132918789932549557638917963538823246832953023162579176135211589890583780133698824047303681890759279781943123488471049936426183608056758617905325664659828356213061758099815313976198351947167081417353413114478594230988306687877181255639397256852049200213954879236032776333439085675485810029249724661242399694984276308508282743657289407858088859087407181953881546754087374519336904558680304568423203845211768585715767555065848206476077195511025836946860304547837361049566129409241626994450461517939900124105687461861716197230587661928338776723712245781499913957183825453933038963500373546767427548513131358936805529242987415554098610530714272462973419592360271175105476158259326630243411801467552353780956110873615026874194811109307861437346960773668335229683096319092732695635441502829445660223896089370395446280198749205185756854283449970556388699726906991824890689304806237949729460351106545008778308315863619064007624553327001671890559406247604953923635637806009483144148289040711914060621709544107660744763830559575340613495649894372579203673652799591046945432982444938715809768116447487829016659946150592897441993958225238685319077078159944595257593161099378486513878399025081441017249116954072474797551950864814561920896247511254730166576773810591053644073092728340292052245108433633565694897501974164076326153691820697704099733271341762138236020087316624699419196483198285767318721024990566461633481324054723877695907128320667933697424622682123157632232765250819986528757402704596257942829174518223095714070444045612977351337720993167544529259714376028862635987389942416442341878243484994079808934493667083626090957124040042765239761051816083281833537035974586443505440816524049879378123600289762782283088590037668839516507944439903800351769265935594045556168828924263360821649456058801079451782689182332442557349641395014331584002337881494515651864676164477028084985076255096557369841498149247977591658942455978828555696473086533584379554077563413026162620061651179708768532280914426977178677929448296123291208101470541165534059078404474705053307261928521512757738130658772411604715441292914276937755171877666426053128963413723030197347950270763652370123668377905103930378719599188192460409539889699908492836566684035740843318783527237484357461993860087648817893004032331102068070871588073826268213712419301466512499864802759817080881104516002872139089957561729677785826889754231529200030389784447976015447669946690236429753596802016791097942777781120154874702558318857252515104837699654067906178143013708627344178953380704147511340498323612045685509608993678810789885247752813347869507785634132676438915718892243323735809170074410045153326790828041944005672697866236675882070394193997642881594642120756948407447922142549260421225650141244885506417420697633343258916665787804583702780126421305544148505313206841180124764857362427332491826024468013327970916868154654040100479397284755360372105168411672825585296505824938867215904629794718965918031394469841984606244627068817825925719530490250879936129767038066667485648524343626488434196257033877809510842753064514538359566367103390753806907948138079812236622799086526933486198887746295912988721558870965695946560600961979225521952922161573899496259697095214532698408472560702501563742453889320273643936433126367192721264295854112984409446062497217665527857109254076186639613476209999467509556686723801338877744219505174428089208146927244007975592928305970269257981474580134235255275569446434282260622600456495689209771193172844664321871381823399002913703595114553430050624290474264883835265176402312231028336490190961200702611799503569991023459947028724367298961201866702313213767119645732462778596293193739427964957196681430534484662679778332341868397893827155272051325235030595309144009547572007402092907385152356133596634019394953398566978719271082435435893009691551415772711483669537752482993089268341082774513564424880380957276760977740517999625093195156151132240816782994298343637104708636704072091171396031503569363918271436276493052843937696708050510191783779351116043040467822439254897614315373108243121489273343925654545279284710632806201859911044639386333730789001495815250711777832231308632821940539059886554080960218269505585858919556934975037456393764801715111364080719349926445933122679791493777914964777350016991609443725150156040771672100517754319417037654171397795081705386708502962751290591637698196328225177949697027178443655643700576581737425515964146329304730918736076647262205674980465624065260663536062850366521216976541334100634158879794257283146473130636684241578409878643375112887576716426531241767174974352242014558993970394231750780272129573816118131191757667556657221554080835547214339189101028244051377170987903449411429950445465127010196470015336149847109414023116577032015063106772436329722128498590999901349847680138403591475566000182603496000772511594008413072346198638608155153774432355543321482532821235351808240330127416586811228733258049381466351763330089750246483209796831720339560231163218989022045576855387625023171110822444727296147197168229323058912082274343386231913740730134271669361774006175650768655188208981931316394074498027297430408006382115545092214156895309684193934606573510254707891895747224230010321618337282754262906368463651880805485408824220323715008584309461879826981097878392716011905645975983560440507960743508797289309011010615447918111096151946325692958938349507092382690232089869008055551917182733620521134685247083344130731148423017370323173845351049886701787080975103861486244526449474311887429053084806019741687659438388958077567609904555749748905997003220769964332502714710109533125149621379346656980158285908815270864624517321119112441840382256491216399166948666757189891334977516626503853158981943720469834691552687637224474212657839900482338639709683714341625372192260755594847990398083679779971306870465240437768172329867885542462239746377934775857681067702132549096041466910093658615727397477513798309065247976879801725556474453624420623646988770637092342063369381966358359138168341829551407772929743204769223274346886463473481147022566930444129779694868121237308526597772028970527855504706043711007229498174439318575165620949144973371915288699376793969169552776836001429728027802625857307062311131157114441510260642760349379421702846228097687071271491252591292336507300475071337721905980563871829333878207592415592010467274273684811605972210354855690997797898632580136471245639985164375620771699302984989844440500565258520749798151500981634366484438618172374753543670749272630062944955164568259842029025059797835165376014838038365567485088815055376762751634135924755087947867966665289961282773095999969036684203615224208857602946316321565090115784690603378050326967281868391018376661591648216126964091251416779458855790904591932189824809264967204316923051397631057417485519909914636467950638167222843997153707188092414476527238821097647583964798315970325585232349608254576017455001820964564155384711800237179415527308057998236653984419075398765734748398700128696810786860085692066185272624149469701841344783173324195334665383468360844746288384727903164820290339146872446837815936563418819830505330555179503285283123208158203830117425928538292878221283849786970179079048469944123966329419707705446726055677053771841085647706805125105265964490652774344824073810944026203194212286889413616078693513118289950811040213171469730642228106520836173789609855862262128209978000260317665525636572210878512862697818403187672298616511035978274296137728181859598979422022217836141557803603254096556261167296233906688454345998476909476768789924268452237677385006687045393044544377076737202655656013903013767926210086791995811040575610638184625300285086881351934480723484558455343896031116163924155716781300384359388140101735632397889664509237708237889390573011159115402888438105695831107993529613005923014164876041027688156914271549612437859397852389909160434149441394923938144033905307346314610000941748514405275023728337890065814290551519490064619763723760393180503373904135017212091452352374242672208252540035648117487258165751333256343567078076034555669803571411413162302157132286191902448140929704138009348931170550572912832329093102373724859169245302184657032159699264809672438035383091735595467639655579051802227602162656158065013487081159433915095630119310437830759195494435858838398237389814943414661512143799179490946372408852060919738563221132155554288596525806452795540146843056031029104730053707339801233660676691819785779488621623765415580723983507371494251283777867187419972213646026880538627566350882359437223858990483067660739799747809406107703913816510278790730301125235347541959142558918896560950224509194199932830860862368403891345442517413100362038634579035589576396716738761106654112260979787423831920119801839113785282371971603518934623130704833330602597640874535175906137120000465880382199830303320469137933710805746760275367201337850623548858611721881951465161469956225267767865437797636703044380137830801622461874682819719773952330281758216789511317632833791436061619628623570777475572985427586711983160121720726809095476750213794047206246254077774882608100522910360359378388892149717580536927161496182379411519871432729869135655925967833076621956699913512262946650871638497061444806458286735253942158684595847681153539676826013116370461413412004741176119288621447293787698635669469015034113980413405680094750500072535181217097747092171277201082205512319997382037345578353712637082255347001200128558376307303264262640714937335350506848968523978647152887203806780105765590607501689847187045707776793106430594719660974545710962011624982061325034370773327992312918421367698545853954530109910596220520928988714060518889653305443444343643452291677772896252392395470983564103188582584821934358733907500813626977821241092440465639254766599112464254985551269510639116266152679011534183394254534751149932022126194603144632111682061706996026380049519803469416785565557556791548551979504445509417882241695661192279824888013027627020583585770008511008706572026926770083638424330011788110434806603071916944036801126925433476059333543983495298773652167540843308656611454430400815225444758872888115944752232880451622543303696909038923522256636101229504528804110659736313313860296340445296947555646601340492681474935029758481262752163623836282493170348393280224719041111711294975329739444384976702052792867856924305003103220896006024409382658205679125901092870488415991191613910359297865767535989671633149431228971437985149453809910506222710191015950127987834929693964774244461196190061674837590688711139338757642088651020007831226617700845970736960185868558445339139908040817038136421930132877611309270770439316887774431805606760366421803791036398657173298719459019417777319502107163327308164795088773787232850054235542856522433134049142465332980656637121242707330698788182844575525249051440196940523034273814055766530016166220024511901576098327473602025034099506357964848771145745989610943684387087806802963970428480867215754320251363673365797320801981576968270205579353843405378741690398071039452421703097152571550708253611566940407473010206299383771092749854473599447561531951318749050096282069854784077928560916613895983639214376930389873777045822127956145210809434218310860036087739994703254198218397896499496026690743511733944304407334450906755104339495479623467052735660704248812432945281681387619158814011469379250141831208993468515922395147701854437238896698893996316319771774878572018953256757173123497146796482895701208663517760240994317101049668416970410528739614632543484410246970641442147491845749356891634068382895888432821226058719277104390397690115588113811682271484795877402695687035440985019455192898568379795005411962123527386082477698615592262033926553447079491080938442522220414556638856916515373726436583876503734323952084102794264384218810962838580383416621307233271324949190798682641719123555709424659312081133648153520114871782143911067574806374031960097870368891465006460753882576791084650718214199042797744123176593401228698562792968397881715968643449719915489398067504212413526465181906508146527929157863200246932889478708489015691171345643942472158963285133592763177550900290652692171958034647885684573667679065367256747378134888546457472271077820261660380643704602941871650873725074708002070263055439490768399633088526668923069362899698670788859856921319392679799358911892263548691556276541281463069891317605833655291255686491506707348418331631882305230175619302961270754053377629457901346464828296208128613859036860915930298505297396684459484118406621197658921800211578395348732056434707272823030473414907635344087456357695175168098950434390634814529349337191570125308942786253727176695578651631652749274752102384474426739943469937012148516351364570889259743118748961858340263157290337440090785936183127353325035653437599817989891878349025645775430384427348133713713621340920801848731300930537220587124458763394580503848717045193048213197115545888185358116256781180770486548030124781233655138235789216028257134420895829615195583419752797797675397099493526119222187647347978436454806977919434788126311895646182343754044248916230828366459837242749878915805763350265886774211433760084739377900188884112425881640887626784096333270511620998689757623747102838950160421970447343678936390218814650744689350892017436185689022480050313270663401134090378905949525581879821787612964485047293486586449606782120497843462301086971640342631927457746329780782985654727616144372001187151506751252196556329284699249035845313210244032526269319508160845344568088722509268588497710622882685413153149398485192172136997673082469168416716696377836232229092870378229000710676385770702532089075686947378270642702264458745675204163685523983391025661036469684119188551618215840376178904891026318239526450426395996636855866517394643177508489878342645581114201107860118653999210589504828313770396865405587776612728319319947187538505246344436280468210354840350529466410865273424084923746188443407324762229883997466652352960987943398046022043946276538912162235863774212475020687364459614651327313519482173827312843296445327332723821808854403326015662047314680697601057116104626377112720633044348976661088414089769889802400221390173070601572000107406205120580653931955556551328538095797099617970101803700434232367614608320282680268389394429866241842001189875838654378952667118292445491154783816459413687955844673321962182376084518731244705133991379023888348863957237200098594661913005918034326172459099990049662074375268280541760363555880035039619585655057093133499070840922913440680110595758259597609760078919872476074128709235629170519272995505108315561523902737344672488296632595800135541754803173468072914417693780660304713927323307029961376592150962220205151272817475545066329755735559928336889942367786192818714244895703280146544353062126576935664713905568976247064148796613897308181547450603570573022988626448909751429515486989512502232119132686368157974789549451681266863154367834140903999789537558871956005937415663996479759769810191836067486002002648244096584733646576568425738311662302849747279061389084618521066082271898042852605187212094640383346858535149689867195051308249257366027955728086311214970537800105712973050102006728104178549831697710006939316330027230830682265420472748861700564922233628194039868935021954707350124084145498715919783460169590489308541881222765754908344297108960958898986692212098610524506939648604431386327142343703039188167703392129624954894843265684779902437056275236814148607000480724486568182957438343548947789802283383449753062428094023934001684047002846384127136134524289071130456371451262929573383568878893346540518536195942730554238247137795705866868396800071197062013335748624484711365697078778605609120789406782065560883932444652852328970391221764308761797900539290655346447759582262555192362628891945431237940863142038815886356717471255779636415027965949374239978984413158906047502485164832904043875887539965861578725642285929623597947473990801257447707030692063691142062901624253626529991449396606609473443162148166293774433922053165013685777016153053219684315534140790068321136657564061533459240424997754906975740295010433151080627327071350196140698904407342498492703709905193313361487382775129201601245908189462907828079952783110457890053601255706876271289237477413423403627142718899920744240211277349384299702803509527047406105146603182088444563767393648465215128371689836183534280845454318842303185503460731213003866778562389058739317294829600203809106022654712570591211011176066690964304618807388919454949552711751482614165608687333292342281862813486857011055795369265634079650714533762013353383229530938118958569565420785995421711842938849879053457076777706178706673407650505750678819567917337968669328408105741639134159417536470571526290691988049565350471480704687545393466710567801873196720261378241040928443324337715585859506899634581110152547993619169023992550543919769993086814811510373754078134244023941512061977460560592097518015002718808199867863662407417782038232367154694662390011665388332595309410797488838751900579890908193230012593571995895490467686575547146121250428092426531472208115263182631899815164110404519522952233683232746676801329659906999966646139708759884876597762547890788231776533037478180806797642474377828925790534824343486244493721275263095195558351627531752405310888310094841924488981532230245597441572006363639783953471280014137180241811698584885570172632950546432092195721239013057095162377287328423834629741457093393268560161085254573414047473529659173112429105931726432217722874929912107108542803812925921349292771118413045328328726561280983644991088296759094762945219943326151795873678500656136223354529957901406730531744546769954084344057141483401012619675565824786888157450665495085273099451921711967680276413135419114041561775498273299428078365491393401295458777761507474779210003056573204268357886080371800815178188969934086993594406648951477548913612922939301059352091965677812789424015269379775580453617323539902467421045721447449287971354166161224892967519179648248362113834997003516769467865941588539441177154326924759778839341573833178329789939667191428928430429198414498148593459809043048371278346945392222255607739028167751788824734597273891362299747211367509022409144534055555078466674453229933599312926729083934759487736076225250153350501936905007380913950986725038672505702311987528283516273902627315254331716429939542414032010086997520438386254978150165474682795697711186872754263249107995633330255076442333977775852914425673295408285592106064793259054085550487193450445244595592275229576566025327254906616862949376226454738089669379621988862124764619913869835649505896257890730344123630600255240314418657674073821318119226753863203836957669090829019535598934676034420597889625405863849453445749782908200298982552778653781339433349691609749925334810976106917282919779047282736526662793948877853793233110603318950372593187955971109731190134379518347057916683790645686278525113825033052249684976965478968737294953958438477492282968831366621078811034115079637042384172050266874045588673883875520731456361980009355836509576343980795185436068883084954691849894357636634265294532812202915197644783565234317984696845000211896129822369367196048701430355340291044479498477054219354874346896701296397772537279934977195087658889397614115560305748204718145805295570383342701194998071626742702751099862142694795679103688781814646260526964421016922005932111030208604543652727539511276408549984373393660757915812434530386393199609930014240412662316272171287750598919458146008427245520038317245013685556981204610263713734718796820197514738414983141379811022537748999325153074799041698321175784572872569473323454035731608465744538292838826843659929315634357226307079447637538068295427834668684690262369685151411509293781381142400444465729287979498413355071924279972794367902585715706452607016031920833496506831722624928319504501633181569509649389816797382422646520161063560804435139394875858114731535386772227675813105901188754269029131153845099521294529725585311806186211178523880521063703828119862368149147155379888006660240386294292304588284156526406914521399120453315811638232929032743868044034951753797394247389179497629137443413257025168467439441180730320846029261908836666232447237888772949170452338121366330182194039200334122654522361841993915982417171599487382986193094155506522374653487244086291353399728011097530465736093610774172653655466634150149316898193194561452351193797885541889135901820675428821527742428021642773082850129518996922292036204451119250722829783133597873536769967403416728310107651626917561000363338952281474135015056133120587482839763344262828334772255633659706994218649051324256924522688621885988567188463893236233254387514798110776716971192613122474000010248554438686870703199659847178681266691018842749604768483286796696734733653226500011234877623788049642993410488661109643244488100383115825625855643050306378791893238412394200154780403241262050861272295963503264509591861005608180454283233744085399351912538525120673224602824118764902222118745996221182020124912847223507602007401194017612175671442217351348406270470431643869520028140028627788400731109470752770510247969477660823338088671311671799482519602007750978195876119990829670089326576363496164368700153983791541483933232902321629501195588878027121117759965500148048013447395676888554839831168359556096740168771279162061771903483084083323203191586251842685952532250250938203441720905085233144388034675153143418061232769166663972732899369021447611110627982797358956726598773084303550955696582173339836211770958117171289295068014016745596852658159305982780013186525981256821416216027439894568483346006756416866291036065316475888908062008874779113868167603474588906641430044494865722540670469775837690328791204005972849877513657086991750891480578597802895976345241839383599429456726836848491716324878336074080832329747174257974014516713635595037150855926164865258716596228201605807054868400655194632067860350691465817916829942502798240649564266522603339518704506685417334550677479844759766304016552077105086510544492802362030088034289141010414885946348977489095286572364088834108763381863609002932147167769382352597613160478330876876408019724759798790258379911271151443778987485948456993308498748281402899908955416454441961575426525125516042548116792210166748671717210328839921914052129268368792498226925698215321498557868228996850767805457550532191431432452322033353985483023995145027009583336882137092329980401452645328558005149397004534660724162100097836940799552715664994566571639210072779877749272640521991639199553203132859599207436394729806917112159195722433705919159056704811055599019853968776641864596721152918437465507737507562897598167952952056697540041019429748102841802888631838300854612798163521011024001299267580139369142097984231675733654596669612509826391198919723898931213432967174678892840465313211339271389998607073162905936636136142700058525896472691217440547213443337956066804091296756591298234939928123249454772023095361467928624461696746063747130718699734331823068691127890113937291089801288562337280996144319576401395286839092948953886779143650339207212374458653428703914855224954115232888688657109789769289646949910764215205882661279442701942894565206413150802402858221110286941733621430650974018590671559166158714905314359864675275651452370999331325611903589196183371626857757149877668581943344219658195906682917394719683725964683567592598019543995926188147571711790595724240083063488350523376292943017917903242090567670169715552600425660182175401299256314382644385943856629485085983340415815065168812785918017206953284020785841649752391400677925895141622983214558017435512567160975646181944391000898888479138050763419280084410603559940061510673821482762153322880145712195805323525590700581660611846924608340541386352794536332032879714580524400336582243887919102248581737759627552688610369685051510262108174947539429330154494171332827306225058765177343551056479407539523634512995068260688977404072892174515748664389452758009938021088752334204245021551230357481719700549840396235943108508573947699448185137485090788826591355505692455709675912595241402790974020369017104703429760147751184807588201306527775748600541823099847395823584677721440283265586992600043035914490580531584802627567134831782853153859285738970676427478175569648281230815501180618063017818801455202254617040553075505627608348041695146393423699685477576568257681020013323283167102529168774821280770737410463459940738149797335300590770605340991188257357604316953813839244812938774294974550072345126478589127650479517037548635332444745570230295112667936800304066248458886966037281782336520913771932150320130453096341233531188526344155684988903413813984081671557706487255007733716783950339012789294660918341379407893013556470035984278108132068102779652569424933252792156944057890280659905504158676983608286132102158260606889863910272924412577317324089055799860533197169311155737134163639095397598752974318331485127208022809221425707351883360443052261884787898359977018247493248219808014060618743500877664182070497485633125356743263002968129767279296713291711665447895800762343829844601473568577715774945833632021710289688028384478003539389978730071270131840670534490607553875957231348409838533075946523857276860289131192463484256576304638294498273284593463273648727701696063741928169954631203986433472329554627334244597632623520505515609179997128597982626502455134899022407457709761000660332925808161395373417532227781991095930428047290858639455977655560447343686798196693983507890565016786866134741039905210240782878056581218299188433418570211797826089914809762430611781504523930427398706536359392646870142839342347842147533321706892793611386446674138706700316607687124845523742297230710220726228722457955733575418009437273415651590534178795207590432942813571200655199360708979161961297009537888604212520086348792967389149052692789760018643676951249686071545755766010571601271523584816460823365365136913058670704941610364090317981468568088602452776183050210061774471665149853342134282374975833504197154946662766980288888896517664840953603110197662443317662176086826380712703280218070884190012419121896763307787260283204391746113999465301538293005866403729811832625936656055207560355562567546102495843846716932779504672129800712029586504126606483977561180816004841513053999360395456204602124745288118683033251624903969363912770792896434026793389164155983795138595550861666354187413312582701567334660443318624781172677107341017223507923969780695467959288794523446949805641534190470195160119094025485880037924447723550057373947482197238802304720420060285296681400777486216284743454813024291923450121002685993777214634770952618894131523451383590068581497536225537418917905070812735327501446019643998194033459061497297645200110123328930663776155499628306699411751066635352606303887563700881208302224272427512659756577303370744681120903753357385886726521691960073174713418757717691114393819489862954930881726804744895108319912650081428344267865877363134879020005837949620613860502730425465594776062746081972474955923428636419454803526000768349052161121082732505820523648686795429667162786438132395415159657113590452178173219647349425210856317394345424892352155522958100517244458981261983498455100681636481105508480433200164906149120474012382661126494532696545164538580117823421070417141717994066233263684546775773319465253412050955910794691725125739690062901092197196945697955541296635046576097681896030476068424612358766215561916577706798339442278916136451452783162464313574856675711540515503751749492977968638885913087947039787490893839818475664227833586238991211995687419624149546305451358837513323893121865146088654893976614980745014179982266454353500896113496905009810964202987229347707478594549862363631628904148232139830984598255025666153680598380652389653157775440538347286964040526880324016891315962819033517581069216139958133525994345228432235319019521060430689959265776467951496657629728212250242612224592834283854927247528612365626394157871936469643785296364452997152326722037702224620167232992303860987613815888687714906801959240247623382531257388145896004157879855461963664379075109432023688892657483021315045516056458268020122001446632484621309660154242381198289971419007962521310773766665855551212495248412769814561156964727890734827821472460370634909307380607678002209111767548603778381345513442375472297507178566845270420553848067746071727360395985047509875718871574890129506960208909779215671451717052993745512103094903359761306775508075315243824934666219992407598560592111054807410574980187560991269911778829816288620598181857599503952057127993958101156461927327448053104355908999146348322122514806097144648934372155202732088260801258579090916413263193208780310124298100311678097765675552221131365187510368695616087935590294945376316831794085582046512599420752714891851826281822683212597973006742740683530886664245783715035055481548673903546437530225518216418565800323937124018608973206522066543603709469620918469941243082773591980420218495804076370129419549685275829555473045482643917806964318766105571070835345035824763073988666926420078156510133141080944228767393833549958116415026279239122914975395651895992356159443565087831096723745551897886060819601768490322106945542533991847760829795213584650226066329008929784371922648013381035096287912034963790604195012728654885069006918527706834671794545681087782119934969031322390519145835647068853789183035041173445180767254751624839888638628625859715939996068680580192051773464548810746713726871268229690100183772223605873764584426504033552062306930776592078761826628266360121186400506239004545763651366783213784323268965680129987932292821825551993944974184677390644328367036458373460120840791939489539568884392431217526987299856725181699636591992853671655736860756541421885524071511143834198863142596751241644188128692685999707316014020726484141519837242189814946013636785764262912561648785577378775330879609328652099137296568480639494773678648769512207152253876102333451819184489974504010812698463115397701938070008067675854286546698526816646980824458582677923932413235032699202700586995378850962900029433238643004949075221504053688956887959639032361091215689247363025381035976372277120174298814165662385359622413833979690150318578726425928021569944248251467943741519682517118140833579915975381220868197348945083966817522597348886745472356917309142399098433582506806238559861328964541639778283250891709640010366223587625367761805903364496866114926438972332649371826352753585669223163068497644121564471529377511756112013646173609216183477020827036894192044975388594725863118568208932684716610890474400558838199895238331839582338533026087328693460736226321600971490437755242614914405132179661983371961737584025036167259132335091025519459802770927983155125278900666038918898237576084142354709787547160133343319877201108751215859786187970717411042288686107825685425792831879200335418995700101255456230918223045443610954604191788892480728054859045307186725426044243962241722329856949418129410292031697199355793896008417418595898001920385888392999816690867552377444970825550121706023275569825770010862619927337864617076988695319165498821762561242390218392954183815960156699365713845497145252068172851985774292339456560691572387080369324778432847065651709656289852659243501368139239031167835497488835805703006599570361957285783979845313870159020868432286301089311263389693234010593415872750613535272496077938914056443436019824008325354230036849933298921871165756832027503491781291790963216620028934156175415439238817805160468250797708578095099227450318574599090254008799996224608070025935195476370942478150217652763326867413936691625777192826832534559458537712829922190346385036069374358906442531532852764597567244405322424277145950661551332510196411777181575559798882012667734268278880665215445500177466922216724063341340870331151750965074538862421789147178214423196859297447788481199686328471214573591705844972275096802335654889646985560807814460198714978620607039305865635952098519469731213055529547715213120939695951422368640403246123360916169915908108846140949859062501651970478779274436128743708378347366563642993645874598338780243142342658802707080373178531365151212369764521587480685376621410793275520198149194924056610080701521842543513570867893601649712816734782188073821406381123074799715687363624673807192676209485654613445840734185086563492457886533231798398356662365592224481615044780248608308337633963427751797959656686488666284577189247090760955316761481705365184234798934417222943980243138431483433656974749328833675776338087175248977536561770920997266342255797790239096020939167356377839372118625499785861910745702747252282597644549798203110276682829666489725198454594257106075388536484218006949404027189027746025059782146647284735544595714492098665612820711787076435234601900544269473774278644189586821373841094769438677787614411539060967287084753942756702165595919871268172210344048255546120123598319102731058053345095176561242527459096526799009001253845478300346154101193571002268531615349805042954078802552103656360537645131838671279264129133998004010469333111876493803475091724208559319190276991661481388349762370902394578132283234137100923840965807100165369115088251440877828937882350179107849842291177010686568543038084884484064334001545004382841276161930430297264096947952354567738976088574729365325705402609939360577268741373469076590137565020806732438916546830081963715232604158025402866778526171096573634451410065303373224516260417327594630153136352867084362549845658319576980352709960392542216782823678861618783629202264934620946347771087997398098703008710557611898812662623661061102033792058587034933214451232957560536547394106402789368639793872180103885113102766354175741935486307021422388052399382693776168591451217393324443164565613719913860250142053715315312018045439132466263129236447597290482397104325013592162252130919418922723655379149663578628736147422270460747031572340833298788770052865455118121660561686003495879289988731609346811338570994948537312210503970397672685841813347797929769568642168783028135803539595502801570456474758874004720334681073845564850408127665256387487840968530029932707401216149093093360354588754539033462607700602959561658070188697247423009493037523652127260881042726890967860057121338760144935003170965286013139283986434194019005174899433622860272536138665379210083327960519699476406213299489796032622375880386695140703992169904510662204183880759564768945296253037726566426528023231863765393349224345078309396626177054564187976513546931128553989419189176206055400189696683341217313969080113830058897359274347335443102384960518704949971340089613139973780255069676586903436391748150759462241480936194694048081413378006523393069847727262557573020898918766270035824073999561887066470155260585798961936796382566015604498111389673799552099834352575460297908618263421985759544883390683818924566496363177397868810578461252212602373402097080248313641021625053724608396184149469639619185644496892976628469445737422564645999699218418933082501051237298820937901028202895691774586036118810838600062562980905595086121830849278659472907887068407237758773492364986410366933865246086419630985350067577563528891431825001194378148368035110140290026872211376963306050330319655862857575115984296121677187834728701112116433690141722417726702109663768235648464796895963773960511989669529420086359268843354694234598260703551314899362725853361683657009475447594365556670026996243618128957337440744540352278427259503369526235804806795174615415451872498718143810336360478777352605237324403663140821047921675800596982914387578020898924728425115808325222679358705079557632155717438718563824904125821786230275584814784042942120669777577656141962475157624124948146725222815759910173921979595018341637853908751504150825052344658365312033802509754833111923591197481908203840583060059205987825047097872034429188861741861341632377021126740834466805192873232458253499472143155058543156780620401241704081802220803746616955687506799103468467982186935544711784948570394823265093361249813153435078267604201710106316370604320044212179175557824563352801640437440252706203992294896844640501875042465787423265348876438433905744488254665871947846770181773776852679584527413137370656866166703031075128206381229508205619813631891844781330935356017786572524513415000296428201078779836352078684492739022771086976908170938660711355911286235863315655363113571225646328686896856620293833312560642073902762193489530563495456225283986795671700473256078005232367495882999196219180226448450569880182567145250989373615881427672635689321393187354522200473313891225161490785821197789470568846338655397725437894109651016380208858552455019588995681298298813079361337837722129795417502234964494786240156515208669586779866707942807386011976786879675833800550974077084228456711618757366386790039584101487659013673510725797255495889565970201901617759165979003338629873674921208431602628674396913928872962280869202210724993216682500626701849232571290531281785389728455160944752447289602921562467509923284272736520419525477521670331454245836958562061935091817183337331378642301216254660475592535450180723938620044110955412258765679888208179075060911348993270588419523557179050930550126780639672906839981339657841605827952649276033344551715707452531013680069824086946131958223650029900423137596328674651636819374019966792672704899226717096761339406878108026520300816671231587900671964719345339861685108428843585976488625804660610017635493521351880610425468555492933019878655109633481664108981804367765403175037303449760907760731812350882837010936286861237719363823597678254382922774785370067639934124390360927540373753409390277294142832950372585043602187740416978435939952433062427100332424576222651286811792435547581615755630697747857958907711002975657506854840151242659497496492513932391584324673586251812605264087844956371476564131193571276019896114259347561340168639280411122750231212547247556049818252189992471055256002143901299296990228248312707203241511246655015951906149975586422163085361499481718843952268134888888148766452770845550934593502480762450731994465049962168087302300950530018345158957261851789288019231145916172934728602969543305737325820786088208050535070075178596662890831250121015578379995569355249982258438329163495932233085550825114305614825164044454881010356370585922404534901340528334715598967927939866830377787286131888912389035160947708146619736365681889779472924609911463600994036763015595150034058023523407291219453408910588858971872265798281439337190716665434082733076321914144444090929517991158962241807869739870245153478024511665382374220812521878606917482172987730366044599247641447076323822482255790283690488701712462705165863514429928633963201251522683672787935818552223530397001623588022423120393110503681353562319463721392640739204276187231154516250968215727919650258764681277320748468011701010502028886577485494504960834645742805497910144071428881932114303701462679763620291182546089597112633794847059337955929079062860662663528065036696522260422993578561175558378053672231440616310463007485869002897202518847726814972257722277545804828129635898383557274916269004512385607299186439286642833229195603409041622374690933195975162665701826826869216911082172480301883737465991288899487569169541850586144988886926053436031793378976892874806849462828472911674473037709831762596543699122807138542012077942295750654584355783669290303737636757822954156335969143397822698395068465691795589786920200082645871421016479431487873471509800764774781684071228195062254271034472079497818157801243520967546869777137249580424267269573057747697686388737890669344623455738873384011696216034089737020280807144450264804893809235456451415622885414814894010698549949214703349743105117609892214197414511573088119917770601119306183834231781161697848309220220378266549857251380074611975168757343973124007561913185806064001875468930477084214242833129595448094130295298652331461059132899230580715575727814772702473210084904636619746263696105862817294597407713223575938216502959026673298220859246549880775873549007152753066260307495701064458422994830554421909225849466538383475448614077204107710888773010950814584878395179179770445337092103320404394733634293782808842053134712390148767042030400838076364768426099050196382273384980493589012958454551417535399673169172490442022585512280856442449524677194077180130540144876972671504589048476057167879610967054967454236833140048956878767903385363252964645056384362800946964001153577120872290110387877397105387118282603581852532863307225670370751551580545997256684587729391798778657283493718273873185685264866677780871313958105872382802075640623674987485790380798570569892503532719128864471754618041823995304806588533516622660142142437329577179582021500902416316101002541633259009678523663135223204767375078431658946518727068119517229742474458484190765399513607541771292669823895389900299569260086917227648765997832767251668907567164786946473609211729226230127554066748398295708900543646508401517255196104825364728459655727818761109431658645739845643173298342140992006418378828609242179781855585420064630339425672213116226755906366830341294611018870838798973339619172938231619184733320886754869451445617483639171917712851769992026627418571633827620337556281864992646736699699012398172448402294434466771661764506224936574746658649437356596659269234143121712772256680354104460356950058849137055769723364407264629557886643961819690305655921450117518442671914073832572299746307748801960317794124801423967908578473698929139446862444863521303364121667360270741730229240214384852714110963847913393405396052939041714578536143334380470388754422998815863113037632818627870258958077035807684385434036150919840252904937528152075239370721248208749089758834253811444403008719668815116979981741899367582339968788391505482999752325527825684946734109083908276132344834015479603207284157726065230848461827597684288258935652276054199657141220336243173661913057483350654186212190740198128144244389534756601077190388316122252056353686587577150746969049044212088796986873353265373822028183204357282561814534241583898609667738891665138944555253170866826109544481334592074378566334588740162096323618807215587101438968919879923953290042661704806089496243480264239220303317255749798762191648591033365455356833617768291473600048952726668003115125338612582466682103958459825450268378075466118857282161217355492204340735569528282792536934111074599830306087576222984001875507888270599034942725453188697989897939631443204110038791299493737949304891398845792227913184540447668618260060663903418716898416100165537598465480708748600396143664369370362780539534506921748830389460386220675068177720214393421723581446372709231967910116940101876836516949341211068178290537636584099099733968268842110268907984038885080733844505422112827464572511435167886502730302383018977049256821632171869190173588043677684785826218324008456113818485703457665651974053173732614161993405868997607632889397034317111364540653522874217371672474450825521140365947700199556118503531741666112163607573339403903601454065012697375929941773381269137475027555344840630341610542053650678600637723676136002510993349292713276553169693968519469496956920687670563224341468677455818241501839150355076943013341962635031270008844532978483992068334311481214508811253290722981436434162923676620996259039922497285189042230067120453849382183210671443564630314493323965336025685517055092906030876934502759516665949536747216087354519302474105250372620963484320101773110322946988196905857973380769158523230421214537657361216828091885883663390905479770520406458662002464653389991557467920583041270252695333348932722651327290790978071211005855111863815279219425455151392841333344677556531432880724123543746997371278917306476300910439797752984498886509249980255175277836370216982089007630012217227293119107415334938185835329347041013634356945542772582314586846048221953621917834380917290691034255477918670097349547267257676589938557842092413855949360646491708527214776883785502977818462667593123343262177744149820624732417363530886351553229968953472716182565926702118294506351677976187370199647971067192046761014051534109446749793554299325933090668089756680698486119819903846997139581463302924666872973862487876193821526999752681482884971643657083933478541145452112378234442762910903216410691955631831263107318391791100257426688584288108397196086745551134570550975196924901611134513186018047077251378897211052902698456887229736631959908954153741768694394494541116003587111554494792537164429561476589426465060956270836320847079566085383923919259760745079941672501405828491177929745077348687508685967590478037042091670852990501448791571626722352119027767408794140575820110638965401008110657626635580150803522579686254161250590319049441525990278803809162248605482677813656336992777611858209869676225950988662884247747673430631007065873654664358999008846944472804134306858037685349315582238685176064149183835792578683984036245133999849816885149928910212136440441561201826518717689025884752191773532608058202739425934013848561458625106282985109635579529331728197283287113018282466321714612014118141471731330057765385821107003335326968901715443973610109977963575901060201843825838520532443318592782864658476504476947332579996488990371075585101866716914893262049996613417246164105123405080254422326819837151254354047471253779199618291811108641059900670975624744670097639530473540864244169915788526926139530388356741332583454856907435686132840985118832956676516869790096818435934129983386120993812637169256178987758802631846608743345840886964467680436591506283798536267521866528483709686632772526974835083603411543216293034685676370509901867586229853718742917990850737300200971870727224172984096930472722076909544740040511024322194724736979695375955913109695827593625734161919703076327591391116857903980966916540342393219307019092743253566906050521786049613621717943408273719535519357507975374096858623725425225027119376948272055604512085140829053375025311756713982267186252944625695589294398270728042217457618254149179362319345318149734140792083762621781791056472029261772356545839486643849746418333888905186187055719435978509344320294681749798292211797833193705215914066622670349584741372168960177253844707034217095893276075451126802448411856172687747389095882340588838026748211873214951438638761869379692248902144684207294604148613676082914797216702464940652948513513656630641568193211919940104531935997368470496733598333283739070639216265069170052366692214980042513069515759707396759049941022742865801505389195941121737090329916349910508743545966130343406863236905858234432488505892812612713999094873798523206468701166965680549385599206470533055996993279577555209061431654076318747173551926402046649228486132085995970148622657046800301833089932905713357213145835021293499358713589688988736343371889779547963743880291885246294780890615857711422220067841057950295361223690879594077676518070661037247142647034311883458616481754106591569297411685591335958358150850749481184928241786487388578312464614850620132373250054344793183720075884469394802961968425998223754999125443386026607499831813651901814868353531191395460786810535186216100929716168289464810758156012092819717440586076378563186071924349618388384462518121537097310006717054085548452846072109329520096100137787775384718971435730442566850304085027550886775371445564437366919694798372110107708641755402646451604173484580918566531541728410859352969134619644682317941614201545047081868709159764946899802932490310598413262935560421041541920115948881253668599397511833513050575859941556681388029973172082493109630810650979574749225338501357799569218133264389713360684244945088818520874554852593700683869825310151009193430367716973257470466889255906892670788947245388261670870475395581590018562006215712891198332909841101402264830067512629553034579922782234857761955514213460100371605873273043187654521073945166774664703034445886637834600520475932289074372838146743318636237619834236403827045865090991231654872414554767421008731492413545115649597589346293567958777491256634216292906693635334967436763868016318302576618763507075491180151315558043767407211274541799641468227609714663154250393535371540529816994573209404209681671554393427197527719942159251207269941734493959816486308280071585267481895925403111997365159753510555637090522103186705035421749777888476083108700807923617145313671386584582252549959532209292357622042587962194303240253529525777607916239517485697673870218169858375617490178001630987771587800710851352740010494483420612756076164411504854671127583056969467397840865537176159560448262787602812310398021664038418955034367753556547610090680516294783263049076662398432019202347929329355074844346357538644569523726307200978933063441969678726477151909095535630113425322518256985113409834673327437889274123584036380496203666074975357103194531457947511331392817618002031928051100779063466465107481525194724110983485519445745169201829205080216216494605148228863217133321875735726946340303724161117208490594123537130599399715188430355019555016849488290181379236213500307143766211745735239003393899835079744563695196652118304164778671235154419025748218005681318563464048992921840091330442990816167576000217272016677710185820593202511635520863403567272184741173046889479288942166019537608051374037615415689042637014676448789279480483181886093331441856990232410832778884870898916892400228780546442636812178403976516063547377828183821301242042402778300382450345298797744191614016636865361193313707140261314509228445244639003431416070959130130993627110135796631144198236258185512309639751286570700717854740219098480601070252680265223192628883298548042263771809929873357910227158670110650033249941033762545846399294972979957684038418881741605959646842197841873789490537226163525951218268179476023846062732150305084940703396948452238464438909616472951175557817301894730970680591101342957893750494899248374010475503991487294861202593291136198124679763397044774835758409803992947364928553035307863059792471357112265554708785121876304654627050720865205796909273824027002632515987175948483042168498424887197957794829878692517244963916738290972786405621703620219517895819976384476321952766133947729588746597091074467394562676073867301920860112176302166277596385221772024114392377776930610652947401968166275625016900570448523007220521130965851064902507944772406460555631439365500942880472678594059242539291187127277881433383269694889600600314075124298474301393742448956509174138713725242238776396161126698807867212066237419541753476419571413244842424977826039014984208809369275074939071495829589365208699044821285238134413637939865030672459616702422550602588321857288350003956579331376819505624805305408621529232758926402956206483119728059907436674768675018386280139688849122363136762254094202603372245184861369234004824103984628446197992359176336806534198020551304375141618971544450907865385067278743655265606854155453415192996817945663144121994377268478397765678264187948046621377409041574652737325287189841073579311442664206178978106718842890291712422933716937897066754421335130941479522350934478705762966058557562770694060155009778107639172511027586769317420955417199518457705539683036747953109939534258482336342047652384675422453198996317523481095232529486295142487612570887186437818978330015826331623873436115930314030948904196085081831768587143067772067394377382896581838815743260969309130319186748856627308598101842075152808105510285129799089624480670018720678450542472055092316044553407605919279536371967972818819549243450557080327417541333331177966155491297814813613446651775872388128036801168653335267475767456011749668813984792456026579226173547207280968385724468412142682639388755729314526548265269698329808965704532207160450022034194029940954292550579106213753586789788848067094393520237256219348191285114946044604310482960268725856804256566092881888547653108545049482581499739470508926710690609551584551332959597731938428978919442820485639861756386927464484413582686662427183062294902945507078948667367158719317298292091300597900813237044224261461693610880161616869575574877263644519180500660051357255527573858921735496857354504907915282360262635830851527450756633207383992259478243134485923410920561617160667238009374906768858686320050178488949826058525003226028513084632953819807480868406841365310256746806057146645681620537040363637409381485058502637205346014833454488865345805144158823224723046795918927851235009788264076400444421620341354814938848585155461368065401209935884610486510696653468691135040403637534425830793004400375352640651610394673991111649664877444520171371726904339107303648372783893340814098418709024255289143961940313838307017556584025602364066541123896409687061563717946542419057173700136708080870661159468935605114370871150601485922607045565196191606981660817620910073399993889799635679093369448254659572330949552925586047804751463746004694237756744132139161914620858876685458650645071633479223233508093154736472130262929806493413265924567174719503967610250206403203116190331917094794242945551659202142525089162606533619189489976594660808622767490954349129247798023362163086323366937805801786855075197243275709775507234929282553688019500383253897186977086860300329876120162160046352464230153517592812865415761732356954586914930155016204819112788234473022362299415260283320578812771073941363201238973213938899825225791279793855888307676360727790154123074499463914035624513778447128943127169978020065357935181078813621452047912246671699110424647976660575037588231696807473488223211325316674964229294850768122747634454361900995825101733388604928904438978084901610011202865270426405427009860945510629914644021546155112667770344155171717306445202445254973896424846060228681225072571253174927471723302379623107090162821110323894450972243196118503170724865127318293420343472748914407884212414882948331750354568310327613772597903846863264516636261217473523947704865058179191044807611786356089284301021955141149884306835024853160236128801433323032369075385241891043129584156281041434914728015466205311340065724162829696271672984505097350411317263593772378789662655637693604827665715810144958310927174194713143801752219234306628169199388012743832607982687421350828319449521801820279209049820439640402373817577927482058541963978187960090556836682759618566785104021067623219583356328966523095438423974895937623311169808816918030293318176668465729524417731572026107623811365613961955739250800621380908312948616301380906382774315905719976302444393189131642670259935229584386548640196303270678325150355665602132002426296643053607617867564677763908890942798063332424506336484094085804575541758874908889021870223637076701397698061571170986453832536726627051665760725859352289619960261743257762628589572618211595879343318620604410103205942706896991007183488668282397611927992538398160878686205107323218799631289977923798474292507921528207276886728771751242591055308354564750894385798623075978977983322187493190136564530811020889714201713712926607483634242056945697791677248202192245738765436115038343848471339491512153378114108133629650870377633897987635699229431849732212630483914090444088924658770041475949497203849105747176379760847146002757363551394237504738511525577953264352285659500890599477329319373198856557482960756333514648796117081324368327058797467059196269741183010412575335401424491356151810826136564072647582671731645054234998905059175716610753340054154722211904613591160719684960340575521149641420796220771382884861907063706690978068475756268821445722538051024751865445481928968004436175707099893197796108368583566807884272700282521040377741692104102538980423461784861469092357584629406271878205761390048906205054115302980314912631574915202338401130216789113010906024491170844976805986457204499700922092379396167058929833367114497471207499240837541154779167709268350605049963984446462965829536049941077079234073309266951823411927033901020417794613384262764387674465818819949285321527766700637240231424481261284994109894593789421554860745592871173464891365089394842705924518687636076430960859220236342286266259811337141736406991387635497459231824823302706552131100211025653341768005056071296553104467353292332767836493066496131266969441532308179115311988197543948341834063611844715418777537018924663083472330755796537558433291867390295671499826308181650635839420030099402121245593135151915292127710447671714292189746290162185660220464927183516829288590074854077985290560018240038072907286773016515799787379767953907424027123727502959117926504955383317654864087722012960207611137075720381509353054884445675551976424932102204930532458182540898830847230618897809760874662439275877947755937445087136868950501602568562154165615349654066574194921841075508326933423294452854127980501001019275110376396540488744890947146813603915510367557495443099533714557621785171693096454466773561510752948524874921248099107897146529827902399714387314743007443917597014598647400394770164636708062381159086271008921736132405287188125447377480773628850549437049272735592017418118566808626840504658176610972595476291586500936625157481082043925314991733341239458709554096964659167088416013333075742668922596348499823991571800060686435341281192726252681122986936496991108641471559991950239455964473871547092844971536623868512247630684823608332009751779334562889856967042741817564477127211327224248947678199148592097939367412521732474620559184967780185846483872757935897168301543025544611356730054462869580696240028576881209513002119504910954107915534860954265124150574613525594307928969760110538106692578541174217051290874561197417687297274871202935341757978787892603264292851166628086091184498224464850642384943421421938840480546254238998827092119278019368728945442411638378191817247942395819822429554222296883336325581123906234321359442001952000124956390477409254584801820913546160305530063815690688470085237493077931324900695157321266849999570527950235299651371274192707097739766805186678550303453313820189662981892609971605738403388366219373254648895483434903197708572336617029892902827877714616161922068810910237311634366796387803714931671273486313738606616048716447208967704395959918087549855469533674592571160788259728592262432958343290451674249741041172953379786700891664656059315189492336092973385968208444498075226796521707705887486275516228710081107683617020325129635759606506952729510470839914525745471970818515233995701727098492060362877689007824215126757097347395396645024937175452225276735091570691203778180523756173078539432474747714872559803734503531304506275772938332455640684122992727775492467998157351271686559912413769253602367217986646835247266077178085361673496713252886538973198852459448517878413829278611376850323987045787055072814616968199239297160782819077473470331563679120442410676741241575704618872235849614095601376524409783394208481834851472770975908262614099197677829403132199386062161685301514535284364573445439171457772979113321893807082606530628395348488455193035403195995198025010180190151737124750260132925884661406018938168581399643029766949820301095445844944757884090253062774821789895791891107628156287136161618038969217181875822678351513887932210243955432130785676016894004918292743987747209804225405981003490813877269220525213162765918076559750355530396178574648651091954997350012231381914896306448819142397321691533582754476540232043237450558398815129784109569065919016960362011710682112508181099327552949645843260190713702069776676543475753026332046648470917697313891682435666903953749843397729935100573018028788629341559100425156071955826533169801821400932260691582751218964794039652524760356647169095203420299237744343225915256106271772742246985405162887969331259923669960851547157493020876798364702863795407066387099267230064643269745190090755836973589081833132789645792578897353392303451159532196386945252290752522869023639863994977363597148760927897074892975078434884020728781994257864917762955804116472943645981441218799661359103040806616141801886572205919428598037947444467499932191266201989298185767725929015208593641055562276033633251867325834835320678313037955863108222406900290168828323749457662570444682884402099203457924753063525750143966347192284411418531251342389731041296492099106260046627933045517661329614127015457070260255512601105467824133323529717737167789580856656680042545027776057508770347884446489149290836284220708207614881076604486174147271653069966523453410343784589133079018072813434865457878666876735364164814256356214550526852297948620983603596840132847487276510715057233438876904438637634475734135160612534327864745376106072242107373692947154118504482856942860450800035511846397299795766354571328625487268575937043575069764576159501105486361941078858205016159231099769654743064839682068284382427863193355032481359962698143168171277065214815183340962345727590050419200283456505191089416347472760203265212199288198884848503261301313614169962461359916704617788488247409477898284850311431647861485924737078745713029511506582150692789374419989618269916438255753665800796109020707325275928560584026116553838585928021636123931076399486705010456773849109628615749869629179184971604913948518316452001526318791124069489025356637308380692812847691642895548391022973702777938088068546976686242252676837447151803469273719913482411733943096485123366087099833366274952079086482280565754339085081353358983109084295000150667805060641619986753815721245295163925657964097719772165632888701498546760171869763159652009092665163284186959196502334652403377644324709497220753936824989798367361370245671470358592766891690382781917366958154654126926640443652072213333541432770419477125511187013897728610616615448329638617898355983223418310276506607159896108205257765215068792933588585760829073918767346082301941534660767657590202345194766599796671967089062179521334134847625610346969731463954815408180505361162350485132316024945281367687967481052024380907566241791745000675896288538319915309566891442931929967619202215668075315514207459878864404250973891850923443332652500708636796695426209803450372816111306807660000033563983387738323844264696549969769999756693874238159046094067186098333361239696756084816284973733195464272451539728679490486738242194870120279755140077191585027146486219111069656691529696099534713336859213957063860080092100065509673947768658697526190703226001183731515025261770701174334832771689181305991981489048748102855569994005771406107496855623537856774571644464831913290886823654585342008672964988231779722682978693632820391601557090231467683190871153557081599726967296305354347175883213684545721850235440228709915978813625377199127868571103833527863353888642288315419302987292836749160526101739146219577704643338177804151862167647940513595794547999079598928758349154609181949222492469849949022244429137567393626320225450289089197310416863801355653655153446339766894113707024364960146713153721523556614568458869282338513574887940782574802931116612508583584252710656985417028541980660529609701799433238316649354998006063190962110267241277144951277016389164947905130003983940121706079941604430743899116946578578116881349287032894186726976668725149135733367625877795653106583490462180511712093187986031824684010964208431670557467544960520597180730310888217016689626277992234574063149270020614127820202170131735618472071152149134795124795911699592354689999261291078379390357579568000014486455833997384182299982196761309802586791819905613909754231583245000151595138771175844124715292844154318276476969395359388118049223115052231190080051336538734665095379202595058369825054918789647060663196617004729847833075112690236864063855286152982549342664935700922009079329596464603108620110370728037224476278582880267625015752232232197574255423770514306188334419057951056972412782243943670238044326269239605126879517275725349812063544070696629570868702409972051407243952533029911504329981657096948511324499878114627414636542029969722701525079848475270740296576620105213599216009035395466106205017831739004601644491104532720356284219119976715940832669715820793745062979255377375702538068338697676551875411357728976816892847532965100303587564278641129428178545111957679670862343192906063776097812579229086978836289855341822026802854232932825947826175187455529065883315270208527208465447973712878412351221128838787260933497307221120443725000397858266237501336477746350532782829072061041642237590127911555299661235372921663160386557924344163597954812982848012310742201768768229732185422810373591361787963689203664305119256094356636872763043461339831154004543516090921178299382397694851536186638008462891766064550544276381365005104951758801980991131274817547948406435416362051145945918003031810152985905360961296925733404641623975904567961189481048083950613509079400149372954237110296534996294285283252174004545003170329630474438624681580561712427607882154930798844499207359806423131904432716609334584005603108274421567707188277636743153780130427090077184034150562015571976752615257553937242284716209230255764778836310258233548649569905339554800012871790798481039912994101875573813982967803757637764807782254679112194511962391141393763819368401671566962602255485984660590294855661874499186106248375932847544110817034806861913388969939610293333683558801250410697296991002804733413916457396571934242557036356683019709046458057884168622637587266632319644302997040852583872221706820279864430507263661720525006593520280746340334907138748316377964944153891064848376408845503431546720124770112505163129030237533674575769177736668583662861255428355013950919421286079551632635126798768896977754341650681787618214051988982571728381219426492347913707854105247665031520917509312319911950653285922545827200946336200948169857497998884021013877644405356086966341696449995269128681076702134072624800725401714263412258894890345661608029830634465017878171118597397366617045126442272404005226862662180425387141252910515471105180864720982076632597483037185189182306400091474225581919016169806157701781093379310391630685742939154790560730832552013069139362213016791719166955748354402851114337021003068318810704257840734289996750214277328427320096385530873507066589768939951706144709123233491023258094986508813166277245691626385718128074898114928084795562358225683203233420154661328733628013490183550812563152973869768643190737976881051976693802600052065003786762103318640102214545552414042119192101831106568139307275375718346027217805293599466394259085069824510886377175871272615146177992075203865161858988224909034937380643612569508937081466603262901726561636058503434032681515504388127210588897720531047511196303596565584671647009197861961867613635636897933994452476441210275821846580425371091093917845067069399347374246633821011098004374075398550998460047773897744396766832295923448520964935534619158682413489758042677020445418930100267265650784284992170262885315844696546629996670273753476804462194436904456152800907708617292598690315439697208567229365676669760236948467568593011042378865256600306400432417267151687732061263067210785928725275680172381067180007378618307971478186406110845282331345064910093146232544044417966858558657932707681683815939152688970789129161995571421087362893647970566194752708584417641867803913451012152452444496062574006993514879797520829613502135283821348587124340720256253725633302032253546062346810572376875345533279801586253919409599040716989311975332738238941185459459796109393011010714433645295455298802909349434379854489905066631412505339499054981018941709117438915450884123793429625994448073951657725185541230802136329475963639660074601551027905000934567840402211330275936750474895009222140304800714394127793602708426189248631025021517087445250761832457301969159516255211743513207316350255336366619001745460603428246351623961701145208937104516740627841739524721241965658532631665941678072724469583606591152988952473766747327093511176320585505852650664766749406468970494054256283255926769982050025169809061861306621408468711792025880764874853140093878006788723937579483272119016342593943347238905510188239827019183204316176290388718744553294096612689474510049258094414335205190184409115309637163729390265988169237933850076643625176422919611226254507999055580696042315199806835125272032125548979817040896237640050621361291742988215574688113976915340968518497534345539554896087007398753209005354735507962470628553239299414896683803197112266394064770710531357412138267662242900964837399705178084975306241759007301914193559245774412125934491340365821436473589960738461852975033812349749453832965401678201654168769266338406150612618102003308263547068163179652082559183408670203831180803459262186079188411802143952851453721039611060449345090400583162394205950159079168029107808947814359624829262788097492904958101422942462411917088430274961451889449157806013113138862960798546611573442505825182900212383093921991365766507580143269026116204589805504449372776037072989240353853803992268346244791938624661709810389423309545390415300047111018258807180541008172342728121528175113802254153437253608724311599281910639496313856700004501036440229213908465780777985507063577866702466484643602888117752220966245008891594520344503231048836283572482822337406268612419273236598940159290126938855488581026762620492720271746223601766544982967133088519686403325318219488011976976047157565831315239808196327290888627800022928691680629283833547073757258337656680646159703165405334724261901094727894356226535405563796883452172905101182200841632851633699969171743537077804710864086851841358585596970282543312545086072091966954984943809940367582264346509078468697100994745903891811263067755108152812376695541219679323116097084688277299730178222610214596144686386817659843285073693714565591725507976717033096154758129375715858847823847530621123199793804725118328490545666355980952377903536193604305497638698928284014734145314525171688960671456850277461176724607548491670730939034450467193678049228504978440624225843558454151837235268294852305568460195284152777697745467713123596166850518644992748831469408108842247364224918256354589233679415676197409635266875195275434907938930190457129347992975671443094682389288141110424535858963268661767474010645053245901216703482544989248672770803297753715418432429738001616699129652299049572183207042815153607126086365149419310901682448077550785334757331756687739171403062355767738026100385776241896878481812508891850839098773133641316235078989631389782475926893635982873226504416436484811125565328961028017149271120437368087176197665631898523912862556278427566222212631445725137820613248482169633839367797226521330122107104851726883703638336612170134856939069990849502520986766269133286354080105356028462098401715866573175989214112642082238013498710832881938999653840094621716968008742502306907485519425149965389313155931617285548884337074740191358982762698935538879529933447130218602663609897075056351489754044631803754246552784454191568610884496418820921289462015452461976534098724690171788173886748165346430316345974535070079480887497479983895786783141186643104392647649369501962089095394577821659571938453992695718085290354826611283132145714689007163641307435343049907549828165466869673218633317747127081122782558295736477562493568275276508793738784438496380035569742774637022383357850516570540886796486150470969931813743588792681758640787509970046351422300787222677172337737541123523414500675805870438897379574801312590195045531281337535034275309076322556979894929857448141652688043024929379775667145974619475550311617292533839572752308329194542307707324647268837490050835058752757452782387837535071469760388986591244941386579789630193888312564521285415233205965003260474168756251799587952178125159278845908322722273927002938536283235591903960553424935972574972879530900907164682484127159828225037158620737673882399035619502193699263413539529779612738469628418311119643089335287867219867849961747196409523085816512510988038037618215174959900471437420889315224293885336416568778755501525021557164630640703427888657234109453722171467088948268703048290541172171123867385120404803789992110108445904273258784897887027103554953411105106196408634462332786536567031163068276208153413004144541873954245586967412871606557737561413457223792412804781325511386358671088819454612182787400476712692849267929894291689194801749024333557264409314016731200459831111460227952298979954102169823946246972503165404368635554424322923108605698018621298618285587741339850282885336731043739999003920775253052964799349985714868165982077212870303071733258219723279491931271899739734152609068352992421603795102367456762519183618080886665693406717953155427773238747942734771697388533706052068557954450787825994689291213257536753198730570318476546410085016511161638032655787349292506026147628054004713919772051234737164814673309711003057915649974327230839113687010980902910706225367005386751779374349851001142053000912883202579738757830284416637805717135050761987812049545861295186847385310130532865844485542494640418723668229288469428956136654203633107022275695676115240962316948330868840664279802476873201439534564875738129303151556204374659852808319566597985566498408102865376901259852802351333820190026820119684343080929142421223065490848393131504368247214253180931617745600244558491807695892762161479525998580587798936589227425534758046648169893901826544233637923336170736933095936172950905424219182076124663983460855995159427177910171471924668308453583844149654376429933648730193744353415222059084424990259895814360397887352906020600382281622816529429283281940860256557106188471996736456762598188578682221968867048299427832838953253872121437753901699085229300639515746981230316057672372346892197628529258992743795432897582746341681612199344666616677168014798358765198030955285039972390622972466711012963420526890899932333524934225560579498498766096100545469964614762855015084292749275689112892261311217351290750000563987042855847316316264873062368689481495957744285974035309961833354004145909742544986508091760926711406045579901315079571179121632333596704571165137958844838850889685774591789681901576819805243308508624003560641859529758717918721669036376644415862896663962652878581190848634081384963568787194925945855296867938531268150985378916409574039311342284809235062360624167265172890339919627768577941758291924239587637510955007283219342440623049648024314489376668861155945306644413241339602283727197073570098060157070050492176032070853300602245466450888137091405333444764920715893439854086649745746157583602405523520878952772973404007814492638053940288394496367451233234936242918853098412237766073402909874590590631681183734237049280805983870203942486483763554716820053325630625397189493647360208442732217186235486606933917624154107526003729460746483034515140433516878292317033625539009329160548377651315841092119049687239733356987487220083134402911224814585381548684191588516211770913317750767438183690743495077392794091063573743744062674321951667582214535436175661587893794940232547020454634429084096045286451919681545149165127188144836610182472553202322282231482508203211279107380193336404003195009470154220074132470332361981558045044180572190281066134557137747997025395744951186712908923619088609598121357089059184887222816151928469914989524745978590648783828433285588457401206797634392418209778415788719140131037741048499377040674737100728209546144411740688672166700350587713312473215396307395312645511275297568134454241957185550137207197465200630593267740439326451388110877541475043476778236564960719848815904950989109478783352424489191015042949239843871444097773248497553606891851908629826203904095961727202702984103721441326701446770278572740979860671539607894718278775731646060201123201717299174569926898046462636381521273531434367401582405965779409931731876173972885661374725438741682428527676159143995097480410852225076300893350297931101945035695731998204412975973265754081032465724037561274565974032504583906327962094375718283490904956780547401020261840706564508064462056421511596040208226310221075867414332588938615416156840008975201281360893896068714226756139332252641922650730006911743166930162683130225705952172932313060460496765204801204846033823272698124964355573711950898524030582711981422268597564042563881316614643618638159302652749158695758713129605879469555353661979436157806518744802536435973495951495245674895766726280102592541783962964051841612325990487828541371121615442738968138765216413764636743540354276955599211561407365900664849737971334538065547257276430453476621907722647667756091523276115782992867381975763470180480421380431396797421409384217247076065396357237462554016271037204951375497634682583410525712379130132765245808717212209632102605899119354991967615030744943176572874818282276056292332089199322406076996056297635810279862225493803673657129068294010814456316377755379348261140841094038553897388205464730868225880137266087248951399277391619942685318932063408381985716443077157779112549472903481693389155847188052957836245615805132463103511389698847642346599225572167419079605255628591305673797215409529787308748924860019613767504955723237219717750787296956278575059772499072839332777850717419605931614744610866561325852135417995150895383621566176144119450550149200220300278194044141385931467580945920616712090481758361821395366067816388649556170052286789994766869843351515581873929360146731777907086441487087254813847808607198020559312229372948489805865305555690452736460059557845061948363548104714007770873572014091588817244984892981518451706497592641735187035867569255038730122297685545126112763970578644683012289860688919416569849281736364487342179941648996926994550470025862742587442610404965722051905009221159512894399062563154161977243763610218416792402238259325361844836221480652110173709184167052495990179233426055255905359763630019035661737627176641420427961192105595706761564999044686365202549512443878523088041614578847563366974633718704999798874756174771888984010324135171910843118617418977828247384710313965370977265702236166940610421697285682089856000649531933554158159936524988314515361737687892197705934677176757757411982380210322473102841553511113855091939266889190314360354156521178450934486328840816985194996260943451609223017563071701254537788819684949802045124814937763904128441290480305016058432361342326991139725866506432732219238413758568354837045698318987808039666764964024665035653033276224624349042949458410102643839496789055828133313997541369638935231473460948409616455164729088867465725271407472689111737076728674419860186877684481665868196831845287696156905982575910941225526303613292515498106406335021565493447780035463815462590098256836134143636973346653837007018339919248602908323026380762885901528754370928332919797360719957207517561766384898134844005441943249688999425511053228437027609356259823022211748517545879150831912076720335292658020581385290091278253522956036819699464861578072694103154202603706720613504983643710824485647995342571135243852643117105950610668544874553488627808373169129641797777026230233570261529677265608149494397004577324023495582799678697096410450820150241981792456112915513797459149373732575247567140283763246332459897080946680709955820250470047034650764119705920914207298003155305479082543205873446355124978738258851399841312288003154901641821468920436794324873635332528822154174808635157971352746809519457696630145167767227430001574840739596378765097750963191681542308820108066765130748523702999524085326699731126287619001587096802830963951660008991167699117744061641375172778950102015664032491965279477176953116820063586641693517002183916850346102755908447826309114166491645298635118530568741243658470546579400187789385776644667379082924141473922201621786646631612803096727883224579430305227117864131191449684680732682857768265340365576081401569924780919433952514483193560803761035540329706350514753766042204571524162061101063503855818663908349465190260623588871532304981924152309955219827466729582237440990697232260563211166809344154849374336387617185317246483966728768228420855120779329901689319157828329737009212164834952647051408426667842141506940165499884969717010048547211157626496945839935761193408715900431552998114320397665559868694611832239026280687734781545811311788312400918267568875296860037523457813105226661229767421596715163830839664001860124616706572845269116638523778443010824251098987692205690900084114962463073278041569837796945834265488064466368474942680279428436115025692888944798862692466219333604541662805922356628514533669893209560213653238310636605090690595336053928285657708415256038471531383564363572294103670830672414791235399269783733708921309782254399826296499522720202356271416730325987490659089263170210312213441003578784862378103397224457697275296210066915494386946627486405615785001202995383399797427427812663114504328003111497234654286526023909708567324429135342745463736063854099255480849311545707124169440168331976450261477342408175096968663327302769457870828122807630657707071449372388005861729985658392639330368108288415331895196677894443802804664371561075093909769088660288036686209095683559643065874175436117375160717252052996207042905590764056698886019380641157615611451645269488792249178224707742962141216393655570380076983063233576250584640962345468212518740253544034612151754230368217896414162845074365229002267373919051757211294798833458675485287091191377121674424379597222854993727555762263513188376879290918382484732904863207823284772905805021158762735470905335895657440388017324424671057061675844271865916932721870346355953035732494080927235974756842047212336990760795051003466715076574526514702028709191246793173685911347335999792200938158611159104781157775103810454929899018818433076447761339054271727003468277975984084484360017908176636892413488605439746764797797218835632342449996098652825499222031835628400052632252415129134731530241532042599719493571830816860727044150013420367451146832900592898275338142273546146567388947848758839080561796147339344530565439797054108869675376168363892397738076156544099894103343618967755761734238002451934100538125125285614224508026510489829347316447610950990388433306350614472601618986489242968704756102185372148317269243703914824214519550254237976130561942649788543388225954256645007078516123223399579889071195311708733668338717460319519778672450861456966083774591072404707863301225868565644394547066790466348897549016724722251155189079770611420213256690472997036548417389779265593849499726014151022612962212587427713196906439710598750468413702137173271152976022696435875996741315416492582241434124455313740644124724702731834549416944591386548798765322394905635819873217012562325472874855920913888824860288470326266363408789415169554505710528817430196692337701487611258290148785516124503442853046279802550620504104556450130715995065845375704413406243256247168468320312479240309997157585741639522370465669086415022132016031241897047083247258501480985414308612857210829036149019860786225555355286859341932943116604852036847811627760368030620103488217198709275792766111898464716384155113523573758808984905126678776183138766958023099835064451044033405497768707720835949285298099566109797801705558078866951173422473642227051327290615419982697457327982935231714842634147930312905884911036808075340641950392222719662688244892989678847721689278693254797599840232797097452318299171376967199636630995856167331657905784932592455551149593128475545635388733143727756191679696572226080742205021620644723982238398104730268579515261361391060469357089731841393887279139125036698811605471586864452581280713360347104371384767628121889297357308740176410383253685012837656745548462612800393142471097351731463711752850701342239636788690271289515092449033431269985090691715740475110308935508154477738891764363036175995638194655040646309183588908335412127648298216167005658824040853502779722671992342795906354896759301095860594786791536880094466475944920691490921450704156628645883061465660099661621033314612278483788429218620262997786744863519910437080787061154436973137093845893588832599278850527761753678491082612170403584628935261755967386710944286151918651737862567667517982406440390895444067529359863273728143997832764343927239508892342800066585773256129691678567232277443971454927547772052648897093810767317948466949177055481414762749274015110822453219790501717782508390074220132029192812913126504073922155651854703762955352328372872794296584519547065440138406159696984260763072676477149230850218091983097058097050999893259742618151656410093028369955737885986836642478020335011160236891615489231249186741634175891932218844558377596807301128889168403185813564465944000320917753276323376074206848307519849991235944821362749847004135343854148957945719399188727747185529767223132511228208154770094472525797302210523658787667388811492715223406539684725530087617157777743248606662241280020570925601250746530777583959591893644458210637896739237221714771821265644703284772030934591338023626868968534393014235562570585282048563180659506330028200407699610554720470277126126206107027558690719564769046660446970152578113898775146621443157006872253959635927281235745474013161149638261464846170636211369978955210947640175919496858497295559840457791325086200846782542490571685881820354410756020382764779673618251283965704872820327322072982138323565971235864072257674290504710333343114890780611185951173973286490743348613534922933294235083149925165124945499753614984959007579543579009682905864960348786904051639323212041270391042062224277682428604811928636033087024621448462298808460607199673575785536708085905960967114100199545204472417331851318536368617162007458389598976219662390389798912043391504613663362186749288296956169324226087813565674974509963627152296290659029388976467851984338409171302535116910525355408330417765118160565657692719019129409999288064649812159970518009115565120437993146773893340123898510132702100086550105546922982546785441622811349564038229655507551013794894844424141977987799403923792674196161198020289117196563228745751176715533849640680974846529036451477398721641952290440749417199588303453613314491358553196829915709540471193240558067159989668200437503193029112892396211797290789319844297018037297932997774049620985944553714238365768141657285795869471308265318172556018316428831916686795855442697993081673749688287225413991285642086347092955018877765127628185125531518577584339035544834701684323010089254095589418673267993334668997398805296657924479665600417245705342881718104886875906423587650008120668798790942300583684409381992242100324485355658297775136120239689535631673704321266857862158010051548512978013152524261570543835812227542295279284722688900074464179664415197249082219235015442787428495329472285222370891274518580243102799444258826936026268260950693323513722532246440923852697913791422045995685658373358069207177101955047781799927289181843325734361000640817807400293242542436441595686718190573396600855822102825929270216658192022105743624370182793609378945592971504772035436933057111929823367824695477972636237095045928017547186193377026295953503937490222707688547916623782703061496288474325358736216425483774712436748518299380431804379688553185236879366083190946144245688813934869393306032174718540690251912733498534121424304587514518544456308264579330105579835104371644927998838517471832399358678867080687770844063016640851088559383063123522041502375291930997131474348016373982115815698280122599242668389581937519465585105175336025373102974785400595747550320513872750239980448415068200246394210335055553194365560247424100761372651838254027630923001003172346758000410993220499916430719538747854628784725598869388526091318567933521995894146545914638831129727350275255436563946282996667265080499282957592482381055109689855587141240294838107018498731976503145423687688879189874414510804477937543210287769239012277357380095232233954744018699198723824042738239428178771991710573320594947112039996582885397828520811386808114818977652557404595708652558997947266152641923753228618876790608421295101293713405885780011300358745248493865308174328793938317293653801985817724184773964272465384650013162923250120307056303139647582218390708939495937270009002201858469995488717757771169054504066200600677889614266350436494771163052186374819007192712184849122916363395943694203602462767926739635559395235255687554226332945491081863545545090191653177885517239231542150817795928405631011192982589149482095507990740030426083021100714223737398979359293388692847097782289236578148650607473749195046830402495879521106091890456768599144819032923617609750687421049712683669824033901415491974448312031882586951208198682918783009778073035666106392000142833669675664143447820310483052483899825797847714906497613289610929882909105570624521430564823129633382236500133564066120530949781378152012167088863499266433585982085582234711741883760827782676963781361627052276076393167553205706238149125024147963909739567658641168755813078258656713559044074081982461241212848409713350183824915125236299097351635442806481894004920208434362664163226915569807631026900878183169566354321915168476712081601524293961792148803477698747607853687039334399656182094117029916089038288742956645366564667149386225585369245270660239596701603673777117635553559226909693191950104386470870531390309235002078734826145655750649209124944703390004957945555161936300609123679606013526603955499174482190927483077656827344272939040537304503544619142391249165213768451928800288612135376366141703613439900388975645836391365956843899954198272725221563739937022006874454637761885473387214599288485719277119681072973286241768300767474630486973257301525101569197989182782216309065970560086583633799369850684325751292640454677724175784719096325362603781638532233441018681484398473853729878606136642428543487248899077147554615439932932507189154294478656963699083083723374228614783521034609820754502372985052341503646836879607557037402037784756743514875307235643711897541696403905336230207567739000540664021349988090027110998164787797359050080081893686269354832143457619032760435197535838021515677847613049830630570719115309662698068386135325091158298642925607533154330004254087168346327870199140222583580767889530842180913308936605191413212920066478373267013198616057433821831046355652276125135118747405919393002557431728204438114318802121234891775021764219671797062579740733137795456311791209981149890613857284448835367936346307435015628214910426042378441318063368083928138932049767372268937295102578955746340989660547749365645701003911647068913494681241648268130733424821765808296632378459935529445391307447912052820898454179761869242258800484711404635479631046930613310553447500223340826557607314779916465122280666697035705487940444371138359653306758253875731425950670820572680390898821512430830932434075890985420747624367307799033164498781662113129603593212583808400425098193346808379941561447005387846804280391059848663612615483519401091916776887271798262848665212298858190655381838866607832784698317720019636985773554849036196815158094662634839299020066623888955931765062755280742809657183442442810789985794202367591303422658797528477433277608019930326570757702688707218654476232177033277548228409870545601307609385374091717706674368917310988119704675211609582706762826659160274200629033644043003096173190761213486675185948307881212870402645389593547257259215245423003971842382160303699123184563726726042110403497218378104416859480181244473403960969016067357776463341369113513499403316965794528445511001554242138368465308451354629778367796677336181458287833952015102658824834564665963955703545633782183330670298941026435021559403402361566548368380685923612317743155460232553857541347924541989808717996047138185288575493423378280503491715414894040922075888379196010415350857846886281567301881413644195214022236896796034593194086988018164755730600209228304076679209932905334122841392919360740925367439332443061877908428201072952967639397510408696936996638475477797261740741892209662806860054107937840055932473415429216948272441013939089590382112404533421030747045365221655618009338523985639150017257538241653230547721546997575405300068652552037942054040439216923676773828458412061180056954457197338186488857146186217742607132904518552296055309936701369355585306607901030678697644351499500443135876511229770396940937733389496395292650846233969484956078180322092781283684925323531204815411525494742848401573080555384226520521640867065135213702330680557896715487976015818703439832211055941239145925425497438175989788982947811932948646401812300373530214211517354511921788470160085698082426690299851462291021308853314423730788222877970948008292573102083300105727838191085423314385213397607098583506964355806227630304103301550496446821864984758683180034464327875571862918359488515374185432862117062866791862362858614308413487036869112485566486925871214663865742496301726189356291319274006602165640319620164381101179644819214075716919230145222358954576944384553528922074992571621511486264754117531726785917472802917498959628005667056479441374563463325831063415141360180426226928014134425018540715725199312127444050151944575439243062190524201711269311750189575775624681375586238189203954329153168887596286816239057703803137281425869950839100294550394676941488372019448157473059974176195313175582085607990939546738196504321597915817547985692971471966502001712880434491588407808858104008877878855560151508490279583489777040128462354384637859696311443266877474739258324273115660269838351340871304380537279705686884037603511917296056914274320008205764402801498210074864202884037026247672939266422977047448314562460640283386969637653969135483541251223279763518072975575315671444950696260914863948650841198141179322877600093868013277883443733496912078778504130498540261549554858411105745748513832960847635156961478564518373349779498302947413625997082223439421362157709488206840836398181737908187714459655616103609561723178935024081438319795301872627094925860799228751623764893517403372591873760437025267902621418645289241263630958833623977834016535882848626882045051796151261406139923785680786126461733858909089804021396883822421906265212563051690876135478721700728978311721256567422658211726443380093638179070994206641599608152855309561694417713360143253954045129273332920455584284106595990012557583382809073369605079132657679717583842653610498368312161664901861747230698720815238962839584553982974160542527342680658953811035004615723751580066351428445331280700479104909144608945693084660860962132692375867241576600543279764169950099835903655405900704273303600537657276308543706240653664084436855193796979650901603330353040705694280583866828065811955375965128920208930554954670882355373900529751085267978757683009325536467722161101142492378312574460517520153364451522652747184185233964997492219171295550417322497109460744214008368648530495874982753180465909292387201252788287468347803025610222244862135835061613199998083755688279621828585926540684252683062454336462410043741371255494306574306350505338672631941113267608372610979816450730859643530438347261562673054155812897662842849794689560075246586952643149410124783705673642750946123054488861555906190196662579429556335325511015732701533550964695759937832254987388747734029578914637161046874590803954141251183307014623404745111344984156432675659862790826084148784750086223593997859457132992489716438597330540050606343946339930156278382167011964052611281611084914923094194710550491493747631935642908993561014624951157632974641090234817195832403616402437083749234595707585364467214148954805543319076943116889766165199858851248836129209035238981698975939822476239716584057090215106735055477559761997835275784816317054839482809322640677031600914841783699010567492438373211479601326384535787961410254362725348456081504275211583337052282855782202980866410212141142810011058053081767125010544076690957619698558613356730972877174814569681371163063927568212396777448162141886599444678619746979358864794900157608532627729174951004242143581777694546980333751125107197680814802643152465869595674231387682124668026041893334168377063191318961636254631055246205578973432633591800704499719172460245983286218500023733250368306455813331770853056973477007149471840706353092964881112534339461250506963721864639436625709527681107247607746090531066587552804895804085781531973887733088291054994251921594506546678645500561749760159795671647102915726811845903990308304091650244602713002255515433616071589942341675802507047496110607596000548766306346828989733143559045243202958319836596777053576670725049841957260015304097290606481361833630644394877952612244407065202304811721107905224554287283543462520420317521047186772993792624131354564153933372456243129590896868569604599489938728900579932829560501042436432704443474906653142432248056606617240090735738832721592606206441206632420163810293720700563359841600408850484883204275861500405517577393769282572970584705103649111888739620601734453155894804855532304818722196022297144981453408256701103236461060313624912732774010532161605195105471261873572191195744507715412018657489520000510910860178016141061607458988235755677359202133299346982277267753150035149614409312251757228490252798362914467891280978579152149430539810920876605669238297748245633514602435219560152090862594905742850603956389052390927206684781678103189154059618695878788587385284612100754741211995974921452946831175357118173443083107444790990143365030001927354162081232201369847130513378549594278028676387398611934576737642047861423089068563798450858238584308372744570231647279440080361012919847901964665584813405503843958782748126792980395772760484488081915907368637573878678952458060042650959752112340567334334597932506231341225157358682408579947713137006809129663330155015595802936348948370848045271592868604254191633560251619637886942480962557899860037452908077671825099553288952441094353759657325253958870494287543199630127167696899479299457275605362906672051141896949687598144074421058779937675101845153341856782111508697444839127744837752989507020155983381781191296154086330913476741996869401162812766369491228766073029533568904023264264946727692081127498279816223273307358934790653082989094085716449647696243855161370242881196046414569032026057273224230949142035298678261631931729984466307904389933521833803942539130609691921247553098606947066007538301148361628524599660855776437295876166461888328039652119784881826075917123960908031697418459043581931305854517016500344329687242682905968319664708503058991128129553116820785255376115101610168362596851631160986054171408744018695874574832635053974681643762169281637307521482647870154746831879325786878129434078165856006950957230332891964635224101836342576321727753721345517626911022012948818863349487617267929481015702767311363860021871554692326060964086023392291372978838318539254108186606891205137334740736149648249755407439981690468698251783731729617409706531905127109183523878631426563487019997132624159636324232794485857647225952689321930779931294586481325925602136684296854335995481973099177004317706996120737415115038769527875611400297721900291128432908007427845709867955047771445439974401478690485644833017196726091211311250254096796870813215402557089096112284433257502321689237001034713543240493376612489446345082721181914453617209223903206536381113555852709611240988027602684622891166620947292681365934987782617534626233163828593150725055894331235546999032998113283586612333569465983173337276184775654268507502187126952747798830259303353225048033388772314742034977399547975818456071954717211652314183965407915097970555643200881939443871519412626509019981991731034147143456450738569973124168288758034059732477661796742385428865870940112721827918778314685240385768918619928916699119077234604709953433642994950333885144664877170124645980189323722284478625445064246368279192859142850970500411775292005398971817288906235419163465840633376278289830744052531671544400660295246271250689881827599559716437978387979041672603917861625918589256004766953931240463579383798022410201121997764269051632651758974977646172351082788463856564891851805864908037587800500857083314115867093245944140755898746819329916332473878924780717829263676846866963302738975534559322627567428948596965488748977180776989442930853426866713669561737284144653560182301513288201219495318241177857271192508362011871351563490896827854494690171214736271689270993759918324514354692237319291638467538971991061527333515669973542017510544499713404932736185652935020202222538513249390464197265525624120581153998964726953136117645506108337686245132225841526424924838788944470654589120221443349721858507348975203875625077659830286462221933208453647030732286844477201912204473969829276888152820643217796742778555619904087750691627063792459929077290461343659257673693803550798472192722061620592722736004337363687369771046580434659411374625850178402056805567783731896189854159115623141550182190833730402730519655829280628439057243636448301543919672299462837375842053270518727033277503676458460559009590558054093820169714962707165920566190492893474780956749132023595887323945130453792104347611479430178815020916012624094111906962717827069728283958802894666032840361047947993519320063711760656797442788202957216145281770630358349276269163289316607709563140712828165655846941865622534909481419865987816641476705947125416102328415875777536670376358671823524034804237513223370128755992456896500747067268259810011827638528864667545000563996483899135426946351272293251801824107617339504332236803774121154406891650031927339540220155952623120658166479812730101944732316104816626677914899124618619153326274659022121990765361729897509040364193312300292349435071109619602719067361060533215288217529269793657492983248522249507068041367819604423644610181102216872764910646172320170822482675034570516699173677540805897993950646902317718431092513865250707915753229469132157444589152419111901266488528577589150258144198336046235935445274874603711019560711863003559329410932343417313763382250462055716631694751623325936008509271797781107593829605337078029536209928757605062140186404814364560376463223364610785806003812219149404209026161244068996685321012856953477653257665967671369169626062730202951817483837255897900893107687127645133263630298182673871205870565112696922595611769823818445451757775031683154131212292658452438416096830006961718120689646826076466608981906014112173792849093545626641210498637258777768798148034715909399201089884706978985830602052110980376871364252522538998878542466740616619934328071099160091121007644751125543771091340162912878131139875101132738263503832621250085801179518547094624927047271833511642257519028916617341837958424849663093588681383819282753995369655250230355087496889796572467379113384199468555779944640166331346914707635838083250759345035059082779561910169455730392500070032101396957613234318704236017001269751291720715453358427654294831665663442520865028999759858033403234348464836688529006463380181258497661972348230795145669997827286345123339932974820682519669556303686335588664797105501419169192214616402882509825319375582520832118682084253462659859778303234231606125555735991538544660606262239395019598514009076106130614213366767859820447916682010558890560379399231925022124691232573623923137115204614610772416017770570873574270159822535290002366768148834126253889195009975549037720446953240230591645817729787695365048765157699824541921866443362677720301698327870964839916295460990920804729996336784205942362403893021254684239780072434969841724295263260395664305633273810511991617406919430904662277120582822460461024666279811704436988496557291476659728986316464980020360261489342906348408805943781931979838110395644461946220250924623271239223431325898819702137440803073600254765896430156653123282944972303812740660303033490349791007409755832840309004092841092872997032013562387559177312841162575121956446891585372488723201946133902812964990524694191294789470477799727770937981736180287393060290061110234993852599816894244810294165977000120632064907532761684543138403423390820597649987189560447870251893295363793368914325734686614690448904645406442715507458121527966270754731319102240040371380202479200538582924270801283255341005686650028703274268874889841547544425306255528183969963791312716989456722321593268157475562480817733928310423040906357713540606850653210611508298919174081861201500155869472141119827845525936828325181683606131619273006156934709258041214818884843364055219329561958830688118250688529196058513171532888952285865144265111368483300168059544382507221733452344872817367425691215040381645016930059095490634383650073147752079335397254943906489291392229687616899857976287320979393069998877615627608161260622537429962330860369065630725645800429606796733564623756528993011234161921754684574184300943775109715245862184088563106340097830268853399530092554573216243065780373105825697067924285537753326416331080330898941638373546481000718902597611998051062035322338493160758716775423558003185121183287651979637461572527373080995998285410551797153864002583762117266232923666321098759105258353551037376436470342504860422373538340480740664599340436335747063792276315438594340404483072369525964281693647971168076520502676447850454866648908160030682268684084179702089217582557646434261938807569106025308997603499089469331029163894471244310703925225342506899188479969911826940485170306998068824386094812240639951640619167692192569331494581872122444891477091326545229117499660179022890426312555651308295706755214962164628723959616133571356694874454793133739154515901249083621878629887357295883398235665299141322369035529241703437547576781151743970774635731994052947869551914767203540547017853774084918081217031151328286028810147919307402940157446196779167994564800925847964196908622867773131170787853438381488815873226616413807205829855494655399511986232525456587069189555675788857084261448622055010082915831979950541952138239004966209331163254276973964076032873660752717890668143055195169416767725746088406123099725114954102668834997163295589103054014478212540409951767059630443805735417186530494677791652809115497547820604485155875360625058477193192946765413134853686493701468090791612259003824865331367572367738334134551768388495339022554143096043786553761135098313544112058137695228975337592861098778354088379057566209143451695847424293447760983978186597914238148485699177724461545025552351196057938129197993674402844915990122256383973472501317662673749970185306149579746938242297745506733951507065328713224972315327428976870366955360231078957696406704610130706082828387462402331614694393903504798526611440026226933278798949075320969223732691847308482851078233070096183537638782031640183134018691822634018130316074668618146994401441684375385577761235385382890019374633801221159265430456748257252696243387148648930033256223800520385512614211236882725964474206916544716173216089331926516602690744962145794399459356584861740812611296129567858423026362444266333683265060979837317589834076141070449123063188644819964067399976591701790041574565146555491462801187130183446615417488607217102421878313908417315343666358080385447141589232958477782268709718535945538710704497360792497468737888594510443316195171979740993762130553117547913353294020162401902565905646103949331030959634590075469823532425552283210662280221449780055875847362576762230838096660722426303207208504401442277017731173550071355704084269089380399688327051410281143590323159677099103954193605038630620614227933784823736216474728998168678568331769236289313739298912515977249566451597964764157582324073100402384479520515839359471747121089365073806616839154840856919310111331624182273025090947067783482912560577515528040339211982340859665309404848139212917847541422633286088283711233605987928139498812882925560904162435709703513708913037871509133157116525069209721521667302334384919533636734472780980903922232663108410095746774827412832911239987566912300754003463990765540067718488284428857622339956950482934027864020035167849835967201019237791032429434769530999134028444038018564166316697936960371140560972698369777887815894338427997100999903882077527704644559384923120911840230539991368588889778476247910044730789123261802335339118033730615630086202867802116481495993267953294146000961538722823768943465898310005627874905200764905725538461724598883499468196170300009691148270126994260353385252426539867161260685013446460389145997324853095022451784015865227479885093823001190263514651758940454925126394985429052434883967900749735025519708401486125688898213673478122539991447413997348990162149334093293443696660669602421872636507353971264018441410175120280565515857817586879208235771139125060492726423943423437621754681606866075624510372321413277723329441025323045349626997432127428976680184777741558679285909891334950263759415802258819427348247903874044199502168507755346323458979718884070297548683799147682719371862333519267670731815869135495117862803083536029042939522498794445152904488425561015200546403243276800481468463697772875493129404909819786807453260532389902470544798989023138709413911569130570434593045349460901690823745906202139495979833268531361066789534492816862107847253173547407862094654874373916609310672615488741266411077434243437957571561107593336838126003202183849219895492988668676738515311873143394308077804084529024287913828092891357728965484234837854156495725653097576891748865749533297325321290158214147270647550467278197740599551377193369467906530605124347113169167620016213116350588680823884782214559215343642677334038405801490852970148771187311548651651922709770294226141901909971361678450895144357747751798127231311511506030099264463518730078447194027297245504211767328042852620713603473767279361777317201378433338251178106630971308845246225479133833289953538926944092767117163746216379133341465167444765114090857339612141026332745670355513732434433286459539807546336154027597110969988962962560594358869957081640248356943534677421899450582223798999445325283593438826334703826465494301759950718124429466670043030938018198442915496653491553822799402730982433407859500291919541637642593700554440626388527381923864723956597841008362984088155184499454398515080467313323708362360954136616375469592203025516533991506984259795602912381298794226800303989489928102079737567029710324370484303396165149951650400592156380764831334755897636440645301057355927340883657489690505829978925948498858214264516794227262748645243456976150120172391078661228485722058478475373507093112667207992862270002820696452079157446162338671688510317265595627563095481002674142857614370877692424788854940753422106748261019005048301620982554440994991274708824281414017639594367079952986929979890427344287439836620571413641209473849122874658220270116187303867146846177495675601130879658740586463069692670708723752254000935069152783583723476708069143146456020387230039779333050472703871936573748026463874977917129933738574080953094467440687523213307907556221660367299573365479412119730827012995301008236745103223672648930760973546679558608589238746621501278271259618557356704759094341138279342690438907653687485348287097201056390540521199313050988832106887173985451545334060771915276665307210545403291988801522897070748245764521530207075557459697538368339700609940673860498260719040142740068457868609353813258860694706658768858487024552441523224263977839694395497882407457204138513133127212597085841055830197869432617404425134286272286953329157431521715380156481933634264648897411793875439281494192860346118868444821751499343630802243931605757409189224243342348010674111220516541039179764032258481429596231574827005034598137939734739803160465046981004631931523489215658690928137555506058163791178447864453500998446394326982809789066242129839583270466461925284064083528000807729505741738553188427457492451910185579427547357826065845590150106628339081689298115868090295775654350813875844802185490818182450023547263470468348843417618345907981532991051731709319599696338635978490980368645352887556976120053965602878047159475373805301908573016595896296007930979307566057323050287618299897210236944851493404507435764747208018602786137866614873061680293307293656770089132095661996447905265300747996391703855171691904470388957291911298571533595495106088300473280314458672083609309883692368203922169703720685251616033546026419458071603431885136029904944929118267096594817186987679157573561492057925725397286692402830405945675327356180832070312564487294238904000646619745545025845100471623873394578440536093676335853335170197837866121701340075081732667843209101383411639158890276835567618644283230950928190506600046261650125650481932891625361702466606333364520371916285525580300203450292961949547736511250392569238492310306987639458162236358704820883125200578773988193080515559863727916744688155647608227206559232120105930904412567828368937929136148731672857436986188583678276707463101505419100551610626001173211626116989342016410814604498799187407829784897742713430853786896139873622117489673254723326999071533037062128454069410907966051089956335909134043665429008722921771486007521803061539342672965943363834178507779260138813554520047295687666517994802635098615246374265430464694257938281782298125452978679069635164582162425094011928691029167363922923034717047645334489735667479849214551080428436928788373941452292425806759659061778225711360983638004832806748065618261096737039155732420995037983350547732304814554713930041593823028268529152476621818483370088966575728958109615842820812754407486591362174997128626432671221678828272004663520391681676972402607431604116718894174455032849309495318163149836126853183553585997991729000057358741483377633011400232040929982964712332548908381473246654045203965608407837252502492549848521636498799861282303569059892183732781754267745142832099921649427998820440533154359508627618359989661884576963374296800293180059659516362715861534945665573184821735630738633067349944533263562401973233443284861865023215199753049949601894952490306790336739961903268241288283764920880423266650880311744910620879059667067297292243748727601782381829056039984639769966375780994238301586747268366290191056512653063368073211909735472499511190173458524464886111886765948924910795154430317098412906115148040376866739491785548474604000012625499637027510533035673516192983130014574019615234399331616197017748655840993298109248193116135056554945428015135422536885834746706279207002838739998434998929276382909883487979749031066164951705315537712364460167268178919222189818443167568057510135766373177101492097482014562241804126223103971772428788494270608135747704784848526921269675641487314308946057921898706008461014093222448726222831947516552864738465713565729470594371242116042542725168116202861000814483590418285002389567921017869368065030586080972430671035017457365524984382919075235821143077555976564793962876702798649314819459475995577060139236272494519267971338597832894416647684784689191263337342034886486676744005771127853731423134779158866147443344060719313981992538910999873087257145251564511546396663613805803569002200894871942073641685584862515006949785283119669709681653454584841059208026288306159486291144884263615027881519761227424223111427196685475347931774482427811747577640223445801265126776162931104983576651141083585421424322191503136535496033979031491374301193272919310616103957206050539072099685569067958315070930634645095299658432999117986118104186434914131572225618553670670616169497053735118024894479312669147940070809149366165768047780331007381810050506633358969805660448260765265885738247386559684382525925345114189933016481921309373937451140271711888593890592711510359605869536985708596707731022531991019924425763723540563335839198021800012781914385134449111397386316949673297648855774055937520635567620539077768212978001900853313990712457515143076965031148009668086077798644519485093168218600288809908133338747229555606219725809947881034616282104419304125741573569317559028143354383557055692817512937882901012272187121901682198830804822846341578575028835506139681700905597019827973615304461813656450575445867621830944504909141576335509149317213594387697418760372898871651528631322239304150271644158607939903441328632452614419348851575056533203219752152476328016887334732003270977568206276673506958548914603328605069333375963447201650318932291852463663821117992821224477583410113793661455781740275164355114822505899930834049059136137487466172158462997795058669646021152055415475672234996069992263260195555842394485045974297801887089512414896668053215123259232851383005904229390834918947079252452205343780496186791030704294429159232574256079685418760644805039517930823795134457705502876433432980146613519343382886481725538295040770103502112176504806475242504672829386134404452637672575570342005256331047776871466180267899135044199671286434230688221566411505777936522147550487355109824213770599946904453987631076061064710672857934469731578046702118803616113079166165627985895204409697215666495026124630429581748880052656330334965675537883823370869841548114827674519683859597258659566111539248414183325693277014123289774891755318798317092519344590159240939809704133060832617472245851522755204903396716919918821119296918937023623260096037430792621291202127465339256392857653994447358441379495140501447739580280444010593922333690517620237937822373070458702547312078398919262678840741590861712747412469794905903409749685135352527409610024167867782022370217049053345012726169367039536352801537401145611021214502690738978040474942426696579365649862123559658156250624305315200561827136179986740620393287746882224134494046214132871808659744266417777142238067757426913014647530299030157980598954929974308846383202282301180319113719292656045683268357613358524560058958883557416009180695048336700396284078902634108965312333673834311194480619227644273123764515233373052266783657407569155392402452798895939464685410197299484670722668493861056680921904196274769050663603109988326083224660058370761077098509906429053110715241393358842462593348829516449733070366688872775830070982004506882801616574013653181344569142970792565218133062252288365155651418872880664204397493835497746384673897381179642221056216904918276047408711676324436405533654338621150533918771218671588997213252664938960399332656613458800745954247276675201785535264675450493718546252818271945531742559696374300930846214669302119808646156269410705033604147924461697296346464330376133500842788805497478006944146810007957532634872060298302656751884706218145477781918650363282455848558679560026594585447496589736541837135175782904023497511623351347252662418690726244108794198751373708009916092238421132690882106234205785293087657507948331167068588046927184928596899780163460180400778391645539554075708170230441507425137354861949853071278166934576129392484694193136122058624600715496723115252459936365526832893118497568587921133746270500136986927499596696140425218588475188710157561985965080560338139576027115021526892752635876194838084073184117093626832652475746534301230234702585694195397827756334686028172131430779703988033370963568427872180211971075669949415233377004194991534856747164709593588589380520262719106496173751832757411171578624145943598142605916065168385360384227738574669159827758204427841798928205770454405044826958872810277650261733240564615428378466109797373765001624161451070999360498153938964360483257895538724230731311715340401173409886353102556685011878638820846191172639051380908603612014178847956659419484601736679653183366560440177901599080235795235352839128316042809847320058507345390801344487178516858338833969490342133172902923495627006736456856541087633668088987237784408576083028597016963732161766195582944008754086326394587760133720674804016616945595014541332200384440819197088649727429916495387648328893877770123982417046859933323588852335210831885899020738077552861388491129184868022149525416254366102766018767588089858222589864870907629731551310828451086194250829878827831062171930002238368179072225654031335800464126368423789247169762625285156767795161061780633853334430513914241200533448418980839806213652651981506159588611033619043378155972375100891940430485272215099420778897991534061690487230797692232426151042177500077670938576441510171334101650324888171776464917005000462711254579623075858972606777413353851009950568355187491098168789190752467347826488973193513063335345259471489873229350868942849636561802377169575677287128855989553374987778027945249635005609946440136692916169784205622436993519315033045161043916107281109120113734608912283167474224454962663830291529178021805710262937570336895151797187553678716588755546234390889941779475329909780065756234390216082318251836622457252299842322668178319129139843179221971016202813602665046058563454063418373605989395052110143255858127659476242218544669648465731816349376245534444849093664801868454983577953534177536729230343869717107201243336364403135748013114246702576113783830366368761261086965939243508822574786381742057007615314062007659607283426114788688594445700370163762999031124245742329278989899167008680221026465286931086268133966623482068289486599259068926565738990776091506267649486707194263072889908516710489930787677540753465349485817640465852040306212192907496415457006691710480822747373781301758024237016312152965386513655499665450292479964004526405346071267385819140062231864461177760386943203658796187866574584371858262576033688038850986360354955018628977333063260540454133322723848580357113181294467627447937172661323745955191555754144665098270696583948477594210115097384342092881902589676279877361126712384849057265885661833091814967021694830686983611905635219765871223785594925626673909602551075176522852959094363789779023951513563895958590888688883561768133671584167791367375803699472593967540115344890010089583798218185519142139779523640821222395268936842523151608844137766167739982940797522621054784906657202809085893273228568284497785641358498227378259437177494977076998524910664581304536267071639906477461373376097116186872646851115368755377524648474782728415261840783306587439066753311339012012628285604411150869232047730618748413407422198749822862436169123818329785187692267804157645860100437347966517689284495056670558501091516166789297853531473605286813963384062435284295075364863776507496836270073593744222555550217279455223124046666485841055339846715348621647878970623147243436491439864148425645600685883286120007279316216814566171805653744656245998226856260660065735961757228608502362645167124432889869528251512235310102735563199518376640712681191542757274852920527391734363251984297121936339513619253931148007449405713934398335604000036235719929466880870538847132981693586138028765804201845744191534244459666235462524204986177172655267158274112684319866734027669363502725883846543269156099921129800458258076966916915439259264407954002587246628255232578901200841715029423730032047052642485795689405115236984423792982185168907873928618832511226687120903254456193337524396274493068221273655512885368801832120051863168466858431800493551172606573279572796535427079829900012687207356079638818079849152480714241079773625479641798248983930990592811972529261997038908844541691827508570083753097084824219881380887777393214181130161842200460554204306950702566810723102272776706916259075885111270113237420268704703435885344928235227114334182393973276627708674455305942519577231256108804883627238020868580139500941448262048679689157227632759527963310924395834159022790893820179046112463710850211304609894436152735306162455086521420158278123344854668625926162102118655261962319770031851793178047174785887422672532026339490981986668134839504338427255233698546293596446691672915182075803507476120498453435008821821287423416105971530390441830987870250956652382554731541826779114049742216314366200649085698819621786460196790188192720777070239326674580187139835644500573243258778901104558722772362744026351986247879044012394004263655095897646520460693253356015578296011457187356780424075990402913887340770112238347464358912324770830594373697660268150821581158403600422012059645105789525091866437214005299732467074432190164973063380100386792147130715789017232680256103743972751192240240052484053997005171351968713283793874370549126628923773732669487497750305867993676861154757888692306623053219605470507151917691728545669834395240213440123743036418454589729778930286130686991138637409911626675620400063799985894655578286294386288247865344586402660164101296204140831133420616619753737850537345298204435962351804241310427510411055074914919664298163265402505341116714911892750560222497719698168641481904030783177454042564056777376438959462177629372085936136684350188429869866854110514162375805989700191739428617621840232077331867356055863245942923681390334195402145811020269187614856333124829960201079345498509757378107182555989134559842454079876686981127885502548699852795697490082070207384696845796558843223188075315326174696449398554610781045252746159201036499069223931335626748851537020534593152958365437055696140437015786148660948393803930175451735671841136453523105751629108988301080900408452129079835440647980119625319512385056482706269400621985353930022262351739019828158313215303462657026269926666849591886190013315996316891605417290839989018361021483115880406276889303106657048203889280254406716612652148775436217900487674944759831179750982771027080036750266981885490625418764306847009633903080174027720251107688442283157259069505398139322053340734909331678302791239033610905875402592672693687471004729250871135482803134397573545841352549840149395738363306624395440906248323959261412484127214933515314337977987700636199958622225798766028084905969920771378142725130915658440686393124117596948224285611337676218333677448313602521861488376939882990960240219327630090603663841981825723163782999554450151771413752489140823304475656559693708314800248579538456475443282972643044735323525687989825821499169597631236708820278870125208507262426433285151730339930994764017319380951053344592494735124129460861631898469741068821082799478094384765442897754081029790967426147818331316188359188877618879623871377816483146060107985830704923077599667106999650601670187911008920701944196461799646481248622650693060336833932246129593480988304532451008399537758951746127787162750026107385714418612558464286304515255856104025810943671315598701817047854046811904665927299501328532663347080060423893276188263726485791657474082140258677677342409134846788896199101336784379060099496325449480881057070919463533319450931848873528879242047010654952712145980851253241647201568034320240862612398043816278752289027715658167997974399113885239118420145030682484493585170934179202515302311802614620113862183365143917821506271895476358108227845952722874246922706995769902100862008181656964654263583765316786302206128856910063703324067741709593743156841172849893581002040486044391767040161703278707207699616136367736939717061172669719365361304194287111668270404069665580779745533904756278419830481471109140796457808626512147037518346268578123640771493314851530407068059742936500628931722574120189005189687441285432077705921539349009822316649684398907296324469721771535129339005893249455963396028792064208001576075855224519976451751279508679930295302540003412441483396831345562847770000187813063885441662605532797053629694951192246236310975094085449103003305251470586470101478437849248110777451544474839336780091388782208428949303544749415829362861351199099635844301465561477620078010442411422425005574749362192113179789935755072141047186296271630009072542800673769170360485511520166076047048593256825962971242315132926964355038071144810096938381520576450130370179382752470801463370202841553290887705056703463357196080264480389551658706606375384792858716338492591564811523843986500615205184169073930989174309315375447812171878437276879784554183521917158190909378625937165940004752486462978703117175020585425955608715761981194489988969466747388190495191275170047810938563572710376061069474898336397722027437818338935970994660703633121281442767561516207734658278505275046664089912860194707693620955650933282553047056304481484945002625433438811041345604726220996428914134765649585725893614650635643823749249339162237369303622170321204429512751875398003908445502643736842474256492584512731262304912606700847372123934507834474646584808817523846518734107354655216180497023458036162891798534599445390167912450860253122708529592362549089981537771031541851395462838520429124589539520769050713135158742513728345573711125986319800036304984967555219402670199500039028589954599639759715285914126369510944075732932946766159563502123756432916881878976451932465980408762764981567678506168757293095565811205437305271234927501500891227979066711764085566304344016900943447180208117566678515629915483408591500231243401997879981795388492093260506017668622425058441856865319409301998369190447964390580365821940879496003109720603767501990532631962844780964692360617760670196131709738240682621035801619209727369887475363666427194422934916732069457459643213272672095658318637764129628366245840400183213635523620279710869205390174712701423785658360961034049975524212908040523177693473042424777529834560584974855979205678234449206854152210469178956828025525540076230979632205742396742268787267712751507541551632870167025114459294126739501170306537847551038979391717484323246499247499745405538348813598054602942132531180765717828132831531982593560440450415631898086274344224409388716172034356671812971518547455509460495324890766369107250144870032359485365668438270317586104511896618917050608316988546398057385123138490226221571439577090632545997437214503431996596866568701614637767833236714191871668777750529535084566661353101025812220296271638410908780144994416601001122033335072149231388145917550162402688540798397598095445001979378955367245409877524390419996416241206905022335272467202017294479785305634677633198871010278567592965560898513447517527066587878710388703246119059947799963208716372677311985955270637465133835730891283451392617933467435166135537858857067737426591713458523877236373977731725760383968820929647068524645575741844294608422775459263620776290843164417053524975731523646185767699814391028466177940588785194366288023630236514506880924069994984189447547150895043835867813036080476632952164694736535651804808357433295352865164242731974190361973117553635597402780843564784803725402082180886601765478988832028703267860107593318005052773174458959474731529737153937594650567040292765476531162107794499094394921907478115986115225279241291271454119096441244269772447268418752780495348590799733091517813483560777830983069287900813171069614288767551758820995897303589350628952426089342473319243768208197445450700042300355451299304212104083005896305402284595480699228769366076302213377094599242674890311204555409136251157141434225525230673610134522178244549381327644787061852127800529161335850424756983598659983535307130233645525656776741530551666235276234686083049151828972150727909634407149812697133720706362273148140051235826112476081639495029199796392180894802936773837240828826761188595948958131112240545513213077313925834031001907783769007139147041837102079053738169456855044558478904139166674321183036612205199484706799184728532348806362339444984960355441494836262557783932322590258288469364862452218929116950867221983159575830891159514211138504510631833485064433724016094517022739958743443257291802958012860210626187257506869395594107647174471375643313660474730078977111738500931666423193469172145165007280999393434472876606448694661697213193602721873292756789664390455988082033578031699206923657062855212974962847511028001981964962708121056468218406844008267328254273572620370075299041990912200004216498033396743773787584762598984275293739315212808317921724329606305310314576487443660042989351797211270476560859763389885222262295115683337025981754099366397052106058376076975987517318947303069070955012580928863850496989535144792875512021060974208560396890981135103778168393941441593170921461076405631773400994255271251590696430298547419478214921054679073998043758038689224206316633461452202201668200152454584476904484392296915909118813816844127082374166880696002230641343159503095931795123142754502709596279819470731371475731746610383880428381757091222396295025818501596888603886715102894144291421662697355050179811187805920161871549652300794123157226622568755903697460548219425712281507172274396303408013605343574728737601675860564871118881685262751738520595043642324779363434708018615613669118620280729930603627600792035278838246105961276098188919191190887245788315576216971613013419859960696690964285137664450924739145966044325536026576931583423773044239047765483972659632088778892171060921755433227020935907579702232077488365252025646345255517370755639219492784461688447147792810731983744185521607234594977998340387058422489165776562445411518537903052542235713277067527935227773094189885847959218324267147440825250125856707256748499679460060569578494082139076927127352313549749925348204666939488405525791833475578764125294742689598195891438097434443716226155043889821040859598431020999555670267596008010828966012191727033184160616449991044540288471630407758297478938302279036334706307527054312367638151377329863010380962769282014521430247563884860551196101672004666507373420685069459093637529442251966185928809123556188771952410296084199980033066110344824068666878583892938991026144707969951532801054979937511888679235485792769089833924656550476916179260431954033203531521751902830851137532959836388009101494714435174624716925205853601006703853755950634313290468460530959671767447352094027766044609836880971616155278727185256649062589530227643956609938085734413435077421977226390058442308844351738339960672061263974283827573166060628658669642916028628069768560249645872599352408995156952384377730700719654980223323708633481292913595480130909672689182284128609801760095230807086718601769937712619215126781101389166041671361544681320802310389502264776177408585457740163179291149879029374757733977178534058645015859471757358125969174806148232858674039148856961236214720511340641098683710141929152932959922214997496474140767872843271482668060803681984007461170906552498660566860318212614624475715577067353338215320785386600884672534095693792051385170357386891809843437422819832933894056301901340666751511046426420907976603605171321370174756859893923043280242952399083925361838408971450939209355738165800181958563320837703046863002610147974430714050972707157003439333509791642124431300870377119668708381613298049312289052678253219683226127385220674431861328665413796285490269844837929916557112698921607668079336293388535791636626931016404250418346653002075003445746319063719155665379241379505704139618186918901798010731732052749151061754897633296955716273485449068004136518544086681479923577282666215346722688588808440032360967042843561328258238155665300093715485570402841483913470114733471965831795252820558769086972617133755509533400438202293721860050523440308764854635246156016882430528157762938825825556387057719898088858743523822037357870639029363768953714028577284484805794667509479194251867029845472531436939785475243113590497549796208094387245421717816186908561994732097221631616268674890142867745044717280448578374986706980467384472524743985051615309458263936083810333519614151855997028147190119826734424926625406110423542126363150974170610014627808051946620282794795726847541314504495815871887495454225216520712859715877136934045272698044055550140749562875236400540333472234895068115963211814294061799351220204191639212097515074238939664751873631801162389372289009902500500851386828852305840024743949056689141420600478632648498750675212322619864657440603553318226449657997832490037804360230775125333166954948243918413564939663879011920954106826639164635713491033596685724296281557965953169938976390437518130297218596150119131774853667526351432052016925316792462895746871276220102745378293920717534194722673683339658851540291867185295504468167805791597597526890065281927397901146199986294907061666685318929495164443287792612677214637190365151705868078987181398843272464666149254704671539514088081437983217511264437719596218606622387691826132523870314288679102857134772904470525514718670324438581019606687831022237634314088353191161637379869145730253867864904562805055614045560137863377205149665498729873205560336481105606159068675447702092481368092193977896443805241459043804468383725363077361308580405064387404528643035993319908996385169067370958664422797361715746327636000005443900826308214112692086082941714613627725414762637500986604747714189450543173732708508642057368208028965826928215178045342893479872591043427831034299556735277648238524688195378606113918589631738143564440119955164271121368344163344404311168407826149292363273772164661263555596017907688408764050129968308761784076916444973989289958628451837622112330044399257281839813772432993085462629695696112417110044058906261030539118101134726248022837977067295146073786055644837080087646583240807217717072870209030442974597073594491763058797580596261967517305247354777806662516555663017314143951047687066503021263623999607586581740432646504440808820835889979868546250423881231921961107904979292450974087386372351416094932510319841519771834728022522380504252319506235440233302629313877318373368977020686604955974966331261377515977233103530681608497202932215608365328243961869677935712222281328114442677412471861148943496607578201364119256262888117981789389927319241673764946650532381242378369099252982434083473192327068955740399454644505273495820541309259489961852394783461383376111136207469708570791670458295922199052741292626135800527918167523875368434286897637687335839168602250722474946802496686121956794406389192892311233692330617749857767575148168047409686198904379876501627311387635990745851273528546515563533662792692632668686965645465440250223082038490492227387783366599846759677052157130917472418283519114244080064193935175734410113394684968956737237097049153544789626761129945745258856316738638228730369164670415927068247101190902497707074767232230170250375504732856603668367994716341940622673556335036816793329528153902494174453343948055966488412321013708930295368460504993933548816331277220756415104232848517558392148923200182764665221851136651719510963385833969960562013908130444939342307370279521262132882666249500149685603119348647715189281610084789937324971906652798737557876465355582159253471408034394112628061292204342327481707536713019954600250870942578592309211505957237881316705294233712716093371995626641165039096246049649833295880625889911743464626485490182607059272072796509907270099424187989519210674211186881550054717186076441821899214436037948307277790134245177906289424918595377070645307244571446083459701206211113389446010075832382710693396569979215320499505462680733832329485419788310207944320419964120724667114222595225227471890549801829311223648378032158775389973390264755723656532133799789985869650840830922842107584154072964798521781196224123141983655454636312698520059388406240560807150765408980394642321295469568813815604333890639805293528809830181419496683269509233570093235620600354538906796134489624706931566238106949234813887565366125390319766672195013475089608364485513600130986400572549264304610406484970903252679335637300370999902121468659017111545350325295629335965977428709274010117995998866236965545665521112357973003726253092734911049608925325716097603274044139010397830471066406228028173401159565615014835829105270876110842147775156278302249093134081166196859988869658594795864918889288338180568059413024719514936096822397836920495550918769719381520253148686649055489676363748975130226960616798893393925730913661417890121316874826917665291215317171765899583487207063970492682643312525815657581750332090180770078120669054286350073817163030696539317887343949583097894123215706136655394745394540703238518437411470949784366415986836131843855255821993758326223238938347110945580963118621300451498373902642681125336195544806108171197255628853590632438816742387321185805954756996252565151393023112258509544048913632657523966259965468135898169537969230193121770025173353685823026743292581239197310998989685884756060112225905118576420143758467803997384709564955934280917686738524826609780455494632012543194009035939006799448180826773920691598681704798910029244472956340082665754334759395423813473422517311287760727236307603282302584370920844738529865129171476042569197534241451971764126987781076609096058147618670744983077017221927826752708955892987355441095924562531381466901530305134764555410493522184950243248248551152012997496181334907296130279374010947102596547617941210075839531451553092022278906287933963420946380848363092767406729335488900168997258153289197412042512750275092695708934347892022143125400070216533269471123984732659255322170105745198872677480215294229444054155215388046972538972279074039193040673630511973218877518125434077192160300782780490837740806417176440344578388391151815308017137453791165639590285798536632619597906634693340638429143631584010612561378404139019134063766542879668642071636671783706898637477073391071776221712925907114756162896402030935629195515229684700097997052885483602217205190412324908929189793328029843156361175397078340912122016313027684435662863361471553032054180613698302306877623826677982510548745519835954375905923596474410630315083767486002840208443813355804798777375710252181217625377239182758288197858274707909939734990331222245589441325234527551976542510256788957623987145296234531116403072216843498133005080084084870891504102845302669866206714562343456231456501891391697146070676458041249860116420992354020005938165689230791340796942862955209982241804587199717521879582377340014414157010831938330097640739309136554905215195298340676677193582723826239726308626281926505981978300274524588609490199432793417401699787497966866140995554580767845788525083775229973296169576838458067590478534083244222081392561747521857629281328487166935908268075796328436369686774697902727908028030612076462766356915029994845265873095927006924075700801304617638911566295706621158969745462834917316953200695034062404028884178604521143127658384842059713406688970481799682776823484100195880237970015176742430735479743071724988517818207166064727751468019578220163641353247188626648336649264483546105004877479952993292517631699610042579269463934827359707593039145698319155369781631537022839889982711060143416347137201530200775047048366407024682350786284977684837413330516041165947456153807778345107849067519363816402406658564585007371898294027260051974031619784087534941053071930570045915792339120504302988821144266878161674876797201130752713975801266272799885939178335592064361027894739579135881957938225398584170866555190855918621188203330585645245405888736505622574906156953061394703634332099308316499910598517046151535940358623004654101509633138788678615002579867094255176772475718566673202631148303464220154210628469853293765260879879084418313718694184591643434524888462608565200826580634483576116037005212143290387305514011028242575676341029356696966744495231611234708026757641152805790985979539959982370659253531802976585404071612752890884639936376374435186615046270678834111755040301279646294354860739446582334878515896599144094004295344762399559201941096062995490912241597886865477134584592598985564416959629940764607403553841361517151630127350203134175023809945324735568643864137308280163039429737162715886105597298322402871367854971090007950962624198751462351620432269879225347258660110644989151973287398344784534514111239476202459141495347737255753539605069225054910595585530442976954755730200122389432105927663650432955778301068777134841318840712456650848516116580281663685110904608265579781020060474829302104032062995149932987732870581916777714587883309548581535005073515553735288855389925234750241248196518369468658370648470602115821565933986704956379803599014545225996365376423359012956649584128884152315917899853623117153364098354519149032866954662253895667013433661731821135845235644128822568041227444035597833330007737590243452758380030146863956320320925604205744401984706101121536293998108370823035334900157934273567455195711691507189644483476745530819568563549365524330876529992143647618872720006922773538283008598262688818521782275970819861156400177012970615451605849163120424202318967666800760735292578123751704302445655609243402270307892507993780542873704060661535607933554931378164313831078868360279924686836505739682347747987111059456989843090782117206020658664158440611061297366505583199174379920478547895853727410399804614843072598175202379688942791526881438242701992892874697191851922344452349934256969189046973615131944678438078276767894393965697494864594407123693577042851929790181076269954564351860058280323652327529547649503008128467856815819718558946997625498582468835025257869516151757301132720026651427326456539506236153574365799013509847061274456997763765570685207173305271323567012339377543721533692372838584937345785837223657975316233607852989478103384501196044143946026743116683919365446794908124990008658670168096590476258979508577220638874224902391575224408483621653488923504562592567776890476072553841535086255158267969502432725631920879546362984438281974394658342460767147635989125958398689137457312547166688772409703921603590406042911038250329026141491723315257606792932101110076503966585552124141890059786867280061693787239274316208117168339936177356559247170123302627225634719858863332196295383135414405408254497018700977342395757407857016793616707745248997879350928884382614129130121987075262578181397294448195337314457277753754024706636744360367928219966228002909055145141740935480916560527152538804909828925389621693739919747690831089891072363565667639071644892730704747034249878676689046869868293362106534935234900222728535933615523004016435293251617271722372900236803770631547385769930578692217259590343147228889592721808547267563027175506175574233891685038616285188316505369960592610659210553563911818610414128228773389001643384955234800269201620320465203289895813240769850711277050574391855844517390147392168867070476656260501669615851915061639378444353997338017249756830872961693344686190465105070288651429833748023299915945858400006163857926549536274568544425564361083491802845285944181160654910868464394781131158850593131604593086764758066834431264284322757028354003561134440038601040673943677220485995195720771034481591137631928056804325401119960522191684490167729054002399603611892757486118108148386108693115196068963179507281765468029598713533273562427872172760198985435216534924629902035855623423020292808539926806549733065965157225983440414464855324043047259282038465822626423440524574647303387460926983263936189590882387288913225162751694156592511710012236094708486755795995595970000904747513560878852021299836364666077886641610491501736882901948113142573047415111056168875184527640500081613853692603266917474673968820289270794373620249417965561892175942363989597229908718061191851094837859614349019366736015747846713839443634384040741572908306174025174150069594044941460121172420731568243965066977733992762533823222091022189270122302883755331824739967216361736931556512741055284208552380238905165767414620555114459491082786607763876371297414332693541849950493417466880788979676273714124268062290288740293667005900766869231209842743448532017053494591141838639582970072282101239914371287084584636448827717727429460742470979188895434716797007592660726307545235879504389347115033963050235909297336447821696169081365351483190457676944603607966316982388430687626326311906363611278043140871956340449143140861294467949752532290316308636828874313806201309849744591049211346267912357394788314655215366186764917988918224077967492225508807704551485105269920462807956655400262001343364840887725547462636315882723343888628262978445169828430302023794874143518934004409811853376191547927197451089977191946535308021775042649128017068171089901338689991476239078464945210632774848592589787411253401490564710302442347973484566453325791454253069420099781454800248498800704031987235588803101152770091739815898402131301708475944590474981446864633046278375958235358815325080948819582157180688435795317119508415675143623512656858597972398028990521733708215210097803828602168005726731526301904380072766004841383370602850080604893895885063497896010952580305135256888782523978726938952941514008710473324980286376300460376950569781543578538199171245568540009848787666625349685052414999593929812387907839843630080214712595424526236623594193769567788844042580758433957035117370042428292398025036699766237786236427190573416279444128533907590356810675552336566236156258723219379988081691336932933563136344240406929186876446315365184096887393512116599533941459401446603308673558228097146371174652789745364095609995296661945135408222244672186931220928627176550307200432991538661618927412197948537022248791728414868951622835636923411664528434993488388276796631632834857224880619171515951484242733717649688420495825813746434065651174034622647810359586881342754246175434399282888681099855285427375648945795400872752830338464711160620161928805571690670565993545236239892746890836076569946571624518458038377797937087088962503795282226459287119647574277670362329793107956629413406745689792419372998776648847893508350326546211671246388575255685814282906901941241452719344150503004652385493560785650746943726076219739912920845977946945493895895793211667047359263303347295980469830315780513110661617810244664324125406103874007587871965867504509629297460969082932716211490864098297361151196198650575396941869984466485138541597497310293406451130865861348259199387300133296428734156353630819438573169429887939023807551831284739371389764644177584025875890876883502289403591161997778430709769551105853551016177682441949670869242932627658880536341381582303369792981163612780114207947047612557439523134628286313918138248492535261418849571284625967849647639722887053990763505260925253090308608851197878574496859451127236389494382463145880421549622862742958149753199232044351910990211503488408356029999297435900038044048868244491229091984537375934571588760602100844067209923818971775223498526765997312892043187164323333639713432611904171226214621350152886827334407397780924111112322864314318764674853593563326304980811186087211758164333652612733196072421833824277144659892075397776310357652385631424509849761897251216399238410894068757079007066365892276624511429761533098679978548808891783060985396135414904158972948050886909654942833116206020739578334656238812935619325980503125870976035672091779945919581664382289957338194245146998416906703304032690017740210730323364713310565645663731475024348074668861268075543013203493568504231389886766722939321875836653143975490140505666950554065051318386674641006999380099334070269022408728941948446818518472166860540743698695353199646829640231544562626711067824520029001584636986163432933608293462670181472393094429630533490783263980140772133067496274338732210838049074162294949322115989013642483552984978529891909656579837671193839608363314149013563250963356981407112735988364738091750588335336568494834892707062317747769202315478377821788978365058094282094197234985570846564856712636938460562593474805920311564585167565298854159447160211564491619020257314038779936144203750686473182770805087017636380707355195556617807577540157283608744195714170210397936375938838397435890711299230394135287614073016101130103828515693008258964715259756697115036610429407758237987077899794066453098577313240771906780469550033852670295790767139555205927999497798508770121109669088202904031494734503979878498488639280019247794735867017265393955916950978011060112203097459717491557136054906991503131408194313273018216304431017811591744438169793872676090920583463044423549319437782688175744989858121204392747954812288968643254522144656026033446053776116629810842934987791811550866876114033263562175047998816170722066712409160367332884224247263839893200909954225783602018562567824611155984929030839889927717815901129213275715115072724911688285875849226807372717168631089296499347953857142949045480436581367140238601846071980722438068902691372861220202641027715896029280912598526409816482482790266073109343818243446325014327800063382483012682817039299304255318084629587793941008980984284652734157475107355977067325215002698932537208160295601537384150629209761333326254831477488636834535525243933988033851636453240255559691974032189355223220998522026808101275525534364195535584592849497246284420792093194667548286338598314359420518487600510377336967772398919671663744394377299581473810174766002549027104914273962978717274712491764593795080142739789833281020062197941754672670616327951622150503889971148258425458493046867082464731453613651955803738731760584766453746590469719587072165790192359179200407645489403412309023595297496402661626283635759677623839187073294166610220772473257396544237835780990495515591606306176845696973400882919906607621510265665551008136445556313311967882639391837919692410473470351133022567214576690455987885987532571125969590741655966317263825786871056595824019011446461555580172592117486098961586415908189029846787543918066466561202028201031168895112777319750911167838060458424271917659953558066940681960119503879875237977140465213977211964234621521078068563890665222828954528483866259938930033592896490972842329432025639020828463882640112159839911402670295180731373118083507241153906817379272021164716025506512887957326358760375330642155988918116624747010632877888346284068700141619500189515275788314137193739727842164126864184987167214586460365312314247713113075169426718072899352591062893537731562497759191392613976434008548348538735110969327218837712206836344108365589405350483742370487953593567969195427863630847757036363522841152319178966611989594887049006008619399467590373527985002718874177899382788627121953833531221566516823439445605490803790026743667004922225115288344153339287846958289944396488466837510306101276628834673478991272580111725687817285847586067026559351841477311591532133376192017283849897794850179630876573263997415114247264339737421954258170502273084653082987965685717915405248427203671767879755637615201642189174453812990480553631531135808559896166047497407758225597755077616287788841274999414428668948535350526694278907896885882810507780201574319262938133977235932363844900200433447566874534694381091011712081103477919315676155109267433968595253179227132731427443775532044358329654563122729489975806324391015345622966684486604522536334608551365352026872131634170036170399093222875522205695162938555935078228638245556899277766554992757316476081632777977567602271125789360955433683333075523125482577045563080116311019365342271907121788056901604094162020160702449233356173957010952509403779223163372713136781910909403462022346871776707530478593140852286416412286097534622241865830263276821058233101913672447518253747872152158283048096232362372646300773141378707006577374202900964429176001625668681579863728372151889838648891345605168810616537976278641546170847695833054616835050512372656077822119427471296309165902657914107657495397608782215174548052041094170620979096720352057599143326394261126094466907774189876783048319830366543303473552079589851617200105388766086153220608204106521451041485319584212890375116100814842811404979061923717648359905701916485360526510957844311683720234028810901291445601041154597336387492211181894511469444163354199819175313941769141326070616269242810515249926683491732155522855450593756835714242246261612964723704403567070006321760944141458494253786637416809437825979552737141544858813647810521484848022978189188548803510016971527163814264583401601515085555448500078309169105689814775217574329561289025603018169604716948400489116028634790170385272131756080532574391465574408962711104256272867276592877584632122856776839599602866482266373179006699046133357823455664234044821674569363090433029589575256149517556983442467952088438793817843222972086915390192727890029229535633587182149209843040872900921194140940983551403501636953706453353131593375634605509014551536932952961842180770193021034200998358006189847478143169917554394374880117425669990767199767388525934142277411707890259028018355843433994044384706050879260938169591577472927567168059577091964147804612380337384310784720860154827918750025198418594959663747348195102125172834066566170611388956493036303611915575060226051168230875535799430065197601377525852076267225055645443850384634094854280634406286947081427837056340293215761015647214926239121734599756360821702783304651783853277273410915538994881800418447914479857029478918357016042196762323884567463549853442651558680575117897672886787270402227269640208305984204866046870021374524093659200484635073466569612800179157968324142638140588972800940746135076098263363578131453849026755729472559228368111730427943778245866720894650787177739695664556496658020059238769189220915198178922887325733072823958254581546369654397527183882138228834733302954851202360678700650929221841756250589177003700136779166032008834506496515447709444166394171275957688259467371366750240493432721893051890305703902921797001137390592631173506750379307296876955516658258083360450799269920187523930987522982937624582111238396835631875505846703668906747127605441085304755138540056453368960303644542769202380176032275763278343082760729478725906578459483385050641996785045385876850106744409162003002179415146762831224064925050479796039235858115111476409029801631625366770790604976538443151997500696846736561367542559120010957509351660691076930608766250042966562114309606582236188611222976957462195290809618988061078946992658569945564320340207177755825767881013905777803884188607872965309180879205714588325491338841872995897144021847357999915378188220163189551929751903481028563438931440517441155773136824547375065946689660034335022624100356316523787734741758146185475245767300604854354019953518651285194001576609641625905781045714964241286537467805623509006982254630261225223251406461645173322126072317053004558135081428898955919403762903314925415650659337302366300562963409803132172691966896839133351344013073918138350311759732538874391795401123378674221025880252169754345922739117045020253470982374521320925873466600528273832813767905311705615809477584636343898823144309550015578831813426882505439895986021966908917140018947171320238193758664246346741947256487802252989739473670601587985651422629433390852389319098798878505991772149739504832582509816103062065402539626286015331401174624923967305090313016069992004995305477808211218085108097931655366122056047644541630608218035050191453430248252554571681746119317836777487714981126586681716239162305974899395145519854593918346923673682196651832687487378929321586011045990606062736978300797159364778061267515744915040082932851628101157738122240443186556804106023422765412495436781787621844033870536431434775093692182228313193901957511915322041583921329019045946543059662456218511261924820711634580356843465858234365760331104608930588077093581081171658586003234196351694359068373745388042666493862097061032447107464373713469218849689691066281948381414966262266189474858322393790900842195184827447272327330272338051202268314317719961241647656226390150644878339591232274330192552465865894865261145603309007681900591511793645689586063019134711045245912926273660475428106322713476235252774691282291930837285231243171822023072115416980747992457959914914301707797240115753704171057293491645430997750774294309721986652823276601205517130481860112187023338610143184404337805869520465769579949863790354899962370250991446647193823550794177195446165156023689888072378439394080938385449672289970842568067893428138789141541858347828556188973137387646645205653682462855881808243192747045220218425591092759975053038956663447135736648135835128140552182030370661265161318672072612281948536455241021569922965828199854639616723015635438478033014509966068102539234309197681280037241006710257461834972897744929436969454443755691297356998589536127574086523001059671234863795193279503410817482703312642271394677014759464404307721091569048617819723950136933010904449350751458746037254647677603753173857454298637935183165242590851883090870903324712101960913311176110256210968852895146485069053288230466493754445131134909532824751598921743870449943892064332993807546741785496331740916610174700732205178554279278859984135704949115459374526803138239534008612214296570934567115299816039600274195677127898092643208433038044942673712334970720129513035352345120640367114503387198107669490057697903262634712850996003174459422823558772448646930099744570824982462020796239363746898557216193139140783675744908277999375795957573573759942154517078959670578337200238471864050815238379908433268948394395005238046862421037648861491878390967947579339679972252614202757353457042784265575982402584551095536813265954705210111338478139259581305737346106676835170827765421890296209947645015522020619549459152681690246374691550991730054581905279341581713834708469485236966746750277202752045253032557241741084590670775161819128362538869758824423301443447054591954809744110007968669108287083681998552229229648140431490047485535620150578171578809036464325002203260683487313688869528540077322102043839876131819981339863356576365767061630460235095535361225470837162146041817474260505938440364470881491229974972010115704365155045458773371253846740209972941163710681921779214489372273623288337182159787955326864209285799815968160697747836692962759573586830316090540171649846041568580372960030009891260732177938344777423750751081942403310227889860232300858407722987582824843243251199261756320422875838976725148675723128906383562040405104641932304280673656305589316884934047252380070584051681069544256153956130611181397778276677620697863571906385324817522568158029121901442784944768877175914724155828540320452759693660693897035021040029899987901531646463926882980702880660225667289423147655412054049137127278221368328458078118560175994602430606171449991288116714755990982619748781696029068443371607591316386841831500448930100607646537769107887666840135145717577001256399395399694667878219933164104895575121387948291559503919815934675082783211312939868986780163490052639025086571572452588359633989516458735235246006819819603519564327969493654998488821924840203729918012213150955443237252217284908226989684083999446840942783031324914437244234174045433322117425888897771887343989095536817156373240571942197514198575274604699366360486617569976683028589522221534711217802871558040227672019207820818038728098512425184810159024687529726050646107553982138566403735826093839480780071905132976609954426792928112350716447284873529479514719495912860052063607715376538119318209127409936907509804054380301605821913469284676291904423943673966006620185471817812298139299058810413992996297240315973310303609152762218280327537732991045046293983576113181913774734770913623499166230550101686249331814553780645293061151279973665887001036941944909744572882490978000324218022055794258950496147291518511357113469369841042673022494934691209226636627783295658567246298971520322661976809122576551236215547445166809412708686629656192147760051950775964968283868708775788519842141108202431708009605226327752977338284982734531865736062385196706006850904061548091459321151451305527652495266523397122669679981526432645101865614920448906637950614940743020650486886340054783100040628265058927333278190789987736178137414340517703001296219484923157065975114313516622258254768133350931245945964854609715718126355767037270790516743467683646301176599931484739597082039259634357257996228052874920586306937835159614218254836980696117785756229151642628328272448816630725624704924903781201604965241309051999285340863452431838649349912560662367464083461164550941564891995323695036922370002934581369348077731766487674024909669981574826406259620042919867518915374748695432185392310891017705355096256937796571100727178567927434126785731811197032312029885383380886965877682776885489266634273813188450913282310201047289330457619322642777561621570365758404074054896280480872108842025635872756328473022136437258271923139428873986152057122406455867241271904743728983791129691498316430628541080416236824237491969754282886736503704821232512371906403457654561801555292716427629742982765890160939051858595315126906796541289647103047546554556312703105700900253417638143730886954231403099946887434234134260241455121098980199579505305744034776259665793619511744841026956968826651550644514630700214042948960046524103480942654725517865759601677405223022576644822778382826049033292040943769659630676959342174071443930650198640451314738855400746001058277586464921904311605034243137546079729234739333684297790707723417511998065273187418099623596427898474937508542483969742407916394535098882869203130216760636320466694397229092083023678724748372358187692449266081075971551147729573992902166387312730875560163925526355311699732527008228908874109887165030906157145864863878482429192269284578693952360071740046642568720992072557005177689191541410253812934147222906674611894134892986974030512417635754390847106025196482922332463711090736214518587209096511494377239123726469194408484096722831980377367693480689563022183408394372755273633173811038936230007378418518543894124006033462053215242547645209304199754680551518981696134800370988859483626790941818670562495241507143359855688396728017458630285287750567298336772242860148937208779359656599821200226577979255374383522447716652826630129679162180487585745616231180666803009802967596695158531831328598976520824722272262370724745067647060943920326724156625656748048853893919009343324070317315042368094333556058611620128323915776075781746826760061541189931255252587905603637046085733864295123841560329777514295502834012936736755055540005233713637583714733486367859810308950852264082914472071026516121792697216390754602270228659891167717127311030373789338025812956595135865498237594305849436803683895100506918187654133946680113551742145415261977738236357698401410330753273562139190558706801361079857128392629911248741100647809553806921685768231218674970919894295508037332556169511134539705518155728025279883403809024893831330712337543709274308783279251380649991126881492075350583913371889021720446990021992018657387434266709974144438889775389739171706796741103420045051959177024336382161034085835470510715215512549024103089250589697695459151478133504996534826577902197007146494500723098574941079637499574468057915687110730822995036980859029710050321825346373808623227743206577492147780715663527464547137255668664404613406751335334102895355960285739951049503253362254338940269318451766211984680220100580959300253232298778690936103116291722110062119534158258327480126095045903398818637446998683806652565936614669527813928824719301994399123141107041423069949652329206912577274455144906504215026401468541151240680920093619911360912739802811123162655566675743219463232904736144000658333085742156859380206472379856617886519270275937646372525081293298182052707731065620964922892637015667074024950843464093978166143274966787771063904146135329449077122501573333330282421431150996973075242819782613161644123191516650096265436573451220963125297166306687945654165450592795316886646374309543272730942777421706233946929133660368877550735970989696834292587272127166961848052244218428017629832422965341946291488409112972484394068616572205455787245055873299572406275978758820023787881586765758531960347985485702996708575972610262259231209601454750554686740656974237284908222507578621836512215436918779985283839258652964360622412733675381101625991480507804008151714490405826550957792653287744006678500806330899287130459193644106457381404193307462137653934039164761497529608387533849224863516948343122279304562755928951829147250337540884243933962370497142347352052749529764686593560960537160516037221015126330984754955205195041791139793958042644164450879283285342725120004050780584753490437408262851589313388628685895803725680170545540579829761177373425746928457012134267366936528072500028941921554252960921963136661657648777629601156395342866756935732593480195587904444713227538422673431134773176901368057701944285557802247091743152716487598966989911465074365907676834607783797296106683848138842719925093653465391990615729428056452030352515375814384508724266190547422560315933345244649521346639296407868465023081652862654855224194903087636272705214528195474356751335056140943122134601523646790593984989559459593777776253580767622286823191271776630717130795809696544054308104763759131022879114502232760944942521458822301591842993039309576498071933605842729751234691836592237368634928038316097853684580221080823984219040547154487957961020652124933247839871179960878638361493437407498771000936903027610531881988925929965685296874603425925566812591665058330040895611852794724245898826307816430742238587286727076423238257564007385921905195360830887022235992791534826183401924789486676455395841048616687790373053510910794175881533450753309168633069106569373261214495907481067141394080931190020107826734421912948679726145435922079685369690947930489269479171520181188237529268280314340011915478448866553757356823275757032501054564620735509198597102044500014277596253454129261199454082820345826383675067963396277241013465465025484151470350332786406516862249795404893103354920514671633986618205757684020325582468514696220316523205242557153381324427444841620602004227186641108016490385430031461545997610031333289237404177987870145718470292660766312523564206692959983460383484221465998689298866947442990440721935870093351258888173687344790229400488534074118379233870718438322559858826870853616520214339803550596157847069164373586379814483063711816042812586037253450475050212364720696445419512555240959353765509723663326266080990189178899594789297779336926929206117265293365662459882781242265205903093564556348568269852660563059877028042124747803540446529248409724786971588732646902480482237814129515403653294178473016487714916244002244311207281495604099115235943843050042909514283587053964696076187818607925571355067395020174737455311406399818499726932280904507518475354437817336765345933002508359645836291695073944766097846418464026433196739640085650106799029882081416088363549406441927627319911914313375788984095442863486288983770460423950963088646993870475776418451896627205158498040973425666971867911282513233506811052660880462682477329401149589598254950126559904298019413885549142122749650558024042855614068415354884065072681562549050469746089839806043322030504041294302064300945951396837888159894737853462585274102885588700297602606832088491850569153188522296603575221021262613938343125567351097572343792965838598755367479169319800301585916447640090981995322445660614452584853656335310543085392028671953853498789536254737170699115593356509464731496780109418583590580129885897760061757072553089442895041285014681999254045100271303777350559669036339817306428326006633305126220411342246945005640079958893522019682619514740191346104912273722315444111337755926711297343480702391512407072363210612304363235098997771946704501846500081024403092747380307849855221775540048573778576993136934564016960571885430599920482836111370042449130822359629855933738722934088280122058676244838527858003713266574993736977666598678427781373223869697225195561218687082005425491449628222887117249266635753939138597555678871501942062086242983363103303965440435362031915208057596480868268732920107044954268153382169035186548189227812773108415354396612524959602645264940771613978476565223662639172740479488557146093301920287732649754771986338933615178897435381630032750326635795574104098894732448475887476207222906001916124115694745603256818027490900370322315823326653156695099707559840077367275140448299569496916243836350026450212957385767806744027029048219719944603822514247559021538082950419634192480849535717216553854934518479039961650900510119877497574138938667289512085179383885184225042491027123188597708169656473656250040922658960970986008169219671252782924318045408158663083048799820869532992298794767916896379429153735735088579208928118147912057784547891755134673115750967975393205973482992334206613238347951661403535857569506314022203101319910295945052007764355030890100878466359358271840524907438569274849302293878263618957399852868502648370798324633486343991403539975885475129744717428343956702811967778542300986985240536921019434263723337530149745059033655291572512072415602691788925338443397029967636416963690037476306506689697732624438550108991579390523677452474034583754060522564020000070861922822692618553289156632933245410185248592685150141893086934899545785316805523781991180443014807082887906523875331101008981958146230006234251376440283032422079106070405103711197839090167688665469744158513908004075550143066632831098326605272025393801641482224697903365300943086006236138219438528313622038440472868905975507967380189749863255737044953993443207243674916915588125474831604769683681056073506938574827678055175981947089739176918859465897591044718358270618904133888213144933946073734008297867468032038627862615120375900748855187460594543308569121594038824871581719333147453277564636006741124771252256958285457322811581948440502867919534954773040365757114820823249186491244193663197803019789089616777418692445589181022960115421159567190885402600529684083706018873385201455972244039141266575234697863566392271949480347485769194001341051851389696994472844987042902057722493094270578999939233213467421352365882537650689885034364220461788850117309629304832318528208200875987480843087487243761610973832534705771521005873072197815601967895102346269804569972963990396343377275472419641567046366847144036763591684444887168947607975675249584330030162905885327312898327952923538162186665663505091243341854308375334109105142107922647735381000945306327804071146592867585317612348159568640558500742379792044799136919401533154601175271568040527662807415636932298141966872944299862978060651485626509370276140637698712009477991462846224991043705389218711817279704196902473620380969755194238245330889744073520567025928970908845381050876683814593380685686617553165409919506312282081646586869538710290411344292767236482224789619654324050064920122993217392469316154292706535701632657520073451885922382969593726080154685206491455088206650287792396178423515901191733226163884054285603292287646713295585050062149523399116293357545062633632434748425332344317964085318593770838406453643885990476555584396171995675134249132609037530348016465985665886435375614518828696622769943744629633757224081108794930815563349586700797238672577157847048839881914256022839515084470762718570155998710565817833864752722267760165537904407289003103022163865828443133332866818851719617836884284727332145485817259267812098011244440501538101240153662519736190699815330638417594934956296381766438146031610812417276809245588717613693307510946347997969622315323390681730962482706502024861884829480084917586303816559640182498253654710476090702304185223028676029719414830291891326988627462280181338875566525647090920953613245187814005243268863906044958160827285388777091440903407345577673719192482910523726182956631036386200610599339241308460724732812804355947308109400217013343428120954037424960859927642960389897628988662251128411193542119314301823570276983937486435839929439263815640744675716389443321150513660799973546995239946232916436017982710879765973300045564159509394470828299394849337114383831164998513217443986498890842830687815198612549238242875255938865014031181299240384479489271386346757617942217196859606322297998192232281859558285678675076409419515415979317762130217455000522313014846518410661920919741259800010616402890376103335316739298000818204816384720172075490843077868614626249017465411466455684156203357646843845835788883415257119277293940388836834643733117721688216359619071736383327470723801816396509889898503902714543486219241379703924486727094477388381248953877977505205709950010658281129324370369125406696434068287255319808314186061501581344415418205945701273430760984434720806425114948578853402900689007621607123161527091688242453024683341970893873736841303640505265524898506021450681831166228176566146884523836765170411326723602597954169227973733397272949966486350810765819068272891349770427721556185854592272515753243041247573680051363564717019724050527380829844660895203253960574848261147239115035627485923535972177690406623623723478396793248541465505530088437306034547504165723865477292348384314142457620090792981536979686266881342237049451772442862409594442675811210971496388390867733475479888927928684783132050593092229926323849182977695025571743935993928755671124811177597614152530364547950294177448676680700780777425480897190818658182329550029863136409510739232530401140947589833888079711340408422984605538370477180152622380992495178060378234084748852719799916058591888727515469396613493274676768401563740878755505293615829117081606031749930298633857628269652576416160452675649604856849336354761682654314887583248486978803998972755807828550914329973038464585829674654078680000512883031076691654746275747107473767517850812454576456483534345811716693173854089209553982272487519688583201430402152621900205857979684453312527090401034028895536572164979449448579665961582238289865929483439269401069850320435779001795454116214999522371935188262895545081414463999726805648398939456534209768577207817123783407914795804179425722630063738311324697108601521710258206793982488514099999501595528804981725509893375726440171758081141559121848696182768399338750436245128348017697178858933275772632627050852202588718874496568146409017088527021299088111385746212966637642025917762044215497145810391325804803363256962542668782740006875340461612157781000091111208665844160533637078263438933907073559601432806948734663131561399004952621250848008657246662826645374495396904467819460448773771982127092229084639298252568553159151801001760708227243985364009236875638645277393765093360464518894299421978505578460870624745110933452444457645221835893674626243831790747640989445886693890098777153812212966895602515816228672315339354760106821525357233103753248843840256040151488113711988219515196754926596565312721868535542000703868137977350278778554666298347415672610713511279985284715044409220157115051789480489528625960122087686664271483580874080936889265765023268545016508975310683815312751596438530190288193764523819880480990822636291074591519872101045831399593807819142221361482438457093565688865524027316143381343252442248467310178597614291630771874949242054480355179491990056795487864747380292937782298653268585512005157376673201508786590614973482193557825723168124326151706936270906422735082300206918311230267791039681012724260756958894480987885841245270366173602450183843909739180711556503042220891161617219356443441916893696660548895738830476434261894869433769490177188365444971497949681293449035951992781775688834625851580172204452194741090899502367533686046160854139103314923601420995536431296255013160266650326391303664470233971269546200540877117570082447792378200475940310947825707676711979858491918498818033921752517855158795145140794752967413579704035658478851237827973095834809788492503601932094585513065602981923146595224454815427595270856093943826303123555759206301707055202270757612167897472543296010620887379272731218758572561931626372001153789763178294460847606868213593425107160975789675869129686117069366285878359651890973750584772827284856794735488507534539550445924302633713240709624594487179655716596394366263646362907435230722674584291331838574888203216370625173048024913926422865167589089348746037201907391285657218782563089116857957394279361027354992112359490844060877760812292563179956938348235543229017156164113763029219470640878157260629315431369416483089342110473332825281121788373067373114703104944582526264472542340323904377481116780054620250794918789939389800663041593987855340890547791161801798167742937365082804542946042236582684089033979568944610537816621125899524658240003680563534010866684410730354189321674738465322180349664218178925984492446604308784476387834373928332765907427198012411861734326053749705502222882078237157466960482254978903759044155430876036014123304802230974597180332503358389307830872308386759355123834001977292957467434160176886637421637551564919208896863129798349666056473925905236340503313950390927259489232494317296540842185872998190688668228868271333423748533262925025068100094799216917736059577477659464972847351458410152187357263463965169092897886822989378016363212367156016334423891911576472768700594496538475389561890974582097720827343179348387022040256390220585371314364035165845241731548167999540728102900361478666821073793617830929283426338930248705180052396712465894121801735543465727456252850167103808766503284766507383043011821491058260403165709225563503595104522538916183279928059920861973059200540566289428327509510482315693130225453831872223663270787587478596832684509165622598591320467083384241782341570879630952414373957563873964159035660237329048139035173536347577065841465008891385416728193548133673277679882963766722871005950563904578374192376730327145849932407035209190484444737885726365011107003132001363959289612858299884937855814132263591826181330579957249653522217130848403176947458242284208380391106407002197923935034109016614391909671620727086647495449817139716413952788302166027511924951209462578993778614466126580917476656488989562968837213706143433096592062395740577471586518039456929105468325519921887642073286224220885210712450150450166150947454397787986825259274987644783413723976188022602730665829304404250471483160814144875188398671480032996869726457864259187765945830323070971740860455451536575141599696938581797140905369892922315863892829171229105727876018110496458006501952655109927026088699146345376224324761428351959573626670503482458882813413412515683857626210776952596929807260473286568694358172020739259484536104949879956391272502972830764806541355654366486961882338423742136024311857813321910845525126408180383629627337472339825670641376940851152100947819697160359433576805437280409722151779607748131307423836027128513006827105434812255827203711986228996088263913894086453827249800917117638007824136482494868907849575725445264163429788999347810174182625854747110859529965305062750562122458235278098228763755113962725995698223060008262211921505319545374896315440496755767211094004767716694639163171451939513847533535902949889124737623028297011123069371427778252834467586273994481864445983037879917964990499192473650320638409088403444216166819955765820114762480391984607605236408792658908689406726497574483942673475841458970767695310581526937646289541612490112339587885050784033687027874177986620497370779394253791153966024181578747313969028907598044526572753515793720188304423738162763155065124005023445956384777436752929278660908277459673181966554813548060534406203970465129433741795281332960530719706402786205086867421939637807301563211742509899732256786436767841127140266469850305564958214602026051768770083797044673525583555951084237508490319445356530114866714170589942390462927878156895610924523759986425642328066250415163500931604063041386339277915059971144853747355934327659265566247319998838049182982595206625068636129606763954021311467659678954261388139891705660458617536802640825697698361019886727841901009567565818954794782482305546300631526177042218061840365351901531978976764825858540560393139172615114486080881477061970816343436052076198385906782494480662416831550647602947719698506977055067736052156161931630197515723583994530168772167388942081664053455411404056966201269388698281178410453571168515182307115370735500364965991695625524234972956464150765927824820006011457661314740887479912943797339397653759516580790232644989828516705185601310884346332770043198975231077883901876266372968604645622795152929758792176453475451746275179995328021163841312512194190690039969188596501695147219759476062668948001035353655974700132738212635699226004555230209138680777668882735027280344410690397764550971224468182769672225220021387027236210159283244625630392875941323393264753053343352909552190743058345779730914755256020067092549999597119571574785287565176875785070767558801928304841054446339250628068927522617514756087262206641285681791278010326746546326541212451736863062640926465214479071916289772119780464101484862479359751060168212333421078102799604178981920951927878494724570327879678645012997128344832288330242758147697245864463268385776936997383972075342408102539191946888963164015769815481370615445127791859905879047229987250151358559145036028297023535672504759494825970134113535677120840717021002132550282143019860211051853605691505799079027953752588223665113170206978440261268602641525616293113415608323259126301600683935547203115082687039523216551483136803370503641307881888854068763427165157617717082977671340082175921655495849864211621857729690770416749668695060363037982498979039248608335056657345403013406673266490080317372316166175538905469036192352634803126497203658613293095956180536454006974297384872002603867888704429998990405951547738142505441992511318843197162810979244004879026918819613567147191130724830117954947776201511815592351013605734496729548589829546944652948891459490354688825583092594557426850173025243027163383063275698726084457552498834322981748196414965785543226150928039917190305082434051165080079840037127456201756306416751811316422699115317934616515945162146529315068768284794640322723375642381738540516139450868996561739429664991993024970961281370885193824087087428604693358140141625192145919903281951716719221900804920415864492815313474992959841787042312481521506617701525979249750207780709722394345062556930805637172813260846614383337490959106371540870140164093324014303763767734254127846088557600753155508603480273713162099538768372856291835228635835611021898359001285508709535648894156518894175599430993286975334133059959793037665840771015100507529332415562145961158343301439452764047491032803322065328317125721956209793553161849926920476924369901717549544661138679703486538555155606460826123959986566777598422125182207779556043450473796443518157872094617395366127083158012518988157912482596139023766511538937895677396510688497400729593800404845058154541653816827009580519793763900696058302826795788651533406300093084200774439289050910125041291009156678483199221474974180441344603965891697199193886488345595398134997888409864024701347830482963008685192558315632868384156464851716187543738573682813704774074010577907450577717315946258144947156319054444594028557363488284239366131007009715306491471357415726862123404057546940025649940112791002208999289487278036989560528044792047934240895274953483664413794687006818659368801367701099331593793209313995975816643400683932421424681512439817480607184103289198698511599542103495057255161207430999563174401502851753804023564317574946579654150643151445329616571792574758895170451241805022831265772763553452334579603478811328035501075669561106926728976668579979180464369928416911776532937716334843206414784647634742892646236082922078054790245370434778391295616242844392195956950685822703328615010818716767416393056778583094463011125342528868295421211799071424067760763865527790214066487035076577140532093051591821573260607981507259508971115196147714465978459251079837355143690147197777037545524752050710123546291579850129799708141637187537400381799042189911894819775993008143056080299975435530963013580040372110331276170321770223025084752653664900632285971088524067588632312681686809575506217987496058925838070940254184693033662636099159674888041687394043710008791788195127761442629847750384692274458972736085948180311524963819632692914224243045144311044691118215138314018616238026711137559676937220581501159105278523714883331488148040845781828922690787112653993129200280088814293922552683879194586026510191933881215278475303127135310647766473142747622867861096616005293315660395852851890187580600287425613937971354524094766869154762072968200082268692867009993263537798199176122048586948597236314952304600918679235909610807561106972761270436459949266441925959434489058839495481432076543566456854580678891419762663375127561627463341475643552649281637456711106191434417934269902939965491305790243520872510173337839593858326313592761615666981778778652904030484771145525825212547179756368892058398552642401202595437874526619831778509689947310049050912575640059817585134297877379995624410961314278610397253984690698037459821285277027941422328985495006073411238974556249726810617369387543050564560449917901166153433617616587351653798645761897668534047135804373852534281319958090095512812541300957472150389016328391231614649968610202265737178406052858387169189089872469778179317678748768604187950347806338449668330746567667101796626138180833134957292477800454755142996924598805959838794466060164383041980746756341365098556245434835283989721584462949806506865762716321766981786454409119716660118807250884975181808039009741773848649234539844921974183173847174839952157547527207881544155941763086231581039269561285885197177577504000090136627058908976279874235791689282990271119457654941180061416776608312533323820768690092130262908490565705331774241383214918700318717240948536691036631807543734708181646195576423215696855966280217589237310770772965824525535592197770233326112606690491249580697027255325784635056654532210620350438130370692845712827754526319069357688009329800234738196331392493957233792950908634958603743954771231095768495532861448151927947786182851224497994753341381268946125609052317472988939440986695260534476735569342344791965610005088903626566146017920338372213827373010778486350191651481741679894791202987015664360726754174172421885222777300149414682751151783789561768584634112477259590819792338993174516282952064061028945922122083816417364375183906988418020028008306224023243312013844685776451957602891527686285285169066618982459230712312859893211898274521253594201274043400959841635275791873518423164202652602885012705821958715178515513816449206683268162682776081482885837315128342178184817760389184728721078198064774927173652355954189803843037278234142061408471699158180208001173776752485640292322459200513142847206434374675363303528280653481115476650779367712969443656051385326934182243001349192169374026125043672538545997383611660998765468416406743422437704310980239525127183554020059225764253970626829503020001444578410036059851136662021504128782560259532781885010083816691640215511481879076683391883298346563415604175093511645100306236599144561151114238900439780941608265323890823464673975870274244374499777148749765048921011987828785490860112969669133911508021306515882197043810693998546497996317469643990804106900934297384052058838730465336040665470806698922951580636573704260520167258059518060734819326846325748875658261357769071318118102209252847066565217515867885920266326586493949382421845897102365695967606774023265727283066140396734434439559672691658275534477603014868783773459797024794950944433746090518285211922589342256030565665784768706562643956668702939898235357356781245682361015817070939850244420087408190420228338470982649594515434095565209624988193722911981857933781110733163722728935675498282644335189084290623815344616289129611268895371323884920119538788303987857751596558228043234908230536310435416846442191793136154252440098930390986446691679980898731951427108703608291034401597652397959223824457195997071784228191500832689000439972677109197768413606107892684508026874192679060948834558943133602662254084654779147795840540015421397098396090480620115375782024406635604137921629009473332312158828211634651505477176974554956004587672914401124323341210983742198251444520081258680730791745399067480598772426805946841673793578789446530441111964265434717176783802971226006078908969226510772138724751878314621001971243943477935414594448942472718310203273404671884970695562625438353524113969169472615052833620516945161520837785072660360187882713703155953109269359362858425131475320917444606665592176110863039597664838160009811789013041527142771242114754917737003845376418983266545828615731227326609219687970936731903051973341015066941384755086908499076914671403648559073943798837913470045158394821483484606035838982708466535430099661487333973997621459331893004732289598534380143208941936191249718433452376431341679641280242225937452691102125222171807180907373924265556652689576434840166154169834304673079133645036535974164767482763295905153906057267374667750480035536379664089582231233282650043503604911159790793660198498132314871305484695255056658058755307439179911403558691820974490828077746627935452392845378195858373567683520174743646982306618721607553661454206347676050320070349987593554464592770993963947340769034350907175649145915875657377826729037073337518082078751538793125949488436331489930810090551133457353635318773779586970910932834686994904912958181474828645529208912613672876470407561660228466100770883450804720253529547414506257258594985527526045381884792802606698206815089785169278921416789455271433948505249708953881356208090157869106694729556411974215600216885636626231821858242924380371088817187093526976320305489250805304685919011181160064042405363441852399419687710037841913990715723084324326454918149073343475053491528877332759119370985536604135359460564105923990254011482282210310542057937128263582215687907214498088046831814555283889306567936286044960039483599300380149388679064040034205364623697242561656624211782865800158198337160838879357923335047337316045427640100251122277370715960024646128787791284520652485966047977616701527042530801133682472103235028046333285372460859941680811384625573843210667806582986570012111671869477661894050434387492709789136279291077739032111430471434462252871260615248775766213816327964429987581556824999733597761815059430364217367409148904577714683192467915139906364674880603331430907224255567065590947739337701373605597045684377421403486560584354610370394331402039890761591616550121974147421173141801736535981103690055952998261556363854327071403002433326547765645783812317758285344732777244778040168955243396831560411356815037637087111204941622585450085490100731116812682761171401173264542870148846309436019578586870546182734333343575053792523804014346866102475181082637926695163389537317654961766830078461627448275603535255214563446452374739122575791891232948411624183637829920770938920494367417193230055483705880107128710288012180091285312339917892754507292663228923267705557672503193296965337464511120978822234299435479965943528095562651698348867472764705033111445098843325139004821259285269769427721394619983408919948079922304777280538067548078246308305337348955542052052789159422755535675081005956650897059150534372332149121868350127186289474727011949088277308932837268495382090008740965383471035697444829599273769036456678776443556446338267491976412345001199221401936104114987829911248064420606852214954755148288662034148101603101705028719551680471416010868551711095455703762618968273578216182745186288745649018609356845447365177123952878069764208541459206885639479327957225493430841185113190937708499306872501968086098180995001486273334785309338822743952394894976256489362898776109528102034241009409927494871910091576049853135061116129081309627807944599744737451420713704535156379156893487477172709062620157061017748732825671354231949548310816628597366055988013948281115633262741594754604105792072474550978212105301085495376088984914401358107800845860221241614729380137905404202193938987244830298091015605305009940696263705364601921132905191574790832720874324346509693762901617750764798450761571666323147564226049109134115933839795468725080115911562281472925170539882161825256316095595180873165136898215283530463987741847812520088239756128532989494060052899457107940528283325636113635674547661630393157525272563654663563653631701284888461848242202736158251277860737873485526912212382121178067617126165467450506329915570980119236976167624454530178005996394433100484599246698332961754819833317745041412968169263895624158231277719753272810141913607409683772380008259162994326068946909549684107003700412386654097725433869010445085922923993860267585099481972314606607431291608145959317804349254401009311134985320131588061091008193719448908897505910104423658890108568060304024210454512998081259984393460301117728774601100795178984123495962913273080023038137049626453126819246375234451301367972682383640834121465728681811229690613520346956326778933224879921803815367010859586156336140651032737591974215397083794528558744790662460305126974743809606086222428572955387132605365740614025498558660074436129771164570056309090410939361141606624499308800730705195955955571742784490113196504386521931593757090243780647601528985303340997130329141814118663429671939993670383836590390536722651860129681753800121369972318834952269856167015584911123618177236529113268632702614249665532359806118460070832699114560640768752940932731737520746084066247168655170639534342400689335381852503268673127731025577640107003593280448166383923499677262608874038686907142807079599719064992729329799295885051002420182219916845641812889108170080621517247812298251392943671771419264591744981744186418598094631732373676285297723489684085552691653366769506067751522473292241754338699097738325196365608780602179856951775767967522040762377085444675967697842063102339966581590686797038823471040301624281916759832617070494683556595915744809217421581147874236262813629158673680300774024621275842195204339026967304398055115981344319905418463621376493960105284524390457774078540212492599040135956127732370036809514313311771421577461757196746968561399128568073011238704267632356860478935534483087427572111688898237892756521653728822224191926490707977313932645625182572730085773857075198771906304068185959487617230401829965185858749934621250337112322012302667093128353824620183498559597587845287914991571304345666334707826396348433096140736228649041337947218230285491181024620046543139211317431415171416442981726284603582942147786145961126498339344104431223737346709310811058862556734451208232141303009657130776103750027901787654043657779991020226916992221598353327575730269696135849601684857488276879676424244536799677806760492436184756285755697691891874905214942000337724086545475557497806823456476704094043617878071793686184080338410792937399931054236584824391813538237170800925159065527892197454670686379928933803805018367367951666318712627707463577200995466362191320269503461392925831678758874667672581885513648987980982115094494915100181793328443142006943893203730345725880910319643332800929005281773038057132319158034396272934443358830068452312850167165148067741495347972345749587125906272619836098372822308800274614030450525121478650105500952826593210303692576930501650939699175598826756778687026535530511058981403985894496327905026677314989414359909960144360407390308867643283854694950344728780967028177920401355010996249360330691632213730301782999887924470353060371601425044860498932035852470705985598533008548957315096612366257336720115860241348574036384773473979261757093312230089803304838810850819142910878256575396397188452699801512870158259722647969853170015055620881192190767700236958571932669745643049889787316049493351144891975088510453031457318403969991783635374854475102571503931611185710589751860532238608473571154889666611539378924412583781406272443025757232699380647295193541186906947996231568013350340484194163199771998262308997665994657347171824036966037756633580980211419692639760309840131660597305144885813931744860807646777648075230039557160305686661154672981962456918199592726877363114177312300076084049529383347003297181434390740947261361552501513859850479105534537709667568968924105236476612397083548198116722149775896377752855646260849503360585594227976787583978631629571973367060625574682537065082679395754213418353808544524425176721603103448834527985052542163051313838087721674328624690114597089676206627873245804767033502626677688962106952963163610078261719304049330860066686786538424659223128002600985955767930984153206328858070628663068125642038925490727840266990624555344380255589143437192289312491377603622327723573458492364415361472618032740790534824759273146681015115704483313905330119774623372764846512604648011509965044500357441453497806267679238077236456538730951588716417648818829679187255277056423584124852942654698721388079580694682363243845654149072493601809199521747065755483128244242200548504129180996898508250909846196912082529739325026962150436918341939680387183203443200120453921854615615519913334232904219337461756208875290811668064393827218516066749177768084002109897632382364407561780522501158464227624510769681634774652652787084561142853218064770640402238548605924650029863665521165233701171330373710131452969393783900436509894882272829143155624916013663893276768566366582557960085967989610146633633769779746710514578782613616051587114473201172550438499324901346564065389555461606158805302759635357982914572453269527021402047736151882028630984159965096747255013507155972795080672930815494578775623996035655518587543553153395201724890147727851038183725303115667695690126532977023188949433214498415372859492042413910456919177277711478884386322232246669158103710876002659701864309797596011612183258879013652257051675687753781627038785588296722138643914555066279478453741345103363474025208750465410146230275106541719831787651611778834577612682675391460175106974781662196102617066160163154537691410745105985406288970762379694701079034302044864786002365555716945269673309396737667496720588304931543703941135381681196529969244968563129494052278849397809153300151577499613380248883463341660693263272683731677837371228273880539742697009108536786587219313200339806413737491784910284154701268159626680900193050433239578723722825244267347513723707172362221612289345036629091823056191669475005374474118941967762090164301126260086966721377012992740997224723887296888574094417186368920135482321126736887625034916598980434631135678810067326584547722073177027340593835396959750499226424533311020034397107191731438665645202925631497511615240760643101313488052933003432672254938692772810264092518133533729374771872373326602775018944507565727275476088675907200171171544656944682379490067464183816405149563705533812339287592495049225894589779169941722457776883930996756482367817951448105273277652069890265560701060106970873498974018038888466155819763839336999173029628705086939445685971467583368979017664022281273164617774842622170934528391126317254922306575966071944221963997747162148186610878634642086091441427704813661279273606414361889487542106364972760177373350040127719420244205991783579822635626557142658736329637219326157920800226904547528154186761929338800721711623254454842722362736926596292626102728907026987365948179439134942188910038576783642088346384628090449504896305637949411857554624057093476080280115143936819108504089933727968774595273442864870593027404415186303465002935759630184024405154450444562437825699384144969918488349938079839027759051137660704104052097609026596159203244358869260458095671464438931046738165804687699038095420468348772797658636451731008129287427996919750671792736062188356527669997851896241887668915909248347937508673007151479772818516392171546975819081050580521957779899836731931049156814367529154095549653924410773519017444002085141680179624145673529789869111887922183984264167487570672825317018041422139085691722407789703035220885626004816440353793980144721663261537538254053434606160238727024813272073024098030391984656207834259243917379068815457424965343812823954838712739886820611583118308203844092380181065917559448745610907589536746258110398165902460217954003835020596055734800743108965889164136067127918014363766452702694037739999018132472350765570882543147208567053886647811398475055248479264485852726431392766848301958275468302843897420478709963271048784279896946959637174151163628606611170624528237353665871882884832819734180651912132675046805852857292626314019613743528614178786864698359899194686308798707167924397778640534207697855133432901251613119984380447598878363770494845124653505666413154171633609107708510761447702375291735097276700730462377745608984579271685306171333930166417159038856379006579686620031109064800184731762393983327462789168918878597413758567708081706608816458772276334497417743885981594465194694820666273711751927137167778559241600752260021650219693149995124333866358011611762049984480832882424621553585667257185528545864784914658811369664293804216495019861941124792916922688419591925371814696153643938514159946115096433139671975128685470252009170156038897813777201577328743423975516258385680330876968432999609748877303108253546974973459458624325598198321807461052999376438940024332791291320629807403546065674897016167639814116786064969399712548273820791714181133607906799939343102078049031016094185974554325878012677177275993578789018394122212788731667012982753293866804567340800122489935579876809192563323232773387253888439402328542840684598492282687165220795574326569528586590779265363293547117436750505853427077832495292744734534026677865806039339167383464671612870213015193007564025777679777622803669204397171053804361180026483010066848111488398024908399102612415514228825045941634594170695694242807881598566152682789483614913043984741985505032941537584678759800171428018156337886352743300005065790791631795592122007394730550704597372540896811289375272687350666790115152643883637887648487998874807541681932662801828605463154426317930946313993355326112659032694611194098457800192664208678068606161306434780794730882901856691939998906618766107041298437764579591064938539751790586653781579164698616497825381194650794802198659189922105026585743313422736823592674058017928343960126525505076384016749838696494684806569558521628139882408988797686723860938041234051019491674228654271354414180317377030989663224629970076185457064886006996613093108889280056783630468986081542513523342648259551621695251378722972924678698556485720950882072756392597642124994838720638423617822211136680878083288974244831759559679747556972156675013071841013973989356436018101388609214187432738219482669909442909339066786869131113294960770102428565308468980916089681565593040148201682453344519029308514264933463122670460327901862342739277986553185382131423393040219718562007176826513506778261748829678803533708080255869200214685152689584748923949049743823712816610010678961929259749366313547833067547618161617819573870595259744114286948788508250548918875260439728178238793461693186530562777466350641739847262816212423056024001886328048740384465077554934062278015399347477285796965923830870121600710607273878240547025456048196350211439305101980145029612014904289347886509008471569804032936517099848093960868106639893655399852621102224323757594389476476793271879680239292651200201702194845205561608370158277912766825917766577269707492725843417722519048257622870157466393130534854013305552729934843006561607378985725771832793230597662606252950778070885906690522402753857788079180680404282026959114237072947965403431364148734154872704241570242644665729814841622330672793346143507274030493083798789288840126744936688871695391764302715862712756214170373428290152822406338923353529962084195543751858583107705053965736790846198074224237935223620250956903180036878075857043470837610156589844176129109602432184494448556985118870054125121198723226125228102555893681040415469612224560374741222506457874392770028552200170260930587726109518531602101063097968681539631276679457104487847525390707614112086320153421352685581095008414329474711526332249093549921403384855267809235928688283592279085812011950138365128886716245666123819565611469374171651319581338050709665562251268631160920392866824698681602100417169989941297921279698501365714338947385223203727435688550500507838787595586735920040265146458409154107645638654882914531795225099521090419390177387355272929007802757750811849094258056635512940511779795468195047587191093091160504407337479963392402131215367439945400202946341845857437170342157120985324429432176833227635513151080599237042619959143134954468352898266276806778870039488399830208474564065531481860767308056523555767768717645363499251172087809621931560197266230921439647237668295273528834067525127515807030033032627143834476415729792959553676150901228853832222687425026670467032317457149108592416802198954031177197858962797291776240325542200204451302558215774901183007594971977956818278065774111969672114786048067672787727055891610976446588148080557909511519771445858018169317471531392997041440487569800328183231631863956509570447213443716867780025724315804801733935487013605543527155886971753852694877142448074352413739764828121788003773970430645452233495432252310409354618141490375091504307499912698477366782568474510889713800324237172227609048592357723100360051107133964680459038454080942268209404672346689240244928797181641239910413079393361059234488735762650014714488566869719083554705399402914799516337378121649633977785307612678819811790983433864601692597274729066044718249641368917079771000997669346549861885039533844109309301758723167979822343231493909948189458339383172393765528044632134097590652348647262604984507656191797718959995545738798571272463322632616686429852644709043583977845201412228690492117051015290803907604367951420785091249383753804209678267516272922764452802924031346254929091996011376359496004174745993395575472514045377822179787827070823804834157903772738491589440054529150036975482831309109864246791337030722412862944561413781272222738164188148937344977419053507834062722989858286874221439626842322147983425933932675233397673798914898613536245104278764735225285626139373643140778632073866143598809286796368509561037370341673875695543171142257006561020105704386008253704803499008647549902630174971190326076983703958232530818565169147213410767044738255032834816748993434305664734522062432122722887866996802582780313408764811554879308629655955460710470262548335702455189283146775521266704063712688070942687159792028272909025301783710938966505656724196333677714266980036245838607431774632339581877705696453932898518447330282464671014932464279751321501684444419894566011463753130815949178151494254253669741957432874215309482515301927031789619944519302362919556987709037950972282535920845734670716621857242737718224613010487054308011154104199395145393852049805632431212024379569510909730188648861272539866320338356774994094686848713737028886199572642637532488986620094035873458456046648714041584443953953145168432876406475137477345756012464325484981705471599957337100711011196285999210756776027982921847443414390411911573149490565195479750284744401475458725501393437463879771049421283685829595688685057771583747457496896813640536991690512599979054843196131282580815313430079377802378261937784344635026469671782208232975347335190371511037826556589445853942074366884919097328531692216453705072835022047055612679579554448640345383073290303537745373658087404096081300849750404225200552433294069695393268749257202638476770207244772687857439545266520495053401107002302154942113870107744447383764353678071514999016433749756237064125940673777316228315394002728262976332066699728428634026484753071219330756167059901347506457184898995019273394150993400473646681393483130132098342658055613864218681762519503143981522146298995904640633252054125897036777121104885832176955644225275885617456502423959120787737338456956664017577374678920943844454281645206874110135520284340433411132775466515520356701931639003403895182571030297472159885527353539614244650721590668931476046658658784513361245224852452423173952126830672241107803024066246195586098032445207649535689418355642177198430651848133787256756796582280137639797911441050618527542545847618931412335392264815995828060963807658272518060659760722518370533345877771612591988574599535012931705010708111532063480778146876745382281040841878310734613473602727273229966799269975525616304533720387837858994977003805680645402821329966375164663486119795189165766998506228372948968601109635525014194991557681256180437912501721004738006865595424362745003211998720420263378236256694703536708393616232737016733965116028979718307817891019896218479552910281223270505206757726709872071398191289759926190160540007831081126521523657374194048969499728356782146660262886346152158703115267928443481523916223478202024522523120063367777476193403778441274209646344367650937569149294918175662867843602456931559281231231137191630425184392036869906512167674509088986175413975802597179217294409364350983525295151485133548055941593463776214617780023198034641443749802647121605710293146357208941229829414326886472974179868606456651998367306512858894626961056565956841182954381992702104112953174227452560318942819053140595602004862969901806205250191839241845470024401110495517601243049331091666105835057833594857579348312643383345423376909625933972505786053171796954902672438450895355940796710281411046792127150910687604894531446862725278308256694137782396834740109296907402815456869595566468312120371971446792625837286286702769533370074926000036871449738920358591169328550707517112135562576844102226575055964508209227126806092866706123618631460342326530170041309422223093238566601056046237693983392865531213452875948621500848153374257326021022365811327998692284837501765297903104445962289269163940544348005725374074508906577601197344459370547781822924627973996341704968374765726576722105997120875927317180212946880029053424615532712428041360906012891776797704785137797375692333829808206711865034048846261821490375864206504956063087041698628090675499857302173867163435986782597942633116697194517629479800542560130012996829814261239378538484902876080404702072235657942163888039290984078777558381946865312760416511161947555441430652680714163917689079700216880158636939239341657760295611534010582284980578602590361777629122896777174941777022940062323666898584780048080343352438768418260979586025331841248794650797210784254577277302393575315200543558083458458467604698148952634396555745746503355305753657556720349216022440896524543006553994347476707531387539547259255185337184642711519630146246649391797555764438242325077781434442140797803221004973904961866595638269360022677577304720623704975227636130545157295224849117698631874119647180824214053473959619006324938351709786722791742876636875545653135878429730577466910675342193833099355073524902550165880013141912256617223018768277895139120647904091892339622704188095430722241027464770256796496370543173040695755835911774448299273570114252155581241862434961417315019758642819047983691921304251905466125519913527983063174362271918312789687292314644394937410532132276852787376154146019665838644189956999573945336509893800926901504627066751342617392863335660970363354384540926401276532540611442719452169336644169703877940732703019132242955592147101031994920313075582421705716834772261116758518252445224952679413680631670230915742348981782816752806062168137592543328706880363565956371623405856966265655754450347366302491168226042255413073372406033723357492760008824688287325198254187768890851697107636390911507518782975244163469240830853577540290361372046432103563214957632339606534148052511386026974313686550583421593790127053409811503518705733373132580905400066013528210322696867635282104687504956440277626989680304727752908904132961311110314302171739124466739200691710069675945839536919737302974928847464115234316711608459951370704909165722467347902021157782824904877891180473024444820286316108874082197223553240851363013513141281124427633873447373305209181311605320572516551842680663839365316508083440304427181921746438402813623953850562410368636177549514011200186964058907687341437306930786190483966210394436435586206593871094216707472124034148320105041457976257922459786615599972277551141688609208806570610447881930082104243213795223777475843328422277535315286644504656851924181195382236283655204486330653280607884135795495654420775978337364154170552732082253493691876102346972842882412431177364890272350645952634960507070421705677803070953852069000184077060800048429913938846230972505839685858228032772522096061323925676826023216060448318831676042565717314819738829182079483765102857583221047552118555225295592059891700861861319902720480748680513522874310312373492127406562765346507793481882711487837013736688748824558357468018350971541901689337031130779484166990119447851289369341429321989193452593131181413976018624945831294954082553938403808216349390141982809166006887092225649267864539335959272608357151874360803552461348042515311364629580155719634455603107304786211116633546556021050468227245134768538631909684635801468945579946105221172692851241747520458292251182976222004608413126986487349453319897644624316537781670969913562832207960688972335600666862776305840300148605814628672863234107432887533379971584087010898891971371972383685373129474490912300484315469077370424318735906731953536131589780597301170195075841654006664798654896450186594156802918753493810451813054277945015341916826566420900422172010827933901692944321997069361846179248994692827240771579788697410067135215148590506283864284856407781535200145993406625850313187814699809764973818048976144938186078743436937764475866241649811749558868429859027277454589934564952218861782461099133963985847714138908636573775421193343702386526468396620814281231742166164875950879863651748832066813843190008221164483988922066639980117251807636164032106195470640444244729852567836418579544022481146348470945521200549745788082502121531417285596740371560265444113270662974318554540052838493187678973104874960352160779096215295180778617911056917057048914420414101532179781156572649454309197010654530132907751906037094377505427573083711337804821572552882459485059319008868843305066111207545000908424052430884140849710242052663586799117224867244821017274351916839214018586554072513490372614164542731137228763326930953574872546218543367293089977712978252552726600001173624238866958701363411192806416661415755218662937781399588631655486678057084112729964867668550865271517266830727098650418679106362283632180194910737668373413024722160083115603521469870690894227206414635022538857971763799759227380986544700532540364531807120734832281828596120911775377974402741160675414190203830535309652619937235279453301037586382177925947263683516007247825765277954441918230056099562318438704318928444918035154269267217120195279285831316445492101145067467433896651469081734874758436797729016588470147848057143645342970395388977256827757117707915176348135393152695633235271278301331828240134222914660175000573284906418741919459133948386261323719566862571105400124753957776797435202015331619498763121134234794620439717933100040574772575111678895886160910879515303084507241422119754978185371858272548003466785256920735322711287610239950001622618491422614322937649158961109894392868393056020739331644586105224847818323388520862182836851763388665291259072291260446787420991936556531040512511396775112925045064203952995551667746805695404637901878875664181662722804373088738111419723911209976931838804744103704110983226885219972760193455678050420048676058075065691332070324668138992682419303580703001645393044529915660567900286123827615826579410857862578907280590528730394343236499617334902040990314346482843536502738445795726832675593923109546914684919043159024162548326469394798510920260156715642137785016985391453703168864834220805436184350198233241099727581379660794739644171893770567527884337706534393204485369534948866524220214521637665554544818207539975667094395926222065611684262062435071288017752536885849772433799312222602772654555131797832759917467133489947056371792221023403562067990523510804156432958999841042957934301809811267805637849747170462089082966507017811166974035003354005784065866497619400672605394945800286522868670903220217124752120563486313593240378203289195137163461011491097544598089746368065041739394195419775719844210572095533369226538827767772507318318181414187371394604884486959222155155370484675399225385601442495883563619680728903553851281549667323749512178654621653748994114766224316640331335452436831166596441471049364325772460904595839941967283296136319963900723846825012542733174518958955383128753416019832783325338254615532346628469065260253369016593602556837628696305052761439867102921669538988082728426543698748454640884194257725315160984559609717938704336637311000526739106097285362839313974657498452576902761173244986441199827734646056707410912699173753625256398120435691663541431200076314056174256929215992643290414194663573165007166247874601177095147837344443876207304480857722233998494468179409227437661845055212679667672425736827646898627379684454228681219937944493194210102891370409427298636428231857537263856416177285489789256697292363027664167235942256183132914360208530770681220823451694511654547550572752010457847950276661375735268263074238978343297772452366912650558042876502004790446099620330870672813487852676000952397337923300102048916988761460988994641732111050041102443439097929098270602279706779030542367331356505795080440940056291712749415999682775672212807432800668703092638421815218260579151904475409129123449505867780906700007924911578843869039153262974217114927942261371709369236650724163172490710890483059190124735798075025282663041688545150495372276060927721906261826681962562869465167893059243501660373723429365305880081499807834955897035120608284952486286468789342269638556079309583802145826256306973017147427292036902619319079084253651543405388469753503115911797374776068931542766879398446498591990374918278353126555449415240562213728361701979086214857480238137981396611623310328635699379729944119513432818061316944979352920974870412528081480625179016609552855651724094007019939979211146978873703736977580912803095000804803965820123008061537428389584442886658068012250306399860466369543568318020090958216160655438948133449930733709415714281145356096507031321232968285035590214872523856473961688332428912977796075064629067259733920672744955914406524654729353121620408049287486356082396012375969523521295065496747898037860723597867617993923837223979344802200450501191370612844121241184390465138374529946470944338998715654283734427746939198823646008795412899117080263884729849341123375718632338994947174513022576824116192169633040897209590370665350707803233711109725940333301895666976641413552749891038690883860228426074946671882014323128138982103604497083047638035706971280040272021337282147727735775956190156725442473857695675200112560270497689044482901490880496066650505691552209233416354452174172654831790081376268906141005071342195783978882042993758002626442934012979947875342554232333318225882102823117993647492140021955605741954672197820718484493705469168658868709888660323455917928719955352133683663891812827853036085547038218897040925382025182334428320283116824682000851320536658289314850722276308159328630189229230122799675208045108794990967194070081989846735520118434254244838150268483874055301030802185643388212846789049048732591007198763400610899270716121429234283137727227823529768369519614768745447030995529099620887042701536300474763889244625633358128759379474626811587849156008982708988260339900958081036446709370450134098398886040985018178194306395134359128390320557931629553982585393989527725461164659842046325675773957427338130657961987194948065992438318894149075803266112119045046436817045232838281089189531133081211630260483605054346536554511819316173150901837218177527679483450179383732470214334961580223683302932390529738648497112797999612030356783372834177093894236044087583207215499991156367368439887604944636382732577656298793702791366096692900828490650618264034167485976506371326773126930926842303817187713646034934973252913471108720196963987043231999775953087756723248839251867740391750503067751895067802488294364993985951546237403137184457758577267179604194672179269336155747720936306316625477629420127240263757509322558041293459831357205555927636504450787406073624121915079846213416907824821899360366702059164831886425426254641251629295948853327103319460055336786647859946664044425668622430710164141717406652708943845121549515718355671342709153830032097968932099826375236969892891348542371112801020054883163196825540547180944259344138421464589041099295811424350308498182665742525729287504937761613357823355546607589461863134751159909817291984652011777713388230422037909591733632645036680776598586996990809385587812033719479091754153295299139495400252556188771049009415812995642425666161539369400806466947635601244314486511005608291174758762390486805981993797631758263992464576089371069807615585762681531770387908968899533441144578168552675476447597071998851220740611298365358886774700937150980080592800598643830625697789386043118605249720588466172967592301883063846303653447328656317470209138226825553595944419306859189904400429499792185357635649994284560721821514221619107844154849056506468770360654358052405774570365761830354260215735912877536786420008622421001734704347192600064048683248506418547078695082727201684769230815343762708102297952915033140210844390836712199146884972736860783307293686641945583329593033599389574253059059925706768945532907344726868919589709055313391416250568589173039547269068223557137323435222239587334691083907356476113277986050082540233645723342062043806046973448202922021919598810063990658249532042787675586273994306063889634439394491292840781804022722061682010721822665504850319785102708812582101332051644551836190591942846057187358664605501604779610313488983369608739950064738954385560554749337033649019586224423892483703744126058185249406745362231912671505599998829154014281509850926819750415352406487297527336381784306897124619596606643414695658580970331010915586341208521406914239395389415533008096764151413566898458205945437719676570611645256050492719913077083323126680189799221881266284322558721114321833964080403996359568850958797093641241529559098745889554904049444177006929636078341219508793273189513654285641653727975972462148858652805264281772330728455098214668865490159166554328558338081212511967639905135870077089136808207479115311832835896385592335989889949360319811377344283001930051471884602422060104302267325257625481315811049725761160448021667534006946562619250914625276884516987014414946989425116583036130566613816372192420465300768290556489299913264635382975979335308379423630110281021630865273903824048739919683427550794159499053552463336435192000932355172359336037866939810281075043214645368553048256500760576409849326032230590271461377551860782298204621898950626505944653584956793593013295459813874044565399059958124412397893943706398910710064293733405197228721033800824076787626125695810393958262053561963503276061059769275613495724969344878393129636264536117236011767207989757609418313881033738053289619010172247888492785009928159947000637873374533817421581647226018717635097883290319478897381239942208896085319142410368975534769747453750453478430725059978776044890504319609024054573243527909939024041926238798981706346460156734618132578637660087448416272780994038493455928896400457401986894594587960880930847277939149905971010589976683852987305347541202917693190531318623485286895123573108724814150428904410414297192787229281006797683136297156433309754504634586845384304042263346261387355272614978838470365405947590690667357540049700830717539213455069871231248163231511977111767382550822095501408547131311289714951760866043088493286842274788538172599034103870831720590835085925641294256038370134057283856331830296497453774380480631917005611304440476919945374887189046704596246910824517547037485879360357685551828332035775127232418927269526400223004765604194586993779148726315224449778312522344304121342792827001934318264039887172724308938560388919129749085110131528501499770926056802143384794112940014087109751196376462655501804094111848330360374687061826565727298204269116330045443193117980306934024270526907011691720579027046263168865778484437973982235816702932677403519386521421370815037598894598656451880551172837445029592805951341308927190549182684041366132797424362978344053132589042102996229827439564220272791920098901627217319581842729761699873964420711343152523440921097244849130916654290382033313978301592291032572319888887377127522148863793420090762885417456394456559565228892177400457416030374444864963313643485185850740691450500043406765701916127482666390245458168807842270652692620907253161247436026613004978726916142851726975977256982798215758649181860124635703643989181635306550912730469032830985541455498167230622471714123761545573708604244383568342919659694489483824435647388665490338583514145159190282379771281268600912092062938397568097286150148468831170181380411052747036877629134979916639555217018731704886658446964962130608250372721383077816207960031075555021191986113386035878314220347149010183737025717295290718875177285429806821743041776065105378630612364452703825322441046610327618011571148374166847647783615324510265290402752523184839529619620390985926927193783096924014496715496620069636487679047416579310711035806488540730859804461933434450757779777125853444804708840471455836057278174653136834377177356891656473265499882175145104831887620405700401609767972917552521428744524733373412697550601050373244416702929802719323677776085210897094792896738596727241226128364735194723682929181840084369115027722743544700785629111415906082379629899674363475041611290567089488426120781519810560387515994599776251482536819064275182216991592132904286142551537252635076310403315400530452955664194667249298576410191734984542368493845505129100771135864084862946263992091522590065569051792657879823420441646072780396115947999170246092005077303660999200542353504466919140226176355621906561738383583094214897118511238285296560391558380658258320471794088931191527906693789675224781278725102877480858137234572752516955581491116924645477754632094189095351686744121464564806535521826833603440963196550567732467551532095049095232950506101252344407722066696711230620119160114024145854737151611197491752330464353948490285560131461363129960290912784683342718974855351429053628673784093536227481013373811397343196916997809614872787306746940931660220391946752255547245077111028301449000448412197970192173498724309512855437190695934409773544918396938587770960792063846259588385740055004012835249451333633815582948634900660708585618672119705710733584356427349224892031597995962431731910229320102625868208293322387999038403968254879024058488414125675904776223920988129650803528458662439273118752567361749055530775283153916681574026580408547575917760086795619341310210173531036290354838049182629997680435036329518975426365158982892343687160619028419840482837344564606124927677228539309765632517651958585406686724210810484102473629408448057582307294288308056463318297794392722142131343204383400263321540290335924765855225382438385461644808939614129666450436830980707363064182297293880017453370218701754089722674391840153691898880738401762670982085613397964536055605887564527714381808812121029344827470571495523006944369461563195313105140705303276892057696530336691831672544101179394692670771090054572796200034449310268526895393559411379994786813599382586345779499782312105220060525259698595668281965120992919606394213638776024291230384290558579058715522029226808317514317363012943001520836445322247454526560990059671861376697920418919955151533869334184903968791967154916473897976988594258827945977900806798666051066221147737122678659206742434478707150468597443260304024130962001748546077022062027547607332158096712066466524749777111413545542396116115342514616735180829758209132238926329842973300768565671826701665166750445898571746617258564617796481268731455801989290921101268246438816898126204280893167653775725615198067449357131838243081810136968224434848057481289422579145077174868293412070325466321652497505933666879470512590232920453081819973481673771797476087199113543042598487114110144814914879501906314712174237929712405532071610650934328063588356029342625192828497102845254970043963611663657063601521329563270668160524729320085094887906457894862276862543508736596684331118284057778585049676312004632948436442526367654700051848995565065204724777990512996294260853442237506736231563063202783465089338117722028641377218530250921814746858190072572640134265751976265335531944071662139523243315578758316445472005293095253044599567440719593094728780542891546693425410136478066548677913447944340560475398661477904212425113714179106337812033945905347224476726379428516209010232041331979763548601349994445199285418331459938490132123260506291173733267496995792856684062948086521677199830518775156122655073712653941523322883118493556993431335789453483835006980937796172532887202868294566733976828593432877214026281829439080327848975554080024550397809942952551372602866313298049574061306931247737561984588670744230845309647925934254455230248410097584278122077955306947837214638483312662487655984020235735848140234115539661478786475780862704812994859939907605181944023541407177290791707209014804185080806580116395517669211149042130947082673390070546109078111680882743311277416014119081915479909498200094888049129188581827340523596668498909289402530773048396789880395716053440114366361902649863538851518964511596697910138644323066773494923490311249945134787760610680055024557341500643470831552324430395825854030373463860083514711275351490709677790263645256287367949564846668928354865256226409016265974874958926858244883682292075225270478506720145187896877535652371307736537006867837438363454842451447281942951305455110943458313097006002538954041223425671237000195335825942065153136701205853383714248122451540646918951520904356060410704664850925701730968184258504448108704918265424054849665254618746280423031641698382673695759305594985808722376536141590068174955156562978107047813689213384304104305624835641158153105732745105243988721146987462399497546898443660168040033679144435930700443146676218973980292653994545490488337582862094896057203760612919878178555850556288929145514665740375343280725466468104633367255404868931239062478632687834862488510946511488684796652530595368731828339684193800358227507918150811399182698425353762921952822460752277993376493213695030780102930568693395856228370775017544076291493778510293373572869617148067401570383423320606957325774991014935757313729195778549534415130523992670519128739415086311422035543261509195325768312051665677408304938149391612172409468979948758101150462721816806614603880924480507210386945432327601184494270145092924612864707514069924164598238183194937621787950556350880788077667676705760993127005234544369458489530523714105897883962182251355972767302251142026292089689608692383445706438222500544736433848728369170037637206459168385001239346945559562421212261099181814865383201953457693442479578798951803066167235342982149723849247594844977197247525908919581556843360165696508087160587621506387128061267166571316663850031705035934598644887527481561948002640474150792091133642201614506259755114959221167519053243011207962373216030034887133883396480352664456061941413409476701304907100799941653319419981041585573866958378577698588032252716748464379570046977774892105213528223563840970405797576241288347801422256448043526664514824438869763377778579132623676980904060498486201063588549633595936836735755820900066207462414240030726034983017334094476116231736648863367297784295720567705217174948506499394213421284952431295074362918176903702444708522499344320038109361476551191110171915918378328258530826368626681835316797261333647321360014355795202642462874930501705528972358820708119293379420661966942294893626051187477835400485763592339593010063648000327374160598912096648890579172277712120906883507151198228898122182512531567173601097598678678349707494185110822624965909073735255976800114616852279394894306224042518513420385988883695497627321966053880666922288630294254639903820526746245434567682329629258020473253603368278373016593908926388814804484412773793787983999268527206980103839360528337315174707234435389212304453013203330143615735929325323676365645493909514536270411868337308082115732487893305854418544971108742495154415467985393424043673296467535997281860799703725024339198183899197870241438879206754411482377652861515765454029102733664527423297823705609344243849553770329471479291292609884107541191409451435363817318339527020219987890743064655918559263212108058084163940189283962520918028916533440297993661227993114611185503066608398577379020340311916832463000557181427926432374544349444821813656613163087074788940322256141833876826961931418252979309765733680954885111068999978421368618590166394997883092592389194171151839347173352847936857465768419257888868965378944384040382247645306407413543667397624872095154137317953145706546051381693631205899627687267530998576243192406066475046293598899843682808518791042678778731388135493781656774145279038999372263234955914285525507224647121065924536692908611784079355126361685614390045510628341426294344068110493214317843909629853962634647244241557442425126860021554812551788204470427964519982019688302541930373005919143920820535494742845538426771920881783748717941969571370686071706088861883038974037600951001004503498589548329624371120304808122755958644786905291629966015724728273887677947314432503387359393955109142873292535291863236280334388414820486511117316277864245860748435729425431249825968922156013182731331537459009998449137129878823088003874261356735830414171470068753612137343356509908437397030248891740709641773506011259839804049719281751709856717861504292316547991035919631618597721526879821666729262131293402678740352125810479579207929677973017819566706107866978823814609167907346837946765954074070955238119348894493088428984694623416933461852041148197284891897046323561432694917675019812963947622686522470140018590922416461303025960497049775235446304285083203286767977460913703274389220462396469542611949176522105595781869767137039967284749080373837180785825178253371347851332822880361689341479944831196334159762235482334239406966411825417686594823607752640055942704226186270309382194189611586878355076672580558440401418474145781358274646656569262320034526811564364162920548332486431815213658760963075542271154741468492075912036879215629624960091604386909152245751035495492633017935210417427709290269995356442105082928296929265821262747867457690901501116532352569714812359387985688528660687847816318000909927064110469173409249098664162422926123431698354649214510104630921160973143763469330509602250966536742714537116083084336054946617871760937010726670316347490800931749165287647996308087133579060691311224620752246718389157532179962845670037871790265944598257495418565593431210510644478498438795889711174621732082026074120615282048944317905964062579027738817784737751830572687013595485043800392314459655962022857541936834465526304134296706441892255424861433526487654682343582851640642061788160432026445991289666545337881080523828605829191423891314607229529753888720250214892215620260486205093056720287951404205233667605790916794189137642594103248893668815772413920159893084089784704640435736284876218895142552432915709058340776832258949499801222294173767760412272712495600972699409851203874161977021390460296959492162966440463577753477746969730064358744233033927482047500522816910392971754748849946692433591472872407274198444165269858297228006677999518930891171212169535185628337976171481174687370515982511139176719051593348803361818588407128214687586935472919934943698581816853129726696083562576101572136115920418026946982694759669759492409397110361679399972691178252176602985064868328584240924096152421926231387537617079769981954170556885344857771163122822441044322928772846931840904155933925848669378857172940755613486216504134305823931700267502257285164447660793126305737998329008420989726108342166042610202632035204461026413773407859174503573093998492837109337299680668399750721454557527828345666507902282769281490569053568381850293265693615473749033407284339458061889109512672858725837463836870599243059537534881512599082773444403337084151046697497755380897597588795151849167409107959372058217729947120713969421154810512766539019109091794934157741986579160456848640421057166555054549639327475909058158079250269527316637732492028254283407748477570670251174859186424882512956448906342420946126051597943956109096737147451397686111680157936457912353949526473804695282985504655723430590676995128006079475615446055257873034093141562083004396647537499028948067793545811929628728528326457439165786930213532745541979238641850645175277727284824391768389852044780964594103357337603215088342790617082205965629696554229254500137756636310174956463069430647176854056938749766126800012206428331513368889329259364728340156289877460406112132817598542124543216177007618117238870359877662848965186885244619892566618957689091945768827927737582732624141752793690545882307221724478939871137320717088315329985455232682218395585169467718009134869048896011955844663124346154707862825492301725776671049072609809983483200888162377594284077511200415018430484833568174483012942324260448921402577848025420555641679344880361845238068009497680655890177940271162138239218667554580412562914173261747132448112310576515434158981177861845577157251193436575422613647545152763099301787296227709982230614792719817379063454578560511268816772353886843425797802600934741248973999340171200298146274501560125816304653211546470626374110055899072069326876661339213034446651468955628394512572587646884598469795806099466433590146658111626975670419331033178328025941939374368942724965188031699397814338327763799057276028025266899163098264673742157145496441437355968117026926173299457586330659824814571765812129822136963708711830378927340191790016703444637718232514767559746020818114838755902536860359543261230798460609115504033152351881680687668445436698698933970391450140823951105571723225253295121457308498721890056123072478664681881519885322677553622526467054098160081134910059662691981225397318020631121823126423965279305193644926879441102661385594231978097464117739992376672495398731980821640041705545060066130392064064143345070922859970529948334924244756270789446718062219127286167089741636297996834193125340207534880508524693373114210178197409903007091224237321805265686358636946369276875163032376366518212856043975795300892868264369508098248395647535642202442428825936359742164459432045264041162686485272289782930818042216915009806133205233903402426993469532441932483863314069794150164980398926187418854156507139376947366468079881973509992223706076009083166146178295698448268013753014756185800145618932717874298418246527457183718825591590062344935880926504900404449006652474062975952335617842069221891494677982346078778028966443337456681341162948688926695183031025243001780487385924913250443932789554282966587039423272269029781994266111818163421078867696866639528763734865967242228307278599862659469338509207714153964690079878056546040209121475137448399368858773663000035426749440079388795723571932656380397060206357611526923537915009753524964966145028856866513694612087823252342894654300345210039214133238044157915616967441621707258146299950730072925892298189131016339475936959662267974550531328980296903555473028364355782074440774292836389584784386451333258322979331272593510881751813779121178865667071333848095732092916134200618699625885695699509403127324938734564086939442652111114566639270149176063184487261608118649932499530640486704143360607314054750370740695867714025761762887258193721118282998496258428193187604377504663589252845874060356240673173213193142912121644928039144560274493412783378872097219097802592716478230755334939848244810630217958019391643719678330553628841158676991578943351267078894289845882558099114867371191517099207610239072724199062974373115297330473154502344502568231819015110309374655914749363199145423890107478318637935501043944756575676301915138237500549805025039587098784166085902512048271736540869865766240930024825115073513940696193656079129276616905723906654461116809573522568394111960539106018665547350537055963259959022516386044903335570757619466256634664357582769662469767415975131038125464383238522322024440825352513668476645315791749859756081574978414645382211294518615501250741270473569212319082469078171855370534075012639856350719181329711956674721377974552702593486098112880300743586853405480845421922502327278225092656617576351968911057790298234252946928125990811998766399164588648133474340511207587953899783511469500115478560803396319086159565686091200304066480234587592820257951225112353780828605542381264761862332596928484292718076575317694135381102055564043782509117446156769773260507835362650726464457723037569073956784293204676665211857028737681134949612818037444379850020903819617260948223763774219098155757674288999062617794376007990856229621465014846485803662383373901633866690893149780555339518944408909241924334526833650004809860520921829294017433578405533136612939234774792421942228746099516403519934751887481168247314481629789146060127448233306465794090591616142312868099728576561661185350431487693186445596724643723779169011151333436839718836402352542051827160029175374558281973254121204942956589729764157412555596822067379752229599596132912610737778393887441378775568366205481133158014257587428246706205340966550550967274665969647339684157423716075632261203943567141616821393548652576354305454950322028687007328051180401427665429153759967518393207461398376690456856745819344737790830909466417956477789748033302747825521751045488393645755062796655555771194233584101467753763623421584741183738709736783111007157180747066565264271386034420512915121456129455121447093131327813287160495862775825929887406252398119479219071126236286874899133759387051678125536638830898737267345451646452080130177843060421344967256753569322412306176063270422900940462636952164514741641026431214350025464507264815945590765120128669384636579844031736495137579415026956453042165996203577932816946803724438534571763793645477601444741982855932388322952726924052847917070203604210388554131241575797655858233808289072106146029750593887809118644640799554866001329582856122824195984745831720742504303096536549066382325971927900218356782075959461749048137543228616408797985495905416530137361398427857457557171882931382546221343193004228919524343198303193246643133242348951874479234465949194398283174289323791199480655465248079822251125184156259751653587984306618825846660572479361859374130272363183059174953104973142647497312427985034198268082164899569935638315554166242661770743471652229275783262227336926020562156542231297717370113070495886075420155751934423373485461408017239553277119273871093135257740476401451361885672049274787676619940993870854470185590077282781318615103158504735605129932715672875156348744735471352643700515354414569857052940422502935370447573143686844583979939426558022795033020054449110568524647185146726041409903729929719724511478885713661438250984028789601424175277389931229328008989684737439339571838485367473204664220400636133523063453529308852266558045681908267496453017024815911327017776249519681148505933077283246938233052659573595230913316069028141791569666896818207120307095447464254784930801199563499561722439396923699011367522918109577725437829190867964352366098099182870242283807806103039845111818092610071053101990391771840060130153004216051905059481596173047886555572818243653929788440837439478214229736554175458217355550059372054777639640645409317532211835002688454885603866246642318833592908759833424130768921154698892881079340260574295267926202857758893503741710079671493685985466341775038644048530489309685893658042094290543082404777611002124855591150259267432950504779733824133965412833121728214485465813647357027594074953499621079698071507096365773002637439670954047140719653149560902655289042432292141556225487957845858122695478101146896890630429081803570897440221631003899743540424791073828629388214590653498817512386941361101661886797514851057150699403736992243913481621846125148431162881482813098647537713991134812026944595716761749796581065277360389544380067169229374339339000047466695200240472217366450213515125165611451656915222819102352058672638122183889549176763886810404188259348027379118830599390502271681258463221067686805076494542510244951274474965251545155189696327992726026512661164783516044601250526997690446112784406381394316308229436569256123604248094574853608193078343773008455077870966971280748395553200149759702600316323676226374963044729056411610851189383265500853323714302295991326320046804826504638923458391713309497053485207773320292997165120375994860453155817250602989067108163303267488654271316366247567384082072117919424653439375525598757279970238531938622980716057808392925491435742737821392498719129960448945294576891942163785765163073676135431379698186715108542360282725810883183709188944963558388005342142415626072697124098736375982710847342329236056077903436823536420716667069326412665234234211351675966669699925082873549402955929127343101173359650735224190424347881914831651013891248502134235185296155336845276682101165524070102024350457357506768624939205419131299461341018380291752703092335408815472313065768580232270468402665700141251199809483914685032190335827467956203354155741277034517264993492329190721268999396818813258335626389413771194667858814769476459249114045621201621749885873036809670219131630736022103333454045138631312677833103454390707643885031988236702116220065230026577573686270410995614037814215875312594836332796030114951119131237269994038665056078986109486011334374109414416083471663314288478652699692824452752256949871972004961551263646460956681828857954502679734090395146411228402329002130924859493744365573979576960217650616127325655776723623766329477782941505778032107229201572733120152545946910325154752296562418845496399358160718792576457796375271996603059188283090930697071875579000345894401985439928970821414826571625612490137736299655212440067590199218915123488507308883176690135602825787478623537446974957892422097863010412507009771356290100842543656421660326928504996732453094475903192392506158720435698719135957848961890419201511502317335359113351359631696192397954264460411970635874087132201385028722122524027426943266609061762786396125312281570358422125816836704988890948022773234939758813169048614807822607069778624934960335999784461197431063690601427609279936940939010489346771644624583132570942526423355967397651049091042631084128804235842531955703032112747677966593287161488925535896203088524029626537225220586050627774355702567767055252495528204915301870811875742258928200896210955155304172818203803335816216260735564346036183681726727874853480424790384394607281741914097071222732507231927730253191371226143212376886992214568161083749847180794856357820745968095994827705885459221612197271415199890677322657922992236767009132172901991082060233555106779534794770122698614831293159840814504287854263758570792193156721323313140356851102279595679906935437656881557735393241755254719284851222062834383287310291250935563778554465963934404221462842859165372891223099335408030031131544276284091749353979820492492517868910778547434644140364704446366809880766500321175483441729226096124134067705609196310784540437750536756053386055453104311881784646096749967421716349255427024311623491176239087576066997018122048865354601780311906592910214477848169514553568204622147409432568212887729375713415118803481475194798770729735742534352991286815122271212901191877194719237582445809480716999293016570692141535669456111623235237153699681269170215183431070785522334076004062690021468666278175927689423331693560759868276510682065694054673704101287970885104817785840484031821032179455819719794118454078233954816461154365976241134797069347169746998371233587359161925670928310790426721046332065065067832893632968444747261361028227694093433761846634157457682507933419156633642397064355996321988788380163670721563302376162309411800331905552079335316144882423366556929238044226800789359080842725167350413021726216359008437933814799477760549081115923054989019499905121434168455322054953374599208102254549312318339784045932886721318720179054584260470306960015998751231846383473641080392914231827356536967283181843556234598903779912403139139490271779318436948803484081235869449499124462156787185760475638040707290777862570554366222956010428079738135883711623984434533007407093752790637550831755294221970513801752908661397927156789605064098203656216366125003799704467328228866174043575548004279754511284915738634800807854122822473376087877088265809457156259979145584300128665062381543671598886030495928441844945442196296462672782008380581756143797165773465220294845892181534619405966187722691715181254505738179065826156725056896863876045142342265686132431355410417970440178264164163074138887249996162347819333682119279583737129621812676032380536820397554174855672247961080943281129628018912998857267036622419237366772905220781063599289064566837529240557381739330502685861797475564449718073617201834739413461198566267953753104252671071236018967272225451359662645082017786506404390590171481651753637207956505096862811616851721524537388655141231777411760284619150720729245002971229119061500804317828738580069539121505406901125985567773760073278435078565445099543047025018954821450060878717664715950861950600280721865597723905088444096422698709367050488527154665108614359131705641376068259470745770365866108445464192229890045168121294923142825627711724438476613357469079678572938694714042902081047599089905706089156531457028595446784025557080039516961302884019118761472295978535218886703694661395309677206348653185727735840196163690784937980569428660929726573834195832445130317385018193821929086615241930129999895843764100068784550426471096044252979400192582021855240685786148229879387419862361159543434358415680595949332810002575227773623397476086525344391040039374056503674890919816970864971716952434241156358355273336132766543896278543869605044727602891123312348701832841837618038902935155702973529293177463134630918454464478861617964001634878753045288434903308706324962101496697306465521573533972990800828322562898780940039599110632040582238941561499215694877120088385866281626701725002332589776933660634603675296116124683452153188438443615859914124194591871651031555348654862560645001519744289571192686178835938628993889481357185851424681984267119468231498175889456536350241179879556032531847695554650967041600943868212667957956810493969862366091477889010217172152298511414527024992738031148409648886108937027553097375695822212697945620619614499105378468266370553534921878835186273811375124555065125405681435429813261146748883888991965525025848770771235137273510460990049669310391132751004170920960561448617153208551413312733422979972582977669430182387038077040469479528022980436155658915310608623571370147259787496766129036037539483051013086364621718413440281142814275030456148632899020895554205339793645316130040262420512977140159177538335970706685381713409322461880104060695775698615442794467427653430277190363461269149983003618711382157119974726919705296593758926721314946835526856634584545927149824165382665825521454174376303335972687981261210099536124790835060442070521641692343023730922693827336063241787725171076480083382723080030669015890805637178994039367488787968475458271812769474668718083719523810493350517096572604570726539116523615978231205713434062952653789346845844372898683573769372274746175006842783361380313210695916168077126839149295610333300373133066427448034986146222556145282253924121254124999697953649814753166135807187624125139515392372483756400567436795069553202131577343161086693149235080607979402765569098232584573754545970775731249651575773642606999707766345246500613069538418183606518064509776538255676049767321686651626098285962955581896761720570885003040761147372092783338899656233873287287018556148857812953056179201411161424133512177982930162638926797894939813637333492886174417105297231177091724990475246346345755720332394977025120702518058660207782292770564453748095023318392251643990883899323525124884691452039018267671521915211412553694437974686440940525188648598460220292572748055672726830776779927889010171736576154278812926927779184364055093194235151638620547571086879049721015927198631153221962647444194596901964700464375937824757216566026601014900394035305510635566241897274079918916878805833728669315966673880920961755127047222183114424609510384271297811599779526983308963588374317089737330163126445573194086149888653405174218760497921672734246030565008476344483270552241651404156502732995425645848816373521655877185934487373692832420783115417629878890779550059059229085362175887454216121849143587769745645305346513745181557548493308986312740219797850547016596843924316275842449324892678213500300731829703599062149293807044150517482829717893579199376275185717053388343724942481468612099948092014640652263856299693797750987882246970922782211853228969941884993552607660761870838243673786771186143130268632868915790074948123128365993485713766628391791235910466488609532554500413174146914377298223187578038215814364435694939054111099236298830730448631988824290016101647753710917497629701602285668352696087666078221858431990928039085367556726712562095833263418410945241198362626047115711588835304119061017164801325161868281099482477958644329439558956308471497595927687881499879577252815456647423842534632194171179283708685673280433851739470369171221625403214173066132552133553173001031430976534737697679248143757790271459008026639871485631626610804302003140518513984881725297490087119165253889771861666976242510300950138272060514634562119585278705403659511507586798097835662338351789741551938847810847256568723985573130645198584766103190244350385942533749507479683316003761866702244558733749339015575035560188468863565221498582346129721499282320289431667695872820590655355203281648572074500333403158218456742422394838202145921101435264073001694254512442942118127528118783092744892159833489684903907726996760200427986644886978453740393180645709073973268087318245119496017961498691303183987576995033620191130225330964978934830215299135070683940597071676315103331543830051894768979982550022538008624570442090003575490063118883602550314036635177777930148173373109271279603753956892590513022769999348436942734226911283887304022965142486029379662484627560621298339427876004331388903975327238761850841289691278815916122445079616873580366007437669329005329135398249719649787493579130811479005744391279993031403531412213410304191357593930820351199043726806247292209842734052265447718719393946215144011626186803287934529945781513065173790738505066503445461614572567006701309944202930186678785967290349022656525898536209216776371046032316511609911293679363830797208357099631964315347399213986301140391554740405992442777174001217125690084575256641592526516920481364842881207532247435496040240263755009505950220190767840090157824346770112671153940217677540546479892560959550583444565501313917724730225267354359380066143932919012615113435390562030167977221145178429475433003391908312950915917165481016692861292297672005037389274863008631305155660172418480782170463842113883453385251472940321251357450050762915053911759558612324523493036947013686626535410897853340154228319590410602776672440686486175160408069119647955445554568183723724214817816281198088543908158414040124836118228946907655281731402719654009762030478124957192528341825726401089296677286765369824206189998438285323497824844868233203146871536663128006787637917197122979857104402107479998379724759056040629064096672531865418352036157063736434444219978110235944537388671979250079434297358121695742463212551012922909028879732805529147989897794626296299164317077426380933302198642324372090169531776337869237051875157368595193794511267129143708166506857062876366493906020755013291629113572452298444975795968306399802559349865337944123580318238701071117318224109603273826096401949385214773237890028818087579498714573773636765688215630955299134989500711655055066484918313820051166349773094419785595297315258675756285510686227281647769366172649900860588305510524154528328839264427326115205627865368482679055648101635096659665734479268222444372854364628178276762098073673108231577122650476904529757143539242114738330676650427308564148394549731544540096925943969836725240166234504234820392668139879103843787939632246704491116045563896808169635466585157969500873389324113530205322420505541859069939765976217879776313122185401304386037024872579498299986651842450051673474880622950175106464630720240877324923383876390948989550417097345500383566805669579763302592290741867670742869450663040143299843212430859570952229907563073348000262064853396123948825520538937881233519658639253403798262534035303759256148595777079171785550944807426678757191329294468777139533166919773173270500373620997736865513992928358079692153176449398487059543593619918649121986240244658576332415117881131610031328623573785404858048563701868300939476066879480408097716833460521134544388805550172081111903065400940911965443317265365131055698674591969786337137287885948348724549895169746991449999843261628705029248334048859837372020034115806783512453922097478832004284327487544896547000963106800094551862871020645197642607803618737696734047615335331411741143515518010469816937411472608412019794953614467371497578663615406039971548995927736059241372541133309363336125901152977219139178798934658803837432033621581234588977787966306906582839875528302271318490911421150691802202667533307369469604978237090920199841019454065270512077955467382649939621537867821825185558515236349376591814748911899281067308352314931729749107108008963718806720883067953529063644019356764332125331802876734209457384653217495015454649780447627805579846626347872014883647099076929217179941345528871675816002199947283400270967577633112378728576232310950207277714108092144342509176157806034017975986202448360164755925589419579411642545618344292645450840915702334915862756924689513560808521786616179101587966621740891393293044922623023123581285772209700508941910135142135029608209265482908289501479486312345664023585954703191515176677570736963322070817331419577040519723838029160153567435951446901443018879480276992538880533885193897415419975830337576934240096920391045299909250336742541428486136989156008529130151914543656683443144669970461806767227331311759376494693307167959345656606943710736456451310873270050372692550128859239165406358688416680814197902402827590283370755695066025740621278562962604792429010831358981012281578825123814501451571213958327460063776144928788728350157571694682065123915043874669494582910916944834011271807732876270916101778529050295912080081030494794749662053090063072845906680978259444613771005447594876906754276027248883328025754217189327251804641896581914058442347745367511852340363234857322179769361266288449403029303258093889482412161595888605287558012836268090207876651794820472304590149105456915415847893528790374356914119734585616946532932350891668863962382892257349455449377304926731892863719931439424051398881608004979066187168857736903941440681430825163161391943846501593624113920514366284283247973132113875168948065853188650096020395784009650576172279574914820855138127114743470993616056891436910502820303250789768878196722611667116996775476309859249899529431243763043950261224985495501670879441119968667020228591277574874636211745073257058122769657009038670689857150666567067464963908041510362377324059500765503288127461843646058565216500263532121492274692910657486164262218687750341119383546324743259065037778057172444311395129223693069928194393074438315411252879339921710491018692249793007899601053201333029634657331709179177548234106863595513769989413471294204845465090083440004306175690354176265879623125663274664430865153556351852493688804092103621887334259339951161821529168137618402595494637915998708743064143627177768231244121408661530751294065721071873370833852876654445263190594667132799341641562091210752588545956015275879484458730509573359489993140418174650999655147559730801030739610347938436217558687889625559443165539100159068469744730818517599454417598734687380144693823556578596446363313241451140096464148725752315310175606659685408065885205894905501072201144481756962776807973276262772282612190782090154218638054186702722121792233698270343165729049660983364863819611676587604369185300090212721261266968672965395907854626762221912904716496992534155931290977432166022126700150750157125463465613207708555629061057613829951009358048858230487528649628923231023236927937354541507447723093459451643790918585031374487735675311603366378048673706431898327218067316917114166246577669160532366417013180346389426963744388129853044961898722455720657422213939708521137062530319764332334527055356222823649185915039255013621586623730132116581569729654613018240167004818931591383265480657449727770409774423535668321348353389643786198936399896245445322234170538075586360845833577376692731129800416306447495170309383768202998161369163921187940417021102014993212421474318713934963164989498075631210181936200383128571873404674073272147023638649542096896512158264471671578282862739671700178935036420044689164221431866287704534983338436028762244208556088979206094448831809560681135189216826657630572100974227379910052474688561565930548799085712936576157996564349735693370641514240270107007632229342236732106625654541635194104632830155099873816829701600663678027595483584904972265473898533011252889736423490614910968241261352382984458758528904111495894403552475109208309322841584490509031481801854258136320732565472755260981255579891488694539021620808794178308446280274580514653101270214352928054721178455914718891945791035451299921720297106052822447413988445951474269878948477121026127174698280745703562795736954107029189011995139493655523996326479483568740608959666548791399478102426817686340546399277948527660679401311789146373997149977854984566706004315134003100368143912026380142658331247932269525894994341719838070208488026988559423188980043330684166060578084250989385140214696653518472337692581586965175253048130071204373832363149909003375939740132512797863091207795866174594511085099161336936860182912803941904589690390448651717101555874712762900729506641531236495669171821731589449401902577176600203272505583099745515706090177975176622339405217348436990906483769117392325166735018740019332171276567484828041828211377945431498511524245837961865140262809304448955877326607841407711408038149749691637488762967595032499899576722709564080822939927592358401381656742493793192357490334824856727026221965871125884536852686137861350017424134597181481754497702017883840808884615792774227936816054801124730217794759242806382311229425699909785129915105156801419747186995874095904282571572977531694285525545981123339378874064790535794923582430761257431960834907008252080167159940220289172369643028084805656501262488379771199899005123570680313267455433043773268584607976287200420582878152918295609309689898722120915941217342739439210836130403541475091526934160365057321160842419779904709633069476213246371489224513702434997664082691918616150678253014466278212181320434439689474434436899984428352672808915760553134259472197395739785314684500307747203211416569839504232948279571406771544008835637336991536597215720603739717006597014257921392009056488337357302364683293759292625650164489677107886649853603087336101500801505691226356435353560944759939505970364063675498062254323807936455998558750375738856397239469573644032680004626944438941155251895736708623952337958998071598601974178448841669158586908622810165951453323630860649589972697451784921858189053850212916931995617083714052383523457598736985321941804928456899641331712985083436521415864936428577507951636513141019922605643741917322582165774804717416793164037818464263192360106962907753971314492993645709061614172988549226297544696967346974479211877201021044947068410587735285434063807326784683886174762342423635701615053598991421624344794482531341975764040985425712372377125928599302692631651694892285441617822897697260116107782510695681561360587433215572175430684340298705551588625730635495024638083170431823339934119845132698471734603026925538663159149744988600336194427788615841399135322026562442504901310228704758230276575965133347396932850865143091951458476361851151201868659801516715212879957441327644908327040859245789909921877854122697091149856092877016935430969325190026954691493875623692414241009293430160968508980796590026445384770117059084285065515373997560543432245301441016948607413571607122889112810159604796184617903105319932565313770432026539567593031336827873910748199706029261413746869010013458592144279351977716546933608137157369490680378004193689010476826710500494543547369012381435182163365318732132114172923573022871807531248221178420273983315312514705771927928852924532455022967343521234690982498975412268367454751392834206021465982186893484657736749833323498525044434587483012015587108771420421270455774217619491677944685744024597801606179387230265971503483140387599619372153707379024532672599058397820239313687569941826073593644434383086267747952056756868794409353074886441809377042626738152662909451652229885476121639927409333488457056005120736612376857365896648768748660347700164994477926796067924343194681237556323792022057926969648369329157439468653271364138838688112258847094230990734201304385423294396515268505328812994604646959908513234510437981626081143515976392107435741231810246227296970239025474171269196533929788748239798959750931451954133129834390581058694474371447071728147581956429576090104176790286226184399617061802634570846842044127078477435835956731863398792329928951386760064934779346954144937487937670862562298973222870872753457588403696576001594231678739685534411311202307790297812231561037259988036909171897339126391686267540591256712909451139872955848303977977191215318792698946237102514124232826257432216612345645181098490681796509330535476463639497394280588614046537949580521666893644037612903045930060936883300950824869907956775799334864438496660041570934153246623690938752136380375556676634349381474555056298017543813802490676107561002453540028223034280671677951248855081453124516466851000194692707691025034060344401567267965069489459150067483242431112765647207396963518771221714629886166866055080335394217692491103179994359314728523722080470852602628528910840008444866608433765386153772840838226260296569385941165352696173226979293511136905969470058355975153884747006431693730052897683684025395671546121775485945771381783457715009742997511253801270483278050720591071070441811127071807589246955062909424409155834419720049043336143364643467500314513514334803367999228914805873300747991176108410275226772956712806976863751890533225448246774346977393889816954525808985712399919684438522894473576178816936683829220234711560208958807851095173133301936889673107293646579300140036218244165981070270686472796605913445939557532634736999155761224315515602383747974428047413304921063832789505639682893882312002933804277619715877651155461861936064273414516815499557870779286300651511727447847530484768830690792763647082897576477122351175077220155212633644960974931743770573067489052944166405691142491013307335235663378211934504166965056298608251809437216639406757097735285490894911326455095190870305135220509924154819950217568002606404369784878378833864825218902052639367648935696753853099043711320086751966980747267789363230557063376269384387569883172311028418012064359258181936682189787822253272866902612083350856823988943052942164300201187252989474297842553420791704037681301056726236250026964296659833845955576869843755890977600036136900871486548791422347448173195860263681520399121696701654781375172659302152412875337371609059595839846650967220777697931579239828273917655551713624181641428483560901864703746436966272105573348551791201476225661800929838291554020168164595652649143752124175516286836164720625548247078718145273853493823119511775398451554829521178289359918041133781054378893170514035506336368898697325400059894778717581105151067644155461486003183403034636159705217811222687856265648617187571494802626139779276869543836313355327629399204842575180020314943926355993113457883888638803544447131392685540972626789222028809097079167959286643734541059717483105655004398610860575323610340019534239831423949761122274802373961573230416775997997992749552752040341131125185291495116848144887472099860948149649753692276203568177841524382486854278733752657205510197925731586807860020242657392979733676848851576679637896240640534515368118052645668746392864269150026446522685303220903386199539569128359218598861092682423617096877523484228136792052834398603539046184461158555746162255238166969583547971302670302711284185607203342743325888171706018378408170204430831445520752192369602703678391799413352556980172228971942049218214971425818886487391659393057810800016210644754404123897074593553825069099878080490997377763409704953865914945481864824256417058561108255884173259544913702824442188447677603700978662854279724164683377257542607165875680811706518815948756886841460574134929890980927129186382181043084571923844921875052138272256445576656210826783476260254479980429221987473676409986823174009246821183242560247073887632207688212049555734451971579040735105117399575360870577903274024755500507290022049488819432101579007910227872628286883277922766169626058816254146650126575555665505853409904380138021213763691440195647964893268500111052104921977870640489012598481979320631959229380717396697816303862802606618374001436078996082870910092886370124775711940348204888928110022025127424531792260314077473599502063705469228796146770672739870140508091936621654792605176847745115893301040413296905305356107342909433198624787020716026409695210469159399698021429862654062081858776284819227093493220465001066143081249245568997318479568941948110031954123986412352645354263093988558991906907879606824037442124371050239645580688996994813181004276109230937836216148146687390216820302699291474398421458831577304062834682811636442811156456673258524847280530468422881428169842834370316388031477196541514046321446579601924868691035716265148190631157790845185662350943629741314710824605395601090179061118577756305003810424298311999588280363402748982084783359182092277286107678864477597849061363699123947725656716474103239458195017201365772455536015925059512243785901769034302497389834963160365883557163487394048892125973253770219845581499788027738784099136899282741729243782063709987089342722369257885321195584720583972593858073690274798586795786091325147104599131309581826636209603725093696281754714917358493780356671973802110393144905852369023779209334328477242369612643065363060086541930150114760928629142209359919878685127992763457224125795568268040007048041995262783944827482264748816249360121415219624532930035463369881946124099790742494968836394793645021418576649927343990599278022984330561707365158033714324202621713945609236049161577152193882861388493503745324032321937240313584697723818214521982985394423039610054013615303704735952508775730183904147504838154882437806706763918169664182303984121978319684422600055491351832103744492499657174840918641744757584332075022708107524448079207840683619394101438927259627133412187597046825638119493570294173709446788637748723511204398494641882332795224008004765392233602047552339957541992880960893869544735089760234879417359698285682224174460664749614800744795653686587824293365878101693608685824955172286673042155153151640712150764525177925316849933493586232295623117860405887373143291492150721040215715000544704221473891659289749620360802467607637337975025332647490794272299539270552352668087163714762639701905027112118796322260202320430414155440486343620014657691207346146984062739592533681931690886578889014080388514488468057251477972843176913393772756723785818084238925007753199508692396828612785617956590372736324144047321800626720630669312408974442962377225940997396250556544110590579103557072278548956760718287591706094726733543130544425913703376535974541494430966861209100391748714341329761372697871819590355284934159642496795945991896708259152056632750146837822778162947782124183138019600374475934527009974889814721442666069600220425722548807496697444081567448813877222210714381937404484519689207863581481364088652585079663699842543940617253315024612628836684663329137177223932826052623928402026306321456840158326264046234558480295850039646275860953532798053496418994658549370326383045371861459404151102093559313654282218819263526589125104413938297668042828619329242558069393084763431422024859598167390690139067250765051826831628863622005431947011339423858718823204397930355972281960255913963649856739763585834525465681753897284168878999027272123349347977539548808127155686856715675059520822116695045936450263914558538566119079999310700477174107295134097579628322667462972245529916461901167164645018069279590459806307528981824489543110917684456448282913367343091662611927740058728828423036175906936237917265810342517256043877293778034143956608531703385175089442665818399910200601329834283364965629480842829604389496247975096468454451455759468804827186633266177871330340452658795471102903900125939630060278399359690191340398532971755048775300417272858402231510767243549151358683756353192745853388901598984776151271073158426348885313481957433745569094178380754170366874639589787124000395853367338662748830756127397970034752453216674403031310961268583951604727897332382000384438939553168271456708394752014545388726977526083996052385988519017070307052282109238594461083450452548509878564560297568873345248002719501169305196857515709421415581784651880387584587261289520683492151718149410126771805328465466616626715152525844464918944644414109223400035214162930980194995838395175604013905124661512431669570885846328634396820655465003186983174052633639872459800400205760090842045046818921784295322284310659504028597972433397635374315566207547584143801270193208440278477167268868024267327274605465726300651285258409795788388640121551562899448326470253963081622569530169347305038477614588494254264429671883352349343391127935369216142982748790740936341067154179076733535492928582758888150519338126765185644939232483044235680198415788763951894975991697688026499831047672119338656804593705722935134897571616948336384510532535890102099153702376765382167112132812669586028485664451648424658969359805900044781776918476143892204547559085165832055338317771550784009663753880147548436828657751963494294643448987415558917121646461595814271593827784756682105812969354353755411002360216569325310053028983504205002403668832698049218378410949704773494169187068476072027585371839229010326793861525005986672291252650851056855421377056813225244327309225490955122747905216049220266201987932916384932573863227678205020635774877603748534359693681343264360550251016365864000378003074917045586228855205164683474455651121807923178211948376769661103464241142968253086269386474263479588470888244496316527472459600375188023215896563911570523630877221998183538534875899690879130844154611074807302566729011696705052633361512921801918262819768169884752267804842140920615813558879939493585754902223895170287677079772088744456147322323868121178732476454502136514174566135124162345703052824414233623042589985741713410263129154203606897581630291704014927977729704152510238230001166312429385679953009723197176007797922502116030647318779418605456443964530406638186363438364403356202024441077236432952108946952151258141123344196601824222897024539242464814846717303464841305028714921163049097730427315767282799357119672285347714536722221954890438304166175051214053218289560884711735948864794408054986589118425604182809543271087130609991182930653094624318504422879665677879363566336068624212903073065871879651028663729099621555356353201410628792199496005432244312336372970336917876790939024520614380377346307137866741675589637539922076281680885935282267894770170043195835612663536187209226080317629852240779451693621881556609553800362932519423610572411355363704141391356930108471340028180004677822999892627898898447245304780167809675848861163086428529601050760068061746262054392340821827122564307664884229937731079773214522283715327631708566499394596771731567628783448271671600213822304259356945241723398178103960498864460605046230031954790988141359780620167980457556457218413320659850551266600720296695104691012010891578479377871538758531654129646262742223455704436613285150743627231771273932927548824688218977138362436309125029148456821295451194669892433003919153635259535870980923202141097010642506309112052162705265792191565890036158360917086206350729136389559256266471322675179743438587067938241544324675912859584177858665310524904580816126828158003581414851033196170223208195261656668289876732595109805307465120925973099955678906590650265085964722733123997869619275698498402141127174498414379718118873168577930379658638393039327465933442765874976091370477293514674475044570329287761772201587736627510734846844160530173958788930521811134390457743503400040250386791705531714468826621020436060227646160276603761032108828216472875972222974616615328560086685822194061951059016443721272730943542643344127344464125523186737733822514351833282670284064523698488701781373230602270780242749803823770132520841305270664481063000521567453652846498954358674670934610094166714198949940979795827264540228060196028281997326216191885441766357005206737183204583377443196430424346947495586113960855872491867990538885093688855949935867864214023999302612055304062817973753960655581110510179396977562281285195926243495243182501621964814848549876614769950808470262319346035996911981225338538971641243374888132431353231968391070462230798639351467097821463101218908464760368972621662742277952578483057583148098069465472795100553306262131824546454855194433451376866839148824696648327485192921062593064453423686941049315329847815861860905444118458422029191945417085392292439792563798778785474056983538234518094556499624927987651656662015814211974069167778497442687463903370206476287423080089605818726416435516644689653443255886310134144453268115310449920244519598070650226663590848474884275606295897650773948676574329396185841235679706423335837613197226389115749644784975994579335972948047410004041777216819581176290558967338997513062999898639817065038252914185597132528710009466182350653035836128293438036907547572617178497471357681187040629091549530120018877466410647553344117631824970783207372638883631366897617989727899127602570517243292415277372984966491991848585938499411173536052949720004316271562870342555336089373556642397959498305411445582076825280358493762624658048795037013417294587844102307825710498940991078033617140541563553983204158255299495204748805181635619577720269425566253244927513724444909745954529733557803429483252947347901611857692691522214110549012098053120894082860591535533715791757809073027035544789723688717235419877348714044700079166353998501136231351321247018027833508630896931052437940355557488626025837901611259166129204611338725147555080659727492747651387122609235518679355267627670491931561389401811498873783649829813093922682818878050657067447007703157529364725106534694039774544046171393422847423652239605729125995984113808388617696625789975854788755276500348257780482783877058772684898751537984469683894286789595280595484796838804550467248073771687577485237949181742966383939503509372068471847268270420511198129554322068609976923617846454022328446624970758081472454027295671698835123262693411055126157118831438254751587922985103221200628494201597228129256118300093357544772679861483876627307537406365774599657726890213451557861654598698576185229286049210192744848882683776482165705166037746295265380143923664553300765992075428863904637553180597229005846252603168218187980657812358681493578560884039647950320727604930355435185514177170199485721811822241851086054895364289861067233964106032161482360705687044991779417231017397513813226680603149495345395314805897732438061168442908344881874162897116157937794092594636762701908685233533469070825484398021124702837320744305431811120993022087545046335551327187065266961831759151575011712474450818765303165866426691081563852779359397709140415769422669289602491915849088542692487863883897311177995815433101531276199932516325818715886866001276798182455943499199796950581982750223915609920631780799412212900873002280344061992062842147241706177391899200340935664149633465707924562644016229612450828238716162138018323042128905197873122198128484849144971041666817876388899524684668245481963854060487571334388562217165148306111060234760533050105261618239207078697880305517805367042177376020898442956273495696044289028288793224583763128227570491748801445565099014494461260112971725527153116941644374585729094710370811956158229866191291440764894518405924014295876267810163893784439878731640009010047012637111568350581569209982419580848142927267167171561172983714125441296970559445317316524288450416811197244579727306032088876203809128302212167354242135730337347443794926033884097478768669866463839826497456363580948064875920735981020358273311223024452913240935498251485580682635849415977416522170505919562815190671112519961397728756091966764359390220176049851244330668164155203422360621000331600540365403101503779895975289908827206115157756384837162528679456309452064523133965273731766914612572804116527265307771858196350828962344472630603449750893668401654078028202128531485016690102949256254260462991041942174661578823293247321261135855777256457124360596673822348517031339100201568711137976178421633262666079041380526154662798648157120346468239745080268820042253214807104250168534065570738071103158680831424730233605010341593125898125212386122353736939190329085975419743347037467740615638335319533336819382934279889914697941582831763026008280026521486977612863912150947051144012495569896916585704273910094550693602902907959263167404615929394794661984182092015890847087343124535799881851313353207838540997292062503706782016518736938996903012986892228326505252472209343403245618562759042510522899699508718616087669320449491032778875329089591640764873164702254174039636396162991241957622639420826277302222217901422825497954405877257583653241486031360407197280040900969807274516475634025488934191860099119456343267516370142235468492940873364199244839426085538348298690870266390750754665150981484522520580457341628963804967236469096066255617364795535413743780585206794556388082173115792957440880296779258251323191533240607068996383546081590759683975712505504316190159437766995643921151631832683637946374672068006058147371679808828477774888127112844743861706376547886168937053681165675013909291357372956061686617146349808851439613686966381910503569325756376947869377495114356301658341620899255405336685479802383229873987722425625313292243412543502472447266144863159350615697971299399879700071389853860553973769481512569689193460255853416849911392201997780859844229394975281627131991423606728531671425678851168085942685182916313752525840421562803853408167714850814428492246168834666887809582298814104096801870020331046791236871413674972472235966432853716119217802408461451048054506185776987157292797952271266030775227926768475509410426584858639292405974605051972156561114873213385385844482074232894555063780472470449811204363569317575224111701115896082913424928262568033836989268741941220556594652952500068669142028714298806615076029596721492189689486074055779559497284607144176582555897003698199269723519714720011989890404330423462869976198786550361331856314904088390465308829614501411856063959010897902985095584691011915284352182832907958587243584979362317070198577248251400751210158759961698323500687535324936243842798356975299157666532294504115925731502139333656947191019153545789806410873075995529659211047677170579316072314137309299103502694022705489675736843368235610873902755698440082751777288818362595353520376671816649054166099145894548141796676500015424249224763225526327821913986293728259579409922737308672851283315662983705052748106277756636411842869188721985671388950579199108127271082491329703255889555119237463327107514363999088349649139444538144052241706340691257567687483555895259708790076503302798169776646962187420724953597845502760796382743100727693785983054120285664384740154115606025568257499822103478179553471692768296159548541539764350770165874826084159197645457325958114047743412040614958511472393676166363820627150101002220204969642843735640281392253582557488874981895520434072783226159522043125944399120742541191030447176653981282271072434900279057156436321484833028657341840783658719186866543704029869505990564006447081039549714250196179409199635713487461627581712495305045083001011610776085517462236827129576753289806038655601199274375369399874240113504312755250712680931200114198018605422693223134773990034908718347489257521638156200247112149710808786611962046245609833801321864570644967347983194894846681608806488747960875473642314239463056466748650407610093749034327141924838556962203436070662221951411797599826784220002129378385954992331395676612080654105060635054705587475768969444509588310145741968073092113662178110428188164041735641356699305467447849866272890454432523471388349298259410758305749508978106717221838787005022011283924515765296274098772519337495138967791595141182195239236315275952985352805499860138788496407999977661402810544931514442679286262241853104058462167494115000949885084828198449711499005390413772119225776153657856222342725759755909155438412048842047710886877343784200997630208579239337171182870803712976734056862744334035706974972687403988210127410807277238567130003687851620386152670242702663176572773679977386947225662476286836227144667400279296071266914750000373830622278826745476166516207706162687719520171348548769405853668143604122974349678180817148904938272495595512394993583880652757791747473810238390324648284570559982702182224882890128211255747112312679058402390187685318179458005116677716523385381477574874889182970353728898371476194687232628677706432384627497211459338583152759672770373175777805465776376941889036772383034556686097814524948026701873033546178506992701568271085291296954967586664461305665232953362646674096819138431987820915173520287247071848463207415561163503610645514358240936079703463661488078979944243881196699352940117458888851017358060733171223573434817483118953548000411338679182358084356383797714309701111955786303421529685551323312144175347065948830406897237297360756193348728775574941092191434723726066302579771980604264237029560374156174857737958079269135308307715286390378842470304115475974864733347531134224381746173507232035387103957381588218534482511010703171702854410077432639364766328115835289748288874793714408904412062537183588129159036112773851847860302984843788100278957157865470027640739513741754959980163060195544914730522905182097166354844987821367910308134395487330507223429717613758493180763822655443567766808316966303276642434466380640237641514672859353838312925435380021631782709805281735377921006341916874059786774417478000805804473325757068282439200261491563343232482436278315721360224738304247837085625889136918189056674755482142093873433494559315840319555670265421731764613871521977512330153641404739027968322078376383846020606009671542104543247576231848583163986608408443796022175871032111561614611947003739930299229717677335048468495574425863128866278899961275733202515636448807523293088685783928857359440660631906554832026135058354499059370906092078517086930451609491888731131214205004369267008805749173169843084153336195339570159710025450919644320236057852034889745897574601655150301639646587211573120071976184451356304530936003751617914963211578861674141226879715447947345847190722373466111526579986728836799927357611274017893250470434495605139095569191067051355444027508990730806215073546530303358620823567767455983045680319646306686792022720483468566841412268776934597333471871707879698955227753702652793404393007483293886920274317898821858022573654849291431015925177025063297938069487861775698152175462652324940501696431968524066068508066806623570728988708585841161210030586886826454675453483536968609788038261028334460945857893127081632022099746468071486093218443838956150051497657117320436153003979047474008406352585955434538685553312082038504160694133090105871135180615071124409217590725362360222453350075238318190731100334463259683968516465112607112700802486997062161755536148076693743966885143776875657211050426090566432146500295902574279610927624532535655721210035603856982269757433056439600108092680334044490112149588292664760225472227473615208282329295841399165519211153817675300322825798314389826441269528035467450817865840938132591380749307694920403113266505801603932633361137406047035163963440998852134479693387805712520493757443792275192837110781327002897356443013849464326809945453486370528232295618804531328325638704919728194814198608693335514320338561787318840754580233945143683368162332330704803340389369359937109228291071709286243800980687078191859701348931384965116122712248126264581732632708149026301338569374262467505230179454409499238462032779990646732662317698614856312298463723680496866677184741245718814122089019786377042427274953911645659487647664361286509366154917872591033985079209640606696837637433215479644718569965952528270992215504181441810784671874212990686628239483606613772178527284842150023152844740838988754962900327366615403888550732557264902926130795718798672064826834127755019298649940040019310088696013743778773618894710300002653983640019120142231713147789073264646559645507606439498112817365144558472899040075885062705216448360643100756457245013319038833200352330966581592543686097267698421158272614744462929632940245965763272474280628565426520079498613564489199582137231928755177538012631473261659299654266026674314195358335220450459116137302178675502947426425379263678369070516676422441995914681832450685080458155837954505599077288551333658088186756083508395425468821001374721275205767321226131930754289087586177586021080718695405036458882255183452660633688884800490009919163615053731147888414836729891925572519205788328578738203508414335165279620870150921887584108492631964331254427187874072766802721745927903494397333273075330263665403468521234628127429875903465940462519262110862819391276926557316439996478142697661842047382075790427157837078102711502363538099483819118854120475564931167411843499136717536989841918888426932512832922685386307885117367058253192357625665024400294083402688151051034840236285459593014890114689512747225476081688161260554385364948536434198581556883678984122044459361335132210868716957101453151225055466122530416212136521945464408090625205418170063872058876085237187571120657991518868652202542514895368793899730010504570209637912940969570597756746596766270390130225983857505901140011170527561068954979049274479150599271890742819458407815101310753635967526721345874514856711196353095025568281282985748693223750446231544098302694260403359569970925251716577975837629976056067599301139467953179439116132554082797103811866782155156268992838747405209721034296506421835664454313175042280379904684825630298755434070781614089445917116334495637142626573304597942086369429818983535623044914173969794708001348439589232486415395425093097096768731252287799769486329720426295187736093418896332964086590475772469838637887723847809754502360354415134916247531722215319653027185196373511538075529288761733777780547027068965232835476150473255360110765319254155282655919164885829352424705541262390791046877483349233985332243245742770543954274602881253150635166714952066121422766863109877852166311537532885665178782682225921001293920641282644784001119301077515015036471528374788289380370014376522579834739397396061758738715074415175803837565385928713641888666418126577659205865314820154208507027126450485035812734249181481892814499528241468257793072034977616301278422996264264585978032130690469641728998461824010060298474489590580357895409440669294126317281403058663738224253842068600332120975297211071392483622172319523848409450901827731113727722773642500632742346681165118563359655944191865373246725466021444190813574100301190661919510156154953392219147529500883281889268351055872209455033576373216603799578623472718669645873426793853494620856828315752839293550795574116663030966670148052059807475665999870929328863703578139574926254099889808997526336122195542944673547833091491809404400995214470619085412714826505511128616852121517165697466768032547678260403529579065768276513729195612670131719096405672837326219193680960614956895527165733595649518819191649341582140737063705789870715045530614793457068184913819274333843035296326868264836078526238148481168875284190040134572122359103541834985679638104449741934177929007323295180911342810782796163805264514832205645431123942760763976509296827747947469239183195954686404170844782920856540580931291897514445441213701824153155002765199972426681100735863790491695413713828723378484324114700148846295346675128516597805383166976009142218760712000114827024355965245258211332377428833784541417957820681594669521555869522804913453183442773550184426336412361601259761138032057862256373187412893504252455374126529878886577328785857914356795374467309690706652086534868439620539269333805393635277863454398246225771271088918913052794886375181727624244526580543222853678447583346375999556383047896328245780884329114490916936591825305313160002106630056863878519682847112743476371998444255281671748930484487142334523278418303362677158112837621539023922832078040658499752548170744004411431448353919528193246789199655201482675009782676514865915786756787578030303496210720923845853633142582976683755748124386908139050748435292874264531711901681633035255195816962326060674272241086565506408340431240181204643307915269499971819751482121908662902027807511041254999565529283449459028526206830377796696022288412977843911453563743474473509439197900676255748566081146502751003098928128720321824171094669648803507524191065331396231916881036729646282631586308517079822864756571427392584652530542605873289795430806348106299562281919277281328148927345113955343199504588854786932364756732374506512868917231459717174315822112465421054124567890586863668996252413318019573800928567989152193056683512997251357648688288944857537788773741057106738912154425021728324230018595846743579758599300554851171453988034700142950837302115519082126509236156451959529700081052805438632552355545204574854549350380627651225431243491805107519064284013651824157793608122243264638966430785234103646992286725430126328888969466442718064626112945635723097163720956551195612744253913013789128324566306714613749551151779005900606022624277230471248048325641465888247576413417760799172311821290780086412685346578166496117562273365530765400148199630362128542647696090418508604875585263136429210784309302174303174890098842919501096020847373873131146207163516987770664130524979995562166116418658080214385126283143475959680768327755743452753852939271851683712249428340115396961751413564744663373926580325564172722984503228155226976397434961474628484569311218322097677096174206199484418775484982484686984974616512710517785242034232539474619408628806234473237872221955935685699533383241586942885770425012872857900410707170538166332941625073909611139931028761026714779504911899950925956915253426543368956676369462622085623500813541538882848841303472833903959217367326764335069621842916185159185591828937916897633799806109645608364857150632715223109845891740316220918589288209704614603125159389941604155543721337955163731629776192033466549960556705971418833252283676274637067836754540745778521403320593626389535018155729257761372673609430554229823934725434593811067536565455726082429814425591256181589060923297914724966343732012811887925458017849741018444236837346641792600238892832427235993939219983450835851445939144569657446223607643504889311930313027611426938318720509045520148839475373266639966377400099851906045254804229716998145309067501470028583848279898618604367384032749795949288850116023874564651557177977716130296121429055954479381571493591922414684153411054371858085484287088041422713537984088835212622701085138556003678468845365705764849075959820347086648187050512175333972087833051934307878619631758568146765008890523140819917784459943853045806159822241492475710129977438396124162211022737907722067251376055377375785947237341776901857108246479853361597675013109188931261899997090536520172218330929066771428746099797221240800753835235953011496684430114260369712674270913759244904320032637278501339448213421443247370383549071562541617458479795014512763326566142741757759496758788524988112014649151489369680785630809886487243771788634508628995197977694460318661088910451785067180310725318915741541726261483382904171398706120354739248976505183723242286799853300762192764840606837367030438444637219598720297040548413624565832020062990361530969676925593101734231658843557356462104601002092786304640891934949250473935818111358249316354875421130358289072225073188218169293670660991779700475936212874218792519945616566449632923302035910819197725110055085666499642287170344517739886929497618077439163501904839594690481418290034604634223201912902626272032453163371659078626760908969150936881270189921328246088348370086524675865640887156170838179519958220509892782641495534807391698761689157969407115463390823454021636523725518880510105585368370329073926409302600133648900204306490597124677056567140242512860040786940222003070650662754968505250162762859009626787999688473220411151159861932756183560283191171052798363401129695190724653083856071552259814554604921543506155152634165877573150574097118703246990718249462931062830363216247416687582402174005005260464822950046264726688267059722115217087339396252943223706487568645041539558822808692502166262360463428516499431164241784238706330305815791917464369391068668455634586814738483958011987648231256005928230555924422390339309127089311063900038394738158897319633508064147987178446801853784299409539925314936244027015483599748741936272790062797842792207417363429799583432711343568799294345981883164662514530732663651163392467574328945391183014956548803822146792353455504756528072955425130830110937400065643568860266025272384110281923163500518467008798221641884209142264360237344126032293620844398633884148642923327671126993190384169790027493230025357021263314048558127062738561125777485257266775875631424816900969209067386757749666660721107796803242672398739464129848065515971058732000178826133158207162031267291702887737300518439592113143389647861134931808951188275403310856235369953802670722920440151376119941877191061225660446519377794219900669265589194910740971438815257754961495636309364278644488918997627240042906125222508519093645481159540714858134356443704677877663125932756110489164624859256736894563464898061124638308459655722851109549067872156774486253796021161913038784772124548121722827402789400050789933282637141297739099440960769421163665497042737719568943163154029874589963237756857733722002452049642492054790406144290974954293723582496127519738509227933454484115207472688060501639919457359362019368152281179120859580822025500365760898064093262009562819051594132357707260703980866093144367593458838395254101901916597339727857136642924129394158191007260291852938137832339224491881127118475327282882368946466011216231930495043010284943833565075820701223926569706615777168790341972470192711602966852591813953550951017237285605313451737364472726160319535732445819072939248102598973816240492523463970312782430910095120608476884490446398190559993234522897350077715795192887453287945493008371668063971092334175147273745965362842028369370213630421685005544628413302990264368709067530765420302637941168388210250615478829126350189331556502346405059154666784261735849210009842234797244654220629623421409145901619497793390787048374008645315704326509644030409706846309179374159075404070734890710260444334303216357623512107915517895568290096675909451380871027124336264813532518490763277472963627645810652225645610224522701632918110195615476706032065540718308832495670612472891335800136199715311013163671445668664491814206022053102858051662027965655161739767670978749579328227122108068551810965314000149528012001752669429805460620105550271553705598367953127984998417233240233156899966811387834327726731383801614133717449872309219838534876673881942140057767488241337610360155019978593158630722993252923706000593179906457020957530482782016500167835665974242330270773232894663410863191363910167716887246346168130033460985371935107136614994852403381504715228371467474750856543398569422382615966295472312521021592736189262302747594714221797374477416595945041515559706177844172071487568609718674973299762501883956895158264194972861781150953360935622933928237527501533277001788222973129783961772657916698825076331872815265653423835176557824873332916354293228930519484782441900103680511689648635507601492924370720202084428875585357206260393840278744470707536398546630824727499360566493718593165154331397101905906338538470394309482332684881779442241069421509892227155636871315266602846818812182571302661665177238413807190135788499761849090102029936599409285129943039676173273701444189173603160569686374112118054922099207362364077415669760220228840369321120383679904958228693461450875634399954859090088288054417244557334554312848932592355260022601983970723826738632462728758074129097812320701674792388224848494626880597595583658729673036767603129333988153926919093567270261107416111662228587121715888808335615832966122822944018026381160838203376605282476880222132061831170038861456934236115374767717400604006060230493636812981152107925669759911169203138663543714891600456289609856741904188446078584409489162411654692534921937824778818894157184865548869523002193371654029409673835521177315902305884867662237957257507634359212609681444087544988350243191990679960098440345524116945222767727532918772080048860450505280226966256283839650627846334978093173113909250044084958224024886480836502745105758369993316583337477342802944040580401173841423575345146010942069634244320786942791602367164945240987154874490170559354323747805460073512629968660348380028792579597736567170889177136810402306611581905104248147809210028795070015952507374602009395898361712021446386972269581221059131154934088954981881088062068033414361350968096187744308723799686464073697476102331168176356978367807891091229202744213016316036060398917418304818514964313639791204066970586271532478642068870236233582852732933710241247447693746157076502461951067631331766606960095768831824350347764598827678538224266293937756310732554413795730396671073731806140223864901377425223446264662413076077521806173586856928084048613247333290390488792515806051728867336267977065668371788596501069380559403857280446185837065725353354367962073366707771610766200211592249093053484810973643027370851575594431896443283528846763276347905144915492091834443670737628577393169320530293851515702291186631254579225896556332140935972876855439934186511604248383402242559109722915279443445161800040750046730759738690123744515814261187734572258296639974820457216178648229147608709814284708697652453732591966260848901796713417862223489409059062562861944280690159817088130858229040224213028963776376729070814195596857159077222810879749491279414227568242256107540332953135254822781530865218435568802998298275040243480711215086019344882595075318802165928834638059179235756778555792565684596773397962434708701746753711173619924877757739208673168153325824283611564250263025470369617016945182366809884770126322772399575931116532634708477522537208864023029208012288579025261420297315530147695114138687856778977214319131258680599818267499222247380360842371350661566961137242195147506322991774189001992485280683106071059764968345189988878093066114844814159746339776350179245011410467282710670092958290035926003023956777648584334583135251188985601458129074390905542167267422254730277744440566484895758300380472898136402119963112672924433866738303914039225750290483975915858181538937074738060280511877482132288121366024387119887542372917208003777446831536950565336125258651715348468829400349776904016837989437177259413636535463126573936789909059843772124741196879801474769718243074491626312902827089953058194170294516056735910608250636279844189712266184088981686328876604867496578915596877943570354696951351886855397100151884123127468021415215711343281337930783810266866595289980210750250816520680812934211433821418742699132911004543213911597382840299170356917708733749951061249133543865223809341810391643836015385866316004850989320035455736879724882896291687520570312738512549781783383540058518819850563496165301467896733346731382117678377375330124129082153806050807056772395047620967600599428842687224896922162088655668940698560506884983956025370443282259309036068063794628255146973873222007002950452177063123266403187702240554358595987039226746553262871852580361607483052581446377727484689242065840576376386471414548650769441440210357000484135698712940963918587302615543517634779560572239843173015852720364103007110761029078797852653576179003327926873727896668934237244582642489174968398567455534058047683014957553027261294379027261180446264438923754669807385214993671541170724584776523311688057518767773295339617605749724765155137559992979111048753112321553922768654158206819877758998233108029269806519975265156867972422287738445581046052430275399240008222259425349017273459905782165848615408912526232208423165649650285521587096995273032754421208716046303261267501132775761899036395217026170330329309245703428114022811073540646662858056736622987081037527854599274654181600539813479492661972930760001470645486789275751857896983213796181756314087910302544467440063282209293978005082748156031963170398355163162946827247807954466828140636272949113805711317376779673741168907289757882331757915799518419949027999435343962342486248934225573039063960206935856622658794275482596316928307570693367768240185058704732483666772189838975870433412970670858753841385981253202052587321556667031467146540473865364345424520395813411096087428276131140407828953253845286262165798753243415477061132566038686966844296840696293350584775702821936548815762996787692555851206204924107234064527482990231163466143548608882500129579099542776808677253242592918052213770456496566998185558261853987263899875224804994716762523169964166804475795160697229961767418576304900999957933471812314151348148080741149423671884106458991226899019367355746988931604975650001227610333974844575258792823801431367378420581882944798700577967885615336146846210886190524607487544510628275762087137919246167240950925635294437753609888677509804556970873906512728550461180249620159277082202367652208863162187556853295655338881852040252457110637405537055243401308921350731366250320528896596796817341961590269516241153718390910448786096191249447052460736825679117212864033550339279827976146158588065506562347271412449119834629028703256877882786496920043516647037304712225963705236469414669065186343591547944143279972121323745535509724585151503284088574233689237397300806859862344379295641636032285107614278918467641158738694963356276967135843440699046467239916462609798920021197180655673896262061157639557734229614529420399064829435084832646862348222994717735337960928401375817765995647157448879724375846689432992044743044117106374024638785363601787297881748783691209996106065645636788427443749601927507522645163743692678379341146194819804360084869466668231311625237117867366926021199467916013871749279091250142802301507692907699408993066051359750590304214498332026897388902599715568634869257839026742887357661818378121224232034164286216067075870113584946298695554365375991302574165387828098719707243683171175599571556919166065762489964731721831145289738502260696283113458728651795955788434314983350871131114147499682429852518014983451160260719212037330092687328986974784384896540387381788029006663294187222017445242235803432029255426031159571781090427425840077119875015085307044194876892162871781343072431995861925792966455906147941023112464979010742906786313419652904484534604615646853191157617934149570303976572919521109393039838608123478482093317131059271218911845367871353896268998895404306544884718351083433092520098465238049377879637490910781285257996428580245241801786856903247924056259176015329383232660387073769180659332154670693914978522747840283735650333618694707119964260909886697685649940445669818044226502802654908697768109735296757898405865971287492388814177566923601180992757341466880210962093139440182638800352059529990038875412109725094521266287013589795884872838064906410829215129222382865167482530415856702773115223228390571254451393307831703344136656738875186541316406625317281662315538091347255674616267302338173859593040555811340781937128501332857930743953270536770788046546936124746443642550499435882686004493944638794558025797195094800666889182115280457887075995990541290463515120016835140451141031647609603027274385415693810930370516065683677832771193938762823671103450244376416339122586825291874172538098087208941659038243079698895660899820642044188896004721560002979556543601971894602530873346690323298653017838131995183207593101106514598136356484890557415709848859413121938845245327013298962278375972287106977274434879534458943131390946514985366934606595724180285540902114867160205657900917141205280186624404972093459042446946609990010291406222403939809417866528683102465250031349865081815051514451747029622431906003267710877156748471170927625372976006299729246907385949343842940172544015838101097397328538945927155636271456890368133221750115339782939411104347235923092265485451022977644314559288909473767325987794589551084181205147966880293743919094076794000508207694611505967479245091355077409453328212070207223739034228935620626643503443233033432245483073507537511457732111772172659326681974217138152770869768284044859211406246055013660620951189438320412951416993423072993838583630280501257088238120138958295537053556725831002671545081663609206690071939422291341703481258971250240558159490237091351957050392158360450267216295708068294900983740095053523987103980805289190259512111782220844264226210083353976566573049321352772867817249563337720255113369762993574466377768317612802687474218585938630522176326115089652521677809671341092043946547818472087405232785449659173046934495856742717036756144654567334930675292552668550970532772560749120293376068273904251337367732185389727414285321239252563153835446577067204950900856265355523803026746536500230131413113937332007653170118632699894868977617393207124112367666788003484095365649545033768141436292847487466449460044625796088904799880189083892976317162492028057844747279486376056606554765310537329479793606811917540625010054927617455631933753096177469386249198866655019596617799496786230458170199663834787215125120518999749837480542345891914885841703379833702422007240736928730027710316071715439667015902060465354449769039478628562428504938630515089186935928354679836237996993016610404544364460798741733162641124844076832360881249008263631234080481165343878589300310261713759061188393062128772762405775985482012359407613723839284506837152048875905223623454547063559787097876317364485148290818743725735455477591363791857954600240611347390697534191848081516776191121425922738561521252301937136849119116816847012100457809379528152364836279421742481754941988039826058881901178929719175030485953317251845744006603144999041647047872244077177552964906890769915604482778391251920498872131383176067687773782764084693441966334832938160411250945872111121653625601256476880206186606394935838725749382889321697954478798928387856717566977689527725490628285567242523815823684613275854849867246863602513080412324097552219909133204160520709938661694552182481469210375620016001187241094952063364158688662160241636705508093488672567195921372466750403226925796656011664565852384315288181741781075666305660558656272557374539956329448598286173259964635428546457997923134220484486154934662369326578691548309810156008950044634842091498146950767098650192015468975371967569642235742387003622997895976599732233325041402725044997602234112807570745266163725899253027329658611694933725660510431967221072939984862883984264979279121659315708522021834630616287105482013591976935404232629478049693632676447207174264834269677758537142985180136731026180330354592997271711984826274542417103636580162946905466488330814842048755855129235455028390186704555612361674192630089904711019900078341699920196217048648504043783393992018007950376005970884665184655514935479441043434095499840884797983642317210218690515345684427422687747925782367571795584420314005186706745174962709672912023277588782053104224122627695002300240140142608630565046160783395003361176623308474897738399693476824981159192997854772328422516372957150421220706897287961051655396044694460493340556241766968390653855349080753875518168351684295428765757319012398655866722047124069764407507242180725143614836173128449500021181838434669557032832063838190544980708831619336419499072533578154042746752055215837619368516241388846615877539129837087181452292170288064536779065530892075087733752262027065388258366809789127809845418879934316257965310335003714374339114685960325898195749859545417572941257409954326304223330033083414497835965761460916981873513012583292621022855605518024005089717523900845563018951413859394233297053825989854832357755350956280229059793521244990131532151271953796612257016684750398087516287638362369282169445347248417042868569511668283731845079798825512874751851745051112885900697331575067579293539201801543032971277146802339268204563045814365066114101788666776435074134515153880374490676925446239441084951224359759132162937088543775739668652831655613144564251373492868539224447233374042725550723013551502397971596414590366825111677110057956010216920837617426300206692935148558588109245579054141859560452644906314501717391145223081063592861462744641970293966649315913929855447478854112188513122604736698638577771020057634849153762983198782955004402778610535623729562645581579217556862566165894301650638329707694806157954125114894961735505467095858085026431189234285313766559994886749510723313105583523868540816368054525245702368075471401337554725573789098451722709026134634477069447650053546417856778929526352057516473768549246646550584700221285201739390889079078087387154138885698202781911458950499317804846989572577594197017835195941035892347604954269968704786295133084610663422247570147458712848730098755297516158952678269573747437441196181649826175820651319913683622420718492413943150871865290281803691826772785227001522221046589701701618018911731477391752220905234244353870323215877891871863631023259396546577093504926102221425494741621255988980417021499112792396291460771336169784222941628912814886876741045512672264662738461111140011517908916224450724142992777875200140919035942963659956664132874652374535139004206853213197059016944594593994366201807019402420124574885133878001694757086272234349618212003915594616376825402850380856929995674168197417161442703229942225709488544472147647893282326885529873468569571514172448761333008066027200554511447236331288502728030331187311869377735779270924365626786661233969655920070242667705344844616162214270835060615490031973495498596159282815590964023759051960963556644230676903262540911651702826882340800214308819406505634320581103254419556230025758870722714030502854368182353170132624395792676481085658401102843611569147282788222503397541865971182988657218086970331974074984464540308898996397107872674315427763911103488365823855140185980143562026914670217793844553863614020602084839517863900551023254809441976042728013980141768932963042218090883421883619281659128485480617886160857792098803241727561159170601845709186418824492190841876531638742727903009058060998471477724430391916513545879121139146477962337357495508629148792143622804365270891699358485979763522471216170691741104322100363939368363955383765479680843697576955190303577308534967438921496850017809433703918299643729253831661607873363039284540119575935754405396712223287782600912820583158624075787107487276649726996365422913416406324099616444194334366332804944360714381619590733085995175836880734729411318635970771523867762488874183545432292987741372105726844003687087392591473734046551142626073086091329008989321589154883049839123618710988526374832515553821019489842893079354666238933949284436641138007191805876034653998002587235687267163367139230311351218209747323095400827698411771724343010500708793445405451787014029746024396225203640223950862352150997769007676211397971104482329689201083388963090850260974551115182310186355685519245910654838793633627435106476293681910901037049072168232420931465695120546445700900700599576400464030809444569077216229873220533943378614192005931507911764280440083164588188269301348195684938756394503408882852201860021305263282258139843274164215500183758370318161431663215195516940254545950991944059595222392284292136649072943173901953796449339399861517607697724040617286011382352722729414946203494559526580688976894543809728263916384110330282034829080363120954328464795627653022305662226233945032895082319970783369512355269222583082051105537737128869769228410181933478941637282594691012372080501798258351393083416052343352380365845475141104299886259192507912171316026716194974832905827447322506796636681073930759507302738548407381639212991203913244104323408116911040078627320152731789605872594606614768271649313547632676122877281125796268682519750083659559278832627041403333286132134728821735150232375706690296131096372407366980854765170208208296246067058290226069447409297783407696217300124609323667136699070432837844328664531977328098121520023196965946646402289047986654966723096459775400999424251348221438370084504168546883274617591149903977633802860554173778783697761057658022546712215796152321777167769449333075168741783666743840138605677997325910721204122443985402492697152225790123231971294581285774158832826775987841577537103949251504756151588204364761568123799659799031448309310784378883616523607890680801909423815132972259564311852361215494218647745087146855306191083823623785400102594690157581916625619502503544060146062304863142487685059982904240765275057944311549602507207209109932978981775738202427563357016574897349091134925685132224111155580658227716702950694954386969828879459148997580894091408469254322445302818965104657654375625884166610542049983368162315555469990067493279296348245524189343469926028507351801086214919253720495449498805130740287219675089800763065026009419279997381153768069649272929872946171525674707216554816920275794528823826573943855584126855831974747423147949860380704685001082584333433108589116711309878792290014383906348216645010793979331254012778996827737326977036367766929769116606897686751789308080503016453305718652083125206007093330408143796205533891536950206300663851539849256561074565196260090131380038188991803780339796425183963905281107545091017716694403278291375415007908019190409299569065089941639406822747330070144035725832409654668417178287107665891721056579109718389722783479473613435328602293690074817787227367214250384091747585765102252469329881542499798932802498836668412310644548066170136656228891624121285387337662835083532874003125176304589197340137178164633697879833347502518452219649872302719624516648200858902988895421559625880467393466921563886853603343921810886312559718812678117763832257232030569705409703776998247791557477568263309854361190440748556966529342035835145453376692581076104702248392198166958496521860597313288217364263251750625697201729547157807240224238149834756338029340534958972698566260086480683866833476206797729900337187049478134679267081401073318773196653934047042606943687989197864549212962558935702823363535236865794723133235969009628179081586566371969326566253634508248710803583328902921498817299902660888713310648281222093285213754353743727429647263160237005375211634268903236592125754122458548024511372943526749635054974317916977741413240455027876171542600768634226399436628263074027888082348204978349903284332579590023640034895195142687860090040367858108291156403392877571369533778590230695716711013898561059933041817172082304301662557780237083330013908848307488788645117676030241907388730172402156566436219721527797261154417346978427409855729542300099022790241383821935419434886208754213883627811288752188798214016686733633388132317152145016349041207258299517178052147423293504112896855056203950212933486443277909825734555540708921693907831549974427404358989407512931917505731872645827059859401723041420312055744936937542379606739507234482384757430589893654312135820386523828899780306487947380344891590827117784691383009935600948355588755529439846758462896389334249993800242094733786559044225572572481001408476736343422098927094550544451658316534920512838446788604322874850312898872407333910553268733169579547885343149768610976504819815998647599128908881491750216845573774803523703674649865032026102610960478762939921296213810135342644736792634410009809096714072037626955269590981648468166992077189095595946610877707243750743555434297372431419938132603085314393450998169888628970450124821309857031474798015877554774269606746205147758272548238784947102715983604562053901308397909462702025461306101287599770121333375248616487165165394946261127870416311399418483310567885604353450774241312602228212911525311290964960913215786180649296110263685559896215292041963729014682975040469308391473796499801764758523863951207465519730266320342436625785727165605980644737276682399291798980236005956285611279059288375733888512660016926725495724393295596485957163436635810685418541704599703585320432181350962373451850331435876971956354489493222477338471400427378556061519928643306531247212667356153449710015206282871754718746050959831013935797944551384234010297557877280269280895124011269181227183678218287727438725205982064184524290789093710651848960806270661952923131156556740619871496088568083764369355631206923115834244454936162075048281276234366535140667465406750027644639163074275582851301580572221781766443913235553680498527754162585079328001107964786776669774243025413798418006710238964594346665085117968732608066954885000851931093530466018288888660791914558096488719112002358844712358514145170769128370451477209073765225351383033875574153249505603801724699637229938288070937840324364948602050093960303747481749775560250339921050697454603379039084454812171157646817800580408521014992777495308058131872093104707045579592325706094704244520076085122518319330484409578283875853287771565985892973635755421467836910570139180137537219455494389107822574462598901522888002862945818820526149788893193535759902938977385581922083786015264934424633102052307461810030240246975217812780565893009433495066613202534650763045186940338252030470205779196631899201735519800811670786453301419988940767815387389784769113745634677709890231348148313153786655813854620825255740822552958838136968579327856581762696608861175093620199801498019545803148855243683775322861259981278943664158764018854927715736233538629877020085575854165030125789691042141106455264030255244147485325484037943115001813648543539073254358728329861971621920985596522437555201641614036920246989914271428745272896030099320499219794533331767398358169124069702671269739519815224645366170065118576408581302746552033673710738669024306822962790621574551303184791692962698978994559213104964957926024018836524042238676237761155518976817825421315471606207213913175631796371392725176613082752786570348327575820385289128851935112371444416730912472861443689919162724145397770658811890009623046526173093266885483267236456275735999922325486298299140385676225337679790020625649197892106576952962187159275368670743916403976722558982835031541436243953387551207905561785894149539905254187243224528290686699072681605307339418109561352544686712337978463346460067690440923906538068325267754496325628927888104447546238452181917647191142184533814882628969197323020879526188006189111888562226005317025227868994739292217458159463004103389303849604944287606607688564615257445239684727916095116079206956916181096013114954507029240350458986675424228559591755261133810462720712788864949936281340745872429578721401572731559764435173832347501185214229929197697275612145370119939057950475952437909731015408604819841652530029620556619198485413475684271103296104547734253036990440584797509614315098102392142854364072243946912585705578379750253625632687152193875078334559481417407314962610742112705807117063265942694181060121051319508120342540590134588660457547589900569978719924642382699358730175063794956091574391261582816766244945443582288895790217848400589198516210045468495581549748339382219398805110878168468180131286407015408966892852078001966323263179201626559191977613407331291836004822601125249264167550698975910908364745886312293048394318309534864693595878921618432896411833729556251278648050559159197322275207881033173304663157350991658565445472853660015302812929062231266126029889132680475586620320732113038251902802482621928232937416339746872954392417695087814444594264205111060789249908971763472517273824036905436362835613325593915182178099398006620732747592268860977201669736234453422473634232258221941967727817313563016869609907524280796610469789863934954688775550455830538186590407585464763101238085223199146005633887303360567264153877568040498701407736036100477146443863550295642216726280742810351328228047681657212969431702339054673708133089557755217622091735523041310399058258604127971943051412637912596162771777663999365470417210868719088230115726601122866190950265882648033989333544048774262753982599484169556011271738037521174565964431907418439587821323914055704535058895938033444157618801210082970916142551875440718509016992698037314247683506928072717762245473031083348106937251379795672399317098404494869107964406229358329818400714568455398490606152220807021964902420432962862503268761762817545067281956080543480526633770307623088485452986140602350784677325787273667523106056979198206134831079645304324765001506768052067341228492699226708938582448042488181457212216451909390803193707561100719104418015978792813749489939585089577248739212144418326841548212921055358013791868696310644584403890966493563618303778678085331090601921502435177557380008163891535473215523184202254209025138243923790161371231751050288414648896272417932336685712965191045963974981646301345698644961604610797064314688757638063223771478385923715644005906398476023196476824048077470747592689001762113441234319525430172670694805304897784069820341144374452795335368784124581672043059453445345205550854309032637803510929633244407498419334942956006989650509569109043620115445700197963860485029743750922367438636948749194028936252700555311843937371792918674230053504607630842755184012483510385956028077036923215540761541820271082897668376834765830347312939251984528236435650481424706952148121251112197753293969194160842727674092192104432088657995735687859640182271521753180304494879407104635051018166208839033791045004662122390401503959491303949069242758132789322013741628741481930747779122044412853552690748289425333309014961080905595569425166930827013360990592051708167209269749621797638445977619312164308211771331932439664597557865093134225222236373087513376406303005260804229696654861640789784721066252483951796786449240129257002132273725914499844338349602152340928703714884911408250021270468669417990695780875976218712069861238787758414958760898589350835265269188549612014520926747847344421104966069016336512546987614258215555348111764038778338319764754697150432531981115014153319423279610823382290078696398152788343823726437221769568037174107392287818572010119394410807571043734414573713330653070013724574121325717347742993838562041200259920599019776424573007116007137855965598689638489066980495571754833011147160933124175105159431245135306933547962369225994033306149661409608253354765267164132429241226002946306630567530212806478741841763694203274232053739666173962897546601940434271607962857398188648918437311648073936504789814654268156276518261911569494855412382849677802998327632120175208568143258306337596526964359206619218617397637315569270765311079732530535566042513434609413756675677446424335947274648592300908011581114992012285491825709632584398326726688593395113044987872007035427174112673737936729646390040947936533552790540309356975714868479164138166688963352315971316307296513171229287142282604140401296711645636512481767886527764417737149357720042637247260604152297078287973148373647096141600608725227584429637655367535121841326029134560293758713482814167095732819804736850582422784889400699532380410482470975057826057522563833658336447556742808623707206088852694973745128079944264701039776147630880946353798177448739422702473603982186804736497742953582017575024772649483831089334314177584138544212002885670928194363739668568448565316828309323497168341722954739233501958137267371246713075684138676609924357908739679388036535481637379694544305129287709346542286586276947547845055628911102275463322053170584938299096851617077574208929891942862096445489645047093929601582716496733943834142296693070966294410053449236658054299265252829827314304209309929210863461057694596912014230538433390552138083294188950880413353370772511454367622727671465455137645619782580961446789078485132041454046979443464343868667638813989755641003053194255407446346437829278672098982470425496327626569770057307685107045220748308860064002026258201027782509879718769115307651954310231583942602372751451401520045484811295274628916449676946165018131580684740782415786384700220825483110426097884402321327304882250049744527185965248933057097151802568054664117882471071281161136473930159178155060050399060683260278543482196836312741585319144720691811828690100508521392739892024467030045339714817067178838153700008085203068771382269630775229624246331262479814349764733943039716498528727268659953055719274983732168331092277946432131252379564999585018112427489421510963998285286476280272357903289473430062292551345989409262952814537362375364592991235267087603380239579623454727529596873273908331120954138974208732480007136289672912950548455048392387136834913802842052831466469545685178832375452632735832104478793061473107125950064595581679994854802096952397387151670954380895682737434183290535852277878064797340002831928084690137666032769566947176707760596529624775042800265507064601174352903936542188864429539734591494484589232122560342956434254478318744170474120029708407962131105941975467120044927137412716320735199738721828455868781569486000201687609844060411184615781315497534713879156999968016021182152454472435704340997729783466117239360482869500344660728799624607874017609116779024878341813074812396259055992042945502671300575424246709654858483564024824570130975992510392956249230902687528842182114581408579294912174060531161052119269629185841071946589604201325590799733491341919210123130396243024400481710025359749960791517646322730795967975803928755904326173753880057605817868800509232171277200019030705274818325424457212858002537240177145985469712912807638077458026306637900768350799542613734655008561189762136663675209349696815904668689654304513590568858679482244047591702307913113232297028754509041520903606153751521734802106515175476577875468939638330779475909586380300083047462311233093735782502944654436497567545382647456838569687143323445539173907102576196198676207219379436246773609375157601662361751761235440111701468498530593250107429924876643316677443481471518277128056317798326136814749605727911355211319043963870437371933015814075871376901056198903334293586743546987889640074319215517086584080386578134354829409203990493367745862205316101715217687832742733758936866158231390448273396516569102040991699185724008853060735077163646292260311307099999590547698243376137049760355119708555032962402097160162171926814501012715801501253452821281100039518547465131304782336319294177661637485581752729656294059652113929570509667542656302650933483698590158502277138096894571474293776994703909354660007678112869278988863657592415585311608335222279553116088018710466115173158955434122839504677549440105756929916188413726424492105305643440981124924451338904050326849716715854053842766154164063180693860738145121391438928976722958525405247629156454052805618599244683541015318139768105013243282946654043365398206366601463391079032140377869413590576923736750135917753610785877870975072680401465536743290918745728794034572278238050358620459281204669678426698812406001114276246070498175077486543098787315832991810347558919592987989159436669947319562245226048290498179855321896424908008127577551515968133633259046994706464186911528628173469702509511492374546908464767326494952525751273291759151820424837057926998616586134578622914980023548602944966516084822282028342653533838772837804342682678193511520692792958943503549884727056991629303204573929469432350363501283254425221134263881405810899143174676067425620168820069207223953874338902967762017928848425400552207897728429101893780610835459206065589111525300895199740412630272430393804253800549228679988039632407997625055254174867312187302878544816698085524741347477473409338665036292879417738792516493329272997631916480574456723066842632258153089270577588894574794355124138854059378863268866665359419717695779536660210893226425702729786045617646500572912060371839312662061462725218678103738286236905492979479386539346748098436416397495641635789876121099875141971693855063304573179069743260041629657997482578010303462960745580800143772376912469397166025656851264383950996259890755408588529927905010162695867486914124225971699540244535158349667941925873912150244866074639325648753612450034772650864347068549549651543446380825846297715211437096520042428656992469516598794634243889792557732702735670356610725942772589721521238432445042860267231731971404062026141503787063024776384118213741722226919962802581522954461822620712090271509072125970673672228915208863178409185712085038203033046260770181300665614639780724020588220798706727754868879454905728591554718484332710594580151204061733710716036776400951986715120786585647063606407998948939257641488110203345858333810831687727473257151013355402337409097293219272743214879246101311760216904580923430947032567733458554568073520038579062747664237562014827080104586777119964869400993359251406059862459787684698429883695915411652060240991591443151033872591078152852325606238776197131444756229836093787054936408959943218185566411614128631466993649943068673448431002856313267672316576798883597382656122752951668058825471192013878891394838698985168195108664125705902483405027316544914647913991810277023131865748898617477837090249293884534070889272810042823788144616037980420252654168512943866625994795577325843614141305618036638286263010101387993103028462647556790169791358467163094323057530559527252315860425579579562616301501695778342171488507987054514896018688659172736529742902549760310862350049036872442531522768698042537975030435121426318303913682361251417803572158371998001337365629150585997737764804334544860120222531233829738660722689830666791529762354804070994079743795642446693406062849285025198975567167195648983470008916219853218509516864730639615046415463026657346524297197798421041509989406031661714770958868812564906286871693107576937081376123972399275282600369242952042410689437782389173440684361561403113119404325801246543683302344068139321733756821565896860947842841731229980295041686056373795193055754127561086071659215796719184936026052007345520598551285281312990678606467960569104404015466638523904405298439005261517024633200331778691533888849236597738643017290260642097514243784955187305297090218515148421010777256065676802919251667074922693598388231543919304022165145310859356408194704504714748589266275628225571226632966825646216658502430368579423787101369504128320400927503859081171658275738416484744001640240355442895468314730883134648063197918195666949814646146632897858395312127815528606467863048483953965537397046366700644855939728962883864206393122978900074118421308937983144832750471687883427230755685965828191054819125356769998070088467187688270192291938361251671914125147024664847625119358177353308357944123869277026650512323557849012171415653200462232420138476327634106862924090397080399719163778296478420141451017556492508165779055920511795968508605746240823882179843678977730910841167903202372463087510477181443147275418387666605389491945436840387440009721118630593943520930986860511628628531094515971622887400679944272055756732214434406196591289356665872674772912812497997028682298610123839965731929896515247863155588368155450357068843806583561697005703479205466920219245458947365090928727000287012471383280375851049276884580457221666752204719025027838726783465723586975169151429596333588510828946755789799955020578380999657122972969369240061478261844861992621431322833632351868398535737247129901204511549343457953393682910186116250437165282605229129422814271552601587012881170204669622211764555217321689934158380289291430319307983049161112285516390725676890090580003436625621450607793165050827778129037129865832218071906600754090443649412116289188740361071628643945642864679707118714002938644704989141173684212699570573153115623987327459501443963478692789366312149200858881281103801403797472512395070733026685355617329503671394575463822043546096046626006028968041412558960417183887421212570427258606355977943823611405714038351541661597463919509003379477905198578713022446967037884674267509551903237154772365399115465474666243580695977497462354610378809148801282068722434575327340319643256259752486890994685086162334576351944025231977198580822173159033416568788036492102577382935597119813059650117619602445098244484606585051467567563085576650701242668578178704085803730079277476247667623417846641796346661214665307758865049039380619014438067476066225153638884160405757402954709082342459276106582536946464961692548057496602219257826222287251095999679505767111826696574579516083830020827288726172406976197451893695232584694270252072491206256726700220239597420751545532715631125025215674033805285757997634293803589466525542495990689415766524193898590937995730042836513953723795438444403481200145900246474935705453286823083635250901599989029818372738109150569050187170496791069939748422140028298205749855684676170119345031230635431016940240506956900355576324955583016019835920525596311048492824234053225425081633749278970709594296891396135977845228014375564958373711643666217666217030289124143002723632628312901338029577227340776648627642084265249032588642012789438069164155017240117494697674990387478582696713518856683407477577407879064643602803412447361950423215814264467690457618768422097665259567861951077158385345162463058191905776887021788678895974149740836690724218639362152242454849101364157551429681892916854257595802839302017814655998523091724868192654923942642710251822923378728021694631836745922911244970451863125030078734117023947745674033767279143525618766283367024213376512939585033565909686194961225384781546225711363271415995312115452483504954376071730372597541460087445531695078998395915355641349981599032431457926021186950609352525495298239091391053922526884273733062759102095075768820798073374744251402857319873580850258674740637125758772875894360833917370082826679596100518972026117632318878879546894486999907274184279523904129885356044606743483256582984848914410703684450082311392995331476718352291336275367231416323962626715548619069573600724568874322584284404852268328346501087805467704721488042047335160480442121472904004215945888465538703985533583177383517867315750408254460073378389001903206875895115562124172224691968112150193105686703862855783354547605387552379058352243695550123427413432195039801773781962177748658916102113206119756633179521115807886128776329336494535841870773577087249582582327973022675695581632503388705553155084263862920508908040734410339791010378480694891783478970263585584004463455082892993370134115705822372158460895279224601809924197362885048001350427036401426079504261011366393935981190345190938153603246998566104664193030329363405633468883835240162950627264106049246483184241143004075977472432286340413618051825919814811429563043512425205331285160796997810873831615633726760513392273747317620529182684145849953543822715618102354697213629879864499904326399883992357266078291473200350121642082054537107384123926336138904062473020154096924370461844957371298678666812973400443932577619247517945459109746668485082089072227212672004433538687864958629575205465812476177553064806057560876143392334011706639110634616915586581138746629715701194356030782235341885513463699193894628102538865342756795887246159694653691725990893181279870398222953800233544685227716976811323698177911168124646917225494518982606379554182425286496569211869928751871963841019077963952022252688180149924955432881946731536435021641979047207674060714771813537553339569632512324664321537041873764481209043126019923947657573224225131596969406579615986472768383396201845097653798140379690709806298765581361694088190146945482612596260560031474509205198514600773061475075315323525326156122680137262849406004524764117936736634507448038504848954282177455633569561619691546859120968860984821239985209561391109084467517670451725503587755799784602539900802925956027461415620043374720623928476482136484971477773528505164471472679923790068039288841953999843084280898422682532849576242694097982841391407742759692101410862918232535096693442585358280289017445366976697105417840583634085320747689674418430140538734559175436959799370327886128810140918685213670389631751073449179338922233088881497499452615760375330128554107835202969274052467915692407790927708382156082242251723166282582411612670400901156422048099733928398326101737493399443922810913817721921487017809759826472195902822052701664111376517248651388656016842295956827154434858125770483521662474551754576086900116949163425413438288276196175010305241633483672743101274574146957651188251456701656535815575011653299103024471659440462467939736283641923061819316666238175714262271541834131142896295765930857718920807050731450258059892053499394409453196203853365977369456910685347166116657451940615580764106866775683441893132771905793879252567566459986725616459487411845360240528368564745357267525401719138947352249420614346334687120421059552895909711547944956966380961155385917232327648531901385960199368138754432181384694809175596258031220588438902511603909046110646404196973569739064588540785305727705383552519565002075803697083549382195708422345970779222645260945169040110256368586365599420063786711435659539254551316937480881980825645449887535998325448572628551386353533797608905343294149172213010433716254149919114773867586020871116340530335304843108931147621011719202298195973902541298064727562208334369014766233549915907017456741017337673349556198182735746687323150006703412287275811161863584641288599490572479635802691564813867497381778777940670449673638056403397408262099356493241155457159104319005636811087843909734763387532377467732296041939228541538415289943683253997394184114245782843574473188402748497621902312801020466992216378220411970279992327417902584507224048764575529652885823708644648144291711869301385523643398522410027724392729727690121033213348533925493847372463374071016313753699940418682389205061574759517745996106733637006915172031479234409446558754161362666264648227093999364030281013528114975878245027029520233131328519794889575814573676967178701276679500164612471598623412710032367752392352943135932561046286290741268984794351392059386338236616576403997155796611810858267962711387839272343208763063463146756404474281437743285696324142607498638543525335837208504439621411573076549915229804513741167273619674587500246332948981643408215086844211535325254589886815773408607542263873243415445765317814400237340930686258736294287863064234426108880226577810064663282027825147910768022942099795553501552987877561189462718161115312644079100400506692153129125418457328543493806072848656795712307503195718038192493544836636770835600970087408737448351502826234073600846590524043546662046863553740181354093630673392575351667021858351983580454173576451864550289131682631899693442737629051555827248515363138945286262982549256867837420867847108045294845304620350797113441675112048859153224484735355695458777038976097418560869598008368261528068249902924151483471290127069737445798854738128281249777349933355157896633067994854799260188735286728103413176754114529858162762492325852494340047645953106927412311454039920207962282309267651010211610835948294484136043059197616326322933774532822744938510149128035832137172805259805704095471041409427866012601984835218786613894761379190271093320339870803394193999855470856810697731256663041460471457397741607825304899748195588530886197071223421590314720069958800499750932444796942235368203340950288372004443762902820784832898833774935092638049657258414096869506954823527732653649872865365927220392927329322918004609674933161552549654614334156189954199008762545292890954326221133827168406002233776478209533734681628769767332563614390955944937082655625734080543217189816771402193684951860290259031320091521777751058905337302921660395065021240582147636220842896324144422500461669156627155559254283720387733376539399799910170432727701026231206835622728514204500460361036611599346444618599278935279920653875586051101811499822793282880715280449740396868036272847744434924388613899578127587617932777251910343909754435793122883667572830366170998621254411143540102467270905528839527107154712670674847929671964026059528398018540640162513866121411197079151994359720679658579198996450760462458842769630889498532669891925141944768860931383676230311344311988713012850394856950558902271629303228916063861949492433160614423967970433769719143091636113494423162759488873754030646572758923984028868426359757213010790527249944917117802896237725970102030136414491339603448228787430217534190824999751061559736904142820097799842191458721389048996790019035660518573931956927634110566152706147663803622875928422848261517689551309640244101792426990801277076828092859628076707356969949831083745098213909506522078240552077015142850231218911617724370598893794554222912363986541608416357566918452863160017482643663744277172488001332868147903154281247953574362737072745565552147226538170781737828407586977823627263605223075146187648322806646310847377688690595156924471654219945323387589754971031217028543139451259105831297105405999663634865258697067036943360441464720794394424621974562036476215488208504400203614853429704662719550854485586366031414273196252499017599189746233550700179289237553612981014626139971392869650825973007633373043229393916772449484369880718856900176662462932005463169070827508989878057529116831871187960586146826938477579104275594837545617397236204011011587180532295955155741144655395296096636457773286144465451333806610006095826747416497499961598359331269563909578896664275633547058571388665405488921207040080206742102134047969116391541343452775211258890320762718414467649027766658194889675788664783876457223021673451218332714454337744329979366784300468531745217516458043798827465303475910820200808367998101942145555330300717060369349597249765714343469565487625320872971554687923043317222580333775346497857838513794988400975014470876150458185525504486323377065485825641328438203182382244928460847967807026199295000641306064560915951023058601996386288736902250698910238209355479218333926732222140306982807615029788158223016195199692949253507202842160216158816450521032963510936923558748649939699425872956740675314668048232494673013552423539374851015875092236628208105972898335489333249114549866187258526958316433997935830803278903164023480976835788376829643745296803499215335327619111547433778859593092978248506657157197146620988025425808302678234991217133545128173405413705329182824387773839538420542147457905849526843779275170477231811852368203402824247590124536630871762974023298236966916843072256787851156484889597384459209559847055747753230982434587236502119129843575275874240692152510808912654693945342612109706865060549168965989372694158993784931916296806480325867996792235428525851105654626641212791750963347379806673100884617523575255955036881704562054556467761460602564434259529774313675300063178933934699797024462535354194954755738503158407992888977321709228415245698842330347401015786570491706960832610726711038488518613313289206501044732663731221781915697529346615263879054915071378177523492007870321187975873653040567595487100810334452761323508614812366969076630621377483830529125646598285497512118587483159313641158901644937231399593155206131765737432269687357901807065321114201385539512390342669624020849612056428499316223335333803378252522285781826169091026855787855335811535660210086680680353096087458406220147340169986023716896994673987274687622085706415651371188079435837979520295686459480685733321622636866913823855824487922812791016864934305569456338348618320857161618304634999771515223784047125899335383400048260431460328747620440309900469457606973773925579475245799744524851355488236107236127770838947542513867821418215376042788383729302309150831081750457060389831077404198729824931847233922483535641406305596283415397101354630025838390483290059267541567641302557359003457811167131190700310476435813328488132643585355730186790359527444349857363024670462251315172016833119602161564602894762222516702519031515696013885407499659834491782091295072605774543844106075233963568766795919577989746833233124365589734265813181735378100108478688981845259818181363086966271471019159521380272826659653514420434567836523814366724974233313197074537859097961054908235457169384081282520512672034763282398957985676198292779037518337014139399903520538832355587268375589638112855620503922379227374578479700396750883345464454833623295399707327110188102391398355119139362265739294000663987131426343563929373602027059131449392064601129031650363138433733464332561576651370847809042214543914136259812974571268162651794340707458941424998980265766403834724851480197059124776164539573938859834162349866483766076065241458532215070759048318915796339716049808985853146727877320914132627782779932089903210146419110617619291901513455699879187400548172086407970980590561167521511398657644487422114435639882656187576369915978127580624502415780570231329065006009919238138706036340759046062467473235725423649316971545524384335446310805170256062621706355101148480612356527808435268280056649525455807669949457064259453960205348896116191292850512903105002877567299631251600358441565329663611503239552041556788547429135272661070447230421655600586046779368385205494992008566895501666018282419501855929588994738266723490084820931754475951059770588193339150291962995565195252913084352582112897740884836484893946858784830597431148185136017669574375307361002847635422993013403984922242663820100764703006841052472012878523114390124913116359443404733771733913615837366448746842680060926713431081148685100209657175316720657325878891764536562154847119235775585836598207099516805124649036445703317122243829655077598467034153860720535656762377841715570612270828949775649416888014492601248361316875224771230403791023759697332235369710231841437989131009402583027991628166243801650163721470803256446171626489217824814634697405590743262097459627523936816677840268391886439497421460701423459557855173487506323485577555875520463677644802751146685641969228836552185525835168107973114048028233469705365062119134138846143247216568602293955240182387458843005353258554914655202184791598385970849040157612637776212162474819362792589177490812971795907444636222818958840288303432489630236174503415969597604835346876642451349186484690420426087583611995802269994576700183910290930330459469174763185905858754635365334460190932721836195706367383349244787422754500649473918046793801442139825709889228473267506349662013002718548851034720092978089715944372596165776119916974669391661661610160085494206405482087755421867730182762552187635565351800651219104240961496203189874432516718154565442997518154248772199350125372063616170725063885382287386217212548019376528580562714232155442508154170439409519525263471926829364601597664401621601284783157804154373302576156932995323460145222381850776014319168561878080109329587882041031301396182365206256789940138884084128283346531340536861442834159882672946475847187659236262126337172687493709573874857774085504253547621051315815598817529071555688084328738731451110650760221133220764548069103469312464705556912239884450663941359233774988370625362270122607532488535595146038445427109831651376010183728472692315298803829966722483481363012408763019643775763923242836878977277127433336289870593973957631459512390899430057308566420751150117305016899010118194185269357060292116669462543026598448281662643804482678336763392038302227575070995146262005065808131123582280637746874871450875278236972634196702449749881579189861497082314848219577119966136190103499316995463948731203822530089867784871504421483499666187622947209862975387101253826637148878341373068610571295550882658484299011248579668990656562783253079555000785887915474994141887509957187440752245460467569566084994187083544868785701394308052225541403530300176704950207715940238578951645777985255132539597899032355971673197930372609252656682666378405654687675546875749196478201199918166039699534507263896068926823668560300243237362123447834189641636461369398761053648222602879142191586182506351104598836047232496552232524087230094793672279001272288804092090726397033889245409103573566455140095851765036931143396208251835412267219598810595845827230243581049113396561330046551103095587148615436248582284619536273651736656848488781427834808393875757278183380931720451198771054659441350439023253989488197940556843680021638876435555784954541845434539372988873222217706751902940953891457717869694366509615348552446655108340059755889788268574731537146679753571792697999228403233228247879191649745407668552292076516271595649229698515294469913914280327754074417448623968119587658027265974278961873070219341932967624551343731033889114502995908709781502181575159203438547839965952517561473815106155675827028985563849512262483863798943888622337190252044979397321304077455313905438438740618545619875237051083512317651975215798506688574097444297461185364755882874567760113772869354783529289323950838294995818955659231153146694938260072923158090274307494803566280083300989759861732053097299341380452737815299252809044611648397745451586529809027177890973995626257777728563769323470117013056478548386555274886258379126588832030838022045082450914108264707287854635253491205885714611087846254994948584469439738376351842121044961346933703911196222066823837277878412210963903676868536644691910458915217050839174422489169007789546992509173768315326298959880296764780260703846397023089686703191000157287394044945057319303158473370043635834816977647000498366314807137299936583191006654148179320220318673578845372524769470081402328349569713299773259480370704642764259150652131203136331830943942358327685044972588606554925004064516701379427892576943173198018674994620985271216195045876915503130008548334998756397493743346333460691249911357474254526211336475439368720269742087911225187974104947987176518523070946990413112268691581090960471424448936531465629481192281948208734172276560098558293450267889599396704690249460883002218863902400300327516385246992664370354634729386894607921743434542403862882073516911756706619262668122827828043166547922197101059728199741367678607429374798522850487343266668895580350955533958822002403665563535118694260672514150436619671816434138112939254862223524976569645685746804132038030600847351235529663266976854391536659064686836816258226297526642788819053694786000731046171495326069814457007598747775897095288910271068589173573304367633811023149039412708577431871134584638479933888530162721160798373620416216696722679292214667965019272970556714561022878911540229485102749985964326208468432676099897775402255218863383262508829260353596668828268746291968707889001004335817366518175416260508008883357195725882037099752198305814535533641190459344426375771240345004243446468782672708691160985148212918628997930280164619846018962077145045277649364206394631849990760474587855105853186682542952103930585324797314359857901879588210189394687870908705957964630886699491250759514860281129040131730832313162300882317010256899412917902082861471648059146094287674588583936555372047829757091181789915079103437764702729883588199032527252601706229176069658135255364990026913786709345444714404521439525526460776978608705201880000930642891227331717910868221965389741756448023896908076579331842763200019926613224054595576345298368648359742622806639353811823883803572426877432349106307533625759528836138103178013484229395246536927983632576856171215091660802115744488440464977963660459371807286843608431922414492929379183922466357870190468065687250953803549391399005602643458908277170284786477940684720952220070023782190112433312327314816979192504461582688146844628196848504094541152386418212674297888346239721999948293047098024513720289427332423093698275150377295589288515039144182758500046507597454831647236168049898982234409922834160196731029753466480336377789130352581841681203675086446231463486220703592766185879467219489883031287926431422536514435707816614292267485328572870029002518425397980978622289487590105454298460102345823888384043519882390208102332654134681267789443231963818345106890114988282460909284509613221203542758077589036752672724928013970757406531964033863423180679094450585428614995221237553775876452104868818306243529951973273765569510344068415648522688018192070943708360718569304638538479034133609591627786280844007950197599165484277033237231621478655414257374861094455426258898361794746011178766473283961052549443504467407672616937208480514391173328033023216633425381202834738810266652868432539672915746821811990956209896604277701981762422081062276470306759428981468413868385980943588187908666300329756737962330746287782895720714909178522154487721229988066999512618046033512130450121530620999517554033385363366378489623416113588408889470644295826671901003839155164684557339270859884400364856808849675078915889032937367357926753876352019984811904017270456426062067584674639349917199312312893125180525379194573733547894479337223941751293009912085453801943253250127581937211688433618909911133668994174821814481963043842167270990811036459540383713715565413270440819540462408283636913749995418531637912523461586286526086258718806417242088469721258866256996078495224403910736191220702886934078195620090336118585352976997936529660335968292250860364399037606998977752210372832202268571625182732834497355063903827794052764492325482906940186681984823261481580910617365834469672742219179253787554334685328371904017799615006486289811109347316360298134521211922993421951943417948303959161600276860305024663577263851077453620634357987247647766468995039638583191858493177263585484397133337020216327781549038352900227800383594337250786726530385128759951053852356194729438030852574979477264599697678207506810975527211402917132302305997694657125703648821017705542326053247532938225772682980798944397352479717066727723922963236267476984780761537349321505945243485603559287606895100628254103221370490662039028042010398511266475408982366953107024131170968220679355415424054758880233605639494705656876947462452446778132259573619270662517607571585438503077822553702380476893077881507466371491299059865888300366479224442137815043089870506958531377625870371909538600264307177463764206148945122479255246043456252618737577225848379468180646204049550139997266523146386289356994500786950943369802799176124772793557107815368272290325654524724633525938485371771538558994919783628125776354262814569406194920519385732656959543907761090721848853947942002013615707079721690706340848616968341318453229754527845555915470370503260672666270258773001469536651368217342804946013941159875438980781353207561646446811495251859556514797369311491734016065006624296536799602508571544231863927211803927659654383547737200867799341626271414922960437636079429526598112965774266282189895653018227312312853893393604093647651426594721656763623626261479960254308752644679408100503432489405516584475842332174556303277539511911121040253637176382267413195532403944318237495381849301952458238023277831354543257463527926611172553482870183829594199740879608947449199352211453599451640148252572028768486861365102383009992717632988158441465853456622037513445480584965435283544320667362033406029587280807421411904882037677947566668246714627553333903934191842519131433904898712142679227095147180291653343288274193813790774944102978478457733405572080538334398270086747136153816458933206690511019928402600936574463234424113844789844034443216640952795480690763915554716469752445713428065330398438783634309166777004495247982141459224155815783044646931250227220725472102823244358589641504217142928775516028972927609175317504185570081027825694789294612337220762397884090048713902861470507702718708438116370876183190780505341448949035955007524287955452759550114031456037839638447116866249884038296989766361268619159546785942723879479986011013644998799107145122093485900201670718203565477188423718446583091433271919685035505541717229575468132137337877111395738601700797175065542758744001843533535612051186838932836467075025949651886355590267268997232885447017422298876819833646956458241956724902038877776445743922318392605496520923385090170726230311650963862361920992372624402831301351310822230741360423042646042375102545412800006776232888631559254850272418102308108915354167386733955219373831774275348133259079745671150680092228555939585525351311613993030277416552413918089924310908977268743312279371098050971774567713268468821801614408466183634784930965917134234693820019757212641990375769252844634882272911102698852616142709456892341214676813597742686752417960396879494013557997490384656857359935664526899694135643126208164477930577990407479641967334865651340554508824001840005656553709439718115401041721471335784380201706148552240708330765973938420065552667622052644726488367219065631480360078167095839953510780112653161513051878385790904816565617591123894193031319922493744196233706180179170607786732346715342860444875699933849177100553485221981073158522203091723203209723594101133018927645803076939468905470029177002295872323458216007628417687472196282942401599981225602312515050157378327279380541659113291701924643562411136782293282720337736182654385791305151297474406738187975141208212375685755177130520469159653630888492758195067653234217416169539371102147672322490255174218973405866245926607539245862577003234109597531624131190003985174286209366850593803399715101732093701111841525426381039364370731184920085870542923746541668207167442245818423815907747478473645402107815468689107793016971261960225758283841177634777477451427947601954810625307887304261480541607184245451237812212431200377421418168581553125198869078226307030047127586581056564598778525947476795018463319005526250318642461904046908086328747135157557769098021379741791459053379967525381330406471260935047908764437319510766611218312835532346243194836379581462716808526629891944172147089861213509502838704220414021930471094999975794296786806235919028399165237844353835992434993669506253319188672806007815066448260322870532785788374592824545545862002514537072776344162522227526379036183176261736639769774147254223540060628052437660599206372039791184977963127041924017693570176930242776176598366346443203496053614142414337651139151122048008370937086352345813701090004238768294331460578311438757647032303620342443643412285658782825846374331412238248413578930572953336233402688733291614391592660871292331324755061985310673744588924998779191006450699372053379219912141902147985742802179185523360388989679133025790490650599233681458798784026152579739843342870589683375989578112812183222004274707653776074745840412018537703273087879175781384390911090273750168135213429805973311802670952829981692866979613287969465406516591931033443838780817421356775070561674489811761519452602082471495028500066461826845573876757237179098398971691255561791603023664668231223713987992674094970912786718162514873230956508038487098710650894972476805669019416261470388643207721501894837142594579464126272888179203505225262556176336856349939281196459860544668995063555015916000898743209617914012655683578645483457710627845552829526349623520245819233285759896056490818804560803125994834263363305423259135922109429895042481975925968898851698144370300354328190135915963880603075580871431261500565609530670499722699243631575103023535520446709661055819721735771415545785802299346537051269103291900287480375725245855871291165853774180280830380330555611516286467532519942185647690021831297061861562058432746319854932209153169958471056869874293531332813683996632167235081162637781126998764841873402858563253493882968893870935170702767963634901219261144244117455692357276936055570549900669180322178473534293832544888130207675706293910038471451114883930934382244737314642193788806178564662996126245896584905245126877790760151436016014031332756264063418511871291642058849278458923968649848298797608486857031942844621856423803106123680884583117237476381722329422893897956739302060250193562921986587501650390526326722498738267277143606121892451341822121009557902545083508930834514635450259394099476890134890089058007308052220146251667354932096790043158308314114081611338083004684258408506498311129730442923447066105822054842568314551927745359247949781036722389745806021988656832569582361256262856395162623192584191318287164499777223735345545347707892882051419048499640802485658912044034951057346030303655780055968779194744353432071346437203010511789733859200067632908318666124001359756785618249511093509481131142179781959186931328633084157282829933246349394429510663290820533523029523504018214729210251431111617409541771966650501345252509730322846313207194791122989328531697110985950478675261973467572982892105200922008342053695100405149620329178243437648210041637815330308838655331542841159103009394780756659297183937558228530703525742402129608196617204281708680920025977036636069612144425932761955114188521141782589099260929091226086551577237109322457457423991715811155915634241867510270011044896409715236221831394636502504733042211796798407326122357235121746318098080066815189963497378299753905333611861516857515839515178095810167286978376263732480264083589616674174134108487259030257887421679900683638551169923650305939601892919405630814063027482183636384640337606088576602102292860888867376562364085856408674015222205061436865720235431592568808026717490569998791916322045522760916063976797242702026979003707533463289569362723173754800854755480423745951672870910908135628550107687496658865464339892255835635351486469691949058530062689365247176270023878802067737058566201586964604277231226820178319489662270805965089282565163320245541403733907673323338082246216163941194211967679611648026388868088967796008382285728532202705307677234972388634469443506573300283032601547515657611209317531953209930653866652469146779443299587391859026948387145467649006905231082988160478853815828809951988782209798317568482542451969032105405977468087421856379018578276433459825256700089581867409392907471332385143415972533255396665550724407601224931516073124201664479016630969122418439659508721641642560176416490233497995005098835537272339650339356020805846860407062605940687069233526274185105415469412312514737705710967526694457240203674326354751944989275489100144466889025908289274164753624196962112076293112427270940950645888345610635650950379486326432986412190147788600252067852759998035765428948936606478933707839517742155800235921145864515597547430646330909352974277747473858030902659975463275374539781826283631025528792929749826479665654221889464181917529914531979895300407574358755896956682118368118588744492992755654622686513957110649262293365959093538309844239945540340754872889569665415956059268447368516858139681058665601444756549070950196056658115711645772505588519167389334980140858632101173128973823044404497702001108525506212365297965896458777991579058075093108680616902404384937863463370212091330655715437414359669768751976456821174619976739064083384569465285465496652878443032678840568052073489238271840186590797192976147251186383944675421485361696004367367313338229846674880522679477639541338670906169467355649137864905673751260020979481550549452716889275357557257107806864163312833530338464869768655220394438889247932857225340784468829180539303296031066427168681393921470392632220410879878514573916153027211477427301038588067159169054445876424566635153212908959880842656440779755179133849937377774602692751303731489778670138926000826936831779903736244467725501811200243325957932152676954832107792665967656414351003759844705649829563363399229691972657984181470660872492961993213676288041158639823877073891504210644467259621094679115275572694254403134947335835144069209460562907059169060138161673633167726290506702711893761668554292719738890795330704904477174632299838182425020657182457013655169875231378882299596515860414322253942487918367056368379583347480723866530439220314297976851831064061073845952069755223056064388784537289433136392274626627791738679009709740735244970328606013674132724684013254311869743711180135184871007509881071889818829601567829936402872747419085893064560351776093400318893642076276059763718740700845691453916113376895561797328112235991473263242262547079927467117521965839605444760976784924758202486148059430989401992081821013708674540311026868105048592372040178688854935071610862027231058955152443294304693479825099963685431593749320145938121240690214767829536245006950667417737835814166867655000359789439086766649238255302755483248590301455710421488244825678248226575471334380425873787353750530784254218823700300015310188438766025405732673978351192571063366809394876079616937795830075951519218509193468714333247338532494673514158799770243490499166620929596817464962002791161112033483548021660141023324325964764863591730901292371530578594591127550252320611214959270951161214659994098187182852536560027525271864447014584965308307982430321929615164434408484594264370130521117996754716436420262500677259736839258943861384592703718711468727576349301429792445761490409520301642417865212534297802571998934488566287852728934457260818437157352660697456298949152318384170127010810709245894610375365075181164903412659639743407260024152614226001604343858439590436127875548889778705070790608386699597074042333665587937235580422471181248770703916802857843275854032130926872402738207114605787388337619537876751620665605068119181137866594467548636629606957050888143382243899812340811766202492515051956011033774023248330214204423790576745537108957653750019535330719338825244680294076084063969445654543644634077772282847882920470361691676058691009592063906703113410702005065257958632461643949572320460552279153600496157619410507830976950861913209244448762629844170433843171474597386008907481012097720797515892311798833611651578078805072537499498308284551769654278361884960069778171666437558749295388845385591638870211868907037475368609064400657574073942723662512995083583943363750659846431838827780116786715371790133934048895514726729353595755131074123948312265192132394128770384740205040503695683918337341602270769153555024018068430552642643012301512544478657861530279469230010944068655644097995284469940245446332440837226707164849056607913702124968894412673882865965417583446885207284760255313717027220262234935150997492955399559696456228313606875420921057694238190138207180959303858154105653929347615334615185412875563029717316943838950262932003044128536087537757094809162699214766079616743873933135016464351805812555983289011644943387124411395552068489240111046676383816371519966235615953934776289528501665346180621698246986814312159737831554570523850277408372678005426074301754269586069103324232180675457029397813579878715359663836494274109236705986169914730558822160697479948845541702780329971579792047840106905628908665093974294773845117081911146498030070274730327859809939730911336434440405893051829528763534860507014739045895578577178491053578063542751789165150403937468676842141899732016756173234007233809896717758270088031462604373867125616069927031500611514483212256627927134409057142133289421382506675631473827226165306941272767120807060482067742765733354787977354097167350123622193612187510702999894464752785805571979287175794789671854712278179065473468842702601586108449822692922303015015495174195215166028397620467885101612759666621178649138674402682626955456337895209396914153462855671610843103541243134939667099858308067438116436203015258834720029000691384499189214817165484095328653427041670542954233641001002702757124622789038775803788759287860949316167895595583110702456415097707515879994512154954986139032420904911364654451534028773142626743434646605260262690247468142299455303300471525814245005474484499499309505149924976869780355633403452298163414161589216750604334584769724658728903640962644141523479084620042438851137538110538945402090101380117319278532746969735846049995370258616787432791479170810624967523768427535321017192567111947823808410187319311738674146000251659704113089275054473212208845335786907550549282224312428055806793844699444409727332079593599543894222400250992621340992907454373982231299476350741977839368503723042734523887388674526372142007663582188395300177370824858637292496413180203820155383163366231127401606473054353699507253774364582218044093222035679933947967656700319609344683122112152371503434803549603297094321561878065259290782473280937174809415945004242706563233217426261769990451756079476863973916498190019839787943040702311023367672995352304639470435310332530787523133553466639835715715813588189852824022626760681782097930648123175469739308196715685484136901131686911176471315565326757485713405209048059778889661966175774866691178983835523205663968968079129430484724326124727961288124040054213291576616820126703697137239649461409102520973526505214480870036866959398787636939479015442727499449627913127074207525937067285175611451578029628648654152648634491348440654092045164582718625600364347869004558171132083467644714486189372159910583744058340161157330293240476083160751929689330771180891702148426465392527418699201360294496470852523633042691420462349960579000779797251847934244045426999243580124569524018585875267750802201761985589087990351114354266822477133639967561366269168493238628551456724901709847427622344626909996862298196398932727506383613547937993602610710667843640063047473710863495933003011270268106439201554732511914161612909611234096614682578648041560772361248818140942480697537055495287413313320927695726106638087025630399804461116004098915759460915898483071547337364830920640216756520088276261884648720270284757789166320491635199988719625677675355906505243898566355031460524509449921098764501401126684610597448649680344281109860055511064038947828536931527845248824158096789051589948110275482043081128499823066179690791871970413107256308301563760914133437617622081508365944231081815725721317531146921918595721275742463019944530147093492486265866920980351088008679116550357094563606944315549291628826387008165420089606069485414144050325393844914696380553748328962511490752199602233435185186650386700507652510327781414443916110721531422962530606063706032931449127328668624936842709882314802325022235106144605556908509369061421775255417793420186621173799433500984633079045369725137025662325280159830193750960565391055727763452602819380025002869182052300023453946587408255430182136929426580163240508460424261833761177468120041308180198655117699071879061254425257274162791709829291254013542170328318642209307110142954543506299408827659222404285171556912767214975326995528615472383279320453473376126823102148599390134204200109726644183181127578181733334863177528670311921219624346388185608633092851890986862021816077529425191403079219840961039708601003304873578646667500272527502225481016364152052829745575025587082651638229983472233738077142008788828253234295431692454076126705849280393467441822557988413466139938158155218581656625782830000486590536757409764768080565918900953467061240419344980108535878066002276548422328328485051881114440686291416019509949177596038968988998229243266283197113677278553805641849459829864981514072344678378926844280219104351390444658011509703483403417781429975718530656496235229466997176555843326357936257271273838641870264113423546700791931428083623755777973774006062846531642104115599271673368139551162527584971233885742987911706051718971145656848071372715532413490016454102464706267765278679330805597845353515437002176113527648277349856972406098596435524439416093334282377975903758113806745072924242258178182766017374783168047689982562737745978562245180527673072476074185950677190804710560731362377722282438087481117220798340967147809981172139734831533922178988589467046571884533105813559989565069958068304365173875328613808610481594495930232530345774219974805668842175932466117215551851974331282169518651794615879038073743488104965154358164363494188600574640831780277866476688921523867832951972778210142769366766627467863330805154970636045586913991097791545753369395397084498088333196152877036955382421428836120644880436991507480645979840484444118812711093536967479256215601947283061386889013057986898112741198835620777906343344905211470996570937381974282057387763494198238724314772220586151125655043106721516728102336990931775547305247218511661884138683296358236123031717238792506922168347852823966624437162723272138434987498686091243578251399976946764971410873714780653946800843020227335977782096402364580250583624303139001162115268513515358429023188270457099835934914225675784983483811407458103398194930997926949330241441928014183486848408782001499548086533518635843617123677327729313474553360245056271896718754825422637253395785007336884440170382519927855170732172853560131159892563381561730317555229505459355698148358341735675180337016719701662940556400681710610557154811526994913998590495094829029071446944204991299632002705697597584626636020093895963449640922618957837631625370081737315180514577123381249526516907263693086014432009814482648365920438232027489777434060837112606119061694716498457772710199697681850000351654893164463678961601758558105861463410465218746702726878065408332444916214103039143029289776947461027312870947959966272806861078608413229722717625880441473116972242311762357704336595905282869928780680889104542223505861029421059671775495596782580947098006021407557554539259045116628872114987014570751684384187349562291895396183250486012534533546023907384594493350070830925722704093999823696508060889836389903139359817140270206606263708569727397594583213757078370019215140174124683096998971002480155271844551684897000320822623245273606378551175641130453288841359946971765883629544460349062342304436978926144382377337612899862466107995218582310695228603641540667649737405112428465054532685309111136588791666540662898142958645327214122668960571073056027006963992292422347300024069038798349391870538733226652088126938930806807417417064588437157684017681588073866868799791213007704768559946182628621291770616917556711156949581422308648798496509159301674265933934339024462829568984617517519506816822451201851849696197935030591559148864119124031381332770792477442626692568651045487564870537269578864040377999454866199291160345446007948807529410611513190493125751465375899601626514166200826430653867234806576127798603486470113897950721879191466762259528717033310676024639892070612568403401775014256019195436851819774068554329771608746459289013843336513778997203931282994082514734569817490104612327648397105992591663670329031058537621734905296694091451472522304652065381539110200374755416335926087090484025700358226393398154712935027768981681245469177235705898020776229252557614935659210772791568240940412802355643485766679654638115673914587351333207205661734926279688225526030644268603408252415879541422897688638960118279950219552502742783884329195015989458126883708754952081877708568950261657405783358865279477541616769378199305248162755371381059753286529904965026919617709530749724822943999166470454253613670947268502627642289686501067143702707458246219585533665518522612993242923784896138001177840593096849535673515517405724587271884399623090541840478360811445027466041831390977777195731559521351351789530448116932886271891267527051084909629581584403851461141655344115232240402906648522454708989826733013750704518011191086812469486744947301343048216460159859155607013818328439711223015444493083471146792667770337219640359160797131881330079395550855072165013979722362618772082020334545144248722569730043572884985676684990647814636765226693904955347834000251584069100239930894396787447851002277520052219280886173881848457159383560646469598141335272694705703161077369245573562473820801389378756777530951158705521650351335750273317754177373995140439293813787197658109070803435846090275918249719621650343371549147504396582409122202249629393503560596982304866296001177812959392151960448527229086835811581062037251534190155698346160607469886482393077432049505272306078855361787910382240424260433213435628126243908147666986026662271819304894899424993563837247713537709490694630347324055097510662882804497306530306185672513272218715272596104052524651243442028690862083755118048161085459170130875094433803996336985227315411973184295639092046856816981630936628259663224567025826306406033616891149390597630861471198553541443890225800575152932225684519703243711040687780647880510934618748848987667776181536888196017454831336214649359099814425570122432702881787369965816422073876625573139783690139976568304344531593714675708431314664249818981086049210556180963673322745897472115907815016814688025167831801517746230241033064298747974413119204622567215238837472933765914893167618121855840471709947771038360423571261686565691443927591499403592426201142218310055535040926179403720398726622917819117969202304677783881318917276194602860293946460401227494364427831212452208223066366353441335114724506441838497987785288957035932207020460767304412653802368957245479727999733264646707958966183713780912653791156674980871538508079734171378388427081474341439965126444364257263357232872344422885014098666343801954282376872203508341000270532228651763020438004943118464774043134300766610987492747537145843678124562190399998118947306332896096402016672044040802043776695992453085864183959213446928977385457905765230284571121122815510866713897458389584349335260967691931322081709909678339415049983930467464789452694217345008944993192343070991003401070763463200464572042981670169989852719562031194237715211763382188646580462629138129723457707294470296180352968471346227792803977840410467732779851758479146846541158790154014247381482217027421635927405462935083931178741807321669933986455504359401282297918668157548058309313139112800971863546989704724642538085615863433277054213136383725438655469854196305998843170585143065399337482094818684906832745236521582714345682213572200260631210747726436174515926034673159341512657545917035343601927829992206637853663057661769145744191130170565768449263774959116278900744606162884946063068100419664055048347886004061766926476357125325653877745189108672909395787233153173297319404033616517042001395981452121775402008019040940579618369138165318964826279173059620844606566137878341037796614132120139727254089533794754059376147606820812056794270953410222507805577789032762254629860130309044303787915490972606596127951018908831940383465434763729552743907198990761703677511461966009441253100424392715998879594454574638347467177386659444892086167099995865532005674846128723843477317116864122119757789588837324892516780724651555003430490281812594790392121044677095817917772889913888586472210426781329935754957931518644385946989386114572929322029934782899215058287383756527884544067650563733510353900089191619775087601419452370217171680700807480504626233271456857672921047802414257041127819329607886643527625385057687541169918597616031222193535104517794014875348601359165594957107065678337393211276270637976938476411029628249120378360029182109601401067495405354121305435729172115845832079464985409754038175097855621140568187525571312726006958489449490194713474432802156814532610608323411345117767049828290534624746649323706444902523466729769450837939640437491047906249418090825622514591679026647205274501307050508628996742114995464702459391760358461537062037086225002098327606619048369098078251029166159387672229889030367553596747037418749373245169517476906651602902812791227963049499459351282256093497754528132591897172145362764414643656702271830387036953353072674322245965869704458911050079636776544883369922484212466913020566419034599341622847336956068282089066503811976772499831019294338362719811323578445538470538909889275033474278336386684324818007838790353895969099280029731252773132248832637269403091536149901505784766503562470735145973537346924852833704432316836346872830043379454700960046615774334229761476789065798388898157279443197440276608929690403364525802992772945706265407763411677059027523684413921189442118212505828247618215959406186164297809981109773820035034856822468238013553860615030339623103530320374371604309148488800626992698894887242983584628842534463059932969172530516002959319637381951372142075369064182434809032609605162648805439282257188821623188678600187135649614938078463677963382553883428741510643202072301477477345563293531693076181288800370551660317317477466901427574183599711392587269709197399390899863517762384173506132867944789912987659705897887612274723126779973401044885800461603674560787684180567905697117777678722556266925918256844789615849057650567224628622740759698824882148645923559386833768939369581569600921161980661292816596214943624982268409911287760753245141374202520583381960795758043043683100530142822999106326307758564213073360631941475969710012888705170608096675000773201766855343528690071035873570626670824117585357632567690001229240373672986841870406576234088302516223157370235706184769181475046068652525345338150988578980853544797111082249836585184576863300519270423196621350953877771842418496223861340695837716447526603506595529506680020106180410326852652880104016989610972134070584157546965932291895419158326075861023184938254451538353771414641869307369719572903765976166340305169599808021525791059111284574311228031466320985614641365410006679000437916050308522334603346229518002931250486237720583167314350555619552228260891753092561156181963337954705075576328626192168711704947811167491417169982043022419067047597924237328139426576488902898868575268019034188883001226323630761795256190853862332820463029576565087897107143539250847281812777047909726891743315948226377721861377298798214055675729240026263385787635036064289699730093346913715359260465503170925410485424924700834419052864558847161088339967913996146069533113655512288041492411656147051484257816269450628816059397851141670417447263133928020481775754409884362863683934343738021543038682776697404826048910160450764697333320753107979658265478927027783634475788868831902518137070464259838978837963588422007991973881645663982108925115483310362110801446369427016374064740435923586933611907714316412734869671088177655382100040559934291402634089979776584440300711100020299261667809923233498782061493526992116157719737519034946299792479676149720425948588945281118776393258531750635406090828705055294361403767208686129789163513451556546530636626916976317204143609648003399990932056934762167568116606633291721726078822086642877365167727468317097199641933367828379366022949935644248336049181898965471348023340581745043758068074122138730107934454527899445827935923983831835942340059388231077218233621822882821828485571055257870273154445555087036158535287391569013219950247313550739877552147533253737510843822314636839941650781725185583900438138718548505695819412698865467318930727367415262368392636266020270933736737671741937439570794262217807419365796250018912166145636879961627832484085220787063701458062100456528178394662469906033708462337688231391648071165820382005160760294102940151946902204349812328369919155744647104423458682563262199102970052623929689589406420558530904283057598515713315153387686102281375725630843108461019347885277772403402882976594792616879500156503254946979234235873179511294899896235581010668735199017566901809170839132432051288678162299396164663176271316728554642162102874271347665691636856431183103856330958620096512780768330610227470553587008107524096380649970945711598993332965019016129532302737162068822245780917731769775706807740764382807432380029284615240654538912206523544785388491248177471536865255522587369997238449836024711949642003165342613717239051261107427429241485222148884931135098030696816290671106590153504163720028521704410397626194346986832710162422594119643445918139597435113561878068592183728697185844471401876644668641840977246813796608744806191585679524213995353661134894026414248154301791202680571991258415248084384785227295401374189584653830326577236582680915157373426026656618016600532606142153088629005768476804639122244844797919284789543423342774431618133524066668122147649984646431603232193242411306442270535281870085120975713143693918100384829297672329703521643566000754601215994237808910660109427602524665996926972937629596332052437258028413992738874158304874054958326288659788652207849605956801052297342257903071192208257053028848126511917182117283802585056915564687521453678857739000892263435294747441735417942408426852540207334256310853967672107918963479151549381459146329505097841536838315002305792112682326744080684704393928311595588547253346068370888378480227104169903294073061988897291464769552837260384931167495569728696672258303395210761080711662991948982866404677910945949799478652375237697444454162496640041061959681140177826327717520203600252994617518966782497137940183998420023112497568485465451056868853597982771666254994604496451351070357312518950212654988819777710493045447231316547982739187642920271638690260444613635986150109411917624071034679085846206004231165435422677973675167464477542836287891849659387702059378429637130233561661019550924928205928383020565565973938104680665875676432450222304355577769994134120746075626035929583392680757693006962043700821231622919921302198670244159347666396211855389349447765345460470912874086495000130936333617569933714182074567632770421434489131969463664110492651135567283630765577118336151462889912044665962984116768862527709166767364268115771730650620606162527771449707325299301621078568278002805370328282014302379325147498311368259037760584198650326829971102096059854132993995906552894753908266828206564965517020844238443096122925608996116493702026112294399012341751850184661987194059775225223462255818123973158465661788520381293273020638186803455137383608687978171044424846694144740376843820875932767069686511171496158531968404479518519143809201547296380370862151320115002491237616707397729293089600528130244433713443972088845091114538137724340782684802290664227923952331051548173841124642333228395890993357260136180478462270551556104107346072006610500555494466878234983161710841889685695647706404331476504921491119482100969033895669941013801190458902394434034558898193873187824380234644499114767281347609013866674088415732684524118810519843158363997583654910060628060860564067242889056153285709322204788781304851519527867710971720483476881245593593616780628963918385558960525318553114555780355901104324258938077118618936359401518635505327740476024277213869214280578697446284806893393173501903377700055006626182831597774688115579841598994698211715546190554894407330907455922678763586942987283264839637267953375097870599069107298588896690355043188955181197262767537320021454713208491175143480962217097003379284515431123210596192776123048654085426064811444794215158491398246821165394682272420959896951488158140284403591482906889863352793954110598030331792009191562498942438407124164671334555722534392564940613914665308442680666644405872875281286618522536793968590693149692679841015932169871272448554593251407479839780178213190249216409154495022341719494995980863041842707167958398872341931519026903056276385353308594394370784723926408807573376766695843886945998210446111255978917138518108950397849554592060285047045340603528060925382271733482901229609292724011206400693205977858418937258299657653208542293240909011614638159550525815590105736488115633466307392085582834073101235515758574949311631013975548742534133638355093914603923827919716955587891145502484409787860582343853366469003324373459932036650407499075174538709122167304335568682407981018674077489574397381041890080036895812771478586808622278925770805870166391795133084884561228452351686043667395757075032973930121857092884633971158060052255654622603939521254463875665675606074765753591251665814403517705915891006054913771316322874558073821379925786063184624462439468799923972912865411050014185905877177656980634249604072884312682731541999261482311403679495119273830473201119717285929012442448808565698330305582276062305493087524811513593331711484236854836743332425418640477494122012777831066189836558304352135334876471183125786230773514378727536548957881853265825930267512932651694188017820833511797252371451841522924184376739067736680292537231850364549564209282877428248237195946097524413342245675242887908491709786575620229093513510524149708543267111079678729544503586835250177124876803917764720523802478498504353594957510298980719665020066462852561243590422248757510373052227590917361301720889246465247013435835150593660807069864192858081437969714858253045579614536211672386482290991850791122145121561161129895863333029895239890671092670495926010757528852632567093626855669689854937673508451056981899047225838712193857465148518756965199609998201863481264071216690641594614907466194134792270652082218814368026959512144947244842052777019686761680918023242408230566694615453832459509406625134491423955701548274560257317819893865569125501627493985786636447647170113738905351811944523807925669886513687458512346289382824805269938574066399842232854402516013301258222814451669485571717494922131041985762070036906158317561489269448265659981955827707441514893314736883987415652040410816529605567662365257325525135853850702740932490013177378649042195981279440039376442101388524860128898471540011210463637624101527685778625193887075309875039996867898591364324773026930743932080149901733042369874538116959208259017668086479849962316228754900101913935453435168547660758622323248870833816228287056438109384307272611173856690277655787090058089942335983240697865622632914833362570421572518540426620784207608748930384769878532703235247737743124007772731899566365715312336026078474371624270394326686105166229096347421285465613358519897293901749728626085211239897719364238851837624111709967732030248603579759523960368387315651255192714517237554042004606851713109181708391923023611672781924563439905127883553454913207660898426543752915947994042928219470342362849235588303467479558832571336386248712370290265791532976680587323045827132036675084186948599400088486070976210632044193765480225246419928915961482653945429842555874579374651822881312938940411850742520244637444208020332242087155551928095543290096876779650666194562017152689097720840159153918494506817048798264401094022996082137680983677917450736464951305118108553131697171714996850777064508279473633190087503417447725467322474194020957013257310462578463739749734564520325834683799270423104501702571939537904094056539732809668704950640288779176389808403580238867437611116188222235214338307719488099880071925355221924758373841838864809634053503064379593360673519789622388651878617938237673901883734070475454880591420404500603626070129345862361770932695207198705636854399745993263957465857733735200819655326503679128033617046861668514812989425904423042109959424817827460766747980446285778691724251414693482371462331801767463477077298617060609935408015290681448901702170953040808339401604114807057741762120178626810898936705847966214590748339253868489046687802348118122236825303462540668048778309883819794984782847634611201987525169722302464968279745856555593058363201957214295611365947311331943893053193425310176264906733741498589586154872165794552029152223790623607804018123996751577165903114382035756256065337533870652968591961722917316570344242933753097257099087633069977202883174032380253200848170181127573811271572490109233069154376786953696240125674158671346088589781090058334201221648727844283261301786142671654586405910630953185273509834348269714209378878805445894059322934105563788629730158965976612574636572892765842312369766531298494884575524945354985445303337337420143740846109391961943187256069368364215051920958537263792654376256178871354635669338991752189094942690247796854506762697990544885011109272185350505062730199165934846066099869603024493353139248903874070526457167409241822348122749594742727861025741252904722122456239955311090626064020757276003783992476313769482302930144999035096172405232364279851253436032800156397906451465999413284150642296994831530921462903902943275751934406362699139005862605555376683500929446427749450282909786695714687429548728212488961221119796998397625402826008350766922576583798460078756207298928260818300818076995088993986119253755481498680617771998525262535857126079365723650978729918235429663482317444641357469241820048529993491675551729920969006883807489964225528079612529571307773845419090919089548946678627757002881640800187130108856627377624404913771664691180224968575850556693427010040857605023808754123644852974830356854174071947641392774157688279336978237489673136174250595792549571638498632784218761566031377504666406799505119831749649169604326343575954672195876501637412206529150923742327715917147053644292508392902254734567158077102772335248210057974196688282744063444774514553445625934137043916902338028615272928562284798952613489550134792116865638229177299827117003166689873053060393332096637094801732807032825400226193286150955001004512024989158972054739606676064095932292199326443816180989650165197158934529777283030450716597138676267500766325639605697590413793717903080174710606873380246127890653904589169949209186686301558223417931453149149548615139823030182543822574260054997037820223497133178303254306982324979756484105015255272548444760382530797048478445806756969385378847695837605427672836490955951885455456334792656427818286452982815160516123557217315475528169300575352288577452600517639035846971175074142874378113433679973830862404146261740489826954692804374202791089219063654809617361751089799980908849923210160841523994632058559081372910155910880814174284128427845513622655883737363111881551475976314415886719321513911796774699327584861353072473484733783852194949397342741572293332756793154629757818023517741187304766971421604518988885065898259916930093283968404820919973300592756942323034128314453686627989742807908816521714462785557284896019798589329975611060963387554308829597202307512562933665172627167100467024011258491552421536913211501260052350012690155005895959583675741594887632100443737552697540430787328849051494688467931131514394606091359927224408593522335628040387787600237867974668501343709598372628886644157152178432614951091882792017897660848088521474980127977644866159571214269673430194226824561298811804124724148573258199352102426164591943604150963313921667685528758535830755180911779253703973700026565090595915793588499086877305003729462221499468529691185820978843744256560512815296340199056366880133235834294271120649972985971106664732171715123031906400000495224573984548167640288828086709182159032507950608181374762628144682097288977242434249795456870280856664826633825492540585858441414015192343542950562397595776068026722301090974969036303602393052691593084831413352926897267874866664183558698922228006968969581466421775774074357383858183418661534194449599611012004934918836917700509743156301419128543633387197695964155658263490200229573207195542094323257191058445577518007806857682861253866072325483923282620788523120088004894154911903299289811582287124859010417274340436121498693979425305506142235410183081940758041277735800424799007076523623546245877536114336678922351349024076367493458142311790476192988774218104086150617864423804870004788947544024419737623193478497287306318032150349059116797563888443092628322364463275509985189012011846660934839067904196172826016565592575971119576204873718249075167932091390454777334891158057270158056854162205614630527109865966835769832848576741924133085090483638774345744719572855142076834080422069443146302486284993277587161380499146536434924395325528583717421194279664913574144740578512439750397568586102634368044209002978295553395224676857252841740092968411300781419365828030904000844857899798010906342697530414564879486269084869042395386436843654589433880960827042239776174429856838594147581196475943178416739816204461083701216223278063456570542288440579817790691276034023756930311534240779521134523496283752808811874228487293701914723433849796911995511126540994359309517372709978680696106186436608496177913747006162836086405248940846091529445422325286916674342615445458462280249838295007894684463603796310610374783653807001816429589156678608344502660522669318074623926481846024036317500564211803360627568202578179601732666956265588567391068429408656625770116031143877342760755890404404913502019878924566718277918295093273868338626507177650581118099209159267522972845629706213052180556967505581484382516603365587698640409764077473021085802682560830794915324381767637705858613996160869869791008491332902682049059457450715869009379596600891063904717278897784083661816741442420861915503254417113949421252775277826225796350599461770950055208106979503241709722600056169653820798569435567471238794159990449216304044619294682083476901678230662958764166247178152952206247951352586867008737369557880337140056141783118568201702286961874973919718305253407243648588228610697574125836732514102055704395220580537217003216950657657686848331984681460554100123058150777208867055795060525377337322269864893001122878283954731591148103086251340482045420409088270322526116181019130895303061082224873478011567460881829625618110667746432897037212441721703577598300260040101356539677493369126260059278699340089187785149112562748007517803776830593986162512440935907716961501024830830996977572481984314397573444487579078540801996143442311182993056017742872925414349839138579993135223256726902250168196060345100219253520525221630822924498862300275447967754610884988656304648114603023911820546494309143432082564689497886621670200140562864133021378363424261725618817976793232366644694017534284943991399042903168856204259160075710270166260263914143738639618445916050696590057319556956622603648374732360904933411616043109192076470649364203739345232792259233217706490092581447760652877655984954869804413818065134270819267940482068111551195922716369935411204230300947898568857005233774325065895109542648563369635003502244552019342927849115223065507191341647822559941109665761636984930628178865507112116275180063697476086093495456181368762026760489643474988796845228994558934534176872692564367561664949186456685041955658819200130852835306355422496814400437013546661814379680800945716567666895791331317420607511083313738034938348820170758415415225739084852596538242637501377293373021896111265873223172036040514378115432926144590939242741454313558446169364715905432606616095162127927109433566758296756518067286904464486038951836639371909528343050818505156144926664705517813807987559025552867185736148898477953328747563187559601422067122800557313347861256543221856517403420460766490360828557371759957520079496218750615810234980068950560426015997951381155591479342980803643412823599345585394056517174669847933940050519375977122958188977827280616741362308184459688238498472276259594954303861247473554898627005623720434426583009542984288296923960292354822587546724234663958265926972832880612052656002040731767830527957493285902567672155202271897962161121325372965510267399472874612582932258997126950961746229272227223597078789730288442249337040511422935075268319874839025733149216782170921664120510742972371479674093366673655412233762667897623170573573375145109247467061609442613202414965028780528023666978184357981464230522648980324305731224304259781230897910222846032962029317588715032170612502302075234544888194392936574488367348225429620707638908841427336713801750841890493528838003940195807255298150437545777170042774073504079278541824842102067822548005036840068145063964807373579296631221404047121892359744057689520933365388772335708282451859195525195028878802754896602299576082214564523591895603008732248901678487806157771721633410260307324210022031691760602825377269157256093153655963602237428574436932869716835229759685730173028168508228978393582963586189200239976673672027503567144414187155912692781615343455469948497786357924894701868417945607505972332005321814908660424806887649936432032141493320219094897872559706460268580410644774535326673580920610759606711392385300010761398633531464281550264677821628040408075435592453059465808190291841914628171010544577066098165223292377280847769142984862154222009407548715691056002538063476836480018795609272373042197272756381583515547261419928723525746411831616493221195049583304437878099915636646216420341996637223377515577564225268389682095718877096740423843822852957773484592550245783440356211999569247203257584449787057772018515352652502600637377148683046180383041017709461345839264165200678070510585055259708164267074966267784687649406125476574502107703861755001597736841100551957045555941307593225729735307237874525279131547686711405278605105826884534968806408107443955331514536809854865792891236219486807684362252330567502941483212459568936454765566762871481211516970566330408430731136554594812043561206638389342824474358327848685573020411215693974652099078329638965848204809912035750808868389973619466685626915662430774370448144947347908043551500453280982824516465924734049924676885291089562028477750367842779487925141658859360401522375604721558231721082232997576730591835741532725628586139942025031643466299922685720827812231992781272711243573060439650021131407389401046780596424102414680778576296411949980279472893506946564007780687970061602720835285656042693048706891617991884289743778253289673271652257811773489238675953088885515534553757278650791030455897674873588422648993702444031971032270513664014353072293884115319152621979103744851183707478330942328096498561045000332760222563938579711548059990343535215981031440527503435697976413418336253652186576117995672306256086109354764391465968135396031481567775150784811130940811986310754081825331701660872611917439895939159946157205350914323268229741848682506227490850208964084914404222562021845368161023042277108525000711423422487595574155581969244270261815978583502454852611985216978345927225655144533289109939941605872947012068996911632121214910864052692203980108662064652514098236917178741194154888238237885683386631159543869799306965973004713404338684456383397582305648236014930281830566437142591978232798936322226746967670756344914719882688240002891916847140774103445840494031892996303814429206443859470941196469124359069670664648832917575121468481635106260808206556479394181570103828200399228442794979583746772473076838313721802402524953720139900610870903834641877023231349439583091692929839558191547682749132362160268617474842462020293803799822527110410748299932813135293941855068592520491521142631242716519841192086176800329023294702597014896842220880181946900025400150214666302055781379932025980720583503301824580091490491770022610869963235715649488523370244404323801126842823027142383566759117366369401268070228286329432949245277215205752503540480946093641617027770665006836962542948710194300632714506885352239793973131758464115241258319698727294399384312691224625033694384226414263340907294729077890702317112472359378465361201671124307167260060060779746110178460864512323011837810197441966704980276885502490170336198770086287520991660047123072168337805225537589187718324728796082438192157800033949695617796644606775958270255536163901220243823531826766539854538814420168505461332568256275037616593140739678633479344428110572529327156956538484022590838203924699756118333223127791741046174997108658271208433362410777901988455816237557486302094925286512013763461981586609426282442085988770563973116563034795385863863308440834924833157971794881442481705720522397181624858365207568112644473351989623261078484505784605947199710186304926240785442700872719920271235875463069151972754187564150803328678754433752103906244097853760122377295148815694216951793173785806276278478046309348419804384600802864364949203987651062043138280262008250263326057251176330306229412399054883875052476252737861257428710133960469505418598423362349253727897410084799154345464631473104689711988227370402866524301519578673374432664214034945106639519564890523317451571457868588664088304307152650998824126309119060198625704798066102619843387937359517971870272269423038225784391584276909899679680274037185239251598997719652734408727223055053649752022684456833126480109151092792337884415212631387440965283769108903518086704680445655201781979742218716668417307385111144174427152242190518673418843176117760292129413980765017815394774854390681625362427480053975946048134863147748594264058899735528494432578111185253160178065878485879370453114832509256455205906129323960823780675606992913521573145795322881862323278394131669957878832243298608310585138147260176633541461620481793542032518755829011852815322998296362381807224412467532696119122381122812446619336968168928924688172675432342082813824280402458621667858665867354496869826423194467684006684525112300496118946834448830238043831141514204883671710036292266818152818388950226959930827261398801950714763781051729868296168387547876851627546115655929452203037703727816444171337089277444709045400062271427906502711401591940746129463929539240719134683440518639743078875246237021920896322523553799239626205419032592382365200196091711303513613677696311219646704911636185756436458634460647733083657157534794756628798807748123913323548716664480374627071841376522421008521927351953231906766239030636425180157476816448359433350808081402579905465103185771304092676468586654135940279638847332010957578027981592965281995525420957648527114982743207423019881490172376750066408928635197193645119376798150063890674230412179346327860219895735976283592118535299429758463273208630455672213392531223034411305052427801655975540306635819683628817923463502418722285060856042609723581515877794268278418112757259394611729117647175533842581251562532682933826899336126734492334512281922779489867669061915053164924600146210983867975843811005830760172796954017430057238365122027337859835304654497833447176136187557100506464236122415229382717310423873064659213530372685941440499853501244655751877135597828790436314306383317375487891012732045400360763913485511727994469883052481112760023516140271681306082650817580327574889583273429642091319763872781347920819655737373528994027759775104623116267962123806499781543419560226629666358996322180711346852927401397211526559209526943693912032782119780312816838429228154928016996539113353645311083142974139550698972091695134825265155013485655487737671769850409790901328253612311424838632383443948477552879633551815389607830308570294581637609829746606962938593432240251580601760282424714587159151670275483783043568057182783087760396448800021509001496698015918722324045471486618989435485490741318871084451923964997624367060523256202333941344185230621841170575977186169127898768105468036305966367188522848610322640500238086387075193512956460712719069322853588820301412345042434358608467556829233050637426117755438431440227407969460846779149574461809671463530974987095123124735758801479591646393805658968756263904380054171393230678361490212885928320485551523329316172968612257273546738784332730789606163842199199814520827297953436755110614880378139591689213470780735629318389562810262555856984304174738715400956947167751075698657418076263261641519355034992166230339377473197558533953769483935746667260506803542962119201685632427986611437169709430910601479707180135491163371907395150584161764946725198554790077528704783299837272834079926352977391320560881136764841671274779522159282309735595800403991040330635441145283685237404360403703462858821746517560664606008998807756479393982639561066485071180538645640373724237869125907787527786701895083880809037528045764013923486072332510681997767843146999332353975435283814358626649087673900449823361244858927406976316752989643043214776321190688853716571885580609678726553909815758147369155950845137590892450656167970344435240521567647361675405461143378510026838220706154077573440010020434323885351169101275383674031466968462085643374166568506750556234015662941949888059893402168349388468364534906941092421396743841524129448385814431062833533616426789888028515661545955342505138336632311290293515349422348112114427111693263715002605731064208055360136918547850173499721576082064305866324993710022018531775198367519313551382870771285918902183064959042172698465870844709157567935948924120323026328854063536193705715554138842679313913971363532507254523918492669240432962646649423151393293759766572500416225427970804785200166031867522592877802547842362069585896855469978443440716371929072661856535198138306975905091744673074449828202343333657694578079767778703507311297819572362640322634471194470752864116429489687477740355992321613665475592690450170073278425336730659353433330879815351199071550642564533765884651144806243515926922505306810105431740928644223403281492136092274900305052024859095803928296387016986234567972752674007929497749653962834781697109841422728232453052338365992964274559073870016922456184753937943361334516977494596277219747989935367294853163164680926071501930925250978419607240529378062123741004023880239282943556538877360567162370899858182994712926647883741094538303866738157966415345336482431211359094044622763643714048975031231702826083574072436490513714299283503371587180569753304146440627723626535798429830613318678017753789898993917737053052142025559562675132073613479499683184395768361916205626018691468832321077774071126812875401235670839252850903141198121752372414277781575446475005606547859431545327850540708593067460795526523598630299059173053533038544026714483043048466879228795285368002912154734633518169126379131703888450575417448726179410530631950253047225546995958156990702110612452210413343454052262851297281135788477612287043742800561317381463001187591932947416029854601962141776108618154543558420961654474693817438831758748626737417851968169041992646940892158147529228240805453480007153825002994401522983960050501289795836615842509472233385995330886077002087529308922646387628827469716752056654185744090664183238099233231615614167947023280185430358894975429354156547610201735756267738920822571806495225931373788004755463854740179801372045893013742838998178733953521152356425662215501817058072812030045069817817459075010169178297773697230913005121933170178796663269845818108836317938374277630917271947790342786313566894619740653727970101407834356956292759524139742983489796124933603734435692258804107351160114787472617161600860888194498359257858125895376828725174806634747328310115538999820682331806990764203442326908011544507345968692007693593012513679454869143955754155995584377527097696708135647897294032353679210829803741885065260629770255493375497146274065352550523112681210074088902442043035635340330137647750791453819851952165982598180131814923432551121958067226325967969741436936182931727930375045376897664848119985797469190827196613730466014918568329626523094931499852834952137792808164396230418856883998317061268243001590979144972590786120098174253501196000268173859186479070052092939643649878483055029492887812986870871117055783086008502853190764639613560087918355773197370345136048550873459355607817510189803117618217802545623973584355638343664523442678458094245618600611016386803828813017834041574401842834653007252075692127743614101017048394940740591319716866627150117271848247880501130265319971647254515138664853316930953343822976084991029163905191548626037725512769415689766494286170097039964945338811228105640650930441171216239625334279050778005091813382043859974287880505704854715496636769173057266466462069525172473618300346162267235267634998365841167618277724524537129159226293135917768611520600988102371525018741082917985787021048516482261033559278086913465893225958774716056401786405988161610916689649396902856454071934540146010333771312348877297212278948726339258620361904958176046859225069237381153702129304254689885058678661401454571243177925584794094593787365842767656111423988820956014317870991714453382607418128731705196675563229159854755110237889536287450564913463997935165924296591624980180417730225762727468197334578456878045540145083723605309068944801560874149418470285126920444859917989903245203087806640752941105869087063781607100810551172681247708175523036186101379526236764127635674340826382607561831058764292312840610489749540641090466104076401941018511236801347155314717677326379160803842395353641511838561608055949862712279398182540116305246778509183676015872499703145807942768368678675857946444077959150318622544423413112391177397274433253834772215546671843967216540140991436402022559206599845998831042205704856230774223037789936728638501509304357332736606280955887364736382619646284877263523868808842303927525276608852075011155641183672556775353334388648402484523340445851818998517845738681959651194439249473728689808460518587559992824923687371648594061879776863952364807443948186428064246797332757869827190971401387900751346452761275755960876732187548615757764252771672942086522511984710310195340968038538895270181891980522413408765859220817612357442608987883524044962123370929876883049689019413465108395822617025849931232187799954787484770195566959713359637672169150369399014237286556277704644539903300830867322739481029957546766782057420963021319576105494525963484347698138506797422752294886476422606575421734816614616708375840472979037187402821766573349119468242783233298496816130993611618939256633540492571750219300373412369232444929538336979528052459754199408436750239104052461042287633180800243725842607533322835173307290227997903551967611242682451742980894005226815911114143168568736853706938469808114550731130417530446316136007635714981087325462488416494922967319493079284239237107024391491944760473715196024129896068682578047733918577850041664599626086340162939862026305954453498927814073628656890733346317159094833611847930300669431515928910045939741440486530614951385316738423710634827348945895958515657109323014809187457674105602574258001998522484711257749366296827412360136477077663465565686523899884252189762126855889828985379154539276948131333140903367305364207028463279198119045121446211774414941935659636989179225326170691860943561844864457903822448463303412503779657060015982481422168058815324848118057240715882896575367017747062692195228636989599353045450574921300131727236853573110209326277403675094297421416990389606749211418344094924090258810840608967488066621671297723871314218745130107426317052306792374499308473582170504225791647246369140861562511931763844634290947294432492887450172792572301752231190477811523917022266719479132349418370714380581320074758710475594473250052772476111793334112935830306603836510867309469860743674803766883172576238112114198826409735902322374834187106882628997484306971449300208270447043987460678532728814489296483955594406150157309637884283424354906224993381160226404339753403522669349700620826426892080827331944810321206881738546583693627646607417527909544270000358846462775425602140123215968771321562079810035319832305981013002134196113322642939415203578449586231928187171273841288888264261227801868029687535424562718761691127580551715602056270169159732946689512118839280797468122290086193280672728328933379824863977690126097560546486321486833743419508537458671228721261605351076946697098186602358268762065009318985179918079175593492289007657790222803960117513737301231800574020200566807742251605199530569123106215976416276104964303695992207033978413926664841104369012555715404824522346623939894685742052431150692887076941144134752480487087367740089886395963645085565512723472411800393602512411392442630203226493426681891778897962276422423770243853141370292902878340759977015808602030597829558511501865644849486274784265586434123883379509513915652937087479405466144233508851238036058345127932553577363829386160910592203938851359583401781524202436894415521491028958041738216314013024884672560458471466293451612711309445102391012009477753533996374956464948252792573067682268688631711296410102841044672505547461777337350386252242809506991783972079839579752976480693372472477838901550267048740261359402820282767034771202611479873026266249942413203600027162094817382139005807197214198710570705199847999233126832496426433461877212439521111363711933328080543471696072889852894451260375372565888016309059294607890523567699340361017159649029400040341660661129856528726819272934781955596512661825992021167731165404288443819450412042598685066221758487772019791228401466472032170263247296934651708796508672929252552049630715280741795794365529536139030970682150412201405912233376229414274996619573469316144088081991701671549805621385436557374265901005384828734956021526374203161385280992911563050049140437108084809858557630093974835195346301627337700583338753388935622008425028979849797820441542434765859464890928540832669931967092311102069579057800787156555480207226075193248219812428078083489551423428558491543344249066049453163405949827560040233762095265908108807973238949600699374837696389680889729518719630179666111183290711934120294151525216710698830287800130278181630493901288906912087535403648770942071065235258613574645923651349222707365461101757430401179640065180912766726508870170952243997822261599634373105216009458613579741400808176261920974270167886904944949774839214365173165247972875816801238095678063739570259268830467465858782760976129351305014453522461498113318789134833195383183582050942078792400458135405995234425773055219524529101059134487728764044404629176317990205044162658141275343631820214727448864695435190367613650697657350280019583245340080515162772681264790875630537817119845114848224571121043616223237673656532557920351171329758255626699471527241156849561242295421451769682950554440414247057727198832779290993512406237586815072083895187866047864991762975993821374346446766382450566032214438336177904673160254044217763091435073816747573615888239537390669664584792222086476396288341803882833846751304885282299201401348539862109916079966521848430894749122030766732435621629677848381636293503193290611356234531832163521599543887832587465510622924810874143694751748192723015576518709838656318537230988542829598741652562216380190310414600637357237930004202125189467443893524909189597686591132987891881368096185975564101318663679179157880567396811928374179947290699480043196033046949554532744068470557857890496202579241771078127859391724647432518245883128432003047371930353957999656310080822491757511541263277748511921211180293278875455272358181839563717275177261989429902840991555628738972917800265987692748274798905771505830591426855766693975456352369674487655883504408275119318489217620386421651106366628695672831673603451085795722418530123935486568051612431024825324523451879111703800816538765288330914455837055122737371500216052642943281921402194904527415856280832210402043833669224090146781173658691204202224424342141076731672268343372522754303567346815059475876710694844654495568096525251692740892593778644868740757575290215838325775949305686641786153392287804229036271338163682378016766999539015398444534502750098343757546685131713932451381138981134135583905618664315247039452037795495210166492096647358037032164921986899843145656376634184531895289627281681048045818864605634956923289475887729645652393480374303132116807655228053033591387428993827658170391647791327759700600946315895909603687416167333135890277020174143640400889775629197965076744555925714091841910423795737775469676644386060690419131874465651218309740110211340046089313851142610166144435533728924508343877657371792761776427323421017567714189598025345859068393542370257178160307142523121868444659533413264187856462201462953482994630625996439337619032703735710612098609911018689593117324323328202487033336685310777754260413611548930638194422546667205426333228454210093421408502759806511957160009704917318389899906622036644481830963873707337661451634875775082805068366436594334726112943921847842587733247303508629184022403227563235785842037576083996087750389007758428173347268324389469676595421501757512984320873984371708289853188664794338820669174212044560969604666503455473934341880778749863012854227151319508415927859138264867330276387171178911390103533815848617480853391689074994673843679718834603257044471320795856063714573681026036138512963682561753467560917845961339665252650660817112366565908771922277847801186239160247145658884371619803106380483493103122934127437350440699095674601904521892521395334610407612078004595353094931436798046227534109448868106718825594471359493822082570189362239490258586158900073141861449371363778520045376999571859378371863857117388867568856523663277243340883776864898781777397074708442166048072045294149639092934325721157155224961085129865868506961984750036414643805894677643215677270647080768045037567926397592546330982082931551898641895224398291518052325896479324013203451197741932399619495726001830642433549139457386537674998655996896094899271848950938900962169635500253393122051616203585777280570940916782975162806447913927780427082976923906203364328216603209527152968332090477272740216908323189622769125326276988902184781554134587851785526942459942633286857149908539452706449843149780080075792950735972248400884021417224711652919258527157037187122445819482957727689995476204178863844993317445951659508525815365557732758809445914242232355213932007578574922720064403892104487245874340405806736057835540736083015570770668959240867447779574153297201340694529289648722097080913351310483691096520883450226011038702199221706703549941110061993617775771602693501522746062457333167685644506164017308548717592598940669675221550236967032301579911060099300625405483464837641241773206066097952125528398601172259705560063760470125919742464540438791862986242555116899664406873176254259407358517826091699916969350849734419117378721919597416087641392054222899430895163278098183813898781898408945480491072413669817572644104254881138575086263498542979126731349766831378308561324763224612541528021329036349137370658339381612987432515670156446223548532109705492054047286888634200342089698805032863002867955253135699496790502816400935476457462706527551859112154162713833922189971451711675188639160998389221874208912353892052089175319559198935449311041581220912028317096920809790995318429006224902189161901858014395276508812131235326451978965202115296868932873283755812690737548637015088989995749908773763151225381993978658609709560331744432910492341909311807511542569273534559773469433743558221965292873724700485998949746031646350634438973265122816718533095910106481475555809901365807468665918637792564472117623746098162088323689269835161612349101103583064737815044566870632275303318719895942184853922420961455220152903052274781878085531487058836918550125608105461896898135468621164119106532956523579231189458820007081208009371578460510584173606527647673236997190046108699399838908611230533281512156904163273644117817174698375701990715621659869184146362654400391906595143013008736878899022453785820560975385778492995781173140804437841841530143676189790433220018767700838685023606086195567090800063717739786296582801611613015534736918159562067821243873888174028716942229595969803374932194444673370388397216605730698721734895743385781071729898053293051303274286132138378524834607250254924529436861678705898513381809833496326446038866273535746512611564137317695630672230440270488415686646094813103454140016283938268640357715085105494983284354167540963701244138039415508583340072000399583438221887911819515294308590846339931227351192453805335182875841543565377856303615349571539581916691924608191562314019681517710584193114679271749487618738272669402869098042846809665735319041419797707261060079450639021451195888979310959285014800509993250427080798924440284595411323283006395069040230996258424716373896109722723738494180477168116587377651397733236983679796598363957312016965024215120397241641241320634809067550665619323138412775279217078845803334617123330205922202234811255502588501966463557854450417375404687860731629770217537453808544429649454007713780400298262428752478499926899031588687118522733602673529954143299049687668030116446048516928547233040329347138514935934463187520392211770284533689089404995784395966016134881844582569414081314337925965923658025522099891375513629799143561127380415781740543944603047253349651334111924342983009202276204354050705446187851139116849101115794353820884213672388930341939619711264474755467070144563751645647500983654980387474868170964272078837427022341351088347499073287322828826646643457950127868381962022625209273197958705938391031504151778034811668549942825358935962090560064836785516617014839997453666439947793303106440204959826382427582810153782573592505094558259261555852878101738872684763032459327433088689814623894114953313392441232804859796866144927531119093955914946973537086922093848175043931695901624721132712733316309863682619152395952223400166081461063090246539556649110411425646652195126528754780596140057382823924002857936016526947624434379098105870461254838352779324605370864217303019072756600860302595738569941249570860991402239461592454409515027983498051820998545289143844067093039241725689965042120369568092026133483939994314247482060503380914454634646873037797860718407792944764554186209176066843877924028810735699596329458893202684349750336854786600114627422116469113287867017559251807540292697833182353618393591276686324972041050555559538117262629909707451649650236287171284687432567853823502212581853029117668192615351132893141912333657051975000149191026567415389258025701187437852274130691308701443283764445704044297936035130410075679780544309404826325289088087342302609509590308412689541525034925947919389507384714982376781997238191607981568160917013085419736376695235467462408450837095755348219656666497220471227633379791266127585942236696503353175464945526426403013937229335677155837421901822366706084872518810713389443049887193427036068784523490418592417561591480297946867429915160037046816744477110221520139254660908771485865020265717440645708765727268137696299201538728119836520800564525324130490045283758652835840801478732311362313257299359465979766767791116134784320914750884746727697737901781563586692940600224999386907890564473345737950906084552206263298556998764770656809315214431415295625194954225250430211604888987506071033588063046513028742588830988900879870898006632268397110944398182103760992493145097756274452528375799009331991941495489979135316577256064896054087682791809601566859959047008192236152835830752559851582440160381264029299390702329119194972942807652481104872080123412575216504005359697209485328452412926966948473212717166132846912999951080049452694287482356986506310885055832008017300033610592669636482561582089225674976658428241171911044304306530833641096792766025868890663375820143647001181270142924925979878618566728663774967410364004950435470697221825469417852591276411877482927299121029728173680512831212436162446205793303984880087417997785020256935421239404998159167632679952523347949396620931103176804664504280304347146090436663239022503376180827547391141911817636946868178756292752669431786581679687293101837177402004381081342100065923059325061398185819481211132669255891336912139074703324363176466872136113137391224953277337778504808859815665341966338553317087656582485402494031567199472146605269019319841300305771311659941137505073356685512948451591848984917135981200599832994727428640453983072778208229661658285739723170167572082861282223805234715989488097548220784856457592220762518133265642895675621753886555081736529225434193109510098004789565486037092608619059119197700790988315356854915591006461446670240253299188992958813490556750854926904243665029654102160921319401548065523540253272336942221368447138774617342002352868886601731856486154914372232140085728037552280880445259948907752761227221514471918732157237948631523182984771555126794225191109869399859866506200655952002811206514772991744051110084436194984921124789104334933138996109355030177981974394627821921149300479076063863338049977062051963317722288505157184427557017352831810323947734268989361027381260355485912429954942470827260701802754672480458669220160808570443553604863821543696040029214748341264547587731215055770063645944744378094460853767608970166595049715186446703505609920088649027832145137267755932586479541670169815650353761478354596687769088437381706549503016192190477782311256282693032064140080034031783260393642347358000351507822796497845592778423569840600772992562015743934359842126867431667180287995765672861140627919984923062106828802165542431436585546784960397152469363243332694329885608218949484630152899727390722359184132997689208611881670826250064364562245781719990198189291193428037694504637536563356386846824917616134358499926293890404264326686219083273377746021696399329558655217459376222386037891265749992441953863018807372611251997962246501349796704184694377979379400116520712083847677408351560444762876001935701582077748229460278761668870722671413270701482839602619138198497690497292670774983951851417781502700311198757344455929222019038335219659706449449506995176474490112280033510019744967218569961640893734698171309476653441245376775608601158632994317840405296548030709944381342683104784369631974375524648850351104784705881835541682276366736026595662646640139874571967938893685917356635049583471055263289979646575244383086764886579210756659833315655455734602482491965841894832882629425083402714423413750021226394110079577466413534490236544444887138826002425550343483310241061922240823844783827026278558255783605935679604192667051456563644309041978720141405840943065221400505324256914019711868390784095513072322570216307298379320081554515280410588981510576951314168051021928663175869545731941589622654175942556798848125113930844108533318229230371089104718977082312860803398409125294704233882878945965682412015125151149507669679708999982836722218515502063827618565783543850860233225627387421596222394961876218926538871574588380902082168325471871295091975703945378685861184664256020124743017775508026013143398278538935049967084568891682869562800323024260593768230557058083015008999979515623464784306850498344070599002147507728905785475669765915229620297063439891364969497724137388273238842694952907249447220927135451720170701025713294204180937106570384441843150766824835970512141319038709135601491096680375788344566490309821174264616922313730990312184528874769942670598708555571287561654190421232610413049820065835359602496941122985222361870567209920374792764507790796915427504586721150793917103229672559381734836598494507931827485887874045685657076814732145865712230162009602146133268394492869573214822086560859215588364480756966039723205052861641508010340960279158952138568050114447266450539851488645117253556596501559434484775853368631310171243349837285307293286292112269717649763562532036025689848270947407223464227368064743440224956015898647659787108066231780634837853248352874226493069212029008498182990154575573657574824542395106222908577598442350425730659097677336459311600385256598319615665735603118040366298768569147559927390952908740231054969882731139440650630700187102429378935445424279869951265687562398641160157017521137941502168991197800749451478082310162121606216545456914799995979123298124875548733193480597425217011806472664247013602848912301695061511299600170344142710140971377761196010172881366383977068303849902100478681908092188217486482126530122627774034410322590851320572501747634119942288515262283044327658351372033568799061766835992368686330399469005358352594687913618678965048514063157098636778987364900437262320998598322874996536794408662101755542669621038474159222557689727557276901522309409854709749631860619641833311642188418707943151048055349908086056625195579943083271823757125757684341112448717177671654094760536601233402412750029959703526791746337406943358382115231617343214570698900464244862486189182165666061550584555231049807952936588886435310692687272011749609748210203140736623035199534815153012955897702077990500155587542168379090716951009020865414749933523413692235667699844484170976491120508495060592543946303265420339433164203927041231819478236227051827150074162860586104043054601554552913948119749302862394682732971392239511750118832014642901761389565138736702608223505883541100899891338112779015216108817478079591303926730628820753879248103630702150557189734402912471156716279372931657018885709855416741573535403037100717102520252759970297473351059400155515172800414404195343148525673049380229627256993453735887924544192882338506912882474996908224958717516419440048089056319968759241642026042566068869821231038646316331136561459659955944964463752982532853948431189172494788178682842468237688856468345856697356380880170905063766654031920370614955607603965732781432467751480816646406088800372951759435094040036801554711441761505216984440635079066101966904967287810229313770898851600522964571119712397478827020084607494370433246582444957264586338155187447315867806907714340076911123055675518380191471608823696769954271436543980480760705807165643709110370572374875952189898497501328268592350674500336837143020819485425581873714478940636013050124226675515799797342822518425325790588483051750728845586149257192961534610687789247915019691639619087482291294064436790511266249164136717488080500094865648926465148461530639374176843784893893554377509630984535359002902501378653804175763044264204566141373759490049054331123902439932508339366774058132534248473381651529769562159179260413066676600566331562531310898573211115525935592869723180228939479912224394226798781634197760398332837879252177222609014895227805724758431789988874980200066801739018913071048639888489041437300200184752649092483416413902867060960946869566971838172540355263175128291253888613070604588197130632661556050851907206597266089566829517092226108892425090476825452377320088013409201872186375591331445546161999760669257756413403237948254769293929963973163769065741219294423014869191292076398957339395636057456727429479466039472782367044834040006956426410644714735102099388576783913673264731182614427559899185349070429537433373821873561909829750829141385377694573654168647478124891711513645914943898848823311226048717781756268920012981824209869321860782660998614003478834183076326733930061636100123425599909301097119061784870668564808178582575540706217637910327854117978430100974803522533467153162528479624548079525921308168851785451510796603092496976357045106132852499269318209559878724477032013576549578982062776375041136188119528371781804441252695588625218019433777315615150606043190972255642718301324051691997123729036941043288487474820428604459852103556009415643768230050124694404097481559056579116899126352042219525224338634864023680026786123189365706617580340303109715157870539972386619879654232821658091298078255110952770343473227849999616677440953851140967632004921709717095816471560980219854093990601598169386765650745475098418592114557115993521122728396952338749585996320845999620116391365973866809166971359174538743252479618224889171190641398246778703250326471945601904215523119434205009330229487858728039588304340951555334758628185494159962045619894274676789662419493420395396370353617043680777154413234175110842246066210147132112814903191683740399438597010416150715799907040612111300182898277547661510336292875391949965521197267024092266732436012974309821742743402081047177876337627226275861637634382164731784502148933760189110162789912402232142288874371065964206066232757483365875513967162211777630656389600201052963586714591279366808852214893948240038703289542687884053441170688916221025839564446021729082537862608030753634166570016300145107046344949493989542071122182813782364714657302223589240493068547806565978606681182503165207618727910362502932519111355473404160566621683994251883782724955859465702110707371455524612851419871618014917937430642493102170699377824746250843141843704403153397349645270738698490679452176304671688666469026786630976011597602417456559285667850884011293422797269685736063150169708708469181794151448852008481248194652545370087167071161525471346408923388952986033799743486996048347493798242472093417832694011666820366750577334479784459257436692979129815574397951428327357621381100398141749500256117109581122044827939570845446261553584794712523984396074083230526175742909875887159797216562537121962814677274199753779987289827356597596689633276407422383959492390332580805102878981128547776190839644520358709184813202462098748181947928823340371163804153731536920905756459096306784908628924511435963966583308996976949310524403772967403836882479032467413227333777880104612669744633321640754071602376889101168941956432186740836053664965673122801901408317011949777122007747194722081943865329586422929514397513404428495521238794679640943222114978454418227046515137523569366829236767368314753211647488675385828966160613501262757553710538017128539422788980414725538101929867173446130071567735678453905962038118671267120006405686765320956796765229640427653913631685055809442702716115948758304424285570839122737726666757606360755313396022275664809883240197386644225908822405316810378612196280816202711195418027548983152524055798603735460959711874405252491928277027995565370345659795035761096040573941135697082775498902694983045474106021003292340755619652359895096577466183970789895441681869202660397029058714987452550400332099876817824290975518494663809167666455955616692322634163629187533336495302445192619319870753306600482543638369263076624738555560704314199888617443214287657798085553287730281624977330382009795261840408946713146298670470203064655463815738262695840340812721895395182600968586520793147345377291349993529151521301589372730892535210806290613261594633361839436773466488603348216075306577322361719229517657246667886992199118745089201026991000502325816203035541101758107158294687220096404042484762357753289612177523493539312720033640982249911178439064566521336432655265252866296006368099278060359130216998708246567079591477667813423802377755672122312966160971087283649371621812487013014683154582073982594885687543489614549152444035298193923984010628153560749162873358266833246041842735125813158691108480027019765112051400508940809528912354677871693916866675201972996241139825403035927952427204075724879226167623169264884634018647613198337326037915012193619314642016993310828750419858715879498826477972857069358584811100335181450962964291688923684386271817240878888043988889470471067114914558137014026891403651348069752945856610551482365294017061665840190445094320133944938508114854830070913113817344419302940854742287493035344002760716044053698517649409895003449695088313229040589407071043591556159711058520548615022997804162041548431403701487525772466286006246985932311890978924463734522322443890151931429698045285825988086605144236322140615365969552846288409200287347467323037549637752856499342485536543490682983888088439281263380828073129225014900091782931695624646040055424616628282019140199180519224394651967339959782022217561619367436842331324796822375000342941820183623153486397119524825414822473880707469683403093842293501148571165215921441895646135149083960462284971935354981337031721758290969825795432468470169816780034398159591097166831037113180776977604114137879671736191184649861570298699814984170213690549502639277383947826592070083622012172196467645592784542113502352995677087499203582365969052468943719350176633045642405897229140325161488446405009817946363950093885101309555074732937657387375623916141946092572919650322978613711318323058254027844453326154496047513970159376286401494523058100316789320220389045894790334009219070968969292855019132813685375202649689571524151739402029096552931728746868046254125025050030090675186843297693150677609446548569309897105294166292525928403410592143959339402398834848205958073358191759103670952865595984727572630718021260526975683596416656038656862937270287491312876470524118980228986966252683492343725894638326909105418446526949106571663384993987566736301545228883230295921598588373047406676004124578358463883365202278646507684612476912031675046536246027064442102852195668934713315473556521239637442492862445904686070539418197715575457206418757910816036046334378242613716190596854096475673445455732074090570564978024095913018824033932851869008702543640695851478221784909542038697691462037808378287051816732045579354284665545388278080868841793915224279850439728286057665141581836586819371517620263934236098431535322382965295806939283120601760086890523103508208988854218996163113860222746666349544777714093113198844091507592332248130419123398745337112167015324654288264362419885685138789640508569890788151500368481508688367524183030224239377385273298368076228937780367158911821872479773791835517858656688881779913470218246339806704225959650508786240447164069708766669985682663693951933537094659042117871091967863431777908888760224853390994984042373009798086208678426274712538933135754808900024562893359001903169326225058862780068898943428359140460510141513972481477700550207398529777758666207131464579361543510308663675765307766246965780940433363291886298066776810310062355837273507480982986092100764461174778000709824253609783703075025877941177360291920868604745000946974722929282631425300566213096904970230851330991069795595552226768059265485260035462974517807939308925369631268273581230163022401988032821101606549342791118803688637251202298236857091739575132933769283370554289346569003217588233965705715715628084213283794839793946662964710203353897786950517340454047572628671931856236406816649812993902955025221188455484620036685097386090123031228559542936948666098191796820616465744241363388066279724544423891783309197209325295014494255685909236077548971572675114628620091235720478114202356706940591496530223371017381886585292062970403618632795945439555287658273269639780019465624723024083448409818139062916942558511388804240905950751327285731303803927655469269476389015076799905096596146280283813381546259730223800036630232691686508421421505461062497891067502800591216038198836482628345599107963431783495050341582797178715332409954891785179051276524178761260849647653618548594703059479233762829083629401562726788564281191989602637632616363275935064101595598395004457700210553040579681827091221324777146131454385717118345121072864925488772483774315502380635800486173405643032629878054326409443458832665198622060563626439071999528067606119782404214581856526753488142677863980350221042736537990593379862582811247853827135172706347581870105675343513538481740011587815341090172779665512692076656754139076475655593749688896742954380391528519207555262817899811316143455333572304674821519710403587836844288103609846590422700825465397434991928764792267266075339953739925096355345405301197622849803308172133806087970872818320899702078764983345145774219076109940165109075251232489955302030211111725193391587994707386988902513346406595758249051563179804512026689909046757399755908407380994139569911216099116678042804622442448409890732938294311878734243557132376416782957646922988374689652934769050773889197398310762018441709683624919994237889741626956740479748926207035633429877570433199019744562640605806056140992657600385601126715410971555195478563365905163394042905487799476986107772448545250281179535106624361461764426676996926853858375364946259467640987218100482999572464852143152294249304328205822587958553413688866674963651807384100933224363495769783855792021353739661111748918167000868360887565845124737474305026971775963597178542399147924578801504856430026855058221154966810700083597532650141637566642170863699967259969593775666359411072570630553692068910408875802166632128852804601300203859128347814443138429757087921391918154452429569675712194437020851140202371521665162302705099803853340652083334950747160447441611145449316136285211085511833273299137992291664022889973081110060750738276727860796436584065188605378076661387336896094756719315856185480792642358544437349182715564752104549402265641747746421130412353546678114782270944282706871847601729846922981521974662504314170192870001027693727714832172520306985375771341023593068732688529470729506747833014739636728975849522892829385101368012276439777098368828243644515698964716012641465289826372177971107415126871229699648455262820159448745482650613676493343052214488233334468156665144736041729377432434005493187464866188963490156151974685189043249748825717301634927812527899506437810900014016460244250513719901069487804409409563632139813090261751112752073266908111001543456079113438518290931500917037909478003565709608356866274173399625681688932357819022574857216336349765155041428202553881263509023337050356647263609687281502626063746335592869011344469689995487645698173431255146405809017522050215567888921376027257182015615675895629435692493692450636994573539736990824643974534790459590768816544532555211658426797170033995288757505600841183620716979990882587207279373283971483028270294723683361938591197616995039450559858658169216753019384780912020909226727896912461522235839264601420493901856164140997800720698973918191064500796488243123760356500689626210751806660171908330016395016485447921313682605044583475295904825534630013498391023405250442840282104009959223735830405863342855783723727462800683968864448625847770366483643206058417042497879112597862724173913909812423151591397089210535757422704505603282715125620835761635758230003488969639276188445600558787905057278591152724280120609978326601231919463356519741458813801433097495762571217149116200670254016900874692400572664633131239920555348527637910326922190968511672467546261538306642311751329345865221102894667018012858314205973330337327568937937311917201836892960960465143811494487696671192580648467397291581301286408146471908539314024179715700812107125693672905087142489760978593594357372668353045015973574017031955088348719777322047250360849262458336938041506684085141554713594740828701802804206734603604619750268568509734667124015333195742100340157016635842795477838636591559340053624477977652711353171968338430753754370877140435021092085666234274429759569578320810745703136321989211857307238733171800672101259977786518608516013084477960182302626173437847529058224633022364709239508105877891879867825094047346510325285182959193935803163691500138561675871891639026176425295186750920432650031086473047604426841669665123278344444344811627182102350583217499518887828446561806089301203497423801682804578027617126740883154258688635805712567046673373238354412539666071084948299141071112583343291802476517277097126298515152920649970619923345411747765487988101097214837933347099797242646573014983662886885213209663316600095723030867523851929673299201462111032843370719515653405776207487018165735514896195490495655761366266746363284087173936379880084548856721837500897741421316574870051994072284429605583334408751961609145468274154791307586366144382932333227231036608544821891397449897378085533454083851183348824783686990386857502629764762218164194708505560451502813510015658431995197494531923697553292757055189877649355307117094541019123072796372495680914033928853231769101144138075630387175290954734154501749563026069063386761923083735154488179487172179993940237552279860339846168704240053097807434001442122621947780599465096388713361379617521691639953567612332323731159831334174168860240789273614638503787149389655214129200748951560280902272657100478036250949023446299597264963482675348932131435720346666825104618102956090732402323248656218051929423485458895612790555027583265565714117310733366907295924128595898896962160073998287150114098076005219380609278247362499646393744955678588961429409703518056678601209441024206472832792603667815042252937037698370843253542869135848206702526305711639943776347527321376258542524255806110235931870786914682496000981703244666417232584088311797002471625504357095171656993088772744548304822581430160242301294764717434891064139060079811047944776469180221934394408059918995977199660603323566403013057616280643678635253378224966060743805800182620209459374444609607961552520157172730781317441807436703966495608222359628327766475293473535092802652312183229146872373488426087709638133194446237297013798142200910978979741909016097968910091090132868989532808354998549931324402209845814243997197355277330509445976884306146365600871329967409056648889818833023165761190989574890225539813053576478113846431327874310808843752790391783262044514914167591905658194864267207034040976482592069278931868797430485398078025979073327925650597864091447765470739185097247086392077718240546559205248654092816761771137551655941231729428050414312200651181398427274044805694482151365072247384217873404215309011667837296852696693119070139003110198584145749340148686895250453204718740876921281907464596729905737411461393124242816275442367628301965854478430122246972094092670013599408903085149304479212332273839862125234631361512561323130998584605984959171543628267535779127185004936076853694270782678063455446270177593243156447561038722864688771702182984291252037659184316026709600521836009055562121306534422259792861469874209508747007840418260403608010939854728023426665726807787902690578060315773126837390736298658482389176185210070253165521545257089826924486446707888228571974410641072895265972274916553951995896605974235593025723195965474577043019250176829331857423823253409343181866217936872012706235567241062307548611120673285212773858507024756024301631375061082400852990182081081976888630972444002911340557006387741569380608070917761594927834152763292795788799416830585394136096633581567199354893584554097733213542029812285950832484950263556731761281160139203346041134388659052635682799992881013224831428441228782922515142120545713389646599156126903406448287880709581449639384697913120327479030959643559271260604179574360278083535251582071101500291954886944081101360796017323437898242845149479267628085482838692078673703855380541306040110609024447720427753519379836140120662004770006741808043605232186296504843078040735790823629314536855081970584969171192816234596580655146501563109915300806573372472827545417181747627995231255157399852404964751289091298744857595973011068169385039681384235450059880331404419832650910600312470137803792768058766458065916899615114350413836741652636515939991999090621281368648724554143848405585987705141094756029453500298960164134243862816759533496383399092862786293685849435601738623430259276088560378275128841466803320626182064271879480402609037249707457941549127990253630278695764561662910037801768971453566605526347544593928478156887640168322164277148346127306052612587048858530685933046520464601423462941013262983516855429534917586783361476402179207830760767242688584087430307064931259338058375276163429052371160677675194902374946326499833171353964846204876199199499098914556740782692991696319628080203256093246032432941053209209817830951806142460475280977422200184975413018640091595305262804712222332335085944651732850270877619094815529155139540987928358268033561069960556693012658659844129702108287227240650610860448387397137741947011020302556157851365681802862013296283592517958335341014287420490099594469512907484764730766234672229005680997382264739813837435985057556213243425234607226361110093678772142120608195287085789593792210692099967713432277148899318669443659947445996230928408881343664802667665099928322623108617297575761225297118177659462705669760604624600916559558425609532200974480527966125730243181468751048962421478362232245128877883058409804026137101800156301886229576502363504530291608350764439900785393996887328569805995612444912445689276464475865581616019647960451020134038044358753615368284813263461237117971941392834103385627599137440372515389335829628586664874793291157504558539524835480933023842937608019293380843204191475609596375817776174968427372371408072293708729103127646197626523909251997383086828799189442132403856729513113270368735695066988817406951274893356379974022012338372114721189061622765502379306614499976446225347803541880272896322722868922389141432535857643191804752951937851076308713451042018609173855435991728732609277352501634534484282756670702954994306144923288898744762180831541778518184435056809939295943885273227043112623569151806619536019406889218468709388047324945232371289127232541461837061733494568379402873481142289861625912104401361219726366256781982127699868515427310148075408219545394151447250611390298610726037016103528473723135560332354490617213625169037445744848696612429724818276308143690141167364245301190277093174584813314554802470044320146673700437447947849359281991298008830100394503389926254773163490894654678440008742286757549923202295351565962152787595045930058775084667787217809300016513097921335567502941777448193425667549807130536741965352085014422924606148430062474934220957887899542961225827544696221816368323198265736273368221511653319176249650609696389423996551204200415391383466576352047702067025240807298777925479718422120079732523677272101139384079175025378543890711412674581202081572901692884405058264493772257279380815793507286668879829076769960152265501711964825740508744769752778757178274561238636886161155209075601293441118457917403998243184739926053861711735773016260364771965272073604884923258847162293264100766215040973181680563025494975490513599439311005084550049427337023474730807507677431605789717845134426924844789240139789094893832852100797396588549594128907367014068688891096906631494797211884563293108325799701480311838787230117176615505034836131981224849520184594174805874302140586104645149203296225598057977151252273779006452672307770643467578453495126996897449646961940688179953407604887470749946204396406048321948964784502884628353603927140938201268715986492150699158463201166981033873484452170630661007954330669044891701266934260570084208284893619606405266728112448115874211176431907302127395477871324903152260158577729263020615538681027603079811733227477783026793124329948633673048182376561964145298678062267496409699026119460281605909984955232409531387703252424559106240426047814503596266769573242899923835226112615786082861628784909550709137176067200944435910728729312154195504491101796984214374463498333342439191796179362406445252660658246751019548729333476208975676651048284967415238787129461063407009295346739925268267463851122367514221702198489438880719611217269009074561292416194623915360670290996793550424832953794232217236326634982895855548716560858317903964758239118467149124710160482681739271958748061012041179786866321652205365520434460800676647814628780728096215250096749821981367417133302375524515438745391262628430451292611511857018373083301406725986392977538260812781759610782032545916774937318696808985976309346297049557739214564460146118306007443251992842895734772938939911233913283735421121278467134118528794889398974967912775435368648601326612733273068490134073385767749304433354230789310431178494655697436201231778394241553651295857903782151040691126434509702048016019481219298476324740372119706541563797653247185344768822388852503477387003599470289141646831488102646491584737956678785539285247950099198906195014485073037997100602689721291106135777139342013656919439491114945741938958023858778862139867210775813038400410163785596831180847516470713177185245671277184534847082712473447520729318580720985393588473545152958131772604620826594285002512335720684077223828417939552755627485280976242434285596385528430680397581207331209104391410916627632094070130111724329607601882320699791130299228716448062929560759702818129333392337695808011186250213350906987937528179434784604287455955647881819461561227726930039651191497380802643140025230869756585953259523566745390024594600171789331665910170060664429077397351906276554049005049461806832202798408634861523897519900057188315765078126264650592920889958051808075432915956593139864921235909207216796073497136355760988815381449981547816999021401255600319707976628661169360263020221199409537742933041960547180202029903538226160784848761601816189253229194108313657598361694813522902664856690669323970019156476601423132990472686874473880123655821386040762564229807897478014659994678919256630127784005440258191786322315474957826552484996833823193575435817251239043129613089022196249734776775653203887505708316870621824415582975280766745161378686561189422678097934923254781838708225476500239230792412817814600620912707717024871740275994300452416962311500531111093331120438790344242275890978930942282736866689897691559293968733511327044379570786561109969095224638677669298703053249424972723920712051599004929559023856030281935298244814382957078333091556002873824720323915935397655028047834098770681959971060346162303185662207915143086011578443330292046198600439181994717746577826420242051424514330377589654873443272554915927266462147244554862694573015270158891539789128491541489216682305084154778394749099816693216300165740111145754840193496406187505090353009185903789713521478518792778135670115595683560165845212053312022387959461023730627951059418216983537579476151963157763331628569628021362529975078666561709503618711692004414883974811518145300401857524677409518846968924808891742905642023348847405327217153480217272688953007684242473756667188650139900049624914986968914213242611658583253488699081020990475748147257396794553754317528747132533943243858836399126528676919104965063503036436601108950662089565655894546240369794766039023814962199640409235632237336672502129691020535291076178871577987126922542925626056915680791248569501477670055143922777960710107055911031334020790873450465683311939381347019013001956225937267096015489663752507174877831593476413495415139070162554297591809007164134878877046003995018092047432401441132561104955834416187039365013499779122486357284528941640805873321933052046523264495617850024695940327856717918376367533277354734809156550638043186214432528432912891292972200284195870505545414917089365533234224041864242882357975960617847252596785234223861335712086571778026245476990424019909124219208410743106433147669720035785216743997375166203164407782878076632138548029332499227973211529471980184851229119567063723588629440513957408256325242390521624968555041430900046487912956430704177795857084589870999508493758549835535824505348267410913373728916753656977473782867530340917511277502690697453329796142868068666139722903848542342339547756406765514479680459727485861973276747349128613991443815053574585401317346124041888699894989306275878364285238615225401818760680503335385446279815375636430683879407244340321981937533543920641179038869754673430615136006047501444767466850939279632017636836460779779907765187036351163345287805723159630079734447744340461729808790431285847547305263662408567868144607543282016256380914876817606641257189363343890171051979963049871283421448977094106130512483381574208660119602438701563288866842105607808198112925013832307983982054862981064521637224530983305444571038502998848670259296031668900227987575375740671037738316694594698973108238079611984844880253368411447423624876880940623161025404911006455268842957652048927343088050643640628329244599751724773732326158595159970406473990778363051700790573108261503338706556339941264891995406759304305830597496325837458885590734074304924801641422699627895546599576316063302326578434436396553153343111202536906366229761158357056415771767051790713935942707515927412402547054274381681902200555062240543751448269052741221992442093259419865929953219276153243981175543917428047756028441703040223219263710584886372358512580067775402480288536473949677462377559943407172938433690391084719757045565173724487121625795759135286744494805559505019820890178404385868923098089066622784005621195621762471477748236583292355792235327356859338218633894878205531508875891976704933258670694099990284580122345327942426591936282914281770105834035697607193924536742367784915088784425884315527638596177092084801786210953764674185986852325895418353017530070912458652781655576355338145910020076162643451222010797753337887743139141948848442642237667746197618088629241408902157678452069718985792805728411985143815489080124131794961043186270441620663981373274808338972962222824113308805534096995685831903372511951642037972490445037283764236567633408203996385677639230650062562529874450296445105142041554107887936891787406284459642036356517098745342977325905225840836168579487768592464058511516530775901135201170475662640091093098095740211302400739944356912197970731582018211114915694533601632769797107370149868377221177677654727099914362889087963474950687104759862506465255578913299788115330476200143952073415251163639907949575790049832264384743523371394767760873205752362739798062942718921885935693423206549245864823351553591536884320767272586411992056532804596787727527690304176698198930989229739522129268724323010489355562468205834672828841038906791549647127747377367245599080220271098024806794964378615657991673570376234341269779875663530127128126573856037764199494019008505425084384100205751456424192838768546229731450459785240831906903281697095302082044723611611722824407819625904789685233100646888652747241971219735586104813965625548656244972840865618079740933971134776370189581376985061296422542135687391232589831944541051045288756646743299651739297686557152582364349436457624004414041743936045562722733851795493554964110620911906197727783900153110492621279047090598739974266368812863123293029625426505794702397386686140747136355575233133221591449600474252238018378249630366319772719020997062741823311454928953910069438262365531871834775843755402363892928802847233979079666079526835328400260162492075818724882173555552177607857991849323789405394059259122106238918719774634532824331049498184556636590971327821079430141947037848264459268164900335601912617830949191725381719267061428588924959107025102596140475611092417997987146463501717934267530555989156209298397193804542628509983023999464614698111171135579389954025965807356898412126346368371138867625238984434373669200573236091052360308004169923615661202932931578560368103755742500723422291415671031899331579034405846315955017912666901363086042931218403519496085452227413674137238551790003132835415365398012303797339842686101626296746136006235799110742642791134005770747802320639571621293297466883519270129639738598317932312824433559101446163146655409182350873599670121467341097431234664074115057148715778268367627885203886804983332781743433498270895759151545596281976301779357298259547768129789728320656595128010552329106918140985877256730204820343483709705541728361130423396647794323438658803056927506033740287881087580827844533944085272309203801672302393923762890839241282413031303979695141909227538779818969054359423436592727117546402809708037036246624424092054146449395559133291509844753676178511805246778623995243009227068777801841190501671407745059255655707422529903219349010953512256169163889049971707318100420834094743568704450040741240964917046610815347047186017043097580910599805345633509526890518777138342138699349526822211309479761636086378079735953701684062218063706983162093378894382458395501805648924350099628226661007202323464163433461920453560596280344697767990031477159510572818153555680048683650462798026414792034014969735469020300666492154494618437387613852822018148054612774789462078176536613848726195664641160611160991655416376715039612275064952553683901626966640812140631357789566594376614294866622568169398039277366859230413014154891135170474360660848639920788492867024394314754261411425078698010185936692317176702100140944750398207291720273870007054417407951807699143356693143577211223878298665742121525095201541660500822074510154989831416744937776783683786417147549950802698453673194321298319903326200880778749661382915639455565430504844517444897169440008065401980628217422561408247536843121673134779559240982764074287437062686489365226900980494952732748205399805832247786563788928269583777615928908060074864903243793560177726737626083377642555060136733592323771458386543923428542642202838345769310815000138308077914412147137121005016101311493726492934154828603932273289429367523922854565252780326821819775184360838991672107320001873372776087953729244830289553195185093774314420071735678066675633553400299705387930919323749700625869959553190557874561063584963457028036273700243705882102871379257298371539322362054527449456779565325145894811941539735149198298517871724654075767437567221632510460068624026155224356012469357516243722874545170159211252081085092912044637842356262141283933038535135156116351533319436338534486741732167981422316423101108510034288577158648184664531220358977837934973063053496816823483708973589141594797831500053023560603441528577467378831373456794906644883096231253153073215891319762926918719297919026986334422643955006363201724593808885533903495111230780508388114680176970046387059465224516632019229924252269375103654910254406354916776457365616290059307607109743370155991165429685322464324287603703646429619612209036319672953788925083851660453623674319638387366937522194846999359763458143734870113779331480941816883509784150055698702668913791067016945026904914850185042638354902052775331950722803618294074736580171977250179823055761406644006215116371564805411893312989031139029107945961524098020472271437742707844784893797291125818878723139202797983762928338642903690468329651826963249532307742717025928930690178218440432457706387343417030538975083888403342471691048997135007225114190814223427193471092486998463187263065389516949992113480593701953015621995217448032401325271422015097134179208107124362939842330183604256797445497307730907380619279053434879106170001056241336882375717283208546007494236162749139536086363148999677322343580333469454614234606127776998822793907665392600444529071858188868968625089530101103181673603062575569845067903056423189571359026430613750764772222678072356685431287191094710689776392296339212260293302253152717525210159679807048606012808067721535849332229145872876350191374082987611452841324524685529064326935149413941434114465749079656407194814956375961456860112135907039946658824608838259774581700237754417185250233458333531265138875906971708121272480344827118753617677179744491527857099806452879948131616670810538802079352834437599613861314605456408406350068550561029402237341601000838603198999911959315076260010146733520966161616410752693116421721978021320600205276821430020880555208635796507115117501059970233114687398480345705576892043906952506814532140333342904662410222222586633375882607869047149521537045360337480918679659325124561139620267177529299952566707099925647529893075635306085765801752004753036204591285610504094431419359915290651407185422020381689442825417311138040940019563316764702539255578242697877788010421316947374697483545325320862897266980939114490715785386731494903437482008387211000406335067421232125170642470930328776466854546445831725142284448565848638649366210506853023767571382211149902447915732467547852807394352380068976126850478627511591624299218200086147564342564832723498965226396713028031917783643536262637541334251511620624103396904594740892438240096447386905340874674902865007679737965323476401374683951255595907892397534615652406269251816261943699656292515536462330923856588900800389510230221324839678918600159877560466349586612838339507581980594321578209231351081445679117779702729921411342096439368840313533034308837203906344114351308047811416169587446042325484220366934286150905410307536567281988971914922558473167585782700877082111369434721156862840901134294783443567708607214683057235540143476077441134818474262606109465404481862227030890154171788285053335493844473347874051693913440758174644137466016041623546781353643590803837236439992925271218963702809085588912250277988080707933570709388181347903640726426187918700455335846415254725580274358858197624683675170282474618041238183722033513013576612601236362365156819433637610774016109692638612795954465928961704100917094329103953354236217276131081364859229668612038756299008788140052066647611663907618912538487108895527196030790848160073889039253209558217230078413056478298444015518049053399848329551519892165540469540500319544025976538212217635024837568525969183284729113996943022724027491295082957418714535945374111744074218695357590264274566229103352392039118124281547240166811384791789841093230175223172938614551863711051457022050315605115251410297841072027349769530664450068175013790466132465013138843916692266115052352710818071139779863119286166066272638788087916874916581574014254285808308909452889888024031197201200414476170223074823935958445558410307992330927360277803425603660570322421847944616166745170397309012744772234908870935462257822263820631328836751775356051185025960126842364109663362734467492322054622018666936376192539765786147432667445696370506198531213007450504067251536478958033505316082250393045016410522022526579942137997597482429866439018259595022242702752036664210219115099244597334912824615523755867060244926226441985309051619598075002044173072003349247047778761794905680751777457587305382464087168139570965030368909894315473268407811654977356462374975992315525992201270584060501982913907885432557446191845329744334490477358021711149661492973020826438311022759054014916359109146856676082268205091826216470112790800234436513860741365953295591098786532593666966972635793942447262359879503401446465649757410303939886823199955499660241225195171546612721627719457946212446662191751530878833231998674608255309690397241410349219314596679424883937332163939415832298367727339784814185375487683515902284287211978080332816660014503354021923143746636189527240466602036055153799768686174491821261076221363349516332942193197873431747866550645197090871806889930675265206255541085516620499457382746318073277483395924941160990276475720496353763088565958039960010390435449432906465854903754745485032503952610595695368151383641172284318330750016095097486525618772281841632239698690876766915324965228367411801072342217152441298706326016469795119746593688620606830619183302788091881893844435855449154602099878697466758681477323372008405036083602881206417632326376966572352758250176761073104122838737608355423682904796779165819726260628569525417673618831882192773981084839860007091459333427961124852313569245276319269394101653876836369664210580263531797906195761688950694042899468561677800192362409499735274865712822296587274331868907244359242581145126764587657082954993958606057821831281858867710169411234652349213222072061751828535549244551583035222127912670808588138242781257662676747427799870441159828639918398440993894457310405771576322143837845023317709519280423584630342748102116784621199256494572616748449509339494550957278651116499670999130229664802355146437476443092541221484987349845936077867891628021160574537264830650977297560339145773612320348987320717879288591030996037744218445970689358138367632903549192197609705592399781897220688461771912035517373994327924233973979913775708530121704903545685212142140143185403204657551903101466494017552031072557934651925021502826959856547944883226014319481348424250075515031208340155156639115736744475097723021656040767703580520962820718705180325885160611622131045992348843437703455404832043158924841054075496111046248177245136503705182391788995222817664891817523696925353334523296626321322756890092578841762636625190818564918765608558508675868434014626716837810655521136989038389753111099868205994248748170851758804202011185895187255617351431353897251747902251822452399562530675250239590688201892641563755926211533450075017107797889163054331755798472323749616832463967698251567131890835969605994566864860531802838453188977359690577854722088502928802164391441951586344577431149363268033029936499211484776040832608056616878015971525469838820617597452316452370438194993762099673906048793920218554994582664100022634006595956917927986627546450499341181952259974818019159687897386387111989100077921105251045243803360362679493338821999455138477418606456533774026935515534312411553989054028827829380701207585327026198495197781185872108205680425342708755943440349511925137508629760749864861412626701773923812229827795683211743955970681177749880783440349083587898015689998900791372425385075246002691582517921265726737855361066254586369970087891737705337403451264043670595236184085581641642026022472613502506219395515714096533483029804257068227747740855750349077431870293341787716927282024412519631750316201133628555715412309388734521356884869978745910737231897973121257642150307624713057420599874352076891556279890345329515753121877724234177476686352131240162174278090505198021910510327476954555715809747114520397147478319925546742646310236594620698818586701683559497510162378555699672522178167415334974738556071429001865709538241190680186053494409811718816205572008679176870062907287889066437526728773878174748325358485990755993465020628831648995585804661459431928959005995591124091240674863619393929147973806752547405199783449591267579059664082721164279403711740783002105702198071296758829653186727267849826226191760411817684140652013923357994583348256731129978244636032888294034632804031332492990118076765755121029451130969418174482595389902151878756017176864149976385683168207429294793061675627301472270587144733293879736113313063385509655305277450609135112991201805619613632510635064253096952261014358369492232489794593288983306425719542133418970399437435695674275049700901134506791075893928497970126990148901543195625145008916497902050687748704661237527716307362583492359588046640930811321975997545180815202870835026498305947322753778786858183885048653634899160770342009254055951943426486475202150173917096107334664794148272296037683268817471271319114414129682232684371159385327964828061164492994009653400014991223368401621535014042541155591690380533832805949601180442289626818594340431617509053178202183824232635305702181639429000398198727839145786549061299571276189952134017112987898063780743305632729872060351814050580279208836560245191263137674672788513440209819443702511520884690059249165659751588869804360991825392447751748301088031788380153491370413458655335622564019726550177446161760955815794390927155085711366846305734537767033582244179428443133562747749966573507763557079706567093482436411598608001459365309532438556335428343193523971692307974719501803077876214642942172647480804898758782292284184599738541947325916871285332324404719233183794422212081607196081237618559710109512696912309441730012609920199103598403284624178180858701171801575306098099696860650037021906877085668716286859776571119944892955299144816726938658524721939619585976371463300659921919973055002134242012923362224127198728352280845808436657089760850044052731802148579629979660347252385102544875071440187017381624859926678085325134343295420523050436034768451724783731429514010051662986272401871169884187823219748518377027493600071532400678592078161386308186181307893549196838517689361380285700107071872630952422050222466617681949464420823068758559681323633179472669794859258774314785770784463993410859511085319217733470231712787868494465390432279497548976453661031981637579271535459454258049177054984509425030481017183116037854444089512370856882332106502955371935366771225272664803813577441118815280584618365784970475096588193580646101111526450702981525005806687757472859142118852215284227642316335728141680787657885841564394217777866123944221147516005321943707666018231224033702923325606452827483876651228227293255147544074035301019828047661600857227760074557679182889216441581573487587407165061335388822220331805259043824247840256662194647058184443722405442700132472120108001395651829603252395540559262491190733674106330219559623331506985640647427901610550350524780373528737776471571656773895366637178288101034465895743540083357248938564749197149092511406460767614436425103350060242542115401586422062302261982918609796199368084293064137771766037468628834778723328288692562265074971947001433483467888404375865595891290992878256900041962524562970075269095684592699291855084693785122702031842942981766054588597889467374060916377575878574017660387117905327762634663550308848207990536880009556849001158543545797664073658762739624983369187814013274943646620743596335623405494463919449280433421678833952068792750434506497665641964027336539852160053555355627379529317902549880449025882351890332159029164341547800747751613571434146623122061128510260591873576830320697499258674368378446439560643522634904782790162037605609802914828199193227518469688349979136630606010437089709682376993718768486305428339539688708123723987926690201452527237475831240311282817680582153428880260503873013534868906919220425270919109872613013688673816988441113578923463772431598182204545265831987693267262244482232001217029902146039002405791773105043852275097840218631094659000544918778858518653499400587974787368409574198901082809385335528651849072907314197496816201256471821161438730259292595867555186376327952642436624284408392326205402925562974923099913122104777646336991947080097713504260476510369846628745568142020953448478307855445633361962764331768599560815155809290213093696117387964572201528300220970939206262283983719498514533723749954476025567032360778260958171823924892662876918776054740069242336409600008905697355791990678136427920825963984978920130250363799226730425426894840627733956659053543058806157587648443930576070344992221533817379047770256313635265206198766267357874445720980415556137100583403849873077275148125152641168730625656569997114656848801553189535801115574357443628931957859063741009149438281756275079208732676483127659102248794799834287836546572007981846155772866897978586357773439490951314139171216556954326701074819027638206213597752922046147571637218275840020275534870582899488762316099744050783806151136698250692665239527812830772074310618084632696829941815031218956045887445033238460900566171422754033614978837358197536472196157392474242437982580079825427153020419003852116105337768309439364399043177719648766270022039340362277563306247557838409595631158077862135474569053119536343871335306859988269353660417339575710286395130649552895166944230222394855368698594566844443670328974460363203767704864636814005056198894693086750248812238827300526579145019701697527810291987832395567455805982805931851133721264764156557753038953555048313254744344388196249393022931795822888842570882423690989984857005003247637287785420906964558410192146466781571228957386579529363970514673725313185276861265247193326473442768852415817075431900226721462224942873071888738742196709178717493217802200257291004543825825697648513403572766636492084316307381506364844210545385624631633240027011317709947265223701803359274261615307779114567275699532173829614893281926149710552992676896726260287091115441868719727600539416055631046878330184920768200263134782558079301233016834676371719136429385917320360572420074425433774236031917684040683323027698034546653231311986508876114315986361076590942761918002424852114326086518531431819888185848092978008562887087918285252398570869981164367490571381854509555711045382986334872409156833735513503201218003359541471450063474575253180909787505883875039334085474949023917572026275484908560274148493389728943535948336529211925088617231885877664589817973245470039173222458105459406982048232388572442109963500039219589144088804029432904995082699882218880352619649438201516348291513259410551728939197433183904972827220917371927487333084048989464656260801056666809116273601357015829260473438329501954924576491115416657368056612727259234969522759570776106458998962100784235819566303493288852525989724110754724133287942208814914740589670493368951946902087969351005062810145440262173826657263367900054219394633810726724585706665838083566779828967197795271499460697179481852652977283435923448835171512109528930526916873055106335899698409976097385790623276256556646376026780256836197041128077343935334368468814211171206973783079822486537136863530456478711814693942900171190102790789966846835066291722189473438647891730869098079018894151223118164684193344024158557827269735493841311911214774664427836620809002297406735458103450637502284856990394156354090562650791462769998574581468124890326008136286348850410323450358538975610762703817330931327755479327771922718747564372882809558507015260938094160732724668119232891361641252252061122864953711805136038164465400108039855661709416091075574641930608651648771927923346810748905080176994944420681861952482389277875505114574992149587896458687611655771300384801625878221460342570221977859543593818597130967729409135585825678553563624879127899823703289126357602721081064390196955097371705270841924869748188457222340886110839177994860583285617020164090312270872279310669044067015714979099701720318146459885878720588176200696635291464088559549526833891025791644264104246506533211145360460455822997708715975249463392944581795642878499051699300562390692674086205006473751014125703697664244624210445761368369123098085042449206480922076233400944498341728456802080852021636268794670582047011841688854927520565379050581218552246424572438651044899240196567970453974776022083897384594787224572383518560072634442151764662216837508090595003998862934028689182328737760684700721440282280258612444851042633598042477213451259145320416335497139045073936213253777155370598451927499767499096337439857325539830235912892089323989344035594895193070771519654823229915898762303576529101164341385657366465623335871585585474201424007414583688994861513270276446525149335168231396954066949967658501351841782663238382590837595483970607778678611722380499794749416755436062680614030896693276644898935087437536259163120701191253934446029940167930365264931497734610863461261209075694177957355532365369153250303953996476683025790808373412786677002485717919650736733413683533791655423002837577131586653270070993222008488403496723643282819402803170959731127315004772417015498013327234372665479550427493314662323149072095842553595368836661461239734863672015406267320001513675633209007197250368869578608479691482930943982827026847739092524942742364746126934488990180674065774740903362526468278582173225821351610093870226772486008733453189373977951016164637816400291394468577751091122623837268266000287889795556741213427877960438537587723216250012371694933668026319364711290004481918851214875519321633352871382846248000837331093220607473142187640844321686233707631110727709717942533798254449888069308591636723561984475296533548357861501844437878777713285075267263189181074236936310148815029994094456669905443834450721881274516910425009025640211559946420802817394909611518178218013048554626737472158390839878871788744943069232959423816188897581267262901358734933349453632660311840584161432249770185935929398914537634279836346486018244201516434529365102805119392997185646434439947746040889868245141197542368024507462201324554505895067655516880052646769484236369973397144842923199687465267834880800822019659029837370610139381398591855515501131665230563011619302253163621757521345213043928969721071455269861601694335441814200105232077640667785437851754678532332729584781414562333543868549624511195031622286609676396893288958035160542614663781157699152742777166237900362612625447118283795569499085875595190744458368463660061821811350931950061544511025660236257778315277282739527195699928062757474385554272876984562320864531306224741148462741620675842173791410253912558099523245032687142024854691008209293149028380237881413438552455680232329598967285816091788676545561530276405808228877250550975004048735248958171270580667070917149347056987401559551750147737881878394646818543220513327054435367347451677423903933881670504703588177988662933438235076514693331907611497929497063753258787070412368138689325783111259177223427151984677288621410383226273613389312306321496231639649865139915710685682411425558694183967479284496728532445584064594630906124621584023170098602306623660867108838766148391466466407291738228361407952664987115971261045951358293891420689533562405300651388842381845937303270405228491289667005021659543776606181743496002614331603854290020676246543371533176487401710699306689500120116086048255634176379634924486460495328803488657205300281073870311567574750843616250129678008740278849909620098181050646720295249554744181548766895603733595552105170144859720748742269001355469982652447178583488261046038620467422289982945233892907823106956787569818711514217578992637154499011112861601912669542871370346060478278456245265625364180429564575445106439512603050249967617592503005489909294023796342517749089713254458559481513734664867361583145993230684624021592905841424449308989518099625431931534446659923378081314867826566578059567908377486449005573542058342795482765847133852931515181538329381319081846553939152779966677876308259314129582288323669711771536348645786612655250232226332709065565189781919617781668737043819248799756974621808274106501241540521016128760139006599814942793639814800786170052884903937849684899424854748244542768988820693701939626503408017664125812954735934132824980928069560027727846029190027236908163346727374024482030774478114358474577232251474585238792795578740828668160449254230337587535457567666365506847896463097560785269878368271445375375230295181278161196127177883660926786748003989764567969821933683937307379703723557347199125761111989053681184402855671580924814792528571693063613418246793549591757651526296494380756670824438003312611866969592325246112006879219306458211906476770627746264529849176593473763610285562596409662729660130427963509271181726101635013670653746078266382707613513243862117993167140182918797180219837315448398503073546319872619624651243140727724361791662027498586031179806067591196498068212598258203200389840229567037260265970896501952192704746452021603038301134163094563402938663803143652037565637127681381586003309887090462614879961678414852600010691624035327864565147956133318134380280730540016436905905953479589449918552377884586873097736131743031850257010755191723878922712120168303101202250607494811612607461619339206839719491340282953970006838621475353851173790493693214890851106111827403361821647437878390882079446754110203912839392134654296941587048182501465542610731135158097525440254649670283631989647966518178009188529023209827482670047463953405867576754455619515583636464483341393793944342328039622294159650017681652347159847755731882834806160337529364492226041362677846953830834445456805971277744663981535171203160744285289134425582815729908313827384018716931808622313559603777806402227064920815889418527463198570274840711560564086027220574709498487949476358576933101416066145940566060137388507163293941062635980752537021290369366297139267552958574650813802419171568448808430374626476921434591912008049573833990355910446468229397596125148175881393997860545232794260609121104599259601947258186523737811557904954131937288759569248639996281538909775773006817611103259873766703840986731420370228942677905029900383189272160942162205381366372110494554161719448155981508469655743957459652319129749730954639626621796486081819556361677858981920924382122423462237008789619963995143950122377059562606683429001047311520220378464864905506581323268981811926769432255824725348162134230913312819552491451645355064641355145356479710595208769537714480780676967127557840919886904924639773151233928298389562919695646915671297484058263948493023378201083567538638573916408861861801312210698798460558117832671003843289640975927704553625033236029315621874552288089410816679702941903653511105195372372801808360373191318765210083149441835036405500778417898125564682470765622890511978190450776761008369564840173660808467918377438377032561066283204043713535699656684101377932990163431960331609180968414733320201495807409569989304288713413207874568693918010169188288450895647643129720072725243757989016912783648200755030903565016035917941784748503818770605116836152852182149172838313789685954396961095177789816570666007726174464071263295588292858173845673825473271914289210878395294929383064711735768688171016226883795886724510917613048556936427848295293186003928758696065211183150433373582654292943615452202139281136527553792043488435745742672753180229704589013983406281587156813005676208820127541440463389836111443385637655434021808974911955794128560928769445837517677861883032089095569920396312954787790244235319162621435181331177300886763686526824753883881872247291944762340720735942447175251948587374190116005306086680742581834775604810726654480228838657731472560595511383532515499424018295346992166685446968562364867403355840472435154101333175885088270779029926070513328690429379978683266907924270037982525856430185588215615610179885825779700043460088778893554059018135588542784976960082568656615458635933018694816007717169940556771767963915461316304813395028274608863658247454936948918262657016544792085593904634881850743673851044992217433644396115362473299341353443165368241779244891336896065168784240347677730609782449364521484020410606018644543502929198840200915343602995116609990118558139289982478871729227233335667615810843327272514645512394035844880187030115316489357020705921245660570130508411366089189298633308019649758942736863650111164477680535502603179194137269073476210921701368069613567400922047363346394829543789740632101749017851377331380236912330523332622487343925447357481914546048911742322562609569019952297214603455798513400160860196091323005957250163194584609793079663968355037824716895307614497598948159252736971230827455789228797267994970237131718537582938446080095075442251513222812414927723236277550244375583568865308603154311445197641926744649579775777160457648344005266612709799518243661087492939128570072277730149789199092707922465100301478905430447005331241815924222265643052652463303419908065967543671483921921931422323933393069147098033580529762556824854198152709311165806480159588691273746957422696233809962031014682079630576271420493675779428145456676131399574115226393647304053100230156800517672492617499763905515017762609525359667024023434043359546845400408945482336459025150281526905467124272644517644385697445358012569635691060977580497306731758408160051015309403539735066799995929594023248735496953903181956655584225182820274909856908865597969471755865171976790435903161774533671672873363912886308329655325320694155144292354036566643242778051921422675295019474490119567254007442954917772895435303940243110656563907918995311293066324451909026156082172926851111441500967075517497472733113099001640871146025516852619372950082400538643061378446595912090292425096228611010084949300747831874683832975520192553646526854056542106726333491465706889965980152936899463666045465813254273544950555398802612113650830499133247637155391818601916365681635168968774432598818960026789244303041110132634780755315853787098916919504433420045960240806168056234583156168461635526582818012917451247534800891807051750193460891884145034669358064054903900553305813514522361476905516443000848675982139989626300487097136998536397335319321394744574373162702438892843828168570791596744737934564564558716210780334702119191429789702741161331809135968090292193542540349625158134145502990847335558028032990251936255683259028869681245420646519504105394750647182760596225573852303955330609897144249400402085050738916779521556864254794970943612073474923910920733869587520599958092609626448955803202403929003697207904499715838085643097607283339029643573055198654341819555783217269256121212589270392120051982478346592457703492938372342717821315864886093772176259507465779885677453883542260391537541055957533707337035353231244451605449691301186831167630299049038882436585378492939200455390455603867134016600636085906655978353207127484784163020371680186384975712863574747018322360644361141379920672587083203896999967785014751366189222243443968572467767993287542168166554553629830602072995448477029515605590622353579574970752392668703112788408341756268983829267037851424701326614426553333835405370122294131499988330035256083248569639127264132510030765848444313183392547226728866314271455084831849048916757475520161403487580456426201957955321271803243308081132481343262739127652817245025056382171565085726214999833766392161156604430414139473773639060473309594761259184429284989197266369989762667065255871433635271099162825552020825085245080688020184951023911552171038633004651226421898592752897520551191076725226582840291943004760477630143817939165908443462237480696614343654530323902564992844478088864090728145714934892169765910649717943885103292205722314388558118678858823205409916400110290793828709743486723260140299766481838577586263927583940206334871126798760514805744738548722977634653987719356946693880667179299900351259571362291817628026753563665893281467659668303072345463491973433844027944848050627910906192910667925615036896168678838536068210559133546445758310847430786561955923695134673276521872532403416609465984564656201198976131372779918242264108582209188235088794365812677459006313038563454206835474537581829317658196774367369936766574335523847102594652691394542790089009909408345068233652838941037818213250757126293118088347351080373177375873987822291326143743827251262664670420449022638044913382386773974334247260104172795035599432048858162627943976440715903657404597823194598128168045293469231506868705124425534059816053903058441853844363338452443110041017090869855596750193084829096002877171702407989659725634724786502845973444843730004182864276802290688614312936460085993242521006420069144097915144872746198377222958894399258444205502245534607219947918066432966264687213376426119068677452163270033150389946785246344177232825997618259488899199145421190260864276493913526281226820602642833659643788359804118208407609569643304042508916835910527405162931766813474766702114065061131702007123667226413596752778072460066449725898458017722690109624998399144385836697672154825626232367405728212903324280061176598385147928311273768582628649554689295226185846022091984994335342430292610968167512992545439062804807227387768462823862175013116434161732694396694938076365275024812149288390133392935816171834108241967545411490732863708149187842054589470436377635005992072529512527458615975683027047501520438573185746842715210019428994368445919082511002859126418221552224140594031745026932578877631176798639587038960538083667858611408416142400048718560143325924319006447472846689776309664810472686571148435152617032867620704857421276446648958125165794495546467527541906532202891714797282128429988124681249460285834760160656218742734793350675975481836647882601314065560310619324805739594220801332546726023792957671266534120398780547748871672603793710714008398554516682164599857952959965529240161173824002917052223515152393693724976496642513187758225875877421709225024401807602820936772117340575812775255060662152112578997752315929706557686025206791109678252631637833184117249281090229039222394142781543017031450597596955633453675328674670516509289253619494407270472631284338202880721439347437914372942179406871177989169525264249572264249616950556551405280992472497235568898602169354570604465626526674111404243910583489800381945664619165852721147030226698904385148875601940213731883890268352793735224880586267179885794859266945925943740403885614568070350596285570761437087376879792004031766465362873690968465327305213021892054517677525783796850555235363777211142570512232330228317065813596438294175617440656433673339359845702375166001008532304905165371636871745619540951235422262418247632978940750298112494477389611678336019794084473962918967731912097400085471312322143402233761001830036347049276227141936034102012339399202507994724206343743050789442815509820620852587610308864490245514278565944372956764261841647149865286382145594015308573317835884379809017527119087805748455433411153808436929739870503025830244403597053795846575534053937655692949104159191385177421796970508738026849964098375284667562066554252495435973207050342230742290135654202719266989702003331106423262638082663528415477242347034929500729143606682487209041136280758628999271186818697543875175141556672528959836266154772802306924215304649982330164489507400581259880542388178332706556351940792197915413269685056706374230476598563511617519067214634856153632026035150620322574892260640752747008779303526965028352411939475079408630896259180340198791166186395509633391200074996099161116621652507275107333076282689858662289182352645866290809416828147624826824280147278667884115064077683768674553054052190990301336739236662616909964808381532872456376576748000451691485179901760697201844592591292219007587755403910397224351736753816516177883290633888353843754036804613940186590873042123539240535066924442366394824978172270579880901854914457469480192172643291200260198655661638551947818875777484585580893787532471632199506366123640332432660584817897320869316072415590659427122795989501770586384687670423726789445869982353238216413437319778817701026186702347046330101947896068818318757316236471655123738344173199986754764018417696849304316741954794853800550886949745887866316848112881157220318594424990794297657615875408943897518761402002182697017807759995229153944830072679729324569785179886018781029438086762125522009710974265820352816552157323480010796221043835770466702880083107218888993349959573654920309470964911279573022275374692838355233065286375021550709330694843970609805820244914889048600961839597273489943351506627283951471653976221828621170431133631235524601612767784126859072676456627339322786571976728211289321418346707173489166627089470431909996681108365446448040650922632459989968000643478899083058432811688778366083516506872304966902722526338894080202848087017946662246786189336332115476452741280109028489659604638988789825705606878738853645114635510333991269261860489670149149107513420363040867182462699735976700632752011339835418543338254340898548288413814512581124350606381308120913654765319061568210827817473168623473076486645327036991712911165404487842483308754226305944744634961640143394224740802660516191787707145998203192665113293822004274776623666710839530822816982488040130061974872086278051597767650894559866863134437047548642348043324523386888070745724679223506127318378488321004499397102503325039120283264706378902929640939479378620792232709067326778295816678277204811192391500006208726125106765382901029507781090806037988876982562869544765843921646449700338833944876722469093342087627477465247128282175967521166979173074878879721570418181706149016449015974952302080912439580465182301271985536204971694760640855629711872031580022633060473568932128569711802925230829624144309250987430634014844098617360376785749470228186389335064516777741873478074801132063310412192146435444512927292577177891797066516769018765467780391064796808949457684274417400444245189161943648806356858716064580488734576890465249602854888975000558477277714702922558401543813184605855991903525353578874048342760599064258820303005870470123460286085727381224447622976451425138468157091254482993107401460992291971956887255003637088167263819184065854243131928621524626828722266540829453583856270930506068135514937437054589004608965763306320300349179964507773663535324410908494639216181334228587793211409687145826563427848229699935942459006424811206663735821567591961168913624633935866790438002003125770736508151905012162796954368153743389977900404984791623746415543631812640564699262697152195114671497359493658108060807852935004114542582402605032186602498300048444112720628048212630833926954995261587024714414162371661565448410113573347534283194824922059911667368259269260778349012757633504177194352703431547033795181210470428912788413850479776363591243530475891820793629970144889500698630822280382410714023834865244994422632325442040917861525009401589164049388323836050592773888494965851878547766168311858273236791761951691582439827080938334446460104467865926768418290346113184334534898547699262808494060165084895082266385653630391046272055638937378419270729266655861526476968639420272913665582891834762332397243379881937143030785990292957494311807106677718792069569569895765632976011475480784758050770808816346257328149370553162391219455518806071973744348290011072785930365357647201692420895313097303409555243246208338326363208331436509628761427186323474607641929335213978012278669784185890231577344863002853686350530453728055626182316193312157119514087817065718546415915762373185344843159254826972591072519326512653794140763070126194573381340235463882525023015157570209032489047949544876630502013905176035693728348009515703236617761799786952371857998925005154493782139209625433860527249871377037527521161638305784589696746658543991981307249676428060956404809892636727113118203312174948334052026424652041136871298265883102192365086317068804890139688750222893030007027277715385568476989689773652615388057706766506700612417954089342665508672822439589480094536955371233911521886401659197168270230997113059459230190264946878935671355892305541786259235856442331299680102201409251315103567904630596621012431755677138406630372460484889906504818198794786149337292121120418882933961704072832323502407195212303724120404834473868889415019092438190071219272123682538695876399683838775496908940092940264449673143332429727575706228907718766876333940055896750486850915785512029495132255626330325557611379501855772209936805884754099464262064688712847403541402863207997581751617085383157668370627303578115179886918225283916702502727054607301713494908463617001491006676611172154775621683286083749959514081933930246332365155243020217325106043365012069555478963425643188097216498997642839585776826853557424605547121083676688084843772588230500188132530150926920115446353321554490916321205014863317735410197786447077006811826453316347639565604349731876785748848318464179082318810327116942172979468861840661727119396946038059832331795517700482822742376380451176449208578840673407370698982012635779202818514764526633352057764049364642152044233547374613168883345966386143789102505660356813791071304627400041067573172735510194371955912029526864852630557662337869675941727238654395037242458114964010203264669104908296135034133645635089992294409156203953188015105893701296220476300376023451537085104914300060002615656174344267962188476888467010346785505550664473693823187945205112625256989047873711201788589886016132107414295503983349607473139500983416449460141737810373702137890655523885529377603102726125615098914602602141113692149921666487675683343650099868678809849332908550319360103890325432253451039963721647988809549553132540695597952108549339634837245394146463371167366864998689280928674220845563534961962053178528488634144440862058330507299338655684383665085339113031849308182706115781787701541492337973222817616190803511320981384765418728308569502793245593610291107845566847003413746043599466945995983728475459541909515195105915662059361577373045471192835308976898749037072159418790928982999611063617472521829291531926054056410725575207480684230476652938071908802321999643146658784682156529027024337522664840007231656352384254704806274698774252067530825085800926153888873167020261884515843725075455876402144060584325739325565158772909333319834811160616419420916514781549546849526207590432384981086928420705765113806194811295842853568142469977902457545688002132638821338650516375424296632497060520988480548919268809411787022912675149207774466627378562093465123878226238201462258207286337353005653293917392371584059485265981929592833063678605336635428736492579646787380160653120211297626716058892622857912570014895960450008763523582478100695284169191065868692496216395210057109318306687471302425647376311120845319024307982067184819717099545140698839216363950625371831483642798832776996058958235762203255849316763552911430607600787107423103469352873180717820245630698967343006475159600029042620398220728495270640450998642188517804197973386817148712655561513913771015978228539445540269273890991848588709558874154579316562665909386288019845798025502836888434418658251085933550098614635178412943080332681748334299651219124387410158105408056407366658209938845031221642191980644769207460040543825394516676163231852207088380137433127607069162770677973613281848316673263334398851509276122722051870188629348414344212322461518054326265529932378988189017120519718933830986519241662291543479997568153914742408829918119525123013873409486584611561571931143523480968745701297851850263105151264276248136216741107141582716704626995836182870928097860602536201727430755723686964228248887736762462264963840047500002578661311427178642282095244041136724365951089993622156442862418554901079609495024798218217999316478876002406943660214776158463985049868714601192218420905081872942465864467274414659155583077148365525636262843899581699250363774896753491858590818350742420192134209796763204381705278149444292970802592627010070339268970775338987368087915179538187518711540608884299747121925925902699186107587189206484562123415390053142742143020420436983797888522022319411140456897341595199429141148914396166384679951242103305709174066510326703769995698016860831769426384896013145175331426123921182750855050649554041094084761793640027822467736145947673446011745087715568134471349959896190111566765014114650902490371101227804397363614693770288584477985856080212155553975215497715186295604357229254836686805915125050365392579611821676687550603938354628182078730410824399253681591457457139105393887952389784399116347184917688073921308046229916604535104364380615163325248460441874355741346533689763102012049132064474136094978038000882749275581951987904529671874034207397734618347550086316089529067696561568968446467642965378432433664192963492795375650331593912616847944199644321723954489581180056971209927910530780536264168719680199694415046087941124508725019478561404423129556500071239951441795321872390118439369307267411826890448459882619697465428816285075062735019954750760838560184482781509612276036821347941869403132119780477107495234059015682144263711230687167021750251894649351288096807265816788040485883892620376761024179186424237531784368587587998680333136970604407941066770370279069272736872863129798557390536086411145082630539672198712894171455791469568946262019368334047660193204803474025624721057260495429983255656422408285253642863413240466965033630703756555286111990374424218763138782086969420060755685737322330286941654682787255657036945699867431457045543003166617735791717898571807391762278806514335677472451342858214123638589244136857537268507188259026205398930098726449289057717732004522758435034605410379703800796299784555151305228833215620971302422945728040746589245446918107516493057997987813470961335853535373928267522275247272544171867830624899436845771081692723242668982600130851907837963446411529141680910060487940504794744057418564109024810949151382098198072637340900759443927024484250538498598395719531683476158820600841771525543838236157284630804274737935226243991703906558202509155162205072778815468990385232109797320908261988112196953394969313348131582654382260191345250222444589125077049712952457760102925065674850946442143440003246672310166026621071917473738871605198190097213921694795544697969981206523376960767958787662331336692584462247864547374183823050039031789547022227249593311032948214071914068288516425234808108384847327346968245282196785004555359942913793846862261714979166006379896269577922978590904849674141174713455012071053906439923702845308655444938086620263376819383874810547956912602634636856916518118562674245337019661854135962953616545166885265195793417321999517873948197448850219589810209537069928933917225780634543991962243214314521442462383682659245231230500385630407036472092150217479397981719545690560272904155953882726521206771204025886796911830662689144222349035159451238436176296391699794523205787064246054136925877080962077258412503808944352695906780710795391175657462192209858849688959497560158806928365234193513123252396483029063140812152304328133151313125532203672820979063022780978693814526803105972873282330639949553336768794989622717511664242854624483667838945266607412707794638079027525418648466215267892456598163303638752473765624997952351880076728122967258575730410143475073839603411312015894851775065822348466929565685978667491467454473217995393977704303346494275014203908195289451881331925802161128336491412449313631964186005196453520973975332130154147828869887961687278681461277753503119276568101597598482365160645751348609354450954434710475914304237349981167199129101861103967173813981996193406414363433715745599179030524856010739065567989708738659804685481874564140559700090017365832060350874874780497102650296443535772204296298422005286595887467773492458934482300569230925369763703676059780782440815343971607656689178275134753197932219248344656071723466458520887013252445314769094223187941489711363314455844222139643457016212260188298355105915709691900453331643089114827918703042190148021705577718978111879383163696887955486683846664134904558733439317949464664461243078805636385339346939739443105666962163488084961992520102995339987906725216642083818666354206953293544208601376655704565805282090394809064806133918370942374358156485380968371227136766705932966829749549810398792108263685303353804213817887508674623903572672434932999620870023081283574969132526830300181009238220542957644348159321449347147812816700724999774205437872284911674026984210628548394168350654104840002880263273736409910066596387656369868501708712799552832578807032327212384635408856498094108588516386234375594188303063420737660282671873148019918648853983037805733907056049291320509210319089897314560818246282394725179717664702581458216926973851355531933874406869716603785706528711534479564024669516618120399354181289925059015651865495245374928106468188965343685358962698839132274378791903582956013681253279746602198874406274058322849703586825860058520370503954963504477533930590390063409392280525811654629164408410376146973543502028344074527675520917620954143357129622949779393737643351501005960527536175216187415330129581452176230305001438824054825532571439804900615986483582982675955026542272760083112394857404164251706552209561336975568723982576599647280450852351561355699416802021199464443689431736877432728145115948920789171671664343513310704459303966214233098998329776862335928585911639620194562688769317708442296762175105795553959470847608285260054034054815191613999131479860164861570350981859464666265798455830695674902691752449511444060960512437594915306008350155037489691531261353189276537495663268352257285536411222024727351220089647729299963985040620273553133119845405180068055223227424563054614483619431180313008903057571453668893792954914096884287803842891898134809324924498814226055680536319464525820892714925527506136083716270861686444903977839784292662446260220700249648705169998705014266890515599217374997475838436883304941286746810073041667090011079760644739332986914728489613153137082356144142296391505133319479218977951472276643453216775661056323941478072632553855486642057812048797228065525265086137689468551851766054177991997416676719547646109897870744381423994913763466339918420352904829572678057377306951521506415473380165423225426507676902157591797096498219398588803786139220204570169124387443001091768082475765839325193990084974578696701906825141312971604892530409366400390408889961927757763820897175880207526892120089121731804074312745067265174072072133495186189333774742361259438884907731865778056517527276154561730772027414308802946008574140566630903110587869452411442377568158236034682015770300748836541573466447763416586808023935529499716520842636709752107713536893857171625349519509172257478327044147401347377072614357330965793549226856849178467061296739785495311024053722339012729802864871670467215103606039934953947776819812254754740998544523497707399988155307940017809606180737463299809690684397198135645973136885751656111719954840106725227250989296128788943558962900747183180563066605816403569004698451665404382248886181633857396838483477804910398369709438309395855876204932877506485591146992204117226111887010608486649125046843442715035835350712752642107965643668434721515119625139270180904007003993394710135478256080886295225943846044966758495480306578358714587096433459290694979725458253194508351887196284577219810441300505060801844962238874303969229848221240392399806129508092101371693001037912964671900473576983348800841778412672619993284360026135141673863231834677723840975985358137097929720849912580568864984904211070973869857265395889119770283712801602325588324361442042821749408392616258515139629567885067293220940711139857179657427617594590053601489276683485477946393587797098885376113512301243901624300274713260998661896209042197892514389623486755182518129385019777389196164155825169382541317631420984863832223315273545213092176281504006366693286666483230045491153194153307540798967308084251733384003801474617566692156039441672126087151585751291586618163208302304380162708150809788423493867093590539109975959605618526261546509309272430694404301506511749537915206224438673572220961822778742131254042427597228780085110358019808808841019118026325989282132616176374552840049237241315244747159025495572857860298102083761776757393157445308969639918057877861900930045249306733819400323207695615072853067727930985048416946925205295488555649691012877811654407463532617434743000298785227395460629079466674399861690700240329713173940587173184238289652011585019779083876989577909097127106317662509231020329616706588639351233437872036413056465473498873643661178319360439455326677211626496179601460902759864103031023893085586536562573901608176611005485900715419102284897384351547748047872474425951155907588609107731797015653816385494982583943220500115743234414851891689878059878039169148507127970554723735216644954212402766428985243918353314077957411845818837323719941556314486328908302981631601885854175982319372694509802509570077838627163031115164106434208650751202800661180534049882165718065905556970536689911576286862206837590774668933634949678708741532683664171737541676258638784815750989256158276824148676158525954290329330429994027658773300745356450842428360495356914133297443492978941658233254712303052233099754641355118158227992420471620066974072679092519893437539833942950160841695136398044401501549269226618038476352248845136285801416797232996877615091169540995577601984901798272017865414819382960039665221633419877874579807526064535169969078517312469719835039065028914345212052887411419974550266280415221956294759673891748615827803683798792096354163255585793359200252563025074822389283866578872595711945626871942561967322102435570073005284535771255800631845691402232811779431069580531063790439235448604059616014993378846328592031617290660965376060913930028969456150899383632568326567427040536432063729974888539533776480669421075523338660448472217115683310956653334535263080888836116535843355787555834322177868174477084477817983698061325886398660905217541866632120974048873700987237258021555896048349009816709648777771381324004991032726996616990274971476681972840199653755725759556376260911392110923964933570060960640198348375265903258477318959189764396459556707794323921152976175672190133476716760293203788687319129913543934081080079828115533106106148316544286083540784944989370662418060460835441974731358335433447422135601640191088261268674690299252558784563110146552459533565273225447783525261877889921276210184431569466841161469238153973515787259963188433252796558449280823408215843540948177859158049045187201544525994088202712287733074180859521909121821582906334743614927683531206030070391878992724323526750218268026482752532436236247559908503665335803690953126040101229521095852656992767904878305965004091558742222126475006217182365436194771585785115070859522869824537387962290972114105729265850509924696407634275626645202170096823653524457989717125648260112956591580478318463150866562221220979378356227214734908980060483769995803496596194040961686646303332181640981272403264816652612666305899389036131980966010392577326380646956262163711566588596491769665447141552985231059871210534079598910848583604239402907190889448282874253679970981455049191101130154826449254112037970727664010825037275031483301756270932261707140233365102983186976248783597909773405561497345240763810726595766029936552344534432516143054138185554468696240449468975141524007501832027869469470530422757339826396972066849184036005933863732740233629209046463629364254957049204037962615804807366793338076180600593422265819345972695430078821169542032616177775817809296659824346944754146631696601043446279483081112702254204805008807718986689814800982604759123500092063529075688951801361858482745605833980252404575265755278737271898273060017366113469761869760206501844718077765603795140395362608410537624981456307820919732506495355267251500334166501135771531237078597641276912956070050986049378950648520890751532447059056348502420687125520986640885117926740336318127155057511569058324883508755264021843845627293712416696887608396637650589415624826409475246638972998834169643743308367025722179188050717471793221318389827515779153035165421418436430763380607472447840695131363863013167066313437170983343414072871049967210533670193726594880530803910041330463222146620061338514130242723564238280640989994952348470334976399678444763031357845766454326642188996644625509453512419673709379347788814470550555566699925791027055035727325896547979564712886988529389410983887155355345014183241837328298192640211246564643594744567709157608524051523840651972414103221859189533577433482409297028120501545769334712068931643943391892228391530599783551433561928103044345400532517282951300481384711473197636319634615626852908934289562902340120178348327233440774119319294359298422111036881744372015827305484383259635111318459445862269839262686763419080186610840147261987828946678915604006968498571314849418424774816627967006019507730974775662867087487460901298198635679124105025844057896369549546257987999516887658883094825726997641428453353906929038887137538213520748848147866587535715731714139484004687697599695534452692668896844061014823357314049468679885644613944039264605539262911142060781239515284646660932856648075760107046424145546845300805583583446206136489589711689978580586804033620709072751826086433625468865671278213962903229892816270916449699550718318797936480805726165761307208102889909869329072196625030967516127353189631090735491687438735281478255361860509693001031967592646276502739796839744175682692806620065298350777779281898341348463522515963679948551572521246755790396522214246471252495822070651389936913602170118452096208505670360751491993506947471382256762522353544545341843780356380116624482195834469789191126584687024570559382279626826717570651002090431200310829594728334306575039310349688977457493150182783387127862230358060830556307375680136159773266830360598767102887932324827040351800254500818551295078927826981047476481781732148752777663381819090516930500525456354242998246789160786800454618013826957326897393471712382049890714982746302611081195643073048241634241182059946335217935716185858429929335746751604791217052779093819631806680306903685564684657974055698910445575658788272020567824032380555203885401882758053006184817387110778385684337849657203905840513287443325571874642801238051454177181746084958797612548061166884335082188305797015881668580590263178621831846859639885272433630743501947808811337635033062500905577689430711922314541418678408251050231543794300764159819175722928739295616176697602935996565770638508196574774584488859779717056099837522865924110579845560922940263483010166526858300655685798710619177169055868021624791254965249319002292488621241222454339624590060260456557862489086096716330451813205533494423928702500793266234768165346419569846145574270160162335684500740865910991549201466711486014382482938992841245895158514624790611070074185036845714017088646340019876645055573949268665272667092041917307716632148408405039920077226627088660751529016666362655670260945554685479110954182767219424314310382601446480467248897297540158820035625220411170177457628389404555126296640690390324452516994239503826891969194495961181685334236505572427450336977515825426241860169534191713185396599043807102472126031251388341374283793155187057177985443952189600989345267351200084328566526034889731943023443287548261019966878259054402941813582740729367361265342555999186473154001565865767607822202907965143118848501932455344175481448970296870942762848143298522316090864699818121076833110544198590635427909549094094045267117324066568118036945646093211403119511954652368733953672869362740761286389918089337135973801460999383908965005613520392718083769597769344783439136639604049948026387436793183276267513082318067392692542599958083030663957824906887489895988336151601437919518866891560113554896133659096761314755180653148416825966740208397098327178006079846594058236095923981462958243205446135123903480865322901337409656189780666795951436542565804963413769562570288698352423700266454908405222591581735906616058888744232580985914160454326108182443469113261960078947397334226558992484509753217722773673686958196672352617154356412965282316312644232929228935956202832957529588320189944405334129680021979358838562115601104941042893237213331357036166803830725737442729510811749331671316123175722764624670659808617882673375980325547523996571359537917598644262148675792991179757121411980785034516279698419543335741149103104858648112859430030440775749962780749939969523003352807521209559281946036493254065699506134384078037559354574302040228856984567339691206150391866832107406057535163890036479387859734400899521395577310071639852095254548647422369733843471751865792302824458772759112989135149260687174338516334277081791571764991880409148625186487036992254964112727604736776765627565713449397388507266025465399300455446375684593257914359563511694682738251288946545381267853804189220650177806490038512002888601116788174117555335822882430256916092162458550215588302194776386731948773565924547503479799820510076219249467324870363697039649549628698419771735495634268816614969512967555263227599989924213734812783582954259771567130168886950795844011646019480835296415906485634015653621026141830567046455982128679750019581178970723317890614090081060033742387320059739026082449603165075672442439156484038904918721755658656509372859830596104599609345427739460462583131245074917694420078010055312513371468295593393566209203526045480009750938081308801913589443868983713415955987921781340735533958015196383028310817658066770557997144592154487298903915567108249713785725384229044908444770284752056917450141011154330419724236466819420335115422841033648153403145860412535340346224604030774996506929104962536921481443718491748624371389882336015244024711131432166466308134711416910014126249682520737655138504486105647573130866075724885903781920938348881731636962312240004903600102141200436292670639563518131824705084010080452471450991832774813254342024830062388193168657259591563571872714198478261423193587912624664554192015077907562700160406351224565293263290821916984750700421305195036457510952908373209314045284826177758053751889535383094976023195587915499144780532419231605805964429891320401185321759183891024426481444102839049266427153114493069469558228073641112981508890478228832538608846325109195398738683197085805801358757178214519200912761667187657855357978212727142665089135075498399327697481502149835650742145386569001113854589948759411837044806681212236728784150898368983904105313871474607145175257233581401132998313988168185091796300309989637891206419052577537043278811377257277526617005406660844574757131474936808187398969480839091368341295618601354748997987311561815752273814008206819153754674383133497063503231503125206565921941645963824671631803579305607834465152449125773915565449229984088713038996851103800152826837044967848090304036021483746533368907226775733791099396207152504701917058790683273533018002074256176339376429692027875986116544478982277242707595424615813998725092866453780650396991593075013062733080637363107890236878324935777750852186185229407470478512995955146484599524975246310200833536995425741003027954631141615484324756031945007009428151152526177322641363467573359889627247641495056749287816672999473619415395969071321767248703950559648222379316480027960778519806424668068668193617881648892866988248885059352068631873249445251726753408718363980521124495563003016270629767160459015781523394898702182037135952448848834224077150745499896507110785655200243251346448696405716237835199871648842276060304472939231914549065717666670553778122670288602918829168441428250482497475904944217378178888641288805299428031756102678634635671140556914763426533644936762340622419971985594727278357386087918419989327644246031089223495814498621446874182349214448784564730559853686455981294235339587490041016401305773708279943933467053615211953802648116721691710152783578608706651436678794108771128652599613078176205881806038765868452233629565778678155504958827908306564418691755314483351456695204106650035150539422885426386305510787110606706304506243927735298252978244156542002626002307316783916659938086177557219718948035838618807969377422912897914628665614439089034042384732968420376895499548216506618536775028313699631956282584313077832376244367652628484727873059675762735586569245076157451066476334433961261701396326492893031516431623526574846266302741369724379149558813390415179048076103380088919417089826532542304638805742931692685298466248905022139573944738999237103990480138904308492212527980788040783370117459986671214701951812576784610847441068202593035279212178212487149647569356806304419934723247986048393346304456801229710011634054964204218596069695238420946116996548213784989978984633141535626665643827577244715211405414894725720271367805832704070755685709530078307069184533950479790399457981975430693451818612375564017502492289715844986341635807333603737502955117965742744650154299593148605474409301025943455468944668964547347365843859854149883749207488263698342663574075490543104781184361588605009054622185210973266393830094314143934884334062050056143749755619399271353660129536066563875536928118257069948802797461658998229770807977991855718589118671924018679113568953957203745170164733980074417157363312131144587465669768167687306351582081187465034598581845423256845132175496822614432260313323370328713606749582090913331327559079759189197887410665404558144715741917579805892235935474949912187865460223217382213429567959793118363151009258576137308333706709738327871626783794977160930494692519632476450777214463289464397513375174332994335693350175819238176752770782441731029970993923512135961060678939910461354951629649931473688948586033538042881241274055972173209856879203058937449257445947206608755859544446036959944719234370041275741033985340859841859592782917445049467003426939907390622987086413082773253678702839814769062252104569287410873296526185175838689107124321679746948336721717633993581718343172237654355542148181486204237388567875974237367350797112839313665527299107300140863066910733729400433346677860254174463741641663726889610240796634827041481940594249325522945743802655579346149021115911677414648601958983713557806784006125418407492082641309345420905121765037800819329992739947076880009468654381800837605070562895611337599134912049408241836415297214735253060913492419184906160191193709954953015033958535198604143329822657227376663232816372206960265295666779657122472251452458148171229028275156384453142406909795477052765656132760891638925805737370456264651195325265060150876609909401839749237306969251670927073456963935245538613774527183261492947115713966152367046317628785107349799420797342604343223663155186923228980239936619468583538878904060867980044764139771210726309328065656172139754001871355798781897546180575928711777339102360121906283196913600765859047078096738789009465241089917971092111315231295831822427959005640881575529509429837362412263281985223821874453117592198023892687811942179835239329404034723767085739173533444026254459520089742523635935769476037701632001876724016792784532133251900963342747115956972748727211966167724073011996376151893171246198798973280338764233939028584075028410482810962461727726228640263498913407689032987727569986015868911078428449552154660544506949300712093299944227200597702048880318072771308644038656951995810622119058356248633590021723632995490655778643242101629271830774513967306269151869435252098027028400031035205764296916636759873595896065550701619208006624286347667817950607488958400606201526223051617260109918878827200415330741485965609052696510440896518173448291779875827943383028783197963638125683178321746238630275897563836076555298471528328066547089251252070177226922482168271217591534939332946607990387028995090950562653693670414434254337693970134080106817442231713365850903938516470201646118225886978444833084864919893036808179574421607645107601221734781652619655415542312849233098797149315207061846648505832207043512726378503436316628964813017508415174410164211778542712927765751519925437816438074896695396913317775690735866817825320538263779837954550681084160325782031398066791283686879306537568983227970753053394384684176770212150084484026613429797440032177228838026802458074812891902993431422519394071256990450418106085154214853168171442453939222237203531417592091322241640595720937542357589615650174712971947804023933990270323507995969172838612456689079126295271217750437228603234459474593315892222804407156081207524037436761756347330706822346845332795977199137845197080965080335914155016352266411775385574499509034482741518231367456654151504516020809304847393360524363979714912618712414012025072370626073547759368142928594477864808768959794926665264160578576653175771044685854041523592979923363704427451436062232275750280631272080608056473737749866501532034755691317851953178121951390295806513063209992534889795007316400741254470293771032285954927907706415811239323732361914049776696663000823397911993803556323435886950222784516640333683201473572053693870210205552002547917020349642161383745633567493742236947897433836483009974609397908821922586950425945555196307803866600741378911105986267182580217156003791580012976009989925990876986213946644191697047379755947220318084538712021571735726794305214747165152303246275830977127765027337217214739484496635803556844628038841559349940756302344486791417917663361475595242681819142437053198327527214852416339906549974079907560144737564925516583711285098196289242939130194052571695269459114396427903101576327074400417911737499963368272308140428706609573095647311026807343076785788233029278930096722102610959400709974534143991812479877257025470187502269619166125488233965694573769976715636038680635994104763432307455038909291256281909863084639845089347873338401034367118608322873873192031437625399454773060918068420565156702874192447636548268393885961853487127605010370656651995076540523517502441573849827165362702932373079570784672924180382582973727158769167168942513696447857049597811593425165566493865961724631696854848707188488508484104595628218303940295828238959378426655732327504929320630693378367608156188052253319722205580206812074579817124410081488020386715535552105700286072386645670584022411920983854476824121864918212612400389237396230766015121818876974246571945094044671805617898298757918409080374074251797606248945469765811520340994027913402789500910324594617448399326471099181435607206674256239895730568152117632025629436444403629927208800475807536562479392435430992317098929719859654685129247990298842980870709046947374503662079421936985281853210224646082384813423230573080551407433422274457173653894917823949215206377176363774664919749406429437820983685214631003525727911041940977684722456988309998640503248311507158652549369283119964266993030381071924187862667499717492416208796066193336633300164796405214723810023550973978245977729265219278797464424047556947195322063353823903559948490598956860199202629401757814549432587630861774390245876031067183204213289282658266054252961047109785319376985031973794133713812457054379067776091561154396630907659114235056852923570766986195245212430992084823807535184478086342154017716834835167160127823968835778372135385916121157638759320842908910353306778101384736152473719084477914481828978134255092146004763487498704616463395087531157341988696658855341846388731272913489923073736373482264275317870628259745188549631165221983312130695882544797714299175924558095438142400025319484504322616015952882391513254810105591109261755176352646338899631911766429038102190958322911739093800622443528017163802393856152717928054960327465792894104271049153147477271789624454327346111317398035026099679022521113333807628240518698950922315660020670401479255899696133054970863278145868782881443586951527702862960933291802282386805811736803019012388048028881231981515971257267283073376439192598149995199476751402536566507121494382852586268645575642383625734847921656884152150255505642742336155676568199043643111369936939898536507995745345320755866863561135619086141326923422041320181567244948588047923453196233214654818884381201389731354888278833183477317742657872380398998105892208872422645225117376352935204071138757863336546668295824983827076717018863907081530373874114628693046588383704164708354090117755099219775297650734929220448140657906588135868931731131244381386682798785141011410573350673515819587792799429167006919041956287738136928691314494689920567356837899806082465229189510596498014752814520464982799842869418591849625490184083296035536698528053428217528068795457507619316272173331057128586067755408859172922353024889458294022531567446064760831539593472487341184495175157757278813890246503252088580331161267472354355728182842262041594861967618617080581695185587776464578993217042631784602014935512545533872179911403035368964125579729696087033859994147412769556123969029451765032807068494748836911992390843127016162441052293070359934888756343752269103815050098409307510934496313801715932828419400075322596644636272964746716514399013310557886426560266901067517665194233770609705537966432425174520414822147381899728049429338803612281495231218544725353475106383100446952010282648960858069121819532369503963165730510332938035797126168455185052826432252062320553504476793617259936017849056257880946668058162315020531330735025243779453944536335360104034358652824954510787489604000989659489358487935081653774901939574263922394989619258179518702536919913898328868004092004503318274118304150919692651653068382802291482097502139914466158302394427309119912348158497042897249514251045251895542639827295085415618961406185838765258871977593081477151267241545247133005592065002769614590429241077862814312593168029821981496984982724785498015959542279729958537275721966330561452939849584562538342233100208568907506693894179437838473387237620832840964996282160025367980560509258595937031530580385513589834408876712541063006871008137100668624057231127669320630873883211118304345407697279846323682923479009076843007686166551194299915955195962073003763035929781015292999230297307009878663733234596776011646009714591391599654544037708198832933876343698027201939312819696627656106234939732991996267396535889385906577003711374868519804000780232670335963288072377608860648732835932529727866181657652643590173295080707644907286802407834453659004444888683561631469285012881464553486838095340229570768437213746151982173474322829745068708857411252974139792294169579139314402020037580733417243097331728080093671278151235866368105006125782555638280510298085308239549875912271363400774491012886270325516695050327469189290008824231973872081429845399769459063059056444884865017196683991325633342325468127737266109840828395903755727727222804697718575141178141458260657516040455157790800711457080834659498287865442183223115439001452463989840483683690514856843020498724733852122575761976645153487795794578623710090043786425355036070258936144502667000506376336162246130909025518266098530923319189500001149860406440642295283061683296774633551610764377773982200660271453404646078320059776638596754114068900273296581081180363055553026688072991055574452959316815467966921214323261941842035854144767543644772135776382020061471816093234472987093125399064979630800789747715000094149342900096854361291004603121333583525081011824240456447769098763126593019039595998330485439489005919523422315340998130005014321961475754578474982268473766275776738207445230703683064031764131816962020608044025490294347414554809979198283374805012418413969731192217699671907697563141557578496803405819067461106099376598718879527280000117580643130235417292100793742564313418015853810430041886142821999122591502791157641816837113029931700387043914062992123920824822644876050073082397466536975642916985112473738460271517854113821168559775605302363869829689746490157004891683148284489892323240781743158951408775291509696635312101346547237017188046953518836631886550774501284690090306571525100251600292202099154975409357256325626606190402482500004327894823708397802372151453492425810921900487482933317087933529759449420284642841162389458852715280205624168289640606067126414191104027360074988448316175759459939699377372751915609799726302892881931060622818642306039388046257411676429299312798082079536822230532462152016953875597785471596951002473651210315089548191086238687655316933839134267995749218202725373577888306632263114385149635751887378387923356619897563200621275582228985953468619736532804127229671576598062944583381611034410161484499017014070344389512007282963245984378785358656432678009384365941517025145012063862239284067419976119533538652265163328134297753467002563432228904583861477934084564747474971839516157086195750765837900493355112939284678048906740043364656893091561659707880532643059212039766456497300304535889862659710957569523362982029551232063614450333612801243538688076044910917280188457112980806136973462012215102030583858375995236672575250787602785514396103422516299777561020073350143097932519205027118507045154477907709209336042148155211600852005706817864457162185276225942217419649903420420669577508402072673859581044218204339095093829154728178585927600503301836496057583957676358876154516493092267770965036631271480028195000958157529778762147968462855827676768793514602746918851600895309898376340117943763450356349926676982070735461406766250578138147176070065955153584855453486669504971675092835449916940143355978920466645547868616935257485923166460697415687180532485283118312139613024866830428965209320215641766937700611674945378813116899582258634479261629548126412948854785617908257674038454683474343351150616344357794869835128491896479668188152927615531049806828353682563545890429638592169996261081201513543710511842587736850020779844591872086625610281879464323268570787366159006014479593425201512460499542302155926257915277911210431231681154386136025964110618148498190036463296880377163186281025312179586851779162927568096630604910639820500958716117863657955968547643991445183806754925680395089499841817311821282413168865579942560792290580825252145794080989155807260570107566044667747688388834034717797636485407515219532296006993264091621270953817653424917384955741171538939108437620584304435417977797430431390999021668852334903128219156675518375257519175862455013538442707773729420675084479253399626043994418859739912805531133670704176542276290198189779286915025982689044723745163611015166055970236943641991042943999445542685168561650158390204229464505627591630696518506339224448222356220524401765023039563393849112803261024474817445478080384776990049796716893784528742620720975654958746262913320502757276316932664160759304556890609851663338432720660922315673609519598185242656111167957277654273139812786543571709837093509444416875056334084338109539881967043412283094605819918287891444231758930736395129090015131240027224133748362022525565993051975635568297727348435004589166153743995273605665970343464599234389064632694796660906669460892840526190939841989572859264858223021864893650049152300756671942328256493298004655626995157548211728109436379122574800598643410236491944342333328960473601384477788166059826331645863396917376851787742896956122648222194163502427012339880254853209644186400318064142371227857255000856250831361216026246922812208854418117518895094345420417545141209283640371606750297344395682921183715099508814042275418018012750037759300293380214296500608589370260494457701994513616569257957545616914446923795552362903820544576369588059667296606133608129090866288330293865158031503805430054997858995528560883357712867863007330738303209002591491589328819814203248942926678607656735615379972770479783056624067482657947827234980551993134451936654524429004239662964751737661977713703973718640119290960043222249742495155699445850080757644122348241450230158039870627134848720596692582835554726028623062665159484664672195257337160524081262817861320502680722136614702037596045636140631844822261368260507408115490856641879563118767035479344895447323634520351253720737998960286534529428394924548335087089059019775133382215905695075106995077442894068099078808984694737571138274263004223059156393957258732575343477404628255365413478714201316773052008121334655866105619314135383390023711402461529246239879397028303962884686324462898038066825210335279114051108740964471269587094928940203794022383797358790947497434804444037373558764400522390599300722050265588603773188904672474840278472105875530213910713976384936595997245955862235935206876258761876658059834992397321180220466620169861446745779098927164543957872451638190380106318695584601756708408999794188502044364965409180140717833121987246146561466640845449089149521121062293436979294194000870258388639573596762269121568710983878690459055074978283288208480207790796732911693721274971121201476641963801262616437048604091508326919741404408610866274109593260176232471302690542105148792024013763637982113524459633457305401085182193419907448652668600428772767984358641159618341191388590869782056920039661871924182928951302901847393362862009632292488490506410706753999984705030141188034893063487566556588810825906994856914256852969036210600105926328651899283950595158469548637702891312779748874022810145101258174290348980017840670490469160112696851763919171132201408401374189021735767404177346102832367486381066997468411135888895581633563229904940786647749661819917690345349666971470034796538904261958010172445779958236697762030743605024776869757296026217346157864611319178211416063871736462524561842413423527223361323413226222185397287822464502788396400293614749011784002111623675471837409466725943032453186758313148018270370276019164247102348930589764139980130751462787790509790064138063714888154728739975820299582827529998408093270029031679167404126238171419762848563934890123051432543391270946963648317971274571697766112318282706744453450973965871615294272436573718713730062362492307752854716358179798163259843644023593689217272272818613942870357704244906431928034174801119163864196603350403590399935633429465359468885187741635061204703036624637830881716961716239703773349307213183119852600667440772886579186833028269486677790842431397492693721905067749922004136872409454345902075966368545831028930612614110656178841430405571131984572451959474789724831865875422309999483191626471548039162443470381215679979801869885116008535902823558725815059974119492725629215881658111819851668688844791694102232892388132332359453021311326946557985097624994202059152207893932349627673603615195533722425945653821990992290112206179499969209943195799882541913168669631335367442570617754008830537990097545153500371120392393448941814361745788165598265760445067378388477738424770455256128963738963092343978899676600346209965331165139702519157144125296932419183308469363773566654211473042325293771106339429446924005128597937409054125987743222573833384769674479976615139040259834205108837993979385753255735211847411601614976318455149859594999559016548146501623943879739877400744660306053170409137988906825727161167921763707666611134847301400748558454432176848300698015994726918237520770842971141911473161123910837886975529278588072542055793155496161376138953420536634894039359036009514652962379534709839902569032375863868267113306334474833986012939417876550779907398285211289247107162238315686373377044933934694364345730285929299340866786284923070268592855924587396162416649306689345066670746431683337777613490485748314393047764790093359445712589581629362490921261490967878393545644177615312398563015580595093609477497610977677063086286376965477261095275872839173520125994413236145990932829145760810012581927016628111496881942675665558943664086598208053923275485516497703827272535030149934800839521529927572181705158104529713439873534083209066319129397596100419847027169792497297444974420480207059688441795523555488696043967452853797643172053739053019410301902423932493636800268661185693531040724252694534762688567288866009614592902676934848641354991518488687070341245259125396251896381257919122680773815136685305153132049466040345085714166343470237439676703833618740613797866421653133839910168831891880725815206162516272530753880814149104408070903351345352315357582930925419009657063701394308713608751726538573769487794281289741949312300169996990231655758336209704577348027198013709754905540637855559142937738052950355662154300746309189992620488723990719089471876549000849572036061799027870005417313017270420219707240296959395084715038269438423326137114606874616331652155732897229254757040671264085100652866496470181081983663398173325714464508815441251486779063248811197625889755192631952527854215740709971359569261743526027713456413502438951368088294774123162274686416882084386770121512381479216818706946848556509422033422583928946929709337450415449707690633394626936368279394933902658759566856659409693248628550090936685950109334928407305239532754037593828204480695885931912748755806256801098891717135729560576728873956386045696306941029376120287618319927635120013272129466323250471412675743837103174567829334761594886606968522814088350618338098000106503457724319338694676957714808380719788897005834357994474323897504849144657501843920084514551840235296142114154561228575273877412256634566051310315446679071019384957555657122616141647615985927991724686979810300365173672803744773605236686122050290130389487380027354307886650204281284432951766014641675917229149238705019275704029740206181173231038863587954229240112634734579217112737053455269865093302840117301968299747440583805048977773412412278488438398532656365649488878595808332747466305017993881214141671638299548346509462484397331133994001709930763516757210062265176538568887250295889611362650379505341779569397853611083784196050841649694238951282176182385110852833600586392632350528506764815050302622004840172812619185679247184435960670673691331711092582305862958039842222516775946372201568309813811533144624951373012785614551232435204588509612064103481396394852594785402677367139543173982922938330687983764588996078843667823605981684552018725192611032491444008773094720146855991162011348590488709656637991119867729303852895475884972715641505471367455429584201603900136666016447200230165285050088451553372480333712955637842381402086579170645759309555819785660125032589595328563050372305607878770341471455100468647599309045748885573711968852019985035391724215923314850905019640054842614984403327337901225248526432091103961040347279013087306828170647699194689860186133560825220822635448625716146815660414146545104910837699489628896780765667493652477922684251833246627700572004950698334433749752720605182639151923339350836023379982651185087072521139838971409638879859655131549112891074696348726028698531288567231922095139588597360787671764939854989579065780923204877867579043990762790388803259715831349092746809735220751502700384793567061277425090311584421871211337127901007913062712099678789921443544802586571990182024320366578165095916811413177408093393717733515945455412097489897874527111082480628934215130799076198351535567263930166118079719041780296125157998143747126757725726582264215477422448354088631373754115613912951475187150160438650409687681264104888503465901110531971710571696170324396583135215860127398056916591589970817511293377042704802282937222860799543759700020397702046683801886906899938809454538340148747248721691785922401045428850877877938032528109489297652505735146311785375381877174561744043805452882120285670174490376533798462544180853387898392250427041823713708308185753919992667225391807334575307982883257739325918791002487829263702611994622556625516216634296005950315413427607745322484970950134455307405344777345844877201074649829954011262816626133008077965063865090093403171261676802390906863111368789084677129516826361862859487728125356555084451608140796467064338157462598152087154100221741416239850210259265963005074814807140175545952591914303895477464501408332708599058471516279755585400923246073960847898526622037708129425996096625652827246525140330397795921418330536307518045734356271162685806005615589737090566873244412146400239732940839408437484518037550657729092463499923739675791546921698345796628534512663022813538382288837288092478404035827266350365104601827982258540099381635500698848136405050773196586463680376236154832962124848119495603034100169100335602570596162571843994397190510450428093168304967868430614508192137728233381308019139570554726192329785172417057861738170982603113720573203172742573118272488855620455826339235219237709229061525082074791911438290799872964400866517263686484729488340377875619745840235410744374123898178000503605374030127347913303118221224183672270325008890761091377330981156590206478307541870674679034767994646484231780329924368308749508775208945594931667167127065768718651028179932976495978318182995242228979209342467182874172969733056234488379812131201465733203957049342428445940732144284192158667428571659800674382440821183928062840330069094925446392635731239937511513792197248073649492027144827143953702038106668615301269147697143334662011922934018482194988939252986053561593179651782705061387972332450373385841490866271145676626125474940931971357905555214367199770039418855215867458195209619995064402982195551339946831991710830771090813757118751878088545267405022062232577526285474500595028046215109221008468814533358592132834913820046813317840390525901635460485816731409466636782849580293899278527239436944801566586841804440111159702298951682841103203676268081397294600069904787484141311473777772226368075999085667396172161076089950850864521744778580915132606034338620120867930154241668475788132947834161861741188078483822394979351394607461419925887765025398000088210206318062226236208445942733818735037103321032640115452393030922188746383431517129054656398292055800681637686928103846138995966145851477070383511484750457641580768898829832132813849029099962784674121170261776260947556709249386728545679983635519565665069457296341551669422969014484610633709380424336085431367624983099862474779007296612526985701140716286690421501656231315702502939518865742822932274567013665707804852478355525361847341508433853006770251893812660190003793996342308578695222867555722156465944401944678621582724880686511582764633176827630424381965569149354781090691390819570750704796205133782724746019147724180085588850869099435474207318743147667852616693878193066093054508364072100407449180524352668984964858773048936299251294407540532789323874233906986920402032224276927137413977965933198534797131901552112200103747927995815626981480101306884043734724759578288475952530216589517464383373700584088045082750354774495429828675258521538496279538013446290460128604293574216088737475572728722592041686295279259059927069063741225060462109603245892663308625300733528947786821229212171191508663137531298810694593128773024418590267148845625025792745219269733688652369218317207549624039428646097008539450991332357699682679772175044799995370903045543306963250675501909210777638093460263158696812426506503618426647847635733034588290077900419952721152927131644431572043759671170255727319387320337493473944171421267877123226837236823209161364902874346176719002385212926718239807655464469209305856589755032793390142179838780248565382582423053904184700486979965303158985105072252068920710386430203687594881382348900639640472149178423596285142522921563068456256707368947095040654892398411130496833778399145601546898276093403414997793701578260660769333264532580972063017274104909088026018649584655914062822714872375076460418951500538213092703627442195819879520855876907452986588254067871865738747306619110980343227780955803932132898921923060554767231782776870279102701580840814240978960902952399762615231185404639351068041990196160207380621268333755279558478781077509456205088874191012067790207792760078952747171904798953806109622836552226433904554365352329880719962125180028582455011040453208619222098170351262795550945937512477327591387526930959394099480837494947816351150741016503874240105849694298097519570459252597570690309535740847972370637816171458604118544957546967313863117428925225424258497260051837852022419640638875146386369318253582747425492335677156815986323772207367849725113900871821958741260648345328150565525251288290112523798255836639098634218065366976542420576479933465401011161486607195930939480520825174142979256005146211815815306201573036606739821187408325043401464433050699970612156045015019031626050308867250078934258558754647170789262124290607232074220230917371753435379942847410533983938377506044627950157665265745002855547584205699880415973164381553616145729305235796803910004716152447238086012942488088886182936592618894864056477824931597312987581633482881999868527241497291811756407289952731264383148701759078921922654545789572047069865154428607004825154993641849543565666442130036263739536637573477047734940002245125607811560297934760873990845879564892100913010683330719349121572560985690100301063042499975697846254974478854504732924219511800999713516104443489001168675859410313506020938367624141956329184910025656826087469318403932191040669000440630211220202257401339671962254068475111789386284678184515182149126397979500591621268859474023562436386288131536843155362399026531584589247719830561385012504591287524644076927670009947489449471797683319397480486662511791794196314207223280794319343048948010895806637637389591351296808024695919715211678103961517834655219531625901962700479873989935219697328143556245844957686492880616367372779808342768332472028552596261227330365016164038852169838011756717558833167761364959191819885365649918683744272133994593153092056111742051774016914209821534898902589559624485279333827500281698377022532022768280604952612739894407222736163770938641380088012568502594451155370544917193599692957973697309943586953303733674728349540970826570349545007451267429717972763795091721708287016067122432159702615555065391285095088162555975055562318715709565115715947040826616154926688725591266751719291392374994788624085802412490151754407039855492606446099249596967436295410308505729407697822477573768696873563787789331153879912284354779213155631403354835709544112951536735212000346989151137191859040363202140833964068244466574898170859733996186290909305069949984288226678608966318489416028431720692248797541952423363079897569867578080255707761555751265215229528137541306857482527734350214905202517557108170227393190449810815948246162424103160313183676260276311878173672190173120339510411709320121555573134785880998413900910664755389933633640474144901757474353142057649648721593819587795808169880183335893533861859129787817660355801851230129588531151742039552668529665738796477773704979220207573887596992811095398817084036368887439361261861514371161181011422563546458032097274664236545784790666810633993527111096906006372742155836187375944868527662064206539242921874756368834370334540178845191216328387650024272080534323250241453946280899877137506392805962862380985482724477202625722923787566021446662780137056124912755557695150122940383713000885670360040723265510946338323060307555148228783384056241952652574274824739769267320152398937659339325441785116247895491444600039188212030406470486887659630012673644001714538379625532046829021297385118445296514881843870486246941894143675807273014429065094538225668059146715757067371236456456751280507002121284726525831566517074553980168349925326734917531754938925994265062116313038724372349478319982808172929310780250078867411591770428837582910123051292342018855436579006735892943250469628593256294050119026271788418572173496901778108720898194579370679342751666934574192172118298895084536223906223259514053503408638402131605599996302303921412092885000115024788730537059772494543007805889113705170715220047439321594611562230795092695700841183325213836495280730403356001949681328850479857000721242065696173466385427956801959402690132813190843779362503543857160857105752186706674826849904346887797861379916284160563132826333661943661925496808378770266847170702262435398667232221495688921602124165890168817953731400938262141859712969341246873229248020315057800949034483970921360617451100134708112463521093587406880996149472426233253259655932950025614223490070870135562639798811704138076118344245002311359942840217727996106977703194769680502807253050047897269505420710738778157641200213825942453217834496092218150546117967614545127356187805478205615078117141542213186149578947586545125785452397768313959422392022072871767583665678224161575993393027014037424879713712054579365442791948508310430193518218069670883113370546358932885887637233315263528093331528177912766884827234350964297856086392856828067369212546447161527599926623355154901752822854021789897288714378804365433420838816737290655928264259299241198773831205695566296967535089259395464799328847436467245044296225385548798113065881591964094822973441279344129154715257267966474736015649839393107562299433313423099669118734147719174187140541259863996224062327308460468116280088921061026026979054314522253697000663621633952598881623695673337263386975125758931457320411037227315297623982485393537564015942244078009666998828589287561232149248876952325062841297918335387621844525709018186967911266926963231357902975650684732271126400018042305512941371363277598531224840871624945258065399611563109165763009111932263521090603672821847465417111400544147967544162459119588719768978738646775422853923355867269051483521403666183613784125289899374201241324362903579702201861920716825452082878174451276287687943469398783894720719861932010187307650772257990157014570229817882569131148783565541849568775196828004092350298893138327907126486268471378344034713909541056874226127862912667077605074613282187092828574225025085608003529662193488316737949418233135330321089410448609249595311966457593968352857629322357378946794145299100972358101093108193294591973199958193992608811827073492563725597731205397025086317411470815943817788061476699050288465305579151006159850610868558436010336539035231118141090158647121043810705221213280312888851348763705673945780604820371176675890813079307156495134615871514212002723688913724496348918702790684673683116517845330497714104165643483985446313669934528733185446529785005662716484733626134332191385668533280928820438393570419322376343807001156439871987173107423396670541397997358972029067008333517875359649818849058883519469459946865860952321655803579611396272973479324073148929569556277553975173213375687700824096861028981905816566091938436695421049372383020847638716775393846897292800133140057487591059987886156209357724418262647819122263130080015936812253930926191697067011008057734900381519748340747156040559541808731123540748861504855401932134574387780522324852995578577537274690936106612969304734993552017776258978635747998072559535565580720054007722701145845879636765676985422253341301369786137869344868890948658801515750324261471160892971309481497278637944687355523589797180724728766245672558854451080581577995881262290743165720850213454884386073043645767435219535044288682209829277169755219348979924783388019533478610531063115436993394477678756459233036292833528646249667673544738705724694486820608327816001216905962086580441873100839611154990648872214543363471321227808367225244646705168874165981260023208094402816017980247139033499964436197615812132436215019064337242275361220909163355519731466873449890690413004345870379638636380688539382923075470141886975060175691647759380434094000513708587070666358619818482133804816981091285157425850638048768548811574270595100779550439521992561958761370187603686973792029876871819142583310924986302075714829055020122821482720450849941882512680353510869098785459540336092988827723708368447864311542142673768389457118819089260437600724021414592739979722909461327802953544722291261881231532571999723961188086948378392291701690954155950990341745566433763275206529003366181575114916399055045361211524982012283393635572774247861760653830608462575038179236697599370240172022380563847044286775683003482650811096603257795272902576767570587902314681168262362232793388327974496107828029409357124257827475274451495899787668706733597985837199895897575918028579328961311034112188952730359427105708059769425766026720790196176169065922071076034366891245600906695223040230476906362268337085748205763939277980688847645205466892553640645151679488074028182805977985425814052734806601078103991897207619526815096802797589022164226965572583718149811198055755109901472214415235714565132349583327627402622569824181427058734673975241448633461445279783978674745518318399183498114301029395097282576379152420494857938213177631541801700835785590516494640912870559156673889824530456730572176073493554221047837119698602215688746870552326607978505287508066299872467351593705445597684117939074803386047948447078846227565326167970093690054443873080670646194932482096779702992577915854491907505438483966430193784632636657216265438210149776527644236280107039669441704538204126304331628871362607398379512299677383428053815230193395846681714583953145889145591973072806290285433673012966361268002754596484922854249301990405945153819749609260107820550208954011296265519740010355268393225559094155911344175313376275337879007049633410341564103702105482433455745670537719385854568050507013461607994086209228588306994491163725052286551171493383330763188000953543133583866906999726027218100170979368549244340250942182145808532078786651094408538005506564272004428391081383776419302559536096497683674133012001718391609810114727489860586349604330079854531736825524830185193773090946990219801813260781955334750325435988306538239390510054852042888251219297856479567199546090938395793615136283005499947041656651694991169482415206621499996904226613280516528704147165709095651427560149035268690830859089924095729716090145924991737417595115936368945401240402217943891530226155745244918522059968920543519054048957884527503954397829293589234513881482986376345330135308057047460843674782648950671461826623332504997130746850616889702731322821290397120706162005694680664828141590082288404280156753048457658229838973647669327933568032957568676029861749326035807486296361458516558507314670375679859825728037601229436900728467418930237058913762146752472789063661634105856923134673851091067476935717621722655099980034530358379402007340753468198164031414552045773261035246413220666903432619179430032216202271923106771973725999986679515504741374388548712474512250182469660938137565031983818767169973924599257791768664417286166027525046336074533118967102068301153535184512965911371891635738761480122649002149392879492481882728794486422401984221830410544369516785147946458574412038547421169220632266312736444713562163743178365890942113574610404828962023120092064008037525615886912462872498860806792412134282049371473062952878979909189576410361473830063817540352707575590152979752437187884311841099822523149366559952831759318913841144232082509527828105701575306954026461557733124795136785134426612165968151525369991527049650012463628767824066663882756863799748558939200741988484048193192867324734208388626329607789433373441789535076812702822848848196632143308414401053037268672615371005178271282922974980450282401656635149485649694456465577025569925368844705748654440709758197587752485168671521266462901804830724312488861427062739184206166797283863751887594583108668686296463901630368683052624281977281470579173198083964285054719575636295660845855173123037747533562491606724551301561648214984052258044305156154644549525239432670937217699530803260386204252638063513511993499750219706140485250891211165970399949400537673156666272652040420404664037921118550251617321313597511810929993698320541586772114841114588815945304071275284245722381514109853631673981664309373625119049420071698231678676429228981163620716105620676188161695261288268658642981615137716499350630391432367964291488808401646656548296295468664250535560135926706048754398471977785643544466871747480681328464435767267667293980542836908001844546362691587941742656289806173045030269394131302975209600283459562800670541130749529473905621632750399625955423431353917274479672068632945254606091992280028853694149225069848348954813383265636277708698533593661879705867941601781081568540250582431945941154049740680586454533939436395459176341594326129672942362992744615376623315605502908512819405584646309698380281896517671849587265245054636530271298103794274892443252327878596061515279171774556018204328669530149104251373340383919491439967582376627042925355442467585810534890686024923833050421481958593942520076174552200872915738010224972105771639589967971293214580049248630375291200612637380029204002741926744035104200001549136928083130640106701608544052459521019907033660329411360717075665889075396621707086815158940696284487356612897532759650126357491583099652645858557376761374274630039444403818299611843193453338263327610904359541552859175489823858067997814235184618513658119425126434569602183311786213746961149688502148497538893389796362919503526009698932146169345849812938841800410879745824318558419413339681241311974726887578244358899302861360035331424581921754719145551601529777037912814633990153504596009924344541606920774731732100441899224710699974528794438129189751337251086827985158450564425993057458156238379638122846764959446934892592370696979460097394985451319822875501843255888413881990372778847639277498931839909137381538367245641369692973772477455432235015204476257484640403078665179990780478352072709250742329042552923675451593334159312820259519118172086129489305710074141094000225263426828317890892581003451180295865540891683160350919436201131613555287798998456921847653316871594453678980553974960731494836597261501388723555378967932131874424376377208335516849611004553102241343002347005165643753024889219358105983499923990753939363861377534432038219637007391982617159930978424298573883202893824221716067938128685138643414800842787378672718303260977391123574445788203482347641213044760721930569628087711086346946474029123475848505443176273524498605333946955822067714700385306503255304955048621174335847127221268665513725853563470603422166733365988064180418760741170413137809126288236239850647276291234269499019110094188426769663850534175123587561747308670259757938509400898736376768200494927199082687848765693929275425071131294099698053454962109844497567764656610089589129074825987584597842334385831919576830275182540538105440536076202121038170453887668336062388839106769912229409179389888305584308108587461971373376168902724277613009300432265867844196437388115712486146653550001137382068982242886948225308535288570465896718091543382077146062530799083849773242780597201991461825576476721203746259910178753287956345746381248001284980974530079960775629061873122619326142179881085160369264506221732323050973546339688667310857019604422161871698458001762245914468474756837283458650616205121571986450325003833599802018456749812423275113142589944005339395751332362464880483584800771111978616199535471743010819149166203846580768972997609957752643278181972206006515183288632999966302511755740011693518596743490510785616117969720491556029533673070058963266793457030998647879683386620921114801072384762810077673233048910072398172984702403397313424584671867293483067008854989032439587870530746950816640928737908733243436425683640752645051351428555198251899427769564117386474779557357504974199617653194914828114790090136957621986986226897974002717700111906716319680343330296506819200295083567063162981895853761702755537795863641550783799748247521596898102428953509180907372522505690197413391988821848045968303362530742188244588549805745718910632959677284832204687886822627948987840960389527920082205803558634932516200225804277127327657286927398216839659485358199908496296755534002659130330417714586944762382899161099686650060175891964477117839984730344998013166073683214893516574157232940999556230840864963104495358045177504666099505541976419962186981243842818935545373891061444287049835945756137244049348544334356317975261661353791310907172939183408186837641417797809669656943688413463641400133296497165844594247333092572115452067541896475958989932361556214784174860377907733815827721595000151873106366209080296728409869188912262543533450912923897736939353468492389505291252643916736298314746256825181974366999113483390499408844372967862426340241217461613046014697345579846846524428055972229575244433383713145188347338980298657913809980027712678240234226454996002582043396108950185184595682197618453670175323603575237694542631904423574340607729201227602138536517940485278714161406171768299194350104359353328395787255710570530012086941297719070896175666719425681907744185362289553336591610139988736319674436282812978786638190098937876079914911300651314627514759016785462239047581984127656739256436614363491814862095085239138241526088813770483313187485042306872331787045348310107445819443119290927536840200497558183917425290140709827492469579099272535549483046853388704143430719238723818063164837275019241476929584362209726409105244036934640457100537785312868429328482031910155122293104766207850964742788960062821174059157491614411618757567627656865716187055981938875453052253640703508206559681317085106910218790262603795817099842439253289182583965194153570409458801943721440971043122355569678369139386747472800514652847650544492789550260136509624715095010610323787449991660620381954166072117065652846852832191590510889850762618013558143718855076884658908617772662787155784741003187175183586760077503297416971913830044607356854702552822372924526249819608611663513053019480378700200924223715662760139850966902589301753077323194969285820255054185075641431963009128330400220937717068171699401549288361742536372231427783039044293795639784586704939832555665577101923131362554507265975312611982110754456875885006057310911035581458893708923867653129705134119813582203611645844864642765871118339089707256305050809915370484806250873377056617787008296411664794960579822602189670546850462924173816319449700222478351085771892182536223244981572920148247218891233790375290438466115414259775855412527642774145325969255214708031146728499947884155582310823700207039401593106484255736105325342162597852122506453356529176258819870774070709719821193332259931613313823524943703227776438326957221913076571836603135867275954747817393176238194128369097447659929953763276077538084653184018738198157505121111208127310107963523259827655895107780094195268738663391762568692476129351456761339136740203546378045381953196377114454284031370696951419958468664989370316065381541391265103404861977068437454428002047986553038719755522320532095629512209479601065615107366417087399285288151942694778451093926243270426255461170352928851316049968659071027954553033384027697438940961164335485894285331217623801609943074970011166733724599167353100156362716706138563815736341995458928156559987163327604020664052638077736552702536438114498910541970157623140012921920632432306573882978125399331181578592386168048575714003319961408497299346948312681331257660569706497314140020471541890061845057947477050607116544483473427145319422526377968512375659178683655731759988847610552487886476550768117976022584201268298512740089179405086786216388060267434211148155582422932613868487327803144434030194825828957702443227793635881429149633963315793902700323819142094322422116236175354382707236556686897282063443377058473343109382633993923662344224759701174863401582926424478429849026552141141268509167654386671747856534563433743113298048343916658133734607148351613150441183970610403642069395358007408234626217024594124884949792493995803634119134559600210297420304263083362912401616032560628824754147832002204757484442939517209979260893991725031913813463108017036389333338540831280909188158506156511055316995426779899211978608812114247843325575562707013894427995647492723651628740771422148614552262530597684598129605139550577737918191095045163638786484490718593033595692107050203617628376939812342302542087913061975441573202790755870507678434652455018994781732868556690328799723176101190044355446607773652459716000224108175045186760096733400597573810100133880920570532225447057476782003446731822713973322616896080930956974902280273154824265221945322526562430626222950256978190999011557550444453762276783226364409108913697828418097329229077976989245882131383744206350728629713345738048614317566679385545096939357513695906926648796077127549767957939301070729902573193244248486524208496059133609245386867337222032931675239871048522793752837992743196244879213486312201296536464535801057833349004800872519887819067837844444639424351848244000156367609923524673266637486713972909442043719830821003200864026547320484852447337236333100865337512550558214471195343783573296136029474914543731499780980471137719628826833526026076562290617654378013953593932961202248445907364852409450684310612321746696151948999220378314002214185722510658590008571518988944709795994460305279916904832297459136392134935691234744584165592584125624551019892062813801812576878930306496836516157468041410490753980521914607631408497470777599364898117195813478609616396624534275129516003753976381845829902811254257506630526497216577652377405108831028895496531001376774989143104345103255845571522153004602300353719522057668510658546548843987808318360708571161518466693215604158568221299256292613385489339412731953361834989334358814108045504012991750662175130655240005917064995392876015479984944345494325043921203312934443805361412590112417666643053410943980682551301881240924889439254946053447105921236151293102869384668045068475730566600771309774682663629941845595972237280374615334985645989771319333867122247922868464963473517788314231896180629842704790234147936102414254958633689234012078323482597131002721843243489108467466257548923672918348872549470319744067998350452024895653658858321424594900201600619456418979809666005203178784002310006653908128396331684952690071558710211750814391830802786343518493483163840043746874640059620767614250009744702603672995778890800418443023714535169319601074983516150092027457558823442797805177038317162428320860212097746365274243417094992881708167713958218250449794540121136670224287262287216692756061535170337652661346683862381480131136172580584406710314505998092342370696970984955694183598017966530256541877679867933651528402554695266023770705984177090533480894600313093488681683998373370514687602077874441643543008855568291572722991415994729236435224534104073351873194951651597070016874524009888238178664792468040407925498165887769388361636713800409167203045466198914125098746357809224620993842549554102482404025423619008306618853473280620909918269493133310793214440415341476435857446127465228739387390118156637073272170407130602790701400155353788287133859150581892482284612197974105241541655450130153830471472474238888384193565070794732174227615018370083915933594110663729640567516581913731855715931405962908790455177476928098360944625410100895472361686210342495238455411538372938104764398772964913705754736258511063491950433613879248389328800783890482133161350825566863725113615082542906941998130147510298494689074048556334303606318121124089667675541184607229649964223522379429083509453685719430031723127645900772507852523773375051465789084766971308739062264575293639919722162808701707078615563348156288307376373403504016351171967062109631772353662510931900298232943370119723842537035628594795892327882299132544597635535710561824592498593772379104683802728423701951875820271331202721425362345333817759971629803515353800151191428411897727637559487640020378126037741548396065016328694056175422020211223015390031223389074856031276599175354759057147341629015622764422519807002859723954825781338723450176895927010811599708080902024674380523202874412999955749438089593305761421638334305445552485992982456594270763459792606780003453695256482014278425952450186874705754086813848036280587637656962806292274226486210852909959715101978710738098823425688201412272828320671485530285582730089816401889951717122307545249255738592583079731129644855073096155301613407427633215953297143878433643104987748800941753334784837595119546183172721091164959131194996594483813736144758136543293208891805922229001846985607743329977615054331951657915480336382816778764699328889262137954415676168581820213220914000081511075758476989515744971096471452279612420245424047134853153559688420220885103420564524412422874195674617668346883416682934177895404075986751715819478679350509605655687449290651470087655877280030940606393308113468682409274518041418234863465776943624288372592055366766838165301205635212150307346230361699634436336992020892317463429491105083413893119843775912023776396567068882911284362562430527001182879504742860923693004045771747158324720509407178893960189974839579238044375844609772759531236921644723394228935352366914643146149072312192746751881264133960752002300521190243691469397663955235056374187144413678312005525391767887141300336988930654694529160035615018976437692812251286982227012255758035006353834209747699615500098366204698944264622477973832190940322648691024927682557972888519114469579992166748302404262328663020572525446873093892273385241308568579091886484211834822313530344057798902120049757902226606226245229471403263438486583441431017076995121947273407870695985397266749097148549142897742948467130123432436078576810055256259564878466911130243701831913872067693028774071064198832665810940183028133336291827071934715208185790147113724386690314136119490940359359590300853624053606844450195814275440745510966107552404853963044559028961777641656121599107353414282123516758681507524153096010656774859926981524480513993459549709161947034656301861355082086581404539468193815500381039764800202082965748211229905983912260348416148573281801790952299119061146960686835858509842099314139180709382722829544797219716526572782626658988611456256548566932654765948880140565652506998372681831946043496304390971883074891643524173622333364459074429250509101854203097208219080494383710508413674672441182640944059483840470628572401152641007022706102963141251893845674653442293707106716059849540627251195328846065310071447857248386157802832876520446849021915788412476768995124950600034189139205085851452355920944256741191434360254984498893294827534235846311786282618972557752197382510154791703916304963033238406413484613247320670228139727699105266408731848450714394763045962809116745875431201287768931905160066520361546020568440645487064271715419255413329458366632565991920613685870549848775510655349386046336200577302624614836230056157969096857790527906408473231049639161086115608329170267412440648807485763281036882488291585894472911239748073559873821458351148406729179151900448218098840884776638667236267090164517332017665012819284182076945055999009462632905890093565083110671948650011182166347610020283065910979515371724194804890900930955234718089487151776486555043479087733953990421730097731379231662994128668500955689274614774795876625242541388537318402853011092328734541084682788275914302390276135095705079867756714140847353462278753678496105527410100746794321843501217120938387324851957041318610666408642679557075873050496769400992675504218938558645079844676306163711232098485649597623787958765530077934367453670589805742443878305851839038802512744811699223507292682287349483929506683328344307735374652706614561740424129388858189578585799458105772629505704721889688525197369567221091087479002151215015130963816429492913607316116977837003920513744362465877997823811632586829803630953452499543258162893163172889377885292396775604894739442918103301704766136448273079769964593470202011594671631393770522087406152292055969682494854852866718444875051605208600491511183802103891091002103369815664386613507300584884554216887852418786191548986783441512981220731904278166688559422317813342087508637210251674191581548391165860159599996789068021055514779573561547632960700742155947640153909028025972632260545495707938842664323995931948583176019530135343238475680336211898420544019383113446516066353160702644887529532644759871135533624960838547881668370952082885245122029203181721706958292199493824689567837625304593275990768229644768945580123941044407937617930518339295793427165611663897335915241821844659707670788375249238496254728845297098762967335296702555723959921502796725666327217312132498645349093924113910277764760947014098881280176968614201822236964296746022800917407483331860094053675909540488071281446337083322509005120796725147027041158420266082178951847714251156032846794703367857667591673649151611810505508077773722650406320273104190743859525678066275161498917043639008654666448127975736160284743231364632671086010616745085848621312168433760474077311719306727848979784388104168171214543501859772634504894370406531944015801586345353897613185044806292869713970417914144023280956976535640555868486129943932395371398760768029291382129682739180945569241630205393745444504802754743766982342517932716650984696076535999129254155713814016474882082318195171321834682590953734360544458115489935953583916933667582604258059802953666984099776163553884357206688112377343909207052046478774906052194984377843090462153511344789627427333690697523728091839917145887856980536494984983387675303495690021760480408478044422536588868519394289949335515200293029548346430782761033398819959743989799738808554537988176793042008844124338918567538819267462441887298409073720196673638593789644381868190359700245703707043059968261272344425355081493305422787414125391459171542246703641259473213640774265699123305836473504168402857188772968383118316225806516539333745148076336656086642329093667397498963564768842802352881710829407273074547091612031919678551092682912863427248841244011664069622837487403761557806112464895051710651002930734762439056341687376673344929297852765951719785021417040462718799000947072980924368253021648594029221755654643705990555914321402439309383260373088341849650267560664019718458536154678776772272523153515448749554770087287153698383760896033015972748603819223442420112303591798039229457209072007017954066531024765644200299985821241996587077056468093118314818244818303932095669524904026172604488490912134070760791116787761161057298360102384150360456085685134670873502094042440646105346657803600160522728135074276635304548012782534533204828682512139413906354272208849536761282295531113701959614432835115448797963590776188298746016903496095506087749051514765449743385661693868224518297183849285280734866656234842545431852913605306610310852472762794235415120171771978704320053453932336041612276211094387502187832512249988870472910808420541797970356696567897856674209162330261988379351762202599936056269384503810422034171689448448257995402269314978755220369340848166859001477925611899819020714964598784602772658304783575799535236737512144551381324563527241765171747984726037284510741821850508449935927640103071767291346728602302665778683362512400309759671996254958056660634135750176125378316555542549504970267788595992302080812460229561188720270853236216702941028089213859883081518803008569336075419970274655683652991999481130704701334294671038522818403481927630615928807251158041059916221332890585129423512244614851095424504636875370387814888023137203258233573289350994496574910640738232095568422863826061932208409430780470262420481721201928849942943092958109663420868179373252281457792672056361134287881544470412945612248843425956760496981186239780317947498622581300209178999420824199137916458799372991358140717843529297974568014755804910500680816881217016445374691621687030390003339829591652885499210684382476937421215304237926886613028023310247796745033550918207634321801420593080305370250223735056271282195954974867385911327244514868830641330138432485459903801092967391476075544475336692148820570606608932621780584916570641801559798191153543543198269864759151741781386648466126051290226001272480454605942504952516823295905880985472884838559904481661624463660437068111969338567306464956662622539010353947818864364866066523931799043228473588766190441707556518590157775514863897925241895899779508872126984265966157514999028061987076981144555426211801610989179321503619351280643085637448563716473558782960010336819622895334599230668363439707827266101136114162838178096885740889474293155602698063854649619791813686701139296465087920002568179111712147702326414235688650105039225418722751316918583968329645957943273692552596714595702591250243533054700050698516517662721802742770337695269266490843677644973120124656997698358706600626232180771114276552149708824919189053914098212874343499570024828034608399279292213829311039283299799206590023448743918341244730432211658938816603151948462552445923934074171404613674823405788643537074618131437406148617379353865479132139873162436257321200646423035888052061268969607676905188539165528373867827006456234619514757348024286461853801990599211655588491862535337940106756844064130417658724105613335818070734648786974630573440036346979471945371789735698188089488321152324183467894145248503916302405951313022961170525884568087426807335807095202197451680854308767357064868550365009536321456173740606294606852109064801371424144407523845286170314109553118273038799973200697866833136327184961425757864737081922439983436783142934490382349965769213903219591199511680154102148790885874358015461105115080404249020072199735954054779732208382838447521589578398992398761338533494218777456994498129733025583116501774143259708119372519262382530477747497247240749384359886375857137244607256829494197279309680982025312345471800840942112342321132270207188019837739592759257452005901510210906760318906657954789048171040058400052833259939530628035959428107682638204208221151431656443288073905847883451452123834704789174295749006524636076811558803523021361377019584681449235067775044971839742628642357601058011223173405006234544689354663924329836541698457941395324011572271087358058860942214400438715132680010601013890518304716425948167328918931935932289459132231255269240671957281071030418594935208138761762605274254356274583193446646803640757692571141902223926089734125576677016501135963423322245180909499020359167303768109127995032291635432172179817721034584516722973811662126462205702448583606288147301525394492993263665164532244899546880598003313285277183966846693515783298213878077090764269945247137857256000025457741463968568932365394859965897505573096968209363204957437536418115648143665070725735319110575017373365808483906924182297380283842562435794433409518262197999089513631825963048204298273191934478779536696768246056952331647672183318696925523859023614398618945908494355455327020501163705605761739909649683787142307382317189701665576610489369026637455467284565870401314722956043688402337476066369701565451327168400985279101909494620079338108136593292813192183841008760029443197733552991853155483080944265454321428118526325167677095454585075399505799139593706832738380932538693110954094567436952846673816282821880270519984583659167824474151263271140487727758336388469019840162479262892714596474365826527719636135880947743471193399624640339623807862453746721272272713079378058763963928413579492369771686815334191467027049177836484942098197992680134783249931909468002109039451238675064684310368080846011320606233276917293389651772798067273243835526168774690762079416667168564692878849716113724734551363875792408913801002117869292156287461885073336651166708730870320676779179683269382995384920640581539304254827562602704097916120045468315829661812921306566080362574925597946635118961044653164244170995854911852871640125074571268490479610842973099615704706946638080476169434518322810521201851699062391542137130834147538669068170242204362999417599878721552084428149373844381144913765316133140443500284833219396299874289914542276283468261316850275411009185161206089953657738313647044443694399220156423883561670746933317416293720931405442699378195876336508292174266582976135385892870539287531720589177470397311890624590950703758057062514394203431235748194330698347569708172880574978416014221456356094972236885455143991596001840045071205452125109796033571771711221590929490505287116692679494494846275436449510163638366857843497780552846195918581343035049554193429205642954111347750348950136112338641251508159978955026652354667596858388136299578210732216682413881929932197075895482198361917205442248372211780846381156968100683335684354723647691141432863428080476319684250044442312925531664393184371206902877852951360199807108367845281913010300478690267312917808509261017817154532248568568419482226384805447583543459078962219052373143206993494010443411340681482566612840960427356611630207471108494863068735819578317986197597571415636544982384711090381229959201319307365713966383784010772313287380066144499716211619486823052865762888622714902765515027733828794487163081674950989287400722217781017349259966995243500434945916256350654505420705813229987405122378300793214464921333988138593209913073004355365911428023452298565492071917544059732970564938914908355979637620640617099221619399131157640250702904791160274569289957912560022532041929563512381473479810435288815354100758683747902039780592523196051778774784085122735612160582031472375937340439535077040367505034547799365478060636117900066433463032942941801843223302446292282554937640184909765504894105733395225856252057591586915448170814431664151941634679393404084548971923853526967900458234865155425100411176995567597386596905240840444634807907701083114594440847645958829421456812549428612105880700536890387873310156771343036352323416187365314063239499356015333447250079459346255510310536692515573869127735069670600561503179765087355198498032183524067676301909813757845703514110098356361154005752695653250348350167025843946351617297719291550195596607540904501734983062555410247841471108863282392409142871099495212891738786133828572903287350531870444360367568830321975706360894350058307934874601485839044267886378637076264658836707992390050824531088222029032963362962188509412525266833828743547050401979563533021401125932211309050642672481948993539116516209909752687684903452164050326731870339574911060461750011266642365322001549264319571618692128048094965901587598385936590403853591217604931904386296180521864776360581632423715464510233175784251145801932182267982690402499685090432607874082722611105297535695391006472810760604602760270434300278407333233047060080931585789297032135856427754977481449807016199500700310304583950858787418364114211822476115430942010296708373178984674651039289383081860857126752483054013597877331143985939862046224057294208708233917134404446403382979673480784049011021405302289860644143474693034501003820733893575867337640929748780603471416490336746451294126296587996806781053401575754684498248844693814967364177179863747152345731400616581095540476568240369563686737671393776644271127477430921811849041547030065193061752438864799759187332435986696220988886110456954644623567027531495032377373728422859173433829171436038338890432895160660670576468547683566635981970962754268344250774517985234750896165399025220486830091533508015936621606857171520130373064917358635718570124728715155868280397610838024988572118417699070974073381467784432007996394002923043866314336465813630623428507551593684138277576252938118381005313773656178636919464248929582320337691700507383647606413375946645439088198951984148335139676330132639361096246839696435052877825128503418311342881549744764152771783450625279444586604101645809343321071434274204173733908074915862253112659752104729757660323393522135899997456069468912811779318204383255797040721101129689531015792994561188298821408859041850807821942989227952496548009333134796617279769421968254728743990917525728863077989865709235520122077234804662882396796411036678451928898191904084766469405670671896896461754747496714328728987271143443852071048652854254137926896489458202881384906258492428105919012976519561076677578635508096787024252876176907314530436790505608534486870393684733195720955611010935496319684510710014218044259951646144335442829379796980730193657039585056021951032306344560207095408113376790453248812365228957396751939257656641539923411468623968022403952802978166676977343428481602959612713473495295325001114494546090503276092884675949042596375921877175802046073523485449365118322957023061725386157903904237834551146079918103100740358898798166141578428117733741648635315001446589200284683920719434677944641651256236290665951260563934022074913490866005761918176512395503870940002124586251590320698503726219038661239544028374247933382751464188260675080362015411561556451454153739436436973222773959131651221851709138544310302833862209130391850643691528810965586408638482826555727284422279729085655525752834203005949697444845646579130357446299000996597559011357824154984816123498082385719975146248593981973659181117016126825983001123527212670702492434078410991070308326260845443482401637345550865064021761989405738062705519947121780569029379039270509129622661081711073501081070516620900054099187783151114570970487960628148670072991633456706679986459964085221422679707302254130510724303270438565464261627492420807808005408670976736774778898550452442679523790965181921012666734834191137301963671389345245118754265520062951240368197081014571771979456478858694247423359892580800721859525781796783419589194993945009747592491115375212915414648746733496093178818695154284450810146295692806247800633019736127805764466126965089833686862380793690772674114781345400948621431037858886237290387727164844544226712028239417901070116210900066466163653417334640196892022459212167615820265437838488710871574807729402166560711491928946411224008823767822486972316552925089484604639439548403325738296490828416127413552922518034504522136198488721575551575266442363126205624096960610878458482840221629177680095272697376618884165199490680024365143820920892056611523333971644303228848412151495839062098428271422866374821322416429556094434995339829600123996606261058429382252608127276477211762389092718285946438087908197774978732719568215310220313829320013113066334163171010487532671030449072333105765853129692349988339453560663054056622502252140530296320966700610798163561809592270470726335069427133036295142080819150490467839993391822056682772004476407978004767130458828055946064402053099971811169164863666213762026356987311473260924693219346220617386360189467806496408241637710867946927704449836937482601990564372557275882316083207427468273889859363404829111515324225435619092213379448156608026928158890600651074915816846107247880493307710529068430665150463924834347628822681847034331847066534985106876284441814377012999451012558154556520324633424871567167367398117339515601425709213342172517243564694198234713525898186281363718106377130462751027037555261837836681288919019645530370410351358428463092373545606680564430977299926729402634610953858131128813466311999968206373733089274785910197575169142997845914315874883509875464385296321190606027883309271973077023289987973770238559374646175070818652087743509112596362805149397009114064929041544910107242857071345726863518705806472351732981076645512895332223176664346644257405483823779803504761921505409988853568296866022171092265844966325172876358081370138309802848831611176740501706216013674697500104042295473355127785210532714717122006327128323084300444769032807386932608756221761243475126067850760824673608572651457693004885211415272160410211655368890594317276000756515454679346797043432494606594934567005601974623227185109200738282363816998322353267612175905250708079275620763202089865539330916018759803912748851978063468945302441752457168680692166889752673756109563182880012717478366613850539638696359921968774458086538583661077694831380443135041769145257133627271986297972581903615391325211309007713139587520178286973199933006428986714751834878885563301668019269236587965935510741916753556710460211379070859696389679307437151644973245435362137955093863169468671709421597696597622927501100576842225816209579375132568859996332710454632926919362070397326371293996166297050292926763521823048797946274129754090196745253618525057579317105997801304702668502154809309454334152792239836433796595435868667586600103079968850402971183731260117496517903545613133633459724818902219948687989458593402097293624725341608142255385901241351085309580446649906833165279129153196717830632202207728661936757837883653751829275640701758487157125304862134897482824673948460772409024413366407725196679780208053227032509200163775697245968043848861353485687142634171015932607011176943212079217119664520091141040092133097480671987410751947635843518975885797056503559316805494989681386470876160575891878407794354784967950590482983772924596811089681222765410392221127031907696498505391564958429856410494528171873137053037894159522707037807464397486722157231489952451814863801976911782966781584596540250536123495453936954059441043197024957568963989416672678604941728068353533386464392746035972797250311856679050236158345661705024613928708540515868887675295170248460427326940218553038885285634051088425943810098754118629600815251470545942918178012717183231215691139261490085275050960272454223960394557902484180613153852346107506837807082784252017156579706811394566344788118028784030809388622225959205895822247868985186644611722450549055505324201299002838572948849791857293064710104850693815929283505692013855030500886964751520719035861060852590237107112131658781480976196930280174647544535241427369643343637193398611874658834327280064477443961513612226683238093887997956556568788927218221596007375579192239483829920558492363226183571801366528254375307803194492218173742359310575145129770582823863679732784535947786749433515294143301099643662096714533359137236683004378089562978562517165703268621952397399884227421435639091224168372913229396131296002706828360917507740433825181793062359783569788010403139835491245625958395116214388842503510045512753417350901791348393232992386495161632145830153093844692644274255561166354183475490373810845562828152827249323884780984553115959450250756496195911139932683699110741046958530637008562529592007458776415204285607168879976297876627680398933843709415965010249653866633208598981554164151221818377334838767542324148423005188863051991572735376878486435566498398313803496460754541033517430571003847868443000743149748724954483814738385422686532747293526529601661133654461794495578260624817304043359373736444178902659335282131414064999066175759310128801318547436159114098076352170679617261268318856187828114793598187374162002468363784300064958295567629067964893886366728049255146394317593814385258242302018175722864070174639854239060291223478185484130379101285030867778191412200825309937418649664584373841394023302122479916880548130170667203303194021684968751027353796130735143577512397383729701604804930535750118079490794028527667059817358243575320226666115082685117809633177502469732585626051011115957329947061965803013403997063193151150529910060347734918429459676071442545493531173492116458935210099351540063565676519076134302843437091052208053531766292746319056380348298718222712713354965718272213171633370086736724792806053495109198231258008912272142824422711695272643898449216547954751792514909397226896772633254320621004248964676398448369246522524949901424775503303234178055699155248205966505959226302313786864407272558568954967351757751359001474339106221452449631992657682320080298461351382545922127384736662772600250304904554698539396210119114850596238323632456234040744744670038049009385428062646776288091820685526878110254036416742932552576502520038361874451510329545308483322359066384734128142609574238801451092039891956595079475924400703792923808132184592942371504613132940956268931266508002105743825688417988683785822082910710005044646458319504301338212662462235874086981068297497924758766712032033138928948966732311595563634366769576602881179242281922757967518118472669998522185131070697217175732036610352486967734968954599817040660964843811856396470963483407272499659774146562424607268060811927621065476747606236688663192909738801697257838889134843962942579994546655908111653786891755429782136591788956122896375075993014407232261033583518300541092462982367976117780327154623403170327933673944183885975972981893109464685071183704895673449143841909858961786646773658756546860909815329556202544370399198034152300337495037931588412630725728020344821371014453856726700953092090190015961441041711369594769596544056298817412689211071244990104614688374794672224089597682473713685279791789848823651565900878552524910358445089979658835806887473844384604988210932499996363469519413981384467177819695971550747472792645229498428661663767277565747640206073034466281629345769403615440065579010048118580456539519330831738281012274372834625629319729937304510360450745921956154017430996878802508805803069374894834961168078807466123808321314040934338067871653366913934360889767940956567628499718681098290607129637245981236171231765913850406613388571140383300626025949485951330561972555531775478608325120863566902834316519651433922764103120474648531320047944351229551538372190193602074847973530766135713172635028163935425498325376460496593186291743883254936968797524638576526279678093084938248083034316070322118077916884442145790407266530852379402798641247310658637383819534516422681384741644982374933812479307373950360820690117033234670257354512273347561090282954761886285469866829903654590931155140167236442770061778762618704314199846612892197792578717719829280847222817449798029629461858993954938958060280305745266057271378648840332481080856821809272730406300219398813889029907195547298664371577451968796106658767839285638141360129149408089474133571771245242879908129988345626411480974071111215430687220364973483357816375144986978839663294904113603444973875806459214085018502064823552059775876424484090772542736140176170317825700530127332259341737096555099776084500472978503218015515110482592510033110443424608363251796649501550959266674022202498284721539999619531930392522812329032686106958619589346674358032032965231057055369916530609691941902479953279200559528427880244045719277541591986282556362014201947938242619894107055935378937700629499994875505489122935679970984555083102712384378669428957491348130762221837323864086020816126105707558063101983947468568670563387740777480231775839778109937815110614571722368252736318357104034579727990584874381524168761655463059787807467780882309612611692486742201992164773462258187209080505237997720228122524186161538708155461746179676186205634262990393073540513093384323658074415060264965818372322134125254901160776980388539477736883541673975977909092221745909737540260012589854253768202574429436964154778139767674066865139615633200391040230254992121657732737798010216018650514008611154709017174636335295653519276202716962171256337759455669055056865116448302580467125156441189084595264646173716832483547799495016819986713959242665660586645668809583745251577056037748930913364102372532992894934287647067773512487132125956175656407041778606932503294143113640857949935161502794382335411520220795923342075037834912592691834351463018565676928941248948431296126279414130328555659150203510886729984599151405890014141250979660120231615945930503602307326242109526972093741539024811052842188421540355737752059961059841330334976927506782094777574118037987586822174468157630182203699601084465875254950570513888702505834654507646534970655766698867834994082209923682538447711686379763804435177930714170868069545355043187536299145240878559093473210250589685840921009976454041447290587419610036904121998653308331204187525062587649655932250726758942648514920137241394148470042060964115503993856422423781227564544185507524019531767493972849386577943651512141346997780860833823021725282191187922451812086245859269834248631665534583282633959531524344745059533104492884893294893553961684544460960371378370403359643269576257284924636013871298328626385721579078477445807772974854272915423925961735653231479422293267904655248254072721134976202316654761255223103895220035320834544527216069833858648557071649594541105254187002585734516328991297350165813802037016546886753613181167725489240689574254663068132108043291300472083115469318035687038214728931097373833091948058928119844483756885387558162528600631746397894273543655727412223598992636286397204022024743451649035595291246919417811261742888216293892462718657650090206673335546894886730427476751677256558477249124126739150412189946189257151943578425797868637325461653166391398043684887474448057682353606805673876582074005948951668999533967483859020451311642230609928346755786522818908041000107203294887430682938487793840528521773278539382842606795213201268740258945896946871079504545505824130351048770679525242313537607766231204760847904926113270506395042840491153989470612838896745078886829454409327063843861553319639103353613501971507046874809447266215093728064733210167438338452146458498352391784527172700856019726172480345731168111567432398482825011423460702080190419786030412818583480476650967585952934430631595506239107164290824396102129674112785097487833350425777504100151527048590973929423248860528425605558174176966851918024726645400253480119168233207851704503770599280123083823697779154852014773425215080405330584794428603081942766934071067449432361343129837896745275723124959007582830920039255428615724931727651115410545276052437530199343199526576295788159520010255876293239257666809415540442478984034723552954515701972135779149146203271866063485328260887848606110216403571422440027320910147853211055471304499512661489908236598272896098051733307630555295202222603785732831854561709725397491863856595026601661078619029635934988729048105869214257651362181068788392451140898341326697108166138792573463016022598099194766142292519491104308211628874074288350664700580693380370252249258541736975775569134329765021949861124551062610214063207909311190539783747102622677288989756267245988449271305100912491790428993486819138406094708325527117794701382093714633800131952923063468102090316343825332504112532213481538187734241391641494878731363810206828521143557708378187728219626709637004869247120583501240687277966601726418486715685401538690518729590546634958604542483765139413056261935448096521350524933718659525907956209939250406435434783379342422213754667628793957509363867095993532428059528914592864957245406542543775096367716578013253271566872772288718632684332910075859575041509590911146605490683867084029863177104875475340927352220235180898281330161356769836918488566119124947325974393567033099057568483341616953355959936139544789212077231034182753953647212100332450872616000473635772236047159764480703869662320310774670300954844499028833295154697137508271687121687807626845230970117420527918714191426117181217527412624507834344296832331596528503455286022365896918435876364560398804492506563780753706517542387910168802042044675560468737428528304642019294581014757019645071516494890964613834546629003241263588045788022236072562294422434049169369478967669537859551300601498031284990265585929075604596054871598242180026346211051541231395155592311550414004906185997391094417203342269879583904792388827047843851229345243544983123114703980077802612329403121668101580227036050033794858276759313655375693213474689894238116177865911119650016560559744613674203714236416384295642872618403642057823969793366768324982379828884966329591690394905633614886492508316618488588213192203970927426426367488363897933496373136327860266637682224273688260867047776755045490666818655199903216092837722321890485890749155905399280199437957870768220942912702663614561783419660437551807438899372493825221758723582007290043593020266384807399567305968756079348906657604676878879450037056540887371952192020326748440514483779389425458042039167186731541984299536949044876462322998834794765829770634541053838935028785808988147785599128538279634442906518066946686234886514668007391884589097177046150611349771568426165589388808226178496628511758974301174675582389832060493564888023111821895816100646073691317271359752037247486809444385084861787686528664669532635689239042060569320852887181183987333252839853376685095872455724429724433186308315449465936251448687344642126423382530756029075384729005796037697603345413346468113525920867587201669311822489463433591616238019053354510438129334819504800722391727431673332189557535832159947370524701663380017436665759634585296356789878106485016605539776863758034866922788947547481006688947065513154843534806717254748097242711052622712825337512856614429793776871525846155000367840629161680171667293073686996356347509309912764927756454840981740131375427660038390795752505494346323853089034919737588984503709170067286877816348083527804795455978047478131625970206927573560657030826721460407008356135812344726808001244681829880818959791358125707825517695915929036304765877722982868558819106878840587799733179047568564291232775218763580464554626452154460566218289134393360567854740890086905666272898438395812080214866396849703858804187860338422735043939172647360334676454525537571586721773170934394136395845949186707562261031678363153125258175402714050417069910565044496155036723171079598519476384801312057778805618413548328508768857222591704441868527413731313718411938107045468954392745922736200677043720330592158898949375013406412818571445731646981993168476576825814572987956116765319054961804663926051967163742706211371219559515245455170242998869059972183900262441146042998419575585467260312759044727284577869462819741409642862556204106509066717327989192481084812590682067897473308573058669420613526718740896078681340205291025164202338811755763478416611494934604335570427114766366893515567222349594442683527506680779474505216623429511688949550432907479555640901650558562479675628683690207329541769736256969218534155971900371852010523490061097450618374588423101071741350030332767776341009119098733101860209140863021567531704935852922704518706531242413042047005097378953178063581919366829627120688298728021859539848661783744729285996821641490339587496609269738276317485481047152111822626647517517155938454736725041723771098902796412062069841833201794527793518217423549866355995379371862947531686209522355155751674415572631600402489052777504637625851370093457232737038875049083456129737911210202668201168350695836962417292072705741705187380164101062373754252395416188694712265141441041963767529485370861966433541752099542417609342182383366880071389143444087671236231014412786325937210952157119998214941751362507387739282152580575744875778999987067298597211383507223342633942972456505772056892145918842234226478373232288935613875020856369048504504405164024379449106929019146347274491852249708639543086093158351248506915392966119927907412845008990218320637245682660510277992934088234227787761498046951707891213977203134245308924325674800837115558443100452006996882157844012505982441402109205402739866368810435074455013524039317541944669539595333406737138545630307399321022297262811470142117043537772857574949541293270679653876484698543910675074955719628514903235095464842637951233295980823590191632763826954408848010165744447398930180223150299583671959449985264428259781537282800318201310427624028195075075110129460352100268454110844659639960805512076278470721551883135642281944100944229834358662196792814997803429111620441350620770168196667246719813495520507329267338243964605517337602222126535763761592272579029130502963130152246354879446031464576315856874920781789675100497934614934257227506151338726922594170469271996480827590700965111231312614726385547904956801867052136773876397776491324686453371557004033493519248192318966138579181019001394576626232150942892457197233555005119505213310593894152510586978735762390440011894140409395534173446455103980751233459212964588767301250686038668941472164389936676329115588031188612157268316546667079403785734303538031505200392083721230528218020292895033941292600889572311007599160868938298709337318928110814786203711463225101963793393017661990770090356764187690621440099696300203907174395969213781708253394093090711513173609535482044378041189970037064361587145345257920592448983832105315420579323110228092938758688378711434385124446446090334327153038658964773144357899267207889896460331144701571291013722656514637952020330017586479712556549078986125641308045805258815515640285956059284363278511946420548906660817178275162617706652884438850822750365001817067260672814559446295588999689820026457747935670573077324021325471524950025338259268391107555571279597038793399300032128294800698150796747496166216922961125519541819290366914112077660963947324635858937985515880756240848195931212476697573663549390397196302808651357330262655197378685618741222799097573211241707734011838206835689542562359898769843297324891626330129234884574944935515688982832491201964329313678237530906657484242619426833617302774275592216141127721113898463359767511631229966678203792859819603270141080690021557783360590739016360612802064056660335597712080185510720933819263268234832679466235615011297974814003716837902294773002547683521101937230703837054719101214181559680070117357118571557413996630037512647809984444371843310802028118762257246128933926112338140538197647717463245857490959123163893628247553389054572808356062216729539839635389810136068333737094033380505717188374651523604276251717851459124648088108062865722964914135641719852840162147024103115267660122359137387898004114708443193297009968848795103019954593332783836278910979156368801015226673714437346217202063352978382003949400232833160666985458758806027333024103401678903616331391767828382681143395958723863024072560990421891415517541432874115653647511621233816506741525798682696369016217469835443640703988986037819663792635515848513454685732165937077897763321388101754005083409558163864629448709058059619328416191528327227632749161667413383264801320061715562545660895377941793731934005228479449796416675414639229783313090329339022302323482497825544231801991127815457715611695313460727502530891230033400614217818361336503920876745965447456355252325411563681980079024394137998387740325139778462586330623743256808432258346091608256504418164106516137538621788407153663596914490635870643718396762376082237903271241986549398227476314969684845509666232305666376668531671105835673621777727185438478310845339959582864394804676229093498568001078502610644143160350119183099181105016919549976704046191533418834160730744904611581964687417844294836358489096819914342661526481166145933314649257343313509324592867214045139846885642486989502515288660963115260142825946830050545258982771786537602549797974509336119175442877107745915992751985107417710206918020041378184510783733788651132546326236246896933929068334538501569442370480312557126246634182881624346115006927370919221071924580723333384356246548093693307160791998432299031457176608397506599408958915687874038911215734682072088374917625198551403009685012521512663533658301510765311486182514829258371548320388820793445586390382113983317393227011057380966764363983872672966540593098791400397532831899765540365408498853655670827123716920897271939433417153111235382702949463944117674365549123488071222702908279540862515502001621845607213819782939991846364659836526839200821113587286927167647936555837323389105896316905402063380017128019511229583854664807044372652006292935236061511419455585022810960109975103091304710066060683370054130075242156961967570258053592293497208267562349417359994110524595449106216795418922198306875767433803848051305666965258124836024651654157344094564934874330799693582257382195716332990957765414690694222234423462627628657938768749870104565817332312616156279191394923381648670153869124756163170521488903594414281067885462254969563186242444599085331769900259363885750484947990498616495760709889860737444259336783745443009412553784836106502233470134087840861376800400117613990146819830311537456726087962957907830894787327365989295683669254918721921308730230904447151159403192485583865295332405602381610675652710530442076001377031715843163064758902636771998739024741188474543007701004215331161197491453870710565488530205783948206256780792261734708681250701491946503057978350145655179877940452778884479482706678361021893423731884252837448886737490718546945718002554081505404776599247956089009333551282273122050100154291221940835394916448914539903362303204609192002122188759616301153724588164764770674229698981640029929852540432774578589383212246683391730776483730198407373879952872075869882249711202802669157959055831296498720902676094531438980189293258859875024159369331398339219947620210190949209166128444288706953112542290410716525968220319566133021230372000932525391274659075094252210612914684415419235355088149293961896246403124760971807244684729064732152361951952641555986730778214595176108595945968837121209839908739374625559601649753466357183613015372893337559465319679167241882992244687080776820440892696623674643432312237684668527638674162349327069304792096630767549591174872315740278855101712134446773364435359606694428277591206316464651387708226125355780846353117901018260458579546282611961770874373317664941047900779278439848654440108459087290341301508990283941121336723593132334273821905250119828056492775103615836535023892408649595225684860021205732614741179442305007339299070224900624783187192054951573167395582207774042786862712600075554437925629355367061570308493738532901382947200777065049031049371445963473164509441783097212889465688024060272409943723278889995316545197888696911530742873265041797608663143001938215090280159318073329521394635856505100394088994227698096050678519773715625237167165964451782427056748208586697146976136251935424614279334884604205796747085010605496285026504840347629497976195623361661438998094130527372571710453131595197259186347191449215454869601957698389466612396050891805683965210279425368630491168358055978466292453936998091519357505479624861317439974448955491227733291383498826167829735324772778474801360824981830443383489099759281367449489559974435911142317144390837650680548671882615809746804824584670807156073138781308285115036235931163790784405860553154074426959106225520810853308462319230476979333908346448244906616262172129418926110858490446036349781061208384440268856433307001062487999291232007744486985407516281379002526834266242954264949778732199318198457366516765422144310169096045511428880409399934822377941715220620619376923647070361863741693704162903857795822652561881459416824152478790446403514430236469940475431644107149100421833373647309655913383745779059738482212756824431809587108094329186313128340460891781050836351279323960381145458953844533062130903912315437356573190111081039270381041416001236465897767671051800495701105105479322117764092518747567142457605535931060818093045437562235097428654756696208952708356314180818374020039460356125431321646649392303659793811674670610307689797767545181770822935709056876153236732716490638807158806922220455470348725436690023562486588504224064125289518563390110221742741066871596068513650588687527969611405333126100289498059676713263595869880310938902342994751034231531005094095909554587062230383272342285818694543243253892524682438557455146059639359104525145910887810861935847594821422293707893561099140289618042887097979253334386809292490942303599764733011424257863218599498138520476968024058596189088011060693881789863263938034388545533086519803392264902850359468397112914839716514993508490158274978585534189237191964482856070400696792815964500735283241069133978879042753881573218788651502669012673696340201588152649495524559670537692485400660392343270221352607281081405115062141872056690502947379555946292756431927004438278832443937245647983960707368567520526589401810737953759782334318190218095898654330601752000014407779503381160693269353057698136885268586662217617753096154053173605078776712734683015831808486222701862820461008300266994986415020490563059516929487630029304097516982472749429478625128845978364481497427561571710117313072619160747617976216133134878761996320313790358411083805424858050768614308924232830391914499228885199574389986841906690840049502550259621164861292577226255490949501415067572154771403217554501234525860254167494432906494417712025733401782808982069235585212315382361151041145721487661709945481049897016406487072960419611607509181908428298268448623209317958239170987558895351462975808427247787515828981057997187190264168371997543084908484505863064635271510693808535936277309792822315052611317539068489642673395065905580894720381970203773111990628705734964396716942421855659088852580095363644987323543399724769854938238476649028890962364782902625781584084642942827076227748058991965010549183976543817455651340862827200952900742670835985948981391303221908446181292778190101487414370281657949655472378446884695095578035590148365631546135090664455068222275449170692745359908014254917856898893758220251130422656298292609226926914254387310870648519772686040872518266948909694349199807972631016191674297218819133011357806096849777052476833932186635209101912991889874952497416358394449964517984701384895025174655095737589322827966064456000297987576609316464921514854945324953237769153678011775080192036438613356208868193082515445795631197922488539909015245254670101364405784841303526004717086746604696369403287067664730266551525148217792960712355829737751284560642828526061545007897057742226795841422018798602350324945021498610871378302719879971393064785189259328113261974460439712225208358076149464720385509747897913989259725358630796256243637014409594580153282478558058629762318903726870624513498723899074266532752629396065276843612403948208249549941734923108066528193965863176977493827977395944623159987041081300467664973461491674115316972815656332316926721171965550558138265958420351732084632280715081435293065622567690090997269544477045609082549111779744088921853666237633070991351371266152052903327733278818724828241427655858876268476344106500314749558201211237360868389687722176017847770402552818040261312961743364551145956578845602603072632780125302486732049980917460791043279052707867982347749209439997639180920025557199103931389159862324624881924883228132716913592052748262959250280854700680049035454350988198579289997529884232118289069929001680949600139938974460615233387612682695363713715769816138957762509896313750956107441795356649551653222497283489508271208831329154064395211753261981141655271113918017576237079238795375067736131299450196769975734148471499812893423778041494986143880568590514750920232325773156674257502682623877007529501438902118465033948122434553023965125091108981183407501095477202541128027365243234242646323071726530146367284904871289241552688682195647844254401003308424178555646746105607799578576135962419912496093068245657096777154867314691840239833086612690146397536696603773763912507086211547724838112697365409020838726391106209287945001587241509638314864322965240341322442421993263906158773581575219386175460259432492318999354290586365834998034085264641788037804537990815390828664199720421138717486090790877896519763544593779913654058922143161907005162010187049031649000365016253401261471667602889960913960014710262798469272223429584019102393840068955305680897059966657574374831169075143421880497205545215415213693332310109961090093225899761284802609619450127453610106075089800879270274818413091723116279988526603878039354486060708745835103279942069641998132412169865431611915514975196056264032159826647419267033224036030974694764219430077195080496394279277295187053398311919529241062513885869992229160377006860664228343054936492946836179932415385474780057412314373921621965361113944967911217313783748813006607355219218083424348424544154602299601391223596608238410626963574475427898459410656678915402895931052319541650058230008158808977796241378452983553251361583349882086994207598469903060034152434652206603726918548592947134487360353501534067936299179289735007313131697257024633027910599556978706189519977628743984125032791836457826345566274950966376526125209881262756910457432942347639930591981316042676403176291048471482326951465867663255662440739804475893853602937486427636385910474157509875685567139363564669065477981398997903917939696773861699210861070336203734293251566675540299785829267841323541477919375187317896366223065202180156163147579863002273344392536011294585415312986640139399150097611943292444624750669939566417604204676052875432854143844484872403256979559242318255494792060165483268920630088346159614312375529619914990593826022766334436963154872259558567313056140013994335154545279055421187351990787887805958902142540118937851062921379493032283264005434709950999004698083309936115118004253991313481226797084863445854967872700396763665732145179425319017140337256935569546804985234124643921327222783419692291220582927999116823556639542560848601996950996073913261015585998646237368030252202718599290127616735021802309479431967223287115633865016352373890212033097587634226863213788424735460519796173006858099361810266832850055402192668370177734117345996486966781386227238901619833828583265275185934738130441149071061583281731899513683176181241961723963075936484075077122435714448607946656481681273419685965713043018066368587172447855230529522745059267122828621430844139180032401920380071979135535238884601739189961740738715555468795383634009374238094765081995826345919468898590703413529822201294007238337060433074733954221532742328825552775122654429145904528832017957787396807395115679609265373207387151738218069245515378134515831757553072518854741061840379503686311323997470267926720084338132832956020327249303278176515850347064949821133168670111111714539540132388797489849206966985394237505546263014084286352236577086363308037028225341254982195183599147630040192161178671114520933217969107277992939281409857627642446504631067721496404273848499444642552544804335256048230752789872402656385208296832355765274945933922465600253471477678987068211560098347390837397168468846703754355144757365575786572105007108565249569614197018193771050252233158655344475017978194689351919473445056555728332583284248272001411820363249088395374897270557706612156301612124292127605536757065689015929374384404271216091283663723236818179995945802556192001035062800203386147749922256469088194263736070809635055491203588584581926405516316510164527620714117621737874905535422355654556481526700992578650214117469929235096115716046781436044849948511716177221909670019947941410674014250353858989454507526426764301064985262388862022350717973688474183145690968073905106309027151158941766664854236676216890345319126710326587341704790505696209368082828826039635119517344634740020550911800176299025902338492688610652451528659487686755456016770748726506396905305131828392808493627457592036466534018163481128829763100882314404833504861951776031435534435867033501697909259334014050276604624156829079610718759579134810375860250652633026428768976930000413506043848658229733159378286158479533052840525132926685858027282239383474734949285268942311218929852337917962583221359881389216712674563704548877156190017917553030706444500241473554538805388308209207531707250576552368651917065832727673675678135412392078214537016002403777272786583805896617495645206031965688083954839214952416894138022363602632585562275603810747158762344519278006957416327947518344212548000299559166459105390719641524782462101324090053052081639691205003326334136039738579547785841702454378313000103846797711952773522230894493926709378614119583807024478287860207378644726851500346483257245322022191363522210405503734614567974164970839112060874694356478474001964757402113782403618791835360608356088223576234267836744774772254254027662788775452217718614296510223961235418667035884259646933571198700930693170919110333303837196922673438184456953755968882235404866036466345854490434134180313920287180872146291232499584352437210790608074872364025386672678286856355596901136404143288022295409650804184673797592666577212963036728920575363859239775081504083603750084162317474730862625881847488953052078105691561202436720190679212344010521957043052935324811853373214357829486411323283924326651715382293825012547212833216404113946266311209542852189392093011067446113902349834044675565061809216431338547167558925401504433555608702108867266796920673041300142245146462468556858940496703593602686125836614113134304593755554401886317663130001019750417382922689400976893285808004551211979477656932622168116462104290735561199464191352663531337733354750202625547994890702316814212590426204597603705524164276376455450214889403407493870670457688249001255392462450916615625923248324655626952352107091380808771851707541217551530395146682334313069043699416596344285455210625362158356884777663388850276495455819495147326018203102479244682317176935379182607174500254650828514656977491913378819871467130765249087267881018931202345371811772564307356051075266299615538211772712939263437949795415656061274089208295219056701668998471414819413570603814645727860334308483466814793049189932931161021135971502296306635937992604912819592407076628092352391657955085417032387065294940370084462849863065665402677399126496329953256470515007781200722974038184908221979614122298270064058683179111875966139770983352401961116085994869655732564504655878074275638724033807505510982758189429525975414417724505245572294779392824757381573631690619223740016536965837753532541556122664476512694659588333244122320036073517463351662213044647195545326770330495194699385184028483069550802512848135402200922138507299062704421467543294576886009217306065873983020858054133113219133821396406271987854404054406685193060564844853694821073582140991467618393952253806182568770267310565376198496242128920366868570635336499664646698245897916506730485560191474365424772384538559355905074571565443327349483577119304127924780238623053814348878060257614382482571517688660509622193119632617065016081208934839121459492328196399028725090557523204084931344142469080178984266097914179032627082699257662238512003434760349392761119591916813958224425379687275819852101372456562695364987608577387511307290581417484172546397369469323849795849158960061667895579198261485317030518745232649178487519474903401582132690632114640572215136689359342690750180688949739052736029524752130053616637138352070788242443950389876192501609750575414470981879551971270353043638816862354142219023009243288776338728687304996157771542738164994508708231658427159528319808213966158922181580859504945142618002632946118297365077927164643726566445859904387203654744286420043794433466098708983238843143702929755653593948739887313603934014826494613054150473378113943441806762265707840595839603880515466445649418645113298917908034471113783316488330288953235282960047396062276226642958996554713245275624248588112540468958699633121149450748438961514801876537120660646075505322244910536615650020049333964049598167706663048452682403352083330918270327862111467573791573211956409336778976801375445172381118480354934893421557073947172015841350937944194260070351230399365666958393792745819108940954254777650857083602273060349383071105518433813181894145393359277479217765043578006248393998343815863538829471044651041816151794261873243718923180987483073851718843113599291448900085749401712943358279945016974033802651959256162810262497181262844563667315352293850759560814878843617602083407054276294535723659120097163515419208701414574096168116279069720062726015614330630527834587062548681737823922701597763459963882126681344554134223402598068236392975636979153707066894196800190422966743644136697124038656167462119458273445352792792919065042385315549020870546415338224042323663172098505042202920418323884879002603045969736869484243969651557390192291941593236217964951732959844482791496702432508864591452207501105032745993203902617243206005323218420903814860381916492392326127692638654567141815503147517427678678139263801802291764576839331113665329824593601006110334398053239171006336856433546379387781765125660634631380257902704479922952134021667595938830418025437052088367186344536567670718610004629687882514062280386792934373848991022770529349544721268651418842164499911745619332778663404144238269410828163653416821645508545337600609751444161312241759413621644445845345637094822230833268413249630083182943072422372932899074034759618908875530192438177513006648022799418648253552447010753371830081640425933107851956149240093971510222463092152464240440375112772302227506984443283846308875348030465431480104824340079497867605603372399789872297147478053915896503701476826092181235662632407453366678212164552674748645994337081667386918089231295721646345962029327861797634628020037256250191521959855205902460931177553035819713179896191395964136869987627515908709384395493193666859915503258544742577478942939157534298370608365007676129366977401662023189957190053387328543136983647452512765120608756206071828167573618771091687384876598277527851755592112957178320203824296167635951559293701905966489346001799685885648906013716040073276694211564602261596221339968900977811405807903234850521449439415044089684626475870669737728076147737714045842624238543036190461638616149055322859818448295502959197729034438215431220355074249895584322995100030365502430637352086279567264151194906423770476792155117660413094813521091778366388070608000983284458051292589521924398275453525544772522212563841766576152739399726667541372429435514581941933421609483265829520460045688157773322791174523665534836704717011347202562837589000496111273522625087963952806964005890487459150395432876716101874665941596983250752438800786187895393128906807370377334301803934083194613353628792962572567840174338113497179727811662772816624960106169216334769818803856449039785631959689947744510656322988697352338358750751593526208417914575354764422091867498151237727824610919802544095774561421623059416698803256852124972506421601451583275452117342831535065847914424424284711344463524682620967590398574943648057981138018691049576471401023372292605413744888149363280363388044318314653696879368232215330646831613275061819290298103669051083838869088077325061195027756680857662039115923611367190887482861899489520815448981976731627881360658597756504135825456221352101513745804406641959958628710890654959830321624083482448590956957112803478965807439416680665303753635822280968098082118762157543278778566507612987594250055335952584540412662885157535146635193707949775696772786018035379876073420661953684141349337460104820263002921944402307841895942360468647398916020612136136237507650478755477197030234283398465601995217473281961725949641556758646555100714131139397579456573867061797220959078325230481232233854359325244378835142864685348938945872802400399817769556442852231090944540061979129372093436522443845973914075788210117976562664583523558318284877699375335002200370713385748620951770742683835729792516688624794029909127459230729821748299849232858665112810518320925071404989304704120075197815575656439707582443643791445273439458781851399282089381065824401143754259821630605366303441534480176069058495072197971137558846814101971186825251719106966387905939176987846070684549612728843714147911273669165429512277088149012621183441972265744074325914465185550255612921870926993701094718880280538825127875171567787900619283023250484349841809212531395440177338966750551447882100405795316295393501890622309429925357368499859153807391192381475746735919991191637126011184146327344779835266367901357917491944156486724117415078660599719481196418023800930635275770596060033285763229600868587031888159612344150821459564753111947270891901775971779220779044441558475678175012751460023114646639408745152614410552626833925486913471789240469902204595873903831220755064120497037427488808553645124745462426769920255012423778993215665092539513456645886626787847321022201619097866813427106144025053245014289644464833575518439775965233363015774868734185729673590460905090102452709703649126266065138142462365114363351447907298901933047731057926358168413163387553206041860943217813977578818691988659174342711834857353749443239516723611107393568490605165079861296450575182289674726065879627665925004827877885064272940698466565927558357970894899194629934161571533571728990644336763728389355172953880460147872088620103643468520324095689031862553516038215936818993314333737090496802467754337006021301782473468807961077983206413273609374858817274179946768610298256207327447476999448017796483867703382211258511605156718767591733817147792623847343904030836019460918371024992067906569129285815677795892421070071570315775921569026793723024770075122193193672413533064206121233215921481147388619799505032309657908060307556847831288134742326258342700316768306697989084901522556498565755714338315092039987066714205018875893364214790202696623896807670330733283657704384409363341115360858135787759723773083290984362430298958993231621035368438031278674255744180445625793624788563683866156648088300654293567004062690030127053783583789458092095706609314844977390963235392709458103812267031571729807931664165988625930799355226796380860166321616100521735954197676468657453823380304450718133954293447486974550426901369022018211678566112009290070948560566137610701077790910028710501427739792354184749471773467010565340928172976814224366585309775251984901404516982466972798481969959001512280723654807793766483254315228781625951448081896651834453781136451174523662702878472683272439863985162345197613107926461778640526713411671106716540366389178061822233310621487101204286919095590064116214812795018180383647225775903452029562754587175891933409646394823607030021999771988003602336258752345315641300784845008915855818700487371780891834758947711968792047682025248523480185229913430342588277874171967713756674866258502003770061798130638219432822375849532670489083609058863629423663192248766757945717572201732649278291975531937523518540236351757580938114916002808990085890018445735882771262711967789892896991934590298271503525450229479571507935955356189692109498455909105284719105024777066945991671588710216641899873707102179305011194250328997333791942453345273411504188905444607785178068328349713230338443646250228535578025556395044242873071578640121771791130169925501563798753851326188468066890826729948505076410377926422286785419583447259606604608759201110478472724800077133254394845245771058182518593933821030570457625697647972941380479309930551975421695242614294336663305378060943152732593534371281912853591848017761096923796809771648106617776677918847130535114197175377687062799160438829902560822962142312315867401284522521809544018026280014695868064323281161673342919168148523720383097807988073351542715628134601277498149260573724257010599212324306642404071688188114545807280354614738016443922822563997340820517517838188983526454045460133107172181297422202298914768760773750255781038856948454905600615515810090287277454495616451431693717855060273135194952054363068521273740443125809903337435916747835847555006803839661175226032422203075001209961151422036400751029307135608986925775712084661093739121470707377192115169940383736514112898424400712401311872364050997702818723461190321434164895866208127097069979913006174691955896966730313092952120542270573709438700641364598878068583137495441706372797216742081552265421229203400362184435675027215307770791421811065262194891917320289478348722805489278601691777528698808627627189719752239470130356665308998999656448561808272008712547466191121046151453827636502185440414964964353737305493327339140128622258335744830620711716295842737900785679080069171115715187811041421044238426539438986314021075109884545030589370731304175813364316861914055520401905983574568393162851659956108875827060666164986078674685304338082744826505078262927065673287554711061966856176176192294113813520895606009780803725532334178597291290281447248372986257562155652384669081062828656163513610375139671084123298819704309600218082433897884963968628838426890892015882288584807986487020529055882470547483544137355563452727978246076737093427978156803055397600131813916292457857828927786037672640155548796390702966959465514109472738979042429210151768190668917998897728878105851316740426941682967217255215557083399744460144800189690530928067100071435938936228050457552335423127547875361889678557221394204622358189802547689923950403583522089120467094973667701356158242970701364696384345286468344916073276714180680694534986877499280639070824747091824517462146822791183457390784290398105235772810809825448956015959437204198591358162500560678252133572574042075804995976527890929358350692640014453089117865538681931583420525307234557520963051712752361241081134187380099025162019011098509505870488756704784202700628138550307600614774387721041218951575200326202980053670262648065111727059456084000500806423382704910415648947436082582799021334039060687955057154242176981488978969870229925770783621884975502984186587444023992183959799919460155164547614553395397154605859081612020632483664151626585321883003611252993363843444476415544344572056846519127616406067358893365887581154970738812953368548827029791412018655536616921486996960609501743088293592678347061652317696843341973943080892764299988986449721640171658763254088925283576025742641108212020252925621234323144591739616730357510543845127841803046345819010409609146638441083594575617305809250909114670307791629301188108763336378562599379595772709609868840855606661830418064757043965762175400041546090945145530300795919877916836518225161146784243623742149118428189844080193143097833730386128305364900898327151279885387201171194307154900846069033255761846342424671873171026322395254104259789027698508345734117958267429176406352357695055793106972322229203265081963698341623288695318637113827622424280166335843244415300216063836248674705434001464171224080543024791083354667884525612703567070106162532719045104703793100320407129651096249234079110174263631773571940080904787229814997063276654079858954136635992992313475192705457062753885937814866427982139319607591646056584427910271195662509829024409613208190350472377281466437100923728344423807516222900853393969692319530778223910843727010033579791613130575496439568374354863027744480220896985270371077052810383020700908107602657322749473846523311160222256866562865339633295593922907827888585083019862664798099795629442136287628333810519452092029706565441760788902212854868655339659674588959432696609220443006706314022921087860792087005531489779215787303821097128271271494337159182833318160146619032170212431820336726429149110069651677430055034905830038322920205862059570530241918996297371543308615002803055517229023792213652155923778976282623038422857094659220433338798466851616176646909200867508134922455942663657699460580535671296884639827562785452851314444747714074182476730079764928274519324129675442141720651167058878971357004386542410649551706655368099373838251824898405200973951361729112652674887505918733459379920821202161941669002957981977187373315048066850855915491330511007630211123244952834755972313381820180276404290131872543696534470941458380606498704357690736921401395222362675387470003083510175234687081760126335862982793237312124030159139791609862121521689756878097624698400750746167059577828897159458269519874957970299606917575462242961389013307692155101959635389855201336558617066028707327387018730419897770113028600643124561700402153560175346601478918066679190603739477462356967436539284927290187122387616390738330640532952200373489225698812846998529290438837475362955209198625601432059960344670870569279429471061668006893876419486599138336831595769067590507785153632612920344483819354690801421341459042484785745229907555616710255018524332652110475463105549198075216222840437608648905751544686276068938769919808216193907786881555980335869363717140841445783135368615910045029639302500958326086781359625209880128048101538594333688730740484885320259300519634013416370274282814306238989278509927526048089442172197269623518380262151156905560790627987900351965794654480329883852281613784383893423777506810046265351991569723230195512119903322416596875256673995919437985226880574664303721682005805615046281171388696604769207544528925269697134207370968072848410973539408204308203275163219078131397017850580787676647762796503934882789000713390745533966650510724580000248891527327079370296847536202596634942240730552958648691200816331780926844326560465400000151887654969827478948054083737140331471017834886867568109936445142701325910252094423390861673202930429771479644408729422551118750329252519857640259520260933174541445278303737195857076384835052581876259267524157604739687592699431903439930055599989400212549828631765197270879827561129145753841833555193103983180855086919664986390694592752649055457992580110255261700775095738891038059416415017043269793041256530844217220531625590690112088138309902072321748196336780642499985942210738187585495759451535495012874336410355621869804191478901200004743633717267709900981737438678451540184207510352415889243300983530693941680635616148362590813314079433836754121781354227466464073414860071969160513467585559486954518292844758504539318247089065967729594208320851152320081534763083823109158978308130936632846671972406056634883264038939069347540406241229198872258713777662642220258346158589387794105609942517032717583235614908758006897392267326541538906282494220647085838545884320473131393259839787736712956317722259564183529223524762200784847309379267648003368118564407418031696814330202511603133410348757335474585505060241879035848706412761077432359173146005695716164967952519082468450265046817717077312464348619739848168908921834794327767792600075662834100429151787914315362162743736507880103157970876335301652880358140895185889510222602965768241881314725961472277764634859237004401640539019970439988330424410765505809554901699406343413675154780412120084775725710092181435872302096560443232042374779917876604381697237440504863554875248573935815088310103812123799997893018669771180281159756655378995803756759767232000241372932709234232064172417144567602673572297080132346723868812448229508141936213280346485574795771136555436166378306699842650156609180869593091441609380544679691623652659219337182323374068494005761267129548137301420153647425335679185351048507194600948453943909767448923443653475272483111153228925636216608249440212700519276548235612306539432882851544703462564113820579647361341394760925760621365573526212773577567910429149055532079879557768343566692296951312370094600066968237549863893949468988213953295308853725716700807265413776379182378826315998291827601695077688950091344781506672190154921051980562121201768499807976949362601664546564081989144714914222914006262325250424327148068513135751790478962643004989433210522084869789384742142597119090706104827858117755815422155696149604364971098043538701528150693772328356771211343378541889184748447557916597763545274364739826183628303755011765653964305097680463806396279429876152910564231999766590590425049513904654365151579886659461532471566290711179740092829246103127447837064999599747960864181560943171843680843656254656574350430983826109532061595029691758122508517028516224799946223527799210652627654189089919878681338766488193924814899699302475458287233318373946772699334389968643852962569098871689157750025258015954942909290691002180556395734747443201682293731757474661054296410553896596286113695843284271020588724631473083275459026269716723916838402946645255667019700732165341933052844224418616520703146864690005664368587711767756661420449154323631486224031796739415163762354760536645052448848580215004086870750038041098919414116209216818904586883244431831538144599441256747955110748126584224920518431712111663061936125869927965953917459113440363398630607882635496716100768814214236728212637250609130919888379857366235003305038554966977301636782810717563898797466242904169944877745180520542994471917826569936090066181331601637580001141728941030497094978796771232464612296067190823398364750759757679475989630879109003183371743178997753009463846195048742815210410572444812490609419819739962361082191080505000055042572201444286209781737441656474729945198333287058091145242321561983225760875892325411290513161249412356396254248239782193495835371186558124724774826904706916991647026358707210914381858155717642556132342533118345498710563071338379266386092641997924532192059022096318874320571822702484102084023464246754510116417538926161897333136743447538941790778924407150533655959827623583583446946957457458099817293284095876108820104754712253069790506384702637241497861514023534617689301632146241980630898551742492836543791760722811233830498104969556871550053325306316268186940438216119239557527663438271612329474400913392736060700740087208482282520419635782985824500527002443911260573416746801880964159754056369209645790497605969029722281125113401192241073381395218616331327941790393047609956994942175227201341438681991978258957677754845497806588602746674745320850869042780404179043013586810787231252193723051189478974686868004520741923788997830754225719538271568476737772095584218510915380762115349439504372831785109160182507500343083154577326539797935840659840343317363022740445423612635122083795119070946153963005597631349087228906963527556993191861725888973765467904119659820340277658210442150587740808297772997013590848919947268491518989579476420683964317748865793287632528003293684875539322071166112002578366773925240977491651803588378886641072482193500674831997946594430405464089986156911613424320934366834197992288604457670707932507432614980198582845042957838492061926501641381620995553162086430415010369931983014775968816510658627643855274355462789075531630701934005309980715373475906282430560278503179349224398971756670731275686558058909328036280683517364460286189514683932384740533022247560839156297963740832753079944805693123413302264338164827534832015056969013131436121257651832304354088546301701971961815325849265724178100494952565261116455859423751598590546228919790306066762850391625565781984483911388370497020043239673651162701071346778780619329708380129800370467504768419579347087783854220297406287681326993182563302160187348995077558903798916805340249968526123011622396429844683558234902068253314687350213079834270444743495218027201404253824706475618827536626038571962700977947505056224102561431799848909384749806515042482174679184011944923697903917776115531336309773736425907321225753239116653481478109398047788738168844115189496446164242264996282546331981934876859124977130363357791958588908416808217498365545726432909034268205746511721497515308487890124557963080545054252511308634419821703928478044740569218185154913128699290810279541039836203377734949594236021306175217285901901945219779663274749824077198357055297995927542152773422912914832526616693621567657376671556513971359305882443442650712295576056510560371331155505690319792028420029094168554111528481842372806172307310842409267858416670950284840210887568564495973006554791187189527085542217765642641261480368561534826754359868435446216925753474119153756444844206486559795122516298680098608870780497271207527758067216689057269903443315409672278670996497958751213014629266801908263776572050727674324113675412407213857309023534253427845235160115065850190363961903038706679798186965771378898025012695878012888931925739313184066218663052146496440911891306825848607628435958336793001259588262089825445510355446911399794069956475160102722681615289770970648824701599529350744668399132258394090033459935227958358131190780961652498957081696502769614220960693359911912949698571333653756352810016483979236249447552815997196262613350285114755717947056829696360391576514086547181332699318772005829485525977657816472764769943972569534344428586670284191066074359009779395865572283452084540329077686459574574155053080918924827757448162164546674554396433608210691907392128816840090627239884214935299539213930243108689309875244481467206897164772295282051706244953844528159700672415800474567869229486251977003790324377587333730043382433678114640923311320075230795921985107600816838570661268248542800338491946077517167055430810963954377054040945384808443765204572267212228700837468185036424975827457111111604867018633716965691780165185892734457670332977639294501128704156856975307027498078460007177495149504635784269443652683320867873824502528353356338648709747348914257469103310496905504312668260363719887338277339779261998069947125426471182454897985950314806514150612614278471589371017699122936654241024831787036935425879357345550754282687799716798403577342490371278094193869706343645880859941836698873693492082760237658776085569836190513076477987294835066129120108288744207771277904539648847426099453161627190726714558686252500962669575072554397220183567445855678088060713567125757686127804845046886935580682910055406835604296370781928254756787984543464764133500230574057633180665230494844782415468899604455673061395570579026464763964189856415853033327236830081156600399193005735167391918433379199864040196920284293160093127912037828997375918155110686605027165085779453951162678579826443404574965338991767496619643412472726961575323108778147018140395512766598868776840934319948119381253424744342515154557798403063895667687142549396071682650329995207710046742470614054843370168191638824275367935343524054184006279711675280278003488920418780516924547563559620655690553229366409709327237603108580964783999101131276933793734651433491673027900289310017207857643791174700247938078663379805923054854957061473860725279597701031225576544819176953937571284824129020023123474751845846895473977764301390208296076178815987638056326495818363568826599232430196326401966457050302371213632184075500617880586014796625627775546933836015587743902335270545812564220917069972696739617486565088606758929663464994049291845820470099024799450384633698854532565090114226102599229672615677332420057597115880631249329845280679111418862332769333920312037132643652263253098411395123753827420055216283870382254764692894021137549907793257954180970969059629248388650816212875030857324212822171962279317139159572372052568258831906576117984664538507870047494300931330320076794248557655597554530411787320240990109268573804081179552719015304970489652333783991697524526599388134393745447673330263401124878883705386691628369429281010926593723310799025022715027124130977645613700427653439390946123610414525007079180441745338673745347657441080194617366133292296611268887473803439930758859813699663489881867137408208177761072435429578748827959003368226651721814539352566664503307590781924967990096155477816422689893833782163875628326547926657166655339264879085241859961799574206616689506981457465085356967236032900302877666298376012140368976699189568178592819399682781167952752694165393609835477233376608987457956626709826400988921308081058571001483722071981791023344583173889472975945845711210540291892754853677186240242937954798119159417191007582407099290532152207299227643023156469035468210137544538890407012325665571621328488718253167686996021198115359348329176501897407258629180233073178687524206819757357906406041555936515288226221709262440835203216267452176710314747197680652575107850809887764921101365791809510713178839838921121026589498221955261886994464342749905573798973734290524304511040187470877930206634655968567129309907018035183119155656141225711781176986463670804932900225986202450148793048928008554897800645129870832590591150851624958223568989370459714811512151617559144074391576484217687151369372791396643454952863272937530017711963182334984291447943467170998605944965254857464866481038739661422431007702384958138950106493228393946535761728751555124033235139845046769334645388880847534333397778829225976987320135634283482310150408807130294878713122804631734409526541179845306052391580670468249932339483159489737737983660269703187470181588012031117046410558839717654352168487590168023073310048707679171632073797841798627493729833492540836131581452879206652320928411624992575340403878349385847775933288373515256513848095736393575396931542555649631799427689022279698021853611019628213312422678783758889790436030733912055704086505645906698616918674916834733093396230900691021623388629348318509788847687684828803289505980511812491857256691277820324940685668884895323106441631865541458145616793259203950814715812827211535603455469844681543957452910795529994015110366822917802804606301861231571621160697148325665147990166733908177705492887476230410046713205941886393075573983917225868376328101829388761814184964208757466658752818100246129080109018836434341596036485379260000461219325386081485152678751428454803145481142234694757813398532350177690865666808721329703819268818151499195962009660820829165485265723517566644488670847905771300381349973444520518095419260382179531627628724124150332732385432721925083568042087973769087840195614040571280647005132764352477355107888967831208024556451555158244357629057019495165534141993668402396585907952038505729100535182540265282097860310482928868958613276059015448759227745990733234993746687611551439597451025597325394816156284810226752846127607517789383070123502260076582809117034091033736122541318795963026829739733778570909979962362205906637519182665234076932712855576952474690519781980852029116596718122487630371508160392597691102997053692391199306774417173510815758598808662359238515695143744072752086640729891411995370152103061625862860765876303473539012501499442363187272082557000805152955899939268813221779433184677516586839092727269459270517142528869642268137138527464101968490012175070668282747438326057305643731056611190894828943070096383229159390854625242819946522201594811603762983305508651514361581503823297899027826623787312194996024967987639679979967316065762913153623999688854357812355905611248330459647523976220270390623210862513287433896718275105680399061261749056653945548346218714106594434952478973182402787922801647938496136382511980944700884895152559023901736906285330645574562937219661575520218156957591977198239636300951099572617991493916344709860478459170606041508293709869531114062525590578510852789410535181974253938276372425815499048161120940372184192967037512293203204296320694964637951192046565276030748972646148601560955271460516241186797031920806276631722843327723340888008485406710144851806008649656427842888977640112405883780641626741224170634835611949880942011899750444311691308859964555874919180162771287894089886394328199451935348382359563729665558373076134111394177441578513336652516264820027689922865238410213521713712167040887336305472917768205466520281798427589965003044802931825519031978924282303624073515125220927096561702212151378898006590860678308752517056950132570747123486300505043080455658457426456076744832237796093531730760635449496095840402538016230462560132540694838610159118415312035309226673091593854830966097426136335113335905556493418038655628030057378013677645561904256334618463177431157416102741233652629206648412115371101702884839743065856832537906144719725695140172813081689531314998712244607554069831089626350033598872209438930276341448232213633722508664564337415262394641999467488449528377260550796607236055149476569112441159737916630091021719751426965207677813639520728293099670893496603738282945667253956583470012701171130546599868729520890228622741906177572011605016155484179723075139281858503319230064153649863712343666611019849151829216511405380311052692259103211907686648224537577916066927549319032430575070413093356320300050617242136789915462833050762155178433668098368734543976296250059930080540704209230078852329692552895455410706504907438870865717893383198502852330416118245240456279283068424712626283366958528900797123327622209703387511947577460897956885892652664761068958590055089016789015722079957655424425291803814649436640662842129001147712349023946567616664216195427368515285954316864985787819327598534388720986397334621495720568876080490056865883809296991911075016606203886885844121615049725025299824063430236074844755416188682442401298636303628590123405295158930143898848299965049525448596792186997071712956182495807438294331365022987305217011718292658405718831943052564207822043664753955058995591830612651231355087647112718888488319564977953270696898784429671038115549770166158232184734296703812330465877013150571170842317530830111301518105617993613473102133842903516479481758546983047178134712448614739748494836813775543466231284742174547225787523116453288816649165684383152280147024203666674591529209047439230950954538267650953939152285710756386217810242378944759671701977805646326668267237836327228621590400479358984910740624134618577831784452571608160436514554011260755693342992737957544294738334129710378445532055336683566002078280082259701568355281083041324770859898881224593630111576233043377936817717526710978821694913582203209697927793794358617761646641026517020054621870225449463621387278328672657782184609838852291285685036436747804437003430916306575148106146219385448356598204344152578646174467786096808214229321563109016115154996385955407783609088478955928654623439505487428696845141927380980731876891146672793038781953744624247165886014110035558558043388353443694556899304663221495631519492874368690384342590138575897710378067492361280052022248276196393986389894956181981620583449418358980370900429577844322939433913236391715234633593580053383300583037567620290979904659265966966057485306840793044002628903118956648275033863690829341692535182692351109716171183635296638646268815024666232008123095592487590226608739678155873996060576834426308890449901586840180569182044250464008473381277020239909260534471011592588773107828387638705002707960327419826769057192227502410548725853861483457651787232071055041220614629235954231923725726169041274884621920866450310497171267774022857724244502782301704211404001316406055712289995426988624469399031244135249570867400855493193454054797641689975641514530617957464409013513009969297481003142366454374966093553357951879723432142518981975386260305742890396238141808746899612362247404133159036588135736476136437875155766524006856795558381927910247700875250993441791854534381266785069700020699353906390178058530876224610605970910969626996410885814315239643247232907521274699420096203811932980860846393869128398064949258013263534319110041384828328934501316918083412055014427406253884239618366412553474069597736657770468995386100780306674899229312907681724586491085965934604928770034787022751695067977066875933768839537046951228995253704234372260361035204955711769949804712533119800201494634495245385499078865438091237303535584903857819433813951061890077792146140491544166499075091233387806195978212991748530134851947544520498061036889560868811228291461394393908606022764750831288995937787678057333811767536798989781439134565963710520395198076419724313757606793007816079299734810504619844927511097987772998472767206934102228080347307726055169045279679460782914427242364082613978798506844498597442266228183259575150250047963926093291161188597742564305343138736218774296026503030914265967081108138724747439298842142670740859495467722101580701513196194757136907716946758744201830152667726809187694576954846157259159884582078395508624516259077672352405870661346702187531176986454959622505481495715342927235431332860028181810608698698585132141483042583614337020036531771328781256711833414480872902437594944703552558660627736375527141718813369157567500609440141945851951656966989284169541668948776308830177759416709979776070786361260307014798234043968126534234696315695002588273765156698589551492512911783218809619254520480941123695873965789127549604555640811052450899798448912325140166623853806563682603763839148777996169091122185125900158847672051182247175333216196455305366799850760185013502311730778354247484804998780782748969927258746894224791028274479592274471379576001869015850596085027028595347156649445164414252099797354674238727058255492060722478338596681610890695295553209400571043811355593015947897770357586288079614843649464714470669658650045762751481972188552349926244727790510636596002060274533920345738501443281395528146848914709859062121055195251521669170981899237916376080894208214891547286618388227620687475936286183292515659656205744312267953585353930099032720811764431056301176209315470178858778263218075098435430166728020798821426177666248347671288723700196231934591181913869487701848212586280214481462959413930256303471889048518706435746585564654030551289466795071848685649311011928793948223451800042359905632638608325197692903781497960182456323717488291492882133933379122838344864858640675773411151399501445508672597811572654515557591394631595351402492277919473673376688430469873708857939692364255512805028281412975271930847659258361810399088510650795731801352562932089332303740623089422502992700918764650784823200246218734716912807785680761179592000666298769940781553726960517707551188079862986282412765456974126772797880755582260791734297438973072464988250999859400794956792710904918850349940416661459219376791801398465815732793136794204203312019937569320099961176726644767836416719186456784840981527815842238575514537295122810238633196323884890718729247357678225319423796421005751806845477679007599818311082101716554695424109643963838278434336880544653599331357453657157232694818605461769506977847479202745560592285343290396334539493285908547571570489406452438969843769295270755403791234031225283691096238089983539102513683256885665629344168306376256020337399459238804530038662210073308954792124692839125607716421588163233092624008138515128422747715209183753281516333352215709750483599944642109504756615928614236140112849146776641499318559031607766208161883876253364178485951934590802712516991663015131176993735177121613546385975905081358188229483478959649144999390874313374370410213911191821331968014690764761309819397748701224003620285721753286888800382530447769364766162005405627281818894377175575134192136504645016372205653714070118150248337165360869086011341811198928408446896165737636639824418517052466870087943718799830835395932297974567535266293563107115761279283153949857604530475716649680166568310570432337195040734844316239833080166231655241365560934131851912173717131576806161316436161961792918148586351896011076102243206875324180407614759439844924255196815985328306889210232867184800465221371836565077937183485438153044638274156193094584158785232093553448216172281123986681874445876203972469493397610100890612861911479400103458348265150328840216592779690213383923535486735042791690322179246908251130575651366452801881577045419166658037799115511981499134945249408118619231543727301714868875671925282916049037621734861472344247010901581387315781876998464672203869434675508201965659713029738415063599436288966624054532597050233277445891747528017514342825531125796970546575393926033380012235957415325041291906031663509116806988394685128087310605305913102137681329823405741849839354034351682677050073281393664353471012888615781757915578224398137206999832173462983370715321822258918378304930396028626137315195709059535506615915087701384997885946670877728579283834871907103173074199654438163789875012214910535905743644742934967045246723239811940672551475765518123207659889430786824656965022136927821406100567180641007737718767782629547165340702876573783513097306534756281068384791334151902070182472391294374308778778991594931374344197076647906082233577491056070002634863289291417837491978689937385754734751385946106391207518050103322771407154078352544152082630072448160392265190622705696967980671301359044930241682281308844054346465480313827978762645013400590945380593291111676263272666339678346281255971455694377192195853941194269851418126327430591997235317106011218147549341892524436320082446547265827317014434639275873925512694647911536206402561222781444933795635490195239517374911453906067092332350359301063494765180750378463228716251359971318933057990585020508396154741018709658975027664118892034462508438898912618199323558813612185597802336719490920086830695196820587126155365352757207680619298959566692821160671989738938283506885791884816500299392653977096986619580355506690398595116771237035635965577924595837416304510805236293752840881450448549359841582553161281343576243568734691454658312261911084544532674543044123530428998127744533824785527237138651912628440645453818940227947742877479923266314307612228470513410718934292411384638918954518998508377460105290718851131043987298608166819880853319713531917053474850562453730532489065555168430731958732361596543056089801429195494357653834569294660658032879375991743386444846611473393651792728751641381712441756594349224228718965000251614375003084434835676078522891120027174062909670832217776596318971918900556011240923085399231782556608430111373663741938637635430217142984387181923901832666543652368532899122522605274416372777408635103524582146701028655957127983166987048705034421542678998901699912935576460408802266717986902774139931565097937628443861479161348253591209663803320663234488864959290385475713047268496223029990150648397640274570141774521236292038467759762355481259022324678187828982223167334250826918412194925976736960359284340234449402055193903243957213624580438633758050188316242096582404253644132999276297424738026073858734075761823257929358401274217709074084682383452957156069047670550257134157556571823240387029151438975571421985371515872962457492226322574453673386531477582580888115841187234931532985481648305940498441368204084866965552861892344449450412634348472375142343910359136065506502973179699475558507346464723421384514104240821827280535948166936984904926769939118259744988541805936694923459484767570316256893100756766845965207548954555409384964098827654409760593534293827268882633991306325378887937048504570927929312585708504825813732056728894304972301170522903029676177584484346318770423919582300941298465648756546151125844270457235515227865880424682835669610678468420378768966024414762653037392469673205284562087707378433766900247244920090612208362653432031813798043889383128238458146905225300076862539277682052832434754057003335115045592208569978258415095453922594507516123603462664137295389555754150447392209222669634942557040592655377147129035937013091341085325535216583884280194353133689384917499731083202919828360358429229879197028335656889990145890063929882452359069464233794553715311331224180590195066356528303699045873426119729588550307262150336806733421583469622156083425910046880743802383909266326963903423806206437318408558728030317714616555762721437649362427968658987098414382517531886766670107779313499904819060474663724747818523539118810638907032139859784402905435103027094854370934394918204953379065240671512271341297254808217330261382927230285040386268071443885528340104454887166385914348405108606945773520541730939433343951223784634480771664154606318588437409549778419635504808843432363532335714206503424373855689409858899816213666378392358466055158441083448549920148403451506563871704143079223550878599765560918081921401738606306923414851489302039832205042981199047494654895578525865084989422573847507947927999676231612252431620665397724146165169016675146785833353044253449045910407614172403202759622387704381029551104292311712059195026167042961845613104088017526573500643412467065443425577315407404978086013270984000845666153353068789258674528315351367067306475800168445038017861725228418959969995274024404999363822859906060616950156079986428766207523074368143222532439830418057151185019174853665504020284261011095534923314214974626122675329235406269056321507908734544052383805597319423624033604259749533942707394049581806139205559244785230558243790780118347671696715329248716793849635616405939134306071832626549411951391292436457875543590554068776785567438742143547535510957474879866833993145108027093032828487792278822557336979943740644364115615786164236553882785705808685436549092274375703599630482288877250102814290880103534296803977597156677908756124606954818412244777077462881671626370500605099628224199897026479141504707593165102419588573300647699469679370052826575572431294582852612110078633874942714753247475893556544263331112766307127637762315390323300341567528094778477946239893159364071972726142319669747567885832937393396714028724951699798968299384073139338684099078853329896837307933476882722777086513869923765953190851782323107481256407415060278280070585111541379737783973521726473223977397966148698424237257607331133314107447335901078698855030827795646421820123553839292443026591466553020256888662121688566639830931172819270024893605142937834514142161907602010880347747462005857900755047871551230011259016223607421236732772433061267924167287169114633399319800981898384609849756599400899198368659781931522145905222252613417414399386619406958122306482171017863748622933469481294738876680476738535631886609149933311650327219874132350096833858581752026569491279480380523791595761563227817016385164590428723896909240929557468955672837348006869856495336710893829997267204828693410142908695596334642236928775198169777064731538084206850898461806852735974107119470919385139763627835390968369772749038696554973399941876582248189295088761136277259228117069933074962835047416131430778033052021119143078876165507192300166482797279439871172432701083959059704176021767891278364381365823364447684639619871991578506884398392210170486489873793662069075391805230389198876085072405757436549132075413506043446321236229253621323747784644441872222372052575905482975497355195932701566464183933255466180785253105012117906980640649849029298786765403365011593076889390097484526622123309427395983842673764881276548445928907864598849230890944362009742620275522856289596579363587358062262943618991241070493145434682728224449132983751066112457067038007254659364077472310002617334648609891634589507579617779721007967295222021246756762822763532180154878215841161826807129894241601588185774906865235082289423084428271368022342904499203615837829183867493678301048874756885420140507326314606796497924389766143575630456784428393667275545055561153163742374113579025510709689995838146470839281390911064965769784938449760943447378819589912734865560271604921446207137542300117447323147053513949248300042930671516623269250029191042002184048731686838258623409817833615147203937698355595717831940392993494116749825121055265261099563104759385885926414897091975573594150119916767164612051245600191023846195603502949343457255718397013494315758143416681847208641043293640359943724330068023196278814652547674861852901198722700339336009763042194882686853469382032492358185395661133807392514816269163470420979963732173860869057576604431108892895149202800341809115528379081883996234186377347577998875011158138268327487690519435612069464465162208674974100274732909901181035238834242791630942477689369013859658850869974502696798830834315198849486643179385123871995002523784004868444324630821348635071972541915472993945124031716373115023703084118598235501207558830050754674157406626918657279561238400897298498512869124249595938991885704990661358830471947243159049889599868843722703419358442376005028079977357234324588153979483051103050116934120702765767602705662278271846658421379265963444048498732455337424563575539113618990736411129065176680361811647932198355759597575431232102066999898522608310269625679577693364096194230567227065663743304579092698893171111731193650620549525524775194695006459449201521103461073780093485679268383488739553398680448017407340453072804511486401093974187956748789434747459669963373330925398316344892317401955424718876889202469781610966966258552486192787324497438379623315955479740712717640858618932121637989792362041875752742563475986483030846628747093703595591799100279214399370306255916470164828643657726318638545885096595449674932072902024270829952092910504691538340332529542065821465464174605067252313133077692821695411865048731826632431221050058450686608066595861900824444107430808355718773320191817318319895679904023557458781996474071431696093480657342460620405021483663808384930610412707616598701636659060743667629867162055323919103685872634591528019864898394793875109034970352390845516384997671401820594752987424339074677052919141744916464079565931543792605817682991135344535352316450866929800719614436860776689279347292754296849644619620767894147396826140375081793042589806145404208335757468073194968427716203536414513047822414209176941460929662161842543362227414669666131125245408222430513940423342660907682416630163749883396031254749879515305060818113296497433939759525715974726387342296543703047986210125758218397407001596217148263573092325399188213268536292191187786677712425726139690903947498703535282978237744396441317485576340187317185051463771663577491376692712299698355880107302930076201771784851834659064765566046394709431395167011450842683357427862192848192540476110524591646475586960819564913443300291093118117905274360280391092826534344219816965525269465352618411786596343145554435038434961127171609572665775844336715119487429865848565416472500648753587113407305520287707467015798544641450661942696029494121512133121064107789909883136229768937722096610548033688851116533916549392031080062319097381251289536860941855855853178596911989914973662106715833737214184409843350005602516297546360699182582332702761858590915048593782915373816263408855615435959788224699834574013647590951490669942910446439247742897313346079011219802136635611282574743256254734665683721955809718692948595492796139127046942489611486090878070426809103570345745182555091938141441882575349617801676036216154004733606467277096116126646761504968639256574356210877230239625640030310845074258529914039758381889159609594607413476417309728358012220948584969029410547393623630505165649747526698937714846194717812389516281489705598865153745569592183729872897828943468762343785266415036900782742602272904832498582533004499413328545883858217336769613088141680340948974885332222660651446815843258116634924299945752760815963699107687410327188596656525581541644813116783979381413784155269898404531493798311531326572769807777395211760682359157298211367210845442015429000087796511923938903156274622741137845160112985386039294050853335983026927252785376725898479504441544149757801246276712917088549300019538422596115953315456755134374391482952307814935300744110246280114514108803005804572925017647443786052007168046320869093511373560384016802783606791336468297382727019799955975576954754527851601071523147337581440848812548832014788135770048398335296044787907807275683571549680478888340745184931541517909653673540744708188779667278207866852130081917302541376069693928425917161220648622721670049502583074557303996833103120653575486976573859826505181948658929334866782628894751861201152579338950400655680146214637544666226079338926527021509129442860461991176437129224969348089664446113627736822616928495846533647026580773394008174468565182123200583631859741328988403282376145898199879777496981844960360867345453633758975513758917019099884750212830260791353426922509914923820741193059991622712335377817678489619947994436094060765946084801187104552833603989351835478586820729144840082798913947117069593261608211957024165793290285208752830657393978975822795589770801254611085138410084884929577272113315330739936118981733616842885124361630019257317280647733290072259249945722844410116382604293162030374559616161952101134132976264512437665466647327488723179102578058553087135675403408583634572011565963299518704965413359641542307293054257895602966596041654285140485105565918116270041852108965809076704527012352686106200265712991376948291178944745876688758980325167888738458035839202233431887025116829360647025826936344691733647740658319610358489241735411140452796972503985553661496894045677047121936814021491479632995590026027769820388230309951051936711473038052608828916130017425420487575027446294992745725022774520312868839330529256881397209129477129165102930067743151354750005758920180610551656511412579156774923501760991588785876745011075929442643604950584845281914451243156368181248814184701466657193238575908388463492198390990242103891773036933971835623586263832739389333068511013160199581945793774230282204338925469013324934536879771022225709882202080576958519756127360346521842526661089175517207220231227964905070127971839866744617009167440992988212061483163859754262973419634939062608986554160639690551360078127533083810953517170692678427121824435543074181139378017638805509858990491208278483526057519806940695286850354691574769476431764785056476875005378859749537468776524046715234253431219520512151926687039193563209656581359356547313326630190891941550400311728844291698476729842076019690727442391550413871746960095696257629541195798492104140147061422793023565295557568721038558093942774179139629229708206725013550167139202163513298932687097532338326588441653370715219466596917155759565500867343378084301823349142595846903911634916863340153913623825464600941519340300588319269128728861442218113345123605848836485357239304329193931414517670514823252222465576796534134497190780312482307828745766218060897714920380778316206007630940645568496430614364789094510312234287960000612376293294651721118810143093642116926602164627996461259737783550687252271040871429320694970743609426082725999867707071481121524252285595418632426551201218109307437301485799128232612856452723225360431468419006959024326094144109508551934583506684122880574871418021964031305399273367171425930323184490846820181455480892021065125648049232844945833069075658113485478403863419428804325457541812412971104034620567348954372406931498571445755503114316439625401775268321939033643199713359446971759426518591761855643011302483318081380482773675067829111318679056085895987607882465855876709688354941396227408275683195992374320145394642149206864071399666332690180623982655488775720431003785379381979943194187489416752880669536857722608301072147086939960906733031655873761619069967584370567745785454630863488650441483236468646515611463320882529512882824607760244143769550257228494810467445274511237825902567421590765040935670441459113093917048424712935082382041036695516123567632943696902912995322186189970516455619032762601498346814062380619849988037807880929625610092571466384509181456237233123343834135003716528452609207440271241497123023944589732321360651314374715458697505224617329034515186482326707669007823525850626216230389818662362714498939569042856451113842199120274301911586478224207114312795861477674441616185544783226240862893567005248072979902829563680133564290637148309168848479254241179561766160642652886040352037145013782846989507942835939814014048806355127409974769052319381980028974935593663113769153554740679049251525469959537231962860973644187488427754231102908140124946899896205610929967991687080349688467887176255318007881258338243464768494312097375743832628641456762248657089786980189799607480287311023472427899859346049625758547692116598000251640288988458031677358974919193053565247944899551847819478786847936780789073185928867693035934698111544983162239589297949749103004690540207387363724966721948853549379752762760077510729019898013706390334774990070736319209003387640106193671753319709183382160753643553366824384206369595066952721795607126581189366809634134017076829970156652388845068125318794720132630228968551964584062069262740082769220671879281353481925125521437418775769086519003583839234821961541233863348848321995943954325917411218346721476465126068139876885591632931670702491454816846633233181728689434033468807590711822583542231914214813838190149892860261837765460723724697264527862060491485557554959939057732922071579807099611183395216157603673891021631843146349092999430299674252857686097412923371175481559588438453231520886091439420465775881281510436659082343714080020058049459647768796529006873128390227886200458180424000143572791627054493575893118374951396856504509593854159960987668212444540240391930225938657384383722336640504981144282544791761724826178304248396677782477055135440562421899830633021630591801309432367263150961290328793475707169578523648219398746467469120584779569195494697027558905011256488596373910744322451434697229951862385350845346337103129033296360294487188314965520233908565474834533050849241279549532819650278505103381574643143601153415344872619198752800006093400235848165269238173793449133812943856501204713075629529195497360709077226929137603977407336042378539132258546548234769135809284503896626891506603418972600838818894821150402085110805066241089614735731819128406354973427533345743232942116205242746326562312613577548245631573531220719342151918504548985830631591357216304765532694105675974460474667750709588409733359979769084548831803402967813933531405915754605696369540432498244543482792043535803037220666327018732098498162401398683233658905051270507811661826078912819271733476555035860020896409861703585027300353660014081325640178589394992520104514672314816127164307728987432717324791234912275592293337039135710893272110749753204079652381271490644193655571273765476836978405700129003626527825871934538814533220975890457379062678524160214904014536290170391972171074877568083690168328906155787984622115699396450711233629604659995522745359118304354502701460582140018839604185020434066319576262609451101041937179989573966147160680940237833051032204775517407772724607853855904280056565546705886038714069034315472328186255259317544713235516977662872748771621085761024328907922744396237511729557134468386991446639833508789813353416023615968604444452726264750719165273585429374968715703928790632242320336601527734003673909880173004241455401165001158970544699181973167193158475139189349249374721223668805828614898569922806565876961226603616305470326030359044628943618603507820603375866567955677246965009020206188362103997273422326170635567549860094056569622812443079466905588856774220399320286884743601512947473438265811028733745838529036121764071967079191856583977362090798823304625906700569013734905751108404802181086614162384958648473813530076920869737045894514144138664787621500956980508370923725377368063147614999789434332814329398123128134100477478544037321785718231772112491678780126010626453256369460485468314771237417949004724879760697876876715478410343935196804220408510415428310378281775163940592892248478769327306456536066359523642039304853231277586532354456170004188397677767108509113014974886992749203900895427247031040575368312976067812600929503853863110247464499594708220079538983926597055611115407201614019292099279508833752259843136453393685694730459629363375423535924102774427483883520128095302918592030702295523517968848602293686104738362484784942976915589443672531425665455211351801781506796560533258422111323450559438388802720843436384811032033312211529594897147781883231450965125583325889031969480164690496440244081850850713307311527222545000866076060778756318243589790618396340327751475400354105652815435401304689340013961302207717302017096901481823697297888160472974865255051993489721079060112777797106096819259512994151390598630223964998044066621210509959566298276853924652517966409856106139821537822031828904294712886179528864750891396207606794974058528519464609985786839663121500060438734722710233422865308185740197293497181857421231557731845043010772281628244754847583536508849285117832516788234708940871915703202567345344985995240851620822186767897765304613318871635557353929433064728891684631924345800801621323046185208272056178452573554268415617284057140052656049749234306806440483817541704879052108585422166893438483179926710367252162951518391823052008925795540545069961992653859651513379423498230333852044160188345909379283798473437728685353847721335553372579765283005290938052184570850393252740960870146858894172657564305763883731319788080080148624379999393197726010899512859756550014725062238546767623938701884553433855853952171401567553850447961102854697704796552065440206260845667967509385745536940671937269558289083513977465574686842937783446969330246650738831934119105807293991777510909800624023328288606927546696377169190823915435252517654263821146579794153576847761495666955007306523584536054544197501851481168187577540534988331520873256322735168863363223261114216007205918597874308143034019980422772676047554467981442853439126431379961918281164971373309414113423192733992069865746830139804793178428380223149659724829264440213204465223726111620295654189483150020327989306788799873132756890723374273329952443915551158752010656575286435663520026033905590644416900676212169068439780596502336097425622895197886228267408170577441305539315584753593484979772583849541056175465364666569406098516839678086105197767627521175808016111297781223677852453506291324786024194995627889736999081941598183736519197205506869543703646476884026341259100318034985520369807382343035985231426979866581451716526749942644344220091724183072769961388857194777349100178489487798623878502959344578791578665087644195619550882698571812683452767410411148348383234090522802979150658818565615309554044540679458644298092562724084754513056027654072604227572180061010409328297920724546957778346874904715030360030554492224328287331315943751675592286585450783283053051208803421697044558725249920193034943546770146905291863206666239698097629676343251967706759658189971010130237491974643877277768567153901928914079103374510383335854768100880202888088206867244929635013677705113950656734120650938365162321965327010062504346049173534451206827369544577634423016285167559208106862151830017763763588796682848304283438165516830190657314337640361600050814515160176061766581166827630177621303653342968845671112946015560837987391798699119254397263626029846099936217401849319544706217676270986152141126539327399170482724206883850464401022744223893860017398644712064652885834604467052128718163318409300508809396921839555056040540793899523153961091374405072433670743466989137274004141537694595113753347692340626005637219407068977556310001991645331972961369725803915633156034318743095776892379440433686931242894566963844443764485718182018940577525142081225127044541385654975087121120276605232303249245438732818939408838880146468428112849776649093198108426652030844733321169062066685293822991381627406857847878229468587482827347500653407938091362098953589424836965219668876831828737440845233394509456621121157438901705391068854545368318024212634397603049525224801916612477422756869904066734602950209566535916329404489957224141106132978437257694552827908180571581935997097338350036056142602210082856153531397949710350625354112484858079295152681845362943046538348730996061262522259039531864653877954573187103953088897854871613659726984698480993243709804884311996765667339680967304183762563967707007022434647785409941139578011223464367077887633612990640560183968287154947975505483300414961712298106662905064418820581464964286342645658882822280227392947367102243144191600898184965478670142656028165198596084983053731875364135062746195575085566858611860719618134480247627336731182016503818058734084463902562628423578671863198872517582848873710651035738588001719112000687251772820112657756887119709922130872637506790622507324252839881798853670685944023290413179833720373517186811329618502865267984347955129244337588986954121348882520002676507920560273004262502919900307689732024359653276874870784923065827123144923667284105369226039641711658346784751196978584046933966069947739330468445185717992723715775431410001912312845248042718883935773876070889619216200050613216446237651241109302286865766802034842442744119192982444899967183009957551537526743382559200061880598757500252846298189487967867932958526876735454749767250473684381891217334448724364181382286172070729247897861954413325172076675472391495268627777565829003571824359048271984657671564108635006438582608377872888283585825587055475946929820981053840155850574912687904955284597813250095324246638115374496043726632643263874271685522727108370896821932106569172015533057066669048148889784320181553232607902967450397550749548743867131199999373306839918002236611983841905196015740109380444216551376615276181099592353470965429918524963645799725092265843522732223023319532874935454841158099702384406590753095778570373781999946129577282983738797309656111885374614778558827185322852576050761560764896445056998168491832139702322009427106555487874872687175988756228986404475704827846489207366058988349897229744502218269429848869327695605884070402711265614949134174736623404116147801444531467411707532332455144845624270869701559291082792476759114909846374800848313169518566326463071576189410265293032863644787191474015399887230297242760558182828492093899317382686507202476208592246414699416769515341973514778870642778478809180706810801467821845381629081806468143325463117935902992947176417138148390215776235988907999119811437664127355182756891939707171818509332496456785919766083979314641536532198133853867447332643601531866547728402142365990346140836791096753815552845964559933126714231700678515262220134238617982865714016780148922076886172010756467239381930705302722911873384154182484314596475841548968715395980810417502209792116692063786804484281693893118887786915869888136019665480539325756592676587963022993403903691185983126748407240711278664320006757570734607438837326478881618636891870565288851662041461332105476257620472127783013217184805244989652199229895599839625427862209374995761889508975950197524370448446015233544771366228437777371925580143600159180992482350630357781233346241118383082200983012236620453405901927025351908275224565921568911876140395041255465468634946817502846029160372503227106503356241470327113828200977444267522750709191182261049235960125423901022340652107369774420389012005585731117579568520000830521712462585443666166401150981242364635764119940955293220985212197212736095012459207189323631135648910121536015116016579771550245738818321931042236747178063074248095288926697967010132446381388046939034204150307933864515636584067619039762654146980708636389803752560687803020035793508970698750738770408151922558639974445064198466574280362151793636908246284116164532110615820751887914049388025183612099818716329264770227725305260474651280072078723936356728497892839810858470560913083795058062659276922135884003739082774074551693450061858034466921709681833648716436331209554504028974121260506075826371167324360850701589997607829707602778661943648166303679746401491270998231504470535939322336256688874663925077872973816226661317212176353917218743672356315632694058699274865855507490173101719337533766295017017278540512811412042269715041719664719485272247242954121981480178208789726125132256221033892856674486287566600338615988118513370725948665918037148832993647442884580174018321629093792971630191913317118246967584776132704920474522333564909828577603808157680027422719422218953109688139309090357422893090306730825189353300434242535112994027780673276626204906414480398804981184460055066155959578785499826929597700916885623050624125761209668820406906064828692007333484560866613485811666110134356852580217898126970146807327478554585819068080152619267987549100527056539113316494027129239182082990502420918271048398784354477179180872003697156894427667941772019118305396394035836718189671876814661870345274167713449404644002399219365614748945591560254055006252297289138081509667697763715767867032131442995236961746523735601510926858071980844724588118852486714697953150091823357292200159208603350786398755554895089064957765831663148204494129424665941688843075638897105474037109716851626243448218975088234046487565081122689238761645923432857249682908389738556123971983449432788786940962439563568108664788788199015264486799004922075706852634038460658914979688108266110774176592600948816664736932230575731142587740281211828903269305318386150353620207182204570478238982357651025185756209238984749080953212930611146781328643948215454605384109122843993283708546750428886233454279824328883574012704970436140777184284461798701119811320298943462219172314970589980296604863527594021878592718390063061626564106438718034570701549283593010225627686320944297650787415036926415670780824840591545388778821725470274544871703837003760294708868463487845536477466473913989049744510098699333573023858168249377328732957220752156582889119997026083133419133768643159174747381884069720909618361288247672587470386186650473133731067261385894275918069250036611287651098878574542997245922826119560665018272202692663153086398119899859411149707771280013640260627315246229965418545146664941407902524746643785735965303498301974437134596227668545606060154282839802091185464660545300569360581754562673458370785474438394669151947164380178929639147004433012911361345603009057936776102865039386585836826264489481030298912579971027581942473375105964308524345167052128464168517886719131699604172439525549673357895466956277483384390690624771015048572740457878465973387421351544768012515254668503840997180842121847546694267100611234345626353950394065384763372351117822268494333764038549244768379510531949475066233439746234903064691034938127166447682033170821455589053976209570570772996756725363142241637619175601062444447050459532544184516270876469579555178153896546646102691083035221467059360937133397181449580167692897130022039909082625669924794076936654652709686115217901968173797761471921663182565323148620349300595559447882315500267939638155400099601482005750347313222463851956530348216697239124187718939317975262768469175353508636628726512112222705863630630639276654181366639835174626054828681163606289323971018272064143859506337226902990356558939027257477185025876933783886855936839345036421285948950362019468533103618225471337494910563905146988663364460192494682103506554249234475560895848712793867462357656044662298427559579369364969951258600263590494479697746688008812793860020922790817667760287484127635955927613659030091368516359098876755886556240807905531906759162881866945091447899659139996942312824156497959390022174473520889761582592242173380604475333027312756461604124818922198196297317620451732727158759422944264312953709147990239105006079278080247480908515784969790052022624416544375401469380354193748300537381226057707109879512599573867273280942330806228450532995787839619495917406455530029029325626011663257577554396527141303801308049239906827450167994736709258003717859305182311213539672659137161850205464676370277563787116053055801394653132858309656946709598547193750951416214373454039442454984039421468103384080584597496363477599488927730433270287480363702279365803562433452424603973349397769492300194100084699250922818258714832638415790625021308939892944221410094900604054940565667561232058636827917020984629070764357117529291746870192771944586423587326065090047739903404136887793747331182708869778951340213307319555372087172333804630957914344693284593957866350400170783599846643020278221513991984680433164402490880547073438926939285268340042723906410918916946820184687826458700313411161318769463740542751176689703646019029574680262400606054502537002674892857028777844611322047887795424199860283949237689454127463525474947408996691645505764258470872763776083327983189410838946423396040251251643399219831682104057519163099089821311939966082308895074127102330676993842263873800010441935786079581933909799323870118665652133434564075963560495179277022532009176789290492011359207944359083861134936976860845101180184056879191420166718671735661121969059012222189905710392818655136862684075770295528006073641035410537996070557171349350881482580622659573098170807989062035786510581820583821912850856065565063875200770237042853160148021956825962657481131998567266097043169689255038532376544757703767707709660924413873079928701835504411338330097541813243845388576690975624498197379347192969342150367346079126762481894154015115948625764089180482435472167004647548954212119814220469781585937781808921343878381477180292532113170929622125838967010232334375302947348652159078789036697482835888231710146185139586934704991396546535563034560103019329775780735457448219480025357497410700436756735801265841672896588013833459119331695933281036451578439684972108941837018152583209193501112413680819818074438048590551670651487130903341129174432192553018248736326013742042026316944591466633660446458370659242087938275796688056635904921495231506348358382891832634020090996306502971290395465957126598663062404215475935679712439069651892316268701083857350588377267912610172423988917096789512524704309063825857649195658128345454911779222878636923427458444148811171505612772078379700848110954973283895043879588204686006034353468766231056845383097138367999583684423237095738449994457484352851887693018902885208591995505662834050559058288718873483566554601427163894250881969204049266576091127655712180166017056949616822672024222765777026491744446785288663594149921375460876156912185260714913103335565958097173589703599012373149561679388252749343122911817357974240912218091613130118017436568532425488037551337715869626942859419258726414405485051660845000427892259345899494580790623108936048576405756359917872928081189866491103431755907244512108856504150372370204556647220435022365969256712741308351083514155770151749516373993756661008303177577610746527400898294226349823109005179920049999959286517743676759521947799844917248832753724942299320651634376363494844648048539565982613588599578663107514146058170577120208302969058404741773935398075038794190738966148894700887444376569486808512043436355180220538490701073809502409519667978854903779942595179948533497576023588954310394224864599823254043954328915004044511146503437369362161377921486868212332948450679835363341740668526362556107406901853387545125575095086147721835973131325799709728026125772438826730031733397391195160203427320571410283724412724851440063890477183267522223318512431684724452868040735340207306088713183587717524187000088036419619640351756330873377478457795477709165718566539186577129062562235928433513849445221336688103721908388194780792599192909701483843869251238741388790781900460669176635947646031274958914870917726751101469662709777177973719104843998180091646364518340595102716981891010213374783295896829094123027608656783832353823049565361358858154497358532972138820530598475737856312168059794189680794286198057454842489708042972628926529944584478987421815311113180792793910715498907238366988177770785523554075975176556112610281508142363289566685996937319640407844060189543738665139230782234444594843531225828915339690077056743419655355658115295460547863981900575283568870813851086016973395545567655729249364522570938642192693092067605787110718566093206223010510358307989730229951692805280117782087260948038100161486849164164142761436922834317593793534232574735659618452253125093401645569313543025836339173763638996180882554328481874228536109380969507243930367631113308982449921259096621574204789073097869187679522251672888889943161442243449069347101626284805419572560235101220760697844089607945656119932948129245245681104407972994107710827673590162811013890748386571106098020499605972862601621926550866878566453977083039505631327894062716914942238205453509598849607106859709095496046432743310792145109583376324911431748099484848694909110706864630729037903533213568553287934389204212268081718155049532499604101070847532737568647689442504141620639119555587381722892417145576355014360563349970169625308505014932607660987423257887669818206094743070317049760501046655732127283292950426469109967654730795154764225089237532096998621222826674595147705959358498865453312199594067173204779068571375656813466180471626294818230829260659388919658711897949011883084155430627004566094478234762199795990522569525337649303732361034862468831844886473488526796392461379097083227765296504594197789331310861331894920072806208793106874814637172126543623363171266335805049021001676390006329176174535041893930317093072019566238253300546833139869360084592971948014281596966249679339586625564887878045505940920674592662839105817283135301770751308077309790501013935048332909517344286908707529296777508251444874539434904867781430422560680920989705388830424034686407518263184548311972935608489665964921764133719492890552478272003586132637663530037099129412416362558623796089590739903946885781170283193586089596161435303639701233111786562506938779842548362380902693448768976766965572112808066201625030623583254412790465029808112675141195863964274420383419450864053532718670339204831297401995243475172200264824060244444940474949235897612441801199897941404216075504627326457395481680907459993800646621149055608307400836436759455253314764162031667877262346240813624024074357782672656764181538904034521581043086371018694299671878035580129360583891960703635270131866182228566371674081554350563259398491309325687065261166951074007187475357349584654382106554712000847760013831715277310503256625801231583835791882933289896360045689426569275604541666898849419847725807933468106713555788330449884610417332051105460819061553526508881623458438766741832338718078099581874847095838068728608689894153692873100597806627003559596254062643090567534733131944603308228455714048725026647515330424253992176337171163427180351903274373048575906992447719254193422056469139368431068333712314189948130383121186213528225085311776684407068562932498502108750169611292035170538893287169747867752476455227552368289235974657680012805017367780609657830617259111251272339895370038546430213665175045194421181155092874106134498983357505348050491467235788740297487053362241917971956927182929219832132032820434840030204260680531330510330064597542872934830894966386677144051485714682543361677066655504059110182245219115017941386142324739305576212707409372288056430307958924429617399860722425529253195416317634468739863789922180534571025425727442034281205512727050377100411801698101193654040154842732117192669020662233428284707228282949061263317367003500282754300535941374772822262881055928651927947191397776319169525740596002930182908858894154750627902202281786992844242891294884266872025678565080456115342064666367237780070035655620784851536179828408459933833757448770035265802103449083437019469918851066519272490109087193887022351715460990712395832237406304819495990968854094608096412522240389193339954369159623079344298386455109764491952702916524995493510092637110195106706806511746204594791369688036969659748717814588659070738844044137179733845335715556692848208195328524483197781277835860771312036871557612135121415037102573253663760218704799176321847819370965797746413664679208671597705847933903164743771675752333133147586618338477465731106833310422548149508150962097577726186746450010572534326169777015595560385116437412389973318997898516892669652270060709661002790959512998393704310784959396471400151732632677326627196174046308943639282978797258129476846840106110174657931920492741350590957889022447559136603172787807513038736779741581288500258601536426425047023728998935345981591980561689361554024598221981780041467183106102750309933600131602238296252527753625479391900957046804735046311042398771931264177564179717042664578514320333327656197873689548719552958417634112319670120304527845595849119359168977420581235084405266441957497065013773746730675365273458147345716941245954951882680438746665075571834265450113506753705570402676887748406682737571745011630884464673332581432536769590726312875101653671330773981109051996352139517784719839320696260999846268080575786010406183137584074161297087327753459644544551294158361375165687693819095375455848336863561244231704256337439022275860689218968699257124558824228590379850927590288460361194904134338809786014115815281350373095266368232018710359801111774055025808923655318792982926188938201228525067782427401242954422130838148516389828920753303447890782139242775904904235212242585198754781509965149092403338234792567588252879020151819973788751636851999112402594850779800663063200654550136113222362118908882144771801069092455609645410136740242189568709229639418183218199585370242704893994562159890417865377850937963042171687460742017487216781137592917022387156447009682971184048657548267792362554638850784603235141231292036891670613896684624273450559635519532130288096673431997871379265969668926352142251300469434101686520800345282264998128500267213133165858818303829665630764323849897064439275041795361484239685447989426368446768465735267575463181058850671562506563484954398639738262046164308274599618918807681504040690300998763652022601458730107219398768061010095353771550485406521049696018652989037887937185308462137653147072170500703647364532661943407796977940142278530495766068512646506382612811586727048683930449283451957447605969789922915460599619745718905477654105648135709068375642107888675626607909809509192595746274555725905573113480812751088444503910224120550189255269017978015295942119586383327532902034146870667389162406913826744895366415682033898612944580690696192067560992845120019633095129646309841006118478338630959527561961958238966410137420700317136802918686984111813768658195694470066010192700317046108963622363556210751695130813303322790548966750253747669932321275984293412844742341136323101658178279553304501670636735802541334576955994181741012236063541487032998682639063872653104919373116868106321578360382920293344044290982923162206128088328286540213779928968717796623527796447035600792387796600016016470628305441285054606560219574061353531109020439992002155622236321833516001148458807333441972411772359649969402499648230736397116975698348007886614453263969119299690511580024239447721263106230084003286162453696736565630202112292492460687739747535293199209688906174503723128343541964455141032306623371453651003097870087105692637896920770468285392210336329532733675122314574365192611254427064117942831813136465762752162882372285466732817364369280353711215839193348737395407130376499490606471535802814032947787064498078966250927882244222651594609788793707137075777673068345628705165823840126458753369359914395584471519780771178846533737429433179863415593817733702772112642508138056538299000186777685214667569474023805318570056345808737449291451564134691844648691950122707918620354769182677730614928130875526240288112421695606446253417679111539025328653129653762826636200161757742360155388272710165859378205124613837723449639370200628216766821419395367307678145597617455272117688055145046227402350216056630827057001933273459311223308750181347115075462163944089423833625753732125887737013087434754742153050010460490902671889189424628160725902460309112203322984811095231509584414562134397066995974074586002436601309771678872318499993273501111390532604856254929760757086385513231691671762462665147751713675297774572880744261657431027152820873164018045571125432112803399028667889145524984785060701490816932139910869593308065013703858667562282096960140262221279507133803925151217930073267835168359904263330228764074419273421686315499831584612353459202069820960524630434686517669402235850597022542538136159430059684837869976255088412939230167588789180659846728807179667829219539453677622508088963031315019583522388681394436490151336143489691330122379060853326403222409133136576112095361213077548369747534193288001095730751439867786919826632832982113783951242193092216305895897591595097295295405332829165468278651610568416092156428658466664142126931654025878144769175455073271348041898940193139072442894988756320969337533480941446334672472386897866004222623587013441425642140102840254421378300858055201816538743350610604993601730444919028095458495024177798123367510209263576349402478317572579945773306597846199406446728657649802491480141034998527128943184129042541871471346950555045915204732343563269449669084951040654194327364399779774699306080971558360758647467005651548638307670871659817760540960968135524383834978147457342501009385084976812347077387680088190583326000836144208825555064991770106432074240797593467418952246263439128847852862362154669876987567988953999207876468871045642613014023033007611246894364608975095921633095895298285156417192750276002461901922810889621748914060526198528864136896799711156090203211347626812798947703556965906379613267203361873975979971847362378252250198856276258132807086213003136739161585139323731469311662005296819357440145286598666561902814565836284587277164119885639653432993387152063419393711398060341551039790353699362436062610166296308104768717824405532733521746814788269941108900593961281762099782934576161928514812701476069953955575079521266691914946545279040956938921740783970515724285188633735426033578715726671180730820444074157087364971038013935636761619859843990196773101577471726771607893507222900495795369396666552309714114692977050687467809587308175505286241895544962793695214237606961703091476385770284712362478609102600469454213494629465078392267870816700397425641134250885280397144677971615299417085796826887053949860009852595399763129647793432285403525970677319325792192631797789796612882306686191988875348700572488838593105193150663169376300830790328384722116202956609589791518096776155485601792543237031025496247641367987842449554016589502536393534508367561103785816984537425003749359277140281584892107816705831187287721484887231540510916062038821783051173665961071741705498249164886904745619670267499854300257962724626660089039607266589107987584679579937837891713968989203639609794798813895132209595285747282257230463406010712500626657931693656194537889205054139286405833466845794104717947204655450677423092412899537364620056948673867420795564874311420815379847494150662754402252689508729371869275629854201818873591755275806530514816826670193531961393066799883464927050584207093546335682123870717039198863078706098477651115342822950480091816299825640225359889610162438312362716318385400656357251159611647441873409409675380736355424993056901626872073514244030965673119364854990154857406255131233747522072405365973413635941792639780734516522831917992684843600275823621042539364281459500999747452926949135333697217585653303914004830870825989756918826048477999911191790317069172660276143904028141668699704065730480566754179457454501496105351975703539635750349024952613036511382450077083261232881935236846089904043874690744517010950217595315232677591198799525000823164328599391793172642799400816601963360552636534082910961555178755913430944444698458705706785399244563123751727414959232091392442238561185837485443350206522683010399383110282226641568851689867892201899350324067950411860833059380929852516924849304895557961562300971089742052836023756337477521419178870781481805609498974725660321901451743342493197096249959041553736468033155463871667771908999535594321171034296199066586962851879796267736788979457927395791272117338942225898508680523476531791459749600832247178516687972555377697074452834194445617881496314119719783920907592518538466308325350911489150818605790191321700803071823428157714712315722683421887232105172956939465951497264650104994435907806370110779554561104959743245725030355010394783602475882485575259499648441665222601556950398215730485845576991410025723578495905486668941243240036933296309762685376841242376518934951238292154135433824907174159379223682315983260702358995038821862262021452292805776422479353994369735058663106540735372090908528558215991612489315406137865231554219045795206907849638118538283973573916958204856338843778163601175994878379342690921503856817604056373637538702162760496219297088530378083225892121452126922667508349344451942096519157612159784334496572155488405636702258398103532960127827134967583191226232698434786274395832538626321437408132964831231957758811376605607954020262237431050780252239960653068972268468388351038846555981539162859343026788404868394781163881104159725986203173580909175269047919456080762654407678664522569496450820615647875522452606643599358779314734142401268870498898024595275885313245071982126992545078033294697732729469137382955111103035916438365034770972379110266948124692465585892781758823341226275377240682398767027990906673285600797171091900655694732731307637333087616340793402612043753891186657682590719302224544018451551165331276392754020847283004380965800769706654929856594898089161723741093809495506237231300585317685010613003133499002647532792019328168008113571266550380055048830167250363062807329471137106354242059368212610444267300555562499130758171835381417164395947912552126354236690933012430673977311213456823106093325961069768123022482643586083039413646775595843705115535735580548059676118344214968035923146523228536498055311083816845972871719291824463268492543964578523267465779704110347553697592182624225639879842084883971478298401900834666064205587904331968449487110926048910411652824044926538840542359236210324818457129148430483032996372549385992976768044037991812764362523447818692478187599000126993089032070314497028298898894089121809429728589393317559623688159268009976066328407107185304089524686959474935544857379706950364242410930461641739945750273995494656840596439833101438066794855708547955870862981637529307829352839235655274307869676763987829263100244772881284414837736529924392776713208883511942343004139016554425002124508343200996030904417762777238220405930241515250872924453016662320392493540432885823156070404896453374015632603771182612355738830369546866671674261178533402849269436685276259446650503111348314036821263901125723382473974610800576684326598363096975136750444540620641721576606502651750309231599176091652351026729718646052758355401084178050766041043205989463677690040797173530146358141046587708681958138857087603621436883800690172019749139243598272938327965196485763317151531798614521398240554770175725700010762444975029515785900042591422058905124346791147880223415743941581429643134240301996476440885530291163788790271050515667656917098532125353073987389879781008020565078436617163683249577534734111931063322323634016833122712301490328595085783290711532878925640509214420668368347122116130994346460073996481214126890212692605474055967070627062113061365387461834081017399545931885740548691097414241325958143602979315062774711772552886939531611882047448423521152193676392767173628537928990805051990619469650230786503462549514219946189293473939109010023204766339218680927359912147895120100965100943025142194348680068455262270399686475039588357175904212524028261068238365701301975170678340566991452364302094794076453259026007947177648736994485411040909447463853985453120502753887560723531309282469285167612154283730752842819546115191699495083338806593741980911291634260994597610271525582465206820764442122735763804552274153850393226910951949414312686743330863907839754296318337771262976814484950393713254107836110174912678089385829405174212274028058826903059170935829200027023942459569914021696027825095848337947373887686147348803246444599138442931395949470574631313012921620258851547773725441170126640733731771672157979184403286670543836189212722925308868756235652522446057433301232849576709860925120146321766858107255076814084236733538101366413788473650718881261133814653860586746134530350934540083713817077490130187699860852569991448472028455377699409730271542911667439948018950741597391174104475357072824097502480770743147134262118720094096903997240427316981715024163149546418462630398622471020655578674438717413677005638334699679226185501075071976174737402351031431495256672798801419450811940891269831953306832242356415478050037917046991197965106986660367089109689482216085647498260757179982187081429644941938411419948341222376088840099666664513352819201530324715028108570965553664274986660806562325003069911735079971890432401683758626508209023557619993922584171494863134455206112413925902356064031164232896262042592462281382881089620207746519321017404437185423909336818999979679439017259101663731829712238166619138833710241488471749187877426319459604671525618290143191051299821008432263329458750742950423402335990349928271123535862766801914275493583474077263203240488385730133100912883655311568496251715707757011472643863250235744083958601460949851708950528906028402621028234448563159379379284845778270050744090269401937137167213553527490180635265784695432617910438458286456951098131972829381141906399920909702700540761972490974428600719683399361606225124437293926875942437265273822130774153845627126070707836861073588935673317331225511769307869275456477747469257210441300869323338699239828638744254751604218483607038967774333550081743165877777858055366265709329931690990416076451361422852064511404398646615644145101435314790574653462341553482395888626440625181675129189768431969558586644969887587737870110358650328622508239900102945045689027131781769653214371476826008392305840380824751067190779581728202995637805798248871696828579627860685068064261882982913337507389106297563650280309591805222449587989209989808993003453208718134937237360180251631517481703476952913410642551252974233098564658910953596854293811992898071642588431285754386259890671638335035209979057100254472311557348205855770431811377177447876261240107574471977704597951055094689426262581811274336808144086192698725044526330551897546940797282269728679341601633889056918972304995452213903702493582039038526239750716793857829585686968345649957610983466242140481779012631914567376596936882932718237089151946064480428047429484552534230413880725575617568664401697343497258654400639096060415166525170864647717883534944452461466184804108364012586489977327097458864099488215568949697871028174141434992906205836361047576825723639227355013947619458840823641964711814977374537415658169920990762868656363958387091948863053692888006216577589089500569788603871317057478535362173323359010628563582266573367576992320950173158922448705244026934224761081533924043803297096469053551007555370449158028934896567164936896855296066178628151716286560417198745113458862427693065095439323830970479139065138461138326426535426154253347321725441288832809301038322176022240043922101432175210711291252971482668066327613084183741079725159269688246127551769438865827780002035513674093692356557542959829503037843088594835947315676530765814409095136316520974039683113354606375529801604508293528077300564992340636514000328926897964962176804876043644490225235304480802960126997850423498723873804710831705992807377973820488454715444668626455027507176706969051491642716561737378930785807672063589461967036277535760936006017065264814492744395721886187370992662005918536339838071364298535884305261175268533884068669431802068760289081868262432869637025161499909602177140058831698139351434692460544869010276365470648571609853721618140976709333174187495557012758112301374322270817597413042925625307322690809593601535530088035890886702233150157820023651527715225104510233408712934349822450018179776271458578412229957669434585630843727815687439373973181092320236999912982107171663205667338566862184414253737805275992832526909303029030132259970802420666949306917154302616846311274489600845325838606992911840908169405583944302967766276612858436678741838961001181558585900745911967268467839879326502729139471693278141130881064457296660661400436636391179756087445788066181304509880514446450089709290500012125608708512744132183624046064388886618926208349959818590754091561610191972159468509318609604451158720902039706211062760383784133967802931463500734804191158383067210571986176038506917768160775700870994593408602002814415751163444932226196956930197767171423250240874441711318690118123594321528690868243734762020763882125314010780076528871228298087039653097936610290522939354147243839053503845250194309334893255337698523290291299877629540763384595331968062207757840092904003050079265649908749761106448138741967349586887969440221649769395836747150034632446074094388581293111369173953853705581639631286305513002238932665283904833437539620763213405733339125443103778152420569013123959049785420505080508518653507196856197627637018420477800635904245835484426764301687548323555461697368435488882020618896062399819505101167575765363759654383636208563155819303067876688035307799994414716797479801727660465574623623863690542689951056564071350628282239491875966190375136440074246889375601754909212637991183697856387316979456982551462878724959305042155884554362708614237572179662032043493897756326727089356090724767021589777977718377425915506867340061936263561932872196730985174865210996864555036511637849119565620031963132925856916747424685231139107576507308605905959865715162641292293695034832814095583553908525844128083142698142010419712922257400698645609261567956217350929112042350742750290486346976829396609087299208403426232488402484648567964478828469510958466464172038781073632198960560693787402171622552056867507724823061801327340069409206874044606606941036958227164461284909862890537428511437088342564348760759185311644765230765995701738262272048617718765205210809826334463041233802997109951307553952899169963154971775850310443458306833364312061341591586559937262138956222486301723229586763769220791294237768223594957480045894161059497142370620868521827169422196465330718551687874979030090524456750575705020908804956996369353821767930918662602086266808106426052028772980584260851255697660810156023063562673016322079208895741686427910707024785733826507449780648377727270003585201181077813008309397420770860691800179879791514264262912977424238295876592507678227082791033272822922478388968009831548876821720827405886946320706017223001214157134450209404570276535111818493982622861303109726651289383093945160176730081967354429370273200756330516866872925821182806675111377086725581265437938247600497193400101135201847408685206203763004730185245743646311905362426984844353754712931852803729491891914284120452103935259816534958414129452310599603043667058015878247775594921615912094345635130010973298297028708247232141231245084608698675770021415089986471910594838430483112446953851171316481473997260390917705316635540891603301739174431600814226762075234076052594320467396668717029985774504299323746736973580827743948234997771387216361254263060943805518289743224767348121446974572916985700361506789131656769285791198363230487639491229367638737860383326465260076099951512864479649033729486548454773058697160227012626686091125269537224250685501381509591894570938660768924102754979795419717135225873654944906795587611886240110650339100818944533637710763881300421059071716104773297649828818332194352950314372042814994138340067576393492141783932734139544392691859462384019721092302728040412375105965522324613755424725966078665516250658168362080454827540156692394180162685508915502869025394994736683915069086730683646916163499054251659995390391276154623730643580500649058884871475926595128135485500727821052487466039844603832007910875947725289947675701631932113199883181934471629308204242980402650148775549953944827723306579409671249771450734857635420926572862695301978890358847113063819308117360479562663559154809495165906233918480114205826407036652804586499844766980424281395629268988729255808268722546514441736811235641989020189316001124716422123263192635895062212751803502480713166043805247911950350529272038946398907266868163908892447079213724799273938375586782349958282343393414641602044961830154320970649299728930013858737313761812565275761286631463102827846657738488485250285046355204266547239885270743393218656084781079132261813410093579124551580913525399237180735237613324465290091707106164823908445903387506837283798489182436056163762702803497085912826318206387471494713706487501131834871997064977927215714153351548858738731053202945922621034387919475687139700161942973949606139029160703765467798890838549148310016160038542276437848874970056337808651774743798717358449310106772835680807670188241606331797954210290123746029492868139792531703036974842337458217549996447082946523248025294003813491006526092620403375801522534464429547210658943205893038897104680260795900548720040423972862813609422847119511544596450122165766769435360158385749780884010595432188291228686147568912525758772699318129233510035920830108514686862796997608267420551512370577808618655093597007032815246255244060399373927935942004528162544054091313563592475987357544068799295864295945110879063219287616045798240210545029825455281112938067249369424837463998184143289228090698318524035462006831829062636498891478436037119087586259082057290699193343211047175442746373378304241078338931823079070884308036978418812036784493832925237022630581071832206802050989605997027555106975116014549661105662260272286543036481605483112238661823499513672775472062888627670775027398607984626821865492748401719093663354653020124491018438526861751260030062381717216858406507701808076950098825039813775517604060006737512504760944090140446111626072409211741454961017403992064252288916860544346069486190600135698378063098494940335113767014122431833097774932686100246151247821006550545650417448981273652266318394366854368478481431875796053796449445507515433350107129107822519862382013797830442069850797179667861619359569976490663553530270342450285413162419609019078371532047351321766219220752692167374019763654403918361538545942955334935799514803116879566650672921382874726882004595747043463579632258292156857634821714925859147382318387293857697892552172391282406786545504491363403468656879243505230663743136342521848190056534330024249353698985071589788434658504229644731144631458707725756564581269577768476877740607436762957280165135370644884199498749617885405980681076531360098041332577349126444428796504145000266555273676698536606987426381835721736436025852645305526898411484695097615204028018995351138578493507180589213873814916446443448230101102819733950852559841304813905113185186203628946302847533221662554501395345248725938036687596247310056254826287630581742940616001504824272952319305705425234507140674592750039756377365649463524800030794185925739491179732512278658091898520443728059056785304618923756206065167059737174098944733603838317521313239296081738426484845563857625784868107130273877503537848254218472132434067198145551526815503577260377776070448943571280696029158652439607864039410606879715230813788976240555608506005236482268720800254425956823522771083010638467160687268821864826312319706211040570225209946864583050817319971326909802021823480882082261622305153807801309856001840222428002150409312701026911044374303462192269611981943770569582468183748118410942056623845062859614471853087010701617354791497386202200441142183677472510697160485886652642158614613671198086196742942371968251471297195809357813979492438178142515579139249005424115064149330879635629312551501703807460138980780347027934715365752239479883578303511111016993452418743256130614869522774322743749559662909810814462739554358349920889879575127302063110800264932287692465169797023578408580992220335870291335207917345780894736436453397061594905381519575072102237745260289346021704327837015608986908279193807714195907381150491074547397374538269121839464802082089310859693610657798935750260213279457941487230581049752324325457965635735119524680828914050882853851794738172060580027012103349431766685896317437637920647388408424720739431182627495911579414906769029390289173272462182541565569653463538644956349459900132701420687436634771191809637408569189044796176167246814656925663374545232382671870551265993229771586890963817441450305274377744031950498837905804534652788667420955006911085597390306100736564673311586654646001643555356835184236916009108525623282249587892780273369433363322665755905077766214707961582948950770183449815861332222505372728477331828898081975861578636468885877796829376250224961949139816844556305710672177793409770315473787046352422029625228763123352236421858326298634958247858464813289360109200648683459269004782078997643284108225021438805384763902925307581343525371903565854843784989111655133225146250319947657236654452655915696478670375870143943202611462921809380303787961529683146409152231446451052056482961183347918959025028027876838113818934932360648222190200578445975007913094891831177241008979318428313027265566699988601241780679738881748848541962266636349131541636635641825441220556410967426425268142027661286714467013778386950795028001330464481956449794774872668726467398596471767581617812280231161768725654358406206336206298976667866876441818901953902856785233214225794921365122686373211231152403011201919086212612235062323301305199012671148393056852945449101794928346691193308702716643370020526069391573973197998499554076830661990685067832942719651785041102103759298089674210614072424860119465864313154102477094059450898236949175720917962666487612067505697908930612750266771363106013938950184564355580585767900611830673262978956740785681791240977730159182719214890178722667680219217823836752475383683076665272016606964700433410232246361252067764190292557146063503709383191155245587274211215843930707333859174348598421840066010716991549175137025284288509027397438198632786821341307643211704107581152791109663391038562217352129803850622543338541449478186189981647142223779333212418906959562702140590141694610109536215504545847072619566831215597082145555859063941738053958091143191060550574387463001877471120890478640388937093800036961402657605773932166966319320039851619531503347512720243568479174073235313474705557694207111054704252857291251729869039244601890581343212046782071627952164073491132253525256016413128315942325552279114680444659314742925013300259235803535590210832662326502754382297332554637759697982702274383303828291563279227764571688931507216185092819531766331437403547107873164013173085804607274637549000755623728488392271176770263801771300544385722495230424548165649113148971943823610979034541882099717019038145562381367706462030762528538529888562786750965135580705122141287608697621943220480549051107075424521013734474804084044591515689890726760509015287292356815030154331150979010802670580507205859942655122649645856333005149007502658428640153657068660238312599300107942129032635177154455022598121027832110613157584404577449188865938807183992527949423034178223635378734856449092822287605216825844398770745723554853944470242618196893900426497406988936241392425483010154168697735606903373088746401136993027830070952366527070948885303244911989078436465803667187641406049770457641064727440796131708463411982953517039636589817432063914604639455335542545849090583282908684170899173243482717074815856978910297437194473048232481824936169342136995686974204312652069839996804361291081719450402166746279386272607663135554636141698312672529143170605039984849478006075837334591383872156214634504993219171036208345570198046189508194487016773869707487208117490638187696206233277980938548581723691245458739845610702133664654274394901790112387231703018954289093924344090597460567493834896555332520850537536859823457715318698100466569891948607505722099251075116571280912583839403598453954210139381262491617101624735292070632617315808281487126134227147070910997098620492788143924534261579419082013412913226876313027655608472880923204796163557018365959310348700114457528357521418657205680674442422756197904950173430518152511536652402742214837583612130044593712800450271373194670587134590988961632475305453987897127923713647000788318196087581510220175669563446813688078150813920970355217509352971356447195942982052185066093757206706902869140324564857329511819289050205363283593544412096568397412485617679405006084339790166768125392548335418262712942731479737383911870714332634844037150212545553550391874684882471484466200450961678677586204987092331008087826922269604304955532148569518333801639697788301334223470796170306661207872048327264762703455900417649682394153505420553157922456059358649213202104329896698424284489861404158391367238176652957578126897722160812348437249793470554629247853644501383998954861527511548280094563779412836626732504807583867469476530275875043488943294936793609648556762039319214922131141300714173161972128585331531363311231042306191277405039304473977591931869396198538796205646256600934592813761948183346229184499543423386568508606768202212832418489972240783210105230704019963111396860661519254818186931092680860361841294695297630559261073992994791280510536391784683670451635101304328773567129874694023643743366312117148758990567628600843463135077615571793538800631783920162237023071218008759761555692036023063092214788392864136211392142075554618964813773022129570007335350093757998947577128218896264785958739197608793586173371462696404413180651539577291433796542896356881320547265396242259501282943736587515149422169353302620555495060009756646342923150966473775329530269670790148654058583417390890814521589977537117344672066666420461225268531841844261503313232769216144139614850094081286107635985584347692685433523345696426012710192428856962552577946199938797990221664059731563847832801629744519537875863728211046838678759653509037195250756362988439461027594392916722484769480560095573124306240782457499203592052010737430810009493374876491302070797625279550818199742171873177332369375188128232632159504184618165542268965738929209421969519960334092197930584589934899148422848216251324504752969322759576241388065623130047028845408170365787604273512450180645669555000109970498074104896152601930247486318790905778035258441777354466858954013780345008060002100169728643562589353211545809520594377094587914852569503764255998475210750659507917479839362369844867656038548023481211539472576499974277413822783603938658322877235264945627833978890441414957888820912461631722461180989890180529497252161275083816820454830936607190527735990523540603393478290151985472469196469399704918527126169888329957756406810655115475565422562094953409141595602545805370499096895855499207675298468359765744887928251965367566145725201823597369766097335446057985112863949379556757335535300212473837929221504369112956958629842214429335877355682985664599908954946784877714138257859661979886929188350881284969377513912606222196631462887093364880330408157636257951759468272225775211047941865588511580012296512069619330707295894994692992491536433918172107458497272841541664330950244009462458241573985517577499656630012945612878241108185593498835185778942641535259425660692268296038028901353731568523571501525827145487991645912702718537709501672091663421715206946435555955127712564162703667309837918453688937166810745953586587197259482594424231633431082844921386000920503993944946206428428045265209286495972321220455709096943921575922755124884030910319757040777359780933315010899405104415753245295049232527373543237071946257214013276845574822532510800838659734764940641685335550103034179754467757706676292249432224232709495568520280209832533172418517289519122727000260681325937277937735011706931728854587794954857351983675480049757590829061377246623154337100855564032105058216340470814521739400459984821634331223172117716220836566719393387951003563061304189709067683472482185868212738340506286655193908015631292051011888423210947053585149507932687108207588246264982085669383741939367741641016785929739410365970983851460941734552302262764721959810026194323248286441234441108567276273796401669914408017826634614297397022814283419653157803902548177509675770138550100476066695731105788942767569264121983941556866199136217084363804853052059502240988136523731235383241646023963013978448858281424451566938779856078200345082419880734716613139730334286038421930940069778872094056713610771156201842785942421599457848876020638388050410909057731475341035850378501249907307125696400301645885863770915125089680384695001071554613250402842232627081408235138530058414938885626947265311380722382205911211701520458483117531563057215073228982849967814084169179234578050054118763877774354090700691326058289082665177334850039619548392186139633991795778248094276774873397271888408518145704851257449171312276404485352542616085212093861215608906588853968793927458920215250161512312191775779320801911753550746423211469470085714111415119532768833875387375648215340115493338134392226348805785750315668161649872449864271643099444277862584822486390322469422904654270467555280534479860996910872946776577786024523923848690024064683922008840484216616377628974751862787167289584577755873718293199771242342800172396788199970391063206915067686606093891807264944186993279301196689327206268521742826926950336989282230439596434211916719856497025681892819659201337575385873096377785362680998627281480732056774399503319176604669291461398812428446632189899693000894042959729405094820305981311671267627774971573621763923767197336648292650044239688004152421176370022923247295441382839227228197468373376985186505223516018604358741360385026540571794528892082506530397485305929639383442999076325186258007794936764668829219603979188909293686262421827836650265235535572092354569711785390785303951222767370133128380941221971593733449462976291953063738340955150845330651072603354185110878870662046968219412229835363217737658399793141474838937358410645348978369088564537326109435398101030415700190046745370862253889255996581485113432500750209439232945529121496745698238673661599020102336201311732412518808511815660154380140669006166525637264550097409374695951320496212099422418848706467576144756945902346006004533406812937428341663915643191585845272395712354750615764289485121770940232468480269769608322520828105952021576649431802585109270338744530784243737869355343991163124710897712658217295196294104708200392869789310468525458648233214882821896843677807459128506957497355373857570913188561899823884265280442043656451993525256940815236059521860166783836093962952224828284988681332286420788137207130865399262073133017114975210418109962321450616811720177509543671002862617352707876260125826914158135703962101552639892840473050372488071369799746324391541882319516096999322598716158417642192563258798784709783469756216849119312899120119327265044732292453492948276740875732234001833473707999733433432945873083952299950832202403373055983028936663243059974906337738244908424951139924714707174364501329250102346030455894124503767330235062312708743336636713356322258007982297751728048307916123644827621315291575196916545094965288664867698195443447975914684675877606950061199067014658913351846862086228689744866701335574866409617277074223718431336423775688142260874098726637121899986637178374724948317774909394484054483561309065151077140254507083164857056170793246962749497157863888340789929906564103361987600101628719500062843378526832924155040097567653146678634520659226211610789773404616287662103075944688198893439025404731970529735798460538464478120227651963074465785402773172298991367256874297433733320527607504072016929997518791092209689415177901333835449025075105987854546226094411721850335077748586162724587227053049393308373615455385835686351266351227157015542108465650823599995641612769990685325326707959085684014210894627641487923796611258515936057451391216990360131208665286664998680576363921931409737785932714599147588653406076094871317550957823025204097504741257408390027263302181281143919548750823578898537308576558388116361404527770149616589354625274470853532866294511226774768589944486830334008328298126035585993009360899432594036439349177101708673903284358301328418509166078640233865096478566494962596571894222369341071017274864678649486178994426272307059746320973215694728207572540687511163747939253957205590572693848708896222702355653017939056165944164324456942646387925180166257289485315100894090988800040712894172290539463638790253613725083544656718650779846329865830258119146771641026646591536846074564393739310858621933527536043645637613915834251722752478311514353090550834830158982056931334968195390309676803204475378324212248733221226550056209387533055768816654434103401495500068798960288210028663367535720975000121265716845602866794898723304722200597838759777019554659635197348639484728612898629118185422255156380781144107028180971555954081154501064050451118999047323131091814181137663169811441524852242859000410616838350121985826661581221226530037664624058909971805279457421854307866515560804194662634507886060280612211505161774987152080606347932320044466647094615457004129985551074063352209121600143167804994189377710409949349497223076095450338015967208152551663680952884405340029550673984284539116816938996034799477791118359274851246937810697576778203577601123799976340013972439642462065788242968847479489261707560626718935808647675436087451475678869831409158129354021628776096732266984352405486012352295683828416504778116215953256659860568725333624137238826298570125370931914084260483345764476843960226016628120785040613812271444366799297319500515046722637750796667983575569096797115690419030067766231853462887881704974288753491446843317477593985974477480312935744360644868614003833061921660736451389976277149643507607581563547113464175671377006920029559305781435055731111572989129382647872483569291999367158798370041953431763534838741990661456974562709896821011607999326507943136320589495237805839566102726992873402664735020739791868059025388314990875932006432118422370919738476658956736302865090431210112730883720282029951287134752371962438684030967304840310624075520353615213374460343032767923279443670784497392953131800410258068911788057692826484882804647637421124734454157834595566680939260059010052717389482935689658456891375842572696128593125921380585031513250439131470878592930658828601452418451416668401432325339067518159302130535459542388966642423477967346519829730001126730767769746297839405508701688698404945897325586657033113606931292500462935015390145021418248240147649393843283114899274336540411841504804863292344030107907991656477080883379277137076803790161742479189856090143652207120056687195576266287111117471419233521706888861027364999790628229107825801018304833357666734560171794547169011643158354363912792519938258321280922334724166305933670773873448624172123142219454997965095105143917477536442115225322265804593257321077240807891958611196629565718757514917701335715359239347105086988726555056939263142387386075768494510676351564733941446921149133762044657116335002506939334869187829240153334594293864616357653837842336055044755085203489734619009965830846592348025139390447862878116191097242463525268163437395008271835482731959031021386512531142158646409566002172248237504736266225309345319627344636923559994489115329514532394715383841845322433707966493850037398423847896598324657525155362117599715550072072391838902165250125673116277234139396096056040362359870209125915514045772275715229670367927879476048463172030852837947240594934398091663599599726003544704761925640958689062299507718421727167077057391097023666179725966396754166580991237716809252241406728817742876646410893458905916593996127330880252685700045440652329790449572455498594092744456193758697109333681994181632440660046414424266022981104172828235061303651495453263068159165209627282352444987020500328781467653523696017216847469982812483616823378467800627868890908518931299286970681804696453290889627739633516554075973262343840612884341101757225368608243358273499515757471087988376444448041576128433456728822072252111454436297276645624279165008216749241571211363794524076361849238087831743413272574225791663407158535682117962225003462835180048877073751159980644119673420256315135442544811141421192918327780795304665610639400540236593975395103196816626380730886601026900276053531706226028556673289872798440866173351857603621727320363577613201732316820061278885311003002050664890504482927221204822942148870636540057790209627758181330226888369497079052837609738127299480154205043032505702883680056612992733155763835770882128514473184563170741758559287494347972750689715730731749940907865685685897919658200485258356572508559124773951993263908395761172181307263735570171285423713728750035615670397770262978032294825519704652398546463682297919906646749231325460186667209481726198286631041393433811098478876126844445168141690569808688830981829251927900918476433585244630585123979146188360776675361420730409485856904510857058340498439049671332136169183616165012539884002013763879736970467751659873129470521631036665469828075326966049006493705597504505671072741935410742229410942863717903057446982660845261290507190367121911791868782413182326878292634818274949522605149725988039344212776915773785107198023134418215272682955030920367087156684390900576135566914295761469280624934919327547487388681216891713496571676543433512420084457052743624654975325196339974154731180961553953915950282257538528615999754261361564280512542789761708898935765575744157565858809851324014763448678911471993070391842739528223082832611910135326400721892054597501230731131780840382357463741068230217742909937441941593812497567595381877001205350971111713467600644214582322826214650173625716638748723266451933600276931284481632391364971985832956624215519629152800895943564697722997921306468654749690151052456664157566910884179554828117660988820872282271799677886941868323039263909781464942463709366582930594302484632741525292902581036976975069116681096322612656806684364988917651668937046513476765097757524343585779670691158434197956310285130970177075239699205540761344068142541117634618485268205761202608936637730038333754433961909528950112763362742194167178471436469896830400187234146848618488291185494766720576371629916546513063880014643596877333474221117910728562319340782418643359127604368464458919574405999156162174186346761043772757282124293350555289542692237533413648789055089117005651253836665292116048661466418553061385477594925510190719002782352775260849998677727414928572147044394961076343726070231481873114191511018885667838361010651941317286658407753506793510615524646764334651599926527189705397871802810300466718937866491580467896829625092744452666317958859922915448601411748999945336718376612821873603541376272735139547115468348064942601677445596665912936455923194544802783500677578827914957111303558973183673752587975337648162331316266187261518201734076326780086318354804684920599350759498957529595548906838779802886683485526138724077893976683523521026296971070073427864649536227276859998315262408407825271738461791691617596157180184306051862324846853804666507021141641142185509067674873731084324519435068269217865379556846552341174002355250624636070741870371553970023221303936474914054773399702335863869993694998794962129346427754845111859743654737867871907857878909065910085652014599706943559242896666429962079839970605038981535320669889159541290551959511403524625196431290362226535058293698313699080177420458934268289005113939090158933541217929935895931973575242893374270815414926882103787204495017766706718211049875285788658839330241494465518641191987348721992352750943133740409234709559365042732499351827121974962776181942484895778694388835420801217810613236819468055161422778768743693370455466374299320801913966161174636959422225607665480722228042233974757316000405014094286092335389923710900534382974646136974456724911977819486862340008131592346225185090365085197056460921393973519279537242793890328205292332839785263776551017894190734528904799335781675131269860222670551599035625436658364511214186834241906060766868971168495515219597142266586452892740293227679085098248833986611935775042125416403954862651675283034139867667967614003737510805621106451859403541146581155297359309982460512718593629914341894596871560321580720668734695244368076626488682965201550130953166205852700753371293780699217148671533699352182303646503202615062733802656384887727270969394883989018710985475394393469570503763420632716561049830966906085680110895222379511165306201338760581364632431013701639306959371659214813454634400764495394012166237802381332885084915027860574723110794912631750382675732681928465167826876762336579137670229012379456156079005103800754355946667728033172010897008178411070236548910059128701568439307311190182732875209719074261521588838552343996016141042398409968098656789477343557650813120126404843459710676196605413859177589156606836154102608323855317692244333519387197043552676156439692988603249561099619612506361783228980541049883944911875219322768909359118153725119323923676025516272046857558942404542655774177270729377950085354467943591344383813240679786821197251915584818167039349676997936367043606242490008310594294599223577172967182324236914823426225790824189135090958688788802233793311807668918010135643525534850868603981550130496630007515441361660755098505935835158435008638659509865611539075461164981067727056469104851450363268349137045759455333279107006496858691454906549653990432937405523398061202317141878720820593403608896772401005283201477019300013147730953330652369462279997881625395716338853192078293054079699557030510450106198232068059537309852799282963776560729628903299559177758375272729210678187300474184030087069094885217354026154674222458978788009065949114786564289676024472175911147836401407628444677613825319327442463236208043707726324059861610056295546530026877099594219006242184731616508259732099322279518136543795472500517629808512579330009946215531772509891397488228579456500692681354602409629440542842383278955402366969993800847351635677158090624450459386363191896496787339015741128355591536138334728619651863322005075100840989440212885166048630560641336428610451390348124971934788287798950246625035171224735268745489018987701053627334419692636019296955789752018039297258009992409432519885437968289385415116963503157342008686239413258890663528892891035680025084545914123735513352751819292447285595362394294849866277070292295232522772893705356754276195990530566600683524950061777349710455057314729622099142434785871659813070344204838938408446311095228795521097453402078380505196641219758564071189299713378532513100228677209722213920234182362912549332473456493442473976010024203490289834381384723513220034581605240180893692128986644995309390083128279339823899402914609041266014725606464675455604161035179837963739423102274569953042191445877969066477242785237374697941004621961443285633046161820030826469284270601375940885271134974508492365082082182997841748476601823948490164011083074680155288966183474230689306922174749614171430287776325283775263521473030922901309545055676645889826273803092167377074308653168097036822930120479812398220208689563279623738193781427955208484522459927147521820704535926627241206212565847224600438603890111424144776581595867371598853216629717634447566381498469116225418044742553918978638538303723711751724126183240669566805442542473663249425996867316689127715262487855706840110953263346788552931866821503096110163134485754806620390938611838220172491308043896443297696344718939985181052540521190203775607124190357819839808932079978790742149910457532927436581962709780041024309914783005142967194142783506191948955431185664698096447286246981336262782670343327413877862174772529954114195832994062345983963645596435301472795745451575859370143612212755721945173010294698000108107097704051070172183105645810495915799678534874858322138767350376189452696576289503298025714509653854947766638127899028625330539067052116541087566923372763933928751603614918391337393580882346061186505906813594439390023206691856886112088676599538568225922859783096125807164536030879994106457990457015669921387003674405676245118378756781898589797164695648121974946603774139095948364115577511106884635114237265158276021302167829170449488697382134607956854696527092664083338982856084944128672369267504496338728784375206890521752383964880165875605361287413365389893087587812353323215582837880369633684958106886540515123450942672412899306684844710533335735383623639490522356337396344076786159879899401611800078396247866273370418084159331975314441216690302197936923215373148698771184534720218232435480764932498107109384262198752614881527667133197071331502332035876571022386116110148985955274612628916304329863611596393548519936143845408891105632160326643342264052619374741050209730166559591660228600916463599943841160124432861670414596085292333425855710739134783212794618526788043931206237287813270023405726085006563711326386603736901904052700173705502411449255338738703447556075694426716037073089088151290165835312598891945568453456574818846961508645106016436006130879408423915094379060945521455215967946469002887108819919121879021470334375389313442018847139515187482014259426259066677399405532412508339345633916028494949144295150178976931764403879008550997880131714546509718205867195521976422665112902541177150777012657994167460493614674418406753192955869427044074330076056181914130359889309437110344548666798323973716028310882577252545398527797809221762480733557804479454278588657410460210665667281500568536668086670629011372482761967903188554400565386847038548722078393765135121941459981101776393314521238596473083277445487317341913549860467097625708051111839492118271140934470194652658455575348852725928767341465884582626686388358561489804308255187872169146223260913884754889997701133598520507052966213245845720632502881409223566023218730071895437298167306304294566628459481180422570792611300387284704125509346101259439919399098547405592386062234750057653178958648141470291080194094970435472468242954208713961755859285791451528162006913687014879637972080042940668824501367828045154638328532523390876332676703442025203890166903353490607158577025164590853674179332163921437994330770958243359864777931451086092861002158299199460334625993770042417003044994857814011655965444619969490120601610188756026994850186477637922741576316438107504999129268786536148777031076894077276704323578034028371348943271464718824444151517507813576410661695625625745645247422184397361639370659207851962197833746485127522487760878449548618169840949318383629734610079326027917266706423871310661062532575915275406472265170760580724383147484843553986622528859497682009297321622910883562326316460804900155994797748989010477672225910589345308961619416292694646913807813589535668683557845544682355611484271774948565323525310774848611177731979735519174518250533811200890248451807857394449539497632565546815987772800606498499964692771706125552811218032311903841359267802996208733043947041381196107001349561793142777590056887030231061164819365663604387976631391196676922335587578057579051842473070694028730057560223314894010877867176660555834358033907254325026842820670856442556118042712372310490130915215863083427336955240804486237675320187436864456590259379436136271797657713785925445799750690069391210935576527827178213036069382037095087491889101731122239027192389955432050001833779370107749746061852912470881806175569388540256953945985912363180719924791407139247067860269000852736746767434687757627939039925209519442010146203673793387240601199954309799501632274047505332281749810940491769469821017433861045613832922503513682659366879728594758828739393746104921920415059128394267905391027949593085110431017172175827435787963414278901011703279004281646749613355146297432514582596256021837505046200527256362826993850220582514018001442699463247632508801185078167503205812712740919592563617407651129251590893865000712852398472368901316888645657964676769032808588694923671519669259733195705673076989991639788540584852486587398392086869926851836209054215497090897995957541554089717753550522991244185760661877989922432029597004548709523787038607418099024054631698398464479608562111524959162654633335644543953432485406356987296385010573274595287212629110667547758614984074923524666231281127541206320972804203050766584301899046182396249077308486234790272443842525184645392180895407919548684367468021896244031132017512546784589364057463139232601820133859803586874687858251242346279472422925786601537387886271152260977202496209842115163148961354214165886832150303497737589097176793579809783462758722748908806817708777617135610022510226460093220212988202208427794661437181742432246966914835802845124610420726385338761762680902963894851165113308186762513539605907985018778983922122676464707833831581327923368400513712171290450190550008855504394443989789719587521580999004660900615205216623820527952697077971022766856843783923164733473255006786383981621195746533378507544006131858655493544609785550016635033641528645374614109647511362173173795601405462409085539556960763318534322404811207396148604397360105920229694088457995309097976527489353400197081834544981328924423868598667622239743792580290063416919267543786537572430607303106538177478888896517232450793006426603105996292926502849466790804057437501651794588203461200504671561691117276509206158443318954661288957039486683709499740414039921035456854083494833868170330076702035212313550918937568988097443631075557969408079904249018362616697065443444876297390821223039764519188682494686548877341443977927888823372564948833534572656269811009795367711095434892641516627581240996212014043795515074720993501855646385329526652128859242793142666011501797356342385445573929187656887666297036271613183976219281538012804669373314882847898661541894209122020399699072349248498777654707235296580747206493252204794060851455755043304309031778707102593174945328811204282742963222882896080231217877353659711112820759735054439871760011725197626269611397609388499630402200577425289707758979603585652607847826531701789251504742553398029185255038077705035769995592802289648884863763469321906597553320354298432861170607260493705735717093183017311571226299430135381826080072154887433674529410131793865259799844191367702835853349410658977478820024604827818330992978061827215890492118368026507194391796439700877193949798316850696522535096186122062967695274008430924713863339764947513526390825341404726802030811351084330351639144695786461267618904152333478851809598886124214816788829653231815469403032792461946841303817413409955080830846588382700406571922732612425191420602069890805587220831113457023859880754694195533476969025965111554908830300416783172643673347109868782372689337718829447625178510915591603695466475217954463228051165977614104358317846754801445131190056725001182481962118964231985284325273464326765885780027908328457148059851373463216856627642071519739355031428089872378465032502365972775164385638051475062983905543105775789067063459151395267298820857728026215507107199415996156636399048761277527397919997385025000785919430924573841448044560793841965245443222238624187214543131847864875996892353214487344467136105870877041713462599176075017874597254662434257889818495100405671272258294437305878988778345476524265977911837272956942231665130015975419490615059903478340427021891323403647426162584823296359898090500010347889250751987624788310098243717979597723631065253222165830978025572094160052114586213302416090410678834792702363490221398989057169218756072833037670986200696346649481458834507826587300059065661237144099307678648526014242441282050061097541593071420736638317547666055591133141556023176025856275703226805268964265436592740651944772379604402616618210098281762259005481077540928675918816426819966769368748567081908226795327393489292727710691191215820556926774222083668611711158625370782752491801591825897386481371752697248746980328113057828809463571345953452247925888506153630955977175639224174683715459716026255932069913312052886704361208393589705977949732567871370481440848322446894808512924158059702930569863395134597125738238647234624391205796005971687704578866182923414609971122958691406169387710338055047380939652559137141815226277460698107537786746918070541847066120693181368016312257127166648973948995154212342392172113356916564695216416505603792078125655032925781925539193914309014397028664501191979103635830207636388894258251564497671401527511957238708403687950608152066423609926066924054528168081182225893445202825140323317973055421835857930805910969065212177226441292871298725048684568415742711045300548154513624704497139459997482080189182082263540287141253676586158140269989036080042808300649782795879427600814480311915003919918464429963399760975453260502191883340160637987991143786324653252772363728221851147048219749617273640025167654612086740993045628191840993845220249456591456257613063913988661641384746350033549231816543790610551127784808513940318605170063382873470835230947709883398505518128533278967798965053804006540645665833067039525704778407442909242924054635553620393222004956679244842174562384232475176846245584259863400247638123488447897808471027071285547021168140897735794892290080001188461160614338385618793476169234802583472419668697063404230380997280098367804648350713089181514062392622789368318040276294802458632506718932065439995720631149139479797200828752758077528874211157640891108609305532734813472981929398851481866617549652596461851746396544521588167263378602648727287966413879508975680136561278242594382699569411343770783728691429365602650716780463727208632204933454999003714881690595513434217309077957908301993819338188263036093586860771229524894646919453873482865423235094872822539201149696518655142596820219924895862556097551424043360227236359176703262843620756609162825605409656472505100615538139043433464509326900091660711941108993162327065734201999187412078901249826316104741706294339293509443590432698572564064858169010769327558923472501889168377767448998242588130117795478072370118594159366977841642632544807014441497813630308988663136826594721281720916277537362814705746328792331438947192545023557710252847418656538708409924960923612892996643074219277133247667556311274692687722846420246734184477535172613855378759018276946425422196460413574830602788454750768343966373356559093431345123193690253896297193387581007116575710008582770497370287764687057955282153212135213968443525401077875643340946578253149330204803143699937105353184763914823092623498283164869634348841643201340308486952328265082834286429479107312285317457495526782729055288084764865993017728644623021484519864695152816849284875835566535011639751828186994070582348291763819993073033266264870920234390673523116091885059618427573659213655728032325320444046431973194747678010588817840054025772694637853213527046278143021692075502042888498837907009698570403860555156355909392395181494696610167210092445625570475137549108871390115729340453596943114733867134074700921972143025112790981235244901167450183133626433169110754059067850425695110090113008291271298264473283871786443087923526145003783082000634416663777552739570748588452602120104690370865768457544472623952676344084050566727232511661021223078827109645053376714760098956436173335995108166520886260114836838024171009372683696030929528260644688003002455044000968721281968122749576940340953397871936535071480859873147862750413259284420017279994448427006663775346143454974190386473105474570011108504567950520550749173897448180600645104421557578905696525549007790379918098679639170007039181375505551874958662586856466769826296491873396552203428261071653984252307684679940161793879657581700922350706177614560813510640425854889364313618879812033394496080749756576503351781732414525591239582113837921602455286263673635025267121193947417129773153694740500153720704863406558658847576524773464739214178952016329795891884778143762653973699438770304351815087208700119525264379028678993543589369198128126767927123445651983142855704270579588613066758015622788838571832211774474279380442508680367887572982755526181999789311991135640526246426944606187019409290739402664130666829110198760544158306645234854797878690001938691371211518139235496202530307486766614152484351611752495094494745241197937039772815215145341535581563604298987508479050988754444633118241248520930229086245862145579301234970605132204838571796285382496186880757047991030517563461743523113411034328824480291632802312765381708822903038817405357603390108381017368733051675008814728943226726869399527738430971306677738515404066430878566699848665994330823703677008269882320146338902825899127022769021962693357652811020100716962973831548371412236108341687602469898945763403808023156436260857420468495486845595989959026893430617393090511119328146141802383586476265609702002834763763351953699196373865454064566477648782048931106685698819509672092074179048198163112871664504119034521661211276768808325297656883283188748984108627029795767568520826687757709436779597151015304809531435768953295943087155699991394318195257845691658772271665159193991011699415424899418383997013894312562628247595029464544865673790596044105437785404981831068168880601354887436131575076061806300296004453263555569297257091989593984027280092330977074005831147471763241325162230141231117871556730961620564949124623888708991671142110488961706210501681000418714516625429497577848515045231946689972751041447610889034382176226958651107051728367719251006808861771043179092482432096967137849679198417310611466814488952972089382091220011680308988271164655925563148126219993208324239269161404070514834988731793524294930480875727437112282977264449053582972990931945080573478459194046873639563022468905895062954589543717270562109770330710865736429169018444408830111005694792855957973379915915467427604008825765693313260364473362010435310785978432372354888746422528844582660240625135309834577143619503467177605423597775730409805517691763056360056129746649531521747464446393357898744071611213764613065625816828691859664016838063410106576189812273663624814978090439424981352522260973511166232792679415236520173368696440048440956583719112673724972466820332731585638638952211909916754511734338523513134625549762777102947090345902675541745170057517008554229503374247747197910146148822362171599030032429477644159774275622237853972223045520047668671545797629103713979453384073794392610938066349221199066390464235443979609320172079924272245979259070694635722668860798081079809441059376132340011716205019336525176599127205616042175311183916879186063279651334456336794747659584232676953781804528442261772117878729790447874064204589756324199873625273768613654812566605367600373551718194652157105210649075097295538670781872356154006874136973273529031635180423059281232601256329527177726551786595461519425417728945115499618874392213935235266911031498602882209285075434000538866009173809887822794162529182643892438809187848489211903254881247369644633772249961025154187375411298732911225897523425100735593123547318872851176047457364358314653018734783935769092025981555644741914165842664061440107041438123507364182232769295424351540767205122960638336861327482602840186833239274291669570023028734369971256651220334202628313563058618203143990829352993503171939932969451549106767391666392770294071885707339159563100512483340132847385862514106009417738644126474789025184758046652766014953331089179179322810440482709479467875930104496709708904991558187297253786537218897643981407544997410775688084913250552323368357883521507154537362530086691455136553203291909401625344454102334938107333800599741925443730088278704604582620190884132703747526982857305658914785968361665459380359646057033833986622719568819711215545498165345040079776575248372635820340753601482823037593466429274572361748735698618731572620146239910443182858319621561599755193339002145236812242525393127237911347089165273111433009258398979364473100777717133194273788754449750906008820431592639965619659691197799331476216307882394682654497972751984432178812815849330942762456440796638513397445984881941175745814142353156531393162707827523571965791092575498205103937408483263908757390836268180639139974689503615710975258532660484564176679567088773200713983419821324116129989212002174092813074353372376954096090128885141189885465888929923797126420956617498760768859712696273495296864560853578661712519719311434807387280498272435192449441986152307033696147900096933825373682477123474537003988059861574771687151733869427318402136052379781269938087568777388204589511912086749340406427886056530171482286724734685439230304019239545513561560645817443088873353112465663231241201682191689284416074139255403721180875994484916073145111277534203711686043654228436080759975965592264812473166749593845697565311356495686779670826766549747446427300751003515154637895860733495442616056999178744563332585252004484101427310552323784793150311543020787439299317541311287820906223138569117427384056787945191013785997593713100164635355702680710956732755379152757567916669391791082560013218375784002707442420219397002517133250418279040134209074877584245231985469114052570224940402305823199552214726236440115112938514696312846795562803570268721663205368906498500541269820375540905262186403094612739803164635961997197874339929750343109542290761060898383924627231772384343666335134591333709652043900035423947057246827413523871096299361175914447141097287343783801785932074629988249220236924359378205716946532236536885136064635000909657812381074061541578421905850043770118505037062442587235839666903585344715082850740473329393958948913276747855014665260439189328852768233467487814748283061970661877859495792418149803315812674141242112373280052700967357537083679077297163317054069790143255170716032073934213241320289624232396297755836245944614332929380043038751202855001551728617984314421945368672599917904598929101171184400671840455555761043455436329065331445690437454486882542762687348267325713664367441796637723359282445473741840564719656420706812006746537675564470963159072868871696391687980592530664724207446346200256420530668272266458446439242610939300236385804142704823703781527369279015584741187772118052970241749932237351866935348574655567759893982259326198445680922479266804390959104151101236706116929030408937385401902401720037696637837676465251230576600502068055493934592740831733528554412929827266445826286115857551796665530308744618972752780119253447586605633293397466284449297028894553843242425684587754259739611737861353314547920662166502764626847497803014334664380399823547682880945924376037417059327672434132575413270133525415023233790907324831183509296652228443406917069178417019548472973652876668376671469927618297181580895648381277330732943383058594374636270642213998665821474106614758281029725152597059800354168146765622622242014260034133168917463586470987326767120888402074616716932306418220148569389256755211052388368024958475308691507165205548053748020151549140959423484803412430716080601841916522599379254181447269719335279745503955476388148673501310882575972399580948974114176971284467298967132353806441558394622847434539334157583090648344546892779961038347264863218943250782923378463844978912288945439539117531012771114632306180221688343606856056975098133341790088978111824373678294438962721637677184509476097160193091749582301520149647666110848433799873720443904992245212218943401822617651275977142577895489231570844817539890863165190153929210529936850612816367604271598450615424179276466501234461178096559263201157146552827880372844483187878536287478955928602273958919858823786326265689145153861134682498212227982115309446467400549620174965006824830290968299411571529603643435904451193343297862226862723725558992298080599736225141955098789821478808071982626406876887348525807662872124722305953979964759257618482185556392029028580745929245274912226776122168173454175403021529557129983309805201249843733804037943892021521413559753432334282271969996397018234826577350298555561485027752187231775121513199271041211337627298046426210711802155495104498259541572002110353092100890868708171807151367376647327756847032500721820631199175152203650658069680290726746569873925346522950905695953007985706310042555323442770755573446908776932274376286337616007917878742450987760720568824515640686278916608209251335302527372215932513226404364235578747453370088034882428528846069278091999943987787061800486573113364991254675672366150652129272842277734034099115378095378489251123678354250250684668997568014004204613753481349808397277327143193238051421086783210340429537618516983678818517546780693784417873652521410957337406741068132326312516446641350272524917203335055642091959434905313491003126545468183209894102858295203707262625161549909969417192124607843057612058406697772345304537199072276274504154348142969026331594298754219735889595253740001139246128581129229667182155160287811968313866059759929992279552664081930525214557229914443823392101814928585724907592569601460803767470904075374350340896920003313368705211311865997314026091468743806706146373459354905132135948797421428530089587931709237472837193949126119674505272002828931840978971366660741313446070047406335064075144326788127465098790852713676708314454095054631559891767429791095369798126160269899348997620143069871922209272993722265643668727505216335557350012554977777073202810790125430869628667132277094765664011510880883449414020964670107810647196582396014254469622566041499826638482002900275899091065224149154656951032737703889631031996592214835060331622402989182090293997097712341287989263092659638622249073067944086234605508170987407895435661684604058295059721605925637447279132223843659165373977767036615387179732460742450422673618531660738266782984483123361739992831571053935944370840137310120542019074949893576730063423604701405795313231164557196277106814141373450834469483804698722774116766748834860008123897815799292484260541359350440406852090902272984818351845329132445474996881503519763867937536276729147724352969414324952427263026330054055907194757521451136442947067400282572283445549266531895552374974162615519844193975619921390399810373228901475201109471727607898038891188811319376576325187596095668620730295558296489205890014809645252530299662586054938909655008592733949869122312385546962261090421249595585916301053297392305096826996359522394144105687227421347695102952391331265298817592250536719576564595915386681276561502926229620686436351044530517220606018929321373757837692044667734411215006457021768393102258406780495954712775850434611641663118125016775055297788611831416196521180801651834500476114029774847625010484168574390270952778721949641897909507496921411855537697770975694318240897043176012956018806897445437409812541088804489482371094568692080793544754291812901510421240655511580927330448848757219542362796701733669850140871570911126947951541083850488279331619406531387333732880748529115997261531698409617310692426854883492203703638124673148048980151111459438896382932592337625432460820437187609062797665672522186938143424024156833262526174952659338032793533852888194565047452940121407389647985528830630583079285657600284378100146270855321099113182427786409467847109307513472674025119473205590816773373565415626707801052938627374006575952261786008950688562481106443093840488237341768144162704404107322080505947489474394098343874311947495682212240121848558840953902949465386711335768749281107544812169440842410679348262591632375151724450614295004756466689690743786053420543987513317321812259515960156159025174750434481698964212594902474551914892304456785391648770495509481515732607683003174257262034747543385631543771576221286404910750182262978296693843122785432187550020545321303985860430532507483378579651180532255973506434688954858760835499085134420166634851452074864056683332335079015139544478414297987737359949852224946522996950449931111435751280979013983272040509100354901731553585521220898691372011219964435282459790136016563573502462741158259455954850085074835004012584040650897812335917702454399440355918153612194441382845896804996237013853221167468260424660562334645186274164671422192605713548746192049533860562717194852508108953502021254411841408963833416863998421512827791353945810654319294488712892011249334197031852085157101950689528281306872724542499155408159571480663689247264537495463679077340041581690850731236524590487214611150810581177227473419681115507110053933201925045831778001373759609762116272621739011894931150558460220719824255828011662379908794044318299936411974289668225295811148604312352772388927040023822430020666740412198050286945454073678005833316867309802268737821751306748809838587442825750667764596835817813253252228804816465000060828790496072850600132721841911241735741031073195012919344758296397442333821866397576081293495326852802598572876341373055752633952013331514096165873953962008858346443031312512838650333977044023229624912489257431749913820248903325098725374708825742066737694606567072682201862092083418020748394380675955598826022139131653447478272145430801582463832643433615222751040880880636317801080527623472272360635176696706739193392920436729472706963457219338501568958047037720138969756112078326486215442189529031326530101675849071424371547119019021696424252105971680004282481970726523678149942008358582925076114583091176156206931195298069588740064034182764249582743817510555846876000282092445074317018264731447376210164038074309433481604977844969557972783284748333640428889022241051944172599110233397872755569654639108213928521178300224089525872852197514329061587326788130042340292228661856730412798422848733244784151228957850405196808634553435667426460500930297856064400271679786998230513050989703589805877651929823326354294328443849539647500529545822424177417879183332020677618782503630189496807629907412255792385553377974296423235190559284524182405698797568647024002448655650821399913647789831695499582214160709901233894675318304464492103349558168033696777623904060478105609202715551473795923417457781302585861240145191825459540089087373788600506417619026439818547046304426381889767334955148126049312748018521676458323514791385444369188099792880965937605998343847584599593113601268334445403916940952804147044078820090190672426725767937535037857587960080637490278403283953041186797911934876995276087824666325929710189199481046394746109448212830418097938279620075404798001707357290830442450119240953292768666876050101963650730008786966639496123847203139557916326097628669330780313738550643761824148432287089130856993812078332100938223096739172599872808771879099158490888994143784106716249665038908484127505413450297320942824737156562759378153188886784999088062090439918892289571448515716159712407847540735499712619411340266418091140319940480959216541943663350762491555289057773140693241078107143046351395420670116840342341443932647768744742428252288008604142268234257949266194970839564179880820963954808972040304625226553099618068210038882334628349995807090984424433812703910872501758603756393618622824245144934824883595053847993486738143781701400441846654604284200769008830520429166030567947067387169934965725116347914107748078365124403114468003641699819536368201839391761637843940584534083039236577567133205117119485375194030541353328249178399184899136310841810081606401935671726779817723890715048152180946995467903015470124107108907859211193412451652152017376495058893798808999293712847212650581671193119819488434718279484984647627789924204373067832211222684337320852612991478347232655041503982329484038433836059791793807856673786348314907138596471463533991198028010574429613334453035929137582490455081117869793678630146541514587878731340906573054453950278846482086319737104182787239109011322447231568581119163088951747253430719095432427114013839708484020229264354058426104890862162216243817634424440993092783816994970188490038035435044762527310038296078748174761494445811990752220925185838919535951779621172277524324062678796636871211997580698767660864282027045309944997343040962178116368463482599115164275412102461527528605030295220887771499431785573308769455183344376995136268288536754398980875078918311966244674044091690041399181575083691985766581262328470115599076561870488810345765022149501661531758715970986118266058884063685426155618123611419319204692045361150964485846984077676275906559398638948536550610788925568293373165044964927225130067644010282167727933368132421265952429343546418948695199111135768718783141884101495085280197533758780990176351909365567463526345955584395838987582158138678682703677740591325415942537934140205642748624280535687941480252635145161848117171002273321000068670401299771378407437648151313480551657330072502312926552145182078323131576279328061306311672917082894386732714953175449426776561009092800029796345423944018040979927953149043414216656736279414001064807056989973997373846393380172249511794052303086578379968375295610094543707754679511519271466314006369637673712204055744445694740888524733563266745437740458196918800307898727882927329250447672627075207397150606057603162995316918261148397620016783375117595858817997184082384193056189043740719409440962258164973008714903339947650225516618508108823857250426711784332162055150770108279850214620078355716710802834870907978043358206102232611070970626714215227609456551624350561635450820866671991659273759554609647053237439851457440143541901796217374197840906312797413730381449076328878077798771359068507910000257825606191458482861968211379080892512869067522955118916696177015944230597670789017557769041086734452017341756609417641736338802020348902106114962294382888934488959337802917281334366386647822053373469970287497672917567239541474450884524554979263217616727036541434914770919573230025305009774743014427428800985674381278214608380227498428271180903451330991638124628199207701475696403841860723362528584933925157773258050857489686725039424239837677509919851999106507151025580342668632152359420941367089923099903603512319868313132420022533911547106927951015844521499066084027639221479814802107823274618748660576908221100929609663233300698659065355110633709582868296875850083163416752061877614819123737879976452811369355744956703379565850208525198532287718915139909956663110039440227073204121424213364825893782598190347108711890141235116254359796485130375183465858367804008317453042061164006220050095555327765060286322035707110162041193629845884400145352711458150374623450715749937889993910606863110030756878482599760226630016545333427761449991130221082230412064355161480199669868533809898155386926747439377350300789243676685035727926952818675862506139784104702890068479739869599830912687826149925108204695407593321678021763222703552128196353230543849887138740401228947290053713171816774701264927700019945905051968649679117539905004294286083990266738406704645498149417855362770666844850811360877194815761625711087413594775740742913281190122542864054158970192847438939165790425946843464534695273700057266991342780469414655963763702743781352394259680714953968881593038895255850797340480599061384914577940986169306248291679398906496581806876822844330879566576910396875442615437252392239271288707916424776197801912722961188454503956888558110048662647568514801313842872172443526582145661231286265761700464792338290716901951640886190844840086153319419336601162373316150434915598978172215012358152963166749056902866914533607780776345769161423649698060987721059040366083636626612764032920503303943224429300197331240170867224253082867631968257616771735552655179349945916801925933927844605251503623318127002378406730795403247129964390217682713462010333884077291226614857080717613869703445991824496677475074359275737080901513593393089219361175769486444174621287860707741439940042642169043929048391219424981694877060693616077220853432994984543266565644550660285049411365942463986744875646334932857465252718556513677560175631665669872617779339438254270145368852386049667320764159982271375760041311073351171187952265646175568457990152057925498306227369487720506896010905530668171386523103857942551971259026610131300698517718366334223838430492545980485733392063873429521222575780256539979870544767789744922814162431888048612503679673371477660700416701307497765734359428675529480526117383646625549374108260485690809750638600429046863513192816405413450585307827005832005168572806851354298690094337092910063198018387697110799845919312749910991540687931733902432284004789010895151367849949755186250248551853221926992353938443233579480473322668701940163128047503585135314758672293482526609650483160600103882382190713695208323614534224950793512261001000381589515180657452936186532712781849973595889182727109518813648194676027932328035385264755282365160468196476322501922051699471251385603166647501231080798819101991961545338299208898093798738242743267882182631723430472984728392438447644688732327707485631001515640677276745395293409857807709419236213715289524927015985146815548412530175142901903791745961023730038875218414641695214584241200638496330476010170809147923302414549077262688691804025134985723319877952216138520169061994812855728138191603894863830718370661346282397568951389228425283269155946189967479654615417920796291494860976126985906564009949164513450434970051968490415261067002820065528436976803747123899737047465528381321645423531358139765121573806240231240676741479734760013095334198836458095927017162843466812327710682405680897503022872070721053761017879311936181804387666678906228166347466451911071322365440961456816363616297623278114312847820930045997133972767789399558259695300231013000361451486478425600300421534656270384621138761419122111721589330792231210311802031069242500638020867029530900990216549597479747090389663556717953320853879750101525130753740080674217057091065599984572437976221726335579537142229600195081858302442795523554141432258434107344864339347849002123393643598810724848237511605362540298527258922577281428433511136216346041847658146851234912417606095062447601045173982158379979844918188048926395451777854524525803315211295448804901642232977045137133495699438376237422570530384139118282512194785740191356220455073834030838200849224116115649045278062447827441122549185980247652925346888845954987033393251695488902405332584315831501025370737127393221005386840381435494166191201901307323572204595166298620889319295988405538383298693740168814456176058692728244114773001299050117974057637167184127966561366550642155939485108561681502292578076600544483324224087858181408080446991485013629305786137439231270993892016605228516720462132010920441995779392613904364614477712522468395809554509843598319380141222169252557253440900039152450289915311089851229868440355077563455505672578543197618907663423213714913099519442602743036668496599517957873656576235313126129165997529406724133846270966201673078842533210551741845915649564024445930911497025632244153209304289712451871323174026994658330734424290263424427089223177098426717866289414587328648015586576197439013607771786137068633176125209271282166912236041924295086088659544608883891657856848275886719936276941778641641890202430238193985619103016559728410642229071304897207115338858517133592792622260790617222501190143495443919849016133631157512242732178103619176353917857244062601711628615943816547407902889619667804810588360343479118597835155486442821566335327092919947161292881225966825431089000760248169760301082838527693880971968597735386367790991335606432096972006306090255222425218993025597120478094965559040742650751854073167131535938793992079801902821023396631436255774023864567914416781390996968870579475866499485389319222704483122230843789822686644038490669273961224192521753551598713651444419188238228360981559537776420522282741204538216583048648861399201505581004031357617749330548214067185318689920307301609862005465786697358795710640558167916825716145072686729033642603465206126976401373618473165987652429361679352938673441526899478870714602164305670347891537450598123377470763341489873393026158300673911236424421327506056437464162506107746544724826001022321545189092785895591329901476516679576908395241032074695610669160201765939441837867422808810828321556325061484398328350703872913548958504037974354028885809996251154686094779021894130366179883996489450739801986888942260453805349171223198132494861058803499977343149015585490088314773394458018881129365916223400215940565390973382617045999048701735863331012701207194612397500737710372740727209816495380271261703456262883335897663586760118416645544625296288736579917913857596480148574827845334658431144679750174373312035042245199978472212039632605307494675608953853872767107670268577326577352221179755220285967083972838023139802256300271260828432153441791009124179611049545277095572092421295117465919313730468733140495486695678746055443278750420520527801336224033748809224776453010118885795167939725045876514317744277370776930873850559767281721786054758692135078373966433717845708235437917786450850959960886811297611289296096124520745524251678071420612975672965104036571768824738182069580130737733632394001719199770686748900782140136466177868035938693606669995128344526651601853674611623834561115259031933580787085122606630410716571943931111471501984522609957507280133581922996413566201941307893861333581254352401711666756900857137881956913759970656624414521065286323215577320784684919027439539345947889078817684578177700406527433993933520317790680056798243157935954177508135061858972205679598257199245223317499399961528574639115893333599851700468068470981211973060443340582414960070430914205967638407184455613917053168370172480868839551314364522500767507073033954972463379176708396459769327262855323276401434866036627803827894490951962252713538386323811818232326030181616392801179488083318661286095872948013381302452715063164181782237388833565664580947513917755230416351900462157516734151709962293999403420375033635558899846433297576384766056776910288894329866226919737103416317979161764096747041316776987031449160285585413313613073660957211251983278720275866276747877980079747095129660882485038252316317493112003467509577091356311025687909777562455390344728625786748465477155256959501325992855088151382755611382667525344265727387664512208678370116110364701466813283526900776871869183735827608382742848671137842701448310220148763184957114279871972795233938564587739177154681782016711562805859500807594582738401802983175495742890066989348244551799364809395308808263737954637504409589585022053653038398107934943467289667243701135239181251582948790990558591544976185997733715762999436027814755054797134085913251145774119322654525403507498085606687443474547234472505849950671683391076538623983598490464252842078724582485675381758465139131583215359366027771045113743198989799699657126703938391887825739447766547816572755840502863658651539234693618839571493549125123821264026892782153193809462986966759405096956487622707096221652700065755661860263026561942993808960020940024170941530737916782537613076467943047028474883145000276614615098744549371486143424360207303531542664837351747775201037957204581611518382141061755770643230907430510975329534196666304791062074962228791626431783013451894628442919096580804760190781686077692746770189176104543460578184445327517082008062502025953980224535579466697261908856317452710568500217111979998416077999219650311088242142095576674431422298516842138708833296121290431548617064007618323567564009329386176879406634938919610530116062358864826106549464429161476254709558352428016615349734579582558679922094857103291319530371457483980923698214628583266029699629857812611245808363951321292110511317089623083416758502459972123704796107283852786375330416084544215153493614536564670970722581173576502592979592868229843895237467877606896295248660342232615452388822593874147001930620773584086366459771864691557511636404928730693015384269891386877143666039836630732194422778998750967191619373456327257339822820453571167708333866264633968971269011016563965346260734904233306388376066287549239527241477852436312535092525460356076074667176928451138571084021741111411608654591675957186425862811904689918731605134152662269785775826137569671722629666896437918101730445464290596308496752863410295533784154495570855481446166909322504549063507304806336855018963800709574595406895314596636678907506912065058006254910417949283636155734323091405485392499732581763299011424187302444082639297632582001769621571251020597869505366720011240481198404976586303320576197710376001618380604760634546742661025080511445609678743596843508302780868638131237940431773069931300143298291805383291759715632367297691874251913735605396155377951758625634637345232546643080669619249842027876397892561270694470093219481068007740539947619190557116485015981224723044657770210268499601117072058546914737915850774707232101656409686004792662171203331088819158714262550129826878492913967558661367344319418795927812551868296992404423206381784546752256237551355804760347324402696807089895704150886496312938336765318564611283353249087972783214386692099654546192433295317190404796965399489164366203921984574687137002246068842959652135006720329626047086909733329999725410896773166618386031856536688697983312284377554539962902357622276202839838322337326726780490275308597887635536213612891809700823735912811443185565882991146238944383069470437239004618926961686653343049459126292261230135222295950188572288718575495174716920932679614389822613984020012680682779968659819566207990706066188088998013924934761354105999748161540590244840489456573178561820492402398686174719495872470346637894552592582599018563093732423712552268513794314182872024375331691573333491052752798260813013746855949571844887339063084848728645871877596358299996053500518672238498117956358359640651779164198528600135571547648206706514218085495433103603487527715531499497186209423648992697727950471668520749271716328744074695324162773753411285326104430616095361147120126045504795158539474161690514039282542924018396490222451844064131325091630999409396674238533634939302612521724387534496666021000409000630915141136649367717020394237292449725183320672054244977664139242987087773823480214135062951524447642598565619227464260325809538961066502609851183130932886626897970157632386202638741894629564890495912693118534780247666517753301700032346747033694538082110939457474057251042536863465748273651681498483724539204859644254934916306289372150367208032538454624732888257114989808567274922739206482501905982280449338652583922695425617810559969862578607973158901383749354522617594533700252116249811588441472774434481714961115377662834569267726873629987224861890425606886753541246238849432106160635906116206148729643307372536430628859759330914217083952571996934141880148029829885867998678921966413527534762177560616040296501191190047607186701908776964804870175129631275290502827187965291792031837785632065165309512625103863529969155661883278563376613211587687337867920147562864608825797515275497642478768874991350362275377708598216837978569924309468046990188718110182791175545577358865908821275988408404120577254609008029859723971637772274577370306769068415129149818082004869695677310320899493030115382971020475618535738391866500264274519074195593764044422603658464875060969451605719058139545648227619989899422226880295285575742956320839482491738878276462468138722811321649377865257935774063154613495751213833575612580409021275870127646594799505383951467115435523724070102683956731448045666509243265198034103509459066856941157450482016879442250143925337818630085083486542331636794986068718348354417079032524475308065807607212086577487743093227290796917176191726846956408957277329300101949347995591185058858189709800835922637214371940460819571598488451023246716903224756932092624250415133988027379101743131224137393571347938165755133305130207454665569387105061393965586007868602917821943540714800606740136736961186410675350331975489699455363686221930167912978671336902705512401848212725580621116882582536585318057694420281840153926329481558960394404054452409317907850066924654287065337768720718241085902864364163330113318937179401401870749447654726366055720859209739357367199059901476670798248069174428453480888411878582037457728146768628332357274389449265224447041514480091351815944441609242033318201908485025426118341507070528487525289420025693745436863281548882395896498307375597672548583902837423106476883501683384674734073342920114569673448019898681155271320488298183673546256247648093831521422385487217039859907066191151844076801490660175555583015291743170335653657854423799390718805984096903839945618053127237654366854476305930217593274344741090531582173669478301207122546423293073432703493371300253580722640125302459803253810009383324921439513644698578101119090721651622202374361222647970511172356154813712537493177592395803706830909558642114130429613324629159391867175116258829563119030368206991595399527748916409552007979369009491153456999403508161692181455208239617143796187745695468889129805256311028717744878311150949829529850847042535868877876528843766308642231420792042682884304620085743591066348326403126894812285730296797112159120429632908080171417138568231372101508839812807943649066576187868948533528574699779106605657887919428431132874566198496052599136146489253367367079532991686363462377485476060087394235973557149490582753643796619599907283326744640079294263547545574240028673301771302476803004630533841507358624254578130013996095445788489520099021087984783719425704212466658303156995012425527106847262409240231303262946978972027481014032916545842852182207994227747389418048556369823159090654760360140539924458298640303988420827041895264272482225246844588315530613369043406417901828621406545682171787659775763593197213336334233527343480527093125799815004466278079285391690817077015205323150979297636643124627524814333402303737452441019731407840601913291791688526487435800573440735510887759025183990960824691373606448956696566343793335540102032770280398621263801390485168878128117992021972994909622743751155605523560494209415691049888567652109098748749702098648590236044112766367439700448924783313745985114420246855806889865427253730670994121654459876242895848318408062535751665614581833102754489958355648376404193366734713174560090949551426480535753103946472683865609916672952630594335702529279362811867700105832635179161962729398463408662854942866677851686494903858232035408256884664303485732152742079253721784170479908900355503999213414770816413156733800530088000995873541218052916067350572512122144463349264319018770894331496641098845619476275480609446337610804149505157429200475706331059837029080319079443796781614273835631093058450202857549138409564388103024548992569864852113941841214074945929579213412608529238059798513578555691893967553715353776853327921695680102873261172623352322431675643883926226634964042264014941247452968757117277554716000637168011269170846822157523821344130722497232154365333130857487527817484800328069070679978346407117920039657333874894540073350352044483475985294568758621402809591406346168529092244735038448836602587413577278474790762856033657934839153255606463301593154133778270662366489895496974195659263019599261019506992790829151195811902207295073434371972448841186954772648699593504236205319330438439647848378127520341287792407805646947418237414559536757824123056967417928189544890254476387248179947319016770977108143060638997463289026144083508720539933864969580351513789478243315003894845222791527806120941366266730008281030494892999288128510307438460956602685437301534324787908162039874294035830206337738202772911207568123701094567864663017398960933962706407331675814266034496163160216601388008395829487778095320867229495876569950033378362661860345740479731342279162761404153622075758578474836182940289640158321843389125021074401003891825501760938993468978601446747645978767086280290410719067824463333819172441659730100914933344028698500986864109290323870467516448102390192199783595565914901501331722784190548243503985095649835337053436991984250263043082228801799039350441828121140343019304843336620074972593566440026775152455733900607596939425144552621107027471758893903235899974274367764855064852905734444294352096557908308432303612004084047910811043041079663357579947422716824515424722762920158155894353701568181110166125614545225406203811478487727324886558760725830388696947494382452830856715831495394453508726421887876202415527620459676108369224611374358697794939863396474576698747829880938637997587831900658042692428164489405772494907257627598739944568411880433039409161285332807743425606688873335225354506976193555978248666591936760559511665749544783619456897935904875115254926219881133182631682905090362020627436114988692404128382360626469254106676151619389106309564910453569403589481692565887213865323349509507395590503241391956539251043474495982726750766989248317648715584672042648950457044654281578228076666076095463675246209667090147926004261125275179540356088904196558424307697013872478274878598238132022250050598036326549857759789916519637240448607276626458003916288483752253653505213856659043250850152441355502253558390754040045043490832583054962990330877851207126639167487147480433409508007400287503522955989839199036438258405600418765616868877689318326630474061193054471691516035677728624610915566993641121223289145240697753858682940994572603851369412833520179786400829182073597990785384847030512953230704305087068828996157303625944321379814471232009499347605921023172934803062903253736936569135961958095513099553147305995933346539458660442178312867604700868753122244937394850377882391458740346015929891880729688613384479691983722643604803065470206450271152860306958887001554939821471323837815400947509992318729449964334541375148100221524053075436584368207440548735600911651233622060192473769558867036399066004417899128723649047286473644944600743584072761739801294686215416749952278894102529794800634534050125581895892316691275370716396942153789775066429042094635520793426216900054209664452031965520625508369781703183174849047541905923240800566671601919409618920490112898048877299274531739473267002732753756130757116674639449428903539934519820459469623581763913658817587966596691467682590522707002686848062618631222501852250520437950054912506505206690035585145794186990290643042555436048538228717105088767290076681906492159679449269301914482385299425494372815402799122925949288691921402623635381139732444281918083428788351777535680087866941148545408375818627104559574880339294012671355985959862918838668926867859672614769712113584204465887349604625320525571442727565654414112201152889659491483932139493273673215699892918019701948208181504164539936477921628296961205540275693848255718824693476073949887135325087391751493176627310334987174845200274718460995837153184283117861112954687542915849502990628390560172742487124634740195147225213028391850559159019567331267861923591825673885422046014709933840258371204185328353124871361435896636715681351454514237293928218832015129652558654418772910661885920092068270339172983385829084537471385746496621722708163493044876770332392647444864514154763658481510333484034665359955033341098456561807674226919113556295330945431917861121220394543744368624644137381878730650365797560295309587118981762175744472574914326649977018205080089515791214577492817478558819743465105087843886890415031011371273765060159058571477371611361440560696204983529961763349618557711655830876780812343844916615188660143456366331003748205859050358665040703667474309325960095937910354799089680061899860339240800536548402149978968352162578491313651009184410625582028939358993105526843588604454587229839638826766801614851170374332714606468592508785322813437790997251576275819788481440302849725438584532372057167423649989391232713510364948611958159408416916290190696428468909620804041167484707552640394849901779086895861867987821212425706616871685711961895902751900961683880383457464578797070351403315086442725335514796903917304476232073023008215816174557585850227324913067136093171619575538877407189066659019296877286778870908273855141561075271255512663338156122162832988063088966930142892757572816294071435452049750160639105093672041581926805541904168134156290613012642059474797005163816269122639808524589891048981979493996994913776586981038062431479369464694102531417348398693917306012380020236736763726500609557145011908785054815411713988444097693310057680442648551482875418561602023077789133859994214854945855396287114298652776433862903429901362678357864133731216215744462547706783434256636427566191981802622730257619555868642204061480125872962073896024082479866661305893250745636416035352785270884758969613296829307596140363409733826725529228295088625732048232618959877700887793947942481618883402599374306504724585704519216965774818296664319095412582130195748527902492815377089189179141486381740024379225325705821014016039030315374710342731391133595915356728882982293985341515643149749850452743495452913564469545650436541449226589427459023763403350237134707721140252327965177636501756802940682979031297264383450388082424258935649104470004281295267649885644561390940094880303843218755158808195371226945388732496343297383121158752723007357147423291386564210514877440607802485686181528475022182847591241381906714747479230326909516085034982315450743397709606417463771928447798075157771785263463491074653533459689458747197633554455858664487642782639031204168222503228842855549256225988490804145842823162129088650578638646293926081134425523239556138771339886134888765936679783002228748714408529703499996736548731983173557617294249398907528410850055310978878503111958602400473453851554706684491672668767474855598632497690927438802502962615477418098696794790708280910438878120000776718203062028147730422951465210810806834110879360947408968610904178528126809771774482164679076727574730074887133441012925090458241711662089385117387485274065081591076615027679967781522282259131975099848816638210367112030948814637208653984609673690656380874690819284081724085049288858480603062456957474004126811111384237396771667932123908715556059694383634061909365938244243323338918944374900857416007602855448060049751589243943933193751066416074545049246418487195304541542304724230942331107344578035442289845798511559038248681721916394115093977952565240189150338227006802645997212456332106825279698170886250696647721194925437678271093291848463497673100888383930484072500949446810459498287427465183539124394118372944544374551164495450096580814367969300509848722755835930711801963666486467053531687307589214210941534077415242829006125300633693387030994220287506124435060925025477118199508752388609072409038669963034842067301261053060233795616149767559831668393923096927127096915306299561285976447841342635512524404870061343535299560034824141950142483869800654671982849489611495646383221506410605593180455072765903633216156296598881269454147720162947458396234859651726033100719728813528130764871628874544173634198568791803973110640027171474795453169856068964894584279980922670989960396210040118296994964035926688068216391969821261193354444142825935173378571487742104684923642248994280208363955186528223061419449196056118243066499603498006477004595490692343513875289455918587870801438699064791884438329828016691253350976255935384318466588892695648534513280713380962294690450661947457410552609148997210945984845221558878860917418517268287636272615051799784826235712590305912605906761855197798772727725299966498136479802698150544406375949161850666801965793625577347704341344270323523080022268482007398310266212239591355007545975387774204199930048222187358671157620909014303340335826203556578504597516494145805962367841298595124154321863504212095102676738895376627278068156472751698090535439379704220167813938420717453201856405610191280520435307695466293736823901172355918254844696827899611121935602864261667665189705773514534034151456536357233965555682178337853271291984689582357514470320078092913132002731189749877638354356039526736181252772560705445229842253803334715593541034216066365637500923971184659894784923516765704945927990617328250513659781706871634945197635331677193740193907237836666026201023079390433728656802865346661503664231640013513555290642262418847002251420748720635443558028556045500087788214178168052114344005945963472374271367392870867663875211453385527782506581837949753461378124471122710002455117475017846184203506080698188528305746277774104793801327142453148636874101906402774749224307978066337968966483737015390455188170676451767104923563942768940373948021869592326796109167376630304256601116000756406815045787343463243134249111769564969059449217529028984496791033194977662956644003740536550084599850331878801993044241722819779480622788374688648955271613005864402095825842993862613504543044798224733065833150567549844098294870144083832073888217925366438914452568977030470099390282435757906295509134729548912806178197336290722502457609408202089562460875737919268620032927980571296097934817073185470012853208449565108183065437974135120714317507003130810586474094027526404117466476288171410495913285144308885489245293724523116186698451987061557493967424911456283591487279285025184641168360880112989339803799257380501550432353369713425204399925043818014368340872898038270722315625617144987243974611607408561947413677131974391338314299403107040479818712734025423191904620135810167110624715476098594481315777934573213664072157621760137098536380737576849143996805798843004312441173499435774677352235256272372870321557454088025316859464939326267881667950884324154216409609800818748325696096660922009541753654633490813489025147115150196259191275260710587438088153578393440131320055633939402734861231315078257977899076247148000699213303572465406769698635108258883423563178101147059398598000694326104642402919974666870530704763898958831325235383403888833720890863717909918109947654406028612081355813567589434279609434315427791961276044922809578985455592299090300396711728686428705680024029683376415364283790451740250056082820844312611878713762399478055994977020773484711758006827193414701628415395018379714892351034062160301513518712090979336812796631874820592489230027998345938334984217606132941385195182564846307647255551155317536143728021120152677115132079226228604074171308237803877669215898017641597380055369937026446969320715291068392015061187119411703449718046606437667671611506225245137084245107163726728874656610117483697232989665299652724904760354506499299577658391516364359291416077735511738223265674964245969961786174292318625651256331605538797967606071925050300354149389129963626811056380141888425523632668515608494375673615587390022827272527982613609390823685220837393615865920159983714598511946750629631501236006007074077565150348205163285128504329075635599122667631279507661004756506535839598595075839932912835649756253164309410615940779854872515797466974176659800075530688693070550208129449892979378532421215987247169881639505302262630321710228266851450861704073617098686253274672754988716282875265269939193882235851972273038227005435612082395554663675677656397397187737796826758191471048235354907657684015744023546008458790216409170054230895216844658893190089331276043209148496461911486603724051149179267488574102096206713181664222384763212574093162944374118358569259593350150468365663505359203690233656509079703923221060830765071820237481536259887657446486769825872486013492130451225398478223215412315947300836848240100082848639996640677458445393751357207743818157317698108882055086009577694625409677062567168582473765316492886196296355146635427189878945500420511207663798603860194490073399478167919861381101685074461487639404507033860514318264057735608863130289631486771038440080124413029451458346349212967453246440579178075653569327423325891992563601455283962294659261710658130767181520638879402739876010450050309599831018663652585770355463770658740314251636322652094253923927083656622688981929324567085707687145934127838117811000189656337199306737778267771349658069072237682841445858258233972003359054889051205789570821893152556346363076521643762548561148023623442622737529360971267729728731882024969298444373559010275147213749554252757337985197211790384672384720218033646677519384955518886127646861168570754970165673424893385002728267610798014083453341442625787007406957254069643647355986533894433619756583655595629604148766892183023749064226329533065203284784776363782095317298574564815737528920358261781821793897164167576479009434157741598440650048005343732897583032389688852413421065349685974930096285737917678168253303930711088027319706891903874735619101749840668953339224254401633131337497496414481974386989849729393280019867711425906598644556280178791226092254993423684900847764828040095838523109498633496047776052740821196905531030171997674117851524246551705130307762763226230343115586382457371981634090311506997359580442762903208992790427327340526305531603258150014147321606041506421269400398502676829154891668585600618382433937428453391102839532586414722643925799330525500545430241320581011305305414168025676904875031218640740786701937900901963611367071447788629949674254378541549560542163338520918005293923071883356338748918021422820431495933164426102122421670218257038063589963293181132615816731298029942913432295795844612891097223185670254391892117169653072333305845586270112609460275134260617782110834059388549673042368778253492063480885735612952360871323520501131275113045092804276493912414453568139789872984854961476427776469499693585020808536014774917564777273655115418261602598784973946876771360985279286192308504601718090132528422181299800062237031539078900707489248736448846237895284366098660559072454740278360890158355609165212252092415735943552621597994957586781604938579430172651447363537537858039035793591747762986478327970035790874027858314593345912438930570357738335417109250313183052193203480468647138443017467584315958503976750337241815402942442145131115785983483842454094175429001160784756695736385026005595938372106330960473764669948905607551594315775829709027325183473424410564412581235856794296144220385279631818854375679401968266749086917005254341033768984987590932663301827242265502535148603342419436583504966960608237219218358817932471316182628853358817852394931611951290497702656752108280883149327892538006800360605494878561332583997256900535791014089264115997231337142782745039145852414923107928713926539550708626777619772034690153952872173520728312940291857050622820450171616900406798283447749527494574085241265388255743262906971128933776007501759463764054810438348403177715542245568280570158085909723714226937763771123973828181523168908147492552028270367093313306430697466794029102962998480939329233298776998488111978182109058212457426548923931798026343495802610164653348905467186277575510577141322627763719123272485532334985202518573815591187314069033520462017185284997994527994050665949233443027736202397430461684711225982813156854450018265177708058869917367709950581995617703860184212358371261066413522907465228557176353230738137926879438610522035690556195533259564022695778210724571523368132274932262246788624953511323969655762118726263543623741767386868943370726030417854208467968549782080218713165330381503086354664175197491814804795133437721363287058788334080077980455697485276478266993361345099717814219060629527408916252294986859715837438554909791618471257565564879460488039969619533985249015199271432924420316162776580241526759819883778513696977115835948784483487686549115748475176944800626289477384634152518930218955642720501406648850862506754895700247764407243452487387558992626645672698464250831546059543859335373477370419282156129941290811913297481131475572954013014679846283040853953912072353963242258521352638690967512553611527693547231031087197088325489643418342522448651530651289927780510342846226975939265882831018484189131392572169891050543366938413293606972416823704882901147102630113286966900569077784953088336379721697547739904165169195934129077581187321903527330436443870137259137261985416749787852497609447405238251094318794401975272595690759096087748088265044597839186922189330979817892843121579790569353550648164959578797932766570778729493101336702484067270276002548382521342301459394905164575289699176156315813969405088490928889452446213172686848431629229841464052405801605309024782097092810788256197433186910581502485179016270177623210917976336785095972517236384509110355296565092937016407826059760563245518244139058369646838562214843308620334756851752520962998899820116190895355218137873148320486876906125703300719565429481441843686087706322593038949456524200139873339031899326330697018217963964527848685188391873408924794406814518429861625310714950069238590879052210809062416366849954444007505342025829991450793246587916971539811258715855912952644581152595849979262173697612379982958782852581090370243255598623436766487684916365146764918071458865088215745189420778007791453468671267721916497837653790301635418695215728046489389379008386639645543808694553372393540022431944729049594122575465988534166852272100996370587936156147967039456405878408278544460493111930776901231408695015037882015463071576928213994352747959742991317346931147815531252198954832161794599621857415423374653119209791293076650171770881400653942193226163855581086742806564635161840816710869406450139744720104137617321138921857194666012543118958509826303977843333953936844699593540324532285919306136653659276154749854827256986548870831665101316140770105409283362202161372038977231709914198611341334771021938686027269361438638871145978581495689162480984737938831739088895643246288186361980397938986283836699623347217382260951972110798225623148722310364657146295318127896665284781936040204279489414452392903302755531263374677846102191398922752738163524769945620921559340054283483219794364937236267469950818857880033156659052267689835325968678396711494314229134369236229807493631442655427123358057918818790935822383817764771507775399676101658928500035741958940895776301973727910747673784395403935171985216313090450091814957551942019129711242770757932001965344997795988872442356746149569290614145811694172986499209084873519442265428821287938164690966272953154175755728680784287483106521452219030770007302231226019810710132667088834282476135742296519100611629950095405300468440211085922388161328931032361274155741778427025877326544758661362896709048726464769544694254844249661577698082001640636713600804235062611390891709723832817847027406389054274645566351516458323144065377197321172217045663617918090227031542525248274105480803888639053120876813752324632227631603269079168588887778736219670983981277742684033908467103826997834314695484788849580414732743491939391930126216977774202163066087346261187633810486623776065729927194647643263495799093955053552068334975299580825795068176894384464744097188129419078994223016709601828349489231933571938776967588985373403825201700098465837452618686455433399784704520524944915282445160426916805049256996085013070357461115696583442949154790749289293794959962854924347846772192756447671483245064542522713664383506080379290884114536611032691717235915975021389220286649300130701298437446349585351657468636506232005365101319092280074507152454122245610772423170874061443459132983765464857053122482243968305674254730697851479874958687511116847430229356715936296193656782620984758233699132300707727476204627284159629416519198099327178272682432429022321618635930736315308111842534281083530249445887251203028657355998860159588675453781713261677174640049368976489206865647881023321127007563351668444283433573944810325691145125115261382150479819580642085367998586571396150919184668656559070845669851878633756811242655096628286305354571102178521321373796632120856270128969661191008778795024321354252534648446311582801355891652310820275874591351650391073502081992730123339522305605088382866996396687078174923638609572444274272750447553979751862453546456193292978220850483252708136978994730433981365582523966494780250803704441258772148038298298636658542764412742253934101523316075948309978437051044383028897936666776417292207396162531775255781194071192211132411103430268482182127213118325847184817938298046294627719576175288455233513056734275948772740853232599091014698578649487943785806942261129874937293662512273755220368888041920875390312129338211918091168427302335505006918182445222467374789051786317937639203388884666755028386929101597061958677227980020607043429336270190875823762666504755194830463215931198546152194229161231062076286090060759763044026178418448334933603609944468900923601589780795463310409419335955297453290723862509246671549877403304302163825943899662667187659038952120434458142190486706766918453237400148814929120593754669219029084588036820698992418807997162039268891776957920172522436628480372706521836915469625261987937931663697384880598045045208893889013621015648516268155585105601119483880356425333720197960656801217344925555716862855101162517307913879297674301056883415359880111622607577491976697377733962814957816704924496433401081944630479368348679320081513063138423130748910153618110633145105275015394236088601467228936034443561360394861069731092603821727219313760302363390853032271624357440574673421405460157736647139921686395808749852605127479328293760198380107461384371374171764182154445375081211837646382049068930719299064812067115580155739809026182632670443142266264989674131171904840414042567772479254311237148839573344170981255629163439944798267473677005093137369332614024135786292424211148769759582909447866784565617455139246712574078137325513159939060930403961794331457568927501799043658262919013547434555404741026228766998151902793315766621666943713300645786081359382750043706282372001538199362258777460686214413138146856164170464659362505110828671800157230779629627849648865056735721637761507220587383848221304830378038789623316208000388205423942561693723851609197245676305982959838957854565003544626885026821636666858524040717675558662195542722099211766767871184095283144677515628235841870983579973651147582760127133875969807611163839293960994070427605103154128244053948424099326883781085001761222187138423247376114251338597307589385930046832260508892663377376403182918434347173943568221998970402642986639615143413811979113399458896876796563492356276337291790639864536146361969789558000840311560870085599405885902124808135368858823833519149360048261505273303459231071829306443420539316438635045804460385980215889907749834903486846013852089220430964622570891541327368732100716830069585511581141774248542986050260170995179596517128469355277643120689879598987775387134090187407777815900069003317156375020415176812433143430885028384170372408650388750871098643208402643461860737703671826586091188876300389226548545414084334007766700419560338074543497203921716636976862608943757352898210473391793076892173285837219103906596884070236661342671604800463496202007474630138742732211501727553303469614918477707605155923366011613648373274785480898121983875448569047103551412076853165417682307555647867221369279496792715480875465212506044328451122509735175379138927784861764806596081675003137464730935610137665187680823405184066560126993445651520365249307019197528583791910584204385209547169888276888458797100670454185521886240192355585923903236384303280761974446468440532350478162204987348890318983201741286195493360706895399730277741242796656684864347080218269993766545705463929307191463304138551142633813625347137505844158646603769654584107318156614860459541326868322411689201675012193329910733764593638036542922806413004643447680310739285633534006038129847183424148340113313643043908916873657293181447594973680486967827608395283743117333019102579287186720299281015468852471036064717132618732287900158640066517148094692653026735179594509152576742636785752881285645098082760706641054865488352215970904505062253332746074225071241051396848624588162319322707984328723573768950473083818391002447341841416584842520636732741369120120612812796512124843394466972117787123792302417559392456245640357588012926165398195277200759582765852584208148250657855327526270680943882036611767303313280704173433403414536624264109606132992359982909299432911873285643233576597016280334794715984127762853765598192601954421807218673425399783032793160783146288148112744090358052696050800177536119591259167701849341684980849078607040004021189580611283771276154654041764459718522952751132590674805874610811841256690237560093784840438460334694884900581149610950518438839051744268734230574144334093713890871622834043488789920138566288574826759124916526328534049231885897686661327210612934397836914697793998666925052131471494093261877177642948522484509190876133227702666355006253973022605646966152108516153173242149183493363219483007514507462406379504714782074778046937527125337249448285722244206735635342241611846341749822009969966760623490225925789524522441643154832377582512956188343538634537950808233492116109285259718572630715286469968686895390491384677746692722418994657769726551142228431989413334303730575777158756768447852925980088716495956911462661516788996566731852284395095312163661194004714194790571685571168097410965215229040413884702586515395290636468462283648424462863216656259074355458843120985504310580052684315539141394126740652704594272019095655680561956912832854798713766116988519565942957770537282974721104301665621098010038362710817388362151313203936713298600426103889354333399654196852212995694833433351260073573335982973876043325701911291275971510250201344830090667316246915163043433748871258895586475881480397941536448691774843220483031130642202408988649914170482600188130918214004071532510212046445269977104829814310800440958423260091002603551857277465925362008804559297809236134941203133001515531361052888105347018689703008197295598521371088458052725266898299926228316791732504261100461777387219456678560145476736753958299690758700582291008262696155318195627722624298451055215323199361971591601152546830746704084528420643283252210662803904177051317559826140508611262456008793327517953214561155417767175691443339926762219245186258967805274492089632780398466107665696904210484619460415473394967022253413067784820780976544293016644276068873514391711704544259901208880482625441288826288482342254109411562787338933030480030318427616331834678516283424155900853653276785682881609248612516438415759929564833361395121783163097307319088378768878037137671170309077214369177663619476652326949896946980615469790742060689864133005697141605082268616741772540030521987407881891462520720348973376912139088999569079904120363193440277165782865367131628556554166104441775459937979629249870649130068964735871662543529416945410668775363736855923401967120609706854005127098420748662538707520030227486553750195474250099950125282763987468342702075391652205902103848744330028112938617109749731524461662175409333733250328941563027433177318089234054291542673137007075339922143677364388137756161217637876809446847760618351355211545008656170216862297458726309864463236319339748308713520357659662316850045124388459916741570597552596444058763488486003121954840190786921884591172407074389223980049190769209072061945051214269209270134494292740334179707398912205700679731008202470996786543502334417998872236301487537348977666365221894302462040780719858473815871412674494743833451624453236385104544099404978060584202314484485365837072975240681616756733390541319444424424396454307336171712962047092493463796213258585845260891533106318261856313938792914391020868656798121165742438480723100852304611064426998507224129609104872369098385459792844818299541753769564424574816181796075500516168213823506577270123645659169404514361451990090688161389700556408624085285283376102336050535683169662762414331411129155668478350743608919858430860334140620150845637561745503533863091702772552538828401333870134642766160859341639648141772778028760927606409764255513607489476528466578236217740782602995726266259524211359238715208974604324524385454171888345071974726483395150492745656444402259954324411355146781557621952355756244160430748120391506558251750254457282008338769658651476325988685563877841880946138273685645588118310006093386506703539072104524739344108769537553330201860450632427527581271577661839178066564165684133001132353833518332039408769919710544037090766972281039752022633642993471923071374349683083097352703920888072044399418189656797093271529418055639538300058033717160816387078339587463685944463224044217995994518843459435108115417913038655006713657711666743055599395313215041898145543429261896309392564873603434483343819886818717902236821219300662814575792696269669820462610694995506232656404751093770379936765439810887858266803059417347386190370977452555962751275827117562895670579312034089519122011603358954393878605970621138180830348967734044876805555098855181298442052485473901470885618323309368868709728638730529557050609101017441609032254791768819657729197087472411339342284250740401116994490320889523899902730276051613355853208905824540749243488824606133461153759681928162406635808471313592974603458349826382323089540875909719119896877628867012032737347787839159745493936755075326459529195461559298270671046722327622700914871697746911688489629054812835273564237544816954854601931807426267647524234003731478352900632939547249334046039167494605632295569318000916536237954255647599756880001116203284077607834418425715358779739530030772658512961838469631901321894981726694657693080137572302086462120780581704038581345256459789124635765473601727035086828454841958894705035323245138785146933586933241943250210258488792422502170231703872604310944404157444937330224415832482850919386180681468158482231796425267089020002585535980181886710455825346119021538257581366543985691248165426698468624970247796318390141073575383509924580060301779760475347891934012098974710844085227733387199270708734764084393539736945825449018108307746239702283675004983643508905951737908611584462771780930554476758367942765194225916249096114978296357003239405973077781068717564034481702813797899606230660827556535172984079939653269767972919790740732814365300279999806963806653568130330379327617910702393967527915198618603980763778823791622193464559280036443132179813945566894087706637910183778333921955321631418062487470443485424792517364274202735785486222591866909015543588666455292204149353652380445771380645161139842841036845004138946267788508467464752629687360367338898695252751892683138617364251954344670034535216045081274196438383199439064524948699407506091860741076192135542499712785462038480467554375299676174452141764678409447856715829301562464013570437400222490926844304109341665283918521345632960259480850138144403507614940421003767445050501445124766896131017830753389325245028841133934487804059182233183144194265381988104592739723473699466472590437489490431658955209884734200546528915366832604063175969375486612571806614385164577747792520643902123474792832574091112116477445292955363202848962832625915182453919115868092347613953720456175306379978011588902446979701007168560749474042923592815603361173653497845444344658228730216710643671121654377393579772704997581863406496126749245067159494436855274282462423943166848649234089887151948152372816303322888211939540348065648101028055860841443674120961884632250952812204504606309952866060225985630872552583440563238013727242834960541082357099634279026585221853486307396659693940686246378673889498088171699258335094971659693171306772874921405917954709835552775720704043923505804265696081687587928002348604825489867606139545021061019328728372098546557657504644232295604396089373821961662201454670544201189107110065359986035583930984084864807610281712642751522554177893971887623733043816200532701376636517972137946558468343903504904525658750802814900833476028988899301798208301481406382346498502939956295723860891159144865251712953844908193159711090063940376620802746556973990874444552176977056616152886240286279273526362771306765481534368614185348890643506628567932478428292476968742731325189262656585669967526486913150469196108272571651907814304933322690251236029165785206385728288997840606814084092257178073968255357376963489261617654983232980567208314743405321026615501050478518227674695952071214447104031515922701968147199100021744775773476593601372783108073060628491698889093132734313814931092960551913085974765647617687489601557117417304812667941056563193453012714694162669554700147505892780261571505461343460353630868956358294275914868375998069430151068832251993774158533955687676157055995114814650310891953576350489993523204257320576279635717549292169112363098877322190437951693731500209980956482764957873529744936548015200588008160750264961763825417383492917590851618923878561649993648319165630989308543553676244316794963090882560074308759218483861110522474131955208472134446947741046410546566947344196177594284589079671297154536860521331997802533115075363391816275810842439027064416199802186664979756021327376092301242850464100291848171750000927603431665369858890498043344253468571395589622380683249399458860748926874193703595156335723207619652715136639298853867969590670835298276195434818616469737823618734258526638001870432898887932976800128671233702449827628966817179394966464909684906912483669459743580551972608485816524161700834129051866236796108448930706526320833620657235088557502296726316179371653834847028076142905120266718134663432254100502862706346462866500552820259269297391157086023740107074327608943569440157493716759983981689319540320962135831897225875984456893997738247442308948479442213201942761117578218001883287349167118075119412008108740942437424412936963961824582879093397167332298308704999755751262225398105768335157259357349786863414675253513026710147462109191815705618845644712952580274798241746704384460800140426121080964633928487487269809252847233769972500298720835399690815976330015919502788854889568766861218681258678371923597699609848288902638264693291532529236468156276166281306595737211408266976490304243470158757023334603112037466427766088943191961842572475170090991259003266477769041427370113428699570198135537087112991317001456789734507564034751835401404493726331116280241871803928644963176874425644481413245097604407741492839355722151438804389625643609808977744631757403896944593980365612532573492411766966020881440260851888548955703757941582133132515438744941772080930715411398169583428082139348762234775918322364127221368461213048610907039120600396042444230380430982261851382498285965863727352405445505599319604140599935329307801474395028551694964780566374653125833700570854831224847472756485439504926631170145382399197181121234197599393827303579967786332475602385425651300576896593739764664803240502175762267000161973391238957377346291971944861791799279799636782467910969444614520936210961799480536723126882115638677710139182639831651499266231938772162101423962350165063373282208272354731977236571698559897989562023876685620613369248977786677944523382991540009681982416786343818979079954012139784447964817339320710891399786900306245695524976659615503033139244826208019679323100579112838506954937241306249080041696190165963425324475074394714736761630560525798947738442402567294855940060955514455805632438768258296202901848074602262445942851906184925418525740510311862481957071186215096423089120161875816646483702756738392918063413155648145069558826857459529038321153597314277795180887725111382810860984736577302370327798983825046962533976998649903281115671655064085957301995391540099586928638691535799314200041569806780629500680110872807474549290482735325542003769343352503892527356932434727516998421347008606251287153196689356640963953726767209495854394492253434420554469618018614918302590035622470207539034324228292959554931804146892145456754212411762018726844493174890446368162524539623403367674380065933347619464328122960137356324024647928362112011139396592291992245507561022041511004134447132020863371326849326907748383672299802129499284658631092006824788981524866492661595986934430803979121502643147658071026339720602388186991467037419015772173051009425343806548576730641599128677960725641939585055855594699577645893900919717158437817720176293415500788368530560173505325122806448847014367451857700815868905595476316710828674102977572876582162279126013002834146930712328622246704078894578457534052640969349872111945820250639726246800113685372075909015012746051963676334306392188242469718837320106437778680091864477015242442800275424635973442052254163740072262298677296421872351604149829189196987366843317442889540835131213541499352213311911677732318908186775875937730695584505024752373740562989353974113811831314593830974383144558506778609727182267726347514791224876484799095752327007318004623839261980327021617638491559071815507115353228176952566080271835907801543701988734081357657360818897907621474465952810787361383444929259128706973579070192525796061636948431567285538156023641992930818033376914517370399488331074475728825413880425113807351172761542716623652166351906323178997379503877380514630557265747606680822026286194759856500399307712112096925610088121964118726778295236617765316451819470229373697155541476102376230917088036923743861663192871615287841081723781016490078819452684844013740124198137077619327985835833745817757210001248960848509197207826420132816929155536001734411254301410624162192919895618953181845356196667912916807386066186028844003316183886408245377596681704144764189047373559773248703843812051060515861551222456671576116985352218344668535992219689068596918984803350937706871878265399213406839194484490744747527821789300821937269759722927328839263378856750447829923968502586842762313612454937119070120099533599658387948924683228684809671490989328681784831570254444632939204642136258289316780584125671400523805058223363507725957367309259861935303845962437366029912548550854240742854882449101509848352736398638067065970656200151035626393992406013370551274506455714866845356903040523649554557975463204067571723126504625193640268349301285695062601645705914975432018021931947386010930585073545647423959497773305501662954291115493759186176710926138099750637461987383957439482268842865329941663736723281410711412539248724616679149973185269327047997188865770453749508797279503323342937917913511138916272123976397514485069475250084746897090119674477509692591072960768378670244411707677915912883674662534916417876471337023091832206003410990316436333183327465302457924985111196779840888203703439168389867893697693809793272107477768827207498965157478991980865190519045843548463359635527331958790888709046246017397845296925457229964307085430772195036163202151377286012267105120601331774222179128351473498806071477330417097730049924821558293958319932588401533363301286732701303142756868135356616025013543972197908313567312686882352805205002928907236534200810813819459914283769049040828400091314394943844700607794874835949711740883746614963470935304154994115071237077957748886959660247283541429310318795528738933025831911610084254660462923734571421515221937000395252230592013556961196013281512766706839325492223995364110824411566815712906916476172364797071506867995796742003885275718792872193177133349012370338848115304913631748049116803557937168581672823171058207828348376648477092509574286925439353248993762673256879839832399694631426693516943994568205958015105155032221438587455816175629072044919177493033324292051249318687738837468818241896375352008332560055260788200434419127030050592140829404890310984208973172459152891836260276879926519489691974155013151957050251261738515733917706432668595846191345390126365356646964912624407162506540573447459273815468803677578708537782983382113705329818128616705895878240489017133937349668030334412388394285594676228966106976796697061621033408387638081052787300282391202568694188555291486598652468499459922786695012144810967365114947634643409710437830430151072997972290726128231262514252396719255765142667313428548402448089331446618571177210804102439385860336205777508575249033099232731883508908479394789176935743594654863261956799194172917869215945441421615187701100729427313171772260677413290319172225664571730079000530055306714531013837082965459029796595307222739062835475905208280346215282927305065029594499056075703724728585881278138687143202613830416690482181279945262817218076894835873234308239182042542198833414980438554155051473043886357530779294247359824434598651317712182304729055932004264216880849552266469281451578684546975847751540529311468480696379942194575972023670344939342374432471599009459286873806703232750383988059543050891309615978007452771226623070160013767638495400062879719561657479028082843963465980143758154104272430418108099889987314169989629075142676330326343171700314234450081497453020876326838609393015768654474793027192622200482208264310934160296997147299190408486547907226520000447967183903439197398064731269171380210583727912918224342631387620650083815932418462432982761056460891795659616457804530187510603349384090116900284234955056525033608610912453094067068003509487435411627533291608611505605360485129188025362502861853865488355308700461028371468856576669685774929030059361309371907412017998618892829204117181864337156209355334017292372621952290829918331915447587868936870817933779495725625726416232147249070237901323925302824446321006791899272776141441485145354646232609394851802425406671869005332468226063152815730678517914123152363810873171189033748682803776762214327997144107925389005787992733035502968994826363677489172880662248507950867431586653039649898378772830354761040520687594698018101634882612786202468538064584433212948796712837539374390797710540934986783790050142646943917792107633883373793286620083760708943360323898667162625938265388598399874203436950398799288641403920000167653150706292170850873922045618068305694306133878635730899964115965201152633043418312093810919129353147955206724356609561617628061645185231668585039555446654370120957836498560561357636930852043823993481164865752228380168049787667313801988719591983358883424765437145575730349118895381085368980067311353064852808275400767201514360370511091286018712064972376073472711835403896624497025239778884406733545960653208038375447924991180604036803786472780585018277092066148295078596724864938832588382217845914326463252971038223984955800845584105056841545271737513858302251628175331243030490050410183097212131689705382217282689984747079891464772023108896100287332967106988122957350130092192870133313917923800528377643880147437114746189879535548297715310948939391551495122572162187938902233026787849832771498603976342306559885567146843251647997339247675308821011058391535095120386658407113994315236723873324642980678939482811485550930911759421348427139038741631191022371508025437285533208196880185310431209869671483575496312314350777037370922518638025742242807137967052972209699573997837456062974325145501303149710732119731271504310902350802083922376425052593470589900045079266039389227929510234288411317123216200103612913598991728478966428622661197616622240241570467473495123729778483107023628493474778032958535058356137629896270954694985280636736431186528109474420963453776393771754194761430041594304761636242450753040628956129701923680836578602029381674819894645130361883272106062509030620580534754465389149472470033808379726130692388152750922405239072665216831391767630890850046712995440485833234385824160013446616183898722810089669558874950337097079487341220914477699000506653210719724334941874085712097151819082862007207688873804322846215179695310330408172264484022434871338063621254010303994202325100011955735929208500762732121398498460514039586079891022228657560316887006694544152675144939082763777562973816614786833956653781715934975069711895407401468784532935840396771440578720003622778299476201861055587358028261810459909993105880940247317912683753087583906994098221262735028332212425318028409026395100716340916547857810723204687567285486771109928087903074477646056566022976715319489750245301708402358046184549058290216139891719855929307950987770364176732317399396850688368122321385387113599139723188957013697298265118567029000596746572210532290117736477440200703763702020930461537122228850850970739140359865502389925548590416494516020755326941763437956048948429393078299562923215167144291000549385608406229639849033115824212739652626301749476366948025812445704538221758401716081225101277411759947611249434099767109095534621223256499418764815479102178638045428312362793607268978171535662648874080414434909816271664241165599264562971256687166096656173263316109135663016335364959019926087245060110280535064990800010229070179837800958364588192550147456699491699323845991658121712394617993272517498335464500457551057239389111291447541150279642535023291999064161809135079233082994276098485700890390891689726721613574590523840465356252954321049184040346014375899841763846915717128766069149758274325360273992031158592199937880000939195983611746977414621623774635467772377403988149742819509017144446702585845428992448406300323285653738007294342970194376459110069894179473893021871954879234714061180086539810172853702117503382245641502248239429270121331294618560239423100264403876042187307391495688684616919051119928716148341509952679771471083879632155811635268300912062235145102207013489829924724288720446940931666423662128795663788636943747301384455104274957499316261272717601174461801008483217867085772259036642766705900415003753089584533892174955270411980591525910163793145586958532072698233594625579835144090350196370642413435624833549535598201668477540243885947337400579895321087268151133820513790032799444507267019687969028860355285851347051140142552638737948269514999645606799744343390937270910124685345979529791296415548496680606061325786725414002349156248806631182813068470073168228868400860528127260206149138974626087381913697965479657998985031303371438871565921790227612284087653213206415810847302393994185261108460769014745680950027498474133228756925940810646696150492936534177956639220526915339112727882384950543401746818040851821925891607637065711744688692102763287114460889431696213953544310704032166943158395412700398117245456863270955228964440810733598023791737479241628563982651565739462289993898770695995994005448460957904963677944940417989111779698908413916802651168669472926718601143366562764716019737568109146289150267069743305199885216830746924529923568779780197590058850667394297350109453158402201329334312270738493729615302205914367777456967451865024542845245200862227400521466156648173942692077160806824349468458364780873083564344512762706305501020418179551049651001216304759826173495412103060564770733886726375998129179130397909901441567554100249636300917430973727132896401256484296708291509685093900762702613052440089748426680358800915631172501903326544259593883607647148868747971025789629983365149860585386811105021530186875870171664388432545330822277832310199494964776302693550409996943107540577388072660070410915265753894083017312060745386791874540368012377446654169418727111217357924106918535421376525645450978204888284869569747479120372423135362812719669064479681060722010716547100107628176828643280124824208932065563233471852468943464505916127466669995139918428990232217378492276126159797893115986727031739361716759481832645790167748955771838259289363913251159050414318347497834189124452581920528414684261449223742185696112198113970685547330160262581368468602338138863133317077841312313921424872820881776617142903427773267996779958559742962093318439110978794559323444962224282135361410926558093996339828856650523896074056273242951405032530512457546952568312043376818002857425929664159259261705026294805739708983209129486147434423082186044331193637388685415713467013876296877448857406532130016594777227071653025395915702441790232348713882068450247564236495573729349651845267111206097949390654688499082740581237233909757685470990843241003655513315863542150200758954806311644861345174183010428010718832035189982580933065162984790487718034708494990396350331239646294403168005808905502026191649235720188872240604773716909019052172534887312798188496477964603221872861216908540305637706736412215428294800998924313401465871219450452810258940932837766347998989881329336255655988847153530204851427874155208321750188956729844389350148927712164324158977275240891689008352352265644539939757207258774669701383199479670531807819050262157316992409418029399145920569442164553386450609583917512776826627518992359643850664962419107024908580112676077434377010969121675494940896356137007950279323387370136329666260868599396628555680221838255738389416752637506004726820202257633021323054515245953069691296560156395698066401410743921035682949315829979685099987322436864720168485725152785630421520618833491086893507248078948913238227349553969765883018608486457972446273143308818582931003593367280058749384324762236130469604423361353245471692012667935635679106191344641266452570598989411074662192807013802080718418027488993992044653835310875811524396096322626022436059104352001498677082406392028013184155746107521688382484972189006741552379434835171031868726053145448503310417654717316715832833507697878820394014682188256278712578867285941624352642179405896870291087600462435011846056167074195638642462654336694049603572524376414571136516503499152219802696449297375944382390310786305477134882123140280212981798001838867936742320798836647627855331763315424719785486746335795883940801957447378426405864882700047329060692148936234971096909171547353064225744721985890216500925551254520143055533124340632202706591564014866510543668960975150699804693388319046074618551383331624839872487990551827964920044611051384332839147247370487755425955741804115097914300166966910535478530462509979043385380927196568686872071938873333295157379953156484378435126304243807383536688839243239321390946216196143667709036184300743213343751921756811821124786400901040669416980220166741888606282958617656315142259070691010928846162231476947393186705092310251187261745824994684385554751286920419667844160868983271633889896052955836034197951432470185385922940260818975514305576233220483265385008710997015676222735939319123532999895405398659404189963007747256722221264426526416517030027458765247773415381981693776852403054999322320037538582776962560655083484840107548320532406083312705116928532201690558201169019833844961231896135822264459212555259158754256481906518442767236212137386230072793266403745385168052283807242151902495767558677115104424033627770806057938112276677369039550331076868892086538429107856669991134178653654996132065884291579014012119855833760127739822114648207289242080190926742879546592323161188059941066188379736153685772220062473817829957917185234374045715655613853231313004663064032901051866686001942244520887433654373814159365352222528821424436254310795325028210323027081366771473229635286704436840755856926802905644481681855754470663891371367707485818796559437657658495258182956343049194606219566915164611832184214275653348052305962498385414896688158398349173616423552758602463252926109542353223841575341399070336764730876432834437479698931001862673848216904347544201486300509590799522842740175437254006182851584600653703766050100781952164937146164698562373436068151375714419150448093058411325032213748105410612670025541769510578394717509918697966066370643550936491139612514315049650676120839073390140989900299887534861942443728065220910231653785735249342451825081014011124738105918614641669101134521887009190861350879078351641230360459878470335262922402856808412683697488623867433985932854681924005414517155559207188010965338745994995118813382477624006604364393798307732667444910282720296434345456051001783546219165662463940134419707579674708738703154058423270163101917276955878527894504497777221640587160711567964573812180612457016261927694300734467701751468133817178884506681718288687789800202269592076645958825324906753177499685864819794411435321784894144001073039547590011253771200030507246687806485527513974544133845660112684263231598749509481254037840783254395480905746214866243991797857266080569369969634154568559310070630943707795652995291829053361188767785480452130888992284845232732751190337589959854084945592928751942191717808410055969688111091495325316339824786748918830369561501618013661532911046049800971155800489825610976122902002105408857585975283011200321562448658161851241174983651246358445866101291311363992259228882081043202798852428625738083553056050114996470072728976181999481224272200948109634246771056162050287162572708291540132434932700403353929567622667346548027494791425281248496431254905824055553315402256427132958667422324478520217145712757752137543920646602486907135510511608446105208350155143104775967765386089679764837426803094360134399205102027922922454210430787185768904485958108844979867351234407557565453528749911843640864429472912806590386242101761729145383576817440709567729722915066974602838935669801898501087048612714796931054629217063406660419430880705089611292965790988616445980436255781636418271033988597164537888781861156709457456721718881181831019132766049489178188598347580034714515043635420822657647234682094011850470824079259287274261476179094742426181719352124414758523585649277942871792504681635057239904858588508970536590435942990870998538941013647431028611700193439706218010431308807232187528077485581218119785944660564797660458871169339300051315947791160017123086640267886976022416710260699288025923731710327051897916693558367638182772352411091932905184966583416116222281830315309619820252970553196111786396249650389263101032487292978544473985563643020966050865381523456046911228873380742580577692673656921253296587018441406491147093457861436502495972785676434581961064871311168946257734100519177241164957655033351781460508556260299992122595237233488442066927451750623983865570414385315575438497043245506913842438899100034010755089405702923640790917035357190892150997357703006926300079791413007178758308114537563302767573793353823654820045837889861843235148579721655052002823178540888952244568656863520131605381893495027848253400069158910572127214651285786429984779051739837551104152457088101381423598280634003008361036797358123608300309828515943938882927199808653750741632580265990021988316612587695763754467473391649240846964677432586569638365954223727617753027010422488255684961470322397363128351566565006560080889702947753783364325202965174579347564048603142533367149632561641174846828608278782157684486096716910481431987722826416695800038833832218966615783134272912636798442773717774123923036466015712053852011371966693021657557280730311917294336463157579108252655009519730276973954292166691909064412163993840867901754670873109662625060557621958938528371303505052529675077874149147185112592778210983563488360994306675126752026517657049641257487244962232196417394475703949417016309866155790457148833980477735405436372145139102570134734349125297972663288411311369112337143352257850886897928645960900220484434168907673002198992226977827336447317945751835141468651705985574840594651031168396958017186904581177091848889386138887423140950161135313352551024363511192714906887971863498564994847802026415379827685001266375783864873270310447101574106683938769409901151628888393291359643284312333312263809175727435586679428097263802337593172993930205172019163092391870873320022767723499989750385714958074148855699516380332710695247717652684958489824271102268118524093431321760827406893002500738692865206619224884669966369418979916282493886385486281655621716771324967240326045153399873801483746401017851311507455321842153871072400600597723355791182575090985930243591148727569967971710157892258990628133995592483360377888982124611418424512838722614841021471271312624616282825424223485022855378812977567893078034645565433578632495558832572121922192582143168079459672242033689008165135639539576650502310241732861193572291442481710960360765634320212690249832043927985852965532672146857739883180415802021168535374543250478137660627319842090564221159705153778570289124042077325281899507691835810908709519659120287293503587101354512178089072983967816178895669339400308946379855053996076528313069727604352475955527859078377760649270003794051827410033542282609293718494887504865475997332282606545387353026924410267891350659125111184258686685272352492903767017338115150351349305989114124980097045720984324275020515176233454805021134651685893539358259037140392829943094844030981814101723236871487814958932505945786275717068788109922416209329798477528040854718645429881511284324176444199932854164097588557047951895748456351811893042635211141628823740225408726866960447170434709693730182420743396514405697849992921402477091284882385601345712020662234638774072013743128231958097078469510644378860448558433470447691264133983798393067948986805756147549387906177935050177873313726687915542460692729612233230228040641967495626582396020739174363716959693975626557784528654833203289651499219817965744397823556612573408110161528967812333617606136817379379091870818693033029761954793936912525254070320530989833968818624023913132951089292215798628082692286625760209911441172056714978481687281563101876904428360413222786279897883808104303860027953530338892981268380584986718026094220534960299554990365782757568078068416400896114187951142296811800422809609613048042122731716601167565126622678675315912389108481701707212858529361517467623062955082516343746734411081653825606191009695639470378942358686293945924116634956632277987934062003407004286331277227981643376237509933293283321916856074798635690264172028457959900344491693761736329742515102102725462957875169610227839800110457773470877181179664953642581617738505336763567210783668752140973005023953450170024211433583825466608508364991044773385450040247097045682550058067441838597364829958461409905658101006560060538979908443852085577600214734684331440930352415869672114680113141576243807222111811791795046142681138083900988536533975213681414175501815126873313858143184984119356487414997596629416687155694424752738261083191614737990631434447203945971172786773426510211288472685979432845699034984616527309488395839737616714698199255141955443573620450796554591048467977712310008026044249942824355968348697509723629742353081857494168812546907700682593530275968475458712886787813303299635233451464996980475643731709078157726357938809411291266621918401607566793918444585828725866154504743221175159687517997192407036590467360010421257336774333924778460253845839569526676592203385426789114689041002668975653637124194807686954718581984829242547594382134003408770081097623889335845682446316001934218495673331227225333100295280270825380800620708530624051730714601194311938653308542556418765369045712149346171874592409969638016459549666578260665598573608814271561651021632331631385532250916873090989742346720999265858923517040585739737521081111980867227476250182662833091870693030970496574181886679818325377613887926016124795298750162745871566023923043348150955560699923651380472559909735680074877524741104649068846421236077120951466586519319454844809070447096503042522988348723761837878672228652766869060867458571846006134147192970555792527608247878430277060530100543695811608861607736265522249919426565717308084018925928226054646991484347746479391327760023553288755922227378904017021745233804468372342862758695963579738515747464145140543472668477041744109537921955871219992458949717686829642045883293193160082422143595353468373941772420308126043887464469626084060345965253548129550267248228108077015868880635999254512016378797126496605527201919842918707665276883513555485818698558150341471485199340138206170145665845490512839623667958780757610213487739199502173094497001619293723067776704987150766536518829709440024687738364670166269661078113175121500044442245924355211335803240058738321869984020499903809163990616939635062238290178289987823383426746247652184023739949542902833559632345290334584530866618443002884639047238544943091121215428744780311372800487079266070447339772143965393814904923041504228590399441848797277969301291410028868795492533273473765077276116616335210370984372673464193655185420819382880232264766059968132612665348994845390941258055198454671237488500279457260616656813548902369736338749348189628981715892981002228220589849127582387605693201354769932515081453382371399822815254401165318776358468172865573796826694193361372523800799542389853781027640629836369546032925619782168270082442302022133563202961534156312226396801284552999440156676731915292443271193945723860224587081818401704968272812114562993227085888880868538085807972597513928648578957221175463922666293611198533085683642848731689003436854022787248233444023024028291631763917784830655917601485263951866190551040347969901370083283889928381104531141559880503831966915968147555458745917867160561810530309350443906962634831798935635453396176349151223452500207861077200896396216647161651699072344715862449020793213033204342267517126267947471318101857519855874505247199884859122605279429946398638028002008370772207791150310258489969594659221588598599095679634609028283656480315319303251547231636573860962228399688064191990305981026202652139696683699244059476342540185937521769358195123308720128504684339246429412383572883647108342602582475131846709434695976821121216726868743102360819052061624375137584937350860247719976777739010720040303622985813899840637922890312273486619236491450116706736986960090761423866634265189296069223644666611356505772576926956924594022400087008043743620130013214131222009173827214335870184396608883401422764303826204071778235232072282512616866811785924926885799882814502466214842208851892561542976558358659046659562342283274974751621902197397162417842683184828511710389032853997296966699592671822155330863370198966590308576777546019760371149896958688792114895951745625709662697697867239375827075471047153220119011402417397936175534715724655631035970695648328054449835948418663700383089038188107346785290537948226056510754424029092708995051592464632191117738759319000249498634227305102910448406857871103120951920199406352188965399847543863359730195983445875099700356357108437300312864549408730235545338350134204915804592839452501177170439904920452427524655316914892936533731727231238642328967188719301141880008289979687827139557118670137585138301607048687991970019152509736795002776599037977131444707895044277278967833281744933862581868669137284380072552502588822035559233277270270440856538821949546050563791004300306178492430278296275240893402973599664388122068382700274406808853362025634688258945844050106152738490680612187284505996875688702676033131886770665422139511163964304078138907510074433598553028449648304370880737611106279726117443656445104320319950564368442485561564004523519485754672831689112223987652183305192357300108387640396405461806808657255840368560308090129690522087600898931660293833000497044531619267389577908618122394658759923424991703776437967142936429321612609586774732890558587312583666182850130053045400347081403238116627222321231824608259217364341692313315337844975390995019722395479944040284663845243748356261877173988233023227969347133259059230095985617217838930999344082908980722546169363391570697772405521555713310078864249705835751005859635979885539994413495952335450241267659901445810317288207943032099276596681230673621288580125560710524398770902904277390542442333220129917507801688506881515727625023216324269128312270818198975634615177606431939986476776645235671759217189631973830519018845795776734723446153905791824596981258045281219708729449742060523770218255354637623110049999645738956049642926988846383539198055190011588000180193857405709786711451647244432820064344335646492799427134724018028520493085569632295306475453008552695168794112205438184571900677973616506100239954585911774834313353594757610135708642315453814270096611570037989922418423798200718012447858379565448491737166460640065665106743315845166880854041508324384481631914249924449483386132360775143957705953271098965527976849245033749708574009567131920553304250075294810674925831355534013707605198301556523518433045031503449122712832831131645781148459874880714590933928771210417553260033670747308094550816735557138266178199991320770450667383787160464716113026326816027147899242145590343851861767642119094370075222400913860750757475104419206235702272324413661068207170069782597440467767258662067640729180539588654377635826782767717235243207497282183095709208727752807468879155775973858444367112978969578897941463690498900131448760304332124130909775500434255488410400081477303008386199748382999088888922140340910552072285004756746619922375872257641983316683051990393930677358840264636468342468623310642519259595313621551936831083104877346976827257914168356409708088084366937640226681042909652423557512174651166067280029785436704322982592821104922384293861375982461448449314929156847957703146994652741189064855450480382810013918509031630839246970863404263964595582785947155675915725213972339322027711707307635594120513362941927403187932805423608704996562425454301846344194781572826534000551493344678015489907567047428749303066863710600170402966243690478752466616678093502300820805684475123819622033451850263249282370929904375915938626732911350816082295602278812282007914338047089969655679979076235814748628720986835856404144713752150380728479653083459482784413260364387192220008258457104081007490182325466040547188896753863827041434943443825440793695648528026702189134033051928937781015037000894566610355692543751666655245496212679171988007045813819738293000457418439368804649477060377887033032254219174574071549158674791528084881560048474144396273058646264784143254442348441113454725522798602035061202395940594569766029676529115011445197119123844398881270671743990382481319790101600645140503501116594815360483763235672396617451924290246946734499966588280283255158705887670124294117738658906517425944360165862558171642398420743998965199656990212345535563976416093373171987100576059951510031030235652740688793473332375671892150435881726337401390535532092351676864976154509924297312732557781178180891293821890358486403612893227362668731761950706385521307710844700727824818025543444138471235195937749985682866351129729368379686903047208990405000650749043547976371386642163252045850289828962100267733099546799396112445947675581547492000453230119554200897383456045349938310942391020370053807495635381780145697646028522185881952221849429652885855114149246950377598613163021573016072860415174472945486033268628752630226710070250908904396298403373773580054543206781472691313632795751928896629950790922778997718441684972964046255448761417602380172501818493133574216060885573906945071192377073592437012800099584205339762549683068072950907391607804536106709822077770475805195900973826887853484836229076431594414891224790089085223783599171694569704017687103869810760160702271411836741114136866192346049616993050845030007709435871483339359423930991826319077468034997426162635122537407910457208100842482625455527561210938908632889454098708263590457317249977947633876661230569442236857833702329983973054423886073812629030407273622667840971070793609450826129574010277944408996282082516843148818367197375584140264387694048784875356522502590388179261615086376102771919344709414303717001120891142415286260174186247573202429443991953650001529691662276756661756402391215477485825811381259853356258439059593825353768699525177500660008591101413901357801684195753032743822326213204893014504436087823021022657318386269213561329999663729679153221212106232689682018297772993821548564734630217020701505620316523511268531941746701419958893067087932076073321444081624602107922217262979844716535075854791122639857557470743303806367882982308447495558769520510086952028547121849799273130674089429191191523896288255961994913822848218279702181766975690796252738660521371324317568773757829635615800890371557502697008786053266168252919884750837276289309380965811990561565392692545802258725734207360258223077956268199599038273277436142606365371862116128495137438570930666784566563470119471452879163354067607479895203098882681487916438827242513957256000298900994279695456113446075578318027591022244068520702054008436086050973038053595362686026255528308470145016162909694773852703877252001722608599245568417013503372187008088399793577412624503413741684661363657838460498804122086009887962717399492306691520894497833652276988416825047792886173821154546996764193197000841878701569715680032340984050297182355761640319847521365615339397893095276379167267139152572561588573025853072913471490800460941553257275984400912046174245676543797957392930577365219833049454306813059649147652419980423817960420379881557766313233281410345221615890133566927039079664050976754548765379318947688389722757378572387819117642406417224675731654832575408091126503902239557279241493962502017979604417000513270960377314022996348998624441287139916410011878892886124627736927955108150245801026812525661140864861656068010531520541061955778921020903986426960746635254029164857098736416471983927418750967570569165816018805370933243981925382357650441265840010657338807484075641875092443811508394226941251315884551928177694824665596297497599683169554069917333812798151752697664568589312779615176771935019962362332694469158129573438496115054784899889514527272473823203213605391006666762130515332520167530512132117872558551781228767316974376797648883262274682901649825410049670336219836255073244830918061916763846585506086844190594977883040781663357563279480506064213444136797940468846197275891978460073331923486340603134725501480546811255004968006052178395268251265013907109088560335832921871791525668935007590343883006361958631322604203324418070019271274029137746895579386728227034435884072258065235664927428028715325463694318297583154795024145711954204332332574339054630887300926822781120239576812584116670805671858256287076024480395116967056682307980247062202308964188651272699515929959088893017851813643792392906335167558847633987790470622327956985679185452302583385544928721018624270668233771179948282091685597694449834957487184807085186215843639948764991571785041899708947568708985507627925266015159252995113833818517436906161637918167146242576011480883329858989747207363996213786180238287260884086212821233163669940250833190319383920977413736880906211595310859978602334354021571117257676150960408487680600368700885273836138661850302863085396719474577283731791070995181299075811968311348309327426280369345831728676133532493109555905627506881708233537914855116168070212072970118480820282942424008735463685487403773663653665961297233377118590175547953882098360551632831507887412756434070303896826518703806474918177568558365245624251094074152371885281264986468996699240068157888337108650797439004847970605692924297712075681800481461916329462857999934908199959595154821958657745973605704092978779071150596995671308218338247053129703123698597256522784112840491125110118382607485083268792218107514047617421317325954282936428937307652756124115751517182323488981187763786725038348042541639624726199433091214776859920256976982421576653891282204555991237058555331595511543508718078010939658416225325659098688209724536676186633438083885529555722919660716304772839259398771596017623492112543145344358160851006355937299545576295103528356584484940400794666066244082226284563402932394137230610176598464265650500915313273125153537639300233905878763416424056893285034843490936811112109416538181864465945146354301674003791675506574896177464842642959150799149230883227008654538112108109259713494851831538710888495747861012729075509340470120030921890764074886208263739962718332553322960625950611074512547977409076238035906664595972691987523979300870264665879952994762138722325333564590624546982692866405685445577316652184922787067652373488876072173572417080535880091863083538753552776243045174797770954386939677801434191346888241887457150228186633055798033086544263007264328330365845856102810549957787755581805445373566939024166037112311275119066785950114125763901925501553386263634297482622910107132666735786746982307223416769447421120512614570203611628015487883171739893661393283390399063479762348239458388002996752448125803136553374877081911812190754777942807077842798837745453971194701302896678722628348458081651156766976783718619639206117171509926613278735528726544926494189381161091352767475852597586786219846995385225127872882089374133481899250351505103531652452371160156626396722564316423013398406560501830658110559653289046091689627241602444528567533062765863516995060567506694020745639309157505745284867167932919077823196743771569377809175051776984139713286662735116841340309965279829030983029819040413008500644626770381117073761530102524329723397418385687163787300805957225977284014678586172536431448228091473468890337443478891684819531299024991281313352242190258531862877424574993498186509591182271956148985186372476449638389157050073195162364969196833397959674127213015216730784813167498388407684770248552921082212093961709309460139523240470900186037069995427611519172727344137081049220874483862158986587182122912594952240724255353435223798557347363661877705428425717514470071563527678857666188615773791829209252005374271138531059483000240090620968744400128927388672562120972910220818935209687605189105700164193251899801867042731210853997194530648860666123134380094793397137505976275915980194706301197580466375127567924778839624209318679968627608179637643206659476004648796695488036250311925633676514372458567425751611106598952803203213422825651036046351544245213500662859580114028950291309414673694823920796723161200221194321825375587875217848614047428056674924923133539647987952800964992659060878585148089727377089094626550013347416656080289454834031637642838916562320722827195375369592170018220934200674750258382284732898041851631419646970537645561969279801643789956760581175983499870996644187865830449096876718552458060195824384742356210044300785682185367225452090765273909228057189063429992408749900273433201417708350951425887657940358046663796568368895691842422479747732136285125270896250386571396673065195296775576333545377140266844802074276697206706878797981108416536065802711081558127668734285720994327914870578519652445714661874301881845288527810740549674943966746524341005231967412681779898262743472326003929200604733658082027565458027690197375824212501447730332373789613288167784791635089992337563277416092795867711563129878160654730192730856537231857490846225765566463930864423710570186852626946229812953744443728991572260207711630524941777439521258935573034951992189848821357464636811967081135981681907988717913605490620413883887727658679631222047900057562978267524295681996494937718569007979849900977532194411884996726084194861523824372379440507397969540734457691502330248343857786286417138114897866006850848386911757572444853906983911850981395695661148008356775420230907862518570525087101545295403280006351610534819683544394592425813907198033294461833817887130030491751513823190527385097381702898107950267331804160619102656612607965320116331584162986215910171552242335055660254544849436024581764689437992377637245257700232043129487660254703490144206790991800567289250850206106378070518535567257436006688893496460646457575062567889715015432546063832433422105830626696048034644681235873901271747851153240072441554130724948942287429887302481393592590874865399219056381065349919158056856526745456977557504282607699321552127697507725064888303302362656126630790076539628485699748033796382456945718164045355057036072522737469708222889712180901807529708751066538868818106197586034778474671603469554967558507086068914856621445029123451492479308000357520820548643131155578110652595791357621145613017609778954889806010807051178241096035099964135872965366576763244470045362755895456810003327978055178561807962761569610729837508411047709043977830586194785616651584382795899549797129762721654320316054973010183309556133050533235086058779516747765238975823942107145422512319485408677227938672678207312248854162244666381902415418051587150116277821057528443855686358227749218138384338302661623036951640416970448787326702989268566222476545721572204642063421400025430868016847692158737242805826824205740924485819719680008183803146487752951145723126454579051499413981913207172719632089814090678163250175582979826754924686419072980899356779493159670395846626926275753995493621095693366029054188321939665373522215641040581867182443184703258229067062651910153041992989260657315404227708523819049915553890219226374975707487285971615202415346403015517292019514427822472585475190205734412928844458998894156507873010952677974211419569431792486714553965273490213643101324398834405468696357769829667783160341924645347276716236468884120483541502501965073283050830440150806805787070820381044790917031104645315809027325964920629141641226752326806476236136807359138877697579296590095290247163613901497528982339640982019736906807700904309292163431521642692766085614115955800279915263354816120283151492167513686262841812553736441497840607052229201571869777615691959891350326695653306287434887744442729485626580711676964207442721538125320276629924923433113120795882516337773009812275905103757329590154037284040778920358422347333721947073221596082539294560749022121172515739832059337218308246246565901753472521638227830055052782624151552643406504642583597371923758223167789235027144503083003907491051417663410899597467092157966416578939249500667125699707062286782526480910607413398122671622363496209712523923776080388837732419205760406486482740481026180242209813248228185202874093992493414565212706577945436431503886666007493204953660560704480735295654112048880071134341360274914961511361580372532592281692318653165238710034319133452501069492614267607092644630575297408615782166096382948869582044242651772998003174541838024274293712324755883751148652104154876903473612533584572358893931322844417223367657779593291686987720133588663861401519361394927891495285948822038626121204822250008944559199822208590564592738656859618287122261506133849652894595590017522206143748723601138075738191122840978937745363057087302305734681002769644950419801815391905487480691910991347074884390656614818498141369887109130995520798817530149245585797528350529216198050759784604981521416500273869461349574612484796945688484093265711161453793037108157134112521820983453805970210978979578762748487404905653013114248951456696786221749117885613405851336171732807051805776543779829332666605198886011036783240482056102049333464962611212328841251457109692547237676324554540833770945557752155282864577032508945634394306609747034153257147256176422034762664620241643804326938686659344376096239927090044285878314308771597255958878585296221986428693876265909603168262300571139010060117296728337864478158630873526872556033090007096307917935248876354002690419372901183799627760957790345920228959390682655116986391406901979509364921363441932854812185733411464672020222235734609138756206666934194054152708755600699775126900846332345203960759229628288479521212652937206472273982431755009221644977157847552721418929763302955350783595972375496673165158921976356141250151878688235052881987091686592564262979694401599494596039169684514676757763601250897451387091313942255827230396829839333025520277139492879192274230103862094831311151401512949669305237074532233062545312277700796898344136398482715841301535368376394130094872623795679801150533176819330456080858223570974315520903766734769946079253840244363210440873315481807490491565705551354826100552933446825865352547135661137875447263427913514321726140613847978987800652678611807753769674590787164873412765789442793066171694284377112000216962751509857148810501239244633371498764258387687134688964749485599673764200304714589631908644488985591342779457032520467312936849767464294092226932111254589021662800136480405925112341585432285826430306363415676753958297389213561415567577325168636782347289260234511274306269156555253796239370727339701506149660593588486368483502493852110538074234195064979070217830763188535770019945376131655753883067276595958450131262898888042574924787664715856946311887295135408135033981053523813326981861737382039088074268347924339215357970672981154772996321805622535588928181165461248220134324970989327023866873381655362492110235873493415379257620201302620737301307767905036312958266438234676497197664553796230353145034488698934922254837283776080232349031378358431565896241356400715310681872347300104638952822076996736989910737331742197545744362895693956296642685657504794684710946525801708477829191334737571238001933315842994449028206909428888528447692972960872206027107036677151196572240210185374622038354314915972265611848738680075085167008760336699091889054563167902352419806681338582385876795610613878150951044768759774691744865661577379882915520435158703854267101164646432076568811391681674164653316175304371352119207808562147015999882445036091819612575935398654346406509221747746208476153848278871089588287331205182056023060340812110147960568871068508725917980992832842741809043665459029204273222256940592291561437996238039480657327173143185179505079298913292174598150802312621186182463068670690995930411601056426614229629186252730371302795340952758999240752235981406836838382707130894858611312060927128500817458874239878376312005220428439614041120567535210350932834748611726506226676881945422487676926130726090978172129680132158705176594405720648200195215199682371228873762714087646532972887349968290861691415105180636970438153102891008566754191456205238906904854218650265436455464504832128010820519039974269301338136114642904918978737991010734117128264745678223467034255244815084316701132196425645958264828840354067146319522232280085488890931923870454771959976345092331859737474545007492662163782555408649948121447630251416598499850849303989412595873801564245912281055719746371769125287372059885396196450655501574641746157991227096337252980433169966473152606231352167104685396337332954563055450470946437877151586462071163774433189338419536383223294335816698127633662685382329505209138424452193937005301369569469878941916837033817058951139872065480464915746486232382540102471579918089042773050822828613856400589057962977690467181069847643569057747401229747420004882702727511402397827834157700683266050120406303699909860278877501734138249531063095629987389200673488079581820279931759630353289737907910672476283475605236478457694647821865069830029217996417973539981218475573256981218282238460201101407859029202363861953667004305136863233630059307161282682397457653776301262011100761379693876285066673892273155511241485959121329288343195456923498458833806189133188069055139803456702338964495655236677423110880913853302286680212754571167455747502264947383620653109874918749155007061997792381103673238059616513425899755733896433903090610800468227249385117840986331907301133286334319852821544183907726275229280199158185125502800203880892571263406145109586039952112319201285145889735576405494054313840166934037259127502355947368894506400070516214616402583051980945213422731384861079200632401412135851210888347479162701343543939484230601550485506256017338474840640945839884132501600641858669538339157764388433554917959333518681268808582313225022373376296662607303240494486162979992600790211418049201887539322478817124765503154103211312409641244396954059073572248869949285484547052986422781180193076390862492808870403959912650350490318340676724301030143969219640434322507435616576310181157098294870916824152666853591494471037716424655506887659912173092132353902785247864792885868510217095093699559616331245467505823724328714104798573002564121891398353361859765772411363498236201097363667539130983460622442546626991079163746821230092668000946742897015865814881082179005937810652524360140762268593423922438448053896764015637146153611111226111121697576073341201865294029436395362047107352700348109729546884234113004414291474794852849498997548115530159899161569060103715111392972252505920214059543248794077336717424380396332756471710099906623659565295911821226633192554002811661382682639837949968407755073026647891073352108864452597064825161521147011917762561591686225747803230362168849842230553576165519508848179575314882298245099199824685428968784048568720289072468445891633077913776270079422937781794902811845272532787307200803071226723169879252439186477690121686200037068944020479816788122287936667990531704742705321145314009428706694296427903874269983997754622010762941498877401996357313968635160601384120610160952373293646228268660337985558157828277871991611008897055752443075215892878476445477638594003396289466011518055297267734152139038779099470522397033621106973334145563599900620829850063164505841442429001414200265118563234742214532157574833414493770360426182118257201220700560596150408053234216764962268294843673775600286739050714705488776400859071708328767800960938068520059872449283552756503120044729923254433652091336740728249724845929519190981802755399498155403632194327446306244365107910009385249451719294786451342836449753882396414904882638956904726244726703116642663178112178617464455138372893582792010671439475261906171406843787391095541834555678389863662784651715057901936446388429364368530622831252282248083355497337239970398479955901710126612760061500865580409195803631495895641818902269473738987666633853372741897160339547143415737087271103287506827328101477909992507068350952040622761188597329226299207641547302536695619685100161074431912651866086846221058132660742763938326788009806267372847944201605712470839267325589337057422765121019064298586473736390603546849669698993619528612895205271186551777208818520291586822591957892562069469853748943407742535426203106914630513213387507750874073545505999400821232340585194732102009425266647989452247699017516758894453254882040839361482976969224044239728330245922252630867298610462650575562652383559338821385022428025262886115974816341175132857013318952389742547182587137915311142047178306614397433929212428263544584649865020092433877750890329516280396433320712246648709064504254119868793734141118933822668162239759744946865868688176009297720611199094070787478777290273584155917206422852913008974304251007064082553539742905721374382116273767230086809873508210041630172699266041632522220923644487872175751651589237913813680556562219859450263955443286776037123556551783191569998420487717048336115339166344728201556901850449112832498155755948101666251248069273300741962361850789054965124898648078060670646709095827682370889318399263905353136438737239198491906032778257935127418351398686829977250563698889514617442958378022496616086007409053790151358746009181291283034398167439294643380223706732656032734609915710289227816847892600653427759520194806003027983103114509826545957662462637762208402046979252824406326568861679410463577970695630614483732914856629412357139428730447292570275624107067058014409816802402520981945166180642423902634194794845263021029958021514716440298315760559472239831739226641717218806844322203027871318179248515615549797138825428501377757628201876470869674841914194270347035305878258531759055475477179588230011837442264025365927936977051269914690186038755831489016074273005129555881625224927811927697796267350465249178225399315067936547721175584116775179942152734519480460857093701904545023413212022812167296660451888556858380762947567015629751912388403222991888246923206769226040588084814697996945392092731704848050090585752728996200128348446778061135199038050374357283249398846294029144473654447634368673476802118957830758330640615977094709899831417096395971898937734921993696540180966936619577413550847541835976884696925996153814687487167089322998598939533742307508739438701941463332513619633475981079080005944675660536357030117228090153617449392995341950837030630809250570961187014184904224085665366174254146224967641094064657728130350892121613909986472609098236981498055764179620381654431273643729339608015133955709016054936464141584221624933376924387401180126694736809742335724815911378023243666776275268987731408238261131378739031371380969178826883930598700737498890092549101011315722801756657499338313576400113470162321132315797241833796934171518608388141219131145744511679067327910559230307124925768168906029782929580745411198718045871953176831542639077216641134825847591766742763190499439625568747672464835023076402866704713077290985587300201462732143408845063894211170129834066927523293137186650000038650764202666670482700660447227958154761965303538244847385876395309626622170725955961522166364727253822560237700373445384731716783796626180383238137579274227185898749930426521095023452708753715791556037201475829930883064735080948803409552762922078103085082721847016404007343925770557447532277194579695782206518428276968648908371962989659204688255185889445871183033781147712607716328304638763309397478215436693600948872110401447892098658251139933498591407478865327859450226141634652533805732563028069885450714252179353214987323032232028175500676634354845239922311405737692303136300717379829354776687935892731977807279676179342869030147950363193188182449501445302578362826547508507949064003549449234265094389449884115861756245025169144412970740864940517467590963846593092888151500701419369183204216996400839578614377897920588442253103720463712596107389343208580510286052111814847163853767348386885290011201188533827137726295405868182203738305244724887210863806918018748018253952380376773138304575717802028973652849872949498997469308949106454315582865729101626801639209572018737114374407452498774843853689874053540866427312449654628342439414517541885095189362732365675426168316839402796782258075122150418244736754842881478402503737449895376232802320911998727287482408221285266815403055402485185312133467722384688687924766720886047707003948306687964359655766080091952688858165478809492863406873473154044202254434870789055412004813418647237890345125245052115340377643163538400342480071427312951663049491466327044062229550413083361040701642574136926578463709736419740185059948969427844034497100854010305549208596844030715060415971586033658022095794252897908520679304422376626664467252072692264519983576049533689983727670638562874701248664484721714129037576556855159260897682382912425740435067169228833620415566444443208292071755050517947854969639958826224348415855298282928172299941604764081226397377179030337528260663167631955071796523623505916776668376512560595100288916107365966693133832165656575571305038369732828780187671470816443337743014629265623022017487464803936852781665426225715745867913307330483496033634363065781445989584855592464319373910876901778285239965259208863447280864321746275618955981402382858903927865625103043080503658002391370595755247650742509652099951974409940152229469396876079553320225752079336062858307501345447702875147936786992919161326451466733882309167017607361214669487475725560378076282881337948852472666591628129070963618516652143155585720259885887903875522306366222078561235659492531378510721374315825737274732320029116356795309154947958864081388003114760467591044732683599776264009833975691482913217298227454995271452574543792316471518130090307211182119788788833405493356227516922442658626892074731992603852116730803477826501311464351932928430119094821127796146793777423812936948268255479070093620859182679585316898283461715953704557885682144052238677565628708595195450653665293627198611433205075346782298239548921241994013187846070119683356782982276704701697230410093850705464749867560771769746748503932610746028570568854348314351765204887006064591152494277581830859116576656526494552976714544065335856071067956789215535814041357346829069998442322096844132692639801285531959832046165574467285290943670280878419744047732637131376564838157277946377806681548834404774443563022043032479913449503792226269667237022890893990247300446036751669398244846854416657230811724084065342358162723989423152684725482606481508350404201457444401104521029142710686961936945121598130180525487642249317456082221632165067127539038884967000145541645413679328831682704553272459534414311541046157178837796953347121751509478442562562187942351972248348077673356899554978852007497492907931100483721259244274430625276034438857361378035019211168021954280536590614924904442788209729496572412067221872192773947511326706316387609038246035710006061833414174477733520362326898938423803695917722732082453463899927043891389939362412511938595103918825929142312409558132585534257517283695383670793852855856863014501998163647669630244371356565312807641232262025075633326718719577993479586034466111303882042834229525729933448093148181808804670036488081725563851841073043374039835774686256345879851821757365931175650712452094908273650974129491103891859798559528958077614420054539942670306831238854889622939023256841115314265764813004404745446440643747386570509135625323388832450211283983966750287741469587574787889711972787919858819492233109918357854089537774896368081962421299167769781305717379275757192734074753418302422238162756209821293210029505762009261801501136054332418273364984623524974159896453782225305355961016835219951007727719276139478549876957511680352029516218108948625782334223713552708625249615099923659828705398560962108438010372581515950261107070545894261312931043199635329071393382709048018551473873284552823820730416932013310952924001452731552400116580092519981323197673343398082242210330518205933511911102778999228265307673913681925499648010496288516978892041554643161085251205754382316214131995868693940211844902840906566968406676652155925750595252320086424055124156959997802756499184586952519153509076283601059612640593523600105701768976821319918489108272983425277111369585766654068954359226642021707948881040897324274642658871331362736204787003879896968253877262874115196274770865614826028650690533672612705160189098242313026160713449811194099842452034532719016514554730756083647771277803936668657719866715753719145280866023550226966489077879090766674068502939572864583185153623598662202287662782013467784620151866571907190779183425421817349917795578225128124734763716429358496714332124080367303738032364782245201450470554693006701945755193600386138964951777191238968462315963808671904673061735688069054215210700878043423042178730862055573171697272717138733764047691686449399652329261527244364954493780079681590247573986546847785831249162193995000021368857470071762655855837960317446158215057356907902168889374203487152079636156701809613131824059623527023133280808718468620128152228680774689337085482828938133781601004491149137848843600959803299296792437668921006086742538949765073561572546300624556891693932495969622410712651862917016329009246792631310964936035796985561812075136577870180308468004887829600501298756151572240205586364934499664363910859106258645547664997191242239641899400955267075060684457271080415972842440685337012952040490540195523828864207629233752809344846770340447799595127692080705569393038555435206384082831601501915338113040305622122543451324157727578018958711660287201809076842286611227459353784282187197600569223436762913631685490048162301916263379956284433765676478085821033869184799690721655430031213119192684860635335318648781294466909045833636402716089345358893407904519393483118003719887844432064999458786869055802247968926827109459535879407408399725521240619604224191456264606160879468208560296508306889053059131562457909766493670536224978825925896920377774378451227040891885187911261707465262741112901795767608722915792921395099595745043216368443785427837690879324773000718066814889086798732945882659187885652795081782461672391343906609917232866562171784720609160402842328885001781172202579694674585163180090951783149238995002733357411924373957267192708615601692209928739727754667053472286065021308041797270025197665607856320854335672701297704050514319428006273584620885267670368611177033493792340865413698366057540515429344877814878416657136835548094719333235974290937602819438453603895223964968503846551958822577569669354596075848204471927980504655610409349039508459204067133514343326971256203700881921688510772223299229951177689187622149231718911660173437796166954555530723268720183066898938461904779454215502348086546950058121017808675346054897954748698833591294261237848875968294739630741077387103909065620617367628443098235013626006615426859545658662546725558119447182837440304034448434819332350515882456859290798415997726389869149384978222913611252586948518343492653271647657417617987468362941207697973198053459800138739933790249759873053162884293633123650878830265010909765695214222763267850076253857448479488714334542820891441484004689753844755374005071626196793918979798709918791154016353230570962986456010823559118814177871380474039516336610262668702274334927185044752330342655493093852346631231516302041387682120525378261708725252022582130082008713900113151113152171660148360054366567624524678652378393640274889497221985687914083408484243998683660912036512729527679541559392670175439489631344625528248433135676939966058048515971848910857744376656927246264976893648000952085871061686602925675064604440774311671501730815632107502325230007620576313930552742694336592708113223475841904793535409048448762758000372574980491946294620113409895433176594003754480661466987549731439766820570125873049239868291317713585532540630987107947445368218269938949454586769378566125560560648632171234518293713872788368984347548136934073053173508561126040389377481195966077391420359571062844862745676737828739384799443157349804801044310800759152632197678751381935588431571819989181513660486062107151116285249961582133993270981726650159020146788505998383095442075217823047674077632895671685606276349684944190562818756747496163802896819147374620432166800817668450771957457269999645186948546768944076040255250965665355954047134170668183275702015621517358686496893904735223124293027015122624595930459946981971207292565288749317921937593245548518905367331547819980740397152853675457065644560622187242582799655734394212466930464385877704727567907712726882743238030364515245070354794020684503144806118226852512857455887182784930468570355319072009954112358871785105106297125776933055154576331932099712544452948672163837856510810093178229797852494800108788611232004249062707946809815873415161945182985443865573991963986007721512211189040659168457577729727401863633976851611756829737860338649554694513101045007723542973528812064114600649292702239884832312536493826683061466901068544725590780226893037299573815680253098890746821688846137357035973343970327608173231500647249146372899541630503829805426718544854625060937938047585217451434016801689497878143690932065435598266602314619226190231074669270497012462778445258319808053968711099032031047247183347662946206551945718116462401774856687417688106650944384307512018233768324292222010380263158138345333304431709538023707508896402750912545704872904036071688545824992419736822052860219204473501391751469215476840062178906728535022135902749227443733515161386656401916203032240069009675445122185040425156175846948241742515708814620435490493052429557384843561985413473699590057021901698054700977703722756793415667586372785679297889106650946259948593966670484195124892076241819088492718842757285965183199565746341733948214648863801790375553115209741516978259503571090413107775588003291889291994162489390258731979126403432421263095425923107028687416232976367527474118918096842265324373714241312222257371801131369139972876253696057456178870074040003822991387948254732583328100426127571192440588597445735664625750984921258838962700809603316186042857611039837608618905511252565097724894878195906622852139724388317872924072211064224106270982404887460801233554942857930313107973646262275903287390758768159148293189162889217139030012087368358062191513699552547782639148003574288793588273107069603636185679517344757239399493547695729147000820298335005410647297783357117022294026183331667178121233434341866748194773129245682491969849427285903903411085502503020820838319886872298433818528505566064348679717456585471644965205773625669530135862563630546585266455148260844765579017710522080580181704481181017256270902115009943746614070224620429718973505611080731084042323990118534944113716578397578230812688683575811648212651856433614617065286187066926783244116880117148476390911702721253389125973890750579456941590439438634741653358449620848540157948857162516365567956143416150705280249797602552133477596341422029536884034393127803512359947842519813468047471409602016478170390213889224896618650460153005517451033325562877370845610472347304645588029447903814106058837635071614766646801884098482875234262946309901873710823730738122894563474618756236733080835842471003643447248935974798070104173835477374082215488120302820875572205320050509174622720922691967428186212672953225527316084967079200526450539190967183766888490320258955565026658803564631432328552862139267753636217078837232895253435600784635311977633574745297915042007157192273133203611264570492397642503966698412886206556326240801802169557502916227696160317691526292609817649389386675004402180028849107220706859314447281160432290692667560168583934549396504255245551436236477663125040247725378672122518125236785487601953454480486737496484398945973798449434863320484623771831437176551610493745820092282274543707294892641898425302746185581393097931481462275763594146540758197207480857844875528455710915980216808474842041123131853001777642845262320335158610192606596485485166906926735435165064013792848293928620764379993387262827615954089215023892701931663535687551649711696354558232980392199323758659185502819001011582499180210601888363657603467868041813574090377085826913230658018275295058908604138768934359999211059290498073283854217279193996025611806064069382121068771463401503766981411256832625021051278051632447993959196521067577136375196115023037840341818804362472557309777942244940315276732041702719580349826925050279095226698683126604115275042965804645594636283327184184279872691671072749079081863109868744973680071842511954924835297817497751021117902057469373264904916083399318850400493787733794779580932120709201786914314995399217156121832044604667772318144189634535897101156890279661170838618179504100982315215738535818962519730799024185692380289290239225385229937192263719465882950549348436028791680296079640801592908812214885733886299915613986945913640890290688605045385032660191346919489812041482647624692741263362301775193881060337121498178528689820772581693957951348805413660426728581954755961055794942546942074979588575904965050716164575389791655242943587527141539177476724204317675840638541561028477501732818280849729002344172332468851997638453195945655908572593102960503956361724773309227469352538560301600323785699850311543549041102354198149033988651735579840232108463512066146032142031991281824676894631147956973365850369074237220165605845586894357612229336394547029878573703890475530317272212778190121319275085435024440471060093122317570351745557757736816893339164825731073826464756013931716360384560444371126036520286920179488572541153050689645001213257400704968912650880860056696986303580205371424842303842419503973134557962563336568442268957312595857174844567435753383423244174906612250471857732252718121822065609797324314960151520966763649946486444767771188215765930970946021796332051808911896507833054156754137518341008041346012361954959734247867519503279390386990012963576967357348926409839032523403696288843006435584134340796204954222067798667629800832551053831103340972110468318948820382920771939514988276027506344663585763404479405555304495802846794906001281499699065503525640085934711116219053762427220926617410796091178376486393696194917496487049715815152976485060470941228479909546325791345497273967846773562768352142891876459684922807954638849198008515706560216700575536860314002739349076301011111776316323104569809621109062015083833392744905077581158721722043826129848726545350110818768658283919233712936204619069246946702578655699667638969773384802530461148559123170668664591167076341585445352391657553700691120085853643995546156627102839971813914413584886556913688318958216193245459653864086441878885174669170997334774469283824662470076223539361662162998330877238244469214655932269567174428689000676886559265668204846001496741974744537756051209642677404497464069039523502638636377786977376285803876973288493494979092616625444032830014787485671084209416765520228398176244304333017051429590431340273544329899696984417250818841020570627009921478422906212547207806439297329682982204930346495589682777079889499469866596189110336854612865927912955240601720693380008145960360917526267325539091360899107003357274668885182584467473747330973068341133509742080836664964434437581220757349331883069939477257207816533083891684096365675510588340110047369522109681513393967901185266983331877343618487071046845532796139258188878272334180638427568709913526552473905147338250817057133755946312380543690998534276933167574147495479963015518911308843025161886876162814972621410402158949198945931986047685194754584439191924329611423870682342840886528588030511941224562964779053386109968686859256007621256116219906680581979850053594582608288350702104712896188519097155972190122884598485394661815692073497588029455287315885498760333650810898959578326666770999075201380609429654120220956810480378118631997390476189978583007079327381460247766185038433139335300685487056669113908428094752627677345434862685918826405742184176785059526093197232102901490275736115167079238569698936131987980471058071048468635730213338060052781317383118257475742078401776048297360170043538756859223177757477077574014948874578157402236359322161813578052437353353467989086512938894933168936357228307150490046167877256248409839434755369879921152890921856671892871264212751949386037838318370312207123259914289515108920769112054717727031999585330184530404190323318050276685900481867660028893275844497587252181048905768369791265736186695349092669889308585720645093162608820918175088198538906444645768191817125780399822382813828197002521573267408024145443082598354950390923473684539996091352332311955191656557676493385439100754253263555993389339320190512421269891749274974163850123823060248666900722982022604700037170474787288987796964153844991523831456315055808027863233251822489980490417263721245018408962080957907147891217509257375939477178357131213118115571360816903089747179110281555009281655739709738123536162666708341024590216743620559983072687963282676565397270723050520457157973530351648554984484174998488724439650257736251795327942118177975851331784331341560820599449853953371661405398557440128325437088350656475920023863291121934448008265517140896336856013170997904091651148619897601185576090146138821940350476531773314692969375528214237181273799185980635482736779490160302898295175411391402458984435322344544667501397647921372886723992153639956721543784638371170160749529450755573994736834583567104772924744577173854708511523253958164435072052339886375672679123709780447841835773357030830209460983940849205027309510358011051383838803346030334980674289703752776809915095246791797797135568417416659154437781257606072394417682386162077798866372258910950889093976645183700170366385467295687233567563233266081359977026185383871263721454206767630257353361758813414782823362146219545837106569688065409786990587318273804593126534590268263493161284969121414475989815036982789405279172067377465387384446045994384781664479741852114363007864053177377036157570939068150681015118540057649151226565242500925142107490558612770171435566764330739407831959042217862922245894683481653656959117997142475683856713053428374464551516090638605518236219928351307008238078066048040562887377791443653999623966099844130719924512405834571120936845844112063757208153402515904387883147327824589049165902723989492427334207442664772706218975036325012753007320963203804643129754001518499894867068477951690316029772541510257946824188225009385536781567107148420434631491985134231974225973308351882027553830370704517334667746460027537429520867748956393974102303226761093429839489487756763758888112484400658293664024054478738635180311156967184325267911546919403394204363414487961875432489872899360189404307392592418033671058786550624970439567598456392064660302076962814009565400560773570981016849552605464928974480334899562345145828262528841755381871802788356478642961358358418984902266997577150421399609732036060899814193920238061288858190333215752367109292691377942008788420367179889303543444986249822018103126330810737388668794142431548028609341819987251275871495360947580923885985954343582663993264057967231840465715792799098187529470680546941532401071238102704483326353491831616229952450131686460375361100579789138489256916813197435615520621396031126067743744157679218909696295076761035061770851020382674557636434563689384874999544607864943397907336328230151046431980766501170085861729230726936464306862149934245340137965492043525047931587538224750212998386128071165744897746428232248982202451862549169566846123299294739390457688903625233959106560221017556558144926138049413738193317377988084299612506168861358719467840176379447330102113223409689878656199415089440052637176196977505892501349306288815682538511833593327110409023961178250851967427771506874989041389447375453624081432046863200900332536953032481208112847039573918481729339406106887822317375851408660952475916964538854079284147453192458853935907137027770020875337495131796990333059308666607848313824342197332904628702083114267725922005154298960861592684705185178263515969477548771775938640526020133877865412953333082022697121532481173559164776611662851714259365708338516922002504899729940930464692644605740912557722391920735750389065600425645224663564842537242703936161676643380498621062779713080316403016171779435911582713715068581420521189544573742370441810531500861673829756798074450770899467878624535110312963098761263723540644436747647385945283380196872902947096334663300728774440596093221743473764316520656984338814597130252627038541736891839454037731955023502614912191457609254222502199587023443476387213479619228764483703791488078694765482893207414558506499534422993167616497588420700287271169704056583862086937896475781517900403260452899979008791385460277775228331742723094152442755151548984705554685194289271618385078127065802101239262882244624031093599041964276237796473656293575358067106265341242974542492202404590623879481726050595956077693540218290743873550863925152397885238222975943954738929660756334125884789932588694753675370625973966446540062847648200357028075599474126685425781463044699183078270400333590938562259704742644457330899554529732474736393633119585625365230119882561453042582552185074204120318866711014862581257602357237217272617311631548473919379457809288098791424344103540992208843397481972622987479812763884487381641341117183742284976685712481384645740882237332242487197842679275168039123856757717676126414020720321588740849468038200968400810719430689071173012161151507248064851114684455578344957781834719784485747358561212627029968245392576373966613414450042925521562665791829627969395704655107118281834567066920307603046419383799760077806935359601840982203841141447028246704663569820197475780942098030677630014680889417125952295534561928988913062784728292850846223675953799179274953351259061552747763620408416140770364481714664178417600806337700936856598627041528921244530714921848839174245212865071027976264202179017150469036144681086455519453084445467067059236854451138735741757438585422951949557399424573435725030598384410587350909571127605450274571552945644507082674968998459842818441414055781690907852060241443702878703630205948403826720880324328594393670746040136395815595728868731316604637583913205583475927613140943219141646873056530467608477125176475480810143403642820269475664781435415087484780386725276614523853175707777389817046335950302882170938412144734648393847875143690903570191722913926760683778986636015135726996685889181709458865935414975826033053453236634901085225299469021908347420975118154486343527478568878814040762746383872735910894481783082071187593801796823975661338491067656481812142525012854191144563178704743905102594627900225288640435853560775972567269875978685920911609972745320789867490556376031146199376679584601856842944118172775353428514223058525982089881519950989739572692255730939782128310633098437755613480346790745436884217012839735684075646346018226179918363834662009153580414960620482056491949530448792390614500543151567602252249084793499448607415102996706317437238075866744969127193363073404370725371524232285270666070691036447375771327409759124728981818268869389128319942297300607759042423148980964698331877750258111222117451885252848371069825724901098941222080021932157987652244761169816504978755717387342488195704826763366306188735625360830537834267309786951562241761437656121852799316056887908662514028126749103712221972877257330533415464252927069988850121854920576249972740673495312053200073542230780078237775432500464317835636938820556066514471745333000521718244942641403296387423224744366316629537618248747056321396715031866586324864889479830832132286012707970602795545403151263773742424185238293468308650495460719223727544011028459602609696917025599971475758112781586120958116202840908065780513839434793498454120520882774582206859191246246473582461517260349215815847397776586454228139264786001976849950795804891380374875759327462811264986017547857027228915570942283060826784638330270038386612410093154400225602785675971455198031726485854879694938441874351468505639931747704523402550866138147318362075498905344694171918578002858681110268705995858596657048560388633984828713929832950767681915792238739278589087838960522609751504669719623749941625648881694982975861666190339490621407595564354140961608761138643687767617780543169255396440082142946615530332663882733671719787847923605383425954883340486882526540123692382093618949723457368821650533208800705338757915368603680646257298013197734370464147869534188093411815083219779706546951698974992032964504306267565090520669437118000573609254098737730839521894495995006804940182792865773877406963387043845920206545763574800219711952268248878627829978471905620539290854999860705031728374533123180109812950650997702614041989062503068591759803219662677185490416419084869753504032557649804437445987619498153341207747296860296159370225159793896302650167311605630170305738341923751771014084257580088672962404024642189635844593218903744615388042805302381726916207022549511952037681754302328568195776023869323355718523540510895782404130242074129033245337848469253122429716626939956845332983535048350778268384406966126815454452028777744210123476504847417518122441247890597233162154690841311966060493369713782455288269999285593780692188093748173232386206452222054848176427257952708224143752036682992178053737483612412540047364991889808384454037853589984062288518915950842605742375540970135262955259218040194372692106237958631523636322767000311511057906493893935448803255249750938639005015194891974668488958171385876907689801629361336479630218766097679403070443337015601752503439194257755746012687187774743787505092543448231196196398784133493048551402028154664065512314401239763992356693416383326629990035148022927335017085294312988704867370207221337220505007898415762672421390156551323362527055561239111568958149763320837905918635598624607792854837138730676495741044714644380255483955813060517032871685650764081387756854876601789392654739501202817596632620912451638629690181029440769622317542492015198954360006620918493512865040974174376836664604621461702138730251986811456538047702487944275709955181369379627143344882052167655530289161513752025262240852072188322349405234829183702955644801771896135871878891106268904571784711448406933839437348328557832112598640207571587392261233315366690938206706960572704052169693685667137774872472374174090371282658469532561668427726095726400031175613730561450061742961688151472936199022889719546108059430699765065649650534084082293238732945378002751428557074897721678796366338872509807725011139910594030776795219422704606779596922236027878315243252671212237664031444656809649187647197617670085982592600732805780161967030512810620530377404052120395092036893726650900961401794596571651220020685806286070600658904172429247715808705961746194240308792765056515098362858229897420758966879447395400997411854778363166422567542475338998849171065364551025331214800904914222245599944825215384514934409416677018226657183389079206662606852730803340478657116625119837239912635425373373626760416889148535392500270149790621553124558638778615278677471111609626606590778503645192280973440918238673515959941315635752152248010206805188025380735462625163669665312096712150267917620302619246191619527913520933507521697238803378007189441479582306675101642629618638058257892854743134547218302465626521940988014888190982253480888761673459552968583394107321205501380024218335177637246405233287334314580362207854615913142968621782012795598510816945527333061201933632514208384542833884289718307835056678976218293333154472589199921754995964216079036181031458892487288763730701771569899480127486062694342611292321458734046843086462650034752271191863824238986637694493653443607330968285880745714218233634724382815317060831838701271255469201497268214244136543057044715339246875652955481725124192722656987593819527437031353331352972499400061674661605920730553665246646196885259843584010368653777393435370559054948484954846341464122089380440579108536278380091974369845357313246861360832879655611341453506719055531657427570943551961158971617928567062950762952431367975600212945777867307472043930599844328627617464838391278559441618695298182048568236103898665384735137459719773019125992230403908933023371250497285367449209055086816599080698291962837785393078678424807070411635266235573195399003835180291311525916554105729183919421244367657822281412079354527935163869031091949179214778887482728922182928874723579949654881555923600088771160309691974462279687659778088401398358981435133676666547625838045909253538226595104183021378008961797744132117880529227722776396680608876649195650345534102786651721134852620097694014214062127567138562585057571705854317411522036335407102439937635582469839807645284799249360250285655530979954308010308072177891877220403723855321296901363650710634600697167387003595591603000056549498240965826545973230196847918182015308907646889317234157613016174502885239641463330880353476043877074448950244167440373804956078138840964421925316828364375667562010091912827974602186704182613343365518386564067998909454488382844311731556192696202356967062496035916340889988155278628735236400382718511301864228323281271809228047966592260187304016133992851709398019043280439402927963067606851096596153158378670772159598045300514136097284275588733849633729646290847666947312714567322017781536138844528481664971479466463051258420503888395833169528059911887819784348537165618569230392113494778276124773621952624912909065632309582915155178550749374175652829061065099574951777878078590283307523644387606754882934195716556365623096377548575751853291482109570752882204945941215895925615813193374332183618419912009353628031184819198593154604995718232285742771305945965633643709546750965451322481147629014790783185269279069260712601548297983769979625156597576215069543213362288200667323647561949900045061976991873787331582519587976459657896548440362949199976621850393708147731722254816331515838911283628441062431004921049988256855761473282513886384422657975542369824623777478086024121699074974073502920733357992924672042811954020737466458302164084865583352065901802984869035918558867654848812458506635298152563978137374668186787810827098007038207567810403316071789752385262664009070515973650695841273270273771286943909708687798129595254946919416068987352751837549407755491733459496000745763132786005911807264405571412578517360388539283634735181601127436614899912101392820448667496798328115103216260411320340002278866923447044114253122673510465318081401876450760688206009242574936435765573125693081542023156435700269990188290944526575773809646468167315514524322061600290899893190278079608266073491002587489184713892808406031939665267432289698037711725409911753851916853323540209902277377037248077682503634373418577722252165692557823778018774605708788391788092453984466976072434055433922679721768934371670120694290709194888774643530981976428887214078872148229569438236629201840301578704760936987563695083079105425855331773209502914705769037849105806876248124021614410280608456179872174641548737385527202168139190225176692085176627672283863693901306614708874379177793302998604690606659487349838603067415073806197123238138185526056239023279964170626414807373254652595309632506803703669027587293863360307867570782505127634046469821716872230881643305639237478629463010808283344376747015501924303553564266137279805082243661090349995569935474828150221532459818549053420035693420267564943856489974037682965486124835698327335639043464317602071426716469535811599624057902481641290758580083220113021922734599259103882293622069443967037095742546586978095215802968671297654478820250254862131321340745915790328902882190128611400877163188201513185782581735878477532258080669839661046895170693978754031288251454790968074980506702137349878018467021283351696164354262051264158099032763475304451727890190506991351270921168107127434615678288173895637029942131534853174835671018267595856908243467805268615000051098204223522989553529337442839036633011309693284954971249822851436062683381163177381077798445925740297398655453138606886731935621194539108319002650276498158802981007877734173304132024004146574793171957701684135126182260066422828429384240724874335963351598633538261035338719835823834920833905756120681155839886127839294277508773138437383933365567016992877166825368121085929160348087008032006670647489724022772655500388376768564524342495540505746960945099001384068936343147658166430081131556921373089562523612359409217925465237640679176264069760379116378614277730298391252705432044074115051440591437686054774957244260506039158985535576023000854323148930493879867762112283298447232074438517666765408216172454595120418802965448372062336864222529777067609604387381575767277176434004702214277371681081156814524748828542039301985079017236390294266327556388600055503564237266099338436373434849537478998365570739615866165063702658154113629816978929614360893888377393720222580013590007415417856867713339315422779725096409074701270675712340162827141717203828254344779616092154150652972357856920739159906372534674303239713318542539541358202990445950325368183150989518314858783189453589851283494659568486247085292979239122995109623023242062766488856174734524108196920005887780524749465714944779055708977986516005416538642290316905968433746686341040390054715801929054419427887160005630131474346775081919715501601829693215795596813346746332805075989567123830444877213865065532607467752271024036697016557722936558448471671252314221580927662147994441327504242016446120827484552259116146015990676570961286775129572186853566846066907274172092716742714488424039500356053931783261773348479759618088428123758258577878267199246897662047069472463544846312337738840088081139163563092779068590335500819449352303376609106996579094522888219590164620859024384279164057296433359096082321909969643514683918719035327706074924241601333430550595014681294911659457864599441639349463023306161396908661553250471985319081131692845266763546572795576278100385671297101809903258029602621302114290722017394287347024889483862697149013400232644125800280830549886780467897999705539292781752810892389071082072770023655926533186565742429942979987568020843807849500169820142297574918577435560011108157828410936036452544537682173395954321852064283619562075052049723369442670655402137429872246627887424778181503336982562867417723809261817091909898710702642247657214456599928013370919324212902505644963576736779824395125365398217473543297197481717563127044651638467109833725580553946099228844679806928269831903651451891664298344371504833002962327040807501657403516951318554262266780441544051339238543197602803041750539102720510902524525372490688975873693686009105750816631918492653663426041717520294673342642567861575004119398869189100950896700125053126845808230353378587783189225665939079315967664806699645423289545577338950993973628103186655613494438428853386430300525545976857217516600582544941853387672386440307195779088142568724488899077169519156612967030589661167451714526133091105569959894084471298651276630284978171532095312987158763695816255429054468505079139057662581142114715817779175011136572063589435411743039663870301456044803330471182031347422825370450670939544058474123871181705592490752219557860001760190871035921286812180568369816539302820677084490151234391838303834440921420074365787396890929888355844527471264943108069129641924227147735510010983996121857430462180606568848019103316293236303940505956257643493633649922970403273961343269523669776572848474645407468401906825700698641527599007512438713395009680401567076402167097521331848232498150320447155749194712443960885493415739189959943645473736738692897527544094551236691053403592673817802214874154093459113134389690164488442679975495579294142334480152418489799838943884964472840162719887729602403731656449699698323738302948416518876009271153359241174407543087638845180296284137470012688073868203637162661846834666024190912417456298191081810628652403313362589473256284301729466166138304993242549870823885451050790474315203219353622778999733698634704373624262006869870353882160020183202009981217117212711263270362184051082061577330245804553274054658971416494971084459827842122273636268256297117193494606045358197724006074745342166789633288457263724105839235940138402331067370397722690788207907152365706112684561206536984213213660949931850374227469026672407322788786684622283514121531180219889769531011954471714468826722544638636386814657515723980947218806243741188043988517997055986977478431678750541570231873658954846434171438023476611598303147643138954545444992301106210282935095114120619631134507055677555592002788733748354508001308432099550770905105284172697994468932990645692425757370660352386269255132565612479514987242271139360065459539695756265260647201473357186034733132746273149880651927965439456780578045201806882732731031799811017969201751990980507947946972553500180791166031288935777009875629675522361302839255273490322258424404103023317579846072009829364049912783639107385002796117827511639313444615799920544757213306287583301325230228939301466698749217340968912461632621889423760239859412759974697642145934440389950593218370972390178470654260838876558372676053802452652937877708679179233964667895519573749707444073523957278784863113410252450659804618326068171601382212712232884855880145273141692058492739397826073378333286759044565905720449981650962245077276862137537606548767360022487489193567443031200232052474866746081782845714817581563957686385003521089538574567680737179481382771680829764459992761362992195839063701437389035394564856837804817929333437390266071617667683919002896839915298888726070529613167298513605338098668749776226502744424991745208972411026458405432503517260973072723180727308580919935784045153301278361101152830345601956691302048219091507115747642057939786211439687194457382942467163901786565854503713878075504075735312245706319567266199021920773912147897764054935756410499754846752226520579942965464778455812665778295175330527707241513085658603124248668725278592856059546660528093574636626611276111522653730486331201256326373245521693996853325697529344865452847379344820137091289126212302956636178721796699937680494458203829289715289783672069601865556578971965789961322465238457491650725513019527016037467316848012992703749566103998439565132650058603778059376974297018615689519696014715871810486396513660949409168426251929182155735207995296857603305128416016011118957172520537118141266097963182745862752373162679398875933739580357972503521060703815439915861027708154867690215715965068745142797099445897021925242655118328801337337167904098986643715231519734962719415135100827746832535316083548861140200068372424466371095880527729029876523513098574038372667405031951942866849725882570445068574968808029463339879620278389434798624074116604192792487974753478690835738279043003650749736823818878660387577202349349758429847475103751576416241275372956460994765516405752200577122211083005917205097475627301879337106114747309215173245610945181906341514454764943798921656765654580332567553098007191459850433179543786939060161808957108250546744218410138311855782158092297631001341510683040196558385067373873096331774973807906598148774301142215633411803462906826397052374010693847789746986964990432573133610858106102906033804576423156864051179126696145428880016209596971756074371887479712623813329497623123518805663960230132183131458216252393029852585212278186614642162052343121835039402966437905854239133986866663183085204595682436883045781471993806810411284693491331665705217343930283453023667239156468080294578419336819867155272683921685978251827132907223436841763585763928397855654423210818412066424533220911907668559292209531893024370026157202958842685036624412850162022252891177826867733677863075051634849137561158872567358283040427135315587962047056161558647391183698183021933963602580437134349998563507680724933935498859969082471939330499186503110805830917267535058629345821115304345008542461033035315950955817872500257798625654605441682341085524424908554577339926051181944975252604496570593716065806371821605350644603264488746112830053500834243355636757833174293824414824308637028656979593243073298846311675414665161912752437081629036722958054275496149454583468515187660251682450161239626137428269882365982727169487636738664136252695287817370553789334102737419251585388847284655357338075834381424405580130683352553404364197241607029886569102848658119492192432185017674173148041964084064803735455939494933900332294324340388340453764483273758375073580907428114125019001370777661588118977207618390957179463439033664984808319935066563226437158351267997503562815536170568592986826906140159919635667342207824442305715259926056698983137570104343292711178479596181514891125237526188523657265523130985981952929372617209195135813398436915588109951723496616031656560408594845398723758438409929425042039446732684306605701688082595908683644034516584437165625375731276399750180084746230317788777389963303332282468784740213597830541851597337514185717358551469084290467877533546585403188622055169084283731432971254632563644248245499168754288504753025862247571901835034620524412736528720713074485318550775221370244112649196873338150363329968128644257808632519812236360170571023601499378461849626520420637975104498710959358259057747787657289810279141878118355665023532805750149302440976146323240817712707059266197380344330003118900649132752593757630255533601761120898172135534741139504237901132330047297242089358548487413786385408098099947014862991745778836869070237667862160325808054231608742080068736620199167581061818915995382138717804027659882930202424218296747011196108687137701866174650892808638638179890730648517845702732194732922366260354396395059957916287679207447710311054704977769851441747332493370917304660181742062484757117653573467928886660742241635992115000438854850557666025969728550268417487093231790478654012618063095133061199086530755030471077750822609943107250168498289867049647454068301104178231646204224757478870410800823469268600145017444868884321625249649305659223679344087684669105778579486252173930290074999369677632150742696223657228620122340408015971197315400965937339073627917420145487229224004944732927100557228526513682946639734051501433330547229312581259232408937085095355874436692272493918795996795295119844611131031122057107466648143381987254695610515370646326325672319423645296788125316825676193363913059661727591021221302990451991943020064265076850886515331831814410528652712990148847152591582749646819977368626307687528167233050509965476309260382345393696287905541148887637393105220494138790219180174474342654229739848861879266774116791833446975587356222239756505655663120954224683915486413816889413546842852763503078490789076890133958332991143891676684368143976210263440579358781157698770842828547825867363384149006664265247674011807975351536370608144484455533060482094946741732376541401305241657696144536176200384289596516761055988405194307584548220787846463917694178501242676624081336503143255284829769955467178975749517259821272171040825760235592613137563774657516659825554194778995760832783322592992613411222976412987404778820250533586440496134309155714735434983266332774330474579508356295919762047250106836900152656134712392714429920742846804917740293234869079708621527880183450891220595708845713996084838055072230316736870029869097522286554520922364457502571850965739690979833912878106366374250625679184152666569539940962726542588422933698836962950112073450598837868064952734194842723128441111862909245377982823746238376202844270533782744802481794444563715619255397342731032086176762605505193335627990249701871526706700809743760464555893405880010858854318119216582647918018620292421992463708433874352411272585859158378912147997035175895629066327137888428676560280717525232869083835595339298277631291807129083304382659662818707607423183642739218111102838018994074846609920373568622233911818970210291456260439326743971493806953139244598470381147847189201666979275531781653908314100978260632109325696986223759320586562698735827240663476958996035338490519819872119010946509211105480960637876752860617297569137849763962139571479156781803394536094981507051097190399440566108704322376608753446869217160021227940350516667411589122516657789607842854128033040769053041396753588897571129918540354883730068648601214210591219824619643224689207373093925480502097636223492357510324422724318351361264967404718728325064688164441147662724259162446125713390155991339165724861378190286161851452756809920198853705437084540408832913163831603511197595430279023063854673718237402922204669326616508332635418794623059315106158299837145155723744404107607243799116199218063712511610814804095968155640464828848039939738792715660355088638717962657957955744051250774517920459086864984639447165579227985808066911675604996698569037836970697349067373452586486875256452663058777097261734542064106161741536062870869834336354387210884198731541123302083089059470325590983739697632808290725519764687081460546916606296904001754716368961610891047841848416708620135757225462656653508700122167446304313627857499916495227317376826716377116088986516877372647645745824992057943265697067727693851155345590041548333013721689184535313634725526491647241746580122851741320314494212623963418982384304216086250606410868804316856133229311699385017337145002409572546414688620955906965135818409841745164737154647414821769291074795620780113664374002794639452189275670868461765054390728663605089137372455658904897676322378644677456770725015341278854896998135673124058391045637874573327759271772779255142712668865185605831708414904379330959407012053206541584393050689232564960963285158559681875929402422334990941595959048127914156638840876816050088968663659763282014114763641010782655923152948895638282515872663061556469406461068910122761100495869679850538113318526160015983959622576515273784562005933803048530366442127554766468375556329852259933212643158082584219800479341981471694224393717293418262129815985297754950706315689832624842101890345658701472436755659678535669428610301910976823670961371342175249007741478297185872135716282345059979750005675240087312196985281236532199464555849450741627116083095410751134870178828455460131086451016029320715984977773673225900677598798911120125422610271479743338814188379240388411334115059915970636078702392239773094718194142068569205957607584723955516617872938371525438351271810913398490530931017045653218412336274551790276589015874821738426364860664599668200793492445157299755820710374084066748081501829027905265575584717539422628624521743001111069196625410716991624825042387720327658697460808501181068912032977959677343018172993666947691252348219958507175417779485993506461062630809230222304257875349380442790483364788492175734208435769096771497158556192969215507555334644207170283570664189270519995544889389625283997575796106797288412737909009569879949999879507653889121117575480565366846136563697244057265013850805117237547774440010738319284366003112943317111718359551213038595551967437646989238749714928286378232735340793199902726496183079140478698510489436720900697929872018265290907633114626021927673229141841546119540184397086569898462300048404974601553027385971640064641036451581467325904038434389639775083430627473860684043604874043170934585188953810224581068938230747718557480732102029126825869009817373079802724911063405391163182182880302020650475129549107133288089631054189104412368446962482850910673207532942414331851559786052361633639903327771430487477601916547789584834620966902517334330286903604948176800992148908422592957878325474431168899745326129802555923337817592938420438441125781131543745274996791374636489523641724879909208798380962853476945828774453483425111279402984062511237292828592604205599321295103005255915304609723908246612259184269045499176898293019898898127978358883998668743831245726344301845433693794929835070269606460722411619176631339048459154889458959977772997517542913236416623160575451699638849826081686390727929251260975787295907831723345143717726108330417838323691123048305274109833367128770973182839521729060687650710836292488662197695380585498790237812484383768946607909184920870350167201594062922747857112736856695900505243481667453804577047086398630976270101758279104002348354522406669729857441784468385411010450018655314161485373788369744444074650242193341395867470728460624379085788378482474643030397162743652068656248373949819469449031921190016637616742941638539707933614721146540221335522779249507157881171118061532978899856840076886025644813507172122369997738731792862317597752423990668642918296151086777813263128051178648010200261671118061265953310183491732207697095012499757397504182528464620172108529194795930151928357608148833304817064478645439901255692784331204877228234598404203161988186276979643005731257359487904059483156113343250224800336956682685597086939879127864567446989315990239683521366987972087822307182226093506577368918154755488400112435055751016852988078381904360138961703566093527267363780934428445430119043914230208534386659582559194783502188489494959731046858102532941900138427861552461961373275447624049249824550545597611193824796102421452614852420147426233470184757753590984051671765054347034613781321199901622630369930355312318094798879099778706665101054804344807263093507578002929144538031829704155964910886665499805150263727173615158608446298823710782414865163357287550104875838287070510990004731040410040191421041691333648880140421386373447522718650267323476944483469713239135218540003452587379436101611010887838007090518894188328243989549235913942590084722733708486252668635620437030540557786390114879120944795030906216615214025704156873859346355951750243520032040322507386294150759489584747542726780792898161085749474707933743475218924338577009576793103059929231018304716839315689031361908461238310950327161226007450627362569537388063232454685652194924308900268870899454109877140304241100849414601164813724353735352812486327553219343277168899538280758922543270472965972774000696745382174799595627673388188572885997669503814851363766959355182695662445455304950725222403069069950173067070763708459483945596659783622263471326365189871095669631078988283873839940891583809668923294923033186106749070275708533811373249686443985225945422792763503494936644099569955969035974296030812664877660115019707703098252282424709424537799865843330743543347930442760538006558061359032966409281377535196782917984310159222927047501256419957300846516115500999827075291984107210133772307928538522189651598744899521226225217961262459836296649486765811972533644678375433071396997135566148131743857275493557143527322382651968969566396914327433659658828084514966401889805528377432322663052018318815940479658973412689727503130767978523596365102963330469323499053925981459537605479169208244764839765751181506478175693988513002615982626667866895203350349470124649219189062851249835394626999775837112815989387395575031704576706246885737729205580534248289755632440153491488702242512763361946856722375134480302960044868901595659517243945066906120950241341676451121616952019828036251055487936465589530720798931998097810890810112634112651813905887388958137436470313336708729589543477731073259752419369494352494316014666683644954301115404095279979093096922169332410855183330129334158699038644985869285582012157318359516994638904553342880747201503935742783395362092982354423873576972682653908080043566529717706577580074204156652570340168327747415637130442983161301587314135045597875938476371103424621463138944596818134341319369300435551967015261965091832861702530591901941814510769460718004671333117949582675231711630831200483096187308459546356444268629275136217524889699501786916347483365616334553834746022568837281704421526376579171173035125973193250970055458186771870977087300314192808032066690555367198720886587214331148373342797276751661659963187466248364464636469762948060582144959579265737146074655763939951842810330615653472316282420079595417434901133375381385608769930258432329810740260765630292720700516212243956477845669580911448928802611013466103952578941719981556964817021440603368892387353432568535928601185324752509628933870628036555590708770044490341148777336692000863872607127179504753623662201160625431415201934804481968823178138949392800688690561746863432628269717084323516209840749886504862661301803175141925394448078102049507847976282595449017753819013288448678856293061220469185521172121297911965404326029672285757731180187210644829786943047445235664132980091880428986830520999770761943157709499532032301106235472386475462718514647531736607619191492586642672274452840849074238666263173519190206777744737511534043304522744361011174863646408770410593438677412039370932076352705502586234725924414693347458907137584672288940786912298514451162653717716691704313849347699180018775232062794506392262943606863423702231953295646856877110410587458778892953370881518483656293088383934730211483533390212012301130552712313452444392345189111169264157251489287415228080049383348873860814242584369370981593986154376096747180715387491908351031320119263849290316555686819375665668632475291079978296820530691969584026806008970681068512680302862681277354583719896141602038835706013454531663381355282917262292924658432557739676852612388858137417059661041182510225274692303904310267261786648405628739760632743394319163200516207538262960375617090443756713091656460873805763447450026777170952767945252845620379318999065607643660100894611594574919158194234545894069999343771327507151787421461954412671629757678000407899175106134633320660796330033977046857055139952621847233955223179033053782841805903621872747106574274556268770241170464384171433512634108922936420979552180396763909735361986272175338177231602941209404564204293760241034768496098877308322658573682692652310608193497193151406848911581254788197853397801019865834786734030731243029565630382743996768507574341114071548623250760736344538662895153568854086787548433489287990655114297119863156712532035791585320203614452359343042902719906382484621768283021928787103678074613996941348390877542606732044281194695575958425188441818733549812998881440704755470665352280284322329091584861000755839474420348585460205021471721833772551322613895842214388548228786995169033008122299395121515534313062394339520574652141923472224611269657065306246066324670304808624037824991836339200943962890704577076082665258857160706243564684094422339416945922463016001107831851033269573501739025599300297615115253794856937137872099810717766217949768213320384102308621984662262371910822240262287356282108140954977129971630849798873401662075738697918072927380310154193047117421675606035918396436661469188629420649230293062721666261094504067714421909676169496539382867592368519782140096300526755375757494042603384069542238007505296613363025474759986564090946278971241505759303634096711987287653615919466447685919048634987450348424846436528792807658623545027996520857059301232660926703385773275008660476467507017242867077141256808842888186900083654878847675425315278251786937416006802439502056342031063232360923995273094903314139694419142620783914766177273799488012290083215611379200453398256805405075525508536510661131459039633778226015844894755089787229631850309336096087442838708929855959337253387467054957475233617870833585314554441380889301588254147965911454299338663423442128439971934859356203947606558566788723900983001496945833022442130746900157250086355765155222479159674805420391296591632879128217312104041243574278764360153936910211593703000173583005901859567397053381476906243031540412042711093557235750738792487056156944519916070724933198305235157332706404653918820459722974365869277086148471220322353572463484488453189003436835462047200879704521820614420175816728610125436390447206343811156633993284047983507894261672100105083580620618418286630419926720498145676377423491791824071532460694283367643229229278364666270094513301511074343026545383750789340173735722086829826327057197098192657422398997752183049472736355894254554636684643503046951942743889014077747403453881201481925155265336886196042643901045154162243509744845786642764630501176843977348306599447394765621405204054624525671692772262488003667696429009506875661937573408573465828344213966552781882716910130018229059636204727991532377863051373734108759029585585876929521105236505624881994442866797969757675221903188065063130298032776458475811889517697184723912734397037490470729713419835755289827021724800286774465523451479824303873046365339608705638404602202881191214068762195660728223056856526007777776578656633299096452252501259180819621570244862242294104827412548587774443589458923837669838163632839035057283273433572335107903697164786727258765881328557702992157554902591065845816219983613752076578106867702213170064308797704850702782825408356764354088831321061364271870177593073309640912645482883690323555613868076605739729179346562791846087196617492246824847942089407084759921947744182939891504782263480690707283263122936118579300985819933595070174369799563843222481958334705615577996700747905217164968092820379338442539348024783015246329085281003491127101839158822595221658873884633169125293813305740126570776942255921786961143986345728711968284248095189924269361337676627427691417820814703937838257622666769383142095654680439518078833700170346947384670829395471215355548930194506717125118080065575301127912803422371117703383878803142130210784915619211209685367951161296273986599833996395662770402670314668323060040542607355597253310970804332002851316783799013087224709062659972720208923091576448038378740759014400257309844411309071175609284946249592227148988186631268113136500887467636668769643804746566035446739447520220228538313369968552514901353831994047638691804545192888664285969669296831318426581525269832115340846101007720638174310608033785988404461166370917739385273841207190568543118832341257399535363932726960580678581009860857713592158710563351983565032867497594289095269501171054898083728920993541002706421945601095539322156935492035273467422557198205255717260678897331346642071317847852763178042715611238453151167232399152039148151861918232572991865113612450312616096167477544188783289655051189132995004229433597044657724983755873899414770142736426132456694092687342131171263511617180621679505438963074068862943464757319651695432124182537128872731980368940868534554325411594956394100640658795028927343699961079719212342007347445530717206373044495252062810112108382695150436805880049850220578642370110175331006384870999840676928145093893740769845915032212781939309030623029447953708381763616096782408644676078071273868054049299862845964317846550818701510238164355488305407689787986529278633422147217698790870218790489723691044590715812516107486342417006642619789261494476852417468600937876407049520336413566904447069199157614630747104580162328028999224157297300360975330806518652574462306118370084661130113940944714841303087260451549110251588357041359451515437374511910457443534451232424816012975882850890428579388007291348438754267400054700904882660667664740140719249159415076829238688383569191327932200415378497208503240673147992035262585937948367126576984588758839262622871143424479523657240516901310165717930383185428185634576257471163445814450310295038785108695791411617697603820817990579771293906442254576841173743243739253132246775199551835551820853802735256678543652820987605934054468819014995322800385507775508391954820816598401726079676967001154842557567492981793676068223458132614323570869587578999035949059062438028216137067689883556293254110933936754144926568075061551787644359141757645790327040725975611276488540925198042619812706963319966546812234855760825693671643564635601838382997855451171731484425545411116949753885392734763682821397568612569502864113159383277291584614615477025366207075996150475239100120855846050909975497877994153730635933700677641461378064820401905032947564910142361450620353075181012962593980692819595011726458240463004770869300412861035117205826003443377901764673553966973742883187439631392802134358153236669381773077605931897372418106001306430557202916674965639002671888235637399702836489290340158018914396678332383646420840147569272560106067075787983527604858674173056945879101156474767902973661816416734838763097620901335382551238024491806529074905873684221467648350317986341136548301297536793909104869526467623815302874526039546476447195581464768297610748222775240270284528563821285523695617127944444607921594818187407839242297687837823579607590490070114846667584481830550894511776753978457568848115611653281695463327106337335677071471885225031227077938131531341653885142102679561435938895914860628931169362854393501458664653194692452478639549107012464699806144714893553354787496002269921654994730637272739983789693653051838425989105188859523118438110146704484915736701376173411675458279300587415099897866280741075164012780075289335828914209107917118212935523040194765847781373908311966875193382881522004880278817679395357525753459255628316097911312620267993619076917269125593218650746799090105935437356591511354731510180139136617290291097219779409962306127426310028042407930705637760293592894798622627476294864757841751880420628450833772341068483200966570177654691419651688668902765950553375243610060487488701255617911725764803558574327288409793597240906472205807658411382842368282969039272705213044915536981644979014373870713698965765099916932293003462152887475501246246778208508475393009645744407060347050190123710213238201034073263911289692375593791101880384744808407194873352076530101483560213477067392879902879664821630743711621923443774284875866251389108032611630344247395277586225761578247423349298415200323653232425048352232388272080008273004636975158372924949039966600538255500625785839938864094104102424858261156636544143131857617474741490341897934662003737691811153958844187748484546820907485117488016984163033363325920107277277247276785155358100849614997814027575454174861308029757409913307892767409816230297085654165326268019060372944073488733343646533979585339790200941300973602480760407574656660103469725738201836687890435480083545684832346625028854189652587591681731192961194874586636706509725516788928481833185263255901402922260927606575980379198828651798980185744096484443470282488773334104578987868955802818720358570583251674433701828469711495135445202939343343515982566465504207388633366759534384676031518707805159918334076456890940976267952273656251002757713235702187501718334731322750938198965999653872882066712766472646887161767898932992863247797116058614330928728013868056733565523087359751798784596777347994038939586055799249074744592490975071631316433262561209684222236398132121402035249019260205115514523764974233517501476611759740586636180879272785704769269461997662292269447158650083007466925742146625424063546654071814568189044342587224630643981478042535474707633023303055111484876606534657486365298432532030756902174760898571480803576851827177985464613597408125187937041219156522696958683316582039683613207947452286198682917682114778741029219928134214140392454378369413020539764433116844877835901360524412039287129125253858788509052410972893641641799943939504574821506960906565164001166551797305523708842738304719327329338284092586065588634851201197534960662349524540611736900905798649022397767359972976881564403226757981085993806328365728196870722884772477778332745141883322976318124000880216718574037640101846179731553818778252726755960289548047868444612185530168122418072719369249033127214955313011202609870170152938655127315434498426488892024766123911995874000911331175701161801900944898033913561644121780404929567773509620384252728468809249439156373197312445300601255129650076195987498909637473323513542331653635083050857777689285937718656268231443427613374986685867934525267901913389490756091131627045848647077904737829610660995901162867187256121789540280036069127402679890505870125928456216300430848321171884921486866367217018124552663603760624314047538213576425890101036857218607910315232556835197322014005265143499602671107241945544540599390118482880627463114716574428294135707101941660158445838559208124902411664653318548796156598691198881685826764145372670226439549032049189019517272930620801216637741045639583922353289517578169662047989962363905174980200889942889860712902174718952640803284843412744615629056645212771734123598455640615211186634839902255927046807445963648565127138794573129541917044996932131503035049915011783621826845636293674381942393254684423108371066944345368832864018880915591925618233958221157813370819353653835398958247173912390550134601150553189653601669487676086614203772757486496637940320334750871587841910664361160167665612028890467402926450279780529166745218465732011335944285831749362690059895384461258913270918505640471659013317866126807771164351620489542944360934186710145443499223102734158092202749539772973087585902528664904866163995615378429615490310085790595620879923420020291598076733837826855828611541703990791597993103095192657424567358647391309732933444207156434457852166692699744207092821598401820736938595904334825799714836327101872473097031017357470065984791891314220273849420646374890749535586091670717135410491645545283389750189829077551781909334265745321173881824159958165027703784911716794020550813268069649420606337717400831095839627352297551729998836744200526817888625441857771872541808548743847334495842984156372476188345022392002619049424726164359884601534498044508824634928418200830855445240606050729114001390560793101385900907217404034335340287048126092881714107324329811881377766670635291428261010918773228064307933312856724571244056580222686772194804694299913011870218604927644500739222631854112729286183897375440658948996363556992521358142607262803996975843729884054290628292015362095682818622366152919475533412074964281752900868744616216888789704468005432441691638157188086517070335972932875485803921388811736816654276059060492250705955765546768355128661112540739379184335977239379176163909548835119281341341326926438070476810855374930019393293332089042300379691284500272775030750306660784378843455840034327050780181827965885315794022226122638019041049515409694594162213899460665138012088303679957672990044626938495194626660777975202262850759594879794446110071067223370457291459202427333912082396867159627863957811775242941157332138900575424473872835022750254487418444027772197928049610436633516030436277721790316763247686896973533552537376866772812564741090939787246095402294160751647410342344362763372503873388397814855874243675597818597469715236370444410586543202841398795104512198227336676436964655292154603781140550921531340703659536029280438387289487376488089279219595136491073362961118615243273484927009339450741495579732999150798033646248061453604667390426073451498933304348701903875097416670166136263979240283578738224768257655944787011424192385888549553818972389298312155065535315978042880735173922554778457631539522031703005652295927127895256977269786589504339363978168777026049362387111517159138215323614173366812686638303225896930397704276601423451914569067234002489617777345266607516945489952490681221694729537431709741701332684443041642432309909261912858566470389479268707904502192743218936199885433148052112878567167187364518726233713647511789711687209009799621073338424664546239600659400246148239523072089193735882339322932352755602161744846258443894746336456099842616930097795524300451049961551568856857839697874174967410012987747317644240227793186932835107751913024616997762233163434630723571769924374240562590280124434643171121936887458925312684260058995300480438022985182194739694445410273866246965458503267352224696108975424981348704133725116396691301566783189726446400970542795794466943901108119723734519302311178847449134694093575625472248912382343669343799625480454449182486315645597836222539712840617769889013414367471990118597799266415832789886947979797064765747076093501654144062404535863418867691579777140836330522042249155495531719006726405111088406273216579609718691739666640349534404775450220300514064859503073750117033237110267563470774916332199003881308747330945157377348659323824420904575142586711177349339801488778174939602191721854669825309764081517954937000683654895743957703625743839811596987583130317446307773130858903652359554814493097453669618561418603815231681816513794518288797949200952663294943124919688669925428589507046550362289842693889786976603598646246682787254855352338943640058641334650184617476522392246178582784304831172277512121279822829199890264901147840139272732734640280821030121811080489139719257385569275558685231952706029538489989309676037517132269870909248259466222017160173860543740031738096627835639312699122429071907491131347580241168530231635104768757144785627206810686879061087734205015024455635016867571188031639956308095949319465089723152770969017959250043686307778224290397505156088789832748493620846668135562997002524848048002544540508953502128313384343283905829653694676824644857846160441399694168878693252273578925645569578605366295023730879124390912913905243147321565029086314453854324223719555309812261396275162024565339658784663187071583307870666437496579662526630377023247005487233993420986591347541111960005047431210849961186467614420315717608804752170176258116612545845888299956744887420585949237896287346028929402357162086833132026893485384062250854332044056865906961290635235325698128426597899835759020681712801511836721884491113345902890369493780817403914942523714952565415977846643653760970305016965201161973731147929405931421898603748704850307745940692661741837788307054500641454183316035111393095432482374601663648991410047842446621542766020791126940815442375082001011341802950991599828827192002425608478680076808601865284225493856388452003496037097828051506043584156264326957695258827250780259591883565698526819126909657270589773608752269386826960942114725864370050253227185085338227492145713254875369677194596110116078200246213913111201603921699561641388592744308305990105289985690232189914337299250173116099947131412424788309323218480107144267020590502711160168651832241237242386028312753050276737169757564587671198306630921968465895978663127191657449875646411430800607672523140582725974085869292896036491664166765770037105136975417577384695295205217960804099985730091838464428020381237743017949271598461960026584360918828499905438335262678313228812047295674901681824877764789406979777957134070927181737070110035445903258222763966171788625335140931612621962886003301415935707309321543919845228493397477002454179049455046329348797271553479386961383292514985448638776599969638416933030653287928899844547543943151470166764738921463023143177183384478926203164666192165844051754614172126972465398393184863405717407067881376250669071839292351791146507955819469187776932489205019169727178986366771522362510487887254483173329189708158580448752487269768214343657135665765733696510020609962279656092218197298589194659876935631644973066425507431385906814729109169621652660391982009298264918537707613558517626744891634267719800125329474091185844809331996703197723943443481488661778599114071059555126417530919541228088670479475512243106457003724219088489478986949851406004874962087343631690382906813032641268937679021322366164980480940048092568904168614696578856492614225086366947425336007858530106083494516808347872216566584286660854796698142803887931722862627206931262900040568832782553622655736571951410843676104985073259853524425914545323905941179848131683880045275663327679735544984272823486244032988327933019227139833579481130327285018907554212717513904715775945590461168728220729486445303916355895168163194121483638821150958372689308181034064254482272827268436767357868271964428615488957022545956730381954659089157066791741414916636743448961771828452356738670718953147826072859465079740230708873296984400984641085448683626381917129596334118555836098717612563378381475450307658296694614155538205729876175564081071157997747884256633863051130102804929336412534201936089412149382631114578234277691338333048853026169280544355506611806738463518085974105212665514200746284017562269148790279641666992857714098965536599427636578856737864941212189420925109665121685784483225745266319210378409523121606675202686500313333030258903353044248804983809696222950908038614104356862453317957635352747931602968333910587222961993327621374973222348008025235382785557853080793369281075855245594100476456053619738882046061402013839438573200790550646656099463031979003588704218997169112898346890199959959262594543645418953335809615836522123452357659431619738331215388982660535084959361986085098331956304647689503589960571664136696455998068873627635838826188795011603024915418356140709832365055535403368106970738564658771134412254146878737311803236404916919973912187252481424769885377836388564797424782215228779132092337768455764352496734298576916558309338105633797939507749059496126148633617159401546161012447084927837134785556579741560438669602124273611774570578004323653974292945926659549280103673038588511111754414640281778215114694259369604638570825562069332270742998984381622718998437942138353119730019745717266925988297856939691723604137000503903947575828233126336621480610982742884410006562620386538573365731254303651127797038387376538330148297357291144514330615226034280189047232631138616294598653123316980378919064155998621034157925678923734714585781687962486712832810243724622971822572164675040646530149516243180775123862468560768517283588028798112021706267671101962884885110020620679394523222049542808858322559275425355207174083314929682456658830785973409015864865019045354678931236746161591672674020191392137129832648990417616230021910873598127882122460569441615000025891421638429093559608573906907968793118649434593582153629394186239878127529503372004627198285399954096593760735224744441595910411478859415714962216519535294583825493383161051445693458769264235253024420710161149952106769212368111259138114223103694885503433975101029236956307336776553228383086610899245839198171620484594229360198194368328546108815144041360471336264395258650397939190111093401908939100867914973784079801544215147955621153246205835774861334414673526286607316874878032373259445633420930444239895926306971724275225825155972878158268597800369140434837007018953727248628859852065545194445518676030201783239704012833782913349900987771080564624069270051468910629048386556923736297319681413402182812661723035834338908684375137582344574359911238664590960889351772398165927020674388741907909346300719607872898554846375203657338887528324558464581173561156940272936753571898882415209808123665718369622985781388868316118289133332858761629484686487932060311707972964638329714878950878281345876235914777930605582605678379154522353412725321507906565922807893315476690848231226005234837206364480371576228937205480853732654080482738547508391260758531678428410324202904490324826789448165055588524554157419290547407526381077555968827985319566434832540007007048051250229057382846591891726661763849009871183333289136292099116940191234760895479270824495821485343042200601781009217109331483427169287111479151018732949009878642370054351654974817684140881564147512536838942459610860831168192152589101975520428237637637190537533246534496675882763991642981722260316805416072550068796204928889490618162740498223927616082281472980273073724693113790861559822173752302511976827784745765226465679424361076231350296215153101821872667496592760587155572811154673371243061285378546442400782005114109580377291743626790467212609010275177971148537603798022087259527082086962985063372323397079326458469415631683643780092808322870983151059556619230971278285059530187002948409491873303601129355112155586092490023742571849693680633982778674079696629931901820390887338600058032393860767485611493916432635697802500860130347625269669328488031924697554752102117260714947553044588148940799789523318752671183230672013496432695136040978722610862096247453241971747852579459812746532921035705995407821444759976018628107794716631340709258102222543380239253788978469746988779460484082419471251551821414203081836800822995835517444358047782072201476186868296126257085259749273330235245309809578783334242832437326922896366014503995801685348066335755710290509442245222798467998897122449597898483216834724199245766095516987887101332460261647341343219211308002258130668074820082317391303810991640189176680025648643260290469773475810153964959927684599351418263232087382009033639267154209406419834478775272096895268228583999626999700402458504792304326493202942170063788967717501110048007618602422111511640102472007358266309414405128126062671013190512400232972178014329126954208034519639865972482770250010876854710387948939652943643463824584302146647683650031489608162294485584520004890880415818144729656265987987485385200937783407439719847075731320117109102559386324879603258646396305657807610953213475483063234858522692978596654504738109346392507378417749092834994399631180443231856675104741072253608363017797125185469854754791130018793344851224073003398675372441740055883458510781715284161317256178898203166360844749398089820296233965885762430127170417685806924429600809814030163784149633539065881288069339233929467066478836170219342611458605060100545748608450729190608579262141329277544118884688294241136996330199508278933906547940578427482445648360230757881786933753567078022243577633834191706618035894006024586746802565202394322302197900365455675036289181445238471891620104539673290588832159253937423247925191900861986283217809271746881799538599497908369606814933952992424318270893713615680331556845241771701525903638146343409074280721172400369179991952713685539812953446337517889069189039218748862813437357021266077277745310922190361527397141807789626609721974700326068182993501605401269423323589425728639335988786668232475786738386569279814698074508168256770322534223666457559776835468973812409374133641937223489306714331119493981436135038098895728542204734889357511207558470933386896229985533328450799604430856541584164662083045463731903384899007731006874449252600033739437108463645723726460612059538519271589977927594746021745082814135915423295020235321644710818006139657239935206727620895622455441715444104239581966918305923621886791959647412365465214504450560314737125578965870009852339425502919277673438702209030545751448048042915521262110792568310491169042175050431697782637361513424916227770598043668625984759120705190666705898960319754724386260679513264858967159438460613136045584260088524027720357148100112072404518472046717893965312492673473421214619420160681756990306021590391360039021927812077086201693349409509350411969047409792651348603531331456518303227989856912450953692892209865077196502510462713450940357642533201948066192022659230157260209305840464482881446597906585053164854959025349892796641353834832570829268685714682900337539440094386617975375215912179202876938776673792649060230810776256669454279770510899167859237661410965646323381152455922927165859004510348947822054676897394735379193061796129354333323465241758863380372735032505066700263510661327451045115909514736488805665488696551062409168229720894445638187899500885807754591796435378706659821883535120278337563880336922558336940406821767259857438620440975068686211164724034036327820349988738477645075204172384391734330364937193343390712493544807272033960953572579408546504057730097334274148931693259381374283855888788059193918253216942818823143704771004507347875893040174991542911323317875922766527627663907718764319832950834012656676051222750886372644571067191788382243825740914575008824510298684560520005508467926693463937795417202071135715220893902039611611699798843240361058977578240552753313078759376894603715123977698295422754306559785948614441543204176522807932890816776121256814506200298158584042945439729148019383765849012632699049527279663486174490077660784684623377154494708007133088035904205680990100065503640565438140340025287598501684204883887395628699961000510345380378804898823964523129001899479843172970496800380678466012504269523175579206183380148681356128620874138364232815585931331222656375888366754387331505087835981986739470800594821995972873570874897008114376813754861416797301570405351147673489468153732743902468760632399744931991147328126287957088229414324349548340496172075618904095477694002075040594569498020372749640220044119735154876177568411425463036365987411432307131890452965815986710289915381715975878337057559085510946183211359811016435874864026489351476528257279201071150414687811962653709023252545009536375442827185935747371636665287243225535600531765390811635331523528897232174155079615481603097074517350467104573235722197003820179230103922866714421049425435363001297038214042868275764863661870981004555352361302749213377275659611119470935389286393910669419074459798969984262062137709149684754109194282120667751946150178527215691722892083875896870500993787489241291890662603202996335755969468949353928941837752588529922244424518308901314169520044694822106517169871749598362546708578634520330481553821359561960184862743355301737996448306223840966102143716991799831774201461114957070803311509612266124057729354531226600612303833100548178922414774583707766904724012068998468906495300484153335723426702555072681778875784004832988596432960297773838423230128273540847404608762942724752832617953644616268547712762552566970840844546762988249797845729449815739254402129349160050559976821157756486246098949712182641100048504409352747654401050046800828945394436799424126952022995912277945392771035479242985618908584430204272884195314880624198449676184707367610161558621776884263866110695457013200489282909360251083409435970627682733406298478042889954965353438087182778399672038657302883216961608668098932628913067316071463159029626670427412555417918164676669229564364309122353007041305257358898794714151413654825583605246581985230852236524754400562062062391871171100305691417636637797293420688212549593043843250298775796629512482229437814720651175763971764444805637569690187842491781026327111303470802344832590189591941300130033941663534437455371016484398383859577776823138396510403489494151691052493292457660369029711744416372026445944541613722227920289818732122368078566883619761817328690716143208304144213311552532425955470288834532467428999979220141554244602849786633042878566963016817156196250860375837498579452775785963792036618882502251477056088792510747152123585861097751995382356943846742108961121461280590055040758963086339920941696482841722623429436251358852314582529269197841642848770670211755633816098189987936593412417140475464967808984246920831062307024650144039521994361265344736677911748684787348843277844053209997068962518939470436325980771288995280773659656810083366326469241436735890683525114897611314302482842987780296862230383201563759849348727392369969871196902343607143293476257222407184531482932140511543210289578554071596089290950186443445716465563271993081448671902553024277432997581685899172940298385248965157946908461124680339904584617644038508428861970411830623548000755487137728596115725068388672184037767214171620631965845481802780597409798706664847790747360401167012269144314771204636099263673660186793245356831119152479398106458346058219723436112744637781552854519278917068839060315886453024291536268527298014167154918735398007162825260883763910497861651027260293842391929720572658295562382171038663773683508145648057863780757217756372814849585475699312524482772593244724197986822384348592739204531354112501146425490233268481440630274595213934799547204730503683274257097758540959365540008902113987418224679178619784360734794768719748960393283392895416775687843123909910712562463150364361688885727154311497075421363911863364206983050874205293127210531479303323779969778976403882257124948317038219425928010708448317378486893653207505290531740917067633362698120271911147060075436347462460537766684760874876495212783247760383689878208613384915961117800939163238906125485691342326456744070468422375349715996340534236940989009108333891288841368799814366622269995275676376211126882210958432608079917251512852046120966712045705952610741229246325784281634971951424398004803083454123950338167369917646322672741607147041213378690071635665399311911524348956714878786346994141955521130028727076092407657399307215861448518444099332621702053520771474618765421220869733398377943112338103566876600505600752554201656993146924367125237008937704805375058435574016467933237896165287050871958900013443829406042499175236623276868698391904580547342050539663260134083639675920269818239790296964753844591593804712784957346338502445490240328926640034531135396058301305070277897561302709638615211085364957817822897703321297777031891802083772872300423397027455002192231146599055674165831481459068043133379453892393605407947374055640075939572087876131141871619884014738403822065074624338281886765115054625342286120795450232366783236992559389798046436513518308233577439048994476491633311040026777834218042665095916794243599585516238840943965074226758114766192703342810405683233230039815652336088513586849172861238646556033669308834213503429507445657778516398016725467646971290865688745704787371086868769380678467503201046604222523732413822223137162981889428427415712143279906430479063877105262152468458516658321634992198535312443026847725626492296891043692820175823027493151919216495928232246623586205617058913724231357270479204060857963642811446553426528124902465950054770677918899718806247873244839722122928987669343470020110079576126120133630939591519726426320281768671670399018213921875935242304951021725649492591959303245489762444826813182912203039175380909317828919176180163730760453864685109327478746695717445277372782629247599168975949473486666492459724376913397805036896145065068252474705669616968572156138403878046472293313485670280436392118277469436702979233879608476471577916701844004425102811649978260022493138622589525777253983577474378932341279181315062160140598273833707207324366903572050783891220426564132404893876667246977041472509343067751236288317429378919784529393527407720676614763304350370422333466295065540544352866378864885216310733409231000309313103321301369425996004929784065834290077076225026064745609540819644738895688835935921170722125221828302082938894152467838492796442689285808760791173346557705529959839455631422093054707025240953183268909421861478820686604903311051074430736022142524221741266681016364034769476369784968021055095009203410251764898856536369462678244528062461476016223048032152674681315998680396512192420291322724560905782857758197063315576350494859879688394086080881738564561256926498296171880272627403481866551101460998388384360077492340943402200611240918007703615480284828596632301123493612404185802768401249555647996159843622831407639694720096892501433878371556792613364286792561113807643129828751070090400585426264476991632502773366562681690015320657037406989607794036682026292315330625156601912876980141794784097773093913423189163131015408236335104680034107512069039741121993230322919577364471649275530099640579597926859635366503314850707372421712349282787235482331062986862046274941206687883339716035196415562015971754356160318914375042182536291115227995769779833356517074813215684341444624157768664466199178248903176649355374896429897939387714362028303104031934823511658130535694680813633410513211255841782930633033532665697704433811953305127867385759850703347544618578545351894212300178162629219975064263338054637840226367937050179670321475081696484303809669872501344920579591065515524499480475103636888256723039547275713225426817453803982179480198601505919242950947952148142877863216792827415636735084937558676206809993467178427155356235254185090559998328824268357392469428748786394667915045835191396675975408907006021190193223112507126679082342103629893530538996983518621724766185827573051672093357621220239981584662577345602098404354470383095963601301355355116588406736114919336769901319777941715247055175654873474327886833621773427422472376615825384665389398920112554242484962030258719098042103585304459869044534578986511845593062569524340681656915706616478772179016639170607174972484362181099758153599902664636299257809404448443643779255973418071668365145056097391143831019493973922144528758097361804911009121460834146020214283094922717036973718365233041947871133855519133276602924770142708431675294857744613077927046404579115496292784585907743077496499503063657963994062468857306390936444476585097827063378964824223815278251388370315237060973350883540437597219720104868056858123693398379365286804207116982769823089273638547954232969841919787928482142392825867421228942819336247411251845704568249765036027372141229232938784363029626278114083287748746471447612354782180645304921306576879775239924491225018437598435125601593385189000303662142757408073192407319716373157558156495146689575877261220953628214518422310157372838635867238158188961564355102064919328896206425145889753154488012389103565125630749582269274717683655534388444781056109102034826299743510506027593653609091057873830867236339008448501243981619899194699641589513279073401844478258015795525954204676079473515162740591100261824352229560216243031910211870207936845066510336179247438260803975369601972321371932985733637164305948139075804251900576369703195592605451953806648646939743449016513928117203226572972733811228069772115665264398495921768880622467774349149586698829836991845709832972492493676286338921517844225730583927099837501863818457186288966702158618980646081190342261617699693490325855279698990496868435843650015703081944544726980535404858750346089815064202551397789034018310134849999814531115875250451653774924923496765172880749785606085210787312786866526081171788121856695314391931581070992850912127054448982646894720562375978332097490615324600776047837986233906333475691311835289759080889639745801610034250058616721939696149542057392052631301231887033026972253515349986896083890400519465107595646868119532627230286642930609591972385787591788004764107183471120637115090880220242781834643613450715573451487729311810996184835960807220449402419714799270504885942103777082729839143374125964088741806360214183848215725458059869308977949356312766353967795232473604304934298473139388901589576677521822613705338092306453721289585446613284860811415412032129876916769472950847025675390317427882107939829934615856548238775735961213865174292761040374082582595042146392341353855344154818729158025072870291636443192073333002960447188812053097545898114715040263798425120735040076351096644693201809182077134418861995661630699821074415974080151301275394483650510044443916043422998545654489773917136128687495462681650583223540376843236435493334988292423598313200177741705945833521896352408442505752838898731006397412356420390014212485589375454797405146216596128325224544628438998640261404140480962040282154106164646631931073176592326450209447142292983327307623416281307374777195157498697660623725568456187287227423246314811354410825874926080354911708034244348399686922733092845355187623032324816437028785986403850909988772855438137510188100249070396482629460460647034431646322063867259139966193477078483655491176163049197049610750468894935828430761845448079897538902230521401063072055255272065555982559434364030269782634481692027616699250203347484618650909837405288477147159140422653272841295841458845956797306940507645338814565959019923525338825000851639248530720824123983290600680377069120603953722718880647768199131836548564600774237058258122490510337267891906945383439028907566925526331730349093306385902348516219079910584564006330019649891202898700564992434823018638823835675532911540169692347856518370043203705967280897732194197335970730566135183910658985574590888901933972541627030230613428139419896262658887695552217644253406345335724016058446353967688190023923257817748576840495336122379821985634228235405266967745733525171206577259570771928838769076311615358112957878602968004226701901255435230315319466418869117996357139564852551040302797593426819971645172258225409880294663069030988157511478755815845969775706773961047016845046683471586545874937112382066955343798601951708417850332230325161167314402453171306578279187569558550668826396089851323888997648883550814927839363427605920394076921406283160456945991962815687860097188919884232418274160886189423432503249011903364892942411824556812365911053811972067890080134718451060122342512433920527773992101464296913422999415842725097503238832369363758107417966368519438862631419697607901313516042895250140980334861587871410885757426457480719899719756225750680745226025938106499464693762913881737942651012090696772353166280200883395999031291366499110780806000002907312847929219181992087251890598550345133606247189558727018732662624684960859859685852227494154929015020179412798459653581158987635871512834654061410418631713420659516637047201882181039700428033123607232112553038927191607369127274983183367821930446874339017099133725143438519373834041537030316563111316853053435837898281838925974251902793047403065124092274710885882003775381798549403469893858733047247544031688247013966182507044562903311107039140092359525860140038514624402588583377139399213465074395392640651753848702310149307393088620714248802583748762796038164684337894334642238078409559051820577750202526061798182868036209488403728085482667157605279099704503905716839293292326741378840410148457199522079216688932840472674958429952478798352053435671135936495101058069117024949949854989206704271250143291352311795598402904642488094300171712191383245013310351649774595031165858188781789264351770059083894622626035172387241238495441187725495805753142919360839153928602260356210867287198283522497263164607574293914925693286983744078123685605422314574838873367947822035179902693126702609789227226197608864616118120305683437833653762835008946627261145717677663950217604973341403865821024752022088763435752292623178739336834536598074820948152609027586077528164159189779186574710268039698934754057648677681430036150487680722686578283728052428941006787447035697909631980314674914345202518849990789830163329539325816717438486201954209884898453388344352938520949547416637452761834837792351825797878850740896448631465177582892062002000551162654637938086708501397259617124268660025165254696805869538907306254592416939389606597261612443965769437496026288133495433989010088815022412569306678310900960506767074341739496669848775033234025952317836874772292629622987144272814044817821007062934600178441755060569167417381692851100283284797731001994580301437907780767385608077035901788552387775255196147317432959891670461872038665614638838147125152414915142166691090626736866377044510444308504585766364435806700919553187955562372983471339496488691209630796997811954587905776527121141393902547081196729700852095987811904392947351572486740740621257858145645941503614900654342102477957387049892619979842174772363833478611408528145879840087422957237928772526005329037628533036855800051046471986632995650160331571650132707449958141150060194695341868793698430431569961655795825598532592389450908653388325339251010363945437415249166439536352019827419381983060791557565274711171986560845840160708893877820934831393590094225974856850764636909482954295272112929190871150140207889375695057764334290680411793604504599845158334428061328228359910164085285998338462890806730751789822978391182488774807035350673455937935903432760593217174734468924837006774602704883927767215965601324250189726130123041208355410974036711979835338185373819768803097687993199001639904132944976926276367119408905378953694380217182162107761798606710008839118594013058900538948375862565496565878958781997212232112071015093344170970420711387967187954522766444332075417486895172464485726460772802300859238384904186056436673653608063060408741150670699106980053290738732807920848103760132409104248460537557393460939574984757701580105029659431735454779301897608928954463871460134507367456417477051105433491457444790004811226474225904136427066204341845633748216942772458054645346186310656799739770499273646538907899969368518535370256611994766967119767934829328799517017588265765257013582033493273135143256490354237757308813441559767590338418594930308096873703199038250217896804048932649058903824830690126074202040145854885820386597149588377465388999497873349520307543116274569784014801655158858980868072884489660564450751673382590239648683438790047079586081421743931944975259304931968782764930265493460575627896496204904682528190544533099515034637121461785290371912924342714367867247306142600563052079888662227228363572198154317616005580263745804737059146811573361142218490755530262457241951108601521430794113822969857860148004796944279337913050822361328119411924688617689243749918606115182740907676244731719933276483765307184238696438481752496926565482124179738219891190955531863662069652775125073890281913942591275586134908998387200715859573448191339508026443396410699469878721899847108677584912279687090996380998638613320497426506188799076308765486539447010639308700349848254226087541483480431057814895641811989552598599152633463495124117026835041970077359157445511852486424553464603810662876149162310849953913136538959976581985321325760727750285944533502347880525034320617071917050578117136845168082722379320040313219132329102958190298859744209680908195308913789679057035891948715188946341440928958442403186885076160247036024346326629646178563193345324845712117583165596609530341008733958695836436063910786965946348295400306207219548823194622082433630907129191756236907287559828176488206564293955975928621681543115630068467129817939594749022668872655343769294065232953782580330298558875289241479136958263598818916412765283550867617745832470384331757811288393335763130402916742154442225715972219025878540425199321806993819009392126822091834046112940577935306087281056176717306569061190169918258354058752380926020167644421791443281110497926747894677564147210935122185977284213373213724239441722812362200598104622338025040108779884772853416537068074260500711210783202235479447023519493257475553109828851731109499514655506016812853418139333417654637997573048418359008442163736079465357307973205993323419803199043213579328811390369735437661811730670684699900407882442609605290843509619155531115821563048668057713337939640658573269864829440979564133565562022044299153726787466715725873616416290341544983304091977691219332712344691930521535770392413486750976369295731018894486020843863921377787431145586824375304836095674890079982685845143709750155028626320290800415373345536228203163321357544478735930288875202899580398243775983311226368972230798491165920611170252901962374236399412430586690997561370332583500903843531402990210573547685855475931901712144310903126383401413748778298976410097095171416810183966291195415465917283989033119432898689947391217483916888410823065219563850385446749456814201109721459895183727601342772228971902037684094883502902091214597671619739765444208225641531783634925659610976107570143261784086002407898843368450276594584226709742807617179913527764271076527274952302833314376751058178769954031883041173060155184929741719455591514016176580471683191382855268294764258514048543359694198918783298719114652436289484577783845653698427848561007903258335383868818843932154492313018519458447621100145946927140438338216598018648033749268991371233781061045754668319345606118551096874705029144440796796393195994607692873784601427289641045261083867072803055583876475590427272243307866632833494037478092741603476843615760847198199929287241870055415918523451535200390882418690514082790803248397190939866028895111186564069644638383186279397536418331854881893862101564485085518626550176987761671352079777471018057227415234390799035617852451222538042572549359151377508639551968477308646713188967751295612789643583989654873885982556761967924023561539851372034640919356695562147068509524825870656952818291193691698688531281207799590402286477646118571185255933580007871476866750889777422219285136670450755213739532679082333916945742873104964762675632814102096522948553331553594005185218335179323474396650120087610677507662707240501757621827006441157980379216442405331633673708351100903933353073132988236359490279400479724410571940834908368773168790597746085715384354697160669227663120813890513068504435595376980387702831079845611170032858117148501191042526732009295948450648522331174963703421585295642125928501897660089504787112567026937362887771250832803266395614603144921323256895837145597452881661963457216614633127593478080515951061491993483915969594728553565619121704308338147393930230926933760027384591791278539872066589546518161941550697302361992169634066573846366161678259831213970691757047817969363456580946216631232827477088771922398824329127875678370694612729165600466678103223265056875736405007468174040746546667263880144300236162492732075788750464659954189290081209745244269253074055097108497137727036963569756290790598908684846641814085757458396287162074706285580423775193148951137945330063718564722392206678272285516993525068283813357092041573751313448494911496845448188952402837520701087598221148829795947817014347807726801729947879960339834733270861256545566903107679436248845993313076145068417275933701512438355809016650124251102240244063742010288825458578851148299462373607265291438020286703560491651230839608085407346823483338987547130367209276942994003027217638963557425528447100989581195214419018312301063846668796947044282789859423303029591243149860302727453767181265741349387290896155305787422324861423730546005667422398174557713600233489321094513864463140887902592885455295403668789933506949874577464440042781495413904367844112780005217977468165365831555505270965007205586307487743812978895455368622062952684292883163752089349106607350629163462231097101430670626992294575113907064927432904211839880964614544537766137098862102639790890261953774478363615860621932975249664541082480819939853199114210141036995779260253878456084883606919656645120482127910610777388708911810558047423012357611195271152041240314013893651687864493340755471619223145311077782945519019930611005433597610643675104800514696589561343792645459802043034897967962133886195684737486631434420681852283764851165316393965403499718871605838318584873073931684110648841305648477152729104873390787464824817425521027038426175454061502723472135340155516384253702559460651868958900547715534538633770766564790141030309255162155261005529321265066975026903906383959780908852761094933142968475900248594845090111525852468474282425632146750298297410953731272604232446082390583829024657110855086051529737928654114903952340648711623861026234844244057163424200020464630682631964146552149889533447173355438777541046376878165065909901407594154885247013712095073575443791209705341886559859875548282149035902200933577907831937978367184394931317839737416274621081924027905588733637143822623355203012719255159702436295608716136694670492331084205863786036887035718455139543612480243375859824644226582113483213597460073396370780967470063349197426749132078112071107556124932377593147532396251342098482842127915364516392471951264418812569414109327613930975629143072693475214678462316088899948482235826851734368683174594191815495877804441288060667224441531251106675207435782279239395817724095086900974893982740825791525789831347789012792304369240533103899016721931207996457357810981176105547867550708088678062151497994824083195293179993633481095733011724358469862458157852801379294882085277302006261803183558807850284057278032972061358989077391186221746064543576448996671368386489451861067645193137552763236852279285842689601118447417392368066758194118727586137950402131713219525968183418974653493589055409127253700533434313248741593243691588448921762888825417049960272192272348607530967543639557208323299310599358005284138592842105759304019533797938776579749989217492616619762067383399705520014508061960633581860091894211301456460338978859532976093911413400997124265417561816149708479030916769674596531600747290713259639715272250417691371181045962676624025371887849473370973030930065254907158181210136074782281746324390331320366975051276806192101458283452702080925735234591499545626392416032595208424214700553626107120313801444651675192725314195739024996992472644430477893377194986266869610168190709489099602958180301670738895649920673154222161582959500644234103530352934992196288491770886461538678751486519587061412079006891364511072157579604248957582927333995922758662125875166706266305183252944099325616065471098012140305746703274073657120809211912208370488713602686242986590912884605407226179396486298328212870417887607634586517841598301995320924306428603474143856957858035701849381949427276170856757703922907738787300036577081805540543129065655909772314688622725304560872488083095785791069258018792994066022246838941105411401004367594623146725708487148343204638932793159600123817645437826154420587287224668761151320353750900571675301447493338621821495801167823529716505867895218960915597751857527089571679428998332947785310010426818205739304750467656342048560659449827877481294688121355806161856719052269235375592844371058801773161176639903124722981539875785029573525939534757988943235240292033550054850973174269345638367057831306398023321594979687281140965419383838192970821965285861464275393170801746844494511090240816003336000956744069065176409248978924182032451427416124986410128373732952204089057621282449937270113706207072069622688747026100940848944664705678691778232877649257063267935470576963246090120912402830605331182314094035860669041081494534365135684274873379357767727597682895930242257669034947315224179204656344942348443243930861226348173407534939223809093299678697772390464631131421953191010560556127153838525093407456946641107808880687094083177464526339379892339112230113952224184320667404487269466858719202718034450367044381308602918556800051587458809693684046476630481914546411809236932932979798715531528780125182631762844062947594956930158615587276202746343491695319241747756525185992182656215616289539007477004789925009487345758944821632854400694043341879190832801964347371589253610641853395426568266522874900653905684378892995255287674345907616686694003085661062438377639945868272492732820660182856001275306505566189327477108341140792314256725818914893750603094813823706263057790212546748851727638118677200495935715048181791721017574102952910994677334650188706396383574917311939849435681907328571653779139836288353946693116572613773722127123797559853204193174454368710505311242916157550715406921181329842690036411858368138076594577080824717109334822889463749017623979416360656062590351161078905276020222117233988537573070430843224977492215548018477735556265856822516775303475513381105715497165057163628074294284589185825386546668726546489564995679809356977417357353815833422652809145047346198271425897604029397451824637334462740674216433458990335453122946561365004111387440449455502257408768418158130250956538855210690909196885865986958966749289155590501215756043071836462995002942193349518507876985230073326907647882181788255674069283124465014629409585552888764940956248184735273947883238342828776218971257558637538439349590404086772525396324509608300131124592413672257464868244861250826740924953634898346778936230064989143296351088255432368903093821236553641464010198405598069085865416284313429039290535707705391572572732738968569919966812419359078787380273158298190314833953889982935236825450830592745077648832014537931222158985874380800209514821425014120460375498195038894073575777079831443124274763562487849362267829520438268581447482326805327131466227445600187652108168538104189775893210694802615388851032307951466062126358296561016334351300980248439495154766723730902437832188283059583111512160676387937015991769482352978809470918688372797836734452202146976543746208993463690751372861100489674233124157777487729609422400621696973236288388389531646997302045284722904085366550054145358193033426041652034067876225971260694029182479494507553993573424126684114790969493738780415582834632444533576425632418113090353011860371308039936102294630528119630050792781154872917962283902952768820571605812012083335196318835212623508611605823977172526442148137295363279310454514642466423272643561324445942696455739030701343010178840951794949009498272631303988726933355405581841398471386589109276711530071568746079018610445181611187590325196189462173914096719904252235124183639472316668194267262283769431223386317550749627042505353576946820057463828361237038513472709755103551504925839271082616031787497427710764656011458190730794804946364692009123981353732923056699928066468423298124897587839587562225069890861727093642499046297839977316992627783136792199970106893249361505930209563449285917270694533395326227920491890242002475890494203016740968413281513270907003564531915189073402009029076305490790860933262763006564304681665606657679134779430397892223743788725989106280494272010303092690875382378023853868756724590584994328033222084414446335963445614964625446637344524104900553261921402769459259964966498000756567490671575004862506206569905365620086622721142298241411337858984513035184968706982993170797643632676042297855526966221623734420243273655665800152771376474031581236409330010799364231848419631473355901563505767935218406799222622622582150299400840523054466601899002089794911955644604704839163798638677399687303249397921552720247392051762273549440405028101562812986560697712923359707649827268404912659402968169821915872076242743207190377403834746918085821732559127521469526195005693200945447236812893213621877159472144289849843772388892806372123118954628349066046906699448221896013855424939565022835312330415056302003982152132914371453942271848402200902532472525793722179583732032448387303251394900810896933250941997542027979765150716449012770173168888993718024398379646264386440284418668456222723669875954783943069466562981186679256126961882401676196448520725314434163798878935733573818525827179451563753199241167712503704145386416078421400534535268823351268491944483603762097012240653717267760196324331157536489867848719840940527910803585926309278480492986732737572856888561370073015348945655414381328360013035365221886456224274157470485253507701874590454261090894899711242340419068663274124715028106400361444159527558585615398524545862286768249009043920663468036940928137841122804484365534494252562160466252903420687312567284308577785152134636397809137971855832129178254664510932771438798793509851582257491913110779711737745245214375584047321517770410747296915079515723101281906864870470223126722782507502829031535583846151448328336837299642217961057276346320052625114243970160136835810716316689195176684859265158282189038564172640887878218409356174042348302609493261491719087764372772480079156791858607416997086742828363620054179581077985374979550928601176711720178659189723493599725457493770404773493651350665500458311565851773954095102444588642781729060212138742787418027407856285914409974865695869576880714698575272595985870233883481279651944011714092584381188295812851146180626867144182781061366638763976358331923213033802348116540587563681696761727092427379647137780899336851155526026584049413916260840516127476861314046156441065906061860866274629952546788544841457006581234630612347502765811724590290980451412063746549255114039948396302082296180765782669015145992127971177970508876310496839402794618858043859906160940390818508256927605760382248121646769397740504512288192824378213724853308915753337596772652977311921342170822716364774561615510316472453452780244260295786746411638674057361861104570835970740736932061910269579184846426455255992932716064053304888038917293564343252534754928223492867307668967479346702732652277492287099059694469741068175491777564895582066976962835769716273486035623770064260591799551776136062618133806280070639791605319345985469483260018317098604118468649415521309171989967850559113050141614229904036783129295573730287599057013940264484970856541292043088257317881827603629302437255432193626630603793023808526114390860935380439087966769220221397853423611195387434015920964064815849957794345607207846883295831646077369004984006520689260425177244853660399473407884635728138404723563421378064220335663827206911866133877423480306474260049085537354489259912480853700898115966127275011681237220007756473252653300328463230562984828112001140281219614496852541160950821079183655349265294447567927100166050461669630028619004198352920478474944747081249878590411905788486898139636646855751993173016925617844914075134922688281988430523738598416702160575028365412136490726961352599739867614828282006360232542368072981944828751159705229139644562312852513945091106258127112891351718562696736145836405697974104308186035019402145416368369453032371733369904257771326207042300895515393410723388664033891591345531058871861709878641246272736758971764618321232019088446243572268352868086349554267129073691723592405012029280266087962682804319221410868712928981137029496306027830434017899474446391066102009784088236278946152151695706769347167756481646937322905587173412164280537963528795918102311857901509796672539723606654736454688432539688602239292584957250050448371952027856197780116243203876741548230395986164434138630079965446754626808317753631395175827922460300563058524917528325124565792137035822016578045083919052004790050073632953025911262609298608529871486022154437041877050654536975360397898775915760317901603847844713920888513642532174137471508505688059905891706044093654665782786091279396429274738993559716560744827340097238090849944475681925114459814071300592564477442718196270368927796944549547106888083339415281076284764607974828803415091800873524544825314267049811536907576219004530552905704990858285933501509676242061595020459690271704756681688747558688512632828925310128917243562516649001167479455923760808712844091721135729666278657599774082776122501327476253830279226135209655980098442404418083749288804693544705198828009103484343789058622467296174244942183600808181624372003035665065031572190835532228541110820547839500238782196687008265978434277716418166000870804177941138725357824600860693289082173409138166203865276181863801645858014787619122794504767928181256507274226063291778627307849045291335441168274865061521154810969669777717804035767668633723188700231274761242598434121121898205499503689836022073194995701416633536771198440973356765465230251561777687927617757324236372116387154369147058596442564502167274538601818956669310328365722201857427432037332134975255689018664255244548113727024878298829753778448753757370298793127430981135328954129049767015454710064815233843909237967612818836169249367002738623562909690809984689808393407160523480928399109492686191743739544578924237053116518206254056894007126102538817534517722515171736563071830866043733750007929644366356463996037107455288907950069810602020990421397471506967285305819485634114972665691031313850739203359855061507632982679648429270824591109487111633065222573003225581306460304582107118054617821937355757089984963917970617002399389311376319630446067049333333847644907086562904933432881681551479924313202933308800182948783362419523781831942362454030406330097304444874798822431507270674123437378059200400557167374202910821682666573556474475138014093847274251260840100305098345114203281996974648305953012380718615996095792195004127074587140041830120182889655852222910609434528194320968835214020651285335044849667259134312814981704144626362002563168341293358313916116131668200000645235625444397059835904816520339067547793427472186485442873344620363929079755913467386520168213416907966025290552069680960976167101810041523326248807827610980096887453425745815056121101169635768315179071636807684273023938935487257174688081896401499083919817133949388635300517400054519875886280038258247334929747313420381944519229302843623882277012392512972410643926460462400262626818562796193637805238485564929611640155759846015891931435890418908273826199865342941814541887500061425939194657276813203906993691752846747202910677387559243054217134664638429649537796838204069549996980463108385048275178970261189272722090807452068271594037763611601375481111582459447059508909301193150115779341970378328967008669150689032212459219667281203647718447289055777855099885640396038801644101901484973945531111322209358217725262161949320598561550051841817959067062953527751055335907929839314779890984579520074341106896417478778020956291413854851575191693237390149932058754950417672902044656675904102438174328543749277008284468230383286242149655164230850126808684553711253201313530042869776027232608883926045905138161086031682733815864356511825489994913625586321462333192233309630365905345802963278165714964420701215295246066789455332744059814163141729097953969787396523406347327382485462801092706162775058672789819001907673215898116596768240164828433379061171161569928159916745751165932582289504429673728440180455025963713684491613773582718322211703571911801769306799017491416033734075566503423996771534979636496167514601086924509063439532299227066823288210231777558472350681003361888075138951199647894279522143480297140579014912538312416957197677718107220437995924975727162809286653165780448265819237207587096291410358793685682828068900590203377530641354386103703207248361776332350953675491667854031262935021556410880911179168004367037792480050962339500633829698702380499364362945092544954060306065134453782237936075394112098422605071049699244131215426852687602588233329852990746747726816006990731959036019074471015053174621681553976266863092459174734948991744708172022807069644707838821857646722749538321553013126470166389106647378740106536568607860706662128939656584794120015202138087534254101176796998894236502934872327705911897097579572196679547529548065902962932505462842300692595151350509929058051624115103821721182321788834420096635820996607140228818453055102544035964678387156708590244070167312014040727311205679970735050584053528138580384651200660917769160350803477077797892950478325626483368344398749333768472598180318880359054270396658762505133273783328840500037334474031168769894986675644730103148878042342505973684379872770485953719895881567702514738337002397370803987610291698628808353202283614967097697164798694636729389140333926374451678520457734757923681770629583457985922366410027873093427870975249880708392729984256727950068869845116803603227378626890843056405974865439640187790174189586848969411737724434351372192190512390163111101561974905325631197060035420936010625041210422576793879362107550412622211321770953717856026805449418242980808209759121284174986060697144488839029685494044658073217473836774452990841154226931936418079155478616316666624942062829434364208252888334909169491967923996456417871253816010608341832167711192480939410177318444885944108433521579971599376062442898195294528954789751556758331327932014263996597710983310759170728559390191195126094100470750583852970896818092994635179428793035209879493994348580112875581093668604784958588158123232448543993387114621794932912777893997892488893229140831506085456098367332473962168848819821245816288614160305367128348252002066968219739404310174050563256640078726169109752119803192882268283717084744658748454979186429724160789812955983878505736191446995205994819960870679848920826903457324866989446808710758593352095751339785669142332823821634091702202025111532968759770968162702683826846201643622450108052662591798996694492574712608585672482045082496818395843182592938963001673534519622016605807649541247703948407825990538397533956001541593291726658538978018436135050180263853289389536672601019478317429076868722266498051461519270822580508167210306769063039086260590400992618582179641651744058883475998743944441218514175179025638592484627245880644068597176979976012167577207120686196741925651968337812898764796223820175645801114058478281449408653016223135156216442626272470421913301394272308151109762079534854962117561056624528278422682944198140765734756527268039531125741676658506231287584366762084736255873671054398299850511948924981891434200771502800170775191064539325527972402742809168324885363029736503818609940180545168764310916678796911585899726986635919030612832146564950928306075503136811597919268788067845229831724692578029623619062861054133904218096208321478730416405282681472143533372412724847461016735700563685811509832857780924208177535490077272123580532408057179609700232151588419563827086637717336818182797716327496554126946442366040476171655797500237112488584541771135763992727922224176510558934862899867207194062693164795950992685813499177006178675497649689520177822105205946178654156883504235791088081153035061582555489701156774449120206202344125735662550136497017618528955626492545194616676430968495696033207292910477818068569300990073906998829073179913266216360943235210100275921249383979274333775455381661610214110755321837624331897589871860369293026751520291527581223335142710839556888417593151279560951285718220290094896223531800409951588849893069260208986265362322809836219479241090779188997665361455736416478121805757054163096496549624978122477293794203197462071303693386583821527779283400721889320913289268368502296033035729090748538530759355766689116639607680623833299307911528739359067912475201720992789466197512212710818310106898530103023526133804208093476730618068138510613138397320932754231706374636552124289237544006285738994496527969836571161960198930276018136349667116687225940656503029884005565442270341671306500865707287889255126635715246641242185893691839123132497647020903722204764802134092283254499487264405222977654986519289781666903906234080820687844314841015522210252488797710302302115805049994583152397179609536391866711852846246493104801221034456712972706534004684424635413223817172549405411967488675422209228129584545217981728075351720042102894865434777585362017157785937407773455793887161966469493796792732745788307947469063450317242622731662922178162306839841816315743376578694040984457858291439371423819823655752769680095181409545864158563188379182165953837139967342393846524651409059939663922266268619569935265381632752814203500004461122297308027593953678721995719062719348486784886900305538261986299181412634296692966438282623500690429538534095663949716868078793654373113883521494484272213983150245335997606033431974673866661951636410339694846861682140426747099524222346582775418372850872495436785561860449731156977931398113243059727551611804569785904630501010096729398731801860282480969128663863780381504431137252585185328007796940202883800773113253932342751773854693989812390473770903120148467078345645631342146692867499243258671828926609874881505381388905428067885283694911193255776086730200125526137397383728468351439202597053613243069026838407175237872247553485433528485147598323727631242093390526514629486843922741576585211218221496260245874202591279157319634948584124030707251516601022827494677518750772245926858475540361979387926761277459316802697349043497364853240059357145248104026969872704191488246537232272100499493205738426211230470161535530750887265078856816445476717990369732964123135890636714093101143876073928622238742762003944698754769736831493422294689006181047420439333893144397563263545150931923635544927180116798407488553389461164599761550459558951846049305024054044663281129366214499684842737312673377655201919678228788299445813426752999255909810898073188408792087380917595923811325463760983757555963845223173948201059323296465855017935140567369193887319342402997160105872831128987711511333533560029466277262349623874501317026801688576212401358210756348666061374144828315473588772763731852501499569174801465828783571029796186180042185710103771956542429821057150451397562570696230200396446665339798936332283072354390170628757758277790007233940595203795543653019315409328213120107170003991564024801834758925072036979069352616315340231511779314735921487635513794330913930881565506140480457432713587301324161479061224221558484114837367011369557691182400695516436447616298665273255323343287112830991933387275477237765049127214343197488874617215048542338031803171090118608077085266873532766772132413967948907690342082843495643579074184796621676037292807223697396125089220972100759710651590805605920553816303184367120247777066999253274392953262695217260980723934185063454557262798716211520444925699097542954559915522857103629673370553436753542059613261262796960703888133519611038111655208609219769713478310805868866440110447361577467500099427223458482985890382517597360587680863202964760200185746888998124482344848214016372076096972059571043954520228374063505258942379066199421986537652549518258231405631658169767638287914275784286702281392538910897423019971095733357921241881116319294770469714127618681885354466612499698196191820846936685742305675095142419484962985150300337090962323565773854649901094911241298806874652291196010478926876232494370105116150990509784085458224114360802271796988781598660347546440792009499240599775699286800844899576826763877067308847905104045806436258216856858023946742363065165768915625159752361819067475305083671861273680224317753245398517468446519835933274913167038706811459957693914562990258761076792432046561211256151850255501044454720354604856187698975304445699106490770763171720116917732709927400191937530356840117184756247506690626271267358404237185801193244735207487506187985156676570793563425131664063923550277514012658516186414969087122700391669233828282571301295709587646104772450022437023372585907970302056031341155307603984616336539725353894491678158460247505032477437276791079785131185520737639865126602074921349835730129490531967635861861323497309587100504664203073472309957403591740655517642682218591320289982152517119232457212996975438628718419739186762536293889724471962381850914611552162658546374994121090691795542097596775089177289802879304396524029252104531129791783149334172706384514783766044325484924908630559630558761921898153003730477738663798560015107696812128208920664840732157691687346022822985894023712889505279772488004374244300224015716576992462723167433010444698928604685968625421031944718563886908284074380854216998988726827191254606219452293414131986073962742151962810224296196807399858306367778083244109425836414156553120772797210733729308607458241151642436072358758595224034720503052667247708082493345049210138014329813724972889069824639137248872364881885797711110117964580596231602528435120209337832874820550632338261273984879341119563844585302536468090349729287080005938226839655494802844952061357496771500675958913192244541122855721692159200113186251802641295597751409048794524070849378516562849751976525414239618368075869806768553598156559650269320850639347307215177995478816591884291138619785959987123149640074316436622993067817829448206504836618874852765556529838828180980848926062427858822453948693205380030612463791997171064125419198525793780171494530432161618199622593825605183748273936479132569563768602324088910146311663000370632687369356094487354313174357452855276000438898177300897330406163770939912323388141265414112823884375980087553281893712036704045598223396227112508550995687886757310630065748712393467877011900114574617108449227963799841696721362925777750838965860054747100435121650990998183817548672345854932735356419618711989524162524426755359913201503219122485805104827489124224102771051880506097503832360428513679540828191300548214816989075251407008545721254446757313356162145431329480999903641196465191526321216787482684408243054234491267781911326371182353709934856739747225482614348671636138401240030521928519222849569679225352316080971118564534220720321991399340816269070523779939560224097505115499438665460844241674877012408581314026736743475141845041410877586083244933822895197086500326353076700227706361968719667797713939119604472402816309386347430616312232069976458519346454622186067445076521391175147526981990320394694687784749725438790802507516080317994544442373100481126569388015744945918251719863340243965434026263208020178035843547471348898448655918902123232250143088474438894540943095147732285360908563342497328252746723393713681369630687800478054962789429674308143741568661719620291019854432512600760550675784411061280984887041236269609985385684924645789994149632710309410915618398986026515025482504776867674570850782875835924653354936739575543056059655422002534834513921663723850190416323361536372494641041050750392375458852272964508272721037770044591942883110076431649906957584707616742647035026856939337835912414560753684514654113743155038482541316106829335144932697780782000196371398613801770506949639850503788784949137995971667923858491479631384693091617949105795121188411716246961707973483984057101097923167560975883347188554089549626227265706830975245455446955202784951021849608691925337982891403177655104341147356134240984888708233249527389302304108590938450435203016030122433060152359097677967856515717800369499755156858425100045713174109317373518864786487366733409565295255780141526325964737263280000402964800563353697780869900315593871167489505478557604210996417844445783961862251615259722706823818452989036329388265340039859627912344295906380946105876649929728491177826552280057090610892073764885549788706974861003874410988633605462577147388091507607582614113333182241633336658247475280870919177849591353154685299235110033875184727080738699024939545892848767097055518330010553354883251525892751821016589614864070447642265372769978831747323704220032872939678892630304772612615251319807908827130294016448199215761052300019950588131943126547649620806135132604898703088418148171042146109970442750277501650457064387730454336169422633874575354388051356253960501078357262445459604730872140639352836234752609826848592916898742206187364353090095197508134230314169221406510190576375480444221233374249769687812350378729659981594062124582307045160959726534523659527333945613768747086507618856386276670811153847515880138394699445242644265018728992874211625061451398357005999617313022134402533356894088062956480851161243392133360831003185322497660624560141782883656103527072042550127762659397489875390670436639274188199279812298250720697193576154681443398135503080864289947040932156795296485195367847023864620891992241916230400789623278451964182516181916289447795233599974240726402380853931308734700294973776859706883565305522648820776462756904815107479480153443361185847635233075687034160090731384923860817659314485325907899994903858580505479585754741171812306483680140775248560165336843348779638757429328728548858295093296546213871917755921710946210709327900740029506660577790465126783398946806199239592610097640598747145292584493739577977065379725434157794238475276228636298848659606927731256259908514371583892403146210902364497293717484629890969102595890546039839846691539383541435858211026037825292186937611801232032527805630017092881892801406256781198285699818644962330663652409725568475350545056452669851238762806905602104357127698865052177533053156390687692949325035528920663836375806132684871497205821549416072791758564007622392419272018183749818174311760676333202722671611621694031543008112718860021783622915246206500148221054039813539237348823441545520499697289600166532127225460829167167860799457435074013779706910559454781089126033268451367997009893224316119556361962021602113107765829250175136581117820903964911785619276905777604241897842742991937091752225621805410666584927527687136887972803184468903976379912939172572677697339457126621466653850607705403951630192137815439202780190162448434068531247269411939124503794024675527115564703021746690363343405882949361353250034604985559534734057964850831806837636636430018208159963675958379661172756093501574489743813163644632153581947699973534088453140591379920962804378882141819192753555994684303358846726406227104078015919566855799657339714982676900332625656924992574148359204625399530279503838807634371415906727879202835040943453461746631929047919698543543969029297371955141196034259576222722594553071714822893369551690680130199989904424761505869407094165649447272487284318066499744649814213805964166024731965152896048317264836763361027482972207282650050306290190039459687693544461308488232750806850412022380033620685513544484347153220800728205301940840009955851753167443081825352237932267757531359600842670982222536821761451676574519269338875346221679525724845230839771993917474293674723188720939090318343239835480544210472483164608697225005954401048900626929075069613940656175725345366075955025469848289850710235810693046592376781908016629656100343149953618429725773922184328641225779001317016210825493420990432112158541166802421558264518643543957184299306585718064681227983104416376853392495169080941051876257793934990299823703042393417803153752839898943390031227918501317742810238791812477292236686657451561959377386754785255993398461212902741054731374022261164959956577042750832555580241804189454779900733008380643666353215660500985360648099092726546124028377284559320460575168570220310042469762318133937928142197070846972714912038677068021202783066939792077716432567781782046636985508298075592310238928830225192984600670107305505642172777391380707865122746762045614287061386090855984687061031491894434873732725529890376639626714385767945349713803845766046906282858941401480227868323581002057806294208561290425349316499013577987592040759413723453539434414172109382585786557130976499390332272782078383611125380933280632745501650403274407917143288817253661961568166219570073945984463083246315060379189680864817074601742928349891310371067740136151073263868326175164787658789689501310500582096951144561222218765510871969743276945853543580822504964528935191985306040116150301295170814273712372139143850044118019161608509319752909920760502496059121941749297459557497558679539547404618734526060782968431931286571292482077823581122312682998529267661284811587522178842228093573825346998152502463910126004618256282703285836749928257910911278149310130870609060104041313729167743263911220706937556206680920338035093406127772135057526293608474117171999948641868961053056169444780718526940259823840357875852326685552560372863446242717197818153082533043454083572537697594569618694215245107194792259687295849133069652856403788889730807905517705626409214890737228341832252971965395213693752954842638323773822171026945208420602112644765577339175812206653604589206749629857194991059112750701084205931831940420098227137102606988043166340691375082413521087831962393725010082753961975090835232585131164407000498457952303218365017196337137520164601567504930666464724020070483400318222057895602094077830446090189563614360536097674317088254228940624758360812752052074911023939448019627048675975017533572416079718231455203287167847135505014127460231930647731762667184372156485636920655208957573508311336541860495619696394095814914196090257623846832309659902809038194004452732602091015099108658604243846717432324006649242903444068199117103767494193420315986301462321687837581207255728494319586585611398582958124026361823427087800478005066408452190410638539297683099506619018911311250802824812838987334607313598584176169469333060289658915833166722080168370829076847526597845321359121241768712641215195779121534819778394436639830214644769621259226532930262711290058668443190693930165994210286967556630567262751446231955608557667575632743139717952686621920065011458126852298256351060278964835349721046838646920295777158045281143942479817161301991396559239164743012563479494504305646065195191568889269045680337884110920195145907807531424692490607519860680192427692994559634831794293108657123083115064589498380249445470110283228421668146087443059995292100970534028721068555311745459381179668342320379606201931674949910066412011172127675811371196743780359010795482298861441448531650095456840271945179619717913129654522956413510670621506213689910436308557416741444771554465301562679399575541314790840507631644555405076517127694915420089883817768498015965270103020160138393852074722006794590033788837434524744801963838899066291811220489073145484180952511047833765632344279857049587390882468350053392718251245497131261988887591530468833004950269968277590454762282973229045464139490873145732863000893213374450757687277289949372887893630359130718274752418293702174345733375356067188194969092094506918035449398951551670965883668976774463844531551396756906489719382553538690784025588705955342561739939671315921417180096867397510232572320237638240440110294616105833505610125333909442720309646019768407943937852820539314398453645818067925315413915852423540985427302161686387967294425838288433860408035840067070660678737129165430762235705409501488312996372772770999174061535862637297614361319579030512810820849708530907350816530982355679964645764632482354665767724006284794246544245113952599043965706850093300012773911696055394959919589566057002675088710688165963716580918610237767679589397924345096164478089604250405765196133883140388832838449211048901545324435512290248411370252904449910506513809699462837149676879149451691563068386501065593397546917098663868709950914313662936016253992429260338547198428267069944684140168726865258552891961840314590627945009225135676428923338498505102530622103808447223018351516848798079000366160344164462226873823869129683450747813515461379951065290050191421540532033728125139297138269498678827352360767037775743657557575781859124357301099802920842891248914706104161971656472316817965689573155543953971032477862253619031090735912545296043804733445216030116325322366340363394370124071295169461235150341984850526450420989604598675881805211336110873632087752706764996979779249046826863796391865594517793704066233258193961732107126649969873578681224667321566167228694124149549086860465261073904301402038925776965164859761745592673019232283610618874538450799209020580834018861781592513425788687806884744420711087155089604030138940595206238128612816054729709644828785813883690558356531109133975753440895286744982250362960163944333741706577082104632811574067890895510277778127717472146849840612866386784208941080301727003216809611219086771201616625753444332658579005412929738418251625465631244964185196089397742956724192642964471510069887246739947517133678465480331060968577066555009888334346781764991666099070452418679199813540724875515539833512847356213045206142939773951990963738332169614649852372527370252887196639719004004938125383992128673986325771282316124299516499190525451410565902968643197384421200131628779500703691054035027513952341622543436892054653610861094505760697163864354634022967579349099338175858875065312922084503579207653894965740601316152190193646595732041964895202203498688762890325014662786444030791232102613544722720533160632898878231980170729722568619005385816742016788158716614208401208569210765439621645489174842096397170115598401059150534207870483329073770872510949776550461439855391347531297290129822881614682048422928356267890843809776546033431789297199557937707445360639753834705937583075934940261571007937350282000864559408144664293421958174830219686991261531853869004415355548643347588854948779090595015236454308731860321454040592030232623640124177818198787661051397350358370760242215650683205661356716764858413268679881660676626598544926678213955978602815359508164671277901831263341304724101451873151075464178541375737302164488354669370804505303300646557828195586540229472801012307098670553295660764287953216266207744663885417228567760311414456453264206874330125020977613685914351280254814235268942741768680447903892365012973094475685686500066845998022673943288104057416983619260591391610449552337082423174317347551620436011893647429551618695184155100907788939676236874686052388318144700098691327510431215112609986789091018558367262205254899021441909044710244165911956773795085058826356439202867255636584423087551631567261117533504389954752225456915775989886686992706389007947196272537779857602407760368735369371274777906697214271111992344246657060037321044859291032308783099571748408526583745827448811802254320496221883839037458899329300816518341953183935454582896502300384187951039920349597855312975089442846567471314109673264603178185536231408670871841460482019966210795615259278328851683759835594758299627849704618361114585022226484054841786257716472681829570956858146966293434939907493955092999449575098269195599745746801022499729105635263414601678091693153832366983107319716228659774771626639200211581267396142377709139478476793703293693700606121271346596049651478125425427521409463942400104679243141289787567629228850843098569595137720033478779368152756557418286753568263448156543933024821644770536064169723472396771917176177223076901428305264248723851716614164702451325797265801982250270824432798036671689658636260416905821150569597349147565004377991508038824097638125051372071076997445208391743548272399520689377389312062634739650076719811829248169111169654817622042150470123007221567949819386735137568004573050124971925145481349939530541731237947958222246107609520683118268626763146980055672939723911469282693235140314675875562971572254570373824248126978789293520568824850835291346387659375377847124143643289223316843718697967894801207521069922212711111941385020402954045445095493873807504460253535259287103451577071161745478476527554263745093528912896705241984554959702737266496116759427392806652784218640481942020467162433396550512588856130619627894898507552056129626465569236265179266046349223397850481318339910490244997254787078470256519672069167215680036168384688107354755111282877506140007282909917503762390169002790482953148941197984477912489002287505531269344885864932338519836536105649790098001487385000602177543698731541306375423088601707915966746199498218221789352886510990651337785365120076618494680104232881563504584273646243518568466320186341656263000789215008941390085570450183338635847741237484680577094971193614924868829141234144930580780419264125183272393606541813880177852519071039064824984487664266659941124483089562522859899017526703367393342533915548621261851379089524118380662746479189958258647551455089228663470863056669887060839684721298688925221581531766313141642151558212947468311693734412574478384095673595303919995386550736240729421230837561674546604409123027284464602537636533399938456371075926332316172509045719171831834230914906838832002066771617890370495163526734160532932996048086214819473754660214216346311266163598673146034746848418038507581885264003091553315097880020682487146736144977180329615011679612272540052122744062117335682079964345561115367422114775208852532072809254313189264789396316384295126568587215495564810187138145896295305526131666508063690029932122723393945568281815432103380747768969096097815152547207301495271048579242479877788297620797577511935262873408275653347674205594524908544219682161306215217654917812462266907488454019565506942440423868456879044156934444605236892833084028991808190898090895754064777446563644332726262556278439641221662152326986075305639650798277092730409811486590180913864481777146092962002044674492396049193265921962551407975015324324243616964118220408030739397391246695506701563547648560851507069289684241309693505875166788361722236666380886421304896347222381945514856891090314051984831784450546583250423282633791402249993291699637322951772744249599959609652732606354404053521758635508295106310862127397927411723108412111880687001095607063435058588699368776749947797995205225469401459077752253030405932452296138559037189262064543802870006432880394355077476353794357193392841107066090392963817605423739690913232886147103344319681575330459988603632566642700167226907450439866139886083019404274692804481776208554110227147902278632278990574785154274682659806705038497018891848690997361413253953647048581264853330682763127406851247186540647064518199872004446321800057172666169432983911039806438495779293393446374752117145480444419882842655237333069607851780271441545662885845747059860122188681335242010800601664143594382334041749972013992997052487435090340811707542286535991371582714620087769032403232972635026261485293646448296265850066273761233922513072924673360533460349306662999208888404585707620111605328737665346700493002410094986598032500269991893673623871550646210977061536244350794729940382810100509521196874973825400211674967421963431725779556194279024148054610753099564941464327850963905584865335632133376916513635276677147413414566747493857699659601452007434493165264730473434228763323412635567116835941133492821868363857029782004652169973996099114088576212504512847605561963613103795674509299685588041507045734496700262055576896634672061433787211988782213951041127514459124766104535042032509197348442321681293884104524019577558786803898570035029500959390478454908178912465481845599775525796558838080894061328894927460437386323020815671157616783952922760956494825853965721110986298985873171483936317930639494362087946919306656946857856388013959907159372113617546759996436394419113155454376721531082039116343961880341619102187824772508347798246684807221261592106709301588073814891289332737035804259202310167805092868828984977209812002949219966976908443630612042690206133100375089720854364339389303067819487305321283759694478774884124360674762581376525848479782266671471826586650607095057261714970160575016192303215003771273119934013464569706517062244627425499122794619564064273268969693273611988153766151736850291544436834801912770147588028044191532857651934780938249271550067147125582615815837365833090554594591782393186742538389349409387988963217290067499216516663162226051888629588365835777314867274078648780458650251623775718972397375120898156450956278319494285933575320707768445417515670897499271335790495972134631028258797868629919735363041838411549443215101539452916029203247921425167790602995143569116571839579077004577568035230754541010289000508144959427489556990989799719842934756688484758710233232680045062217628093961179788158152260549451002159754383521543927703336671820964429412390590750696235211029784755937445892343249557754277392018860087238958517049141980796829726666250229911904773740498182571796079309389775069262613108846821002451174957004330867156548720857548864697345890093303378265929351943526831953171462406999456894514954442240407536220405446338021810671410127989607476876588119451922522064492708353775710631371074661668214966697283065007986051666969372958631067594111892479941925708769127598548784278078204970839446497659808807047772844804470824764460605315294840176032846642750815332540394736736675307762619613281316958998103888784829313980117081294784386988267092943517655933681663164621738062619528097281286147990319142930191476977816705742071135493103732537359046268656359184762443535775432400853391884249670642038658748256601504387026376583477030742979274092822482231789439432504471972547200091750129454516495188978969106306536865048334572358041702173726657445224138114532253142531034556297126167126854281208763212624184278786572509595552576667970901565615521127173430133844375483428805817268368359480513234044672041668257650397734279155867435812192267950522952230288864970557747550228219747976564221129080107162194763364975605917324725001470779932563136515166294069691803343260443045321605391358531223027903902777917087028261091858420216917300855653793051187646432356261954743764456226465058285136220812024426268065677676022251300564614104587864381515502455544078137412949409484552351314382305446491190358960700664960763917212407589320871232275378219987623884267475010843364355330856059151599383277909292002045437416252979616146293848264872761713765941265567497603164051110116905226667545469810864937386508739116685076189198667020357286518071284126677855373105164013814705798257995293138016307559399816848960317890642143187149823476326099021192005077533677191664855949698563580427773535774376287581081428224220772557143356486075885395473771628529319979307585956983988677215693304571868453338908799670617895722539301117214031150434910328178810342008793133930287332018543050124629563282606478437520059869514961945449987708190488700162765400469777632498975116677420041932639663384412155338986917303037969883649276181115190148368134843719652013363700560420814289838706948915022505244062679927995074539831316057606641562534384705612004930301845342705419914665265228387296800316724917703060564251201972482168810842786590578167585137373441690867604575828881249275094075420592826913546077385970398942957026815929333755721781182399975647369981453561282504729941035091880758360386353940144354392068699649965933545714070579018027989193219771254344188388690719280573276068547566293926232609872923856598939586968095462579997941176823294797839570326006102592701915414216700653998325862510140150988055048954036020849995601293423407503517212646386757078617592155372462755443780427239918500948830497547835890470320251218069815478815319335673502976630665899663927100971020496032791561305404870598221480281190038039232226660090431298175676965384645148775863521103567231352841084584000300296912204989881710199217580472768816589125487211473422398628809435011923158865676286906527603162580267183975664456724331293412100205452115358484399396510469079000116659403755448646938470115026475260498883267146474375526383642917931402129999405857075118316544103847974482024278630264810189086835225297321658135143660412655105843736311279743284945282584563084498976088196114772157204575779488505797291973462216323474880712501739335025209938527473091631278744003912433252482880552598966131476148738814351062457007912443961184374640230594415710700675434554848608344240451126614334496186943179754914942318606862015048395717611357306894648506880297076360121742619376001401376177385129163807755732758738135218744471444404822588966177183501741401014537686380342583991579684652855249977058984318866989455132357195720110280696767688698924698998207773863122164169352691614997437017002127693691105971863771842380844413490439069905375904997870011214196427242455564886964693134308488462988835525750182468099092518943838507926029801115528935232197987251131294154989170809063013270072967326485266544138362407480747758761166771095256835678901818731441764564410736518088938515918524034583428666993228379175572080516163396365456439119046421507774254867065566579247402879915196954648291892288500848089938394089895965759179909249500652123249704591031417755303879590931666380768157351804388783931220054974045823693348764111561143580779328169019168650981121942955654246894485573420456740902789583839618770348190374012874148848248083721904016346052345362360930378293857462910566022775670439081579320650272570926933472038233725741774768797967105598879016203168979352737162319790179234100680539799820038165486518035112356899721354305869271154251084521065957794118733872613145693463292232798391079301610070942879874520365795852038279273514878720546136186051091303778555001618216685995753916615488309035407154239185133907854866709305703028191813998664866817880973134810109497023909650804854535481422757131350012928314562225675774213449184948429002605848038803878322771027533315472705787344984232997531520954415039571568339577677005630709981348652183409282102033404098256575308544021026048854456942175768082817758196659196019336060993343357300698019072135597594825955406236424972731941378287788463719373027100868668162974334756404898624362855423021614257536760342345542449063039456472010233631775628866554859962353955644011381426146306282338272504458886723894520767980029919569385452946863398551372350602440193543266819572525051109994668751866022621684012332159517356038744726873581158429971543386363200165529872231701172164031522568801354464615415414387187149964383939404081516822280131717324447382219826837373071064609607978138226275647844144843409539693127183973886084898896241483616156239587177264027904879018476110019303380333391299437215013870110974062115510715945187643578210481077422515679609317441234043863325085864053816696942607801788467886477777765722455600547505253503184427394748655160988712096143848507582616672072170990505001023109591443497896916755757161032706291257167563748808491436320197002984835682162063966879292064555432844144149334179123912489560695055322852191875079682686697539537261319627217840335475753064795208517715294541040491819486719581280247103781819061270980005807754118796651093615628503177945235374098977630358685841224842553651687008661809737421265405892085639428324732586410831207019103105402250737542210961728299538668310922612896645183572315740654029339077629000928126773494155941993146620687220103265059801672635730537588087117363595775857884676177947997213832554672314371003562518428407918700798768286455219073805220465584165773850080034757657326722449098411228829466703437934536026527430510697135801429448040016258640368681333968317982850129677768315704381497882356479105005752472348718926858438268523672263474262304653889439550280543524869877477436435423247936908137714292967553253377776841487582120888069465267122213462755328076499932954754361184430725108915300935515749426939337327207198945215399002022541989315392172903536002890093422832126382932590287370048757492451641167680236358844382832932028242226476726752016345755899156823328590639147909001718141604870128256705863887802927807957854060425517827712849854195885689854025009590085551424468654602034970151343860912605052656120943292062822338431145168188268086150065473437456172995448074088202953387108470263049726239617185326787407462692609300236469625438378113651763007474983355942266179163072209163206115832530588484415244342828672526160898416902632419229280478928203044173960986150108702095437183372646301500069159760659079425255653748712518868514385201836108228874851739585551543064678119756432351556512705801321166679720143277043658605726892539522183856741858937166294850310241652722612333149742315249816452322472440020621344311454751833154463868303720021643534173743223837845210039366967433072376178217399021066141707570937350006654904428601672841041569413637172245217837211180603266388907414883585844116517677518113957337998119836553833259256390938263684165320851064318307020883927655031416163676663174352425456469793574931061408842538338886438959406709186005659172726054741041255129455358003330256843759869209420319775612533535648527515723449332795227913156829125892156136099776393736773791372254904489171625835191757835567089753204993440165312592075922356440968306952553818894837468928900590478388403333602599724793456947492345616357107203937068372942146404340674660992121254579297044985561742176464141864915810416347483787307744188331406166333004397555985585191552643061812369293077143057897380250334482697781589042298495412632015571561843689141018326164979534210165037523158692973331319964336664641815984896878422265438919030409467386738944387330923214277395597960184595893829219714251872760172925600457862249143404286476250519139954022220759717491980052311582925378285845739282124480846080803200788985819965495816433768633987206943945253112365928490703983524542541366916329802198403599477124626998582574590343864127710354485026747605497841882967161454659543374665873465092080486507073079214542778665334604421475669577760763059085961765631014699733725563267488269269973780007304874149878252950742394124603469016922684168320661907617192666432757814889977159386541583678425826932460882809761066967076326187218898572504598862057139698367798137755050121584582528680202824726292895249942158931118080478131223616727956356803188462861731197571686587481298380784378989652497362092872364510686029993148843355175727618493745927416694811194933610611911442490515977821854400164491600058696405490835366169987912551925049516532761422420073351098897807100578100480764971682001962041421754193705688547317556662310862004655051200707131487653863269816420809510192485405710716488124620168662904159538336866517281284351206103527044469734177977445530620362376932967267640468141767684152205144314560256830291643159966948348400700724468181832077307787499533309231781709704784443281510486725448220821732591619534124330566311399021159414994667554670751626452697042082331354349195143371838266893056123901196804668880093507922751728758059701789814098076651301135173888286404807843185737504582645531154113986701747088798106850497492196829149441027942062398901209881424547922057132589844022335955279550226912930443342559874738942730416949632687717808364873187790241645879506286478052153228942561348320911046974958473385469642399158365895808362995335717352847798657622759049129761862389625543823740790303924921336459258395171081260749144086930540056911601333084058059835679335924500421544916088138706118163318660951242114341335253697504357398876080868423455439647248062294761839541932435590673632787846983204183150236971731399091586990400540230701581615458946758685353249996686622438313453175213727141746620962366904124338513041976266415407600558571737350012018689336499684778388290809290348437773644717203027432813161681423161421421290807305487249876462920805390030215584163259536080636522892362803140157702387421472451121178922888185578375013837335409512229207541139523412622291832617406967590709864974974198659710717997051753829693393988759049325013268440147046141127299200930937122660716823683007470012150184860261772316493104355068640021430666561736502080950716895590899059355781448393964395309447424573136847440112804998771322989787721742041655215810028416402605675942140560379270000058813253946995537864184613142750698971097161367190821569987283377978502243484309873261414838428230365457064555199195877064508552437989755443307765170026282696748084783119360020516104920828274700304158258773952364801880815738901253041204738166413138425515721725124430143799201335085521012885848393848932223781855244058388191799923644670463176387894863665071849028875740099638351521844209091039430963810580345073839930068647845855022631874167624300664005963447988897565996783970659870672037119554731112213781324791634712757713984035519331418551643371213732971628378031554872816182823107898980716963228598071362808409953966990251568233454649606509734253299917683766995461128586518149849612065015583166496409246911476578618618084504092309203788515798106200220471717546730063544102225739843742873477761834416850740184926333818279725554800595606933350318640613142051924940747226162935298350847445344151213540805091634877220353693666568073023664847356186638139172940780598405065887151600032501371333011052180426658491662267478047691823745338410741795731631023789209925569207952057643555674099295386467602462195339402715429531287435745385779589770026936197367464025560075736843538531110545874751841514591226501089730477546492635771644311285862224366324154917161707018854609662243692282362783886916322263529997846582387811999741788149144215798020372169593255146840735156774970634100852188187551537299608785777369645606579659880767440715258120850151965281601239885209048442376016281351765200885317451061576707961787425131112311381388445404421816038969308918341552790124197568788281998440695316548478198354724868062945682018237750771883235770918935659994478117166107011807178814291072292151145394680222240582791291766583170552931160357512404912164614627605393690200345330731877983999564383319067418666563957149628002002297403798599376642029754790322022636204975567066154603930519080435830523534084951416105463603730049229195825662855482204137273631105475705620271443402896690682274974918841342713157934403958240045416957986267391069066037830352416040744654635320489379137041585765306795635412421337003528058552850210142244426990415902905671119398159829699734129565757388633752516347794652471525612592878809774739441322153343843043079003565246010144229736085096261546187293974018483957559094830185468852394598860595089236964840043142368260687955434475860606854549998021196162863622441485279652169589954775516107077928345733970846852821757500785990054376183478105025647104622139314422206183494827497490465500369875425907086437991229307075834359150910701056186507153725988525254454169731023374470427338709104099618041568430143666513465235593358676142295184861614416269319582151661078470038351061070284283988248457420606777705018513856806074499756312496850404376980473691236440701236568374822595326178412103232599004197404868860821861449827123352179268060534857877868915128949104909034629885467476830833717480017770864756862519320316054602366537118969018849065397797835325964967729055906990983885396751585597050410683218427127885984401275122241018290588916357112953047090016624355761926471123845421865485012912018692799991649530570720469094385625021993047183595966624732618028581870336885685661964476971939469771615356911185587698666562556109340724620524439981884969889717509814095313576255281954086331208711359101656373657552112557940369431085210324809518031018705570253544244604456119584042509371891631634387405839289113552299020408747233004776376069800547080792793916437964331589449106737427917776841998741219076202023711258455985673966819381782128336643936590717889092389689479234370895686459499512204485628414319055303789739684994038924447329793579851254299977692140892650899465169721957308553214786404246074457878170544855507851916428574196490294767162896254980872817253788781070067733766795166793555055101121492357162021983103357943039068619900245493888124489820440293462401315841696912394969964171701995638081906666424759042509221685127938865105288543730534056061791981301318630759379535427715762295068513556419341150581424279041756384446098824702940271930961353545576997221690678839098943547070294306995517687792272170479877777151097640568857866514403864073270404926008793128933434634253972817691521372261805897583102895083018362401405048399600127978666230583402809188352825940261974189258169423073050926386548370452900568497008043082696721344143923652099272850655040915349406055014441706632798069877345500548116859673204221319837552969118585428155082193457039304416945640437977486035846929015505913677623161985985497177386482715162727647474469483777447037956138897881869311283329387135945522269259314694955790573620172551928953443352769015722772609067654924926266568859495906142924804089047212358697798530104242847022456658287787321806973500509199173884228255992668039762854962695063206523346268199041172959336652125723849360198744928670463706725296545890535797401057541729834077359268645668805162129360176481745449179258241684668501372770148229820768678636705002343444090490266434297263376359542588559363671140560092806009534422119582413219265989915992314119185377413438226858938597835042471297527635382456674766217471077501649568549729447225623379464003895025322043780412443323854275421434312744129650886438223914120799829633528286428905804248687080361309658594700416096692221222373579097996341487504691879665426161457122542845617354923600783136585267930235865745543528524015010556770516369096969798850636309459332972406491039725816748612991464858244566396447549492598481331892808192581862618906142915247339910219487991647964990980889714569966430651818745789014697332150978807306583863990035238590149405501954827342147511546444949646305254765289565063722581480042120565620308743092731252402628901211259339319387501816361396350435133361402638709222558991945572880360361303546913402708997948190412814181357261250515358486183799667116276006485225647825513051966265042531452736656239536835680253134127613837629860791401349703434841942636726896290661275889057663588726302464158100599626593399113173352145277487662069330690921926721529617450238794751925352096737703331509645775131859792521957467056694617663901604524745632783037661396712942482774348582239776057883175411024377668266463994103533374503710255934827741109866896927679633059635345949002609831487235857518699986182477418358940012561021390663249775997327564177065338289804796760424363132680990713877434983248288676579419932173696390254342858195371616184187108265617643711834159007536168357128799566845415267739195241227988932805958894419994922706626743292774296919298273180460100207227772859004878903557322619183056594876657898093554016467445138532109372523254306763506545934309131506001175781246917178478489093520338094729419309992142364634372646012089255767337023740297489030705332942625979671002683864486553667197811684052889799895133828588309944866472177832924557413577559562328143686428088212765397774365345940327448482155084396130052508396997645911304212601348562617125010481187923765187681251968407074512603968225801852046112593775994829628875477489185420268227871922650991747922252609354679561125083969825505268878112485936910946574375855431947254498997767088383969265947630066266709516042113041449686667981027179414218956836636619851728469251175405689355703183577195489842145120414454243860161139733429340575205985392741477237393301979299710941422185657971351567060015211765384230261061678794529804207327780857950495298403940529807071540251523498201498834475032389150735193527365597799072877674063886131587201307304055611330700186766326060277911611387220158828604921647929279943678879669176209848621510655947149568476221136674564536238003081378508847747616649622857303158602377156564287073102180789699729360814156036085739107038494385722197366761494146538282681907440141585225654718701424422666583849248724747810606373283585826729289160652033700086175986993779480243630875706023193850284179853072995394392681813047311466519887513266451710274374789019360867072992585685585266175842214857587396285723317880842893819599020702635652982962599248123808297292770491740498606988400954635674578741676926642120775584508895468511397773750943203690391095404938680558183816321515869193834623444891039852110115682058864450790027829530992762229903959694188073235192987490996618801064275970000717277791044230788423043916961349576010407268031849257043180490182575717753036072934667658064751095359010053333465061192123666437027494266921200115735176673769651819319934262940751516952148050255021381849156338175648403151968591214502163949876054167120765980797662049425631795424733631296202100439113178767867684522450796673593451469028515509371950275928666860688872138271738332085790245994559567599937080330884192140151218436013865829902086502632862305848127605075663437048318754935365084731169318136798584012446317610575051604307047410101098138960971705561892001157104941020271398103524385353125411767270993744841640894797718849020257251027633188149339831649249204157033957095619419048009361688804565349081159208749676469902635641388326177547851379096837294597331145384142797713636769490344449851874273186736599128364836744162318372416535807647772648418400442499481720920023812528458256065457947525585000340447459237007387641295976189751397290559478696856913886620115552920887035636653199683922850997046403293201191596417284027465244307657541354882545733955256355671442300376094991304379929199501096430143920627102500675968631157466935954231106039424169813805237783185279040230117408859634545420152849301435744628196829561602282698860767453928921423825589116819068741545905024739255739359278885150181193452008083569072183462886425457646660903695945872823252106827868692871319384517103361833365636051958296661580872845319211158982214736967763426599281276212712826848444546038604459779423554995292807005648317054832830940777973882738025717766963418953279434454157519652252178834380211250440963883039714490136560418140748922956263252631103799051361600298846809592469634829146519679525946084477766586930379514348010991350325226337136780299435248312571435204247420576781537737190864074662882113713954328845422552800552869982502883600660235937454884493688028901897757243869902234037148507858056324839828142422544556917465880027679168768926402943450848324485437590524877772652033237654437568205916818424143114459314820794812344049378902258808008972636181236434364103475592542163935251691247055144243930462675244579854817196104442625414113996779830674849398269997405021207474413939868977764888977948428602830530136752816877477273403962531548436801780045791666034343499830831479902344709184002885542548346291650161985540789105209971052253502757030472853920736304505701286252094833037187100388714486258581348355649905863957115512947298747382749519682086380321947653575786135057858257776301017744810307184139911507575215413590029674793531941906617968581479813794969120466193481955212235004484295522771079267023604397177560482510837402702779707156240182386802752353660713410702076065738187161548231715624074609663951515185272185664302611012171594585591359584261513837766529598581722926196221052169653837045676790061499005743515161493506748274077986867211397170733911044833530088460006260945508447759690904723453282809908464640688218983927587496389500308244284942917650061853081671022544199484226616097849119338282793541840003453300629808551305047365711802133286746785253668910121636218626948970632283154152388860167694972548785807736641624813951615326312054775917968043396063969836052382431849670772450622711075000497475308328048012300448727179409710611695282901134644911116976508870270511215612834814223866734471975518005047641294803554765921553768514394762597732162810446091237502458482787503031317523555941078844979648314691459075124207883674791032608957693341768924279852912052214435232805265080553054228824798434220922072056132958309952650034174044492843285237091081619852412617896707140952988375696460262793685348922209433418406601716944494629638395892754638891234704745304114769019830800757806222745134036287115824206240906617046703348434776826418853682201998823659108736499238410509059814691645556192767895037647936784233369107346931892185069247547640474062796717289559038451651592901287298499986088380047603076596455051688114921573228681123531713599114627008782912759004750217762860047636358578549286371294469251150361471918549693832503600876042294991915607906603381082082443917706675018905793450191027760269281204369837188616542982816543327955106827201732341663733454212528776809961253783460312647597880522764151092714735716053107046431730198712392816819938321654071556529508479040933460885054318976548888150055209594368864254901132827248098907811015763504045592245770492997832805127723521718420830700875676036023170650549393663273835439161818849142141665428406005935947771786168805095265135366064923820759325658665342375343914795690488097167982429093397131777714902288527860058656512932030639047210233586224306456920839434526266504874635285969457979220549329434546544393904416069820308109624463970329635916110020773913058998175031988223002495012628640566430501731069157653914345450879974000793058514862853762696354972436360194385556762162075134867210933597287917491931010684455449408982740878915804753883637585347469867447055704972458556742937369723004228339043187215552116273290418716148699920521963388345652423165488480885098542425335485667877482450775590064013022210463001189812677394886228983360252074377551819007229577128822537143259442324053561105388472610629164555012064977546926408910196136048515046813481655967741479705056950271929091126034400540988094586973101613387121947154063062780337985029493975578172002897475001177470818322079557833733411162466905378530743185588969562218403186972641371229692031000480972655447878224476827433572948638162909279102879520299041299984447653081076345825165784656874967439598029709811540648421423004085404176538123831661861635875659610868141471079662898217693666600404535726611531574867777049586926503019526996911688983190241332782246836073734670537704035307249786215081833675273867100866530706658935476597391062249762509577293523750118079860367759203394087224611372369740546508480354008031202996726091433238034370642394748335335336282768157617122218955906849970914925543768751804488500667722986474122980355418935252216130462905095484416182074044657849735076518699827184686937290040910303649154779903712737941383553342950967468818600822650618184911219669496462112165540896365316466283709157144382998117610574656447737546459842069194900726587531703312997709565504596058194443825193086011211344769918672909696479827339008784178482362317112497362424359299744999535502694543457544333199380636643497705335613340478810439279138996804123495352210325858513408763410133936480330580960112552239621225193126429997273734462326399729261275073656098652722549412991304861963418641422503087629290094348755716271203981540081369320028818864493764580240192798528085108827629043335969307018016838950269658269752984849827430036100049872918703451708642164352812063818317386578094272875305263405526943340665288131769202092874531163093630933989184843908820858120167869628336822119422128343044045415846274348407912517806350219203189361779909881747372887224360003941493451773982811742514728979635866184061825544142978333816491320504407613832755569209609899822780849148662969492756082401334431659504151223931021675792236046574413584711739534434528102790735009622746363429777109594727564031865809348928043144964822108782071619312053943900097240590794010146119656780083215185692758893028201920964336442887498655099774606568089273685891516040886221038119105573306314067135206096965376827566197159973631013821873187604621233746510258777272027737378088966443901855711598428488037446992690268607394104313249786395918519688505089733257296757991472002169419862147780812535391487625217919711534845092928570839596301403506711040894307988671728219073417214803268842032360315549570109198062309498131384097393442396475052065501064963491104255743956166984242330275632747093757874865393671733918321893488317473270468072135432782553812416602525284083841514016694631619641701677093051862508922796549365897905728316661895734137801241061695745632649170398290880270177337678807108185327259952275968064481273979857494483851168014293237879329696681339079147939448739440195610395760125641999809621141261822672764086433397575722893067086160281691059864601775634126868563157006405818879642801429674798994932380655793615959292867168709611438078350569309531291763667276516123560777712799401777263334621510130864239965459906447217289618471949093125478998123838012958424949083420259089968790536417751291465943300655610308915560473995083497701501987434509254884275450899066527945240379290880486787869970002652083636266927691483447532021392817809221583908685275431909696210195404145348791885393864866679265540876329508394173210440533777419959946783736890812494489054504690937522611120355177071275152819265785595937394235122926529443628501063120610518743015858206948777906208592156477491758936414430271440197306654640566890502661331599952758626632244516830002171651371033608464183879841636226773666957189631574428453455281185207772681242807158570112085399073647301829682017626006550936324804516374191819964870457624470824428737691205563804715012942950453711331986908795359640469765835284728346438868048736677192496635503301934936285352558359046151390771027795164308812074326009873075977381647651968016511986839448614209914851829549360962885683695143968310613871166150233243594057912850534653889116716578354874475058344980960376542197130473076899690790155696092112663095040692798928219171059586761450649737674898560236832007763862459415291525233948143299192615286032909172985643653379127419564495815073039908658330523237614117044773362407492257127281065988215080142505346039307724673436131045514001754169752849519551617006164046357576115015204990182292731297395817181944247408884931180825780622219647998470133409364852081950548315530208136057953369537347140717165318353779645904686945608714767409125643996051497549096046412043513244018346906765714574695728046057226601008088291698354077348576543598993856245307202887237518664142026098880020433033266277653609713965867815210981519768554356727004801867413783319320703429596601892718342828565997197045930067293615122595905668761989789413057646257040284254871999933636663034832455866726716818578103560789678792141669987310881544072454684748815599445585291471972974139075826762412918691004261069977112660119542916659762756202354882063090218066421365987876168533244952622204830513669803720394931431766569131208476612104783979944784835379930383828048632565321268380392101779090744306681572337549894105022490238494043974900615921591161594122779540319314933130891076227354316194380958977185074805371603317816948350491311927965055542296159123116861365134394306484637488296556036142337287056697911674372908931002130063877506812887490352736174441524068412340002107317599970439416658689537659267812893697768445098103254194009376842088058340944841007643402634621091925577607328197212972827386268927314957103397874243067533457234907000945815862153148812442852684754101000772016330555423698535846972364392437466992719335710875482870055844035407316278579198818835832314377914336320262099621292114605495535688101556953831795995511929317999246866921546062036176007659338029961395243887665793806148868469632729927535179899446362755713063158915683003254039265739026047042936231217215337948984273440409998425138158614003553501277234748771303096464622169049556881747917371639236691429728786023693525315140745803495878779608001976944078606569634350196299072288363513125969116693879024272203564658851466680104814587387651925819427565497042065055670551573707762695400848383281440947499995468827065403055712231862448204271995361837362451643493484911875680240400206056255152787549862480941347039435878094897954202280366445509308499901792244611396443939994030569811296436459240090163493820548403689726154890522235098658535496665201224465963370743173259102693928005605903555608346989989059516428949224140139304418589091712965299334614745860582450960956088578736847878232838787062300090743549624444125542403268692408597057270084111552575693238452660812147738713107723341120957222712897587402048114539981396812487410266623015378798068173271457044422880319543384190078702560634189148870056462857411840456599674707240537047323373831710574462522811590541088405575711622982157968514804527232758658159490416389450990582074473482996983408686525138945086413902080626809789513782733088754925112070868513510156118302255677599106585410849471540922470862672117708927776309641595369566805774430358606159029147133403653548154402460983246568996938480134579919049511862705030073402256465733818151457513034348229088777361628688929375299039496247386254378333474233247348387363738586455928479820578990696356765001864846845393210152664552284358031375134117364931456668215814944418025383489264245524349242548776598047591973312143535529467556555397867398043422742562769208661226032976380336789170351651369634974218543205388641723590798409978152088807256044377926232393985063764021612995500071800646167562185806130215562284818043174116109843951801771369618752099357374712770693147064729342722188576625392037405773777082930789899626741530421925280622257986745761346939199960524758347140581081239854009267916573386026323823614556872014407000480527322668274029958046024063143473796600437596757589344583357890444881106820712496430514616486762233431984994958318940938929835393290291161839622541940395253416286091716624423419730381713537917675670874810503549951732153985101569967141985058292529955463883132133622484461839633284470282785092805316319629414992343658763739124706499088858721072873585115404677006908047400182283369089008507952795245682256289322494772004499718635306790398204514224683989858109202728742477033632553506441200360672202612381127844453017331424135052889904887568651810860353721174717350097059684529885644384232052234558483111618321844049099281100974360664320030067572820667131733865900324283629618226395450014691573257372246316293898778733686164718778909068648225247108133794816441975309992439833927809594876474177596485312668001428725818209941312735381201415750631597667595453800336457302050703860555116981666435350184212046264641063704250913143895065380926294005839587178212028917620280586941543708208608987259589827234670672122191325471552656603507893741170002316695503648645318830317112565835722780987130102869485818912275396848314304172625808760088775749469591303297470705444550760680393740183524071755364758871200076931523425659297327574991109429451074869019881260118925978640411049893490099049667794056062390517069207662675255588957627713354371127281149002815128909979307434386395098854852303649193219574283034724447504580780718049963944227119380600282041674528585303536101166650748468166764129039679975142626945632232162483417298947656107206584101265079778627875656554834211082776001997092128555858345001430718700791793332297846812673992293853941264140123465570906799457842574260174136840744844312995790692163738280258037584873434122182222460993162952590502430331821730312209742179349456421478953961723157945377600367354973586068907772541162842474695537799049580963958371905500617390605654849350588454866201871941392581998470101284437995942146207021683702366035569701616517161268803662629213754873950043737052657173692520678374251680158025327081624287295512433163963053953728448772596906537582090890191074602004501038272638971828867389255114253797040785355122120979740542174634193712056361103864072962275212727873950283066985856020925719075816030415638173158400717243484234276277054018727813872696446634378610627287540181363438727671904538339848399175874387593167498660744123295704412798345683829375917359095140485908453334527234139013585460936752623116916591394210573386306494319719566787209615912665470750543258978028058825099130942417844883942941184076850074786685767847795305380386118233737126793293934218096249907120244616418092911850684706763285476184998341907540551850179243294431026112400322208091985382226457690776889899089637951822921940676915513447387732845735046842184312355483013873072441932409405582606443368672221779466562211988230766650107744993980803933343792790344824493753725117971323435978561559258084019329147764334934323941194837275513056508312453938396673461208604084348741207182064444678472774214789329947265823646053523724414841869573384763501892515540916946194305524000637289600455019425204289857069084877324929169882846249587091014661551147079640083717231936447891698197915253022090385478280060817802084940166873930029549331330651132255888888639450539297047731976379727809737551029349881492545329620299092094503906187265977120953043636819469562156356840602576981362968849319382276560576020315238657818340820425856277969099051041937640111380164569255038831105049677810189778529862833125535853263353516876951909985334128150566260378170378838427794371865813769922636689051035465279957631297803768288611360614785516332323484381906126379327526760917533812131093710702069275443407427267842393686354593048497609218335254301972924201636276948814932268131825604514716318344938304602959912753798964761184041155665710156471696738041952310351446130238209272258456695403082810265531501898798006399815184896003106666439487409561626482841250042242301446648396773793714904519389226399715701266138385592690612969312323005749529333650602674731392735811796363359544519454081008394811469563482508401674614622070025339857731905070510835200837243220716656397463064565977996178308291289800577162584726038871214426829754221455762011671612741218632667135300388653619278238395586659542454318469290093987291779557189530747845034884689308510224823798489570306248038570038690936951625846743575018292388658033015300534959994242219300151686872997447247687656870316570391441395721078742952591904665607904519248123357462678739362289785377318119753540329195194138415147807509654874789682881499980326947396626810230746313451567215654632890155704155996184902757488553831879877799205533639361806526400037519507837165490632676964020808039295343946511374612974253439452834387708736265468210185410523003334379027448345559941468345437038838983703625739100321306258847725300237711619481019000581061267927319779211697804876621426422678217322209324418670812349790336018360710716304761364073592819667974684383272625148244816312749319404444453405463911355714457999185322601434403711068027155062620786067246579850428336885253922115813256454120348659479443694810525945352681162908919186137177222235198715377888377706852844266103223728498971588206256236646403452511358846526391604507432483347326655632204819695332532694434478031818615851413238600544020183071913846890138000936551941780122814769402239327190067571115432445107277879084116245005064053459227623814502936084186902158500568430394528523396501710657058243094624971396329509635306690435075627566012828943173580595156115564797433526536383580222227766915900110808334480646257785288451728936399089473543615327329922039551894700986120696358421816354605710264696396470179789486663896889102187854556652403585847381234706969738951167772960452826882414986223857560187497833774041643533767626095903069501611896783531919633593274601024463312337218060567368536418551039610622374894891355531664882504306787318946048830344224333831212143761553287150114986953896698254535890190265535781378144754662473973845126366011146641449818192698045048607769268783766595511393296873370192174079815626094912917147731203147937632146569060592718602657504828658397170409370038000316118567423915257658005476807259634692978460242889382957679613463517992056385610705191759249856588821108280459703773771714734308889979193283251710083411536642288415213416525210231355235255792386465203666221966195149285455575499638076661158900294032716630159959446002818397000033785194006480555220134421155338082120227507864257887931542144824438487917121142975031343397173281687741388174963985818305870082621992459170410206533998134950745024068664121789370635532211053908584647984661133336105677460932469077301838718993911251982407545338289609121796792257422577869345130623527161729491589765209563562326838384858117529378837283182140548122508062463185109478039389732811868724948903577113512182952866629204907695135318261659529958450294941103821495297074756437219875018857544978822870964815503638826291662164623943883610205863676576009170116640621932822051384084218221017616913178124647945536404547620439822369468900107974974887939711043639500649420898070116617420280674191869371585571430547491353624321277113464332461554994255507223186426121333455987622175828637654871082629634923399960998919044109780065834826515478891395627306385487232813655226617313502041459103097484186003903972469761765880486472590012971846245753706275491522705127417945990551209591110999557810667930845035538040702767476833577267682187816800770468520959603495898171546099912672151823948167334913245934754087841354617009687479477683187756729141349561833040248704764488916062842256188900691451774072165793528751919161225660168129518493363276824266004354344988194131807744997168378868073364642807592721691265292194222078057617845171349730787870065346140618126550839558580409529814461250012961776154987815461169251934417343754250329245059544289895571546724772928882735164310099560302419906437131382317542017205065416601775626412205997791299855838011589569887625189478209882211523285966372887695739605608728176729841506431831290098696196642502812661242240124267985747471696892769864070218048232939161451524925094663622477934810937761428710965436617023576683046394597630992456048592532329544887908073361178839789937319048721099721982384172977924119778291378811477118930224122719735827601787295424039903117151469942020231007669542747790092641950837725422102232971866835862576158986481248272451684079294274066290421430898444662019180551979040329949103605394422370255531033778277350893218906505833782811330703108151061769996672576161498893598788630216432180289704277278157917395804072922089459192273870378856381377794696721465803919884044207855068634719098881145594555725778795641692177169033287439530472961714991155239507879809148759326234412489326292880918380322077273803120591979512355378199860400022081370266807791833294683555625163731053750440169506762507484653308327240627807735196534177848325558628855662175329391416905272782299613549346968730704742433918527812016265646708373795232110705499387205806745746887746590629848879744079038553148523049455295713667269356604246788948137138100427089547720183349398844022857415408989707405885037290427973422338974252109977936084540956994377751332020532167081910609152584934664578462942832164661528265702330555769492170636766678096793902498315585155830805355704665814521144240677206589404358075196020946687188388338964063534252010114066409307398428172027517916463204096037770399059078194210766101208782623098052394820960190870805389712956548053187265984741331151341519395324697989123432471057323895340576551559084914802532138247110095239276568114010108188410754849394767873646473669187281774863273040148323203678598428122168419332492995940731488068412325553303153881873352323459424336357262723276299478839594213018382497557267090367945463279716294497834822380408713716722944944256213683806450127357726179644784736441047821394372164528069042869030486528670296137951971327237063240767319865694531035679965610291704481938173398724137933561104174831257010613584643007110508769152797097246294682242346465387201919854735113505352809753469763065216369631051390425046734935005242640728006093643452849131936703362480173815931535007050233569899180317598216248261110426356441783955859004872134978171555975939778936724807381842219190527602353278628908039117717828209608651713938478963916567572207837078310212302972241231612329075114351723647230300210214719157995483170712395272193586309174505652057500850633678023798943931958173241933842220831395478040984673480163412413204047613014302010585167546342851582698718865593729133951015971204148532648196804785105256256933806771047347055987687784564949612061841656683387828578250116724247181145987097441888578998734885346494061538271298923127673208866722593920220853927336795383524362370983360695621006133674677792503177690357317058424016071598697934215823874364708375368649754261699089219786899910851298084558994495526518430955873910698298832915533071561901892084377779203888639751752205861727399680665163568014243550101511290162123431209462374944390809480429271067432869296036821075246623541978900618454083800944174382170893621969199292678365733710322758192997762486503815497320460665923017900634526349684685905043692692492800782337245189865449262196983318859718643133072884396886148430710346162268624290364783513828171399764959360566003371096489511769990760097390703139045915746404745908573728817771970753137811605140030152790790816180600724814984978269603448861243056657750175693619174815325744670317115724786543864964338091077663792480866361659739002550570287436033528714596388970494669332139709449574275265196671964730758923599935747046552829998153219294498355515384841799441786161654755896555128291013504039324274511173405486516353085011119782424392761247537285878461710623463867842059943650374297841185058211423505977068877334903024586617392201823036921444022283319475547280116681282807642329134236872364456665947452524415622745612176548632563485720176239760522891980709374569999169193436714802284813734549831585051202921567737479429930742859099403883656053721433758057258809839861171381465764279556753971031271219746214541327021437788067662682243761677582911382573701975150223144358421723647636062210724540917558022956593182780617401509429497546025590279175628294283729125834479261539293610950684647362324975940817446788330888743017582564716949317703334498857997123680005719544013685228637726145301146982609408265314195045820832604577126274051065382694857479940469041958715854564575477892313516288266830511156640973710576446282709691669617206473462218182269515233311098702156370152947780856349037566240380157214865652499487999671236069444427357124889962697647983961614644285967820508813439675265311727710789168889546703798968086643957365166564618223754917193394176080119509831778879546474827509787254420931582746609065079636456099103286803321107747786507436631077386240580886325825777822770180443333374616269604372986256765132968384389553918928549511387583812467353325692621890517764353178392144685780093854100421640301302229839425702108324861234079848327095131930687293624794460823911160121004342512403039261404397207708101563440748323187362055090821800202085562991605274474707479991192039195775860161772875679798334509817943882588208442105424958422511987703135669228311595563059008993430180659009337580198333685401252149007580246554766573284089184161704275683672576985194390336623768014044434426913526024089178416186131047432190884459417772679323251043239951462580493966965027024860527418364098492330993031458795774506028661494615502057937091990812373452464185752773332010748846469378322280461072118983328651282974515758716510215590412396365880512763827699465049426962348460307953851368064429897739252845929389688393931552675319091079444814607084402721185944895500023777914087829579596653719371082510460809609887287727730166702831117263939021053338405722821091573422712429827982656788059667616795125086353911223946167033716523906964796556865522343046004418739461351631693738967461155642662125587727310885257590258108221978187784287360910489932064622847060786290376845725787880930704502551310606817542307732811219535039796868494310132179856660925622120007506007774791227025705911591795625997175409630450908469073257429088407438743689517727738247978837266601798858158355020587683486374093016127480086834424097422424248954739469586777983992142449413461529635407737165857992906465479203048971843017711200620601810910126422153836321675995504803591631506243636177964449047839869161216539602181905923214214121338044366868550667330279434375258584180643055238930744743642360999357387237537334446638426962780822021158753361825701571543681121882664184849279936213003498203664160953177633957987342743944098513247758283508207645365359591168271154276852285998054535705935494471996775605902379067188549970872913213201392730758488120488953275147462116800877407850467983288404660631030959849493473134831354868298237652250046057025645902842766581396094770527806147925345387650171499834913489171365834377172066709162009130870814359298612465622746038867260185790288056007654363448126115271454488922651553361508314987670733232638947350204517602635582982597986254378493318625560985705546442707539761131585367280810040164008957680126720604106414944526215234492197823757006751689019642564852467269865316270403335750101116111718207701165011815680303245316671554531745194033815651383236642512570932442544076205818466787448171193143540884535752548769448583229486524641366135639550364650858883007078382548344581208826469226256447050417840425011343667303573829202583114121829930240674813642915328237048770538260673233567014524523920371460443341280433063676220499698637411963777451025482761657730052474218236292745266868775655668571480319583467313611958296356595250857254342813704872638982482951009293799249537804872159747598422382674048198329107348844857860393636746529213909201646526847639316051854076639888594127246996462276143613217660905314598848820183631924439656678561373059658815300560842245672410149109619182087056099468234710852456195947295331195608503034403874818092173833662402094169106486799984591290038621176455528978677806339382600591454946476788744480266508027004138943729663533474243347291110547234323638570418503315579741064360796202975156479407734891682268828788109260058040772303270151614045240015087996973058914842659976970212323781342460592752783960425642802556852893228155717146078368672513790454628543205466899082096544760998156915276471724387281937997044953086394423931404045762999543044265327430002310134958742648759254969432241292539104258732452254705060624882642427631613150851056222226360856685137743156232832365253169643541824701501716119432275740157329869998722273777978475763864904187634704857770673835674391510088896551192748661601430234762166463359133073633595548596068517276404520855949921325687250227299356003512030669894514347126639951855523315505684232606421042464862055024964493512529204165827391341476298160047902059892710039296543828850029636303887925516253114189924120090661807176054651765855350869242716232765565690200079449810789840380940892002812458600688839713458493459886300492523516265095692656061470665302581512447533830487178212211917900425517796377519105742388915387966593981082619340358793029453267553875661647188895478892032766487615471004393438268511336111042414361924390125426130507972343881305200146251067894009501052155388557804332628027217199980154406255426713958800039170170694957383448189532321148724165333822657386872093176751762555539753920693315241209086740898084312637396125750411271304382489688936200855822225430312654603918932588446479857708644195848883640361298100752103006911127252165085822930747845348743904831189135382725608591597026415304746067066892121613082177442934769122585447472902217872967426314484597984245504344799157160476402360402586154696147311267287870584293152406348253325616425206649113919934427594684639635425457316721084812926755642300978228488413634859513831386009264511429718798289463802402085135568497955802726610492031083633130185520377143843561407238855296629101848802045134271315075042220243421299979319816266159185948088986642926701647527684094462213851925766183193599810019598068559205489023484519344240633939808538030207528792572367178075741341963323683968087840331768588525026419401558182512422885940513410148268865148730753122113717842354687251563775729130363229179802948385874694543125409510477733943340105592597678820356900116826237665714395832829008563169486490002315579317168011868222620749085722826412004079447547303218658579715251056552691033285134022687129026484362422877216099685765132671505405399683994669049005698525593786355583913857690104349343880863182841418437287329353265661296250543719380452288031509814498036438040928131459372437663461960958709216470893739124918631087044840846896961807957698783995847740534992247833192108333627455530739094751120140931800462908164347009376706784204523295282064635320181931931445162553543297005842335495565588368169328868162712360641492700694765642287995730520347325264209571828692623554519991819510010131197174929782449092468700107377427164671217372362565072018890768592672979083282702026648304958606944758201283361326313257005452640396072711904297846499523738647233129766483580978236759910126293612104625767563795314382003296474077499651442678987895016617494564270045789992385339658028480757259711290027173986151906289199165669491947575216749882083127855059699515109527996272407686059904715575001767064830397576027588368560768037472698735175132564986573836542562136712399960102242186786166610884665774724889332817496985825860020045878747282640554397331181501384385186509558205666266684281063217353107602019760316149852553249903488973066658480318371325752514237276175889388718056615955586639384257380085200145378278942470922848342089396865381538895991502330932799987616940114285058639104574680084646193800428327373552172256124805098625011010117534623557115368882654283930185763668302305687565813374283714234309136688619337387129093571488902708295274535705746611540371387101648901393507206910245061538074571463504807855906296554111292978523884214798282706906834999039953359017638168165950735242215902810683401903965719232831524839420691581426022162164066238725833181568989944196480812962790524714909315243373970594614326319510765475254038668212648419308368875103031311356672916688485025813268847822489207368606515911601726609979187341321866842240007337048279602249329448336552598959886204193252171298669675894975054126495903151319901710810915030503177864853755715265968609161705186628457393068601382090462237180918405301268483996332472796860368582424781463995449601798784062578798677287325630534866489390141618119913564466832987076390843631028534454877248975533700341889969786435918705272957824662380376572657363811268213419959262458901143543393757119916336629627248693281728599093879089508439007212720720175189011895527083482479044496226729904038560249378244365014397850425897477395111661160620100940488800755927572727609067733383318714415461382918834541944025492807992163269607661937384550593417245781345023746935784652763461534972235826311005893943067676756188321088007859463664361792133256153339121763514713986005392921390929990710246969056522712410277145891582126471932307781613540366360637257619929605766862542705956828566217974433645566918544642494137774822052252433135525817700955764307786953177014699111247358708557687842573037136889035102185877314144805776854798609723088265513884970859842636507153568200635506339232794253633563752876685187705050949866444151574337369690302323010603075279467005676561171547163683611138817036978406126865563767216766475893735992648724129823132252047108585044573552892437636785167688838075781432969806688987709986711060185213142957221154464286536897444765585609857113438495285094127411355181715749908504088164592846665043246223911587517563329598658538891707755189057246184189621330954647377359232940647292252676836591515174560532801430374904331768996961006625794150565072056785416889817482829385914979186098796048951730867101855719330810197723807209721650287988663378636391522660860171182145169534784338970684190669012686988420223987522915924634836290282556495089418441153779408259631769856978750898936573655288474971686655447722825389418400922026058173947253404416829082067473618802586763290748653484735961855563629188939831996975139386376620929742881327255390353733332020841099171628900248829017500551353411209121260887707050666549238602107003342033176421052341038887027661957550179514845895658552318018276041152160818541378640720724555917315653371484275886614704474862428005639718463727348609870539306222554614228147810456690274334303588346046228212714399743846795115002225068983687334098137942941249392751953564164079256458920648490856537301649954912417321838553781589297532566092268122650274178764393016978037954960450144835357893145953367607646255181373626396344727892614280328813205768852546732094432404715119185946420840735989493814153900922259105358342219432654581625518065093753201119829836869354733074571053559744707629149324831303881710262219558097077675145418103434498745070685360519992379065314927489258674688874187060762256188613897657032772498553282749196653062735515749181652903170138780820333830378151817564090969137758887848369716601607980763772190979293842092920811736465776015315615587353092511492610425864217063755148635840522695664108721067810014678215085528838115389429943483590882997127461826991970078160012643179970903960813580263060072822423540410191679855932477032120728714014485056467784821100357489939576099702689160647487364509431753167650353273437131691804043842090771422628528211523727682805345091399286849556683172642149874211396411917696607409070296529795421487842485064435206985630989215087324099814789030388834066648491215102948289542608364573748801123725139639184599044806915788253237830429746113529222297987673228449831791177873587071756091455531559278665675990863556834369769168732958815638837330021152685229299765142287043814618371070344446303618875663487946761979498038364585229586957785085686054265995449443697388240948255561086333104906999143368328255636870757232627148150023575182375693024970208126382423029148120629453381029804427646569177060222824191174154247377502761553398953498742227951276973702427780483175265266882265319987170261148214778039066533306975249434066011143737392059834843820980985687414898451417838467398732462026486909007540395938427269561190740097675500089700437301506268941114492522570395546657224610145293787322652221788197197388869886094207522676713749459219671168995659838555459063992835089150895722355525102659518184128930740335540884737375013849299892393445473000874961781973946460076784934070502384122383873076216402638082879235998878270113434874811371826822569373976043544402759712099823370694216645404744160504538261951628415183792223590413948237986998823279214311319964918010248955997412690814127459804038676195322553171320983689898564709716278636153633294769672833893240949481597107514369299385301925443350979481298448770696965123695853275275906967503216516133750421674466308673956621235579425621209578827908893164179344921211151163230992343854181797530303605504257693093309460960532529388131793174422276101168844678537504737157271474830436231746427490955979852910143732411011444340809858940698897045725118121114628628438459355872268456917674416002460412735976937942254983510432581678179138342096918974759495629704372762888364611622541295095532062180642256972666091213830293430290841175816858786561351199721149814842673554682097258298301346132741755643757503946262478560826656061484426887613579807926487408238168471171885128519358438303242923242920778482080927743884615439753806836131045634206019834129638787291694497687845973683172714774804039209129824668576029165020343781692026305689809594994559200009385413266012014320926732297152525925714163054177666482272557264125981191246515550784905504505669977333501283409982561558226598033804170374957475752885445622700565630185809532744278903752429548788258565218145382949949931385182188331318913604067463317699189944856670203490018677011096368035478700194259733067660667145989234043998801790593231148467708649464707647397127326068260158581352925793501689078995938159960554860201112819569035320250772803206474639552439416135940853774199577847265507249341731999814644564418514882797914677508307111032084609261103164601431201251798070618798970100717946041000882362397410137421143961610300301767723946992711757883706375195759829458969139818415593914186845464736390491420633600554741049186313855759271442841129279508832109893211626231619427652379840397284927305615483917883726368058855822531877999275408280772454855833855147318405759134078810146357650395713647476036208823297182437260584518869790623495497010364968818858720911056863679237617021306687063887937056030958220227417174793328871470727512007379307939955012427787941668789679272992289935661414662356631989574410063893201105474454969662994761015458685301181325984516985715233728486050287570610454161438421302957821107418530879344103140036806614231792214010731501639519486489265781539265321487683257334286646132087901886068096478737707240396245816147760840889808771341338044145478420829772719283523563281892407452569015963774710907144126265553468716275297767551613794059400543364493878014319341695434956716992941866066613748505568874884378589612674266872006671764472389769637356771067951093925458093411743156505160791110060839659941237435800589187702413814503484968764117127920528963604355966020256426958277878260790397510107836729427165970179160862254432179146152549445589201552182293991790248032769542128478494406444370286855705413778435829953498887117028707617256922646808483795844476212998804759672317641263612465265106572746421142241407751679685270504671017024182564264642818981543884346755159339232757175131391915399195056299938221244703581329441517330015387330785703475128332035110377721898506426234542935282438575031224548746923405374336737304517682924475137329262206056623500832029815458879094444888843936978926258109522437080519655332231457763474126593433230413253907752874032072839708531147308447651261921302354246201373419736088557128462685500900659180907086332309634252815598982791419186775434433210598034435253928363311536995610600176067035578815652429410250885748619874845753160209849795869626275641250231515445097078403783519220961649928083603775211477766880010395869515026025998503896722048762701796353090106370537283354029348106954519765020283651109031530847995356406033366676680740590474720336183176191705514462077663389166333546461322647025768194252417979875497386956982280001857086076087585866416385432491511438365322105173347256719971192011727001755079060196582724387561029622978545571546357531290582023654364386034806239725068705108671671101366120486319295216570235178435415749631001714531301890536600188026116890197978303592615014080849345004499489512383944393208927134094979152998344288596742738447486951174425103815467390790609495087573359223153754133196344592454940413750715798602225915949176154274694589708679214134542263069186958366523195281664148552453586422698782065381231219112485722109366360694736514438320817038481504910782764888735914404824991107703816792232082728489809513226587208591101195335842297661602811977855862192209382973566608677698227754286946140159289773578804786824148323061144208794749944876610748017715455085358097501610902977889379918642162134725217326682431260395913477524115086629474679477646283469895374630138066688839069287327079849427359838810481980527899336168767335015733131019725059401632615175269051681425257640032915664833948733216805030808225089323024495213654988008656694596233199780081185294911491411782777337421623075274565361905643467928254101685503122817568056556257976459615361672184334316247383419174814921354429748795507905812904229705258405883944073567444997096996286410911617322777429734838077877256011873541330458555606718343121648689244154398131848814544286550439493802900109050345301149557382290057040399483811356802319537979893893557726638319608413156665306126662145116103410809960532206371965995218547684532959700779607552351753566870739533462031204804432298310394092378014745618201290168387263637979280876418328821032136345071536817744799694945922367694483440630139091284485510736371340932013846660594973208411718577463791066447189656784814083539897376344588035369404098315202947619887753489425645836316961133671178475408174588985297006778797819708735853997005449243448417410319841994539877466502608082011749084837560781313528156067804963010060918356241413740303248671337769138700061525420436943546828733145014141310687720648411177236591963918142773362775883961790937136311806048656485094665369421471077703241987078219225203905927101799384325316575716144984424090115462005034295567598887831349590133102568658851005973208038742133278418601826636423414057625727566504967834981111270330581344325532439140733956639738996387087829908690191365390341511828521413873136695846707363354895243216949368087500257670105795566640307605217421347155131547903084585770298540072000752551235924887778120018214520965262798655106249959507995376594155122337258818967168780540250528752073209589103558634037077922125273813084765856276139269641713730035968630163329603098889459091069657728507086297459693075398904731222692897273766976917604669127713239404203056765285957394796185648165109823498226040801098457038849194344363412129070454337581864528438519098084188631814522745187068846967275695968362168429645093871113864963336521743503263161637888900532023718090920096963254892824563811448030855029656834719113129637812130129510603048803640469418586812802769358479430317845561401976972747779235784278790544283961601136350686442754565814594704353481922109337390789894526062053338279225722732471137897195091227070180065809433809554903084361703997994503784202681579665027965368996996020871076188020972296310220929799267056872843328193194633169160629474494804738094951114226730397123032003945714859075528191264403925602226735038007645613386841661313360712357515486614229865685031604441060616979802009059173187223420235450954214385147049201435633231286283739837562462146508556273213007025648473611243365778654188956355493702571705595423824644396420602411326779038373695156128230763852636030102028151613073828879909380549204552011984891287096493788333174468986096990501303739321587551289941779709881104856723705827383683043340351703382404759533697783123640417573071391335195987642214054997271394154051931988066714424764951526219162341730873428246824217145439632521563260162578441274704309276516036730928619157485168029428149931917191205590307266414966301231693771335705494224035009128090800119727423684083390049155274525775798469502601260227590003619394422096774542822291648710857795848222833575639466210511253000845616794682048543035023256828978340269148884186501109548396247727451353150134168789657831394065773171750634187100104731816080452798390491734973410844849869960821353368717501050978069352101834853237352679598277989918562115666355317402965331935475914250755466224840670697864489200738204557141743908938331305101857281039788962565022084473375118117506748102038872508211928190277937275541714014875576889017293973427417826643538286457792693023555994740822797656301345340036120254372836594917064915286120039858278500631023008524283846045815024725589266491396100174352135590591714057791965655245315817704090160778632993448345146187104642616751939680312611415653507116547268565161316621060934478319918358360542802115393996657702658206619376839105444219685159081497040247860340083457525098866400063428178418627237590154284308592121896192419189489227713531316110882535478130272849192770938742430932360595240190588505721876772704715535817723274211287814098989320722783109069168941020096045684908807094642669031973002773118807341233777507755140902160533811077915353569597025127473876765444136297138234477411340881507380552050925909561044431687777941725965088354897853762976617810404029797603201377160396898922319394366134556549625723542711295884172136053160071007875311700484111200853831449590199603418802382637258032248856446120589485450368672348008684807493580944953100909380133497958382453464127017690197615960598511202481518092069119528519518436010264716423451241622235065069678325312833302889085120860514301005410984003671972386868506156554915681501366722463169777579234909002361457613686858546220941430789897880561945386222508719265569823280852568489335619060461547457925173299594794670150721404102922323524011886893028721021006790408129525059140837561823470575267308458725693925612804806512416683397351099685436393937347785289564806205557836983626013772641986621284347306573168906671563991345623269856365431113753355229979111263309548548369887540272076694794930907472661431000650555674696611006562226428649989672823748725330102058691715493497049695581105702358965203099279926080533766632896650433252429082114512884039809359783174536751287046171719181722366901390007147731416234929431357692149229818658949870738345089686743670265576345072608566257463331801223920552427241997277844164230153218171268964039748071634351248189395466526655460664939356585821179831755793127333198161016069146581131776717254176120549672195461782186136741650219640837973666974974864953300754751687592149028426950348955989438508965432834953089314800579519046910212486364801089240298144270832418052309136034198966588029639537766147276643371470184818334911842729897132336855330758255412091510917481790025570516509843234421769562245388064283701772538170885687693436541696615955799312688077767468924965790778970026691842760034848613135822407532394852412625365673290945094781541771050903827533851714435852835378408208913357054293545626977051829414752170606831058199535184961338740711520583166976244676547899693355885999595379196593407205107524287455621423670420894602875986243196804512098392817584825562615582090412527346395939403470750458000201792367072762425896041674716114554606048051560632383834323654299765652298274084614078989320869951848647184299167405984231357866879049458576712379918949033195557736091334438567451834124674233501092417434441908058121975434446808957706671302183126948281852113758265802156060960445976789785263716925185785955025152480631509488492061080964902492009200387108346606634468039400154669864996449517491206312890952417168650960177560455828677289265196176744716466835682797007436657116223496822701250019356448038081537333028421173750395866240426567876720190071935753840656233702013363263702126834796266724642057219184783520587408571269649611065720755851912794440284299331763633742542812590127980170786969604965841235745870373363444319826284497934581720676684901300673988128461786657977896961974134435001252347422223029498599552269639778376421393451016130451673971274376464441035126249914649898744510714220222648326700339061144406786675063835613762058134793423650740427495590463464975279814967378831109795445954055990914689225383063480851183210696039911025659898975138150742190456268895578601892381169254387563715783150479237833017768652044491740188615383679641903758642758269329569147057685690488837796336766437449476522570214880196697190537111217105683947731766710864673679724307507292905456248841338851559244989715820782155254601734139634662066654972871715666894205397534721129029635817386654049880632953686977267003129699076433037563314749145703575355272613401625704156267982996034579564214290688897029929993069846187913780458742983090852166160800754126331474623249443022723808113507819367810594020436225373357970215116207545296752589368590383563656498296566388141813348444630090746506701581105509948262877168308471954507500899133918711712041837927059875043171019066471646694895963044666423855876063820288027953404860137270651922178166216856505910803559868035825234397268389827630725759078159174171992386211319079759933119478673554873230806723889806804868766978484793346496539382170887111584160965712219190158670045401280232076080340898411791120297321710606261887064097652105595449169398579005873252795302582145532325496398614398924577468391545183895021197141202776519130144485594890091583240754116755268226567410686368180146109624151187452201198669223878286529375390430355926308838132791214149450460541061035804046306817536762731496366063043501116815165536162645839284301463738476335605098504251225563752387827229290080513873646958810963126555761606165256808664963546437491501476101300427873811846570235686863560140490175874696993715204721896654704588079198261889541802176650308346173882211899338363136690397389674901557041405161822693034099897181142707044422834992141500724071023349135728163415349033294879051718505980260369148101715582134444813326125128311760733193555003175618181163198961044264938673271004982060896796340651419631781348530514642301646353187099682141585935357827427494721285149584453616519824725348138407993662638908687364287911526180268604691676515816537536266692570900485814561542668086344166098777819984406654963086914294402770368913216171033793866275951932420934478115251058589699606172519762012409204434921130415298462501272352973548478770202837030191330114377526294709202062588096922587162126252070811933023373636568178347919462588665093533254026631372180472835617175302995046507229222210862236108768875599844199332927991296678158753941594963130320016979058152271074084326710611361799712462024842666132815105799252189518406080576611872359846166051013689329324421872495194188316655684455158361848177594912345002958337654639777811517288056621163418313340149284958358222141380156172400430226299913477562126651152057132710549069782381597380908708555055638485862518729053748868014987077204323647687703461947605934701646671665513758483504233566681063134196172292983656408874262394627508822727248528435354911511693255317316515823521982266751842999701605537994903257506669216934656955567669334475053897788117914798624970044987451896301759937535812881056894417433388563368600232007224702239338114406187518661816912527561780239435036913095900471481843947753725099533227209884011191945684219239560754056653622379104600000163882076973961478658438096326087457602967984318157198386449256185531191368108119519548379099983262234564922022741631160308939902052132039340882582936662605111009910514414500956314957606135366253477665328769770631974029070657011759533808497117188476442980860404990667572561002799536074574458971718348744135083702101610002351344872974083314533435171338962372061453458583878607077723957916868534000640454794431898848095287343613330041623700995509271574936657377956674081608882114214836860807562497552551207510791496520364393734453691176323033454724257742025614520485470206974048559835467562296304929263426134386061528592733365353173849059518592398929150547233156412445630620636779541715140781220201828764962988653282103586761996681647434830575175490348004652838222959401005923233835252304090042667118342873940495268129533074014011413360276618750500156182321261467604596222673387339382786736939247766654580615651711378224814254375166048508036012575664366065390668614448314332006977188283786583128699646870366636617731067224039911317275630451215927223542838205453024119468006019587505076703358881603229754741216897571413830859480683246316608835270305677221774974680264889654254833936974058201140086810794471597834754595761641364866160063145125066367669081677229300277698640905849458383700872004273069280755461059416563923053642371508924059091105932238165468087854684756651268715752019799139661586618281291550473123572189421591589601147660254444355848278282058903418876115456520022622134308721533322200679653658720187866435360211301978652898139242778440714898148463650610474582681468520500592739407572632414617612626815751366273287073517600804134516530878883609189074235995029176393759274184303593111356818222212774026299432363592377746679215525233801986380234696117034461585378135181291481734636625834518628030907485435212980993453976698165397220138019348395386636383768273959218602800780819907589235783671789651387057975056776980722781249086383880012878079617467647423458222936403894815459124208810072882499190611821431495487196532635217221670120723439723116108255053853955633197136433023386563268242653918934784789333080277530120074595375379884857109061782477554091215025345614131711405178912439107072857282894882550155395401330173088590674117491866300184598555939025423858330191440175046439773198712263647118327105000712542522712660253559211820643251933674296473582161261317700651943462142699600354374431849999771333920987732536945817401280367293248427076273952746854171517799938341711719729532170181449264187714056159547076533879720261897107554487020818715220465051871101770030216525900574119255005239124667343879761808130962530514437764392425413666681621329240541356053568544362605089163243687144102955624611584185044331602077705373101031867589738021063950116855582498240130679664232824889935565954129669351057598059886866607263898930456823308009626109182781417696517673472633708331219814447785833779591240497862226230140797440541807421549717640205319738282773071588859454477630648039560707913810880269220024236069034779350433357081575913612330646820307432741283435068787285735490182077919712288391644003166630922707906805906759414178916233336213550015172298260336204441103832688945234702656721919983255575060292146741222497142820433781754887081381753656380012035597888929833862578449544560313694482827869689132953522893299190872108173838146174020036976529289330358245947383017061829723848506397656597795568413811574189608883624416692377571792226650900853231812601674306754577746567868476660631892626807834116835082468445774276989249145967946170336290754140816706754400228250378358081394017454203523587702504302564573217040851637067094277728325171406794186305048577280909457745112463813497811530664527820808754119731103909494034798317638953452414270586814268894526683444034530467452721942818939376019989245809945708429061441604932816683455035093830360200172440561753635063457081157310660826032516657930801595376535648002521231416443794072004584486155155481696954319166165425310520346626302642522330599150695892458220314098261895536348309945610873874401326341163621097622940818144589433237061803633536939206620087615945434923869948134813044992719005968220337334109541508614610226035449470367646616087344008180493364805724729141448854647595427407716032970400572907885158692912740629335981879066630078513184620860338889967311959572251890749178425781200390205051731571235338622072488888293180106473788535575533121110761106561697358940581827463080075762756194354066798823078944758990474813304590485626578627992339027941552018791757004520733346488321569075929881706544679541453951084094021225097556476394762628281977822310193380579303847044712846224057222255664165391344886281912988629907766645856859071271457979669335832095842434042131103340229829342680931511781296245256835293824024240237586510564876359466377404922319430145695043549844414249401324762243019436723126676660027177689531447485175747472313560218431086463459606816983222680920235708504670266156221010952312728214678857794818604795339825717280144413590029236425529475219719908858546988664243504943056669319532648701940448881169888431849766087754909440323091610580646751742565892729024439193142019187611257380568983299657640345465931045442755796268879808492956465649656906241507925685776361735664744463189565178373509375558022934226026876227421296559229727420750842401861898447555588503208302097006645654065518731779774372468642425829435081515191038224236589975870333964448644145757259868068063081265810491085888380357370479265829134945668031367047017634293278151620075495487568997770092856633956406980417847298503241039927079376808360167971229808794217573838260452601234107877567098301480576317502067637635937654951939964810473500986869231220015652642239320625058950286975951723649311459651316680477715565206712501016372114935331967793674966460002871802225956695601938374262890945412810743144711047398474949745840205335737579218683192315712328925404605445178908589339382444896946944761820827685352868280432923202178312877951003241038818334935443034270180107566431147935337326637838882808093299252738357982371198645136921745152250567777104133059449576280798178796833841968194179385464120373822577437164021112738939492062333484739460070007938070052019902637251648972394335161434720011517278197409525778308371970199232084416707587916561346430891595536182906854653185866057986735941828472465581933366174290628807604162234719043409519506794375604410759928997344905810085949007280479978912024725135735394049847879055975410718264080849549515484352487217024667174172179802979627960746627083942437085765210557524436258890047816416227216630945560912281285511938585206091349530478127746278996341751569505474883242407721150327103619503805204941828435019084441635017561504307297833979720061827804036244167966326841935318045901364796362982922151910903981707948627396945355322237125390635818806931078743280692660108904426261287806277897052293584151291403479019017046763024762178944514008050208358930390924321436474620326292316455013434562553783236970920120319475326844902620113356063354037811906270798619172216081746564170946311730766633381297754422645168545335317195271073880564570844416660211087291117106110287155814657499866384483743096423225893028923358996132765952042212605916517346848712198131813720628997818750802636761644553301079554938137739902986848474088625472708245232526589953366556204415881511273022533018618605128351207988104118714443178780574596360421817598807016469556917111875905882415646032278621391386833513482264440371047841163786701669177899183939954301410837130118618814771012334292212181965138204084005421736686948481378855592149611986068253262139013655047660626810764152027560659686081257425182836910694782320699358209887994418453990292580385064480637062551097803878885090100783511790086835389008865236777085052850191449627104526349552150678858108543091531721077395780811063227489036242152818648962499766513846349222023885458377543995052869133316317994404224871920440984934270824029727569221582753267063614922186935226219175541791243882531594595139163257043554343930032007212881570065581096972371958059477879668027242649244202107204153560320368141702297481310664443888942536278156271077496575108400851524184530553716582703210643942487514514499664559532269006936253985049663626072271093637598975927189869325091701214244543169339441698165518001157687125362998925578626307863312862909662515979616043780863205288766636327155402967887765921386546617468131656727562849178132985217233156303286483841170901177536626813240498765075436704101583105210453661042602731693348980769718823758281767230376272782905518590867032284064962272859645444200700273405795782770937858294824435032059492146889933681920442667591118359981245091873908589207254940439727328383461187825582957246541830922105883148157696481125273937958584144061828874926904281768632418605181045190951378295501555838803720445934503428874498269397555921853194627552085102459786273985168728995110827948817794520899067089866480488158042440785549859479750982478507795202038843987923523178821122990773025348046048159974560357917074517484855382559516406654010238233661617863300690047330091923595843055286761976887267837716061369736578786577468456984896291195589260484024832904335051392761554275534051089755400494739129299991262476664330603772909203558895133706334293379538633177815856249685148097141139491137093023043149536491810831796346941277118210171886657511070256352798845980892072938544060662767417028612095604928154674432203728270446410829810489055347583890777631703675189688252402917688724766718782473962217133824658308604802709336354224852862311317452230539745948863659325445565411389871530265482794790756901000035194855376884477909178840510470593849996446765927398222722313602502986826461434517296218894879731839391628171514986012853150359665498119508479770891875013478174830249186407258954237026588057942756638334028215869947093941594506916532957941087526885785405625004563580487872648448280430635208063646704698384242242787145370591103506778345094965298230597549380411385244243439816177834413855553275233160984058362179454853797163774158468075350365825918035542426853976744202898256691604562896870069734862252043066040889499440325702265195797301711359016774403000526424323173722343622532288510751321626244517261345052770036819351204822033057176336438335310756240511499648317631856954332525939002640955021002650375604734300442252262894864024912127406777298168478803041154780118590883699379101158616589211815304818375098807552099621449118386268038095497254462968367950415573564948277507492288445285009673162341396026152008595473429491111059865312861360138547476074621582532325008775681955825164419302072559325518679300310257238351076310694908840746049775300111435808998849245692480350397728767497493124674393731635803621983277270123543895179346405490045394497228067264272443469142001538825464734683461535622757564027925222673853402267647760044283203507617343270838848413421634797114669348571841880350013016495232794777694750663484437832907532131278545988931817389096458914534241123534123165034508789237485775136755955156452839760180831335103754646819482015576958372514641614222263020432019366647547923981469246289775293773747320132996921891946927683112740219673519717149534695108466771188806524968010657542170639174706299575927244474560340996692137597893373353621973328639496731752558569974166198371464406535863487267729985537149413668998300834239091709858344300826546663409501895696488735907972044400134624415950728256257958103836436173885928461513748129801150141966526617717991366415667498208129132297791695841666631927391278092613616290023440539946548830006470755567823557965036542567720003794270919691156183695651047522893783836633914557728717066507985577320525874527633296011949842406578538375204943486392876138692286886526290747926816063493350185769344451462560948874207429386080499216898613599738671183332626034461713336818700807496293282564679626444661215331708335058537255268496902796818209206587966101727433073807831648765957879145768233417567615840744933864715367129657189135181205464130555429113988024074702616262643743312364928871314161744309816055031084554608412190127072768500294913519824462597505607512510444024575575438646624893851323065160434584925623677428375850459804725277139891644910280165815726086913973584666993144299557846071664833153621586645065169609124532091795143118384771246489796501309319121855200822928526590087117939261824244015129859782249790493422100034504913564057604312091980721681504248530050066581997745162150385263512383216412431871726361687539766328516242877569181989589612006532997509559135995509421224506236375229671025962126672990989466069668625320857061539913145870056230551419868025177844157917195767487289110167064753380685208584537766486620406082768348557110584421662058696668696577413359010034285339163681468479558832324422712045451616535658391367227994325085076471085923380892547731471975735148920965549853720856444972794630305775746105009479847792082441929267849833241228424056771966242973152653809223682398601076286854133644509235573039028097948465546598284477724571891859794494253291083646995986139784967027838469281601299677432180671350172475577212317714317644353335157844724761218406904068259217806588142211070302283614206419571184672631724890631169451000459814854241429423171241403368955650713107759267672028477176414599889069710609509943217753156430003809860102479565404763869527808154130196805568549554185280773660674132103431798516026495181094649526180215045701614767412049039734651192262964895753089747635608993799991136717586430917849475595276238437491085203071491594461455780382823664657383790943839107682384639152631264409836266394826732725673531037356998355638938892534938885128527375724223237158129542763916375282136690019130666641196816444757724604865327014133960446437152637445951125516110941189305629890938623057459208587234354623129295499432387101206324444688719588152653044564585321135996991364481565747820522785824421993541042541975864440520668435355829820349119939618759787835914816940785808681800991755221805752667291761827168761839747881258690170781245262889374243056579167263420168907709995617889800994195825515931390129737928124610174003936379255593515422876930830557307169154877250695696839048851077012015265221860358379202293915742595494348957164908342677224756371057278577469228596434182354013871196534176140936581858077657738739411642229791315658389659625797007287927685898856187584976277584376927893476911067409939665110232071911047236114171387887905101122709825734519973892854979482514815503991766949314273567691804181483484746273832192271270770757071390794080472180644553180451867519709449323929609112311120159330638979501460802354801871785303451318927782327624698200912000298050111089349800634916912716965560946995924098527859392105061501708384861733958778259621786602339806029892047885782802221086668197339282473880918204800446030738040559085181979364492874318622269895169432775909863796626177170407658893159548543181399943039843386673360046349090500527285764692011770274859541192532659285631488157606772328820162532055619264008246794704664124561827013357844017181480223178022400731155647249698350260215537847524878142909505359005720647706189020723163381388136865788349756476891143952480131129693971039249971172843794755293695581453837371390147530148601900619578602410889981040510805221761131224601478740477456317895944248052625087522836057409008996042928015737208415673216895651570080946125333730857350355768966923365218554249512413444590142749166567649869875482890057258589261398956480787420660526652552709042413475353488622830302682730915517838841816993427119130940658861540535022218116138888852001493847380933129934558665121360146570325253653877963835944764696630600371130718147214306335803570160289086385255892734334851793436117645410415071836677783551189690950376990388489881872404630861786257820065459621693271626098714110449542522262805552943914265340678014292973747463410583818670271600410177327006129468969956456051439733113476398397790691582720885387334953409418859020773944269297195299514805917362826953601876162778652340257240855576701895242610502069336706834928182209966482943992047395654714240002965601775531059088679029539146169738468932709827731448515868531383523411532143111386275108450215835846196398103823394544200036821027061637070795711159427584792857475243173522873707607062361668425104438612205777673529235951974835683279420336854092526833423275710990758850485727746697442764630401470364494513605810215285680685296179441923668641818913877033148459214998638681273355345720846622550593138337652362384007068980438689448404058015299831881364161795735518887904533215939166394524361326441397204160740294120340302122700065954649501922234595334459046003482996796905632436526331911220924442483912313097538734689120130835596582740386168969766143938957551131033462690116870905517042025005080682776447321418288210276153225848243047598092641675335123241378794482646010882070049864155354919054219483003070585447517481766668686962556484427290198271746356271367784598420487137593169768224801636499644295948474903692211496309579014875117175439026272448344235517059441104082027596098606761777557836745812291711910979236064655158672701944633019370695264574152402291388219655546325134566632221160574904510957627405580096902974278863080335452107778515787499940230470561786308100218466362358443329032053321260224934119763131914291393114691319952923058810374765002790569002147774672670264533296111999934409520392640574809933461938672621903095707552862724122288501992975702702873108530558523385960085463005728392071016522785256982336471185396252126562690272797490256217103512974803554862652746269103671145065924187794609158249861758377914761204446365016718782327919422936382245685037681430464615688915027387829562209528367555186353909956674907406156608687097801704495833260728798547877630064831784808238120052957289262194441060034108298848063823364782262396832870304356261154694321362653136493324739577239702056554367961971057285587213061358726032067828972568061207883200519387873560209004448720268795270865010099700885586374436900734595865084151992482969743569388155115807525194621808900558000665990754183616930715401063537530757421971741900818618255223416259831099899200814313009078790155021957799279257232051778068873873432281597757935113973360707395317065273385715934767489974220966651493917766169292786769979924774049912332556586324805995129039097859679300735490430273479930592593122815511319758682702930690858332651499684740616972968286679698791192387794673351655704474626069948508403487911720196961343946678118667614060208042618207013284710384054128985623549150230028795766863822263822859061217917962285731002573935041409681262337211408222755924568804526198263883574812864110281853342786793062214001486906171152758597810080184186282205129935770231132331720767236671852579579621235747690249346027702926474847004524216418887649922101197845076385453716468649530656325230927764043708488455516284169444619900461643869043064670649773690936380378750018344681919152052523998711130013304726360060154936668364863950574314474706944423725011121648232159146618772294550771232793792102907910020017867253696669738925212703646226354260567840303377449863663710631723192637277512261719538581637974605334628127622976582573600320179766025095082653881158382500056350839886299212549107167059773209793431900876711734411655368320092834521671054745372780326974126925220909944063150956640401573848310781711746162201913566245176868765508301363149315963725542243941573780637231618458367734993898120687888990577838073413133653286884837111477789151315876554413534655927488002761311828144458725021214399891843301122740293319818608980313993729508192230644266193283415550651555343589149873934904801342273863749366186141254835817617263798662653921371778946529567030336403004951978400742720460826356426428912593195728753966650853461022242538590559921953528888863707699105128864275160894075735040927982320843572268970150940740397076990128725309741702431292458160218367324600007956567045365997198121995708853449407662812736203926408074273479153395267174950710224739393630460703257122526828583978126752607184527190176534032920714257569782309078399561089691994810328991948757414165771890346336965337640601998694159103256588737444618042973986900762334690011067866493144459038082304375434002888320514925419857579604951769757383366912749931884255636734627981696392223243446494696597627067584751697240121222751441330079804272734678506649276386464525637282034266712585676263618046193710152947964725151350494326315406953512726304601828042646778342848177721127008742459652158913751757703593614866457330174746833734454883597213814180636028219759748099518822393158629929760413607781374708892404279355117566936927868507200260636382716439046996745798214513475509751774669214770795563602683724797463977443374187583488029922009688325268615901029316481067050822762858621065284948988247983588140432373864773884952319270008209180593375908398991039296443355273022456748317365694796611474114119732728150821493551936400637978725641619612308812865792261198480886527201237093575250419087349205607288013505379431795018862856290877001260171416549930572098077312602624560573411395059841330857398767158771872312383688874643731785865679134627149595955479294472577201152674329973911580788188083669073986883433986769298705969632390155580468880584699316545900382436067189490413725804154966287147013173424865698282534310856869896664104500940273944588601645341928366187635685736077768157351503814418062072123780562395379862597488615195269728361035680569732342530347312931760589070425759283704291347695779366544366990188668196115848438606273638018714361030010753266853054488969871727954173221192496272377184066798599425208462378542254442889646142312884767704423708665298409210162403456714664986126465696574992334478210301393496815031010545800026555248174461107627453174639787744237873901095225810734173396004597429841178480933794826399778440365000607314358216555787787102669560037868221850406206036477346072431544243971124869878006692037407908999708176326614729592199411138923192326081456017195711907656257161632303908249710677169233932665076788884233713137992160258522799101139392907138364027180819900599597841585942504524873345122523939944221438803266691335470892543193570057779991215956529975500919880675680664839278212995087418751847875052870194720231229436709486813326825403158133390429962643940074136244575814721247848643042841029563553128483035352475802521629105160149880306760438018657554411207509514592002129974575743641274538553662568608312330863367288767668028229772761235737386854920723963741424923346509568339977037174694343296247787573067052652483746819913850856877885705507928730395412825162975092293902347521976410628357848272997489194144728088235402509517444521809528283404166280174050160168233340123840498653023186968036052306031728960139226634885675941977275065615421616203737457418996973875816922320049458493441392416144018529193899329604672597143480845860550128914950676025628217401769752077666055589698947377067645341397316912119014431676850925277340592056593750763030429268105747720116350016791781627623865107097540894948451159411726996848674146019994410693051311656218879991623736084683472499594893185366862308063771630141002802954489946490843548156043493719700562552786717223297245294266477384973530167156725707779859140935172479176608860465127622702274410787173645187582266641523128030680103423109605454613208423357361610795550723599433102865516510403397492627153867288616399910117592897347000546508629794078222306332163330970501568560153191192543314594846498251913622823063745614601692089894586659951334427521594516138648147347867381591170218559489539142406113046513702819971961364155191387394519136362677725292075924761267665408897995948999833218708878137514033397814091793065633267024064629890000693218934904196829362641598227567139117458032129003847734796885289715228528207561962870062640386435228486323981964156878430888106643935110038762596948754745687792293999280329746958038163665276246093083739772247874284500679578346557298468109839829858680686962335750713311672262678268667007556216288532785311861874393563618181782221638204454651999928401121326152981066273489739341683427843852403280364183987903949681317846874400424558951348129437075877154052409015427014448666431379390295604744320405430976912146258974302184857491861782849803244165153857109334855685012878520050081672473091754023851461566841030715079299822207496742064988980120214739886900732433713773788336346525769720760814171839572519703274479668095791185319606152609060742882071175530333342870235481872092023715622637959789238817799917643174320763076582026775058614370272197048930645006357517646499486235441859309106741080260984039538272946131997540953327767794222380294103410702498385423294066862423716899949739529051678496894530816095826515327813852362172688556350391864715805100444203206029886531179728412669863790003999464028281404985829687159033960134045718020673974255160220661106999296581621036034121701528287133558546710201193707292726522100551075805707520321863999998627646842282859812920577785761461471253984177060374182166216430464013810702896158860848859310297418417387901210481754801125088050661224381909590367697419382500292672576862262205437482122234817016907275325287064368202023514059213374386614817116654173336333435039911126861896102316904282721857351469506768993235088184648281445543838178947945740220618640416045421010269811505878297819654758458930483069875040348671836604516086345857800306877366661806876896675695410973439184435518794747509053627979433706382213918087134351519736278324905581742934711515229028275735550583608954175611634366216059851083949727174491781510756198559231652616920443138185066998633942267930217074357610048526849460059790777752032725506867576430807034232848465122328070624737805431961906593723960529076718179961604162071467326131803679306516810565069106117526759321130661779241942103198536593154523642353265341123940423898897380223924059980867595732366134274861812708305896026855226653251192136492372675747447823334119457814890412225530805995730164890561188829595893561793061312635406324688730175089478403204119415517478155763280918729730540576797097189610674253479059762233615476448907744213120865605857871822291532948259841257458667101592761382458364815777195564775119645621588064863576109278533242895021589767152769912373070870825953597331341377607063749166180552977697372137422619228440483899077562935391348939716337183058705802222121520121879874060338665307446993042107011311662571909470333613840159657836669615167710862976911287022652614812165106682941012507589314065109782768473825112822150497803423430654703678668187486021199403890655373199914925905520470008980310714636385497495266996134424179960647394427219070520233911141113405128292787118509972394152120799337473574701425975527186671999942883791251525985940282341468165705903961958407331477093546054580784695471551635226542015902236024546661886493899085058453358737195647912369848736531352442170344330939639206684028763051712250373887901478125251290318316190784758111224945619689351611250070600001266972040711220582257613370218006035310945985039470510702360646173248597147764668298991571799518611841255385659243623577994647376972111289272311001369033705996428932736148725609510922311488639556588729047012325436109865346220943975958421015599142147594397017208301659194383259016306154788374187436864621299380348965941407415673058033503093154217081717440070444718583999036293138586603212847322708510737657140133730508433727863354772734488244660562687867332337066687011939994024824780158995856040295424900626661095174883702924860648788703834291740183461090313430901808839171576436538309644894458625680294340784839850460395576946873470290400177774624401942652282146356386633378896986378717477710983126429879317058298583060533888983215229084093943555859790567581950961283322385309665194159447243412530397256011289163426857043861726876349526006646537423457649427084173083841775957079757758817390879928793802870651346941987251457229431095872360946668985214656737007919678812062783175488198287169410846011910224088892442797086601045173620815900160137290431159972104198141181546626976296878924066009805386696993673392220984131028664251218353526403971917786141319809564730189910441783854143650574512941533739304741732369625048408272116488009245940807023416581825660944078971355835874806829363251820220985631849865392898777626760541317634703996575753335300179102222373507527530712682358672823008981145152983052030109480479812449210830217493438932659184851169298411065337546324919715555676564808386375902902762637506431002849985734521679845009847559301132382744559948643332652660865999766642744001425150346231087632981012338557153204893885321866568473302884280010024050441180212351202741205189923394586927589442082306488772744776657586060050862522762690627758858233314650591060114620712165868158570284999998483562520576697559960018980446383139473059689216989818730581529612833246470912486811536470948815133606627369040337597208017066166258175939642153273728768577417995009494158241423889003433709296703296739373597854948612127879295925990908047840843418882092050499469108606931255735556869425915106314864669174872209419361792409120832686151965684603879630081453754534739029824039273717758844035009163836831327584120207262375302062656074438102446791301865014076702322566203857234376465369296375862809297956421826544485104076686838682607520074513152598583919256224074670966446464041803216987609426287822821191809468760264037508081016365781090809595376824123554383743603126229747413727744557914566092246934056776733551052692101746141064331038548752718850281688065176910123421134566380959762612449246772204302568484967015693310268605451909195201037698196015249799571440977215386441069294276954853732825470991543748076572702417605846100244482418750924891308802433869747661771541293209451793409095497282517728792406595726281114280578199593471279169729833367563266392612347307446929803591850628482885868630064449752134659082558716513270276715301423622653652981008617781026294355518253396157856392159042623138483620310173593089979861002207366206356509998673882655944778487514191020312939813031308831741765616274277989272884895444453945748003384709713355950302768437938739418502455584679673688465538195059914161810001708306210076784892536877584039697215806027583610945421713303424375399758607936375254073119132027677048369357727864284239025326603732426381376645012844767658673883589165442197658362628584536120826944977056066251786499192038570681471136190260582920773043794926516866781460147853495671889197042310642409249932065246566068101558314496689463083331767828301066501351918437105339794959192308437259231169870784544828919865101266394574230046209602272195610044712368048456817314978133749943541639762851786953403740599805031619335413271057473041270592283749798221825621105798590192415435176381565470548037403954110136745231236364973647650503310276657101544518113729955311743189695253989679543268913606565019056447951851157756031589908523791236823530689235008857131736804057048126556150314865283611510405183651057148180933725129692626875812767324947906324435623581364260300256419924496708997468843349138364375648838731472804264781813785380517952979509050472513591576203362183629149426699921302959122074955064273462707847392154482036809182777359792442024213447802266864191998807910369627418181593264529934944280509291468476776854543923945548243069442813255242024753890529626445435259207634763990385686795724870588068347399017124604514282123189006664034813403451101330749405782593241724796555384224246522691250638818905306631361589892580517810649141815565058146716649508378555748240728368108106651663479547768884288008123151411722599470555558981219025728361672391789256157179623616299903399649076335012558212350226169440985205599843392627678346562673301827803774047369576145769571314643466481252722425110994494235193584729237316332466290690018864820858627083683610684607974375351704519510872893042519445033814578605717404266474731875004415122449513174822141268115368761358802014863397492687657621992616374068922319379243949518669908678765514741573282998521766359476227992312498144550047125441134744293885456866154355274720923774541946543961293695785826746168038037083491955529912073025482410784402560536584976940568900223847081396838199944290732392199073796698551701937130681853092270064248041374596620697419246402267958997635633017446783026810481217458134289151608286543477016602576892431997662850074104358685066030047102876085504160001094048668399221338041160411001537894734857691169287895002789923113701675140243721136851861133426897136730368178875650154144327502898545190653685091328868990019732011715848577749886413338125203714127517756078519758341324761225195867638370735556179188459051612335353566379494519907918045716418015734557798678226429772262386079509615817092466808610263670742031233107592707529519751555538355303722277638042072299848192034274073383084823685431493707031748717283379626869611681528304306412252250919616641570048894045630299301716662474858373865007729889855375183503219533482289459062521685878506671858560747857942069808651870424443669096894550665418097511384169402030137519473820378702046690613534164132746028163328555910288795225377493477313725730710901898460218592223699031540943925550856752164487962015657003312928897622113571372598113397905205836899017419068496736764846758583105915306616077007788510028492855395138840376438477157728990599261360999388600672305988293846180342071668413997245874610858969396203401220510527346025795629444088845951511956760133152707179025400264115946642470355191823579215994487776300593492774698549624128027898791408439481523191705238394754091379271802291394200030372129389062589181159647151334804891098907218698872975260506651858074354350847382929707067176691270553066707443847498543998672717947701045420929562274549036184851634590466000178301573456867290191537009607399080820802929693533172662965120512275326357367410153107444375045025014668530851636636467669526575363437924177816196414110267144597266105021744376032941923078785915334791137765954339144050338733077949396987743303186866925040851817373827538302482439885456411639542289431118705293503584596846790187666349252955543701554622802429826778615295633844266654331419781821888751851569642355026907929647502977448417596055603506406337004687689931359980537148043366149805731079285961360998956683121553415465054227621550602511136614161160358923964293887719683118390092229065838588703515434074147975294631070610635228142398231471232169151526202509867524653584328337711081924809904140787367967576999813773119502694840935093018760919495273466565537331012678690028583038566939423268345287841218631214884688733655174564559823725496635330739435623018302302900829739496818644409416221298885865992277296170775163127677786249774148686263473455571523741623858968497962734789342047046030902137606892698681615223598576759079438564228930020798050561019478076998353634270862925206434307591534225473146319432285096988958059666670289687931861253637940243422255461021232824794663672329184259565178056336578848076754242044762543683223508311300695343600342401769632741379328426103353478402278569121622873378095407535767924050797281638744285868526140141743382179482569802181138905278727254247471052850140739206454156538316330411371881930316715961164170699418873642635395585997898979839479427943512846029911722894817106973561110551130061808712175369600571197024805796980308008219353438797794914470895375120965031038001095022086000053163597066322884683458526726952922660516125633829116441471987629319052001319120919442628067408710495222498907640340112285595457848822726751869485650679502563568256541987250549349702263925774396124472941600447355483791618957534660981872409130238095351059639171081180234908923046828257527976159301136685842807480001169314426755489593566755591149321031524874629854537991563379224193734335885778853270661577542756687692205356093037843874830969687396316666845448428153500160123244158926764763916935964707586297116551491509871945819393256091839953879309084371263365400019974846227280697330011248144207348403589721399794259270401317657487357493108171861678356376084731021754940798210257533572038862850759451375146101805219858013787571699882753150612111787760702189639534258971915033625253864811297240006559406302824994931988438414455981313369720973842796590048930069742879754789884426207920678771161444275783170857642651052297657905894342527917334586706644235137240947673535682526794806879873225454988254899808425973750249637118651895283990838764766694043923925804674601508596681138167094838848360486765189943670098656049390711406643445647514562883131585397962711560743999775077844341272867800233047634681500397292270180038181357175802062651781700267831627382001418767874649181845602809295451703954487214038824673670108071691793824087042030506933047090920458316730459319903575818298353881024955447326313182849724765155047683503985755256476642806718814121402801475996046457149348033730254110445134611808308725778620614612887785943504447974685592945544809519508546618557622998415377890842127886766428167342760028271212005012303061878946452208733646998668137373932731604336153142753375727758659147833905124453555888985762689706107571020022779797056416627082591164776526122287851602059883575319471434261828335352435984199055419794626119892798461095276262108740968958693831787647223157949195599880687831801943404593038970742356766186703756129322377907776041865201205379389925833100789178437699851166266319117911795210673333777483458351170728294478567322703811817747085804836156572312455186310925542584134374063758035298158998116524900593654872233106286089240490433267510244590410077553291727977528996815670951323806729235164830328900535652331927095782803545859333069925953550972530836804444281138322595540267523009614346218090042067470684165826940185033566639314043458094384432650772304808224242264852458666443867223570833551049459389685843138995435989369921568384869357285753034033417742781937417602825239553535810521136821374742394404180799145357562824817075087639182822014666463279579814098396624300557782554834600528080630048127011216752183262202331639181011934006626337466966850793831046674942308612436968677147683730240743761581823649456535082204398503555518376105362673048998908404223909833728011391617849252310608602968561431805887746405778222930014580306078729665897179310713355154015235045823531489011323878451589466107109894621818336810328180458224359220057735601842658282735234111153488619861042153890678188685502017182839560344734433273764066424042698591290272261954179871809101938348382937288298712967759693233764032329993883135592989686280495197853044876537960488003623912952927502991981802630077224167174170299145161572162659253673196927768285495927888890179032566822467038357839780408686995275829463952033589937482015820239912703942262010901853526785558695436484172996035706880702940907933045906113957271064437245753418356343441904284802089006722643491356632826843371444705023313788827974650097312831068662804253557509837459763598730736046232953582677873585241574100403752206475908097500390014524968337972319900366513947029213537879333671452244900632884011276587676210464711059328247631489701330050593430391969198147555804777951186335699934860992705895656757885514199308411730764445979569534514877220452596522912633424622813310774700866909798103937901918757994530102318510748446066038738313440837760476438449398480157250727089512529495321510293189551811017997708994322887239654225648577291116594635941293007187460836692552283939940378405169147576142100424495357548489946260656634675173060850857599938991991801291959927422658975881427307236296383716678382905939944586030911840559569901633867235973686537600343330472952853347022332431880208916656788230547332668828335600705965715382921078665987680036548497234592297685657701521615696706140206479812929868412459024180380471895303218966190168907645428929193192190761189988273520506723730902034873859857850994589619332635990175419079574677943754986153513477647560106620131742187503504906785337162918357052638648987298577772520581877111175964196666305800429902912252459022164026390997450136349741282965076153116662422464462204547348751414796561086930249885336370721893110423080555305618170255225026930663245401401935175592591584900249123014655615029713416968533693556534801369098732347447109511338100498896354848785885706726196195829670738188517412560067779011148132297874272179132996069769588756614366409560712231648455993136433790936332771195557131011881624317094992410559850207112321288800090793218540633499585267680067336452097449737990626036897832569266232058964764230394329556327843959898829746097900652708059166924101736873319662864691850181525014083521405996775376231961243939465721863119522191995454133647462196524748747207457371593847144087808574726947728188902286441499409537808030966708045074467961871839023259151914174552128628088632130561020762149967949079450648745675025318548509348075055688553081981533049454391587559934514039319612638571422711289232156570272145901150211260303785750633547690771334727539978466602717007511085890999935976043190678033349019641151268834038563920055316764406094718633405626003219634745695811444864326552231649725999225546701519894757673860511799043996455104222732688614555246735985457637013934026959845380283976623617041773249499160574841909930927170360473777452007587244207920796805525105227328065295397675953989969270355113729514909355313036086237969874996435996236122597958768038934267978177335102072363642700250372854633917393400770467945433220404271384946257295277244972715770220336494740795281056008195954823390324114015106209107333944849848531105968302647177844271348688533904901772826109875392861497106274442341722719946680886757194682465984487478653406043587758648924241172610067119274451059191556515690579081736079388935379005380431708319758039976248463847838873402045391410515198913074779255384250473418741382626068990078428151728662744647469463670486327188578368996038215814525793201107156925010585861419052530617105636198926972624617600160255418062527721541086612305825184221819936679330482394653773501694876569256347853777917014352641822928995180170614332194694928695335299031068763990584811490460051660674955402425119595143164377236620328356422806414006899517847676301485299689678502719692362643434213082670999332023943849288758897125900916105627234649917269243435297011361429781778350855925484048129359809041385154108382735477752848911591258404415256528486970803808983813922296030138252100363363385596182876202894609937626381789473001367012639439522336181596744903348360808166697976751263120594527586795049004394615374911169925938647677193575440269723047895673338176772266967433277421839643076715526171904863607015446372360556579562726698078208874814057816808173436039247040675778203166706694932459628203914358254793059546041413429474040175986552765166270028292577722286675327701174733050985274019331578459648714849302121763379024508486276512105599936959106594491153576966530937304359741871810373607655689578341893038468385812117095609312113887544576175965275078597442474447674665396411065824422621693485425067192343044361690318304019263701810952663919665327622380059371556475136947037885356601821647186332779256534064828752461981471711008721486913776882726753649428732094361644739489409510190696687488698073798427156027373826576134490643178028351495205598277443549303971657829996047156704892523463907902857876884346755105889950620227836963763060024854470953372047868761937496271103562557955173731102113687974440787520462159252005747417225974807809698799034604688118618538707154958021781095925986406993860658719555701006074521509391929692854357973458030445496965687505202218596926217331615921660847969878250291631420102844012194145183648107570557932107062781282127588664507040218269394968229058011031030197369899296497628610696919879568108895663100473598760423593334715853461115109809379488531011573114131492854997933876666337235977709600622805826664175553020091750097449863565200350941436300100765550877221764734941392217127989128146476574717653015672509953110023452757110142665207593714009843124067098529587489216523529397735713600129784046860556425846544442030770115473333659459994349466654478754489443963782478738535064821228486423273622540182648317905137272942055790057170993110842479743399619668318833236191500901601099735583375047718289694124771412654507644826039948905740606263467639361717013847701264649301604276664577541587554079169087359581947519553228116148933475062884492003729700740277875325324183708409679058685827674088630019606811022385732780565706214531010904094804043200830566466878589474290912507460286716668494560873892373450502876905862873738260268263439852985056290712467511157035453808620369932172054200455360797867769374486207239186321907084636865720319127245203336091615281520660958043886424842645915097992438387947456058694240804966040697877996431050386244292578154198428735765353992110184677047430870691945722508433234750081559473093867817780053321514491253405192876588318679234638423108469975531031860719975991326962176927910942558619220606660432122566957333693134995235589539624882154281202349015912848584875125711111586785418437199959222618227848887656741553035526042785704068834718739890683631216471220708465776051231061357044895602244843138353802468030366241411346133453965432694035131537655569168306429089589269628924784191327735153160484020575607047081569012788984675243726125530888713679137311595972259545936201285987763674846711217364612283303342562983929028747644905490046445696498986376958585224353973686689395775409648723100622877447425477028068574413244644070013541281753927346994604080033516906804298718165279126624018838126137075159554413215277830695519456748734161735793069492187536471655589880610290237312117865752811231524422954354833233549182163422941016064249832053893180464252764183588330364792354693111014318832414828802517656567369952549998620786997475262100924722565061655497684100536165900957773437423687454204413713890071209320902678957195658828989411109371301439642062701019321387303250503004746255065405138914853039639634242591127377412443178657575313154005921815058091737419748210322056879401553520744978312139785234584213234435926256309184166483537895599627034994988076849981765357714902300560536707981744798940261510129515809286249551836175838383235330918973040454062124118139885029990516714955435408107770646714925372070244403158302507843044777509355698076657289791142762980512519049372750859726909429462053835733874834836801439095444596197748015019551997718176650235695264903610011873627631181070250829634970917214141197734204671685032941103100735967142215088005644031931786425877094144048874997517130280014472903461127584965172947529232664097121535214108402099409946180572086584411454944313032236503193335371598099883292759152065467537476484078852290758335365676651517130070596723333201122140320894075284659746309011391211997174572555673454462545442649304533955974188026196103675955323193400132397180524270680093670123612845765537019318655964683936884601528069861759681744570356153364043494822961556259510404159435352071254090245379473343820505128982620266180602148497422451279836643518258406829330651491230671632028915860367431542069487984371561275054517769804106476780077665302322420254810928633528027066884541664113691273746828491067160904523952234089723661964177589758260893405717793039040255200608487660502181869765383423849016108831861551669700067848801096301982262470137269694765853049309585063725295859692436214630004076062163225439547038422966608412932514502435604701216053148727465655186716982950350013953673535356616571789022190326719370443476669462062921051386765141361795067784066201683109207767635741879181294969194881565839800534532096543522022495207764228270317116660414432123291252259454896722092776495609400778939023900461953634729462279552224057255797179603613345437748812742245572585287603556885272149641015343477945977602879619963601218759637098725914260108117676591699781296534199555058420140879226139125359794799170846425223968272842042152949236659007868982552433089587025858674886334746975539505707522255378126639506166184577379687940751307624201627710775346572317519965151496888125843745345823205482847464817273305195506605999486755098581402800394715705237061843088120663827121841943754032384267712451541666824512191567610930013638052109897953440998488205184734870272413565337032122083679213530492243038987799056140892436954000649528769083510120473077464975829903689201640410096928630530143206225454965670126157471009597884908561744679441358503799608862895276169781539156938464206745941814354634640426830439881583344716624981845189816902722670846017501109833884123144812506695253171154348862643965383980480437984068453402112309848283988169740268714472328001669206970073247053505812298175583722075643575288298313580001650609835228634145726170101801551473709996397130551593638262527857185495281086850632721768892508765513241211937613504330040107453107119676962554259093691222469051026483394286534217513031538666689251022489925883252348571940815514904102097731424035458910592939382995028865076281486451007263591756323220319527567756635589050501556264218871103746382889270986188197095633091783339846979859276429868943067787049685966931926799970971391291276009308111095730705462534345346141317884220058369053019295656239536893556079078335759453685110970093646832260921156801239904151003256791105065762075072898648913704333990169903867026097839765899013644075710675888799919694836367831026221680337592121196136808860879958624017081486356508561147173326420127642729480183688275975523801066755661552443558342878069067421634900018578831919847278054894390869091471924138398730146739882296252978792344466753008655903975312271299956871827078865193588971852709092573622002146265567514284464847316334975514840193738111527786102162634725096645783505052011495326200927602480049190543165599082799242686853606986728802455893640155468353300698206839519603170027107913671165485055530913804186200423706400868170680497419357629470146639942234256573985329933664528369311657188403689761964111778953513134933205749820100253220744490206205391743729779245754349245041528308696920674176350416518862866148510587700585619794573831856361911601105696368937184248979592315372378507001356242328180917889252352261305123250469427330963064274131874215465097412578153810479267081488748286013697273529190006705084526580983799602170350289391748829334260394846848641141196831328963504577795553714786053457470385143352614465587964006750394849438994421794474544336972824636253055921693049070358694209256097398404387708640992665662965147713918683371061130081018276327088892040836589099790458356958295816270733834392186923681123394287878312124174924494050987629495415455769739954080951709072899652210777488660735177593693638622828436953384486619023550040559325120935298386214495400721953074916623478260502528297898271008997454330700581410884778917626101440341437928323364180977849899910868660215392347411545562588984028884162645097146846433812056330515792259473351399484882218096880710225031793991594478635309489476865475260994024306308961896670115115028322469547501128231421404324979319882111342911083602222833033464812324142475151560174639852945251437422583094013287820007462374521841122970402084036679546167101951286915875032741146456167581654754138357376801760268168935475000839974375114241590665968372761038324343493738904509141876686628142121866308818970139355190905178478866911383311491281989817650831510588758067036461355497962304172279799439706820622045032371595777461898066959272547316461676938830608160565469640064072200511653368372971661200184572007788466042697882953266855008746038300107704367316834141506192402914718078745281118978793856385417112882875035875097608917161582926023689278009610915918026864979742111996024969530557840891592318466359865930588564188841078587921685252958403759946590096620479964821192356761559649494334891162021812021524484646060140033199132064311013039286224007848401210547617122843802156194991610169609399017290054491278265944164757916942935138285924808147095339998136662146682260834519045683756161997815925934919887243937560019226942147744491751247894542097201633762288712237481050712503310987404957331272840259695979729347509402841550219322817639032414793909916683457146136642053778929710357259224461633777872975906870465605844769192310370403850921942225909461651450809511894732789810691477934401322969268808751500608920656937614823724962555660088597123308925802145523602385793568796978294672644623746834664624055059654438451034366001870519730502818005268508124443140230465765273755474649415102628108741846802706791613815186202001410066532567562922536293421539026707304471713305250163079306192491472498374764247106151326644147803913968442617909455312636525069289228307620792530667048480424579991973069802577725735312595106853142797098012547600853469261000635404924032325928137434121843352163628107747811483519866260343372864398455216584793558554524950685387535592027394815667396156400844431278079170667321754330589682281125431098982039471050137904602810397271916547319259205717989279064799042580749944536208191961227327035884628731583612364542429751883523248241672045182445235847763543601255992974122102013358298121386322466975889808853352591293994593755450567777436872446662516928695995896588635530339616938987419631615448227767474053074409660627165820337650401541685610451827676015607223526494514450562448864315882070684116689357327771052614852834825321651215526905568360667475882611963267515911676890430408896488618333000241240422368172256168030796606949733526881459457546443776337704771773029055081426054781118904254636616204088215965797826149998385952484519548097172298194878614962853625324567140795867849386323420899360136921099675510457003484102707238569551910322668919493084868502645078957031153515473698441282397659388856184348699582806482763518317941726018588741728630923867185931421866904398962286684174464364147022927129612081237924142929155418039194920917396429441272866791663382554554445402379350198643767038869312140338093140943503168999730742760862890335360872490319757785187397034713538602240149613704949715023374096380806984675434211371589022768439961770108796652276481150404293766296572593748533265175455515202621511705665777090381077064175449516533346863478680181294985960215993228789083485665280441168625502002627181630044525946799075471629184074890708666708807472156811303269164635541076807969611251971069871123904054029920591605274638071682004498725948073189040106545074962121810896689030974712001324128268293178909738624601731072819327607751783161486956411424721364818459518309869712467777578881414512866830657286043860093609430583753818320659772817958004248816972401378469734910113497516513057303087860814974418654445891298270485904162388425170460801157890153189434296922227341477915453069177405332950183557055585439416881392628493453660750968064782044189188491676848605823496382392232762703126592164632140119765839234029415525103678123286966890602562078282540760982093728013706378960332751428780131326364148777711349874550470090945282420817754605441900622537721388795655050310731316518716789086036548222703804468644480370205816470208589694193599065261411778409718045059622117588450408562955506945940622583139370482533460827897351014365131168261230683315076657244850012110220958658707794127100741511691571951135533037129821115068440789202835076311943370270986404555124128470959141171477383388500301571005939521735355651152179299985121471414381253849289586639357926817319272386777831358023137770850654240240760533779079319476359971759895105505658378091903296559857229976891851384673186598898192942036258799600965915678858977200833872275456021813208312661253734367390874212337992169393344253832348650339364553721815051068998379760937871646354933971079304419094660975078118618895963256254796919528216669541970441965594878117498492377182928760023227540771522001069858373365180358434891826154122341114031100765444972474717748886975646599619559006257149288907334886910343878232361784909033782342927212413789078405365876122470064465209512775803524635712356603897830136810984774632782122685773169673197401170182804790166197510994558355790849145645358429879342525834604200292780317147758907505363155236930595632159848720641909039346201908967859386291058410501609378743000963725725053483993603148050376150473067250073886732192851346868299677475697443989358397010341383215553657039676062241385431760323081718344666834235412193313405878090989591780200232320692704732652447439276864046077696412605614639224005998973604692476368081225855715429505689172036559392138334900734015704784829756528144929712497765541617792289778702629769539670248959702928067325419874721200388596715168442389748830250487002156389412034312129812535968692501274881511021311756807624824661846189937512691859761672862045757493877653010925224596772401867350973238933044768771134263177060987600921924833468824838204368294078406325355071163067416089898495049602059677879588016892441503384656495051351628235858497208915749331704711146889156136094962139699157600114512969745777868272877365126314379846476094477594007545682880925180975616418255793527019831292119463657867173080229127247323132173827882264232470139251808973263471234825520953881240875029354439478402085445641660027048031851775458499944812687519171263121721766639125196546435806258886804403657654270948499148991052968496420682706313178780553754978021909935361904147496759190907714518612286712887747870265793271545926963530313796684809306248538871215888036068488756017234159771394139312361114650848106775785429699140847571509769415108453041802682924922741756422445305832160600828706720919989917489551257567985751738513579987284454579374316346065782537391270339465645370265680503832849308481715617368534205141935867228927052702593201647595754265984381045746977306346279430924619980554152685020084329979488387882957428913841689925476445816477840789151523903722775390263420674112302237973188213409940567586667088437256092292036271600241572761838827037185521022594047774139511641909303475903214948981656904354171748603544528317881456942656560438694990399210091043413470114489739614200506095844229336031593379739726757641793302189473100575316384420083867008636914764830298501897150256547508939929267359172770589940566992465895740374822895662292509580295606925110333581455874298104112021199761224741104961497154169791227066485250846762440612656112504052593116410880797527582361737180107938155446013561612823875117276559452398985828737975099401566757011376064874729174764434093972570757345941185126061064394339616636064613788850691714931503386708838726902772279169552425745118710239062207235769235210905770083163629399299440602645066115597747437692643002306551665292568980280964456927731079139504460707357654525775568592874543404269587888601345096408955639075785515958217349136470287707687686724689411429869310538168014734178156681164821439937243446081645131195705532136303276982654280677486655349429680321717901474647060719940345240010675781017989602202744628737300064948900253138853736951772879020810968385022071695700516323856550731213454788285212400409366306508078332785616366377349208096841991712178221657809303323824409258408288589218344909681148414671925766874857935660979871135923797411388984324828154782279670597329046754821703969783024040558185965192450449026499917414191831304166843291060015142322039194391500729410045391527740351574486666322942071081341796490399899748447510024290887925623931746011856984092771638910875486119693093016634138195984217278726111106733574268199681591168484803422741559890042698852169937051939136535427988387513569975605906850578442190853572161972480590397928452218399484499242003150511227658248346974020255017051913734194354079387194454261882557210478897473838581621363602071501332558826705404152122383009471613630257183921955938571286058430342468426105565190390953922764383032040740161840651807480146507169702003647452284518177227553476297806778838189479494421880320180847704429094315983839369002615084892293858013093039023704331215518530678725224896718377989633215324544141180605373271338639140955606441148269809411476221421554235328880669964568306944393814419438760434561032158069991610305559748539399285121789852360395870646229908352446222270625628075668753594786811965330240929442474532026937964244253910638618147341100096750511502841591950413145723978414277817771602035393047034999775745128430582168489300536451395408630559954402320408065928750182555672501690334459087520298293346149938049185342985910534161823559327546551503447279257606461019652765618417317731675748883841622633033109442110969342107631411909153247837734770217463006638845809815326134674104390789013482999600968630416601890686362723487822757463739628741933036115619488498793272224545920282629295232316392859633198773850543290377715177465838429025670448068508342978831319569052977222276260376773142182021086451702511800103379528211283045238357983690265933084129779954503100635212899689136179077466454332406140359957913970289675895363253482023545323074659266407790820484654243081487065135041257454688300248228977077580398094130055284326811164311434511294763015981942679201158906882508372107073051412773093176935135706186307872258445852836207727940322960533140121644114109016007689486534559880573701938361988413005584791100013459962252254685904911879198636018108075831502997054930780743726440957646537136034550943671327547881142887796266291357997169024592419298557216000935911808700552321734766257676664378810466787828395432988970798480826042081766552012572892415483863145525406566566437902139149872229649212634964161589245125267823714693298841352822539191004038115337518322971345241286003692445781168167080083306456253304853145059215511171692130457253141153049557648670991270833556548469967955662851064440060317859269783057928411199773926527359293430362264361732492725493805658041216500134345154247174435030464831004890944297203728375346915430244254032026976592833214364585381026700876930013016796042394156797362610347464572521393342487740154188694399964501187149390801986946277760918287685923129805848034734430718363768034923023754002729454745036182715009677828054694889443543728281678416667202276684965747319604250258966956390882513349940888884918441912273327517744071082295973373776967291972197816306118092916450048183867182124467279923932826193819108650233364886998008251716589925316278360435997740043657901544439508468323696954763587440989084361821028528109904947365668338804524324603417726740696321775998705186543414334864085046799128661327539087955936522711121327557436774162081052914311444500463579906282537664541656773815086425402496750849992483481780243076767209345911484372120939188259953532489031313678190930311597427351303301330825475827280537817344946781363023253102421180854873697367080473716352218198362700984473892664864957226521621051277098676109970284097028018230396505301907171398430394272255276464372704488178450125213456219254192095478070136760051671512720336372424790480875812547206683672749008307977629973370217614476221222599045584252830497822533719522818156015137192651796252216898506769716509370391255920083086982395095941959174521595110945853552836446362772218285496337602439146755221873025568445332995981141865782188223280947549363341869773792193033063803063137733428183348540274796272399972709524266138513351307282142805803226592741546649250903389750164861111206648301065309626732192671609881341558542618497724407650929870769005272094969629440986663034546619869247716618874192050105761996927781978732726821532387537657059975352501307565549764559894679600773021356105401394184788652799644751541199525452507642117911337243867758870798894117816412521100759492236534956808990693222614120209377373575639226145497498230393939278941703721074964142434588955666681182665330164228364405208775926470262136930481867666592593152123281061865167354491682079384765219195138751352889617863959481851311708359673511522354199004869349842807877067985195505972443080740681916335930244571545281061058316978996164553727897784095215725751434719244727213793682524429645237336388197616626543645386525723161278521201900878950768735422498934194173855302579080595850695823125543148428768711612626651631809863822653743491435613298035521293064612809397974084343919700615272696521653982179860915997586802712036700260629425980894662336552863973236382816864548034122477179303796989693353015645366065133585445773192287016724618962521650919432630473843094073046468103153035944985102920143177132824179807755329875610065016125724683635394129082925264469610533741355328443769699808912446079275647125069291172842897754535927660223660358968503563635950400361433953638950983142431942676175763499295099712409621679822033352636204398680294675365379821276165880341881536909105913299770777615448233661258794647732247389636133530558752313766784150200395690831569535696054310988388899319391071281161988804069962451111383394026365482269013226725805000896116268743686200766638361758405246268052025152762400705269827712003803434336409008598298535462622446213119185250598590611363307611035399958748339037873166487032632222099560329492499833420633085980284016224230329363471434118888252599294488077260492207813999542644937082293154127564108429605976963001660690591482804329871650324804198229991423598112143831311762613311598462116827046187812000537302176840117371471230662337822324404915665448426643047852580816654432926362562336192333663538706342878879151597170224241109446640534616059559557875353661601152906706742574023343174815064667235140234012894114732902545814871136388022469661564174851715232844717855439514700465125960131152950233463069018606377574257458117975409525260196039077603035033209589705175442364398634794557536904471368502392198611116960740800092141379889802712442264660662032295340429219371754457912001935218349878347517748783813792312551438548024026829508028004618959101516529812373915669648667301339610779959349722793859892770310627644571630968181655231503206998392905206176454566103287283538141059687340348728308985029029282525804943785831605032307167189865934422441890465092810075029896528297077088593108078305846477975406622514251840610024583573466518079118698930312449937063332912146169034588278524734312088586210137737558313942342805027251391770154669120566341022767184571592275347091504004501893864336778260524405970680461365002239178126221885624034424488423804665064852011704913125727205124274050669596940273375938593125599524630786544472496792177194869676113952910598921874481480532287791673706986251939114539957801649412196615230601397288118543694642879986117321347097714345185747299360619087757683715334701767102468861510929889515838704094319761986145216101863148491977610646813022042857070898951079728052831369735963018063365941764281465701391860009746907560531458582558831016037736711158423227011733445266380001005467128975561435772478689777291428622047660957107195866814226132746778531385416857470821612998337808482416272934422474237799232073363232001222225818794911584375670657092753531368988312071206035831701117839671934171519473333525445333533551743740243349774357111083196927932608413393747577741528848196809053305664251415189464271233151955122791409765808964746466499127919935805016299394063562473346027378020454197550031869927593061544317091308502841061315181891319716254021585974274534934673547677415794851730789943842253696259460403037154776530083737585727078286742230382213288044807618834894592928970753400376160580906651920715199996675782606255321039945850510737338394138807534945197812864059042327022833995320447220488829342297197803864979747807743463872077255509539039295280274277406783704769722327008006730550546194713454554273370270865531765538194971194039742635968432724912291397272717149282032653989239662991347175593398158532522903991481188686543562259543051634086644494674539278739026760511765099674864383467369250923625293497752458978646642104770670306013805220900052313348554476371906235125355477426569235600837849305696397208916712030003203094363318170776086115251335047412366750175700861540662660339400529986428265066223349781211122676801500359932859772955095858462669587646630759248018436903311413243912860211698074506039925751137261342992468308794723518232116599170947168265471660440340217254593147433709526483939603936493689742321377665850023398277757486975652464556536786097671048085670539640164274411912372924407407906203142741131221925894049910726721256921399222545299295465606951354988831035614324520819008431425455440850901206981790879810432446336858835820138392018578580280238219629506572147763338397716715685101003674755428537839957054698755134568974306901831865234297621121806076948927853866168005803183297297006582521408908949687195186012913206950733766889673309023840398258657319848078598775931826512630714612557132197065093198461235423783402334605372280913134946463393490583496883712729111562401984454650531938103297953358333572128388115466127886476994105200932121687402844462581021712801702001234305007350482523104887556399129039121709861118922444747552564448992982082262820265768635652945395229648098834219872127419373504123215110787050014924963386313975929046938501858233834770461334803611952985241483508034299653250883340917396008140159365119905546124549561702079480242389363457029730196094087805936085667559681259865028837668557537743294758619759054752258158415573555621010086642642757679502175298309692836489449035251233456080822402717533678157164362895821044098453506558444752451798241353441404735656063056208353480335574613628916824946817016837401929446699946596802922384476970066827074117993869947211328593684972953317343283302395273833967635289727046448060336390523829518356905530438446441723571642368057456312693513904999152661363157002569517276339373804389015565786948602850497976632958829805364613900050339533140309478430439124544199203046560224861765413361429815274193789750192722776968441735699527234186226614615304538532037453816486291873882812393339280541204355736434303784948658550109451296351355825446437795450772494981657787475240502045195427613539827189729787726748995247294340805840695426873960704404038775852185284554812576248432593596556409693646090173850692985776811545198135375105721823155873112162538271367127135129679177447642179881389234491979134081016879336716316509555135278279412247450496539139058285324712219227379595510636065829980361979928484272698406420807583534888630961788112369638335034547330170204689777227033894670077972250548572398436377335777862316373526880786667526568312506050295785049776086990618949404569637496027206972964590946750738473397743585454877869758156751217522424841481368521780707853716967754828423024288168567792862787522692061212264903565721081123769837120591499187511737280797301700508042061203756157049312925490605735523952135991254649067035051598873075124833853126115973221624463611699275136131304937324829806790161403987916433382541248323069259156285417160708480298551400659846209845582059319288206311984922032067516969300921010135016353762819420345880796821112175740698072773144614360903256023275608072982737209856501316263064142834251197744318892091182308359522319794677963561797983062509476390663477548916236568518925650537616385890215144540741229423616554223300144040889410310855711447722856554494491521178745830124735511386010684337946732223421655788240953632736061677880529699584951287437867319689931266932452238686539913983832802512871015830293555802457613781126826690016891716522932001152301859177783016883512476257127058532054345245943275499834001954495699677679382309041912289665672149416931981935877370943413717132850032924688765676570372999566772158632210883440317278546285508931849594624756194471043435159012687031211453311942145675359222361865538236274273430418684878054186702585218021086312871849877972908063407346302560168859192356571452687572527932883727831645864488439921881752032324808477993560235245749002616768249231175807969386754023973905549196921311777539794040397067133748378867397783181116198646540166324717996413100205356486037155127764166021925358625011544408184875378514723025656391174650070096866365894780344724958363737096751830684128328121703270529380844558191765094321571126545633260883492504916411699935626952763149355249547400469353588078040543748706586302912496635695811362156245027404543885618135844776480480339472241361644756899536617745621507308429081366920086678409533352194735484712106718326787713611992980134415835026699489417359368518848747022663083215792917609296525515614715020384003191875477491233280338952188644107898251312392114156538128441362971736695563962329155785730661367297892888979833004661144862715962480660593892919678955804658457662652420887858792690116341599654205211509265618830538629330769105532180338665978829920844180651243764873043322372351350136513641196842313638569893302291203639646730583196290528121870703712527042110189921875410189038402519962954011245572217453083528046785210697912598344486478921792224307527597301393155676011475050382170974726129671409443016804778348236733187823379045167718809671105718124137631681952832910938539694524731456220787840397226813253591313483450350934603936765505533205127848130649433515717255799686051863839593218614733077338396598864797573667770323201775401401939794742681416008957071756342333118455547780136785774761355491162842525379260662205580386496365077686349689044877441635597037146307692803985517688102543775163843082436072143269736124492959414744382938788731545993039421507248991662863161144651660642283014351788994554643090904059733939266265838219087633518725773197664673269132190712126063376991911346833268056717185918984503438214531694164988943342366775651066632950350837756139813179330725330638495915474281809263409183075837096786043177701219349704978541685460372605876482887891770816573391733005348296830946719438019937192593447176804179178900819881078904318903882747545838374123478760064943193727452316826013545626088211393670210723279465072771536634899914159664066790656209062183726408571871928218428211222448796486390190673697816753974798390267648356059829089559293388789434688827672087890650142277609556866105347785368668233724223505749585092593702301115798895618616604775276404290737556655720708713396797413347789558748329980131590029283699564713010582384415941668914503871098479203394196774894722800730855843931315589183059511787459068555902350761892883705561847381130351636667737554115491639187940337207906785056319709021102481491061119180548120079754860857107997499976074385502375750578747666736609462455718773393851126387296068374463422340925139129053017530316153428368171504805585881160729372716325776799592892412423371824873579490891682575913180069824382951738973411148966824176771100380433472525945298491590103988452388939508270251039078598925039816231110183113591028360713809738202662272783544767687773856051645704079388122118858429087363215438773343612912391751014101322939210105439598577648099915592373656978860977408379990484678900045655302009785582224820551759713008887450003645379050713358529919732532576510762265928953623317783263546913418564650646710021278688333662323863863914147479133507382632512462946368976350968069554283715029663010337856685026248823098254671120630419553884745868914342706424116677544236020625617680029547792988347935208890493540996327667730839598927191456586127491036700244406293732337936289424731063873780635880966788776990391532008681064000657882859059034537888017613180677889148639705612419871767395550696320090240636311879544104633670971765491723918454470628403395294023881010361815464779514808505576917565616278544967770624135444123310025210473639258364254095103306091611181018413371989713723281714033817274038543440875854094769773363748108511520103520936389371539989374537662088464191353933003830143964345617706919232034551844708571900269651693011679919345461312909634058593089624648387500136230033391561483409149431719874468105410121616036145968601801572845721722566599708186114290689088456720308412391045479990716441092512721631665072079587878676655136828251372170611342870022795803850623504511285222410556549313548859181614891915645863456523561954837037860531981081594622987881124092178099777046216613868024035338953888287264122259645454996809898320928444617253702103870279638078126431581856649189163443054811044547996398830844393224689513358915326590099157021538039012178493460517028469689011660655671245067516196144966892931076011836900780219589871029444307789937627180084969357703170425209090932760952745097581196703913787236424515117391853230404658804700691867586485724365240022804935327410511889412164135031541367025463753314404217770223107484308480208335940196141118270724337456451563397729182307887194512098666191935061978054073084627897191717017183953565130819397511370099019003217790109148925136011915600632809054155236665251092453440859479232463545817049647863020141313640343900826184645055083021284986798928384384438877985370263021434690962080213987782290983658085351711562220912171381708848451512861939438151524409387545713880201433700629058838042519403982637630771663122255733535238118277748108424741664222963113392551343868368255693965813867127213733606446299223678516720097981189294024960603868683973812326024886544435135369799182656019240160936026525837295446225559998299578939667380557731796385060456558474406130798243361311687380587564066448876297472318699218784377976215140346383211050357226257113684525981750769224703827788100138856299286493834056629107537974822817229482950653777382688754761074249754562372965939542478079629359476797383126133903354666340658705313948207156273910450492390575374262450892265255107564048560605425236288733025539841517438343380085202327383454299068645713872294437343392955396497844880809801827337394258984532682991112905424872538256899690529255676772058178697095999885601990314191643534415182101445409770384606681664095721943453311829872114920535962770446051571828775250401376615517528023302834279360764310280007985943866427503081320089651313109798603321146188176216765903273211049697306062445944435350534687290115328369380680923601383209425484025665730217162364584770980731393090807076920094841892397198992515086661410522452889504811308010611155231654373741483094138840095467255738301851682449760517368308975816536265860719117964049857388142647313242785201061698246140691227370889367580839997811765944838651929995544152220971077921938945940757081591118034378514931796849794282218575846912163124962955336186485384768727650809006628833226624969607459509196610767225026637969897594336577295091486360990438303048919671133166883882510837203358441928559875674311491397058844399492316150718752306355768317433254977280802845476318886737859523487752447041550860381751048534007778194437259222119416899541566878658474729643807824544970908840324525755650019140036632032334516789189695764139627062587560958839678394457568258413349226432464622305785363689210252699376871499091693555073770387503269383716836331441130807308550288421084942706915384883164389533479165663488451484735872760207340546449355933775637366327587035774525496930752135180805667925516304575371521180649888480689781733405940985646606147370579602505587472722546899837908229048191162820119413217119588580180812558925745535721344747289922105740576239684595898799293866751156531174233982630487330331153880194792484564583620305077653338343223389244831551806164465352422660150866275122769325816954165330068304405191366656507105746615907813415783346087822419234973579956023878575341542882563798239415450400092623632745205951455735443593164365022095915869856595247645475084980197577334386729980713826957213947637193582416994013315997823005769565749880148973597960480796441592811648069381844886704250763614427459605553526856671295644171223042708178313607911246144353958040141580565294288047286443538265838196840907073552109095847785531860117046018022208520864468654495064042379802834259708291215712217714796112621394537789804746677936672712196115703848197476282973062606599006560559812907102568190278462957032082834175952816838662102540093386749667089973152647116450178179534962990062415198688432576988107533006278859009292748821338962131343048783714979428082480129001105748383166975576883729453672067128684594681440651563540626515871087429303119938419386496861506842250210561204353468527319476846189658017568164041484681916991325821351723552682633450599425436997906955766589173262514828813237495623377154193687019936659797078626897279975653141115998080838650032040631574246581989836472914915263936705356158900091751587703254914384882313205822551630480956789697013826129930698399308014541273891570104836131914098076840903417441953786998235390640648969513984919368776216775138960918267927292625436676991867678239091150769888328970179182275658685272815505432227921856040242264536762312262456602037434082419524113379358371125434880353978408691693948089990170103975900855175284267362291866010008188205537049050306867856802628600557100639272664935309451067643578616441486674509145227356383601271092969726307267483276663683240227780921655865557275119972325740885343564592932786825996120982741925226534403693112094035304598611586134655189638583747148093640555120440632863318903083737060051010018330322778649374710926929352434117106570534073274844597725230999385093843235932050485092310971645972283135699908062709035451636400758420254540566240210094198688228676555394945202098537765023169548945614354264058330727688717280046454675476019930879059540075798001212200820466192409173211349667868123656233633220830948444619220320087408330474315545312417224655286691075727448603029487107218472230388805737595693570353929485603316821497679333155002237108222329783454450180382499592052477987305519354214891462723364614643171357258199102193592600798639563106020492013623349794883684925000600085333996190849523109649959886034132685900411646961892596326714950717969636944158136368714024313698002080934747648800826611710149445042086117790897357128030715643314273970330668593311627873453211948134115447885019263201965182381762766131028595688055523215694671401174082889413778315076238178485617093473085847405032783327579006839840332145255584778093040862099033405350624848693711666697682540982879981232660856639620215103930828187939410479827935546883440659723747304553859379150388282998408055092761151671062763429499374772434514245991047136783719992190258728749532411864087708447654898088107855569785557508670487826934455060951061743382103590394317724204956285783294131201964781847447792327173405083061858514852802047726888299092551713753579021194137711837609373569872923849214354785951751808217415317382427801183845545220608812024571489983500875019673930728095312736367795255763576763838891152897624676497944165268411529394347878966458219519130900946919520174067090843316363345019586810854258051152210111744271594243576411830269016836398895714981015068815720102132827980903408460033504838719738426483667149744167928752784476808328793124271696463506018620545560590653982349175999459979710764098742546612521491958629911433926757876904661209464955351894438989145483195032650526701789056374141195093879129942681584729677799010093308569093281048822402771307573319352500272815671761024141987368884913885178781156720515274743662089440195791992327856212808183631877991042702411055633807210375892203529568046412827943815682241004597481694536046135001991244699530041390706537494829821359892713745544922853952722543614364248552610399008780999940738854738381381500207876001429622670077943581037159054796824801329630625699684666515567149161368586019056582993408197958673752983949132047411255095240198717685733717669517786528982861901129346459280327469681098140832799090654789270615755822660682795008840529789132224839753135066862081344860795471913046399225160484062230077037564668085673587289955305355513732452417392203207365091725906389968521395635104876273215284977612692483529035473055322365849419632088828843729920030018606167753429913442483151718259376654960130389400321497694139031345175175254504131815666014897725279105748510710051614000090420297065692519744211327578153890692574376523766395749611417111415399803868719250060657735660104259229363930172404821230930133469262073344170238283361583722270738674701634062178678205312493519042501286093798459540008740553260266858332157087590697493805895876380775226039001131432945139600545482121660055268640271782217389252976204109011303711263778599167965805969152423773816956835940764187200706380366577994170576608424228064666553645553217926180470624311026937949536712329830263135607034241087302589771785139924659838865287694784462600775879710733185567158342464613759780035529046237035296725174196278751275222277245922781196780247590853772095203213687818879799027579405979107009066870628497743821991319333403468632718290009189424231692937514296229581054289456140511973318330550122019912863978154799635464680028142906189003150284651909599039868266577740231783712173283552643728606422930462158077802909582140804727924669823410698148580750575125188082691202945203286592747451098163378147608742682560663028567841361764013468430034709564425859160417172273617904865832602549785861708615199826693859394997429130023523478450041311912869672825088117308841662767706377739087640613055424817988118332915552487804398976860434491316371904266104579019622455400939417309327810431306165999234647852212134977529430842553374111189021755899369435050023623702797539536234196934632477140456632129826704831771471954536878509713342339234997180619877092467517732284902102664080229494306835394355549789518852201209400328161142207598460773974599785356753401252034436806256374890448056474124344675419695984597038875579060335995850184670509298106548332181950212041676786308602604598907415824602024199650773978308466235312516958836036558056483451813950984737822155535553109434563000435031282495279681803317596251937611695418192618414434046218423620491473083134415446164676180520159546416452121776462866013736492835566485308123952014526369766470839092833315000329495000520066980125581024261971360244041421763759932806821598323767675274240259091368687940851549422043224428319772696328224265683662522910560840985255866918434320193612867311064851909140048334067004941769708757361434245869332182761177207115092212947393501877958121279204513906734163623939306905100656431074899979167854804244083581713241283406861156555208782583191591237663779415723089968813071098710496151566455978379017452470853438505754152120318660905708100640039143168077990709692260131399682772710363365878342372686451254235778001519053535306846757882238662421096663751412138299834449374357630797746361697571643791785647371574102251314428984105259337036908832184280596770241701960868088284016557799369718518282074695663481706344738904501590873152011924535708773286113740457727652731065685164254486020805996438787679624107985329930952089888912294709873657208701029756162611192030529660770060931282885980199750291856318153632894268266761831159421140046110710156756950737977051477766809302563175811063838661498546085293942640267410194032813392688471622697795553373051015348102925134605320558638985454114276348698601511955204325340072548672576756924937417133176367867187937571078095987490654867374444001814260519777537999324170349178031942226872737735726154457712988013266540460684388943707795555889315279670890185527390820670013579980953492186660952930993203597610735496573103058890543005849555969298815043038914485306309166405705146247684614053164434555980024553785387315310132028016075394567636973137134111987017660278228074639396633928385030926070576946260276479266077355031140765973655393871452203917238599830325299518876208362767724654499763090373705235483955172184196649521222990164273252088702876241752338957439579775058703473049478490611773002199832649745896514845590833186444497261074760466851684047981002618891656194187006533418767803359972622670172332992018095444943286381597176716362775317228253514213263535827218305216501613565726200392128531836076702792120887766434219382803450143985933703907086232408652453328612359526447171401382441594012375505942194795891372483949554655611149071035364855789639986869274466474433587743258016899474383922272591713428930230879914377517352537749831873484850907176363498509798880417943865076081410422955965748973544383310021078923587935221671764473307681400576506038833528631733283621101512460922079857979619951151732109108395991824390030820591129714942939206899868091973958878607833687853412418472918949354009860735829952770698481750155126259041652870786136917708149013146173713764120791898934647178385600540750262427928373821165043089342025623114969361045325527657460270366380780964016559333365252511135042647987280907651620996950505612864134018199310606405511149252783166766519685366308688676351359005147286287454843181230061913056455780870713485991544145941419995328236111795651253086096738188659838755810397685396056858051704077423105502106948424565300580537907187769985471102765164759039362101701417406436647643078480938927838688955839706026426166686697615475962095100220259921154421296172502741098781807512528407751414441693387769011004200407305173727144419859604174417195375443902728117506550150677027980457463776656290261721945209880648498352491961610017751191811457889406853758679297507230996458353063780659806444230590470006477046819554383046861905751786575591690928908315730261982674773979395243346683074722046952564530019958033005108769234325942310582156862960076510138711937575665519521610834856880701280933527144288240802096798548034251159916852680150848628191533430644262466475780166550544392305604332297517026084921867289008171739390171681541753375703486062680091900915946293317782767580223698869244260858352794657739448673870473214876621458092528787135965142798941227318435689737328368030794324974575368779062896620492138350350894285245563207037653369877090510617049595358247557376772179156886288885321051157214581832056779031782377873556923097354036895732817656485714141535949309026203321724965172119114623784756445440861425911449705821240347783037343580337908300099610658759356458061785805911706823110636978129662188333804435062855266196114143670912574158096320812518256424916624699370520255275450011834922861851957507309105625974585906157072820838030746157007635708995838362125008594556230646054981233307365925549436425647565384308566708494875216546221564736396614030147552155971682502732834533093984875038945829227755204847816479106209916642329298832450095910552723036706755266252217767930958408208973713751116804508920246088996724904884631278416995661786596918720094462995497785702789163444242659494601103426193959338186648446631229644577599797343291399752888072014363737547542610274803793613875098781553803117056805357167121762104270958933316547135597822686201177291114912341711478650417667400547268166824581626890752177656649258895872833470601359674270358177423779694830634399755918049470200771245478007929943574185246854933493609242152671045287914217577401903731997811619444519655375230445119746721557947404289380977621816708405147227129517238818279963312402364515617237762605180465980213809411855639282836485773942188127633406883224052282734377961689234626355503632490249448152431592862304122315756929177655917212766199026770049048380240999896119593663744937214028613611282439599997157118782893336164084684999008725926134174658653595982596873548991315329755546988526842670061467371677277287058560904763138255083298502436934262727178253147685212337943677984089212380553148769635137453976948162482146055472372111681662075745570425823820441872778882972710020172511325702555365700156966478986675914057854587557004061606946752555860243037742931129262376253467722469836266434651064352024322638354996846060075020103864109255678094023159668521883821957094387093128606240120580905495392690055371099097144102939223904414452048007304981016391237678110381668541309596746625348708324834971889711435391714909558190792323116043541724069397283397124551557990998998916134146430491798572433557345051585207168564142478306189053864559067878333442152475780618217313366485703112438488261978020697221605508350273148797206007965707519406610585028386507081180447389138964583151553247204313399620485636110319461069339201336456049801612968008000922589450356618189553298586496540384024880891012727575026682427547007304808409528766962800106591405172706546633880416651862343689371786262040347329334748666317214286289711008448507645525863066390843195985761141904324617483523200724175355331289833766770462605470859483181823798070279427301391286433327136694912473346649531195170605926083639559146457903445070689096841372901782898844627930036525670058579235838074197154332111797129313149128570718859387323807499605038459645333269202902953381665672571802639116355177796170581460746971097933281400903911623886004821031833998063621982929713647159117969054168967125603793596907347504875426808286422067577121826910587168204493372689157368975849527420044019047645515567984388579142141925724911036567734734899611154949388546363746285065451762245718307377109827001315367619776012714257229349067239662948880224238348131973461680820260910299877563984991771383370986782596640565735900838799166745750761370636625416031080061225864051244791012255715708205079281438838203745264215476554191758313535696105844770603018763364232698792893831328935411765063532712319701248269084943395102598337792493121809858536217000753427148990887954902087151334230661270319665243111851329046517381100089493019426781861162794465331463448745932361359878475727283514616582574082413846900233701231579243548174528939610139999548741008415501314171199079453274079699500094657352259388731016866086221012462536547475283508336682835047882384160422234418980400210069514159812360420839063939320282125954613385319513901703192314108750848622979412947230766000081510256024747381192926610965470032243386144068581686990728076344170012107692685716416567174703948872508410457930334717966324431590492787579543376540702009670000749611426701676149766491038535626053358674949337237471066888953097569566739794267965258020787908874628574016721263297869655654769788379579309057112736228113415272153096370632625393487418232027837239658709481292082261147279299744013817262063960041848427274503802183501760885743781573345528942198629428546388151679071456801278590645119201662632870884662680723758408529765923602473186724567254324879102535489704785557418259858647145999502606492823282401584401052434761323825848346679795607011879156377081586242440800371822013261544370118425067488990284451625774857352172523876864102466626939334865024413453671319942939867872867961297435476773062169906800476755521397153406638669656923571713274372881598964933378135070742409844982117527592571229671986567594729646137108007692378001598131085101696539679457781815760892685078884495779810630052690864467792642791710197277595235744406862788806832175539323598483949274034587234392990858752674260551838581834932868772442321715567355459420045637827478013122998265369684075791802318967144585920090110005985781492420582793125418634455614980702586228979445166848591458310225975267010711483880830900120459737622062384130127386744890395462985831631509879522486878258135934190196679141188380157027559928993948162701313652098202744192830806477066656478519088164891902714917283856306267485844099770823432100448423416530931291176129279166039074283519423830553378715933916114090933695664774515108428661649739146882233208535238006786179737782890588010043751385060110433745741911861583756221244103827738038840989185604865149034787740309199647210208358061977583039864736359124965904364229426983776715160913701412388246019276934039952750305150519899066092030446985754741878407538183477164351109815734553832289428079133158004824993615918344053783858695969597784271941046167139146853764732137551376434805890523366986729228974855039313877261747494280134469668288987009636973530045926471586445035635810468171660447793975813714010950808434129217752022419404864228284909509478044773508281148359827529366070960077527225217288530050996460649496007353936408979392623615397907206064608700337444081783553908727217724187570530845843288789522818316028088580678731990775662928725980508154131550043557046043159404846857200933058090619175356337693592102766573658895322779137509671810097636234625226936402042630413475609733903541961462508662339575904971013197406495818259925395260338193428532966084409619188745014490352555979328034468876592170675508838470839712469356405504248345118343760804356066616772183657082353635489504080129057240112897096177317443041735574670167122515977366451210572652870557860560681058677120785612172754496032176300100676845843291901464249069141905768699818694131208284438462298596385210523767942411212585705395821085974857318964709910144982016564017529070795308798796693519857475095520353367672850506085810862580862358072461363886751626656496941299078140148075419203651974684264396119692617592330542122628459910005466878639149834175679087284106980419582394710609876192381315334930351029086311130531077460089410762550320956452717988213644596333906186050807753435361100929674693547202303029014510334721040557617125872362444080386085312272801518389282260116657383436379175301270060170094275653126360385231534853007567947781804135877222650661775833154528516967876748218753444918673788164806434092991592016162406745184016860661599664919048372440451099094428471123436677002953630550143026401393297695170849283755320871405120451656173254719977416448676842285794975803388708839358942613095847064759472750780458464013496681967856275056213292909821649188902348033197048602909140748951260002859927591770763798973782361913207899356105368288879697493714486404009788243753936172750558180553030046095500995032847885117979632108305984556243910925283631110376997692938545678336195958459024985943359208701057132997634358327784649720110989777821121295095083668187774402675032626285657674684630975789998554079738881452864637343496244301226854157095825218755442076524383033536314461997470599484799175068410063391117584681671994324410074869466408569177518991712878668615195497922152343183530673930191007171197315876316486649180714927046644624057436427103239840589782772406697679212483813048236571324099276355964434621322486412722175811495424069281348011623790957983275554104121842185536594034427111332052087684075994604780919657902485542535137187444842736156553335823762160177194137621518494174621286936028899082055983766024008166307885567494631619650569739644329838561604427427964375177563151166857639819270119333720016918378592370631277334611070136564557950810190458480699319685633756237729612979098750632931430762550517117439711248455319769820793969640974196400529877785193879597972927739362507410818832463129921968527204255658707298792857525108796706858596487431602370380499229854739105204147024066097475567574941611333709234433117293595226882360693349462319679351112539022664619478163571680604363374806821555541025329731868483988153971840059567237496407933898652508278919590214285998465716021237377749248877685922241739224708014293624477991859059261310338173725697644288276339634997913733945742950075073383695730710829744915504663378690188792407078658889676558864533908885994986520081929886242945893676640658336833463063172493025092072963920711595742269432078086368393500690249761984332521429273502815302557515341140255622958928772718697647739087966857476967934723262670140745420203082750537668197161812202801245280245753327557222750830445672536155226082062451402346776799919587944744896436285117793635301167424402937462155355616058408958076486140430471014661528417897553093441395612632436071828307792083146929347443441480166573464924177135015474239464632963865212518829241032570678118295957829554568560008390139085657785901286551150654424244919711331844422319301687679048839679940951029090077393145297237325444091979913305687773080178841549786150914705250001971365437727980124776121181546657511247915048005276397622589027276167719090598800766232798226243380850314341962783708449702430551560905414304466051729814541321427082315146594205036052670534724436060495435899064029408297372207681696659016871157575576042886651570400750167408368068743357109452701229678755740650101179093438192005987787876237170220200472973875932752968401518491872002606935660216185303405589708762057615442535747197181023181221637479286516537182217457965006239368723286416787566414345572637366124086386174165671777803375348679410978177200981589893000629394541341955020046620044992795166573510410750513965550945887853850293273208860887499671510996870596439332790288420324074365399045538766709624663614510319381017480564111608185782902596412194712766422906096143590270613681407452634930704983299118401760078045888287452455740945969265476523076031664856190818791379042961746783612752083420448217453454154037760936323977439486169423858258471369506246558866259909806751176699183046502381978580670814270281755567945686475569256447975740145497743902707058774711770557174387129751380601063274755295901073719618379244062021920426831102206404829191800908941900854474676715265999912050044873237451092242261693744193934793276296829140775387516092410059144569409248648473681583517579352965537283632914272153107974852232141170762384219385674810451426375450088781276396630282754643592413096693218240022237945389697983197293420579939511012650712361616709332387333971806526349470923915171140676000827533200531778181423372597034208125695707963742217812441617151124242024158236302990792980585945920651380893000955129309497214239460706801955392733931691098309729894310855506563081655120711391364783831495881182193548341460331812591376421018324787326910670541979016012608057872264602711816865786757807505769435333454846426989587209899158879621267071635456191625949939951153802966136392153021507084425018514637062353330482280424859985622573460463060100385332870765797428042012726318566792299702902269467430179950373323402371609203616674619008868882897453788082990888173620500022643237703045338379988710158026367118759135573068066397810001839439766239220896809495141737423286172599125301195610801369656078827934196334683771598043399778374657102834993737582337708016666339688722980118987058148512270644398581875950874128987128624357789278761800356033769314420257619385212027744607656989860143980383573055909291711042558061212841941053553343959597759273044470257256071306592251420868470224956486257984969452502235842526730800598683842698793275760895186121230372192484512270811993002770581667079474622099262451787855602716051641753456447026678473778025171420083208292135934701841008502605102939828888506598499269247250726137071134294752163482161661122918463933067966740895549221729520682434687120625048968942281431040821858102553087979988504683098564727081693007420038319555339899366541750423627600678089246022609483049726102582891043712323088237839515931741405160299202664451467536674651219488689400558773017781748022345691601605353056883213378049908769275531328348463445761679137649020601307407086181218683814097904173127441181158993164347226798130667663036832549647099759246708609240475694445935065891645090593310327095046118216340973573682006288160164571004896764929660125315562483987793404644625311452254396876656947562160736397093626245065058728144648204055642660329213302970268057887105930245315009162144144997929798284151139664020610158544615951013357514702225274133568200257651813244230071795337471182348783062580248659690965570415799974421062273627062243170910344956621746700429147642474452491127919345043991149043201862606843399557847390627173331010066027202230379926151400205129862987721121663374577721631267316421911684390554664264997430363498959090914960717275528889434322075000072404931976154115574162450517303724179137910557238961264406611877797613316287593167284844516131751967190711138845679980509338449559755618064926003894109408174133217561953768241927032530823303850836006078498927966718164003485340456689571907991055873808728302782049166876745432980588169751677751254168714943011345871204398552758718461537378320853783869525549674759734995258349761028716055731080116057516583005653024424777705759590649244117242697371972228975456173009620869509025831267364821705863137642513145695322695575090406456914314268179463808466429302657989275682981532671452167319125553274786169083046669217298934094682886808692116523671286257112081826077715872048323514064518425892959949753224888445772284014080231557407951894555719258680998201206862126441814787333277199917841513597787242814380373095201242280189898041761907099523926240936000446160194569091376845962647944211224442773567589186244338294668850425136852380860676610510045042387496350896771904585112044692875846051796642358872690672334393940891006813072711944241704643697115405571576422559950077950981419567786585852697662518000907203061957771256516277330230648555253190532717673504424988708920623897290703256357828404704197651291963840464710566057599883942368057656232744869888907590546565889470318143643111379484125020873937316313753267479115239080633004745479657348161257998583679453794467125545511501839527497737163310960068647948206485259452234392249603613660705214443792213370133268710864398448809838898549910833793582412324427874859247969573008868353065861151895144350514800713139119764054266474192127691571828855391449122640999978850824322641197125347796307348930323770643738363928418572474207992742151919857081935450973300794738291853438842993327540420008038048565235168310407216546196582805608923539960950662555135115020115807352648378130036890748217664776541346300495448114916968809987641561526277448304053796432183486983542978465237076476597196444856253301847191786568623319456829656929056754296325995205087273860676862204767151739950088129484590128730753861089105586405725046438025844081726392982026541353636842251042102262628319898260923063331116080058613893599246356093484775979284014380076163261223661487119553715328142934832147159159988945834835756674121090775286482025739696887190118404978872072961242837702420386715532228350105663593502257738843545605741653209734129741414653288842990859402256709017951220904491551156908792842100179474110550225186454782975310693089474206936048731466184761124325994893080672967066648715212310170147553348446179835224675907233473216371121890145705323603443739014963607567885611624572933218846608387719103140313761194690516546790476368937844347783977909534315059441119146541244353916846825496839154010720571422449314605515669409690161679458336896198002414131364754567247930619809560673700980475032097993540837836506228350820946972966269121315507562626208904242927899779422613693975571194600301835155199867293647098743493069997061629972705899058331799409353746634133428505873039673411258233301695055032832182811316039799431125561312575592009081598255029497272534223795192910368059665659701627197816843834560384396816957956427887764753775620035038082592725494775826238646803903966799187273341587627251920309315763280884819350251847329787106968583897271990112057818627602738635845056456967580736569048481294106825739716387711889476760175317881411653722487432721863265539698460316375713954955247719613211261372151703055279976241347770229450893599331937578343054037357981540575546065071406391317666114345172142500581214114055637711133426161668508283947576122702022546015768730572136701000183677138767139444608542872692481427420250542805352003038163997776823830474392528862450164704219898171109196869217755549123384578088380312147779078291689514549398012627499019054898006235801151655138058081038446550882071497288281066921650214823908784806760136168719094487792879611765641632233309500237827332693935166901649277453138358349021842466682163547916111418981955108867613367649021954367664428066528703526887622580407993905409919244675967196128794078287186634105088560637299659528162991750928784275703715702984224121785371285837669138810252108453102204683214439461981986242173931791456043650864667472013719458267900750619606681148197785519214833240826003949807381380541879050675065893317544680424455447637990139334458597740211080990848754726658180565850433305082562819306440938329887965340549050342298152894608859127506229517968897094048633934083393283458613028326175619026009898534115264247618078863706296685286728948092463711048521731845285505809155911076696687478979289357992997461696690380855343160625163601857643855372632370524444942616214632506444556277225537068573449716624867569868665589069424538879681557322093785901801262888651356682256251087784798264071114194305306789717465540854785368411484016544457464531664688062536449539976848437793653154052576055722690037076644134822287009097049161139297027584362823341823464108605672848336851740744318285895960740712661254700285974692821100951556373497196954554886721527610117935015021653731233351873777810369327241894851534937664408189769390884123966384503204063372369334338995437745430940476862759537016724661942561202257631945497385787449357157167841743519767981634213054038081400742126219733892983737497177873464636537915423865798700088111117225193502240486850743113157196808588533722705175482001748745355458658063196067524170113450984517395164743153507914956595650235568275626986270553949536617211372572317529225202644544438375671958859636653279737360809624320121675547285791652994429255182762142813684775867411834953858658187573844980831811663424810433899790124545040564409010748890278489667281463078136367559089175234038851605714721426041823898342818058019119200150476737332426300403415787323473848173869035386680592198864838473242970350413172451438371589936696567866008037203677510049992727121546699683927226076744690216322854556336563200090779306454005302330146362446209447868823589429209584279285456815886080882996001796015554552017028162635011567535672347222522237860716154033849755133490502164455500427033660890076855053449501506113843360999891259711024471179690216850211218914016519215326002006774165942887122873972698632495054406813459637722139662003815740928104923847674045708370126021959142827220072714060587311562968797073717975993628222119931339597567585491615122406215699353497227816443598803732533692669457928987050749014978885931499049428863985580443630182413204914094180719277651778507959659035885942566490247437943321979716187052823339578433374189013782834260450041412036944257452522687748596474075611717541614149172244742732321960185708481679691914063705717844077539876860570947765103809814663867014379758625114948438626384024722846092645254782484479565465257099088561690033738831623146483330955118780586508497725032345510940149638117192563316594865648687411666625867639467225208625875027115238604007361697608836456036210190751645564394338612653387057445079770628998672463349680092039012031780923336723883272536967796656931023910511240178222195841857262769889001132885240585853386094802790340378930144120813840835792730069682472307410443027792308808924479233851338424449539710168734393888824779067797337572366548461400111751879051543464341472687137698646923042832507376513570925528321170182124783464431537809227859550620915146989240921663868492980586258713018347258459303883440368566692544124523994024643379528600384841800664473703334604925237311733029929831806276487282928029535698008677907228253824654532447860788737656448642621238633253997194522538438682416795376064135329412382417833296343188138720981105247175441913122899414492290451414387762332204635287709055678554843798708784800611714720852728500735947721287581723726743439300491044679979379089998214696053959416614323483305218986479100748351562251857984649522157296107911541788790232723823950974382108220961007000542840779128674050167115884092873656529464960966090615154114459049496446209563378129498344469009258167115829646245901957541008661818741688278824655554999774756265379058628167463114480637473681944205228993866272526730492560562416450303794102817444859481574089909524326729062123777007541003275800363703612543451013616354725245571535929413852041350604969628242967339118166226836741578736345901089547296240838531061709011580733885622212332600123946726084334271436389694985111547483385726670637877719200320713990862913590340396378531422233004692879977723566497453772348586010810543860792201796673841513293689360887808126008851986454650259144866085675443317980178502982504832325235907039923427675119595136258433017402014358561237982601810553895557644035828986078525371432660698587390767740567464919756213377824772458946873556921420358117482111319416343741427221483626859634213998574951050956644457652990646988697389561482532025299203153016133599169321025527900514025400203984240603523246344059465955648679228763999099619543631248853722230465551229012991759258646661519462498296323980220123021569574655660901548329389784295112684206116003519118655765970087294853146906631898873764077487249547521530384760869447233140937298127678861127083882493757292343394762939202130710126690513302418706043970330472317593394380550926143921329496255045006384339814595017022470291462984126444438350717484156528388262524797713884728705193011249507272989701453149583774195719684824983955209094208236320092164344156850135047632426901750679442636525215003542766811461008291855943132909876704437745726428450237097904046220502958043713343432209445735981143491444422709668225986690714045214361775040456866595906875415214644553647000317067880464808449843227939406935019176434764953454563317777454541088571047376616179759578944888179652686696565997445187987066557888088342159512350350700921781782877596418223775987612842682678123815971247402973272347474318323583822556431847856422537994848189254747804112402647963703988152976445235613848047925262587726127982230142497532011881894745692659987874258438778666781171376692488653414729652412833285440705297709685702035537985337932875525980584806000955053921960659202370460193007246277226090190211905519850026079050001746921604241616778263813262675539257915638752691312781495890648725466714444944473358944851294656797093970400210501282154805687255329715549907120392704680356783890432642227419501459124640962054625370961260385505135488556409423148713524693832814216706036027851614399075700767873040792819333979617927455618084677051472839218527240802249514479181966495690571433957167133679383236834862699340913916070146611397510227267210306398405431014598943654442695147203962447876869965264770257290250489535754354541967433180684506816565136004545999499531192289200865443806911889374561307276342468202867009843681938190704527653549886494968424144381244646447583134257787644172002966245252143296624879644749404326559407570477605737258536932268961499243791825884476989243318676803785878240061993457470031495721226597827199464400829384722050908844877672110619339539432249802480688944765329160278939563387114775508594946735683755096054850127685514830812379007086449464876586004890358905391897963154649440693367325856817222158316309257700891097071073005266592449924726762603328018095717575002693620498461355385869102978371867881068353084210142510538146830431984863700609067867190716017824848268198120076210273662225782333965948874933201707925047252457227501794527264126155087660553432965239960274862563166828364817989947804258144120960053172580269584354663011136998046598901224728503422469986181180824877622727699979572897618188616371173399568746334565744383096067887743115754022703810793837714311559502555830508371723144134946099372454134013161622916997977801911603712161318244452584638192153526107229580432607213208902958472070878746140824605570958947362791932781233154562242418485895570435974262824549978154257145816641180574332012749786288266086010534078573650681495393648114911942298059012842569066983170526414100923014595750434526596010658086484345710163717230402762445805795814264510492677900193233188872324995544448755332905180059735633972812318609409073722460038227984465995248640913856244642599079456674789625970356164659451684215297680078610799619351181350408427910978879413775597300598753130251386022841580271253125516759836295380622381776175955182003986405635473868788110120195648708504316360760824820530539692095874553894554837856327121087233600145080220721588622874285312562290443140986910565176837690461323438287023201831863539782551038352841748664672899249351684056797011626954193965194933272714003388013921578122714861315387088725803672253727115844906789444879240484707917246545864603011258731446114047397582936019553736447067489606928159145506858311345802279786019418354489808052683362214074517046644251543749428272517511783644835573259245120948889494053803394123464803562049899302847672698410803228168583636382090988510004102897530089292752756964199425358489034060926937157472062506268200328305922615006652069174104227932894923771627311301245358881761178450461157882392326425971931185161368235641442151630599866733103096722921794193308092739848594098377812390650619812041919133255407082353940137183551165912794847761240452151732849216727667332762422319744077202250733826778716719976171905118946344766957523474008153149384824392965756466171580868701310337265700417392365344394877459138371406832655926496458900443974479053025123074778991155861583355071529860814349436408304888580972142416781545262728968337414237282875765262201444751931132278629645990248715144242768642120186202100727157077567305224513722148570441931898623775894692832869113647974994466185273423261924600818740759038939050072260532372523502906572984591910985989849843330446647030138889630417645285539578559231464450956128949425781819428195366180817207393282580283696515741164371850820715669939288019955530533139500988606333349254650918813090479710558861405868600033716281411433493859352601808716329007665179762419182060022906646153703194440094819268652048695484987172348558385079097309462231086213851798094264211688969037615983861927362993841532515712760337082062163534988092861006704826542556754567488032434265696326875463805270280750069357057078374810630798687662094430992559776598506010004438570843433658771485970875278182399210063252771352427368332771081429642765981411159250228154538399706238797767498943308842228041025863356729768419934168367883203199508954782051963895520454955288251319363648736504625315004267504781632585551752591503234672769500415307798077161078725475186842354112141468870978072287106701042574340355201409558718871575028941429591621825074903558263545822185768215071030457963015952726593263614879151131931144141110461111479993912239008819095151290936918128096670410217206500273991965272615130520336061158665920536681001730103598707812393648309282750045264652219352862825874453554951346229476154756330045830770048829365489517378405169490334527376582772937087687898170952870704732440377488382285870893205287742023063737913353811071217857039193005270151761803019254311721675195066995568143662621315019015947497064709610538173472178503105757433844081508212964545160172552427207277237413932341461263128082669697588626745744535326405338621054277293429082930258507146955004840289331668287216348224773388843612145371031766530210368374225287193860848654429687344299150439962540273898889884951768680722024094572775265064682605905129693197145912085803494284801021320063974592607712003958110513115579537031207778148458030671102584679985145325554833437412419564076217371421237468128967835136695022675094253965018246752277742508126553078581016675900980940995142171736857161891194239558097463048571551282931586400536146261420336499124218644257627621640351520438910755946849568235599439096896985252323713566651450564841411364559793704549306404232987732411299002213285535616325308805159340886597153053186349867696943207084726489354685120397781987417202028821804116655586352801659105353809566294897688818719664753576505785168807300394975784664917844576925664613266303976099503820095800972445897888486488497460748297009227866332813804971060540001128590492195582734008307455923702194295364897987140702508947214680791277780058500275917505988723968441937424424683604423745707181188620963451100711751781794022618555539321262567102858459630878594328635290229639688638585253040846528655678818184658454159863321984104088048296766211929408329635371900779097027279523758730317830560633526407555281974886878121889475587048683310755903861757998548249148801360876300244428690399598029668038597124863801361505769420501658232045261637374008159009916119702259193786061122110140296539750366435224131366980605313067691394113340742871828801336401369589264260505072844857715613266388359570616900719735501964372423297331432971261122517847312570997345998494718070527154791731918153002972016981882722238334407474181416986893732623826333134078459257225064346709112697619003233109679381239783448653384959515761693772084933654684398496961499983719466424869127576361738065963346130157048203628996841074980529252500183744317802255714104894298115335336135563102830587355568171285834551157523326511873728256799593416819865524296326072194612810412516874610802392675533756375775450162760047893600382850203392970242342799175194009353506954728310410935265588911694620012819076652695834354630390505982320662694402584056740899031456682310241419487228588812852911966389242554582647887937059118667035680723643986699682250021154775314950021630051464412066040311502738755350503387628905436754870414862689932995116779150135003544253095981722913689067542570388040491033128139194618244344343432793976118557140610126747551699511096879086603970243662746765866767600209869142838481085060237999155327553384637990940604196955746591593061337666738308907776987618110948859224967241623575488297521736584984771501720834036440082691857844802545333517799275806488805145381546358264995619510757537258678453370705640804921466890890046759844087194280128313715106915833367546237496242175863431879654574166111013839073189702277998206883550207109452643643554828245897064943234483314967443192471450402148575854331275462057135484381600914946405089467417549845442915516314553201165498669826753910624289359652623629885516907157298471390924343957866447120229054711359085988152218866344140048278990758524010952617058976368514797696310063224206173231373861315953648379698423714816549573215625255046050033765613171133709382616347003918287008271218245484045288679602666587980410971505738342222744297700753104869132784196161957533511423176387718883212638097157463561490337933591498288285661249765756496904008350846884954767197477810172792185980690474159295128744070196157458249428139058411192270757427743290202698663588070975321300816417196407130146249053803415295947581345525492392671594990034211741284279341660870250362913807771764455768573117651010920914487169733745878584655489455125343360796068251293239417228073324271286331304179626362216227831553053910077578608370053876252893499133118645875569448859046967968688798917561299592838290757578590697992272464292990269887459656355886309073856878509429081692107277077636436075203266391369559827574881166100385715079645265432410047363339489302136885849837738615426536054860585201056896754517292247385189647357728655222528801965028166555005645708321130314372294629330802552389169824952534236496109269110833464656590130427268303296609567636521563930465853879003699152378012832009448962183688427882322171995185090104924110501290232736478922712992077925130701497152588710403357142324917329920631935959676586843901944851189851378559722437509364047343658473011692842446455172945530584825422078591545841318958814065848905363982046740364180058825676938113245910693478078593894284923473341846522391835728374875004230736772450513918121341550331485605843822437305511236926006089980043584717357481982693510812745670749780290545558793093891076578637653045411540426897901397661012598792389275663405956612928809020302017150696657226213818102559729077539635034768416680454587624700674460883309401477758002563232279600581777830388227913570809356376652440202318634142449191613990737678306130192359827930220597788129899069378676019994572651303513619827897560427953117711232272499827521860335278331355946612994192339722247004084705405652566997805196364450887663554161226478874726397801171080236776184388879832156308569487081379917959655245715067850336757544903886259069046795879252830788744881175125254377704736533303753797621863385207447163968440808791685735673715140362284710446575390070635981604573971135279243753376742689020022382109778371034767233983704529704947504401137824773086008254030063801420314455557185769460305629496213924750601635137095063141951408752122333950802724199716913458538345235254999007082250878971771608012124890697214386410404955414996638184051354191827895794279439716548248339837312257677265873121501279243571725272547196402515389019614629481353031239815385710668116029240821795310433843655619589880206305164896730461328385082740493792592244966007256798996135575651322935522355242428136844989175384864501647807166143976663234142671712764540043147258838151236075872373127114832462779258574672218547611053325227939556813417146245814294826617204643775241276676349952456244201460888692941443294179305257269501430892167723946100766417064553102424908535320558234166656140549522870216370089863906595327580408948943668104596852456202667461310979692065750730007586705927110963667346978244610437615636802202748600958546145643016503631188149286586229219285185238323735426672954207129312050846851169063658981214094468272646893136817222752170085489485083075371087925923053600980081422233081222439662285417749342609553167108810830991192695837889456669225690241042706736208754209573842899232808866584909793828861105639384253655512694270504169230113204220191807558033194947287702959272354869716280744685659211284213403957598864303850688534541733667258004580341304164095008863707316751911611696185355052335753421347860609338314562489841676578060781942807319179781666714626101585062581935299825706281219774731347227036407967535330122930336349822732008693550976996466562844823737032137706613893024205004011692230714979766244737010967980190575097185185734869090118510267099702837610867105906424202210096071013610202118945875852877999170806910769994414576574128510581678685947356718476016106277890573374263022458281829268534519608838687134384232366439066400244194922702456588693018512634405495199978083739446896064675631829975635617228112616424992178731137623308578974206629031169511925845255639618742135627112665562329745679727969713254133740217044698028511611405654990234939515606435205412737097292303978212747163874068587298408650206174453846451961113303691838345385516851289120501355068422462520225820544046744981746980191232190389939003459177838265289326094103211741857348447155507673228823072420919277208508181550966998908160116254853802805258752516364608973688269932097301341748852718894876690350726823851226539261376671021287839579173902931244646373452829921097908443131244886465603180579471255622795227509002238208690838225185272462371090193355500173486391207543775027291929598944556145765266571531981330127877767371480187607227035747331166396141611291010836507358138224234543233922897894070549089625073913043462855683844216204056218873841990561219669713477899259624076856357774656040680210146921437874507454953454636092662342544159902715275592992545008867606433020397849150537650711881889287355652960993189161100755327643373522464903115945200061540998105190743099484498581029283657509371567372548110232586910434543114950760573121866141889349381982226045680509668048839823732665087944813385439593995128641556819120229090095811489382975155338984152179134499063776417403788696006609757884642092465826570896823217059658231256777624904680249969993450901404714473542402378387118306168778855604857124831077182918769957975009617612322472500793518274603737223447140121695234866893161730704221036259514350669909116440158067733906343098446778969324584133458893621764753528051997700582397815582841986537767213471531557030322394839701656083543926222081655229197380598687147990077593349046133212860740083270818412782519452118299699593197755317639605108584227954255055675392734782855500644380253573171978431729595889299172536979665623290179238865318693890432296512864291346152131785017397185674777100797561695636029714729261907422764728384050434814602859477681680650286038987831693168675079990628925737568468862055746751860648015973357248607601006747465714635153966881157263444777117853589190914684479985234252794832920057005163579106858254611958347836389528676656922464565035603984154640601674849682421647604529512747989811433814846737809149570644108991182992423542540762405788021799922131917537640460212451308062462979467378526589829404683190767209578515699684208750754795129107757408650101132084475305683384493319062605228429615419914344047417353307695362080203797851723337712255575667409097104293012813258944780451763998749753692667306776018064479991722935498954248535474883859794539795017299438114514556489473026391986613577800994421813888262014846189997392508817343205727514112862140206558573451437041238754900508086120140427670275738939485041610987610307138245236946473579617433743035402207943778875044323852437851727918795136429984026006636110119156668237018103938329146864507002474749283375760035391403768930341992161544856991938703901222132769653450806627759551671963019627947466705029290254685751528386171138146076158518806490576214276395422386209005561705431229492708631170729395592140623873632864055226878396365742484872310697683706399912588426044530074796551501878820471407138783309529492813097584187484603092458936322792352441098681649326071330622141564774527465897076805547994063781268195880677829820594632776632774337551528144869846374009681878492725418891788648039442933823811195430765933708036873208921669564314181802545193300849449286144674608005280141027165867839157604447542295441556672734103172257294374022924941849309949202993064146920244312354420518432344981503579574778732208859304626969137537466736115060206670817993848645415452690938727124480511994200036389605428365325246564387668896492149438392209904186694599118622484812683271530569535810973730224315612545255165734642768909578124499674164310528215938209780153355781281831871896626294536280316459245867137335669421321538188041824054888324828502690253459144207211257526503953110408547973696287501194156366251837990980693912458837801633964864493036486374329311770420554791149371410056147587843412711263756024736832200225198406814923572444713642025021048408678227761548698097589574231845090838970866620383488192920425182760992358050298507404179089742118223486876762004930420920406577465604517616034894673646412838953956489646917670592521947277925996239854973440452841683527337219724567549952878123247846808436230875622206394307446468122889365364160720530451583279172919223468738658045164692888910665577388247344442757358608671077140807864408904000380503960751821178943510110914404782198180372729732044714035380621942553485118316615164311157130763494037916644746804091495539993234587611367936041171740432309679210876691497111395729301157047152467807030160741178219852112281565451604448915205011076056134819971329483077713571528485382217261563549329189075802467443435795458552991192602897430488301623561912295388377312587160098206781994328175265245194416473495562194451611719399700977567565423036020651312186325403772974389919189789287656769124691226243858965324734675041136088686254934095597186342447394653016145232156869916068373666165255630037263784116739250866090241686724317431847228843151065278592608404031407645877413433350847588576723926199689279247720700508547977929473932797799399206679666568629252486578005504500895728503725657426443127440495143480293744407359934532150088561250085955212922360328649792942141600607031743184035848566618751879808406302317076919022069876038516770493248003148789237117656172347822334997353749623878500638858716121106852868175356583068986666587590134439289975872799355776836832844625118519424703220404283550562262852431730049984504145288760058011417304759885836508119219109353723131387503383186496071131547447454239796114855030752991747760982441991674478433841285229746408224773937959187566077781664868864141925496342446047246546195643554612388107822874717764458035162015179249754019869761672158493859733976363336234058637227553923963084051987313570205451994850475883432746527465917669582207627142772763635354174203546713979806827368605079064645203419153905971871888252372398205119838254598287917916535179988542116962429558398622571344492331118453811163213236138449967657181693015342090308008142730676528366608255848993665083364485616506715599197972383886573099783185504319238441217226928505812870117809163505920016587669196688554411195192581257416983144625352277102564386407763915864999554764084811234858793110405560904050152327474922553620493378418755345734445333481400872483508393391900727690538089690468935846576186589884174035395482397138922823151191107392854230850271425020606347876550966753946758232565780993611749667216209197287383579460182578882200973888528206836693438588691891354148246962830779546616067870436923957409225059561154746532777319500941490747800089429096430693406818844107907941373207951782045292450963283310039604433518456225822899294682921139638628798934167064873520384537031187081824358892289435286545533472525387694085384498403164907636119615003692535665366586706968379398328735514201769266755421931650800136415939119070166966327662851238406805584632382095501993555729307411416819692794375137248660562640245342726369270875144799254774172190415360273327910153370662080923819643847389157195192803395074021250268505733041461136807865985137510637693521868794460886932204170828648224216491044137783057530269634603945716747186880174548174419094028302671511275159084795809208540124796146789362145715005168291258160056994391553912311338752378965503316513420885426958646296273346829540913684239865316635602810569108827410941792776114810660070033449543642190256936724297517300388950166341294359492400571185100575956995017324361805188599179786884630779285189838747228597357388019753282776034251142710368958959661396744245105375929630506363399046101046472619551637301599835025702797988817015785217325806138410336592658611523877489698959748542401878045145267022351725683114667602839561737096270602555071100348770380233294776271857305754541958664743152214263914353814508763180664462213358775536579080703002667101931062916681874050734846973588270363735224195616526108314814685898171301407080602873485160650556497898123383685469017264436276658339991663149940412770836324207998684109543744027217899931587259087832088352849973664014997504778576761352115563366004757274567368821191590281720084116378219122622456691306615248994598500772010015095934440705319988165809693929436175881999365553047666041299721414793181409244543172681467710612482435352399519227008533307075155040259840493655784844478716171171910137773576764052721013284618850463475284599569693528655798626009217311653508001772220836695748932102910311107991989757038061677128761160903838931460380571860215836043870161750906378420952554293568114496648452911116872232579675825373103114679374546326522986962911312070953937748735009181488656386317465931658534842886005227693124649469002066414892352511074762197675542898671645974245811141577602575698408676046215921020038489654751685030475870632299657729794004134079191362779391435822017570204634514284193920695860276921683137311462749800359914464026257582874472160035273329212331489500551127288404965751848521311907080798155710991718384022028189582543236886604202303055048061892232317901904692679657211600026638784183626914640894441857643263645579817982244517434856830619327683690822185570617406524204348990552963656612548310948553275727695063554527169576791945594315979793240456091175037286642570416672211874516218206798199260024915277936756930828860433713060176449025145642276936785059773806276823693842128439469764379343672515713627142150649420361301874611244231340259967305179289163781195035135671966760370946674539073353992830218257423148887298792517053719390507660906935063452857673414937943865393906751573945026045786156566411288967318242653759520284982726643832316597884201348675840786882920144839333821296021395589880991781840099446166548089275566219774059307193701801045581418931329641721526799321861320481506189211297466264173017506233276424653774258640871589235491099781007213416498545758936118331794251151226795514179331511427577850059155412963646320525605876117172709970836738579752738072386995364258619932827710106838220221202077352968542672711313411618896233864040729090949312719410459653551069917489344629358873699162732349786554933540871282230018138556480672028847640125298049391372156903780477933242898951794567798754899962386811316938133607652641618950905418020450379177010936255686555192700484067492361709751305971088847899378117387214317634071844705074453632778266546773409409812919212797530447409990550981829350936947268879436765410053768118431411827948921996490625034743744526647823112200463565078347550633905307268894686197123297732822146213914112212723609355502024212909169109587724699051449462596348121890532395445777047192509530900885773781812586333950359817858456707880931316933448059176127348713867265732904990871529025513003949652265747494833652217864063607570919697989253449457912538260243284729151516626711206078982589576487267078718171846001110581399739506564493580300231154293641500160630947041692694023859778954976645347803387013266798232682332791852865262510744332897074892917121240808103967613025755817570332460817270314868200995506959569906084242916159283882245004665438902516495810371398366049074793370624807340632428378830067382931158607977516720875792555589830899068121931327452586919364509308012187253880911406646363582958002280273022199092883502465281189574009052850436356675880964504945622734821248643219897428550148862986859837625188515920727865088277589698322624840888238505267689500321777917562284627728926569582670361040001619986323135980254150004875468087215706103919410689779928759059155698972601188056109113695188886700673387744315459501623214433765879483110449161006616896743530974104098499822970022910618726603989208665426311282608797886886231505747283937379096015996475648095388266827487514368018570201509198050581710101300678004596302666693193771063874778674760054048853845026644219229504595327026745402409001278376904549531433250584692478821097358024908087361404218711929966120962066543080332050574778983655591664289169277982294723540468275306548868087829412990659600789120693826263328540360645398729188010630454942328601233427985192264410363494927352522445369394355303054027143971917100986720472326715676306113012772494110151987936568287345869542218428153912674258972201181432135892849402080675171570032982097299811186880065021591864186438698788703827708684822584443351125907213540058757136127021911162613719216816703428765498836854196457109045497898788322812807635708102063223916950719493786921790075248409674137211230139359239873560259927698576556395476146208160536208595623698415877777543261350606795097817641346104955198581677903311005755837591740468656996549139416269560363677199444982117825530158775990051054805085922004478758268208204574972405679483058595409225507003208589666917932172752954646261635105037804222089389322607788032183425769649937969144015578053837218907118420345225787897761283941302690291122640048027369659834278989054072974807802641293383139383479337513790141685396672862031034559271624920374061388694966112137325404663208453229083375411554383483501673483961430206181598526259127545988755372057673183601297924459489754399053571251921017634140704777620215783580880842629177824744086869870304356760541079350605285981870775660207873658434693512503439387877237817185209637871031209236729911208301676877670054173821797847800081003982519332508477989005260682291704712022846256432964016145779117344157210163814404838827120571567856892954503229301563705567638911774552164065502805311427722268417589750048058202330604055411224230413132449465203352066044505527821328460928452563210985213439526915446471327694862039771745071032230303393754474877225417319984363488679493695693842778315753635606408109926570224962751768432548408162425596034692439082308732649648570317161774911249952716570399736770416709440944732104263815978832293342144756084096425839844594352424637120053329774993698003449733052964272175927356760222831192473264402884174250013427513817996126130592813147277383800321241818204242326569284641600301799839729581658591574584129644944084026534264799517805030568184109792828666006431577845740231229102507012088220255714511356658220762620279278838963384772216590208513621578035166458545566246561115801829384968999538535382603402167552931108867082081746219144702703606425261223106842253030471511864442343259719656050063456743021261379518726532319743029284288934975702609353741687948727427058164157911785185177515573360271390290160453495794574404192320308396372089023140712772911678241552975060803004111956280698765979190260214953133637076038353955049595403277125841375112827123293203574568739139065558369795050306059445493150218350868513239478853669849132822834936404425143258665156583775126126526993846609873999158392816275867584698742398761624033941227673618427152203800378755131029935742925940460756560569014688491935727260258101369026993170443059196068811321043383809256724440029113911776696054562171375603905789761789569399257289173993809884546781093729388066673955551751892161748718639099782416925021653721220427376633192119878840427730255159922107804381808796269113859829908194980270453126629411304210728533828160602606366609248895647041335338701027105415354526162843825029872977019737728551020570732786347004348149564964465790779359758173743097302687278367938088576590902073764535544650189142697497155541522800222631068165622207715439799270306084361857038532972081576304886970376610062664177452066363134913817724910369581043376518355506471462711694250539002835554230825568724752924929125466532187986090306089554340930685886027760244559504009606921420018218659313198376286260185269594666894891576502336866427829135493683063876458258039321825704757277165479697989403383718346410721153862818844980037592592021093160755365737436829032942885454159146491397465840696022240627714837594925441909696646960584135328255370303351328074465347809721830284270887591081579995539660072126767406483833355892529954856985710357191367502444207808272647222850038008938378746851805564107369296594219543147666371386675743432382867307764069983604446159696724239487017862982585164720030998757384742131471498149125125796156682437902663363809794789020989501833028428500491121625462472264170924057662164552211741800349632365054889807047254456539336619798359832510676877910686809902784396090784591362851476370936961566136731560181177398621955751167084709359661179138058830556830893330268172822882368984031778241110967039567083973627606625043563235942600293237440053637504495454424874814714048105169358565930939659948533071685889573199654236537847884221086973472406370690509636189669771112813624764375004043552116721658236830520821116063612639535182875163378848224848711668282103752623888855282804965417275752147800140178864355691669753806207030421585150565866816440571535984608452247013608696907591743641483305791887841683998959648152888180450894591643983393750661579987883461854935460304733887115678436240097265496526605614603869054060053868563108458192631572493164586119096673952390438616203164347075173927934520342891812423456779051639737834558710242920793913012507199728766262571455759927002044438083622988128179780208216525952031070675839460257078236492803049127563643647003134184113308645744795349125215478978599072235589372769013122336099541778613079405258351566015983910052024490267037534103006367850427924472122409331982107998345604352901067775072794931521531096138921880655115837517624729710995543580843451511484124173403997474751148062651269518676975324838217126155539215927470546825237022354113484735788413009410741069779890876215133076173038872072903309686634834869415767953826164627403560043082086282137404326330190742015107364727562665258427688436076622010440201347570079744523519219107920772811142838239070581165449026633728639396827765731120405518885713984672445506243738660743922575744358149444037985814774274327249146858460100042590975283961136826057377314209723507416971550093249597100660881967561714763152779418198272112165356426728585187650904512990331380456986503093340060385146577002634334810642579582815351255220437181791438042322223860061258476971878205647515965517874580065073436648580371313732650192035032246641329027110673499377956880312784196279925473853172967781599343787282364079138702368014244034676236278722684710128026254266369727939795439490708642056263990657616640558313375144960266164786928744804227409535593938899741585506809972390411979314208176813505906178286100437375619866241408824352250688066363268282112984632909784448828610869826213464211925764119469291234475669892393178647647298463484659189882565334601904474030010149812774229252913069667392331939966976187180223066538320681734251027033519239306871917301316049236678070938855181885215313989418252590854807283069148721919745703433917619435163084304037083055087087245715586914438527185446836228811721942611291908933157853838800140051327884820640852910749906400200655340168202170263516692878605214533467547573090987928081953184007452007774423995595188802666038196742090872767370699066467814015176640272017142447460657412332860294766876107075962390321398149160071783949437309451981253311896937535747953433396214720121091984041850502953566903499598834050523524571170679954094076507051946433824348822824133568978343394767882533056634913249993191903647281113603346328748699067992116197866206043571146840254530347253931828127999211704224622683897101037402240116451011216814918504224127499374397905285869478520824100905154288736557447906075876772992962811634371294757346250835692044066584632995504771489695416774914811497979391406988366846969453597805119965283302730958499386971113909135518309361996719303015967335774634072296709355986094332713212993271956892317662279421192573531186297091983316821255490664030653781390942521346628163931449334125168675369868740904549669564644864620629069016452886686049550477464049956015663797580992128072851462827961742355882673327996041856412450348927995103137350502238004354621439859628605432240801842050571516123510745602613738562783213733495117518566176597364220546068276579772662089950130618446488222947627041947234757796056495921780355141159623899674327233033656559810515234439271892603750802389209513460381901936778577707616780095124262265349884103632006013931412483969203207166192022425440918409715314193566196953236412410862902345200859555579411479324918645533843569879001801822810587974174512263478650565538577755730745064564456585271200332310187174322784233315633936334662762152465768876825252800112898235935354687584974482307757103321051443827578942158804978363212720759711353491414875935029745511337284604288397705405043548248563538952080736823009230542181271863021789474943415758360293870417807021571391855173330512109157961482523393309651850894260966846378903716422795440666606271613734195395545202691920335682136006843785981841026866527676980463385433743120272201311401417688150672835636271375220230112963154746736220567237049087469007527376479599456537722636343430849343288396305377561889359360419972333694852000183771942019075326660322231664692571103783491518177064271543854582857338726267320326134292192315218892920269065664621711778587733945476307024444520485501838678230239282051377811381725105838176909459633876692062093888056209068733278187881626302256075086510178591719620219487023769216721096048317078465386465170692411336953268431561952168907682649005425110408686840734434686765085193028711840975521678938309470255109530982495929555956032147603968609866026634332544820951280185328521001270170714248396811707666435556154828091345349131118335170955974966160696878335966002314118100609677872130700590075075481603697868180721324737577657286589768974928897861470625504362491106458792994475118204193828306884893733928144348552614191776816447424854453146850215674771841826901173600923772164103579369790215023728515000059460962576153985557990534840529002322644403213067109555196736354314073256280189292256401953974558954692715974614826067279117465398002130941143761891124869295966165717865063208461283696826293006391567696632240227470424386483029338053015037604586569927236322584633362410563128966010489726067421835311655070755221129273436500786652640023747031761066582989026375237867940537224295799968665711719108587019991720957049404271458819736244333694483700352630997078387543860271339189906221443518606884223951014061320287459783920393310921999011459305394300540820119492726574015970741294098441474624499742609523025392334590992449728048255551508874978520513053921379331637602481776825532136278933884497450318990304799895268760369224695240775254477965436906595732467611599476708976328716621406493488544130935069187400699274631169993600159651671605942307833399982847921444810933550565638462359705338941704516687928574232763763054103300013016734016541634899446047854744707465144843124403204030089035268348631308083592776294229842339146012877464077664255826529255020884375278231048890891491321360342483339371578421536831357300507501918434061014869937793297417028059107106686220048431412604997748487904369511350132254084772373537968615254359296730370547473722453294457623385810721859328698928411213966233568120046759417202278945334366742823385473729326119042936649085941558509942416707123571135394267148860873767680259402740747017146902821790391549407059258373026837560808454454150860045122771056055746863644829223222950382735540700100364123897271235446171484965221447177954842798747977695979306544314791098264803734128890219903036366070972072130568386143221217445127082398023066866870224736734791119043975986937077000813153718386060550887464990039623199315669673396517058985610293531292804696990071818654134530027460173611854763562229716112158588164180860964149557751261121004136722268610326221895251773581866211161387207451469275234675690032317141154468073004182389905785820589874753083866592129598865985750504831574318132413927122144392080544669134771055155735627808555744696937813496077327292912941091685216894290168555696142228932314804722112724199807032551319792022577777076938024953079522897691226647856238567504055298958272896497687834459998593072893140674033925856909399533720617849143125319839227751909076446860222304262383253114479831290387666716310159592584425124830915166537361358198221191078634843842471321824252806463782634501828105304295941305330613107338556111305386660650186555692441771134319684294713337056436236519086298105374349147517579905241472076497070525860925121152382681566410870927163682932845170414748574074790130866440139055550178052641818478859039590781598038585922800879679612463051485842054046012231432477653440385508865310457060612035824695312963220590286273336694531042410824106868410967644344025715713249760260002284159144120731375613432663408567658036517553217770602218732920628250669414603862934184923311241823447209067155333932199940483214376862118626174032664030135692584629415458806057671131224240392520738629919284216130787326678160181976226078249640577022597574091533086543162938891114701828056879650748274759625863138331768263069717592969112871611350494690868166702782628128374094220426794151459500972855894480317695186652457651191367835196845465800868401349251352058397810647442839280804476872226584051979845715027115599941476597520108630538846026508320342255344387744808767995761708065933408889807017286655668420347312048726658439818339990177909323489049692422152954652420067054448685865558731673420768634534348586080408966166814271944535302876699323990951788279664486095311910781616565490281873966272576576154885787253678494244204610359216353677707266992525430191593051686531663742239323130049332595362596919228353477408693231539471372911025842546940904155219288814211991665018829190645670941273269740310814413333658219871722035295976466335260335254985156055775968413123208226139430289588667325847165226870062805659209071953193736680468161932697025288834465334470439609553941283071124804286441792631330211611030182537457115212906093803251444848279290844741900633531075565711817932823548819224783078224866199264991397603917784328008910932355622355938123080284582219174750045767324840361728393927401443020463602278090205335773703459939986355646992252081400838691500759468281899647277112579234594829138102636206072301291766864226075906893142482465053150817978509162126144952791777987177496595543621918136516212081283024012389963006821652686033794162213955574943187249902636822573377927080870376275230641409298295156664397275165205966501195202354364181842247003578485818681158001155750585239238533428454882684008149046325213083222269530536718828527328931154082823516002416510312137648486749459728156379291198344005355101129887003113441121182604861229686360018269402897320034734266598980029054283729325725635134624672460242297368650026998676570888224595215002723005288181504403736789689072784621697873345345573550715310027320638630557034463597459103722143511936429025999316803201729591863112928809308245411434247791088787198854568281521926254675821222565250924553108763722433893755834541378040905470277428882429231730151144534963643912197797397215403052104960954429049731151521677121661645303760291336173637135459656525710152377037826298948757610900990432576230017816627545162819997767101201081727415682607047551758326771649850444217522747518110761197784707102022106105479747174939677112999761737721785131501072870016268981634518665333980009718160742024809245365096614570803848275858460401633983753471259018566255605039615206166812404233735888604267559926557822930200312076018286664445155871008404526090078703392861946070267703573854432553611528550126595193305765175814735487159508331587628892028616187664252919232852273414258788763580172552127524805480105365478109610726071374680084262588457206544377753656575244588994145034122915272751075478758008452749010694908787186297896938716154275091122505082793449128426994381575652131744375269234888051023114403883048939291269746854592339538840893665938599574652433204241148754739187977818061575195863179995864271279787684143811690376370949226501428327021916702077770691033772219984694991565240650463664263529329685982242257726133919420399860127492650324329252291637537657620488741734900858863338394098795886361135549372501389285485157155444986724623676875789844128544019388430914939595953189144895584907803065290549865596538158536370816355998743048616500580261749995287305908314735201049179615138449626954482292306324803212688895777935447827930969584437583829684245317660416605562107356480397446467796988271981932277690562053552248142484701054770514497296400784819605438179283915275851960495047362821986446045756541305582624863839334199092541723460560801607123022142096372268388578533733534379221773140688957270500307822466733638037110909551774024691214965985368542122921562971810458150443302279234041674772957639920519283653962956942941746801578525476085051589791389022423594201280140429055418068009949267212884759165128953627049787646450476694095196591130282876622038345062571264685591021341955698453708034244152924511355642316519321710087453701443825574652860439930482694501058307250789006580942283708600113436713631255596873509793357455194416073032601062088447721068056968439385775770299478948280557195898115551665358889886708650337319832689705065178676323776215950328489211315334533729499067942555509483895596485396773848076758113039863590675266612120670017394410502814568721077370465903866449212361662075566029553141780982978406543352653138929710964273364001163728292305442381857595066883301687895447991073601985777413959483147273868391547505569185742669641671049304448620896841375849389444908648397258174007840171953882866570198789824138764000319667100677124043943953007203157431666919928903825155206484909791750591059007189968272019618393483402677638626484303074749402844335717633488256651201014501620945067213449812448033177989284191810415211230232454264796031696453787499969824960787285162793392630626668909039748276436084269607748489673353403255822949266883971076499352077404445985755870140971379286396001763093834616300059056710818274870408893360099341931126737673749045359253893360424866725907916762867160435935986530202742675623395264316808530145524654316824547861273375251251567062748152446556618694304538526321254250766360067471906732174974379925892740224501902852719339676543246076950091559533391388345920058474661671504643884034600556307990173232947202296894747869317092651866847048182113595709960123590194543347239546305513610885651873830178662659256050949369527018185814773017872500484158537892759705999707153507271099466156524482981333960331606176788114381826450909411331072770821704339276559488517841792575345255613594533116509425273762973460344723560704793562648094710716971243791930141462900520774074644125802632223173150189448698131401662388121936516837635518359862067540585306046015066997204007008076384533070698070334326964458684021051248272925588655556472725695932668200843439032490847543609964994890463259148161923581979346909730304163955030524975579749943944416718045701718423368544684830448193562652699663328527729497609390002906730094738492255729089721223639576609194999219271885342734411805819227708839517150982154766535349101621125592935374360235581823991991762689807787674908897569854151316543209013115284562483028841912279561359424128222385813754056033762647345961823853552759982815092691430321917248574240341358307814367352409889919151833851398374965495132431246788717603294937620026350363983591596327555212308274026358852393023906573209589310562814343771073755541188952248553500248611420872817642386007600258717974857044520179528014382515148968821181842370593489898693752736780310123627071091973573456560613830753388978891854898836820925574491980630537879284916578939959734429615695211872787123098654678574351084825572245388559757652783516911789201748644544620116852294175297418535550179897390442040618528621876037000464637201963439940335742833197784094142940126292531632562945894327093215969388084077084308809467662599898207782641515042477171160018651466561194676112061281970932381861366016905371672191896366184547384925316816016852622591115454794043309270560265821461102874150210674444526468174127500522081306126991189727052554748196652819261932621591998657755656071836964801378915211429183907481829293660465976371987817220084558547374780953087318187941374816328985481718959366850897292000711903871952156962003310776919135737699812514474849658877944352649332421648069035065830298019523010706810262385948943634642791455521838742357799394507958675483224415979844837669543516915950790133020120309010023772449403186850474056159216020003651731429903277197654985340817783268581820390823879357836047430218699634454673355625690950272162675100109233167568771730559657387558972268032753039633662736030361277461257235830655401900092936901078090519455058583230065845251120628189920350353737145702452579927008647416757279628217791234389666540663817076177357314497666014976059733410802772037535965461430493359359870693131366931447103329124866772262909560109276024237304651122959087512932241301748661170615054964870055473408218257609734463390652410415664449460732068855496659690093997348420151476624384153400516630157992433182401181719591467146991506313364903364249501902695820074560231708761573808391380314300087140019519486531346829883321451679837165521260656326690597009670402186623506346870880517397443617686471659386640557321371826044581296033959764990578186620488008403782397053454923323697112740667038605252134286220453979583825771863390405470954044563971303261411290806250323393263452359315885005445409274577157399052080000797242825354824080394773609156809685740266996182294418664467278518756515218285097640240500894608630124391114228525352006706285060535102343701382122872912885299408563363628812338751366813823314310316204227475110864634121779338070165172292864945078122189576253560584735620664014657957269646744495498887702019182597845295996040820351479175162687712284130395808519921061084338979983200577087111199182468803634564881457966039247548333056281015775252116856104400207473879842471318070513015037806218682778238836814479868267895148797861375490824440344123290443249765045830362309845552104062150500906905662580570254568724533221071107275644811566071524773876319903072713633546832042781612381499168101187541816574948648414653283197580972056934865817732457836212900054753505742221763731211803221036735880130790267551312313391181512771081049602211940935681612951155438351287657191212140595719960281027959950534051372645747797132689497872179522577610214565301090813711447650763560775152552603275923696463113263901829180645163630635891433846988305618951883429301608151402617877379769852871347159276609150521108553168476485425026966723870027220415439840273797577374209137832910781326442313705323636246523095279722336766646434500274529128994532467253949257471382835932557957387748653586138473643819661657654472913917992405990669626290485006625895798512853343623053957818327902529104127288692250489215973797978715896928023678795834348307933607013328918838664261892428904883146819562064220355289046097905397762658148349389805322011332363192657288658724496350297086347504763117987680876696462419232818565418550065337216901123924767331313278771882177501909067161578679013676938502442807282008241481886634098583443426120574749434226791782915294584378339367584608260317299492148765617329610964790720624732842658913234013919538842530399969554343992872914471047391465781440030889951596768563997010502862782976552805501190372082023294295967467184592998578085055339668707120043306167460165140540189672942681228839749862151100368659495199121664980167139547172137436642406186033782238309430215762392563282965947067365102210389600134464996711726918803757285977708754465332856919577457339682420364053319356252003496899688799934560276404917317584898931198373932574060640120104329719440600929536927859467139744643341634516604852020532809074657352692786464932512981898595154532400316432668719884850520251694462900875485656281369577879568414675298494159206710035895938450071773066920221112410508106923835642075652570712342177936472392567564651798720876194839397348157499459661544154592874092224530829853045356935592751857513728099220410656069936229720298004170431791423174721981157567661855387443352550023322808318653539699753936384544807870967551081706146682267218245779124991825129865965410224516899582130171558537855369361833293513085015501619430215600732744038810648927891472311158757038678595824089612500392950994000768564989437095274805723233443813164756573503514539882948948764678915690020801230563298080862746248698812924921963070687241365408777425724961326487313562667477770433231490986157613383722924952183634390005929731043780248431427034527281811632012352693829020433338140390565654242344241510182121602018068752979686016676714999580879351350566836825803382045382986456291118511417408854060203963071144007964629462987723332082557572259274024421197599249295547247999019584869777279064620123767448172883303447810208677493728413774599873869196831907747449906213563891864306753348951372920915866757489426587666298408337104879843414912854195324654546455548212664022913383434083935616447955478797568175235311823605115459624329977901568791641586420637239984910790941083258790589207504297376248716536095673388450253271065144177452779164700215167707583781922217893201020209775561531330215961954828594635667897578824360497903902832678761329182567322925141126550197493468453273315579329507477750315948304965099929649995393800460184013687151272153661116204861023467665060832009226016309412703257578869446135385192480581840431054829953902824054046891293021434443395311141953094471042008906162848773523535570241141779545683392485950760703168421571353666711565426498092638636531207449562378857133841452399151401645236302544740861583506210956879309142829820691038213754045106800841121974458696120662378400810804434575270006728962556896635791908213716839128472806076887392905239695764885469574717803323854163243271219465179407729088509225760098214724380581027752654846354618005487827259219362775654206268747725579696711635755251398940913432459593717599958371322147709717615898658632376814077905581018511106363202888097694257291562517133215376288204502909309691744897174181815464388012649327540809014324887028278907875774957598462785109874863037729645831820495924279439688234156750767481935103196824728486304087947049016462275583597836939052880738402885110146018468921055929113145813859781621663049182739140458560824581756736403379881139861644024598295036557826643217464676246829772652787451811256114497129584770019737694992781306495195438730184141314786449535709736620652451339738482801520932385074733572507826400280675513292759007490942666058534108180461082551367958329359011902299005320186202530361967642219268729135604357258660368330397156113888592694674461245688436238096834716841545974128780009566979227677791016643327540424286431384858405285821793364998537926579919829995977064572869042326702464734466000457868262703617290712740054784701324544908925075729864267820422018531609805634605193402364510431396078465113733069672208486676584986849428034771269720918928973138714103150172664794358875143280675336666105751861845175365100607601200270216879423829967994477280962304740613054602932384096547644749049870446408035807345296741734315812821943005785216739044090803176954146359104449587245762922171804499241869942222897166104353142156679995018236572936852246810103637128616093526594704816398469586606281942821712148930871545567187388314915007834653303664842464147677442244233904214034384757427721633742962301479800278621872875500856854659289185043808892458901518203194666310918161349881742292945883590362098529233351219721818563662918323214551488518335736695392755995138423842521052396003226501297978194460427237640288666334294126044255797732786928686934734582627409106128905246757528632711223972614112923933381328389422044366558406578467938542576955576594433545419327702228753394158436593522353484591053690725038308285925752549234736952232648817300062105873318433468918790419991433340655369819952355024196172402318544879168943509168180677247630785373361144827085981073619941554337136644814944662514724163342239080005089068850902671283382929744985470525212297145709708521560275721266184575284239491837298586052642829288994704532356264438745149551235297581211499609801274019762170044968164357923712074454477796044910008069971606083098442111067271754393901413211208503585341828680540847461598940911515499298103814632000444799182045493228164983654948288204469358216537619413141811601938526650507407984543134584776482413499074553501869396544389444210109152544793588835261304561561417208307210929378856073204565740075540058537370776260012641615652183669057654855801518590194371516356838697133671203896220809372915071088434837683933556521619091284836336697246070020063235100840840865344163831793697319022338358256146037855855136744079738998982049166985686546553077955608897430430639022342588770599788919887317181498026489105151868167847677709596487646463844662003888418256291514995250223186836886211813495424513820586694289361618065932952904193304177922814525241028922615076936717643326460010800423215592367801251909824840524299560758270165550096411613308228544196757031740952685612258461843684184845919338205910247637170455208508247445181809903225816319519284777642580509462494538022123741106112142959260395004696642768174294159599746110544592781207790775200959954417081826736710823213118494143596653919974921576116177166648685562133682612535514753878419072739326526434514150085159974005748178407268250540479606392442044475903347072754936641348534263569431673200909100770816244442689736066409201087748275293140076687853039967414653533855947937893989232741975772450784696174142315770995282526244031078818627024560264763772958099452844638663592148125048424832824292911701293077172130334202017586941999266163278386788996491429619560219345256408784100754185192236210948424713638545677770401028788078534691997727933920955205954378282134426542443199884333540858440243797408887823876389459109478769208116258761028682116776555343844432291997053360201647776649890971863900903661652316973050593304854854930941679547618938938007125010440718171809645412331066828292027113032185527338282590170594239283767303551498887116233502723839271100550977881152168429087941637828235780471702357494505412369228322575454409054953589817580296351961109141187538393177436296374663766821200421160958210788224937304231997989432785882438735302928776762647673317551559539678177960302973822976398941669999351418192804436052648251467285825284510261398138342842473649244594016962592534166244864138620731099222608466432217077242613861001456893387036902339560950258337481203403295188416360469014329006083220682732089800150828715062609251933503725955245147717660684906235430872278446338479382578956269385270755989871036058580225719206884892953118234770474011989418233256221524127670505630381877279814282159376316616535546161534868073589964827254157948708686271152189451647736686992335500861744592516915482188599403644310979404849677276564025217814197292585074598029034888487102857635702436532607476591470732164931208754409577508072423365888285139144416361469380141319798621466847858987453011430620325407293494224234476551753698101078863522235319964090810410515440812343798768370070544764950228160407183435839820223415429541643137735399605099802489981283963199000606464395081910372257431149463780622869211073885076013522833996904961776923563721918556836181253171356276161756722750058025186217042974771127952162629156533301821056555645615708615079086782430065418413430155486511137913287534323677854665360712567732998724925910397894883642852810767898315577109998703710491318241327482684725400710021133569962027211055532193633473184399885505170930912114189055026614742839758942630032658394440861457395054596252327853148893466165096956920248633850741203631203334539713026580307445882444830495843859093385208575231576786882547401400890566613107759291657525634643180792216305730901084167022825217434364468695759429290130142983309348484847042861251183952193828207915334103383480639246935462677268858491250823348189733594323772846924061890052538784564380994280650313334026565414827269180583172971229604600725362934937254215143188543397594665669948436268690757739001001952972711748229856630064772902421095491139676838069908002485298308766343837197378306402012608344754166839801480850529130375352350467746919153597131961851478780700977347508521966641148840918135136498426222138442355294051866074294875266558441370381641576893971424538184920499064755677247182112789442666766432975148722426231084274271540668113895650520477191124722301553215171340482288543290561547887147045975862428909453955870233652913838362806930277142866995267032279158631510138915067032273496938719100149254799532963503885367060602266956871389038721346845586167939464065223088101055930367705206772125737557257913515900937982486432509124024769886191205234417777404232431877398647773855456100347660959676166129825378207889858462736196436726611320260633366799725720691192133322410407581544788659788009816049796910600740075787552647356592984525183599548560335591727778425716153988985638116359441881000245871077739116610202004778055519537528651991528079069525472240781018784542656377301763293035928472064410773283583727408787555353750399252878110107308058241133791082021271818905047922651638438558927208367339135144859846949967938121835077511553787791368628564765381188653905694055186052834304226667068457650500188725792084961549371292647834280465357282365041735762141622257468173868228814516396488744572137353982618333330321179618789803047023567395466797746495612475139751406438369717206322006289624895963922050585594316634029454936615713966655841082106442278451191002055371395859889911944332664036505005428922678579021468489185244931390673394107936620963109425068987745765470378556767513302189172603195892446548013761737403352698794390350609319076892103676154126336477530460950409330042912887162077214769416598548003403950276646478315170805404233183628755537624823180498441434539042540692641714496168680076604435126426959753138455080732019152414245431297831463654739751327773305578482702809422541184476450420287894205541945891950478666064585287927885441882739409909955977620792721039286907662949220675574052784032715396128508253432890477903793512389313375815785502882103559654805064295920531093717690828822891306851729177507665274782693643553807547442268261182550615132703641494237942855868367524406620525538874715146436191431059211507979671191950466411288171361970471373171927215724182048134755290620121823344450887089763621884792320893205175803133983606759853752111071921312971717427383255538286277038840122140218019081304291721791371603096890268551906378411271844828065109956758023365326332027394338453126749106613410432437027956540020190843936286074093508092990630567872763225254622225857522596406660333728518526026809043573447013164417022085708681132283014004218184281903892369633023918187764291133860189704927418287880655195161459838311036344560654590122614804201965852621830345191494023401709766245019136068855602019168735757419608544894696265287413917440879198321150075821822841736725591188328242943657378342133469257836539654077878297888478876578023246888633783049441826386741766824530814269941738144858391685452206116768536268578401192226534526597351509487998152586055370643035321995857438574213017305861003688946108591889827922080808326350597129620302519060620955782651578928669138764577449320084410182230025922325390717438129447530597392655158706259389441931452958555603785981058933999646980512971670498155392241642487006349926526447506753074502720060113038299112417933324777439594174198490940413524306220738739538999319619347262539705274426123284999767948626432959838703302631589364117988596316001117317875132334481404052817009915959745064440581578199637967327603807823715245350515840851100674462302068795924165490021767997915609094816683994771589815365369006385978012118280907416809116116939224058082061714464128818571338707946465586912662617902731502018393532367656566049173793070976455424343412479903565882206185599714754127141626825590089666570562376272590378379004806127798941380578431227940554577115527811550167076680240242945004974699281387647375224751161014672656777217427447436066732948827005936183491195895778971827514186404261195125508802712072786971588053370917049835493505322268992849425881382129977326358838690220353147988206932842404598780337626813016500343851987071762455255005455505321281650183331131380275238704709511592810243721702769352161151021268425995843897124167945327348032858383994294755250441651317283299854642187694102376909028434485895460518445654647224770550191912604434102059641280027512526500091410511250448219505392422830912218255306298659571560305496887708491778726521934118994820281136783591913125708227104259114203351747791884714052786604749594579228015051762353993852076989753694121812232567038358894021600434342711644941685584805781673139007293516429610466887561751144246407130066314831992743985426232426828616449161162531023191394674598071623918269419586186049304554961755816115646238985069842640229689333972399525784522016701840330896241814862682071540860023432235428978654158358189067017963431894917775896924744409517857108024841845818711430801764404703120493191207159228332217105786897318785117374390094955311021227634218213281742674579622757404755469821342602613714492343261720976149954712874009194252110791797833728247497590222085960249771826002850928195949118248208617461585545351780193957604127101537959563780033291901695779353622778186777320376139343571684729552419922815286207649929844991926714058338248774916946538771542742984968922241990498889162045339882334642242057234082916064926912480664324898588263584074863878885453341179332319896730584631122084102013669895095756590932628474588884261377605787616272383568308881969945894157507411812782565775405087883041073159620220286616992008074306780364371955444141648771717766330016588918093926032335632518373550547621946698540900507477058068446878707500703748360911659180477455984456186885771277556033426265771158369483562169681562185288051174835625575030234312459772693452533526182849895984728131940708467042358016155173736182313115938486738866857156433532814668836481355649753415793280563399167669824956800886833940132562162573425257515701122345531205299225617650559779512173077116087449317908162524437887015960023427712375845437205619796919253959217537122718817624237765320019709517856747486202972416686926214529342907306121004557814938613321952769964921170262891210660446568432574524761960439788897935253062102648332130409841748975532275306330863282791665834249555440807241178913610608510352600454324421402750061658542361852327070572984218285719256295720144355298850580087325988755214669629361231428492646172506833238436694903637035053202937517784586745027017727323462124488692352596363452242276025812850788313986016714846878608863717031538337367271761796750053926730346248379894864108776986543770862117058373304670162037633958507540686821775086568026348098704838088621940956325932900243232268130625225582469581939854971445111200339444126785398359312915814233018860466024851374415564525734793955577488058649300971723853185340815132698356133597229778278718169119295702496903693511073804250279456451742694457798006113071276598165357297372910138449945813955771560562248709029378688453638294300661446351500158618874938600234730499290622479448950336257866082671720449781937967477620273744171636807639559020494269125129262123806732622796975068820084548324673229050226888203862097264094078155709242272146240246792249843301480736538216835876805735496424259549957900411190365388189694204776544508802097833845127388867702714633921243388479504625357597163969788752941464551088344682299412413119268655896293147393470835421548099352351697346420500881784562125262956929881360385391014960069924223793883238487172841173396967806379651688075690690334350673620624262669094837975523978071797351226893239692560994988301373658164515270870114350969269893386384605416853335210671623652078582291830130302060078377762658743580053352670685939341376471584373194159811989092076346741969372178122282485713543391094509170092590618609393179974224705590373311122890817935957837259292876216730190417008409685314253738549644671577085657701236488377055004259386803512442665313468409512713960117079112390566055093941766971105278799430476728963438927060746877840847165926260394219373621273573193338642990640695107818874200004943922257341558515615218149095326505564792521896058140663815570635989286402222050542827914021817120022684674040434129831993972352466930461241694875383698760434086351015274326857060797832040957334562888390379515746913597000944800408443776303795487546271056140037829758645388953139488337440500765632015128570675386138029590553384486238950103628052414123561629773260848955542630673700008997072309150633952970044680976670057305120912811730470366536607638006460626508974172640798201431180828147118695747547441740698422117736457703357076827497784013468947426438165561242255644929498792120630791158517016452926211703111531601171209274615661176396952175185466853049888231119765220225727360530340208725812672711889029794174160917656008855024835992163351295189638895973128279415182634908804839459622348409516613449459053854506481876502919645065053112220389406688783268422105939505403953711830201212774100441662897768695499508132768330559287843229097830188019796806959187084107121647581395355335394477672344455225898175485184665099225748199111933463956908599644073376011918879012088344047131384864747310070796583533197311479542682902879820428526843396535831434012882313102687777544697802690864578278668322269327473472392082154240467744357299990652174506437231602234576158458020472180104955024520193722142768506737609336514990774936503392555416001169619834660567153849877532471612224237623788060133487392882927373613763175881507748012255378346338252057132453987943163583263591012124188592414468656147845393636429146659694816955578268232236767213743737936991916508728807917850191973458703799263192348684197076435318296095973558588290391521772707560649173570499059527527882549182092796479053408673853492186722662590879212652399967355695904571375668520247521937036705228652416163760271921396444177735721602737508802027942386646797620441362129383783081333367760478729044679100414276987785705890521510753064901521991376529693672928062036904856220840951489054258953604500967624764563076923096293745477154762323704951729498231513253812326764909854301063361739936527138914942412438837723866301774860014897884134537558719163165791808507777288986025808508405664474071497065073799936623696120597835555427486440506395111384840095645864082082272081436509534727737766532567093263526686125890975132377174281563640200728838593128915096095323449524583978422407851221717289339554841958197548430307733237109943038740806052798429391086482768903008582581075029525060325092754528915981371347068162124946553549000290241029336356442225060334950783192836387512924652482141525177063840351528286183598395124141461799431780600332738791277218522534811046611210805786042557908233867185210989052901238755966610081630174358470987301583459292144925135303478021469095039843911749382623960762736947676093647653389222006109018807476038317630772512480397366573329800178998789233352963827649684886089178195373795187240822937795186051861870868040311140518762371922950929429260759187264245022254068715125521752531773495233107012243997429724161043429918874188709178403562968605625425216050066487585870783367756169520929042403225483765747075300477289134863627899979021712126132088991237346209674721832171288767356546676405687177715758920910903147763448040318836764635793500373187703406414863637637774854136257078591237499044744966743905413078717668480128054003145574074026188604828553470665919362013297338011369187638702312825859962486014582587750237953629617958837087018593972353197894756074328627678839859135932734691948094523121523949044765970992649883253637100746424261681651040095093401523450250025733277882102888048901507416934803290991592498372871945949102322587333046965144350585100368622322881629401313650549590776117701758914295482001651943193687250771715015258260571206196674142524862273033107168108975633958608124533569965893329764483116495416604990007065769465065723407109797853961603311958878880772322279955781628249748444861341723250626251419236462880120815789341444943957355639125056949169495181500880704363252639107635268794441984538009741018142483264282049939682857833066074338316496904873736921299141831760384265487755429865540766033532862513848866383986656232110815061812780997997878903088836147671188889115997466707551149998765820833323795431155588576728090543539912028882166961695791839372721300734007758483971433854983320102779770775642029463636100232731820686979376153774675157064052079063376458349952527012857732279059312390884381007235267034224614302909591990573567804577312925183449550917809685719392895989189236043736397779477681851822160640179536349175953212882392484316961714697754919856173188958488208524374051387302056211390769668651493196774785850413477433078135325936114050419303260423395528987992456712428234839958719762913611408878608364476092853850947438121668046931626618103949902724546889852840911632309450683752755920802216139317204143043994283807961708003571305957953700435551866087953601472669293135072791416499306118467917232091633450062262597451335285688739581647179330653080388733827774174055027507137824807962668632026042309992551906279012571780448900810778640363328156714405895974801038633367843715569550216833689303232541187975146232287876817357773117899086045250414770231712163596974710963537968892870794164627667156682901955411617428526338978773371321353018987107640093074240151420014152474964709110942557360873568770857938593320807572386575146659324151641974426287279953401144881466780414568295934419664457593907565603706258960756235569509957845950527547871269222024518155388880474822107829121491759081268688690306723684082767452487010672074495481143110474380947882782537192592145002018819385655904811555122342798044289036145504945531952743219473625189584300927402485236713483750198354904259530793258962390236480840230503208857694765875734041995423499432044957667507964442583323505499641246578597714282195297443704460312466430022687080105763510495494869696421780756195460656840514062933579037021382799677558240014467290091078459660079010223731163123581203292321485268515728931622393393629182380903027312755973332722503890728065380999312651403945891275846808627105203981436713464923634002369520952713946039003233862969032189444146314589877163364355052528105363458208313765180533473489075058377411575331925517484169162019860667588664611429898492060563553179960308273396085529529680421979608110129741764721322386804624071075631468635293796012163065070365708177692081533281866112890906668568856721554571470460957452168484240236261011039557343958385024880744551221091288574386026258623596936207134009654048449219777246202326249902435347642182869581165471864038511241006917668935723792911063991222531459053066556714588871827154207522465950405987851616760888791194475480716537370999903115749311208810550852338614278022200799339177329926529595275972586871567324736581119528947962658311850585056308405244145119786832194238311529561270062107949253566564650946205809295418440526767654334497558764740389555541691878428860113751753494680413870497315859050250789364349787560377611177362305247418431619455667028336925878353040967432493837015424103521688814740329046811765134832555212931101328313965204312778258382066463635481480897285817292928309542992322066714090857375802769925671315107591525254583484117019070423583740597104026570965793318234461427567795483541292884438009966635534427115814118653322043321583761058923117903865651425813989108013974653708930441965435217844695710114973598585052106680734213326014468000643876507649245891545153203638968625371117751875684852333225483253932243535751961712355357542990248430718097528950818949781577240291177877528664729224088801323841431702293203211311843315133965142424186311451551230252595155246919494374895609799485143461363666668052154177650020865181102827948950870494222567105772924471457150064200463799913834143788463715933143639168185304393243415146166320849341880844350735855186444643818440944790442359051215984097052616652215771927316729636990380155749460479614060725588322150068953117435795410975270998044957839558426983046196440859442584007322500437577967363319019213229333046379494740383062957142587531378759728741913941626864220165652935419402063731170555952698674820233884995015026531016273317329824503625916326896547507437948504146555786831488221210402463210374192752162564001103145205342565980857065992127326381955153544347442107063309528597854999921786904657705534597432180614448166734519219879132677355296665321719061765245302453742022940367934513625245776064978234816682655816935987437630377585897948659502973828432612840472998460883527529174175886247713496555414447497869150365292794591730808328633418627437677089593401772224874400794909590671689050943529516926067920736294295079041830654361147139371997604470318680921930712583677789462258244240246535921599647759225621616507778500676356760666556653941884568442970492201212663278214255044695130754015065221784135241121437901316251811330045666478681197538311131369915544362266809111705605212160645136192886853328207632074285846021613523353250844639468911882375351929899485387947819280867448969386373467612066681811729044356667235555826237713735858162477962654111237466257573096048905892717894474484350334493194228373090446857174457134892215917424067988472603152962154897349065577645757223537059360248869521164112509938356441298076515484499847482433844884172256479541599244031846171835583016288158007903531365908902930662937188689757577946475220337955365045606236430893104922370467334210371290563834176112663913288926754798255902072031449329664765866012119876402776651612378721162563588903066726389959914404782234532479041010083851557062214206828787499108383460394163149785176968703642699914695220136499009969028384280138460342377542331734145824800843340656244988665257639864682541737639076050661420747668816352429837174665625616422072397861768715974602785913254770187616956822236160209603819840344709153254426134667719517236639921294901114957724500825894036922077717332268384509317799641406151984101627711195205477626039754677541306946504356789462037224534825677088934427814579728297243549327563282764132160905213524801911121572159876203122127982145778105312012520899633344509729416482464129551050362587125439018448473512926534170410666683026745658868568959358981580350328769948575387558382451818398423079747021587771950229314879214373290755867770621442195734537720656223817026779434307640553518777473000798929991601887302346790165650818162169907714668295120426540373203571132935128622225971731970189281372245461443472238725344043916206366900268108398728904196211860363365120919476387427937723365230828810829621095902222511739553282741799599179668013519202933051809556888277957497824198105656407755469800376668297958634467481265756134397776797332188075020971094281636756779454632335859221306172767646819185551468738296322867563141017297762670509761460467034714080792258927357580289740764478158246151096214572304880757024324078513284756216521714429664382374410575783653309935749583679322365241311569458960705737862667679594374516386267747586904129948352453345869442899296962061883592864857975593818810978321267742086007742038467718351219500407698077032259949477135603890325443406524166123700844517848266082741021995626324991996374294562713295378671098556233962211269778899862951919830340474187822184197235122231529457641884764390794901553869722776371216661725534907004935099869184018438540681308943348356917042671968463404025234132072808342109226586167535123127205012552563742059988397413917557868827522273552817275601668078250127118862921093051480291035030799372248314654763538320891265092326279092017223427505414473365855384231711313513156942255146008744939114931965012850189018447158359301101799920153640644246270624974438503753815126934455108095563732239572255692983709796370293292515989534445118261527610411547835764693933180920033101041618114586175175775094207786251791588323242777919387192513598588494421670641529075256293176735268130280396608870538037775986647533968347505516011079487687079371555685903777234167033249064457764202922642045519846798774636075921446019901947977104278047667014100465977481945974123966427131443912027173069205282200109964090254099797730899984524142419195664287734562322401545414706967725874145606531443942214001205548813075553383380519174663134684172592607131657308554195192588351467752490704543846610609867372607832081472066686075346355346742250092242809553760683689166220598137850678963609656038754538512480420486981881236597553576958795274776586993211532406076245482906263520952175780818322780871334095124275093206681435162315233850955486944465652950623122508093926922248722896622108941350311456530366117230863086048987262284507406197371080341769322735922316656919844228761280222154268105210351075723828171111387131577243454393685779378256953103684060640873364795922835660112276839327482170502398019825558194333700063707581446907098105570652609727895775539741112990151243210645543434026462743547202527711873223683399788970124533713283362527277238272329259534750444529122828064030492300672419228867836841459223876487207756593377323506443712827651731218887004377614706872546346965570116860360313285231955835193608495402956034703668313879848591274192720369599751026322466236242373654683430993401205393073016730833938180137574954576017895958242877012811760014850272419022866743874297801845458260973800063211083396333535778726008025052721265421846120190504734594357285897627955403434089195404134223711489251293258825377673262068333801127098326906910942115754101686846945321887857069495637553256688272321800506378137220879451980883071242984340245158335640824861730669087431844612486746574243925269182368295882166827177154773172457035455102547580894410621339697271388478195660219696003521241845784044165032490381290417683984106663166289658858946629416922214232268227337203120359291824051389515673183083937635533178839262570665691183127575088728383083119650681659719277142275975613708919455727999444907595168666555511663708054285444072608335329391439610626296694044622454807041593196963754805810042977903616948172455978187074807316550479218214671139427776936892749563959874050051875201643088114254696892472203795449934947116965746411788852039410054055956702049441800921957768201723222223483472988696517893166790384333953473928878775131131921309924555408212046711446060418683525056833570282818458599286145435623019790141394626532280364385053048466158245549386002769607793432746914554187190839819876313960755004540709576291050615010078121294656983978230474848756293966292211740033004812738673068040199428759797079567419365374643791067189456492117031928073059172361346734867572389439709792427658318672480711639583907098328754088831033941976956867763497092669479767755648942971569375287989562827818903820914095504135992562796607263606178248279606125553391335317814987377028466290937740618680030633467316281633021865389822748117916168595376197365469891891729629696307575046203337354206497064651746742419125541984324439661934203944815422184530138042342512427314664880409516578220423643757291552785176946195047084591806589334765662279051415743688010903310212025951055438774518675176986545839338041017813721456914292870025494176959611034157537718131346618275246500600851482884211614243499531175026928983117284759303576659449672475107983841773838459313713842178841824268562115973564850301597712551679006646039244294279129327591600193343822094852521741000008133141203316432618774583429732913002149793269283509179528340180438683822038797478899643179498760500515923326095017951354397557148821293369437245268969759429169154953861193466105513065218772130468958843649886082200901039525366237850317612266744706459883920627069097489002523051427271948205120487142984302613726541366556345329051301475407323118340815102294166597708467425406565388411303824407814360827552019682046250030552455276984825823317771485322716701576621478009835521471639900789024863334713031508772867043238653330126870392269615497161600071972913853455921583993341924521184692591040796697005121725309938628736080987007250048941658359770397807540589445599492570624273464847935686001444350682296542442279706270904386624631871898663936609477226792089558829335870193279822013614848197072886811735483514794882035114815932943383614591306734116357392097258446022330525352771673852579341050565747907535003271569885973254355714323902169856935106002083229612325661872143606931474886186437495797344216628963138984110304140460894131387545891918514672563215055274951354800424083477643506926714272653369494556267135259267398707558695378079685516893726165595225096570716337231637989699908263038115575863040088547834221043883428269279886635162948190477113415073357681916112872936186827435771246936878751956093158904895264129482045967865017693785454256820835638669455203149677666039775745517181199654174842016214775876949140411800802303556559724382788694237744665335226869623289908951112684125315136581694320911618893412560516472054799322549471255834479684457939247414875778338781606912929844820732092585597824577593819582992045562600570566813368961976224317612656474218658314511482835070966321751182748974658063420208132630928147266793100679149696818361290501479212540242452026809296597227787640707498339845540880801483460266463353775608172945936055779470144132140731267194912271776795879700264638991595039427497604255229746556155840388133778514535286028084470779100868453576039510541158984000676097643396924634543631049042705591868877091728465690227700100586393159073992169202247290698831358383305197442706000083743390407953909855287757101375827201389545294029239516537749844031251994987447387564169483804860648480739325431526527989041438636461487898666141798647727322871020197854964620327871892830159347946230923342277713801558383969971064514826820394320090896261249963762601393578495356230773755435333712742419136097277843835379332075327400886262694114863323170833635210075895892374820797430635320456938147137124029188365477629958403082050806011020288826951036827080105832087678067225082983839935118883209563439281414970042517002640139748473543168662520046830190669734960728229098824744099927824175667860240454273998038212418866640773495550207287435164888136758996599655610682201279942185097195147436174989567419423941930196809713771530272564132008152366693374204370514903318422172704010910711364939239733778943372822631516575937682452467849519204321018816194968268536816213094139450539757021219684218145741251693516981635685926334127373416328330721007954103143920438175646364657577531257182436809062564386420479659697864226039747729389115731839989403094656712352773234673388662592201700527208260479836832937632719466621363838465741079286630195639701199474003562713084959788006391191185835897189266100196785895815991841593822840874557016172586215102842927406875530127085082631844566514999447865480042946725297155210479832845804310253145109732154906019783289927783421870306112124872896351798019217428823638744697925036266103872637533641788706453099360843596046323487360706164226622831086321661465792201269528653904212084133176799369805378094391941637375576944964896589374379567484950079597040230727095473101770031675632496577837478503479269688764441474164939724940943844725940214132491577658436864357146852820566995606298521084766778954295253184704862616395674867812314304174330383233261270643662476172584979025999263464885259742779580631575003637199995691391457346974790316131808278587721645574341079656734825466397402982569870124053567039161407928420446971186134236824305413269965009974205252319406535402930075961916508515231952751457015166054534236395938165307805015798534638760204001461081188117553348455293964642453106333756701138850224030197079241868851816961087216051316707199751633966057791029127003779756585874502623452959266567388217921312367558720700556164630956820387108819825056622763059957780603586032781861829871470378139483786743604349886691583294946931781226121994729744139174427228945969065125844540045428177045449451040827168845781154160430307549062910158100000903829959582970115528929385047320993433918271309707524842079723946340046663750926175434409902094990369965571872999578888620374983557056626139330628160777360769605201850689849860357055023346528751414416302960809189655871944740684324921472696005974491215826319539091575639762917288094850075583316095887956718967796188475272869877152911715504442401775107487102608291562876678842595842098913616080524682516751479152830492301888320456989413066497242337670331490871143933133778162753261988427245294205715576700628434528388631045882895615288997404945227804019855584759938294675679725113040564310467573391644992592814158730075683587728952634363455648561496290512587261513598391544296424267033478407118943261468646117188662258774900616122498210969903554456855555736451817427616036660273648573969436978861899751927534740757954519693399571447085958339997771673341472405847810357218501645766109810933650886858455103611386566883501087472812166165354524741167681929543155037639217323024992954384533963241915492515649700592956443742170951073760474285575210984715478409076976107377505039051876034269184167890437255214887463130469844592832990983298630980717864503729252706984644323691822145553901862181452768484514522646854416024731233284798638224142046770692068161353916667009369120022914530484391022866825359220182166271456075518919404607185610290583673956885058300498302744910257355777060630743397935569869704121050491083541713479807069638335812872284494439416542291855465390700772015426563301650606601562710815030786024132888919031074642159838501404811322513915257768044588350826767726344525364367310607468212371437809786093179543791065115335665031771802763108053813662888567472087450113707207564791616035396140441407858052914154237317080154908568212092593603125375152545127851057794487199983486994900935219737532410343228954779609285791181009608684126780630874588800473299091346759917401775243367445184587330364630482941550148604958242017748137644401679679038462199332146348105147082904589767650250108927993511726583574769397914280543535646200477325998922638365908256754762530190175175663437460976977574792452634759644603473808336406667710740792969192692936432000633874875015981381425358720586585735892833052663551967998755582248860177310525700998697390038194132450693975268818128163559100617512837906114844949130071434795359745632616436033991646395688307195913415183517362634751484049868538748381173939162707922691833436667494721780745303900401756073182942756774227139085616493149214798532090739073664370647097078651655457695054899557474175703966941147454262979650384560034687287110638660164685831942485547131990481912623027072220456357815023581489383560612100488339734065546131052904987985616767030052766420340668909271306783689273035170846510034230710500619014796644086558861009168965903841180617785849455811077539403748862370032911640861856604175983798815300642018193875608757854554830304926345572879978956926033097890996220466888694488361955897072467961681045841219739472285795331120502845548557595476935343123309184891091321127798442397150696404223708251511825740277522093644623811561803622961798171067049945299268218197971993551529569860665074012243838012935500702975104266846774166678979060751905797904142122997825597837520233055168403140513125277006495916509120089436736255014590584911351700732373752052767442571075288827585434113237057610394645351344411981741157983152190734459113142986598729442089416575634516758659523510745755963538156641009272795347389065677925417516113527385280438209682514475956185484939249259771459912168152417577680965298374159596191913789951236982395433768204662099234117412227590722439222995611893581262576466289147621445636865990689523401761000333429446943614962608655759519966620833409405376107814182416927660588747431428038481276639487002292454159574545621905204012667727282206877808317380806777466380856276856643411256043192101569856313699474276544283788095644431277564880926080781916933876883924484602565920599489227590338569817566815698182492854378971564757476550588065894206972039525270159801146467444698659910352181432886450348779315069411141499942742547937887909685121758261610899819875146680296748406585807748324233864152884084619867092383489026963632119328894033507350547889587976137224227426022677067031714281182000774463663467724140887402439315216723085721912263797674328215636072859623064982715519849032473296629787381670549242191540242790472187310012342970885234205780290555486383685880991289796463748851879147163587755645287776325168349998607970216006595684905507371885682759428626684831033675493642372368162304474824385070218646510245635206008091269668142517348030960546836031617947261444382931626634433818306155429301806357665050601170620898093933806086431519245527614546877893311953529653871513032745283637889463616544904491502196700302799237479975540943022851972255579768297609262475111109219115795968948989758261689351298223933557938630785270966485946931082664214877145531456284249799943336208730326257526549283228732646141155442684625303203579105834714091475837584543112847451044616274559273232309176543198309612058820729724450015372935594462404365754233212799662927069904351165908089090409086924876973902177710518263703525751649693806784084810994359274844734582370038364138097524071715129763761608373926746116280248592527078794072784391625962116934442125282194113877995853682944635558100691367041117146568081460342410401086194411589720525144567188096739977096366372329366257560696400525636180018713722301170116299441402246066340301866428291704914695438649376996261701504646301623557735536947245114091738133670321972498003058799162552095870621533015909205107647467579171466726333997502109126519965436684605478156018355507603336809496508707899439808228258511755524530468283114981627846275326087826292337881818381432189704007703674824555011748909643672988126968573082538817097652383129982763137895077823193529417235537201844578286819607552555301538578195451970782069365424480088160284189282573043042905912130596574670136951387726803938068217940272476630463583885988929333518810582545175592224742585902778949363005915755652568310660629504416873614807662105637340386999687718689091973689344774772227085034450383915526556569630728117431895837260113343167545546404147858312280480509823622403212894328999367666042677094457275245084450329917019407649448515636099095528173060993818641565405557724817233557736785138115687152909565990110839723970795744348860905535051179617179998710843397399833122342489803337500898228929447243032479693671980743522149746534551045540373180446839622590158506639786017327746851343026099380183474669060708763905592617761629315672634015199143531551785275363169866278609100397181032179020191881062502068068347698843767173947128771489495126262940865443812811686469225303932075437462164165180122006072743834607539547561746839004005339370200192114522324943468177309249543614805615260702205104245431188931391912590801309180574195403622005298312623585559296409850545289019049113123428721529443399749384516424651217716440835843059306779855533864429735674918274463323415252175964998890334468470319601648797669188656868101008065202285622467766581345266793069258577443510788056464115592155444962760235781081905825152171291962609789312370775336181037609820541426034189844555222446034132465264702172648332977525305715414353579776721152380511556949481832368521808642162506214763000210146130698662124797895792844087560478400005861952607664270227655384266249422013374048073400228023622891323044511886731821316241635968300269926152841161359954567540988555153261104931614672060134415970737922110671012269313345218912480827790963556553549816351961223769825644870903695395728608284595292957147905199254336413635983454091053481700345712793698736171047863927820445742780415804350900633746628228010784923795667807336097994020244014501689560676001928137457715142125708310278247790253303777028417131913746375547110535622004706388558946096789001899214145299848035166943666888394778700094801234594505686225723916097545341046307720953010716402572348632025108226907034809958676381503145350166794576929682550048409885299435586184269962263977032811616196849602848857394865195125688122128042474431249127485863588798859997699166301276030974169330999884915179016015194139590283589880987655315197464877294850343616925731817476149422588396990025806553487137062080798378001891223140100091161782956307153998028003255845264231345526910898622870998187017733904220034015853323072245936600758295643024125277880257782990902195804226983907982762322505926420135714923716432980578706418985707020773939128350435128751161414572072753387747036095556682878664346250214040038918320064576837918919943564197285534074065835922034032628384188192182945131589955852095550727202175636893655494491825075704546241525353915825032012528541857097176944298032762135397786114767541596149215625475500312435967134992297802695114870115475847403634766752890193794715133845975827730873932830770239204921403645331826118724675720264600493554794914058257220025274564183095831428076308825545301397621539684272294418684509929123984751732349740449713197077212607918990914917341851826511899957974306939865058947689117565625632305759106407150155637904447023435929056961120988448465305674081627058187963765017437043893068601707924217231775749257853482036316855123820625360876133520480926419317833270646794043376998738002320951599544042142735477532835256895803704886203956160561275172206803730834440584162310952884976563312042321548184935758559088404546049310602049809438301352895081421857284520836752924874900568258466925562473284142888429322145246471951868942441451826311479241612284773027460913500544457751427006659593561671303401385620503849020679057539599464653152196058026530452228660795075821896669788640850484835505380014028063811142402172609337747309162003758222105477622723856097073078512316090484581390864330532462561048916185213696145466307173217927481519925621525342944827197640176897884951046313941429040309063804852731842407506996631408826588467655612807677418925560456425500239507157006932798978082742213856079180512880956908266986489690261708677821067946493280956302232321584510804652505251944701120210069730172309663542963420519458238312580436371371998184007933240212871353303321220489830720437589308406782460620456403333077021035401542672824950557027658088956425145973384827793342494925811678304595164984109836440890032886233142065900420582779460866897612089079483989079228364994350785388692203117116787960504169670588215735464940345984313279552262469592853059383593560702647000040362471767088375749878858815069697470676143062573008205905380848389392408393807462227079761134609064173612494309144591463218701782074789469307238842394587912634464371481133234983784984589004235538876644329490649915705744310439535939168339550158019207198536310202384953437482730023756121084134486342013870559889449411870739912736133851357396681602987983386192920763890557013843098467372010522615779587684039600784156220755502278747397643461832758377207974480195623634026798287117599711222350700638064343596120665742511804333152414807739922678455936188684049125768465836230747428737325909658473319271566789167986034109536766543036625560254754337406889620202616073725914666432560793628402201851187178748848774211861123922745695175639789113606653228932815286111949530749669176751663504521381736491761134669512524057382418490876914796051543829041606095904251395605162654219994989740204445403493529769249852376981558996527241217398138002965773229319819124659688187094670710705038704443734211539808166507644580528931577172514791977669948273048688620196447250084495378654609980764066149854282347518683015522936474983713773656674862553107130759476294443702997496613800427484437372195081658956630601682080449648770642603696352166079840245073957487771831198094134477835662994354665194213518956505145637992242824490801859181958708479379179297037644140580818109365569324634939769803307402759183646363564251144673957392816087124528255994092876633948018134760669105628095627043417877247976195362038186579896229579595750052147591396411058297134250301585316646383328544812205747960430394218948263029558234225687305725552906819085086658357656219535872770653785537283327101713844375392779192779028364431257334544300433922272973890260407360648216597909385590590036953820465586143610521752558104338481773647558746385477466636281375114180099471597734570885744252838773985550906410753430651254089744435072721621076306428309293040919189165929393880984335503223010376602010453003265600098578360336460619509454290975333266242624848332162581569209334358750453699427290122353120268435922805792872330331622489189712451425706449753133421873064885962668968708054486284671020873973709666370474685059804924533316123054621160632461873277663955386853131051896734355568705208918285752541764754025324576237175151520799655600675893066420026458632475965250445387846972201601171266453560206510362229773220087120616622334187627066270157571133919052826168472457708734743203963647374263347906857168669756920655949625987855090456110908052399390631982112478482609552605087975979749645194071837080727838493835181664087207317253276720510177256796360413341253663683429737765216705044784225772196342446234140268810044233336994633066771783770678948945246151560646576054536289595514640632703267041521462871446115259660259097669737244319369616371504656226681731914467224004300791746197076373241296262387020737024951295192918768121167299293075730288316962707965992349536668704091139840026978652178570843663616124342571584112327173660886996251598625362995432960305004170745639491515750097639068600762789882334957135665591280851103602643223128153792882202543742714496341475434917967673793849544916659303941387097748710932219065615357471040445163730642396975836598744367473943535853356989072899985184446319233044069885548390187452401773253724182134001311333958001065096818201886193648105125417416563586949459822526367078697501972077739584219703268072743800211309683822001231744608638100741949569644940159247397943805743061482281698471598304377112792880095188216201164815637287860531718898517496797465053286034202281878399343686870984122991190283880230866295241015313163632626868525776109790016662553669477729194442430707995371775127649243393930471342095703091049789732665469503519196827407468870907800617498636774468648132580591730680730891286789768773444362952719418441384859565016220224741263338384311535237288832089402691226239983245256234998180771217897200435301939717293895970647457319169869536300931913398839752284117600126133342755785427907805765283332764846055106517153614335735493862402558409404382938484843330920927525798137355631746327959648776338121066555323296319578539246317990445141992168599424897115680311151781491350404353325903276245843889672922187009436954593189054666709107477145320632272489395979965040163927894920841938290291836344628850555253621437249357996802382792627349703710003774324852184526305070936472032117530109458395486840347003924781421852103563885575754055833804422407235175561688255020992477688130942054767366188038251578029983191210781547679938729130256581173043852408122645438022320174495911709843129660926635379085622515640492079126124767033934838647934361562948591122076554535900321431166989482245172815565922132862337286256594219252813007895114133937687422281248132305082908826203121850174475834228023829618354409745449122306282119874146606919082035460168658155609376790425454112211508870677117597593542761970565039561965498009357149549136671115110335055159468969234570073865385526330117787432731468406787245186414852168735908830959535599421975597103729439981623380960302364842253486661853867439835043319666791442573441300232950871518219064087946733378660151483364537518494302308103881606141545648049202599918507976182299207397681528993009853864155401696013112671229116292776469230245726420347013298101993306961754575041630970315995987878544588218631035267964551872701795132865927823321394704426459448473296342877257946374679646305884774987378541541603395363404310743379458831530409749607720072258361319574925422732506219684393340513848249309127661144128505721027440476331724643589113841311541303142120778351861222625233520649762118322200349531988798209570154175134842501917262965091786042320551692876369636549863801948741227522179430540428251456020000901095222080908810503701556468761122455690959510221378211039852473841773893818948757899645796975659017342975878036612607393375341628864936775463413421804634849956191186300439299866683239567223795172034310354917054554585733879524781502994604132952597966904293868978272489373690709390689995006738465548492318848763168186164617463716667963882335609056509564978578509090253711496806360258974889715513352702801854253095375776824474569157112044914586554058190253462264833412480182315345519172818393299237245252562897653012790891825384093490559471459827394281153609110639628251706368125278713123265135367226993077484519348043230985047708094824082921165352918450488776959821065340744949736941307606530747650254279624884559250105540630896437652189759616107605344854067225289297105066189480768894770294277374060997985615833262182696836604274381659978194863322640812167699896773217699883678268023527108910498206182440816776216206273729080641893890461226423379931681616170688854800634348035593624717530456582361463626178147278750474108367044094677541980100020615837057646984814926035217184474200139312617449411162646978624342357147705526369198845443128827162938261748078855843898102551296338222903148102139113694011624315757267820367228255037729913062071384077101267963005263834092139954990030404983189977245763178609774613816778380662580334096225247738383994569394171211409177413357266713161953165200738192664597045681680683295414225841070669214716500798057748876052022983382909538484126816308084665860698064644879615602971318401292092297856175807098799942708862540939202759760715158431377594155391418858287932469193950376800380644230841471297327091871597719792593574859103771787649226852125124490146056363196450604482118656904791018318626486373687710739957237466109979932953141979054873164682427032059311166483691901528456781492446603804474090089953511932083717519207028372573645798853806467036397332273509100282580533419579394495643775313871180255562716333783471954929642482830569366499105828298444706964072854719203760341460013233429549784506754466043660964711579899997146385690063411118421876180497951866284547438101215556855829104711369421117842210200621816587363575835575923861501370062906279634130109776843386013568877429862388668823049817270642621095822309056229559163584439854848206230694911325151106526541574021286141261232206009484956865839025558643491055753301508775220103960987531855129975162915132006238242012166797117477120982266728282976377560755172285733534031191205382020939350680888964877422454606068042782100633509150410845086990796359498125865704032815240562349999446193486231834614357064716214358593494833519672195077076189219365544985780108859486234623657348579220261220862820841540059299034079058689956246184048240292108570232643534432705563410357855608464857124237031494613332063801314929974991327902540231822946907419939740850996028874990169498301961891051513002609383524267888082100721060240502125018245782631966678394526455928179670812997263416146024580811848812533597712449875980537664743825200055422620724747761705778215573225063398017081764835735805757258739405999440241796504915043139091260922184908937458367540154816782912946168182132583565441639342697907550573783734950272837625216444063309794919404759371983347405497184682489774135096863858124485946047791199456756348134436246155440140234328438480639830405261164299142720943840140366643486583916474103541726610689302774493504146369792955883819799937771651725223488394964078682326113961105055877655057818155651098103162549471913769270498124938037390603043481342742197795472337184617959150678401741261936039791984273558303029741015230595469485291279038510387514965716155872060053608914975558310616624250163782843283634250779823075239375466220035938990588501453844866048847876485541986503398637441383603821246216053301581145032921752969740619627548481321389766846593808353002740081577054040868277007752780751658720814890832356709769568487167092946024195411167928088463310900380471303059649086091419878173890845272963439555561066651868323352335818259262216451087390423003337090458772361810565825982526552620887675625213725965288196400006389484037703206807177238826317638325445507093002752013634621615289811749465800989074781811008586789316791474078857729625802606446368651667642015373356461807083350901255823958791733998542249840797589120706471624656070913158800021655486507379061989636236775653495452961293556570712916144745721104874217649579738410853423700372687014504618478272770371647568708313448882138234646148299935984221051660973459181170255234828595388603235862692930300302338835172002138663939316023665012101219109958427396259200496047821309343187554278935584693856948325329440592141087771178692744133645756908372204287533708050517882643238570303699868173741763221884681555171100726939027795431467876084794413702417034248237951773382222768543862005264559341972915832909436679508557322816376702770633584567343610721334428272492546082938193499263032782736641560163719393988125627001788865591008402680157974308560775163254930160156056658805819455281595828089898531740721730524913114398210357632759178803092103009087284772452874065393968516923192481337583814284185469628533925368830127652660466380615884412295432257044347741885274899765835008786660086710003798707967153531266129310686053322037898985548604116120222608019839764876305667018615256762578412862863606065107290564881930932290111359279070822584221525968394189542453958908405682586769215741904544155501123402079365486828161926179109745457879499687032692790279000024100662101503589693562397894525767352795585382744153400235383615193117882000001271198839277409622683572847409918954036487186232596930363454293756007017392089591039621525312920052479618534728843362669759789155251212404700338103804904260832160879026932348377763196697160356702184110585956892077083768917314275381363354319658705851556627074721761920743802279499392228858241565668006297637297646038009363569187165025846508663286598765966245837674664839578842723877166704231698623550747730627077023448502560082527085097300833922706390827364845938055714185575301840256535780189013400596998345971767527943608165254556490590044220463798527993459983664783994751206021121675378270421767143185579997808750400060004371966664275686269613153529129868612950784453880309198652031900549770202271372731817383407189302117160829656664402055808602689007628875660531191846236551980273433935298732544995433534914953932963315489978278234310485530793533637160594245227939444913413220554321642965369466871928599258212483423053165024703608715949229078670970168655933533405687027406868468125425987593935425628780248314363462009092119444612544621137592009300262692334668023806680907691507263438717100734084772380569872518796124756539813825177492780129240567605697003067456778056203666015241856703544298602234930484308588176900747302845216380445253234004085417734541770827759658762366302068977460774590694784013477835401964246515115056640773486605085369443104652089882335718362765769151633090338080270657234408260316770470183960425920210810656830885975130492611559263431060781472257659148210238135709706957488404411565804683768645272374957504359853769242138111183880268434892810033890659940358132106276737478642638174041696625211740825381103300298143246360760052110370965240622917742864878757546995826931611598207355371552862777451884949785875046328664644657038300083299384031118638302745754489016783664027303389847233638377711211066246058815416336713468388281173399592117092195406393519060640960532522286695984434517541488711088254562029442065210056242537605553914540418275153772977597213363404839033364145193214337511354281077296852543494064160275504017390139409275727600918105524994682835283751048866392263608262288970870366665735542457094070350961764852390514762823920270251427517411953012482876927802678034631349746903220829869387555893357020600040098473205748279932125312513352819242270940675269735535516301707472484761154706519238510469326246482987822237813294506706001669307827443574223182862988429141964162690460694630449839240400813660916385883134111631301706484312895270724231561323247987366152632144249168642448132560327042128751961222401220810558998070236132154096351482415044153542300215782653286979362670681807160589896490489571522474224320873900224077199971978946217824689860635005235361884465842402289625540852056715012428290315469229972334180129308474740858423367020236682389550638548410678190966544654793460180489131434924005239310554140027152876300907826432611529498256974730982606431751137693900586434309674098105893111115445348109560911924749755179999783560192844223167511073844356408138400621156801676834745231432365242155540155860265285795275918131045170577921312817900819710537203226024571484729649238281638115413242176845628314470719614229644443604339381846036281893581742714443745069997207578346315372331488845180641734276098027010677208166767689438751694712202628520001665712402388627779128709524935358105736060758664735606850869920816441787815311880074574514740428212706003232036801156517545978135526708202620554089582305767209423398545357154654039323120724623443856407794834777239225677445962654060457846013648911933327367149195469577417471557392358700313480351248627044366647526729955176773918771985834820123645232721689103480376169525375971037088568386796889377742835630513059197763814892476955050347752149889857740987479748468149305821552918394489595500746325297135884950864114027136524326630709858395654459144174413435894489440656178186475272148596596809197514385767427159260322795281696156149992387959020591767067164884468354395364044518672657238455275099587931540342552735224432370653726404114659896915561842646437234671820543297209733163623742780882415987468104083742993673427801284292743539551969262925057567257194263684672132268794041222458223240575391641105505717045851359188387686427157676274998650281367749867671469877839974420354436233795655775070794535509721386001967356775208045762191073307311897612840301634258758040958627930387577209402683274259602441674647031910051978260610222299210796723626056297166875197669158917757400343685443588552358757846342796711472161589985815345697250391316864201478942410006534173936555870059803873179431175155222158925928311249562446968672148902129129744632455598065964162795346009646095805702977080480664228748771804480284711116455505814324011573801212658916082800745525690277091552243225605189043901003082078832050210563470545704109243812808872094226367955211299077780563251644152713079026254580300574510101407574159621448995989479507560802663214685412367738171434745473428973096538980071232839088675825685539231674992911157711201135702057665626545389956174855805381724390902499059054705600540726257001079403163222644182379659476063077177972679548998767144779889035586720081480296319005163156385534342844100238265937151370248442983961471335585816016781484501276534291835280146371835981289594869869843384099663583169397175381045483843458527974565726173738106484013155282819788708513272765983709511944606146212060323670501865182369285634571066975996017620999100672802228725203180261622491001696070868506307184081528989244083109297891808193373996906575173823367190859367282221027197888885139156263102519071722123309456190329904887867967953854062169475522872376535728539648993408733599094421687706453481121155915771191441196660007931820445433119744314331282287800441116264895437032492101779285551347458089504900965890349776008381945597021783569819552154521955408562054019700328443056122378848422805382427892614001815138412534079227983451248716922414133305109518447781522538212058123232077812236665771472136728036321146739044337363212745541189955339607959732457675261386818078970312820054819843167816447548814497382846585045103547914202047285415131523914979575400764281058341543418712290157189260923354714242320854486313613438396363491372777908104403161443848155145467500884659722438519626471678625049857899636274288848293445520774287010027919389100725784125488882091381698470274600176044545868784168928969827619298950896441858629240176128626159140487535608049920123866864883644346161645927650992116447681658703356064353274369402225733657813611564508488599608610996442622498037253399996262212797116175507159652987178470667735130408929477288354351986213292358467126382779399014640155383742731831966241290556017994632792281239478484868144952424099005666513686294877675085137416124654514082309833343936836262176035928678037034037511657269431313363691090565622702320506890605606298790218172424804402191965484292059091125457293143767981562776619448231341224962855981995084040251598671143096316557063521881446053296474272869137034390068256368045389689526147038651823826951080125989532471867048154976566016065591129443586777439242736346275834859962452550165347063164345539007566960399197772965084933497756090954994593813926270807994286790394182146229148873535056292740922527728568257232513350675761083930790702585153530116010231433879032057323144936136237708981902375100794263633272835800341054769677564301480784222849133723427916540961300557713825748548874174047662134892120835780583551856330595316722964988984753029475603995951249964286392141079624596395777990150354597769653278360942362583636747345189037917300545737439900011961738334506460756976983557738924782244452039063394537789198356210767472763867183781655278977814783100447087157715118781606184372050225063653578458940672464583248827983458564936743537826954412827996679094114704458889672265738210062754332333489865312193243762159863305188924121419015026326313021034271039484995816464205630134500826804927158329336306501264322218108021913886555781276469108043039071673879148609418864302282647221327278662224279681158143870382429220082469461769502215506148999717134501153962251084850614551513931563499539638773251154113509774779151505236549538332744238990192036759522104647269987991860488529765077507212674847992559803775340205113902399554244177500740517746115443165008529270620664559694764824133570795720760466541460332598513085591478413775791451163264965587337010698242717139014866947040111202841869871774156391478171864238544569120266697627488664214901806820854255429004798136938907920751674393395079063184752311299219546811673015945244504226113299402862697872421869485438365928758447401336992030604957596029604798473348749774542118776172098623885344642108042385266714899076494771593362965316139793346344263840999264408223910756791678138732235117281096090346050117333380518264889175364474847642692531866636439597381097336782228685362907064384781558803297366495168641221912565155492541178586031845195805419144580343565680374278896020745543511576636960775539272753266079428148190609370262115656276261140590357763160735401626804150953031154243024785985947787605819591784251134428304740922267806046716226316865804779826597812178058639237886681400080444897551614982286514317697849765459614674157313216239120738164407054101319391351557247573188025504618514383499643430216245973773309643111597842449655419821151066120374379123723417258671760677601748022488451993591453473509993937810120920512349814748645013100836504839156080572742953067450928800380306332776085359378247673074580411379317828251101436700425877459199799635461350866006237732871830983629364201415021290252920268282895939784908958729749646075257955764908551967064763646650153140257689847232552944453708690707558511455938318989519177134524081041645378707617096715813737822255636393111268160705692833069730567371716418603258737424044508009259038238709682935590122811085800804001104489044665833848468045314707616483864300347783110784163823391095303914703973717554326356619854613864665345726855944193381931150952745279542781528605460845724445608959482997303303749391185895291230883430524975081291850747472291494637241983705789244035461789970785602207469142236213199436616136765398000203287473520431934846304453397374628168848045642820277464376555576029077396038944059543480528867653054091131857221153107016137097349508743141010979267773406898620151315954338694847195684276125726927533724497658263383153025688804642056280031797509260143779440061050207097079427914642918842885661908881802418227966984053702882781673184526219076924240732667280332890016269445939838733111969453239373532329336357518325184958031090643576916981848593991558253037070679467667800953753494040195896374306505752642130957465086798032682897787202756075737147256176331542845037054319813798846825003384637038022886957892016736582830621529627669205132432446117445158207973077753377780379390083331627674792704184017552835203914064613452180880615923118450379180998860232763104989415416523293759965026816444108830562319458071886659663934781098372970942158811672379053702678049593111346819408796200501093334113015819080278795604355144022227554744061213818972272615260907403752553980212915497791439704621672154609070696293954304950512368516475863745453595498877142140096855167131928362317350536146105817095295718034943887638356660954810485930411966041796502196528500057341182158360633375786721153381888572121628593441057409519301585974275392847224161831030826931526576751922453351579438725138935014829071915960769509201273941948641125493492491308110336177004413507539728857901617605289475247814991878190553695257951633157915615271193266568841977747079752128284953160584266746125327590754462553732578839623176837786010039704260324982832329475565083786424901384421753587598231822959633240083244096990139979766043022976573746338362477790795624906033940759841386725266665794602041090824842155370083200866088645869282831996096517878572022991949316004363871212228500563064105656677064417830124472571031857500589133425900727973936812022578127820468753506409181092914338178902046838637624158509245572318189050117087888476294518413076669072179972810468998433111246599496451350645331408597081056481535648496082752892776842057889931427998132990642686611940261356645066215946824626061270673035832214374626434797010406293123083040157122646154248132351688453488369341200807515840817098083215057827892553959579690685618941770511377208806005428818683149243982842044071067125664614457671880365854024490557254169846636203482467798132315219105160404064037907142143815021697027429609040404878605715379778579093745397030284465227478397245852651900142136820148596133518111499737249982507228749637474709494639453475892278583016350306875954447228100563158242703952966028743089437329201584901826870583566138186660202348495232729486957478397563326990944487684081493665776666822725399638398051105734431768357024413511493090792567176776309528034323362472569199676561917664400500009497959747700784323406806999790525363369059639950901384438673472404075999783057124635629720499402193968929686557813562894588398912005661642414928230490592946410906126883104695720860385209068618426918197742140037913356195913134886961418060777319804696053670031914705220154812528891916278179563407356928407717711687514370997255398198896744553562400386636716202280100075731390452924876159468853263584149978426477405978054641145192982080743613012898182208212075294849117815157086588140547551679870361285637741634124814260894121720246168052091204534094108175578283715172176705203062576199811551391680890237403874226001103637970977355729059253118751144693903877559426786481490054723323541840646488825196358349375383395090162956649818038475768035950886178360753814146529370087454846072476695772182826702682641849115777935291285683986459574411349230815313361676944117192840128059318497163622932418770950076932215313486926542712857886140970048282762784969696425611680629094410856274008242213920303496351694676450196728620157763040504857539949875551049277922915907024044353457411402873386924491915687806902287639765306808342289631991705592369305607110727495050794754120390947483629823755520827245346596790169867627851464309785253973621133476996105781015481525151893581856709837403813078707337485635330089456780141349972227682881784778934926880167394073512383497183830524564251488476691350099357012669121976374860385002956682797613443192139753627100579419536233582803612093400260810255739411216507046183300458822773229865707785784311356804484563405420748497424417070732529853042435962763734991690949870981771249292835034104115408434928762349996062071880137679033479363772204970963039045822171588391483164624308513984292778800726515570420418564442775697713093320553403025445374158009403048945177659177865408539200973324282788092705724314013556142261736512441284023551308606996379539325439811773333345016018222240308518546078423291295340467829078868254392563814278429858054983040201492078430946732868447103364952902454876745498324887266873849846150928214211061631422463677161683754280299432213730064089369786647571367249536388441158607653411854065241908410582083398043491954817830279525283152414744766717726337165536874899159836675833975318748185509769003361333816695185709255385203693416597228900397934148502248462382388411373343751524781433977189498075001621072808557637767396350860266495298336016653893204070673138758621134854985501299425398576338355603266982596960229117835317878094930896021851944720903770747420926850236300562623159352776084248969014037441980127761235820884684476298768870135494777359319732820734543363694975135102230833519019127027600355722407896270980813675744405385521717493629797862663859550174251531871865985278461784840271895841749300694908571978214832817054223441341291162379927941317732088422907274545924414722720055174251319048115195870836273392407554513266233313902114133678089610990351203636224451106385501640024249596111654523492610345570471828111324484081427556402906129664656607332857508798966087903513615407751219199284736745120038988253221849445917678798249224023800677500669143162161130820065383565379952949251034976901648319853494695799961893889550667477482835874154334915748751694947412310522882382859978187865400032880129930080606741420007921166196347102549105677082091366167866805438026083819461244256366695635974395587052199031176306553498932586451799382200047135212957294059632073145949874073528730575987867356291528431652644176398662751280013900218299465433874673514630943201807510948306923712568543828741767210670473430189195730314407709515975383183382685624301243436334958771966283121173253458375234300644315325929258324839250866269988592906562836246289755882126216494429052427888823179531823613189991008613989357116089294882754948977849333986324863153415040695086622917356109554530758762192384024587001085746627307714333718004477055798543376671009206704649769176174870813304101153974656789428186890850799415408657389314429868781839246237192280905495801190596216931774433354491404222714757505915203441263770696000972567251054128761802572687610304976869698610037552569572936232141752339542346557174799205797452380661220434106661446259698822970413149657423527122663680564112689207907823871590307567081621805905277151596976092328384560891152215412616496927459433451519793708475523650091309068721057411038110020033539060353142345151927402791927744820881959442735047972257053803186453983572959418177597839480492713108256879709040607687674885975500835176432432094092909565444147621385535717398370658452444840660722998860428965384413175996535485242238762240140268289178632944314356917663199467196530403431189460920833427546429944079036253641600480652905360551114787791317538139175756564759359309284024342714309908624295849605509784080116621367133957712392983444424752624742119015801621516971885509462272867744363952982356007234353684859415978099517457107966021485037985581082472607718361295048769532678521831943621973655222162041588834296632040055460103857644125297146488750816901010799817660445652033389131329226003202363513193484795667192182258100375090981132733479984168716761445151813626962226641771695735982458181027503478679375532968577440097733408411083647537155346157211312567651108129670644908614676764828080022992769286131468476995112569171719666334311779975330915520606306599021856739892115486879805172248186851771325990071250346146872963007566840554565432659966784319275846622143531572978606575537163153822640295278339494898624254925642524255693528748484522148111534738767826274192469466196286410157899641852074846570002119203997082539552877533844869952692671454404672231564398550230795469378850459319342797361630655253981942748755810922194399471146389105532680805337295293576021678776233592620526301591537784755491165175884350884132142811074661016100020401615519906074069443782953050582290601507382478955318001779058799963674443213503764684585426689616092810069070285270021102825504163794380455260990234258191769902914397197800507449626161724368150155507602974392998844583173062638814610757608094024587809919124574434848037452461538875598381186127667967915930547470331284409386816087422291208493296981199678324117454717545691227768343320792248367126295325031138794852100216279299346041873277380590897609482199046778030691340395779888474554424295825095827919914092161585069608143663385292099930813406643973612497309596986772515243018077153017210934066922879940630072116989053651729943098158176612522593582586674636211546429460402745896234379668956953150048097587537397187591853893497736779177288082667597390367848081097409943906277488187572027421581744080601818518086391449032392547241986725820629424123048875597710936537180633227143466673630336289777468688173202168230033353544317994135503326070509134788673117534814610998100401538117952574326496043728664303442393612675489393134625471024804333579644843701998215848702352207611029335517847814916145194270579328802851825336218870063667414345570510729509583972160424906777806330311124333289568416513162458496246392941801089849184741819248451456518834113943949492189551571297406235205871767659169521351821041504146725390143992785912932597716477835406211453007654116115275947901498450127148330900171311157690742056640697245125185003625694812167249817729306585177338354507934699472128764452128933715294939566339071554185317811384365701707546494852687036674268804271107521140367689588864260640012812948683668751534384296581785483817057200147087006975781431331779965887078813917540934732872255656623753164186112132827738841065124570473742718671555974234574838427334917739862063932461756300652434883203611360014228388021647734523028609971249507746732866327114702350622716004362034353879244763629934954050876291956269567564301570038975388682050203122204328233045524866713893190116451453215042975072351527516718640734853265312388604127236065600878791759439414158728206767012379202370851211818917192266026449683929823376388161150566377496641618561246396711468168168444594759891312968332365819427359247079148542369213374390031400389779742507022547111347184069334539885563112962387219071464898195783156517954389576657279775033524158753219130448039677699544795848685722470377757186300798071548710938791202517777455210021934983811418857036340184032547143673964562488748084526920376833977240128511608702059629764871056628339728732230303488440661298851323438552696996922749053610001624143472437574040669708746927662478075630125503561914843221521007548766020563204761874722063260356042574586331621170025113716497426548338639860726953504430167086169588791293463837914008441124668540992280299605499970439822313792976029411164996790152322434933225405533571632331039829738667157247386999084952578651140287019633056923765313208069984027771806306607310994131727717381142899794862730666355731082172487206161873228659221873201900227042910577683255306125798673554768528187587330310393643488360853334886979171605837448229016070557199275023998463341871427488782115062637550904427128220447228568130228378871484711684813801311127456025852722677811237241244987961944064197840931337714166513110200409625494575690477793222537135008943973046207819561604854552152595842145974059810720309171048435437734918896084021233392543807043060709442160811524469057314651911143938880234431311876423852835442490153542620460001274963154622181238354770457849158742309932989840140833024952868953569557269683634464124669599932605860380100310397237502212769201196673876473172307601822530412201029451117488008274980927060904269493378001580766635317429251612231845909338684646896649958053982488740975213413148078749274903145693500625792472627266191823657502729343484680287338511564599097454895706873336119719608796507550809533377932942786780237121569666344884408644255789428474155221818199818575281909408916895847047892916074066117302461150930910003944987772779986958434370348778333843899212398011656378322274679411848332404721801029842661815406819961593445013817314427194167882912980978090929949187301230316888191404000298605055638018095010751651719373772160889818595349524925801586143492025817590494600197765423710454462096043504431432033433886918091279140984952266324574428887728631344515967631527306386388988886449156331545354349220515206807616237089165460773354405333396227029156044528462269047017583870227198891596177938708572563644577018003045592060685798797163046102555559985870084373641006500150616610598675621024179057069568097887041644087784697343394112969937666869585726424955156392287412162523787605416014062391781175119639609951984407622479480351769402779757758091855104137933611897456534331786274451703466278666329546292048478845952205895169748912324162699818739536439213967551975103006034413385147740923222466988630572832294213550545505528764221293664815070085370452894202776785883445961553283815250881088545852895571062259584090536206974984306534325038036516759082506090197742503903887314602791495485094027623582929272281487054717748025695671977054258272233615099987939467110112409734109675369212591422540455600839901865736405849383944039535388945426347430424910400076965088639703176254785077288827218606040381679874773410261797970040010304009490471573302045470616810756887966515942779989936414805656355436869483122454653130417475009713102697355838545954181098405419593689720736546357136422697418535723147449338067575478849764556570079450797106440677447403998431926789917526111564297797147290162500824413071223410519266245049987818214674268458795862305459818076586338477598935772642717585857268914595843083077733588479118804441089203734692700368610722648132968732046675379024421126333006238714701778538614032175258426521552668908240033423947653524816277354421846107927577079950859105594934195536966498424702381052775951392981788853193996288389850514831996543594981862669796788968804543988050987058492256206072729671044608741095968505172808958472968621449546526872598936447133429650430106872693019316033409473726341162816135784652532990269391781985189417143186988454304890566996369857865484949595681322657323883568802536966148881453644827960367465962541412303489143252108682885239397962806947937375501066559921481349302448839200611967970144421977534992727299329557808470539186531881592490201068298375405692563360149436568055549868798998178937295554536251740151078515520756399102334567893569011276892424428333388690686255186220131050960206599204855240939675834429736589367613511775964440524904623564732977889845508843734273908340238442869935645646808751737042183405210068038773630833732308292215180366997267422790801993448698485105172647630894027731201104344415318898988620217276809540213693209186268108562922884900624258303979228731873242978938618552659917923868100929999280215843378259487722024079332475179193534934789828640043966501087677548797147919044916883657657129286426038600117186797353910114300016109360681215671667910633253155994076883063802407326151141796426253670452945529941020447941695633347560031896158332298912140416894406041067787119523741406429110521155277594991078026026357995635687721594319588934566517138918040055789957247320467614921902558633792098450320586566869169715690269914498380378698247605538991695426702248284404779865591504809320147485910164124698139676488576791646448551830554306452071615936048035460128141768312504347622229276505333307715018766486103552067998783311206499026487620412749953446059865695901811281905079069620024191239779192506275411194536964252566215452941380083231360895918670130338924560350763296521525792388781361408006946896903347349780907886195316216434953435683792583317943365666494197933838463380878430746780668833295179659283874523626404324757616141065893365927132488691505606948527731672984154098169143224754285225480183244343406152649676265975375490611581177648566945764308078827702189832535504139153292170002491957357294667030079418993026093511165844117200081668398553656267374971368549658940775067098969548921726071841221720996062757074161955673878669308567474184602089797365206624814563122892819040315197779185304798305282708486826338729506598425283163338013546475933646047900742164071511053351935265827761948689109486563208897118358519625007011473607430687423014831901236477714224013888151068357805304069706099935765694929327765279836063452998818185418672009751090738075687939236096037461481559585255015434387126386406348478756491955820179097765446977949250345216184414808168799774565488151958470262432702207694473712634696434107534120880733324306438622669943892877233313309001142068115671635792536289097978701941221305672805214397213641981484163099780005166187426321789279892962450815125920689005321692388346487615279931250031492411173886325059610811594492747304153710818884078473067896935348122996128313655450127455870505519865777356542017660532846246040853724183876269159534158071601683501340953255751001971585267494028367362651516681519708984566488502702891819280623784055600795774421784044371585860146859104794348498341060075154429772280290982974799613118149000772505174897512761751181402428248387257965453416521018351579397880135111310407508456006139073776741082545770146334885653400452534095316616535370020806956166760905933015156561581244886987658483222873095074680663176301466446200391702092230003599778364260391846431683486693217697788883098064217347540775627339623586516847340047668282475619344360476787395155838845148214276036833296880914577185540197883959138515160548855596151710003336113590924171212581566132334067819550394259241352302418536326622694752906912011674372686855976068749545485550731857409322126788325611570334541658715109494565303245070854455511265129302433419421078475399031801025242790570469507329419393954188780212747703213408378677598000602893891501060740199438332064163502447493258970103574043898166679431309519746182527312229885084456623895662372431862343121220459268853796700120162666235716650185877234627063888338869702890419428920045427153219132668749936712799628116424558135541060992294000113006142726677697089693981289117698339938458967666708729224090427887832352836052072322572454616832553598625628881582447921501967861901953826139623520230159940982909161371944969893365807923640695808181990888048995286857401484442543589367167699928882056975748780858031565977463886842490819551190752095886443202382186161531865860466961389526206169128399876520499062326961843605926897886200308390922743795152965226089617397345881189939745193641435454086702234242330216347832792356672332543098747492345617804975552010645724903678164361739800576603508100773450651661170834401288074137637576789969526510125333321260292602463591367491631652115417041890867343628136908492173633198109282497389176039316805362663627539218053608470585534890689035465452480750941069877080216451024548606678853745047288735089441782152137333342576225961681762254089060977934043534599985380616102115287693275476080967971915124553566475468047631480904635045351625498654055776470575729230100359843302299544614809290742265707196967107322397047123445995460993496400492277259136417384477998330190381278264746901420136612706256520213023367896526632227373444616315140361518554971861062668650525735621511782727723262967966299038208803775971753681961626837100566626678819624886270604013252154105647911950977588850977276301974976613091247795507793518235342847425283002091793022284289387673670599255902014681594644370240925510278703477799087148693740449396455448509676229324457069800562514517664157611812784047659734711750653680992816118936280551277934238005782321182859736883439552075444231414288281544246217204771897244906153941974711174448680444950895684842861357280986301407819861485225473484473075651976275375556127343007195568714881205195916443772604477169399659910542858555867863208960694094021895000086461984351216136479034565769593105629914962458368589239470410050453003534904933475274145204873629296785822288705965830874190566160528025304991402206259343931278074673385074555015077256370140128211079056832649162394335453863879662484106669026132367048695731544919116544674587346973321284208771213292136733779717911860239510792387736477423233483993920475219443361625789712227333629770957569831957809267478957166475246123860583714732470946452434751133819293401084128914006231668488258966056267649758061661455137016525238521202057208912561089530635729580777808591157992624757828710646796638254015481524788968666948011082689789847596019834382046267119180097738838465365311072824681989929617261627037377099910900798602077238175482389447971098272275730842413936963822086472683588036483157000929225092368239136116022451192960183519561104853637864782427605996924452442365252651258429085873314737375589810513280009975427345693399639502627595591614251721584094776153366729514821072348518678449702509454598861924810904658316494015260851594489991774211212268356670971309203900055127260688215384800615083696868673400238921330554177753574512740205087037077515210566902326891756285218434169441321435406101256962023091736197776308002242315208440898751170135000684179554214431452025649029291356023331365584113021584101331743451483544690284860896561216236814999043271280687337267404662345579744664275776450578987758745670725872051648301046118529655542144567051287827804310380739276152724039463407802890309740090894718319068274282904809488017134361084207619327806847870902324709921237399640781085880270817459377493167352418605843160070076927598590782744066932111790985143719667334221498472895147548176163556033597530758706826947765241377867721336959960042710663655942117215167845747793969195293118093323746698646974297693796904696627567544905510367944822141888093998905832848692068975886633043266977030826451854814197647239703956946790741704001796626150804532396791188925084649976810557888608589343857210523954246767205874779391078818645269121756024743260960139474852908827865951338175374524956309457240104351572050860451089810848227887694868327777653823367544242588401781726295081253989871750055622449627327017966888901393283759690043248441958430068006857476262876971760403436346111940990071123568172048967866642881561389620992990621159723803582082919804333774230298344511388941318387421686358160631730474289843445197480612385539593331702756549255347945999088711041460452087143350968281897988337820168457218444524483592671594584092269672116916148028249721251048157195922498313157833566402606498094419257655056379712880147154073934234725256093866324731613704860491094627051649553778652283524869157541243098054392250455208090274993458042137077633865113720044243520905752125740332633981111414275309341211075095806409203200816181471763999765702889041763631392272613701885266688490610319178900437910618604315487218692119994773513339173429962578460441592861348399195340526070038717550308161067983006520127373416741061730223265047088080804885806288422539842360784279732682372512541274093973747982086361571678453937852382850454708478818258362422674106476218387848150806993518598587153805592812975993611183950358280831957426059913933181905655022734796460711567377036941978673571319702463354237508796549963374605099429468179981074249153070065250116725808852725314489088283199469496138043071720783765742435744023967799682757111521140380206389161151917423095093932233522682168006142057264794142777225725627214779968470600999779901056841449955256345987494646513530695804136693702493207061373461571150093714219279233032930719653142934956840908762149969288051894863140127653823784008214223478525689124116149249319759535754337235265803717495087214080363018579810505337343190595291506086636189359562603862607185791112636362926041357453495627578989620761162371918063354251758675486750819524021720611804459383117277599580568575653782295340742322493031789804263149192780852100698683833377171194729129642859535845921862434960295329150816431410692995868972434853690500614766404719833057572381647173054779453283092112627791519872014392717624686349977986522222695907774138143266968601200392006446424688389788102307463005144056672314061563795506448803657370335542726381344185218131741111705398059304303170626665116801944134402010289816977933838631342906382679195474211084404761828383937846174011826451378859118094076965007221194909019003295148975374646688346435286620530748375006894104235282779771295545521062199864451840471187962182744071283163891848280402364417361461264236448889449871263845396946314040253001168012737996856777510453525864540585476930524034927317114330189446155511948505962015331598332544631682597905628715268750577452299832928388307818191699785889088935091964250753604650619064022653102869120072980565512056927814220478164470903111350905495267386529618352224010375992450756208394973870645270268968235597345856383230573670197449300295948305079246479445090205970903782539399191552895408467209700742053449854024575221227435234844274366663223910296395757953695292573989055258774041716043033240828166567464314360305177708685487727776805556661032534593231802671766914100182215008814172714643176384434404015837097525690385726622811100059278391684733500985211742099039072263955182932476687904669793976425911601454767171826626891552860057690510760031558655815675095116040494049730104723839960465790523846580412569355086291780402547299150596716560252053835341503767786476385819529341235128147263205944096309225360302775539227177388771401016445564848642658525483903481069687283241207155633220043608463232439866754562773751532711473742819427292234522777896480370388416842056404375494897837228082029194673109104830628976905136649224244817322350971550219353610109659867767563836494657129817941708152796794092250120795760294753269301459796372889262302744098880304149036373376809594635938342658720554213482532839813668903991507576065973917964822169401888032877057994880228450514530534059408822521619899354482509824514507856454481557420309568925651618091214091763095950428858619241483153553061145967087165675636663609709927261116736845727312962345002114042973613637550470252952614650344231450485444302847870751151219171303168079963608314173623118354334548044423628908635982070963395259446873283131823448135862965416054255403247199055451278635310307857398680271740087070882654819871523648984317916414708482576694215447031980348221995074309512299930514331703457505411980633623384572341344560245091891047962363908863846378634815565486276139263951506439305773185148915918590184417816625952194372243425775443481919074133379754767847621607475659496715402979339539782820960895885077894296428804936025093628061795172928048292363960058204021342071120974221247185872630212350966785990556473629771339344361909029014921734890708861066444387408996933189474282035259631308697561056451843628553035994130335783561740749388190358186637503312028789463798653124319853083872264418155504991547626784307340061175810955618177147150071798649901055682281456122546192649670254873595961947919378066593262333567991407018382179684746962339108323754869595793004197170201490915883841016018822425496847565883265742303407191904107987188555329207758113543764020629752379682331168371478686423948759419300726044350261308828964966001996893138942644778077971084567227668743815042521365778893634108901655791068591575935398398998473063738883099791247688384793082960121573999786779813872777820322421829499858623029354878864352762523831943596989620795455367030288941801786087113900512139330101542690874638811310322325876631693695362827469936838183908843886730186006458123287850171916710230080149421542920023097050577910493542098020584029746489534423930098999098116444092937620309403881392599212293225197209254596370100786045560552741501245384774534677128290101451913111744488720300698197987999509159482682478554840221624229227300993820419667867784593322863086230673535917244456146939343145702766763411370967095296981542993134245214916817020311951731102110495973938408524005403739559944743585544375465423676373729481321890620753126881323052180013264306352491545624833688738247197220855062043746547791539068798558827131017195681355530057528669728790248517328352338090961759963639765557296050306016686710422482619609099317446741457985019659438900389556236107197360817533156197526146570780317428512454233331935787951930560434483291776611533929866960088723102958382539329735700765209155656210505847467012488220576133220224054820386680538820181185230826447938835352023892406779358829485517389560006895215205256297498866135017655288170012258086493252485405746151520230560691058611940588556066858239997181942431980603960369220680535873306838468327145578529996799141646509627557700348829313898418739358706045436835473729207697259092754214161578528605556471321245086766640397024832685342741410354708316079786157232066527927328384667959207027224658609353736114318690086202394906774870429005189144229343369624776385134497332749123801325550066041940865465417386530701346462296679706205930312367027294255033473152795850677293755292774082784568137483121889374171506375966732703154905647027239903471616288045986809067523087526271825491638848742562401286632660448311143782448544520932798565754148037123297313019298966900641268322960480782732744089965216935892687733974131310415408231495635501368815266930752325086854413890077985958331696045277837863091954183571942172913479274897981789113558850185545288810954419471347438659193256675499061282632696620959621386279689223150470737656912577532187943562578883470273282262061771426840331152972690859892651207892139716005386380371592760150742446354107705420926363299912496783901979517583797293819970041516822138623730850535046553823519426156227014652534684235430428179887033235511516216135761299186150923580691413209962407510180200557186724818003988202029760111969547087139344519881866861829820134796109447592663485798781151235506083172985640125119712586037329812292806712338738497165691287671811093138730986011564315849077726689089805023469903067581893330681836637339131837617022178720831170257794927941743146513223026792988421758690411688000067241038722888617908501592430468903603456548589617444936113278514186647655406895973293408428277351172452335183073188008202495095600981934964997817662025521799165960784115435207305128271766839882137262974740500986371980724303523296804169111251222032667341855965039991168391043335937998330140263287727295592630828824385582510725263749636208265342197793088122727438930801552938119712876241032606459439675429216876821535471976312404547388449426038518369261844491495958661449078443462017191724054491836590320954556019105026107883272807965135094375778895219935834578028107587268939660592966626286766292214740859087543147997588979931190622993106621300012705810555791101624998327921506673501360481533072535538013073371922883130227362410893344290943173397242863858099310669412222994323999853059856918481783591132596731887407979158510661153788691084832420245693583783443766536670793735324193589373015504872115475564807787075272170129308629607099658466525488052698913493233045233437348813641470571403246304726309807229636202305806452390152398727128322811030002677628996481622771772087383983592210443397696671280500571954169614133238660776738565342735900353993865751964357093277431676950232541222484631979983990610579134190368014676808568796553624578411481038482570465256422649000574652034259635136502091759848081929030858344000475600137700690838427122511559117154352672682591164749637669348564000812467926950682116809101280900148745517589393239823439614372284770745495908430696087014612221541811523107571917271910077521673933611521830679566868187854097820133744237080251059834348988119411461082018060568796743740211926103644228766555410349502684449416989816888428109586033215686022341129566998705034195352899044523255088028837280290507327508797068592466928342070033198324854100008910379115054852628170372700661876043606710454355604271493722941357769265539301859170074172580920483928805897702653233515725623995319185229679267348989020250799995158740285414462400188523988803074862251595066689286042958727327451087250102382079003102029178354356258981548413023026004199593113963325926284655427680999852999217925899143713058433347860926258910525435391038125119011879140993687500418771694486496578993620834791497361261429675214752821986240967060240678449243967543048608502786757579421794858243053499480760225607137965442571908472967463287360604926397844597764728213873391742748367658551677641391056991938746608531336729227610891820033876264731520730939022812159279975291450839189947049390725117615044524579553263665484059233558651452675663709610620660410348913873819425804552145208364345960762106147588301200673885229458767370329143630825591265403755790150105838746855386469150837314917713212795335478518557659925937769829656919909669029304198445685817804231557683210599022266508188708480661565294490307931342817461828726562551687414644518991898081182295869131294477153556653394929358211964088620122953232460861538861223523853071538824016184323337620154928016603249101557940424059815886220552132294987067857883146886582637131703261600957511314310116754804526390945580759639377749773263008443295907511659811869109571275470882097634942002522051014710342911954563852790662865123532080306005090466798334922546843253136146473942729387947564440178826504954267794781683635540934537740474305663679019645103460087328846141828200584141923033694785915694506124612173880332057127362997756663784939757652118616592996772309478769299913499853890025220455450771035592230218006256574910744844998165175437470347094847423722316447255175612486708948075900633024363198607070835092144877621918849959646632629225443118422321295228531847112988168919018034532892363516076180568848614142773489049714852989267436249659789800325142106672666412443141630931726814731069196624511118003691004619658167503578535146612732744569726253504890649417247657174592757762690240315702797519704761635820145345297354042103049164405285204831791255744280941167197957536907992865768643336812188949393991557527067889062755243364555478616820103506047177483046823282381585452287231919140095235840968422220022302408499079584592109598910801877710417677275170880161836650069332064460771208942563550630158817109665542625032405910107627336125461843615865158733334439916632719700431477407392837596745397474181033883501954838638107006260192497862205845417230295770491219849500089075816104288315069349890445438294517156623376978313484152890516703391854690340149868411332330446052209952569085929698613597042621658830754343092437480395730494954212579324282386210463506661973932548735261364951161665495486113963395374392299250328041959100584044939402828845189060692165613569326012674753181428231481571861729727440711787946005820213124232755768973590851083100140701295709337105544748710456252618239860452543438346075048535215587458289681271190184398988195673307722439464007633726673139877390839758642432068703740315533409660133912279907025402289403288942136931418354764033416237885970070118999719971708653865353306653003080904518070282206599580856516164825339294608994123233593391675166839279694184706399942904097395542546329541231409794223805321327886135096038331360182849402460996808643052860069791035761135618148313651291525230945049255676348356446907502340341597596590590176719401522182654940812194434088760311678818190471341509343352957440176104991959125707042688172976362180674930956127751171768528198907280778097510242091293693996138717958474206127787024771772050065641306935985354121908725932602719112571323672394934991753766213310939493085257191278567047843210527411964302845065610927194452319849751064865982371961775185268899912840140183181043569947757359354964671326547832709715203666463171801332056949228585357819587852323278138489116194323322181062054905932485066178613350598963466348298553843610672521091498237304804616354680199261331260263284367978613789257796185916195699621937899964744415202065586492462674776211480658779193189063367267332868671917802240712606867640080753974194658869747766503234104631678135439249548061169720981701076521158905466124350400761550692838333413311575320306231165704379828906130660541904984438310451030340335377832452357412544054716428749218146869492147539190257150253856547555405031186633484053027942781722237806615623419749068384661219240836999730922633507684883256774751316258591242781248116928882931224944620873083665982049087776071348575189832020020651316024622673952872097482084183461264187192608899115715555217680394413447447539528702170226953613782456354744644496217668768972114078118068179250452098734583212931753300387542246629719373526249574327256665235129536387565974477419196084758671484376930458924368254647852638446987629495392608696844512269534382421997232373831788792307537112708187839747421708401003551508076186078066435374478225400943796224466392305110050628095085778536107735570154203875646384009804413630351881378014633570297053567601893697974209008004765209020889592678982423713429935741435735524834285475922996771996994392745802817349223093693815476621709638460222494987473242550006227590834703757014794824818982693830130940964053994054229569135389218699930251915882541125143991016861658029874767248089813358087630438784459760934087062010685497390137225977663863635307911756598637423396177988766617416637043117514238277399616217149125393219184280495853848545139456917907175942409118943086353727342046763368935332392646827355110923317206731626210490207979245096299451078877045721159972214886424832159625746964625025374560629292258801678906658942837841839104607055798069889184237929319442880260573981259462411258345585484025106076485633135741620193322471002850431617412050710261537394542758815430799975770937537019056732454763172173372924564405853266975793442595998594316081745164368231394394728971958629345276343007236182729718713625317163102173030879229320155976551245687659482403672805758993346729089373017895273559621152446683774132429828364778865764944494106700594445993000403512108592580621078814713562005642283120925580417820169572107987717610808026932267398093128783201351196156820255621584785545359440308561577442390019301464713827053393117287803704942872501164395370611388188564493081477674186439221376545488424265246180755897129070730732009526928605121156921198071360331819169316868577498755118650481853857434471216769238651295428726971154419329727367895653948115428071405408161051515368270074215561568966016428623344933179075740471785565782897006707870400734237290310488721613870332359292101743072392068318016422847682368993684825529556738486091962907590945359212415350938530751610402287273813246513214801459669843530877848609664462407609976543009505072967808013552818888392630064926505361933949325931783959916920759590853955736462805117010475340957582837032386832166490853167307603967749711527686095423771563155051140967744861339478642326726194999324006716312169253433880823100591449418448806954677304326360375232397156305050992140931515200706936507189615457675994127027107521331527552424264879641515427701574948749399411736989812876503155938156974326833608828966070993265334152830094040441437750732467415677137689784233877124720799308599864244228540590746942870962066373391432490446844320794133857648190300083624227325364228247274404225986524819529608456342092298630049651344996026737008512254093406805749336118683167762091912917561626492113882045718262828714331497008789010961424526026319675108073464873205003937490101558292884389450437281794468588281880787360946983749018140038608707822923072794667039613649435320546082878014373833984754965013095444841652168199932043473426138244179489465999658325230649891696397002298241613402778690159353085259306402718582849840659478112540410642952417419080838238481952275618830399817485211791706264305655614544434030500061237555061668567689044228388762264736335706733794602327177759976426833212749642027873826690752446498755108824319413736971642018022141886650763310607087513831893276384607440549499539626962191709053376281370169129068001799283549544949380195383850952476722176000530587769180707697453449879764607459050174602389317475669262962459515573495259916667295196696074987354425454043155418823258802655086693984430520601212182906016356628739723652900791849704063645655077605517885897034208613982886004281388689428288251781283339468671220636733456777905738116267842675581257069254782749703245275171176265808136601239753495500432622205110341438087167678729430152596451602352749259095985441114285158489726728742022668379358431061187570478804796532904892488564961961785811138789477883985980188834428919513099587320871154722372591360073908831149951417493068870094314718472231159756438862194688112463288023021425932176276061302276586372893968020045844093152738126427785592885554470647745490313138242144462632212542430731273253287424170347645037907716732550754431733173839972003094180129475110917061601990493024924979155439249943213315746193695838153768477066698579916824793282389661270944709473494121015196287286497863244793709860167177628553031756256667338868856338975639102883075384340613561330932980147963704382776479383495063513537087813256673887209201915511170447981045757828077998920388037576443502595354589084316853698634506547182014104764792541544105222516741131705578924784482802715900716087208261475893300252339860880247989296709350035162560578835947411327166251247769821311928542986143265661804520744591635333674170404637692041491261816362185182127348403204219013336435538607160841271085193038999362589725679905828449378183372576288410062101286594429339407494659826342371740651499172235659959446352941833905756782544850352307146208308660381864058901783742849952310145435122440402584969220504193796369739672830475008482313667584462484612173805504947267073241453226952085734889283482893107760161056412970796191894051873051204042782542459986746621172829021833553192540789771206341366571194782605117090841857597415019220801774246782747176642521019332927550772528297233025204754592899780980153867057090835877730333299870821531245921198161706171214945823340243225359067114571451837117990085463359630127004132965414792039730705476440513177079440902230342447790589453267986425226633206139508898119073723562155985751953729204445092692236389811828954739552551152151336170747066592644852112994098135224437048053212542278617929671933883499028540246237835289672091077824831424535052791515737532776988853912596818465817372282833999692144557144799480001611387690276905214911172309465774445717808649094592543772401405831922335062463278405327654233597654375904945668699217042055553885452918407277805203370738659561099862879915700725668556790625031185885833548593402460521919288396204959904318890084486604103668099793621795019627010880789123578731199996576683644386681346283634045424164706203301417777635141104476431457441689403684370210550653692135763675634915482769145829434432790771818290911257387449866859121067463226855955077886257754834005921709732016786496844231099129314578801444952917137143830472739519836866563722575710833259027055606317402552976458190120328466914817992641060336283852963072422677688914041682753374833795714387891933656904262321779296218430811002120900454171570373409402403948474418593583045114999303620476488692890486155368113159615078917513337795488283643514327218239203177107898356986914393546995152488372684439078901416329636206369957471462266019043518718697435002945414284489000547024344942347718844300749648314755166339337134543938927991265854782462209840429952068081345174282250580367155252004707299515642052736668343148404890808876158656276998367774670017924045987660771555484933221811290182221741807510217256821158222999507246374876953304221159361567571384327775638224805833316693042162180236524676443975922271886906438240964650751290825687811818927512773747535965379555974592604726871516727801062690410118417588754517351355070199744888511705305322652961431685657115760469913808175146840527263022989037896671316949266076461600664181813253249423321254319519503936034344158968384607952897832867673945652974856578640729766015243800179538392341447230804902081898637609623247639140161851267012502750874282714173787260199477161968519485072378416166008358978942031037075907815541385535357871732097590275163537523428745464394065669230432197385412379402049089684424589842060472845038212197215073102475223386595241125625226404082442968963733539164661510683186531352009355477475550171849622588565492105816856868989952184462563606356122067915919926367815495841784968746617257242250751978213859749874529754511559995401665889819105149636644930023416081012450298430039123396700225041130410699354838415899242844786307805511978624716739577884803629413069675538215400660227784081443552448481415945173892370802906084079952886179816118223971991336156185199767915754682337286704339903109872435435807421959256024274508905157040532751609498797634461712164716527041352563859495241765651000792305667926949038921267779231072901749974176718981469751729247289029583662832669618533038915454717017427858863585536178039711504631442880986749945762814318149975238225774058686478157601245960565275068240723954139292108452438219090460383620739207748507348711782418469123101305596402708103198111350651509719144119541017220395219829832742634800381178618837742440373497567025013694127489461155380644540286880160239084080814476823129527657577654494075282078036849742878555267556127763845196075779954490895306473801942224686246849609545631892746710937159952472200234340469869912751831770287982521809311546663358716443975758393529806311042971942939053995662609121654485134469876369525308964371382115982465494671079829502144778497436133691533077436993915153013838426035795582497277181324158277242129835406195610039675789384734223457624988995162088009916723264515067085324845580112451176930883720934947317413800709063858524552855407915037831370758601816540848774446891759475306599828022822693275305223737344911328401774418923295992898722068188238485532792793787833166008570373459294406172094516373245475105043523065050099521577968026566655238714217792835987955245478054317522273697098160890597653412420373225361196529385954882226388145465514727840334727592197211030971174366045064473759806911558275295406132132444334132781972437836640640526072988195446608706719809618051739462102130856581312223483094463454151607734675230109906344148884568459470783955462318107209069440050877495403604528099578531637002524104282937038532526301250943141058468857518636557275575909468576406167419981194200621880257072117965769706799175115792620817008438784983949601746089313106813434784859198184630055599703042659838998930640232780265887412696368145860288356169232233701849563238673249330667592310281593313479571738947932760598462542889828151808468982883394252016869364004353552920354588179623295801102128179106229352416367045981386725621175312657565336955434760583839430521797239018655528539691137720394896900024504202787715606836673102386832758112497155077426721441345314487187876892944176183252175722769686702368303550640866430036513572799292015253136552604926323083036026825518371416905213775539858631841760243548724870823849358502175173862550392683937778629536612559082827427275141233580536844700102766643400813554739191533991868477976293406654863339947175073486248802433328135977033217717467201212736591843131182480121230021862402009464859176822601913826712253289769928378899834672688756770182339117058547989421027360009236865192551168405126393231698288019751111323545971413047032409050819043995460198273961911159925576685696628509693576157107300423427943532235200662243984047467488850792954703957692375967780420630494849211782811852244519017158052711296686276045374054047053554418679890437507553463090000512303773694899367989858163208832614300219367406588933211698995005114421281847141050302195318747140176417596109222241312560976686599029648985365917880479812701871511486084765325153507871563798910229286161285844584069856210132591130303769958703855768329794166931031929105132764580740987281776944549977555417860997031756056449214262072613653440383608748017438058276897530435383081965157707595565878043885329480259407369771617833290114398748084842879044711202279916307540324115111415263270975347045655033191669109260893829775413864097799088157428289207229991678381907010610405998178588974410286728375389342470070131474563326190215576815511896642684400008348193299499678170440058335014915247612746669014676119888968508434604035379998170685376987687004548919885325602139665495824505655676452339610179290550583825814461829363867362974781690659987335235826848925455937071219748808320045478115855719364924546210533150272357840508857462810494022271098824116917387075705534609898638677104359032327350613241939379033471835552807515221612408062170081418903739664682759331527097138406307467131371469199387155889845763333565777736154354972446915309400879541868702925785874171998891708547563948539027293453882280206003175210164918711101170059249448509911019812419895276391486588340932789450425659538464664027916753883969804547272996223744830663008332231705737307146050831021626886604474395775206925009440047991295873746929337866122291350932784805788832401044869449785377338848719799040425858718471250453406868976747668198591116591869549714969830415360771065758116773986411686419620748135624056940944679614702200933938752367802206004296599095550721264930879760823828504990758214754289695816458508001653141648836893935073081386410975879096574197689829392354789574521306743835864658535900256599338095579469491713221818244652003978891709821770964484386403128478158583961422113607566279920565805385278843099456820254393729531372826344965877044214456884322406566342650958345989062452773127733743264246969062123456169987417221193814185418507886213652197487996442644522418242632537388431420507880192287360534691068538971423919579729080627131653045411157529640162538589173726969982451136764105791336130524908216352166342826700953741005000005221000989515854180722547485912309408364650676349841840027218634072253103237847034734279220213719458890287110503910201642397027164186641569833628272546716438203337709356402092760167587841583845227717835241573758505160133492749223568142839476110332140306428099309050450955003137952454851685430505826571235168425684953035181071782218486875604924154137681273190636393706825281771297990772548811798390393651069770046553412903972028568805740744401170923519756344166821134652930313169732307703046778855986244139595251024749009767581996391272445372812710786159525832684267751389575947404989304460716683380445709872216329904020202468474287976610502463013302191013211146064421708993022171406653963601074757353153656437266737623684566216941495969338301795850385734003555517178967976525728903554398331912984295505725286592822429606644764204915566115620177988393915237786794980790352999144753438475173256419489317853148758405246308920682101952895863480043426838024149998172804310716849067040295827603308402188396910572541442600437267645918557732085322086970121852148571805803569702145261125989341452336658201804498766851901826092366989732057636689188992252750250498307095403885544834079910911683541868053302596078986868201356615879923559269902512876154303239589549202565257275713339960051489137287006821867075112277358089376067631546076997127792791575836208600528145439760880076395671801686165274454987930935783514124311661756773664273224965505022541439591724223441782358721074588982241604478418781871626177502228631078425651104973251422672477866766391382260371017861614410894590265022117327502575313147387014764491873166692697721668535638756615134899885882527922983855983257356916201348592517399070213615659969448208668999735423841133514525386724305587329554706744184646448835750448451801008881510209968239632013195995629275210797678589293267011287103114314933048893288917002198762216174310782387123002317798804169025519175818663774254678689825731589972183931119973436561961064218151227155038495739678349003243362099006682665317100022892887529530514392814213608714739276853830842391624617634283485705532016326492607945263708686652144273596370183983344843572856990969536646529902217737216514828121428605202242926789329884880693990355867010367009243819470443456387980243230911919618382693529997734197034410876475749815034042660017441275167289553860383765482621936380668152413530197057527024313060948057291071579255536016033178875273943627430395288294517353150799988199503786191901944863853007742498397936997277538968278776418043393256392968543538547051912063086985968088720519799116903672583365029128618652003960443644252737554783783502270953139579317655338848384071539388747001934696476104821969159334093938714207510315812877539586802324738422652326121527942501673646864919121107012912435851392259263260701863463532494964823149445053843021665512498506795532395351635558822261030150055864720265048075691646277985955613129515389708902469029338819387603498654756858575799472868175218321612334881610396361442163764668646324938721470762219827144092974632777344702963714548842847152021792619310575900128143731262777385149353403113292818961767362793631054076234127267632803401589296026084648130466622370809131823894520217983040417629237068364485264549126626813931368530175725138445821229744968458491180407918979918766998298988666216215356763999471102670522654356438923080595298861183388213990838943270984546872593801976690461228151112788078906570581145830701920115787041421061734647488828350602693322799272869106281047191197209082054269138197396732155274376390826208732038837110612680539492389999698180139425917525624864201004643818804789073104813242232051105887018381762857443090209197329215509446691464306095876793271351348108540076349775231787813991625831904716168965919419085568148712965719026778100950243630907800568764022883835560491908816632818739852987798317780633973681399072335854942339243632549883788165671465498588266272313273452544953938455112967184478028949637920314777544240851442391629305643825855043955212409583310907487077559168195947634437990214363345979273147343053618949936410579017066184117307129315296973814185681764147687552036586525067781851421185255173629294107884571294469277341421664804335974479579198560204023228018371160179766907804270365818554321068097450234549065538632637842534057780769076214187325904346518703011760866598862822297832988135121764568393989047634116576614124279935635806171617619983273428656976076402815589062845667399060359035018820315917244055005995134078460759386052481306377315322189716679061185393278530717019093445058670079196576154962267746322695358658135892842305379606625412063549181507411661913700911304175568062750370835892113543005400891985940953944195791832787531570768325681691259423752099904952845239684688495738189086326571605774064364611687967723648724042028882948605794919798922210063746487266744965659368625732758272249212115332658508029171413775204259052676980356807043430519202977376857753149431065255678996394566293691217382531283169527402958836196190909066758112064835466133941289844782628472045826505020213236194332811858108621580621379327842941094802417984103080674022481467737449340597969890157880340955494565246995883025693106543348195201505083657807501894079657895549909232812112154395843596103752288446312867105214021212250746161297176782203056262499238477731650691483155261730276423629750523130699893547695497180281956991564462653355384606692822740095751115371191317838854628268250728818378472394989145528161844618375061415701892107802957951283724086543450618257833133563142346437981799195169032530366029070327574490757262782642909023642026310294783025507551924440637756641273351430611877169241327242497025077687275400837548197640565817143133656457683644702386905142366870076097851508743150599514050871114164014337859664490785312072261162072816135056410666007027691710355433279300641010753608531490745037115100343807334650054545859036633800035587437178938540080718676026194358214540587477748879258183923664701694304514559336527004665506418464811540839196698832681066945528859595013539031392329076780818400744676279626398004611375954152328957855814052090822125540031699690619042968965531766094411931916207754520017594085736506287319583306951789476527624727912912035150216736651002794153146870267317397474248993665107638570642166079534044938354737109553799911190422762033938670813074928875932697168437211375993218898179177947542371385611900246660099875669516931600138684323423982509579825710980577487798608965968332090154242731889452980593150855638232456275386080018617444347417818055081114457921977098094552022000336120835553142122448229442762858558699092872694220629625690178495080543783756728484560711453522002344432520571839276934598051940064859635987218260289608000328733076716320149263709573840239927826092054295448628007295668327953857978854397653352483248669760752216218446896785457148642820083047127540224960404550605355460723046324369164925360922969128734747722921917486481005526282701435959297253161507128744825166506942548894205070246464676210607705448275978148823570704004528357198147499055820931710511585071036262747250308834925975455475819896136104213632564593409411610992713954868791487552415715578158719531788060024184321358388335965627209823879004689787846548846892433363624553190547900228235855433293307400944036910327877344419954216310845651929768348509253892349432534833099723208490640376246705845444636483541705948880418058171075733056071460471529304920400103892648994092017697060438042457881201653888935328943752584432390785987520587096946649088395085612966889641054314604598942171814040983294573166976102951534241939010806177550813308221462450808097047953697591378512333906277039109396071882843274543312332503250652460416425006685409356630107646206176713552162569972087167796629645223596331597683272767289239668048882732601440472772227272326780872276343487592872729900826100191639381494962789810701792992402453266115249207381054012877117198950494291192283756279883033434235993519357086788784798635498839122176706737142256302750624512838456249064817164755419829232614338855035919531839929417331033817159308323624656593565952792183697785204668394367314747052621906167979257575963978522852598497634589058965478665671866772242830199402238430445226274178285669566175821944419464047604508386666656243047941040208473293950237697192208584732289015765998905452911315199466936199755764427534000702132901390292236574431220475607825994034387422388013405576728589364844837850175959117095077125710465481428436470973460897903071146393682962600825472146366384222264657424131526080516533546313604797753580756970773227041373103786121217785602705877182235208374576148080015470613346192318128704832846244690384407531134938194518354427199392587440670831535500784234936315529011249632403517607035516739116026841041555804853604647386953365985892104914840653659793734889187074860438363309916105539334649950950468848922533078499664546461177311831878208162424335390819797786057670657991126978710230585509850035718748486604610735325642946702960022819142668438723841435959051662123062350566247940022183567952402628531318443904011711367258115347898886289665902102473859188657986887583048084516942577846226336201904123227987391823245705125335811128702076453967366845793263321324747366509661075423587670103459377611340118055771596447547829446844250659751120967336651826350182366444871579187559873671000333801765739706245235996728898207326807971394357148324077521302246213279260758577800274154346043039079722837973769087026555900511967731715101257066752610201436117497730593910608268872363997984916844655911253124943574440648410295467200157657976496272125308980701816875516475115129056375224167312372956655555799827844933936990072855111596448617844490538755858694764310427967652931516450569648171531901024269396598306391668195631914034978075887498019883847831554762469789776733990816629755233003310943383847421034327566513129834154147487832342641031195955148618873277254380593357829977867390410052347406487680978452544108229075234851541511856053969269664050458212658636107541179096858442652191110148320179743793981919317185883288883605171995416504051131896849656409835105019518905075518050704936092431977586731954119826886230242651800494440343255878100775911688172719716351379389918203654757362320901017656478976333417354216814714827136837263329384370171783405869465724137170794333444725959301114440286613563931332257979064821968227934332807422763677698332807206431873505360417475814797959035396062765503034595551523205118166116557709096046475449518960985565144525596407905721056700558100841648109982067990230120854366374032301234011768690020667840331775019861031881777455150360654065669978385277517574403982560320802459314112826433202332377818455699492443096338023839284552856030061045103452362804525183944727854768423860485298616147985664529799241666420694762110404429325977056452348793323441702700825743299433024281085580444453542310473458022523191934011145182371353320868799091752434185791838377200013665255171721671146679235272394531784255944269315093134562917093715278788093639546266912028448465096270291228960232945368436983308396588928810029417781041504201114184677708372120773140956567867128961144028063295938155601406709639582592667015027917761898911654845412499249222734570088668065791100699817782144747005198959917438240704174330141933642423875951035696906117110162386553005180609230973179054797485554887661687566141462391946394057419426222106330278301595177763750428349101047704242179208550463437901875173912204347995222484351459038186242906703773480284615706560054001463293098769275324397701208136588634842622594841969493028897793239265164935798796073880127882489906139231281297577711386034733011119622400484129197572155036859514718060933300464702438696507159661200311537120193837766956507536397886117543710978224185529848277947166291304503811632941866479221018968266958896132571535280048324715878861164679228823821169667702833739628275262738373569120435885576724868561124708775005385985960915169074760586112813800423075903599918741568225169315514442124004452365041983160986330030989569937546339048777316302035480081660806571210505879294765252074105155752971867783667495842946894147342530763975119520127759352436048689866636167988812940312872426594788552427831310907039526193373478088332422517922926742130040385525291005980424842086914054096397420366779836234029407337780254859494615672322252378681524467286889455664418914099828524276616386256286034237219053584364890287378626501550612393881271899519191261477439320237445652543477568266654275514891191204915773529467990337114507590837095285339466076755164839982049589024729802043960693212650012932417675023735198108405373550695598406575834423886207923779445133695048213938484491086612152517235886474599602232090783074196174202500498018000423163139345059633919769981579637736843353010130700925694814606629936643061109343187270999373037388097372137812228451496469993251427639694325337495036306122547373715887442582605879712306238743339766066581978049047892389988267015446207267371329249825506956792030498521233745459285171514250353359554809870066515490220542937694597615629444042278805928796671305864556280523040667990526727690236596704434756298657476281146405673086389701034631467894690665001611737640065047201688907099094273820007544666083380491215742908501909879276546803670410702642959685069675692806202619823077953671808694789008723001170937152416202931666655911306773459260674347440664918750718753058422400115496253962974884751518464335788749886729243030118682830755488685627959349291639053139534001249433737712981710683424395233039826316849953808085752795816004886787182105145948578916071706945037919573169301712604988702764046597456391726043275244459231346877954287468691275188141808284414450373045516301721310645446452767952998838585063766094784030845531799431582369680235384553661692394281893881668564806603963152709188604431090602538577114815341141823589671909435246107755166615100095783386551683377669537629103593337131725511590833085978196213831999634888725941444454057970926309730120428847311956120880961450268804591251815491102074567877292256034974297882880898383650745414696080183564220410441560513612348600884869512070885063451245522040693548699317279749359093282853753758841425065881401588165098690571596339088686532353527259322523362291813731985918190061774669166852626880617127612985377685785193893867759649199041884303277508310049865552568613955177567621278631781059260366116586117364181679051693598981930903828604651373804688022884684435444646720913505423726638335917975931009602753591958951178807070394913668260562087691518155709563631168213056609717440216810583801351986237069261691869316332919076410785856626187304093529436990130877049520239043821805080279008890834934547433210147737472404160524605512878410191122546754496438633970524057036756088567474813791438262572675905175112295619086452899906993413257400081896042400008545360586113814689333233873074154799811859716012428184363309308979163727710507370439765422085275513647573503028810296635397947734515010408707273185024514573155062794644349067863661879596894928421937957932447044399693636143695906072825261030797883329091861447914299951742820265509327113465035440951940283501672361378277941639467807178895625436482912761813922610415416016070072173417606321310433883144486222295921658160040014758110052121432370806927335290365271041429102874386203809657372663729331538120715373107235936012333128315133873713635408238864193518301949446232237300132418478018812842231528890988049448419079949272027608123067489968686717400040593912854116827604271856205885857327863070327667510688981476885777353906834555438202799531447057873270713827242028318132431595047755879935760962550503016345000941947850965530974110833100351036464233940128481966778781302048418928915699167776411252576725447824332795354620312899147677825190513288639335316815662489326945555942970551431622017019139886509886981814230133702827663673800747866322250695142545042218356660426173524792118683375787869472452130086821687375976242998578360953250327702042372435221579011804939247425840365491822063330877910630410023417361402106667948752050016106036918400592159846644459555973268857855857968728711813537273237946730806759711645149457975224264108821962124092481668359252442409919227106600343542557752528286771933757727944192200897546636132219564512811985905442298274175362076186213150217140006180921282727678076109992915537763219364233895471489086876210976434401637850067797822429585021037476239379718443208710300109796093716456883795524320996609366113343371860089808291013797189976596851015306122248425147269376586719540471521235505235465560268340402005281087319231863770142902787256460460280981565765412645297438234700315476660494142858073126528183128306662591789550529023552619233073865259722304400737421619951758041151741254112141971803384689681549950721807762743713695685308104399785172717150806724797747741446621827386166940105073044730525286787326132131878375683241380653292177902896158622710557623192212939960285964715101411706676309083503662207926775628602710935470772075083632939216326699407940307337042617311827556047012828632753976136759778164578716437285598842290391733156438872528475120487945593299515831844793240226007115767611320203795633179902327443290956173897831118279169815264352665620314595672817009778216228770774344567420202458311650094607349656384500647592277237704654785932488841972361476038933272116653307071695284318864005625787868998338864597546050374774900094404448978919409316745486231549472187968791648990561785758963635694875614665893502594015278366730684742718662746270543964014522152811897421161631205885077079931406494895680034385119675350325366591490460403601861985797700982813580254750961950086376400795401002723575365001861562316888748587678181406497797560514318317417127646323609620841148468085948596804692307404795055302450272712340695211561220182301280817687190939331110719907790003295704850410854923575031726437615516285921494841389700022600255682609275151910995360546592564751186346208127168020559088628928386131914145149982239876598334984008270463986123676771970576017542237411438172538372076546301464049811565773851817665160090937135101905865445120115862449404497020756853126938050290161439305149251664303838986661997458094240175175362347014244957881712901489440486296397926494083787345787578992910589507381703256767550434199517790123671347840138978256310140407905763052387128474359424565914040011146884127779116078245664882398327164783318541736088392257755626687498204937210134383440130344022478296702052299385336612437239548110359766115609670996982372181794419042257498335806818026067214810653690867033987205965362633146697071282009131699413129868784410937081354065981117923441396458057474548836489946050531156003668403961963979916984745755704739383193880110257166969863788191183184973215066285581964681888533804820547406159263582604255567615607058081173199869083714662545544890471156141482324447623885044838666265572679186876610731351699073218089019579243284846687376504240255237602663059353897817508757668432325039119929954239424398673789540513348407065288563078843471315564661294549940432517538360957751294985087833916485735707992986463321448492229002927533844384916808860424361824248834353799383288220132599523143493991377342761651139071161799642901724121655314800045762363676144136427915816308742508395354701889133819665712862876922188064917265711745182502090006877051639567449501728307329429216723954047486887119048582998723959758178864399987979313409435731797841788766744502944552833510821953193331378026139081950167891940751383383532844550410311309325694278933692967743381344088124043521793984546687553565050134602655057163651172745509978799325958192749916142007622409340110868628980998256945568441297509298083849399225374461117218657284085573935686874274865694141932571530192687556752993733822943757559514937374078322277537973107496816441216065367550648302821056729797162162651246006729357825249543535092391591148843914617177879879974338203495997621256194539204177032811095830138203264692042315950039460973745924903360652927717662294924564766704642656995143085900675091748626717147492148231744325559929826829002001374038322204511555913745906146524270270888342164797949617100295700921281163410473824110862374297066039112787736401397313938174815322996575286619389999108883546703877468518838730536764926256527865507172016768243365060697929287716665513641812062286093392502140475200515118356624221248119354560812509362743933756555279402591706762066664301899457908159563039979716627267388042116935481152307611983133536563521852348954391120521828348922697582743996019987087363163448038284520359825701843721363696732245417164363418224042191418001608352503634648125893032951958894034650961883458566750192122056897631822307338019232293336688071388502598179706842388879885325186406855393472344611248039540134254890402651969441396816050685278800505558268756202145667194454756587045734133255839497356628468469670243053824450967970781471721815031760248541719023206430707740082419462736362463085129947203779381226652197608852051437622456629241142423805695293642088788895190514280052105579134353940653902100075689655224305401910119172773882827380721911178290700933653496114561169860102940281621505371413673472133702649103727595313737798189813320997569727781225656295429113475784676657528343059401899886455556027391477572250694515506825618766507348761104085125375256041543443213530999032634900779227729033579248954959879227403591828780870986159201249068813793944009162649211960288283932629271551798335237539396622576977280830233293765051010450924084851644581518096986827706363880006181593762384021560388840845056898238262719862689604196825337201206426110827049714761714866933996374557977142767415717202680917914000343933921289805804705797193933484109004046498172876008754661673836180072193498001199095988884321043358170550331627006553274607836862848531084809814448745906326157154978449526590819652738057024177932684161531725053733146581879880359510258653998522765315021263942724061113387650629905671705425029523592879114298331640592273839615096477871377012224777701588851731764523347884575322813353448225451306582964104919121011101093744104647941261443167102027621595687315225366889002413487097735455587857980857010580474598029673151431033003866277959666020783091090412450879776634970994560863986465402917336428398510188186697628108468121555084897394605922558096263351157298699460145175977296835229475277148778221219279357285819258869915295231026303050905617001002345923031348591655617491639844529353271467753274883912089366260863495792573738572702218604678420529511312019937932515501965165031758550513128778494013255477742828900488572718187981722336769191566875009205741404048686404214286356847389640330311163314688207443958570379614560244541367083460816984787526163623528356776147851524090994342333941388328946648090831805113230890686560423274737177509359593854242086198169322253330029454235936684646391085996467794518088890100875703628566271818414435241533329025990416632398020487431928852987776126290435495619186372419701142424126037668552446950511382263370856271610430478002920695410535373436944547648664861836821899321698872651331619631985941271704076560549221409751211956689355618815694545689807049242321621408465025775090213332147657407202583471081136462481792818283000029473636853905403310346404674517875868101242009336505131887335977977203246849719447577575581860999118321877798172610085935071098527214915440400659081030493368421770953080959811520940979181298357856154303311158636613198451101813314335339825080132403733201786753597835908304098674398900547079771561390185184956142999041302795607497106076195329875385820681815724661132443191846499251524284685488137480494499336626563577580478441393626518824543012138046349001945975907222576739772287019552025592071610741259394936881493447681710665771158254493335695839363510479399808795769084085888227066145420475144454307181920564760949183647388125437292781784240908549516499780326334865277415928461209990695158790730469825330173111656089710053258927178133502413908312431819121839539593890005149169907066868813088850755287581660915948351949321523720134184028179895894995770822458358652625482679863317495004725190324567821530016146068054564821432078619085062704757896675170255198110797176117733070079552655621014747797682409169167640690185721986074006150782844874088705814748512289673896366255676480501196538360639647984433679579726198052361045404921992337881962501616153981043017958099081242586380870237867569368750633419937823330170146851372656189076777802126347879718871203582141245571537826879885836632916798933914408136441140132400281369113083164048379935397760840616903719992371431878272929263607795637149959886969522952701308813111440655602446172147144196560706055635680960623018662873561226104113033037381636736027195130150700108916814322213604671953610508925874611162208743184946610927481365605360296482756063556079471755936912356256136794223734226260754068479130953528903575238646218691592238668989080890861708723603962075809249011971495754115731403963368767564029916286709102321130787527695770753717539633103574604052089421183252036411126248980401014383944322005161962410176212516471048707802650764044040909901180179881764928216061020231542060536001830739311743681447487560181771948775547520599877434296677623583577437073991546158617614499693417098863046892611050072780253298232444391340586745359722785143228798462449158198866876570506161292412443385221097543900875545016410492183409341877893402335223647456627659969499748866992518263715965230958406320925964789890871009076358874788775527877690217468877780199822956512317098164504966203478515945579054896831300393729176452383514209335084317996440906153523008581528916688758305045402783632974098156368414479911021003751708465685243621118772660460999312902852503698938702547901865030732149198425356940084075317400732117711242845140254590421062299541378643588194455774754504843767577105630782894750942664508823512086905686537647709688592192063749934751212762373067377307966816567789809195181341722278293644447209034692413725024136111157092261278958155561176125436923324469744521384302591846939171807333010468650164648421440536343218392462673955266183918126426442881880935554455556190132854831860523330187762800727250681739682287619199434078805574908948543067704969892642606999392552309445643516778531283143888251057711586619926135431144265597142736637680226803936898888349889888944316714424695013721235097084350826967433535916784998975824556198241845053055215100303419742065533560467561673709234305374708059804994302544956545203675055277316875309711021656581460250786566659327109197316053600318735449330536203410195226387608832726787147947566205726012243840253735537586273639101684714767831658005824688313919959134890105796961342304833327893210861188367721888334027708035529058978360194514274913416715729285930206668003602519957247653623335989304318765690000001881721002646725819719686134615106099353367284729167995859406449934858298958021722849896119531012700003500608822726873921837577994222594024735650706877637411854121778436003252667323782695195445169652484316408088819965841290143262752359461225774861247007187213275048987802804913579975736215757291691084366247111979501803834659047010017140762957275930865674624935475886822218822693410315341618346956686215061544505584103200530610957789054199152628755051119417908474941736382990339166924074937490682607290059209765927637845575460860287633971766147171142931762317048395905747461082057259072070512472429089042039584625189957257059347875289393748704812272365228189135558877202448114811169729190125736945445037453952212957151038289447080475038758155853583494858459709318929276708745580122096791390672418799441134361239532740073250736211482805661495818426528566113379609380717354583371087472744715232410642011488468598388732574514256906272385158063057051831815325651571719598699981025993460430823682679154390576249479844330622463545955095834018144707455657566197151925685074104790922302141540074358652674642613416738331925408195329034770417533590807684848843972522738417271664676015548293773983228267885680050975643216663714806249147281484382991028834452771080402885440551841078727285396617856238214482334027607102802665851352445408870314655661643550162447578067193135933163613034327960952610246109191382942674168911348803754957444538168438666170145429512801529672826156394357291466156496437312541585316202870926925455877779472100155352593505402557094351470272345724851922825663984568061595161952796420439509140566534086477460960870344258893697194468468365623343838949477271083580781977455885804525159140245101576668761922994383933276669954284973100254657912215847103589070295943372056261024605621624285415754426281390199734063618116071188623586852368355847951984773627653871564075383620511068774989942671783822035261071775038944671023649124512022565699342786873834741026920306298208883419473243711367902055111621878793012500822711015788990729851978557503362591679882526209007110669077224249575962080260276113346920151018897853678806367215273138368562944422547538400175336556646071450409046403725002992328398406212214912406019926102645677404902407760699331191672022948734806223732011395222898906794712968665791812360200885784127781667155274520757379383833745054570753809774125939455977631616290503821497317180784687441891955927696924277312489864639794905469975629194093634752162041579963787286109812550654907703113270621176638456078595856688513887346253568624423143961106092573732051618598227000816347328762466101874246761606733263712427490996799198522933630588467926177210575421105119896264236648686417161928549035587874189635099304327428806020510826396672198090017038635836222964398696877469757045686890138320962054223307111879477527968867014510847813805879190214661762792134158998687389822756226228499248609170945124750784238506653228622780310523224403939645491342815451085023692044059342537274521122342210026147214185203270459656206425428048548453897129758774957129816229750143778696467948928210611072478021344315667088509133719268620376983018180436370376158092631290552952561585343239739865604320659617686236665727874107505459194110636167914807580382819203242089507802020694033357675732752363871748069872717776296135924021625689132211467004639052918913168076171372809663295767794024156542737910814715670571946594417385736298033454985361254684316748788480681172721595195912246251768380367941081292215855493304893333544775552111805672689863880253215738920577576473429046745321076273759380980627360751236689734887462135344549662457205991333313191779293737939944001363185516748929824842381208429317555476708381464205787461830659525935913991523364554499153667323530379429721285798711169347967801005090162555579087920786165894109670943071577084862168352338698313712854485722261882107632263049159768716331399212043085654715685200699593530544341586258924176677577682009488715891829811274674693007234311199806078577180548304414011382378822314753465555330639904168476390628415054095030909971347967775405523919801203166698211200447399977444108601482015208215367529724623865161271701175966602753532717547710970723122705226100649529886272630591513946575933776345472623837081222165641365353463918662992458166232140623714103038773047740284956106796525672789282130877167693432065730204165109461897097439278611135129135217562293696410384573149462542237544834985881495471596199902298333018881081212098089635696218203406223991383579614057285405491963668919924040711104713230831120314058268699706940466365212841147892348854826267039919944745699209942207077919395515513471706202346529535217391822052821790010081275186147080155625471555407057453714069647612633540585367518436271423610341315787423893406907747091511302365103905210971100106648215725542326790916444502632389183382104648572870549011734108156283090912765062449332855727317440437465155008005178747142895947281337358443111063300085236998072967210044295455725526939632602926853894873005797270329053968710724682841488422973177571490215128838806079026384307594249171894836153975430737924547934119492110184620349515559768181641950018650781342986744397417730748256859886974069740523351616471667632740794622221954428125868640021141512898272770158946292365383335673127298109934530694845648657837456704146194567417888217323017633531166937730645442291066017369206805325283332883432722218307657706688541784744130576707973580751889632533829221674562700035691555038020400521989560673924961348089930711782429490533688412692446403722398890302172493524812010442731279169998221547164208141246941828558964884757879832728232203553756385496691521537668758793024868650602612477098828781495400913994009252861677657156256271942328946370097489158460594971928351036835417478239118270568436549895404316902510887544264970731188707468382018492854605751942781370433468347037794270884434664794019704386673351158520695486054388290297647898457663123773696332882377238699216793592490713263941866008199551598511791890420572580171890268563051302532148470011378249581788363612316489367359186762626057847663133546801621505730584217845199974533198993437973352753469421716760491965893837935732774685278437740064611956291038911174143450628308460648470584471605629532076607468050665344296632825660442724330139589787527809466094427456739804932775950847915000606771814330271756692029749516808847746553555869253386802068569481450478500679792295947422639144572187264122598458389129353300496282165192932410011552726338958439384947546877118699151080831799425238795005635815310140699827593757530622300508039751666627855781655846452213323996459642728426863379370110054940329688552069138499289327827470593806648513545802643897528606211926075779055120606343821615487007560774248920130843096681854235308896958181722572447039895853094819610590194780359101463910221284196106995781050658169735030385606107087782497128990710267103209536864795465443822907999768767140566543204042192287045584507591718154153048235384928053291780270293789239530979453265630854078367509055522055778999457989884958359135142620729853003423329167393009900110759604721573832389892700289607675294956648868575889175441845623409256744508154210434856918486208492452107754770306770309716500849049428747782603603940292063563714210930911029272223307411327591778843506186188461750519000442264750413162229691363086273937295799485384271050593207110646980139658477250131373929825621130925760268910883195861010256084500578675911353339535559831516293861522216033844487939381616084579159735651838692663490023691229015270377201572250789328133699099501448061521344701540339360146935262760918042339836471295887969901906418886868438180289008740091991424688103504333329689018039358155616177577018328887814343017443449430106174053206587578218231444643707707088201160490941884438279493758273795775610713897449271262396902964888692994987794051948270166695047501261156018589948403363464137473002091498177334795766331076943475923512926773578207865679905946505198855294172733417148377504511408602388478377975976470180603782731485001269790233491156802105392448658327011806092075803322789257368311150645900451871040116954572804403955930829744956693400452712220563818580289580041323603255730110895557355137896884452589399035750396720289369397832989502514925158566359338043200125813186876205288085888648248572613765241691656382671200363281061395847787907918229219927897749535056615848277446185701601486614228333022799271041774336713316778171772322947052822606442442074266970291007659028098636725947138992271328701968927602350656199056671008916581715172262919306930857168178104653251796219215725231589440369673752076132087563135636656474064089499540313138767202381647271001181291664749141680200132391345737530180672448730463818996699340434149974667902284341921541456404041204570286535108455661462328363474723809709119054663867510616073627934210747223095289953399516558026095186675213224034905168399904008704112908700508390532179778235636230377915050577141882043291043543499113509236910408951337807444654564027943456222565737817239583208545066426083132316727183577904990297451751098406662063215169915035618474894733746391874058568556135191310610217892277830877101640949210622770437108464601775001069210541470050537567956726567891428492394868528199083695118050296092513484053607051718157969425416211930024066839322445320994873386402032349023397242001439851485933533740474823894486334027265539448500472081057007068044736949563105416762184807152370527380115683968526392035832097547963750821427587164314965276480430324601979300405627833534577502607505158349549836442408009112078933959135086752422145927037755022106369915841320731528922781238173661998629659987853176132237925385838458138105551066352678085626855396991954030801284870957332826484474180441601849744975927530154242059198714510576864245097181375600019858945270020220061439378527967841597009743353804631560502995906884365830863091323168942266926951711237923849764146899991285636897874657438026006307579242597393399996245829244969972091843849894781948437532853906366356336621593995036155382320028796075559365186371149166945786709816677718852061666679523660738170524321852112971601643848448893765703736181924860691139062409824700695432793870132999077004678580165115944243586561398613489435165513249632136887011049269188749179143283461288338318650072776170998975856794744140116519394898580466019602006230455511583562599429129128285999570241328666351991105925209672541422612088895266127198338975957259647180975162459331739994667799676290231502329850025051756017245783409009842819792807264021743531240547210132516424319586494463165135644167266030236655701584056458191615497581057952254066378714114534175276600214978260284170539146993862119364294147219095902110798785285676902718896983316435505404302254230996708870903263819773050433600294338448897797724070101799028225570362967475630491338363042248075265693146798552426515483457001790912484948190377229091590071475129510966376861787199752935275795265908807050803056914174860525254961550372065946883938042591157214659248495912829314790486072726864848840803456146292653338052752552564408381710994409072419889928614693849326451898957871645164745898982902713749266748648694200093295672150224344489299231744786877523953177663648979500044341629196408185523600193014775226042916451185137103183565894031405165215432194245716065228649865075098173405590030070375373778023217640620478225886598032956437699647187605231219621153208323418076149119199272634532945689138067309523992569241175178647268187813161110087537337858977777370660393434131579033191632443327487725869922272768973920427704549465443190241296418116397937385088076469358705243823377380247373969211448500772894556536167670534542892479217418292782619139219574266201243122554011561929663189183573059044949849866961057113810612774952537447711542123196687446427459135116130357523716378136649618787821672792496356382908593530156006815258597252761866641948138249296468862471417026853752495301269832882742574604085288930775839608342651725039441524347902750071672281419401942894187736555303468256690900183114271611450122599772909180812614073869365761033949503203758816421071818888368637586364784883358349159573786349832721031100230669643689391043846240948776685979331226250123565205095965122751056902827239601969543910413825859536694664513330870191867774323603041552310072328093330211952089700015026973143053386056798428370135540571445085230853146657902978121624677402638555368207296935701442962737346561623406476736199499451048629244348852359594674804548735965703344451719004850290624139283468798658879837014068348105354566385358064575033045283889848280177039831353254816350176167330736864522951288861229297481211899161828617642633470137707683547784078123709303029628814211434338394059834745727889721695395126147126307135355948326433003299017229874762356787100516601700831926309507827004351929844122646889824887422698062136306109195102780620928514265076923893517141928634234503676174083674394231855384833395157803538591694252055644715176039812597361493695322458487919753567938402262568041920996033185041799691751313445993504155101677163558215261457490054192038616540206967706004133449930346943781522043610265088808076659321132402895100304286576369047592363719492431434596685075388906451690705432316293180397808154639189931033192773566627670572611204019156374988149145370460077616986006067532133326946013908245614246020312716752164928165942614970242252049539037098753212315437698653508389944821079389497037768756086823251994802680249406736377755606450426794740391929309719763483793393320150199512706106489402807747887329381667547732066945955912206076118742534854836926255719115612282905287297497217803916294819398232201963520923661657244655254181087441799590483496944972081245237885931493334053744854750581564508424968013383315524397462328207160653660249925580841144901845627943761611713582468799587994399994308489792903517646862826342138746123642111553795678075122210268329180319196402424913635640795749487195383076570948158209317530211567226192625237029522474950382213764777588925534191122459242325750387321739652184217852667435086501967087411322753658913688340437016343592147808034088959787383957241149047955940865304933972200271577252849970259672766288733435820494530909904703179834520168642119222601745582857850001346756858925530197200487869048706499943651766390079972135951398406702535717246832659135265025379227328635614939148536282185682935590490462098944760573461995040899280163616424397555060353956406019324770482755111583450464354699080569273765815565883702929213170483867810087103586519060822206267158327935768275288958074232757123943451011053290714100308488434952538949997754622372207079499567166284143787986703699746111809597478012487607743020444869474847290718017740699221289895561854495134941925943009396577125751522896970433129327500283055125056133377842183438718845739606259633091731160736926221723809647048908689912382728483191736642531481300701579872049255936099734549439362940735604870600391893116975639843105353883460500636414331762579414348920186641022393227652627270790258261509460159046780987665764784694818324081351451278401172817630805215488933778317090084162549827082646553029821493525864287457301312135110420066585259145143709695931076451655323733849563774096902502961058068267019968818344514915961570044599180156299055322833914315551841885191361170562792482335090457556779041845390863667875118227246862274274327039768612839497634635592928060531133682364807743924180633958008904114167237731146060067854073265818956660070076884036790825508900997374045364017741441349805789035016492789225577923850540500396269914325587293800227967246974784188734056525700874374421824442172452910525427906573061143380477558139417989260935728047480703877552765562282815784067849398475566989275893867609738201783268833439948702079660935624749325846811549542224933026963536966395330395120713948256819701080274848637706965023514191439274813663439165683579880953969648829955848419547362413268000161455545052866332818737033880310282449798831783623772953836519010175458743112016630530106836337609337819747408273444372427157926432903222554840817548814695108854096398692746697343028482513216144783292877157030879882742932441650589817523386759776690893523213001666929189768349204256850244938670126723407520396891350392089562828910505307734731553468893443437100229939127710302238000050505439175082401859902505824792386612772164958726587626025943554948650002576130225910043364059090959383267315718690538185210792841201896327301674312768130848246741923521049592996675011443297932646156018435710291245057570380683117446042941705202270608835577715641505888225069641297603508963689547047260675717704958015431364600767871030854760410672892514930514470385600165992884505729216789650252917644373714421528541441810743334778454449650610635584827621742168925863170145872969856947392042594848830649082446984346254866281402532351611169582893425527638149725572517962617318309948784960786262610534586276831137785612987410100657363193218068313055138969107863267472274556831687141126104630525490812388438950133310172972960188439562878659835750579593179645885640507825960800025879303866825894575757526227966549729212143378716595644315476726376246944232712605111144753713703097952195901074074345419340493002096386571739226106707459924758383298964503875705295480076626085426756835125700298031652297914855230288261242360793013230108132149795884812402693120815874909899477288014924893496241782122823609213393907171200940971564691618123941281923742179227448370420746779401758860291130373736661117019932082617827382015508219614885936884777064047110842611330440466553809771083270107832871134965935382757824779898702466068829120066018493674743839290912256745349634822686470250910408426258531102240445480028177624861182142738596405396807093882351761428507779360566722545814852130305514762310590205260003315572921428276779695749333601973982525727410383799361639770031316210293143462788617562521411027365271998405944833375145285937902296427497818009001174695197813076885391932349239063047899626946613047220412208896305542824613980156813461589994584019071235120250351118322680462155372999652645721576905612264785734938850545434960919261387551466036920642883078496198544439636943056028939622434905712881955183753143274485909632634580054254283930293123367186813612699452806233488293269460321956869131966927689027951737712018146530588943437479710341310536768453982637720458558661841500096590205347061912837698270028759694889649266384610893328045847656788016881344693247172359429658328368352866504573830128667381304434179039690511063709022915109765860417202078525031732726218720129342922505435895303345746368766761810862883579910478477065067171540408838774382653237233487389253186926113520611703116789436060195097596993526424263298858701042021674694973024455556091536214263956481862643877082481638534692953912641969224676179972163876152278088382438809127740874255744876869117593949906892563934230653683980924115266049117917075387175387296779642216362489044224425196039320299748992036888330316997543064151713691847807956995010390158233858628128217723866579829522272316144608736923747294467520469786045622946485728310610347301303220133309423639993935435617923027651669458466354264399194656498502951131159614913994005619077939130388537555731697064735120903628466943189062428781531377765380468055469270438462997505854309075451737730066541865677408615334726575824470529049830185656211608672136134433934912452680923510812694171449169289612633937260094173224928857327139360706774481058908757785777990664195305069735668524396153960583258377680678506794833319534768584290671836060123003192514349109691258670339902949380431925832666854896895756347151810154136041872852234386490445066764046999766353345160390024224763844099713457678634418890021924591763047953619028913059132991706992996072445307461509218911568693182623556309676555851091790847242526285441349158746360298769327677825441797880847280622127149524675307863516958722159129883168514034936383599958006812039106253381094852553446608930028517502486442435055431081733419804600224488056971681224738339584170458759842349471713951546923748353548096439209544834902905317310562473296172438975351436131628076589801852174785475440649022092377857846035821701170478477275609321032311656579511387147628350720493180514070561774930981393333064640435125536099294729062854906995332234303777226137443493561558162856328297515211024102988348872653076715179152611576105275413427468536850516921141977044111733466482186046263298478095047594123573135874646393409786004206751485125045068254897328479746774380419037108518778918646150200919281949485588541953919951308609341712631101631263013873938178733871093278493083298763143319676692345019132617628800178677543186119838841525298241805487821133403171828049310348262329322133101877889649333820437391882272333016910944650876963036767688471117967797571411305184401474831462828174706272043957620771889959008684214785194253009481835455511594227520190555191773130722221881667971973719565636804043016694363877051038353964370045308366823673473619498658648471670090688128655523502125004434391747573409042149812519458413208048282492815864577316474615220797114776681075313947340409096415103241164246414370076405307222801626919560935992030881695247687879624564175708590065923477360350114739322202610458566982759074111540043449423672140256649544803162844946550844028404232591973865916735551664717351235857083240486967568710782461779689051149729689934140644968599113944223663191876901207867086630887769968783138661764470529495021777827307110956927882889943363035717949909667668378465165718633316623515429388871956007460855354096247991948348573271378263823568084538560524813689086197658515429686237105890756729086083323676011597519600585796983710665767203262098337394306712851051906445528198193147136330498083681747705121237783356029642004221580716238344044040925804542041111594496874612979355018950144498984284656968195808305720810693987992848892268798724241948759345227645737736327889245068437323086977660135286019658628674638294143288454244511299106686713311615229749694710849890483875265579440568182495188127442526849475456415573387768198132294750168814497112850937995050406295528876894755497002688828514322661955228487352712715042497513256568734809816816783241138941273268771762699693145417276117954167925102245766161018621361185695648198937543539896945944264549185611754948774947257456691139024207853702345089108037318196209185468821867984953683271724279670811232297309308575385350126094185646415530823258469915934807218004096977253199781019247993774150112006576877515177969294930289487907511355905850398277840845424181066454804113967821650681574043195766729383663024902396656826603387318545412233086785021020515241945025657345780556657131863633142129862774004991097561466133628756689830209125997844516867658407988069505887369553890276706083429863592664805631111216760052257962592815466310926300842943844430213061478921845275395133202627193466066208539179279223490472368958966227534788436971879133633771663115237015661811526177935932735510898507444580591903546216297789013011391046479645663349889125950646611031207069792830248650887576979730954594949014486622235891796154302459651443423769157108049816478673538861382262679661457489543738909480006351929669683244417907992157921977748616227270915980088195607423602702924547758920191827703833447699861772326147077049130655862111264646565817751113851488621080071445257184517050085569934807623661622386566602763780763132998090162045882897921370324533687658295237824814018794850428615824648319642087632506660475479809948830932225100794793464162334498505812531204963921391674699607348599042464159615825584304250644462040407019724490070356590819803986894778411700639407335782296061494255658887189286731151924716311453260691738535587747735614839562841055811676433059355395647414774997834011949928083036553962188852276817490061817460904610089184799981798017970772318839343336920815456843017929168203456541605569799940379407483993321389410718862291620054911847264098609128066969798864635233965697269083394242290735544410340673922867551361701460445398485130934089802905499114796899150701595229779079267271107845330636035850736788060190024648667794043690948191112849849284875045830419196418507563646611242630032586646083906424546467776513754292817553006530611553779869815031092374384608817032468211544538775744786091928142775459093751812750917916382969001671195596138942062490373631548338028368406079327913800648343848604308489740117559563307931161494931607144995508773030839800755096485638211208516984644968960604075536650478212826551937331546601230671957479113521981220956403427602016170328186361004819660774622162386107543772055614843055212747775074917590328487656878874212003024703778928687968115605536797125120037839695705725470201559102441999562915700170099346960205901182872640299814563164306197603305775613685584286384995155737992147141378112653846325433830310716562219030080507455347752251305254202008972472947670585923230525080268110375392332936343206707839975999453283695568367319526930713546272628616449123744926575558007866981900878456583530951536421311296029751143262929107936611063042815806508326472926817485212189642671791919384786386628361110735853121514727687336578490714479837758196438385445738549089332694667773893348152214399148946080650613854867743149286835213011458656550833581959723390780154357185502123330495813803227828427920299635367641745716225980229837114541849378469512464823160003938961631839094478031797188309416297043149354356657054612277401687394643441417069768683196490477587307374461600104160283914580577968474048266630778569152892482935005562614624841266109393890992255911388194420347215394171935424069890369804758183569792928587779044828361877867221820614638746352855743707322751593175435053862906723375350594343185020900191214192918582558944142795231047667903024818243709163697250146677468791558718301383317887224341961398853619676752561230366386402681203805961225689598069606515405828868757298718888488793930509786982756894571203452349150051913473765269889694920087907161668863100199170776617827819351350000597127163636043034397755852660963577445916743003752470418664080427943156583573060143655394818975731292729667120488325267790798929252465681487429056515243401049320942271408028671910797509335602596322389570602488995218198061628603192162029723187198817360736167483331519234194075340554310820318311025194275205338937832101275202735381072309652881779419184455839465657821210485782173671935738014138954340909931906991895454784881989323730274170635572455377255848470602218408006044757915899299527115713697579789545837798765607843110523753128519061096127988779922848175348310318370952855229965780266099253942622860963705800933718985645573714110932255369316937088199970992147604670519606983435608896275862553907157261834898311716774871202850484560680014394196175436172649069108986620395871617838808177242756402006929331525295633690981872323118664529882731666603484268187014155526435034258723282471342198275352998960516602258764777613979597069995783487381681875672765968496855077380185659390800650591312683335702343282130972770695130111061945394896238589704944376125547061111258312716506478953062324680433820526151598941913244823357221567848240652341431777452870353708659664868360768572548079608758591301724484363425547892339690643515626622475064537424874835546696052192481263648535162908421701022997662359674455604741310867483978369058868705453811517860806426931789498946603904050511356799542102545606382890116828639166768353480441604189184207956785174950062316854409793398913022740744760238636466906945963433450608041210873914582899434563896561911494688075791524267263366856750735925307067547396098148122864211447574694792917010636856645946383389995414729306135166396861961591231129680654249604603550681448695937315654252737063713211202689639290684147476541907770020256321350854935662476933667141079935601104168492976817382612186116174010801182669150320903274553946468956077442525403871254515207260377532529165748817288799482733950816813403957028861477559543997267064395977457863304172912320669470284663913601965066101090020559521514477569439574543494069088335038459469661984307484990563444831252742015542923259042509845010943768544632497576374269378558228320200530437500819637965324292679672549274319148230523542933637057089325593868572331634041313408361906993985641244104248502324725954594486382439004638882429439684811462100212102333968792099985764855739435328325864151460414742776120915720672886075114342995973339161305951718419182560672496229376265387821456802572904361687260074155679720994229495535827731284818180281098104223209248033003052069744486058354160884451933527312666881008334142858039390385317360503637858312121080718074531811275436354201858633705429228191637108034016004086612869634085142067722443083268317760590579316239043347612343028348597756171393244094802311192777023082767335336375459165763577285049929144774623136038794843380157199480981772135779111456600140331829481915546236847313254725136625065259768276649613644904848696119414642452868187142784316220532920493346054204003431022310574635765058843662272033068627851816558536816885921531053846697437018825489464552737476333103665938033179144225291872385068989204336905656935538676854913880167653124283502789881085440678912133660518576536876425971271417060689069910242269661315757365031753842383975299237116711255249283761852524773452599073869493507491621280033180301898482243994835715174979759179934934323449273303167193578602786091269550493192535558548576757170282691307133962016540275793043371433249631533173873436573118867637084899224417225826221656834811894904717437977477720349687958411013941268405156653374692517101186914912724721978626994763663455867011497531427287532991237282993443889130205917733373349016128263918359944498645475603085173807058732652548506930801439735357960611391461657609014807195761703709854867000296686165131719133681320837452207112707105736676145675063748140906520491408838175965024025429627629305207308601831883418824027157875674031650464112886792028378304467298803226901368584380003167468198382963866077776331082715182952080974349580207501694280757006990549798948710252201415108332951932220236530643675323265856791399124814618090166760051384573236198243597787398855557133292849973694786910093380428062024212709059710571297013159348171349714892151847483005673198939397147049512798568341840438675619867641046637609491094475120944813137076021300602877124922108523117515134677705287320696235366928953516999415873527074392707105887276069546359109093981735524429994261388619645827117652278646575476242237981103312167385501944162852801452297187906259995554862859298936969091234038908290964397344246893832099732947076626961646711481149102073568618673388685994110442348638709790080730945867526325915252652832899821003000297981917536998735607593920062548482267937812076153147322026685217585558600034858667661460276096050777174958909792071199834227314357584092665182913111369226085524418736121921716363514181394974875548353946947494435242997605586539621427911351477327065187437310785568133484762013847713930192951563111993878624104001169518100588905786262325412063944228058199744535313336917194409501411501674353573767541491813015101243401763045565490578340247461508490384355830176961804083753809607824498208521112990596573101994155778555671815137362163663049485437365979883816823979860157198117573248269222640980593569570236584268603709295784873674427577584271518372832826456253377115440163990412491457558505694544640895520833497151663313385998070506784564896538821959889965300165009932167318905908529013570819259801303082188519861609463241782032817607122749199213492140578522061638820105055171555193744243135986499204551608005139090649220785618926219963452684982349526923356230691452690735637004079301449692277162768963868620519011583871108960402387007447662143722658192634116692883651775355653402640491529455737896099281022246126400642891356126848304529616698305370701038145182719722481954493212910824719510434870160605397336272521945130961681161099052097096438906163108918461292948788379512808888721773363897095095315055965038628614908582636999552533625604151571998713157672771054457568963576602404090874990744861996464728298791825937065757664355568174986799897664392709721911216773931326432109317680148427230240904895652835732927654389548860678245748630096318823470082120830923770746349341582211479287334646512412220746652401116538644822961679749402486544458142009328036155313628923861433113716147610236210567500064616105388771621156428930906868566815426071351141450908016517626690581767202780844385167637944052599562636644248841124804625195642658395487596866725410950285591254849336396828295031285464220343194784839382747798708465446905358084655538409650828061898549134598397900808455163265175426706619497640803186363920932434045850536848708679871005458736170581259732542642598545186195780765564291780389870724197813261055737968023192211184595490822489267516177170029425288162859300185188056129497671303261989235902134286443339483689948238420154639768421406723319512789747817910406034936601404351479494738428676717291980377995026900477146560804745278140030751268535728348053145108788384876143190251821435955404280665500102085867383398943071786193730126230463999980106249205600436397028222741542079132361062712476280857918815562068123050783608468866911443487812283204368178533201694066322325867713484649936910754122555712467213866938362690048168725363728133478183588131502869898263353178441460003391869313619294072147068045684277137954433955483929655727534509320584749841358869285102432852287478598061409195996307919066430156979561615627672701646756618519194005470505746187965245336656330054333507345075550134827075720026582247640230353468681738934801788506546053249742733258840541168046316884008929172233519875372213772868391486142787854572250482101849932905867964147124173136591517945845563826022188604828119742951571147068087709914853775646641337111639389232527604553372950096938034206686283998435274272947966107975204886074581898121852244300169280252299668122111290012062608217375407534912013631212217672948151800389939567526599255345322089209888622459656845352440813757598160046119835187071012965073813573228360156110477494406809848815675621983900904222646299140306345120956151874863253481663553484849173561904923028186161398707721487986761346326106384059383691133245132872794169794245717977667621826255589142829229922060099022812821645043885661164045858698426873156691506334427865574331154221625516050630064140322502199920910621167969868960278323686735606298227301880070485429204319661974173170986421229503353393385288966293852118868224299234268221363682139370134160112684274622119749663195286478639326396048547140347409539203315592823120950854410929597064873965148812413242006590642051215801286171717930844453325691734294735976440665417649013745260986984799396611343530145639772725574697977213971604512648809462068383608385388503185104384279108577280316452704348628199845909412138809116584022079244819463890600462094986152806616638491425423807768503149135855312353196605240474639559358663805211787775108959996772901692078332139291317753470771242798224204473865775345627632781119728355117361215507013809104545211800520560202218020753228312329654424089795758620510275065959425746754885674498698613569842415794940780076387954812909839284423978661561419923258445692698066133314602082914691392819744120223267443903275293133980310191086411581932739777331255388416931112356945296514535986987918512438211256268670817885892372770006671779996781208151871352585944990591105352551258196415700442973233962909272895655829932928525981339389940017275821463860217030558610442273129333036660207569913803035183004998765439738983887444599448229192843178902769075956733480051869048266810771204988073915537879990661601414024173448740807217668860387966598512910286548710395178479685210754074915977655949834553476282381684346864450397287887163231668013052571974737911059904783250374261343553385724637276424472869516642598736060632099506644695783831583515937515948112436473318623046942698770095488725461973344530037281345415162610427580325195854732535918802363943174846505657636669958253398407328293510109690695440820397652059025838780697237913052698585032090390241152719574414596011163111845940930154425823184942654743679861808695669215557223615042723221764406921569259675875251928694680330590422790315779944450717840758522218528252095572862967515120659217840233433850455105871042285279722654202370060225105097540637056637572989700388437834265202868110129700246819503910628912173870345829797121906902167696608408676751794590536358499217279865380646309654896759204000236056658382617191002203431531241602015519500058067812885031177764529148328517791725736567882037618400632152377960510789200102213836709288857366325393974307677938570511886366577654771559971581246089429754832428750800454519945800111253253643977974642447869814978209200754031001075547911257031378060912065207018381611898683497693694904313833010030129206574821227848581810893011088027134514206595097458140863083791942161765960333014902791339915144702834687515772992083732167170382916399888891583343179322759549869267908208277867405766211581392149709585309351848473698001966312132939997595504040508692924984275211341678530219855700120076384133485094113335253912689477331605568660401106322987093744665998085811469258725926599292614020142989951622522186606852365981599032614307129121981373019609765907182404708996109319099784130375008748167886785564937898187474123733752452576531711477443607774370398105216437942145719778241085617715210945169210175048343428814039601309434219221282931919117797014607443702495749605815906599636474997622319560754705382032441632093117350390441418029415769216561702095075555493394059822793241136945838711038775439526040672934370150248776733182172014869727875431269531136385420725594730155895890137668370458810610187078485652868870114591530222222899392737150461200703896761863685828118383537231935012261888509733066900812883350577904717456715157517866051668691792583431744894836129440542339496728931771505779133187670927776454673115623257996514350012261690616276905487415077504439082206097587575426931953724238352109833234103851785836430491669322112672178150731152924128722802725335988358869471367126450046775732113269695857955388527345695256627140571907981622428345633643883091245883553182707454573555836007540523264012342414955412079101990664414698645663833816376753124648052463295265392544852321011324018716886358652353142784125450466763725308486119542912238004762695359142324351699558331391165161969738541540924701623008321448843611445068411076694694955986442465304821827012854821964439889716568438290267851191176372605116950583070711428995715193488328846228163615802430018687055260705916848847718541354112695902166112388076472108357498964669486689694837298396891115200524430874705360881115833832403482798560820607692643741878891855406765526592007430900739009706709729698758750670664985716153666115943926935868369456441228558262534702916394199396831610572173621996716722505284021589863671863638780640729624869578265073517706957600951374324605633553397702741109343616862219455704732646937007892409420223783031299726903778935256389277852342415473927160740992717578591115453410823158978346513613543602609404867418714875583610313428712639220947016115822671235051678054867159832167528991276001766446999975846031962676807047502541435289134253726723618180830715014595951360800930707385602065562788290751018316312848102096345016505648858315869620522223224984522579313265888574200891716089322493785865407915389911183031294068209651555640595964739166295186738547431132442243658576549647835387460461033131890243897514555976142289413361199378115919625006603725919196398352939798417169111488382112709401949791072463325447714083746622293316882848669504030995630557474150532476569132917569242796165536745963246186416055344794302537263303007522274974846114948081227989123967017888736288362209722150753463142423461188699115960349809296279990507938119565739585299709398473752521583248920656593445720320494164928377649864872420673686214343075000751926132422690932722136170773773028585479517819950420408083448397424006843758733815880843906182232056625404708849343207517681589149175649759445859986223084539490664199017710423320413032262785009794975815999532138672075846667824937539947081875296296959276222790642501476613088473925644300651579455842745802169405495311297286396238350113556040885168446807721296313657045577901617665524924026585804066081893165041836748764939712390951296268684208218828188938827673321817797959847753468749124864668191141928359832727262079323673415163137610713339396513181483809065593699452025031193369645868881821699674472943350163632893692679845052455146803973022372084082499079625603067174611889398154237092650640261398543661460329882587522629048961402219792329136585094500641139812488268361666838420453677164771810000831872434295589364333813552902636477042356214065558232750501676491642203761876787859203588754705462572914334442555715829135719448530297449652701541910450368780369663645087379014418507039445558087400641191392561389176389414252769853300371412177947883151748552273670141818950933452841416834079312374842178687707484558159430588848256051621027061339215820792928775620217620242539340194841732025764940976226377545189523714601435533576903177783945400707213245467586099867720203899534658064128057221335197708812345974038157756170615398210331115789236688369042927138749841679151975712590925285492707604640711802877819400812424645048288690369771204088889879361242502229293479007853778205778410195894955121348180467757144299048772123578754917999841955160750482603002529518353561013422548483824817287152364375936952411390767120863642471366311842567366641008055279887070815205048706687294786303033173390054381729698195076135620645539212900876830555377778232201920560752154449403092197072576219823489421826472254732434905481506242887524264970041342093832108452455351825601363410939545257467829600149212900084582901856894777019702401908312727812629792680596946079133931652009998254575074500233376215774253759874473850680247759857427934046345011845469478107710272375794500787614826055099727101232296762324379688211355381279962053915545238285801361227212695338731531480154777957142666567360543252933144711512243928591691347595190343776541198295571749188089636129565468671529068721921779520334760814275671136991969590567777829798592530460961415473032853352462610942583209172579451118905038308315225935720063788017848886976537063355078393684467963992157204773907382883520553316348703230943351925950245203895535372049128033800483459099124276403829416752846520498782338275928674758713203952513144368955157030144792576594063858738090118096780206623644364354638351247081185436343595450611014034479581553544023659880373217432136146578437220784020515849486928877717573128410279943170582428636013944315091847502161668721168144619550967436455566146402296542232254308663383836038978617767943744978797800451655450840773865018104543171717040867324292620087794110751873628644928003254358709492610131871800906759267733547059302652632117045786874021833626932826390043417796791678311257738686505345059121718137847221951947251723153455009586355677637725330889890238291789138581861549908878452805593299800155414257475560708566330750850493429049332877587819472865862749666665224933547189060271903987330732994526081177064875568195185692149932648275274416622449653685269446396855860697092443036246052124660870680724885771268546705686119970492343319836710539752647212320353185211131137619712961185470800292940133314537559973228907721486670153443134633071805090508464653324487470739083500280266680401644320518898645549035666535607859836861165626363638931675344070617874217671350744293115349803193819044718942032180409554102565308118079030311821046918853886533708942377580173568829367448539396964622142618189888893050878377683783872968376023235349754101378891653387097944731075147863699003115113566428893560926666853332849274540814961810016580845739332544456892806235363109559507945656793484450764207965950950527246003539446528510846574553422916561129004222438314021522822742151060156357564894068238226724890958262221292395558959080093060742973581898266348380485686426404961808845684957857346130892923918221260985388602385092268091600589230599412595899731132548374057092793309644681044912597904707287895112211511402686239619569216607839084573980295072084393007334476494045946287395765393128623387455674844052764681757549656466404357835780165550286407237357597391319275055339079598006865081280599905622427562417671388147009252620873900201354193146056783587605244967498858852382259720646043181007136195848540166822395339164389305442591220395362036038973541758233303153641343990378909939470977690851196964905345512324220189944744967790935776597739497838684082503159681623966482371442505062939247540761112844230148720793079907878379621475298356148229283157844993051902001247261958451348265621587663090505225554177679169708885863045517401134211286191603934449501368969765148912967579343239400903782122757274130572763302686141396077167237805032371476533862861134106484925008937383865345772685127291847862414779489494336322395647879049399481911220350070424252373835479654622259969028762292915456716364826745784141809854716464433573311524693038194481535712032563667486802559008111193890683068188838595993058613912579329853736782890916697879935831312532631334838090217805290584454295599495381233578289875629337907608450110417135254232390238305198701319070003385709117574237032436116160078895852645859642205301162882076147285874947556352174776030390192328514289950263003839439733568152715145537247847687603442792895783433554988595063704013036792324712421986718018838862122781439265627240688229385910378703971046843850539742039964408828716119364556550046125016640642542696810489189670293297628718976604079309010963639165028452905048708311841388508649541539322997512789136162136798106911116870734407044844138367490354000221993081584517938585608272066014475868817667165557331268975072210657774552819243818768172503786741331873321754433034839847675217733356987621310152207890777410067546398641208562400087289811165905411594979547810012582007764249033725777408646673696701532073265703759317180615533706947231776414869435450216184501314504847832353980441830739105454320822195761032066611651689926799723200103499631559379460714176219246562667201034337639347055316624918191259663049425935973168811215812015312162000336216954052619883435462719564316011114959020970927197572259745720599253095477997451767822756673446157495608115209740563944151509648079322396479956378110111208032445819409522482129156181071674982670536538482067543559891754951788505163811035689674946963367534235136369409549459786519469627468504484282682384816261257945811577949859753271159279800808814528365098841006886994242248948141961583919122784038217348304774258558196207509556948360543791796621253974469512517880027161054167590612694978430996864465094271899291293543323885853647163123476071142731838155402663527507503342245053288377884427837933336381073676844467241250670131627525401786528095425655642219911539832436290475772327532905098296762542421612597316962464297663715102097763956106509799384675570330237387444257144384177701630057799704989457267544310640126781838530312097642873937532314403321803706980540066839759006900218651575791452883574213584117271118114807666404074564738690045534945585742487038430200387618487233172603565139188431471924161226951692034390683410885602171958399965081860182599402669560239368726955554440867104219286595477253247832426903304782811458192748794327229281130682507180164479284041829864933305355645770154856275634203655833517747633633424286161663262292943234527413464237428014777105043880999758471729290575452979877921348623603433395244975121981483489270079298687432990586604021435884100114262738500390631304753088428242007473511002708722018739379336623851740553377707325892206761540217964734343856455882079012026777218594074272034799917358672158242643719635847778373116163895701288598373354374837177742144127777145075826693560447587488488982617096367076384897479906816692400989777093009061804695201883629166533508637374556788717109773410012434255098482533919604084649622230746087462014097632299426830924694970075186237574790129718335188423564766181944878551669381008363670706427533709171514277700566975673944569990548079011705753180894377756329118873994050233149390867802771042534616487787137704506691948786188874799522739207483466380249827395248322861390483653660031123950555494354330307810153171908278722717562520374836151223028751356696375122736916857893885009218465597753662879118006772317002588108719970113184317427985448585578622938317647008366993524529579127595536967127117941131718682896371767915023275106769003684978237032991475916078306944634356836089673906163909719007118967091585613701956182406541542586024844479305457437317793593059343721081185189434131890881248911083822292529904483495329267361751888930180884380930419149944662275336369204945649104666756755423133776813385195221602837003368315037400680476592254151302909178526794780831555343634338995950407309653517957520307551024940142409493560127903676966318192228612153102511832897748583755725125899004016327491907444340248563930332593993070885312800765426263261006283051771772744573800168653668166358840804335421683388293918257186889930808786387613986872747515970394309299778192713504633347302530448869983614454920003003707380446399732367182475312405135811992684004784916326479787082850324742053843479375172369358760508341592967098376070230598025916671765981466765307191682006573234993458328566483878914709553436106425725589859178056864174985166041982376620270581313290552851042748850251934031975228713152557492529099209878948979678242602334927397821685909437675992435103910106613262401953353934662843833913520432753081916265471954892931402762443664560410955887207625765077395204337942339606108141084761593968227609387930074292585627346683171736530697523295781896115280879687376112354497483857796494560958075567727359965598819286757420053597310690861712548664479602275456710768577040115260386559592869768991307328341494224041681935356139919028814713451960912916738002762463900421932159262736398517630605534582148595478137546214068982569175929159910310989520718539446895742695556244945734383968279735552471400431470240665343548520119289998918242237499176482783756628182810850703772978182042242959201512987189619682612073990832298730578088103299932593838034496181964425850953175972473894425722906196502625152651915923578491077918280267619696732288657564231035607879789821370869887676659290545438269934725858850535868228128073666032155286432915034983999328671807592107009007893066374796996186174495441278114615597162353655406388158721548398364136830036651710862192804712335994025581370997049690126297643809994325227214133277160090088775865589731122320619946578383093103473783252028253029259110610020580999217138542299504924333947339764799688855919949503939920669914316331974833722133321554760106684104836627448504995445253117646326679948094011292728450227522546948108821502828987827485897301105794242505782519469901139304655689342418399926455335439518159564072558496257189221074611201485811096456177296960807044911948395702226376323217595814520845174466470031711417517393791154952773899953736368525140944206812426926534035524097571497090994750907683971733361263703753962283162853309078660740365888420164236961588275879936956895939694810756843681262614715920793151982380631320380360292065749122411547668414578301937944819733272632345760849472921230968784655721101312811124577574772655016536254775392688856612848216160285031208689045974970090724460492724531634911538518516248719048445686442811225661663689990007986131007733401639733760610704743897669602480098815559501614143268227423767709104685155420338399700399076393355878640917059409290044391454882442346309696270825672972486895389081423570640844827864669935180439459607884210574358124266766810141788077998159894279740521000767280084768525195998575937687108385053658177420489417432724927721700188166652297107170928802724493514652771810951336248330876762921197837278950884431930685249483532924214189143484081981302442640941964501812857599601291774660585304135245393745063521635848969681653273659605860789342688540945481167661210140320241767624572353174043636917824983152860158372911431422671831172880502965828091104580100908470259896967114116279998072998024272159436646919018048194843822251904594368658257072814695960312879915799766662311761387351302293800666228809205672240622294224609128183587782748804220491494659639145764684075107719152433361031372815654190301322277467094947480279544738593736965051156277730573009804769382851483476178422551624355955758621098981595344902436686213311096244831270512064942653386079038974597012997810202458526560254521892366128584813254296776805533121798768651097565314852910022898846066534367593120037016375897402322563440230519858931427352003852034760056035819055963790116311030123967848482540384117621463742826649542895485607010591778494234300078802777700518991340638363386030276795110090097409255113216296513211085438459166885790967072130128393143649479309607246924580540054568518871253993206469363972618334360215331836344335594452564550952048130644749720855641740352462251880265347239753792330962181417010937189166400079461517368395576721294746639754752276403247062679919817700947842776323734807855797482952879498226810972982524258732986222453369832132432549521204925757609593586669061255426766266218977627446575240255871613202196030504205787297111998694629150853538690769257414703061725116480190328523205439600189565625290908194865023236325419331620025186951929167147783794322489841932440882634623664908201213252832442439906900291943532961394616786463913382868770389375638940130248516632591967950682037461145849463315442800140379516273681981412837092171973652125178030185007118822916121061511460339398479816295865901422741146268366101684535049820605143356653285763860689114756084892262536790720187484140813421630975449876723575350399553544271950586468585242030435368660343617814279168177875874531712974729579150662122617825133593305033333795300771355394874752217557376989835089165168173436011043446242193240139949958565449740016181075504440456914092891552292624598374591529599719384739001565966780377818013459865354757527818951615778679232225541202044250712161585155752899207129755480856083711623082102435113359610632329904298350278596871732366922964614189939118284353245279821393720890385947210594827510833988217384167640290198305762580405098284873726256539744932630987129548967075067022596334110307674780691910885323321746119773223109386868191846542381642742425741797873576456087961120246968703235585180646038152636727185273218419867811394936746293366088807594268730022049069178233237796340930567737366228746381754358932284022659312451321663441081138155005518481072271441881289508835498136492423818548452379494913494185310439202322152821389382623829941101416312868736320184263088558694302053915234931218208751836567953456515486198006573777089010705636501030205383938213497830456346571744254575787337333730164787994079833811614025931875258632250164657451718430978638125858676472156267673245428111288044869280607669672281054280049073464580700589315858714754812258249113572059617518572568476180858191734484042879122380758602663144642662257244597152490371170725051305131338136153475890464450348584935363951188770828669325873982254811607691401344240785448669087371565982867327575269561566681450211675947543303076302468338151091662844828468060958496231554588008906232433699906538044991301228049249405837522689096467697326232532958545482130982959185029195868447292055177031700539221509948293071425674814732691629788962693928329721525063080303866212461931154929730843598644402969519051736997575426575396175316095058955157604009137565938496722289783633574096340350396361748105239813246996039797783791565973761123056172955563891969735201078682533686158904557697488408201770574361802660161387444079489034582703133090367339307231364203302251559382366061443040431160227611000981633099425411716655890744354789218818150173500729326604112061245460963074558731332888210700844537611635895571341912829075370055283211399023832822494847105752374429604001290604924230570720062594547984310854310682957482223314418614439732565717550843165381318101295910999574824272212800986477129535363326416633477227897692487577299451510370012726110530614740464302103456078609451899062936932421735769316468580819502391349016377603009411919562863954218439326301639064502432088183679839995613170440889487473184369539557623901468247465406263169368549653006983601636526089860707994166444311313533019831679131401478895064003898443350894890728986231746455883893404691489984550732868391615875294245699081473859908002051666306496797806899329796600825068045605080128505868124827651236549158907805566626331620559870579019420308357829010526634765876771803514823945364916102241870867504325943648851603448228316942571775127734730703168051081387632644272335556193723220188318568083055805869128242537971287615395977763647874146666643553198429176527161846884969125036875188960895078495581883155630674440272597888564121275681959981822613201528669980927484275852090680204195559860639353453729770169078925531523059267643117046733426559744231500882248428266581813656754128246531533587436934743946993296787716690441662170441056230242550070298491363175544473162927016089240826897516644032834091654624002180565338762848541590253217692578238855727552942265315967194899066924381926125157844518295751040849694437378503667749824866974036913374176663745017723361070426994299113368063733014972202025230258236023966985705496009307270444879548607854789175438930554066350689694309459902372215907709883941141590505172885588122950972651459236246938807022179970236586581541729182942283682916207334650211457781744465382309100362915699888539199977217654596596884846981640637461621897803313272183160978526024654985147252311329707462603584497209189367425845317747538695350498015750910330383791015938798945784952590774383898117594475419499868852867818411807219441326867715267356977319323412549079420894478647840796992551853283184751585570677338612516891152122898435359897876757032780187117447739283388331783010366353780453748768829264435668312508732778296157587539475247920999967940316072298186415616301837927538187036397722765566353787506113556832478293828919896680831151820390414379594599886581356348180783631927748629681338780812872871315816114795064016019000663940472543297376173763482015544492740370401623798876924015531919851642416834266885392173093598613227198567126726618800167774883682492920636539268904175108487859422854236237295713543619906726589430392737573105193496003048118262142912915250146594686208836683862658205476160807416559512702242080540843257752460265410359619644763727926824787966671204363671829305720249983992457512884842098252184521837706044799352311280964039321624021963150812021603563545466775974839062744287839801223244449608736424590556029294562839144473646110415399628842030985417388822991235589344871660375966912442607016857904089578001784864715464686125024938509513237012152105695186803451869038707296178966603157315071724977413554626221760097700586739517370112192658073797904650307278546347296920317249123257051602841242474999232945445171254610806027725738301910179486566286300804405772503355948649492666576258114331944816837478181120902880697250921752119880656676443555353468483888606634632670500301208502743904986782489057083525464614409042845428400246329781984283014103690002475857376739009003242513519967218902068769864128949460118430363539693814877730293412590391000869654720114401076273020725511790331491912334810996952064219505336050643931416483387459270357954312984835795948197760160927470453788504889218786935986983875108625454454496188667669895102101010327284193334649392442212240758134990222507067449794924292560656576907121424783238534262205292258747367279586306918164793475379350743914203871226605449752834601961892653856534985685398454373085155292711745747324838391736191889024109072580539712631313497453869075932845788207896680811904660021263153491878434051956510070569686711719092923248930297309048729225704995825822157316391732361280406779917122425826738949286583491355861580837501967067087750354605448979388798021698637704388720503499426303920006390923275564612076256286946605678529284638778174174158563283091995580466941636045373602583521887373594533100901251564042721786295738487884978860529243432706827436107954028173164419047135373051956056001015432884066554513134397503956466019680410159856874263907402007487902191942500446677341502247576811031080063441837054157263858566303148310190065791142296639142141745363901121577535254432118418782116883855165349620726632463565520679170678223759811343890696294824209797586394274464129591627703798904292518680747067968072319425687756105750227888070301757725052535640072334842183052504176721624295846297642257445619117449384794472178107486341010348015363301723683572252152704779972036356742111473068346710972482936231612866956462308103515652230243376201664702617177575218532484730661551876271244435529482535766554563573695000068596910042757161411068169951747037803871269778898511341491701838127919103846930057930607930289774321186185711362876761775904418504284006460316676613031932150226305245668947469199857096739793255252492239892346008907757461426550457085491719334538688104833351446937805803196440337358913918803262592950788462581253986772438508537848595509929201299939384945258113608677616323302832298719159555864061703898195027440587197162674954221029374657724739565421036727090064717434211819541836595547534219038909445883067474090678045509122324327050592252344169240762058329884740000442769643385886353393614990700216568661158665112197727693030973301122315724305329838660161947887896645315423013449281538050413724495673138223407438866220405043065929672690893076392772138253440280099670870055015386435854937120843344348402722229032035069826103520728822929279019291196333163537883021318868144551888406494664095331633968398403156018288970237196952878684456211735389810414482620653590840770766053307151906076182767160039143364752786396985788655080042273662069082952350393145405792224686388723183050674999353839913491243515775329781564511795273864404201318085825738090407369556910625929669495767865915543414143746476097045083007009912595823701223650116241493818356341795660494589274927319266380986733457393523192043010904028071094219861026338434346773075066554857813105121455184861150485163976365404815189178746359618834726039277688069727944683420043646031357877069584439226386643361216339462082979905295947899862574357663278905168745254243651361808299043329820198785822690848802782297389954782211813839799138950164803785061711680371429193418226608824396128115904370665882749980237472342598451269599812609522062129363199614816624888059477937622428266586227169984851667055253196586586251357241553999493061862964085676775300407144301156956999510169605553667640669556299036636688254067811547257655784124992942846550367306802657497548937480737433655994147571388444676764161535793652567882462762836720520769153727646190798348495464941012749397860636938989963755185126937746321365634280852029031077957665663842838786120081792420921587846031426442480435424553948969671280042540956007239872039052718081173931682967490567820290770979821743526958317012783075310602143927559790882900954610414518394345628116680519461607797648680137447208507407733629108489866831764946244742951157556564472899698881955926368041240706714980007229350874192470523394077217917305855378035866678224048783743402257139478029027965533281112648878421228332158903880108715963650210678593718363532833077965856296715299333513907202208005023574300869489599158620505507444490759654557480716323278705503903546057220433858199098070872052630974376762220759824161154310821816691630770238048943691013212265557380602846087036717837899976935818376800824214138955883667598204862780539106597165306189988047515437441579464655731477892641821842440497656808013476222301901812870937570491540173804669880875356790707813030793447203579250902557862439495192172874766765631568087547585005161059265205157476939196420930078973180573565202712506342133833585782901351888663568946263406923495863756385855106698521330602462618926525396738122171287412660949245341781136286395978467164859532651738848549714499420616397187087069253994674545112680501460206259444636207961098966529758430208194472141790744886460161999481035329076979367414876247541738151270550709981159413942678490254027395187983190229874882768629235745102821083177681032649172370526197961783441729921917451065944411274576423424903138241001306089027793824873919390500596479228232620639591745995162511759483925701101035840927182910749069822296139091050893981666316219139101058693827764278125792711853139551998004269047121336671347748943764723337512251714429997458538856244902625946391437946382545926128825852948287902061542537101149070793890338242288982359831867377677520188037684936299113813072336697900271897626347804813425257913641486444618051926810553275572356318272642065466217649344216719618815020347314788868746576175448956360101038627412449247200323035741594668620321882508160916244187120988552332547910182250034841142103559364408714116688820067128849256416221417297657852658602722195085991961560560731201015455918881432198140632473284861427420424572814468358089612842462209746995230144792678288083922530955118971750108061482335306003913324515879646266630619977548832967279536301757863800313377747477418486856075989847372095940272355502892204899050358820552061109973730715331044443449428142624048559938084551493284667143854898331286492096932717812711155310115622031104406858303859758270478075256179233832276552054946531776366325171851929246398808287642089710960447270805868588376848841719434022711624587986713066025561136696237840121796043336529078714883364838777905479393505740628712274230655962193414826947543839088325669072756926128945427629411643401206523046012601323058810795099489760890312911287511691707899241000352511556874463821704210683465020196499020272027417810550718962272008398026373901125718101320513601943684587283414217808784826614427252422908866972774906008883877621767606870296371137779942669556943520927772646117214666084317111054507396097552594353741399060390347756712872191175721851772705846206672570128945749090959186381691638942247309057410313592665015486318077629530318753599121651236679722794354382355575553094025508702630898873080719615843357776209543395609893658349156155714994411102075956585076547823989629183967589908819625420021219221649042850495484047711614624462221687993179814821826150133170881344113582745060547186174909804274860476355270039109895505746133389125775542473171075420631683283029918371843456326790971140280916073771954648190555034575892936135472401658878783248248502898350697265616886114942406193163177591680636840298964659855102757622268188675163991249868604075550301395954585676273250145793846809927351990244107404473110083264817974296694206706021389718053468419436979905278942400643501374888780389990624330821072293199951943788878875818699183535748992931587300162243604430970895363701038437203198999788812913758136407392112727847942159086795036476357955859211958345644381444127001023752744005725150804373853076989160851015426611832190603297988052104455055007576888334505326535533305562836113664662790460342635886567628516927275619109732245682433981553127017711777776794100409860410927514464435730075068583903684608412915151062021920571406834142514522082779688636389695561488299454213565197899973227342765543270650228311085131448375750892796925056316981437909508317088105614714774736116289906386908107960747294825287594964356876003932247967031371737316073374047589973927960314808350343125079611959583006292152486739293140562366693578527281591570863481062639997193851993778124216053298302312743267273833487027401171593005389592448697925485184583838271939660990617633738837420403171332916576433250373629710706787352243018139086394694937722859781472794374371505821740542462265806449094095917241246705361143746403888126706468085223325348896240004854342527523738701181576749324937522131020262638604699569362105014189957209243974807415337006891246933046648245171263548071987757389580063960453683565561032482743833310813241666336591934849476165854398671898353145505689380150429739166411342163933865018335973819174808957206087605969801654238161657078113773441299317590882263785194154506967347549737736317842400418292329310209127435038101314863185567510974458352690107908369539359016642776726628336085788452787832977860872121066476423981780923259881708162755928531100965776144307456607521435517377465347770529023691071966251322056381532085594777784444968151187936429313210748528645243322114193441163717816555426710573532603661579519976313708490752665698912647025751021977390639738243715398130593944519519675165346457490346554776858325014836331718183541605778982520759660025913443720344936567846791338045154400673474839459068074121529475528394721970894320431963221882637327597814773999810930273755324697055764550504817834048154875015951067401095053457299142101773590583104012229406415819331382767705655376411495300708227567830977628140059738429607905616919566488812473432600782566770640741108259029127159220966513156335135649340592253027025017404969892953543146334077442599016783948518018944423512202227334342079941655818085290778056996530965249808266520237435100657943076458375052226828813733414335370130155792581993625341183907141298636594822294263371072919054351906864774319982364542822380533709017125334739270061654025347810204693029306289960903087059897545240597369886772066802289419399715939462257872706740021221386347814082717797237613564792926984332669164981847086410152508232253610779930187654401051622364768052423950285357306932849322707987531340400298682894673787807762977859978677846059454118943025192509047296073788297418181481868242215541689527920648302388588560983054182980330155141553291094072336019912821706598350897800666642164916900972496854322971448823438193011132375151298778784467429625553399616108956523335718177340921922247453057115328974932595894155850131215300626806662523757935193778508476542020293318716792066501620766858916463227306207781678784597387349616061307265135805700519420554385237539348016895173703093620816531518459723856849452152707805321106506086372069533412311195919454814250935207563942716001535642022278765167398185729343451011896550442021576181096608441156935102371953416375727775769228515574728313014741578787783757367708783238033822982124479475928213838782521888230515387830699807816081961091919414107137288115839578617225890543846466615287310994062864226099811883133807558823239455877255320044531389310963569371970117371119729011480568896974603135743237943190571696696987069289709293224056513205915189259530663179745465102467494300164095908096309720316632783096527587861661469089737416087017394997533955619340383129611853537086213333343816491224353773386124276814373815041976247802226835360127075247329791980776573673863611778877928058401855379190865436802634495297399628884579261532009837159159674032806493367855651364798412401259288219847658576671823747707387173272479472589338239510381272117852688025165773832227808538277710254068694767415035166862067520113721374105074489473044715538690325544369349502729312330660240839198732982072716993296385227702098141909898525326388854983609183496558657734047317128681839878118110779233675587873431554105460634151676312152937276355887469498532931406231310826976932053919775904415553194595680630663984159599682999175491952796339863077697212177975706692382224592805166114470026963539017609652449162269269321124178152048882778015449590920428063245434659872406874869238750796651216836778599879078152406287760557557163572221312668970693555326087651142805300365603470061613692578889817937966252437992103961742949728262274972704465427582514099096014695658205832039829518448565306872022719547675216677627451565238406364024892199125250058379971664035261781354866825043670790880671673515498518254900501724565561663354542484591048317420756051847822262203896496139944444333491941133740208344683245878082527520724195829967914230130751695703180847662825106764622624480210398656349841389526288895668201031026661617100497365823768001142649018678576833693979126249908562952813715569509953330452070985941144333069336395780309182223911520877299682680409050084074714517514746848966283562542994795606966647841266047647986821705563258489665873762389941346464049548857166550141550862156099917855584664133785552706901886440728331690653915267052982571124062249803159819027334339081198867926040005827041498657255460184157378135185249847067436406459325973295687627359230911752118187169884820992514696247422117367639523293604754220537242912569552625304820205826180070758825558816371262631746869374478519664958703012536833929677648362654314496436873372035305316282225337666713963696649291451130053560992123606758226051245738124318752708426475109845137155342260143482288470892719977452263014887419996782270423928295803754874273565479882409092025621214825596446622907159910481671695823464187671957168594529044997560337006928132826022129906432511994656446649342772969942874084754232340541813754846912598036415513329548000318544527412127649077698519474218846106944666305135634623427627013355692879870506006864639463655361835968372635515015875961273814741462970297422188791098597790517699420244981698017758817500446681536065316087193578930408810842542602289363627235120188401705008159242353209540168699105792904559133263644176134106398017426213862035771335279927535266293749697130149726664349912181195574535125419770554981885273782102811207543922015383085639442692695291044661699907152748834055089387480156794969373512209075665122624303663014862466282068910227266180209898410178549213012794042439304958282602670297680588878596055457062216682719404825057269351634457426688691157983800207225396483345315572808388669207158110179726756320896066617660025293785278028517677342406109937493156462270258663964279775066899571100729976923983122924680287501338672906212370023906515798248140456388702399387739970393358788013433603827380391281360112101809168895762141037070810598458573900373820412719888574788976361187239491688529869903712759717850264986191992342163687517792387123507907382814015347325064731248165565414511197524597332533892343770676874701077309154371395270291492223809279161889140363579933553553406356277622226116086411604446664488018218314801570625622583844660111476468657964888151036793086406821456179317650602524449314919002579477707338313408246695722948878191816922499470767153547730943443101824396432394302934092614777665362401410472881727294520594240294486438445602826449228174363374507106070743690383420711325831899202759992359298021556768265374094818812171792773003501823657484937359492951017721356960299629693011261878315666492921617703100318603539482860711391584822232863738740768928965210602955715868049274460963037470373166904526176179719902496062244867762588448699530771482216155230498185135327174151427908518396182234353784223002215923338259758036931859477385778342850808683583306077704575170223423299505840257236746896819724549322042184037760536040249821410929108599011317912844597539705867037950016599737333635484523150207754143403808126528377884222885873374075489558311701284363147001617761035429680915180861615512885457884479765783513630233551138511547703527544496909070048070871286449659120637169014443718119076259981664585654683984116799854366508816752909871067506430787788829035193888752474082802006827259859640623731001859245911014249197701979539815750035068131666670122187551961377730968744521896238546151873494370426973646814829517356005563266982714312449675639178922090525413855733336617063830683491086679197362027612634187513552199725458751292822591493136657897192430297573302522277562306246051923850649497233192717023839319851929976510975543979148972288189433917862369328775576781136045663160644350105297911373431483571894996646576664095070789942619631864033164313645486055389168821636222113927277652231531471955801363986351002411730121018994121039526459510423081329002181273644067294710179711929558772275269913831943421705603825566134341551264542139595735403496794487305033875163258261978453395533495281827470024630457357154823812374545862814335499655677789314113970337041274258787623454948889030406806980591827877942415663154724186266671027670420172810953433038154629448533966340727379799977942285049371535863796048856083421710899364241665228571857609637755284393803580230689534997990823335607994815921290330977768364717639223930287953217064003061937086905215756776779794678314447596760014180438196439209206987709943774572614412555131575463407487454014063897420301861225445616635461599261050638276657587141227043378966945885622193747463871525372835685389643200596183054654192700323460097994579397070346977139589311192238994693098453127022675274376694909279195155415301912544404538630773884958581389288017157766337795976528952352945345406659431104966407837714560499079490747896682079346731806581076727835410224411284923560277193413384742401764638788549153053642104970729662704528913578160121131681771916704224014685843040507821287756177553789899487952191141322595420692418677960198590581197859170972757696736762945622343810499285835413497392752074946095893973044776281922747126379700230409569541649684738402456396462069205556942978358845073696560102134793318229665259007668587859940165708178448931327968408208209334940577105375016459330996891755612552924874525397805070753986204448142269564812587582808680758998469633024502153692702716367722584082618784040271026818276047584121010159106472591353166977059991388932007234051033715697112372605067345898946212175068975611860450860281728233489146970975612234227523451774244101316792626990580505424685485054856985610941851164412489301802852200603518340709430874410748155970017369394819403552909014324392713563736733788326189215175458963158643719190872702299761343349300950004175251308975053013599263595069437398954504910358636738320898930750209385961343217676782277711064229475727933435108516618147563811314245791186911221520473700455954299336854906080105861690741816163054919640748043891500882134243812755607733213997919209027969368314454370356509426159174729135274085502395727497131528772730780116126608075510272273215234575919476532388372017890490082111925313985008874838954872034436666163067739935342310545008707705710983152280317398497309427042008794143900589188589232541424403819650121608521657643657571228540301908368706516291916866109005216284680774060164703293465980993214853093222572778264186472905749807318531214221749543530876972565157836128929554836611430954670508469859831975198030010631732854848645402380671428049035787011424966731816580129150969167542162196637147924914548711631765141762673808633476353925578075644323191526481530307969414828959765215944165852005497495998773776126145847945915238768634353093081050763240946729771958422241478177203358862672423491548199982912642981533979454712508006432118951667634229282617354352560944489443456340347843448597623870010994432290681073675579919264011892747872290566324261352443418564278114045433803506868641130710786305646315575707556174338223301790894342619855481183439543258536620820839679711859714909708571912285774945885129465438793008015169529043214397946880086858401446228447953982918643699204778258889495380803715724793485973633536666296133804221099905642796133326951950348189594246754364711727930885826757617352908414231680080857884342319220959653230413906965655746187024379441786297454476000558374604012436316388928841392747257405912930491198000835736493445168182805290444070976765039740294065534056565192447285374401532813869216956563128195554812478732079905959785703884550013912914608129873985385781602714045473993391990710855287867561391993911668980222997469485703166871770446449095806809129953184701709497835860091883039026688889706668730230695556592116707517620322850538669614620607510494847696202614249843610786040960612951461383872605624619605063430104113834544245184059861740915827269492573535222915704130519086471497535396542127319346014096423978949647975941254401713509336388401633005504414842283403805972094828460835745772541116586411592571573779178301698841378268075610418961921870375477172621529772688268505145879092649385070911625443859158374300033855102043578906645115363688918755857376134023959820825742446213509459885783746880154995499285034769394689194463514999459754646115521228278543243691117500985852018914516245064961202129668456566692039297178637381557208936335982206601844595714898474093635861148137790321475019896881826357869489020475241998327875757419594375243470993771946621417487705136692864169086787528159060758689868161044782463542367586091549389826326536015718719172317971019071756895701924351837206192718311832210515443426436388632314942374401926560939423441933813937911523462302572957065363554132458224756140934994020945947758913180633708718207759062445655419293020091649552236085385734066581137147797030908215910664881634258507312611520319608695324046771477506401756274246995114807840976093600994406585360504059355995959928953016047819117890606593068943621554069878732379015356147327987944221066692975019968360934586867080516844654698742777478026470010128104587828402955598408059269541638423424432119504565220943358351741862582820892361422225122253369396325575233945978236581329340779466883216455334489342778862841131785560314463933601103213272645519805605094222814518430264046309598368394084205099321878144289445614181511648072367341507644253806604944066770170966352453974246646094457477105843201814121451414024242923596734515976495981193891261737605704924914660712162175253248513051988383038888047986144270510924832331066545326076813115658194000257021461821078889823111733170907711196255822773444401023347141311223947669069539718839288154064843294811084453847192343645384690083748032914279704918522372418179835639471526958099042984506184849173011898329301341821649781167770995575883210033800058263492742758057901595607588667924784351524640173273648343273856578526158486360321789083185295436328807914943926254429617939750496659148188578421559308282890075746712461360645309649377781094243535710060722851267593079492180543972779346861181554727148744736428309704585153772981051791434240068889195067699329931760950122286089777623523098155719575346522771372599797974430208797710977038112580144536448265909472737914117610698842943649655653894559072448584134922470662789068215892109946574032869570860705378733981819579995605753337931895686923849964542667341730327984175658093858335052115059996620160385663437540408553141325651146483032644572306636826903009680795877248088356674865829771852926948620429948978650664658277972029884774255295878883336115683320688877126009045834022147165085087751731208106934143876712497318410784633680058155964273539902909987119438926108396939946383968352733650238817265806605692887559497381115628373688081106322823445743464733153714952424921975234536436286335255148027808802355272776528633884934441392106763229349450389377939728831605125654647121561505466885228776479231244410063790272863206988214341136256398391277112282023858623339656993979467960030457249409909247642200529425828867746520175271060937834576688542854044388988086172420532769364689050241991053568553163503751409635414516623470610583883334617956235488675680124333897391660557832060513329366358471862627508665916627723111580096337516254267290762291911212507458337031492982368734367614374563656621923461329646086090278849837046397492109133459485957529314251860038784772673886321853134735499528228859492573260323850182725339185747094949027205696469522628887965157790852532132527985971404206884719696459933446557449566333297284833386784859501339984299057408279476990687262471257559517503659268074953697125197938644489814224864498922504771326876377858457881797280929496801839752815818526275487901562397859662918077136924925489237669171101294711856909600324572381233416789428608897918010385936234270749955915647168419935658884680656049423000967353914158521063335237644736557406456217080213290586456077773844575200209231904972597666202825842471004287167559845028665899727254514395805759181675630905053243957022207355876237317166329097368598127231952480041623767710901256705870919140023771427349220619613549139648178727409536570120326577846646820596572903654141588271487706690912340562370833336959721368419289044986944259639540233798314619482374382141960956587791480524516148544404611708351240536245650005810661655067359320316289664166046520827641619729444878398375793198309199816530816439745998325348989633652429351106711605826892445830717627530640508861008200868006926901441537748764036813181345052703595545736235724305819905042691984568349368564240329866693162946825674131366708151561147699344774566461926865325937058910505393516782259085693476057532456420692278985118680884272243363759458309179449409261904152711850624676939003758896731700896099986872254033285756599612501911850065358087145918437970875567514664391754062977283533735332292941186475551817345562961606301400919190069408537949990312509880263747923171734581015810311905575334287893231720257010670145067550920692542284814559414318444560529746894821111227717276577978866647624231949658745767814576610119747959440192480396079716266164942975397695603624578974671315029850662603000295156368528005840664384505625005664682045480072760441824174706929311329476119287234714973710803404754744086770271156688901797089005650081267115741463090080612039701916444168593122441479791129761307346208448696992410955476662662197353932704111068103973616303974236149469143243503375663925329282300992959603260372654487321623879323307110647986510361743019413967233298614521840969223162430127376262585680475462109915583966412839883057185596269258468599483653883742304171686097131353706002970165846634369041377022855110576876349115558871433087809017042640105954236810793976653882685831375893979859590378006885325623471684489464953836442158150076601720641916614768365366033840974791025580347682055403237279237369225871349935064193124218845495753338977091761288684934659098589137637163884463912029915171489886530300142596942570062891010373867046684954787192279400068032321248146988396408383191199097793563931845497698423029744571304686021046132231499993246468118376746626460559834124140003810173062100756774410715832590559630342825463123928278105331116860044755375991714670626133705575299546863817149171780759902654152531502757294916552294704317830182226166326034271524258767435153670585870346214352456693959048165054303081011976400877410065889506967781141547172052917728169628349747838976589680140130726447289375942428872027804118692841515435149524912206961542319440342848227689115273647432065882289240044799512785664363922348523344197256947474958161755570244303947088234778059321239616706738627190166226165986938159720205461710699041681817096964190367459370487958546497180444715378246243736464989769569127377531872302134641626405468928675078007962533971862058091508437136538185362964029786355378490282142186991261506043500810850902674961517653636046725953114306243928717793982849171511722026299325736977667690859038100965493736882745482724894083036995558016537878703912676112175979026699005803898695598282935031976753152384077510071654846066749468885566761397619670804281987368888874561798271398423876210585069440378410886696253680783479941704931461908409347647425653731976342016160407524879557449076611698543220647955841235532380554194209900283392280482013954386399039275785057867195018375383379462512277738580269744410489981519019438799127365616846375524391296458596419130041046672236688291640125441213194647811051010644858695570433279589081808965005464021360883713586396966679656299169075987807884685456681186136043842932642221535425041695518499695517625632417624509466588825802922408135956278944823356134015012242601900285559545525700604316641719012567626967521929725515120018743490039495472230559140092157380965138903152180873836237396281441142143342787917617359134622756123994634194927088868244000478385251398514135379732854688113204105013356629046138779931531727808378034094307170125776339336089359663600787011864850767193434842558226356587789947264270403419606176321072256185937658691729152294321571169244894351196308381740217388202654035371992494807311554719578850530793050482681563985528254229415017320261150982788226957663651448776659499285760728950603691300496557948282874698638735401448686073821775990064264489621140392303744364771002130292574911205979202371236700881488052151257166454018000235251691776676452962773815279841995325430157834786031242601427202257825396089982602788657716946048044184154059204669610598684393468906728351196703303947535454974897346463750147118773751281064582219377781203520298231283358606625951296758588359565920542732578693962550967895207758812175473462770995193641230478602784662523410768152740846239343359983421247825040671729664130518415489449583357828791305915125265843585927412843859154759223111161099492659479759388148710261228966472665893534839465520274407673292612377222584991453960366549753584590017584686011643538777696381353042871717188135218669307736338248884434020159326006663600127575178962787206200561013512374984201319443805514303147383014057750624491942396329184478854421000862903738941929698504686557690550189248134604147408431178301881354132869741160197220426152795332352550909321891469488514625803187805476116866095325873742606227007200990898333789277432049175975119355576975925341411679658057897811031671242047440898448678930109613667722814818992764814284704873939525929474968458193526627830923370767616928632489360309296025072073643468782578589834863693718081031555164949299777951089200275423067177929821552470865652955695873636992075656391712557862506289058214708189049977071525749687581118077034869373185578122284012924565325064182567349026654622328174822838785371305072161251013471333422079213179600189171312459002702452018962028435031380577209899926370088644621406837866541591764314738862678369569370509008626966417501489257230941379023670513578657249133351386873613079175536024899462499780382389212348340514171172450407990319248136745122586997460784428146600580429853199469236099189550539834596896604927531772710609495599512433219135152972016526890122076954044362520547163721806680680372026761126140653018558784049661360998460051752763119529956430300400146915272452073197842869764395887885914889875791446422981329518343514512433769047830209851659428217880060669023362638106313260852259016555047944764148918006372036395740208264553846654516011228369689593628191138649978537785603490940012787698997960638168591088297585604079061941487298017376811907237331493629154272617289833195819646276630492467537077844864455994030670587292714788595216634802669398220673422834293960183329379103958974210032736466539133429518839175570109580651628836015201182406231440677200587343397239501101475618520166460477512324605960878133538280830082191031217654572243578131896560686886977171620615920591417375147898250749416249666725526324116111186826203676744558150524083958241078952882114353145036156572592908115225740876284141346238664835092029669183874654848276959854547029332846183699172170329589407780888838034590775617425414845909458436976878505913519400855098207937683687200861877917155820690729909829017941006454166655529936080261310149235079218549967145000610954522817184673808807600983807625778648550853355462273280375626165045880118218612688593060190429385949426491340726749136337903720337481623384327703273958795044387419995651699872535727468500272175718480584470586557159665428896605618772364340585110481361134418781762255901475023328094624365545121131314350605697536190036275857696398792765124571774610085893381440021108230670396256905178578832515870712780050181113099001115334027439105165815315705265380242763527328448779551879221167683200132160159510605197898036275904723182429373288081788280148144997267613669279583978983904424559688511663082454022676794602875756826165956109905426854384474882195780522129619644633858286178439243349441989370786648092366763575645256194246693358125238834395216230729649985443012646885100091363910129657253111789273525977594200146451207946835486404268089426503621154045284435445236310363999807183107826312101593170416913076116289676171103142060208163084730834397285824703533325740639278613556417745827367953182952335923548064703776301259633769425785580135721046601223131310857603634156596108062359403734508710669645429450591837001821234368841948494640692899597056335837789729860413360341934886266404692612548689330676180913838280183523189764701526502210488463822402209352692705095935550481508939139260728538396600330255966870189115344960610485002893524362948515248278974861629144944029834221750052346868479609422702408162178840441204800197099932589107506060768437649181495832936159537363056172503453085196686361198063530519722278114578707590358536992887830373647310274116687724615505988620078447855614967688919668099390493011051397615825004073304196486477675959153072355942296584814102172322669267267370514309469435956449460514453645800252782698937347481935473863289115605663713964574865466566839525024228480134201365717207990311350617489596103868991313716553985830109880386553030888807534100050627617617706946187779981548490928081440513374753527267737394023566916471963836118966453802663939865545063320035500622789224410370044708653084033873782614280485462784421057668945341091876003401821938585357552465395380815118081003035313856077058692100905176783782273551375000129045486433316510093247848335596767521071348045696148204401772193248860530111374323210916183404457764005279969352951771906128464276507449558502457889198255246386910619273024111993728688453709978670696469201891417842474867501138433431885323715098589857346656192198428243261158914084058048397146097349680751524034400968821306180327208106185613872806486504748779380406349199591744974952444291991463325664383172669046818097358688604290478228732665622801903508317295055346256511951103512712915590599199908360746423427810522079207530812762127318148831846610338558739908920601670324010504535953042783493836905288617496334962119785831113989850103280929540974231200689501262036949199801621157900167199982045206395242358021131628083006356309370850378269446412968660756077288664231642457028468196374498627045528312352827657486962908624957486845551297897486214660062729978749990172668542687600581811984758016679278958510667098607896502683145272251068526610995105461311160890526088633658234027634774008821152940607928418289566854935580188625333632406633891044742270411435961080190064019943334425238617153964301111142545162022683122173570848195728215745030432802762712514189876056121912808884414753078152874908800915635462410514955966707684779600078292344604735203515859921001207095977083930578423621947366007319893378382632092105366856318103301468059206641574924796989319791882639408566636655727018957416758911211579100541707213354413867016317735262222650065686859939963213850337859988918242292933292351390474022962622467134169001969917222147915657502323681038592199384211282483596511584758847636749185582973466837965393449098494045900821772976894278252953247711596666813160475212688195483831494419407332008790667505138200879100631319663415983058097079150456294760099236748269037237773062020329251150687543825834941869599952598444374891210320142003690096374106649652037806888313841231421136942463847608930286804730948270171512781928721855331377684330072602473457149869159400634702699831811942732861391825062126625699097529706656021478677146817104360692638254018276935752910563112292612021876238433465307173378997260309358340055420799748318933555157770888490177904671982291855240150209320699179611989369850054191276584997434873156302690858984648391300568029723668773514759715380995095607090460767772781910133221355270097602035269048307727182411091869321160071330400076907173057306104834004124305774733387385480647634323888303075429637456384792017017718493185642047504781287321096953299250061255886182772967271886170941218195054548198472723260674654069553296974392848904367144578659012580073301247756430017178755908464466799512595153119370574426838564905278286520364527601005720225545125834222781789245015993014505669109493586860688991385552483184586631569559408758784166531043478908954893508831611263904335603711213771933247192175819433872375462558801457555363593184135242300394157831500642553105485051402725513303002575879787426964405437039556056480635502764708282218407433507090788653748964989445693688104711562272453003783897507310514399712086424972049391488394527487217403188271529416747899159910282437292053376983451277855664390588029719208497842546837292608905321817055249704986365353261169069399265617608411363766623308431527725557938591159787236769756857098091286307304644595854072907342115110744782678233043262894901911166517797146910123117237570844319424430177514017718652528902825128121840176045329542691001848843375331310057397375663402485714835438800820926581528116817604478502699461364950885491198709965390358278957570965531630267519907353931037758059067633053461230961423912725707835757844607741379447953271368955367332836254952259349729912783428405798014407688844907223258456036837998955966132876404036466563182970897737958075011007079841768034190968224696337697513105304867545421059653987266012864231854089801036209235231173900934807861359506288883345279324854444856398154744537747083194032843564428773719970940251766881444982870559702926292729762924905469467789523428671974092379538885350399937702852210088335906244262719598345335596177308459002049220844629694099365789858057022049735841154356794149140318284045544909854925845811278192230623100973595069826245557784233367871261022201259867307003900296665483389393359604912149700749337839660722988040265148046909549988600331593060998204711238330415479534110959664063859611232271170827911142960005655932296010723879055639461587324366120810360587872578997297642379020467647470505150053312543966029269649304864835879493353634589781148452677440276657362320563822856050270989574514077871070067462290309705232665571098320282530394589322997221491343248298091001873493171992837057099452098284547703748310173730878535273515119117484331905818951837870844986109923434975846637438982987957143893817871526310112687344779946547588909633943344759477287570356062639979307071876832857864623504167865078882939200402220697749853312388538701178760801600330080732115805126351347622900296618519899682105945853899732940125091784124125123098013848327855884660595092810780018579773548454610345464781015303040467373811695156119155051565551881082348353046384496216121707834557336835233523654176046162142310439596070511068837700112199374937005837412132115241851802330996830653296213694326394022349025909766799735536491783680975926434466832872020033467191568175443860219848085574994987038675537278831620802934004705649718446244640818791365234735112592214972821975544233092445262380743395308249064935889217941361003756356051275128630128032715491313321648557171216554119948004551333057883053374235775706831563787705929340097022993791936999347131865466597645966316363596596935288610444378843063309800330119793462765998589761433658984898785560376456180457314601303933651288628418960669896790998318684181690016806465079213485955855562995781929591946198257094375147407930779806727000018918266850786109797486928094645225846058321240012168743644383387459109278273705340353293788633228884655570356496345797666219104455443318638429450902718332169022771145925276518082105867186533416362133870620938057545331334404821551936050755231019848344758077942313642377910322985690431216564318120362922821412896694162407177295351991447689039933903130239660653426616018935269699293473808599502939823863722555138011680106712212691742536291963595207208293516720029835282883029714191286838755233651282720062633485463287679894556312093210208425829362040266122068483112419135237075876072511476758343078392219941905475264474568482296263300928010550848829166153073050203401304057488721938038587409231190661934051789216044449367400003778586334155220982406987493072678239892365327124915060060666347799885821717733264693822581301059903622970772642544770696224566202141604880130828022461908410902932955397193623686502529503021371725125716367470239416775170833714173233845069513515327083575668748653385946750315409389740928814245263463719262443361867053938545998381191576097494150060044367173861327791842074910660073226810770003641121149637343695031189816492686828018246186320933582616077062082958236063854476027663887703329030700213096073419326517723213819953577756611256809325445852423735532148928734782273085508190811015391054574389936606053539241802783765734299574031646158229083079450685960760340999861301991118266392196708585590149208968162721621261072679667527015399649418348307159660245272999661977836427261128818322062120514386185657530416237509935254914027439308445383045839223966617915943854181247895732991499160715372196552680298794919982234831347570690826750616032680626918942430311734723299804917455597698731928480615365449963971425489109864265066213289743990877339563763354273301382777976808806843852472392053900545333547980056777790206468678907729217823728175539573562230173318943705087486244056851483419092167350714652180083182697664070726947831215039512832539713749956712774392128540349558958847074597283727656501926606750582699262616305616428199302799289037368330334033952131760411899742775480669986219153746959896712760711580913134204303951218018904120330211327953607758796361338230638500358408079510163731622233207228119860527992999516700051490688742266078158331456279277158772619940249928392578796482499472423253786971475691025691931718819568035540587488200686347783457895482098238223703294343554005245369232800876204659337221917203732168653913976867907214829989206286483356565208673734048818775729982890469476107410518608109445845825673827958065560159120558364461700457758129836238792805401803431931467045710014235734817800047311938714699049730465455249772833518881419558843799199039926935291245311378254113237071265462474224106536001133873341268562421908483951110984108565679824553870241291165585344914971889861828524270359760639100237526121370780115901993545077344286225234367190288612041748782328866714954688658152172163210378496156607728337668092144688941115831187258472339060483007017730126415229838463584256674539833726794225049760855510313347688946244146472348914159539446931529713604490336546190434370613782198049270945479028001204232396671161212206296645235191655875419873400794306162288409944241514764070079382662691244335058789230251903309474536131809629683706585575681776561362137335955014092177149231666594380149745105864438622152309080439569522276474317740723189421873479227817604405644130584248711230394669207169012913129881839429275484217658690500790807377246929656667196269750141273534093486590373962076520034068645703341267030829058675835303830978283924044452594911523940194832925573213266178416392617291151682234045386638325935164280895173369245308598566059884772478723293790773453669503871292496282371077571012195279594402754647258338256206645727596078613674698678758682411020616870563673162527856055845570715533241617597064632164249944112066645513235321873537485966083633547509060569199280325719867541789329770264406446765800673331146746667094765964135685029287802180215569552847696513262711623346157239936269131026934637641249098968353174683759166381548585382181311890845117043813352659250623793062690654910188414707541629128274734889829601506856820146500136635494446848726384675670824161996932383358158806968075023935131447351950150371549286391258825599574388209964371253371370271947921422579504826999750539836885845488919542098864901155012148757090267003208182708839620941650539452277613478363005362535176484513696993841474082270992726132657809603951506889953620702118386690342617355022844452761312817582850291749822134581751291611935949800753936253137097201403742696187438954360576567808846178981535590035246174902641273585786378721328299661639871712807594198920277495544053609353518378335056211751303848245917740136800839534896169453961157741596377196170559004402632852052137966960594148208430555804175283205812577644689028091225594979234569269849691376689269715851994876554146943124961450030088682693826084419469524018311492451188939674037268338808344574416932113293812035682975824160212028497001807226090176371417438050005212778116188165424390225884874523999818103348639191787191464568517581482238408338396983933283033706252711839289000778525776976000577373000923326761479697457510940035249473825129036188336693609704799832398552096563774756440984624939493497596919622985070522330123582102036698358326607265933004927597078467631723838845680986159255321721988081954802881973755689501091093083566088337154215412479404588914623264765004749997150289025438977289995185021474666655256103906198808149066633670181209379333105082576176598877720518340231016537648717278007494596804517213510313827191569891265443788954536495143071147731223023149775519478002641696624767149683701088762012699951518039808872930709430764112994867617175411985162034615502779463268576556057435193555172456311410255041924323294641816084586390849135699358615928655688431746252626844387446570568440486761594193913420247721896213227830645554255128927406805247780626314209723687228849892222664775039717938370348712452380545948942023515172429247322340443704688394903795171299232004267948951648900362673251298408660863651896594171563763296077008730728316480316166105362554502356122631517619794277669758818981248205201108025526096992879459449474619431611311173866442191325249784899182824013768005957502144326412333783569376019741705951597444636065798916593211906527837293910839908704812395048973600029330852673790799517398013536131249601552038287716165656552944875955986127677661970220367112651592834170773214168744024864321247410974295878240607713231110575232161480248447112640899807069280829345821506915140053371302213582218881188071789744934432448713897747487251257662389100577739764139584948670210867856064420115266301811016621600862023931789723524110044433442494305846644038762166326870970101230957752626282500283052629456109383774776161026148885269957612820890871648664246628944343302589866167737321097705717863729158641303886332973224933480886520720759172017543195455197664576557622646337624772169642617343508234954836553752872370185294339581499694214190339545196509646749732666993102369320106070602106438285927024004641657014295126456295019663879589728782584398668071790399108695135732397750526751254233762744952967879681379498408847620300526793688235651467946921635594931192330289162069092703467139142849624981534187560505662507646664517478192541175177457600244924907079517115755176413400178857433271689204879107308358360051582537507293633702136362653339086300925938798551987931052089707783785777828224395221409890717644693737668556955584063360184657899386343684692377263158002128394699590969890102473018251575660004533482340884402106350173773268203583463509981763063206012127827567997823913310988135578931191776293124623288455568225321809165133781166817951648617652595936935740014147436380928048181228963095216267714854291816369537891516296646215940830322544052904105159286964956352101523191683320117230099530312405913894436641496513000473579175531265878792044861891490797709887026286548534379366525147626857729199503662946358023595394468525294119627116601602434191429132194508160395675221184103624146219963849414379733271476633228070524164334316756222101320919214148668086169418355046834508514093749712592820408395970597973226459669133550106313677345569125784310191734415762523864305625727471650716105507493629911479395302304489842661519903579862434820099506908895216843625092155066545765614779407616916443486395995216209560790678773762506159240238145911339617280966897158676704959066481624763243739000938774781950470792740125806558292088791478261743013879139556113757137952931423045341450451490605002193833964481815694477341332855396160748382334548043261821795160969482213861869246830808941785796288914472449967302833253329478776267637579926488988649547601977105142412604154662356153347682088543660019144137112959383421728396243123990016435143711042905146798615781741240987822076766168703148614009750029223800015601563048026752475638119584035066962690070376082525688595580266021727208052250383792599703435646082558376029934006736898093088549131374155512476086138306457811159048094125093759577765019663658732338464607988936033201854643211698602956704702865796531742930598984932153345797211315197207801237991619840758040007677509179772592807358768995083898364677850122102893021917727868722012641347363205717160310350091562404973539437797377584394875028572061281432078910261715691413791519656391678856093406865981323534059229702827873057087766416285632069469045762255638959337154616559977248675221944319446275202349433612231284571489911058517535161507263177058717796604560846515428113531193080497645993687791850784141432247068859558970262323359277408679071330818191993417057494440616443341826605344918616625489519086872598819430021209078248289518412391533545109883340873851763299322644620708214486282000645637175591422347276497801727379778791431672828295333083654190775869095124938775276369109836953632940228258091761507089897826976128571915321046039872571318185641175300752721545940054172125912517099540265132567066790033064541490022871580421711148849726746326457656604109415947509989276714164897440942739214493914658784797554116608076814405820636404559691183791735918927123965028631298236987118820023221235430493078078432421840739385478146585379953398991215880554447498170852734657580303006254939351573505841646474891096666625083231356880729624883442884453618810677821036318990548383517316519045251922895437029391904026741921159472382680367403887551855165601535485583300416541172142545944734956601636108655170373721983306689510718024685505333589507791665540987373891468308098117333548702042015250497881745372726513412877463016914108804763336062408223051219656226260886524258329891145387921291336813193203122714133958885332835359929833902237324530421725259567363620207768774373463803069305357160407856545406125203889160568186652740074761529569118258200466293207581410202834870089005221918998392125544616921962185033348216683278635434286871809970366974181990356289594318733640381730225901022187123964414097476298981706942832615778750805276979614940076870936263985582543888769358332520519485667742037609476836565300586302363181355294342173332702265321879963987881660859271842975521292232333548266100144032066567509588855444209698242174361911421717619833118117227949454386131865798661203186979709475347847084592803589718180538940850395435912274756910243358387295886611011257918297683049829707035301831599706673359697028882282032651154423194258642621459924062232219363453183917448200899207187304575203206395486388734651103696026996797193645049489720012943708345211415190821192908165033721318397931480550925102757863186089314025885262433487397885518557019665515509513118911115271149383394276358984755895575315810772618988396660715925600527644521222377657861080183007175205936035104235170186324879133833171320917959117738386148979203175926822905022250152602635455872490808952237620544008595359371001956403770123614229111278889716546236045512292842462865364358981700749002444105493105086468050680249685242006413100198332041456605442306227515616284829346349972131060003051330160302823761192889285815438784645479861764567485286520684290459610665928050681521229099563635640681910082701797187669589951722099560302373470797474773490724443826006457288181454896268717256171466832352993784054016951950045023541975034697480761398959269872791933879569929769233262807194286199079635174755949082992069345926304419533110904585709651133294014697528265398346362493595670402559432264516646176473533154485099156926597745323864678579044501360356684140428424377598601587356886060110884055618804503429346409989736047658837873056022424352927451414687386624862800347927920241335934388809094241651429504108372271836182522251652734351333997424544429253380942756822322310538983598054021210274240414976847734247350788181138646366988589353938090903605232985770650523319303102423276743845124392258957678713772830463005038339580378981607740023647057631155685233254784447522190716495685088464167773739601502703433997407625992421204475561130480151257423420984717815115626774221300066204374919519128160234145053238517741960965813397971107075212922883968884297587254766562417655509054026606530720887237860548911131689157438226316273469309574500022309370167895980899774685216273665818694165246029110092686750235862138215077072944525162820528537282338463926497413668141316685835604840246087208197372342640100167844099682957502315134698200772146381159487510790752927752512575852630195782981628162542633968495548819045417835365601169325837848245236567070337447602520256203748147033484712782728228411376982023260691794526519985328720037880543500419994834777945726979480406409870855428223663847041054580392017842879466229392907474954874208455296218688214221040652099220413689393593167796655505950192273961161599443956691252934000666917214558374254956450589445334977361538827602275348576624023279241245269048633292162586761247373916980541637288829145375076813689354081504476788850259505576558334741479667776863571281005037419417940811218543837112440772853428115115317031245558552151007579851538436733865771323646345974530616916373527573594785095974896041659284254677455819150916399623404629782151218328009793065754162544183578129217325335162426816554764029658610749271499486712703121897085409978423119866069707325774659473661677730485170837497941119320124057419014520716547714514793429868208444788117853076211449478203579503494097710793007201515132038298022977183570762663337819203004934083560998004249284048706212697781338363743720378858057540696504759754247045985387169865676762918133960097339187114080087045372573332120882011701825557286160124100204158238964534753575007011676131633837444192109215002186230575035985355364010752787476660749323348677923270603885705046816356821077988510457665295173998008270638876650906084651299686353786342449333123882578724158204646183159694216088972063336254423761938724629207011767385001068232529873520568603912619481280092801258894849355482096141630384527701300808404484592778577227614530824738847343985894858980156471083245382519798237813948423606734294673818148533616428744133956066219733205197955136812388158270591490707536984407277425539853950818986258389878975095705283160988087863480138172914868289774972400750552246258805363334198171331913546507806395229434604704952161833009631660510060467356976811161336768460148163869701492687665694785470546911383918271151377778297466114371969422459206805876531654105031568765907207943241318398860571483431171295338135179181822908609689465781864654503149075215744487224555794872375606643717462264101750797632342169398784883989870118720818326690030280079808798787195944694420635360047143553991174554702880984944790101363528092312364313967223616004867643337444861957379008267568583285621363359764119565183551919266692797854514224467018306175800827109835123541056075552596420377817347449470584384482347944450455234380222317698417787584654795663421096933789841526264697233236955977736720941574241169021557831119137032238689384056212250522275987370648788280654276994707365415657904454559417502058500984063018286902158357103926314020132073953984112421045223242025808895994542370062532186101653903198620135488118994439654654489543727978381268461755665470596051995544788015594053026332486101574306535467058297610132199873265885056802864898304011728442077456507254120295885337867826991786540079942043175093425927820490854194576961988012046095653433614631218197598643899686303520760503964631942107340645518459169817252827862540775639359557620559020309326139697602759933490548126671594721914795450352529918151616193944516332962931614077955295182809392205596191281347171519794836436379833645187168781345955230201939773039992987552956922212590298974239001088347479542090791107039049341459963844591491820325529135960253919031405627578856590186146374333506592543835124945648882509874179335702836986549807550576866538074574069856197213785339074181409778424330005310183049237530660211341763688683429051793658485156499761425746036589043339842808813278090313236975436610429907396868091777353088140084155281619069224927794020067592416311067735624429507968272447676428150071798709228070664210186516503913637711940741412509394104209463822938334495844786995213213689855496780699810293349776631704398013498563776424403603353902750689912649576498713797631137387698811090899871958507803003563609839455223950447578247137403710161338502790655521017859205213924118442356611054367776957667984513380492702612491413984229467134846809409794690157581436633370852990472434571647369734616485942687393496140950801654534194188165902295798110686000663107883751419732150588359025637228339593871769233402571604530302985619583583833985274085576304713594497187402802117896459319948900334857845230415806360441415375288185069554960034269095290764009014979415218312806430930879794548996696789677229956282170186174593837607559810463053907217902392338085349469345067742265239877780578970400504285125081816101507943823764088069422924592434751945575698322002880253506998502960694531144605011633482642382966685272531220978365004720858954606620903113373768818516213588861972252276031277115709398938240642162317561760688265092373078769037470524487089476108144050929545687595749089425847754560673388568419494348639305425539225206178866192660096401239375194667345957020572850629943291417322958552632791223646238856023905143859936112791970284118136731042175391229392344121219101506765331491976085291515960413639549719149278064798049359998528455225042825639484218950178064357564537312644112795401799555398471842403279312223443386891674647337613628728276747995694745348050929451029276552703920147153624144696291855392650599574000440658592477034817136545927794496180395068350394071120836659731585504370413804581301143810791070776317267657919713035058366706374697137730033525645451433430705475026811208056115982582361436968188229432867735342909093782800242839202692422157775130559915079251157251258082581846662187429265973521500442078971143479902982678902403887413589713623400382796573602103063083628581104971214200095930428777813794006720244290016180817013911481368713887996789104347661475367706813620974372434249622397850965126455801206709578862204741600697131807374621342065684999508162612690836136598412309399003350283489441708270389437771361288303716603256371265737701414410181917031612477162956343553796320262116425689494596872826257108971134863767381869154317571543738790430859962232798844835649362883920614843957186552720331174540028098209973243011427260467640657334543755643479971239792209404975225063651036683932726572050461171764891681908122623906062118340768435912287500145990857860420962690451655131575538068437277339445267577971596269488288359961316791301242878613107233131350028271960574595623469657396542221266987133887764060646103011958576502098580350055656229192110123244934984897719501287222960706466972414204424858680555872285772251665230454809348278793904284960744847955498441678994294959046028877394546929772555024331471687170296509145727718911726615370450555263820127328689617476751630983515574265896157845805230162544851372786501790179985135992409170075663196116259410183890858672397511167532881646304665668947162566212805479434460070949042964217194046898174016455986099575208078784723535515577782394088208543947074895483819146625625618675708956128072124667657539015735495552314262974848074031706049983498458154559632882849898573999435878733119551654044982571174024730307224889408947201238504048299071900943142440492660383092684745646276592639733160543012517719734312250463066246099482077048717705576862798194434286625152422051409309071905499973789446028522222326665982015197413176004516828907668621034645041403623822249649252869384073942688991670610892589297914870654530414096115985186719072524472254163412515777250572387379030551965652640079066034859126234699824517298492786009520791328807730462702299843073592040771775701709585751551647960622811055396071778241841471350528705470648364784298492549344541763596063489137448267998652545890292129445934493384030505226626718000793392250359675772050448537921914443061488123267441491834915925713895808080656247437196048009034011014998656426536788734325082945041786995669673300979866423486764412433082867720430588021062501239591809546852734535125397039247043255178854632026587780227276904443351115516972735364539518648577574189783217815316569448281695976819516302283161884754436547040830440987763419231687217888907605427858902578320211018215030989028250926651571960507949821078059105131015652189993669819138698542571035068019825641241201111009238061572000405489668698943420614912968424178476272029506656198214864407463514913672816790892167326302318129512805745543871238157895673059691457852956405884551217620453046328710506808998058020783771680327404659424068444139366607163673872504372802677658606860310388143883119792486540289833184382795229429438009933259800798483701767558580848499823346966898717020962516091823816721903988398191844238098700602384102247799579808641234474352910006453082401017878285592181442982335119139088538709288838563481242980913919368169503764759984737450590932222083773344291120259815586992825254203987877925242681758381094021648204913645557152712496380678314485368812847268299503272565332086094605618773348519238705199227703668143666310840589681896149192007471775507511878952266117833752377329874785388846814376828644020607255171715865658170538531379734096102084838402836237353186780179606493074552322677318186736691694679740037487179212404677538885714606700901900004124426258662421469635010693489488882972016615723526967907554126854526898083989285118719102742495365744245254019490901555105714801425246621349685143893224075833801910373672655340297280436445683652850775904352410460253751497081692530103826614669816537974960246817957579657005985517806708964027956063781704656565272552846496915770666220286122781041035058077686764936524916630707003935484062936292119605424069201608457043112107725392818118103834470330835282994373375576748669420108509513281715326505137917286070829072112636102258234170359230010236733103560856114542519045859727535426021818419224962509397923735166126286436041564547650872659373593385848543895232289574170991022245706721519647878353948660421039013294544267346885815915452128993828350410308412987172804993045038656195277364536466782592103743286611422040635297947237630105442437465318444290140569490091757417987276913970634317128160022698410685037053977739474560752611531602348335878822147020574805767341449892761035508212674994408366456415080941038449494168594961987560910581926533296325554827601841359952599196265045351346421409981041306117271600799877929204957488267251498722529989010527308455883761368360400951366614993465027026007738631982693562405701507314918136138490812233793098448242892329631107458540213135050484785983683594094569191908946094827482730840468176190679587201938263668068886063789952388042902552214554373826353786166774216678038862152857617156026889786887992882425237719798883113711031120775791709510454387943722160965988670484113080499053963043673905354355212073489089989373982343374848889706912519574693672317585576279940323130983376021346120977873816206963648544753645024301401193324087178957294258259751754303667360183216219480170513035754134128681241628492538659434306939383778332174091649916260885310263623840677596022751950659123790988192663896406705290956045212697640081121989868199751887277092247846369563617541796648633299585373600080787492509060015316926631426560671184046956935882169187543119628752415040241134282024757084115040896363350110102504471796703033871052440581473394572151240721843815315691265774243978649401568220873916974134833609347526473637413644745426242567355623318127172069813165694739912790198571875969234716629958215189673450243827424153004058930785043330850522737352524038836768161625216030888023401963970734735474553440364993367368549839991963467515627246822844259672150557279184839587276217014306741818407874547035571179682142356561916842357200095025436156071602906393492618645508197084232170309027975428692235676524084982783799814415156038631235006858387473358848029355391006034406692338249858118492438052920236944125452742836562981290304816384329868711303578167644236915896364080956862182406790601730392784689126212672912598125233626464122208592957206580157406718084552570204989541017640978829852552214389319601727865473752791620341142002805595935925336477093901834578610253916478261391551151173493544951957154406299405479859777335005182369743824089451840473028378671735657837467266772728658060652877641650478363138895172415682718312164481626218547595967191613406277197567877179583178951160113538123220191673472091906591001459254660254276586189236571778889124647406177275783923160921919361443039132409808296672010452826552858386993353877085705575085376192031771524845350955752240296740171896613312005768469005981054740714963010975864130774660946864179083199581658277796581743316571046978284364017822080507223098176326684909664307143492104224005832657489205039872217551805972627603773881806479509523146913968416208212407385329612681771867747041822930126092111108601782847999426770229526487454087485868979779839374584697294203457096638447662397539344393239206716771103351452860314447256664631437874931538685662340513385802958968899736487304105967457003926002764757201109608708728450533640607170143342871870405868308447798544519618605009459646536351754246704092157339329453056267770013466110214683064126761920204907068256443208135044983876590610757376302806061519134343944090083907333120769741583000330890406044731227172380080230363235132654095122834316744386172857512011980782265337768048196909408272528050630877483103233412718968088061378112963796332855263195095423011207521683029312234016010240411277261943871025703693017981260045610997270854987465576590500515998298437734480239525899844229732198919395639847045015950161212447215161530725595223736241087686112704491103010686757866223387946128386835319689431700804288153691564099704600293360511906972117114112526138580498031581430626412336740431090315888451648764553805076579401675260963411207430215250650002497208700421756788826872274307713824200182569213759503329079079894885174135909115972814791433039262605343984248494389579389529909078289557577227865370213453627701804724517626752107233522984915483631868023713337514468075094942348249880475530751803881995991770913446154153705368940246859859292473803824623359870728473836070554063496200819151838652272466549126807547392542082856397635809175169042218035088333650325627567005753828315235399418088965737259045534546450629718327866438254117242847199106338955283334701467119851064248823150073191034166284656563313613796820502161202275272823932858805328145886235758502747836309640131461064446877601348914298014506085400923691118327572053690189672549901990846512076894347080184561538502978361345224091031692740105034415763868386619948949916446545929713283583071847240618207402936513459521232503917617239463750008730959791430383922468315285172428318024461973003706330349333690463290935323258589116586080281646596938324054577941285091788834698488681295917404893143339141966308238565862034439910654263919166670758024521677346587391948951141774148099854469421730274562711376616152561570207385643273092311153006498159581843203429153596858490619238722416277799083830134638294858054447678816222072357344173930109954312613882528332919272688545174743981500559453271546013820107604188146117491872212745754883296405625627357925860443539583023278525216680261712039212196963192063752783081932228446661265057273078503699073285866180286349243424821623062548258826393925502029905219254506397520018316530211402158726784709417305265442811148488023631179245137845857423481379736943610450695721277159092570336884627942252198992820331445870970517188656943846815251462194877223051010753344688713766421271631737862297070890743206578462650541004287164409069775292155501630652109506130282905530864948788439151691515766837273196568445128212012576784139792903057234648673550308503696218270765805081920976496858868273324426734919959296036032951610443373488690677346065689400952888004775732550862041620309828349225255742934369409643160415070025752828259294047696929167426286139183277866358037114293991266749186975460316801940950031307751048157997806982769939268363439892907348832362694905404303094983933493573732144898841601822527179179520372931153259567102680849136188766269056974287947989845731720905434106440876015636530512924741112277189341366096250369016764186287827164525431219047727957625036976076647716930502013975760264940050039441739167070946107944511568429250738323616326731391706457049123379299157958225974606251463324738217657272467879377546097893110825756634066125577031905959194559992253053041094187447730434835503347333495694996659425825698210334945773777199210522791394677225210661890188010197959711173164219858152788363189334319974774850298498908649976477228787337279620494548627691835090561178286184229623320329631351477452613673500091816595862849214136642137249320850069303337287197088534357122658414758997605735795101723135597913206651712875123657911000246134993572489343146111230899897796662146259773721554212640531406825404216719061466898786209559489320533076387018384229608370235204809968682968104019793889514313400659627001901527596262587015616561106666300684999440453960603141294050543501428927898327592273891796348696499577926066647215648416938238718281925621266935475408981284588074753398976010900738535535202034237330084125426189421173953973851537417508205917480717713953698074944785087740728151096024970795510205251191198043642877572523806936098702045832703477673447295167923388841380029657128739683080464660476739623003799511491794946610850387223915627261166520977761873601709325187922392828596693873913864013979615150085184950318496325451295621027306524032799235485564351127185323490141361967674304883268573293798466997081671488515298512931533255564614592870711241945548721053963108620075609156480205603290069664435333958104764965679059738182485627702352497334201384706530802245746474539432056025553862349298025562811562031357267078998220302072768569692359785980631002953099944475452055529112459093427312312673853721831942582748274134321262684512075402120729975657996065343810054275811768704607607825029264191988767697388827134609282625786588774796545999679562741593179677809283912181086953963530684002507906508264679447571845949964889603858875053249433923034023158312389805106852412175014438776159254701976625392625790894216104079063372603410143725591951938936436238691342119889119384314495985655904261046648046875629716234568330360918503414273769224946315076096119564831290639210077251151193098215405492364641141826475177513907330611959454917246426579422504354575759861917830220000803496785276815235075935000173338120581111300668235885179188851456107237757142331624698272483601806550536969486142017176321337052653214347698770824931515926858604171681632035890908279587348205445960434453233827742987431494953791137727610389928141574542838630426129255187763382835294758506285727901512975659082994094101497575637078438931534919817913721791463452829471454235536292338426664789475235201011272314894512947166075364962519069697747827046328438493966323825127982287410176164984971500743630037551577614189419703867750647075437622538534925649553912905542209569588274909310365442993788476628740741508646490869698614161306734992744642368492918552870731511943054573342739339355460022706569994402287969453107465772690487588175827447584070159226994384149843743659630944248201257542180981592943221499589946728460717736924290483870756939778103482107698218928342419587313675704311740856631893344570673425427274322669876145779886153749536575838556843112011699982684954453305858575234307464553084821208846262239032229433951793126481339129999329164235967975931528025305030999888917941775611960499629522787738229725538167136961765726867206554642496607879718532618292399506745391990606259101952920097111090056354518758416723243973491758246032313909854660826229881663847283385115928268961004595168796938802903137281560562247248360324509751408186734190097192502429308339756238369030051332433605659905479230192737691822737454853551518901546352213468170957334706266542658231497259307569643046349813205357662514073540168339396394635346443026487177206071846253240444629364287388630781892674744361236848332867638215467553816102122979622832811640115850327516368102349256640730394008870499759433735301997717101903300544911517992026611506772259349871327628639195975490740685065852604233193375213816933680749170980598719636696904541824743369794487064764818043714069709317103326101170266908895611460643475854140839460236063225978001718687187144744760780859679166600375529757047252620552136115711026258684782597117167983495103723061975086006363123869809313011760628260347816939583518263022108703693341644241897014539143448574640111339850457637717282022533579435522822414152459471699961514671121237603398388537495556078400170789414838092784401886298143198045780245556540859237200822367968684475450979769165278250267155204594726125102019066561869246618177151186152133156214719819752767766638681893455911665605045608772943424465612177911368938386265522136123153561633937684200804275571428845247971490439260142006149784151419873781919966127980422503555367501611245747128201614523949276114214147263830511141330227161365989850677597892402398763915990690114566772487224445468074347278148903002465124225800678273354569691038408709038096636434801389822471093227697238784275077577106885901514085745075229477613261093002688541474598209722347780872328544052436161888896025864731903728148640303852619564968005795097959360205371714946928270078653301793970632325016907630670833230759186505744327966697541019111787305215801622985494331553861336362194430570127726709838823447477045662230431899948577576934995345196300932300949760562677703490968579255401140960366554828852956629353919635116636411955420284075555500738813376641146595597101128653610954503710605955628939722218387408928945131892211111650249223192608041448092291300279936141992962112519809898498039844787250436089907016994271200284897435926172166347424743348661106922909605678810593471756886208787106717932738354393258737876386797176765002855761054568236878320246016312395216725569887373844698918416803453681156607328291028997218947967289791205320250422096721792819883003774816135835579381014245193890589689152623582086449849214018895090345167742386355708461163196153289620841733951153891293890327402370789889617425401852438475078391003027616888922428315739336443017219187794807485173787105925931366425430173791053033776200289674091883584081359132128812805863605283927713725208036765320635866279246654147675415073223090951832642909265677269170879956291633477908850469919392467971929420958185402526709300287338408250166634661999946251149963000521248429511916639696242015974371780863275624441581104681845009890390471651323581936062022957872741334562413763994261214941175680317208874706078694309662592421582964751105401851038979264328784128860762832710147892534691547526146537069807739566950924733244915693835653311396947442989967831879162310198465494397626564488914180085181988677880192115488867259128702091776232756686343521189347936671330621394327125526600538418083214415390176192432779580261860004055576236734677696343058861200160618271631454102280342904023454337169459430438601270794438566178982315474952150300071792569444935468271416985027964614275379180591755035561214991438545079597002092758604061770785959567925452945306560106204890635084666730822706420106763864876670888520795490197680893339673306237197153962369415828395652896889338743740752528676877573948808646648117274671700647004787953958484291104240809316768854741306359013331287701461842123283218829134043450215387507165545110362335999653676257146800875002903142448894218690941866634530341335729093930084713300423903709072118376167916207421912413544201365130061743632516153478592585620904929390874368331134789708864694154534435942735620086031441107071577814630327189317150634497857479647519936480680428310211415610765694029860214490238167404273375117558605353724232477714604928626814234538329865784353014949563658614182434032333601724023681995582448129314886755672682368284291501638231654084515543175815401231425910712890368521624955112746490171940915590252014842209573356048960759565452402727762353409908321312060070955827266066114654751186569341696755062483847448428620418648431784250909709360461296207009558734212137887826908867398051541703692521807686309360899811081910837115361988328021949550839104039226663548347849997118317999230847271605163263385199562885124287392605952071767362067964084025170032740491072359156268185241486233142290258732814122006870897045315432635007001686453935368392381469187321088088549739483453547825965203646264189649845810320734444292969119293045969109521408285005153637010768764706313877818154081283785721799261618743876593468806003589736787977460814511799640465860080100249253785510404595410639162271376403108447834349659953095228693177781387817027454342324042869046456899700989929740307327129244954551718941242806701680050031867721827013074435327666442617501208987056231050429616093113453427790877386497912074953404785868679397382123454464167331485551016045119112818229800048806497389288128754881908498078514016362798073778707865544387908274657277074652807037692496922569872118615534113061240701547398122394383495252219155617186739184663980224811009042574172305050281698553090876682922742002025887326878217338262811340589857530457485279085620699685581176129648116330359925893444156068142309705903995959209486444997268963601944505268099561803196606450957093484805436932863216921669304447897083885745966652565929040428894327074552356603687322636181460826745087056729522456627423909092352269820144046983730486213214383166311855528693374963494144464695749618903130389055337914050284851509672219808951614819894314375345750736781665299932306079407569855235927073295517665644671383802100816527429726455255335177832006031797892306222392987062770031507669901059826365166127474221729546707093882755277675227121629703021561639259116796549927518607919657772677363084253113793069536141927200825997456228027209020664291950848382690703304942451868481359928545235595751428779504491061461159547804354867902067020266602552219124499981495417000164646970476865322116754505280516425993005474354413996804110428601329699910200963669029012020989868268571176535500228571716228040468870284483509380329411881273973197615229373389998057398820401618965953721842651814773572439397582412229866755842584842290318450892532996131682385970469070898088804863094056624961147982470666755896245630117038993459689889557652767733222246446024239015659869354870760534974261065779916042855888226245273776333084450032537020489937030713470033149269223195555848558208054563003727175727415256196640533256106419693721760831196422865872082943334750234912066307675167892799339943215646583064090900651410327149526233121858867198907659108627299699776147244280294803112133745962820247442385109866499821065660071032505020227106890788831149920602909192685124482956094178017647842034826747509736328281339176874322804411722653088661166212350017478207418213376966995221307606999798091914588043863536439710423595859829143222659458330083602251310175652926782246843324893676386755925116719025315740832070017351954339255345370428339652724852148363372558545873962060477080346531471638620312618448843685809103428106337651068298099244002797906715294756544363244242628808664315034062908171876118427308491270245560824219790850111610935440253020444262367063955520764492892006624268689003379950128870464959911460235828659393270779537920223278792115290132657584815445877783372565148674064766068539730974953522653363879054286326632568775985331891856666467762173285081089155775391948360420636320429678435608495226787649843521036085521927887866463655128179605703155198207904581846378271641033762413932951864148466990208982407489362969495818656846452088410214983430041536530144604642296790799609257784374537471244092591629623641612791430264179589966766458679071076688011510944699551781118879712214135020060334741424054741747774375780843494571530019265618348838497199714378687836917662963163281491034423908300563510424905555127609072946966735253302492167720407486003622186437184233807272368130137042037418793867233667425454457237353951163648157179086786771965813355188274122979085392798517110701261147123520715338639870894074226985380266815471203184928761860980630305287027966700823012045880409227205478881858135376749727305785508812503009492889434805150038901578736757055086136813055625295003788110193622903053368285981522934549169043039300859537850339411081511620387192344600567634690542091412152963874023778874283062380811532351977592446433233287903720148171176688748283124463178446815050477507702546863554132221447893004845506835482455833175109580920486664098217514425376937360325432424612817405519202185025634274037936731364514507848067454458786846306923167080989381991288131479173193513149856266636585681352816219404218776981968772753014911992382305283738436122269819558441213234728163954455141144671439158716832020312824469014014439825904788690916209345578438592820253945053553833662077781282014513040962336071484555962340459150499339704979872047110924179279770213271420015251357880964426009805090964652446721964122099310071320555225380941283753609747925620039069608716753171982412611417259899611978162351327021114706435268909275558875269161721329525083656528214196481870510137478891856152047131604253026641255404718218772271700824616673573950633196988789654821390491339629666374535313931424969899771875062175146006186361030628206102133213192032487443102957090816423880570254764398741549539753142873736649771161648072099179795948112008672022132635983605322433363631485554463591917592956187517196839448702811788262801372142083813333504649595567792600269752138367413740186558931410590241069619928964383875819505239402612096361303494916490260323898768142411096006425919373903572132143374500225891819037276430735682260404365200799130063020758895038370309379816594207040295417857164256596401188495844572551439978079428893786324152269519303138960421589904766665614646629956646702345592273315732788586019693281465647032742363256974532019060009981189374836771307507498476584256955765860083342436121966674894035475233444699556490096140997321511767966253606346381233584299747036669910516596754630247942643599784344192905996691773429930799743910428406636434273102449072747479129439629648330963677982107207733694998118557407611789191204734907821001574055111201799608538960165182469422221344994847436487212706290494314927260576314568223623892067779953591630130170195245515500328511612569463535711095861311003712171670423791620132864182402114473667914176446816347600058807896373108817135272265760829098916998683968067167563722435631187719926823272237124785740702244951801918492403558611976723967890812639199125827928422360662935027283741930470812986422510239182829735082735527058381228381692424005873331022110123970060734613926810347204366697761781304032518281682869900938365958367051762182128484274261911759758324495605568903451746779324017202404158873922175777598847804724367645159946499624164504443342791982360856440014242879768518594450935383520887752726949904862795689168430183954041363299306281705549834695620113269157812315968977277521631360725779931918467608593127573702730472286139455565885192832086176662326619338436162877297976121341245010022214131296252357586866349630699984152640713599238163987641539113794106372356821090248616772674771449065263454025449707063767757475900646805395851382068743042545322936407452844245292119134178460215353019217188584260125255842666806394937810076679797283869998967438962927491789852365014393912540705645863268797269959049170112697510469412863143334302229910524169739447437030575204804804202824740726746075940866938543459866261557292890226260423945786462118589066265576334946486588226131151758140644657228126013277279074526861945974808929243401000155623722751782791561875727879479818468357737236730697805233357126983469406459995194748907237368070431926029337378366984186949368957342502807948277417821072728356649433461120197617916412258378620987431294362730390462135988469347009605597919306206575798345401122367474073867215703103576718589974539894089063455747872452183725161761911147802156729193283532393636552307658492588339310698248229975151350466571636256521071669278076242478244610409347391201025513508046591300524374579008158296833932829273350794091690735979981758145563830938615539646754719335645300804046008578187954507971585335384609188355113498130765910817274058674204979681224328554315535478301741544331971817677886985171046109022205415583448760397234702433151460850547963435338161026043020592655285215734216279277058237634879723328789331630101308594903175880655416726665488679030665220614169701293509933159516438979885752618103383422982730024949848841859220195438707807292086095852266392876590123431067609914242153063744844693230109027125863079350997234593774627496546088901670833865140776764872270031902610939630612505515057082412626409160480062897009670653698444701424123440655243916958225863469498906631764119521071890268824813656851041090586776884709833967044968504311975802279971788336055103462110499580160480089126496700736757780992019394837290469762240102473724805474093783336322819043587881529184408921619502472828034812859256355458449774852047648419903476405465203326949034953066259066562445596723318766650013575137464966838273174794228047544770211221338604617691496757713578333122134430126198175077797751681811047338637304810138438211431542724233137754245718623011350614906960089628970234552185093482365039850083686144727847404481110893433647231699294931509638469850497801875493814287581928983426999261421467094137731812664357694041314319040367626458692654748638184069986227677491920248955602611727951065108194719897914571475939761239563300400134010763839741114089819798422039277758171618135433860154627107201749835719646050092959708569975262473250594138272205284957421049283290618949705662296992136762623307204208742985730026515818125655865255659312074409403839584871773260429685929362880906744965239398810881956344282206905996781961547850061309181873540487159964517902002654495083366228195645461732433688061685351285966309710100339665308938089637074044115278093981016840829130776193780531523210874650126547510361896919691264361004291018085478354140755854403752880477008741108811704203217743762901326699703224363059932995974833669141573647013717807007020124066669432264697842108541908375726763467810549709364240581254271871785604711451238115323857090876081414170946743944580937899201421912728653494926464875142832357011294235441860455875774974805970651847210263614726825176324792339639133859407286427384735355930781068921956260474876910293499261904525482308576762819212689382090904972102120944725339786628104607121912610792055650785740629717864968539141135241305449370518551897119867173089033948674425134902795650137514780754954731624443142164349861871773843561376032095890273639971645062354962084426526900264944365155365190531922318697074739476901249127048822166620837341418624493937195308611451068445152397054808360396309386867455082021244898919908333762586530246797061759465488940497926213971002810323261837777403451622378689355092644982945697122990904989192479443031326334457545059444101039452318450632964533281853220961370937560163718397948389390175929398278177566230886900231460300254366937568614783629465383723191184208150486744551464300797171167921037966384138266120073428007095203149258871412231909599084839339713448358887250535903065853774756442341376031850134239453493163461866258516275375576243778183208434339228595191961778266496801383307440704631772711574521408339237653437160892698195122663593168945102630466003934209167493008733234624942649091271352398608153681559678979609446930756761542040777138573684875989259229272596983067179767564002609832428983270451473723319506277229847554865417908469495658499793045567682980436559988015505281649777373526466484478213862467586438900399233916550861841327351881262125784487551862810438829235168434387943134975539641231086070174819373958366295119159001109070809584700153721975065370628178947003085163550425975564876554583829817694633371466123062818974769877020877706779429485625035325546825198735356352414349944382058137099173557022477531403551573084178961306879674132017855488242499403825613353998615104661411616392778944633582345333836486856900377184608488430332803790569409280830627299239653416917154448755394121964184678129491796207380254208903909526334227155620021655985776745414586167750961813676288153546746692616668779927173948088335520838680717358734964605980418367781201270157948705899485359990621144796069265300093331251548218848375706341398008051421718392200854816478520870073955573216820326468997874873072499420946597711861885854251316932888521382444108407414402568974671631709917958903902414319634761166844249649982265687965226002127238147247625903120295422653456359173717358093521091194281107608590431810932311454373713280184559725699364958185612207549626643288752842307827876243244459022152912763759508719929441552872253003698625383737169165157291431901041526421981257779494863315842692992861528650815505546808754382529823310389479672134033155881776471897361536075784331072706952106071103515584511344650642442468704378777539518513199398322793410217088220062574938893654234191489303780992103105982320553221556315721957604941039966709456873729778652366119526412875823421442027140310718953256180463881710716619970684658901547192670101572711461766227530815862979718107666580328336600469434662786262681637124825574912177789117474566689452083423418338421963441412884957934494903754731641408713124570975488610763945233526565365740407514476813604757789665427514647921115362119670475628990618566845667224499215072073945230966123221247564135048045138206023031288443363953008874709253590178468075197819394024681216812522671146088278163056116171685882089876491339975390589930984997705585620682639661517236229528215422695328452020169294594400613246105312135317730410014299739164088778571582734389852937342376233928516872100860208844632966681805672733214430497566709871849509184861867258846183998812865915742294038989248363750626246000046964262238017236411075070401994574952220252155753816099167875199101625236844729277499385291891054608698239735508818762271383677163233427277617930589684461635743418756552166169317975933936608306686186908912620784683001581565301265182892671697405654383748661744022592720816623508423613278831455925658749030206348233408972299680482893797155047794453666327227764449885907918937063550866722288543500126398675120847288996051530681853038900351298870979561306750194396273777415141099647472630538093055776062131204433236258348808595804685631673901540591056213253188958802411918770768552310427866878309712804226211671227277872824203740654901125954456104178659945644221970517064420175654304788609447016310164486493870884042216041130263786390508655435881638116235289862683064722774925358654897683843600827021387846669441715817432242053699685667979471062723189319798528794728160571475158422033973197182006696253618575248665201436994142027395862804854538947462165135002291722822868747254802453145585298339113215733376632353139813409295825160521903557917311345746512471503119617482324224987805341971636276118143215473923136119690225871033736229218243097429662492395752140118678646846490165604445913384468465841898094944375826162640029501569703812312995898398441165388761855190161349518025906402144715284993332490425593309050992975329873597450641371852569038450181768891085558556996665937309216088026500381176988482745852339822466565935758968472816213196506413501324254182885461450343774118046308800947994376762247211873941724073119925080632976610653629697046727616204967204893177513284257082472591987334338969397281934682958717433994126458080128681302966087341853575755351843406921050531372511990792317124773616693198834599520613296992277296921494673194898608667949493233905057257755094744474096401821283445686597550694093110115116661971662245247567168948395883723690821889685636078210781709842376524843272386048645696845117042723119435058756796219752176640114504666512936729641825582101200708736586836705505227692358351940295575105927215739533683005263910003920000096491279098994812765974748899372441881341783588729796408181183249560168258449927173638753391335499392448490654014752286524820785688832250870230585385509632060452661756868853998912459571855705724020771813984243320285849731355250213704425420076983734855339801763551098766250643150746401843281106536448789022662714380462787843413247224280940256881467356765848069665628048184198316450057981079702127163299709401769701699172261388060653655522532895322631708279131639564651299566151043766939043822796347572923063720586436417125246539097777131850772850960824694343335845133954680554051970687166674390221803124600610327477981160993803769785350991606447559911140713212060707950913539905451859478028479071050215981386824004769674301936795810521945272066275102801245790928790507341276870306050963220808830554039181101207849626934090306467225251313538333034293801306618668293555462923431157003718969610508353047733746980621347003180652550922990724717250916479360254453650119213260138759302199537273497537883587399613732000570179901342264701557008433617867074737861364991105559248858046530301848150505638144674510241865722838261429061950857586310541958817815738883177630647303288208487352886828717280699730355191022192655963395641716617973086301943237793158311747522792359073810839457798506751962105038986879125362533165190894225870040192224480690589510055986898409576439969653928168197356092240693723324368340105693907613574414807418863170657373083035037673045014055719623625486707135249332677532564448588892003124994971629665120839539586836905439142866770731189819115253717852512159228676564376034756956134083651231031403238684680877860026357199429114127298033401398767998529883763997529401048602707479566754412344565765984569105343670805914151561032277336787956688184118628471822228065993264876983875631890063937760919195468703884705558337703323362743365789496809272089211055490474890537406615637012508822184987772141488550871581074224174913367290335892801727311158594361454125687914498142657391159998328695037491607772001918760201589066663014359322839342873690231003699707347179848343180210307769173723811788558822310744230908016673401470932247191139741026338574215481572673558622041621609903239273781620480989882715242983269350024568795334042054821177600276723841149552627171204740444895884199558976994532397824038953752091899136274710295553041403709231589511167640386128807343873503949112523166886303572732216704522674718897700300087737808781291582714867718047680532591059060455897989242639274720564892956355833919445331062739068974312199904032136876630261218617100595895805712548901001065017814691692497107536276528326427633131348018545178495206976523039746318251545636714026216452887539417743707301294825360779359145936777404979880869598897728460943677079082868074133107410079342203201521253352268610787526399308387542189883058410301732918092519045001373220158650310094001683611392445953557444144567355428117343857636789958477729625654768729857272662362766660966911304972381665301781288898209264450617815194301120012460933175079845469495298497333758722008323568283071695407681474197874240275595484969967253754003745903919605847729999601940233319842455311462640540286249034186754059422192457043899043515871417459272475378498230996174364695287654544381597518842032337909032486968727122690344317436841482525180631449384483957480964659486668539545455394704001708755909015315205834922488286070355806253297103772030786116215644297662295029480284542035588191269659918952222818950521462869836193354339721328089227566828390809161866784287062662070681122220177404403876504482527272517117913874284616111948310916775295538950972391825660865179056973009326603620492280057517388813644400360725509360038755781892001969245489580587742650449004774958609832037125874477342103469110768059243254756349451872075708744986625708546004392326991477711234443539630750721888347672577326695246821763569433065008668484867259984798428600402917264215929898182768263269491408239962863834773142909337710454756424010248385178770437046564886320229188102299050212510043142928998839101161992606391007769939943690229463599356076116044855180790576573228573665242060361559489368027323744822103915099171569380512460627834454277229624475658751638626849157809520842667563753610974449354598502742383195087330089938894928417399229248765872498572785985660034992801648703241072265599160765186074560570634713652045927709019573395657940732529992811081864607461503815572084384921834363733644405166308152635842393607099781974458180824277902440854690707212857564172582610687408522946705382056104991817714698947686679561614230066407538609948170139251387291301034842553495533072745907095522852867736163494640750803000543699331022512883316691221638984874900898538130229199595173740485708003937566658026249546136002594847117436798611335809819628295263725655193072016892537806091639050681447297128764011923673309816415704519108157732049509423221008753828779144203957338518329294728061720574956461188697467388470619867030958195013964865792750722396261394335022781123552170694559236395713521542108712289727937133234853183368185968720016881702772201934421587116595454668918802423983783216328331464052740604153719372208718733315813985044945809783878790374904652901509774507377258868578223857228801110038052025999587722853579047557305839293202422212819580088107398573676480976900111073025288830077163133205939243949081384209491439313445229072996873104793445217167188749406459537474812725546161407082353572878554349598765974815719718149621146653479263904063062514046821474429594754748510237895620431763238078501864264088812563232069678337531176320150333259706764571428433573566384273004428328839510025776995197397570307772978665699921682851622480396535960356443130890652281465834714018113366902009116543313259849833828962169744524233168336076808517882874967852386680312404070343019367875732368167998619928567284243696033155200995759978883272305917721347223531365698054573629255621555644403130573337749426203514983515008495170836819058783367471430645431212769557006260602432511125945765199439792627397078293383939967226086390383624005705819398841949919211458420329843481453513891189428031621929279809553386206144341502030156124502962656664639865376845858875224839992879001715759177052851275079041922078884960815181372826834823457003487453185384359937251594998010920784513576123918286678904001904712501490791690684566734706310254312541518588843749416746608900198879019350874406730260877739100712586060889739046773078188873908037039014483488618362810786994079928875075664523639485972957281708867645865312800252476997243114182137947584359527255017677080557061123610874959780318601129586241952545100619373449338626228064970680541278416583663744992502466237142936189268197868940299119568317057383296843020649620352513129097477176696529217073368767561718961676006887970861777332396586405212770749100005139972249159451520160648716204129072759622701611508240756419085320150651268165599197500881136794088909411776684506930985013781533012111353828107859600270419290358221025588978262968050012017791179780013673548433339279960279973939184945724293206092048494005016541101512247154431902073406820022413562769272138459900534509314367030524156375824553129192666022355354892439942786612738523322315918614811057557958803817694541064679674268110008281487685560277901389027235798901805386280200717263255400047486301791940669863981148558479824309919287540753223521356214996003695222896141711159785814256691603944299693509808138440236797947598051828900535905251712383243504869617286458990727682074384491043130735905763069067712024479424929031306107488420205554192658270657880585964959248291343720462355479426425749383057290480497483494264848803962226180072753385940313729246681427676824193978226966939961137337864984382327252921049053203125258627700434228823473064000912142014392789035198016917261501966177860141685847101926732195514688059286077239950598175061068999433017440581694648344734771123350414203584534675081208157515630287393400314451462565353620833385065716650842276419075899821042449901491815925436575096251027900035354502167746343344746645263237039068061836319244182144920083385247257199472749283512577247623668931760091759617911899086824192589000002061857470932984852351471033503444891765333661683253436665970996784943174719826891459986075630235503659474183406937258875087863179590254370894834030593375279237904637573859374470851279500695375754326872322059805624218170180175628872437604280158176848094336555902132836338256986077669044136130917892516625072467821985892700164104325855938923056880981573313203728154337204896774042254049819751173067802009235361779946430140108738300784600187913098060820651998968312845139416535649893814018224494794903265768812288206295560918040529712365393967166993064411369463612803025036139541300730647280969285360222312742221745326547353623739629377992486395581325743181078289987767608430003202463370422959752137120332683246680616368514023707825032863543933625459393660069953340864426271801957263542569050077547928755029469345976134308006848884101439806372942900204654421420779382470869551927120097821050474175591409751455948712455476994303007125123126514336478777238751602912022593319231888557898278511378684208215620717193280610650657694247044315261311205848363255602096095053572952391208609103555106884984571829966891516068946613293914393194056714974456548497583337512174539211624156802719953549228178662420220730026669529792093710882047187343803976139590865057750284348867476689346804273621986820087686798877652902037015111831930196864048985441508571481237203499838226895542384407370364338305841795212830811283326112523078234326456572538111037464725846939448060484455128734549286564200436075969203080392088889594815078420327925226719185790056278772808211124743861391592486713763550361129513397732427283874747147857781256688008752715338899838527787201834547099662359647215937593428277543702754466261393072636136831731429814750648610862050098057982671984546625629253042249955207196151805717085192989749690788034211362895831115361323890517885049424426226531930061134917310621837779525724188638574713581008660296318607300633471647594430558191618530605812198801634778475773033099251551066378312372436680124297327213494481008530014355438542345200959474812889100511409694902675727664805381884075670693527727364462830962490468695469173912388342730165800253641582294761997224721319225546629912931533399006043255608092524978264494689571892052436897102110004618920031418062763218517929744227732673279882507901624507380781167213662139234947604269296281313746407901646891444799861940171761518916010511615773359371191832350383823753308466135091567069217993040443631878464252901960124545823126164563725831346896489985297452077649296492887293300165307086920443918603626201857724454657865280583986257308723902581618689097623743854696296887658103255698473817670380235009630461564123842643909848861814314585134765123421204162020095673038569538600932772281724180791243051065299140915106664766336170697069696498841035696197847562342914150164125199470547388269430736364314759721156528779107262614881573990616841802556149013511039755420135117530347347514262867394757583868646096739833079432113438630191770344351514114350291532513121196543646731602636550189534622429173703075590244831275062402365792579100941723664537974136958395732597974313460683123434371136649446857192379419837850004869661887238363861223106490292517183518162261466321895295434943684916642773120011646399141201437014713065503807509798638166958274277284090513175447120512194032582094145203514622563856492314091440884209034999661429731395331516611724448714469502181408717181578283912580011187673324904872828775444441731676468389137080592709707248835278482042676692274862282605929368639693274122342339078843078454377739861001096766082956989147008834163790588811364946955695887029117582214517090634204073514070756531799257133466094792422864693916194414043290786022680631872840378305806117323732677782614428894143503106329433982959471738460872647688886894763147694828039453304181418986912165075378994270573859645622907022928873246068932040433258073542402821914196081762385125416963480328142697654289464614739087257321059559807812939540740841771189796382938683483183531851762452939408109017825132522698952426294509476774241462729407361360885303158408950734880147800153870288571074960570608951410782427094947854772681588572827173136835949970056486638473599611122535054914056997881184643517874860127224568125842861918855182971438074154084986421359252617059009037350992961648504668532562076051540191455922912042851091146467761962637552370803563711061280119694843176006769433372311572600382870715743415606937199913140748632473261816360072808461033877880753503279460581872907244380094588829018815121122263879955811764217246549814561709614509814713808488567455173285537226789323674391218806206856466873084638749299229066756721563985936997905003715018008681608602393553820912633151916898516138428297138592815628044091651077007315294852838862100401685717339076256505304436163382785383450574194529198746945432636903261991813109016050565273613072718172419078689362943631309752658542929310230398985740968723220016039420051882402861746615652495213118672182365511258685183890124704976867566496933783096638586925161337025536532325459009357961247546025642884749382713760140120027269389530178962427868410537522766739135717829687521435739299135603304653999696535330710413221615536330230125492579398388952331500695545865154518034089182694165627990769998059543057060301864350695996127642696188699247485741548250775817178505923833325589526071613257412585285932210301827466282487265534944337866691850728048343701232478287680552444286631002370112320986328743010981924970835659993428076549149455676750408707971138021784423954946915247053165914905876290143011399118208759700111674423358244563183539420471396656679474963785015910681083892474542066930847734093343411468149738846832784130255931807179537032070251413858014724665487259850317254826697989234501245688063351392179926533300372095486585404876608181101290826010377790892301027199915912508744028640498506668732382775047490198255419488940699009308896022270044799328395599576911697176353679762518357131083174743702151479501603543070476025234603855811168090481249821310073870088111769268586220709031852399684406745129901930731600248909297588299415366586347561470143461950790877250578763496969498288901103212053339369645382609315103952448766674486344828736878279957098948901641350506366256046558809237758607715188002070108366450838914352909337012779659713002530881601218390169578703774826242446323064127990974232008799528418199212025484646956002399474116946493675745698133188061448530976476857435173328447008585730950762847376670052569867345772482111018896918865014039908725586593524864547989599700165009685983694077278360018648286357002286323043704962844564998516032047925634741241588561098871810855355507971987919673867462992430895663554158319333154053575212433974770550183910846069832709456192689708227339282012832608979052042863321056804296396636963517057111290601581075135871347533984024167606590474456379790257389858276782082024493096991551315191343246834539633254325241883463856853798912678757734512123425437482051122166004907740563559642589471252784761967945626448794890035536649269985685358267939027815121352295199168362857956772701254053849159641646272558263157368761882670309336634519654152274340725105517606916162098189370196509855818952146541053076941361973653923450990130014027681597308228974172210199835221920624673603585327642115038571198716960024360482740929503202098876147349130742065113468128425285853366381156672276651345798430109075780106193517007157956742470939787333721524192152202823569564440258416891750835285821222805276379381169174874494369519820297316675463617774920208247965262257385802603411665848453321120746392937333979016532584267184179782315047844984431686682593523779089562279706450287462295741884250358949877061578747398653353885386199129070796695288854572715562483146575622675009671139279534839535710020697637771695314846849373086589285920305373109922165059288988836424607871596267164093477687997358423560075116247226502450177326612569412728442836638641134167975426556621278625529870895326262041492579134091182010643501430315304033464459208319024525516492563377228191032277093018320088157542407126949742579760005813712061637581476393546482243283318954059521797447017700741283645860194592642021307394418651686035617778598727063951527293812456812374453969450339154777626947888045887938725882397416905452041955296908151266925632256828057429707127174950431376510129550940869037855327458339505840812291026363474222703969952492056206221487047738157448214932258502040189703716004258622637819215464419778123796629378982753298699187256440137952724776424783956095483364852607345534537858754244466092085579213502995505015581520184840757136737177027909758984064711312796657892342213254212148915065154776613095429499022029043842338014622463972236891869787300608353948261194098187998577532567138391473008346568771176739791457863834666724855614280475951675229295874190538491242996946555054856328575486646933455968351730856292881942446619624551454095445538112387043967352854550231706519186527788891230203271409911559291913658085536892955818804895780905119078753345240248087185590256962640822149454151278521936677515518815563493572302003241809896844309755138700513111718628288516858706179825028172625975216153856880511269985328692493812577118637783111169555730519062467223429796769257586715453676607224434908764825819501010807998209611942179803203519727545965299777757098153794925653325420458832255012304504581735378728194347181488054600899967162274995613282387358714915498627972848619714281339477718431860675903733070212747301554506927359839596493073883429558607560048098814290676212155182593633954424280788252905372217336839158343941369365647772032780127830781514064934300775223799613606750630082817062535346047709640174994451181523268145834919317288081086198245827168618864065920967845360141173291858003326884283065691503846475040720560694480951982848136299274720644086325997892947680195775730413223733817049946069826982767485999742237962982702227710764224044531388171869146720328494016913541181921125817072014664099755757568566767423798835057767125140617508956444971955760543317136971703406249310494884223730735846659541523829565625695543595285463838290697416000875528475088230918155274374935491193808488579025068072089143750367458785704421257899271982247409046137509627289964357489711314078901170669886970313857640395017752151239595335398530372429423269336602568537494749162092039768788382020088451580905997846319648039386851053044146983525428965596377825841968428520594022700681295189118269169035750480707412794503998268231710539233817813869143538902600414213878732634845160040656968513707374949830596083425142421078494613926288243949398128215154451944286120363311881102412426059231612983087000881018066386394555889268708647982189903606273351552210679663126712166109556073527313737150383915870129788738461317210081425367123592612479786067027990694104536510734090190769740403305493135348860352467303722805148123455399951288691724343008792709835711956523930886623444230866938323469261240317557602711645524338519125770751004824156880637434302266271355170792048007249933277110971955752112124365066495143336987512644944923452919686908469754589406633952270084337714515717314216336840562962289157900160398441300723962049395947316975138453584012136777483979777906802932869789896007524849841856440212746028388403960908963512484789425965629499979101142365134854075239158560644373624576260857017116541163923823760262931840902230244194627540996232019738523766347312278307312907296210934266519735360487207761979440941592696174446611960135858140446529932724732164599937530857349116451082526212532289977332796389081221611559661881439292823452141784764901578165107073894811309132107239476762295094670784100237266779687734294301610656149625971038483175602088796725235928799361986506778826636538268011974865381761632272678121068934912213201144056282173555068061082114927185530209249485770197320328160825572911023680868806083117542084187981197341707495632172512883860766637999226970311126212787460973131050521163707964033722942383451837292714158489797283740532474711675992874693807149645113730869790233309422595744212597020801824625661372870123764414789963775999145297626126421762867617399678970382219615328833115444016285579876942149782816347947299616618848343016505525247594593573913396984485485607760020280796286725917830347228758099426513028029507461404588141878929449416026147889264197849653639268911024332139849440316066729816653066076312768229489574515180526722091343367321324274286750406711179098885982276564305695195239632534735731789223702406462839809131542605420636310176561904832385551161732477730017991450743047724756924839026700975294857111353726891329188815042604224400570466452817499560325802814411591311959542221566800828168976200624509557187907642873031784052569958229048040683396079050623213735781151267905447891139198407604540572009028002514351481590997659049138944790257881596869950824287416109166271447705921052028843383416497816170278513938405191210573432493239460445715354644608632784042927456242220472619214805713753723660432087285021548367516296149517726692978374362062116285690326693315344502147056751826196033224633680569994445154159789733251865512190242384666185813806807665565414470299906771790605691060748357616674506475716399122494354921420502781492889371483579186036490049386188344519091496668651630379791194557130780302359161344334948772610779585960936014125685437209617340461017969448851676428760012912694818559007698270189916682115061497268975803790292375017807911714769390562141794125993842026760801280610701575921443513205655156924596432858128675122875235705512345094385049373854214190707012261213958814096662346445132647099442468538672044656360608973455888108297795902490253242559336994624612117595967535347831634217312560730395982068286576876756747630219461716070782851267017241689133145246843438335020833255029915764018212417672488160825791730233410245056683973068474881631258161081041711635890609279892749605452554411357994629222656486277056747091235031485345673774436604314215432941650876211838962901623657316104545799635074804097358332441846268566683167135394312526443116084839271865509991647230092097350839443920357358050234736256195362856833992346718016711103324080610598459487646392411700217225358836522529908896766844210085882465914021090039547979387626815651309647358836713471679716488352017021375401948908060292810384558444847303275795452489253866019487214396865872482667298894569064589923168681676322185088476665487640784623367758770382244045387190030738422692004771999361068378197986203829018080995335533043549064328057578429559026561346415364033220878059450355618621853720588805298156431567226705765732247961588463074783538238688297353904610958218572342278381004203399032801596708800886018720106489847497904023762947033048965588100467228659868340735095558297692956242217199323550452110948856657907541563720236134759492437601911639408580038460844278914906817659351584012788638810273551663646892916239024819171031834049145295323733674068714702182395341567525049811286478217576167698646099120481001303934050415827010839066499448480447231805249572521462619268820101325535699586360555868382047578295231484228340279550133106540706771753422875525471522875758123200345365561410784118922970792541295665026566953090790077743889610069385290997597497094779446906446847790457274005520421779387519733028014566718618129858126217011417580892727069611101348667473146338987598927520372250122744341153689953693099193152641043001922767530531225906862702353788727100354747288530548773157794818103095007903957315953955488045026867386493902870521857197700109477910899095673375756613835993045161157563484964153284664766055882793260778102389198243057961935788869794948783927480310589291712850154832045353540157087468625803015695111374415498594211523853001052161181959133671989518472472218961659517774087410231969391175170866360826944280340288114148270346779378125626121796457622231831573116292803437586259586554857454780931633345951605205313266633471788180332675146728682221283248829327047969000709761000366290744032124038392625817482321772834101575849423431121839456942030713187813316884388625323546214698668783171480338792657475994294007161691109925225634573395181106594071636992923647944965635653644745574766914507462007078690449124811742500075879290395102103756866654274018242805756016688124943928157125991984865341993565641095683647530548791435261915719299501918281860342040519446417444540019483662418166498176985879395384888277494218898950211581837818692085378599219352263775932288642047270971511838802506507608558370104938925719689809872283306770522154174886039171237165351011920131003828098919319664823635031924719408042049487750005653864230167593887760920598785352685613395005168053262752880067270798270141805884262385763744707949320105105776185779453761777918626655589807266274476791921125877479361786840527868015465531101227975050208813250359675212213735015130967981009224767690163217452589690144697584052644497410290201197636889770986995565581473655821597631342124510731153139348561160337430197446576462922563214738689010010614553599683094164741830159453548386857956019162597706945757814814872931692623312168127438815900962205469670123793174786178052586437650138081621812613750896119227388316139433377688894007871605748045154045385374197424519458265784114409968051931033980694112631963501983749859955732658395913721374920378399499644493044701389361301471221307716336906559770908043227232152675834115899798438409130165781564384072392814684617068905711156950243893554303213765974027365801379217414371244930366745281494180416274735704511052697356775036869439299633590353753079760654075649469820836483961650888004836898988702992497107964366835758490279218328222021023515220224230279051547226210046232635635962606316507569309653116732190277033820916352964769377238949035020897704088606451646776471902937841436096290265629016115085928092595996139464463464942542500286204168447288177828581898662757179655250386657936856656024941323170020201895967798725935195367872197412804581836423009744263013390651293404590599614550171494554917221333781105816025035375336307233373323457614092019948574170941777971680741351654086869586527569800041025151435266911907331422161645073230938158825584171562192576713727323753460405981894328892898234803208734693497544695222779468652236538320303321899508514023925512811673767183889940659894222509408836434403962030712221003216549009664510085218458767507872050504886584078204266457960239567136524151518317573521585472018979153033537452180300563608360069710671460040541965880865429542002461668332577834965167527388357180364076565289582905947759870772680841427014344017610217857559929996739755024141986560076079383762370555146548972870625817025507901378414496291501593634387058834563508790893913560023476798747243054321503641740217058614265817193997417430292926025275365648234849279126547736528009279889212306885040393285862202766211898541638079193994758364993071128350665540306387016415185733459825834659959584480043686807369557339799015861297522783230347532505680854432023248873245554597752026332143771668011497160041942041391586880525755802745224992135624001015725889220252294371235467289978351027573625062088761500262390294136430393375489149002509924381635751889751841833389323825212648091308231910345652105240207750846143083366437153284198568230927442744010077736106748429056595851566152135257709844972779297129249324239941581240458145582617340317053466773757442343046267770840644851518413880612975610224861327203294748484380970591892400131419886877249985405983589170671287826219200056949536147986237973302650086750690517493998461645709874180418972618173323340437424884086582425445415646626318878124955161569171359273682907820163050220414967233581359547578374495079361459187026795475881738576476835362796834629626848837399659759608299913773431903262804504607679880624348117057005649289974695332052890901975865675631585561508953810824838306859189082276520533010719791975407169872305347455474168363557627371250681742128516269793104927544310225087702089306158088764515374880230359397409545133152011234574387318794163549586463916741900465224999685669609119081359788404315322979553104089762874947322335100852481671189227293946712123843317602821404480464293580687700063642042414065056019384071535260895582577331482542642106472400449001616180236398476745318842088969390675211394359683444176673585979232108257464147248280420208311484328918501265702364402613063129382801565410910300399139851132608735333372641428593674661007454024826550041910443063523682176241235724767462291241506549265220558697813356562248086952476538557457727150939001547853078876038171306670732613978053736678546821633663518298200903418062382065673527581786816341746666756147421780085407510872878835104206681643315606631078787453540775937940991813372179978517855593814908347460334816800675017743587370145885535917468277788351175865650576567557046970172596835019161452598768114381629600225257971768824786869366760316546914321298529151101339683396772295194214736939539876878954278997526782716324210397813181672261320623101623366747329619689091764855671251994698445768068903254005721541823188061863929706803353030857463107784391653290447415853944158797722393571657244759539652978653288499634826102688072248876344548872046950281870445374418437515542449319681733393024785835621751086378615017516765627041854605727199500051530073702562436219143290405440266200193000243858121088269348651570029333389308018829388400593696967675091099805025537578225975255961902360632032994387384985651553909987171976963471754691675336683614540006029474209679380680142403731228115240914893300191512937982129865158452644842620536695789001297006963848197378575245485124083335689832121051360908816496285409961313741616628148580137072346769053832625539991041122059681575895021571879287533620445272782466905858315669820259957512883394548006335412624992934404406297203683618729700421497024827218732632947117123159076149239909400162387795376208861213211977144372920760139101030767492251118040435076459795866037350939648795787849610160534674253905600123866816949485690319748169893497431785348853070005877686671966165675895357020058039630446249892159448470417425672296516212263662227546437056804459420991834623841444260235628463957945447369677906281179918123464900653937767854916809281460772617839488253559010255440222148906494486831534309271983781311979405704835190075544297109288793561489709204837461908813115367541013257343342450350185577744230446216525625907924069041570306135562752912801335824287709337277457456503229508833823993768994684068750281414780733215859633762192846486907496138868933335492433896196793671915812195714384122396351321600833723368953454609861225942986302113330387943902373546621380723973357921554387625026531493350445398477098854478626371819189244954835796777487208833820289845535588484720433160899632622743181126754411257063138195167225731630734211717005903848145464199821701687516015028955573337701577894344037659984289639096491103601338536969752225134355084485114533211757381943633657217639502070331460830507493290981709265853861122128685976847770110728532632379976225138615612970897920136433029318268622832485677042689620991585504924820469111248158701249911290857259684056067181625284961400327665962759498045652773015008042142077667884795113804055356188232646210830206619667044598719302601037408360003559836986549364450430301972715790403730032981900077410781056775750111885849881382146819214819362018454499593625937045136542318863400426448191372456185368648361647706867700784477527479336422966837367572052280055560597902523630850195147278534405799786041962507607521383078220751855412970510148623962437714000732495800383704932016728656460676967067216463439854040204517197042796516890933312609543036552463174499325627131069773295208287096293287213629391003488550432112665571937056865604214523887255217698072922903431941940149872824657062576661040812260298777300500729197034849433303894931277393134938221701688737050410493427956788329207571662996008100053513301117425893226411605969764771897228387578687739488136656239804852288838446039103706090393969944855627414026133777809334121095798154269590498508507704044448609361863822141970537301508356249689158159423918943883738951973323336555563459716809299487480880704858943664549842773125983449615824971239902165269689230556178479454909352811721498097269837038334432023653570341315211303424304935985977974902744046413144162169863765227031744828107338112676580876651969735730638525610683197347597418422355032551377408691030423236437133810904323652654492277078959294103396240421388958362792290517429732526257010436908684712924396429972195803388262423620932142252777714574702423123899144123817324152422158250401119708071613570467237779897367760750490165248676392270774929967501391462584245357287299036156314748606211354378363397690934562338622524348447933013602988651569881839014549107275453048553248460189683058199518356733220690556044610732503651324970207679082719052096366021884697383081260120339918688757879176533083334311611237523790167795111293116441919762766264851903459599431271431688002914335731376816693182745546823868335735429761764553599157297564448546608688757106455115604581067751412587082352354373956215358116133183964785655153470766703159109720392436319137166307306183628730507805834869979552391537394912275530652878956892438187675120575599573773976020071594991478325314348471489283036877912676846174222167155047428151072531327832164606675050661183628664863284736539495842379143964196769678877128509566125668217941926033951768959348576172846786286491262383005346008925756214626634596791072461191484718499797802652391090637059941686508652103036551266858891583587582140659233109626537968490936082569467977388523397531942996843466232518421376988478349445704283775457166338427022319485332464564982636691574302669642804219712858861209303372029727641408552180610097546674304977810336423028424349039979578581335816114864186356346801664885754280137612499402771931785535088916659515053114663365387901948626449206097231871866272102619303458589573572571192895781891641072860365822643631490092367337306127698453885284181544917936239550220191023243909831173481669863349838832665549033505961263610696934368785628905670787447961958448607121474377802402367348653278540095692427226209748102741040031027935875211024330304377585658592368932707968703347763145345524571510607038277864037031870418933790162138850681863146120031864246169893071644675543661184509597258476727101385308065432306716190823224674448330056235154978829520188474747078613676674551603036090923228277988727017047252928986932315065192084186985082411976143736088926155007698952178969767618220599215435466834677805801602712302606271453647927256288970516088969182366914967627906929662970291573138219704575910969002583440096658905375976796784455142937494869228841394073536702399012067295590783336921734626407195123309288420255052032689061813342737016277853511865405579973152940898421984809529823094513912615579684165397103935987242361324367638286799884683998343059190149823495974369612023628749753340107291870759688712353306916179992998487786062550504700971134063196736362441332082101180284388855547287262356263419484706736396921107634818281070363515032733261274006745820937548355251578990690983082717711920995444851536850719052041808500620408792501764204922228947079740264642037256757205332301985045277288029494581891497765960561916557471306154930843445971428392534143672147340257210572440707289725425351974570289937582311935896653119341663726062258789443946048362664753335838744749547393991830439300014238308880841316930991584297315699897151632498584184115808736590133321350360700457994045874108084931271983307735926229542478586344954381286570412781175868415128424309144500034334506739557454230426855487388733745204253856618505904962771281135042366128629758020484308735596658041609974915220619099833739690215958991003596645878253531474405755978862817778900556635926699075097360555802035840101556696964365990868680912122902021523260959413282237838231951867314267246686720768106635987736559783469468341497314192013454687916989719954365380617370990098065441960412205727196201511519554360487814214502744071024398607401589715133586340594712035592125188074576649366332193696609732166591696416308791888004244913808708624902615128996835837991682325882819093532770668717817659587077982843047283328975534164263600659546625966372817957945846212227162159541371048360061162425451203580774595441693170844037994460698398003691653567035519795473458427198920296596366374832827809980719383908287111759941764909906328928614537257458708166293693356413075616599743615030529480568755543124301073137001780992205627594622682356170296373173264395340101926398341195308862267019489720279593690786767811722242419079296860609541655193810684026598706938702456669838978261245938348152135721045494022227499126303239454268310254861939375186657953292597911088628940750146942509644866255124724387152853056238682350204195584677272826524635873657797529088281098146829401095027727182471811630294717609393116644755260612537549657724682142478675131219526260106785697204295024407917700292642719196825323056284967312221419893957064458592221504723483742563333188654068418889538672582724166189607391803388309589896399941895147353010035276033708486175589205247767644335476855329893843551062191797873208378608677365720102813529335177441870321913611201755533869309586930177732942766894139107353382650051338759467735783861513056434581903028143031844444353005371715663042548976884819994101188763300252216090775226186767766926335896070212897144881636340686084751166666781803524827012911861157904498498991413636297626160530655689336524192441624766982807847362003181020625087892757489882896635184148270430157179717712969688313210321932783516147522620543174227997815690771129587080600787643466095853601203731792326082089069341309000221417685247153302734520675917387720556752939020183556071144920591439557162767094297797761688154050607734153157103838195428785312540378634233839343401034445471142678290307844448249560350102291990164565440065407241696469773002983076803915436035980196971327436329681722422473199816029810629517962563804560022748020021660783422048340424219497287187173957781765987304039597280434396289236067704273033987876045792614423615419287669338463991392004429765085622123466320432641491254534322539753423100473265089575900594650675225546994145754325067732740040131150867714528141891036147436416128732713334544756643489503498754609563165655871919061056672755350649005666039380860032623553020775023501049755210155827743193525690634221335239074583399890669196616166468779546669179715075514844832904145917921190333348361531903663100578326141912501651614057358980981091543353000846485999016904183322476776729602368186319933454487659321220062218594313785282573689776512737641963682848663761282265521027062773506258185921930567311805384988995477120180563042421779870016588393488487141210811615697019697220250379596964778932946981754152167468579229906827964149677470258578991387040805787688772178641038773142282229305863367346619349464458108442228833113802609028065425490142604063106187780195543843153525849060217431223392758038212157716746380824897294547019418946394247667474467192124292668009491302075775767877124922786583867141571810406738162628467344370001927716410911505797525670325239559062838595817634297756332716407637667268159647922505363005518996105137849929712843359697846415843906293326989990871155972625220953591876691733144839861269224804703761436618305345350252725792426221313039164552830388617773779189111883237302813246881358978065595415347650050576918253218209717064958063537867301804141165476778034184838632521282112365210722966767280180515815997758811281089581137579351069693444637090548514145182158863428308866159314800689078833577444051118690708924343665060870501389159329593180871977482554382125936418372072427699799653625922973413404249094146403227941244395442187187321308135006102652749324053881135431853101085025138960874118258180267582983574441190472537833491127782485888179721208555227453458243829816315879765865824283473721344161865536943305967274294770938772599618185493370982107243428657849842019803776699869900061673743243166337876727008604552090298369325098980170160888534986433921315470524482251508637665278533126873695612148449567299603572475292262660781566796325383252620062992687117728460382208722115685011656680820281693159224162782738425879847451361321979778595135437002582330108678757343874789926772297892362478976905550292353156263946914718686393382694486461526866080645607031414014504443386935137091686653744120005830348007416615682616981848828201081297293470518409901098666039797886569055754723699895954203822364982801114433420516402531683711255508256987779040488620983060310506004048940806568476698020606253095739981329322842792726066254105194769243722070805200692225269195490733783766851925748290063475366807781212940642251126844581525104231819496364338539613010338816314763158927838852840492427779793587237871090820589898562394544993487756966860230619699037166048654099405155615933552767863233499047030914363699279513582408158295657849335883843176354853620797213716167185127666218508334252801528353837844925981915130325623517513787816666297219188655864562457353488943720187320989507612468513863594844733237368293007221457896081905007878720240212823336866658292372108917016834828072928664573834183550820611647290141265985586776282411038917806227029958086171040017270270586456285890867937794094606493563721176511944808659283556891074578084029028473696851803151489812143379935403156836580257641306018659662659894647696955949053933128341559263018460378524341464735658034556500184541793940258374482011454498702822908413563149549028698273601264618992852929784665027164121482776807698480977663897212481511575268985810659938890277901089472583833678317656321970246742376474410856749760340839124213337126404426889193953234722591296817520258991529187931529549983240383753659124783189173139789667880078746139369469391346480154056925277463409962875901262177674046365429315346137418805460274110201236534358592976892710504357781704866363501021958901369615365310011604233395006997624863991510770919382118953701508862744609577367350613717601869421223616370612744439522736117257368137597685379368665250557342475462023186380702516685657571289591055714618422252326304570335675347408663314556504012974258655815613767912138812844424674383545551967420105577432935309180593164295934734901928037582741028862476283664098329630804678672989022170545184457601742108662507629139632694790139251270735885804560563009654648539378649523847071288808664134651508470891280104711154154603798019303881941214771144597083265851733331365081794165627682355046141170245711392522060829835887916900335821738897583830162583551617907428381757054271050489822478087764967616350928371919161727475641188776408033979962987569668158941298425261937199324738390957476304662651818274366777535184908991459721890717163376999056679279459751690371756411704618636846934491173887905207704713302265448960092950427396261793720397519898416202175323088065392669624296133477415853093939645358034224284482888779469672304195335732331255989679575371258969373431848403821923069679946255489390257869809144394588090574887840593590115420792354518303637672145021628098679027345995753555276442045053932508657942674752932008278902949281054956285726230853764353235006190024495502025702941844078912578070724683074175219581314752461275645532921662531995842032750370362872990478402622523858024877532131102900380700715058293992883330871131050403416598823255070824147739557374232893394643029115703987062128706349327133814444543636429399014491495526316752670822846394541456014630642721917049254961070654662324701106306880713046749702615356908482754608827572403978341399084864797453700832583891430132400001808181552295714395165707087720518427993329947418157286584678584892202079729123043877618329467000836965114256002950667840595457468368752193550135930445079180806107413479463341485343044404775908186134590361150035327831117258264239721785268986422822440245334513811599193136172764263057559258157657380027171777035899838183377470651594337920657773466484279257809988891234884570460235830421791144745774674491552103204126241708385225355741628350132499274977194116771208213874086009897470020286369686587059065172516742301294833375170091193882978378035283917991409120776658497734464612344845915646858606348074721904896295195485305283445988983675529651654040765882203674286744782559750040333577134332165146130363359934422483703073891925777464623409860699647689046140508048806945752612787730845346490704048421197469496946940462859279856482232657488206025246165672570333678676140987464313933183831046158898264828250594261361329741858101148226553019541765213674525959493670227684393443141105125640080906724889384464224081093835555755919380103920050274037052840545586167992956641145951991058042444941963791786710297042469799333039944124851669233531070331580791584266037492749237838693698338206747814861195256637825446843357078152500185356391795028497231226466768307627518764326660465486395605017048441279556525157873775329505482151698116849028514672773695173672585184242581214148089297056055388536031799227622757402411340628497797898868475270371183733020397224160968970329543038403968778386197868406540248188123623295760948282143298522916189651291870996265620985920405267980733635845298405053178683604865793126294378920150399075818136956211840742331638251618026383447110080754119812663706628536806297156774338003882101431663967072457092390322372904705871576008854720371818522948764398001128682071085318558554980683210272442218563617208675083809611362239085647337782410345812002983794937379654696570639587096044319398118965135379657829599559259766649699748451495850281067585423091059160454771668104484516119596921439541390287738983090613615293743404469079152405296554423747036882506298949603369720807016983988867645584941314638182869296464065583721051135758465924466209583500749256594069175967402287523559422724154906485959328354763121549755688080145997157429122390030451412087283445843497400986892165938625914561912990502003217551403299456582277959676895251356792237795844340863525930734070319205475326229658475025485568144908879164866839746229844369522650692095175937093460561182541077311004176376741651624175198319008374773176218049751236586577316559101164752371497882438357503160173467441954088116254110786661897398482921595181125642751708164805965202794173382159143411831314388867508386229391941684626643843537724071836257691164498037534856589430917206237779941763445456094614812088624295626375537351201535438574495940117584041650057991719789887314759762910642665378292995522056812019080059020944407698687110706413700770569319356479072831924213501463131314127938250877358557384906701486310887593991628965628758276661760232154019466350270803021126343558906451017517544754013439225306167950919459307641926709394631660016111975256953663696789341543560571747623420768156654888943679789315183220924135859271337977414454102478124245192111832974293204053857259652423150936536075531812138582468381360056570088067608378243638804156172850990014384650151718220820751998782734727192181210435975224134344678988202147913202050444389396726756704972466888138914693030425837176325770325001230370513265587550775325418114308524865881723552289205745224539593913907738643734263502053414791138657742620556142401732206413214698694512780783704541156211849284846726557960394822755690975012427415304697108204847858038584065942543850380266341197572683322215001900946072576583622446671595213367923858063701334284778494257038895655436949836100179331724197211510087495529313631898023053371694244691643306426202795588440971440550390896753134286067329483426262191108212398224558076910939097897520696058574036710028376332123752936773438617085051434377965926978865249852633767420269602680903901989594326327178352309619963947333500735160273721013642288949288893701022245874797067680497971954162487203297398302573180842833046518381555261552305924245758274993682984123189330431658468513432080893987644847653896531642330047762222551507478099776125553405616355284956654120158606191309916786671749511686226109052664593017425518630607168670265445544808181179300579193322943806543959266468506808688216426305081335235377846538009718782913831299862221110657360283020987920465934825143108973681694032448294992345130068311618563836650096355573112673029065948384048499969730261830667834491682771443880803397841948740664134645659622691300564988696952806747086440833958862502570953542235010496105646438222320330406731864005403357078655618577076713418302757348921129503604673137679231495943443988093885750218864219525334960019120772288265523044726454116923811045450971127223707478254319756983505013305056073848684344517853680057341879827220446923023820921464899021279124803552256846741172897752074157942462205743289965728068633471986787662520585981215402328737193066830490204407777034904937174111506331005995020579020772617077616027510965225249129705507918492459713933191214193164509949320689064453081185007293574354948362729095319156051469672232353846679494998982148082820311580780038824492349687159389634869944775332726987923252617012275125343434556891783196518759314377727080069807642738780571460903968968599980300159592058967729265258730587776378361859557850429612197652934789765508473859177185875117529609521338537360255031193895417904239906465839753537277480572182698489120929799211980552898816095995220602375650573193829452136722441750311922643195762924186701001642810823867253979852716253303625345052408171106122598806909346693134793969390414071899710264260642312947731477286434812158589197267117867357989611449140837888385832155537287202029608364559991815529197777292571206032092578000340969463648385204430027368142674516142809715185132657439440671523938609714461103192026698230052545137393680718815469967687278726611125596501595280628691287213569437692389147308996320615202181578581419756377888534412899695896791544965827619521873701123452626389741968816639292850688022667039609705432329796830601033172710253236066248274813871661740521583920936554412164670813239501391010166617534650642905672655910240698596279561280655465408439049965860263602124240939987428805283558445016507102012359767796368586263148757219084756979656324576300954615511674447197182741944690984251625722518359019290919053978970485733865534360895030841414933170655956470966375276568437858772075621546411404032849903852478488985810356386844140664617695527821159701414330636639847239519062307257042657418356665124241459449140395006420179270478892435783207166872965252658381546848510661067345920586685494324867568175487193229991575896536187658941757596944337312230070369051386501236498351311880144613091321767587919533755623302500279910317369635539445811393690002694408112881200428948355895886518604252102650972331326814980667790847663856066847931464473667087269303191114151368850294216481037011965371656798435828533623934943287252175279785325306184178434554632788406781532632602362074677712211071803729626237818766892348574759247989918691579771002079785074098855089975852034067712140827514520351267114054919911531021853455807667834287011586124292589530481430677452164868322467454905662265159622466015907434182068067071290481698336950661099962908111676754582726471745078102710694296381891096371998840706218009827442827089750806800874262243558948077639389887765880367328626860670080142959802344769114765027395848367837483097970907967420544283306891475439965045878199139055448934963826954960720111470420359580448420701479884066970873223262424888455325980553722665982381480603434584596363969247730090827626482670487336949630065799065576076380222482510098485079768749181046511462865050660629420153473264401880075077602745021831522949316034910580704004678274793972933019251587777743050894937121942557396080487746713417309972447464333817371548630331292730030854445864446260851679973224219319217726422583631636423654157541279735507725195956635317112807129588061766318065966471391612623773879447805773556280577549244805598596537387775778940300680448811326343135133618591105153593151754880357040190489914309026478147437611953279391782947426077522025916982254798049180019928883104602352700489205789831966562327278480743789308231555296585993795507954674630387982228026550767849378593811511630293797422533013151473891829343149664678450630808776495678370154898382994628016290373372271028844184294691499886136802930496268693132019923846673084837164579595481537616963068539808415543162439702628342407583391802464107048454376602341674732745442650680878116220906709000121218022649878688543988144203219906728905344500192509231185444619548552411965172418663704257459071748270219701983393493492009034074977602620712770791792768516622624051950324295196556202800382558476348305384613384108058981374946007028079862618780823210085212597407128082863016495132263557044938628352447117668950788052722990594142513348797858777204630666372935462447655849796320552529074855611932085981625413995442173404674064586990247252688975177952596389214672854393526621411578962574188069855681839459836091065237260845368488199972738729025496121420108532103266499895040863138295275398829968096056368493485344664343368100219806360857076236619443035463187538022847606637988457070527474753025975897685439795125617757343682966223362572444885081366961747346638796674194257629403029224371925906676571238102239515388084886578986817089402851906565774131264661751422317124079588476528819575655814997570418790382114257570811752469869000465514952065504753970178749442610010829341948988264344866686994038229174323420899160822940375391291681664989848615157669421098037520719043470925146345457724428349172410239289777078313987315665878813692759290572157149374539806087886028627241630991663505042899443853510426367558527640609196840359901448053630578360405318364820170183578955798573201369636460172831323816001244724304825202995604632879725854022541163266707020855142606072496480611345660421187091036131835092578279181872026954988848654958637153155696579099978675439441628053361927366949145721649576364152027006060121897355356426180588951274927656038920882886024554074201422385530125958925311305144288288877709614716760178198505191987387632906585319141156519699096226782333421681489370728194974502158009640808556294656903515172620137039316343986408451220840808407525860177055117829512166692772542745358825991404606240083038001081977228272910175655206218979418877508749329437563952205670868775112520213758261494303843605809900541091881702999947626934477318038734836543617640814535181559219238054244617115792275403676426108367442276467755241317517243947636274658670237025704714599837176874556895724645796117631884909271437083907799015498375592680116812420542616733594432171845178097282688876927259376286695037035873509847572754864543130549155533078445853971136710525218544663977864969373378639710741840506421725620360469575901153235003489999460190006643316095816049860918066608287278126005778498050757501761195592540765816505390706296750326570748863578789193314230063371647940846806206059946234968684135366323637161385007743187242908644726766567914186438479774078251075137203375577461068618978991578117563039028977156195568937777555150118499087379615181337761574157899588217052003783501509242293418858018631230688045285578392908828103012225442975059353311504329453554159018589294505969877279363586479450246671599687094429203773134384250067099152557794279549461398866239940950257924800680529847865361556261387532702687587962423373098466102551125778531403490139077043261345315170106227295269232938967334722707915981527317495698272397611796792870509879757105731906372312169443822823838043390316630137278096448290103932794986426151548936039803215230520288421470687690302866485589078524036550001214476852071202268741226567320501199437275663868297884970175976350218688512831275928982857435602636689112444788546708404598769278555271888834707598573924383157846064322233375299566092423095593076170776412418359733008311515857660118663035233978876249422812003446279064790210651777070230407154919955435440976178101591105586909970654509984536296369818776335106877092794392980684370636156252114427895244119547197229524538370128914376641526971680337522233898174609224518850195634321671446811958534920351898158186470348838624647811736046455338917190119571682431497949151794097012672100954317252389901410904415728654026988829034106258065377592155289183323298019390244521395140508385702617002103149057689019512977840450286645991821389471446148536741886906074840020398264894040989412773749890374515475160590132356670890190829496834992330712505323210982252525808458887698699268870326151410429847515943401111658059280561749733889336111249047779426339506717318705631750332491029848469440592694250891506779853523393370193408329966100488519387920396879681046635657640024657132421964521880068711252690872533769855254035734300008689261004746109844205582807794273493193889533498119896305240049640271332318839859242440733448656632296376402589099344949201824531855225360220566255032643138376180535928224431590569867449194866939240958096159088173487740687996637807645856680307978050364206273573977503028431998503344968707919679291951448414289195493743343260026438963723106722977599332683951601366558179165717380385564374404842116435985524422125765696608987285213908858916624171709638216438660309720455527511697882633685104710943440778146032621946778951559689143518436820511348072211881923931600079339226229529829910473003534797275316700137945550126728529486523669039093058007287113037044481709886606598634269043687507820875793912461593396476829534344753031427180129308741975373898664991040988259270502743551940581122576963078045181727323164744876932847456729713176483365667497342639247469835351481806282624435098452321829891345777901238478145268088047698621363895979494627111839174905513699373856420853561702643021841102847675244339952555349751951266861906958317300573863133244633566191444118495486088937915187980983521209530098695866586103409318926034165817539109105882535528506474013382580622868871097176655274590275571269377095323688200708131149080943768041697106047104554418053325831416737492075569538448844574129668409383802695751569696693812557475818214207352881489933766633785161728916010895693406641334152908560652260202079527806359686195082187893235124645166380826996921122113016741503335924740010175541651336908614757110947009192660869021007322176156380236495825558206363172677118522218983819994229986482034079157968474338734227374246278237681700195514980660942285039825272367048667582768837000374387346096863314133690268959766174324868348711822522131147214960241233891654144811710104719989772847892814692356889324745514589117378002248636024630069614501326122378033816858597426840824718536712331451493608834524839205256926068786295491815173074482726790615504284521784640520113730584654574777772323073547907341447396028299431246546194709982903866347492617721199589923301425318893233455650484151594501245363913449839494850910184646597287486179702227405173565846765724640248856549416971823310237111078731109966922416413354503119307559251828013461867306787232043707737013848082991563687915235774345286425091271179899317146560188579334664928330319220212935905137383736280263938144450237686218434706330311996299621176175258927016349703671441597824038671952354453161203676097370339328596446824954202641264445163895652118710517923381467670626561948681774282424643959839291665331388573384206888910261208419468747144896029640271746430994515432030546889897728921395262164578902685073316259317043767732890731153850860510753650833490791028123929653349106045343132685481964036306682282642940579572138428375962735553857776995523701201033691875852064251944383497881802156045996749976851347862971870393132855177725524618161762827890064300009815794829980543185236331902473786042138701042111491379668826595142594255721652933534742490699387603433020930497197780034027395573512719665954792506397008436380509859022893449268870935433627380823148403564876228654739956262672851189831323992359954556443479951599808992023921979579952109283059909698065955192303622853834740079486916974482799780663272127180520052923005916981858516363949896565627167773304216015205737208823221141864558217989200730426372075085019874647109309772201596191272640370432850373947246645713755481068145237711554256552986347874737038374531294766334499811101220287370625410552359278975728810638526868555271267571816023802229040497357651453905802160369533466444627472952907491931999927722696521908345045671079398975143614489483659039818124507462335931096300115252293601635667135567111889480871625985768202982352280727629197069145307855813079287700360015418552849033674571504685390634693107662839672267070028531473763805269658755420861185101863803270691878287289619886743245354901409740512397955457510620892045310817931512745449042138624196811987837434402023891293548721870970923638623927142457456639535559078300935867714507229098635394956650969234474792792861217258757876123784815194914812577379765744458318819112237110784655489486732911729704504668294239387530832672801370798042376215132057905221493455796905780488583805271555258127451058411449102831352381382794563531260326813650722795951945812274184776570266693731552076600359119874309919002006796736347836356238094588937386357237032360336493562624001872155064217948267216270828083406741326644726297361516221621096039095865126871844130587433516792315546170604780291802882642971115327433136884268588321485163979397997374666859912026794151993808821565977360647508932654689975898765477198145848984681527838065243123806039680035280278068868270363631037938130616797976949439920046723825316794216313858143305207518393746102672820820916726476960285314385601754013819188174750447187197392227019247236636180650161854851338537964330715863587719449266620560337970964902603091643550156006359641804494014735225380362451697510794339766093210125561011736767250420711153372148409576833624884333703401471006647933116509371427430868535936896122001083487383481152513895251231993153497802785989771687826587132865914124755297036881065248510842106330145605331292597636627776927714854074255338667786687929214029003490450545542654270447254478876563912596703446534903213412935131381407238774757666372090488723872934401181442339566190560723428581035157946503985942797169626062726080547020342841558479248235621608661823846941805931462039942618736388495590775507111691975501982401307943500849651081103441405881342737668951633896320058062319068274818031378886081886733137447945500171885861671161468959297529188993620012218848275311944307040258292996187650853491843927015315237967762392161341453961336382034744054086694979729672411278705655556529451117338599525012696793530040516357324931653098441749485778015450763612469869025708039050664626821817103269029402950898786526592597993020106586399493990749046093439306513688611408514279168530994128632448050638148429816481844715978805907910280361347501639540220295981377703973357071832532393268533948323044550655335383952010514833319183925034397260624487943532907217997885754023919801615377413585540059184695011192716644959648912527787167628631275032269095982996141200156404588245596389292313928172255755159644769116046406205465237670409771768204109528078543031676188440575607443863497104579578437107965886839672737291178033624061014216660300231506302893635858640250790376951003225195596918258028372886567658113017779180767600509908553088363841943638595987481801445845042078407284350195552969371552842641798432623819436405076514708486618007013204580425195496042829103338547458063614221357099018799653748593567350890823998636024936699082900566579042193276100120903169693978726535938899484333672936334758122732721587842035787422982140733523296657042332162458372942944274851041593453147173490802548667391587930758926609741520501776437874111693438801500665143414344853008066258993163874059976061189613589965004283554466906585049577665677798445553191596161589747783131217463971737728740251046975885058482957496912519355156336235176130232950224529685947138804977366272704049751615719637900905246578734766197704230164438254808677355882491027048874979525370005500505784110834888060194232169154618666521677186002071453553441795350512284495602722499892006889579415845881800030860275073333579310843957198767298878248416442926232904220664638079123306891983476157016904429035258214165187897691632534741235397274990955780456750475519778338273560546128352623831458559185902359299881355005762859976791070102077450193869060799371658768905820551729871497396942966005248529654633162582207147117657657671495025658941877465947060976151183599395169599132964082807727122109651807286138639326141901089022659497793917129810084079425497684114453106020656521608765418915070532162318144152348609313433342111274915458496008678319936351110466889279790053240467569326693987810845838111004058484068746697852591682778859102021001248577701417563607411474559883769502409908397228294120447949762964758046927698405508478805739050986403074201755573027729960498801060255319806621344630552978110893913214869774125556291263693692412153564389329810997642021785079975860525381779014664697089818431705407100013806202351486789219784958624271702300529077628685193645551584022399495107320280008775455007708042763804133854031352122336580209945168228854134233317059752958798179662883072287308347668143823128991912940983166161775419209631538688473226694591931974860794851769548748218573533673830645436073695197395442348737769907571695229416910830662663155817723384218199401990548441122205816134808397213800441837627695520009441336735267808117720378077088268753441824956665613797438213184506623277309041921602098981573685991911132814049915018547790745354081058331402831373916025221667501127602478130405467842215068597237083617216409001707796286684224101179361338756790724266939110588573115730510526003957508660690371294455481089049522738562572092612155437604115913186974611782324967563317920105001587023658199569114619339592749539239898464157670490699152975574281000753447335346033865561129480581504285430240750205030658477426444985041908094604973071974524806373249160948683054154746442855355177288125969986340413341902287525691390994013257016937600402637686401054972655000606136798872486832208338492955914450221931511670977768989870352035773582073830294938116188592758734738177972381637787529836062337821122036621876844052960433941826211166344266294661143066760518779466479038192539243547401376301987359627015234386224991906776744660403248391902238717780461413607388822750504414069246269054332944803588979175205888024247763535321718717748426652908047505732074616452610799198430601300003932895407487703865160392844795312529360787644136291901244474444724874687164823486832217997652357855163984484067591356148197973028838663422598259097665511059609618534826804575614105821008566803589312846776139979189598996838274059452122705601915589139155362398235734931946532844916207014498829568326824634920766528186348673531117624436325325497463337917130485705437705491291958665854349749192690564658284139476441081852112713754061393084631711691191501136164042101794819108990450670080005765593085513829596700228357333239875475770179075540490292788432547888462337034754665030070324732263419717932258263191101472675731631233773846204722781273200563617864859459099568821001772847425503417648333507399346013121048178346515680873536080751589661660522418085580353827215179696848419598785674408143816543800865019062485129317241002991209682651260682111184830548846624024827507765534105623928372812846175227980119815417115621175680145119012296987667561609924677955454645346713080550842655282376982557033646438181491149292535327565507770938052583742913381114203092299001737282789871453425732063759428164732487244900225332105235252988585212240393677771311749602046517865169730078782216739208155399133647568118111814895434823198394223635170825371249056094304634795035379225005065254922928195691685001804913727473503463843863943915171795291056041292404104422283165497999809210461624656969975211701971308456261973105699755834572861282271540735347101048473058857986712314106551626997547099558167527462054597218721648522158294477430679395605587690496078906226237981056206879073778818871471931819140525702817674380635100594995279209737705829530062456851107567311689756854379636541503693620244219717434744566049188803407875205746291394667275784639981597142496484602356691032933375868042261333526855290165358741057213901977842785723090566864577315150289634732411661630168979231937198910367870874918198047473357023493611223105462230054404031403935421014820087919259720237897038356529848927911603916811629282150624611938593535840443802205102081108289441012152397051872981975114437465914865252151399605200680673460524669153047428782281634432726528887896142709370294539630218794665777903901298761491779928220252966530073645071991013387593696606445593469367562993219819446667580902119573674420015267362007491434177873252713326189771436302541274046416656869695235915206953674150653044793961768547707944801545794976881414271539303862352138247072011014991202344568823163056269014474576300051831914428471686317057435751271331413649517878242528740401237323058969278049421547222295488248229713604171759009848834069355794255637359541094003695349782071836018774379440594107341948978369223656188675882489357335934562280639416419918573906190506162351124727500595811469241655922025850405554950472654409075750512213437373094981560345109588372586589039638732859259480546108631841498387843338535989603213477777043279550894947703922490867493276619381879366776638517567273555908675809168077897383399204082135086761513059047959366729430139248196276175269974464778807589298406925344255500080051471047047018255690839541997124873273154027686724715338166739933268522581026084134921756813191548200989521196550125109502571582561562458343877636167241328796426477792715535912379566497168191665560648507618835463466197157434496530737404940513837229010114903195638318805875129099680754918966234334968259144191482532583626325858317905646943777621290885426878431574077379883383847716440334265801845018601305239663967445082171313854722779958092008474354182650239991245861908377373176103462717833457034458393473409600454285834794434311596568197738536375473497664816272629700548489169661634521956686189418737919414632305209005321543158124429177471112119573190101953867484108837208898952321435601491350657393787147060424551909909968255463162624572025609497946519600775329182131507908637448428079863499076881004661761845555709364746885692537198358855913995651612518666282579454426466928158278966295323463651686539126334064311749944048928009702755029193416717359865074241159338488483094485534590773060927035170328959285562211015621747781202465492528623845859229160424473905493811243961222596728001353718225406417361311320307836273366914165676184169888415229601567038766537572417122487876114338027256078744492587702112019435169665797580322319932246449126153219926634655017743207888657281378976389698898942373301453292704258247062377604361417190220677802917341014578228426890653190809427435931729806476624610830527571987853886148148161553170916650044658739529338939324938288041402926716691484248253959117547724443360544713257424871053395458559028080754630412461242341105222278071599601754697066168422053275241686479246485182090216061498182523829065306843425886522586064468290605969407987009454381590858965998970891190026393458234393856686448939058983728045942059321647912147256851966093634950845272074177934132433966720383594580081018031933845898439681734436189160280255011532031641990886331320238389147777093264778683578415432484423780074128550762524315993002024302831670903660155766102642778899265158094560466152481695747929936337567379600467585827272142559464471149415122616639024233817083369333029402035146029893250140793838824417118540789064694293892780936646223954299472850466772138349163991667139405075505894604228021833545221046610250045339651451701376062765179267615321054431194299002456959543919939017782973177293054471226991265915092170691179591174597967682609182943552749250588401510014612988301887031168917921223158931812870232806424098445973499401786711469303886777662748102204500062577018227885190647324915313707724432058230341126039970901853569755644752203173525805577094672654316190334681532656139368159088962613436456263195138988552662641010754797442437901954818524636222050182054702204410700795763935793654907907100218397333328246817826486582575905571286650832050655631440273801640150433929056299641674612900891997192333280439259103736490708290788786167774445966622205181630817896466130127326474182818441285828220662307012148751136317295267800574725088641865252710520742974986029234498132204783772519865706130079177951391139159707847347188017143970973790041318241155305064673986691566694373152996385074213037623349448620323314589199516759654319592630363631878499555119273846914971564442087624248001096236961646082487234715163032703061616701251179142967049276195894357275846584029984260054432671687573947307581099574569762350162103416360848821863228314799656436709047109338932652596033861703973336700604978992933555668689357688905096320058543211069587795693778114847888398839921366374761141887889417505814658449133693110706960871446057179626491745178954502975790691597415759537108879074133052521803099933251975092051169974531730715973166014030339923525448718607317107787871600118915371468436024847782350278336036944056435125971307331515550756836566016432987693941904637103017350083590390178626195548026823601784852090263115819316295598996629481268447152228239506341105859454657261518066864588879055747994665898923311263632370266706191431036439690445989260662606322009120795041290634420844759962530940579136489712830208924584427942598479973566583830019468346609171792182837454420194377294870039532327888423041551791428070639637523460474620799271139669682156424662146687265486736122453980237221626610166874779036472881527677023834072215908062111382846640564272484291566235856472228479529338531513151109404171241953877267859033901462740020245908830404340097661345808544313199889286080226081826179544268402364960678585812349396780792280494412542857999507392081630482080610238091362885850511575436496779034220239065649195770559478590057718632754767029087227772128381093571723569151957448556491778928240225805318762514455054663414617980274931293876310563878505018439404669644948076966123339855163399515176141265944672996451529352274076512738032178828242067886435682142961866989442197481308471032977499173443153349996095598253077868478092168771143201168128515090458775038246443001827954069390264647946913268682964038168037016187359230749250897541699239600096697898366656096877992439651323043941898799451107231964535395409773740501200366764622621997444588407480816300245473815700909089056706888133696689318765149890206095845374367281630255423735791249390960774838916623967112861381579150339964673334704267799203933840498559286541902559449044333066489998371110073352323827687637479101380338067644217897296392761130200404224585039463609753233533956557715797489917348366493682621075963412640495042232807368206463873358345753455952725437068222798653549652243441364253277162511078388264381482814217227002250845946610602272670240297333138064168615252889292918466274905809203193633536668181547141005342853744455738590799481776240965126234043668423724561803264366866803894588003600483754051903216703556964255265568927385140945550584252918596895928053157409192441298653131233980628696937430859352345744438853060690686065543301066287920407964283192423204117048238742445901297760580623649837482073251281096830936025796936667654234473718427097963496895486083739152179721693142420429474454834954518020454095552937583890861697969872479431345059720603102721000818417633184486588833837269895839677821076377117656255790370268405897397523669981154010635361238216600432846661406252379209221062901475109088375668082254549293107549291711963661638472319284276220731673397902625948199736186833964907945813947148897505707725875243445198271338446707311411233336941811368164799093247705760860059776937022132579486745748275762340464500628341394487723432942479774958898723690541736258936228267103009079088888693280594826734590634930369891095538014456525052565709070212038222957476950538732760454005036488461412593282536158855436570706635317261963524306115135505376188369373043150740772703647337251237428693938105484037509555782254566958314364137229474995670357205518912816844068560956635914028950037668701032427397371195941823586764084706049336775214648618444309478129015147213038796378650002825415772172499752040479172168900747893430207775350024944478618369819939667131077054512914884157633692564730290956690718608271884158230162615182804805650797822741079200549235930984379388886869413823696368199022453561764974943418619891365860212613851628180917715958159511484826221631823966095048483580727768839245147234401674138507326430626429974050712975825175929816671986030677702792829135573683048628683599283166854902290015186037086813197051097878960637370774947998577605034126085869490542962952802134189175256355673953775117394961116841852367854553573212084739240795266643365140595142209058935169473484040261142328270018461975818193363751624689943319726860453605146471761292318321240421776284603611923178273947427276656739558388917680975057002494275015887593920627128065719539950062135030582461233691583923862363046841315918235110917152693008326073131337464566193302983042928577345954561298339453407971712958767953260749193729886142884077773150417866920063646057133113814023065504028595947768092875372256996978001498193759583434568426031078008602167557951229313279098390721838163458590589501322508706823855014970051671084156393816425114678382848999615382633959958042207262513724892138387378032967954550472795100870850138145408941845897890064744091619489167430649226315500132239084035567343213266898400085401862946984346733188716132023797357639930260897473706770962911387354424754113311312633883846353904116077556848040198344387590974210775664099042534451439833933122743076162133818616727789720205868365375486446687552221854406108894300750140694664890328271897034719425475294311778489513683417500546788430318724486970451731257881890494686482207157158282985452890570302803081301946019639018042736628990830258500848167083839965258864976589630203609323034255707035738192160374813999585554348894179226689191098948228428035338556817345224891814044107548080304149971419559728898857645026813404356076328983325263536102074903856424983649307349955949888829991186879942384728585319419137809385742668082071822051223504349085881723797096008699353205348554736347169281886125267930165871627173700041871511789979468868115976229783089143871267656784397361026394159652898681092657721160629381594544216760473705470458619445358701651539241477188345511097087927246830408262968480018606063777449584711962199890936915938796243413739038683339203596496124094341236468162415735763617741616140339764807204067017467595366960605193426532089956391082463781506745749147171153442072805485325255010973245083405421376087692283362412577305244009848609014418800123183081771374517630016788876904121992771143865587945303704527902977305223072875566104495115898479345888052224619735546934530624103839293866965902341790408921121324228090327585653930005193389748028096191520733133824876175067957791549232203963962175896957678281898611425373184047959825570257705498308591016433954839711672583182478607505349789801225698053602977347383918208357244123156466637617856565390658004876674098611341270171670541580813325747585221489586903115103051588568158579457797853399775231292757286461044864929988543817790562855739225763163447888934979410189458429161008737990578890942911426272234078736246909107472803339155503071732386035502042662323934095892235919829022573327842294851275396659453723833000609141146487370358458816625362036804580309639093218941792119829133303837004290929686266978883986831755377426643172625410383410175407436315951864021833664969897771557712869900437658948587269063834352950655583857187456827165064561895946196609196127565905771877876462946697246600543266352465363338375085322810014253347149199993465662496486327546978532799874884779657666792826481352364466241609482320933802748698352595833658782735765545929136455914365197205463363146889184313393846385383537898366835089156533231801997570638953959554630942980151017010142956053652732563932322380131889788343712787809791373179880021009700263008367524715201766927555681275005305649081866400896611053880769746265507642575776410617971985859636311110902240528488399411897650579333463259645735096031916678430485899826125541356245502777997061470710761784275359910575949471375426298007914268206006734873063197982407870334621907017724956145283833380611242175121576693030259126006287248318837560682370897340820671244457150053853608099704856107301584208969258679227722161318581263591270557954392501489969551258570052984358406408914087122680750912136587308876957288094863214381102593850100611633867744581299371508241183436587959288140051281316425724671236914429224608332113519422923076841911046695099836687716737792711097098992193242337268721269637794465305927580889260682466151544485074182321533664007877135457239111862388791920690278358134940545019860302375786408023098303663857736680670936881865321161698436167188402729267084230574450121184209308337874122964728021716022531719507577786633900903449171821945354034755558249529964903801336981851821843101213075179741139594932653273991238057049349516465489736393440942150011352097632230849374364073843967547736579144889429534987095036182565234536278620012316413333176879690653146838707669005254949395137166606484747885518188587500475707696743181945267981387673346482814136146656191772815332967212298696668787381681463023506045278365818327154735145934376968324329330365938401688455352457331015669969252992296286879538757474662811342630372499302448302027210887901266049248654853431208549886762569834850539055263171445156446987628883961735253724863241078447730421774000677030694037546066371986757968425132672772946108192306326008677126177278896762557817225925991893112283332617789071431231175402865493358976700740475769159034063749397835817134839069708424735433896192060497939081237837156351229864436532343216947175393576414146006928206043804480165591186083408885624967448649077933444780710021822270914432861081312135476199336466035317838913897776536316430267699030562619258016109585963794141642050998668624039232690716101870847230285022343061048341418913567451355105771482604720988579556604150845538496363753586869439470444460050387438792596593099647303341308209767409462593485097940563273716051596302703058078803027481045215215657660207730204501505420872905537778220299540086593022925265605657642074926452303798562775902164550084156847068119940628191753932942346030498737782203865263917206584582649739511297507620028476357250367117226400726429817144921908056231356109509520865439509693638806563090030130396026031995372308326141206587216339384568604772296984626701208069939795385341218204066376315451658349206142759433673672161805965095965687553348936258993232340302980337706180809978014494955101288882693185118909454316032643042140907391353280844366085149482923457856344701134471744733801323942044475854211498020428755894180596613469006535017155578820918246691567117570733217910133212148805672209452388368260804613628721735096079551600957249114857321108683574573952311179715047330512682111545371725747982397207244632065973488019563703628742851767800471226287981982696166862444912048011851289500334535806700921918983840661286332458164449359580213540962574903505982364320248664462795810652552470198322701678808119447936161615690423353849089213640371879757193174289231800527346283025976402598070310042310610274100545584492417013052182397104306560765939389452935105870232072531678220609390018286614656638940207621768667913069517944548218858029687740393657032702603838838236948750767903548352957241339210172978322840235203781006172095367641653708075124194218927457882683353738902756033592168433394559347966892450397578877615760768218592417610844447781866417664415163084476658387755853764157282191074231371213881256358611687336464579914957845621356465204943631037315758131538022994627683598203283885837197891514428318231886383415954133797888107883165571146514029615166074276906659391368679979967900550859785508597783458168790749576123807517645967432620830161168863670451936763439454819121079314647103912055226265828272844875404871496822209956116985497853696399619053612951241691503937198377250098998460859058643848247949668871256495902877833768618171285620696527187459653224934530147303902339549150328567129767028911005235964885805557972198282429380103597109908037502973701138861897997097979179009238477010851930693159152030993249504900161214698608674232627776175488758072267231415874815255231799413430419723390110311260663847747238823191156143761318483768928027625041676309321789138489536407248737047377794338759392798281261923394869529470744597018441161664177398883184306919519851443067809063776361138910879302276692481315302036092110152456518398448071761610130842548878104055045470328287216827505365581784442415498803928267836962451332287093579953910316746551422829563501906898124956384003623354473584090149768831999542027745510529627190526798350868103408824362958947811744009500495463119249842547175212111202487417999570150814977855056548494155692494118437192862059618365762067099571602883934205077755795174430246535613677778577095641410449072191520292953253729805883806231208229840797069027157154784160934266739926138389787736457684671322326335558621130679389954130954039848864172789327225268645261175478711531668097193873445987944880294730333399923198303538466450980381952495341973277739921115188377325079215613755300093731220535637148568994578333281412274587952966403209174219033579300133173352656641669323523078618836894196974110258722448131538511512978254317512546701201295618399423346200677319794394402138900478990187370719292639345206653464333367854572205093237812280131918955288515576383585659415262071824333587234660159375562401643397759386574314299022469539024786150026567095800892205630057561468324829476597034856567569256555744304656786904224194481591843383235581656733135727205174816222600787223737649847744871397900102739983390133420647623193311307125900461899037212493160812450479296368834468179803259788481021056527437353155455424196707246747178383815840560001636072155575880478190469450204309804817766644029155244095235223655755349464878443413315432188394308880255105320264849103840868838024743258675051042155049075068511129767938970107891851872854392278438106272535504899303337800102949007827364000068552288817115980996945865015163223148313845074728549894024920031122628332369296585162777951694638960312494451811934753072946969993064391168273428238010222822052928920117153383675055173532923075233949779207902083054531596011205343128167698890390709060383027153673620519472015252354341303955208392309380113002871306778761681824377914774589230443076367625280195789282243266873453531559144104095712427279314764587392096448311703451782304211015438124589722674422848612149036314342790849991926911714294192886116838424235723372375357248937102180383887392252236182170673088624710735878061357776957857580636383492376240673422225645520377550907086120599572431840181019974730676698542845174590018979885812913048859919627224986297705106514208492027873379709221579118128832054603059267947922714936629102122157598298099586045649902093489950339774716260397273150566497087528932672819043461304445209239149786556494834554035850114837084621444017496471517606730641911955969412849585937647430526401122882409146398778418607918831320082801999261774765541290149403641074675785366364630914940458570055440849462294769060168097686761493580083090325642871657346819354607872617274718876011614095021793158360842251837713383703901885996858223647437692823816644120719326833136662237808466681066585461811167881939675229447292086358288894484499190200724452915585371127512204443816271916214838053827577523041863703082197574381036644855872723441145031162082288946693965600261582649532244921545034347244938697329058395813570174542596277535988239090775994094056749702289473452013970760151636338934284998568417938840847519802837837538088305608103014488433809436890174808343760933957275215814694349460769379354603564521392625537383620809240971790982442894032521961646515219677458576030255270626925927009548398048003511751130375911868125530507109634981831000055931377061320670515341732642740472207677200970945659497859792352360609816190716847914625714479389508630164552733318917946831091684773061299806543147364598616988841494758085986572450468571183541749860616217254990358481710224906099695642488433923403408011445569373932905781061859507871067808760653298500920029204034820132652412783257087118584177016882336658465846157924388673611375290589762495668656218055985000749035529463879529837797325786163845962078518736712452320537714925293746516060250706201005928297280674016888479088852069249892900005518126571077786248767760341847464404536640634284561322301618850604702326755409975220296089938678605515501630867753218872882412766880316290218155483444837653495467989249078652932310467187533600751403400740290024742029690418983422303099011769675934238839196966391890819625308555727141642174117041658676042719381310508551762315466279436761898400728583740665419703259484368311853470186252431678301162276660071305625130096662146479238828354822115650827439899842077916799801228675668455791477556785016519511292293917664359938022402189904870807646309901063879667765060303663362978941235894238143790588714541686961467634500143806122749670458516382519993921738135967405964878590468160413528015248430909478559405850654909226262234607901654775292129792874887815731598401920642790009784906052293731508955489490252843109503725749368225492691031504034832985977698069146732657511771445271850238014585250583192939522821653180448104886104311465768987487588174435485477992802640147795403718386737261350983966606012518644570477000678770745780372713200721072091990146809581279028155040157450078299109577861976922658448420171360128010711282808996827628184051753923917506644323613781668713589531610956077427860825085285798887118233208367419664785235786555636321812317533140157041600092563765937913050003978100498821673892155165350025289734239651650562582560378437028036233873665359480820536694889225958243731890688169939123322898160085954105363576739504056523867021882857099673152588845801263939215241459735881000064164966531969138848915561342696388966945308950130691846843854240593318279984560856670375325351361887628801304784779762268894567593272486128005429864320291644840783528592090186614274463663773485033960640252839100575038618334307211485560504901387938730832007349663034659597169876277774632980590690868514132120000733358476419078635815111700248867093450841456093118830877863485815127018872537006162484021993693500054996124030128779409073414641725136766219623868003280198421087100081305887315405475365136191239354379144798440728426987864346334509481942419501345558850011683465842757406910547705930474152346080607357977222782107058073193708748055672522790440596175468446771846610280668087627762897769209950233970753482418970057327162737183133562714611900154411376374964681526014463156498199589454962939620766962113213163335912530819413981571349815259853826120934054945241752780302652870787623775415327393564040393405538462057088785640296346529063693725951802817172245229403223453324491643160872241443737332484957936357355196533443879904186184130528061866936839027697428712891925139845551589272049288394216276063815044418943233297221848708963578773648752852764855180224128343381937130094768111495829471008402669620049429680259875455450760502229960484990695935105252770777217007901983937113542538938541206189993161302467302661304025804139354985779383289949289166319869827779513397991784035131817050480064023741139221111378355307175373173904985037413263883991635503992873125704761746456203470607172676173096772279943010219328704999258078731830610354575669536229038454940558206126599969846171615982790320406222344337203323378406540571138986068172320123372138565757976273505547445675666040662729523491910665494743012319123806320612694952378460569424475551243396285311691976119951844686964127086364593476549974581483869235710016461421669309525567372496107162793841795365286966927330975897747237651075694508818703400381656545596725707190621369812346511783809746907689231785643584341817489669871177132024172556821287260115150980527733393187159182038633484026940476028665663378983768029519100462247965692336040305685109060940250269098908887550253843862318895320131018262779105085074784026895728411304094428599850901573928906900079741187735982315169819145575991043818306807013146153034128348763520277722081672993599045356038077955038736300854269164117734309356652663233278437012359968988592866443131472059645164573186376594243979793418034008494661965338651467892611165177503348624943413510665910063241921980283972436945186482522380423053467246176997363123471080891145544526056495133679324554875507443528911219150035386717649874199161905141243871599786400166141826173819143823827370386985767772207992962873409681619572434774953875653058559916194081293160302488061833965299194801006290978295222283575122176468926574031590667718022555873590151507465082135413612104079523813902952958957981447285794699750201346063951457878322847603281583727483644974995071268952740896597709722203021983584482451015108781515418124121560802353523351036757235108138598299706810610534661850398142571743206208799766657630815768009434591853544752780737648716318278264225489743079439704890061702603800370069522785861938138977184927066746858231498616682960033504240797237608096640633350364342429572028386000041841810809058104978120339813938045834121681502268483948298133975312555731298607345708778057875119244218250314490862855368509565671461378317013639496665758308490094755172438028546584329394974553751873496107424198050522935594599610493922613277943085408556225184706434465257702142684686816723681625099842722556226587722208867827489851345588842385730378796455724103801454959627911971732697304374733145069652622979911937483557550030393751434062880528725315143521708371292853407255343233979053685408208841054146753602652261920293867288294968636489542602669693606130687826055571526004721040218216554745950851471830692058781473578171004558260802843787060634688531998783686444447680899904821543938225523626815894569046415733399710559713176755623629108370771066688753651021874605664959731426902263917545675471300129878724842087361004278033495860976868833444331590907100453636470371681577796393289960331645694805630429876743779671872647615292858663621811653557000750750439950783466141972900783058117221993382840129859002431897823231726013101143590180217303425666707374813691884955059455199499590780167010413991909085232463590587923373910947733039946973849663462291114619879142507584172842765817551363007810154784013758744627908473722332406148353166488186611594977024228020211401091310096522439495193922065509898359370752268807775714117430689969792434171676799619742815554252509472050442830765295169084236177371890847638333393032771637489360837272466093328991680138532674490721043936877352424210798098418486449452464196146238706209953126238137693015668729062883276389599538951181892088150859236243809008867405348028710411459251907177910013776097935165013773434281826916716918078329139606510295209574015292028469497499032058304331467109501623761202983370145662000519527871248375493095407436196445800806833938596329062084753782161989343557450769169833018985831377308757257692464768900218254867261147287723925172998036874891314161903976568283996028390949412626196180451847122459936597696960536084747933206630025701435082781120946066121557016969710852148009350549274965805785578655430706472501902463621265589160716214205581171291464333540656008610189885707987314413886833263702818298590650519049252269355007949818605668737518797167051568706651714205285837252993488639005960122066625834158716277805196006863540754352061388243132957510245324007788370758003150279932598408958629766241215740810490305882644948325875571048312817031405877560992822276518188970191946991981165379866466897654236390006399232628937177887204870425242662192236074873470130382722976402403419916197131369901637792967083935514103849363251392316894957463139206793339471533092844222142160476589508034641293650571958244029222316664457741159850495891358145863187768950891260515920373118731108108059360629872704742503097790824470196586962448576191904832779942397675573422671312106068802588725575920136619438766030501490606848158104249773088703303820113931322793127281519436794560109480582847490392346715783020200681151164206497348816993019299527619344182526897093933946505604137810904059048441237867908831221587403013240207808753793660428859294676002256647957261800277542281672358830591805267162343533603818833842416162458298328135475903042984730125165699451064066485259400771683879666766278539993109513115121688820900950477477822662025734168886924599939219999427600430351826363887996231519767860119804720189053120048994546013646716615852941584203865233520348953254144232204819464171778620587044801385093423786152581463259998878893457986792136313922574380647930771843111382992008302802457852240053329268998829830696224479416770958216875945317596195612097614854291151540875372570894015476529012341595451493776115599913712078012295971583573169980867428020711790698985169678307204733600208954833294361426751778129758997709463836113041176293723475706535621531194601806242816049395283801418060822978123147986858278043077699903901113200399114240102445954297468919747928239423944358831565670715492920346505747132312690043594348644601604816675022998092742345508683828719358490748334654566876106032267973174617229642395689168769446537801551618974336082899322315248316248550634680650344325130021847624473941274874207087873893015720436299787251545006918841505356143943865566415296378833807298274042359510309708542481666551221881888045519018730775858994274657649216212936076756088565430679389214227163405906066211521444062924663125507398745690022798557336127009906297007469644272041190563543905202114399313877632668122200451673249100828303854086137318884082665129232421069631953528675179635545910141579427800572505481315889686207409308103210102605896931465806769987438979680067118695295585017875404037590318468387193574942110128064697604239458362013350665002786133536700301770424001916781874923481251087666459790522200994953897244834636367893802389571293893394446347831447855815780945337828693851357559972050091350051601370431247827096546483383179847966855897471189037589967290278784347315831308705565600129424479666651059656100901040965880719191436712212242796915603098554291964270965642389664567065133524563939885160138507268597857276112745969256747638979753219956611515579357600607679741608621206084327106973035036787252442036618975393035302742756800266931812866421121199278911591626846856315577887307279920961833759413295457458362530175731432473031294921578530319002522877954640026606827717032840831138534591009721185026584192470450220204524465245564405152084031420553629162095934090977974720488042650334817531082200723959676472285124230908880398630923048329369721633824626132461653785634932938907264492415049213928542370629744229396562050987008622674201200367920508711855522555569832320498139677516629115777116452278990632370913470440805204864188406503684875462475879174608544943517615306869701127040586738189392749877662293920038095179720694731282400995410438596793325434153708201955557926538536580327440345430691868973441267855298163081098126146840576871194726642888120053975625188769990816844101973031917116688476742190199839216814248513548490607315518249375537811733875776619639497581493999389855804786138516795326192257742074340196406633441134206331232538628417317294898272091375831926212079541870944557940860421338466803248151341630040061003984910539990460958926827439345559669829638301631962983201760365191125602172117856509094956333624362600365868350953414905630684921907670131607928005030355163918693934766489216874749959078728872659878008077879808550541221680882181612833782558077702142160078334741443108791643103586398557790784809735474867323063403930754623975581586683578745551811959485540014193601702091026704217285618361060831329318888718354756723579144981418689492059517083615650395842933108011683142118701366356109475610629408931623943700308106110130566487005665426578013584893740957375865200766764764327273349428747417355047654241454833403718705702535409205695685136141052671407879866839238263910654233319835856159851444138524712677419251384779415947560209796746102050402637738570077015888693172472252349752338597698624424502887021929006221153092480862940680930497833225112795719158225742394184684728020568191391874585370149187265783999793439085484522915216306894481034697367601107442386395842043019078836496039035058895377482485022788789407553181954718708385503261377023787899741072757582292221945176616258863897340287755091222531592006041219051871904914961451463777055938325814905512580760633163814412179593063147602093434008978933171801495040738695250002221779333052613730574663250427087713242859548968299979754610089375259865242025135120301436211375308924124235248520737011573826351167810377850203366288619808586835910641039155871623831741641129304273141505241479780951284356608028786061817569042491494098207706902788298004334375364527847025047731101706708932657862538056282242540821346548975625306768932065729386363218776658356700145701732832439461095537440625438521688367447955904210629458708565504396040606440762247925019838576677477772854111351720089725682253707811703013672247332664563091069719976821745001897993771350435772210158363018447304036975064342403589126114527449006799548420050776100793662649454306885508287258281572490056037259934023578382820728474947281831097860843475623255277912837211092721971176767282007124276423245511748686694598789508279071537594900632062910549543235609972520108254789185604182948633312586101977676842435355607554727506214538499249472699637650460901002000474682646298143465447802387583903676252903357489444590147078803553500105365302944998171262003100733380427528150225919422727253630560247391246289438182505512970972539136439498361374410337196131579817371223487483477657556470660352346842962568066477695339310789080608449049551572524829666075531259338470871523216224918350459872168900715848973537997756609511239481423902122325902997790243790025626466479669774988529989169069971066429173073179055013446686328995633961545106835278719823612678622871186059227818373487683962143951834106252180142037720766282280878169369961587504980513085508999408264769834707512506964018088825510538083438592418392518443405488125864831184672003578730175527642677812962546183246815176314129168463098795521154780895936806935096375119837247322887924099674886886998978519257606029871831721204391323836884439474803825888433298514959105318239057587063239777818659467529838331556105327857980464305807028978694670456520959935931445129240667210255543429641300399089404760912307374416083479665892908767470982113518141300642523367768469623757737971575832131204105841773457935999566342822629053090206807802241484729154571431590856060245248693848039698011001699565122963357592558617599723595193473782448344982710517322546947606479040388520139082549808249373438138641274713687853067117002330714610274850627740145221776659644143030429851276835829733293472569753620547465982888984952002816446253214212475938018003363554537826760408838558281885462379396359769901476266560846284273120071911266484635686717936718757481839845257608549246112423317889634444969648309309864925946638155645228216798340684029784974394674092574759180440893358358048494540943343726516962710382476666219054241194826033498380917182078071205141106196454517481281355948667783251555900842304973520233107592729270216631778353121407902984523017447217025648167837608040841639808174477596488984158285513336643148922712296649543036987669296442972682165260540794954774088730254383200414496250453972390566574495038136367330313908849458339311098922455488234393171129194083756428969360949839045624690893793759501497577589648283172029095508928234772720100513211293208293921598861200475972362886525855821103418236765156150340981904101401513528474216934285822065116568928973514986143554681634167170639592228466522615121467304217409053669044627705245375239240379552468226057170932695813051757112681418715777834428680367697682371706759330303385242997447188061951769715131188957943924105152387635543636666844041196409543166394716773461661879150367371788318898361253948638141004877703214510550158361825953504083763457383517664156779458715660263983777592279304260405392852320950931864604041657943873848033365150795546261944251520581269183935161558407954014901562056352096298486408955178362856429036733307682592656700959899103281770057688814487073834880107550157003732437136849072718160187640616236164184351504254460164023518102049654976620226155848963600988327893447127122796932363736994185495804814189452404587836091386554821840328988791676304405653303075652121485699135727666966108884038969235745798098979620009469735222838294056646997713407769018001048003452988918810275663714466680954715886154738687824041168763684102844882834190013495207544498806928526038818743992539465569415200535833126441734917272452996834726701432359853895192856298671364524239899286612476245150231818604509291674041515195463971917169432480590037801425609910632389451698970090752085936225012971194547885709877740972803121669713556074243522752633160624590503427706364510298269931100435274666006078409516824470542415643245254205439991419275638552587812050540716360303659666407188002131171260903970680741548959685036645082783585269117576637542412490614088530172997866189185283013167094828687768876074262608088498369583025497213986141013284297718867446278108237500745281635900540094391881604269608124595296571556489637997808877386707415321431075678804002503385617385506499423521106774275768637690808877054438900135050453092434043251368543457687268615672903614877223949434612384925064347687594307166496764676744042240585875913968668731307631777990359747031316720822372403161212759956074510339196767766475473619094463899902244511282526893967718378659723354501107627733210282482287889091289133513887478256428645228985752681449149208033234483932413232959212672858891221443930555953636244518180728656655759797587188075302096453367328547708399428884354391429911959751564938828287871130940802863861564267611009990448768189754614411107715785972081521694303103366119183234734805371606414923031959709036119589614575684128604619011933701204539803285669941051672589763493607311983936234081847485237419627952931153321243275210162697508667149316904458400714381512269184436737673769309263308324180294616346212415368646499406341089738315704379604530538227261813264379274215550166746609995203262249118569947147988159414145602426719441047332163774332826769748330277045848429965061001586026898652369798765617903463233089336664983031674478036226314345733998246939712753986927974714417175479994056928887482137333613131690486581589273976907002007919813021228926444055739023621134627825439162551856122294201758620706758412101149984745001468670754332037190018993512024096070667450108097488555517760201595174807879768722658259185676471913413862846604777921707860978657918714581805214584512682717154254717220001678252946818162096013901407614297125988414329085141452649131859261507580213264988811083078136868377095009894730956496666646109942426213494007536922393398283819507144648550817612947196726932607262099512769763535781586767393741332862741242707526214407144813103441107680658180464541567787892815987494391425019644342155166186752416492720575896848471992067522372483058139478777053664789573103911757901564694471464462244195842746345983897812231382033912597274563773850680318779965257082181769889932082210162600812195956110192257929273338346945826618054562504823624235968378702167775271603655668754485716610857133553238569229735993884865440662830957081056200913544216466849311439749354160972475898213021807605860831890246399466581641716082006092950996090755727127604102405017609950035576397473156095389666896338790350572414926909591008604290304299790636126760477740907683295446206832575090107608234867254587964147631346809080264468805498083984925437423301731544105126959061001232710787642825407631483224071116092270643648010314244078662021045987809541469350913939041035659018446670424134707060758293434303541631166396982568685291114797907186802172982372122980795344297802536210328640577962427582899336108928835043671737120179879429484704791516957853748269848527702999219402485896212736476613829554450323846341271873697631452598763915279335696458664711869986105537706567842834265021420171701335058486781506578955931228787097169893166970435512318129284955822229368767269205544152444275857468292044800728508072627657956719949875015064597090149809958845615028785375212833121195584605074148796150727765368577448426076012234215972728735893422184154882361585476985562127612325257479019155817226830671081362272758354863433395165692458854787424989639303420845255124268763916777364036454561830938134935228572347464764869221268465741912064524853727944471641982377896326813888842107753498400506437330779136045362933272868522465926730202648652266842819350350432431223217315670354226396627275692679790090761474519902905957140977555549830124252925271607644251473940013268684424384034088170685691326776475670453192912408218515533783375569164072088364207562997657399051883270904065179591540020056909082365166372016275412476808402350715723087559496525213782985078219920451395036537174905343727676017757561754033740004400536520278590863012551849901528462854903651510385775623327411338728214263385943113289920698749829370994381105205357417577222981724411177569622364815357521915088822473091302656693466177797463116364719517227472412423307036939155416301082567628765253599512413877619239979596656113145616917281575169100520134444485674764730156718202945704073108777529466827579994370990594922845723142096242324275760330224258531304815672141541296686529884873839099151820434362489698231563645863984727322085448172193477186222500486640902315509257511225805245557011953582774917803292158131103540737793447556453786845827077284196166501966201240757696596874094253657099567322567529355895565271661739978915362943342024607599540028826965248674876507073054458164615641762072679220160673108789369770312991122572542924813427077830316817446775547728071238835059459111005290473065344709794782901961981916593503712671582990679091688494196861675645263208642709790409063188748950232994754594321767547927291391505059619844426655122962149540504454262941737267479958763121577080847772230115995991333765230878311194777990266085266423918270213319032739432553634714836909203480262413811987833712301221243387647161162746591452575679458506860851393534888269186441453902292662829541146630456891370183230085449859953230418754747162035079016010182296325125544209099031190633448797269796490654903589076168566889773761479049277613938771003529524097050497006755864836821228218758848431528481112981106612308970821951739314563378790790652960943798217416071833334761761456047069431952058156952391486625908981661764033862309328117388769926784973409658589627849751476660614881519089153562114249078897032609516319386186852056346289075429690697030621082790963440870923080457798193181700722432527378835214947177023323131940502547540969612166208111265610295643191794419738063210311497985200621507440774110709421849184125080715895459610333434081896160100883954157217744698770997366155426853690029349095390184049351382187991226569641534559405579428884553455909978168584864237007852016911819665172861229946890904007030028042553163823290519844494145440670694913043281968406963004457504071409520444359387109430079162036095920205888864510038559743149180877215554911045708707577173019352123940233797933624315475805118468858030442629654268817610803860777539808261415017885423848651964888529064249434736078080080097160951675300893696241794744786746260158627027295240112397293601168074706102976149937425291457140821317902115435657125137166190438241018345875830509825119044531006223981670897908289485960606538448680059996998902427744085285266409367604686657495165407466454059409033807860938558468239237538087457230770454821997546517675963130442329070406151383207692590135498753692678805435878924852678646212142902964025550030275582626225688951988228627801564462017160749583971400415090442516525834609060412080481423013903655154383953913076120793806004428766425899963245541312706189661501619072850522934796844372246280402259708069660870777695897901417136386594630984597362573747531065573519665278429707918450688606772460550239496696764305311196599504946401074079526334894028173323885154333523883185499580584306745727596823369645154369438195094490957783176787047976944617137589637745678458137859563413140739561508859820292359217409877213969227771628259495834434885640741735337290058761500146986362066783748136362227981597293759335469013243957839982973488637006274126750004278762163903887978489668158195580947991179176969230002639609382254089114158346081592419767952928759667101070959994027252181451762244222122409832741989591998518601083936592149706513039735742241546293112000263873210345397659078984216321553049204115978993960218316757723371065892246430331716995224913398812591789249378159253995650419627977123097809956934491923745383157282683602368875826467209920035123768056375261717879017467045675198716325642460235507357838579244560510274356385695754500748172253604520088414831332399774102211948705381760244239259050572792931518144551025236224028214671036703818232069725341183515429270159076226788696443769244357088473396391490842652954829087097914750607627033818209052888130415897600436122487829054779440050277843912443679541050403376752230982822222141951483407315892817320213228186330460204951266499263552787174205358693552501398747647248945383891653540066713606245714556787805427159779470177059337002622338216855160658771813248423709234848207519926978388506149541591075595348516997659921089645252137779575256200935870034280631036176820483622841731391808380466324506269973527109367788516217975935123868788978766776587183526287850880471157811057568792323896914062273111897218048736056848834307422595967813675000428776132973739851148567927877701295272117069059959608774531617833352613045246712596838914053703596511344403654635730385399282034923256497706299955734936583889667296228447336766839784366082480318561397028947693642970289976492374714328103648859913086869008303486846040284347573039153742558208424323798174881717493746418248938617397889480135229388088824547396782229074124527576038504228386380009043434542615996075544512109544735287091929456082539466886879732063237578179975937609687817492243252556878974188440569828581264590658912528820665146336914384231948220225166928714467312701989005418856649940386384839885633466739364091780688600112904268851282150210323658803300240499884081291921785972875342006730054043759799749232120688588062243835083928118643702423881457256409713930322327406090761673569033218366231192135066203542670995422433576160003200934765134628684934229700407025505937700268334336354078106664310480096511904990334256015438115844613344947543107311784836408732817348367436463936425418055194200043936448268993239677640021852117566367817336826082407114358002649897527942023419867764513152997318423471595949227226055438187398705462718471645800899347140572373103407552670153189430637352938635607987422614165752416892209592998120388300265921319903040253800551589324605176134794457567954460407040586127758745146694848081538178654884469561890816049138428757070599630946769780421948764173793864939720901263126182204840259853830976807818001567707110437293260286734727023797759011710995838761971359479355548327047670545643528498546076606198889844987241896255817506791395459025238447269132327258990821326547909452181997594251950269968563222364468886624556104444431734495113673995208468688379452946724883880360079121329877104704657811878853491279267426228749330253470600122644358381225818677279328580696200762374833745298691468453630648931366722655670411521606718496161992106612279616048295022201603117913341501706915460259138041106622513871293761244637226806360339211853814318815098536589824955247849717584597956632842051055664361197779145271073741611077812683392064511516310413442356610388686547386178519352577798354690290640421702340281941817474111516429011616893516732130415312777666956764707407472777292515171177351130083852546734010512235345693848053559092462958021025382979850408593249340684797139096190504569931880066407896564620287454940158344573505273631137668093839697270270841182520598308826839873972080561700223169872625793198616930704184369659578076435519605017454301520339093415890321856815224917104118222274970995827286989597777181786837072545615930880878948567229030938516442775063019249006854588327683374909481761464793861313943592556990437797654288373200648529676598448651425255242933782310577931045604560526514926692618932467144069048742658848583127626082222840613061365497449082684450368466673930101525520287241953298744095149912648532410638286845489567679904449565017396057382704881301503339068853678455632291699315720404528413768715810061934539005099111646823781505947782193861925538618562167443860121632801894422620834571092848034347634925986737548452144745266399419017597343482041364739358586649071743084976199596465979350713828156474960653600228993485592184094319603485732770688738392088638275185691414341065183783531703432561694446071025865805350101293967623177809890752288574843052962666061795462140757836718934764034868620983806155524289823156486063617380036822623748154138937230441232547077296826850959184878032992206083644606207987835184129394658747625834729181293590456341870250113858724423789990623388081030089362229455456206167761257085266873850531754623884967657787620585910494320762337454369094933454098022581017180196810844887090410693432087367506674832246086948967279371826735203599009467034014494078155401404759959148002519790435869778693760818197192865231756139197300973316131112381326142020777859966899535702311771822360256676657658008439824984898540514372228234779846043975534773201535718284803283626865524670491036417621799646651717313157802623192181062953491843558271419274990739111831886741601909743354723789966612545883521272620756764734060758156025667549397105401684951016535180430806663348280418251297588574620231011939871656712239747340562315466063002737733485920562763137989645344530771378133420990308599427231480460228478511334946157730913822192560760040290266966096846436256353721267307066414371577472402263361525758321604251325186886140831495250553618974313748345603045109013229814871129823260427265499495341936673616337227187307701721890509754718204337779439169275079657718638015812288163797440976114509435459824517347040814202465942034791697269465270979508045591370926770157147692540694678051822903063547078727606828173995570858413578400125034143981460743132273722343632736343747691302454631501299229541618812371066793103326807306153575447272758762252808030389647120204897903378367528414058553953967993298874110932176830509823735850621810431869396616785056622214464842956151622631247852839533875470641647006378886499564215156002047758405517433015576871801288903552427423879313751306251799866939425153438009723646306369465037121034912981807197656978351393645286255305152509296824027720899118683037231637692679097773432005153235373792356081561642165864100184847331026099207371568913276957590435002629214370085527722246744299893445201496096677861924669689634651705642176250339474249197165089248170642166704142992523892922660104076007710876901391314021667471804255001387953114593609631640832857000513730540674969553998955168157317423562768127360215061475753861440348061404653838872328160113483971289320007987065482374868931919765903332325730145668350372112000229586415590271945519975477769795909570071841370580202447626669614169337145210072508015900096012983365929122151035237720118646832944743083611883016801813441957893582977635842132805109788894775131044366641515355679412797350143301896398024308469705984380620474373096338846326966491046869532511751618754967353248584031850021139847661695262817441684600696669769126395199452256821721343912130764371729118112917165154465531139605292498079736268312825729728207115989706922215516762202541405033115227524436048034377831956640690455573031974893678048940802427614511815535801944777020896425785046603934782880854917851537497347048891826478344053204017814868247540851366780428180979464313247390383237511547503404576622574744712886776468802547300499185820047349043747634757704279066748615171897794063674414305860504863092152197784542677623562015879197528228733383232490800353017436966117805225297534621724260499676733858438958885396478385965807423684700392022922078473868138652924456730055578901051920433361805653908172604734119899132157101937670304527268579546271153326970979539168329500450973446286126868020740452554001880141305336180351177188726092757149746364413531902754083673254436859427852438427662071470305781022663409010321813803495796947114952836029770433565138680468876908938419899337595810644514016018683543008902406722204835848353513487942724634638789610119606997489448147241630704111443554872190849048149690967224477871141074876830625206708274689315590041680387894409247647214730303357393713609287269693284849671909398283558506191586533004997347865173254205942634724097101490549778552741090206875355734213043738490827322074903216898024199649221877360707241809294495315752723545491728343159841752550756314240244745902941115652293136113722513502696637273858219185149423015254335059155963999684843453287244084957999752499788400173951220138144289712399427037333854195145758736299407682902258264765980904091850126211546955575174489080665864171618639739155914071359877833347868402994670737577730548538804704657996014244773031476530053606461164506473839173547204972247341974242268869626487086017542037390987547254240190886069161263738154338608199103074697483072785109335940276006188798037351729915174516387052699808999487564907140730397103488831527110958063625163807020083349214515593498255787276946934540078596490741823362852004103604419314061245746955486544808583710922745918667052337196533718505449217916334174345820576707155570807331911243741302616375642546602024996899008620332179454014898971207248169866069969555682811264440613240693740852579100089568552149166514603982275884757059793098628747649790037952343115912399857220476938537060768843957342247707698701602519018040223799952248667451323079524880476752437352075403835682678933531149812519605054331911945565339683105185908261581426435435379962477312906603688936315066210792406055726516433363862822782248596105313306357666494720653818346812741120415390958063063448005315218491304434110978693765617812429507254058498145983246580835629787590422858481181201754998024663565470098889493194206850149551402371497563853151486713834862096284308301395870157492857872574250570974707173916492575601379357530902242735009159983651802714702084744623773123821173200437698853604580723541952469394506867665858889164388844127427186980682304563378972363916805977950962240807316581334376672022820659289225251191523987202902051142532389971209147644182831375456968596216432648245466180583228760096303366157902907689032306030706157864339206733219633923401172269740625347434425981704447743916077916917323065586000622803810505868062957725420853074402021363721940652578082839777861083419004478376678607852735180080637705937269670014357211617768788513920995327150635571989041001637672783111531379494549897359547273355802408874117776885546180354426686264127831740471693393051789135586447465911816776578676062250259353577582799534005359251506113460520862863680896534721491281931979547814397338217455442641923493015847813518155821684209146803354155225701941436707627403899420922048337891813065656062439343863034377430175339430018936041211308450603041029950280244315488109018003520320629979123054493587742238550991569396347639242387069278608996707329398429743531490420026908618505344055295564187378334991016797138799362079489848600029694327125219011823592504965513588442175401873318270847782796548706463214813280608245733022121844366321388514510975979317342871386510267574551000649394671711703993175016676039777605417930407401166121795987759072541858945106497779112442014282831983897216730755918006441434320176275460159561589716322216497916480203170594988951637181341509769643676845438895490030659970077402719496572443578669934162791626511836385763574468190998876337533167648937594536121175343180363770800200959568972361748686463241404987401969979532933621393744080710283624895640143428747416696078611059988943962555995344127648970808367552231761293294745168538038323452655172355540963276123515532057792411342917978619424964163801253405271785537856667948124082652414326682727755487703054403053090799181715463242704093118047028897098128786098358256206880982573518103169336970139575558915654161641076489803861833102322969403577531090604834089564464424823557343490239087279332235565681607849995472652516586708159251705198058199251301764658610618784238219967695884685187368722107766855698444279313902573031331533404756319884621174480969483484610083803776394280296847918467915858355622763958798692283263434716693067656906998166621842058149791477613828336532780519059124223018830854834223023270687298522804812239693444131494297452059423190845424448860802917653859156653027853676048236807779456292055085380787294576539044297643244629503737722413606521486470220103200941278742189840990314343218719334294197783370620134633221312252545929574322493457787950184352152277385743358166274186251262080550121518501601685557306820277621243993156120366351806315422209549351208078794276304308030901741096107927868899334865903733547996202114823043968486604097170425643726588338990374313602665195485017875327784589296599614241684526898551434034412833957497241501683353771978230758095242425612705528662539927781861760666129771805355919548619039129933245819784494082911811692392080335800212004222776361834064643816092371953590907984209933614110678899772080772223762402738001920765408951196700216790648136139978904812072273948862070980396648366964698543709420367261245176068196570872262717923722191719615196163805671579206776018349848598471206809498482554448967830494945585967216134689954400833268605645829879100187405023055892673367842544355611259467105839757013226998150778225689220394546127036064645242609992457042074336039512843176092655396587816358932672476375554942437565436203876492685138702446045434153122843764545266518662228475785032624151209279377233683559693921789143204922341596379071066620843998743045557374032491253788349318571610336131835322288230042679129616691897596739368246930756323158203519647327010414257238104132374716870880438810952617327863255325062449374612027960674631850279870460250740632010732253205526867165146854164287457773071692189659924039413620050006262533714870476534410412835072254267880874494042440604128431142846766501705063840303600791536311073235013905564864082114453505088776992348448894685018612479088091002322366371566753802227346774410643788757157608291921842136400781589405800036803822330505959742531027483643707732107671040413457991036033759850300848765130479172410826579738204440644212714282727324566029552823766370179207463672093108651736170372806833741177053288597530744714603864702535300334446168596219617058543247826130216242185301707140263512749455872900215250243011215683021127771199036455905052203858449516037686238350901817460449983138549433137882213780333747574524588874308994979587710872815627412841942855405502722646795638514551254818306391493676719932675804366360215312638568247916625607459573872244291692136462214047006425063736574881917187580436010248717394748871956327566809104227328331325918692828214688360384208811205194932299199626779066872678418803370948019859506846121862687913960781600201232735919224096283891654685993509486375575989699659030223386528776459879794017264911107021426873334414170310718733290629002605029191688569144821626303506530699096090378447286391530121516718351096816988773756353315370447449909539805370968471417469656987262693097840045722106400480105762976199154028754003645725140952982567703037547018584332866855488652130894856853488383086616872013433919656493569553675074757157990399181172409397757435235062098911935259682153581158101422631604312487622031729791819550966609666882692165575991608948505594313578010508733466397497913331162306446537946231607936242152164719180056673385986069443144363381831881055844598025611869364059036902939472386724221136050859366513076907827439273265976648852376829320286650530119859411119741883227958046502333082625010483797479927281096822444649136052952238910546849728806207692585601259766611294974031888052849419379861413617469942900210527470638118265611669063770546313756508858496993309530603828419354574879211216571133191631804223149917148764497361770222606753655711022754439474719069091311458519719943074249435559282309769173961924141979450231918083274702331911523154867856013021595892933414801136537982171471281500429755596483190083642542750220541723353039085082755936494729893550413416247762652306384539845048897337177762920279685734528323122445206355841719037760763963091798646479275065988291833213169196916397208399622374909470837629950467916807370356710419334348495631837300628399283595852944038673683692623749736949479994225687499224315419956065312509984686852214394882553343456924791268705992789417465196311152348266458917705115020395224551487687460112789240062563674381785974686670072998903086751807891009708856876782895152255345702802047715016541655027289222506190418751716564520807238246034072670989572193467371341889454638174871702006659673327380673635735686135692530505911372582436135825622130225982387191069637783887296898746880551529054571979574739472081849381769206327530284326524367431763013252385094037465003064839444615508128789985545881909357251890578285540726927402133464440676640776571408323112960950833695913139849244255492857285705528465686427090816559919734066605088741062581409733910549265353890435815185570640258774944814914403127023848283104103733669792511158609776028710049649564815760503824908383248579593525600744845185874806648636436769782140979494809713054927239957410595418720588009272696145737326291844028646999544532447961206939862402390875776940110194997802147727133477874492024615679914518550074725759721768202996176731434925921420785299798877531090448537235556317896597885264975143059720453760609396291593807305117322219868601906820628576690108587075147844248369277816894569104748618966951352179468177529627667120498977491704949792009659401384162952146956130997563500456668671742827496396276993015696974201893258178767380821792304104692107390531981998897995354684623790294126474252157386098198675523114078971571977939009919328807032406436868780107049823296728977439680349051778445377851954790977073896764798075273644276477432294227976316462892443972914738017658049955828929001214546818621006542251356567969494804533760342155937406532342218487945105963722230093142107785765864599447777457019860216225828523446781637993204499193655721153536807115950981379312469296759206662164160836355506502003346011588740217167811323401828258485520983413387692172840046290383686693451142701208792141608663874336299440475774639992343925876965155259067964675087530999189301849323577179106441468165503729631740377482172083137727529510665934741200173301664086922308971192512585399279968166827628417362284626185457031538913182188840668132465978156161823001168103677166071619513254416069729580169016002046928426074686686475177065554357205600435844616011851175261486743870722937265281992858510348250906386953345095780665807905935641749749527497890502383682256085502923943556805065720691788721862406645401769907224622931190891929979943536410954140368299519099470511242843369281019470038849051385209548471712957993015647003177120761981546486403279931076917214319133010864167042096386878791279965075009574002382697613195504248298481807617965749869438682709120186682675075588568311608155175623857519491230161894684026520192931081672066210766166405598116045668377404630823372506988138458054376741941220857327902229984342523599486801276687123914766352912469340951495521640767776391519072648650813244051834013862166948256733196364071672872880604743527284834281240152019169070813419611856931548200713965308228348215525436967273057975180447931114841809732840529339831923924201478391599057832945295096262629593144916548596266140158676059523906176782617532682296762457715428185879471296607249585212239675392795954182169884352124068674765479955036743643610934012135260163490910667764678927327833125020814904343851619640471997314358552074455613830015376779813556052012756874078091110842370027010318650016032889856642423756065030796701936028064291911302615168647237507766080983764517848673559595118868383333478938573988578325615610891993544019233635137970367667997537173848912680041998801077782641005129148061734042049641035297476017284654927366409283133738321413124798782180929903252463313826135540087140807332999760827693163437136246401800150776262531543822919359711219675895230656276851042224062220488944091707944156936227045534202393022321893628283406464103206991571117346199331883179005159215355123631974180890065875937153752673427589083868481304903620433941654583857663435122888816178625998194665264995627079786250139147035957857297981528737038323462993957990838082635081708895544877511104575534648235773195483295043764360350757661566067018586140493234634110729758523107607128909445289452815114559205380903780909128428118304503951946569271259899744365004888264246141361303655791443935546881279729026715080829262658853759650632477643520310326972989199094309736391181649181224354125788512627046342595638995857919199759307108512120647403149962548608868935446319674585575691985088149974111924120062622002025814943925460162596288830487345484227698576492690566840447572097678643919350889198418850211131634998299074041874018838572183528696131436299209252231855437418748731499935353053687921146838035198901618387925215380360868700844208268820564612604654716278315130804508824782441855943390464750931048437754400684591386464493202425476063944856272329733469310702714611049371441344524797861849673579741304275594693959505848451022757751897267978842334772571079695641697035422134791790625823884195569129096759334387173069877822261433948727411144487159017910170494223177270791426300393498977239795226405311286395459288408917274342980904722719146231565103186259305495146460070826165362044942169505139998792409007511404540840246842273123441822287401129688149499238377399533008128386574830233900059586189413977262216213596677985386203505296897867741089402484751973700410679686805978216958125331432949680360264005589366101910255794159330852211440061012447997944982271481211053860393815228971319136589539279380039297406735824641511262468092013631919070621227613598673961406518584017658890256432727973391965059664550530426765406168061409092621389617786519768523276314119385468841602551218091738159498877086892702611508152211999369161234334479450512290466545837382529098222314895658961380729512525532355143377155647040876075149994967443285773839155790266992465913384265653841252180059580890915845261587831768763461118202905558134343600370110902065456875694818955538435243574365547563356791939980523018604065279903084349040616795372240670467388466520204519893012121337622376550250443648723594676174575279138222732717144897351315861713116862247638743992355717253190641085219019037402986199221643232677787892642775362660273911747704800475437746532649714474635965043249953626891692342008125429614764738806390157712786469198421893519178007876029065448914212961345241239133454629711447211512612525948586102887127816974135053521700205996726272822231430640791308881145978843922103816289012193998570184243010904352752304934940411571863794319875925995141974956280476217553843271589573844476084332507541061268633507516743066373511915178686845688205740292570787910203480172402169556381239952064132479372585700979191710669708007567871642990372903300099078800807496836888647058409493454737811778743452401365493081733337586670633224168649743683384249773864915511039115333426738992048959787117076799656418566920594221489678962116895354793947270468307337684887007341720583847807488326963840289555961472592235058886059178940422867727777271300378160141922673690699344145531172237176276306857231670446202559480750334051609787448816514018173479328896510119570083506014604799018632116221836620472739465741420113706364401114477147496151329610887276412474320557072947512765837786722572170626116477427658316794501256453656580689456849079106674219896302860818733053070959394315601117335468946072885868978153961435667021447280815678611586732048853304580240536469151407948405132950819947739183314078748055698191595428250387884369960596666663267750192644482869062697739497903308115500387166695539763845051781046918916005923787528000000242352430795640327637233401035550104722051573300021002098228083659630064579878279395955303149924745154498361251876941122868545067764710119852535885281249047635480802652297425486989922087325780435829527099244687182813970203929619243439243702623639885103923576836114337945029795916129004845725229233333598489041408005110459551308283040504292352893869328578499691697770028391510434676264679320354328251080103996970319555465817604971260690376445153135322259522309585129661030615686315626391873422797997702938660698936945337067767792258283029712758584236261229025321828508813260381856868468269697399039980969505355721110111628785451619224693972724213326765353064738380874600577756964071504068068618765927807722265421730829303187295668194068056576564568714520011857872746777277766109779742939555130110064346473612548498872477168701805883162428930430417286180868761542423330890224027459805965599123052188607108070579019553527720960996684729407811148384415894288223699435952296329141910731161070119434843017680805924631465123620320092933883542736085402684549004236034483297762622711579793284449321052635525356066708787148158271326693879187222664328979400954780961496502149740241597413889378192771359985507614380144738798528884096962096950504596874473943051842031662543644153426308888801179481297342196918833021857712985082115837307044718473981365975950953882283431900506838375423873277528117998997555681657554932608464435908614135908458229236037831949508927461406449165332478230616258645104368738109286772143205843451571301664593427876014591786240321204738123079628255061778386530210983900894771815857709863647027543741277044115589314916852199005749487581622298068473854476909781557631451486893898654263345437473481683270807083271024370647196576902992961682140035413324991380630561409178718035759293035159745209868096921609867234761250181039292460766012698677369940929631276119796953464735013638625903472515713968752314849073102035247878320284206373374054119203443130430563881846324623618678863828358694645134796730104319040032354901730106676226760032783418859721697952397434827924847482527398177285921782812281994713951959549924281845422839729972309036349831886563788094992640622070470911695033865339958410793231100715981424427082759408115883301415063219982088025474012888795713785435914063100024247280045225826777888163311654304606199783215586294332658238306643802651267517497579791882113964634308045352060987357121931556572389601452007813916005118477178761335200125040392039789516655912059446088649382937509686675311474355731551388527518027751770451871982866895651825988748518887289264880302147077562815155422007951338720086670667462762311363408858174504435684747675856293656825366074709228445696571789505291607901093090761525921618891031392257144883740580448500112064932846072124305473233863415275770030669702726206244783801720899365370474098198756844714296410027937328982558855993627010739139592187229151053858541713923945120907036284379576163330971286789178483471142397667310340378585155243853980133343315763419955902478200446135168875242099648080773809604436093087151691553554828034508719182681775752740988916468404960887412523607228654796888470597503823932419976898753761597996079369861802368664317991862539740535875995943194116945667931466590113389898211050606376015932008564960683022424029625492731842931786759424462479006404487738046726293287023563339234355885846009419343626239541519692692473210762933536448964892168396428423703847627832403181167364620870123977293537509349959502541822304994358718844168328318142587290709848626073407467899918329147843032853581171005050609830470922269459582027868804119024164970058553244428826955649104318331472867275124012833465923179362198556277452349162006682618066710299920332605181993398252683747150462189735767961928006187942011301797446685540126909753876292801351760492684134585181554514858186883719362340480129228626148044227000256212868272633472125132734094086655943775048575952204181423683282427706587067244530134616479336529583506163432030951634084083863873104159915125653716192254931937298832556641470089758734118078489673506272529288725897394708012893032693225285653802689727265609648790945978179545990766219726824499856796681825198929422712929130446660535505136741475024156082605257044206874538380207375909936938027216097458164015585190581641584671478280785367748550948898302042087103341406444599628516039672139194303611193652988711941207533075285116671170600966205291363394564401226066564737124234903117181442510922637124639680436106483729381996067602746295030679197029564058163406793810647081411057646315178853550060890225904230478483116251008775262997630128650226078090392481959607966206255654914426027643030294468093670877245413995826480792598907646126874960417533393911771453406811538759458665664611226482701538120288725451126191794809424210175982069822033971725507734952097618259086799858327617362927808411324219868632976477651461882852816487427545249265236136220629431091649036549612126031816013097443162985959837407156868768765259397293070443622201212679180980953008740112841696567230982505167383785373254413667787758284808250918018740627608632941728866768976511770333993500468661172815230879392278960292079080477194276068189964236650030992764009253778496251306772142191658379863510164055598354358901224369040504688715422266312635485925856700211480579998667565231326806206508509826186793909494691270032894604392783890523697433480293941164641251790159883621954322425933631109616773374968750372243265966245471352460408910185173625835532661663627367176340437193776036343191773691838103728093835378373206303105639442974046514579092100394040502986051973699994729705386071896844246179553056616212006151741894808555337536218884639094807851486838802610304262427240990987103311977825226528620407309381933230448396560901711429647591939322156480879629556012859841292731810832072474945542831423502742409174729524952190476699314336913166254948051704530492099688148290831033898361118933134217623235562899349980464054489628748791425952487454779116356954769986266095021283351953484578548551594895107652083129486306699487265608538682760499014320549214406411363125458142239138714728524439740826457461345309603917169161355526329411849018687613537263668437336325731937423437149781217477983414131805143391174419129659540042561294192411012094568571988442778569228145696088948980932403576918302589815361971638624948200935308880101817209025042334248704979733896621364654883097304643137551116036074163422061222820472436269023219853741652805263423461048519937315353002650791550340451788766954232083255129201806165071726463652305454896674865718939611703148626153663302742016182716519663165542656005142021353845524792581108756407647885897909543063020931727447789460507008319903640260628726743323050412076281230809533828640310277733439499687254432126844949834946129689004735885607826312877644505235422887967565713692341534251196250650299798643654438109339421182341991151537809611022927061860170025032088947891769729852388132312950079749901713772386621411100683706890008365577439631684495053721643543416463626719055049742920396401850369511196047181671445204675323675460683231246160415862114341597706886466115720633657965642750121378327178949941299988694684923780429683328986525629842049300971269122311426150779786019635486838402477349516444285558117990687188395872144158734785538678144311875719675104104744860447227122145450970600736665831164822513908141068812033456593945386699371625014228158159372405267135552804492451703681698220647185435132753956606848331623183400661201477488790368632992684331726270728539286091780187031268139361715729138287226259914299106622515572769247426824244626822943529203959232273392049311950207654025467118086262572335880034804213028010642993396967090613698760713217186410296500689635219934858775708623133473994844780211922958364817264262111254250770982521468202599910915439136855535177010317361555371155233234419263969430940007821792326945270743237479286123517088754503499900447443409234129861236342517999271295935830526339587307636417614386880955692018753606924689369936925927138382807875002764910614986215924431675994326846845120118605713050016719539840379414016482924018368415599246325409512237266540466644630150481734065321175884031852311754868866415432016408514189882768599392870381839527476072246008396639787225758246888517143559640590686808774555237083271885169567762111441508040144920617688210820245265753952517895366340159615676717513977249357366686568774745020344735008855125129748835618096829218015507283694976867225739664713521134432819505288262465346767617516154825474818864972120192284663318845477647409078563776594995156376481465703382250627470842139987849338065321448400135923744404069991779446627658719178717365768946133318364817348795936749457216766218068420662908729043617782274145382846811744662458741440832618637984831813971733263144427620611862210560411907421025564032516379781164075642637701212057678638954082370344701244330554595182245711401844215757583669461558918062047852591483687746789603814612498703259178643126629046454940292587465799210076743384991203895315100546096598986820877244502750206887100883402681068151907523835769851354501966723785262048489808545846369101257865516752173610721150913405975179752471118623619105262207119819709154038990137608684399170574695284635318365365442910336799176593522766246396777240475097444283771864929986760837894379851982634173891548594188126642774078127947834687626883776177920964900940021947193066170882169162421687020411082733742119310758197406488154332473078815135001279071150028744773162463766900715828869725024247200207765823379841875469784863452236554811108183316538958325504349541434753649127654704814025448119424798995271325971435648810366068043820175907866183208172338638893432578371002355243040410118888987418276626960360416465787553095990067363685214126227191769859493146901765942717598046563051867808994075190070071907872943574818613022790119479170019276072630122814937501200416239150204222430188197121789541867624991278426986732146980918537811344714682442139419105526070811861356271971157760768847217642251385140042645130119028535566509661154586882047319335056128923729942339708246092290248084321037552496889072464132337270715569859641727676710974259342412034069531871158810363532971165153140430527907212229244648860582741903611409399087510507669485914180055626366027090630122105463069329585230448013166711649192282853497379929297643917980165270570077824390118052892917711701684997812639050619952678035649493194184477754098765994556828026484323865397107821368088466591243607435047189307936812907094774128522692781890592517750542637295878885536459828112616172262421902877873886205636607890543700017961858710828981777471915493248679640453365081928807460176136277227413335129226310510742117013879508886719897574373212847319019034470170988901976303376883118201721007017728884983623343694352006173385908413012814492972839359530041040453285075040201299310843061450701739842031948436341461658185724056698754497671932731618760635998646598608992887255838171077212934864268078077461949398286093980689420384657745648899229648904813132552393053018235929060510944351326268067186326553275048058286812875879054020107579681070325266388949130992767687136535986006021138461296314721213046495263657215200935637918385041660900119430689317068092385470873977865128737761487015342251626524207892995445274684009485576020618574195852828236816983352676311891632822369677933860198026105109061166291082649566881695779845609970425206162808785223979264673407117954022095063648442654393084384855448031619114246657550813660147212852126418080706827764861318258927669800427694295263855949673141092194465232125972661059197319313031612107849075820689003897369125986271497156032346427266888472371069662218195328074749286334027529667725344522529869438339865256591239341688432118582197581348251947179149841330860799033102592721627998719266649349644884457716411597157873996747543690077763605353455230271509960072018504379917699662519941283692891513970821257397591807732129699945090475076566059541689647445181389453069204156553916193493230083314312212994069331763955651124966442597236108602711432099965338557777892618048520069284840721383849007709730837123430380858436888613044458171073719305451118041741084805651236594423780796861270243106219944972871775694270238637969777554517269854966677111037884321898630707263236418974738730100384069576941701036937134567272562167356732405047921465492455747640195476711949890574173148861010661967017977171314545338334215815725568478570853084093731004324037025448261137169695901096151923575532148978653071465713538687397893361952792213641303703275345672859442994332485314033259696465894066349451676949124180192536322509179440979721134473827002321577039421173415537286326770788888061221647167058467841737382154666242357900745919576535059665091315085511767092974054684621413413889614249648631068658356297373116583280184649467043535890920464935846783715893510005118385882563009164326677431212213429466824498055719907019228007655893578239288782612668542036356754027003812222900727111984359067613379905153775797680428792032422247931565776980754267988089344135318008393205429329162520262671053199276631365614587489501762001516948028194916329525366776395982051035909862118968342758197297942600188737173035235494975246594639934090459178516657701794238720192785286656712532921044946841740020553936926554241103453277417478275917836832586398661436346763768234819876948093545398114050785509891095021484360094696210562791421357386219546537799676847321008806269397813271487772196310983368166223022851521560517689465287189822587873438066820818170235148644499762892491383527178083780721781693910693361543960423539458940900999581160121918203859998611674439102033947220364338312014379538518720383502256857234827614158005830462431762009629329863001984679327734952457094031928431438907021270852926577682185965936540392231532885528868785232623204348508187890997717426523700779537460029494952257839249797652561486488617485069050092267721724791962786417016056432473747770055715335813958866207144292625954713362652170494683408278338813956170408688125052618522941671243592575449171492634030752522769664718521738624344061852094472881434371592604880343167488342384269705978370559002396888083158631502295369249395352794061635467747127676902273937451728474081299969214065361044506702950576364946561900503758257817166906665801667726000299111295848566656712017307004898915124781367930206059679217349545729053792408836028345877671074237238692217341358705736453507557213077931961655808181573967469874389694726263953803681978839389217535532117330766586087672261774029796047721144593109525287272451838265079052254818325073226770061873669711203106523961193992594801294455187030889568873034309535977203473085521580028853449441893374201085287971485304762647684821787114471570425735000801467553438264777787520258192785937694901485518142807416030459894650830471075858148771678334232507970864544034363890213363605230609967456337886000017595656654328246793355976145971572803550579568721356793937092974635557867268727380631596690296846735798242312776244782718941221336574237376582470366238757199342291154809251856124278625703480032184282209332643681358442124771781317284107891070103312377226377064000616215138825874978813432180990654198176956546744769976375927858484607457678068862000292404522790857581583308249786297043136697731750010847409694385921734859443758101590182285034339635649128591437897669355325303367598479224552217186603203664989633496318330176489798262982987154387534493831556343564832809385689332949058761014389671217999600636937026107078544345697198665540107339587901193323569898787711033817413293864340254967281539531110464900551992963858451801074836557911006105546710550509962904220496965446928186466108044104025971956977813361731959476997108175056246046517306800845090419056647040580816727848016395306679585029444220038764425772924051911020547671616580425121955408178958078866482295552720258230185018773399082804454262436626651135936333922968170864065779449996822058907692271221551627599089632587823000630277438243924646854183786850402129692220635972322975469978358662753257705558102479662677637919000443887054725707246315771907410326857326835838649888546809221159556133888162638853033916707660190619769053441926662570914683830226284577813930946067287607755428918322975193171070023229711322858671619148880937897288832822453860730764045538333860841481176307027748721151834382459172636363788414592255185428683854961759139078811248627656929223289416533281262490081525184331177313465890198234212802190591068868817822745112334870534827428039731569843263477835220157619343646975524196124139591215550249353886530483335541592716472118724447816922792008597047248825837495888800253489407199476896255249597684411031752383145384519613586510438475815109069867326348101180970333988252863855997061995087656142335857527140351848768848185152938029886288739341151236111002422044953166677591187921455394362441021195245461458946531504108518023878194857314232829013044830220106712271282047505170787658623271647041830502619527150593471590215861147643845702483239029011751132344102387207139634216964941976438786800949479129797896248734438172987541134168506218362100219867794596934702338823917078391760613651476311644424319704607808833797906881825604980706410781701180820028393247178218994454992568245195492510124990432975048124183560075195524797289344059139820966280312466694606817234314658423649100964307471419300902931209563922436061105089361156660975254131106549339769443153369457780576096447159237503995594898352605939308894430851071784907855266788013831513142051982844626739537726052697285328118834379870303427177828058315733118139885566541455746280674975862871079445628320676827895503489740541010530605794754592519399109651001993424539957585136176019487236361586580486576975466659357633837573097698089603357742223135017859975172401481887525343517363400577045413349280819763198849903099420133247137647482686003005343054521955350886112896605581494105081210054165791758472829885214662257489401906231534610399597885594951068762216075047513686582645212884374114869177906198899361431140470143939342725720560545530801356834693618684496378341343699209035392761919961311566016190900378292922180364432522191643729526157845727048325449317487682303888126297634305255902815000595751124283999789364364660771846434980081079667856545188582964338887817834037268552260340141379311043303075405322606428323092474966690066922183539949722453344442866171805305664513519646971983859725336113199916458775415470233218352811195377223083849446571246914705073465202600288300575191985922658049496794082977234313719575840255106529446468462439553164288750426098126005268463157278797397972601367196129026257128008786956649823774036059272448306194638142181220985022428467378957074287633183974736533331992314119197499101493251681181309968767470694330858218859095890249616970948054970613676572132053835881742007107430433277537750702749027747293619998977510381814543924186247847997641998608175288554904729523073282167073672574580323429987335319019434854343863337642579968729913320322824386651436843552768350214669239669701000016062580375893127738118161857388478121264334091553012691819312737715654963957949209968224226554492914167202626138428776426750312957194447322020878997861685784865088592400858252075041749985920803756059349907899798482405479591873158030620134174975140212776216306737837630886102003948508228571876143241966588071226234037605177150508602712478568994491386853821435015373091617766383314736014059641332629792078936909692555516016540047587824126673002342282868536440233356651049764771799170954296546401195869362582420467958103096372913969499305978753862326723637296846335324459800059817460329609051220509152423827782595382860517229826045123848485966429157344313519830379187114069759179715074560498674094983194237174000539777835033369727744224887022349065423609461979093440419621916200302505844111970278870460077856233971019147054268854616110217898937459002340556925698951356895706331587496213333887262044658352209156574642601129185084799665390976488915224566732812573647761580443432529646426386165238856319668309111304601408689018190229950142086707582931418837879777220627652035707758083895486222351982187280333350349409204104039226790306951809365160068079545785138607651281809321067560610584603755640425220091628322458350556590514151750680247414213418217836049967501354358516789472712301165522360518843291827452433133039613427284051229755815344057957882909860730262739119826904965355296887319125183778509471431602042269581169543503524948540364204182548599308727162748529027778463238334931268073162960418071957325586377001052041113646771620379264101561121337013459169209290066913123580644671422031040769878070994989677526888938150489985611473689109242206666403444742427535143372628586363816151187994931172341813585176364111931236992646013961999844111973281632638273478195525987518801651561866307574281924931055869799120167957215916037692347810124422719197488794228714334446817842570160987119172258805282756431035878685887472837471651933737411704620136917254979349435804546685239248615830512649352346957722677825688917348211857130941658785194147591458481160932474546176002782573769223863562552893875280367025494229270356613981737956539975757620485247984858005322700442110165120724402695143711516817171008769724212605340294535413511424096441789983481372079552954392879481978440377615341437064642272241421162408938201502572414098429076598525054220297248046985235007298079266798641654789390656600315990985907474781361121667119113127312413026845524977438929415431208209658282113780845810026673000690081947680676017857754519295559353621565334188368811242726661456542003889504437127621682002655283084063808253806370037455267306791773789771511724742348919342139966455842090787628383051468287330020422354108931551538289426125472108894654124443896775058627305225424215399472079291198608910307610617941903937972861491349238632490700332369896132585236047146140491813759488350100107605920265899374943755485765747531375421678010258829477810748175404342413158324727759529103857819502043129910636191271030619900442185572012968589686506737640598582531490223419431152561338155564779333300843022658028494235370476927845065923659400273555120571914376531732752632898256816802315133223777027038154499149562395919103296863243853876468420623234721620012960331201960430447673963099592509422714689138356871382297483057837027912144110963322460969136515772022724987627600862491747965206601868017767445804708877236320078469863923058360963140208075823752651603738846277083282369262455141847991401046165332228734727180048578039457180885308424348759446520399113334398171488057772980632417527419305753186648866644156145191691149319951082690045642842527293163166696759603174019232163739605092761449465416168944265408571952762038659895787480054448061725821240181703129316195149586324656390187057878702788178379518769458395993440880224146290981665505112877922150825259138173014816926353349577042727531018445322941697164891901710656623562646962121744615551158495347980868713370633138757093929392061787921350805905741077628801860567850839497061209494129197962394341587887677992266986624840031126517601824434620448922080091788927187826386666787572052253281752968387283126655787449302559719973908442168780294342448618029651513135959486985245306174593013632416391728016297907296270991081254916211441215693317205510690103385190438536901121704783648658812086780468119897173724463178644529745404248113463226799137885208049892902393098897015037891094036226043809040460847834100453661007321887325592645723322013513554221894432752505457296888162559684075485684035224899661634550707910588197829457468020768064696827843792549297963829740364597584882104236487437227883233924981220465321371850891852278958848351999967616223855047124058203387921729131345542941415405460765852785624060213034254772323168686464234661687140327139561160010951018970366577283306336674841215362590567605355511106268391243837021068486747455303529054670235289359459749342373685069895873778133428537732447080884566743487538998658191265513041225484155449976088019494404577546109882575685244635308156852642982984316403250343426245287347925485694656852669921778986759945579162611861604071341930289913081641387473842765841389474629731979473026210973171396033098309477436120782365856465320592707638857052616330726178720950633756709507404717144870213570729651607567910027475717811032273657740213446827559198319101637757032646609730555644212037274676888204455678501063574132348400127614055858167403492584425458268435592970315535618948943333765428033651071711402879581396033029764950830401514853455956686139176588449358955833572954263804285053826697535111025047223464430132192656601572792917208379315000799389172369609341256212710258729280215963597636931878825932913385639674741843482942781202515006155696388112551133509411058279000675533513932808117948666237664666405467193154057549348619619098032613593014098924854168161336138802157646409388875774443823781493233600728493036691021380447151776573254085606488037974924565714427311627443559136169693633217469071198800467524391158702667369205113032660232697138195780851871248708007075707022906632262021313111339015805395523306422921978531131158364506851419807094638269145066188048659895949344537794503384219626110064331973419651349592430020781535796594957697848937153156123916292169922603245759991073054130843457126373549619810813904274002478005769813854720507026298677326621742220554207530459818813796441969080453983911865780594939623345795498033117155426866947340797947222691281066463402740836637903994716032426765100829688074935364336201044412318764010832799143866559497589005410894541293987947750141910960242980542276835417363335643267583700656705791820891313748779617633763409596883963679944533772764155389969210307289807315128807569200595984212094558355641709525690346632362029905044001462285813763443494981899506974897078549056424569620256989548120143455027533488118418347027088495645791255445465870186593534545891351325086816561244897145793477795667109701321141211055642962683812111707024344328170218930976574964325642930960694707551989382458920589206973999483547479376920001402950924161103829291005566075599541013663457872363983586383321467687766691441509959781845067509706894721427052794775420886143000005087600432901610583391668715230672882156039731963934676844506334469957000833142967872522852448828604205630466117650859956394309018333934708247541469728831124287258221270506396646115241514467365813131174057676086697274584138724147030820961647387961088615828189927909824187798983958240775604124584589368942239562722964581855134393076859238820174514755223604605008927277088193695550790114013884438451512558506779660055702466541216308435484753299810075174726731996276348763253948886694113965658841808188263502826049728370533629599288317243199556722599990114777234307264165998642817739332260261622573020265228774700903013689449545935316939299618779895207832535320494175182781396247908209963808935323683987247639623047971569232100974233627334829485213169036098809382656020614327835535471733464634202887155442790330823992711105234126345163281161154230367991739503404513529363440747202526915136968005982188029645323103016202304760029699979622346541084844812092772304116082101771799065368582809814448969234615364489906109357580399332859603041205295957874779290748573939746743546205660628410854378118056611647634014751083123521616349354681720670351274669666917223569790116164349065662110692143367212568822244199388505242609822362154062371343124365636055283213451226137082335053833174823260468375837908093774184058399006395656714983046052055120493685325969924205092524163055863825052708994611073688018974461994751151651686450180288596011934109638631533274368634035870506972520949285359843832356766264081024838886456405113330175291453882848846072969192097123195585339276467257594974094729630515364786208557459965518502708826900333529138875056051845215600657991298908995085047763071999047638145441530689557463363106110686349622524612947097758275092365251930903226151319027870545984986668725467426205099555900380859028070588179861425036249076738434404012414205492354520963397777732387751498732816958195549576183597250687198338382358953551008010549396470145867497779509339782717799969083490291602923529045821469668317340084042897899870554371210802247526347434938730208636317019489162925878191645853006236436571656947395570575868232255718947036492184321752556798615583585273556235120403503706659665310169045578552679642092770185370982755890218676804434353999782863681448132688743840978356594382429714373268864674821765994380546788178668740575056212318054504207776647014784898785744530353727382504427320019764609361830882802596715380502878118489137548149888175138361419376311233901865263066624477144759122627085239940260571919740915069688105263182995963361185046431909344039986995264403794240051981920443868286944968283439030950686172134135910558950524644938003339888585259972130957666449971780175855001172727754971826467475655011176429923350848620476338926653596842811156961702146261830840664606794814298408203429768352587659051230320439072317193452378013278877315048986520913784707019338776723061615279527894833704941168268019391259691796071648519613710159600254238903341494987976999566790112903542443846108860143370600932712650063080702506114356551901317899176174785826350248364463594447118394061064461038219995924273143915141843377494878639937167714343061556078765749089361227511910163271714665642264955309594492040306703452811305268686799651041577558838184058654163447710474252155268732443352261030269575088482547589213439587682438185958452089791181363485885587218628327984057626447356873680646945146719421742725385845908811100677054273195886867594765560821254041182510524168318052136975913738332879073340506633644185530442892393758013693946178991481021292850604357321388882950976320237216439671039905336397328514649889706039063928118517813408233772699635463997360642997477480568114045501757465024607137463844358781618637876933111110350739597858918143761396511689876578253592076006110180429695410559244870517075596854070597988386196844457751827068058167872446662932018975491232141022458140019955936098831795408080256810546496474635083632578429005978528792605642442459144371129348213076449197009890974319127986738741542649195614351589875928143426652881829748538197630555863592399236053916062859839027556227685538459685345096375987227125680784902832857637640577207386625938619059176212690214079977006089097145060884405906125091956403605746852488424234402779197410974403862940944604976450037022309489921494286812026601433224399849437909880679668133349058305468785610173581679900972144023618976069063629574050772665872368044291880942156826272894592360105464492661696594166766441571675055733972302914262397367682562135049176286860366677775563505274359886856467560166828396753461829739500338148664615181128044525386338972029294727435279555174953660539770924200983448230498365958194580202126066501603268283979530366005806214347898207478636395307403108506082341014747561676497306768310518323690386576067439241025891770958190669026668815986322562067036574544311151291958190215641205229203245097676960293607305546248233820783478803962611510146037479567344956289107124641739331075498850929336048853351630876113358575472188921254479838063185722482982860216352288839140344008308270577315849050267165883532762339815267468693855872800649134306671828742234161960471333834139219243105136263673388475239699310477926961190904639003638267680070424868266621862044541362232266218859747573574570848028163052481393779350111123127281225541657309148553102256295787237734441414483392493231053644346686364430004720396594703604834387588223269884857123262747342462519844947844840412464255100831813926014938645973015348371937816113975420090422666409174811290556097488297945996378792744327042139015948997167362950313005902420198975291854811983043123070124588880839746084074190226356608647386220145416691775149805900974057027764774706940673301214656839925197681188956637615380270313483594036088867828642996048074772392763972536479814447775428906313179996955320768085398117862380379159328343856716514073363655224381602268029260795219054490819541319791057223646819900199086926283051103534291316105645252850455132378467970275786089393321300946648800289847698437722865968130324383396276748276973511243672562553716624279942092193984774256499919534161470360526067413596726671582427048949105267407269127483157630989994539206597835385977055916973050183898123082605825246398115663806198255580296670151339402562696374459022649512894144484406057576566694448675994650127268907730257952143169544389169141487105663246374271264608037779283711902822964854085802555042761834605480386926711798847386109159578373102164004351642688808761132119774360972459281914044273348370337164675270020640853845499149488596320725666512482566751352013691952620888261009560143276603688897272755170104521867974444040543760293864534014125930451355266152407064198621676409518470054635074634267229478532202139041678386674929208813038638534771576810036679955906816073925377013161075123772605629428932218207286221836368324912147221279082434128296918905816737316548570731253228018019448534317023320308693398199416593893465454422616557440288686762325406834259670028381736610680595224940766528884821858815121793959901956775258824646597596850537184554722409023341065339807867744083878323620231129889601949211168435600953621959602789335281516896126828283657173713201497362214604222597318791853193608856451352006891692889413992804360619245930609216628772388303593429754577745451267780657519922221094657406262788863587424114449227792012043136404201819452279861045086897139986642350301702963395993482191946552980672401390157472756336718733342521649739259197040929716210488285232476806919960301766931130389721584554002703383467888063313316480940918376827587127230713705081534630208836121951983695983649285521060719706978667954938779382531200601643690273677830298627468615639732640182841654883654147182580546160552147767502105973368304939660003934399655631909525766903088373998859509793528007582862934220299191035425225661080936305766778085048259358381616207664334969636946483603254058184775406426506047098188317731606979357095549820176349389562251062661117182035451683376477319492144674787316416882447599530631800366416304850353521821976636384361651937114220839507426115030317138503683068477629649176162956942559956419623521587553316781101395539733901972572535127080465979446791506616801162753414953900460214335893620492449702960957102164641976341276467564902134774665530450535355652980315075896212583782793941523943207003344985430893078345308367450172967767005887479384006603940359764861631990828425473162853671897444450612840447013189261527237152747576958124022346355835464634623779038223534910903694075749294313765399775574745801415353981768886575138649750648787348569630141435990005451856927727444723084581468419196737095258538016512885997400498130840054136003282776074847168240496320878577962964858190220248584078134736179046025639832555520276721730611405489996116352281025868328195991503983735594078789887462571054575614644870942717712546702063612928301043990855512534948118780687773144836330875937643469466743939430246614372389358121104425572226128415027021278479594907573455220300605059387483016935366451718217695960057522209183872021949365264572433511892530729591832172311126886723774385844145150130907455266572498995141161891631424265194230820405902736522424646967076990949405138838089694272923132672572756663412429705184777202574208148301298093460451947307406137513344830287440732788465235981453583891121912679187297233976315164288868752047215142348195124632721639063576297510681082009007948173544371764339860564815019987833218830185286170954267545469828337005108366131236185002340013738375531600269023794211755566733113351318071749097984818207000246087192311459678650458148318670642022637932544084945010122035815783131316107997768527122765128627673385777327052650579618594401276000982125628624472359034377740795007512647751970476362409041438997855138416102269109001209006817717685929868732114346703833517181214918662293485750274885795728321890520355244287906634200232279064766834577517307130022909739125534512874626980794650661002917253789795539847723272320883739328139633006176997739029675106695948227955356006519825866535109664662209380324598049431581958102292635519569055220204035587062713812248994325831273091837192309210894289809820264220530125190844048295636725630012283452154659361710307193353425719977158662685475168516083153060130321192495569271141168724457466223565556473118994449977964564463138713443898940376948910075028179180268047183787034359754852012913647162141557054687960794572543986087504901835204063610193575935896418681012452961119147199620275353473852538062311454886460072970795030971946611445903093481938819224471081127056107547784366338470484360504714631989149659621618101902829044734267716670938418740274874543700321729662509992899587995596091200701446986193662585373191092601748735246564599597634214681707563612856809206635499908673042228361533332795774121115456388487410177476394756252794715819377034052883476631852697218851633826687066845859016742506876790252183988810926582198066478647704367660259599466483646407285325864039123190880718895594177916970683987650700009138842722607395828203168766322150895463525000419011596972804633821370445617752326211110038060521066701866347359212447975471278798159888989751577407246257061482675773760470197421875762200128664287087694976180048467168985351281059505379246828155250689943132787841779993651823805960681470283519044002545689249975308134686394860598079088666660809422031719493315473138889350238441903642067689648822573593933543177910372442808363443451527107745853009738276897909115246765179470023976234861720925750418181552868977180825348496839699159339836295958335584938518767810349779970821099755106712869150871830221771989772132586624828743704952768363954753469230263513089770830956067576717725583702012659200115367816056011403219988527489833512098162487687156090496218603170877706740688581388047381809471604395509585101806665444880659847943895155586200535254781540014388692259762773555006753362548132774875223764189145942586548865583247593265879470698747665143112293066947581785464446181267091798993900617122707397946116103024787964324825892309868702849713456673917250603949176335099482921970240929578759908119365038007810396890128768273868242786402965552091904644882136196308841305795744617694057066153568831770567681915035199718571110188497571273394265021829874157203352816561834668444569253367615889488301045902259329200916338760363163868118868743388243020182619086815430514638916655563739127392288164653718367614664633272124911584655069437685931132503520716664706215476099986259379966706874707931436774399861737007020857399118189265425320967645131541467769003316258622702379491369739684322235716623070687028082567074714308432188151333559817882709234992593852690569207105307611482230333377767265426937698998500234742833070437597147461321240314663482470505568686839409914937283827370941759478028841477729607542288915517151178369537337295617545920158451455830115380249534402786106629093998286983744755861631687245191135416625701463861775831396926844473514724171076316469284680720885913691158403571224659303509793435635441613180306816544132638916078530444792741806259023552451893322310164240871462115467882250817503796357456851356465703041293606368098275236456366825564802307163589315111525497011639523018964850905037548052860223456095341504142807788063979741897249960682056604773329084905088217509782436770019164115588596449354331439394308495327324721733023818095050971271027866310105072352926251433808117855919620492439300241911030593831149158011762337762498296842702543268167407608469262341569850845857097309722434347453345371834154282953835074004922882588851317208516128179295305570900837494651182574788952006656527369649283535616675294355042018203288121827662477803749136177944146311950464573176562747296462940386060384347187684930377416149471991887544862618432613677259556684127740151176570985790651796814318953375421601609490229182359689000916141066164155122219663941703476830020196451021672969644552449971781990728317878742287599844329448082632362440069695193082862601234873202995843590723715908243203046185551008483453568187233613008699730198778202641961322430797986079981763925155905613079400569080014048941139924362506826883610988364427745994762794896443385295258117460429470692494702173924539408805714846785821075492888903261659701404767770938423844739573122845208954607601787187723973189001751331508426302928243640401650885990221791448837683220196791219610190087359423679048621650251578301963172002665517849324684532178726035893431569736141804716287079839835643420070011420936286222701072058639503807189375238687473237309267307564902258215968476654744672769696494357071393504959125072618921797463301417365470327230978642859408516081132126867048169376132969108156496362166571605917271458557702653221797146184323348946070764363421634267906307250235682083111468531714416879649311560008042742778295310640906785327452386986135534422074103611710962843120167975870346249712683791306056368481478070645698260013374613215595564244036153407914217802921639815779767948527150247718973037509298773650296356398068436021185113366528616771225967256248036116527984806203145852046645340648248813362404833249690295328067314423856200732929175170937439465479398568870673820021314772277286986513045817429079669074390957146283419244664760686134097850727608491040229908993077646412215772046833794390702567572434733814028124800196200325524711529553538460745140222060813664357329966431349331398502994861650000411070852084362385773134754693685096397788861104377599408013409543505960491737801514921811382554424882600138220454163052587684982765640367667625906938068745556294562005295476627501078978811320988970154141566431590042041688850474976839562198860114772178751972504691713190050225754473517348984103209982233450895780486484449891493688375073236977208401790080504655127469392835606580963963038705580159127727159831441455596407830340379500464715229921064436334707821179512651033128834202642896931908904537362098522923925059513192455024322526522038660963944467971185510334160100706754387505057182903193274493016760236583917034851110815878399055086228440300576710960182369383597746920953002859734671854781767427315558725289174130255877853616529332735029800578698869754580073209913657170549704380319707231179853733718169816854054216449448404336171567195940468929310373689290245752802063087810689345474871405963826257971443484561533625872729537093216897643985160168884761979022452733392795199237161554277687806514187100491012594909660398436569866178128678288302983763209822109648769601110457887115083391958045969273124198442994077083544677355822522205046215795745359395347674715405245117892635424760659572415809069954934430196475024058043346407676895250333848461103944968278271317164610694738894811794612521655860465632800732121370039403824473610930798251932380279356142514499021406338889664294369186825544037223053529028937085253437318199621934000995101796995217524061952728220042927747150514933593821439175232215987474530639802785006352452619829476855517609796091949769898807402544532804274261728393569707104292847464288089031015895228006121259025765584715646550417597059265951372329985159746796998606522989800986770922310572323450755882672511304357114875810465116911246429173596538252683445364755224216178707135825915276644098762133600962527058904177552198100091845710358277550796671433185442012024929992558040373340938748523038548134435630932607743866202949685909442389642527971740280293163478351502919698753303137934058544111637381683293415051537885059138329487837945499122239889490926227050909024137665451212024865389884191539027166895835205492259212675092056441091356895985797612866779541187433625999564711574046745224647292207264032718333520534185271945412018725518898142357152718371668232243835416984616693821276610102092597270032928714771663956540919358064656542537286100622893973021567716174739391751085672309107380848011005106570441551491315022210043682924201365464216007619485913623247823214476385635635062777699382451890420023482995462014715331310494814305922579525274581751660375801761019344990686361756900234769353287433088788022856518897622877163706722216713362614520429942307495569414401483202333542741909612247784540071550331355887218488047422684536060326898219204363781681198448854405280584765771411542413866172441776442047100339391006976346539405046185572082252212085431733735842076264014450352797153436083747589764904334545934968647810368778710274492700062195905265900813568244239706740932716291605162847285138440452411467898479666781191488281888156332937734535591049050723709897120876619756143462783900974069747302075226915544027775208554689269810606900326456279924888817296257739710679097748499976329566493642330546516752175633298696533750936149311264203500981006021057059368404349347899340474963821099428580829921160960365782021025317627964059294305272611684387030331760797336206860805333040920103820018815878118372573478881425539103229470101817442363603338015867937648916754612474399991384245019950842809975195642574645068041451391254278107842475168107753095822131788597254644491502028357032186006947882780108826109217006767659582823374642420575948894593452898759493656803028287924016811831122773942579814048885811157242870223479892674297209679736838975856289288600741570295605990657800934216835823181131034848512193754301206852435339670619763255018811733380473946318763055171981275118407276824477471063988510487753620717106352641081049903730717900500173946240129303340669028753612211233425253256279294546103519273248115145123274989173191213642626405549882631712393141771192951729341999521278905919648393278802010696133799570854218719908401002158945875438874299008013012759039597712524854140890130176882502464523820756777653226729584958835694991816967690540441711116323195765105519115673166424848257755417206801930882827110885269933502833800293073611610115881945956247319070056283297693934876289897322884120440355483341169904934173603404665421281349018102530010225697487213847020369435949073410059391117878140964160786435907497475108322563401961159478124692567769909582466030871899100719676267350680166135286666240895392572406676012613640472112628483553765480900340706041764418109640718528874350835076395750249478255608354767907081796110519364700104168688113342014038530046821660266741036694555753603340482562986835159226418004989230111109996406973227115152501809526000831441412718887176091575380106188925994784260333373709267142284017682139249321692732620213937568004635308481017447093749211950498426154581206173804817605295297150084104982651948098891879460720719365174414280774452622460093707189173529549341824102940395785688903330859490243100455484102127746184411135752977811380613567501184592749153228644932894433090993905118167673568149984503637622618647323169681479574100456369808797636893345157430161070467411133845539567368059134811323722961028454457487773305156890060250595717975173411664676233343477246062616836632577843269266620622806594894031792960053690449920059736133836777090479864692335611125538266439294116233174646396116404303739192649802962912419165171606955582302762496723300210941191227096428014973919673540402100047955224461530958833484206864364087620879524635447746715227739878937317799036226935448381921824955963402282037935185818378356112488293109090072164693544733573718880153683748020407684484860930958222970206527225931883839598308040573268418676801489603861733454034173947214760474440083492194133657126795839353433656959451758498536858556145594578529133169354462851254869462699522676583657854472222763253319595014873621991738570755550288858680221278976493394254223900253293332799251556931698879697477571463904975096100289779762743350247982404296643713294363686265863889500758816608414020022261599917909783648425184862693565671206501158285729184306826697061548328259313534128645441807181144980379370276866033938347982989831979527901041588268349981267632485640970465934614609872286751559270809507505194130473307797148285098956421386504007295619968472977127090986202926045933113181453551152786372503398195738710025474069660214977471497326287106837860962618822473830138575183891511976913903970913274462495095047147205959227599606780097968584716605016191668403592707717966311948575310101899586183637286064375501916777966462900462316935461427309107032646318873769497131723040244221094079130471048174976936307885515879993692481211565394115432249374741327634901091116620753256727494344857029426375876745327012885719324414295999490330559941610919059060919256032612446244770999206810844210409664354711766121184940972489132499379769681815068103832780668148415769273129880722451796307926990601517301221798225662428165884796316420543403469564390553628813991047802504138886894625101062479347719875627580774540934038215263222392838069104084798467090634497551243197527432699951462010111984876888507240404261319100432987713562088940778397994516484883230647096167846932173785995777191689097612655219923552553945002597380350473323616631547081745759925369217024641879000301317906025075554000803285981294998911080428527920224423174285179742240045470195115194123692047998700520347913901711155045030778007922511098145746350894047841677964413680475551548458818006397212420992447473324281359199077267814363634989807975248613427965458924737761881401777868275974316870462566631952967840779569666462673131327826743519081155242983683276608891317872142803910118008677493681651389263447018591464395097105679273471570894913046140739754040189115502321399552470422911012785858380439962983079577542833515786408568127758401127968098264215227213848397493957045910154207967870206658222256061440565818488539716454237780075845465704729958760912669197850774398677312417561770274049176911231557435950116886740391399104402987032666709430781487301954075712116310559943472732378627540354411729623017947827190047892666658076293465872082492740823752570661934288870921634584154974780192158587696345090248340509878961939462015207479510627306401365865478598361581129962507833429262680842815484649752700145940417199896355227090261794374391708024700152799479686755228726315819644088141431945219458008944224257427439523253292918619586586324643721775943989222083183755945086729003321436669112514695805994953737841554586468516434345263048928477169655327446671226961618005838220703296442407675315184001590245028263582863330477659901486671957427582205244131095653627422322306691635465047989311283778853178754743914350154760909304273463776004939288016034460299386376467673949436641761920722351238183379763178894365060764347895880112108839313537028308827863062996071687378412547247555126703955059903034614418016883568053293971297061062298777072568416487298322460764714809695486815785613092193947034279555565983699865544716962263389362490604948669125241375640659688931564308940787829978649424663064895632875296667987693710079936385437778871213657202240323166072476346564213526721850544577656555789488894644381764840330445770239098132980167138859041272396247429031395430994341027613021425689458113860039520284529153596216811053637294934663447139381423574164626503761533388582175433024190165240429849777434861903003809748248114851352625099188695183309800688199566587539459973802799737674455941980933145526027236876133103222398223439213059269937319295736569220960631675648960302138252739376880338903511138858003677134202565144337856055572856448558294078415177516076172111900509836051846947420449175068776085924962194054868781881465536375450505835919222166617376706478144109305972925290066085471385926855845970454894829765847310179007848882218027332676278852992030442710307476206750546614823835010375284105779699244629659773488085296665183436025874856322695655525404432624497140263555893709027560495601070735842923382944178596735136033059210773082965621432409707765519400116255304316459828115536825972648100317020715917534636247108321643137554264053525765367690488666263773408521653359927115865870819217822666046214432704058729622760455212616048598630160270124540040394059099828428675432347178052768817100020191551494815944266401551838504477716648888042879637539256590307574683697914511981045925594221795543966335628133455596204168018330875055193922060571113189461682909677273517951189346620884395894264664168776055306283679489242681947659059534151181955557318886088009553811620198536264392913942187368123346872175150424354110818620111212041601647150263636395272470245103312673931511346331478960882486416581878831673790679420339878046060029708453444214108230050333437102805691997671962379040777321797928769268894856679322276674588829980328797746505971851173903722780367290231133159258788487101870989893124735215644284738260616912596127298932027054352611789385172579034640792277524762623666241169647891748020194124296732113404392311582754512290219742337467122095466876701966076318241641578360602334531377098153774979483349300575864517622378550911844041175116344307595953802315138298722461843560851332362994200459765964305283681914777358726795546738500563620102184837050483007177664612706752488342051688719316737236902332503107449248891883532498910124956315325729852027907320198907935740872533102137992450049304904005895955904453816710871097396561266983928105889819150161172493996699630095210844487871668888184593759448565186741455079588579920901622853603872396887081107350335692917752145937333903130472269745773660275441782523910586995998308457807981262107761070291744716603934802687684180253513284255172645627180404677173858141937800155664590095659615584319385792941303674595393702058846824962307455739904386213055863624149158012941889451861092788169125292859461703848218927745489795373197768886518021071820417127042258664777430875500636884871054222312244703434123146415122503547792679301950495196706643986342347301064465471036205367400183662664601280628038618811721339202856582275752866592316199018125137478292178528849054217908893902977117175872292118941003697807337202489632923865805698095830682879527411960693562854168074511161568306933611110434516752971741943525816203532224632418998251364898587042482768777631249734513383382849172539827779208515534603187955580327467066302947819745584594874768773212512280178220889224881718975831583664719034326473468144185342374504377079435079168764075015466889795876950739739288987512721730808943001771835915946953746306743670977575271783956946686667637448007497529704486255798198169320760852658424049772311421445354758338577569210862743119806070251198831247527434885853220742015902612983492533621999516755444892266304278682402940769172272944567411558442665932341722566152241408347956819679924421713333034707493008032945925420002071603161499831677847786052031747293481934352133173179449182737963567610140301152970191097209689897986901193183344872316730539400863790388938396265867216382165060962366502785948297437580672108649129477647182994614941637190620107884526907539072680485336634467738509367958810081814808024420344404185651896683006954334130405168462607078417958772135382517726647998498608964195431781989812831185378905620098294681160315063499167017050990379403906050544995894290356955145197536317382641335120639181547173915179758934821339979973053958361861824326408358266552240324352112028910882321250090759392943888980140578386338740371911945273761512941751302224284134183220587745593184184852161924596544622580596316713690789297754192216171981876349664810392096114102389334286162739867273805109159048975009299318049147941721175986044131304694402607123644308430447379796206375442369207961353716843228613435003380911323009689178340753403093534156218589002230378140176635303820983353395527593997310613618568225618523847806815717133893015841994398935512452533950991952419743906455969884184541059991186441247825751667288910145239493766839680424587544113549584846060367131510467344645491274441297308478602344400614595135997809563435417209736085898451148815885261667453996769187692779551167943754628491645350720669768303041490562835990208077079708480569985024923104297995013087344907414235403823618698954254854330717221868773152959792489905448382873817018390869100606783566211216132058768056826120469773680361265676349008112356473308851433222700127625354664694805835877089738761018568387509510956773873449500981410144895189677105508934515351321714290168330083084618689182606178865557376750433537818937736403674336221581001389236135785594443664528519798251463266171634573337133540594810699393872729775046021850794737284704975410734752520121864617566560460978524935728184739561712609477874141839678134871474017983988163174428346736498222979167718141489933325535562614981679094389440267655131066604073048502742770799447362154464623721307116902853369156342837468406228090378679957639391957437160596251438294914318985244354489041360128461920065167994075464732621441817625069347466970237330576326286756079301770066529580242254265743393727686852120687227686090606426247391562544357572689169801404972850721842456215726137318621366640769566499019658437629264535623291822948901135191682713499797560017579591051069969238975868615278731120988039943945958327655982058941725267557716501405842687380086785407074241932620049011434836665547202347728609312679177989788738769550217366255150809661570581693101516382391021951012516397450721093177921482503892137577665569972962554763457210529552183755301169745290846707960794579657200370237704208807496283583601711820816884561136505891581825100832472393807383156971815171761544825267171343309148423125529292957561907506650805412665718396302951673538995362860434374634361405126923773050828483161468179464383777221357864063308336009287849819319791534909687371078555059352338421452194722898138534905532746843070320511003490582427394035727251192412249652275798340312743340575851466598849481134025113357672036208106249570171462265105257627005311644327257097053296837752381829578534891850844551252870313157475176692050803720595530970259061467914812165838506208513537384053171771582291355634110964573424831431610064849288715933529164320025655433267688486847135442146599461369543021718307891086612393626703076404269076170782812193938938092052209447126741765428355313306480600820748926468672171108565324547958983483020078135655026213447453946028121440846414914334318654559631217818053139313302844726183990693470833636009873582519524595590550885653603788443015711668318526773858295269784005685923565018135929625205655180765217453493695837734087955759403824898717019333768345724667326683576662939501257347656789083248931444238935726834905067315824366030414114769346886871624560794927587235220744154940434505885309584174860381087613113025957949759395642796342335840235319364690910682359610143206326470861571657203716185507221309478008125622611692663337796332496513086400326149376099982755972160896106434699392099067475592249130654229700068533054823008010543824800475722277645266161608548120036762613035444447742546911509364297732547063523053366211619426735405036498127857974139234801765196534738493355144953608630521852360201095784739032607246002306164901523930672568820824810326531648570220469510857823895323829862302577922772802505443131155453816547542279685086295485882603402580556606990152742698937734535831673496769236135423604852393933378519565056147115781892992249156676911093649745700986309680452444589812828584174493854133901815858674630488853342377609931805229322096453166488225769039868350222351532864019504376055616535856764153310079489826145804722098180193356188551740415745767629595990721452795522671949087627379523119787193099633344004433496613769918164311377547772188973436997094644638442125868370059001890132701903368260243053781320812577851011724339751731579200452669937940858364043123176614620221318406730239943723365937602719725182359813878581140711129399119222142488775675287283664068613425957259027695668816911224785833986169005338887905862312332057224782309457398963698039805853173572292074174014165182091652049834466452686678054883145860086714582315750671661836560145048933905806064792362117337016522694426497905376035938771198566407965265131651014541367845173717836722677786560086494114766038322234443096337614736397977249865038867516000010637183204451323972833076312126338979080512963248752590341688973661121634098392447004841652710741595374595676917342021025491923038727017317732036465239251319927026177431214146263715999731018505857925687561091486969645726622248493369217008962244198643444161583923861718632808692279464198936049962597807980022709615712011374106122721044074931311649303286842123073902583713480358402462887593771766516634997629054607359422458912587604133062746995043369324825384721201834929724989399677820353513200303013756125159313043570301844533615433316389534729369400927925487235490856715905412134839229652756453476338229688626021874818868457258165740162112671719408483727666787568078556397622308989427404370088301169104886627959319731904393809180896306646524999469749950588490992921420467514296372264426224366077333994910301606927583745958652768821577585924866839717716345073637459181669044955289348380184495429033203771385038545854077819706296284263543527391418096010783269646551146526539429071768334960564970631856281705236369681659433378419971716194101373376428502837720352348800030124136253374941031866242366656060998612128828308815925094478261943225527597615272232351322753562075303305047820529435478166843646305860421503218653973774504586489682339062490467085512772220090368861403566759134657520417440963405179426725962533981974640595868329411333906943503808327203705359108251492331316358182444102565919031545480098846253803238017993338900720025175546931229884180313013204480512983146361610531964988353074269221620113748250945776780601233545739894765811586386851189974759088944617894556929827615561126020089301794113546263213823485490055717547205422181932604548041713226642918223038415597908404129886260905413824306133172194640236706777990893574031495727214211991290810974512100734454001107940950025355034749444545728411357197387193704436410492144131976883926733444551861957355363630852591885008141963129274574215283464564338221968984842017755041130090590804458281325643169057591689182592623144131633769741079485259417598380785362107534766252287145530004401487512033347856708007830682695426947756898379802260532373415752074305260287297986886273816236413414675719065067197433603917203575098686807288121328803601195782891060895015001446963528474940413622239275713598275364566490141834938885418310530092422433843391109477376579038633537314946004773945514074458303274477673452187554143419193336592381807579237550328731794887978450495253327631293780032498460105592153937299903562302679690941905287099668738787092650288248071161713249122374362195281255431596717198742807588507450670672739227003863748352759753386536072768198787767765558024495197654416304441803827795675741377375124137236193964713083435044926161934476797034636677443684398736946473473816875825852578760152765729841802532260543978623988085403314136616048248235362555808457294156306966070996878188205904604529255665286337248121748440914082293385364591357484954256883723783741816018238311129520916781993306493773079892927276969735795907409227523113075876033755308860610351175302056679860957278536118391426566708665268214370123534463497055350445391858260018345650467773715487135232147367937165601257932498236568278797234435349461164966545314412758021093549783186210138041010240504277368433547972585548795964329641650865924945038631716289660661238479454957590775489823117465128889140674790885839493153597311306749062440207608255411100043409429465421331022349178064486599813721546849274041018259422726472215006097117335432192065319772491352070570041450436332784946433805461099305744347090677152252145210258676692829051717014825394973424999103843066238183026724359475199958761717834277590612367045737738421015984945719809031049022001840310571881708956121600309070854676790223645350084055024626664024963451404154214605734730556170264081188895319779300728798165722324035828015088974625765383968905953432623080821216292194524314678568517245441301051680840678943281305655545998093306984308103556361084786464826169149078811786633835996554528316954702370648998349057135501465880329594857011122851487535846052857447415564117397592089733831603765340341000727602862432558846638359619353232168337231139133163522902403216914504756010299776688302927933647072793181683478494074478252476013796335804450695215439207270355931113316949967736512578488806405938507118578705567900377284880168462932683704933810222932474394546720306953980614540841372643705942146967327892607266695545023285251096853685026472264370300433684189410944315408696005774560404719007472761077807739058113652162646036268319830760613983510322693523328015020214110478170206165801445626497588470267867536396982691350005076509370153562890102108371513560346874031914652474182437385073574377214304753700626124662971659117650121147807631408221820814630265790761550550322182754318545907121610559248513776733610864513857464385401281490610565411324208166601946901298274672024825613342901770883668311928393474321433116623694333324988374833761764088067216781943646388187791361571953215465829814564917881925970471686864257864785677134785850015704922578468231289179558919195865077703536208571668811774087221522407719832629432974795806972246042102403628927970851204164993218240802626818096779851600091316977239333775782376107463225075468626007210470382164182708814086153375507700538360347726983651375055671278959479769800761836421526178548545194438735874950965013503583355450424277100830023933355254858610857140859488453168974325455475851310774863493178117186547547589301413471790810876175191156912518977616394441167320787339811641931975671008648537078413671674031618344821548964147782598178889143093576353533201237026044401375657803076017102381301256012690537697964581836499949233637314658964182413436422274911623783004417501252264972535971976209729722865035386439230828776953089082879412905410278431966063238626683730613288865248062991383009647951631988096131783310084792434117826885626591574425775457461673062165909239008496041347693803957607132455418959437060088200007207531937983782047360739280056680176295889101731598128544797064836533426510972505869308549300139026853075781873276684033177620907780421923237452891902316136632886348409111957253933207379608654019398097786389102430831358112218048585880130847726940826880632579293516218907713589288277653220325941650016267393551483614202180852123726993407400190971485804691921651784398070259011536777814466066872833466266853952085274390345529658642192850663060485156803066403939543532139789820097746807072514434221065474661591897423774739549055097182702568068493143378814223484830853438430784006092524521825601995542737068637025098287187341044101202330245783085531968513702005934989181780514055868525600652847049702160446862136855591477379242826432687221187584697158658785907233545677792737585185829653911815590449474625392525728638479531555993427844877123311434616317740060128399836471369016070393062487628303717614284048317977720129589886500754933962947027420992891595955587341970131462089579074783488204535044067648808872810683050850838255157183937971884411235311413519203456864674831356179872562485254762390038978735731366013234860403880519341150979493921397920847315336076661848072457286353903167308472102369723884922168317489705256748652265408158518035443388764738572282322280314653463720966132613657824834419689761162465232738407923921058516127231998910197349118090683116285666185243418318874317208881226744677597651893538767289950572421805213114977003161897183373670623305337900550639912530954181180197539799457658150462981654030501520094593235078886881623799131335994165055212894409275718003705567785733593401730706438433411858769762574024258215318393257083556356047525957204244649782203772133434901915094065451658101989945992596594218262028758023880771520373609633875353678418253890037984031554097812928375826068002697042701636595865897956314108424413114131960645163340652118652859985317065782137923963053187531846161321324301865295621880089447121276605004133887376924672689033779416045226753307312289411162923537941489541934259553957575846186084643964664939760197148239048869405266982663998542459196458837415035151581187770277502518716823583458608789056776547240009527846901868967577373861690187135631217133535124693708160089489347858048197287892603849061771506872763413244165234689118243393515008711780833335823590874792040192073505173964196135033249108580153704085296047773365581822045643662929724506091591793085192341751536211768557144486467295353108428223053210249604199411374961267648848917691182505123322880804864393143208875985617743091989972974768669878146205826942032657700452229576676898672652941961559954996862841246472461442085067206985530900456267202677078893248539856642937241503986874262032486695672658288977584029408525057340280621317984953334825724256631101759780749470712887012613176567851001348378289076032649753551666731910945622656983446002119336392716045245772181630988580791844606144612196040490770603800531246565486770924092441916511352859691398785704148996131864208342880025719666373870591756161461546499079328925194734950800843918441348581911074397242477579710750717829337589387247180900778543772936246170762121927767240442317466594158870637965358777517984597120352785536735780663636184479515196749830798788073489532674648571373633997635679205949017798955189320317720134167522425571727092713732228483488303035397719257348707535345844885697826524727235073040855276236927225147201337977089487565627258959210222895520801393249238381332463605377834345493727952123683469851125534121105575855367895446457725358374545812338082685992217641192101923483867731928095873739519266129108059757479684700846496215048652321479005907837367769388983773878207024212852910405080031986911900047964722846566505461802796891281532307630458866897417035119517545776754339850747920181844727015823572745197233948959031456069273525848664605167564335496699604605022647862300603746893755563686907639381215336363338003575048518475027308598212387801438549102710961416500926601767391529042171152656476627064874731239535658094643307686837103678019498874667368421147897547375052896603304858210591113634048343697941889764825509365321433931502776283868402882506678654952134738095804760036042452062697647659254257782318671257272720193953854611742545951786787658133265883011187536434763559373312645953979973371029612756733622471544357811126765954557270984899627821590495873356211004231464222817741127296373970072122243337494226221672648663718107299763355377129250102962855800561983966278483787853857649239829456677037675203177727057015670347340629351449247360602436183986596652987605624957098656428174563130970733671649805036062499683651457173819269188579666721635312659405005010971735600036829131969478998544102412254183379765568951785025106490740389600619998699776040031018530685318400596649708702563346776746512525451457823677742259198394373078375510221691432387182381120931909774606594804149385117037232991556049585066328046648878921190093046991053993462092398907617277544324616480031738910332449834046701206142834322249538798361727509847714330683361349052569895511529326188893201895540875309131217824784896866202311254016836694734013046487623610461115168921120674853585503672188264156744539924532335445280218879453563328573540914430122728239481166098050302450876268100645784701374510334721047206481614835295393574654024658773254038969591958266450804855811182319518385865970116610588794378105960209427468496252652302991914477600231202803864139872779556714560836456129080739567547248409432585803236907253604348197398508862113146629407851321181566068159466704556564384833945176641098630970719267606971720245509013340013422014658934339170376480811543043121225214852873434195314509006529958119071417715050672586138833514574776117808237003908994332437606599260956723919966723521860879615203154381282659569850411054284298259548943566779382252309917883861456474127436800128384425247582295938504913520902393841005845181357901612215749271556167367229436600375271342244241626275828785767226786329091561917212948471417757608975041544002595826351248059365266932284200907789301880828176762248931162558648059530962199632362173774684426213270492672745533016577531745084312942387438830799974288153576369568131825806928768454923081711226910817450077713142791505754524313327388637922420976648848241989822639478590009311481937029170626926651058303140630557186041455006249312758777535676447901688584040955404913438281500123261128483516503388139016375929042031328900686549216605762548414664935343355535216193433121280496642133378835974241620189636527316728419074972346250453542926823455467934357331554202682452312442072400242573888107737964945791349888330686960452123072956117967996745998275356469371932591445857098907093020763354554030383079458644366407944965435513895231650960141861374120519088714668099794323956390839828054588313963725073307423940067022617405086965441789989765856469729033571682651429938176140911783363401059211106012226921333178281781252650561762967202493347488895511016747749857145797680138882664669507625550472226084388438910766293839220886818389197681708453310402015566505236758634958811312456673262930994694648055570537410709550236291018141490751509509376541469984289073024799411792455816914003867444281370630838353462547124797700933551100253903521244708858850173355908312832374715093962641521336372675113350409098468541820054271101844564246346415734798345482204437614608605874574201012395512442464148825383668347535986440479139070068942868670608319614256425592615333363687996295858002662461389796788523604337449908337537163924014058026554049508031018530855835048625564298497626633415043631704064683253125982162365189862912388839237943740821115265473494280689690067451744149517145639735825010143991880097753857346039165214547806553232878767154870181291466108327408458646693292236839341360794451122895583741443036761470506241602819428149453340654701289429304363199039890776457002226355537538889516055671211545351897605858721379624903785978400002957583981565250937245422609447051022272745372927027424078732135810258009298839309855668290940820722703851973914256724207990956879728295909532666575008340382084002279406376019422659973484539958222306173694321118336520847746735406041368567893038079916758990603986054567440931038949703648287154363310483237335220360298769044871697576175140554747983624476198487494216407821031551997926771419767786368162548707581152745335107201908676737085643622866780801367900696623136156341675036833988730291555892393240569277028086945685709876068294238143106718890255709400565129766075197424659457642701735695979432452818496085627869534864117845454469933096180491254423492667216141347337099791523951415105822285817655322637925105409251658787462207802037246198028070464961153441307247824343966606602475121688666984134101843376528658653513564377410987824413630087134597923298013456177889648677863732912384756853710509830824618883135140791615044911195192676763002404406518952856941116681080696927478403652291333753826267534708285059535995808968075583060658535221066595492348167106057612296178712440396944693325866699422995402161137072814835069552866750819806936857620422273123610302450455361860675116981584110104884625373581136480158290041389558270854822124501842742578814993664549427082514785054061626571152395175346095668805075939946496828705086302078957781156788029073766701671290816793048107342111719604708950899846840247022890642773338900579729060211021074276242806988322609435463942595239803474491028669883308445271991476538043397441579518860454337573055814114477826353446402756714993940399957323098255189128265532327659584491203663712422739550478579512624232072157920146925531881971264356607032443800162551814279674221559455084410061205235560154505754851009950076643001245223749386628083539713729305914454773090203234862129773281037060681647614899032185804607484303586464580585791214440642481422547774026858097476998805252243867233178886425247555184813811347607817623979794201229111601594210217197400635919791622770093327971801532835256583659080919700314112541373133006948021551086121358221705367901618065553234945436712446455107701568945599701539258387547768263693466706983375030377739780298710733672900530091634524301021157420453892376577101331830094675863389413783772801346287605921389957784955951449921534944607966587343695572940312366607995289985901854363949284152005472862195263408641642807715188239261195005841467434794301939085240018807141492402228862326067484627706113083111439977921583398720160098734916671586696630419086952681738457707786861120504626670375959641780163066842382412724428775753047373362658997332398586198636431480995253908081030324412544533900200144050775701715309939337509458305230991640945751920353511097726713382442619253746293915670048161862896147819269393610112820943814507903110700715380093944922171234565457949013066513692030007774765518283875712006472761345325041693549137968379866843551317134609073189066790430341041851892545456747346157808083916478561306128016882969238669042852178940795495453741455303553823906785688947656014493009337519355871348870776754368979907940626934113286553446695240847966636857038611164582038661905229447381531346336178547264633481334300527576367098120841575167690841410461059704772464748426489970905233441307738170251153861275608713649360901866733027960068774547400310571029202224136752001469292059140751361756834378021937753997132768511960168461756717271356266944082166975871391682222720353929453838040709520402054212663234848083123624858404222567938220001137805918432477369609494856467425523720900111372764571499895831279945608612415302882370186056058179668876606466059086607035528490677094418451261607282368178761665073105386165897945805501164627059726144231724198442752666973553432717769918649286141857022085732602457875852056390367144654212426429294230887814200001804998367979448940495250285519996093437632808578882043172927699510738610664068143272203404059118249768819229174348822121429663009468006762908587194282940733263310960508194645236338131802690058310792273634197361533106414417136789872897726820783131211554208478826735546848404934208935905899700798214816084300816447619367721146639436019845089199827518036481945920878535289715438417106514501225054400725116177374629364645766702180188659499127087288598449002878182734482465924492641385247517332525659288136410587317161487034508025032189292956907536191492517759662711418409705873149917741197542240609941026108461397337124293388524622067914289138051746093919943878357593294923255430234703460324771010532935181339233570634104231497391150939275392808253413965035598629948989353220211601575016858469573786268911551898526612914882239144813741670477910746170075788509768004570094015541381348514468748998126237745223705024889426113781400216228336849062723498276128828428889944092656625334462545816372135118603321479712889765888870213932368394088267456473753648209654023160320191631620776559675991299302575483521558941819718308406869304925730086395375370382379637467697890777155129602284740986515250344779606106520999244893902102615371916500040465373776877361436805694068131981696465791934912944467891864461891960328944980593612018094089684355313214259801531865972008704835186282374391223260706507626304006527363841762205268118896435340400244755359143951974723864489109034607612657542450281881593453816862644997005240184502611340265140018861757636845916450708605020854070118491735431406738547659646536084777863739337677753227474524413057121874031525384357914747360382443664982539280395632037035248949874624240756165453837132350738988142766445831350587188453310708711554628016812974488522241458761840290714704665992035360363792992651327242388756167785321652643174633450295157945613297804428231122854677256388028784238180946548375369224323750442757567320872652356272502405273012976213241892152612335193638896404870817810649208347686724566459360842789909611987581148707702017940358143785890837455272003295496520738480830583257547800491930055067594029251172474860581003553842620707491190053520423664163075401505367863752188091456255257230780277248230726266751055247705341002141500441414636607972878196426006791586284279178139089671230525696159874020665783973985793667910399644110933034059536560048368319029241484984780666508549741672039117410803843350451912067857535629923117587229274631408958314828723779242373526585567769127431823079081601821877592452869993953960466500720715990546552284460933992816696089147601269045642047010767075745855854673605096651164514949399694358283695708564890602302062991485007050469393394044753950767412552220993230556685374570579910938813901938543628289330508543744803729963283315751643301131840898062955464975563177111300684695007335560524228131548834723536207498526022349987332145022966818285978986431974491518310525973152172414008144403683951459054225219702445009505635902471101557172271501347130548567499648583056117863577976063206277352457545526268241093251689207176197185661492244356913730151737989971445886486008380743217000794968632792018354068920113061259105965464057187574209442936468744590243842461662825373173150901476464741424031131569737904294225006828305764145681090057364062953855112646552241119336605969936745741148053375494594957882000215124727528696201834040804411190094047059132553220614790319972440698661235655309731698445997702086883298206578849452291707500409023398704379321430019162045277105389424718860849575025072366896978781432470640219164714594804778613561574118169299987541647476275043022046339735150560625515356353233717991953288423772902444553053406033898038025544913274422924787237849634182353473843110349470022346276700013431739086691143010069595853131800085897093147222828366813658651240927086661326968888259649227552914702593740176621285942369407563021859548371320999619193761237138855319104735035632367208430139355496372399714911853377716155968015517545725827669844760014861809642904933684355696394998934433539316619362613916441513964931661433151803355507602947125424498264018322440749419632732491187723578787770008925478448130231899246199548301349167981991146098666896192449439685664689907876852583749838574237954447599819569245238637093441871088182669035183995371061577211027857317755247377766684933646514581135433592728555127454073780968608942209409098209517285443695686871940599068965858597640146015890402552385806991744181725997660470616131392665283181298110141594923104254510043600477133955925931092268231764682205194160689696027130898629897128654404120456767159294861236205880981565489989652110815598705089935208942234871547642770475647577279640068976386705663822288998751184383256800419601881926278861569792029731589960143131779236741437312175640016453959847109337086975109530722644635080636390524824755773997544300193945398155882918289246906313266657312504119813868902203100430660847959170938530534835056481860508535933467102751521860086538825816194370990102960420895353941481068835267390287364618751807098921764698293653660281189073023326591748916835013684366953907882057091712217235897958991993057837263376070072345571308740738186915830192683341960686225583910208047850532012075590127256914699546314015376945198553091305711217663253837661690725691043819193665115072410037489267532650011901091021980907400479940389307911655309879350948710701146890663453585988722178236848511479541193921635028414285260479108269180040491505095628817780269399288132125976897254417519451299241394309347398575243740308358401570812863434296676027947700841506182333638155173619512163809797560627022614797785971419726919518799318034442092850392949531585782644558746524766018930250452639557061666977653243317261065726647198058311251835830712315052781762946809850245851262829777648742687397002824304162241543655553642982880704123138443636123531997118667788171875194740740712627826150535187309252054921707841642781541996985894567797721572460107685586463577540276681534490144447575671192805150036878851099058925186351902246032310260059662566786082801524566271135205268686570107058563264034885118147303124521817458013517892023065960162922711201885768600316389013115205265005879904360318781579946027224623673901678266077924624251180270646265152285932482459217657208564318342074588887999687130151913405094818905263689476775995123889826480103283850146881153552937714584716508766557664180322006877300484308498259647424705266041222771690655412356634531499412686459574732068312775052636490883512096379474448608424330534898248046320247588515838690236018964175924505878268611104667142256470762874797014535617957913602946322161779433539552362101149850623742187835731527111242572670695810440467441325193268180254745376498360673019626399188701090927541261375211300699219480571862304702387890576498714049255668133146931136369959593932782601571353632843524394475672776626466169050598613874501228898324933685733301086629829383716376304918338234663003764930215144304208632278610906482948701962000912215939058760305887699390916784109693344388973392066548537966636003799552635513098154237881456492309714101148200121284180710392298628242338786979687403070536867933361074591509822475587706567425690593642248200712292810818362244200751065575255267374218719572942668161583215386622066071612544790219102675282292368504165880152519984534900432765954228172793111540759042467173153253844203804402244861794163993827667766840347957698385619287575406467369470709866301388557745329815523838080735194026166961683235977299926849094446297387963144417900016273626810598124948985208697836832157092248514119388501797335999373240747121930356431078866082253228969598376329760966674682401712318595599135644097760587644392877203106635706448283851309924613793546328007251328839127451437154703347986204136855274522916580735695568103619013135501629523305157945357681526858293976823619671851455103533833711796589676368696937214680647572843242996468170900406006981015053644511579729235668204468420079562303368434896311009233874779966119715470518663796635184680790559600810820040424199848124949093548541556785400648527961450666573389341207260870263928627258708296720797022846719387735909805172867889023220992375674883157444563531052185661400253259237444893606679479503816155931660557208889057492345061612396420158559159071572734662353561491292192439968144179163140204553855040178338460690128483502920529781280292702116557602660631572969429442816658457134032050383635339302398090386945175650968704147219987850005409791928652943895563641852856314144720082951005863083803642637595420585287574864536074615887339216275039169415442153738154933229402671058845609701031212779456895993161184895748591321984238174840975678394389692492504797135787795570203414210300091641201394660250979594333471700259684312450611767025277045304188738756529206616769361952696016085118854027665803677339099709237517292388419004571027841240067722023971149521010372025879973825586552468455995966126312611158728372012478745213314247012179685762208124520631786335772327729867815288969822489221270923299002705919661891654972941760707102842319603547252821268125954495308788888606399417936862723438556014216744613332597366805879142956697201562269136778853399501788994914318591223994044615429998267192215909940963785691331554799436486659252185349300924044464407393584981510512404241183244486126153987397382890739963842743371007196614283050556495857913553037575958676695138560025905976328493315307211129506863161945916880182068832205701543825749425355200875133343035016495929314828023790556064899200534003133233490848003337093496858068895160428650373443281991420811411054129057835436861851157370160113100025689252258002789328992919448758307915006676309000566654553358967264287776745877907477073354241937084829255132703680781916128468580571327509677919877524062953325706413372374280306140252797471334031348852387252706068878783285891869533500545880308805585812290265621185583265333112484884909963426704066648670513539814415882663866049734544223854675902924800406587836739956172371952968969999724410031463932924864782986167203866517551295252312155042439250035059057516676222373479200218539048984192628403915701392780223735259716791285238450297636336881285888704795816078573629138086634263596830058900335056432226847990641909383910373411230824872442168069924624397979367854636313306113271090312394789841204210860658261987694533114267217198763640071477631819383170988047873964556056492521145056558869986931143024090301316915162707867889046325415979936126517860916158127105175896858817871616402692350358708572763667863309322505981200071099848986531946071663055085967343004739004217311228079519534528577098509275668350873313631895152207951337239750212323956993797485210738877258265093076335882372769031668577445454950982315979475396414823293662207206329748338513198137883848153431437445744205811670967646788474891428018385419808914247692214978180829706822636608939031512458802963841219718262351375494661060762984495849605518562117904511400087992736810675876163554437612235609712068840496140176962254635012067743657159477897351230929059919329595306367637964002117251798991708671683305930649523188759483672674533179808514238919784766512962528868661905733766321784290058048078020233409621558579602636434220318747811178095407983164682408541910454120341463863674886049651709907687542611611515413261179882251278318370382922276420738799413925897074378773889620224139256010824710878751699451081546187570416795793489411527795188697113630895834348709536934589037617778215892217486828572505269326536257124944539991523682924791890492250569432157845476461031971831449945586061328044338331663643247581265982694016906435763335789151403983110454620212809921662232801099359927517898344852193134407746693079980286773792122767748661811523153211592908752502438058858967634152229513045255465664365034712180735527339516362912032335550048263916247126999163813051775316523212867689291418960822260564052743514611168719951105798009890875860904103360537865914149497488401562243841211254290983753638091831263826568887161958092236006959913368109108291985876546177530536887946429269412729779478882935473744253293457384746423378924181929188140968265795445536260005003928245710294543040962602275214150484035419753234146729842469299976426568064189459951459163318417954308605051231626269766759819523109454230626188907686905858801280771516406329802685800102835986087673009179006167561353390800013812032340615766513412298008710528970891012741376654307173893642735127966429838595321435005998027997079645086634681515645312227440459674290015203842165838597161193821545172258212163290939774724779486683284612739541500990246675603984134148296639107350075917213125515530011825848975895498041310497586602257968833262040701907786940539459643448047473430895606981715772755813460684410601190508902193553382540128941494404816182244211298601341708827209074879784585175296410169348832056895179171660764973049508455301979767720951329386007434359727560400588665520586620003416057794091434181272951729035074456676777232293284825568919367903615564802688498498164027443966464002771643495740827337909134387093464073341835488637084645061196554645087946274958795728199399930498996782304443220317217591397124228576519473197196076729620717676419166196182340020547602440780720074023992634570397388144610446955022261166867396694073411962894302140604534457613398545370633733206753887284659303678054633030864540703786452890031979145865219161867093000789640263278000934221332476397217007066814337774764708152502729646977506501348529613433947749015158839921458761498491334032244461748958393974833212593398932020873563849651880514541497282080761548167694004959586381030638777472109592920223211248767526618040551599256661449890111844241895500726818448520511949475119065009776339851401746318961329545072086147223221925617846828116894873670529326818595554091224447135157091391989501762245622827441471368364703206802702971643406001597714715664554331385883703992096747625578029912256092317570941202910375170346224821573889403094566786089679466082867985846453278390788577669107782111028378433354641585413111938837506107312674710449372486526912911761815445045332018800732732287793564287184452291129542102748124941724002376198685625317135432382298053301909529430378827169694710471752193653024008914980380959063023853224422828671261284887242931881268460341266916043948744559146444664101688824345311351355242666815871795092924380147200342847607981506827966753447508410126857327161052176408390280128258599989160231197714456092472609998872226223915758733323158908704110593653144531345162743054891799201622722165094357211936909353248265739653958153704229481087655883725410178801836251144953886401135759780893996569812303216016184799548311222141022197841261673829425364845698896053347031046385737972390436107239294716344962507427321752989413227135076315220573956669223661155662437021716591815621880972570010004712551359762919339881014004337338783001731683612618208682349672737636961402102050442448687881947626361227542962095024675876646866181563150258682155211594268401177514754600840806068020287020573535745458271881275070641863525469525978791796167848660407506627919242286540088737756618006036413849810494833363795318335959731041663321150844389112202060307880384948254674536026074612793953674864673800622859017744692062191810875565648420880645193968564464573242448116781777073294377740089348979073718594356237349112989830691848368926935049720638819621382233991045058164153277561390363234870842075645423660010618772570559164878992654601295449402620884548156859138353008599323477009830639397326687334169783344474528418230175085940477974512712358994025271693940775663785644291387690509290914411333084735245341213751714777788633775536026066721689117557836099389314979645062540384067181734206932786516301274026560523206041654366663164820552022964556347903082651343289104038020386543627690111372313372284540050362000024355557712008056769810517153424047992682488216490334108808873365323068537903423235717622407150179544531352998068954882647602513102838231730188539832809247913375006165685227697844730800127683861503307909045841814536204287157193358023512862970541300337014943359546733942926219987264454047672358535304182778169387683475661617918475338262404489154585191117893487916526925634077752149447810123851513204380257397115570123306301289321412556849924386167269299848155843083114695893606980013645185605254744041907313326345172922113500745444703253469289374849855725147945657444514730242796872129221803210099217561167784522387669453928405872466577377946671179635837492719808770816575388526474903631608226978438274169950151964252188036078824560827204803385762542576884644055796502381437028774380213469463099993653771114141056691422942084626511276837942330066700639189060872430519581081339765973878327594975302760347148337099660776280979948757114316607028231776026417215970844546206996855662522778423783321170672945861138434385503049045774172601448755198925973615746830514204208052365539931353507215364549289365195024626797490681426398410314482299470138919231719924698486564795532740852023799305823766448987423360315598684545851550268663580957254417115660582401661677013382430073236445170228592911060337357439599005664755902319456870142881784573803970086300311345504006194101482956679253769689055896180614769379403940882538679488140264118905230804290399903234544425373289660891954694729580907531130208850306086969001989698751296877958411181173663771816253453499320386438126784808426807329116772924471279812087805670510692534555508052899430049261618750434027520437077919075671870120981174899644059896408987546065575349779315248501871219578645996689036229329141169012086055153830631132497511634991611898884779145040643135708668444908682746578889702372508500261329045504050985343060642095303664797407967907368397725834463155388196530379290162613431456056878160476127849377874937015685994601034638337946288777534130106114598669307917101794186329739461467003037370027924051942458893576151078377237376161389729968101523543159304759036423669969851008181345937283273271115800067300235291291864885882477673119997974396518918728999812235244195512205272223430279082938023287845280966198569106269114839639810361032626846498801105318450815638797591850300526368049652495980533211902340967142853406331169398174981283921371177136419399730007027230623381643142442012999659350041431724849139253848664549834719832402361077429271598210537693390020981482777578643133980446620932845832655743316423494747225659890073113839487377549012573441934271292497892667238446990477882733041756194548898737207740324771920981196438691393793186063184957606978518188547356205601275591101882232472042111591854372392426875733852722614639293433063104288540663281829103077521091542526782142931071034282649336944097193643595555340153119756695285044184250826569451745373903823428430504449511703035863314739121101020182015724303966578055694309337972484087329114333578607633897265257294903614096100780323803737704934551777578837486132864303714437146933619341848328086693810689407585712723447447634226210548125025621929458357944142436995116995317198686685370209361850234191382944002439106749883070444652268203194064366667772642303621523363560854987681220766437345651552857927340183586763341405760766771785073128410878211136930418267804358267114425586474029796866030877277236388308364882233302804249605827826567079840647884058849039658981679230021621071118631122965671263781134181798008766466966362954781649486021527956720930022983503273806486871131046347516135560208806060376161771673398868947104829211349309216671834327183429494363416404115945276982724409756640642783136621777013214757436406717457135549306658855058198191219706152034507954789648294366021697587348595398477195774116850936770976515746987070819499152413879156847368092058723593090403434827373611238020095315243685998854167856403241953992017762504627930360936897771222195010970895017254398160009113487135720760410286526909227368153870128755557685029077834596239192129896687418357372201034338575294473565209408391428559739489636592997495868964992641441300581603096697040443161598516836241085237647474042114570394146666587029108857641948037969388320886549859407505840864561888118210266299980996932107118917962546081856950442676042119395448809464310586159423691305423438569805205941746013557254231365328831747920533714844062722114134890770713022388139127380623951942552803769638591153103293126131865898290047327639627025380402305629552935351234895701366558918092102477415384987641638851305494572366385351874478896265992535601791389797424050091672154345080569663776265905847333777844413679758783018973016443535054766040394971780180166178421191074982347865088986570789396503901477870561003887723338463383163718431325827439634753516343211363726205426575159417507900020908917911971398048719953212895332131477987798124091445000782586091521465525746323645140193200017953657880007165069192021207632971568984695025059290421000265349793219719207014760044275683814807783699914760997680408993368619041302765606814926589596366440845312355861422186757989421438630095185032082296638117970722248390367339039405305436265631290725854711125635946624876931588321183025617716791383793468879595369163730021315596869339492339915408088227440123045269144556896708102234480918645227100656298125428282712265368732695400279718074789057235464466857434757717305209054386079572848377653188184736956619140954558300209109591090012285728554391187888790080191617186063072162331444164406148317529962361942586377612436728068743590373622379268022799735071571462225023797046328008783455374399308552229172925061868089625614844959903964937429058894213407827219533206992458309555071429912251394820262075776468557913281148702898923215742637503586320807790245185964124282645786193492782173042239760485135804479258296683144618963538752343749152170749317307318639599483738364966624939887858340225793239080987619382199250428084700906239018552817898791421695381112336062494934188184045216952954901142704860145967160369485834500595592150880231726900863692432819649003465071102789794554891663238855208344318286562853287200241793550093954390115977878041385819469073517902641647534281696858197022306072166903001948135782172971812687984619755171023501174699392053147191978971519757431775930822326728528339803746836220942290730596854709407010568474914755884717834273768158871579235585843521892731385580179027178201154352125981405499543543040798559550430758671062489412131101363758861683645125248648812392640053228004831396643436654624105625778286276783790485727618024199238100451330498274797827114242058358795751948059597610256815965950390946400991325111694772376252160758624305857674074402664525899516638960907283379256927742043887762052677767014102872263119044583743201241994419366927841905940442139591827646109737890545044033979395639500150264071061791279833885639332482402469454023111749853216877977182786455702988165242028635605336544612865055496211618588547328552953047614500259065210067209428656212936429634407916532536302081974469615312873743762774990931847445130208263887737010606896017997915066609733483937026254902818756768131141711937410645770564505409001980302354523240775487028056301620784196610765305579296056203711460452635701737192045978122028629577311195721711024391174775591552521348948418090359698804371936571594678451042659282424112240643568931345442593067860699980436809035217272357469976047747801683040528337501326962751123207026293152936073036199033072988573509475713962559048367828828367463552120268333542170821506145478973556761404920615160153005802776034076708972783595700993429216758204936506965629763349151119808910035632838511645621018236294080113440823438298448389023869703427923886556538182204762173474336244309349063508536284040893310694909829804781940221070084966943680827962984291384432545505459647967292964506832759025506165346782021757647325242448845310060078899929823542352935605419654861952562169965951947171108640001752829599760181640279013152960904533383640075240689000556102000467791066971582291053702771858036688569044077498004149146256604583389957852662815678799891381897634603936520605323411690205724888720236223497065508205560289600353243710000757737608054006243114919979912888934849896984220019825211983545191407060759149564986300129395103532996438267713049820653572925960433278967168943231471838009655402892110054519932341461298530379343406170761033486123028293377062591821707277628171516942731532028232623246231602067381390243034462899656241259586023807233904073713481439118587376882160371580389496030416231411788294227422419535479805635769292426050770180487075005132685461340163426676795138376522923917343535156126074791263032578049840288596107860048394961317494553760126436239657621327489623290816102663229885592864769585901861309716454474228299212643732064566325219438589322648427143936685500645521855980831018494255073450139488750579723508798706452828960826031233041646819331250001153038015753075885003699961750271887494557085699715363284049048301512134784552809941195433081578589886632838231523677478271953013948012361154441254004898791812260240519428593363876744488240523396643208838441898278945544702321420042349241981581787085364139110701037419271989368996957771732987787570038259804717518561620223765287026930637811720934523357508598865769756163529756266231144185561363319528227885893079585526227211346050149642036607068194611513024946159776506422638781076078732637470421809348921435368011620407317058466397592316051339797346525783834279792348749037161922870009618658112760327474612215672017402450125985165942674514511034499521328635710939272456713404821044203038880337296605775969633309530332062969739259674395394163110278602380891211588598360055708399159196765292660218257474418872878831000577812490608770435150112718064189246682968719192443207003023799916883787326849726199229108864750789276694532674724348742128204785739234479963359624258274332536789008074658067324271867804793806284873759506138160631246464584389203490473423095789757841412475713998806136729593741388015264879434009016611043744322631214150976899637079857778504266737373496458028199758666885472649000032750508702259359319751510666203671933929343817678085490182841456686178656449279220672251934706400710297936168935545117168808759498449218491877182314036546961734453457340296718408264328779718719365050799582366372535164383218556923256772317367385157161254669488555689483906644455457031448635605552362480924941568959382156190301414740617785622100970046912859459009099667818128162406376248370736020718177641721374086218961188993358082661858552029071466736792621324053660794389068415438622495310074348207132039433430897683232031034947818344698095194137528005793728871651104706115316593581330923048443618971770190630470434279243790532710520118611122452888772980961839510729593255998894990207968083161007885721923789281731744352269554891552398849167161148338122482028746737894741326021830526082214622552836486251327708427176577516602850535760404276858015970621613936864045828855321997588767442222902327699212871418931714039946256259085323620463048649091336076513571635211505659112641171912395685777254840157739877738889337905992778496581568689806660283120815958035441174238567626636722110819898280131418925411862731902706444181601851123721636422516819137411858655436660234728926418348135115076976807386830742419416630064155422273022875471901220647114683769944677761803317578623749504636356209239745998484384763423760634209326986718399341338615687533902476715605961978305490303963241998342326102369350503550391933699092607669553471313123768385638781401877043308893041303267567430820398717013781214952686125893429191783610829463237171287635941529161048726830269537468001937632392757575672766934535057024587506327743950855704951291472584809407306226690518265010852247550266009110542076843035286512054749881789685592331974719191494234117021706345327201121880283678886588814637320149316603831547386783308628833251814953355256913202814120253313329322363575476658502437345047771014427129967895047285037682110910529943390212984071688087634049780445535206030721366611558318994715646213726895079769854286393485246674699128977643737050893569484794165939743338993591667281753391437375612104899409131999882159214900018597057931909720145859327418118563620239616752438506831029936974964457612892488399047615478865159008915716828693900039856830640948187001605182521211992111114468289022802449444931540491638479878932640472957320293576204432296475994704794575641574259058526098375952671888391867706324391164804332213988461321466445784485209613933178886626205016218933988066737314851803149417649999870530020978573045789170620393746593943845519112268290296287808364480446441630729794908316913971837766676812227183801799847653300903252594109709981828947929105604191615912035836095880215707896439313880598199987342454447372221679854050622154813526178511285019857666746845926406880441393308308091139022786715594040431876102757791522359293580000707723231681072680045756906695726201364965880220958003190114136358441346614190025437436169225061078415135089922351359400891813049383509878369245237482506798535842191507042575467442188165855048694716506564129789390660818891516805667549017240187964753176947101611065648590350479632532069805031918876758351267581457331401720155144452549445210223121431100855176812226238913436685311536049250305231450192111326804554864708107056301327553071347474565678840690130506113432855325678193226443963402484238492992011283338658772430363201723454124953343103161710373641896781100206809942405689370754066381847198312347402545478246657722593804624806411974189986722236367686889385375554323022500615399406448300077666797773992987061131237135655123048707997987821965263850696245581089675617516181357145349254842369532852068277441111411715888396823141396218028571412922521037761912845311635697302293012288502728951881784552789082824003278697749091219555281278905640310178147809151647790934139100683361519651334853853103561838070483960293173153853828174210671769094239332932987987362026403930066124721097994015600210634499445576605635477995258173686955133068571814883083130634170517340624942734864044857007291119506623582768907130521147318873950011917214809694072954149835461093723303675737201427945109344143724353530454428084246252189381379103081477565916690302091742962184088749243843987633201008677848340283162716288246684021022992475772885059177788804025570946239994717843850358881226619957485106374998495697693935322158813962363792982176667593274796900456077539448793118101831266249432322552927804910466359228169051414890954093017160217815541140652590439541658190258816920872855901286173096766642138848225939668238023349215990164832254339251293188289481077622503228946427800522545466450033707251545229553230465955803804506345577112926726273476756618935728311418138290213769102762167824711165604854949149637309003223005357808819963387889317283480117978070920170071010520718080596796872954622210525770833546098620651749357362769074942986609254832702154023670900327305038467148651220297747394689940785981519587161975883477034096285110516428236851921777437636041258200081225330911573376869355990244559737965652187707395541645243023831075715661830633113744988085344478934225377537085639803872757105828314688983908953628190229898172690806425604271528884408979094509363152436829879774343002371538978565990357253622542176964526305558415482490889369435165082198684543467868357672864374815719664009386902242721104928455521145246719950393683832034271733858331235479180508979467791176040386077351305580906067666667389548272832622961326653195344891727917902618163048055565115595813429306084146958587963872704695568497233792279155095986641211089585456207290209107977651845017033072990868055929483186133047690017163364798816015082097150146535465012589250911664276345714658091840269624663764539531347949090432533921374607001355534677216697304110911079839824240014131022909182707665043483538979704794775175970093660996082554873772398242934844668713917078805879531704053160176459291376848984342065025282494129683109176074996287238009726725107900204676322671097948321806991247935909249542013528620660059855628275292929726546000954346811053329133954136250685668738128833351599961597454602342786571310653228793317996636527259480556301810254621484433132781327164285766414392810424508755741406756497734484517736053407495801648868092874301831025927619677143993277714354613308041504515499737589953470896482208847330116482745866613907543290687098022208340489788392289177953150263946210430541000288496000414293315304331847007088253696179885101734167202312623138489203925718649341966545795713467728694390309103656844509578186289912828099599835502337781375306767633167056245160137973936675970860456155025386196490077347823107999848598081021660001776401668144744331615836640665310463462936943306380203486626852473034938568767055416738088451934901964555149491996044226357663719261637018028521159720500924010037312285073189243428164615946201479086335915229027623698579656242658607470538854088149603097684032189099026494279385874907270888481294518748902148221483370676916165665667746972155094973289829268509669402271987408410181957387345381104472371910832239001825718513991896916581154075965574903455733669762167317543727351526136023260005210874501802685124761927794808527268642231898042766272531570327922981423819361558136098212178969302231813056325937894569883899822124222932865426367759920829504182429632147661810198008534786770660391455735034322116064179484701613742151813236816409530258470982037654283104219455035736873099820770197487497485610402222275357236465105496866816194375566020636167911824656590430804100624572116166043533270892379180915175281540095482837082576850398617054228376543638184552966032725212072786404230668720978832520437787058170024999191176550437695928524284484128172632384227365478570123404352569640389582412366498078243038278206501596938160717558106582202617495642031843849447260658153329198979994776969414926330960269185811882596765811393871234498856360594519322972686297158819587467198250440991319027545430565866377572247569364203225360129622059410274818388370825690243525816423072289580335731413063245525369755924883614343162074532945832368353425037505659725750897788599002429753665627617207624072802793524745828542171832287230481082729965438560106507486200039590106454387784560310626376573470027347891015818946753092725057607658181090102732158532226013787030786099158659936231572517809129853571203512428724822922111086769244234561385726967685796906554061963434836592063935296303984576066947748563331686447021025491722308898493271779844164695387086622893483552463368733068742962263804121913869983351203336207078920293436161573089381898442396232318614227854264960684039969867272999270403132634066720132666147639234219250590610067061248468474379915356690735870940489552873744630838981583597599482495379055575407699575104708769800548470574840638013315744385701877069801306068140268771957316122562192382348169306288785500033110548052923731715671051907368908951899171780044869856115638125782813324772181615524270888797278052509790545264824888214050816136447668765163434818096388683160184507536654693231513896399323737183258921424761725307716840111668901544716659001204146285665720772633271706771346360013166359909036259385938192978488496864942095512478212241339101601594923411617741358771085273892609256225425094972863019734105212580205604311355440697013110417698783452112663980875846714668732024302864560879110736945136260380536817683597499165792603870179737130751163426977012604388715665263568152020840586528014117772944613602290527874099494090290540107954977603894422152383844031971378702624670275323742803292593149012933736000351987369749883692666552283702289417391083369693289206050973232018360471165178128987708868343910599826635464838830868908939385886316173575054541860237182769478439613759817536980961834686957662388084826858938980346655504398614953143580976508942392667060990314360675329008080561492328900467220795238716789969663306613772920233714612389121321375643795879525834323607160284709649506807983296283918146437663402595933809524031880756293065547680971968268212875986999624576709176771213069005388156730094278192898871927898493581475283668739261741184756528885025589587401857044823996667561563845561448341271622277829109865068523333464875785501584573519300288688277669962713654155161727492769694901544624575006657277094422453171769797318081680378015317738425544052153890773420943611653067802130436613092553997041856064897520109194565936006655478519565983762548384831046565653829603926068555527216235656801101694486962839237107798714175212758740966604173898079370058654796449227694452844985664432940258402638001419324200500553673088593706765995227775031465196386315068777459502624738249156184132159577867548940214846845902606626330118902538947089670986360015026068038097108129901743390494227729356607773195664128677848343757664854100080839980318748153351674091442258870083222331003292659060466001422028262379222316114671406132195068758965677061132463946199598956570026407748749045108560418886455114979875576801694420201681417870395070257516169518720028523687427088354888399567036263171829398528228680139733679157886405825954122591642649505062700992115416373343573535302710659844069867142497132668494854565430799080891076817118763413489146326022551368078459532638944629034658498777326487391613974700887873918656731531578885458336957349371537010597996887579206407606136227645916930206544914893049378702775379029797509840477447553220117650759552623232413054936660300449268098495338575981424735835852931522256782944535629681957501965077233556384648299795306842214293440357349071660607028058709588624442105297758467915650991884848459067383044268063773450767749859591618052715972174605695691536530554935701911100739973397135161352777849371698586378671084697424786377652441290772201667240045905660684672113814755342170921509364501800902705190263352915576969493693145749853546515351820937065729773391578626086554352039504709085534860289507871305007996126377423982899851989101688203057394329939124488566087366322611771666559514840390822105868633454768628813275266180474870931427456184170550700644609582754404416428933562067406349197452576492849474400134863987558603570718029671250985725727743666655751311707575564542290469739135880656901710240929196014703760607208922064720626768741011189281642281636187106700722994770456544722706612171245892917869415515117936734344159469059106368371061684133490057802468020704114516047759974612811519119643229885312385968096502015746513690750993261437795921859910040711789333934176307365493924607280360318336954937692771516775894962268921639532307026982137880226595155227311942266107863305263616621597812234408896327769888179448901893866606975897999983888830209889515589813191018065566612946330890360164321586177613807446706480535437158544242300832634668744143894849056994691119157010875128475519724451556808074610569778830736545470834116972643788064355023875967150572160312033172825811632331667075855402592218557702108984146227163282800017171398080350268436297091863395080962046056899331480372260411022326700558369617067681837643076946188980773913516573737219008453308969036924360054205884786037832998491461042842921365349674479545005389770590897683362810645256021045886919643032116037332704298750641565354409081636758746887414504653563262690011617450648273522106152785688020615491896181180030667800800657181988346111055999164823387362481898960990388194888935994227065732990186199343164599862572255772233221848743458873634487692688881597295360677906124250733143069382942817807160215066437375999601512564760956628315032707240883778724247104167283475821080933723160035145091387404211199655140079316198685127405795967959812010840467430834497314477763554415720722474192784990919403470456326165536601588611424677614633549750744793465520132752786037046931328138811915306958271035948412155797711350615413252224162836720230515654179698767777806702372994777154464746861233193960320148549386820180932822818678763824569672317503713978665068457310432036057002173426906427337531478073481385880108988541282953046244950967875216310748178314000950572943322582382143966996153975920333878531752303921884310231521579917467692918352988253318380004683319436176291547002407129946028379013613286581926770019704935151016094889109039825166317793441966137739159922537460882680009849363253754590460625207918050263286825661337768706997560288910414254695710353504494385740083032887400285452580012844655542688584753446365588415559037494298057705766782621114806938561872706196177615390819532558473607994574177567568569176919531458292876939442747860899296957993420642752930078867142983041639321196687952447450186908081078395852868870970324081154596452809076272258455003285413510972882497999484870519576452806672161381879484916515480230499525078193565694281314429146416866127681862414446909457570364420527727845929524811503657950701238937681741762726317829515710951844810993513015390600545118712320153630603769792084026324424984290939722266728056096510704837654373357866319458547198715289791166703258047447120966495140301436863749944030176074564531893093461920792498745959137682886884859848291174319937503873869429007424949424565418031989521470899283165058615120675707563729253352940918787201279486111735160911595907844698485679887039156267360210600591993882845864701440312718317640726026258856967952855418809156032169573653181550027717056468437350550930949012393510545720172889906252846190747547750349745448728393077916409964504293496758361307004799515928130377769605537290071838796238344505627678416430898370222301719878120139297094249267823578523667418349764217809533313131113177795910493473183059725742743428701656110784339271379019558958465394302292471525926365180167885635662018255725092860782673925689672249907981280372967031377531622947511398716211112836131377829812575784510138526668752397779849460986403167559263372242734214847746129216699514037907321193300641105798056263434698253116477843164324317471915592942237839166214102995620925019290753089370918333851189442974517464528178791361485740098596421930420341157451244300134076447341929804167875582417503981143473302340264988477269584353463637924827122441259618256807005633260762046894804118518958219127281787034128924129737637797958632073500574091420920087126125265675085006916629504108429972109919705332148987403159577039337077173246752198364540657072295481607305429423184187157217807517989163992335999060507152762082207652118977296164587734082930153161105968251249315023026858141674245061552950591845600364123991544485297381155194844130713357642896779628897227259122520600287194572754399966060987766208022176353244231852374589629211281870646536885205999218085889983475071125227119166506335285034328006608593727772907210114747176074489216415621398455926213181991635530755377849711239062449548298448953555698443357168301276503447563868872825182872198699497480200740093089289998663559835295602044948701349916303330755493344493844862547214195466732519387472916163575725045113741438465450809452415482120585317096103274031188700037657658398194395729446496789208341083457385182940361887055957302337341492883386386690577127598607405413792794531934131601856779309323389068871864744505826100008242460159186060291008315192943346263058572789313988241769791518912705555169615090077780001912266339561697396483425441879860091714829090946389329731271133794755727605853873092789722098421917122033574262532385283241366604051709372779680777027759550586135359524490545095734172401552689679290726534695936629074419377826573724720135861480896987804993708024905390837178479830069316403674018637591541647130161960089925286490201477070299860688829692527102692936018077202731229289420158340584959938424379046360978639043982394652541514588262565231606132294024382704557833873418639929654971048256723499228800790991717405290801148316888965039857281633178158028697079522694707809516843252519178871362630258992200090078008868944797888575437670414431274918979357332119277481993357797101663734383473949357276237713946380502986907849958629230294537675872500035339906794049584351588034825278095746075163529111421839591093053958305664064801282653906082821560660471073678914281153950030323164216678768662614624235634578680332221661138319023420538078166658216738948291172576983798325078034440841640502677504620852245217060645137809327228180760408723814351339219290720954462974401739820831056459152316636784452350120271486182606230620672524168985651684377716243546414695450809641065287752313734555187213058465766285025486451106956734399681664291126181452663758109955275937832067465024921030076248384980653691274735635743628824146338538771868098636450841636260018130012497857582766001084085515626254425855680217858727029497373968639180658839547950358826861795772474052233522266845657039994332960135755664317299153434608076930567722007422991710081121363862395609881422188393229896759353710344499994454657124693501525710735616638566688296041090725901336775264512402245142776885851000923829302373940412079561926802100256376968881094331333842987734889839204473522461098124972488783558485772786480865947989742705257064462105236146523575666626340293400299998261329583281460988349247641094314677932563360488745938031181958455404114095337922178714217837696024854286751288851289647361549246016432790530611096372771761134492873266456933042344018203154493136352038401572991866783684814855962483604696687088789789914313905526323421186454429800103727896551835908814395292966957619500713969340578006876906980779308174494771969666106005610460425265069973294700951872875024908024262029140948172354514014165131646202249890490302454161576449797135516196828967110890543100604469077136408811640045484312418525072470108811368467013532667269835394189005555165541037831377138997147652562546718093237030198181226139986477824154559405152614253282877489988799939558190073229621846234668496634550944206625931907383673184279697263400670739231399556819312670305450378639070271254450756836443593508921847966450367801895685307114839201420778000032221741203026909241804432922515674795112600903172938567919123149703258995230299291612467552531361595548964706935772918910225360077297991789439045328395730035664509928184314391125966580193514945161118128387769332528116325562783005999634041644419527896151586797404168806027894271007075061897380752573034300209067173409665106644166318616967900059108797373952463680741257743101641313528871992452450477717637529883419556945608968072970352593563674920305895592560324640401571196847310713380307881246448641081637667485724064415177663288658889378134565246043080265745050407559651995118098053902418354716045941171055607294278066084603276722392559165699955803206631628524016842898648450983712996131799576838860131349250960311599183437692491170071431161636884123823065984790926540066671519454445476883638602971551833977330409342977553286628244000489082131471061681785206614476229938605143034842434347153856970103639239461210835791067730725634767142490625432076174624718198209825243259724879273582851449978426393010439187389459963522110544117107618299959962660278634502509651048182772907279527216397030868020182958174488687593746562424106074909968971783818825724544657679702533875413548203922328034980352966993445614992112761131597945186193001816991404396483292400099556973898945002741691606802689197789224653062341933170469071628523925546177962588402435120751829487705901190701556035001376373486508996709170369240798484049942245461547488841104181631880075360471711441274157970421851191361922949859316655070990180941996959843421658567405918188447220786543248715214561381003044677247055416341929116059887585298242426390271958459847326469231444764311352008132030827134497712734302441653576748869418825697307177361436834514912634205248500882441291529670705779571532337637175817310393310444665598125871035736954559110799162692839971784611137965994457784637363533280520599318127840224049262725894546263036782367148352196279864543397586935552069346120360650136532737436394318154510236500194919828513839237794154146890299029946414864247837496438659408674375981095895766246985769826563408222911948102000397819092143233433365471805802450828338879956500433293985502290694084527111904112128073007922150818667182759927280233903931467800415736151673895446638733934253691281550840429950614798997385580621381972902404564104324304980366220460876366643715834972017861497417165548518236656143844515460507076929253075955525758764472995582274780488515076661600157670024574163187762965776349905743588655801348770348073061575542280246531281115817804782510932144877786545733913770450221741900095785891624228726047160017179718704051229832554401289114852856448224724700795970087666409160424850197887666422948160403227815077073742893057348521960073313399813104893998114808907894762526641875665296349534568298064401201171437026613397582191132056442073101737997642497673354222517501449447580329461425977398216964824050637158722666126695578479961997189970797999022984536779985940321814306573809968506472818905002892337352011986804595474690899307791344375108888703475703995242724080363091975345891474697726308742350257702238174961077136324436607362884714902036271974691596581010062204396886908142086698708130189169150930629198124931605177982195975088794764782091026932014350318261293990848904892235719613685826862178305930986519189307177384557950402750172841988361164168505859855305023111811291599747246415811488885018243691670421708701360906287446386847950433868813158433930942760572476385416597105685490626166742411632243900148446307937010857367403326844948130567974881574218514737240638134626899000790541731132094507635468664821039933472687791121077932968552802004336271665385999185082854037226300624016032782349784729639021340854458001199025848382825059162013073522498235425851711228120872922003891542961812993501173495844690913266160353570135738453957287873565930185946439128547983247810524900145297436087029156574345145923574551979554779144059814406946153760052836720467123709871698990684432631278762541016969479394457171037206583142374200928594199646534521441253826295402553186234573021838050555281822198760136197356297858250947081883916910249182367234210882906887720417479631676695244415378562794007064138406785117129273420902864259706052742339357987396707196810479838323713061502025565165756986439165395967469203908625766764849054957161051221697165992329443962037589499070039308226143215735742366665004915646480200448213163347114876456527598604167762031960723984520962048726815295892260444125101502742011279284561513866659887917758595106485502854534574747417053889343519093449526784213077179021557752512964656245019419301859592525713645781897706460500185425498021911376236054598309220079728939806493239269992366194012636930188878700353658024583905800971020581193485628570450598186470261861885682470939686511402885792378700531065147425691414227627331386046353489541116701366964990595743603250712412643853922968955676158817756268176803951155664451041849047789308689334984855243474968421566930668762952134848709424987039875294068890793681824289317895038045382101469391118739455652587755603081158000829321055801897846702433551269189522445664387986917817882891237603644489175540072314426412878879384491170316266786048967332935280838973963665489152803614246315429211245386655327516779452057845955550127760866342188068321488729016089122060851974529282853360483682915515354143230626066054753657448045504179034345435063430289816716496736878989480179830516758250089383133510446673699447481583943629869989658952615375738415145806777017248192152435664938824027055815286996803955217197453163635524068294345856555135986671567846350096682157108515011273930952684810212150240350318308417373196505730851539482552927353620100499620292998970401912053222014901686696307440874338603745437494723028835296805900768472461012620393744855589896398244244243014791495879953945741242105721785832558033079973796420098711286157617876292374202264982866974188311203381269628293876059976220915085608716252004970251127658403416059904576533148625945412510507304756137901892516410257501426143045074882743988040776722136116045352295889438278835148115153495432973967436941753285744631503858346910821907901348759996017091532222229315364392013047381940361528581932207456801259068159584547580392540359853914412242904836560740374609228684105419281230465156886157969390277040457875794885204656774595807196366320343638793288172145323150149351770605577181756584562689076288967061790447358548419218717880474181348319002827527363824297659241272074015081679324344251281012399137507846047300116110809662782020934740811060829171730017527685082287621417808307353883601995707744168711308099088839174671869969803801805888922244381272547209482960706871482101395641039075333621268684181051367761209903599758915706164156708740283857255258856968285638549798796413574610920589532817447548696826173285667046679424686994215895507983849511416099305622599615811968218378734108290252401317153086473938078475866636997554701917423413471538767769402179708369900378390945852894658318730444607117562849052394686936689942919367634196971401353019399667233611964259536023345042373872664279597469810501017729573912513836899874747104491246700068098486235272520622757701279756476763544127824388565288019404013525788825702558063930982647033676867441560988667701183753887393328852370498565082964757214749651460623349217452180319926136234546255179378351006099346577110265063108530836565551043250731904427974305538925903315259992496383443784962998938078692963414872844928249277705630094861326070041613273371618345875930761867183245507585772870637442402820578347861687489817729999910903695246758179102394505883740638580537632133962127180513976731107615524851190969996866527295513306038932500013181394174176599426097166229811438976316638255807504291767736908036343025165169634838098960301484312967044798347790035580017908996518701366656671788806941017710696341237850723644964094094005001483671572205986724652170821650205183242596077448504339178036902371722473805062954298294160881946146203244970905951056014366599764851464577121757692625039477389108745511518878977587279490097785781434660572056424912075357200676343675390324450730460100773328102566825111488969539420623158900586848804692048151879321539413526947713318566570803105336731497403309644589922906841647281857340584096861951325413478716720571804990626288747117234853347545473715966284929431775141485446464353436285172985089638397996398575742194853398854915705052216304263748010698569410693611750488191905120981924531116692264088457822499745408103372504944419024035764746141468214193986159543972630316143989916500855721588712234287886633181980608196258938483569455116643544295277427929441116974994054414497843766186849321591978002411427708473071026284952732216898916079742792619493454463134019508552214369206936604938241644224101144182246307920548913772201732197936869064651470508958370473902384919217281873704732830266195854732526655595931032816811584293407774535752861154710119378016913827706138967795627806142641862941793255866698543369922607271265679418297738355838038083942304601863674177186534217923876957061318785175388413284036021007718294790601627626225625306661222433301783889360774977270770128441348943769327456365928585024341296612803173249302152394972182332769548997129029945549152639325796611809898856659688790581305950334923535365984579746785683998685604810040815166332146264201518549148392045182605808236712116366261350858334170222089778202350428658239182837850563882309716681867111768512820410305117925485246264745809556822897183081455058187174981639366809873639659088316178733622340503968298147890286026363002288831310132096265713426122429882431312110870160325118211280219365397632764100518643207747281015078668837882600967838585677934579877774324492513856350659602898138228038016882452092360533006764907100009054135428860260745656038895668118802300578751043300942638167734335827939111655257853942130881209260415000479869387664021738536558304921683916449064527825234532780463692897412842288243272185370466404631304564887843025763296223138010602780315367394433977650101343117274586621127087057290672810135908844284651872640436706060265526795936728200383389828496732269199136076335495719948587295987724947208050199905991031284978782587310907969737571815655243478824474567348809606544532684834632411015948255931000864464809413229275550922065197577687072602804247012191431407005064942123042559872037076875015120269735994651938438587435310405414499428735835698844828030841773859856956194057574756717396845814907305754992416461211976778118118906369107258135104399678436741408434832910276178913800736596259315221120988532940747283775122585382973363812221032813743826558364757698397430119899703354930152795440075219335827656531573169563591117560738855818132304719481544408224176119882064889973289750587244361064624735529119854572642816305262926295152311040167249132868161375029007162629613886559380936213411579331654037144303252984122134092555067936863603202753791406492502297373866179929209895546598855190684647095480516795860009837108004527278391259266052878002878950400863442492577850643298573836993875997460214023496279619897172811354341945006137234274485373326591736108232356816848952505483787482200855672717922310081153623485608556586686645848539409406963691667461157774274602183769396918580877813001734819150394397574133673357537845432577467208889593000259723442655338264298993303468889791731736173561784320685025534595765976278885409857037065666345512514913969755291889967724630856824088309649009363244054485435201546988921261758786313681620412933658756414985769817987417080659484089347480725533421559769028542255421691259125736419793127868538838523106234724137945743637640519604093691920241818644608040597326036599047542885559842917626735207405287585370509785608785333198438788946468518120302410818941916370232106977969569509868497757185939774437707667368918159627920746744854931375520164413196045221445629264364962683358942087575484696570446098810875970785037666746739091612377981266414338267207862884634226491532576023645685043464384912438592220653395674444617612447781991369815344004345147269710155404127686778314702308622071666677033527078216590345791204796647717355525864405232798307699390372570258435406557922833389146456035543713081455430142996585929379027120240026446757371970688447706506442798969349794114722479633161168006250993038774569384422034868208506673067380060216582907142074031640551250882679817557283097547269766244298869895410296890061695287312483644411760281594447205335443652951744443613263792343669930765786426787991376185712249564339859232313113839294091989324431673967370050904212881820138177905211433681601613646863254375251070018118909552442847650521858363674213200594593667351807580591948280715673143503996595252653628293498502769325843168359788323216206962840279335190574533730137694161259501141450527804443362295015238326704140291946480746043970751136203485962200211241483291857808731886729382498563249785629375883082607983763900546379431299086587309123597504777795807887692904888941207993328764631842219243601376523814215034422289427099316994677749526605743587513056063524885004578441749007614903237342311338659406503221004628536770286761688357248459017190670744415156451809350179103234004071721192526426444598507402956589804841310003421355989741727837548531633231142111196863251311262372473044579805367204723208156026109442702906738598964226571457385462008411841479555299578773718233731881603224279794271878617548364209167092132352453347954974355290258318728470384166181209333808007810802033240897208056860237085154188340179770437768678589391488323490383005486951932130568197049660332462974677429708189700291791525827074934628224449122337758817039836014655606193707285034072364192764095939550018742691045637841207302813262129756476904485685548950066782128709221275639476712876595469771020294211884225833122110030655814307917822493775346076554652010670459098870282266496685406307546588543817154251497323146419082946934521745424876764651203460506315530688518178048944836485722010767436671109133248576491811531647518237783655357520395840735265200175899582840524853875373735233826224916301058042240097451411466822776887439432202399412640739172440809681321460260284997591845103993244088217748069125921935882127871847342724408433531031672203823571600040398434164509390330749273876544982382815520718228857755028012439789876452205947960829378621398388463848846108782332528191420732423399073205093762141950204837754569832065327953857429345022692513359589531940254975307695932518722758036636767931103143224126275289270972931500911660883998789051711010757645447129460699484670480117296803708124548832451471191337479459125571848094395022556672048570531094225720812125400662903761613876345869079757015427587746501415693699316109716629154706086458978632319266405630506132577010420580528995849725704070771147508685628174616186467099137697210713950482922916018463381152969621911172369994932645410030566725655941123011864598880645921790898507853232307220013249974907806179755358411045176023436592721152031551906794397936423419294276104423764659061025717593338942714850989440928828593241288252643143115730716411732540788250407477994032340628014483416503337479247897349233071815417872396585459041926460314875389735427871824704761327119777192494313180330691202265647451022195016813381655313935868706080901389462274658334922255718164118822804781162068994268124413342114228596712956821795330094177699053682824607704231769483853984265747114472476646311774765290217968012390450550884356620909426697426727747249631023850907803167761331336082095027725820703739997757752983007224331143282370376722752363568829164638902591428700196414264220594201448032636686078445727053752888183601822608867631447511286802830430088801632351085167040465179518516143948635440331159285156099576035670709152230259463552945241395424750931893759656340197503841516063937564499249930076058351845795879330526583050837585397109644825129260341714172045458832786063431063122203467476352509573173817181909398452547685996349518419538169535228187921237490304085571652765755210384444652708268530813971480928766611147867562970781920649131162246604092474188758871079837650219854951415792005246027313212557250838023730503758047499674122312709488920082620185213629056644353437817105873752033784777555194374378429560368695121201436370544047826352357245725092784723520040138564057979879310742308113524372809138881642588248445578878909500921110679229580465784884737818303027585867364070960854533500879308220174372952344500063214036103419304216210100102921101933546280808746726258279703833264230107906296769348736994970300110040221342262379890483107640134597174514788645408873787667517657614674195667379212791804440549902690646605990644916462308777120269964125839250727707521352990129437143042950826552032523325371237650590389072002450623653190850907875716574330622653772982414051870521525845163277421545067882821400755430695168648616423755370101904350675124307409034050504699982217785977519580021450155600818760469912474653021625956260911581536035723147929926221258551358543420132676716840084429032854919348645008636226541436845363306215711716633845420005058325715483255116481403051124936144584661603938354337452871613508916955263681166087300242838865154100225317207041242041476805085403051366324075563092509214489958482637137500557995010573094296203926302791954762763371638343345536084499625706897014159455184329788683645175935667169859158110888231292123860379498434869798508220549813419353697529273914034807589149572691400028588243578379029070207351231533441300601705541981349259012413334028512590778905908163908406836084232722983168666695930390285561072792231339254763693297843695522656240660677318319636528538247450671883808216937769638725553030690729704268485062702993151618691983468377169608289378622349141462028715217870917661604899990835969360690176574907119642524788219884803730063870625806654349162552120381368042236195245220458340139588218526205823499031731943576657768439681596085182752368610123606846787972183130298099211577997345785041525956905578332548827673667265603058584517481956571935331198300491537117883744282959906098129668289497530377705863201499086384124316804604800665306865310934282518156313715271101607946832701966649404368035662969723133449737362614781751462173481870904742968185961898947487041107969644676438881735509488572968465593885596823877406940892728882221249740035884783860589990406895971149360482861400768394009475670311064527771904940578450914382671530924656272929824534820942029035614652585697709994216704820277445325728476164099401016966318687430317156451405038765194389170731060376736145260593785683453952936100971698441996419678791926365371786753276864510799880541882899827205492191899143726239910968562226986945369026547598439013224316482366628600513923964818045383950239539794154204409645969916731606082864826251890490796231052347468126895114655222414941769481899274713423613353911491600503760044921545521788975196600787313294539719999337391970716104233599694147846533413940535005563571887883042655331413770798361191183351362061858951732732798060693897584394745411695393546383996438181414234039651114060785345562737407593791260992668540668013003925065499456130559085601954577980659815256017556350018038560956853483950686498440739110137337705981580690813468809527973603959244536476508417671015646108264068415010976739856767416027740116086912936227444449184987041981783968822770551246550369430069614232600649394423805135193735269668552283487268468175141543306256823508930848605230292374776733747660297028193393544109423856695312666320157218989437811828997053905662528745468282935825880826510335347892439902268382577656923932596545384755688149132202837891800978375847437096038896409855963664375284414005984512923285007192185291009861231569737636873115249224080508817077593938507138695823958691516992458908100469593607648854464010301873865399698884129394582994281015893163878843560095581105987703444496934595797438732198142148543284431841380546450443374958979888064610855679292399216604593664426226512137637622709629251492194519661715574970286613847396996708806460341029022879126956505032282127041292421634793042107078487570860427939164538598384926678858405842914540068962287783712160546021970798349732679030878351438126500916235288074811738420302525272323873171909957810180143261375424000408806941404222988281857347708983596300664451659933723950422155609571035656157426620726019971678641835146370002695297808382369968017031713348135914990141583976660269640254008226863747173196631917833453963686631146658637120628739877556285421545913608914986078246371936751913700003825761355038877638353945782857176103784751321646977090866786530252350565244661943696700861839702219980353689516529321067427245334915981388381934912244933312217843157420641894568721388285921131346892455155298620631985394016780913110698587190589165614243642735575305644027095652240581882081084130343397708492514020966995165890381847218354528905943596142021659947718041885410462184206670983637157253345810551255886918842172009661652228843009999904116365781502537545330126880049723242545206653716296415649813915070421195497942297139596864340882488675532927881007076118788538118845586072000958220513605857785165875963761130273887149064485877352793529839265036505785302610282236815497533289207342043658167904388389414393517741082208591504120268172694813408039445803941228879280426984110053356592528186891645622407973175995782372554692501375625627435855094311089523171202938547448856969568016754416472648850058499522640294580098472747693876098290027130761086204040779412984028838815504344903481437870854213565311173928208963857833436660940995291338934568746313866323432241589750395564816546861898169222867179363211901870641530097282475488095374055069789870989962249491835695162844595324952513193082796261977960100652719728279196365688234684484854828271633772177423635488236517487332116495450289036116765982713464057041318995535850537394160642839171606421637843679807199727234642378404409225377796058930211280737267110525924285773144243887835537006155531081645860715216952929393154412390411766686541981013027380099161361412976567183840669107807288167034289759286763453215783533027609810095741920422022218742984866503268066644667105408758911598433280812233362791683258706506841598854624454867912664730359626473585332786397249434492967072492546100803732585972707887833368413985862040986524533681885736384247272758896498126224710300741592523923067276865990085093869321578649997773746431488123571984580714123363553601505224035482907974529621619683620059097747273202434630347878777419963532237567718284467848583467600960174928298663387851886847217342380932823943781226331928982526363329785156796657655957309028304340075579651939832747341821826575322138184844565924065310848188655756651072066119268671350776476614447846878751594156792949978561640986097390798787891475568799418660103122295341879459926248463395391754324840121673320397653527663842614912232092302836076347319052939542009624467281586538884674686157305212184967503698632516167553912382184522400113053414418738213064571137418645794536273815351789462704123016025100715599256689094820545727517120161089152449339688717779744949056909534950074266646811752168577613259892885677521247555013473346043209726976156879574941882668011875329117554750585656370940689690153580638241358781837502663626428066470407482845971351669787043303456937651064842457939215118943689416743375474489710547832767553183880074909024847941896442142954886095465393875321158268472203578653936425428443284010148071524324067362465335991751861570047900871616495564983800617255428721931018236344446636077492106840341821351730808936043824097719030310247388116826055021838971953466635733023853632382938042512139055662517422925523522099366357416458634602939153508918419556095306942700630831793373084479359882710420714461963816966188462444521694711601772470463395242390768168842237940040478719098551261812052329463650434485978943910900598960323605427110788646216137265307410608457271948862527705797896220732875371428509320998953648054723700639538225022173958349304583387336748385393033109354176993795666478632764336004972030117961623202752076655452324642780700862236493308200816482534237987600588338184108330340415446424551732142537831785139383021987943171564584682820351941408674078851184643672140123639463606819671795577444531808013741195475433907886078998770772865262907473929607219284536376782117800798726473953049874181072161975582477458623624880178180591279622987098508472614937903212750241552422879259747084505090941891636756581378363873771678892924687732192300129839053428276498809584576814826406855022177304050917634321923705063544191968535125058172153473855246660485792099170298501689976860667866598482216863202446253779258484811880221675441308950442549460276988172726049821318766977116937112797704305782824035502777678273632280275547128271136140484761176312165350700207594051921647524777892400685216593207512896521654282444940411391797571970515972299049768621415877015007898411316641876849197436721856437895577918443305975669936421376779857472426471340840458360476027370519996280559313127975396920032681684464022098838332356587885663720627967631093680000784332402085514567389763761169123749674365600644306046660988016913410046408709220937015465213654051776962361490970828442718052461196635191027387100532575788487193504281073161335285878632970357176001271504644176051881938102501367191924242238504318919112579963489653301826008112336281739795149155670284856119459233525765046462421226453543609491194742507770563648294431024556507900593862173914391293792365243949554899887867227169905180631827877293753090371923233871683502624705291641039706849389769379293919882682159696879260931272774759696400616239123574456985903859297846979881199381790930885024761449538559173796301720493610681925807501026519931127386415144675393852647646620151963004218816886862702764668450788486291609618078248261141156320198507649422127641954501033906662397954167534822716137893420256372554785539262004546003107290900564101322367943460951141573590195860369000762464009650670892835111920504362756015261078307514295875548410224939629225787626391731306635761516698760156131994909224103882941182313276452821301276210288054499204336281009718890469863857506831530129317348548080283569996475724771535589727362937344788948348909947849039731369726986201366782461505293990644832208382943449742242916028500460598361678723341760276059863283395063185328841880701234360407872042113624431686913758094928462511268846015761695243136938342480139533246697094434122665249590294873004997927164362386446471784369680741724728156288959069961079406342886309326419819908149962595314343315937903608696876548136002769425672841776971986124149077969008862109057839869539972813800115395109829963103262213439081222105317968527068183507440139620864329993974104891915797269086101245397623367839296276775067976251103689495295745458624945767203324886934066732913937402815759225263981199228401261341008111561874659829799213931586984017359797288106007440417244543268428894068262744563380674126052154716919846514139084871992961719516691230535312801297162651573843307449685985206758934489788469650646491629926272236314761207275596217324561063366427698122841201401265678541747337754922300367431055851267506287090392024964826881256135453497898306327678782363513855620155738326604573934670620942995333668375783521634531828802030522779362531652317672830153705010585398685517953349605501571021294215227312940600349544811398568607979760901244297158093282795550306737567166260996251460241969870011744201523936339043178727757921045653869373710397933197301288570729884232454987562356085271454190562569271471910363731076668137576099714367475549885197465486523547460711709881494949373469312595858178192136748810184270250076283123151241381981369346488796343475021516225136263841091851539028246224236192703647955588365747119109986081208932623515099131572419056620008440161783957132461243268945629662922424244238269923498874591285386867291700422250505319227966148918297013843103565733634946694802695709081841787998365296727818983406231893507479442178152811236830324384842391680221976299930493432924387108728361296699082353033050986099489966373948252822901040772942458171454900254944025969456311247930615089428603342694051659422733397190527846413867370807262091738990326633019516897151053017590826622951850494347666576205196826774582630635227683908515978509636709323190974151939704961276122415421734727270424955326342719106797828664905449809784912155394787774234266612887550872418140416569003207084629310885904195198224673080268228717610053534280857006505014353041345022311480316002657730087636244947129244901609199905618929910124000967583331447621559545933147769971961278973063889774248826550804940603555978735580029559126857076737890770112182962992953611067368410371009855531383608133708004385301015456383290733203573337208130577577211600754802198776850747206860248994793190222891180665226038832219238963331013108462995737261929077721245997874698169063086768440169597690588717770517565315020340701203494995110354723589957479873904753984398154504765536354781173866321648989873803877555768632519293357600894475799916244095029850136196375828583912269687409931471841351413595694594150940226235392412956313515472483766523018984960393173958902952087047453983044179248175564616292294816046919302198644457234879582427344178791660681336537490786124953748245727576538974274887837825871336786081327950203373019104321442942113680074104124883224950356755614002385198144129286977085208966430677624851274216944724573631427092656399168496609064158855420766452035211858263032386638092276945390647455736482503050854193318273076070823785437433371631397650481978218153522323646099239070399735329629896755276854053936369841424294205631069387302040058236159696962460155910240837378108556944837062286433292751787849292163666661099715570421619854717276777121649540190194774673957581575312416809490105385199244347014704502503985864219319495767488769635590314782030978190123208505767134905239010090363574336561827870509085546918655684168422830795428664744632760367280630938293595086231409297870259855921685689720079015126920064914582034196855623235729004070368828953933468007563804857142847696746580054907851519821129466141133453762819154868906211424234873887036071730327823275104160341839304695469784128220857117584708621042453433403372825555385242134175866682331833590317613739751620298808542570728933765238419981188234655809129452093410969844979077196003480827383596380418791043654777415082485391038600603385088005601715904166370122838226212561224260219714063399310392474520929817269649022516897428462899742459284380984209916724346482910397301882354629648757685311539335728364075173510685909493346924714337211826191753717025899235533942471054547455196358498872289906806614236197997592263022514029311157605678359929488054331145888616042858367813828597249067041298958208483462168331223419585237145230426592844557305064460832359084348297658356436266702990244287632821984862514303772221280561382151937331690209072016602398214854194713655966930015965770836435872463120662986673319085005081239261877565233171116731433065914394684197543435398697979347618649790719835701475092143817666881560714348602321992201827184670212931815004603517464775028735869038155057638836323920057320212869102221714432256565331267877247908464374107645487237846117093584055014520346159133348272189339437142256977637517453972934310972216031246420928142939883174123050248532045212471397530277499893371396360682055513342604981414631095375684093171555810282015463857894835593039755576353226157980908254522111249086388456734812040725698566053071293868717436780133546220391218443420861938255631347453896100174825336706884475309047591451513461129583991834120989598207363026866433426967545818344676178566365186495123202445170257304777362964331578366429015210551893330816261020842527501848772569435013668158319909789966155507671284966673616258076550022842476857536160201013916957542685033597469880460061043018297412338406837114421340035320134617772261986960401204696257605622892948201421474260693284975357423940204976156212988918562826580868299191681804829668595993765613183724674060003779565386944119701512997769972499085613487638794217133544788352003050608269460463520285862673541620710501773273095797534492981490485748524143071260670122154339087974683664426746316357356358464102662428116572587006110523921355827193418639364144272915921277597084826520464628845345643692423640361686931288527327241475813288775397685097541937075122613388349079388513010760683653154882736605422204614827818567815032653721832628862464670915009522196536515467797772113442359227166328784984513116770713680924037863233717255158108411593770803176456788051062573183028915042483025336562502255960415183710823778499475506360826971997241451157812413995514376437052809584877826698127721939498671883748403933420802222995294547754998502745729411530833540106691207316147432445024929562530803751317756946729393162955711884964778118893982034923011997427393417113399401694355620968005635239969999505900199840227350781588087406959939693847770314813044441264120864350764932128033277737484875192475935765399487585832133491806851464525665996752832446453073340593538309501236495976876955291585240258256067634392959844645938015856379162521635935426319915955398479827420015654782917245493616806046169310496112840340177893270862723301577279267085265932023840497082920024844096630475227618137226037666558122342176640459626291896418472331972804375129811092029973927189296763448278149574948809999748409368172960396087248851844406312653771621213299370422846734262733675073376291739952849273007365750432387036634063010308479612088227665885751021449367116094191746120621794472756342146745019206172349204748447153427291044550680795598957532519923826361115452605975880401727555068884946190197831789678132828527287620444647748366612868622362827344718735661708617365859862437775406206229000123143188586359182121008159383824874510233379270868543189314576047954378766997193509044608882900501187998625327679202391340451944555070346491992983130811397914152767850282878527390871588890062033190787348745751830201765779760051017765278539210147012404552917520029580766882094532671824636177791745719706012470042168739395577751763358074501402552577694482005307940202659035657681748042231120219262670529555260824216415896427387819038067484088957996989150664798617839696151960109484918801387172649632420803148067736591930090282778944806544412601961489094456685433359697891282594349264905041010960504771213863814263101911205131383002579282281175386653314765821078136708311605255390530987867896805348529663264291046725091822536829587766135802793920003172116402499532407764568791031746258074375131346464276689980982552313223516271116692578720110869628688413608972452255582027276650173309513228088588687885594799663773215898829801639883280466478554439369496797632144296605638540539339005188545291986634636676940907590907999795040859629477272019467144488093651635391494588053503529187834861790840411501292122855929848204149437242944457446952895674175414522533095987227702950310861063244053728322060264642320686525625299608894149660099429558366400948662404686477336169878849350054785390822629069945532328130350305250461466931721058254439336640113089837553270037559778342337764770547055562437101002773207936422362185395133734640513336726685622600241772859749097854859892734327951284819902388347752846479690667269490179606109322574242019315470842808018734663571154724181777645691467421364730396674034431079847412928871126299283070621139115614085924851791088672339338306345683854294033901888131937512608022484426639265082197208631808709814390825759925035852307174677225305741049616705403660521023631366580807439595304937210004058914617146617291989694818109352708272711821650050609297577853719370640058669405289890717968753722351492621368404679969533989719138167121347995386115366378514523388430311611014103440367620887058041332608831888383339497013852069806156578585125951758422648159319706082830434967713207408803984764283526031782950747179277729226614953819327615244091855715870669849978237003096864166674938786870527303033669889809005885486176449634966805845719006318190930146246427383890820762863699675686859169705956136602698284771914777533600886401030053609200599095568217677712887674985768175539949112649937138904388966374790904008028593598024426757758368750100246232858052790561382816873063455319161345237592197504463915970014765616112091448081609360570840696070530633022148749060444897879321192201100937468815206639410252187445508161247648104360493699906325256263364868974220753426494184299883573191139830715822928987203673495178884719563743629072035041071598907820909953779712422766036853566127579430178450908827141888234108625786238231171519283092531019368731792873698732377563072587699597654555874054005630457198944309345541155202872645192896761818104273561281307919728549061964685621668313567251679107611851329628222621104093351367451813639282481381392401614934317248931015744995903486177964322382009402151253568443153339868186368378387768691433334113895949631111231485381257762280327133510037938310522213052833585316449245316758197579948559310594362749516427825284570820675442441945662399043909723999210802088896772214387922864060609273215530059213607911421638451018269435384747191745526399518709007145974725745171813945969090171471269397293771894783464839208318017120415312794538253242170980331025539575867446820741055332839903527790384509016245382814049715523931045255512851998165201613563666353635706408016447839025700384910637872506433278432627131592464132895901939143875599219126370176911271611567489273463185102580379486840361065214088877308655450037871403747524600634180906803647547899248704059338125557045915622302157492686091373723506077292649191658462568994442267161549500463862830327446613614168648036841331201975726074462267891635736213120832895955281199247563218366075320012675394618462947246367899563882562867811238192552377804026518212706625870643777566729960443379324003281548410742187066344538505190418613475467807193020492611614016066855805794970066152807228502943242588613682076010689272959936539700041338771765510266833496083400721549125139410583031823761098182019122614891105768585566402905618039632862533298814171465684809215352193545825633032906963091668944495383953573027403361745932301293526088766810221957582229058204263174094076580920229457656823579854940391460261542518878764189465338459132675923775555857225504564357308213994747607206602521867081673160153738460538473584654442328737387767589361380684959790689171090584762887270725709394507961612958039382078726033481900769198665718257358006915980692516847217653175577216290601734068941171507083299580379250153336109728868035340275796763957123934758807485739567938187918069532072546093650468742013533740434465723030566571828052748732751712963829629616520720692444782732485027445476794210100639151231926330211693577496784032972172788690961222797064853604354099744739649111045727166018313451085408882297888330705048921590386793718530375553896893367042060866770761293251848145637645975873356107954090903081469784030491517239381225429671235837261038189650651000306238457507151735457422555443998436591891386717642541218451667019161439098928264440418127580388111653398358783591171240722661107650708757846986109613442706895787271352329974311660334010228740868262652205005539891281568568875521266027183750998799683490681509245920447708414902118475403079124419724773100102232302708874265089572981436063303418192711126921878510663479374407298069645057044474570783190508241681080068817596986311462052171922532547159684374625982294208863119576214119305725496393159581886533548406319956520262636411887574866302081499279712169771462825889245865782201782333022250546854367293968980922185589010424625772787440885179870981809039398188078165256717076135262006162044749627666781846268610752578969270001017245110473206399432934869607806723997187482387884650675412751161715222388876876727940058136377563081176592930604528393262787656219966661022620827272089564942911311829941379605955343152148247246286392259160506299121823760850908750218689165546706783253581744943222750712261257178010978059941097073055488694488910334033635023543997760891859255510175517719817081877249860517855600851820780982065569347594547965528997816959145956660605991501332325571149806435610361410474846894742747295569703782783443073098886234557709844244255190537235785763618765098604460893897190999600539595709354556255129143344941557856841802040540302465942899595002462181931056016851753900486248931909171817626640465341473520078180814796578811862495892374745476669210827610050793589808761313285066983489098458624647399395693427775422438200333491366066260064467961679445739419028809316664300516195533039437734526354218128054109148188042907517250625031192778604748974163857820340192190020151425874457763242584440616718312284394675288179395950338070184055985890826985439698535501357114209712451368489796104809132556636099130555138247025508188618958931850614294031802077550822701767733750266933280900794268447743405103166573395303492000669336035730660411768217448338671420504437638884497678121670542380704317783959319823370199522781425548460797723185594494151147991883254457779905244565187409265165205526641210929979422946429830401927984508722130967692213452245947475145573298479453811803054364097124239806065122031988328079751496424090735478357939912183824288383754931920286165867455849347398321576774998101729151094902436031274990851646874866746759161969330854896468003862511518607091855980160115109861101585189766154219116065920202599115280639118592954279582647637722958095726250599656071260058460458533987418946159071864991776426034681107843672414964013229241396871743396679685518031102284468659871556550740440806419891073966068781349575030710666253095431041746850025593602813825184043460267522509577650313925482949955498788022948533772739806137738524277557084690076343581417314530029016961649539556744664869572014321003030065013871127143949712560471948396918274448173468367731151238707762340446421096403757771163192712825031383069607176467514732901707546464170033187511963578785280191733412532417391414291028031649366175962778690021036190531656045107877409044681667703292222418851201356835837347638472445388552069145860686421608748412361416418506991739365542065291494661250702573391663398429983536468445224169991618337107944289993549891917695463474994000574459446541825485193237728242417814350236807472290748803589306565549423774634138007979025088009389315450217203643109986780282354750287569079446494960898544147301370772912417158319624239596281148550704512174325804779565831824191939998761751296213487874179721137308054781585786445909076042231469665536449203726851529351292750010883151919786290383448740416324718222847154614386033000982329450493278782316666842969848293122612892600203457926033153367369364133770963592244619387060892335673424003557518153205329589927420949724902382508872458113263301519230769198671671920648969664376381062081308140034466197083066089369398983875938066168940229863024480871775253539565738189289083463450863737923069316137475182484361977108543056381899994877599899056006189727066547244794380126350786040630452271979621281250792465331551714401627682164819563621972162632286759774676701760287382449145877010703716750929273870966283250371029741273735553083822553246002550114606224045902397707146541258557228634497846151637349892430728963837803787484038699473285624220796872135497446169612059731845091888418087483489587089617222849351257331538415959990341015676849079025116154617989828969725762576214389630962437047289958194377909664733008021072803853109732203178126265135730701221061703320311891696322451871928648010646000516716553306249224849482444891614666273529362011059157140236214578215810943901844634580591164280668755840602561154059446464324020608260380202819335428826178415521978450253561479318573925798314588774139869653434981880770980830534367603291278528101928592149763188331731591935495170150934425523655191862304449740340283713603116280365811642587783984434289484297592141440380389599054857298246111942962650539046824956229458189486635792395871273236055443898322800223947165180937671757037044167342478294647479329209623705064584368560708908403206517649584226253012760134862775573232380794828773472805621877972128136694006018007010301288231955922842667698022621856976459428348161628118155266439916034974898285257488921009325648017803643486086779067569408800853867364687762204131643298524525500550735369790335034267627989364443979120354547466136027330539658239073926092379098788463469079356040978775980859014694580644800180036336795002529839836974055201558214670769110748947595439289513410439785940989784235018322887110401226020748702929410468819837528057754126257323809125093068974007665417786898986630556962544770087429392443423232414872541519239429307869087875903000957018008714266559103255689738453412574910290153253533769098068102559188998191503027236304329509653915461233288577073671248010708937508714099712070068334070599612992362205613688857972159061732285933514449007576577503031465503730089353223164023566759950506696364008500724702923030981531383719917418305598585012860482033669021764162123764582645093315761559291584820021586768841232355611440913813023486583844806365495149613089257133103388936593955886612681623036962956331228640965218074582080280082058972458584711836372194187346281741239463755705504862547512072526253890355207463767570826738234071963587110671528771111888435798320366281715933172333663585252646493364553430049370221680763654444263783094091166343576562242735220434854695357230540041394981567556505004105088103742167693414691815439295811188133289521084159539845775972841209114586888399561147460751567995448539707942404543841200531306618246625282114933489756554976290642148780223253060726099097336177320597095123604303102033546529440652287684522208985265921979136360434820018033896058252588769220405415463166494005600325393147256813577887714375932662693814688276234296826830863006087869577973154256630813968500577961638477118973911668893377797005261561713918749825107201764761949238186226767647521852242644593826458490720680082908330704735474438710924966154830812574036097047326217906618544343185156018534615099054163869543363933115508756177917602304164387753970307843229521587178437989380943994891546651853730349140100546927800222145901003045561738061111288172260021218491028925229770347215436183381002339261710434691632642758665253891726373434142621650398545768461475739150056168533899910737545471413504139354066304716132896295635557525165246957821078086481685542531805495580558161351890550731933552138865467585809384065415667113123425430701793733445299429703268721646737619045096108359739789041029045489362598240821475795579299135471589669609198986851920895221605697426356631230730026720466204376343007842424027967055661356710134098199482285866417564443547259525669885805854536734283006781434639815567489297573859950543797544748172300314999082611674655051690633186559742932316573370406548820202373559633166097390543705133002452259161861080863755351501566778982660785621008219660054976994088812669296181301133389194007960876205342765106012558702739026333069246781554943089672071795349380718905538954251340021368462598543924073135062091597414406231910773245838924682387270565810191671660035292849073104748250114150947122542021372086198299834132691829568048128266059393591431970571879679663162534183348830321179932645810760159875650174302996353539276988047386330728961643543125877575382859617910701567602832032241202555863143691000770413804903663878807434422459252174124443291432573502650038445691673495023798271642302859926910995108741083718722742144999459538828555300239281757955196001383269953140170775011737217580308845356509036564194298025355415285340386118704700580424910448784106093155951693424187968639810839722614444912729484620200548189546651026441723361215145854199628527126518546792185185250239549942712059198410038353101508656935763367834630747973762664408836511343077692108987506442428344090959174230597846141229711040364074874356381476110747368100894855628550968977556799804824216975037020525430534674280565553887349716999377837282810062966603350572727316708441030994113981092417262168720397891650638938785116627593604053082530016746834738555658674974131766539590116739040709094107820319381659064925805552165526982890436367176493945716131541160915196758596919612326621259270925457990697587913401608021947348103447068485448406320661004151392915765093099349104708296269638400613557133514805385460865728205851363131940098782659838438406768025486662580004448006626806208207542988929391265977883193405332100197747866863020756030348680119659473003291189390902574654090153235855661105462386847750469019871303198973651277674661312701071760583187786410333619745904214353312366558677066679007171844438564202893418678168045259474889543948833493685474016945437282414656923751226185388085336964453189091904265518614941245214164253009519331580916970878508150790293917327451627522706007617626582387429177337432313967477215606609941262015761930812490915051602809203391475332563595926229016114523410998783213645712779859300180962865046816735128202993674265523170147642570515234087106267191142808493037341390228752566907091664914470148982634421164726292483800716026814879362341013105786691672541082450699192835808575124867793762609774906893395858915182163047390001249785140732053974355962937838205317552932254742820810075070650546739645532810896203886695974835300699266360122072826134841541164400999794233118481591166230344966919453285181561955117083642833463905005618855320227981822722841312616081225946680979857336713730247884326034371151190825998461780960998866824582956509218442377897515475227488230628443754782588712877764484961261211989291589923884299422005413694204852089612913486528447578781282888510195708393850195284491719197636843855900036540661581277768581313764515524593704033615869147315465193351502862810442243657067065026935739984970702346884293078041748530559664406473802794020610444492408502344631267526809733075202758879784900322303066682415003826149898453493466344179879812513923753753928543305137097567899903820059482692151857623437297395703575395495383088042836059912680833196424953257576538046105851698881923798989232267609317148983215811421000204820025347804397533078704507182455411637679290016505646597165292195665571884174254183111702495728824738370128361477596810491461517828104820243308375460758852286403118301163885579092323582300889618591635174867473226994373228778519307310656150106100604602952873031737824866567072764052029620454713041041316900600151130004688232779947833552849191541460015997203539610061159042731871717024894883838146199364268696766628188252759330046862113444567383914728116399708937869714549323294375356715351435130401314325962043930502378201158039151049842701452610303644062663614274746995302111893805923038950673768868210691411595995237611007215421999499455691236351757363704003233246229770705568797846693784231482079830465447883842191073980530662172073933117008863783545786670785644788770751255763820212844070823546071005042946129847028711656200620751551566446195888635341165663980296319855987280574080819918674949860739164249192508178510123485912403285219715778238028324222950314445674547753580476579697012846004449789912331216135799040796809050109114638431891987866585565936920244822223894512956199233239979552778711879431789751398050766771304974281814392814696023786884190825509825399330523915886738648354620969213858361696356351918853617293981977328623642630118034944392504218525469975517991279731946807756509311298281209073372508774911901380401172147893981200859463785953071202803231158049830558574730579391832633330410199397007605318990711699538868271644431964225897824079595655875048120137741030480398567915441315916900645683236408814890282998419772294358476976998474458640751782385495452318794633198556596586205797797281705499055120058762604635140012510360314052664699756102449640178288463637974068328391652391101196804020539376125139266365102588443812457479850416878217240923940686902032038316275667608209657708722848108466036496847271115801293325724211903211065847343488503933798048680501077304243033803320325954814604043203514493001425556612051864380955453876775105971579322102004193927683781991206746127121961429053990798742281888549841258271789238802200100336902216083855167726269163772846540066508587360452788042599531663601385315667252650166506851960641309434176417413299718712754164556380311081174106580016462801839455972901153078518739047797546181820067922210527364702143696776919937240541783385086574226039040836509749170215044599039510572960897500531462562105978433500389297611336063647664777508852801667729670909649138207425617887899177000234132513039336262063362049281915706068608143311174905345047783163608268876498139992195326776944814866934245179065022858904227278947406681605260270601844804298725325386988306634937921714746759933007882540240553144114952258318260201106931484399322121390198171173233914753482342889580698380870423464613601939794806523705011738450856100512397150495106821424686546595598652988381270714141606958925996827682535654123902058329958969861879144929023131502176110236005717838209043045199053698665524327548017757802599791085545480848031835844370941481318723903111298791257638755668343735293191510458559805124613420594975709350495462264806324536746751226901848064809373920678625566055390631209984901313501919839067824762788064159820703100953322495347387342894243968073670845665041858456128258670590023841294929996818732351238532976188752126405754989669385039624828704517725586073573612906392145973622352440960731236203995107981371522374186422033219120476269190188931378175761743910893576867427039550782810739616839159055664064449603175103189277615921511599188303654206634349456258403682477018320416591180307441673483586270175627615454074556318423245565533107337583847676189725636534190610203049847808038742738960942183828476810524912496725168336986879118832462130668334032069713776362319419611281946394470581354440163990630820146653794268362717820159210759417217129434027996035377321531331754362331500718977939985822798070456246120777685172400616689022466370964369665778349001925386554879781391295216439386923193362011673310395827994984216018534224304561427688766260380746454521808659133952481847427156013790354259880004808606411182598510157382262274406008630454472959672410450249093847803564266371957457297673706666010314473350283199748991017711560681891002910300954621116358270695752823623458554905755956640109126648745112381189444269381784442460351069884319093417260347304281291324825070812088064186561604207113166276086891270370079569008016180927574979006650972399202446451979025659178301986385347550875129458890408396470715111026484626817965923117345602267406476684268035860521698532963015748314879687823010609141622974091443531550170413280118603767539095383529158685805321091123425445023081541200966888638089158916505867145330950772050701259087116912678310846947409235951889244451465368702056368560810188529636577822574781365953409147812148464237564216976740248928861820550774103313486366925724564951235409592926273537084641434053411146782797966939834598006891690696973245962881779662109612074816965105494339183504224248216690237796775948215344851054229336391047427103508726905735197203499534496739056417677985777717472534991585627598017694365410740757446952440765161438104712785837852032934047073932625702136491407144414130579517941355081617750982293275195083989640922555689092669369410502130270850364372220455371527332511349000843608772221327832028949712315559224109386026899381576278439308743466603754098891232199331780049147528065689223957396166880440774973359249223515594882590875367461530360960532168826071166731218536781022423214316431918235924406990957227809298556647745743385488961790528181579906327666981126376368807314921471072848790646230209480798821911008705886907795052192342662821477246329717422576807544788954278569532220598065749093180500376459303822768302566182443343446893307506064313609781034646890526928010373804608049534015375966032919230331572194828388065219021492532462191929991936261297876264931029397634032174638293459461885341636561098188520959882922872724737092900039877273194538760833039299964768097846875341710963055927028638620148240752042587278362976085571549237117161869315494510096532609444270606227619619396605424039806944107539317753743745889415050411141228754083620695219987057822262808749997155231992173132886825650243333855759334437652409028167034666387755676137034965895470964418686525302476276871634096984030714809493234285689911647156341443798148458839772132935891097605837487444205862496866783558229926844468223604704285063574759638422448322936471613955068882123658890857214175039830994544302251800871226285612469565687649675619239535400343008846559668067637927519122381444293927547093545941268060716511690599448728940935500909354724392377604796970222502170258368622263632774114527084714498105192096364884005833236006424080759384413751667143974251372757920225719185888448488467714866474506154413330351843203808925517070775738178529114080087425323567977139226725389441392761059877620237552648421700619463783570444470928187143532839099162012065978237579245429877538345071999390877363480316929270567841168385375239818032601212174365060370955161010283334510568244304653656485029932761566534393447257632695953770475101142522386155307426336588589302346131555440962686815835405571595606500892737244832536858877153519140270897415622240976543318038667023782383163744014354300467509108388084790083903662279479078645981763862023550567705859890502380270590028013917152657199918027975806910859825749914829512623788976163763735290108932332070185863507140016668099331258792302656881884320254701749926423486274526116194545402180953875506271960143015561135242258338715324655699270580693569740475537118450102369580127412317533809987343579508281009434692469418120005017015381733273146954607876653638930103931613231282487413031160343215708760488236780720695276079037577407015101941849826976293511726995938039238420499044183053915371586492585208886632680386338451850623902046718466013288352792189682021768086818183954195168242674786211434244034962907750374129977013860069715883242862396818987543908151151620187382907769742983779254877392439958182428393820336983062449443894321511255761311218030128997965160236221022124798110690548831453290642437756691121457211344472620238689306143825609750394675529256909407823866648718227832849064745132322936548132216645037448528601862315765978713237339781405640231582448761933802015064647082347203151004855450238128208717419925664715600369533208157713977700850219509306448542753848097445155829890272298336180794685987901545967230492649016597331225358916555530763926378111685197392458111646766100805234570772422034612488314401194193340618987303609447859153523326074499162858724752247061830562869782712081237859027722862588052960203377041583413479174759523741514412361892751121024977792933885698203835763691698669734705708807726776988498274255807800826870308956797134068040224021719926902728872052277206249302861148623807328608321367514085607077797681811107823858273045758668313185233730097533404545673893165461882239435421314175895375397779518211027166377164902924365063800810058563611065945815668218637942744957865322704046468991661880172347354209738358311781680947338340129621396179721591820843853987973132640008963919832236917308956230280800638477728476155244336456012105500746844540614153804160334643068296832526274272713076367047164998848275544406498427824318899308711635526042270954404726277326416501108136154149154725891803265387140225359874735821780204514785955007265186861827030286315420564831876799174031261197648175502594244387328534536489719371682034863536495878401655030810038989456277645425576248382164583431102276283862050159354095307161006659799340007753010057205374544592088559134618045965789382720423606835366057790863585343210643434773832044598861913258561539141198670759735196569096553559359627261337273505347451966189600486409889898134250426013444105857988492286560380794667245626832320614141050184019288655816886212170631109687332060157134641914936884129842513303653651930211967594609664255942777586391890307088452142376651151804018384836082319028948446616996345871790123894069784739177739927549827979886286073272775740617092992485131270596962347203863539058601879504124546529352845462583142090112611265274247576516851843178773261063916968965941220890145117344474104983539786169042498574527599195328079165201803750199989397563539605065525822286293734967130118874951897195494717866716973130536148813670317363517666714308060974689127798861896229716943335184148865852193932301955826539132455424968540751071010829620937205172194805203519594614254696481142923557838655716220965892249823635612539802409676983052534991344217333926258233249066876996912529299626860610573593172065005266965583272670033441939909577987999060099834169844961511146668006897006188203903808115742313482294620371770240585979674927267654469837925110954373769866531014787517630912173067298802424228536224347254065274388665795703642877818814427086198488304456942582351580748559304295983133602464192632187147652305013738727516069860290709695260143004149724049351547804200112907097604519908026982927399550686018754458212330832624860927375212255700496205911927776693731615201312339151110614553356059367299515790462467219638287790433951946808969315505080260975086802507204725753668004664144492464178410396518893261223649696869582230624922606482552891505296826299142683305935563652036967956061341159800828764813494131137545945230342821917582472689513793560648847346452943415249902812595561088880899301926128663943249228721673269621033080631591231150084761748046727514089299147137080510831151583373327426471176914954165983075529300158250951888113477362836916844023861094411458163051914786373045670592606464552089592932994915639980019235270164415011320314799279875102020044267259006541072265286169057650281803449418111727982496749806908679849559965896959296557192841695952755146517774748660216461493696517847522592207609325876736060259824643333219651633572163873096591544737326740630348663936812258396919451851511944008300091617430781992042248829849072035401200822493099170395066026804391275919099068689749870778880861215837087561304732079543903930198223776855458145771231479266461414183552032489340566349356733593857139379326260339429060082966347579905603610253394954791222043347760940930776770358932321184667706517901612657192386548006575022892956464526062401033570935602447440450591174415608927957590093272681259275265761140717706478864687192170724005482883564270700332709321489444008900305262329788626768264569298450749472302052405776253807073380896442351574340375750393580804067227525458722435395375042053547198887315182739099715417564924152025997165725759851666421868647794527781481629277812705867685654324093295608961631165392985273207390337456195989765199367094986962205416618597834787283269522607315917804854652664537774926453349464695085052949072239903086986489998717534922997343751155687162506633468137699394031509678953833252559869414494623045468602645836185761399746890282736981504092218354855123777895260362407760305241353076955377896019460997476701548581148237304558573214551282696631620064165168990243137310426420880573595238599450397936987490183288594879365639856399767486033612547960878222509242698084034781626691361237353775832028178602842735025562208056674169079435669540032906804342696320764704842064454262717457496744123983757778020928529532833684856717975942570120452001730304096171259523366947199541068768989646829591144809153300308442929218560429780886844616944236792433482084363312125578893648011016085997537514916882064972374554825442765996721593748317550270356102049136654963517631613724666773919229769817229025249401347984038422736439081262642160684124562730086869140989407147880760136306364670946948615871621461861720351361509642930669126058087955769259237066367232509127624039952176087618601859316661791241275699737098206890031756293393968423609915635714069834405828109906996008245317647809843403368025255376862113216432509185829130940400807500402163693404757177267370623850716681456508248811410115817802935397604594931339166687997944125782588081236351426514242344483459623409263220477319341061935496430341701966503315918073090585631280312969720598858663547755920062640678686158004039446439658747312233971309647309980379010417088907892839261153655642096678381841897050776061563090274859312850296130399534135181264211367728360403507798393283228813377469335531985849596665626497704691793586680585416874376040048182084010011222047228372206677728901753617989445495985878748381344867437835081789216001130656903782220323313240140361990029305314906645005108528680046060113777485022629338485154227430409827448705709544309420107379761885920286299659713947071932310975882635376770947162134718062025768439399389112919020121585436677288658168208726945514420712140261932034547200116218476998467280442606355797245215899323235143264694011156992385036271847224586392800715623569502732426204688413686659526817456375278248895172575697344122494668527786757808089895178007617531036449031777144062370389834914179119003030298858143592664583709408628427439552425262690962652853251687652823258103124672990023323148664565203193517539944898940975809575417680041516227725792214821070312112255576244936575470223648881669531068375330247457769801987106835043268997089636572645764992631587478058890058718868944954317984918160122551460443162658232882612932101801989825329008676414081972972372764145078761875983872740200772668169515018497752550858619355025438786461032538400714381930256768797214012497131981136625966837275356768685169432843090816986484091053402769442572539013366913054052814926997269663231147305169893099422332244866168148224234461996216940665790667308867548820336074281878102482803565111642101620540576746121390027126599560232990613209120114042114191310759662446422208929155028539340104702440525441200684837976643194918002598499705931935668479414512083143568403713268000300552863047502092361755445313551502186645612772092285466564114088546183691367675249564579261649274441277287859153790733487871148471946529480927509284610112483377958002709432466244179591132793406456396983863437423120188243639381953645321641031110272950361852061649714736084185287410738700881772725969994826645444812303526786423575223447270824049674440159264041349523322818601171312259918295732765113152858668335222516970261051073718119245590548428899124450200097122549638595707039994792331220766702056828026296900947279454713132364728389636381220255189517046896239773702642257196870807603409171987145946948507483609020916317472885400172734752741943421123171710729323368721451257825972799172252259137130166056318895986446837273143345690228173479101970342761352372652364346200577048536969138506742316645620517170632689834368810249806624427306547586084573225662984105641067824012788537877594748110928058372319309000298235204545765873216087426083534981503302533510095462836487716757434961436196272835172849036024055032411694683103513432504754392591255452569147721221445779562768386347893705403801454766645633718482840216197046904295162463421411188954102956022742236651047265905999471810437237258501060475253280171100403959725894881599538403253236964204347868236164511525279579657055887177789971599553582326971104283354968692740924568613963836579622410267001228063772624672328288047463944869901417821538467163652173487752900633810786224212371334955042818282432057896372922008995650936846237449289749467710225384659719895511381257082344279537267035663608403167899392711573132943361732125556220417430007821989782547693239277424305924475424156322000319281159448717438480462871839224116080683198876431071737139803371612885852333977173152286935722017610162555596106160574834765061363888142114352399886354230759590086017142170838209720471379739597090832941581692900646120577224960802128190811225592395780015129262137702258685554880053813566873201035140817222129141281383447432710749464337067610760468053512879778987651639874369085731874143131248767576481752806126933280933836633793182586896152607963079238048436634632359775611935772623366700703650351957874936134544176992431404876907034693805550633555373971355530666858054201954734351797937781901310558586488706753467164724584680749923583692469067287718204821462178848182465028357768082255883639660181062542474577050164049860736581309885400897679274141150126689276129389484423337225493060101019775210033985707104334582165449681510756623721604748369910351705629316328505500624981105388066235491554133775257356329639264648851958426688427196504961075728668778896082922055073449066036934344370890972703298013902797852415253808525762862487642430712662592056834742843601589032467970357003965680337058229071441349458760103018378916531818433225825670980045414975737008911685411823966910265109934690796935828645792629541248586484392432128406622611787399818228742390793545744038987093597043673387092931151260350568714290483455737376582861766562180822631505974521275776263161152170797078154207304048278281031482245877946856532441922978000351628935412317816850912449207662699732056224264979683624420697921502340990244658181359735256345732497164653263110985356437797199397775094689361233913134435819692978787860403914179417287545119673149286976898003502274064894203802227168857293805204476339860240516159421535495901775642045344216594039018671683641638239032149209230895789643454806772653290799760930468062281766454164639017704333507067008341368959247069985538352066335375014235905056848949493687272192363168343085971473522884288901555889818079431397164560235055179488384747768680478530126675196281687740974530230224475404838853160436595086364728105821360172316483261363998848169762293804674157612156784262026402199369310203501545363722794790228489330158627178624603681483738022101145690969322533655311495903752640232368811738892614937341234228451045661672917447485363704126956263790917991214638267662194601220693991916387384294167326640582160167981856261848698651714817518021796464087074013746575528869314193033212832555856019968916230669236216342545542278495640446977773134325365760798829465279342992128692768662185769869067541167310416742209518594854204931111551096826808101809492629419064293104773764134604788213077596928815008137456792211627517893685104007933651560901760904397253994368190288547561211278071485822651592834516521351131095481479031320750052425588810270411506088573129749968550803196181185960221242005969400973605268020911129745181765560584559842139166685543932446736897995646362799312832464310694458670492165623894806793805813784995720151639541831895521728160707155196877125119165055337888413553553481564363587396881994631445576834462643158503135000134164839001994369044151869706553199273040172779341708077259269136333318215612185011213206550383373639656462870262416671693374093169321940446041471385345336209685232009362616658198073884546275428365104857966966048695772246670672746084735206793886269763143574119249174594079422632223192716159754968877504570761356999558132442672121458386361940794404676819916000070284009581148635399332750056554891980699407378912157853255394186536734034526939692716326559629695091208893698405462073717940234942703855795672529915310787979963144614957355041660516880019052784057551863226226077238972234201142383396708701998423730444949961392116325566756472293180304585948907719154770932621597602433488409427238776010097112688405492698988879587463796328091463298156682123975662655489639994664174879394293355899532163875944578169817553347984591856010726696424121740197847897704259222431453274904383080121726670925657496623862250121778286858324423140854432512961313212165258413594814920468728011723465915979179960474842360223830183894074022543013094858382123997145317174288164534201834732291450618954104956253039302276330350088514430836752570056201903930994765835810219979946378089272133364126090514858966443519741157302072927397968850755591670395625511679414179447893507764875971084540034222118104196814003145386031600512662406835534939482003932437274198538843126727423704409266232744325489921999060723241421835259941934253710654196286614438456299092759126458342692426245650819174487702609712655448050187092959784229999365756997037605509825283403486100809046334116277338936754023152375034029585930345648020828305806028876541245410697544412120903601162210683622916841416649566815218803815063551281996067520467365720321991459592416068361992830066586652325647903844998951882700320960004833627114548723921848493670888885675846919392274556655047753733971694632573051808622875203905161461563916837623389577016656865154872939715632776680250373043565021728379520918118040070895958925130641714820208267604116842391122247791634361446336492007578488599997647741474821060079923370447230439902968720622238339931346973853834486595449835202339756656805546411534829093914216744171905156928133240960177867878180119879954340668602247376007962422975874267133874734368568610653983516318296206801925274071262423769343426586847619147954755777890001714608573960440003775584100788634414669885518652720156281441286503961136167654082153578577918483019062964087921507633078748205867761157839820239410276124910371619361648941279759694568067194818400499964265881836942697452504882831081642762532363255314935211394786410431497768834914896223906313958463218016400337608845496327172239071221503514955328379781066505296161744943625811298310989298252525470927626324973125464714923088890028382036313464790882785764317635614640445283989489182261725543324706149430523683398654337597677271312623916570279553489358486437209284716495476989983506284267419706571907891464330245028190533956485472854587384294926826381652587434708348207185345365417315271398182051319524727278162658145216523064534069494171113023709437372042616803162148284006195952748309725200083145746888683632992848354434081575223058791719674733111036467548044216170579933472489757911902579425801593194180663464576628416616186628858274954876290721171724620251257516590215279340397130941419857031580079552278969186549167442012413028179744343214842035915782918491046382090984411767174240201320307111677286808347333400931177913848208270606320315529286170006185608494949989506057049782357589460032667923339301505926806681148925467727929723903525885149877684264450091410450817191275994992817097539547883528376783813432064076088586708043962826852428450559934299747720372147126261453181115529086061795716536750022219204221151773888992774380438685415054719474687012939091026192600084593676815645316969226009086676060785141156275069237340030771677296479289242568156827580798933051345553915286499131442937264163041119351240933250839168229644344526658839455032712856170952071112633727898946418450040217917788854078639448319095087489365260639912205608516390952282061680607881544144067825865827462244694935561762602452985712275680080147658487802804240569596064066240445430680026665930542675003463868090707897584962228507987579985387111698644004234154515151884577661888808125138974631411742872649089962181954226816422776930626844894200322857810108388277861915542632845589093516621061806516843997943181791936081289460519240278265133973315197731384435861353354402862146805273279339104364987434848867708528116596764917934349543874891170958499202197700764001400282478813906139562365448889790373014050155314240120511987273253698295783520992863304711687981947177848687015126664138404652448574700130298180958559424201032912239737380921051697621971224925249436676283635649410638464279501191820425162690830905997781527319449254690546663480257351930697854494847019443912942319597520686252752336003814013251946667886510104656415257093990573254627404507929052256563361438794798896287733752474372272420973361773628194506608972819714686443946927079240708859243559056615953610834515174622957199086172455430929503960760815769404450200992728396020776558585628686674918206375484627627374675730282575756649974376397330627958220777897086275677159201939859599194401509719899542604155025001190075913879785075612896892683452143823254106970830284885956203900676421403180143022635058770736040798525580963734865139552080337895407465148580823048667115559925038700375069700937447716480910180353615579688355630409460907382482434584655466570225759058213725578336403857382974718834728543103542446299792120389507582335971457703029643071577889159626245242130169654083037760655259696846092163931043878670256088716077920406242036613204269478909718839689626219193199264616091252239388029603374927320930556243399857788702571642372345118488584707211312604838754944200491937591152153333104850088565122817477061570946930067968579116205179605092689796328639954736360147858917753828168022572260035168868293610717470472298391499555458282717192065937526036006194244563232057152487174935912144217659047219003280300778793398933906243860510578669121513600536279580615408656265952987418259706607302355835392311223321648520581862162179912902128345617198202387437503715044715110776987528679005238329954364940001817956807229292964759185565090833772997422161546228944657820348524457755009672699913972462238461912074407494637368299797520780376969312639344893784648418660139376500706403418153537781574741347649488893446852620348754971314169957547651559586074052341895479546259453346135763428430073386972457505556779507336711661789898136249540041659827111850984717259000315286404670412834245010439621328912825649914563119008841457823875695370046537778438020456873108114848532918302010209145107246487181683397653897407468969280915694118802524655861193364977756882813245606182243943405425257437590803404689188574819764295905598350697145822376251493613013364437662087949229038789163814519719975744920975296554584165786449117854023455448128465369900301666179797721412711127346691187092356109645329184355538973074651764630249795696467405114803890137423663151034437937559706953615367516347012281533332346094065619608679691463668705758552194594636220351726317081843336909574829271760102518787904145530863577965829504232703370568966374457630002584162083580533000642744613175916604242848115435857904744956846006249053384870559849332926790626883931812733530619400475703068837348208915859099169590745085573081343370310827317374097071920843692537734586951668584526193135412463367842879336602237488636049493635312164897557653763546671426194065972246873027174364749244840135922760923696702847669794752485339687780186524938487544625381328978802149480590729815578697413967088782393816381743228136869707731439324635593320654564258120523736788138706833001316727216711517745478318503089269274237237387389072073685407519072662135218508070241586992347069324320377299119499245533660114522414547949912054412946993102419053800060733209602731690361343380700850338066291296816246034977447255346610230758527424568816058961183950127468196197263249149350415204721337287353596131384207228603957650884293275762387222156249140819569138303758469393779472739890120262689785826256652571306237136497791985421522820620891211800982684446316967251504445788537965448366128737011001810282097286147917354251037953038012960434269403745956366540613319195591912008827746757221081824168470918716176093879709798825245443395375717776118692811638998897834638340530141292467244460299791154460818834819574265587079364593244607301954505485707161749231888520903918839777145387795871497707499128134125403543701650837359099601793527415981283772239227689010225673090535657227887689098120661275720487481276609470784684809137306219198055223235302821019523180437384651298758669366786756675163194529257348891163209075584048931072716375216332121162935366120737867832750749741132915631463019881889784913244725367480327447608539512325158759511463691916282314251711893602890798789600298775913429622423637380312972130715612144003040790941830915698029972297514712631385288697718733948941255204248014673865994913602860733395657760926411734421664954731921863507157088330900617156275066782771455873078958884206782553985349370351589647599792227499816249809750343564638226916067962645967332218081645796404122814287015356004438296172180872812426067493870517479781374676403576522216367136844788697818100933640536452561920474053078183150171202008755930381395045933810308154196377626393478635953417819620870272039361464252196523611388078216950142624546707186239348095909863979681663424696648268347184105727017137301864559214777866682686659963897861311477793195744667065223378843370953632660715790522220564503219762910167901598507110016058927714288324514674344358498639084424697705060011313241709523013807816953174087965755542902564525969264409037498055820803584038620283967873535625384827747806965191877920253668492289375453575021357683781301103425999738973420635430235414574596713580074911984471090125366808545040604599076225307729223906837688882688790424674705198062031478832579892716073215141425618734008945687983392387178772534972701324431591378924165803874213906308957468679707463908820213723272725087619996524063833547129684385304616830461132112941605045116160710630912142490650411342021986539938534395440761998783781857482013127019708580108740660916067094311590874694093127298194719226510350240434420862261059114504214756726663600099289398254733227064853289034489556194343375034443792850192350772667647103071376814355982613049432733242978064497446552913929489013520663792516804223447630053240089280700122644167719758284744506184879156624171155372881795332824229181423164962634264457124521092114765006361444792057296812838829149757474632008810537493815950253009634171722777800795073988379681288517786851506263166694279056505207904724883208632346515652306327866439844544853100695509334633311325943619818828437075271444600003022723590382237352948527726017038044366153006302770937878408154621792906279252912663691750029954003406879366823048049859257022382041348922197671357901790851482979681576787632580973155917193977692535675284552437048967061610125765687751122414659380185696858253413440534166018754478262183755066438829381790722476476578300913139025646284196475018654486462664237472305777418334362089301520687582990359768024792114143321903490701891479003659143060527477757389685722198412038682127506008774643765213082196127617453768541649042516185065090302134913541099117081051809162287562958887347399343668237940156057741611179660203546116993685067321606658897077520136961663258736544069154038690084635495452313236928284503486508186420690451852480157943683360221160945999829716805704019397839483044531803508740638676602264469180781223465575377056198269576821037280825485644220639399286897189963543356911581238012922412669175237190807922569816308455261392283623149250512965893412355371570865666365220643872698176891521186120908750974732252608549941614677721458745204680282868170825818265233920061776034162465848982772660713876325535721547050484633907138580129635682482346238179426560350706878488515358974474521940760623757180461791060693742377529469936965794984719088287708016372383857966299126486345140128694675738616962113018952903542145016647208742892557604931609208151443210891693144307975310848628965248516501413249946105840499756441819539591728164743024279701787316049005163833476945841432257393965634228439013066087546979940344376034301845998250804625473659764822076741426634115680043080769324540914529742964931637473875383503503317636318273485617972514172891650466667138063181094067190034891383523113294333604506113461532542677968952291126305089983528283941900904155585662634554139008840209200337226581037203465723228548608580646161223070864064709246451480050108502186169098069260856723042603961924495071777547070770025508567993940568820635321563184063535937353875198584512981852333789774638861748768658781833149793845588618177530836619701620029036931650447932321880489113957676104083948249594849708457498748079267397775471991279396067521839454975833324562451583044169074178221640242795790050742269566889680777791412001348951274886041134047353432048488405632858611437108715293911813898472556153894205919100718932922348200392949931802660555032727811016306544846840774911147872419126670733911176695994720512260249811912841413015502711610968915493355957424134718657203854605954969243695622821866774819558292628734084657501645414383895618484618577925414910078682312557122399082903745345966734474408235256306006426114088447069760420279576325108702654152352215359160326818310873903935588311148003020147050823744136080114219522068344902907376889799031085735478190490019740488915299338976458108656899829372824191208573930375831685404972573136931950212477383588165598332262626556726373036077056711660295128138035821687111246643432658686823060280361543395166501163079588567163560824484270858454974668434037817862018443514248808179260548393102470436050891075670246713817633691656673127007728197566412378903215478291211984610388912115789782370155095058345651285715983792498556294232753909089090032446312972225586478815900518455207954699600339257193542566754539532760852887067125161414299845431880133428803694834107257075782935473121732879112480319132838532400645907282593899336218644973861433000705051746930651095223890097803848224553969133258157494290280190887070683134968931232117524783309064754862273674609972189755138713476159309188749948877555221396959966628362180900819632081340626251587353965793139310688124294196174293433359677326686103345398196602079563846448021820463797502175701178024706963754519122121954574636359214404640436050148468546481771832802877026980740307095164571531181316888405556170170327781860140235271471907900858345636642309481291063901863888992025768827044230093050373323485297150693445173495141041184739123901144985659790714939083147527056916092004788768097585008595674020473367639537084921217012860832012182461342052389650606006332177969851887173500793897210060635016307529662596227396086562765494380137284954547583801907069825650840637219065016635418951017961354020595773698958613570162861544029581048867991804400168730048951808924748497678882482486015719956388098477607370596873675262096267770483784298098051200492693052746128119231549369087576267498516477275621542471198784188488601631812181724129244480465212517492347389428757854289791397917145385831511453229149195434156716088762404501434863523469483333349285981492523525935938228037257499447850667948913570219556742003653322107603157106420540017409663620629058282632130146513905908983237559271119535115527072930047588431352398345933187970732069344767034033000751789078018968867771582545354416793241891942392505882212308599681812339805299881973229527288422125006685636019380344825417773117708501943477756108910832675257791281418717356640600021645926375185310964793760970365950710524862749979117976781992064777372550348222121117425629117659531002763353162146926310364502599516382311723148458707285428921243948921751881660851760502371812939497657918721561132395043314399116898651725900976148391909332670480363417603693631004386035999904397562644609769859191728645086296786088089648101417748046222834251702096035276552371755984657831047540049208564068360900841215985203286665866225651458664038089055382948717061724141162622276773604968502840396540236609956246022094935401097890146507179828266265679799586331118391905005441242250512752439325889697402829396939457605210695904721319716666235202332767351727918144009530019918908331611864124899819162888668469661342028904727062744182714234057238941074675958557246046413710861500506118780605746080033321240134023545708430151724700455352175793795210302733148956056458501513241248218643092203336976470046223469302044364482820103368448804254530447775587262481795075972955587681617026544333385345481364151456322323973443696244461979745124936031374930148022732391966400973675111912194799878561826689321119347622412182652099921953428184622713273580791365261121082679826722961067085335493085736528345481070542349626295684100159923713758102056465372558893567604930918246990914444006965884389532392593086255441959700176483767459683226900398686315582705056434472925121163565491428753323276321714983393079881791063682602438632796435867294903579832543476655404298092924889062424036719726304193748092460531165891156279094355002383562127668687488716200519818574909037679276841552267937592659132412332959617920257091301557997385164999769924397534642281444232210612439014174972335529777447940089884542099482113324275940469429950353772508446697245941330356250417264717535410962543344864956240643483458052528297136113869992047933310301684314789995182833204840266221523219176240246108742064454759505131854783170570779300582631296648473549396185007154780020741774251161858621646951033325925890946916724056896216574341332224438290826683023066086572617957348161287033179242748038842322011496531363291330981679704010272268454985354511399532419490869051719144249616183065934792079836411208402352400891865017848435617937067120722622276568115060702244356152991507401153696456848234418526106790948498972437669534366692624930025640477548518163429647775720731014515686367658868776570457765143230671706318970800746629416140201714022471023620015605836321073346005874503616683963127970929028876378331486943069872241425146276898664673344018777222117142746374437115487451838043128714326701763136195873364149308853054668216296342455146903027507297463890669861679628811534073410908699338199805063461191142020694139362516862866318165572593246696049132948558000510256128435779892694942333687612876242238657876398063258018390445118325390410025543108242707545770906569537781610557529325292240520585058193937835145041402709207661303158057269368144183555406850648845906420028740743690717742211206433976189782242079408497502500047720041991453634145778205447735941241236620837145678773423208258460044510442170245389446096027110761911552994641991837799129920668097053145803873036504209579883162267837227074483770538620069614853795262387987576463450369602487897678135093949462928252756590418768436943652252463548944607373202336286370337855424972440997497944117791090228739557932515738788508590717531323014233760147297363073770807507904369157478236627042575837260230959660878591058541518925781241547443483840055178414534631563497727765791194269860680535243030434967368264734084578927276416281093795018429934186503277430668525792535493847097966355753456081315927637257509871572698976798426643461520390163393964600613766164313495405453665600278747250496221733274456120182459339531207579218280347217203499311697076947250215899312476811828134078119194469556519131646832447784147693644078296188906201131923666341468425066735644298816768327857296749613667601725829476389672742723044406255025634340937980350069710562043911484598400607508927750345221527011019076148206289670676761762141959016051735010373120937400489391052279141797365581292215538486194467506833475043405319115365124389640666998660339713547191966421575840520410536995697066148860828099154941195908131330874054886510550188509294683301823480529892350738838935569866030238965104153191734980155033580828639085791265110494033061004974709195747010740597379968315830172988611142452168639953218649099590081087775872807029065324763125209297122797511410636646989588269835081019894051087944334156710898771391908767589002606120277572862557704138712173080591766748415866534126283021864014225648985606032369427136800916504065512974608778726947699606661593087741775334841255229386385046553469369045641959868580183681126920564538221907551805497196105474796124074127149718881127304984700459985798942479052413750967014818196989145467191792741102999835610576835410241263982124443665357783081299734392477869198415062264277502234739429049425894469912857196959385497729797983286235640473932386717692916617796199512984039525958795343363128199026826878799683542469666586916928422938227909422746735451815521080042334810012870023933277546835504663076298187945026138023094558634004266646516976045626706751422435923996358143374045750551604257252531128579222710640637873528444289507965985167753147698586094716421797860815388194336819446960777642131806761334011321441764899006451473855599361632459919566860716012200761765159816601458424614866094675605773540473118550075830839076978000959195357142510180359641035430822442850950527509851176731103542572635547120029580842452009415982695876072108216690341996288605050841523275659946137340029878967929550955576256089431792467935097288928820963572896618694388477219928562960655745529154061076154801185222052221896980813991713991913049745734896930838952168797353336305265977909509454068896562589819840912153029029237378691723888223920790989234252006536429530217281161509344736429432463285970828628944653368919734321490206154577967391339224999149307445821828421148966059509695546310024493408533985451511825184986232166556674061980187175260316084809793807335082165778373660217699372411176979768061886467398746389083709021869556158389538918511428581091955246406191271377658354682576097571482886689940144020846768162055800511415583097875622477438994608667629062530309545320382572456636807727323609868345283079207316130631090920498124763962284439101456047439822337545415374000713095300576881160417925781335498743406579216642641215824312966576173178282454033190680558327951454985039131271322298416256987297004166949950916910523558682665062120341250898443771112535800762734547481816111411993047382869083350097059310617391113735817253787382744452970757885211308832030431747711872398812645574888860362185599555288731353593918480359590133830863244048466025980608754513307078563677918636947118513488121910632937187840993120302138783640732519216700436362463493440365546079967230305785088430597887325555838209057396997570839292996264582845625126371527400207777820013982747501302726014176679877386906493109633867240421837340136472434392285979713782611259897427008941438122686172464384174064519514003109855144558325377299129986170162207725358158905613572388828547709924805235747732768327875302419568869609939715786565504045422907746413754647099639979160744625556171553542637502822065129111050790314898500398171413875699123992809245211888330866649777301240456883842039598807309130863305069203725312629704202524486542421970731641324832036736276445054482917747411133662390187599991300140361412753520438488311432232029439772925826506292550179158822163903153153668274781278153804332784012584092299513786548736459450026182431908415442856506997834225143482147322788084586261590017293038880872626678271905008369053366795318622252113764471910870363354936648217462272419040740705584251796034358300610426239559833649566433234608093607547754444615590235995256813414102815342430539282590988164576407972051869448567883572724278595850876290523574833757828193294184603752122405874906990220658585139597949515891384023037949799626991086258270196402675006487406342360020138360681286466626059393483028753228365313903491850320861510915663427919503848425239917184537509997559712757057981519803796568377596479886959596048630574142980462354768475322076156306473565046856717005729568983664442613339091167245996146452793544630363407601376002059718509307019552132315668174222875805575358926769153130017499027984151622336807574452293992061389198521110245991766312437302558892263730397544107168670720902065987349554498163896780222417838728363776223034177900743697842605510579562607207715711794222669718699686687443712857038481514476698133478577300892021507431228977150664705103250806881680741439661588557691948382216959546553152446049758863320700946698886857373359278802936666459633920128534683643986877300876104805930702692288012331549559642228073364579874378059164175922775739377812618731329641969697867958383220327410056808048464856664508650511349986837045669760699124916757387875090815406744034097396661146212347742010090117154438781196204939456702047598279413709221003393805956291559674985886076650372595892650726634145130730704521674878443595259694151673312283986835634825169299779725643930837797432498557598434679629279245269344088412840561060812784211662833489038559921985055650580188664367623429625990681948888596781407019439511474298877037670094635177093245253906850451588681680288584080317094883270536125709255487020236032113699081753297343543444248842047239543396715175790154698647713958782542117368135618794588287889916990154167308814919695706183415702674578437771573701908804202212592436325549732577636265815118597054171529502524926410070145188994530867740267110909925468444690545647667760723306614881697212369587146772481104225354605085779343350128188999194298984293592366770357386749641977041718672287912266602102800740570360723023433255923629167446394136354494652755017037418623594895708064618707079115112336321707507141076711600623325498605544038981067358570906528078795034424461311877688627352968927439792950461148868238891694355050829835422917826930445880577837433198887245644275217295465491407713772130152898806576750705178142721342169700510877797223061160494042617554586315881081554909994016961027839806458710254066109146632230629060011174181994893845043066277278003301015598929954875636882382544838839687954363522089257262415277175564577567885158967451643437867782045843469223588655502911798597345820184501638435120685766415358065037622525380218245385265220865777956653637874320563975263204219483861863736570307231687012345179621592070898374895663229015520250387052198198218001879034233726372926949074351674841411853064429549664553589534569442814916651447308315175921147213024253128944722905885611573085252526823151747605083409793281425809555546579563281451812054487411106373690807759546256447423121463165492432093952004573136935919386782976790634791618878652935581486241434986936181127506040883466526832823999350104701465011766603762936775933234799843926043508957028617057660481852281867569606053005120408791602761711694280270765438726745186565322579307597733412999441906488750382543278655315072246179726048127823190442369179174071113334348931064474268526528213014958922805996926244190470653944751415196726298111218534633311692764033806261033756085773349105259657317340682073942067950606123341811166788250344341525269600538130945444805274107555385981352118245887837539754194946052829857259754800529946091953511292180777805593358755409953571699225688624257983651328481885491865424034866761109916878104674923991054757982667053384628396605211886083217704675534642630049976475376845174843956528819475617610685631769560806033571060272760583346611285662700366517352273129342747209765850598379373292473383434175007329273331587150655640203264963227069063048845704164076710199234195117132982024419574921976127097447403413848951315008848592686476182138804659405446022714817336388990812780057426975661149461603856086016739967600564816862295413320864929659324711275908930052819230763868420703270395259870335203303125908601755979077758805984533216840025248393115577672525134926703211793454318826076250334628978689979079231856560075779404061836748704190682573071112086049030819811222932810136673136585435142559977077277356172153360276393881477667570432789041617047888551396764814125010693113752789623720068118379273436768761370291991143243299335947409155831443483797038207341170601461549822545905917450431683581044994230865683528893718649804443998967535835832069990833132770514019878520084894843138596004654439458368895469995070588758077607248423002106569281114149852441327056886744401250255267610102656948811379493820507362016319680073359009847646778219915552624237361050405664029339315067535028168128220578229321803244864228699868850005164857627448400090493886757536567714051779600281334785549421157344508368925186041610901605849774606199341467834346653656169067357359284388921090051721091101108236552843852347163489213518978909605104399695862711156718971926329593671100117259436502233531847416962752572127966910302810540291720464167675565756076884069813574541967084793576925357431380902525075743904508088718374745169957982544625664263055446927396473426300846035319914080141884023374629307918562257990141453975221929581616360406279760635377641950992552098442178791250373090572436763680677927213495452235809709677656321257430160278702322302878524817124973280644282235167817245166393038197280643747101283850930223447322869339613522059419198615435324345733918502059288915604130517371965341300368645646693145567312662210797363154467539180367745978501034230549032135965568336677720692020880350584334558685960732105939995649337530609650781149384425569378819772485516862340645484305473678596373491889980043739666392241743190313775235607874029641502452227300356042806566118909595245460272683724991101074840770205498857400162755513420860283115089320537202417244352309829327526438895783201805964371558430846764073680088339771551122083571102313352621201282027092144871829822540898492116793778929768515479082229941664395262767506843073818811031519043028794191997027441212226327738838832759252421563837886090490106722720729624094545673087893709608320534164034537526287189449352584370959688132181282645000648322573419446015550457661093791777407440317277851983790797136985792155916143096802956538255942204805095581947965762524464760580923011666189229929415994542658850924986981027107149715653576949031706889270286450652793735055297431575850024221434940439631347694365669968452753576093887882988270204533014357562293978254049222996445694653128927213290360912126708783382465884569615739950312945360148287035561827939208035134746560495055823141304895411866404643571037514409642329242311065504986090410546672105963146343258710953096173790568681451664262734703244624214182846038268134836696879579195963142450147206532116155977556000525513270286755401081443422315197865179421114477596036481983179135825254485098349643188440068022317574915356362303374852449367891036871012718369489423765278328931612690918884462295621487835859302048249092016216426116533786067417502575524998666747469345115159291498305996677965081902993153686701234719105933133662850110044577052351886384035644743425380355871067337993283010153175773022859163814215610139606306637785219387872935077474166365292494251893372353661278314498893128849329619633667874752136044830438888771317169281426693736511044432016879128349528054329889192070465491252530054306783356334585275520443165778290972646726277172475931997091866373902610892761760589837171021248483359165323607471543643918552862638455803783508539402091867812240211723457383749160604485770378918486070482820599024961011046682649165192167527205992128362833102199806771634123039978499499700937821259173120756898874563113779357527840648178941849836958250584210001817849266328258474704855382589341855634450865275735855118956128440452767888840887293405117794611660291477890588694284994845352553005800931716394756840292941970363956117570394848922618847656656505915234962020925293535746930944667313077101121981882854054369804124639334341761689767305873480510353022131572559558385351278424398731004496487236955824410471462235425304577109394237389592042983329072136944217093150471993294339311977512491667626775255929160050103970347937080218703245976324845515764183922354791997706661118226739575059691505344620069162962569227522816723874125530626902775845800913068709555871246429779475100560835008462601261461347916876109309788449959450683763455838358031445998284834896692774048230512987413285536602668315782974365785131598478116998251376549634982286955642669035740262508586028125489704281333582665306451280221864067114039369429617074830277337251243371235044026540161603257574924691391341334697333290897053073461920953373142764745072285603043107039818838196885882858875423481572377075860320601781761302394054754666425028325767864082662587483567015143315495473467684192484028140198406019720413621247919165109354445233446678719937786310508148482603562278754547536368188002223849215374211078110107842552472894357329932624221156105141267982357123406558599573772400959989906260728946214187128721823372569596296796873096270492719784011474239330402657353625108388070565007849138069236830238367174032672593414524382105121034013630416945363995855014485535556758482908401376491973442544195206794795282711375958459764294578148180286145808111041874459650367877619445346496550302011172763199705049668716606487008638512357088838708175809355851155303256371298420393432361116606725859778130115225509414657202346688960648387977058001644482664840822304646019480833087464915004195602808561723989019221426599132696143016444440081534287115427498776729602097908210762253365020747115714448114320735971480246724184221272341494458386948460952422971031418402043026462885234007558907464336925878884524393053603580144054323005602877989160116226114160327342909008350337882317921168448546139902398116304673266702093319002098892567849326601643640398789437636612170335117923375695823603919053868553677311482111941340955055621041251997418427952986221231461997530716861305082114860770099876725299404696294643940986435964894790934245547919677003362774275839465515259035389263164820123269506208710858239599932557226746935429811875156371069452332443621105945923724348788250420320998214198969416002842917801504758702007353894428719431345135265160833286422320840949067305520616476215548684938809436076745357962886218991133045793279601459745016609390073283671649841487251573069124940881464011782356935280795944227142176331055333168108863391137695873012635052680987473521467724605589272076775199262099131283890213373081494080220857642758053135121289026386001110357618588912317713950689289907099363827497602834919932842341398295274970986401443570317273300296389395169456441344750130376254457722089636360224652378198292667941914628505776546861436053798469175614663502447918175180529984266024006384613074015156908510901589594023076443666576832631581813778886943414456097741465662746338192400489730447226085100554654458420707234221557795136320142698787551181788788760719602283575353325983829288989143234890863567378838212810969718347422031160003096673237984476332274703513566538998474083654942327591991716411891401494423775811411368111747266346271765370967523575413222774556127127796372567856015815880273830227236964966299670140196549927421791323240004506885291335175782128009059215017769550945648296761190008413789076663977488960610573255059329974273345518910652862005707298495298655390628962254525559326131169439377501964022999583004139901548948871586365523678914384595664776706467438899162455418769213348369515987097555427177451703165528223281433635974806754718613790904857176550180585264746127736670346427725216091193932923737520462025519499773108274433645541125639951884893900250462084341537975400802872542525271043838188353443395932344672553676786382124762519873020024039728944513900520725330385260518858359129204927394830923164187483557179767195922051354111626885217051181755396717602670072194814549531433465515852975875522984638230062592439450940355142573980522954750206259046731562809655479162071639538838495399046975101667280769664288423898852433067916091447057202322329998442955100444645768035874859878020175625606608564951862048214150528485074269991810776028917440627020647732872241757201166876690148550005785453112253474555567593446849350796540556253139358977509801675007185245835173904800343920381595561456718739734211414320473587991498643774199283124818118793307700156675382463588987740478365457158292082407122043241327880815587210444336238217134936615417771755814614945042138841194476964377469105035772149315294513394753035967677971797283291397366466739967057456736455231764020606617798427219052610440370483035020240794557198425136589114710967902412965714403509937168758985721173249805586945288485549088436650232844529707873461119267053801727973373453828327457875217581896498312591242394529398615781857085147869524522666753030700329221022013507457074124638308626818963002710816023743740444157613451633389751590734652212573433597071997877666000979543123235274833516407609877406109528537603197231347973577802317956869079106981964116876502545573398041885796569111414444927153841133566851315353420045520892033477697247022521629739258070591353698082682075293672417385407422987857105804453919572887884962785767696243461803897118614200590314313695234910430821574203967263191077123777814760048577643000347520765936484118615910024435267725014519095918379945906859844802998670697753602056634404538765443122912511731371529217281871395185714478459989053705613270476930526827178828980173363735382238902268177992580915436555426032407709123659181733897826998367018097840491503905932057419490765428176692855494605729916212059153651274172945055239848558548636479909769070210181161805289876670863152234494177397271743401873128297330913784169313108930247157006986129060152490432775001441669559770836374905586334624506800548818362129284998248747286275260638967540540346018498695019518034198839220440085501135771619082890568602039165273509434296903526907534169419352916648303228002378708012391317752737701457911261743241133913088255555817233625129791272456276347131939163240644096220637596979354606404137125707290017059914787344015388168277813023735201701427317606779394485932753852853859007444233558156279554999107079414912512129351224085223729277123832136219808676528412121773616993014352873793586729516518000907285880900401003586027066418443510093268900997132900948538459783449312779418994684879415657634770689334902239440118207144757120126656205418014697849051259956387138733050177435896730881510110909892237106500092463927925884954360860737324371306988558037954566438457160544893763975789341853916872606031756381189826775091140782458644420345693979528598216758046208786029158903292484018783080746863378772416753583854554276220264902922268892064260442906733027507334698317457694792679793681724519765943144324164440706323400157221219224619933067181514553207857969505018485775998640585663618579218700792160821578707456104599173150407478655514294006740020099455812123674717814045196101201930342513388625363061755144267559630924811550342320273639896708323681848322684130666044474316266820921158607672249061883726951376962454779788313847062444543637653181167742168326688918456353249289210717199164466764501379425117752390909303520591047473445730888953248847738916677414504386261911901032880020705546446681958053013079537532215468523592465072978219934592953056953872688067210670578551215312252502054488353792888098915092824396492818141141209711040299529149652698309778332776075194657764994718624723095995236711332398200587497511057925367496414255692460614868832453678404678949403477553418738530238077790757860184518114933712521336500136490260176416715116680998461435655891141868703113388790422110896365059713532445935270928714389622126308637603916790429289127487725268038954738446494565579102441542306008393124635391953164256884300046354970599245523681969714751221676803337353859532663101229988310858045258179012598269834784585466438292823082200943924162968115805318904404354520624275678492848609335924656588107051992693915562532086715357382871407004890370229008479149720588534696217430934335221497993776742709465431000953787064390516222658947616225916676067320571921197985450351892644371706685394282381971736996737887676485338730113478377833652071173625541222699954916027906386920739081693445675971037564245245505790520659355241891391037809320920523304270284811034166954231947214728345369851850977568753100184550263297303710378933338960223118185186126376212311310914398021392051459938274423633808719143298164305835094393728094174755068084850902341172195192248637147773116967761570180875639745415867234512352228139995839287768179219435185357485947650007803512341405143225734369621678251744013562032652949396846722264098068608422059904564792843162110379376504044337712572343631607383819689619380560453169800831057713507343688155281314637279668474247256746135239919762825553416769866011948569778707932709084814588213282582040395899622666901148666660796809280272862885918123614186640837930094536410198098924970622583922019004113073111552253073738448845420172447403172970250056364611553129410949696795492567588791361134873878154703166070479588474875006116044049352216746022871846030693789893232871986376084305876712941625324158479592963160531465201906607163214526104764995206439390376677441536571788221421577645104625222844640731560343786172802379271809360022564534191451587944002741285466072789584383435239053111113454446492330305232339778160384260328485176939390900072367419794000948960208631653454604978727444616747475697956107096020189994657923219424962968484028500841745813301186773698627394866428836370294684368305878174966425314758945552234793014069490657209385170448254082626929397115508462281874053032058863270218316849543766200590457379545826288318055927765624476291692553362762951741567577977349050982105108833477638266905380909328872461077610429570160475358705713708231137369459377123157044772747002150671236033058090197902341292578416715792152720387911365893013142212834875689340715599108035711923127470115213572092698773352234815795485828566134658795428910205086166793457195458017252842424588577973050258025556414043348940855938884761895343726051390196569538403701894664559250221285908479297902337299979125212521099944079036930287724989634597940362917362658200525983908050353226547964289664638630871843354373374901798495776775596843341094755974597268547097984505490083395161570191383707307279053360810756159367915112546923522552710799011343506445335374652402549025246414703069327328781045943658452900466970725035310843176642844846426296292100221119975945230684403910160668315019427640883064209042434646215460956867684893060028645400498286155869360033100438585301037533823493090632059554358795696105189124569644250451696957804992617105618909602085765796421611908856723103795980527548807528486589597370875262317891479814945038150478307683847820684554410862866524529489352373601954724026526483852542915531071318809497745755773593850305851868505653903061423769131507342701777835986418332788489348589726657056916239469466475755387428938073485866233819542636742236446593108025942831574345706151238287140551341759642462794745846762376257488324348630031036916853824678158447670622732283174970212347596842630385085210326755711682627981085674550135933119471520047344186974134002784097940073720945124699633201423362574992676455809603794115480529098994100018420840450684756115466170775921039938415432527986289210061630613933875998854802428367063489049585814199516235292547478426729218954717154917931769264794958280803318310204962049877766176023213486601710188905540949277106779512679283462029509270217083838543998525233135404200453534521797368182932561949268504015926029259876200262878452258016302222929052094594012039209134870441289580471509307685178140339604841663538708496524333133134823037394571533289403280067870826132952419165040444424548266219114505489063572079715986134820689008771487615668467348381223232416960356057972963435307951162182977007979888593432358887588825044708028003542729227441107645105975900247609128759112341336865334706292074574477002168527868180577879238342253048655659783935058871450396150416322412521701766413719276602327313764303397008102654765573578340891002626145354849593104763271338909207398685800468150203315281323274255140679670052148552858278570873518801958993922825581758348015965716580639883358141475351904960366337901154516041692894593427328726448806009912013111653714750235214546062939337286586201329324662047345723525849398950711497547487768754613640503685946285291942795688952834181759124481124103167593372663689327884015179908624048233083783385809184639937806051156052348217138256494272648933365227097455166175011291781767307025140988487353157702649608903401991985766233657066074931862846616984725659320646263811694849145978667223824445158084588605787183626505350735719066387947620469645674729452285768686223354426461904835940958656637200694811719698652815732637847492656079892505625944746659247755094094012637161551039547086851154115297904375116360428961405880081272335475086558826455584713653903835425910858605852173449639041641858249037309687000692640217075875244294311251372255895583196561458631067920571603755016877685183885549011475714795386632686788297039278365830194887545850461400288752512035591661711705400689847258834516330566333324126617529252443831402283117815021533985441952650867855252873131695299987499849492072731612451044988690738537926392047564573669374898644789809720589128392415098654325932632329197192743026921821817499087583648924114142046097220650639785323472238189257924408127110469745807397918254956429462330158754894322917506680718715370980864944280909650946702061658234278347532738365554341708711472890169630221583658161657755598662156649913402850909340044990789562833320852152257876405629082231914323974405402926910189907847506733987464804193608529214212817535768729110664808500039032324553842440871672173989787928170531696139321893275211484549127284310032902777718530182927612301987290334543653019533788918475615392078135740389016217380868650195004631748405464462147244453031599586731658575374754925259530207179970237097076887578996811511139676544205329685412200796703631831327440468268752454064072366616771057241943915103060883644015343588658522315867836797973806795231131459274851391977480123798318513256502645933235077449491738804799177086645381688008977608600715262374540190778899252716104900761692134495730747903266344447639579105923881714516184173440855059125145421903381233881022292301177153525590844354840101692418341568973776898218855180591120671885598044483575214141124110876768900095338322046002495293663814460362315257484232903991778811355473463927042119757329769018668990317631808050657714847392225819038644762805663310081985325505379644723240648356599313213005794549858484865752770319445089857227305239197323189252887018887520988320942136000945775926619424137449926488531696387351592264784993974691941694972533386597352165043097124143824776857644097312056505470039143582380917409627701639085236272977540645517750408550795998878848484985948517918979528026706950834533006063585725767759464069854705524417831920624874502677518933718132159660846496453054196418681697060444583979964487621080777581704605619077505059262634749029969398525751715763764831877670316192611124604410863749513381902740265771400755028437339508834140927449254514502769510027303801313917056395085287173643334031923795051766206563560532298786087226001087786724248086638290230168213964143656865878598309394752294963203334335047655720474508421708332292958206524165073685473448043160374815251986103445474637747503908103989697233523358102762883998551474237378351029422481921630854303624905155335580675280574984034296483664361406188232490395057001161655717152238363496961142607472413351947284847202857340246639219542397907508924976657519216819924790365544177326475700401873944269259832525039505856697295621164503750041680719316317312023549714802055890491414542951427630817988498420987748280225313062706965628338501457725027879979366334833692852736600941718925953491389172624692784890777663512663504796105711350483296056106047866992387821227281363790509575097852447672416406134175673122280473939468464478782913988908751492006474681713829002559977799203510984445503055706347305874087108475308076550617221854258258522020755150822050507339201296689574726132711284470555246697192610629088025149301954397411652502986687257370506472714719350077072345196747525324050603973617357953543447196100165565061913781028905196131891932194278974498536335960944057980996220724106037845087705097145600856131476865860595758786736925303170324103723309155647513600743752813596936817279770848434435789026884145962933803817488431334494211591142884157880837963684930184605844953313927401225195687943623056096868352002929231996519854094449737920247361841434995375682986762385273985411426865031114558038917647945374162447483605881875732181885577075458998602880129754811274574497620531128496399791396216932066934094543791171236344251360578017755921504583243861692179603565128576110224556153257496751094690954469713337581971676094388607115518221994446863151642763050078083660737318559959870182795778996314704653500904187443276772095930855342413254954428610091522219451060299946266661203752013004576911754739707099438866154707519192257266373871584631206225286757367979104594836470449605101517578529643735338591479806887064607621117260395986240894328197582090367203007608131018548041960576622825596165014863903801337017466112869991992112427267520201191485149769129630910999639463516057334278299373921973084494382217383908550612954243047333488960322435607818805775516488678680611955159817613483327823137785776742981474769958521086680230703235570244515667794847915483194512683768436951088400130416762161087000773376497831209440947291377376483121955233785562005798398715726099593382461225058217705323026138803112117836113620988369838010713372823640010769616261657941951963132878986240455484393996044344213518266518099345328616512616777328934293219716045479897621187214259571316140293695269567322189946522206550298517527840459862472764184063488514336502391558269725243684917205857542921669649909263474660026679124752269108088014802426508207890281738555784830795383404107835988278419783593796830202387810466536391337003839000327609773068042824127633172963719401757903354814050100603310366936776608895047912095525532133569508636736414936056226490682028749154422691546612268783750448660309999925351375659011627306722089965414123280126077728752445769872632303406275022901700977371719684053912014660718721197128827923297466578153625821511058819326990977158012233472233916332585481547606569865263757851977250725104293473400648418330592648021246190267828651525273475452364856247809267039313143174827029914398980190056093616781092822391853482585779285654429530280638411105770496579216993039981085812279172743474228171689746613503228139585462706131663831479947871093363131410320155532380548948908481023722136654107509869213622633262099874336645276330167620673687933354081339140656968003514142815196712952182553759980244205550839253038145464482137573950682176851294386707108055466620806115977807666155268020848274616989375216167516328550917237199779084283618594019025689656835294632116473307493181037044784577880372533281240884559436269994351075777486919520205997472052779889884045501114508998532769730159575908327070444565579597211167228375670085006505013305301992231430108649074073993724304821489978910223062161534936576760414812346500834225872629064870753621077198512455790739140740782456065589270635256217200960581132298074408772246524693984908292926091169454508094517556524404801654764290911697296411404848137841534727610942665335524778802182657246857828243286470477632837739946314853690525720548862632920218313646359785287987223803684149184509523902820432266280719895891419337895587210681300733179658705229651947532752949630380382578508272170745964970576287739968289942960378756024439147879012240471888827548011965387380163448940219176704230182790918598095025605889711819875042682744824370327775254851780819871960805620104825830036792112651263623560498773360164645757635849512276796156296573964063446402084801343379189392755584881830482701636966202753105885574478673986608716266891341601319873654981623729957504334953544845605004863384342267152624157365659804061762573643822664771505350905669015385107153570741882319138128001244997057563694924387792342243038510514351740284856042925193564085224336700642343259504171716385862774963332664703631651759420600894648966057690900296467483186869392451263845828468038417169773730545310224944769093124566664985202885570900242996577461722267722937080308446340586316100229325948742063956007495615479677482159243729564923827373992535532069763435615590296391678878175562054500786956936027411412518432752306042492855755954646656563392109457707950346398887293323031837052697649901700109397650506678861860398982266729084251222841864988453886050978485005663493559936093546512782079352464300608740769792343665489372855680840174853544902743430144351365747748093057808996489976933970779313097180346527585869187931374862938864768703684131435829866147292828131578723627390160488331044363318410122236801084786207995174975368797299714496286213516409314775312526491534203818406379797849059279566056317184049803337421418958680247633454258723857950663041602637507215393488348244518059305890221509085769905387885463386558915390304250117499474638544039004491980044950888511610689337245600476751599872222717937356415876304324515166238848125782022313779119970460519552748741278095816311290982333783877694209852080554007205928347050786577031850660164212715233922995000698819117124073868534117086420148780092259378386309130025210097832502911511784535175323219148960515815695002180614629728734504403007133486492477555031506293205612611846404768642271473393003514622192151089522762189865428408366463727282763968314713736879295684664799390894225070081281174664944293275000921129568881858154638102679892677370821330557277816844391247144069773945614990685599484239277085648327804828435187049416135592823469647082475771024221872629227889722615151944729952653115088610310124713696351441354417496686973392240367277462874892738116982094799433811433128101257668634769325683861470504196735516531611752613141899812783095887013549689643716580507770889834728089955371724786361404661282145748969430767719851478947918682720570816210589734428081863395136946804765690657089293120961560181386271533346198866902292134520275572681788783990611538413727741668616201902532977155088818104870982863352670254773306316298630533454937239136562945241450016412594544266466470667833359162008080398247924792007488183173238195240415926495526119735229967151636211512994442823661202502789467410747673298716941303002020535626148795599697786644659842753931802015231185139809258411244841908660763869289942698848569800644843068227249114220160745019227086931525628023850094658098747545079486074345913437183159400358671335211310924252508599996977754722710587502912334805826100004339387850648724457747551005445010995096541171363742031957561043008108461795695981831346713301486066786326306411231402455841961526346215129213243010598539534440010106623922222448319029274188699190399563230258544380426629789724528682199787904240746140844971198715323313874400817702293537673872562620422163377266162735549530018784539550998853975447676408332439017664699658304618018262312846252828347204974802354952991969187998699339578415763897555043869781117574883778000216856969743679414782808924554714799133456641440175986725647643877030682470470776258707081290900289094426732245718093623446840670688526793559806385202544729881684312393308304009527747888310593441579353249261623797613952952160202582478288973366321765939945878712744684909123110484887885494788959493699935246498751956812463750957764768493652887095777591386819683542941138883559706258606186609514486548930128381547230785994353431235061566257021101761330406100193855661821147155662878972738873141810085055521313770678693162386068576989858850560596851941514315759618316089169539806126869990117841363011332670261097825790939168380412421146003292940968341689664347703733720966071588787344750591152610581227935080730982878766133745183686390456701487729040920747231748104842220917353224330185217020918806739579591941848629432711151928740139539538836491082121380796143766727077726566578454438239532357409639238301191617393230702853973761408404427982707020480257774765836402655248299653518835824010361007305159958782945972405453057214983276685293507765775046659169096095227008182457774469063530045543943329013648370997600340710474152251631910152787102126219871979408649294173748895506352426267257695189862608098659815027366781667617187312982926732957342746152425721774979549282941060296144304293134849235422447101553009278158179563103847624874963948753226590624715912309631221225322760342917866830007711374294227376577976686465950108757799362833871066016852936730561856133108446547228006724548564451620691813149305445467384277802035213693287988660234770101266859791417008547332211849576361738479733040393424926114135667079045039222928624792550847486838557578877695262066696190352225026469345089849057386024826077973349081774190856877137584816545920805147629744192890010064554869122608314414642551870903498916003674596558626482489714686319322433882348026053935581415390748453956759126011328579804044615580518938463812676250421201311191574642449624903819866529598174483794067090355492120634544684341037547248151559845924234284534722195895155178790286752266545145138011127741732859041673957217023606027563515284432335013920719978165980961863627656510711121452423156358561811650812446617664792249019846733718550899367709310663874665979763379994726857909063350884659253891210806740744874581757615309906800532039696848210636221245124399234843639166756783986234159327429163114865577010960332824672344374019724836790398150393511550630769832283060376217329452561480446976782657733585515587448974941164926385392717038195432508956984942011140059260866804691319137855424300995988627717671447347178187341100261212665642099379077972762916814019972303238605303237429325249218978706455564997516475694720618617313879945639718522389419188241070135172148435230045287166126222706252898788395914934679578357314656912311410472323079632175100887056269882717766924605039816870902347399012454079460695780919371009303561040004959474777054359198710664483961281107717109126404722394291411162245667295456612128846290881047863383494461405177266543503543184120318802777178333876614111382937114911211749546463346830413993059958389670748439637387371179485532382778555801222273442815111203995906920349193194585051891348278383975336267916467311013819006859423532888242118144903846382503636776170784296092330668115922415766819688244693388311529337362010053716103150378554868181748782256804196221445364805081091085127918980463831931265612200088567064097375921696969250164915274271631628180058830209224918059242930821247427846736262516055221147088952400923172025362300837949741337926944618047188659308211952345312590379327160718260211672079921593769056487259239961645119902978431579670003055955570526281533128804063149234272172486185308126544265942202288219042136522828077118908017911006086680258797182363103605401314528355505140029166268388622276951729256090522458976725732491868635192016963851624813898341351400802585292227131076902535785774673204500833325502557043272704960898408424306528630819328393739053538978205626271758879408503441822273012480153303208228491653428163575337764480804630347148391012418430692267916428700164112464396374248418976933204903080357028528457297018703234865052195318466821528618194613261955554612716069065070757411906102281417168879583021697079140950890262351537836531240706819827550621601181952801218776411325504001775748105544908618154048176206749926168512295662222499569180744811637285099897480717851038855776871238207639522868711762037576252463519857066865348963933435499634378739484388179170990099031201285190336516313434537934823311169403189031667636526782766062095795333474861288133864323091684172149383511461327605539711785714088465034201650525006925507373145569022826244174370062137859412829613208047046978483664287786223729919719078383590922032323172828818278859904130872063075823441894969909428521035457912771874219988250594300080802714918794468658906305559683340974806075523327012266493515186979338455530191451684987775448832602710248956426659447338491691403690300080234762494664831523933642926115094326575468602670176649581167714462693053706571673975003548484066429482845382634490703838629638713124948603109358457923300360018485495791169984052657775798333538024885744185200651372036700205041435543365949893874211901654595998121897272391841499210862707299228312457502708167064005434798454904090321525054743033507068479428264415943822932172947369223227068927112852819176506099460856419767002124232347273063839795143357118696088778199650708247348534689776841834636210413537348091148270616618574958559775971060656064625835301941844827293820681890819198239522850994235300057061161775954311560261888964682687656233154181728703105299606004703015657923067420591947673835824861004276084801706334298001231632582790749250732395264183263442087405617071943854861621055274958901775320011659110356940071790739151591895921815142938637132654678852174969321950112377148461342433650803822748327012298705785089391188564387984484238479225015648022030775387816852549486619254279912544376553233174061529602367478128877265132582301602394179587850054641211709678281495110282302103071441053133528088815414643276460051081166223683538652845968731591377462027718406731241895342472664201204846788254473346245243427563545397847285019281714081663376011521487987233159648496293730335517141430719018950425035247551477636502043756239104425867021886068132961421659090825605457063332539713353986178608045841963133575929670047165009804645190495365218151708889611757874056321107069206341013981394590844102980052806307247216985763791670162587895428357819781188077213314524932800659761801617162682166430195547330478183397406650719213404165090056604849648549670654314357604114598636775485954630896544048652011473810784897461709427989892377856262548358230775630633775952943710612374757917863672758203469881748617832456753383970209201819522987718399155361643118054992870874443727006626443960193804287977990217556810900785872983900650059739626249726991759343624888616596267068619062171077154139166406936824844676515495316988495408577245666312106320403239252443784905744460891967449548782539268387477594448216450848429088285764324086759075163839897383640258309611780047501897629881065040696749067378003031837489994829434720315354692470988900935695793885552538495388057436598253546320250451590168750559849724633946920415354245061502941326379131404375387678868755849696267434990240182098450773256943609383706883745923004007414782603079464492564185478968178997189909167262996344562028315566749578089883754898441273515340507443937659362472421120282803582996755288805495273816147605291891191715326810576399424948048953299107792099634632510430973591045326582780195020261059450982878702541404134188254889515088172797798953714601627052981612456467707135164876923730219506896240261800317010178926817911491263012550776625767927426084603215929270636904481807878739625397445643572351982104068052083842853977823328631091359538842141552209717228326025960261463952143113807780714750948139341797772296605216009624562503540132374056138278269147556452349945917712510061228041431782793771356452339936541465902100353869808640397481683373290837593217195588858833880445634350039593110416190116436298581386694910062926609676434221740470600917353395144395520863570439627582311613557444537523599366444297912046950969972189684672042345842413890699645046625814169937880578080780627691260709452515367543134708047193168609920229665994336289579938703820989970370474664136332096413487739963154411891526093644490892074206388028989866241505236056324638808574202543555728332480863839313269034967453845598051373850400632571243332438090746448137353150753279427554512673958352775717333964197457639243939149026833164010774084453914184297845406334312818606590562157655933533268969984090174712738979830766874368550008559124868025466243531322767208829520095836027371484192209095972166016491622618663936877271190995045042107325741635141294711969710832645343549983485019611509022737275513172095411028572737210137784528971558366694669365315844533834157220233007301021402673502328081708562638272137367095198254724524345592686807762974742477904114028166886038248190049592623027856329795351573778287836558242178650961216621495317943999660405854385801270285039532402126455633912455328251623483280162834570622021195014759788107812780132562114329918293202281697640210758249133716025735231714289750317627670715486881646533677655313713103977682830503403114161891602427496917370792721427728147891471675709361749861794304486529046461837180935857740183834654135908277478687224715636854951816610777872194200873843875489239134303162167431469041813268518503902414805363885264513517352414572620578507357329029933734041724867745814195542319223086862947645600325792267361385200233791371461339484718975460985020325745793133107267609365123876151236301715120895588794750293910083268208515336596204031472802212102430737218185561389016989656577985076587187109073039687237532337407435040204028907058180647212228796035459120665213692188938591781132832299546870206719179071657504791510070874565609298464764794089490109862767324567991876805880129444703426989992883418419003531970602694501215225444084332641115618031071217682617282419539203893371862863336627616581681901756225194663555208275739684714295933126117795824290215550227825597102776776451203324815237364356229167623528602510814887984074283091078875407453799693294352531887339320488397492756811534909929553438257802132662799452531629880941566539542779305013879246643195294620043988792035509774809262891693421105000847201562824390550533704587772629310173000846289556056023330690475635586799616041422562949146942793046014056060679940644370543130750992662842715252331309774237203836158631882400103472319742868457969329368477680503731721868633811208004739943256057727106652773469543949758055195587994334894975513243950406117624295892261997372194290763953469042155802467748970555111277291763712165130960192908898242704126711574902474256524680885567937267237016960747598961313983662058025216275211494756187115258852435579400845983461868915319696917168095904494210977690083034159428192623919093283325083508049046268755413069342868490430786519714948999974029169444489101437953010088448554302264829616433312101005946046854798643743109419272411424444597927076466310150703200219265171173442376132758268096954420894719219722546799550493681784131318925226762985375396446937940538932736219706335055053995107426794852251887960341327491724853067147466053774863984071157943818820122762731085448736365833903821633132311282495042337049820939711268224081692744071006217925897044891695901971417991548499697635391074043450974432391026537069547939531463864702211836875227149356281680653205121041454695459814977439814957523979474112327637103478732225934232385365882811559343822595699080647583833983139978608826211397069108607168621925035359095928801167441060890212896130595367583425148235150314507337784887842125900086607575879154492457002853191790901853883632577775604077087506864508275371902517039798307653863867606491048153039679257951428857996945657381327769131229792442695043985958984710915971769260775323006564958546906319274985169258666465746137327857864499757572331249069281331092436271224725529350500538339510799698090246744381464352771372952264549150582384170798166256256722429920378229027913507360359011877659126654637866330295721340939411252995860226624585697389853428270038575397948274058195292054741668067612714381076565489424548355878477423596998560401112587699596389577578409127825796992681192264531894459622296402069698405372288835540655434016988865058574343272616075575514498553018082074154563145721213009080453178828276259335819197665453238816326869467825888295143525667941803938671116336192139088541768605449199794302628631383705497956029128514771858790425153244402165531055408472340235933350795772297691559897326382865251218858923097240803891598949835725234260231228229094253584570949479631634948907756031012608321330826090094776416318813629229125874203502445041085997706550879094502708524310193856841328504742910157759495983337683120529061661973141428973863157972665211130689820929306385984527085751442172580116384290244599095517383790184791525880566040909529314090380698519661028694379356178571468937513089848887403418230122627445499135237807992915875619487379272432269404278297566991368090288082653043862094381447488574610496617843708886668450046918596741611088735281606636729140137280262587898503056332291811357749314356052108047859856141737063684870678052442077745783746473315329803972465787722889057502948426838092112795718885176177322582237217334742405863457773170749044407208824801565071425474885056226814738492586979747435326576311686424695127361041720774529280606833626454244429840358703423008699149044743803330354563070636916809176799132180227000257555354455425731732095118604713166145610442252826862386074158330368285246366036534386582237281106899111703016185438835515536358114830241627032488852368102336998445048307310845475282808106815299030631971504348068299600584776689939365067242686764080786167337818337118228077233639673775255031702161516715269103470710082081002921003905993593440178337176324380573727024342748253277385501996875772224501470789439162878527693575109455591749678904583370627137472882858015523023461074187950983133805674387857011876700199920604901778154700939607614100016047140375865674557629365951867989023033536308618313283358376894451514860044223490251102813540197823061488693327830363490169292853218702578735576113222649216993831638359126930732413668884838109811873773502667917808169250743920096431277115760413975822690569009333307698769758968820436781446013155360342112675782392783738649763252659384956977648647176908798108472792847672956344887207067999576164923540705659696442911381851764158066536651930965890913320942769537690816699498781351040389422888798861547862356480694463374579870452606283828282077252330107038036219757015773881555325558342689100279648736633341371535307610258110704525840219419722644726746387700480901562806594202401734297048463010128231758067865112373052502821980882384107667268529889231163159831812769332756012996473237433222311967965849627798876131378173232598295611151311535676629003306531829460494590744938985135559976477546277953155211254161380737089419277577508193647735140987191387957872213592876616544229258488663292157917246453953173293769854934419685210696285859263626719232554304008499724628019559272880598619027606164346435809491537696058957828692649497095267533804513185847608175461943188143058158296029631231377617312163896381789851524311355756719884063424518707057281278384871332773469999459358024398789675711225264131232172793907291391200198352812062216717996303158376088635977937599954310870972829116603905404168547014967847346409545400433589822607836077458568241803924988439348233325866439925042783812551491410466263012183229634957976177332011078276943512134966572828380653439841975700401670537862952887168242593265452727985765485227981375803840266475198047464137404591473710938832015368600365072366021627420220188274331711366571389550621838046268820818332381289315097048676739915309011362093791858797273118079770589602236616315411325107806092585231978333352662617614735955235735351098701255157443850150614746878385541824985088249750136230876947882027131507054579438717632609977768597720439340023388080457613587600758247092725798731413986040027867326794279104080364971717141421850777459671600900394420108419186703863471517520616356931882970557261634976147958321686475612593812336249970684022846914240777256781150364166516282229803933674411170556727544964583351658688248698367945090989510979639535952090959823897439575227521394666879085008530286960299138784382989739114107707377015700795507825303256277545853702409701638072931514961931654049693237095845871718478542324313669656722067652516237413795260238019776391029953596089585358258394238390512819040784704208738847351717483923336335131149478315249305268824118737989786349873104116342189245195446839615615365981586290573851704836622356290938223986834329512660977998296798891823327498528192127897211768187856328931234983428333881793382063485251792179701306865962510890383345657412997410300314183352306149887592002463174961316375692008602574531200207737376364822815278158496791965413730338782329841218335593191990575025808064515048142052313262277520702548167627890274253767595515865292047023328253219163063141914640801497040951872061712393633897650374527694015469997768620121670839852255104751889175465069412431255929227417837867404367691303780959316775772945735570486567624857496599217957031966443356700263129744692196622095228361399803955365697818642330259668457988805709819136850799181170004411373973696195813305741066785224013149516245058953049392422673599495271199860035606045571837941644278370741187573104360782324131818640274407698989273411048435677438233502397418616941764925717020751758581905397481814576769620321229121308564951929284035792777610663479723252237183528301489758395060699503347787243033614167585357432361734208149123879677550862950463669659412803319228961403836271571430559977934336455018354368046291069323192147186480777215726343654835569360021408031119804098275650247829418669050146782672569106339275917168736330922314947551170354344282181123042219883816113688589240670939782440212592367965932634447223201968689699497179580921765128107361450462771301227650662628648532152071388023137710127724994520728307524405402668605614907814864472990505723798247641598267321327233579401099675196572483803516168883428651887774696459052879091673328618793432250289038850210835393537350473598541931983882305456428276067313796247747166232193963234827001530990901937065449608003546936882154880611741883892022126021153676640415018720941861475633480878236414062936196916053904449839712211178144037729741685056168547105128146417216029829844299035770802947755098785604441412483284767633488908126284885575590145609326996635081505457113953102714781478766541059859947767036262254710254455265949250686567033083258484306881321079768937418972933067522117144255269674083067041427517452146476183510419810144796391663994273991351551999701116303563666987136334466719133813288973280253769154774547608488230590900189531809075393032950085501444561137441051734967803845086873169605258842812143111495772698004162242625805537491785186693347580686130462141960182190577836519493645893738219430398779791204907465880797380134113982326367580888367408476742149972395885020653152883072302873416568016922179196491521188549231727127429329957026325931441381093330273001854411053617758450263385905058137906072772077668903127215529322649350151426560382780346537947201845956958189576223496920823022448095801252364526838003794021364180122673763561257984709704841876853205184697224071336549080463474586277509193509737083257962646529243358788280711712225487713212372157869533225327729139159007173601849285692408988336711638429491590332406964773908507168452219055301915539083191264091509341628348136302566250773067482320245018681887819613774988303639170634701315857722284831113762899025572506274116209549179498403301565814715426301951073025835956230169084181718045506430581003507469233152468832308060500903546802962458158816692536764234569148039692430881658264929032726666658134840329327416294952741706863893215600538596750632180425762502056121659483522188670115294401243983763864430215725553878025822838170628140499565021654362254983987196020007107555931968282579335444325279210950209028069396739793361444967342145360047912340050758039420181957488497477679520454075646590416127817038243820843786186375407202914504231025435193235005179953512659721172766749400098115543135464382429060905551568489254777839558981626402785855702445893077457903773576246983595404517554484430803774724311755532418724420130776150990721129666618922661765718620597129544490279438504127265065734036697388614792835275903343045574999567060108577770299868845743626234336847878668499893032707874856970692170022017438935218784448413206820658030853991091411529836791040211557346957578838184838684595022850473008352129833796463081939925721505811918183258776275628509221625224318545202937164231367629612133359404548098177618965840578382679038823445280347988598847090569314873010758553476358572859181240702229362368402895394575142057958716468012040169547041580202734609800168494702698687906651148051517335579642410513060232255812183853285840239998079768922237923679663737187131087272395183833377992168007450192444617276806588200763885842984393603325601926710874520587541149041207347251017200998712234448897453337945600727937596787580292331884379070916242429143933976485007565146820713305711125982881908838845366377490199930204883355178402279016350543416981793816001703533048343357170584135579818236168310630860215504943032407190395096622074908422594009356416564185651757623100481940298821903192295756020603972555390841558577198257805635655094684761995966535325013677505436676924529457981633520819985833710553255838696272027293627310925835069389528588482825864416303800230733910910040094044838194853169919284210396739725708849457180544327763004873256853514900467828963980115229576922951904500859244805430027003166159726357536104287714448702692262387217179158911766180836287311215638585076369269689739251462694733938338981856493058251755133077403636795589492426565502140278584788306130948773293889010124611468242015377470531189865355441528354914742806942629616573603386185671686645501336463868216797818734244905775770607181962407831756730171148308333824583645419254022264605806742035371825160068575029853284244700711045816655445916700194849207867302846204276713970351240348006405615562363882078221162443198905666189998473857903543731562163305523304276514510885717956397490251541734917813938137098571630475453607846153724588783589781091395256116189551950962905120656351998286025463691897053893639044819974374996710230347994505102608628020642374023260580520467567580797149215386449776694472620958557599331523952144908414067706310397789159738173143180733589738529502234608566161533985954521000497865024310974757599292756314153380150816818386593930070461384142930131591650947747380477307820778251200618466086570942123527094660131418411441054587793806567724110330602437919641049648945191072811199576375959253924469965439503211727626310173168985332770038715204413294882301521039987541712911111372080810987941129205917512311719760769668628339038171005317022501709970820161072530344006468488686783601688982300981000979857084384405309414750847510099634071744945536569625757518021009941379123834832071143152554296023193945658704446337561513393093261684900613097071264033985400677439323146184990039212908022816513960459018830054589320015530452817236679702499231121110586505836700337671254470847775762298101607641169467947296438866104916494231697441537045489001381095219363681695124471029532064305717289243491419374473238748153209728820632457529582903472619687852524843666724175322486976063876974718809221035857268020308659893757336481865119879854109807645373722138312878987196232643221158896186082327395806100073890432474078283902714553630050753991540098619677425371914128390482998940235910527568738573559389274346039335688156318408744894957852950748852121449828160804250559423772692927138101652795971212668210194019713795537138626716136528329026167906948168039723220858954653518110413465674050389168638591206956781988730265590375640607016564859585169021743378066581105731312090171771920576483606871030593750407621647031468125851587026627136078690995918354418015374696219383542623079547387971486963493471191407411493712545404801971055323917635775520041342629616375392683197892402461454493969273438938475925825258535990349414964037790960503777851131902073156044990252857249011205367179644126591428747283566637957170338293281315187114198771259195570679889724041085732049794288235397863567330043886074452016765441253034489414630062708399409949207294785103733875444147214731064323054885683180207803032685582610219954757008268539902366743196796626819006097196560298305073998759501651037147225158744136609017195117607825980956247258393309880702594303928928744847132907231068848001265521598334858443867147690025035852937612252039097677335056740955084176568373619787396018446071013785520390691244450636768388997376347489597406184981480422596952309451930311391332711935576143755612818235514831175327377662899264944690838574683930628972315429161818564664084831454088955447685030548936582900784000705002436985737970878889150498667828337876046779221122342444237139981031407235129967911851584128718793067094695853997357667857732050798732632523318545297990058473631921791538332398043680481883935708049057547966007185184732174470106357285465750399887171012813649948323023523020085904939056792336287801540821811606424253151580184632778533332680288557559573511424178309876728096834009916743012904812880935560405570257250918230109178923970250656889660961696628005422629400533473718726809529060767982743493355845707528118618654369883276662242960782439868684363922898034293314725940398726778166953242666317202919332838572684690829618813336805112713259620281803307935753706265184087211557934388968471992716372048177155030076049524299009014105687074007602077328653037440691360000298692334640840887651964013399609377388942591509778457759716903166235781283803575784144208865209647408561685012891393808687150361441559106518253420518112048970599954707518706457345564310464794079314835860054509972100919178793498016832685072044594257848565959980623155375888638895644798411854917757897446765744550569843665909025291809275162799509912012880650903159322436305350663993678421138919315169727780499237829590346199129803737255937802413201288191839011762188220161463070317989305805440400017294116963188285207598433255558579210016117910315459481521732407427895816777109591623902214505172123005210831685240125743064934459505551162413646527807904850201708348449746642396428400089650730948549607738231005836495485264033115799116833129924861923955552176935522129961228171435919601181119562138641881760477512927451872540490303891362716204007601650915702715189818501022037319225210907163102778152181209016379128060928652046423089391907996176115081898444514461203158308145371082881151249202483451757960650611125997300740713564390749244207514986634253918825816178302614351010837083724915741187945784993580095268176878327412681612715406301629847466637559593142000317310838263474842285771444252593940233285956979644266456608380643983155891416874890246165808578136865698365261972255871272542329598041137180667685725605170259400161645410000578546967670762214127932711590315712522976372928510969534755881938573248560499374119095545643832478060822503524370398286610160965068694651757381181548730611644216330034337359668740844739127271015238662242706301986622598886011240693950961342288466499254746363473182347745789615017642806169657677842097414902977966306469317629973887403431254774661032815163382482709337446086817399595623906747433751414401879302537737253911575290174133369993965937227463933164383493510204019434356011777151372714104972795997315994787720502783735563546358277893973101708455030222991501442404941524826076126796771500431184698058512390629883481767735981255800922637145837978738188169297653938726952450448210298055950351849896297656899187588190510358036319354251725892891043185121411695424196786730271534350734121832513490698719481111271182396756682341446889537485868825106222988524672880449071736011738475960730307687565047446871622615976246600845109423261962919819096067723160786350916665720000955403128074225472437415850638212932370368716964063519473971615503725647233383408338729021090111809426415947401245669069494220455331947951073656914843089571584401534986801052039635554736581252520803793441741991911559437820167280007938811256274636436117713813604421223667575813300007533300682218697465113138338960097921277330186531680697662599335213170509133414367590819982059616684236324159364927898844937729834684598833478215128218899704028089808832695336781075016903572059977879901100875136504070873959175213181244287993331381565746098918246358411822506330933357969695851352778832771812006400484234302967216673842281290343739097819122818206763299158124216460330071773365401106249742879517352372519622080281493531202010458752231963849438860560416970750196857413460613602733685232245650971820918409736007351716466529673816532603289180884500011102369317518540070783771948920907131863068056771743681219492828170513422786444414765800797755942560511977435764131126775965400409894033454539887441327254632162330866214123125902001489312297361992902300855744416826518784443345368917211526802423942396332641044059407878842684535100387631714102036507921371510427389470338728957302594729226326431413990438146993997871094939734141548217276313558999163960120549896975018375208600782992693168076070086935204411771183871466734017030128719637175152801281293187066160859826418972677625588888492907773809531096818596321490735573327010687165351312042118061790541007327685216360695607070941636550337967423078452256007079463390343929363010809407571262395371229679699961841763928528271521666002133231155999648072826428545949968289524104117433453307405939178003225538267461222080282683399426347285335098843973778022759817023901026160097206429525992797480769020245948979490416933077831977521718978005363242295818290795182711279409117796960057261194289268726031947633178631979474239682124420939466998299805541240890320976614308112768110182569506833122561912364436066737151681177604399491010664960711538335201284779690320105476853829736609698049601564740009749039958208599567253814094148176021932277201743044138354257917956309376049601104496799115328048430942465025609495804853415263489595782108164892608531633723355680779487821029255865180862261462680277686448997159691783438802648854504308156907974089412337626186483412387612847787024916291699877625541001950821716099198440616182625845917741782197526013064845269052997103509883960594272734301807963868383201065568069441930029430195571274072063405456486465587877859463100506857109394560602450569800961660583274989644564364861083921433358816575079257633560060412367988504740003548077221227208597283592000246279627912261955560102023757755076869323916599296134205173159404343332177565329969721182244923851737942036863690835534053610029862470818250464604199109129685326046573160224974852599004443904379913616304607690389696984047417807544533548585468796230809495669910274153225135128302364393789575877274350091728825195081703514555506298475279550537934563282656588986848674818359578149574013510286089172609302177894589698052152887942841104051319191472128361154792052138129083214585195175038648937260995195492277057899510354057478681133941148825866170509365957044553359466971720538562146379020285479198229487047405612907110871805980407689443789945373885127336827142188801817152877550570133159699426871997836200092975270271523958903643997309749608214365725555372325534222146179478026052336896093649385020812183153634176214585921728894970671332687589867540144528495309527941185858618873818234392694257697192975690380872033237209926642340014947129186243274438100857782371088766612880158725562875467641175022128387273552462648538258914944830960953150852226899061167114236428097205399613629869030717915579304738706332832582835009388143163630179133224314581099495491792940515162267613254786704991485414876912087242864542383534952097553520397976511286379587761994609611410789928488842892377620899382898348437229188761870408746567869605441934421633743307017218910984325971271729973081629007801484933281304216802625970223629524595674344146053235536436055675160420833532193886208554950112888334214951951203728485550720376732354504466429473985079540500719950272935459503735656542804392791019283675421243286737498401421357487944580427818208992658197226336875052187804557966842093383764515571555186779498397043173258936794853249304967930664414938922133948679571376380362299690658056504672111026803663802554385685164181489345614629419946150148259139297780921314949333478619531114799349349160470267984925409326330154636858143218290235236253341184973961232554924200863215001542335115146603582709762698377030484964340704232568001079991783467518437094254292985033824077078970915515517772061149586248001613096558514239167332445054115926523118778737686536813287229071943790773663615731555373369361827226176519130846315975973572288334270335523687738607389579306331329543643057848310261998920575869333275985138466927987591299593937741968023789044478085575735909950778919583258666916091705082202986604457075315786425168713868246414464763641706068354314100116342554788655554661614016225050282237463620001167436726770876214545544152867834937697386095355306628417453767271343815982406661979375914674773449154921798983570853654505831894585453193919910558138784532151082125281870824029725960185315774218575587986143290797523394986077957518015440325376878676083833525755291831358765504356709447708370914347806845092819841803835362687498715174955603188948279977884973557160022366509186628628018954774889026368280215033272605942146119538383673149991819276813158915717128467907062547435274293669254371078269882391225531357987691763143630046413896184824136824049366489384236367809595755006000732700390306328762230768602709702494747051744399109718470148281273321991338576093503092628371242063543560467726655171273776257466489561292114713528239463704080710683388074984052334185233760500500290597570833692370643932444287724910738392036205077626236644567839400259820428282887027732840529731050864390058655818401907646242711519002501388135469298746864733780479488889172150970519214831493857767735512296764677872422487440761527975470858550546528290394200674471461292053438341223660322877138407553929862943634305843214527470588450820823385433650498374418234331385249185092196583502820161042619045092574821677165571326578068113056437083124667393905703072442255498234334324797946282582020410166971443334385532778284823682090017695444849281785495753029347618169764098832276610447267417781322785360959244028411113406519588366507703274306023946005555155467959817645074424703869000043891531768297367744406634654203143901130379170501077134739277740935016502801110241372737338943714630490532541264126243820308252871316048807124159244274182231928285574682032728829482657132766080791701393339482392982256338085263460962694680701645149601559929228043850180767349694436447562421841956107954476090125467913749164621626633962644383364281567718817111994782516891776710804479059962350591943177614499416067080352988155524921576245606044423524634412766232473914158278465576315150693391506977378060776157073928178620255403596424827697188730632834396245308267539427905265015859295887565269251929563964564406543849109246749313572459491733229278329211181494436906985067806893013334275686956864108676160483258234338638719334710802822150394365557676080309302208207304353210939911989738684023277181880030764693922407237589372870387347994510525403747274123795716401735145164008697766831247010600390936042662871543185965766756259524392521068522744272499042383679874580115954887876354274438421438568803449920973737084799833132683348536757790957202080979981673674708284116769795075033474531219465387136736255033887193831594936613360183335353769628456537451867202106586880685561373168099114517396851773798107373889657147130191745262906963534335059126397887704457790970518328913722922394286543635782200959114655704309013161329150878870993620751298907914318960842655571783243911041797452196459405545755693726722162875704443896570644417170860096364849972527597045135323375741035906804511009341061513242287621922367253056027456165384575047676246798158611257549228463740083850917020785346751366570186499795133721800383315803747714193782559462892212332948907808008815082756045719792779234345318472761543410904246319034333709235154433235223880625236869538596843849324767837598569946862974967950789702207803271354433427177638058411843180315857259644623890430007358062773667690393073174205775129513865618392544836461221797659412964546380264647995358197821805521218790648451080609328281697325068765670929169729417856896053871106141455668483556185299231667060746728555645759330944660865703870880625576803516290665669060702215582406135792979655008112257267730851950839707606112021987523436497377079013801571869987004721424258098849483582024860945701247440757634914622787145771509230248975245269129172522813186219680255165679220894426252918378570763367960262298118801185787619235644316110328634144042317359062198375217236448592099473469783466450362979786084018593180784004434696073459380791267560859761375281847392917103930443905648727417460085469416675402350175169229913635584763500694574860655686599228707995682018615183549497161546785931929347591953384709697922695138591522635263280241788250002023732082137416651417162243381559256560136344246183512076210326117567341500499449383351232023681644744430705875799776007132402343587119247838855106045601867616382560250460874323004218860991994098182096706038914808839385799499514715761592477744830422266180260982405757136796984622240103219027949049406495003009657061989868587110570432422362692549756577669661417925102134963934005521616076474652817040470878066652676127391767495610949928261882179171382458914521495365737477740669181462723906362392515915050430941272632731739609611902162597113114509930426993710612663009059765705702206210461164313068535987979932075721016179486486436507434013332715538862987711341833589765627636944675747716389418879004906942727661610493364839224207977316156209404673709063225713019655609586406327525218366426440301656875964964072559294050866640824449928452994012496926573436012523397360082186379466554180818863798570587512206736323180759266240210199344975067373682500932577198364697414588499922020790805087602805732187598551973248806183049013743421796645055364847731761452735329718541532093960074691105249548620035939912948391928432471434717014585414269005640115302450893372218828399082111321966870864315203812644830527621658198292905596180074255200391009513421166384523726644458544396160685546434125632982676898737016803671502098785218616635819760505151373120420621927934799114041404539309328365228513106774670448623255825417868346347031264538488583338168303271354411373645798788009351322916631932765232663468070787099667800262865675380237005730542361246440356916759879256649465691167333733754670340832250466366707270734946814826645116074902797631883476748943420108920291634058027249099378547004581675578351024477803722401938181969769808420957282747788646207096440477825371816197954226000385022111644924726189323751182936845821055626834376987080870445132183676065557996958397131429999190835662958846094277521801841485888403599620100880865092170295435069793107606891382465346002108287524749704746538052919696387921556166874265977787711739567848385539539153521213682729484142514389827953373624585827602097785461995196010755693531379877228793062738233789170153983424290452018187972433612861923266567996161517138209410193928349509102140778356419136575988576703150639943131671696329858758215043290814275767469199359863863691136402994436794830934140233171739796612074547146667899631959885420935018082492085197495627741226394127744707339655201897875727248172240011805944331412558518115712358765158557850316171880334378191476604073586340439204706536135561330596533065008322164517143559996401343446701643361226455797437215705896036213623495262597714546327069496809794750624707000346462394808625515691791040742452104600644514922500410931480969395551390162936969315484742901145947413353889122018688667050660616297428665038769711766555800121712816040808336305662955425285073719591010664907408956289534185938822165016908557667254436751416580811540029475188458436787478854743146842604794202771810305010993084830589363769297291982246715110578498207520854200350064946548449858698861796525747966674245500207613904622891882421787568107705619892195668208966164112270894426103667249926552695412310057251440481138646845434865850188638914389705030035184531975233305326418258929737010878126038051302485941427035254556382536892034144220438029612615525313005096949061544673143695060187736507606882120843360079863656930960623449715848344536522177796731689652073715391852723689444165491121108519210294988654837146600833243379071508644652181592226283351071639558784345886174611308897072516265669678045226196403497807817861547556313668805766801895812588805499223108571987567074802816557784550752357578713334553573423433828295479757075869977045940357960518819463862704000259560595629779628059343163545298225547650953270181739600176936547751472496005267558955485978161067182683712337294685343713743944013438646092721826395359331359860246460225220893911055764142971991339593607921213653575754001846716814044231854678967013875526550814784350241173170647318076211966749628007610908588404562419393444383171465415612232186227256682106380113481403968941263899636100204983474302870012125366738474378924519935181056039746125913118620875470716158698563907208883048216503620795740976460692484901417483919634491042221978023836139715873176815768265466412145921447929835715706007981992866458919314977528917434739029718428988935387155951761466952646948271075268612989819177632398712408306321798315994380473632747325762691548085266413295307409857160806666997489881647246803918323975788278416523319245073000163924177647205951330790075054776644586401616113300093350685608997385222126916145891160984899716796777700547729850913733084193755123825758291857577634359763594625181264702994114921447494452823929044735169137347120352417523134525178084465398675884170620786002483463825578384950488121459933341493084925219916512053409966184849527875433753631601100781173094471987241890641607907629455519160994351805294189130657725962467574600676452907789395380147423720572496849963448062282713744268630026490369552614200610076353446005713819416334616403429740707548804011423905041217331559572524929331839528717210954924955951248201262105671251405781179202635954029889027740552703864218084845679312953509557743350751614719182129931899248023363589313649234700099056380304047677644317305159727414572641718544795852318525076908089757150441464752733763253293299897029750358334297560764036861335423477912641637534732478307597689586288083722234543327754421332200310659438311981726009114688574172426429598639394196151531112663224160987839549406295081118534542912795550212441099983032960032379448494341597573295590596894244523670254798475142572992297029685993616699158171769214171453277165606896736062910021259195977217056194092440007835801167873049812406823416219936212377117386677785572635729520247085874389662999589177043244514461420557095750058573021773697290905174669837507709586327434413935162108699448092435702400166807193483220338739771308419636227412689647687486356075746153144498162651915780234875067727025855284034233338245696545173950227931627008288155707250631560862238624086489662831566594052646103364155504312505241225761773970005164219701259947957089625487424606531731293846166624983040282441052686790426166317847273858464090680327771957974784719613035473035895785103401567933536175055502107372575895109400761520698554932097240308919619125413768569426743451165554809045400188074070278587672004835461151580990138364602798835080548639478023955337064097020863064354978862935672229291494443853917779592379823174927612264158847520981060350911613995011125973989083630245259338068496265513677107472675819882483067509803202910650903341595907042988611592526066246942474876436541831496289731143566984100683943105126195358095664621260401619530439306612828423555303596701982387050912323614399963626786794860300827026937954558855619050339682166554421886961410328382330356703570397134791405276171279399149661443263918609596835091398506705089620470994701106912539888645996650773743564516690250417033061875359593860446546572627366329945417989618487043109574087119324432331642204683959145987586406658274195176912094085011532503867235632196393810740866358004352241026329453489787016737562786797121328095752408060128255918303154570928577751602927364492693870833118027996540306811719374963937267379970537402108422652769991312317048883796600066148907863189302367308016733186263460944113559197354637334164146442850404943343760697436741912417387447972893923664723637943333728424782517236720730302022706201958200298812330254397181620331769560143864903248514463945403052069898456391385056005896526848779034088081125030579948539952381826789263237975852299736483591032731410993511472673969114397257747690030360759495042019591362229056823000655529437928727376724963263427443181426336183756920651184376464586044233353325416311537730335819937523178819641601695515511543591658089120841976796889805009017379553951898260480376395219086737213658847215957262834257170249760383077709430843937456294630358448710423194359427477104727295719281971508010149267302004422448101363484646187537115222133994371252423708455960613854798575483744546997817347820670703267142325231870094888110338385255469058723132513910171689388680319047694445275584983797512184271675448923152261419193975268626726273163547873910979641612110522831634549603442603500163560916700447019633432915530406903410589948064940054604666646928406179763921792494516568487577509599872191155795721720948212696269255583418006360920696997897467743961863901409338893136562547690652888267030322952983129958357429834187968267178592787043160100504970157767941628339760776368689188165815438695415521589275290403979861702164444884160957513364469376785541082560523910670823858284160452515829457101059155306061493375349017562294790635196393783104080434219574037823227244398946805627386218218048240977793233660230124387035014998737014461470879519937603365197495327788644119354093239645706397125927226238046413393862269341183775306943142529886976484250200365027807694856981541289207896681442782112223670292865303874857301159449656393201692464873268155684939048882535732048620879436875291973545621964409334007351853477959149885695809574153616023558381717104807305450590411722200262598371910397113857081357815390226931224852972838710670627503580783487429204099055464797277874851821474506979334495185573002411312335098499302171772936853461264715720249098182115063694949857841276516402362723147276787113172898719443455541564188108412625027409252450846802805460871576301371105489855079489136207657095646565882600160262177749588800106132416694876281427343361735813091206688571670170532151374342224378707885535792629968728783020320577754520699787905401267927362212506057676694511472643192475296779615787060626107329542964601677712906607590247509902846520872447009684856394931305631463122030711079793120112025360541984342902521898466949624784423692224037746500476506652169578150559832383624684638606559829532404427969087180894021283620087522773961056376362048956959663281727118616312936909950815102564930677062709322909272772475754147637706037110740677654899382934937869174088240599933248129330721593865154098869741301617288702633389861448091423001853342081625170088067230955176342312909127228576854743140714322861359297147596396330313820589014037458070843699413808287676291360274503749415650236574800497283579458150339231698807797794718130583167916338277559977572372249208568957092678760561095062931171794503628211206450192467525964911691998163548552879638110315735435232103395681362828887727776464567837861035544776662501006584608679416310045405051175776012724182572127762321367761737505682209494090661504110373841148537018102058373484764519824939210311294262693292231644329045953497438072949540496227069617085652361189160720975043256050318389061389720242476106112504161496032990358394681563846783849775297041086537205812833123821161839326093363781963956909396049494398271538058771171015489866179000974221840037747599390540685973983459953768019946141440745347164630215138599215810464281607995705508627198452444044654301203909975973493375269698457194959604674195464893364585629956583175141122718728083733016874611265342682963697411922692764838135158505463284179447274038950097418870773251945507440500265464346368003612715932346923784607199842836348033087282268654406837827604261609654090907101535647875195659291816019500008583604657280136625544454831702486640192243828447417500286656155377804429294657784526531077244485410193848906435732016398484092201440368835092170210957185420855534432959253715044830128466036586116778556597723602383288139532622398831113853789486343973366208467242215597027058426668457325377377765682979326220825845771296780154268124175000964626345161081316276361072078651596704660060765553282662757804774161251711969583248419709320340521760711044602472279229235035241402834491963089962000885018207495135866003377239016141295992500733876111666610593599140329040740406544664228046200124017579265648643076599795683035421793241517569430737025230415748717260787003120627080173854711694865708646716936463940217205507102978444374281439813720895165151968319618991938475267641368898554078291969261894883782545072236706994435357876142797042138231520572029871226440271580127016700658517561542010139820495827099952010347108748732475579956566174927101609907784813334809852751976343468392131407196905656833589612057729558492379714762802412624271543475016383442805832421935240806849891740180032191335021235525429259238594736828060683787718227675422988475623129215827336955606094668576008138095532446120982190921021203305596948039128129215342067060235295789134391847237521878040147644438501071160314702380355813887034246812587895622244241153246889368584124837891520918821516880853286846217905624113598324711034340665080184203696571879304012434630668699491022329156740244045212378195017632031090784974411008465331420701536744340987446421417719302759258595928988755591859756105637652596239205292486754955689571637698185875858237175303873456010672261013759349114216646448809233346658230917364423011606646421660468115739432551550651364270818672699250135421029441641441886829162941657221753545865211245240323215236552433505709186070641391772349837182976566910944413087308551707613066618320933536118673984896704564304527306845635385990904226395231955107644164434611814648231522004652128887922480003688292054483142352761996911397195738524685390108414831593910699945651529354293674466220552417988841033848743648020899240240233586344019262143517746135964641208519993037010239521740200005885648936329938792660403569468128892637460782970748881019680653935601977485701582506894262620669129155572382298659630529262035695363761680871135830669820826687827576849993444840543208523534337968093386080553896997863116056451715099412195699680627579429918512559035604647402455274822963378962982129250337876897036946149214693715205347856038512418055308638347732501425440464700945408882941487923698110712648813923534860314947819041702590508630677709204864366599479106900673556031298992672244821368139720521234177213058985438336141077339131954286406384870813853150614554147384140244391743722424041268511085099952754049966214409921710444605956835076227580626460035293076088139515672898879738801059428884388416563703436117764590199707880708543213258016743458324205629366489871173301268813098994845700090282897310032025870412672021182279749127625911155951987594298437684871474119671404485631379182382234195249301367219790482565688221480256295616759929152538954254372590654627412872132185081174382745125761761958217621171406085249894144050211739757683142373553873555384392111156462166399894432821097590744901813514501333198258258752237012882418765569582454429097034092518529356212760844885993667087505054420461876029399325167909579432682174250181595126609118070808297006962018280915203831050803181761265907488771234612945822096649486532203109500606659023467629636697703062615718598055639812027270835550244392882412808887016765114792632465458480388407533061201107193276677847910098768121896646621501074674459152105622552789381500380085609275372512839893889741196183146737245168277534013476043453710957898554163954990201229378261642437630806858278402265865667724092178105953158959933750525237205247016487741331913592848253535050304762504898449395030321234907323016608882077179943754353131846961552074509810571565606259715780326339651138432493670492850697073739414499146721946645237552801040920283504302142506263285347942060587582130032270654251794756196279533771316973483032762447949417075160166716590935809223633210014712839243010794973398018683371819931899584765666196254314602171865136372779316218281852831308587458514445490522985007829790849541635258031614887126040189649897951356318957958027775987321649242370880939052402083737218922565304548596285559503907261175465392650143289918548632157492098423286955290296068891969030552163106472607689442918486275463009717513973283756348108805906991666482840053429291334026621320474031634925459416420907319998295272913944633198657147190493755657092101907335879355963094239575566769199393999076085633076845709733649683690106181250331823120802562520598352924081582486921674499847415943749278152603096625317120952751381158703962779570332275362818329673592761982759046518906475686112775833428899017026803357423993129620826448033131761819869081071124455880094768032446487648967600640660032955276420454313843341364645318379952801446351234884816762429355486036496470576240323054238142782606196361852189813118782439051348287311986361905797853378405629831478631038895751473770483100496370063190938092055873833028030242707754427923806939409843631731343127532138753186783708196095824246357144295644345002748745903772103747091502734942199779423309993197104307459605043295495694464291359605836596844057991925888689102010170156460982904790850115523148246748022406906517765896323697270374339886280153967260467646826245577864969023396349598620255620230042957079186453310377948935283155538648313478515825737727817644562578265622019528107940251674122638977763725659379863183574846942034976445091934552644681063230476620998176942765341595387821883704861717137950131845198431109473923683071707665768393596028096055528003917798540790618689687558913114778752768885913938167791647081943875886791399046543633215036854284102026135685540795456005366161860058268239356217196585521186968439438176634206768131168631018091510447442051638877732391592519857238733773060677183307510767821362847174431845818971152515687551181706872178894455934263176803218632969672231945139441457545184030503471508139448139151762442236780389440634124105812820214317541970285770570804928311971173473947427288798908407800651547810789314865346449053426684407393720284853786314240729002502494223724935578854707414940498920498157759449878234906185293270296282165185240210652065462670727118965587860787483246610107386908932324146669825466007179092938636232262286503687622879249313421619785643240688910145586265971635989892638481248133565105319129776496726283433719195561080595634373987537255494423065422234024934716810540059081730582776992627602057493221158652961693080712739047580856338754170825027628913382966470394635348707277395645630190503153820046312584776240327900149806554452332982159000615276289356274465716295607640872545397529348276224276506835421809764624829178300763820415048199867953948194377627420755428551428221592516993960335752434334508845684639953018251108471226287021835893729368654764472754635992217236564125777512222869216894880285142784526823646376832108131136972527061920598414207431541172510091656289797189021876532860882182064108625259173105102174580602028298530507484437646694283468794907696801391077194261622423462334377633323797745789383852529629925142127055397222252842976302892983167597341677119569365534531403750474518747129255314101887969643264829852358855765225998665774596124288234929196227140614923039654700336633818767837455267700671929903430304955866852626765903442386186924244797330848746127250165712939460074410361243897075626308756500252180316145593238632824116034962984067937704273951369304370139358678117200294865524288821253573804082088769011974892874426318003376349330511806833184086066869399098289587215102175150806822987279907468169741094887337982754628737235546376029559874329041778313810122330309475764804256758712834105614756549865107191996016769873372237742538637208769304799803151819740542180691451760429862249717176927928019668713999839118006641079599595005422744723327628348176658720968843690029043715051465155471904159310988340983187608111304359780063634771150260231754309823331362747361156413700004141229388952014702050351850036238206189961098551213599258257065053615718166251492358714587060268876040162253251963179828321996348242443053276975940543991706245588748221821833453637198180294907307756550148255628174854837325359306940346774419088708186835746761948588221819373641123147536503566953592939358686170234569982548384092371500471613544741541250761287844219874580257398569179285087867976260338987916206874247535887876076627845640508968668609951900957541184109581827465132665756744206441824839830133691674546137307675200807931727957600469022152204530074689131800472780507647116915974052741634105577222195858993505030133201615860795102056380854460950485903819239073188388137761170758149883341182267457364124806826109877387651071540132331846788218587301285901067169638221714189684214739499176381389626516210628956263192311538925390518572935432112464269173942306146351688491354129843649082701442158648272749296576532615899795396469448915155920102671665993981803634828543945454247260371110484090047846252298156845095181552726853666606113342042884328406336354041778247674553781607691852268502037721804955419361354459550400477395399718170039311990371192853228007045193907019737841372076864425567720274127912448119578192791628470298640191688453654372110880444557162006764312996510988682750961215460316825066929876847922305581681260224066087489777114520456120975854222489838412150362925207455074312909821692693523149546618151093765306830886588242411911995307550870684466532975538674057083484446823432293722253707415274604648267954563876664462044613115451646793440992309723022117167514074947129155607399403014035771887974870384881985583679765908016770005770947039465700778625592964082968091025173581204573200662979598182721860294235676638682070480514140882257821710467058881618618956062918936519743423873251600197339389491147665592504158254223975291529267702121877608084761869520486670657813807602295161241558414688687743863208218649729001867746698021581311080971090441221735706027597864436374563458163033846024800442688885047783966355205100896056015469911973032350629830284319169514200907493051414647689855972494150370245132750923640190591238003615213670533427002197214857798972089512156251869273888354541663123491519000127607563427295057525564695860053549223462779535302762852070231288203732031902420751009901060451171888922499583748397180808499649171589446568371277670823126687928040428292792868908004121380560375232169137341266835203001781889312116035796732774776081152337402446778984307538939118687764411215560472838915869774691461705462073550106498565384958226460008514292293763367314302438027529057241650180686834098711897122705415676347083956076909362869890559831731515514949686286248576876729755785718717205313165636090804532577722987933985455986192548367123641789523192754899024036645053446509782740809759734113347444929797482101967466962048446903456586614938073152345773573326562534387076839530338902976845194273288317655170640503685268101146343249927584532390322142413176007763274547422431878044583554039404946937233967787283470717242208112536779008630154606806253815530205249776880797748732449815742598436578803506771083051440359316730995198193262560061613515014072472312992744178818845134037811210983863750925795097583208400653813171397129073994700285616579370014689010361328938584276410473823219155808034114785302731829902300847653540978152610704744593764387190960968164393799184716568765400593020451328626574761372715216496123242958179788254626465714837158417714949260345938453434298255395080360651677214191380649873998773198521174834464476824114453239346635501918889185913331473779143902701119364451779715982557938055531407821468671921302653137920524965757411787806320913624798658180283010698389140377192401946557593919142384002594595459962546299420409165117134300908243532004515549873523283963050005248241409192078468436337080668005011538206449799583968916460636607971607333008786422002555716218909984915378916765610613350239624581433268666986763898561205407852350710133412760858683081663030084568382611883539030924138598671621491475614198298548618406083043248691518081048201858360963110766925240738375763425118573179931957568825802445738158981026314038046815070766944541369430459977485297148838436222923548250793169736413978098763674124011011846428814567431006369718220605774986176010589233177475097502585931227693255083607175330690997076344485806713125161400437712263870128923160084961975340887505464815602955324406907919277959553316829996428056553844486937425380123602234312967723250032008103669214733742458413461804818891350834327257913627465971691280431182496383735496263917954398281087455891929807104125075558618888755593253567451438767902697406556310423332902058160957832294700387451302164063768171730226062672149000306278834074789607737244160772528518122178316878315065793204949412546641582235575642333461798215317516780273723920550264583194879619874299120328719031834660309419535999830121579032900116503666304223137574764409866425948516887379035479093416474773439446311442440925377826537722417449813625549657806413465962196525138321069388489814886530948284698165219620690201289238391718794786456107888811045334888172279387190901578150778687011939685069889577254791558537756685729929051126601062450211952942833783810504888397813802404016976344472635823417565210841654982661137822514791518131269068962544636668094562862977089090645197096568366520304340826492071858103310391462286476929950275796816582094344726250834426780053207842086256773284371512341930358412871814188596238167162118971148359245347325742710902020365974623920761436256031929840203953646156132770358852049630198552750343026524867744437617073655937222225117413021408125046151783403109692357786971357505735343884583027190189819843021906131361165499022826866881257922583504068444234279634072263563662711904420044111947731725346242104111541866867326168586759887096757634407612524579577079851208241083698833086870959241470523290252510498388798436320751965263254991419417654779500616725620967860243091984912232179571540077484118858252064183938662615068004079321797500078049076941429663848971906628530737500262605079152617541244830198389098818042678009505846617352215871573158740954108169072788893387754975296438331227562651881258484130594323980844619620101477463022284925972788804639362510764632969136434499602515668191451268028397405357204362411104611611446437697082933089693031954018143626647151348630305145377851304708652575618601552545321606584786680072351726147712788959792979230953337082874889747168036432295466791349515197426164974986989055601669846813117978029959321702231523127749795469681566246140550693836370775269494594298494152577752906065658741543095635617556652758764390202961267386619955127447983057309093516338076596234571141190971840924419808854408027570324309904762332275601277564646803353889161093297092849622453504340444422933646408011111937824325633474497223283270756308690061730848320758467397951336205984616513964526251220293694885993765558241731072836141700500404092130182057678403410903580132777203531352585322048980429355840280137626190179906650685245573750214975539854954789556852298460838534790335920357942902663557023089103633494643981263274192256469472468275896561512455046829222702218041214137582837045135217901237448256879928852890040668875081179207787351949892475303192788468712098559563501611404137107721962983471734859460625556462147113762166882991368287987282158719991782229683301969365188053309076397728839488539174759390691442235344743229239081911235157127454928352363097176035407993576094921918984291667639261743822090929157067020987973029121057463013027373830173488882328520711794983745032542507494723113413907560932341421686174752646904941812166992215931593289375668286265206077729415626500101406047764303506995014090321366416300635366122660944604251169622208112797519628189121222952607625296951021509767109071081096865216104421369616268870258004192033662341039322916840406718348483402129469027208805611961128504184409952181411701091794069658695205363812691820327663944979064130140380743235301591744647542341426160094542856000812439941893286919543919744340896375741138524794491790917222655479140212762128799886471665529512516779358576419985329013097414026717223142473296504822609353518356162573504757059552603975155759140065893196626329318986380213023981553741134724614342681050477829015710455396087195643219923124807916421100680550681795592212343276031484399506902438326282636625784515644681764093928272945063775686766784938431695220794223915480754157974311713919778898514825967897174281567146700109956270703624734733970749361249915581071234325949359669121448016297247905384225696527855199668948897657570620058853875641269310357073654235430798840769876490744421983941323949040611229966928074124486322583870821209543485209533918296468898789012801948223510334158342379833329100032812451685587087851347484498272263554587150593417678705884654244163902898455230581657111861066851243934880116747773489423638601560625865157595184728781349760623460459636718383350340943635276184691460187315841757760304186483664595996496690552553389525499167306027450511361077042602478109861408685630415127952476901162257298145833440613225362568648302597657933725991173486400738246941925088255225830004001004611734953420990820130935736332665666153036526793220079414762140505474687900976548578430821720077434305815959832380043785773476543046525101815600635820765409750062344972934363991627826274343049929239038326222570153530607130248755718155707335366921950879378628660247181168239913290536092272278947700279331363917955429903675290970510049837361111889271469939861676790077802059490784826996431185822487227937329371623702481235132247685971810427926964004000677729409575484923850653339979811233168793080386575901115633596770416667015626610858774083438424012096461940836557849099557983090916634788164622785495232214976795916125647944984349119645080862299416802608213445504104226220793120651926128010477985594285813750433135748423151117955011062168054939894760759190902284752849683357668187382718629843128635002143550452468447061772981078358720783687792735163049394565154030145753168067630225098616912525249041841803420759586468317025949199387219086785587909533215336203961079728231421731128005947101873995653646498402425459018838869251914168996507350483874551755689134512590161696729101016645725247068288963008152635766821075480589202131728986561738775263966907003696177787280523976245718204214888361339451288111502161390889318547175258784773493577719600869061577535208157642335183204155559790187572707785170269995212626265058144329389969658534373843554428702285742081461640853186085066600991964445333002289500054250333214650362592082788381319816911212404641132248591282727005378710155171429375419172506605050424297688978742779100129357675322762534700581696768820006882664650804308130445516339526802883198774614800577154145779035321266660433342373565859544259986129106613651223932785655432099054473793840612993578321199017156423206451528565189965101495445163235350655431695755793704064408295634276482486442162249568914052975642358624534881396811134256142382480341933359703383887685411666361614938357283327527739126399083056161232465987696250168546261821534637741769601527630283817851402228595656576604596756916355968581622801308377324737330262985143204420744376547799748799671833411485977891599871512053489847774540370260975289686639963908280204279920234354129377335117981900452276462121931657345920888815863018976460584370706454940470739509471203538055989928985271326026036371494285858520726863635554037497428613822062504440120031183649440032409545612897009380217591105429472896665182036222344907837630950390870951746053586079693597059101922810794689006923671773085503912840328104445199629104491381235588552717048352570626619482007931609837715143685490078204807628806285411792050718439984118277694228754718259353259434518927210138962064629971320885883070595303615689723055564960029946887389543833414635184702880268066927621053761160086373126936974952096353785543732913909148138086780893311771383469318140392060519847741917955218944581943075700315278183941395305204899183377199786764860052208883113978916191792688140583338984967515849897333818774662088884245726589162312114564764750728844137430469153797099478131821725859337311978646248770622864909596585903375520628068807445093819724812216650816923236467226133171858825779189268783792772873585470737994236103231738904814239408222104272258036663136130878429869793139380938283997405067475121798375904115974485180536530787791133883938039244658671457011182276276847966490526382341315322505712809869842518369433605568815016139394866037234920559692152682135871856043706821200142101065344144987290242254593244826600917345422566747819067581674284577392528359236354016019123833368714164508447870879083310770118032293673868412789515168334990851822705013519281561970137319163822542223501768316039652703753531786556287781349933750934745399849194788088919291035689767092477628831602969319469863066205689255400256603199567681385270675831959488311637626818968498288972671035355039558552187726353149230343321481409512035439761093367612983032223339359912783105747620482598700417153590728654750133066016684809242963201145329329315995852145287302609447168351410727270570802966280960211722606404252807175769712476950652549019785630177421486476150702986261259724220806959821445887644347923947074949181206471703651676049925981249764233234412870178249446271719982331523197151616895360742595035912833513258249651830462288846479455507930704776655445643186203786974185244505960960296664328276139572133611611923283578936270215338539544285184411889499235635490768750148189636516074382049848433877943740581207781360079445443138775746836716643737893110663189307932967806670728596578808944683303617426563904864344884824318518518077800395557723043008729697088308979905891193977235780307284417064199588316372249442473026158982671924470883371650092456845445571562057446754626513142349224289118347287109287674383806290310683604353810109108089546011692644170763093531676833116023578553490929078716725139706994432752743695643129624967185893653298856361641282496697860782161467220414323303111132481077170938074200062143621017394219408575902596605044486376255354412384534799229097957149661975536931440958459778851606247523546914292751349978400988052250282578918274231795845406976882959472881754365310628750803288507650408480679378993451779736525967144360504165752746356775286938703447715615144817937562871556753780840450086485112650698164863845240923575259399469406096248535471142860186382793531763945023978280490402547531742262140315686681789808029560062800993508742752041518312526769051216550626372681431816509166324660397616870080215459049135460401066960428729795461155240483549061694297336760364603531540546443923630405033135314764917801866978841251444127951721891430916730540432118669935258735208389490768414053177707864188798453603431674040405430397055674524581821786518198403868586657521020903658184726711256167014297337620378686528914469888573237713983265623942229512887899434322677320510274673734282294417882169182220635154119825471019765819994919254493280441855633636933094885654152515189261484467330604487147927879145049222954680575587119030611084083143143931890480927264673672258984969503110301219566534966801474204999081789302642949959208376944504779011954939938565909741657241736874566896378974146105512958635832051144846927600871839150953129243633783570079719150799387350147477811942441369805771760332711866554189184301693385404872569062242822662090337758204542503018406427461217104939062171904877340889593298210015348959926699142378357170862935586507894549794047759743386792910762722861373299929576125280023750200108196118705292361447418341794145407488660595167761522196122095846662311129661498618597312875264073793271053041860735254255970380887800241713233848844298168882770882514895917118237963735122513239953303874057344160243425726866556779563121893020318490383300062977978558024463461506315544222485998885294791828808454795597496276732956679811474420771397587477096039554771756793823599456606615881559317161581639903046280933076715956414661710547241403651518188639061641838309026802511242147410748707849380515618678347650689976421704307759671358408632289049078666652783404797757376816632521384209167530065410334827317971038904255700663460546797501059493248875036313283192040070991041807440743199115347175572640325854388221666736913745494011964122046225426562592821398472086719852692065336492195297096429557366996463712647833655919436687938772411999721337947975039963385194704018834177673288204500591940368279024573337374276829957883636942206347921397606171951739550303304641775157095603547351455109007502068278501868906798380095010192441219508495830093651232525928487553498160743406074493650644720226605866078652639563501086678079240572148860054039387027898125785963119838307641157823987245327364147727352830544385941794100127483290871824675899981118092424931893125721166444557581626496153525615707684141630905360462243727113040126737972473135919945733324888400840066429872607131036133321525513910623969821370199949669265153797267061079746808700360846796850462497873971598154759075938342284284707542812072018151463708914445052590379663157391242019976086815802510265319527589322456271678636638746558085976494368933243645039483226151560050985982059647091818170198852683666795930249833673429859012311793471038317520423569217750182899262105326875961474561745159592793039225411038960352118379897565698025097497317429200181687239367917894890737438887915242313868351892654057970316887020672116224177043147275879545919558625849339537140362786243670857001879562641260019055159627902495293051335822447985271273338389598992902208979312040404016644824363467518349025726882805163699952221031716497918016972345812239499002388110722292393914759009098451633053625894739392664175985395292371167012446045252661870367511188265826135961408408674771574250206538949222273963817475105393515999035660772309576989138709939549277025671120171983680748920888020376719035028339580697762102589222993385190545565088461792487811592458325371462480956667194548318996147241238314610371604685760263138199395925202263842651468365290746761506322747807627369956675585389434495215028010079257615694166182791456831874425935254409508503021007405690711081942186588539960414489429977965563167878673515227535594852708639693743613990938486137364442163388283039206217271045424627350260486294585599783404787986568889453045382735648305825956935874092439967647161101910783798571460494365075827647782806887768408275395863003202655168425894103784112708957657644848971982555607592943261893541911122867784862449734275136553512193288689704428130218474328384388211655843341568779971174328768449520084983716371538107746251493063125507320735618369712043000114630906842661731099344664761852783478334324526651686782845165499526221121610091008319807473471956005096121133677615002478218047135991027185599946994779547512267229645558898623460241716062174985350830290274336625511190140175970547292682669152879295197956206300052976805315128546662239720836512563676266258634809903313879610009547753075651901008491036425200079026838335572596649467840114323099871801922522021802612363797437918788859811869422937115742142142009537829437682889733468213599503449373996559547492278129830367545680526549177911451678363548232347510619103722790098546160122212272649213432571179438129491323139505579416603262290338995787693583394585043668742487534268938150687840644476031178864485600630595630217711968877473542441969866751013445735872153422382224387698067609446647479936852061567988072927135465634786902294372207219017135557448764059285208018628197863490848075789152739070561547396424717535968305557471217513749708829976692565377526014074736177003521574809792464322366049851933406084224679758167775823084180509077486302104340378485320166931353804034127364082166071681716931489297228023415486852685688912042321405698373321528694092022053244904218466191624472929573906161657794807093008150644656235673399985565280585277799154623121231275885884216592237802339808289640336992943422218316529692068698094627039093186260071892946261392037458786412396697071644116104295284708081888254747411464888800751231476210391205858177822693018150640816415952545895685977488886233919741498580787058566950914082424894994192123368140360491595411675585358323950943387275040403239816087114366998033301441707662519267192735133328279119110967816242885682443470923360986966327458114861122829594992998342895871390477590159994293272085812154423405823286270919518064414097230280811575020780326152648363777036563027004508843178870294516393378260315886817623544372685504507957484222604913152620940057936861190728744275045958775593097567927738349159272434583055067769210055344738816245460459297211050070440838289604076738922305074859734451270435095225379707709337305972379466836827617521696308669035621002216167192024106273509862246633459091996922990318334413533030808650234092151649743923975945209664458716194965253884104602779516040565693444507619612529459039035504916135607281355020568028235439325799790309194580356878609002695198924305631476961819751370580263660175154300127116256549578439556450022241179437499124508246685022774013922720073033626081609731778536094991946308559528350138702424180163915636565474349938582265571103791141332024179132447107367588679182062696568443972003559908703207664668713880889428243853694786783908024184863059159937780258248364301813061354954978748217813901121658533264969286636922316074154834959710574400179097378505022601972855710012147548557993701385884581708179261076692791783621232735479228597921775357266955617560241267640681313136426870373302739162299106473674074226764186753663260118499038610122093383179199437680643078113588473704160796100383885775539792757825759209199649293901221323528054828384241077614324134210986942061316547663826976290304033542723931042354035688900264134520610811541131202658497356248762152604693162302339695588054210071450454070313000281048741771677117119617702016715618158247800196829782897889693263824032981880708190697945466893563258023082155191308391241170988145595458521832252945790930636338791311225014386768230282372713182433160067184922911855154918162976579342798051556797310923196581316746038198697648468044559032060686597700592311089611250324615131720789794078865010396593596251755922877274058064281057520680917620318592849913397860341594090873361361382128915597209950046408507934267092481952279769268749778805048232728230003394327112195698179544066929649953846396554533884858618619771045655534448690551121902831356206486528326857689812940438253466220787556417079346224304618138441871015044150686168095173502287121893725587316506846959670628578726100836723061466314328719567257484711352501069622599508999022570893974873165635318201748254505873718272107534998550070173281283810170342580243827328276629016095385504326244069929388456655752472139335022638035962757076816197284169070373781040653659002572890357748234211807125299181429464226879401434553748605965486554882596155719887511114290871208593725480625804437481209629902927900398981127219822880774959591905678509458974486896616926617224687361769074464006065706413944083474775595483880116812129329774375380592939783384370749301823919753928094420967136477234671353679515659356705889772516274403427301415437276794641943863223458364597429141944128150622892618442195777482807228956673404079226847989760018752602948734258643248228308239868097179057120738190609044512840458310393399764418222325931945938336910764898093212736732200444470697457114955521247878711716818729971483404414651436834526584469886463623043351463872164966271207909758519906152336496256467939653335197218200805124301459793562147749148155622540339157984961018588117460513712286327287212440996285024687218029158681372859155657003157209912335719657484258857555934612427038065709441923372229177799315821881264047917222255525962882762878104433460029795440800364295760609092596580621965723236350830468209887154454755736294615484055807249994654621737739389440116193011460181920393912677159057146155174116706511935063573832185249735501981676115897720403913624933654208489630833659769463246136530551991766060621697443874609689134862544809857574893232680157155896777093885841226477146742823987739693553193558938341034943075855624321971687831213169730200428812865895928237450975365373744266774039803520881678415924319039265981046999816530823693811964007736395438116462582467907661947891417273889350532010142820427542518097339007218933772670057364606104698891609387006814786956538345753487128325418084976546536230161226293610496961375800254585405689719602918414583995569554566280508063774678317920192393795241896989000710023058099956924946924851365308797279821186710530131855255360073718642068707673422267361695942847521456053475185635582828403579539422579872094201671232691871393682690851407707689188365260633101425643367377493842723178233112813675249484535136747128161672989472428784438573158972096225752461358240825347339138005902480691499027655467848474234396178162946602410764473806693919401143238662568511746789036206177616719979818920021521634304120910129466044780089751405531361920898291263735965227565171488842793978380217886323375690500492282080562597350468727137575344954276388702094378042255311112965147217830578504733230886325927962831964712401393921907214062814829078771582632233388890573722101730838159013471367510210496290142944977750710745056900165009558039495108029304503452180388826164654099235430698424753497430947639574370660483215014637894452055044775211303466270911650983361214100663685223397935477071835521842688496446344014765723566410084631459436524945820204018654126079512742459302909372416237106908288408048628414538892943917888491781083875323257474717213492460785079285503213826983036159393463871831443202901837427980706826379751138216643430514739753482265634486128043331146804362925891948370368591912499855317078303043682857943823379437031683474832298892037921982007718472203922632125465623802738711771798614254749835445015673437689484991636465832845479138789801808989215133035098558139630388043402244414619505478790340826378005020209829429318013514228554713011417350740521193618571023243270590439198114263118539128624636235585609942358521806165547827681697734479527222836199216487472898672952145962089790018386762937794773592694812659937762493671369479707936648403434586081068845533788602827240844616908560831328584181228975416755478651995058691637674598781681532794337496901462629158381271840217300501265345468130793059058751575184644573712837633601509450685802427002169622282725092734525202209821170098665510259096861594205568536156539472478869469881037824501913935642942097210695033912723402926636962082796792094707800169983695572174873788955176953118021627166636386724937809661151621434236258147749373754814529547858456507778726949459845447684554053182274993636206965258039975685114608703302949071302099997174524271495576056805669813222119905498097401523326884295746587010624886998227497638724159831347836554353163353050725365389163277844692617923633789610159087158958249663091256120857760021369388545806286375769767482445382904219789498003530621953006610608645712780177051804138196783500600126592004959458711445602327589714727956589766962646029502936546963652402568123609004994845166410511585078896301836111954957103695386478147934966630072087488095579587511799586272356162527707528246690900586372563777410235902842379471472976678697829174383029994368611757704233353298187250671977879455240022507842526906167588523837899602304087155703770465843011248698071019462288881651641332176885267561369948819664404392903974770218972853467882215040063951216371024590791541053657411326061076536669843853218870619670385327145422545018356111390311689573708344588178801035434910561585084342050156605066333734216720626852211839441094081576285156127095397304857409912568299619116703029622554945241530938432275265021570841192701317990198468823394307996081413258570600669705378742481856849249841636639327881345034566313769752857288463794223951540345743518089008114743247649877988026887717669464279452040828872533310540442144950444370765882409192184477429258452834050828817887797940456899767488946640062458435367069181241139094053224196488794151264847796948833046220405155357687084779367504472120526556661559823290794275808913818994150237693400724838378971515726940129056775238707873535957516616621312270891442589411739502565409407357674185736019658031595528837529671295749938333990248788028375098010601800427500699209988002878684128596987047983562555989322319624147602896468716914463794809891682353792052958822076642800628596883542544242573925202084925424415323387460332495626544904644782597130126416402737853802017567331309990551214762062280486044637370915295919583026298584587647064957254465344045513197035935632781677538197772508125442932014566550181283413376821407514894508681039203555072440996033753889072884056494911142451690538876208812104992470465468143683959342978260383906200993935649878306582412369385016888889385921941737560398200011569740223539381877152894464390175505208796197582186215915447842439177286108901174359845598278538286856020234409103376279518452677787822535093158626550747745389113822009342580811325737048628615171629096284352609669003058012334837243008519332700346658368254641563683880014072333288862852948764745935895105996965494687643216561056568640536276294398490603498487717534831658974062825015098916317391955864183184562343449165601874487273395629373863316261546279147088129127897436982860982042156823576956857623369418067626290088052748657410006076851692853884730109509074308734441242005365807316832471584126814062427298601611114974092463255437595734390747748054763218470804552893944897857979689994375365231511560524582501021413577259935487943858863987580853208535360681215898187206904329316317095726211802655126395067194386879758046555199506221255430849387863967131563695361859338477278090242261082693449063179670054024684409260387978489356990505345827548086169669732058739957075557759886506441164710061567293292170926069828302047061306425897048702797668225657762542538616263626604897572461643370497715934321002495012650289425714354667302763680451282619101078773452258878816403282913182029771123657111086633525951996965120572942634529122441822618628361573765865785324044138793303463940851333017071510687608500054840709019928364555024694411020689514634631884683386429609827133594447233712586585808105762731122972136415590117263488930172223232640207684975121928645688163852125981869369575437264592200540860413951963580027660228443847781647459334663842764539966900006779820957714847800221114884240550265529980683736016164868183002645311066354818130451831537467517490866997073705087480610596364487598663044996278741380816534306867798853969283988848293842500091460086639236517450849160126328350795816202776742056083384787999359637609865547103235738882106634392822888619520736158472421244192488737284265636639679508498603692698739310075092296959926141710634640596450495377422082211764041253522809830863548683148943612370337212323423750055879733547171873712319952759312622021921226659544679202696657992281805740757914112885508145779652820586586748209112723075865080413111797935306463030148701152246142281874548280640757903465749583048728770102632210765822353226162749211341780593125399333966078292776360449675776469252440565343854722783713411634276487125349991276470016151891805025376461516744488302836317177615585130455420119886191958448382061016949785849556549474077180789938358365333199442999088137198449426145793624912239008508705703996657464856331163023038217542755559617038800446489373799819322754219439836874903070672455952586859201512579327680127235036855812719318525188996882647824587992170104083033019914556940709115829931261167215930024672667923817746681925482093465676174669847634164591321920542285024062162336046325353087400514034361986398172782590403651710949296595661959150690211981412818123685115141311055335900618208326576679858509787826360186053610079637816970273110124925858578721043205340729538407169685993940136863433775528372865160879157105465257377234381631945506373252712695082386641698227650954810735282044678041503133771487654899489640967209189566728928720230526666811868731064627622924601456764083786072591040374470984195836771755189716729154355634686010263262028790837107465708840591968328759604970008586550294424193025904625932007987768904275463563344956976309810733967268165914566935026650652688412591157793929915748428242198521861932845689850955050148011103452484665016693895840142055707425911351321523083141451127983045265386160245671494215003134184578957989091064836185321484399903680811608344416333508572450832085562652804971665584239119016246894791233645007672290629519574781836943232629128312617537091375243783526776357057917352647565000615989691122570430953569492668724193204567630232859751193436989843740749101708304655262893432958686573688451249679823983959389899887709180787052020128639328710465212038621937140429824239764391593046354762560264525350540592936355547019924434437245949222011229446666035964289598729141566664880471974034016617373077763185247605891966844475572297632997171710659235850760035069498224202012632468620924707719424085276172708664479096126416758739139081095449873865949072583009670241528813180588627288567590390219543989538340417465816068250579428065880708560160566260127154790818902092144266677058710832961485504144947655508156074106686994994641882522125816209936122140779969921389773932100915496613549227736501573395963871877345597141195850038718960902867122962637444707386525738148130691011325561867112269416060737769590175658646363994777491458530584627456432849141018993864593004373902402832364945254039558155538821917508868563686104183384187803900148282691149807906740454152626437254816479117148036036425890616381500012842504522273073927518106788785044158029137710848823173995641338086829058954070492106117438498445962734626492284101179018051656891376276726565642583171092962781630837394637407922279164915643964956218843696510641088036808356913194489129230359659163606964307269118068945129634403113285523468500693188216851868705324243727150055312078178933520447603802876108434763853393111447941200683593031209169850269125276632470410805917277597052910090223125364050724073060793522694539841622669086817361561216318318914066898222282448276508973305576740899590577133408489194418369749242819799683665095773036092307569158814413710400604104248081727249316620019312119776350822493016182533680439270875562701342602480410837826560059051967969656314631596375432020680047828390604170533861940121121649465061408909218860119056225059702274884531662963340405298842036448855429979326684733631802575925412959398382275754858544130351907146121602744138165531086948711384476787696458326860645848025327233605298809491971067281723057917558048398094662227827548244628811150101753255042801900782499142488560000700596500303523702759910169500297369700301080287076176757869919063895527922807383290298411150929327241405158007215052042019369785901877970794682214188946751020132224876601466313167203619136627069635465066471330802230627333696958320006894781786557519069844698024566708888234700514817782305205981943973372498971425801278689398293099892637746358134389265621691529210318490028928907202469439131314551243511442265234714340434767774948253556974381763904768965979458425760998506808424445250665409641971054873995344668065558728394603996283038939316487273181632409197535957952586743490498426883141774999994227444823311055563384411711747808102820253261090747122773259067955010359111109495031210240316544384823922400523779864264115910599703277880804982284995499414299457220925784544872582959610790339063465735926181798605301473944207227908061029647654315000493117724479493180553910438336798100188127187273892797265402889159450353147736320189071553723642942578320141929783096366451771938625509385116762822814503759220649001678945512447034645157912297296078649501406545674558358751845398801949279041856035814507968988562353096317152078931001514491933499179159934621744552364428447917210654560387164336977867017581953744338648851356699057087841620934486374773621357804967500789802442446138042152142799124845431448540251114816642439370635223067946722974951721342558512039372015487516361208821047290818362460316505413505743489339679147026282767323596275286982484261200160970861968850490111305920488482518116505980791998779530994101895591620084324240001008835767575399255181960944150712021944053365784639642652673406607785291700584129675039436222648628529696855859966028129457697962431353523031937604187784520499888242232665850134810464506408152567117407249697555088730582893741256859103517674519987014298396579290515933034266967890926232553029794108100886891460780015325108559673832068043228954036946115348502856288823886873437526072111148020623750712182603594159717321084286393609005122319310733366191483703939732376926237899861614377857722671421829904689000550743057286070687399418242244543712287744351679805777134505858041532766541227219929101811657711482818120833921031004063750645726825963515989307141121851761639733218757532608531386361650959626569769384792377481761477455663449097490163166603164366824057938974968603150832105614057000851908098158467867082479427682958628294049681747133135999994076729502297794717126432214385542512140436602677757424869454465909878181940171996285286825287676226172769957062149107266195428033689100094216259216509060528959586323627100162557023983437819787950997725826397516862080749904969723694608819733307641671807433432726576348383629393268708284445914744239604969239259843989313687421121214036321655828513045109604536190171446848238714821894556595667938635767239975640048056407507762995462893644418883239825170798754047319281894798891811008071373062741178663064617093852074485966228698138648655450081013602441428238174758653925844530483842699841250505131975380825777403044058649449063470077152956274819173345325470650182878064961175957580321897113862997059230079271791959872881254731642685123551348374834148225991921729461237570894741322577477229808779380590448083065053462919086594527921566852207647006898854998250756735729156799949519797111615043651366369863749848760132049028831859182422174550614451312949692927408491392212877009630243597134725531095014361440269591937459855400854037691217841357367369872589515234388885923973557098994683885840256242486164013922075871079428081769852248246163513829263461596032802509696398923437473614754656843269932545485384091838958800089076289550576088057145085105619603096951497308315360340121383081974628676509437268327185373997270981925712742387925151952003324961400733539351323890437202783455289142806886225191946955623632431975830192728061814050345383533922040279453036274522803646985660870895835283604233444662891623537484887245324744639708172208889735208786567327294454516934202204352393077531640584948032921128198279292673664549071956446120155064373086636177117758625224251231078046611583184390171186581725273626884183626521357813603613430014183236570781892554299868491953419321522115590867120786153963708557233577302957866869923002127087284178178649412896060721182047000700364877678234151897244495374036633486918269402041123210258176267371445014914917226354244764665855740545361242976218999638604291943932537890093358474238769615688185906153487625875248103124787347418022629247982512420905215345371997698665575809948868892939744300050980551519526960155654109782717838219669456887850731481300615528663185862497327925934933093705797859601109702567885545168195253689201452392729035391252926211358099736409567910735271024660701123353217817988064446703473657844496129892196873617686191346239037967448128188504251127014427718993820377177937529811697769396404082423210418964123590488207363536824790476920592709021003215724124362147738437804559998696160290809562788340998774718663539769192206859256069420452407063720793741558741478459096952132441319512505202755626339987376697461286521859731704887077658321033526742274984052210917769284050673756739228114112059846743459652437251200012091278820891282517062715531446791549489391511404344064486797033281446711342900648495308014063521586638593465415102574495621955849887406476065927671530835604958097767106689971660830513560854900285424375423492743070227880795288649866649312362406176598049520617039727672715877830124981802288834621759719658342204576314676038695260820965064838991712936683873815438122734776130052603542462403450525762930977962989948052053048540266777445348710659403334479828586581586309937711178430800350251197755125238539510207085703521561015799389754325106517661118833559561505503725205378533366631112744611252140420210336048208794003829168053474657133270110918722122572199500751321744457523241662188421421061531524779588799403165422084389426108264953272340248377707546731345495291963090065723355721795011567208082130388667607765040447170075586474457132475925911077400947399386054712981926754507959447726305783070094253309085785402322121461653925164068167373241153612273731032845941443346317434163274031606669912713436841907673345052503622472797324198372668542674775381726950778437615571463779095533291597018899671477312173397754826651842669662765884627781153452864668398595404499637318001161024149817104665817548998860723239692125932518950299233565414768991408388599366262934735426554483818641125367182268678716510353202988489539836156491334043050292918842788328054779969189179257967390038872172292339711819853082402790711397439018965757915556280961200652871820802396356745079392149052351186922511151785558487075682011666910608734401658626861927320091622693304208005049399716654368441446510245605252666990190072188971257825701579990506530906109613804756155686224525187163957506115948847184832335120975226808665928895891790029199947945783910518220716612916729540584923416348314466102765622018247733263864506593230991200539757612932546499824541707148966954295704245642505196420415912390456463067474286171673471553497210811383685380652398535094231024004400006894896883997842802368255062441314395150863592970141443421608052776803379291833144660882181562625748570680664195466649341004059836703802785451220978139598264449341677427838060657253605100040965108834348385167641754053047295147037016409513378951845002476761369102634191243539133136405589445569187375218079453440417738364075011122044122235385328073835046430202306381109545203386391802413306244227604466066444943303593993835525249848815038359431360665715071205894587560833632058593465867611594199459259592929395058879071346088247679293463504140339791233718306548857200314956223153589294117287438289908542572867814815003216702360733673803001926279017393044874724037705613117107840747811773844276494386344470143543902724275585015326730072321420354340234586369905143547153352251091870919726700968223273417434610511284673416646571531612096759397971364017878534135991901631926911616265938148827979696773115004231397704958880109826691575471626297220086328434585193029625044579530972590225854041153100066635771181537183987760699953256775843997620488487819149827904575184302962312349108838063964189740133545511872641052349805418070771138403664660409149232463988664063537869255736286447617931538389636945910141712007814167733458347461272645871863419981800097258275001738497517096626305804726080274759258922601397097715127422777666825566479040599045054323460478022786990370448381054671031141994859394894623553546631966210304343467206095914459813919209108816520074789214236132854957484785610515651788464019649219571983030365467670251032654499680753848191537837395826811241734068920005742282399779851696877265959627875453733240893146340104162393678300594308631031303684753590703494170782945053983263119490069271897591934458484681769491589737364404652492695781869032188061502131109713659176287281466235342173708307160437691358964581258946867562082450269969786884524737633910002973416339411442345127686816467601166542284991167996559599967851376084934661615796411558702350330231918977542013679249173240299391260505020858723843787779476162103953663018087402674444336501904568149834078913241050904295317672939893457793792134390232513079528428654410166763174971285684835426684536838399793707559593235163824416004495023566690805017451258736381154338714830982502588526060675618246023450868078107265433208160699486481382148402418592304198859317516873960917958177878851161936528854691230607993286130413119312061780376858525773237712439369086549160800336905607404797584733954863600077622120441086456698689765485869483072452415887178431803471277323077186371666061936861403449218931102253356218925974279004379320753416043934251771784226258999320822410965964240829970254963967618008251226352797792892744618049724876489659824415104969722818177701703886449600359760603907042962036845236248801929767723850308220537472345351925284336112649771501382030570413980074055172424251675170483764731706864886768781853983254350989774549306927189046502332696431270071005597605606624135544594595726523384156843564049590910180484862485309629773894823017239283924584098369868783164578564418110228424928655465219153551964703474722820843837107785866802640150434069602824596143220884230920350399801975403043254622848043643558954498351386781749456356377952458232476268418146002849219115776193832260702344116654924499582966585258910764640885106067144931542048276204228119636970564480189730963758763013211969735492597533640060681551996049881266691661570627088512648027824158216342695791081218973061691734282872722569855203996640001398920201856237045776110230953379164186222254293193639814747958625635934809263680187056677318124190340535231760485193958328652693998477483472420729448345277191861628295412413659361582228031909471888984510867243337552421659324355230264375267348684659437623363113647503242223352408916385605149156334292208127903634584708390223448847206928733377162476287692809314536271181382254358217944116408195208270653028577176853783890420583978239512925131502489425464948380870948047225369701992259418536033075952072523202367568096912195446533245460029781413419304611084792925218924462700455629020587144238359431134631231178433059571472266297617868616628908458862807170385746634039193504035682466411383629489222147503145678065641077750572007254348661002964095183150824007287112979129838586430508925485260607031940792283257039757218692703097381312150541797025837729640520057619505739921292837221600921939071925501827266695226786302523300246814685470452045008413539106168951758472470450440659894185104112304145900543729434282387885773751367306598631934225294069439498573361157477034619854479600081974753991043081809121292348134906315803258980373106414260976712746099300660031872550920477011355924655591435243661067945535506363639167979557229005251836632083277415216199651051747775745143091735242345707233910830522436135126257080598370779929467348232534386125456226140988778592721170266587549193832037265836393837084828567186341215114481746175916839074912031273483560063569377636582707009631924453037589757424307749603640885787630236329425625383300865124141232223538724283864187645027383310179316433434265085603007871883627607759101384837179311088063258274275955113019004074412647176552978083927456299811033529901277469479342625595522722954229861540754617757969718384917379121638796949861490084052811368820304955130413198223503078749283166916383674718717129624836401822966718178009315970327143918163491053125242413419029696307270628076908220927546716148092211971527766918856353050649011464325084844245036341119404083469652923071683479510605972974864789140424920354017824927052677107446999394401534238487826833118594557263611476581560110493215672238676890681612847718040110389937303718331021482866754883910011782142446676624087854307616077728748732982282139947846797525924158399630231450469555850649620855079515649929599329668988546395891577557146703670425981093111690351664517080704631360577974486773506322781109704691918099696144256494509663540237633311166770288642182086774601989372874303081150842446291921200499366302856727824911759734170193805114745338454843744680702501752066207991433029642920082579050691198013742450698731131885348359851060199737044587650036295989685599466092849792361269317473433145870687495205279452098237524144019401473576004113220732600327037548960452768812285084934308690102299272164139925845802728342662638300631295569726774259913774642794962837708683755059200080609534976399920691897943016843940730078992312065048069073857689992448010033701290593962033300052290539096934014414839007710223672837656923600704117058586915243525329271929246271351009976885763266199107864336522691818758521296003171398613050624211531529735528269588865693268174348404448796345394159172014135078383991822850282887508065312791543164689110731359170341810426087872953370025324292605342266181253195879482808567462260876984160016936209619079852359487209506020001019860306143425659538021800629410820725203832194688902842162216744190755545257440139697412377335705345875923241562454447341586642678604444582871195123879144166025702801479066432828939746927940363766104116140980195038000018497996035029535581064176882552097520570539632320146552175347209306744726656735695892087329987894359172085737656842283310947610993417723206521154243167881313448491324687570315798391046410476951433725970737456533973347180227073918075269763035808023532425157581140291495944323836773355849124596514731728657198603263127624113447181277260154553968577626367568879372623911244503639029759648422088975636725337791858887682110320924820622169551673467326535256478449586059915206695802031282809543810997072790978366378552821617844420686269399163348097415480418773090300853256454917066448425021965050776164713944949321318456509245892067063046557698401194026791255706467692767887631600809187130942346083852551065730898264292986345465050098176446419803158356755185908583601591198374561058409015186769535456690262686720733314635683780919082798128702980163767513842061226268476664518468725519451850204491561428394759983332873514940073717980187000455151018840505469065544315225055317402061195792675651818061123682569167226859708031937736130628933870055431987434735593232901367415445583838783674623043544972044825434939811484757703994297692006378202529376166525389118039710072057706994460344051279851394561074188200971947776443063398280489349819950218028698633254762616385204117753982266791661565202266684131761980118442906915589179174962719868887027461153635825732053755397756634554679209045158065002067323415040107213406251980417527516946369269191996455878698968129535293392108029737752987894757633371402976997261193818616056500724335697651566644962759204196304647529373997646900876840344787467885686710891984382322013772940883448022051622613923518629762591413677758331361160180057891305711519645789191555685006268306543102970042862360986615790872059304200732913198385860807778854343112441184363481594410844331835368350303120279137496859795418981322722006928970373959542891861078733107037771897657317380988047829311711631993877883472940498847189797245632186521163840414689927061989352162023076947661032861762966020234338295634767839961648316862061929614636286028175105995200704113335172565057869478818508314397607795286591046186813463044134931851512190339218295336334215531048412596662438250307277781497235274345751250669647269032176613282740722018566048370791050464524431557962208673352863263380615861788467914241565493274854170687602371208590339693125171267491236359263482012642393882863264495450339314451139747826328942394621822363211579566485856398550392220810989357035848911125349182997953733739389764243654516005839632837863563611896548090400386830108664082343149733096183607401591897656954183773008897059384883646314993508601586923838779874899139509981031124831198909265989188282667805689369241000286342802367107642739488209529835700534618554111547395667158872110175870450897653806180001562184100921233225503375556478140376865035472259032582516839628698886187594398944334498470648503279884753727602631817804778112720977591914665319873961122435836023112707601376731150774383353442730239142635966171685342693101018679192258316342456466315934618247859645616570147642693905910691184280838342272522277976557203527386508479921398191396749494799679035061652933571602688152050600668759016676003701510669550929495990860431138945551109555353084599970423238660203263629090592311350123661493811989663737847795889644024788367880639339400204758506294462687480898458696096120510251530538296416824315922858432121179913460172757668598249780980745941855307391161253987997092445077949961864438860902761984065935750687959130131884679301165804651792778232082025466170257492750308419650207875908824387636136675826886741825087539490244464015786932049637932059198732480756544581589886533847162337705871590060800836550043961730698750260157967030482604111075116553039992909920719432120796635096808542439468801361513721093602886703119336800181889904881154382581437809007148743886420079415530028944177571857008122760317731492398397686527405183816430290570848363450529428328915298674808745806734751842716961986014677017902156151448639315997362072987396250814389813357952613966560388477724161352286634024874939320270937858416685563550661243927188879752006848138135742419544720645260220413192113000044848272916886108643310412082802487808054514785795230891579005032770663658449649065062890968287097119346619709734614586275129266618740403998068866740276061935098439748968950820382195344571230202880740071425058803147735973350365388510568468829069679739088623977229487124455331756170945119613750747384779364642656640544846025057171153706447421478717540023833500581668798264183030685537938750533435112294984294900392485335993607574577317275241535501229573412939296079362821717894513594205083040518820622818327770059377122590987599953071260713450084281154052738425907345434025274836182923888331714130080476508380376949670147638945273866367916698644385409131944863326601268076461542158776330469513495869400067362878866087708102486514699789592537272343310048248288537432428345213019353953614941892723832652556101345280331652475050244136907457260408216536857972537526685410718518272965228164592965020438084223760519620688429233831468132663121026501239976746050914386472993259910818178335514065148071964355459145919050639138308355365840715147751225880934984153163433601707949813996756338450853002453152180766228848151512748516376266191238359919297732127308714769787958333351998747042522442629402705813978858614268963101946975428995413225152081763104590789289418380086533381465865846690536418803115560931643325312375940493496950108452373465282690372056334918648949534534437831903528768122548601286642005131003814091569169655459729393859890287909047594996325800280231255712563551568853458437700568059496484156046013178780407829684452112578317019070348046239343827129761773130734633868144814914520935411676706579149391649708421304772132443968459832228749989929338165520151235841329050293754847960063941183754516351840009165541918391968384248754831883783291115160740691027631036161574633407362437396325129336579190209922219870299340283458484205272263071337343297382975757550379334702638142820376681437802232466467852658414747343540830045110577798501884259179412370320101205294365150431447440885605948005372321015359142405313511993198842838762640446065092024077162635248360441464872500447256304937376642500426376275681170280215618010785175509826783254652855509737752586265199210579105556683024517182470216413371814469090975006579486066950178682907033677696525086997632654675364869944303305416925146887403009034114343750629457547252912744204103451861715520296016389713566027298789501398492042777352514863833498357503878957647250956219178227203728649382034349191713175280667455656499417359969084999011784208289628511146565034658732916309357200564737931768639517469873862887668422442172424559592917080873982285451162996754944129499464118521155029027788913643875567321667471430310670755286138188143928763449720720190654584186855350601946866169574989424172354164210152112875376265437845198284486045655915365395239140223906676020723591916275696933717283067676290879673607755897862936161044643336861525431021743103623961520337974766624667557530784202275654301157669814724313925528452388041438259410196517671593974759766688470457878819298906693764900913645399493876722899709197974832362327344384299239725963760518574331914507540943015968623177914667974502444659742344480346647743524189122752284679125407730207576094788113877476544169670992471753982737514017073849191333563792792809187850127875138103573822257350645701321443175882236748327635431523833814794277838487835705825230572702611092263351242155346221183897460729785904932939315729314594992838927792020962296698306523674379415124061021628344171004963581621240518744054426005829755895025606874719798886002392074476143389636807588914680850621790531730479695892320275703848617974284319220957510470156271084476938370965972204343236797866775465813184282668505936822272280139560581796332891305210494651142425198437561141040831486247650238217097610046596262734042516614566427718087136458459873579469042454625769046218133502265624365755395558876182735918103401702503317918091159965496301932969073523440414825707993657548663840787647047384817740698065117895913014153006655029468714276960590643351855645864018081335227483804251199050307858365785926779000623518399442332708118273910232525190169564296096500994022686519148278883920855752332928571681161452561897261265692294110299664258734759265214335643138168174182081883386746200857165537530878365748758451804412966961770241630029298179794474451496350195382351497320084969573325461729678427349009082720954095226357439564259051802688506946459341101637178763076687957794636443967549737878510808079172393202006390997103017311869077914171765905470167511002595738279266024402626688273555521154186804003130572804939722964423182688370640101501273848149849108583232329231775744585776056177691804785445505557762402756978121341364531016848039622204856203481804396067949905216916136915085406433403759776192844315242597440572593164546134176354019769993851914195605961433308969476211374590234278106757719451843491575195900217381630726471128832794612377521001807917158992200272007389172415022412625060308856595563369044410385885623888048085111505689601000851958790535810523299564652934629756843964559979007511086929529342952411729796759544464543745814313739020913788827131521442027820163064461390775150633227843962064869707542116285208977550625124444460174757050310788112033632201355638012406763704716263333839409347801563009706106152590591953205743000443034196784491429124577293604500815165265122844604206370261886519895167523311187414482679423931573193654357310384121474563969749274099376893609441440627512960269778404060322004489229731304150949120392848873153687940959768812260959734528301599472654870788102141068109455941390791300148640018032033588000653732409126179280548319481167984648560230603795208624787579164976155494147177347639234539478942206929607581700638533412523881117999108978005241445219475318141594860449381473549962281998880766641662007686771329377042151185545286104722791498689430721878963175883687039182412126528018073412830049829504866253812297224202474898348072687610486413469714911031439024290951810575202450449678007082684618608646928981607704442797626527769024285595554694382933374009748878418294121150146618436552884560291174929647911160456218859688323441710231792918625938264775397592199874536668804102523754107316620775690149951812175932963656272915172965364422514905885227490196280478620062839639441810947399639066969714185459313581109641168692486185463993515414094918557393459091194292234200413526528385899397860578767884934612679048326681638200594845880084020672152969735582855064350257573023787748164302857891911152383636019989451673279006269830468464307550280773443649810199247711703292338681383427186552536263533532519545945848095469935551884888216008010452051032302308524519562451881443542451637532809809041638683154132056008685409582147806882000137526917622177260304129389902890494078854760236877916363538675612294451532553267085707752769197547483263311603866748444633987649951324276867346241030610148824407256050398151651359622317225799986227685820918700273884796506142891373829917552242677941966100015100841105579811721890254522534127985046046047089505937918069434356882766804595061827178597086343146931104148523087606827343567403613557373011091562125251460850031878762279225901546349586645892109345697281784089643522029986617026528988703810479162982540136602644736216334365128687412412688218655933827510262265556528336950341463209902892476437506948177581087572514647317743616547985991282133655988531092209205173408627444403836233296012798943720284275292546114401698590361939458612615407193619371457340266909601291016079552088348579052739964523325527273641162018687482504451264978291351243421871336967778589910410245364122934452475061555998544974826440720980203368853363129486826439769598525587554529759052216945910056006479565551388854866345145116050199290572275250307782558811028358369603075850022488772176906080242861254087443916612078771951826425309378729967414968882629179736943978340868754556271203755800490412769969272938075895370408369192752785104156183318253522659118706347847707886286072238308771151762352667290803776419185606235884403817652817718140401638886277552255717280783967422504877306349751701464833061304929819282177882782609834521959076636777803554448190467764553866994446186586537974893962583172746128028495997297712817250408787611554178979220846924523476157634805132159632256404145847357075815948553736425169132900931951752022838834408111553858843996126028711031988894246837669462148685248940482935420915802173289488335530474495670134241340222696441949357602662480185367929210650854784142336945000383642768332151413979631218039070815652475512490461821139646837467566574300153327792442171766291656414912568717630640453517076998805945945645301670020615974709119618700394418057445350574525817902295503295091405173043480850056804643032247423311815587399456086434771966097826622087114575223523034161845465095761262069449839042974146191958580133599394517237328137860283693589721735973045398399004747819031094744036559468676449937018266013802758978334688907140790833682436884164177691256056646117884634550888367885477392131303232972091863352381603140392252901448134572744497771598016762016416294149417088668401497519216798544601135605703794206188607355838748541660007632615971691785176712265250957497943368085402630564674564559699321829442584457594570327778691522633242506981986662467988355022287574193526905496724762924177383354769934658580450958197619225737117556343888190257981209400454649862897836002252244552923350457421204294213488099974906610759271638421699133565755391485405670338405301692026167341366706116528519451552895023913812382535486026224524580016132547147030532035582099758154399024665264255369989969850983847539541238992943237005614290213150778432269501467024596753440285970981767393013322114187765715247102718571989955772776860879753882722348498592223980529948531662544567458987530531679004562696404800144065235143517384710909252807507070355354012526692494878175248233257142032258428238717206590409674197004934909913388733603572943544572445847935999524369140325845198014856720898528677367002675083595067174612534717112195023475454989542685975453257149694587834750885674528325970189207798434930989113094084708330074609839870221519367128092254305040199604804081447989475723203444569843641554198285578691420205391305758723656011426100842854933699656505863842725768005959416013636586095482792924225201718193385487374751408352081046776262667968635744029083316589794195384469924100123737752948930546993082598021968592754687250731133630879097362412434148998151068663183472345055050547483980908071637672066316703815058183502266918757952617990372651301181701903846605676732301605407375660859132881529715770685018990133574888967865244790882640978235909352663305436495626523904370573865231981442814575947738580398048682527129190431822873379771748491653247204490038630092711330713388225330301789094247100068833326081630817132536230994384055544461791797339674985616989014359298587463250327435367130427646030869956448488898759319401833656709497595073400482488490067094124274227646698641481551473610829968394999816107119507624131808535348765811757309171199331372362714306537113157168612373285298075198860757372523467009349758312092642297793928753637825005856406544351903646892252888223921541548011074034700017579473063237370047812097117421002129049701577055808775594993084545433222517191691910702554167215009259293539201359704534594793127458734472359293905861246405011684736361053780809992096722689447630753445045445391395394554338020931629058410292133271321974695334026117778623215037874425820680695251107901249014144800665429297894957521445163450630109788275772322617294422516445859838336011302727312482565454966053513677546059629194718449935864407231929653395152364640675892988332241603682768393527638434323954611957782327992885816864089441405015928645352186386505070356347625675111104130024363577735559939404897878426008064762115243996871437358364417788338739879589232816806575683318517359630815070486483758011522344789986850261812746416146322997681891935285787248797486433672503973207494644487728579572997013129709877909910718693088367476575003024280936078357735427722564345861224080898838300265560026087558913617816002939987828489072919292342002781108103929367763181147091669085322569860727766237582441078253344750874280525754544845530899946484598493319322440086991770948978170701423223657346731287363171756023416948157476824175012139636219397046924639953807833749711619167315771680309899751958184059761052055155355935940035275603279921497401231185998057069283587036753361870063658855698312369442716958006485154609670974416837052867626229215234537259343530882184324059290324851650686669590915568845981149607286815209229919401574680715019934673020149598131130279940172905059241420790873212193959485533757625352160340557991563257561638411912248095453543964000269324596298408724290731148006514267207917016242030097272999402521350737956426627029626292505984806552666537306312886234387689944400335044944385463458776545848146683799096472732258810898694552597162843579913322446602118684412914193640665189948786797942634751318934328196855092924554027951956026722939462848779162651656407627601188925234731862817469672047352669894268901779136845554813547384619414440566871435766681174498569545942894678029535344331874614271135339840104873451818871214502137234855365633871835195242127344342290356735379629282007440046319652674892007133788791336153720632693211474298448961571839292251391247343555105824622405559867467337597885344308400553396540916497038991592611610670100103405261150988671622486251916380808971478021682913737946403033716921168864182665954605818508056302709150606122942594952021190542487776770256420795366996158178936948471397282938849510203891301407019293366012178133760257934055175946496250004125817116846301983088550719781624087228531774430838447321643421297039792961333721875990318189626780489956704128368418073863066895792390917516961606591737350607529455856163011308834702200805374511333842284109366163522350847540039063168107725002098628257007650670949080798088351197483872574799210583443512870879952300151927046112975447921519559899455379819100205963167052749254966170153014406730243198826123261285732577923210832906366042573864030998668214290647073486339599074965565839536583285114531383925278265881630244781154245564396163865392708384460159319980834367110214223153644934823886683651311206303431220111538193239069193204926150209896352642773930480794590010674181225461973654915983595086084796486657655123881551205361363573328405784390920066427889664596642585836580860263609610362830246465754470926298651069629346152181915521582653687984158338589988224310188030288109236606227416080230355805162851479685754717308252732694045062479077881649903766394063222243982893228676783477742831042512367190827836495469072308406885350597957966796930074538393201776016845410679361384092508832119024488472922507471245647945825344841596914266497964773957478316444467330475741561616184354680654736748198636297009816521607740515596570895339256023028563600702073975245934504755081776181442283489087183963838766239552209178090635107908534813495456913395596390872957207949965553846711446177315200032260420680988295011111678742427254108577980663042235171450217774877873803558698883648642203377784361148346346860218526141277386644490528113343031891605347209725313316875679461048512756188436141859579508256320031091648180854452518455259997053900668473137665257058395600005757420723362902748798224582919693817958713953111590470877227901307211143401663332606747573100349775389265030430920022888947044491595669683772440048846214310494738912027063651481482582248866632583768935955698642080226759673168738813981422298884027078156135448203292958987311366656433042730252105510069771450229374152288927786618863802885347718739666383715371177149470135053984088471121109925052913216192280160170882485219636331220990313645318596863904246144262079239366619694801881296366111030215403683869020691585377125373729193183187808392772802091295500557523925674235655081141822781223445677676186520372952775866707548102188499850574481644334036404576800507431054185470474003327699391463722759218897669356680907660216404020623038058281154710235596165642742339561875745501772832318317091159169077920433067511312433394231334587317357745403284767097948236929946702137569516808635180477868322002823766733874056933225270962100356291525796504031419756766323612791948078601201258896770451464463989229454443834354804138653626636429122634037742600228764734665607893868649338915655394121933141151860667880464544760083763184983505358581899795796701049092249269938856355077239130955367363558913779972665519668073473126762394744960005337971311082283384110678482955563475804095674410487147834872320271193853805955107259646240868533193035432526808641579607347939753801416587012227794544279117463629176248860505740153602893921946578393231437193376500967094579582515443163770247423051674383029346293861417458604453413744691626993230087608588298613060706996028148572877798830557035291175319514063549909112682105349558316881857762244783077772326979237687782867194967480730721971132953400900377640320969889543361477261759060751539067266541475446184524957812368854890270490754131422287620038755431542073718371155430180699282536437299001530805897917009212912345706006369547834168222925392116807671197699923480196084140623209206052738832103608596239015325621815555990578652044991616446572399809444832219917369634353001491535859333623391977737804794428371421606971872997823985590737374478844523540924254583969897903923391000742247639864617178725902624489051781307680888747372433514846683119933228938381438555490149717514206103898359952350932106311840008674133173610991563565539929772821643897148586688803598355657969625857920656008351062052446427047541588865764414573361888248456875009200491831635671862086166884436717584844070504640997944868269677628199127606211517085476891420435755581487453417374624928845997995958851359969521140254482806473549793070858696593371840694154393335190565507596332613428921879237251380555980870612035560938623180701711205096339312996298115602277517135091129173057538217191341108936272669234398419436222648066346992987507330414604691189792387176088021017855437992934081580108224728636133417198152319866196505538852595578187901982281408769157967236198852090581631760210726702885800564000057016742723119764832322531232150919614985736951969236922349836638811274981695079578637822655116183686185475162166558173979120477948338311370308622752961243985514573702455529245558329383279838452848809631146680325129714789969552361045025543107055440439511170035843025002270289838288879315662655776208431733651194216700144931206554897417338463013241671807416553088681632532477807569208163180725628820567043437099350953378680061724383186225692064269500083135935409360673990102887302554814000061083164647533835516443313586906607322836833207101454390653130891582853458980696419124630114132449527860578268129717120976773081245790825728299169085535753558025289603594271434104448973144586300725130326668315505604928083970006854396102566139825393202381842786267813354991266706896047928308432937129395036647633370191536756683082046487717856725429054685716822468401344084778957088470238984880062789094520010166082443250687521616486827289941225150329479283556005587459745908942281583843286733263535924251043731199065505322941918321248493738544438665910345560525512236383758364556574190302818546718520702723197972037301229338542558692831449158815231680861838528019554164652487431692877373491338744984372198852588816507022723804243463337584693017553921995095959445628265356776321549229218569831950531240763579859247516092295235714366659221578812394244636332362263729280333156569646954505669767485398826419256470733977772377730325955879372687449329964503657886980419026742417780292734923516295742621684231446308917096894284442581990419121524780473521465297757657155604071932087313678443515054044631539406619081801196148875262686144491598082234075174911638358933083592305687049039845197681671067781297506234043755037837991951555321723968809576849890153039525661356077064804730252482012310828050774009179858281063069121424366230200781359753727614689685483188524539203574988167644813859342980895019548246632966804602810349291048409551105646120553850732393312491743247779274456628503267155642327736590250328086563688941752828262303346116546808013604067435573437207426056634124016730955027415596258683458151303980045472551896925070044430246802035870756794828094165271088837569619110887938415865531965696859735305186599749369554612518725968929308661911375299176765190919069313962789650662825348162265754700831470219712909804568332956684791429356049541769843180860144748230931842353359872226663239252194104074512790978711303650018669526206129582668871995679383666402446016811758225631645221709124079221898837610940687643845574485794747692339876561132807821855075504237693052586120035775793996094263843251956060077675117826988994210784494018540572114316587007927581978081818851778737152967634926908038051482582111832985027357601373528205117602043675245891100619909358730357240353562085134263057572465828076024673088648316505157055322421691707956511851018872928216032124087350777105525898058120732043964365218372246974255541757372636497873825052668482004863883715942872651871295928448260708037278415766498905309072665144633473502703602910194125784561409070279878249506635456608957234000851475805240524342026864191968093059865295552978939281238434078370932716436657373283679494564710623122953790899540891285424210561680806694212725430111085940916840010572822853977196396853291977930244362334534463730676789414917005529365733285913411445519034742676462391033450861664032615762526341329261746177490288368183736020569955889303755287001393269036143371677847158884221840411289290905712447166282783221985484804181221128252590887579472155224047047378566752772986518584382362071581673869618180651609052723643611378085311772733147252323494145955565237995336648393015700850295578913410590851259674058786222755851690673354018203647458037085229747364580651499354516691363453458549644287789474741084749575658146655183401918161633616915633916618163459860132572242080379502460906609370190267290447023181706404153252484627359356444738741967587148052472632608347399709378563731806936845519115503121447373039005722139219270585692845856961713458392930216701757401380497085982608182752406241656893730435360936966763443920040036338308248420567616013789828611169078746293102250340357117366195118167544457281125102285134218680890931112820547010529481145320301624070383306361567939312940140242312646426718930443973198674029352640100805312952149322329626611239255024019111313053578856751545366310042577297207218683798031353947948672132798557549986569510280051266476251004072362781886098326964550769537622352881349492254120164526858792841579775600697657967314072879511073961115086082275448661690238741314993827487840953129505039147431659217377610336780989505132706943698673972131457079506552532471465484056999576984356011901546326307232656286375992878358923050222152554728023787482024758355017673778054861657693207460108500014153971686074592249254141421471874125657711302731775866598179668318698310608159683726326126420748361910788114620045449508066198819439938288898080115607864548587252735727171058170745195077008838190706737087065158640475901117394005734210114469490694655956130561744624157943685221719413659907306902246378717748481895513546361918457750061648813175830832546973407599420386761499447802283888690693208670457055953264297162950850612001574158002261288903444206720075348644124959676068827204539358786314251677773524732236861238416056181763289096643377323081116310789775863244880768598546883166129831555725624546278573807536047897859242810596023467570593191052850859612166077428296043291884770698025245888578969702410387364916650062485579177958740124656105610606294721933624053649846797138300890566558826538242737865501909748946655620588511066637085013498018448800769601456119765172440391795207032689152045338600662447149592455098999670881322801020383105436645154184205604068750932561098442883200855434424286673836461921194288478724525956511622118696157917044392159339264750533807635702444932267906656672413484743110146614583681686893179290896111552856622732960192561528057312498790630747127720414342550999723400161240142551128399134586874745347165191278910330973466411201957027447637332722706917536539066853601026512514574749663998389308711192344059035088130197694596829382921288270939979612537392775224487058945395920756004145860517890293639908014604539055633033688373266198760324364795293261207512371537470893663816260680711357172838670295589857046548241278495334175792519647102573224914448991950731838293892198459452071191009807495571972859970996263275407470236446933831162026273353703552569678525118367121096331307512494189244140770368466800278069392560868858424808189778041152977953734663669733629174093918908332090165725578167571952440102638160774954438691272022259489293132831672418895324866248730592187872669284821709367599991597990007268669665729914495039916962357497962262104030496684103023696814055209951053158937270766231066723129384959837644610639686487407404685580543125623547014581453227330444331414609196920854216280465595987785482707910636488300406351028740765014942223483320992835911654974556177184040592843713821103348716465392757467179299253347986989836845551226897271599417702194960464986279424462906664214962773438287647522266464807226804797025797280530990636545529202065782818859804442383597018271435851796926204268921004523977389763239575025981055430540207332809963918563472801137918733713678927199346801046450089534142188836039832504783271721439093790500630255104908441216470728650307940992722339592199947496068535941822362003625144601441082098552285499369627997631620328927117040000171601212771032670262502549128419579486491086845427366815007569557224990832821630536119533419354646810146928165934004009617851349880342624122949627077431890683156293812950726381751988352022078877675663162559232395069036762424522066357825350126913949704493381765833340803084686397080633184861795464278410185819814782037965135960904214453221049586556989010539956300279079546244058210401875226964127106582565498353544077374870731249300747241888798059004249924262374520313295700672629470101345544412806385488774669424387204092357809933005945692556913114799116970766464701212149284034637381000969928322129924918943288565481737966497858343124220699788395127950721880878848149704692062794104923465877219192163762843278044259261952133368983557129079410593373649176150260297095134612274012287718628745179557872983620103953520629510718283579392163218818628842327630044111912528527214321049998980171822569784302730791447001510963251480639572063871716175589648346683097508215062649298024447654716354668804720697224064751731610937983825128775431549203270422248720983462925624405535594573047299598007020838899549919209939449787330716188075093363170828777163937124259032402780818146189675431298984390031769097372761672840071394145470231315687613436505716202684967068123473618122182824426707772653633383153369643444547493018005461529743579528250081396616745785824486222287704921051705670973667034841478169468045831418043579925053632916440836042426953969897651036534541556019959969386826917534847527743667197606472259468094155640534272614887647520392419698728004007537624942478612968923132938698516971897592014713832240837720590177665469463474831512682717733520226006471448671825534486198689958434166802906315885310720875970606319427189460428297523893485702107497454571812964559636387233951575350936663450377374029011307077133945210960539444208154550642323655510315351353213168527505660955209805781860390234322947349421855841445165128267343705189821484635853318376271417428882152317232454812583633595176836088236329438125133758971116703170987808296714552480004953965744607509895924097931196062536595451571777172597417610946666991493406514676824260022562556040528905717936711214688037300866945457052319936766678666742251326441749397351966027161113575454310663606849038751609469459641433438740768647589902347199804417915579452486438497507522287886663694333745363335938838757216454644669144877914712078551307083615807984835315022408386725890774201758079479588094840320021195751108831604161251578758433495941850219265800369265988487185323335664153807640820811850315075175768764683162872102615069479602360682416913599687277560488712044256850388835085428547697328736369521905398762858209971182791477449554158661655793855878720511481330442296783603462996528636686570773419631346799289024924801004446391574672277615171318404570668753061564624714141272692577999924182935717396117627674171069659866266316143962880754862694913809892762064723088321462337280744433842083615070815604102891235709174691745570603964277907093219058397762264086371614716309271059251101676393178107872073596764851376941786839456649572269418843735591945982108457547139978989539038846372475046750123445253798175711260326087910155150991509994020693155598998201768064500671121191242310867948018633922616353207589504251189784950825897599849668821418194001961150013140968348870559598984457196161849396554027740140825594955987972099359305110328880955205002238470533267655304510786416842608214706702971593488702981952781123453355139820120354313869740323227959383889178870958612777169336186696293198287766899873744521220093024223167726539943541996482572920527487060321481082114104980518427721763728841154719640479280249072383135688988869714550134990443117288539992324219625523489083753686272632107084467683014167632821171474635032789391586867598987987027426250704353276843388255798165539605088041756051465059776066846956147347124027664292353273361274318356872170248156090120843828203383482062521436247960602838648345613223961686990604178180920185250628854600288314640168713358237903977185392624969937450705764246248867842773009533552353754363073513194656317893786870630191028688824959810603921834272706085652136315385733929346057666870364167310874074606275863921463225284097473527160395995623565214881627987937758445818690366306840838955704697400616402890896536129881161843898502127318904123382168169855535988884702666873715685462326296614897215955071524906901035422477031445170178996324223825755693144207301416763599465134165275627792793880874067435769953207820273350539715527563337935109539374451850251689923370615369359055743350312208087927975815003111250474669609895349758612843138015827173430187343934086337034772819395710073553146653544425722787237577700199285390341252889317764954487583652053639716029387788440808888687673269861908811367959517388541452406395637265939336551141385693798422945899617041138911628444820467762465040919996891291810722964309062979293322090694676956206583005601049017249118746143671625246006675114345390936006355607906612879892673186871937900685998829662578318480599774351730933022547693686715144827103863761718776913086774576620286300860993184113902257566906621795602557769850613968175808618716493478672079446462853826062567146051851073592426034127315205493420870092551790010033627713816864585149616644070135449899523866447967917847944645135649858613862211831028027370144021474400507193563104171203134239010796629932746744390497632323343932373025579662588067350227392205062134283933483471094243357321347663608924036440947969362484006675934716738287350641204458117581734742018132737810855163333939290230909851287344238200367240447615455909690302721201472782451493748415881626948307318138282147575887262065345361110173990817341472930083186323468007087644415644477120779259897250290972164928098916114762269486658268415828091374988524339526312199302918091527706097730383609104864926764504803769815857061536354140430966402579655188482056920146022996831433842387412864839403073511651572020763814848822710986717677737772089871254794519268954596653021661140102118701658130769614042883662966544084516064826334742972392378318473773299833892976147821611764845254592498458202725362961196168929756266704370730932402177194500903199752796777404690039918876282354547989487908253708277833889960880367211674272289534154999378980284779943880950072625913103243325552560001386809091957570657322206868498194378469925611555670136256308788979152607584426433251771685844929225203558813169213150188034580943045311504003196297199350768951652831419756889119828733226819475085065664290071817476507852880718853959154555734957497831518434676823038627344825434031717541824220694039811865388286659446695476132704318460524739399506993995863819481889584080074138630971265149368029103426354675799940359666816253173365803508093251660047833090228264896189324677417198000874832659443289981382903113462022294137517030832334961419962885649447046084213962484236107592618551139827747005451863100504588156924472098590426624598768482061755558956743089312320526240028907855038495544780538604844575756156367937800747119514883679655222009294330664027995833841839878923005645329319500694161781079151813791357222120881393879536752127945231865672649769848868222131754947336218792220369109778264700419891726544994920219371737449671680957851531215899562394295206598897744583473768837689510681895499317516407771335941374938943540018456747756500563194616840577445430394841935310262058542763187539468271918103386987603807159575098419439385617839065551853113453946119321462285504784315556975296206592233596044050704675244281481802512252618153876153255048179297794931293813714665728674422845954139563230466817092823664925640105806110518578594343212591511180618885363969269770546682023565924509823168758099536400388023217340805050309272733996372728127526776083924701418143286547196692979088696181029610514960465242180684378195271417841615326833742929970642087395048535412606134163485662475505583263221522198367888974119879091690569635327307085242683796189525649734859014286964182853219212984460358696481777307700758779522788440362150020732885538170165229002334988841057060551918636189343417919420631982816912464592004528193234758780092248475352685179635408944671320168553847326538177057532907261744483829228755345365368994421950334721570161824936277739227270000064814115030632875256475111353515646204810834629799201145534680878011619472169551520618125799092346852847309934789654968913040224780094694098720120455666477793623491057937216676270578258863222681917054593628514686654675844412695801714613463739862500639169925507935821871068707626619736897706075553905633725986882819311495972712179217552385738488019687268805342273264468997467007860185798433284558939440687150574984283313003948068442911813026898169133635443601783286169464280748862520038110465200110213205984078404109015193619173414545128994181537825472391347456591405823403578572797088279381874656879970965557206170248881836148382180371179382239505954742738061691332120842281383695933070259893372819910022871556756816834789950527909414821889762036534684236664600000381343200908040738951840881595410722199222281092692180095571139274089346037537744060892422929998426307464633087578550698426584054712133549150436998333461404866584711674613312922603245137015284634020288725665010954229068888784292746209185969641270061878677791650040912454757218343694667266729463958953307596948022374798083849935191234766225464874412299866042350835171612426903496737409886051903275202452377718027183079783380544407603270595168768155335338806450911702772987660645990593569742128513398307474969431746016449266817663768136124371824138910030164960765750395323280732869209177753355094175445061883865119912370775005847423545457035500297651095130220917956934407461804306381026419864466342508179756329353768917781656806090796316040786102311696487775540416942307971759548867727327303916073600017612459013254822373292425169346102672368049189708304605606368961395786586903182017238287996661701931243742849866170527103871113969979318327214772615398157818287209184622149587035115982168337760061664931740121479821364472874459297686734326813530566648126437698583050328666654202903882964395292809875187979179499238896849061510113927800338685692186579713846822480885184098404818481421971858014340628641374743374912652666727481115851107880783864443961699880572403146973157128897817891687509491625729342233720958660527401911069887574043843390184244000383566386922227014267701228673498732841205906052856224171103540553264273218919363619594522031686718476527759942452110706767714857565857809934310447740184954832869075488390387427054670061374332742031606823955777441426808810157253116977871235408711045258054958032090096526283979282586314297711744593746410253113428758651585169380216719045246464807815785340258642102844059599293875380036344047354147710112254106786566538861128179101375791259675780184770462901816666864752830804617104225969118077202420692115999855404945772010586112534990489795535892312136638788614297326317715889394197195296607853318611787342526817112556118458471711134449774063601545882125341400077161073927618208112069121150784892277640527681104354480590593899284832587359870572537926854924811158238375188833260960873126383235711050344841661666727905194852910076080664174250168508200047758721096640883609945918327424977044536485191104466576053917448831928585308493628894917935292193241218831574236723459207956994375667643004177665415041457256360933077541482143857465860789037983256745339837050813162575630298195093888981933658200002232238231436636073071188339309122763664803668635339035656679803338568615399546982748049047132110698284368264780079458901367731874218404428330174733194934483284591603460161618888182639521722028685610246502866673400911285090530313606110610867606935234564064785579192182420378511183374008057194070592524799850768003156924946355737576022509295015929129938545758816523727727337620591041524900678633063001724637876199528605436335853784604812991620639852542230639504091675907959099612597153047044969324990591077214508136758549457852004167245645546467659261790324210370796879419880263387807871359780490553335205989249546602787845035529462813439140747957045223857612936395412715534625260781540736780951754245541052681939704874824714050267780339802121900860848660950014513450720168029054813912246986195453550685501406904662877111410362070663123116857135562319216249952402157570002226801086181142540066133119420381367589724296621139392607230331349206358109307782801008234497467372211298209525437044753664111851816969480786517741630541178501000710129452719443324446552519745512980237892182240733521147222813279297128284090134657308159832345615586606221601103140636045205077239706779722189183664204999631027211609627289061046642805261241633930034250458365108760076338738658559666589942956797366304230913375609947146669652223908965280637788193050207095779346852171829192316316035951629199102034005091792424225043609401413772998398858338849983774436858681806064208547191750214548432176862339874471809905616017536249805127584603507743073065022618574047008459638507515962754273114764616933908323531205768307687888087190979887467307683115349293421252801729530154986638678119588396914883343089331423634647021985921001147695732436358501733614954105441134077491894744918369985323771618924049188723558793492932873867408344350236402554058404717703305343759936666419265245146125282876890212498461417263471414092477836547873963752990731141921842385714825582317577963826886838400582459226415227093251127242845692449818391013373668419210267980391165907754660732075865151016930284613800832398749975858445271673375047898882658882160380735975207225302650880940372561041424204541251596385255696099805909628182893604832489891255027562378543557198675512329684647767237040260795352871342605552116652630495826843373926523427726649992416513071854260156689394276720988916305157664074446943990101463586232095903462517472253813387006137654670099837977204028131305061037242808839570015328533140746719104253667406783695781072912435626541687886934742347363034156150279609523718103502906156503635573036119036262818473083614706556431235283161630550048931731147788524620513461934465848754981126783441056725923063261448771474239601786177346889584868038641671363439027251646598264075252237747348059316213272295425143952495187394907312631313628980250088282578194985578221298977048559069556600071129792120923765355724000264371798449249095208846802639327087791417874816822254418714660871086860632923802955808996415437669781234202557578568292169195175145464543998511955577013565107572274478969617534945747979389070850956366410335584571984767260095471722267159540555334937458153336637172090618429079490277772777036283227090345439580615683071825378927520863408978397027102045591171357469176578335992625064803707505811010917392850569100510301598557689762198878044059141850863746132519472851289297777481197367848079532381891669108832799931269575721012801602785267669912098979696101540264756273411070323176056100716355583827133260922777848343940398906458404090217395524830968390128155407455731228922465704727920241407408633094986406600903817692445297812385281342315624772913683332020503779750281435933401400552040820980726808536744792089606500246131537007124501498692539745603572810177976806878934010206419244304422645665211193662543637403939860713604710623344558593742124543203720557848177722909907427974305202883661126802482156921645770135241550031903709715930214115036810705628172040863083518788620764042832412398617390171694873973344052966283613898687834609038332687483720614525420356463923434248473625866227978697181518551141145846589160633893201970155064806436311816431285727515454425938594856104897050562423481582646285672387265891259055269152350874715392689380580577704528003748308808761265485662761065772896738161232574456574454224838467948185895190996367895505532249099835500335683297222597923503003541037439075222995342927633344317763426140631440643898844991535285137909870699456583010170054595796826435274376320138295969109702804596317465568572727223258412501920834960251328075884767145902577867908467576879646387570713532462707800914769068621589383201214545288858863357642530562421710094397080542799343983475977647606689479460912398730973183098079380502060196137568099817125750187292281047023574223014562573157046538804239966728066070454435135934776954477614892193828750647819982001021729045754795942866780684987056974320647276647077744115217788207459107077204998695220177428497881736023183954643675674428001298185851502642942824183790231968364509181903754001547258929377249738115736223697891633687572978126618655819720153777155202605406441598892710886445878735660969074278069268200576264859830668088081652452171534933061917623655893484772053955805874283568264036821408411179345681741690600311374989928916066550051421521817632871464102382740336566833741998562720239546619410234684742842307012877533724175840146433913192564567722579721471731635213450752633089230790357200568273948547333844951768623488715689104179742610842080628965264904150279183764049779443593041047372183769442110256463112277255738586248180607916158228136190978346484757307953979529701343317033231194214448138760120983592470236450579627981569690233016603335971832794792995163417296542185427120710443327041494977477629430009409129342583688641640863184382385671478744942441692473346938861344658293813852419500032756346298829239539325285520342841058955835286227801376962681888948093928306202300934575663722815540012958116868185817662029338829824441505137240163981554642112390189050998396303691970524072285899738064700262726263993630574940461642841712365224614028282624675443706184689845621584766621630805988633717155763971653623620861441614643334767988748375601620764834548592538807747845239288053524156722481350552468330484172395431666910987540938741232358275206201560566546058253580279498431665940523612325477964563502999924293906914793840536605885984182724042254540861398366732806242898367333320667833567037317497475190177034327112788900715722732692774633465020521518399690291255184735358077877451678646146499353388620518556728178730934649764366398012712987286894250273097891648201763529430580010394930032909712426805802477039659544515275755803785956453350236903816030560049946496485866058443412788545978519452427040504056964176180571274569457440075695834108008945959565372045634901996766747610553870013183621688831322416844094160430810687623690467803729004526519356148053729271713830812905671233133998352849969059259757679042462444606346673962933717139730182038361815375237588584313534724273425382693686315128290193096085536873632444266980878612836204482238547993952880538793829316360402254872633558348271925800340501170296819875008019600901634773343465632157086109723736783879131930357367346970756182653174304445657458423579323799581973655185310862678771104446031362828267579623227603189066905282693507348285569052401294218754389996072162741120627336287133678741498248490064925223522512116080266740084943352484714709922065267846411555367077451414918263674743557014432856011093686041590012278411702784344729603156108123113951974994861895397696853196980288742207572637803660693819627426301830491338612133370192628985195325442719013216194410886756959907050966635060491615929283978848924207129129766548693242736142835291922210896340120956474869889483572844316648117977493968399125329940376531334078645818532463289587736101115467959131084791384042000201209421717438599103142828276071126547786130739616119183350739069141465936143334436490411851897050349150077934582886790332826919874908013544967078352231050312283621919371542513309922017916503115953042899897205447681767088477415581418424832689269341140387297458992270937267733573502906647561016638814057798526343942922846835576397173800757012094526440857091823032573657199549175262165319021897255581686835604115766039684244751401433073615907226874221213880743371570861533134679974171913839438008814721979900567817097616006320736125508535177256915358080848637578864813479101006491103500612130446698470958957026870242100747586090147999111249534885806730894062647319871135436867476257525618315008153556167168335496754472470014969157824286536257557556179465647626447881206994115442156474060748372698885365276207922817646851954811232873738550680429110571659198393445838991581199160968572051764009360788198221820059927854449986992993125109998054531137763411736159929516497265352025492379079679577124257314790368330581142601091380124122692327397650373598896726906476848525602843394908948807539846058042028690490529178050527765565188575986316721847252884451433646367473741167721325120535473009473255170474963371458139653482366811430800416651605227423210521126836616867828905511405621801873512404898051224180166156551663930684451231616478589721017201846121995716116761285630481284568063716005763940349041023814801361826814763877724418459501705143162546139485951020758939477685186153028915203860455067187187197157520101555125511364274472169477054415522068755854565111750786334890090328924336864925493474043858545819729531280634000571416022915997437995870949377789959743449821492686313188373242653425322072365991373122953814816774767244572832768457107269701854385802929924098473758171232816554614958048114170657740758415156471160999023733312855433523504962881432890125802117357205451981181557189177067289755467364307142717875439972011577009008383364175988484215606278089867771451750098543999523099078261870642111100224706821219673337014817007329727436546007114110850270834361335822309462184666537543350776287695251866937143824141505301710959431778915297521188458489786593422563388817204705517224612771699436023668000602287976860530129106624687500306482706557166710991640346879274281828641586857643211575872280050173293645685540225115807639807826998362336778163575700195159899584666290623275908938368341968430762189345978809521436250039062433432486932954798167103204566682159596088521813525514762959478637458331031821625202573981750619198616671911445428491926721745678538306468074592865691075776165829319631357442189907401477793516427115698076235414036817177299558641726568510864447446051264094348823087643538828176100142225352761108199519802528138217832833128599594496414674442893447439217224094895284741708607254516976545756591180224340090424639961321549853186092365658362213034350267620695598513178809427323365384633453294020714186619004063851798576401190912713037798691465615954342678395725475003510381111809133233252192490749607072281215138446717199965534578203526553953491025645228398097149820312428252242670163357991663113796543734373240002218557310791103948366146829537671265666817778886638183936309638541083410576627923794088866853552132501362957432546436044837254372794804136071927216793663888721992845811777281925105795942945184629524179321631902578788562275013305858130399515501536672352185958753479623276685743240679616628933327347952416464562046343725396426767850074840307386975019298955950643635416788015233253760121277072353454540679745408940627354524997258641442717617731611699094387974319709209499359063251753993758223715116377531147309387557214285930888563229856242176287655855414266482266555882368668008429590328141664175091493010605579057084291254609257059079328810556159622756636365766911807197611350241710789157896577290297673005726487972966120205168484132297715708022809507526595744744698928992886364330713534945838739746395115383282018791038468611347949734807735036466804194483376134056435367936996182453550598368138663829055278769069249120891156137944423206027456789225551883634193113266119159483342561396966704024895831582668456602074346637959913579114932230408956904648859896038605175117419901684914371387322169202543614549592962059685056203455689939586024155235507837996101496291836202637803296038741288731128161112179745903267646077885017708652764098243065264187710803021083093641698340618577536864086326002480614809159331411842981251725510288761131763984112844637948093361332522626589475747169561330302588867660615309403922959617437978945651646151071612323921219930559100625749608194937306512412828916099674080257963762362150230248851046808286038547437841816746150859494821454426171934449056954487498713597765095958469457572309758461793721957656426778223066994827283628356493498008874576206303787496845090507637534618695504226429502487126062503751103406398423003101319902873556618951333603215283913141042759671996276725116721012517514540046274942794367419279073426827217979774397798389306230553324980087513988083474888598693568235392329402187542401458324721945834619108159379999783213120169327641672988778471914426547038879845544101542275477248793894135344550513858576104447456366366322280148585864993381317221064249579975471996005105206928207798685704777217559560212177508662194798873034716765838060974957387464302754944690773017138118053540289782695970787734860632610680695438408760935612540036441216476532788089855438015392378224886221282685574946888510049582054277431876763835913999446065246115924205323694860445415300710379706687768051750887568915168358454024556701572344473988444554740818099553977125123891899189070823607714539958639036188938666538756132011276062965101262715574244818751262739652948043170255758392027376805417924074493195498596271357509090086760358617849197998764283327219536661395545396606796807847906277338812395065766215660768554095521219535268916636805261560285259985982842830393560439362135907675831130311221963278988891371946438776428655827318699067352045933445285388115055899809041886061427336927744020097451077896993218165132018987494801734669416849353389683707240947857950844300322655233922596104384213535451184034201380865281347560970041010704430789438675281804830474614958876500056404240866702248095868072163836671885546538076000135781635462750796357138191732633751519362996544664442897024603534704122404058158017071490664105949199786077288138971404942383777667334008442600327609133621393603515141713460643986267666731486887987215405444748172700336762093128337095796320951200393350178906137647433001809369150621839129044665965223216987381431700065451889380337404695294875488841828808004421684875907351068195789115038165424079792118784816177199119066403348103416765722477077320636081463322597364868280286748635135128376245249188210009364458633530187775676960479390175715603714329910149395296796782603925290547977760681042131286267371063772708908112300027821406869818377146598748172268490493251487722640376609076229938356333675374707306917187647101808759205767236309770228079566923061105792081873800019201527437080610100268613003576036155816226180250304187109658255462604299906514156294953239187248394316616151393344659498303630945557538434990789808704908077908346984333937950257614950299472828178458932253891301314017018871434450994334881090828875719085027896800434996763167493118611451168551921390330537759140770875936488025550123798245529408157450835995154500032557343946720455105840954354908387740912494833415929965164845799558262721764625588965707410886574874482779423685539270035300287915242782825864741392518680846576811914811377482182695510561815274630361633512042993975686348715106943459024028983148124914011591947884052943346277596195304291268842344287081056470688228218467229064354807455154554805121002745687309705384399420223166148332783194164424350377399425962426979416779201588686708064346451289931506741352298506856423306987181741788774919103080709718861125066775112849558890204639779497336847433536462487395269518029718683658643102258477907568477304789245469813896826526480925607840790346282397883412498837680046876035127106434035899274651956532858292666601712841672067728095533544265455851693587893162879665175888530196295233857349708835221399160929265084965240215151869061924462683756205798652742596801736693868803242782706817195474262827390022975577728888709212915405530110750608643935183262090640074762503083564108919338184250669420448556105934376050600738733240138960097547124659650722444702038155437473746062689568036086039371659716817106503253213896560539821749768665261564008238886421892830228687124972910412810899572275006742653370049980293671257560444687668407100407439600419603859494464507073572989718183626983370117572168279117233458355205993008730768194192010780768565091931049332562491066312247742882526729593626108335365582756532953300671138087229742604735964014748810123450982485916910977300478321312288610521901757696841374266450316826109922148773538825459813253540688194172300784410806723065668248560424797895041089296937685933841322922973223052793728223730186662469064351068808334387141630342688531401400235233038344526128972303565230222696387953715723358418083229165629751949103545347396347391998954205404052436762251449218143582575319119466293262238181034931338886816974128306321702312250936122961615841319432794951745449032565651377791427257262468591252719651611724228304825867471512884232638026086673659994917881691366479960930621855417090542854182756810656074936131556420600228089807425503300452112984697140893651787996214081681663399646998441490699501818059271687243738751998219207474771916334524194192377716431101322806835566007658741983263828358645212187723958791184740000059893504379380461975865842265225108599517743514210917018927218050588394064749851141171159058933049573383314917092992242919747139097450618112792867832454792568006335835643155624059340105643812436293158365641349888618320273051739781098426619416158482199913322729432967365176590851245484594397625382694671868607115546441872219612307673199288269944959993066266981525608127078483841884623930999934284124773352135258394003195170659467425953197033489132091206503443730742624296687661478213583617749826839546642902256021390770931483323075565527217222530997620927972277050595520375412082528049564320099145194516514767745868554698300272708094716579437066747733846621192497668570091466823771201112666205363316735268103651711957098129213408994400798649464553584816261908890993874933691545672868329000810084668470047051122897534492220384191587041011130039785648230300299653002938455291206222832895840052151388121534169215878592953759046697091718623616430404864998545588087403008988063638077311848526719323802311826755961362770933778683769753949746300938307194041308474344488893921046481297565670996818894286340869761860396473495542562646311681324230574795241476631877106169583378940734953291739283481210906797896895647762494099234176083990550435527473478401642983953384973093773070510046903700487075318133453068763544285545586003017847113546508297014467263829510433384047842511466258987968743531835894190430526477156814935883011353673809241590380449662898974117283098515123627755315085202460836874159186500408205265775395036985760532475449589321491850107902782343738376044703119408959878395771580925300624212761247981441684233338357060700666036398665860396861577323679668136231928507331188191149347777144859062043822830121266698336521535084708122170727605538741941506039917092154205536653842271129179452397860722861478997470687493417393818552367209092278888463262901168072990162595962993324716763174821421068358484764269089918594192027954609743969102997184919074799516349493121116976547271135397295639999854170126198270765726344786834182226106325696031241869034619880569314775745777759778133597502407495274941634572455743723506744553580982885208252308565708657779489400874606929925602399371171777602045852658783743550296386595902889045374202776763414200092703580413191705447308195357472270755535948532286053211030864261270658897687170069209856976474014438896527667645133000899626979056943603490732101800226238143240651178686876543743228130719980321585312677696918614505974845772025722751335720961405303778091757209047112220259318979417558462341656488499012384188661329465462884128037078407926357025801616582997460835862351048455208986354753463247140920313203448238586309645238116714998005949586957216760964676873187746802719471322712865027259100936816586902188189111073031801594512412445478421774437829476764138964933808797126322088346034154039704780771139339977377078211165659995182446792564537042991062541814464965453885466846152235042075410631413978646254880477318679050712340181026150371653894921294957927380915823918673495039581266191603228183021739197383511723037867523540063038566281215214569458886579257310959720363772948312578174679611097647070712506920350987490649857152320685456370062297861434533553475590298099973616914770252593222578129165634633585479014344125444422982370742516157628282183138078721077549826543822007698781364274130769211552658041649793615976375137395997454928789636534691547406617735108576901871167336536808028682890627180767655031826530551294991322591758649782575266098668260772772945373579720441152909914314678399726141572240435230353885669507873174162433274873070726615898656337324256501999347189960931192882477140974211375912935630688410931976348157131738731833332534767071762809728930921122902297990917391223789858120394441664316633419177185811770095917432561538098782854275686142766154034136324995941169059052074242302751367074525061696791701698021043941131544040470481110704290816655629198887253584445644699418677107454389418318323017567405400058763740847013659328224832615310049107864058046424853097735643972884907751273758550395645414695877491161665289651606921383497794562247675475041099266228638435830889192130207006448168315695737906933751263325082331760715965766079717455971835963962246423904725086902489597562514594114069884128465500899208601780778865900661830258445848840729863584027246924880592035973306695692946463208368962273217067797575773938089102272891716029257774191288623100738565795506390782622264722538428274056677497039364100514018241035989294010424614445452982298354300538203826894842641425927965658703361166355148653607451695358411064466594726470022240432792681152511250094060116893649301489625209077546161837220087397595480223361077501387203566194664095141236715151426831003981102181038524365660034764551245257131423160990479799805152696052057188395610760209081765475772368603470221701458769359516085088006853929707808939983549317625379376233217311956102295299162933379995468078126353787465398445628605228016097074929493098316035945594006339965909435588475304605903733396533562881043267469467749467750197477775498891530728436099409849799916996911384092918583592215581994681458663328802884535354268033613619093844603143610313199384100059472145870645051937211743540090632039299227710844776289962156130946967145113086332978013325904224752040212364102469272997314424316514173280340862923486690709400501909603068856782839371620001096460158450315796912951606871747949399257153611501309304764145547620477223201681933060737040597454538614433958209714600139638246822296278470287315704850667430827616427879641651630017605854653046716955688422503666995584866998672247510643488596756889938795639249753471042796534539422813173587790765280071251988571369685806181171405940366676970941104213143613987268579292986754114230863573710296680604102708937757624402148410230161527999695692277536127769128677053485205773345578280394637875401451817391676624520254354719299804921393242223466977234642262967576019510724413745303762087855971234486283242690316189306304319404889317094996401936224768215025359393700357247914246364318168086311679390146123184069687756776000139342802198543147466210752327982444263909796419271281630828201220652723510345749200275805455912894582178144401722992828457197278141687530150564449013373237116425576783149230728286359129407005143006923728758197833349068455647299081622918543270318622834771987333017442069719586817046987983920463178520177716630649324907315208041545422214633262536211982010032789703141200964239709907385339266638372961079960490636982229492304926018325886736804552523125494067801640392420281172158693785423398810238385306187982932826496373829818564062700093508579150327205622257496824568433404427504813486499277685669421807040818899520650389797454081620869512253056950334736807186551286266151514588598617060037066969800403644898580899536937378182719750788913837257401104312136410633993906325241580794909234128970132032802756995856489381506315544673772530936224147615645075240232840023506783960605132301418499648532257009789835596140631723914156826049083191300469219205230982534552653011805224528697809606999872645089968523193819854630172582441510506542316158673888088445717025388946100468984678528609467635274583319827206008918288157913142622463575632276000932433217466069075509983691194287005996141018721617722165598644731709057577639032640922950904058230509639876127172858812227094504552290282919726708183693072983306688938731554614593505844234763104496422314255134439564234388759849574425551865427257816249232850424464039436691184934174659116293800282954375368415790392184951276663262939288328194350904465684135532152917856550932253634888260339544573763010206303496360787041109994201686197587862032293932755029527599164187982727711785817608135494754294663288932829478497663005655172995906870877337451052007479207594936397316073868353530102057522175832954048529200892562433075704678652896448279397821558036847500486080058313993469702425700042134392495068662322697272964219895646389771587380807952246545268588812001553966980432685551366986518886026149180526096936819561885885515326304515441137508768853906974026740104625675029717982241104586357086595383099601809822477316263703740093167537273040240509723454174430452986868096283117574303024439321752902929814350487832247747503541388225334640721443259686291258209353783149339198861414433096019028761774492972574430110591463371023119490312184737286374472916706483301460884046655783833888960424331863968030546331772814349396794488776124480031551765242713307563093446565699128408962841422570520310500800905040263407333867411400852423931106850717415298731181518735623453766338995233493255853352589052642080747614025878951966589508135387244840245235007287259652197267360906314849258658276885053042570619245321112771473588410312125112460841524569965468711733976627167081252775546025840686901559400626746045087963783761203023858786388971439597639630794841752254707756482748730753192265917399002397205409513293902730654812199606216708186531447439246148134872065911895903043735840676433042715326268339984827871994741262445139074003060918572234657052938525462754421695768777968266197524029982810129264747427074047468998428114423807950870962916308740442090154322541742791557520797270900744087991593988476492249648025646784275481362239615003303272915332364238948699099625785770921160285646159289804957306472722248212903674883244999905623105593186686992558427918537273979682383318732475609992682936889648689006998924991964770703122275809763536149282069283429694302562279859420808223677610144648863717685458518356562202277932493497276666623792698082023829446726009560401019814140890060988034408645409471910828755765296979889027616248255742289309295261766521629051858960368792374919269399035810376994655852274546817133225693735363892654852449213255068031672456633391844623395866114990122936807099267902328722967148432549354991059523111239856453525514347871846079616965534932139153208819445885949316362239281832740022535851548384478722180754040321823578628041078667490726998299222511615742768000453455663386849641070230954433249602160541875950992362402108819581030885807685182889934795726648093835059940731336850638299524342602723079874805031575691883264292356293677486274276711657284223190371463961493739601814234377438890842766142035369707419385938122964293704118432210391116930066470701280346170174707478176310623109302943956105968395405733656713261707510494515399222172372184131966893819231223371630261446983421670175061236283760880269963109871281851557948505282595209025835478641200888515399806120149672888793090878800851070633947602664083325111207709695838146674518718161282575038677958445860640702434178809258212822277431908383260939180902134257330308373140076056584778545158654595837757209280052233844699379862312384831719055308265695000853153754377151378813273137530419919333559978427825547083963677186703819123514863137163678796373055120624660333602672699108069837709782211134683203001876545803345520417061686310045470269434793002440984983893420656457966888731911948100330054790937474811073769245813581834961441319719397814620636577673640414073478024164686370627974816854908064001159761746592827508184692735886930376231877686909467098357480269920854438711727013671449048086459195296924157381282159401489434121878992795081836091858533892378871844517063950963519841557013982570495833844282200551129053876741715915276450620236694832046173057863315542590225611481409906526264488071662311928124966182793614117905828375909067134447734759233338173477868048225750655966306927149067146956289852628695234498744940789259556229089730619793378433895578741060537026179263432731338255080173110563499338994995512126144857600832597876640371865957927137871169418982696995032716786539006778319653308902112496777712226797545622010749301210762102999193858711889063982147191245585320120952511847418144109319363586997346351568235305584822648641850472655329369207137612994965138772678838445019619186199915298859018173658702629349282513125835600395341608103288762543668594011743370232132459878558191206724976704303604859202671432849692807715062151675708807002075676311954716659681777697915612640351142645267220284398130692030669908238178551817543269929765124444386748457798576695539898899207427645601708099410497872633095761553981889303779012695974854756511069498484434090474326170837699741803624661097351256326531081335168178729417815513011998146976971537849696634936855082437280937362736672316820230383995892666024814427952694300674596032069094696080165429568504841599177355595074381414635366867665967821179207341106576732835247601163453070762280480449337687790863784416167844097966571628135498439963872503874471228567824503630604731721314222232002077922544450276790372550678909195627865330671461061046760316969897841676391334039950020046494959703428345594518886496899808867265048622413017898343302577072820420975115449510822533824434768119604654926379312835220838712556491418994904500772073987244936284959238515218164285475303286340143283989967298111629181170417767441822413051620124986260147561878635477140735114563899358384720978091735127294142292665826275513972137179927468389066132133386740249084252170751692966489630983558719665519747725382487064007371069978509611980648447654867475652465840353869718907492753024642643709210337363757616035978609287124543055413603932208343640343612456907459265708201897407909755239339252563408668103451799725642954764912386258545792767859063769101321364787133217767105320387918574165760940588374735090399785040552012449894070697082374674048691400935316125602146077694543735931011348206603997098702140677031624851478675048448873888053492547073862309197425678602960165367742964144914757407666481747590727104216860586527475714813957763707246419704413659197506657067282956833652344690519870541071334558346200872768314250485715393047944052666335043730298585623867776701617196220696317431390678902447801694262446893828796854521728446924633360574377968599023664047761311672607248812605793471818190634134869513151329672497678812208999459083848805609557536468302383833782494692973903885833557097321489471910726239124827546867266931115847502389908869067927538037073102388300224890110625906688797146141263373815054175483324482824975782422100442489580618442676555028446413690117109307433318715510958711026284624716702802884642603284072785703959293006829127327350364029082263909915908726154976665623010330269003461903438503295550160703469735214085428419320702376971227674901734540614556179200581853996703088118376148935209480627198941928613354754056753067326229564812182777978876872730178778422043844889898015786019157409700297839647278101971033296044618673726387091289530043319538352674369569334977246804140452191365816127315120232319094127557108973182556495873696308326392678136201072272295171571271715798672542000441193669344713968792723321133439075904926639077159042893507613149147092741691512798123961585480078390030770501314473535736342780182153059966729482980742414648117201945848667266205158583678736954693929244483681058574523534904008131476090244846553973657608815379423932358769951903222093505922234871178138806621273868000804660598527998631185468269553853836335081666732274866205230735638353247238540241666534666751725997714533223793198913729018606495224032637642600167934324398941336949678402624365761302129220183127555446426565714383703235584391013184371014590263581334449873440765823838624504714425686960362049698649539256462202977055212641965608857380428206236516720473280568230977616537694336919544427141997201323891534101231822374658022813698951503641158742002049265723740154464625565372984943927234828653560985084720585297537616025727349427403543668586761013580667414101571396591574824036677224238255723799998976313520059682145198167597457393245156748969654213148178024763496702485909985537113038575170848258368745113828122130845191894581725235787170523343275731572941605655149208646689864380878912829178841060054681922555094796940545704421636624984976887401439987238652617171096958373720928164549924945704547289779298224590460933523361706782086116279436452934398829245377885304174350545763950336278152254738458884247894762634947185269384285493297201852698010173524397587421459550356659338562578745980844744871357198452338533081179325174716799808737948059796588123913387660799623049087150510856981464411387617565393931545744233728395934919292073180138020962745590788528072470829644421841054779899552705232742740855281892835564039001032931046575657884057499433603075758309815216647918132879861086559470594750542062391786558712147524450007988108572234337774265931240912076973463812494044879861405688798502334708943198304633786358226926557213438884180598718052584309991381715794484574547682465825747253290374966364471034568674701827651121044632478993123560328435388656739437255979084158633981633928401960257575035994124272801249815120028731103965740714711524114627775886351398700254208396928060197619561174498229854862226633436643489637977049982471893975637547026695333736874582029804745406842967733981250483199258289988022221845525883107412512783884459690459282712766086809659384791383732161285141556777291226844333072532940429464097556322649839188797542605346553294809381799624507031126736819902456850849084648919280654084575807140272885848791465912930607021236425273443916096281403868756620746248536340726603289716545455852448943260268980358194471534024694595826090039052898195690402772582654132025057558222803760947219679674279971070098670288446078320578508905177218331771342333427909398530722899743234386083307919435836670060017845235135737665829682278940117375063922774628960863394938066535906723469709450564763195315770259424078894274934434720957852650350910528650741273461723684046095094766473218263207314999056019104836697498999122351364835429325023759917752710835251259872585848855440472234168706874097275795749452208830195848654410148291781489532331934151364168845692769889485965950385673090222440807263801519146919158787403413873542888994365484636885830896042315954460949031990943823215965007872783628073870226763358941722761761908235990409822720063729246104505601104370458421666660662531094210375168314862353655307783868179680625450437265865404588234699132351021759674616585423533322962297767610332018792609201506616789741820040408633020538335042918132362316408043423954678330544975968737143643749200206962180874104810179398795559832445349613264525266260738592144901675433627017012999176244751504691461902170508098333152234735798669519945592910020034924772423024727132075558370020411175962484319450544178316155291067886309053290733459491665012677342485666555269111811868841587467917182263184659310466250735068098932719948708417141533779097553758674940261796289671463820892038534552017535619041742061063273031896770103784981783070235879929199196289382639709668963082904293419720324134798566906842630568715874092920863217302837035282512746650758800072988531379448861970930461084972366987641436373490862806482524623252839675052551538594605429680763618397938783377700440247730328873717732713874266730975632445902844318592870459764624125200612597504615209801027786919765335904865237513779310258636763110542628608668892138082076592183108867713386376218411137147421498329710614423743607075838627135348821199667331748295639409613542308437767385712043928905487192648704702527549986656266699560416555307415456895343112377967732141790427965498032809937288881772100104524087272876715113736653105981884661665991668698289477044896136871031519015574756888423109344472853436933979925026087892151706274260933444635817743689622192312213793088810525877700869747475371465840242813986378807372905208616465759940908906769896865524327565876721555411078877695649191941115609928524790458432451980599601260444703570377657866764399012836124526630201149098919827378995423580224908593654380463443954147223074261341444747143257958436905124130681998445649586091670823387587821032915024720852749251717824942578039378200256915564118990936638890570432385499346393317379779924438424320414748193125011593393524282123284522497051531588947876844037968805606395435212391598750163903641562338093837189077891522447858299758621353424669952897644292409744598059024230655150576323108467371435773889532945450242084810572461045913837697325794477315961021724585340343434377648139209772128083942637747521795292338541507033336154496031903355934050047321194217424746799318140445961258420000843574159453991394614496651156284492026744955121328168520756179320316022882889346278050264497407095459901673124870516664835607539399844352613697627180521021391679186564508818784938580921493445991937872143235707475310946104671555121266773687387588949109200693387814731308105345554062177857849955488392583474382884483824957299670566951114322091456631536320105210874436145475161356817624761882550582648656982906422151282876875409624362914531761896575109922995365886725754439541524503281306218153221385059043561368843524055232101059643640906477130419192102415624039270325963765595781533396038375833578059888019333331558503232484560860802369180991756374416379013747427360297956013597609593440773022653090605108263021095880791186310179026923280018662106119361275936336672820775106267771109140369895258267589448446484742533753337839447075502642251855263784946357186209731142123764609303091056855285183650849902968968522873328979682278101456712498753437890972816901862869300004071216046696584449401401010906356490841026054610362576457483512835936478055398343800955768317391276851934816960765989172864938286323835640120118064257348895792361783569369549478002889483976679958972746590154903335563304229324666861184350896773937400560012801380466734513120867783074755918690285501882768749256316825810082708458968631276071024347921659833363043903464256849136098628197077308693510958679950630543625976760018429359963348668244519348487533750063044836264582336627205227803014152988776256500905908233757560991437952843842052275868202583371695034459806689788641326694284995706864465558313652495141710944722286240626783227272183642479182130232687935933908023166287579680541906043597924123230786227413249839114641390120349887073008905107553995956754774864905943276141078376374991669081669392493940219356346073649883971112096930300850904488026610968913011074247944685564466093714000082260459866763864231709785962388238260164128824320223311545151431271769310936111987878021932454577927794192579588713542078751933269028865623453740640909078629287893805787529759272320533847866020683554883366300185889693989107718454835184542031158587433768647129760930149094854661548978861025329066193370216878399835824216298502267237555862483250605344760774239685005301936805946951269713463999595970545479298237877734872072565597945194474803931996554577230924440752434220144723024815902130269430495433554019566288879223069946926788686012593209757143968196428919198205542307088963244158689758329962335819554344998014276297116597522382235422545936308017043138551573216990634379158685458415261369239096268574362839191973463018228073559771761876218206754050385027308212419020326032415482021805911034962973861622744224124934231142552898733295091449406659910215655493206824037977638123550169168174722095352766386763667508767166041678982742732279425944448916505143508560432817673220300704426468924862439559212014093165370331144536841197774345589054785739767783922670691800258830352941520495715531080677927993039658405349878313707930972774467103610396548142895335678472033792334425526479067941934024339680048691920063913595336585720152107436670019321208659178399375173666563511298944086237206838424522285787349436571402633411908865976446811464393537589618458907775200202722841258646303439497608351209683426786621306717322872965544335732347134567708427557561150587550613638667012991110646875331413735739910516888589033336446072133430967263472062805039863880842633365190997931729551759269842668200879065853342218254999970667584353764652367073890752949908925002937632378238275477248190908871484721160242366871661031774388991030016011071238869314780176376143111378431593559536441007311182380024390944305867571054924011853523252342363944946906760135399776063829754429784303488323930587868225513911310360644303174826305013736561816503443560328630096784527305096908664173206864580532748445950089914335022787657671852663081184301789174477232519886645143484434482136271366875409865101216722126465365951328628749002723418167195882875760531038688008496807021135505710198635039484044894482636671067192789853752584648072812629008954200907011495197879901226633589509280501031390354611342417308360715079181723198820665514564955943232277635822556047414032733893913825592361894099816495712379005049865337257426135050776820941143498676125769472852509274732167391220185706425484945127292905792766992752346237575883828716768698525703262342968609783047602240920037435278805217847171314575480703862103735061863742608929571776850945483768205795031374439180390169811780777186320511912848413003969436195265943932339585692582319869028633881926421782133384939914071904245513153032658000181465501945080638509805305046160375964076188322676138299655382244519757021708364736716225495100753233987246578544647152879310561065962252512984809069264641810975560381065773551336746699764598974240523403504482418180112728854728243126477630738400990963740602369410095333584432002737532396564663446204551911259183808911528688487308672367394250793592660137481114297481832630996333173135506683917673948603090397143036792137854095174074703350379976511696343168406956188100988263430564094991182952576722367912575427335819535468654156444423584507522740685385256852215356489123944224588330942727073450642164267162926173499222517836095985118833503964769712767310089042577589014289466675118690226630570941827863541399790208691724460566528671605130492319078070856956599017729548240054274179572891778686741451261718936211722565720225613598583122049041307103255700254967840726452014407608737612035835584925149540242827556267243701477487722916756662628211498382434256997827021864389102613139812589148759085770367771293125395186181895205007424550732498872561256147027271539705589480054904670298122364453998339866062967971505435945479430544225890731069132061950642056285958777049798408829665963432745896202483650336984105294946300459707748226501866451239053497819827240581795264963933145757511268200849693243811067491986442989723113531359719109866025542996126723842137946687334496246223654344495869890329585727409012266763593121666755836989107849996684712936295978829947537768750106887814386763733349521824400054251499520908679851257635696973532050149905039053872101925527194872139405374792389327234682858672166477732838907358219540276736249570040067041564271656682689594977325879085824742699540492995198131610709966926012800932459511143638230794247249349874806251790554244821807721826869757373751921950639472018554626333403636438575161846324060002746719709779137780462614082731575187033106638296211080082309422210551810011607477675856091242062274331135399389391455323154667043922790556269579444001932201454765989477092155819412957294805541062471705419555876360055580694895489993189881786015844874265638861704358236613440051511257099324010986139152361885169402872926100187296550561422402904960765750827245986874793841739110570880645358558007575238354020872930541263259016686022944771058802181360901174283224141922045634414551996541830940712172419936006046961144044762859358550544251899084542474015172800741397154278287632153039619617571848111665853504196078663924143582571866523778981378460402812700643697133010119715566016105884822399987490367392526282455523827000233522513601150991674044623294626798658274212788865769058647844607662179070344142415699984224319682329902326302410413913951783949543977776493944506368012227019568434568574125174985005225141056865999257149445045423305408050723240229722315103202984025233069734610271702733169300618017971474137387695659160067613973000348235801845943953349657009315488605209589804172092935838851309479239921583508091151382265384751108198737613681208337335021770594550780019486706959510486930592856404231119961672408610285916263384925632431575601216335582395431540040856570819347816624062994471643441873678020829527829157170484713331501344765546080440724336531459506801159453589824259871319338903555063102663690290276096224142953884115348631008555693786753594504266423411144203952162469142273653688619637754456000942020283406981379833230949903464534739484921481211694882592506523942204809215867679009497761838897516634949849724684431224372764074239814234716825689878569051810676120450503168498212388203757312597260931340212502971021755115820213940247099263982700751392568025325297574556461834941346260964749459181244065457509365232415473253729460561869503695696228656513723068329475280233019198414205436054495016545172305847118526176712060080833830083927856972304278203188645002310607282501006343871196034476973868490075243729606513378713360142531668349639154602291443014146540893071528971637153423860175902193103753739910230156355911140706972968738262240322185924862780282847760627333603122068762290934257359469898121852285212497044828999970165571209113152520930881153458747093269711614614346092243906882621937849835253703037586914237436198300299739075661442736324897170077236716532631140422357814963893173356559517179780591260077209073472926578283016460447507860744217845766209119631230439936931649817974637135247147033804740520002471899713403687018605908251581129509852198354748180173642119709381658629398285228502642378645038775953885384014073213548661502931806185023160900131499190015748802087827914222608717747910429168896823749579075895331381276579081686872479006587438983785056675486842090668453737273423636931443506035735002122346008909127155833825683548769373919377456343068758104379354072197574816478095698909141496017762507955755880366364678336415289995497273928695275209676553970662739902120721444464503698023682148002264178515933291621635904665456399764525072669646525551187106924524030812557723865219180504838449852009356698095327815040007595019375773462082459166596283406328123705511927636591013217307912670081840875952058367983805038412008954014646500512135606469567514696838286182184948101521991680812990578875525182056174079615422304034122203554853509286733780947527451477841857900277468706397640314777918099569141909498381766690475735559425816208602563677006038035720458642184109327405554991380291230482078666987940531739037942720364390036734475577770100805370161390662329113143619500893254456853774436118114173487851715991334150551314209779290520455515619312759091336846620875641068045315727575644908415942841081410564442447999353232796476427643356109857590283691497034880470745988214928829303005446116576506643081774014902933602384332887467837740973102247069051077383803513410026075119443890566964987561727401816747460492172773056686219370183850233102364837430628855081724719028393475337712904133151480291627307421073789583700756441758767382491415169683556879451292132325341309741692775275460443911288500149009989354896009557203208940750336775715058285923308057129977523339536821501111823553211679840451793078381993917906326883177924115041650512508195279536345531411808662380844184263967711555899466834641055124257952492983139754931965614894245272762681603039636496546443450860984728527038939120880227112752902380587364607744976759931742209474279961867225290049931512551074749072325142217002392615681941559405335375543647712148489134874011906552281607377474619540796962996945163782777684199972978720921370957101363455936619936578325045561320299052000110477718929431157958135040533142358111954641034008708776196785377752753298735456679882673787259591264034386922856592582216056876286897648135560542832696820940920994915222117989002184044046670081282169588693556423557954231668496834334501937573319578708178267502801690475378480017335893692268300482007184246990207778430428491359038711460152778225448305627856900849930390303153022462753928352732787086418241236184652890275141483007059957642566623378680801298279315946440050262413239554343454752070963375713821947908712166340106689043506444182123355820275671686153520265733096487552369448476387696267284891699019501731287738568860634744002804617585421173902426221488285443644733719271174716454341751260594161083101749594638584864064005756956554166074320676609840778725317953221790730224239011739602344315367968174417636955638951943019141037722007540062305731497993508980972144426207712485590250202056279253676988764313732386246680496748424695873990729677752523260291321361633569151570422790007874364882662637866953587952578259243979327443765440957515005936144562999465976500759490962372421785459071706218583510214912780400165892031907627940509686012438810975429987713186700273955740783742306477096693424697921032132200921155945821285325157882918143894467547065004347232421856100057936481904330787231113277960579607770949235824911436648510997757278692836782951608076793218120049303365170756627099892222471563875696027399743460543952790584766780579047439778919790337845661847059609890970933446498277536833842951093600769679702102153210584843828318600874160620469478598009890754151250979592116458245816542100246290263622315915470442788370616054029641376563867788626820448147638466874179866172601312621957038887466242861073517538170432579327252994476262758871884551710272029229648453396197649453290093708789482752323188115065468485840503043144832268453521902461679293528713596663552608531801156075348697561593386888150463282141022128184773124116589551448107328547669718713254088496767430201615219235585394947882911705809531379716163859731367561784509861062182300761550595253128814019290811154216987740155448986094947885783486416672147188159385352292136445003462923580009408507303663418682182164605900491978649442757038820765591461206959837296632855164929933836099038227067602950477376113377493448431400503381326063829839484474958846730316360786452243353705002134219439978415078813633810566067902642382518045426150998944290607316532072270122578482311285973898538764906452651187353515638716167831131544734099685348520829200589215805194883834716600340836376867652104652417327994829646876665067250162038586477506306721475903462843885984627791709832642641423431602136709320977110469490999657145550084446281592470713662501468999710856234558079179842649941255217727644105357725823201941905941335346583094673106022961751886362220632553440851914172817602712681555809203958961434828032139270886044795842270266339095625296293592674890128545542072350738815018752340182984099509890706168500197478709220087095026833544957664002967424033816583421640416442672511461141344630085235716269068409895330724304484494759327773511180520619878449345571482681229399813540490048724103544750894573701575393449080567773272770757741907731911617717210296323195489521922462489103267088376542787647405899640600936385065289255962545850330032191150201097939952186786348765500341430961444956994849867269316055895971452831685332420314869123685389189263093286756173765847190470270218330651398039328763837120886855488620594289166601865756114308205158029579285900852687457653893494100834934163757692709145672837261451992302540309227314578836566200573339461960557911691605869223497971992476765552092853193439824461515630207874936242916268031962981451013967325303778507233853928188988604120273419548285865314160559612628441397928163653788395110653558604242485866833032176382775786528220294758852576085169912542203967011964722511279184317571317436585687910630471032778398378657476074063139476836059798078444048072446008019508916088810420778951228076401209610150391119640619659593540340733061985281048679441236131028717771742351986924588931595556194567892886975089963491949226699866388768198595390493545044696808538026864020589228948341114787867995894239916857126890369286137662934576878157150979469641864575875640164805493362509918611173959557910069432280427524209680254069787010104009471000064778340486240422973050282964664269076775394853947493625374851371859666444695583264523063789942414034852269670491965666400504781384528743682869971081832252822460663091483238505172883660367606618401866030381029425072204890845526040775123540911387455103996121225701812617294699942277900799214807365586350723102779716805905451751699587134862309026217734121014163520061965785299173865517749794111201311302176807256546246893950565365865395362822358540437942190352294766753773347930884030534482015580495213143054847876390222387154406241402170755061219558108205225134843125164677156959088185741638728334009414449548035556534096086149903208253435840082607235397850798269040059197155606288111443563883497147130114498701044053050383629710240359158348040705546328017115726384146779093858817793757451511702666760971845710351996352510372565165858273503744432672978079162768683238025774410728693604461963850919187143624998784567035288163261894753128831595340945818922387406539568626206256855601458430116009224434355370158758821961585138926653419801957636653415143449972212728655449747875954710551128679762558984192919599629346363000752583625412852404552366244141072272244955934029183343916526288306765068011334639123085632033202326927834479688758470064071532335145345145815602937099878306357737331551977273297264692227257598224625175911254890763440968474239882720260304732414938048425432605917166067439099713840059953735364385220611253941505333816747187491150961402309818656810165846674408918175269551209471746403703158547018071719709403281412103833900464303648231598863065153625113856879202985575500240810692260469626843185784915879352931494435083658542500307535408940249794263669851165091680281764548292530726784281060042466025744952112179773462656434899156913165339584897023637015140763784469824467374783510486262451214470999515300882855488044233601347672784664529161224412952088433134588399725644090996385580747222331341996307302916496023644621841544593923735172100395259689783756927810051541091090135531024452590101860423695156211307210597534851812570609513456332062335366595165669494342360461302057415889215242221927962615802890450981549088701190420512368405414610843263036176210698690844768260608232007930634954842095181467631450261562409305671750689327545720883207697751098551220673882088460913960453427222650690655402285478106060764684676503205380314990043235103222453971027602897935834509422267501078129302896517315856494897622384961822328945394292148205224805058229852952629336851974571180687779997993629888890858269728745358180390613691568242762868261790187872953229790899596119748009636497035160339916194903104224868659931072154056205843508431783501073020484477563748166767533960295944566947885460987756748165076919565566026518651738759581476576487582417697477762079312283809154309940395238572087750246238659637231042403042889642940380976794058345573206349278920362545419136542171803071036818518562978416666785782192784524842377903888830031324639183426982046746787893064392314054122886238190865360273514035663426747566204840323539230809643778041941031156355543100102797392871007511050745587792015491936911431601859994384312073175099833631282314907602189700612681661452427300693994351981004732597062939328591398482041601878193259915937390312827975225220783331241837428944482005026715196187209174743301750887254776766711157713214716435870062337253954429574481725237333356978056710571082529866101892144270700128505316369773845544494447105945029767890113331142781723822381754957998074609842271729881777321341422403103545110372257481690876816546413370217986571830958173591974880164222217286592873309488603462280316060630407144282468413755569139614025577177317407842837890684885960681537884813483293545356777486962132498036844986701672123163719192309130848724738204125789175424188881240595459661886554135439962787189480843282090129006465970085971415517447409761260410499202376483757885744783589528120422654585270768607270901946265277993930158310132940685559111778418309404179781514845460642797837947669151077524336816359826835453567394997661606640479732894820955507967670365286744260419382780289040282204177712022725922308921067399175162521751113888926851409515034656893389808496435444653191472917020903356892323192812393078828731908266648307857774658215015024263368725082553772007760058931178848406189271342017278688698742107713349323452896531548094435598615020627183026853789418584412713233966686386233335445293355977035208973267722788157857218229773417244207172754549046789608075586986031292013446538579717015495670452808286956236232357739940155818130025159642856395931726732426439025784835615396156006249209496270042383963528047624004437301353494551366184009899297611218282573461701619187688762798268739295633020103864680324921548804112013094654370031454680900476699170802513324546070412991158036538896082196256251617130509315430093321539025071628365557399608246741550314400387046689174778911673651191548188445030152663965602051291937652464701962770747911581962102178895312693336005546271426590134330046189175921936106372871025449605673335677683044095896106830754894966985637911109284953287588197414684548339865060169716151757944342007835592566694307940461150941243843205713683475847004021405707386534194325391180551033746458294115499324632161885520338876744779998995705676816903383320739681446411966313131873258382866069240236626182746395953305248836536473167140663161457672624218640008152353172201905297087872733514674710949897030987412249782012375912523721183949316538015250554480886529397502823328897754807629487828860548078567383466582769843567991258917844668478289484568906600045926083366373227410523279876999374951113426353453209707930974017087787475699282949159154352375249272837596179959441459390447513468486545812940874046673000262910247198914954788255134604453221649261660465085238674486383274282662472518172315445944178028293530298878168624256047465490366173904103366451208918569913465614035322279615056637928966852267341278242908440389613609372929114220723856347948136199199014611940025078724991241049388893538265364885429209396192113560189550890263344495435495472434203463821630078008013707764275223389430232926007901044042309440176327313994305163565883243420124557142562708216286926423336230991776605915092284306608961233002039488098262556683492288843000416925863894194757931603951030947166444739046130242789799202749835303716012211412802411198423964886873148977620644803932373363044172083145979066470383371518889328808374905384048629204344401051980900073857070016807651568729240561234836467404530152050576961583575937893009684025788162375699283515139540085151355733478530357638972996006323285479184761139513012336143771949800394960757887221219870794110892907782035142225904015567520278907850692976821264327654363427881832711225136457585193169636132599388991181233615666020536508190597212998289344291085229245531857392826795602034399423578366904755382973823101030617025563545803756108358475616587054658152447833024505979115082137395339940199758168862120927752222760483693257928381774960476621422862644663671885368822521761614945421604392681372067840853716373212836698283904465538992128742752118411037119174280628528913287023915965477356483121275385149432817702845705860904983640410768685255124064989604327802315570491487099649926476429819668756183264690008304871142401138567307202688001790631308014521809410307013495305415125113296890814417097097254766942607712756742416522703978317830705386642887320843568859668161047183066171750973526456074651154194000685907197758898639015811138325562953602234331463617543327103174503932948959412552896426019590004029317100768842034585031718362287879005718470818665876646820919290647471068157860257466156939434470353583835986678589119582067936935768954487596217051107711168653630240661205295542586819406016570110393065462177853060740733965082608093301123811333959848426420403601431594002841753334069078227816985367285614630004464653418979089805184627315260270568230235840469270263993826353783054869906163648377287772683039996420267636970675526845196238278766747305719916675183116277086380855497262565005777660913672246310815315872554334199133045615689841338448405121584592062730863724573364365551514756162348717662425013616156095254113644897749990937086612069909061417367170580865327321645129226702143475651576150341350189035768066612005664269069286943125790994896850708338718446242181557549584091905144740959084715199832982875215800760189300365033731859603154151699249827812469855950067201264499696795375411990390257611891643974144508327706405970143407609962633227228401824103550884510038617568938616037396854821832321405867870177124949449576236757852445428731096400092824810015168560306858911396067626546793809202226649642670037378385944544065930565231089622867936113560676663904113098868510052663388086022126847195832612469616719005481591062698578211890058484776439521154024886289838279691108321865195959874290745765301347281132280084532719134939048227319743682555223381913640101877090118896553511338930554991108179531004715331979927698850340503553886709649406986021793710275323845375289345826981605582353882049211728955424234793480135867519943146710698557554382625868254961834695674559734106341776067243175933712616912518884541236707480520120816329612687334252851091692403512726099240997571530431321452892309391344024647560047149235040559875093145246242138101508224017262043305018030190448669208758698978067789382948317576671546224112625666262856353582456533179239465232242833278922640885862401894340705042183081432452557176023638128495190953065001722405626092093612442554366121860232968534462181596104595640070546509395967590187295226553970395381117887714117897416830464503227514784822090309449476966569700474182549669686962377914665482835535234791709179750316774428320632820156043021569120474835336900338131799638771227411832130334744892648110102713178479177797275775858619566759952845941460469413830687485558047130563095850431595848416484132821532714401511042082674474086492962842799787260132747576820991072276668716506880987942473727245724736599884736655065525680735560203590361320211542394601376525705223893012858916481312907723364383719902599230832438426608234993192913922382794033596645985223439086908034162415916068956624779146111889816380915633705198187038092585868645121429193930649271445014284769217219145054450599554037284769934572565518460653035590008775833307701307779919812535573181906809414831802245344369926945940051472780184987099838181054204809865651920840668674143802707805571059588287067084945333577457672591390693828759253630206626777548681356459622783961987381975468257583270927971225240795803637720835798640780832932209124504096144134594942840716972166139710437350978619804957414623819427950197636548567762554634225461853040538918374285989484855913937264851887124497552695763457226120036003317929293306850380189983953776955386053170300008557586253765047000509523726274778263514160749902920658201562845004033864811023751358339449273374528434962963013141482088106569220457882434018621776495865301552289930766282286317842498253883540199446446755211268691205725113973804291951709188953646576372295207079116853166453196271909847595137577024947619360953138823392451209072410144100205262458148400052751466739603639797696142154129462547791227266305103637518443019466880313174630368166200362471011660894935580147063200583156761148483424359845753433127595906864842292001397882261982447227728626028864279281022104588865408854095642628232430250396944752374687540325952479900322059007236154310123180575136450449400257898300720796566888308388645919262409025120488601826761092269731204351656148796974740072097699022393914009142645427728716519553186625777086779986499270419496470848496787319552154269145810331562395214343916487453594695425966869086628330465358631303281744918149714274367287883429256737901908248152523944188133272674666828885230556494840906926069529028679608394005920398911152904534541220798967879183470365515555537202400264680978339007734323555681508986990378126181635075942710297610427424681612620352919154321906464033050543289981037474901130519359286855751858602979367671261290568295944795525351900547195043679938548903234210281130745394962230469554241289053437156385508287087730356633945540634260515794852029895039773187752900772534678043919895824973783308466716132866795457867758184704407758021427970918011309678372317598018582500558030292783468034378712113681614012490281862556134114584383764635038244095611309712790140639874880728301714500678990539126171852392326141434729983367633311026221512904712394032418925877774419501515200255366630755985828670620827767588670875440500043703575566049090933240929373677315247830884516717902761431533137794752301836188596957868227846140605734003954410997632776546736250693233320587394979828414184784278716637108906239670269023982759227556682917198039152248553648994975820886580275536439022413075971641814945738415693106344014806519008207227846723636624049733182746145545150388173855084471519772362092062400732390429191063981919208669808461008694676596854606281804766377134299515357632314460916237553139180251809356096678407291284986977009040243341786723510047494592217755758887077220521453132625792633743524139545025747444772819501901424923119526705506987123904265597587519824788343133658190226626982440993557069450866661756150401544403892112333138559292892553086320045510383480629445332801287724155549488905881632336378898822122805771733341922460982310778248991088478247971482219458639478529162281486911562642129791346247246064743630111980259233505294701062680498906856572453158723275685031802143825845851397436435906423716255923833378636444423015925162808698496367297816284959769165282229945320133424279888052029310323095262453944243837849490667702676683254515567905667733648515691953177102083429668624727405727361653841491435532001045438548073694234302749553145649309360296411496154168301046811544202069048283106775882397241731824953808341241210879601177338704185432812444025045529441789326849297505323340729639535982679179288313170000701893213620189345072245922885547726830188633320316642763745671294912638721136740487859173951111797140738829228028508988269090588954794452767795236619230426828638476751878535924612224461452320012895047749151364248408453176003279012834519788655651881145355460267320567601535404926431388921776652521681601274691178521244363359577248806050021750895069613086205390060537800973699783078004359618741468070336305924898116422265926083521815984486290103425313989472468032133829439320471206250379961628368589650175148487881531298891885938479073157316076977040058800334583884230731775278120722955676232197963483625527495432492223114764246708526632443978969757547436928715440372639233896520951727030697634258071537877817362797926999556769275364363715995838342901645828967647939785216993423097610838928247366772243889289993367299528226027954545880808128969853374892145273209342188708161701661881591636183820999777501698613301557088921366698463364089745225015304982173581839076422766535540485287410525612509917867018647417878235469380950826875153075413391698882836823584321584665291909654994596619525654878037247449944990688444916039920067981555842372433980890232043630050441994656610156474645666864970881856427766879545170659518960745727125278802616314716392892625740163951140466388736652417227673770899248380442681034943101970321545794177676198055290503317137514332779833428000631926072123489518164653269216314351609162643479161873547331070021213645568118912673205590393409841960133397186665554290108049635633642860533484455370577410965907496858922805033972076350071305982501560090457299888652327347138403143063462603743642201645110055955189601782394830915335960077083060230626046091986411999460047641817746753945963993147714534225653527294800798382954602923232194393907170338352665055332276085760596446469822040702273384121562814490468226957262298217829755773478649999684391214387947005174716992093896947143793836115285591459584949421935091965156430260534911674921528332582171309082763687233642249438523475805170640217161836332640991585388909087781288596566968820632333993123139429176359341797676948424265065763221549316334070671398644668915870424147556240587154342436372606596067126106212924271897689615034277344757640272154767703849132471296331070632847132074527030353012982844785895700298477327139711469597175225553285917438098731361761666099469041360700963198703607700155807840027017280738627017718197234620660441273774404535120117810971495946034934181892650610931910411291282648648192765544451965994567808959698471152669792737240559098655753164541200382427061297941944766829730442659373321235958755697237792521725228137865009606557173100237979923571594222107938104475455396276696555601151224840608059404744939731763890963586939073461982658486396395908280157934555789688716118142871352029020109307686846598556045824945860601232642740188699049546088292109965265721538041806851110047779548780039579995864405874673447431853613826449915231210310663346635287150111568326056601319094980170515747556710712361779451523420833695096427149995387813267959212282997715389437388932242962820261991166075797293785362368900143405550033662045345530545678825503340747085388462368393706843929296077815863362878492949802386938237202047042547519134735524384216812115517587493867563879689721281551850297733817648928306947461219682636128580918381334104853781407792924050808207753865796684040877703102196247354392757302554415524638600795365316027258907951857462877915031565013482417280833058195249123572555030950308914444216380782831240455334833924292268287805149863901353490733546876359023111939586003342840144965546022103895655859083178473877492556915983661031776835792088996202330234258276441185023268137750018707986870388906443422671000206547475561826409576932214158742297336848152881762846665309560658209195252649639621550098483850111666526602288001639423829175675104516583234638773661628426900170345133624611425005555657935366382933773146786379584992523121738745452696565069218468315651692200055924957539344100505599348714525313990042896297215702943254674274159782625780086972809876937163011793068565212342557198587072545275091166773229261957944459994400243594693786223918233041248804793804767353038578897873076245113056887657594478294181756243049503854523940498026081189401742029419628342271322860507651006473047358881893920000776647574728101029351462661472563396726651127141152486202504382594632545599662549735785130659194261896034064431748949412081118199277141796073565806097242541968882455034545435613507823219363715490621065211711860613929956325809093438420505809416820741463493888504216147680822357236088447729408444140402244643847213490081626300484711693113336188297689766626551083843257286168381664560088220289781101482386667925631693231462365629458627286967566403287503784495548530132338580169028849623577134972267953557066564384103474927267551038600467953143195539578748283288188211480583640051824428249761673707917014830090887748131451944876971595302838491578581559332465868590077940428963477580991560340050257451757830123307892624734244870615771847645702501145859494634100640900841921309108000905371638259899638901657450719771612142186754979305116548997414098227098012354884898392528756875570758785597098319362361499819443271758362858949417726920137714572270186183722758896376746448433037978488415862400296131688499936226326027465881262619724431721193556238825066937229843555721352780293558847661765002990228858544133625823244551730331131190312233159724642207582821269232399909372759345880451777987980239355342026165603863414266793084898490661365503562808775829498651975917099898673279979359104138833723968773780926112920290195615394029607908875208977418318324417213794931990555801716991336144010716152834731142356082274257419475192400316377448473848590220514950685856826751713140593105552594612557026105725262065448072730711637426986989266097938390474222223446333534083536440814417174602488594595303012396572142472573538242179514316146599183469614968700070001005685837037834112358709322687728176453836146342857741458869798095261215833271120929018078605157988174018899674941773273206593731036627137804580235383610685270382524805152968354270077926941081233364493815480803925901975539977656641568474915212277584165262139193871958622332927097620717411953371214523160177168801575599971372739012434626568909123359277803139233155864791201123267610564579937654121934133860606216646818576184730721849834698517272644879593324728042007868301417978360978597412014063933731098499623545628003466663931001114855896619885566907371340524688848465999178394258249768630334642082275863994894830873109910893211791631788551016651989772303125499019438735098252335056045528227531202337721489134534892337712590642114331849210920898720246539389338270283056085508540654277256862955385762870132925411312650386525268880899818915708172868138238297466841479845759996555681020352102255741325240977546053129136590055038267596929132249773573547307488654814944252481307131056242388680556635559613269812070493363314648732672378549566285752246280172787619403654427294038466052760032343218263052030056134046225088227287582613186127535982772621335273073761211206092961153599286588496984394265155162504895188965901133162313590455293727762042137947873435030419674686235224959451378632894716710018559119596889662054254482634150741295231469384152775467298572180718147722259499241351036627359276119144763183282465742434459048078680323721350599746210596375974862464648148908272432874903403392994276451367828564121796006598290264770280063669071002006313282745440185143863157173033247844976014856925307538283797897877252812000907291806967153399506734120411266766367416939752132063746658003648228258496579755449027417226813271009357131960657281519604717420255626503635219873341310961652649788996632522699862064560502634662935944491860484493950750368437936063124209075465536482008274197773996862209571838126625646681380746868087419174661855744914559337061190227326949083904005481774968185760092612350879664194976349162194207006877116968782236168605943271813886013416863651127615948242767188917385176387914847890097980652815915469299825539844890945123003859651946070862960210979523399412237018555403772555206160547041585358899663475702179654397835382322498955385401063268426604145341927164246577998430258341366694945732648858537860301155025466089149522871096148398159153381914732491168019109261930285227136019843079403462903711629944033729242626725145917629390560028218411768932888062333078662287421571934007253952288932313796816067405780830179613739805928757742656226155842395719505189307601818983112665070987877111593517356262137608532193333410518580190737102389943025216253830414914913311181005871069988256930153111960352372697587087191516595052560377386450224060992124208783237270732172704711432538347740633053827483832564980464002961939291153614789324126079755517345364102869068360407222746230262151998690294295497368697234346642128182253017734768733439032350727922299208243237303107946908842351252038857584233597284581965559361947529541060176818082685758275535590777123367044727457999552597039394087514933020126157695457825408794059614646365920291666713872528196433900473176809393308087734242025912970786517430143768612713540080833247343730909580493013089689491290113979566832153304502341626094029567439575518399961909548285481529959378725517523927553973434721217232734871629570920522644615582545933860692067432236601327012990624827393265924996485767569460983601780615817476747784195792406897188253121309660714598429617626739083917905480079267121497859377316540947187221345373950477141555368927736890881079386553072967367885533163844313425198414547066474488505166532107418333884868380749998641307860394440549711865685485787709305679532790321118769018751928855102385544744006886142968595283334593143987554360371559972697338067097081820027263486802362073443981488825351919237712260122437248727104183348568165331716534982560271852204217366401841148820240797726527248124029841049556887111828946659792332492413253381922558801557887318881064958820233238860138780907090477063243165460198392310550749494597309502265336405412623436637494485741223651929169843210162008778394276444974671145244270416253421016510262460086773959838117621663878224336705406837559916145294224613042306676692202978933396459036030274192836420781686649732457448364881656553061260670455265146937092637806144801543845721942908012330721541837024060728403475835335838401171646784503981175690968822786030192067995049676789713504308172600698536875807300618603251590505049226573060836390118615132688080620147442218454116617589050596387527051063298612270597028868506031558234873662373657367983015265627091039708578659000171676584896352875236844989269372153138201930191556261110976034970976407053323873949749383664536350242421026690868737188824573974177784693604998309243525822646487821692214297609244602827038451363863344235793324217352287542029376494362524990200934685902181340017700439004888428646161862836860205934868330238899753356751071560558679710316084573006409263281810490915621413220801176718850329316880230369076597218636858048232384447437003930012392311169774899837313652337674121053506614743805374538236402230137265692293950226778263238229386301511350987350230658299205155292045175187843228028717187231559212062458914857662381643793060216525865595378897723109380656426306251566873427017276572433887794698018631260230004704375317902571069562962854982838528800110615147898942590956827604559383609849754235808210463840107911123125866373051761513956815463975862558573669982322786995178430351299644755679857771755974373459661961716541020341391184190713224610129588932463132064732117671658563422426676836198790589943349022069804507801876932835193611195730560474666279552635820897135068648034987752105398924473383728884199670638554859710798211213921632817085245896277973685186518323786824818647736226239439187244825495096401386879751969330517950285968447867444818033068035285809420256818874941230997519693194396638774362048599173657897190157829361799805818690892641226967423572181729676548723233131430086808106450989596695914247524614535024607334774115830595487487989646511095303193400798076156014897711798145182875002437484181530440751325204327587517325018933326001778682774889360882783353887854076030927563368071472488205082369440386089716495705682055074828178748794622756849394446745950634705922844786114932732756541665101317289417633749463000146092455710612158647944929569796641122643024056327295727702491994716772980052322809028625698042619830505565295610638826615850079759260262746727812992983842474549838629095575309292704366173750820822590919293466962151090365401140760831590731775829032134552596992657829597913728785704084250598272211077973889379345746843498344023807463082943743066995311012419932361177981647001470150347989047379873654844161572454989815825657542045882771610869595824093774638354903990885088997007582152615879955474493992965267510121666094229859861575973074932427008844291196453160809362667371517156468644169580788496361910224850440761262599698743320997380418420946960688119761688154564469878273725836939869919736469382709109323378197451545682220630059868423739627309783829865496441434766890547986431690559448132944374231780798156966512208593846973349257958234111965879618053669921090442727156800782767901012571878460649458098740961051872426153505814284618377352741849241715429846755396237472679535609460163631922236476273732119752093431605742902810166579797801444577428479716501609593438564915055795015778362497690290542095169418623442799238384807686394883537201114305622464140531330535714942059649475037197992589312435487907173346122529611670343971545423875947615575134511425553526516245443517593290020038189412786040502458081425752533160928609424926210225666953588954691688511708705086967862185040464428967539156000139010737645274172023426608724777088135632826938908430784315298268619092834491065999320959507376713358634213970328361355591656062598864260980649160057779400125574916186047187158855184317681597746565362191592685967826596592965458617414764944991731202667087104001417738260444875895355458692422363204656326567565585661911012321793124958654245152567623748014641062208950422434074213780276666462419050852118286780305121787552167869724441623336124537993339208477214009493325442851615194211331803003892364614525518244911053817256489847192420608582854679842844771974122637381824305345579156612158017809736196669302536128370964997057432023233308488328786764838914811266121043176109078682784743239307544379099809336059633906729499023538870158890437687382967861956500485261610274479108072044182494896330531977828075471341178015757698265208250954590774481519085648933429089210944499375536009815809047944031074534394402409001899811190798874455642658923191695439480379954419000279286820284777814367948535967532012942111200357523743326559456784530833159007627229383393115365608301973435867424360412111138796281297057191336937461547008583669943901584090105228192239524555896505675372956660962230738089034890718374057968640432482739125157456300069889723093816197793616126945931116651547418854230717538709209808278278465195701226350304930717369101528193588723787426913434786150193969884557768074838664505304424055573914477042152368761734797149029383167107611887125463978204087092452666444628180177612675330215006610469346502696626765885189483104952723650837599562634685893467677413442004677400475201327681671187578235722187705302019880690198133947319250718874877636482357398606151068093989223079653952463268792815807704513086111419501635659176319412250671378797430523469211469082621018015137793325180182713019008470834731080952295673366088133297340652419101597010821223344395874775891800343299849678481953304132164916356654551685907012758474384707901963622224722345555934542064711257515997502238706259328492689701696059354130466562771204565774739309676171583406183962872943052898705405485460441053803692787370944960494143435819904192806095525483882879244300013262134283654735873525566550938792274530193445570090350482849216724096547881020800305630296105630858853681286159440292416068389785747676307734245807481219649051566309799489964034117785555877507447881121149166119503158427462537342280091342602763543630960819888085810828674421286548172862111927485384745402831405431646099682353465474219513891718246832547838852630924163721960653950942163498863819403126371124747351272168588358609355944414645986966872559007489993903624940155604996189731730937004111771083149524960159238168822477136537812302604730233846349531522940555402506704691865060689227977930344656157803448921076544172004518240762462615993778726649202837296355360198625624646301989677145382780048353142380283764059984057522196233020749938495878821668396495620463199013152099019832635921015838581859029435113550547991611243035263128593291303449021279968877952199279414039777934601435281498577158169641211307135896336306491701066988250432728131569767157415493767518997683882495413363345810398792257810307108903898548782160263536963583764253899542444115935583619806833813721066338440058945645134131414931037764531192200901949847108944215482649593066283817724522017356345270265525422879780833733679845551962551309894621958475328433149382524251546890286669161900530490106212528072624268927617041663495764116054077365289210173313779960621239889600712098761161362871221648813328547852630774131668325994261591390079017455234318823974309909678450487004122810630875394351648958919805779470285362136662124432123801632931409786366351153642770356432447065852491587368710715566934477111934948045682741416306588777430569546413689727065234720745448405025553648457563705347644274778546516056256824756540201723268037215903356114495460897265563026950300636950833550696883073537055192569376112718963975735908537846920190659281804479176581155287995593426547965037750596647103491855775988030761122116539145841311149881642870707612839793805976358380846036893336005514029963721899510434781002066089792833381349469942513770007613865993449922068364888636651951935687816595406056634988381449782693355835290402064822817104281987738028414413811472462291942028791115173718226855717330457313703350086610145932195678595871325147764636241432415200119861698685995545222463172626663978844154746326966350515071672207305388893908859499970761623799645136939238058761511154174362688491287655837260103431501721468115173718310694898078196476841258072419393222413836190462247097575558417022603601540932842173974951657866530307026797756425985963496752191177063544575068492428827136583271525206439494221737568125280506564645148537721947654735035400100909157259055519881615436569148196930873368037812385362301819443881272240363726637656982718546324236229698929308036046052035684226360491780308998557034648692650860031477989971717705046812692849145393312233494363638111910632073094009705293986552790235084220900653556259090798406441539783234367293802620948932847828882794005026688781160665357529192039647073583081083800271866838000881174450641385825527475304865395593613510522334120397939009971006695681738032508702937614957757142910069360569525896749854831523177494562119411020254568784817738969852348127547224681484886945963117141149887921691049709660391614841059441344972144973792490876007833462622022063684318407192457525988357442675175209398638638627939755009092281544062338141546346700602231188452172548122457484488507207417668863001941468201647886614149041834596407232417257776100200390538580219683852538848922932750248961070131612989140477268141141440848099604024067746925696053071307529782980359828100077186055149240074593002841723761186250460999963534819771826464056428480454755147448133405126540428340214215827758007638853467331118277457378586772959204411469206544366411584114684658828789644099304950654459900017352575773044667870604259685293756577575730678154359865186533207549896785327244240920657432213934260702732347835456389796789931195322593904446564624142163003333939314254543116490656800568033913949980099947645816658354290969518282149451974769693412810427221387466496216629995747274836242193150413241217110757560021865181463229462155407880903366112089257730295662895278275270896554753382118729476763559766903936849639043941629522200714519866742441835757245209563884030976390728713331729237177953060673992186004551279251018279956769436713542953076051598137160121707017793990307362450371616548131303903302092138729012527891575858616750031032434976700596765731443336212016138538611727022540865585352041617567439845375377866983754941631860347186758294752719656003024833972852757964728995129838461334757989252806039918127685003091949985609286665434109996714180965208865744504420570588720741061995703472747578535862203254106127916129597146290977383325867016148064358257743325392804464345307304658963467997468196354965671515576836083744035647783852736832339911779042636698041137458491357206547061515260228199943688905655557745342360745306355251933947813898862288656468403684758859170575448955381622445800092681830845358201634924317657482568555552044269562706689408809566001280998061157682393400524557310743922628807176286119457410430212158737827442646360970153089194320510338396838097474207202451444677923485391695896472606001028859734622656637526677746896640283285893656424662686453728824881815613056065116353217933881822199505051654947921590140272135358594388593185142364143927734498420189954137419596430355835521212219531093103588244683565360145177000399248097776960938845758024384164322140969697135516758399655590140832847885604252449408523852772017293752118574154391557609870590662940885779914373528429824862284868614325347506500854221929265312975931894927365634397969702950163113768416451027920035224591068997462336162272123648705938303084283884834672850554608121466288090712465783501198000819386200483830604390329322979324906227810099414031885510656539813758901913956930232839459500966206265050929426101682392558688727276622890930458512283274558123514736279115630139459345664873745767830339826586568729992886101228516331022849941413316026851261784517680246322921887070467775538459148932017264498591717945814413574481713635013464487225202542115125695621387346064203946230450347989204792509524349655611407996316809542579816498124728023085553150316522160583921648658150236043142328238271650265646295010645109536395900640501689654261558438371292114009441141668082578336362320231608762414820160980195208304040377282768095426494259990418994957210058096670323059509308212145235934613267939751438876669092837764421205411826241071967613719124128317609358236093706304059204077886223224064665663667502819047645604487667959887064918190006275915037714302346718948717727537515921047615646871450671478725011022937373801924790200248028655024831471881709040523515213234323757605758716978025695915230068977510483871458802877909590272761279685706000742993779207364293148646728587583805999479556915099065048038757967577019128655328218570069388394405502243915257028252010029330774167069167746249798605548903594465850833904244462287011926314357938405955240455083858249798173013466538633886522859212754997151569319921418420496510481963630475112122792597259611811037146801346071042933384665165434453049876152705925941617459163345318535490829731944731011276943904521687496675868167755197495440327974370878958977475979769396933382599517561205075772329387414501952888391310760559357497109876309723618157017258240413951193769299486209872616111737929740050191103184273420068564214313748508201303342702830428061360870120641513919712808541704557784842083242877573448001683385516911499342143861076089609624459523774753880082415346628539339913197710559849231029815200301792793166340362587002647627599997887700160330916421645116300123151473701661426823523652399797287874007344732554750795056127507861096773241134868899942580097710234815656512117923941044102121205233431333167203038054770857711055988438167199695258443004356536093853465875939236200293274581036351717431980442785395577163723279059297194826555149891992221052223738839889531562352650586616060959033392459311993987162471117118088091325891241753003250232477439514802316529124202371271228215859196765259613291682917201656322118051319694111323141263192353568859025294508571083674079090417822999395503767910652959462422746458208221575211065753170585572880003695338229313897216560111805087899045855198900780532856407879934167639104884154618149608857898864358084520883102234980625552614642580808879076952880646189107293291469374972830949645247485501928052545574412906991883244609245924614472621655109001691408273521947683139502690535504078390371473591054051985135916557684786330336230058671737259878374515230247177516902907300318314301619549020094954325653045135953803321623911642378670424924333713248340715710818773835911751406840589533491012999660242368035675299616538927604428199490904971408340091874554674523477078380774000267097305874367304831692106819218613597080220166518622993519419262098934248237281048166421712901808428837337370340076748626323970979316811884770071650019330705511225255446951430921719373057272859783279576460056659004374215197796995722326051937124321277681310916784982894112918283908250666569289951357644388661371182409799024816524234075258235307720587719307839977989846407239812401111139064799595007500486906342578494144034074574114967254303879698779615940453681160704449251110473310288500126682179259512200458482404908585008700111705426003846941566434010496239139646863455844595553251365962356710034625368197830897072711324784827898313820177748832412375252794770354822908390809148958208521305979616444591535765768372117082406177564397357150514514546606585255811172233889654429338126890859529750432659827806947282443660900587228020888937070377907509549997911956951145475845835223815361340824360152663369435870160595103246750793603031550716413371341577213106710356781426198022896527351870674695693966764111918393974123171604657505325534444646395833970938081556370643305240452236335624594246731108490813566536597453051407047487738390753075144004577068971904904640960488403172796753197299334380373397812439711216277928312639693235364563391989202847917098811981344244340291201324665405403236188417082644967851040710474853746437095238898921505081218774208806647385443715778607103812395541125301323858496314863729104107696297747311684335242236244954739546445080458361553655955703481207591776385410541286918987873745831605496598427141249851230831325815833260456368706494144668165770009945235879654165432014660703133292044398242925442395807493135532249785403327452414871940400324402461670343123715676366965690176434358740164939798365721399335066068558505988913767201698648264957615158756345901560096688526346626416500388278158313316238087356310403860139140663977878340004930764844365350884669917016181869369293714470872827754072881665315427498686220745289400554961620820037455935638406726760177656699335377843934749723711276950555569436926397552256182045839486489805343788533722860482832801478192480734704648090777434229315898810717395269079786953938050860317681396751438777141539768387882558611593551524360954370896675890480305465320746873419651811663344793888331865553041816117779194590233678348576935624854668878458139798446043531508435164394748008531447454266157938553039601925861511858259466141323841798902785731555584272337287599465954821005379413499884713628489733880475147435707751782360899502888061287195314320008282047794566306130138709975412546970960240154352576971913835015852972691994260758971168455099197251092534825069524741625317692515277271616865211327469403519748043255459359162182420589784539465459647883709723445148554390706456191308786795117804836674195292246014699855197572788146597866321951654184147593370705344871308119839744568121407386858519693591392073625520188018737018798921351791634927545584069460998219786515672145776332360114472014101665067981992050507468925628514113332027580749386282081451575363400228574046215960703235389873250430948456196787804833156252832032073561229731222492284565603990173597543056198405857822082298141473723914331612689341340959762731195022067116392782053073207255693238831994475851157679048179865970645916148079878336254012605766724549941850525908332006890946952164576328185406170996019952679791900493967297986184792142937409120689584268493073057865459733203103928699246431046635711356013043440455710765416460485962004066481282057729472528954085405365900090894219175825108929088200378213499526153724792248321198532144172323833535420317057422525915438790233124538029917655366072538152001904802542907247502845524333764554629878637170489800802599590206558324821943219708928982532500674099867083044330421146108581849404524568706051008145661280281772598258390096958579613781911066021739639935841537084477728250069299509362421174262588695005584382584432244920173557561232640263643181997831844784559552435624895324448877454632568220181493500173899295500606478497185168365721737745024517505341737543272493618881409736427451068467165964922497444075386776017159006585835414613915977604783831402140245934052697852285710348756696509508288387364682346675072208726291348640471614516070190724935566040617951595477881479562578543387759574106183327529249744205315508775861305593219649459013712892820669496477416908592622352761613483083197810772791168119033108981842848292525740537234332506166390020301518138949525270665019817574573527763145513697010275015335866700799529186563083136283858004250600289533661241053553199858253373202371427151282391455074222419377607273977707116518740526909018852036866594004396622640075900977736931142416057807733055982627135194237357807993042894151652381669531206191744130059874767323789758867274862354099717375034976584147484214992647286284969841650533266407339353152667283629577193541061396953336256768007371562854307123927506078392691437968429518560250096056433078351844600093764140971918442334521496862075838232232307818776961154405812140899745179128500088839276820473169909074502978446250615190085981754335901249241824811344801766963875152998521222202307245186945791072862944109470409566457906329820467182354988797008342311549473660087573874977047937657652761552729658555833799026207882286982436380796979213926447400952235844729977499661666426008424471030293912086263593103758565321308213318000007997527312199009861477781263171695924861768061477030331065185536125340800240647072774329733346011725705640969843660863171885952307418418157134021761833477597193499171830661591065861867344011757860099900545672261126399541749912975014828836519108331085562425329934587667831107124821186436182124156048274934791668432802616082224465020450007921486825582107120122119175915979127048254614751189670618247112785630921067278563793392891372231049591778940941446229321800806660154894064350035024738336626589297007831086037643308986823621037257035769168018486441013075410062551808851399876084885571775645685242602083935019851077957544533555293594323060268250165576294397175967952464043852069520621255684295981475622225684444283697854522365701669453695120689243940361243116598872583592308144392600313511322233698297513153323455572659204726629891057914550737324628472446714810305715746092403758038154148096003029185543554584207531052078876759584259612498785301194765412330422692864558093156345721789639368860597413079512028075939745463653633253517908391630556894375684864860798185486628439058087102286035910653145952367504131932575598886523169775100796356998328727694093364005642729366698897259900638359295385773106626837922581987426396739045045527018643320275397132125617188726770110138976350215605364578213071779160770377344658295624553736326312629035123345065729189833635502719214223856757404213400348657217479277291563036795946376266314241901000200931005436016172179901479241753464598635548963013122244795208604158672873568868348887784405958931530975267403259317649717855165009229650928831313248849279372117135634752494225650330526620505587194782059183624441602290458721434290018179429356817012261651013403961846238717371208566073333514642376021416710780821525534440696329477231797582386915645055332909411189043309963787367256134697039356748247408931421391136010977819329814162350116880261771211156885324273415950082386341052790276372858040881618681794101091458103403409925088377321641254575928427273213307170363289149219968308985832464808997407386916364592510170678392290493266475202911410668719674918447419113723678476024438443712207936183100054994121408663973367364589931783577651347387117281040248953542683879083030421791068443224596602339159982065897737887293535423092096979260352386603636526268062178914661832899075207985360222350576403109648605055006564843700260078346003830176790064836388468909607929081456178264336507989357874793021961380426159938771740574653573355539916404008379395996602223400777349581532740537038339542606015727334986022579422397392845532696787885966886855563017620823239655714164998468458309193482857067365069314532658498853967890980079878623009819172066430350486668192018284207926505282729509095281699167076104908555375603852768595064276002022418127693297013458242465720322837615787038670171202383630200839850921140212387339458228427809408471265164722125478861594120273088801643715651520838565000439676578503633351733647092003240695813903862231575947603624729552081278959905652118561661583750964445357773906933514864208713797076141272322084538414187983261459157776431010420737592058446393280968711855730793554272211829385842108719864652505848150257620980022818628551937124854764545049640852995606693433918470561298037022221876711826172152857442202444579844601884191790821946806928495663174936665973834841297139672819935217435198724393898262980263932368955505248130770588230002745876643366390884749913202394904162532400623155024490948953636296146175069238190474136193984596003235436814127472012428769326112027085849100714960319386071857644574374378284470647475364160139578921048158111681936930792279217185767983438654774357422260245427808067372543012154122504555633741091624440500297344842292155729846796677856609659773422971834841451217328607082592760208919493676096075069350277828117354770068931156591678651688054253788165577526877781671259445704186464193026991754524611392382627194786658896341288598965284348628820427895670880661653474876266964074447979656506553285165716885553284352877879349109724995718978841713907983292245599035379395384730590825286732704377920048979128933872453522480465659886646725110872330414087579037338369297101123707351907439026187564464101558661291913195615430168310536412416246070863356383675008601742033620315106654802046781139749656441856743547732407855886111207438460104265585128537575867132770725501475590308561863470557709979597813874554357027187719390279381035337127370166953164050841729488748930066869132509044612476125749886156138131123782386603802493604707792230022449131878280235266780577088945070821765011421280825114141086158377522869351911488705770102150369618799091245950322602449829526046592857138840336420987162443378991347260970486023883720554408271386272866584835564743272652415298729023190627194135241092217307068946874179124940111457859898603754395699844515441394981634359132798469974313377022675332586802006663100740371337868994476365017664070615998467183283309349743570861505723546178059265727207161816736351751272017989019006245763204501413974216991289355248752095295222448273631561882078849314801769244628720376215319361727836261526472300777811820666182442422661819257553228949120511561315843995561791525162998425544641511027234282685941143434023440041069084166407491710790061588657446207745634923022567405593898460819258441402526510035270053652061530935045047661156636919352619834379163093816625942261327247185690635903024699504275502178011027579816028368744532555627323439553792337379843473073781894984613491653267963986972628226663299312720919360156303739008986656777366532857494925267514854902169584614673957712148175762218825768835205355061446232752241430190804745484535778291911136049619490856075581000994779766807848440819965844035846093538700038798954811563411008117809602046673532016415429216493156585064546109271370624561689445052626161101787564118256003915240883889655423035529170289946712220173238662447669279968335350338422782288413252381857343312059338388752260098287427367740711990871492590990207315108024605638617454772393987786628794487665025314971420199747319381097218847586891254947077510864753839046213981391819284385569425483332993886958308126140236417321681833544897115627495688190763310217957121314830413586890434836135255440195061849921683097536420780990388690736561486240687285291897542401970874112579668126704117318377997748221397667642225771099380677021923591874023688878360806043714624950429270575539181017572393535257185681323412632004547884488488897345648877668226964056011067579772894115777218304394441198035710657016038253528114046354867218673704527184309093271760192865882298264769540841776912266416228369321207597624416588098008837774392759463655741948759122523587158922823764412914386858437296174767811298204748401325582417769223543782489970448040988489480124319905023997220364227270290712611724394305089731851641537263725964711463117982842303905714075615423884105542706093832323578487439053647406939491805901687510902282600849144569558264340009747622917000473242822449179889042735571648254125685464887477483293512817857157774034077060626636565078030333719867067974888114695197603419146825516779133136409257036227588269083960210695864168347938716301391354956044810201671465468931076172896251263772886254174074267731545950850117351101017307996256986741239973986421549020863382074264684664723713374684203623492969883398649982152855826564051327947078767641427389180138158512516504343044406448177674387940527833129074393260849126405747954997176236582903929940780346441215365201097885267833618965198374135483392856018834351002043484918832214804456264545964183718198731909048856907716881668111195335818174187226775224154043032643865637046516402790797160964988888735277586005680899229902743227191918043572349237537583577864749979211536094167556742114620835149793652860079798298578850322883611903011209820181655007245186871664530190566220386295402162674467293075536544609270699902005794316800991083300428691063229413779965800401778037429183719614347620499369765425413023264635461551169396994919952216657312557131686918719086409340476967218644811323775421407684058606496266577974293523269638513672947339026815003071003210074350990699678225318684423966214212687299795760830532184797468605013583291257462521360231737443192705570737663329013652833666656667699702851893881209460654588785863187067316773300185299250023758183556683779241039762284464016559637063663222165343359458723444530673807753453404289059033409665783823330850283809422323762626665112933725913357098131871079761062639483194284389520177464463531515941944554673599057250385131546853629761549625004581465539077943493805407947045531963984790377319845057743184878628596741199925955859670949908375554441802325833853172355509609468932689790419529420708265785821326280882123832134088439035067872736982845340838464894102498245619253266504859542856743903357227412930234935706713411503766928492490745749244754630972225640166985640265198847711661307438358536691737060628474217569637586807674219215355115576364423901615321087059962521737087061833200654312957885629901351109770526874547606662640559796688064778479700414596109748085603909126690483863454326447417179844986053017703814144759333045463910666978080794212211629541140149988452665396169233992978585254068224822689044670835958996679959786311243502426974726572933573441576590041305921272851373724579434711696411504077285978943817633088199042722923834361976643749030379793475256007427764475937643284099942239211997260512513148126841595186504516336497173566019744008567325963857495155762062970168172376853187935932891079717686608477382589678826127820133932146257744683362369059270474149596116031317804677777502121710128591642867772840577865877134790623392644933306813049573292506890248204334403671878552041973395404590997123094660984485693428598721475777956161451337607057491457265044963891406058543353165777195555087602321481936833490577401644019481966711518700029580400117442869714667638285452902085557780846309176400583394849770235964423485006289556634141520284661860187874875362241284131568437808859800803313393773005678662622693457682594611556915926611975882827066071969876072168790257006810303827167898864378300315212037283125222077918858582692233570264426545206579816253766489789026371175001693454375344095777020109049895889551861449273875943932107705045343637878644250590973668411319144953543611732741918219013399743222978245187442288843734680151108514904225817617121630102673396079969470780733755055511905495169671792650923591879500555999873031500661904876782716556544149055676596023315329202981573870005482782150517916303570089735895412096825676853634805313470604885577037496375081381938781717218114172201387087610383642679474137360409198678892883575404298543208422772085951273535848887104340012330210711407871775286100352041831994171978918521144983918798054844745585618663641469832144613616062118777495602835537153297839937202216292235667007855005652423246594564473223871977656455124977384735587922009053805860816795513682725924834705697374755955077901526424170139427455928626512659439243776136843034115103998311676353553390061856830337194746680205836500690974668749506570340458491727711796371459696982613728007691339016186211625914878831014553179035352446565241224173409981452111014020000509802580043627950798462060335547907058743051325099379793086402353098649273028284227696690559143770283245347134097055803288917728841863227171834723950028456195383999110431385877676750495798824043840537738943581854880794315737859936905389246942682857396912798873557333735302229018534357876376481935963555231461467602423756049062181082547875791946980180266022997195082689277697618240624283967376984450208327724706910981221803238700666574093411741996555208948178479065365481325716613348418273742403835008777118662548085562379599021269385775303714031676100965966237694284775544855523206360724288529702552277690673718355309001428925905748470685586328474020111942178797180730386751008273628123631785306760798483714204030096688325449369933332002508793032663911746981462544528640110533183575264348018539187983850317477344334476230136212710185428279199058171855309895758155831239058155226584500022835289968325577267009011041601123472372648807041024162293149714167336848484360025107927315593283994394219478063305486106269433271865834280538814680594003640639864707146716927787148236490929383022861300930404194367819303000385354622929424178863938531859429512727259459795550091100213766863203435514422721896734782199610976931663944014457357135020965766929751493693823622674593202613455092156328926683250538193743704408152632110909402012778657945519117850535233302374214832005059782014143590330954237995307886922769612217677426862423107231454705145260995024606598256535130994227416401616564424884376794469332718647916044633457356972928483245377445817051051328046275228219255700673966153642738014881142681024067819914951358984837450375282866015563533095402421129092679445878414472902497423397651355310236855397282257507633870264615701689947964477357019109774092359029753501816397794494614294936826684145208862604130831335729885774242221563984345549604680056642296056486524350640545421933017324750191522224128876672021730687665655722784550338742642986969795332520359966814951203448302538281710816819740544391994780198938530029243982217806002119208440491597026013846278457388408834349614587251238459543235488064093550593591473002007308379976235597688243285289087504474337909720007149428923557985920895679141131051284062977982461340465138053709996433343811724014946989762067903127619436035137096436661225308077934574668833121671954642445395663194050925099734412707143084984346048506250049460838674660729318190362680922090867697810437654557739437311791745802199843859695316557127958827346230279909816398049694358351734834925725091641925131822563439716097280195849166850694708172915738361431710290001269093167181219219543982443560313160789705665762648147199741076504418818365286761323038019834092667344494527646004279820785357039709097627318914725380651995561881252464437966440248610448364685028016567299259995084786827766864413626744671686111023084408740036486841812278241908679904702065219235783110351776669859893041289873210065475683245321206111958004005081697040747702506788015842563405149021795694666987385987921023801806684233238603151476598157656628231981044347798372016406854552279368694405688954685078263445378653350892212638144159349012109968015762940293200773089194027914965673839966455913434244851767863628695097275764879990761381688855641993906280731400585783302208528189334467225507479687177243559396569842487803535984978115605500493932184250716371197172705949868211764078764789440522031180101332052429735016299182678875819340295912303256418302246943663538698396540184258714709989509798018938821673357143964487625739135054576920440505481826769023014744189856276572129975570323421591609907071372031409804285733038333937924756924084324443685046827620041514253356900319976407410301484980583052353286047782243065727624552873143001887762006902972012510095376546502497200307499705908840720322728210808684544019799717241226425657898967110646034974879641198867634485621746242057122395435640999619312440403755633261941414685312271316142903426053118100510109463716207561726409621008896540726614069968453267570529351777079349746393226977523172837894849015106059740134051737522416483353883146861147600986371685407698772156590665417657326446875685430488712153182189294381764595119911867552371237555133714083816672890854062033780013503495802182045585009115420443387490290106285273146815005216933996210652675838380394149387841866495616318324304960019998818392132559105056160030695743145630585219023901677231659422443314314141878001473656682636456823188013154494375937363753224331860209856784130663543477124891020649844305244289209673208433015867214075126812052583714021484997095874070671862597472332674042979063152650541827799437017930433507445353544159913960714231990413694631673859785032270085028376083356002476275864122998647129943430292342491193996463529734995454771682637614044929045507369902824082367615665210907276683666511255099627681079141164352181292037207328416093594613547662511698359652477235632165450201457252632933246724277811958762328255218510228918530630540878290321949650795644423033169184086464108311971493217247358523167985780092951851055201571057713890268224806915753747727036641705311750949146528863336497288895936632355507658808594985071407377893601666012074017768810049000929718821072145684345881774729224734696922218301963800516749992272957193857034519210602625873652297232744182491878566977065288433932083277012209409615312934257556550985083074511892066570819345189602021287025187628659638570640626734954103974564143226020374201411830999618824784857308422352262367728130117198704755949051133804318545833985276668135494916014269658038609653996662034821947144968559865825903699639648673479182833292408418448604180440209676682717417744481342681530019337342400562912441596693268453432189196477710847066642962032577519507638446188247123667043386383835368731787402736798269186946098918013558037565446900871015277027217707148062000384551347025889820135284848500037242017680627629319129953063661278423145372758915394308426085926323963135348036351376671319837604546981288194054245833287895157992794839284921243121511798150582196540461512494103759003918828942105050122365240759015079997877587095946014567642000951232313635199371483371133673287039109115687519307487725219001481316063371350759437495793872804317525653014094371937065365346031739343223426421780448625505008904368151753613939899790699895565509194296438410717982192531536281009696008859089948815780043274298951696629062371267437057523353482613691400192120655742002596875119409267602937486654832487672565818553553099783853403082223144505422996223347111723101168653461080815629286109119364506478614173803521745138516486490562072130962130578824824101187955484796148103294964627873499321023502054087083530445156671990903718805150416052477114252749944912985668144425094939959384551011559173340516264139340989366899798092868617447885728626345151107902834169387398838245764560162835810045147697720938420248249574144713904347553099465030670422159103530738075318650712898752056492940704326189390669732886739696315088348336605008609286703952261296155883193343797532098695657380393593293098914935803012597121089019430016946206408417198947084349775720476029594390489378614419107200664161910063911143595566217315923846285793891903416976194785967706719608573855871947977639372961845735237019272139548038653382057100804276474313909239271520075837885285910982965554396736239246528262488090753019961444719582998141029164397317090203751208713097860681360757709021102514955465280256747630718934509473529615266421791493767863229643171544242336986824722483467408594435003363991896765466571311496356916319406140925499647352330924949353100116710923394360979622176719041811822017152635908994159013383075107851423800409680437190332343820217751997241519572394288531907930942690340998512996568043153540201334605346203284349373061849755898281295586940227354205475265058097710407938363557166774212936634997921439539368403270796786281351457670297378804637795427926205755346651601931160196822306508920180343983892245517677471270094224984678419794997729032458207483274105884009269038872176128208899142867556229236855956689316524537252302447529865743384700858015175936049403196266273001750640063193675282522129443918980256610956320119121350521547783431421798351655463726406680554568247246994278434763880173129493319561434022291069162899234525144463350330557699520852345398327880360841174374976093130773780073387302619734994938619021101020124612699807246063156950814338122992409772324076678806973373491158129854841909311066614936139921622211103551764747585013876646619116042551874130865648320282727480802961411547483389745206819491879521455722341473079338906790660773738612060259847584588648657484533107649683671603409647677921704986172066846746122712884952110715388053212125951312376121205762139455076209254792150194176751379877682146954583221052579518799431327509201471661273227230511985521277703553033928921277209523445649107695770575908155165921780798411019080244841410715531369449544048607956968335079786799522962298384028785372480248120414096554148322943881215762946003412319842013769408245020719670100755129112412125434876329235414630347676894116099016705809405179984680383629468874701897249025051824935785595624966357676072111497440840694970362473383548119130749476805531901785661380783878837680938802864292463455162717415124909875372765703029098493972911700048833022487613329221252192531289699456255972493499140050120933577827406170798463705793638617772482083995080109582558348569338644670662496428864604658208159906735139584927011683234090701891778138047478253858452027613091187057282905673916681175814862499598112213147428953215853912335428938228745193226272508042003486422909064693356335593150676084262267782097304255025036159139534012609877857861978163149805324603289873315417161756198729197607322691900717192731970943577117797705559838436135053692274737460482323856659231209801261827609930973210959668889312552711408619992018006442650188535434510328692473392632936286384261014257949309556211610223583267652899361880651992562824161632946208915816536839766631786396425096679132298917288641815534854114933692770425540736929384675986603540055553077287439771086912738134554304503327615424356625105726080991934565052523027746818127786562180099029220687230787554079258379938251259948854103041074247231565711667042564228341984841134460096072003279253171072805195632018030350792151593497604283562442759771087968388739644030944315943326068997258073827401790470104225357750372740567046564276598426048541169665081864904571173805213978172907587394432505414587153953838560175235431652717813567981542261543194545872586010571007534980772918665032091773930797210534895268955438568360501886165095930962251459383048291241052947300454634957417125245686918841804476019525672162072797107432752431431920554014494378999615404879459200283452555589448080500497162958706166279222178731273952056372447917825047190218154029362852499687050055249861449629639240249413127823262420153617868408432700843531962149804758964361010119421129484544870669304329006390476635450665855076802959130010173022186173813351218369778256470607744858352326773848364618845938317169862815179467653500409815313080998222984933774377001411694157373679199264149036814149296429838189832642228485949755922425161316303777835043773247157789910678759581754762530693992570246953910291514478604603370757945874209846811629257096549756476267643517606068732596552273318012779153230805601114473144769266982231815314318219209366683411831370035190161305449267193071753140952000244693078877914412924230745418874013911725286680966090063671367156920379613787626387645588307614592652404069815830678492386173360841751706840745345085278322356234433657106526213647230773498608969166027869601581818465244730876422511559639033224854653534966458257137349279699903520890427717136509082588950390977047731590437730347646208074123346896695198117249346899837241840864513750221238571775223248469987406577649014619337788603314865958194490568502956164208063183111747653787329740412699599242470702818642798088398097660002532189089249699287013061227654931091056888614338370045993774642729009349594891051437102896497702257119343070600743475757652282449265672918504642320111762492867545793881496083520078669057253366816959329326640344756884821230380160508026185973646223776004275859520876013555434788068426372653956748070639650209796408149239987619447666325918062010004738683342693176910457763453897020239266265171903120213333941983362243054971050448192799376381306408693292278266462996650541628353777538349787109317730641362985262960893006523370114094086923068929200766821337342823583632410821339357507639800463504435717085853330927611143402760907107914917800393556726002912171038300374121419497514991652879822852097880628519270781195600696087965572763925023057845066275140951820062996992754290308581247271417360504307196084760647903788160898248463106787126617527529666267955645098379398118989722927535832561560093169502033956794406390472410145517869537867282113920650167952389445907292155028797742501678513081776598193830740190412881079750512309393878854874068257953984244612313921039360834561549284190811623848232386617183274776800741669379130953800676317363424172560496586176897893201953355020868389690942970970191615372131322010265383874224771607147543190532640401730507794600400153172627157826863359769937636409841658354300404300497406569463370353890638192989906996056279259666963710005409585979398999593940920859679593623543693528639419814521493205038585380710024796183206484027450475240363876668781780841704976817290878544714746152395572529238683239376909165283734365547528550887332004432096818270239379371076129168722932694566296391146081250214190495798201434230597523477322210500058959073483019749823364117031680544296811175259594280009770704678629165570286004015869370966579531327363818728198390868588003934741686314824396838473103200748264630560845737511371946449914113872770980473508599908529703272020608023644655299140627197182900021896756727013873754542550586426538798341425275548329347624117226583527387943431781608141986607594479903515942916828949642359933879140931284539870170164820630304465436509090061981380443177039824076922991663889100063814972702106903825421687725693916876156852379084552200105920472354728399282804712020877486539657910973039377982799167252705566021307234698990038754797305167983561554086598392200638648684733572542828382617188298267921369794067555696886386157258663019931372751052782930725519665866802582093428213722846235468341975457520372442952216421590513886065977286510941774921056965330387000113656414499261579770416197632983468428012434903475352318389375155728365249684845511630713557395689056465814755306334577064156996738226429034039499564978622657574793719723177725586444900298208576925093559221803367416143250779975085298834661321737338227883600167572583562138987475984651415654286068273437113107882892109810153726316200443468111274165690570487526119087495944415655773684878444757713050956647762190957686074509376269333990551682058058157326534122964299812613108314652957433635769479160463679467837251151079439974740481534647229246788996751559883946140426827410993610578890584205939830290121376239240180358621051673353887794313616447493004230566923631551522534612726475687696306444465703213292956268317784159474186705223205003777142583410597367227222729152406157867935161354928178517641353688810257670732566306412175082010917088614925972041898205442398044246776818251226414754822672787254490374503362173269581818753780692695913678882931190831321271909282565807824911382104795401745180265532849635570098498038364697271759486089961541234464404931707370852238296071554043799137890382511858575647851547534959043035843588145685884470878714545619272195828670031317428618228819610743892529493531540154794130699781580357038189755619547445749002790474929070713327785236670208546633265734844626919292998333380558897652071487483316690584362922300575342142502446938221520222176785725353726482435813397201599363082314293183270092217310240217993712370831332395354992095490564328921594174560536526984203190344112466100405324533825312581950240885767638339934630667548364104934450486540009246444164680528261115221230777585043885341740360670215883189174080699296326855695345201575880736857244915869147786390220111479277507709376939034521184049078042245213543099027448012872937685215003878902237214947120042949894855771247811216716865464277667923189025990645040578159688669933974963088271735065489233657462932321575398530020960487878230884718626892018389509202835164171404506948095747747654878045181226889206085454412477787709975352862756712340629189426484805556980498976364493100258557904226927876468814320557766842772831236111116929811091356047327771417523382812520039864606953078461682534729413640883551090757524990974606859088070046743031760264658383930710584741907282938419435464922765552654135249312116551239445106914106018645915418640133603760424193038216405385595753484347054926402004155457781533616846905108753808879107054109741421379388083396929958874005531657680086550058684664714805522235971221130650580271016242649503945264977374656843210741702530593182033908019470862241967506865581792128287696845948535984023631731389774001528223920561880267815304029447665662279991683128904109537244039684102325168453432862213854849641109471310851758374518025456198448827948361515797707973113487285560769719261729990757523899238612088643250314758913020341543491986305537095493855369691911257003445885820526105528205899603502637760677403824424285489633935202586001278676438616141248248768352638233700334345730631501247007503143315696078366858634604931283625314809667504088113385538543797023740064048943512303807387651495307462671376914111713388536427366794045304178302501525457824531058745272070709726492577826969191122091373116203290901108050626733530902741446743906454856751665403799852897873034666482521456005612332155376452107999602538324723723011913267561451292692690430306044021316409544393302785751073957590796141077319260778358666830191845635612689921962073729611543627490240902194139270922604014793281088368962337948905062996354066957214626471954135655555496838960147959191197022210758242369530015875128543720390532020929413932387005600955344503685047905996080309442943183183563989955928818429352872983956011200239850619554289129755380767016984918561779180385244594241672566699749121484502627966023331014549919032801130151967776582716354902501151684006900055501070150332047771967734070924203335867634313712379343652061793930030666715115325014677681786355883966019036179600556977545441845326341268354351675474143384879677809703561485291310646412276890801764964335264244427957150887476097078693160542261233402311871542172058192526272777601141051694390960597075564704765600610630605368999992197232298369542179111605055451023995654251865277978313423528398306735568165325742946708541624119188576321753480738032438148417950760709254272025901574858553322466100389852052754102097274407607891268541450111341207993053494224480539707714863123090813206812859204037150315457302302869636473196486832655842552975233391627963453977580704186349060617294122976078480260136659144095781863456414376345247605843449865956052977259846440572386420323294569743796442782201490084939073982062278518206464012959112534596900790473215023606124088050710383257351785397450860903499336526239616905815529565842460213376817261179152285408169913267413083608680492925998707294035724327599775657480530146192372075424567108008561724160358140994061287555661628583534006910436368896974819753835502418985085614918381192719548212581470020895909201070916026338559185272130164411219739902419345063441000045667424716338766807394696610922767997006830450558878583939304388323844223367711198637600946326622956334536916059217838898678837029388712413255104338353579025380911849192020901772539845856520530725620187642374084080361857012276526327388095730931748821408850988720828565379037205563851693138724275492970471183169640095223857431981521377228988198795873005478229588804547116916986946763694002201600187313232682719493485519167508004236895167560697937052884103732387191833304108592674385968306593216006450886795428566781540896129674433088876995671259428313912986742122455364381703914703191871288900666963420305677797461950241495655955509591742944345561069494577357377721773865261103453544052941169645572235361818698765002539445227101424059961496182898506979883828363307638740900855630030129198911158378488043473916557437490385670268841971350980091843445993682662627032687054986060946416800861544037012516242736818823702443761139546147880504207086016198554510939070211862502350010141248859337860421953211407368260784714621525884543725349925894194784750720412423801538962002977482286729195044247481592035091184344557138768521712129780562718564979879661232913272381844327586935480721583332839547553160695594831552756767213162962660610169689572858814192654161085990795715202389406845436847704858768727328460358711953587933373774824333516184319930780594229973672771479957369887505976148436134086120181795369363545330502972265990311571545989720182982399987095174368747350330087213474774677411836649972613857400938059709197990934143117201807929187753674206369232731802692533557702689922990822237352302400066332201131935884003304276833784184891197926423687050326784387930645046152334324454665241252921290295066033955787574221268262884844151591573582229943236135537377138677562940154067918194450080124665841439630744135418341517152991605617173034250335454315556032233332301497002461486263157078063578174649143436991335704053786965096359039570358669063400833760002369275287067866277603781746005847544185821541980539377953032425603938498459003464192162585620798160527660624654942004267938736797242387905661889911019107052267782465789496544839864292505458432270968927332049514550770412374116870574691674105098478542923106728997904852907610835078553781192899186994405677024615923843811197647713669438364518591335682343910179122204844291839582406852507390054025780437660045073859828342245792430481870068197226271102478767391421029349107589468707049049101068095564637595898289655729502806748394195288646380695265996678732225588285606776924547776492852068549721700892115854701003361486426214669483674501632648925348214871988977807912682098816442024738390799658964065591147067185944903900831149413142063275557518631707916549951103088569477569054489907777447337365135722977667728014340365335523329173692335561157681097772747655712019746599187089026865702384111721100744145475860686161882486260739637894259875261473569808560532514272131700130147582093880790344110811803870261747509575741825813301364077168580824099971883610112662516187424160963622968641122759675512719282434732700428753797689751252035112839764693609757112039379002687344221000695064019312865503574631226258008565039086586046467615370179437020734427504520314903478853495433524687502047478810825641393075406680414574903237470670424716269477046547898619288038432712163354395266604750504554359163001673435867448657720188912549622583347754780005438588859411420035806148771135556359473855206502933350758957037571251722927467615400004553316636328354930369772685429924623294263492410564439200121798365016703791037339839320779711848177376863851005757824667340420527986597071858395297820117576953977086614182229787639558137672808990510382798023524495009410626531282910863397274134044207722435092011051088369591528704972488581868596767583936455850741957235390797564503730702697772659445808005314596882954623222578834465456680585845516917422540943336118991837075457229761937819437921914540361353593771801272944235568705284151770961730834883194229505706979156426660930478011510014475629553019024480352125788320322249568082643199515210718710778408963494181504463238520534685291471387674337555369239813568859583533001001157074985172998074527851993323471563845983255613822021907599908371569085624172277446110013459311714948424318970594234131871506821508096531980174339440204388795584809936805353539975032193121539634635530853450409015471101701072710318671927785592749212654079779473091617472398246564775419260392154117344447804979071067027571337885470016620955283752330970128768715351044834920827805441638038879009075129063435586366254923831831177649424201320488835887105500575134483297744998820829507228614984052051848355095417783422153958073938536553494342141913445686893752730275512359930222257131925648968049403720218819460145262538831608379480045191734601713970082745117540160540718448694433248229601751249268833460413433122230432453160210303095550688674105018777172165819953612906708967302322296839011269590855639772426203185608416498990510520390178394173442598992488694948578050866230661088314517439439472877894904810683147401527587938892886455155460325064388622966210927568912589294649659995590946967547125244942615965345469146909356078435115617168664241285432231947453639765912815392819724348160147017435228903001062953100324172933345812607383261114843322122513464740120441474997489535927245258727945102652406872989468327691397197653246647064760776633246581524962813305406327186854943899861728274071833155612602625206254701552530729933828498093721786536436323422154790329937528611300744232198528443781960219839291368313465906788051203833548064560495603724788020031602233672525387748334259773296504459374054671792578925238347447584720912900373670857413853673920828901241571299676670000919811341654657595272706392547726208728183454879264522234580203675611829652706248708262861168673966432709200484708964015369850785703741519373607009374164677711772673269509420073894587913643212510771704581235105019406252992507516726336050886622765868844189563715221166976217046704266997865228835888176299913368912507131357968167899978628548520667073168012757984649288779797184612386810890303088730920319071201863480294183494764382156402777560535519737348196260196172894607040139090889135302924875175153082488794123430705719637691770095952789241512601642754175031554424857925219858148392640959080232762421572058059696267033095278185943282496307411297284347120314208657661025975375389262997301165468369458484707851430734453054787382293166937929421751631471230825084853045441515250863918096351245503831226459199460729043553778325769342971893228998296358467279349860954950621458873600282326891564649218899145901509983715631833656677422767768411328151079396538449937578160376878702113336136307921286033735476461860821028389279644956981236254803690606819557560473964565704470053151936258554362497336607427011382614311097423178446817145158614302970421595135524121985153507148177407426609944684125208320042721256980205802049469041500909059771597890646813752255570009868990505261618160971669827935432924851107399594230038949716270072418856196607448081401297695977363700627194743913123858048532393657022520251351234223717013620377089231074324887502515314226781295170471626949656347073626943992373928922087047573266477230333012979809084115406839210303125250357629918867033717916539072854591713628630250519400696065026248110400262607725309528698418970673916803204323411450901016707625221970945226718368866015583141789134257610624310702198276176783066957443038772866812710010286545711958725280309785354293129174742353031943163858899842537094217416408133167864887621190680193602306932417987546573570077060865625808593070795569723075880093263528534322048512086609858659830119497737314715527935063825444298718009075015181037927457350018876662916189405147730236844017580887648235302248306148825653647607480195057460707967039222177817443473899883261492610427175770473604344939739427469840759365097978034494724234586777989407720421484057642960577435656780500176473296590486904859438307240719275760105373985256476706350599530770462578056417162689626219474430439305116976620664303720803553953899839393909646863920937541254982273921677718958841846584779146749056768151039871653027384926756463410277510517537001434994721270971298083977244096338745986141540962994532329578128805918411937667532220299674507887660581671637705070620231285991696353911382777697338954865492724881571328671386897814620005550327841899110612654734886272278672362367752486003404507116191227241438234007992236233299395840404713354466255664037851320038669487363638603644249588097815863837210101444571079710581302181314138959859715153644731522861921381015071933961051429793513002318702601767564262009999744710927245258910513657319767693271418547067204494199693702775059124641888385931402392980129122515741928686436494477204386624562118437820722765856180362761236268988049638517436956924860268184411329738743825025456127349185517574657286159094248953601924345769661772872571133857010071486111440385184754614179849062601365900339219041721516586705536260846410662744373217375258075677444825577278359565908607356558852161063532232885297809938039758800905178259413062932186309799298846809640114842397908099836489649912567180290439317654529494743331069598336212564522360344260530380565264042733344436784565568574759347786894981202403513854380058363663746655801647017627873840190419683021362119114987642441640574921982863453572896620725913227726323744565113833437960075285363966134707977451301891977622964289798457954985166298684327482164920472796537372450057206614304157342595871123422297318130159504285678103380010294125313349012864091596236700804688806613382805279989635814623221573320120439894168469846982495983843208437040831446914879759367569686261989666561717234666058673964582798790604508140564979856688462970407249068319091428200020861035314080630686208897694138577435925516417770339164506467097397380669202119909955630333977901313602646225241694512752659239555273507541744204455453679786807121365263161739426448454053435421655578375299254703848530804489508294497961830534610122151586191695304369792489043910972799297815732080456073687271205295683130945620778234002179036406917594654165676183934378602149030007541540735578916746549725766128914724763601213653815128370758223067235754619300433637207828239287711732891991539890365105964817222557156347226772603175765474121446580023118851429997876622134338593462108519739603659166814868513384041648231314558891187388195406063518384960098051054698518857312635113702766004361508331519108513379271560703867730428085953632619373247771090835518422346918005811289264498088019803051450616317887163243318194114178414216365164016294639077313371390858612234482600719078110494703866756758018998953423729558770143745000901855445622050514384018687590556426462237388507326987535522697595930431215639501501958694785569490760542108141704575303566695870682619545954877557295052755751119694853847219950499655727347634455609719400138673317687336960519247335230417015827808367668896712386219002248093857198872147931986920489136972754402579296129308982573713588212978710090478842193004160056449681720592563949149598219580908847057128268677649653293290434201685463376073816651336206197349731178911398306764735844684963446216977145810040589297139307371847018079935078025996311607903994339050419813707990719718265938340555669039648528841703803701448101629794609839743665022843045767687885683886294270190541240886626207552868735011877495817047276849686647855520438904971575835888974000560484609990323171612860786723744069305270226488619892380758422192603770956142632838492453866055091109409350274139969324471643347367380074363553629873335417100192093150749231246682731647416426808323661101557569846016979810623939064985902988671607915748793511805811695591573551637328512436437890893734382730350319977346639788520853377864412250854180200024200194152756573464138097894474188187669283569641463694609699467043543778487858670014937295755535177652169367195879769186566690203064158450162514102427821269609943307046902009378935928520881043452308386605686974713798861072099799506527665786573731118396413710078974208245701799987276885684499966208676657555001328496257299397312590572437552462407273710143320884193499358254131052615352798435823421930733301014579180130542817041218039767744249240907100732569466026118521093131379497278307139500472168562670412872446064108852854339290831815787327847131906195540776656963023780290065149839999162007337889464496303873590867691947794680289140099582364137519242915990195890209870465157214723413817565897884748656965484717635310297699748794515450004404017547345510784543517700415715685759222899123134948032882551669614500887881557633815517731053841708900067989956029394993142893957947652833658822600288389133312874878974982559069826253674252624374902713761844396526550838437667454158502310520765561247640006142128041846267572240293767693167055430458539451020048961880400323740914719391796555878002693669805688951876160231885071350012634432155041316273832507012439277581522310838858912245331281942189217976608163066274688036974525341396845908944664118883861669200112704296797600698993178293953922907022159978967493529196575203763316374622363918041406875864614938654819379464176306955715619477909299504338998915093290611109534980428512099145867329442498315193253185447360949830461674275023966868732557239784218419569643782929046259189334349281927524253184579332471685469175716724089541524669243005031664426862784842293332626688624802177749987687759472099722632052379989736403803905493844875599540989794545914144050450127040011907338843219402266783472298015460782466831078343083449867184877861794240123807141983281351924995753215220837330090830181475368693703684477747140177498379005386841494778959302532098970724022785397132813859413256430773794638316324089555853946464959504342349577335958554202004593008704984922388784773216135374482508035475869114146634528970139158017265295510906993398691562978395076349828087883576742858467400191527209554192819840040158866131498486642148354474329795063313074076599638528779492238760207273138296853861454528781646886865764514221741038441419792349817846028917861496895064561030431749344980507054453055218344103299550156745159708765363477141662694581634700969086576133056656353210739905930248351612994547559250670757858439439713640506354397264737602204224264237103900091553017908612363820816368163898086115933159560162107468527304027838796398294627287257877087450353968197577405472162396022212205082613491241699687583554045332165094836412340586311067256959001207605779212414089360344094259129890494036444670227449929434170920019029655438689964610003451031121488021657504792060663914414470198832853496219767564707242197091534881419015238823184139860771672396768548829501272190862889747945389386389532374932993729096977655357770764602824117314703212838945425992995371518480152823946875455730263732624745223560401835286971497705373147134377776962098389811535410232896464150627556154026773893921573647094997756472394767310420733998234263421083975680534294289313137651290077779288961971639713164934143005449366328849447508006690330240297427164056758287164948246376117084309422957891528928107479451986812591855563043793098116664158678258650198249517803653670983241512583178808001125582448875232043212893023616284253835528980840062352877202156382142665240118518549243743981107869450146808499139688848093337431339877743474680319690884845466114542199096442270736421036607461290280788094117859535512213983589653614455793125572242962352764713084021325109025300494014105369940845508948157903009414226504907987607243399969953421020046704611776973888179918603289774860514424586306288514525338681442957814677406517906082305897650755405179036894638886699970037040046767395765127863745185002465683886598455945328821772400963668081657379500552413137744652780175692522816778379661657709930474701217489476673590734398476376071902985054218002753166620336639399165866721217968905754123607373843168194241758207863344347896138418715977321449952026094295279128772823829586042109945912700087072171482419380604466775714010139739103932426988497418333717241947631675603044335917834867087810533312099712604703207355092477257473253012215082011828383191665002569689270359657319938487952175762669266139731151322259462630808275761018895835799685640980503837250103408323517709963170869916442954823936714968131980692405050407498560375508518666014987729582166622327875905351279008954132978303500617966609233955389006713095965245387120692291829156555859915248205922018717439783206074010364166183671724595369856601897676980999071716180274908260988727627356802535911402794620493416682999805823287512614851287514472474766409972423753367291707951692740634095125347108494832381918441496250677000645101562257972419594880963320374226182105211830198620103377656481695126641130286876562111988011342287663894571652182528308616501672857899264901129304057175401095182986867023527063090038260932009659194700855051457696053589007416385071026438595977594538691003763224714444310857081086099903381825978594204649518789630489613104208391459330838380674687384237003399740383916168568590249466326912248945773627056975235055028174803544444931391240532075969349736982882492511030788026294617092073665120687738265697977455252530134480682628347653647130508652388188797084004175775725337183329898067917124228139647678722107785986746671694034544292106535681955142626796066448059162067345397657137184230329127336055822800002252270834925368197640164183673784566074677796134984657392514114178512109069290465670151186848264905762028049388902001118957726106300158090085580522914384152840287453743943293858752354717134217571153342067961779439019323433465153671518876800309655333102182865344734092465394084047630947099017820480995573153162062587078108381237099904578198169429103909947271430959732186352693981855655995221583396816284070946667991788105304652780363220684114995941203039867184326489503448372686500499329034988987892000335245450092897536950586326285031584919179124346210308126918310099323738040702636511986578641490885152447725553068982955293985416960815268576884255976104749123830276543828289487037474603265133539348427523569395766198531007836224581578793388362507640886460524068798563299792174104702412320988353248486002717644354384382609854891903325179531962173310894855406064866801457428537705444556489695402092344860976467648312935235450654290539933568193838300991235762355219517118848378966338015468463151505787544837304734784901391115183712124957827431021873764607653347551940817759914006695139648096696529644452906529918235034035227470020288478387488424653700140639185441059233606533709754346985448913883058668973393691948473035909146383701458719222606677082938320917433856263606089219855438985704071922103433716637870716506383876247166915816806577093546119846437471232578671197660445278503980189840175232557366851947342727368205927307720521715490263901962580710902323166437441035234228106423068711961210000151522403761335597458132962284456716322051984864309464282566376232585650129691884228346555939815204218140694106684644364105016279454489852854577475047252581835041236267842145860776589268991493060172400004325647695597591200728607811248031248536516922088411189287688695781635143902886898243558714981519477562299532768709195154613687802084498735947468774817050534360265443596199886501472203206831745093514177495523194724384266840191581926642318816093854179149237102987978570053210055508592719855483532620543589085728368534497675488070329496906404915731189457051302465941735286564581796435305132797747866037127373850092083843633494102662498902948186625952364750747766322012524233369604872089773251137324643452694380722035022522697876486802896514341113778370817535134928666746109771993565543985266646717376199564693309194346977471386365945394188660732111163558200252560614661411726593185066240782173119208002311769760895042579661438850800105995722769673122989004640384725799342761835526280623248981948627609140578966858849650106564880875459397159982091690409928736847739761304870274150908721511207868001143639624532423143297955229107817012567146648685780116004475099997170099209908974204656301136269995820121973737318158269682074817461925932603251684537728714196144749710567394852090094477228101549680450505954004531241258099823015180288775013306437312010559338136345542139229620684324297615872933749681388950185185443274761652137373383893612763467024094415387486349744925240006713727992941261782696195797643686758618330203343299752110735291957972830570300867768218340049126371578844125078042880541642566590947248780746669735952449565059945854324375044000240712364093936704956831001667206058371562943412090555664277614557797129774070036355972207320681286292459961964507607769566722285422722942044873809863624635019047521910060631962438956646767695293596167486483464604233013957460697398413012514961056818693316055998182238973254965420626862021666607844698296517468565401702182894094072212092526192246651106071079257273443157124056471808779644586988197632988931934922807540825657852076180358730407039429038174207461697614095069546994251136386105385656809188192998933515789143218472182557052853271108239447259689911933238350338726366037889322280912341505273343514797830323489995126497670608454777622377880186266014860737946684351371136826687979693551843053900779270642739216728719560807101781301355642205774238111785060955207093800698036324749113829505217248666095766390306611103800597096468855162053700202430885223622894277856239053480961548608386240554705722742108548470243209653586659852267451885752331077573392217495571754004347052344271511144762742923388209601544690835503092934996402757078275705688343828349229039496597738801339846889032429527803935304128968819910084664670774236381862806715114211502114865279227664509412011122282295216300761919396150607509202016927905405469493968271348681099579374944670367435459043076754251212675115130083257980153956286042942528131025585619695442583725947775169850407548907568213315717677528963143282996967657083087239212697583421973437400100865433722899057790728347216764898671728265858537113749864058705545957770929632745171857595690282809290176642945802451690621788283257914555253436544783272073560845405977806143685364828150384755768429496230891266688325817202943311918075928694307583530875024973146209805449947127491792982279287507590855889143851586436426332991897682789667057209643369770014413634964220005386213881242523674947419779957643107779064676991589028009214936178081472207491362722993648780338146292489468845390660382062470246493454685624503982188645284518373768209782179807910482637229523000501163005655622316310349976621240596544643133873291057998675951976254252099203686514781983448178628108575162157249561271096063384333847393419329073276640318842993298656262450855814533642376625495098664117249123869930448887771181143683039664842557870507781122505305646914148255378442819230991657667762629143559763337957943492865759573143206101123038635971473518734439246859146865484907440198851338461052977134970166591288009828928451177660961088661298355129316856087499339532771248966825683055198626496687173609666529772489122697467490359470675744588691886534398238382380221633661934119645375424522272508741648343012882784088311035032649517800271666392338649117950527822215630759509620291236758444326133523524597822286330395937365711706811448114792512516006734991849857239116267259158155324964877343013071445511567229665222730171955573059007358430673734782008618673729677496622999945932704355193805231249613575016846050723876808727343823420279771331268732197085406833046162491690737335003644525158994788612660072800871243924047182936755939095819629139691101719303860847273595124289058414646531992694488687254029938869755928539129025099571224586608716201986120901394548187356449979728067357617201127188472878874497342213131337781757752744850458374552590185805744579730549329310816264172894791899116271594867425021560510606376105829556744627543571664171996273453099158552325461073518429319339428791719538715641974782113717915740221118406273239332668595040359312160963111314968532974677847872826806120163749611059668264757252540318003450911623693846760791298217781737229291709919518099722302037459387542320495895579429936904124584034277543059145091066852981639738284219207340322469744480886902944691355699674186583406482547178502419411160627881154685715211397375083292369590694625160199735342324994929558247867286379134854924816944207185029234764316840588481463283963721194062702424837988666043245155930427544218599718829359145672439620785654554463018403253988341578317574577579230993708713003789085832900201872607376798938070869484119883084044641632448034064324609819615146848958326240704498148354877272293075503032740862522078706031337310450443407856052998956189846015130599649953439782615473799090463795451223275683759822027188394568651661666675291567426195512250296246336907241107633701594457304612007520914697423113150255179789880627328891125631021904692118151074711854881023529989633134950405434184512176126491950383581995968968674910407759426277488810941278289965577028704780863619353831524350896397051836443834863868128608794965473782478411583294516849903285261516862599106413721989256196917056696135978128535389506494491095726329305574739627109077045442159942031857688585655118532145434941703972935679804659180312668406770581778868473635208137994959077500517409312335094399510256077523244095380368694625241456795110702567643679895789235080631878267222207051652137714702753613857329815003719478594913297016349858555845443218442463611684729913111486730834885912652849076018126062060482301503383881325235190820569544475241149324229880870672373224465395838367949005417969997759138477398541396618470873343312957908328499367999073721361321809327535890195210339344767083382866564111965625834313039331818478399998420074363835914159344855696655824753914049631082716906258932487256608317196840150897876720746440614232857942446047219343628097014587501015314808626903047728894348680588385424635205701233631962800452707298607570782932385892069345346038713653421106519487086326571881162225189065889667296404226193240648598342028138242384990930740260990337995717913961077960566318506108013374673862118090901824915669558656280413207205369259339368589067200531220452836204215195507392777953435042533029510291466526756819309804226013836680891753946444081495052613102858799938012237987973616293594302438890573654218219988864810946883167213265007632086414996212105030969349371925656430357723575550098450651160856224500083761322259487302322768225352966769646214729863242740548574866562121657663355364316230683924379636057422728935095902737608374410579166934910457561524618120135718404208021023350273399403340891388573498428710485736931641964347772252245133547408265186567820457502049892535129076670824493137042007570208139788523742624688176595797989416311951447187343839275992943019169846255514878379842672890786312716224254234320385505945596058725694958113636814381897149106258985875097382601519811760092496837934443651506445609048563144956321470891531668846897790610528492782467783646396542353417423125534810337784397665974914489305940005348260419296120653411456379218563308839417159756810470546398535090848140221813591646585195748796622315600526431486048405477376351119828246568032537092943492489626445522847322200326859001482565211258017261022227747460640520195678353000745096740959571118189603701087594669345184388792756684539875708255460012620752023423130561655630793507190169274559350824534395668369546793542104977756710105001875996599036514531399093923163875840066055338535321853229669634456950937115806262668625107302430410850007954621657947646802400510511722194181447722981541119533393802599116042122248312985769548991007120998000958352480582499814370721479299996681511390619214518682444996775681872342479209500301321534440243199912134104942754145084929822238801708093295205388607949401585921624654244731232705528102593121105629673979647273293619381028583639851175725327534177128571230643466761879540609399975799832463698097494480191969472827734878916892960318511250132831074760548811965009454986033089261265458904796201409947833764701569749551294310733044964229429908083583130199547716154768341157878330519767876902303576562709421663183375311506145654592279421088504076179192040840639255290446843558617900686084170217172050861647702292968518274991604651346509660103655822497233713786511352784239431722418623158393599327667396964112746953037635739572641517128199075537589075797719319591978716209206729304347549168379418509858596212009027889657794026436068195882690175109701636579618611510787370242913142572982198458659686614650143914185574860704084951636740935797505052134819356608581142393476627420126140892944581882858643571981907980826692565220155894598607079957519336011280321565352792482987034392533473713237872903226227172415502358460203459075142100839194858871247805154705370779625954881024663947690734863787785108903223253005365087640537245346502696574382164803724444095773820040292628650065763227100525778127087632521444980307177526104706183208067310628913899285765307434167615667228965199863426272322030580944836116493877240540370789389578546144554415982008685705628912150675406041054269196078860376597977581802674107179818965634552868664793946619138984652510773659641385009180962264556576602029975518456422719729956161341503211862711870910047144910711576227028938182808704326148056234553834820367504310153271481597464731162908207879931888095942527198986537248059961778641057111130236581169959988753682191788641566812155525908864744400011546429203847404572617389967977182119009806684416702553709118981741883340085134460804424301149247136218244449430691469822049987981658827167682862713201366314073631216614620019421726284500078280426043277961471196203260057316468018635534811857339316469690934696549270749164499242095766565464576976616012847215417603886826955075531622815368668532834972230513224701613057647219140254269593640115741515123328757740219265627949728354158806857765948471307312867000352055294352901936623457295432299095988755716159700567340318214927853181762734200847477024187228127340788046931407534108897047518216286302951862900998092356934101247604799842830929396602749386218266472708985187013688461600825789975254205919820920608469068800328048193122463404826790494048774912392087239946741025144482851794471098088705120570538866437466835798030060726810045207664294773797935534015620525410763030405438810047965687837602466807682655677537114960576419696877462362606971794983812549730831438799405281872141296661793129145630887623215961310518269111632702733547158197462073226017639239904863857324255709192376291853747270079379359209055666492113854154664188731973251548199131389071373273293078812560563530161091332643410539430231031964044166895844488505863044979386113159154393883740047480193971977143389612154386364480113364925899557055825091445063062249728735703150727244255912849049508804099483719069110941008936001867424755589001470514017429735279261132242703464266514423172502304558139825764229406173142854508271765404697367199445588990377905045396153253074833641921584324658365870883593505526994395625946075809901606737261080030619097338886292925591556710121001274734267626554376098669186513569781246169039749555159963772678686098309284205000831073128669000335507096197418539593387104866152581328320146272155998903437072298937173466800193699680269509338308283545441857165085343997020443175585396006233863007143553399067266865534154717988188462671885874402632606188219861837729179523520332332443435884894237937118745072590000318460841632480972085317561411615391678415289794254126996535944346053619279285861521201716532713479104038689578642147138681736894673467495635185510218666949893513621647438509561139895754949158939761711756548499436713896579423841626227620679970475236475603464188094396397406547928950751773844830130035914436121585536571517701612521868338375457639593564171998181053959542102645942778387287101529558838605212705920971431386679799140289988680981364599984480065332194622368621729181198287016743322121932296409319469526380361737254715849176806315822273801821328029413886613849482364323006125440318376970513817948549274569766073807932379688023579043038026943997871208955109084135275288975989887062783329798296923640368288412911272195174634735035699935400270038898106086136112871398914189823018352001989305714868110224529626154039855147379860674345426794713484344221236019967116849636277752996864583665558091317393236565638873013093378986072181510687443615699045395275388772830235762623629971218870626184634077928090598052077023221424443563143872747986567248109014354310381877268383033205578173582724249602266713048395457534042292438929678937640082973395136707459731314241247976956689555269346308613471490817897067397371429037801956203361776596618354803245074558996423593068443714386388208416719578333754214097319182107253255323340321702659580264639042624326474108204445819801236663418003348871168915429816486864121998550560449022662154754295921836653649918527985573813853310842601966171242184742877137128029557486570871845455882159819566841250426494893092689580843093230399538557365537922867786962038820736920255074096168592312568712522468576960320733615974089760879043217863509005667099042581656860554209460406435735640002074537886050596197851711264706447157932870538087896439330069657989974139788890604473429630093667272477340244689166238693521856420001383497782077990573085142424949995194143512453130500416399964123948549256551487464939725141936306355198510192858730849795935293962452769648336288727749914635383853489433960798420392628188759526553064927812389333826121359861939290293879553619908772240706573612343596798422129237535479336273186434231519147212227208898214639869552645168271470933231736809139083286741152755028644085386550629903302140963769845714118123563087142590785065873344594405250648384170912236796197706674750439015032154375739671022847643773990791372030691654494376038461098072532641742402434385019567537228029334369169800544278368861783486537781776401149204975967542138516312299412153393277545207385152550806496426735252512254770848637239638682721245303375668831942143876230074275872756693830455193608795617308950179606091245992211728711314444852591177429104866979804288276811076692556020314206750074209628615367308066586197646641221089140938120880776126259679790384888738609089401326845461786402457049390353706061695921802366385394935193641885472809687252753369689231477006427625315578656260383510235384659622613096694489598006007792375610474624322818548738706439441624857085438177397473737896538289459902092331579563562172218901472193578333834614379271023344550097279684743677100244347455189953408374630570023963117300343937836995424295905682143964593458084146944643814713063514168082876965742470534233994958355096137454892229920426734495419014266399102168661015430302731863960839067881160753450165112640796743691407708069088618942965974922078739491514266485334147599554929846039901684796940268664228412375424345643833577602333953044388871185832629479797878342665572534890430390193220516671243206592452499917764984475038673801924830791733868858923520456036136871224749397772741149981834948034394033705437373368263019551871252756379684244760739555079452435651988790853763484710497663776206403821835418406542905778750361577687035657238951586395288701266926739539662878757059177344099107614595645776012360102791862164673200572092923844750383063782875462051999861561421233816664172991539220688443365389160744491075555218307046658269385433816939125112103274199293784566160569272676850847960366597324871762689327687113832823596375412984419685250845500575801297187906146506488521679918417103790465616809611967158383315447559647468304716047957611806224565404893654000169953096240703732227722965740364001408024689764040132254398157017723936244897857020322599605233326760299145160171987205669651224055682277663241731118897076526512922691320490958326979178863797712648530057465458126281592078185617826969796014594684045219756691942255766041090841552284545202729923828347549851673615521462295745136596201565266379294147840019633967419516170965240658795515002050064608268721584161166037572992934464055116241008283642945231958154720197489420275891257261071045688502146417313503536077050666623804263266792969246306051659761064557464461652307651028710119674455695534079392929169085411806043569510920845297687910333388922184675329642594725334294098285035691292423963116570857744301320197752661493709817779623958098284709805405023072995933405440698715220361520826610272645886154953864621439344688357546833745843033554518711217772460130295306333096653227144598915654568751308760155879322066447635802120730878485464505628168750248530416244317528794237885079022973436712938939690221759248722553898077812069261551725583982005110872783841389139816064029256315952449606515141955637240366035598085151042508547271865523240445814051397368431772402007898512549330869268091234488288359090447838722166713593873348854176429444674912722477218456696322698623970989391356814602147033662598221527656907030388252355774938639291456703992173077960169526851363435340940308263281304255174358780259064253749012064853588100964522608748688436181475947762932483215525551583094256375548815539479041068930982936947516139949446817271044247520200627421839141963312909159015509032959675260195496814322645362242491207142526465409305628242295008381295553569508578394388035923424550106906884228855551063358806008516006207689449353410254000112063167600619609467840368341304921488792311765654004701882995712246021151933125948483094545483448832331487521540545091688640070017240898367342828176619608252706493590539165501982274952043515421514847996735993158412927285096921139777137400683284067044118159202668116067224016391611856126568569113212533287282998937457020160396752263785585451742206874732710216657030511618453046408856048388772580652070592356978742621871596559446339698312113900239375433900254004104600258783148100242301493316153779572412918905657960371750233503322119736497577195612495611374732648728082132384968754623069150321045792921700405392442752956777577312221868478752377280519301826102761929532926373752619282362538272125270782680722443951649088397395752445809033278055623014612889633597164706356488886601752858301604295474195822856280685412304945366651675641865776923679834230430514040493023278060617678414841160526011246376315908767257504993866529305221805661522461423844356044938921423885830272325051916929349408309740671098213434781141878911286522364874164509477414121236814556112693929283533155767183948616440198476150679419846295648040741907945725302741325855520082372698533832056758731665356579504139326557099513333567973935063486118619071338938910406363834220892168830784808370538404396653397313624734114228760550059045086513040194831665521748896772609313362466445872181575690013111022952870243178132569418866375312032336666175603884228069203150175054695865227543366030420072350471827192662281628517336235977810708957330473144504458076825758070274724488846585675860012805216693958848311322537115187979934392278310907373994951903126074742420317588458743439724448680334058343002184604163093154449962298251287988587667886148536921441076873808847692839789500829073994471115403483343646934665702422702817320350159228116327524253742161937914017653140443387470450266037219019593207850809894367248835547863411392240258644022649174466300150057928437526374266084014372471149777383489613955134121991980242060770088721202682044358332537074256532403330756834386941501148445315798658424027554722561548443704448218992759764306381481504489330770593361807124746416706779674546231111169629606649946335072734269242266822116660569616531301605579687759410362082462566761967543682145467335987539226865311660433478055374685688733911281127583165016203695405665039550047260724883312644533527435206878535006347488076234526358306039164373241824381704295184343363972882970455425071728348396759313925217239412438548179255133409861246100140945519817706341178322466879941226209134449446964043309017721016390732324780747529788565193200418246166390175723987185553465688958429939419425875788083329448574310584957176809181126863722120930666313264748572145591246739016851220381556395436672583978880477833302344929978201474139251483658591948611587344625492366614662765529106060213033977785730159511474321914169716072355131708651601828552588992151586029349013688050451143168929027097645422248943963317199914217376138495746483300297295677613997858153599311016146903406756708939273577069767388284205345422360335666877322336983073036658637767685609413039741534450535182753403961614808367861782619751431332042857777200150947151091752263995707581707039897406992695816418096296951462152178265843320648989901420669803640645738399233811165322847215546039187651420926911525000849600113980438111947954795488857761248897538916461924629995294394693710582248177452710034408386219543810188999822389246473473864836977184760598651289050559889645624828955309666189692652950909630275424511644276847859503570354145904085706926178111093552064804673996306907465437886774028565926410840373042739105675469706102222005210336812406961282824743108147121727725527681437477940748559813152323903019831860752198775850208192356529688343668546238334458131789412473167835017459172866604081937306430872480404654515801765496259033327903982084648805682191072503445521716172891104538390819440236007699721617089289232773248289430563174089694267283465611203767679395280457787767646925900605037203007526569945008267871981177330936113560621464401202294684840857885547036708960126114420786017217087189018758530243006215736062040812687243741328382369649759755434199778231031743404345611850771038162061838963765540495591990772635010817466512136679280041867369380359734047692209954845072430911951697601109686808574892228378223103337721761625132344800165848736776645087792507509778289662648247068362296746235019047767689690894539243205587646203401812343958471801061474852321092445118137869855023069079946370836251760201830482049802749995896866967955055852046753723825854663538319978663588214968853577358111784427797712556318330236978484725491305881321091919474663393179444394389278674692062823758068668356969662150435182258505345049463729270814850401532084635261506055081824874874542297344372880934159062893510241849466892699686241138154722110031048039396896270625348419751716142157701603349110954960849235739576083015271180207639926479538223340494228198030825334705015785498111826110101415405835162639066489708885012543570189544249799168240358528327016749645114294827583037209553012748920140672561814755770831389560243004255575619422647984289883046062033207002812201207978981800226482300142687377055464356251715364674964575295763668823382224386415605576367787431662884774143948012392725863586944663694433467396455543083761648333973212378982592483951891394237253223825727826216149483341502463782581977264121897791351210764657975839242442631825866112870167465309909621239767349397904416482348783518646147398395298602751758102083398260899797453320345255720478253843705735179270083963434815484734802714420006280714864564176795208112944689657548072608311176013286697088878371825292487216015575474457596487130057877331507890401462642071819258724213422047460607679159339990776714746199212845325285001280684915739362575212045567627697482452594597139385446808413084329986889557631383895994141566350323802773734174280643310891830495149633892713808055813745647153316335112417502400290648185256735618974070419425042027884992064173462858975773210064471879098407555036164320888158913949649373414782625806303783802237413055979666993942083102880374088403689389232477616073389348224699223433282756805654990988860851813775837578744789330723051845833505693665324229015100088928316973286441448270181633443190529547543232745043432642534868600516476486937447759491765470327094681276983409001705603656388748929380228801570612130409280868915680389505244496288438301418830747328140960324035280799925590149204674441845175981301750959618934605581202567824134880557862858194155910034089296887589678143933371039239817560122001423021223471065196269592745500721534279733646531185849405768128967206446160744488221932010239469886744962171517572704420278763554882688915315233663607423073679244698144123741500810295966636608708527080593705646602451322494600128539136037627572613433729657118817967594700578399187341957542990938236385753548088053223530371784260367773457199678036282543510543854884555066724789478490628253747255505350249787159974719618943227665819673864975991220285297005333425617792758303829169125131915343795164430045996411131539497989606268415717598435478364148989190927073235589576053456431545514177069235373734622069366378552475489311211939589363118977440206567970935068592803389596750345539588860177852643927096104957609881584927332518545628926387281566427857919822134296601362275723662623951563167516611201339086467884937319481040489128144703413656523422539080615182583360646681602395257414547250505552281649126902335075646701442569582083334313342204094256281593802564606478319898419818521518827159817745567061320104081016925091081556984419716394823837271146979418417845014526249814169058005367651773780132243432290054560463890102188582292849134027737009830652625598510939242203368641753256661859372586144146518532911730245442765324664166273755724341071426074098140933763222317648939457864997057560343818905168456279879337534432512792794972220858608512181992880793451299943092490714432840483188880402313106205028365936574956017719636041073401140758847906494545979149246501186997537884347150723887833024034223069503439377754460130871025154977452384088062013595875640725202918364018928503485241970389088977460436912460797796884475818025895051102770045333484298304741557606282775732362768189450412911502360959468058525613647131222578150737157801169158545353986496035109227724424456419697822135101819733285619558847386240553547798531358143954606652579979184231354385759817381586626243857650043125848693216142702071243134819065498946626090676474491241750244697775100367982417669315471096403815299500429486049586158529945611154021980979915941654569662792155858806481737515213331942129927922115343517630296492699046166079483307410111392895656046713643113813315233288252836694398926240808394139635516770611907727295347959538253881881107386584681812534148669165623204322313867379731348395238983508240470286419785701729587099229922108415707354449821786970366606242987263107243763555245751245846265808397192814218449522300073855971143259863870581751157631691266455224077988813932418729749697331364115553130103085636301473195377066914677776388721312528366023085594480748714974525272363989053146437640022767218948951761141188720494158240107831119878363563291424035240551537237515026407242658549608220211710815246830162777687230246536649008325459859894615738377386016158808538175517908567805835335750902100755996822952406807445982955411774346029756893638030604523433687826509336508634840254461936461301008397643122316631038330667583637473707347975641661245403949895559296074332094417431513864278145610858564071280904070610130554720369750690937131298102979608278219659766122885001880018579612460691193225849137532625933096686981361661965417351002307678847410371588314508787312919289577970999829033415886606571060867618533695169866131939573434440520266440154943796070493502596096046252911766242427971365984626627951741195012038211747731726983392306897010483495928659975180642543167410623861438819036309274376401170701175051030545291414055927894095570200066490758456669688377250740652399739244975720829141791870211973504816701557627531142190222274613158834701621226818295749762591311838099548626416861092644719637474907430763434281171264956861088458794980225270971216946989172641109325230047932583887893539261558512875212447738887421184409933945168974208433292677337923536910221961500786122252507516828125634219492270306842097371164246746589679371438649934933082168157360342449338573746922513903963124863959676127747890117774467836727771987053484949132345436086899674956410362851686194975786270895846712388129811522555572223706311449183130932849588155331113446979238290185910858458095437479336361133627516949073050105120978386370596214791536979456021093037333119762842126046173619462048016357583140306270453757439906170259244435801822248775908867662353080268176966634642234340312416453687097162862889345725026863462320684126771560925913394343749700849740711828703902267532080542876745060746881198345346566939575922133005734522950094063175289618452849476507664110097327220213135793079703805338071832644763881457736045738357957130212813712736802262158849948100183394213386662399445875037465388553181018949296838260501504581443976247459912776687037540932161282759242939168772099563254255792856771220274053407218303426734870654826976404825831894792387460556178622743240719505648767910798540511074105081338022466328437286859307913843655995293604758443187719143993605811254287121938180460676366625899267408256005317187546438935273756873350819078184715578503289331279480097712167518693115786600804228429022219764635980574272654655281924984539055379423910923472945606012907816244216433862411434305994881080484940743180152279627103243292106642100920954372314278651803081089813290794594334682381907326241766204803896898228193765895579672213807615415212191643032996184711362959397812252406081827477963969079382213239227659824209614520151366839936322998889777107965793935385254726577262129494099060129239728624473268504832505300033769884514163667919913546853794090215678730932894199406150887485130958346365098458976263842795826386599541230529285713465803280440391654081056671863335142639049067304547090721974559195103074692425095963398996555799349341236158239986195926633947580404211135782322175049454427605794884313163931090945431240353526458656512381022642282986700496260593524764924841578197716812671337772469450527182444668218576891781209687274961006454440801013008672507004134389099164734568573327778123186597906433817508433725244724321088819248331740114214828493384340126770276216572735772994891757937797358853371609169232281487687139053908088080218006021954778927593734038713083659294425874900024413232178807012627250919067145922770765230272410436130968526141339927315017556039608999497123806939048118664215386394615565804409776806676915737211418766503158379343204900748462142630699972386264931520451059552973819254790056457139289118949831868368461421953637047393138436561705783089880327978825938657296840683021088097299331192900016273979173294911657787272497137366593871684761560159053004962496915143620640391975271296402772656285045340068996188310356246500425129699574076534945852076218466433019386322177945379189583406076993792438611917558492538105962245938022339308304477408048798662626171815672705281487702612812943833713511704306551073256646299923470206400784127655688676799661506263917027004920646074694526896331220660603733637098106616984666632332485619023810249837042943850181701991580971582173415488360506436691788880443942189009938687685363533220551159311358838663485741862026432620896135664161313778480072774948445410910400588048054098590378936831005415971793533368994401414840336235907659747886909227910426454820474860195257895480105047917182641095821239998991038151928641608185741329336099023311999553958496028908015983684988149017917101584334745007934711421573128379697793778463349042937403420655178123790606439229214784086743176930818219816823611680852908181341577041134064972907007907447302503224937082596450338445517644419481967771243766063897499653899692393528156286120552591673066771955771267762205174254108373269869278626245134681727806487597848767812821629455444587758250668089659051294203411525811708214034553042056995880690268819894116978014587837197027314794065470995391764331735906301374229116295378264290718524270543658416837843777376131836550840655605244307669066631526943914880779841656781312480454841634645872437223749980460998428936149346628352959299604182457326690698354533756393304272889337328148661221330876751320226245188221706948036708526183810561756770273924611187608113402804806533023419064791416452175468957470749785930021787979999634948150192330743449040242944651378260642305357416383787802959574094687693570707751979476821009868665204562490658188753717846032438144491242272406835803794451596704649219268024276696540989248485566154562946980612182932960269614664843012494606709216993005675077525114883589236150977193236566646131865545583724369392233424240089495744407373260678057337625854242267366013035236070566870330848613509855986231286514016034124362550406287517745429672951918922871145480730158510674000771759626912088340924827955086445713811753672085998970774862495511260056929531390817298851796622789867664320625881089073858087815219123245805194377127569826418401372660537365076785458068251235396231126374069464670611276732671527877552024346620326786840032600558853368547004599785419383752914665195036695286704610338170018080055805223126066332941569605664799591872348021057263650610686052793529727041932809884296516570756859199412465233465576687805955003835128924596369706663765428848154341251171236372856990205010418038818752202693254255319810058796546217489130833301630189500270081883797545551954352039409179107377644648097965964359675000517639944550058875956385327028865878528534629417779200306788750391720571541528669171483027629593103367808761097172152685045452732682364639129473396490891540411340767411783853857833348191646868789477879333927483407968775025493245722227289541765916255330015416726165254325499496930606707186699165909297322470843887395808585132942494712366211432389269702565818373021842341487608660142842523722222301640150523461409230594835843942907482313670385318884055282299324438550565990209138086568770709288036785862398720519948418574315700195955361740230743848720337666825997300216940913710377643379380728118882758439020161262943663882097722685306829765803046172144024632875756720459787370877558597253792157058992378319190220489218952891396382887318934958911645789241585723821942599174509234650249283012754046709426868313526959811111512450174396242130267687603367997631544171577297849636936028218954713865660378932193743944850926586362243460971533040431961137704155382288123478079508399085674476855659510146916877635777312526491368945187439695116973315239270152094439728462078126418034542975573221131168029985431686534770402967656779203843541460666547817559055790203531448080154662158004305147471673948009947381895543453493900746523241929365017985409080722236526530892236090045750128558219896267224023620991501783472093224952274512696742424858025389496452480207330976693399983417730755645393024686659583466293022723283726574450459236631429890324007391498079570750127492059632577132437649594896015538588726356754088773413894380446676460773248360527071595798496759932036519548037712054081243366960228874031967933033146306028909065011738463591804457690920979389191116647147388472992130611291409223559364421374432596780743123056613760332261708805883990451448775807936996225425724927274881943974888298496107430775167794217188193108554410993464444192176445777934780618419670850222001118683279708601616697614172885056447803911446025218853157641555698325283864705353891113902174631926563135052655771825734840715741213777493661465030957209860651114586005006868842521658143449202937978890560847731256321824458797369108360168007392959895694894705960374771318098212644118962055645698887502160866939964181901392521212641882863285454780090846535590522208013466328974765366413426205212005406594392084239987059967398642081253181885246815537286362661972764864886180925829629194882328987620950986460120309849349705148279424697721780694357778700711710727105599697864148092935884451452266111461343691021580052625636817673774101654606044629461809798681017072028824578112328768462838701498702946923199102994325567201778176014388530845312728726609603647343356148049214099195564750318338660086042718136001100396022846701939376457517194482958107729885823096059831936347234853033841531935468121817831638731782490032112769121308342618024078635374394931434088935154072449476281968927475349282870637290452379091892950368618050887953612824520186117953350629264906274015673272701099111621825478732814969515798915415043082937561223077829163594720545153566767088443678163457571637342170270707767818496264650849228224654665190640633815756594366362734725696333537343199438109389777027793898389634400888882245990503956095350311663567736232862322294767899566108738137459273232350581079188363781676554023916133047915665444502764360652716229509135684664771756226687301095053579280921220060947297285097916930455463036443891691602815225393872439441781278144144144753150655229866595049865762956241526467255106233127270228471677840144424661138160672582560953151509149872872968444061527900985808045730897092488138930613610504433379745699006743010875832290399537749908284535710454735325979645535393933787523744859906330250595232329928508066970718774029128299703794224252944031541484367148614660414655007072228317282998713038813411946916388637842843326754307940172703745244855648974677500019806827311697305570303081566108844414782130965790439323571919956201023980588082860300807208709378230439842221734758798564618907985956356805707928703284420912573215624151067637713867196863994085325938029978086198412362112738565851997512610540487845061914387755597613604506987370014721722149736364113562786957294440943673419233571551842136923819653106994575449970973368230618107486685546176485658513277649471066458596073908468785667649907841551618937372323090706968593133816239289485881310654492419981601756809860775555973759862800311184799496288470707228417530569664518235738754750782979480352804002973498966531852986762667352991996269316537219112870780086741749050166362887633062078812393684180980825071866617435803895277092117753535043370132080133183129571011573282670213684045439057187774884945728708522883396467537661724058767894587932346881041888284945651718696510725269811241480766624496355370184639693120645277283124357144886943053136123938427420925682283744429916185550172053258068869935765793982803718414856677371002828923006693395984282544932227879106231330854298386411542798602586193980029876034627723074530339463175499162224660967540856283069660418490205840174118542816861486221814221909273720906420410096852359269817769861185236613060609116639537492540421916586483386472607033196174145721144109270174807594056626913625035604447628865440891959604210108697502376599703405506520362733468908685737852452857522066047697255151675350353837372365703729062049387865506420889630843574143895424250295930363286833417353048904893192385301218408274388202860251845781978279413139471415606595986667536034682594778673424096872693548231840436778946073006791662040319036365840862824231669443614945882914295579042492143211821025278953298904580725348491477460504551914878323193411939055088935037871380589700667422631960635953197938450122912864228594647847452777894702794946467849141594492370622502257380110812034944789422699764418225229117676995522794557126328873933678133088083674881350109475977773663746086239855615347634025215466339859404275603854505144049993300149362116560877393185481008387131929867869859034677424113832364136091101794199309070571565732559966425833437630231453588136124253342960379706750827961933648864513405341718812083963476565721210226258959732841825031489798118567823692222230261377255235643092081745442528329441029792448205027601208041916172722896949000704799607679039684015802850584229418032640098444540770241553023353791637560118663947247938765060206322073931822703887735509921754551407202364287928988860842407682378624700585837869409203893868930566668926311433709335457804821351314323478059533652700313498203981228683242708087845121845995312074002427179780464002556222376690526885905573750309860473961137270205436332573619893907558901482329003823696182754936622442058889219984302944871176048629482476678237309931305245414282570929392003573485185171091052075949654000480267384444908196234903514945978615026024179056817012869152586631274323947415648479806595937833989171858888223702694305993528886256806878874937553800675497768619294029171260569179234714585892251835221551596399959133271728539394804128779774045213904598974272449611016468251274848066731332906051388937469281445804219782638615047884542689456384363114609112348425659300364093520281642240299145478981806770587064818952470236371638285889373168237936823694346676073038001285343824514759567474641832548476245392376845822519217213287344115151208439450386589082134220163145202472019252376158409345937296418604056612633503191950302296719609574522704594004341740234492277018603456381096377492674655720177296125331915852389739409139975237152865324479012581217254010976063340532122128173840115879359482964942890310577903520509128721644739885348340984055611495658728421714276251782820243265730409360590068539812301477851063683162708481153285495200587351044794041387830701230653377499379408793027070125138335037759751779140326440121729508023603271670940381705208627312812337198137533709631271621547093702116353813432423892519826418636146597948005073496312870120032951417497103901347488098740534675183231088719323313349822275847183749819428786798845101401199732069424500162791328231091972399415538211465962705234412713386023193466519440711359758595170582102649692498563057597277913827106659453647636618075867411516848492572772797055688780247402476750348178113268902349908826277809669490045898343874437543996521640626412463222926593880530171825644087827508690710559639424167640792907799119222113914702858973380836501341863371899246192468853925597478591391894116802005541383870344649285213695765448192551077357153338627782513106437968973270657751013665559640500022660634175566613668081721814850195880762558065858805380525030498064752432607360163685981646820822685318933639879794420838223529274474391431438348806289238934247312733505408371292150012627439444108357463684080605026576505827789807656891961499181280149751875827748030124169437710222661513625560620608774615631966557933354285775498368389148463789260550266709238299401091892884359464925854784955822761463404066788588223813943061840362100618155893393345068077172103162305257114475044349920984158763201864287161192329961061056896267194804633516687562529872504384414980776118312541026251218872680125047417759641222611652400888027811412827145110774930588767998627873186448195478931516008907944669351976922992816616430206008025982126534962737289892066233821605939576548077023817038406100079901071855543100059795550562897428935782344721778542007685501497013688440988838255553233728482450068236310033999755586583254357187017544548246530091055468934376185663297224981329676870912270994504992809788159676505873204282713398379057126686053923386065222891782251036105125022270768986732810150579527905267742594028152512062334527465294765761762136232896248036935101666302114195252707747725285068427443920909945370592861325988358212772435820937657356025327839878931115045987162011759834812862623753920839202417592237110594797629490687130241083682861576302406870240884375358446674759749040961675794858765749455668792151979086355057459449257303207307669912546647587618941332279749146824608788901315880681601037512275161559667595713586535678724214732930810349063214486862408404228482984313476650395553123926598030723289473890227657229541387043674590502917658262979899961919477849933706668820045575064174127117183755341944692628451447961497251959692169361618411377400655371254391179037628825211526910027714570214185730412180204329700206905715170325807578772896327409949839871391242737414861655270841250483484569425005867069455731402343517426995786930007831245357439484046289534586044408897169316271222328115312360168559121304722711836156585011347497068543530132390936647973913578261792044897927488803482393669176054310294437616385061576990578874135006165902861907751062843778198175257260842087062100707987768394791047123309104200293128579051262787033514109630641513258893537873894226582048586283603730969879646784819951307490288735803540153529001661115714060397073268894588369017182532837079212232247521897216598191601350022515860463414684105659634226622014973301706073803793890690276250163358014664339611893277298340228782677633487905498534578368097636897547708789209412197581815021364110488652365283664303150003824752499262802754298940131803713502304671121194255551636169082783765788844032108007529211782294540055946541593011105326401708636447650798680211946244954165130466448905439266172201907533175160064124845386622135472281424136862129502022392712992142391125141639386328114007330899211859548498253534646683220670906968711803936801622965487958829415691404844891298955295193068918035423109420785582219367128681296431592417320926332535327412298292055295659721400175647093042477837480900776253705236281334715361084210691515039728223972191127275280209914306085704284155613664973604865265678450532397582272761854568479844218580955854181644410861760999051420032955978774600605620931109255798367902678926259469142870218422906815892173715154207954964889764878993669848347341836619649071813538909748641427483539070648203419937641849630319678459134569625073783008682000134756799439834450291488749014197899274638414261069106460024909540079805809775019254920567724325678809957676009283038650573599289715409519044609434669810919906646022498738043725671839325469443209817567160273248634363164236690677040833460081647519852505437593242975074277523945685841915491671868275462849104711105900571117887122664600358138519361612297872509689805032844619432587244558719778956295518066531114129384654505000138521607540922784448541585025744990330013671025163058821771065680617111938563269658969832873226635017152110536713443995757247416996373908992488126074413822065591851968085876616671982184916084156905192423268097489998586739462270948642637220152263850693703021871893371726264344084965694285205521537398860936348869994734390834806231348767052799069494416583028040265749094682630179294287972478014901043625105955593258822876478362896399891045815246927625850813321365087226177536917352097123414163860925289012471331818750364644015994898265380165218739416439908523518919203489312760189880587802752849264372211093114726380038481281742126864286760702834770500631903555032336091217311129138610232209834980090110668780197582913723040140770637400043002955438578385133169801548695837554441295742606863295682578614537528458186257473218365810646621222382699753123641418617070057980184050049032303852420769737228269065083878025486504388458379935838898038746924701360224305255236581931402175650617048724299039008880674437048109992348186916817624898122364595294573640973691347604410028372742853368555633731226134391675841901723130250512187619240512058044419037349851906109233782098208628324410764260602259596077931845958297430417523976065450679871161247051951269196649568727149872534069351622322300534444809419565388214329060820274922120190435422861034247635413214367922702612118676935324876336725188295724236569835102001049502503587024712647784878107172289667913360633625864221632719804304492813324395025664408030306446232866619557386407295111627514859092864116553023590891865161632133521308415203126861417454601219115696273421186414612104710691605595264498181783440154600013862654756583734439232350034376645831337159776035673312660238150841843768628342285875275513449775070908045733442955945678055733240944284807809350760328680987129635033478994702373538341762824888388389555601009747179396446545320891525269715956397426712130129792797920914302791145414439882489734976716218188637097227513102892311183330655535032445974474454901717791496648180640586939532642788171560484249525531526696825416217807233369265294154690232510907462118066057079270682329042970641909592189362649425903218341923556165748463459354711553237322484604840665039640417666381140088872330702012821782138530517808433265605661149059136646510807693228924106095102963183308206028282392852088496064448430473303050221780217919958769522369273571641691836376306121399779563401115458310511121642610373947190133186334176983679102365276690970591052279357491281421254434915790531269630200326891150821360487357175777179441869910198120341821718933724903286833775196476223058470876724322465106427980380434638315298145956284117166045784607298479065359264308490469353682532769868939439066873563971903880259792672342174846421843947368346985230839804027264094942191677258409402324917290702481093443171493002251798368785652487482310863456691531465315132290001091762568291176852394012140136370594546343410608606793799444321150607821570625508003314801901603810530327078575665789695848626015334768751511617853222721775675509460842583399398132387841686695840505631456730906537141743359401705724208678762426095243853113110629517135264065567506740586333638964721617322212279603464808745549031057341891418761049547830977799316851290958914590058612485887558095669192736486759997953733254597564760015364067729311448382415600253927959925315893771279380132439897775934496251325390593214822144234784408708256662120054473539317013011261323682312178651319845055310781296503738537838704828576565833659079040500280637774190025036423205159142457855442069465899668473691331731898073824706648041658950531632790030633512041109018948098031632455750977342266890699081484447162089729627154728281488517451942782342920270690537339717307332189456411147132578585226586592977203570810483282777844303209591842362954590589586978008728604819276566513902416741985880256419127501965840441958782728211889478088122272050957346672728652276142289503433472986339994958398123422969179220283828463951864403667706025520469114005203512894732594981385188221616150396123386185892970385684212820387980860252898587945742122694456155424707130340645808280436322385303428636590295184499099246195377630103176372050721543493629628867492283951608575601146415452207152298360361313007091088207314875474707828713386416556942246462679860519685379048341107966398021468236983788562576367499812040659966414089529313273774052352858816495772572918330376538136591903958641279667378370643535717443765849050011251806036704462398903370633045054687634936840182762050246519337987093776893836563407643178866399238956514189675327012533762349678865392414901258775531657424951655929235560917248023267148030247215238716979968080521250495370110101672454554444946506720574389422527338364745615630093007257008033254083685281020325025579915123601910433261290520059096608419327687546669592000216403768944228376445307773461135977794520128237231290214147069284118822123934351533953872084030120163120173685880671644699032598389693405048047023758862960865796505194832662953442126468531883184997913005639100612783944077074921523117575712678133746298108548610171536600235103667056423749749880167809223819761263042142140676395817933586526931200497095994995425913934502883397689454330950532529920487908441679339369656208325586437525294363524533521765832797750958727017359470033736706724155387462550306135535085673536620695946977583021057801031843069646314841677215301754483480856550624439625721142015640718901970305812579843458677142923473159732084671208505688997601968300607719788172253633257316024054341860681400560001569020576325494398206677793235645120557237336034324043140517864240431492233843002862614835556448000452764293073379663495195648375396842606987326701347789532701946104165323179904397523759078845268726565545592915497411495575525432703652870399721360172856205118087986022807867541258109141497573959177828316328559592524348572923196810344591537404015737793896197598915424673320600587106547161539813511993555037986143688167916775920167862540055463595683210349215444441663441819809059851983903482270102082780095803036006087232213008516545055049232135767292105002590112349287258489397285676529559259649822806376005528845922943072132450004571480346966857171176519657724201961462118430097684522978137691054221994374534008765595065813524285937039864933360834742630296056876012753810543777054068418719600008736013246588835833391717115708742000198899415187134219884622723329243440793188058448844420585644998451706265223638439037720049932343917789342360429958562327890748359476348327240435365463837414227494557756613567573206537599968731532100892606012366354114922534411092187427165146214408328141249251642985046572045828844755928202329627135394953866499981688576235451873700825097580343647137938939755573678115943281145559927811467534321145654589364929305059893140992914913779984745897953225146500812828547696984114948361030632001975344381291317259571177957247991832972200461591833502717822861457015584124236823098809406140188388285023284910387816518942856821867611538175333978353762356503553583348885645677257619990977439456860002345558791284561852240466378078142605041471440625264139978894123437874461521160666461114849189814055669891225660762845922155474985372132826593559481711827797922660991107508697898925818324533695079618814662236023644708869040369590680501553084434086449711216305786098416858644814040017535777119795701501935312429199209029952913465522693739717362187684501928059127589857816137683260199177856051495172055596748209430547388771171888324534910744292078223443134410072215557890761118432646545604897158215693053225786027411600609372202918041409294172988738481283424419111753167615120233492333980517223176427422383960116575744831805782945619622433719063362927965909267714581259663167843659743100327640144159217003943753789707136686814986082630002380735261684907102577181994749744021706030337188997018066416680034616146967973207515518973794025283844543143590559617774744146991655711699026639050654043040075180106690540059818108779980763248002213477185781294599008120784188668630104060521082991790245926679989861341719176707415569360677200786483473424385044086119853579731983310930127179250880201216502115039179139879523468912206044280635283665202082417212889609987346092937101450840364633422624345071499895958890217782911967634863577474943723698291414019059208498991512336244810113363294956320765058327527321209164767593100252857778566583796628644412964087416601306310371798179622815308418124560958384090006586069391076311348167765137471396027891232145083803201913532170758826637964584869643301402907147527746575646999442509155051730198673372399319604747970409184017872870528904426643840974714339623853080592359415805141427639389467772637400666666738373654831841445926957319815218115594397842370926962034314377261960225402041037862506488120065244170010641203326274124310952810634147400364249888369874151630223121062366217520237908225172875411182101326733356179518653990350816350248134374451403791021638604761474904822718159762027124554460996119559013189760954561250319523216035021527748436131967040786756409718859513513057306210443854046889907053039629612701882393298045288350878287733393298946714498330282632455484433868368225525233315851762384961196486499679333267751925136243847196118369428704501791327414740816803418866749819886646475560850463029452340743630996731065724995620150630006017770359532993040848212199124673261516883952876070758370503327776245471695827801713397367047289718164268818106251817027879053940601807274315223056917182591615049278578435925678613259910236548104662144497242419489771387820627154623076094691267583042850007067282053740441852370660312573510898942629268116477488065157290720768783185256092956675902002267739313347434731432439680078330250813767905230934728001652055771271115722342928274759091738730308024171319554961797015364294015798234319099194035385144920803896350243589339556656404060642844189549008338910808282685705625699841654197814648308750244216286320103616306876837608941294946831140480619631011975439416430263382823819346368741988350166812438334997275599176136885610077487828935230284080133491274943130472548554872131404418246124602961342089468652689516736893685980484214483293914478792645384571714377324678305338913298941521880024763072485825224756499390926660336511050165781694087724395194732364426418909110611580715267335495740029833683918918483808496321999866356350040760765880420171985934559108320331574797654827574001808303079873575662644178081619148696619193124803073178426641685407160411490173316026984514354344481548329682024760595878991725012494975287880786452056201292139972928725695918690915219471295200425244888175400690451642809040032223271267354869866493758367748172536770594770630684851949468659499424897955860427504441362235543216191862456333038032340908486896960102061362942160439732910581106438894982335001593898211789609251245523669741251300737057250526406180686592144768472539646176643025757533241473284711217071087579792152833851072373395965583151974836984989799020813401098558868415455533779139278683296658571964778915888458314758954665882350140429672825645004325774858956452693578657373304960091602159616376127457220710518411327838245861925370681033997656569595079100160431410982140680700248014585180548135787826731202778243934503228229624623058503504140703673369497347711640015657413134917582384447956896269813829709143664446144231267096816662709600876479871287134565640477396283791984930685374503807944421940547445836805450439851009915960223889275909171604311074602325233317831385355790918828884370912519176069176391579286348547328087041192039228622753136370097655558832870368355843075009936087240193615023821967410848069149900078642056585221808231165083011522405942406381131092624810129081305945341568360522582770875323210570369196420742064835028865222897583103061971732305728237405251706140720874797668787830513109056514393618643828669292800799105717251142303508013004406852808144504042885210707019844381487754958371045713889977569238528554930386864646874971753212866265102544084114808270783326961490855051634018878480704884291557492614922507111636889116891356256796367812541321071157933716141731614243751832887219972822565544370089408446197831480986087559860722945223421822106965190409915377001483430388558573192301733611399219427822459297339166562887478751194631784727024564177783973349211854983350039251540471221920925952645424012023683136820022615493039383855875087910388596212319650022329397850716051850509886899193382493075232252588755405941957153279475488047534222628088861648539410927530095549062067912274222959705308492829813078793949016886315590836672839811789696051815937209130185166261216029082444088903827326397423597159160129380705483724283367874080136467027549448238415847210022106572642668970477310976606882482659156217065601590257573199172710720215359048750452364003721769902072801287643498248891059376253172334415646925308721982437236691773602611475730829918359833211057212487748472954832574962567102526328655859315484805815824304644933030168952529728208099165024355867256082961813106933157174825731561914955670840666033416505204492738777767147907032330702433813882461971587902787127410884490312538356041465061950353739023518237517923689262272876965975977576151435155628079679355384126090955601161913428195721434858598837316556779427713539958982402474250907335249671832478548561670671683641806065371912471312502782856917336298092545876107400138105801084022045274394748684260580653509301251694644492668224822108136245132675443770588621299266363119521125798695132887412321727313318159240055599900854218402615380906020902234069121999107628367122356060046328850071753314286082969565032056733703119264865582737838274902615444789469217315557694175698460070698447646983670293082446157983743744044969251181771197379095765245662421434773263931876087997472082035707409812783548489650060699827576457706844851022641470865040718325422521508401028784319090848847364583849610999246628903159271047062653200614434964365954151092576842118236557710328796925036139108991985021398270528017530138741285803973763263941479644513322015326298563161611968405743793555006201618933588714690414161172063489379464738757307486772207881404441373803843302567150094683710844259568604413139039894383396974287148750940872500076518602661790877068318859470313505520277413556467882882071041498864035832950876665793979717137297957731379629685279507630667454548989333592502383231713381904453420508664143898580484446889905112682426832747467682609911457601085596030750223462687093016980365746702705196650709547640737592049829837693454679160750023786681800218095768529649491029255092609614118968696576644113737775905076688497076089276003710463268464788653852800188127828286712707608802813450361088087234733366737209560021618233092018881095579352068532353107412955773040121098823517989488393670858216972782359708066046672479828637652321126822663880809647720266899068996135607392538663798759112735782775227851189104658714981559963372478009043930782408581908836734042912502220780697082502041326350365047251678848752200347666077242016946962074280556878823710785683269754064919005782857232762304710762071585508445274406384180208974211192935371019298578964330685675595719843808638242514068577095939416964418583168931446889994124442135040077231847519865093930721024359887434701751805679970194843049965117202417950524887351961142621545663416512839803822010229638082743737147521536994581929770059535012305016379726654874016905494336320682643751131049456290151896784424997935864083151495102289325938569876088841132931534767217222085951565424703227298913652900753271272922170356843211638290313441126430002719225322410891416263286722059897878913248696662651915012721445523398825362492062560735055158450380010272804876449364649553095228291036518822212839390569236934091989815822602656667473873252764457107958116075968137299690189466808256875777848402681904332594313498039501366875066479169790693234764748446375484637339613871279667769585079361729730315001743481422571804094452444066248212903857944470629054047618448994597357017166750184824462179422990782353788064897393861850342009121133542273522824199434198123649942514104434639461383539640346034537307930336617982567004755086851509764094233307881735372749613537411154772249531714805742886128760915055340757181399550124794635308766069130821874484938365908836293168746096455553865672620875327199049342950998769842045628100204748275443406619936566188765362239666156065568528002408730024104899919381930882399685291853797357565584056324881117128001733259367996687212622335368321850617232852883316736010817907706020302993770204222750456235313800307187263700528656109039336220054262685706477537473393487478580010537252985181238277259778815290041564267849136277588773879384219562863702444411457890692839012645241250183959846433436139534077964023516236077205535095285195142119574587135935615410844209597744957434281896201980914217856921069727405603001075245676169990984596924367554250409403060386863655200520763763585073552243540169141042472908861900972556718363794006168004201319121988802691053850137883873773047344010944277613549399348965230893271977287778734650880111126276953428788337630100955059853916114957056012075886431103181140664079355997041245710145276240417372990239278265083984173602308680767499752997493572151405971289980191825822196386016871076094999995929348967860892274856012870181606003433426791758265178010014210641545396450525208083155726794345831469253229424783176158947935835090218563580171993872783618341039079408347072471917524344324646366469409190304282463808072699294476854761391757068800203292438610772931303470710593515589180388398114954731518511397282405817135943989702961287986487163890918897415747097750145196467435242659553324263490455661906181533346864853156732341562744393501221076726269143983444285082799538255707214720664116623373683378480332431243924012340039782328590566098285145535871293056976083509011309069926327373674653653142806006235041523062879547724116969347936204358096174795635393688266326609630289769528427431233927635837228981830759586801255367795784516970982917684151016186693919677659997395326936037316756137570698422336840730780356694648262643996900280193351988053830140036344519726484242697793359717880397358362143697241046723585453659799037416832470470476728876123545089302390764462766878624138232165826972416399536828274069997975304577827717671879391734067410447869536455215052656481405165677969404348192729185324291269493907970442526582514912669745728560656427465680181177157441326655740000058422894151839448130194850612300115121132113489074511381552033993952066870731977784724732701576495365016225260264074294703696862346972373186114865955369181861334633852487367707888164493355842094128347339371599807843670089867849762177188578654850166100942548059494382982276699351350889822853314561446648955754456629782240944557942154468221967053107376272738703907068976762215730922099791940240600605948863903793411918636099638686721663615153667446882162499632786911955222594848825478339569862921050534319284920260075146089132635019842698799136613400594909477126615712142530783772569365735184436621750668829891849263954364619238103502623777546738934089009415072663653235900093838270287108542841358584289599447094879995822123363353380266774193395771780242727118248320201182688566865833189314196131451569122639749482301373504769074012741314419609238322977777049601358912918207720206419769736722923994489858914534987913113222573325827276924070503106849695434834120012344833569252512354169556856092508877877872622663841261490177750694065845460371450842541339228243716790257973212638077814458578929819344039290518460128768119103198457346035842094605898982208116647895341178022484089353867395987669471524388795315103101246287126508945243494757400573597602159872149543482657498595872013422808062701213053128967114079400814713234564854662868107251300139410069780034388217546075623662515671879527546378523239559974971798320030219777584526129668378015831368282890530100256777635759811999421718231656241896988955985516458773397682428389451528712791481747242736548807773987868834483626188079931082754129068213258329130497382575767134128147323895924529707772729829494030401495578868146383939907957605866428054760392421637633138699610758708162396884903674599434355879674590973765846847744881114371928505721513107518825977570543264673733921065139383237986250799680907533685699015215012466804696773249524853740943944867129384112358897196324297645619322984440114889013566843225878395304627870057681350605407022432490181774378104803681854527989769219298135568555077311829966383080045157794735881207019013499587437631965474451822472568733768652124120434113329770691267849220780003913736450268720894440899183328223484471900813923592796119936240861404445269955844577936101758725490677593403079812852691427030851423828544714081079795988997233466499284406107679765238417385306383733353052232035601589454447943762148316028216999212477023611547501815659979732011852026164552187369225661382264718597823559851329942380622967118362990868556985011527704924453442862596870026646506930498811044602760735240086917146745576036276624241280494419160069233489353675239809310893488649617397901769613363158898321302011745163674490191993335655222180577454451952708454486441667428872217309991147182560160458234089322388428723118396094687429286204057755334702175704871122778993746569397225808139589056186569438349508231290940706369717534486593646396054729076126974485688078087572205421880578442925854848357443916217222477482140812139875539772968647292229718121633594856155965475795793831858653089440347840608469557585217560422267563568821364334523042431176913257069629196702177909023847745170048143709493090974427092044272538304828123826453586915129997959577042765400024022490615920463529041463252290426378431048309044247062635209697521672945528422122932719419128657884192648192655067522165834968757177624710970023899200025239943800852679642865351341460621725257835606600797343552787179528444793833501799121164194410792599941320081714152975315535229426047381524311721705184566996654016809408443202668349018050149243839659950056098106261854145910335821117510554397857239392729593262644836545564872491873553639213435114807766268558758384949090923897456763712090030355653592623066985015532874990403013161253997089153032422666436768063658238204517749144013141491002735494782805262591810274389259277951314559024004817380731023096119610859893742900019482433000161392662443121317662531847995373098438434997311244820835369928034624926170976164137504303590118369080000517808952124718487760306326432102735899379933503950228402206532529321913593633182166072906935905325997308249939913950992502154530562566171450022686131879242821205855767561962301714270856900500398152437329088064388799069766977895111963984636776252165908108348661773745948918350198947221317524942063925703865553506739958670612979996511676558605013653953991458056622812191132775013484351410839068143754879095984131435760898736597295387811973548834540516997752293923358663255084468047688354488406514919635226500655720748282641109176105683720072023675883577937136485064727346989790174886943724041787729452335735024612082668571525341849352981116135164271068980951541019143196096356482207972435980208612353850953485389486535097228549017708443888250184873798286220066201920782399487428904116428152892222326759484907486457516249912198400526928508326222275066870807362526462879091523729316666229579394546035210160224860079478318404174584819403724276040805780724094174540282005260569453502608296079114885144731785233112065807286209896574492815446091080160047760500587060129368035329754481099957458008420285055132845675755846702563431895091486217066056347324278848225290756250328202878409225774116604666174675948997452095365618093428986378900629381671395908062946588139862452770864594657060444246858046675496161610623252369383635477117058630989101419043547755179362874372843463986105942971788362490637926553407053643609232540847338743376986624042898729987064139774445559170239185293037090708357900511136422545640165857665299715762663164778565870265006893930573885980051698225861606830825225258145473276175030357484673002535047294171601430209852188634784628903518082675042893147206417161455766025739166708033266757182856144633190630109149289676269606232930990541905756687860058397630455798874891527206665599142852991918289699195591914284695844880018749795307757941921795768251147769051462590981224170845235391048879105997092857899646586530211091999737397192807734997064647157661197312657360954878823958041931482487303233879209144199340386707726132528520314548247819643959072371215768750466555382179754001837936498441158952414754339229648465373601075247769543560783039649334801722063297677578914870912599152361201832374461796147104628831481618555079222105360656139208342382579859331773961043194484588098306092286162401597204346412007660890410215698986161526548110047287365827479553562302454553490200991341489377543560167397914710235629294062341504691328399635793324859058126631700727059729300718303054593998343084414751021131500147229330284418220124637982892900170949293636381047256414222697224977731541181842948115857520481941497416842414690994942982433923176131948351146947852613415620582311261762801129308681010699611094001067483987274304534816759400241664920496079942200174604978278447549479465128548364509378701752454305632548187164726780951546301137801835872497961428922378685606223663199903703728215044175347169285459903498706563655521059502865549540737930047485724672388888511921871926353196313894211327106250073924283559267250409867130880736872449601217717537117896994605653638551432233894753710620103004557868525639852808800680031203246991494575205051060579921268530016638824970107676593067376683710165075040005196906845292219835737236360834071640826835275550792275194399382905195811343329654941571116923566808428333644380258645631407698897517056667616471385217448746949337680570380540492177503862137303476881590625304060919411453671607308882432907933416302639807205845364172292819845584345379174175847969099578051202166709084253230204216915889198055480564346828194883088323323977695042950642944664671405514543327467321037439083435386206342700293968034099361842063255773345204462238298455766333785598655663355131700769175807087738172875732832765515301002683899677906483342221935549541027438923672419468275151524905830607026960140464215264932456669498760501139465685593745347646286886609783649561042644088712080164367473139002653035372096249389450649988081630237573800629320569501180493913179742478646410065302429523724245464741536140342610928136049358278900668032644710072488055701406264890570608654578566351004128373709275346916796064409357832746097811780800759829246001366312617710929474692207264455926607099369783433428254830575363558797766977938151687502826545883680635263890802056172109042437463459835159298308909691543907000108271482911967948928809105241258076810222377789294513676348321018568908063718228323685426760987878775237057629527492571444887593785620575554953707254026636474236848548636383729690251786980971390654842908187709067651405278317621299783759948490946314363168057705939978085148374204696810611334908492937141617545398309569516034425374851485181535928764895868797683889079159082605589631316843990381105212403041958575488122887439775601410249226233303641351316889438640895487621601638790605909059515714498601289359323871450451874071471682315829493391015791315281657022780280556416519071084241702536154256754057113023380304297083320113284144832251939110425658671756557102431048237988607354180892915064379647976715435379839302689885185172718166633458079896945487931744774406883095732361643683732168747629210779505245173593167973641256301441607064047841728662648959573346731258187908098241230452973641972608068034623809842477629218791205249275828186957081737104119145846311354957485826281984121262233168181818622353876913863534168062405308209248362079786810985999891256376901756626988228044268408289724130057254344784533238970610648494537111430847526986361880051852937613762300005592610765702352837448073007223271480865580052108966063777100962413054090005079410650535856795322933324088839977438591454397468873249298565315733004429260460042865732142480599896503860021230687958801253181121513325157096545241675492209838354888725918753657214925840244554407038720042011465944042206681413308711691425217143648732273726475132067654836031504241784533382765884935432019420580871510338455004608922308000384936617199196303479322348973591781759668566890143791638168987229623747674693150783509449192488240188975542462189461936249583540693463153215961946023317526567950693204970627051370621665706998379974819242965864709896162740162196484183431449909619118313199979451161016678058571501360493190596896274853549189537010208041472754370422804588022031118423330649024160828471168315295749193730931596623772614139378376032798156587966795388120248862106382225407964811009155380216035284572025888463222216063726997835404699434911051912384138975995160695415915281810223978443566306577038352632360134516154029024232439525088633135397194529124344209860890069130155421124204947284206111096612592708987674810304602218122388069180349026877165085448255187683946700961649666864103435545063968036483869926206981981787799778202906572469277075807088886828261816953644587215287648195640600929745120012603600036107780927073997593673805580875967385268860838298411832516219703753052472043400941852370403119273339356593474298434820449773927373822974809135887060002760868751220093168867435073659871484630290679982637724109549701664475187846749058645167856639362377813274357390628509194751963517755043485722024803796739279971330053317267286509802940824687589555699189734439445045332716238068147704678237478886948734414023268936097033444978188715607334269247989500065330444504826321453543170825555905779550480166854757601300848694949155898352527487492780994658343628846508649484893545502837859454647215461631725227787413344321340071565422070080596733622379198422416065415470826780897914474684006641742991544899767693844241723348865584197268030330359632887437833576918332811926994030345432492500878859942045830104725988726649953265703737113617067274167337365291157590938629892781262392338089898875189024672906796398372231150029657145874107477120184515308262921299106155196921487679780828648173262547450711383837979093492232103036309835381474493666710033376452256207126791385737494076921230300137251867292644702052712536738674375858847993178094377870748137001644956256572018557390517183653490451679307865673923930411624458901343657679732294190404094520191960991056092525457465553209887237434841041964724486563783060446764031397013730002097285877150758877005958877855529840401324755448862153268457677404984557346398471094967749368920331043121122201523707763869933533461222653616108189681169175892628380961318894181043131056412288011955428144183612158030838910618690467638156130407125112801041492595290180101771736215983559349823367186333346097136701666327493169569876171910892631833024136815992052172152396359193288718985758794776411815387054809437842899740737664480499656886355272418261619812669243597093611733671154048915785784394393419399925817737381427928573935463409744767155758695341307707113021376371318281096244552959031727339171570743698444946564853086344224841974448917580509928191570996584247628069871800245183066970093627947612170091924733856385372584627745372925234961092164535711013030453123596903993468227045526829996214297022604874024818227119610708633093394865228155751969070965649964922354491741044262069905099265903565287264185042948654835016724521240393448203099150954461167799116178279169024280988224418061624971725291801693982967444184671841042897917615014095904785539236104174208817797202494157674700288301772562222231504233791304862123376617136137399064126182349807782243187594816111949254158089925499894278256960872334302617036681868600170940267619593589821266161590754443782992596030655081103784010016529826175599831593187764742798007403019169408290042654771921592684394207600716784901330921410927874709392148221183000265230212135589340865016914915836561462009386943089654834686344855514109916205250370918049776290740851107668779055141343922836090196771098004720453580734777242274735303509521573282529193944501270285040227248653527165843012411486672965681530057133257805276670930127829432574134812450461839736577571349752987568211789325612187046504740294478335794671583688643257933002883623258914564623883408711801058647549200293370504628625416018135855642295064920103307757001514672294314264463123161401716961177155543581557224806868750058159555067862045071670523187113548664371929884609377804287201934382764544207765627916288430992903591900504075528047473747937092567871038328268071436885310150728604134109028572781433197848727114823332951457642193954844822639753322826499225242128370924025263304844322758007630747121145025430329950697625201233320160942120974575699932765918956743248814893857687436941084375620967627175562818029483163206701329576724952406368549915278391004596814840444696245359784412403034726623969093942817053418506904221755039455474584678421910669571484754316643826182298633659919181254372580820188710938384247740193659670372738645370700448054168920922257633038199441359947759678591888198540670227964110258653361176937651710714781681863859205610753532972597067754597587240372484767797989911012911121666597484713445697372809315600634892704203341265095524980220973750434939206695780356422845621825894031080514415444438434203316479797424191071094314327784027393996677238053928123988099869981368371055507461365115748132864624157786081928331050410518831469562292118255229575302507779927531860352068749733374110584334769734796370531092109180086591100748354988061955507985025932526502222194186067688538739886706430821701666501899730787133654078002920613865468024014389111495967882776978285374273637814478206527273351639414533610255495374728420840574405562660336416130011737251984414207170142227373666759881879451296728734458115926148502171499530791253560450273594703936914876494378761863227971249912429585424124759572049086715788703006691508594787082976624163073203250784997989095715250299111294897742363129694807053988759721139202062909670037664389114574741093552554569858829259791472545495432647527044574023612398820563976631725059263188797110115985457493652615694291071029761684359233638302309834346004963562407790241897378355030831448885966977151441058741919569444705200681314929436049212064074129956933046691279166953603601327303898445078607991436046683890902210823965590712234414715601951566747789575113499909246891300125770409385706659789507685125150630986690362463023665612677408516128905474357501021306587138608011027893541502311452895072429857000929394207966328621520939845043688540300353852463110561899289296429324917763771043016427226567980284423729516559611062515759168763449140540571773260066848839714868314115684397297896655336801566744990389970897745725883879079440311727226718379531992035434228650209099566999559498010482736330969274837796522999740507073124069513392433018130113337082006537134972385993757899384507038468603158412418605192768876598757035984616671287068416814544165005400358837543302161865498737136958930757473125022365733737010616623584403470940759508569025137807817026889178161810101637838819065109766878177152057780105705594083043528695091238782783346140984184923411026108432025410496938594877965192545811358936341923321916989860817918230108676731145511646268615996462854067805407006721019516412129113578650346016105304789819271740035788698949035191159436334116070056853603499715073579649676782968378978918590997890742070501566989450337570029377345317712374886723548181832620888534016147933354927293484422543441842799154678055196430543584920398613419256285141789747588030454951391382860953885135779738217216396562911104010210800209428100552516931953217863540308655583931224071841388442296464103834078485166585873558347178716123672755916013249518220307876514904835102874699635804377197104394930119724795790728051535236765605989289553791584414424970854339661950997163361314029882280840121086534839729427538655483399961606902332015856364657666929776593332851721614751284264717579963911652226340922008904187500514622797822830401063802363918872315708825300736764730993145762932008288192152696706506548012667441645354364662786211616577059238483687629775186419393842740058575005220667927462077822867303807687722575565785798222603968918797501398797895855301756578179970371612383993270498011533481791383742399970589904890920286614326446827315600648841417988922694728766795767921434273685829557576962858853547010639577549542573371340558475973410783055321015247398058292268287011422592106232145387633844843201023937826635670650642809283725950077279604014946477808690742305847394930016029685022827631870310662707047802430944737993914188118148398294261573545287006163044711736411731515315431396550714654436677487950617474863069834058999919389230731921622336345671587632739446238023953785157062846184525578328361945787655206631492386087103403571712478769298507310329253441269586451947557066979104159290316639164538047336258228295032952258906956583993159090033738416554049368614720892171949006029566210544456110697734499484271798511919275844165911523506055259597512442893190397644134679450558922767536605322999328183716162334601781876248807942555050949009437865743431964372391150500312931103305647998842783753285662362138929966323761635785604432719538151572527802179812305457508520971747435274530636632242647066450013337931721062984807753649835103012552419453728408460278558629833272731889874339562946457150244843203651630512377989771465234116336667289440639162859462836154689273389557108428017896290381012221526039454635290209381352399914196233991693715480594635580483424729471040156802920632949672956994546877015756486885329915528958195274775892841126659259874768576528512511901838464189308539224078948471670398806903833335651157786356380227489970140308864314204009591392438064260308540933727680958373480251136631283419111625151582354048502290915223600844406550054357131595170434740063067178720839087893062974480419690129474983264722150834983849243926970830678416421524343494160963288332431910469762802051681258680595820706990787563626792475663429676215157559599259289875694957380964719030282229716650542630650567184652320990794859322943083473332735538726144956988258067131932571342152048068424219630736269782146064145158334327622752284279307133665221419123624291158111965911595970048333640770251203402838694867046606028647786779448862095386906107405468203041059029804728569089092001599365033145753851767194553213159988690946438514695151494315643609834047239825248497690772485711487369742372250427872966652948601901239037892194529569762967953578207250093743828951356967204162679710073989804057761128332211878696393546199829864777351174010020963453784138563255852934090456836766097126102822448899263428818835593415075918479967537002073933761248112793069150439714914327891109242665227667001009475689163925820987235916202565464717722134475100258329981371838364018417867567460919561993640941174096128936967971464749620815518193582954727486818561246575488568232604964507922209564685881534671394505704110329230782463769268240164463076271741931883893980330975658075147968123661123075509545955378681234036736200191851184244213744677738372149425978371169090084798567827624792822558678368944341577052282570302087441119041009115541321654825184828223259528715192332992724429414481780249240292440953316316404737446981018730303058735672248477209500612901994563213921679257609464251583572531228153007007003957689743086517937274654279184083073889105433502444417961936426861134809961619819473169152506514112227787935576614785734394059453054290281624645030349927354886690200890323184312060960513339493721456030088496419459532383282351001000486715489237069405521630972791370302687066386126963041670078240772453246058175541818347678898147338132730676851650389336851813657113761212065777022961405675402554172121753563937303842149222609532540295759210407973299666899416546907882899591173854737503560298606552747457896320229461847923031339195823519395709478516008211112960046226822503969805233764461544951256731345640036670276706012054333651218225834064000566993027776361777078610489385063814669591403889012622735580740100865730163990110576317057003436373817411447124313575187200421134103170025987739696645335360795208564050654729541321715973910398104249983080200611867171362301654968396985443071482003012564002048611594634827807227808331572842939487310199685185571348049358613340550817331422479071501848071922324082383593608845950524154451099409519551861632048177377828024457614834484744032685165485959653960278328114633538662462874271468262934916631684886176497942149261113893188294011524305906270843553800192801082860271730170179990306427570669549745811238595868005734781222527160803043621660654059692586153856057717880243104785610701061311931626923937989953840609574027001205106412855923975077188267009539562210928451233675694043227100873404791183623829067875711629661360543817607413279655933501379513332118837181515050179755517724317605707074443119368419813555810032273254761152788802566794234776793317125640394485408538045116747194927182100962238384820210906280382712736756947126870937905702351378944931186166598635840593666737940546858130563072310809965930729479340873335247534025866025945003056128622381738319562200013088500485363912220371961216888124474921722869550838155197091378327020162410073106199055979881695457384059065195635083153286391980671442137024283168003744218137001138570974613089329510065557802901916318459329671927129518734540314082640635793724223985009148118669515749112446673517724740494463475695849632047529133868874388722102698601175209171910273190784633010461038220244606484886544674969796463598047084012833245004454340260420440682396564578905551811603859863710481225071470692115370092848198921276014786474725978382022416082774033235440692741988039365646022653667031472167740727708881126278564949750198340857380564115408555658567391357524363995864861363560625217528004047535139215301080404788911383956160535543636005028831840831667618267677286595501490386452796862531939641351572694872375086218575462820598496085665313693709766787187434598003711495085012656243257708683078901314841842080869107850973623209281225081287908273743505142810388214305432093019171569910944753473563920349218302220299244490074552233201974292274446676488685644149327376378154801058167129443777423518343085467400298851113642539478571612617813713036428117500586263690362251696760853173474631460918046056731748101032085064787422171335679185317195743733792063056937579147006428872127107881829817179444731801749051831600809947291392474237827911909364569192192803060789854850373985530182528361100025058122952856484961260844183590962072360041117508365254694868103721667774286525229909417174988027447523919349183773421353644719325954404480328762432319156446021802075155257376523055253921604516255753970385861740326778651752943761113070624127871620614069102673033555162115703256423600703393860586491953896832964803211043353587226652961940358443930874551024618591686781861407239707805046961156938840604203439684168885177688442201615838867051130628207958127198692278808351109184894649343445066341438157836709273786018481760977717612549487119401745338516109709347298593962561066655764989692266915594275094602056007861185385760866799696081215801867045997395385478966649364102906732688654898760708100726096667557923735510212148679564505858547285191295977106643571714059594063141035373404826465214687230089110047730606582566290541910729127870820935062900141081573475814950684962814736212580463481886921158448918566480005484958217057275988264030570831276520540053391628713466536433191587283833347099824401618858352536281954802347147934542790986654750219946747157081830205938958676368114184732589274757913007916300577314251446944272267052499683767476149271370393115219548236862392393697750526272489327562991129331411755208109161164746583393615364613030599488853618561895192548608254844176292389754145863995881416003601094000693195910288832547123587178558986378396815874087013514550127281631888514962401671461534313837496762302175655341771348993597033184217098105291596860004586572502456306670474050802702671193834414138412948997302879473157013072519210955257043671014485374012203471681872891871401758818732551128503862255043420391879803013886941925542212180889189730810118689225369420008785582136239330529235350755581729479374614917860423899589629737487122340380653954710035837007937596933465322141108486806020996633968353419376749629900709573614543075291177628716652563183443214261307160345860554997241657607322345124488069626668122027771052646154484560057656347069103690494337994745130390289334508680342788352083078677892564641813634294333702326352675268611549878473660658205969123526314044136210828209910054134119470441595069359880004144729080378047968595151349464101126702759770800551505730882889898741141841364341596705700040326622041534916273018789329054393064811473287151548560920820402651441959255971988069627919380571588362782617312196035763430037344209648760884139051962403502835508626294301309985559336053422442552578674955286621347155383394231535686948353386672957336437854458775452229725529855287704391365881632375834385796020220591695768380706100443184916582743601869791243281672739384014732368418482989292195587556711364162311064664485972578450253117641185706392830017022973258857979594252046495986864058455063814734931146588363324431930823955483147006733535337770173840792310117338318870406574697749406554512541790023841713784290969253756147073823637514954269321686084878704887901413066627332241792963882386740791470787894194069764876041139045574565432921100700818190931420981757321367801801567059416403171077888050727656317390351967309598763664977596530583212198003447761308534024058737250839626413342865671021715118392447497829297909657417578046773520843114904726715037069063006277065298461515531997406634416953211511857216185197373901436133712468369231474226645924407230473303435897449420639566156406192187498759367477570940258445275343517668115686963095463132461556375115840629580755982495166834306872225012534205591620876429002374899123442607832948763732530130608800658742284965778530823055312496730094219885476111397073560139344113663957788607554125630862064442986859519402246345407971113024244740218432402219948089055142020152255259559524104356611600312236314267917001547123348453820962473634679705014505055942329867490649986732064477414080646477452130648245823914208735694699926847794059387573825144537961750243610174542909906083695428183695682171135300743528185685086545669212539698000417532289476583173657227331995983267154357948212311437837580191180010829022246948020610121068638986589474176480352281033957476659613062589995545204226784133556332077909561587703370874697225326234622945147131927979047767663249669675535519004608091446260879164853586914113128704040785272294511594843378101181515202726386710922465098635258437483689020649960401570520197482202268863172895929220936778635377075697985218519956200082586665942321842259694035312695786385682646764709759077941027348644207059613704136250850873258801429848505534477447694979164689391454911791365813278577144852487015263103668046403477341799491922111685353067707696770512342220494650157374321176542342782205691970241149879672535909916452737420221415037093852422071172132509439345509106428891543499119098143420109252839033866727518700585532788911558224369591376642640109551289498945138420891808951708634331225840854166159788428079405321655097088869665443261043123328282985728317063692670121065110280445601508856794376561287483319574633341212405809630307922849204779609538610499260740886534241591164848923408493522592680498372220529299486352612365378354207343374147721935021629069520797330926118180061222944724131796071954407405315356375517312267152205992218351104210869824940634173013189086145554142752343775873091630523901057743123168321792054834552757288749822677265191362729332893108531631839902577271161023915937351801415256169763992661250415856249211499244787497615804427091874653089868064351399501111825442314723923987912373244951821945504609182840095924637207971613835203520423896082967377952561535580072765324895728013489142584831464721815633874611903584996963164656617534915796463324868921744081555613409142168660543842656049933453458797309262080822284403239772521590190129872918667966482775397043825930800517210223551875255918995660772677282527053773799276588569217776709263917180834487821578697164125504893813871418169197892187486182867396109160868667086456709374802512312590343578062753819349628536546691266090281229114567057916754952002815401230585386006839873789757047494669215352308012047410268713922696339178729326006970008628525545793853740737153708286150886648968828928088611130092420970956406084562529877768061536139345040182344532904310047361339663228254277746695851463478568565864441127726988645118168082419356793839633566654235659100378593556903410295869452607824052080216753456625309299332767585546142634690859501639885117023411429344042822180652208253041667990997574594797522474402789284836462366730654520142511266093846583316460044706080520814399107962612627874406489453046120707155055679115333638220248951506477081882754856582781691213556555114287487965635689842708903440233915174596568475007195454728520009566689799334760146627311755770657611463449687072655949615180706759414100196559168806627447644951077152284705164582374757890951390250108263261895188702406470805486149596479013781773889099070824479897837891987840844664809816447848583575388990837545012117945836366873194779332801717264683788784018074725279986546305768421384456354471227266730810545626308212808519396776746286281195429632984335102943149135594393832933888746074819186851428395804260399557261588485887938031553400917042019534365740104448034533458132026402682131953577263750719399977674955667460501944071214656345941509518923580913133612900150114168015147218201549699124924441937004410741048848031243474705255001296219699344712472680673087259932811202860417994327990917898665704605185896779577305848548389560358107908052096235995867421358043915489139784026620234908849555790130461478976443766034647010340720724725233327089892023730519062284310869518605555412250781161997014498570675196501219885902494628682612895232571115161356100342631852913826714419560993102810326270811603259527530567791301240674608135231592272736194855915222947868650181528137594412302207576422213529111174209833549009853789582341202440179916626699512668878757811041682670132144607438595461479206590748666036545654696582807548762071570212589294486795816559603796431299930668271585080095800743865770797158950325403636495113871858921286581073342380370856972937428316948734743317044522651562494022776473042604265294637780169741416708748067964290528703160025906772333388520553308606457123367287427862285794945087585075112982084769602163317723035836374824118193541608330557509404102686293848328431233361788794254875512145544451997896906760968418965413797322238698068566571271697468382155869673446685769875256810407301591797530957105817461013896013502353858440948338784986882130168700430075297646657028583943368081430975187664487869922619241928530837694286026763216326910071291864433116439617632262642189876944072033105612945576665104417604250077249394069850328332467738572979948351902661897517912357684196686780947393839345792715869799840008527181830661271184175212476992834350098044473578112439881783592526836825819720527901292168147751425937363056211422335480093965169905477499877174894839020841875981275897570029922725134666906971690360215276558630807872829562514675899330371023662515412319985766937427576339275148822414303159840504120748655455602259061962347458786303386234354968012585538814687290222949015284050485475267007693376113648633346394244051545752311311065639995340545920071089284661637058745141128147623986000523162972710720481975148365350954477810219548104650969899786578481756860964838941351605201334364599819634575307849859517803899186988175263209451917929692148826565711485222064746962926329980161680769389497748152377758122577321365318518597838063492334549313979907740281757253420493798958704412250424969065094117127443167643942982482405462787681958368543444072539614132924686377216413419057657105483320708001000484164879563201062281904472702588332999706345357633621885273458675267462362968478792274549391001744932297060951299413182109157590192653904592915668253643743409335358349871105339997728445548546894368583162821101954049934216933263656106740367933132321811418883907303076882822091214194778022431142096488738581593729164052292642169888146942073666960199287305244718942871273399823193944120807105856984376998419526359122771239205537290344566252662567658370378035992628741170979999070559693212321100279621677480761635316098500085928345091231640414586775992794544161287278365808858167788399492503171809255459553486640740709945576600216527179336964219716501711805123724618786471565764731629847449351893293686172852113770719527938407860453935642759126504142644119868872614402571487284636238080109014704624108075137603816066882114212934970240495390087473855616548506300759877534622780487014040292822017006145717898458712038110328559838042260114391389144756616130863907386025031508121230329548407311449702160762573524534051303986001793510539600701347739557196587300896638586862677043232066683933701142702770370787654962843791964872415693889450730240469307496297959003261913451830073952764976752059881666587132024113642988848655965606908149945331719447430700828662851373691196910633120937932925134413548536089019885967649730998985602060627845414147220381543364587171878682384603886170274343833895909296528946010161542009658687338658231475519992075983971684811749667309091887084776651747371165425482089391131641049619506896839044455245631857544249173050953606174507692601884111614109631101772292865530453029806356828067458356663704806542597947862387153380397444485499692446679244368822543147556454262109628701266187585328041505858290612465356827217817678829466897225780095781981014477159591401783615668453709518641059506958354360312137414419191386256141759162450248856158993679054051153479983452727370339291615396522766823893262572126884596727117259664389004963343065664422350916448947752262773337194806404449366155395690956708568358990876090479211832704073833449612493043911971859173059522986375220445820877869158975400170213385956473714333904142952566952239985616020401700445011091289777659414059153024891931923869266102906219870097971838280482228791564627170545881856915745859080627104136335562891583932819869157383817429062968014875418415641353955229939515190215994348146628268538104639530033781720900126072685745692196339978840265364910036618240097954009226021485754130425684318946129898935696508785335263852843789070774007035088409613534870224474407815017841951668029658681361939226278239674738882782408555219880639501806278939926950089956899358265359308011983194880135579237525737374813429262967475900543355363450461798693561394852823761209716736703070636617843654207202064529944893061080461336394043882732195004796068056973179420466760160847746896515987096429745193254003835459371456593884120642758956212010846033764864709677004812716093892994989592956749198286805810137666932244954204238854056634595237698668826486457207098961460972399502760414310293121492179951893609594292079082235875573068846476165442654037712305527638326958552896868690853867534557803013781427593028610216227080568124649314023210167538492786157902685936265180715053281097323313910901437512508023965326413165017161835058160339038078499269780422766648123584902316528174193558225680262094443411112117149965903126520981795870102298971352509413979313227766787726381585661937382747672889712656437675908414829543351565636562477718384872396971469375688971103167541409877942716172175782803804220761251991443867503891558355764239557711329097244339745410050752996477829833352341035184065601999810115039085175584828961190280876374391212144411617991497046192756973201679287629547154235874933683509707174985741154692803966973925942250324195843027281123297994189684574123175556688550737712814865776234808628129373583700598952385035250129388848188894114007377230360654221799181128226662848313659322465452918522720495309520723976600887567370938730621801754371204718969128566634807302000232220525411036637002536559714230496261120512380628400089168414902368328538055841929037700786843094173406993203933391771521648951162079929610673999098916227397452552585053120907775169268454124770111436391389227966941255324624660373655124706198828735501549446195612530943375053777962842113443995956330048962893932744491659399635533375653268783629508539313323360036533094772365518210702342501211456791156737370663061559380527896132011149117840952133748319516861820759503414175530429355183695724749147575570776429859565674254969507699066226954749063130376470009854730833411699468536671129220886265850034145694054471977200151843227036706366577690637562346359219257024380281968947502543668410950769406164712159822605344866160017660155985252877742456345177214919431594172354685439209418780040994454338257844859615577867914085275422571164614668016300085970600184057620693627975377962697716274125910007557717596981342471494988521762060746369964084182739370373776078746223346938799991694780759850375962771297570592516054544288106001410977946076629407440667222914101850239068494285355812623786032609053311199970298012799090035744053252763541535609326579932579384417278365532688342579360996434791274734196285714023052986798736663452536344384186132620082539649532044855728421606943580486031508720958108092341896297009504784102460576680752386131932552314877476948238368698659946908617961482575472137757306041155931560229820283815152629292899831128690562285571622483397763340242511755507660283358975762649468928268551043376725169126173012513505786718326947965459032078137509676969700728454011325402428397239396705948597591251443862338396025501963488859376046370406892415873894851851614896756573287167047278350793129166163606237972332671676204405903692446785721042248312665924033801239576288614912135713919193867694180813272966149599294247755588386337232534458278872063665167355309893801824471681897079914831026851435665157007833305715838429828294053868862144236051293080069852135206757213491563202827001524357827668335510674010735400487695632418068775914012107846719372276715917764909265224350734956862653175592561206330026515514649726432017048333678797791301982269719111064506512244852266565296711782515842029265183232941142350958800669172846096713609837253148907924960421500492637381342631048851781138304561881554887531072581021970075454084266350723817341212623902827235346141246313113450453876512392121895051537275087528587061908209179281121002817932335377956908862269681727232330751490574330039071420758140088537440182504807957110391441114912720870750854695399768768489677128789794747258713281126762192390557575272435371662319609112770502774588823998951120657125678477043746260269488753059955988889177519800556368219817112518381029561428180994744504621936692919347039894092988749201611984873142560995361963882764738718403623735581389268468159874901465274111857243053088444748228706341578830072949881978086380569731379761187663712862270640519957610944385616116189651242120621619162152663883628290753043979170620534647506618018610002908008361056705249863244799288003528478441947884574456003840945770242104747393465549833096078176355385528969996398300551428285095287019765605345131010788588357272012252842269024894232111041383973799969962447192798365401648094816381668992330437911827071694701027730255723530598891587656966350205437881849001500824994893931973395031793971381490927483730019011082853810869915990448775840036078353432108818668538820762189583539499241949867583786227496173712032955577816245528363859853072249722949985112841039229519206561189330369111630794582696604672834563390622471300273229463406807780977931448726106583767721798322583446985818455111903966250525626947206815698640885533730676290323968050474746436762315057795896248941456961877755306919397609030628929587725247773417384879749947831249249451102767006713160377866183041643654642572245680235948528738499246385896871250639590671053023098504159408693182551790235388065972905227015667958132152875356603039263889228708722643675451507195618990466127805498936771280349660466283053211785725035900596429160879429174079388523341232747591973869638049451059198398585451441382786655076428667548628048826632502398849312432909385190919069452178446821992065624681263899659101718353212781826488585048560753922272164541292012714848102134102282782263165436130988233100827798708650355874110105768149313142400979000614905243331256626667424432860684501044037928175763782167291458564330477122364776449395899852353460790059512005738041920498901637562994796264896466665985126586416187258165615827448495329565283677683376116797808246019096326657970546867894540418732594987317664447933253376384675686183181140895835580816103425373070407207696984067110863172025565286291965786704924302739049881287638857184066745695225103897412525643482264554393933064934770599029844945584548408991627212805529562960896969087510678462768559978884672150044647367309992788724619952208350989960496493365964253256424659667507728911464147117547807573977768782448188171428059254914902038489835980852446028356130340097633145735021619494904656104668480747120382670756076006377835323996026850382825905843635741986311985925044120270967671342419829862422420251535534845253534476274618606837546386525597440555745026247344401658518607268939913207410319244386761621072625894311297271495036760388152644094857071850277100711295809826700830938792065554840819019359433957915925940532799018438961415277868681294824440417401854376319300596411313647819731226935007880714247356306311644232855164538805870504159513976890599406704385469848721997617029287435903745173993384343228839474893573476763138263575908173599351882147085839881187987822191932715621007162005469874716429723601072678264406322841242064118699909303129580978768791494347102868382725818776992261045870699094679324929380232839050247552441785219257617510880616697563848628179969612754118847200167995723174461305593558743044264897770397133971655814150682454597288889525358904730076937513728858101131418389140078689127360026943748338281913805874384154997494233263540549866064329846882926811433158132452573017113344651005053008833048361427517317509667873696463567460144708797134337989537386432738148947833446521769711469726761339631515196312094473265278197746929302747954509321274643412213754730683190836493443757964709954952352246740162972059661647112710574382018407885904985592332627912258260696198883487199335912420506372159406257140044814780662606625072609146325577144526936352062129713348108282227675432551103048058442125889285764225178514257759844617397438171992336942484623947603602299974493255112776989801000422725911637486577805133112467264926961764226250419495698314321343977882966050165499920793183165761499715623424165420679882397018130423610771141226343466356696017833703560486022303969984776713382122791205590843419620222922116564707595734840017434364166627253409926158689886983548215359104416155830199697379835042490296906754544723630143476417461569028397536651967548850832173713727124058249035399485890216739689226920046603107846745442636930982985971203385871162263161042028367435140355769552146958003619080915017568702795909162894263303396712845240748151840390547290125366845730952494774675769638679414618380729146235623862401211007198950482288322043429915221333166639619179826749209081849713424224844656792840819722308121868955175833288243470688597248457606917827954130536448797547258928947833115013373789829175833668829432952139071676917547982611124505240324266590648733317703248554546641800043196099426066103418388375410836585330291844848612416151996128819451412498489091686303625357568596674084361316236962866671494340087666685403261517737547504685298461678484749554946583646873932266567474130371797897217974333373734664895103713132380993047833290190528735843195518923282246238379830149373336634075695588067273826839622147323566740886037826851754591278201799653319543719905087296501581847363631225364856545792198616135389046329580875894676311059619294579324350095341977605422423549677341768697365864451936284413604542029165326595720315450428611759113366505798066640404060469944098112462133135749000397423532614494016076389578251545986997150176401987988408801641361950410161828270980375823156571905162001108906878605196932484500281337835071852957678269761865648105868628190313693319195221242159249389689473996962738035165828895595390188691874337486895907053287910714052081766849047590672062265893227209863824888253803928827566591647032026146950471752248192363217370981900326768827481973999750865512386916553216720951204503218634377929104481319256890152771762272603333224093093614631823731871198790115795183586477976843098198732815935076151297642619923083341758553512805501246225303500817288524838169967408692649060093077603431867528594450379748389180662134616152077417786313955982762288389627698922267628571495783875832767743322273521895732405677592363204468242775332596471861982725610579596388731066046086314842317255800305394379766834295158773117605686842649307501660639403969733222745634228447514034784055526082859799842476961275180829185993815191111605318511192638475220255457359244004975168990247627319590740484645475924625205520503539512198238453364290450394542849014447286678591169611399722435326882728441960714464503932831770196255140465099188922120168784855292291676143586048505370594476579173104546483139867428113066746493390810313929452418041049008378921949784711107578621862709085949080826434444701092607555285696905761524639945062084149689839943816485610669205773207928632326924728216384784720860866609994050993114750591176898169392955793444216976142119434965078191414885174984527049533916079583398355401342970850875318677847154797645930860526846912087174477638393649166714803458809359720969115615086552350567179548537142175512988244042002732304552388237891855581937311507561940934469502288278590985783500550698271166961557342461351721763132197228191012946531231349392439544634269728364776039740116740873502041099291239906467468982542470995920661858355147625544667967621570555579386986406483483496895681988453596411766329312416664878782921079982400465765085598511579733458560554927945697789254952494138418242523015341963179758850776861995708923319834111165594377484261112977725508039858017311281275925593098545209021079383489244198769128589448532926334186741972256849235676296159229962035049134378772801894992199826014528979023620213326333025782845661432036849115141398590304715148021747127818762413633435147914054594380535098122621611225918428234646417443748622665089966757735192747259839916122175378821945918191747345775056282588974451876652676862742347638387820081510295960806525162544477575945764922265961093881666962297803332827966063124287325965169481551978581794186202103670520006215273526216041066983744317858842131895069907264743510580791400814331380214604693159519577579183923096042921353086187853502502128909935143096704126590962790125089984866542301329914882317107619982278741502657154052562507257006566014836384010044982205994924961124347729727591390561727661891962514743945568820728744201419881828710696680568410099487831047175794550601466993188876652218329304641457049332324383884829025478435964646174954141014656616155950455460189867257163276764796901411160783471936090660952798950607284418162855354176202733735921343296367320196080357635067103775699125574973643789861086401903421226479201091296147346786990903476146705201061563190935231395243156827253853278903171326816812538687665185159238196397858261169778498913728325790185490545041240862431168337416123632807180063864892420081904415286395130625857131411287179444609786767816620850705637797331806761940373553936737668532805783047003200944209798923303313523021102292293069070568497215596499406651491573516049626997068268720939545948698761592413367172457617787646488986190903983239526197251070140354108841721653265655373285956297178612047874749145240003112119273893728393450776936969961394500655262739291414693804170366449639193428645809546363930520151914113569309342429235128437737207738535482274205881611600158143367109193761148156384606258604511536979981398709100408409710338813645652405403843932404354695046919710895525274617897576113704307163123135080341996274254740087588239703187175770611535126882348804338852460321008924297996562823170346609664863179247462578002201105736347524352337655429508371061484279499688042543265132126197782039936156033754962949994386424235210225002346096061511347791353263854666418043930277799822234342870290700646000210767374396809881657233075548253470916423522824284429366207134943162134320956479085556325475408236315621614150848894247564728822108070601989896622382423518306943242790338741403520208689213250101339221754235701421868301057620620731278025569619275265265795376851293462769495225264679242656054705491467972146725907402117116350858845444297133315326859810953912361993569062621000862572102120212313437199925584649813798893190915815579061757343769403362368069104597485851760087680886132112771139744932864001755038599372091906780584213478819546162323054088478413426404248257415114433447003258885184441933974163964092644567807050209439246199551376882357542025062026467409487972125842197696139056225303003530103556181873009778942678754408640250033610402470043238832742390484517636636234651042661532604676277013312201617965173023571614097934733229229605106337313863550913152139450149960588330858192069609215298048297573038818053071429027420275679638033361685360995146556886551975907307472657389993667366025415523083017782315450056797305791974746897575996203881039930870652190171426789147374863618904072627507486996315645699605158090483049986674486455625427481496710672830795144321865842323508608140357182685886031859183003637376268864490988690102034112448429393074453526385059398474077216069140386575642003730998683504616181665573011631621846433894155750972012549559600079169000159959691166260258462569866647185133508902872699456133474766389432139539031300148424091627943941797159830673137553419703295580836284662520881968018865769885352272816526935806264067764360512453874885867937021498538104056171603937280028763309545393197866274317062184938777833831496008541432626379716227949264029096697115218476343837713488438483017293954185760006880529746906428635520164308775145216250298781153907760805649780979438365331371405019606134258904742417745646489302771115258032668602020275901828177149948244246126857884806078075307955070685495537872564079487102363643671918027978759171987527525251484888189569840188255456293170270432780715503586036006308342324878781584391409117217794987173102660517354750720345436300950122826693185137248809380678881397475135827215099155712702413854499340129159061240936019979210284762676011294409926536579275954538189545215307170671581307230775195283392313566998621131092894846552133228181213717887525351123935662446168664557323868862882426504909315756209390121835943241738491844095606454753325484761092151787713798130706241133948406008196739995219417056187412769237271179355464200479082068396790652849037641292759048585371072828377511590795856173092466987002034798080746964249707022870767315754829984025636280433199503756977660470527033193058373961889777749566435484837409146032369142442290319510258396585998250622803831853384530287066946081873879265293252648365319911258054055994224424921525462011446247902065377571977747814090507070594104294491529993480988157253922404160385833075793005663946670144140436468907271967871473325885818586843885244171630779412312044095683690914329682636268720531627321305311394005007398469387681650287313160022899019936580525217270171221886532042637847709226667650877488925475620869563266753793380526461038703583566187533881442141217930276322320342835464567303944998622084968968243798281516804747462734815063525447093584651186903757344786409254383980847814870662640634243987377448362029116314502756041737032321532608752173654145171330086532778758349537680764641746244713179779702709548221548172048817421788674848347646433028078864106102936528496093116033220940239697406129179993165390301548068509539030160474819541370736248964712121277460729410203299843935359786921379008667498434406928278414819704761996028369543021801475832068377747237890445087343532575038029182721394276366926316767395857887180376784713782161492971134216133305439770286856108208558587090311413751838939164637183333914990911908618825375572037495421806120563001672776517136813563262009220598113670145006962339417987278525853876986516538954379352845266057642506298221311085811628027902722527754825485961345351334871762069061871546941081942834871568994498051504381122765312845577257615103923591431061411810913525325693522972888106099064885685054140139966606426385652704546393375436766679870743242498464390862919195991077006716722775724608021635488241385511189026802319498564430518986940683619882294548468170597967554890947420458364325224312471273492804852803383757008719849939568647146333522009118015837093155187643006321313101914462810356163070006681649670176693938140498507829188923539784913568962035959547265271614230296634827084406574036939244514705371427120629986575817308898728245012076073770924748337484687647298299236165393626963781871687192711902522456671828926199168544644104094823116767256976660449924176605899726294313765407783927910719614973019280194300296820868229461543315529744283344440412799245441868325484160891532257888070024737102625580409700456725586600393481063720206257424707738735351590979144522332431858381064010906003848265971514701614845465848769649069097652531282165111690720416519896028132490355381771912434718612558339880318555373599388547964043566809093126584309110834414775624744182059179895256956801072398051602719151631570224197563199557955774520249060241362567796193757650133247854453533600547638379300564707242540725521094631947488193294714242599376496099371389095455441859190902919132020604513880466889215833612129313848748300928556445477882103430420485788920266463021933413717573237202866644549437105733746204780971183091166097250809792287467360654690195787121289928821720565439835712230032185648831121861442139572527806324566407791721369901919209818776861215689830421456562899090494470411179131181645274303924969890664127112784592899139234214927044590077729623564568442550883286982138871158156292943286138251072157227106857723482842886791058991925821547186646289412000088055922975698661962532762609159397655641142765540851114647985193980653087176512175850854398894675362027179308767693465151229159440044624145132665607121982242420949969652878413766638981096886307840420460130896207387231644673094807986756812089783772950826097701164525506922770343986877045130968173142969322424398747076718731182731575627365982461641381938849307234740339111285805730102302840018446961771885269627763358208210642817540104118155439055973339634218851307862112231979679556032608805323166081060460217283660266127764750909187343592396876705667212723853031813012409357565079001573056189745027580757047617898555978752035096346337501863165853759287641943174613354672862947284484155109777490884236778620354978613535776936501319005690383129463214336714416123283166527063015697105188346418655344044719742271908128152811730730310596575812871830468748086250772676720956166797023961179264697092854770638007201959253891000866745088910390019519400062940663045316375761713165162882740540781770694005405143942833207065588516044813127797409959864923236241396959774341915133556044807727750726072577731353432039033010309012126554704463687346580499876457389603188228161787839514347256722109517838698463646994939674309715613509577698764987547843384106174445953564637175014216616952782864362495838848439211108367101780793090425418880076126675892171842794172684326382522550920665663173560206442077354168671078849388750444676370180611287972289739686986033912297969867660191381754943870711331822757171903640117612819842714873588988003626369027011729544306146644050231059834301681860710860598970685457977637839601980029052113587375929773545931315767207833852554387961731483391037063964861651773539825059007749581920617207186550043761452184672170603807012802411158461120439201232472874262109297168692055556295490275636689181597290703137741420635914637252323999740090382343627304424186533182075308887592809486462776472169922244946282841527798135203842409667104019105913511300349357437182566083512609212642470074014122744493769193708431758262936146120647190061423970682083477531037402664901493816840265434001496141179633147113325238753327827577044816892542513961659501543717824487844092061619792243198215860845373185564081698716810328134111434515358140122882928490543986201609525222953666362057336635190422797649437330316205794946022191659674137166811584909567392526496678030254941490416982763302636510096263332030954821693161069882416230871225297886246080009788382882682367920732569023947447312386280027840729396991998420986644590871796394277986065091124696398122041292213441926995841246589660962363135376590985585720016161720363952643600749097995636700800260095625159125674316371969960598587628458834989567444271562154228307319758707395444250829038364277463992864101245659769601530897652954438163191971454796148478024498568485654780266436598377249461923974174542094921699187252982904026137092872753132142799428763351789939787052779219275371811150460527294010021479965810760556355307312274195643029558618059510356231604207841810153932147369568337122363258145236939193760091471529455540197580324534835979125988930744322177761720489022466036263355836619963350401406056318881604033031503065066237667612337047091116543300508931915062685604590199258084491868882693619517013696949320447514456045186491163169506420844792476584856966569822945966033510637532108586636400661489822856621451983927038770807065994626483187707997047968185519160176313665417221164322932294742063011749816851767865018995807473946038575250248214130974242361383390306273844028323499886931743847141851971122983963808576994286033400550612264733936811855087158620715030193143893974811155958712427164940870115687103543375614404324868345283311475384789613633062457964208763250222498614893898513188209915974042883257865130220014507186985918761691958841465092987722081515971736147671776179758262102240202636534692024812912577024165099849091715247932185975545341088757454917686517353567746473707031504283672030010292198978579267913018160728743305195629056962622466971934159228551035447547307170009033509822198862730288754117782237566697841912526356493038433781899403572151508621075843965617151682602167445544832736715375199364168352171188233966727877649739354293614184911599861332649333766982853767698651123183621443028910067096937130411225055306230476592442508000755333329824594594718150136063405725740071004905890385175600313086698656739163780840574726629250165267980019720250000435295725922722225691645537994546266888135816038066450119179400082160543694813755425733809569064763947819267251847309126380457529504528575098491880372175735308815749994974745446737654241859456366450150903315814134913735442207404427625385654365905445040873331310532184119500132490792961894936738837399471254753853102175470003915648102447053173913948876763999853698024520726389276174850244677564661801997912487840855146585707111064491222995876676309705078096021288733294976556518776723761719505213475254799555597166464185927101644233321668802647225906723819927356846484770310574799153150979150051380582486858539533549163619536418343135687634114300037421930301055426972504921993791015422184509283252748777619064144636951278585373679908825044521447458624113545465511464371092577676459615926470148185609504252802944628206132691124506265278485340889704524652317589163758728220615229273510204870693077513259832610094348424848919347220922825217024732653725507281836760815068191946198456629194117485532659491889327973498893365937258533184720955418448016459079728458540008596094412798162338863484174571726426533518434919470004110503425161367512490012010640687088954947833049362675860326956508358430173469250964197169368173800043251082399919328759587180355299419799933142304295227911713363986170430469824537340600953897080219151806821423236623634654243062060440139251785466660674075282426878545275699798899199205798884259473698516782793319023418051148379241925609605513153732625880371188408074727807399171893348731985843346933564375213138436972634170047145661128636272070078086497265747811953743476500355111449927481914725023121899325915627165494935704059009722358853742556123419450111403954406724567731243861221270067497523137614354631192132832655040112044521419444408537322816406438320892464298860991101631186399089644094993353518946178105441369076552498939489774996240059637203134849011673364426146211036923589657324379230183635497271897269495724486754219264220573854164177123868693919233480888283180972306268487610417313891002648063894183234112460730246089858724509195358231265449352661825568718447544802853235438611744196566061726407097594447300676955410543034225165607284647671645239336453221805038806553542446667203235337784413040516220892597460827765165978868303886529780880637699249653991828732639434974886154420920664654740488393934799206005962194326016605499407941473126856221373377260108570923032097532787976292721876238212192004942242614451603335085366146723361280948400550333851431274808533861020502347409394973885564469781539949731623130397022329217285977797843335675839165981777811149858522621169912730471541070400893187194439259110417465477108478257961610324780776075728109850834695628630663217300215974091938596178792993304565021251489464686447201166453618955815526857275284891056114406239208206659021174730721993083794614743184278848100547826146207061022473979629719573353582916570941585774885273782583196329396290372377614561279437397085651460970165290698276966795366886167411091525777558965684449113435128476867010846396185392887778907138882414170457921612656621179603499256154530188367912340631595675911907805149264362242831570155120654990278721175730433994262997541910306573698911182395747388409189249109084085197577044404938337600471169893738843854013751906938164522038323032276225515043870785050315015990290931530408566622707123826779281341029309084032179231146282424073015002999864853451399728632003019371927014606363230546916049405345003791382676517315943214001240015823169604822458299193282650505636613420134278839197570205723382737736865378927712604301524243403354994739966351940032708426050759089562037522769408271360458159459065208401783118637829972758084722331424921036686075041286952250292642979295114019589503535026108399589970523810840356250022331337522783388144193107784847952418040160954451878339497093406381447687502161108062267959085167997360351549758872122513281376408062948592269333644264880863727228337387044015054049908990866038352300789508923139357159816752968591658090845556165446785543390069563750686809039348147566476639658154478840769121667070637190767741823864336169542985343604056683938492707686043601234669662544586204492633818611753833173300176309617888444695990015459496414707539567360678350042110940027299163320047146445371691472863705410429488302395644065895799733192204029548922389442658831553651055961177852992314160550433490239056437257627472107352596620132280257527346867627130486667118074161746378566509571001342580571765850488760184146934604127075614318186707557501081678150793300001076488263562978141247039229206028658661868819572067570638712713710824809164612434717436845272411216174513637984892829013571161071453086855149012611529741941426157566381299234249620275566582279247197629712807090851138128632515092728980621557469249678134797419813877633844529410571269230202888766059325229354093963233742932330216259216145973565012349094701735183288276665051865701780487553512344214714450968970629205388619836095345477496213190928717110828104434688620996009528245232198177975839276518660336178843414645210450990266539845476696847325951757695970248294879234403207813277687993805448370392887516947642688475682433875256501257110609163979874026430066602382290870645867665063344584147192954868794691438103838519256496010371554273302006579981323798790456245564390487788687887612434872816259082894715509932595730407646572192140919496672976378778664842996283118499064016511924227249845047660737243417791180762555806116011892165904559582203587135364014034452671118181319075176646635682253592554512218048681114868275977583390245824153963199880914032217829757160339345683111382838109358207836195766537974594344690619774374006124828462368241440397027749405424532530578444194071631781263155970074737326190747691766192075071804393464459953921504049095224515541656149351713093280695497436592914427611257063714129550522771605647502486410336061583324010228894842821692369984045347547337179812630272777776808620103975418468589345045397752135728323170225994080445768208828067739697000461214383191467891688427335344027542368847280845035952067449817008482746479392718005662308527973121253393309977762300989329139542016121012088878660827729259438229877307852504726014594859400009987130594875090279942200601880394274075543865630415756807631051495296453467682835805313208857490598177594409558573096967240333380843712715301580282551277991675843043808339629754843489111101478335996675733762565222164165661178012284237380811445312816545206843061596922108093574028252036523137019969956318985166503793033766555635866906987491762440688577515475886101195919361835599899995887946290146925532289049701523640643922437496364759991524596411109444861094422994386822550465413363855206269599595270583299085588959744840927528034411810435917867825393237720851591713733796206315069344547392399260777179764687154214266968719517892547179871472948483298533572266336235181952623851859453379511626444277883500715217682893373210600348736918806864108978464862343336875253539610494246315178983128787180148914305037249698056510287679305314590732919244238905808733744365059448815001539220716278346262655868945399434091967238664609578905890378571315600961034920770512518160518740162084559002132408318498339750793840657671446074076002943111917935306433649484300228612177785480091784808499856389662009054837087360212497185044914298610238196950612349423742548157180772414222526280429722767414131199469941549911131470514604782825113387434675553428600016350832429327254471327770209581845355157576838419492547172646096490360567944735027011645834213488347367023885183206703287260802938508897050979510705527355925579676443829808041087320248283109411784947632342952365357979305268972759115359409620990667056526993826836160001714190453808161316057621003790124798027099446335974509469012565768712775367115563029892140951156406375641824525850908093614476433372138947565579733827079205857839197037775864348486229936731822170724251899494935335916483448582887136070208164577410878633388075117363394244316068008035456208729958375422603541493783365714880969420565665539052003262126875973171552514991521916871547741277969635889277266742963865964462356489510503785618369967097497344329880120418361507791336886355798880630893563268402431131543706471193379251268372768548612223171116728715819892104212297739712319524902584505675239207280891347832595568576818863538396642137113419776292046607625211928053526783734000026532582848321559028951911100821677111828131671838498432915805944047212441171878052446570668056774649212413417637897256691661602787391847682943873895651216743592529639631971604186379146744860181771068654464821464998506159152860136253713857487213768253688345840624168839133747675440857668014659214241373585580406249648755250496583008410273586762149548340524452105189003833586611001871594921436418943595283395187933656522641884506636716537709535456995951741680912392652520461989645592522115646245396101013854651370979814419033335190180800485776967987046204980636456775506752707834354712342246718748241100795854955201485914259746385355604976644652503794727305598736704780783405500605851817370048794563440804682054939197273206725273503067298760926516912355532003765000331187277127200987831004093698401624945072252879345934162422482596511341758490015872458622656869505453319536554976694543839226238270707765559577983791151836029922950903638753970894333687195737522879836500813797552856496158598778221250509676429387375582652127451479149974270208659910168811384008050765813457220702149038000645570621594716674538496022503329755799692931383667202935782251342996118920094469842560813500554816691149263535647663959919931737457302176989303006006983266827400584111423514903236113602076104320730579217042935791155525142402798372243965029010399820193102705644730816712979736659775430255261520285455184991867987522097508855471129833301737790966371911213205017351792064937044206856478658212251078335526393374458088820542888030453482300819661465626382445212629646439342789786005792097607121477589109279502221442896348591598548906344301082455094179354631573958691935612129182956513624466223398042477954713105615859347773760686859851374448125070113134672941335543460135345967231357511065998851366452344568924696789860894783436667017712718025650434968813859025926414318270655412166791570227047386012911076105572268031709756850312455482446026127746010690312034438334591554324635703574188334424085845779244652175346766814958712467473399608139383145198700989150255319022169447224473904343072525932315866284482105753763214925852959158347993615508926730883459342980988280700447306367370062444464518756855850768511707755630787529085370601730367270300624577421260140416449192488802987314568078126153781710365799046091838217088703664042499271071000180432607112561649411612677042802875415669603721051224834914164694048072112324871557840052545158243872900570969390439015585114854442994918933684159972224327578178955059284149016480089077018524452833019992810554210975585880591551518982771827319547531842970450869473075636604629285647706108682251718300050421543091634473203246072384203944867020647210576913761791936824615737072302312579205981909500556234346715847126451895635259340554083933064865232148228204964135220183937071551507374594414168440948129377316376977507176454668751096446106567650790368137628567410162624159351686425121175644920050380787707187386580185694684171991736056792102232952817507732926687921786455566465553529608596207295005714847775792551112666415003115577596277547590761611770854472022238019784250323610390610031168761178474792895987350571669993295882454602745939595986024695346555448081605719877639871927272391480771731853741366940139782033790024873967199860563076634309172938816370238856928119638851363608126838808302170989384966810869332805595600770438821181163838641557645244542297059948280941413034856491054148452661779272684999492018779167307096758767911225135925913806444405084856370019674207466694847116272485424683943161157577176004975733054243320970468627671125043378048628206382811125437585737990071852274014074404771555115432856822144046531243315896469980502029078893028493189017675384607465442580137317188071913506882782927737337887255445052811904332389675439679910022792105569942504250083658220475584177236323479296493455134347823367723473797558204795080236873261167263769628021163209565338456720837794863556518877914129138990734416614621093211342395970151249239485967943140198055992436456262876742548378103677806249722963888229733777817663598395487216942938899983141170845252269135382245987843282450177208647448338798023194996641467054382537485642015538337200484970786818340961323765890042204190477335757926180755926754355677766758084474632200640555043029690236310255633038008732046766581232411722668164655376483863306903008136028805055833480619986746111975094114295360953413669239928636806277630861244432675505191327722243953676783060963645706108479429850881852817603439180235320197230072338786392399487312834702871460650590106034630430108198145618408984601321762879998114756482789432872478173549397577413289162938151833980722540263937880615167626424817333064009491142629752997320034689922007322100833563081642901816773333366139862088130764534067369674310072761177051773120802757436928294305527633018774240602599519452478630779497221082546314694688390497356222573111919208860029373351238317701365060408625560222168910300773774557635833495982120995219086629634839927550785744657153477263666834134764921359574816929839020735776308279320956947266642547055117210255645918935771123123005981148128391181365130443580851772484353940153802673613072594935601825919313672137495793474425031610166220777641749699891936230196739904813762421477059360234171992741044453486714097247692216018209136497864432557127561647029471192458554269474319972218526514407031751400893507567312721588253721568219536854271602902549168608922053422408416664480949588582379534155638301630722039682179690516230497522075471159655945794990900064227803013465435262419500906478297162111992808445059242361947324105017489541599975112370259828532628358065737242937898912561615712037161525044714228055377257961121961925075297691040363710766456429948629080933352086150861793616263244295087543558569748730506734781225141834594098248870722480189483354057530756237233280405049143393356985321029645437718797501738952146860233542343179423738884825783598213645221871805245946399609979967576509092865525024915664519233618804527939126543515446341461000364701430718329425249370218395876492212556411949591472372789971087168612889232362821646015430997575974918730675140871170165311847268692088532688683682823480498510193412702157951296806014745305632163179429570356370728949343591773547140226234522440433241966580943668748785941101246204553304548377122932713322700524823418764669745576984924135067483812163615841161850766551998465285497944584832514533613379977571742103975331064632728515472051096805611374971675228558283198044868631308142419233490740293704803003103702068276864898247331875031538982849612247212369269064568513837971426254926855921338708828643186860939049050494679611436456831632100591379302225501423574374896748498733529369632091154310575800986756181932858080601822439272693430307845832751871329890014420887897292778878598962156134122808746976898223858608569909507903719499028246059166044351495192457677646407298542808888438459427271444919328667799797450103496165317620530782279264078743961507039781315749950647598487740369906862526086406919168442501879233039533278783275781621757540461830382154951920652599037163629707713963738289363182449424395445292462619472111963866959287400810283516279653808307705363821053249231313097469645019450971589574484864568428994571885211469518939611001269999409533849727453851935449026450950031170574508020587079099667166893441144863993819346978291170540011248318265682607014984241479597847018409306220081292712529670976891751946251608527400951994856288176827024389727031054169075896161841578289785121214754804360231923343701243831891115369629535604084188996570904669801465507762018819166013881301271077904948223107238105791586792191765839416688411586275787234910996087548270985149356212361801294393891995603035941651484795310696776503519014838421071536364053979230389477266141751762695134345531177794098183907597025190322370628702585884974360308468357930319313115966717224421152096305692139736440449031932922809991328185608061501973996983318516399655948022884095915348379764671309698314333166494331853267580018844822739349041080109156623292951958939289601581206800507205519596267578419828501122579048066227327345027564245501600999701592112549713628853231948409174224922947107783307732183232510134770907146879712863799161954172504986698796431527866795052533767927456093929928678907059643754466179196625465526936059806551532470710666825755273645032287814386435731172035870738003461209124103091776144294554389339455688612572098645143808299415574013767907440608133598051437544795501491691845403356014804160949023804611374300265977876776812939542874244382488003886267978826561115742366118448982228691272629820263338291610995448909453724544055770239308208579458924324666940795736208975512608117810461326723486302780290810250974563317040505936943577645020753120472339918103687632260838163762779738001020784406276220385696367450541965160011126979758608968432286298316083013137905482020712638889518883533472033520352659087501617641368977615461907817498061389520756305327466626848917917905486447921129648490600831997306506016846547766934589625127210950372191219846121427187397955410078548963016299905892639983370570414844197328251532943875254090363571586122732368611114600324270514083453789750518410910622083577581999338244509049449922941184278730946764227868915830216753998481300545162278948799380121542261766795551197917388115412697866421657525314279582481617819551326829062767560164336067036119183957610860447203656491054693681654362503198431462657266525932475558055092881546352715360688363663603086649444663945134474047358695316067034095017950227935492168927443834972479392370226023301684490894268382922809298530325983497578726371744261906341353598747548508646138578366761619200412873583700340051022435149085479680035816296480921897311445636072391711814211139308803314240354043487600886161550111322739849320168596445265232278548896590149461582172020206547023497622147923579642222417260581167773092159054788518197743922953708560114323521845596407410395898678118418597048228775522730190085396974492960369301519517194289603432808447181668709790782300953697748828322253414195293880177949711021105159265654841999496331051851299991693801158407030260038717559426037702292181858208133632562592786667166199153612765018861364510578965375773471132071930971827851908967278297854461998469892323975963861849408719243017295890218992540324198741188960545707826567148373217387694227101299863137301016709680552161494755990538195965114880668605209051758657817830369924723066587981542435809809081493579292811887808301103995572673443934407253463235514532765567060314276996317466093834543714519262394972593567752084242863384644885176552415093728744668053757120308495096122618343773952072444342023573460109958935980682620226103835634092716977615940013921078909031110312391821797434063974565069891093517698929689451390376311451519082650552158814082442126473443742591851864208922785392012658109612337283771562500500084683977921683552792209008317847952014896776470159451320437639865727742204500464695079928513867126473046286895887587913579472562866220942911366907840756320057538930229531991826952006446407368787209566360133729378709170012215728333043392291209084817506630716806840272446259483715734746867542093260990902502958161532497065871737133039992789707562287429108175866410261197050358019927622827742230047865637855536432996058073732363122041425699108462130719548057852561445734779964875670915144524320641770364580166777129109910011837385644002423942930572344311994469612705491088937325786864258720474809746618073672437675881895711469335813950514981482619734221879584735121856827444001982072402077822887654752022870295767637032301515193191948450557259460317899851382528066268125634729384153278867235194046909985021693759548528941770701061247525067484045925597253769694408966751499321143582397027277012820861857946364136358983751456938772265762026905420791199889323019990883176663956404520630704790803960169097356649171800442426741680800840481651829065747919174603492882222325857468707009172268171205019141295304913545844579426282339026978244663757057400680762401445596614301539480238063570199098684215879722885553156424710796115580643410619014211615248499422856786815013514456926230576162210484969148073626574071938272164795685522848374845578725777891507832354936879733194377209511210555143781289184066512830009264053067672735654598652022615238522746601403417231363604138149738046931017986083274992691426244195559438002553934275902534429929699773761758561512813932366297164344906039677707373327539814948951977478043284399421232798758269960786076055809710809209011486263353814315393256013751206819567586088460015348846129534072410693318429702963585614015942400492894124439376143563274513060170003228922608448242282314871079333444788820442792294971368786794473571385215494208341461215953090185529926699074407107561506594398770777254442034232920679208423701141977696143099429378226318242444143531690376347251393874904330105025006586647290556834772088069919598673913485002808865111664697086533024184485856204644675074750554161683724006340389066448805320355546617050493490195552558009793033873869807988202947250914401418975657433253485256377270811745184341223806712872927347347390483158627836446206029586331623804910157142050216060645757463310815608800048319419948508969363166116344318465206272646645456695181238694381957939092830105192493747800125674823667869475240324854675260111505002496386202905675731692362486177181850147360175691014290884422192780326714212243651517006965429531015001336187593989359250896842210154964207132087914812090749416885082056184324164811815011795392995554935234234413732746320749379646038341911008146109370405079868728095446219152867997239176915988191489521118462792214897799919932460424934665063480556278212855648883186463565554933995167641284819917464702670714454010701158886665759422531662269056810769193723397749901836364011813133943085151833431167884202532954890214276586478486515557944879780409352357527532376656192829350350034770721173084296411907919611644823311387395556575792261754325764210629989014040719466731857530945826905257703508890980017588419998508742436066959695832566485708538917282987402179876354473556237065650270885160602731144740551065062202282501101052759891682948306385554695717275283773550399109064293749539070701762849710708962705819094824076744715811341797223556403242193973508043510411066029884722098666353912838845483345789732548731222520960496575266057612286442236613709761633627502561994975551768752850409157923064104295660842451043348719030922185020901056554479205140434738626194597845889465738736183236696133631077465419639564891110958619088791343739765401556226793194693067000219284442939859425894736370369683884790311187798627520928942450497869688522996170284249265849858019525644773973523802980370869428082309452116022356665079458392801482208494230845819896453929556707815138986896944685065422531610830192249276337294574618283268194063410488055960023239980751741961201038656404218438613300969548514585945633565367270826566038166380143152123633552943614512674135990295192105167863398244427940657396205723036861325995952834922546062334946552825789369413243960182779833562482857117562942748702823571550370934983731139946302735836436964354807300154678174293513147709657513334001443833458040669675653396614456369815495285609561336188984622396901384566228963377793554288693958103264214042599429987028194022355649454975943475709915488617904367981311564830401230877659240924554643278598069790201305214663857288867624947142150215732724490345113971430290519655835426745594073308878102021220103722489715233243915595503511075592555200978270108823332220947104955230219978758312155431155508978662993106167308087423226384565585101262122001957459501483340296762527968500791576369936374217777774732479173867589491897698982161535807396899243979952250745971518705649732973226249861521097006651850353888205787583795246304783325663677899119229126292927908008413502291210575504258449829835008025670142539166338485104687989794538340071760515981178391359245694300051881614776684150559507094081587059752198967877248844363559440320702398178242233201806070645177981451052572885380570888718128511781250673398711271772409094191767317419531793522604413990630150379797790259366585821836123398138757291110431364386526713000449872071232631255530703774648320962640821247835066385811568323480799231584088394036942203655117404623901123452869389320390945970233019985906803282553405541893439016788010503002282626383414584155847081835855363397116352639306547171836574135356832351117631702214818475841500333265073085026170131509178253292522055011276252799616416755971998238198215430868998899324747508737399337531074141893102208893227296554064520081267518583052529378652859911393695516978775892883900324464229133892826175665216819619401311460435881539030613569152585191701572861113858302881971458208436613487920032471930152079545230150414176576470434219014181149229358411700958548586613591573450958591901828756188412286540655085019596801084699219307169129620500813486813258961518778295508510202372533641405985534029581166082037102274801963993522547569188463161740775461163651067010667098338545878647157470060385862836296503120466684292256798634905871517334760649358001204529626110749767027347038374599631318529403534883726798801732778663213891100432228117472656313009958678010691761151164033778313703268642358008026110924806446518581705367212340022994787903339663354957944318313636723582263363451681399909964331272003805024107385295904975468432275179726045784947996091977205595192499613214077775317807880325439685127048223381440055710041582160111953794978522024209914997618571422327142767205354647161151088048362006909361551548377274760993359041686852007028779326000430038033981944274226481464809774489657244436692913918678580176679331114407807972878132620283669568131200830632708551625495094371403660784012184630596762460853357122194479587304677142479312742673012532598991454938317249902687614881114784884760015756285586274193061069224036706745217700080343055288319639631298475488205365410010728131761809021685946823882625442067753268769189509157470455108006227537636701762639650643360133769338443091775139086418826338072929281669232501891259985635891461021492419493124584792496527644309196158621539362070138512304003286967655067171364579305528006924898430398949932520047690805471186404820312317092888387034799478030802025317308628282233811685837045250771652655286483364117097251556961071506758875395219069412718847051390050779373141888120874271107107040037468509752603372775893959894183942992580415902410544372682234755275252689189369896756557226930065555496428798216693803105317312425584230509318565337186866158222888654169526860601401270464495336341421438764055697753748007213347595411322092426600588045583105513721694422307717527345117139668204291943003185803538151381009764866036727225570602476783603985202426212097932493553956620553944228101451902885121419435729819106251122759764014824292385602128942873536597558712430037970713372917442418874222034735899491737519232010637260491339804869190834208273339881200974961534245077791257356410719256098642955605893303396742450741276696311170814503783046630647374701096679854184438211107144751873672410816113641436604428819972146141797347383789843636009971801955799500168182775204883907065878491085792712184947187143095695287222871158366735038842529066231823252366115520259733672770511520881304041581619691769607581237357654547100164167086406894079577035443278584412225946038036990297358304576206510743951937335885521495129088222593061488370541455726745340931606655937809485935441193005750982114055242447411703615695142802967830218985819447826098488050518083588846136084478442717933344692645312796521991704914237699638858668706321576860483692609673086283701919075482790240007750352506710209506909157096058832684774688653277468369775127317458755492629034889131217455563071910455186798162238797581253983685356093444611733249720184533476191480272097176347441276104020372829941646341747996010066966144035289073555510910731404715070073481012705459153467195787924454379253361596612576512509305043743925943403884492126148567715638490447778943727829192798450029983191909156431870388665061415619999328717028658640640201651421566559699665328601251078499130559203644712117517078696038846540670140700209771889472026823959325013759105468685405582675857670553611818165854083731799168383901008710833626903873357042125882284444298482529942404434807545810557122987864445548925274737172383357721956583817777121700311392892036245452717981923701543829458733930675900436929491359354459712902313476960006804904582396025331639733737243244151855861065258950117797141675182190200904428152680923226852294287510554876619175963906206217558022609760360779573033736305716506482844532483509449080033760987335592478801636904951827078666702678778535050884476093700617039833214422701495974632932714400723499270274927204535105730567211850907422043539291668535603564306835021534377849132129407475024789320740011201634342798802608602152121853397587572415736383145104304440549438982378138434159990545053981338497120734745899206014551627429583352290707168481478401875210897179932684764942931666808643185585028479914994729431524156391904751255366392957311809199722599024262492067577266337146670483763399294892134169268233792177664527413645268959136979388138568833349486658798035601157519803760086066414208089891268503427429407123309959116911435138220527684719284197095352361706544056101093002321700373095098751888214128645863675976452692556340939030770654519709916016017993210548810343332513755570077718139498629975146361106678199633461043293602498816364374145803146574627528444636611841281032600919785029492171148714923480828044443378802153688029355607807861340385343521497565493583683197948918847049118001153723801209727717641128447573247642497923828739053374955626541570146332435521317880737673943836186032066692406749620987751378588397997813582524387350794599416260695454867899330095338970302171814107176503735579628386718024184994307327684369069237807063168723267646807465137152031028624525753375755500518063961357714442805382795792473181156367897332014903248682629619643565956558043073242538113722013646216804956960982616595440960051845928524782205259539683504887244059342543492585498557099078717984780816981667201508993272173664742710656386148562693919320457687434010042703512138447697493544738450561131815390649512366623556475889492164313829957614492327097708537157069457860446353612801871570451114022533390215940538543704790283544295010307634304412196313149760941691280606035892366847361523272728177908394371105596983837501041029546854799339287778115133076627520892659704371462600985165441475685939708974654227186358097270035093285271876790475679138873023340052768705768417069008349700868577784189570545022254274231512790962961065325089136632045162413342444007620960265018821203178215318577565430632792841912407845572512865545165673795010656670828043007514814513269286557223876176174917919707018870284193906767410576339782104440935511074235947016153115411501618175501796138144023460766410898960680239181779159665962009813930220555107374600399590469644073132445170038846784939096534521719656487667104456484846484684080002064082055921321001880105487535216995722066252689011741672768279157790592257299654387584718502509289035893336295197906182817211299003149158814873409201838059678998059459454584029915237542945258527087887517487512930820903168680305059733128406406931703220817795376722144076980833091596847904141691180855565612325176935078589053972237321367343961690249350068634256356977778097503594528297429752741192520480732952372734827431132217961595445731400504807119316247981211294075178319347190589563801082891628464746582739989290755315255773465272938337844750297763630988902331243693588677288759152934346419816728466886838366207599552590469096862638981991588454253797362322050578263825493719914772031104408669591359849381915997635790315336572777170085370812741008464019972842995299820938733101798265902843318372419988855082145836976439539282905320254374753448918591336664354439461760415630269377419835522873746774629968084941008593835056880210703748224345480423438054861592802607652532009035068035007391508933002865218125716119801993385802165781375014386753443097813789042411968071007335921002254787111179112201059998425621494497942264954945195942578966164658836203948671617483553342680102415224567933116408156071944788669647354770184594216296406671980736570407290951067687283168941823170946254588946947691754925232529681923570401336028864048924017767616220325265828304490131140180292015100720269710868583184027251736747475149870678096133116367879006807342891292184520677439982780086558840030426945810727212548487601724877784744587479896570849123175628305551664574418684757242071243516098669947106527918666022776790328695673692877699040886449432793591523056990262246788974985593814405638726066369669481531803357119027738367215864742079372360942632142623268043874696089978258575137460043630214545558284332930667796713260071728018937759447188623804444360359467150492966785287099502866812307002159794185137354050961440067985997667808728334939245588364401079142137723254908101991129637464296155140329919387831358823737778830765492037379245507404608674060718769011613910525089222330749210694076171472726306550145011964104197144917480182075634289674692247489632913520328774349981232356798259698421774356423885023753663767837531604448262416330767586492898557442459171932953521447676798773783052707791977170721164701214713712208064494409347574173582439504338835921835572312019793851388487530261596960716576673086934755151006881351051003871793444869541648240321234940104410465122860534649866521669883796712945229303893277398670862017058660786481081914395747579718516911902289301230843796217081247822575082421546500766542635579765393646881509308173365033791272374914222171900695411257038579997368005533558598150321863315608322226568242144714689920694625096100676734624032144346681855412658862293255222952740917219909908354370881247555889586035855576972372652655848121592492819820609141079493311735322342455521217752044803094785821324172077885066909204559162071019145766109193516854806551257398183389075189404736268776010086222880501116583619097924019938109066374676859870973184625450170040166565663813597444484755897814413579968595884212016669159238795610155577067505590029062341708650560721032972808058006190946482345891432116478704240081913716372058605843890051538178798107553342959630018528522618082445082364774063318515414790870490655751281074872572590108667177370585203704895250206574391927316772268033044751165362427634748598547574844265540455218438398958193234289522377951345294943750905429279959056626467641783217591181195901255744116448375044918611874421243605346895956737650728021904226786076188919445316156371100123263415748053591159291986138221996827453350275875077163525781272008387762063906035484643201378973801801762753643772246777366311002529156275203623726410920493762337648871307565769037655594569211773977089092954266185636374840461105798944800206722176806760989428518891820170055143106332031299618522483604708116359297979704015592252722964581201680246589054502271439953917508460919722231922973788550566085330519901133659441786879638238518260207851303653225895486800956898374285193759984393173531483085876381710759452342348939934350458987832328251131088612061920637430716929891824307707898676954630636686289510199079008050921691975296742123391760119195588883563233594513619655853256757481873232357402145285851440566575604454333163133560217256247559118917732963387819488715715646998898827065320745983813724715549009347823679172577932863177241209862228055277108343374963104139456251792910503117829783816616696711775666581768014662651605558616665502839275593223791268551184221330825141514442533194850869641503667738205966693132607985977637653654389656170666648792529529248258686560506563060192634983694142918405489046348928186955577702169395281187724183905534081620337445992914912886115809381915948075047873059222425444407452533339750866929416015372314821473191711384499428722670890918455636653944451011337587781605533649049020176323141791951679705271614370472311041730535211950996968619764835557759896967488946102798352683964729572602422586857089023801487861841669698547898561889080446752199622932204453435780400265463311679634976811271985531829386575986865497695002494698960495070234280450009814018693553354147164999050507038147238733266031039694156745458725801240586545758207762867885167143764645172605338151589256458255703564357349673190610319897182639989708162028039867494433142957668487485361317469056743813978592887838649663482529113934612734976387225758430891248508015730139870918166220519087608119865221685870159397455628665866751835807530243788945492845125083588363270084032015614916658516655769069873851109974037295259057684313155674307492340567049258806623758222098088978577699694475765014110026403427964315732449551673305056464950345812504112736403259754083213610501049315128082734071848348328573979719867017357857453937688825110828036176681735616889544750805804710763193035415869886379413164856366823456972997111652248157494650326987314083710503818260504283783533803306773799840924227548535807318802264269823485347977504362205908021012080102005965741003653345880169324159139826035784952147120461684539981339338017624701752304313952687395405326275422746519959076025654546536825152998523180500850193301312772965817800395588743071105096366189761102622997452881828500614037119646899985463951849334958993815190425601881912493620929393736796235885119450806905473006056261895198888643799717112512744562110221963614769099525296045447482996235680499829582328635361934526262191601815581015765709410765488740610786411309956157639260945275181137761436890980532110414140501763418967829079144329783759552293638966174996141117223389636800032147940786504589492524433139475496463562110171385816011682927386525217377712920934541019639818634408721264475458172926467049637746334440910615943483120840270832096226728905628798400963239022166375183131400233317891300913280524402421661295672865248363523085756867646329335986455333865775909659643881797540234186270321985135593859819150062111863276940740767987707727146585183801808276791159930356174167118328041816525934713535949302956870661839429648441254987791254880672565704080529401984986432764792924552335233958516011101871136550227968694743063309568784066458283206061904655139291528268740664344657332785774906484157334171469302661621827930025017931562765010850180056721629633641867159945025076641982932472966690450432779488837800875779147943749628665987153999047495285859003788611191393085725479678598687238432285656952348678956546132742804183023952941534570508069685861827475595624682241304089730045168209960091998268983547038353370545043637495097101928201724319168610325596316198228477796418989241746185067437066864087506896864290280093345366423034923295372686243794492864184784594563789652492508015874552381135742593041084869105022389024041316550799492131112280597642131519175807490215105275049315172299658289603646043614937678046143256355066351478235726227479861497685356689693030746825395497753213230146952430838218732206288924256753016574113663011144328773767847473365882534304245130381175337523694639679628510590583112179758315194365567322634366312685342834652473274989225253342417532592309506829990459961056271508354885471237212231596970922604887389947546276494558551533103615488498511889974049005230953793045727006448941360680042272644302910216290638541239615804708952411957560141625019255948718392771985135485460300394199876631924554079692383863198564218196476553396396290567037009099232196038451570175398485832975663875688817207698382702566066041381561888356164281504720909784517079029359401154945080794757092790208202494361194005139970266798941477753251754667676163815834635651828896840723718680699420673204974062942505109627464338739163943758322260129279160004346613599788971973969186313449823421766453374658053244846192703282056324556312360570836247846582006413908372752680273044742570187254674915809818491120919545049844420571251151226949777426242332812609734938462828316395980391052918142968679124635877520780352187993393963500662085250498444142319033862490862150281428043299873260392552525815951002712869787046239345963762495264997094056522371281006451432526180016361177944453343946335608776125755622221220214424701002280923459275060794185199496795220543131284043906530608792599738815559978196786626563390761322410159394038557531666413084632599988012624530352369648241864748000469086966895429451638324467710025508053617354595190811293741320242579183479214202805094748566274981283338657971288107518996761779506979410843599229217374992880992390090021007318425502831678191530209493743487609391395088547723722150947247735735516048558195615650527988067653547381896668714561258996167571527828562719152635193635476422768490461796780528913098603229939300147461558534572471645181174438878671767696037220377670578150917053712985574633577903525436215585022781548229032043113392514247996386302322211065673464896377608455322435946375294548812611702447956339341128805426029990935876958706205468562099045797166366143149800081366850295860975029452857008338247468981900095712726160153883454533989330744853783809246922818688346841441206858034658903007324349407138815862204079942275468456169292480640639972432400940853977528074952115209573157037580551963511765727946297936281367724859817078886961841625853199810478109388165213259236673080204602865472866316318985935439935455517421083282123529768465717062791426784501539309851220763602775448814114625121214672455019522171396371203517241837585054048683279328499427003461125810191717808698728898116979902476707300257835175461320444729153644836750139434215646639244389353531404003020957877330022871593146554649892828795473598523123729694416696392345114456545827029741774744367458365845134887762423719266990343533389709472469926853454572292722602362941765129282674121712916443842262262449631742448396961135933317778793345428924459891645995241643565737188174822708835253162675590264303465555811672702182145311371609666757325720365493095194626155843254359554806283180051904100863651782139441971646766567524907249212954364875843653211063473713121207541901107174552823284694062346326263113385434595359257370186531359029328294991028410793932533340199830231621602364781451202365308817232628753251160507941765746262653226298156214058937642038060760314827336355230277166277813544322381013693202327228831486271020326895237594173188686809977142025833390139780264828375724228313911770696513796084939271806255875697280294855426309399358732253786281524917616343707388108966489293910809353437842061933696859530120252844606348817710894196406589614718536355955074899679265081045481745806475749884981970929304425665482639835568847903647207989820196286237009054172688828624271905130409126536615746722031406972875678718999976034282853827942467370381744766343008572674157960861171962865252001236983326599034252826635634026012453154648981065237567196334839882300556649573975775836346317308235203391624373255040856368274635906383612954065156076100292872381205621116249622509068574685902490693002996523145225142082525211379081634413524587191380643387181333579051155718390995887700509888511993255203399765005472162665670431591512592705202033778657733559581143974402399383192941861004573278685288554239572880493668591398778695264508224766010902435569446649447930669585582639129139036318218727044071418729547091359460321643557607534988014058034801586968969828940215734467151893053149143892246150335764984477235684314081208545060475504348321141392894976132127564992034131949844223081281658603390446190207179382401999401188332167554358716709857820338052427544865199911205150520366433309295770475130107935357561801549007098522141343858938658884184956997185948920854086015742993169265784206548322914754267425922266899157713373078203380206499702665886750574685337940148829674872798398042729413546820034094477940934053345225318407020573432465594509388628277326939606551413743991067992675815365309828668685055153358321472665431182354354327934648753774677229158904815389030061686580910135386181208414158902021298232151856985358028668263039448312171725406230026380730037811331787103388463339077096574995807181650130349099364978255968360259359441168979882607217901592411664549770067490368922358940817645535436535491785002347644656782125523537973571409750533742640967386849933069717004653594620480121897183944644541788450686076429206641583068578957255462608611197559832713446297773785269290251560643635486344811822119210280701695577430309722559440027647884692128286495346202066882549066878171078196817804922617758677372314305233455569270651360859767797469352460927735739546368615708322253398329729657679133841626071006361210581599524026186292856423464453427137971489404448971651072045273582113735536639654605903496595498762840670937185309395849433567851471867135896960456977077661463787750138032588710221193109848721642742685987954285580681351100314244918615316586705367711398130926195742024982109943697963546993566600793258085816411262508773970816025739298521631302137720588295881066077829685975961681238289637954369621570791844890100244386795782454418448925909470274484618881504112678552902013528733236634973044677604870185645748499281375826073459890280937725717881761374703364439680207362775227421212812793436581570570233347319689443934115341347206195107284095812857828547433033867384329464748936960005971115006165822516131785643141279060616861794153217214686873415983021571243973703052521308497075035454607027113589320394029374393917811135223603740190657988619502656269049606224992354344575067820387305859368495684421684476561117030976731218181790317975644428488832799273727194268874589152908427677293132965488121596199754681837328116750947172995797528171503034602919647896158711780745703819351121485220340976440156032460658563327057244848054668533335881485566458568620984360636551156738228527729218226776341574721601990464844116598062347714944416017920936455295892999223371769353007387692042753512932614562344975613150277003709973806877204872411425263588450426193185810011628888122349542916574563295691843541058267919177352579198699934496955813069896803667933961820706596081828666722448879777463899566459015985894745948876488904893626412241753354782340574109882612876958247148116028894583385670634178926458206828199452879641158253589298371893978004960420261395895904573416788423912038213994180901122324455700646098061404350175504527446479981590395715520792449245624200352648927999108032349687534031977224812510651930536954618369900634114357305730991705295109562445744537232026110195195415094462309573776011270022686449776226543611318752625802283602340289160473287586212240352147293882872698470409395553370423725027412627235819035822556393947537325309861297633672650040042329407917120330977426025453079721385934900589448720959157052276766974460240372432574859514214722050205122135594157063152587244769823659968452818208288048281696509043521894487288369143852454192719101792696298986778676324163172388021609929147279163059380912331153877832140313229181395021412264710666031143325536336471768264363785062024559091572601584239186680670011249794675262876864755381368401333909569599608623477200441764700027855741780371947248441963308947431782883987889107048250966536996027699813901546402983139547806360248309949460470829549304275534866576055821140219647094692688821521314293111877252294459195277387100769114740438938103515985388551157020848466782447115627518243485501708762578571536435426393678491221647417333944602005137713884330068075127591161255112984421290332698017449991542741485236413034565790507819763830044541239620675736228191124631875601036023755838050747826009291694066579536752747890049975294050255255589743218896496504874541751591284154477597785882873193042707479700355502429757426695238484155336892231973361510408031815291576656236657519352054672854928562070969321256757787813391771686600377935769366983816625996337678749074646885396502603282076323016223518343106183216367611059652651586123034381179727078715162986175950468125583960803395772606714264614318118719383620734535989739721498207752728076462819229444205427097869764999065559479465345879747853480051485002047996734863033408947965669521115884486510859505466727193877060071479005503945598217116311181514709150116639047010446038052360015799501844262889473906665989266247795787337768524717754882055014924570257591939583480741806681546523780095752014652749548689694917637311093201053868193471490484117007654189243848452344561935681682812658605663569973383736042016723649831475245863277005115873119605658563266030099173592267539323199738265217811512363250301182136444077638068316564115606306299099578541907217024367085874623881034823998872850733314857563062059907565544095228945330687570806054103559882823836107740999771991276501663448442442055245711320928651085074669847405959791348694920593424913526518365422060559129584732857154441765797096562936342385266135105840402080327270601768970316427438778786942124857794387872785732966442486451891752194516774748811934268186775951535962728431274214810072824223529680456535325820052653280098800454824533408940292892997967583873073732451118143803470757456207706451227754195213028356713640584777254466270996483542167268609875916927132710443510191144235897797163929528014889819576312829102926758825200326686902839117899906597788703481614086162227265171233367220788980961175407422491574811960920717076716679941062952210705245969395353931458067112999664651625108130749324477425334628587978601316624638306934478268004759166888232179590665951506243787423382566969987088370994773626758348495582551821992291837361934636967089950410098031066153175786488785463877354175607089063232210328488150121186184992992141978275863204271415560196129906357481551729802365240722793100169960870856690525681040368667987302086347016656769575336987713404643110056902724203661102460596421516175172284635882989063485201174829810590664899526966034554428477732930777943069248979743706984116254063012539247851266570566574160609637189022209599453065088427208955774683636548851580299814439221107336851265210623009259019277658691209456950294576137111516183673238942342379839381259695639775378748577384687789268334640282037330604001810910817029970861046360294069347459110989376912328553343617461329742931632342540041527434268647316578773212399484364259937061710192568352855619175211102651816193271472195137065516422156375786502792274559297450469216540704735507392150239493480548811671851909155328111995925626317344330080301221337628790823442791692136564220738038203214479266408632895170259785792927418734009736203086478336452152309775254068147904887915043461965804991665349142907145325704618176997257019174534690195634541031283240027808519395606293790228858809145269148605190192351848642476601982182000919949676479602154155951740922106538662465144419495094048928997588721762834262557875657711649675563089703088349756175125810325965607111906263058617534832180455550618055372747060250185626097487580042340291183833494310125206371259000419154367177683597460844902720819004232367232566947265043275737752941539044238743402938452518225297887740866389995157161712363180246603523291406756510103813799387613559628751347942705299128216948666725743639437635197347925253358162280088677513044374044765636156971898814022840483196752013425877995120381687771135996786262211104240625932769833570059958607788993360117243926273439552364499047605843063497596083017391707602580927374440552142073285378597886825419096284160088525981658557297787769438027972306487633123904241993886678829955450836564003721697246760765539068336053002321763232108996784628867746140691356499828143526181923128585831098689194195209701234382243084702332743953927995489913722520066398424271258190937217906731025000269505505217019064707686591701635359626413300723154491752858886952284386767188278095606489906628276370128516476652552811675922566529524723350944375856320433462052174167357296154681852114747630749179644716515690681159159499502219483619316835631841866616187683722054796738724244029384012184215004787304976621019514293034157879098409206325791686107154269643924474227002212275361710199593460680646940961414443842868559977949872381556658180268856579115701129223838435101999223588390948872276139302159221565546781597753816063073578958842732688438452658251183923355364081420102483639713685656642779749208828485988688653343919504682289520994941685786249041594023253754891366627684110229935216016862569162669808138967136765021323108291255331417515323211050157450683806077022529615680341109087419965116039876345732665616205266639993276458907439268980489752370422581723035184742370726898969141863028172363673355724967225440882279691195951016990582035822707827716476939784484062896795635072996304593427678693105869465327568546337498136263767087873880925333150599235334879850464602989894171489284456465867966672538211664281292710454171470991188513160680609431899341151959905709967832643700607036707988429050017459710102725169076187682729229080093537301566394379844225954145423827753585157956769330057278226416057490751116904872003243355306873252842904276033540989997770762411726072387308466800071887073256608229312471040191921328199817937399936616874746458329159866192049168455503719282364970580505034377523910399895847646381096095052367082650071092977508606803372667977949232574919564447698482802230128728936439728333701961986005206844067421074428918597337145138698663357528697955648290682505338737598986958278576086213883315363278677686379428128999139379355672490467672818049835452244619036226548568153434125632210572968394913684664604925058812142499933664285478816380435842669771246132186503227597740988054021359581387880498479372345784580960387236867028877982649587730376905811455946929549125821604325441954758798469481195965878234418425619230606214313696620673402836135549883812856045088467980273634174931587318087758854656128530949259466180842140762300128275689130636375117742128082975920250122626836419510499626185509731475441224807288876427920228221085876559815358854564206238098454203958071672993887158508424986500630819270719073272542346184043856560536801792590142848905627634362552416046185870195961750386397812051519147051563961734637232419360167696771936100964113740451904792794841319344303643082945164917634308653044951868602837535087361599525849140344098526821287696471538393589864592597066752515163665636806519613024098430793174051409004528922466226666927469951255547983071376513520084174009849212402761875505089415061236772277258735600002360597157399803847319503753827528357113558770579281881838518340854571804276172541421974224493098713678364068093018054210403004948413834075236978056761330058141476639595389197981588774754872515333471879604083863365637530731048852223146706747078684075125986459782448944233674067525743436653845248753559080418420907335508821252805796686817272020009125527143262094041162751984899855596004556576269376824552773788289777809237415810886786044823756882057450838260814838434377546830583626070872774840209906382387824376566741519572770208665747145912178246787230184191346055112682248002595618896614679522508568443688871766714307485187994601340835907572813730967104342183110919291085147409402416604427305629917005264948067922841168454145227037168134713382785716412073914977100777214243297287841936874732979319982670260004989312577851113943789978508193935075869283980067320632971581535123437027015671685098775213287441002908758691058375160313025417928729234414463066747238560590655563428638316253002612164466772084833219079232725855439133714481663509069361822376371920860125931874038585742492058849752808384853218381672006303809498117899327823508795154937625063154861349733680463998343662474993407699790342204995978957354572883973288233682992996841312876535341523894323533912806492100486129701058019574686837055426328838673197399125786185621088751105026363871883040346245640561036529027689791227619572224140614941680978108634557574857476952728579831496256978508623845555188216806720003907258566651897062386892086971129788342230638832297782920245240422519551901341770766440936417952168726625680844035421593155440752862286637877380333294570077710525589977309319623240984184017650905758398880222205643293114321529971409726303779582885863496078747213667297364964705645665436509909693404005115113002875989338372137359173053624961979538749286949260579800041343720713646782921102238611768146378793055416524404094376748749105679679665703898678276434313700447045310286310648709843205388156663360952579496171566523850940943217851910346440247899536211249666869815555936525992899969842329181081028431724374970611485550931443829953566753976382966414743388826037221064448565802947964657246365745872856140511379874534894096859707344192205831644267860605430368481221906655416363208214112804932137071508430578050732892956009985307265652471158469091813361830073087608355318654663103620047552541747579223428209408603617606217833651640176491561120845927104868663923862150666602321373919245013825624344656945759563709802229539888981245545180380703284950098633437565204490261084097668419480189815924997598169294033073837456064946984276124099233281330261147075742064928982819465181281567082388120311461006185693247806420280009328884220931116931544471209633751955963887223584938932506145909616016547382107208788374403209629234194635360586533477921752040268058973651767282358276939778478653318166937368275898214613613756485080325094481204194492831226451433650751651296694282046860449394757320311526736676013871059406340816856331584237915515432503320729282619202844036954767909347431626795480372772084793626823364951656839330297991346622417737833713909232088031534833183198081853170199650303959638060799077311230548691396976687869405243222415823621239109062176030717532469785176121565985504513228112139588410704734069841695553946438118911996500419405126293639997805449398692132426062818260020610459362771685110432287521122842528783597306396515654384665288888490022766255533926984653483266010975348772447993390166143204174537257363925722092374006330445064329969625229635940727101506521251174743918694560528631437172589552723869200514305952597270100962147649411110581176526037802344139112758760658910211307973069897872093680255982752566960689987587060552007731509305819232479715714467178977315538384771929103822109065131978889455835525725043887436695022471321869481443537133683263268459660078165705587816831147502075888127159491147682984900458683439578203369014305984533207739998388119384401819309196432774690633699772044033906041036955745653857682971971354752520011267065442134485212820188509697610462963121641033445041552528642014829577202904830826588395342950582330916505590349174296680670107936840850517473309607363345298350096795889147056028333661008289623291576270925609123395065717726098427971922709324096926899292665320169644564143001765042244174063073675396312031387162161885904631140461008737326592499650829933022034193308326362881878825583989069704327709931021997890079959095076392384965389885794193331604054972141665338019598038823317315926089839235253730959078572629292986372738511328566731139117308764546775214800042480928395092871678335125849016046461580786164862350464081769508048744947613155105119103009262153381161245978509104012543825281113654318650799500685605903122959072184087081642983405526882496542862670704280486988312952109306784676665542118304188167030090742097300307733067947845454510481543506136899654625273389362143751405326253810466718919153966015438752570371220578120742446981970363225915027257900724578994256453627638908125382583456176625734134259318974755702375652398543937371983843481541923990517174983791842326737049098648779300154357091780871514098026824870172135680323525490710325286091890886772826156989234183817162112470081518048862685947008878605683840232508019889510541777037329300255108755339288339027346950240199320118344445045855552012436495732247078060329449024824505010146421740508090569139311111456186769348503145022957725663861446225455217015781466120602477370215215577796679117100359404787281502419704362632408033245980242561980845560214757090157010667357938362062873815080626091835776316030501589647891547325600724902073710908662800564941170600853814882488823388616568128650760548776118329157337311647473830508368298796299143348327397624981655762022256486613522608809971457337013066395774117217034446985319042054481035347239836513793478110212273543302891266060521628953418616495044067631467846925370019470337954007962156568292350452659797628552810810597826144724352169394975011895941324520970112417196713350466529851384887493623136714092221369577802102147708585390608208521443148083590628051571300408111546529613821102691990836814036928766834026326438647008608572117030658755083541549446835769329299640468752418995974007690362421633428935449985877131710810263505043606713111163903894855781807988049141734914870765490245652025063487421019584065855209511551873186970406980322745697074610175069900567012974353101922503564522495950339537289158863941126590310339408687287818766053396716145526444057837272787388519678655951617246417647356370016552210739262682216322316518785289375566885917879654422929625284946861409970808508600533711491752587241680850275012214075339503684748111284737860120280707329101492851401249360734380701629387095106019199785955747737618805348925557608606817148379189350733794797086877675590068978031604271580386218353127313609075988074292038904559486932070503122534669616103148105118844385840818574130059671141119231086257478354494451233827900000566861995892282784567273325251837400753261843689155893867847741658089537079191369239621113783865195933296539284509563531567147995606337922402121842763422695886353085774062769106980741639883669890859324669221115570181586202111006669888961557224583265789452005984436231955927820731024752227323422676659181142003582693083548248067747164026014643860947766756003687815308262475507654199609321415999903399824146613797667601693656581117622555523904212173989258756016519058237787245250289371645246997805424901411665326491283352194696242945844901119261404288920116186177645470637817006291282985871586650217825912926038981944259015134936326862957172868769900976890668144598556071800677592869351724573274517852279380837936343702391580206879766622513767666591720585205268030374374690514141252281439162765435025163859247355026210305658456917397106769301174207809392688652759830197161572332580335228932966293953283997472394595253607346334182112324631245097582750457353101722477134234981438841417693638471754170074841465834121951811129719842131615424034774435715719537662398538482677678648163657513732408453190345159600664286186713095974162846158808100758406655549912238433257694147871140457817260452522534397309056541046571180695698460850021525314011348552707979613633036917416987893819259468079042692858201535081895837613325042796154467495674378944262731390890247196444319686411275854571194592110554540283584924745682227316825703302133777148327610496747550237823407085676639991900398460705299175985936632711217385104576472427478536865176618092301791772160960792466568883980042060695763421153189762927668992481176927494150795705803111231800084780373989914940638318384303284738452516571694114028964120756484809624400781372611065214775384416348446174697372912319970786119842492811760356308825195914649245763469298049937628245016384508233247780450537019434249995127237705835790788446252957993886870988981647357613533074615920685302245281680567972171008042708324765418478053895511743145789092819037455552442118114382884045976010206426887779472052955474999429810925838166365422372750767383793607941646300865845239388835868646393717156127338897533971503436870413649634021869062752037294601338116083000234212175416221754802810500128777952215407756774875535399282369973342784698514728610060004637402005946734204630229497705619637937020810463083082955059686774862900900490213517256660362008342680818246110054774404007341788522165564616439938233755094866767307927609112182243433133112073708372729191663037397561814631183905766869063186715721844370670033237164882662049431337086597389319173667977001944421202243887356536701612732629335369968973570088421970462389089826109686014229588706829820232608112775578059548634809121281195452776323752455712633063423319021800107049473080361581060106378224834905639177936937061377442857313513993512730818675662111814803816416223275197384562219312241577090499127642861065296644374794051260561102389965476377016034663434123258771832073521788405926341258000761180359483059547009102272339563825928080917632483494257162505956973474057417010183603798615383644543453472070418959559225785746678572366814678678000418728020236380381238220637957498534115906394213993548006590082973176237084148675135155143605562177814843261600136285822074901867032909656299457998460927711858258836790757268354137946864803335051081415133532776555380108520428126089581484935807992348355035492575315509482526540810579746217631699293452147141862782096850582822778782772692611996464538161304375401813140109868984347142993489618161508204346420055058358654229722619581630552264429025052725943317747495307901318314415632521851303970138802428300942038567406719162345770823439966551167210921965334388333392140314904017974946017443621087903650980523685492401752325475307370011223592927640572121363065745167027292550641958161264668404244484783167493212321471390962267869530866875671643241596257226814220022887008575798173235446485444213822414280986987526196152017651338404008403776307098251414931938359800450467526954044659489150496265034742703349889093514043565821657786179763715182041475974968656462912337830167774754052631091115533679017990456155387127738063453482888242501140342732288072760289606926466169412045722247392574354430054644681084309964844621736615425374501645558286109780056470227827742000498968599837782544313842141843018579926609655510061258211665672566840320250661245189540056854680058139323148139158458283614790511255851768330390762507189338113278874169352075082317015696446558906391063078603443866485625670746691363309630786370452846263040387384674378028302369763154447130957711617759737081306643903304761061117620556741981383988052303833801713262135157520331879542177982604842904943856029373614094111217364153667216051900628794240297131709038372470652721981079639018936365038471217319302969409761987884614888316187536800005478601459766603816636602772418905205269793532850501878223730956129070540419311654888559147568490676296406238466189595324131816014607871973463933299200641488608099797086091663051399488926088365696331137464665733524937425898732609141957389374527529226045391682091860273090146920457583108923088832022080791372140414301104661088023906115359028404059236060554378313184109562974325307089559268234591953309764827096836842104628995684386978805242456451896150331106033133045158814797423280104281211018882186285897207350886739975194639794070296362437092877587950480192614649179450234853897959304184983897607588580667815203104380166176691554905710076172455317643968993460188866288096408065616259524610875902509953921954564480804008902782728047808284806204869965585200298783541321615304121572143911052353462586658343306038122311778614978860967783170517361353463128137325370660723054937515818850149842267524337779294614102878172409170328732494651846943409224792748311839510182659382196788616624729684770019304777352147196312737998372515325138737473297859044362883510499543442460355326215677565849944203475014825401781769064403131769164615284084002176522991760959042494105580970579719851677178957687575805089778851362048113789883568721031935301379945200188308345767776704295773550336098101830032235664494534097672369953933230754962978856179106982950855414445372265433770905996012584824806848956691809344879895029386770128555224932975410650376168159094206088832797830288251645950702025820762830628184204676828762671663218511193252741940186829137251613968074378885358219128168353046340382177320396367744349250067045394330598713745420661602362489296302919639443049440295399051208830229926963045248780414462432082191684301201478412877762644219655974890766748262329030620407788286012634878071951123898512031412229770500039102434947303807869931825525222050091453590483283757119613812658640028410410844418311995856935038042322374545724473789729028094841922795863696936804743393802294771301115712740139317814815596525433880755653881410904132085787573304556098631349181312697959196924162916520654345701033168145505113012285962906643995149957794462541035063588824736597089539296426838884679614097028543811663426431459261049707488767175272208925021780545256369782219062835506931583477822712603241727264089946322759876789313632303122444726750369883131631854164338739755567034296093346098782885583033166521670701913968856557725841587157578271092414336875393599679522545865718365993863271290604746513769173132752793863625541114306614064405581415497773343010287453872890588011021378702602989961612741577508079809402904065255032815484730225294458638281742987559878227682925089263824529230402873718467861348531112356670492601921759911191941000253214131918354097283273323893718646035596882635201783012356228072587810316423857279821957448487635152550858851758122779416587544344779218119310628337236995215061862169200834695006852781280353272298110049018825894518495331963839113058778466296838325727258026803751815123819856014963934507336474844487960796792130809352701466433325569945696414104082869001973764471478510625738666073833359592984709464378487653161859002998414018043186039297982937709932308936061698640016839027873416108766718036079188872739010320937087732824467879802513612078289339799437787207547613000484044105330842106239684504016129952325178345704424546499054324783859924608357557381353004224841670729501938949218854418788571836714645720982308426909574459281692390380641251273813513798088050851661654521002446267326122935596453995528492766306934140761378011537689150944400042501039850068501558624233905339665390423218806070067834277690606497214446243865907405446482169738344679133362976159012937895391432455730467843077306475196707753502760755615527446271712862337245652234252018074233678638333853254781409462117371086282821694034167760437795352276840690191485636190393187426980361592023826024223303533133531672414365516341739976119234463868087398308372186710304697762938736887601894283340499273609176925554207772464403501143778930960093680209778641329034516916602651213608500242190099892385579552139168212432455554138466736562408387738654921633795153592614589411708898797029034717400697357883143620130910783613253420915185610440457169340038050342152642173514395787463300344109299501763745386462912882597876194324821495542513891367589247713326061472864963176116708101662398853573940402283634348581820689039949677040222320771402906312066191817699699661274411617547410352289870429242591504714308552281684712308455253453154828070202801421153517866709470057190115760949836074394625119052636495686568892807208889512095324382885764038924295958553845210716156440600651924252102023414543690094497939383086215598003422788432747231982307746888621134862280343670291213259193306540079492962341253263485855894020789717414275409334535736549715308173124168310818980095934703171577173653463204298619832823840642785902568159198096794394423299690082750108646202881327106078578141887618850185885272753670815969053497625623010215165698696933164990926089040479331378024198596275128955556318382737757826294384772109345782853052764943750955413971266148866902356070108626802618124928818238381646938808660418998292977934978100717637269328480969145266876168682731584253383970114052778354345753036993894126013148930377679602895100151128931523448146973196853580164957962556974874269423558829529136966731789909049210468865100894615387670999381521056205619037025924035953985289702879840299956338701631435389155399429304094717132791508146981809754268099122248985761160195189743419173663612622868377442246579821617448700311617387315973306133432463833673876572250661131434471571137002487557670829516742527538471775304032568112912738371267986287257357989719447720592444723196138740644530809558644004191271216206883313650472062322288857697477346597274581557815513502311957229350010322493201135687225855513386413079134216331601440390511821054645630923125703010969866685540282605355469671995096476127307658883057505006434719465547533838853663958110902694576874598209296693710206166579113549315250653803567114735909397416681031645931920400900112599300470250367712064024585316767459744206837222854312255059246830342214249082962191810640162465139608739174908395469525041558380596484091321260135640255665939692434864236944700177758695807346446281351740510152353874502724311446217765269020547489241275515645537669480626122730731105350071748502221937663275100283457366375777952658275243602707161384626547580408008937847800399416412775788592360004305404201656996942500588343489082943654698301479620888101888815757332442926177731685383729028392547167639486821790007330719218978169965729554858046838226456047683285930544122833496443167339224228951753546867764820602591979394873758281614585308708772806783159537224859816547003078386247825625673988527717881749006564696662501772787422610362098780981591800730548632017664706391584811634218462557614297057312629570031997781667604085781431562269273759077386750146269370733370562683664447684791919467601203975890607055007078917726418067200297604148217487383191437804187227477804279456737564905729073238219302802445651129385252649882887787145102769748433323546117823385810069492195921586713382548849547246035583502924254076540047137594674080720888880475737558024919784698483978201134229151272188682483847832723560200205440339005520822115772599402786900983802268375581300972155012906824474374520842655280853847810613361541408178366798211510645556639909127808053121023952343006056817428528808804615806169802753041953958181611677479998647439090126793011355260495697315460540141803383907113329074107621979011827138277558487476130968904190098624772575558030891245997664106129897296340384806403731702661520718412223562282546439299826120085128007339778307782126830463936269878307176689660731416939280996380492590386918202730715728865801484690738737222937720812827716822979585207856642141945641536198220084442108402607721043323353117056016211921811497185335806914663938612115427722146911937673060284451201905872387481030832431030371821651905562283656786562705034494147456820595807075575167228783914144412250674814854302336610242999548738801392224784161892934179306494915203975427911450403134499470006133582942862250450129528231549127184544263495292651133555067267756266410765316412683761486570242285940753586911253771301480459073855675882805233179362217654596956960834361650792875377901780863430094304729197917882243976814463333159354391226473689135041530250487102259602328686260614949813240296562590880405248762545139235623070281297712453199219390667616449875708348302355625075789678070881515123353554479904012202375353415494681684520212152149726048850947059943123284424837479298241016694989298344864292826807234711033486578536998776850764073462493874380631650374740582903488209007605894778782910193493558670557875986968215389483330130805654974067833899201647062441019298299515030430262275350897772213951617660560709399191090784231375868855195782296950776110831719055434472539243335948970879389467692878790980401237236752237174362641656390751300428583691118301870489865234466130451524701228092375340456621044491662938154730396394516965242194397605603130648617187532229388106217293794567298540519697378234255373494465934043661122762185225395217226327236212099952130042458563237167254959403757545420019163271482267194872786553405157898528076451067522026143605548312116333096256083853926078760795334580025275449173065710763948182540028543997459261852265984268038515117285984191958186380583992191483785892949946929962921494609192609685202545915090050401318666011063326859665258492432586170902976572014504970659297778589077636599536401924959838166067209484583127481030409690235642846628996790412464914275589167468355535081925938759321839886410332438877429474286184979955441187208906020578868199659261201493471313806296502306653518092475298122810315456688850758786155313026788596443907199059096668420878461209675836616059513081270479079083384667296972723067341930513977043288279907055910089404712828680523543100438997449180017937871057363857630743015177946180210165588340959267195486507220238321143667517688220886672094317864364543432270474984868003966651255724226386337849746229527990189957363276774846175767956000014023468662394008787347364085860188632580180101384139505623671103717337458281213621071380556626418038421677542572983415791079828550981905527058631094921086506739568052354201167183134946923979913149610614066179976935930369159715724789720476889608406524242805343590448487542375532623104050380459373621625567225012280346826079225398440555189276189108501622656940606898224189512047837025286880781133739502581860521560133502901840044111085783733576374477834897520931619744740847080721296585616978074069114305913034726345723728547852207685955651799169914887807851109830515281732951490010869482342723244168646714767373282030336957591658170054887927531196004166505120093399965319333316436292922552688086177502502715690790664780293157954006684662988595862750864795415973579411701515250255759064891530088211661562048214628509174668866880391054547193148867505410089867209963959918518757464270524405725827147699932118286434261249784317227309301863746548497546613401174849998206264311059680077501693746678665835428306959972753626771748614331924937386534682613670960608316119170391183398587293509893172693437996484938609080351687653067579624536953219675114338501105218500831319591357806963817547912093593344116005219624679413825745408986314695217976978139397181112064414565127467155943997776728625248915019854454913249368625627932305408261469837626481593984380813300622931683341518993287174166056629472126419046716029984659477003412992643791882699723889491597763226488614684101495034799417570751724200734438037483088633257119804419548860250766483993510129907420907920219712525398435072441506358953831665073329710632815777973994313396772482594632156788167783085670877306020865590808372597012482239307127500569019638624013146690319387643462956406076303179028216949199028814833028725208580791853181903065266439166908256418800611049545033299800480714347778492859392345110389042622701344298750103301801869337851713161151941040432615572682544836616006974638827469563889971902393872525247348588577245549311972862454213086657749696458767583207063463257934676652462578199528429291047887497806530503549018698119120950758789200765183850369294636434662516272414220682436674145485370742498917848926101322218303555980564195741458859541496588695958978934763557802679590962730533485564878704052717353383666032167777021338547424113618524142146302242946522358405933738189429668347115236871927914512583443663541846697412170799345743589698401189136159807354616301720955044832729956989911137048569767166944926612340962311780884449830799805017981522887873810814065370397426212914836220231612802594551901816415475178988474990669613507196856221619198764888241821181369205643058212502025410863961942744256814487452738584530172786874830145121734884561371045476661896753279795272278194332383014450765243364797501016105897230165123849525027921291904713532212264341331170187931126670719830748177329044175647808822936473305648584202360736305328395677867438890672679219853878484105706954712969298216068759460716753899126958965936444557344001154552438835719812404926962651895699958696155235602472664155066317046217904053611439346370667499812693785512573696830365043884031830837390216551152049189694916376775798468574374834315040995475241407005550859834428969557464092711161964626871266677639538457525507802174067829684065335194719950471276231753192226920006012125069860414911365893063341580111191148013296260132734833907763555556552368288560011282595260453086076502268069157277991627200766122238137331229638904677228552054245490681218132609296927041604149740334696385760811119384855587445883766059659854722151553228182645957784970948429800542641937446929897346915208774686333293138150407666880126990665895233800005129884513005260490102406345972857294960226209328364015664199061217658269341890529272870695386616091693031210362257515605306600301803341231378582072629050354613304237030907622055552560972957477495447111462275249863678167445187140846162062033680362947321756200733109042148179823396646687579452139013681490749571766365360884115731448661467758421117226179381536746998239447248908731690521908360297589517832764274930584874436910941986686113222343420005182259233394391394731808777384007565232038822614224864849305466378814886173504215440366347204550970554382458157668183768497128245736902339005348006361787598013295820486037791490359739157210909552183240845257395156319880343482291207979936344168680107169159858338333349940439673980867485172454307913642894511742713940191443382218177273937445988312171372935904171377386021304478788080388364976920968242436866526632603442870264376573055108658159647175577607051576702061370260383700651713026214058070351323504871998692553362693748499166327213978163643176831557771323201490075864338159942204940649733172820914617008821567836836948714525930832487427095191273935963520715280125904952070029016116312034889119292724259146464320717248050970830983119769798763131036656627560830475827937040860897569857797790227606182436816497354689849406286788027133714806016949261945178137770758977872945458162258908097732544218387602339678065041861633662015066800326922997809819990657544416402334373101723240119880484643803706767322678041332423773742892441965785066946228884258868833590922825422840493889158008572225201828430064945801642535052893484413189709860610369689299986164943466482034325210698778395475576251322616360923332326718283196626979120094786646550779185651187344525011166615166658530750884797933309917520863455060069612500351231041629596230063907209111654157155666303275149859908883097018247494313811261625361649625108215977718644981674208478722007190416394252674714386663184664328970206639329759137022508715553020642330398515995467231309642649123832327694939871810787318325969012254137548893554294195768118341763554009101612688072054407219776344462704071041608485864506016225373954283747582321880617534638803363458858163819310001277822826554706975336612469202764089546407735356890335132975284912641684547579352938799860711856277702802046848557475804783095198975567656337472608466267408607358466741968894339901850408535689249490548503671489269529435083318923364406128622778873934465985257903118681482578214261813675440922744838004762047403203817065967529031783449852446025313228547453867794361426832227350479725055654317145792567068612025545313596685938535954495916564527020042280131719230089384252965948427438415715803128117285275504451159873396069442277612094088121925580552341861187479642667162223953161767133313444729163297126438639495578654695834446176993421358787648232256587956640083691031133443018278453478993157859489329768415391089949504063811459019123015907607346573742588986409163681394779418897657044877993308927004170208552645637067559367318532671979537427607122677786672733246455579132374856580969515513921443351749693690368458647266985415107152806093574638045439838786165539579036286462764131094454116980654437337393962175119683652277165739362324615732034053197057150677951012159753610043303829241067762075280835273298735085079529304460241001956102525851303243591144190756442009357787361893624948634071010823949157108476420245192295425803895634606898142765195193418039649387157534382189750921620571452357121315121366909775396953603766054450243271719348977307795015397914420316183805210178319208495899225881609743458658837511164270383103591818251798849961468735977421465798834160267548058634555184029935814318765382747227664387485414177346326095723149000758534200204509558107487333355408378200539531543223647000518547300936500872240404414055302521367613943310847145162969468774672087185967239508854811132609171208473880393262206582751703510738468343345940210199666417616241622478370613525479058542231927486411198410011707373764380832636069319543082624408865799102507474049920306985198158964300517747331335359657017491813569557387019316845433572838145572515574092204258745696247920619610602212114197313553274182505026036165629592647047010855480598981088585890966472553944880608764287950561231326214121476225137319727004753867204535336845715348991556390045407245622362888799927534810426151588124705165849673299322782187468875876831418103061216193982517324276390980008857187270365402974602802663069712903137019154725458775891972675218714393956431585052794544288020777570251729634596447534104462804845982354288895745215935571578072656483550444815958141886688921433540258527665599869004046097647886655365953345073407736817747922910138954389726887099277208561031552483853550030337847106774715065497880819807743178955114173140971323271680193032236699212012916874870026256097729930613885332576788199205176647661388804855919278641623308403539594150568815752345759198747650906664630469680085304789763567184372186729540461851159619538627928070798668301089615732736276514968631457812181311497811784178120260923726427318228618807248429235848868124627568679857653907365595360453593684943374530107989094820832079706001633477418571296384470394128074678754503247252730056958636594596642023469325776444660818654290505264761286889149144759964847737519671980562272198495616179756516799860915572331407113343345208123943216698053166781774477174655531078157059964055418435378126917569318983007546443643768124953558159095796259561163250557882407434767627377782658660143416384954230976254932829939113223745066809214625563844361935679492592350714948257737922796931354563428324688649176514073676566120560920487136182689168392406545123016752155206155004241963515020006895024657059245428665766975421657515533074972994568743273059018125439276876435489801485882416523879504257764266075759760144429225290346431649873366929857884748121735456237190197551742364406156198468673952420102110999852107622891754908437962408741278311224248605316897769542101163737453774948727043482362672408816704255528014745798732902109143526255541590132431538114330608683691128707978845851168616767261983280989538003713066252137724650310656078688796316525988748755928758424533673490524688767941385903064173197093148926878297676117995101642582853993842511312541478228722640684411549028965293002815497226031125851530449880308675652724167074717422326802415069127265155341000993083875510404851263234055177769011923007699762003063061531810249691000125756450541833223943460406823805953454655694848344468086964751549778389680708395540247658845438185867186448940218898105143586075714885737365168601403807557773306330893382810376850327665414469597475722955442483581406652695205533087924894638062687456734341968006697520239624195117890405109019310220308087479670377574912865426897893663281718992292439221280565082164907614942623630928461067841525901450217862149777864003418328348598797509274578924101461705430730438107607819629336574727062081802643254767566753195477438874537955156846135331052608573505919849284960701043190576823031595844481465969821357848578819648932859408062359678702097502583807243777146586846690968388009952631359502046206811022253335562738784289825281568386164973765313532665557976763321324246974840243351234310605923537503208375568799257509983186045514076579698139911084044043867831049363746251215788385003554963023579816613398710513775420412653607022881710908545424542032869174112660352836896940873076422925644935792081572979051514590123445624978273673328600913299545159580024043170420669475066503572733903117486290665695107639692406029811298469130091201403577642419587113943981856821958323569804524763351405394747721505589212070497129524590594627734205583818513900044643989784097928403125375061860240533752990847624971247724084520448571528896408677505208181783411097075062240108061719082156916661106269515661396810199171867403991933110364175088824493974198892396799598973416687098996667689369997066944987422343452017260766173214707246552549885650832945750592089497267681404727125945661290531362834410729718904964557987851741529651361190157838606071869736448721745951918663607187416285229720758537792369355574921872800659016964395608860706921293067255789471297079281334987229851759774697832335026800875901129020391463880437801377768705407672435911296103417873935871759117725766700701151654205883371825010573999699293497498724881223315407691915645527521854037223007825555872757447202885460086997180881668081794656538296227044423090337065220145255775042074392044387988801402635337323375683438443378334269099397807878311932634625625727532468976260381767715511637459964646571272907500562119635323980874887061485077808846266648714648463699348607734963004218056699483892584779413499050183610825867518256345351604986589529929896922312512221050196821127701831404027572008112163281627691840917040832607187165267572758780322849698457496964743498907344249099570258090314775745858540614938693346795851951919677875930917083201379124123053052472321331175968482170324815775445288428228208399720196537008748548763655735255904118269349179358283616537151264936880120253056468386152847972170741525342614037377305989609088030875090242812969297160635709842726788296087943807984258273044795018524880981710110590701274913540897679683084326397915483865627202187539118929917808592750381457926813602641392529148035466001455032685583840413990337882151825177859620961032133620792824313804291589278426930988179902839480269751571524112255975028188882438032733328074244640151411233455107141179306383399571409861299674014728810693760001601283855726853868635198220646406876941549490970930328008834126664599253062344533844883559732789753106416109220367465876410857704342332834299419155635095149704117182522146967274331854205108412487891011569824550083227295545842153116973011422243143160746541957459595971014211290725871080033448695640653359367694539051481229039274056870480481165126223876039497087269263335673372201852253375602687586841201372263615066573389621907494507113853970243241437476036261295826629442464942462345578974422477473469109046008445118805586841071307519845391587781062474490354437280307013219035427099430898580527395007596629925503529272643518247283852046709219639809279713666113742875992871363196262492777869403953088363699500472199261800110186387217201098052047310819316587775917358200342480449644815352343453447849312234332366556160687657091229496727791106654602192810257337655403047553777626094775646627545710169982721362732212649212076010126549985365637078811391563578470551186543499573021493408801711952924375265159384213127208037017777763853461246981210539168265087315562159255065327421778820645250281735883101680347236274762315553237363895787547603978131690193870285509074545219667504324055886958251968093200645722292282731590571389651406308412590604155793973555610996303983778805527969648449056937382432001039307895969019992134614083435343264031199002055506845489604465417621830093523640408415067717932169855861860271572379567178410195460748083038472304169713647054118940825634313028323704781806490529569480819615268758020041676295064318747574671993642024700006038802635485341070008834857793428205436630916877049435999229286259452398908992488852807182961531453562055624577306853423466869438609464184279223667161268149508425124922524342733399914348387477053112473357927465957911712093504794932752663896458352377815094209660210879718402339913912179509907220335233110592873745389891680213153797950923292910660711599816137744259908908697366288996255135453913374029944065606456971614231990150540378251780952368200309936569091576071139152474514112938306490230314474688596643855479962790292272472636496410134722257925769888575631525967224896422665159302510997665583313160240327322508755138533438797144243689543929453352875011138137677249774866924016671009058996564225323670491099749454221623561406261424043633498954848078755277057121356061754427220987746098650207095821227305109527231532334560445977564194225292468696916309955749767945333880835224574829453886972866686764526321670636561340498272271584464711839057105334904567527786152266103098483224309686482388131815336084596408908476129100573292966449637192118684273146262805269563435837711234080149409256320855340842985082702275031971483509576738992738391029993073367346941605752868078499604326468310360577970245856928436985107837933301783993054602315244743291956461622962784838774971961777686689911922507583855152217364433324429991015431655675587772753717600949224194383534144134355553608402850955236024641460864190068812110338228153503456498446974827712909685814398381094345768317621267102189440863783395346571775574306244320331618830245509205235487323670129199328308024895667970041855583207445185236613569463842586363102561488476182441903862615945705519157613911287786903503331957147410551997734435028390985329862449469924263472204941943237112800070501521177067602506259377794364130883242580184400621604823611644892712040818336394920274518075499278821328255409271625499111189889910923184127539322682860900345387980277945356486642827606486215430018028167042096129790339187856314777691344370226434362109937786458238329577311152932728521792738848089081418469882610603804647713492944493057001410500430946871233700665773696715983872146460743202854438905856521245244576131224962292749876189678496355342559175662773220254427840575290485531752811840009200593681331681760463385222009585386841643116901853343109041023825092356655164479011867526471371619818470894662957470376976642941644580241286691123891256445199969640210519392016234679728086243413573211374555395462564553015502283191600731256300661102335694842325772514117407582376349704348842906634279311404332861537115502626163007242816567117900085420178568603827789571120835636483525392127065566760300045409660427682207605657914546547910423650914749505116330613530473912971425808103756025149118338979407063624056918972997656375348510611499538771554257326557090667297068129692220196713506960371110331561641803478291801846237117038180362167340748968539738086837232848345197444271247956032448065876448139042919536246252289341445943124396685984950317885902251514665782761031574411052842326950706042899452471904826387417135746816601694515820451957723723831564079335182878603011932956632046296227806633497079379597734629766585090021363428005537393267047570474600460292812655760564731961950528690411070500113248722868094334139513064836375252651368978788148429675590617685385814414773412291280527358160959378317195904541448117400633031342526539807975903734743345068320681200745795400032005310230967795710933544418518041481956221479095495694109460990805055119852820971479632150143360192686087675127047323944786479695585943778215989541684904132085997920282126591615894709025017131236485574193182974621913917246696475129486386510132048288381319038323410833863557864877119516710298907232032694922172113323169933077953457615821426155647205795381267403281830125335670422509212045584909790125221067234625988222632797564600390175757390646282445834768186175773328636394143809799576175431078169917415003598930523906150289214424769683774701406768150043788654331997419262073151270262925261577458821419569397166234514465300869494304502107394778770590813385701024644135769762209198384202782933758039843233213043837681165435289583804368674746222223100320020364697789069351391320445175642958732823296610380563567066822277439255575081796835241783225103837010577459903554150260876618962515365246028828486429308348121062538151848231746839626721581734273928077682316228413539981168274995517857737338716720602068902070268246693755419473929844263259241674407791407704021592199336463739194861826898006050989892879521657962560737180138438299940743342634519556679765845562588685539870235978752248231557631443748285044063430037550052930993385405704098239290763028060251236340766205512848548315196814223901715278227542994846698431462255542876516098782577878338372406188081550409951854600812301793048565051561545349664826877050671812170311658255332653281658953069349819460124111405680405805400426206084672865934176996640706529467599668493911114260255318085455212432594770688490583257532442408975357338609664710691021489230951685537044581707800162866714181995218751175017205833856823294197495754889401971816682106650441138920919516069337740049154559786889788305869388661297284346671664903500993023137004850944799080526399400074996353508494103935019117516730829597920617637003427127289233557720456048233037854837976735416747809562984782211514432909046892966802443672039654234389221550084141689576696250177132735568580216967170529807053286406037462292708517215152444179736119604345710519761917991318773670284157436589312738867792830636618853207142766641846589212982843248109565957151669041912184266540342519059063546752052393500458070165767362200209248937421598261024054607013616919690630798480429924859393542143963251774785462082057522998041818363445106243560324602286687073670757763274091571615816094107877193509913945077468709770190525160368412180654479774665407381128538464513951491683453895788988102558891625199157367154157534286646607800428441524393365053185756683665060943024647843796151559039034316698536179174504102019186957910772922873441637395368421045732132894371602057271024377038166746272852980373559032558849795648533216792180731551871561930507166000848877395101653207954052597380730137153538419959846104915539732946426470780180357547849537808721260325141163785588471586999623216457927367449077396466949072709377598797220759933770983489049429417680126806053486508527680360865759262986305221693556241396398788230525021833384826782033673721889648179662814709578959554743901918065038615188395940653068787083355799085042798161561552379504055309160961728414495224122537622053883182074007663705261536250832920303526018854256099511446127154644675833027557331733926055700237970418316478986399116855442960544222627184461675236530557465297905888173564041343217704610830936788617301979370063956257365635649900340425885015011963097191099728785087165852354482023804787155348816740693740143267104083891390721346641218490043185510875299006515285929662025282447198679299700908792463197212612500827681311867100559361285809986529001709415800722156998951566615758645921682911326270473897315210577824253613301272313655470626717744993676414706719941510519051667681987167115759417121280111196567893319538101215931581662172154184588629682017184330016798566544437225108177166606918406169102378811879835222650057948545104602970790849447328712460136798976372548187235276052161730341496855133765636754117234868844337345395179346649749103228247278103005430848653128863433249985117239669049596194223374066283712117194441656376380339052116425305548944247919563632313738291775625521445574847534674193639676856599909588931948583373497517841153237763301038093027720513977448146399688480358645844928457266363690051797579009126054781375491074902631355382374809705853247615995490242873256927532248151344261514342153399368354007907458999161158185497718872294374416447445818376285609505722841498572025899153173708987490852346076113576731869517903325726019858762156549885478636770655180613273450200654391023742086550983378569730652182671964254122784903304666576141771016993893904601297085783648921609274414505368379386171723803918107508357049827528160775354933569755439553509758910465140780992592097266927273633199223923579099903256845444464606578154763615551680562924796021330980132468083787452837618174529615225898651364495334035065152583092162138101481958431565049319897566550799286583405817855891300310607175707668882570593895437582545847180127413114357930101218141875787395765141316960214067662461495192818472673315642111246220871435090581363947966068240818768838218505392042374531564926166213881359284059190772280358927088535114743385507810699138794343066381514509660442754423869834503354548941949296130479990632105671167071250436413839765474788300459845929287482445260282816871774744439599838774355351766829066056609982109344701145674875837380128036762768545550888824804807896157172744349991259091541005182359872377249365878496544041801326159582473832933207786286221327085305428602720805645391333961459535671664826169605425785329028352118023920322032759114028124296068818568809481436771891241426454693678789968810037092046807847479425001021554527904233011895397297863409050538645958889411946531759421867747743069039895963542625673708334962226493088172683941399320179650283294912564173321963810511424815517510291648705215233169047710422105457899262093125568549113429787293868735801783365404384075724746219094492033563671700426158615256681219681056019334526241590375282890153582462561246563414816564634585953438771973923836267502309454618674979013747296760402228768893454252171154382405723629575068225033381493075197201561248156041286516200069529351515240295821928701957971682875116802049738260522261140322706280116081839814099695815672871748486596733647715902769050869190787147988236705995623491457550546360006904801911565573328626783488473956964929308720940680102602259063409252513620468625427555338430912283778415216961252221124588530379811256400614581517794974822567004062892898245480116575989729391325282438969351915978996616577473022868894337111488214236738507096796847336981731535969595161991475244822777299357340258724246030532105490622465271679150101943579915618034741393651573111651665295966630247465374996039343646451068479300219298564671921699592670555207061664474872548854224406603676789606915416835255677801109809830357443217253064785149486727906054383608740569399028044144795120508428290841725795987789328643566799241036028810217071558978231790513799247814897688819002473315347933143824408244472909414741430653781268578995463086712852079004508935925866182344586103842712635216630273759937623392591020925241187551668841048490036991883632699917589047754749895547992391816109207921174670029400883987132952822766067547349386191939335614113836151128102775852229585946058765366790620763061299192941440381514392299661648731413079377311983259883048271269881417099432450647300998600922124805722448450141805344176659770715470263577435524955047777506627673080468033255978211241861885720995646173858981200826202874287912474438928023208606701915950477067834875513831489148304693118078956457244018327216499227086797979317420031846673915048031878821830133345032026599793160112476897910835256121958002829870573529612778775791468286574060924339522142891323012174809499001864114397372155630869148068752595446246039478342635638993878217342113042318317646591182428218082248076725690853742904417687855745773284477379197990115052522424308497481480242747941827889890750484024686099719139594224931197823767388612814034308365942670648307133547877130505407644321119101295243657850577457755413096658100203280603940575802687428639144864833351276284602483152258029569808825299886348086348294180933174952502630900619691522605803522988019361115787959860813542241906295644784524394565214619843256317600782752312880150749850160773091419051775662252380980696446696308624898604998433265282534967634787909331899567464057403010181778135982870996265242178891983097811841235563772962950048884264969960498267607560874278955120903845771549905344382593940563147949738988354781038294065925032440272315838632240907520339776927904013251254614592451541632750799292649279938240402113845428622265014886448195886315968430220201730005670986527378473298829539056258422687769940387276698709548119554877268706509965974126703319199008313247703656743877368425768785674259083849408314133497917603850412038079363067962961480026634592084270093751665165012858668686945531846721351857978702928406810236201395366705113148618827268072183301854418672988557106137641487311784409565201287050519336663089134322479479914826209821648953962131983568576152566589421908920594629186530427248235097495154490051986157414919843710073458517435635153975150811093241661384052460033484404358403279145539520256433212216990039521587780712165018699177524025612603570163617011886820150476998470303371539710137091899638635280740872643800169735916487414744675366978644885434400124138323126618292840386903336844371019928960525084873784883396099003794839287579989514592291173445996048217047712216721237862061480579080061016186895672606524439036211106940198515298899525479295793100489674618476399107890616403323277835694796041837765882729937363563848802385929242036272401805396673608442325690381062373258464173236075547645370960386202290002630488522443081058577030414621653118797936644652578689027480968972386891743789790561816003844646408739384036723074688200891015083911169882218298995201309017630364389851643751359998689020323647576229431102309128246367344678084046584188803525056746099791591578087798680660579441622162640910594446401403384432741862151488477860572508746221206759384265177166210231274398082147066863692474862293913646784124363012061537326272443502648279877516051915583603567875154129529346546766329258828357607910257669727311486488977653936604499901009250126106161215442765637111244362244009776029483024442148450851301104999600890689868668552194286767187366044315713883788125729031156335565924453610412209374869309612412138655907159042913167300799771263787154514413515247129768220622603112669609829391380446497606299304761657127018424427091013932322573310889674414386094953688860914037021740081946732302874209195067315038694334568718916694418574609677143984803267544639489335739596880910292216422537808369137985377979893343902791176208290666334064688728496838291283375279615850224147045242444883226774674593414787225925548420306112172292380618614027693161545626395062510358114604735342733290791681477295859291412198039669899785152645788762142492456985822585760173916777947778664407099775651414876088554634461664376916792507565908602134622710834397930548197128042928765395538763340597417301516644044627893397411288465830450075041952777204051212424017069496540947704119163077887819537145082448528223520997589347522157086111974705990159238045425899300284500421678222680160655932747854551793603187588435980040426253003885801803034093697283675114738994116125755220469662924256925764721039522184188883740201181156494614798939031291401041241523121749583303633850901999333172019153688847743648286283641396642652551244125764912189437112440798340236156021940699489869478806020194216105124857066806651819321625209144415513755525912109553523659001272300734550399782408744716511999654289584442468754788757539361994244043780393020459239912253667883358978114214356575497023708438110611934403044227403389563268632632957901322302457516348151995304481886845394116572279609022773186243648281512958691287860489347164867034544668985747069511840798649270297999284469679935542268588563652036420083954727131639448378938697205679339839426378461333473210569006618205099170038182603574199978223873077832406587821830680408595925826813823689166392290516164481629705509271933290409984361507641026121380851883820014773861918862151955886604803191989604234514691535790588435021484047111171274818997956820675935710160118022836424153792188805459777135810496961515677731429235137609910720683910180881870976146030179402333440160693098130589042757608678458053598490694487296154307898729401737503088088021151600806367303187556039739867414835486045079196216774335382172884240494270124674348602361964643450748395323620940086731927267567488254381303454972936362360013894994356816854464301032628054837753837390984909195927081271895282271302834654137386063346037481598776850629422210431636945882919071169670402064926061841837048752201574631203725197266339596266332297262120055508881946923646846737603512241284989407312487885104650625736099589407809759591286167351752416403812952082823867332712322976121864663879361703939925065773243935605953965769339432129372956921921247329847918302176740216413829466146653492461509943255761521905517616753602670997469416977727484016976928515557973709484100119344756394071626683010120937843043525004428177709938617772492969549528399424378086726888942955497969007239549955023479348629003914330366695478857785816987984435758722612061094758251385932173043570268028544730245485507804569733250792985572735080219598653176989004372605512373228983819521146044153939865251132537872923811609951174326387353368488906768365507524221346594284899877361360291259086672009253737268586393435028749160586595759892673554121822258189258490862944877872444023489958011692119196670544938452149527718040394038281028674369165251501251319622705736716968299550918663659779778768744615098671524352832773811441755221143445090030855100511860008665189825532680354817901409814265727809181719124153393712651979224964181032589492331503905362356974258802442962432761688686220853618496197086122023616821459360824583073171540268078325836460117031513046432373441466867652340554491664952465085467262462990301093749577562044565975722765662877802046514772269089357060689537844823572164722134976550067838356456077177743280166686222515407221789722015634260870263109975249348110570422643382162653365948049062091830910362261994442707180244604972519731835094869610821481384800792770680026826551031228954104697168546977504665924746222479691595120714803452503508131929838292791279299853150088900294611138948452784829339806065009490965320868141367331770573293274951268574727484092359455676504674859381201806162289778443330016182505076997023429428783291465663906395574514426459269407126246314760364394559824874995326826369943877334344236919161802396532711936180716384408900980679990475858852339916117238196105610887848810597052444695608443135805709135133561517315270675170948473402884905326263080599986181600596368399683585553635077718508446363382475382676723242555155969022162740835362881158572592806781188558989866148908095265282155484263685949200232863777363899602468287472017403590611795407502158865865808170755349685969229831037450851683412514088194475369492499778100522995283951915824872238117695137300820856007964588996905632092377957013858874481752409023459143938327500115785492961377501007505670549922051734632630504206037036857588924936643138793236867594192933897914963318831714507011721754331756077296581334236275972628633850087714738534675973650196513788560939901456149572489502810561482700104494949191501992958260436873096146705851633739369364506547189646074294161752926298677418258013970704521851300532141773475805797924227196812029502260500495405847352608702059763859202900529553772248769771724905224571493626624816252503319355437941489584525512442340881920663410873139262051536306385471889740106599873378716957870343062226056372680801813666682085124367299268028076877456339833755313248519983900770409325991433167505236255450735512608959065796809567875801022179979538626015262904401211212203295187057103647622654817003806403539625900659518451479142858427455549518221668567353781969699213886635804406601405401027286242027204094192890899597890194421816294290950623884310757166015739915039819458139146752353034115977245989324917014534294985216454159688685787527132450816392264790948484988238830413661403903808420946048220398032678682175163144439401940246010256410630397479174243401724030236593508640142028365020032685252379901279486746071696925546818127018042436840200529554967605147834580525439118351957675846687295330898296300694847528193825542939628595485886726460003321300815837773975580813076541715166268892057039409126322837708843294031102848267316455916852786876368704640487148797779345708839523403409855241850576230843367013971299936680739969764294281803029420857750196048142173615798754097855491097040307192072541627363940729283430381559053506806045016664165709477991703115410201224478794183210742150818319573008103305504394510256382275648633053742717953722463809751320838429400363271563265735960299492065299546823506507189317206517192212414248785725368642692262069917181898661884018972130024562156853444064969580122052592913302960103117416983490631846715128563498185012757737794159602079838900110209966700574713490723805839076126113316046512876128869171739504440548209403423717287921111247320459937426699909888249461128579676591391550848408832047004874951540522564188490506035129568055782473833404763876376588031795426849852453171452158750972247446275334258176685826924125984612293848764200356327538511559717322687483953490964052932867495299318205436602249271707304973448624073850459562476480806553092993229864700331842125911537670178585063523700475650191111054531432416972798182820156201863007682768656824872067077727854143967414380705608500203741913727946111328122314274619256214718699656614335893757721151958096687740972030112536620789399141917590967758572843098225449589546427064923472186774419106124982942669910021429500138980264999015844296484191507210066951977355034493163017030331926535055691824291745706351841899670068459676460116335731762482634711511811380131149747450867241745653847415549656760264810759517484242603880829571027337711373185760692467716901456208441292495462121397113196628409848103434538221553112125553614028572309336660984542483551930779944667232755453091957059403713079370972135085009072358367228011666246113437665072277523291296837576655521443720501466862362513809933163023583505349774003133756679440607873733801371701480283475209359790097962854009179692074424299723578406429255896531135323310628987405997184593303638874650132383075641996479273058197984623996438647623727189041613257253188445607408002828025598412019499874171361030762124425587892026401080039401425305714647601488125671471054530802799320307035600305426304167066683601129644132944368180313160365626931184989780009362544329572494629419198480826642817766712675088800942194705490350256440567674908759015977211436200666208979038096911885061488218440778478842122862831370544333820149721466084179024445459293758497289012046984055286543787396010749255517905345741283695585382583650008235555602698237169470085808772362917099796779821558842435017511619642551801637663262172105991648578141431778883248264037164294381154167744695046567293025372853643286521703190222934993465510345220757496124750735699733553949646102804375510280230947381790905526842721255860106902198934124200666193921822765955913271352172063069267177674674411217652535351829724503042289506451417773997393512485629976032174726530032290995570587062287567858420150893022173675500611785780557836103103913644274271684621623570743566208087393825251566245063358546371777917856405013244568596949373449815131840009621394577522143769912057372142397089192715119231734994119338092625462008150469251136046218888241808680957075779858717012940549328248497434033299669484959130194227929574948153327580130804675690953334293818909096573554860385777102368577597252081679272494864339858828974459425954159309068002093021484305113414001949811914110095035494229681258515223581885439596828990638256248188073112724683958109091631406722451330649598441378311956060937646128927647727828843565660474010008058582414214086738825529930018104114406627640527066894159427160873524624283057014027249810682619454386922342485282174636370028661147218386097030010247792902988248129405311543933296573962330273632883254193604882759378362450088097168028510194364722176576098307502238632110793381537786600860628441283247830497913560278637291952703615232730544866349144874996734116034826208222679743493672602309022008188931668632069533721296140567797485744169108892748433073896147894186068957278641377899273358927682099299970732709521761521192123465585221953940445634702239877161185597996010281063658713531045372789813371252604609433732131016044071694393174713539447546587958566525658545154499024793277792433432882930208635687993458881930672199091450671295118733555807760296825621690937172392633210659212824127351740437553332199127024286114823735088587236141229349454413957413154456473713279373842530745202745039691467021141206015748681400482245752502371226944190738639969905399516279577051228002644838808162863953065689128279580594576149598824109179480530590211346925577506785758274537074331607896631279135296512383540149854740151575579475629978472075621796833825681378351181674515571880823806041010965907745444395733316741976820810841393656086536447240268665268284535970950518513262044658812262509888399423091246143980161776919150837533434074677659065382185016475939831422902069462345166703249950755695147070692846110324825942637769144275136746158053652243658596460611410011664459022287581636077802733615851492299563488954756398847933797950604673083444883880341944616931273927732855316201239156750405947534744113450700997206453785486902766090575439897523021566249373213488869201427521219043876125891355048934851046679896620980152723417124561670823932079772256589348704389525696681916179842225846661250855771211671592781415383681917181652557223368486563701802634843004070806361731894586861815451269098530680897853805165225271391737940043277781759214426273863542373532557465727904827712983224338623948232311145796700791649999698467504552305051725152835658953736985902151963261226610028869666851577897212836675679078747215455889014425947022506197947775722729524008449578891230759431448872211269006188490501632452988231246984254599336445439277368202386053627009482017145925231237887992516159163023896549942783778642132677271308305179656644958523178879516781250771855821176463261894097219967033393721318224714246777804203034260350500345169773554079473492886623935739746598788790872699865672370232714899908266621073731011677045028413376042538229900399456961784996681060839786788804382033066612226671787612849772324240988554619910592777870995702506706280204473245052319961015785706923145016481950385662246019600078417910040895159182336900114098152783828665982300544702672890245492924999728732836022764746937831767620485764668784601695668302885348130718670044328421468050873798007532627215417757133976666607118629089719743455847430823027919164026089773564372475822199193487505536636659062662722878063890911486714612909087841083866680661475390655899162987848640233826821502304630523763309822853681788294345222495917706706331339535100781578201500090766828531875785200113679168203170161807047538906157324571140379522099379127501572492026262315397166050330315324095226427689319708415593430913439177749481232907626703879523717941865103968313828879574549104772555594099692746489912103771874911525094988314729041654811472538757352864823963492010919640186655937021537460305574047263447672519982971955340398830618125009649897177766533368981081612902120870132375739771469026804318288938497704886352285578737738957845209439091496810973741457418516253643483466745318090950958457447377564071229634004680796111611784108406790450733155257608165397329518350884537395411897349826120549916171096229639354144534452886552421861725542013598508520946399631000010917732411811231868154740549892705303465838925559463133074143308953549588182865740298992848947839233724774660535175460228323530335728205443678720530277970207349117995197747007491570589923069568469140787326733971640738513716620875920876094186011159213085219649221915722509690596752875275990613509986834607707753934844412388842536147759745567081991562624178895593648340404441028366872105180884620752323109111844033463287441529228566019807365041183372204274155335457202234706426538697407102032500108235545505930846202761995986454912919807550338138028799823615445353512164927860804417938577328257270306573086289960432213661550802508899929101877688675638282215974925505601127733152003810507557168369240379864825089785686946120369158258232132050691936534664933755517391932360252434260506982126573689967653628614085318229693203803245296283943688097017559749167606605604185372001866897842999443125616570329270164812813364516684646347968298301416746005513293433294621288915371480821197143750252043685045630640211487261246566146729751492360879088328171587376967237565376454852908228902628558040742627864848668338350822480795923105690775918717257993650433194741072943529871109734515584200819987911168204803112920998148498473136836159574062901354178286446990057190991424238511737622427119091553119649607143303844201496326550025555823280303998643703139312148186219437185228444642741788921385722499128407176414775832971821811130910703986750099349530066939403988588602452336267344684585917330631506670941684687178308369742038755346540329987716056345964544058138726995666353180829398319939696557051446167152017184441629843640589660031667006748300219028950030357160859218086318441933569663895629998921455169591966846452253191263308048836308890175669003416213263834091803970642216893033901437948847803456411500497931212741762071043346486074867505019896497678950592541486763668160113162726581647722727314777716942090812992120384795807344850521256702371320887773141337605628652668257807197329907606283550397506359710347041912866106493072927438955424532957456074300606577004894970016496037170736403529515268722838717172335684641177879511041508095676433644262792112453722951965424626036017687518974057451272861354731909016924159818893572228967000538731978603513902259393520846895428886580975842427430309497677111479265489578360183553140437437682024760310587302983284250488509847086332422336853529305563165491202621981182426405726825263006322917164537499532707874955528921302897554998544631820536393825877940065717725650049063914426045030517629793304719477337756346053817842057649147534009215795237373083409775310171733653758141788314041040911911313822396844295041431590719298219609767425531064247829811876295109800068303327645918361552951007192411891280680294932261361316868040096727967754080738275231872221639540036864106160046410936660746392199613282925972887569695015101832707491985506391924844586918397620449221555312047025635951928693445920397575218277471162375870591312204008314792098311687753605755602773944271249401858251943931385952423629856081071155727259910119301191741750213931347229826170126363123521700317040704506431749618519724796896530026837978313001227859928637008622626091075881765348405947119640945964231544468687484072604606031156716020541612355228291303528847554527924115217977945368524570501579057667491929975124326900222334094720854638767118880014853226687093190026661772701370566243709801319886463850882833703691067259852818818069685430219001097336331824131020990687202675098643080940372354728425035211386836593665527215128424858730672637643891888077386221498398893138036242515316763738385298554412288492394401000160198266151340968285069186767148659899918073217547673382865811957999076853935639042124172904494563081855472145581029265014159161528916707035158761345514094284376542169281577542470400817125607946529179355627834520315572620451257725494091424884397598772736397282042450245937300098654222866965640023809116923715551649938623252946965905598871626195707901924862689076070765190681042891773043185489745701374374055354200857478560573024816204938854955728083068655118306575474466740996596284511752659671443372953384746824479927435861176337372126606773067128335456873483240526184114868467172258602805943389055588920301145550917606761703355073041498667976632498489100120233205041791374179287933970250610078970455896316546091606295494830805888709680175979197626719006530647194620336037577218884554942426142654790068369858812541333492573929504114940724258888525450145002945744429353540528277247302032003966694649255430861160018095225998698762979283993949957249832643926004880748579427331007710076319183910122909081577137428770501604900694893648080533388798872334387080791287553573838440407584073679965050769133787936430279674285818894846333301585547028154619276095721224443522117617769403148758006857027101343159330354216096863901236688566636826430907681847250388445586784196934231839981349833807817124975910137284077573021753115859689160067209223530820901125617406517513940651860159020370136141864369384263329846113812849748415201189215120138125185366145644804110075570900779245261650190296890501318518114093077093153040593052518246861957361532146581301345231338765121330832676128876041761699220083955758327526838258698371044573523268075263664298269998304758298705245132352436293292192602480030793641028002465378752518441103774031798498746046162215867043086315533116503597477462907093042945239108149933936704603181983411974597212189079934433316226022690106595671208899371944819199447457701076748173060137559381974510773569446980171284363450792269412508851110505695775036942925665529379124949861915906914500842711669720792969457444631481237735992675912177905757328371307187230772721658297073987944337663408017782829642500090799549148477746322900104845239486403011057445989368532504543572700219779225028680556612929642659724114106794378362594217495663967940296227538882185073973879137991775033093926350008259807865270006203534619897589335516200915661270322689860294555677314173370392932941714214419436939606582766606496179939570483032961070632178642256620571362397864787900805363012472227741039589091236739471351304724696679605863079829645481799401576747079208154099231922384381939458278396274472219694520005541602099901807601942904655617978021142229131542679777736822255278095964817478498147217693090384599414805303144809416278497918343583954711843696588983377038624481116972959556858169807936813941229703312487852333239267348686000810449218633602967640233327593019437571744264110419253784449783695682671349454716692683918418404960385204622302633677840965663731045878133257150843466651975911193988564592831965924256765944222847229456376815309360176479916113415766260983334409176668518334791151527425428195136963169705174598820043433832977623797881280847527559885676548187847839779351196627649392449674387761516706081263078012417964279647538601109373315261822377204430442365424692457253681664817638121034398459640094943637010588514243260532830564957925513595961048254812284951578758983161005987501904359132693547073605683939793468778533777111250509350558508378012551481884615584851480897830847377341014760845269892979824369289439781910336742392768539975976474634623880869465346261420388663143910563515788026136159040460086741451547241048653971823434143751664176192833768089369318545691656033388214758751908555062923294605868380742486520723693695034695913145058975050439988127243345548301746647698382552848024457436189413126695866177844530851471660685608245945066496070720099460908010838239799893914567234896401520158312978885928652478809702321156343827355682792169172348977764752970506984160227948916362610113345087956326808941322578038798326011284522037936402857275602425885385269388434170259708588615347273771977293368262636813507832691230499841461616115825812503829704269630504612995311125482694338779739655586269264544538773263149213597616469820867894967424135417723812879380783307164475594317693561617792283831782293789599757070402028877754453196882006531998104182697376843209035795966580210076987605611102050298887795664946769785189098334576610280424450299606825501040291051517263937815103727228056171416337784224972642067632937338454069629924545575102208841506979470759953267591695481798746854483482821302054098005047569722744253582349055205338548514253001660971495100193392773242002283989852011616064464198269616514023200663215856642923347540564549106569341956380217388782980392802090560724691352822684319588265361707195518497551456542496176012235933092352823568824252331979467640066462194046659892001032219091240457274826011611585167264279644211260169193182147278367944706456395223028928764286474624161134729737022865100651479686437973066420677136819994685270154440012575548815012831777309565123639621994564674642264539415553076228512838722065251652509319164010347449864637314300332689000030264258016266593364860025049918426818285356001018458810329194997817517583326638420173658049346661425866003234574231338372923589935524134447235873151382698352333773451474175767698276336230042262773716290156055693543105522945504683242727579000459609840719700603896224966983287188747156274496384097590287211341153197664799864341729369661904695936379668054606198191702209571261248348568022214245419732042622216787627920576100205738209106290534209051185811217549179581279053583297353621427411143948871479641923615052801106199722681229997683457579056324026949311112389425743482966774292486136422630677738706390049993065473028624793133655650193542924694071403823042502379192799622594892367125269027734957175486072080515747530764436145271538109889118156645473790750454200139458672160213812997905485232330240329088637883328844257425434265199231401284568626835664763138380277066196746714909185928644332898276887673811140135241538782212556371576487720065688377497623198833470510573635900239418987560112093219209316901816114713435536030621311658250203879509534899533998285588143720552683547065962731478325919597268688022699619389815720357530669280039725679099735679966440341118240647219618274164661307550481100622702822591647464534183039578122607600021745665814208594046552896677779017303249213010266252456413730821851092202599365024032691936189868519625120757236737268157382057172286104838471689725837599631513515704838733713800249825745099630300896730701313750987961941735658207834017281477918382454735372188337908559166724065211143200468264859952138886541323307781400422164153686461222601080542179681433781126459504593741350401799482623890880248186016694475132742774027001382104700218347285474412317780501550362224471519671928361539658932542453625378809950571422959406630584925425164054126746826437676697610546588125241794805686759636878439581503805777085981990695585210573850876033770571624211979934305676386964162499110721681662104535121087772258960407822886327327067880703767059575011549819529592982434328627708791218395686773282523919248022465040694603345448896871193394980511583355804218949211458439566517446267833886907068570029907460547915172313491901100815765850375399427676650345198253673110299395904760824325085992046701335579251112761752855254934123067174593432008970092545637673255632019820573755306474532340543232023813536753561334541559342276174100778624569625998212679774174923068633598525785602833742633655578416378140058880646247352124605726486357332805484198243272654909851024000416543934665298406568195233822452094476381938438420639720874444698623890365704125613222567895079915791811158709198685647257866135452467526499328080312055579593185676858518998607920625364725203985350611627437065887221498034007092088889789712624587537526770526799958140144187819532556824242916607441433119427351986954915660860433473339135444392078982727992538949332925285505331999874198379088117940813504528575715450988209276111753902687691248182269440032423531548229675806679272551401826795929755387778989932449850259385697410845271921784057309844872290394512744683904032983360823541414927809500010497084039098443725976411935300888376399640636662573656970842044100373669799608598133967569886506999883075118054786384216241096651265658599466865408044988828936990929399517204460975870037858249575026102341923308007318583632475694140479072113196276908047282330581949544200708665194193330142845601830074510895065315530584855013944168537124602071473007613645117009834861059819081925979904552017095154329054364938779686242702089091672231425354636130775415509549497819193385750226585724231544056113128097766129438627151984401256165979909555220176999910038979427895241479848801078249387926092900857229897563242709877016711511139946356147640258225556188506813092368022113522781972771628148587044171319170952003920272283346836068504939653103819095836188105449146877733542147680349399106156914852979584382036214582236075081375117438676453244728857226793351649054279436109998904856091268819245195684167668798685591862350761233251272271021541812156358997103341130993912990301452721737992922791418920178376594740034714959415002187798606323672471874128340632987851614112197022696326172279857380576449988154412411157404868188251124613774334489212254091156461887290068213695371346140071165282826451668704361155526653692235602102693203948813998322179546072829783232875432844191502487328647824824853212570981596496011037364119015700833527644755716722308097017673734767180213897684711115204713034566611710966830398230121927124642194442050106283981934697782797732542894552204013662881557490783594911193708496592843562494624815701303456195295738965286929138150238461529687653503241829995640473021881522933177894504079811851108247585692330504361147039512201900585633248056779332411490997149932006046719266326632174938551532274533201505082099786885092598615703977989603736307603907690767211194245834567083285576081994446629281817216349897580873585186667062567149655988800802368257782799207124085105723544796732002676260889163720143472874246350902134209061203742980378651377743373889910155933500783729752449755295028609248139076423785495789649640029942038679745404387391716174494046274981232816699047683012763794671925570758379710672833783038758641848434645978003920215132998532754520550796416389344777627841374978563924841720519909291062923927063174634585980794524617492019350294516585025504333330913530782971009395572833024870148114675116359084748153061089403795757431888027363600981927806474021285219980226434293574223042226546261232514560658770486631808176885157103017232867517752659887089781451864821817058066116370245172980295585074730489663156016195346233941347683095066257104006369390849181538559095247126286577066296024411590286999992126000205210987806444119519101247849130402455634826179656287636311974894250710672164549069884829373609705531157577181130008212275617400358173639289483668607830859293393990114128340671224661842394444040433060646732195106294471422541387078558870443364447053137794229611443195053829853211282463849274411562422991309097729527795746151919878655137830915643569617937383368299034929858784004364036143254651454831248569338229290943158319030907437543325555090228823534100304701665115459904861411430287596890440677504971451571545322788455604658403391364467781471896083140981533878963494953498278308640200808774737650170877052504734410201858687414303475711779973538233122318897125610124928065527335667604362312800220531164728827003474303522622961129099544643864973358288601664946499120846135781025529098056618036424387805466847627683123061069314072096503472485460977754780550825434493582945610119112185789477432601364456760440566487116131977849245319892217351945783579917492963106937282587373370483984437406902210190005114373957766349058904974903003105509258220282702877191381798103082859758440766452260518512303857401782241580883483283315172098861121221059798219020344398882170842617209936564309814585064743101090860217075940670045083620882871650451751968293141859587737067910645638135800450297467485250852702356221228408762892772896328445177051047655817563222731923739671122704728692013498476213503983758854766994591689874910998646817121717807686678628239114979285376036459841238783268034831365312687873744530037422159068249676784162189002503312232705706435897956453546681594373988076656320506543929362628665853790917137805362930694909309076461006185772764676690152671371944499350937228492765727795328362968752966415439780020260085482803378016564179242445089772939702769182114836793035406659989731960828868121485346197509516007839985902480903615103843134028780840846182624743626274021554184715949157924069019586351882599529398577990116239239928744384531640533416655629040264048685586117469771521191413281030888745038177569652343701393817334088736823002304213324517961591624688022905217257042665866905176043265967166989170661823713389114139871763974288408843100201188952111542410970783226571977216133411205564244047704111989387169352814853752490382066396735299016706746683125615606081114863691818770985078392151513407462368573457468853928537955295648720094293938432955783728141518634122453240061523217803124309037871510463500681016163076411751083533015354148688277834649579835051927146221264519892243180789880191580403117930900422053950344292451298126664737458512728913326203186886538931482161535255875846119948212107632179943900692437518609754314337739774318922442946596948704187335009105398731512311585743420270402744456366115631538077302438127568284952639743736611548259851948073274751117689605361946228658808620238548752755174416404221551591730508033242672613065338565726173806410074058498270851259237391892883427432012037597915139990106632496797258553275179849498540978211738172321918367120258997990581511833289140292699809245418002157939846053048150476397866670543225902687577258677180845375087027594561575247301050333919699775901297397654191087920131457468934420338759001624860655792094639716825916783166954745670191183874266117264563200523901453451212572283439156653083705522743758853821105819202372855002234774416308465985795281126208663897891281544567079438056487678148566062098150878068074079245249172877509574273793199854249285046240895151322401376647773232829912812531623852277568130678536202207142834729769125286866182777434735367127969383023847179070623265783299006263911688099593509337128195917124395192304394402034167574475111435517371021541377773913121073990773630919194231545816166603782967674674435810230145275993723954863631133133548486865487072909445543488800752729523842094056505331965294656877099223413521679455279346618976917622084434156086590945386455190543204868866884679253023085764799648684371243937596797912833378652734474434127988018702618643779298440882701553871237060348573276633086899186918268298619609294619628097333949193044221266764104839333415698076405962505093331232561287075062702410907172242340992713641726777302660280782043329237773778590335153889815725267012204990768284120146853316741421761239880157243054940977989590126808293582065421665526629162181236359229596043770362472117073528105283197487726049513103652414460199690774963053205347408066107131559389782568782687250018832026121885441906350144969425655349626812570614890205306493772313350495656001678431050142668322884578782108252158757688409847138249241437269841776147108238414182818447970549892272026655679828550887717909851438748712747040794183898371877918973280574202333996943197339507179919848308448446739066112730384844437875163758868396675456936469641168969981210038235553126054906502195971613279228562225994833800798724083095456650963370008204161794822303620640605638807445943910972354866148771972164883070916390782660829331385007254680684719526209890629022574702887882830484295370365800202384133003539091645441101510740741275441114255854572471345842403802373552423500252839151483737504769912269566939797341632416449192774571741438367289795414735405832050937836176821293338239540661284680857316640304899055740532502498707890346950962408925736459641293424377677691903405519554637189334514942844755118442727942220295542989850515012123513421947246236389133019400933738882322713969391287570263129308790165576832956386973323858112451929305878989496702539708643214552765470908300459913519659592598173051558767490969466656335431853244397089879373419269429974200947717816420495099539342397187807823803876102952031153829654623869660102431765946346134468969629923071530427367734881171153870000176614399982169314736496973130709340460393470985475093261022728386916355400077317585473272275841278155235090048870220247037868360538771633528299536580753922988349387711720229136432693811831636979650263216104277838124665977676435757865847572444953463979172214545914765055380785386209979613939996228708369000400749123222630846282068139092356639079258342447574370888400883756398141005800640764617546502408095776073929677241206992336739422311270492383294391291851783786267551692179080851563637459874135284492122040505386469739699909245167159483267693991411260388093567524704229380856141239494142876358787276327959922097672122658276260016546965043460140565312696978424265368247627738923272227803957678481300982228016408461041858400468192009424760335516829952386126041902901743694639029023098906936369968030979640444757166895751366574724249067879793243257099483097264329822924674294602553589822070628662603345673011136405883879063613097284920824577409365053153577718190900306309044179156411290135025108169957322951433865324629031138345101988818556507140428329169818180122742512373249057905994920024727735361907585312865569289313930304644547877249091914175860628532561138585527295403189814655416374653923794864386497690857008405544890712540123952470747544060901007190900250939216188487939532099752277919815002937639256007111597109026699659680237072465507951165195168434436699388098317210880668803378725624014981062951525225374461464223129820555697015819543236527614204220291983373201167544825919010354307814165450659116057398395852029839515231321303032442050541860333812744228965284168788036638118510963724401861449661256133041705512566025143056599772412331618188345455407589844322667805089181309974067755274220379060625154444547837867826747715180685051898601807976055817998685602601832838425685993971491083391710876892237574550771980898588743090226973218482875435146890385135770028469860048611608197861825334257043234016027924684822424171096041979842355606574028381785168453410338373077408896288140634141682951775984967383032765516584858916517912509304980472113185383383719443780903382062746443090038920490249579093938291136722250445935383600043556518648596323103980763675953596965848916545097875712358996080567461931386685725709378460102660859481660155004106698307477501087393570667605000981109258358232040923582851084418998778577681848166134769300548423734197668620910124070966554440518040994418557322668316955274573207149922848911387940851430905456559055576140566657419093943829517154394344816616671576163858705119019726869000619268408976792437206218853937450167224565318469107687598277599666192599270462925549013459299766329504275959658417845355833804444439769116475851791626763918335936934696047571701115859969418132078556492554294305152819616597150950748312186744560113418962206792989428002551769548216410588953981265327770055577048052329501408840934516381060604666183573527488471290539389528646709326108643224142702226764048524123956796339185193203312737474870035919558701679612525755561444919044232940580652910117163341471234893483303553044731270364065706459033182658659304933132714506994245679579850985978590062911521335502776270267329465785952563804340245623020599749918362402204845932134550378208926766159055993378877172180920409133812828811540019489480383040784389446350886991821076635734767782348400387669360980827173511051061697151283355927645492838563241215283952321536321651110611424731035403256584682991040691757041976393710608652029260046754572342604802056665975813115622402484071307520467801685991911615957252223934413753622025503408376717077100888525860406357477825039282990812721640890933395606113072841841554448402710986122370533946102599318197795358556210534978269412976842439813516438482358678001707208807563230897580779534473894974539108423513373418676386691999824684736669878123571500855820646149927687829877863975653759271163449965458125363440333462322174829567717445545011685394612591543528202956371840460727438260051704971937399981186970694313466587910251878923539251021155312683231175994139759315992359562883989922723150558141497807091739964171053881631150792929493684941869138467828550560211699877405241442610537078902329669105130734059420374008267694793309428989770238732233261713529423490671925522703644154626370000291363830052663714439060510129730632166247754817717206121048886559300313105844451788988305950786719918887918045509991981489007663690343568914714756363887021679846812684016845562751736548725744641641557571545544735045993944716904224176063068317717221924278284067776421021763801960799277213941806206160973109092914211433536499371887751973272912628812723891589565104458601601430644065493509402035968507526215885406797387085170820184719320289247658595008615202161766452173473776649219423008818873713886960829183393118223104676099457586161633440520200218674227622250311177367427778516418042598702203835156133115930797105720461781079746478731222177655645598112898289108360644218634257261729011254877509879623951049738541189382367098817298759248267961385939719323298874258120223980703481412300128725548790697087324392292671415540086142708552654720651454261957458145806999666013326669022970809190592680762519803297540469264850008610988355260164180731322684104099552452284969053480595407588410035535372861105673649759697958419659510974310100464766861042213034134658164870091217227969558086763138965426083980940282095481380341155174474581724164348636048799320598627759949386441074156620278119512198375014413880196979639277580315585383573530788881821239271446540697256559262831886704607077676286116993680745653214066109091539373036800508518503521464377260517396150164896921569726806943628632743197022411769887916229158670689975414734337060295677459703836524151518823915747349449351272390039665161141685136909994756937813519863504784942030398870765593953493086494014181462324238405457226887457216337956904224498710629825367074829897094109489846957054807579977730919569748453819066262716047882086239456169324264756867989667641002563091934002832265356366712572285771349515938605663779062111392872937972481356644819739421606649426181924344402569431304723006063484727293368419567521373956490117391254325096000755986432083893472918312642708943402892308107710276915583434614363797347189116704293520433133588000810263671352935197179424794791431070966034220493590988994254380552269147162335122495635295940098131371929512319170985521308768158973770952500815320935726488167339173595326063305066271987591264638558652690685628770866607379882765194811372743872522753687232536511911788491918789862930752402829380441486787657686873244220720528954266310865895852239391511828022720166823166727612877696654766073384481010745082809589073428765484611300662312242143446293073021188816754917222018118311568712014230275579636633715195771048510859326454429297390218751533639946931793283879765557629535345462855972472963252539768080932934142864614758719991796878327700497588947811519598265592285126231299380533280469093283450077387360795061451928230381576904563868834498027203075949779375387171164378969983760353167517945109875077713006503783306068169939926208556198977372873715581961457061973530919622706592704537596030165916577862908105741565963407564890189656160339416456889258788700220580132494296266788192673927024083515881602321469913348725324074072963315299884003989237108814540092127124461727059264368767138844887165716174169176491967507883602224156492288413260543081812788144376730300489897362865583207422247284162702506557132824343195557151166723825922423352301824296740928571261940459146032570487959831578110095480361225420128002453092919438420822432690929116745916235155712840021811496373060590579951206551033536249089856887192783018331924224416585721444118377174555218984941259939038213467200536437879215098622768504854065671574701336802633688618282391519009609091400078254342454671036263743115982774205173416424982214722506583693226184413699392267436609405498887383166652297795608214768110366842355758346105398928737958832801013340616027965154360693456048412115907126027889580881387854424247696730849424465658400660845233114393385834784417163874146333071171705480232501612872942991263422350383534348404434187955539955964602999152268731633645678117619773069870632351817924459848989535393190402436657375069759884751333057507446726207733688760896728884783183158892008303529913848614640262905646610937202805019539664320913512185743182271204201946478232573430010539852123019245627405033807610926650992074913059100931485328303642076200241283801106921684859800106547901209957346552817999029438522949749379068152026112155700833907172450885093410871352523243629808924522563463775602586974693627475827067192720083051578772632732755929168945127875576910327683706646967752069936556445404928631047584120337284077377425436382866540892994726925789679617127263922471195930701424121428229363890677274183281361384725616753802306995689841113534786454195119048905973976630319624377867602011960041029605761215983945742055011397885524902556741912459806777668358476408244014351430244993776035652978801583558934944005085024821157959354222378466128227344152910418237734248755480695999133959719346434035070734465727154787086151119675818850825803175983448624684315660190076917249560057999227912691970585986762695257378951546236140967061841389616117521058210761821697491778000028969065673854833795332977863865835810322926259128181012806595452718054229425991741550676996433714999524381762056249712154676274024323407916112522385290009661475625605174126506364473142410349567027373424997030707243674567568285467279726722051046452630485426668171666151114372215839393173868150767898748849492832339024174868702984543530210403087536277313426479846617122777159313881022581559092735145547138968250316820727887810023687515096561247639609427644103744162369497982816102553151731213025036868105330175106784573404909628187224095990633508479172259359377482206800426279549025347145589960461239253968228437888805360459596989716156008076547052762292029499237542781176917069671390522162133404713908985831854019130908986378839065485897887045862202234500550065522373555358729594074992593533064903160311397148639224222922471648527503467190847843621510900110376161590280555075581843946588082867328627062325162394074642405452586369357400314238622775525341582092120290512454656207321606341647985708932303260085926267467287342004462236300514835327306111694779575860345751558240139213021071711873463567385800589575101991854157510153168834408722130453353366195285772869523245184842567643479442881694076057959670839814729311544905806020268491210592891165249532454959326987863877189510596490307405059600010104885438493408572803074477929847561476318348460916736265411747753272999914807161711307258442920647517579889274787069954345732452683411323499520526290437822570865863410755804474288975622668135891677874365871425609091271368910077628668900685696691716350334840755599470335117722711035523784447205608745732254105668702635805638526887497610238244619298673484789743327602568325223252375540902145758891487527504786065435733903936245768747321272489944990674443122549810471011374639833464108186883965820756539066124193211945212258035582703187832835627150444656050122677641777847624053386635664325939571504887222382976829134479914676478014016820449538974246095642879768913913970130073524269650940372608484590935307169174187777280663889120112530968242182237076298165678519969557870016130920990638279036349856432358164065468627099185037823399159606370559770938344959777183407082932040680579818393171734595432137452218287679657686849627333449075489269820871337926080588268363634113196045805962810363585286017172973861495822092178710578793643948506746998060945514690564060373014497836911687439753033625242085489998820340255132567931214151294750659487441592456331185154242771467977613274149444882611048553748321208378698746014387202773674325868671803200074385309708134930138765696336028227909071331815391310098746368433239692100704891258277252598967456768941767479017793608891155935709057630144781840826395119629578613958468863540651877314387312342286676411718748674407895432653845861324149469583512039817360634664446696406631695707429874049687456343341727137717361081597786875639213266993289424023288920831196480076348828487147928879371760457760066785211589462676952613721514366005002467918441546371314113783449793775789415778285002617405757138080656481891047439081748242750913322776857932594751903063429455219888783943067653720756334720468522472528244366097156504204491914699443571113844650336729247660219268568412077522128454775909119100565993362556861773210418521246532671494987877978000686361707309521585277358973330392221678948215002631952040148559369306352772637220180785709777119590248108272228551080280836254121291615476837418482698878865668216735374198640651790957515155994936973502146489357980580767408522933019217892446394567512990170322727937304504105206902472767245182264502462316656714091882383782983535877999058355133272211433426289294156568243301065176473678669376157540527828572304509586001724828748543837735026878345727780903524137786971346144511572209328148146194471181043746213495841674542301351232064650408524124242365607987730421236943388397543431479643896843363095724225701513008755757444398534496781098804484718484197866594118715622385368652300610750902776318181908799653496726572076752838821730468778966658906835703009694344557252442758941158502916483243590853710208234047816007851767879328632259672616288307938553399739866703833045238053413612655140664943819746807046564243816383656780193595553179837162902064454609109041907651687413208769520022229131353004175460146702887695569095167961433595384793879216765502585587232908896184030626340680851827253073789253046996735131525945216832277458096255989460125466735003527010437594049751953359733226958595042487995893580449523222948975387935095631843309234966340545534787786479259994499282419265606212674072856850920130175548976080828140267301777747139051504923116309118316165084054204554585434876794491748122723474417310973030385911243858250649570867694689364879852963505627890914293388926472962565831605310069808558994863414482012003694643641362337484158108881925444073252950193952679880657929078563745128437677288665815666537973796112158253708555256735270433753228302110770486788326887413572892319454716237022736166751579236340937488489440382339232974194023791177335614968012122538868073288309077347307053177895439789521720766422546840362516238616934519709710306331247695562145858927081868435991294720015758485964292777803155075446091805254423216697998266304861434999607744310818974415835838949876366175388373960976208448190997201437839291760752860450442874738534843729007368621579643636287039058402187536594619526895948823019706872498128908863881173140382644411560789614169142074466681314108447136000390537826962914641310979708301443469036080387736102015113739923772965464741802829003033818226468025917026047567529380584156349974472399834414590820115831148176680571739874972808933828681578751031150893107102942001829553544070325908036313985368534171245837497943918776668771899042458179638617768401907897942808539210193698514010413761709999361886633614320991408320207054510294032541158916322511245347233820760740871852697768560375862730855942608522170684530083995853294307559851559900967292939547645075935263797655573418235265689058835020172230287168381732715499829055879842909009085289696988629345743099050668399105970414957157356295553293830749198906527013735826597747709968188600724890004571795024841598998676652851934238583010549093525413020897057823191557294028095779046444869193081213763922928015502850237946972394953191032057117388366179467738904775435383014916214571636594733188692988233653373948485483680185167147104896462390945153650095121613186093463919191756260838808329907614060868844821523872667774971380466024997666031403527451479197200180791610289046909135422914388376593114256890279342279861739839301145609275639072745312152816961857801474739301504424657790519821345306059497403097785265037883114917255767076750676491881737101684142863539230526331620402709976767592081862791858186290894252209571887893992126703002336631682109823602191695984883350799353828969999457868347151155478518218858971407083981336157621431415181948527266479861253757804642902236223222378074983021081074816572555957830644514440470413494262733987146411665994004570355289611596900104873727305785095741149066021047640804349267149803847109025970157157699849424289191345119972830704411875151848752788471876629313313273093225857133146082623181797242058377102950887484868080577434940977841771655877787564132664283780069951799423572567323183183773406255218556942961495829183942733416729501579533893821376926491602802836929963712687383483995331138583685372942119449063700869348169574102134412814485953091791494044323728129901748930082831545436106497782481581209688669194940904933511298172487362274865426574428638385196824731725340610992631501951355072558278848247194349969642021871902995831918882217534254512825758555281469975070954387782215236255446664949307583268366248996774985511426441061509602908823934112940957227576736126507149344520112844106398788188459367480904180576761329797936973858667405697679362697946583779647578049214547786912398376950863521472661800215225142655774064121055866700349809244202095664873760271230360783483557279190911052942008521525423430252355170800573221566566656322989796956125618924900681666594293054317559100586436920885151401358116678830659049767910500702550188214299497454479633136660509683755484144324663359799548375133856517847318998428179391146559333051477336375402514339369537859772924256041630366917540519275182558990253323215138704243038417692952720708149269627013575203218281205949215767651865044548525427673725837025218836308640103071825595327148194785171888960224566942955526586407699789845028656855942117444079321599753762788452986178294658852835282294350986192247043138094695842590998609549548629962682069282680659221655341416490091974119090603920166333086239027293715238817138037212957939011493534653484720244083849521040533447993694170151366777678026260882725699240705765328776889032250359498529859539456195980486906524122103318651407910335887352839631586844565416667360091868136928065730121342387876550298846492841398817027491311957890670993272373955700650304651038734521585518119485273217526211717888915730707092920183979359594876102372334333922563448360769357792987265682825352392194414509857712059117133514464559706696482817573529731934487360632738737161466196449086684426467834192000195305865421074698417444202233869546326290528944790395951031507310207718509137226168755763967154403456156561366845785601603985098772509244792373904230812957183417557446493301338351448797445905717053729972130039499370979148144886249420186988868227231896082809792104057278046634287994373593850280687478698187078733781935464956270275047348051713260820757778728505826381288426808792407472385886508521292098731225844243802260020594952856699628043548386281724941896171918478808394240201175144793458526329071129748550085581953492183535529006045937880813792292965544286843828692749900272451526029863399661883681978081972615680916894709650622398293735379275582835625291613550569634165007300209222563803619223625177763580212601720772114698817248322164791939824073425549378347013881730762547284912241422253784834510197394860325667401443141110460768037079509054829443971995653924197742209606604942475209301501371666451142094550444918741166545232961657057910456932237579418779663103381889806228712937467575482243365043043258342765160116872444095560862073309506156576282407230600473816959195048436514756433669490884421022353820041066574695629596005450456093553773672704672954962210599072322714468949343789023630678765982404876580128231373952086974366070083216205369264094596845970249292000789638812692676773153615371102198442954025805825272221375636741378261310759385384989103999027508343685652849971137808579240864065969803914977408332213747013451068436379556566150403703767692713503139563002500205400227822184178107839122690136017781931747800836724745822425055716669881731966885791310927794522110549616281672052016082175294565498755073390069469465286346618642245764276761786583735987988583621574209931279125641997432534293667984667026824674428626858204081359941284780799608712061391397203484585613733852384348925286681823881165660198555566500131286790955460730756967388111499075185506670653752727330499524864087015074044272591555492086773131763538481441557364619386521416571516089649224232556201201536527405178258130058883569754649332754807148473935571241895719152774853121413626569252586732134332056176234027519962254252706069542363293586503107380260973647275982319378912836745058385064212393157537603830944211974352935470490111416198869090307088833126538673685866481754044194032701591522813608954041472545136995859885919465091404521302050167195325879266864489282205278414566697586599016763215490580637554265146033182675158644415283357342892316795244784396850542178413921523054739385023170390173752602505970375272537614939677694281507698042282298011710861634215874927225665816735556212725795010677196828937958705627395086337170677873757857378775683199086921771971230120544106132490971768538857116123748235776574013565101576661172261689719881353071683316671661921258866804236409422988312609466572528380212128057961484709948284465170782698088325632114056645084877486602634608442571215610203237909742128172594319684424691192609920579322329764220573866625038637217652191093411312354589448114658352470931872620854354301898032244614589376325345756087360288662263084066042605852976517142015432226275675680967357054605871126305984508864052868163487408064946643798435690228257661752337575288113246178295152743116047530758497290020198316727025941035816900399847594337466458341598165698755285328152723834759618000633596765290329179793974185432933599096091207141011597809897999962395676209130272305215013161581877759660497312917742877853685093091982343783323897901988828822977499234383168671195677793778727140952531500683261163308037185164950065553040720183125082488381346472185496818013289706114582566963729962465612736989337003337547427326180952048559106884861703485293006155008663186493377749966350262606281702652064919954948860961289629682042835039284237001716220811451908860247631540748488154020228370358894468428966576894227671038492757642460540763655592224193280305669439626344928546506256691870368996025621923741196605557305258917048224965023283621669755514510069613582539252693051795763798377164161311431987810324903396382781925585051899004492210753349304308924862211719897157278029175356276304190362718078377559000044880815232885368411290029053003295006593435133213167130338943759190454544289893783876518159112715617195711349932929552776478126426334597321828544245376484634744223092298574116835309062976017700951252225613733693186712591806553099864781389113763199923226504549635277135891701350122222937357670170704674341183177457625125178278372047026606051542437664496691347704567978428629040962589894328919358009232453509543634291767046811722022548481461528905599382378153706299972768321582836198171010385252970136987620895514524085045824178363072747465373077649175986480643267421569004558467941787556387246428411613430392494127298574833920316051825175759063386073064471492891711812912148815829233729665496356818196412642244647439240153452646654677470780671131743443763754873900556451760439645337100176509530638281237097110500447895503074814559298186314068092242309143913048699567500484706938826102379916230420055007303116601429295644331754438720360730914175481486324214127202298964574804684089431621500931369983606345414096554736290687517957751540780731345579843486926762213477337519044428549328116886338669333459862540751190639904698086649813857662561965840454615211198850662132036244715108616207115277095578308487420452856205012603471652377540246500839511357592123911053511310878553146601559885455175583880114738412805133714217343556252959688751925263118705167480435192591758869339974841547141914817209432317004577245095284697146710226212638884053201522935188289046498294617316213148258701965859823115566660177399643709999039888010713032053053291801825514308728667232446072920418357690926033527447685026003178987971910215990302040533726907817374026057883608171865434921436308124970655882024586433395849878604024722721270899004498548130751118871750442710369818989079199543118266163007214850074793590706658782231831214642578807494674545979333939780114874273557265177006666781873133754196511568820079341803576359636987975223702580346005879865621456435723510827479864603835715213649505076168084701256650705368280754076007902445549144807190777111228109977730238133437979688647749091081164325510852148593935586439847951634654954622050264914480728473422135118368365763748624445235628833510596399758144642818949269186288434893672969932900337647372258281762636174870351164751499343426303162630695158709542789709625363312329171364893177746240935379633383001329331059950602510902451312738830521242090139853144497216141296108329902079947418682670798843204759715352721009670261787735502220099609276407436334776412389511346932131779878534738090694858029655573917228726558075304516253336314426148799623978680988293080029181482988372876335464060273692587533034321417199924990235904380001246496625272489038407737365514540558525155065485151352857454490685952721002117352486877577317358400485456510879323137055110921148887456036989909288559483767184472552798209255122963213568753300369815646276431856278527302841112444303109561998934036541585424153387982355612723283969353781114587125873082964812295908214110421817494248060529743302356745000143570792733482979474465417504935895050223221467085675023448445194263564746634091619410277805936309196587308242506235174821994475811485410637244279326186423062749608309181073388789989935568588824811961251250908002537544713205766474145056470584617044144008240833565331249408847840325924147350054498888546346477455992091678565105406100713371657636451415425929984092846925405816160228699180360110190964182117427822870409945886741975579644213983950465997208461784395273014465361392201487602307262647201623264085067044334975009200694629402869936816781439244038073866491605612218808253085973395800745412275352061463861594698127631735443812935666690894325263898836029559693230299457286677033875850548762868881793369318088734957893750242184040448692700054839151263490879883785919724524449478514765071946972940013657023344806012115300440437393119190330363684896961870943389989245517211054088509502702406566601896471989903200847681325979961018555593114518123608256347370455041211212169359260587627538003530786744598628959293156085896752668780777479468483231631248357108326534493108263169206515947703373716715425222695076808431369702563836918819796542850606611658126930981050448929383990887454186584363053933190883831697831076844778799742815106226150035589373976973910189201109220133185484290825492456148612220302295338082259379369206188044067929670963723983396172298852165552207020103766570076994291558351568244922459346416802928365695912532674397842687716440899360649037842554991661548178316802596016407292411367833624201395721826926974940262310696583269510972929031407355703947598389657564652218849855232735473422772962366567395292442557835338079777893624038740337990650211163522124207686891571787560065871607640870211572302031518894039896214452448513441608327775200437904386844633480514897614224536437191477630690895255351902012279766990060381416496657871720493597198015235195193408315567592844546058465000662572339683639285031616344817872116514511144704913767390909317596638176319601366197413912011331827720210748391719806029304223219044182280452925589464447070629542311123743288419322066632163418492671150373983803319247703263718305288316745050559928105359830813958797160052105863527995812756119586880300563789873177214211122294758601287725955104220452259199117877076287120367375275426333608198359247842312048873318288528730093378053553228041982020999992530435540725337354779832154982478505267706585634318032951755541056318460260776081872610893661655745184196884202921587142595265958022425813405257566453027314138069223067072515488107491145108337711536161145023346660976251334506801435394778538855719096548625969057546932478083598449806525095663426679361146453852330419027181465365991601731073157011710501274245997784123505180833534334123886044284136185180093289115477139833990154627147027016002008152733640488185767584061946476576434645309391543372742866776092664702378031268139789524785997903626882682190588060056897073040268416849426575600299624834346219941590283583793876956442782704710158267830831809430278358538801127236425442207776326179649393517866817260421103857048468915666718814375172718650819742804429362426442481928862914052590990352408670506142021555855392023014277513476885269716249209023818167540403155909922307314006233641274515419736848968583106662979017467504029141005421456049957752443320050858388689781884271077000350169787148272634078498089984934505267735912997493623663678146304295825531601538695882347984116593007929855443542450308368162399118813002932066065418444624676396390788311433448952111163315945203970027194378167403390394143850384258398103381391914184725722593418220726589690021006044179705429324775093299205280819363599489542476575709254553179677426277129670354404696967758116367558236455609725647834837026667521897928906897047320095972095018067941834712903724393007121966273804468771810961240845420358265099904606217529411618819716849731623366423662226795965095544121143636045953286302250696620192990325463398478591448000786010449752002833551394037166242407351926006186195660907373091280982596255704379046826395150315224993333240714774469398577607254037563533916847541111260905220452172285666352905591499872942020206677183579286550894126801417257533243145153932989039561992424223482558762924591221447288066207785289289596520324898706090458672934935552284003443421128276299200872404280390040446140852545313964507710005382849029967312003727048969511551865571414501668961499724558431355440845162272256455583287025757121467395094817602393049951230863327609576570965486313624580427819803177103637346317777553168017569789565050701477688158118915821514042428737728794642103908539422129899297874531432217410845722293018751444157219057860735649537882825418920238250728138046480736804346580147290367878308445911103614761896852105974409778412731220681598611635300865310764451986908944421755797545110622238087426332220985909703656680052986977043046004754998594949333956921592667210474709337047596550448233508775373371111212583653793398762264271354624570590679710127036948704362566599486230712355224412297786725524812034229702329046361326620438801503687847186103640541596873479194251208427068952901546731740279818944527082534212363284452257996421672695620664592423803789150410432219155068200875485054148865828721802635448435293967690471886591866120014579983992428625573807951934890006139752512014920621499804777613573193663692384069417205308537901378665858496795710634382105419295916456534291552711910739194255310404266083941227693023472077641892793400998590941790103263772516191517243063366665242194532483522436429850200383777880066345684915537393780767743384851759310271071952676398635840096035922202007741829599121965119323888917665417056212806278142937790814538361384902851285215753203979322146769144803495155017992956553356117512136452480667273771928716920889840493846513068967971672749234561303685572819942276961253413692390005330611587314102298991619935109571244260926956520005583582504430114151769799475898886674707979117906052819231494895748729271513930189070930104796692030087511546485206810198664247755176224901125666202241460970648970098613888421858792583103262029787765310090792834483360994876726992524686469330525803350872811884802521840336951537474598640384451878872944690238980395928072279806608246325888614105671667603153064619281458645587081999336688073180755945607324589782963626267150913666728736981462336320104304110947447397811467008345294727622734705916615558760525238787138548495612832818569715579591482688023567303110486713816804345811107188079076962066204573209486216995786783164189208252218930722871354320049251137952081588408276850168497593798845012114515142126286834117881117367375340955695845820819744667193928209079305405881716856935514896965673732532634642069687954101019408794457938297303690020714086542557776707085984148841503678442793901397509158007310346381625606415260936426127177108440358917563183783150952030750627488445899018059398629996748809720930041098513790001156990969996420864196341289297155230157896241310301148890933392586691893158799775627335263745823571348971548786721247943620114081267229583788132792566040788843294700684945365734299984380908575018860158708991816880417841188642243135932030167969871390176495094177655979455126385222641919500766777850664268179667923086482373926991672828077797994015232764997439847092912041690135622762736179402479913160064697840524003988939793208587546783897009414639746699268521338519507321629927545734556417107652941274104491012600397350515870399345262164011468118513590153642937500787834572726106119703452407348276795135824967824647867180963774256170383421167229372808809746926052472405668868052546764419548130714582764322840854935530783134394059099614739432973764623655652204406529330113609315637720519967333596766741698846628498335607301601496511097567584482620223742698143279877687497433328866429463641442825324171975204909209200409849963208813644954881349454577463661279593914709279716219649895951506178657077180794581577839538192451542041286969915503723597250599448392303859493642598398399938083464872448761656320937423408502189397010319282742125318436036478889668376765249992205222785289635480586969799202413063524973283154176477511174772591627441704766450250164617123603311246696091572313671564128402912972838114495883242517434560053550803980072729282818664875437378396594302001391166183882137181218409502231027347789771520630373339439389281890235492676411600851648276995729664912358839044677113518666244906677603097152623869812547241522988594726073580935156590822531180412076522620364927355331036436511809314116209937256548449909002955043587197299925491080995394114134453289740146966046680192291300649205551320440713959591891991713920503355350163658509172310199048418683464476034099709940703998669683212074497999505402647502127785730007450315152772563726092925041479532535380594891622827604693679847100761272452446515852209810848948526867458626017635122508444448286329294313926242977229858928673085591727815617093297093190822699708712462296914831085110902549175796396932891742813184871451725763462471432061045115660260100090460442968328544374584248313704904232880608074789429320349593151223070062740086147575847903637883195361983175646761401258289738228086597900631654334245431001341129993973517223048781562370188647954863079209574864425955641673090786103928624086941346904628431902623669000116488111690922787044332815145754727885998348906154704193644314907938048868306045684703994310154506162904237258163147839944136771867430964558014370775691812223353813338503834161927339022166737598992418249094472327300562195765781675423389725545079729806601598931043681637292469317936183322402098355469356008284936706919450921782184614315007438112910725817643772574266600543559579180581615107269235189162703612611745284140660067562594995225325619768952635057170971051625209048358034356410332577187372945999108658968025872634076308751362460773964472633166528831466245719613602785424964463223436709745140530690491520925600499700180885455332922334614572965482632566548618930306505947873131661084618011282677632177821273004902298334297258902014315742322150039417306104706163350683198480398295875305801974398999887442592860001832054197943665670412781314546205187575287896533409724768665292095614445834584141931182310016756191894716571070528685281942480521042147767245069631907930800455755169587330328219332502694678645978286636119187563312452531796149808666653066234934366395066107050967573336260132392487672729422096490478371593785233480423657931496921782331261572133120354257067241770366411241210463251372066185145717482939948224479633434544425150469789484814042860520116259783743458225457282186507217960106531697034624504769644651256545669890825936613023011663652221386890059463060479378885549915107701374857120127924915878092597209986678869218248067498636926527564671995849808013005545274619494216685563892298507930749650916968197113083423658813955375629556650145223507715455553064380558092123630767730286338072659255780898286071270931539517182929413788993683947974607980574167617190066117135541804329779431536708380799649348079412911020986489541618472243308649587185113295541972987613962934172712443484312188393723914512378067907583167925607167347470897969822667434794134835413498041073710228115984097192023553214127946105686752659923394003405947796703648856821463901945023027871544450015182167169730818220682225043838540068538759975682843050273653683056880551691635059364969845306734011391571053538747931361239206941242442618507170454451605273350434818763120247195559984122913298817208367678184677082392882095341876323016207817625131919631177895862178745536605608568091207793187906413735857173683098423649130927493387636063107703359622578865215708407880694862533702819227257207001343658884375332742556690066206604310493943023778251572171426862943496208471846590229400373135824869609870690699860352139849014042254522696961188886614337188448225210770337570926457719525391726926745907549783389727645919725915657298722651680157684667938305862508728448463298064966245643678235891139215315752925697449181999954023237478735460113301287060580568437875570326639603244315143105775562240802804522279010007145080473383156280621607328288791856553194424523336023110245581540630459339909941089656153041826986858073872520495719382639281183165453578548321217472832109677368021798547090595396939506930619651173586526270394128864140709199157970973226891973059255844286367235304603201936651172546576343090073043670282738427237720132195767859299420618911519891077450157875254870570934359565614324701523072566790496173216793245342951199903003405258660387556236139951229820819368142242885445736631597017182915372863586913959385702347115042432623032342085267396901788169704159591564693058152628776175743055506263627515183163304453555666494572683793195427351564022133097386650917897871944561490586402720960224192084890910864817421870941665754803644889638601616826334788295394368259621459566490064161157319771481839296574587313309250505623284390501817175716464526022938012131717971616353575355078409295907999717199680007018175513092474436337237749148261889669954850960559356646869733007551953748353049659313772300827341019732849314807225822497912965272721161886591635397272300725213242232710615182383688190365452191908137693456961609680147056005400371092083648757024275078498281551821296433706986660435241167732010843246225978745566113466934486214698371479964911007215351558782043155742305057682658488491361037020165113779416427310422722026248630314915893715055058644823024815529368341434729586358242623946755011718346488296939979488729856373740869765622374963023609097423426794818742188922240719577353976328854191615414918652236891081055002897256283270118183193768425146020008369208640531006699343008962374548418042889587883181003746129362798468807939901434640687666287931377626335832864701196504946723237075876685942033166116241644660877732274798710180485282131996731770483668601275717180827273382798458328828932364918125945950468424476746733026488854778758180309937956699772843470133600620497791046740099516750634263362957321774106091359189603248686750457939497996729048550336063813671833794883552284126340331544853787671198019476067661844519974876228003167811640614371145886909956421297889221355612302486674182354864449044827926824344761927971250372286660776967373640581559578947518240761357490491592398196885520574922003942097898569792717345367059983678876716595411548051395141583679671893832531682734028891923247821154352351801721657700698761525466749542327947525416980166707441855798848390372240861296128561040509696214270480797308032607248131255892437842086704858618918700626867718655462437331469512610486245795673300392704916765682184515915047615448207363017028936831137343630964824461642377410148612935743279869866761041829555837122863861206895908909160307524611876986945366760750666551390904378357130148062642284781851209590770082352517917699416276570359361384008214674704283252549889123403966824825198028882749892443363969384456737201796975701059501032174060025576307098002348543525020385025825698874464839675362208188946000392967151949749159457713184542839480451947004012464009466962566493798587780025350845311327786490790159500239784181315323471844581201315934531891895166183895770010327674417515473320853165792370407896302828123978983027305353729590336109069257301132142255687883990273432107808262343506019580517316423042131864660207636855684511773495356873138029897058284037254883144641042399795513885173479050209558081262587552673152627400060458811563413816697923037816321497503450193045813400835608953129988184800819991989553270677721877388835698816088755503568216589850044978856456557972974907753668873992967133192631196640891557510233290447070156006915441984537312955626282067823263659915297143622260006478244294548582622880048216851438724732723869937114361102725667563943069863390611218558226685155413124858850482264909628656743968759952756172291880696245929838006891549031647124552135534536936015378712886627807460772545086760845943881572573803673015087857643727956516077633842222625510820654648628657467738460394372730886408313578076510807656237396204770084016137724175762068165234088931340530369876567395475305252214554724559720628455849401996241550015601051182796224824052794113394262755064569875687685478946026095704437902928700670246570383368834466790146748244698758845713058496309578153561952055463982312836257474043955494126290664603743218197359698954511187789682937296126613580322924793014096590702801676457932967119676975750482804027634834327266495507504406761835938046574194064074464414281086024246646699464437161071816726519895523617580174308962987204169591837577164980481198050969455962388778201683360356398376909391188819170944623208285255416362683021459262533827875819647048103303217637331173826835145897324273119844149096143419671718122580288392257275870818094568920716802997829656050107620486387671166581022086069058875689247497684146192187291346511955548989892251500247022868670193895538804538435133563296756703703559292656038529905676367852902317255181843880208635594028094891383236745399494449659039435645138031361602530427224408341071083328321058251881832291845856249821631239110968331208883802592007962638852146897356451298508096121132720942555756643951196219066467479852610319825456558548845548326022274595505252006177898699106726178991894184603741946544230768660376784320429692501543176153844266807498177462300920994422822401705397031910903879438482181657820908841928994034271655075950352558431580217013316333418228148953993233380988807613901811354084930796319561924043182427905551959778158361168205218662783170925433371002350936438056287472886717643957644592682396556421483054098765584713660175717301143416070285434336701394686472416391999954625215598329841747340390471658229265695842631099914551828901190380820113165148940695780609686272922997207139331278067673037952246935240893753117689645926329071263227352814803472191815526146542222829293597611031497724027907828976826943924539674149339478814556324709921373895591465132402151430334301056876855671945744821532791253573666541737377355999420169325274279304529791875099987744347365220126737639074045863582988367111365786353256963035408371505852654922967320376061606180720536507415637401460193494341032418933932071093919549381223291351260609554414897617050962794380547762213288351254220489901002198674852151394029230720650346388406764647610577938058765931912476046579982181214753000487451605971442143096038535812442233861787780580408729810289985426716621768367901717110424275058533316876743198199673412501500555963186332365806196325605205931977088683494939905555805384274500124703448738241730791968523001740102223476953698335586634787192214930574749380178523853169799379746127108324065298214929294634665630874790495067774098420168032665695719466015078982455336026247008818024056444169730241699858409272455305269878626704156726989219829296085796299937708448995943873080157916142818679474364938977443428013035641176586733233463360622609263059705789131002419104003320446563119522382838679274842507169720092690918404744645516514651212094749068108020664359531960103395235862797700931744329622475624495741585449858628326333483691919911890262376812684633166916237712292433900458870510458798953705279416445150456544583207068192781675686440783294907268301592165045900473005953047797811784687254457316911177524905194789544192688674300678524258087287821123810357268162918999514586170469804941379960202261646754721784378735686440183379862810754711063750415772640206372120363994481498110654034999377376134966439456506582068581642853013736597330143571822588766373545699822023751065800232069511462422491976472599578230524036765924873317530768779579219691575789111541860907882778069965405889914237493806814347558734399238611221728911853533549823633934653262049382847071882720599566931883009457390351271730883126131328792973391948458738193628702056885913035314325354571689245756122370776529474912815771609449017236102923291285375926500446935679331284785517769050107408090498869450369038804056261832752660282314164929994958104889043988740413165290371954394839308290235771681236663276649268444792105977265501804223581758900520621848360464445979758354433295758146166586782796415175784895194516944469188487539348136205552559503392899833407637784557422753055631084300352317814539993143282084578586780377456618444451536047330241323831938546136170386379348043936479647972557639133553416651344131273393343790740723495609615979098862979088063842919329099457625903472575334113674956755530402378978362924460452380619578926131960231861878995971250043244138029526289029605144767789930928191004176449388660247932263850805111194442523892866982659894400973963684411881260579089558901857693729765676791372582017201916162481161380779890358465817270581877589280014250347990741052563583363896141661468501414127809224493212795835152354689514188554764799407872860080600423088746261569433543178223443521695178046043697806043059581060768771841837831275317610335101281928561269003762258898339668391494027445010680824572823048479826373537379189783737359565374970425057869661402320508827176668782659507574803196427317114246785980022093990508736683343727287379697321708755403357542320932526918636901537295084163722231827304047010277867955057512248518135573590375250407583957895302045678395303748821824627051338908259922390331819172909980611546867568462126095922538962251972713433890046008056376356697638401734193174846991120905428488863339713396379087798003458605572368194729922358950051590414377161786364520571263422651270541085767984183603019040503602052129288055509016915901275272362277990626364641653604383733345103819712460626617020650503598205117021665011410666179510653273331782840307570659313840724748995229310752043138853641997687623215478760747088859612676019256805926764634129580094218018499488654532252701041820735758371153767247996932465952214176562403498672821025800288960279102046836085835796518718298047729895382412291112174865709540060564237944713094244969500680437958633382955975614419811723868378752249901516993163976735959867690693860407673558212678404312181820243558153479121078347056629451436650123487344178135970024404881970988601665051645303156508163020453574943178990257390725020193047616527464263852376159025648809516063335918290329609345795153639936559152982745176891930871955706677222416447269837259466399194285522933923805666939818165335766328758546471695063082286737310318815997281525665165507687231975690366174424066108049545685100192582436503959467415679098424220724927066106442089570294766272048672328607827341998817519907030334476541509356831347336991528604270857915008687754518341035388303145581332994397178220646152120705337290933917977003742487734478875354738976194516954360013127651372108158066044099487685601819445051958869712308850471121193006268331341463719923181711566704645897289268628911945454291835984573121346642258815594247473369335435251948716698312214283370635926357212834526099086608619427440049125728108424803259927281321150412597972610292113836551528029763980639698746518163325572618869424808273438518744753647939938118664909670791261775162759955358879187679234670026147457938441788580339781879721720435380513799560794622017717123156445842472952333955746218702314873427484931118284981028757269254806920727966768049689875423075452918639509744705739373606826182757108604250243395206844001240373682756541469942619252660848547934950902482861353594627668222969243615828650594798796874740532212672985535246466037984521914221873541695137529159519787415234887459925564816874690707416329997645887683808098234675188077583857020446582947925106778759143399530104668112091351660265371554896578194654005574763487992553512080859487370780769167924715287202462258941175543266774920290889175519905534568479074622075408392246851460363616767131988152667277124689007922621971703528939419848176065429977608955978627649635335230001963545131830147918672754418670589934356989143932590980635018400889823941498650726800024549696598032043246204429100657623244179664712450311067643873139933631958653083153415580287795694373073099811375389459798695569365007312300229149032683432967635080968421903544965563295403379753389163378813540760148771399730959891212159126251629672219122351035981171163817812062644363525353917391034966108789312791762943255185036227107940861099233255104584382476124799014380091699895525235212205436289530180859834598340040371438309984630838352913928525632440216223861252904338409502594695147724416193134486854786736385466090722328991895646076535683396489928512520976734933706462611460924395641675226484931845202556884520563280919632715751741936903266812857419623800159738417558758714624866462824511013434068981072885083952520638914740643698948080072261458785292751799625783062586938277346738491073060657062759144484242336481668787034784256515755660814800328584777221782935166128033526437366767660546524811948668785301155045114596889993214808738352119137101813849317807083035437774502205203386650912815529335465557572454816768420332427419521608960093884923149383351170106320220505312786451554298200886782573752623212790529875674256424190938870954609975954977445269967523534476699002880810132577205648707334999115769879792295750160021164636417604427564418970008114164486899645299515757560325773280298886563271678242924572371628418083653829026983383029499982717745858547446247462283075611432348175212346587910649364104409695559689360651764869362907407622745253247835834585431403747615019411375355269452446965617268349172040665850056531274111983103072269818704253813495391656539485455394739886890843847299064288102427401553061347266714583147507268064608965007051870872527462140303075468721898593801543765773409394023172253100821919059100142527246800163793375745611635986927929453383430724548083707368348206424371748390942363980242099302297355033404477159090762533119029699044155308182474480428700102402084465462591336910068822201122765193868158009649535840255330711543291346525600488087707884744377741791007821328189841789225953706130933247368228864740504083446946321398599408790407334759966976504551966873969752518602532541963096638430209813531200299537092642447367480133412687108563822949526165572848122823011396275060485010038889241958666870393698901845746704683148627758138878111720413202330517793692890551016902161456049719622244829791702838468759722447916040692236502248143088607129775045848797625555336386864603714750283558682017531988465948393557105809668955025647133251725637610046397063897358369377638324824021584170808762045160046180793342740951492273072716683725587076121670752456789222186566376761300105485389800111114928741951305257306647659023920913272201499111331065804565864284686856079249771842860992509107425375315586775581155432244623625072110852865458275481433138006347880837893000072017336378227945232613583276177676941727485895935208030085826694658753246345355979318903737837876287918494778271428802364020139139399015613530894556343713940906103080533318454834946331815854664656682532701950443248999276827236113102072739964373832649076925974518370241980598823034951799284395279375203096162377259532249272809427166685735601252586551588688846846227143972582462772435646218386147413758999389376792200211766287233531765486812049122049867215057205390955030966455249711911326163250384878289255632047279422834810991199332445369982657547243241827631103400769431578221625104429016365532273276199254709935520366521609378881667091699407605666609400124315873974055254181875486130718304352516151256571279670622381232698025498448766015466429245902556964623613405629294938914745613074462533444991194070673767131936437357837503866482212263716053463289576016543394442483407765853976302969719863372640071907873898396197915748085960400145639479145344999932656187757137660025581360270523721704326351281740767436535652161741723760066384511965906302589883075768667091127603074278797725877800561776350734964785136134968287882283974038887078710771948835719323191015280448686803516016169924078232400623774637561907411321114725189357557069367307794401933803203598595217238771453321517550379261659388725282959486726387241383432928556454353805535630391735429419477949807609144386380664648766324657532440014800995492707023181160968511373772681534464711063447861762036547128823157000337830883097750040369307592847995324571022368816946422643889060175638665876566469247104513866066750364590665920817886079342980732785066858350326625202715935528533479998791656388552463056609518779335209667256064381983984344695403766864059319851052070007709358858086882810926276950978062050919473883674906053474052398939520002048298264975985020860199059821182937592956418900230141806769663680241926910926869870101936233795072014148189593136999265865844392972122990097907551591866689692670516263951691693372555287340676295758580145620985806762484347524560786246975998186501148430906455572105331713130141337596130961083715036879455817830784615489814631671141398309592884260406745947197122024794581968420892149844039562121329328833931231542318549136578901122452237212737522980067992743670896845478638822596463181322827215193002605466725685449374937693850683682040843187622062648564723887338030846788723700106713491534838094490272143845207487378573722224752279467917392480735708561850024224879451783758258728050133338531170482079158838361189866132369029135634092365635658561443865292222399861876608706046182673211323153656038041502284734230863807916986406600944697038712122381606506686928937149289018719041229159435420202883708338902919173330324239102726331261878232193261485599004337503580703950221644912971995832516424909237804594583254685844735953474367664376797242905355527996385002911089231345059728000934060559881453894063596487848106532458432889113507350522811678680714215014820949057193752242478233701956816947933086831609013798258558910395623761210573615022149344550079190999053179400235073040375630076813864873769359439653061544473709887615309333204414579516809670125287201029895551341494480567022339143010134525736932593377059205348833364902784686153699173128732186465605094664763869778130160093167144902491531564196271297951481430163634865560048804048358961374613778906998620009134591671531928139664957746302587959124330435092312789152720238681416140975696887876016363274816885767163010799209170007582023488845429499854797204328558264960482459892181514646404879795544629728129592602921437834465456831354269197713786097830240718084030030212772595213826413187502008988271564463453203805976515479871402818859600951436507995288688264527026264676990011016125138449339081462564284178493469736065961381934292380659226025558411243411518094635165370661210671581723255572390374564016160842922293438093881934109236246196140353203694412328822143506319247157609264632431991349749188774810634763375126933778160818565377623767693016697031959136829045273133629213647017424749478190344040752594346708046922036848922385037641989383227895562722860363592117361469688300403069362428222056146744736777308752728859943188677525098203705541315828039337455780465062280892032497637920978853186844168468966269943248578597755952830368707433386508816575928882326657845884498802053252327230586296190063237933231419505293216855696474601111820853800210783775942877969949182256478158811497660395548385661216583111960558822765070617704984864063865492913806810235693305370654566648466339894013971542651700176028416213515560150892306606318686184864925627323517444497178113862633313347099649606239805303680012832484672336276769748776923860901876029594994459081864595622564494275267666164318758210222552749046304050958107457117970637377523199010669066292923186806809329810760904891617895899078580034561628537151225807315791579934039463663866939826884268577106029528121680686296059965247362080142450195531903305853479586220867578926452917463806066341608299461782373768943444003582526956121075519366416292771787100018678285236060294902612088545741568066059139256281561066384299197183167220296441367607833511934877440100106500678304793486704099177602134950422454559218358193466633849902332069523971740418494095071937273838889406985098538429660908577491164310995053034594938769421887046757815540468105908527785481135188801252012255690052398073729153366370222320206045127039950649628194170550123721312865130134948966828358151682121733226576954058733841365704467586727719342266006259031243077124520292881025117402230856222034857153694548161010613709713065804729337961014238290942668250158857713207820406135819859074853980495711235073601103488922590774000438781749128683963040123591443538238757319272199853179857393554786029340558748235250453071834354506195342239991344915248633875562184560117275117874818060037569855189500700801188822709634400111238139029359440886120706228833891260498448337127599493615206470599806708135136298232756525303608001396198821412299191201491886306525172650845525941214851538920412653023997888145507283290338090826437953290725231391672011844915593371012676883835428338433674304437520472291102268968692036668270068201459577207109989741071402361032965718888513469777612762395762742040363094098771244403927408610901772265176536666554142094750451278986074214118730789504272422805193444485403059407392390177968609364442467316873384591565576123644209002152422963527384196517292252520975181172264599889096844232347764431920677833354917339995589019915389722652799308045295666633128789567632222286267591816316423003392150904162674771470845032626194637032529551158337394072353902858596679253107218677351588135841526243187293058983964803156463210284033144652470682051066145663666551025774761671134032071202087829199308745552637360893300774968356130373406778181562767813115016394394974892137441573821150755898340690346264180200407790930983766931220036092943927839508895774138950629251162750291502228167094504928489574095593334284896064654572839110054930717341573601519387257655874565290532342061485528768731633428597823751107121476726310460783650851285348860363698643733834571170528772685996914359437935362438204748390534039101747079798090262292953997981425868676079722167625095124893169864199026773553040131407947856061860036469708240149361746857363119438280567501280478154286237412536958795566791254042519010851756233059841083202528448775741589265013173584076503207098664803300576353472833670891338545708630507716667715939095577212294807106191765296647804230385520090770478252318073829599787732342494786100453348029205738724696917225483392861070568587232997625936623785292160221360635715012632286325720060424019419052733472740863262929845678429571385166377520386752888084327995717797773842222581962585425572137446196924252522557593240308853635949651944600929407023282449521362376560060400875850732329589650970343757084318817793280193772115830275540220790909926487490159346572521641501636559591081557710686927950871910281061183158743916124884788724178761881500336104406929237892350248791818902878068175399033059920011548552040677389901381527981528793296680714409937371545701958848403313507961251557002345837330317166783421309465690732487576735344932244900755709020617613260485198011060839735936092673614370039297974550580006044728286008234852498717460277956843622537374245789915025899329499110899348311239566352548171955968007752562468544787907017319061397989213673279093783479552459670354955297279782354680749256262120652252776394633420915016422595810428857868412174499314718978925674914354792425300183222790796899417836634063046490910141359607706980971365261456196722676345953800794609331940799514440840350951352494092178204362829377415126858203617891804381940586898186097538867921060096904388441536046352693432863386972794257677537901935537014528182992072038588821473392877020685564218396287043955378500484374555207396558124647750144682287562311880149500028006193485150878828854029672774241982049374310408847571063148743386061695970888723812590068153481306779807839903408473414768921080321891410826367909688333032824994712359607527895177703950014694001827957914688529537221618828062097892607705865514843311051564821585432024446179735259628383890387244957649992750949177636346825705498584270013587031574955282329658032764855768728143069822336601136159782578135302159105432308909891719700679505603476630788682584434298997182938405731422083438923987050276441279465166128650800315285374588112197838370492703172407155313228407992416565581423113393710833203747714210033927008756084435639618138490837485631849954101827495701775473757232266136349830329971109155672796751393692060588534777884743692453800710016904325622075011647305229297186199513301982351802352692418306071026385358879005437635327762464346222028436654073832383442942236013099242530240830374268393779776311241918366352034377763004338955560984507550693421667347204855502309941527965044000449565117066801901799434080111612795885914544192936533112295397065584714409919803684489133198751548470186318074734431529744662179821648186590284733784715408504345126872919649645718777612956283161828283380738405240231363265182391786715382913271873682694100017666564335834722951552443604179550217916682416092544236353925323941436679568887567692445511918697401122297393235276652427262944828021812865512391303736729956060450877862042492387865529708873718574002298889445039046337535783694576436855872711505671665663460654663920403354878002050295261636731427458483678154449604869824343407175730733791774563062853577144089570574287035809420504403758810097079486315178663810406760236454464578211767936038834812334276613859421753976285084290300394949970404003393447148548162489286246062403075976886575323866664489248066485438105923715858813775119971980347904068020707896069156618458655033536111998720100996226323830162871212668520761821231263798336688700618714226709379914156065273392318850261089243077318974363977173379001922693575620183159650540572019960189187649305255121800431429071904337219350788509420174245041821557871211041364685771857704827234231502580628746104446259172995768174213700626636816344815618457806984486518104341579737714589313918268352167530469449319633532851706840056937216030895194336909216221252033910173800390233098583213200220318845025449442439611495774045595092993680845841989176325779337104846741961959374872771731374223765548997966932959187521062752343312463227029857683739751286241205101055787245887279849492180753143357587332799314693903291399518801929904420096683655654958528935991541243100279327475641531829168465538244813369402138097010207706913119071751506550889131120575359266473088849919582850514548352812022053777584000488984264671525199527427360347296770579036883966796880631055115218134080414794192728589953532662091663139188187636202793063411291930428163203638331786455374129451928718440021924593301137098027817482939134977063470125247782746666985631808918648539975761416617275572146823840184421808610166483413902562811836596782770459170661982668572568888174894056889151533800971782930394676230753040736294487122581902705805525692808010791656580188538530402629447209668709294140382879072735127664929145052156893747490993279001132676696717331686136401791572300610484616623022954563909795656489528620089026787061712273018805820486740314041275967612731769863012309240792905166120132341799962023519049963421101164985018115874339017015118177877437860010362294585583734525723998300296694931063647434511815202490419950679683185278885030467213386024220509982289314058494622639856387240179532312155444074731685165684732166215914268240580784287179859151202506222726631369542615672979049042601859540931457571837759748423235524636986626818907530511684528158229280641861183473892872790019387995205828940657201237850678537451769221344961886768567366573754158191517486454271470128482141246022988389859171395890503889119211652343185680978219994712225972422818925402198236471015845144991920021726323421820925313073489483515044644758297222532279777380473957673418141426809884804581253971810288062821607866354261065230706478357105405923852422599911571530350669864613422618676812384504220491399779299791631458459106313360050310796745212333796506110425626834777801656632942900351972591207406579963947090485189340969601593768084389548328103238079409113724855866676751270602981253397187881555639196882929045076202086856538411003206440228475718639114659336159295729845691497698115590109218558583030954093872851115250681666832397540162937543689069839719386839511182642918659311358584638184927255648564062714591751114873820431118614762510103146108838735509748930353843149010867341956606608406501100739446123039399625323712374073758876970615537340530273884666442233638260555406585447216126141281737522525625968429785579563704900627202370206763875451737427456178921453606605380190494326419282296744554310882870181573218556904807771006462853955626528515943535116993483034824572979572449179872129373899468783823251541510238181284343412736541323412703054448683353194757802578490853037056751250905659034155435165945240539098377132521100051575136959017134277293436123082151721134901279124358131441469835313238846035523595311010295235924329611057400080143824016848045528538063031648955240351760399487001972889566588543063660985629993519250152032054726795143665715015105054982520192229173054171144097430506847213082241219515547519259057160041455997786244344415621113986723195430639487598230331481431203547234930349728658926450355663039527186923632056419313105903094542808734362318359474617665376203663187522759164904266659865445270965721075735812555244974504268505494311032694758705213565905966723085660889301388697529048494047140469370879659193531089838202057000644416989806890014998683686980062763375371204141873635016859677962116583127014028506763005621725700190563011854938402028047470106952717522761429265245269804721639371319583078193413775880626650993252348405907390905893257055423193052530247659325789221021069698760362760219791413499600856761225629481409170105651795997445122286722089978074075980118685979814581733964446849535746630682982264506699152339096161383060421780555303111303359879506993429520140842728957045876332796137063600757060091411941850986882716788664067302678655698663618930607447930859520421928659140476014917250945215959868747006262737345119864948826657477620214544100330516946746516996672665503003933067168009219983331279950011224863542543667159521381314274447373789994526633878268427038295974533022978775503939632050549289652322112279281656714821991575637662177160963885667914725235152405161296669359318110108347830263653639685884631778072981281066571393034838387728564526883625545984282384808891748081472826086758252735147838344250424296144024678447041994092766040822326679998079930805020898687910263309262382802704593598592751666641582540415851960985238946965402415751205859265190630826698893022195754133490256528940186207129676276431707004890187047279551939139333996297580736638768437417702440617611362802052426790711401126637821724810088857638538053505661948693981205284694934220261410302979385268982429814160878658041927581110517627417694634987110010008624439733361486309663378026795100235927802693998976244859938791399061734648344626037844223131377583551562974989631029475441669762263779185827141376683488583145348476065189526803822072333065514681954855404617597644831464071246253184187944892833002176766252683413784637783811963397562574519315298307567076107953593193704692957106834121630368851513188925719430173332146999673217013835989202052643492085298884008754178398600449917490630641544812808207271684210685746072259342455510575843752321782093007928203893112258457792145444784016340495250334999226419072400178233535442516801640921421303909250950727121097680379140538491166872140371319459772812821549510207446314620611885610941914182423285972133623380523692289136595986646063708134002352177158401085909892651411311317601926013744172259364872262449004912047850449906269853920222699048563641599751061026328173669037913374111805677167605694125335412210561841589548353870155290494845902815793430428262853767181553181378776896942205566252613056972018257506400666097379821554045540010123568954812059407139632422797535929249012274076740316706454743514158490360368018609372976565888707054117852603043081936190661767542101068819582648529536465711898167045180972753970919377406000876668760453025003586467361641943453853005481103988764506430999956904230262084966072950573840522294332795823505694012448545833092287987283714975412037721310275273960167212489440620553346995127345926443814287924870601305270448168567324941030192526519117085166311590920781518796674673140063254415500743204815915527326779335701237791636424460918628919983082560738247055827770073251895194880106669482380973975043654378244024486105238370220031282139454762825054113696166258008374346044291238552366143580228339842195690241112006034150710469061072692583441482632253114475896631480820045168243321263141210389656616381577889875781530203260448339453922597551203424954920478502077293230276472173440485932059101923450411595282048337384894078621339819536517132864296510936638057292070952980608931730870262068380643780665220484604143150318448649128925397850150576611811520563160357258449431963713108923557103718972192092922368801208806122734398470308630554837623876638610142162789290034876410578275552426804692021327626237910101738170816301039005142950966174244032903832446459647893487343169918068623497522129083878118655125683364865761037170146602495221971344239025745131192872886969405894481744421538759793562703631505811093309129697026210314003651377039660885320638531282553280056555297521533509663379308386934172963311010395803558172086318769951475304312768608535075863489197980406498089361085248888725586286183336159690791616292001723029246564794952024240462706306607135480981868604195490123063614676015943621825103343521616411789259345381172622510310130548935395285433054030886602369021928825189687155322420684915869944117912241194765511787917992281661118668005052594968792421798655927620293145184384724169347051408581723156493060299927857737724112904900720948886365676894775767545840825466222002218900215163054104713674994206859982888846102540119978829956427161454730560018707604761345913085122627000716862761444864210578538015186778774225051232957614823597816709101327109145977420715261284650497020580848028435517549385633056038636703976007845872150259508220752843507483933749462724479413728244405883984500236134756318105382210717661668969349792793732166957487905615158333848218393055241221468058599282297745937277389386531368109730749491593768962197461656247911603728545376957722260768033155851941316541522152985871268320131407689184306094011700700928035278720862323274097324500127665388350860938482347905367738076976218646766348840932691901224921499441744245750769369596011906709985196717296975730391936810883205644906131682210152517398480790163932735068495104103094995833702073742988844206846940568350141459122036710924029935449147907570303972221915528132679507033169337953052527990586374919940458363141169401499760103261328619094106693902573793014787181046052263331754872669063504260506862986633401095775614400869124736766677167572464691772862290334615604892720776646653415518335136628461816147800115256728074848219608972719814058012164512060590506760285728316559607585346346053574030642832745525673757114108880017542648527938409967169936802842536097175052699564153773506788662721571164279887130180262911061691244224971866634205133907498580665832581137099519721577098262584442206688409560327583306452135996150007104838302049215669705540429182079635787073116442461711019749495311855734087676440801343957800676599016843421169075743243668914244641782596998724763396435192513271821679250322128203800113048335533967397635820793222429676309736429691978506414147747184248726134016140836154275826954020448266195964821766535595391117157383661679066983256193477840157260848502070407331340182991952606817251072495522120576008156211359594236817372661005298185918997839489455956917543322008370032958414134818654633125510862304474602495203848660157361345796717725695480242662109886711571359047870594300433785165611038697144973046227409395579636136867679330768855906591347833373830340379095344714012358926128512322280291656996703052877319386923381644040887597862368903379089957465385629832413444437988726727244531470209849046786442220084760806647521199154411908487860156258773712416318273549483981087404120457031623083745125201531306128833799804330684442889618248514355440214328547136484097989157001972939649900289973267319231582610536237296718896636465545636348878867671955633896104499569287169269779783359258650164752534724803544118070315582251591275695440950987957123495166558214179057135342274377037883932923243520240958345603131575675719100685133195096764243574043526931288803376820691873896257507862867035698493459944348806175768148621853867215867168695122459956550820862917848962600415238249367460426009825821490836727991931174737414675555781317932931039568279640888794949707810259145900035579654088616980347423666906358785022457100242176131669213722152715014035707710175528290430332912284248920941796457272957566377852841121318615652101152628301092509492412779705149544681517248806974285337496350246227488171840518380868640115927196361947469058220853015244695393653719217568761864235785619324193408268081879745956138942848561298304538422902429161522960647979137957618121193076267429171252990841878952109295828349328665652297009894764378019815476325585190291984917271662336432241047376258006198302141403745362328139545957507203223701963779176776350874023668221793494530373210493088455482109236144754659653178442523831578905821137221872534536802251447600107779599139284317340062376943114629731762502333223294636045386982680069279493353625694634145635968607128954336493059185310827596677154339998363466967360909450425698289440636407119086781959086274334000211553573720886321621783821644236862223200249554675615386663382757929060161436707328067722917107894890238192168129062028082911403710821912091004889526413999143980548938358386000058913224276674488041405374317567106809534645665446098439168218165479266912242268057092236371734600160850518116552484101479880383150026099780828060089330903204950885187323599699082174277245088494179043597494083431297339627131105189242689627612519817606209635561411438808967190671817993872450175541137127325877379259853910715457720725743450400303652576484097466456731583076195660619236064334648017290184216751021382881239683268679395524919811702956115227147560030978662193990530095923442296533095322096075394002009582746535500758462516148634564769037619760829517470570066889388012200042869333253600562272579283132839942660444166877043348874739803820339490198630744410492487305057262914707051707373132002231457932875817351646146130345846511584978590537044834498574647074907506146866548239968774459803741829308342136421766683350958938172610457438115463754872123129548363356233610696450783185066525466334790955811119860328281666143764634773987345471711923334493749970202416123174399149976549062592460883491844723298339931978812291508754009744000148667599476576308568109362890850992818027364810540235568633650155719874955614364452108151191171750709949786266201365862137796783229187468237773330157615002927739186996148980608829942156098445578843562717488692296576084719645311741773633336418126815022146431340900686232983181604851813050801768128303631321123345601595860171550967722082574718023853503050116573859236101244655344367105650750140509372377808504526647347310845958698354614819012933769100386764569784653233919938560463748179119885588966043085534997246342018497955476781729279593907861827228167865358895327032972159169189942039037402095618059394355290872376976290000469480038048786046153805478862812951408965870198719018271803706323242078037121864456495823477364370555883033387256551663616405503727754175669306291658495852810324656620045174641476395205173519292230853853292305954223620212857907611672736830661309766783683292562668108025419981289638630130194113772161806010907953522940024431185686873064176699048431999952509678990899255377302875489821909797052209390161373455881880063711798267117689848346077064234941130848215899244782019674879862168735819640436710679843459316729884923492894269463304863800169862298843084340361887831520255414785368394543796738802295078350059898863408634538647245826827157147231995791656877574046011220848741829447588518856033513784909108480422972213453278741636942885357910668654213974396266055538948639627813557832783725856078420637014157442476721091713298817095552795678350465191066666544395975166742823515352657246175454697848283154602434376083281018749921808323495063864917505148406219522136026603817452586932360362455384681733829436477266062202253651110981976918241565565944874238297514235484235948271032011677569625270367589253393247585561417999998865324247847753754066425934102257380155423503670092122439024388091547237896671417675219428003935998880989449676816405245038689510238449308732173345945190241129885097693832026011260288423172440088392101794709050359997901123688959751939455971502530598813132885352878738355429105302648413514284788306780227150348088986610638434535757726817180464474309367873461397772097043249125635652835774009330293289008556778421308964068884512071813589711494526141659681386148884005779838324395333507220555455276715739367808736003328111321994487956458105602247862820000912463136426646461163075034964405914499643124391735092665467720944662850173691334540141252777627272095215961186737113762421723567866881707044640486692269087194012991818641007971510039784135668113076939938012037276822617014356772811210499138184712960320424939704470050845489480107237445795548398790874169731506661306277162893151242172681695937903414682060272406871852528631027513240871748385881409887869216891647434667347600240201762122952106581382890810688817162688716083307834278210427126254189678991405188759641319685215542643791766634263154513272992877757756287012030291751817929117419539481321750002983719900178979216947934102275889752341556614376141704885246239738244176040037139557660284232776310192239614301376167185749155612441025273136620248151723809914267111750031277019201206531338965621662711709168783627127821274688943948463073924859295869462407496206042311761287731399864022282776874359881178854337451060524631984918990121504365974100014779012381819866248516374993819029865965357293995800013397568838101146946454193036505672968146556676013049211803763028056822970999739333754863988010600498652561026052807373971984934073553464796468440862165477277892214796711127960874084947162302218916386768126833732499709856619514312154972850448145023336809996485468916819338415715716662538632493133651253364523966789422831883947068232486601954703157278264355496893684259084002709696584162023084640311583478778879687490765228546651230018456282687562047617703400143707144516258773460202267273255296042248112458555919737142596369163468684141308240559596813546738535593103924386345686037492026429272127233923903146688275414538830480653213973537992763771415646929882595831288804316186140641681286305274223043118295645434253856639912495643147639251056631452349597212646620415497439007052262728038654853653681332625555058192325025529560946187555962501278274610622163222490439299681564933053503798223457069326032091465751476721011583235348636811023657713427450591644064904263360618104391850748939955110138379664420557611730260864084544328745757460650971476851585177699126468158106476759731436032600583902104095794078387997725635714286229823105367753470932517823551557700448600503124689818153086064801318086138992450940212117902266226519322489814233377950494779679999298865962648256424378462729670605360129485219999984432908924596241872862545151687262145415948995083098132825809425611131752349352781278704855489203125692265333883209504590801459797263796369621706577734184347684691375934210795254611437437758612651912714647074152445072621428722659664520967547977115584277747782872575164352756406382792995462939330453074629524453372821788055569530865013703352274544939691442688535351932659452367903106179504974597615330881583377707434794939381682061466851800764422309753597027314472483400533015135455520132273372503349016166253165437805671983665454350356553914786697855932102622414647135699968340404526863898359904691884759947579715994960275104361234827922892830475146920950930080723452018563411529906385198902328522916457455128561129527102442136576255031375320778345487633247258122814729586915638425702860409773286369282106107274852298963569169976097558999493024968970822362579736342467225957697228415972787521570250593260478723517997267720774227553439596360060444856091243934444614843087594157326821568596984198811402097034416733059134061888399325844643782181774724018404258374728060466375895166739895146019657067906305390036055213686501854957060115869895731466096229619511002430043790024754086867946653956054005915228708860094209571298973885089174689955196878761922658857552997822459686356094042202499059187325405030557671979472712300652400829466563786302781426256588135384886472220652948946115869631133460426948112001878924450665197602719425531785275577978151414072196756354549764168275566144623875190098598905001176505375358923435009901333797019767880139051414167618870917560685439187806757978630674400756426387609707541391322807516879075842609827595872735533716500510524023102491900055518090647098359264704503916852649894944957165729742139478958440230808815857065582742913197989277372332162406675700967664216117746574410981789349585204125991222983502879712263243072843733711925006262300775287302634367863130323835862575009406710795658033781098820832931341680662492225828277228220664970155420841067655616468155052848730364922163784335761568946605692218896046181849291536540719832430763067431027968213635253755668103415861892038511298610144666133391753428196578290909588619119951353683121227936879356669793664749508185554357963594242324975882762055349238099211156931125750160949540980788664721197729367753960254519215587214940811636370095021053873522038446245988420433271818668325589657401947367239679878558997138044846347397440765443558706851383608510069168648479092000419255919069714713113500065099246729625226786199801414758667067427164957827751142649011876676205470456635782083351970622928419251562923729176381805843064366263738495146744315763309810598196021885358220537413727684218722036685582714488451993876978384419922432816398913880548841776759471616443016333694896962777865237478619916341365401196609912561671613811137987715417047406821721012452702779995633014826392604063562595617492334420774498413961556604560958859266306833312419153587412505728898548156278393517659591269462099063534647766202410575791235827594453973255754677040442391810775492898560434581128133385443953399704405846041528976052183924600857015648615321973331073892942213075758290251691803140015834302763117644749637023344893238408701744393652136419940345868316519606420076765356720247855564999172371170121256473622222108817302884381269448873477972467084715066608012008935682362741011369413278001217199231408618846955676189327116014394563508701814250668543998968268188467517463741501472190406394272768064435000081944422293826197267129380576846716420059758398608167803510422801930388226482839683373256348196532186315694838661263464988469381849951856552758242433347756366740840025909036066651381640083020069120848236124898635437113942342654610418951116734201089030927697552655412251827091276872982427551154012686705431371046945827683095601106613177779838220733577074063073330299469228054456130367690747097301100876193545584875227222612132028767847277958315145447846215353544143228756002841143872710400359363312258351191313250321598170689801957289987807997031796292615355374009878376793243122346542278046454355054007403023179082949206043894126956104364278072164123924759550023471631568322965496581348365044575179172929335544518483882673832112637566181600104664618235524338389968930026061524091790792354419627750274370823819575665316031115725135152514196157440069573773178728854985522601234713398210260441569117724900533222126521094693871028947100895966659286745291287354721230838478674680649550569189573490919676018660587724938956462855508723063987361679269807201277061659896612353338565156523171129727351125567845614396121318972768082785636983496879147446951556075219174696619306134561886364138359455371056736393469287259594395258062133168966660434367808723077162948441968494912657963532017683333510347736104780552652756151350370799125961496295795105401276926317369318319918613406760947923009280316581034285604398133937508514621180491955753885301424428990318935331426110004009882528872323437817174203384291433173006496272539842058540456056076689188339934052217649779235402531712408827278067323417120755460804198405229712695799807949547547553361411869766250219769630609499872024118281278740915134620098994580300929982319120505739972243902771593238581580922277543688080891102820615673206932974110009631046336184375405102893944662833932799386260877585011245984841066112635544790123199028935645473005871932998091923325675465487182295010883281461863213596364773537241405479936798819122348625526239434632848085010070187975163687492142496944682728064555641093043581437343237992966943963114668063852217832595825282085564547914597424055550675567156486875570268435191745735044715017528851758380987933810023846422872062442956286288483109864796378125226109326435624481432901117342229186931061232047526803175922892814727316691122891694967369794097040461060017358022085515297934227333036509760437758957149858310063814408898015287635641088331000913794894043199365215122871812433858895856094147844938108408620775994242861433018750911335141702684701671517855561958041043193840188443758449710571222922537735200392773213351573566047990943116280355738262909587984247006703616041501174622196856415493023782909731810035075002721656644870936723423541437004459050930425158923091352894165772296534704351230506556033591476467937263154761105743215833100509262609415484089422343393412489179552104690830878834874473927289556564886458560042784392395599627608307978380805093222495046806089488423833135593643133145765691877213257460882438332283671667719578280702361318033360584545313013907554600909693964297338297201388205867419517289607499334182814996964981233037615261557480511296181865928430028632580501976908809451739710935952190171902970274813902529611247642504505699578332972296151376729476360182152740887875431901059386123807633948744484908026951808662081562738669720796771560664623606175042604735314228952256076047412843123958590684411490317758466291739006232146318059879117186208564000553632332181843811581522774947508920422273411451215764003578458174802049070919099292906635320783003091733283166351357332271549762506557221371507212737194314754686763590597448157707604668044702351901097623834526584547562825271240696300236868572666991724849958280809454150709612096878769661504889794333010387872220652244186577897117103370398788381437950081609569559341271124558132989684556238489052826953387002154956960999995564688869112929853661493218732196952192981427417092246429209446967041649929826512291546130844936017975693870023849163951024750105485310636671402052666142303627206345468921283834447332024937293664095464741465456748747603226894632660097034725399345522055771793753992939742062925875763321024038008914012682278480215655660403454845988728510754424122949267251443236725987216761805363597990766235388222701199839933706642074438360308330215168404549657492406007929465359747245560661720931785298612943326720543387393523313747846803045764860957197227093192329222415464878034294491430062459262456136836068072606761140655200986129094564778230294665677662688677868495646457383371044351150300944452988752035981119305449322192857977888590208589959557989745909261529120831926599932942579140667600443211400740402760652968641340413971468708850639751948229278347090335876202976945460803741880494141479908917188518071957434260082785290245168321961111046533935427901963712947791086490772694209564008284461392095777769430198956657263831777621762068818162186858323747991421555726480985246589485124156995993579761978771892509946966401721398721876606083736983947925314503725853413872500437021501931904308565901259915798693090174630448802925414941471095162923654962906182678016675304689172460581096551759226565419633805560000411361558196748111639603487121671741318815871251057775401968802719953683440591364680900904279455083733619510143563120402710747066235537602819036809158737144571051532598419447502607181777193694438405665460210875244482173375866394624510032246085055171850265224724735159635257479222296799110340013084346664534203586933107380348764150885035454723665908881035465528666047915334324840724740773219504545360887637796417194289316745373767801778711486072773722351771025395318650455959336926089605672122495636961788134032072344826187329391963469897860312685350610185828488215541792820320405393741379337439552514984892506428056217674417069578358042686379060725808504345615577412772308211310999036749787613940255450097144036119494037237212662680412183870636107389742578002667854300482137199560615480588580397825661058963707311825677346403610140074004302372157373784295633184014676698913524503635758592089228300510234783408740765011207295939071983152718086265866981316888772072660275340048684687792427454869066897021274447167272041837997066605881851197865825155704453928174820190053582569480908269640478213228952551117976051873166192118592452190625887230534740894653059575205534008681699999689027080417996906302335669106198539481680034813044158795854937568517884381211176828044525503617215701218005171395338461714561193333348984141781193413287911529355637657228889760223053891206789248161000941557091117915792515706679580955925628853669785623317574690026893888926936037027897562323955179459815365760224691094575359363096959034946203363435495475140007181387335286345200297025022583619119949870097057852293537256248341153614602962599202894175370073426351494900632249577978115363048755686719417239999749063604503383645991111176151413649111296419172208315779846203359790951021308224241273535328570500789688920597921110015962238346478257451098194740012303439781685456694918000482706678443442906642305415515325710883051862442765770719866970645073038265155763335417403420850954961621886491607968017792217591684017581444753827259013255055331358856570088448838324843628348336359624116002262431306087365125813599495516951021272429496124807649411834200445728632637745314777853587370094082598632150954641145957287501492484865378281623087869307211914723437578021820256829715587576019200463304533921179913997831261871495881301164036237709447316141615630651355477706286050249521577766774337248478428299466064308539214687155481757767740696857220106109932393396392197673494592703123021043386995508342466817309305592209536453394282739915929754564879571392980075597842078878009518101475331977917518877151689322537318151222762609276520309375346549612356208168377488521615587976419290351023528443178322837020924863867936051780306102973317234281147053985391834829948025182802675800603053510555254940170899704930144187835401967664540419419292845024892722011997568786283696274001500556314460790149472505796905404455036266000713597029066365628356206628619453678565774582007665918515641133399456264137016570006825799888502901088545342678184626359781907301975243877118905281848260392666584006703503094668356926058413308738409234559124863324391588675434893112144628089304021806634720810360315083384974148310049780145206222251919225112199913620353181099819742395246586220379267731922127562568313536379862103728697662498757456779936384299010622292373502734380908590635367824897015553009398514918117504754092961324777705006464059823317734572520152581077812119490473220657144203916368677757260806796971317468293535730292078204779809780498638919557965894813617178881543039809861917478940884286707258038303977591054433899816618083873019467078019424520691470425020113297597400549725719517797033060021849390176973122611294459879638537062695390617131319952335767997441854918788317103804033803670406942381338581117556758706883120416882861376171626721883953582166381976589732414696226836665577456181755360528497403906869811213571276333840141447965861689465461223845365252592982543626522712481456947484135422896407429155983491099989295705875625195939400897003934958597432847392509440462748596223482501883385631024724222925101524403894646446979686216557928742732995948565173340363165581455977223428700539681239298045678271335911139147917782489498981984205233226846600860971044271147507970181124937362728800659693140596153978208474994381949744091605992684287255591319564806415502436878517842685963775311279544914832189162649845656510509122938501763095891640811359361865090498216670723430943010658538978311015606410423952454651984070824129943859493950276347257434825750941444464091827335490833924314430486686048076336317837980017570617397598523242604131150120589386583622863299893273835013948954161192750470626404306188965709921741228832399154601096040310486695373253811040756557707158197136123575238680084149265207905885549506299126924864986802293522935093201826482735934703547822384516310528423105392790392464588466649329168281639074067759057197537171384797916737588158963732134869084598909681396030048736104513230938499354955608587931607048773086390919236926389016672146793212887945323561880910950508091100625646437983983605176022882495694301609093888176998591869641370564349404725162137950787829873929993518128146674581009870255979224693073700426392879181270734503398200729328320199335461893231224535721556182374624682802475259102956661230541831950135789509724255617663849401445000811379189652067978972129450710982339110400279383903124218984451045532698132154583571262091559404068551529819145931787516343818931620109425419786975810910012113791282965390512039209963955523501086546625638761605815720711670412604707307314476674463010895832059171428626023814566913577074059705543790111803185526346431489370164749240932894031488431832958263199547596134299452128391203008748428874751977903034794724672057482829961357686658616442158358725500732504768945538440894973656909224384461343431200607767834160192941605226022839367575329786227110566009208459921606887871536945096087612425222621750021821575099404021517513552847294064646254994377115334349892416319783199321835450184883283881428907584844035499536367246161740439421862475326901183711586621149906582506424969178265019241409431587648653152708999463140994269562719545999995926054087945063239130319698783429487432626216838048960061009725720215755413776923709220946381509771595434380496345492251349861857899350858257908490630492741056045562614162409922831562450707716806424042322725176021122952445912323841462813833482338300763303961336676161690666158455875721933343571246445360363642405811664479232565934007670789705433298579364289119598941387623752142304128455428306578831432165591290618807755154791031759016107558447631379138688717705211436964438573366073323915720849276761412677041595893097045297536282610811717072489150546897449422903652192740057204124234768570256837711935460624879343520753475177905324498699617922719087550470544923270981818397160438912942225216939695595643072625890246620452394544604768232195304575045743782639787120652337816677410784067724496086697268754173932518151853997398476588379598327749131922354300087661270160170184405810508368490125518917284425527866198196514005452534417760480079837346911454931346740649024945185113377038141035272970952994477050004488418882475036383905014304150167448516317163802058150550417849870093882506508375608441038678370037693454929129924744529246278255197902236968727285174100656230897735602180190787220492778978288156547577774013102597674658250660524881576253722001673713304531435497002189238951966682167370167070240138447652342263196149821031137626487704893184243855365454278151157599127062544565843678067478780609552297077986542282429246416380341443523436105657108722877325335738873441987581840742075525270716119769497709392679416163703426866617426586027377180905033183283355525555441124233902109465149120749826198094761085347790716090081814076412444392488472314298233106193914103031424101387595333334111385427974137748974443737985143600197101241592832876991708919638493379892927672773829022068838397739896417004041745859762595223795187425019430672733820756466394477568130969004558417504734587122770751022083801942021801988767528582418031001393807090625638108793116921779391853982319062426300410018975844592289105525408725228657654641818635438585549030169406312267056165584421651503693048841160347113026385622671920552867602467849906680372950907250833732601005681624867632764598880512868433164923597486682833431189497088509757674957165258404113668700366958087099985265982520271237915739242983705735370253302657681649982988966070140299397002031849292991962064569290465715032458610618403176987318506507980798708190399440808183271252793633984184607524738663741416110802511635782605646757791783788708440497637384357075197011206801327450253070770981348960026699119398891912307201121819923367769518781268983872155905016166077968909405504942753577446193069598896036009893861809156102131392699363345150876072607575641052184052223176891741540578126832344946578307398160129669302660621944515903044529491963817498801444547558941910394306683947527058805073437646989932588541105555186365057765001328860301351207185460730253732456792575763040362264909423795262264022807561091958826391967753647841921242961235850342868207985117130531417305992176375638073804488936860792852241227319702441302040953706740515509080547280859693813874949443892773782082804192703869964271173231898190785529892635867270258647158797029032575501709398533239271120783237639280550571982724913772481373516032561846209042707969003264260486989103389780895880188201945170156500841740963444592712159588250756942522062073936483818195840964235299188709478998116479784879686948010943969730885061164801595224924382212852426930717016321567644518939934475387425267998259845256129140407226900070453286294579788773677869982251393559769461807611677277164386968923753914063853585057337759552939867677214938833653774250096475208899326628347713329633407123706328250236426701378369375191563035992143589704345838475029449963523485522818854434085555370130944904184566487339882257764236076838074712503983957111323938211920917838007790263065088935512904021950588200212719955493177476800151316381185138752198779833456590970808890387460188301301146587012962804055961608046071914187442276685671812189354376325674272468515980501872966518457209757816395349928931524276697965284277964448121804146397122988747650312034793642360461140750736468957144733257583446209093607193635862690670182074562702567953907724810685511705132427560264757063734423252544568179431863553815938910611338588410246927576194496985737716113752563398541656510192259001176702209781433820764610281875904208134955932966095507758760432831299421462927005115728179877743972022158878327941571169444674264089552342928719888728349845025574407998773645692182175533439767636326693856202993787171798021865270887225916596832261472644932226296605074133339326792299916051142993408310314122527190281502094245909546667757770587385562760288802101786243197362552124171070464175310117184378658150724885623141427568087902133609509508623293297193919177491038245012127675047993132306356045046210644200588289938302837108043733086421069201695464740338599068889655421275173008378927618804981991815364384354350961871800517458672762927196458453544581416283916863451737510838689977671583215472138781457713870142585221932382432678957920029429287173117855677209178530106030973190665553597107483473130145607251459482236352162195430908496573818324129758183209775888325566326043896996544022839568248405839702772254264494725819185275188547904503028118764217155213627876288990574210220541978630008045347517528749200164214431763602531366246570316281503470053317054972603905197714633787648124724708626350023741267558775328374296289635089297816966133276650010686715502761481237212398973552771617779510821172588461970330121945950054777088916732632883437864951572010401725963514055796601803706616439163415610493319446898981220882196729572668247694684466238078828992691428768194894536538805082151419038190022211685337213492757123643589967340296324368173235993222427154649933944443578091015842513921346510113072220703092591580699035141468783716309798288133863427358623389344093047138112183244980710589816948444296751980180162576524485598470820465606453168646755807876939502414830931151807842409996660007001407196026352188559379209790453999850418874151454662984996622833795234886142450391362337326123381840516091986802251068454094827752913796738572619229955521847360122932928352300449107269708562147734281585333762272032828122198477773003619712470122156916034366176334314927898327142472867458033023419128989980370688845805079996812948212149356140278397450651633658525840903396934771440602997854457981080506813042329456825317906794896985308701997872270896259370433111229958027675401267155077188907004455028370638616857475260199366061346841128380458477012873336161073071516988308038413232361184467917924016417157932291772518117028804407440655335753830356637758577188872767597552381187230139822299597120223936503440692273106989905085269049440250673326195366174626891976803253470641535819446459045854336560749582346577979053249282803022324895924039310546479863776257457943497577350039773004479756218187314946149162943074026017098972206214806585888238084743123664588522386748624854015408803256146019422113690515578137316761554017905343607223316057382341258264308184398442835596630818881550369132525427300072970144885708172605327943755181218072706220636756310552342142576328929393299903065922934033062191894928680918332015042692938496992164418982131595127454152130649352416213204341362428227322087965771782622523659512140243042097541056593572464182715932903710526637765104664052770038066417185603420606776683344060707331960756378971387420996388706949376398171578861664600752332501112628789569343006298511817604319263215554203129993353003490720034249527412251584983393515410567792027955772261990629758373097325516596279644643498098917214742213848589341937370425887173857399505044023616526525668027726504586880430901115613235315438281003008674068910920795862565558024826045261826500246752837918059002104129650542830372699327819334531296091187074354660764773160475870973924056668939167607516918195109399331101329998159448505932978723697374409672882604333376319892814668198545278200164726956064736268497990072731852466956913531331592899179166233130183219457272806256988441142316523691431964461189642871062401152725620837029548563189514996214536104363298712407530225033311430562090287269346175554139727418293500873482929618684045989003809967014538594288905425137541881615923110984990784239002301271349561303247372513240471202796353069442922312047869537815240508857142949115667857840733352312259224484117844157935177629733737593516730880166155786099804885432584704041720259580299875302559526695934710278827264546410117332376947230245197208884868597723452596854652536594233649059402578839139489089900217659633241103179424404016864953802686871451699078861225467310941802512757942090610834043168178188667565908660635121998815947228085284191264071032278785759403127593318997103659632268893036878669385008571851670691381535171390279696927250586505687085933276762464287879947389426610085996183469245384237767432336670323272413969687782098613843421492907414184972126921506154451125673784790452501905197042614962128324136968287704688960135161298202298036798832733848837071064134766274115528845285094561065329289327989806114008873308194098169697456138906726531245721658490303610183418429229811824893529957852444314369630559105323155379542647888639761512658297278874101482252553333900520251451873795741297080765373753429757785264233671399122651586952894354326152590688792368097211067368804683494668725809935667496061831417582095291310976889097846288562690771171265265798065387052657408102585469754749088198776854415267878360794964423354028891994346911146707400293194079740310389990286463282736904367456880105779469585089931868404380133580364462487411907059343526315443901561439224500456154675985181672952079041915597323828865122620049501538058774132674707394555170838531196298420777562034652855941761765002999454169978314740942277663778780377352782759270302401053232071078981332105900976529346775798562551389386396827545746062804648349933676988861397753562441855567063222075945153667105562571992659978080036241288255304735548698972343319840647043085886314275644244130141000100083583932910529128829258610602681917668506318406015842943726125523535992355987704663021519443966526336203325502831390440929850898456898731520398162066240940590594384988923918523435260978155180699153393428536332774806393014183976833621844488864130688117487548211867315727029804331792272837008013574645629919974541877115499160670119671855972221405656294454551507395338923092529463357511662260361092355727710997630734305671956672660729369121770037553533760953294206659741514228965211973532738214766305940046961033385621603207918365092932464073085645382839961351103838648473509167529972097718012500513319601522662362821807317873140875101971842995446773526986585735158331734748269847892496622857014992509270899571350114134911636213385327377794124193782947193122335355022227361571094044496138818671379192332493562908351202291041655151953759186167402644242935801153260138552802572482632381693576983401923716672589181708095831994753541273536687717119376477882227767961073711947836564904913278662095349586865147535215669342406120152194347560772177942404299452842625677239820948278792886126885863601924096612713879957587883749408766053253363970424932581122859520992003208160456951761885364394823627087709767242409646966639494836925380105645595554511548159224729740429792838102673606515669553400696859620106790680016740247429167165955383260452293066677749640753117560356687338173987526613129205971931623247180356691702443261420525312399762373765191108263394378617601494328681574183903222889364761268304431663782221009870010996639626442537492948168469621235963936218710174389099700801061187199127666054597035698827148615326774828732461183912171185740785783028884612118027625949119508341614026239311648916706525110684630523744045717853855680164484208180251674441312271329089389723725468452151408526828399876044634943541976965771126716915887411752734561684455628667859672801739330642147129402242591866558259181604465424258832437170931574641596075257778176717340208351985989766779044863769917297194455153695721107407411659435088277421425328978504938083718448660666636508951187308904307236399350714688912621421041481902243217300832171706365804837471494706187873383900274404012415547369304081294010610415172964565892218352951129629541789834625263227157894682013183823988124049183354725323733538426863332908396328056067895544501135802501928462386719690814160619650618614983150446489871441089130348769236911426125015276506454157517112061632166580799880821102759801172725609268672932868990193995845441889716507073263843352499780132118185339474307492650309734778267608343213778694583742823166816094549872695756521099948338001284832182038764243702056378558764355916880042976672634539507078335832433260048915767869441103509621033822951343034704354020437895680024579607859361530129228549608426885174511993116660098011216534758632624443227119330512304828209440948603471281530435625469437793337119920635440055972599512940153501345959743199950685426589622907814693397420198132632079389409503329008825491617694288513280072992349395287396770475994024072130152629403883929504937894449623685931743043855829760634128457215730596922010235012559563253010435608389969379427939028507874490401105084327457494227691900430606225700758282069236082021651525276906028662254809252675554594305188540170845361004764653581944228575828199329426721896527191456474580334912218806522104171562195354728917923046831627375699554135830024080592277843076366151069971525574444519137956464455544867571619617567151492181459490062349413354713921613859125296240535444074014161154630178823202808411900408990899968909901302126670814606813720179313681963624210173978848443814055437529066889556419631498614164868978580215506188357689166935350296182507941303075296717605174108101515524089627828178471584220335676953455161656426151076765819499649860939806350723705885744943591755887805066062109502718074614984656248036134250806677930233563371409805705229562651110403338501118227721080629452459987956364194400560253336787905355858220073363769621107153352533852690068439468950006082153861716187739160833798016105974022339702399307103319410714533408385361551533664202119286239733498525519270202718244858519699466981068466926456737654478923705379031614626260967085967949473064661621452675708528145724937517049282434923506308178561336798428489085383240352363737165838917186328339478333729543115287061952830502122387491277142995781820048974396786455700265890831888651697906440601714409094068144367502845397108249221068016695620506565017965317337251588472532934794996537677110019380096120617244617045729360806631822676683424368271233172028935185086449538334484619497798100589984699162776034394648317456426396580674532880990668138239281005387657155798505261916906539073571607043313715081999511158715089597318007884690981482595367483877784365539295095363686126347720769103979634229984665684715080495949979421322150650767476602348564785671855807598238277670916215476044620710930584046047728997163002729112545516454457484779390219500764052124387572205291887252155340899409072497911185830716745650616827477127289253530591800193941493707688041240545820369361608932559789364970602748215296538263258775275300154759975536542096577478162526769978282121576131248261440045865705558645897382503262769734248146154114188021822582460850526923566174439707711195206197472568650284445781248913757942034914743833165352467302962063591330588299457331319692245361907931261833990870245447999359134014971263127493215460603746028578877890105557747338764513492904207512373528206618955466871616677354909746247678892469230271557135452417276321313664638633408774034303229779197595286150507099033067547452070288367704313277099407864199164517907972351716792321703951474904626259558687202223097744838996331981776406986658465019688388708257649971116944688777496938815800251020766852745239605805221420717731570015277889965056540743472103554694246503659918335406646626429117340476274502095105937083947846734746897784046447431431349945155888038060323589289800650391333526229249034831169869722522664022473946972568644986721392996716194598096060135270360723144541116686286327146948184642807522956434465775359923897218828918790350092774391480068306945233076945846419665418686726072247296053578472765894355862366003316053654567252841640219097066608985771454645521475389887112657843112489929616682692524722095129051811305782695631478372544172843351892688567111193452169475319280355876082776887211087513843209207538228856424754796465855014448354903983966265986198509456870624084670229143565385205018676101825870769523786122612435875104617844218458426236677989177180398267801075390965103600487464401196601475215098396928925054791482658592080554548871829233053918271330551875320925584821436952327583403172309237829413347178769483172770857478135094256810302087904871160107472465949334294357337557614268330776169340274896314319293629801182722376567373092710093360077158588049647882899247506358096397709791609880510391763630720827395982928803547419286209296733483841940770597765496867105333483953482141730902314572035222836628203092210951792157874293116973225693523739427538427886376607253869645235970770715667358000437897809905959231886285640573141704655902196774507657018821251204136420761759489397517902379958012292525827020594209438888427089403138819328735256036108390306910668481809770279177977820551129632792740417225040661313827856006745621100268182969010856279302433229581470257712412959324159439586247700741190529978979805490580534022219424643646741484332095597887468787257298202316554417437276899447562621051444461791781990240148882621177464190299333726191684718430869060050716882789247558243259350464375802883013485917369969399849493519520797682309801392124382940249212380459978025155182318026168316890226889461539053790244127028099531082275790423203881591764286016188792179638727605505402867109898705693287092892632753710921165415233368962818948099626513036064803804423060950024395491310448534305053226166694860165996173533853422383688982728564503468029826111474573301450391093701622510060009344475885947843377509006846700150250177759065216687428229047206747400901555002391248471374376834753854924375975144593537359257434173475208262412155794943874809546242549181048174834273786639618324117151599425148438946582931806401272832232017791585433428416408836547465978896015072237155600863145611266456467440797119178337600131475531469062683505044391308298515244390744047349169399673008651503327597539999781577341789446370882713886531563515220428549799444584688463999846213197409035830859696634203900949599363762760822163430315400457478776246431152171150043370490031931045043216559148483928964524462255841282510217520202878573045787367612676633914143123995486101459604557974717094053009548969168726236165825414782435992646297098900441502399167190337998779659137624942313325901056909555001366690268581495857588423531839339177467495483361880063292386404406284625737566240474882427759212207480426124806837277093985817276547900302565087653978492841412010934006430242774482702619261152394605147499128686520674952357911647180890028606666001580924861222016875663330876127434271298084523251818076850500243502411097018805289760969444091061279117639054649780217847717249866107809174270833959086611216175477271055720141486651423724103427420440494792600684709143817294762840744441397001912002012647414774239241802856269450991558132234481421266116023329412148336512153650126168524872171661112146615546145744338542632514629305086653573757696579167389596363501121969498046756326680362071380380510402184488062697876610570545528777922963081434452066288722626345046650351434553126061808474142545397678228235606118105892680679221257589886572857399134927520755590395597113694505011155803129980675988190109752589692147017811270142448949208325610546489513375742192153654528653332982168500790683745577212436776640621841405232181552036543156465990305519931213211444147127561910192084127199265910983838766332535219281903697531218914877035383985331055673426250861792096159739012931475992388929628994043888866618849182148984641176545379809453112292353436465727706144805434745212017422273015888149236575233101521455704610492319538715559397075143914536689307040340295040832995634299349140390207047850195861825717068051555003685417730635067404301230114336227050278748693568843162052385506283929829079250864738418999467638968481496716053924186128511470951988806238392945787288844681910918180981010069003276261396511341189925026539136671435316263657801265865729591697573646410454541195154312074267813264578853236001085092680468223061531538694648699900789084227093676347173284542831142849955134376375283636743185221325393181518624750643485643620308031329860753687189173820678817040469345722626564826162329773912294849900115449285056729662669110379264152989905782460658389418877069006164038970837706230621351900993412849368927389041581174672925842354790668588044342390551769833822103829032784703760723481362909612830408947999203170238854965418081001010878315252471210590936263434228321019378648721497502263783518239691099759477135636234668759161623127610115783719361669849704799400550875909157940845134700219183342043727804363627492755126714034879584766580733479258010728938352488240789336284960988686516118676825369664335786314657427728744846512560832812981421683214008809163352354247879526836702996730984920073736595165174581011169545049492456464756752067675922413875631831762878752094055578549289361530357173070256303765751317040638672496587096891566328711091859787319720736346479243645826812598444028870107016684541546778360473456422101266199041527010810610455566720831886774326970377929947616054398858622811458799116062660280431379677563643606145407039865355509379615594416600468226476903541063392364039832921973738898640053819380343858818747826664063840404637766320166600645386496213030523206273790131330902999440032411863790011832257480967237527545975187966357336625249274689956954656790334841996100281301380724182157569039651527831043519232280368578760731771531636478658284306808646724016242919147988689809787990314157111578592472232652748521461918526213055920807716603624012801182789812369321777592788851283010136730888354896798299558488170367982744475829369394978133618964687613654038472368549316556507631308880231546125736210613481243576039332488532179279312147858696771226077610340463276980387836471357898018737585415223719073360593412716111143589175340251632934048178839317253729968478503205504202698800095758976724594511655954329537561344172004958600665981239617625516060756333688232097994570399086169902053597990563808135275176987484909138602611354488072800882628691488431872157897348983154897386740494072577870291921816097056421204087198860844972468344554437669199940711616138547244772156293332469095042947243048285420661688386625446549392169940774775693142795415308973619441350099415692415647887800840016867059461311296948983104603894392679431657615325619130438102605708739477346901890938947603299761748287600129184932798806353980468839673194032512551517917030921539587355774951170808270734377293505122559436265505440904021794287377157451565215020092846211507009720479948291550714114341038862509393170056952048460588633677778898942480659136121231024983531896363024725611188563457539836243413412815680796109632444856409172525751546510222580731712709320166994297750899376322441365989802536575854260242655066360914374352987658685450724762458590886416097702634725448795474352603214486488685621388238170564439636016985769045248161146518550872697730871007263559418146625510348519887208646991283397150703682974772471116521648655909522013157549060921377135695886714166148730810201025430944711432073862473368102355851145622770009956224136867797869794565440922847988115837086536987933533179288413433216402348316021468809179489053958369271501772778465740567447581987016760042764255831876062645464444933510222782391183690846045265376008506419656969699464380240353131490110580062210364537152949440847501229878543818692194436100566895360430922221202142307930686000972019455395149248781473890488239564047157658175975969914042657304837134071742124121584979380020965450989267515770210662659762646186161710898683701855758379497131467072787053671915269889355332413991726748243334460383479968865413277813925651085807107156380609773055072550665895772940950163658904752251882206155940695045410177973886093623814929818335978357897793815201592508203265339225497603814204744566815731936941940960547016741589109075023442677378590578482060415711063951169752330407166024245234266746764593968982944972978034863355950738052008041535547251382782184478174674020701402951004294355647562473120058784332118977151817409226644153169115233092905336935450557966038911917994690625907239215205844141183473458322492343312780722950418838614496582619053781631860434525480562458275539790679213651266702302452961612579508354840369680796444510759083863766372500548873290849029064904957027923140569506447368797382004450227139558052314627623813641094879214792798954477844751064659031053145382615096016598774208371900564747165020991090765046405804320658436139057398703090227546416403348147822634395965983956883425456808758159640547090770275359155024570588358545756302207104482297079264205168533981103378919672268751153101909584671867960141767637753802166072757022714434454121496617253981904762376661420635165435139241622753545270173668576288087015624857955198113767786526476847099782044191638141031021967149181592078897631020352187234854399971885232662283762329999965541375837409772033564343933295328503854565991028799949249151834590803602831542168565686464409074164090597560014421380313261843766773973308736871064199554437300684501469573491403113976674515543098061929571646783759934042608585430084254684802842502430378816913694411889099620737318130927286827524335969975790788383348068126266258811106684501802831326389346781935183820711638723888122207919531910850772878653397449994498987603620900601721258604094377096489263276078399803876689090555459292198100887822354467869506160047499601370932306188863370726924658772098025016380060633539175754774178103168772867340965705513822587048918013924806730419653823621306764291042562223684114185326530045535549775994414627353661149408033954306223343141924149356411503531938028218934102923066511851917991634104095805010231630829108735246167761089275789598494516423869417986976670056810615018477922164216622196026775284005340173010628630534626954017247789735664247052258975793445671646997736528515918885789584484487006830288417612738695107367386852158119388092998730654947419502502600635228710387734360789505530358672329483830203041696591106963172422076690604816816343955168453492410339848032486160584168754937418996462017312620759026857914868364925940628830899052655228561494845790460822845024739292342817058319570148530901023258069732051170799200219254526336834120581056029253085227879520503437639852905274917870712350189251387551250271379603188934559034440138384274589251210913263622465411929016745256189535521416963919996906584720227575194235415914988512135068471355105810620230576903177566844447075267973102186206126971173335041349014046413332492521969206520579643881773122263985598614820715663245036626249985922595250161557741104818756324082479838638242206640327642451911641476316954807847050639882276188576796938220579725378624393402146261420181074613439950641953199318283947549126487089084864204326048131182548713186674302594775834992653484798016110376316225943805393943071199442807218556088042894571318609854486308332420930321825078432784135085896106764739204436584109597157661039997888895156255613351594719500480916141256940792546839532024104953079072308620377592685061996728047175578508838742674990956155834267225369425253782382805896667114803630802147786833104644427241019273151714385940386882761487826689433777885292864159034371942561117729713636064448852707216458412203124475833681288989307044583843273079084816973695031503416872839260671807773130695862759196721381685765304843283672061243540324618414613459077574340176429655721733272231773725203174942609337541468915095977253114193849389596863892744850190444158184240626503745006731758827633628143265527489755319110818219934630382050128671454749154775218800796417172420253335199190857439942689493797668409646201713369420535061652351021002462024339527906225713887357130545275067955388820138001904109272875252901093878033683895881439528203930163594555662350823860056251587360893654414567013479690371938274594607558150266584247392649886225985368880011725352283369280712852804952624026816409018044509218664240053000820106485706548602905115060006282542009555774751251195365113012348284041730755069541493907261861033602601469749641735097215295086349663060269744914988686342017859326154697820758213629457840958584454350902901399399979034796295084190800360397005321517165419776396550973199010825433621141418604464000607660277264057603888808671728964891880491249141607592472156194980943532072030586601530762798623507449355936358989211981245792393961529419098190675159605936656673739000025080631023049208478291634629072136150777345560222398593009789428221190729271641928540229157998000277947410105210898586037675990912603840250896438721650785110725761328366713630186857009727886404018380219407405746058013167608875903650424953727020551121892571267337706748535778243429373764428159089768915653788755648655223603558918174822923910010041870115296319663797767592192492799782669625650955846419933388964037776097193350839211051084326283202055800426263831587324198421899347045636817269721184246964204047515229691750712963904485112154449497999823326928641023873026994441030570345658671287884628420466899809156156443602645507818261318477236931309746430662824567663961346385451656847888311039020705749076123833188553157621718647123820890295768171364437516287694226725161192238106687418022678637396207654872780401417724633689994040659744411377487863228144812601848845547449876967695863950095599596638370266115772014215420932532825619637184366615391018152227988199618787255034674917002287220558075674078587789593645116891358090023849349087485422381655876035188721227466867286011850922656532591979093394142765274623120304408875916762732740111145186552725735491538435894758396966586247233622038038636734295985904746688962900101874067972961256452856973152353059462684770435757542221139311458450016111545179110985593961008763775455606221110982702699493464000171318804407521565959628127388509144954348583529186764179108951722907875451923246501824486197931813819288603573524796892624842675905404920791822501464857018937422463907518149228983008200452296638815566603252563259448901200660614785557076014127758294189280976438174535423114055371285502190328578664692972447584305875097645512210131832177494254421539357481836495810114744970260218408881673927736703612454330185197246125877087640597362783906329780670055199502908209934310157190627166115151231485683453887580418765606981317857523492114323699915117972146513945290025020313315780327372687465783150330621689160290595337494629814940401723676373153184767118796833553793623825579180066625009495115030166632148789079486374407909148131496158367220859248975575477840421651809402629594859284242619480199870120353796065917029133828696268945329777113590673578446274958248866587538827205863573558913503844980403121364695961176477658880209826397182317527869299322887346896424092594387172368228604315729763779500821357244097381935047440521515756975490980925537910555256459218148497893312221755881282405973623684589891462385029518226263077613571113532872286538603979367616700136713185211746459590422809278417662333782204296841453884666879486382131459013474995974094227699944747589888956482014588675073299659735085587776467104077782052175226829339870307221071209717500051314052535787786136551305408243107643076694997755321721512070792935131748212153139926083763751560884015975554863241880787470231489016716455991784743152136569780839589231219530222014456671868864087385632343152701792508024754402875067291319370485110300298459076582330703652412448103543705335279759495201011438356376930498625822848754593239833350569110383240710471523149124150247446465955159352517532607902205495322633444913109274596453939780992934319935869982749727517944498118072048752576998641398330104588145263724553129514922253921862485117230313624521065990638117306334777176631258351762961709716597682066400690103514792615425943173559628093427554393055096197464472824847603658100921536003722809837360231173501390994473015541155134295804023099442687227767254867302814249814674183796437621770687723311072206652261937872553235282124267693210148348641718373279436912975277008305689679681940422739610754011415284344523167685749459266449577431348256013912570729135424784876413202726168207018437190983918713551028873456059073451186044248921499356261403036219451396531282567099196708817367595150471459621129468352320917656645926170822852297241192009496862376581906963586776733509200345297322769795033853135138027550966013990788951119266471937470545580101467429692069607662559058227737652172135140748631081300232761234831921747674326291381397779496868476454032586562541020370248123411325128255084853494468603126622017363308310880532941149945048129454330571275943935330294246996484500167437004918645037253407849995785777976884853149599402897887284353215939209123169541296553155719226136891266591402162985222765198209565241619709870057442120147461883889078920342263896419651707355049069725590872551164948600942218554890992725163350380746520621962019091994183136946021479597643923169460134490588310600604014697703434347265324064875013966481086986268860190280322062702054173913847855897643589535543006018522455337067046233285708425622029042877683313188004128945306801279165058295184912443738636563552322812622533064264227355026128042493700126952974266717900737572252383067214004517461640742106990198209574374494551515428115857546749375236263542480838863171334548640870686984719167450800197656301690844941064428132003561936158625399036168521438164297002614329094812477113993788294291813701206834156593281090956949750203345355880057987193760283200131650259738028906016307775457128320071710287219366797852848408583596795598093708164611498448077198679396930324538607477929801814966954138006288404553062550325162645575346661394301692741312726253121481148694581756743601128318189094540367686224932231531517869009040421196272186700004389577984405309074510039821295119236278746768301524839539481900682479434499974308721906909295978514140828048270250820191198868518888886410551455408854494211930751847738481470465367241003513142218739346432736565319972623065399354303087603035469556368540066433520026355926039773017781315699646905448161540487427804269554638536435279425444637350284899683240809103555799579445636246550126206415507840734353289938172857322454442507635729801764130345663806450892017488545298718570740651904681874223119994514433165705480555371650180668994997365504509666955643937053776166065061090570453145392721548494910013911795632677543137403634987280675993580142772705046034250507856533907598533147260858926109800148060154918967221340343112035434093927990689838740028014875704492556659826854935079756105063219704477233529384464355142422414933513178910136468906916672114548695006114225065492946148457785453257962120080364744269424878586900157180887488669788912198135076526280690428447673746637992910904156461334403512605223928339438732239441531219461410950789386275806360426357603398827851837938308615045986232349622476481536586952845251825605861372644730243221734050850000172675810572810354923769912976832201506201550206354135760437690719910273079233790555545241368962571811831889084309040794328625403319320551597279384312594095654938986631375218570683277762123925009395793169683139273483408506152902344856892951885699072409042893935155148888629820422467287480742179903170060994963138086029805089090871550310328787679377145702200569354855336474607275753513772586547342601046839926984210663355340640474628459234522467431698452769231611613228609081203078366376480582666033376372479910548944866742983293494683296845305523740904869536992861904240005601891594067418111771972299459573646793351765294272511232829423441805228331809052348171020736168277356803386674661050148582034068386951147220679323604026397829848473143574117756186634350747447217943937319265550915520605121047865857345941184958078975682834915927453565536305038110117173059342976738082148140227989549038790228828911521378340540058264089114156837669934181350648557812495634594018124115777569173836826067376364128474041025014521132049050757711707787539141401825419849633078366373367262793137800716233805033372496310627373574727560092425185011776782875464825149954656730566869134268225804198929481743760255339204816304603667787387361374880325532909271976211729740949326249902355419949948832168718807135735675811520740047927250282565208839489512097689357310584688707677716237378425386937758659198539495895918062243826729678365686197329478298420870087691417829964231024862745731835601077614332902362488627351292338514957058522547460351416679054804707177932604485707654702039517877982129156882747927160684265450872297750662502656726199485931776844584698274598465173270129902060908584922637432695079694943199000623372883143538012090814376795129288419475881296030300308819116239308879092329820761605524782931158898440055979137683459752635229308808747509225160648204783809438572747048491199397018640975076968645900972844126797122577159774666061279863395895200631376500565992022507863087297255728760898401059170395285403349479079075123278997914471723757991028590453069330971797152166077706372555319940196658213111458603112875899907242494632878739017196329237669273448804102594211163821082486465378225472236143974946360157705473281495361993639397957264086241924374551567453958042224004327951161674364582858690411892626951884041273243324594508558572267711364200213026825981573260982129357406103495913323284562083591752990381001346741376006841377544396789550471443754281148854604354205252470905965249384945182743617910619286382996331173653120607277049077575781555566727594890209402595442877870757650617751589152662656713460620189956156128971523865573962570693570445943552650236351021800647799027150435475489166060025411751234303626064714114059348875175689874886138159020922123825507990251460005238589529090970739356297136707304261340208698696465895600260125232163943226955043874442632354166839123339674222776285494908588467426513765697906408851342994749273191322907114875843897263738003370593772440293201130179084218286158226093747685338747753461064602461184297746407071227180966760424929066769654483248783958487923772569109843230144565607562705000355147477954293066679463901888764927367525154126687497665248152588217299544510557162884746421743338364342536376901963156730020673248801569495367091088575959473407544433666655762612822538143124522314165140728959446001584723758756219193210718737353285479869540574918058883631958527911582208971364351248188220838373982765587974768173733877868341363277120353357203919281979131000570630963005649033240537803784972969629713852950645490356366904031951068889751439246329553459754007437687580358389452023946159857128536565133979823081806982134361880602222747971609397219538917173801462959720258727392609626940779611859187291306254847356546742528212627023776184408500085807340600655531776072973253686454985597108134368713738340867660102198092630421200099557984476520828124142270183185647649592509407435910909959924931999529161124021546025919163025521494493814611803545070124690148899030694667672376703678519181845403099086397934117177286029695261741800798781547363152842780111373093799260257380383728034977824036699127973315442250417901237915371884593559979783687136009643589410355592893012013836736316544881120293464682912067242217583816905257717235337432400081502640392244435301571049405789595187586523031515149587886745062377358739067554710037784112289424570836594451339982447916660906056639445779655138274393168728272850679865070772787363972599754085566821503455430603889868315283220603210573644698154007651054131442675577625120474052018458911370590846130198039648756898001303001149803653707887493859858863251525975797906746447302625997722131903169701323000889851676384581640168789288808708077556631201347377178786909981829299644232552203359736276876893487784982583576804725579313420239204048267867076849518658136818648687760110026067748958148103541938555953169760073643822861529813087500174898908277401266905253955940537223378355032663471196751950180874211031353296193654288852183168908656870696831753799296344197144389596590656294830150327146280658177599157219322561256345356963331477250072851084899925986244289305651486930053483120728777935668897083363977821862908441368619833083873793721854615348690989646419253494010461632339623381444826837556191972452611049011388209169436284426212317694165131499303042843434203712645210738903632380053858890485558426296532865946367627218644601887039987837434978728093165292211231935270075527766145865279874480438668753306617088964258047872658854235631438235888202427356382749633050406078001614718171904733492280678017189895107852832413428682404733658217707817881664388107216067897327160875274812347073321616569674413953975644910467762251144835083598551973330147052433668454821441254200687838396736360324769627735104030930785009077618279860123375937957419330920783502086362213917656221549623389952167633906098867568141572457375476105448874387728968437688643075885298657970021305571347323089897207760132487906884249517423622766801946364048989358897517300879253968442610286290725222075723157872874266587843632358413510263962233784082918461170938010239835184643436914701811155506859237027591399349687745540178205917535570881380043992344452385923696131449837064769450576602087692186767084075355115789531261795050825792328832555462977429184068770110036980507893915492668759719025247752755742431635765147886735816696794351330801755555726348571596022857542135818014037550828204217121676237682786146200160970881132692194708865791387721845344207875843727373775812908296800043114800602273807245307070669314649731496922497279286051016946999989449584095462189832348035712977630471272218153232954686619220050699129534381097537040975231298588984175375277664307283859093504119500659778593290456647551709365956187094132163863114741398573179551826759519637443009059188683005814996429956823622202997853929792615869295375242875096436056556513373292337875007662607803439968222091767684722425303609932754568507984912200125650112185073828814606029616651067095457470689978672172664802856406723286202683645795500440926310839755642701607578117755416705174579353106281954958168722814302165176499180474411986749968063358186200519976451110807629073117533845795647531894398577984351984405148043767168294580730051486819076618582594432465044970837049391465226859581704228369558622276318768297241900896252076551505360127307334331412345464016446141101945277763874376711794747594880333686831595980854188523579973012899715417524655287485139440119925026727858174543192689018397837091156451579610225772769563890260017094506609552499005752515255389760387932372232202700414770397257481681147404400107272510122330546915150015912306059107472784640654167096217720837134410231036962874633954228359214199869559933173470073241665654904741250467269577609830483782171091878816460330628260850599053679696067470885729940759776395227280412413268811544327705440292100277332023380607052029785243678029339408248182947176244118220828704257297700893132265114445164172144384456850718971612710589920169123993463456444626344586583579380809572690868017522661156360885919499712186489981434495478608706478415615788333386602361654595492879378464002938217210834834551946683009144048030669392918569987925194225047157810347543353686464901333853569351565777242764388659441270828022190672711593094480995649085328350530955395072887320325995311876202963263488282215905063654952684830619383037565116925104090947392129397462548960929637703358238994360588679470507035668195003325938953835475401224027794369251690467587786466749550271432238317369842907786220933168855690231873866576206420444536459868447134404186106546893668357839388176517750394051127311802741041822211087644470531740190061755154880985179294132909005855167287375476874099147479898016866352171482199183842872193839091246099300661771367534325117860548953455516956149106390994881791686973642245788149605698430942598436600030893509070741479384985445095121681346595013326654660082439239337458161906292936009163598782843059563923973224499757611690599222328200969522099379378603540776857832028975257138041828324620817981617771226285854026355911828042346192654967560925586259661262132279117082186285616653094482464519681952550042429212326071894150071153306648619808017330829247717442721485286594181492590152156549190344574250750099713958724062094105168493850369677196666829694160464003050300264128688856658194818626453332155302565390911525318182684864474185943848977521821974914507174975111548096377597102436487897857925443288107818766413651996093241317981344592309963206029343503028931672616067172843254631888745462069076600293276743369900222222906087571503238877173066521356395350488158059430396292350506109309122727072600562302418628211177923167104298728366890249282408905860075423968852288435292818031221913851718106312504023398971784504571431414813512321538004188849489907698841966132904655533301377505468952100180649785317965024959305146010084296265455518102961114934597801322782914059008595074790735331024440402957573761466334267527157942599105621275462322027381720053109492976451920868704485821887963878144228801302667546354813562368933869931708558104916161891151199561011542448680251080114728232289006505852786059324712850869103873493146977158941041641712231695904814791684910801916334884543902113291094716397960614663409015546927901789265955732101234266172375472632585089905064817286279893917470960718366259394578013945430603183990618340592273825722635726783194438655868393908299109716449059073720946345913046577973247890160342021167015745117726469612418330045761676700159907303662389899860901289732542490145742018530370715150205786499653569371690778375051767768346847552317675152004478223580168342769516774288775006371234005890074342577126450473831910655116506363866099753026216340666079791004928563481139197026187492397038529603699635474397070747161155982841132095545296190273316122032935868036423064487536859243075084075007848647116760281565924267792344398541373902448189580379625167815258057601787421238904075455523381097986400168995525134939346830892252052459718794701290808356645280162393803768037114375711883837370397382717105076618786290447813561262621559064815772476166587489877897234833828323535124115210440471150406083036053451404416167802551935210162895200028316406978852769797190321031954572857665286615570538541851410664174688649958557835383963845236732618827848767590407855863428026354193861443442448638018709367112781401849499928284150964186849982018485974214955189542697978272722719160269364110336981624307668139222419162304430021378214816522325556123129240467764497311029475703694688501071577703574184544166244520718969943394391348725015343844538638787412834800553123840231550295708543435270261756136267189173621960688717832014492173909384269996709532057674174937422075187769576893990885407321146857016499850505247700474962324243854403105968692133526861465877497530346054666663402150344155233236397850717814854544296136999874851944638235895144818150009609036099165467319334046993345606592634717471659307981444922205296301766579185177089951087586276453492650817654448198545576094729187534357262172760246588051741380229982221544142445736212667848369225005594553402149753202623484135623792743483727721095443974547379865749452557534513152746904547516915424375934869505369402233085730601703951579949922619710320191960076458984467443350448607004003220423019788399873030814405795079531647452270824632085991254871118049295196006119661146991293818704620448237601019848678361046376012262845012787748534051478867384554279203161662871863619436073049862917676781167769687868697201397727828029396902485502920015526011080639681000063520645655694974142540411615436589835783221096713357607532208513711381857819150139591806235224201512346638238403586272664912690096638252892194961807036124193304156373048143767974639137069843795740831960653996472959874914149281734760821510981088863904190459688800675556694826321425939124363323893260225362614080040435890228057837993781155250123345689304210305261339109176468624486909017358046398328372272304077603043151257550949409055541744842140189026244618310268959804653520633045781345913524437484794332108728846174578149134859564566873803647412559245706036400645430083257561773083792047844242362443870080681200417157796656426173860512409378822958450771201388694973014033147058556020002625603115149585950070763360345495643319426785841124718360115473174431861652494638726618850649501413769976086886597110317377893018109958073682042173367037263580469762204907308704375554618238386926153028632681629554602245277058207962868995054993004930271939006554000935892204958624395155935258417220911611769738806301872248331164026478806367628673086521092133190560244551577523361575926933267455117606219455836130962505611206878803765405549711539445238823204134280600056279127678440457389370199737675072829152502458969372405724280214350886361871726263014109172724921166167018304464243869045011226925174826004312861473199203249336552179045229314653562240998116829689409940092193290665390904605693094492262845563869261660335226634140801024254600488601937494386393669575528002956808868306153724260980963474142085144912895823534960822961636552940490269128152663829706637290065487884978549042321571055488658569228068561957172560772711761842473415887045161260020760420589688496777416156325049834976393224965934330636361206185913213516728777038458301967918305080536228857711130062503712946303234100573241772060484804623786642857430101095890618824277522413986992843109505900027781004596559012475522522353041625207811405861586782936135669883380116105355774283506861115382539422066203814670029146563154551595962658436668377290864028291457957219107397874956940567958928294339831178394262754741263064001668128791650905132058135097459520122493475218577504374800399898786071789934707433596267840953465320340423765040817483616888257403092728852454456233345718122271150916848323369090816328314451604027601166553552361159760082288244890403044746059701132117453676432875861759613157157632705037037617380835128854051747093374164357082025121987344069215388507359281929877220736729854005986087774449626690327575271475555077483597790753681998475255097299530799318566707097704972759562852193610746702997274788538357303652591807041191348866469416013478837063386640833614998381805102878426157294406794988981992469311795515836048738295452399103250722800200221539619936787753368319710872495126521767086746388914089477183411106019625419290671572123200370200646397071728593862365543963751933702425361773346653103848402329244550318912216153786817604321943162096843014962969370487437038790211259678261693755969283149670652697880674181358099290565868103474027238480814582123874956593678802622966985163224273838063913410175561707903378224305197512980712686432196993066854266571842780641186486259541147866093509191455117555576170339133122921404896394461516270558830852531164803146303258147382046732552664546270346624555484077214469066424318026385886921924691954390194675226922250820058820452042811456208618550606173872335699149819727079265123288892969743903116965647391427042598383940073543157230091700599906083328809859194100099692125965069427050552503654219359333385524552363309873005625389630415996478887550431570280162791865750934245334326009518645411767080328262603791400797817034758769795424672574001545478818120700545506527916188152540074513770812291865839278915073096881377621757547966712458412019439891823795039237507443753740003941883861016518353728502458677093770334326421216874039964078925502529664196946711126805462959949889573819751882225638232267611914771739381552776829815575268343401470199593910892449574676272720187174615196946631275956279629572913352070833565603560908779383599954243031014547405598387070858115678670790556824071564076160925289149122489603051545865607141487366404005736078808955631966713157662936798548573601534394181527637613574874753012353916109563116750320658104570236073839830871452838557169585751126204715131898893972553055703978225618109437142572285164157006831998332604108601384419695322562084332106809894201488921181131570795779357408685266663071734814806428974887098784151797646710957840943687725520747570507572093527490845776779618513530796784825048972446294326117104280435831851599322611322427710143401875059746338658784995796601444816967181742041273690509913902357639804941030134462608633501779538177427371250018769775990785012536418867174859512243895784042480337166121020724202451065582837129581631095495039286852948276296797049550564124903106992618638217550744097828926469068041891880656285413846997886057062918532055832573217736220689797412314606931866789383680659779593793011142137931939125208842162054548959192797343416548216082399418081914697433040995211588330347478749709454628845552169925818986622293342584703345528037694045761954690223827900899092910763692176324243709263944455960260902161194638160477482414404025298599679470951853604816191451246297660466102408446439547091204314792263501149987436274589505091143105950403782923027002087958735448665891284245907067439430002289669255140875900736514394235417345926596177459011705176399225090551290932990315431501089378875494885241819817207472879983383084115884662914113011011736126228673515107676853856440703895154820147190326599345041124586991255371558666921085197569548616242988701005404058997145079211575143245525561539670179810607074472321782944589941063491123692813878922233081373617019931566514705866565589341468913018065440941949223661869234634744358927997249817675854796616566770204031639550586878587507096162187297792301837791813737811814050528449369299978606676300531750209291483592290914508129914773271201680898660400484935610994718105877740900560882477094290586625460592347248531242551969025336958864499446732392585165899796107146021922195818817305719163375919063547299568273495240383611193561151019052916705496297850257637335304993382450522706501492566392855551341446344332325882881504570497766754091551272366104207641363458501341057175408108338584880119634615704971371695849956419527809866495567981895505020977520303739055405342293991035266048840502693405989618647804247313402733660159103350691820829052235242081586011092323303719233335992387116857898802289033687582400145902931814757723612041297090904527075654866680755686283743124036254257107887206075746727154373724584760515017068200542535184209618216721950299130250967596782437929977656770462771534786685274274408137235070363296985892292425203887360671232341315520568783596243002789634470877743083195715719261192147992425401433551234289228633163658334786003360756470902300651589596746358949371514692293957917594748969674739463312720267168387092763009019104686550233014887898952648813889065807745729307252890610059001604212648615073654777076265749795678392663326863850627377384683477252121931089421455203462587800716594728179582830504879265166883083328295087173678867684930446465873764911056808212014804862041787443276859608887130861999874788778722729659247835318178524749254499808620006559853597833563034725311050582055379665639561413746963619255387084172679724875755836632715773300609783643774857664473809052426610369754631936736531614994223734172998801282135555811249789509829821546561753599229246832192688135541941930408773980689814148239821745829102339928592371612185177394364554073479554213306182374024333700112865720030939683966456649468782774085805364618283772654865956302710660005655485119761108657075049182732174833211641519429372592717390212069239237296745917543555531147940837540996075576489880919784807161886284077167416144456098946904334831361731748020493599206170062243445504213615785134624541556658483019884242239975410656608593194755048816315307429400994955991901808152099410462091396287268266232086427489605236986662863322661988693967084119942066650323019812446688641597183382605801872986576834318931324493318752875174060163361201206836003677971618081940165710937767971314043475677210324072175544965272929593477651436828294903753635133502260035397505692875437235392203663615624699990934135717885595905583648300992973211644883094244006727935356157454174772372671691037450392134037303230049580462630484729618537980517562937657271885401502811475789248081305505382825643657535965402129951747936504669549093611484738170316522001230027766018030698703051979551632456739568567197309833707051321779367012006202548624322706320125933810723884578046930178299021333642627342534839304556913486937921465895212260655063166327175469372260857660208443484606867868747298864855068411324256080571140765684184330723055055076529852864071635401477219102027436449686424891698131008794938538356354751170955877377597863628018973630562597767406218524651286240170415375207319122748550108350879218421367198465130153682099999294372889443652473578491230252938066955103927542519445165877130358611954475704475984253112735497848974741285643184156608684961506028023666437950961386749007874524904877863754627456092132318820007889938067455957127217775818891236165373929349751639137011996276082815563305594784469323528339059527467655216008951173431329527167373127394632239251889327921514395980057094806020896583398849287865709045143535577631568222035234991196688201339280280300028168251393841452869126177277266887280742840208540870590401841620201420704518996084871838568154772964648516231084354336481022617025307835333237092314096526742220295482967587894501746116574199845605130076252716765081127075096121086997316101851483954731679657848160845848476658444777365125211091314232913579503751149751274083437601426197889068081644217653013806440670491680202123480314538611713915409148654268035320588352753401399944106075393837790209591337172707829719757261266589917100418098459687073641429383762831935041488077343302412820068080545047931464177889077668340154046672446188514765443146784394339881797114188016950759547045820189740543358229601129447365540553990708488276055925301639524059134298536370113644249497906107504836608670966148779080592117279436835415876236440389256755819447747570387962883276766329821194266542861064438162643330423326917195958217274655659984405824352836332912065422340230680023892585529131959102448295019910051065911449168069291865228194626715382654878619753027210318720195813187564744334662653122986817309120838637028728560227075970083671592197927793590848166567990516578340077584819195575427214684172224737433804747380579626581714686544890174612849811306711638024915369620933727712613040423904556863371806088651158414956490322451015005923365572187395336921436913642288009153046210690228951813121243840698473853363405034270786281562430790404079330438546111091862352162727649206595888061756220210724157308469391019424356000321252569036213748992654072840293821609842339521620028214682752039340571518810004751567610120233145238113627048191022872390799683273275027741878064467032288276124805002573284826297379683587211387867615004698580687604324715112054932647008774828546144285660666450000897703862295149524405549004099154397339163821992356622613674918151467892513410133519152134206467486308335972524413333237033301107292671485654595236613785290172881638688354060902891466532433773881143488118187513555570203159881637760942695212551518012464531306529601423733506517176729418279106741569352729705239179975310395075129883635121588183071661302533919446974414504858778896588924883023688618030528554271869752719970688599847220334859500499208095611053037282434940654736053161700218314789197479875097801183583242054180827305357653247170752344990502640195968997259861137063636991935723070257968554253387310435912188624767053850523485223955493633601547623681300919863933714394745201789124854279551947177584470503309647705284526659649759862631967304965826509786605490041464922784579995991966933479878834889301561662415238223535345320067717701564567248372540330618239984964556855280126382299284939350141846928651518003565671690890941231593314383138615072092254349382794372806638025816746868566623175814212795839610439075896659156856147863280524542919659817065254400702935587456366088858645711018023339346537358988506397123130530379518307833754102050117123733048101752714720326703138309850530604398555183950174519016619619982257275322354105148227360459755767744776028642382093240228310900100321571521091522259942309282239099438968712386142472556869212127664527411219294145666262303559044517021205379150199534251507460282801609884359066965109539679509298344668364687630660728733856288715968273113971290303972568748573189696808963364764257783256832469373509519419039762972363700719886756276662150041776920713117232513300420632179637346200617140332956245738494685250994506897154779587025957381933864791723854820383837716869761059285104979862131626248645346028582622144009960435773166336693896760602726741024134384652216538953126643843925025116201517826071580472596102857371735345580957549703422602281273187347584188054874068653939513302609769992989930134966306885137031324949230555013238684402701230853884991909558939412214732697734287136628060303505890846005887652990623981855766994914031765612222130804009052936636327719410734292896430097491839915599690422661158394372009080292618462635344652960608897070676456752290000534748745921387372945147277823016225405102625645389008965061331288834919813127702770558169616790937808446688294102676747982215581799887025207773367285081172675299764167416945018796506323149483829327882172837986862455695634373536360318982178741851259845880674992169788297991891645103255754306162855724627355530290906784196939635172961320655460033241887969395993225482588298550922948270168787282605408882801632651335533675220579489492830899135827639265324158397788068156103140218218460488011378075230384482545578843712266712306601959999533938954218019285854230789359476550999925314379866300771247640033079350572974037987390538865903718025136842619045329438385343261500981464106261605568893007682652037908304082038059915392193141636160690165279336913331923203838055105708338425533757966027126995257367466160644061360426790728469601005444174646968869051080564906153829980235938356264064157509379434080812870679433371569796417385025304746565560008492427550134105893575675853322238394676904136645186236609427325198568021642218919323033459811281985155202459032797446208156267989192523819170309689490095805286063887307702949235198566544138375459150193158197157804314285534459672571292598307439360085641341073592221061800949659960438406374285272941086309365324679150842818776591542382920461111274683760479185270176909375440909424442060181394487404753958331788080790998155959721352425301347547250199436352776832156735431960906040308916011623598660279479271801445166512069988104241733254434260332541824304204619938179638628593835129073082809678692196939726587893866523357494560027613924609424668453692653827325201805871582225218906217087995613557036348830309166468598146485776103396139888527799326305610991313967571378088839748808794843503763717859417401003208082476122354812092441712197259893467135378715485913051686406415569703246874962004537250410153664888362044098117241312701565120176574974422571537488719417715872146580560537667061248578367123407679413720838199496505098085246529952392560810295745523351545606078439146048529359006378331221495569252576942957652541245378282534746928138889305039164312665785130998804739479163477612981811743959211166769404372256502678350101467831689138925608934096175524022916401339199821775309469261872759059894431102474066581235217403912297552279306930522873725606827900709520042337922264343063421406386858271800092214658198521086381927818664436353621663974589316403420033415034266669976391968523345931019462149802249536558292590584440127371565875513730352820991595372076482429151996737763477643257979174870120963710592619411442733408271264733351182792949613598903034847704817502014306606214220374364915911273271446844424105252059615468603814004572158723933593863870378995337286177450884620061075591964183287904680147610729057923883633388160330836368036163081823461767226181121965434846848940580955273302332433720364362445318309383882893070379256957208136044549338914106582982303357941130989641500920795046505595466531925617515681057873809703056213290654156633075075659672704374331255383044197665036705704604542996993365149672538978554558098732160106919851752142432239292262481039767462094268346514817201640286657061536779799060483941096240758687431315775721392979163064418985294747304179027988947783450275603868238938598286147340625635946746166356901184324771886117607530998432244798793459032111382423918660554578888902326642899492063161595393448563044616340561323734088581301487397103112685746499461217862026381957138182707484254770854493555467783153425631779971419401001871048633124786709388597001789623977797349882852170746254633096965069898326673360448403032662674967785376416031733864251575777106670011026117764948514495556388000252003860586443647987353426296576735743586744072798828649059485225831587886467180932959248141712726465435216772481080143952692864945335594907654939386292358012502533362240285418616617343091684638702466130596884919854586706889334641150698346800585380994197094431338940659575744658505388535904549310074715218319028281854699602596500673284518611788067743619211144864466850617634138992057022234368821670172681636970421155326990092926704781639126764417530794302028214967420602736103280934852832839708318576745878442692167361885571579381751021447821065050765877182189941540705740632846632483670865493193127117026318030626483451618307811922360491930892765959733203014161112469862322675988495730359595875155938037334202176749422024314823174853788497778483896565968706874048000269305107810905136302361425678156400622083111741621162871113533876173337578721313359363994801655138767971909562469110098938205574139257164623943261770629719603931007787191212162324536267862480389942034662818261476764659438729994881691752169350299611269514288019787196915720788831374262967728251883865378620628221569017308086589437233540677118015312737688559819132881924548948749133302527655765662115727934301351147121975197718308448169392417135258920986885280145239312291385103134029334564577974858075752692395724713125870137973095144510980734463608362714149774826603197191660084173534629285651615185215095325402766988437496189149625250474119442336845054583680964227007772092108980724822859441353466834876984569315058666962407442648323428892438217208778376617821370714725914400409129730282882098043087597377904033538287649201807064797187169200218114544124411535056140165377771262043798276583011591196748195048721688657284045581551200385538196862031962762662128645614908437812527060944298394544175247236597950882319878920350582257951715691440521937486640121561712530898945019212059204555182247079580186607199840278943166082489776819588891346400744456542644027046640560521384136449789425848984729116457558492373863126393100980986465048041558640102408173557460950015921108275886564091453886469205437153739903801695860082759096846992135599347280434798166270760866037751099001743322757735947561022570324240482157030879621091379869228232672611248466587166933470797381580374872779814189933495148281744184815311095964317184471410024873607949169228022705519966199885784324655423285621543572564450200649596178807143339706960309965020983657140559208056545732952955837471941540998118878229216358213290844601147120922443364366051869105637397555085928962433076741080968788297974387426429419575633372700390449993728000349883526510622036668341235928170664613765933099345632596022464036845427116175194966220479244235983280051645203069042044122916568497638488565824957850635421466236517127469553733009359096294905294768073406167540591818338308702209240631388568400557557805961564135987590456201193102550770604498477106093911488530976967607661428473166264034083559041401548878319109104489520440415052894254996103400939979301059526690517570644097391084227930224360842383127671386736686557363899667091991211184178947087523544637536727119915252402795148555855154349558155882846681205330670112415148996100981490489919509544351978554420541256772377065601539902368277151568617416593570681825080517299636328752137118960701298082526148915929857452794045559402639812780191677839669671058836372719793636521956052142649216524383367602372417239966213347128657673292413643458789402527001745571250585511419990792497758727452063801331007033921462118264427943091916014353397965798331071258348249819221041459937014773432566818272460929342525294813609102946733357028532233777550737928812703953964346699716004578865239690671855125131126252265080559813713985523411339912805499007051413306170796551255543184675480206519594800572025098402910043777886561519705810447276712790860700726024838882886893225512187497870281263252497884354309827357220635254087951079331861548991153338975213215011486059479706296656940991904638846193176015615293058745160085515824345193202756424501957613878689193748694526708958420226179538267516583756639595496295450861868498189232166822488788471663732349269175455062239995110704785132498294369369304583557903470049933797808017567082686642520399622107582976313589608514667283651014313364719287742755254802548270080356143818446169202008207542445353687520416694307650588564477291679259902160643916772027958409351066891915817398278422158178895477806412435158532795675951243983931745479052283980271048972755327653746658563521568240609965859666752608239733246896113867562204125825492958738679220865603386279650906149075366994868189907773524896911620259365117092843361850842304475998872608852510285241142145213927875857568630604473105913192680445722153749171677076314648699289400823601498354439603344614439598477596180541555088555807266863935395867507648267415518950983662170988388553690380043598002320589372251968417574399244792527565478635079769249697506002880060039169867195849915796591619993943540930568196559820056890962712047185662179934884528953797580796845040020748839766514482948129472516886233372007638956499100268467908185002457948053460987428469476275566137651946943794912963336817245566054966491096560413252925263104851636783697831450774705897437013536969785884084965272931352511050395446151851070488902775036491142438397726668400229648918932729247207369136943998866479318764001827417387556891967177240371976485360064313281712175933537898926915096395271627024073861401892336242717723522912977509329088726396995122604513874702401439895409532279392626183848913486176760380654097166443510372018077158381447390408279428223755476749758200993430257241097596995663684087762967157409329698781838582159473175102212814537611214209892967978989847139158812315771534374634179768449871118709149170043980997449868889368199688184076419750831307071446441666895969051022881948070327133427078809157525418015458009560731857227809056837646480658855896890554288298345526256923456529459703436919854502547790019321636671989395511472495301111604867264257914793956921375469505651749432912367428916225104315510505019545020474432022984115101326822638274175636916112924152125342600171196494373445848133012779578924344719451188928804962799722094746948447097619597275970003113973165540878103381663992760720717033047413901903788068168658369125600824248252777181898003407580060209200818279618345995288683327413233509496928856104168992370640834698497757146151991637394738387701913742432970583521199320678972818153325769924650571463964586140312872392199549544996445050766427290139899846044953848564345793197254885760953719627024502768025641729939830280572935952703649728871256806101374014370609849512947630894334924048246380246249707191356373056055405120848642886818558440320660636526243647252985581407054792394715129451596897313926563021871317644009943772390215129158952587201177433411723887127300098347884383153848381129269042932202146858634865044382793058287515709909240235950140871593613037917538890458884177123826647619791064659882732031057078461751606040043529143480101389810145815005163212581442783395790790241868423883437156360353171028612741672757088663266176488563548620464775570340209935391408535563272794084903352203182112895921657638511458870037994050445652597653253940290883339569597249258788381655664356715324227831107395492161813938714694466140310339100466916529413926671739881397681139588463806359817023336452696386565371049536579503586787153474404229645582284550180429908010974983534111477547769127466424006855922607640166388078048353101923045620903980092829577114514535251848527661956385826588880023808234212466662645606434415172999485618788327900964583488506586997160741893137697106134012427975395044869672159618344750699298501227982644552157612987929131222202532222651380758228677875621223379387909861175540727603193990815387347753265059592937112713847806503366161771830663344159832486280558403133213142881525641152446917378420696768265532981232927464509057746353894687976932128994164534230338643266934153252899854688149095831356100876508855996455448830830055857258484936263921544293305780638328004122008154295741126504001334113672351823440409961863256124578421564208701570249563488800945132295524651301357034377886006179390844343176026755939539951420258845926939297856026042729533397064939203863120280513789202536028988567130457665600594239006354901996544368121810807234979939680380835591835699618023737665811709296022810288514790652493531959381620628279002591438117293244360951104956314088841546765583916248615832284256503851490844180108611319857297478024996561732367956890569375917066733525942841979037255060747256139327234859663667678449244825569426205227997334454118779384639722508774702847578093016343579953323970437452648966849640783733313007141130918899977932670043407913231256308775652388314399211524701110309606846243187292634280893915386650892281519333444778645029772839250250391173500988772665932725065392512090639868489461758312117615910407093623428686955338103605082394580010177996422205649140917588321002004262100540435624498870182482303560699334732969262718140341284428904055458253414522956102652480954290874814085590229640120281103066366370306692042436625695452711609270711137059138263565545242969463335527602097729726665243962328181614109838811395226321167888795555703635038573906495425656326608403450987242764018556477830794687150644379150667405623535759050079785690279879672264250291682879393188702503022759454017971427590082490171960471719621856555338132508719553181659837724900942851389621792354221388110950422236796577489988321763451499317043929141707824936859291902314175615952533638990637988703750401320031846700376543648312751189598056944881586952527120363522027541028078782495218296517360981420236758260022446305590812452291160582691934886905179424757560318852467147676893901842490000178041058979750970880811500478562547871454021162411148812971049218794837338914700431681689900468619702018532228414113643799016989734421440804666166287807937501865591105609995727386667071594132205580033277422698846219824844904905781585775041065590086603135567824600799949427866602980269804819011664479679655671456369162068564143102840847368352937777904270874348600840631691304513815986612538079042501812960910305620034223653979453820133763720846390244424576716315973814765912572441491760613634962039549309498789994764389026239366653145858119316435696364731323692440814498960211656247298737099822981283427780511692027602382850148609735900858064080687652090421075269545908388579009060217756678866463247429722643200350707549169428798854607015906051702918591871601267262016766374026637215642874498216262052778875449860431957965499130244214327554474876169400340496357555610583459697505664577087695096258034525310188859119315421845975126611578338649163429146599247480115980981914882434646171563592231680144076894887639264509918936779375422606460454902489372453364571736683750271298137057594677297106153164029520696340883675923768748796914727937602212444579067227446951042922725114375680235942278949577373493626996001463968101789289829243768017294637986670446870482319181673445992466141797170297123831542558069592048841683469588410733027765135260257569407879276640949595835280601523834582619980473359664816538122442248322124278917339649316749085491500140949354837288158654677199518980658653738596618172724613806494800913431209729625864675117237853503069590870145073084425821275400215372284950274633008317338858185843995141764168769057757477759486549616820683585188370924160826531481968571131429523825494812341562874992315476781004789837048736285383790624975616158847254883865212110455877438728512967766075217715517030277310025723435135752070928862663497764324293286269809238353545136466579168502991312368067467334271235374119961050593639262764829779037629180190766065269046688374637610493902235713130134267399792067922552134851566851486711987912395866962664272020451101675670087937967282435555416114176705912138881353911801198516889779453301173528772359520199567931489345986822982373840127427736955162746348961019002398984019636382896490433537616161885520927368354652789478343750921950513445343651552591388834290602247666505009313930044202133196579674361966200016988078353645546810356462082619851261292522368766564585837042451834998459399306590865517611745830490433456761633130044029283732878581846270696701090361553031895289340466140223790414935595556078783248180960652703841533554067221017173514380115128093882155079701178542279722183852126943346165245647313355906847065788455564027167595615920714257597194298142161273694796385568668511581798487750678121242101839953313107358778162876561548295563083874513329605141848324157463797501948514427619225186997919634822331468077187606041722111470796012232863495144934316389548906983293904680818041670791700203234771006494431607947387425199307148573617180020298195727722233828549938199230374188643285442257987964623238771587882222292412736360419107294006615127656664123428349882714049236251726569233617492429692764723451803063109683567527858551966354382019198555914165396588117749078242881327708073747854485031643911706244921878344289904315671522218085033796876619520480313814804502135388274431222839531106440207428198192810337178193327911089318297043068543763577085772349500759104987386084744218815088061301938354455197567514208866939538429445825063290347558820373868015430986735613921501416498726321726603622773520835621383964748549606326528412698430304180898613076864649712555355347930816113084949135367456558922100102083801373232995578510146783862364263598534690057380348307704417044008917495527072907374431929977684359197250226966342133052219611409311037518663940496838183861634888466793086253223347778625125359923680895219156707650911090608084381950716253478065481613811891646794145019779405044955788652475566319694240441658477248295005411636849702702552391739630894846396634687071465672516907559438519556356875334550598123445239085721340785674813235583113317236698251817484271433730156438690372038774331622252689852720514859210049475748153071078139707364392057101476605121008480260152761703545373458906530811235703819799656159156100279814875127362850508483911976461963071337706704876691909015135538291306318610169474519689296874501146877282627418699115031828972219193554424672115731454336155359441244175986880844005983492386449058667403901610552655102010411987640521739201888680132827753896642498612148246448656151212615750081945788487535411636619385556055128791149770210589876545975113014336415538919040428801094348690648957213188819387369756928803934583737116264690297197697511781087930248492812829770410315803269385582580343749928135726496131167341532176468902311149183542109326014834907225236448097520383756311293189574049669428866593468537908645846827113670680289447824188953258066266956319827616017841015276133962454947452225268707031690105937400790295052019357473936946448731547318382704930142214463105398350231791210220869658813083727679708739435414848436365346628130059946407142050918486812106276793840303855358765330798011324819126110259950420687049130513171091195747168959123338314545805008745727899728465369989094270703546410770154952786690184645637406011917793756205746612819629892148560938340582100912143607282339612843007770676283815158770988952742117882710168085827524272041580152981238138217527393383590181556987598413180070157520836350665432402917649560577901434368940458597249916430080952735823711534642546519070455345733121631462328676184216926306102254122883202273925554972452010908892096383332763356119328714305329500027930815951625113368304787267064627073059616395559415751705293830815212208155414555681866752251302258282848718130949407555279997710457076558308840045725949877299201642117472249536446232528829985604423349179195043135489261372801091868295379437451049296925013027962641400123032385601188328758754833807402253682269234592961210827279606882627458563622165593142758557298509863052064782080021161278101897532808410769601005669259203932548958184041274257937437479908084318083624570738151011763381947233507839496131322196308770144867364257538916990699662847259197891408081232436874330434080216509355376773706677309992541243243038070445284738193258664564325941232673565398726915901192317123889300088568790835432015152847044439212673400522893391780022354869425635655131679017414576479846061412702716730800975736278025107733282913960208766483160903754967500180081171682102670141501828912915505366041328674981359371142937374493001505447482406836650011803074542242949209281491890560527079002277936625699645808570689071884336154496176900854823114466567271114300060344471634225998076289900447481521217010400684254514237871592125405162849384488698684217715174889842749083825886220059191190596746552433574858940901397341869751478076889356068240458901508098998106517314103121521143223582507885674148917223697563076758951853504144062418533453206440524746635788253382051591096748158597961877287135515928217641129997825681851781287775086350580993346217735210677275853538872243784339718040011166053822909361605438897345524841186822888470372615557831364940681426923776556770762581974834348374409356345612809183882340680563786603362194722995653500574821941793377336937339824153424639957928804816133025446500129379673326020261725455029738148464287624698828544242888233249924921532001670947072135667188009349094277670924674651311800486632299175106332232137933804848583500188525661678282877788654173308851992000215320969597638543897220115209623435600594926498139644918521321404430329237128054831735005474895889973270772499047920005604733338708975562425074682905043233822320387151485487496356332693047009564070880035092866703024143754742246579281981198690260083912278866753212082090415337580242180569495082093941726625381909390548717747983691032240190985534512667547806142307334908293087237412201864475630721821763816919983202019402244962398399294533675669124797767640236979819671330853095561489547110348662843003424369967544744963613356800378583304636864237209187104476035429295724304266228681929590641592214440437858591795405054304836621159883950859045517769544047334500533563949836637797678326480522216568465206161138882130480740073085736424176670920380595612000145858993030375842496038118687896627798373258536522045395182355861767566126903265204850450738992574836324238827961536569057669384906288364294465048166001222519397723269678089711098827726747535609084953511014340649516437514502573233055777573535754227623153833144135401488421997173806105887747755363044842719061211249757963128609090267804798268509991195342612212931823454983219549139799646464231715765836804634506868386604549719599107729662810314364817532872467892138246483514414729474574824301747052962771242153514611379679312651176018908289269513361112309403887863983509170723343851565909641299462538293642465902716622999694789335690141665655047917500284221218109367344987787552684491337582679291121835264720505750653501392539786300156273575381883226219443099364820939169286582225340375987293977435168756191894992192529393500079829482218856420975057658516872650566695325426752053474725389483574398598386739602059585776108952045844683401034139650260678532085847965188331528764500874622350066635073672674826778787839015005435707476808153610440928296539276716234267366781600929820340153319025165645172558711625987138628528590225748548416191240386999595998522700826652127996746330967954957619067299478766112098942017069677827172469035822740761492534779469744773952298750486277517426273987241131191814667244691635724111369233922781474689840868910593032857981459652132265884606820252736407997562879921199443933896356208625017240777753390659965050726389854970510846719058523329952556485366878313978131343930883361606867465578965509009700346721356422906425803541246829591471060363620115005080387091956912026586953812937749013304689663770378601812389185597916098940296086804037819050750569638274903319344610888293179292694685894468980612756916137478304432894800824538464117133446353618509452927859168599692594098352795250741996412704653721684220554417069713309005594804924354684866194801914415094617780993250041114744497549186723863179902944796705256370294125084283799130801979608008091819662923806869613877141385607910843001352444933370696957022696510123290656188098608477498608983051568978380926017346017035827594733530844734279253966312140006382528649504634368831177103616729540359265450973985862909344144090771589016375171207951269272359568555343173745664639083496341824065976761846832303999390363954907300928913773788267114815116189234479268881400499915408578904851513568885684147728622406900843461496039394678381998635654363193998276288775442197241334801239449420310714892297167074888509438315599455409699949214133143920460431445473626350830575098824381397785241299641001494265000911736629970047048698533812112652394124594597631095331067207305604629618920109259217770672037999282596632783262570311511476814996711918055111322562736398385382775693741663389470339677793324398129164645601592879122083561724090403083633647066294579043872543016650601936992649763288517178936251790175172593737788276402701753601711993515794432861751844847709283247755738468167728380437054559458886443234764837988938509809715564528291449989707060146381789771312127758066100515985262106390890721298571454111359660859300747210999679156081118339522396976583920306650771640250970928723341335961689299993775217825804612252595904366425083148123790758424296969071641879042097903488512460126602778671930438363213756446124198328093566781433393445842492247015750994199233514059258545918453115554744988465835848009252710989618252230949850167716100972389011210018022546804445018493128855327307180277995971827584018346170120476373088414797218243918107229972111936942486783791100862050634561208993503679031815668432516677825517085695958613163424041875853205127855043202308529393184587167671086301637483419956377859893331331442198071966129872626209566594631699303209413315117872849744958955102620178156592924852313750610280406011427287686528441859615321824983319882749380703072789497528919603203655352240135728884297410522339235046044626213959835027682300801641480432213180748631599769912854552798038757328204736133146961891250261311293626324453211511454071388480457279796270865751175353241756498453128539457492265983462701077696328706684702008259263632548743272344582985439290159183445638419623527473400930943883313206117721456926279896370408296078863691519084322805874723685060243707066345183326809845417668972489492385690105866938928035938373333385144497062141715635086944464693036664275863816598402148467942797220056798871248190856925475450034187334209090923033873028419159648986354290750544849686681191526426109266959248609589592900716341711269890186803589800203794924042677299194770999902906678990254154309824495520660289231351683242754804931471532669806407656475349787648819791413680294728612887173352617879186481444079457944184179293717585665752654423224235437368224749636661296553177289856094847424518575930552035083950537560191333024237224345971795467183623894374581921974278342404637274188626922358736515645670521992152227877077871408772236945757431714441819188807111204685197403021793046056248223181127412208779318825524091519693458743953676904815022201706486584563119681296685869412826856588776617689815230954834055423425568556584326557510269881211240755930985844817643223640215951247222035795721199497304325371778191730121919403632443941148187470542367256976624122146830515729683252234344309678235360850357229958226174865351784451947296264960426312698328006389261230003917346157947847873626693046233454211513589509204732006366193416650726373088753273525629480191136802882679086361774482488489043099872117614741088275794681832795730364547888258507019942841726191686172065780671683494325296182548298496023033096499779875405555535833523827790297430727559186527445056769654135452414030541839651485399766210332861242606219946366533146059715533283946372448172955493118871551064749340721536716982796393181242830805188542220158596917834547466501173420951916139562064468848935049918613962812948996108294390628973611334619212743114470868651215331197207312271370885184504093185237620757946474708874973066511516209915653939573274759596996671771550105848176714159585948283577856191240644104988007674826750153743799072973545772590082380299562808790840236778055484134659577330416394500947883137540975451795965368570590251354840893933101608414894612030450582165196122295379081111223422349091716294019213949433705292997981731949352822205039482725027642613113799575885803663870151315137524002017657857747125637677745637978002279364554489866642339762198271289591235043926692297637859308464441769215214382049834823005759937055552942358536887361221883912812076151459863422803268050347417571250434280557241188717948624978869978465975476047701963633372635421971587529162363450232478088288905814976472393246596943447338252503412233622898134607828185065928066026143568139724973101040787286789656779714034901824000511643718669857461143180718433898932248336622078512048556128747223397530697294999290754857694825665993423279414732769607194386258128187970881026634647382309281192609613241352374196764106209947151943861546997768821490081517787908462883207922388374111149081101344806508564905284149336139907096061302689055685924024949852701810996616820244579528461607128804037849170216572290930883970776080457821225256714429799930059208073393915155990235377232253439989705037826754570154253546630191314189189391693014211192444692673783156275723151202646934035557598797420776210954446229615561163140771311394590582328233851250043772869463256381659931071432345221708104302880669707036433314406946753625161619792023755528316521333199363835824573298984645863127493107541749205080213552800137694080370051544184663408025359470209300313674247240388418272007943693147489834613605810172206059020181579131669577052893402396896911928338648709903591793816939329338073898488549721571629804791173198812641135319685433438154724887306151668919009428238369411055830395957867630634202528474820654648768283510296649509029931920835698977061386568091511848942568304159575990192097062656535062282389263026983288611840498231101977357756597457116095317874766766521272185684541354273492628071488550443053983439060389758492667438067584682884012369762613183345719002281167813600327975978555246112069893979858319631033115534250318199814745317374878659216320050605185558182886553208070046370264739994560761835263887455269712042478801222588977656298368391864606847137796691261334695198574057470225030907064677135945306161975643852566781212784364417633479153630263807056640287902755863867400145747284964751144132661380653489523420934155990070629591351390873290904269972597652870177696380128525102415648138416486473801765494246124991456935924089548959066858005340013583206369052636375507889560231681837937579611752031828262350295434315523553277498338686439447774360852030613010993127043184673249437520555715751048251707229508056335654381272386201516170042462683625915366179165270453480522633537960252992706125543748702537031688634335853022278168547158819772545488191674615140696414803691407319353935773220539579882120855828987012794017049572462819879482505308293824614424752689332857861954369016201571583352259380788515540935612924829675575431277152534469971560946220510749832533545941440179333114837802056137356533583379749160011672341698880277780150166473119476361651979441062369471940690707332523248495536014561890411845480605806219122722285810753466576506877886982144215938199546754924074352888811900099178993817949320653123051396206822662793592550504706060105674827478327714673584213176116404169198930108679716190940956241505293654632152703296129789686714118010632222970292108678455262851610371585436591965455215011436576982501993399402309014116358428732340351969835526921245368554459778568505095331034750590328644925569504432775111775369038314943333441442250309798735495503698387683692556652849874906000209432903702408305567879239541268961205492960675161237630823083371292345238513406581120344054013054751630486447680908914976015392378462697699096509528377236576236533094683638376823338399179259879788791946313622708173666526280222040895813322606917351065855673441602749873814578785983844545258481975378224246348902116073353909874150643040212965662225244559877595304708642153747404476887545409551368254451394964333278718208200501419851647533231318759976240477770955153682522878318814042485439778485320730664920247005528309796936157207370316929741529941874948407613701081453698445546005859003537971404091742079151114989179487644249213140121604449383516749156586152481988634165187597001925068741044094061282943454387092686053131940076870498563943115139895319110985444911195578428508888843308502872525410847501618958554928997858942719240198778972682069717124785991302625265028245331151825003173771087288562314554918222962763283902964661680050431550323680609534074559164976428255160540509561081499626752831033060492022956455483962131725956902711367539847770685729120968927624267266830808855715852380783749347994693028652416720859918332965508255496470048039325501838535913553034065915982093747130536122540557909159422254359478803219952626921316915789256783049499919541868903549887007322141595932139971335575059902597246069219589075544743455325265266300511085200853548468965137282247692939149381660167260220247542936673491418722644862378115252650689909250317900842724635944962716625329665648360091267197152555421399354912724943001660735963568693464688444446253335019456403723359577932683892277959309817167827759859104496777560971052335105105823690115927357837902583439129501127299154423693830950481145468915548563556096149711242546901563274283163539689686063538859290360604636744801994638934438968345128881238497979307991154569422039643024605047869998403726702254184571429943034062098460065380401395147741471217429025354935807047731509541012240904061152280081969185994016888557392310387214895961871522344749455016000187295926801704905416983583285962455047722469463590611504273737395401667290723546537918788136201507804805214792715022646335955527195411123808664368529016538328582294710078534205845804726221041406330661075745699812122281770262153689976516299176358963084821327910657075728851893400267527882894622516124677374563916588934646585140397128756670729295235005440298997631326119559683444470503413747826683801256764279322538410767804778236642838967376828315663001850419941136030534003126157899404992738513143975172438169765076632367891216958323594092416079298733607744339654333298232095469236672443868271212163008343509797231001875885071346692548140178367252367501198660500336951321534483012235328137119953706723486329014200577979044125527956431216849999464140330867614944281663871628284039491316254578684042230833796713806018361325577395436137342398648098871403460094576244360782169969860796539413401797352757217073592280744247583322699736314686575446087057433392635261598793633548876237591435981889578029200157767903065595587950222149368431249733504369137672535972777255333392320001793543767962319196208405384584824866476506265909539347928452664558689973572604781749459635729158407354732161062969345686834243235011977771925905173000601621427750112086580007936989611163628659260144977816010569126510965480735867651242099726124778692301140619554563765246738187849127249079915096704023003259918923636221744138404982432383803705865707071702427447038023301149435503842942689918839317905443756253203268206186805915053763717718407774968480316341021660800721339311463730471906326477721696508862494321163278351598959144333037900499790506959566662518979567781508658133389833646597756707712871573222043675377230252760990906724328792805656628175948529855120577075784762575282175205386286265636689138395446217957052489644516917151222387399681241525906352887051181497614012206658154652437546698995838542333406506953017551290363108933102975162974134099354117800381980273212434338326781917680459349507900862248706264276686233453456917602581138423283973834580851783675926734467092385023154656620949035478271486762107074051139948660606932174784264794771063709467897552609008448142768618882275841965369788860790822710775463988197998397677114568973048257801831778895637796304712616922239080232571687840308789829981965908585930540572331738541305630765306891389915654256267342539747845018681980449725339559221524120258696538963499424737594957447785197227021380658815979138121305060125155634608256441899197297897480371120062789209941266704567212614649171923405456425665511686656644030682402700618315890147950270897573378130502247092168180646944153898399101969799659984217525505442062049253325246697096432579611646677404943065454938557083166899590889444202050270062091553139083689851867803301367961371119971130877770246597472807889298574364850469589847451304148229362845258579612750583425823307352306344198826042545702995524158700216161081203542638599177070169471713721791789449599045554719083889578939876820000151303325706596216020579706333647342113790969848943060655741897250075901204419330443071923212597814037981239235660029474884546900444223883479713182215191205167150439923871936106830358847531791287720829547073110782336290419987754090377960666161958739458639391179134544598804460868006915061465214555806783879205798822855530107762819104134878844176237021234435213179023006949407975305316666481794982063145116340303935995050105836527856356877131273079962393822930718341765572663430714868278087383391157111163098696881724900142178691629166617923920881864269483120751179999141323905718056319886710046347837443839552390359031328653049887349318357969431396970926688932649184427501303750553689879281199091965312257354823150055007049429176338196547049708898318467085375728804825429560908759104055254186670680479395320384063495171219679262191746205706679323646439323674611068432100908061891743939626759026049379396245196208762844028410538158873589480226167150622538521860367022417692587578392448084628062990458718625163681013068443729520630593924805286110677210241596374176297016898590248017037939932400341082604704322884729363929796036017683848612486105802881281747840717068765047358890519773331942865965245222294445783482305231816077241284709204273117315044555064605489981271982956329026140577514883195289716548833144948092344204732010391456327850608103524726138118913277744707935108324350107211299936206971677448506473758293640728542452811958131752261338375409031307932848497528187551524883962074117815514089753091832056511710085351906620718496167491788398933448528786378983648030489508342268738267788228541965127688109238398775977273755159913510420186033265501724303462575754930874806928436201546538337745618787977262248043210830591293720794279563169074948284017815964723286961775506323559799309028346759657942504119224727629200844169875336177802006199796762392519367276101867115652178453826701181342588230442748881963775930686089721731009911887803954684015865233642187157865216377933912096176516947822849011342732105856494301268402315589965295139929467654379679225771641166920597413741763662191108987322112352016510691670115161427215635264760083588077081797973073114267573336606150532022522603042771596043700474432623754933363377358693185185685007869767635373186654490238048934637008698937666546607174121920797874253635746723666526314773739759556170491209573482356968649326422950243556270435482878738306997762356831813586512688479220018296758715599467124759497721031952938876636203027492188330264275121050668973033999454190519182216711346657860552576931770606507926087850097686008590789943879140193825624329536899188726041344589286947580972024851591813950579205531788545719328639756587453402898543825529166530632525064568862167957874117537636854600030884155195795903847169641018987441230369168636305569066744488472249255867426157454366055804299989441907168550809074266064225756053118397908803952700062194964915478158432465767956585612433149027304743760084473599493467651870080593205523486291969677962799496370690217407606846218260135892041621263157050996491847709111709001694972102861563673481987834054942130999805124373532462152109488439550692432775105638003653744937420623696450161544416927612453776815249350768110540400161204785931998207730255837211746725832955740641218078840027113393691408669904499686928963030256880364863050498183700811370536084167214452407760634630277264592034814064826622202269264436270985681172586931374341484434565293298328462004067748960133860202047451556194171299566270807006868551061826442414615811539745189670533551529595500768095367276213735767747899988698315539829092433393257431590767436691895174865226220883173352633435919915362373853714291782344225245007465703986165700310616864752893493365349859339147579678588211795569222176002182516516972176881642209013209217622466246882612675697708242205748523181269968551022040580040572983238548372484016313603184994349225762274438927561926685559071326371004424487072301084887284077316851787852854763676716754515424227739444388370335216764971651711548749712879312139913586156991270212703297790977109961233208877936270576728636623856928395605018697191630894785420857882454777871945773397689064345169455828096798005474987842798965201154281909312319547012931754794242443164810554486279254350149760996023612787150515683087029325067663368932472948611913221151242485572184592013418618773821064203072160795942654773990615217232643907846034455665998340982274599207856817713195798727894531083213374375776409531411365720655143154399347441916530649209706293640894725292890907268856223444570301562630791099108136860280885291259075553680997660191369876938896691753861727391404258609773783483041891779410594895478464907984972128233213710538622358496709160666928322503195218680120099707598103716216975851133137159056344762184377234140569276771546800952028041402010288552025141762035513693095563052287149095221816750404371055504357621853387203291313849723736633969541886521160989077690410252477316530518320840928281688808424818325458755255845440974417265225848385190900895142898587420166583575130050673310412194988320745557952418912488021832528509911854353636248064314208523004003190817186431353020094861586896759752265880118667332137529934194741991797208602987044109438169223660615776202313817037191531076804919922943703191130873405555817516971670759813765673566661102888099677287166705268655636729321700827040529250683692204207471773602674732568218788958691190679403092559491093046385056334906701694553323153009011454793455015942230446880752337816243847227966614751861607322518968874485776094255333943226869576598342770804817815011869166720234935571970704745679145692321219006522316943023088144059997275286090668973608964519618550403244287630685629562636921104150753085457824346986126632379802044203061505428616297902743607399400220685446224887444867012979123531327090966711898538284784405670769704504981514114673643941174242954894970131472863465424359062488805748276286196943813446345628965571846820681926054093550231759407550466219798536377693595037932144551077442641321126333691512674067532953791245912024419807930437826272874335631661810118046119688214870016467522870326602258513009022396660141410230030972788592881349960109782305504397521682634716152164053385282655476272050497624629172422987279800713941403946984722699070855613738170961008687009784351152231051926075926806501616817376598527360407075386848432216650336028819225965846622738154641117787951843025860667484824894577850699498849415597198064815807620289605014538828686159726311362868328817057588692107563489683257374739746445825623754582558293047331437688050272479407268154655679881232521574243107675838942637887098286405758048334093040410459042281446044793992911517070910487151418740233316222169054607039164462081329991587057045415072767916986845510323582727149376317404850399847102057306380964462988088752504353259996114724048132786428650823228876907164734609492293954933802506214966103222780444930066897696781988680091335506140256883842276975677668815066402581259423597514195474631631921213302689579831240573810334733141291128689215868874810080785915266565692116731498036871245698054576075369679399064174787075294918122861173814388695223069086693610406376405839025614544751903923460028071500662302209023021413212130924087703702139849483848942240699793433756257599798368190667093571722910149906980115877169388993132622406367120997101450385658699486440741223080347424890406721803502334213962669358599462353016580915410301229114089256734589563141660677118871091964703239023953269949725619409851158862682004833792626525431760385604109433312344283654673330165732559402994142790893654080159893438713506392711815890164593810986810011138019257354463404368250567011789777644191413193704160231467154038225407909778732144893642188995702422631321090472769865817157661988513200342944646079718599908414939714294096740651474233810290178256964944677034800430820593876264427848493992763673818507053516856934630233637414397131560581948001403694692877585471501414381818744131224820093035401739806236012967436843072624375715904167540418078578486518367612761765449970950721233373308210783913865414400466586481339547675080772788261500010607256696165618369344338196393227980759524711369414320873792002892410669644587888196793154252315377778067936400344318015333113510047971464816269606230169735280092857595197557322460857385471482393717428704244255096709541325732828228590570595946587898696732722095172700068765935736038674877869371542715243682072289836624412277525047453338639804312743481701684676032263296319400916404014287301603642265587625658075026813562155385353156649376742910597401671193988555119621023731568758843221266428247911559498013242122707947003694981259031045783525127714646884538040344069752256051142923659414762253620284575703661824789158821242630103098768706485886819913967118520968824848177024730082986442806477254276630426486568881809098759139119718146754725384680005948965613643061827130135957576792933820367268899321470461905289217434024216586743408233233871054210441799667217818343715389016793142674322040098114855955770564033185529159091128554047809783227282493091994043637108261153046362859991260156786769987075382192772389578804144347114293638416047593550503054636785617738790979078566809057049412265021576557318532514055363943619719234563937310521477508525171211322592551225363394703235088933156921474212041632149227594823156908440139520560801834625234056002627748478874928709515888719852689617859945653105505335761665610195414628528234106106761693619592021193611066113734433708203218021492176520103707677388693331112631590137175635626696876001737212840325894990560748782991602259161494007266242709704455348407581760478121748664094943666048563728724194756184381432060494156734391121652381229685200571720573954057343591090482432579651311537718254435289353095653521315966211462264442213921741519412848483791388800685849089714454973258708629906780011611010368718166942272475176088057171971631205947007657746794634418632184440682613964213380682356641761950226299655136862181239590571830187144950227216173745552034512318585581553362342713324067803670023624623193451374489575568640325652487587033227165472416101849123361408391631102204675659644277585000137093289348315133360731133335726031986177003672967293424378161198277139852076620440921032839410846757205160189704223725236673614719103934352991356642389111786036066235981208383833786435975300204666953974426833634821467709463690652728040229001185537627628528689303852863275320503126700122894300940549163331552896437370714029322578015079281118896447618838368767995214098537104731805340026067821387558102450619266395875033662297996621463429025419747056219540906750563505449035534443841505494466908249221810228468998563855265198606777616025855591148577271405203906077208906303113366038603247664109622708458817285409520593030988976332761880309708366671629505773934040107421692256536339274430760397239581758764468372634273930106244972174391677179684538132455515036767420921813760428990718362346159933155218694053993787664655086737805056917394341717493700194320304333655077728390793617298960241768961978329414516853315312600864876761747187751515088257858242431471013934383227054040886262191232905214334279115282760638466091599189426052977972754571829008546943658697312494298076014809043358508046178126630973287213014719806699884559397803349975540607665291057162858678260837558367270591030755598135254482344161363519647083440886730644399235778836269920763342374791039045671917098555835662037127714603549513463652130667230813396499564985976653997125200211934534250462127148943661658271093608217483166600544535233779095667515101682541516556843198768941376571639778878747001932333734574307669369867948442909851250190293158469437239953672961826854780765617467466647133996679250288779181025219479405259594852233594001773408090246417370418843817790576196591110262172527885152012934277633187066553359623903231602482412371805128770559688832177805741863034505527628571802173200142807273019852494294800684429844177000777071987934003907442253751950180205375737217929851188086558659445308628159833372629469690530295523482206589903465761544262602463804973837258869209538723760359362584843956815270206116749375477062209278241068769001835686094938785909663617677381883163020290794567439954120569849879207735157055214489789846572752127718850447862205083723341359599339703745978361716564439380041582729026110515348124805232177039100452773368043965565099160031991666454170247048526529544078109307297592957324672729818958683878107836918062405569016733706599033785435624906642197581251609733158370067148273472656753574300295567391104045439547701653151773599660718725484222214235283182438554364101667971186987378866079336214135317267456977037302602314391370038770790458921581210318822437276761114951977253696323765581201358669598970342875033551197219797075324171940355744504695802344223224712485936348738509810520476446406531183429516199823679758856263095590079075490346908976352190654746684036342750329624843935753820832232452627942923690052056234318000119312230573443660883920860561095878235657192301250717384152399499706037509397831101229180885600222615252279456320160218539337167710037466641966200193955375920442689471323629622370810289717867666314571342765699078798177742906690718009139899007156464780542892543084454693850598666426331667191434559981176680035603951341804416457174036282560394041399275117065808568988190958122496510146264407808588320290790130626342281277929000046632585082726992400794807990668151123649199685863295396953138282512602110475744533105926002295333296669467804478159180297059178118730274328858586932943366053108730887106042185484004415749310941783819108018289094802268114050965955908652364340465960400932674891615601684250374273926207273647735727550017119019752806874528965887504306707354261906412069106282993683318372638795971763607750788472165208044561908215651647712328058435159685345872469597965641865295971887977498448569877403566368925122598394912152153314951094841967271771831993009546411666767325734725999951364258650032930138671358802561877862452497484070380705646532237161042437695264032889403189717116816970722234632803916112780747738804719634353614929122589390553105168516728024883957550958362945049300218002732915419364347932229117434859111727027757704753890996148617682929366023502074737162414843128460051615590406206897702409354916943351918624903903871927935363203828543427078339935034805438263704891602448590121982621694585418743907631245553820530838199074019500278160486307185238591485212162367589083972148737810221099137726930585796621927967289453642254778185878813848489524473136877991845400226502925966492088977287463981474925656539376146378683898448418662063336675788200315678478159525584495241516387853610398938406878537046015275610378061892691515483019856291127393206216499544346577007430698606306673041508674041698670505795283946756755065941230084938971341892505455248187504200912253986348369251685235110206250999458854926789814064709250835985253677901174556946193820331790911848044484356823975426348823661496770652228486058191592854318819590678481050089967703723254026395709800079467909743120440885873734698962572982027709474183693467928223682522904366625271386786908175802289929113184336133599520336979735179411469307459851699663295575511343700246843565671539664337687633069272038552346858084823931669090088069267542368132439264257440557669344721501583816508651644706703689467186645709755670765730518349520461975363955256813991751930141826705063082249057592935912816714564578006155256439955225368622810303309927552852797891534745659128110143772515985980057323672215306019214481468541132523964690372463676610915315399070299471934527587467104000128399043427506570516621609153374814637439117365356748452021148576597853869028632824422674581375637530346729646188302950129394928108027707486319134303887121441559346866486286168758217821434113697858792397891644008431978135490099876955450769625344121760723016720180065864379311566706738429980173224254239338679350998458486551659529863740900831960887420801830383786078737839048137523529639890220172199528670123001420809688908493751180363147121580096132473195915845325938089892415868448391959959995775121773094091028053171498323759396298822212402910217967231262777136048054762586211448053458008269061517528018137118783552633158008470643043775311764045302124929309353785763259098219503782535831954748099963123996805064227636110974732007038986473607632827082599168232654941952885856962837921058063291915105237702117785945846151282577182320004183236770027576397383407379916535713260288056442854009638304407501127771238476705750778226195389712731107861431696184650934712455974563495310749599618993770640778925150782956940099201583626700785260636216021998516016503003413985175983250863154897102531326625638917050643687305591477634834876957629052224134867225121644615896806996105869429284116940050014705939233018219459540445399652054730551457939569805792579071397101440666789722356853803676360549692858289105385776204911022867470109967831851180074225565358536292178372986317990548123556478296756340732378980628652132105539102297718787346521659288918937926765314885966357084471767100471923166044197803312027449238404057417564751727297833085175651129546602488607906360841247202528363667318346985511385697698331126379744237717091685991644553522512221252233013087571627630046766631748231114263906386248892546823291314980077396445781160496638830301116920054870210623218727760753612842715826395384558505068575217175371346606908174426168833187766155027473277247120257184706174822589672226668233048024189903855190266910309476639812093689741474307630783581926824064138624306729513922601246455019784036468820568392563689711083308786630577342803760590577510088532073933105729747910773028044179520545308583442820705654738615495014924879238277637446200657205912661923746149677125886554715739046969667261594392407296306473775245853262712266693770846638675095905606314949022053055062742738774905905259032833479970679038692756898149898725306224025774970873647205828896593461618014710636198239082825704441223398001285809938313888656919395646997882730125013397561823171456160448310971532622771123483318872464851442685754020804976780864444549649960513551534298885173323326453585581904539173121285462299229625104992310494198123660156385401506599785702434886911453544386062220549160966559381401109673277039496118897097406758043854484471813697534475735416542156291802218143806082422207567294004493265718647225616527785992120270161376062214966744834053671196194670904749913583336423169338905866204848575705668066505660108743736407335398716544461881430776185774876885921606015249519700039151606454309456653543487562932079050760415661097645402259924138682765025888074075330182091009234743844087188268326808557795935490997457519423854477076511180101289105319334565638047628947538874039706983120605077671649972146826820359263553282251122549049723980360234953451533770193054712985379244453449451644268587360856558074181621460602266654751874513438879595960785551198175032712584082185461145438537975129991334520176963488172833735603295124597134134755255686007806624113114404073951237157489940831735757218063168614442723308910674937728035835886647205265755731520778397221758964564232227642187888268512813634691728005777660810720478894979948336080682708114499944986711381244492985914374606783167571150660882967237058637435205549230531993414126587076403825698155030738491277266656193784288179199621607472262591959429689973561827275975207269849464629893048153134006430608672023195354628672927094537351771315431041298994669313616185045217294710102757727787812721807356345884504564129149589770663923420116513457308640761989793004751968326730144275776958023757521606295270810422000793642736160332369771524360136826207317318100401475486226028921833835748121996181435368115469934731334102831677610283223022321321006983047757101516646538735728339391759726921728936669965965802519965865633490060988522934793724791577160498601115828995258473861393509732819721517317773562583111474803910812484246484489382907703127893098653882776344407182331421524290670066367691177088955104204879614922515344807926910642459137585141939822065779237172825242112937442775903317272735595155371108096944898535940407705335329416454784337750749114403423907096213533352723648357550608289912977154251285281103432399606456762633415691744109383379213768841004637691570343808880228483092449892599837523717921110009966372660341007967938937989574039590021795011503998846286748397751472461961713796111043562402245843417618299531742035236816970363664649300637183525687459792824801735800486741438575047103903319833212421483022580689036881611333831538533532591703997249429944825409179736070264162547749575269669041290622378965923897932289155960285914553195647823122578163732903998031041484698593582034450960891196942277007614676174400991656923570489750812602319284469786552106169720423488360369101518090442542341583209290738529035227170475500858466013283550272344033326991276401196954506677796628829698328612431552440012228169201585139801063660649895043505454458137439330366939319390585312198345868909042070562081085876947345113493940119852259075997362326601364386368043346305861155128502635168178029810621775801957768040303399938654772257824717695034592707291005937097796017444987428108659507890338535662778106109524927876450302853649215528017500113788856137298480665611289724992254621837520620218996379704334987777044230271783210751473812948496111614857698278707696712034197769469340007056920104593672782578988651342994430184006799831425262773137656221504788312629258443730025974537696766045926858132942422569188761007640799367671648495013184460308968415431315982774001801238252868802962927206239957772957246011083479811119052513055311125305286366626061194705766556291673932013552460024826785246769041928321691354638495480838061783263646778886013736254926593685552889529569186076769669876531357024436147659085925152017849378166405522393706294073929628724464952308756367411256425057984617783032725916636204388361001706195943316638811727419619634890779298716843656987066516385116563669762785932133051106720879697307857663884599229069694803902267386118237745402375202160515140339899974928548827164134882366944042532887978436679249018309211640811287680858212340989208398787287211586859667138285234896255901968170746574507418095017682513656666042725546280929623398986446842999972062069720145337367740823072101963405980767802006130077138451854301707289720532768548074656924423648815102051665687219341817916535381278530686054588951010767168928604751352346939696589224202874374991435617392720129664765248484941774252143397386630433008807315107060626934622455393232574409513227841883809574868715552150937106853758592031972345407934762202391144205235828865550986242300184382020515458951346068714222606352052885451159105020067687920042044258214497848411841036448034135930916363667897257574786843256683716829767696143384373600897479704595400520945888639001644001528400652046759488188023556327263475096369293677526068521649708446719138287335578017770629220012576099428339784657718264018642849819980430154740689942922657862003172229215036861081001999559688740905510938281575310390548685419232136762413027786385757017353793829292280913673896825522352035011063079172844398789497782426557104891230635503934070226801218876684631767783948472209771817633621960127150210912243477109575711791398617287650428613674106231972532923935921228248374549803935487787096302114925641945234471218069384763724145172287571628740779649512022150703238501319636871306671818313395218996001953363424587993203828081041698134163181147177031781909632845888212082845128543771583310804322435518969669498226273127840769247903300278548348471531290949284716802804157289260058951474263921512716758209501277638549896850823037404366466514541271941431183568973793096492470676392079513350442906576044399294482990092719799524233405410745903556214196465154678834946939678907789196337369456090396006761278176950131240312390906780921762007969074990470328693783811019478229341069227559695056581802390191241340280212499595972515287538021795649329284584044401931350417553676302709524811193633729712411378573260577266811486152686445420629420456733537409692189706215394483336469472038093253925407245805039502598695693408395033399564771520392933311765408120715834864876383107297369919430015363981823772151050614612260659492211943323602740865132061043176320396540228745760817781249130386993951594538939942754589330466577274762291387761344831093744329069191509939463201639718680798860272408280394110611056492946891500173639590080247079117790954531355485288119680323837685027043688102136751685354688799403992855065036285304566511040577778145512887460604846272818308922022217772562647253537757239216410796821363335710394041251621823272882373997255557780635499126910600566497823204491691425357095267190584294968211877162445681476502978852994166115037325712551120955938243692554007533525640378574763825703612786688011890883178472167205595148829754096431077523247861695877908050444802541089512881866007913312368487716791079049984519734345953319106991127643564152227915573416263345909539181566945647240853775650756050976755489560631135863973837232571072202460469387796613244459234733004565876611549589941576403214564370318300130906357171214445844469767523003510546737612346068554260749718045878451537446217896384560067257559868734092105702863390142483594857899821022297740669052020813997778629943853968042376661993760552758666032244807157266812112960691753106849891711124111788393234307640225806830472548267878759577564452888202200884073694666086523587208756239714657301358588556545983648360881336831330123102958168387450589196538754673171414224235871282088136263488533220329864686020810890519204104509513003962905119551268555318506378889840988853508598549533670771633593800947237809215350333715668136502176533751057158474330010164612882964420631017728351979621937135719299274758665796172010899880125264784617898504337628337141751701441001369002603531510324543633757734755226931970671144060330998203556145910789524349165484617707784486583587440077151021431669302463250275635272328603578793101022673156938626919818127093059936433821718358034943745689960799244993886376060855849394381580057311044126358401442724574660697961329991597549146942466511461977348306430727984955519952893491738316700531482112052338350612054130719741599737802354397919675581922892572397329604703763522888693690854250134570331806311105082029828565217333966369576078945572862927550417597929639018909468366570073671495211135734046879863456425325714398271932948098207340986626029649941488150102826771088720400229613711214067138273811452910961982115945586919865124701878260113948472518912091736807835109912996237234800782200821062108813928526582574714632446907780557587072050765160232643909181135482507652978465177116812845227945591453224769514998718410680631138498612657744277230191299989226242677071378833023927842634984676743784672832183784205757114999832008519557151031514109207355327032404940138471665086160646357191764862850977829402846521420747583897092375551151401286069488348899131841588422981164291367316733881054129764737337443100682002472975000780132441115192141600844945734495645834036594558026029493035955470791782289149305580952716163866501829175622384994242277014709952107756328291357192928241356891263343644750757382808889613643203227102897857304013136814908728037926591466331650817747817792917185748713889059034398970927574194923360053711965201468886520249730029373312831445054782014569504792079701469235393728881509066123928570517405136551539478212206679797743086938788154449465080866839312404237732197588729720688524630342374765879047365513275676840922335785469096501092755213635550378315154256063575912978427659390532946392012569370250199766375837494095240862402213349598041025612361320215771290992221530945179670063245819569145270803393195565153963813959859704395142372614734704064079108340879897544526965795752599721817215008699760017439210778330774520513863437590040224253840603531653785196019136942360453071913949349848176201092549202091547561791029548715228969187877652068642120640284904926980928826124063446332624470868559732551567336290441393799104952516949604461199625746282973109166041284484357001653405349305183216254651244296255842578361420454247397044646599142681817722359106893771816548290924781577646072759115903039609397077885542462947990978185215831228017037671835871475536305158675796200891212254911536397174453414124365616413558946015593372213494530253565465362310229292766961091649605743938894237710011025519388580620298283167622578210226431775939659114061032425006793634803475866502865559158442066152023806589355889488067226473376543223885985926440391205881364320462850591400112772275962605860944998138631948054260656281979911782415040363979871595545359136404786365242221173716529235319205461439642067710620255709361912052804339252871702973472636222138740931090885433013672609535721843814995796414857368622688394667364155392543887640725122836613866840302783040373437395126691491657480111227356315436792127011390060771313428999848004683199955572802051356133874341105762818630637628247055863244063951529535985767518052526390676816102287843488599949093957106240412223665875135083443544397191012902228160494575682314959624887384134969603444881141123637301426718335523616476086104913918211805109446034487171838928826821893683294560689189104885632492475336081119012887512721485497495970108797111494271198601532792515484340240001367814749008617924025279701897090858947356539998601026605467948196099007941219111181873430680822233744648360694788301392704636601019143436522880834700185261764947023361401069575230138080022383355886466208319634455289494950800151434248443099006896387189160359779095304815142380662242012459283184401931545169909883079259972310728173426019759444511953935077046726909825429759324257745199903283205307328062902274918796081578183105005025728249926245242862165686143478050658336021735139465916456495440026756664161846382123630648372191032345712065142184352208276671614683695885266012797884989620913307670145779887179998834934046828088245075627299811693235291367345828173916924533929370324056899669439540141286241840509039113325558151602296580261452719854352777797547691781414294089463974784211579947650370450571194455872983354900371811737934750337964241881465723837450113337098208988473147259832889348918331113006982538507674631611067601665785597931234412012251290097966667390134800221032282901896893080945741777312355261728131700777069388609593134410966453909226693479097817190744702763297620548668192394242666704039004668905090979032606642038758102695295792118659800518214990472585925838402020762715352400370854226033094646055909836456268587499543917609347390234188217861830645826926002074449549469875542286143955801146423301971030500397711093281545153824686638745368258039000142433976411858487461122141292508599535128565336635479227875502891427440778106561994315532612688352803305752216005355482811770732752469643702915722128726353987527378537341545636627637761735730128763593974730491131298962580577813218668820498090415220399333885667770899097313841578250747158538260793328135729952274717017586102656949104836520608321572424299657781639388184923869065169771302898116860464636852704571806093090734792682453697056806849041801252268031591807791007165003098214832918826463776852959813675823919301321880087237065217003156970187309297304654754822855618997185321795127038339390319359512606099321214914423412977653268604019451790872846167557902023861510716960942665629713685389550472165740380229923482715416693096362909233432160305062357669179266278440044185556972208698413058650732328100288174388216794343958899710216337972919222728342450091333913683441367186832872807323622629956868789234949325696304574756365492579846693555122784173438028005073118754896766919766681297859272360299716240268903386254730657603637930331174396457441516931394329894868188844166414983565652764317864283914061310686598046110170079159628655027804325616453742065696164232946524798259541882658726982772579916646215394905186046781922868447111759897715733165447083653740224946213418424463498147220829503615978934401152495934096876698277247345628069545808653590582034255771832841695755486858623366927821198087959412863111046780126710989266654635132608431503543918726819108414167344049324844840142749680739916970630363111855692250483408069591321988381733892014263543002496168254180698849454260150639297458004550802645880569952411332931422129992061294158466296814029477821843367464362417687924353422078318570108860458788231534726366132793332203523373070090523028147006481462224987133234155713228467979939979269915960868612895474727124740243201615361810196220223503643348418647022998004570795813291130351441970399999153859672934387119651500542782507045555429483368168919487532771563831089733064764826305338757983634570862610203296960351906761681271358648378471470715265410749742416133993646950292023941113077601152107379561903730420244842931956546862127013415878752224017883466600987407807203973645044995257638845270409993787152443502362201922132947707544292478736486772656029382220719283014632226087209070660010572291149441943205246489801717369716828053515703647024932508786515853324130963203453045460810760514858411399173960403505886095487852249170803326321363320532421035225831714125349805212989725301867022304567148636601231450626025218823943643516535561107041445024190901956152199785706780902022406230511679299528617534042924927753751055494987379350797795140480215643911018174693059248071800403085044383331736519811893825001552416310892598894032811968025198837635536532922922129910192955370248730308241236704222508595374058763135506573646660365443582201302862113897409038713263372850906363708188367593803328894261212011826791126200988434297573410736073764866270463236302424371977934395479393305959856314617716690453863050772722333723679982997028822992172991865420652290888074838897759967395597770169158831853958538952100352605976570122573808165142306035857435425234637452449654471184150867370161005191518771765209619596134180982207269751951535807256320215468742506061168027795881957287863053965402261036502457447586791536560697977614646572705058393189495048395634761818003914827418759368377114844398917145480203629166760362635706277185622905330111670328556800601070646539243628712477316610472298824295928759640977310099357331460663692816187873669872678988267407737918317703312576136960761610822535905800763786308327992473216049017156473034510467479316620209267020235231140034829165645156985328549342886669807296980504498613492606046544966761456131815953293831908390058260744034364094260539108520243367438741128273754581227314522194252553778302085157209936995228173855528187486943506467053855751082670001320916328361137030380922514673160243011616018217708996697700351476633258141295799075288302518761323562317125445214607042417773558466550333916706357189539736325993090080765402391724664477198102960295423442066545272202857448747530658024482936347660760479859616066599789394126897745739908594709103246891981834632077759875010513398588391249744881650054662174284850921665337135370079819079483100712034120140966225114929415786697865077577856766321027231161971275749815781743280502205282913595445019708346193589859700086408759434616144275022204033448422047140318808618525474898582720418401335119860295617383597156958745416629446471508361734194863388060737216929823105892230011132668360700317367182417480360543531942123976904961848324776747081523454732881882650972567253265385218435699146456728276342032243592218830601484213673644134816035906577226591455356734281842995086961922035668345385122973725909285572274873951856165540701076589787601722809348419159385973943785212621145902294473977167871792359143688613811369070897314931101196531248395812378300125985739335764323398937470439453246248482475993003900493888396276855569032114929092747831130903756831081993164004043371684758845538978655831712091629204969890601519863468113716394218663593605504924068768734860306679611664023130260940243971333976234099058910018145689723381882504813198922294495965615762347657460618987722370860039869332312933845387662073702604077992700548034269556801522424826698776213122156147423550594098909617683450831071804592073514325240607548285779615646924045493724637345812704916615804896404720550135980281536827316836235317397214842415154274420309680771732508479210502848867631244508437298332004214603708852459619465406136093647064961528322714950694099753678223502498971327209194447887554125924843106697087547593128877437958350426250417262805160241313752226234498812153930052367017421558688374887319728463485486632759824563930310669637228018813906374929327680736868447498758503996159372449050634033208007969422590760544253652696867664791632402925794675410089030537467680240545614811573881073872684392359615614979239750457534020528562558119642413036366788860958440515510302149661623781842372147652563486212712103934976838397296746874535033651526585154693767065404146514898850143387056360725898091911065304039077408458647507394708143852155560486639720580507931195251887734251225166895669123769946698500897461210460793465884941663989511984005228905652102136363141800803142968838423917303490284191836341810118422411047915824011805485449031599716143687598650129842124591501415857728272931629329382979462719696965608145267702697122085736592377233166451323110676926961390165220300045643532414141788365204082849266806424496238172074240783094055204847504682338708372348167049443470752891670720784420397198064949204492859429154875685611175124071600529188132770545944298526566826684885462356303960294597468069453880357675907490078668003545680373261680903034214508694498117112155003709148144235420569312006139229947524953879624589736963663911040609492781929358396867349927979473328671166867015774998911502855995296047124529228398298263090190936334937726372242871977256933873908555426386730868503050530826903775587465591516461290366638421833975109638797060268083224224623017202679916340354396063805678231520356360529796207243886853553647915928689845771705512659597478218462692630033638534311821275118938310232474610431160252703089388134176498275989087444613124526274793745812999303180952413276318148371207320212418709126500726552943453967605712808961582716450036691679409114270460519684520586357903225942691894824838257502064650797390569248040780302584899380827415284588787627194473838551212261672779965087003774766807146457633603889623720584573680242553938303996380498468742028438007871106899526667825839456791639758866659000087497876188995175944756039718364590649840215270326721720573354604925061108257038672472216610904175033501648060490748039165301274516874212475907276094703863713411803441381925791478580135292821559421716231615807345028519835763297893989566920521572195886746710752582320977953065677750526664298126103478062256012222460255421938665501218799975961300761607754203913901169904950538742622604375915574681874530215418429388938145142610769060602383033335125193550907433683732647887179115740454022812073437758350853707163467635303252724704268159544085098760507511355607406038732213901625472672936196906222424500958962059209155413060972408173890896083978292841676868293547204372573046101928185791491203466140922655498597114377257777900888458892250607794518468165910515510781943073163355098147206673964272605506115065713742173102863034576077916421245759061479653411879150208107722497058963883006133567158225932697529966045886316601407683679943281738223515999545113746605539844268661305244403953006040610674920789005011386150229013824097730833847837093194653998638596359330406492585442755756990017883158447301560034359248057278010417681231077506075704962443619539112109672022827955675563207991312194378320440876687728333685325298365458312602926447562698977409741731158082898627556797940721505110604247460419131073407673138610146972377841184572920729384931108774301111775912061276556442526731572355352068343035861735895711180116978366413759936758122184288546192712411522285276863146770775935667021738104351903799131125904777305381041828120325012647968376527976830119016661184075143402177812551350545303764243832914109891763471826973264625218958849320702231582303227482895794640313725339781226276958842825838464628273688129338046420801887460714502944514800749813110859649178426169691203292764974937371958629788713956676693443559168139439699058435881944151734184701725230844712018077010851079955158045395700001361240710832746537095433903853405728869939977565499464385937781725804617996061534191771435762380095515269095317516980715427203923093810199851282096599004175265221861069944141146059548924615912682203427151840090451669675368133641580931419737541885926338940704823875847250281764316011573925125779287579546731467082620601628588846554896213505979880832197398009267793176201662589625888018162688397344187156783888995081023484284847325309222304668678244375092746495651639483398110380796709249343332955443086425569825900265978120658335596073010692337023682600424520536869196023830460659259655444708723141064019614800057564680789774533056005881332537397460300690697286677565805332693457216629966714023727193400595531343125595702535486132721504759294737783472946402495827644471387661638329514661025460420799265197308028524475780363645357158470407732610587101984368407951259461079467080095120578698959310482249412641747192034319393910277977418889362996841388942942181661161645997288681932485909958273150530848827221812999641812505002463555833584012020584419028486973206881293088885616678040810330757219098573514484743652214748690273830212765040724337462267201849038231826478319358775697523162375940617447309436142040804446780105881937564201127748842948409112469579659291619943289358145632339454227721725875744977011040885033884966679065301495377239691312337840843567612714825746691663249392743886077197412916391098026169367302399349158918688006873525366544194354322733110138197308341376540052241209451421185135160593526351656876224633519626972673058807076551176940058508446074446725894749789195440380196890104928731880384034953372215946439983133310970251020448004641611367407659549415488022381897940719531721792776182278790428496162132211911214168076796884445868579310835362122933969683509687492944272225579552564459586796068886277420587746672910872909987791359432888735778774373551828191805464686971631033776493746919617254081781234102259628065423125795568756950094609113167573650828832370521313045340932832831309103537602508557177320789543810338887310311104331981052980203036352271080736751887655749522647924363931580586812358603497694131230990303037533184275158888881538515341292822661534623073990781243752327367679785215653408180357873418945634905845180831781575491958625230187857647929665772119368896589099050826659974147092371026784987643189260333512666412002334909431184265452101869248174306529608475298876139408016217486072269276783904975373773290474961552895507571518215413184986744764265966070111605302376456760828784215197001726529714352996356512820644845703526787820193469387064790384570454069068118606948475222785837436259060253067473638661341098320395228222832433828719202714118127852476244789773092754119845352473886199653604491279151432947669465046005174920646026653091894549605384067591177149078758367722043364510223197495001504524826800286150998857411334906644318264597372649457612964747884709719165037696966035945510476688923760803729478590648046915891103350742715226416478513547143774363499457609597748476867492997816780872725254795366289482302032645648124685766603895006766441873818930331635743686417636646551710688911471738042000822418330892240583375171701013151931505738553237172976219673944988287834294172707485587317105052167443366195922758369593223293013724763600762765182810031551821989654518242122030941629264266686059455613069691718177514512565231159865764799045599475701716199128527248453777696666424637801126097365537518376992002749217806976979430055896640097564347823823287327628605413237185628880180358291116929386048726095295463762274934269630650077832160533267386356215980431981138777329606859518675964096975338949884210845463669846596319725063283174732965967788687369554704883994257196197716471475304666161247910858183411295865211837231733796828084420729930293417109994435009551633068401016094537030520273562208168354474184280808582763785867905439145332076877367709655814492332960376635349526114555607897668354926412970137928662059676135220597799904878148217233518062825155014148700964924943859513776764047933735210456113308141574468781089483995801189155553143263278226065316878629043285774885304257469310762581180414157636253829617234063455297924066188668526743952407630793649337468000822132652338637034598574821881600454634709076347814107155629748324694379450886379670393907530302210700717339170033713710824746132392495258690816696769772604285870862688481148149161333428208463823083783483034182403867193200494189218154076519821177157958936262195124222615929884241511713067301936488041814256922070740680865758676730384552295280464959416126247821758126537292637811425229969424865648262504152214494989467607478779158620459105359017556712437251173510878107808418893378179234245136851185695272721699277494620010395901696111628494030718473836479511766301905311622143983795859805716031362125377854920940443119772310677915664243724189813279408146308937326464590911385992974462347835845144940745467851515368061218499393205617751476786205633848083190498059700759250815044568497435922172964081883975133560921898167673124808689695203053428132435954810291032332110371142124183810688247980550628476565612846371060789784037146840277838696780081291742725031412971739957425081441966370809678271823106318118193157653305609072143536795102504041880222296971796005511294275454987625655108218505332544677962519790779462192397349639774173320089512172520758218384924839070909081079222822045496801633775366639815053375333205285647167128732238320594763893885807844271583412687654832801289105734155355287152496433711859575984448299648865689195476407793062968568875000021281733809813795903960528335032941377869418728105636777195392923530514414314761731664229110314581898514980272568333145775323290242401023271834645584450977865927180219211994829696643684474871717415515936636241638714775903662640944602044266432013234498265014873789024734764092783196310773513957104043155675678611507211295736917979819632806435235643611648327534418502098700161019031460007542712169446073948921083639551723417697459946248646453980843130494812148161006175676543857598563667754453523742276403649956275497566012921844597230957868334983579776941243310429671242747114123770540127769409245677633181611652024712794361965767202598456754681647024941019144111352370060891322724214016798376936354041540265655948391744889935033210392949291827823672890155124243939661260249881752607397129663328610968087933610844036269837524735191710182219578293072697290301556882715146831876045005025055859366690056827758101885850038246919389631489479157680588503189940841605907524476299638941109869851816758777469474954907261458200572694763541037893785763017851716924154022210157351924546203010302690463744708673166351069340769590699534559444342597774161525791442949331367668850874589866443648430059255427574849200940599165875106611601789349041374305029442085162761327938226058281619195849264091178094499895813900348759498250101156675059414275905190826885385588339867639419540879294172012416540461333375508231979859706707573625434956876451417954662744668518983518651138718707102415409960941228914570446143568311719327860194207731068244505791136318164102825072840279427708093366168392877242527581753905884676609713749575886721886665443725790826061975942300740177286088046209057612799178002113765832803701497669214069622008016876053429778590566781062995913704681667419174660416424059886966388182526946608605752449842097717771882407440037523246562637630237403890826816123332982080821181631105849709064233382576140600738106972580043060308793178230133900998741444203162675240572359572488370468033006866994504504652781949099518201140198158186957227553465358929589595270968023468663827914574897133323444036949103046346078498722321957564316777691346300749404420321700704859296253631643272645326127211432284277628025914464993191625137956044961936826881493171594172024376224226399328901517271478554843998017065475021481539815497444780573967593875552745281712660140043189782983077061029988226071796589164878818553251195742896474346783817382029070129208416648734964148156963496020044920581261903005519284716453456448889065154125653183326455749053092167052574355829976645558124350603771794154770057104691784853268842411758248816593717012972807114124757632545192734981062951246719643373011713371554302649004010331570948656200642302554171281635408251265203399106079545745171590320853649378087641372732863426157538491647449234898434428407460139895265727579117055773133196907467880905594269930676237573529188360276886865093538238689636199637553864979213881520762981755708233044355760026929970453613060549136654996406077689017689145529842965574208189031448451502815615544378136897517099236399867127850057860820369662179336674897561543843142060952117835831016819938830983359750672709275829452800309577753583985806421206200129633563421383000668415209802400379703315478406743773085120194836556587845308194996110449802770829277081773945676864798985346374365591413097507727750583233646050357326172832825129035998441127343177578392060396422903995471971073619894189078886558042529795069731924366789483015565385796031882559596909180323125687312415338946640931148847366568233581826947412570205014699929189000778184299103068835055917003315027334277960914184615710216623269265279913071465786430665511173489338632767220230195994234971834829421068240688549709223379543546396590247791719202101255396950010079721784754259764557665146712073986183069387412959222610213212276392211471703985148470725956098538346852169867261462439741735961981404156211002140605156949824016301141053008784653569510388428411739792368783962910575188792338361810418891075773677036260883113391622867248379466950536804995203109589608560229683271870809351783722330135418905278045311029059865421689222617199186207595635165146968182390185691266501574978252025156073151019041188019697190994813427500725511220383131829267733446451832644683126416693722316742402064306525965536263676467934384213122275769484222037592060467356351530825185065598721629306053046094651978749028367245945016291511808035546675720385118411587753359311781557312789952014828014277215096898385465541792801132169600153021954733200244129538047015103837498399978144176591076778274763162283571891851547868617318437612597369896806510004124931421732718223568687141541754034663267372492120590943705473704331816281337656830193995560242835491196447890128935149735282063348007601149031826780470175589039127901478967867983011338985295666998998311515715069806506472320524094587619170677324285804090269812233047123079718949192804399506334585637649096765584287169929272204376012790649928305430830520863576677479823364789704960524908715699711255229146263968623817205831866861387091431750907730174787651687713915345518434053120309756490682882269914054576447196991184654692223158972291351666714054088737142901313340141768193880201441757730551930370525241874800946499746133232085450924014474735108707957829159801239231917111359906670509319252111856165519123309265807077607397898464143719501265863325930692602862074667773602175759091017948864191249796299774219728108652896782216944136367698737988075822223922600750079015764797585943587004681473239768982602127738894523952463034037405702309707149256949671116988266921126885840648851450558956304235458988837471056791796349358602754653764039178507401599746500884092830437097417478013645848748643820759542550375736327176654783611439618077278912231530244200477370102992418256575304959915233773267841602814771103514917913251438493196704483809411944029799947264529292611202320341968999424933431443147535935387100254330188110235276952340095180600985331229086471662614953782459706022546517907545758192039846381739077601941347745892169032665622549907405005252183789008207717951244748789151253860197276770949588194433838677603218605070997288219439664374029210377191898079258470285546051900638128210933629569610493264825958771732589484878322501599490700054292003662337314617141781845805298572084701896408279420547951854634175467472082449832605833700846146580036055068245222340287559557382396802574881820016929736577939376012183821575663750704203510952841723325862451262266860259845543827554734713250039213652106811406823141070938721871259050780722286793208763445801584036112079201836648594767408816630835335146495114892349928153868337445586761627989805943407246604582953335467299617885436025880896039993464008068247448178251534723382765063917280075119504175951625796702240421304068159558287662594070452885600786889211109352282240002879368910335645979399678431970582947461560137629881404816365559363073944074530784722200721074605294213005964876183805916087174460074824970885569290247637795259029434861962562654296883373906395089608513095024191608914761948632108710384953441608192733330888954620658864801598975565521854525165150386815334888006561081345055827795658483993433698818935714318515283269385711192530665071238181626968443647096604958153959588219392827181083381717449358637422369252936135853643396730530973213765621058079938469141588448843109231219612350980040571326292621155455327751148270587844402368799949886751929807356565186724046759894112727427525118707604401020230223029970788591047730385575990088625786563700437274631778342042965598041805706419099008236812838429650853202456365892716344021928383457927045611409459738819517858830938517271706127828611951997675181591243450989760370826726300215026359834948583029365801748045648787960022165041488548182492714387109556221121753869042782137294918513213105947680577521982369628525766228189486873705305523707405484043671074112578861094434748270862972685536223082228517618145967303093698095827294061180984109298747330442262389568463662262374046555088151574650650442472438003177020868558946402091832342422424682131887733568737598578322197038517877152349835957228746584639783716060089139073889058106609195884314635030341906934138354703493245567526133341817344138524700978955715592097222092173025016251144955400026129150100686491692629533707161041745562414913590861236894540616327988028952133668805145346085389549985775493577935775355708732536039012551112012575332981121072586565706461700819219374722424739658239765635187429379922574575327119663342866324239381994983188591692363441604897224469811383250977956318066192987613469298780810077525145924399328163224924735248728652514724731409031638145654328342081355561118959585780900849268516740342856745113315246808627250087399705128434609904999036752189182594785504670095649689580879160606646100813394731072501551645723920049596623888787593685833468470906226051483889403131801084402783415053416390805680482956296888690726542005343435764191198814087617948478178158933833709306110136483187220378931349652404185502190152528845561723755285682594217415633425942964343032455181152167208823785023510952341241097166161018226319984772917903822769315010902145795039840116483368483572576079643699546124272801102225416315913279558453365870525293406628208752792676031904245795529836797449358068236283780714832008192668006855736275905110248308970569546387519778301921256423856148589035609236172626875974524186365671588054725022480116694932141242073421628307686011201945301417651550873101569134384641991173133129077642268822990684986261705871316134396691663548539843376058111263186914511317147302256762708002905027788410959346626685933714235241304789615714313501066830751246101889101318140913132940543842456180603120938902076503700053788145147640832132709342362578577313439926272320546655723546217689164890994018381892367773920027549689345856574369859188637052869486020355767529715821188764030684648270116310892783950413297325826139338807813806478438376826536824329681030650937301430067891584958206738869414397154277568567672049803262626805886828856530700685870729417331762440526972155773935773432090793391675119478443047050226141817130810233492770040249194549829143986055011789689480151080921749256268558914753481606122398205895637456320684950689150167599557974533761908126260523051191601851875761018354334713538662704424849530289938454015469637601663247221529353873762329269615077595175867535900621573673380976977631868264819634349547234921797185182210042112318134667022016506323570847113801843485900846989739810552027348998695622250778612941307302676793400967227835103847914415498103941442598786094911537402858723699630735176001360579209993837789616273213325362964809244141993798634764956516453331040437937483896419265867438118093495873524764176615417150241840312044198994067430205579419178507645809261698439196942528135540509745953262561698699128952298894437136671229150527069003077742450037343559769649920586286369937509949926205227471215388173965447294935974779428493872520960255384159890851209424781279405756413347686439389151212677796381616563134676329114877578839256511306263130033013447947899833152240239712343802129930132216190110600602789253313894494184403166767128704733452476672586309698262903685321050743265099542225191749072244615883276514803884580348983942221936246917778597677384504850286716785273988481475834138339416852431852992770074680779086795613677409843235143581969852513146405926133828373626153940467173403228299679950055480286017369970587151992250904335408248335904549787833666571230123054002907316151479303232348481448746113024570256726506243809286385745901019250706519451177917246732359883343594370098563212747848410586157943132395698372636630445503536532656526930020497134575443238282443599558456286786039502318079246190624326034293165508118342789584305584168050500580303562107539830753672914809882362949408729225530191005251163222193650140787082239626444646972223953667330513324689816986415776022787741274132782544801490380717034339882220778884573295748785305128539814816334512981926020570451383066029936638353839223076174564638389496599977513487779001029669551827729715481401416074648582819739493265130898756118170380374980484010218402044502285695365149098783808255802574536311619849612894885824621257850752841081046815790109485000309526255733589803000441126065931290971080222702197610615667220976442469400742739072659070781380237672644216746234404791728967208610195319450444283307473179629619908828574474930635428916159584755393735016925113841193469012784098018191870900701033007109886008731513599288354251171290514823872916031254270235084282576635784917545786090299060775525918758852586847716464808215337423253936037897791981836674229699784001353272596295933935711338721547944645785746200057140463519423355594637415631009986792869638751431166917108241959388462269001369091433261301529384527460914607383866482408782729033277439722978730992613137989068080930676381234363208430801200603385587118062390402108912139496873498668656033932107768288658661456699014261206828660472509833529408567950540272176696409808958092474700602182262160137827865251762544184356429491369265745142468838114287711284473832039496069381983986170240479792491129485993811091273792155859215219851776965109042182393999065386986016317454154097410651878878066590858918853239605672543388234147805084434949387494060889632520801636743901330752705725376368378750878764152725452763531767599384869981596474178146376817718336518534492411131400507895107344084111049371492188263706967064696219172117772575188792050041744113293144586956760671036170719881016654753867471774316697279504633947269216240735526078347568259832771603203870419952131249728444019354839206393508360945111200474535108424879228359009960347133889980947939205100034333254089273191291411962318755918296966423198470590862814869581414213944896211742812887333320136415181759884981183982170165104386637430960346598815020119570391523134882549345852283095250458440707602276555428995578532119908778496613151866917654502694241190395267096961079286931630917043700084126626985470580831028068353641068500150840057313658079489009133773311456387817404094968572734733028012330185929341092294383769198647918826047882034344181512348681245131261997057605020132184235799434569439961938355600785477071484140568919930470653540527540295139405030962058839251500662180899668793930306892893256593105700462225924182063789662051852871040529605565073664899925585601668225992559995065611388713481768833242677455882501234947332730186806453341364673463848943332348532945772487288051293012929568044069899811922068582226425515012082683995049234583001622354172743290244219160478038215425538134898489784463315828273106406912861416313358647007495552623739177169756136900620851418964212572596129816062789579138173863839899903887761719730549936591577770333727380559983758569994380539735564575862757458951430386684521252046704164557485285420170502966511395167384976523972488575352454845737167455470397458327431308871532250565870809435508038865378896449858003738771203286340509975069193483616771746922485101518975799724606897450667530373236515595076848624886959997736397785999684920940837256676496325716105298144912249181629629905864598187499226889851441538042612912035531617571166930194156425440272171481033835091316039569657872354060728123115946547284798291678386635788313721742984887939786847819414475966487420173417138121152705271055896318154988087090838595632577334652208638276653836563361624857704299361496777960855656898016100954960552888986223355129298914811945019806017606739594781829971216611060953390287946307321826409758109528037961026829965197249900722854987126375190300492511142960347723413023508942895457581398959965436649214265249462997540220736042939693118816671361056098178863176705130948127023658694953344137422184414870376480336527812749048406180906929370438429371355299728708413713180298111582597888869458150086279087223430034145976659662555086891819004983939151849024742191365615079203925907271947766987511242386145679833647499054169580229596273235946986921270724466263633683148591473372791788456782639490406025695784428380883834410356008504540091146580450220875992293666475660669725531623795144635976796358038439658803372713302567583046361157894214461484174171682139897544201658810357981130461008304931564341501493739458944639873567906976369194588559819929285048209038391652909900873694253441406615146895565419159954644992642594466820245242676503880088906449090779972698742127920514773884570329318518479597492087616877404806234535493077827565690183922106962497189151724877093982874541352548685039345439532084775972641781545397981141251462104436298179301703242504556338751641851247874349495905037636730495611086580625634750667453952469113628054190998091095170658207054282703456527744263174878783372211756759680303727533599910131606754897684079578409186774291350704613035644214146548037549582326152579998250020412361414924099490530328694190870047675026882070879249246030734848872109520384976754313551724630867582442901344364338973982287784064414478556871536187060096018088735816319796054054064721612722546585890458256188185655440488639813903256933452900245210121450392864028090025407077407094771736642449877722331242260838777922449134179724140942273916735599247852730059484355319215334796963041952269049172531809654211545708228563885681778403019054877205611466791337188450191006520455553375556403049901926087033560656184101164873697370939327752541440393735168112837855989450034172884827516898517387035345094939978730489663791629249061160275165088687106401387204601868467317810634588589864441906311721343455904278643652164015944460383306773469623706977054901229325248335197282672914247460381303200656714231514315010462234956969472353794191226484112644738994452512346808531462305149251121143769453926165173957877483671290577960382729251119345123606544637840881103087500888651818729082887668698315198349587528412342481338295124571830730581906118047459599836937913906850631419311230994197090233943397230804356977953079981854809605661284395196880655761667810633147899924499086171654946147546392515315117816496368015877422992513055499133569316396737484688022077611103725204870729655610489695258367426367877335523765911772789205120553455048523261628981673710741663867338574398397518434697198706576819051411069111824228011480234464118057423959360923896086468293859303190402871921815651081993599395602406741693367858241957189564209116411497537269743623902711501092112236050099355252277180231424744643718321286109439613966868974817832264287912202968798078118111463157993496428134079732806332113378094014565165379092301970438429845772763619436876939470835899273768458626622130931082563974960132559532614994553864843667458457899501943329987020190802319601084887045344315537954466049352173704104293172307308385488589609630615375182127141799530055073086581162872687588108269938649944594300284053332340767702456623341797555654319512417687327116905687034965052039434442518176667371497934244775642580981965066334510300421018472955307369603421322939516599614106406045805557404573082601981932511366190323251409704754350279077786581062175200732757868374246089761171907115419841009252635736581930901335963173315068746031219387743950799550132037846340016223626974896586107641488087907881706798063759124980043559131152886266248894720562599554469830414501248052107597653141562925715420867111939626411678946242833278594290990139519859164903605929063649433381244205328654671629056644472519420178173208783239458333310163988560193585775538949453263330296973091571101967633392415489248632027336940491494586075330197844306789242190276835714750662649497230657359282959817616696979850074835337669794296333743115556745901366722605023285401260596255978794615988178863015577593810496168789971220119499526140709818371488789638108961756586921293382376210275181811580060881605702099779892746208180829262337509771279919458132853308050642761546479056528719516586621938169921448852717209371178192201110729150304704094404850855240079582750349074828282975119905331244262209182852692107457579889763086474882852193978053922663255903167807313095040295731894014481975699098800023753078621365787852400660262400156885924112184653765312530967665550190849002081300267603133754841908382058776470035325908251541787043000126700291859339919515818438761126973476748026237210541446392906114600600881673194721633109425882368772175151825826799425959827911344146233112059229116378493148381334471883499420127817977502637709080052478267610944021615658856526971834265269884919176298382524733483430662116743815818538905235003404386087302694506505774230303272513477094685125656332103810979272443610735722978413538878798847313459497808222455216599233364071410539616850246694886617625924248158245925648056343022377072494349056139111773044002884603648670260516552657553094721620036102793426818680564031278019042108854120438646510310762486416063534345843828304012115153062890486061790179372947053965679873317488026020508263289683125281956408480262732790772775687388598854534865866861257750758552997808496027967931611006469640540262464204227513248103634641873083197807088102135288490099895050697055443269850264850321521237216839116449900282152791223445299910285726353941638798560524330540356302778388485486274404137327804259407872451082777327985753442480246993322634567606202306209347119145946876733029680212891555790844063624629357162382109014799869324493682253308728287242161616925284305782621356705153885422518124785660964057384574829380220221888168626103484298625162341490153862841778236255105823113687126995664069521772527737193412036645588519052875234427699273689452352135326224819923158551102943604330220949409106086762611382551661500321661175884429936342989033138194114055193207961276027776298244958072716201332421679976661062869591102907748952412249877299535851831290645972372883914455550914804071335963155810536064986467515724820836511105384698439937620247850650823797727456227259698219283269050823833874160167786804647832785125802807729579528655332476126208622362749471652107850392018863340789584844197807541022183472854941505857281975784036623829842732186077739411160008100623491600930063482457463732412790948161617816792084962685353529049160217240167097480203615295685880786500798946915652252013066256860193274709012702290257703031439373517741108539617872398702648698285430857046988511712286918382119055143285348944625901803846682255442660822204000870811341757143803876217920744784398180933805372478317521058881658343853311853709737436745567844416864798597510599601069896784184098619701202461235515976993124369018366175569793830019753272446310570591210880772991447266779431133872396441185171727602029968612072879179199674219805460937878413554795139793631068141267811260309065931297760615080305858711025036456116023380410243713793402311591185071131428984335933564030086824142657234459917176139408146898964052914881408176467244525342795383090903840196152552763235211809552998880778266325172729959728061211554004935153611418470149976060869964446667845199678648066551823069744550664892469334805530047361438112304978630362360291374001224194689001946849128188461818999418532509757562710809950311610216713321845750556883162422941577045161883526636176648324098523235141893928258562010127475288138601654557048280216257005326537631421920783558183913761663852352302916103984714398835080052348425118149528358566715491926420467324524789865745920218412888919727546066494198762595541894285394291546181083402685764333205795272019322689455058101268279512720670040585765649069553561884458454815503629214686181154364503559170725872796835661777931093958080405405879075095808608523609122450031556118091432109835717120538941887192128183318536732084290063837267782322941927391582638007436023552656533208757227831983670788975623707673168275946332581498288323412223282459256590620515416637705874248556621953941655560409816270518141239960444461839425226982823821533851627820488550643267324220067024096853866666769117840600613516485286172175293681804973133847672734607426073922868481510265244532637325398722127921200978546256456206352654466660954951162543088153315637420986186200900146191377259902638396913505493854941741727737583996310143493999946604788608763161743732170591061861122169752637189047738347415158038425378623720236439763762800222234730278019147358000246944702667349452762658962835101201132679300014029126132468666028585103639532411000639220562862738005524583703110292592034530731216214396031539426564954946863122000838473888469064585882123963198894373022595107089204378260080198344546533027799878550430552221986237733187335712267755767766099675053829879057161395464054825193571074522045998521264115812907688093665025488707081096710983197837139565643882172169141614335712144583427780661422711770551920094453373588411345333097894237708871050147235103181782128287678344051342409672960311977202501783402078263318064819015796406746644871871838903241731283121340496014813839451852431724526034514054273461009027896173518014080049056232519907049793215298111604574418785610619273781928962636112369533460037959872901081805465194240110789218438406387412161257388969579001510873143965068296998381760898227526067817630173467976413775216963854681640514851797351497845501250255373708224798746650118858439534053019637779348607496678040023318046334420271235468796175981588339551185130163309456110887589987223089481482751439473684060879400284992627005243054732043372730614018232991196206347685242887202564920705423864631703620643089406681991345614335309773299747327682967936144427249239100957026628303894937283541588134049256492147082672999523611489001259522498617746318579393681679557324317924142166573644475271600741248586822591950856575911072059049640624058978710365183997902533890505085070046407716703547289317932583285601702936337524658820940691737323310620691427727535051492971949160079431585613181855519753734568746653837945841906886568409944173684340928768420824851596782547340536210381607560737865889119669754299708411659415080997916008297541839930038867761727568732759578391873238340778405600346708508843344693025016305345487438250046453029667268283847252797092088605253760610098462524134476742779971808852555356032240761812517392557663825808345585400918554655181311547224611118230336540110544832342858905167083000833665082162255005699619850128615554497532296355815006507356737664746147378752267227069164560226809472178803032724884307397677861283914177482755333463853625074958717288898393004162511380605118115087103863166879274418460227826799953516063867829988016807833493753584774703275662740002939108665307392807635630850873733456042297342999992783703565155889592878286972710162179648615022284032331023589589002781923342473290398696101701493550995393363109613718118992786886063607001013807793138082665036101410130345210227067921030634828049776694889431142155114094625820702043432523821967203855666687715216178260947349907880219053226836171068028836423600035910447917720764416080804773590073743244425048514425620656196416164032117731855150125625650222067900362863940754832220411142854069946052715751809704596692225004883421641199364835193586239905044732708646320539844612097603543354571935728487181726968501225433914379283934115628871574448018104608582303665139371134320209031134579633490622803472534055130403104953368883411518259947184579672178152682967114020642515661491390091071304758599208737871952980903016146065194166524534157222449036253084182179341429524317189381884671923947097207615740977425590596958569285302326266449940266404634556182667506792602565081968638365564913174496705589756888241838205831470428578924338872412779559341084906497958490839272221264920666650606889000772519388429007180081774948474813657870603898304086395649239764680754062537140946158608264037335836908273299978136651751699266465087957119122904491762912402328739124135768464814063540441938693515909564739396987272756377650223028438552131094797170394409937055832765500948244494127632784928658340206470734473532514999526656911910766020930935127164845027659800347725983454620408716764560897286514118979680027139070971973947486695222498620124574255584995487042865584544149806482653725310768968235585271065240879011426477848668896628474827345579059975799921671085779703588388987313600178170695997558593949952025808197400806040664775122492943002159836826268586590888502606929808735779263268560340111641132735050490625251314975379147661964482338935611927386386134203993512666129742021097420473469234328489113960394256422611980676450153448481478893181500004313835439997009257915954226901634787716368935515738978911279401455859301700801564945664295706698143017283935290896221628801266302191075399001887743676698559525939778886408656846776570750084259769170107375439377208877004838731359779416751165581257870574558143062867774235817791774940363290408982272771956283559585436301522693365507601214529518701447852142856079988580220630130151888980935167854916972278678312292995240004671645198608225342597042662542284001541574223559221428639166109116195974159532396434574552631396842004426540521902512624206781283919619450334283838247364888215508601042381295049126644508752498844272021077329597585376815228351582256720097558427691153449365590440031940758210064949500503303602106150886741289673996182253470591593899353316847914960607993100908741049516744677930606922727775672518976667056909884170396556870140444074658472665179288975651270746370416445885283183087677992557454546453669574564239966213959608755277730217144729372218672360180729739188643316382396100059869737325718615795639755345464373297837861936986179220498202718027792958687682562685300872078267940242331130792672706257888237973217420491572494825031155991146322155348881211967806071207945712476209552551943163189237407038071516013858314496332853092492923492115423148948640116863829542217206148294311008979505087720600147890626780393716270841904295275831323395246651420071651013376454133037852110491377469213491329645868510456873318973391587036853680338132530522637674844270813745409450918619666719447860892002685462351831959432919777252556980303817240510362293279122788225291631181500920376164349335178003268827789931537014302169437554477091251652817131725905493561579959374548501334866748472049602973737564094129327893230242972759646768209322596870921647438169660709135983995154271923313871427800156737289010339050428064979581301838932185273019610966565696563766289565308521071425412592676201961446489952569407165858705277506382444673429641763044138496856210890846635146236242257077592018740104554845037552211777266578106045996676467150720032396049404631517925077088420695706185160706738737919307018429771463693279597910914971002987443111958694968458460648800366682973779455492617542739959257241640121671923662538753122724370835734383583037979172363476811225598821838793133971966510654781899580359167387011215315891833982359446101099559969204237119303001342488180400752014761562473648129037524065665018237085527907445785284108354710218711581698838747665501225518087953474760746268563380163693623386298708569222061941294307946794103213394244417486350387642942640075090401356967939051670684886727430311861156133526138282695951460294558711646097830612985377030235375476530026353272354699451825043983666543298896116802919561349648407074637001702710481520475915126296154582717447746251331179828764512588117402831207237765821986489143715294440283778458461228943681973047356057054607593037004928104935043483400863769886735948044159046063645268630757098684954244700169271228483443322856590030452048159950661806692710608607786121492310906476777394087698789252127577647516904349043769938849791028598644586597722907360638954973341206945722460554700992408452282760051582079132784782508577127600585365104297929787986072160604261550630777248124325856419582346449824839833598392727976812938630010032590620939377673419933144367276321793911036444715167291065667348726541274186880836438934076772630039319082528594586842982658107084657590731665542680878082123310136688242314636482452905073521485313805111181020702835686261760283695345982392451579937440784622879342114468500948284536249073154923529485677799765669887210782119917219364778007410324925735515539182252346194670154282697982037502593680140118714929404038379388103857918620580942418996956358059412594701300952574763702266125568959545180435009614852093490746809636142605507074566361836196684924891942276639788190684428656800198595249893070373762711011598248570907811054449572025328942412732274640277500066170185825932766491349642043191285275274753717820975548278891695143697470545781403640887956812482259335125574348563463457936573689011913734274421084253136862908954048780827979206093948177859971206354017693285247560949223571375607069237171597058305668051477046379289925326815576128018294317316451922279955368767468989876070114110818375089078925448385482421715774855356303688487080960023419909623789057577718564575411921171089955327251792223406785957180480726761231269595261322657072562281423605021707428123171692227748507622675297781285833224381089150034837995801284548537839507811818774836789400133033444629064245229941489346405134671632943808612379657961666036501641082387130894696913440934494388454241385190280859543627368156966671251027800301353727884302208465811176367235168775201401138393129960001853377574660090734177903902106219225066306484455731917662386348891869322114924569693355610387697499879744457518786728105363636078883387019650587647944918639464247720845006923945472715187921743772338470948261294315111237572753389930900601350666964108808940700020364790368612817185171423934405818257340112193117417623021551310523297304316142889398595246756724409738930006313296080444391527894151369620915780928412469746502334704002024303961849489090428219885756195942293140655736624035123682687870188065149553809231527346563506195582526983119971421515242325236723229082165862963266637330823390510511789389029876809086487029378530658763105675761782965022999548590300814547040067422043326860773160791688277014537676524287672102366816329822568992052782540758910651380536263669272281878781713337764591745828284888414823399646873990332208466908508899076090928232433142893898083963661208752872156852422763631887114965491317316452080203014885466994901412404960386527687670438320579343973718571896435562470059074810112070322131805391056186510704905708276536061225250989946579441615512623416524187278056937979690997684417892628990445003993325490336317737437139775397452042461234516719834373928698128685486730184368954314466023461222034511278386728980677670945867755898544279975305442861453199181077594801299340728844102539482721521625339699679710662696322046868289231544231371393061660373858451547822015673848055863892661920022431215738036564880842763951982492897198086364631315226532755451289634826516373985145572753276833376281849133216798550880199320690470869041096405121292335187225464105061196054756971811910021923126295243611680655140578120172017684669686638280825866127451194078423387595446001633195906648018097079942548330079889591334137723065445214154557934713646036489938622060631861917988222601281300155378092245243946058108930897911245923954481435602831339801915912134057592088204451280366240642554843386201042840120361192324502339552794442648442315766328345226000651014305614257342910918460089435366106596974144385103692216955238154436992946585155312160507271319905517025338757308261740888649835066608930749329464718269384627951458209017334047975648382500141009131382157230651394777600832869751542750213622330352278471081049005363522566382783685642536512086463088095431795747182102752583034487011411699225848115403290418387041838949825606127370716664966371936622422935601597909749906942562406670083150888315494741964529316097987384383675420384720736668178775151690512967235971124282914328182855431977995790965218848101411958777642790613164400990494128572169570689103019374257681207746812328456904972648581261997057742024158347811324863254336215907508650215283603116840223339465771909580407721159786108606804487290689770691020878007371664572019606448055818038299551821676022982765846056587412819119396861067278759493100107742179852102828415355831729806052168921533490868350577061744994575380606623325887487606469368070736967298672757679117931155675430761134546551055993855179656780417842482341288729040086207170191768307623621851106220309907627361010974108518304099673163557852854590081003846041370986291265110576109593176958326925933048390767176511618984414452147997310802859564873178154933066970203080347970125616502170134931070051163439876335320614867397983782413712447898481230475424890784437084469190603097227968615985294874432964824857959969892290645580413391295542399008872353371613612898477038357770326506829805626453005050931942643952485809979350495484055677596912533290841900724389845234426798684989686734470675422060734784494775136463189623361030972072501175847136769524503142136942664627863924402225698394584244531560579008716379118999900244825667282270065860857214553095961924582453861120257780114661060104538664647779273134515743248990647006837546751520703564261248369566900912666089708415731858137390858533837697036543770247169663532358934616532600252056766006542889047730536382261652895216633052996176916218192536153568026897631775329941365573220361137790852669552565487221267221355972121447906967265275983950211877812023470117687834465658004072405520737845658530338040773430602962976158550496166763532205985985100934129215632013361828341658359697027867023531747954652060696251476092048775741940092477588980432829444162312942106511311847076965445209439274214670846869804486701065653315649150364731579478495741020014094274204785780393176524983654574784159436776547009745982425582379046774926031036266912064613862909457506696627503838540065430757528052610835863747847548561901130102548299770330407631421142410052966761866944173483277996491065495611133632243015786241679341205005419506357145410363110162054842886898549526635083549561001304697453185193906314621768283744899588785821940408835076716111242899890816989268944198080891643437272293589435316099792733736794420526413710921544913399035410049829628880011223320595608250534696107347366413053670481463066001333954476357090359258232537001099567810429670427995320019662246933818410283577324027983677300458775447785347652567706202594506932535502918827203359632607463641063554449226067824464325077311690540056188243146067572288052906874903867639137751462404691068020263019845300346228551433272140815729174741573866263231164328833858808881162225608833900493074478116142880326768490002375600812958326137223961061333091368552557142925035963367454622291642370833479682837363283291659116957241275686438101529910566871921987506502575152851743933610264341161592801893295874305179990489063413919990341365560566418284256573887079243308338732095238776445246461790524828810516403671458124506224573915279990543202704917500107107923550140610424657217278639956808121589353481938238621599710298911494001625190714249187174651153654136526578772526412624698409918008910392912748569241136228067357993459557197180660636419601031703277594171585127081039078244816037343186963222574343934918756383379268720851768992490638935575410311314555753288898276166210365352718311634029987810478753952461081329479227605553885966750380671697836667225579731995839533292095653767775431097977609391854023301023399311639810327692632671384226801613137399183365629450680365843394074618589865629152442634983194830927585564966192056990085865658665983005798994806816317719423851874359094559815765439322452592730214869147411461487285210954500246550189255614894400004733377244540702672594875814716309995220992013274165866484742051577264038046211416832986459563364252449359201177824355647795181950480273813140671129352208840891319765449199933209387689898091382110202658184797126701280305272869685011078681817938002056966827493547945257870604688203550816322990098158547860144220236531400163728184153266538461848282451885503772250937905494328238393752976965189596476208314467520164157861967715748104979685866972672815163803529423235436964418827323281230829873617176899156295318357719092789773745738087918782494017077397832612078544768958201095414072866394433682039529678052848649905783616879890071502746810195773717435911078986490938663125655071307337669514322269270194608328338132366818010702054245748392134787917831792798175546640605441616757477148654299813036592024795552157086541505901151044573967648596088256494967063960535130502264446163109869824798343573158413850063422103360268414421696806757444302153258897258920041980849637631300574510513304678581578322978256153239461167321455413266825631587891194730047927184591435055609032105236409978573692030200076572199203868216389512070675279635161973740474315156261287913083946152318943142450029326505401231317626632032451925754647015880795224442835266202883026668363449002081613199943621866893568026614573122540121971762501494981553444960850518768944591310935768354874539474522116165181828882031940266053766731680280978658444428896957524662295020786405524642298746112636280289729900817803907350559506610691430029215443894407807310836486508480317099594543842272774583072703882921754412759641891025132864053855969291676578347165841474264505352604091791284964388834669488766590413248268458235191277456819674397714149142016144362844810733734770123515402270937266733720032097248283374263925303739562219976121856668662950855995843272718602933318836117875659360659392776434941368261499935905506713895263915803699317917562780403301489377270893739905291863893519679112442794145743952152799303090460110035083821071787185532350150989071988315160134519113620052531970523595434154355633682865155689078230177422388044237618921107304869958483018792052949338945071630394466051019122024498848976545646559945592938950840179472829408775065438102522615931328838027875393305234807077311461323840745978974149754120825014872108751016056225057205889051607787467445997933921323705040656111536060139317196135418637666978428576819319942847245867540028952614181680063373208686010517273523196653580316784927433410653203651591637592215530805506388732998679544251476107290405070365579669635492163025151912256859708223836976929133950761328491424954537894930658495995040038169445287719876017246304600829122547957129775680372186229180524163069709917936907151420179731405746511091026697902952953634013195035741666525245692414247177678887015282379135869622614136639258389597876231126186174645293729269497236914384382983742432523687817790356142942616925322402066588118483154391642951686191502952261504910732161474990103203058162661256473223057598146515185281933349427754883294411703923409947068631782625472364212971470332563172259272781533375146442624637137729278690310787718918057405039796482670524277039244940667895091330895888426474516849844158560613557797007364708882011158984421033448637924960403977673724282171634380080689576413998966361780136188950283442981288904072101673549950928000526934256465204325635270072648786191486640321764252744888588599769577081399880485451509929962325823148001993463528402730806901485879791580104434272728955030311491348838516540478719584198076383389019296764131070846424301776800892378077739951789136108613578238236771402864739261040449394155654011305745301309488247262962453195351930344140948050473390989979331220308604705024847723882422407617461494795197762958300887519828363196458680674623709499649187885614264353669159096565106408617787771672792548296632374535774499162039492480790001951135076647919649134600548207786591943461514585067444216832592211026606305692839234849967142887992234627672125524091310470371558047744795130387308671046293190136375378240614906648321789383610943345496673035198984991872347259794762031685004160620416203881422806068757492378181086856365251192590395670583899775501946573522879858864353389495150482164639786675430533678618467639718438340505800141269540803435965021631053395013512793348577421231419838036573652759260548745806938819148656381820871728532789577003177813930390845412705982849466378839987293552484102443186264516142824703141066889183425410548509751452897829481183238375743951049573126971175587547464826553555156274253618532742080997761153641633146703504748561207388254545537037193259865408888225836280053638788751685020052334840490073744551293435162701862510656374226354918261344779456331417460505672526227803877642227247437829997818263523699509122859146761931927601382078488372069237565560452510466287463154395037773104504297373666858481489654664031677366376865671110753326442084909561854884807395683506635566474673725049207354234360617773316134966938755811484627312110940617077041234454677567575404926438027079704161914098907585488383230190030715743635341442431056665045908516946442929710964161134800248234212126264764407348911177409962201806613581848158098364961137860201606144956143515982218855573658925325069823809279873515221572247223902221778462601199302417506626752755188127287778890460373333789229683482067260340923980656401172929168231223967580258485314678329826103248294053900590715522960264807507100260125239698849800246909611350097708571270058817741771322278690622475865585457720953508227951356552164131241908916989335208917809743819375836192984669729998304545390553717517044520620856784571043740503642693896037492805423024103961979620831267764058601934094208815571215973309752741106546914313187788314666485047869901236442027703920599742269978939468895004710956628818934491984481580007946501406347416226651717845012761198535809782985415788706353900027811960407646685220194673626612370616184304906321920016611852440742989357255022913467732860569308258286290346793520214714170425207600841863768800136967081519437726253234970908193117309378267070978505261216953886151098000682353669739581887579793066797966848935736167632956171771991450734006279353043421884959081335218185346667390085664009953766352818928252692865768368385661501987553716531638123992159583239834890117487987645859951904063155385392902921031861800390986301463578402717310617594125512283079905345359512001719850342457357582813883201864964906452752639365164968425474162401222905067126645895341726932826095400045964139852613303393407126692043789399984931068365943462354365760864301948586377475970850161256512890408170020983791353715637608060388602964710745632511039377966741275029978875205651713074742519911485812826811225382791050080959867031137196708518271642850133539233879493435536402672744281152428578927862056672922439701751596484846036595663521333657766427498703708697152183166220591223244162603568756887094395933325482643031516446392791991921140796911948490250733188474440329265637549697431309537705837745783940780728363986816877139248170693840073821485896607202294648205004745912401381864810514156010493415571710074076900975398401332883040689834360618480094656148440548476435744371366907826034306982256890027217894969828725775380526416066599430508549378923502275445387890091373385121819322235492379532851060042237248392935608051344413388857381625368357657193099604090697829865575762229318201113650305841316160929834524117100135032246437482651015680266465074435341549727050192857215008254547801469663088336934739643606459986547041052037251859417927568122798096515698360989932866419106752273639022787301842051579385510493682189383961696012151003757020885199176277831620244749550023303710486284172873392139751139249934855125307086433681966940933190300932758894575731593549422547570597205401773751979367873459387716441823580260968745356269158593921595148222573009547421038685632896550723075599412350933615088932945951306079994244218269999562767435305108459758330133580823379671112735609310513143039036722955371218583288928225985843405116634542645858882938908215025162280065011697821751946133363968418179449041640454853673488563423630540118465581270065350127960079669970902773042665194921325660918838146006573368862749883759131266894142762783060954943351926779802861158450373102050036907232942094922225630485052982160344113767973995139940432979833102921084300859213375791005508586646154688206756100624504216651227274335778282672912125594403790785218458192020737935311105954589668943936707164716163633667627642759454703733213040869078673335646173680937065491412402767109466558544701008955514512428297638092086808043061337554672773041593019295597033107252762206801757357576491586204516528726312757668808216690863173702648514204531160143515343165026175282591726432596364972129562221177932519656724708852918059374891395818578303934718689854156407494743253809471061511411616292574336372072266813222551209539805582256512723936718731839911510064796269769529152794981996105103552666243976221253839820128376286185566591533919718586075844031326947540333447554157186326947980541258279581247183432514773163184059898677024865476989805568848296642217098575631699908916180665966431095943732287701969716291662055922529679872649437099878542972243865907235015267435036195373747431158186001613335238932966258547021290934682272665471062951663575593475403896145656432577119154871665946279497092718501145371919745604242880452902714285869153335268233570202409839353414363920574839117310538912914807930453375797896630760243765498371873021692278821226701489165642582213541141997056809929772012383392826471531453866007699851438110784667546900939996424749284792243579159121945079095300601596864689454303363108538482561983335254500815728661420495740217447609438199904302479453642282371595420803845257596292036031862494165899335788952752148193159556006940555083949766137609314576396084562678468423560530588219988188717467428535848395901849046644233169662651736910454105584299861848957126247023035819549648512742279923977034367260618400199921656589439748425738709105554810152686436897540139085111318977842123574602794087149665323361593507082741662145967911123785046562014384403328644422101376525726756582649208930714644456403406938450625421754364158489889470944927686731959471452302707063176900399686402083767068583241870910627304593613881871169245219256261281936249719888883930641834727187420259498807121402153217648065877783718406037071798600566278922724174765468673825148978057179932398457930382312936841112493889978498142113885566543659309017318667500624607023940884969657565241199340332269177559721911922889300328653631144475111574620693275645068642340605000248235999699555448746546320256713212282470726506856020270045487559725439602837791204630857890760512836631233860419859835762178671720221335699827972928914644822942210995239170635673226396590511269257435243863100920709225967254144619115875209047633934292933183773224291307228486219389160720260738556289957651767785878688779573592197534936262282042511734459202836591575451980831178486422940642431947070167652807838342043423975156720437839695067737627854430651772129771527229161862216976372913128829616675901319662214821285086375480816326698611991499780674352323444475113034566491390847873961071144190865415408439403205827707751652168828681202177404842793884532476604674976500845054461582991314339148050897770913428164672136902691893007707130788663763076970068938541141595879025431507143053250754679093985487310721292078380453831932163537867138369474959079556277503571429718694494870761838497163584041476780202286071565480541896521509272776944828450610652251720051336738099875907317266301714120382887512331303185665894602705888960145470965443097446574248345607664610884126243747671457577953309447004497353921043755065987875994086907658766909942962279792774827430370536725063187380053357284401448861969851737538515925447273654960133608387838289860419078764575885836133967388474982634142899066226343711006027814196165065298215173242884684366967880025875661881441215110833709269026449051589202177191110973648690310937884833745520525951732709771788840594358093455351842575750752772531143934077531793554626832378635556484682816990277917493107401877001031808976040965353742541764928908548166891837102189776863970963330225469654237053609005240941433874030568853111119363933647714782457516036006106766102323138833439388860961821326305020090249649808136774380755295497466917300191905666703081011525557723429581361920048540521691890176487750082545605343976098203025778530228458202012122935025494315152067978820727909113036572521672103171704333918134469930069259186241488107770117573743336697588975199141633414884886087683000934959613970885119866113362927004738140319799393062900366914554290180355208568870052465265397319546908004625925259751944350516788104054308231585470135735758649786586413093414266020648149653700986991212752435593942137347315886197743658056681772517661644180421783403539998387982212304672081218185954658635932627251880723307809779167181586666517405206195974099786718237190924569526778835654202303970222695953992092277194060143604744032833211805877942856680022272671942664703519002806077182698787176353664958786603969537304727234084931260071482243393628762608077944701714315422341275735153492238770075393730398349244470056164021717154543485694896958313393745415906038457075925283769889606436669656304533439525817544543704340470276401470148115846520949519717733016170956765554246047195087877670425344225633184289530333782803480778773810671469951764912606497577841293717082260312045192550505593960174301443712402370706981996047946917559369580175348498252605958359472235366279371224553567666142431295858626265072002532108203051751347360655073769014990389442905588201964620805428484653750425925651004367367365174567756075801993745072121213862312177069960758031371394590554385835751026284727967191594866427126490455586889040325497306827869116756708133466334292491841933902644128673146352431298611417545407867493624730048816363203509327651401515021785921604076958415455757402364792150372472164543176690045480801608588799178403038073851291618332695026397832591367504848695595510163249353748753079834374394420099355277633043748646976817290699895229086743639900852045874773598806605260610765015377528061831908576331774993475758019119977028385299865529427064526083972934839026427121396587399570145911577582316530882053566330225480291118002000899243574395179066348431673392537928198572309967785561234113373703020455518922553059580930289449098452145351701671750272707103088373034151859783293969551906727416030358211695081942858636610578743971560312690293895841598492671764339828618825774978268270586999127708905318700440607620764161766582458867991408122083996292114421574173369675416528989392265313867623547375040564159592480888424453947269102299735436681954065814812065094479636223595918088314574149325416036993654689873911939093704454699880789890488799078658341500825190176150758891785840380012116969510874823596223668564239745433333053027424891608236086785335560467660956338490676287565819988115054117907547951721634221824193112017074390239711505212754932641864570845907209654015789657740355942659225878710602328068580231363261332638864793191253750674779342166619829809901257588376443794786258069208282459257161629304974612074405796941992440010319980010421399177345307161216719293828844238005909582038760488079515554884144762027714302557101107012211245637361510767177485565981494722875651309020427623298993491936245316954802545930941950322956977991215104530951340085259249657359817455462619732239798255398877267408113629969897287031183339917219363008285801131830218718231641553265472300712981512539670260681757824479693648475848973106295781408608045120145765041424560652449398853713007924718523678466504512652803570993714869778852047350293440590958365695527401189054940756166040427858866695069063910926351931399201616488434390676512716085402923805390623240452337813988653011747107222761594869051160902049596107939923750154598267633313593883317837015423198769069546078088668549383080719205514032943597442176598533969985903576385914546612820981256223589757628650457529551511418735013396453408137513745155977397400810594213554280068307363918767068933952863078987482672976916233510555914764165136000812204433294557563373344802584744154387170096332966342973961438181074540308451532870302394422081624265599588599529768360945493872217058252488783581326836487768102897289406672386334149156160864336425951470314180157956105646079723294208304637918746283587405403293064464574036604262625201604424524018864345788914239595513916453929220942797343523536996512789820983637311992908751633021859906429151329787604013494743490280560254521960434623995926672064003413479499696041718439014886116768048529840096165628173922870974398816149518249835925308166996435195156838397438163858369643124898114688474281159071112943632491535261141152596909612138525128044325715598719193331184959526153657325870122626180780691686932054758668497892194567866064855635200109131636929779725807362782752965028788564834220086563898433456728269471115811013403563370427868025123263040516126461970949873511726536498849757222221194466828670001452023556765341801828439758356038687974356561311097703373504243475864997030402280427548240624019612776079915518839773708390946195410512434124596818035138918900675887387939870834530366099911613050941123603198488581290026632820992527413574468889337497816740933240420267096802685964773018423897412021852969199516102766033050660662197048456897466216209503402790799656289926749557763659051926686440609184087917858130621307767739323637029832834127516998017029484558672161504545973066153592566762639380995463644071044801507557015814082118654773126106258478249308261705431092463419112755052234332824090658483936421806172141474178332268960413548752554737406521551271624856505934256298532993755815957777849608170086687083941603082502404888295924602247780526017356773197928959537290678857858740397088887655533478878517464668180996606245276969201039218537713058845499773877135088287290199051520394646859633264014060645017603681148873327493437296114636452221690802099581869082817616407321838293570116977874693188292493155142578189509276471291448118839472759959656678361567821470716683346143782879747553415186453575752929298680485271771795068745727250862083397824786782480901345903053117047235797837900894932139868747562780530215443333577083939244441883239606296171993333646235124782485839134440483319370622345772771235203258111668359215957864376014987476958532333932699882287597552346127817499525437624591574684952803770187475273975359689022083255904623137319957562582204365727846433539431006910471796415872247149700085483190191973110389666338446476403528336579938659255133727192481514370431095495667304159508016919639390518900088802228712393158404286587678664684716435011516596373284044965283906960561074385799332223516195325202614412033282665540641105274102317290099002150552029050114256518361972058598165296035675349245632864010481751077403283262370843182082618283557300016826457253897745807522026398784952762106062952423725423653999156688699462222510412543801569511955243105404206502115496785608331644011465927857998308118582988503564655416220072881750912536000804191984227589364634633386209118554079758590954289228326404932125018262914279814863150479675037301874076393410438200870494232876016239195832898688535951133190297946400024629732326621949954322562844312961441594780790185460289027342239747920912392598330116717888072809500592820126731458801626441815552028286766303512842607340309949884272319572280477420702486363490976809363147560798360008925540713947811211906661709084427942217187613383255171447068630612372872737333341981534074272365884407629816628496651290631927621363117988521632157539484876933960057935747488723960632458046527662101797099814072805079997340276607197468731685790579322114034660382582211955071989397005325227105004228124440045916762077237524982309758753652965057586967782133820013215544306879068952094785456967822617940879688759703091888219966305900285670465059093825505974190420272156491522951416020532426288725034835836237606058797012880856253946345381968498607370917669717366928407370339997945246108738628846887526109737242587776732907524025309532891143986915339129950156740239994772901957758690124493661922948315168746343859649397048151757432987260958267993393561824033119966713401829320809521467287451205573949374528993027085774775134587294191033439263729283108881725360710051362895696524582559633331911683993286140112840425173082376037992708952462208871724090955641414531629675823396395580343606573540180481553761319350926871144072042119057546578189041830687349468321130498925964251364836309367209603788139096349061158787529768475471498275980852820579462223155143346137233900284720626020248871762093582560884544830553717603320069873695327866189001831045263329189094772933472685822039682002209327420508054374605219948157744551573040529401609980875635517462768494992947418743050633919062926248187074459502479351319165391773857572830525882304836107935882322535438318750742324814652359968390624928336815190086431582823517798946868708190512190905224767280315185841382564383174772906012224620719669092150322103961426702027136487249429373960574825025769643897388243299422974489532334513909464867042464926331397474893395100206800309517142092762717998508914164515525626594165965297687495459508318116011993107262098397266981107420228440439193441797536931312581854867974330013864757907273330203515000300395566771395341412017543348992490855045447900252204137758557035135196789807975236625179891789199304155219927041765135317709756744309690173769229477214458483596996410957872180690041214059282664362648495666552500877438086128820676135095610471161106924170681320675162215902537888991865911478058006002285559095931037091418678109528989087140787806207751083561641026757108798004875540492771928584771328399748136503769064217165497173823636640270152180123916388155919517771270402538709477370927502766547127037760206415786396027905808857338422314576668572749325801150510977756315142627330794847120509869936332539431486243482911860223514268745748165646631515216706535340892084562962419409847323330447126200320734924889164505289974910528182482833556529547300933877365604106825564693562271474728271992007777937238767311381749377560473441939015878081608226930152860041891755301177007844747473478830862509570345301254112150281899169305066731258069657978866584611199021803019623264881810102193214045964485183314218651199620090131503770198443122202137438811110898078099047272099988705286193937158730693698777040881253549854104478825987827257356771819760633517034608065993931507763196241710385685668029475175019396337484860216970094931671116153782035094069923752689939764422895689285993772336984973443932010470442796240574623721308450964417429039332322002620078901565105655104303132910234581065439318976536772421454613793548499904359079496636691398558749778460306110184648162117092287490749555550324121648548318991145272787246960430800963827010128524153639351045244283556082564446776769410290884429632787380805544687052194988374072638100084333552484386023816897863777434107989037416119572713912730846766678609762456906130195648462139921434259766166061198617124805383455542516318512997950840682619213364182248815559992352685104689102376720839671624823474751342948831433671241800896405672617611449453872500773926041793179028164135549584919238209701453270953283701741176750775633573036403686302628700982448170953450956621584610952480483177184955871888433160417172671916395142456391656650695745222752861393514210368336081677499519923479913354027575506042935313561286082547899250695299724467806122058042163976616703391485041234931750390851628742304852465996153033026140682307929050511472072579591974376193838650210718564880415583234787132340718328064930456479540590482551536133895630548642345217515396135606885163561778986401688878832527081427062766355183078637322920705780394824800559439832380298728752838392442579368771237524537559350791323624335360729712841543770218030799346831221220246419711353353351850889646214301988655013073509142208722287465676402804770155793067410446291792036383881855171303696105958804051329583094765728972536050907729048540755852257293408186728160915678307398221559537036005734962803528089625819047001009051645771650235259830338268333820901910120517583247199090701881633658788037626747196802925638393969584041305903779214543036005944735739810834420421703394779015674782641010851072045968248758363001327872140747720251013565853534165656265852582882592154908083501079068241005711363321767820189555658476871313620246491053726888918189521443498808246257023430763693074716876567061976250790046659934534361503096877254502855423038461067297562033814638898622609422838177163662044164990362401366210723922013217276168956311764288739382995721927140070047346978919378808533855322955015647773697937690471194121963836828622829527289261388522939427607932061826078921495370945705584963926098764330848269636401795774140941184493386707367866108433183709728743061536276878487692100691453087035123081751364925863634950505071970821973618881228253375128586934343168297317684089569584428516317007914256504430865511196670971797696838023415410418566469070809285046405521964381079527052494202576641046113853599827447411219159406004998414532889547618026341561022258924406185987714172613702772499270450698417898989606111266139467618412080951213076758401215721559056613774344013552624700328433637159770635975203663632158764700354525927057765336521096791835333645699337846630019989068452759089457174204102524116726583650724733577796761882968420183831926814501409268474998063889242491758096573271837750045842663517483398982558856072039875034764914103526677691457495556930826976591268572912063934966306880568239111020527772196259564378266256446513001437135233889464539275844654629240586328187546072155974761360045402129717877859438824993382016646807775079269248821547706272134508740574520880101043261497458279995569877148012845479597085045567762715971023260443883549391183024289701742662649982844420101622145264303935756663785033863994187044123417890790327849270965675311690383688304402414532611911793308300777031362755004312532183527137613593255620083482455885785207980580551085112735772719016151855264283096792118941710476595622575222392779747716316584074115191956487145505740437745699277433709074110721403985712583694110366858390837311081924283055989400934542685927688468060070104393702407568031890584468454546325426477420160656981895707949243369338858110244331195520358524886926655560907646009671740923843916555830919621105963134904032067007304203018054854170300274750166919140581679453029691916991971185735385682645117963839128802681359781035223702843367178749917527608704436702047916333568273091661466062888604420323425457567999448780965954463036063260222822059366412680609825226705316689719839720160612790923430157007606275915244243524270912275544628449724931298712866428043681208018149830192337007765228942860562578064585451885836499282198246469727281188635609198132878007723495839292587772926224757785278809800300383889684131365005735198665318947222138342031891363481140079485355630290475351197777553409872460419213473623449129261916805443190612065779510645492846573999719159847952009673037067508088442293360585468604147862348519778070884630913115956797086544004593167810724798729888054651384364828031060429522996479621986367582088427642093379143501190199649677390520252656956657527978295101088646816863424303511562367300528430678946170615532124664428390099446811974569893846575542189169527382082523663701371276822970716779461223990865776688521087177094767612774106134014322631721939326357207863817039074768813711232277878623975057560050946659653357182106408640758149906977936587037634530374649376729475223990161876946182213243947119807420933721721339248881929015900838499946100135138737461220205123811485408010297219100766845598874531697297407433674292992127897138614628945285427833045651541809408236281254760684092825568058946674306558435723835226264073674480637829625140001735835212100404781993713713096300771407322456644047898464095391297098967227729518694376093807589840901769984559904949879122720918122187413905590851229872877622191077270646129667923569927010630912984646885081051542488834403542746064257642543561219166196980218011487995563807827584105395268651877098643880738573922229269605040457346902912464756320277784935673350333736405033663654728230211983673328953006592753281564930464179506909602077460271509733023000764985759702547068525261310546661178569201487804039475384103496662687558892288506784307440619614035971705838098378753448054903234604443345873174731083718472346855298824058885021512831100618303322454587308417958162588205903262632212476295249721348872271527565601582638086345302734178216417210419105501173247127795659228165386117149236490757107508038077282040320857340006504228260667459745906318202187227329604798056782379118432852733642074717004016986894559726660432005821208926478049728129636192488357039195783771998441021779489030204880218005929547221178105937285283204028525847205797694292221346012651056375595733930842394231545370587693537430395662716645666929485267859731675221587071277150980318009488391638397750236881805405295880504346804530824035639745190423326583283031073898588535472448720045237638195920314369982284568680717866852995582871374773330538480431635163065384761571045427225091490765334245800730715723530126884172350413437257549233057163895667449190637396317199107070755735710051724529534909963067670949242104917807406011941858507820139568957571628534117692251379457665514921286700676493058133158888575391639097373413057866491071330185780364523181826809622202676188055173533403087733719965188705266506485541402419572683094831060893677991636492077820597669265395868638462482358807974630474750764070119682201444689568709913847813574264565824122509451965738052353877719138028510137025449888386455533719807707707911067466969059407428996011527564220270779951559046853998987160326173000520600802440630414081675929233417824238573451616036474918889583337360262909756949243233376891604574874831632921933431668543074139153829757126178450864766479950734296931845573229420806797795313791895374390045425823127403435203536550506996946553766069553607481397045061090126886980223314655569813312903787903818116429276023434918532332672467370311084652889729111196511361546325477967697678484543616194496754365076310024484600010426321678818431819522558393883184954359567445027768769524109830881258051251944950884419377193892285381313034198382755391413234926388127948469253869633523983624581445139594847707793819024648924694706186731445419628075847352447522019361160362893530494486705565943340124286531155179633163897692263572366516801125980328814533028147854823089966837805972083519636560746056408053232753871883404278030408649236369664944785795603663895240644190467138342684776951406615244650987019541141022494976133781398067402025263156372266118256766105689523586302640378028546841364435895694386121158042705892155384018094654427559656591087614801303270518203845620165594039193186701242304501902747268108058271717838466416838208061835043125772751687142050337552245839520329390318620321425573062908083439498920902924042691208015779492452337218321146992165195736117036675526219713913553919174732157851876639464817590845013899001499132123052620569972116303790770977641642392611372258302120347472190350824892266448554702506389716328664074931667467446427662161635029667982087802803895462575102421501499883521767895031975012872230403260588734273518090655547161081293039760804154224290746292451499175257742196605017468217335644567155272135134682460389932682471028931186819714110179654046835590151120927410152594991210142655071489038822811438199022968988587106840361318671148913770748259407043560286557017343618135306510566360812785644891600700282668033448374619733836923668210747885189431911662004348418696370561013996767730292203036404943782347085095456191679661704998915022642602264883673221955830391265606555232211980058781773796559883051625278276814803270499935578550950805793192702866274240100633060801577294180941285294723989013903923426275758119193584388799226459991132291191165117972524630541092050961524506592918976592058214017191413724429126060412225462843153127893413471929958471066872032185048228551660708371758444010135205323870355299346683543797593917406555282034600959268370525954537917217471761089379883850781958030662959014954153031148320629149257715025033727006545844871250350250514491074439099923715819323826526747737046153514356324343738482372821299783269337398972814719972404359382843403530805495332919065657375266926406560249671341103311424409023315143789538053459937206276862948134513731400487474128301491593610173072902903612141175869525888080945444015914315446318103706267458661902363449491341159009789093935891640602220484826220112717892764682881844507643020290822670618083923231113056732157387066155944013318220355903648042400315258069178024213262080791657645020875426868142701400147112415132590514729845991466524338643136253151897357857020616447727637452903481336503206863936905645240554384876733361280998013082772075905179151308711645444136770991240895740301530026993230598420615065509510817849735543217994092036887040807377768024929309221854359430019133586686978651424583073022243813418775912620723350595730441848839190390522597318679918488509647548707993963925979666069807639940300506758606577082538950884802032513362408277432986107915486797192716211389869108068884283459145037367808287157783180636498142162800945185119517986326889854166891482747505456955195571301810729692678973985104192797284070363699284850432700330042389258582907936975160497008187167600393708502701739668047954465652737267929883394538284405272818490884188757035052130297224948967509452179223294375164873212134152536040298655345896838167400208215965880951494490574144758120918561287916262909955859770597815797955854040207821675234304407390121201699541242232642784096036414147685878437598705982707960310854968105625933723233566809865631131672341130133482999534720896749575800742098615008752387643036015581969090228609532141315345649623859341318325767127297033849790065493914085835010070759932841476259711757966613139640177207360425078967771360880110395529495243593919949231642082423332959564447857824915339117905404843098709257502807056110793762059312181159880821261091403379314495275981835085766952529359715440321668437539252795733481478353811671214267283880944453476561969010239954365348912708939527397772162613438693618204404130840105634713249223204616838863731710985984924731179345837311048282906769290300706703838073994654751703214822856897552474288151624608394161400743122679700520244270362546492729048583416063978902391565181099428399766810520754341100533638190255536182866629284936258884492591218950771087439384263700825814885784267361971364495195496428242179627744204057921826525130254996912155352549782020623147636874394016679829179357609944609509272028807298522967409109481154193833225199674540187254776845131423830767867408836735945953597749741372028284181029485656045807324671204691218420953323014025917749448265937930992865599812296557833506357069174055831630022777610669133979360053046982913343946366754052847664473456938498233995891946648285476030945111702444634848973148853412699347147937558122699701156318633274452936478710042729710884041399011767711598776370623049306276956711783907855546664501029564353679103419844244774833934135876967954470670824941143046615919131276725007923036719365669687599210791764155656077767644339583371574189849714955133572091120580514134312493783380114118890788276888905035679897589153201098137601891533907215305391191134947381122035898903090770204877987827340154929652196954539196152515573431405087745047104304029989052873009538967908688821687084144334911390737593451352977983554494953576109090513078301048743890451938843386574496126429432253805730487021309833656306720362320800323443764233919439019345946983683632241200109250337375782285942386292878073471285213726319850635780561477382824769545496574615013492412667041996769915142133158016392889577785213305103784571445354471609799631697001515237114297067225427537744216447691585555158241821678973337929533453331732982764072380099186675920021188470882246770290053845907733991926593291081894965281833113799036172486436192212726761752574250133963065053370625177446453162736012246089955516433605748450873085300392482938997084975290631117701881632228010856736627688510789341024428893941473707431665556257192135473035917864975105699295341143364828880187025804101528984671446571881390804303609503918495670800494805475803254733228680148613059304113858571526612108509492923391202948916689502563728973019077765058035651919883434185946176883873912966875273246101606454387325485596670763307237941454928709521768869076414276492399112636368749416175219847312631123278702710055085459235364539365049707599506253555842060968122662169507037180406326865483392360334456158915661839366492531088256548379038715885600618079706853458525871830020438906476987606517202445981230885132810604514288395526306421806576924544321110369475857354201341301043940200436982061874553519917617955669093101209050718890426709524467506491478866112457171334211271396658233026592491896493201879673944996185980811499307850459792917933236065636149943615118940336038100082862992381189095289477550496054351067579695650162341752429608482415229229469249619978363691534844353430320898580388334068177868884309365690613894228547817289506478527369864808097359940859826019441111164978418859460848306328501432517124288860171360994510377346669539101784821734752470985140695230633855084865584510876576334947999022880545953998761261941124640603923028923120908305444569069119677981659854440780951584734112932339150361540508707051031910960169662888505854418279655560752172769009017928184465773866625434141919744228317395237544914845860087818613778474900424258572667840463205552347025196096617923589499130734582040033744141201733111744376649017836779996588414163813141547518387590470204561571400912982127217204893749952161979799596885048224221214052827328453904847909352889973389241945365952769536425766556753616723603815423903211100957745404798009583897825588080663797730006935040024806325686441462476245125472149233674269747639017602753034377689973610484111524159690655021047914600275441403347431311853954081584509490386263875074349572111126767859841280380855111671333084905572573948954131847423107665086814342935060489009658703899673967795336414589621313568466662879043002436252164935916630947984096217666621479429945444172394772739333476380922837862727327179239281553216672624625365231988070338351390808268901631807485701944907202240658656912215679935700713943697025872963509727910578182734236029056692281852534903506217028376063247076921680303271899636562078190145766686719532217366858705784242552616392081070147809866641718310059829888814358994414976967935098600227450189908138972723668256442161276484072138776222286953460575665656701885178972584838398385208654382115517948342762271332058393417518979025136758257012944353790897189708691193670556680610075703294759679508792903626337078957963098817761906281726853000364262158164555326518999756917404159562764242448471476613044598551679251920441118642807241404683837634674346465405462331377530447819850030360888337505347080675149714756581768040496981904103207080973958993324282032236239818372389192394145428183073143197236737895580041391356773608912559504885008748975798684779057670297670255981058825175687596936432363116336211701064451308395637716055674480779626756388108663751256375952933751134191503669950509295785294528647720574307608205231910257786661221683237220900827348727521914250129286211608009092493968157340922761915969405646713594088521269814080005601988971383425848719604542930364019748133140029359810247046420755126595137138681170929072671814896447038542826281401849638096080193285515488908665159898269783097489428203413839736249102823808615444449666390465162268661178486464248669135235973649463413294058653846741536602971522122740299470832544151755066658756891310138968680300643995730215571170186187840238116259155158642768495346765130837343299143267469540081426065878623581756447233295841816460620914726017773473964398012453844721479773344287998303274629264241706122350797939504908399101723588573960225051383425274960950407477939735425088855759260351645901348850292141449438308159639509293527307806038607635959749240019407142360822664525084076963268750709818117908637894080229923295693852599166806437481994198209894367630447021619782198213416594981550282206236694484580509233478627312368620510845180219276349040209337030586797153464911556591408133498230950905949661445297625275604028402758887018501854445714080850329561882988129649734786645100860959871135146904603391012352465290158835842980225163394482799906169928695116820365089489109663912269054599483129178193693448548143948885899128699140081450719445159233838197380123429283642903597901115982439494121085650135224877193413643571266946942133116346520397589401384300392505711285984847991212553189566864931520900323541532627961548731278341065086624340202340292453029983276422336190527340039311579825294913658546553862261303702584866794822036594039776270301630879366071751979292175056130747353225008226596039228246002970360216681923696352361081030822876061922547898133932101592320954761523072036442811580042990658340583336470413075296397939069006725698793633997845401734155356359909313830517117514275202187897833985419815235847789334277386786349973513217122971501738537489887305811218069024127067583853503534360953140176446680970259105967502477073571815016482555360804914495530118041925648113414883589315095573062359249281756624942623353297317861240821959926016126362587201071243291686680941055430954203232052427705829546142604141153785493341082409340304992962112572811283191886141794711170965547673211841854844143509772638338164879103025884588778585411779955624250719438265772620699150839098512499444163893513864240396557298481785946288846240698809916711374411449152582356702867321205200911827568373643707942649342358600923051338901218126811032193360331631608428915632584432682498340219751828134249447144695061968235671321519792381768479710540674642593003817899451171564931868777554029486318385025030156154163566190824347684375128219490614546857775780189312268621040576225521068286592320208322937333968803816935190434948831340214742383594413851343280085074167121398652040989967012396587936916502874283393045058482969341374882170555984803158505503545524781879707768075015414749125648888383857856722832480569465592836153729948662498429653700823940421837230637828902682529471186406815303270128809559183166958762380412391762295048134355721960319203097504379775014117222955961082609130636868299291040961152527442562915524187290235579424665203132700862766648837916566968712825097559890663018460228174757007351585499277655655950517474374969772634290998358375483112220121211905742381113385157996950832061531915728926961914465449187053728429879451355880662266016329402910437105133259461007990328634347706176254295476628816595222553830405400222458399332048405987330748494629769567235947225521679652619349947385343729618234904191496918967558089982725022118908505284003581161648700492869537658726332863307851914634975959276136576532685736779365318774598298373827116592447501469480364366217916082840959458823669370058709760584540966477523460287055191373485737246275529707781396083396676162649389442906712011164559505581549558144753155511847946858755932887103227919009639866643038674673286376041976084666806788370103724158602325721359036837824815507664766403388350278610354247226422061948561634700184432764403423499929704413494572204533525034673212316587992487979435347466821519853879204383898116935254287519902479798344878253112039748517502025506813154569124791654651680856232324319175727383402068029698093057945163264101359490823116189758916774910246628303088768082138368773276686887411268036736509935409609613856199706590923692086127418586447619112515823908469957828372521978382960984974274102308234546715323393900428915974707758544462504767096823525032577494790053951485530689606542106607644641037822529410737338296513989669282695639437093458138797937703364958493783041500193551875074633144526184981829829680142937249951708063899045502636199823283464335833958039998494038621789379791196839828281596179501882967537581139140962633806433838104684424186927982288611201072782977509472916798608333542403053186702846078851003243674974564458425013489954304486640249551577709248200375125592176056594510480320067186477450502415595580991474586980862076765134560563300004587602669187489549599894547124494318218954465960998244830249818451911565170277864767677043918349416185444255951366118397512835995138185897070224433479246944337991124657205336760551049513799289624163550533566966344151648058230226708652079536478738201930575577937523027785213951984229632486822953700320503100817477548016148776023997569974149229646380020343731222650071979341831712723417560834187957015408041098582294283945590305192493697910368526082580247572834824591531282291241705033495919746019339056686312883881377473124530131140047328309792876809706833707446376381118013842766138784643877812729111955299390782414738300237275866609646074813286190551439776574608245348028794183574637447916370594383020184811155574354690781744611746882429200819468081660912104098303271306058238531320848112629960858936886395784510569478453033983571143425718912453829291606694906628774085192664309107736732633693250619062957431184440541748052638424011366731316329179757572141039854302534609507666926044553342720575391228145335654377754038911899283740267013110766115873311620794907735374278542869465497226256679745673035990669687852716153825356878363758776108358285645004732978188826384254777780932465985083505920562408790888256407309056859231906333877561505390764210893984209449372153512201214468040714385816839781309632350306640867901869241455064312380616325328114215329133887993059127584709584673935305783078565922784435773508717144322750684988037275093362189647553455890134586935312709313699136130426671059271167262711244150188747169486055970060365959563561845741762871370047926286925969106463825640367369114482913672210151119627491056952753069079667776208076502371910848798199927877657571709094125642735780398449033804054622175803656067692964090474133078787474676930865631946426641210687339967969799768195579938938467437474348080551722585409067751444619211615874812256673995458632693116893117737857421417202662768048179709545924608772902708730149860349661977469681310882056001326735008708124555673210069723021888626630970743229552147288565576836017836392661739012906928621678533330466072819230427619657740772688055962203110284663441577616306548118939150529291225675852247840516750405932555755739404323424829982258084098019238037677411938025624932913903276623251975699664750132017496644316846229992524208268703510811502643744677775753812675791786477133753237200533217919679823418807206702231500483804031979149485870890716030559317444188899544883300727400000073690751868565373082191861646048969625747480594389825941439028816924390795924250697312475591820541618631294211607962238193193513173565064418665620443774526082512641832478881233667812811372333554678859226018064731464515317199124117241308805319817062610382626922223880912135082428167869434498496984777314589225778025851622390575567016360465732873088642359814244743496425792754076629051495478290835293468348896355448159722112603294657076337794525031581039980313040178109102544307855839971348869830165081046781631346776009407155641607546933893227179326124967987739705406345750818456112674826171273004509417157811574453574711332861429156053791130455109818879117574219798270023524874614567562940888379788816407233383547489076653145518883000624561388679563198960411767056778818803666818669515818327158920515659635416059633111249735770977235716584318430158787034687643412357149009183358396399558437738587953699545724153539991051406942663363402670417750418981106108282362047032919859999179416884453068507427971553110832368969576126763897976776901638018896450610612553996145349899112105443762997741688968752338548185017678687742851906872688860860843022973458350158751411215917640142695586247899314993338070203976793189325403800724548885498579822017493615087131378852278463048035799697317928709709900789930634786163076362505842515224692341049890249496952556317244643791968405394661689231942599183570442705474113547095812102637731639365108751017119413868169789662073873773526100922967449198950936548451761890666063001777647998461937377841346089145918782683649419721005416302200621797958240118551441228826462725689002509281411244260613022995733417655728838058927053706624058263054735713730085582569922516481222885059800423993512450381357323284713190107964138343332936732952949268647110299096926462787089228841509427680800751024484636304411308934654861918343497726259484228362453272360848732992974644237804651148039450203880463261454310168979930885680045463814943677903381063964734326844112167277653846040882310979475137163545106873031967316722263682686747255316413276157095734621589952917581189025119234550497023624112102057695858634156235119845750698496933599079089497962321058419294482700036305112762182296135020465680995324977359831821638964023697245410864954691893564445823386648576036424290602833961210795991692984410304499918065628724048825972654813376346290384922919684270845209129689263520744566103089667629310291404604430445001095443893263299762830614930328657591648029378403527852295136133699394023050626133791570228867392606548081707413959260077406314668775785805303825524400069641803326464551203265836963156918723164271521508763570791294524501607430527345381507741979669316362126213377824501165881591297891007171706063531629844409397321352612685172484969532951485401365455828203426498817823864792840160466305545014596772758887799666672704848246252086422275827984027476447060890273846239783866914739197211606991860440266242870320696618552228956803840364961759548537320389140549820540881748019382676698953514768449317697651578119545560747059735792911473908862149553549481974497419626940951760923618065400090804049703353317307518742996412602644358682753921687776617111037754716760410243197725966117718144187252237807305646817963232517509887252181643864020345904031338056490280688526111670552297401049688250470436175645016029455995970952271412317615067421921991888891364786686683156414659595875989306276601981057850345432789353823619037890515039464003693419442005775360533893388384652681141096208919368000922943050427222942429395026077003874996779579791807110124791651247562772947307595916151833175514903992903719442907944762878943988347758609443256981583039521300526349941156535324720785635337901182856619840566570596081754536177200711053330803479861209747332814511687380082961617768003462098323920589605588317018445825221337589155927179400112834959432204466251464184915615734359574425081308162456271235693597778882468140703414036517905520448391281059112445643468186560976298264424539974003332794870001231722699741476591473371576999529600909254646547256156147215570579726547658389702018136914393619077518312452366825389322336838181822767690570411320652459578191384627989996897361670240707207558084707802137242911690891349170782226134819762971437747937648552295975614078670582584163270680371338759094416647636913158904351694218113546292900814576592846823139275491836103886780668563360223961498728138844637277685535558991185971146310560174639251196509685267541336916697016461695780343758794636887847876244912838261076977884611291730806424335198365773790905297840672249608615226669822351203363488039940886337139134356601819135521404095181077580505595499607792183708438666793181190207108391445302257369990829089218735454935200056337390330142494891321115182283464458032964762243908475719517777142660760673245052559663222608861248776435660315977276104436139546640850246414194413370202841163215842260543407647058995457081980717179494591450273003177605732557157822068615307782947713749536386251372377032829549682727054548144460236523258070729013355788242203802687088534313546304297875475651469726142063990227842368056311445662703279003045189624391301543062042062299686914602430158644443188239649242363882059899225684827442227170334424243833418741958565631304131674170674056872061605724130838045195970794971585092520424108383874127250303089223268493150606049025227197416005968232852635198301392239357393709933490997677057057333057690420402109232503218382860859274443754845339417121655524202076010088281853242416661131878723100672323182730648580100197874075204267993618991606256996982454866172017878016345720373741860859611009892444839119548607349442568380706026394450650883212509671254947959735599957357007941323441796904613017750561584694394632640427617306941913626430651437828610706971205854749739648436127179586502128922034394941742291897358378967316946838989771371534113476151421347343984338611104159518313157153340218080049129631031887081950071107692463663413070440704656906663354329610769715370527155571112259236088364343988230449534908031354541147937153490569499467582068910889126509315848465964260311257647422915588141836799607736361339238720271182265005140714059721420122530038534961676684662978218231467770338687070099931677958327423634287007567687125911759606061785438773183554552109412182797954475418482201712890190708274873464270470117096017202089543568616610853796441305440673723903591662020919946534617856624612415693775020551798475118269588217144134763794553644641122278863610611984008819077669364896078434218209511304072618075780361770804370655000212626928160319787586715072705573994457315131429104107541187109950091183350345296588540275975346212266929477000732897793026810513104915352727420447398830226247755504460317212483406198259477535790519950795283408425202662789434939262495361561175475729245240788089848272377301107801941497311542697827446432573488774714188020758116525884907793771364943840823817294426617794120430704177190549777188656599398812934011198376324035955515832194120730088818533122858750331020722692473368862578765817618834033510219697926438086038363014150498752140108692134680582115252925275957351017425935140616656938593220225719172739380666454136038075040532117461070266183448284237237955971840429613053259380645165835621109920214063758795113516833395560713951141901001681234313186498992711801001642723189950151611073093576948992436504651913443255724022780983705438985058071726079628775581826848431309462252628650364942987740237858894727254380063399241416585140311088049866070025617777892838700352089572697093511337527103714676143114352776658346134168002360527703431401148438290827656751754481636970375231222479370356542306179451738946396927404442018856304205397554111697696729412397733938546459232940830578773867852218152318620640778298072326065540126301994561779541981562652299431743936486796545471517631762011346359528395873789328813060383728398554180452643647106807666193467170917730707635667311187918297846285977200798844182685505654275424718931264332922570421523328630466017495117378904545863642257318192679426453326501145465568124531503922845749535453282680494687535927498548889388181263699833693819594814986471600864475906513878217670994294103219880242878708354244355836913339316296097316965014702690749229404953853491074609157918953973696010127559880543119548173108888091221524948241548768894304380587497667376101698488259958460518880506682228203825197370156147703384585832948513688067680679725821686557317180628070155311328389321343872378321605374320303101051686200108294097071047620955463317441254703981626912318748931670901532604920710305659913113513942062207474260971995925973905668287880006909282994301835993516865340803965909748637131785639625425638107065453737351829172613592370150975073251192996633491992904981732385366676043271153933493510126029248939739779421184876444075068367277125023191120419947183034400290351515718865266161359420461724185781934567364216738055081745198802772293703160920129383223401976464730513218292058814599349723069218533283017588115778686015124048055761450445920811846462199617624456923602445915765315258238346188468088226571238599893210721882071525284682738763099965914523448251199000505690561046401760705483295449535225097891549372101392389216618184635888293952012582470404064927850869141709927155246137435902094311073429461776727968312207239471183699129103579657530060904676553206923624291346970826616470609076405887993936222457355350738326820100542576041089317284178446248661341303832087056508277343489151084465626630284130122474120825061622259149310556343747056324922868169520753063706124094320577966568186862103905583446843356604910154998457317875609152069821606042299505540636326884690292236282094157664016292951943585838188645173088806574401680450464859493006283796238889802012708004625496181996876457986668809432716844264192769101420791925356459907483775383814274074563228350989252922563239887352423524462641179127519195359159089118638540949526523891897838242608848095178686030405921542639254509679502855795352137295036136378070183421495508899974133218818646932100541244081957552755536965050755148182730462564702078287919084412503690197603555529597277067722278632863277373104094364603522427059619750673633832034545657434165120972514826997027044157362715068848757349793601928163126468529658207080328522059252902458829088918386431915463252874890411965249268374501038951519888502342264348676116799691347464665642091328754747388507500830407303730319811736427917086985716300600595191941199949116252592436067247091491938088626741909956709242087128911903117333662956618384703777073205265057944556354320832696171357328679105576032692813121705251033934036054611809240826340670396330352399461777325225676826933914452890580248134679782367187417636047736368595728061081655984348958556260465196329497603724255299296571779320691796029998125754577398121280494437308817179815853754488883687380330100931206882520509154562899201495934348522911131137877866066337597437517443941270821736961895492436934772201266294063844148282929992052193953212943064884548635960131067416778076408144509394682742522131433571674054848725765875554827062339231007132072382387720163953752388512587305568618816978320674668328799424058476411744397654539986697164996686573368477778770077823860039895690889271912346250420798030799343164629920831880769825435384655380098255268382904218367234112854105778786390927971188052525581678454686764039939798862068798046884821528879000252589046253246425177241634332003986676780690893896920742953276452720403801689326384038575367330726953191521222958343748350544531450837498670657651709700675460975807133654775093386832730341266753863145018300461245228730046284899357423313561519490002914822725821878150866849463926762579295126076956377740790162780927165504034511330313360643404288636869623599835119968495837189133843337201657715176684297178017601025816846316552789404934274178990309241662436277945026699730415107943394822855553437427090170687882989277424702718419158606797795345812671502036200327994384972180145872786333583744103573260322930245780247106588800500661582955363659153936696440338389958426026916614019752961707250189430057516530042440527021501894321071192495215599248684127757140517181423260374366023866245977339885389501800746441863395793457577065076723143080251099377439246171941096885097782686024584701603516300941702195905880076161326979420086882395444425208768115298147877391200951656517359081213336435576475970754239637546489721070246847380023234073112383439918045245932190824381216354724872359190547539100902032318326412542850152291589480085841389102922670168753297681380560464810433344524353217796332547072483022195976519580581632495164089771408780781774303427918564668500876176137950994216338465980563636303047880654683633789853499608821966555809541181726341648229729991957731954552109887919701885714414244714587202801516031635744021401577137741123309922154696832109355804090518513085706636552247471965218064314011254987287691008998298166802483540636677738240816088857359937072926429103170007062099207375068338130789301611127492801262313496642598210461247213060678123316994692734678681009588110261777296185203796018085482556135709239364876185705353035919235709946758159741777718584834050465027355153396518987074068432188203608290951925332957404575376868587355849812375187179713211217789541343509588700070032941115573092446128132254553921197149990999746358177869124537467379603967958966186953549450550414525802606039729973775856659946857387844370891191793764162736756906625863364110242443273254574256633744777342705195268382808608801376636979969207365786731862449215519331680741045136365955269446335285266156971579454847090493899061435555492617720737433996312897450317405847387487711089330727979626517002536705548781980820033916896368908703398143570804219261969079394731942437902953679691199765391029940458885523240249000499767021523045338735655180409204069771517461586502005368283794167549225466587832461836671028641522624950430684701278894438104083653236199783123702102140809775123766129641002654417704443188130319954560844675494722933869870342714105790348247445009829183634261160097927502617490582789816191782308183503257710877083193075535463221802600650416991948069383761200307110144234994923855053833736352264005304647750069575442567673180464935894306026114199917287905620339587827285943589776730170456219200356632542164908434063661887190304260938782110922641522303552478557715991159400269841519323092179418407412510667456437930197515799676210546162379792323767443454452844834626254652150911887062316430037840224608120701514124536498395249620634960982956280845157659418427596179920130519078725792748890889291524911119754140036597308461365569556810355192411170428733199510142825772229149147727833433965401313782152152682425668849589465183763340979264034788521683406098617993735295956264185701403298074194675530520899872740200305017123517900145849891179545125656446684816614642357796411725479602774120373979149834582615364985310976407461173306256148608379749867945208438160217414631087744019775391184606382195083124261999962008532102607068186688199739277182634557172034049979547904308480085293421347974013130335237798771058245367135349096887457871711250904788015244241728614179465298678289524145828519805204933057245452929460665517959060500614304274641558629082317288892132434713950699534806464662706331961817895696112654348335638728005275636772491133004740853707707758734379284736924388516442421581761109459595657040070164948231805365013388499757980606537812124636289058824228049089910445487785093504017737037950987466953901495470731103889602644347363367807574372625520607829800364348735724972684322469479991400347500483422297676804292944471047615325082442646151510354247374756479270838822332585970097058601415510123624637851525285838460511191168714809328609975568108113762398665592282910557675570353817245766286259204599146781360585940557766366738400654156353334157785069383650786392499914327029156746134553844379678375717052374833145224666606307656805097713478936653294362443349204032411586165630050238360273458858850945559911331395394224102487539433761734291376392345167914098564422686986192217507094006061164223348259604694489818578877100280694626676886020680648137333640866328342637426595316784817707874130063473536542985720921806891904899807380497899111909008059036537311188040216467462449827487722503453617742135504749295537321253423607936548739784950531661874889832083253207291437555768588920740628207155094490487224452279541140271088843420186201743349664720377442441628975618203312534343074956603756660677319118696161983061971279460312592452372406279046797768253747091773765040721091686917508109074067886233534701126150455898554449773592790607147581195021349503186548358589556694733073626908876026914991194065991636286614204631393472992287698760571236035895716053591292367611323635126015836954250799440100804001264616120382231970846135063643125115139343226009698284259900686758245366832996482305162975663830125084275353192700834377668338942488992530516939899484743701437014995611233749124453578101227790301586560180305062381795093989548098549660525834124758104700610305081688516162838965191906784319006878185282886814072213729927339332151814283397700211460661600233044036884661748010188180694272942240616910325173596547261987247017836088008712804545365051560319738031452031694757202798348097165123294370749217534251362209647580142618630490359379646551840215918721432175229787480198266964346820889189546681064474911357184983009604875807250267961032173496297481571348533855994913074558940782665173734154736759730841143033661215142186222933766806306930225944311194530974543010445641056898687129005525270693804244616686609931397337737174614384905687309165509266848857638342527421918734883344803522492570542649182970600249018903320124808890726845604629987600373304233088325179156766368444848960715549729148427383256491433107203683252489214787730360928220782124773032325321019650029651461051452994631573148613238332577275179413005988729925774660664195593294422844365904918797804686789889380245419122369598374847583880351455752980015137615148391448347290858608246050125954446646711507856863200347534099606603032393821832801475287384482850670367380681577407527532594893225839314319096302685676565531746466182501076510805739600111771834050968317482078519037235930574485317336448820270207175416680321613076507843746417603307975791890011701773445743516787499333095802997209169009728066154498583747357659232111348326837599203814670549290124050307091090707310508808795329175047746361156707571854610087996089628977949226096301196581065052958267044657262493138964659829867846126083306835564001079081902853303497837138415277545538558006186740994163682357151449771940000515513466120473651864701060360948631680231050304739393798312628480056140224812985549670094132787094031773262947746950240763370484925712981132286217300138678536413386701190094665386731848212813624959796108321952927486644228234882874021966984357022703858434261156083397347888052153684335227776245739970822123001220031255907344438028661845562258089677074253739188452547780012485043342779760415023210849205955548643533194637837610322912787280316500585724124959575610481101316822440694346335703075782854611982359918911422358477673345961607852210689885835063102438846564096489261922464842908107969265575361994218321106682836708942168263103196729963857177483752225334861766337765293399581222715215516979213965634185108954355217018605433516467122873229338115714348576818630955832723609592778979531992526048829450376986197989082237944758642539129205478559032585760594569161404841706254365899400639216980128122595071803642932825379213445742769846655413635571689320389702504476862875641723503941068355411180435235795626617413788014379909305187486779115802099228380268072120697677989602548270256811479607517906478915255455002101825179075999576524561285122156247005734355792678160839247467765664049501950864101045983454754585334832785599283681821426342778156490956563050905428810771585877007707709135822938007725286932878187309251251774466933862245746196525227159704978147232480566536807704045361624016611870636802776020778596277043459262965643829611953449785079609368591012565452195603739513254670071393040485648732049521602907475714700889167301911518096156952717211205557929611936260069656877781660791001725570659588773092722080798718082273623007224733204768625934030654054451624085177322305365922433453812639507971092344137229529200498510293216427137383219238162269982855737308299431813728089896027253098960162011306242471891628767110642839831612107971463544453861693728864635429811755951173240980741352169344713120407942407861662951204525036165268630612349533335445090379282269239078594490452477173512804918458333849146306825334442842140194107224858048818524109182575245542262795757974285531347437098961316926963969998888274505454732730025199236303669699063275619211549295784815231758634956848103905425918664688790926428372013780129466949854017788372129615463089395283709520873544751530836671000054960143522666013842361460426513680677853005297961473125965840112130093087351098781433229769842781091711098473648397289264310616376480595779760854430764903121829231331675998471211929089027658631050452617712153279811459459140670933203568694610393313454140931399889930374973515252056063281710787575012628357974776482319115319177586991108312019812105512553268696082034530257330804142983599544878742387994782627210545512057387406237302964372457915169032984469835138937904178282179057096719639931757619138928778418100538914226141975436290013629957498059585716298531168026109670637215294838231784731274480631030255629739409454922025312717009911271700810992440151305102396889226101906738041287030347279533054460757577701537606392183625158795242706400094778546102153251333945067506735315908771999974752730778971112234303849472635123245857980844438597488955645498718052882405908175173141752619043054161588038896480746319366008716486065332443888526324059697579502937497136671748633238299634324440349674114988559593225126709004210816443424795561952147689317693585694633574349755906398671553885121565242404706009286966086000679089208927817737881607681187806438375109256493768740565518314849877274386164268061495420729971497107551638209775045073990020054932314727512058587918095687409702592639750416071151290935919583413078972956498752583185420690343932522157624255745051157733891746513755870686833047941629046213094060327940638545372972500961498702920006678073073371350214491915331590600875587287722721505274603911659854878658047622467853154540536426786122502613723985869097423295141682826487350200721747848564429437587063354133319999886610905843449184160457105194543839590578834419065311070809160762629642091523246279267660045493779105836065609877940913666257978933544482404895454207593852235594134724118917574074986854107343962710226582117742464278604569788351808927860369069421734307236258409644045614261113605834227299921933336250657020622171985685603445197604485981446376394225966095602163832137104126981558997557282402014002945707485546376324259343173257694615370286214743392011309363596074427524548421108722376494839002950455400172428920750804057485840496246515836270955774502846633832836497155969380739998190557699200914433020303576164042708946681407205644468750613944764267315491044856752615249000895983016826563306314144281239681402542439567822676674640433462448373210901772578262696723151685265110369082979463100465703061045080793144285293600867304526087529107001843795349754843169289119397655846075597018991625135415855550890982814606363118827154905631171376597213918795467642275279819686469945125325909850395673197385898125474049592984357626170245387019886164575287646666440223330095867109907424375309724235605119676741132807348405798520389164837109204697532373063317671321311959719645975403173953116711415854047304797142730011390255585262019199816785308464284096890483561028605997645477822687321754446543250314232339031914884787647602430120273244850401671129562219633752611590950753206691963183511489297346286108708927739360776057769420298385621385339914815231361493046877007203644386573170037546709445546830546950419677558461183522709926606961092009339620728190790779619059845795087392762920626703331007272006328081813066745834872471677867790813097042568024919413303800168030685397571417410732831438430404746859989746438241222134569319299552414276891545839425112329273812556865010814266532575633513893913015827989775067483387787210767510433729343098896841589006277196727631173649552480089169574058166413571697109331761050417953963273966477989299960474816888174559920828552189680501121474414020297286906814822925433044523768706259468244057216426855753952374145342599449884104782086513333825089371768714045490585958634130359576199520776834189071286012910256038359260295537316286602944144088552136997664825267052703109559212193735452129893922022323049383142832161472674160975745174811205730577109550514538493390411390122432497260552921834418971760467542087840275791224084949581537099354242490221282781863562541004160285536882169903743915570035047782580922378589517645992962916353887406639277863473606303424324179198658534850506737551008553367615015168230414326336162538249843839500241394518879693325887729256790205816321020517700871582594412505282314720144050172522778711236116124633388534399954977615625507012527433724130409373455554233815932360123480258074476809702728558953016411692621627882013276417954959864462215014193171747772802517741127304286785637296776298042266359852975471004985462599241167066661627994159298817170368169900140091512946241660828263771454675358606480869444346602762631059262317574739008293457580191497073253213185065029239417083285542486307709797609927304695459135470683590786475136968341580828576199338011395698160770260668774678588383539020357173076466675276216918539870078583523741594928044965442160017451831919473781160094189833206414465940300422184210609541808317009460001005062088753731611204391651804274893919802114040747517323670473087026408245564586571786674271339088164018358642916844566242614559805196192347979208607654931774630715498601161546114170727018465653708207234819118655800052784231670499757127234307869551892710359600363763000844663732007964090606245555359787624633181565025954145421680590610380664114839341869876308395452593224349410740285423526984048521051055680487083315786166919193944534971072353229474061370302825912271700527737633750414764281714328305591155732934904455405213602411261633531288553431885346163501694138305328493669069785263244249857581565032599071698824095878232209491150825397412800232942450741471193547319609917135371300387397114971234670971660435337530905511498414408828679512338213612133602443634686700721390912969396434814545740609772922949684172838710943421180138568441425965380653002344887778568389616079748894942398899579674517084252143203897077419238072875235292501021682770523578737588883019024833275031256602602036733734662521503458630119753526694662488700003644373759281750967400912218727979666197218290387532237318293447097337990125162262504192076358254422468653867878279518680614575106301601089594058070867889753451991613697333730076687709446225765308393252041041912431631174449269478019906190210482417545043377858026542879813283572946073496395289210332168126666923609258319163610495923973442943737874598507188604777427532410622005783207552446345546144140555137562083904767502723886860557054870805469586400588843587839995780191195041023475208861046289094219690646455445566188991865216082532483291781401404138934772198319141749955274579151187131615751175970490069928879852294888050594037762489859877964887497609011751350466658250040579824876378955294340451435796847402197626800670695628605770897036198033122327844669108260055664350915515969601837252836986377325264554039324891891721417562364863863723601718553059795650306008821160231920787849282481016329258017806239882932182538682120783288794904608545076095047926486928429101051015125855310689778728281510705890031918356001254761857729172233087891805950438043799017486282363058773411132267604542556140083002094315203249007976238760647612809430697940143166766430826719838101619296999126147731273560192735574217152426730713238419359082767763065175385903808426460168295919687914969443208282027934836303062995474607144836995442761172482061285867493822438653969953903256295081375155953638125902187398264740818096246492354621715146272966669861690469637859685363987181268948794162113745431526599909729580421832995071311346230384522031063918886277395772540348703325251716533683315292273541476433880122287602809434548886270635110509213052465103088793848671669183272205581270633465835331562147478082761460801437986572460100724318989015610210867425697032591989539510750290182547324003462259916848734548702420147469046455241573610620575073528645469971218852577343170886888861916162526145448750369933939158002792623887726025870046834660992218741722224359807207332287732824872571670744800464648079300499762903456426742500961818889778675610381198278852219316963186645986676207232675925097334858210859580572029777664747289063800044595408062359171584501656720230833402856332600340857237972955042286638710038374529416302876459561679336011621628673690258155439473482379534473374857903649798473240585759084023555803422471905334278957871113434796209364695861870211194662419211086073764247911916743010793528920880543852124985862409105085025240234692468091353096152426311086598086869737443616609881871291931014955011832136609067233158732216591159370383485644337645589098870564663443461532067813859316642711891144018327713227403022105309025020577611251466937833038066259546800180315566520775137793055351353561484769420502630559512555336316468179766412111859592073851105714476478361812219765720738240887155399546665908417760918253450997777836318628321052950086825445630422532237805001743009814481965492060000343242368150388496077053473148981870776056630189129890605671595513818669879595286471237629098186126457031189265530466482861531377523104756854111495929060415502383087077355110192189215827796524053486738328260204798612255731874097894916713593976813055499828088972696890936503144112921901848909344603836676224444789179315264619750885252327279671016829699932639015817611480787314756092693573731191504022101706192488256739369910697081641498074797265663508393598048510918118359030460068148144478081680436362256773051011156698919353389544075667389183156098355064971636481678230904683500101276370539459616653231965104746342420675551597379740734142332341753814811389964301576153955990997654807883163967162299857592468392365452364445631899994683270464028400913109669326188161923387991415071409726223404952742582166569483338062673732146069481742028269570935720250997764613555265860017492464782602778466957200933671377451460370423986168652607296715884163338987657014561157962222948631159379925658199240667275068217343710629041157240953778079234147344409432950338577646236147655265583664613071487592466537380773019960486385747247831751013177090766973483953777121619688610776517119969767883498097441975241074758226208653290025961929400491976569903697194858681352187015292641626576219934774071819832582693238187505907459995647957323674564896817464671815494345291082416660934010194568253050550355328319936531497220808606268529293775910884427019555497962409439658847687171357977464288432451188344435105174514614834141140143795575069844635818880526995633842209267626870974352920437513171157737514346892231773257090541525733318933682464615277665130567409261502555381061186774376564814352208973310114982873415877677966105027435799349325932021032965431752343465819865645596552199439819701948494828688012666216440456867832855281080137651025436756949642788548422432289764680855189469062031740845231975142088540826447224183759271078079710920848864098087794104901894213475582748719218418063954736180279777454283104951126219756018992574915366060603605610297633110024008410076610946977614381842190455164363521873012975687362842313277253049833571159384413555725498446784386228474783854893804084476097342029458778225785040498104536433041743112339280103096017487683418562169458227138753283660529446643722380872547820560589414007576024423928405981043446099497482003816161773704456373752576922340472187869536236090236834176050490976732605102393381780249522770644587023356807672375727675428137566424541740693521109718248446615707254085912884142115168554822246714975488362132780002457698023603666964293768939604698242590620373235428650761564380460001852613425034433464768677241205296902100805103382196108094396597651172335811355229908088002760600489488814411011852772531665735854951233636269992799493308830944381312495575646679087714367261435402276256335874056040185214308566774751214183613888998915154843753208891283735764659121618015281181287337821853349280497612289728027027154803711758266840520790766824391493995575377929013475093729441728512394505972409192118487272842868919648184595680707652965331728664922814420450131634957166776013136861030504175606414722006752810654593563773133534132475510972281142927226475876662473570383896878559231919908719685421292462017333470605548214325085748171973255662732373443763133632405487533564607322233802086881123931688658180844185358712591619424722051833380365759470161619608355669123119672416155246998923769567670883738249283917880355503209675981479574729374718119614088760946827290328979936731684333217417476627387171834159767871887679078531186776514161323958360002455543074555876457864574867451207719637540461516266526300558782962955777370934961566963496601181449168175813793661143069659046509493324507198287606516469090271364384320227145965357934189721049243531937127045358928745300656059372033659740551515741683649992646006061123637633794769142148782284468008207350755110476270246196652533424470701232813450157677337282010338285850661857160760906428322237779581737334377583121885252888780665793937666764668135534877089920916172108976055263612651572739330272611446898818248064848052017753065662520461787363311360492663824680304962461635441963679638733996757939479672015370911485796518429233929974698463745497852648573203051633168637663129516253210869700392574523919453522185387193025080362846181154847486979349611060536539119558420485446014967889892840826191867691913556237494588921339953791075307815597136002555613608972227303951766203403846347050340544931517355565843300711296118492902560823846125437043950579975171583070830060200515309464622198860648291606076061944712411132138066848013215391806521160423422691978492858117037139535156017938509867057115506724994750965903734289092642834177444887361152080376754570337378895717333929993340654533034695487889933069046408806501326848496366043380201217546119736155195123936095242900354085700918198690794166088101039178439689368784379901669920959734867865149439709147398840936960575107188761494749662597557259256056943085574405418764941309875187861545894971351321254486294464584392422468005374849248635515203398606342456721041215805726640642069870456590036665900361421893161920126874211332510158924863592447489564544887890022233870264198959381211838180106671544464270675150229073258030659629169041717488187652491232471647545980852447866031360833471071822609550570522397914224349903427456550041199092966354143378938906010883278762639474860785110858273571571348938375152780505966149050668440079976920203065738902536978277753718612031561982851310910126234440756975553148728349245218054763063896516599883815453576906341424722405765849094051549192969696163600338507965150983267228343572310486307643003804243141494386925737850716963591760979415536737606846544057998053023038165241377868224894259304178818886632339206167625954987155583537975170113759006833033396362283938317610858362344873204066849959794015971875325708365543775983679637053397972197344084833495402558014572167171354429630885148459805736258326569200466543297583461531374601051039835686698250512446686127094114632446641597281431156127837313088324984057952403712835465535539242031042622357604946919201003803922151300641626771229923652114965999896992549858488146026842050978462432013844101497179799077703023421665006005510035650834289655711194546764504283849682241556315435746817173315722070043143888902104707232324498364057772707956946639310135190816782310798670008516658955452229285696740189277207786822671725216458647426035291998378750769305357663221636872797709015512749724961917561213014943076418203347438257898819313845859118465064018864187351930616715499470427993410327685323070896002637599923322352176486468140611232443616511258940936030851483542831451085680884668997557983029140550448030331789757302536648565863011955500614885950949090001370160536614367963403330462182672311181382772245269427523301128714535391979427200813514736758447522513633832337552786595105886893818441188829246762806817113327845065091183975059176378377939337779409330180197997317398277184070234374897874984816459455617776050874557334296957886513662953325969391428979200948267456254344695897231608334583976284491102938433446901626923099521993926101526666067093938915908216408629334399549333701668632463848638331806630092797787360238361804413439983373860551598367443324623146367231681913068974723583504531873205191530185887553610584392786052538311400425482568682305093275249142356599531572049669892022163685818751395532181403581882358277724219019912195239962498819465278558758644894522638497155502762507552071637258315038871325603089622199795878571357914393876645074484645721610578262734060610056610114894641606933719372915248196472630355962504345549366855913265892499460400809864848446270025529866477165999182798192744194881810600206630730296087879582268807661190105771369728449798290946507987180249897570038634963514925828621796652254761588987468626029831189645911978511869987460945264600688522681152206862970504607019868713404314438665813560018579398532370418397101078810969884933914630867617366426573140075076010425975382191201612863172490630121326231768487251931066392150994607296115758601799937094761750826112331615699802201403549578987215586664906988945751517962418054823700745737633157359218145065915632056477796527494014674895683715770831669827040047989774201494319994678919186056333516675489544493781471369550659884543500529786317999984416158297194416441188947736882329724423759966764392441250399857197631841217161780745932004956441080452429690332119413956905442390223695696368805002549333765695070294989030228434580821165794168092064860531674069827088837538378351915033777007023368895380819988532939420273776849907218152994339627133796560998352220426140132316890670225859301426598793665886753153604294958270905762112666903852173320598718005485352432354234845083083504122272242708786528124129803689309868804146784347483321068228326630932080764366138993888823945408735708283763486829530453468186730587464233176534689824749525652937038795697147472858211058373756652903873254749298736554197394878409829134243634009962662965468065824202746066128695214156701872079111436263085113296752407216260309807452225912076691180186602380439077539565413572117839323606228898029780476172113456374637969293670259430924156454694897938229389316216196080045191360673032306958823902544340710029217968611079913290179578601257621055778000628516525309086728656613756167165220495564796787371291517718512836705729512076616216488295877990720584647057754353105101591624353493311882669485897115256441908423715457367375550899117685643970932544679828507596614719200399641856709552755804180706414770133638772383650350253502976325871506524458890072359341929222916484144333931353127843598148404248846893857553523317240845465709871186512586521440768474370886795666999067594268095783714354949539926986743315624078835566643033039337014347950793832500198858565140041923917123132040220991380331404139092400146063910182066266866405000944554828496497952898062850704189510760083718473850522957734205488546816188832821329758591678503194297815663890378966794497801357573710884294776609771092311507790334587486063774664569299563335477078328545055924724673863178804121389094592542317014078953162165914425836132299309925354491679869166089538017906057719987404018506011139675648260156656197009597881382592797929809845962538568821550464081093222641138348865833451234741140374866272445987290628894433879543625330185008510761063941462419202484497668634444919881272566133202096397128013659248174763343055965668638759635107156746437960580609310082834179744942040390123165983730394281061094764339658937134281479862368886221496860065987070929908529298056505718666702906738341012363954033646119700003049143164329635559988574470270607181969339328980496200945196107912525981475874840424495266750228550539681670028072348534477702797986110951681350881796428925986185954777795910152197910966016777751104357141020303887848645574333464845310849624336489746841133996650952742646257302609344200825835608690156592499105699715191491070761253748385483734280669580190233747689058857227421742653015165648837658426827607725249677720360956952549727919674931467165695218898650623112513202267916785323455268099546985522005232785798621228114844330899408186639280116268992348551398630065543497806286575258793735495785146061276579910301556865296194362704165919446808137419731859002649198758385753303955945744025845901006337306497042156593376262940569561074681643437771536130505751666251003331579744163448179673581372735331475045015370726390223183757960387697125294803518537704788614475015182662092105198671677922901730718269896919881394697842720827265943559166043879355606727289456823738915953376931104153310368383687028091770574847625545842237083896724160979806431305702036927693256143656066478862636838250098560580330406927733124597583085139802735167352801282498813160122690820833639182308524944211680998771643520085377115620027600145993645075239899963124824472520487426469440101470010791499372623016371876776020305603255104546608314716665507885115912100007228129268808941099258204846728925488566491292386480472664924557776492675768364223201925672102066680041597405548170136726653950575478476330818216059129840621739296562937574992595277192322415692049771945610860769689325036541044361516902419457575910862831733501113012331417622619937603367348624360092549042333539841842873819781280560549592173238631363699043634735849014307547650317757220843813645714830545008486544862272531294293492809197250610798376732804005344717537842492349732868426159790515757991290010255249059149491238793501359125002439117448419686691731534834669143487369843365350530620922948100158993061019624517151360157598971128688874990030475560827712811099235520450668664803679770985417619361418553255517579870052117202134303850676636832066022870899399437512008760144115215005602810245224115940380693602507078139217078284338017827771492704020683154251045378226465220957962316254311451242918349356131689934347265150418133466893061311812037304278088539394876463872366836358962991476795275522179280324722958645187324754440718019913312618973295055192967690060418283667679167475664139464642941743140107261780742355457069734631247882095636172175028362851663056910136461369933416956898198510383512497520951144501104581740755464962809743789581131863839736221599479730861405869458135234770583464094896119819856889595646941706333569699007359974720732885365195349910080405971464012653760057852532811982212212418814859054772928763661490803852406477856085202907956174768600000226547571594811358104839137777833713917990652509901173726621614081768756133471741938577946029794342039891282031327902789224939923567342031742431852090273735853514008760108048639975324182730234978656054926067005399185340908087823712843172837907221295577278489599189488326868360036396692824260354204037380639998019618345824825720530675543742962815620511664064166545183411969504083964789334215438411717979551115640588849321540393592895551506374437895468379505621252899322465489346353861546956126517786121905374220668038611766114646037063964434254396872088780758018594268709823205345502791194674957076631173237566002648506227447400974713615909971591303509907965127997277294277800137018301602648869793037475940634931046637638369854480790514869362432379410457619016063677776012332358118568408151379707906747743592958980537821451557471352419485611247496043092170155921652517480855140199966157452532596284782863460644352147340058969570027417351668471246643672077658980468944307252412804513584002059695472435311025029054809642664706276868095193379671500830942550958808893976641982093719070862710726698495884835320166312557219011150220538969642924597927056265161870115555745184255830867497499502089767946168923994935112923211693180382902562537058645005554425602869154400459804214433950637400900916845567709734980729535537256385969017528742159719261976532351538289154561626956274424665359387368702301841047860867123511003557959305127377384539972926407373251888154417254864889750621804450990931871574261414393212313786227964017397388214938556632437875385828526994282359778351738210783938439752502969694921707003646092454329009711467762648929486835111755126428521007625165832591090705612411158626357488691724849261654223970346895180651242476890000334841854150558585879301167101081966587554893240480516300840005422401348139226840302625891443653320121910208931794241365365506943366072432137926424153768339187968143539077960500412598153704832972869060364227554602446955757080722413958616407821492483365041352837185371671486505613344313758550581494634018230965581039657671301320552911231684840245603487943442622742184770097841578622905119468939243434582266781329920472132890997238490191867853317214198881241947136875090090455056821930153776178025642760054152571508518782317284617056093234149238837739773923703941383296894492125778493915668977107497061772377505584889474885361213138877046246894168035814395629375158364690672203093941561716213551336015668833022640767375374359923323378546947773839641885253894517033287134855244910863054278292966819345069275635439767761641891166044795054822387265816053952174260273191111979443232489912197266580649382062578884342131220814632076282357767202309911048864244045010940910999923229029342235063887847747988613746838975362826219791214814909354676012717094438565729936654466527964106700408721773750462566337389682275941914624696696741543232629911411592806464710397646329925246561472228144852590637622445386964821409604074203860519993984441216831539456269579814262949932586606800650962540889645500071887213081864327023574202403950563692142179405564474756814509011228721884932013447800052578482425410689802847844586384430046544715361683307295718601883217689004224501037195141355723680668523145849068718499009918629960405535613844523760294425662160977632043041287447144884752159329130958886399068386410801381349301827742967000761349096597793239545308339629338245709920217808022223777689757660376483301149433097064221647106387692911659951012169091685565008023960483043181760135753440484352849433413036027905934321774844191331465780509726757037905027714400741600851421701167307467488808315480121632304172171895815807160287306894011911716191006295124978693085786447141981133382938022905124176049242541940969020532447540806491162031143154245742918922563947532662046379435762185747180758230425290136861723448948015104032262764609034374381576236786418504879481599566438887010412283444275305048990543416593709165468923938593677543005200514799709061277042268985535388848413326758551984728194407006984892692211761271197854664767764985087827539927575317903618958451838442712651670132148580722760911618006604571498642479119421582223845243511530145967242422233721794046272587525329248129942336313206922489712494986694840712225121818700759196156060521798353113311288850476638086624244795028440166804269927670206118365561394871918578350632412391985618056415810872699457060053569678123351869504203860320422840549393750135479618866746277988520764094956707296563566181968121103961315984938698223439501666973588342603286715315983201191027887731145248273643295310840002076583965885340970347436242278418086380476676049011102265804859364829732685521062525857550006153513230424291756748635653781102105624105305178657137423994116491863273629328004124758051723608381715273839057023094233720338075556706622844571594808930303965684301593508307218768645220568153052166332742744226880341980534203787487654927371765607284510847350067870801042737353559558313862777475162054879340691715369417371381252559161869141820845446562460856819686037693414288570501345279676600713945334307549804386648330361227953867715798330697357911414931783184998169967271604079164480925742719791386070800963255376845447938376347734263011381430863298882171784289192801990641048530273556822565075421027455930492077446132685399869201715583972654727393587316654644279804050374345959824707292819151316127225863032131861525569193216247107852359055060608411984067965971057566349254629399094660465527435440897821759351666644379262197572986096943868088912748474932751238898719335287843770908719926207654420461581784051724138025607497322303627573343661548122643224968770694450727598002077459020057098331007779005377115142538372816201420710519406044616814672152559198204648066048869615144075657299591854648185517568841969019574122095076061515140723638426565326462280426369053501353917341787180707080542160800321248453015842125960475327319037487205104399732608553602293027874623738599923970671952445974021964759723560113667397076341272455742390990585889537147627228902796639890176332581013481772327385600727695561716398487795565567546804517960484804691445884245805224784235405898747284855689943414781394864751699986591941713452344249456044243488955672781272964144095329696663415621861745272838966082904214891576002390559875772110902760458699909439669309750542351482917224985247597003950370896285974477310976280525241932879189980022448483451405829633190990790674285671186868412332824580227636820506685472742994090020338653859400281741152501193178701717875793468197414827138104328645068100732313655189841224434578789668497148522655260669335138193426693148122107040235853019743089233461676030279778915281099550908643257501634688415895534621574981417917463943377528476131328644111017727936213625579366613779433295708110954591071444841970946290730014595551528827739962449134038864667176867432421409105814361614276930096770997019787754913630273692922806203469871103985547961144634494577149504615747916494784884859618148969129912428796779956009943960996636922986179891041423633790664282302154141429126057353175855205989397449972903843419010826377470401314806846541142592205135905087017662299724371540158287489587181740221022601803766434348053234526729212610340036734278942803295843423379098836932956085607251203067658194600525456919991476746838678492636272660092680983829503588249735551553318424756473089186536314618277969571020209241883866055744495954685162610475646640785363175551206264960136600354080750613903236122475428767305608307499162693929108606785509691376347065254239837492559931736206449635144888965329034158862378637839832526996682105429961889718548156364504213408779109621840220489073274159894109257990733450301536349354468790748427521520148350365879573618324349832875233515531990978290927813041455455200082891869482701058689659057271103411848000535366403561174102926456468761248910514097903466680515809403433098200139200101839754490132956295047108545531708178362039869840867441590479826395177210926856535192547794354234559326513143049837620923289023611379388573468992771067622072922763190720342455306194023991890155010615752932437319855669184266946015447234977176913786857833581503890862906799760312563236822420866070117220555673472876166670535066576396370946291786017116272273660115400407674558505719721372749091503084071932209374690141934422547945475899729907001848701717631539782387532940045674509753040051212282497044212526831301121643429382328182996646849666073404956367074433780523137553885272484413249352391818314789215627143662053262816669704861046895623023652186299800559350398248132190130032260876907572361623236549428175342591345472644635806609891665200633407664728586349243544575919845178169766340405241904241923771607250510256083055167078554225832874604470119532041032072099787261747215131454038965763938679565511988674653929528155352318136076566398116656212078956303198548280496691987901896624645848050746687077343195396366333683746156603336266187413260423596134176184087289766768635295059089165090516461787612772005322068802458206467064169500734210818672471204168823908956868261935380454648186131589832996660962845146453975839429661440159064324210920534200436501954862746918921542841665749213576699976428947814100404978926953090274676252228881239842447016895033235715395198657052300547945202421293658066751478641114463150401392431088584769090275277225809962797804892530606277837792542064173056491947513809072662943679796196420590043484004114042149138327410621400375076673226344459456401168315190622559473887901794761324150441586205119868174612794961669653351060533509037656072655570936283070074221228669416008830938178664093034016040446584954292715738598191412441085767541819859222166921598360811398562184613560630802412935548175699721009888429436525776430282255824679169048312644288503447346863210014199868196013316272105061856933498445063832603499354736269117169839057429468194642152718673486462982970324187827403497524318023336888485652667134808839110236774281608869735266430872600305956119822335955074578215975950213824606744069748216363714900319747894722738707073823688897650639763991475714979927354770405211266005639333484465683499166854389911797787215946973184663923276409485574245023419684923080182464527984068789174512541438162226160748324277277967394342465277860343718742986166903527618044517781605459585071383184232003357555948553075185885346092756723818847587006810010153833512276082480142444722339764148689194955761969050742482300943975564434707699757339555036744709161968252798528951382105560733023968135544632017998383393075482765807222649265839483601939976639708559133893376299601364446317851964586091610749615893966132455757265819468447188635873361237246082069561505378239538873477934646738384712929131137468693652349146257114711303126268497701190368188989468569487938150087245874897363899676425811438118546479454389608427267020635383544846750732318067574500428952174226348792937835212013664130052390890939909807785267543629785505644692051099029487167254541783091372377186438941432231512021154525562612037610485783705788994251659626137795208193726783700717319387699472265540373274631445942476751976951841286676362943938122823352805031399249752985375018033041187811508878463667641385392676540475362378989223870610584962051378191009029413100750180474453058744281142151588845215364782749439313174242982854450952967376845440344182757632810156915328108836005218462679125706079230432403221270940331329167921255890854119992291919029974831421457882677213302847798061830130703544618983992248871434700037734830854438304398548910740449234736274958167022813528643671124600824371966035989983441025568757171197289825943353331948144030463538560820937865255470804326626036765490879032655265873455697902747677678397418327878477448173419398438834480184259231164624048825162160925044151150933713170928531401816803373915678669498662120954596622265627279615679344168163781831376931829131304206831728466341975549971924910518439792482203330694739910700465799394855078197919812023586990556142056770180959505339570171394118412841819887884806977613185558143374367348804953891999379037013980955919719989729001948499998314292614123526952244413634619970041511982743680279075773765425100754181846489406550983369239976393624263896636771358093557746049980672186188939130338792202099805892445472542606332901982441796456059211319122416651506833205303670755978282916534787541768518323894561679375052984215004348750919400052950543165257167833853492281522305382863171874671616179215151890853465473608164439342029077857501714883600999885999506799037061459198624138164688122856481075866273634570288670911750512593228276261685590035227905221791509165744800546530466575168507617002492675284370733480089361127725078156051864635220395769800537030526977519873354248679307680644732267921343736958314180754569185550166880537989883987677372290371201612841809956698752711937004354135521709721097507520672772330721451941223790029761109271355513814414086621360609272062478396342993770059133303770074295551588337544239474885172117983762153292680464739507538374347738917619189728038519255402735162707697935772329979341332253932079648817346937692930650550135480820214917568761299033723511173705343021333782113590054887875660939615912315803158618572163419279241081030514102424271053953435747324660089017535918802531665621138905127239034162021039198212412208844991332126106349100843062159141491755101261529471487629190482580364573854682328970010805680382902577836450807749303928187620054273521794072670230405305592774629280279544851834576391458754248952338349161814561661286363392968306085450793293011793473757686829892064084061146096463729332092140558395672041466548083694850718590233271093354939483027538002520599621928921022124006893680923370624079127273188236109938224878618928569676372065407978735939893258248283220140958806401039008507027164704926106109955174477466126805516768811734083043601059955667476612508936240960367862644910679872092867287487482122818841386931261606810296109515982717461207548218596477389631551879328572136910405917959017401290767556084315386430312165987531278470687833020588375165409873142421614011869814543277249870170893506192000787714168692880173241436957298506078155282638028354223138107946073055510418736513642140882404953947258307069711104039673013558170761480667662449195034951158075101086668799533492191002460884997471059913126483667578182277516243931709157429604773923067478720539419682539754665854512044674674767393478691328346006920380785980380545818423868282183972997076294579856524839673193523282301997543272377974640111040480866229742787768680113009646870930280186529212645089338194286725828912464009093204305698951602945227973155455084293156394114719600368106792267026488691670580869946081159984534448696268293151529127015439156134397928111642708443499777723986170111234069454014742787791514981951419561500326967940476973596807024667533847545932650350970113471894293883346957022610977665479436427195013155468362220841022272807124485948337806275209971886593420882024610820479877516869847901511875889455135856780482845392833574609216246331658746675734105112902775131719140903734545094290229348226825558887774974024191347968070506058028202067286172819053307550432872685636609101751611250653365752463452532513123907638685150365926557671790377477631076480294852154129676299015141193599606073080607978761936603468242131585659648331213329761189275880763540825583255820206179055288866910292061873980778068920783607838548106744339844261683115061022676780508914955326971584642940690381424368737474486251393723876222567169062919841561978311124726975455159365302017294515973943519635262736816053316874213387163011138313959151148602948947000320520406694948949406851991133833467119965570108303928371747816687539677358652214711072699249495646874616183140591710228952327524063901101391079980479181392144637075021446267080207219070395690520875789700190732391410045013732854791280904869947195774271120114530424828144120176334889254371727329019149975085462115050256642969783253378149155824685015584696702827707834625409746967760778475803582704117807915372508226931304273199985289527432382787733366626562414600914076537936659339667402301354389407406520257943878448950177410556768558937387157467726774988179648819667173526835376561570025263943974934723324198071346203570737335831570573815429552614045185817743411709072007201148287817519975479890585026048798756419322565825579672539629370571229662856374206766329330088321208684037705112302089929575767251471334976700397341206555573505100992946488637602012244030110098362759803231376870264508542670007127837088388154700858923771057269797003934119387103577288335739036011491875414852798180153235256903513669780353188753503718253649144703285435930207865256098894081474621629097913300548150272875670535988890136427917188106121920152879492431493236246258142999001901281624718671877174330045045933378894322025309756671648099483119532995224604774076231502600501041410166899720029075899705314088434584032980326761388068734555139794214949536758317617261082468664149597463002596838147467133522641948578666380889420706264775045365935892132759393566840234470112155211682178244980573635113809880647566019515274294283440122161202192172633822508223768867487373714360453726872138953643902717379819734949774602605317439538127905241705205621791047325333724834135597978675070792764497969436873107502671373214270955538580923408580277869297298166695832317661115656849700261604468165607283379797467914625716708728352888456212599858509782979275464378023578476140173217038475506898297025851503461497067727556740856976645031323639266097848363374188870530938983514756657457915868875140019142677488590881589734930926918412809967629440050992841943281576445563818757796062264258534307179560711062596977253850855337497362484489766035522340210318987900951701238786488441293238789730397088731942712671917957524934378478702870609958356645951359969878717526840212114202968749494244157041452515373170554919410883637287335115027494739018411915951094759094827083720985401616860621218798381787563999513457826790986802331347548779156517464628321307679975314145037537213987587028087472543856680833781738483010141021605842335877455266966963750309712534522272671130559273024977299133003203928578677733480461055770455533991049288155404480065643138330865395978005072238652010425067077797110099527689865898919694675253894631497294541943628784462009317969248851342440734201549879881053432943100346823351104737991790077274150585446777364396020051665027084175356595718887886283632183696110230015581806614380755394829854753629409503779829993604177782412642643731855331891730061306984675533348819064337701852733104586412772409265476958516609051999323419725710436506204292399485481093022621294066651394757142269297057892205404079850985445584236763412322294942685646608938539473999231047236446535316750779409892865087784805329192749425084314108795813867242311328477850849656898406890027798890199445229225205297298250805396049955740427696598969965484306284956845388506821429808295344303337856759673043544328276660889456019774886703978923645218014714028352925519249085494127759786808733009081655742572547345677467137181586607430435398197575322073904059982572912377777437863170398773388503858416311998869216379085242773832756939852223186364196200307215349821536523785036963894517198607438197245386191001844862593797465593696679843428036228584490402595062720066929696735741875172638766765091669126762400647343133023262447681623312772842549518137300038681227142436603695705527881584230056436707269006107058064788138436146873517853096125249902133770324538900899741435675233286989290387884185681054209697230649699687124143930115886104188615630980018779848651291882810552950847620003961666484053205316815005390657306239217462491881282357062932573197624378520856852522422641627120578999701425248600037924071711081839162999343965882120370326180633089150832259943459918716101987549919047352157467348324436853502985927951664947100160288564652673472467015074000634283120509527601319647571649563601264598225715778626743937867614053693959960734129986068801826892460999961123957867608384735878061060407671539275666991793928937586142836653140603790461681918401266500448033171405127156714358103198411402437851917353127133182335214777375366155156343741295990706918383559360119563786200699241711748316001495921175248358490657520683665229616888609090493386599976747903627462114827296881168026099153485124642336040758201079998033199868591604562236802354463458974297483272264073137043381740718435075422862987533789622980355172689918069022132623618592096004738035137585434893582034939029131358133308256965157181746729629185357470634139941101635236438567640206483042337905531529002658669816216717053520708802257169276327387970693358853672488876050668235308720757752724728605556368823474274658832754392942458362965188227172248863507783510481920958901582200754170407721860018707408531328082482172034443850874552440826660410328657607373184026182947971895844789467676258429941152263024441151107168003494538988850905519403516331860884744107567395629817085579075070006049900992762182287546334675015774969779260277698712966258219077668520155329415256493987973841273793735444564172038346801946439043966318202780805733935585112276114094255872408151691016943200990983527730641477897870500974227191333013200795829921627305580112928571826390245779849233743763173395451999440216641235787573818632067032125933476194679164440025100207706812692423410495283589834349434316080424418798896923045363145193994581713690785211846502666621880989914864138710068670571431150542932941411550278874043125921705765180774982217849837584386421208480127639495792801140835679391535423353890434264942457203429140338190808731162918444864391295208483066619897959579913675208222039339355097511007418796937304379635832887609169735501048391354064554873052599661305918892534438254678084867002140609868634124886943171636541698515007227294941970251917272187482270420333949944146369761806497426577983981827706104221260370800551787855347512407531725199479617214412374539695206715297187639360019808437944419343559429082793588525330934772207097696206446767739252536833198356248438316381652909741454391787122127773249043006163421100966991746774038181747574056425148590015045011362870528185568926690646746667159031233482812566635697868552061177389066512335497857670364022604551032404980072707843811094279020125606048846473339738728909807677756541211116531317629574348625306815559813683010887939887498787024867476687443577533586784949662719454359919908668089453450914766558754954131715994761166786453717737644211069262234179416500311276211087122494829496636793917789335134510422295897546832041324716150282848776992643697884137548563800311395358660413495111985838057044795790784314464562019380402019118226300328181994827269874298152568270205853416045478612458622881352463903650303902984241766793873159595929782648906372506393352202330648557422322879517582147482264855896247224992585163089008062223687898321351819533913951493740378632753447378364642715410452163416185509831944009905490812304384959617346921833542617403336172993273766196107402857307452437054120028514873615536866205203947037624366964712526961774762957270908160795452249903557791670052408447712947996277995187840651860054913084638257793812036533801411052840736289709607921281635331540786354864405746809811659837806802270562888752965481884308790992933837903792495440038004296947113400249576277252397938979471304624919848431855533511632365128283599402355740342833300180685029288348601696042385626842470902930354680622013090018364335195070604320817778912160255217380844459161206243895298216271087290651112146783286173632843662904599374476880874803669478273371307636211055517200323184743448220029435361027583396788079918319076833700512636487444392387177466265226682902439884303137696643286832538488110625045158104170428681236530112657022441413383996352916732676443128917001072054140105813436929742264175571128923593871593452211478939155082756818224486753858307073400580638917393917176616766843834566576790828843025767744630671075471861749406583046329584323433810953911652715479963500273109376288304696729326037337049964640084452695777835878283491787440346984462235752037214977727618995106873377977113442886266086329928735915555947160674398535875849477025463600643295663368617397800405700527346753747472214728531310336975647919689619282534460161320300527135372340537878859501015567076338309257169044762814827050938648539840285366496245921573626183791311485510991178206557144108571846191397859726277585550669881627504121219238880723429444524191962763424458551528984664083085409524877677294803005446951358717751611152903242112985892740696140630909594909725559806411599056679096054284233856577628831609523346996394122598276843936689907586204666011574450324168908156630575521403240305882908767630850363717109828372731510772757516921063585902090352947782445298163438430798475226208314658571018246533343672212316938044954695441353655858836216642013892585686437307785224310348410385153536111770487903041292533294128820834085576426106720297268013432593408974008606897620278815968189031282206713819066416428635553224538663671470825167881283012720026020638793331467349976513868374053190253202417942165157850310572201092611080208022127283962606743393264560649620933853983763399516003832129859082070815667639706204588841826552667196440438488994858915140944292978974590806410389244508619316994351992606975668030290004772807206957668715596604930286060476285720745789535302645001503312433605375443236324399629213878741124986341357495293148132535742992201649730274126366190158511614929593712451306080653141758115673168429121514748751991062540529347044484379265517572871096743129669696671569725573556104291901859198946206299220148708707459191487700382292168811667496991903622485831768605962903025241582596436167178154326874818266034679941499937031669874766024856797075949125181635226337963118111077655998991269005408009464009910051490091149353540305275661486319092178169055765923906936512819739432860015069687641141016913131581164655162538063405719738791164558464766798667953707994088928422906653534365861133700472736110253143091425070582207491004536166855294352630302535268247205872875776976234206147790317918741530364786797918467253697676987287025184257265561709890388575201254899678628186569356399683896314971079100876419301218428939164197274170156542859769187615709577742643903973582713725008280707957076888046044048840462779249507586355537148794068785548556199332057975958411285968831116207717991722589358822968563715468588204486911367120949027530337016679647918300632668165144383750300724737308160073602734908465756137028898747295998721705077435193041657997727626703829614289715301277774784750161828432030460112479460573986460922312829135743902433370719748698384377654226674773276993190996975775871390305571832632826578149107801355005113207861050690399321205473617223315805748144989256421759223956677092692569954268217036872484095268265506428807241252457616223533166379848725900384411569915069273634794485069375377088290831455378327644463132021478349569826435666692656876539534924726663899409162474248957569680764606588339979644808060622835746414280012517688705152617316620045545188621608147004736934311978166580458581669902546436621885717349612330314153613146329400536683443425886827049005914077449639556777855036029074787567443148604087834317468347247218218983404529078653034490144354071729806204443759434372241267176126523275997896672376670939413175424773467552816191880534662238186977339217860029353180366503295371362562606121003276139565073849638380610219192998766685579432007991010075618433251334064776359503232787989581324957624109046179484859867353692992030657817281925587236902915675694308794783468374288418702293636652899890665342724659689830057058974073461860200784200764105668167949987875883398532779401453682129957870845351943446655333152498061041490445256016788036850875371433128501006060763636547150657230134367406538319149996613410826835405240721911942491519572293879912003951499389884696308508709141936020215889065288218270031706388394917692020045606014082737629727862962268728451305896841352164560382708937740779672702659371984472060731605640724950054050001738015265688945282722051803778884814498983651273546203818530858458369339647766811722291946223225621791550070010606865862605842029833982963320708043998917497892294725472426200246481681124011153843823559745483338440841917214083462492399448458963570745903717228926122579348619683917166137592890912810100531458180652173706948131361382241048569823714877373427354286609069840388566684536761247631206559116899752579249465138797177932300872012076118744731339511745031545463852905802313009891074220940338452550087964157428821047337609860705867580867812540323145935217222570891549086844386682010152835200128980359389083275586656821832468729107654199320587264673987325152288062617301331687319835247458566911699675496813229253759835306245690855866033202918947804326376789564306167033268662455837557593093739300804186923649689342852992616582476768331435930779387008173786459593231721252468050889532734879352400227567305380810296045145061187474903618119546160812757277932498005802467831108846155216944933658208764687476189635080019951377487823952642368285723424767685226682832317467555349447150524359950894024447815220611859394527080474256073367218163431298250093162637562390011576342277837571275052303029856507316197531164217006767737248937447428183339106458426344629389600414217554122157098631572060469357615254927757420216751609093345366125957544926433141772235556323774805675870714385382442358791644580106411872599756901287960907008697848916175438549827351486329760029643772283903300824799752309121843114800355161176224852043009138538592052649707823167455384979252145405530351518189243880230743303225577891661943854163581848492406444032867415805455155156155640532813043230006376198513513301451330570979295662681490973677242326520198028331370182788832075668588398615156315870831048959190990994294132357716941132230379180369328113921285191814965325111604255121449938384880367573642281120305809649128508566189753017788140945198676011856992876049476356402331263819620193857208451060559993975690723189336159481279752294957665682954050383312147969195732139196246860397066844059633670369477186868465009343099453530486190375146874838281581617208901789012421652612959904558596628246896302941543440076096693657360875105963748834281550124818962406345099685141705628906223397791510192141424060234004077323449360474205270797603464021351304838115494500392498414426601991338400631363739177125919577837613816030929520086373107497834733716844029390138312446023361342283025669355025740370673129986246364555417403897360948222734163087035221213019679233213646237128567118053276125233501809358561546561092157299550025934154822300139971325484392909506913085523870210558433080477078444013038371113851622728353994738511098800872993507598626635360699003322297983837218434183005535369177105878879589872176213059457427306527248954537417371874859000454547543960206266993121231384987610206272889541908069410675607011373877796476604645744393645090445159144247246176684258898387479122036850495327341603912939901336203342824336900953549831462119965927640450271888645506570735506532835331581537362678432580766126303327426591417037926821018410019099577413189640586161883684203696178823450074447590375846405281079367317301904582673656986791880662189612011894467651213407461589486702527064340306207113534470656995514376162339222433358580757630619304685464490548939866497927514810279114752065530152066642948222766549776020073662071109812744392501566271901638667244384591037111927695709610629154763147427847395736064606079967922243160751948600769397142554942874081866510874499678341663462310375193633368605963853831162714358714797795886335311550808513859650187690171460355715489507304206087483056079645883870231651812144226733191956262551949720463974458876733261342499392431486360684061061757824849138083790144608223952303958259062524399806696015726847438979183818217272035105989090315334413633708637666419804663129205080051318721039114556005961198465766974453881706771146451046909402018738302112062454783930837905571182651796863823749999644776266343270138562342946152313021123344848484947305528939942890934768055478701011997771728881901753662902504800312906008805315588951495713874241336625273105732680727792218885750631920773738551876790168255089287166698262772091608446601807048414667918618143665137800064045121741691010339483327017006267179708562181422242348962619534047346870450045642975964075478428760225329175176785541411280039415386769011418449805394671657919139966728473841622486541547690005046435376452705878337451327876721575776893700542867493795669564942526657757507343038670884208163410283461046057549983374201365552774367979737809545384117444673730841684241237822740138820922694611580326257644643738167992648222046398184043939114449245741193815349122986385374950342002122497305806922421351968716710586767986763622655739839228059226174527807950909696560829008711100483020203042415158754920514636548759870797410434852387161880996937676513316454143517308116958437266672185090279506953069894519042780325135931316745919981542736962405586894375065418255396718866529036142160605738318942339152850325518755881206797406681445220874036632715805283368447337990040358222085444081573203588463839619995753019800966480287559448769990429479163631662855177862706826786492923290043839596609582759621760105684207669796852011162468636629909321540748532966986015085341959986551603697519989273618484570924500289760525841035089113239603313055787150399460041552039675260938677728715893865969577921937888012815452418908979464115712827895151403025313006673873560457757539192112550545268857854309932555262298774741224907042162574856486604827420629297100535174643521650709917494787520283970330576314748844464785608582914588086113409295764543124337636016619250347396478001293641748328226774076996160778057979627368990946441230773875634855837744931233049057940296202461550748804284227627908367471692065139865782328458364659430641462630116147627651475622196362691101089973329391070603902336642520061517526459536736595887684666859635514631361267844334691651340243651912821440728118843057786534649987236660131084266532320782965576571990835945220179633656846277837499852891735180809888110987341860390847545841544607717831202893776377878163217206576032093839266607211601805385699584692055656004223124922671829080199456758299445784045961821900913573030622115779318464385735061015710038884256726427996973285693215530722939525935627827267936052269936018097352130609315302439857392719726404490880033775377867277850151210719245047230297119523404001837633809281189059527709172074305708068271525270024167345536400850079247238354723981358776126540742122912816546014889992028011869582171397255139926788720400519130833589555268856544005315548932575604456521782785080238280139911831907936134128596223998279157847983437364324694216635147463939003111602851083704349211789303758794838290784312259969100724485615337480514733946011799300598986865486264853465106782647802499484440860591893509647795226947844005172221622526112839635317330718908123956109055177216594486274644007773712171360678284659321583994896409230644491408039173744548608243321024578062090048717056680463536343382783592717575600802777454461890454001998779483402057597299785222628325127120780080259075550137017481637292306457720957470234244079143683666874460089935262240971733896327146721713494308755622241686525646150688909080908396716861878673104936635105136090866426913450334321954658667040840456794950770772459643460102523286843245640032922539665549409677602145228718243227100446973746320503753451279887372042694681570274061513876903186549183152336947739027555990093479142127261595059473070753346226400841620818901793025092915263979569440504998386860028465642249475668331535889364289022607279977747962119056837707386981618088076998597791024627795021066684583020717119351312084454426651773653810416598955208255586699249122947816714682377909858220306474393213139526441272961443410163958032507705782332410596611540029683765813039275589943285088167240087803908770267376916826994988386526195683981909167340450912224004057327484410892592343005936838581421635120065514172763638127711476744541340089293701392706870868749283611924494480410305097951829073009350383163134296017701322083641172614736841554075543380814792105430757463057890865067346191885418820824735594507209194771079074490715129094016389821682888372584596147408652029756530194387417418693693897507403884185302476039779018020404038436478348802879665219322282740407296468646597586894799390658966144303761535801744283245422897525533907333849170248353345733519840194328628640249313289952039536739850600033538814285939919503202371045280381301451638884963479334194817204508949472087508248057606040313665504243604437001872115835141961154262591368595913118377051975422580310112724053539385263026320310582927198360446797006901149343071903590050899381478138428380540728808121447600425633503822368993921378187048613573188869038795958941032323227222832879095278617299544524637887660261292863048118033916463660821642172901030432337477653971846774570353011122917558107897691835739434473874761890326013799566065172113399672281573624583715706928802960524682167934080310876248999124144573157625750351627146940859371412401699443575329525506976841125265354891418473994631147542330214514225542636815503242651906621523132346815175468409989061601522235023449504947669259196045899025100519051918662918279315074903765579484880944765584434628119424589105744484376858715442159252646820015390783423603337997270587078922190756619165483429800939555763478935574583620580670325932786166713980575360971128603649171952255120919133358663087144700144718797017287414443783500873472984004094371958691910648994976587016872571142885141886725851692429303210500552515072482141446326299865018894431432828456773786687740629211923534768222117230247824306906652903906937024577362505171267069830014644056890429694042687307665466405334746332833908796777592864319202848010688172530328570566542854991534518506747459499523513330530859375548088122929690391378573867498261922752807767168663151476197632728926391779543718029961359781448988995163274115073752060099521271264824858171809474623984811642962017823572657766148014828872824488847812975503766421106654966462684311860531688693489391669519746344680788759355625338406407441962529233620506776097457321700887953551367934985609661321138995899631569027956698410011169121722890720813275147606570117162581042900819548211413356831835352310779650240000566830830522517844251391233360754018572167459160925208280341795748306905342208423332244651152727014518139810234728294447405771835435925119269191531308100604050574635066319341648426073218436867089030182862107681654883238799651066032716029205428596781347854887794310660141432191275917530498706808062492580000357756472591960652837738061326528080872911211905151436882229589196866399847697518084758381774298096178934427214701878724878438296344025172777631138716983035444392374690385727249780039504870413966121036451786506249037089072953316292014410181305757631720485765041939427845432307239592698080001373363434658396762044944267905451801862686609774281524489085210126795946662214702773354144545683515248915008247977535583323210378004236141088264135298272464680491729629356557334713914749114021355951310622134663020541205364793050361408915862323490454073956945466901957288137406897829616121057134347067920342144513303022310994415241844527897980863245744511017870591816593415080218282830271640038573169799945017836801284069420586409212401438866067017039123808824762427105756592795097176102922422838804322921290061796643460154145785767601539876432198657865742666303823054336294666472654282171450482188101438805442168572296030293363363190265235816263085948765969132476629308189616631953771008023571256891644351175652559463874007202159833566142232938185165624412233132015343563412369401967653682219364573958111901621572067101306987973808783636304793407766407740792695783956641448833484828961309619212570391905035486069955429592325399626329188381326796226546844538259524409912559533784762905599410168630738289216934498251740151958756474232447108473687669252714810604435244807924239194381207526271167333828260236877831909710222690138009300498914459084365478549864293154199872508884652597119691995891908696256373631129011425224106086625429512990121937215182860514693685188672199742347241480718989954313489742025510185852452253175114289923729518153478728807289637837367803370377365136267431920949590997278753803116829295749550615261362383637751930318222604180741879218219870410797182349155142129482692537585912466280664133222568306750230358914683468128230326550676836605265429708811186903293974045152969022439260111408384696852456134969304132120936805869504509794799468165054201990839935507028667150363658591137446993705613403210846345886372349531556612078070569418109836130036060958234150646614053419655051417820484178335301962158979729652307233198287639398317024690026760307712773710806799017943938638815731574765663561464844794340652195429390885574044886700543951041660577207011441130867120956815117086030325426862997486412556778736164223462914972262471065036340500150875459277907814706769002646975069885030368999269891856294626474587960771442100413796571815409553729775986688406315148811002938443040769840608897732782506243007446978223118440792592004334703855401342528133830134444945089468370390069195965204548159262886688576362187522943762721591593724346578035750567795908917632300273613273793451886976770196701584037255070256550653814962998864798020191332308329170025149564480857758158817077158816622354372090452813252717494668546587225875803689326973408722242449001060412692053504309022000463837076094020088370404830076137425624691771884818587127963806086649710795315189009906492521524467294184472549297197041139278792273855532280797440347911388880705096662069215939175925700263111588948305204739766443136051020061446745386963108089283194107586126657188467562953076714308617721506443581311341522855652629240216311581228219831152929066108368760706882933935683506040781993210813808802705621995551108847251612125218066422012481366746776937585806333082635311658376238970685982034346928825063897952416445961049863710467942664509222124814085849861045872880045760829289538741242122470133753831826636677720811797582715772696551515502241669363675381430017035784296213990386934242334368371183609492477889809469044887912663401826580797659724923896708626294430485922055189720830771688931889835104555991301704291197493250250290193432118684651277064863314330040979589230500169981432972644997507840051561774274975998709344377445331559352516743221594541871673739431091006305899756635746689032054551964725473647871155171982034300761650928690789553638187623974869290687065584374198547364699891751846447505011543958899543831480082493562379239747802156527143550843428807087390543741486540369266211784200028168675183676570501486820497371579945725916193310692551658071324819223244196461841443979571612172236274463497940448490577374760777771043278818367066931358082362530677771902274829424074135058629064958626206349928734005370348318879334911158704604328689702896573669058816143652165665564251058934143783774522976623682929737166833687246423715728345652056346537722407082839912551978699451813627049235773613835970363066983146717490479224998920547990752867559879661696624275905949775425254572647089225892407977232047186538905886172404706975933268326070757463424269033112129882362511574091829628368067505324855569120442871106251044453031681767979650620836109706042308432577185796173377619120884666865485435110152646208896088911581770194860258590897307004410836327299272465917736914767559161477558214291250410813241201103514826066471752247281934423981327322731693307348238466043493871968813089190982232333903471032639498963166139459231001421337645612038977015643125766815004077939973138924375012983411035013213753551250407231739345647523213042011850887406431494224771996874864205623674203920441199156177806679665218732609586254625385924268856783132403158327512530526529214037135780169936372688495966106378033211644545904178234733769359325685198690293927261278837912676841048327807507285545357709088229777013510743791774904044663670307820592072496421058871864844119508348960435930624574854704602772404565872614562722724309537392649239551959259133098968026999777426527031434838769006553508328814230544529608571303790717900927655097022306646281458481087817530247030756989803317796644909845881734077545379503813483691589108340511953133462631146961048256357192089410092213995368163047136172249884660344182992379220356626592831540004261223492717645475069718176302436893953214646957437568036677027460043564699281679493200582820444149493360598957701955655027104388726253402837838096652447714600794417614881463548250068692836883763386293459725781327653891310278960411660542740771421755150497226844351524565355562311768701181663947257609493776813478028594165100937978224705715162843904319247404750766326206154132766750424516013959077103308194541347631553955773372088757668935027526399839961373201078544372924988727724276605301918376077977884292534844401493654029647165743694865738739582090008555213841915827625388829932231064593116231101299608629804159475281311195633007523674530327348195837970768008497043913396577010826282216705106097782729155211081438206959059526482596827676179168988900082246094279018482011205255556970121858570320806165861045173393871683473228707484628686338124448808741353043815078552864206021568419341751365235023464342301358892905813149015574233190475581959032198623034088074092385902759078340220322545217331493433216747379060850591353525361633153928686283119589239400235413767507756209150678419614145021749058709302406623501972913578265170056155607860207871327099555493576522857313479372010296680352950393178241280413487506764890651122154104531584015026626405603225620853949527002373446366362831331184081304492636211694058431750760758276011188488868829415126933503273899959218518201836233755167021255048393363106185647410893399649034050121418112459687901684249417087280576796347037795435467371665792987441498509348430240103375723414500975630735782761924612194687825462256289104692160416202130657256010657493623996123312988210366865251138386624167532234128709302353479793195280483450765589488086655538710824369540893297258029909515989488151473509719473825998564499016212396982493764671398691079870630043645751339077361766495095141545739045773707703847929621856615706478979594244130404801379834013626339672971031238473879460448526370255343333282045193692562618263559880167946666435696848130796282484756849626959505230696286472662448618161444372478708036163400621699297024195064951729554575623807742383787735764738086672886413212396707680675480311371147827694407982922552859454305591493086141172768906377205638358198086428287740873184612911653776571835335523393975469210649665701050692000538970712856315598429443066272919452686250057076660477105581695060385148475795215947845150858244291206724466527081603546826786952024994676021859472714329846054241781174608539075792653809903017649074447131096372192198452288156105420320516593402370114923193242960047911542084674971205918202248591949487349603237592692252092288275526394564863976886574720454913613569529217623513937537942531941877142222478905179498523274766655383121764469720192966537387601708471961377078407649650108977755448035573227094689971005316930885919699713843662294675309605323563437720359993820973728800111627488124941236989623683276082517601458989613439389905117300344769426721495378052831912948112741599917639789681462508828157789420375421146349909174509770305922432617635763079521019164415165723561893400740814095719478399749647833688270722861445295510976990084086479213445520863778231542484870906862895526963450119470477601126279650987205816506303829983848919384452732421150219851052983301318309574237190619517689858558070181711779975164499121553667626359196666767411756983277803169186988962070921981417397398177587463668139686584072348092320214473393565584045280622615888764846474576901058367965175426633672887148148943715275200921819618231305297089672424301394776871536050824298466280744002732628672925051843671120675796175536893131247996551407505204086211239670378688255089162666567579185996841376363512905911816171798628478482051214955208934882616782940088192902701174578168615988859001783551519524040243565572080900535943327056431811795003580780109744218295482839159236525157606133468012543244179015950641333060561914483494916461286996533940794160822153755201040785288287504296888103717492039317016980322688398634774739075519736612367931477547609073788796468649144611542330702369710886288014850578641740891829478653907853745462529299996783808051116930701516629374819283621385761255690901220283504284092151459322348961082758258570815806982369259685704526287092996695070984750553933835395085477118429900663221098961013764989440172754163188810101385548349076068529829377420581364287375205290703075068579277554021073406373770681246573932590930313112235396645421156464293951853304820476010737350824224753061222336234686010378334813871803622785858905177096115818816379700541405191722755680131409361858989633283208664119013481203996861084466854368128541029407158524176252301921089762969221290151661764503286149662359228495644638299229395229797461804407905319482561492526694918573085737087449608342442282753845234277948708337559947368794711604845025859230944406421092887230764993624265687050201032463511880291174190748275887397013255393327982476027973535654375442037917258521349704967120692354872936863676637805679357709451884515524283810625447781947137055649079226577885832237143704116606280389078871533912187355763675451653064349224784457965009246026736481436456622623617175001573234085955650882189115068848482865361025451253120602242403509220069610944785605224926950781421624583013925703548965453269293282922598661656070808812087622127053586940910501890862533769997756241067180325369685382383418556672212889244409902077668951417125126137360100976033140271456366349236326428309128000570429565629391484268677953338395040897972891609188801906051963870665697974933522240985112382879531859586632960456514035780657201319721423882841462318826061978643416195024300611637538576962524369057606289624561634591505518585888240107076655174665123441009868845711970096999177409253914301487901302084528272676095334306327833937199854978447410643732325573767853175748772857733212943843148946707760616556051745584559461989964564102808647563582945045269169647545082786669310143741472885574414496370527031855718422638146380845854401570497974093824990505267553779453509026685378967979110496989540920588831554546866904285822557849890177995719762479060649338836121447302694321745187171998870467550926055668062163638719138659282774626120860153169623975471036992662329851025488444441406297099162855324031572772897888476129311942328438397681117941178264715711081079597963792187278217248724173669276771408186139440792365972490597132288308492249491423772982727353757542963008656752548364001280800146279251799686825733373787651771474430917722284533820102412570864279493728674598292111841274233257517772198412627726801663450856224441750253864793924253938940912512723926972865962880482088916551774235913042627229948115413630714152359864522773497878473591454856238862031149849200376493667913190851134561816979427677628590367715362658276824981594978989037150418059495878084840728605519523425934608484628595861504867485987220983533628708829826754944080205281715821477897984330257422305760938459126008638516962763274467582385453708364183437692419867025393026737980058782453194197010677544679082233026705208183777364652470593691976973277188582825288798270572075274741824868292766052989160156848474479216216810783545330725981132237301986890923972178412975540960352119706501580102528374497255386149999350449053339764813442889069198351675703550193207848538976674957046244899007985777157125508502136642815068619691001278044920366727013296600963932791108153028324683337584567080408373398058248615055427930332491475697475340382670060717215412096102161528332092501653330039978213867657336154212816400236754107566229902571194423068566998090556351025307269982003000389471873962059641528923446002757800838784550251269221812963481158439854198883529733947560168544887676308467666815233469374802488539441158144895365342106137320838694619553402922233821371805553431695385554746024275071426309736013126280982004284625975775324363650137679744168932314854511484367895945854025026301999141909905451246356847324488315403492262760393591031335587628364330816195579992048147696631996699620973675541415597787232424939491478417441075870183661825182761285832717502344554897683865838471372126278824351944047128276367624204500603906624786371977053954448533318933890208723539205974154805708748429948084621775681218017910673783214270889456210993236236484936161814131557116761140560187464869793819223802169433430673748807840706626457441738585731257620185061493712571719142153459747859694595266050668459073047161981447710440881230222847030899048064856573171083337172565441785949350438395209880905473859729746891334187916805704426323077319509251013552332605297118702782444504511627309161498933631114523359203408108167212827312622688053964302389908574615759568112513311875604491657366222307061011823362885108546942043164203029928071086842101978758092881423583677306855660308107746047356722577262873348882755865130156435694858519404620584371065405082186491552219354887466825473356143219349114010855474321684689987700033619031356337594025273362792087589915427395282488130338767783987577614112142053767231800332296814237241856546529677690708507083980760187818000551940247968145084758330048791246078116121754326466087974349583498017522538962755773921561177522824124400011978210883542203753222090272835619497455007920959975198859012390084154240677939868013358055349971633389791505167076292126106076764866894547682557163119366273717782003712295505447800661312600034685675143481989060120058955856258137222823869377620463581875123444994498321199132418513852446200772856754128257458435501656601822449116184695009779183816402403187201898556196891734881153990384516418487576278193674676398839544951870137490431154188280678242743973105659912179166837840252298320139591698547185063338203178940298866478224330750397056179259460150360671742343496379307212701049759512059618604948772752690595869392263053146155592414986903808790053337048272704884022866628730415634549394724399013545032516189636570901362262049526889430953122832406357932591360399855522354147752812515567435358337259506393114902245574015321154858985536370135539126941523323783128853034731400577762079992620141229322064176976419081247952916867387862769457262723958625568561437504189968603485223767560994744217607175962325021941995273523553118664143443361327435569776555998038404912170408246231771318842879662153521182344337844073684090153881535367369633306253818592787564275303507220464174208005172261460734116521208601600863181774852519297413141158087771474343954793364255000597016647592340962257849643942039276616840045463680127353939614542192876974434408914865519681800676131480926270763361243016611902522648624266140611025047378869077981954434406821536269838046306750487065101780942085512758254258038730668568004097043115804672263647240809554157192916531594646592261556307655005402955599994908418010130870222672400546885269055026822333534760572293340735250707920002999656104763864069070411886402502263529483240256063113317617458097377845937383455284402046711915239810323601022011240025889621171887605124830848712311035092610320526447040489555470921824343600639117170966947936427238545385755382129060104171927368836433295028959607296900159768103189211683159332395791112134083405600940822445301169781942652267465124527760995631014422951393492430405414008024080821732921029798932531498306548667073910512962998674949882972922313389986559434871012204076157496839692973194789144058230836129910238372773721073122715863291227940103871484787149276703567579140909951505737265215787249090617592969144604641707485735298113370015199152281441647775716638539038134383478550361213555437341775123037063305414487308385480092726767353051940958916982937719905522291467484723914586459218628417910133298763140710143639921371601620600426819228541826134539218660932110793021199507294414476932214679819770008008272959587972087730652181441154451700869050256921524163442513544611865636724588282221493967469706463328554855563718527741715945387229579614228226208760011350297644778185443439675007371577479034837547846274366372594904239545720384501945205783785069849395953130203437846052517775316558724972102486731513622216073086494958189168595425961380099888810106921706512578110594223352505314848448268754172253505418936270774567066108402848907021405582292909426382244685173963557732581953899106293184029628838089732517306705205022154683975666674791173905483951280462562622431975003714470933720777912241351533578421222104546086294103807330436611536968771957368049489369596638280469515605276746554735561157578267539408602811795047588363755082160607160966700561320316808116650356723978165438908322974027803879059608833596611434326137257790690238095793066144718348713403938005159859278412232716279400241616540564913152116039090537910037014227459761320705735632948506951776143258637687218676868819077552027988213859604208072168075586530528687432250449230374785102563266529703990714852374722086569602171427158006256661934690150665560220428538795728820150357574265237852005648602492076937958575444956561794710203319639891463240871449520677589338623470863307773521228360454381754897906507777599249734155023684670506193719846426496044229550942531171538333414679032677796628999476340032801667719350169428026259594385137469146579842908550440565033771472014845269597339753401909694670464968881141682822727401577656617295899622363986955708834100434420984988271043873290270281451471501949652199424593950813971892618471840084516185968190245076984787706631406604741423639405948064712450990321890835501483460029151918126962264525255598124490406890550519940225110439076324311590714101945503847280762583483490248480557598772356731584544281699065085014531195131875954394459109765098262819506916028737051554569899064408456044876060942834218446936525218129707217826782933162935569801558815440062662101114053019863325732507843656145776592573759900737253884795243566547803787154882832564593913986121588183592931424412453733588275079584534988492616340696652393865599222476801086434835587148594561858643887695927328894607915253200651845672908325930332362945882435916852178326652866932704235743386914381812345381257547999938729463010889788478720337795295935826711406557882808001973680504259470769082589532359363110126365189350855122777870675875578997630902699702492289895746301313581571807629050498651288516471783479126015336327158704398557412142136514003324721871609537401927084802822035067245463562338704078310154679655434834150449086508915147233694284384920737061770493107972613144506889621500616296073480275311145451539300664503572907924630356175164967572116116757508313103647063462804376211635791749041612632980266521834300720128630448645317907846170913974671276394887911718757457384969623352431703464304913098113318973488469033026705663192735812626609652773180513974315404862963526370582663421259616859286146524698304965282366728475132323121228068805549194845207126747527034877991513347773963840007134698998669821690579120989641916149837616860067977473411711947282344721932554058360030845364083501907514863136361062711810526513802597364394152579623085564879680329772805913615905250700655230122323883905810640033731184325581053642934039976678644077789331889719152281819766026445320385700090768819739273790115363548555945288646272535869547650707640150025706270353470949481267065616171397869654214527746962040569076752713240158893892619688674360559631174395107097290140421912548169476325997944709078861058052170098432643141838206622211236164574791065540020489148198258346336071413454925890632704371223706358190679692821587460441193240668104675838166039350112188239710421907859189765797620550129916539033615930470928254896372806788883850499613917693751149722852946295649681294237695073918501542347705338770958863431450810973943745333010143813306911780709144357715052243004827110844168132223855777892340403601211442943840292870197222029294987711090591917501121000326421644448894537178930113738187551617471303082724111747845745565985381530256946156740206822212267597814579358449083316709488516808459064293685597471903933956313982016467253054381465524622750788044996984594660473461283226019255787292018289255520277081945642993581455844077202487121415047372691663197272532323623450216560093806832274910966918664946682088541173352475617664660042963154092250233649967453706557532556099267683129219999431720946326819658917796510670614425840647331936661425591054707156327059277771659080611569266834846722635836767872697246140534314556855325520043242032767403990992778665256457270721257277788257453830027258242089383307709034103137649822403164245870202271601437586061440301525717492626388170941565843647669081554146859968433296779032639385535543507671473825445876871693194031026715658571325067002650351414211743379960920106443660411219268979445247514697952486759090681180153606659283629285321451028438626108411766670399865066920391693700121638564443001380755135898769600638255784151910354975028095484091793117864293287813806306744848760686065774472893168840814984082583020253675817523020856273907597238103171600477583570666164183240980708703193644962804390726263204999149845559103224978012997117204156987488255860406644987872205272631997495840012935289092495734726420496170095970644458718891178753282022034707944936924277750014069362843480506694140189853014089382035897142002155344255529418989566371121130803992750411915207169934278627146742328115194631426920545131710904792821554650160428130625892942423150321346852383028992118192611455887075059634682395017998654392819438070039849104714993909290226722816935419128554388536910668000918316760934942346141062753936534764594859499008262050552158728539516295516196086554892642523353441063870632981448265009391475675099366340800754952485126864518195824986318658371464502732253827515474226000529480775413037622303423028504873564831629098006738518107681386810434486026317262735086560595326667750773649750072332408016311269167917314477591586777643907922629902137063501170481710566863094960236213390962608381289259801769538076316728397721279323071614571524152064188545257762259608673499130507468035308131716944036553950807593753051415733086655470367979515178494951226512125765161043144504694959140751592494744207430557344978383582634118682214567306277959070651362509218781856222734774952964005653999461931654324585154661488259484985492214796807070552564228970252059775403100432041377170494486601579978572581341354377840482531889377664815092072526598658567884848357570037472781478639208948387233078524872612012430807446447920201449127696427069122299836402077852899936465730219622294561113369327712293718925709214666156897716915492465472937900301054482164009658471290405893420656884038295876058915148958053700071897740192900296086787266287386000975194502359304442137242055556450170959142785992533781935193631568038779596476952648104065409766520490796410819996271417839193206148123448175737147794099574509288905591930810024195598090713750574680398147488488997089969639978359406940994419033539393835540371221628113527899591969682813211668506834765691057701849485572839371682306334592243663637264416311760347030189889292687487789314656689101452882248234061783971566370936687788493914811267404829727929033572472613401817423561838606983951698646728243473924498608534104048871919172918210484775500053922588337525342409635363147482265457992003105988786638070788641498830618624231438304719844685138512197711266750280758071398022319180344762885154204579368834195129458002050355800408621706145872864936394639918868756625430444808261780450431208068511043078394054920812028544297852526296436840026465450973701933308799138078653124866481014324773468097074996592667248773143287665631428323774729610748743596805484454160305018589046896131368748275022225021346395569189940055270811266691548791502775099035505223992805773799913813477838517673392585669496226960058225380086591381396607400062936183987845007199810293728449873041226203151931870091428927303200756595717556360437442211506772981568514955975372393790961906282196688191303823024671452033056400150522365355488247789579189202328101787466476426249496206063642772994399331963266236218749381171813228354709522046144085207075363384039199209877546891387487542845995594144916471292352333555140630364152560620763618728572967549334146097220790555978467414208041097076983005919423200597659493849228001841074605363258827278108443838336308763946735580271954433211533862974824654452902969403702468142637940991470009240162590110160294949582905682176166894936138446060556072567739817150053537454450590990781590360932580692101311614009297152325358631933526270010922451357215885246327046772714321657044679712413296115182277893153991154119402415113663194227210974333343546923800499046997275437518662515534817219480637171840355688778239275278587570904439615121524644373106756489856860950113315939486823646429330494219102664709099555388360504150376519036569679210223773105631410313154742224633456193408726697992148943750383726008517789881415281444278793124941543356268334788940871341639153950663706698397372462040729218944884069054597441451719809279773752101392848836757493341259030122462470836312771262586113855413083087352538938346965343608307603653194469563533397719168802344724372726185832812736898897764448207423323566153559932118694405246952512685560860123544452606818622849439045875324905958673015985697123000842518382366092116711554199933996781110507768794613715647864998150070464262614269527613252202402556964001803914612269676402005175408808831671879022266440561529614458181826282993951665096388986739424384880165056341727167678532541837943252250376613660673714518420112280168482093688141339627866811291871406208662828553399530898499745550038644030346050649879212029436658125921487538724183165254212393006764827975060607483170680075102026922040096886698088094849411619130668691518907169536248403451421065484325004753563852598290600258249605908093694200397012250248667781868250905188481918322125819044476864938783647703905258948300222271536512039964747241282748093586259081646521338153623629209831217473700328588116095840028802685296957389602754220724777922696678024656161196144655785232319680002272976372821266683105133470661210706541246252720562962290317338507668286574082987654141847716073525115029613720697651966213174459965359302039551837612668117721268407358053840553946196300333419994858289809157835425755820755262793613964199028587148658684440454231181665419270217854813834700639774847511225701668709918476441165143961035173580075190709676962533108849092636814953709918246152320528539617397097121501484641281695216049127112091526834175773356733093917816794578008203791162955593542420000812475508239089913063538133785159388710343895281956933937305077625311993151773353332356502542628573258334935017360251168778470450439631160066374692000501196410283932016516985988441781974278429298824426766232436322094866420118499687882481185872861592754612118603646542341206510945259999770267355742435961343016288525812945578497534059740405360741537162119920206270968766360679572250100701008158511455546931064842199070375800359747238754377481281489923927600838366848105801158797881793911900734124207161236312305059709669699692822937467564880697885453295922065347605729862584138569766929354904262069200342302918495189313973612619154915439918357271370444512330826436513788854065262112892342512033139096634582898044190432252839784136260755488321774654664653887122378441719796564688051771898226575897487779308809664403305980594908333169247176428270591213857610807278241027650456516184214111975565630134338350596208337917613777081851788375663799497818232527998641645107679794367796426624845010309935772919803602568764298244882143660855592514441533857674538709588434475503185999320603361158856391556616691711045714192870572225526530308985493094109063146389779155545860197483663786511591488584434352901205317170078855769637472245037926296228158420182898421011969724270630986460666518431634815996020885414135097509929578016182339554564628237910452411901946176389053487612098675559558154258548521134408119546954943970895011945184637934677550582460616636300782644513587478609532338420406077737207306560210292723359706012696680673690627981256634396186129276924372286836230612993021282287238836338608275833994775957845642785723520946618856845228928243284665924170740999138110148483608554078164726439056381747127234468081993902197070827558470110368459748796852037541742322967772040889592725701156187877935802587808979015823778106179089045498747829127613282819707984568026060962587038526028815412745314751785211030261421823632947311754122810679810891064886662457115181526050236177566370883877135060847617633543432970750884968046411018858428818375226007384479936660593929981797152564447014191468882851419644897116963849425275487438598524655517722695443696539043448174327339479555601697549751334841591449348999133230369748270582357837214786898606900164888598410582113132179626122062496466210034631371377927441395132486445164127817717550296555338178111979271084158765459470011928022563865053261063556738784279793842241827913164222572598961877051798633427324804260820591421154005352632745892779063653333424555944814618732846975475354173671327220232626811075113508917338611390577743667012475893910979039742990699989380797073762676114501833309572125747327739545597546510484001939985324410190475752758652282582759197025778668091822013566561489387527172617968877323586517121675916002812288652854087565446283800313373304152306927101781711189868705099651038667701294079717191399150404934353014215045340486856256670087967349828684707055064254352848311650256025750196197964145305108087705308301489618018055959014223680388709422937391378615754718647808610606294456546671295067087875158944854514257844433747702327648262389766236066771602285926103321575487469479417423495985649649830107512028479855537852653848512591491710058065189146026937059554623145481529668743731526234718616284350117255452062545252275825665147282926659885997470576995709413463817956203729771786865066049027477471558230412186834918569498689353033980623446308405064717711033310312929526367571592517884860246193750032728259981053873177820515448795601094112194905490128636282555746276243681969230702488069600521160418860737853739198360582628329599477572933896791574182840071301073832587960059723811542361499133155915720567144348437309620341007863168972728569373496592485059783639464874618232291080078282075735857778427373133748309148151093696277046503507820462317078151307234107197960190233212661687081408242820132250777261697218069951313644835953303597984355168176016215331739862692210497140142377994127893221913266547468887677549772268253009923882814136409829168034898820233915384311390770285863285057934644464323128921707797928632412764157775689377657809662698921239445470095278121675185039118661346429504923248035783135586497398546189914620665656196165090609929100715801612064933815507727117241826489227036811450688057919305418226920605136988365209203517162781198687522898538116567082922476102677613001764069162739035831545852238707145389692887870361830639891506906504413334026089515034719248703984045621384786294282994545933529795464025300241919942008431649794005477188846954598573395869199945056678082759948595079342410780276841978911552054221041950410720304138982971232739753887286255805553542804524593775713792181099481849808936019983056587779760920778029136399980787595318824344505704192424321274657977950347536257629162611184156154580424204651596350511024510350575780815216871177004629500411112820674325878222649534934640016715512041765365467000085862111727495101975956078698794076802777341127044464293076279782312864921833208651253936240619492512144931996658770734882994358486444087206370755180686009140953568071460153788719788013809461795119966445393485384062032302434470673925662513435303079645232356488565445891796958776666586153683050338555643586505962322560758364331097132173228055581687219323858883881283188059533432693362219393351656928549503217671619814811535725971536561037781506689347871829950124540118860505047490579426588202444937690669215782205574886041206008259886743419673742059328094195201417802344471494887859263126153317594461825262223363211299157487224426175001750912149161800371638129338015239006929496368637795859756129350551410958416809574955167402320471814193339959507444002666559056884388581059951699071901971324518238287035406118025735759247985000974264369528558636281770925730363706092991431633414250647526332804357988695426050464588455183405479193389793536587561823307185286444941233301315808769293210218219364017610222763508447324717835462793007401918354078758818390350085462732423642682369070688227915822626624902945750519580355272891391041080116512974595124042968471165116605763659508854752479623565176415136125698211574944007320405483291734158936958472579837365464137528285431224142985355311836400175124363945293896090117917559142131787729672879534955102593474260768610629334070548958400687645562633107056306626825361920369422259050823214161195223506373206946663374502345011754827654472282807316502690566133706117316028546753450957410619386341239289983203578341536038853838320567961726740240904074520092110067061140943888726040458739497243448993320807012567371828215925217356689246360038635632457795210062317798842561064677924485183044712361969562889613747162830991963788376518606600999043185537328200391198223853709116987759600509015065925026157458136968441388942456844147479239804987673828671784617582271201410667835079131530140525054319786778957354570903481653233558578880583317676892777778635096614188378669531136410898342470472929672755735917602956084403068899160417020979070099836225903212263541785812761508346332165019712679220816868768058760980309106858730495697179562981196704415061185057656652965987671892448172894185154667015983619405633449516273552515758663121246751397996209867140655710678405880755603463600769092961595495889439220287935664131890178479389300036183326645234955040818553730633871722713306202436450831668172061959651224191506078397577246827480959155974377045014978280566814133123469509321338643072232978674359214658566875413135181670080615094209617968419855549863957995988764494680034086672102923699954845997698409509552844057089710540361864077548250372807231830247700794379960706353987925433738491227464799564105826755816345235999222242056613918360650982651630622805673733903188858720996669349691612655174547454325972571822318244287242180150748176108169825478647758010367819980780087051385473964686369899348261161122338936074606795911464479649861719999063191395785315738689053855509719404545478689816901320188215902786187618057994590163552149896915002366923333015809781500318185744064920562167680057556166846782153896841233770672584685229522907964640633984424968844593876045890462048009191305958300821015231851132581516785075974343381833928766010596923845937480418200524111911623232147202781872780464128312274367384871713677039213074529889486272538211401528958548288246768255615933082721923610972201664197357560416206100132618366019241791489544977506090233309630697937810346715804368604299375491271583771310499858274449136281229166850912616142726520759372191919166817395449524543368053535318405100858627668880694682097496227198595025200142562947700398286484896310566637335363236373143769370118131021159681186398600598056690393631034102070789253118790339640651221450638108430558957296383224436378921623641870370021446660043424860069600157445438537342843484720657989820424666725694754320650958881905035844753159180922559035960101057504638371814266984926611030670741106736015864361857639863413876919573407157620865977988850673379169716342440025661543226695309184992246302281235731051735780469456814904497219174607401963144407778894510286154456864498086874398597929734507553815835330644604640347182608183372823620674848634462621077029718146191924126252368574976153340906985717568034528264342556308921088983982046699956886284000413588947503544309228927568003005818876113839729867101315274721844722720824930432140561617406484200875457228256170110813513425270669591690301727944559592760968820890845018264625518749031369973869221044807444765532504374220656093081142378007315961611351250204910161235805764355983448191065046110096008613004644936301503014778790365019765616229523017010402573057198108161479097004634684534354081995621589063454952544736741054212783592809869885844356388322137115626575374623806100076400058273097035594953227239975137624201643255572083159344378755812584776589239565118678472640447045585220823716069487898161227179745285323003133086631465738086825907659006534833685607880194190806032212951324183631030626733244384379175793371401022521546986286267993682837523155768677659603561292463754007443550258454186858139625324239358360714981297007415061933236038261805056618378676083466384371839998515119246503780995182050464382731912118686786534518624625491136211582752717664984628192821696354226995845096960829117024051646609717406359344153495249621582847118247924799801518338402298396308863733468783556666876656536891551191748681438599280824073630565803105977003921979803814253070297277743215015947081092908675965585319739806414681829455170736693180192262600750117710174939189640619852810332698880368296370216768254732922951346002753284525251106686004024724237068685820281755120325505304523193002412796162948462318862009650246934825759598472872211471618466642143486651608607950797988033473222077781336479852431547988663975605737511642361362029469450635898211443712644592697486975748778866438444525785703377891837939549301221611399524675009549939484171797548205545037485778273632457905070540415180892539362653681119942318085577699224373371831641468809310633598409366049933303798780295201084909025143024930221479876358550562993753349536867181070727463489551243679272367035369202482033441298676854010355247643276336614754227469993781099491001909693821413794436599008403784578733304713934975841964374942910951254098418101743579492807336496240531308332162063623698568186619218538850943353016635945028553261675756799233976396959541909584555103237207533964964885367849387099629454058738773666116076758894236543284434716467007474615155447649946844737167823961337991299268061177249682730130202006847366317265229670912061131541908417460376187893548416826073155807285251618243782376763152391193223180651485280744973565468927526613013728184850919253554356015437439885492548734864881830231649719015562026264569277842424728208049840293016857559011764998093807223731339167287470356628273479668314245825069541367987953587802454130312981674438891199270794332921506198324804077893199563340850899479061596005717002663385694547279564267893492650252524940519449157178186792276732021223466873806570893392329334795381568368498762013455240742163347351055844874934731013409990409765323707870751488856111472770181274721887249292987084653384251146672613216405838099695091905139713995339063118687097213015143560262146744543649014873513593622705977121170405067219301361910764912115864615668707781839321002081190381569156339092624607773754292046472581440745408685910376719269922269993480338317969080425071572165315392313490481443727161950205075567458801800142872193588728885219778979398767301205904515673200997680634469900155168437971302259582208704537341603003088887250543305426924862153159942947742488994665545201510160236177818006341996167656292229463728786255695398009141262615696822094237040332830603921563781193263532979939044244455467576381655687019509452078790083254682018655937496009547302813442381397012340575702046624508345293696870158377300579089099542181655286177346913511025185207264632534209163859832767602712403552774631983938137139747985714032510789475524033094846227610010442083001474327597146762998767618018122927003791625774875498650029451417813188203500896455038048138288369952293689944836771144972173837355662815018724826415978814439032372682804467425834245152003175168135043189855128524505106447274237960173749411565832321217685564928815418827713448638545343471984076903244817430036079215503372819847768786807553785940836602909790129060243127491754980390793746988095704471111845555646343647068584110702866532492687729663874845678152952745492215679334864445672110727639190425282918412704162914011264755918535627838836871810284777873246995267545611209554048378254662258329873160671140900242154197680282206954228177233953556804526958691517790144873617613542782480170485010559008476314779354342396773879956595605673553519849279939743596352761695058678098213424388674010799038408103507947328333819736164632542016068732368093635370565062397231140711233460062381235852509352895265425185371730075029621027275495015754406953104141363142411005927471298654706448198000518380931224991810401036310305802710511823803821638170857756569346539839788752671972280817337258461278331330785169427100968862482510410462995646592773813514898615088051311986818376878822208137214536603400477383298448504316769793668860632413158763137872548264984545696166019230718829537001620591887356576641003370023164701535295563044589153484008867574851512687463556341168647272267995819153498016788038530214844219370776603468946542187553053234058114040074074876582750037391608678662297325105749773637216996833806932555738554774302707982226912997393918856489067527954676986729124940992191847523229008084298753622477353849314919144647003450351809455794777102324923437437506718965564703260926655774297053865451463414486908889902224811942652710572534570337943530765840180107416484734942395300622471828810341912010354115196831618701401459978734807904487194054955368684916984584175890444630329183780252317505241459605796450534616595114326773912708347639255203858957104421695441720964635665884218083167947247882146485076706065910824476440760267288236130537675619685883337313753136730456859881417245489299396790272499935805306901740641215121768581785933720181958746593391579323588255948633619555534265190738895888771062363622663141549347968851108186761927603146079455051034060556051527949422677810271919477949397502511825011767039801511504006074883010110431226447360101235616090661751181537353612506086113042618695771920796666446092572910458313107258816693997155030167425711578970796619452926020294903907702062775072666189859542127500335169327868165788186034802009322986295518427413301705120462359520768746410577004008928654730969641049556278438986451013208066584959740977062069986051819454792564694961601528690672605695879734713343516905235943779395137433075996475564783423200989773170309760544625461012940978060013297999285781208462497889439077549928634806066880096426884261647104934727029002450954082138767318230117796372641775295863574629671662231478238936486900460426871102919903415135763598827697745681520655833602738247790819333315980358075026005829885989443610717317316101660168575006967352668363302317844561699671103927472954551056400399494718373658307537717200739061638773210560360326811599483381752219270554220885536859040469876881492011084236511479357815936729952804394059292242918110195467977107724393475108283601104254331600251785995916730090413368663060447220608896247453050151160436603552180175243451822280344642051699824739970462159900552277996953851635027696292735746679148471934421412578466185928720233642637963878067348906063964468204324585339279162368263550216488179773165841066944256354437971055748259293803626247548628184217351218733288916223849689486209310659374078700068541386172270948709924943386596137239780468573530617058309588060208416309962130604494882828649354742574063759139213507017096492149389615570049016736195724669400085684096652204158801695941156467136950585784531441709185818374373987955394957493525026558596106997618979879863838722228485400419553479247503976224834394550820170935256458047947008629884084299938175561355272893672241678331155096961241174270536084055354811165010041744527227250302646440459120114248099435142520019442181667526365471918092238828894516008447409013566256877084020768567229563550212811724239912551355083282048152482854505259012637253585641256373348126073522995287246604437917999744161812329628266312491163207594143238493551756893564797297801073231230844551839328510368361783636417432763005282814295807821333020673748380867024416160116244056725131139515914708159435842460609250806884572169473212063430319954324685951014414911372613816782333655934348782434175880791496056438191744732558347896512699625834063010859424681289738569268705239648231391651895672442720464827619723647312527692599795670176362850707728774442949962958248974443736819314695468966076019911029231867691258330900442216036275970879982505635399861637197672290978747672463538178531527246621002698307332576195462452132591837317877068239348775824812201697504847038354261488129535103492601923043091455515763916278529638737928849438406056751761494583810860526341245007208908786880267539864485251566456149167564169525147628682271275066088654748122982325809347399403549876462454948163677548344204199017679911908219453878147177558413410869148439613940465778201848864258938398028088008848584648808556748326724944912219379091185015571512955416987252475841019873207069779853195575129189758632193662630780029022522721344713170845225489451402606913854363092841790084453986971233945093826687323425171920359974822083747280943877136029524714658768213804235795468501007503605932415997081470720426785262774049762278684784222692107604430144074797280584560619049053380788051585056080328203018581661544727338661724549325640977079460980085379106470651070439195373176679078246260170435912480451825279639704150220834145996722904154774747958345861749393952402062521808943367481320171589571420929932120416389365215746862093623203489562959124893609045778066291221396621035393732667275148253112345413381427016397776403199358605989915668127494711990731310576300206767565980971226271256170531251623641516707489987925323382632001907325453921579717988865652203318247484494559259020598012742214786694079688802320863321646005561614522397312965755765034093494059962813636176671067456268508004810884089267696898145352214683644071603058781663145642223871805385232645030797106003671352534600331396836902320922023871882510734815998818028049793172519253389340405163180324033702183751496991301253989134241495568566537749720572932040891351938820594249568559527555603258181281868412240184004281336818004135300580033182495249505831872477327044830893399250865017629083737138578577463127959275411756651340860314724910951802017267472992676673057598335386444603686710789995903142763515978492720129400408196374154152974565200424001211105711882277802437055678687362338015687824740648798450670517339641609593314503000790724736292144172612884816389818262682160402612155456247759628006110703653376344042359020518711682225338878962694107425541599310592417273459756708512457731513665020518937989547450282983194509134160778913726781836425761983205587665026461780394710622450187194280607615450363524757066112172268230609206260896477479606039378586842443865362517820709196470187918792705532850288219303038952199969176993883287224180787871948720560779352169203143604151557912122060253655679683492111776670467068258711069626097745744921910350637538008482393843114147235690975985806974906450518050948283780953168820997258448463030360703083389076532002436278709028125297646150413184095422571020592352122390503303388412899918207496817712624794265418133806653752177780410054642334448265808996384610491619409996929041661974613722920651355093686651433304946025987397752776017402121935963630864298229580543603934718006322612125547634366736709450597570903288646178576495056602876466658996734738734223949805762092887890790115193080676073583706476495736056018752942230624139900337474046580359386493186509315591283717219618067082716648131890356561846446854444903097681598746374897389750905606976325447873942475435175821255850730125243470371290971984372587075779710098180623920020230648632660221624415584292374959614678269069075621966984068424097621302761681232022425508347544756390850151375291215771527169021969810405163999373849569790375836496230134462773131664243656324980413008840020094545344978405001631717001853061631597527098126765541451885172147646806148628203267664083830318909319309407327898285105003108617135032526182652794323961287927115600467762760269310434411350283607601450269845584000045630046343546473765806162096825658603389268394477828949290055821405969282852014108041836352087359774922798507955409274836320364829650745158628133431096610060905172189914650723671290031556744413642133800081863258351852667129342797406474711860149690234926240630503128357016473390880885852645217705672311369749346536016215163664854186054013822289739384780725747278292856380629330533278308457251402365640361046943452951336315795225315007960843407676541871637289448518048310249845903062584589861507136095769711133026465024842032853204627452637355601845382408235235718092390387255118034368557120220637035952244028946932837245572524213362283610268225005391704217002499406389370703230761744189770644802675538495732575109764459283590626218006647974916866973159217066507119563217339218869474927815195920070384979712639849433896767428902161287682482658434395271435462042738637852009647203750779383540315675501063241392045310888986262706135590302887227815212935012495396815398469163624335373110167434855057687861144205522409033224969175343003129795733735675624136811603413000850254659079697808668345900942976701281228426492699735490203020878512707256567651080529205809905291426184858762524007770391777046729597055827646418701437704581178836914632744306603979486440070965375746213591881014043404497125907550516554616307734062649244443472791121334424139967799062494469047392458001090730941585832884211493335637197221859424909431876324455476589871695483952457218695161769734426340032900173324999390782149982976293751484161747491832704187722451967184061076445816768051241614585128625297905796372197738935550642449449679263366945211595854933139186117461798463124728006311149770856897472461419915473576723192205335414748081946394604089185139681494879213838095890802852915115461645425538340364311804312374706576186611292955203344518200616698568135951492166221014292912348083847181060017102665569276901631293673387692747826368297840139607972548611341118263943217901606864574226229251995623242408275790857233428521883732241114014526220710193864398998704503351940812615156477079228790819988240494394374298332394042231787118945581859354175649471259117115638318687926832775963221200395748859551924796806039842715023293159215489199729470161084668628890360297690707004039441322760069200255805782194095403687142224100936704363211393089909699498439032429657286683567899841122428105407654872341671228337678854314075160177471065091769251452899537635899676440461979777354710748776730554530336441577003180115819448232246704268739196118178470767631356211020410119246560547267955112657052133825402368041705065891646764386317487019995714150672270698787118473927121226130098581389732883854868729425457514139906692119062968948169085271023821678869920873181715614531620294331372771816363446494937620901421383884135803036019821109101928847835287282891020735355133640612330967725540057696207399070923922929500503713434987912073820609897078583182289909172411685277417422955357760858079742798221540328656808479636813767718410973293512131295550086928797620529514580172564802461014074293829159942793419654261318313454698547601602192624330881478190617276662257328460221090358846482252768672394599736460761000109677506841858991979353750870140890641378174239578738071806845251223481620606822792231232921650267246452458281023594950456189034805143689195073901908579393575538259952706717775772566175069021266363395669074382652214273156159025970687901831647211593006321617982259867685669932704615588546843303682251826833439221448552349346456767724381507312317538934183683251456564066283248595026414241847173018298217402796225040722109682078361225389364807523740468875907471000886030853002001490038869656984490449597504715944730530404079481878793028795269832107918284088311160444411077129067850453219947197962612233125511318290464997754164065490662794793091101924552515397733558319444266845000258148226222546236423952727982147944905209287594534997837307052037980348848095517634541302216347616627134500180514602378428770168301772302718180874128840797824960565330376057666751836176473829672483505222522227835638926694253723611825426666240591844414321435875643966503585545493400013055147064726057715130207025252713676864873380261845227593924199621890111393653940819360354564284052538359435145472681078860184280267472624314358203676141755650303649779637488479708851211785759507135626649452619068390931667227998647204187935061054524465639495430314171991605449143363064555866238178621489794606111366239250185114110299419260662028175632457135806657068668740158854985758622584362334425845300357203490533474391443587012681235277363178620431862200400614183506125388063486018794056394886081552380126135064745977391785909007534727151960399192425728262160002370716555189069433092661196271639866066256910259056092602999041956125974053136339069844858426271006695254206060926467999229276883558719334872929550948096680978216650325639424311596051229953681406112577841079319434615933427977421870295856432861896845727871031044536961027495124383788754433306061896927561154130667384694512734481659509683117017612913675817780145196484035996546265958058578432675701810656248466108498107774051804069322487046409263111419497695361929431483756071218214235077439077749623027598522965807176568449961782984573891959664358297168615768854843247669565250577813393829525254702802030268070242505202329791465519267316324582112235368283057570194352697210246752861771443599868696464679519061773686703385562433063404895393449955626159419411029418067617767913742642347757488598820304154143837944666410975773187680069767532844533234941507337967629553319363981891144359917290132766374938554332201091336755489672222162520184292098428299567739183648662213490981323021997872002157393541648340347226160757985617490992712845291945369432907365076688478340270829377799502697924532805860853878687043286968437006456545812512443643638974435857451817527322428184041827548146825026595716065908095546945315754642444854928514124330018687552193418852498690793039450244788422930220007695006452857026747664095307797297730785206908292056508848407125450619577146458801628698793763630003250800424514210496734194963172442866553851033721620740425389544695037489053347635433873993547458070388241181342304265042878452965541112135014855535343208436005944862610686652803383377935180225426563317747186359665831848815801965914074797223754082645580043383163359721240226423853773959449447288952437193521394016343843360764375703658710169867010245858560924230078256012450400061645625556765365356372933443592465576922342662099299110041949598311791003353545904839689543610384244286780799804744611055697026993000696573889753968961668660486855539695436699939181683150317180477490008678383057950202571562789342908363368183827669063307275872207177021723521339558427204851535007401329989245330251155130109053906494429223910442466930179677580043494901653526593622306580356082376348992106115225959609701860662238850578287661245072139555345272169752654309688992265840955241557432206416933274966172862102309786018989277230888939250057834129093694891843416066578820552054425696671998962265054227897713185116455344331281522683556300121842882514988725131709144525162322896515435667892911790821478209291758883578719097492422995121312923400407483365926313592187947602948519523340971634161171535140396443503703793242804146205709040799848191568371946646937332982473663282585462537952843108452769913510921472496397708247353254497915917113626877759955475611105894756536597282231514759328891123255831110869259114224634832851155509391059027414920412737353339508882416931882526422862163337149658173464374497079266243984319781007220409870593342595331427690374692126054858495142620061723440733468511939510022541384222804159853287456717869666623106014166503760108409519627795998123552729427882766384900460891061024566036744664737754509505002847249418759117298712423032965947114303774279245203426685570322489295097800119689537006785870193876180987341682194851223989969170758919888779700557332298257720202614944067195803891693234681060003415095156953626708130290752015686288310068351740950655789625284108510496318563680494989234752652502946656821498498596336444325721544874732088163306265746316755888266705376291767444067248981499268224734741206781604426462837033485652860741526670572359173160466311356749452788740419373704619294417120899840227830921303770421297861681841609535807653584163672614301796017169374323387690184514855211487261484111129255293147059907166615196702212587590046825071718498257448352794647696663486972947293285011754614088631546708367996183925650115931796456007154474233116379318692106271374012984868040547426621600792062919212584600807418954934095910641967451500908495723547591818436894886458423312730229114444116691101198280631590172579746082232580393300580170788485894857386058701340279498172622452656445805100563809822702844386254213075082183368374516359496365672857730476138642857604868703946753097044918276869030304307265983144152272870591200212903019284884177876581222335595407097294077052935512302083179558915759446149223635279296652174091420467469351129970753687823789008028522213619636666448988562067260011374152929360747341487988838621235667384958953664447403534006707655345051768383248269215430913157144496689931342672833120627137235801824866800585282691382962427019607476245591280930687626854489156314000174456798993189530385700993245231220647234206684384985070752733845213555589386322703583327709564633351467446372816454753265707283861213094122048752450510905476469059144786663855528916618628445221103545795614766401981388736673539702957825089031176318476950151266672515127881881022802339592294948604085184765595199145043940579454418691485671275398261762936109691201316249454885577885288849258012312330968482419280295716573790073033015066318597361994325785128751151191972579217338687853162876273817701778915138162999434895266172640105587614350391953944033848317379565124284000736761509264764384372508747651272789580595264909569172278771358953558501167103808781565304021677228155883314766682030142722610300731934367352568077309245542320313689575660678417151923884216862946060859383265264928951747619337842356082466001785654472063309147116255786473646122437350057590200190377599707420691861401005282513711530228985108811925474713919241766809670566505392072052415737635327231354225351056544795885957764083071272766207388063349160769606039384739884350990065714144014930558500921612114029742875537023514747132904154794502726891925451738964730574626001283982649338146713133915436702340297966784881524803615604115098757837857117831867625463987184412990862709742980311022247639639705199184119980920936304214646876124485623196857228714411402164049861341437955936573655588681231715039957370242076627793119451275551952829515217402955822045404672947445670121730565393055437595905246787931807382147307076457082782376580475836428050628149255926354228923017195286906389482169633827385350676144677939861239267631181809912018414007920234583467074306923298607057499280747699653723459147202607793594049411115853326633748895117766761112958684213249813953758066812743395328043756637412654607705088374257994495653719389128966065632204572071752979000216695850150982770090764490495321927960864238377701678464764969089620019551509189901444839912357852167867676645735030288528848055871916108979691816007427052161923124904754761384243612205390248288384080329599239711384487106425501676500309068433190059540955810766453839635877149913901355839078780860209992288596180258428708935762132718685202915972540528865614915101475334230436875614776679207030798000331775710661649382849536459847189365376496992876510496015694480122662933534267930919127457255504933666715977016549211561254798501228200483482551536806668448901125761782766512914067144077323672052208518188725972806185524140129239672089307376877965035393655578066907385413838659384158613842113086046249496121979074238716614329122048927271485551598047508843675926155185409190862368739460615642189384013019240840084265720008188705051032312491582781300598882635895770081618211620466134713652505339685867026901426371851868002834040168559635997643630660504612521706104129968355493231652799084618155187500655407517601098992266519780862903535171375084803657386452610291652814136717475368532793992930380521697596508415992731075458424139402799549589802229882147761987236782268776354548878921825032151322413943886985973651367725692570494281797318009615567819695187565037463729335295912610870023076764723810722741950534577118351389228852578396071337246660275089894512603898705702524071161103495523572394793368397217824050059728903361321610532610924828361046827153620856812648469395557511249214198784168366704493404301863998672322966614175982913685426593745855823252754861903693198062268105088342886205321757495845201712716726144892821807153903517016094851570224690044419781884534080138296194672777890952107273336047008192565287188244026510524488044934135476131143107695017433818971667793627302459881525140664656420052270024706709358410783598418223888622065978823305546140813128329839426928570344891280744991161498461190719338876035410175421397102478412333982797494042160349667174058208115813185067461503963359860861093003137277126449775057472010430663720776430560058926811096874843388701134424415347902834034873639302537721665321292079440252359921152369583330249161753584287928172846162482463499598979181372321376738326318945802167100818513803455547512977613628089807479008650111161472608026071550057169413103055217399359120549101879729480736697342486871680370452865343852824768413690090717483772457417950027701179468497835240922986129550507919131350989680325157059553037114302624538964449599746595687033956240871402366745026102555248209383014480362622673974798526423362834739863318376950118040951240098074443223580423118972284918255698546670869735115481779260458315059567928279331108560293619721336316574867966814016652030104347235655885850561594110601231599234794187167675502284622448246255732559161768876640040911256834179024697262216789753054121017299277701160397193223686196336776206239622451653746612144965931069001275479445696047765621396762997598767303298014278531502866829511333501517570218883354844624755831498048874302643980554818065901841557359326431377257311605742691154397545549621274810551376860522220842602822746295018492466319835039092902214607918619197786981483460672563943282102975994416943640255723056302862258265953474431367166259659554694110516335057488657158790633721229130994983707557001162597315976939765558345837059910722384171444141958594150830588225647486944369749825893353603220933454548638496046580798119453567999614617667815710715420785989234467668155571765733604633423275359365220249854884152883581197422113350167303281021100884167490398218442135118556052838912694566226252047976044818250189449889668184224776959591005904008590208771703186293491498659082919344600757935661835659246530778901589885828889074710990564194644179751384243260218305335209530027363340371934046723430633959817973563747484261695281602621404417371329641141935400334569851104831923999010969422859023861618752566711996241746126378308163751707616577223907477560867175920341410016858809119797853656951646480494231886720351975424055518781500738522780283445834846453883214333135965296238735365114907820238837584523824418230008710321283446067366637351871002290381340975212463149168521581521152884346152655317791489759169632725369672554957443769649981631659604740440030435800972164482623475144215966282522785758468186365709092682164899437411532336961247136431438814620814306968080662239427065345605750657844261830222591362486364765283158651217006414133727466924382340727160599804986559363979736555383990621657204675057453662011941521758453177027570257813572035369933330973813150147053573856584018604758264231743019511397360286888342015867048004043368082025327154207400946703533194500805415730674524568682396052670175042107379158142533051035946350472391099883481293418504500572152090821943875962628497871833535221462077080275882945567687216562681361181356036478114101385651030965139188018697255853793176640171189981880835348997450916561026625495232658568598533910944280399555808648605741738955876557996443684503918234786697657170950344896250642534900504173480831535694807733832403528706355544600554121863274542202711536882196602276401676114746723395025830331187569491163862674848142684862533849310314948052951813937902573894698110185767908716184953324417819068231242194006865481392694699019056529805963907015739134310498747551874377958104851249742505174218170534387783255361877488166430491600899086423074349211065523356020547882819569786213425013377496658909236566352827688089744028128404181554974767805096619888881983834303351008426301250101123821375546498652176948966605103625790240278404144524268293990632199545524329830521009519165245973166176376936508611936932770903762424035323226487215051976343324350116298216702670086989103899179593763105092212805818838937704099014140186278141287594835491303857137954279976004716299734389065622645758638925067460584779014363655269128536692459847639927756239988661353077380442373802238629220904513717799355855113687899199470338658314538424241385029758631019645785957601716704245803773481049956024428367015667052752861677399749155683388530977505486076837636791906365725983053851867812276815716772137295931503057705819134302364182690431670357111302440199591509275339807958556628092581466115471779649873986205485127525690792171505275748421406321625915503627562403849124281005417030017307873563407471528126021753623514998796893721118773214114708462622420890180179144240356355848122058345310463763704287728960447163094986448946805615074581817236660570265097981002900127077685340493000147388585460037264125118888382473192545195260245978160415006993514783434147720341789163042408065851775453847806447486123058825436825988384568766761482231332845420994579099986789974419945988090953092460228509908379755372070922344725874764480494530059560503369032640205968096270031074854418653390261723325741680876347300610533224070196602133003089393457565895710086390743627242524918549364160108774837583923852020814810285031879734594469170458364298014411646819335902795059131016028357377191697714461328440491135761918945601405629026578838438964115220304159701152562239574090313536156986733272792609844312224248063965557945662714077421351952701591646038201356724666262361558324308565421467742052531398832269821316855630982149247403869534487726274108066620060739105069331028847255369429382798052235388334151164988917650121641797655388222525621534923546526527763408262607294966115169236924097737401133512052825896514730565482635399866218684214601322213309720817327355549677143222870897800190864308997308587456799803703403682096454707549177324551599184293091136115994742471316514333606712387108593134838295670010926944972152586782804555716870279446191827179727713280630190152619771652034998065077507814784779951863848962169533526145123991714807922757234312808653172428205534990731404668195408667662165190536735975476105444428205990790224515446543779611044270666255295781755412409158056342409045267287172445341459093862107888622916005904795659064984897936834621945658585470477784945615651676806175982718549519286073276779338449386168762480019369515608209153179951799964529607058768853095280052760857849731941449990346036637992659730172098790299796270415557397012306134858844708072927918866168090771200685459285241520824302861050838795677155098649702785838896593194842301990372654755992467675539208872388993477761471482211330597386074102570820228800063408018458597824770747214415712235342802209113071788765164226327187154928382627981187771801151180800786466456797853298026689060521087239666504722373898977327014151120873946461449984336377883655884047524160696192809940233556296802373342210734139834347533354883180836891419353280795793878081093883296096433637777741927494264978251967587674649466765323628787080739069660554182336249524126377599194478483862415482352213557920873372927199304625359477932285568838752218712318062082974800379087165570420543665247013360533312925762598999769666380193815729432067296261556909934562054115072822124320049854586852519559515204919610549610436374558608080777346868097128339250202687335958893628386529590236302578529737605053634769052975061273637940350469765184640283020632938614274377656199769047876223165960927022910954512979092847387279987791084341615508944712291554191287471652900734712114236415882938676614840749390696514860540868661579893753883015158310529204545010689472098226250899724504713007034873753454147384511821252122846944538723611132837203594685518743383820151545085362717793344661277795245990044296605386297702726226836353667556117707356997049972927954132258597745248528059760065400593510941425224941916080106056726803125522324458127507910446519918983394499158830720709593023653843737657659813044885675198236411609647455105018185919670058627099986063844492591866941025601134821185490177234538875293344998462120068490938953015157332997140734275965723926917470905825076813463344437425376032947996644741614700775470254991983620674623311573977979265683733938682059614212403702229882788680811565968606948951642545450443029827944527609126540351910332052243082333790894133233534798045089925914500119893980783111130103720734635166982589606011170135459129602409399887361143734769927664606779187721459982537399418939410147402751527807528307639758842364847737041569042658186407249209959491592139311251383599627847785287755889504480945339965970212669763010216719894919373224790884165441334747491589624885875892005419378207396146389203827043480227493569442253247448227693441128929074226126214296432969206103698576996323998554274011570566654833468236140299958978211917896197096608157841146601899520402188976497887117122590811660364090970395190590376118295744284014708146629870486841730488888455883685529247245673430086222889544671400408996676513941735012431927500486456374752581109581214683533709741424075024523156583901588841353366651892572811231849322313551567994159663478239245588635511028353828721936887926500382195782915738457244789224970593510955856621002928725086028248990184659615616096160312850489444330420131341343070165244388783772304562539246888431978184672942911327132141460903248275570771805383471006478149744155345332877373421864774230255962584296969339155961001623179806175512694994197113473315523743014864573381871740911510423572704295962440945554347171127346403390720325823414602398428836808928807010869736643777587901127663495595488503092417230086934748909563815691945202652414730535924095665144965146137751199444575260188030660108622219567508445624467653184193447148743692481686311947357139170110104874624081025016190239399468934331044271321421677766146815429513616574655211943835091315564100633452156696066207495891969061597946984650209166732936435744243957809527737727040261017560791473490246644528693939566866934503453028015686374725434257370614472282548117285880481746194849768106103490047527400549770907928842584682552998542617281313353086217360286565158662743205199957042705895440219020223246305193741667848945501275267959336672810432719834013356359606264160583257879072389440383261380040520231225052595933145872455878785378039351838336225528841577150480566358532667991790622051688740162358753419039375536509307991139178324575465470052121960195979565511701771314242166507624953588100469535764181022315532815826817030197753492342537318899772445378388181924314523617612558219652089102243528173296784623045207653823811838190536060126277509492502732113158123291509465832444544895871436330971595455925751858910232195838972473494629769602540128470453065434623111410820267516404499587613090230291487600166423771738434135373800108974649007041075296636135852469333392907475806269516442019630082033220039352812416404205694116399987196845842852623463464051757151660020903772946723488521513159298979583160911413507880805398737334876099746092418439680373438319766813346989376752597573105430776739083509700824074264777429994901389410238232567842047673838494425400434367378072872013942886599108265152953058135508467147471670147444610499430451696743748010876240983596078351537448627706262722058246397442826344266834262659233120381702286721542809635371147844613697571122250120929323286455281200101049502965737169431058241582462917376954937857826593538736537296590367158752485732418971463958756608039174038758294005229342314880542351969215752287159365460053500264296709469755650972695681120666943584280979443584413740594279163299988608453886089169253838037201285957374350758893106205093685816752757504213763873370514538293978202260532750108791761131004489880248711756700325048672037266267430063623731719236967964658787272416401908906233536645654092444151835265491589239796114489404177693695384544725814487410523934498246113202430249571565883369396800525242476285244377749100188456531825383638383692991503416926226446446514056128808769845679036943525088015566721281231040083296354254142648680256646025504148015411418520381684759070834966672256885043259152115789913322467546079251485393790463317987629253267925110611490504662047685898969031419196244028043794247703537218021051241586396474314035420953825545669045852819237884585623890736681948646935831444830804113500127989821159533501305335764004501456658275898392657505008646571814053948691107096907262721697380306061773363137037252501032911572898796380251730203220279233632977074940470205123180972328845447783758552856747365498975750881597577023088913692419414022685685938667175462061206948224292145007691563268032379746326432311979264951503584334796895503621966725289471344371055450498559196681061748903022196384338967608344602723340130661504803606760717008114554124595506153385886269909020283941909860807970305103044179653411705903084027931095438260876069001349152048319608324948924620787901946528228089293167002041364848905486880767435743175976123909043619720541460041757193783863509165195495413347744520882163409576701624228231175033691409828520789214191616674193964531447297706979576906173641291880395479754401322168360903250984411240882307955873461586018567815558268043883025344619903797674705801357355689041536784100665110262641693766644304229517090789342877699285921766541265498159950404839440466889951609001125980763208304278305981558296079340883339341225845148326475364771506714363292777563479342713495219012866399341832817570150294996805985552572500884475348163763653524429373580182739215134403053859913566059933560946825107714716587072822822235992670777471971164432983903668454948176466122522325340852009545877188412294254811746104276348393094046272499393574407985948953666777373441932739017000574786706730163553331148275818774002843150592915173576878225287396869904388601231807039405940120755754460343451055227667097979677953286276035792056550186174981534534209440941662766142652794210812237711273716330195913422045202664698585637270433916519352127112216722127577117517820419908992960392179859114690275838145236718635016316768842949886778687585955528461128182631559961615733314149166676001230596360149032426442262915093250983903031769893201212652456445482587294535865814082277457396772485619248339490721366393051276971641220487409796101409666609966232657806151038128950878111742828445577869007262396278027529022212598010462303595497623035156807555738425107660186941220067029857281897689208293860116480801582424776445120473702377369312830981588503856057772755501036616161861458913266014417823776840711130379844849108831500376866336152784441747351419963813984548733038993113847482070894093429613536984021421044957921345971414106208972206014174633819700550433410595893049823235487626447714519603433111351694235352611367351432175848834697845286995261352684554756104385334824419327357706573047254829856396801106879006790117898555921498583423368892994995063960642133722460336275756099044079594746899915846495461896393883634191360504024866918495058515849744596671202309712479020017404369123174459299887302604403329902139088704648197954877136882141674563081330627007404507914963664596488171936181345692241223188452903375884426931405169949323899597968065111849358934961724728377110168213389722658884778406881703068527572675336778675166499434931610143988975700429135668686223847977382889728261690553086457097004739876346158878842515090883244591718628310575003318502349819443073645379892304089610444576659142425596463366167353722402319699621856136982783147173444404977198747172602960635023079902030572774752571736763726942336189554258228299510884815584782415681801903365437222215731268491075251796906365410844049262031199157005093710733039967298483823443678364860911517059256918249137082413998378591933231369638057611083156839672663004451297495811525406193868464143171675755566201912370555811655217595385793019619631477705193996493964801312606322801524292906944583634512401161435113590065443898048275290665630826107469125080773351370198557811029979333570093636729888737209898656221953387029700950169035666579490593470258509156337352431612983325177037429185566974952671852970448760773703893012414506048918859955201893639805958231725802875282441575748047027079640335803779786170375624849975490131496165335632122962451096669471367444776669752975817623218416524000352031568162576755961114837433366089367632894124028786068764520496932420104459457736904996201123058387675416378237240565805907444311056998884190149011745604394885370917864115968412080734683670740904977549767312585912024004961981985328689851299201939486133612372086981616186792840475910146152944595580779700996535210508659996127796534797463553158640993016440986106492766858860729069663870844556006330713846087856039103105917520194250435700446779171576548163441743741664818039249550592974473368789103496867666304006685590604703685427512461737087572455285887610941167081768346349628945547592009051791726190685186990247413067924945619468520049851259957626076475607119281153374247836507688496496749756202542310938304809904323502828906160581765514858051264770696546086340250357281052222733590571360064120076778617366302413098661872215495115527104098726275388197975672139922348542178780073752961852388701642280465598628277555346596465469359415019114179092256864774466385235349379223599068921736872376258137970414673670958089515217144933743617522145315665406660794606547501300844392456667004939776771537469310437799083781644295572919094345522080984697395812444426108634926259856938491844839938730088859495668703938613930250515586036010728762932144797585833824974844144675070719956451487358960540360644255426699773579643031315858243311503321050765828556250450870561766252796804505487521457609001638520287492531600309241453311589399298438487123576093479439149277013580764512793605858364567249974972664952108390806529273508190278320821125264406828523214688966045374787182016122111739982130552544959525824943087086285354522385408397033203256088437812094828751643125613614841568118515985594442877126795896544086953798275832389139155527585448850563599869092746727728961176165096564511446616146166355655940192705999879305832158813137473294155781615354700477973573174205418234823632579064660395324877451336682217654788703980402420532561118927022887091670816182399099994624531829705603578245559723732588064670294660390309625295768084207779170813509015260964104503904107908439272841150523653540840953420430241203670917929035856344615651375200883900146678499640602382444281656573501228110051728971056312822531653042243443884386793844372491780794085770825126569115433289361268167024459271595066257121504581569920962435385402371525950829507920955811261846611885417841909525172737030278183122766923562330669024390147080432221494496951425795043411909690670025544105224897584327562663716577533124688832723478087118186369663473364682503337331738114612945893331871665046184749335581182523095698186399627651597494368572564491853995387414086486971833505097714344830079221793446132337576209715644180812803515849759993810805823418572597041407897820523109499719338418879820619881651460510281165113868265897637039392191322431083089546364878599931357248712656441198450377877547174638178436394285346426683623653624587359520194339208498882349961808543513305423385231578852811290434739153468485948059471141872276600906343312963810529036159256425648769015127542920590895097387129445274939625223457408882432493245020954482282194206779567218241153209338589462797976229827156582502947070795371611223185579040117823036094416674604476487077295089442182106654121049309745566561478902675652589212889704118823467134682254006539429396449159481941424223641294090372604559303461316158949454901913548207206237210493255512485023360758127554519643763706696625468052501761022740317725955201356471809523475489284320285091510628783511401108278303409184259922655071848130484880252383541137221667528171230352569235899356089227166580854584987638738453260836446944814242094108542344930311817041093673648077220272492868109414916945119649420855529996763892197857095927777895751337434984681148152604174022939787673057834107393313813012002814931719638090151990252720447188446760552717052206512360733182401493634025847765034684962112621151852186418440033685651609485076528773593209921421873308874710384883996576296051839323973161156907070255479885256827105301733490372565163518354100603894680240570478627698849724250009982667817421751146102834719957767805943224303330188637185354945545489490938269520924741744333261852733859806064204012469470465376891417873940472582935945838508817539166016285000645261483668913115846071001985591868473710348681785000131413290232684837798632848807486493505877635599947144664672941371482444442953314864213049136317186501541620594968803140168419517776364287951429169795550744933794501035498993185606281673350650530062781459246007939052583302246800171312860967542373551045398203434490031408188772050087752909769779889908597364332568586026703153807707328164320187741071990385005474186815152997736414327522233714249126244231363785193598234225372627534631380274637009945298578631640390509864451339526233757907027961137714444350177473084843284217271635595596672186950145517144977220215381145088769368645289413703884517390400196613499006905591242310761172108046508465287320022203322118696225623435616730183976831248725468831691350497336476359175592841447929200006950160327498462398374068708176107576702334935876598950236393003178399557828593362842545672168701948021766217625052956078394869397647943573300127769033710256765466243140280031262233524190579013268868579389381085220573062351448185583744607745449716861607639692782144615903628738533533933322746708022647085239445540072323326001904131334040808866752330241523492532601935502220626837640997268097887490188896739608510418777429258417010826506541227926283926433548119604520077539921021675369451282798327561722454771897349438526642701829142876404765237704639322907205019289506623472432029763288637436503841803841347752442047210382963597642485203480437248832120710992602544075624481641996983982893964308344573517756620917730435249120389765582745736292999499761557685445367948488908548301257198384967110701342255019920728815740081446489793132195370722390135377102994595651836704410028291243572760275135235884656670314358178043233732562078795641838364058659993618338915113816366765051376622675907806668244775048076720907828768803563834506467851583983037892346219844155598869495555484873480030864284720912124618415339795843414155202689668952440047592327141642323691676286532090778855089295080183115745473214619485139592891390611252861822729322250448867996154834401131351217156296567755737324778924513005186737455823487169782726876696767656850555584076392702521341388378661448529409912697304937012208906929256036101998149317721919472836643403742852901888307028008481368339719586555953239509059582747434820421762587103896491771937445106470986836482456786498073161578685044647194910154597917676529819895425231762071020380748294464174097850040096246051772745298676723248483398120100250933433913791043198408749035076440473142467728931309186617610198323975390424498000507737405664945773233505358165119992546923462502044876539777904626660507257730790098582954929406559934768073238549666663768081036495242975736710417470721596178533157387362901019135779488834287962732498627971130387194476347795755156058925380414622921122588877239748861629672430243308638990397905388165277639788798569007480278289699268428325611458596713589655780372431354600672770852127091700234412563153093644951848518624085791462739924540787284266586364266873449645286895466825720903360320052130441708304327309260640057098356374933056307630091945236320753729718642713720841979282518615452382066660821409471976070322378909917626456981075709864113611058540254663212758284679567815910792177369421529754268803207957090874576315047513503393240797011383401122022924899036813478731996717868499999126244274345461725602055773565172312486720388405743310672011926547937991149340019766032241831293642860352738281088279944779529335300242918173616027155739532318038138464827303368366958724831643136848000493062412504616535717908196157325908273144752485498140323713236457607598195291218793765517948398318473897504356499540671196586059934327999453779145993771838281342386373984282963675660304916714324256644707672730000563464659578942166639793280901517992292808812525545158231235397736157170656477203216023432401338763794331585983269611824131577581512533246123355998219687289343566763127245304331737312674113191142874559970031726646738605542265371277084065757729290673050332800759536576610009570053376521038678829803783063651225410209673170064354970331511467651365178533606781396035168254465974456335621821338547884341464309125971255431875960637781444342250775269494558696375895243766569520625583173111993582878961966030371529607832147891278103284370221247531191545523927882802520931565236561511168003753145737018128798444223202415209366432359777810608166793041783884439458543691132141224074761560640147046535502339203795702141150493913393073711314272774901554964310631817486291659893579317156481170021061355604752441998979424090245692483565483232188272856799106539538846454831272932014623874965029412244963783634273770274384651987927953947495689330706987548421647155785913327664574417342317338184696538387342878872471499033201388958716717736575930270075412883924992186974871803313262725899928381666919291331380766868306666030315575378873876573083668395826256582175717489372755502140300477617407051431997425812995873980032645037457246278777476288808419394441766340298334821888893449321978013220251834552853279256269957736473021846118611768210078764873575225954768327704080088875008896956766391703712194541230246941330700850689485482537675010119491694111050080216616066356270394761583210214135408851313806247752291242185477165909076705251369751063423558788079728067919177255291468245820346354644883430876356279731418273342724059065425031473573133280110693650696797778618529471820996444560078566038264672142122173641233228791569145403260620081963739449261741169279465265624039807388664564916331162163918738996727357688298579110427947154303767030591089415607449267098228063610150746939861382212514448440149706766720703457758008930644912395141472634325963138350858346084611187679757476784741262236456660497790917920864852645080736826343627342853055522105615899729614316818666362927116931066259219817030666121177336116956078739368069550478984957216839049538444468535624146816083253923376444624815741994078179110114195915931413148153413795296833913060964458915963691597711278123761724217875084508876041162966755323379167616453480997725014061282140060715371738314728759393467983788345406770371824118216850985161195046903834210641825265693668516810673579814889644449328463909235261288048444981604721050881752337105322303069342577332313570730504763480632151239971276747888045060183098133123597212335090525304219100166203309923496092948519944551001096531666580412456092433154547857434781302934024511091604933163082865315103229240827642007669030040805614293500028310068596863020388031167868571401782111571653357925067488815195605554000297121240878671686637603674589596509266913107427898695091642742209858544936724873202846443860628652525630636163184000887969270626055312903033497620420815000221397109822402678817265210000163214784352269518968111010832217089227719355294852022558525072880596313345976724790755448828558472054425219355516514088200537763727673935422219601380675233427789184781428312265662617471510136833616404399794514055475928915518896497136483164238792102676752214316579852447117355135231672284267819021877901206617953769238894235367604852375903201045702992810185046558637261944309749193528506202930041334566677594708451207520950719202406765525774462909073210897688673299186050267529278292026797679481154202902315028929541013962072276102168146733962740772492890026746555815612821510211233007024785954550748077234778423560025481938149579368340740461562236212594928545525515248084968814533374386148519712625580869750863075715334586678861694323630483915673104649486527055269946211308888962300611286428861397693594839513065091928739983872447414164469356897624434005342187648087976504077298675989193909763243060219927995473613576969169922246625992459156505899473389730703719930433123120443602996221949561592586504427992021083907654674015913322329231350841011428153880361080458467347740334407032043357995894304603157633757327308081251744796159769423237811517091560702287666801412023124713104705014807173029221090165814605174533829132158701614180195359226196468520764600904553239029394724788552824238151604477042699013181770308420800236868309635834482735182384121273886465843764096626786317310160063528998082223922910349990321396173621193008047007344356099298690718988416881677307815027139030296150493594564923901087147775041201840265749615236390374142192714412830876872737911696092773433081537267364308767264429783451746521910522907182122456644203489556265296286965057217734206258090893406180902767612824389589455035539178290243656156343291393696305208965124415680646004588328907372166605045445923375985994232477485634112680421238249582932178320160493143218569903721041713336812497515086202589778851039965052603407976671464728138167183654977777048054779866517170075685200039535948587355397163687151554600787326896315832034805725115071783440357109825530635054469768906133063928226817158552145710126245878173882096039751088196956456908850696388645598970897513387428203587187034296673954654196303918980830045006382128547334995473813123872029194443121636169343367925789196905959985199913806770983413295395804902739694425474911565201790445116286351319696968526235102233266509025670303487898218918369962450887340970186477627686778851964641673928806521448413864885083325535107630297789381062248917760790125205452475296476070531052137786301184434111326502701690924452804042341700865114701593784077833075655386464631719046534154046068044216574117902065155539495384799404988273495741345951950080326632969472047029304323477872011768557714143647106880199509645940040943856211700051219775977549745679055332790049848413604859271784249246939887472449586271913805778836061983297875189150330266658505146927035116474889331699634428970647697927975018186494591104341414882513344147034719918756142449269795105524602671276765365120152080330543111203200095414869028104933199501109643449770912328287701405378243674814269245703525988926822741794973470601574811634712826748967781410177547324309569242540173576253967537859867153308365376799632492548705632458947390139736702312944273850214805831946399693465771354917528033138389762411027641281123238594583348049828424502541977179458693171107844754476992618538697760891321122130672939467937948914802767704568865525654153513452829122398929956260855466917992777847901818621902290350043926159333629398872777789809876416585768780671227321216297512580607186505098614352848497951846524284700889412785297970565966982953159619268563556759085175697283331240250654569218528416379117531128147238556808711038098673150446333640310705424994687085295383947976359780663129846544156604102020647444259595326070869755637071367873898149141546632874153295664733598826833272439111338399517513443733189370595783087886916393296610714745963244603853308885599837808766051634537409501875327194190616612265962366807165979474516249251463073719243346293239732545660815108167189529406109633383949071174843261341683011731572001448481580023015111411968486140428645538034315462792237571348070773260327041390955217503693565933508132654857435195328295749394999419083090467709210214239186077121393337543180491666737410696625173515470950007145670843334371789234404175575273267183055189372532564091293630542896818814070769785790515554495108930202341686616474170817254399911246131965038301845742102865065667467801349286961824133740792744092415849095573544512873592570146933094757248842130747146267066591110037275315904800957239506445660729871786101802710582256553365421968608881468988026297810359866344415948906296785592014143487505077625127516725015203086940045315882293309140800384925293036880747865054147652782901823795517066098338893031914162751357825229550526129349073412512796013306630816546076225193385293305555211947305542797667543341775139531586395984493517344695602957322942403194608043790770680703782911117877889682341090661145453324818017230259575707479674657933515926516761180673459299638079893370985029234130471503024029054475041204312547803865122402888995881063878404452607841372795747273752009605393564667365356470609416543945651711579602536909313285260092973659116875690684794079698470087000142493151536306115380881646281890614179316164436122394460932655270206639578516896471334385130330181589477870384067397872467480236513195528219474262773150059246741766264532319804893432322626734510695246928908449209228086096332311636714064974615969604979283828552367473119529548349240616774165582866285511498378444362033178732882270225871526414832353082148475737482936200137950002603727376629117122744073772693280006715481072472463561419690834735235379217746809594122700248751086313436314874147284844291709466611614340366958833630389012959744707206534325273466302290540143736329459865463222636465793280314259101471697341994677317143478168401023256031074974244067537585020542658300789746698048789645280333688111079160586691703374535650875091580292068085575437122403916442588035990303824397701068715437140763367958100169351583134739874589427897625003487257682405840018435212264507008170539717730286285017769222743006971525264960024211351714727659034949372891525074621586732388277596476610536170905897166251142030860035982297871358834443475444110090901277595725745050566968033929865196201374656879086788369277736363175290688716362275848903988412242437817580224457353802901665727095261501199577801479649146643601393643496854039070789911413321698297864373505327605713457563590206562742398832097574543319596572828996086969669338695301589258793495091371281388181526447348418970313522974719642205241185542841446278116030388607989131374478913454972490187974735381394252144896710418052629312724391561086956982424924609315101275126359927333295528965185055500803248309161246041153239317714846942740388718652590267086712400526364747788127776890362888448488154139742835619483146620608156802739617239498007604079473814600936915266387224215710315780651035436045137774055018616872210667388392781617025870328228810194613619441066454187850213984317296011821583336374625274792260446040939946308788210022452545062289878770992961419630018693282537629478231133643711842912083967241104555519008526033206484702428590658819553611697333700686942452965108283532625887756823098088492868153593319032106029255409451336309807509125570378166558462691696329184754009204623045550444321232737336083097131681093481082193527800631549098485793471924700269997640922717668560464975570742101562165978563784767371172260100623729229022743487725442243757118503741183973193199296161515603926496143576259835920449871673493269137511610313908581362742939552163453194563904232827257230598852389984314805547754136295357958816938106036802363117581377900484826216973050041354210854277471428007653886024028837747806047186489568878105487580292004662143237655114419717876142470060154524108922875588240147275368894558122141670339373682561894092099771577429583550847380154559371498796514645822331008695519279204805592975865041097946378160345555488701758754381901469182725177378665536378034400009964578758336694871144538925356588838436615376616905898173268502316408320176591006156889693239099117547787687857921370403807033503883559323024821461501143875285922065060298926845991815368519997043159445265706267996718810888145961631114292275749437038081380474103775067522541059046846893472970520473865604875275795547975988099566951840147040265356773597066276159066718998951474251064570675612224121760392714986858670166995649731643489871095988953596634541723547598689995173427028425559041183182645796044051283927772417709204402190660479744093088690788573976642046390471114218787423848585700776567522550308430715037015508562281520940327658305967975170203190193613725149028091735383966654628895506322065521214373413800938168226172267534123552773233468172227939508984610542688966245369328117695500934406531953419969992936598277719127286772248979821185632895562973009980966607869441937127567713543891746481016412183836618334632733499157722247489298023065288143302500527510179153089736584801703327919152138670612845319067789239348681371352200386192981249276541008591290886129951644112172164597004139611472766541709107761239782089941507555193873052627419390401266823606168307190197815324447647895662072093027178564096648892987592025912115473752684895265304483588674360292566455521493938015088135089212556610664435900346580760460408973913046237496400930216016297494915067948415699346045193111647704005115783836878560070097745922063319125909526178112753378132654666803375932954691064793043856033626330138419088424665947745991509320791273617150965017334862749855742400008614957146901444824617913333558849577925042619070801388084818862562584190668802442129525281109061918967584439853324855424251966936116425606370172548120800975485407082216745894560774685346067962018219562862866880953914297486193571120523580706519954694974424560877416325313206763010083926711518153023353138059873816781178835750465739521801701105157942542073160437260635798586276432592960301526362311249876054672676965361329615147739898800049918719677837194824805891951978423117154916248253747010802539357913906089965634545545153915752643329862616811672145474076372917782481163296848156229017323344037528953650170605136782722783359106742108030677136800092920276603770376860122877982956825740024273018023831296424049684284060166207523304147621038760889615883935366401607150218839058925057451183037074974762041366919023506190471240341103198907193185465917714154555566406271372623257800327863374664277081212438977058588640655267820066073727406205408100246502883364143352200709717214486753300858523309773946286353479404551127964771551243293734101913911245152109756881467591215746351223760446404531965159092931918315757880316596937928889266796026981737377689088162207990867813750781660613070471142964400945579699153350575717888462970106198034537838968979318406039759876865773579589136920935046095524549116044738215195801582987146023715855028759683084534229333993264230431230365348602485224505590492559489401913691150343254416300015892023528321890149921036608215923480120066588658468363105481585894482185053443606201694837244864021810897205149188501365914837032808202824781367084717028588734978916164087191216194533243208859827380047700955822310255243440574199978057936166498417202338708786140996657603887271474151072959488716862363654927082444447334006010650703336304460312795972518596145225654105124845174332468319845831604626375839678390761791123120646012806460470015605919511549262575213847541578358645905789940371911369131120642984893377913337974088515913664342724943993846911601432968319012156356899825321303855281132440718908697532234362943935171433611753883198785825133122561888274195215539680713889472520514821061267236168847242267074133523890411064110706638455835388701354281749890881992399769056535961912695243529046387087748046565118912547437570700621895173204793505863092430106041244692982064617951519946581471473921515029947946979443245286429828037731188212388320448369197880551345919898039886430490287462405808427571745730207962263631537193138831155118383266332031072431331632976883739748213058950474492424757876154760342283847058866170039337714458863173413761874300007148944353822132767752752997212407184122569810948571489013509812267257618457778509535028008396265705288637588270887322610168106582169443806926613286136110369928665720304597913176026219231151390714284855920548888190993330702877972643649452549353690086469483405904583906165628646865185794832476986573156751618575970216814091290510922026207843971618780961554342253993273794481803755376948058647183930881005607217350403037109965134056241309916349671014925915526662805424166151807563000633865698939680705339401272048051811466512226372113956401086514333255250993646254091456960337833957810300886317455802781773263532541146422435861195275816508430238418864795133682294604047153431677643862920919168718969384630332078344307217805181121983041225091338085597405077218543842690304004583016204868382228421032358251789657419514009313730124504536602894620328106624670669190616236936331954598677841537326642700865068874602843476681428684113646317739743617625095502866149880707735336952494293098394096203756291816943184723078450374111283730667144214220203500581006911495129794951849483381433958426162772110349638661430486394524353680262258914148160899542767731270755302648575030931257477510949983549601873170360206368869211262759889034038070119285157541954849599191666825637901485714136265727948701084625750124204751722358835094474154723075218113501813513183568970328029090769535748035840049328173767037148199618981025746054423149511903162002338017463023162407822220292915331176816508271155932998602754765109172063881857950603069405011813620825660324021584650034923748718845422753711022125029253491273825812532846974202705923818190957326967455316299858403074522536104168370688972138528622047703214388136630336569625719041393534854397124126361305085515750551991300444288313830698569955981501010811887008656479539292913776594843062873014978779400599754107104575694851832867638956445341564931777312325259020723728370581115501098157475826195950698042104113827931155996848223665382379508139461854697112793254231712511982732170653948744868523775052268159615460615039985516364333657472066601492769036718872446132824613360449608261467778751243777028069376876006977781727870736486803626037941551953433104612278614105365029696658881023110612178556988633074910725041715126747846487304350512924155027033461549575093323234059101373625435617712060729764563183336089786081747975109239793506833770733663149309694232841787751347110132561934334175435718642871449530954900613172211535972637634789594628161187660057645756268731505516151746001543713714919303047384440416172142233999517644913441577595757765401703677700562327466254281512792015764530634277997632958946783205410925979305300406346106657569081368834589126181875064520860899280623351031845921900719072875743445485916165526118784802413182822555756257087061760958941863104051346047703905418314668085795623818686704959929614463678535891776051438431332133062860192417710514200986852504465188009777561496429796318747668574364641431416594794588385496987922556491199625084168406175588259946071007326510877264408601425177061886348601184543435281728276828523262345099428288070116628562890729919580137421421043530772486734081278413723592145233885868499352030517531812215442124193599634206214821834541028385531160040010710988321201357018843008057026791048909996275371964267772155254659511357684267986871673213597498163518564744304784781501623423673962575651537300608589521586654881104156860989100494946312628158204061590051346558582344467927161452452215282660584363241234655597052952078187656287911587336481539806914723395688233947495770530322855186926907937571758493004335571645973995172105175219044580813968915964679733125244520690012220340770034002041895667993442140981840704773854845563746964533472721297337294939753127954580496268662311553271513837379144841991356580113617233407335666571240933103453475508142654324332293944832639063134031041635030501294481947211909103653157486623291549008136874728488787496460082453735914866528638478317438989671163583384415094704131611228986228120420347904337442397667032990961501322844155300950475595927597470434640603638222700192911364985250910736949111176615615209241423161720134744634049914444834749243032587612333431077115554328199509125553077261212809855438997875265589935559841301088238737883931136512279568099432648710216765519085214407896308855422444006809723805553835097130460040385825569328754617387338431205704873786616008356057319612435030900057916290238725161736991633233492632997850146456079753987817281887398366145073447890673643546180572968156499862572056627283798948655996425504828389835922476495075086012217015647266369387932699665178521952366610557860614550142923317429803163602347149396089763889676863331189005185136331857055109973101859972107158996019610554810172380164133796915275028113483719271133624922376873733575086533378164790864236460688377582654532342335224396593348730117334548672186732085260676295647514789881262404366947688227637822228414899653011716694144080420272257699343003093614500403185341845154141555329029279589420051941528153273207490533376642351638084357767438452541327290361848578720357131120683939644400088900876484170859302214145477169809623538964130441283887430543254404106529286144077631686729038119118805570421399104007494040259622367099900653757080008672789030001029582816641873540184046503885294136646627453713258363268524541779975835212981774899120404203288759825949877670817777024960220215383171060897342545334644714426870959090574359635986815938808837371316749252064100498296810949764082898407336559295971500964672663565935636404438237966719598937831464522983067489983067968384990169183904183086249983237775277366715285868325930174395093819535406649460733499791559029766181799948868827687879760076982634842010979247397715206103752462338630479517370322814434916014073764520152869908842854939810382086894407912547968939344153533332322225418769198896478771746383871294282920176657262092121847556146436412821072657592433293252352565595988714105196583111740813455813062735717141565307127265094088227868658539774383118831068724683778677013361364779975259665975670692091872436670043648935704287443271157401076540555171411993833636343732468771406795660843688818224531692016434932444056946668059219584382126623461422427827071628605602557282533135172031501173940937461460220974646959792033155831310718648166910113388755563400396893896423073668653052323270653867385354532598250799359226470382461216768109840618812245044182317926954072573148035203390117549796931432476168672784386366848993723487552955136407880018120309172340563412823608978869431023080435283846976260817373935908371507960524873434395574279670235815768132088941423687722161885024253842346068673220433868396269552661648513663080939728315993147929504708260626947657321897669268767827737554343591951676859347079983434246869061236021207624712149129937920052401814318622288538672470191307812098379995254987613186659689035145954252722074949971965151222376648721100639975107528531599449968786247330356165503826814268273933807231362931349381667510031988982499242591022278850932919480778381816593468275201092103103527645503670053411982882407686689944466248898302425034382659408071584581736871351947152871110450884505801607018338987107815368124615810760956628260985425684309501462817520153904500170156562027386194947366266135208492460390237479653274886671310428189161770208789815625354653710307020008463999770099457039571879493045417895640300682902667489886316225461170798833034721086254740408731103640655945935441413189898743042331018000837500379067463864717416652230211552038226207154718258224071585565060723857251742925385170943618802889692382010223968034559604814122565227227904945761096069143656050209042748136654559971823591299004189203516920745248850236558667675478081892846208558177850155980964115209688655428286496062555717640802425257851927811046758468557051774010626351764692519988548998539919387494016854318235882401119530126893710769621968043101442403396188890490111433516036549119419118266833453498940235262043325500735855660082208177251005429232575446278915797002275060032602992732032620885204456023934296294835318049364281963972376638013533357211896545375700695681133386816873829644133630678319595046884701462651249163280135831969291454875926041035487738717734549221099669312275607114417073376827592315301693008819917398356080935818813424131442979756469112332213674785848282050272458681650840953324473078780931572449796962854046264287369952241666561513341075515180402510193785956168568155521051329160037825009566820904210897812681824916670345954390493856555434577782830082502311672917301275135881617861279448459117747935491465445118596718859420219705438563377959228933726106901946604555358668361067760114062704183801268724482499630577154450884821627751210533903291365156547791307633597701230034729465781963976739214245218725183827350341573791560789201713335420225549906442606133952495345104183482744643056548839192303179178115535965976257378700121117058415621878076294863302319426054467289201009709394644826774364036754333864470531699949094264810803538609012698505958739326019655681501880967199361583295898105899343000088498188418109735856264062811571506398419581865518960938481858977114963292196084739357740334563079297890723183853131358605216230094923006036221551858547258016671158102050993268381722928931011011265833924298966927350907685282319398893215691892024819482876292543896361573300188684723794726305122037824953136016774118244471820557741887139701978394381443153698394022560556555948438503250482011118384296365770908086770785175451515061755622928977897517777233516015943750316525215989338377206455172587091781069989339813741010286277753908720431501813931870351579538364354637277151787999527250615336689455718006721485717188441278828367856485218915151486879871802473756992101192527652660867721204942960127875139251507253865642361696385869057853895951918277728774922221578017439684325197165732567034099027678260374948830277633585727513069576672267678681397766395971871653222411560433994411110133696907921923052575093973492971022111661517654528636133248192196341857426591092103252919249778014992027662202657457081604499508651077067790118761856872888886710649387219626768015017189856143432659572707660810940932346735616550203956137273503717680068745809888395805172592250084824260757672835054202511728799049932929435888082596340041210634729148542775356113016749078616086998149314252294616759465266046298843738848887626559703934015627353352395480087313055748942049237254963556905365033395397261683678911134548148209991957891218463814206696365543076010983442579280350937781013986793178154143513345320374195170074832804260653644949864207614423423765922033014163067818054394450844139375047670363917657234452269953793039496153280341210485432055166362847260244875935811070659110673584717381066870006701705735120155725986646231806724741338800961028771503315978428363091720898484891159443931963675987967971737652141932462625120416810656803605400187939601741475733918259566467205926606212299694852552334404281121829608243693906236805093227446678190824531271619799562807730179949428846843810149011549798444574552086629019269791687205154740455741604797855628646388240874027869785352870974254501928356035567581087188275211763172132057937444303075480059571677731187750825390675665496448121000734331932258636938248803251827390058805048223491993016539755879778934304224834165621671027036213721193715622875388412010204031079732386724106770750821542196949887528229683478622137843368416536108154869585209301981047208039736398963442998749617598428628354385067450182673197610216827286894371119141243690844428386974118802815314072737100947147725635799640891929186855441478619085522492492995130725710812946011687098498292561181599440931062828915696388350339857116593832388837998338536309178880880916325229554501518940489978581380820550295732662565386693952237895088875549373940360551327678755347563434643819347227627081061453643525576960642290531433808552343748297032887498555255168118815894715490017898551828903843142575736921449190152299991491534951532486987085548504921416564583402792437251332981171851014256549922793768961771029818792156982622986423645471773101974139678264042772356443975586905464405511203256289670476507842349787065181680619715752702155081332935667012825346516965564789186068926784806554411745530772290108700715694486233633618850845232057281994099450116267376804891346773702551719825556523883480015604744258702376533584706955615426165855960043781228297130232240272944169528367479757126873316498341691650361358309784268420446468854110437335866012565685315506586248319490051384124281383305207564881786330939612497360966607976722005829172112018006515152124320672021565433428903653448998335133726462751999878606050080531640335936672604457560381244960810694620158583795117399652625869820617298583412228338769518948499953743493173174675012070933745869497528896201536889821841154414131257843808882089569942760431075985361916777955756138867628669642069821643381111282711082265356395253747140123822273295218676602032498547936957432288026492395149058287426427333929020404379558442852282778225065278460030932320821852263564261282360698342628868574770562977837103604261225457177731751751865624835317035873198938249141760531328850340935170131536554781581963106455103925416826478414901853017872852839488286721348486981095515482730832364876844075303845464804917898089506771998111198868437059337716745406922798287284894047929756959221964489079897853932022419793219621392912417630675091355722004449927538825252587379307008637394222049952068439726279324567415486294544398645508904277798478869928756291681247725473229601285011254556927344653315989175953030991482013580485258643880700281811546518195373580633616897587673944241988971162938843929490176479548273327422721019684223757272046896861337999572424117441337982824918252148970973622402131663199778203678424326111509312149528234506845121689021993911084211973637162915476299246919405592126534852535086311463059132948452231574376860643189887082521555351760273779077378776194379770799104085998757500915651704776310634309420982708146981610571970660409597206991472641452895209194949113866803973355699225389833927731979782090054320782886051709775553566156661949515912365279964515446702893016028777310066153571146799231102427245092501271889447975276416985630827741359477503059572006533155207962179236805635156555924817933789072238209767720917485221339969816224092623699098107459504832132559812114072280224721991140862096237143316456569754268483876192514780499586528707350007153739141577995067295453558360466009590655835662411416409654033922955627932549580728728608233335870356584530282139143252418044445089600942110949615503288329244117951973296228137266763144863758818225121724617222417220506983810333882902889384030022098161081545070945676717607352653470985259353991412487289372065989120516488516481963708721952251731565825624092287682948362050464113622026422844220359146699089646869702230580048774537220619442979446205709203445109613000592509441555898938217372846458069515762628214047999790030312649327055810107843656285486051003511563530464498292350144484215585991861541376773417583130976883155969620876829219381678077287621501581692496521966678046486307649020129271346219150609226313874688530779209232838633448025440665048398634869828799641612091370907434908719335847954115014154596706631873952134669572003272939388863358484731489374252655909455146465473306407603913528806906078327243276838749011289010636554627163472978376217588937498413794820872030813296819090623470536313756281230642483068590711527208876271365166344746923967814525471108964615219072333987764520997947133426647029172994529462592793443924032430514296329849468677852453071106665228892527829015759212926238688177618295003129313996575473929236623755030646223465318258342506262401534629646726754134200287739787875575520101249353264869562081177539640325388661027166145684230831661094004697704938105745361501943242285715440180603269774593470982760671592229864831374408119191073525780679461230263845047299423871828872201167672547275158830493575518204342838753988961602656448403425497326376219141595376491691962402963066978627820191424908689056952350375239351315389420190537740465472278953668868504002687697858086793794035840456894846667464176326668822673491403997631501969345486213103146259533095272656187310916534762026866502379098360379205453384105893380063610096700434522560996168892350072494835618360492939279319054100178121968657778747293435673313021573840177764508412696855895738599127263788290000819488836279533381639551494917964597913637865618102412001694480273639685162139803129480007582375128031441726656945001026386122121413900633819657653166014735999937558929339845265035581215326052446998992347190806935255633017450558871218148126356942173296218996853133361141730848913125834764793949582077658020090933338862616095142071136967633983655730894554898272314298717769578726157547655029172728619375731880731102635767765750383094804960498309342217663338757462591766198166291880082705268223782766796188156206570023783759671494149476007204127250719957027103220655764138383659430572859562281968669740635370665525371316973852402553682815930229432185999072596210940913044315584215864272259640509329659223076116066868651850023711506639871546982076902667764589222416271301578931432559394058310524839597428339693385893070130505013330212202771620041989576875318024383218154708674702059448696549491786746346891189043148949446698777939065280464112766777166013805944789536727196935795125421903708489481202595099856460056312967428375246743572659514891465955304990399209414077367063228864280353458800981912666954742043605066009981822808959324025643830412483297446548316318464831872053637662405293508560526242090199596506726307300840960530156800946281725403307946831720182587697853617088817004058719948217798294368463997086441657965593562733336086213796610371343586711292311384066530123157530201440364223801390369361679068530816876386854635102316916229143947595432319726601313590832184014684281258236004460748031259189929682402472709276347766487889830350170539868610979557691610765028638357542069659349810276107287380764787740105502206306299337104507079971161669307463504884504452470276835686053550509141031714092402888905156500212110727285910438447495152126207639108225015420906043188558104014199790392967849310612630603268633702429808873566115042668478735152438416729808907007631135027915560541823344709194333029214965772302090881399729437416293028144640449963189093200486526226389192440544403138133099168598661535102577037009743150027416573928625027775321282927821250328601492719875512988378165297730306728367761499408528562331193660240438990229820091123073777881446512342161282856171254461690311299082917952409614274988636758793282949181184850134421514758402253081220595841210676483874470960257697842940027850656277159396953615584318901115204465213511944509244462629174881821345941838857641874707514775640380374007557716796168084534688739197346133353925415445928811251606829292526674469792032009543884487445081412383801639928923154538311417579033125525308037284692240916343017590457573973502897990741677013014681400795843087657650227083251417422769505291496164437800477409122493354471782872733506240329681055344122485026451587779110100440113450468764773150292301089358773693278371719145547394700575297759907941320584143636225494268033429559325012292645313472123812187051801814933666529752954174636350055663392031177111010792431496843845449091807603409930683731636111068511134951873401302014150482635684259143045132515981070092827805840995825738658580515294784296500660044156778388518507563362157458269226200734459216043105939354034388312400423178661193360008604679727746262298056538684261770355180231052714645045696951905634448018689495073002314017274455951360675892961929567656648253206912752939595874343779117288913004595295553025924846249141195431074529043871772627331142031395673275433200198984119028895044804468581851750230333780147601831015547401535845135900339528450351806863518822204066222469265940581621196262418944573755283947449744201946762186840780350161423223036215650427965398836018041112716374029532747288834390033364166058921321053192939496439087851179632637044402571438759618548979962896565518360689862454701284951948035594526717128442599657072052051160946728039523242365372884082138159868000656153666800263055319560223090861886777704018371718750777530086870704737839328313662665887673385313558349552935094674340342493729170771176661041164871447367699310227365187932956031071819124754624768050901527187864852931919032519888081850317549880137300431182180358174877653261235533932265947468579294237145881520804599880221521042494420680345094481204610393635018213397940194393975510691817619027148018804682493426987130214742146330161890807518001724142129341222548628192943178891139230852834716891616228010218500054299925388412358398434339754239298787031175122226445386704233631341547680090842551494884689145957183921511094682860097298928014443063162448086683756322331521523494944828761907177409174376837596236525347026850689489561399695174756188790767459318522210905581537697725258299608380602561309495443975553444604131867399760118504221368821990910269869024685984108281679427602402873735761225892480453478246047443700048941635659455352199250626292666722558376587076925701832019872640178282046244280102741585876494816952333974312382987520865028902842501596567706466510274248917422250467075634066446350378745906386974123720801503536937817041115478327234808475375777987677781411754158690724784414524686952734910387552784529126207537579857553397367976332464262141132391991159409344634092168560935595329756723373081907375554877331966265724993574856029509461414753006980549374072821638608219444035192809091966147135207526225655671931254153826626653115961861497339413242689147195431487805915777211940287085420743003000909307728933572381487556512864607350636454998540638636156675146689988688294946906226687393026092135166087418658016321575524184875051749442132563305756590742946083638092743169245831074405017307475318274050592908145859568038733880270311807346881608476212098081771478214433354895057521572574021652241696665431623017578726603934066007685773771796142933132995722718214163215102002215661676232077404274744896697721522292865517171736310741302045461011419351666874865787157495357518492140335686255070004800651377681590652419177539614131191707833287821762254519455160834453063347556548283296868919945855191344670104197810575342686473513102106173080635749866977925455664790806944616380396208175909187272882337596189699839239630543135497292094918486775896352517992716222709324381867956557158640622093947914611185865878130071104708370093477400101512820190946266155618307514574763448282674412065034831015656766508873895772013505682998150888878274626772223609030448942548285785183016515132106091327823373763865083458027424460410421467803632052381299224175516660243422000799857195039283424313798930895607087740667684996481125894775133263921254058163728665033078272300539670914884138620309377715028767365302798667013863904295926877472038166564910893498037971689805839051578489405032947488457238794736815397659804560826939696082349157344922805673829662833549257795527300253866045722968580495285251695286962391597851858883015646787567716168617237709562961112011064730136109922402406969097792675291602694125379232265391681889980104460673618669404514678550452373143776676583093042623542625472148286174054418965301682376357191036415252518529945586030374381086748444475125752192828554177123774622545104208977620928577143992366112969890012786386674541930476621501932240046416335344297587305235425360439989178366852481172455292782316117564625331225586885814733401087472496532893848013807892469766350466174459108701527355001511055821854300173024819880787833723783087430077685789354124071674134973026418095037915674519210807317119604215051224044756340090157007110213582704753736956550447008247036500468858099366600747991193477554376342514615520709359020891479242367465608444324149657535796627221587897570262987346784135005287509274586241459460235382526528382251475743252909583900479020703967451626372799871348265316038982276184385918267209012164236080573712801088662149433038604592952988964124557797919355190483224572303858728332933682695152164845155029971080229707361937632924615991830358645427878311890938645765287456820407996699893613969077024243744464113859703545297801680817365855371525103455256467671044862196128263662906293831211961010383157876053732551694611221297288591927228544829638565189288825827226259356770556224154749545366450818323064914440571776152159372836343521224878255727114611699999714612044493666242784404453137682604827370121040751738187864660042695895325451764493615557800533163360085872371470603266069235630041186256586970175475802680796717756011455160288228416768184538410287781147464339771718471782870475140741613469404247193449863114855998361771300603061817428871838135913417706066965754591971431347163866505226040886718144133158724225260005665903586293767544048095999607911884783644853113721535414541605837207376931053377605001291023750473563654142907738214574136898876250585290324834149948281787732404976953985853328553402543363669358330130049499870406061003208024142013633639080576283308592539654404719964898331675057684723884464533324762645644909365074656075101171222886682340714190074251165385337168515315748384496667193041445029919589366287806572457256067100769542517463825145361298255842736946769559709173822671751656354551623885297810793059819717507188701056297411256548427465205988628459782203243397439347631519229553532188408965107312965895747732048340004399669371897852191032405581011541677219511397403897655256791964729949472727567038600126165167559470558024837455209458998084725694366020179831647542626471945488590069689620301202201319084594157581328688376493004551426236635450120694822369091047709671417135995587828473047112494805484545337338297198494054996889318820906791789638642044940746336941814144858872429185185210413014987741617178625812125769681740907054788294831339367771755458560908879882657303168711787550880598605221387228952596404159803071780320373504866833289117805907892660845045069196454249375814759697327916823187150280301554084646834715457455072032487169571875465939758857762108414713032130467301189220009876359293590351978176912534869357705898614932712711717956851223165508569396941690459460222695130466586065315611331537837258304718803230731913785520998892527631163643111092293539395634855177716943317849078653989354237207433365495110449773970528515124452137631373518876081630968311760331358959198507502617704911825375237630853646095317318466104940975608116438106381037208325023303039043285491804786250108128938692261744564390327970497941883921014192153665108763828341304430976543211981077429290068391740368884993835619748190153242453988744046537222734808450405678683907174995596870891793323694561259556796820296060862111389760898336429530497184948848976467549377748921857819348394182415304213457620137641668037320284216343720091569898010395948005491722667325977758419519872230986444514580526985760920125541797325353932060943619468625793470785684497126014139102284287498286015313681851612542294614754984391340551170919279236699731132613481215139847379404729933250026750754017170711378451902383571741672087755101275177181687671448762582356056722283110841065274304407315159250665982219301766249069882411002599376846364731914910589075148942115596299352719321836885235916519739470480959676961166542459701983404187209149239110367408988047677211248747090349013332864803998593546987586684432227953762590837863976068179851249096116029706709886307194007772043313732089358647057086354566516811356821902395821380141787750638422234039965386565288062490439346986716055002085150447981813229666257419201433841851993494020940309172008392746904687819768175200255496430175889684119678926388240056172237684024623170043578032009603589034460926721850663486896918765787220386132944692027603749254601001282487280618933649475161299258959032750475401321503936322206640398552548731068520410952631778450074719723692769740628738925101240100145305735732702792383034431301342010367060665740937026927027090442712203393254084335840542053896988760174949910843136638372905982391561088104498743813324158335478746958700379398276378738012449536147231986829006290175569812466386213021234454081136655641197078709411448254671565516652080647256738201175426793367280551159263746052806721380043155268865931718467182357286974855938091683294316052169360462527634804811450625123167259078525825203652277956024994181358354264314434469062841758103291027937533036499257463919178395072980217785286334421489060455894544313242084978674327708014781917476714239945065539116745322920298635347338993463930724395260037851394213762946078288099033996816650156297691352817737993327054273636302862878940347057265053980390696590402435044566746556433056092515013837446713261458396348178883632933157779026202210894918049795211705780241372381371490691526637505146511119587234908652545972611011711056196443191673978574960223295833746765831262535512634330088052198232614537128392458195114491018146028222886577131410157359967977523484872663173142338571733824370102764574535443450872335266313815330165007141578044244084547380794988643600697665158628085510840472602845410851147484187789502103341417622506219039550689104988466107825674051553253130362268992275598915703651921169680782373037951267136851886612168439853243018366964839970892939701176990197023260957159544051594496685653174622069764147184447563739431634019860380441844310083798143486976275983066135754426755057421952555247122811671125315129912751724802852988192793651262634417219808853931688045400796607527881920956026644839511253823386938407030334670987795231144011334204569939642966248035021121085777707765787393879050447567584763227031811788328119737260817870561338569449473598188358108265606208898374009740237902637068584563742776103401142369940829394633991553561136814880463371057872594048963322138066896659501568511525803291344540456801864811723599048735828627214441803577911348674250216905757308908379072875744214408186003978519524252054412861695189321607116611491958408369076084777080358700161969458309161993392074782241768763673171170170683297152872964958052546310998707955444536591886129821685056026574609022686172369036321977249634407433554805740482798007537697451736551992764571187616299180075803046470623521208592202155489422455864432577704226634220182253094284278173995006217099435740750771158283306451111990315017154193979694464875524487486605013082401241719388460940564170161593889061984980105273634054761565635040241961514170508370843546000191005449004499959932897595863177376141116669989712210740551668055992267816111808510498934065684462006633464132824063428090020888269896980359438125039723013919034780029207038991298648041162988501644475886818881975688163636019591023441247038176522457587308664271395736751808712619143953407876843518928255752864369094850715031273086528595704794143810502015957164996048121898752641385499886439161211558111496282790756965300564903623649983628872717821323115870245600479748383077301041115466672719982528829764070218768767772062011897484733175222683366079111696489664022453079213260237932008921686224511874758446168139155120871177769800140100188718746853298090002846558991385655126038536415836249959005104068996069769919501609705852254587590473076203029383818866746678413700422456746701090932979859859583069645789217976471448980566665123184831071635347921576142966496515468010815734460344556163551311837063141266272094314216671602507234151379974132697414057676288531143202432893922883694081855059324240407112104430945722537183433099620516557464088083400176991869447569465722027070381364836034647578622676236107598745259908813747603322144819622360972347021470893490421807188935404731609911918185532760635640659322144367192760412365364247443203568254562236123273137491627377555555625367166222550274202512547200339958190239621612363531564958451309378859673704874409990407967223797192626018277160552383650189607998848799287839084284333330791362234718369588860881219112199069500792551211931730224178719158582268382062624445271566574787797235772597727462549030329174739757693757236306258721302050558062741293784660739729349073072528717251232467054285713118602440589371177697901328924871901812038140111813813504156076627542205459069647359237797377658054566119978810728031356162875011580188132179644203794044601716724234255424292749568613845604263174777347718941479849110961827551544439338154888702540478958256313965834798748598809442114893252852118707868439972366742035954525743629382910271954384623262114054206320611079331659324477832007720234932890870768031586586347384376247509085722350525710971380793472398846031356128151169523332750960625738577165708771653253195667792449865508478804203557833988002424867303510357905314787866106413808880362534661807898932988541856898681917203842042884184794731764430314906817066607525326767914699331000539957386075761168810102733963675468420521582376167120758252373308879225544513964215771073000556735925823287702440390019113699617648077565883568602737595207094684066761845839119180814079831202634430953932567725472336357832918252881720150998532846427612227845601901282046425559029026783406723467166824907025017063022586231227480780562743937541799473074970019465158721667080269779921557634886756920910274982727559668191212210867053793421430782305402268994180793454142475879258316317261754995220600135530741280581535319168185804239988808081697511838634552712001894337254862261224991139053574445533449197993807825367746106130330179577929076481736413145793144247012372900160102570168315901746956134155081096718286277113459303811504669606200239516555317321621546751129382509131043475924110762551145764471250957432556238145857016970813423464107981586858425644982201577351117029066547601932526649964866351243421010540398652341006592471210384955475709095975489956632272126468731651195483488066909603637955419515227223600113263277015137526261993673387588404103316185055763737846651851352303102482018508383894675082962794546455434153981618168734532431475040540123013436966049395447052599081280153096531322085292101304557076344310416975999256420070723769753737249173376625461635040620313327963865114323276091570933759932178618355169775334405680072437677527577549955601068594528094292655337203976617689390752725775080928811945714395100718487163462619508088194912046579556765701092148416133900494407057543816173958162999791452821485757025761241560701727696666714859011809293437026618541960904481377767262226484509235477071351124330803659769217301412189707060443379476710719388070646684560313069325243024323485910960216412923535064441324641741408532966952134666719781700850001308331924626449497357195179982040422978941353279704056716121780439452956706774780638945426454443003075454304924909350174719320188879407668699799251907292656601634095324135099306236431108617015406703328827318686001805586534357319206018186683061306459112754692534981707006742130099451322356701408486031472438115758966055158411170214900016176371929333853668437759679866639735363776220230037568874963575559618455043506300658106266364531657146003631687188009614549388230176279793829987083982395812370483295114056105613282203514042651147662481095222225159164220168448812827365438992167714356958522217947148579032953266626848484018603680577426039005221963227774919600462282718743828146329766777689340709866628905541961917109034277832592692644104202593380119699971439254210930898914019022164619203269280140218812413915579291948395987612012916533265195879305137819094160001560461700065186580661627123778510322114211980201242379024301631338432979051852036702837671488717276786111163819416747300999142110222751692675662475343353924267310859827174997722578294337780011331327835178984763104162241134112204048749887091348224037842672877134037210485825440276399199647653476434354607046012878210408535066913735966347899379155493079102047538404398638558888628731522497550596299242567051605032791787078065003075945287620541243649302068171868731463937030348019314463302799901110087794719387471317442589940770427058070949706523715360203354694586510471027175363503621804563462520576124183342611307513778564389487717354565281612713440955409652037177610754752404367522436502749871340146059259803629342000786279590212396672997894467966481389626314739717784127667663295897299317885788715237256216369264364779566261812811670685476058860146355997878359472436565267098237459076645515830660066718983860594601638311668968278215634927353871042524589118150042416187499959494823799044146081821812107697137836204244887827697878278294905612198201934045262356635070912587533507962077478438610949750763980267630240103575768471756216840548684709629562444075151035988569717104380184238730743216429237900040823393417014272614753577334945193408104226308798638674797396287050404742752962633391572979320543374370066457294681628956013252097299007848607924645471134496636486971287302245899659407107393620721844997906346993565703445531092986242822365282450481710418456506627435125230467850366454848177833206004713413848138823344392654250333993812899778655952556037782136910949961094094643527824137021789656635446575822443271804267371849622422697678953240329820870250693856495771149371340424685505632671695806841571426974303294959928487196322650434042281625823051516894190431485117486433782355969058209661493008921521679854798298369930707272315835688119562494717561345913380250018923534853383169809571384815131089141258484551599289745386878247919448608480327852234041937229602040259390368593140480061119698200576823433475517965638033193057655593361006760778206274057865153074339187419870499640567297422594586915330627349410008427103921335610424189861857454537753281409618677971131554810845067118104764965982065251978630999904938558626203043699523765652535538397239311571583292633230406229891805587502400402702904267871788941337506999247754569614967281429339493948522361516664972545147374084000979870970261215497274410926653889196880057288645359319851865429919523671698071731080354790768635562184318000041133331914134267809491985096303913508528624349833944104611512931052750629574922304728319365364468416103581885316186259331215241188527975752082617510424552724180739562596821172780593662594256695443984654202416292009896116335001177566668205515679880249427340876632599198189360712147228454248058887529845647165599507896185950593214512356024364016732687633246379350788900516975366043804662535976707968107530731521909200700144123238360827081313177042057784611748581151020589072456727428366532222003037395063981118832112822666044105492796657112012353017887608014676878427463268267469176185902014353736541603354472378396521249096923866535487596077911753152606027077653366288503374077097620520548328672976345476674148832877420464676713394918406202082147574300709297218120475727177193158326443395219980903729052027231125423845951424458275896420162436231628523486152211339133028191261810698692478698482864771320423462475618935317239518479322909159675631686810095650968731596254586113900091541335858526481564276387156187704950439644485737062406403329690510869092061967180898398058445207141049994144176192587126370930386789688189620850402942953616411426304795586010860713799432851123287603043522705171114809029777986166595486652128912234279556650657071792698319974591156653667234126202254099301730462046949775493210466195481421139953902286518379115640143154600012810945516105522368739262601914387439327640454786086614523321381302114128053567872404554343642421970430787354238877352617255565990598908747592661012816509098083943434296403528306816762918411557723136219351818593974208553195717215511725899636337058337859459096672331749068111419379203512819865417822697433559380715607002066027424751689724639888186876912205448526871501683587363803279841354761299467489895750510807238792179132912991840891253308165493767340844332660628833664625573917089073924390283744330407171959424578511484141265699972130160860586345910416216241889564817240837212283109869789473897793282887521827939304506629018223852734573523952886143198092141768512003656499483964272103142877804949807905606484658740417586416106285102640078979291741083911489704815249808041632254120400302632072977004168849034059328727402346200596772069188344853883385257190147245447837228511482145526535855061383746143955240871152105376831065428193669680682417782661673698088730058453149726480371578620472617455019463700222176526191499958925909888437672678939942941950416518735338922756850440712363184788986113652362803991938991897663737426510112433891151950186099930401940314453672772360169738950871031647693080158421973731915707260803473182997050844215003442925830402150319620830880014465359449397302506795746302569662344081208292878820564023819985003160944681549319063828926206905310298756911311519580221378937375274554226100821299300984758676527187807838169758459823544828234082762458217449645847592414604731028178063117749823823737952480474807359452511107939521050989557000263084826151428601460718694336827951820138680057325379499796251369037341032089058590349006379955689103360109845923414198788839002586809718108022588949865065144280922969256653933312846773705550704000509361263646034920246922825814880156594990230259529195327082131499623282750887263431749899506247784466824545117342878147038981667405658886075746827241521604644045991608633134144454924762116409294370316724758185603452562109526000754298172517423220483523332506959138156329434445368296550509774257683400440954204602856236203230360418055377274390590163615006535212153684298555365544207943889981751150269181395985394662586943871750394138253876492351084159798103854266459643167468837188494303281354649569785770626606629491475260150376746508916352199438454781219827623670221275780948969926804872560463147067376105019705189056156158357136521302704539545723963172131600524307645196128718093868812173610919808833011111845161995740851799873365714524678139316517236303139428697867378259842142249795236783318597363419786426762909406840486141261052196294652104736966158341698952721225149871123086389990621245903520282564956674761714033110420936338830190822058725688497866901447029960693282781970703518208865201889733609032421154127395445691646253677509595964755458165047740236315971950569402687306166127640965926710273660616359812685709456005439671008829717253447760591499237724556347740703456880196415620038905194812378085525769287587442680147610294417576024533024995153963427411705996516243306167769342333610816571192902008380259403172622714854266462921486407741616190746811486806163838235302135729314949343343678496159321697124582253005168109457266813188109034602081835129297024065303620508157515724011923832630229050074187449928516156800386567745313273114148496094690527042992589740908455507727268212435881124352859119009155948975060355358568168929428925398563745856604146927172818994505860710465058374645886986605240363531920223584312959811560729120555043677232840229738377160566543110164413040151895163789625471049290548103743729369311989909645737551177661605306713613235419533587596933410413620854429653664486999043131572302926233376519126427804373053019353955776651682415748899053242806824863481731616820145822218824131003095537764228324264014085739553335274597381226844742625618168547577556318692140606552846883502005136066641277443602057911422375122472798887788175891348683480606127142036830321189128801562005019005293674193325620432956242725108556529750634541933881760650229403397329788198012693669645596517017206866761738004749670409572059773267710592714312902962271145094257016520746932445540710351651149327177242456394956061608425805238751798213642983585727540274114687092936396436720654939310200967258909341432896624058203609328949326721853554672085532200221168412896679226097992401810100616539025752190505744171998462357747455110235937746267403848019410689256032308068042455489583350064493268549121393138709548229054703535250209107963657693448066288707463064345392893159190763549757272353837750363246128367021749145352711500928577595837854464953069967164244253346370587755173811131984789072963577778486993771429800341586967318799316756981903492413188264277387864734991964438980979186147565514758939770084266360616387594271119769097692317053338953105402478952551830535326174501186410011513884003342683968267712086034690576748823881205890407165318386155149647774880762823417397903089011945086021281737527333535151442229269954712491238270375728054021608857494139301436717519299277009677680789542005155017235227945193090548740841441286544095936002898965074830823792936233494399082405655600503152648330540104582961180865806434650192227250820205544048322953859177228150836447073737300104558513278008804458572229087447279174146830710556956169684170417101081390329135119377767539856920939736334772947003294750252991670979590274558269780376978506643058553656882195453514457442545622182486206504484562039034930577473527268180150115941860003846404080716714731979555062874256316126032832940512710416704186304491995367496028866426490121769945713600570021375102568463898297109758274162523843941906547577058840160425050336401124772977300400303921561464951706903101768287488001367998988039550913438522752582658101838996131457494969300198504982925528057048405909615375759350494822796992497560330206500115262451044566665122109692368200945514268101468760967012482766584956780754352795620929225334816699837253383113425619050652326775917136644787224124309195276315210345175173137156417267990186643613518986665742246795433843616817935849670200929904868054785660068048470528463195238800149424443474358907067853029498856939461549883249418833508576074023701050342926721873333318150044471336109146307706368293918295412521954749839524108049155194638727090375291890385491396105103531949210397282926529403215427277449113288349143480838898081536663698914521812094111817013919658762391267636077821461898363956340428486101878507572111180186562962212654053391375722084628808497144736610781882981362015862788392299738857627350115231422598951505097588809733433010343960325697569630691039380901763087319564280356179455866066336783036961972841108140389259935272911683869854527923941639504810886721448060858847483053085156975191186520129928207811725566902884823144625624629582897180733635378897890431716891728662291320678686091619204550684228742054819426547767267994287197693240631853788252146224723490801000709496937097882387401983650200966648094684593395882972349443681123417421008192027412244803938196134069114018148599624611775705372347335768122430562378935847673871006378416963431811280493062357629775099638213789985277986794530141694175038501155218720703799041490075403993078185536819883789600482394588609285495110971244564414795590694394837019755373176967476795518845925574413883815274535381203465140876320753713539819880641438950689339304135152883151780583418998358532430915213719473044594324517217306061681033683650781921034019359015178774836210016565610408029305887088448572270301869940949023333409538829998129314408038998594342358445315593371242980684641759129225868921596231472396804672176542033291939466495404048417497984713849242158774355636082816086115096726616116852687953825365100741850687571999599699065149335808807969687648989756076455402568054171581809965434372694494670289378480812376513951330168625887674313708924210342548813720375448550258351111699594416038076862703449027837568499203536493682496930902992759726848528363581314882009486659263981653150707412977438742281507252625463273374178637731565820013097105293941041119375529374898301437411654593876653935189719927681226011004457870966877387145524197804019532866747105388398681281526716177239963320492807846676982820560410852829687840341733742437336174194790534138134306563204165228483127044566525012055349128326695242758335989736341608788389462060774338072532734171204695374272311121562143934447216502948614577314718644937375256988209564937726610754889468716731243836392622442011852137026636432963465206978938268032658936797117864428729180047426241949988359508314756970117350031170932687224175794462639079801783904282818666241996614483389848927462786526039463607930260938581918069187477660480268042522918796738450891585818576362359922045500762105264587936588172061303832841456493620120996311660157470800030000956515657341648744182645337869792441360240356421778782022986524979142318342041105188092337488388286261239389746820156382183583993882394787724991692408469219295688502721922304535343940012266424867349072607071322415825754421305258904934177831793444716469928762394543057054478358250460180037715565433846457452293799830284573250285793053594784801010199813388084372988364592956540050275079304923181752978945552138916632607126130282994610322642867194224014345285383109222114127425242300438575855285155010041991765570854860134726504021541925540609602841796485741980069066411509714429586229377420606828341747686713612574935701830484986672569348006922548541090746068410024722876240700456779305779369234593904544560132716539915391899845909086078463732440108263267609891805970889027549193712404296637316518537540320385168985367262677046441094899800236065313875632935189806456745350602458285146039622334800533697997049528943883436850382397513951864417153436688748860758302272513948572613652565111620820176271056972910990993902006987152556558177685069536261633541089030739579636638933545369415246232895600808012385043236726051680126847867247070670772864983921202514214499147466884832444353518090009117310652414880695977788030758570374759005513851974561966091306539508141309678092428103607342034111001546607875416490812443154009493403711793905018141013119494113409253491105081218065007404204478343982094948415381179689692931193678231343015400065682484833197244427285970733582206286338244362488534330286577725974357813114030723767307361090221089132297409018561507628408041030262134990327755183317871467679743674804422326415230895612035476080705256564231755045567393485647123763919207072880020496681394527260688785538908871241984825105899278380122770532748730808339841816735487146870664861243072096092963102170284381625534689199102098444689013400287409335164091748180027537740989774558943376469057842654718377869241885136117367524837569556327026290746097805516725569712126177945301040812784311279667122697133177763243063266559391999655405369217316917377905376947813730690630255526456797089062157903746113529218152052794999862166282447449841496223192563664304833097606516595450802452651056051950744534411361018479294214682719882094344503083823927167602687623780943340204634141513736649322614651973465959042533976378023344687247959516932499830344633605631356354744619550860658610711671230418816973200110696921020062393464206231812669068359481953816705059987245334808192755372317527440473251382362691642928266813338882636651423981279308473533804395565973964170518001676834101761625963529024294384035835632008796731476214825471866528167149672130984050785992207015980594084615216189875972791749634340293666435543412990715001434077098169385384079559751084836751087569320449404504382359142321254248567471136087921147425554177312997719049900364788231996841826244196545059822744321574658371808454279946549342791558106270504486557698337321574781061568003805673389136916664685148726867071785076321056689175604883675443892684503750886759061203067321234713810560509486408829128070169729912965759935817255327347273222358612167441018423020517766896414710412260154936427670138150768954316565695997863458969866827898128106702940170186611952547521773603866731818218921363341919670053564924712256843871401155261772504232946894148142992790262703412697484907591060062291416579981781884342817395626648039880057710014216080421035999563956282345456999845638248227974005077781726910800398249763276654737581872701781613773116026467321259559893581695030259395721557225863461154799707734060824103218431169320390426307205705616293250961180393071850755059332444269496029029149669815962625043825613064409978132375873318414410762811771328287401767898187913184336123740281533071278289969932741133998662138748775905525038343069658829703025827110179109593705447733799444120230160049966737520540095136098255197351314941302614181935911100259473677635783105187677547384791079303186742796637952863997640376957736671040173881503637764601720518757857459747055714864395887035629068884980246559713020148568836265591265247463631798286651716111870806413994701448778065354902183552371939420944816574031021008941771449951407725501330996139008246258714090329095301507685877646595088006287792871903286077062500557827596468901257630699314583004676551415250920579835626979747794772207314617051509081067445582533559751181163930398800626076948237985537045587166689860789559722546139650283001101901169394839359105833463542190411019384022679124130381653999100961743183024516716609441664214236263401134424186163822835139066814047960954923332163636480549269989918483301563602383952637077468996223498675230592921388901618644965681084234308221611521685972726724174211744951204857462088376718385175106701345606158453210063759002969638745771962370922812416229726270298085090551741817304903383764094277932137116614487770972371399790170947126262795315357469678585303089585803225833407453844704736212276836125106983875936044120140183619907346692841435552637555956986257033198727143218927217926455497464088750260354193752320277872517237377872851457571856029556772604361602182556183636658092297464284835023870740819143425888827268433662727323196630902842888527028511184221736864718376423110120707820694216165974766470246771350715372345288124613310610131640107187412453617537000080183661396778680188903193284528115761858874961143523268059342532271280418300298166940563705844144212007320759939305666819236348540452317489957191960012574123643699040213728282709769681283072138470227093721726701869672200550838173736049077164697126052742227313375089886369607995359691312137512422903022308001490219555895526520458385687550735547243173982419529719607857167681347554210195844017895544895114440339866769945161027038649602774914276194926906525740782429042191017118019834418734929415024347584295305273513200741722570413768088176539796523003630864689519621865622752654240964876826719527018501014529366096044196150003019320097589769092327652218743925145546276220837910510303310664752449940666670577392182632950056328011904751573129167933144178317580255140263212106742199394413050745597317701197781142532722298412694993900504060715289291949111366452910042574963868900721529294239143702053845238350568837941811019326997711917013604978486378611042937609236754046028846581799563844026508088045911669775727650538238070459944309944735717162733388197273421746261311996470435614407590171275901458996517959680330331272074817004715380321377298901559985603291192528921601875218856572073226598135819374221196929300020835185326427906762653298461799696432602193608804633822324472823804839578919383962824807675312241534449735409870566215698613794245125050304199726218646595897624658082072853592608869410469569950326455765798941222880695784043739972336881942872989060565819538180132855925560377295281651097925757593704939429725079385631817845994396461671107616623182519347757553100203065207752608341656961842508453200235604174670845715049359813388037321397780331755563888947339635640066571610672055224315623041804616510651488252293490888795504970982376776887058312130238137040621177662005431929756520846754779301200871665199702959128186214351900294589141114321327100794791550018368695992985885609066743531073786533768546610047686997783893863062646916759402639246568064693734366607800153862421096539103475447391407373374368697325647072440096350785053798150529515583824806480956182883730561358753427860443796714852709091909781429636203831769202046025897297350282584411932253512978512025651516492871316250189660190178005355264283712184857958492854639300921659791623804906454598946444913156315475779503324589217470936350200918419154364858615099852412644391390927572709870521547599521339285427729300011981760104732433917061160709753451527128853109159167805015188508449669296772599497029894793876341808708590015142464389979935809510888812714402031190729814473254599781198387508162039647694051235697562766242189198630265516565416302786699616442425585070448526089266039755684878366314651460164493110190983679165059960326474840454987511284417497995513049801911188720913537834050537439911144810418887542502974316064705344359987007083067031283691735736659018118185168478832471356505831548863564948170989286225485545757375454566718797046250403148795950195746609224595481069698923370430044774701382489465402755781674679533676422959253895306018653445725190099367299998470749996643632403469796459596771567921851828743708024315282391644005647653089674452087649676267081191366094581525917709209050768927842706701368367497989717392495871350819478630390212260313019104060241060701323641910296060418736636563704384843235609372565789390450050931720373961770050064428497056806041614757699345283284884728397229515302438042657529248137514417542115705862850615060653720404163256773529187749819055201944780098649690840632555633278577183285698256990148215926975713952519465172688736277632972668624023043790206644492387254793581907300891864332263763392310356035123818281222964412338956019462762021385204906748431490966371066741693194098919396690557454727341210102823243438647795824373541320170640391006655374670521401510191923225941994917463397320704217983044544312842800463736859751829074452634614904130795321412670291527113241222658676442176503066943600678528655497332221218151252255095580714122110400116702725132861600809160064224810948459135633485867513690510087794379090600063670766995596807682794595558090444094094910607801011895381302546166697229418484501366799747464015489085941531690660347751586639315531768506152869670366713948550098100805109117595912667530398388352902347297035074155013214935737525483541288481224553047193781107837913806652390666774354367643741786835924981679776109544521325116225373983566986410284799031136584362179648737304006766603742448280450046455127315022465555736770965104597140293090179610010670235755043457597510784025498353678964721720216975757731114246807102238752665439278657678807658372350036342222471510483842865807174196581612133564850407893274389287630418453027112542540308700057673853632244635634254079305928013327118763267353710933086958529080511242979115080416040907279240315526698500139351307624597565658335836135531526311154914826065789578207049192194501312302395739436104913044603643304272676936784679791330929577518337874966215606096185011246171022587731281108593148755299395401580807861825397346064749331557367391864599241218925802453976965419645357489263802558973299898269187552754456119549728857283991199079260187455853223454664617701082979332911343700499597203301395606277965671145864000004970631041159901122104476400398106946902194819482199500551377901829068000828745009589536909631835548163011690191975770473811990144726208487905305222529601748104307325991322954126782284294938600802307381710560246668837103079850535379542788420844029562604625362707398184943989177735376795495792427754584477706129750286767364864190925473529470225743228991161944042907423133974456262157130123873122333499397368686388987372628851711244085678739297504333842015429453845979950847816470254060448107338607929191481207292833198946202717269245989482016992506386196144506578844164749759680702656118710932213226651353623519773076285005106337932610523626297164341443588338004273460915305470551097777427955635024844713367002259813416094994194953719203237888263877795036466315227164788245545788647412734400036463974624222638878041417923193615738806197816945897522586060283465717963277480447411499598984871676003434157224290787605567452480592723845441139542582510287545298818160230564513563534667863695500013906052332013609718623801815196579665954001758765615475262200839977021456235065072033996829945713208657645985364849430212394297897087976764012235683415126311871708750840258054554542555347682388858702128787184404795445497357675696907993139568422774856274936109744099312478303314345923366061676809917684471827901777453490639004272204892330233002011934215224264158423241054067218631070747329624586518700935800482212264752141641415968455647358649924459331075335345634419321728369167758570837902847018011158236102862676579406548313092397459513734315091463404820761402608059824986729917986435134563639428183054543325332334543118136240808807325338488729035734952847718878451293203826953667490258577529252042288000292653925824249026795854111858538315620277309043268307171818900136014593712207203630782362886209446412397677415682891394096788012708450050557906076653453017835460908876015626103399431675218105283097312392047047646292647076531876548816775202472622837498852282069221192578760141935177371647619528746677861797359620919629507826535650834711990653627576477119521025785781668165353006771236680553725153760009359113020878940882246495766924439599564145653306609082275221475892920098080727155585993890436329028976210824196315077370921683723932122864702863931316273359085671042333714368549599472371970183302635187336310517340244107817360020757467283969995970326471468314324658179122266047995015683130225073872390379543681582592308193844969852860398499195737856292332048375468142654379559793564864658580568943901314602491703517245594088674936821453933104066647542109761136423763483741463859742022854521138992019102442071295889327813490458822949942380250563894579546131547353333785360853411847211794587851499523699080543737143579190087576514597649181651089720777010904395690830257246372154702354146707936790247030870815651298323650614612108859479916186638802787437095979872812707336157724835148985198675649607618913636736760653275336777305897789570955129005955818620560978278606903963183280835601240398228961953764270158682754878976335924129032665171410849107354858398442094118400128216744291686462052744858319623179202601017862737792845344397655871657713280376098718398824828872681710750533097062355391157922921364020536554032659754307084124872473183676719621435767528724848636345342934561501548410407047443855904382222615176740131451316590843950819679159192428232276144229929722673162661293574105766390976340266332346674247889333922536642718020603589467452636017281529351042557861699521926228935213868631503856803894523867053202749793369360251683778481040950016891044783589469438604011978344595866558299263408210035085059257029597089523719197363794420797350125548018791135511376441635066538161470274457767919266631259607144882525749912199526906823494077479143797043137968146216480496549644933118700686599743048489466454391079479461599343741199624497880505313488909296805027485619963411322993343243704339901860642232602382251277271199467940835961594806875030959631600911199928143389400213133258109297341805988025422051092306634293627415772703701383214721381044624020000580599456900279925770631590207062997454671653913472783915457128815149126445591716171958652401608518115769660292969418422163598226772789373216280562887106652187996870349670639564278333055566258515120873069410804929873951491925209789289124377739946297538685711955265295445707625725171911515866785282302076046741815468428402706514712498385779757445040474682941311995894466454312641822850603258475162065619820175308825834935364891970791422819838683145098928342361108686008867846729780919034654471316514229478443053058502779990750409144455526729562421208545808825366030213518842630060339892358116722823414098202518782812059416981042757257068845832769781853000071273928551721073343851257703565628002673410586332929405062046973704281918703000024132154185373522746994602500870230334039546819061137737064773894411215777957661716829446402310485866375574577528162192588102005226413356070735214298345651549537326181597317919990153171193667843581903539293595763041870290899007268266209977276704282338781331339216907247511964961013967852185496758248119742349003870851760546117740088120161556731206735345001487109945895150916687419875338382668679820812937053437719116811274705479624143335592498040002384616892513125487076398944741350315688206924213110634414043966615949893191351433893114164360829860965444457151754111282326660607003600262929556674941576826533469513656100650860030159541924552011449996435468408009098046866883336104418175998492389126993059268652269545031177466046835915456056919637700535183660120801195398537806133988185725131644664598598267145775663577120651296435939116202854383750572362583718718537339923596249205992793967768543652172195855965057440863800864448811264854559950470315542382866539308587261354221565425199439656996423154764583612180620943948419955461381119171596551082664958496569631471751861365685304524142106179390521761608228345035290945473302063828217723676933874988623577480860487847943564834096514836425345708169452108064844350245955583166229487541740153993219589257254568515643828430402092102119213621997206330984179760450722931100485283866553817367877640083531759777334988308211765681613859648240938057551092291065310113035774952247264029468108500486383901032813696673717687893052510458094207736871429822429102704986513408044856125656620494827384254430362180722007306544243346489101608553795430949036905139449832509728704697317032001875327510695774770111685351501891318851326969707937981400451885448326158602720286933311173115363389454890916890612642949051784917158065725339258915862528779793079284847786085306892606173439365914133846267566938698358758853083952223931817697737156958126085138912488823206041999243694136226805975258064805182349517814337637752637960865068047675790459951852114829832275454331567549049756725324624784684943280830565018182652313077199167781523773610626126143441377732363933456812570545127361516436577222588168663920764197291903522567575862597106350753971785239216429887478503340058433237947390893682270347077939979864369705980600629054737533232854650743888315456183525794744762884134792930527670867507713195580171230178289844642361164490562051339477759910433552095899483987208161189163577430970183217522259119098073844971547186697473579260629757110115712248546949591250093087758251705266940190404467618451569703036107906158053881692521416229155380802125432987766798647126909636756462918521434733065474025531229851688808843628891839240083279545841437419133620088345616358536313677218303275421424539983920503198397884313691810393546703478096155555289655816858671741280474699049982646482190820315340093565285031793013943175260098459278354044457740816128459200836709053562890367540779867894646694601978109019775424296692936955549058072596293529959376709336798047075232313376990404250831824650269698795444370538906757859583406993839716653627342671688686127658203843695076472360400777691065668387966809956064885353489151347464021038044077545814827036549930662663782887041997670231270053989725092910091865824284150294269877447638269991760279998402043106535258118965649561234205426044030836882850867955610433680764116705376112378367667191284689580953278824789268838632598869107317765364692524024589397961301690028539878674226466197488131680223090019837758448680537232163350701170967594173678304173500121429877688110724525395283215862024824508158561608921480054584380960183590802974536255271372832431363912106574854441347076567179990661983342284625463034441090453993932488950505643459390207070457904185416300031618862763155785060440449713251165705028217143600677324830501835797291934579230032682886913786869316855910046573032866635158888785402960300848184213596833976117262883873139209348717884289308590686931721453968147429079545742249962615549175871604636553907635826326677277663589151849241727883854421559325783854846840891220664166453675942297768137347118403112323848987769701421817552021477715652434791347567613904187470927377825481602704762801403968402446174041617918268584623431130863692153497435612043576440951009197339970697779361970471310645272632799364608297101018465887451390924137307103545358337964209925757878548151690349623592823173237658179282600873475304868931008279587362800987593595658031098195466796538944894327022560181252564409380961671851902538886691388888200466024315318233169005993500555682596740850156719490888615852081296993101241107740273394216787470115594306014719320576090523339133608522649820005131396627667724805648099905264083671300643367405949514171860037488534159783087898539729224596662887686044104059777927678316677023770320574240529627865262185156262636486478754887485139608048655047483047886043704586656065326797019489975848177191820945431235439787760373059369423745686955414848693912653729250366977045559572125522526237979445593035613619760808615682994741218986728564598875984119746846934702422613006056245077519645234376666403776808496766177306224121257390613690586528714550761550549743774495152065772295890062875384894988491704516166326204597154303966460033318791087821377494075784613321416354336141239381213305873367984709193953816410632614331741422170504081350707246392561211667065892703555958483491619523711426883471280789820553286316611704014994450239365806293868527054791018093495570016537613661695717797396623175365582676005800148950547521151464992121302193502546943480973976950143514310743864663048309247121189077661259348644585455602253106888816469055156033570114706380561875207488999612605586596633464117876267790440598956197384540104288737791522643173160399412747232306201161605462887098671450313937399609412255472807432211562133576079039196516392791170424462035970732055386834318197115345166619006911163565860725099390459096046508062406153907143385475378656104283515702863031691583383946141131789502240226034382372992831809720197150154578864684960485986148310434048846493231486314151462066829342186157990034918890580973010126706449273564941642178674878924957417340441152659023332714448802215995136374525812383622922699979076652046102418961880379394443218842959910488683336590745471254657369168571032361568283002474262255594889222261535949625898062947614701008887247198412475450667529073036738333762565582774690179230501914278906455362933717382929188434336402547097053039111778803772823050373903693914530838083912555838770823324544532065328165821833719298790435188720711066466407115345329115736932546768330579509771764313764585072383318826678174200469666890411917061766550936074077467459212707686514378728575190711714264200857024576843421336166324903851242746912344165893495959211308158432355717503380095908568545428900957599674468547057647095091074105528798749540300863993260725740987988413281877039956211668840968896997638093758320233058487611753633553004702381627224848386882854638398300380224158352357153777014305453894515731411183514273194540578583477650608582462668701701909387244685237371529698694693047944585578440537848700974722367437788938378817889031129776858970827319153514283739701726490286948128066399837215455475537967389251884001987186655487565606668368361820126590884873568843619680997012242111704627999412707564386152430422308573266343916960435445455142122008323439675089343116503788493755437615299965814084888011443113146592290025825435204541899491885459872538218746049610185859498460555011354242368829941219933601832368001318091984876129252682911155826850355166657373318617618276240637258942620786649651070620369934677085830187720470712203631383637724180259868687282612863770650393465470824647900649430885981217167611696100023368483370843621847412553460988736328404485487543933394075846638599449524442187182838686665561222512760968289909028709682252571603570614019663372467377148714843121460668250123856183204854799460267635062038518467129414916473540986865956874982859340694860053638663690972879693331869920662435716132426531667892689146547089229189532594025167214305302929404571900370102324614034261607186166937737604514883680837427137298995273802954554045778128651879453037815719584379383280447798632828136161709949321818500014123935972546684359847979334107763814835671017316009739551832885371962389850588530996152102392378818467155585943845621467722170913317147557930458337911515678259291092581251864146872593760823244238230777815131621715505492637953787277344846576314014921572099008214286552870126761671040709908540184397117670777831403657915606933719293511432850892968290465105704283595908888031544174707563861588453800000478040174296660653020763443509043632241982780689372581562351804742588876363534064376397253166093205203887415523903634617975366165567045492461664183133253288912139224016164936785006562976556375766261427161720746399220655197014759392205239770503923532963843836382132059858547703688252585894388320849850557296032421356948353313743378180652046079754511523994735226163265572329621130256363901316641405444485717737831082028527789871288956842724373511402912207463217555394596365212823177809464177008743682523091992792761500858519513530362299429881720212229613340905005291491794614486396454683389093704712479885325019284795288625335765821850704013016718649400184838531970418235510007427153726258166262747809527029225105016860543692853694585953315738091447898320735686578239635728051840583809163682317720349842996496766349742465836488554062398044109289901200714324410661742191810667549406878795110592145056676325488307106241479509234734600270944201970596257611209043931806678340086508411100549048337216672269951016147955745996910071679144547372918438254826420134546034102529826104606309958392649103177643107377126230345176604296300964705011472225870979021042772557488734404656924205493123151208702215196235468615913908971237897207705468431145435641551306834675184174175713417771790529553653404752395569607466979236911142256393438487598859455404849172597869593495090861570504067034281787574098271450756317814885393838943182199452111637148014367976401878168439412804898599072191703997357089556542764775534217340570837003802523770306158581942029980470671084271532559126044038229471550341240883839034531740677023012448181360619728932755196953555940314064524061566817735767841490784059423716860772525446410750766337726102761258453044972785423903782446660578097152306575095280642427915145550138365905122837292245370712343306441404907134243566449322592634585185276779766647759010627297861970667408302572152700064339960275410435890031871573020396830724787499725344738772061377938705483280953292099219058858104766390923148742773074118159503038057384514431553341630045235437150482948976601879508887207554945705623420600891142006633637610176083293061746739340629439334926000080017327845398751971556931116436994194484397460431104021173103799150467620166700324520477716050645721439387847150237091208173712596420508558894757650177866104924998388579033737273480554248728512743986859205656900599343793218988735092543448414830389553615207612758911238123074768578594387970046485784634611139996920810933124347626680926248417286074753103428824962572561675901884389086100746793642151609312014273637433798349437560706783339188850842646990509269826051718046672250146894989305066390946129938042226769877810313528953899271662039016402125349398475849883797969439071002516761882544844279774992037478898823447914179600179752959487378540186887788409453786947820956010137930941715252196598119477779787825401286090219845671678661022687030929252801730868904803355214296972485603575001883080166240159010008821664987063835515999092017894222191699784090420644573775054172988885098771397941899325680168059876056285312857731786405706668464411596405614817901010809213342217226916912426061856916068721523933105101437581074784842668082501746241697029737386876962654475363448638936379861159433436619704745251338066383577624098763228896824405562556924391145874508814576826456319830934318866804000732262199384356318703054755170343588662222256166320791690659236613855685868904744206786604652582787741356943144383770060547292377065676891159863815660524307656193261400874889670440866658792673323119272414823786599359691206072040535812390520285684286089334057333914927656479241091975368826200470003387895150428296906123679390303030290735526197525369874001950160112414159332129193620454924592473683125500670041491874158365739240733462850396949632530958059722366338285668074612776864104824317946628896646007463768179341660307834379743542085676945239256291745080680397569391139269572857076333669913432117969470425808357704814227536579649057392343148435228551139722725252289932881022468134157953340105491127086694549558685034107684705934421611349786169040477638114847421356958961943156400044469898755675233828416700702577171521364196237661727947824412025824582798138126001859567457136025738232639397223343883586302067657288992646708503052710950520231710444563802329373415451513610160613824576242039657387365279387876167795625905067102425984945485419151165870816914614858550322874330353983033825691657302139725267691607176905582185852177034227243803035559547962002665649497620105094048068232896810300639043470061772016041381846300374638164815652631663291590153006974305244974183030586548438860291172417360902391299343947787870578923647051165761629028823008624510485394190950116168416124930578023897579696125941040557919806134342976990804693329881218015630217710476431046157172436141954060603843330264025715180897496613657294776423047366442314375487387949117724932490647724282656772011454317865152159144565895096262618576072703088387296542175183456018361367550964805004105930786417099081702512603147230817470906988739661386820587169356168770492442878694139017478290834849357520384372717496352596317344876790927006392952435743348488394550107280322197288173459602760807125693372097542112773686157846395258005341248275510549444987355124333512316209080007060460162256886060687272923971245872287452911101516410305255088587795856777914601688407486487109837319975842379471696420331881673089250058236334322560085391412281167516326916700520938526630333412009029943879585612061130188247942636776669855002734140233035975325833880301762220462082949317625958253303384804435429022205886023344600573081830028059287995467529517860667717707015251525920579349149865436804684692233202366160942801148867119501699184919681604786260605990879470210728880270530555791855352770831095573963165827265343522079530276834892232131916629659565798868918574670293454536124246217367690839498744721856161479794079100770290768104209310567945018451857261058085386271827412708066744283297636217817766459680080593823653506647614061354860297938296521897183249775389694474694481665020327906237179715853892286913536740580997078121313035996863798567948332019804675357474992068389882885408647862946429115868958960612543786478695931445742563382737924257028812850111536441779773272143967953382679786181500334282811246083272074137765782723794265920530652137577247906083280701929530216047959465927414308042270018802149446893028487760276707120516382517768513326549225719516574461464533026922920658496469674792873450618992089893765251397715413892023261999209656910195171857452665704285173645992412249668300525484563708485807620994199813021749854918100040377500329869818331316023789286315395994492966010008476735116046395991180707969705521244788498087269697701875278021845980471600814956211442317796986608730144592802651999591433291300580004159380836391650680610607834764159184310388660201992747996642710767763646056117058424264263890025976009207324932474620425985859477910817823186652663927292369528393999530469587651522789686831732999613593481297810991239745130561343073708720163353497142410417471748413293882582702503826959282475046254442486446241693614595299530187435742083532690629535811990169780051938407009455033511940465713440315255680239812065790979708043526804977790000551327376232622270903870210511032789417344152535188686426471782610756458296159040397522314928591900785253965125523871571328356555394300588832227614055625548740801567512602775233858122628688652868901159671163082952417887190390817683052111476789101075751148371333382728045498405171313418721574514045085684607558627626509223431387795398748628704282370003031648242329088634401123336072177440283816548546517717036985817221699242607386390801721061572173983168065479396375071299874108731450524783625170783512149398765413168879130331863198607952345100865444126600925419654790934205127007046492318408817120350899695547801088111547349122551194931505679562268075146874242193775922484498279363647897577752576721760618444610044521108789500310448702357605501070596785566408431856257839889115057276239349229337075666457807848394815167529540165793034687946925860678670844617376191643262276675919353847969972269102406454213526450037515880548321805778691658378801998618001000996582566625084247882024250523783389286378569402134637800903465070824805976244865346724651489610036622001225512034730037175604356696941029394595138106643151778962524881098814673794412688980265703670797423908433855653043098995429912604124469574270116548178307820277461236530166502860181835841280932790130137378231493095072208834566430980909378738005558958483672518464270809508698819962268183931290505099749585830887389915135885855663238360701524360370168032646927574525774723821689598712178550750327257324951360627445897217788874103199698112462623921997496535449546752248420794998633753246712033047648325440525592968796691847981930820803167199175102937055148843172805825151611840289456331034565077202180267059457726463741986677692746965469042420817826833888545874182836588564153942291698905644615750885935303716344679651068776292834983717526939799859840339404281097880194615319666378106786423723246820277654114426210412613144583909297026150265926129050674153966088841603778432123729189769889069549498524177390425422846314119895303915185642120360658420853356657023156719691885271772933652706761512057106346859814758878305732235376138885305602126468252927826856227814251386342830019941906404599834370262170545904393190748498330717323985733129430506492425338980970298908878523303325234714639780956924300204882956188242438302299723493211030533182519563456706315889791016328634355245360828358036670374239159596682759153199727050404077812923967603158631727037773092627329941443093655204437311005291623385846123007963461280458260190970738173222942405104191367598939718054499127132067640695359090741430821734902493089162944621190503133810718505929973584610977341174314513090269199826358376676263366276577954569795753107356906573662356345549851976345937659627437650976656195326763102968663580619414409644618969956268506476421734543222405354300749196991576994919115234628952243395388972686369831751210275759525678178108774148126238376218348232226946451405183297107464794110737687148170901936877763931334907271733924060759028976393973894251081710324629532699992982244523970818704209020468164556531120741139444790259018470485169852217508753478071771076832940586506299535693010829279123356455748388130574351929654979773985735547647785559469340056652889518796366458910472775306986901760734355079159298461283900847586529034317537481078013299188757311914952755157039951027176087155558469994426543476872531436808237720893023177518808327328876930116572524516904075357443598225260897414043071518801000114501458182787801922696007650497525180630486346751126206874073826299481644865616566445968439397272013045494208690323938801690839110848389736543637120128184071775609371176678352443519649218473255186889764183052496356801286936865647733155866514417092379838891841191761184925363313245594557331375601325084202419494443223930597587371979850440638326903443671209682867180259287692507558713738723591128766902087289785257609078181292032265778967033297066974577418353471498982044070028169499719341100626034954376667984372518208196484718836869736227840449746643034659873279788264533348123890262280356661006190433345462708410264771710447649470476379604057860406890617735415557555732965631282948095584316468903727284667106843584979958735152643556120347293851372379113454580779724632716383359908339279302570920650525508173573109764645447589930031863208342815963788853135264503905736773420420878850205542848937055983890390970806024870578797548729510365810978183914983972961553673636256028147966972147047599970225217172547172369436753328529734294387515355579450025478346351500620806895870477898092253445749457309209262608617355902216338950093112543144967460090593814886791467088132330727833522442472949685988812166489056258498166925465098282262093174276473893414370236458742735470320289106845144707325936349930391494012335595465040043968278747497641438781056365583040127875046413040738698042299072892333824909821007167724173546610441231458448690614631412202672521555583685085269136090158172408411995055598407404717367611737014934945671337176228711466188572553975543734154047362740136752876978355804267002118213167406005557816435964250785016368543791904252499171119044337671580377767228388356034976726370250880371946331573127076083309305691900588799522053135360789825666285034160607963886331872613602099483271609047644857621307292023598143970160981247758660429531922359129793797141778951883381577068145002661346342490685694647868600731293737592171506883286014438164897727971073500485041334275073449038085395605086555811022783032032843373425444991051392576359167730230760307535401980511755392267314418884476156753676027402738615794408050547976717460638053259261778723432520108980787104009159403238489330710427695185421252021271038287832707278968892722732044589587332483477221358228635189564095552471275887762553200805004479609362920639818183213636092665851696735013040419913865906046874332877531566903147627552146800068080929806675274689013759747881007033776375726862494741544707958255001774820151868654821981031095150506678970521531989259571143286241375780142793101283849696114313990602859584442003929974120105513990807209013445662329328430641798448917426162937625447447130153635651292914128037570704025905548490016020315873469149907485158150751985695219947032391099735779287621607733287231949606628908511679990752799538884114791763703994098432698134450527835645208518717149292556073999491178018748119611157023885427329088349002799755857657325043992014586940823270674897006267256499962425205533641357522190917607462536264200458688462753905004899947084638299362240662481915951321740665814703192590142466804949513630358041082418771989099144737926357408537537886655653609423313568492740974817929997732367779729042048598250102643544150145558399223830389069381790070608634261197681146065413752294227893101014729986358634067767102010690005338543134237068552093682501471928475974396002183277079853463372812890252713735911995180874155603454606007744344040141304683608505152665640415154028487885905643796863574413961226934113446434665523953484430860962837715685279687738190967445203506919145990980415446365440194173087369999991557955436051317287278617199394128922488178646416417137658111622827383587465147391681935545845986463261908463427402248882577518286452949770608049370458114901866001130671590804154421881397042799032581096052893557375205446659778665782171320439795683972538969469427257558804911386313489718414036854777224717665439476020691249162572400261555755007558381880935801467955013341670666266611321176656281568631113774470454093892072469879343204127457303858911388185399492274260445691433922743088115516816693977972632071773042258124130326241826604712991966434260325322742844776288598017046909862731617130814695644229038001559718733716832312434154129576841508629073474862589380200593836893981503352154630366043528676816798953174840488944467104885555275756654098395428000213392276161335280270578270526731274593948761629362582146123646013331080578093525179524228585606924746926021194377150500886992568282551991343620708892789365194801805577904844505106996052005073782384912639869460996848470512943729627929108685878908124551575673312743190163843790254494456492816262091804092063816174814542859388713121459184275264891697604968384977222078487117248489379328541831167216660941686040448832421135328568938527247992618585220003269984629094493277045856101438652096111251425261594592970566896386031734956489411258647313731660222875066797008289660139059994100458237044656368212268202904397479349693442702112499959507925354111054541134785406595777105401515097381995535712928022614100742202856919910173209101950174732362956220002625513202126925664248997027502519060539016408179623505375459152544978417745538667366290688385660182752267014912040686819422332584966552431254691394986739574480371355586683540111313110153241599932185741320397653549712537836241906553808887340734107660568384233732474766489458162869572688387749790516664927611786212242387820741500053176227674047007781452460683415230748661004934254977819627632194259157469708396641862240997519773725884074414390942916723915382214921810549862680909492729699836431203932854346196797125105600168352910607139822608597510327106475073159455249486669924240598944041715919985004228170859729151560770783069866401519535897438095872841364367770227024664170036953743476801745446808638387162240968459176475192251260350668590921158751050116612298934195941222269479084252741608091149561713203943680305371741064034289353867709151134744247373648816524854578678085084755943678794128986471898381373301481097095145290018488634610937796141230451524618294861437198629875792741942687184998241139887634671561391881560898993104640233072005681151338827843681032587156670030013573142357429942462676133754655520705009434595995650401377084867090813686218547630172718283096259506838759532246781167167360772346119110177788249123427652430771323111258381640880393061177234198469973730561577473859662280394009934079508977698173171673380673641167459552485890306108283936314346041802107820543500054161606819470298812538239228193600199897277037713795429676041115092068397666979616205037189008721254905521197934059012808595578863530591096268613412120825821779429733730936380264291932139926958636407510886660483743696647616609543379190359323443499586417703894759817536829852667224033194610456842521653857727081179055947377825020904502250300053336177485752986085681074733703556703761348339913649288106136270467723315946455674879312695694040503442794711527510784730597399564287013580134525212676387613138157928728619736059974641570634896923776231750476451261836349535644933169932140996755053669483045283366824988191215940829809567140881119051003017191724980695662378030090136533380598140256369384674739206912420485634053905317639244054452796470091244449223537438921899854389148821413519728531388138968263106797054348614346136257177145176118796688391460648057417099929280798359388164718635335434524336136817566456509651019739029975630843189655912306433379777260170438733648910699716559804228195146675937044652386735713514871254272328160768861295485156807416419698309674120483930376667882585012546405547628862106282538986973255235966611638000401628985556787303411190918397810833849210751803939357838496880691135556140000791306392928174653221517289977391382380058752773183143042271314045040388891329163550399910646188640710745189751065859668252219826709591671428767591204462768916977457374908351470339479218869524040681397700663412332970875922639112682417640244182735953500500461285807265808905145325396971229666802975565892509017578291890398935452823955322397575402097231501788022035893213325136222612434101928619580132058179355285013841147537841166943549597544372596405374830995010088089656839082521340156816350666765659977394030131527457409711658262868161169857538386419622307190701783537760696960123515371266284438395438248220491993357631605109681805363673949796424540337931601568875109624751575555540331996703954214088981505371868170558845645312857091407446324301088919334863407026098895083243969999083027319780083019318990485620765799862021377584748735640021592363490882698270258977016981284226700757361535208749181098531477452468497315007904731595554474368698798638418408704682338635551898464750605055479898335288017847518601028902420674303937142516356212149725597144059991313124372386625503482888056112323219076114079501924486033519128736380932283491040299030856106537847593979196070728161880898800031696292978251097125154281187342045644294182231662567181917726782830047236883110918032027145898049007017000417481879465217857748941078418857077844934284696642835222764127128102103864086677186178656278113519760917404527263153290700282747820602641206608169937775193516565601769593571623584616386130565981088349347449531328747672445432544423948981327369023425466227961052546406168038006196282207815310652364775388635822868864994312127385840914583507983663857577160155560834576252403713725573771445296489462674439354435570495443270952102717323415995499811096648271171663717003041706125361396164050678997943183798588435498109399254175982176256272967791981171038539109556568725569496186626520619256582466638804160505618319539432300747431935065518817444374887653175947312840717225643085891406464624354998907551011012937199099510627007194798134692328276722527042803382792115434158914934271165030731947901575578676680481506530422970966885238740785361983764870279200141382726056340743290761068485766716090266967383780201097874572352844032756084446637052047901675213627705961700493553806173944669155390281037748180752440537297210205872696464344460945525970961501758437554631983457109052892608693790153424554259382647872916771308276144695132986274213819617416790080218888949431000170270094916355320769506229127438415215098467687446250730750258774526727962273863556014053057820322780793045806189052979268403154400047268492115716684120913654539320486855057138049367878431946915915903594980661848875308931270775201027544051220800541634482897829596521883061923240199341693729729568515624615277810042350813856783326944145959774604890801870004933826767770459335334970845694021153351676107206566713966989687844055767488399421428422191399832005462463246523551168061073426001562572056155270014499864470370187628214273023085358811448533498870695781223106331300453015950167885366103839889488775822575691500208721555044516794927244777819257113618929320000873684984365386875630353276078042395338105112302595538227748926179830575771438048274801050878534042539832189348923852945515826962422207534987842640032996525689563820752396671285272964504867079717468168999446249572105572602852938570453290212997177157249005857671224915383464692408636632752912738451113320010288613681900665229011052841455161696969838306316998206136730136800194270337453434171319195230845085707150302680159041837462771133379839019546317465013289204685467658906651314940878640249152085115538637790764298890270375394978673298773282310449914558637074746282364045518260636548690650303029823351013741971752180325101080101126337921474065471089345392559432255650222086747358959419712802419574873674443794664407116320495821140656578528692438502560295128865251220977065800546864725733723757210905238210493678315343419504941861582394825015082863377531692732302838225788970345176084835302605207718847170774553767691069047327235728037179355685548025635946172080422051380676500852280594635241998017162708198981921031856742141680305135971853011938535193386418521655684722462061477448267576824251184278120240046891948365184382061518284056954171310562940320659112342333229226657361674892133957733640019272628364660227425230994831336849449109908208537544564902204327021664300406379893242315769533076634576074560150593811552738618606596519332758752735155295573849026249090145369314500354889274144246981659899477737762222054438902611465171927274830108739113995237168023002445470741602744932050448705909925576489364426824425176904968232036717112785429194503785190172466126131162787407602741976298292896801564686919394309891413439848617281323399175163960367004491840390102247665164796029570847589823513650817176385612358232749692250554764372461000090430651200990916935487350649150161209166190644418912696518429714953263552627662248550217386162349908009046010361169350251901455177333188258019028267989508415424090013399007638474151831564040597121724926969515457401530153163246808585253055818041834745886842962529241875203005630326272116531392856390860412180866101534012263787434751250801206810777450077158568213938369489190099926454513629519556782060222207379445827133176051858370677946823357099938937858841694404254787910227734418195686925115804619441613359512450851370864797938085750042956765023362908156596104612982679823612754800049620978199544023428615512197768086324772197399073934836562804755103108421231006142251184787184643433860618958532845498162569213139109833782530465831533304982525911962028938434429779770530293166284299867509004656773479581936306098791018095912064353780356830902177027732085861100012396527642684875333346370465566131813795411012627463810189057519774568463740087612215063460055950074663042115164711181180237464755006948185222728505846945392488068355982782520770786465053503685164789177202689379871208843197127130393544262902886779763228776994358785635825688448080141893446250888149327279082403454880205875983998177787197225215100198119362997196851483398135739868822065016754797984548563996575591905780352359448633359486629218810768283514591411789496229079514412219276979398993954957463064786068737982151170002880338387679520987031086328379161456282503770063457340824617802825683435844411379392101845950534721366542019011961318256884792922030806285938936150025481769101262702761790743069359379533545745463769298721735693892873670730840654350596316784394068906050980766358105655242478616754878323630004092871275914439342491505706732247759361209550139220000325007742764029146921676398838813150483383442163035998867819747692239242236159443768143889244506631708912123537138137554393113208089308545151621466704050231824808391704540369130038666488419500887301131679164099901475415614731167429394904199378790208995127572467293799588346247482161817234974805155772726750784108003205940904999415132264652206943599753700505978319850662492011109497634336427228739634690786063572848067206613124644517571894156985236872635976257834621504083786544376421423187936333061594797957219871757093064357042747420439126075515508494733833368572732875110089167810972341446000520189886872123852093472406179098087290286477904484014227766757714155989992498200665122036211659267885971074417849330336683337232551181527145343010926018058163024878012202539614751431248957439125190575460731122123554898490622066774104955889841287596535616821024595263723869658332078602207994609579682676722311970940930537714821177052378387751103005329035561808725224716506749351660247614870014012068096896109003602968502248307625383194108302180521632578299795400206290436831948366590622381697679047882130878506305468942658258455642186114922016325515327532143124338571997805832926571236093648338115184035528821409857522827999700577912472518994994687758643488410194512307899895243044942046902819138923853231952378349904080334989720432314032771515320927454520678064932539467301810730638129082546830929334947334729516935205370619578454709841738950121032087048509477284359469522015984997792078506678667213458150781107817851572396453647898731525023948777443884092054446888609949573245470629388238015516374037252973508316044454937308615027507586722927911035557813538337004190066675793476244117714867651957633132059479201057223689034674964544147425356340043697764240131679378046110953343095044599092284028522803228317189454667711195884793473859529436778857480823145306477487717045389481101569123246148986850779106928327659709052332265384037712144630426827789250117343204530877869616644918024656395548538635722488425978899118873611165608336909828120534793472977823158419113412099540927334231479130887342638991149238753943636837287877330140215897030822386367995783584295286818646326261192178370808504224151004563029309499726232466293373229134403533775212644022940027759214959900662252434942945402372171014431040998974817101471410039073300904624609898409963328139658928899161492566265827960850994758006041839082264586471418036564524931660009500697485659447972309992338490337194630832726757675778918666929173756866646761396507176087796821750061323400599493000470027325947268061011824326565824312448439081760398699388132395159307499599602749781939245650376546088977468211467772555233151472265139143292209883957557818981344097011772369699308001883503111909665549111051698972720574357992231828073769674593746724221905074119042628003649337092438948338614776833194738826401253433985235431346698990829371720522386978950553504397490162264736291253946899534254959269908952097031530091924536086003541064613047658810374228152520652965966416167125615360041267649031736875860443056044844730595365366837549488083293982226383115646995924761801029173606232260367077772773056762396139783319937031968229240297946957176435279883102145113881561262798900643345460230432051452231558191838041774790736640438949547777841717581056274462095306327456147287537147036487535898981803780680902434857086005110329229143807215151396300144667246724040954737720522440893502015059939791324175057986403178849931433039835536670224852398084340711582437416401916975351244803162522971290983647628886412811050773369148947749908953270122656547389893756958885518337093777299135964802620392846237907798555630193260862160062570967935308989121521287101165498385843950448770646342551059434912331300583682357493490846490625028250305005597171770530249850655213774387678755655919075589515758158662009610740467192922262489803438654438604864638354306942694893340354438507613176263810126975517094818444355767577036049106304051782509843547741517200161282753904091495711923914589009134156908979895941641941494534155881959256212526303224423426746191184663388220344896680038052565527765279124199440045686255678715619704936665863072466340806475907995414637483762262489092841474436735161304485448446156589760961946829992194431071639000755942873925297135688079646655237797780083847645532707999314593136654062117685171893821338965039082078626449638649391485217733996466494750778682952015162121112138712518293855241800282279923682324177266927644576596248263226923738729839558815529356960260278257448590116861370370844501665319025455851759660775302064915608165596598732166439963384284830344266524029320701309101171383035170723914032275158483330350747633986194468901177096038639208131477812172895813945452953359413191584243315953297992052420818197757158209126156634555664182048209310897029663380337517537348326712865530675140245649195298146595783774275892968677317142187066546860842544846267486852018983114465792566960670282953138750811184970034480873326616169994600624256015197420121764862926292309229795750174981098137451569578521419070987474429457971214553652963844825366640581090709440543460393257469644207549637937349499227709901120858936747468749292216808177808171793235881774286078456876783081343266413771097240106903621012689253969222684718978262690786870582977692574261568186762944608507717809167654993931004946943738309497639180882588084654099193186520025789189235156674469022903460832518601733175269365032881206513283784539472088427521613836319411685788057144241691112131291124591692170578329013214065915918038619813494053691875667104099635967124672861611914821036360741205940076172829147133390166226526112020641984543357721529158550499232426782084527114321769119251842071011354848958038017963513872576665292010813086563934599863692591761057789943540093370472026837830318619938682137759371296792565732068667369880799088497674571458724031007110208226932235935172880928978589878457406664970079324754536854180585131119082591677788627386954217218687957039787523533477439922793549751934904415960423214161955529052860135863330954699074222489794151954900364256837860119097760831495905846298137893059009873362498106946408023640542544970362587856279597975262942723672861774547689684047172382236688404694391643139839785764944450663731952955357237464703988949976133153598240470415391586480207721701567300085070080953996646432091188508673824384391870837416419523917566557667004354438219952970836569120569770045935843873478199859230091821684285321733317790077583200060558399702955403097679786690357614410359526817061244845193138208799314937930922268786759000355836700364502116500079827388612409200302486317987936181038046147668369071619548977754474712556619796397978028558700037219365231645614138049046320408342509536848362404306435183929162895865589079208443021555158059442964464150001814228565593208106031305952671857065184200866007197057430584446033673283069785070767913240005986968742096290202079456327853660955790719056684530955930371731078789926261802127903607429339845480055200525473877545771888678849056731991103607882600654900249001680876947335765418054952026590087756058428568787277448242241374384109071504208335441658043782516439522403189884313576530300566837452315759887262517931544722375697403714702372789565489216652535318417964751972883279822342913168627722546031834284441565058157849585288465353882572840575738333602437460915556608004980934518264329263864136003921081235572949471019945407494586232156009602174040815506637379952137184609025230056323798541865608146529653851312521461830237086463785613092012221913738270985228568420459916793448572156926674623563931533185716177853587031352214444014666170743741789580435677137040858316483383228731906214372913942817673929919939149126240459420379523264374674793384416582234303638662405614309116966010489706999695094860592590101439865715962852213978106173504696831088331229864206398650049611578115830882262702242920234178898007859854662314008451151099307487743485415654328522106488889413827437581573270826498389074077243353256763727861239310115893370449956337929604363972154890662135564819154755183570639775378927894243777006015118243550448825904132066173194895734563789118581776752430682246096953320756229940445377078887947666839392014276097776269098605920611951822567053052991537802484672423190311606140389066070138119941163432479002420221493348011706616687158286337627599768506835683365942895489312567620492018220817941520941817472796925123391567425754364860413840586282011772877579344176016628837709026555644707901148799419355345307159086108333481541311678985911208406672486982134187297241044363464930413668512220869235811546798031468917082885132297329377432289863156308427526668445967959716877947565740407261127547429919825291219731885304260593545227718937591472300082048343372773970571122867672260341638989921999871643670708228530178513895518089514744218577255510685676777899908696212616017871447498791357644600487387539638274081345126125330624320366965095589829939911411407737756485026531072420722212333120586084163561259969154210304980365150615981120748546327225396616605082980494006466708505096541148615572570620350653076265962538693499555387408091325195701306463656696997051074904051498111731495834986440005024488885697082300401894509155114886077734897824594278947387304336701874775161999541829781535305597914243622003351429693938984325024525322638909717570762825709226113720901351036043123936968132864429696786752682906425159410365934235623143172580506110383367836348557459341659667463012464731845051000750547974593539715504510313663548837621865311874932625931357402890106802990453842476785484050624343128193157330290124803494634936267410286211293505753525371571283082567799479006993233272026884023653322197981761987716718889473067566446715546856543591648021767034775924870229250436759477277622809977786282371948167103881146355767744180864160496943198042267550320575943353878227908580865324361391439407240631112029481851675866453630013788961097099525354746106728674765085237658165978893717950142964687767230387632807651346831509448325911539011763556791426300719336715476384990450861023672786882215301706523243640234825004742495007840663731332345497507404834411433555987272586949473358265251109930691425528913042476351994219609367875775841886976928847515272128752947196807061329441301408831188463071474429721041659176776734120893114539575522544402842004973069704173599374159752305811725836092837744084762349020641305447979584442213289455863065111049670039598453367094296599169432793863697080476571110547254215510435191571477442791256617030183476345845967770086552208622636616480000163212263846968101092605898592423852012321796252254905233634862855474575277450824244195777583200559897716299613182299355442804434802555875877693336592073032651631612908220411780786096391082963102812594466866215097703029795514001828321690998234875942031959241804090602941054938388731123194059875602250139482896339235822593845639894037975431316143354477932182866088791679688816915242374254772558241229573662173724268655579056730118978609357792722932773890464973006428260430227098358818433181193677866636118300712780370099683450581288887483635413978640000792995959428241406457340022251634270373723464294313190368748815195958071337842792467706269054160940538304376144285319373765095692673462937438301810556104494951850713144421364641781658859759442464524065901468730111021742594594303056835866997751831818778455044979284347079652272200860991952493959957801919240339115376797843796494609053720391329393577254954787550999600561463148693157073071657549540051963347929325629460485002404038994684197739255962561401856775906959533150285775279017880644201848805278713519204520284448294487559336779750495652542422149868335768507309859651480555010952125427241983836005684628640152031451917656921915658464810805023265821654732305366502281518169107193234959361968001678127813378407308834077309925327911893834450121354768241293220211455354843965679433639249033021302601340175752646299950948587329321295887210461749442979823623686726417383417131762154070680341371512197993769002775847930893382538738514750138370755832920664479605180577611875729849025309904947082483357772566354275785307178121105795238642233353190150341186686800654157568289947926324618598192687559686609988325116375380965662301476551616949352966265055329417931595657959233521539064930504346897296469525359473719641250434307838983096253311157819030365175248624684248765860750373835476579844059944328064154969159449581219661207413757101940261967176018146302606531103000112176955092872612685585649872856227668744047204079873847740445326927150784519986528315399736110261979258803074666337494101367109243090614842641951191111202751071311374315671223495903417361211228080577342995783038412202887735542995816491965050974641421886466827407888629199615533229420915801918251864796834093155144075946325477516594178628108612741839157529222791090796126841515975516399642948423432834374380812325790310741097962573825038868590721963606083277352076804833540733950004723825329351956780343901987948404626923940013734742890822403087708519473033141845627404052653573725973680536749051381862519842395314612895967556265767383226688446989013319687863744471538892150268751921981451981861745791453435312709535750467639570463198341101413762399564524095663341413664976944276664904253720101466586051901200975868248777395000748238130484993167377134624241270716110288642376718305496215214484961472719840853552562177430592887851856495855327645557769170622976486835023529867339200920848042217455097444630786493023995465784167577113124873772357891566323629126896387976949063890189083685933257612123376279394361131852737707041623623294926592989231137930565722749098329871460523350125469634812396143334075305266366078461998756916938761366297979931740949068139935036753670989045137249433367372668617844905237446229273508377323825941510021044833749386642936394352928843886468932298055134016481825219678414627365928746827284954331592604048701827368820905846415705870260178850025863440266554899394391379664013418538815334494917493310582946662674278924444487222418089239425188640536744283124994768182081215199784079993512347181004418234789706897688952000181157465484274828723169159528604639189882785433689947733639799557634219092830163919057410042129869826658532922485141646918984840671491907872896867576679003186799346098366223601144385342360267545574238822856896185483232692344348465091103320854702388704172892014810355316700786709879363875784864096438425190059473569725325992285754368493115330086178865614569632442100739682060351010168046137397471053098672089441299712930360556409097635299451048461297460358016976395604534011802623602039298789231910521450752717235764450577824188550747662264255652856725820794060390331051760846337210291586887438122729210245339074747326492752871429614535303000239236948662997468295488836353483765200210516986532156023286583933249730219033830838982601130212657886643340623768653949237141727420888916979082765005629567585571852926836730219424750669749481407967155625533271359054661852275570422492552183100699334101952326969967825077731223301573088197324873124604729128109108663729305427251363385104348363227026101809435182018884937593159696504613747837996140830315448331653922025655000692763486955453855441120080517464922301464510805753365271090458636884166533298284694876423041739804656200337471464162665008946135519593807716030141563955911959067596718272270831703250817112054704890016999152060031893053805682196007794687968464066737919514978742469288141855571047577137355297879073644902833345536572984932359676029710769942727478774895123978564901038801364007782540184310338146240550415958860354036091568796970822500366948314774926919845932728917443484146837897352221524112034221078965880478715250642728131975296488640420984612311327168276935924531039091272324066330512560938422797921605440358143235522834214563029578423517561493874048801924541147423689896726690378330586347738980934138582510227055781326591223948475528322165168437844065674091821931069710240569324856067486464873991255466063984086511361916115387604343540449479726460717309066275545592081834365408018972316691532823719445708922001711706393612172487765598933735262381274506323618946915647909099838634709772737292437284952380816044000988573350697664681217726689608696328682212360139851687357785607863540801113857598323969238448324341588340491330932877395243165426422182109559098419298925295227570782176768500947994414346829060558818301675325403139909423175693834912395885436828217604696832619012914644087849178641942635668144125262728230863511508080638002970625639737228326467265772399798036264583458144837106321437107259795417121548374546139096531753063816811693270550940766814327746396021105965338401626776699720673167729137590193385571637207812222108405199600738162673473078364482460314897946709689680635094713260037220770656815687836318120713442410218083843640831769090778777554521466405902538211050233630413418385534528257171958758980117594650372419901984468967489361535357726146310234499419302748142318700990754836155721126654255470065424969136760977850539020410495548291875305582112742899842175543690916877777514382240687812534650330385465186281326190298748381100931510970996084608464716654610917998283516703388348801183908025711973035759554956478425292023383904963896817775051555648251040400507357344168320817437847234945534790759574708513046760141706324575658254796266408782507100370528428337562463156403597065668993621593129423625606296954120176530264959299698981117694713771312668031677116758950662712701668092961489156273505522604586013414904836093690069378107971489863351653307751602805742885586680642761359497565540673581016857495358069628785579353164212947137626785776586159022076167762176125313735254423238468839479341102018103230684165553270838111298981663194991909515822231993418084797908754647528046498799148809006363645232685594500347939295852776316215984347241426076379617779735633397052762280416509480164178984783089601192480777042824413115263708936562220895289129913900161260962453866858101361059168174876330850348503829061702152524166294161385714751822884589317083393709511220223622340152169355008080773954158400112227553818684267396820960549388782743488405272238286675300995581576424394260361863238198655967734277052357221815891440711089318086081830163085273103318627665335270650226953175961507571881584275996277995346157427214952095370111608389203728414501590288757084821408628486574706499512774656312928699714333806313419198634826377417932251494227808921973456432094504581825618825919657611396461156519239145242119439698290195728439997575828845660735862034844730499127368377849062717230339373263731762408548248294645266731888917619189510785698809398118226778515444194526976288593559053095673958527326049863188469318653225286752416276258712469072447198531232786442273931382021825757278258245159792816693566257569950643469502449494424144162593911954194812484865214160473865355758838871807279856030468422203995027009154666477851106048889438526357598257118725356485238821555620390793813750868769591537352075261893785020057096326200339966497848913743342116375877925444909793829941894145891958289353544892327946952877242521510563985548653505572999301094666548638846862063669276868722788408266516809880885699666768412163109435792889164193255681852947195070118167677880928467706116158287802059439484349196522631402812550835104260072559933213961522869933506698847505053208565768518091535668633993960059300469560166267926166709473205018183534415537906451010491160867817746087323772505928705392620667617730064524467429145105632650884680673370217370044722004279318532770898755336471818454883501553107877479892509881067048097080418895307052257892656656186699141257761916976657831726402037499097483392528053314737341629173493983843445867926259944258027148665937993762785137504177502298496726715185694461363277319519150941670779113018096740724145411068505660027287641964469777547683321104003794789300002752325425059016805257323849601656542522997752116165367713851423580510855096366779816212066047721443706416525884804136000823278902322679575180268009845039727827292286939824965283019216707380550499500097001537144094383834819017743019489886906942117014302715829645303148880363881695844420075797825537244539943324863167819690220853827956093736705988712207101324970978671560038171551515514554397487378312142368593722811367704375852826451195442959843894395577446186759293319649583525968533929317645242193047876091713151430292719947708503538448557493876359555550992008786640393293990604143694655644464379717373255711507301470960431734851871562790848254698076175894277058878465363837905084840122378107515828336570068210507426221199657106324730823490631605377444944449354327723770097536852538513798332747765504993574140741963438535415728079887591194357229178058075757773972004269517028462107889286329628522236898882672662960670743103380360015775255501544181786513725500533169397354485876763984778329208572472024477783165314608290767143085056929970261657133569042976406895522443259074240391873537767483234131982751811007546495310430717776862044125082162330630069184140428310698329326151687322390498627351900336365709578778024014028774123674410685207954150675304632790837811208933928250492256187888977483960143391073119310145787817608066679215729831154814932715502321467977461479351507464431327020846800832456493387500956404153540016442785255447987749808961950409647981167113322302490266132094501657096252445876981618661126682477923084461079089352363021687861853136955231300813197829490884747483576284345656865225026609291897351836369650176623285941148686830943492759318595527986196505038474938667443661204213637236483079608217662688896778439567536368372523043137319137495586479968225437541333699427283094028496946014777466857141435978535457607402538670034210087925799912680784510147914654387048157853171551304820761511283440239713437190653160328163490908064091240789193860702275769833640856599046630021639127064286182908671560129845184651429405529979820948771906697291982027866453024978320586584616100441221043017516431370407593962193078349548724536973548398586784745922567448453319778692577269623414450552028585659471528068299573369322689692421765298502688302045885213958502664607973971312293339266266809142496968058885620662009256422765427798208079169895586440418521772173421319503760813902164071416301755641950985975869001177000924276772101726106879037767504956132149258356518915183572659787484459937459517575585863017959685985193654887529378621017119235759380419655791193381928210494562652098171452659511335981468856452622986592468876786507997735695357203245835365282477451986894174973924301596355809165043437919959432559092508288082831086159087359798401451549601712255663568973092420816524894251774478470724657922441626951677737242114938397994988492972623836682520970665688214201971523003349415311128816075538833165195759648655921620518856734358826323756961439088935320602388432556168214304728167854243086552797763000186396797082016780094678562211155052123275557353780238723908438458977436056682581771866878145558832961203729587711138329756466529934661802191662404368282188503655976335583358369299113583448726434754046277545545028825090702734668952934479164367271968752962466133016700596721403985607409320104115177168655484285384768864093510490782473254587317325453299980425828765286527097324623451021424147599745475631546862297661786584851635422260064272229223860024544465918018111908507744287919723608439356375353761152204940205601900715580404164265449436260572488400243970407582161268546405538304449262382922281324100644889657980016817687428569977280717639784956552190432426354238720473821901233425546443140333781913366568821449416299159563879830693756917905402498955781425071487378446997707477725952382856352893726674589073477804791294072421200627701467887058546223196712913017585595347958870409667378867873178174708927730964628742003785043090514263315347792968808094643998168341267814010478393210472025646730864557079512246557268918095168300069618713885406525803572491778802835489832278697957993513731869161396439613150194076781970964066127511506205316741675536680122310396490928953726614617855180452530240042215334807805757968365929179327803574555533986939215423049559872191034629703939727949876046847025176967112460069233645460665104133713689632104830655335901894996380624433465077786134653031588556602094456841013386239617474597312295094151054052871922646198175672374007576630505774401905336426397093617388489216427228190853578360236138056439851890901204902336260150632480312809420200541568304764088257326724815989332961684773517878337119328545580929506078765760053313550416074244298338322262365020950633357554874612985309577372390102906420016794641102793975494536257597817204520647895812671036776562052631965508843814239116295819388837300335411819017534960110016043362950985959814801089886267291724662404360178167585267154964765353629349745053805255808382444353917420176427219609991778912306541812118617117710180077296112102162350798227032820191503556486986835575485017774696527644393420088929485761441178102813790642022201930672983364362520190666166289794342200456539862680779258491707608001832471919019063363174979452522720954679653023302323024035093270956324331439470946299866092284447828368441218661044288754339200493535341174893761814271859588415246951564013733280721810168473694348922932113142895001929566193534081080866320899286641706268400180079541878490956262584897954881627127065231591676707271471098807809312583087272480904062341609444131750708383409571901785384308665106242278347509089753453928346486742778434002844853523349770052058701357703746502821230461587225115447475681133294657578818191834366282202395757829944980530713239730866637437863143523815876474604453868624591094708602417682510820368514664450424976479201930511608747421106157650501425466794400477278431761725584222780110753704844536659812945119381838485702908267866513657513138215142487357990171179720425204218316722916070972629014569754239869226714990637136433516978537090888582168351391217650350014276028456898228481387577203590534525836348547524049530046620291099802760683984748128844581263969149845384581258114387838135066966708300344094653518240823798274812661041745946404565749141031815327977201328150733470033455194288568326625490243910268161461382022201781910709984965949089122070307488347087735532341660466608754493934961093461004193569964233913424003075262111036367749308873589655660285848491090580409591831490060662620046205693793313195546746477896017080379895460071375022307687948767116016414790432383686819638620308212581087465920919222672029702625042278804662051850222716922041938694161575176025709653346810492079593841894943914346218506156038622005841391537327781912062164165071671796964704382320640304462249459511332519926038516646326919207689487166941018057061234605904341246046040398663642580610875862060698457486435848372253854289414289167682153846327174401084982674767951123372688837333549006837315208925220283447974950784959261149075339255052602476074002444202091586542614114074953697563201487426276427825802442701029772295487647245446352425929971306341294205477929312372248278539180182986894960560897149823401201701988734768186564508747382145633297080073878918826224565517820804752164074960382524955308856129925433401650046160238365320318548221149547876839512147742420967453089728034917903994269186922877426169915515484664123165454241636572599127016957463543142379765588039448658233408078251033810356663608833117506487559699590921534277593994154875081148282167330075446275957746289429142076829269987380697248607372942678902879291007396971893699226285645762947116764526824059783546337767967735653602106460575170743888786333327579743607449789047634038061156226197134662429348283571030910556106422846116248606589625664234537437561106136595505815467237137865768197346529341566616153576058430331990197086936470224776796681562227021050428505152475413414936342958226761967791142420713121494496912172619384603188661815483382842885614752923473587675359131734513897944193930743191751007991709871256449593930584452845061943598907053156693308789054456831658033944107959526127811777268590207622978707039411892290411420592637902563332456398079163670381136542232120725775994968004378687601030692532007553500852246789158406771194644495692697994779978879025901301087490426035078911386894117690254692144097249033181128797113052747279425525695141178979917308010138437878866820126652683347730995734297308986712211571407849841925871794159215804831001866514553189852112417435027730327373661644181157204952716966138952028025348887627758422499498245803151172032554254086770646684732017888279053413708306532768568896978935570677363877800268722104409488135048509940975026552130388997617156252139484297727031153807326690454360856832668011942555963745549831752199171920454988473013430684091388625639653229281106280927901362021790973741387915569260784411871899922388891464828123424545355754501704804929561491123058860715239587382077145860294369047850794854808498710379378601904829981213976184866867705937370618622965868230153052815316827001238109041416229532643359474943378240063438636333993415173845510375529124939217162425986789231581615413564579172610921525108759203392058520357677520359054404340729532264524343551410339363699620229093869118280224810943521831862047353020929793202187795444057141382901694798126792356975549691512219679784794027713429429624332856231418561043232375247764299907992539216566453184724400107511825444765490982840753642748172655850533983327295643091855049065087258284990477026039102944133446427246242089433468251231043097196429320971476765487359183393936930971166236180178585933132908422800114991719767222513594839756243391606670365753265289810762282307883940775219735905917638117067751553068421065536993813006262327439818116063270207897807145527802178394642421032062580007231437792421889254099197899000607801855286507613185329971022284092949541825399695164266319596462971102083972140464705940228431642863480956364421518654964975497636581840027024185736496853398873656583658357001403040542546661141607674746832858975768732498324979202622750722249265876945815717117146671312753740143659139737033407461091460398205100309362882558547345441338110054330925473596131878802532492091678910715016224607195773462727753708840294203601218477977121000015833891953041655986667578680771972701424488493762817946226793276307123452064104814894088183174900839053250378359677544080147002212088754325480241177221854254788219166407901375516937933686372888162844772399071869379893080144721521156053739351673176869037345066465140377440073810195181844245787558204725271828011125549331548087161104373688147628144830951006064722677593038907255697677596209653926704201548327669783594486138972241544126199613415486146562910653529433607803665091197458591907050745634203292756058059929270354093756258105951141720674329562856901763344686741960616602991756907604522511181660258238169533768784646776769772565299468594001461581796419017248852896753808491269009601787642213447601287509730339602634922578853204899960343112135845725646345785456223406003270794087094465214675277921889343941303762938126781890898687614869079545532437713711355366635001989665852214013104872460378431817894171565694102369077755969814170768878815205560777993584701311731110380698328772230603565035890598846610860967896309226121689024454259941599358923878326390312193064135470732332498420710869961572264632165218901552479151446062631345678755566704451858636026609655013056757076932950302175992724293206179891212152312926351221506069265184706518385465815877587688154749298812660621972355140647260139744893767861241344299480794589800551891989729065836127575469622592023090645593279213975769614372226319514709120618277893048711421027330751790206448293206631392501160231960514770941814039702168896845214609404111909271836327002859990615690521974659344025694010731345733159287706762737758539122469617120268513230702394247901058403261992634934968557640890752686721452854385120849079184112099378546778439882490765942138771184699487007259046195596782092294772975334776338272616931362743712492309960544281629532939104079417723482831735568529371013290172369810118387839171815791958208829372259885003876199356638773000633296766199797464025482580391031063272744906682805375682198158916184227716844396800932850387730292689985373244151664720756502930552070389994111497161619877848557761849488685017095192202484597961589612359300350969803244247469062844728560947673229471514254717312068258157154220034924994445826487209798415741114217151351808344306481453054024944894078645760619585789034549519985899966469350370391158717773951513011241757723009291166972125060117401354920545230189093452586614766227377057618643970185346832644776093956955005930139258917379798199510954885936590244516171926691216762996189487148694656597215553811358687752540640933874594117846670077347861032014361326089215411076934049960386234747286106230391051315627388874404392060831886622544823582992074356280960345386167238284992118191787304969454149481088474465850126343562104391728237579481919402285036213018720507734605681866410618966667640018046804128928101578019400201628700956092421152768519707865611595845884323333635956372797109819352330857183214262470454069774292679995165125491425630007848055129615253338871917083470540712768432396855993889150416470395619708576621861253448448220285243490016303878014246280250673306040532426052031006503530275117834505841544651954473888133257223537585835439269166166814668763375735352551759031748952876330776219599759397410020206629202222559988435570268563199310722705791230109400417629600405622432138397395110679643135888748558312262442098512234838390061627118486318575306011636958657043729817741990929446203230574438213604734407381029900047661347202287073922195778239476451951688275870864950391576849434589923306964862730266963185946830275191525138539757474624753370697555703873929542189724354662254025608841911677588500243872803287476381995485526144833799317409390492801506381040812414791563964990088780349899178393898451006880843414150741335209580694792923334874421203288946964267747888756607060343346828347748925880659487758294559944833154611618495131627615939866323418977145250694651773261972627528844345854627576980027645709378285625584928536731382773971455837919827983612450864725796187492822757220008345464539753150116337245500105594265644212835714416359956555921307377302527730937850344950236366159764472578143513231033421254373578055265556275133184298987061753709331940726190764221937458402623043100759283202507207054920924349882380214012501595981885727803777001407116708154630580495575618590196042040981495385326008683169656342711807779760313172604276111595702380824234492637833965383719811800941458524992747690325523916632932502352301629382130918374413039428112331729584807670844455620044620674089479387988536533914823771291977692005975379068549486330022575437596468666689556980492389434909654302440851311509957163655268310324955977041019313060897583723518689828614451324554082655602562091545514862212578189238569785967356656375991901223504048549984646016841787910867144905171732921513333529006297224749107679011300215748469337346266001883106021479534173890511172393110335303277925519231708985437571020387779708297680472096971915300439578200763763199629380851792556774553302042588846325064469389934163405406963065906806190864928725950966246126960910804927237379701046136214620429386568732531439871097847542204791014537490622048005775986396052796746887526993370406892765117540095341433753379310370171882139083659635030898136136068051482378896374207279692477703702589796525973464544774106481179310411894220074253975107728757353759607118124711214028118577354172912607799874986765522514356880474318339992705704527031891829633264469879856739996708473768954406801563107043611249191052008272493688896294062763710418258951360356468330144611811676716682579868917894869748009104180847231418926993338207725679800317165448783065946196307558556661676561966244078663780453609137168494871030596713586659724086451080473116548448059416820607138698710484824471747420559734767778973988459923062121385209587775854352328028361515924506197926580729739750575307297961852986232987792678562695581519975452561637719085738341912238369955080098840752851988440342943255877812487899269414859820208706611601110211226567135412437785320109086267273042906061189035724053730977135152590658512202616465327886005221027180301688471976761197795299097294179380465768984674945359834968102238120740712176955460923456840776806000184944843900329793511296310947916301034563985255625502745903385563356713240267205797174314413496339620202888381224110956504756969308503172121437178697926949364054973218746747902466647057891705880673079302079439935991700789318413311462741660137684797266147949328520377619835767846577815727641246432833037179490870838458519957617526489919395957752202263192018525093441941982901101051602920884143754550474829406722473349962440998854831051927550023206320230826358946308751374876134111918529454525656095803409944923521731735230129286724785222480694059196082735617539647224336060726219854346409292767138917526552920969551004367777577552386288030728620188572814273899685127965036460504973766568778883666127372141340896972013704802458246061284226319200765984471373097929829553262038385113659294601572644649748527230832788088437195340578088139708000391482655182351555525392870964393850314833030329710982957036242067760781280500228147689971035124481626821272653304335019137186509694463921455383397127805223538576998030853757740507505082526062018644876053469864639875046684585710847806683717480083712553548035233910877874854631792563719878846995859555217504317934216865176660216182398458701684065589461759050508289667458655448181981657364856975439693245270490004019653120512812242547475947898792504809259018825288275979628974611878023291525164524903989652336230593913071077546750771610080783192226424561007395735098449061812830746315953653842320230459406503513584412378599967987617753591449841330007490228409658915610754649086207685263650988142765484759754926810072252901234395033670670294242600139382462336406921550206972520881462497488599074725622521497528113729656369749837772269432799715598570745974157150515601972463630910306412969083156259654074110915633839863214489933949810786126282763496572286998559300177723150388692663988766772168206802213720505799731506582405127713145461936492962844600342229721499718678355302209821785856824050402040298444223203794689911637339308000686502675757260828247340322691612800884473645977945734755957763969013143328293012973827618907923272956989090395067982401380291310875916700586672416095468619774427789081511583955142565638786273333748110720879095346452915453492708509632874210765742615966961304809075872080524667545025804382758205711018262947707346099716823382694302032281382985072402000017753787925687938938713646727990690805356438110113144066588889782768258433036660298269531487404469858064836921810137428184622110656945743785292210974301538620843370083959954350004509486772187233921581053859192491160262272104332757436786431027678353915781214698885430924412925843178241081722486113718704559851573333226787169667456604911981600946048732649216566207695835458659340291662767653802564405597413171274296963569013308723348874144836121890908423645414475446706994301572582837183020546994576845282997542903735561341182156490251200610919989251243058861603930939213653284173942306293391097105208688966545813226727050435692621085939787847843982221869570505050647350632360042467356204702936585429445376916674522809628943920458510123665301043227195320554847087932709788621246119361767412438993582726284970918731051701229114562135396048239797961899965050176595912922485413199605353521125618443998788034292917207163108937145972679677070626081930727797131528814954948023922986427375752797559325077936772837591534449239673419394322930423178131768264147318891617763701932637286090988883489462776608146773242083576516307059024266330699190979794521178239795460364394091856822646448254682027776590593769877211407229497455619709030467775821955300077291353922912042769511719006384878286048329819466753964446713685485704205168808139919961979105277252735751265493084815681447070026238556842361093305050371764468220196909608614886154123174495040638101016870708746833139658485566767464174995694899569742646909225886736906460933972588337416871820777186250983221188082139920901911023277046655623187768307047383325977905066841643241301877210573876451361558876489205825555962777431895613424667018406222932418183189056654400614177673220208515502883447378418412399288339158222802216002734537697269808928585447518809980244119568224596784580415212048109875056232671661385920849301200166173049833677943300503214083034025055935450396549928177310487297703350894636858583027222273943449679948601062323532614854027284586582024660041366174841836919851297367643420048337986004865794122405683444679926216156423805997590098868813232718610368661064627102661318290801679736103909393852074453717244039618675928229059488078888319536786086428484398439451798903761399030795204561727416842423235722552551488692295394567413251311135095454903398783836391692504705788919919702964906501238028808658489365304502476871617223512433824545653884621444872148687627360069700885106080152626540781004205417408538235226694224516873921234623210043863788406815883586043162217228561500009683303327664643375290480480265560111242598895804921303344649454875606787333908732521810581442223802931417161016544498151399410387098546576249036755922785019952808200808947830226708356589658184636974846412092881594487048292253737778893633500568091637705328247253255449091411456968393884017663111348971807592737485121818803117012654917552426162551008108013427690508681111398503917596210803634183413514511242521710699086738481985157289855959414631335494737053201252285832420762184550448030670710907053410943389172780020030772446729920629262582294555185757470082137158691636112918982437391676467983904416045190630753512672707257884153053558661266830776412542462041376644933329046239116218813614073411032117475893502025297062679447445538846847170225584684197878946224267411383109004043616151581476102874946780780656572221800048117427311290688022006858110640749346061936661815893302022298877559610466709261864598913497864242545953498770468527212513723603196762750755020492187714468526279563968874587476978564026513904227358336527728782729753739611180455302438257909044611093462886363063204522945051412134432594751010239616341121690254764195439930268225797575562362955531109311002247042844451917538917470639846057737031098176108229630522561000695215670759735593883274306947358804189602755497816141884336297987425817654625117443790779024770685277065660590064908762267604687465852305260625046676757860576956354299697755189892896515386278560259639208136820954343397905826055435577835716518842911168192747666065561496349138402320817360142326560412469767756614042500086018787355435785306490159000347747822827783831365878736878403698952149767179892994645911210718913615981589082234237278559571304663751261019818883306572403377140541534607168165466096295080461737514237125400109979962072830629979457362589792327862168807092763375432348678110630851582207037658050093829402903323274983707782034667090157968708327720398438265758435563107771655659629557674411726480031586713677586337946006419657697312860674110557326177556962701851046429673859031964375399142970751720097220548012262419478308901306463469012206216885439031421725403464448025091687175166317196166610117788020412137619213244724138225017255141966871921789584600261120771923624837256187263566885610371660850507500949519058415070552770260813981303702613462900667163772582694967996717663149300147018106783442110008878914135360197966548269550978456828570872796758574780276834736768090717066380978414983046556910387118153149598093631439839320292352813635876040407047383937284814480031525720814499042418575760084796746229544089430806617088178444634357775927813717130499876034006897577787182014898309438468690161001312592559080254263565362896150334553546757951692801985207486340434118706274490956808319883463042902163346644065062096823888607491852518819634310886757463453214757532934392453959122463949697858321582347907493393355603620943409836270640278595154685456743786532450515251110402503334074677994933908586259167178702433892213532724185965385681905721351258221611107575270241369449586525170023951750101349278114555731344781820100676677867237283564681864019267637593546110399016302579887715351611692626914699971307900232624588764208297334854938285651903032670739174814286218085113883084630379268624261290443005961296830321062988366296712188699002838520596718633069436151557062456384723029575618869992682524117344503563562363749946817026325271519014493559796340875027897197880767607681629509833563053894368840646164614106052160206378626468498739476386690823334858775780529757468847994588138775456036203167987683279384952663454511919432100904412748503781696920194080335593147979533854267125145911141137228077951230840592248849232082350015495135555963207152627058051029886537251812867512772657363968583586952284850871738660410019466192717058360188585937167148176704655493085749349649267884899221674124747930628573277390041752159233823905812254516728028622136266747696809716182052171839462164169002580258463124551550442718557920629779534280919124496018566714201529502116239924257519947447250676762105024419769242780390340337293655154701949626573349528283512193944814660544292295834459570074099994063826939657738577667679482135527230527046991668172145420372858018919675946666216252409407775631866469800626564866315225649465209380630100855966667435867801078192135121418025274935965707575445986064795862329582006407016630408127116637194052035038265347718782542208895975088847264758994440470042821145616052492764227517470114233284985241844500257951174270335637629476651027668974620768913895009853986232878681800633551989611151451704789167657036683734339238021548170207773559950370049050163464042711807797985163242609364648824809371457718546736205350993972472630283634698268732348600848974076138980606454276014908386218343295070263109043263072427420031958802583297351823868335034247857230747926615810010249981278385378444903526631262230683966154825323951812568262884244979985546672994495378746426368894271888386639608046573351776177006566912639163293251572157263877207224200765361898738657692952272879108485482908007579060664561230251490628323128989301229338338386962824279893220093277729310490540100909096460251028035560469435167294046549163114867712965941653062422048105242013751850867136272967707009957737969955177278778960445163220207493068493751714052514070129556192880757274342638805175360867137619393224364313190490694958253243191224046498118249926425689470252848148233018152670647084556035620098053027792369163865568874526494826401470489722616895102397440673272205071502974263704029053535982842822627057278147385826118266826905602792184035901305572714808270152995837659888120606294008708722668513583484378346939506776271824979261023745400407940291215036132256330644079999910679133030083656156258449186844420612103569921333327241475425506447944191551446074671434121820762752449577789695574880374599992401739823360766527773575532378015302960329534121621041008709082783732972953860681565341027136226818108262474692651912652484954611073699213513051662226761843336813508176540419919419452769474706078041115914139507232450226903630388062352217562819328582590491050723942471322003672345725659544993854787127891123639064879984638388204318028543845384303956713697453268955186332998532933923629179097946427730790911569671603462387073374970938412803102373806505781191892589115622761999973582184636873986749711306486213930391660768616677891379561853812655518246387684595846990807556840394959606897481843980398949357290590066587647774998090548180209987732223122446533059688628072309032707587515717325960008013519248247642843246883988316254345826540089113056909022392670621865424494650466345822358515157908966077302298722549476915363589776166039724459558382766413651062238299351560349043769406841844829746705864947355685196658232089958083248646330647335860352452318160327335183890279760219273524563258717628948456809432117806429163540281429058075620854615870601428704612015773991158561777101373494995917121337200536493421489452322017608417170712275623104628193741226970064892572476868551187029503826222732893187398015993421204074206304644080014712524908612682177263695755886857190042141370514314587960891158952623010151441162557251163954543531810970681755152358953110421810698580767094741558533902517290501973022227040367269511719144741716542569755223531260759924711315667370002754889729226234742916980763647631838519253586986608368195480536493085039259907892690854487984215759846525508225003420481139088401962657134263306337512400933492507620628283989256439869128352480161098209561540841792447196485445382287960507905730839347189312515865877272212331071095417874088519243509385782476518952316372677007070091207633264815532271018426045810485375628282601548721467476249837866116325895815350889431353781925129224938335533437654964026025973712713839536001926532140105430341991750603998043692652832365945474222599840267993709045512992351377958816997666692183668954636669835050159441304288065348215354292107049975395711370311574791784883202846081464458482817005213247168387725594897589655655015340291863155795594714574297149309898367339171539431065815709144956798876555119197739768958125397587744327957293155597539709054540710909468129799137301167961617942914934932698294209717834959727520248675914367740599714327049794389907559010967717327697501559095146086573089192541235423893659327106943484237584535807212678399835129122115048689289805309889619841323893989529915640991020230438103562710705139896993859583013588069380328069602199958883708929065810640380266298781808083345556915237412148060882494842493257457652190789412375637657983561477179640469847133340913503209510875923548644811375304092322964398648502776396323965528584529528962765103704475294631822391204589493020558615507752668633638764655794209640097244198100915918005657532126167739137141543645523052449872316528313178734349320326160908616878684176515145750483798302791454714945815456265095244712484240330784199513868372101522005720328716307370915154635390200695826536994831265529535533526644930364968930657477376999512730458105282207322691299513220434637295439286756807413647394566456789672969007381873144208207566913247098194443859529838040064691333994587008223375959301997194629019903413352591002271765358933461273443613430014079527479290261409492252853778008345807206546064066420381154541852421129710830910920247627285724683988820489011005044089806396647379692383132478701599815275337557816938605275431078250024994382608481889055666014845652006369557801974658504841460472850536995423598456564146768400569756798884559091662968097351020177724466162277415582718760927390686155286505476347597963676217188301208131099721544039146856578414444931169614042434087451667503543647361894651561169598492035642873906052814211743474926631575519556029644634067788157032103172384833468073873137825837412731550794355220629084995803006200141119117448978794926369071886551505986223192645722028455102476010148722515466325668953174734471123725061126787635642098341653488665032339851469259817751650548021678945681397684468664228097737042594509910211735276922150933526352990436086633741298822032943958945727872543724263111266854492352011735640337753365738307581975339497594435061599431589023452568700269609399190294949247452638831850893501309279330030923870190491957791965137261714423295083608645493512090961989361991641607802257306013637049008524552893695858705103617095713515364430256754757123808933706622397999542983708424492371485343643385614800537663423092583848335411987627274615559884394034030218545457936608061801983231162670363226174018450665984297205695844301499256380108134840342795754217712124905978222347254347255621372163781072747464737228349966367536930821178334503469707668847585738083742375556752865918582332997784845102788414955311102318750082388136933681321733362018476997787010942869121307676831138776386769413241012738917271925449854035773924629508031604363832988154516868563543143741749978542101809682908714987168064741578477524532997398811003877891193925760309018229992861368530097580566588942397129887324706160841578960470640031428931137641829175382696354364991245575056195723267585332524723085735863760508350574165591266563349110892260959417520378873259513705683140150999998627414085945408350038661749501870431043928394126067825826123267215231809389860830410197017271446726225499299312459788812489071764691904508190798732230211557566540813052299413016799910144165505976766449845018722974790422258251131670719218966623118082852191371899107033053688117642247781571693584248329018098575111516730469716327819732246668848278430214489137007152145941686297156692477067043575480458709973633209314988162109382684466142875669862776693846949142407848023627208841673709120985370567040045486127359007262652085536717466257490346448518122624561626738361073261971657622344976429326261445605497587708309783022663820473646935639926772388586323691802251996755453322450890783873498756109611779843047123931474420217053366480870733300354378453401741904731795955609767966458449433522867979460270047469141552474297326035539828521901577113867725394568562258544790538997781491301325590822290373759639243011769316611868906578861544491737570760743210526667709231188144649584537810591791605210409521505181486471861035241315323955375298851256413773212950557890665454348144836192299829349284876051761403494523196948298708204905754233025995539567160741209981443258135081250411796293351280664703283159484580583059132321311948845920468852641208749490460664055989761216977520939830663718210646384540153665617181884094605320413461507737766298857010983584505527301654809323664361711955851931048875243376113912819903105850558613819167744033000744215983881564040634742054242758528271401472705916988323912922550889971496406083184044094591172658371933993070728915554899066173296679718804675997488632922553751286434323124226776043172710999220125955393159527749631554329112197567748410741962926562032904739419996457515749963973954208716071281326138337937401295525353664310588813728285563664475803837301039916813061633273082188363156466433509380459234862971089927409231949724170555371962875243830576368516730253665230307812915676303231645143805640554590573902420891533872612159513662200976205381497008565298430579548359548134521251718505543472394657193097095648193313111134790506400294117224265173430951086880354086775440036928557394581641241247599517824384960013616366363230063521776840419072719125405308882077774413948770683082566869242102988287077273876837487180359933739536096482133409749362158695567569793825865689556987429212205659526729323663340469584975142320314104230046362169912854715018258880781713332940021092980182088649660127502477158902094425569816470076567617171796870506315906382516285145301941021643544010909840638906979977300493153269852052337717667231620914873319058774928890543448784030097062900270324238136479591873657204612442788286640489501103044952480126050146959841612677918252410299311076510879465321110109247937718018889234614318025715190650576405855896611506104431340193321975505511553035008577415645850239331345493838772097301195249826708598890005574898658568032084848300839340434036492312852027541290170128612514679120928686384362957177389597569657162345440076651048766008840639122038296796347420880828009937228626202467294455032743376989028977636187147858575151557975599655810227637164655070083782048446805092408249221232829728621065598065315430477068813699219534607993993506427771679733305740949090428739949615936575033712287423298196988888347187701083715661059888888676101648292452523493853628175347251478803858648995195600951216991875790605352133129929043349976396324531544704331212482183921096968930737979579086172554762638493664348393059141967136368049063829562516032296189229586254840092537824600629730189627661584848799840240324288144258713871100352830707698705363319981483103862758055851164330304270144963327891763013835470879010734447409991308214639644215079475399400642246056617922611823286781085627119271077558590397751299759301938285739981573872188930809060006617937549987050583667669879990872639723826515935432487322803174019958028088946313033852061212303038350742403331698132557073694507249519718805659462835452640060266677267628322734702549360494682723683744101607481060094987814260297756233928232557714712396721209278496269973197451659940880443808856368615986950281264922872388336594915037910620831667279558259523529847971699790073487533265276789899881843823761049905883769363396599680675784807469464673422106071966352921445690570397865243039844125060915202406603438661916990000373842601359847635713348794256595041402631858744833758525423117540993911103408792097225806403661475523437459314431102103553568451197205701559660094621904608667750897988599217751240993678899775003002403987232167868454851487581577281193333769432043487650185431251741916200279576179054784268483711842673528890219625358359746420922461309236069455380990287638824137992125978857823214364701799479834940426469880609787880266504089607224546273307473542786078240053210197111375295717380685075155518754190469683993603738677619912566297552900472712469972405973240231369723799167970781779216989779498217970964193942797905816936269580384441966970196243251137389398422208777758757350047408699120943000128656362751275263322433390839031493773026909850187071964019833004112397893585327414352229074003097331008369614453790673727108008988757017396021431819344420843762493286483555094464364021774585738457925591095810268959761507729368580601085095396676571458186434888099538606738064852011964604463280165744122635208171250050660165564960585892456666167193355575722767597190562885550759952158605149736205914247135845204569288458151504511022294080783750512361552027344322064941104025773129737916432390651186142727298619159167044491281148229344341601286129372348948048159857827855588581610378827730111981193010006325281555837370453911978832108304644561713814910422894210389242535784476528406934056615383871317435196525480102352651099150735107942598241605696175087928181243926772694115553512507436596809721807775402773337405693916305660069867168564740825551613217530409478282151024189082260922855274954018010266590242474976041114807613711066380419953450566007210879992091739066654046334820237945927030054149428486948300712271529643412668991601087181157628265858634264495265742993700125946643581986472553356596676877354599277440679742442037445070068743191254273758110914142070258905274120277474583138124657715043790350075214802950529239664801165158372275565950032552534823248940489320429729877351721527194326831748426224514940694703828547429515113550850834352595352428366242279893604489516957730360432200176382823554094848390310188014066652096982324527440900486469071735553972239828165863430894522433650277219018664152408231178608609535319832895823197486963739862062077037932493617872400028066783007492255160461311177968078463428270597616439949768143754724863614939039094078915006074812139233965647364115829336124939861752426310407693578686063257214885713999999674511330717050308666323826568701940427278325671542207432298919033327231016073834642982365949023187918556060691646251285955923108523968695614220557704371879312163197392307447777217557366986053630498751023429957025962328699732968602563092658522197330203795671637359931149471068653520246214527431943649473465281458162670990536160420108570607053203879897122578631292679914209787711953809278749930860239639868524478005324044593297487083670806915753704205634074152360814196541409244730490102215742491662487525521441505580264940215433583460915429974716622385401795242962009954695471640902984707299104665418582986460720073907331634705004981793727524692687760648005807477442248299264113060538363808825522111101967002064910153123110005612992313745379294887089211493796651210657717723717068649014871564652517679815527424460910942662799305533104788589601833158772360651475218447544863487100222074470724029500825645031662862366234311390795615938186215993252481005062928897540433991500253055169568306187175229119579278982322734157412460339459098912977466762244041859067600542010848155759482353003396211406668498229584297464778098569861941887456509087401091953969645934879598661860073977801668066941400612673057651775387996217819051623016724640584373686241691687846228501875662141978099115912735028362839878695681221363198055648680521809711767540605559967470268242984314400509792269822148130984411436330537924616776842813245362476310059407067246249026786009392637418967326279039899911140739464818499240680910673700640111931479236661650632125065620907423797178061227874626760776676641808350676183301805877667511477385773024308395168817369861824009435678946818430001986282952800322187413134876212383853060406421724346295784597402597324397418721550570592843806073230251394913256395308502003612028719722880724445186334935610920176950253140823721840322968688737600263962289949918823962204801155489165509940005249562691273874566715432521840548232617499062840407500947414245753468145060436577458170649725204230742482149670771187325935150389832267756976716076604925660484581969851504880324631946123294702362673494049331362090569461367557199588673226080883378682135100183564473414276012246164639826706905880754668058765518681309027009381832903404323629580202718513426688312624308139764200889052687883641327898743887132334535543822309579717729507759905167948679554700140550917353817598626104196714622063606432996418255111239906979414817960359683673635420422230745866415580120768050416071348384904834240045751481102139140321196912021246979242139178611504941628260663765501953360292503706387538814751800804095165869939585995665736151451132572008183331958181066922947556960972703608691867291775688789138573817690532509469883429964514828091742966077422432621314924592344190049661474155606107962573589330549627045901449989028335925527676131044629332587925831514464321326867305290252063359562004545061732339933850438456707970780558741744237851942760537947863737811848590270785862461360305816750290619798602169663367841652450273926883732968335911400795801312981073302164391483824213479571872950358797707476470077554586314837603627119580189780179985364608477777449842152066788513768561509473853589376156463997648022308802749172289227789906410917749377565947205248497194445464372469178286130659800402990842175263963137365531343259303878595236087070354883242159948223707695894556918781997992531170979155788036786002034163125198225297380617296203121693593355881217766857339040562799124624003500183524650109512958591718229690800967756641741521508682781349321820389889389861502065882709918555958564585673270372712460541927460645200399122746322810534816259620638216651997776398729059837135594349598883758028581775475717098959421614511673815854103707894831091499838884354249394336824702865803583536725765229770018754551040138926342657029033329819947043413032088447273793864083450204106752196178570150277593777920498588914760894142237086374733478483883661345014270935569473921846827493018308003939163539827441958606416920430742078996604740330731658356717802312172454004588357167167136581345173777095760170772814612280659705651270594098016540265274785086623738181160915530221733825102268379699947754100355929260184174114967861107902850116444645493464742727444040794268689497744325696503226534844626400284248405317224329255065877562735565372202470219400143081058077234988315930739193706446790831546726370879813705972312371550648917822540458275321583362274848065993959038432820034857453420189903120680562258355749037056040931798598815498803148784385664872294461572554001652616915982989212271782536801312668773524194676649976239668528789132544529036639811903930335490306499510893485354147421145325010367134766242045406960620799357526083936144749921201621378029652110257651087418310123863192458413253106873594796710088077083101396615973434958960788595801283000167744352085441247362893380496240701588019837235276048264085348377258546653350042470721153379552308148535493290605914543070667400435263079230940912896803965861027321357052051006351235593878206683284512188613023471371341343399316421432771709008487690501303474094489645238734537870368624654498044818107237581596613318651403571628292589696506327729766258598016949319931951509124648547487102472033949112525820082263035394717964230139586291323987141954235275474893004340955849882585728111689914699528468321855028901094907590302301579897225887625685540845575324069908271463813689279851874308485909839371553168374983566605966018941510555410594242460438106115179436399671784731499686177905385768386084633343354686338839414386968371549713960879110585388021286025008159576986410458460856791391140250453413910352495440076258556678653292006635376216965324532360679961561460229400427970694667872079151726967321795371390194136373513489711927581815364807213856132422024387822142046339104762292623479328390087724026134996282388328746994340641206988910989793642627341356708432184459885407505402878504830914961935488463261817618152929512094094075817977495792797857475624978295874976571850835210074496581834524818396964989914693272216708311815906647778765812736261399199769445862575633096677487309442217282632467066819569373410496899744549485718674081065691820080275084135055544011882125976167560375772629953735098398787220767352029701407824535194894104228865511640032518833009438304686945995925904017775214779311176544586990585111427632588385541941407552826487947441686669673298968262993508257648419559697312812795509524481567732400385272481749402613849705479671658266501537678764877419384699407093277917831866579631342169183529098740200005743091285025416992334721402058226540076557582901259383908067383139016769185970164488910667856397862565338808573039634509114471307123833235774112451051493092731847594883940350122938600639108327862567032582231632233831711012826938636444779087992296772711368166535225364343230797024680044126281701159282289813182572698860245983563439038230473780339624647251134416168294970635251202130011159261727389540864420400819337572177646022666240454108655678231915248397397590215945056174517433231962248625134114584412835507188708652504497496503020111656293037204812072779761857460924987301440264103221738182399641866192667917414267149480121072909795791313289790525194357814943328631093321880532147454801728745452480099090799351677314934538548315382526154169158322355061615946975965446652318574358595696868222824648974618095820389642573792320968234055811814058838617835835125564563801373097611227197061174591716318847467185564525800126829523936594949853339689174267713669066949171504887758473446886241297794923529621723019672121504612549704558427373313376785876508582075986114904863667096003959657838332661889449494559735985570557098001398321558675977786484783985732999809360411794413425839906410926854082979663765928111592729293126266068343582623785106817980367657476370516996312816387284536957665219109520564145305254655500285417980176007658599644151405134976998721957027188651133693654473952179756217003566120057871805194314168031168484248356877533676252358587813634684396519941957595344541123838119428731353840727540985538141659478611680942961508709137160955189914703318583743617502080362693001312624044219769576140101180607795167231929197138015503085803434560774084199581514065326460435259413529130134738304514253008276193583293825264981839310643591166634815527997202306081510823387126691096459553721771750368351219895882843067880614114382810470688974652402457010442577440544151093437654197399768049370096372012757480417793536508518130351048323156840596760133524797679753943590119944381382566231651792917614213098470202939455430524436588132400948552542995321580086811427031523675796201770912653454340230051666816297994187935352340575765627132232025074537627405131470854421559746712567445551451963741066323166332534117894258611675393462918284280628222983995310493955699223357118476833593790242668784396148809543773891561498248690888996745539508133601000318386025230944590734487752672398460979281260123031954714551934637613864837061703539554612367478288749668633439531621539354128363307756919020060006933897983409519231011046482339803690927870832472301256628366163394527239111899240925420806016250528968573721131876082611099148484313252876151532388271993854223177523264875503347920287933255428271841719277941238475746024340320077855713451858748602871154541193407877675829339299988837489186300842652790640154461064835851265919134409102304223934816327228919832705335678017786817178544780689389926778195778787151163599341808194023100296201005483455136214155897221063768099895486838407480804083239886513868561042643961036004864877781898669953212072200092152982168471622513431178677431792008386554109440492503111884651643392442996611727691987298868105029576078072969660098949978390998876944764725054518549211201731413766958446457146057226551359495848171666352958169849809974492202893510713639375039536663504640931076044047857214137920710843874350611872345405794086399323449203292890874244484468417171137490786220844828060839268571173099431453046691791964830893554972826390752333622395237807740191303943136412439519547703650647138242131581950676511722347183086346671458434923747066937315758412259220565451697140040517767544888077136922852534874508420858030445432589424375286472282408351906586545889712206864463047000696415578410043134763894544987527235680403221334593221140520386038914095417141288188111679933746397131703109868409904045762497399707631946220051356611707651149476456406245815408230576322971771816880743580696021727841433616512095260436564084344116656143281495939291555689669496610871205516475034724601390410199011705165019782116252217269661320485537752248631080413030788635159320494295214464413837759803758283976486802884847593528045977890383570163616810863639540436847571509544488948926228242964075678334919129502864317974568315729046117527124721014093599840105057031442042795923426844539122860285805064324073387615064461205625091378087266106410041833480402577562736985932959349330146878014649184476216719139704807323072493688821637626564491208723236945393986606017843882929967014986147467358964004222544593343035654333816958336039106064939621500419396718790072574569400486499979769535771313593752133805127313447575937874522577439045772041935710079089436093556128587081741900688855023649640232842772300208864353305911692260334183230446094259045155004813716824437058272389725399884511176336477089847074813282656785190604169122121007761664160383538188635434092714522866590609640674770084766382301033804198857612125656426183478143013359392129869580068918307284598755008056343564832862223678595615267872618619286638205709437699919708106675485155042650364300647730828803577737945118931212606151206399446130564787338366511362925316559157423372425319856473921963799410815885761038760936121552126310617955332599321881004761482676619212482064114361169351311585901974628331074877392181961897858202027701192075727060395226994807667495864346592796869621543752291288770206520491060620692903696226066666580518315976890751372796739117321436009311610681202032035853337173686339655590990517224610362118455448419259389897333805324639336628845565920733275667215789621160152893472344020999289874481125778070084098473474370083293467172388289760299792602446823547028268132191510409682775730050482584633244868170468224480784597243123102074811876422512909232303509697691245761867091108441740223102581082247793138424981685502912947420518458106634643326450356579878407352897881319125566302966635284783469366432528969365144765846439504444486519836673595265230973520707163904405943839704130204713981326949286706765967202229101732996783896043994059412619756245488592860293567118252598336986326269027181852932967336555301147607810697614981089837918493094705769604671808177969243426570030363048140357818003013411845031285068509986247913235975605570390435003391789805862695878269325323039328301706064216783379730873241532048789354832228187260936650526300780225565234472619150208050773315585898791115793587148325366482153163991485391775344824262064092787145612256546897505032642701544071848805605313246118095731002818398679186217482394165864333365342431920937999547227697412442544014691400150823041466876322853868824641350902672679770237790480349508916081103776289899635385901456921082599614206635980195373033283805918354255186180310408437447539921723287873033116076415534626740938801786632020806306610770612989842063937368314249442345348993799781896157334569941757316296965424999012504367844176017151780791679260395853306346734479627695849269267644056042939806800023671126912817764264916197978518377734441388707076360324162495847145071763326713649912425004435793485478205952881783647557406667884512474917823329001024064736852072348354796326645014532248406561872987594486646186285992273536749491969317401306067231254605882293791142522143378041989932129628647038700296118452514508842411198811904741720564989166153187158550606281853683291965796043166374927551147832228112572860540572327303914897450863511145003975055771321421460897537806900052249762949799286300533435911266057192945433708485493021656934915868817572127076096062247428186222913690371272342790199807267681444332021892862050247068832973925031414253147697869220429253667036906245591492583098744469618620029433945044717001455898087078988068883954774803352949855684528889710203519416387516852687395972427803383901075200129983219338399584402394933220985918808192756111265968586952817245478026497507754397058495463670946119693463487806357899605668612435688681355780407262973259079698993691367799836023510463232912774624084309646304129022787678412975788318567915505602078924246824294681538969813786093223883021122298936250698315600879133717731418791661263541520920468089998097671197101740149576373102183917201121761081827769741462804496772609832521156653076359092555986522489958836831374010166200564188826614636155910177103184268522428029884409997729070221329528008052013052959487511721455347802920052332615330618977882564873980475276178776737406636978769179700324498792407304288381568468513515502639457171961649755206794749611505455978563693874713306019594540483376366295807049342136166390871530807254261388388633438947559928647633753308485290537466663644131399004238096767976361359352926984522728799605862322324783070537422644570171672902327309351181963334279397896144489863702219746599029550443491183075951691585355749028668318053936895883841254112201106050186087120408091916341011824252242946214168772251254469130985217989061026553755448864911500568074909206608110486724074395567478952797568253130019203378386163601335875327871074622502569292756846381763986242857088336970028233581798941473888675406359875964803388944058736374532244773744507239119611502351137888526393390530965524066104285629990791647293678184215897483134244125173146016715089796755469024653702380019637964299882036689499402531499959755230146498324709910006946836326785140714279057819095826365253040468341919167703466777749697814998477515819656673958915119625502768420924898505018217445725291486157635667156459633468169379877748926758151210321223735686473165224017901765932506750128584659106969836340379605530952029365267204956851853288568710205621844594301422582553257987861855560612134589368747702146014099715402321574770274208778137533475640586615036756968298814350391603589402852040421400639029947195954491462065112143925773709823892710193831319682710779299296329585534236107225596634564440428420568962400477782128785867543680912652031536703687650841713288103133569320381942765429401418335277927873673865314561340847771365930994586750747566127120104676294213894451728256708394163382181084050475926898203413978450124543600673231767538927216473964672712904802998693153600859172026876621521055433035963589915380234371690836271059787137085637309920494283420010144085356513605811314655050003574541049921135435699690672330849307731450898510806135387851516757405283767754277640817407266937475501627642160823183270239801729144033175317028194093523422979409042898395238810382978688714737484227197267572550940923930962887605690072915581549404734166493679522406327521332192160288393038372485348679205243955947111742653068991858600867291981488988326479936211907964518044862644994010695961323318395403888897151892179872350065140755676181922850021991475979373667248004697693128424695998181469719209631117735119511532885508328007144964723950773235795037113091419307048422989677255370990996793414779968459618676617900247888855325623716601770772744610093212559401245693478457811750757178950337293025574882242428348306149922286649985188780929539369742339306951597283571436701071367058767225229763734411072309210392562839499719286029925912621777153882443515156545650935124653582020986986045431545207042937803672246558394427492247008316636937741387696766138582313653862950915532523661179767647091236377184674604595165364545948795653056600883658130467425955503851903851381693848350878451316543734609044186952803716592028573873836398918850659295722125141489008480264976680872068492283370499623956345082959771522326027116615923022100226042136194335950963203475904041274542138495673455102268379910356229360270193240168816507454968593702196310348202198592274590818022104584322775292039400843214337917869298132117731009062643594577157845327111374038267291433245714075947694539939452150081361576789235699972289620958493593310486772213767555865783056689085957756829326644805357568851257950433609182150690901987098184261985929279166753005044959242722805353340220712113760201904193430909030365421818051977704448222427957995846897910643379416759611076455725744489982811861886190438581266007392661823029033144463151522775372620797593811457201484712347079285436657343399295511761377018493296513636521858107409755256948284711019798154489642770652666053903610986461347379997308913754398627472944535072400890757188826337878775679275772351905534082360318494008649775443290469501878954569092912795124055398705072629705753863391746169402444696283433192543754153305357383324652795998469165014913593182550313516103772647827325975719700457230667667667221832202590401840399220783942070630091922498599483305201654698112317534624342342806228828637163350329242212197012059132472511597249901157686512970983510792335059637751469209047851208220042158356487228230755059570698304056917599389340864721856558292930084927185568966424903510910493742583197065071541974530233174724699438079395282154907813520995990528201403427023035046575728636579162343025176551597191830098548735696206645392356711505061771025962809854582737776840964610488385923606083002948408130738015853261333973271325948497946582606707043987686065874159334602788291561070108546763342736217524984006473080660743372680104570277235469370036333580292185513608647308914197886841284482657702036460008804122182612842446786793368845238430470954120589010313711304005696821326916709902618123233319520613707752161209782021833793392643178372394061904418908631396537456993009502196057352814737252906824212816214399756192527202916818081621687740612956870961373882513434857593174939767747792003075615132201481805410718583252753383852771896307385298854370441888103691084940653287952767976770715968067503546277417685788514404930780395338521896340218135185681230016390655606028483264610520811453066471668695370830988642033904883676631253074751644583496590533410748651315501263147081693476964653663570953338086675757460519903518146262408892412044189294212595205123350859738287296374635288679227772417243287854697846304590287869816956337360817475255273833252726763255724827330599071073037388439618376199782630754454529147032236630782282375633363719963641547515212784431569339100639368810661321970596967267969296877007863804485032296542894637127795391305114484471213944726101112289769897858942248590409923910960373052176879609094197132018898004152415938715534929589808243783693077505237070153148107588890960688023803635062742352586979365075594347990116072104261215702846065520659236061627829363047141587898693334373148851525088022221714893024546103101662002500406757250902181373627927208402495723258911726173071175560655344634719868036173245997575402938367535648646648643832595339030934957909273697748148386617800215560742527590361544264187620590966837651020320315441910633951865702290236992712513851579498828117448039162381738975717470447108316129930050703176291751471645120458757072242401540681605102440584432960248125001615506608684721572387451038869159688196766930317756726944984989249790102079121017853904094262247255681787427057281992678690573530052576078481512029031618012853873883818210887615066403113275997819320183907175301809278972381265949750169574020427622589031368220569626379840228094354596314367843623924497079783667584890687236303798111181241624628225219613329604433106970445324426402650996299706802914707502420480755758911931706318290580198009120645578189468088573959969521647235539781727032935708563828801340951932085785278770133607837227582953931888116212361106640051535347995981244935018923080584775939960175688415607752828316040772167933206133232369898561817455217553804321414343299368145449944597505758924430533400780517413246713901263249838700736389150713246191234491580826501811216939457239566116085097028192123090879927563171314992833620295800091892506883585333175385284675710973315365472452874855625917035796907183481188570907647520065227557581016843175385956343909583031329524362376047837093818379903441734673360816224810924379232584193806688916866284839925080291191731615968489137517050885894347678833028147935005322626491900978106950577079650338762631343119785532761232696315370343319315333002069695601201699951895364949656363408812979466978022301281418027247910183942446866677581533605352969873620827579484454775793848288960625971694535189612691077817434938895963615839339490779620055099042534544679908040363266368864072707288031067530345173423748254811505316636515867852971206319832839682930845451699567993120503110440227110888656757756729430640589249107650733573089674459304482647686321176469050531658655890098836338659220315291808227611256436481311496897693770927761403259575702265701266735906366055841131723866288033535501454654339201644913115803140575288313815759393166936022437322296848203102626559564457761951535507658480929061050647735698639234417298547750605383142044530731157179964139374534103434025768362194677928816306080389427487170612453212735595412329919995764956295159868376301464525200614451867988254489359594696515268502995301143012286714128250374739828294702711060067296827165827097527847171126201710284932821429966108056029978312826245484137035925157620557990516640638049918697049606213565025919978363499653088774147785738616832922274992323791864681783399998999135044440166405450674261457881404946070544396983606591567593363052460562619217460971513184636171443229165053579037998988055125528336131693463157476849157196473971299349569342578279009740678414876723302669272936080008259560149532321979205571405318925862394695820480229725281627208604240038491843763834464002958950703187411923305745824494742676375187631923142154747947939653805861682247852127784379411506009115367365491618149803794406423792418650542653772817819432902882557967048908653378308156779683779583318502413372918980545269876303998292337792330828381895008817350710820240289491597838543039239481699646284003833569708762773691442095829720126171643880165839597643014532513478211630685350399856489796885983343707544423758708558913118620574160515820264376195399861668140871627821888503939847922165360190657688595513648959122526533886091062088182059111024043431271984592689560578445815086823421107909122167752030771594971465345377764036990469976575694936026314968862260264783969937577787151984826488389230658522996253906438013321173284421927851360285337753991486745885286025637712941383841094144789375355528455897816860691245560247676369044592477312144515630392879289423054499523231316200047069693120655123202899194743054979977613133110371861780561002472436258606392619494548831277304812919923641646302143791537989172796338643302322478846635691184835217835895518780269867810249999610308160990970869579293689221807847552151001597555324910563077803428424416944499219100267739403230611424770703361425987372056765913172417684918646339048079621943020902497186707994506621185101373503104992376749749584565629327097409463894990310243739314931382277113860051199620854606181565795407213696609290756792701946458596358179534398014517961562995277448598604232424422976948630033548136003976280051242900997951797283770056222388438683967640787045775140941404772695317852796440093533804858496232612340608668584342862142234012149216738326970820613270813255127182430097872013839001015732642111748143740759436923252461428320062711952446957208571576541148718839754548233394243857622550575362710753097592245859000834691574805588422708566073594726058643989842764960577247998181055778620866980725196934875952994908185533899079884309909356623509390145827924541595366112009937631266876170018948241078863796509032958335169355047502280066744290273968634098560141574118437219215426051240996486539085014221781081430450398743188426579651955445243728677878918117261293399650767648510147451697803456154036764617391187140458558404985493674406989367425490648233197155261113058937203902178705044763437677559095269548142172714306690823571072714359562912376405963761512851897421479060265243695915318680540745343629392572454204562103869631394686119899129547003014036155757232138707318939340648263266630556778908514566560263232110508037934209340900686158326513320173493762173976211138757937862176908589747933654030114614369295730882548010733606208263838659829552321967609487006248837983600815068619469429215095930337079973558036925257703207923273426132488874886212244504762121209380674677231573757888013164737437266663316254783840678609411554616221009299528448658434076756323023035197380812150582381722262115313908811272209004107428687535507792703848280683895447733464509863269004334505418044333944107540797612121100305947910388395503342026792108948036560181119523800293308370263920458036942288790268494414083837862436123839359798457045318654554581466338306499480077603661318043074603297738640252558998833697581291393286383124236767444481931448315109827530167514820461349975160966228074462916203501018421944476533647447371339969656964382955131441835510456259833759629740623976184185291127499195256534801576343823833255472792262820275818522059108439219583346888059462225495046426455055495795319718463494964292617075321308561048028441722987359136474461574415848086328190445743674299776098042094473686191013829613915737238949961253161350747137391327061967200994662448569035284117387510199787388386817282676138833284579000399331225889010557599072074042726331179040230068708309250519999269181181789779962078405786921360112971691674336499297095083132405871862920899935252441523071865506385354349529432752900092257002233598653138916897405453737469811771580974102590883745032201466855544590767763417975110638048674527408047650341045009993493292099348444825165846948069196787201257517334885701403945605973972234734115782011823877055371255857647763708942856921775150386452344360815689311687264732080831184730851104233293595469162375174749793217278069239126265725460343393298697906671209567199685315022010128430410773936229771811646058374162929906176277214974098056327107194923910151842496495370186032261181169455555894844089442709836395267731678112238901785126720981402215899291923587840072288126837253477776780595633753443121823752229623689121577773087953674101663339770442443401483459809102102562615418603284826132793834546367868744516063129343052063433345875446236299476487333208461567007192626356810392883815929250558108744090940706714333352992162252573671595472607431100479070730751159421442961843613662198778808334070898722095351618802032230913999821591254066198088527724617948024727341680053951789959667934205503401677209661473652792002819808128556742672415168137345721623703406430065999456628700167373943045947193942754900463192226612534677137928250222852496454309738034491542445134318765843507834691509238783928235012748195441288752966439054715715076485253585660064109566712657328835266723679263314246051388974841804301641538458869417796504902670925203214272933445134046771734798200469346567725658123353727303746374482788334321446121959925276789311483567966455463637948948514689447094254892552359460480120005505296681164535063362112189071231651125215214404947944007277676049172328646057251272327333904285057354218199115387632110785303709773497409585392701296517230134001880383188810553409185868585039815198354178690858633900669463179524136991648234258782279463175334210530925411576013321351506777494846481940605732600710188779706093272415372667135889604112425461759250653051651937331225120899279222612110650814201747673123669288663585833304554049706580097660334852671408380433510806455029464188881964897125911995023970984583565349504461938235687421898189201393653109394381360700067923959205377445862647488861081253213188470852597542989229848874493921305051296811427623108854215399517985860200135094012126845215540347586166958908443311607068610514521877142098731641142965652795002446134688847719401764935894177320836612452937069579631850156478974312096556283924806835615239187970495723742161515441772172878117880626602217045121905358286811486227813431023166551457449017086218982282098598105665625833820995257886032587133553921474465047248362109401042183138844069151491587215394868390034689980779131507436393417740420574237939074229347502872722694390026192330438918874824246507376322875070859679419183910979720302490436074893628476312130928628858787786938038962541989020565274143118995800931121606137663356761742256445762194368473739242373011908842890047780214441515986941056942493238527312144359401956945874932659801248919494371526336890788081078527822614143080515854633260116131770646060838259925847487798107469351874439217993159229379534412165600360141557466601658223735211686543051770749459956225993336084260605242447379301006326828199168793902261287472220931272831335745958448843467711906925136954031510625582241644871854921270601056534992981877567192445046967834112360624849305922555754426645974497250879174838392871082385890204382996194137100749976481271967449790758903053221415504608263727608575054573466378533358257839871623859906493505981837217476222706439672912096208976886715432848366927161415758190401687649716264647258897492081289158156009991839414892561144356881638844964900449555527925866357432609133192490216251240473676421102617169544254413501152417013982857688617375742958086871075568704925217786619166204149558564032120786321187301592561874848439465515489268322717806461920444714918325300338055359090460190259465417253436384846945184659496649990285511809897264641635032624596947400347392568550986127146665395743902160480873605198777341643753899298103783199622242055641496419013920378561503569829686435474561782481035347612307242283596078720450129771406162657826904510824589063279616250766043799028497635647923223639049205941871072790321978560990238886383946173442564297311212277174694021730330889995476854876591110941340743506938170179097503048716700903173127487583457559652021107499951498965410254909383798096977885094807915490191920246825044977683207811593827215119196215041904601093998357751811453868646960934353159909298178854499777003639499442310897911910075748451963726724416083568002866946629616502474537754921893027197989104598335737394298620506060785168171265808852831001992350907605314558462705026746441450916978768206689841144154799265675362759701188824534016402998561361131065141644871138918692486269057810676170742275609581166941530080109546926200518534359455233645736238301983374693745171856178243700812283453735060004500502381308201951922982557691316733842128542012672363219837128412663949581651461287961912167219877193035023088668173527554702994290699532324281856117708499693347838827192176074019327242530766105761341547119135736451591349730318390522092779184043796628032596436061965774530680164387425908298680207649536087026528600371550154652558599905256334931937375358705519696050453167498400403708875700400757604824873985726637122836031653529327444086740103783483309755580859684003570074390542478435257385605448072108409222485320227038995666509128867540530771572008432018610793480401900741280661069571522017674582027300620246296648780539592203314772573015893819007666278419036063158675419474275085701181579193116597528449605604917934475418908734200060606793123013416989891649765139824318455856103326868253799847775839396861185109383712583374528443829785881571797878776643194708593765242945576118676550404117254206260318402251280976951611020529353096189299319857084212802530126043383644105745146488918326615174211941194546890939021867812090511791454683338694938359416712177165660031466332974500930340204985127472230851395001070186334692040320655498544146726028478087784095261871834266914050695542580181084075049600165385262490681385540389725679870365288878189164877380055861773453835225865756141312807380844161550149729524818159652952577720253064663879114160077782547887155107648983069302818300300969662156749992635400821745390057517496501422556005743838558517185782602052340556476213289703914156345728882694988363482715637260487444207268637611996225188491829794682967956653687321331506387658201313216840566122233796779222323928154413850745869563166253522170109562006640180334633706005011323755760119177236819493444253737699790547356940512068884913755758391491214796206596954494696739188909986443432394515156362805351556028876479210003140303731758405557835483838724360628420078524683463037741279472207998287401694305734291652730416558184426174919293295116268808669513092148649373792871982404200116791811999011265438383490770823549592562546105042915561899953422260487254806598341152241434557933418853227599908234487374286823904607246957575994549875076187652282519358586802667913166582455844985954401119961290728438257204834696732792039899728627182170057897636407614802726515679505002356501511443936127818632231121972729433775140682538284236135403989488066856136991921541482351900542897579090858927960213610308828694416354046928889548076097312330697504700089347129069112031351666611232409641779474182183416018719683591623140893838904140020047634855911298568727840679715403428492246236994099997201420470801423371181948520552029413737952439498007237211722374043673324267994145876564984897190460017898719584422822529953001026212535373209234269358955143308855983261702749585559102467017835123050583919747044368169541115756221988425037845794076530832510464345816946242011578877855865326173271402057825107884936320125831582386110648818027053614158756801605501122968366498029883233605535873517887168755423294989380739186874984075562700839177937306641506171178759647174227138003149549197183642445261933236306411133197462796950229541091094588094781952853582208735796954824487613290200548877139671714300262487129604496499231395435777124722311613391452753740749687405419304789527950933684676775359778257210912297886683871803327813202378578776017997846234139356167592338187160982250272320223268900441086807580999692339523554051998026196943347234152464018644614917491650421450381618737171662005144172204224795496734086775580734514435580083996058636948632936550906500902205626329729001130697440310189047380612296398230849519989375889047769822216637941784990008746128732247794369204079341566520641707922695152297726004379621635384347297335183762868288188207296116760708832703480403571875293764563509871964465553159157039477161535721672981977136585477917750842771511721576596947534898285591689104621541076508605276879295961000883521164209986112482107121403476489114274268623395988540640520605485870615137840012169991687412032674644630293455101079809984069301067606181575651193174517993891561295784888768671669608694723889490526650891847274325406129237838633206208757208683059756769717657180967999329033008558407386384178388307704828047068268016596975133241355377792363631849935194973527457426828891808418301281116400100887710654647817620289879638355536618491746082609188893719624888795518110674431854960081693930544362572332025572465171712470796790441671509761867599890169847622908612163077066873543612721055367323859578260711069406247887688801033889348528959639525978269495706749973691916584083815403123827829069163452434733017099457914896589060274697920665008845807681217010367650677683431717024475979876662094046356900894847922662474932805027815262953519346702643218265840051572020909214929721802927001157704200857503148347591974394347337179934688769714185286809635801459170331973099788696644988419820583285903819451008795193890107402619508349226440406822461623024957443969949658593405374877153378312483583952511294157273637110085286172951447796629520265086246813910415251331935408097946928960306886703146227460535014524659036775474604380060554294385805083718008088938852725820238506598026683912148432870752184153450582135676318433015896621336346407779719394220982213476489515912732117349116617581665219618888296851994810508057799789667284811553197857726583704118457638805341591783637438181467832422644907488221933280636779220021169284936815436736992553385293338826584524496783315208586491092872699095793836679415797557275683187320505192128012564089025599053268558831721204496093597420492136841725826926859557068230528136764779152912403638645584461275392322858444926195104731774435522053502951082397556187802866444706425861150014645007972842698984667266282732613328978071693129345276559812001522838865703640332075413186826543197968594062564365072122855196176548199624979123690214848695805544773952232288984068509479871892014948927045907191084886733611702226637788321575728348982500544499818021793146691531339687618512669689117449359335276121761731007084494234734893898083102515193232962478424165038652450686492702370661195040885256682566565056678573004003117900545730444678007231173001125050451315734975301008329817189201020455534347983673414158895332771953891055912849204842280105246526215789206501079801779543952095250775414841454388716104828925906271409733238806732375472251414199000688262785039675876033290615413843099536739156117616083034234659779460284206175364949519779097811370370545608906697402187766955779933807867028815100093149542823286994541795698374729577300450796527705827623201050138979652938188826537150230936907053240468638676870740844266378102943850868689798412104045863380603295510593398077794671406641802483745656503032206818768503918068257052087514496250745154254092924424780188664482661452941587897142794609024264592653499810455583254104126487161276402558371545813382501616795636294914252908235372943544860221647464150005243064953159496040138376877297060928116215121367193274022204260873521881025394210774313845238920076583032375147516296659932729948594610799516261593479738304141719340074935195655013865280211975442517687663845714480130938499963061084260701184067719306362396771104591641076981625915927054808240470426653342223732116174695862511775161722270582460389290459202729602479677249714125396294209184167058065613948741652515243504042227024369624767210216292766468857108761158665562641874401037725147412233107665775288775735627671568805138100321537727335301258015924167774873200827926139635716384120159670293699039747472828291026185237669367683482498447119153659477902078072454509811223276007388720076750522036493136222622264157050210053780242011218797215089512224220885829997116488411631771730269736564220402410703602835714414699736250671539371789833262233713071054667812892489424441733557534378404976815440195031259725317212464058788754410210837525860172173729798549510452062810575936342084229450395605858683440672231419546816841613716176568673857437818753739580039414469913829571557289667099819212941624369603129405531573492194516757524435791934587027917751777384905489286493381626905559239739002650704729633338597789463318592199313907479587729830539647987449752283080904610779016771331499321390817006925949685838303674325305434217000878325274585797682906994040802525527234186849754626810562682240100553135438317602955044489683330939363394939621836660857932719127515391851561552046165712033856355992700438672421343020393938008637112926064211647146037859526781127309710665913474273206453382542325010262191962145368583031144592170767467091126524116736545370952007510884217326824151281469060856779616104285763948400180991097693595119274252794601017863577764460994209943638141068997083840492977912777969226647158158923448765080186383261372710139092833941670675460891773516494760744049176296429577068013268460994193246619500905419699539250509199489550469883973578329951427851047145607249555531911468376084473438070055374038559450491188636607437445984147684498305883825868276029774354308895934201059601835768338756005967143799708376205764808888163768439723710883518734207601523491028201682370187121316230216852450720668198416209441127262434136934062008134029734380909164952172541348793930982936373707413033355564779759794480485081339278645735601529667747450479343020789989006652025227490485667564554155526810460013265283152422633176614233549645493883448648715373933797822518105494501035088591552143193492029047843083069335092218792947384312029149164631294746536954549604188056464419562785743004389829750024243052915008088127752991526362424937805484584763602235495475101724368681630566792327475514702032202537689396021535373779619338422703885057946425152389835637178042665595523561042983161034411816507538642619005493989605791433232954801692675740766372975157747515226419635409569431732826783214682971480045851297955590189392021653969905547771785330465035964849719270320686891594829681278963248491458567540232031610253023155637870320807148666165598963621942742624455306914902799186984275619465961740747439391099652266550893182918432733758172115004982002367065122283281446258602630617745060311880345274742571934602513422170894862916942913586915980154968114408794532297067000608874169018941290165994821130609487667260142346123596824820630246524124679097715762930755259935975134568520870812098238376124213977973346367026631288976628054892093665052522974441475654809120502708103314845125475261917656598192827587101623344311845058289269009799535171095468167452804682276369243738130989168552417589601025415216991119412872105487200315549858958108344544983333951864573314162146269451030965583167867622510879438683550139153321808085661865228578184608652310149674941071829537640066422146598240974320155259660753754592586806471954699400528367811195677141947865136454027943535466305222977898935557879371575267810652594958564156880974134762999943385442020987198285448384666971390658399039990596264065297717349435981896362035711788130188849022092948243553137722030026597642253930414429838133264990657546566371213032469421678228696951538886478388007960199047583018472284784742876101408185396258472294500637624405540429618373558249507407092811697407461385892319263303108001669888908262820615213636040663491119375506540011024919525074274217568763754264954024275830608670628250776528213031674832698519309589184679646562082002152911487331109447341568176632211823239207834787215751281988195847941162667032155782773654140698722026326947498514798493795315921512570389367277884458564913196616092302570888856034877018986032888169178194221361672741108362598790399875544621650967137408052871034418504016744302734927590496211595642941070642343291233359465156228089156989870690187784543073812075457695098909347347346379235241191014132393749709942575066105207716650135100914625967028167391081342190883585006632483228165462655707405320922133498641012594309595007025423934628310194102370417749147144388865631966983863078356851535034508122059794506273818217900824500388918035621559709727973533087917821056656453783610345055706960054847917307374424309101865930154105377611237490848140891087676326144269140872392150407368777196802924055384612082052747162590994036199093885764260901742400196679242267281321399606261201301978863422640788971992714869855137004643323588746813117130753652151170034239955765133319425070255439954838241546257358336377483477027701311991599412549592566191100868066625498908647528273220883704366410195168744665045853123645200746952189445395537862502072227901240042548812921863058666154703601595498565410242466805050291489108121259475011813349077105649845520396180320573590079302308865689369941165819469470144129115734591719104761332705640510697709665785512576421523524780421700009345802079199013125728751762210131414806819062275604498777911731572707408282726120098248710578183451298982271932031732472902324070160600662712630922736793711801819606642735238331869341347852546456008141190042398088403232618796149556081555354072346558846906227655438769895451526963135197398229840726482446629298904746588140150491682074654020892627322840499311814426280229619230275948103557866794879267152798347808337463412362072450215390947372074516644540212857802349966886136249939016050711919094605387679961274638770848918119045415970307698822255458118314929117821357612237566584468247448847000718518563394165207677420300892979421287058732595245390823619642479611788592460152275926333863416098795135088082976752530082528948476930390289430184264496499823344228906271321689345100061713859119852120325108973353077720710798013917854857628018519850765195918688100530828641327472033577986447177535543187888089263299876562266735752060117308244931875997062136085333502291318533950826691437516173547565473430442296762432556763073874730569917951524062022473989569542526812032260363267965455110106719656164613468550745814755244913083826748567613365543983998859722221842713644666241412750700723347210649650481028677388547928678788377194437529086322872204198049738799943275905669646372619462307157531405012882436418285278192128144359607897841320098912726824786635073911333744635850836577045233279028650137218083376930999477457244735296211603805997913179881556720469189265812338135937610976510550291640029405198114548648987450163578326812464084759832659448957418321117783171084577200509400158116404004206129414079566136084615572385256534134821276126917995345731595540170534583195284204757315959261820437929066596795368606026698080083038540697227163085561293986449610159626661631777695229252714017668149732534492360382631278999629994782804555435616888844458142537209279917345001421565591720973272520962323190731543201049941345258296647019233665697845568359672519163512379037934763475779389352785547831315162111201502653592185077491123593092134279456489111616567594382448731449801397028088080974827945160760929366556139106680877284300093292831330511381882668518728044233607302922975330233595562213556847862240514694165167418132170122423913203383738230930281478817518079569138669987846754421252196272789996332186472992111045074348412799759834693355761179577847524045024023597939483925778221505587727668464555900830374283327375611470717959235583374020612929462042408565324248165904023237369324463005447108775297779602065963759421101710137808045346411510694963439425628290877863765277174257205466185677645988839964549454033076741406139613721399152742786190283763966719466893993777125482998740472795150018849401040800189085830866988367329416446289478683202490019163978776648374188686231564116316669567267611750291051672534930503636994003107572960516837868179833401384012122073150702359911611151621533576183175575395700977086496824446905060085585338605892329811473407857923026172893951333273030188504646703664852056884047907354022401492357193921221531399908517374055800978171223594850135241525343328876633598746567769982759553561953681994233015689301159905088916850554673346145511832396213125050245291033237340546694457107842506237895922209303446262306124627010243538283779394982199059237111616586513638289400671527139247187900180933083601149493058881967715956390481579456471353651483062414463323674175461659588562052182142630529643209946008037652886292735240152188696289905961078364044660238108075582945474293406547950187947691415314088215693745971239993693505155827312513835557804583980368271425386795801037076603194427494281126357573429869563339257191765595351130072668570803884328237427085282621271145173945563660650135448980744816095246824225187694672765536329567601524642893470269212343116924828729075408922638156914633008738542256731136460147286749017918608446271105448055905471700861678563216562402112231632186861199309993686172046609094148533657532770226286278656217482241703081311637392740122074182689940431255507786325237332704753578824245543057854566181091033748738910121291012979076249986201993672846160665629226689020381860831066869307943442313184817354698023490706518655971709034972620357214347911333222876231228795592868265115084174314407885777483150874771392335104908595396941510135351259689335357279922020666976781294262012428334207151112565419252302031012247748024660567391987481950582092187022155617932336499027876901107192468726036112923274808189649624321729370867557076457654810980830730371857027760995906053672251680791281395361388905244875602278109479648622378806340864271784475794078987833493637520061283284001958910165848997846373153725134351493387553440438270632733813782729390256163308256561318951407583408707189673684836492685651454567431554778715049557194370135325178392761385092682552791135772295246675194482811755279562896709751901455792602452079987359502087794413161431130148624635235453237692644000784261513264701457021551108859537491236091253465291902930634896882773798832641175452186508305693501171177003310155191411240291064340167316337796981859771622268853075845493529964539478047320818610396564327756522625300541879003800800718039162182862694632404717663214338570089955348203349863008764648341274432604709084110877800698204643489052340240077348071815499448756312515549772884396760595395151541210137765891689694066887217808154310057777837972469782828265429242426400271050321889727600773201187801790234949687140042211137785581314136676200626785679430954635845658082786501054320200768611815895175869131110925475979196592731995510640860072976334844143246085481147531117386962730038459268031151692803570358972755971940713236113088871162421241764589426745602340919624306277697178800720416839593638384783570251774512311360244680203365382331010491163997306057492164760470796037431383892991155123276281172995004927511561686407858027151063504311790052820371214280210634533820475575649021645139331488466451080834393183024707434434516030384949578626101662220834065335679071785641211082070557153396528660294468632080899324470433866053909156186371330529873166987672316733997635856519715340508272760872672614626685471975629687632912462226242498285428318337783378795217387793632646749527900649350166568869286453827428969773091931777005849333370862209821542625521480366857365260563215844204738409493054935574681799687080197343816210159896207357391386286465293124691631016249675805193253648162871829220593031651569184527577640171029022885711261546743717888583244722431526843264192191554234876916181427985847471102523329909522838271604644843444380975349000825060052594057065924214989158832119650312480845776978922379982668330440117691541097121780961112607439111265270187917227660737537567673543620098606561937695545981027805885390534437686295883176003296006753340403574595769015964363643154169717985393164316614234991251927720435939768872573963988554171111075570545958479183446116786645262538987919401027615938730809697586476536477970049432930904868031571009844939109309513804823964523407180733692336066753560864977977209183113609005931017229835423129051803674580932109846052574837709262411295931970774343198940578483162315646159342181358786026154345229519261710313403048813858489043592489688515278243539473095142009885179004542207240924411109657005715319033706041117940066083365332537313383999801038969921469771177860446952697122674886698055534694076211139752072000492592702413879840337767615942261071642823592499790718661642668322479364651817204272501803671556308540918889340830065334372045921154232967281070723445507996201795674780924882196436760114239665246039055823327442755062950899337198964592700919137820593012075123142387820340480276257503382404935923201819298185566901935379848020674938581745654544247613386051585621745459723629837205720243861991465769774777334760152996292762228830331332985652195891928144030322135077695410272343148033656949658848517026570148490460716215600256896443919324102436442800917904961320296212975826108681474955676128249268802498074119646157078787939523710999422247015892766097945930983683177902175569791400158181383181886781351496179486772913026519013144551711829255416479133636395242207818821421895005256602633454428257304139007114865030611193680585922625759411288664285688245523884534211834757853999323578521960239942737473936981183457209397661179869150333586833502506136484136075972897495166206689336692895897152205580014931157537065636390896065435349653599093529339549670557684417176642587121170334230018671254697509440133609705904352685340818962542058414474570279692210513756191642725266498427619345573633335866550243607547991529039599933854294960756148562983035188915178703817890080476840680130693197664226793885863460943476045543728859529284618453287951583730048758894018164439459083909820827836675432906698772614814694313525460410541208469915243676003675040482279078763052510331582110913621493068805189894065873213579953664293621647954572141495941926830517596912813809756635687872967561733997943710643000875344004799402096180421646367204563216583364023626191769666964399765561505710710707406763436939783715199228237986603621583083441324554300226081493819104969604343537295767479864163333599875618965776932672063740863546988533121217442441956090262063973708200231781814695216203657201558146113406956148160746461655110068736855129505497701254068421015199186682768854539197124817027719109780126374429488707593423124064738639713664302252683139806454155748860720861656525481608922026670064764827910751287227520776895424897833935477949188261613603437892945598153338144229086971892594556807747650333695109063297796283751688285348159776555625539386291717008518866077618770761512968754743721526316144657897412612746941984398619711003764579898894370494376581069666961870712334141261148490565041979441904205531101266838018312402888554761099259667779247330986775483857389828616255928895248721817228323506720916092876013719612123892434172101795898894165784457322949569367889501691669242000418598082974846292470542784593842041272395867376660315214845732102413523139403179309052669481842905182570531897374764389908109280733772990792782866239027467345468580517892829776557560726990204647935696964537311077948748700114693098072403076806257714541689132685299295154907359103301051763619835968368080754595830934940621525738333166523669017483728261485344196586691319798268384360643235143632185265005020735840962605976782446470917045757776253148818864595711423911039551114818354970588986893708488995251962319257352446541645500617438333585818244308023593724835153151211239332058318718088047778281859692997532741660179430267302920766312270099811907198575051886726308625787997047733427203210945709794428517512035348579780530197478843936815219771109998636950735266433186999627988543480811559249026329567595238666048687166937165238019327661696904989409033225713622151690407372706716785186585827994557911744037162297822155346363357189998766161224379443489805027552894322703153281078928326742569797193482499980183125189382501925515741579298168934972732625724122244699247136944522067546150780548044993406946868162378806924625116438843531839530531422014513039732919281038657541741303153767367203051034724929357058328615883884320982488454112618779065183857187304018853351265631811532570052457775298481239817152349363185772003928164531892295636771816402504488965481425841194137162147366753007924408978582026972299708961244340620325765935586172651501315852485379222130352842882259602189582088098060222054986592722677421143835970410590103731923348741265737307561032455099474822990766593792396978045171088552084566546168832318353583632301600036676858937344995871163785104893803281632425366195252694906565563673099753889374317290011038256230670422343107418535422977059443010428974846939440737965725764637648843265498493385401923766649479174684035925597645859534226362462620713050142377723869741586414325811948695361749312016572800962889777639147646631634730873138182149607724139773245841609042445168048299862754242200218507546584671943679648224379102131946551985738598774058685012826569389947931299670425659789524910042456083294017899971715312395094256940686175636073956135631635357612466441629866114601009654059821015676932366550289852536781336640455275517922052055301146566549891046568769091987624697025114052015862507529925510207716275621615455661553835659654031776818584081598449026165893981078085624517792152852075111257562873335831926919480470900749843619453281284264889236345912015612574785176740554394437722249400244625738559055829664450224425955567193112679200742355392473977470411937369825932030820769663606334618767453425333703374441928817665012204602694056782568091863460545449293988400564987191030731382289055503311697154118416300372563457854788088818815398137819820484285232029519063547472807287507022330397276834283923911405423892675906277654602644621507841474720950309149870488765880595637810023948991845917677312128554660842137245284537504014657520354213376666202066303314387388633948046648195470746735852757114802419849635973218149382394591840049251163812452386547500122685737246418122773874123818393013857796038471999155189494842933791444462775471273119565065289446465001781353261901931991177880808574343837128866319667182077038143359614339754409491477188983341533479742537246881682365599019302160274417822637419453127086752090522665383066224521087347493859570167579600091078809049632402536958090961946587003786182418478284091582834818036327209414668353214164168726119671083129846404032072723968373981681628780663730068662515891342792677713491183524499815350965411116257330689969131778630105876615635712364109594806579694984596596152537659255589444301560386514721341208322908800126954096949403659756265180771800796549694049273110983667422917048929541418259315900739789174240599546612029241816694030653643498133492508338823136811875848709457459204223301758505422285451303304483480480858114967618497762991765639457605501970821152041874040033469733444810117538664315839618855476164996421226463621299745742100530108614594473507406283206324811973960900270979368550979290867381740172519690458912379163711173130740299697301326051725999185473887853370009257235114629341510058598024962515500421761381665315227613514880834435773138166288104198079682632357066899406041186824499970233735526032779449548791919884106390190659981022329002581679685365106995279783616695277864861680180834217826829090168662110685396273586599292846864735755369392491528455307925570144774173845763630501249214350748309092598312126546846525704361082957335900694500933251112641207205019077355579856975051037292526882000235679096157792472568822345121858753688472734196201669040679153673791412232816960976737157741410699525383648329770578683469099847448678731348170636025014507529350449528476838443819156956244995579627009832867106213784590994316882509477718469784225387294630344403159047582196622109452331629445856454076106102844783517764371412427231382349476102197718601504736356584443801907990033114183002294551335599654240685040850433528601529288437592852427740950948287384682552363604406988347263522306380190166405702450796181609662248820477945849895902598000852329169203457107958835655839408026609710199277201199760454491984330860107368056305118197231639946000905985067524032067751081596721404867541453705229991366363768569144303807319149298158915220580142286676152688414014316695045626275692258579122636394554342614444693000728642227627015677857902890503062414675522715590218430019092549176915093886936457212323014043350572104894842114179598939196330308292332713149673542381213707223088556147864540836544354669260638928932828379057133010391457673479083826148877827094564745599585876459433359644686371217966002063670844958871486323321152253774497846884351212031688843711395233026656816747434722183141463895315065029290377306372150866575539646661480382277428441448866973827232800960476871561558496710138557923708884190242111988751057353507665468295120329463774966350370381759378523354356501741189272505907698195026566862364393852270047271181562426529828953403679838205500183022939498015923088208393045340369096886541441151449235422751991392700667413294715738285973722657491151061180930063361283713941042189150084480790421492993860364382295971430080350409681804038865736875441914037319670464220543381141781174296213991540342663896763798790502064638269147258381007803173530211524240829368048893790553992621264198134096397280145940068446718414058198787529853559071427960607727871468474342863825973560696516558468105731838093574660067562600324884787262014797381782151698736995408699940220830433219692332181875357557686561391108429625737582739395486232938647173881772599242567874189897411579502254186003968357406815057581844424504447132852905365058697870863160714479639168747968859273887255047812328212269732779775636170878641444169650827419861442541802739376906425790423765919335335028773127143674781947655273161093240180467637492226229344299962556232973946439280253641160019603348406125569371489072908096912582685583071064266656485617616263117916177402455949587773744681395231001723969909912337339304414165654435145230333698803293874128389351619892896814794876153855619906118451702534297622303502053323609689984362702931697909048544518235401590985092996749548216399692667248910692458290221171880182965103567705516407436227545006399785247203498418801588895408564362963441475415090580131082045653302280374002687264769755952318505521665265418842222553026303346098891239022629679117176318730120094763554962737516439936121532632808326515754385413452399210764761299847839298663204559456616426420065366054108875455218366172942802190484185524344840191771721831937868486702473776386115526929359432547462402849312814243043658895769423237736187104017292992127839552977211357614091487595483333037947993361771213201983862592441158205685386992304193144077735779221032239435422195511274315009929102653145200288525353740214960534378003435897927940011068556954466957260993314348780018893811612764488394779489673510269356804050608953019319067143520828578071556109260441405288629632374831936820881716030979798062709205239254543602773849787405196842794196733724518297780935949472284418919199388805382418558788475237628463549407792427446077756945928300681067489339556169072043792393358994053737402807552783838834004013250705466978735815920936836970431797348143768701547335841893237170538216216282588346243755323107723717190292460313615003008179838516803253243297702540090619302304369309236877844254306009715667719999593541057265961129357590069680130382729236973203510333876346601758558441748577118631648892498636211229142146210877687216275491731307773013227196613151186361291357506183010479691830565904569657460426402124503790289409964142661732155373238559869178188552376880621853781216540299250103355302827566834422739414757181137160173390902531553365380528511351030031639524759117946021707905209192141107118282718073342159624861038337194033089468660410849897979353081781520908389445612365935215205601305979447790676027296999135506353375125390715274615904870543146421377012644799793324080715417529262786437336227082416058499009316108176832382785140784558759231132404952918491116532807423115108776944367587270193353328197730822459596696838254154722342103028059981160947142618182925919819806742257364845545931877680817982462109400813264325403550943992425027653475848066523831024095594203111758509394095620079528046819424886076948537795331749113739049953992618844679715830652124554575337932335895291381120597754294116740948590468031527503227681741488133986090215010254509531986922729453755751176569645479054900982480810485012818816875318733442499268263029348194466946606385969095143707384001618761751011660989121449843602143928336181797891774244329594186575690777066631794657955358167490304432320898171532144109479219136952750787611317744655615014049687345645570788106804294588169778994724374485178914786927033836173065720136276723213054431756600563042914002037230917242741568015024790505983843425601582170117440619959539514999207615684300636245509693923409738616519181366148667382625598272436335333297374683135571705982820946720132046606329174543038497721175280599679432312191590285598494891335129203311009019131303154581128550917269056247358547657324881776934045776456652402348416227866318169263211321341627923906798679924997551332564851080242691865998301476682910895352736556085644811286786527892961300973875661802819847733118406313585364535578831880253454092637815993435225592005545540301024145228487985688558799856403949881547603705653024051902623507647209462096891043285904180866118832359622317799159310376463570832018351596011270355179068492874375082164561604534507953468844386437016197915005368335253913625193332472444539134802052508394048884958042381422951471838523320785484200969027817355216040086109235482239585843974480950222364978833176345739517309016111353642277248004914211047384564153045741230027432247697340498376460266107750956379875756714391689209093041496803546813800246450438026458682454150876258123927531177843975473068555343757580050359706529420351929901164794367556789729910569537981869595114247211940288257273640919613473984242908890665773365794413020750007443423377698574557573733913784528370688177152520353998713957272416742688658849483661843250013417481241396042725523230926822573225833003175411804189548262914912863931200828816077855259006584485842105238300372923516957914038989491417968612850649199899235460973350423715364226791626387060791667742657466079558476713616094232858546328535574415134644828520889028453370261521527071762253804963375555406288477183859789380840360781778347565286395479497764811316073035441455298982542364981333821486241522840626635240590123786717328218417748067383621852776019200874452160255062701666057519897359070351551909826043893267414386972913835781836510001192051829571973287664573961629391018672535101881464822298918774689438736231242629285357437062302143849510388492288929188468088815651302503378067479197265550565115708797800978204465150346181881253034588265585002708340228074041111267666464999764396957240810434824405657259569378828210061846547067417788023311602985749167404206041952859662491294033474202951612232075394375982525009965649024447664356884653196615599006011739216489670153006454548832482735474182145474655721244168696584902030855170516417102665857973113288641094564919779861180778001845577468000969689362462849333792253470236536582815151785964005935098762028984847782504371354726616248683131848412849880434371513955489664969710838535749184113786203845929416044210287085543232562469603407743438803263303079666023228178998442427351213151139162469152210094415927685834219068723044299741248795383666089812018203491861077272582867141036446980853537059160614183659858849657130630126333113710202301362383405571333900747905543965044001933511320888243721795857940042939100758770109378369164690976921094952271811893305474545712713982041939256770674826545034860470892033379009643934974445787959349062815642604528501690726961430817114698746946524761743666807653727485868755540865866931908950184519562065654259127680561011394075632147242160324003509291087713749180738676266881565148313926077220024682411956351440224576385291190772736866495517630231261639434744378060523537226174446643856988147047159982615870206616950780556481858111763877973151300429591330292811532780687848288917719755956372743707940583705887701978380180039563611143799434783451707930372810537948185270722928022035504728841622042795996149012815037898886564360566980184576610558442875238949832769106640157333275741553187072100655452208534429692125503482850873719785104702883603556585364684068885870249483074980870257485507443854518644677294027247024205204358740088551418376286501296721255105438255629022259812619377493240834860445084639708361735166922596968057559325908249038873485836761555361840757471163001898021150280276738789912423954159127288306117014585539447457932994225089530863016710286769714470265305307920072501719348713633335731747504227039264877319813915787193579261597157748112861758447944336694931870968591122293623786071753318218923439860855559657279561168430000254460036826092408747444163893184955685184791161355330942445682687565378377036260001002409488348084654725381768806612725564219107010610828439310752269723995161702880555691792883573830241940291443662382480633357840173089046361803974478126351666711210954893953984534689133314740555688483266044616517769260554125431981099768216086391105027765561414401772281774225939664545172898116408518605283439915288372748272606959485997047077181174360545027458672631553916287205009174530191678013302116116965401317097664970851775127062969791098585210330508747465095168400410462554749552635497762613260415369754426249740555792678070325675877607537179280906051725662534274123816436587028799360468540593952531971671286196952039230896931572872460561338245594778621188785090406353406615769679139868174178925573977259921975143619075380060123104114076921745150099977519082984119380208082219927888601894357996950383008674946180846979330919924592352134795483148884436585446004668217836549512001535516382592798531683198985933753379741317639940999809971609201831982610850003764691461166005256376273219608136489492741182469123069210396238211410074913897052430609755606810564943027852305742472295110141215880944751739483892195455011162819050236289991321654831987394430663798923736208102474477478445727744018937017663912717963743962248692618267398654537591067968645169535949196126132662187506915015559524575068205753653113997349778935254887675761471289981473168266094000139556310988048586154442013184742190368649589439242240220363097676373467133809696613242670577778267066966144515196200863253699260299854051684978783789301933513773316416635880265496615380580112456862563851373202777702976507312277836807769777095383409160407790972672605342939892756487735731322588480879764718637898390346283431469834682866283085794156974276757190147445504388663705506154441406698794571826576510323340581975133565277340309698820211138380391830541202696879270982029405502271214254994288676239340878640317583184341971966204173191312379742332534463175132867965399262190782425211134096617845226981023649847847589341148566435708132742452286999372415829903987695708242352204381559959514688694148196315477348202488562791935166506827529554528204339327488730637275769893637288205590414222809217095165278860005191713166871892368034888425943457866527774584829090510643538861283820054115810531894755878957337854188805194104646496775435015882639036590908806434090187647624288295697018241101357872335493541216615621782484157370831145889535641740282782811208120267899295565237709610467656781281803066405061395916291393747437803082065746589159557343766368689207693738247254131445054456447924411889916842618268456830567326577219477841775194800940154964232306445453874741608572904122853409498407515214903244425883357735930651104181088961162946860390511404228766787110961972737140360688498872770696801115789551738251767860238473282689040532914896676173979698137545239852896567191822775321674955029563646917618900532978315321811853346213689491060706570309371945980151025230710116758896951738168621323839182527854194410048148388592861599193555156501354973263037800194933283807567166030500567320068145049236052090637695774893021695099896287558298948682126929652610842197634427889994952584214849112096483281884441359850309676250742567213375148534210483090696867706782250585454707976665674614723133994781705510630547549086078013253364280117172278521645394278396596073381083625581094227047918287983639791782775240465627967251387095792479238570083852706540552812567618768008460767586374538723297692454332298751829101234284678722722208794281535409414611529025642739585999558301068055623646528039318277796173175652462858036061821525973679658207899453201519038443882244992964076783075222262428685589410147833541648028505946261878044985838858371665197330790308014077031996254903292092148190321241623836677687069073518460537369752555543515508928407284866412446890526052316933686049754253798506953840941428187214829391360535534919865347221821564746940762914295976963826365830371043613264515208209466805484263678816330060704445344249031541201555513421681199719780141217389861386602034461715951929537972418178375713486945714317593668303318176456203312103834889410864372852223761083895363603589292317895542047925849424216028156231153441043562718400861384317304949465708388946577796202645095785689351762847061161944361434161742095491333167941120353657940465591235361893948005583756159954468893753415283339977023518389273074978993855645948468355301214604208109966410381835888057411110934036183642651676821212645484584288171129466505500759029317904953123862465260070472878980761557664765776187385767983079572627505903579091756733135734786609186463599685559272734989272770233688487351175686108695099368494909466174033713899008800642612607646063222146779723133967247835273382688394333115154440907396442915256629998546560549910987568474136620633724827345023721839111206448215419839817241783587544341194540425647166417627637651423537603039533307489375889822416479787411916936592133911559792296848092507835305308064461926525273472082704130068677775770029749100737841214410984428021751302408992300737282662185850492870011428293053703586114183831538128906323614734056026052061147978506296601621334215547772852135924644471097902119407749016184517833071180426532696193426347059962484074201816318073883715260720784129743105440300283830226856716042505305296589570331376044656556370424288755895352387739521007111559656017151387708256547873780316624553041881623458867861663369540439026968310109130192104451734908982674441407244301112655345169053575437118835092990634129428925084778481555418675063425816068698285641880935803446960113245548755984745695312086098422771176851697822885707300634295076235767752988664495417925253687799834006916010543659265814016139611348989086196923486910703579815223912606059058551346048838364469931468837729096304480097570833219781466574201440778013546311984606380178355196270322778159924805111526595368336066044825352370397247557123008436404357756387596768440079206928303986136244510501335521927216281139845932536843775217681430371036385134023496726730823942213774726737456115903494539974335360542542042128102227851878835494817750236688123010696379181508088898123142627264325487632610903761582619864631653133783774799903361367570949944922874938802604856942785200427404260720854106946300191371379623257392343533368954723797399200798200421509166366460634701011384185181636778833736921948093461420252327173677896185959918660616070618302424595309739051561814868897615008344946498651060483510513316850168168514254568422705359655946905737540919757536455538957807259094384211915209087850065312548799646152721425780709469244691005200611887151313071169731573622730025547050902951681503629822515643336085188930585737066619626820125368246460604685697629194779227540303337552485309594649572757403919484475922929346135761819242449380541494834336826147375912491384571330760739458245424691654381445150939726563154860883787894757930545738090739169261170961169783405377210881785637292358764452573635508321082149099472381649099473912002746012679682667582192815830074959380009834328924517755922079842652882113991642097751227878286392638176794611919193471331788466237444195796587206784081038524475599062240822367600133754290370534274400774625078567739385700838224986831961997362274367931138570699597990913130438774893388485881139832151432020179328074518333008710295156083158262980907083482991344517137859622407134364898561868153693653812717851836539374567540643585645888664763712581276531381743191716706614585685929525119173371049865201802432817768486294221397008994036747262889590807834704107581743903142920003260883612647011170416273217093231492485811146654313666491170324569868908691137650269867401883755747969487573791770522753605817347886366295253993112304313511449062216833556484855336331518969894141686582987102446691782137177421736120773115314481023836750203581530016068851196687717285659414802994129029450894308051128506431538762057018608992642662323502771731860264912187065348748321653120753805402894272373322572593347279068882882007784307474181055678107541299280805731991475846340488919947982439795162950920215288962338464091731872383477466817955810098299198147113522241485090947372306184996320116919495968236396375217643511726365066328760172197466328264715619102536703130892599407511838308098697832272200488211065355261423172826276982871931786752741120770607209860251190757696957748661576013235623074539708422094380267186069259454543107874325862651799616666855653245842347598847563400535765178945145485956290653699432929872859810699040696264444273773508906510933252461793150796245567321264515455378256037410847642812241401674970619843080465232090659936312764126992440112348258687880853778506101450981422961357006110850668128522564081832258536765475439851420777887314492412417901130207766235228367288707927401963347166991492991405358597984777560865213618792016704143549082573377063226557642789946685793667195048711992438516258915372269673839106289542426325327650701761338212381191783047818155362402845178136540102876092318258999993668672761407926655360483496934384784862842295892533481261767658158039826609436892779176241400434443356863953168963851146228916717087941066983779320713311312013364239772797364743817349280010365670038879362481089669552560570542719371541536438214145187595299789981200308865614472152770722046701694183784080736242137062764482605108800250636204475720794277809219142317060021046414805707512919390076981968183437825361030730370958268132133459047865736291165408677742967113513577876820639911927307325288372397757588180757665357712673271029933351156026629899543143895102652367659941805398048684288440119297707258453392757600231844721829642055604313413816070599039519903655850585382265343471846144717490631061212938771097278231309429128133727483029239879140596051872476246114028216449701848269495064680529286326018997044305007920977435115227399310561290554465100465833424412314614464703132337528846353200400933862180205373261210202466971405474086427984984282174980021272048656469907590951525052193148741624998912925394562061847083573355537314464836023268851686587652395205163311026522075019749544635705042870685305645768734324171029238858981378031696184514453167358882207504912512617579775528487317004874423849722967834149831510335206135459075248831572507032293382107248746516817176710017190845619130110332004411661629492035586581424218820067836107567975925949649223430338643985716095811128903011011284000530068798367685997483137534497349098454097422768232276092660617569679094718630771562186612535445997488453272123937774916953352694956188621116836736397785785381157051099508011977868761478647458478568809381315576862457952168848681221640675260619090017294376142575821402039667418429147424654509769426304697125887443934438771075168208466732474136195429249834068680851205124605614955739639519945185678639660576933099638371293006917513448911615176840845240517478147586914850775061914074257676528667779249895075055131952485659580165834883580460517924041525342913771691969834112794146492666006126659544504456320406006753494270227578569913300553119841478363734792586745360084915667748748310262359044738977429754308682912989247552892925730823699449773777445391845908511576301465759346337936140667666223502281693474107430170086212356544811574769839178367558248196359017478475233417086335917519046582793671683452572151674934992096162410762596537313308546541011221999130524884647574097221338122160039849886471927903610054780446655273841668959696734401822392507734036563331112529341459491356520930858928489790134864073104698365917540538290793575487651142686865080205780235669562179225912992792507471974230701639405497718162309363014048825726968625072677743354151205168958550262051565155137695776346200287304552642067803623229313608401457284348809945625379450997046436194911053128806986572579348264970607991271343979219656575328420216417799863943387512008191719803364313346375933177449796813194630183143821753681323201211367973526984724728531022344542661396523055505073550016689995685840814610175211516379135702969672336710104545671428319124688670285075296442553030717511585479306351303295210573907741873743982105982722517954595139793611550855881563877250350323090063913032709622445810272928823431109073613476588641970852009164287170296510729726300795326419074460177019242546167557446236574992309230916451446666979291041448783904548588030533880258020243362603065945048484360382025585031725366620770152278413187013380180634477101844847939529337499812571300668077239627656610422617132971884817286818468411403369526227746292840391992465429683781340357614874084291387094876617281243212085469967142665705645404119531557644314167802752490214109742843676915160341520555717558972411262042784871751608399193924386500603684598490707340509477254177137631377347368331411009964892517089860472245547231841862477720700549352257019110683645583226598831054589207451896439521068494644815547677452950520704446692124842534744991230650154903959119341810381489915002847608297827660006108082145657551908386586022755165012882975221104824621170700842886548715742309912486792540957664085035825339713216401249728866535464853075313425033388987511136071569319746811159401047222479760800536972911303988856349825094149369312898489159772206416096669161302183096460768039759061008709229063981979539343786491215104454769030703172499216317701077675274285953830513111462342507306554828718899367106589241281841711842902077955189150919119954524897460284618317529941176434192669637126287004081439108005893724719744835546184301424812194830536425531244572581404544280270603150734867782687852538736615851420766480497708144299955255981438352326320511338599343997482018050964788428841647433791307162034010027718448644776344144198228632208256411305634267646540114070693928933615200604526780374622158180555993266173019727575299338185512786558038168855549716439243233595219412368890564419316219046784737346784294145370403478674119205337371153106988454574406136790642114571676896867517099226266255317401515420769677177883335549992142599127149016575970638113173453226160192977225873999027742510779399049249712339032198769869210549385230494144994023653221137372932113021853340668204546409415587243727888607140524975341439863310854446215996797619821565900191453344703879612258879522914953102585033622341906523894764552258931845707513378146708750455549871480124650879914141130089489989762349843694303521393339393478623304949600625861136794130016822638148086267573136349174516195311879302197076627042743454216510459225592822539673689485147912224730613436209607483213873092252238584519053908668889340904878080587170110389512718089731527652500042932945750093997540374613227429379767669003041562053693333495054164434825155506150253509141658152676916871639640822608282459482610402104280349266926049991941599670284565819249241260220134696043538998234742222246294490737937612587145588038703166710202703127990778187522487494575351764946790781543582404145290887609306482093063030667842370355203574678870430327822899111842753944671254863781000557167178991226137812886410383209507414446387280457763124228179058451047098145419723068275037643984259336016445549323731301340077952138760852157849155021140608540089291040835649361486399741831424464083713572336361922364336148747141475149022354113064964389097340264874003104832783280592267109599716080119549351464822397683175361348327795167641350007825087010959402296107122800346683146648151812287350013391280257328001222240172243597808823799482104307305840539893565329201629397312250164286390141642095509367048893857884181427024208869462227006190026900389794609895740761925752118219102003131395488718492630909123361764507635107828489170796123628279536592977967670689997444851819868027778000504637625765595590109666006253335821510111911131513516968015816813185343044613996159090749283994853655599849036047490745938146377485144368233592091707735211826406538656743510082102621891044779170037347278329247208976954340530745462061018013538111927684322528556215140169839991921755141605817986914027838655718463068829295947300803395473934404726190385432097212083242473530066212551094141781307365923024944693622791299451635488149361692431898292896530328406471424064459360274662974005256036292556554859118980796553001676877184891898518560413109526184947732720435242301641697891064761773900181088085936522510943656814466754135549699805337912110559659532184641670473483938666280531264931226935318556317687738888102870320295133330187497982399502264645821161076650484479660368625305583162914558553027117120604930951421700455365158767124932969043387811167037919060376966727896929333080653927431957217369832885168760286156775291645579363673767077248209826382271755780317887647704479171299939875251863653721960647870606931858533235405385056722337190562922842965205750779332848461523477194544565243422691627555761146904346718999506294785000169079048763391793885576877476333756299717390766450357566369495007739676610164647671603395927736827761486057084924456705109566182563901047872347027847458516363144645176534240427369479263265222125164219078383683604423845624309869021631990638482122382106121668877742835850376516539245045489362375918479220923951838082105611148913143992670913202975478758945320302630983743208994799887353093008741564448579087998347899975173820841735405805637393807511591145377716229124162393114163859467386131570225906439493860636542035888189673480505682733980263082782591709879596110347018802715136186472605421078293851039726801998340546366111318039106586856583976782229081929697654562227607346983231127160623475414718527789212211374590686956594332721635732938458548428197798957350956740357816805641463673357115858784048015835243976829132990226395345195516086551172689319394536581483584564505120783835142217582026137134462983167853853844364593607069020635960272158856078183801489726517076785449752219946754675110536143631736854273578215429564880166229616078039649023150680812322382460261938871705036893769401444359037358822251674271472967266641107572505365145933393310905306410542641442574521519617482734409575972870800507768547781693253885080161343194798901774768585062808881735909112686693956333476580687989314444506551137197142990321664935279363666522311472801198689401086926594880792823135862736610829528249671986791471239080833290994634244252568490988803139394390207450459567053173573606277440081265166878186037795218709469810520031524564895744091275053232128896921384242676125672815316905824736163610327691389378050797829862328812048948245566052232802571380815291570261174621553274374782907317676366189181555172991771323521244107126772824723569116203313812602000171577265079632665446027040477440047974891581231783991237825571680612487023403941901306705421996901639864863314721034994418282820434040340040010573777797056052365022407208724464887724519648899650796062419653744488055021811457378692785412481630340425066549249722925632524464164770399049640866800356051466896283105369827471235373429289696922934713502490381728179120939983405785511087829296303874227243909201416736028444802892973131341888394642459637424989758172463527480339320021307281672801641222453348713666770536196403491362200587384139782401634283642752794624892867060847013026002200820711111410633229150410700166056191155183793446264599669036184480869290684619081341421907516598965467694470075479627791298394798542431798192614048815508871179033058630346956517447058513605304084232250124952863406664907984112385828538027958681113220134335157735633697166831765046358639741052125108586944109230668664357961446217618919383684266865243941190578887133895567601931159736505082915436004703390609811988767767953129276931315776081596532703465710869604388949596554336602786688955281199549731964236648749589054167668305100526131340028585781437304212463139782195451157751470932829107356493247777639695086455560594161299906497360940291398500284824683145731875141470481046076290349417461159084466682008258727301876163490756315828376716049651808243417207163065391687720767428258133349628089353288280909342725309592381967746558913440803578548093647522797110830671264252162695581878135165512451122963283758489872172690664155677662829299911977740594223427059137856985528741981161253895476258096598595554186482813161189039263031155878986615744104468537579271567587239684417341145765675086320092906612178561031992117435579825826501915368454871569830115730687769001805789592800032461875170198959308056483348343390846361482535040941537178373426509333017794441971587481345670523837494191306904054554862989620281818414286519370964763639585991452580137208954864120005634049736854234661333881707682220048885653924853218590549215905701418993114629798512861356786632532647485385401252942976373395406197370894510481285058543019980636885750384178333479174212723315590131452834237775316670063215710022658254695698948133085993372685992548967875197967380084773569377220423848426258349901054226309383001488985853358555997126861079222695403266843069105691862554215710882820145179286807442894571833384732194254345925635129712563240871873424488122212495623030411959141044145999275118796987396603011886798788662028559020835729062192570051030897264464637420941455444926093321975326933187838938141973593377178387537695109962740605519863830712372003727810302331683954272802345921640688146148657675904457892434753804102693495006219623667491644410440954688743171544680182596694138778487333391542381495588533293523311511081389713003343564686105041303741726972768703666090095562117791122223747061368396862590256026181816428816928814048771663382663479045893692171297348764521051228895364146323644801282662780319770940077467354309534002291575077037654109729723256700702896127422696638048664408530996381616335029047662821091131468595861001651410446925180586227894196992113144385848851707267412255727152876898328380588969184852240029974004478601200873627877051557073120971441983758990791904327204752581369898497232464819465272751845285120272241322649049645944563556014671206842230932350051466485387443538751246037829476126317297007518302218208679101938921909540398573698440714100798423801155131189465104231336869597928090200188731738667448998904847082111878807679767999638898731488813672927348584727520947628145090588847603550877025421744450882292400784018417818056343973077503460801869057871028809757905091864725233716925773994001311671920596387771361125716547724158363413302218065493680232575728254930221873352371311832726641206243246699087152809876068703287099850429075929563444038386844796372999822465386097575098105813634650513740981082965260323978521488272491963115894695858108886372176788325893496982580993573338146025230574772777074127420033982570402444000312109232287239636741378593686405408241020838615416655410665184496265684145624507142785213577368053309879363419888716220532483980854922539447773878290656808013748032434071692860782640420835831249157175152306377747649833655159137087933321385595016904685431878007012601149445312728132697561498471316169313839747171703482667195843273927472793874692568907262037443813678067695816093727325042451023634256057885760250481824585608038834593159715424867266461366106509584801103731609532578219162310507177028128228030468534275389659183443275597959106410284645905887762298547118839985799075325166911416559258841792904892042501410532202399589436081959977166342425354916913785605149343696866449001681075409238116078483614721967107246046614212232909431227819248765437303494282889256307555910974979705237637191013571193918232758341645424021232438205900108958667894174289734875305069210344195010481503062827285817818542459201331011891221313679997380067767777833152538453168146432173762292442184817915613614908600383703322515506366043415900601548619307294147096961708991369169998485125847994501943135242807077835217246589034386938554180861123835246708298035149541438927092439790852651208525275983056413540033041458610026892693839066372260657840567992459742127656874060621076869012952535294899388614902877693019064117858931050161721666432333178661355565547327032684511542034378511512491698937892486167241892474310080456780062946993352766115283341202188378783135903207635541644927812462458531634333975445871330552538615535240372656098242253000487809589212430641368545732739804516982047404586261633523703405085321273289078492890116840231353263553926078479803672863301193241198778179660754156119964375016175271926284421425797448247724240618082570415061905847736211136499415176146245287296587825023015917749354688787562297897596680688944750973458629791235038830690414295732276966381920245878123029756822971546852110013227856669917944578605596701705501816824321012844063195306369373002912153885904449276505336387173279483902238464986071106569008323628101743818209167658382013160694783517059550525914447466568761183101429870500749055737829922006785509233274737549736593098940421228635888563189056322143294551648871685465397611401340952240882298404175733143640543225998361174516179084080478276558011421907269024539718454039718692617984131422725346220976046989591644223213072236013472674643092026714597676002277831985757924029160803827508537714527755598558374653611117309205651820249234247236171327904137472891497699128951293369899707292961659544028981329487914174497029386559451036903221453275042367465238456271913083123521088801187722390580551980152883583682046946806786259457150169362987257250389963136896384280170827373861474400021619162548550006979636288752629681523611904258252622385270924739441978247041344473716384869967664562723403035977660386258221353971211769820814771803519864946471091795136148104258805394631971708537170543802243289822942016039574830284217844243180544201682207019476860461720598307919208220472284902453470089356330712073339424640402752530912259185330112525549141180584514010346612723048342120621479519648469640849870008532973051921304368898102653293147552185157753352036693901847745342881568892858910671162989428744742207320740614862850181640939432103179492977002339079552600002889132436672000820300675706396262675223267124228792390555830526294507551819701415684938108038483014398584348528722858321248715092267262620785999803454847128026017625695863252547770544511953502345825448683940399873560522604158657451205765065144831201677084481805861088490231580012715223713133174020856767566382774025011281679230689723676898690540389173213844253018020686303161345456468988653433639188228483065794933537811152795475337034951411334583872077301067566543010448148927315319531636904395392809727272984743723720578495016538953038243955814833347010295542067687743885759809748240260338775960920288051863282554200185110004008709210129134928232416798596588235393962458965090459875554652038471937591882155876754681871816939284004997368673516747684111101261644155067784379533254587523785025437246173600748679536269162054010439598311778358427657123672532163046953533572946476573301198144981218474417190596582791459569597093468248564156941420580219646272795625988335885768146714031999716091252067157487042412799592273491070181369698056954479886217848685201319617395243728679103190503445447085153367321094809523393463326629525760216948141293634779920146503284087183603303407994145465348774133763849440171825440623803439375120495964236660704552288122451180936787553850029083572022350735888247559394058894609322256626799239168952887075743748359503144186331504093722203461221689732243526683060287029890520341424287963909417293953633539501314732180224405046398588918243097796365409555313490138272948046411920644192003216363143813816995464323634174460294580818080129502340187860980464340597834475818836482051138523387759435042010671934078303874214461136659394817391963888005330993498234128714457415735980143165051576152371847120980863476711783638480476396037435716169864295187191605453695179948647076973860135802978555207273766833833681754179814106343305529596624373766525132990081868585068767344018760133774482349369922670197492440703123551372596261279470241100736661386378831453345930659310665044950667627394715754017943962288407322451249271507258064341931863226203339821399849048477276336698247328919518887629296691354669740618532227424293716398650099423031689760238866184653785107940099003370154526659102662452348663931344697729108750502523496247931027900375141715381089837655301880405473824665226059763645632378929826928907554333786590959728881098243470034409004715266814901597904198019485006761336412651789282749519938263642504267732830911124864391327411920107800573296445324539337293975291525410267970005323267674077651301365259731825751907376197935388889780680062890223938900192410452404321132246725031675822038893654502470230961578821013186392118720986994263551131228419294564948924191885272091380059024413966217227549014529790751266901240190337042399334171200453444594994215039381007501166512404756263084308528676708974378759165305657500238924093227331627567274254372145090003456505732165860282898538129016189498667169910524638913489386976860020276524248410844154921463425895456516723605386330353412004387851498956974067968948722104333651374486743316617598151468762846667444948832739790310842960490948404327261855876521202662318823915930566285429751526190999787300470293065737301789335792485450371136813669764494639670913853142367317559890685768749654144728660644417052413122451200572399505493192288731259057975659133445828094134506239848510450637082462285944504831311450486197671445659427414398209751613690411350842017810133325871313973422988039943771987205140561460706031787683282595202333062866152197180862994440524924326765073307320051469361431080405038364049771334146119658160458392289824259740075401057409485463103340824126713017830262665886714983469581967676150717846565599174224253157536414754616780857034091473078602539783573166565781365633253080364721751033442719389763520934247585690948664912694266316579544803286702864961007738845453324438302381957714951143043313622176116950792853831273351413239026356273946213565123546136676054439323804120753405610156013449429351025655186069300628745128994016503545173161235067417369160096007424375114041833977177671922951948470661605571439398546434603470602631908350983630931914764766757529570784257903430486921269314826737051068973066206174706850986558299188742539903940081522926853932441055127711460427338377197187356819990310451134435593047588833080288348443352581938473795089982431255024976067696137183059922164089503190793318316187682496973143471153062335923289386061675593392861472139501120648526019853093147712196874673545274088551539179023495254588046624688760114508046388115940551258311721800255358751479605790982185986638189638146276297307467688667300211703560647165631772286947283520427626955678997302361809898867983410128379862099387765759353842068114274597519351156987752807618560301797885275146170960099949904844601942488455561144547149411247423799270369854252997121660326716281853543107485061786837189107738333592486792942322152156399936849539177456917896430951757276301162789900770815326481503880426107788714992856437420333155928340384232145112836829621309723518401700263153067927791063995002324825085511413018810781060232707898442172229449012565674970164093803196419782101555653524659200146288391621735725788358333472781376752878011574805085816949796493888017210164758958086458173809103601228415658981734099772055311832277958271315176516707906478279921600396228246571875757566039341015531875212254802630978111263049675429039775642188070820745392695220811703671703103921627096888593313449812958839896387584138329354167276670406596202246723177088214981796684567259935729159983753213636647255187068033418244482767162999218469077227544420502927715103440329382052084163004655890784226326362438280066978705393375356616686444806506014381537409424204475054895083138243804925519914406516251778921307859132647973966571725413406045429625770940020714480438828104457314327685468626012091501019749306721557712800057323971563726074665802795988014545216587842090504185316034178113701578322980569507256931218073932064881088771416124796515554756024530601211217734313765328149014614948707222183268977952174673389359896445455599490632565419004089746190452444223473783248324684852061310576811297047727322669466549807937872751647152233887331143107234145306737440089511953355553593375618517254832718094491358828040099575532838036663396686747673131819417973417509323542124062261680217029149239971689399648863246553945134946653056019184448132998345187719504503005613894142807055039076420921710882323682938423234818679633044169393314231598874576327710087314714320548167620428644722139839897983078354599817411713137399885615160929673244389856644525073377601220193977006461798074289035514243993390704330482151372639703986859882081593300811544983812290879404070436039825355673869490838324771978045440658226523483154180014714476212336345816770440664241172684633444555987144434976355632534396499336783684112496542005845111200590216694807512692372020310338140631965074133318018433734022271641727600791511655847349843881080067510712626956363179586341141361577766071725764103972412319633429150391486765775184340927973725466114216372654484684829027258301090378184584913656869833632930565560152124025421259488672859829948977574588422550645404329810529193818474564394865511259674618757481902175530922822989440247671371790908576586999685403838868801298110488573102263583679967693890659263854448931360187150643875521402145056805864997972892348327569206424793536892495511481789432059692391350247740921229247631285643577126052460424050432905891825783692119000111984852300606840043422775373772211696467769376036342455461372567597136562298602486430716940672213160280593764201128924165386403102195048710076698328591722246854793909921561405548048127835550878871931892397559450696114247329464220936705801071230198201794478793800193680099257292659536819310858442775458277825709642766203619559858915891102044897262144935377337613496213952701465502874372602039401939548241097713304545187322786467922719046363168279904140341383568839824292428610666363499954835942249925164733972209127805315754970978768839218051718999586305269713910931574753307657719455106661476233535343120616806433205966157139540553759480291406652635537826124226054110460674791179233968891325808455885969608954067081274452557399855984241814304263914828983986549350697249011142065596463400070364389106249758628998774007228447008394837573211803479106260430716366624461543948794718120830658099849906132204403785814816066612331405743657483838281300316225151985278018963287613613252025909296450243286955840111527191950149122239577650675141934433801476822731991569258390709048225899884021328614087692684253066922997472456532046469845054330961827924597798780633768714875488681758041281631381405495726659403878769172416466643000452492107519038456582373642687332334465051904268331823982851120713601951044919400757548812512415365765552752877165318713226683983627912294422633973070537783616703258281803549497816557077527818986771814869806767751794235732668519073635844774254429919228312418551772661782187083340809670260635568249985425567935575650856326279613665793412588509320826933520861850758957939835341030138565344523709868737697283999949002926474689340192935224486767920798773563425897017231359109807609109958769649160627169833922700484234532127075546887084721683955382350364837953342049065340116418855792488814667264620725979885022746370551293680321349035019198800855307134845986942998839539614074366366472640133043359522048783879470581375707947781629980552378217715939998545673598412884623419830653864472299875178923098027338777740263129676654783008737520398585370929603342097601604000919871536434377074108388484110860280134707133770501672566491088775757025579923469668858624814324082896209326129321881103663887211073266499635622035078592210597249252268066185827991562793431596086122552396623141365533973137902680626436661595320746062268115765711302710757393701260279166331642730882949929296863142802453690702580651254704613352272269832831279822828617963025431798565216582545696337130723021999832672851973293071761109762221921907033789125331545433188830485974436154145186788931340741173657567505784974083139297377402910267905283611888341350159517552180891476837866236260213982365341771505463248826658496992727584177417964055277031383118007928460222025935339507663045531472803581687149510115788210515422436440013903000325163170931071005313667938067366269835430990067838772116850724490270897574212208825285750964375288725233977926404263617350764305934412390033971799423669237962979423985123083292966239615894749792004887850790244722682532022849696740130432857603824926721249358105716164819113699434969825720868753226133263844019774210856099266226381358612842876510489193255204651933776216425793583298234826817629187350424960264169835618642064359361849804073961288578275268558095141583668795056517998851929226277310770456724091304381013054665982064575974732312592892872789251050236164229757930977163018347001386000425962650199531938219023737899315913940763465177141102168900930228610395882447979344163815662333474650332831694548960718550930215358437303022452016560001730274897783662107694648871405342428370716922649501283973396643842834316491054049533974010074048553463935489096634670108592168925988585272793948438900521509018523772599164908590437452839809567268725642957680947321663870312599302348379363394941553100264099379921751402039957222704222205694240809534864104098334512530503804976344994809540411548235346638753356543616773244785940236480004723133953722434407968036569048862461995575650510360456286767459963689800343533891937169718931730722406368411685370344449926755027458205595007603574174848236534061883230947873140981046188666261264348975533974664912784970211614226826037284197557126835020302613039010960696935891345515634642103131808768565016598054701429350388411506617352772418847814455062309002787093638813671282043863608860374749886113834150013858554774563717069011456816564749110666838221563717086790073353870998288489062500921936951030112754560846884719439847890510858806973155324464621258550804680133910086631399558623072742026132182975942541692002061825674460879581163145996894109908628508876626216455189251286295233868239175932841058679123689803121508427365437388373798474539419482303934813688474451164953368886887215007390168699743974283090346142898479245623091694090110208020267303108170708140629799947800309979244538814918761720415568809378831825147417276370963192185628566791156118526904912497983468848316188195535302349707878399521564007880316866672073358450979864013031786015016484152471223229710264558974950600463356096075137601530539900633463458126431296400503969845943897001180139939484273070032656521057476221001916359132991986908356809722298892140402208381710698515046055381015139222254441509758644666716544766317939112317346571159241255782384118530421324989574841353360700627390533062483247251922311486824257353869239265359331716804635086913431629324801259175389008672707056250285867456821484152771923976129530689663989010220150107907844315521973141400013789690576694739244271194241447942892292485937516426798289710470665671724214475683809531981146535777801538478653137485900026399338367799734171942589670030815172130962651008612630926915799015959245154238958885378800723003634185132896791704470270612422838677605288349052875333732529350488034524724704279484161217185310190212219495881969468035127960170888734879501387425622028612180013825385536987722051333326909818254006647321751018784182796713181114609146034910412880225007953984078460880354910397923667799929629383978715403755799918648485852860385164757228977220880115592392419090571163483884223370950723580109686242649200899470631168875990374709102791019447176917370701260099886301891590854318813522126288379570380843208648212560283327055402374052608515299373122435370042651273905794250101938205654290527958002220990358558372335043144374578187003130731520080194562102754488034105827107441640799898801246924643649382546700867853288650690086297645645403972226037086260497408137262891708281899619070440559936098866904893396479370530449577646961975907100805626012427978568757103645053033552147271158063187509051528751046629310790796445268373594213514020202542589414587436048182933806892898335044464620308551827778778348673976039010020719175470135262397343405823808611705398568500083105876903837029702771928005532561987637356267316976892921812473730150483912694981945135025790796778663508495550139621434671180214333977092281015162792707696783172110693967600821626919817888794007460274184922867656802289731892328134917008896696108413758229366168659891125648339571642009981231581108280507868900485947122439633640126080953707366777753714546552684955867575492345034220691073017268777337309891629585162766968531097571432812431934957507788471581599465129969977834008528635326211019737648008024693113134532564123336722757746385382849709096641936492599091691276362524333205255440874615436992486014718886622913273801625942807008037784300515449710986630923200837583015610431410460296240606332375036910179483823159947552184272706512327333675941823543587378765381445402228008232106218220072429474218974324970463939823916578567105333556972363173524829644842649088370480642215238670619620283958987674038296820001893529785583751963279096329158132681992366642343738830168411655969209125239518539565399967470336842027273999178439123222966065436620769443125089972217915252980525070389915901112867232541104241795646131422976796137624013551388673138892135879447495038750515031080016570894145581490317478667335977958540947264087020987095298571847605102648368898193043199846851846001259697196732115189639415120444744164087752720511076065421156170544944521802391545473846206663992870158331343621094242367710319109893157894344222061250974611780157905502221027140427270054755995124095176239291547950740414993187149647440757292191648406993363310858914217734122218242549738282841702576220419707482684006490793662060703844025607930417195270260340080503425745952085811856914213294650455740768869714559674452594112303472869275900235724380990811086794317943656339922173601419009334504537196598823786425932773958042363670706894072154197232618487199847163844674536640764826051798197910713051691081093135571636343895485501840307294688307121050421816852310618519730818929837404196941572879171157230948625938670078879942359861710326849111297542972151017603207335027520708097793501411420756095391065716668005474628042410653678835103540997708736362579492272830563696000543352400424063424454914001287529002487433042864568769739615783424879502338708419344807263311428918724299452335266384548903144819049452120682568431795867515687040220201589258394745748816842279902729399736327022291950613143046965402314995933802281976813522890570840043432509419700888414459870949234044508608813476216908578798864475555540732199309412879022092159279158159975385659993653390324443254999587594582947059307628316672252069697721376034677052270775976705816520071033941894155215984133381300164153812149089692797096602910174423668311237700889909136290255919585896337305491788969421246241622360698957581228899570765012437117735250203706244674446041159670204872839745467441647145532368535094722861464345943219274125913240565516881953712610166498718335282712264437258137517294531175440269191716340418774934024787441803162389557869754107028035590193620696316899533597765763899999733347434192183091701238693430209498097377440890090664527721552260285022182242109669357772118512490756274279542999244954502310988655067396279951087469207617279941224100081275712561032746250815360387267630656555865594094710755216818228253036493500234384339133256940185220806969101045728573806518398248228810135799606460973683142247889519457219685496023159806692704694332044787805519462347376990693529303488906037545302527451175126869980364601333941297809622807472937376229921628524210631579753317906621398892904021073642162970574174457014189858052057423945048137273099609058974886074936285845838875724047221667262327396338206424368742797014661235934658409969856115254055429085215156868509986624709334215583525877457017440785394819059345883168669565142973823871643637519508369205244016628990790373019241368662311110679252382153703421876594927210012548944376079496342765235069191134389904635407335716097618053158463432211761193450498673708871452303286208545017863310113697686822953879251961327200107237157080202437261794645354338643124753124345462608244801017619330680792151214319769501875391377457086787472476602759912908642852908165821325389329318534683100445805040183520084346783736633311085757600683640274780926985135904304688036627666548131124985715498761542672457307823354068624428311883213505809161365976410341671516073584635873610985580475764787610609497186849618003261293390853010993032707800062579538754129644523011767004317986996497593412742521830478759333762752029756746645732133388185453918175155165796215516285456327483742021518826222671932777662839540674126787146716546999205179590316234963321981437671195486234101390005612377662756256014875166420584064564277445122310446581732405997486740655152833993863848978125573656428090278996994565384568787804716554413347204551404307747347466354418619825609473158670604662853817203844137103420013232801443259284563153682906218614726662124389054930068394971346576645981020260947388303200878412526268076984234095183648782845072918042257093181946932607322644703775545888210658328702891179045671737329536575308142677569516873032984863940651469882305282740059182229489469375602314969179580463327516432909364962303995845676669224936130946684258217066201894807630132167697883651999888182842433590463658266903091492949493607325710378854319672854064174082457197480502857508079273252355584571425889582705356751667520480364550152324166255641255191091910232976007800636973828344331725415827379250071473203372621458281013382160591994583592832275951727576338717441336244704499547288096185353732454038017383419427915847605218519029133373042751933721139838574415427436794121386032787460382391943762863415953534244030295643623378923060053807202782738143408701595128520043109921283503402705329861569119277744850901043119662310731767684648141660358101556108957014086373167486929671000015884894650416905503189901700435023689832113479827593343238384886959062657904784821651880213553764704860897162232091819081282348417203065183637108073675104987096291810286680023383384697301423231284158627427004260206474134775908966417989676037504361650000562332012856263360216544533264624428168823468705398921697356080235535979062825875302411061978910305848341688296555173908574440506643858785482244880253626243895057887236255280782425899025274606187083963909077782917311068801487019339111900544188468447441063453652104165712649764817782742070907687403218866548104545186493013673890097591815426863084922523476344318969006361859637981977649644756308510016739709381768525187152495879488670882818584467058613688683152189684705232122836082218627194701625385003615535811858678353070424100424963224679288458302744894893627909235899714988051783880779592155180454917172763157265717616451014454591727121326309176657088251880738485759854829193282090504226752860901212435550936279109128045990940421188144880385918750756233866228030339759134507787508333890736264634497926989985440461658550434347093622316316021372573952118771645816549499693781330536848501621546181564399937985846303486273568568538919459087446310631096796393761487870924717611672010866566677803718346234444971388440323157393803446667913075758398462004001746139642881295784214728397894685599407075198334844719009182420474420913727084252392374510225037389561202762809808824770459289741344246066823456651606072133760277056366552783110225515482480571168350037642609872403170178435916130353664174284397611737873048661779091137154705212101782675912015970077196698186555851692167609999899632951356875307787747488400908333267726164264759599141240402878984090057591122907770965125564625904699401970025122298500369979053074846751447208693325822044128385753729264129811185164266655414946657675536571714665822364745594919941916125054451878733086814729229379798769679964694938714666553956644296434539672264021179432980538973470102264481745922506104984532247869318936426048148980757626221645208831672679813333056046673115855502854873426371562278148182770244946352592279820547599500304273927861649561395922872998498211798219284911465416526207135866693854271956586367496539923460622949434129135099272503303299309727623331977964888938913929551492873833273470782891976487220125077373445634480054315927011428731266884530638926458815857627222528530158335558028314403345444734636418323372904743632254491343998666863285837829617363217571270765676416837539607525680701528135073322986965479064595929790291374501472669815309266589357037705292457652098136851585768934089069234303299484122893609352994192871960824010340483214550617987710597498996668574846889519464090748451554777069407656838523458459216264818403522329233414562999648692935762139424869380573305045180867187297985578931457417154363069571357388554548158211287159932174220332632394459315680416082714464676445308058777493360958440553669675725591761359041581357011442602327013289987916528672397904833889097630343475759011819098437706050246954035381406335214409611909807142602371538003707756522971015320469323344323855612472464799145232599937816805842706553979654886233585719995639354774570153650218124561083762011595384801904356258212671662045917377246149441105279953750011005409789575071598170100893946051129578674966883963051404161593531409422816394765206153851828650237232584922907848945345369465001439766865706538547018647083205282038306637151166959822402977592996428172150398840252619009862788142093282073387987747460536689220942199937460692873226617526858481064596919107759519598219867772348009611559864915303600708100833612456969462027579080565559840907672479503659020492013323400682436088620952266259047792520648085524689730146072928217910112806986047412533198356885802672372262297726682058914248921948602546547052886200305721052513293884543990603417403703823602117828615033814808949864389893619423652496841931639041473206931562388546894738616694211345691729690441090518946291565368187120031114806598952905829860163079359126774990590424600836694546028731367281290190243680867957568592275444987485405282335664165806282831579064084976015450537544465845622251365711712580788160935839874924436512732406693910534100463911364655924043633363509395746602514825937761249121151379183833094923660478771112504431330890778648133769195705904629612286721514365796555562811869410151196409281714276656948574848735864956011555296419955236280559570500439141015174893787827243378996204345238257374803299205560967267939384312385441641897738968309220187501244867136218969806744069527310362000368348527926101979551908590638903483742082010258250771269994132675368834509874571505603990441298409679094451275379205720912286182104856711472856592542936231209948889200706182713733148374960260942312573344049453443968337232086954292104697320353330811838828198177376721856784942013180010401292404860547094189550185500991290635423858682052782451615797328587922578890611733634187068258377479974258573699244389199124682060385071517511525414855915082017935243658527450941319691477878564954032045740150008572400389222481363954647062520070462603448640769531446394037452829655574414223552207484359404856353540146993374620027446519934145711467517357470559484613365914121947889052012823520127047787995347344079965943275379800884523034736852635293839073364057463842452937586544784704127291717274398749202175780968737565946223668143599060415098687561257020917236567380070396634271751225125003461603576146077440614247287028135673984797999124794051208156080822731808662749963104143169165015539376978029992609574105977484663952739713976585009273027176061731530264322054027436434329050117914058347655848220478127519515479430979963074259137100507037820889329774554948039709889225251697109573084919793441092656256419139249665851788799492351632119790269517564097241364469218163949773981095936986404654804030812705819786443129574070389921444743066499985199015777930947261920197706575096817781067292833108944410420148199098353463992429832547416682905667236012209210720603899194329635578183137333076187861869835760228897601544671352037151149810077554613545241012238524418631008453720550366320927909996288834789489831448733347328735803202023654314146873345076460968382664392318228944989224927564472695438704539935437877694938267931800176165345236060292896608177847536371807418614823927401464121955366395402702314643249837289835379553858917757853329763017300438982043480165491764678784754038026837899486895568089729516096977515501140119711462751225561688071588560641755611334738296603711275809308467332695149309428795732764058346055143357902475829978217962499114092530958646551638332225562990037957076073492605968505854517764168648380114101891002682488298250072717458044037706736224122191774701003919732632407938336249266249927306817564685643699247216874852145557173113692733090731695992284439268897488377137733146968078694842911901085347818618419780756369733164546657340877291081305728520276405012473217845605386722756820903749602786894452252077625122166148232332690794075252125072848953843014444644478927946464150750612691476245523011117490472426647356851506421050281022271332123246749266829455494910099367256080520885484184975587103191118919774421515524043354695679019065724365779990176194358551931973989155807308297369192339041516926993992818097952758021481295449256738418317834592321162550167672177027123383258436527969074604777014540942443136725952733018913857406411926142474702677307619340515276894892274058876431032567155517267041938225666705376415686791146686525039087677397752966177713055660131946527789886927884887130832222405733992337142821665429153212400037198842529496275240117818471303463940372483606528141769472540935985562581313209974557081451914690682525688754416158414762917165866478455289632536658599903460563173324754199358138765913596959960778309252023818100282311695989988052863142037460898677901205585952420847803295073128902613655066344594400602108040580621257634178295853910289475343496054116412393217146042786330302413210564715883355909992461237477114419846165492766064248617554085152275091293215275139259810078168591141041550346383307133109579899572927743151946991584424748786663296778512763693538971686325357931643342422091608602918181414968875888666415448150291259812996416938128574990857320105066909461107797914433149386281894674398821349703167689769248869829210686295109370918970613703806265799015032013676067656362115751026308173465001208519335359260973894378219576403399441935592326639792005017074998705709780736349570405419055312231536582306307395938331943978255401662590389916883355737245952080650678017332522513877171857962117014742494799533343197904685231934299486910928349477555958855403152246459240199712906546347788933844357934191463916195635056918361016463864675690586557598371189093351859096315313998498980204589454145997189789833675490241164299293342831558736948826616377163655236382259421192756750291962145370882872972780253777791430091677925742216545410900534289326474576965242666974880943933800328587496484484111479546565507336132257424918058043194114828452733409819316975674711372593322826377789018390921925032181276617822051584716742349955469188660438686772859301051484377012040426664666666985298736684967390772503084984593492292016228456862751597637726422079226187382598439687586050908580348335433993872673708558259223294400757722311595562332242375325784408622990513693115939174913337200953975159436401443854747449727733447537845147872115950223752251359226319400767170689659834971909798811120644788517452371766435235961747080872973733724707030106387018974135552968284195328665695290131461460046601490263062097574801506646066725024755595429682133689082760139735330500027226915206222212754700271064548512952987325024003929950438181814391719275366729064660840439979732866530201988301711116867736718904840926365317935845291290013319351316142240661671610255206760846916928585801639327891452042623991153108010395818801493560560813646736690215234606060332940415027727606196337887706430491111599988119470625077977159745006278034824089974062990627280161502286018765947814082981028922068426745513176023009608497054143096416064605916711546597664635574387428360726491545320250077230091930721445161931931477753160914880723736033901055092592996335986928438881905433157186917694510886006067851099996429996979149732651949451586312217549605875904445319547013379481705915572951431495824979702077834184597299874536214775658939318842419005646580999550573203772562480971195035925424251041270146153456372532542009330857134219537020392761786540582624264765164126367141707739148516945935439849653751629192764104748552911351562302088836072041171362556248398237873986528818328275705600638278090298082282621810397471531951801377820688107278375037221986235562527235669759552065999206324856648907263611851233492340809854084738852823454352169288005049540054784865476445492993822761727401179200319093151825932648454973848909037947586424719805183689065618084515413805224476560829749188688067437578270528862283229854009903321094498074004610445461998400547065517134066105914982679410944761648618888617954181962927540261699761135856860841069988202771391510229728905865783268438857628402499828680798363045273646980832439087775505093535174665636942409852858165661564973027607771509644121389914504998356625342056465401311697272452962603175181821863653795807207666449545493297077855024489954749707139987834704150378661965069989879570840583156388090240112401187703154348762387023097552683235577795806364952349898238284116137673228511371980878331364984972828724683136022423903154204580773539123952109301880367838472668525257404127221063019993526625316799879391220238766120773972042067286702257409272562832864760321794926142454720168317308212900418810150662186336729199998371917112717422812991486505293166996378319300006266373880603138460393169185842307269418206911481004063972136675352512301185558053044154341967104597221065802245334097693744538204385676156122772794716735384905320565205634125343777123900591165633709744011075173915276850470186536509455229305710941582307402492119881192201913670345423189678572590811961019855171008670912957270480663992233289844597802181607682386817913636319533481635481126105062513989532919337598888066993292240504897948368843971632137913839724658484488850731805000906672711856308315821195004754439084921719872838653597949816664574292597729684487253553618551371661319169030359910729606837841582617008895833028021874560354659711106717794855691385429953157938090752289622101073323068197283265156984648962687497303581507825893119271853733841012210517738272034308805319178747798587454042614610194585773545029707091578991385186075111375081257562578181718564529879585175232333089907182101717437323586048743398162966969547158835545067623835371044262050347536988618584230477211828795183530611137144008375858864432788996446599521939883391176402212200978988001175623443119520334643178495321555353705164405986983244168334873466026156465703182580188266334268775897701751173138638395955973492603190653678350047741621698262050371247923338416824711323668553232411781811000890557784925554358000653534273166736825157825618576514904931540890992232302066353110093389633514334120875097502791203775391533255360103390387209216300158856061864847638302149003797689024744540265057494069080352022865784320158743954694045420857323873825475353127995513243026482832723281273307034349356692016362036746143751995421079341714350830469729195401524902115116683815343387625679426347516706031336699559765198650312425548602644753792652108917544222134280666571939549685822242465880526818385282266614900785214649181156350087056897443339725651489461790754836612384379593485362354676098408363857851190167489340744743379239488264178045345838449179655767919069844512067719808390266862971240204763527068293001443911243576255427538863603625933074860879640134728672200895959523264742949411849344313599489521509011387814728166287079485886706613383476186415867942855926631358959324414237775306329208144049027213573897728606798800239286052804818444485563164603914466464895821916560832492745518544229492807477362217044444672857711602520424390261095317089373493976077455200980481802190472180219007283366536293281873276475161810321363049719751983096383095538088367757090665429735501322456980681535699847263545588709470608554204253607852673895702453867343344277863513212695776044151311584569415951347786890271694363687189258224894943719809354803431838152454991945906883284830371903676012026434544312688990519615957657256882391931655438102510926179584568247969764171796718699869455802430670889443005260585657229972441348768400259419662123295197652858555806643234072900161993535890083264080655882774078513823277505944832581269261700121351027058964190982762274475163939751257545631084662612652236548596132444946871601486404855144954800709533621581425312386685112737074293939483810646399485412377568786529776192895554852746675945486328164122590912788751041138427986907370271732085633774375744656115141405935136455207361218343529976592422354247755649720903167565761768381810510621873435038910605905729760306974299964400464649059524211515148400503116390141155316577118597188456574999770423733795628646171676363078206679268510928539269951860923278300537549063763141366800668793070388510513995367543356956892228242964854266767470567747231398999847177536997657983967213491069684807744031633431945621307290123833991447064582742291792522595350253174294208435119994783642025879824595804760875714504304479260907918486490426604242107122594808382352507508260757560194548348216414528549857211162053694700648020762876283695413312063293069186515658764352511021615603741189224425177660405837727015042029109628819276761353647107001811559900139835114414056520369250761020403078190685916495416772445199058247143460827635063340801427683117047459791706251315604175475551653842256428485835656658582869020937352643319463093761013460327583350139809041608523648433077833521865162866000092939134853517697971336419565140369312502902549178843955393188736612711173439327333905504621958631269576483246360536019706656439060960941221706876707043805893774560364457994373981422506504473288501291496393922948196466537136743191618944949819385839591940408915858278535947751954820743460937704944754794985111775540365487008252376658457368929039152783755877568208428263472536584447912935798771257726761822759092508973344408648262621598824086823391916857634474322330112728127932655915788875750734660672377991771377494261023445235363791872195793644586261142846205586063848456019486292580456249920294019910134883496968822130665587543828691776441353649315414087103604767176460698192906765868682360941898771675211941751195209585476025564341268732837739641308033911353500018379085376300796072674415353579424285511052089796779536068568370760990076641719339413419629693310630242813534632886215976713103281349952787673128674285699456790898375520382168889800319046305280837388944748373429597565802220392075980238714589872408096828514229773341263800601374220023077568253787269475536386043191177110539276482626084825938921415533074552938888726767491625606076173118959094342109234224162173811179581223853748267179354648093825837684484628354058626028761108030151628404240569788760051552686216554683737824445432654791744729873102823756963690272565147150351755846435326803950947719432026214556547644456870527950035943385340515474344827504626087387956081981204744202459119701384252499926998973527564737072682339148200804866810479623058609489115846766114203940025117838600504496936875975125899244932045355323739576647883085879063481340928882912169355533679085585156051237166354689304406055259894453306540808672570386362128492461023035773613449321974148710172456169383287563712998084375667321333283163000441584649227065990844367848967573326743677729491837592103490678659519098363072984608102277021464813534202948920419133690321429001096065504078937392856131330109726024385387042518221248052517842020387028508930328205917623487686859308320548105895033302442782417333224046201119518244796990996349204423584116438431531221926537463044851722547446392771862902048025943839391822416279296729018181902748293700298379107792158894271724803726016607320815541164324493945029469670295003045326385225708679842187345768154942776016732080077619082481467136971198444036530933841831877713901816273908223800537305556392687527778209553564893873006413989922876055383540159647505508962956124617173465530866607443976847784343070039248967453384242669775298472277507819337396271518491825972093426174931253764266123827969849209495435430287016008423535323632733640328021640982145679941349415955657167972364184619637866252967777509081008817575859783739183507273229102978053170198032913225024939296807641148963643197946487784695397142446543937481525941055783548277654007732828426610646687291505465175335995956148617402951462516804251405567939509594636286426600463798150040335782060181058153055128277854210242905624315001385440171905077505019914689820581101221933788146390802684250452450801646195656321330508821893844989027687247466232852579689023411679297061549016059023438271054338097935030813045037685829554891521628664613480333115363902369237519430589818237512988054150969363194990647892294645513340292673433550765989028353917280130800660294053774259832428721099238729683697503392699727082821858350890883807811455330655038644014610369182361380214933626783246372583440180387944791003238515896178359124243468470806331176287372861556567263069408986583031064917693429224521765209571893083215204876206428480700550269531459116620017134733644636367881869557761207384077673104643316814603136242114279133354550115046764921830763430113795724828940565631549146498950003876896840572016945450256211656843412174329105572861604532351654129855587254351842267062339947418142419669411249724572588941415924385654512007918699396907440555108430822529223059332400451158362089988651231574080323839368205691849314841933568811617567635993270031075411386212080826146518450132442274786335357854547047862073853481926348558332502981034735344455091074153865614429097161212651563123038180839425346513043088806271315189963387818348941484696818438386423685548719917572325126537599485659171522424310563990112852633176073281668328172753950325384285584618171764525000798666203213339229741082959011592418393116059824840189058495790110855683601704979021647700436391922506539909955526485411013007587993594868504724359697039157772162807160895309383563686222710041573491707133622730511650154678375290471531004579814725257995221413684926369934854187858547562986133417326813902913424949851140861875927526452346819706348575074852593309764229827709521369388784471116168855554564746190276700951681765360424608364701638605926215985282298580072794618803895109139956025167914404582376822388142733649267226427083129636053368837609453459081215671923138386057807756399323127028253218071446144164176106291315863070577924652025000339626354574658496611205029906600992882384249928887735354407058600915142595209774978422076119166048316241902049747585438633264505321506990128530328445567442395449375924308992772075083230037857294165359756246934703293842483373592781575968302978796203221293699821856503130939452277938781464917517079953941909743322202018115742605410212228093601694832905209039533944821875890646959731564283565242717537377998586332650524691278093059909064005190693485918462723348234671657754338694706152704990658777114035124688913489650359006161076138701807968486519879239451396153265246642486430187203515572878460678873881817358741557115870964997495862054732285055038318592768943422828990188246950085206128359391547678128955319645617181553520496029745714637419290238335537183529074114667848966731264537372449513732587889641512518769046502996642465743578558693635043032655385064006293418152158248259406974920604486352334537241861712659359704870974132797340978739089032889773730055227859527216657671973463854582037957212767698562112590384670541579372572751305378362134652048912526652082661164365575919046183762020863267751641029788083721941901315857655979510911650197928919645894757182899515354780946094827441110260556467096645507321948151438173581590327891322415751312567531864320706952304811443316032410473866115450728452542965473487250769895692024896467813904653162324001814864560285661322654805888093894563533139425579115255556601797155675807914357017060868570032742304535510738014994876091237047878440866253567175287773702098082831310410716943842361147286436963216228641724643917052039691015439513728518848429396152124000427214856264654035507835087249779950494702544422858506071483548184013550656219828146501722828301068155009126289940612353640470461100957841882914600433700697679657971187373674072628943999740992126104107237719216858856215744953194416107394220175178434681651868041869124527160294475553438303505149464581119958948080782296169828570189322309089542091492754099175285668974662371973393277529229507982582445092513933330964976613166463130525353757205135460426584850326493804422335663134357625932519846953403457981176710777579730271605197215482191689143374782580529745321215599685059307139222471488110299349236826927066355131614987254901018550170348935804802386421183453288614173977396839677698546134432045195574207215909025475461803809623535172827162190074010831913888638378835274484170445747346981398438027390609372447625448174643400797029867619940501028630198643855885704329319391752296311744958273004003345552624991005843664205227453373504051143977349809915506056424773394014819704600271130195476894952099606524570672616684452261301002502961294077819262701087664823430357894189740939072505151780131348658471086593454804432301358712333445844291377153635412904974354998732618568455416703914143604089675344966370430010908499184227603645635494615962599974302373074824905836879965953272086142513186932993384608432856298523586214598688433834246854181374085930387013075165990258481165758915881583070289056374335859482144327338403806301701003066517328267472803951326434905221184113504021402816856604362231774612865098657747512181942859970040945641372781855696691215241704216305775050387101960124441893879263321287099239585452532016141776236551312800165050620175576522798606477654075021685573775277588343286571966916299682147278147162410456774494514047975938737996866740284928141160302961694655453441099706247662673407391262337799183424964682593708548786230979624043137550398484654209207163823543191538892193157514363284619617506661217545890189025414576401600812461718414819155914436873246560562273793870853514901062359321522022037648655755047589353847188507426126011880617618138763117395425721247068474864754175557335880904970988263434990516602361834671257417310242762962622098279201728086689817876795445800834841720989355554356080467532406908674697114386777778006644071720394611293345705642831001646997201621314126484757837658386995195719345998480393817753436110094747091905944122072693464570984326578204925298973434926165297519947736779760154044045523410736161927854598498355187203420270034787699030206281126315384084918696655260024585255414694999758909509590755025804169784186399351388323473819318336491242673345631550657050674727367416566472839875914264941442878491722958789723187864858042165936593629182289818746723216859586381579751277382405336252960034431388788042520075588593034243156837365553529401527530955179910573643226024450818749104169910948519688204837232963117910465336402656560724620186262845019186001903702069487217137848532752283556421953965872508464179800969755911708702759291442767840061192894864545291929327781284503450019220918432569907480068910440395200615122127530206405330088526301945352142065372762553369491328117927935971666018235043143956040198384967865818862186376389410727971546315108666809655426115191129997025475542519040398960804820280875963851888658011284475315070425257102996027421430539324305063222135430398645362141639030280386703646762064930712473551206854121987085102284323493361878143072851513167371332055698159349311111071432947355003140048318114317469182922287572219993816328730330306378627209731959422297889794830076766671163060428923222591486458712062690110543821662811518375036558156609615755325729663880201143432999639189777615240939048086867959220865887151890444709807112103723415358479878059291421001836739854944789140243298454552585728206746129614265212604898682577981617312314392528671071603453934755363634882761708568729059601192700573901450722520942943599695153720828074661325733343432385334763446327936859999212870402890990168583383198746615364302550590756649226513956975855284190722735966002773094661429686493596240295543688359101760898285470954303827418473239740586062230285668496242284028482747140745054748665018912265883843465522985200471123944586106718642669016676704563602022860690292246172231384527509831515191681255491175808189947004814272815797492194934798118704180966036635796369966730596351451140152323967650925865321220572982169320335002032963451663495912627379183920547811400214353133195905203465712379045510902809359701345103714008085253758566924973976789241724132033263822700805475475667610751603272326630358902210983312132470148738379447700272817622910499442024026302279018717678457426867819648924692170681793978465953400744183462999043587009647230954458642299847310255338838271607193773455492834116312283801151479840233976668921458068638481566620956299459273241254508668912741637265372156073328054358318177912444292540581224221319539235102575988270063477704042919228941306655714454826261805365771381459136399614144065119066388973819163707589904283316924172940506061554749642745686501011064837527069445598953737762117972093610240001298581191349327345899874028647728921364263460411086321553876226757853288162645256432794278285940376628355989391848948056931441477374947800218590897181035186329795220128498498070794794737162653654660159259452059263676888146887607600744897215661399578273254929196130041410157968358850029274382139340781014179890793649132950119324661531850380134831109314782731145870017044475218838185454447892749662290369085327807466404597994910729710310489995824790359011913102962031701436969190861678962467142584974764762660906420509835706354776983686733695876774421780151537722970068734209438356874635643203665452158661611517993325149043396644946487097005315899838891453897263599001792221976451463294869933300518557653916191323820876028882816010034065402383959087293092601725938270872679466884992111386159704594383421065667407011709366201714714272770616991049714348566432633032416127667109421204235700283242007002044531815579385417374178089957613447164463450467389816024096649113585434405767109421899690616984959456284511206457227743568389436292118409701776486022814568036345095106232629378241081019523815216618684868727083421228935042994332023282811576273266638847139602418736624858951050934504239463961295209063318363216451791398883747494347374469135298302381976194969019950051348267712931793365847039537682179319954204182737619304956595923046783326505472834120234868437376696969577245033177951463924951193737049633068063549733381194924608552385304710840280967830532471571826737287065752389949809472351776815549669127024839794643993109226296575205789213397625202017580880034559540644930854032323925793526402299219240297197556755668734208436328565628718681189485908843748401041773497211268433534947271830642354753353689124351105506389406753517697132716542574434537967496625155024727851535366840877497590406133575716720168564984020065328647812872871538395125291322573479534043718798831569832059039244127860539789874099234675337816817140567443615101769769594671713350668765277703923682545805954701443329337712439052883524385543731596916412802274597308010526796484444094966325670724957162829551701436274519635990556525515170477003193363151548512390653436642974935032421071930185076639166735314547629617973182047885699971613168886219852847228304339860888892740581781260491796788467852829487998882068998317228542931728150758986122526161685137747918581701906262823939121489121573356717253625404924168627443937653335395114397606765714276000580714393856672624891224708787350511236659795282727036771138155601037687025846071606198044710555807961002126162729027104944313079538804745471923784322850831003022210937970455075192062768352217463038114201131542842844643484206857259954292460635789932842654976794955525897289013967750207056178478403556213911066209102561471879739923980623216084407731803790958441609792264218410691377767788226388891405903895816064803081922746079043995223329228438288926844012277191376206931841761784541579407824338591432677096140843900777489399258959305555610102682614336967860302986273635573788962285457652534892277756707104536614859675721655783239851024406290340663258282969197170399018964221303596753475769343645497137331673275235344676909030367944206062353840449727845493901775461969725564026063304280054709598575313487686738339912015566106317058857612446847637875555657646544540264835314322263965804558686171798416502461351639664670697537990160027915871382809339499539165401209849703003473163759848646824974748694129250029225391862806961406053824071672561510460522063575573173690250885154471426073690008126649034116129946352420431655193652185671763288947609698974495736484673258556991375862017558815686965522729494311073986159650024201563842192260379395634086241710899375924421445210998397402197041078436962860208543611185941930941428558515343440497110304204625338667142280640664755889946026026826584030941141128119215103602115058339393502768189551947929429680917330501016076137621960356115518702257996636220441915052627957889000072637891603470019721435127492889377757835354354022992827407517827688257267807373467212506527393033141884201866807072673346771212807261339934804497755962158117872484847215199439311838891296990667219612782969306639378763946129266289938858083800893239247866463388707284689340871155068740376498543012448696087686789978477042012412363972304564070481896715165091580436204600129021518814823700981014396708700970098112685065157312511866335966458878871062495613580148053873956699913402030031264747636361558922544480198154525290304465327583103033975351372687922309193933301979475813046999173888798777981388201256021765340694412624117217330128005958330104618231032525864720313303983743774337818768286994740899051128335967125160528192065949602736952609336873582390880225017091448695521647097365617740616412711546898347679737097017369779036906827753891589232354797315675707611833560911287118169805786082746428389564150807323186532309767598921191762120841698706989727299749498763588812365738231946528076604218384068076311509593356086766643363981317659468209460939519443294811101962477098379050532349885161743124812796930632584483243518967307144694367835678004022687462821238082646070714515965390847158155193877491785985750356123455939761018259381168969682965000413097142740763159055208502193924265792052835376204923712919356841130493145668798203680576340758158829022403894169811866755277877376167558805682119164448902333648366860090969916799548061147427026486213800827481709190786101324540662045421763399314209126087628792198550474449219928125269023377359916293460639752189750856525102979988539892711941157649245541815274570486089472886368473812244139966655309872116798162812948107642266105454236971127411513866017549009123871061371604378962302193542579661209862799776747438685063244652182025827136115986195347399005950209238899490726796349537124806561799991577514523788167183587321326539723793826541832810449991790092911713687461144071219909683110180103122339312663537663556227913383780495130632304520175117188476888726525409143384720631985455478424058181768019875649648141220420122996172807686203215411749402382234347456517238817294359293098396638315695000447956105144971746979018597055632931370259503773597117961755182196346289773928992786052224319585252736510763138933088073089330852084967988565340130503149708418056515816167147815960391547841163931901953214110458881206963450616623604346663839088108319572082824465371299167960380254183900081669403356960930251935187366333577578723621036645886151347683759755121589301575442609299857198973138635294585846810833096056538100623632174657735622442592833065001639770542799666691348221737519514851792639493518412263213985751288701674681700568554529876397709668427710390242025668622138933613321355986946894254562076566185057119789009263808022350131656029608473313994842492945229863028653241495454084191808514260698133301502182668500234568816677542653180898923073258311833820426599583295366110495734379407202452131445909787178451291996809879668007713096089535521070030387086036894818887790302293795936990216704582848864097251262956164208984861523569482370119370481134066446696417003357027741680603826757771968911195446654699300696289638951852235084100028647275115636009906178790436004071134289875923226337462334628899357920474402507287191139242593313503926466766225209721490478198952764708652940873392548362630237473848726679997698971446118269141350214719138426872517076146597400598827369127014593810493908268286840036894493535419530825516300425404616257401051172081761617732684974887149445713156154567146451695577508400151921515960425319961411795701504692349802997968924586035888641660845680812983673770523544845261171834508727539190546048615472328168924185188180699148540696133315834419949068205348528726283554983446583094743311816679616060344907057639004608572328396647400624435865393773585178378468276165295344914504875879965287242238669115531411758306749258939786425102505924712091002370602321367401772592730775622698785987177760833069223794681914529515490465280107626280588454935920813105888441944106104482082457452062402627289888221547131941011069960293274983093874598798312200779176534009658075667993856327057270868082527909948426650425773635558074121642297204652809432916154504511558441337938211244405428066197832267932839816823821264872415849958728158283492694210173862582853832108613741978408486049297498529548612651143339945436295392794394381002636033927627490942946212166004422838304326109316634722627613116126643230360438718399573927828250892495838467903981490351446177823795763155585261137946001280734160541486497646469821021559639908069427501995461967058597256553439206211474510296356328280432733879321829934286441988693452402429824949282573119225377793193456480771544811509714929458147365742143836772958209608758716731157425335364221432564410036217201772350342193918810135324222985235679858299850695078561717107514341165838555162544874466756449747095830821690549275777720338683816810703526382657964462338352044044504260820239199431471421382322253730475135468276690822417512654832273167802234697773090143111371145422715571617731959554530591714341113424098876866443144547910211078280491727462216152933657537715339727224432412812697725210810122752915069352887887209216167070757644795305821905339060234507046649985387018457871112817005727079890097578911255918604498376169183567429867132991997932431512333110917792059939660560756200420170680429233293091533563748217177556683612430353833867131805412645548006166941934621107970024413127368250703728117720441011923192729760866130048969363786187483266787308206702638272510531971530637035018527618009443110581115818217545659837304877431031844726392952521462855799019139743806165797251164500105072877804391307872891608456282934741090947479910894079816048099515404656520795750020058922070526210867471516526084754754488452084249086203117186913959105342938683885336754746548407018251933238835514040786988824414406605473856896361853200186467140919891384340708978318678376249784104979330827508405175443642967315188725402678357471174885719619283823077596267462924059360274240157449316370667401710002934674803814516881600150976465869624862409624086941010753971386676372436064270322721826973424707235679113250416481111301825448141423607872821608207359216221100170861059608439770279780271834339677499774486577080963713656734788832655422387415440182900693641863235837637722646762254666069348034528710539807902535996622871210231962824245130788458971660451099888661530605089382691107623671328723763169347755360353255215629859891966113886297668552219334474404419621113581928793151633111597845788584608064500503005187112493662477213221072108102377184379762133532994877931057176132803299123077017395744865669065302684964163024578955517387990403901985332917442782695838013101284737448952078858044748984763542025705597109092444591509429454547325866142838809280345644805354478076132213395765926183846278834064850037194257572926730767455615690627665614042758560843908448962034764706130037998660132104667735026561392530681172858916328259242860979497468738982687548795011243428239890590664078401887630145267830720204890601250416904417757729975414824375020376988779480637339943134406648144518567331248498758138917516600190775987777278241430882605498619318089793050190317395213578607055050412876347520380293097406090298498553327096551174764817697333865693490583434002440118786577406381878647215737325736571718648811513079575273023426841525789570768075519603318306860860435371416232861180031923561227995081611334300711998532563977361251143631868978416448333634400225081279226157000958171788243188624137464021033499592854760915390310121041178095196609892599104863114024190309863240002456038774235112955035808113164463179670504791693361387354259387149631447319104481562909155454805244686803476902478927492713366773840883367405794511896647908673124511312521446551288632441064795394596426996407206474240860495245469559294179338571204707418764753560746017627088068799757597927068190057635171097555111877837017334733760254961144201908120853999127516878065093126425817950840008177147153319414612022022518598824885253935991904690319548878528300398141432217551470905801778316595097443683676659799634531406401476586879317782859277796300907044272740498473566656223961282718110879246932216288892868902495988060273885370644933655880936890668551687579219203076151180825790882228886053672080223944268216050758338755917960271677615775821020460536880216268486429454316634063410621244411195788821168654807457610036176880990783287758922994719098701054888268175207965929262961946776329070131792385470186330948916116620272906750000398042421788398811085621904857110258704886234887710066485736662727973193772744048712254708228361502202101451521550430800011104738140787272143678437976913199357125019305025602950099210576015330517772878117898399710245551066721483220142803918156080991933359545482251987824763105316480351410317785231547488877524832556936517474400033077028053850050091515452090420982426147413769656128789111177716699329555197510186010268157974083176729505119448467389254276648074814763265490976244048640629058999235301197703022481108915868291250209761621752267156100546516864181018453590983599267489009633070351731014466233664418160917127659689970548401979636693408179907172484538176519018524985869203520708114672235598867849554320231104938929411649377234722056964325896805461760696818712114257680164882691081082969645329349543299229190762593850442645476975087692990506346369252720654451501485615540901810147600531026762039919813688351191056491730681859415520075050300728581020445089260739944803434086468530546043609508453861350653551054334827626848498023373071953080846386118327744389823319067537137968407734638933767280570083014633285722679348821433806199883966132301392663699913246096887780229948136362637198450739184676296103628742141624837251051348329332649573236426814636842132651553401984368707159921479751910148040623115261170576598112018977882994952479510362039110480999283540158317273326119240643173642468723241856976811575854286394833994233932625889165869679096980319736542507139434722183954156733820315227990442087320843552436746795756557595083793340727031219081959962893104697780773760907510415063295036876337520625278685648860512374356429552394000462752974577483991981872483350151658708207243993924910601377405562599895413997123420635777697706349507886346923976757174771977586841661915313119578310174819167416696975957650447144714409580605408666537401749630311972268927951544653975875380668208697914278616960760749269502339045361133565033651921936729521788302639346594892096920068638671399572868244302435254312380273761913881629565328777399211620089478701607498760249247958892550833683688668089106151712521810179293008595889875875447548880980553814305722560447106639647684625168495997932440658288339707387024830730085429316538058914565249705545007771303122776639962095801324969655721707957202470945636722035024234510669756294805184359496447427235405287794929489549980331282575065170804687123089877928345624349936124326578784762569165315594400819619419704886065873253041247040351198554995210318789614176577313822875446652934064504091083056607876486895845138405659241064267605868825409369554065175727057239480311763842649626205791948168482677477394697298200112472887806284365296179779913958776181004059198634814492702901275160497415993793447995682962426701115858082287964403549817302698299256453231188069930448548022374450901417875932987742824295628040514393755838509032436653799525413194354096061967767177484631353956888414828300058247496544056457077402052366916289004796663804658385030517757956776320663769355035497194936057764561731762502250195668842730500008364302744254355050301107303129127017340322994809109116856484473915349018020087429044592386395308314304934276736694373867154973287293852319714339123934247876287345727884962277267466359354605698614762944165562958238556898488093401282376106604439124233913336161033056910570933111622675087699546264733668679426700508760710554896500690568779883642919827819406600847135731895303933484961196154996983066526958327779078516690984206796254785616345742312615296020802495833101447784808557878236335374813018031535475459625231178669975914485035533376591535478307850068312161240190853379893364457002894745439958104937587965162907093536658332359690065977749812318038878163738523965837040816690286561401392420380909855627737775147420379375755487114648001321760557642059877594170115344148929333159319298331068961181491558867418962577889638119290978866712970819646022507933489377075013640666579187183610978104207193926934344098104323089909501050470694325735645935519831982340398883407627047152055476429602066373886802246405501057037468365889348359612555882802437125354781702515567784031110820091865115096258855389158804497604111388539193444276610254814858682855306433183442672434447728399621223527144780253000051508498031809040934285037543664475905198301522731416528575558000894081389908308574366274620792087197515504044772537666506342662242710705911587154891135594441625753362510358207977631908958370028669915288879359800240495164689070168458712369654028582176135699822567556603473036555545094397086061228542971783298310935020129246704601043689881953243432542071285427480736051159593434531896666905165694049117103066649104672500561748662029994396648199351832263301140660825165380730369045198987411451705687558146163910706550569599227975221716199004254634855095635083103037807826418816740364486827995570627621225203021792152023513943482146939885078402662771054458662239085213130776367305315722923903975795961049756107642750266129973078717439225219522738939734202633069198054857699504312964063450394114116545573863729621197976302470203125204847089403211937263056423953006989321785513582752952798147332192862098366625945234069793913571721936557692716630496489022420498389912451454255161306516982261446899921998407098004404136282370777137598658712045161111732935085544706081078303939649904796295785915193869947349742877551502169283958722021502215510647873185496793899021937642751084796688807624970647852826835246437769150539579180444578935842578742143357889921772482493296060424081192250662004484053681628574130064105660112336372738879605260099240326242018568493422274130196202016664615130768481031119655516084114266912430185182312341818746068583730637367524259659241172423733376475636436293477313951838816063311850093694917913055843359852600565300787741672042476365292142725306790610293897128457911013944573661906662951406675687674940402462267336079921194432063422594074069169283547544705629967428132894766598458608517087090003169669361758976233337777648906074606550745233688639157488514003299346700817953447170424372834515747261365870800817279847095066251157628294800419247994227614754954708414901696094545657325412544547047136848936697028041937535088827005788357183882272367039158461336718515814909973226197562806826129815211559649126264621245870761646597754445258681574125564881976307265334766877438159476770474039377692256618930177749949934332144099205559624467291046379747415596865673480720980893518367700987791655225650363539676285462746239296967472786443158537699919601490692646526276523994150321201839476439172647817398127094412088654537158125151335824936640739009418072026643103945256603082764169058428076347434160376086197732012452885740738584717377613681417177904013730845777339258687522976082168978585321966673880678852695793398929476520607538097756040262850453036941996874207417163985280545073207815514018856876721798940210186490859750466814046905283993937200873693051717753290624995615355463450779242019559673885000147236982951377306135156700307910448148529565302807599190317425063688211736812760696027381929423275481385445438889800925040426696713602967384686958578248006236448630218409159034722576350282013668573363263765982742898926868759301493581511409279919748435219669576419740107631032221500198938496198990393754192379989514503005748423098667965154812895354110602638523609020928868086498117380127602317777183982999580530575958802361282166543122008526266375939932287959683833553247492426878329754204452082898845270283431840304231311199964831989082414860087763932977887538258123780035214035667490867338983194943927152698279952645174153674288851402461848916378407702092906924543903901021166759701863398774901996141300024148390429500774180754738613422011238872686080377570292556842089302015983981469241623363088878641576840423434381733090269149451434635345877728654912111216502449277144193820829590193308886649793639520901246394952238542059597547102372133706955320515453970921646190150353161052576011720040672218873747984010197966472829623972406305128932851511646505445761948431684461404373618141512628119231312915736644776513750804815362015480099420196637579122892077201989909043817210213912451168502673313120228653349882384625708133133167136197544412853477262497084368131062915019878091939227365740251234718978884310814736821352186369018715805016427435913187842780029719037586078079261421496481964043909663464085003201893872142514630811564323205302152252473518864136185370902428645427511366774285577546032265479843907668567093364876082540553766793781339889769101531045865723161640641582449176184408890034047842421046767405549747267153461990241434783978723574763735240203063370393235720305999374639359926343945848948920114358487460527843410530338201064749097225808988643206833702679041205068130347373143181806691465429599678145707934699725019658607257018727974193856404090974958945421392429648658644623948297058128306937869062895862659222678410225853973514758061331722483865336739888481045129274796783983994278182017455815303315146473109402451383410060134554392496844843263098761279397086716964206362399231572949290977331521400790760302858699853505237686343840680499690762295921592469733852767177671278215987056300797196423068897017648068507924797532115492036467983168986844319127040997802517697034660740049049180881337201220187526353915336546095113764932808444259373729796835189935505194358006210503495978256999759599804517007705709838141407136693948429094427005005290137652180840250446787772024436123087881758561130613384968447739443271510685179709441591794798499747250805929502010350400300321320168620952035255745363554747150948928154510410294942063250327011219044080721874261011918497200974660867102192786984977118731789824525154421228964683545936428032202126105469848296930825543063191480695203563376572580773239527473890071516874068842786136692052439786034958296331486408891480528288494839756808747794530104028003784886147335946624320102949665726996906422759390139634662006602528946295786218067660266982837933670917987702693086554534029330989066752079145115468115824910659275909792008325524585828213691789312969917672074518750078434525308865158188857801189844685593180867525706074433698663010785717156136590525055774299058036740083623833133807642475486977334829548691102600078992191691180892411636512269913054959800591592151936537629723260233052090074504777286316526694582276745852277721999866539719120748060276291963022451229731195458616438906970680574581957723716644349631106956896265655516846332728006201828307395891531970199558050167516207373205348627812376105844671613427156486390133293735647881085654022402900941262984137820967095695037123631736272854611770819911370948169362962610964341411446149135885692876308154252900736220001346972772050850343936937341902027134061372282421245666075651669315693871437626468585535134559987469902299755652327870896191857080270363636122203885532039935960669663468631297428864603600327703154004493613184308103727620119348399949272893645436504211497341348281779746907804596410465241216114356110880264032762577278479401068273678110123431175345059096287692400199961734786240736581859158677634224277310549366851234481280451261665988473118481608498255372569193422739362257465523521432388023182009651506523497548403240755026920854925000027554443843996125996182098495348580786113541640586435832589106784255262862906839835266288189868284700672349366638876136165921586266419998251443797726940024835803737541603585895020391724245804633703949483158064817219837413517277033151495451875084577400034970151699327061124007860565600989297849231489981103500019866381249678455666629813446704714442207813129899941547715053810953185877645828185392856980533270630983267250070881785188655291309034582170488186336892827344576919415506799228071446464888839861279427637875811733369246093544923910673397976823309738756762304471418851553555853150362179855486165570540512172501445626561998849233249909445108561244031821925510241537709318470526629103084883677903936328949967526596550916998843120804850405646168681771750352189841517631662249726527215418440564203861181020666293774936718305546576366436372618430022518524957460706073379435878464127566174638974682519227252727749583459478622405328642615262672800447111121803385551135881608790718089467383602815528351840208702342881289459212850984160060085299662252077299889234194064791709684683318292020321165309602936870189486128452711318842355310373114884019502770652730700225464441466005712321005167525129311373608513588760117368213024597906190130617009328192687967174298617045704686893650732378999786490650561634039153326756536815755893297601338273398502056475721923165974249080107069222664042661210302061052969542309263791811379867713726509965445423409367004238064523571991648063855547369743225592562949660672800666494855147229380021105810811138566425463344731554144831042193935204783415852977075364305458124025841926958284483951107669185250163744802760563410021639161459489427510912305542636754902415894948578312687026728589264546567394685156865419868205778988591299184567116219578778011834338747884588098723905756098366136429897048440598646418728276469860562453720674074580343538619873303883599499171959267858663839418659144434100517910196115525567545998996741680701023455064888311050953122668046028986776962840060407039780556522894531751887473333508176613920842539149797459332389924747399037629657552905547943012016658632554943973002790866789121756895059014235372369427644198625950997385872519540782920626446036414249110973197643152067732688059349726225984715003255545932624927304611357052350376920802608265985460795755295315530256349620292288947202734854544270949263375239810195683777427996142406751567158301097512983674426803966088941920996295748805319573593160514848391314993328138341836089984878951510385971083356926989395328588776881358468384073680612192569295524358257524828572996218284810140586298883709449790474344352317795317604033138025357727650628237957090232385050242036937129111425578852635255983876413866578458148133123329837142870330444285725921705765222279652177302964926574419788520560263533501493179453292317625672247397428621719017886931582684796926351986759209289764926987974898670345764351748633889799355425567535417137204784710061346473868508077194254165490141811834856494663936751581347521229540286343480107853401228367882203155914195961584303811690105481915935430700936024592893038416452343617774094308282450508532276731375304772309073864209986454064237482089766825856437820203306319958227018795471354860747239311526584386209063173364668662833197798435250852686957362655027532927864303865650442885418072211483545101923391956150471306994001105671965373009637731533561988321898976326975667934736798050770604277322810050576275678660891361823317797629379030415812981342782548963375362918284012493512453163307968232662272333935714261383804213821222022422226451428698215466277526029547438327850122190624749644648014853533635360282963303551955793980610219340111710525953186966877733247802707061421722988398007059454648997347068277148343225745252215177202763774805053822569331938532232014020053343587174521032083967081615597607944154694956309409480685183226173555056094572531614054684935562424867527606364265510719008759586855339178123478183114914273006505674087600113215161834056460013195754212651897808465493812100342834649515170835563340895935415106275179289914938680534322123333386704591543774542398991883462582076117655191210823320259386348265777085086068566719042379418902607343188490735774633433307469865825340885705300451322620078286600948192178596133484866827004864681704750861058406900878824420716077948267301868871847216983311052204786277706828705192241064656826653210473604399864778798459725547751036395860125080001582224217213015710013357832880439872971225942543474335773493762752070710960866870540640208329817066101539805216453644115671792228542347289762462078568252339473095710216009878530214280972267897001770364907773724642282366914205788229795306726585223830389544720935662373493128803052290400214438841516220815129217016129593559214761691221694515751232307683231646669504168029860748703512642936970443838814066611818540476333669356652114569093245427100742557610875054912034745409000818665261432777370466610232369899166482239601258924318444995634892744122783418796886693891753443081086236035205232548330946812495143527092244540613542356245877303311798205321836459899728742084979975326116858227728746252583720095806048095062778580496279096798603759951684395814007337010158397273471597607338084501101223278970210574742800847250177831744766892535770794093592006430295499874777250537091296612910685922318492298416193266613656381265530522859158958981635433897171811883980930791146689366680320184456714141666688088386415952299523636566672483515647380088388152429495056278852634026224534000081722076966919234504650150942140625127615702075699590165492166270153337383151986565202293149225987350748375825778700704829925231777130569594953104779106577489802524039646901776992633312926525195326999737851601613750606779531957495526211698328395437096094775563652636046480930946492686672823902371097931443289999213344986115473849172223381424609032056738307836041927274588580252288418945624014901505851457829159055494916869826124658608410390982579687800907037573899676171543191534533995262623813617128670737704283400516852156936588761946603631746810569549229578779780307137204063272576129377143495996287233614936237961626214789198132184342987733098615644247803305651402881625842420385915764493671463541608710022154005302317028811381052522736683470601700199096279518101066056968952285517049242867753639027832743092235994311200759082136286935290678964213744585173432892701200845274670712187584772758844356067365194013129603220070421797584925194825736499939529643289418054414497760972713840277373044792993057479214552087905375214829666172870170964115614184338772763706366772153385576505362787105380991130483497714721355153713323503444272376243230011342682594682560748604139957188610527936503858388038395483526458363982410857686218775852847461463758281468235283587023295646272443298283945434485627273957474370102252883181800426820466662955956825672629166683124038137340546238117475202333327598393407725326045472783434851880865429118296129462013006804058225102145212950767430719876554823473403615304342188942785089463731692594579556671153769708264954250359039336833695503964238185615628206089014865619691360603241310506708422395304689716917087336730271508251073492954104811014730549223764204877039452329531246074484254492261441932793191548235392060211007215749073332658458647925679800916705734367365934483464809111093159174502134907729489811232273485903036178324858431350225433174039321376341813361843003804596270910753536026062792395352794447125593454355171324911090120544480206868384220551445466140621808495198026505210788614901883011806828330334616435309669552548298665362235358923074140725064271596904823646001024220838005090183457297786979345349601190048349455346902642506944462872240721522641499364424904284589362436149907663135001311904611535145957295485217636278191064674922342472456468799622697782391176331383785190978956366697277257749968448251511901149814254348424044941555256038709194123646517030268377126657487507377086877705018456972849553154288766329743174257571759013267159754186136088580660670532406429198557807837047720303163212077120061053315946437243104180512909330963067045278037609804563340936512004688294565243585233653049395424197024313454221052254722721664791569051742985155601830354565140757594427666211471887354597194247444438012584994619335895680455849944889385848199058712492229596028991482651892589984658774826899587597531633664734676427141058375190715779232299487050725693983985782846186579002377494802521954643110372232708743985662167304748997723808438676497616978900378520872866812622518491754291476312510718462042181160857606882382511613799342074068675904525527369034684187511177288093233775185801047751343440939471405827121723808388535917398864502483796545611705372670983512896044785918593274789394445520656675209257559024281012165768950206413971701639300165896721396153397047537558256702012462656612621631483010887329150536271879655307296775308684035132557015142676058731305966463207435768747594772858737001482466643809426013660064760611444688121834414327198559021377623476677089599349797641188102391299865992282059526147331917715781639790850059121801035888498081831306026039217169511502620602057440101961487277834284300657651243673326349582983853032931846744284852745781161498197099260558248595137902078657460595081162784353939200803124821343269101538670162043429162802430564879863612173700854896227917931014305619120956472701467259236890551682985911532696608891663992261263363569434014918118394295915043994796585796658960854784073670632013251615708594703110897303734560247179432033534523846920359880531296451968067480511974820304419157664838402381373941786129136928518436647006650400762961642706065295422110455177518102417808045976238700459439108662837692598256550831285843842944683112680464966460996161423411937866545190133370905886523149266712793794833590588016762115653703610649328404540867531040885657672647649792953338498643558716991585365126368762198816974216722149559453091465271461097245003705385476675333595168281225964834224242357068373329046765631022224782598039089859707848526331449702724009547207023544738895090132595933523568505379380475679943942569899575396711036030145446399176797866967849246192826031198613332156965934912378237476311217630482555024149739731334272942175123274943663541232776986850527694302316023005164655003952903069507694716203250793203388734744434882191890304179800051165868424779572757554658607918265947774816961965195737369658017543864420924431237043661085587767339285163367013032605323973071538633812588615541414882820223136367544662899061710537231609301522387134187145721356417689641379804496704910210911427648919132848574150121045342568812135517655884294244250202208804590804019061332190428602577415202021096826168326803838980718030351960128153134810931045069553098867485977995860189311691470870794085914218934613521988340118146898329351071692070006052011510752306528081075698640946350822514373484827932498423022121297406984698438096117894274592211580461884766380878459657798610965676113944892104392203787313816615651040437451979621592146722479054875058501383772986413450450951903485526139720783285010923976973219572078184591288339000207794266801162991460092290368898942573812437382957791296386958166362774771319862193222563972641512448714601898990996130797752467910819991358141768452394399735395735364634853678294331828232348943170420068247994036301911506817158185349142640034202792128324810753700648948679683096515955372407755010427168911293096591318571555388979396391400743682511236806976510171422813290624387047911875049006381384228782171749075450870744932517978483238084276611234377792753273680245717863135449955485997873637709781274567925621173970372486402536533744917664667396818607198006287945737321697293446818767903851264846406394725469185392285434217753060834312845333467544297747333684376017634178294409743589806842816778534136030887286627516067441467938839861775419555564567651953532271693179967035687153384445684481033041226604908171436456079810526709289667653917107155399157917801648954651279369842698366369202340823231983218538483963011130363194463998801131382081919593453581955146545174240210900050687409924453774305945266188788443384855587837265234062286360072798593077707068049446037048077575945120579141591806641344086968763499932850240317811033193457065651918682521567405338274632139537126329301683716462995135209988416808948705448633592901470589656292644135099435416147919307190301262197973831763505920714703657505267316248562029893635136729446115699923223873673097656276246467144390981758729572021670359172296466720367895953230757202486324869778365117575946211604403626422656455705232314782101695118183610684850792314194723307664747014559290632244057211212538694899036346365980599454478259568426516536409719286611821289128696512654064337946640620213451221478372532764678595829491099050862431906556396003679522011772941747412087893980927455065813244353002573745718834878334407104141023851152408507625626599892936442953767605605495740242062123828790767161360023113016352948348067603099176947317525566648233615475132361858382818237851330899013438335393135067385928972160773910348249860627788819713693540066644545129963295716087168582651457164327350049756249007473697675038137910997964356960120254880961179960272612247694464568405607180327782730718583479675633099557572209642621086248426501203915393864496474415062159162244388871258265477731984058034090996100409119023703981428298096861296963037806610395195107375402353380316423120096542311619400583350740462536340422200925701903119511515257456144847995102650312080351210850630747262728413299784812344339302223136363554990985543912311152299079476424062651982389543882521817801777054278334487099558427185682178636203916476474089437224968610339865871877654364997978543281014743394449075498787298024290250930534170995011607466905879647374401018273773040668620586833556062470030291955823269177942951563432669921380258213980371328714617109467813518912671687664842709201215433646046818660908508701911040158847176160563220288663536717715585196040041703519182437979263378167625459702820588934496410678949103584784191086939450710865181908274424527524120002634277738208825519432517223065761541940234294303272945142626649698369931261806853735188640016851344518307273549392130252876261970761525563868460499186161308732867428134251047054842421676058200497587067757482303174395622997427266061390511310459971833982958774646968309519445837197023564327238027720252432808854155871636221964467000917564166117033802195228055447022959370644014701348578682759202626273397084116901876979990820456817869765109412193933904389335617504939972063851347454975924779116885839797744617440097044766013842715747410124418802293867791838636960010381061441173794549888679934706997598685142381926280055702229070616590863449780210002081888815277072667049075179758291261364330491069706696374934550102604201478955697289001892286680276792606984649305099249158153525054711256089900799613605124928384459216251791677486250782815302001544036759569842502069992837936060382923794939981623364719213555637498690198304444953227148090243904277880916493105736377977308854088236169017011541123954977518883594755210463659295215512092993550758161958458525082267259115046285990828249399072373230782393312886579250038475283355687968387815995318740563647883511266682255929820171682592542185576460407319017197035194409762159467269937102911814092854035083901802261451269043864642357743803664332753958022401428104971083339004867281034925598434125122431351601079307798891792192760650602058731944788130457580861684691759829514298743042173485346970312983184686106084450380926511506689003006847639461560109119021129630897457499196140019133779252242884958700471690162496067051362683954367384770657767186749268561166701055524386210745642431320706541554627248753796138412623374071280063388027446899534503925262467144985226782811194543791018069883791360169760753084057251007267984192912961644927555360552438551917167330785909228973425977025526640763233035117278297475483848093334293821143159434486212252871545448958374919662929505841570002359790350981498054234852101026928939539061628190307950250626111529265831275561500562792920380105667441882994327777082818861610273631368814467723594816403675392518588863169598991590933711561100771772324505820938766486978487391482066475708862863584417588584547840061179153130272128029405987361199744454746916244178124053278274229594954968678251234011119434018767807080888191599569550780646633174737427362323053038255389242347236923808394186049613126863814172459062537280292173489809343581234193622743012876996220139474919600578017091583783246402556661425934712350099948899789819494844535890353667759600449742220200024575934960865335118548212617441263467161567603121462431733555239535119431377371551323397201567074543488890176372945983887848140085539396118575277210424451647534273186275841134334168059045860020299428979802485802115726006134813312274857276374390640767456460242815757525509945313153789573723001326680137421909974292857537467949624343357525528520339553022504481200223954701580836579370144329378820014873693290999093065134252624883478537081883129024298598812934189033823363647831988628557651777152273213578399278719013837359656427944271400374077683263808307448107682150050426913011393372657211555827402694687681818196401064572344488584916114081571257395523434616762947274122878789711679768845189003083953642523241445283230633727815660222076773805376173849385328827311901045346410748999681370575456387443411985434289621467388595536621741051801338702852558174532940301444196372009320506792287534441258545107172889027472227317623800557481086413824953253412961189283910666745404464568307508371497696308537223667184495794258675446697434755634757565265664777823886082884435976752998452025273938353905813487470623943668535354653280196329884500857995772608472807309885284308178284532992965686097212357600538280629698141126117665929583113360753020590418595678444472931350992188643935730873626709361179322273520657112935044465423283651719825118165919134665693400535039677875981701325053269755596361098921213251001907064307692830039909727276139091971618356621850899199382939857901361277060453709719798963076113510547034188670728977042193012220715650000429600928162580254086741677760544510174265497768437628775026942417100750015713154990519338994180229425229926164477450760010722514500572087677658822256145050481899470020293154184837669225696341015641626426976390602875318243816777731203384156079521216091632105067640200489008747815556917383644184709947794469843489874787973074930850049703903926377611686816526527906425844905577097425324273002730805131707653699480486156944235784027134678991537805879164145562141444925349815327578468544095779685777736904945253863686697578256576963237188679700480700337500653996549786891296232906760987138539897150781111067187539417897885080393156784687451348251550612296547990031051690986809406526899971296188057364145240277078756577698992806718172433731620795993087872803996669506264198476355131360502890139247064972592537062325522262555020836502086616694412995140303288784702888390614083086772137761233245210483843296566525584891348089579490749648799565879417114856463590285988542422944282312883708926630757491269431869663614392468889911407051818160343733441371783058494076532810453350580115695259826789021386110121311582402732663897844560987317850125286685617757299208352084815015739146080396945622297459558320950485056313315183153842495266966517883223759763226593811043870404222601192620063180786196768006778842888059228828814058990325902327743948720956457860497765747535845000776241167956235214502654386804206586889430874519712749374381144753010656433998548628205531641334236670867270216880937731085684147657556331618938582697917897320174266629644756564491211710335505495210759424277084190876298905141436141204476923561363331927792568228213879473140548340258787987023358972691156291631995114706413553290263737311565088356821591244728578099038466928667914025689565489158562290841016237269900581920964299488580798407364915747019571578653676805182859995282312426922379024363614457325168542491576110046965262462892274057459218736672188101150388588624736601714286949342326678506351986418680428167396710806714720416951400267565868607695305040491089757096545700463811585687763300025149675232801053553112425984182533729617243616185456755598991946260992870953035600991373098059067921228019590844250477724717793090899101699272697182560452180028814889391259202073490044477337901833907961354706081784676756712676690267422489956095323798171372733355508328493508818671168885370184045571772899734030284055633096496525019494682544587759856779077209199862525275822812538497011373233228611557748068017405235786363868777401532673103073484791100020490388229746833475660265837676257839262038817770444440539211630982429095262142581925734188829200439006412887368011904292898750907445278271672040757648224854696599555979529398089564003921011557195429665380451263509379413718646045636503222107081240956130058095662830456900419913371460666138606868435731306384130468352848227874849470285344311495295309412136731922901555551825671775458389524011403192007186548907900760245726667929799297558673638801978209490512239632463923657531342771680760850159848703312992745379457880764654260627606280230308325900698487523208473170205076059236312069172512220968482744833827704534016116794411754766597528809126427537828265374491706628002782880495018387075776948895596288209953845257810220098735558119770814492080935398664820192281874393157982900429965455070145298616946518113451218253736352611634729467382751099807349991124828975490381097670072328681134166880036908325485144492798666884714516607433643807346093031140281352271939187662462213109270213112375785563661452281818572640161949121996246033565134354754235967961994631185747806189883217021481644601026476761283620182702583049162459490181684169548031548344534012366514676968291412482494770265206778438672367161484103790345364221972959846754716807198482813892973166795224127429131868793961908390233438145772923572145485439323547978728470391036597296623255307344529371586860004387281473961570699574798762559656777901965106013332856925133714539664722674035569123713596905834789295571769595327071521121074015599241592426176799062546783988556371814839164787564418127614678404259946933855705905041708427878171864188817566949329700460104617581593179179956537636046682737973337097438741683918963041884556848744003531940098754419388486410621466576891929724192681657261475051257820967818471328988274203709428414811088504351752141149174291442389322485271619967793085547417048918182061772373997052049584704724255930481381957469680946021237932131636651485540329484965786792934850399464647955526259498672179301784574009467474494085258735238907097261323215940728196552464148118770109274833306516282616158431397070546866875536276844050791622920893038649416020997331936926115588597756576480771914161997004654435135545697038428144581856131595329794662634713558766962891728636004539787389480171512969926850045776916275325331917785727087397932168490901888664015875905116140050940996749718866256164225293919562398825467101571624536614199593517752592279760768298409492251957509491238867155303719800982529138244835211884964397521264067272045357579652784013873956860903215340706990033599788661024825031923056937539134514060017051072605534699743489749648299078886699444607227543878491228793921277119339184053452270571964870367577306412502156930528526282523813601540819960974749655337313747684428439390040865285739367559332602568976768555766338809565600287272127794348397348243825093697211223449806227460597917580771962676913719162283819540283327714769185057798779326934757850502874039028680314857862174015469062167404620835044644765944959337501173858322275215192556830406472330663327481505555115843826617211537617715472123560698390614601331915755708785491203900731563081653730386827552004473495184364432260641767776763687526072009385743844833920570732817085346930333892034193485841151735038186112279564902518346972910791287962983155591284386586690083545323521334179848207435576113213210988769693647244067375285216072720359677075955104710994301554781736289845011300977527865179573618719734720713219723577288646850769538653965287760832537091547698327142089659455963016026121253958032441056400432478178467143867923246533347910623890338476993137831254302115369549871792023223072360154129294576605780456755822220964262131346121886720713896608307928779767730174895121056556275770727171914807852596723615472374826219872142351495496743284454591141353208618828920189616979485519051209682558098766854668708807117314971870047464649559148164536300781773656015369981159094600684729964807123854886946043385320598241505292664350624269723270107836209265772471015700813736419112785658187180346328575220463619154180052158186195994336206429482200226853389254308522905135885500904816454569200009079019137304972180485975201297645293500857779316212966446618277648267306017958581667488374486203617394205699313106823048476042890412960855014346417303197226600506326839886566779858031453385232965615139335562829501134584566197406185230797810773213357284243411380851239435678896708264270819436316003637583832363241945719430298932201041193990143698345953480507244144239424382212392343629022667619373250533633078481352313411022312902214926145007621434960763085717514739174913235896635859022305357509151434390126528396664007458869386685015785483948355841233139551462157041418419335682281682982766745516450204395241744643191563350471898497536190993608016115945446790895693282881895455868256644744626277983078397806882899396878373754770411461805567635193273808104438360344916795609149543272487693921684100722702972450140594802189432129374461079803681224572405861657635299701905968758001391808290674802891109934154611668273748579216812813554468649806140997731247870689311109842934059273271715037658781239507392110614359712119621242433982824258254383226454637192233375594810056137486320897691442758866549061097309587631283610251612309891681574648985985713713514139465613705254496214333551213945883424951442799034580264586013122408697959009261727041475854575341567446603800257947416258855336067711446944603880181810369853795436551607962445359231734602714505370196607988971968653550463818484755888824479567268985895998866366876344826973661637861305106713908009064380747990596720789894066277651336088479056828794800408857286238848775181407730940050160080189685007673712012690020558429687844174110577114732505901774242855014702864611054576797507846411365231542901473175274431325392585289770765900894615013467924321881095143508932863968412565091099888938983480949590430166175593294182339860262328978496420322603725342440380187305623654091270369733215150673067427925476421788652786393052252674799141892012355351659622386008470107607049576113565631258115229991571321172678383575034834920113361995152179908744689875767578220934725880564487323424941755496382554026226803625182344254833993614094313551205822958175315491127766436637001179345671762956803473578286122327803437918340621122216115368069911692325189066334559876503704394079203942366891937615914080024440899908127730352709420278743704138646583761309985477497299338445297104738107848421698697203404205265912895546876184457929765094949739308493500270949890416038066474063886994189665391339618337024229086006034228232828596176871799368698493288422567121002604424605033430342841567871758965040193767943652570529203445458143247551897646057931329472256349605924890880240681111484096019919948687061580495899700692825240686056041710868451345094662961862716520691468106262690925781143543011402731956855189250830060528573792630074955981508573825475478038764819670104304350634564970779208713841458554767602987383514658261632725324941095081288548029249570359737350911258713113468910960257167207458981335617813577572533318253837463938397369777567385726229470360332601402443688299917689239636226046846424777585736989389929857562543278391622583234769483565272466646673635010322527799220519768750205079005292565698094631170310982721437537760431254043916923727317671731320064666898351288899017054936927327481294870327022900862853772357128011375492190581154346858553809821087301217930373874323126293975278038002019110140764605082601525355146161353557391860561904727627638335576919407519285683226537529789992246076003784106029112602797999237177531648911722315285387491299062354722077702400291234978090011454292115308350783125143635315057377691505843839261267107452879565246761564377247961987188329312674740758708818595305059725522907394723404962379188868274738433863211006924797543474896385832390328006555122420286746239768463009271272484037874705154075376766005800387499043321666590315852121518354906501822864646171342168528362282097615062236089133223265765471001173176844410934501596925834977274072934349679524928605490782491174651078012318712041706754356347647847522844886181509855729915050821211832382435391831636512824473110011062105039265622337732143768826342620322096371177286111937308153769313397850213519157920874233414035144358154246793087259329268557855868987356661347947107399697765064990415617604916935560265314055785397016734797029982959393094278247133416301477729829199266219538308458980649823814438516798423240211929235965170740360279686901750379989965871739334603456563067432782346814795586089777383359793058563662125429496195232529949182493962035431524052176931215282859760451421366051714128022819145069341912246917951609557135919067925509216256961082340883968652337753495209814959953330593434967439060489236817832970745791982065780074963024402926759101095979872750138680260824671172672882754465065969404486571942014538084124640815531920057703848122057118482150692383698335067083149398015493923549909665887261789665984137112272301832166843951301329269380638622202875462219990166005914461221474639870187717560313364283317422055312151444112132001180023724368660527729112185025299321091574302740167483868098235166184404554786176845399785138497905325044771026657908418614525033154982568554334081231360744091465019826606342233620284059957866278925533181701940161716073180493340106333095130325483766410932597254150530288966575932639360537811177244623133449516457077235446418403245920389436947669711121149728327363532010786990616331093644814878618485584225201982998549972853701452093860579156469286028310479611903703463873994816241195279949272909238778100678156442337629464547121010700087236901970405092362068354081115222711636466497809026355362121670845217838190355918113085068754936456275103084890708952947446975966074360386521785543036840211062439847474708493575161425473710807310561673044962428600502305265788116371724596484628940723710839136535342939898546645646202902980648230878337304143446531242871225835011022248757060761576732607972157614982984479627283946400893112825693498227317567647667780887180713425046760379317835381524590966972111800080480885044941680871929467851550276886285057966195991221763163360036478654062655743028247540392571927880563819479634916875034350738375234616545836245097131733812487740221454874945180828388009016180861414969451973172343796553076615397270978518025872047327195905769547201390434264656305106098290149420969886249369369933995305748779584766617153884140197677759173421523073449642617559072659698176727429546601649324009642602417241709469591131409719764082384781912431942713901780575730564836639142121769167036763394139632382651827778975313541757617737542581359265203120768675955378818257817042692773270121160794484062439186339056177597052856240860956314071760531081326344464052644588561615904020607401370833722252165933670557690262904547876657635740879872690523250328281683738680118341679796091735049248472645846558329053451271771787936130088396978251133858681673951090061745601536391959015456801242233867872635731838999584007662130674020061072285936264606075447580650607198252314457454155358114144923645501142171682239673121577116712010855257533725768339803785675928304716672890387512459808358462285994095790118674409596595519902718345566646202508923340041504364851991325084311715426898914873869038955280158932811888397832065007953412649573921908825968403797747461867199211787802505054297958178688323524436211202144309511851663318421212367626285967853911321057027761465091954605731554348513176323315022661851997124662166928168278194782094310403463771342042657066849480147795133169365343825693819380636535285172229636256836045558457420420886607792456212644531376686321022888087257672302219441202193963390895748621658846126964477486699311464716039098867181504804809454536439992980676821328388712943159292956959841166937321515899143258976880079547603184659837029725502899083376750718704417504541280735909110242556960342110024070666974138823078916879534502953148441516372950159698871402113146319490045462334469364257385834254652277482410359664719054090156953714867015770214960888732512262453450022933461756367591871718713461580730447998198991147161826583670932657376072252484626091920469637793645464316512236447039950771725491317040185815955372329351328199095360654011336400708948771935428043235106593413882331876078109154787238486634686424817980979006522031166575977335468190667176761732305535790239079604354786650572916355868127704790609069902409276781865218925604485586201421694472057254552442572914533997883952762591738943485728896972250163365284158599409345731590576636857934859124536145992592426698318187521870640529496985921121048761849005464974299663021657444702630964566146766176255032252852621604069816711325877433464594606258781238240388726278890603691951381114181993282049614670460882480632714019829725046319886811324274932076093009022613599401663093942237592129964330473235795764198400397827631319584258132868934410160185114824702205890702208329695885508456514194237446025179312902481903679278818398404117010430655200658954532125238306547405922737688430132979855306218854470621015814153061423543572567561361269865256970337829399861170788444178121241286091884942225576290754946656965339035164774919054451648016143808367121200816593704774464358822832414626436916564974178559070263187704483997334274119775961579155867061823382740691155737284080915891320352333393180610230778594799348773736897048324989747470488934316215539877401550579347106587558448527836780808198341138315045162627364059576190000219722226488059893112714877665795650861473113182180113618954245490219774614868567862719234195024379606443576991825452961825217752112838156934078723434414689095716690435414998183406671204300327687195481868600622845427650479977081715555348773495249930753314075919182909363247667419237437261065886602759390715868006955113102285297024265487138191649386151500824631475314580491552818953356566287954055082840409523687896127042894966162711753778624761700885405500860783687910036457847984387277944383447702058697137701267145925646344237054467021182982131117563135268147945553118143155037065549216925281347204789548785426215480419526993631758703822892254785212833333525390914823670237298083439979846959884623384324094947124590238821338200328960451425877373753443726968354166320854803534888702375428837770112729077447718375194616505522742935624218955296498639984794706783384174342389154300305439834447706699705027771043198640853978728231185397075416190651583914678050262133327067305944023297057375973645307615583264771640293826093022207823799466514544480214038899324812202512028149013853678167559896213111802936020574531681387323023627807332363049099788813096376823950244967601757487605588028643479324070827348233264760398798906990386002165089946058712292988709281371261284203001140227083920848457961677921835538497741280924250391890326260530644311783172016038400102976824428993100586295416094045520775595115395181324190056525819860267313904625217984049870871725707918505835753671617942249887515833455230445686622066342200788893189971232116118124293863964371670895218068127598030709768468148826813594167825263639021534666679649690457336624093674709580440044449704474417347397303050346645722527347370386838716423968917864868657742418175290033282627837648421391642349374635323233609520598763737494858265849925982391099158818968082900052831797841371161238526578653891735878161501429110329002803569031881496054110587470191623168097800975716352698731238155860948037627690610208869885435016666510089393240639514404730590870802637805432841824254442081765634974153327468709130727597142880098707191701186003845625962868335635899603306568441189216877688998553461067979583464431988592182810767237342896995818757579075764627264887472553080523266389308278245573354802311825295730544731256057142913437771308883499512682861320102649148297940707021638370587209834418707450210942809278594585963545358408708089752153011968032963952826959692295676334057850492574226750687030047687485333004790204686667235682370506986474554546632472537005643384172721678347000891323115328117488215051980687256784141726700838395616551854252389228787239084299469517602768347927359846811339468302653128820745928960315024714450395103160931524909703065097404506441969531917071800756433831781410738324134463675286993409081535156800145582695569797417241879731341580674140889611039428348155540346285561474413555052139933463951741634666820147021543384904472579663324905506544827537983782692629336686000190679084248539113864913867722638124099409693122388109388580106014684702097654170859931103540583038066558691102185380638761289920727100042428803546832288394350238228360821013392533764100009990385222092403177341482065990466201914201227892126103429562047865521709259539569456876605722235506966549514523271093662235316309846895976173810151543074305169134409153908683718942459343005421599601919335289870630670619298404811716348220299161104439674110243488908938998483747242919753364923976088271411711171521327005088364044748882487846411565170162367921717139676902037012738288008535102534971229787568410919629762825391513540173364834984837128291718958300852096109677370589136249924954185660559075075859315449867503641025528040328442155541535610378342080261040798823415662203555679862462582226309695679937823566186744218041327534235525759003452414900481322346022310506516199951165471861789652170616651613449752377212789538177461467522687224859962648936913322521738152854572771318624294094532454583280701374460547851181362027705230362456865994595347196483886779710639515955925765453402771400037459846128645388767993224957016511306536834271552648675913221124812868593526319770671827096943779245327952423089923099257410103708306680108708218213117653059418751453895641701876985914430390403257005456255907533746112157191756650842189195076601506157060602506645786581726218651005832261787596689515393630015109042189035353914571064627228721996000889897182172222427986711518648910815270976845706759112333394238766206404308573273394890425974534203022781954437058226161667468605365586132244963514483858402157381587356192926801206510112121839667562761455610967040378970656696744721754933251633284697895354895749755454498047631610432349453683646421214200722702390751936475129980201723060308688656798416812395839155466314295225245158434682416116560275247024415474008761805819472113012117608103756510450969986921455734942673696012211667849563178060106858509932310352336780651486512964243135623018685810789141023565243552552309067292313388089858191240944753452421986979410388984037877085631925176155858653999165565632877936072081853850246440251255846684255112910486794316792227890053696153112534409837181384902832891936575019363024835125693925628510034035184913406768000473565133542427740478891361674978295157600263878204658593620700036807484537108098733628340543874536425354136334391952021092128709831197068060350153066310254156537796751123751272835414850275793060377936988418702859659489532098521926890678670221892820435576398987379814223760793377457471645048098968192544329355478472542730687642894095249399968738001758659078873921617592697846868313105502441569882075617509825367524316029256273440296751021944012215911037271930552186811837924056557602103045321050668259746873963057099518708207193211250930522393639683765272944160477466957378545819911152343407004646156032549048897116779415971963202162776142169192839676222089268188085769599303592217334604849467776718025520703808106721296866917868187639746089839398337990438969584719886139548819500472820140104841422974683460785516743432251041262859985291260673229464713232649039496968644760482162243526460145539309240319307812503618940055832530214224594593702596499390463433751487818628759826471993992297912689500878990133301906063654572510586716165173511321946337863180731249905543991817985151327363243913167577229593330340462520911977097079086406899078689241516143758183095092585978801838628721434843468246334267727588547073369788169217195587190271557233609460503392799912697799819901621303610859253907127040130207488563633974252639714173222038345512196355714900575260053369132851604918627516026401480056001868693509159180209300094157760513181421084886739640707298765426718717767100510397146734684791081083437432102835419689930876539455355198894341946850891176151897546286753775501478116070819228721282156180916167835457222520705878173902459036378682783030736883092647099698534242165512164807657481205973575989369460211624663338633341390777992706925154218380238078727623234657496218103344678136439887657637917444557979093278244232344272325453586491673916695916821464802602540101960568467823497334177701366503884215686574112766878506896471286787972558205276040881828571098264136562470946450642874311853512967658321957854377190123306628663712790496745804665300714630338328247161756200508721456602878069029777137478291245567903505052647315554477719489089555050177766338719716554704383643367639392196921363289968733924526542003446379670955214244175128171829383865850524614953959416380103924635097500450367882374755284227983324097864945827611274652483156727817496514654977737034601108578455693595743937297356267375250178481107476278757040714085403670156821782924857822546691855550749386480057634383373905768957329325296279134908312817809668378032005960666673614479764812288572618566149019130371768920462755617414336907147423343976499420426524002651652106162188159206341687726920452248779999789334377109120919448253125061633594481070297029135245840952113244614328612661022266243805866616368453278928315086676231886824351670752054259456473894630260063341666151479699893213465512029943484276601576046677080014990482239917614117885737564140202482558358084056361044699962246720154176254430890209498891239622085914737254514762605531517369168791260427804329842228561457455423188544704900120924130237634363047468365277965809004334271030491978169609827424896350799297219597049626395501790935339223874838047619317175937361119972700974443373545441087451242510029331249730202228192136152688189650566419830678725543598637002252066883211765247238403429671859705799237449744256261224320004048646446957717207232854679198730263292448470503122683299231086099142554252024528456748533062619314267241120886279071581322947884696451485166467686256780311653521873600802002967707789564132608708410746510550578041855059057171513885443023243302832092900450334523668113008796454593569966432099890272909315487735866511489831185999173932730614851687259673586829878905666216653055275160859361909964771343773949908692335105699494589808576069348868432800966806437626532601657343445642601450804049213383404017414260612121450164017629231935384864430573672190790155347805628097728780137528835743091052359550479844284210911590163197051696541118142443025229729433014247181986858383058687605318627139612857562875572717931198889419969347484449771721771322673892042912677135647903388345354732674637012660709986077706362058609917738241613543637206336932352203438018783309830483674842093876205624740069451226000313462563490972656144468145015646039509489911526102000873338781289914723641248746040789441472291236965006211820330540478083900202073249063698168765718982279486804127506962191309984679715271049077869682819905068281980967590034118297613982000090116910042372612254703079028085670758867981508947925992791801512970746242043856152839400653904381798421363674422774321333705331143870633267100370654158684674320243271974206807107633762131497237401238638406752953831421012280603032321528763072166519134267474511610550155775842292434901718820447553415159186651540311607913557221916762358163339003560970735127938529540339334444500927141257895500350310537920766604816581131266431499870529962261284641089929478016987209753931195902244131565016354941976087276997987246590303340407397976503990228033811345983442218657692213477610074573586022751076594054311803597892966551900936597309201698586876405063841704260975993516189762536879905960853879738615938358121603037974710661977210146195816613418540895341558327041568191213580473848674210074702694594581066764498975119862399670640976773455424844187223885315333935334493111788203732932082293852777551777006175871143655761875247069462014605263399373186052436548394191940889792670615817727267365718375094381578963291710037662421062061514640044126130881201012775290373466763811713853271507050789244265204169887925672338106941428961136500043214088137946258646100810923358261974521901685086925276017395727774977563679688802287703323860414315475080157124338358925079058054878539980770969879709054751888273768968762938835080358940292802316622144203056853952744274254226579302179221992229235473253910619146946925372464519127910185363011571415232565601010903255562373113769657223554798300366028838670843122613093764848047858683496848910371956623991672331575021407473449967328889189821061964386779105817251616767310799606383690074420490671952697933178432938029148330553435776247551951392829733878576935681804017462554555312807532390775152307123002562350778023512290016458365570499243123816916712373164691520299051226984930081959408027108329325563852421533505724904901084757296321791426481404151386695948239864225056600780552070262846238678484595116343092280455630509739281245582261046336077960847668506271224885949885055689029161023409157936726225145009282486372959674460468933948725589056248755265587715940384156869418884019245470812847142114786270403587409144324879037188642327550945713543413562088378298583260459662327942057422022308918617281519448435985234889182731356371782638466772452628594714670053482977111699517728424175341708046200906148076775027147954014192611163316645115377073977365320257397641963505795616331806450035005895715118462772923976427327605685732435248754148138028162806368189819960938139880484012203122759026592618546690817523238490517009578169757162264003749808912338449165592962904091428379604060318853876029769145293317833109562555531649466061083193358607853768473064221051656779567708321158887254693216363661417943618732149568579103029622280067591889609680680236757422278270500051636662572751551130107552953045271244099924773049361680561537945154843279565502881373927299266058241759675637201615851888543336161242919162450003716242226638121347104875548404668948136047071945641143395026327020883064341601528169349550722972541894249348101992218319624047401962567399647592929463428655429413871898900570866386447259071529665180204770646496879714163604481793267705092885075333603651358406002922164917059579365783151328563702791446246390696000710477681322728227969152434481348879758232838472552613014969130938963786990481536526086402636766979579125465102643260223897946615316492880906103717872155155688319619180505979799481496634186415017009233069901254759650424083003023735664479104135782335321221744067951138910374071939304621187629623797964220031253913585187068937743034341973393335786825753960671801736382295169239822834434236297641269625066784810477463777033869582239200659845097271996845606775480437101500568971575830849804161685248631123324084784018440045770831088203109467651673847662026547285541349952074405438566500613138025106754216611180526099295281257688584491891324953519286158903654197557586845242676882717486636304511322706141791574878105095706427309860208586572433973699029513067769165148103814902146456469288838135345475103005309603212675631402954571614178608025958596622079877763516250582494414075343567734236137127980608724339024335630923794829646286719270146565938282065239244209538458208012173511914814278009485787795714966227038974354363734496431351027974338211855791870985553191068232054939429655889489317550638174770905860415747978176855997682551364674857517483431404961679083896634382712109363281603456832739512157713832274435048011070259489696134971005676333775733465472720473209305207428877892356889957598240523849762175049005870303622980058454769325242983027935683795436969626523249657729430893603338928921184979469800245573450189669299955175563479481451273849300016590374215033603442116247138517994024174784612014452582039973300331872306228993006596720891724069283221627222877794537285426788080541640945135453415010793259583657629524672673337537078598007482714403087253053945187341497541098484805146635300063783883493806983029079687409808256131209213709889402341199478599849085809063478319776913556284962517939717553685078721592039836538758992878995251123720057753374420870896687711706913424790697723815625940594072670713685642060168369412754080878144777020988968010593905191116306199038366204811005717735475238178738378782271349245507161561684670407495181718943670449783716568889149523433378563067575732391167513739870262747248399820175398078453750081215638767434890094569891566476771229497424464258278991716674948444648568098110034486234004905050427957843919863512125181287026590862380485827278409581267136505576810491065475832098327253550694367770538935461751694808672424134338385175810124353893452339625154100558562151475536860043941974561355432890294398716770356300978748091103536266761727976837131654182005038253263189799636666327723555342908600759596318136808146705657854633433891825595817940837843206539297434323610966920567016455004056690887910253026696209696360798288588292641649974327056181294501966661587318392626026547259368488385496795118966004208216259634276029153714233461370249212536886723472077071316743451057543773115893984630109531453829183157294305751481160566743447804422825003176907346359634076460913237226736781974323882602131619938646740647163756331169876240282372568545185770784302533767967241691813997099621060725335375252474326411039549367914438541920915198594770205837265852409979936942879255852038228390334348147913283385106156703623413061503177756528403340953164066212228515036260957292825890924471698531212219439259742487080457293276602779954185053542191159492168997477333819124186577303536169031640764169581585151559887596466600913354209762292280715446084342929199971323783277401227370296345543681113030780165774932094002208095880186755818491996595295771039256671612327029125019961379571810170743349874298325724727401145831069543957665117616510190872875791256543376399101617572114464453072011561438021678420298412615255430828300664802835359227080598466843832103659553981255757347523395752535118395735083911217746745320012325961336388903702833785590440133040242738935307563587438680332166849182618368366950648713993416564635594333799561204277668838674177825079847772737156534783013946607954352803431869128489813129864304056449079786318263560244996724881678571003443787911126598091636574932160326755512744395800830830514403393470726378088828907998763787767160860850169171298535011309762088059446155409950300960636329194431662149327195972201536557782557657306679463880528317426241598250064897908790119846933776934855923729454608870049163065393328219364315741549915571272337286434593101550484771308536871373520967068586219640563859844481680182949602845548544805230554949157063720563385933088129455906956209945227095404097566271526431884439998847801843254959845578511417384016222896005101212074704149363371065383314212652759978569359475474456808967973927977214007480115580995400945994703152058545848640260652031825910673016960899111019700633271642428806685246278489182567271818792732730120503095261627416907831303041860815569875800482702826323862564227525998142339406003241706039506646635966556662206901994856851546412783586157932196289612940174782479449371953129195231701643637227233946480860995443724720496873909697820203537652763972999073053067761791386216216646129923070481469954282282648303066524007768854806656508017619237918063655801329590932859961572415064909448094575865034283803037770784310260235907883243141864245102503821826884004989336296538480761918125562261949415652624400505553114357615385086273658348155536670824100253311867324797202418219994178613080217315800075147871849375268125150227902734093129001351372367952015448820589098104871979956044091443946778464322796947261710768141747376543705766469465801745336192237821403755439030744514215885823268941387238885973338757758430765108770013818425600842730530700069660325001681555690566444240500009313243548634895110941107673256218644660888461009973488754584020446683283905994283196215558868611429914795463979456837328298374887850326156302518304576376760508184867424421605092276965671637628347856675208200514534489685615312098595116475564202709936453022352785081228083632581968539668427205226391729389215114959260194324204424990066096363171275851208283744839653919432964117726741769374378793694455056688658903146034994025607840633479205509409016913867422402074057154367226432129643532842703626020705933535594316710977432677370390903454819386354705952148573689906997395812776860074279663542846383159960180681306581423819587542127009082551947599427809361111097738130734515923568535929773263082307188923890446220051784304729194013103029971213001244202153687180931678865282742351607804324931045256939802682035083821562656566178625663442327531434260849408754150282973548577708413824495014460383744638188843940595644559719581384272582682764950980528028946051517633962265314684874933639968037238284023562638788486635805359062698118978958936645829063337963675591349391957878274443996506733561005653573049706475054753853223070228315690536951369271500730109128581175804671359781384593316656496398884798923546477042342308415815463616458956727846453010476157158596011347375606651336609440621523907801238936462827654928778755559575580675815813879659088203288640162727849267549347686118818456795938609989745711822095752053855053617380623316598416037744734826403117164445541330504801388509132242931304412379345618405226267267118247330400388713239431726443690222720031455618040156880127343675750344885002618065659736714333818089843699549515360042555482256750363391174388025390999519824030562216399498141317489575479215093634118691753772601064284894417518214433901732157491950527886606354400688445121395654550796712242317715280004783576409634273536156261811377568555792604403172619121068209862604905410324414139726891998569092131329964008498793658789569340323981527448047927228008313599965550193724064908612289293272980133557397919220661290665094312937152826911559348539660514477138215813494211167392735652390992429312612086021984557606736310669301430023625332980214060873653798591483105468771473375770896692400815255025833130596016528168968203932509499045008196644446094948940190941308113695932117362215437176907478744356220516310920127139170741070140402968762841929485741449101293803298656761652737020543779927165628747434427160761035797636007791326439267601667357966518691567183442384098994118897126317757884054228728253193055531312417582284341557661913450969471431062320539193917716198021736602826177742235290464405698282076590037314639147543789281589357816193101208050949331977878977082718543949630908671652641254924304948095838958252337355413803672464504945641881599044994835323799197306804846785294608731283413651865272633608438624365713626204492521899322513717884147021229517793032752230969753339720185431148893696461044480364429784697918777840125649067787656241202116436228016673173418793171613569031925680171784537371314865923719344837829254490125720714717472908716668940188570232879732304478294585958631871400258010079825306697974099427375411936949793658740265119923079110942455542679936106178706461175858679594738179278000731843281742697371735230866400039409734797117025674452889343113299102577368084561547370132678937746106753221910195860380713416163635826638210846805857944957619015440219013840762819145843101640445014085047911452766299303199911257812669292310604661408683873894690474792356332696527145642514732918424932109789937260341048215062827334726653707487979759768941756512483678404011801400760859493206639437754882414691910308439031048575038847142785016273379285556697961569793763132608957100671909613460232165608664718911129303221155582245003444444834097711305405062620657168757561788760543753374969976798973167854522879633162003626089996119855900354965237169408348241292940513193132096486007028734681554182507940191302099188369315978045639424500771635458366482212111430821372255531329294273108654032147699812959645853503315171189508771255295108212443068467554951633211855817688212536244249626634647721023709573508196297617188465224710947466804389981223342799958432035076971511231728507954405013376986190385966396393780899270325681641408113164830339772200802675577538857770978570247104212298790018217675669657506800281168149670107710138820287086208995226782083242063031797919180248399707516263596316220035314682789465865093661648075947120367181024158861146599225053505792720522070008694861341916814487717657202974971385760336544384393887477512885203182738448111873317003302584921407142937628547775203842578104655934631459257179526097692377246237167236628913678951223624580622479269288003877545816346965609510926463207745282802027154142428201900015821150461992176825616226256797422279997600539065980358083903548383143109946423647179325024514786595383757578597400803598494518106793210281954619487593569221930071517131502411249436645864327532523055509224732563752795333409493748610362605366148684495951448523177713769494594121447066998625782130340145187426550444803413225948310672191678485722734598535570833311595206759726178777185624296393227170311741055239947095796710713659874263888554680539658159114810164824132074485094218252428379075293094457606808768508093079079107199011383357550031575525356446850517364698911966680911032088894320826265996632964171378649192906119829370856628007070487682584245101710085052133878678508446199886431979447021889003702718969489517891965506720340531054947200454572106529167187369403528435077227300702042354445073646460541533460740730974865484530109986568012501704291233726477810428297727685509474522767360441028780186356761808489371105034349876977476931436850324813961754526241962107060288543421485644420047020490331943652477342013331697820682131575601075878236936479563897803337779100720244423407390562988739194090860625863317534101720874108268638365951912407249068532348993843384565523673769517959160789715917937911663654555363917287649110879078178229625385214904008879305145598852981969371286189256326449664494377581550227222932854905668212999662892326413474986077818146087669185278575663523832544878783315044001041972964165606824250286890175488847761744795708534264270401850150129171886262770183262009581291233724802282966460936304143810668994153211259935738298653709878738307918887810272571119227783717986384955554552008969736221713771113358131289167809202909453200538640281044527460353823306665595169606137907059670240255602815057717885713033621990079732750984024450172540910877446067780706262567268696419398103840094179104516041806748349917017607616482151863648498545318347486441814115811665938421691905158907895857112508584919351841811161981770505215764756406256139639806778248278408689382219067253996065614692391989184844245401699535425947731843211907604055411768368897754675698746348298898899804005842963234127356883992235753445155444234579119031523393112444692268643951234714986600296162971600559872912634108439850069209149959673817878776708902143535527081033145603489046857175897800881817244558960415570848062616312457218127284765929310959515594437744536128119409560224361808688341923279209250376236383195491594503188611879568338510653248307110040420357094598019592514296662367061887696190410832445947674114362917753817740346285890206110393836460104949444881876434609992728170480674683474880634624000596471170959910585144634213815246797691031153737827578525011201771070579693539178273629164604605201842415842153779292392521254270367549640075146108452328992595878365425795147540609939111912119059784307843659516453695313754652488257395154011006188186664114041816783432158327694356936336561696163005602126614958349334093017347635256006717880650706467079816702393529549692125328409866916375509733432726666745026163948169462882532874530237487251737905441339257628751808523299690337288216093972545462057150204407322509754959910874757705856693329008527279240333238877425807505497155789363846432424147037864792690526409983868021337063284175920675188050742803582949817810107525227570072969776925778415789827867528633748596240806563467181939748849267349361890808889529858036705657847936445063152652761338416222398150494004888503550842308972282328521998508636081768125834071844324859876714662342006170995033416906919045534936665947856658273926854721069689778271234194330170025725269884661469169301224396745193416943563228824647053330510217273254269363274088867066718669302085729538011124947559439915670005384151548876085775941950897655816078711019573874351646074549595891567080216937619976073309269101027447575209448878511252148128379576382044722533016307999268530467538411548210742054958870516309000216225246859681447476166205163110658429089767959814940633906690566606030148103959475355977016758332918493648724748366304169098162193700033793750411963811595667698790557472722244693991376922347703433681410233098765615736321799636561480588203042940248230307811109889149644359245148965019740238994468967949026400964383090217305049054832623718778159274894918563948192104893471334993817523313022459594713276508466691983165074007047845420547598586270771644971191222087966881718439502396138647139191888147406919362173326203811233395472341049084134269297610898447622635227032537175688790889683584854183510985953083198667195935734193454681099114692084999561499766360984300484648413086820443212088447042734671818860607779712470110108978327565252092333108563065148092977486210726646922097398163223095621095259724158819325572633905221010052481547938578901767468845190358676108399707907028565012178133458206183418715755498467883043265512023629498303227162506193030230833773924796697156769696883521665675595104475137089452097440901647319941340410185256760213765198269530480146657411831196092269162362334617276788928727685926835114917626793384885199786581564769809507053157178917968471005613911913274505495270820626501484411811358400122732564698222378774350285614387237942523752239903295808303904707037785859785628870643326056901371221204711087789833581591037008892564354846781483633882977735722083975384186832962723671372617094597337107330047644266656364285797729705950788210760542846959432255416379638685648973506768142549338184962030122898364562314343700342876582456321463307874503779422338953573135734913868092880151874631017094742244476027303359737180257494630529407862596114442709278963812719484107538735095830889176463162573060475967122616157820330190544448825304765774855130930726400678674750840690406205092365813845455072059001694182370155394769160707159142683163665383616652793297869638535343853314971815912774656925917268168067556923914243891554990486459100482526555545990554899958833980258409529997936154971622388392420065800648670377988404014225931279527751965475496286939552937974225926355892866993687084899228996089877385307150687127330746850924366537095520881683913371045111025979723717898669105976186018455323071851199772669361600127707492697136116627901723614566536239082237325632562485189856606775797688914545427047442807776360136101760186488874242927808774505997031854856707466489706215326954867605042186339414789896829038355088838236309203513115237494388345310109534200844937994955718415007840663034852043904059944900440762360640454969602984356857613573523929307702140549504533103276340280818204813236901239489656982255193918906494292730748835610163944978181672095174670607044932784764307532841592518840641729761472721114428001409345889006611393341352762451262599057386738782529808697749248691026372181690244806113700373577688292740108922970502363924807766893921418355332515430800949850564847865976945037698556748559787848037571573188334042052125958821228661528266055681178158377115012928202381293895004137735199809210601599963066081884844535014055120573913139782840116128797012568892901966779477511806103956886014337942706842776829644425881622700155436912736750175798501363210626238455931341620261858483611482326326556944561013162833560568961144060949379806948047596780581217513956348114127510828443452960194962000397982157754794210711633758793544321044331056822236232599715790784792111760191335281181176456213438833189695203753324613464207320330229520604701317095593200424700647609310081542640464256881749867547539474999296783657431281694885101072753353087622197057938282140365224283098724054069863437475261327798257202011221223627822332962294901349942691039140756149215397495924674424665355897243504284108945320222775629408372071419292439489085723347484071467528764066142941936597216327424889937146292887208628270826614623818646888714627609211431550163918970726357447737524933854484939262683430960801236878712767622843005335782780155772441397039870050038668230281782790841348577781985520280228959659683173740789128682024330618945330991507476896469297047276781802690069223288367873068650822508654647400528674073796068375356210043738421122086625587479594147274669298453535955332982200360506055155378520555621515044852103603203204159308079510815358321824893451968254097456758268898001508796267595285309229991125799429470204216319694080626058021038968097928478713714442713906754153750973342635841771274917043391155321724028328787845305144417048211809953868025923246618302657835592578125769598527344315447224060113168255898051443660054615653919914057774446335150859069652145376828026028527895605159837597092939543336684655102343884361111889749272484346584326893568582414220708582191600083135936427991433042265077156852285279403595688884872182761084675001842447103484913880187339430486134801702476853299999647084961776147216405577124972362945818388508926251190583260570636950783538544648193910785653373997439014521923073706226993526051261411203647442426031598129483292568914841263780340231220941132853653252590567898127017308545428946881266295267682137137388927624793303449601846536934119171717992419225813778525676424328024419430479466074076470792537440548625614555823050639222545786141167247061858694541454216944776092882241317782951737042555275706344658779245705794260569147051482044254828024324499070147293610568506140539312047225458001956766789287730600724819425868422217784700677308384451326594487942331523249593083916585555394505284901138561094503727826685596258923704861765067142171224129004901054186953015431742064050375398400896377464272596053139483533757620009923900342251158086308984729398454546329335570041246156051902722761688197257725313809988810019578055050668726205741560427867812899353893836918478645274894512953900634572454670253885802337081600325777174556452021881041445621024202213377833217762064123967302375947706194614332016393567172134325402790245837851029101576366778485870518502049890113610588073689102651058206311421576106150507556364920411438903053603820010502287585970082129947028514595925453317052259597059001668608438799624350361204728887516381579750698649264290640705062763855028709617174629537816979615964018298528140051483555415042194589360767562411745142971225202553464481659713367967837431788408971543091520108761094685300635403772492269239930326985907586428495981862797344287123837210934259359296332991286941002908683184984072488535131648881945654435903973897124840286501885148798230960764325046822568582527655671788185833511983181301315200028397059380913146908351625583563230386478656747977370814494578257533595909773507722123346461254173172036691904155016990052749931791150878281292550529664916740669739264962630706502508972911205720171430552786428327913668721573393330101930484195792699762657688571495655742876547907753717750228910330901686584831517069195939707611895520118151043727538838379275094638696579130744597820733889226772954328934460600584009076361849606640793075801527504858351911822438645091323481084506160622886338420547036440136353521825598484660334469790053346376923065258774130125219071680605666235928747259973873698424602154341228658389219612576056679108716216721018199356222532048383588540877704677362965257804992967353899607164979539494712025270042448406999471938628211361826962345355990175533828502941213343368599000569633501452430634559241153715198479228447552625334375984357700695363365400448197320412984938888915703178142269547428052982963649985558109588649826663008046514082089801191885642560567975649821910685091927896218013662443433437018304959392363233053100726208922955236057581517427781200220651901644625007546239043841209893699627762321862641177885835803000818305531998682915406696413069868026996883835177647879252046347995369814728053946133769913475503491509354457549685656356300165670528843547180302297698554927991429137385719260334478367167333004702463695702119840203836256921431344732059190833187519417701140461813704915484753756708399385304728542381175647477854767489915951220934530073457030535540950517299478113168736153576788130376305490133684733085330863910922087699077423429102699141738601170345426145638184116132488185263570712785346424616663649746779472599000346103526441494711424429682794229088714116327335001052203953190074234500058252564851972527188377417979763298274201340404069574303930059115785538489327158596307214989901054200116221449676772311208210232984016598354053273401837837578582574893161295505713875639869433256411398547449114354728588424357709959771918204912798229732473767411528878550285831073912341071079240904376104645489405191229701124562114820060383791751657329558481300392348814056892856187317498345812758452806444215023014800667615214285232238168833930400902146848716780463009837435542099935268770813853008780948575304521090153853881262909726283376042530756829276354467386073863346980677757451289231770808623195400044398430237515077246457162802517285198488917051684236695644946768088857670068049555543732311855790585685651473339670818516881678711363011809324833235164682650868414589211521579184330267587456089488256605216481698147594711949892473185209357865427295686423612859060444017939182918220697384559774564989897826372203669274768471511939644551281839085250095226075230129280229051889009490837556582305469678307689962387310501881332569496629015293013355865890581501775242921864496325000408233305764938711400874226037983517849476357436190710063121577932331910402544137128424460467074365926881077843841139655674006275122966622620405568900543947127153656062822707017245385838136832787728778314562805775119387827122748471101455398167216368773269811686030008793373412380164213849348806702724093744343423880663756722812740018294419348857194613084832990884208809162701413995984011944272886197150865351282721903858069756800161665834738053206764459382554436009278384321731266566460008689559361521282115485412298521193294016879626819689706283168275458769826973126787659721245244360477074599063063064587963814014554207411951449614618609459777247334898189534288824508138523746355511657288473741944709276586402375604228091234934069013816139259027804428229731900464154263746812969166106038131887784646069376359750284654562837751702065862669989493217835457756020791687491233692970496854027817607593444527286367302770763084851882054216467468377175890444206892825562792084534277410215934442348124371994179411914087933676403636009913090438934911148670854985397391751175342861750277726706098127603738135104763417933794666482928889185666403486871426322705553564781419655578360539440734582604145242292387612517709706722437593906155832706535676200415904555272618583597695148072894236772866888426890343583726003934148433547461101418958359190054994809194997490050957192013228865551807621382648861958138360010877228802017300946662186988814323733267005146116577216698133655396238584774600746278358606306217236241382210357859478588094182480058120674476404126297173756617499543187075077569989270421220950721222684962651019071317148858532640956185496597358429295124975172232432288429431069416436094585674677511445110355574034925710803559236978840935605934947376157337186699096640209048378347166165910354527516039042849268318931845622689999583152093392825873687920904969671089002749099500244327423114321089098896101783524495739804873647456590615094218933493591924136003452932840382868389146642755623248959847571053286169814380743661116745597383275110072048073827250791525543923962983865892860236380980757465941597808106819637633180937078209334726033600836245275170795918470311333263540001494545688503421501470652439834585115888308081257897499632000468060026524122037246592668376911955758876666478339610684694257009176905904736623624081519487654469073234613102483022370112652537262364199718916562468054657417466391488642920901050607831519614430094943939200278853657841442546615333866784183587732972293424071361990041970368842690051919996943492411570541526844180203607013744471693958918827716430847605849422789739219190509867851989470352111027530153935028127955472353308679035104290232824805479319422879069692487734223775382995146503629363310500487326335095901282476076001829110742743226469228049946060231771437259412018882860362386187587361023591202088919368187760825950394405951618033938770781401052222350578330413073948671695955856127625077980321570089105465378800971603643247468034355070937161053778249214217935713046379256844118270551590951148398286251212602254153935378549078144124450950678358090631396825215973401268710465643610312037977548346528702749063594629873178827497613121689899152766822971791679882350203872536137902849841012057941425446556448473450176887452927981829414824772864247304747625124209965995672010774777844945405327739300493537009859394456227564420843991565961633597352572690293329723935708903752940486972815889546800810587538456295686195499277911471550610603506562007817124000746496924833442322164905992910619376398476659169431678629940762389806101789727747892085639284064244492507882222048676194007465439785650197879386702178368925285991637138056253523430676305669064629748302385438762738969940593133706251660028664571784115804797451775275119378011243625116064977749273004379995836476548505716272976994112400900086627059078884789559601333675738222791904482311036356942128869126461729005543137218235968662905866812577636232420339100771334268077483137477848098832662942789159153881473063348873896181758265494091824191757087133054392122982499661301347326067324547249737249750376599487408792941365096524078508815947403954377602254574431885243161584365867672039442244527871081020666687158017520629250098180478892680870758839124418277339306127768023151388760370897258395959264273664850851130649257871240846956033273380981334491331569323424775421382020473324702084003824726053958943257462921244985868258484176575208498002190624600352462113369161885284552900187591151525762675271015141797549132636119155236903355305970106162166346926970410829457829575477305993711360321297987263913503386866542603299169902157307080956709968025312878677861688154338683082480227225150805461525540977486916243471613575846302960243589696149269591137534377494736896932298266625726006434996404540616826327260451200976677987900122639992262657774039937591626247096857475531502780664236194097069881383558089116446024360273441068119441337676175309663135110269681891438588156780706356584735025003438531524499439148358086527664430090296804706750512179964786434872889327512540797820508784603065709782918423762437852765423883793933234184767684740021041216221344626267824197902752147154313662874529868397135590067067017906379670710799369565102058212230978487370541238255799661398926860904812389896818469469008440534587322187470224539549830944688210750651510139756215561865543033176355135032390502307516366878990473262256498592626217772286233327172383428443576224876900815654006116953562275869880671376164755480651149338203321698661104248800042702564956478003898967967180889903403174443557022492539477096946251562003924148080408880923926035850341014779608119987194058931470336519019187399738797241788073347371431291691629138878734467994537366739191360047718320942573009137457791981067006395176362006888448791752921686808258843509174412860012241914873124657160557529805828957060075102160294589676620419557997037934142199690161033450691975689464532525335748569329092070165706089384684491002568547241458205260081029094380831924549730946062951949780528976389407766115320569465612008139748932066539165613296877299034894905330123564953430067922796361987308928889584155618820340871687103534978676766425827901869312317994587282251349261208135106747135715294854102875398337195000933264931332469838984730906280464164991793314357037705677645307843343009971511815727700085239013025613406551738472666832975091773681263445050485697044499688043505727721882611512616229545942828181223336326933467448543022482276596270180841002150143358839787914703460662212686613938221192759950319649399469949610641240305725784610109867117330139785029934613966959916563898578083612815048351137436746567597053068423324867153035216999143180998519712425925452302514402549999606158986493902931838348180563791556300004976360918743548876468837297062118701830622275505601857866034856065101741180209575883648242802186199920172255963700471730187242750361300844396995067943999953638229093970936446542406047297785767137968528946361824349480079130213153626274422003571692635769493241235634359416522230452442656616270892325963952888276124124680221365231958211642253544619977116060088380674660503170702628768736130977687918831993367465859541043231863442352918734886064289858893863854603923284006429818552472125118001838595863581069461012689788855327680410406400280040416662576673461240517004733507048133566816630185782905567585649456270314101041299025285602174911675932906965608351688212293008918820130612606933657807803103235699203865740675359842856111976538560938384715416708550455266756870398937828869524945909133673969468276749752443320724099948470881721670594171374685636282752863011060202499487316956757453622945402543696035970384103930734069125621890471422950394593602350665215246501264920145275844135848869287214433980228170678133925661854514846299909833317244612727869359879659683069858670216019377327016523622495469138977789903188307013687913258450119183843286053852683058597721966791481382911514835237796351855388359752545403749560000237986132910255153165107682323075012117501731329087349998718515047263071025550573453652507612252625593932164397466935687964893989129470301840128335252876612597762062303624549027650939258545367889560193754889844917923421351146104163298838156358393498159224655218122422502878366538414840971473865244846865927326690935385557078461986348887132654821059392158604104647922035579193010542227362525737880940258950150389313259892229711151648417229459807157559186535343521048041931556018211606933968935506588819439521952020395786668094090637788566471057754260625572250284026499449094483073514571986857121281300296087079175605591413339404501019605154984605063725254817156654086364539521488110859484838964137049087681746806819738738527571825677192372152743422958827357760102244242734717296950204265177609633180103326604467017864708719932714511571786271941504363648746208314130832981772877541360726115912392935795743185120058306465222276214972731730689757985588418477215766822952750588050991974984814554601946500263967160883029855681807083595446956764373243051307259381392696012060695724157104895508062952579755763059357576457537831584194484282217509585777927552850115206365939951944439212301036579810124976304863427513372298475925038243315714682346550384415330102612383653365499108463639458757516394681205311973975156456705986410859768036037971621094621308895361973063025471837283019985412746184888530493471239762647054003356028855295006941057715422440138405768886692591010080599546141260997667346270793895186118198407128508174298681149312963012449724182153699352616665467816653579402552582645390201186311592719809018359266660684596536378965959804514770383166801931693241292204125505214336467573665879003954506240958216514091097122214084702241333202034315222404142246013586918840673108861604508317312767820734501530068997316942160658266114522696890421753079311453144691345291650593047467507524198210836540490049485797482646603584111070476688644629833613368284700439173532949268404290145518874592038682858624603774510927443326936411859115168375579881765288050879614117071225492702273772943103377456348275783208507559514037677982131508373214927257725861830501957058189540522867188638854067656444319860071256326067485712974658659373217594198187979014251721271960071644633689770329242890168809861167297130500932211789329484724048307147878789601553252148007350555563180717538202616932133278970150433418291512474277276413444475351207917830356662341982522778983556126941055521193900350220522571970126459546488145622197833942602187838599617488253026258576175896125275256797851075149386632519319956354169484942872188138028986912963164506689011161566894682386118093666163240682576544966921747861883879349234761710778049372488842679685227741654587484005830665152056265531784464573615521403840545337132093757835673946792455826031118258131234610350459284834701961366325555915786607447460413396310313363460948827083592050046751898123780605365780704514614090756218294781872075413448033398142238913903456466234449693797639507949230369199633465180747676647977673889339960642404730422344726239152573989456360338191003971943476614761826362459228446990448677887354732030229996804814142135182683663064544402760683798638008948809205355831432671799582126194416895594169926556652240999614379003467943007639423230466215422755652180567060198209404465916455685154040834583268772374008651695929986519330036765176811661340256261413704162802612847882566230319029711673143025032007094886342482420266054127665739528983130100352104041314633287263675727780797127682421797281184273508823436498980942111905644681963728422213016626171890053053324302194792547027887264011522767957493686887029668690360819650407588905906019680688226659700736454909065565083101268119108291630809440060387914593576903143148983480084577185191987496796444205296245648697127126407609106428107569014341107534669796184098222997489312950037194151073192113105399388501359924712748987656177731211762622891585840396613520963616970945075691009854909313734546309964412903394772622511252338197223114514157931060861798953749448594417796968315145166315053834419472163703313658190863548122601154424020586391861630442253556182396102038695340193092352096390227531240310548189370774006862281872466079510017211676234814627728620648985558968669128951226154220516274377115447858699633175997124156859473874807666676041639531542095079227667249627735757568996674795189656022936692374303358374536589515995666546211971536492673703414646203469326408357350111148855364732293507451962402310970122899079753738624768218300034229987498533006818338184141404724561050530999205505927282653266574681815194809075746524258585189665413575499137759506836336350380387520356727267357765658576342575461978717111059440892153243593145905308801288710654763499822925528059747398365536097860581047233726158352965924089074484527462829773249520608678638702541105108466545852752503253471686180723830559775255026952354383120343932154175668421575150448261832018901916449959378296201772493872979650207762481747145216713623387553243863758358431337956428420722860053934768043452365894682289747755287052486993338007265951890020236780211021168121788218428407435410001320555454838804100146154979032383874362265662798364120547416122675327051085255182328543222456217457849310018105749152659614934014727733735080011109066223270603234114411137592810613076160473940590077695248088671779925774693208972506709389721484863539037658587486770975081110663816897455413800086698009971514516619274677310340607868341514512935966462575731109133897876485889404227520381843526991869255495870037280705493698902121783807930942291544217616239167364184589591556124955918592267336914779959656095866619078171361304323085662261147379521855470601554901431530606763490448380994811122619855791007048587698614081442735532367742587605929415814402186404995161711275710859286485293241420773405734279849401305418016085818746574099920140004498409197792593936227215902671663970503945720596753700341514337397472047981208048206128012372993291636920046486677514069581967718142007454115539697009792673761400160775170318648180223924985205093300820621317508378612813186015300685553917762310104721646340243092176582806100929856736253255911586466657794113652443514879271921043569679858125188565559550334718890175336600527516152140120586733590394043901308234646467671372185882339638780347218868611495345341897176693547539575938410803433373542420377309801852193119249423435740298619204318126922791926458904895712437932072281927117326336638762497359279099581394676022563628677454341408761157993513189052197780136477111817487514411779262210108753437483716464537790784276919643441422708582441710772765367539893125178147784130691522945899840222935204843916044750360500586229410261548097161925944085538036418379469292688087043853514294816477670061868073321011890432883417010299603943263484176180673717426763417297219124626418739701578996329947356578104388797951795399211198468926819623706133678381394704558726730532331326144453471724448395316656291109605953475131407240144314811435077329331005583427888540302377950676224779832540066726333793412377724839468199211453235982905751334275413481469538708469301545733353422931453026448719053224549075674800713038591528082779537303560498492082933294917347289781416414183542575043917464466241988998793986492691434834292092828474373105731544986810464543010474882217743302701578465471034888224954226847850429493305263439839746792598990155503499791256768590212568997490864507452018051004063486828896535900720730187473560436251977242348002631438953363407878115780693242056446321274540699942361214303299496435614383107560156184296890904259928763882361252926017404390001500740781895153201246261439520996866872729756149129953514472323065707075452050789189203383971502440009058647240566461019794288287764726048800702939850627415888857706459911654584009838201774316344924058330360835909545618443991072573261231171110016158181105124281258695787716277729041408895573426843333589790147515157160733128715200108540126063108776717519856411314912088554101799594137621359515981769355525635639482719058425811860656321790640746684261298610010755795012733202196212365150947859363263825613898402787462023725311903607773248421987161412030923671528475966211114236868487309564087542466213703210515482746270003644923582787377851421137022390078658718702398918970016633752967365366576721061887450501668759454389240611576167014425831679228933969614627553293798270815659131430260615732563292559986869288383995713669806070429495118389764968173138364584910171647579945614632481838459808758251892315070373123257136147951856242243190449611759966328728450133840584178005927797039188360156442699484112996893204658181773655148697421636217124042088602996615241886498098101759263938319891255691693807047174000720511898247496463594708762098567891301694182602282190186650569843963493093779442061602549235927029667611126849644841393480919987631786689824353092543925712449459477142702288303758992274118420000134224930835944115247909225178107257296900799521269245129863861265554353934573868781442081130761183507604710598073204886456596698303038266771692808708857685182392472141029181338393473194214384024334282894670508108363108619863904273703605607924984611739777642804629959898918559153495443789826457546309394414826400541686740877473263693625079208135977989445576646533796019156921709275270762228856988784511163953654674515267877089858640623780703435597060947012028368930656239935828640105597729348066217849155877723445419703061586483786841198462553270623070224332750575281974428148158518242718049257901864281000254851872305059482190641627421596033984297049274532477506952296700969488087535051536637240957208407353854462449704385522733218741507253740249820607279900336098908777501670124932074200312873858176510008668606445726403284892792381953840608283075666032788540994467300348545224386232569115736699500687822583718463117090472973819959170637486468972358194238694160728764998466596776489566967136765081729296987790344825004295017212383166665482050995973778964642842071425340760944943841739118186276544631744816680638518297261583687090399396756448567020283133154756143447526291623844278445428901018938018796624390431887058499570682747464915730526723603184416957216188211599419625228139465309848021088701332919338093679625955734536067958826625771179150721930529253246818570845909119600080700442023190466046837133492437251974081420748628881569645656107219376401190051804591763785713754095333815478855564485662935841540180374794389241014808562222940272249419518683400970958683545586318921829491603696610146871702035938216123164064026556503300935777887114450590232103529397305831030706907644830398473744234580874560010747527477874817960786560819422336949441606721165225473312801206452920903215138687838883792918266416914921775766536817258434094067760706041548638694954384175144643125091309362878252490031402479545751692623365454842495205649214438005631076761577840099339854639935512167001794744063224502073017410135786251386146276173024745998886722832735015274724201623158764574862813314895625513576473248240602346302521811176672355952755106200714900599114994671430853966318993414578352061884835982121952286921918761009393264185046748234720803349028781256824698209973222042134126614749935639897765317105930539682502675508502361945776177293209999451070360279481409175547835509710799187495424137102524378459382989958035536770775845794867523241607415466859746373722478394989598205727508051041745347106720821455366793471500827353870870366210052455123207354457491893365243056224481735291305168035615688123934975955356851835031870624505200810841526457333399171781732710988627051075234766209904627698044508282405347734714017486656743237162522684989959199092102516470741618884566755378556353373926627824332015475439717421186209379976384662825976081174166563703859117992343959563128121077157392861831077698356527845632730295404265729789058756194004451741033069320138075104981663676778640709337844136190421403213174474765824756576474912512936662451262225511526810627120528967118184997827926308080404397240858991016580992301179143175512211470877423372136536194148431783589216942343106488252974612796156192935392496049706646637492265066801837102460980682949544536867108901847571029277693881809144648295160736460394751528521067445859815129103288457797355862479311806918772723460330564081199597345143945876098815949797634806212238811145670771132038953724780473138781934054287760107445223900568642739513529213681493479382681070314899137341964138307141481406679949231344082081583778359487735234108652423527539232335366744073880390290344408284753045396964102575669012287805644170674365844884989261709286682380271870100786481135513243536915407605924727948423289831551149614087903376415553906255441276886952858247515066706595141746681818667612634828122423924280844032962046204752968130601334589923625107157031602193514978184191184162296814693557898998577668461410592091050666264845710985504663661052314759431157502519327499600129878371428538034517658391725990172730343567170135215561465756646002455516414795191005517611887808718753993749649392470455828793273167056034982511822011926187447099108490246298549776138184110723826572806265418309178700023474448987107169825701700844457762138760801586607592287660996246161685832145779700827998556744704965059325517187814596938928277909926469176833318732966030154269094418916973184105507066068562109121491413114482578589735984416302798540584143547257056766044148136570326662984511319324698993526774563486377816346101396995503006198337966117615996054981512589941883287654523849890321860666586289966243154600156055435646338259019400224195153047610528058274897625668041605324851715361832655294254851686523531896583230640835454650379911362932903898069086165197911376278584548917102936920732578561310312799620418004217129299220181173496554335239488561134689932668263050658493494014098624934630508718724870605382339736893554455210121621350486895817388709759444338691381239424701041867151529016546024250461237059159824308965117567427238147524730147475155619357632483310306022206327254085030717305258906012650630035209174118692749275680650623128029342710725822032927791156307596992348478103057473788209339195416614370388805228623678878787260742626710559265462733771835262973332088982144199603507214701003198524773554304053287092033508250874445963527780640364454342135394314329434936434566783765124792634628777770912702793473846057961083310337320302954018892068259998881147691651795352103230475132336020267501035757840648192851427317445992010462005132030664102094264860374376623123323548305447513016160278102427026829294733612238637425011179647776457491507907424354273460582120853610401652881512399654944641645533809788362600903136949623175336136371185062037414121766474981964167232205363476670743746836750340638561329471230568779573577460657783559698367884686718568593977054333779787367550260545767811326075085285049977084316324225151541309254317374288480388871967344088161731327852868580716324490589864368192337462541082480516016416871100866720727629562791906060634556243839257839466483829082312313616706366828082683929968569993638132101015613913003126847358759501806974075104292847503197728064815499771252960480257835024246005579040526071969336443388479944186682727621099254165440519581628875031463067008819729810324869586136477202737512334458218026272576914549744029871772810394381262144348103902097068132944988254449802803881819951553482182743137597847334001564632190117733205716374255553371389578972927336143611400183639959352055529995611732523354210238970578188658578744018258758750563880600407223306274687800410183919325659666757967376812611237137456067889883519625243856254903276479984150654349719651383166827470725443507369673247687097334744802241706633507437682526582964207557208221330431759605900901923351240907544610411438099173086757400060406997624370016578397324024695631358363959801559915651367347968705566740751346262428849624263462028596713217036950741852533335026566581445287425575683480453341583393673149596228790197076344322426220250047692659651530052663222538318520130891026952129874069522790592369282781473426586760374228922420290206040900947577414139398265522418431360015313831682097209761104693864915895279934558774681396501872268729183480823117283676716600284025277725882457824981826962262494896172533007464820286845516435436916302056401694787214875666076458820330866396217806743343180436660670807263448798878921246649703313907703129872742506144909954567302484038981631369206222550274316649589150756099447206874705293129319297949760033907954939053990101951455265991214975064883566623641352428442966900692978907197133144708615671360860679252558303441380134614254842775467912826667569378897031137105307983238772421529935183217124596704627557508442425378373599999519725115069943026946667829715957346613163275696807984984712929064536640149899352875175872957379675401646649237220808257994536121301200061462387195095991374169557584711162929006760754738841702503588620488765910052421430311835688775683961424078178758886275391886650441865679740793705216076775235605136627635016263574940753064832185740227871597324432976918909941787881948238231818593169136837242904262759550728532276771299528080241410147702144957981904267828316529783002168077243727945067812476602646340951698354423749069327835557356847545219941199553908172436148547665111090479481531433967901943703403173264760337127397442780996358244377695756991348105777228715911562610982275376208497685347729109690185732932564921966649134293913793059915770803358421010318999259279082418638861891620974406278920075274213654929085440903848969454068409657079174010354688553969059020285829603911465708333751364903778952651384391880073199381856393729246329835419689238806086551112702973211068794476992908761341972733413701395356729404632493903119348351426889544654723850532121601522340339758843413027594568401158769874382533734695819574685374450703985716246310093199253084230961576857590740399203782599401479712993478465344124805095500845835523514167395822656267427099367162269119920031392677517961481136679923277415857995713350013495818971842775275822902766727124096689345108250153054711739496611367517892372422781471937449028961925432605348045575220326904661876525350623213968781887781919111510061663619257194889237847724939263422983779798575532843987043284739339604460599641050241563240147545654380256704456965542590980059805879725575050320707339524554398901337706105106186043455161521780331559568226318940735167926995329231284576810964975774757654624229547497448378117693943658529876774410733202555759873269792614910633448084663459967911178137579372199975020032399957808429065956618351263362323694339829253633655930998049724767632382145783268414145378691460471815801063247038095226419443439532499048141591334250792119166554507128360806436257974400745930978406773805837271731761501056769937310533059623633320738158313588982358707436346790780014421098722292695982930448674567141743073416501581316329253299796995483425742221674573356929027437371705539052329966573092759491763563932301257342770233340818054395087154118226465555635543427036193506306015505112290331384630256554336094952735296780553607979131343638090482003421274660113208451088303548125520922179123725788757569223465489019692268799191286380414431913095548675269881844898682548352336499336835643038223807339834109043170319393391789720111942449966668131722450955478423426921226399530074542093993233569921413532719847326720161299866677496433935345900062881656173883672898216077407899864476659903512667334870785435705160124463772697385779215537121498501423197803091874619039321570055863215778019156819343722078560081631659394344429721150154641707099642731353041421446066707269965650314532083360520339724645195602126718828556030809816178209541727504460176593502375757820308096066720102901325614015999271146544147168532689577108924377449461851311055315656168699033412491084641474036941795439703409242093897807335338053085979439288961513944054405875023854743792769906559490035980354214412267046256724043397130695111248815892640029762251260522468463722635299926158626240389875919085917859654030110554737618968309082097455927343014710897907673488341095300758156350294701276962895641647677186860303869300911653870764646998328539689967837857527501701745699431574217500801538333814887072352095681790248708485824651279939179057557408297475213005101096281715048549516386347108023314732234412610556926400578637958729217968965384425221028559883476424843692881584986796363724572268063248385090115583133359421067312804347688297789543624956691782635276366644760279440777358777833487226970762617130350902350290722439783138621269000139816512945348442229549301005044408012496986050387011559081303819386894407381292285423499144261853403956575197545490629203129531089140902033624523399776894857689304981360356162456087676252638714781428865205562288177097817987154975688066305151470507388587215224157182029589926971580268395366517526995231670203868235743912088329855903996496628250279621720318023353201375317947680652800118209893004447739851189994722727002967590519491258582137441939116115916517705681618708985186991222173923157714138561888775975222504481538872822464251766009759846162211566663261527200319587383514853262761204518103110093321682131661622437727234413207055555556088898372977858015460360862138349554306298314714340761222199431157604482614821089421265220445153378152146253694094740449524502851947189427728727541375567136979324672293682303455366329921074128859805505628471331439537963656952241221659741881324069703723671909447540697354999884100327069381134811561142644463325018008141977592881648116145479570699194358022704945790520976408140225052609077544221555514618448663622389221016472344714970349623725110648416302105589160617959875386632911926710610443177210083007786626455649218817793496209444210196275773339768344014632193355309904356497207335390723802469202826309796284097773631971487498544806405261742051048667362913304910167914691574529505125507477388683896154163247953091175272977579566750707379422796621711878088596964687341304406620692404581977533558051800822562200871514189711461841106944098336454251189818735640876977493956567429161680122791853682801489520656924673096336144440750540027298005675151749996220809088953465822087888145290170546872878781692019256316032101492401489485164213927191812224115292481169488460060323939147692204682608605229544885985156861555513973131306554609952346020476514063418915079276771241731501869573387712704738387955658200332952161995828239264190586553150530358701192239114610390356829289134196230832037491561855935146482187152926404299716762467578914690400495780780401281407601612443106309620394266245674786116655768426820848633515613820882047002993398976760007545488599418633246182298339852689285566238984186324382847641963992188187459266023220257010669033734882892039493074496784967917907360653767838870969125496456916980457856664903054958110553542262666417135469628777615331264048532142891360263000391155762777545462722481161442985420833408021501626970060067380531225611646880490661306758811661537350170953043460598712543341699278924060852745786248278726878860501940544644257598460692001382797821494686894448881794980571660758463482999588410303636711975822706322896723665278967780186661808260087135417529137356499177586589244792024348189435609963846875864229195958846104449800773671773535446694121811086104799859555642689413307741945419035481414406142161825643092456686422247825421359348321693461811913181887099135291895789690220491346909465253155165492030572911484261988550758594422684452199424212720390482652374702268762736667983151250175622295239852004239989068039770682710413216723768601823633891418858500283990358778364363088995588452321756184600159853338263130619258440268842869572445311996091331537045438646872297887985942689227194711597855810675376513488441211805391134533464564967948566961963582871903038373305462825645147618078510461302476800700828077399328011508313137416405470419705834608190962922161717939913404821505645034743015794879378302096008046912222136876808642867501577848138666143586627548365293444191352576873008532939333716221726403212332454300561312270222668790660718600962339194630817213047581981742466441186844410614948305378374810433684953082154266412437923567963964165014831537926026505309357298059441653218905288112782347915541093287125594521546785489205374195094921969186339336372314220459750842392604698068627428041127046173044068950155993981796707791192779171770306204823198533667811736112649902119776788662626252303763757327336913056900219954555469303396983211367711661477060697523513317630409207918183024850785577223439564408460305827941126220480907352512938853014291278572181006451231618301437283368897739123375244018149397497317660098743032036023083757705257838600313946150635483065222319449550507541412410098689625994705352547148203078434112686528727510182410724137191572237201830700388754666931379028243037005508827616681429289187939885247557194721542348536017652513758333854327826373335425447115212982153554074358078637847474191805758099943844729024830680980530154008642533753853021429581914442434224710554641566882246405760212171411928371661916834274507908482712879400820978244372247947188573771046622736937123465064566924012145527308673832409159308041385589513334552322062690813476894872310466528870918278117864785162493022257881329066452837011402737631856157875104949721457252830477535370517388325106130018669881504922202366490922721206315814576565363537597646148654425941994988401022364514900516073306278770528859987552139988455689007308838177116281746126313085977917471962050565693266448084341856587282677527208622284362217348988471639083026271667503233735761140586017773566182590642327632145192635334846036394205212701176276326776508900314927116095272528187034743109827489906263550263984253978614154692070066914541094249426276928362241732400125616477071992531154398663833016886296331446402795119565804968674573860117633948674347791641101857242859918279300394173583565800906387777934208197216683275617218159143010944900980590547017559421594518046343133046003437758912399201585326427258501827147041255367190908527987133662454586266812228495502990763047598141375226615879359426163362923594075179235991601932927043118843104634155859636256129623236612747203372425119863897378552188556236356751986569430875365694323488164502684281826437902656455064131194610466071892275755540532431740564639031401635566635511037281597117078411931880600225747656639481707826705522549158828424567581338375243026362779792629492536094834164402228010610670671776320227277160449123262315951849990944846207546291750557545206261727806012275835153808793782392675510654095624207346055084050077182682733067590064250537556495703798640400493042221437103965813358549509123654184300227769082306146133773244733998991380007516898386302292741754638283021781607439594909272186095198466607349468767734937589681324828834413571403823527964523313213168774935009683535720749887199907551718898189929548595633019340721894562411923854634113640301031820739711997427311690113890422421733267081766604026289731472516811910845754855001577422681227061854239413254150304344291394586468801588934709553812621439192476693917406043027317597310766094106243516885193389168436186221047965082353083183571903770711777759098997438373308832371081485455349305790170250513297238901651154219140441097315910006259168208182712838522250904865585743232461545685023948059394137151419879480831890585053673774073378142824823744524948476796446817134309212679524506155643897890624443764420797820307953941518867622510877947777359205972455766252228756053807160899013640518432349714181764228524355605603071657323418541197567307248334096010772567008064663206640438429055307460095646584222234771796247093477276999010661745969768011696216358138729530332030372111594527541875263206434096847582293455715581430505020704528570708962759865635321237088070535378672815374376008346656376012593990865786731571030385062978105039117899596224873027554518580842458434607125749118475429250895666592070750938512227873845227427488148485771017567406802362083761787376632116179763220437070144606684376353702669715905349023527709278372268933002270164987985014619463361271220604650115845836068631449751421469124784919071429532710543449842340284990336358136126451688991863153069290327475269264775028374851579302969246541920123608948467121468705369951523997570997426239161806330655106417133291693721338960811379092637321586661217932690764378575029294587559944477841265958277742181401084978903959849232029686294099297215206935378134187098599869575261344858281826989739632896436432593076253685064956799570644218027208767386473305936085505063686709477349479080000457431795147585690061777931068063672812139800740017001693558711698710763328147082890681538056643529557291666913912076521029767942308734626257925277132279360788688534755372078185415606666421928783466554006195612780906519085221757398934654819907662997492858938776757758116814804893679227011240530181198130337815346529059050940813328641302071086906662420805883476482703781403312911689095653621842675845666737658733010976375714155994520931735573756231619012706982837739231755227591283159209495313865973171791230723224648344334420364834276263927636543176666780408920789052864868486997245799333028524895474093776570820535146524417746736843717361923770288762495207561775317767535086738649819183976638422498797740466708051763553061013344157322173377818452143948514208517080624193576371206294050932594077270201457826898971870522255771417262365451790935928175628249933649259283565045768041979443416136268548182954202256598357999948924811797178650154038872400480439484196520475343037264518101920466557723511965933821677253799677849091039125545670702073512085275940720209706434403971561452583132073425756987557800309881631547263811939685907418289875213076582914208618026958787290327437117564141285037827348937718237267684627433894836568992760484414585453146741345832107134062025421836105511187259258241801522055854310249429958951372358814923967103542894867898407931928117432413147836917260353902209174178429964311097348539165273445226131692739828163081267850057930733518865088719469642210161340035596022454141354087568086854249903819282441184450326394715150711573832678658163958154504617394218626768151354274873085768607997035268992733858872982703889271331520209917681631945780773690927193474694483725060313983773282946257851111330461212453207602931199068431429993889288828648576025357507433097636796083325563270247296503950500695847711238818882393280922083482946102449663978519653721631517503980584916426960297886230555904177485674345331408055925717995730116601452644005444737908229439762483511434166783447493109703448264841900773510283068018399419632003020959490972143810938363911227741720509548695054286453423598825534533337667817623521289903763967150811338632872557988423748320372260064112609411084058430440692935673719252045595546591531462382280744040747773934725116342368473398518682746368203764869876985200253870324902526231625065591612971509212576389790713982327746337411902385554359296422924616503051006396367080352767493172619916727575632566575652189272662481917487018999118144875159561660107793806015763806836570916142529342122324151959536953484299537754269271554215170331669874963464384605723092203444148877584283599499964793084165582326412397494424427402800290812072481871202256760946534703923860802101839322815392978315653893194132759384922222779309420785212438564079788974040218843982995777485086243149615624511569682308092896638179838150398103618444279805038143983740883264163932334909220833388760687598508506221905083464606133809828166292706700598484671312253223434354251264310585497409467928640170782044981664491409882008006187094322034545316245787393290488070507130212925748796097986898485878071084006365827225513135874742474195381960454071761775215150653882169761017726385136817283503116554951597526991231503957676535696241345634944320820366285670625080648106155776274096576966100686782364718728795148123997365606506023812102446509407933463573423986887934190894059718929025151809758809357424862173030815942618898706075603524439939330645908266324499387007795129627363810989165526529721814221502188842861147512999924417690250699058340122826988478154420845624227240091495883791462390169117049090545904351762848676273303458635377331134677344249468914744662228233398893066548206601445562322505131056185248705422241809810199488263072008134477217495400517040538624342376014995643294400855843662923074276586954193737439553693761210345485771181178538500813294800892745337868243051876751485869227695851450630701084080671951333489385077834910632549136536915609441914702709093924111397827382415113107932236600090511393429915474493343393251584828262377239313513448707750278157296531486728694539566269343700358635359510354131443939564448534219487783617260054403630501767175102306682738146096411719640563401012934014026761944218606144818509543465292293373005708324158506642160682447072424000239521107137053318616007666361561488932033701077965634293353087481628641175181455280907951469986519094144321798729273435777106424901753971425003255438257822401381025837772076309730839676208083637518176618640129340041291162984834999050054659689724623235195321211841483512436288813074663573844371592838853768065605859795158267740625507811181326013071226345792022565690125670496358065180123587044846579584697271617290799692898663019574901332300312532943455742610104074636878475452635213057755925578588887767210286151667625469276367620038003890390126078268517721596352849246800837147732271081376090811460443266685630077361928459390304286946624440098724895172543110943348013655558226656701818513041883182575928513505528563224752139058095267275555503705430724819363675584731388329861835187734430148750438144767130064212113908666170629932397548601491037038139710767129036545720094944125479579464886471243912856866721669911898204362605959437241202489849289943158932625386993938718035174626016519530350148942455933038733319662776912820426279668041111708244903677640039291736234764970316624099953095491381271996459650773539979276198445513966768135702327130647983803396819771827388073112023594536420323500751780402930926604658011780167813839740010423628249266910513167835511135997187808546989687197142757860270253258346942598431052593750948995046154789193004546416185273958126890045836893337046142222927134120887069279285385411680344183109228035034606507830729992144159110886277710567293931450607298878920945830409668283551166480638068824421345934208148714801849393491430235090908044328953109833669905762867517365271607647450784805053806795955572474861154526555249032046064264236307145174560152541101158412136593967896826282904388397801310891781394712887672269508654802095941047965701355487142920271325861821876023909857603379506551920605158677923813541291893949133824572042521706316849989124751960879631046593511647645785492967034878024022300940242196283233242623739899772745624876945644849330118157752365037266213019815789612620102406399216005135722491559889545239455851807742515392428859675326239165448852643264989367968475622558659038780356148536990094587131486360872431259065002331395183526882090043750992336857200460773237690999166285643580197372286893105943970109607239010378570548057971254498853086553214852037503635026420354322422447831431488105537856924481891939329808268967148889570888664784762033385799967559309531245466870160246932267315224525104417459774657029585949833451737017134681464851801746229112276156901071696658903787650181030888956733070383880633647837485810903969255061625929593766374176502216331342948684246850000341820007448050792611502878177962976717597207996306084662877537365140086327354343760629646047538792650368516687114985762373627535447857221336317714254455526662710301605067208539959938189128211764952316449870604946535920421402869941598354317629666264451919289676758238267538683423111455610107760952923020963838350705102146054909104025132612626228483809686402857412584576432166298199220041435436032123798937878684718588288582300260242030574872003712052486764859980531935521633624874541300322695751889991718349673825466922622100170684885084387117354304975929757777281523681331572834822159258258324994773994173983570998718294456129762396841503663554410203317391375509699229533145610231244370377540021079014405179468120533108151444339802403208431208044522213470737608459476197063071138326032797562968233367042137344097246391735737260387491899218745307368030452090674738589561334987346390413593653893542270795962167543597484985694316607749282733762972116752481649665332264375485893274548296132874866211850595287004081858658412193094131813385018112427452492276728385793098023503477000872538387936799467059198488240174475223458452070402248467580989463730324682526182013098584152328402083764213418963733557344061272423425933287768224083822729306823831893992798187731655601130614167429173395283974122881724064162634656848329015334561383828158712430231035002481679229411108999324683915489978962108510885814148734008842565576261744242826553074147313370816494701329407265418662658837206363043304293075394055816333077123820176367811882270787353802725490278170204160690639202228413878810179234787201756125775240224916408173619352964965694529952089762146378983000030231693750271233648099782341950887795118878109186297375126772263962949694450257073765258107792714800865202235246210450517088092878357670179328288525489366908053575767432941220236682054442187173742672380031630509318226715824706166928949116928242139872799567489412574384493362895161905658665632045489318886463625603375132157280853215867770813643828087549764803775266787674109594941215462482346043830710816212583394114436202407134126455937719317073493572404603125965957527723313526328761163462925774159438896329993880218299269164789051561610066161648519342384515331498830963336650001039245360871678389130394545216718868878007270888142642915146285870744492420477984509564224278267497862777026050261833641575373267263942810539092455762117564235346572857647375458889313308845269922007755813463645091275371471086781562340910712197661066516112069122483090468748725815682046760775445254529243433354072114534883319084406162991665896823902781124786822357484856189726126305821703713224457172680029312930186506783622611408381633221153227760776195087935966091144429380283659319738341503208378657370261144101599648216128600987180612696473140879167639160535447163603500790680863016418274789833061705796569846392111195013977611581775284010302421699575449211115397235148070151429818292039879734663791068127972461620646213051283767430348286113575248729635049888079357251703242516206966895289442758630796697503446625932672637530003587103382884004262359230149474540022833762547995209202272903812638366005078032092601259663904871423290652516402131272664229998933788298253770668353976035361072527047071066788785913029514863810186609519957160781954283319424601365451803474790848663978277494219153955547901032199407929816496850226367819768526994656908192860056761429975011103184861467254133713876032272862511699406599562113500360613355976776646849460328368308598266927101373024814454222363316111283981048474293925256364193910785490898503782948158306132397214854842177509092894583428036380754646423315042931181984663045319595339733332050572662660383298392832241573648693664522476691465987450723358417247334101429677696064778368852218595507736399824325022827924679539858858144877239967298123158902153243416006035998200407632823441192210598175839603692153330153583047869016932904673408103894061876518888442626961599064028769672915172616285811433969045195671557071883496258123283454125189930744407092940068474882284245920914859235006083549216772439275691981325276298206139434369484478631768181260842144230344935606398875049283860626234207325080920605448537751067528668472521282887266149058543641759909488622921277457014208381546778098189140840777464802732696231275563819674383711603503352710815934528639559688781981422444409396434378443713657773484420535398543833908659192596197169638112769346203126581064479651700321224157022136190298018902452693138055437592199350982041205669247451641324240756597650391260325134685299997643014648084911253239858528617809292744732818077691790506358577961101873862780147062944227231154276893036637834891455963297863598742004613634973732440020191561186420119698700029410336801603948999427304097517489544774414319579268128493386004177800208104757741637798989732912742042718794076518907308126319359331569232543215484330738468588639540462948017059789553274611200367531412359052831734966682854642805082410614400561057420308466043768807136880679022040730549948255324682057107729593218739766443871761599037187419806565178237417890559006389216597563483498620710066058516222171770122975980796351594132979224738792534541028162292128341481042636118885102365041979066112191385757201806412125998933016782342201349956960975501274459146162876855756072218423030410853490485133954269032424793848953838980834031219844699511325518784116416970683247816787194258549931162652190049428304526415208738448292378963482459043887880202365190346349537107678899263833941620005730417256595324842436111382175066954796988201278854875363947830098191444957097415298390334799941835534180864079138071828732495006152916429761087691777106139686888570075694969480293557270364521579851195919623443156156094641525559822757718241320505533482002775093159171742529429303153511972332627456993711259391936849199881180579886521761173012975539173346049492333539075087026555790291577520294199123106713303419879410084074961813674892950858488200990912091752058850533688929180775152456120130927654837762648341485528642537894120814716055676744658751863715538558212549843808545695879819873155218327922217892465715530113649093220260382215971592687286338244649246108336096652927879878950581569357644027619464137701299889273147507946262470486417460673308293129505006714626871165540026785956966904717280023870799354532027201094712269081388952339063042074623206700355516811232952690670021423535112097942224202832903731554071040881961824582292457328827113338548554846466471399911920681714009447539034412015348538154886476297275260384773738259214242794046443043896222935661770894889747384130943074009827044024251184113433779019067067397485483179762574251528250118133491937408017109793251870319885816918132484558427606642310404319873459186591130429518586911035416230078713498169516202775809688386127846522887826446815682741043414533019742580391593214561206792964786879296524564883517244899951160270376625736556193596934682676847139216444853161442141164911736263861035279297042985290910122669531829217714158250208665138953490777456152617461447109520065453458004572646353822376023258623205051173224128095628920044137352031710202572747637008734583451983787146169240615837446299300372828055560200485114379750374646470719028472939575611787192901114628846082192974725882134390077436916730783402394782566341395852309535633972995211317261962543199087491650087505338229228270825915992892246945521872406185626297575941715099117242147981626752898052827309787136621963038994461586187637057450886086119272290128301595586958522472855247725663239188707235640786249264345832627547687818590020239447338084585521930843464705068257510008742633425920915554397484797057350749538428907586674900783526582079478386771519045397451651941073547594371742522234467506496293951623275511279144489501628831900253913270731652369510101946190912081102237224959964905464250031610085099462301699361937646898299788514898623482821532989084032808044271425327354629538061720602843575276877268335897984444450701330360062899802702388336255112392643222144206175482958128156652184731622787674525743980472247131961382121767588383101988256518974002303336235826071166988642813826133029185784591002869583472245829145879539425959292416885784228985568233509847670579287192581839845290716093438050882300601571269660259444377920890120959654189131122945957350574903939987525163860127223658115017294296506575196986240670224882847812525324939202816047229635098676301255156130841892400589682106701862389904508258501058752501493319853027429754422076433246562036761069126737210699404565359642082495021909129611304682392190138324607607051889660233159946810399996986483342178469539243434724936744376512786024559908274869630065873627028079486145292831490180041786089288302858653612276339030288085829614024072080143743486291817985389496814056153667834258244131943107575605536064067797218286118429267178321559044174974942514968957151668875823860856486783791225175606182232605182490490331881128726265817569505460476774808416587024063070295126921680258900571349534395958154173477761196085348665134454677369494076279393700341114976876288979917887361184594496924818518191588345728189532638283933971655115831771017872167672986274710100445752469219378672364204315921316019994362008269500151062757936246512749587049270849712280543985504033978339134969482553057310762114268469732346110025916707466042644273216559765916057560433885651974233689301151904286729843133625301767526213334127376277065490205618798317137999555416924800996757663713415536171128371241493335361165118737428192017534961949935962591112965352480496961396046292517140480793506315245900265691610708762833457472778261733010003391621135168519663083747989173051957289809824748395110859435655049815476763149526262980091001539291608019993671286493081018754946887757885885703932204401809706544025448970261430440810176472753239518689641486525923826532381479271617647319707526643466931675399107359248986186721762963235415878368230512566501760889285774924677336511194207831555667642442286509207671973347737759295777923068358213446348372121349740814308628114936439795259004165834119932710793405408949604086576988028829992510342907018749798362102237629776328018905377728107979217345211762531717566994106311371355317478513226403660635765272502096162417478034813774005855790422045831488601410485915275839335110736914137398572387282256276906300571214172703840562235323760758793984669976204237873784360506275394483015120601705948914408013849811427249857075125307972107413246428946782679478139247176363656303629588232972722130615955910797135221820518925378479141277541752989605088724368440920306727563339398780170351532432183937075815168207798542838582336159054086312469945289792416752385665557943691562734128418752595921558257685255290353656471767254215719849491164272243505246871620604443819930951540988175689588911953099020489591324360872512514279693329748066027685396756745062003458391897965638847048414535445495691564829510680885794570700303353986537008853550938097702710701316015012752533062537054091838733908200520005958682842475058833406545729541535594342630427868522078402981645859471738085373491187761624797812469485346817767180750271389208396770796058346338335705904211739906552330787686209216600452096635499873241937878510916885644524088030608595919541620311723641687053665072970572885157782850450787568523137128453188091290336144286390021014453274295905049310549087135440429886223076891397284588156481249168380661891575095616450661222746754491340807439839819227989144351553974978228953860075745673838153122430740158474521534580005305758544095787225614888880380059670179040501458317171524061786780297218469909773379465725107497574707336915601491127761701567850181159026111301429531783267802717727011357372948348565895860986363347038104394142147844220028954089463693331196287571179945847736123935897492499617777421568961302066521570514991780698016712793427063245065687061531254760354555457798431530105415548451499943143781222056012187516892373453211677312134746389280056471373570242224310921131251240626142517033374757245184444920391838417092064927166363919681850869272000285157684895786699483955780921456962928399212215949871319846949647649942937295556873094290723420776106414818574818121740664348929842777262067705651195045469082773949468206411708287936534486273822176205815818425291062208483316596780955910141135631683616336878512174761866757451676135980564787574202532947359881304714992881531959481210779361539869710686468978064821343681201269470376990292186764916229285110304436149940193261980232119855525301650952023149055755017509104100104247329862035704248455729489922153852978651670875411577848660620560334451648469165932550546944777149125547677591480544935372585494954109714571684623630889391326216750857345957261880134098377670026698369486690708941517611564361695399753587128434194481772967553172451049982380722749803098316504979700590461173908715525635407058273701386117380252312777363339022194576132656265322357362404851288381235064607049229996385714199827102566855364705564022346270051262137376749730647826207357582431014371370891743078616199263763271845587724627078663290347939842807447510031297845113606541133150275366557584308160041389922469619793915296022043059764468534015582585375479419229285720003611584498292791909218655455564135759928976357812986778197424933348695980227071206775188794863044526283583499471280566522452535375223091681312131434397556934520740606579095565705885153087239139706744965821034263796070821396277397120096980462494393696095283915097026410697946818441311004393025100863237446947793126992228163837980784176245787918746088338129908785484510857096428077571966521847768058713715654109371683025312217445060635127486574449637308135188976817338964775000361631616450998199234466539031503926117463646175943944189273037520910872480949111017421648793973847600605413118889958108908858688346193580984895581893557652599561840280984449272072311148587905423207509553795233807966425526191431721245853005416563753135465116291250479962872282267135498207576592157769541981668112788261950693476775080254906178944392462939775107318164574983142424118245886685959582595691839816766002505879389988553687522841776540814874912101855501027648309675627630950545973845254706647439302561966298402058140273436052260840909398826688692666585765127825825742999076292226124527412794517766044907018062702037722882063946925901336162449841205202403730269653297292967044745350642818004802899244170064151944060380837971986620469789810211273799500648308046466183552056537982998427894332534250138957249271356989457979608977710834958764025842628938949464168870309869738284472376345704077623196499493371398499834461308720808630526389211593547130423616510531917165628664561950888245024049041710042502555163011715742386809076903680879315634201910314184791344089890088122367347771127149147934841716400404186533773242066551749918920410673403003465055764986367735148258886850754899889112903390310688923598920765463053252416166437923686412381437122943520720044565058981729737986268875521051400323344001342296389112724370815083609158625162310936942311170684380462373424922802568539142866718002782736617916430947729481088097787387857622168490396725210578580077831099637615154011379603757692174395864841150044062452208310724287852438519868300167015812310121917471983732487208603242739120272234091501364873139041669940256655019747513820561919320056434673855502475817182322816291722960162255740873363736335207695946394380857422322122272422384446664163498213898486758258648326267446392359946057702708032917099372007398901662548534954916585354902176586472743799114729970010448339075732715558108286061553511861061542120046805811601002594230769682257677568272159887207930960272995535534948263700020992390992006804641652733663386120483396477962122326215776118967530339908121568581050720927834730423933021471713941591787575585349642345818277866982159701224405745863943854892200448438111168781689913882165894514107985859088101870544742795249220931564062782743233414981261977438162790683960322945321108596852696517641757508214490382198249347792761391603703720448897941340221150116619906920403638752536839711289122874763246248071607559912053433369561430611080276547914585805627096320437324689593930807027106390787817877521135055052097774555094919848663025374671631565530247541243860548826095967407846915249026728266167336389710548129726992657135575385650067663194426632454134642457382662255900646879246826268950552977227708729311645729644890046171850659718056135857062695157020729193753773215852320214674634733863134226237799092004814625392377458609961251877509954532552388437455402720131836438440808927306812311485808787436529218703205857293278766426306309293800322092461156248327896094317541958402931817045259368127907488529195591050938690572103880673272077841694401507903794257645477133566159913360315078884516760514478155940257284654001226233197003464589124414821750984507212248640149170119040309387804080831698108430117007975772296244010108174693504238972768156075388462208509026110437086716204734133616400006888726179630684800324526947883279677822655919655134784082534038044417501393597709520885895890184994153750651162214615062778828563082677569264893235101513237131547280486858228717309304527183650844011213592445396472710848437812957708496172160221167566049934828701182263392375694565300390231534457950682279035124981858662432445817923558907038101972909808340934001145169032396829983540700929067356666855468063387308244958414529185359946535922435510446452365096305759599788866041086106289482408971668511075017393368731130622472096650467250446703955761540336031976365553413295672815681819884234754166378473522899575369796380059177944915683018688597857488941744992759365008882982274649326472716281159122635510847068538074391448439925294414641661240267716835382027921801137318258568771017427088647483471138388914964610890574242113872198809334518263449923242065969090035883002653167973494881267876668214762826158603516118096582887332421021483868865554295839029812121868213177203732174935289595150438173289851483213104090458006475518810806282562590309784329236916929273172163491432294660482480056304851765777850294054211347042930239049905791815019707924597456288115509979341290544852570177320008327919792868613464368256175091098385571057692305646626211793916420589138837755327212631268914330113097018787499961245333776367890655320300811183373902974697605731275965399570069430576215682763736458066367623314307126842355272393031537195580633099074717312994380363239189403667784431336686122574283633316313776303529475656500777183025276295674996340383223760566571150586300971706315214096006917337826913630651293872738400955685141446238357551574385477578227388672995292174342520428882191616464114047020487200983005690082854238405761127687376883638838748403564659519414573406239806048194376853205671398151206196534415431545667712402317790751181109313103478926917276491912636635076227281491214810723043244696253552518796814299859146498612175624548044609717095926217274068052375597558908313270623949879293711111595749180907982453881141431726664685442618894490674204465902944486412575388384833132031244530537661692497943077908091584459512822006337688526483215331923194619283824940519756953779487524346349085189414391818532229698504000452901328492538306850678741210374160582863507432798664240441159422148311066450860051451508217011045103105620515366154709286520392263832976667903954601338095033659710045661658482266540594603593048180809198910597200007827832284904665116669513508365992075384880506158041783733214157045112730141881219856524681715845797739756792079637635518014724789707095379711271351594901085710513413909095361711458440799592762108846256059353136677659682744538351811670663187133562298008990844630640476103670687070767236013529916238511863849648995436560714095485685669892515734511829052043859606946904715874167100345159604464302280181103543445636804971153123803851522962286555416983806611147838263794778243427967247749361958329667689881991218222492221378212189096073546107066554620980937767367259018759529323353805255527607981176435230200346898781919726978913198923849763940142077172202888109066547718882177448053704293487723347810669280361140432899374304378482747351367282680181450060820412138729968721808558710411857846447410489764755471688286820124377013088421425068476835708899430986277336039883156016979641105858571884134044494109195748157114792069580513514699976311106880326661433621489383686145432267518956668086106490457159374127727333450274956429755435245467182035360378216811298454219169354429363340866856625069217772211779484904312384675450057341748856276027549085729793012826803730862308723688617443345482840093431288978451452954579017443273286974324486806399015975866162384070849897989194416103942344021920947338071124501230888970025117333433672807913839162266219441473661584586988412398435718137058772575308335562922213879383998745593303459331766761090662426610004284496325548574403044679958611545289700234523892182826008019571384665613906228268240960895463744699652178082784674122407808063791151759847023797458870248017364469845117965610320457427234157767424845688817231902736506730760864602195977414128433059368265611723044460158058969146329689032092986447189410646650908518846354009636431742252576159810931976638359226076310854290086681039683249972083154450596053264759693161342319326977976168838835818956495040968151379920913203052558254528905762445542212329547556727699782972683074539317089606169578114900188719355076121052150684990957667912765539998959331815369380608613030238150121880272329240776354131821972521088137166246222821801016045119173589160365162896044352478139576780969450589383493090882800491227574767284251511895343801283211315758665257709925817311128233969890959449963574046173816154862625852698815140106753370227793032535193323713966865295196190193568216697597729915649476092835295784815137126060090701372270506065537638882530408912907059571080317725977080529540781670871205884524027110050644575972285987449739453148503164658491740167690822634969329393243350275673444145747126894147196468038532673148642980444286455580527869856031856196683580401947039187426498204078776901766215465478215341817563975851919186339799869542160312792565448108996478448380598983030132245959032885649084309382081922040848135418836630110674527204428599672935100389672632565557489723667961869238010084451488848365112668962148280097447649681988097384547091792549297157104698831009196368231395479583052091492484085487354336560342977405003627755135819480764567255716770849505228218386911402938647187320423100472060393113964540926943878476235440910030634495030786022002201320908403184650106586259175610957036395184209154748183830903677932950634592498667734752172781832827495976116719638837685473737287451723971541081996665497718102124917555939611001499140750853693762720085115717111950465603934805056419426455295118345980984689930139413147034653301898769864196875458926904335709847730804174939107610058525850438575562718061520860006928555174282486185828655414808920499068043239854054605014354006279328331711236267766536645291430829527203958157755692760130439745331257252193041607160687923163568266326945770565269935267449438402690613145343457992691182113919538353442597952091783663216236550036703430228930225295370128709946992232873694776474245199745969936292618029730160558882221254050723200374205055440529675055562701958323455872547352609667249176404006709882141959926589407665818166544505610553586816087168720681266926601820324816448101490894217391614142751590902841232035997624976546037473410917091716922475662980920193246517377170139093701039983932137732513305614141194535121407075977972777317730607257367045201348809286119683376246569800482340307773260389233030964020655535723640856041894749846192118761104720206289392930831350546851929190412391950338350060035911286380393586760444691177630933864613405085857353580120868166419466636067751412534516855886016506521041044019864730126494875202296047327821752717113636549944221989839313862886142469585956509934083558586512634084809675711981070520234056646391294358509371021908936456298425772591124672013867418994587666563887119266264375231323902900380545306449675195120044093423103784420199582071177324706178860292842383578985683965364071233091516495968979440515133634132169618286076832473595511427779989239981756725595785350462558578977233600215743679026096158032663405071666468980423151812115096045699609631876463309151276672680765000353235358142844799587694342054883153616020767966971654397324977927803397669234774980422220852735747064668050257175768092262056384148829142342235781644946948242475904576257814665288316769508898757890993877366329315328044332986793170031875668105140080462826968470550846297033738304408733714715993569273801753203586758352297473324428693500756019432213053829177317521699832206901529713263408367248800477729527563136143260424071455050628676848085780158825549105729096733061759158151666493553336510749356035542649042543110523958693404625615644303174327906411026059542241789947274191571786012909867578553859091669111390891138912243001571398506356192251113312361326307643322524177215757387872873803575057848769092935230820921560874875840783351615600551265360169728523191488610741794358013940306489124401384850571715835082424961664697746139815936596657134905059719717826787673843483346958317950330417595672220487379020762452831358200757446897326813133402192069055464095437180459592174531745520012703282784765562309750698305377815941543078437838476243737520659562544883489662718324325751518514024255711261397738643057594299640179662239201081690546157269066086876970965536870768528269487356908615360998744730041185951675515496169090919404321355691374669621646995413281075189050781159135949376922496340238879827394939476006369581289285623600313977419410650566378932622717587699776663648848641272267458056883838801541167311849614185247781759122655603143617736900676054273743680957766065633112918021098046903741818218275949191496743261929702095339156579008225902836499101819727575451481955534143314904875407053262187126693864827668668402464929892289297583432454965066524594880721954669767807832002496906412373915381715298884862477625027051548702992864182540386148743888887878229094023564599471725148472639900085477243172927380040955801998576556476637834856112497906105986726970885417228405918710375816170765455334806506160035255595373210217557442767751825930848950084561843509697285749843601222448198739714908310321497042071681037066349773978972162941021411966074961109072222378283457920558270306335583388307719039833075611356298422562678319256213755663771164137776640690940212588866569976272009277024904268290239888100636324792461400042780886505966849001702730906222589415631292358338003288535097726318480919040754926511561388370981737561146398690291850074320114094836654148918604362946370728941066605901436979053927195327649576543905055175006810207222007710101112660494254806052061684975598665610407944107770784064560772831508951585925075545266163459195519127718148722520303235546748480161710065011261294219574422978705954509995138491731428029342321826692774146090615076283699465671738232098748700313377921070296857812371753875664138713891519931054579073255467148675841479239671121736751728838581061637501345264685765189456424905748491827957798821029897687828922692593136665471137806557588244195127381850348471672533638783938996250772903023684025540945715573612538604285531539620063605583345832330905351879518038860075830361032111155585742398605822787351485282154833028038895917465480440258825584385837515664322920074338811291256938316311457568623970666096584324037558260656843212690146592135588175722720807388953557193710437624998076252336104660446452466826295571344278847121222893942651376680396857601005675014716681363506969935950461136493402837784514492093738342545803112411327088363546366220274636831508224509342764273210824525890444150668550327451846951424852383333622347924125636483987550116330191175082422845286290531723445731630865473100082664848462406511635875270024219067684958917517652289341044878933512868271871428017502198369841939425482339608349676918614702527348586739013049766263431528636016406418482811030173547660461491931766022476717182238811082244748697959143917184257557219784732769316635848367566255531461333860124518405842088838836124761940745363219946137626147874926237809162787918253202234271096136184330455027849601494744412877235911656277986926237345531922580556350778277514438697726189214838240229372829092694647891801016800378790058363948124885615049576570975531096392238827873948996098515021516301776687464713346738161335119546968500860720141883793000798755856145797191691960226374175609417586780508853351136885399306535446874199039530806100051959781708775592216523212407273455300589585141092523354079720637926710513062855131076667027690130913627272702305036896580228987524638809692659000971885838319495343818853707665609916950902922829552076990045652258306748629693794978322036070029371990034349460303979930568999605534242582753085348736441155153393620324956112803793046543147950176510801248506693662574628171687671997552600213900579607092078497958277352590022621322532156341540242429434157672384477203790431003045413007672932088443460757497363189416756619686683350661009946912001811772201186865794230714355346873557188192343239625932745661717403249262757838067354954001422470383500356835120847219126895125943122606089311563109093178780701895495710790571913368303483481776433714955328192810105525613925904476348307990054729212374652095353084384468063198955577046381535023393395702017948714863240111923025879138638747176990643031509532953673873388353649029500534830553946247786792595885422228313632734054744772279048609317136179475549997428176308324832530810196466352759918457081382959111691113010437325378005088060747734619462233963363810655144235402717371716724852606975428846996556731942187548626385938610898550314167348434923868637114310402103563635151913053430425918615144408278859898934322372531725697795368020733794923046904972606011421318953259504227478326568790000457373971648767031886446830888701036136745707775568681352220560020892057495404426464837918386886506791699941665538384867050134559124549965275226680960581363370015558531620957393883938560085074194399467302543680331103044522504428027650646262199211810615615670336737017241330391159522923976381070535102940768008690800824733663968313900662644367746767701702690979322701051004054680636227348679319439815664898103284452037131219287542493524855529727814009128484266808440611196886000345657204275198308963926395071841954220460305069555322915419213235053183902726026903880774204989678929090426253721210474151870193115503229522877900551843957814020427526091018085634546238125957500757226290981616541794721029432875148625157840627903915052167062979193973450356769222745020324534841500169647351934974108985289310894853827030312353375682514322270325598107537330342658701309981059863928616812031530092019032237290753068473336231283459141415268774139299799091421544874251361010870600287535623967525859334912071081676418481692075742926012421151209072541561747976351304748798564145624218509647605856120677682007895981065209769836253058758108901579937557664293820739128837258566258347828171918729576643249841913210170655524547927898132145667745243518903627133717442654193903413114896672315494943892832144274855831433940278450293538668752552343557178854813195871877427249924984104549234017224514234955724089942880515341950676627134928930104123918170168373982738430082058487725579864545286536391347775032484422333758801620468798462513557181753485486722633381325688465174934542051904800161409260263517392888627441460040076628857928708710079565633807410197293254666850829720225277203842963029588572547355001544416240030973664398963082780125554034385082188538837719201956688766249858158180132220286851131079365309444418445344678949852319372183982575029920567464791413028763711537910500780062986142134785832177674431710490252115565412044568427824101324977647462542356935031536618060580808217061177894410936981267250451497165001699440877643694792635636773913693774881981769164339329653511951645399213258989904901539338038066957996315251453313830124919104517187153980003895287109002799544143073159276234062748197990355539327751793616649956784551847651067802786017141226507492479180725821051627873317725261849103505692434757513026674977682636187404494860845844510252964833876965922595855413823303278058552711699504685724141144213440737859098504815035597462137508545893273199848370124196697836087515568577221668529479062343785883528088145648949412592134493458575838321381948004336667775049296804854131922874322938173008055293845285500759784344273232628792882014758586520746975599015768305887448311621176522890407050923925323939749775182104759007795654062676133445466248366778929058084694275404991589202623044571284304509731554082831008632593019039671874929614515158725611708029637077746720329526543860274094600070682795423697620748888726324001348078365917324491641167724666720825745341578137810993036405369243318059841843662712146676009410813056458332404615846691777090889605215403272314043666169579371941590816902688027218874380820283149748257741006465797286434087741763317861268359363207688694508045224970557923043246977410696805645598949643738177482665173383810360909410751044030234409380476937436694129521839731955790542942066154827923617198610037189150137500210308467548896640442250548239871489146581231673245705249356521606953272801186745005718751262250588476317790669925191125286155002659947474595250451190900468785907296401275301703765737390723004658043716238364591231573129216767870576246877911232996120265551622900505077189950861213606132731731062342546317324631595586550206928593880960519682193706315312519395574659162849522944506431049526624138554613255265129510958993175879496131408749243690727134354990467258168553078917353966252942173297881807913839023405633763963689276678819078475131157075395063161441473772236690304072145798328431555892851794699753930306241444201151244789226552158289808259348804315883435125820701971495872600115385087408149569347253443591364307837556993615277120685608654225295647345579827284784555573272158676882339619825674578247829078519135829729007085556058119346387028829470955913355634514973295197756188971588790097479077245933606376571523447716588022870456902438198398077071896385608285566920035200403873552899597689374462530313146181800009637663373356345372750804443091501836668033983875374728621018897508184079695359310917235135356583370726009662398227863660298378818364729622994871619832701407148439593765766071059164534704148818401756965219609980605117898396780121366522360679211377388356164028768728389698738822054685942361061086218142394965352674450601326175419248219709577776273367965557198413475687106635926444789861036476522145475540666264447507108559238858503494562952370240471120027623366993745753044035938743125510307314630373743161808949087459587916283129069170804660079985562796761906483483952101259841082512053112715779028531662347073076100544175414475159943593073964396753904903515639269295985948129177552695186313704027410772344398360172485746948045324716095518070323621524540193866079612862434939647047383908445235104819042578244158280033294173665115386547981987511291380119608428283589934641149198386121869935217769306076122742541735052198895464939937358232199736713102885465495365251675762102991527540433532270457461300592080230149017765708029991403781719769928944931891671367541362237835536164430727508247738809314068737507627240348195746724671539049745158052182304014459892851695438791621946890811494785481123310595781005376926544204288083965654842363092306703036286227319768043175819872788874068099895825391445819244769922824323649714618253823976984199571109670763854926640460975274193887701655856055916503340553693054490113994122149649535707136120276483849337966898253066322790782638912779226007935693549225192475786603011436525337645982090073596586302223499634435560774572357571527735910203621725074529453274530140468363155083502728420660361268219923555848455573227196831245511457578644390281415019856269109112144140909487057245061959965507253179951084517000800215078739894814302749334650316208996768089066799119327868862092405873355660328649723662256326934080622902190865558007534990339091392334640185943784095208428484828026419162239354232082471798968334070876546436308955943123375379878788505623365076236687953892966949858614544349156813397777593084429342123999271025854089818939916536905958326551808292273591106282815095233525925969950489607931152017521812652188980234662452593753747937036942724768251407043282782650907430055168250931301286715194739123142057225294131402147430344335113235607836748318819458982006068360373777382528993778778481080111254473394171873433872006987551865778871747132827331633085406750015760377359822177619926676922799791833427912656761867261468041476986990915593231784604619845272792207613828617182474198302930074433024668931537124789898969389801216601133051005957978516678647131631725910737743691370278346548297075773574725568711905324570025004425554157675923075969203215488663677188347680211263527107715815480346620271873571693110911312731969926084022884908159441890606034992060096058897597743504266944316709654582792706107945899675639280459395917242656650464797694614868066332299668268623906593767727384867037373682013770711274303873411306850556966539346852536577759517036767878826563113469131685606730805290856628943436825857743880239158133774413835744591438712096695465663135144811604184808337556015273310982113628755004422167595879494593533470735055186948114941746332493633959867926057971092703152260207986332655036124357850332979102927562579532794332828873277045620575167702837704047651682436000135819986573163933498926874896657742093528592505115514035594476548637159946117970269669647452951072688621779816801686067674447843085765022114588004376210020757471292144940095569337705770231891630736152836376701265128754796563873072514649338130413434075637293445773413078358034763819457996416976100037138441954676545882385403660143567848016246986189385085069823816696646937898956253915693972370223949025102031312487586235358021268818544887559131229851787336269547901407045419985444874077274571436157030681434630240636840996698565996244793449458505076281854350931747866987523364469959952253168128142097679025154281886801406310816534916689784141726433255300098999521740792737489032684562060729618441811291961984798769416726200962858570784525285364425313639737510154301280285980198775451494588325274830624369989467206993166109087970191790238295326953978633749593527298811381536066771461134609513911269994428728681315219621093516512330370458361053397607149787772868865734080449953264917884093937976076230101983507388524705911433743429046751119215670237508742590847634916908486533298529753081073807815633429991832896617577017358022878406973970197589730391111860558833175660364483130846506701422123811748065663067915661614427389756064990690165025086195347616321817010439013355566093164651373754747212522754463856050337757684989573249288110276534105068689441626029264367336004117086437944113364095372910789127245682077538634251391776055412289278871187281929039692098270195899914095739062977786290364092522467697224808203293680955728183021170607780750994526612424405464168816783685863258051135229366774633243747537159687603364460989555037863988833907662969877246301464878523532406386139321432093822801253435629525764072005133961520035741143239009627540140705441776796074857827876215295595520073654596972450202672552605321773303277162594542460378834616758202970028514398044243123560942763791238979376266537008062940690940792799532616056677694409407063846908569188505355915397713107674896463135319835834834285944601353606829524513244283893980766615104738226080049641458301164089953857112251501086114960867415708796234896971186290268564235908613115756028960460157290234126559966777404866289347450367108375646224447570204429238659535800942971491530781680819686106557670634622434598140102838966344202249213075956094039903284167899745382904317037226359750561312816957743917410485868630813709199740959567994595644215477791810771440259736757343621794179639637874413767774855021353692870580197940159670025488590279911995608987517943147882023164817992238928731426515208792086446963918215298844911584453195307411503326545061254213417822857582510688782997805140643300476498930843974577391476841460704869106627099429233287891739520878820303117221042573323139954565569247270481119340770918480875448938749576847381619062697098121613770209760544372137742808342388990653892804461465129918635477028475380349689984267339700185326382114257595320629066165270081865646677347900997750268938616634782554859921258215915942750729283677493043422228750328174812743684204179135059608707991423821531411476823796503321775453769673862726492239028726921708653667704114739973986205229820549731635137430851844137298550690405753414442974854176206563109916902093224551907872929006237700470168977724464315749978389987963584873184733969135221558940216023322817754924795707949950013274351355827427292923406273205084903282426575201277863532436153609876097530162249014284129907932112178710304409612103737425515509900157413082945002527075137401748495750115975908904474010892209096184552060117224888423448043238476242457753879105009296048537926215220840651469703849563727201408448298817871136684476168202706341135465691315421967505236437862305979311300579027498267175429920324131253316380555926347711536824322741772333639902193787940138248110190206254885347599416625677120332865338175519279771898510056802564237575732237562401891787229605928438274329871478042158235603295567728240861571976905422873183831554088532537526932570106973508176751927150693984903104197148860284454870159638530621773933074704145853730452147626033345432916870515312184289620527091315909127726684913188434440815808532276077382447762202597186153239826134010946799836094304299149003745112515472533375331660363642377505760608974434859863893814636399149852264263721346430525404540473691845816482054718554757790557456179006625052294793712540111651180838980207688035323940380882458146885344886142687702304550174094945130385932624505075752888490834226619375210006142927097165330803425325179400074678999711992364969600588665659077930442410225546625422119375550869018509503488404568675055748235441198520686625296214349035808307347986449972727104041482495317978542103431937406932448263380294425534625979015941250323746346761768765908429656001704616604809700767815581153100985704033702691152870955592530714299643283272327113969840012819140713920239499462231144108952595604915582183437909633399843696444672713027884601349727413527111125515035923330178686399785685294857523036251848469330245693296798534888361899945446485845249163803760349515994513818919952756807261537303130579432173990814928382008549458625550107708481755221448592578727659950527780905509745241818687528027230826456421780242973290019432048313205029971962922897414468775986814600387396088059903207663869885602785279559188374024316715339459018264587223435619810251196047239178729512093756300560574794546045999130119518183302939818139001322109767245942694305291226547981757702283079867431997572743927871313106694573229462478781991384341505027811144977350350214073595871956017049049660669597628592255750243335198916346813949097668608982387773762702777939247880830991855327564453299446845748831663997715775815495980370012889633406724132981365203097681172272722528490235949093415602279778253922659002969826999091136762470918534709545468744684195817675128613224886156103134204894459068306065805196501580748223857914983947269158498169513685242144117213497142102413235136396314928330917662010383070681719836283917573478759406397503904189000231831874135996204863469476670684930435508105929982149082863999868450553658622244823663005117381834508433496518716128905135362164601491768514128651005099187119977240239478634264871738459506760550659405988414624540290045721392464682371250650899645451996859432156119752674927908778305888147602652679127632866109262914321899738894111417822376390110845069453779604136309288708745119529554054927481363538781463151239868492181719262522503756653698723599448766701157368671247129626724104271799133531097219047480054717559815536119322257748397055594389318240957892113015528710234987805023630603220505967945383685766955261254509712358244670480906132321726242551580131695635667592488715399562067555047654302378521410430646428594807118999846066663169796011666700021433950934246627830898712567360183445785792771550630830302380490880485915764747809865401766008949500078710350159190035615398332985243041727859625621089875224642855356035517275543807107441113985443234923230632910238400194428832197625196186903500589730536472274216239699542930510691406287430758138943637472168209258081448482295890331903685154617841787794902386766621491004468536673531806374244913451054815476090218795326077077624591401221499004095266927106632072038706738650600941856314577651048395440697506939417833892595828333605472412090606999464062947384031455428286704617211335818783426842165725747503272305958494161492408264825866246001852845754749388620733586618483628688166325507835899982958489011551142796405342335217234220578681413679658300871150068647858729624464426552614558148868702454501442022683576118751857594425681013659097223504558966095857409003692200275029747525749576165019300205938964506863373696692607436564998377334880130411523411293750722199499784843438140539650242657013322663338573153269200025352952211747307244605562147196667048085765729220792856728415040811994565344186157119364502492363063362712854960197554073946761126403977854575048930771063743717686401354000998258987654688832648470149420595499042312438508720372147133337115353182442704244728265892114172642916107343956493395048566350441658312577988035170631345550940827650813484399389431661532965175654421315618858928860675455787529225291242204924722448779385581850881622206912078057399094308485281468279018229801847377261856329849310324658383837624613236365787821262674208060300967204228776947304222469613266613589873158878832948736818300582884241073380885208339692076020695311814947719256170916356559570912172482679272477411545647863862328337754422076828199583045602008594083253286503918467351337945901655988385520383894682504956809873510495037321335477609041802104971255138586788595549254662992952344803855781937675253540738429921821639771189824803811228261696694843599291176756692081486943540696386559210342936166968875042360095300422701050771875937698921961482772394560528019021779306853772442998107340023615805667205091303976481880535086948328081808631321933968818300770645865177058746272372904275021950917477905694276656976185457795535997575486947362847698947055162239929374340523941905126900305281946149213366591658075817431709551509434646093025686384522239789086349018418351572065861430053228930933527827321633207679804902101153853692410101097298191723550630409051247630262285268858110799205710439258083907873598357691682362925278225472836800940565285965478644493798786222056817512449314166637176016935804196821990288365535614838849477149347373772524693085359068365816682965413252903555827104071880250237594711742003540081448632878217300756587833028678423163486696293071539745545110993744086273912592898290175204111499913731296320355152097540790073306017179205647207953367439419169336420280635505806772459609236049763592452174130088215105985495892105293214269873233865834564611295442779212944181662513245909895200642422790779417237605089183978660048590809603548529287174568210188461840760220418658685006958064237798960803460951431940160383622676325432342088475932476888786279079522468238422177667498745305152828816891648731505749280134703998817899776170529548956521894116740561970041855228482058605530529898396720483696489297830149665297987148648643083723055217869810992453403960119636300579961815708761581217741891580088310089336043609668005696041466600236012101118366656785859070948082363127814373270842070661218641849939090862428180642864856089764226092757083099743295262065670493324690501069108060492768546823405284578634269701624691570527215993741129417361770406818091768927834664713068204992577447240424764297752237316450583181669834931878450233142790194953587098225470671438292543297109942980136623986279945027609923264628446392911024129616872418739975437314323564566801024869708569521074314339984537863180375493776623956858706337422296945950533184152032800083230427495682415607975309716062757060299658039761550771825292825854669468448385546411047444959397230737978536660007877997115762792320706742287616743408424343248968552949574096203370472699449585304358206650686924095941271346652631228313861454530210377440056137017698487145416165324469241665988911180378925300829532722279569329599648160789896558055141153736874085402885193702988606016292009259986383974383003724161846987698837269791175519888886899708868298258378282346793097637160289542976677788852473735847480252541866123481846660709204673339026694021773019337507555882046800830983045486112442813534403749130712406653951831190766624326064629413243662741831093509708646754198926137655742422064859813341889576105264615396426894830775780930090281535273722491251061128867544539369620308874026020113616654815277799909534447527683354178932924977580267865177487308350247330696265667112665198053774432357445178215263105178550624359946176035369802607243158277943235020457663843239450095944722583365710000875020646307808984336223041388746350384382427205470877943831339482848355462339168245910983429156557862343055799745581905914009846814115440483486765608512650516881153751250243663138328036750250179171175388305929653533972304982036449304269149514519913482856698652613877711180006178944569104414896050720182252810588545670210209904244251265611117069449391005866813089546136126174102176924332478957581017629037872007215468694175581724690720985942949548111724300360807749559400530994776375093126245343557458115328544468639392221624190342520218790894037218241025717725682687354016912691746110861582307979816632484122916091960427889069703594215331594885391174518761332302917478149516521263258404365836825285289192480088556841341256314512538847159424064651419927416434193087860826596079362469292658656417130147127678788824779134732278072823879434582118593082596854596001617996936598652717970163266021810534614241506703894119905043517088189143317733783150463633513959812098312270508579334744649064700525821900369925113457741007873557823839432054333689879287604167551661169897361436448183634914101531601389118389092628151304051879849461002517980184435907945027700026497190661505258699917073700324711151968369004018520270032138026195663255891124180009454783115573480209576886493774262397893061705149206048775977622954823496372304156655438080587181655479326470111221520308548765956791706362419072368132732049456023538295871240495689635740746700385566197262885875755592367383858644464729666812220394940596096024565831999050894866780974727964291617874347926245077690947487346393885172994261275546512417280839969851763744534220111630800186174575106138070651399049270387367721282099620843700426271775986038719235322986205710474376359454517971967711957318738713774818378797837406231007059777792581721704576283018896244800381025271251646596049864512256417084987686388405222248316004395770889065259713047992034377842149573931867018710977250626733599565951883925794376024615834493530106381417673259963276985729563960405680308713608298567804528916141120474837801482697930989548579752668245733465489322421882712602503457418313097784132436254564399952224880283663799732124142033552704859288996826019911405500376709862342478353654690219616174010229318021851284073537225093753419697883492243105582281295265329954532161541106529415586740247857714271216387204081738464970576786903163163473533877040232618307667857618258039093556045735252779773019801133600879542731756129239267954439727692815171013342543386334515398421570372003346232863861197356487065716087810526744514080712611908149286458691397765424453330887527892293031230658847041057380177502739622337429079903785483958411712547756205348878912308472990642413902356835798433025996532763421636779156739738391069409961405944745602113248076690127887230129506214132836495308276447296716974775059947394042535043804888235989498371106150341487279504963524223485699446837602075301780425900234523857361115916281663975969916398993034632954274215852436975338864065169124134448761600249865104285759646488026531324587804895318740129521666012938501808377668678932951337243767327791554018082290144271989710091758963977980034966166640247279259369006989737491586197358307827831333080657713182664647202930877460010975607222464257904445967789100269169546173343565655947972610115306730158816207061330690534331982406036680194478652969314298448717040512134677681130650934883350109361352715709270222355413636161857230042510085716398308223254291681779858470440768116211955281011734636045040721671861834106521527326826181109509956466753700651809264644304204187262421467849544633174369557319299122769326075380690684819077504498226500535213900931953973258877875637965764970783537205242793605080975830223284004853142174734319494874770453430630724949297471860909904059747777299432523160543914906703203454018962481238448184648087355103317658613821686069267452052586082175088994396412009590850115431836035064371728561053596292969150059711308428084362188531311242805658532038624479402011803929220577451011384313180991534145882563361145299784975583706090966850479772251724891508054694280169430202591149846048981668689182686437345165306789799665643204143058815890110633137978366969644724374863205202100115407933880302279587915620955528858210345884459815181383271642322334054227334503442177744411458425016953867637411979276855431766940173705811477616997660478337420198456153118288354238330617875239982502485230042833153086972958561326159706788754326641295977189056012348350304703169472490444254555127286119282914559507086968321827031971727383204371732916577147460978614467551288556534257566167089030252552675182717035992802509294572423156043272476164309205984317521843628510908306568915962288805509405199663885909375619064838686063990316370526300206489403273766997157198400386137924831962593735782968082282573404858139889812721214318610248171355055710737046936391313527837403227494922410576185672285974220354221762837068525716629201416544820740473856878276645991401474520430780406838744982438178831181711500279240403618113039661481414685966103621908671542047252397257807261960748926747711602958029465070341660937433288703733720472070199088079586745485664243750914062982289986579667308164111901949567061100689436437532867713565786671439784303690912732039921278308550539596551765544476421412672645874066020253287273311714804355655884676071851860043842749323285316547941571963313822570071856792638101557760363282993135485189850596682494875599334707253494936706228970607203881484769704013836969130675542173886063058947732744491239282077861210968124799501206102114666317322700166314796271367661612423514455883067969353172019097764749662388059136408186815102531368730686964796972476542186658233034808942801576693144235939572253010189578499486627332577482469350328631838284821085908979761027756803637932783912325522126805548158865776691185389165005530586308486465329622365150455092466282541550147318377971825539907256422550444950208385655176864253615711796563285283861047785065213881639215194611045767334589956459244527356518804811588040602067768296017172761076144009995261783388713389732561818540630494758895842511369625649497049550535445501242723511625468820183337800788626228622519700456256056360171562967381304449780185070571890941955647160092546803594190342514900693329143455521457448965382382492494767306900212334623343350907701260123063592779226024464287877639645657803726957107137607160658418734387564266258585394241675824407689841000161993333088418261082355121734598707025836029532270649431120874991740487346128441549396279609698055041676214783272457351515479108366571464692168488191045669017891654506714888248170274543136326951667663811098702966466581508654822245448774727276366780824998223579332133714378093660214408101144690349569924066015860412389646190461132191287054555564074718970424029452076252897990909619586442257172035579806918887181706161693149246286649910282688886056536305907085692887701672108961885566944377096512350566394730798523964510359035268435617569282472495773285049554180370583793176413857817966198515891527701640595844900515851537364457628843291021656535762698462177464901727359721537280449260930453296454360438325042010893107618067216880895137372282109545206335038915121355803302622887102062113375729285552561089466659353241348039177562937347701347704909251185799722182974245380548823962930388964621832624068612279728968520265948006882820455399577460295545587205311992305840445456340384563415780382170866224841311797237299968161375510800857037761341408096961585716610483361882892438507707833639329201858628496172221078782186267523720776571065731391262959591986164197775732543732446186687529861999814953948742665916247409988329156533152967878779933861438874912530460316653325441845956967908701884121743099294435140386152727718203002120368180878549150381368511860264375394272193454643193994493546660342420055645553625361804110181502521545188498605013229897765712011135878967655548603881301726459055056337895651789981215780578056462129669962742712270301253196859586773477243594787117724826441989445060607608300328258173088207447106566403680081520916479764097111477741558117860483586632271617111160247033920036269970091940368267305521885291509590684328795746497932344415193932231462962145327250253153432806753126652661770269656630982561507794699652130756767037446828720847972341698152419277903424723610552984497142963974934408662744867012171086433994841696326517877953462563722221410795918452628550729315783043914777319818482867103760977668581607103500525513147495951282381532909569322599901278752101945802342595237707181112022961114414491583970803400736564369369263131864778341321863947120349993609915533195487302463856916393272652515597422433033304224479381801157507496204499960237550313571422543060615678458149422918115548618262980755095371825093705091595075138922762188266517704193359444903430756327837257619628047676130162129883723883810839577948128722992726757413726127130226162913853905896391073448501149441802507609369604313699202718859620540825269905496356870424934504759888474073352093839866300786919097079941780957827983944166931074097253141907154541573597903816522750868813549324445984059275005321343443648092053481844327518221955932637803511930770690747024210105247570726688123370413582249314420017574967393189532693596814232689512010546388169260850793096943172367352565636420559203248623586150979051953509991473355583295648033074361733924257736593136469907582853671882543312714414110867217467099598671161053563862531027609132488817132084708859690346302920318068647526329182650919768944990951051316369268829911726717774917801249070402209879476395982081405757870880080736073185209619242102486190827752708574644791499296862175641996732077765004224523305559958838793191760845808038714526515888659856704443334360063595830263203254768123942608386187523030452964376083475914235471510969438101487375090857866016662364756084011003218805948383409128491127814697837787620582790985658694140635821045644947823447734436037128965216336624973637672013760872658256607300004066986897306145622599039387794476129470085746458757695066698123979442494973106294608850303928942173101914877191355854597180107235663260528291827873920173448577492759618574915514491509399423892221457658414003150011786981839357742026473011714289114560980584933347990430363133433594030014521070375640208858921319037264805992359793721789790700654921194442190056454227999177505595399219815616624137998806807025094905178367905268374189831128378693033285219858444397687272548166787047169399370461373059141056297381544376398854956365211189481885655732589374994145749727623942408358073309235038908847139521610777547264421431593166861385160372172330860577730566788194460753504927486160394692420169622809557125287827751127255200413430566657987076120762045884231390802939962104861482996853910532894692825707874482292742910534831240040739197498308723863746800386949942203527053465900426986020760929944086779471560608643830889761833143747777462286735703214858502304511249664570712555188730929624784352590338757810506904942346031396776600546819107560539637433506987931018954819912459172387191662188322963015221158431345035290418556645858160118104007914417292382048906060827566184731707604257353356786909206826462631758326325747563535528471646604083497190788345785554205665276099018766640349621612367654829121690302201329198809741275735285426829646018520230787337127226618660873687130713243696055512090741118707755019116890211960222896707880932343806536067183774030380694783785174958234274733344715751339410054258244217936266109649576533864908095592463010563134782464304570272062861011157968352826014198425599810508852888427236900693710970753093029103398779206061931571859906748685053607268945557632737188246854569294344370102611372395584364923182861359122636642434830944390442415995911019484235552489485140428367796693524517296338458285900048978432405246108326475340399065110955688231728775530729375871634203449303079861312419263703191207503349237857496562936848075921866177306912349041823887462714878125538474118305327599922636217416362906425824908968757910412585916189844391489495327655641696631669273677878057892865296138322123300458831164889522555286845259411546183808854367589405990623681446181733553593124643025663683521991359239265985576613639966775068930936525368043542075182700418641033938507613959812128085831618806433660404939550783911247536938970848952478430788838791440534692939979205529065016787951936697455857871626147488953706695024585863040975498253491802369748652062403694635249862819130415765313492810127315806226727484669137895452250818588709017455948655915520713447242217851664965033634938696849582549140294332924558001216202083647189035535912850402460853790065945029384482710696039835558189910566056693338107535902667948741667386172845538973204828516377697561709953034906639944269563341410132566316387232880038192333112517466899022215475908530502038884004971800895807084801041672550983903190455798171623653903617100705534894808965135996221369310254367475399227030231720189892602177311956843707207489652004736326469417937466676912948301809005297375597898681260451104238881212438498229250831575954527777829814229263579028997431011121030252716092838398593287702189231701934498225687524769715270172846677093595559901055005072795548685146025632144354921248468522718471973738635696977193457434899934760625709063371770255392215430028311267308521688266258141519641234533427426641825007889735332941952277606131857370832650252241122801011694331079660149519312573531959244240137676069797943430977055523407152446652404431193541204056414351082574092544839402739352499479518690565592808822691702859694057300929258689889524053829020979061695608248960454114222722248453466495295691177923657648622063728700703808431425517652819171051545949876176239398858078807974673532361127332952089451802500545760029265619344447475746401538073376057036050206281897481724941782244677177493136836249481120390634124507326743976316974727376085258253573785557346420991324999483352028715188966454836914939769414911562297226916673914518073214266816558103696864503189969094987432104120521925849127842462124856785066511589706233329308165005870194659943221687924434519674441598672935203653239711830223671870971577185967066833187121545862895158438284384085790655006462544529995691306362638888934439163910241837173108724645894789253652419906523530283670164876440537551687316298618130367016700696596888940399418412997503686976764375336753796625587598803010772438624330543041029347377536369138727705999056663841370884364894230663825628563477243877046752374114939112403361794819083567567256866248783211291799642813776169523950555578607332133083917579498637455967530185130756157476382737030786774474759391853586567926712690258189218629404760656225424467606595474630722920557206656142931937130398437532913752719510026905409519660042005876535400683061348463220881614005964132231811518572065263365875619886486296857553929488288546220268891707005441769300780921933415620276341545972359087210816643190538835614587320219433930548760533007138982264922545821934193287967595794912491606959626323417432904434261909092143638831755304692141160828893551938170323860433451297956192618264970841686344504799695636407288203598384827938535099259553785938843093657832003999888678742952459358825115560138749685035125406634161881871574807215845123824488338297238220800306946926393312789707492912402344837603183616803400183244937544202230952107374801817499518953568648221243835900788797105985411803261564244225180600130136063707723605494917032835725827938057430467575859907385575581735965268840450930926511335486794488778871499908811112159088319190811599467289172562423241614194865342477893549986344850605767149873755182190197178736166085357505315658039182590321565341243545936931543766588977742743202618386461586779550667182007933259040238380247308357139824679195039666865278896679213581349903681091270195232058087714920464510432694459110499134783509659395435275932031453593918361856599078471970232740857845025064972771531599022204882771355206372037117424202796065500598309541268239689522642472575374953772963917493442427934782814928077658786963224933913822120275158163915939298415378076395262363066435770561323285791552908949966268778934355344476816521246253417583426453437431076244613818951178441698825945077892780888763380814662318191212913582420729587359417331376330136211105158140982335792487743541617047366647814954093203278975611509487726289899891131890722247916731850230809182532193332006438941621162418058174530834363814012088464582095332447459119089068039302685587033811723357193427816317239764389105509125402932767149489625941315619963040287689376828755807842487775782495920823987127085724928132570579051857375199724596373712420507849748720426448450190116823487121576505833675412583720204703036138696644038242679740350638755674525560041171796446012793994703190898862419532206376276315813713977594697203827211092921302518116572073299573746200740536905657592263030089618364938312719605161541512023513142956851982281308440152469175715824313794391750415645577420389688229283885131234292765646931161992617731953484087752157319662725053280473593370232992457795848747602711585377118497461090906965722474092957980132850028198921210355537453848189192636868261472076226902755298982301694912767357686650129460808590338594037253510572097335636770601753849801194709948028570358830169826300408416661754304071318071045153405391441692612666002433821626200678560580044344223647668167661345836641675628172690279417594058444410369777500504895130525044991613376708481154121037769374952732435829647996181326411040320144497289729041948409456597311490426591852957564101697699068620862445893115981284343100794928251985504614265038934247239499849636864546907743149672887273808320314668798219605143224703055653732146540138804627302234470111236091180361502074998096023137810799224274178415275215505570002078458944679044689756637910373475808453047905749892013527605964835060026027477560749597987522587648764383487288008789669715820814544880765471145406940454561891009721649055127738898226880270986168302880504590190306794856999309692066723806186192948882927450206603164337723884402183671561753017316084826067602612998425064466584844269625003051956131096047522746996637644487354976562339928245646499332723250871182214587272737247914823378697029088367139457452925674146569943084376373913297183354531237203383512854370455698099769237130302311800950869916167954447779540912250856005854807260656747556126768963166805711415786610697948621287368868030254295027458480152234130235963055140033190910492353854245233516887919167283869306783866926648024785741395926358601986715118748504796324112459923431211991626108434000603586617016167560661805150390766192204820764704559078234142938443039017542446707357550100022089387072569283163198846260533962391342267686896919509932274555630743689170460524055554643998784052297366129403994098160440085681610232850781169768598075888608334561029737597361596274323735330735490045107630273744179971093113002087104312082343116116555744741635625898163322545724046205385955535112268881301698557651273777694713443100515126222153252200193933777557215210777920979483778895247982590558922630183302066269798316779183186359350329763658190990709151890617295540219315904045207289034268777469541999333369629344869155213595301325854727346198583370917231598162565869945593096437666535485327227942528267233057754632028296448895322953097943231373895212115114800180943850974689666133392123967266303843291497295347776886810236230329995004884570769845765491227937663462672441063046329866409305629020050165032415259359062691225592430399005023103573025063790095084909381563235424261122474050643353086404295408194609748991018484908171860275148457955412965259991742059253294974697608341123946654553223037952213787952858025052328069241502777830016843859028005055054347964162130951842998506189976212505230528107272658229647575376061575567631021010551865796032062670388353813738929308243193313516903459725332725172456662987018363932473457180755545596499215943807104879609307461360410690745285519029981920203956810768547125409439637907467008685327889643123343066656016120662432644251497109784962085426049877534234271153163515898152170677381177205879545558401458215768700369340319886128471093078313284318122527573717210936361434143219098542343190782956108212811539154690591764558384431520138248248280394210462420246844665075993818363096580767077717241807886400849980604333165880915179050923706959634755167372621838430517173467385828931889755846777825388052323637964344383105897348039003273484781526867161984967229986323980019635802514835361736579308411764664698647228180477478796110895751099460973893179454622079886506575322370321740715427762803800466251308180051086442458315858720708845418967997163442910639463712665364356730217609732988673096635501489611205214297712885588043116552900898639635021826495318819757591969770752903394884681097710668452849475798318600704826276173360205454174592359115594834307957844098006078486523135312164529399329033650441740430099570671109800392155907958238246115627092985181453923880404402330307371774299287518946281464085559758235618785509726810318195509057020305059233155385580219324675150394287389789543527084568025286325686680219463272878008505312381806692496892347874961893235115240620669055647024325153218328343687066867053487659356662575295057248223371163150551174301558391687359047512742855867705348011227387304440916051616742873441359856855176507688113861534994513241400899106930141765348438294247875843885455353621466087193711228129443938656507001866135038824044869486829246314797655368766819411128506596850412800943827498682335100176431791602555802319652927341787950022046112770748591942559152931830765460532520167431454259247711091214304274184458496851592599604091083535995897368991870387150757315832237217282970472140452719205707488054121355987223837991177134507668966199971141933930431009884165562519502876221458570153793644199587584682845414893867194716761008968005586077696444722276273570984791684867489432672502519323365571369614594818354393082276190139543056813575612980307738951869561756309150796608620383215942106997911853304773747299192713962354602739545560911722557385437758320243117247956183402940958525315346495285051514221082208484423587777526059222974389739389892598243454129548856339087359341744643611056314299976076201342614828957176534955156425686691430246351188797072243460752506894821622114843097975598384776634039785097620724682809915081772963837965879804575831756715400588055943255498200384148624859994157045594561502354887055160864237070819039241728429893672554723960562022509966759296183864798599002020139708209075585284256050559769615765771761514018714733339316162225500844647863885298794706330244205712610412282347398353459756301499131109884532739283324008770357719370812990469194173465462338067090727220634908991320037585485571559257659081512187694411887634350462920337567498574762945787624312467059930208263105633046074071130018495785780598612130239127138535830385967716830536421384044948175875361389842882759686230962410298936302266804752622382637652496035666241503814267812348296627973479306356578561721093294351695511335967946840142606067543819679819612701682033065463752758678744177853911629458682915106425016895350547510777382270388193888201049817598947520276042283298566690133270888901595300137874633815680408745979781543852997551964631979105596356931870351193961838993474816901461143093308121581332456357931691533612697895670189528535711725892233250823973740002886279568060335755864280930205186595741104999206858900071124744123854491749124140691599228197968005530142911585717567310544100900538238627008054745178665298081568503855620983897059268921339181310157119632261875442270679814411964722411118025355883017917127422558976161708295707871734978980509856263428781967126008506839995354867251866159119139170965795090578155160967225176487586659719268146054076568484112717409308413847291416348966758508496446447172014948830856534673619373287026226144219602318786056294500640936980398498259022018775999748424640740467606771374122071794626900832330067308410702598100735795619456354426893547073375262513851957348915284114801723800485988777048681503626437754199702655256359915209051874165378138780768814994920503819564482018037568229779969518976918472336406974065723381545475355739450234830110488351506448090650218803987012499394152248079508518638766654396682759015583555515537368585338866720574279759145678591450697238032546015578002493247106051596152809364179816001235333558210699509108563187302724257088841218801448409066588401294450546495639890500586440379492376074688394524765900021397527738789116713995136724324222613977722134547342533982720929310525671919527148923152850622058927590462394516157996288678399537331399388359204106747716802121480153799367653633736176683760089644553168135330749817228692787129814004822009704152219261363428531298490474451969898231398755461633056610973748874788196589468229040597493420738249308617006322159022442444568028480390361955218899929013903275931050229279208081325484609432392545033679062733282857884825339751186113802243228483711454216902621597467785549402370396871633337597579195823441608618429537764228419196522090269417978728361728656587135704726625730210045041828593366395306689708576209398704786573339619901617487913996321612607501180772861848080035638315188954017020850137662440147338700375980412729584938360898015325698933585030175830262282287698628073313389522664764146430499172332348661753169928943315337115214942325452968950702721648881967057294032520722148276622778506272705911215661409232870153150092500739792072098832253831884073424227160444982377145943935581435614980208340814269356682643240268633076811711253900405570056618725588144595689170938071823811590836747507028220959199445173862612815136908940840992412091628518454223031161203133035491690100407162548002846834420990385025182558701152596998423404130329597748763922744862943863730802397764164319529731752908511666621945079040027672327362034074532836145458244095151857367814357498280664504167034721855498622750121006936260215730198164043492174022151488047512687340430637176065764535266232720788296546569751707743361047769548611058109329260402959623376663606423942112431520027858500048157903343950312917745997388478340552153306679698118899144213472680258531675064640081166159009417677464159087511188538164581469769044815950097928081061389361767779380411112383413501695122359846346721087427419799393830982555904525350034412215982990260093386211550342906315730598428435779653357969811462956137468091655834623695614305620757078490632940510726369325192972847936450425562800552446516023588787165562485178878189875165112910956857388473266202432750803784531255794455194048553386908587120900549020169810472027385446283480981200845425554301541538672124522740318695163814238418614527508240453164521850442073857698798301229067072575318353763525543590695224611607541831164411773810158805148832669061922744906092421746377258108782256424461187398991123549254243888724751911437222443552784353131285904993800512394873146225188498208477869412333410584853659694108815879651089198536372100840403613294699669742948878437383321427241815716583033939075967257702596046086101698034019159712770186764095077716095528761752677624332946733931067114026680048222923168592340000263242423744335088452524769815848938552708859059868616890153008706972953834141371623265358447823256889679438058957866819959326726992186569479931630449811481320181288741448411469597254010651159860481766697861500081387642145907854462211054257923430386084795259779394963890643495835937010898904370298607593579512099209451827212385461087328826013977049077788264596277027824934379068809784061703840346380175438921100878390910895529954754559883625207629555532722230056881704525538500655874095354785824070907775859459542237166654563236203011054896795726314934376278297555103558387197193389614595592250233776587433153155170696890640378634108244090598670949920785761382719390692941742824884811309732619236201798390629491184146065635352215370186524928552600990268188040750618798203500772827456081509083102693036332059697668736604399948153279912763237795677172679928217805867641345501714980850189404518058755082368928020812299596855856550553599461950078579697838419673100210920904744180022726136448142556726572697358623964160643469971837791359131034848769343793716996069774429578398749868964089004293272173491990185796779451736423913759324011571699538554835577640729599919086651047582984827635102003436602389269175092433350770661738446810196366500338462864245850385975811213794324831838779460197140798091807038671354589654784492086585024139171444611932229929409661011328153041259821628525201976597782844717803782781287634836842195402100673873228368241418398611981601858644005011075309261019071908888927680080006406909005637604419457983058306544979206269844886318261422032936940131545598932330931922737286354660923706876433009426756453375401514013391213379081150850762482716211230207374969809398610609077969365677738381821606446817508748492485599026084365827852758516227228809950738909075628851037697621803224240452698469533797162491863759105047670786202768019164865593452479116815881169180723084934322144202251448791770719166483178494935816378688038381646604855847795165483451825414110998926615199991831018902021271732163303787586498455156836072479578700716569726372020755549125032885889717172131661934500555360716078933232512564516513260655751074789084331173761230176619814166292197153981543768330600926622818544390626523073073932048252825830336364085690949143865931362884035906066657822443235380954702979805282233967672437624982517615791039541434737580028880446341198452111254653281476805677398574212063828102369653927573824036661287876183355125833789942700639915212955509374400954399705628314324731684764047129690557577973343293387314125931191737475727968166769041704479031728059124705234322141149310857172530380399898249866971208610017420462917688682905138985562828866583436349880002851328585337960176361001732701043321145079021288285243082983347045690184848606356597120410674156411303859157858904501887764121337961807796519541096692709990645793607929779619802836575032705363130108093188124090096297033949715956501892690685643332926324797800485532770899466743330401821808172876024556804846313299674388531421358195566230010491008274904935389013852741373763826128085856072800533704780309618119892437404385905303299269817338761868328908757770693151037605737088647891800443998234072980004069441441894445079937405713863067633741085862221396192536588581555200829286201872227480498049075299825310577234461076646717098759005985005699543993836566356343510388213924322252914430368734781846819514600917686755861646373287862189377124602060765166185292926968790240093526879704073219300282776005556076824300710289895382293319203259754596092712682794080850977543923622829369651919388903694363839311262801276294920253365950873915094716722378897054775523889072686972071983094768342287367820791412252559466111925153729587728593701304719226965081924008710210465486544258852267155989042621561174616782032153578382748092075532354845118769693988605274370561406563878736002400900435412229240810879204128457915556575055457102871459290514266114012612494659455724869509822802338830903085194106725219373889951667908839951702279541942547347512949111570321015231290577402625783674569893844794296795847160936962273171110370183027640420511705938171130821822272471342940993963634489395961565483044550992141166477675087564717302643277553644237809581049280858553190834179929500394906168496277841044794235650611453684259487613950009243261395871748052418523077286309161136034589084141049737277324291669660960229924004696593466460222437676900303961388371733892911431860071691825800412334827015658134215429202916020329437210740375483519201357185968441605759215209755447598796366893532702186251774642391840476014524228587123943566026231983040779132943414213418703099573184144158900365614583002731664392259511234115644682363669818481015286158062081253538741290066862053950844455610773434373162750007345620405259809891790897234017848181952765160250571401927300954676740831390115487442283785460123057060237657685504393271708242818436770913535195313071870812923189154084874866127210547228246832581932791292074700790223619649857769283812080226755044440246654482563322021626576506290039532758543476902763408063544932595999954086388368269075154203527353472275291427478493414529565776243210922940399109553748126373075828586012306582441581425608765896370976906925917294162198757696584043689956702217600607352539809351481217370154535659723530704864105764179130270384563274824265448410175403370288610948389571709805969443297936299048476364951415425322113415005567414657459784165546466115232252137288833781089420550654361550199622101858985753342918175483227762780977365564400892241098985912374240088405303631397027963132078388684576890212087632964280099073272683204299159864297810691434702636714318230357267784954523244683524211119985047553370350674484713421565167115494626089881318232740462756937691539940697536509782314186389831341995809207453432087195500931114584038362579980434527804301897026824994552059581130719615293685248434935533694626762574687449230081142623361971331463217555823494563038497116934966658573202019846576586264652481518304578252131125160903096484038694366559068263001089879534487672045251819102214618521784258522654271013034693507796455985680963822535770115589126170837666021766520782534068091423709730839270697545093269326213938938539800412134351519590458965676441551326906515119457803688583048445998334699659510731711053752526139015744928990253645205008927577310055549917893193429514786790108568777848556046888881621757423488931202905858929981412013707946111482426613223026291116671073251736665825351102083904332909071445596381778713785820668519491710688683849829199205169250649089777238066566268522368394385234416011407772416240469240166296305446671992515356383566484626432129983548742063827976054774994830966678632444816012706851720611297383058938544337362086620405101629659853043922260066011301237580058045279777515358083793564453312623325671383962176089959787481057927459626775040065526546629539253542568556894761491699350231484601029526689396844915322256617333689547360428221478354072557351350217804370001021988848276096628125871166005637381237443721321482126195722801002806883537831941704333922881283711330688458905058865142292889919923733456009301023878336830222809727542318155695513954116963055399190897449716394496297228405246226209768493348204671914758139362437714345587734562889108731479226419076052588182551350954965373309282121554751681403963737457429332283184765699261342028320791418522670856305648768310908742294015890726875493618095627918724197793557969656597957599340268016948005924384451462704090115340369125885186690651835170658039444841210927291581532248547112858910293054687721110097881990373555807540434026726969095925978731545765033772775069085601645066160888572193875416490047067627195091007688035837134270432817407673513786194410192346535839227863978780008733788797441104631868847518287976581333831397795201116131042398951801995989362199394679330257478363710673773416910418794653778310453788652938501318256178144917943035852627993114796717063297479340526958735424566681908121266567551046715036837601747641476693453361824132068093347286519559363214586444091111745923193855358613364920590093995020882934573084114989333172592430083931576263597203854642332835669250009584193459947753469640175563292870618520794921708757269264724113486394551411984986308933536646950909254566963490484458250156564803949562068787128224929282285115782568611106800140964845692225433110031395533851363857367555314385679252795395737030953434249665564936876135419391940194631840541133783484577578963521310049703294354216768769157668081372959288817783498803964679116500505064133746748776995711976350505151024282293644483552599295053601810150810292216401821401022572576242091152679164090029822338871699718167178302105456750431804733461387025296328289872857614787123590165013419489665839054586397280534848721576700294607383985093594314449802203404294411071295947867322196687444288941627366055057241318804741251485369871522718989502624071001820371072494666493720838746094900733626875853122253346464608902283661878593846734944058280407316458525700153254246686878989961496699947571489606321194826998771808311518426054899227970301865931254733547732400286152400458072849686877522263737088489565838503600881926871334390305479403733121354126113608180195707291037222421302448281634170952609314048507696964533378068387942910444018860484583475071897634175076669549998412864409656119820833840382245395784251223117814144463380798048690400784842061347838427151036095057920204660449299210243422437691982624583574477309620419990300946103012861848202254924425539881380157107262164988124972312402401230468683017116573400526424863065009283473094397327357618991649849804556519743890455987304460243512424804909552042406447379623681579575012987040868344826004097983143949089584123916613032627622069870992452042600766679438735064948025945522418308322263347590692677443376061728883595261093679557373962725978961871873524973506916199137779301464389102262338340234665466326232947350531249103397947366185901984884064119368833371920825801416946521663698393842360751733839287454043896040888114692292195326954195052805953350682953182661889203687005745991073809013264812373983687039519577183065128947906032399692294190132618147207230970947781543991181265625670089213947906609066326841956290409231429588835845352512598519588294031598499702554545594275679507799926934754605535065891446690247322617391580651140681349319174442692944613089423827696898349894576159453394629736942494189199863560158029719970607615558864285772696577385672713416479533406766172348967779045224474879619478956767118919115704362024752440645355988827031285463102892884705904903681408107033337178561377334989577908610571574503454005929177511936570114617689568971135980795167753328619799910205458454248904876917782869194311027162526228933703955247028193975926863479842807375621232576466018287404252401442909898526359662916610003081488871607619344438274760860312378902133466869143743921689481813802231163085584200389300180413018100559101048398214840680159677491928635785735189308498310562623391890142098245482408117608368074483775141619635449073278160100920930728728170161653790207134027916102350473233179973137312047071549980101180054347260169134168198265197341325483822616035166636416623160780477653704608620939930519698090322397059469363370298539110361023842545411826963383938811131796979469773934740956621144449092756442681832587252546700001327665738628401850160620781060570072092816726871022369062127937730387360877828755237375201715572754070149453500988525852935672326233687486751128349918049530494877770879408901827724860610022025442979397448664519323929910957901152844284877758857636411942191886124909284309633730467134698214329987175676169909030696998016496358156886634729680842521601827045198438868246051506304067984922412886421008515513968490709983860272348503268384986725784556820906322724546565598122485149145387153527976684721944665655898719625987352902087737699628318993597096132528448017934564312870038696831062625868961695216892442166933879441633067043939869528090783147954349876519370170991964608853977972867026528737446577234245709847669153362650396453449706204426298031072283402251304564644888646358831550674622626927871890259135812404223594760692303499028478282444689848145245650274284199001235784481036197090215656890738074620280371816893508752713936980722187114957919193674673333488228246010361339186747775287245786352520983314818605903624849554030933751778744397316496476305185012092951053393686842109720927482160822423613159926537387631114340778684745047820881269458718156473967243210317710520911081215348654494857213016814319484846992616263822135814524062526504065124952767077902437969015688513482105872376528942928319560019997766051091821489728524715339367813851857257046305139046737245220326514241835398375457857471418911363230320929713230952975064707020965718616084670243302972140551991564816594485934096459862121072085525118301850789165884239574820441679514317342257226071316476234359190086821572810056669363252802361034488852615236077977298181551232712783109592173258354547917256505277896272325785540100235790213566271151099602274932784488618214816126201693612994100870825167516834309296451926901723918077597322417411141731006348509876000718299132536342855307540143375732452378825349625013969891974958889917922607481839734036870150222673336133106279307963289055605476674224768528309165548365309963401055104698434621192473321090705528804544139578992757076591410894712846729378344249753093056440348673658694780710095200014244710943803320521412493294874546294887431837982377733648937460441897762265141981983081032906804788642907814044168015455503536618605617897496199097141191690351406957735723608187353753459175573189755575535926450243483066665733838769549921580839607007162480756123471321318527297953230972559405891649671884896923846968992731935975221026641579185072441471781641758240896739754474253857117022314463379137883395970759352351245744619560256512009613894215442624757178032763993787289906149664193192418891357831750923080458045253582666580742352284014987602127796967712484605307192729226739720574176625629768506786693428739338013371833835989038856601461660142832813141759713922647735290896104757439334430893320502355535444025653096395627056128628261356647393267312731836574663057036513680494499407831567312265004818048609912788455163655928767261837708080394145103977229719339542550453381764728357756526705027386619742578105446624548449675597606867401877201068757189519902011821567018370281788211424861307035944204595744596198311057953297589015442148098991559806189433814163496303991330244634879473861501571932449619554613341825846947374688004048390959422597391387843123667649619839877539375632396211501055848822838525975723259806551137424514614523884929295487580669952874325165473087431567489722188466717405675109700661032949584024549495456546221782184317117205607989322813523883791241516063095228942732004396253921479426728170548649429279608256011318946247522758735400332716263988770342514333148390337668535180224005571073494863949248691368225397974360843331984303668502534230590377865577306622117849042426838086793764321312918443072678496792599349581433088442008368635453100208155149353621894943809991293697244706672895704105394029976907210925756538490956551455294065374848548245279690982420432415475719254766913403544282638088158323284524479147410095283568959646924786382841357722552063997906757187927562947735690885034646957711324835828021040044492619654860850509131429258102047237432557785561693479179969170190980663636805094797706709412660365596000512076374105501662863415166884630423741271975637553469046770374295236788562510330649327082982112096396825692294765175837051190507341619498573463302312427360943022504107605389733867215207576254350134419579834433552959307807913500780781211811290981482330100194157102178213761614532645350465813656174052645623293010440807906475039543684967313250192522591219556138159008520417116350119372132171969659818511757902295889445786518126799695130022783684089739269077261136523637363469377834249176161639455855542501174955950373192481433250571318748577890338667473353614574222859475096784459158334948093030223672264294163973120419618021829611683547987445460245609564173539973513553706775000181638888174007914970082324524844857221012858045838725056585984899850985785789367779629603802930640616535267725631983531443394817734784707594645256379497473080101326033839604049235658212779227828392232291895466294345185167420575114526769343508836132993036730964831771164166409124992063077703509910382640876448230556854790091727461052610840360999133477042595583637951750243010361660828611614437359859575073832557852238158866920733207037690309927927753200643148339699206570179073341602568056078613663414145668751427408587772879505324745428893447298801010106287498665151681413900497800573806580940919269189317093101608319464436538096385347401184676111005408303807758045139547399044948313978404133785258221885476596955095905869919419463347868373651748700373172609942335923882499853588583440370287146586374519748806794094221092099223729683869126905533302870072823719363750022177834621786604626080449220713365844701514661772261956745381310094072140329639341071613452155540257551278771094272828564005967478492157797877168079669863617848143294916177094513241115763268468297785910327204430749242242200832178656697066005187532994802248146726406642199372959142686432542302851950181430596155034942718954229448149671638272203859081513529145802584945433712639247427099960774788856990660662205945282513074372816087517092524717914827039752698570707113359961744045522602821867212280985871870119863941008971176192966328089862650268233102424919986907365378891932265276878778567711633094404933983213589132461615091544421482234154329962133867345358363191390757245673360785402446768873049204541178393110195412527751502071300254635147480215799559849870530647199769341407573009577221521837546692647728575544723083620151622875855391976536700708167252179914381617274920741358895062897056349570555856135553056917948769613628435077837328070038011236266982988168116436505510403709819120056456759292826529438206121508311916285162866564298383595191478514835970996165656256760481728314010600426155098446916908206630786150845520025262126122841677310864252516980665883551829643923964424759726458697093256615096332231021427837139190020781898801826217153817597958336636475702024365378751371911290168690492499477248647295956840272165064542343177911752802315918348403726777819655417232190044665126553245247621180815970652099827546056693585503160311639017656560478992930578641621298945493916267720558767349183414515942355752750797573636380387939481341035944425172881786175970617608393933056527888590884041176742813705900082340140224000350001402064320134406045475096105595073789974384199717096707166210083919780061041526159345023667310479702270529188645369228369449119848835059553610904507152382697890736545538749185629852616342379965477050719335892057712641968627985495554899145392882392621052702270541468899384638210570808600299552191115558535308176721066291708625004036858838348939271464481423621775955269227522649511409883554807045333950165475849005189814416183117595846544119063245860791803280964422058280407386022654980759729144327709898009622130762590282243570857123958403398054001249207036694848996731783760514989675385566777098957628819550326138883500861669022739496652174175728770153240407364152933514981292558782278934208483745982786378373140579301803980072067773813838326603067199015721357250649593368184191281442541612836374549480930271964080240984000222031290898359981786617556765266074141599972840047693105801656024495480104488776572382850360679095939602078747597346704500730388687526673755737769299596303326027623384732529370844150654690390728458005964942910248951627065504051549316536070917978001445641079899525025926861013129196074333310430177037034713166615912449969653484882623503342547009969586347733947802426756638523919053954145408877078474756405871384153396959759544528716906763976635006010095555049037448918034806459116294460166038452183617355414248945618175345315054647000790274540888306556461885169016879723768796091748230253350862429986982795280863769373113968513644389134083834926542616110376659745751082184824190667149450859436384848856999043537846455421860863319767024408215993654482623095179091352144668251202480625764677449285726285333836149846271265380309428410872437578724686423680244444074494915056904934556829567816947635045844278298210512476222851054244417813286400898353282002761997523168581345130988315602813880728162150493105263589269513377236199125171475959363641129745764100193202519230857104865227440666537717181152615181434122930503234205372625949808115865184910462074527435480397289790560406364840073403049469983214129015434080852543597848774942873702857347884063715104650885568418869221721079838865488741183668741015653749495430411199506961239959193821304294776714112459999723658215587483954578859005425948399666283606712827387049740504354034718055349116394346629003754455577226933558154791732401490369718555536839589188022539183603914942609715191218721779682494835292168155863557952020806633867426351516685021340821734930450108147799630401183236103534444718768768423529725339999311493225154198942142966659937254023013296477542212518669386778452917490883969814318526330547353559049662771665224785805650076618350639904393017376185357281640966231893845650757224641481198986217023092433826114135944664547901794023240430263132140960426540832844144919012893254627048048881256892127479930829597241019521281043919655107505876853113223920807216381417208132861242084877875515796786942521231331817201344132669768200778420439532826752267699482638346795553874098848787736158757985958492197271594039843571967462082538899687639754228569391792093862666248241409116104558589385975324733062242106454111139638832149844129975961627619283054498615677451055561713407394168168424355872915822924890310686115698208165067283095329254698174444167912210005801517189222544863151553506925142123342677517240353774348873911292935932154447216312117514460042416719828854703133343562700519988601561009837634104670957746274816157667071668237440031176965680488314791390528060086329470713429084962238885347871322722052930322200306958797216028904753198984158697780532000780870283808600917836163759694866162126587221016667283275724113692470533722331712526475455676033305378226216986256935206557339448813292154563837520645301540828134266576541932069311958779560072560784808679241926742580585042876900558956183246009564814198299631693900878826052557892065439311441938654318408784227272628372979744112993809457624038663486240255100813006403873206626392875688422628450029044842967672052494269021961090067773348307200167348082284571435272119824500558644313992491379058231071053547379850819631725694373534186565820366161559400063440760428931295727461241903651751894810046229974933977898288409236656676990684298003488917342776342480989292630870939708171617822826243967677769115871250955569045864016314971158908631311109086198677016022631586957607565266545170660484637031336411221532419492524428230163004797237391144828271102117252271833417652885566289886157568747007848711823881452158982553355073746137441150901530877004603527889579785379065450337464392213841043105668419414446395680180473751528710726715279816965869203886329971766588392828402072266246381948710744840540135633346644175543949016062732989588283754136812563204027269212352856403735229838985552865258310107169731395348090340788947711983498713548924590910627653580798894117264672338811319370204351984111054118276637398575407488222091196866612041405643774404555691127472360390638388301398996084976609801693159896743480726104767447927377636042396574697599449068364347016214843215595289761270173538303511590532693442194879010099247489996454231653812823256122905335015229482648033009208008914903951339653809700637800554790968748545014151719190054729782996450430439430083354739232162540497687160868095277876507839723159467312994618476495062440984336174397820473612076728320166470257470944602582137496691765695212009428837561478366442265425235758841046020766313931621172390877701375935963037602999461124423234484949185368642453183940269207078896669270205720416342490833333825672247722414464622067232375068933097600009847155880909906379204949294760678983066358504515367342663549082277348988594391219212340575063300850120702527452264507921596064498950972786401666904331235408781732368008128215002143235761094538002238186719220986979157432693553482517031329731488882667007326731458545754128749961083009313645250169141203490672817856477333753693178388929202765887085890487103592200572073860440505720342481247722534659320422875894235217208185920869375807954366396567536982516096534310527563297071456935102036141562100188888194521530480020076591817999192838836281845438935584664181038571439042513518449080239349717790805710816938877472932942613079188752348470602325900174746335560746719575223138828700822826837029560474692863868074927290864754075312458523495897442243605327952155519660049144348528317306167233355251413891220035177010925799860203581428460592384852138452717767765878256978797527295113500478886836983287548713501594850104671130104702820740264719709672860730472157989055705442617193919294246465580720230230810984890748085871881612785376340849612920404783702012125299368753078942078641416849730241111015859283963526133250383085059078818110154593617154431809281349867973108927117685115211744236285774474091324120742942360576058020626469663833625110756601061334949302336934853780272378878757445320153810610261171424956205028064325475107593291688719065816097984992887527274682992179496597365904551905238592439899279905959097074506719855775828469362487289651932053708823924538427743396333064587894604464323964083587185105713397908842574767913609155873149073719308002793391984981593013157205905685797044044369337142705732486379953450799247529044678102159980241291986077403837455731890574606500546911557646926581818314473664740243113489940959652795107728980824248250836140121829104465526332313783545352093921617837010361937596523667607714054413531098647534435740347765633061229561646675147491188283526542852176047087090953178447991891445751451195266162730084182701285864330720032002597272045176742532809133342991375174452801963397550164391543394227240708504443864393230150179917143467332219835800978810997354721546309290484416571031563785509122640622643592362677526207353145827162807436263404838723019535344287058513063880236728996652498411294786737356013209616117813341337003527203706671658733386179253448669211006656959596522519737980993924233731139245895638022641164038611701574596844630784604937634238652512121793138361735194483344404736406714854773986670481549291891398625468850940112857260022324031596391839677778146625192107095331835280358738182162241326892642088009969542251297382316627562968734301762147274844516201700563865211485362731135096885553010345129284175630287989120475561648309365667047554970199485233961100540845673361932921338328020438354973519738495810982488171418827386375808773951986764158659530136540276078680536603780288246983295220835026678907617834956364614628155770986667019074026456968852409603585243190421291440154181526756696677520792200608549393570908784642740601794159528539671463631463512469695049191669475395508827122082032355304031119471268799368202242650246731347357080575304845879573643162576305192135243308897083529391027568364923879553576824722761268729651035032675752154995726776038003555354399034040995784905897165904200650715178714755046507273887742052222989536968616930784276047701188598611386335438952064471762095070965415591511563502172925942453830489160447436653021035412331773151559979070916247404174584973417908811536730533301813879789552325099410447775364039821432349996559611106688350163393241202102192883844938086198405477091180703588694322059836573055439657298322785130162364174973124563660658550394472114333276470842288125709420454601275771085677302268686936240684300459812424021452710243436719193537760553057079125219805407536049041542726768390008766316649973857018962979132271196981773285781797092622092535023439548628981208779575479354510209863185452452218967803538289812656235762220948337150193212964861905067543147242185715997627043324516953073251650023101018863017004518967777311215749707115370025114523334082720859183337093524653014506131057606699623496855382291334118729951708932386458123186009665000666571372170463401462345251369997536424357202020933221488111944692227737109378353192629133630550678000245163681844776100306627837999306097815756189712714851064677326494338309128741031631640448723075556155982131034659748443342806045211414973281871881471424834850923083015869321603956542278644868778388291115526026781865909372807699610697863735539491361132520188447519899997794113952075583479266372185383791005460371854613182078207330991543914608312221875720371503782842423819245086898598176385871837901380303017467628372840465771010493679279729453094964786214638276058381610265034289771118097531135864618397913126953077926869288338659476221763613734235206163126331511709977512700938633564241338702235842576368534026074576131116726868749076637487452316387674663491919188453148566721093926659295073148342093235646905736439104196391840079391385548617581563144695383574857473650846308928487954565713499270825957268658535696398878199113289378038714549337382984953814668151488726515317902650429235429217576315317566770909531744854919977342906119400081923378015603300459314736557978927518927880054144449889119376556395336492624377189658604217903017956491075187484897656949994848929044424144985374352155146853941017672695583629981781416674477955966281227867176414601993213492633872828836076579786764106550870233471198032905194341145085031673769201978884144035432206515567437590229271692500117545701796917099833587735833886918419888315373917125238750130769140034108434082436605063203917422132378579761572937835175211681395398312690512466456386213703796311555324775797484479610633852279323726101415026109074705753976445048878561209517727049778925631719601617027970879523694607368321804763236056809597010478248997735641744757144625313600688375814712761614638972173069310325942506177890935795213258598776097030186767399517354107841385301350875527889932011260531160423821309015466676990796805557411265697808330220670768201460990968084548053420459601919915556959499464890043606106165415478994360461345472830882106491615777208285304224917058696630140898435456408593060907116424628752533786587842729381349489202956419277918814515505169579852921492922207724945120076031616167163932884976785612432602205677638123778079389754504417798104863523548322468934802703147770320025374235188472346060791354266680682002934433386840028330256070785523005125212488950232354445171197651256559553486374012217667889524612554909088329734707489712999328638677492148017696677545338867556455453560119845947020493550092919988232895708976651119209620710940988602361328597505464697083891532698047865390879774584777294387989519118613483331458171837523040597987692017812205352261831387465989062296607941103884067816327930123932557073217504252682444010631531616348471911334726420707717409924226999597265101080829206525536312471800005966650041763657193755295225750507730392899643618384100093286537925461271537155199021727170589025005329226282664824265894604819223672235378142674236058570379016445323139844180870037795430766857265218904594675001282090585013884904543267532465507197048755633658342350182687246443804669384689416588228379191739705284828183604022715066710211799974217326843460630765446131118717258995848079048646806018509313295371798188789795632820341036548481457425919689897489041688733990079726050828669993384439203000646285363949231909624032909388609517323385119612555697189421623725602630566094176329040998320926823869678292033424558057462211936462348034510253438950278302685817582466554439424101165477578598987186068707744393882476177027408732129902107230393450102018076339639393197229572764164766569775035127665078047779372345617204439619329787013563817454770018915832807997197052426674476337036670657850779579009530112149752313991496487411238827546342799060429083855011884412678899038749458266028714063979903256019247214068542286715970923511304676104169223541932923076686878056650384225144573818561867944510724825531492543765637805433605889459295284437102482794843414830796249279404443439633811347127540843129107587389978512471547066900357796887715983549493946059764646995066061682996811195849993715070525407207038841724650341394169059005546926514760056664843892966049939206053560518978337131528560904217579626059435520016308031155531781558236478529820767751631455757802730830933605354543810563430904152841507037985526064814007045734450532217868761947567817148859476021072736859180723223781255073079130931185407981685880106488964862447797072824076340521420308204656737220068342480414308915533842050117737726658750114184458399358276674279404454788320832556654488489816292997491193414075369161284284394003930609204161917268816445848518267363878124185000964144718407679069998922250080933580645819946131186555360715584709751429350387838004044007099718556040825212832163920415404125483879419087151017309637201775917236710947710714917452554788007809702986212164064089987767270512926453410494946007727765179115839754703892074003773037113007384346403949920552197001956782143320879240106122224494009938276050744886077081703213349068353457519634300909226046250385181635702194574881913651389466362524452687609044327128606026256286969499677715710367278618138872782465737116078705310352205234326011850287017930799440084886263755503694121948283848866048464851580783542739702313480326110025070056469204049206325606377194583051746789172089878532586660752103077294772428666781414038530074925492258739001567698956674814874452285914058047898407699200973283093113061260164727415258559193541627599875361354941685812346902348401101453293761498680971914824958506081339750952543244600435239247661177451607492000825418474274638323953090727767134945071118491977943964872028458156122378132142685388665868043549552964405451879983227147051849671711521244448719852278546117510330185567062771791705009159909164934588627204921397772742272708182164350410914846076323522985075287308186030862147784435681527886754414272909426866452979099957377282829816514011518326366958767554033780041888527342478950478519267167202329761309328581546809618943034838121591155228590697704370030850097099308237324942894582876949564315164149075699240141322202030471083269117501545267693593417460063130149128141966862810238612632212854188329430446315833072318161608795534065927675631492830398951877466951170789457540625995202603830358669443014006022836549098215549405375459156741345096629942391907026526411418393011885109476382663354748661863996603923220898084795918961006567701608915893976440090638452422711483690161662341938185166647699565227557766529189608913547049807606738665265559670683121589612015939507719865004952193413076417473284020973751000291938510912038602120401065149944940396189762875770656264463431485760842196779988477460137337348856691214222139220706825613599802164776340175043848273027547718724538660519638546600869538853283168068483316176961324626377038042653304647645381831788473270363537939128094583692163702311857857785225717106218361041696163538741259573122162079058776418321161665379464361022904922099453216741945551708442299920769401544062128182736714683153233789429583997354472396723926587187460104087222288052969905564771271085923078587265855795671201877760383876368527963988468043965894330125810824387475880980272783844546223198588882142330515904635212393240645524675031507030379356351451455101421382726619395211736464408839195731101544056074524882614099713832510904879813551874240149392838104442354720565575214866620282442846177457668780275590559851002455492966137435136536138281583761286257448176806375258830782120046489580062177717597162560436987466446213532752112005227062261418559958746355142093413829023034349910724670346467233741997335890754819986291440840662041698721532661565153302004581925979343945903569956399157979215809585189209549319947807154155257925151650026614089544090315952462591804640984254648609876495056585423530207790156738209132362838661932633241416371650829114651250023221855179916995196044956783984902928144774484969282578778024874358774551889553892681190132165065649868898514313834403309376465286430854863851447068979968171319911432238778458465635249766521109722010495335444081556117585164976631781207059074978207883709254660341227648994741233942185283034657354576300269985741959351733281565247383116304359673567959542529638308087924543486199558646385177218591028618663575582182513298596818431995531448956881955175843892078365409439790344367890333200053154194762656976416711384156598397888031956807105062383592650869394029632110313156820845874008701493065283982964023320566961449683554248444127606073757428728460221739201095325544485842635971467093420267869095263399969147115298450993559982437476092429196321151642909152969062425131753256424327872936973777833512368455213267618512322946285879330834934501192298917846387509491703434483547708148231941659654980803214626466239762188243908020632543027958425697762575940621078265855774110634576619424248786460715245546507720140799962845007089258493008447118330982443217073812151741469769382352392526235777977550548378325812753702330482980513366525789911199840903231483288406216990026932350589955575588476630012217481603456020258777634990035020076105201235926610465370235052759634269882261584013369757112652976494749009603670997303127966550071874897096282545055339149469248371050339421611922375463005698447996513187154234895069895977188138754965817375846616372586416678490213065552145218633151749984505552767737177221240190453081512075254471427286143386889360801858173383654639124728929969201809100926451846667491668037726205400552650778954856274544345156254259328241587806103512587444867149620958528522991589323134306247039355009033555143679125487560726432319763593146899788138418208558081934776163719791277598626212191086813636518607039041917317265134384625182161101023913360128788771022265853912249973047902099603626546409336099303188520973755009476307025401147755291769882957167290274151569014076397246785778087209368264817407780215241003817896384837169423277708275473720007738064958958463274701519069562038932434009686574669561806785357239450312107355033562960697410036734588754722418839294727500054893952463486677931078259116929827625515615463852777523319057727467652951977437303315332603003260439129421350546908821614136682016511775354475169656346957893260062859052299058198990856382616399011707189170404437940945708116616874096682026493179499214778503820444897128251622404088721644098461555449981462383000458530384634858116784080669434298137430216851668246741998282939653122190421440427087114090574281228035966428761800861474891872939922076105128728173657838736739112058064986844750832859716584220556659620361927797216445375313570993164324610749622154285890365983543426738725434584675346303555258037179325428635212268878502396266757593848413697725253308203382569739737650548984252096097105375334019461724215309600886526632371604116946898447457236225006203097544064664905461210094062945327769761220499901452738309290720884873331255195716499622392553960444359607010788917023345407033369802343433627805771981177032492832227728545703736407651269794694649878930009892538306721938775806987448977300207208260745295558129900989332742054756105418933423708426453139670432525189059877096627711331583694934479434547314477809124454713148653256511045482599514734011064229535385856999068446258312137269671195446291186932263000355046115624251602045526488330201675603629081192921432751840878017452907944310779768914781998957043570573517015687199487440537547546112918907423720906190122944257690531668695328091117483905236966876661435353438820977363129368804228747039326378471160590617583030797939561224964388300921206872222695571334075555923182446728283170840299644107387935035477918328453615782488904275571185387101506472244668362383764591089370414126047951874646433540234908574054087656560519696144150302526285795315620617865154207441791952551564801535394222808996047282570809004678061085791606848708897854578521452023605422403784110509056249352573468338784160248053153935867170338446022143975409565104046227141555867289063272556548452193150241519536937228211003516075309218845743987568166941873928856410380019550083536090481675136358622709502808188182615443379926335593363971226362362178638394857241957306421309723728033672380557920030834042290540396779531954911475446460706754357801031283188411368166273658077252324311399020172809667847931089269065312858506666077519667582792794665708610350404008559966198262624205776917410098718195217379373421308921690153931043347009858972635498526329531161194425142102558053798083601413057899147821316278947256195566247365387532231997463546062818536174556310801012374542195384549080554031754516179925525556387939781420949054609748986330771613000744590714126076940326229662235831405690505041626450124649669384152891365743079541013176492560853702441748950175642128732911440874683037291484769476497869393593598154561131165203006137175998435015472799498837455055348390440557636791255937704251652229540741409120429619860175192650407166736736485358366725887077686373301339327227034401319202636101658196173443689952853033570354934320920076703533923462322552950171404283461466575174531805354250395343561303142913262800322867487490562229013590888394409174568058054196711925962725862435272670870858736087864071650414702437103605966907821946339620358792113576705749563495098856214654771889724686217375533265596981367573239665784030959235860257190248223048528759608349856222365575408185237662344095945855068645536003277349427294176281437829699059039794336570665678302211325705313840643281424081817664824175855168025000718468764452947699387886329713601028091873126547811634331183554008441235022684350572597180275552046563738083241040380888439766320532382330791972864915557395898673644909853094574037727869290521883811549302323855765723691563173273838849582833632578508326671578391657280628124854251045698386324346423603164338990444726200871731413076284527221990374336565388604698831013329335375196442500584074467096515002883424962100054739244586875450805238099579316247696567771188567512020578408798642905078460792202973102995343422077317332919016372623022247632194787887608891566750862656921854276456518015454310340584020208665644174818402899243883078649330522363086634971952570701423199037601041465893619019423014678676209487799411325202360413419376395652619957724163639027901217581530262317189035360943906910933950924127106329048187581627882734121390786165678377125779842642894040845972245959151570366231084473683484043628501948331588062363115545608163367395137240885953249315813422655061299947533938990533774392855097875959422700007309132575804708861457418361647873147315780218243352682395749025629655830330429547111497316765392354884923394036158040853385399506842479120852039435701972526805737624277388933457004972592825001645112145665237930860375900601702265114732493783087110158940054422610353965802027324906422444712470571953182935089623774240897458858104964893888112094649010051841704292482775783447039007744270330492175617524657878019951651249659321829316438326221770329220888256092557225786916698289785030716789750753229955546717628209357850078188198854657491812728181539032659148208947173741909335730248152531453190511540292894265706443664707105946446390854834576211574020895605335456925859565006718488178020037858485538108110082874530162896388367747121558574570501741239374379658691816551359459131229703149835852375721589476329742683839919629787459566660459119207795331661438227941695319446378309372216881022342679263033239563950221560210606870127897140298138126804119987107014661664919981033576949188249659226442678518039875978821705081803492547225657659608357567731279656936390720152318448772064812543577606251636133718801173297667220082284066523955762789020046255676439500520626018774880340070865619972230951241502130678188901040909060373871933959104385942899311950415858018288272744966413058584637561994527654449504198089994634597095625665767803691221961342433527369983359247274945679683098213521411959071900069942835437434887731235120473229486754854043249334663498755998341547623639954881688539032097867847357440706939610789770684346479175049351582652990310413106124849019089931084555022576570628425638859753332230411657563320369770171665041501711238213923124651187360268244948748025202403775873200054011032336603131257465260876757918194304556116524695425379596388572667366290573996272379595728904368540426726799335807926292183825734128211130426963797025458119895887984278505943959473934241577222923323588720253432281494065579660702345024541199758704178680943414237838698302952909685920096215654100488745533292250865554380143732253749146106722607163021655768619501858286351851209219977964979880344410783172108623834945897597421034363587724618267764473944963574922704657514577403211725103792714302195331463572767697532109738351387316804693906325140908644312998238504536764029217653136611152874951232046867241735516518455016515136758123894721799671921385823026281745967088746012952350717898690997726498355267206270291371182018914317295385368031646146068416327549927921848188089361933326871532821152588017230440857625381502522362174023393858583807937163537960092637661959101342873354849955816492367102246080854180819410681361185065893938594885930449457504866674146993594052857441912930794040532213009391945779365907063635872516193336968133008913229072427579268586945994768873418522107843745855263763678925606987262218142369410986932152512155412918450622141995584532035571557686294006999735103716564666691870887666654658034950514228053183617897194499950038535595164125978275846015041662363245657737712129057057256170112129822365100396728588045397475766766220327880249820384843745620903699835995445126732320239712209905311396043671799448075135153322804444169917519003159386829011087562023205132291472811226522497820107812170821339016669955345638303723838803419642716406370351002533558566731870357942941258677752059365406874724296591050310629804720665982370069122753542088578961439642238523895594231406070597836450672799929572851037092066550963326033530163457279839129578867845982431325730519452640273804712617421640119419670503569090844033433683745591668902965823806889077035496636879192266417112006661892766852280919046890703944103324795753496165112244202973306382932022384473441896136268892413675954175920600674963925218664382565818789924657707712557281410508602301471785548648330173817717134838262991499695992703414680070807454551337752840964332872738185950565440210070689196818627194159622934709378875509028110799638032509281358965639252406866059687848751163935777055052450975240086289268450619856600677487365089237974013356625737998155399097050353963431434389896755110582750616878420700664351405063465611498984876457180945219446266023490435744382841804037588851126618626464210053925226080134829709965179093000523158811210516883373629183570771914854212137653544367613987569568696114740137838094033824031146333508651881150204255655396981408422456922987520819436328656975174297482725895401495365850724925665668957024045040536288661260456787753234343777168910261099382754523842251452928638535854358738884599019617627080282241733360213552984237841721027698232836620664574679883275504350623396885990144126400970278412430414143097945582223844799832668226323840098935211015155634959769804837298589149133616873143958383907564612111307178188742657748919363106110528811246974557456649197256788907280463279167908496243038552177181376516959203306865096052984251103719357929303424752020349990791624879455094381365281218007228537274988816191067531583092303961496047113912237232057529770683047437222900042783592312252814199802573399459404054848396419589529237916806468125208971422219313180665132727137589361220481934035559978612226072472183585477077483864458357294666287858639201952686256361133060079744497334142668863226127134123487950879705435121408485921103699759539586669685018574715663735872021860817252834109963509864415402003735849563389164263255985240594893498317298627580481287962756026523385248987524640506441750896421966677871867853089388021228405103737816586783311863212182582429615490705989116804243457630073355290461628290569522933167218475700674633029665867835235266746805064595565484351371678045114493500616839271362048890157580296518413540648171944974076523891778941240097845217327153240075710775871527494399636654296000303170196241777396630996350514321510370244041737320695542198685765492183813490764197762687173067874794662279153641660085396052514721678173652532117501332809651891379486160677393576503850644564407357768142781581491488267949089075052893242301822627042476558317908052128735393911407678085448932049351666690841622754471789719360355847473007638513470200838422466222503753793077087208280501020745306260517974960636172181986557387669771774858078826488523298930786432036719496642421364963583515984136109117474131762549209415302031246966820051136486595705781849569122424143535537350312958071537827927509965636694677747251389240604284032693060819892099612617909790574298365285849047321009604495254757363125004298178834496695170841657133787555601554651159409556402473378150514958500405348280056758296333762727059962355111152951814529615465334831629825244205063944291025028928640548204934228389208023319106300223201745127951583603203266548981875183397258081801518464326080938750128483052834115171050160537908712445748164159567907726177748733055039376747372410446883841737563517256239165620095057101254950722214802069690549490563720673309182052391398283337825089292113708907663178601349215345684755603531906180609432053103371792212260190807670732249077039789781894696030858067245317358811111292811284740722175425038086073799289545188965807288554166188582578869801015433770559888568132037019082296760579558115982785259480898146005012709991910097266407238518256681240614819935941251831920579076708488941595828243595062711417779432840575399070108681800153633208532773084024979212588540260499955723525258064701517277496916913028308961387601237477732564961585036685836463148689281736865764988415489702712372071716953411531892851635654358446426024445132137012426122187584246231330977320603938625989889522084208565033657241479547027754142175458858396000215383651082460863246719466756109880617767658481498840947903345920792827751358460997368441762572523048190745209143936089614433828629716717258820694639038324340962265544845753396833385191962219901746467939956921763844483634298849007027076082178064594026510161960673821921738185322246293523736177584707011237017610395057697942030899242961402105011843940629941375048568164377841870690348862504097080377018528439583296077200580709852160600503090260750191440869265189367157513293360566597530055138757275675784422381119228924860513155446216199762078869114184898818523882672354198415595342618745671010457277936044275385782230169679738398926837268242332750170182286241374765950242744580159064720077537088390582655098315595254100713756754895478818490217689123255982708490176740911090314778963901027202069944452108091030774022181675305169491994958174450029642572389072959706542489222595788819553932064012537325099684444266685355684136945553326368478326605229247970335944769611447102152859193732319570443998603187168244997102920060259272564187650616228558707945524033256753851640450320636152290870448946598752796345283836718235203216357904942062192712148642310700148927902958489204592177026503949772952798734664238983507194027949983562102881119292703084408874735152899308823438367801304216448073816851992081535489089678159942238095078170236961739502458370596173934930681055981533648416862542847275809914413461327241310280364134621265944114010206183087651905313381820761423532864713852913182293923562393681050585700910346776974148314509515084160166648191922165887541632226277468403157521506113045561741973883994868956350293330167646254555934493663925508847798203843451838284621372646422277056427496396903281697528815755618272970291325371532432333298352629939869136220519234425645665522452843122183253665264328526795024010903191201442453187770354652355421366295626494074372605311986376411010592721214388574217130340660887566227525329907228937677292610559989996871276435432004260146974413740385471552416401603491871391098670011387429281734527173441452051395985595830254449464949396425078909270560075037328135468939010034168085538497608173367211568970893092195449174853906199501687985449896889251318825732915844634670383027107907973842550053241687511313246171073373622542206779758812727379023949870058206397137640136764552074140579250120866547784615031355928201503703081570474390910535867525419321405785310482781796448256966288786785161755814309267418766906668108926777752214618639939849511987119304261804331409281023016413022112234775345118215090443121573382894884277767520976227572435196223533191681568006305935122068008218903841206793969045707621459789580314261547157798742735575235419308949767926754153285327875295270849270948728623613989738441655925255083483122598964732451869287247909571596224827155062447108794891287527437137270960900889070319837557531636394728882514529663519754853307601914331971542684482183595871102288180553959049386558206702979765897620914662109642699822611544963465454514906505864358844946680967208369208526048499819470918165593006510545423588495859801254145623180187811166542554583013855028969343428952687187706579069977259320490203935597284579664278789526365576221985518605913733051950486251230823360747747819496641376679002034137993778915448799947699799729060043921643890939922840242311706461573050507237298429273027396548579947238429787628965234174285073580332029357650970290291437512927780620076645946206179573060608251099028603833946353275619603420982454732262711381393707895070937476817448200561049862597172890053794480330233950440870803799645937296303361218907501684852423032358563004610692582073960415238495141203706903978169163359808572784892797818622981121707636400294295689141071674672410064524531137841860671718341509509361989794635129319928936226063580867730596189273188110901623084537416840778431385795762182286200136240932057738481743772479475171738637121797105422438303488625426441061749400604994297826415289234300098821260680114724470439708197390162887052199061185539212237726362642082886994383414644473596573459795034984315268506778224776833042563275587451092420796818569946327093378031404911205322569858799801142805326397364775323246347279335396403548179325005130469466711043654758250371712735878044487707109079290992786989432409278499288796520382632159924145025086961899246348585257366269038503815963282701396220723829418106708685236498511602993629849239219640122610691959908959195028640407079112831134928365141609181147420952799516733411322790588895135680987396312040947886389205544334609557478855687402773668131202965469092533202474072556199624824036721358987066962959071716633290663624680192989945284747903882131987683924921423561262767028260532169106228554179400984459424216665361459563005396589585021124659934178606938526462295377063928017108407782596230406931722557482975238976497925591872536266006363379949713414906750383396679338791500879521276843435493286982134715125035087090613247265411829353943681607357549421273865724146163878904829042744233712261940403708467811914483836590531393201703527321639482049212869360251270732502928170478128018939184232445778423527108056378449434927886312329526452396675770374261037404604852736789077994623344609073065994763690304322303560074248700094736506465807335700912351115301905341129251581628379806428055880511835240583956759984926613049094571013124184828191433390349614816255629920501313806339793346835223644560060462454985077662625618513518884411773615038748416091315775625661686519163757244621423535795588605023205944712108200694064112349232170797896748006329059360700774200465177985535936239133392236605489477838852570045172097622194417006205666707795817115716170350328196327569570343906203928990193720139737993396051858318186764568269448496692007097987700971017684511394629395845921036999771702798024184778904466659908609354649795508001627921973795973432054693961763358115645354774268560547178431327092662774355556664018054153382683233097784747350490799119105754949232810537836486783270382015762699318533606329623661552153374187244064699171874110435467057552814695916957690331345037288586049066062151483067197037157364221512278589224678391992076507543031193077799988323937469517985769555498814166321468178050647131453922927699593935230021890536584717437193345030153823699115247573689135952615013992964922843676960943645296133814333271570039402722729398884341091838974619827221500084699119817360381541088167847486079348978761347704474855453481860721717570078630277711455204946173499565650002305266238817435225343668353914272250130305840900313338722106936890849671744691769166895355078617164623889764137711223234004420172614603613724193338116470450488845354134903192182767222376160703217713773569236855032492653426990244482495643778242341298048291553006658729790406648990468754268235981867510882357788442830026221993214995123219804014676326003720288963693246519679017902570899645141303705005935721480113698894839870036597083445755218092426541853707811619509807314160075855939213212181700027687490764690483113822024311158991001916705819492366234832664299200327083097077128879250558248957110891727756591267507745129484256665020383092452487102470625310323778769240888491895237602345621058914406267757796855401319439143602161402596299518454805500096112458041972665082613224027332851133010203093336196912445339437292880302336885281504568741333169266993249564454779166319265126857077066724975503619664038155375168285996515359998110126583527022220358245832138685644053998270084173016868828650002354849006797287172495245691462386776513973897733699075525514023873717814558886351466615502470922564623302807199451474102472426041847105278570505338290679110565044437513738008286887651718423508158352422240615350433287822940927992659876357730977615449171376393686157387476161804372013423212363008866038706730064532139867856917176376093795265198737094394756863813453626229801719840151351177752229520610329640491881440786757495416218709451588707948116522152265017130905419933489595070611277290925188222573518494654961955212744034803986943465439747238755726426530168412199243654101848907598712554683836135107540047047398911791676264954398842014581975927923555804564910694048219587691335737427295589896913189312848010449326982005295336358232954155134611239717106255137832399505588892000663418223884118429326669751569314540299645794999234095239736102385767822029961345236602996495032331706393976174354786346169811702887914161164471669433956501706335923482089391120072909387744174520080822773940385906145592152414131955698908356101001142320835070397149811227514801927466788123660672245491687448450398418188669572511445833897672676888635203108764878875424053186811926644627448875240123069034599009422691066052466079137349886144894337582259751651036931671749589591076255238369694027742283553162778937624117627115234280505697735875672111757268657412073254543251357760132690037647423693416101467976185841609284646748105476710233098036055860215714390901348013942495215024327179163910379596753101962646229030348111987487205546755813499443324265244299978547587490038294793307178051576385953760485908315312023131637717534487633758789055523369599772825127683466271603203806805081318033418091110533386670670032708096117301425340727666252973739338359260457121770200594168920276932252808555133318288474826505658640551846890624250227076974119105304432426547329503099079270338232142764607093239622866564523970316248648074799951214450555870245969863677435115280324105163744849596289633273015899755387507223504115315622756693492559674224146738810741542192221496021543854454545822137615146617819849669809133860997028239053086370938162432135663245984109751663056554215962257484775437522530293714621310561662900499612418361950501178225213259831173913022897729263378729600814188037740105461781882786244251324118446824739894790420789091205245755672479999370356141150512229140570200042128943849530095463362982031323404557830133523238594674428485786136755733359700578954609986684162129422428904258789755883013492793054479763232220090039541836911559459036895929644341541315747432720434973920069905282464662553120354964738156130956509914341739331720042056898753375218494543505806046838820900926616971086707054796001396742755907977975637954114604010931980827849784191914301463702522116407665540272674520969306230315821669234276905082087907501293184440730892020090355465180951980075899255418115091833309903607156929205719336871294776682940722227644907182801463179487564426889748364647078107353923671976705845674808187574838984356839677635026459238751064103193312307940713630024734413634594710563297705067273263665851949683561318560152266512180706353580355851189379305372709826816662789361958603082425027184574954373009087558319605632302909734982425741023569196056139096461002771764623896980894521211013871895208463093349540927593990081330536078292761118513182623271636573003738636772721959709216383313734991776433315540975838398113325584965069740608505355647305467480719821559719869784272999082221079865289821462009458740326455495145712205276365288141840221160354243828917876263558277606143562038645567452103483155889637637437946387318493844140359256224181610513547387294927560115911843385885052633539344916357905716539253194528178408608749604403834638399969828109831158530668681834303910145291830209312765038738246882576848348157211720660298815415115163849694282432385576391045375444279932993380899937335838655332583375304494436976928815072402471264375160422096094720641395474028936537539557410827023427786853954263112120454689347857579394389033551638733858020662157370678186554083960663970231197265569969077080689722488515598075541422153538755884548754290622353725282910692948574900040143287726203520257504141673425805782929022397283973655547392668873832283860925603339173164243566753275227688574324806374776092933181785053442548341990984693456169546496803119420815366291605412211508599193515191405425041499222597347078702792253021518666382118130564139563201342523968644905677212659239329151718988630533905076448054202485408358906550005866628486161467847503350933879381546116416154401291475619442017594242337040411052947208108429213772870855575178584011849582168916763425988107201675033623070601141104063201705575097767870457139919774906549791138132563358844061594130195193415945949923471686797326047252188512202262894531729296458718718208430856980867737023574626524197144806800784505959272050217708736698251924612443671803624113446831683905740796580584081275599797499953572982207331327988240223498577728178281179884044041411689795099430087022880950004839833723973416888900494481060041175037253841583534288689876502400021874634706017644723290780517656474847300339704571828439157901488359663875017616858015049406932582819313110445143898360298803877415746959986117374984114682784178664144256691668805356164014569151153843969472225904426086138436587813760757899239087478418759459685271367442934568087211680915077946649638721323618896780168411828471138979751457326409416380881529206564301497309892073385899993423689635520042631721872575926906863567626286286596553049595756105753913170718875538047753954352246972593148485905964703134124416067778008054788961273993940499189046392916391745580859282689473639233834811561391734839761380284777630495537546452765823387223639736164685673545650341877669172112472024191610345237158904920477010743891587814597042628370415952929239273031579870608123039072852901899474289486376034941176463452482056825851403776994462330895890451610426460763507600695908476324671478842210328644251717380331842480856572162246204937036846174610753475625071189339402007228033963183098774705649761971871983736367366670272325689199868272085755430957921898629126821361510457964871536285897984725274222160252758719588562702582971636828281852820616855989173183168490551160929131722136889835880749351659678048934637702473481099527007709960542245068455997385460112262770679378844453313597331765687665540942417743698040040586283417119165941331286442127534893767445017839060577741351652317353231667657646656884786292921117473410473548678306919254551594414314622700268750241803352987066115657560422395233126124488946984849013566383687406773029668414260451803100935883651519250044924133600001413198929184812114241863576917735304454141769107760547566436162051764235934463801091321340065421684705588164173262203990473414965850896156936233497935481702494904588809972745605414955458403707304191846009223854324799074341511038854609597461480344391779785728037341534843757722867975512049312505576520681535799635360767059074402955907052948528906337650280138836959598677251852810774570323518606357619981532010254763542838080488321674207253897403577060445195436821363398114215717562421313672864084338274729848692170519965725004904346881686433858999444582833883280758451472173820916113022601376587038383181297364413199160915799010514566939901304294710461576024774461823850112915621825955292215231144554064616757193885386752705192766633064149408301283317047697326743130971132132502564452912022120225004681390319672895545219934126602575784386002118485756013378825902348951601959206237654946201202929780035979541507478092079833986802661418344900933160743661672821526744716659876030244275074812935321404598777196938610692391588288868045192255371335241924085215865639355500986200493850119601882540648475332917143637579074160280874464449514969099550549430173938787973106493970751627828242749567400667690409260552982341636513175910087860996811212107919807085349663470653182007152195922066108116000634183974372513455018794748197633966258020863758516784209967565346197686478034464149446417805169208071066675899620075061919431808275507585443094691502537772337772779041165254196874729402766293534635705334549078828393013484082856005507533558172289336520703468457303080972575067069715622432333112544335698961034608717894000867834020605988393528909167260989515826784777232411234590906627868141904530683424051737448234635952148170766391149609108496063275273062208958386292965304466873978427159509165153129470426553908907730404028773586539683822152249863950369720669625585461010157985503677254949397165893583672309522644904077665989387855917656861010222203977705428593044255994052127549996986725966732548910576513366328138004980770628080657387989245625080121978174305074059150555570788686418895802671039406134561039423908587779726791758647381522917783714645115235313935318243620328186142282106288974144454830219620613454294471515600215547660163990288476711824818747478322393916097920232486042235307934940756467173179201334669482936442741428178702302260582339009449016805573456574454972623565472782999689875856895013761921068532327817918694145073620966542002271948725283587658429634800698521039568509478470329332595945062488663873039345855729744734287141104362876967851476551063503968349618489089510450020119284455253321374164948695137192174674922977521157827647803457091360059413950567422686214106493214514290424471461952561769111561450130799277185252205652317457287702718592006843946517229776981937282598658653723301328044306530006310348193728365883018364909895072111376471953557590828676995998543093046438328909879242639939229084502865739041508151138046714831300257317027591909827395730639834704604381518076711979523950787895502825516372062883868590610508516231227483472701340924244337634841677965004888030789697752325074280437844044846936127463323001535806703445705542917474194801576038606548831071765108963999107717004581930580052591490005097308181880090427671112717240014147592887532934197652912967852351541995860121522481826572534217778922091801659070611406300793988753036708179622064905680205602303739555643283907274701819491150062834530825808996537018307417682152613048262252516661326264915518486532844222942171720131657859571374159794554958254076082167292232515848586881799788114667948846338335985407207658531477185709614007663541170879090268277694071809393117915533317394862172080915843231787432736353603198050451586982753071923356260463139300257530770895639338179168358519812470145916065129987563670349248203813116547160997098371722934211107457997613229931038258327911139461372059548823249587276763364286638907709928057974162526871450137483156185130908345926023714793351204887237924404570175461979571555361560417041338271418833733925792672678512450468089739575526248139913547993607448939789891645415810457855321782352533453383414957108001859109653939492922527160346967714763395513748767391622388204781974072400625254790840163601506129176849856368746553364259713909733134164609471146379915346862463998846155577670866706960249810236778041341693590549733959864690195250157363015839194457072852770089232189248707984645514254595844792732905838124059514515783895869279497591060313671927339516459818493150971197491225407596701345068323392578435543710194525171158441195023473205924480775809123130589410200937763083932904341986776905692273730948132752927301878483050833689985515524498645088734477179565184291676953651439294063333644052985592144284844266062702127007315301147991151238857166497258932864038098468407145489246443772875153635422685019228822614856976641439973234371861147263186379501212497126827702974909907529600221517730595195233688942129233032093594162142607684023776815289185660068278044355955656693876087839695834421218056790918057000977791220771230066771552903137291913528952908818813469475560381479659081675329539628712300938950076537116155553847622754337853321324707717344312119673340118118555304570479302963885683546600060544935607314061928587434051941038413573498289514945226526482350522888315123728450994407915543302697406297534434078763852198414525180508160813652721071613183281557740446362570453680837268910871167941851602717665376434110667236355146839200696372941560613523453355145290961445589409924656761410980613624893137695609378399626838183633117431695538821677365746875130109749571921239261677579694319091281461473796720824854269408241559230224555426317052458827946021007289292863839306823229931097100620280518218523883416021775111186396174970124795933117213401123684982128978498216203472621831250758865100883706339158770798466210666987101436052076526800767859058110635952724656608836504040685779499083615996224704466153724144195916393821916724715594796410043381406853627915278378225967709203076944569428802340791909741110216341723352307043850802407479938758961997947426134849876823303457240227468755714946222292463929600522562779825370025270348021705735631737691408404201458590051157257844644809963356158884509137234614173205857953681558648112131329111068301664197765667916433137647492429476694935442198083691463548343401913676535421303086850697178194102417669226160722065581452936685572353511613048247125505938185586485318644602200787004655639402103589688897791932756839546458244847052323265800425209878238591381047065091851805921427679945401770345015654796361799864254909272605679818289369667447252929324608773173764411531701482356749826198836322025800166387576565923397199234778989150469899896709200132047966540710283796416670293479125031477995771756051635647472394759222031461742857841333678005884139054972466641012565960646125522519927373013043481822074536873886866220458279004612925022026144350545939153919206771155519557047605583201983884444136558318576064724392222433716158892509622221852104247350042873703989202077327622049381999872849581578409905802568060235982714643904750578426733517849053460773069680660403460727867266175850079364925194056485476779925578247092890738098148782139480486224536470462522161698429992540314898325255712748474092788889152019005080229835268449768267133861163187168061714017049535311130367244826263083847979703780499958250066450783287741138679857474405618725303560054419315725172541906860987006016638827988445694129987753908452654071846586252523860760533008885038716781880613485119036555635327201919978963479846401379956924609980109784784203746024350935607185083282943303229062676165679137926721620313739636791592947629545258249484491352920713215209351085147903334810202155642807529858049733153702477792659892421253238769343517820060164858829769979620938976328899388374755136070199238960841345407797754565196883491679722151153124677561826396022189556913396940201313006376636075509549808154424811364510391700197302646408903807938891011884995137843520347242029646799169170810716945224097524013908829548266286213252614091939292601900591621400621551495890748707030212960513487122176731811058393311972385907029699010049928853292651943438789634441607895585916422869895182590517163075498408959438036638795043122080467110904689440026205014127160643880029116590404349120809746882101866872135979996828047855429218923890086186549162586771434981032687031341338985529392348768591694224049435510486496849899938615206688028828003366698820552784521443980810276752623115085638294823998540528847998412064651984772617718447034890340414254425012622219380480982646266519920299354288142322335623775989537687037374676872187149079905752203719254936281099145896135830479005947004009156118851861908447581817453577082659944855094428452168765712689526205401462409934370251839817446724255801821295643856711544925026929911029268423996190826904563932963296728008247242446889208261209357585177427549161002989781587262760598452231771616100356622473675245112810561864800005367483672374689630013308380577996137590712462128707025650687528200141778880077831745340298387451778979868084188774644672156256892441038007830593859605354847051791754827872556350214477006628601288552795365577534901006155832925587712334420111184718439949225941150785945308076019388580656772966715088358099927790488800141117963737439166895836227876859708870837740921506325512367612245364230595853105667376578898959147150651627074947021607399777321574535002133001441823401146291632649809546065137790706907718729029624095133609316997112913735794132531463354024435596728082188118236160447709897457436425697091480978370224822627443822501057925699934567080109566922365842929153970262997938079865694182436539092810391555169083483379954577354427601059765962589074271453176665328125244104265138461782362388426565868157601873615340903098982206939250278985746747272717241617875034705503010557952343919437695964706522868537640758711433163439730730656286020344242451726283363034582646230794842737197516856115329729798825629418572787108744366091669125775462540038582232121160208928478164995873392013891294969268203271601652998545121186347687515874327158733606023353640417857713802996022329584892784523956247452468099422768437944857312106567119203886919355066187970919081646478648670421593047898564033193329218518183246094665150708939673062478648879533069781843651588967475967356640582536199153785952385106303831804326705101830261229743134176562751279583742361131917504473885312435268874487413860619681521148156201973405021030482489494547867092245398504539011622989261926926120919262227927667873784082877725140338163944440966876074787112214429215281303520905867367664972549628194382118950923129616463773927594683059808907569901781226770682154503467290211020704189922353484263684398810635179017106936377246094864481038378193698092905712527649449290079237036604594871180083139534568197027753030684914565454567751588485719259923403796032893928648543591910757664357585993926292588050237503520019546221299024370527782007609622584671594732995028332142250234975718662155616537745137440926830222638550022222548634684351114060033139009388105090015322162714420848598738956793197365934053795194228986678319512289835923729134526980357801848485796448711493100808805097631481814611200544163070526943793246862483418906699451291920734764577872128814556967130460304835702605498164315053973431338389795226072744114304832973752168065111280333017331653087537075943553715888305598357768254107032409843205732867568226399857993996958092429525802757770054865896228752556152174263151586044249659789958526445598560346792190865942941148248251210744836423371523888370597602602209547696128930730721259561637874996441053086250060355633708510574314491431536377588410510533271919291914771776978110940281699673750230952271799941414987423860967231920414365843572847956124522808591181416933441726435435418020535465923698856375672251528206078936059509325348467934490328815681860799391389955088453482126960594986929529630535361995491310206596426669962241983671672397423334962712886365115201598647761212948690343324193157848198563306243376072972463494184535424502427018536963222923027257113176168060479320103957698316423684003855408349120635141826721584176636046928002186498432311951477378524414068052575532434808542296893173891599331457330687035324906274986750482366477562658208592143544064280852940692448074943800403244305061144356050120351658510375167463337685274716893548370156980761692165876582458452624013712458716841322901189481346388504286715594902413698864052098332836827458122973494539735338050282686406399170061657861826071925259700610395313217316117983183677331892186491738341572619147752602062512624910753303283547488872450689261727957369165126372500376924466324768442622525370568871899630995667552725364996508515864320235154767874294055475399738902125346022258323708223063365433329672812030897366957126845834928537446129621982423514442230512095469446051785857090175521889188222736795114252505036214974312891389618659680643847804039099224543533514934330334509146852003364771375183872776484989479770373950152537459279797426443080205627886535245498881065570410498460391081183959280782405009394191225739302279450382611870754053042139260103232376704169441784296493227018018708110080393157175238097132890965286104967794358296332164667275842423249558182647107545791447415297273656317475288318086919063079567784016531193840753231282447519761609551948564335958370603720377138210555985836311866810111019667078333412971021315142111225416216097272222079000927336892807091691375003640630176360273094946126131482043367688227082242702154529959878152985524330651370629564962558263454508686673941552067896257975957607414819188269131856364439345481441199044438730920058000073387456681626187643845146685156115983160835784809620231607182935410239853684853819627980281435206069829807957910856823999706145922323995432153692330333489082441360828792974435324390136066635328196495530025719673764633151046390677054674889548151108157165935857850092395939554232260014020966566649386695383866373480178418486901176289531727301552059628547835781707383146183781792981827641393417554828522075727104682339394799088815940434663446599350742176710829650085081550426633679439071729323686048827531844607695694142366543836994752676876371428026456746994513740565497203781414183258286315821817001042482984139672242403276659415510465021561504433120196920417928484225788888999230281314117256798563645618562000549318303174973659862652738179644184190532226948021209191062151977343889432517702779394906809822374366305924080226232271376474926086334853030726943241300503198127056474243130595873386913463633271807171731641322978655429604205975168611170687546168046622096092627460639125165422012762173494026644445512046536275743323528106381022520015264997321768295708094445052052745856185134441660948433444899077595338888191942308918653213073436558272532780120876114577915156318129235333858418390046080513855115331510746972802507963520531023619174378867809170367654521751435540027116408574755036988083842308639142070727403935056546466595178640821946771879917074996141435348924880113865811098964092550973851672057662674430468407844992973620088346190599128963310003180340786260271481998668095613474307021059444876371866449163099376342666608550685696334559387057132846072671330103019919955610296367868336290033456399580648999054646333839252199684941810873479594911925085659255199144675749969443956144804757176256053372896446093152180691574662651621861859158569287384429040802381842835880651398871352996918961065460462828748945019131551031165031012250559924190798625311736234635617280616556859790678982605415194237482719103935945587945224686506964897380647444149037538260096910377365850276715241153255706539615489966460022899734542407804620322543263772537234930425502842259780307991644278436802778184514243590627890517300885530029399907568946346469287966083753115440902551835065160025755319158925700099727498369095293443408128079254107631646547782349568189323972341882532949536093538316170453478714544281829234885987581070221711876885646642091954940390876648736606018094363083468062471721319206154655701836814290467320691015182709502254559370923528611118910344589809520190451981867220605905794316483193865032162263832454010501959027936305913734640760592965817293768858270984245618602085367210579039613625479342066794861562823626850704448305925794985776058219430906245807833018815001718213421787192989278749307933852644132305240989682477913773156662921090175636607167477618484363930247550378982434646068131436518861488298504653685527129514386713568189187799620720417170312861602106171133034996439856937287153738581091923935482888511584197638518047465265373748770607289552812113481945471978249985928538625279882876384371232008955992249303678140503761915831244316383284116242745171867362157105139560388631195998224335645688292893499590585513657151131016296560341508827577357096776255798816389303356254568106160787994228758976291099634190930637326822130840530227611690444657076790170197196797175520574459130894419868388393567026813742235423747073552992140247605704849959875319148028483615456674879186376612680439339046287849734969709824593372432435592446007151164331002637271517516968471035012618312117261370323828780450770484222177039104738647931686914200519574394094522220136962627490590965965665749922434702843527173551239374631530324609180873501463588557474546985354185514213716569646038583216969405342488993041439899256177188502175945963439449075705355067221869967700167279431623459008773004471586382144806939872863106645548755070967731275834036195083293630462061485416912823877973009383147707153648594561175959467432308920651162392163117305079778138879377016099641883505164523658477290461627658010747912772462465196349678058859887315504357249354674598774178753664673596115429880137535798077702701707338817591344362394275160538112747656434663757808406615527977759861323741086814336344717952890781461900816296315869593800051865642850928527712059715980371609220080904719333343909337375660992516653285053107383553362628923088254960440283808504591520460839019566227213820626229588787000445080262880251969055791452428742304433507437428609562983756836409320586190719851003240691902344603589457058322070537888079064093897408008043223862710613896447141337774677017017304229210122406264925249436946096986663900168099674247588248704793759094762782862965494896360932792232172522930905341679671984808149749566141425000982424696037623053965962321374308962992110865893033154340990040684652814409422032057381200290863018814673444082439865475612885378039583055217884504716277818775344213887851952761490736222002898463451384733831699322613908668897281080272282348537765175615416072838373146486371688083271529505666998609286934349931430347937209434231094259696332440303991472174036433841865004846406678061162424496414070948571517162451036364774550088212292958296929640444544481979233903429607849952407653280258284627789774540384711851804527337304225095297268434016187842833672757366225575751870319411099131636387957614213286145356200332298774539870298001582548945889129825674166212228432969444515998508451097056662661791503762014423144838585043398176889846889966286274864296952878302984686149119544397828640484663304359222337885574587710536932571294332730783107041899716674848448590441070083614137714923810159247175277326968698159253694171761484579676924781046687582291400443076035668897166136657696607873993364026833420381680615958956226480027259534348836372390177182562757980993472938577835488790411618316998267134477763467671189424752749762326112992445447892825363050044917498593610495636483891697793742861530998898994342446527801317587377145300455001604391824215967883185288099555528254613090697710082109540687676820685198658108218783884265787788948664372947855442677131787338643729636088391584130364984751225936900985317474136234525988415550769934349159854373252761056585027352565238847715807778957817864125333566658370364990724305721507339945236573986262164038078811090068542599132032131855331374351812075801696549857806233098954739047124590212244031144015378045259371953009218273313204172106505651456043540143106346586000674346319614469888426012227283208062105758899307361760505508312093989397086906026384931725328082931308496964460057577360712403198394518516579330581832110961666936387410520222391601947676864372727102252787276030483617927991464908379179514781506264057522144477305912301418299259931210361676214183243517246232507276536633333450552737598893447155822306063146326649619976856276643309931603787641040060179749882750102461084771731609975251670466896069854008743034352601021398678234559408301991465619570375336603863771042081067413689643741592637044530950838001637626928960284800252104475735358329707992053221270545781156149270829220128596562328215815985260792807444833135130809009010645265190112984841399725255821401914769893361939283817267633038027387972641207010684679275066747722321982986360517870301512488985709942005006697231715605789857975916690203187491327662037836860177432473270443612139179370238521130634202107788710256564585005002407193393376485786425180196335401334398149251540041620394143089468399281072030515485494530810828507124104223309921681118559789421344288764111894575876684196306172027876277280276587272468715670013349194420074934432526305319332044687601446753675173187581539185090928736656554370579790731220956027276768739520330682597118746438630404211757275729837993463908366838732963016646927023851281955407201443505715852601441243713692575668505721657330932811504661591040752269740637484392047497916520725725984587743477101023278235882605673763224857045512853224774036502630001888950497072746680589377656638976688318239909842899090040058309972782494074232571478613738728350716459311406057233146537528443552513648962899099579239276400658254750758564755454306325532589963875017246595965181623793713156289697394047317809411458026822940747539178932806074184227889734327076138146399411789899792009551571726069928152140261436067159109234401020823091537600242996320383316035808685768647270080471490318012652166424574845137896566426611516827890642363670720874075245239350964504338674296758536556738764037422258551511914571310253081295720918921564321171706670420286826255980277743320096690102087887781069632252413790231655150606133419918790192315365040881979039410983682778748675593912593532361560981911928267281807694534138929442535277682281122509706124857224883794912718498399308685228937326087755710028247880206600451050449246469080803065770197573496475564745652695770040572870184726092848212826190982895565487265507425375729216520042620083023037840294461885860557760328854446369937988216355070816248501311454850438653156439068777384532517429628862301667827859573166118320948417407932913706521511415321182767585941945018250741117239569122006593270724996973500484603705484275438588805826407934915462010481172569029689192517758199273614826917769564218198762947788502598490548153401734654434600315165151372774147504587696368644674851833576537481962856630631558229495171593610337950762904650720466285668186685925625653220468943304127271480740392794797500060397096957173197581943841710080677011412724530800275390963843903667810422039159721003095852837016183816740834238421698526630025054467326978282453019716383226011052056096703360894787137834735700902585406845027069903602384370064340193102875329990136680260028371748398203076463448770417403271678765740816460834823457608279400041493156402115687748339026749178686108754188951713548254007839803547947308247211489270452584514376783448709362995916329119209589367709960333998323149686890385877520396218631825377136423735090068080897197929211031904080319432506807518667093353890058550602559380680956046736723875763804705577422265253945353952625868121836235360176642261040908452868377318618279915629862864822332590032637005302695639925655397760803816156175965428089080596487672200266179327933490152266362892644494506772108954612575602047777118500428594993367281661887945748969902827900273352052273274411874757300044391544194381409945093751311105765596381858328055415532614212423408159130749733569567145239831431312545806796483405908950685586742293848395223020305666615755022487661481683501224127824970352396960116941315008159265156228504856607565541989056167452125837323096129321342528719848552047723980708841878955529441771755078189358642305827672048404628158801180043265268154561147991628869434007328003658862375719850137471392135870814461248297580213695986047350902017366798608957619628754308403578075574761701087304456075327908425772007695752283094727851153709109815920231483739775916231730227468328828004222783187536786279045761261643711715451079370797857676541863905920393482390827859247462865015023262526711263221387531840535541802237905535494919737757631625218810975004381559316459465225336654473414781279664894974149179759273840520755988226405593723846471076977887218285538282073706480444711481907511177172297690927545233081993441088123061806383142624574191084489040160158163906833266957639976349997527311249624820751873280394706436840523709507946551797343230356979742778581403418728710565559255026497180332905301602456711170669336759882833747489380588000481650615151387162321681526688102425915593889975417869772886981318839202688497007519978831598136339697798086728569204883899773486614529659455860387692257681018069288047898427123575467602118904701758554761663962731816487123865581683080415829788820041588665887883089088357676749840703438332177253312113543721634008396618500457041178598119722962996688589695448823160418341827235919997856912301879344573763092923180490410604992161988721147603513773426903462697828848431924891343725791750687524649443791140425948476883833444331430072680201860668211744263089206201661644525908034034613626874464847285768481347392933886383697307084234366600524987670076708180193299622601296360399605466217447676720724209550338592322299221812057853912104188033787603243642084602102078744221126097315885854350701435413751313313629029837738198142697211956557796204054497549601065774682929348871625081118434388172844984373915298753522042838137133621683953957742526469380048507295054306702120208705340196276869613447419082488567011634421065517899298658871596060237137849982759802289125179900319728008751320624042420955066299563602434459957412651331093593608943310491766585134722199202456948472325764923692299786754189585216877102891909213005909055394708979043349203466559235010746860025647524752733390714321858598956315354022558280839707748836573148856461878468284931766602744108860707811106930751909892670523041627126557803712569367945858236498341763267044734485106733578952309086724303587162412565858829923100597646119937208916811380565550899477356287691198941193155879558967993746101757833347628983176792859160759229893729289261300026820766103021391583740152087140393148730956024082035180851701339309880054518113044728017268105081001543034252408280476772202631557875203371799949246554278024187823520167099578402204738985868959446516351599688665078602662892357987786150676574593839672914986230808487323793920535598182226037300735668253545818665843947635360855860673000902353005348841968665309084780566404149465691605459211330829931517461848989836701024417850480241766516193320312525688218781336419944886843809287707109409066656964572172694443327332316222189306569140772015887391063879390069517033017109359521677996819012525483204060989439517774590196434809518878362413951372746479563090154634972976000313234130999738466439615367352309444257500837695402430281129092744032323296233686550199733111561568869824116581339692838187777171539773398009446216590573889322966540461321538665256058361894841901869883996888371656487793901468372643712576772023045490351913837962947083375108389565692430777764271959176705315372905522971600042941730708655273824005191019480250691544637914486031892991830128849031742324272222299858603192467800902723738185564982952649699434582083906323186131708317984551479514174367228752950970810884966374836469333406067413517678982136842949488383570242447154293122501057726524844804466403673376915358472872662731309821418574529880883913437686369922678549965480060462747865819430170941132869141827563990932624465132549784606128810749531355883193025928918825799981826608420312323441105843512239215473913339319805155470538753293087335427630095949137420170774173683677519131729336321020403197029932403313309870341156408232541832898009121280753445734724405529150422377281692869664385839454798381511859768197999743120246756531543235909722326433586993403409238486913893997369380893904071444171295037888733716192270187790775945158563924866356690945534893902796341668599555989063125666612647244378092619380969257777842564342538147206052473838860392268227988444327660061715957106941469614632534418626904323302583063095183354161301638697032116660783199693973981622230116463616471364696967679911454588849789929216582708046064447486190615705319325254865271663138807590436312950911328568956925537872405079666731275620726007821424981693200497979646396317308949407821431982322683093393957250464557055197936316036646278936548279911941005038320511486094878953383882937287460364148251927052576908261582642788053413917283712370889609613567778481555260230066428727785174461148050779998412183510484540788109686564448549253802775044611858604962937021331620017891327981593214215520179946602735369521495548204091715547702689585236602926866542943584219156949145103599121124807362731988981357696016383218975451524320908428154888060262176444945850072545813238046953214432026412870623756251842234829686559268875530008362933457830248803222302800879690220442917862623419736453679484859676530123997284904745899083761589683116507004703064497267228074526104438868984584362305835315750120543043448884788026443080725127291044721320851597791696694297060327417338944404931852705394637961695085558360401341178302630253101204911417328079586705189410429193964870170000004728174473607835119115871644872924685474161194382211599595924700049052175572630801652832749275550875159722589325964912172931038532308837729584734544928555512197326907002960315358051395571501704488356276061488928973284449462474613560977697621612109685455861147823758283187524874712136876965937787676986721526137739244318979752087274399343647896350961716235462586272150072123634133194837498815736589873993334551728413107640351538556744672763658812385457016141650788657241729444688416288822611263781317431726219353052321147960167178501570119929027178075960909800137644887507662614209506214848380022345422507261249117674714903700758021061957195072743114764583943827777793946127337608697928888131964524958857781864937004971289438513926094691127894298891438586030506479181810848820518742986359021459891506157424705902111285023111097538939712901223321406276511673652922571713179932838931879603408970214184460344943871163670080243225725942485339375240445638294075249142882681639825899897283926313876682469291773119543932505013447449680878201736386670055722778392203289726558177461033765014984993633801335336883829094556591156798449048431668415593421596707649631915253834420826928896037139390361268129090939965420990865576161846923279847595127713685235910089999895943827249597778825331059148492045941405881792730009688966453702556686654610899560691268734281775391951731238512023658864240231612612921448732997083586028172780279442540460899956078451900598710682816653886846216601055052709348398398017228252825633430723634297771415231379027516640489822013932144382667223931307784911284108616866247759210762316486322339479797207494664683289355884985141828910298840834308376590778424673173057306075045703317532932143949184637838313727092550205877625781973129282079900238034672004343047936191192800120463081278175317548950114451446700997768251366376979733468686002635868477356826333597422910285080083523394682577803305870013488745615325984508147878224597001384109165102592788074043145943104822146093588507268756311617376971372774814249820629938474075860410506800610281391979630429684695117456798899094997030532053556957326192344685452885272328037170634152438581752065878269363413193346149022621484689642478060292837721352711133543588600874654658395193250878532021750685554583444520148110400903729547021208880700908901971195390512129265605870123795156755157319944063459810129289388948043632286704044297888714221007095972457970227879355704351434304985075739000620876778779777980896869861451770620376769994866084529828115559474825682233536052321693442674748748458825607653520565072731314301604886551721316661964360652719035735033342043062250357248442041770718839387363410402812165288007129234944767446771171958832243626009103523141945681344558254398965090142553891323440164506896200618331586432464869096965010541813302869078457326184512821383131818624007454326861323789726005696898064076821434047676367208820250338219927950687319564753840571352669742948109786657508518107012480560607351242676951995509655117295367642682174529634285749057605674374581546780502990592169815235544785492278604866802105358581606378747619786306572523140877053052153069227503488756048372434920625257553463345033172411012908540117194202106144050714836675064533548732563040734480878163672225226341538070637463690398668146449786121945383959271886382206148261720178510184757666282152162959807860006792070144389246703742359010343680812532613936103066436161798023618023116687335646486685303042253048037492026999973399521185489769240037674313473520530611927025722538883828876165860690762302613849629516865792718959773542394476320387862070954986167232257643785737157219704716149586712373733219335174327281632132849701416940696439691837846496345853492712346845856642164110743297642203709531309871574696378793724475140360625727629526712521114405596299886692265840633696630524780358059806775978857024035285387718314571777222567968782594524342080918126677748403880564331514096564167273192957955451794859910060326981223686417341124215155607031360731401506255800594952222093679476322274199058070447337981600759972280787411236233747667607803589521434225718672998683171667364121042407481577543170914761888674119667819493087750534757121009594858903714428081821941169215356416953075439278827381262922258880580039915713036833352016888894241354803850165126253767675405049741163616934322637646558894806669317790985352575779061809893533343672468137868206664535784254623869133658458435490343334821652049883811116861808295553456285207777878326733400580076442438039646406049201253790825661275935391774208367920578885524538575312463761639582302443261940966125828977685645879517976451706620868264107474397088236611918828966439692134508021452762042435724952444426363934168286401737931085823285837712654045587863712518903947536253636646999725318191748134376974273544492252811255574525329206680337706682420772728353923347349002845069104915293691153802431432057861019298576695564808494730461360425112021561306117252784090258505598665126189183625140509927803819735627012921110371522189614322068397854446724796606281374970867137330930589188584985827552325068355978182596716860831935777760970320543642753010877744964066840706413290357645473199008287204432314112753686122762767113376491066801673615313816120053614268007334902478486255278835813264207405635468473848713992665404818379245412342145735492437445195284093115952118635060629888671882133291254330340865912165995948749062546620904506148478452903459416477654865170657234621152941679141027046165589192376822325729165831040017425069070121591114959279228517153750794026123420868411833523534588929584502923692932656003279280386877236379282652901044254245676705438223435616198662773742674334689977729492075422843863218524395227523724258331317935731638664275194214490768874714594249486872317111610883782195355967930547950187973433221434134341731305169126740615074211205348369103321057114084540534398664071628476279727485513453965154365894516964174136130733001616465385643235756125848087976770709191738408368080447322382046501343387137984377608894373477525588457500338772622572110207343442387603982213751246764632626336727723202573842552698588134919216681736897040288107475790004719446318163051290520455488301669316701218108610458281026803661340215572827311736993579307044648493386961492862915592859673320323092848725586082203309081560143726882150115492060147689621566291696833302447981264452468777444395325770700659548869834585004197601894215342938639467959837664771098415789696578647846735311272238196930810323917600454939150983971761216269298945035760726488470707900549798759070681202997367045727817118865791447840768011844906737812108614507772004833508682058231151566083457443556777998268888320209379247506400687028328042531159084345865656237496511965666452108819837993458851525826285754568577728770405385791538082956574479630226671178789267203704089342752275984144059092171077419572620624041863755977274908389850209267746767993065369845289519349379641713005398515896949925286839174221360322922305400995048463574562353086791021127572606854695116203886202464744102270013163198538386122473523594992650278206474007255432835187858321108442944249594810830572452769172252073144849480195959535255279264897253388365658853194250300162954787191276133782185067408630319897601488102307614960701722773520116810431917897978024356900957980666270247503493778506140785057820662680411387902843588734891231178891754852347961465792699579305783386946419002659820879885204106794727356240563867430325566875940833417362227316594216271158587230202108555486563573578573307363535621480580532411743987154193002660630742977592522445866401808807675253855724010197385643501313554718581382447117568149514325155420359970643690017596620397495057756269989978622108825155052722772209537040366607917885372577957202062865613155797829284979155560453346976269590334983198577742804165865309457144599684903860641397172022498763003171325271712684258901900030359027267420440917608314578274313618804365918877475885802966949268043296845587528656758075896676539274786073474236772752556872290421047432806827370441833167537400855829675709282188538672617534432223022783763347708566200411789556101370407082783436570039611100911492163352920877113656676297546256979810814570907836772796022516475389474304185002371632800579591537536356701903630314763836184496589022535715147574429018777291950932262747410944645502046451748763311023536297128151345717023429540806871468113884813817012718784048679284066129176905627361625996225741951219612607008489949425942153338392169750806751054451226522795671585638413624270824618571719129424386379600247786824994481841660040080135691187125126888827445402150505856245964043697165813036207944243844924088021764340472338076613756130383359267534472965527605803687152477085444129677886613801999169839795337927019257778522707593526073225335524769491777273657315875138884695874720265681065339081897756801996663632114019868847230124838744765899543745024301189256584615575136580208691209760479237238073997178718361497811482531580338348088406125903821071013753158656018107111383904780941550354755470137602497790785865382510836132764250715409284262698773813145332026256562537731613230549264665137263103898200524988805149686197086242537333473490601713857316259187729825352331041042095731641597524110278816945946301712318371813856207503727816127298227992092404548217970576933593059703064776119749422570452757132284065868377239563981729053908513053282161971394523396798042319634762722753290299631536880500422298803166733868261330493577995934124588935601981416940205287024639898983609615864201541656953499025682663942432397308348865234258502895558523868202991188100259332099295393293865677251584386578335208589279701231803620950514882555301060370869611811914860798007755826253541377511099894264926520148798559861066727019266691432288336615227590141337103783948491081300947213508126680249046432604044757566659105231832901994151659098717088083626874152495625915508927086834350528585518308070285334497497412380495498518361818421426998266283940228739825026050636245517119588255423387329595342144243894855537174117212661541924957127213257250066600420977539320728060728487318581651564352806412842741293318851714453510918141205295460227304464018286785597612581955732485168999965652480118586831477540919999601173007660946047241784346316740947714422603730528558090893768206077327959803181627761635074754911706382429269007955448898948117025861941709284778300982353537620415137994447691885077104268645368719991203331953483203085256443676635741359232539829305614170706766981110381793705210142658902851648288303747866461007798677636131338828130530266960723430902436576180117243375964465758590147689022584069401968528649084424610913599574063235117340897198142094677599268596648090776451216405732927640141939145245408006030309302445933130247376622405582827062977999164449910037133779408180899683449739654465522878845127612353898114052183201161693633798011726783428429045177223199725747566925080065533612085163971561982219143281719622810659803999936712880656262990745362075673784668607845030953446268547261821934483630081142761873145392552372151465981229641527825721710911526347054437843829845798211459720362805953621689867147635929339780303788474663169992738168825752679306413305391402578244220927805322945256533978033063619684916946568526878383505749505042641612980127269164319430125642594983983214323869203402362449416178045346337069302975785052682371580870503735918586415332002426149264672636386847331984881065745535924999346665995370484329306539757169679304468012675017598908992931420802595903504095879195981382730124061552462404829065250121875327540163862473751021145048170511597989434243621371823911983539381046753556062680081244137272623117281499700801751487105061428355602474914312856663096462098940638308325073406754146740927399444015002535770758340091405623646666113436779090278016913722132360637363839720253337398480596699111759940017791264035038174271476670013982752100426650172366658911242020832629424803495127634031947887863957864063463637901689041655276005013428787558588363975579651937520154593293320569756680125495617292705804520657837686827672941832158075547550748050501230904549422336502748009073794523843881755285216177861512093442084750780379074634063405057194058993622421653079227053886251146331042706134531668510723424589809322170456811317434724191913542019500428157369006907500491718686896672391765686111216410939238155676939509327225540456651925936761006849215358019742324359348271104935384604207082473806365684474058398555937867579042095094054084211769949289137022642603072537891660089588001132294338128972876537947230032455584064734452523534718367025327001186240209030184062706047220613673832796215182543865539543377352042922617662282329444891962777642488946136442296951325008370406030342676501511330867186562168777662380042192518506458600011105117423645225173358565508470754968017760663863893840643392690317070310715782161109822916511352329705241592927525368385754966818798050859814910730753470588414051222823141154331158319673103166987795030085430396765547902076191276483390838806859924424093530383923756495438781895602034949218552233886418528024614374778334229477123732845093431271939891007121782581803330818002143747401118510039123191931432603707725113695067875936787062614902275653446949106463683051205547510096850197796682010045676858398378509680971809599515690457864479183049877516433175870875863520809085900582005801008001682274056237487161584596214039368985197971741357286589247499155545079562968999893696313896922090980414424929868603643304840518266746478741178281056074407811181636795261103477080709854750126914764237698943258025873821964777115679495518811956109260961147165827886626207688132476542023077895941384881689403678443175500366205634039807264301997014984423814593112968991771337581895174179845116024130136280944648100213989393054298340576220301168581764970974635308840401085623701510856311401929827851056074457346748411142107914057579603426277848920663662937898795813439852133104377620180215903854010901926903854332178851489695450984165949475690895924684616403346269283114755062495142937367453969700254411023949458548572878209596489454661065277171552782497891272835423345246058606039547582379523410546715837572367695359256217950325229715260908537250441725031033025295138288946987889376305161330066926724037963195764663398550081791335906884763877511006691638434154519050263139780224637910778962077665576008271483949127157419326721761096417846549811630538680010511703747147225779763900386301467875803088996417643206877621039636292738913915288729393800127932457157320369075636332948200718429449361687953174731491287542037056239726989174504232845519239831072263268081689719403113399353024066993354223505679210276887573471187325793066779269869072607070393844578074826605945813857195428741995806447221687950134166313673213389708371985273250245277189222527392927752945986886832126650604635318649029575295545376001008460013553427168710243194846096710336544681518962799244311733314439861122835248796572577040474667545431733282127239945786377438204062605566367837810414928297333159858806712082539295909903349106894367113218152195092531325912635875382562135086160595773995154014182554387787114711483149258810163615892757660271917337195514595966479208202278725578867210811798352590679241347316375916745595903113426492198937037225027188237713782324573888133110369906983474679448028299009972962812007657087308404510803347044213370399707714981743443718746555653792781568766282518338707541224111974429983989472936580914642593697098377304680469111305480983488111399860138487431094599453942486872422196888354668744754973475721220181234866969266096993166494300354600025891922098858812970360956021276003737796207092217890100655803590858214354765049853622945232950649786278667796958054653991601245947188251483582438427620922792641407935988776700181544705470647235110470983117810923925136846731037193520418722529189301293006724292551715660041712342466868826890404854663322942871287687769275083587600173136426380466078723248331955215112055788905060427911038447842387001543803091322136830949359588812439183916064316950651225522792295043109758408921202896921639182982257032085107894555571845471377187115719297432457355766673468026352260068699904956297355950014177464591761131273810765013824416814797576532973045157234551080172888869597004883117964221403868945545171914672292196878325933945588578960135115911429846444574260133588966834935684515721378238810514508703043797724950793983651502318984750295345128091668977579521028141565889027081712293420184859795619922752149008745506609366504037299454016170602881561364887626844916442737537795907697710076123738104571698267368244417126865298728921726938492607975012912714135346043103175511418654685631077283982040700353972908461860773908111937856039298825152352424551428980708241207732807287314245697172933951277788173904384400796198363289781129065351678022337745125594701684702196221578325378962755778215963410602497454558523773313253412792640244675577085677646595482213511519863483166221643033088932726574232931271626839527220973111887265295428426087414138233754493766876037233697831232179197385793962620227829533817289576344149368886672772007799830128106230569522451674117674707582034013341323103520309169940622766062383722232908540198871608250008367185424087794149972436801113179904808456639425969907354346296351271695087813067465593296520921269287627960803091527662274318798906118631691494948812818920585767948823127605524166580809078169964323580146016735010536785126705237990568214288813122439205710420850324076327006831437397953575487113327084865526577590190320191623862537776692206090417488205002941056998930160503075722001943320454807155619648149354355941519225516975251111540547354570305543598941383572403895354349710423744134360891145479019537995951332547297003838835432412573052520600368781099395909827237280553086597496551596604025209385553835018500396216761459675289186880573437668005901370244389627403776562637719025068768915510298780211315964617572208590361465642947507448750061384847307510714367015156320197833631976474799515671377590608518224185590278283080371995254368609566423424727859510306596609595674493020068369947409037735204791459577896745556110263351769179811971091926161452379385671112186025789332162343628556059498271387480131144151510755202875861742482314461360736413075643161215567094669950866948926354134837711721057262194081074172041413974150933143461528152007918912741165373495897985230788219981194257100802249122382685179498922253963791184313698314759326949339751600695921084834444577751429586511210100469234175466546714445294913424466522466726059272666213325655830545038621292516606507719659810591346917815088224865020495526013437467489729560462604872120149724173486763155726061007033566690709356131697591051946090277168241145800435959945307445609469673980413634864926541479811886152307924890620771020993039062493990343830070441877243873144008509112574231690874920337715112681328346992213926551456225454221104373468944793488197651481713604411284350251684845384821099524012436061508464127594814408939897861910840876529054699128758088270304089647002559326663714369408903117845783724146278619872344477233030696972834084453852792942656198133745490432463423020700739143740226846216705549797487299565364573565385871505648297487999258657638724989497812521635401756868355572429170293242502248346851674349279736562114634303658540968064774632545469597677306833295934815607009844364144816411081447608661435719382487988424276107678574845201760311633833376630961446342054791112582712864257910742524334017430728370834663387283545298792916732990904395447591772859671583377378166061846021796188994937987794018706938576136895311306221986087695355218608626967348395586583092140481374491336475667449899733384794182187179247551166572914112350715853915117277413246838543187147036587777134107712547950011677030537783610919352700554900128157156008563314312544395418031087777204066986051145394070316860447125895865512263335391919237751803307264091969408811841268102909959026743909738534287562885676552173483605117174355052969626007880798151495057663945496165346078507772299866623507563758223669146986033264981735733366324428141620693908110706470393893477367225786092942797251611700860545007071275303729703263208331972869345176768267545068020447189967962657181039384880335845052060441270357971120595287738777845434559116246292048331655542536708745486581610043936077969932878089972340447568002083777519041544714736380800201546026550199192496875050124579728447036252904671583626691335459072684941310674113224399295749969573907861747937729366756364865777875170939413887934611298491742207923583993688915956577053016983671402198099007516502091499457110102931847111312434892078057952465980658587684772031391920358868319745756478854068511742711457911978369607833821897551692935040601065618761776615436444542397398293940129325408596055035828561743165110883240289813520220495089853975951217474709659128435519174897677721420341859447246864561921473939816164625959736347965196100368344956224703547776040255593779750832619908172996465758873717929037043604762572889141677554082468350808619838294523113268573652403704716726682371433536575987059980211602417543372010046465795942740191829567136581935631414484568151164451076644098366192262351980502136377786350157120902472840953262305104107482727674909462599131245785158455281343133513371051737285641097338610363193244824379007888303166518116628297364122510174684008775660785812927192165845703497225754671298198245648892231858114074989553133037012370749042075222027022207366828030331606870946985135611704641315992779786155194749149805219184871397426528726044292146239194502804226705491715401986665462036121297145288480495985154051182619514533503490307291052311152385911751969741730486707486475869974787691693886431710843091466779964071145712436952912713733652059467362890791156368925256757802512162224285332321142225880134220732951882023052584315475469037551666188694787654537956193831185858368131655794144862591995290357045925685324162242667631115690704399694634872922771040322365247524856687982616005879336074369217121651066383140110842336988687816337195038143482432285260863073714745905254457484264835845789225437987341737169118179562750270432214315300209993637761711762979851649756652698217613885508834625137079274828362208228779497645975373306660971704364551733259944781568825424365426963633772237294375695350632227093719767326011870449559650242157984409416798448233489682110009560260585994775449227381395941610023398655215225577852769025360931331408768067341775439841029096785058968938874065668673202518486306199805767434517020859388322961032722760018321591342068122320737196097485268600806515529616729037755531535168016348525628333362293070493061093979220655151762015459361423032715722009079550808904176502590734190610318598662165697248498392231421890257601380500237554215565023003738438579671210394634935164257715860818455649326039662314971141355628968475628499570665257366369587037342354006113159291734563000696581551846060336346759898031648244906840272709487881260580257019057906960708547614628599160612487933268424722948917890161693216012737362870994717395686824232706030247889945162643376996703507682064169465352413061227114080319003576549229860731114287647767570016422992163566714159703418379706717257856003503822111951885935607271017765282434739610709693593471231882819755242530809841243864183822897720439424633658913967892655761631234510221277794349442437755163255786703254517865377241820725947431306185256996974147706236577149928042467496561156147204318680814197014359544312065903408108572772449654503941366072690785440059148631978435264208537703461316684007904984094957199164320187895954601413954745678571281002127581555662957206917106009311144787912625049080032627947001213476568859743259567346379568246699797117464886777553278226983345506119679475938866176767690871384812201326882550488126291062699415231253555186943488047659714752140632845777585626989963077396330774355551463775522900375487841179981710710666994957609318622063765778563259074607710753083659113868010422683373210501542460732155933889009962918207923333742673942689286406797274478926803301787364913837697431475544781359810409109275871942913596206535902579085998400462111056409830397695669273392493924736033486494118176879642262037047730659360138288163550655013770612108411731566484054982739192430655311554849677956607873046375600028552643298557805365466343257058443668645918255990039747405850853057337889955114345617488433663941566313232046794823683597727436646786063933005505902707677729174736536146233406772096783035280410013920627502896683603651923220880112383969988476278385849039736297454737623320494066299588665959608579629834014214248922406655668263423338524039635194675830780531435454600144997474701604404452418327018238940084580116902728744696030028539715601777645935773119393536974317354388076390563244642015692269188967482706934759349379229449140905953547474759539662712878475379891413600849661104111718799622532368757584498160795440977988988991851995862570647607771942391701304065656586192891516988748612242631016399029861179175089216543172750960465239927492072360044337319862983169709646496623074273431029880475851534599964333935758698541116582711819194362029171651395077507416466243771522499154234543672256254346132583997331260556992821884284989205111680513148155284863788955086697616319209003596471828953778129635077693880875086353952636421618483481099732400320887414392244066562088675626856901538067866019692269978666845978595958161263775178308936110710495045658536011270485246064111746236720680830325561704806773170068530500976119764183920782780307854870353129872455028067032590180187572679336430673143475023368582598980369083637563180189118424872447201986052056813978938027822992964866689780770099710477484261928906632442626386302602144702101789587367597063658751148098189644363522919732811071189680036466461113160965688967617208239825257369891599711371463414477034650439082003572250163221161309824280536893055731896431497071778538899407640930351488631732709454752361651263071035125247838610944327529430009011034386760252727383731972635200786190881390805734449051021329021100067505948614757570891860970305202920969535405402997841599879615692361450698962836991812096979489127966964673017366802099095510707623939651305808211102941996451357666871130171423052351925512986421305490162198170332012576114455487679189648759762457428787018812039020133103043774424059748577284779049789613402303607748241735472349956775607473512660639825085784274625165028579047318181399703112837229929060911292896508558058598881490141978053107203060960944725497827269475856653498034378571066309912407680113614341584511515801994907281209795858742591869312774247827438013077858328057725579263622449697362358472134717677168132516886140254765816042787357731395651881510524287384384371722940202442544003247846208461533961276842513247675336523379601843721194100364790411436927218792180533381162692973564206041437930091525590055617437987857572313126803742279471286401373104312947605593416390168090018043332357829062452340295186492721278064413969749790578672145386105443308120307777492613932857887238248883609025250793277560954454064175811998023815601039298935913878616893815294983403280130917525146204682066103023201882969577015093130083075242325643327980321258851025496087721962611247908802165015215602404995844379436953004139788728513383711080154451434649223072344751061884538317493502661141897978746462098952770318363208300629469473105195678320189214086545981319544093532050168214304600017814355949250630488190938679797470407376155024389534191404340626838393830079572765782864330183730212357338570128687326603292563638141212663895862284857349715857121732032847573281694397995291457698895842356718653797183105517517995744527903138128706750539751014020154177984460169307255112402027741294389201752925519282339052184075103352048980380415845771888747091024348879162188079874469204013453245137582310247819719296774176976728086075631932466934998140540238603418894164104263384116614143129624331583412377316931936338141582458344580544573727228566113505198058348183343407498484425560569254983484360635484980449915915977732579771289321271821870386673205080949329742025553078408954696941235079951791376489790928159106822755050144946757256021629954325816307283105949809497429721286767945541360779056163349012989202580195580345096136414964029349988384209055699780373305328119787363222488970712891251135946056796027387494949033054578069197666887674507834925266870528288665124651819518413180405021987244015138556826839867587099771232450886151005507417818638143631161381416677901630703676189306954975743218405129216261494294502249969937356427577416281800321420047213905664837188254710198704565426989535231694763862034657067082318944527764032722979207123523829565247178174207043703605552240961000090729706775524843368274218316300544664277504227967920432671623449800184087651445106740973003626720754309486712312196407358318692010308555815441700924437088606159675905807318894254334140890208862621637179981663940889331268673144723786867199417411239813448523753517814206642824642097722442576265602912728995748328392375196233923237970682442429382004326764088005518737411525732764453310654418298964027684400752832324607424048226722963700719086023462314323806448813615219047616025289879730248812352787944559251782110900273007445473441932249486030257289545689660533781440786491595205052886955170471630723249467489427656120002756402640966826966506396805636999985057960632788832584840884249223842053844329901418288003422119436094160316371549878101115335425696011694984132308631676172083100360985204132755081281668894888221740392298141206666604718382258128102026078291374162290825714454514922385729967561411281015655582974120119037970745646542198301073642100119578673120722468505223648999904872203687382381770264053631433471868647229856801692348393115444366764730013158456799599742903515243644872029571408118961494938209889075266294977051019377450201376091408549227616953280859038502087388378663453624806790382571122443717733174719057163206897692476659908506354422288753482627048592208545923397184455603157672463735436122272345574902943620409923283682506779335288636282223184925742604654023621132235286317243572655891614587428616279050584040603181796782998883188721935084056395987048565215450948847485855646978030976459467149158496089725010061216842381405941524391643921663029109636437303007428832355091437762924412772931254825498072827562124530051565670820965328195494246883707071962843682483797743824808954153549957220880890731641223017408451445600020214791081390994650340200103699091438096171514828145196696308180293882781416483169713634622293416412164912385919435201340780496779732979749655122679673537284888680559197995021774606314203676615126414834139746287798943360468192640179639784991918232890822699357774349805838770626836455271688333635101341281909135547139097686051176529202307460297309249575179438776935565359553677894000197526123873560742259949535763546144866295270770685591158108511734739696511927230561005741421830512543461333627890128975920390423857469110773338487561905855492421740996310046153276781970773386900801225825949767041871538338168704090952657259536882165333540130860156312825521474255072499505176704290459209342464874801271855595259334073120140568667599219712110753321890843820120098418986598304279487846234480581067782738822053949777501140739031532906643373535119671110021609672658531006572510341889771024308370816252278944371719557774061116785773192164872611793044882167232655360765164034581683556894506254535556017098885268112537059634049594425202055675453910723450763109618548640138875236311760092621863882256022152838924591706276149805729013400938903804258304573965980908988953852237203347377235618418088682723085533817772126268760965195774738079919434574770441925312525189926198294923461138560527290275684576478594253984450827570045004185005936929401389701813704498761611670324543330738262868894491478494808554689899188621451401636466361579712077969502539827033953903626962818467287932615644915460382875120552639062220913567726925752312929838835405837936278462022854738740959156527935077147721681547298777286204181142023899292786963290721461786609752846566042803241793616340215480362939752741934475357123061507087266950572736738257298373590493786222481854551374089966956212215170424961455163558602754453665299516479928986717036603096957685069826416439395649083823573492526790671474358639749663781168820219889246059260074864375956084636205580793277403499074513598842208363442060245071703333490488619369470329774265251868872724697468978885227408030342897001757426479181723757407195210872977586358368351166442486908335572571273939357763391286527054478375915386131474047142921549386053489977796708223456002343858815346825796751475068744441346192157344802409601904674915908514754772483451102414256388624660252743739354553904894207443758155512070233069202281537690609789507459821789858197716074358426459597841457609073947418674836453400911311564709653479552985442998026495160261807319097817283984807766626446404690788746508724476288023760167022416993146814118439786921220063267588417332618217539869740132481872376934966207921711953146047663729935134410130952589375487273259185045088756674353800267387232229888075057023867939462281759429666940636399059092208283103424491015664704207852858366049404002289392659826332714588186772749202482625644534148717247987368761736451126718211149280099251095139264779715015403869131039119761266387426263846181853583613935129150280526882708114314322525885169798544200141873804796925103901986271042786323971266291110011935881571899046322320734492506591855938155945513344605293564440016473817383044958616901230786088147721911344771435266302530136757747677521692806201279372717287285117647914943815569054952808334832614859507158407888544733712780575439401622792927895404117222552411898050543028932947548994017271426694147257847290361741351645568800158974805079246917181710513770014032305532586972248102486377908453606845843244058096638937708570961520880480891881757284917593518214050928755787666258822104114264317148909649429349035885733515134061944680873545936548562500944039569327529805937929355390394194451493098483004506946784200684820485996044308551515456502577233767873274459322310094770321174975231534226050493692124658755967255557298740559569701666920596349646899369031394852411371319072885673960673978744241048906526307457469003660118562326922198246367970067511426493627495908044504036567409638271366038681633615280827740556005499186148899184302552180591775121094351746745669867514857419009429319271527221607432019756391932556975571862625459024990655732746512725961928286118216379910500924912893474569639951830205215139243904691148462445085921787656729708099007662395881529264605502621552069456086092343878360013117545001474105287596619989610903685189197512861676610298166475829441021933517793602131585420428021117509196077034403666243741033493144023637981724131267749162120707233864735495313513222900028241077374301978642469585449690858501960955907039134962813592114424131339808960647102734349255853923648186414713268536803136740724769252236433615123968822690331126705901501255629624913964215910703534999141359829535923660231440205544031438203647904360985894863983758244787222543197249612476190717646378776714880316791268349189745916960256030421321602652184413412468832512613975883946753566067991430303742355041302652058289908080028088234704116330910768227475156441515889669908985876237757039240614247253937035975264684380600392846153185539399370313931706757148617860343989557905652153784353526828238288504447945657627018404431037275571005049653463864834852673569229445915929891566547257094826611062991841990918788786679472052027786046665729975498825303428460990303844141280914678963546554562505587451573577916511021444425284291786821635404629310327023882712222920413101496447899262053726436766370330051545121157527663375313582959083062737545956169797356115511267225956931704716539789968714094796096544075833381897168342692533820359317687256590139190235938760562600070043358547378201078804181991175713918772810790080630892524858838612079867924418129999002556176226587842416479486135740925491567959408801565039894845862045930392282227612326340081922278347548899742490622530454531947847482300284170553532071604305388420030829358932095754476136074123721953488092728049106537334407331271951635778530349090875034578437449202180355137684537401843183220617356221169204514865381348319715439074641546626186136460886475394280000738018608673752550876277909181487795094334329672862334465725108377731632511897303877320728716489186952846011753965733893070458780215593803793663485762378204346189855673304233721631873650619995167580843991447681461583649740712670638067771941414066792910549763195675471943924562592738048498986395536336715245451130549614636079308921791648268289193577529372269815583665012654242659220387632250648917152727759157957008295394523516390410139241406192381650466017994310162489942825256651738474523242841339810392887453085763140858444601295047591694971062388936313084925167269093548118115173666909500656619561649485187735422125984373799775922586049161536090915450785414901278065649031416787924937272080059977450256890196648423645485632429135826080803622217452606017115092678539084171360781479326496873318252664917331494164778520046399820069266793002780121544501325498717893321099200846982935605685092576193622927913011668771604228777365240517592881867691751637909082087856059388536504661026993282612550821109024808083118536656400470884809596544015515164312858661080976737587827122657691686863724006503134014043101874129666487488012055331377633691035160683115618133336654055010219117883921121376854071431619348416241151994257338094284253261664570476560340735173426031254333805334309015316398122565290313408925164196580160011841787053994979617278914348702984741588302686073918967927674405386209946408479602569009166649930750622218166583707800961415348375693964992072083543128592761780055789593642876368739362726347847102266652650059353455944061897289176690669646084169578122216622218604890987085569338281895247109816729084228591803995716537456640294978072499994398581729542594359295746079879126353546614364516856677439186882527897860564845069330933405027546495623842617969099842766361563758281251498526601283341892493369215215635797262732802150221447446188008467876835890800792031736897162401394790327245532796890212374194724279221452496561377137081317626629215146422556447081243843052954217595791052669876812222702547129374917074567311440941600205740142888872145411479996714055599727756588451823280229907183848248115156361554128699336922147984297002708452221582057454534722631803716164491287549772279599495002178946836707599031584881999939806492023125973719638191095326760995942487613861576615197311153595559184947982333256593072476862426103439806925389010347663001846842652951232231288497461096116238416837422170374882942831848806619526673219728393303121664055512134447247902105544309360957409541895544572726709902152278387321656764346933044404919297748249121046879939063233147686024303355584604544159115677413263029562309428198194050135608531221988607726224818263480508348105629405637988187449970943854564451441816727266826016054160550161028682308489684547808719014578030588114435842270038410055934584116797580198652455010575814120432036314854682743989382204845961078224459902886705501532682828415633244494663900630847314957472662143536214066160137204163308248654941717165905850532941262370284322488210714924823501973346510052903201836090895016397134640265839973412933074498332949065300487557529137806472605949144135200227917296052048821310655325709852540804572970905210372666868354458838582305380226522878523440564407167096744487545489497376928193450765866435525114454953309221451201675654635235888444358246735083101025905432343878909843200987249992056371819181976437811042586159619148183917266441793396161041672120787442952221367578401148149746413063361291595988918327354687014650157164450076650129962575122670011891414163100149494717458375044796197111749738826712073296452391203288841279884150185644337828684725283241848817126471089962307818061759676102049597852430730394326356126498012485896091307219201699576002295221627919834583669121588700747411907330018923334360844316175800696347393466923378360077271744378952024269772805685367427616123104101232599990148309884146665684631297837722419925496373140803548066645904774995178201487749017513843250597053748577297682487033250762531201813264619614049522495302676228477127749444451123436586318420600793799440415208869972734689340399793512271554296426875689635354170314116289125061440579925031051100665119508204856676878419840994116748483591858510892054079235258602192792157223110369515308471935750429095003428626299207535720415124072194066125427692012573868606336350299795037150350790955770945657555255725332374021234742601973408483104492501384764432716565149475997952855179729472495756702620666430152608282776614337712846234975130892064923022928416053779919644052983663751495207645981250376383841021459077333341076200803333739213114535452415719333439684189238582274006812245612047835903035081074505852607280610667261830920931163621986625528232905340987520928418801449324275833290108373329852901399560333105501622899932114833320856754049881645529092178855156019161520382820529144006280870007616530475193940798682197634911086808956567233242924197574892259270732867748619106790973945408320986228279271468003696375876951474332436557101483543497342960527544610831639927169820849304142820560407678586360775426566772832570157528365684679099761071130261990580046510497963513096584402722089249827442124287542978584114508312738680091848671615614168744510322107540464385217192946921752763998640719147995865014415748734790218453186658314389175694535479263699645686619345759891562877352739997606052897418326250341469496845592680554605304628071785920732055590877855112017181434879198990818182761007914445742777487812526998522224321549575646466276283118661842996252978215020243809666820838032291484159345223012468834013525160526517177115622009407100906819749472679278197008912284390043030507156619729600981355978917705170327297250065371491812612112124712423674819495584131931605184734768387590094180786370794982100954417248436181111838438216464877237588552610216594213965696155391891548577851947880387348801317358530618399544257313672807777132776157523499497459504069380248639638260179887074723281436861292799402487918666294956749679164423726319891225414315375783401976778816201510288063335166261997982266207620753842727991121314649683486706499672960881981402355805391172365587940275691469516582702525814639801137879892381552242436282375204798082913689513275555613186701501783869258357126274219766687150208171762195119432969451379687570862200142765908050339588372363272733970387725803448395803309087685579009143591524505946526298997782279897840579725761910248937783632087812843135918335275111240043879522787258481486334602151642962880491316302401953863960211359763230508271922168023561745413471018748174913680238365594549057469355336707314042019870628703995163490768655984874220782740720141702356682479928839464776366916563126774189344255197428347231732233224449156450067544853564469460224544359037490042503413753762115615103611960282986256532073867619760589128620225688235205929183257048954116750100394724101475262902323622218921742993548365297285176705284082867188368044437800685440428935617298450994389776050111209077188517573274432118701020967017649077601102265346074463680557733804434187648686683241352037708313339556284921754654559854211403970638569053773850749881322240676522206077286204781101268555859970324858768743867011919537837290823266139598180266428925619884059925452977087850487657117923539417580593369949540196520368525498406416272224348355016843839387945155303713946207448525985063817428448090516968172332434500509549455423419186370714485550721224393645376043674222568879204684368951972386285033426847132118844847344580892773840351043011728991134808539542737420817680266948862945362768328558289088045559358300255849686721554615721863289402262046385231821249625601575447771165641822870119639836888837480572207103923045805537405572492119742001314814105015817036253172347696671442034582769634839955070066859251001902366137397170619169291323751787984430960932339492305216154221844850128875066125519852130887736255712324879410183569273355273398881937500204533973742223776720438888956609399350704967931672527984115466106876943884305630077595391479296360672683620965491675220299771172960551752092589886086919487444167664493834764255804358872361096879616008847761085942876864720788337467542929744176870746108431922263372450751825599376818503655315355115282811028431635010650050953372423305533996328696188466133880749414127307693954125186505929917518705310455287687315135436777123906024927484997888168970820661408528888031363873431155387476287966574366656812106190949851849960916533988306491318418495329302063932639015880883112951925680724901785698082906697470184576363493363250008361257448050410674660420440703143591169901100351350332333404464769069798979816500198845156835696523477290442423043069148818091608084598011752286660176438367615185663550268966413330309176501277950048503423967949222581324230940312089004021396207061547786546912879359172519946650326414124495773509835448489539260234054698760237814394305406574184095770049026727589811886935548591418377355817260172265515627815394320883913487578222562025515950952236182848537819373365908348491676383425127361439669284989205883972223076682631127992105006729060729629139161816606811905734591141763973628141880144857228540764717903596935168101383316512100739084146127037338356320425425843734753991434531500062233688153115057721620253939831075260184646005401787033741277853606003163693262947683567182833976245242437628068581041752618074718221430037443539045442527951351070058386383655383849281054245327968477157288490013344375158216443043507250201612131297931660923462607933311591481007537036620630018125081456287526685245000533273077587908304207308447448786694196488750682125670403665188135598446640015481077527448542974966889868071303646444408821974712781015438157510532832443272601701248301975554841956247022517441227658965514142396643853908357161272067240970716722113289812688992216744766867497097066443777778217087973301236898755185625278727632705158901953184345659952958977026158192916260711823777901614461553766216801045778783931189308760557258234141182477891261597077996714928980706568924000193611521123299873302340120189688899075769531452464810355352018315445711450775510461409220635147326313375892426833760917390141905435452905122415460034821853049048597858900837625018347276171932053529770470117112492546546061621816417637581978954625080749303002016735705915769030009420611249393983012639273675964175072563746779505047695258860110677239755322547749289621745242703943950796268911424821460440027905971062008254656638333016148898430425042420040406420456551419313869294449174029543164526889422519079475714403958602361346294618945352456394419063319648682121605656809111576765216043664425807730711327037149451514067615077864247310268690579259167634185894669528272291820372022699037173360175072050673340545298981915130905765929652889456616110328694202992386994512939156651962178073318615733261009717292357673873079603187719852492808505332490810455822511032444935619331863912644937435820642501898628878645952371258512385998272952560546776266141124983777694503266354708290761169007306905379764937261826229384540270801146785337529092319364927582385360763926667822757090522004843068513481029539801147411437836641296842364331220232556873467826916991082699793110261696814591835981320795725121821761851006785913998088739085863006095285062130088499559179307820826346331569942194164310594665155374944425025763880764993956269932517578934090002799713801124066293554052909939674948842642127557466890520566977570610321921622340600478470548131228964580546017017630362447241168630387002286869865707043267535776987200450194097437353243963472866498283971923840303330301599669291521294919468124693552889625698969144945997592805186218081827869971465091602386180065416792759279391387927591337283215167033440010558189669379385149490053728279351583755783256290235658919750440397794213334868588773667013337443455111284109075941055350319486434879108107248024213625002577226896846195313000900190936735059985559323227186066153552882666138096141200862017215711309490919191982985331229729408222287423721932172993648917693757455651005882307331689928563160946573614074220271699977610300584715956425331056284650440113109900526668270053571575244347562775961482179652698455178388889138660549776053276108112945078824770698050671355027856115922251386566105607119470927164895088795055167546454101006539332148994412679326518117642706874898970577933272782928682232964122300307258485640501565142609762061577476253362843993147201523669030023351970351799082088248577771568221762845800497353936810319004392061296531701373759062471800562725608331757185466457485506587083103498103657001363864194540261107813825794540740921628879893422006468749096859188749082697590726733107254904913887677889006519494085198129091209123658326916835055557228627348938509870139801369725678774481030899539722005868194960383041303016539820300102221290443150782545997140179879281093327162459993253769845816450130679689974570380206815876636312070843424431195697199640821874081578564301223328017902325730739273584360935612406230030043299205795250612889213862228895169117939214814808026010080785408540931628349433598297112789238653380048951020759859142941127895348866334748857279594226577847263111245185858152983180415837419252846737046877962237213568457281775990271540004536501147532147804567300693465378873899980720224516222663147034454252040478521616841758116686474012015532284397203439205899852600382945346573274674916206958437136012022085363155585911844569451441430229836667191657482974540904885672510577547453216418861926162069569629707736101442511981867929569307536610856725025723138828900507129912447613890272738396916931941133899239561655958973273223257076959280789951784690526909999085452642920878408499355662148286327008538647060279147295019505534624136149081076477753822651442868610032224394858796770556156531816052136986496777068578990764477790640787277917763183630626759784062269765666221988107784798702625415575562537954211235916396563745330220959347114606593171619695396395176917322429605390761246611346567916855632898316903160632353524205346468561578989194000407055700030749279312518178183363170167947155234319562537038789220980401267286376801652702517190581185343750208253671817155601165023819807502501563053249390329556206849933970905093229633143945683028569927794428506874324763203096618498845972035681593787884186959025480920000944207116615024057760545137935913897143288224091070298607590574037366523056225947890441526225929125091691329513035512162156982713635999840720074331888248779946607087722379026330451392429896372293116352635274313503967883329748234490441673949850354699138416892686307506591632874985668496678727333644103807700571432113325396807092619578489233100719339106627417835322219651943601697823911870393417995837324508390920096820212443836940628400812727329695216000105101691401108694271073054958383588147577290507979739945885510687458881058511603599976796045960581355348369813482470328459580137755336114235536049349333554646281357286832959847225939477186826057958351661054504585987213733962425836533645280377585433991361232794551353723657542583288623134338083674620517476252310153324951105979993228290995572933559604961693798307859505679145676652639680735199211632392916264064389687797933474774697089731761339832472637696154521875640567458207985691156353417512050780111006085612254249343091345149838997716266522095950927537511283474370179300093745038275161351327449992179201703498821286554092891813928371139761626135219773330410484818302684427105060563541086821028209545926927579800006520081106682974654383176844030099391855729892699772899879090932396811030385796002219914500361743367276104295479167901110077118196166360027466041241114124769663248995199295547509385611120421343110680614978498763272998029710727962173329938760812740418804443373708682744665566557961483019388974366681279906423627541300468461241758941486454718508555301930479362570796786355274369816854505775775524686920606449476613482135288660476326821106007342416610522454500167918171642676454551316583976635344352650578910224917539050851872610327793235582101914619741102590213800152412316312948849950786303062123034162166345918119842864362927795588481432098705696359424449560882410045273389397654533290353892553314858862189227137875162667542830531468897843239126936809060746808438053686493748972301023226191785753029420236690255165485357095315247423768870504213244255897850705286760535693748086392707668367013577991158912369397625796518486036907111099648526139402801310001933806460997961457347544375751260938204606907879708328877456918179800091626602992630521097427179856390583598325073902599618381697859223442394880052720251818476311123020239068226257572510637835506944054239098666959097513881355758549593403673636685544578010770614117354642048201149715988064033043387360647773233625244433619021190719109264852409702081435756218498796843669789808981848363443892927883142663875979384416995923857786619286111844510780265138448268286323840773036481588138847004359092758448114107553358798989851263122697012960332836291834951346508039476118843487443143071181639646883637416462046097977880121112156053027032782786538749399716775237685267077903887232355408163234549568463022652070855923292348816903838614937985909834614613141329027747267257684735212792902937077214568555924677749603618824178940214050091385041969401253182746839051283036719012064241697830005779129111676996675613606973436367563760740853162107096365294064790783800910624122321912417473672609232190248704326429172221600208163081036560662538089601397204477440497928838830279722472937728005685186206191244718084512530284584403331651559134715413149238825993075313585910308086421030636814015649355878471676731088330322104010560647473643916928833569659473576856088497938558221199169501019554765494374245062125527032879952259779706556500088893342999558403515409521205506169681875734099318979005640546671046222570679407035929427578197214092700678507319722286724254483542302194594870594277572268304840886970126371533228028349450663838452871654985317328100064350658188281173717716448836149979589270685804782011539602705606368112581572651655628424518178329268024879998382523696064287798259607091787033681171321300432423145581572784942399932417344150822313009455890818449045135359450394101046946007810304238544149819727425193426127751890124455180604862417906358056729866951963402590819370608597189719400751792854971270446547239283348413116913338374158089184184542120288072623299871630073850314348160196069161820073352282463085832667503475772088817973167930626827902273571590943830031093231765692402639583252033375070767544342523347007988941359643139160291010387672932801241058393914245896864596406386703389244416938856388320006061355670553422151296025360186685291658246445793153355149101006520698663699677690942005963201811704489232935870482167841933561383965030535621074257143224585629316427663294150865976376358435942977779280639350765269550395324866940563140029941013187987016847169784793520958464298033041827566786096886676665562186418346230196901508447753884920537823002220410628928859011993301266942099739852318683757534682657104536912606875170364360096959284638401942993070424655592463186469144086094382196133248963257437728091273938103112528265523409298139651447177989111079577342803999065816590331345182178377850211079296997847553040198665472316630724538373972379872716490929165618625262674789361218628232382530934069988135364455026611532810855132903515437164257076570734192869257388458517853864587216808563313917401580009798841433494218765853322054703495220163895646271009078270783674374305471901508930099329414743038633588374461776256477777917191297833099950080289962247429306375976866638002649990039707618542648658911454716007143808212483583820532364643342975207255575133071584686324153276924337266921615538609964179291237605571702731875829296448186530129655006286872759327413928370803171543719391726533307976915733813507235253289496577200385025702077488880437074641517263231704426537809950477995050898687926590389424011732845106801479717461202451163881098085207370637404369062904074426950520357017567665979155087419236366286340259002226996157347845678778379756280552573552126257819228372937195592531677646543937574325856959451731223783704029349464221200052354170533921856549127520369967683953635146733078332544343786826124702615441044960414895723907288858317588148460273114124133124321513007130874620152273905918290833278011503748094089165671171112210394291904811311360190621814727285976301667751906511975500174566683017555980928375521327091089422067843704020798032149286075778015494691901558164230477541218635957542153937073901099542231576165369385297687465982908341050912908148530139559093229025411890956529512316253592982513712451771933609748736871769600124006200118180792192984486483348830933723653035423183343059057744559902262418002699026538435141266507945004597180259965363154632828975352602588582656027915226701095989684645693390092173793825593063614133881061250852177763726368717199875538407705130028851002392891375000920055480608727449405398456393709176771712166897710156146222055070663793969836693973305726521725439244452443506881148471257504560156548420169509544072654650202478247083129396174325558073845130103273659017691316944983744244079849160359371251102017302156212129577409401438897178967787830216689337620210249364324145091738833088037074036646536927331866357968089454769019332670174586337217623099463270814899254267636559537254903304304993273907802381044474636464673854129891094463794164886713270802568640104633591638877016667797399844643438552487180703836844355218551842885687212087581167680826253269105344528762878871368777088830596599972489450249015705168970543185402167642586981584741301384548832420168658533827526918696246186062281606913343997591478990438535208494539175651888402322990426464688360342325629891789618882489229494581943965837345090740800434710386432871946210952511119278033727931923613236473907875682667866901872800342893944768855473889171561082994340344555400020011128297108574042717373709685745633495576397739876988416807459707726264760838254992942834159660324818175111643473781028108688061827198722454874987614227776157495653732037373525402108002485806683787651445930853836685991150281639167066910545535015793835552562110821490240915055181907677714266050442310664649997816187683706525170839049097111363415699747063964918747991015861211962659729748068244216527430791324839638220728405814261028137853567755452308126837322002696565966340417650455746703879962143762253538651400030362156753438571899968625151197753848581682503400135861058504984691825159607262426854842414858569543678924169787562296631257257506964480242558890910652331845935779068534144259243266116695258244209754038810479034388921423698709475704441388161780170920672925933238946135670056411386254153558394728599703853919839057698622112766467286972139786022588837995951018927112108519383556108868831247204620521168582755460602105902845597908615327068654466197440593285469643229155467360500096805097911292711496122293212163307858825142546447559582281402483253785435681694822166950250691333472268451918698337862199594534188517279549844026870756267804374475797708526410516933281535104989466343786849817677138038235484864381778928124057583284146508994891766852806760411972631492775913232182262971164889088172784395179248697318024804137498203037803580354429131022172684081934980378995310115661826781644591482158858190089430151255001231316797886985713344678308258858218678248222572286655771097347926680023072589677702593944682882645158140153567607520884575943019422463036949893671721080826444872399864862980844458694302168447220100382359668581667635100077250583248460632474312270924373090304419642151032391645621765473635838839143979251495308085253876943535947699585455706938665268307492916809825300156561685331152468811885683769844131492568888596159760335992547209624852380724241258533786309620619293087465588038943524039955635966769456619983270315200313235630843840624270117245518199149725540368742955703122784416133348870724078906836506951160311498774398541488366550851873306310717015737781566972237705564986605994391241985837068158413035671976624487542714789232818568450396515172233283324851666813840290466330057090738390169174751642133326838455038254671731973100388472335003936919592395949812224066404964885842255364606816662438021870758210205254395692791951517015096494096044209243147285652757706097427892685794052936196856491768249771271092474833854184198832985115429742793213536221444612821187819976159658849228059906824141044936662438759868236233408324456749029266932930825412913338605091214693177704871915465501285230431706228225131050393588725142893512075635059361533320020822593731203140914184479031615950105316350489043470824303250658142095819872087948687257330367431160440687808349606087971215566086799205447207110188641351186285589140231803573186592313012069533252767127314997096077309315221383136090612869411165314160681150750586573346308792658764228537750604598558253225293741384208572798490262724877210153964193767490716127930207846258787975495830105892128969215479071232548442003326869968497266758618163797200988833085061025097578263469701052335250830229417529830891105825871858078909526374057131506718794960780749761280085459626266264066229821539507675125801803254168655064462856607200755964421885550424199047918984867609024145127660267731157717865341753912072683118994091827846505972739235111995714775065849061467360549196127290571302275928970965198561584423819604025252121984894124915831537309408307207735025421439872209088018168219316559877766254692969484885834986607155103813195418100905221527731485457353813263208036109949456579800154894896850311380819676473872457418523473474795013244124572877581938959278984203558258410922340665287734458110635627070557837458904638502212051321841763231618879617726215908914457628823413899846038257788708838588812810798137872907578215817980784101666698377677153729647825194686685647817162091742211987073783761913555206328030105564911156167003686570971255766671990715858987940598036355155927774969213594492509117589822156870195799257764915306245259226706876455500026936885705278784987030957872510359336633927502134980819075718105299867390913535687378388020119128154904742228133935642469798719234875632283983634693545099034877837471907563540228357436992460273446299317033278943800220512481486009109406933987786687708089447420944680667374034869245337762990157428839783638008577801664485646800747791558174324541464693897399104356333152760815922574935511651176052794224784697213403438869856896851006648802978934739720744370263453925765967677360989170200089218929216003804083552040915918639067767466953331761793478507700480636794004435200963358818000635611610327307003558004451188850665657024835829264654632614992683189484279721964015724809857715966630578873353544520642019686462368033552262159600376420469979005136095273801831053524175447506807252522731832384822780305288881860658854311962560757216328134864657439606010721373750348424160689427842114189477850236076947927506778855415585861846344749034489699533555357525837120814347169066329201991767268777321405120557910138553695943763493760545824591617981331940460017339274978996665472272520384455707440572412133975193141770667440602408093084607423531851499651630503739154665134484641803913001299998893066177894585695873237633928558952211420295696435680228384900789482761191273050298745117073035282373724146952171375081100378931148729776180351279883910752753005406695061157973216831333207861802004782294653023614763042679871893160618672972228012983271053991980598605239371426235343000285773801833167341580007413378545147865556804688928114708065046109286439538894016808418934669384650450308783055776099243788441055871749460936177029985670910001768669393200077193512160335873060740646720051129363799182012089849040276579448157912404726179001017649974885589345206197755259141690078636849028672655147072834401637236625626976679249701740118500913132346019234882191440316597272228284318345880736425549053456671265883120139311594593391476343323476657063543514597028835523679193574292305154602403570136997713775493527600863699078722650903188681877472940056164836159535661885275280811379818877667379589625143516503257128643174270808596971944540815819270026152897030335699909956915765116919639873073414781507594328815432532991645224839520628802500985503528492287656323863103951586970365505897047058685871542503793925969365534217191994346592686722538518016517138460567844899836984921353828361066267222421959290096584173922084114168259943333230360280840582094177184625675336156483848540402976803957048165809530190216394987621155286404819494008283650868832215009666976689501920915366536765352538336242402779702130192098108805888270248442154978192692800956099419838627347328651900169001289100638268985772092733725782577567875201753072198836838963980903583968320603324257170190090949877819064293936637344459960253649922386866266770500998502816158442210218741465934130390618592364703686185646023738969435898638475204735755351195374208361728360702478185434563350195976800262683593666681790405180188708160441241606192400893727139309587205473383321745640224322084014527398789935890266487048615247558077726046435976882020199972342309485555106408954852247260271923919952607322063085338508692762337474526253903545609975812508437663396555762067815478622989006057700600301363605663075131003655977531083890122989731241348156882413220770648914879236036119415858075478912385967857736603495165570959114375274122314098181629305843125872700054500965631491665143197676590548164906966050497702886793126658661432095288341417741657537364574300484615623414037105585726116628972320084460794388404332332409817204822294555210955635112043438850272023027579023132196444281415547186773692060623154934049243328456009326617952763871904593855767286396939379117626933526149343759096094925372798827284661862195649096765104131190882409345547382017439368132278670130046030159682068129622312795250471500700818901561491298014954181428518488098573062698779173451218792964178305121206437181955649933248376612230725786537897352573863309668964109241289909210048323439610694181012540129729346497569881293857417417070044117361840025033749345437623770356765401295705632607346150858817605788612931333756730482274859471637418321022334722267496510029795390034026067359011875705116038671803256066113109797160296355011656108886460341039887945085241584088694149974122566153139883604300432631472857608157973887277000746328055190543790474069617260623884411214680835823359871200388701125958315165394473494081501535987438243005744111349402195020469462386870177321892981410396645105364783854020810269057438014300857244552816002632116325576162429454196382658946241392641887185100261375030357222126679682938811310726663257078862509656911443081987732223927783886905272262753150629760294580734142294072030528266303722160591102649619060885728838630085363860414753840254607644439115706794120262640577356533941389032626629297031133840746572917810456076564695949076838182906208406398942841620389262058699293113172180771702998690849324043795699956040344836437634981875419068123549528943683969649469301715831503638091169095066837640376786197628705473297051450244754901048484514595496099587955781563051263526496555892913868806757759047971217667668447381042001665724689334593900812143230107020133511922142072290128985961958844005829858121805048581351650207840107514243496110732074847310922555555027312861899609450060325180354447891065313306819409753842876687732557349913496511454773146615518290960806487859783854979513348667198837591580233023881711349711216320020306034115314459345574238453541567247250678274656639434138143285253139947377947626765676925511102511543087573989829830240831696740358744343237171864895047423059592865470845444890419405342391338077748029074838810485009952204209375170464176284229567140420707777591750823373976041125471157902593713059197666689974898965691624006707940428457095596031991921422813433361540624325054192678989435737513240873515332310356939507947519904173716203988664709044435207243147537334036674584180894076844771438477286862373968918080402870635969052466887212441237996592456328124295263582602960694239091187231273898902873546634775712754788359043243459577430989465893986136706365893882026854734181308547400185422337436960082333400999654351470065653496760060999213954175802041938687269922186924886584802610555932557673381053768113190670466188425151905867960071482467184071740492524650176622033191444667405821178361930699573723518058502634037516427504031267031482112021553129322190378177834266524741025281342297338948990177548219493792597080773098527114037255187864599926620133905399941380305402674858876931456583174782095437013492075218387841340806760223874325345242881479878684088403931789150474447923312820121069494831165365160521942830547178786019487689471777463085333627335283178856506579036457311538187370628345166375398370902308565898392801533951250719223125299279065779469209781365640705852373831355240835697684070058219192002102303759057904270464400253301119088804573643698510216103295561194432176570616849843309775885611754467266967413349597589387391723844956161123863887328618620878020902184451610348115184745705813928468306593790848385010861121645432542600838703718673690298420945564379696671573021436751042753969886342274147297025253042506573451714470387161542872198425074686726608282060379098426460658045347907083102832244248963071328409127526436849923121625945488374064819962007727519641581471802205575225584768015933073913273602567862202839151033188888496740346111180237880457591669571458682778637015699407626133689234849491463416095368357153382787043357884673214062192078740199558659541114832140987016230146079815650398283259786783426056141069439483858903075440883542847025150072656676320606405802820145382115938810233691147093731873563043778818986540668542927714250938706937247250424720865999090338095434336165845720704552258357639130067385532047553321746096627474314415737474758903341012375434365265817523182351079349207012267573939586139115414280225668807766617368852246601855705316739042754307189717788639018819486549134584673493911129375369643232114680973836392996308185400067502526972407688296143530809425199488441422205773064690589405422879713121942719439297223390824918576018178035754394014727540721662111360945423345448484594107221341650220273954561600767074314843648659941385184849305353463608946150588924483944820438190132548850947641119317607346814374516665147778498736909652508273434862771332335896100859825077896735228543431672591103917390400303461677004185265050479273503730797682733048305893859775589952984997194293318818159155548817644326375297208278219541963089920381327449600896103737501093620713352949341888990923253158536937470974566380384053930935497893540866569359112421854506264869201472597416286167109459593983000657857224423385389596424335627048026134716862639154589333208753864957982747357368789617565088232530770609144289706477819876679942396169453579275812969868716931018054572130767973511193504425490016499568882515218636997596537624580976740487328224611021930635712537743785205559281382258153960523636084134155889236099971501825718520312528628385229616423275593632461744571208664377461239985746889749047302682732163311964798039673134227281603526600830860289207167699954757644741781295806312218230118285687009612379989771359727888217672697706279852457586161256977384777023397335010388935806345128638043207847721231668883826987240221758627268668274420652648717036570195468338273299461109278655631746036921977557892573016544066004726486995037255730603903483317508648270988599680702399621869711960053886184205415899517497888146144256797584710762893229126859472400500076639975505338998931966926657648009533598430596761735768431430605399651481325826203780181114965285055082288972845849243256949210384958529266765912513209747986076483421030851891992076938563041834465918433425736069692966934449998270260047910691770844908451983611101411406224534237117774191222077315518849899628897823569860742607898964500661493681495294226322339047338939835199470951292650187324287673512342110373891703022977856214178871483124405210737393959843565387417013064978468807355637282042894790583406830627131664681066133465174456170429910058329979868254894196648345763408874153972634712914420148604450863688819116873998513431519605297487682735461427990365674028404254055342174252530867763823363563654969446956352252923932682045518229207118447723393759205816190974357838883965915587948649724318254435346662632910109239546412113318732925336713377083333195942525843782198061534579006156949115935240031433975838893329582581770527645179703665149893084540463472938477552188639935729721186118053782671388384019639022065840807162683193734567339647055399633720765988644163735410683783856369190744992438061294259051243131322048553776653073942103821683242202913451948859556098617688020735970924874168876370118153051255413118321842648683771914290023156048868965217986927254079794835853273415854216375667605067977309309886035299173428989898927395150204048295429087108003754516458537048886494123915824483192347918531274484795950676759525557109754347904844840902181745885124372210077225929749044993079196685550228082607583086959387421654931736565495282205136851482246052800926417343573642754866846753464959710303830572839977954840208598233774390664053476942833080673339275197584750249209440767925796122554779301866013427322426386076308715978107159232106245231920874368912578960820072438587281478182287905122998856676079955160582759408925526859216304097427338029905144924901822327041277783408877343955564574875180213761407788810560470524305164057184357617258932885988705055526637316394361836093884288153731462880036853571898550550958860406566350874818978618503520494656095109492365683059475366156515770947028755418061385361141952938258985582842445673577893626297435967646529262554906151131069484083124332526898146448823170808381170787108987337236641408289986354900032397839609932582777611509664999720728224285457505475520025666904582260335149523250784174970335702968007825656088445945692128506250229201810152562044916837868965342854213221176581439557392830277119115382465999682702624016990189318388778595254842547400670979459524279098049564433505792991254066624707909438174003538219674363596976486806705821488695707833953703432127245356379231632530870492797221689910354211325243496602757140097762997250463138646939557995671957818408125768294144252459140037933656193502516941316950465246271556949963151887056043669221229541776133402574594811770528881905973425500966359303492869452951007617557705207447799500214834735073536611918430036829875440468690044859360478461796433376175074717189398356557329015679186102796917897611799658492227378493614007594212206526761848403125030559809422863030450594068471202932550109875887600143014832226284240678215864188069651977660685247387452566788981960040810338774381406975802952012358562639944366083159010512092183755781409475036945519425126403784666767216495203137191978124396834793065979672089901696905501463977052195727573569293216794025171852940913860924149567309184709175509352069274564612336784605133528291826446462383022416618848877564361865903454962112436104691322852303292302319872256113110513683151294004683470653271755927327291366719111518223218880323728070771573692317996793173260542196140159575652245865772603561999347035417688473200011557004825177345838749560901036970691918025424867474936597662872704604622398956257508450070770147211354378780863455648911848135559971817314236451253450631408696775357776533965932793002493690758757686397557500749747858591855654292593294166920747855384479567862171575959254132866183300890892091361656946012638313390864496678088466026108059327967281119238817679509332734440730836297183957764603188977241276729087343276500970944924340771182437623604047789482259111946790079593895275124208100169684010847995827169486262261515713139419196808850087607135785770142580194223666403556802882341551446850634162423159996403246517408769972265896794566079416629450387469969234790077554794911966708130168698451676259072558513710809082249163321854652690035884469952135992425649961727978991681950349673006514920261630017173514869717497273287573943884043924536649221680317138519117817804705722567164667005250321935177292490349259284292997186016004998193000112137436391805676044736359203264761125790976318457628001000086653515990725411764689833278187634480246060530885499284206103118205808458558841992482148896930511695334105955311000405009833949644160663251755738744537655396907703716415116219340471526506533379835397352471894947426103052417698602693664541563243070850230931421046042930651875249629379855077446199742682761868170744449806143925457069891825364085005882625630806897590992176130359625993485526771078159473696901114894672670512722487591144536292444638714849011345587594084650537481430870561490232265543028202167329898137290510264706384958760389981251014502500999465055661109946972886519961992234991563385583960810437215088009659256893697852662507769819899492313900465619740581667346199178029652159692776327799078675092698979606195748929181692187612055740018696612543085259511030137796330505042819182758097598836380756502126715549622375501763104502992691357352363160633917914914992562860440191382981320237557788043531120460035228190646855595023913811660416652477248959846738981651806217479602632910875752907067487282099448574927599456658817904341940971340441391889959130939458751191252941964922366852531663533131972142533906036344737180544067162651815723448962619178628264760025072209157855778221583052938966906768877484033890748292983294220753718982660350412204031879885932121335284339192322230041137807182251710968919995296757685898582515774468965858849597196353708525193407750282640273557125294598843378526522860580992682167420172425841190377274980056430405423670003325480568404757719403525654998570736943130818041255467468559181898899948280142392914584662076259814464068968189426249608983296320925484810929893461416842099694105391806671725376732862174499209388640168214759282727595694659614798397797647950113911876838131087883441291362022728146128171190908270178244152780591821812004044776506658730914962410882942526219954591333213883496108124955926926985357515285869331693870747850998261006289335679078389638455943784258123322028810859964471783001881691250412361737248308454432638429787619502003140981341750017209071503981518248754727765411567128082875332905758924600504016777392962911507817457680326683445743009942042883613585836084309553804009738514131796553185261812489267137836032531729046975147684118872183990011310675798602543003427309585488719699872775995373005052579465792607475360689730487045542007627953840035934320010892058714690699716346300873667167426681389140106003180695484907248547514054162832293879060482335894581261099661119290977682813482887691879963718145183379098912035963723885843972170485863197377151119117879444743216688169480010460026506449506838862234589532469702489493126766551295975574832054651799583745713173366351011870978198952749493747822334345436078440269711469445945845426521187024758167884259206259373186298663487221694766504604802547928103210705082102755396173385351565350360506492131473839008527313247644805923727908267366569810343565159378761861416675639031758022440927292936619193718419811995217786930607506683199504709897880849300530097576720368635406747311772751791366680446817367200864571138276634203438112486394982702008797752447816286115996107377976354517291949626572912357724986133624281019346629478022607630999921961557073344866442977370349833188229648887232426903208985880481764549842366234669165598403024591654380821638092263301189000185806380894708655095629586090236939726804881013424601678052938218884525079342954696288780014665190413359749794198885912534899973702789018970623994716274314426359881537053446889640243460831549674131131783062359679981748600496550313132872334891542355346908075690143112465895829911775743238005374389336618747336386287261684227722822532150960575176333279353593189296964958580516410946187219989716998389084446153279414601236324432077431800847050162658817916458169936508146822243818668285116390607079142173618880595347484003001525446253420164386507755709398119281292008516174753403016255443514394698899373958343527990896271701189906279100231030839496821330771788112402032099331309967195446906441861701075218310675771317341152688715522257012872178387392079755976312153756049906416214925536144652686320580206181520449981797379536824010831268200598878725642536354289166957317226291086717495236622440829449512689687373213348350633053318751483908694896307723161872882275955569719022975356538410178885966616075160721997896294873432684166624215286486577396233887148722582542859575549784411641939819419250323743147030109035968864812344926754536300269561502135842030545033756886646111118154864103147250117732728756396620279891390567483231180304617967683628907551668284761928291911498356083986846395678016907410463647127401551545928979601429273992357868424534036910395035899714933356260389930451828551629814106453179242450913853979600489220030128122201403385483656273637677013975437791219978393388312318124203131962131858173904770499758478951768697742502338323822318451505411522906959113531070498408189915674282549670468057117820288553022796692061853569337020568071642440505917470150898840480926989884991683513422746800344704145120966614730156926091475313979507470404863543054806129021923986274114399532480835351554318776915320939911687756786190046051383462840966322227148111123508473873697707989395683704977386900677739228921140699996903898312706872480756338440728172925838371117647410738828704065882778693990070348858042151076907832805339290879493200784565530637333981635507552918410487170555820714020907093778665811804746566112541453235537566982344864168163178263559171782848966728949409548131162976598254766327824413880447411652618901490945943518365156050229529867043004528710857808060983373282749360459373829098418832511847484840219846541862622757012284636210778415764478497614908338072761873280598579900120029448703917376169980788806806491743893607097613691076257706159345420480170798734417161684578064446104130109752937240128913236617101621055677520296727109524533378464630670744981588248051486449314938586417995000698636059748726912090450467188937233604382770589175567036835638179611247753828477214000390022077306943919160903352697120701519636484625127447252996498460936377895506132288650708935500359600984187298718476664854403974768565272655592150662299042244029749435072874979491815865792829127789559122165660056882605647547603902358448750484108530910099163858088203433801138575132366798205528634208968055110305212239419332022136645503290618276300599892586286413004351121759342152813653887738600939386885076930309625511195096443686173341094660297741210346360706123831751272775859322688339824348550560860184683623522860847335535795947220475810060255470986859257184507458772113653905183646922181961553677882766287826397113566360163187408740834789650090302299825811527808502778197536791630721714867808847791283398489353704037943883808858313503285187472613373439252030472510207973197828512028693300562015962765482513612557075684912013078076359104778560302930136189772375278963524738360189362343933750313865561693232289396551396993152749098807400771211054264893938867024315547370818405682855043516357590561906118155933567925775029291350564591479955355358742500763284242519293523874095534353889574456739773597336032722430375996961833128795254346481911145013200450333517526576624104262216249794826344449989205352400618816028194686199318973942995324084889870290720831718150749007575478310995429941659449003958458910430364591322416579346226702676333050625614224251410653718127874463068727227334803205137162388503284142368216654940412591957761946480022439516459089108486503996260392203022370202960272192524636800913852743878489935514824337985737875247609101286903554003832571564034495198320852901900923143327089665695455378597727728681725596618248281075653446098825730236699688026024926917012611561806502629261061622279934615534318030211528458015946321392932425935882141594056221841749933591506131958748662838268159660757886188697618087822457521007969356715342405858844242105861328512747165685248571559703326803505001376715571706975859071962621550203694325333946982568817345106041388178247990859441928019719190842174259835662502574649027613697588696006663970745200566724969436800035395627169243292779611484694728648827156547469763673497114466062629046627192760363036254347704279784638488086759522858179799884165595375547055606556211543198016412164693968543978896039896230864858821786228494513700749227873331064993300132532188725689061961105183637747130971393567156016945450574364717567493532462409024744692813691093880414490446962494412189088266256433991069654093556110285485619515220902539171086119301932800265077969365501973705657333837638583474185657799810115438864546279717150725668915287116693089746424130871468118481845333856114161214754723199917400679890867431954012833186623430146689664373758861414169041709170866305414852156612742946188969149658640386814564339533813531746858065159612036128141431197917092707792850404615130816362184527576489483568400372492379636785009170936167706345830526724602826531141170328079445397807261067727907273491112360367873371518264326249345348179762320278553271030509600979621309182871755468727871450553796872786069502355087378674656635749830139675495627536716846328830064680686931601610542740175419015970151653300040169920213364806093259617004091176947354290070991279663547743757844720425676611508733207580097993358346086781615982547474088197366230589815820551235736462412740828777462968808347721929838385074423758066407863550906451286935244969795421576505739475914886994763737378500855543866623035688043765603537174196841191298833401069767303764547269711182194171626385962345310140978588186912395670080766124715748149883164363490732710109097079792551986439795050928064332058905585896068349819044533137985032159711761487194067316337229732028557769613592854159049898341803685531180315501373385309208099177569215395749675149881585419277024668711448707054941477418241366487927181980413777912139747087107317562801781766546222624870111184659980153773380335195890706978504486660901362216366492602832657776640751697751816988973103553799320587370935895883886585235066709649629127573917283085407791651664906206476098947660840425191930224738050728231109266173918366782652341316038538113294443658140593867145437291483976288148296006948191506972828474809296880813785050905581691446739254807887267940099676840433179297446531095668567080684497338998248631381643114789387036372019641967349378177254999421359730127290422508169289756279798192275055528939674394438101475505916067009394402559929527547415470964991428618277558458584810848163136761612707317036630833185856666594897719083917149537876726466732554032619058562153650940094796606053401278089566000652809757066486160635350436616603020112259870376291048007443221580790688340940670051264160321599577346873636457461747744847785646017776590782931254474001800154656153077005876283461097587954601421765829412982393411707203486353060876057459005564275033793116629719771876904935594115456084846568398963885886635162770379055517347765696300076452925929664522663384172665545309740952758068691872056055497992838075528428603847197942922889977164911330558896442406100672883210366524063767560208961828066206846205198806177281805824335885184487718072432397929177113282422358696879999075366363028581706096156123051453707974311465360387147345076734288470643279131882151778070193069450564939325578225440072530978243436993725849067519797186144906055169585453944459380357426885098953894166219597573773164852725457181116075413153014124689756004691422213866369762845887941067946109502926278083267029485535534472514142007368040713817797508417907787110233695951082230305129227763906943380898984659215778807101898061562870118780453075416062440226097786969568929107835701360269906502006444772057328213809395831061239269061014933461874290895900335152169830855252938026496844998144119892001258671403777310463426039578179710651795166356087342219438239766197750369937242006548259337510481991209565107250438853860996898147934225469877532572674588353801609248487809252662145959248765625289995956883794939093218231745481862892446119869835145372618213334177541760943029187443801285231201423886952625149709958132460570680628131899656003352641521367429196712287285694490334498739864475983916713889303499064545753510864755275653937532829505782277795374775411873172954223341542358471182481923505984002414236599033537461855247180020397208511263619186225976620591684316712129210844544406755931956802515426952617045614539971873743355782837341637245409200461386196023236287785520184229290664900484965086125201502300700506309251334872011318709883131732039004125052681767215255885506389593529149227932347643674615527068214544346758435115739448956650663478819889236781714193774195795716589972625003626959018752925873086125240934229159872445760148095764861260934260272193309298532624407420995840265756435854907121165993423747950584225358052972409395002514939247070559988863407467697675809045753421160252262852996534931498951894431670946107810983956045933865965397590153647155063806032262272786664673418039931187617426820890695944343957498172146936212114326163950883138799193645229565086676885522766184124884684183300256187191367483727603274635572075990366491782576451223425224802208340250171548775508372373173871693422995752466391530581042941752039214321170347881597887779021579437546237820544380460734636927413046082236499394818430924992187253729845631803990066078696995795808032816982191268026165529771621423344953669978234218350078473443598958878007962926581936708187182778351573205617663251014888235580179078252835756402871790268265852383906330925906648883553045529231851201513662356789504842544078455579411055106603941626035373287703369045634277102804580332259613017235592305089305505026138771111572813240513685551100535976368254135380656564933370107166451975206863242774622197130098960849483523740418175610232406968170816461656667327129206244182430221962177841167679434755011837601978460293426044278726402942205358355193124222572646431527107766564550974991616758822643093225304401124536370886387345975135960213323677572964411498509234761326027914356011342193389320867293462916969718049346965000303726969228842926521930399070094878217582794053103642982484738896158398315834314236716875469755643980013283036862968693080341586549273052304904831996524423301829414146840870136777032099028307703105251939443085882758132626734476734644917444995173992758959049345943085157616546708978451585375021121144521117223349930107002371216174617390881452179863864239817698319103103835741356440497041528458029072361686711787335184530157066205559683549481517488447553648011156371477485530595194510788812888581407068153053659146452600055695561046028726436671096466600870199570069783665516619102916075092717616961531698862191254897029615506326020710842212182855395052873426248216519780842855722581951862658405109190268569040310642231306103299627985562797838689434964034392124171581740672464076517014431899208613578011637656076476579786329221717905802746016126698896039794207460306779192256520884509085535800390767321689294203308074003286322809641886388078960434537963615872925124715986821676283201607986094440910277459097177079925124629531471831643643924555236019404513317964668421905224530919054782461051034368207476740616634023161339401801661409884921336301664364207381357263900172133929578568876326060480155476377510601188440932291039950729740140311278087389278280803433931901371659782064124061403695187454540729017414955178591806433271611992612563455460256557217219806004383934562776238605071718123734823780814075859596063363083111039330354145322922739764644505596593160124492797031006344623799831718533183162700302175243912690503391178595889212655127609487888052912114570167818933264103189319647083278473836754557134291277642455739097158518443334905119894516778337043160392968055778447064521128875958844435788547364168099288970781341288977483650954063281756833823047301256899301630366421455715408050184363738930251487221935705714415972544212875730829620399791553600289909869854997872898836251433214025741502129649944426319131213184551963092497981744229085164396551040407080264448652762325163955320338463349706145806216154685075498795213684994800480497613887908507727778116743755563717254263381034042666395167907068569112893540102985395923372617510446444507022711806206183262542130957264567462769852584420740161731089855865870899565579919085621093026135350484263265199641786448599462174906162877460162151264442265442690299528970831715687654935807772392031066158189705854506426242048633741837395331761310751447445589138965953847694777266376988208418474814714294713509447230424470015434279881929897102203308923395552874485829657747644787438196886111985142938434654421204210207590729111036890567167934570489746450693745172899880455164206034935044590608428149779938100542290287868792078902608828753249797202963507247081175096266780709946212331081541454690970745335781054430664324254901434946046221252820095869414090859858000148321240535208497556671463002996640690786822176998407589791744657010766506913295193887216738480321849537501279644098830564296088127585673180175160472323801615189043885708395097852078046905803236193862438797382859739386585926105489961894096813473233818883169096420147916000232774022108772979709380093410291226503716384541178895486728053392440790637341775563468256016850444009642042631423655649559900069523702077144796742827368594723513344972279301054944735743692916257340202505483653250570963894047352890115848112966210897191473442514076854438571020562617822282008557698935287782953589229691913169939520814917967766497174273846963515498832259339016243676617906817325892535643245670436247950437123985179817527632829755399049089779887985988373388279280282776904528069074400240440680711620024931150881985335064591278829809055363031942709955619958993699533800244435077619604876379682033276893859305554239618778113306275461621936383800180782695736450437812054761941972344609106912298360205565869634729166143012701008729682180318368634728845312128258649060886678399927833447629160997890171538240008691038771169562205869429454542922090709060489239955008170138913547720851343863327090430802680934194999323228488812593237197502991075753595829892194581631745109525547111903885800552801570458173832316295054338555772106309782637106211948181354019128362048074751697717599357568794738611067945831280655253000351552273906107268398330183392810121041872706995193864158023822687985431764467088489170489162504688761246014812632797695978298553889802897751828229173080129253827113873037484614960401300437267728435698145273463763422223915220701436417839895833447430100647902586922816712295777754052186389688400053029617965101526331337031023915601107629963447042707871115227009324644690193738132423367774512283133784238823803920680289376901923009252580490499693994178307626225990964597658370135812844208070572365842392264786851833789970688943436887650752525952140448425242720426522588944789175796333000765767196790482485160369434361586072776002577700287423021020442075504237923243466714068278494128501454142176541109109866426382878066783234316361440511340084518252549995136193873875676636625961745393437316604831075220992885798064934518624889287988904477813828022722452590493089179981656633215530473161511828214076651594135245440581153381709418466698388948769356908763722292878807894946945171175602233168834083578666169612087636409996423917724218805011382971015423520893761497940446250741681483325367183024821498705863077480472539940367811130917039075016421437654130111034508822232925145321775289725143699518685345304425350860647112366011007106568165204251152475533939938443746208604676910426240831050762769566970130198269472529913769239014596198197814563578746720759563618863728135771341273811580617782076401755740401486041499482163678708915341131584356997917415773710784303192203423591976797512974010511692786254557442278758348409813147336946040446293667469385414628227457202398345671393940969379384884151716421199092482124282259694186686629276259351766382037002080262567121314157012548050284431014289510407940712986418755619997926235750752740257053497347857663453616223113007883433756063953867799992372715199193156929779556743410995958976039349257760768056096783512614539701503340996793761459048946321981689016998248781189049645476390690489540174662713083028290539863015443502164968280300402904568104141183810538078181163113283935548594723252393036325891817659901410083057177699682307937109532267701678313357975033358989493042449038512433641373782950648707657590496970509728461584534589745371362176009601963361336165360873438417171473490887520139752223620529365920214502395115714594691906685654419208879191357839086248655184170371712784175101231629667413763657521995070341033784799923818564403140836291355885042681586159812201232662409679815411864727712713024545515503969452717815008470836227111968331240735321054752217755641627892227159712457038352968097119711692363669085981360948846239542565778942488975857274395869889085674841809869153493354293870134438733329402115851314977418652145541686433789975797926720750244978004022051523410305073389393759347039707247151382022558199982708140768783149022414002870632302087932856078144515190234631219647499134808858090943481865977521479644715116747076613761063717659484547571783369147690476098877603583040944325513712056127181971500263864395357922254562867382096264072226855293400560987960569751889636284180784063151251101655971070156839770576762793632748970207104116777758263113589082976340934196244263619494370732119657840263823783094976590062351019525681617260543452727136135328466002577498371789481956261887726350121196091281877852318706882853910859369097862292522771159434390050426238036205337612387010375730354365697114771097473996941164522075057666922248154575282967801803530338291476192559862004647377545712884025552040169059719824868279596822440901296466697445273087801926334520908973414828593742568363383307255462229439736305620460321199655913099830802377211764905580578740076177644360603566520244457572341429413153571304984434728407336137449058105718943646604349483127707835122892550772488262228832612224371033968787193860785309039532210660729513368953863548060128398888935019664409762611956562611818589635076135572200616511647726062526729995642472207620865027911503105594843079102659964834966678352898578015029681898220254091902134632589463542118819910222735342763948067713030879375402543943872647201180271076427004421949409090721538818180714079029554915887929100145911488611792157400243324188383658867767729862161199148726164681101508283430183064762424188222754687595535395660766091866593366272957620416224345296836960557319476831338060345652451666453651323793441904079936675841340530329069407640012925445822511793369010080541052267694278703295071555544711102644620363803273274573983922027509784787564473989964609329328566301898228459940848313090690178405462734585954284067936603343775039447670745129636620952046077001516531457949552892767771171091235538781435751140303717463951471891071813442040166922400837288503982581566945218320342962250138493459278020053400110889308909218852933854588467664043121384920090866632499709020848155896073478728875681034686836955199816311202088969023580049406876179825621807445963111574723658829629390756337788228271068823875200977363243263232169096582837693106687648054978444457267510596114572509817166992174917702312994261511814610982213253124036259373322110118165549397438264138357022201318369483604526485744057705764987191189774935716737509116564757627805738594359547641966465241525690357332325737966285733177291450800877038682446604730659445831921182491107425686113508381863264666764000843700302783729071153325844313159878889379512436765477010049666723846927137949615444422722649150244074833223567856765785328204681053999206490306976067521390804025168471444295558984771887109504012437927062038799859923048388152054554868448772666366369517632078119927936557391489947133727603371779002417342042669113638795717414608394689852339890175348944203148240281210366976526621729501976626620319888349431575057140627610772343174597013890010968775888580712014824714272824876119205853511767885704128037939572449282118901305951932668270750161103313006040189241868583306527637922579418276971935534208774370199622881222276670763091944664511813887838824479548428722979005351367037238670823685416438290075784323643704147544050985471479411387208897825388257011330656782529277104879564379259778856258844197475888293346994895952980554383683916483686749386112731572961786416370827238922055608217629433165376903731785510899302876902595306717249074554010739406906534876676631050633309962023450221600623107048797598463555723907617908177612608754749677918885452857655662589640882505709937546245416326488196040134235746184967537158680286166219892410380485125208176137889895629292371507862270249758650548044513018901653219507566152625150451799680361554235169139878261052943573272768290628896751625903569932792718684307175911560960740291493423629805579168014636512233578993238220606232536600823592987910832332032297069233584024158654905828251600332618380155657532623190995567421719782511241020432343694738440899836647739576006842257720955256244138186922710756074579750666146837671559249665109494082464828015059821827981836953660453074561542449248161030375091212820207366983690463383170146678210033583974235663949432536937653048276667156389626148309197234018276857566795812001797914277377476971234007578007029795387734719047717220057762952017876751354643393611854278165577705407371852353575459388867794014293554069969345166861099203450994126312805896275372699999815148075001684456581124849040896128526050086545032000617645696327176986112633937675797423923031685392096286277905781016660460305303020882138608339644885952294536129022905613610003944215851713680358252110244598725361378591628669550694360980052688492069231018821707129320104302998535499636804443133860591332806582241022515813263548415741346074985377985170635748660890246666667473549081502272396290395483416699873587287727220807308232543399108849370966846316979350212968595223118992290512092039557097742968070805711608175271033057808123384280379922725328983494597753029200961652692719934001686472031939992922222975152362480193294159002270092816115182269829220578628162655775505303011030093508288797573524148963230087712769990084501982680274271696623201529326116213476028236979291865791831405095228376512314948521840050623188732475835647160492100426415301639849652007142711825783224657902736627506380119640162989633741356956867377137884150097555578985346739653815814327729876991950085807096153898907230602052353382257557242747404482372418200241023396202277296558294250825365897018576013976945834903835489074711385259934570916883169845088948656378722480593213237264224495989582535296042596861747842770559271489853229335390407399463005072243453055177171765727364568809422896481603000305466124587936374752846231820870108231100365466565062686415141961955396232837787202537639112896607855152863214495282812279151685611243867585480078730147106897005583010954270473249833913585984437134785167193506156286435009740432703617599358749018167898184588465928922899602001278092690522306438743478184050385667257975419214960764580905691861465650709615759230293237858913389852579171817702261119544374998772869862707169772712739686397539895643708748004228193968210216713436932961912075921184912883829280395465409298315478855298813926584685554806796131946240738133326707400727262172892113293418286398665210305371571022008893848212999716348775324987719684209092312509752283899201092811235224209771340102855313468680792728199562090450066139942876801947476440914363598773137378094402690623320454365606278015448478858634368718629630909262530197810542421248633956403027315563795932293109283873975848979882042004863065749522499789612707616771932408890860816033733877732966338022299770413546320169441674767072528956769188583681026631027414875647436251230615292515993267274242571998470560159509232693345609964193324671875751510356816166552216524779617276452706880007323639005382828364888037010964047287565571744083346538629918825184482387960065162847886167257057310581223427765819622050088794233394525122869729823009452862901644828575041382049437189354731959261787329922396698805487407292004884588605785969022058115500469614531650151305380102723682268601479716341473889040416493949595356642243234978873970619896059754479871709076337931728035323590453951476326493937748933219222526355308168423119199032814239024174149194526405656965868208936053781272918383538560915605060554592040826183519939114386032129117049627461453250145078632488904989196585335420444494931021311141199905967172914047365337091577594863652070243085793244877038593271176717167834293090776384559892325960291494086693188915108758445143901297291163492269306672528425545440305660759518663675224137102580816593103654750657280847492947994190687040711665416362852680724282572195233015084646759267380210658494328625357706019458560313356759913840410212377932983921166888964857156513599933866916308586048084400955522488321473621484227599402506052091448414447479874644829376798562730087626531226036533541551238239737740158526359076306187012211843839323899833401642490709057562930722718562801126240122891500082325851382587004029473636807828988612225473888086119061089816470414902621402879238788854741932192688915143758900755789390526058560869516307988292611020248295210852694166725859480978290412112752223430710722756139045800683811864681034290432875941289624828689612487924395741457147043878380723329671746457144116583318477267877395846424625006801656965834400891835594271187778581154929863139910926369943477340347942694569320467065075349146797592628318966332790263816322686102574794558995576836958475989371457784354216740541597637221060798592271386796126925036209385812594097218826701827323744389526720415787379236329939028212508517594265012155882629222807639974473436057492203010653579114158850727959311951268394358489777515868102720533043067359854709756424611913282500812614115434147992355695919198209422832778621493243292074866849195116408978973948703565250331567929494713507562790656883488564888794773411325636949537735533688934924725890661189894384875184439702255608088221404988411209902834799521544381133879137763116656821419195257883960391042347221535334412475089248395925131096283975530545664396585438554674304161405944968180711246069625514340510315203505078918699251857577782502784402468736927208877024255115824877728994717710174724869357802359992879585982158628902037185658216282650372235469769453151836112558726925618107746092645731240671722987981998366795580592553522222791452578268706329072106536343613872779637597808896719362905015407800172273843811136750215013554823055457427240837903297512273360578518642673024600149268880023030557802701806873674477898823575943562327133537173510561743925492252805426675013947782894148898283461062808283120549936560451424856146112564493859229724521510865383646070329226179748927298345406533925326389895271566150445340438384918808593261182193144605540059702550956730654682981662155877401798867399061295596825360326814272524313809003998934548325073500551032300392820697011510211008029310075794417866812260394910815917934872526755590369604041840118076180431651469109612026347440090384890906757828798652902185263090487268481472716278895600497426055395165056752660042066663527484839081944438562971633070496308698594755550707471265280889839595830544292484721268417513287946571006680135580912766860010261800782330037153998292998761954284639155309666180459184790825500889626345567836092620739432768814689529539498878412042483590620782904122993087051658109207376645332671355569046047313863484089539286348568418597479760019295444741870278063916551987698565813799605815168395594435442233064998330251307632211566333433390174818099844729908967311670425173558413606783648078172742236291038468304583042202386992580186531507891756565794146077134833162573249609238403190622935486593441735003477680794673969631154516172047147048893073020228780913540600746395411230537219632429159857313245849589070155654287360075223788296377034573065009501654197200850084691654194592311208884795503857114598602124746282426176741994915595664675198035092520043483381865766532261661941964553838799504921553063258628744975817245892571566739887551239434330003045234393905312809825439481332520343342976653547313539132701937479580547674221586253269468281006254156448314253142909474830474550597122294194419979975867336857368624803271249257117636751725318354272358663031177085432224804523804115566770826207713254189558499571250243155784935343495028705668439961650012974776094408758785470597551053239382706420710294892215947098287892587351762635391366970912238750071954333158109544517248620616437921930749455830974858504244267008756258172700669559236435499066082073944716883768064281592554554502524041887546098549244998733200139004648869858782077404324916761273451329390853937775269098222809501545518333016639312533559620339361050325564192100502291606534380674521224504780343518771842682103744630415589941866553877090617811153607863315532571740481906121886765634582449263009073981855668881364445921432285737134947336054780932079976144317393130562539506898899288894933124173620812380799674834492056968914249969720693610850659052458843741328419387422741644644979677029829951781644098944449567652442875339712162685827695660556812305767107730585138052506305194612418500676187929649491329830782585483782008666515690176340598812119565008557638343308509483030186421559373454544502530647414951864477272111096784643223339124527457081134995679158485934957162040190452065526582581584165542271665557413349281921806227604439686571473714302555400238401848045947571089086294030059084200560065456759976561693229623319574732095389083775445685082116488956036158077874533826752713330922153472673403258665459709560555739977918449096342161566241708325773651944566703136795137729666512827813153577228658763233505086766217867439377948836420018923012960268306201488268727310716306726804018420397246547900979328538145006888165054758418335254203294156768934295406853245065873647971832184820504752536536149272965038406868683911922356919028934449220543253856348143127607083586110299160857547731936330332661233904582989292672548123310767245827837946182119423470160249920930587152520293881730917256587020600649509791047601500076290934885345639072690072684439956042133036966687408462681210280218611091504744087324264367983875468145253626550197602201666335813354582363621402644112498705822129433396635504878991779415696135198572010331104620727644940876097944637739231519933808970572267046048481314999880053791003258778484069626708391946855459827387192435731588992674081645598891400998222138303174858949149673285487760130628472608873547598859385198179047489263623228560389442994982364684349531024402179831458140672128905022716100988594902865404696833973932128222205673305142508270933229525256641316749555889685872531965460421448575175784418008110795569299295686145257568171530189672715657696684445771299156629644224575001421238763167124971194889030278094655623306446139571743881349132572997715355068472213575472883813294945508900631796573886574064043272613331670048052175477505066270123409613794150696757377364630329672338861268900793149324020795938818426866344224079953364893075086457924557349458420300806012129507369820739453575366742943484538159504774022812507110959927752420519956358021773317788395270110787798596067383032855554688671311624312471403378268411528920984765754935840654659542635596738776070134924437741465502865101425394668002228584906773214029813564322994623957092561945504108408896817024934822351789727269449445358534162440616956201012781761381912639381780989643928391639665085531381514633677291054669015447505251021225069352055691670998229606887905410967340445619387161652737397050400885349018090861965054229508484366751398364994339557710713212765267267840203491113936693711975572118411928850329171362097848622413452597431460307816494706893842871079549583256735568131230171656462406805987955231376795078767760232380077429312238772660026620984558860416832126620689588430191188618013041583378649652312196671343426294604073630436184624119920298005885821710125285358438110020900390451567331574507917480194819556144967893194227154287630329935867852766172812053241524920126440580049153490100824552038110477093388762521614737325912433299701556325464616220780400728045905474556283624128018107168518805646153190114107841091145576743655097454291761038975749493417969363888085892831097012963020777627057081885168297116938638553901340851193495597248377651111748919797015645579062536659361391696119165606097133460821467443080871894027132956871519158939385989587509521631852406710908900614647302928290838209114472614322223960089020686321574180601871874396329686257116921875840868476253272829363051568307574581642936660829183075310749724497214044546644672562952846529999625365335835266289185205963533860586082172745589479421060896669948386390748186588702972558008816136721661823013516771921211643372691847981864410001509523529860414000669166411898176968247698818600258271508813209203921013908360380648663064519344166843989026093997083521951498750121079005893847462928032664145075304426578119605532279488017858591692003799685614169901838871602224998721867026061625498739722821799957649677878900988343417758622750720469593776195170569269788284109155491389077107569053291723759696000147903232480462860564147646503808837094778984387902109029727392850636562923025157569777286879768574744622245833086833714051207565736173839327140402963882030454936961618797101387239798135208236333223570510505108546741904669846732971966767189124825778747332818022519639490948353754322792919426226761487439085489328430514524605826154962563141788870100261067845143152769592327800923915605020145528725571208956193355601020764951245075142220328219448955209199469171954980072909719392802660177013692741651120808674861225233980512430790419799473399597793451094359023012391752967190679978736269873447934406240708155103619609619521345866405256899132477445353393507401310927175350979215557458337669928811267771036182197024581782113120862026546768248927214992770445854058174814325487720554196857856858926286426262504019137115646279913061287837916155190065171070654905361463462528554021756199763053454830229581044112571276777191660901465247546350245313929738289047757033962880018240700990375830347131400880272151965440196986994784758051775831729562482748583547716166127947066218515196803084301873065217785124428547294808747147005765665270192971083444370411941528479324778022890058487811155666337144408530431652835785533860045175235770122133761733934020539059735360537502953846648627913780780780873410644834195234121814284657033341569171257928049230515097362983015530881742503582966692650644806700045766129330449639918484530637399095687951862864783771731218823770082780268728252342132221369257401978273049063267604285430631806371172532912276741267066456492667111276534591607421341571071738611058192718661150289748867620060475764852953772528084521614489504896469127472602625328976102756803254569497461525335336647202025971822770703275908530172359067968713570832505454881846424760756084966785657050973207915452136812027824571371982295526685551817129834568234425212030069151981005810472786312888729284841863010736465710046951431174831123540943364541791398478553005359976022919877308325420988426294765022657233654273586800167373604432464976288988417183441123562424921087033306315260579096033863320756472545209046986254813063642647957255487818700878277980285937124772909976265297693276602101872276348608682586951553816345945173102756892041297750775724684634227086195729420194393041461488313199542535168925183829769935478095812909915574963855132865988612542965237558815710787155767273244321739390831660838795660974923756272454319106352232976870660910313085784437276982464437894549938444839769889910029237802151653892083667995078763982004902427083035683884754319047234258279273851264943935021478339184747466194553392155969954594495792609904210357429450775806340623655071450782309984499332787517356294686559265944637204180953792427112203597806366070661989150867726894611447216461281654724653647956707653194592337499694476936939811690497691972349122655166277161422019235739176640236564717786461971503114799005910565380372552992373851111915893401136743908746422213818936538549435416951178089305090399128830531449998456771301791538594022308194970174876127542302773721843052244570060707059345458739547109076826465794397730206692121373619953695784008905981577941468398742592071067004951461134466230840655667685390620211248810895647839666624006430132212091999773847359853242951802995670567337165678982519627311118429765275081278535208659078561822509852997887552604236065915836004797896480780159257862066909687387220134429411093445975739705215687349235654663052866843647669876258640793061825289492998558160543187963227324016377255428993288946483529419455208683911894671598325603939271433537015858583085440470219808878459802948698865648858145853488309116699086215483037274127646982623512877415897647911716305212957068712599332056975731555905051628958904187122179478920728891850075708003016448394048075273134949816799203473097607435604918729481483870701050776506700998547117115775640473661805980850420684438703291505039063370428955842580398856108546356524482401172000736328241398542086732691184004570376150424157742738870145159708432531559631598331356165714768869267418550104398125204502274463884051503175201767793411339647450024413906147197881588854216045116837444466076677192825941873780122801128391505159764326326425721522221647083318115076736163206672369014239635199734543903604608781743849793797520344693713391776331469434368910939367633913853761593269279039272743497000610362530686953385764046220142457162157345563294826151086783915821738016375529815724590967269645036334218841837295095653968061040176385734483882627406228279368131856933126857854675034185404514010870819149726674603264561299728784594650140812224926907686645716273651581607434478927882372387033114756075759028392542181388130781831320215498494479254131649138207750683020472172041628727383139681135361222323847010461474193493812480616998552485947636257747215895504247237584315729874787007933582501476561638095125369347103203659724983289153209479097694410834751839307245381768781200891202293248564190889489751425521278037247890902757636582859476051788983393362456656082931982264033161627624605449400346543408094669518875724610843377639098830401548005364492203336595069399349614326798631804120728934566829170230994446410273101363669081735149229289841345984281860763247402722722943682311658517294490726367401143331544876452681316135577268534953642435060926637832877133807358124423414900497989521863028356336207161702299964455980792852034895410793473769850285056501952680694655615082894084915570287795348815511339642731418280576237530253695031317318756260286955319192775318566922075604189558189638901201431663819163445994457576100258668989530381194680562695241902065377826623747509778047886436546041623977497651623451325371939605920216417141888745023992386845608980991422432001363802564226747037685070861482239635441980551121916047987746024903026381688065902724666199187502541337511897579233653055029506619999055561236598512052567774766605882011830704581699786361764932581129029338676755129071633840261865938824682658442648643776673500222409124746210142533927070291735735904106964846152250315258548802170833312781323609171646563937479046060239200904130144051142148646099495999693255119801440977037316425493773712548820109600919497203997928843514432910495538020714963459073337188824441773049841287399788783816471944286448681041593296623607448365404197580518396246370135554733072860224050294996043175781901869568903898472862120304381877748580275556402364881893543856806331383830797029742734731694436964075477653661942991637436124518436218823854301588609723116208770390101986503939971659324768993162648552567299427582063999443047794194258074947495846015266843792223560659656647734997404659195980208464764751897754009907490723704832707318563923019257677335239833643653148794821252379604156418473320211712271767883603408615306726044120207746663969200339291187588657870451454075383910877430801064412735136496808215372753131351440093297849997891984894045389557944876267788083738122146013757144617383723418957523821976446251728311147899028346817396933627647619185629324515943069594279556804154493607727695891763332861373582442623528524973490785388451256027074410376950479759704613039971366766817314178898878412887071641414693148742349692541465475436590262972669728656318999644818325869988895634172371319347966021811035801417856635708710879348679522798679662929160218104375225140440171133517906418950206388794441132044732696376303670125858545288076446843447313060325431973485231219022962198754485488012765121714303483333531538381285723383919641717103520333517675525808962424731116822317531916449274898454787781138340628106331388570825900069651905584494416637520326704815424721318144495150958774868967906221257144212798781529226615760543323969645192366587975805566972035037493951635262938455778025632855000715385666322348286766435446545228097856761463581226709859808702017308811542321774887792981119029455155490697375519699188967336174727902329555599817808590142051328233919134030583747281914388111405173657551624567538901394142241573995594814500653496467687642379080436332261819085457799020163066895776840789370606235138859622427208911924762817807888600744431510889937124105922757834970022435562517137300471255928585659844037653786973037614619395153305750480459591241181737444244826089114285960299527302768727620363300896733002972701879558222049810195503777785287415279388623349389555770546673843137766460133668194478787825381108526348700963000849790723083766882373919877698188676270628162892281351306389510247940838735999104825583906427514977576727057916781758247845445961308341895669736413491405761329733850737194010142131065654085682418284775722686589587832823759018202699302578664660614934401108528614430121728855563231684299551548586639627430407232805289905076697763655531618144012879639754207122520027762472568946051018470733014836571649033019578254185836734568240993968674281019750362431424209305782465150613164985772594957637450401542216517674960959944056077231630632659768464782373394303279639306005350994976960003448619259240624528145435162093852553677226809371963863887073820567886594402928813718167517614486857576988857422226646744662595182868995352281143374865154065853363634117344164596399169295491131224793856511569863847060985051520400704715841272252169398598306488095735238353104098030618650679924795043556186941734828201701908019581995769675664686975280969019826106196068764914390094560355097686425150388468814526611588108670059797064646256083905108354544843043715983243049983989221494348690156665459655566467485403069436139506215262332168046458400491680962708830521662183014588503983207178282049448823397637792540821875865275822545675995276920957755523271984509420389592260170919466921081910864512121983378753494732777813928702536127809764944395132172576704480451585100867003673412680767845824104664722356029445165030805083556818695341688926220298380980383271039730406946297787819646341128007051264489539352583576180300914657874268000082123743119843775348460631891725583562040580915933977238340775016051435845308617792329020941308524521510121868795054529280227847373733856947583334238617689193769940772730788011178137855463888709818524380549137004629233799778494848235494896815707810187681992919337150944680899758294000535884618882042103609576637494861811811702740283192837401195398947350938675424319205393541631253364300636867274462732725945232545664067480070597923400603881649964207559601794377814943661435462873394554874662436651868299399342782199785539945141846276536833003998134864581480816814903462575607275812294077791018623917061316200474089167744121761750422567459710023967028332286341471565030301433992486706016519732231910592557251980727105901344789400349929523096454436905517433947234385895295962270345507187209662331432789949563029673768654651544650845052082443414761658660358904563920029459779725741776509983026068404512034898600280495608911824160441784746465182819723893880574309122450833146985972196242582486936795381014113845542942017368547376166334783586073325369316454875771889188678213972182128365518282149114523737817355211447535278829682321123057816784302096546957738762909080277205830949467752219311053427246206377550916633384999495526783241029887295932761618691057341392296487793691860503822166900616020684804046488425719368916588420783860499080524068803080242863123269217688105504988787909349245751750543572240063040182394963151830834790717257897462643243437663632289773560230241380193800565561076386386370401678727092946474445129535032830381303367755606116553659927544538041693234537623590346592627319422721321017396024904831498325817429302753797628472351297504995733819374310844859248914882205358450007903720877900129499553227917012998185262923046656212280420429139335980494433781840729675424455974857720764381384090301758787866186145393741847453400464015350065865097431198632872205420436160520993022919994147509029725505173610933854972544305650824324688499395927734778751295275942962043680427242614554280567902427450980472749188418511935328904045506736741627363106247805743124479926473669524987594757937284785396827777298614188665311584332704032082263251969876028848693434520538673278789232784344217494200240362915734263464904632705883763001755042797726602754800045275126504473303522644873244864638141351854069755848497938791335997972792441012122683314486417185120431522523277316641526319794715327848699503301970718641752296803712159277717633425574379400367539953360751898188747691595865981864342598313221538275488618579522109842762790707378209291601047970412233042182291462626127822116180503498384384751190123458146099360854146290225080896128320980412685833677227816552423440184205750724703852367422755450398138941733276093422308845006068163624399322144190594471115264137767145136120194985726589619628914068757138181990171780343766720264155857771898063772435967495869899091495732622001147285954757527450064861866980356513366547902324208422866018056746740650485809860249384992747331826020704739301775546107400018280612023260581611512126046845020368688065694428878540031901866464989179033948376996937451801676470614645922443711668848080444902640895200252740457099683615442523250912039571692301279065911236406529697648252531380547838354550362654813442708553507494185786645511562644651998281978055285991197196706239645666680652543932800720217016781615318696345464423740304294397276024795393228443898655113005645976586096245899078438864318594850959433947130156758751971835612444926505740532603242769127831192330342631156158618928895811599842989285126602100314486567467757477268314322558506415566415172512626551485664851029047831487369698981653291634563249688973487009487610885899348220094762158044625294067690377118524251389570317479701725434192610453547789233476229866805221579896403697372312878070963371072355932740360783547951011734584797060222069149982307498536639251669635960596213560540236059658208588320709474715538288936993393496109847558031310053437230155203110901664250106386898169882718995969056654582611084638213444158224478407267648583181993936953971654650780642458657463183527822942844971312009923841010725201466632103099613659604068382891374907182616730651994745843472388249929011195072471716438141398730313677730344702848609373469285785886964884848626357621666832646723241758354658222456482174038252025941395815056821164717624609855808080020218120336171000949306949167049218356203472840802743210650271824858845773720544285089126011304667153408566274283440508660665425402377636796419942340438187447308519885134061448157726265475630816145448467275563468270937295202188715284393074229325849166598444869311896971444523525696498685999936823088970615286733423083969259201491709103766641246462356234346490416084454895209630888119563328844562859010417370654266634658794467510011531818494805604831210803363225211261525696763765661836342905196539542033648501496308581144396192137132695310324618061219999984027711606488280755857255458821847612558488859810169959447112415775519829247466793783330434917402942577295680428997291672605088265913658354473398384402865163655500984357561482762398184704931307659129970308222944430539405159205972411978562784527014054446782446780136466459278500584347489717649553851332477661562580749810708775716414828872039666434022849117817605083501936861517520682414651120180201966631630580414884578034198564832005477447987401738269725282988804734827250670275765704159143490636323145146389849034402296797777509682995747552565872262309591961481641113921658184010987177456149815000347257594936028678376420858234720344128064393997281257150268486823382275091656423213187779145452528537227676827585085660642400859209138173562248945821470464037591421923403155205238507895577277420388237661217907080548098484105763437653953754605847481183499935286227449443945534329036699467647613486568857292908146572751712719228290115481057839958843900313038040235038935330885812168987702604404718767543351500968992155183657277303633427621431573339811640408829526297729439962780453040375332879052809798983779225177637074638220284424775213086499177240379558561668113058318891678660046017677383307000065578857371094341106128770916416450530450405938360310211164321395859396083414426109452103519451544212263482529921221810407588428803168502705915386056896529275439393843209437124509393847851624711514807578978394145042868078533098896486190346189647522593606254788370604277550077829254385968182879443448141878176692443370987812401115667799744369668030142390321532773196527479452137820173221651889542644479637847303515208066197726876123016535761432047897719483582684754045810486292808829779668774644311644275101508374868898889877361035155337726535263347885392126255079645703276579297654790992769039521623183595079714194896319978440417601804170351972475709889129116032550670833699760497715923531779380968040829701449027839591115420461529297174874946042768889595842978386135193998008834749619524570590434555073908906122103849623962969820964927254527362437823419520750072432447823188792945041935461968088798355170841921382571152021715805855472811007178710521292079644425659979903143169470305618248832518207409541487252782222359567669819410809626610907524703689876651361406533078700071650111707288312179958591207083731321077891040112632466319417153323762478050250844755509737649770891876038570062090619058005085372069352522673652359688131761952955669014984554572673027746932945543731791603618804215576261750128954371314453836023962458282462865841185220657579341587023860047135485838205077005567114674396372798154310692638841775082292795828723180327875795307815241152153377025221393173179513680874771624915204322473812331068414565889630536992722772304218481198090219185347675467104997524034130974642661251606757619108106362778579813137155526318700702843171089858171898350089447232948543327328318189290067451633765897771152052311968029232221641680426472902339052560790007829794171559544099597928186064511161651470674032813493368723852227671843238876473827469270817995986786461896829644404461274819577603021544264208219165010113967469831601954761063977303777569687165765849752395251619111084377100108032455367838029619357824999307872606911987507037233229860928062546577744954053384079240519695809881299191666824936059535802012123579367604681023200491859691915903625319666525329518428671936961466481018980757712951158283446901594367493218465734430864638290790478168866382146279560706254075032429580635508248123518413695079344796010398128757209905777632820938669685245044267818315103011464384043643981831390089213625778128897260688595809084722573769878168273672173022380760563463283589737640895006699103824875235820919437879341776416389156899994052133084843639630276739608498883136643874481785493339219541996981118510031718877649972225440422678098899883016280639528577227078238390386625357405039968904988434627200018895504477333368331838824545553866843459706264693540507428355140296304443225520585861236632088469822901016733694410167970339708616707733767943415513770287355576084397406054990153528441472674052033507882594547058611707733992974195903947767588618131963739311145028916438055346100433667817464293539474312200053650344780056859379658542329664226102793927566391968891390989731776254948361380361612829198053813402827299048780374762156426965454021291432715115109803127488022779312423276913422107411139035104134173267353700163234624527699591639613444140407606191155309169329613139419674918930204347380389933220588938208675771865595806022441037014099377574302773515708956527435256869422854678049634695720764597878171295993685724301200133125937227690828850046258231779301564931178922050059960688293468558619068755814277833193729490881208363424177892671958422105862886751848514615362865089043062403281192032237128754187169737738109129557657008536597921779471358640081580794273648682507305716799930402899293027539822440147225626819002348288204805954985497954339453625458159141148736944554102298964517854754173239848822481683786499749266616446931834444329869187131626790312296561821642828930204143271648272636434328283122545597980915841356539281666386982917184182876880177426709679323346585266465740927483422961664835815755828118997270583084496419580815512105087592815488806597987790208588943337051320655624029987214813955239165849954089021304159678558144013780815470762659833261933553561805063156167332751445213991189921668515173454228805069944925936984685817027929550933348616375759986207482669018807672822883272753022172921046187233010867677340617788398222449439500624499136131951349739224749902273805940358004694797091469516421799245620944879603613797505057896698756318941453877033382777227395650297214680278172485694070696083080147379107711182952955281228144289461902639981313883205666844482185496089980390780505296153392951594329772947543397423203509253615608220271994992861119502447318187198984031898106167571726990734724572320123570050524937656563945156252119629021227419516318394493909985173380282554991559295616254859769780181334540150991183809259951007747378291615965269475178592630642328587163489871201824245549990980370552797458853388546777862751048932729473352561924788980757359403570205744301668986152375566448139227461448872130924438127713085331009489444662809180011483683884049489219584972922531510544051118969223296415251690634083670973507574487597727489817645933504406696855455643716070756067052925230727129333413868380089197247666353269820714594729765399401882665398787516021092015073320338271636217373584984235705104620440950654317241379619291549236542136305370476470103864595672856223494557922800708837845392181115050710305015563642864331458118654868526926222501660012421891503927338465740872482529753734848080484832577656728563461717371744433659603048600468132563684887001222765254737748374088103680336329141685407669367422192957470631541581461598199515941814392021106394817436418756070523224212256054354889082413176964415441192568027428795632874639609663651969786677957994329763416085474536009637091385494723788772312884269109079360247731474638542616825732480129510933532756663110015480918513250351141798866491203535794878379219064696527623130506729424418609898112255305233560239450828407781953957735011273887639204508386163118210279426312981707714850746601513399916399084651754896729153563223292244269973761221301377398114604443652326295115201597097893420348321244293872900672704390924756372320197940710142314625228789095742217817289423220243001763262072665419840720752557732690974829569986937732856260250904635353160809147631083645703710279525127546520826606466802599452202037777675620066237432989477969264639321576616905377450504328560023334222425728702544545995387485631019734888894989869614534094038926401216050975421278601011849452984956262761526887632073424132185067088540773175783093073604360560766412781863061667651905049722492946568770380733676773492607916062594977490520751727331863766080147096353169505861968039088376738912882186001049249071419135556199232643128331316950132702815267481032671757305400558142002728531204528390864744355899307116937178313225710007452428719580886596369004023743670141406965015263121284038315717875971964468032885881532833080801735732088581016737659331864548393310184607993830799595386495087801824875140703775083202907165893001388122304698083242259902895927786730509242025874503624930524174517498560386746504421299455176171418666929853208978323983919957048113224426128732777532013912902158643046896374366427771693847307304722502744338806240357559271631156664433872377005374797226385408164739036705461149736826067717441201038269493064962855891360529791785223811336379116469674427618960801512543512594988714667973801765935285943086296151089481196022754596332243610207229902783506968993059572922147858032408036206581848685405532104465357305971312694996453041547932341556773183657076042540572407368664217939144546638398349453231232549586599311491523858563981527666791943864164122837309777201956476721026347431270082873695587280069772332603250241612308339277470540299227436880346810349738845465662972934664280692425820185039364393917613253368419465753596724948847369607634849815209372005509879439070070524001407933681557692292101078737146406781275765204226768481576955352523550717988064158121218447458016700168660579174474661719547115664173233306883199676066550483340949962827714179664153944313801522887608406381362811876784213293544545504989598114041174295681259738187586431814278600847623609439626829528925715635938265958537685901288441183093874816456837179713613804421773820283058116900565323315416432913540905698404865706670393386924890708237818983977833459354887411083629286261257779780115400465398775360981651639676426232708540174229227043996423198874722166473047637443056106989049511814046551130560783623761493373622204122246833958834814099395974694508419749822033189415988528874500647790728849469610869377108433284539492173972975253253691738622661140910851717707186311323220542593570216585529027697602628193214494745771546034029378307186744397202280506609937489557568457116841170078601287394417124581046475300685678902093250057754666820603653660026314565436845389587735696877546188812816108017464378503824217293835583211004217542209253515592226548721787523582694687179964471733504890590818518414411343261842091019597702504750538086038982476009547536498085791257981146004554827924534626192694511059309003172674193925137825218844199668621485896382049324851774722270264891805837494033875448928935058429679569118908316770546370235290834362126482142060536882372772248083762439208641072290279060344865746820311207079162657462310743588150107388161852714900452315858583619133454020114244324286394975340697000306787875285452591049428456193413089557898907068967858673784961028550273376631528356557186525879331585779033831360357959585494669596867389523325583556568996148682002866683386919954247779100335036720048102308497997678408245619079126112664815489445281993766983809930306498823547703003594404538859352412633121464074129968858790171975196205738168257153648985677434594202582063607217711826428535564707051915632188943801007988088563437736706583286278678275918650648063295155529022859301166735139892472237088791057247364104126044513198244381618778553655352545672486062835213780459175011590457679735361802010252574202255601694250301236681201977664946013031689562757159603997380622552397739813708038496216894649645321281664104462587292256876602022350369188863052827178335630645611567167356372152996139593072540279628654602187275066429711352549268992790388314372809474675471885577724657475050535066969307561732922967133961880614554952919385911617185117311801736031541623238722538215171531461495147521594894862200348384704879924460451828355889830940934876207595807623491052139856978401051202787589253984113109173148667739614157456053572733594589437157230227343919839890391672454052567507176132264855618445977179779588916360690829641100925508569728164195678909187959718022761861651779583132397854081345201795901193088805768418246377532627612404104043948436454170380091697612295286463714583942771833551486421105651678085631785146612568905793885116452558059956093320271913556633394826551940304412919987475169412251183300903939925087032478212170259912879234518029386384463598528389063602892487595899775801128835492087188388932441018965985557869686898661002023102920663143062598062381186049622751190507445575883557292496536475142017467097420227059934819518626800112960241456398330788229975514940544178899454751475411249364815320988638243941675607539916840553492486177217117434392088160334992017417336652076478804476923120109308094976896653972235394704057747315698916437641498512989560096743045121961899710194713847538647563699809609000736774446668742291861200446759283026209267807468551545412218535016334318317249145802374764459053123350296797610962872014281868336359038253473402936085164463485823101505127885935127519310511420775969045112986554793574195129205419520697225475403774909769942138795819939748520620663425040710085286130362554703324583615799305592267218147900260978562999200539661541589368929568702376371852477440763452914699160816932686445544378702286605583442574768887999662151908925212442343336515143809993956942322705123609753411785281769770568635106376178600107793553695443116999889060497398173309803653311958097231004515290034652712234901732313254179902145078922561117862034869902293726721056731285875825689849573677412972844892659847827543413394723993093963372548575579778691703860830931757458816878223580854762836015109057091088515316085439340765685949165628984530477551470661316741474409967941142777832126257600543077703121535870756980632849344559399187376376179428843018942746537560356732544030046667290499471373864641506202399110550955283536706479889787789123488636177288408332800577567653108974155000728912210951563310649433709557909846159039737662059110191074572127878687204155480145964141185059819032576223269450408236673350326567992717529445018183454234970173312869941246402261324748860533129188483836450620148280237501633651723951571102894283341664967525558899859148870897753429345274478419301597271416065353836390744035860661757743144409745992111755930847094064263902003665533039694713485928155324909433660998408274655138540029236435877532848744051195098135359952358482266318070356623713300757723080147182317269295108016894430588188191674823903667041778838092217387415257341517931563000288376557785116517247493500361049611882750589396045575206917458227747004068193469300288220994934051451965677075747062996325506748188954884334116137988823350209394770856625337102700565831199694928070828140960587658204604840146901299753764765775346043677442362760324972469781177496588374372203800328460068428860003465601277661292861444096744929828477890448647991515365678257448861556248441100653500431848411321455688949627853732173008510529386203262492272960662408130598148759895997281935939550531404230458447367625726528456130027846383918971569377744239180529595805706769729820523979090963066973167108559295664439729584131480202603575308609732780456003011663774146671028215661484123846001410103141654966679853093583928960703504934861775394028469198228001986620755511480848920546574892885446338641483399798019452792013131643387002820147838602438086105370328904741690599102192409000196469453324383946090893463239868532441417504622491278805974028522275452893177384063800209386942425268916518630581501960238576315099602654022889388235922635198340945622789380267880403036379380240592936984630856669643839747525036272149403219755132248920936206013951866303250111463053827678654688070602898084771531010510434506610448728510211824502394741455058453171699006838446136419066025849657502777673255603680162511693000559282373155767912412139704162447729744950623904571266082706267940056210419480704669331765834214190548120670736937942473212033941089455150769869874753898521213847977579674765967657628321296694277435646927129343654474593791477467271005513761090398466251594006868261826535849704922084474708357836141154649001097677394454313858161629293589381357822096384962200504915026733984569471389078778667243370508355558014310592349174507276154944395833061757149010873019630048895086970006455432423523060718812605604549672471563729881073863352694783079502625088435622360845294569576913268900393310090701044285956709477659772701351702658126122706830638286804559712378128667694610098985930947966361425982333574855556838116980053611135514888948320583495703680900698615997006838412359799496536020422502627470513748067508942705289458604725484920508081849370617252121807792014394938760785133258911936920269324802849901401547508092281199338612398331767346633647152562944331859447110573668007155741498245432253176661405130959449888923335586005356369836010541822006748176668095364501957552771501192178189404818612009240902363438856757784593740780728710143850296827375184617825878367297260355520418251267074437019789857760296050210129096354707839860229738234573595305181378284380330022759991818215786741365398627671639381558461932437246096327676517044204751969117088330722487507579027086556702800166462993572858775908179479318132750780075256894785846900275192159375789198639769840859747022410544400699976387941044273514028389380763872098340010641253683560444798656873966741807502688740460453670648818224282354146021342203016124750843827429390695077399514830595032666487880110835576985885206299136705080575757243378392070331697991085789187922358265597818629261729011536607255622722410064917865369806042005102955993454091681909635285565847983069656666423081993037267280547758117906696065248087258960850848191610680086965251970554941710925394997389789432887436617500926825636397187368511063154256754487371185067180345701678085748583632455555761201734400470160684766550310321173835909965996516845929973786472909715503591053206595437591662652372424409779798953826658603459788258320886137964822520669151208961027289795316255847865088155773528584268447231936402254726592904561098678415752284783851623130333956225730192080706503167763920839753131851106653730027301138090509479994553386735847886391865155730533053000946806790925082568155757462502309536114028344883041352371411064451459028276448371965712989003156142700838984509485042020624647062345616562918479535972236807350080861572817762645993899530181272807000085686760551105560284363846534472579035832648116056375801456990026626257128883043225434559510906001565704040384542485474155898320471037510860111033352883027994379861615058387810190847023717956226723255773791466508286923395988803904209570129886759574255400924382364288408732538057385026473038353720521846782046096015573466681019758462684684791940095217023580090659476276419692881859011173756178919972099022651795471503481317965896369435312118048461013467390524134020416426533035229818966661906131160863316901251468351459755925233086325584420235113272306056303898877553723879386397563949241416120386802822753324295199386580772298963153406142455896258485587844197970676875894880504018729034368690830812748073229555404150301264253342469043641632583270799040137062884764188247411739662654935836253385854713872909396475130842824291222423180065329308168540685622220247861800292470790118438096348520349028117007156139727752304731163393224896117420192747830453587405424472125967827704724937813218017307747795332943611822747949579787677616299769926643686605858291239941618892121938171782517003259630991979871506043279836431070867138552954054059567583263758587733862143389109544406425426367214945443842656754331645230264787076901979841459603014730595340649677709758322618139214723705074981624050154164617066681760929733243961136049360646194931214197906611798301802725237847899042612445150994236521737376690838145962970561452143817815516649931419547960725153645619067411543872700711090027489233958462730443668918014475504806538129343987146208999914798046433747309288148435990459381746534349164807425132688179787555283864477750462370061370873831770831307171283156877414841224520155294404193703557606317660067779657519088122270064707887086781926420711453700518715045554196731534678759802162672171642587463718356167584669106373332912731996541230431671508966887821690999289164813678104372857827005435063766368655819258050072466694720056691230407848917455377569150751016543332838407394805352555401350237529854932950512620228044690409275103718631453149304828349738967765708662293951648335498568695863653762549573477994709102879972489118634208278627810556354336035337296887085620889505179980448823498422773814698307126931715933662825119850472845172940018529994725478609041085086336806696170004477459745921827815216393831325456260389182964868688061136404446977182516273260148568468305551732063985107851969976373119474663914423139748901334756055368109035579447029734451637932411560776400567847076966011227687848646411007718145667065541844548999333196519598647197585544679266304644326803776678915449373093027061016510867901160290923320534637223997492689932494880908430105519471692835998453655138854668308833785643332121600935097821246156839314431563078364985408677087334479717811391094840100454530066707152193550593384053277408421182043261417838262207214249638549936004817881422286926516013312965336140786884294143290643030672469169106980076772408048960839955368469087141675825036039360222025472351260061451408977072693106904861214132800763967710901189437848263110674519082845663589688054968520184028805509530381625326666672043493309626646057084581700249679754829926497121326730504985241849068886514870545618945561948208644911836279120187698158135909214863721983010088058036820601015950178542511475332351673519654164709545386450815149851178480921876933094696464736133644255035234474121759901374103752209790011963263996408977460065654867670650566448459290689619283173848144148894244159188137536624529984800937594135721095948521074018986350856586909045111004957795190203878624730449435516040269152556114589317874242656303568620911698656268149615441132795947599005158842835552150206768346650516419936958847937765013182767159438931668307072035471377277967750805266054445069366182686120496972756176529710422594268484574502483380342828569124596808098728566940730576463464648419738177278592869255294105606519658959101766359420636273487455829998055145770816751456966863954849467796154282707478690609261348431933936209425475900225276096768644203915156612003086060816392376673463530203540412683296751525817928257815698085807402067446283897635955617477522959406249258679282521073902330013452703396076909961074072404099015184489545576562027189945282662136639892930486728680978454945849031226996348270781314568755360385629443664798540905830469587430910440513365999944243182209709282659421820234750432139729874835085109249611632362504377973970131885369630233027463652973345756154541212526392080771062738736095491412497299595550694304534120878920909192310223873959764420524506179646608154452831523530006093190623684422245457435041687732048545769572751011414425633343051177289305537190184864693512703248154822966690299035671819570105677910101832861218573324956458132576387406154869020450924948623233345837393505509448647374474491752150107007171334368654896674875870339682318694898349992400570641500305030404535724760072681369491903475251991387424962154410382051967237199139226180966742385616053315125016865425152508048260798019476920529293708810041595903836000457083365013551979374882735143941623316697028083614892794203946055120282774379089075993336160229978258606080760193162839604532670364088085654632246371286831008400149064959050466606304605338299357965621599562093206968416519192485241591190740534311607908521335206464442264747147679408486859367659972877927777089889735538591865881063840290653602047290916687828283350565330183918162376107516097416400127780181048579987030503719880838817598975909421119380573519199444446139899734578372803123458383486408170921864611983365887919388620303529871895856127272459783845907062731016521743154994054153758503221464719924121304368533911675876330980383083649479044072554176098436231237605272588957844427651942883389031780872945842745322083705439691443311045853077837349754900568062142944837212723707367502835393602398088392581312908047277623466194258331653117006369065290380939377380373165465571555842367630478219183145555643214705933546482218345784679763681722140940282215192583324044754216175012151361273166848493763140793108683308959558361644917723908202822907051542108906036064479595406580591148465822590847409899702645889684298308690303480805737651117489430991592774874335277743910576048613375701242230090702821737619732415407481672219519939010576574265672187924781838551188119747066611131841012161978648185770767560965435179758755895874497773572799864521919252822885912768603439111516383103568762897781023965848206642607943157084693366097317369844858308120740086876303034713602801456446917571641482949955075153389174814693863064826407888960270314859957690413386312658437769634892765963688184136509746981261042499580664655238171218885600173516520236857248956415537356355277979483880076612817972957928527710192000285066092142363439332672405304388871872470132327329247493689728488170702471831754393278252539345276701813275208224277572903964913351729240350160687327211941814266792561626320543954007103086892991698847453631382594581684605891162098307860902637333626118490138355883906589204213352121878893592570850824715140617004626992600727339094536010467294415047071407394890278640813475565091444594195116610693672091125413144297295095042256980714473206077513522641982803178853496400034360401582543941560512235648575685858073566049364647108025853723384448302296554363813755943973917148852666093975163394415139962257370434529545701126045035060993935531913115863199834613356443265484114897554214960570914345837309503256075650273489288443233743167481396960413643957417615162656354309531944000440224250068662137738815407274249332998904398228047241226953378849268893594515041484824102698604428382226213604413289978368006068625971210755355449727965952843876926688023841266065657865187559057450554809901012935025980980057583628332101380777096147638762434017256973987312965192390150806932135793451183006683740060746320795981719062391138459487060933541475160930624106352517613101141100020760453147793009780948971600258196829610865427914649593405944705403392857890227222090276275448989135221012146704517714979377987610812730684514613617500894747780425154288706936757159904838298848645101218747672710000940870188246292353328044048931410502248861851595475307645747877118052572698696405429506890014440892304091950974430312928148968322327830981479553708441292989693496666762924735355134713209933427514556194686217265515163764692509822031782679383132438956366715721765873691082861193635816773388491170025296944621379685591765681998009067295443930062696078533684149063399092857004106217069790394551685474624477176764950091248050157468479416943934885650260534211382044233814018295819508274453583872355692967006235834543989073155531653095599337582199969596738692108666495052393130784993447941730054579328029873575235805540815770219554747734962811692684011513525529608300052392985306493697720340435103098479260550413639983616860666743291952209439469117272737074460703927914533666346009765202415859115832394725371162219502433581506109677152747139838148405412653784470564062505443830186998864185111985269818483936077294787301379801883179639798199080880387463750530622300763410184956331334746781745822118503462830277676761216676861928281281939289921590829535734796233778065675391893125011994408966131259459268159227134434103213705061543320216246724958853933838401827314875540261396343770155625063467956555914196338441961804083238739331032156600427854873658948507807763092252496740556664316242833568749925514928445364403929326971970137190886228626728658632836597499504642185450913723214248060143439118892253680674749154776045064182506420050202006668441100645158793289778853144425882117820505039581936596692600455925371821188012894575810467463363146812836207769245871445769952256598755049884226089132462970830996553857200100376925210820090084014412060715822369821933316956783620723958996956105948310312907823179576140818065070908634680525931166477693943034996820897679032965586191561786313835353848098078351656641240505963246809998257316766167437298977390187392051349320267131774630613443363791837128450910487236347372258684707602960054401949137571410248845879423808790078906911724680822651991997244195904779297121874861208677009893933428138007893020589850231255002374344875913451179549409699137214792595191614641386005701107624829633580691495609130407623346295331014899379642163872055124656360343489024723875587982883609805164503516823071914181601578052865209103393496620837648482020467047191316693799394799409271983637723543630381065465769406144922456822588540098613085995963160105523929556280303125013073919470173255321184515951125340378990003887524393917756150449621168049597480903328061981333131038685573983941109832863186490646500648222189901068645797520329095936689860133806075943892664049234793875615204811146193604132805210486906445792824027485080998436656385771724643232325052870720071603796199099702836921215242305699387350155765859273491421404392540941579153149643342730267555202592315230895012290003501817757304964659939070374785770832950227268485092944383442631640818043767651076374999017496752968271672915975858759556127926840017646278770244942404616912105538279185232151769358894096019076679432337715502167091843107836119376521345435523062433387220593212179051799500435137507657863373453776187399965843774642848804944410375529679471795840549126113200632386122917021728984730558250396861013934589378952065907272100720893559409232559060683307990721196373006406506074705093633992377644199324541353988119283010659080143017757936637250775619133280423185064110396057726158010278716139071106213624500344362989340987903671134302635060226459739007108326360885727419025464038031520691368891181150791792337209298005911646843688112881486114914705334067066072890092049602509917668147045041598811546548953321952212617973679261769963407432533750856582645726394753166971391893976260642616747496787968852332746812515429154973410931003892047380345109573216751490802509971107719742357367806717041380665041455548925648445566242544752499061144602256996581095495714748303201213908913172773448747667923893201993155866368402892215146750419271833046748801032394260255423295558416843562684524281322735355773270638474663501042713966119706371668937603666500353965275145930673423810452548025115266717225640198475455687301306349997839867380371828374031092532673485400272889436858275678819340675647866817524801396438011793474432730855628321171848809800531885750067532609665161548699585682452622599596708794298207079903234071508650576902881512570211730767994214192497761975234343330391320081316240461179163483410188953644295923202729985576369686536778064799065806064109034695742171405659640040342570535136193969551454494283039815661067356709426505319942581569636944436611995330413750354733224602439425304777131180780422903418173238345433444006492781290561745352530802193321936169614412260947875196132488293054431722949749791155804264655396805593361740491345155772915533770008426094921472599702894714465848663137775712223850799847431676105521585806099136830231435751797435087959978437397455002192744955295773525901238025949730376571957752492840320640944814090034864749012344909591186867746484942632066089496613085052599910353937040619916799413641802932003270171493261440961546983948542161826912290471957979081648095011783451621065217935275876418093138071722800579165928661705764599492603214775202057637416511617928425175478599604075976692060919094808987553688372703041365659648754999016987404507425370406957787502474250004922546524210427148470948842234664566343721046378152585840644314325683120682460457277435930191808932495694679262377013739996423910085290549745609914194780690194212879278724522520152487748585767334898551383633695659839220557912137600646549053194951345052111733462488470959033710438864212509196972817551490421863918083249691211682417601803447466967908172782906311650898352686877963298650454046179356400287135997694941590766440151051964982482898168077128565732559690866577777884558351554753925778026528537200943644509686031535769739398178178476851202945328052570281918992900100631478302057753877105959979679457923530461245546723934747905814904073501793796732688501411468504711366874562971940196785204180464566427926356959365154525042013541595771450134192092189906936849345301416155664490826896225575794399677132782082880046025388495597039243662979529178007205341234115226424192847712682306691636347106451718678035469165321492605292631507257341962463680621724269654975925280804105051572966206516827464590873877401714425929540589948061372483004772564375500313573266333221188242882182575684616271785995755562416448982116749948884757299653460537676327855065603100657106729482532703071404752305578211409539262231247930695448300857971178293566197383170149318095656966104537968910760334414638615174115402271729005175564690307898167517451982968329988059446573912699224005542059672497023717551434713946990484176556650789526410476111008581014676389324424620018230934815992062106340378681191187668934188488828352050817074174371929206681352686009402844873090525597305032948501485311208295249320016136004054891846482854320888266568967426331595217843751357800785363212348305424584371666938442536949526130741291024453720404988291630648501184977344656281183140582550350546060734904645817133325759735934476673844223053078989482069716804235861292474435760827171672133792230187586862336970143221497466263860007939824620774046170625298519273498938498042053900030986098030451558668308496710130770431768428863794749991101387911313738418126346897014869562568806227201876943470302755207441998909307961388897218515877377379187296261958877555084312467506120129384571152148345813245562692681345751334514970363701659315512299426027724233267602335131553987107001577331197858572306760145668073189162972342956197725131982356827846062990835160029509977599509456487108887614986402084976946948760791775443368333491588301704094802036794769806102753390146476728866582503572555571320665924963663512654609626644298278121779953371937921780149134837203056768702036780120454591823988515496374436626583834926387062352448505508047218280900857583152490173656105953328439335670044937786281370085752758225808966988196439315418214053837392029767535012874977973257241742455030819145728043924477402412461456902069256379797421489777136534512720048998635591547235303332164783875522685490496745528297142056397934808881427885405124829829074750903716670911042136025799164263322555904815346929464308897572731174613275431043915614685348100419847530735293570009022213939948944417580403523776670888504393439961197951414451232127273682662354035679450162097764812557932308025190217806517965933722943219047618994896196129425272250940498531970379109827063075900913248403417271562162554830968180560633739556242107865225164795076979180751332624759733624135872284929425022188008306009937485970282907956708364522614078035184873334659718603763721394662513289885788219621477970286105103333924269176695705744340651110094603321816835741729735655948487299385808494581490083252491726221143355547961292623426682441253538836350543864167223340233558261935532182416841069347960664660308274281565259740768359573001056322612772847755317168447175572545676797345241387722509843621689338691882617417338664042375350695621252942142605652876507762336024538452156748563537868817309419341136473292379153036130605318669385124298355608356240872479942623457281180838891458202126177055730212302669474771137849901996194794870720212038767780124495642699097735804118267259686973755917942541383537287310420271412260421620007215211364531118182098383948895345871993305158201651237221497601413137088661304968841219256088391918113659660872019514522547540639017237219614498063925848141774079734009432418090026231006796458342566714210963508638653207514961508353704349135739489321220191849100165066055529213740439231525930269255189631958527150253820127270495904396832663197992522079801258383084167100380172280428671383396753004437100754925607776161234952148534576643480720580274989666925477325919677040597165541049767011861406661998280745648796981930245116510129305966556395193992979196903083562383859459701404875647496996282572589637777866182909800765578065878713351147145218581579449393192140965953819664116737406298087841813030786142740027081614011443099095572120041596354364696267548375897711332276904859422636569176353584603206687539621535853375448812702355765839005266811936586674254880126628915240777179303381669034826679782526801217421141269907281147780114023148061022979452374506558633015752858577732826446059245362766271001977930982334344093262134842872033153226875977262821379019179841896653387789561293180112553406139281824728694307279706331556908743729268299666748797964521450441661195787586810244630593545324637519696884662972794022666215875196396635840782340223558155154711460235581446483032018769993780601364613538824537138285935679302216191198216425073347425309100220085896326372151709176168667664690803028381821125658818625693000597845820462801612991893932781906596785600827237521598853289550403975367710467631401838344689879428516814030178949419566757291962413869878696535186198057000827617907025351157493616834637320938172185545995204831137039595152223003094178060321359563158637294020660090217579432380780596780628027819303119849088360406237826438892838770403734885661086810791561771264450874716250634851644130759717351906822345103791532320702527591911392879154989215076064153753950523175573756221503322044001573529389909403395188932893247396320533094585642343118807045643444453910482867147759542672896612231995593214518989361331688903468754951527398918415010724387707483634229440187787742400789895934047298842879435330867177039386722716576892602660144757537641097131148813806749793463369170158394830060650731555344356318482738416849868318125023388777958403384739886655688587356882544456358157148643187345699497560248703402733359926458313782133416020906718030079158342195254488951159495463402837570666254010446380973173412848137782021735810830400576868425848430683655311427015039073288974247037131619765448073402230666909743813090631182016578667792889487418164584563526560398897206333669357248624806274818242300416457335430534010344674872495317275283742004464047091511191305435880966098904326262609291351275939211970916493055527093231704837019463591841113713018467050219436920979762352481014162148312759200757039265512905714390499299738039943218639006377142056248634317974672541290748814609868772340981722097251720984803761230157408814127434720463277071362022874506520090928295205334136366940954256864928323281265867479840906910361884566907196721549470276129571504472837437622958992028275725377465360722918595914854652363039381292313111700844419752533075134634343138299682656597722918986454582301349871684040135326402177701085641775912145173772155064442330074212104051851816172517188856010207611270350729570164277288978742497594331301865730613160743795230687861890718465877466277658651845475006604462343822641534148278029474714843521928806099781087442498946015581216332124914621527054713438469265350590328872110902508503322544802246975474365337733183982850827021040862507324538219883240149438462676849042615481336073138252638961316097505231228746211539214049572056634182747403637123388568592459879961141468913651498236421168253944296299656438694313860035931416541954951115121420344738930397527410302190420083260484370094812986951750885173249159869829622095645261689244127044963152786628522057270057335832712452299683750232197186504622339971408017193776848441680826320983412103833532144558684440456940820022456162387654219699591889708916821410895772823173058512315818476228192034942766112445948064751099812497699162476317884941027924089762008789377806240405956928492734384005667053418676958877275649712789904773292059333095482436393225058559739319476995264225691361412562960967338521644103125307076636284989160803910383461975373457110038017480546421604974778509535200535955335481938173051963887049710543199594634968114092274525390702985445314378972950541881364272669147408518936077791354781541137958443429819891290128817259631026227070444703737701162686142035533057859181059437808813893057846986740793064488644780510107243060758345699627529811712231713496409556317281753335108542724475062088176423094585627700138539230040206538593707289291397290371753595236950573167890495491654853590041613506314385727371688910785816605213861395027112329276218737094056215821191763747437351202520957450347469018165185303135152989066095162197206609218374666829224232134219118567082131129478591222002762127332235357332917148003559644324501622354502418041386250545506500764964926674515931878506469752696064500087906765105800166198411533426409601329676832158846224666152305567452672314163183373621072184978486402224678267207642765903745435762803423724240913419046190351930381523880382774113100912614978933767925786248676868550951080465739460123486101672045330117416720477230246652504105603945714412489620492455839082728169032704313717788639121005758813141814517596030734004324004790037214659981446505412308824620034567574152253207669775112131264726120337383056554664354199502401609556241175261548509374141117957885790508746549274654915531007096729583749347263958228422689247038191258634793778528046985057087957355302357140677588426743908814111469769378357043933268327238288153075433527735398062074044595104047938165065681582178334326046596255927357690626966619808416949052628499543504726610053253768580359048115957626732998829119501016364759321749205636671240808754706215784535708462391606053390281798330842075615275068418508897367283128822608851819935405249953210277624061118784374151336817453916819270689173029054529260851227640538656000740214278579616996100599653403277303220169851094378117956401992438572714570751675218461011784572330862658791575893409732589754607971361155965041327701912531213868151128381817104787674255116432631846120312816346117931411975502891215656740876784618930759058819968565137197575794944446852787625779134875651415219294991029437093994499479268809092320811579256445418179067600880354888159510300080151589910457121723168596219462410035376885921866697372975103122635757705665285327316027291111625376681214029067855136873420608936736026908673547364814223259683533501073703136158967870388980222789509088820686903662035634408891898047410539007711350792733636238116650932631366699098770747816124493731305673677875908098099158464327980469581826842077081298283166003368139030384913708362430083948463338080894531874883214697840559481529684238805671593833440388949997621803033060522660931451073853576748823999594041991021976710616450334624935746387235718856603718273901651830098540686134479501625161790081044076346175642637258037925811275579685012044490648530252593318994835052394021412313569187426442996003693224725189038384912905392244338623381100552058967395441548606317960359697498330864265457205576984448603531596218050164849245855665254372798085447501098401672225093206955931073016421270465887513144926241454681680750662171285845629355754603887125990071087899457098146776120257328740655945518476050818875591137750016833978547660156598012902160137984543668527889120886493359795394794971552761610940201679898352560416291888060441771732948176626647197077835747049134710016359803852168741450616492956089617287242359433715487197564325227173028278360258419233681479481544264013493022957927076682180066255269567877094263457585843380374993786632614809722756613185062460122506572330764519784781118335163785651313569976740538119969086117238637304905769824063812911784296336746645217873351048200009681341544970529269887906115771169298043284934688593586047266192055240559478342954032860334949921274269078740502538966680760547692033449214482481385970252216288251435674137490327906400208474287118667467357358903912162128259000900660169279475959075935390857576590982209096206855168352091007589402601666067186005102362788674545392360887159436384346090685795796921749749060415263090432980967573493323561059169679688176567579887796404077507621905650481317302694002342194291119740240776427723722719040841559922451088643591415870346243778990602722716177659579620720744170405785779146972382217230869051145079852347440935956473795916623166146457622161859625626491523146575030583486897466156775715176866857971468214166175246128508052420854247090796323468557781397231355185716423505779843658008507776306141044598518848520779039825971758754215000028341404590917673417524831633890565369267976598959790497663933633544259196337926932762528710076315444748180788600869819348255133352473964511568036021033117858229172190652190083666369710539965111272709117516910631596854938820679812020409186162281682514561262620342622203580983089131664407770797569144335574341186111901982258490061403956076482665546793434765749390699894819101685501534455720687074057337080645544647384689588726542037126673004615725993743246122183900799553151355031498507992560069474665417875796448504982793793971919315021761228199470149171308646397113854888033689364685396053680065210492334986289888671455176019936423549264997479191936274881538369436118269306062090746873123373707791572104518443380359609861093585577532217638039516483413555360421558341962426779066534779269759888199779934494625047117380205177970523371519179421910284344724834034623087721686282198539655770468126616671730518070632352170443380463389787210616114651157777424284146863818539048868638764597813471075474858170052521866700944975378565155061778568048983214157343143480423564420602344245971571188957235714140395592746563599316510886064760274738227255031412371214996060732913917026209212193438419133981993467439603333580577672446330511390235888087440743614399921664616855112566717947102136247933394445273551015301893631410773360124883592862589210440216039425240542921085122057650198565995235820081923101417966667876987910709061306241741040184613260054177816729239463206937597200544968313034821407138417894445845993734697967311776774991154435437264499243295064792276704736889769969219663932717268166973390455319647255969522364528021757750318899855625686454104559779967956625234020397790087418704393681036770381506513327251771162156576679183657232878242482479714412765731799617583286748554956991591827808515183734291028869891241548182933828047937520393875675856510132488592751647853826677182612214861859860076747269976234069833665691555508652550981780267900293208983154766207243303366012094404098015630451333593755240873642070162303684076540878485518366744236367777452716356430394333024035465947485570980253185988428272938356476392127716619253916743007576794453708435079963264774330464177700076159686071709087474212851861180683104369216751557373713472247189295669571280691023906036573292175011240974106942065601383047173801844983075724273385964772077806731921878048786542337252136721198999064761748746490130916824867521997034578920105099638730088998675434147448443014141810938871058550386620317474757881773743330124193002393551789997938607995728057247433979659153775835851011537773510208499801921813834420514037098960542414212669955119033780346222516825401069429016546693550987041545705980553012830343237257746489456679190117235488926534424938904203494601213762326584353384001471914080865737798647489591456854722782181118581502395502620917886287708361360815385885560045465578472599472656711500856574217213244482988272512699379923255207529963606292022476252772119256720204806582252390000215915658807209148204683694472010068767935101451840487557933714033777092895126365261837182258887764138781648290628058780290572029282046099483845080983002474493001677481304494368500167136462444351866207479735378466535175266496403611779281593236009473827532123971516289595093273035151351909050864799354500283155868988127088987699569839780612661382734074418292171563311769473822558911313327310543644616037504687124516444109495974625444138864135267557747717747453474863292310328857766380989268291495973946667847430446168577669693593645316699260246940869084015384549011526411210470088692391756211065627558355300086005425249931686188275941580310697245887670563377048884993282404969444262167013565052097520472709957944236486660632680762465811603051796697732501432177447307642474001503921593069436880005165106187594816981078282380452657928700365986204427408445914241228659060906109022062214576276052902103431152696432943325089482502735533245815541662175993787895054171786998175774821912027734765547360995855393799877120248249517094511858143912476159432934012464919117721530290203249074671007790084714041790828075166734177701076614775247835107342779587967085405563636440651528843982995957541705397829013922868509281922287504259046216473679773419346963629684414331434853491681289476937860918527025791362393426034848088962342038324507056433428273230818089958378636889817267138621340188260073321680746689683192134540028538452645963257797588908848473557977150152393967407532611999835366990168543584908963135008064557239739878459176621514623296147423889825166416082507371471709067943194229147948155708654228841545730818864226820849817707296681661497683952527029223737041306571114466155044913391701516988156264621608367208580770065411326253715763487355186088106736771306442961036829151396925751810635255123744677805092281065659852158545905838986290678639977138847305867120710298198925490806047977152675587898990680013557904679245246310593098940321397733179965541750550587210528375742815512920378376012333288937683604566326131980785637012249096501683105068618940523558437789943860038761907326316037425689956654513533100196561641449760546838327462681987194734534416716361987089295140486460969472853948676449008221012070363180389240724676271092606985307518326126819105983274555541312494736632678483839329682196763697037493053848228204389930092398064225482911775207084167770974882144206532827804270107185733772282931696810357788576570179013151246594619924352957750318125565245658848697976780935559293077016937785780960642110216725746624751423227284624698425615493430011942151278057738139330039733939786956158921911129245775979096690327091413924451540394624632049753855011240241770819863108515416539213304660336545436671234537097989891396572263836706674313460523052159460986194487127073210152311663438512797930353712892085929796799730812294370965072692336846120201771006937834318122408319077273201889334266076117214197092992491898769023313588579132452400314254730459777309813410242640971166524397114846402653364593968048987057258583387213886354763849579683506892347595815851205529709913152334042971191540638534843974974818381225976708320075587148463149355783731871970225820689395091101635519921673791617621831430655628724544367435896264727867280219232897709596725720066788803268838579521653952514839265421153051299415013306102171045104169725547625992428714266664053245241801492698763397937188867105755131316065685578086514049214889917276149393808474132621178869505806331570709358989991882190746617457860485354745051770381968217089554196837540592620173301047077706439742265721457140812080852034931407120461958967244607205873579835620066197422173961542595486984803769508838691316677550488532776589754194758852218619201307770468420636354197840279211965961531599922950164305848189353301623504883342161787281300200519795903999082021104868896456192227688216765368235524760417944249799375466044904290930674549364099359213842242299822325295803505988627567834432632665351907840661123292609321547679290561258819630890315412490250870826808131122854483568693601450693611713344419139681129846886760110994311917192286743136145666460935853468130188504549960423398871571192065471326426633312933891298582091152007601606505416153583055707130597153924036043298001835059199335932814346026193532348276573120612524994091295619680343176654895790524993096947797630335219094274851012193585792111510580797327071026417190506623256681279591234934886001537925394251588450661918288723866960620489759579204788308160040966193370409986910749876519112472006756622845542958800791038230833744058526759006931207427684971164597090918605109438086293186072538559320838531452484491827281996732839412424285151512291530726114091416545426516451137816484169511548344470448180484654970799304931738195159128992134365049157280056307873696368757555550700301731759146523929191683243210621041222882306571775431436403394341631034985669243426570079849363293353326627608808326872862828826825566856721631944447848619261063230423934932233579371678894361722141961517679732331942548502527333417112026360872797979559505130969202006632931082041691792896386619264150574118638448263399690842681889516284786362649380785581823357321967730503673303104308654604669259902721369779188625988432994897239784296001230770088740055681856899736015775051066199455520131972771165337605536229308031035414104336675707697252478520255224465683861845596514582711101155916966475753369997804889912988942314890002733487475983538675868509172906957594294944984513490679187080294577988008748506463882300396596652892207592476790442958621733767774075448977163911285027440908932008874151138204095861033329411202207486571195590442292994127831688308414570769645578737001181286079128528090617126522196507230136387030330285823976814002276662053650433382638725160614773040769793365010627476317502494619140575834689546681648080641869665782823745212512198774479504982536124775716646591056953604665807699237220886493351739379841265982912598462027298447429007482562640746101368374455304260489968018725782386298085620317320635711534160831949056579761765575506704627407093767026942268360232674487532214453224156932640280393161294548280551740681161442950829808213502850158573744508257107690965121394314129333654595852595396310362991756138811139843496168178547941577762632012689497885446224460364009538428386371181027930463426676135303234483783113897487302462641274984759575131868716842807589555982339990532730219321768428955654746863852222295980932974345148610371559733687471143333964683509484505819898588119814557247557666486384235159116153479151864996365975742500984674351106063801849427445181090634975576298948250950834150337538793626866538662129646759529039952464859493882132884764041033586004737901841500055220515170758598278444324665698562853969954779491359477698319514980234797241305931774729128597853274734392757619364185870634856456909025786826906861587603177983641071440951565537141837185016073152725517114682671694008163674166240776712243852299844883540745550595550942221332432238096725009414102053081768634611239284564032819960048553375721622693070680218995092359734329749120667453128001166015330785573645257155156841026589478959221591170748362423803831761409578319000094201386519451464541371828722490244770011231370671653151050132248590725821782120812926502955340014956696848405380205710063693746029141254845102197995131861294099909375303078270649643301632566847632859794485274101726147950043548262075297989116270519556825383927433460673926951982275804516833124622999527138277531841770852673497667785921342544179846224256684799264763004346969099264406702051863551533873609462606314852186274836792242187522518160883506349161394868017449350991857196637071479775102970772235358943049780030199524210267784300286420435592342479696356225354045580008706805911293510160331540859804259993471170212777632608683265875294216908781246525486827218500574421907781622697086442451752435764287945338338440293847257883014023129706804769046372117204573499885011109949876055329053262516756749814541509948129879120362635801561861311354212750871053316666242176157452044338963441791161204378826713036370769517163425320005047531587813536147460091121405120137974091231257231905089605222522176196180143134546964969128906705193659721616289743174632761410660525157626050739380397404660419174558426060008751840457060342352458552833587009064852616753892117932178008632303884745061445443825420830690262863655128668649659687311955831387199865907967290384412678386818410346244291671866940624392058481396476573597306033429406101482468464137996982091230862290349821340609547894274208498224784760042720039570849211510345932591311577760549010541059755313487426254152376210789787225492256043017552875374633862893350192704250891519614696567005107339910420491679353753684964281511327019573117145049044867513182085150165411521749292048235375174286365208806339625770016149811329397384915808989761357651115863490352992484522180437235199019481081551008546937777542966814161520067064089726549650285974226208543437500793949852779284418581521533120400145333815096616152064389356315884647717037519658725658202748006642266315107612613928388959677514722201523184769024366837243063546424649261518261998249915182501887236439764932531145952296565715275009834608964155942788247773040969333007403319973415320473475902952977915435956527696736097275813496912834547119667229922382494798404702114937781392004131918397655170738654352157855912907140434429121692413606150129979874034980884806979764641224095396714236202836256733808851185947667804966487521062355590608089405883199347042392122286713103445970402573500500225859941620040748363904278783178449050546152220479570391003554892234146028835271441972874071271216978750859641845843459895008889090476569838967738366974177036030691991576869947145730822516696017297245065480122529215879291841293484073479186086116334452548392423158464619630027007757036532737539050845600538544603650416789871373996144011381811356319803556594409932461102506314087539005260799721163323022108186978674812273184551084526155526096270258883423684841048141047494983276497547088787404567314710709370006603550693989860426699841649859937526301990741749559463486711577139587798381877342556546994518292743965725430648913421461898882221470808121019372728583228722639726643487495329965861595207108602199376675604785686790056964996010939851532879283924994244356605563400823564718722965290762326520023567078876816571585347735598129116350502289738880250654855454887790389318980379359007881850170705771791545479845169825443134073240226456953071427398158362834509468024077718248032046013349452318826387853463922922581376905974261376643487490203707297929503409235143652212746251201172388013719253539849863624202158216627521809012794656177396927031266249330214746662996880927227584600346492229713456670432199002734409956661939927489564647469874508657880660615274541245100111196703608352136925551682490981204698366194820813878872831230264909525760926114758900897052906240412219173828635237351709766101445743632725689944807740807232107417534218510943874388442707828793639271584452564830500965223485360635141549291429860138019061588049193041388255428073952420355011368349216158807164814103405063483283855400445398128531214043392551543382361299348218962376291245780872021287890496860998110721552646813570787069243236655558576641639680712414223099695362043072209896808193768673388411626431663771864840369383213404033831642014059876969690251322631635593546032810991841430161549562048685965355015332065182726713388241517354445013571991800602582849431926839582048340276582949800071212494847805005639770515594858440412186491520096003320032644879934086681789511892081795679134145958262199076556395039763175813636559490536468147529389887633429737040765166342247268547282532617333880373307299351260607921055629192026136589052829842347063468340972065606413432125502387734656884754735854706221247950674392810421280309595920649601295654322884065426741056943512638035943016249026206365986804604903487294776127548624108491604690944359202660838778382123667148264581316013759581303036999187828235187273142264029119053191882368402744871726386939105230820635327784753984472358126127273284868012103923770880512885003840941812900191251926384460399490551651693790265473716415899612014912175073333347321365994880339188268297947510666430478690056548509293968215010046725069675218851498315900715573842346397471562528066114121003521420119367296397806978027849952878414642960677444593857474910028983270563549655928471389869248224170587944526216025658242000733867860743632741294296219842162969180395277491163545200797116743710734207691548654068013835778794786617919895378068803941943697716072071446369564711881939443240738403046004287704393359133959224225167631438622117027825241986522781351060431008577798132329131786382789728597085702218316308881909564618795967446472789532094640451784081664565777092282305473835012241909983813725553363613660925356071465605670947837760053156352282362533398088024438146453620856741226315498430916919586006668028204825432973973689164804487321947756937804305187082763931585902694699742850999374241623691055938629823568725643535751149295745193445716162984952047292121349594401830507190448510406707503358243985578765799165271429298807929013500007964724565165974483422519425086104798169023134643868337474220110019124031742087593840771703929385411606202988985659520557197180182632162250908993382836285479725632972643719681615412535960016083029206540251570452217571575273165947879263297788553762779778407144917569461330187562400643394108829371957267378234885984105821404421200970082118449678975114629296451698658021553587577660306949385031690574718294156210303715746038096130623476912728816225733720395990572212838750640099799691757392299550591398241467683684446320624371882952998350588307887769351879210243495510675749254848650402105510734511663165752552800363797111550585562214336447221350762700737318530352617350830697209134374792743901387560214388647336828520592970603079267094812182818107034236535495374051000120882113991607889105031425031943425087411581027488539611893097602716029577349242145941317036857337949244633153184294830762162783841941900940987070345439003694604143020870889598666452888261335574999317981171048115267704509437071883433585334812911056306080991753399283066064269364744072839995331521694153731291782341102528708139975920509522212659017089897706848777285070277167216220726895915396963753424390265386504791577874347149136529084015765905446046045963500695843432842079747726761091068831431020094782415251284340142258810556121878448145914113120951569656741917390173165644902381310916463257190909543109930956673727242055392169289750324350629274291163830118985316441067265607003821588981380673331614630753067685044420981358912638582783210942617148274816859394644965401578495800400962021542414939226086399011452448240513692398524681121962467526372016545352767171713430807217639414358649115627554776587174596495200359368880543146169209334029511787437962397075599625517787659413883223467813463132605261371892053514595630149944355322016243582938260458283558249766864161538307884558466329186369502167723948744435550052973314854384296415870799814881517041408486134628205769703227726048867224415904016258498705704537571514103611978569265830240183502289387146453008895501286045737113960618637842526200706338302687475080950329600668672529864700860397820491856107759753239068802875258448346965881239174433465711716671003050259633583165137014783372208654320174690711929608520332190022074172913059208749251958680732100479408979740738334872268838762851403045750555730682822740224594660999502481367707404413165750252969895951353764895580377403635610544681577213372236650996778256150451145444356574384427897888522229035182370045454560895504602005693909723168060709739788212848458972677431691808531275201587826519076006702026364301402151285637943528606909325426611986067080424762858286555355186926174358708165244320551437426539156603032138192898903854428452450667766498034120890556743844755184456915070467429270367716169030231793885794532942730898569969170761286545291504629109670245219369373621418652207792437686839190646603067303138624671391322528634237761310625182269005507152642258606034845209925300874713287091054567323182937363146600226089490709792023564001585866902648311266425772609829992686871067585978653865754168951861342592556634866645048896083703786924775709345296315926263220103125913911397191348174070596021487122930335508766983504768759183783862374028921670459234499265298880283222809629379705770201138297555077483652551842132251096651478754364401392821964273271760854971862728167591828597963607492923428948714793780913608905131481190763054133628381907947281839383895096576632293325355130957090721546752815809651276280703295320205827924923090175255782635478284088789683196108160743136547080845150286380642992420149581312996527088805847903940309476723195995369758836321418077797122802832283310985042125668165050441110559424415270010095556483585438363289696691702572691624704099897016148945057484865883955075354940714329007177041796175962377278336497985330052681771337018111192817824846701013199484473514285632826709385318613571939975817513714591059931360497847618542665292698023089407325368401350400492424401494403703792193013987433421583491607402448967515987423346667161767940579010085138398495021943492564379704227621777308259524443323455565325641193812728034405545183802034622051863119138101808985934787160791854755076686244001333853299519521680577353556703552015215734715212007954471502823973426267304549868825705628309152457222799336516230956753848081881988483053555695258536343313748645186991929511888712572127948748534343502622560836685004353316874426689491549958568820045002326484456005800577088562658113915511807704612506113629918237631445698469272421104808086419777089836069938625083925098393838750558451651581984540633684731195893297342651593725621572860067637853501115730979565655443207552939572912945322599363776055381726460811290510877595978415789831128023585412024445849931398755337455003699686877220612429456662619675869147113218362205985227405403391580792797253625557123320272029954548377776645164815998373710743194292159363641998624814102137317028482163310334801229662062457183856892508366129008218249594798018770729676611097257815589410492412629027512203822104235470188325536788394858245164407682447675419280399958228860917111756891061741072487755701711383649461281276015642902240733481326439376660610560636470291138518672730683081356648353146929778985625968597186466787314644031309399790345741682877382181133338433407101073846311058863558175710552200648895690088780210618284493988839947853045408556881362754435318462845862165790398505611403643106211840763734395766751464860046391156792614266220516256491943092656318345229838704214876403698528116295282322879972747353209199351190750050532177340239620397453680893639427414717116605158729771524535650663814560378922156952531812075319884113175668486878088676272178919046715263098937343765962829760004281171006627301652747841507145912409688218598676003838452106156485258552769096888103088738757282460163120212491528932506694130172907453085575713752869652020419208245580824521488802925309813912020068492713684482820244816112372710777784421604070621553052378042053490487997043893511889050198842455088145031317968248382551190771092895771927010517505115199432564149601630769498420570454815664949367037713183620583285714934211310781671669936228593428375345087101272787294039590967541287906895743871801370336729019786365241346149928555529865842446157123487056659601162401055427139833089693988702801923813418845671000376094396569624187343068304246378065498903681338707131351515420586899643491060242824030435550827583514409808019015642095775691574688416299542731653552041815191974770880690143271870072467260976649625865435831169776748212379205959255264512323591973543351794743915100720942906828874667680589425150801035098054600895302227137530255530398767703124601293150867492254281690811845296551946925975442419132924527798393810979662293905712185986395600118089774004742054163167565849256588428227536304370018084538130651444841203214455610081590399452717680567050819398053405977019946226677446561801536419349068548306514282035611897383830977602810224399731705551500775192013399804820677281918321267438102938368601657540165903331409861662780543779416671700013930706048993356537166777688744984490482855639217893555572558374008078207837099689092108467141554395059574512513450645763114292921469352445412898661843043690793319761027750057392057526718762601258030091764816280497057353749919833466269189993808154831604948429846335546889396793920341622769656737589825000504409874692783538997893872229053690863371869747223138662363818602741601502501085686084237673601472453958411675245513930492947820876405990819389022221338194984125334540293774887258192535792575594612631271176116979141636801642648771184962772672778044670034059913436214716293871412369030399784574038745847277998349327458072671650784119179543468477038224402842475409603438659841800817087291503295664542364147542185604661539363347539879543674070101733766357076216049016656187917803098678382118607156979582900911903699163985520552729549472828079704942864971210305381085697373479942856502418426288103949126216418425457515414998578287404996883650006821052025206830075196584246390051504404752030509421386265549363698758992548909160657857462815461619785471342470102821424018910714514217269505430182546477568210060118161862224693114706842711592364759389320023012660188161891774066305753579353505181697182464519226716985707543434010513265979293645719134937014552089694709879603535880297174295602763198712603667351166561660542157977483632807731464732301297669004617485921634239071371895259068345625645606549065500011242763932339983801948415067995462111207132893478522904431115091583994198773429489630666569871441526071444145486674916293637070500558889017358421693998564174443715786275767024240000105610890090084540065806306604700239017303217381722698324110072373527024685428102133631505715371474679257664716956621888445200890181113250936257232555794038441074813654286143351840584341001588849747831721189003198126599339170084706400515090655136055418556485616927153176861681923129874783812035015856204806128492485448024138984442365068580213841572159917403337370980468083708171188860360227760593806560040554553783829463758968986260785517417417881339141647162904377796769605097346830799950617268949837197382894503165032566332895481035551237605675533300458070435342380987661751542453958815870523292361475954428768023159159783199377712834087644303648521148583317466937887149764149256002054386318791529318784997419443306744570145437292506263593126442344296856228830568254845791966401009027719099458963121235164529841650479547353787229667275839471800235052810102427920195192653380219092298049625522057693564163571743554760240567771005614585110045101683823583581014830136521637376942375107138098483112962666586080697101741736436877481009527798561257698918553803286827028158468463436635849527242370765717003278241521523720148115966737266217629133056455121656834231239462971342451442109013762840236720808670464189560963244813047867468120865207786852447048218974200890480830504617687860911826059022786773450988626626639220573914128484669426241613561263832615420090283892289341850743782521971168282719991335992940199796843996523680356828139878803161136834381078723900381002745712658645034559965059241571680685468339405848888176805298240794169812772951118555095468589437680840385663205420262706827762779959416951631987805820546608212510835886136274324240384289486424246017082237531553870226709715383526251974742058992643304954081414293178932818783097696497589229252065516213553764676095017918875644847711845982549051269514108138977781828601852385403321412298691219336126489709509029701570405283564980519809752872192293596240208693522381763368348077556545350751810238242374708765843730725156508120185759277868274566957603453451131398869449266991104603549261804771396848924979821534526407850112237491659143854539378636675654462436238254233348219322140136860164133574254938900128144773300063895780923309865983932110057136838433466574878647777698805960981143842747358782841616125207863504534080434878583703020593180650890737054413058209246857256323198847544855517917772346824034217744149460631342552877216935793727407834776509075089749292064602771169735624023176191382778964716549675359774857570348076691298960013267627354670595521227089825841306208349665623752334721614638462512556870886084223310925996745959595673469738714505378269796753329096759280661788501484140579942025049003540323100849697676697609958674575219158452618481824594716344472815469842856594035973583676023227250203536751716415764653733473827149408228015093648428111888396981648359456638610787228810489731467832330221245613389883131137627872198023606745619704015824767272549974204308734048906958019395908416084094820732927170580145206368956179685669865220531051173602356017656639775866186524635848642071221417934692179107877235481345728309722402796840582417842453807021343497657336610451997520176866832935128264214806443822830912471947337303278450885702248109700081938869541618118915280562022327719039733344078335603297723448127831600163103232148617965695415316931107144596969627760699590342773870991722592930730916885877120341837294665258966141996983607340772793353884453571072788750136103911227270513345771265427600372125844841951111397925547041004855132113004822220524947294682546498510437388336228698562593543198166854272095146202343620950731937654174580159412338170283013757415225310556569653991903211155739971555528490101989922039794929583980285336637853646463667652590218738170513000107039775461786811195774951497379525948317167270575805323581838020765185272581604515283059981624300528067126818109954238364953430449032252535523744679115935912357316951385248554640049283008551543782970384219139406178644817846562424758311827776872624829014426593588816838840551782384434132455380976285995494449209596690462424178741860856074363919137840009856136027917168364681132665615778086974736088199825901871353123949140387917571685164681570343957933020125484855181407039778300998362564656606861971736110684680083162732615719236313643474939085465360682038139764398596086554838085477801900169725130371000760718837769933889549265540923181719067753166414055338006096024090505793581813251802148980357447060711986808070399015482527686473561603452049235986829034682385892960937026387748773972211679711329238647372547761944102051925789910483460536205226515039462810999041115056452727541571768079378154686603532475937011696878038346553261437844652794802394256102312786589445497190109607374356236076805921985985694311969022508155803684080022860229328321115200301252548505415323081478035331575045648875312796961442489645551383470586331141429799221796664076520680880596964229927433873361703265713930250192319454377470783929840870849392271783965029289934804967818335638184882249899833227318372817470319025280239193523504461000579994869926802561835363259228769881694120523854061647184714758381263733470087656226222595500649469798413125484996716670317998820587135466917435625522747841741072433952012146576038119536487871797150043664784200615410058295831905438141479526505220912405806109658819790884145619362212923352277451008745352353184924524879258271049775127064042328233319540851766349860874762403641867301571330485890571849015394356313459343582088043454868950272367538443548887879321196753063265314330325503850050122273836723803121527667330272375506722347300282190342157205089224660810557765407851344368289295303724688303984776296711653218086663852318071576479714841337529337438081264947268004015552323223655851404143992378689275260900699449070677286236263342902553547080711040880224783615654363236012567633737642993104121188173244760340541395336782244999036762483120944257732493399377537765548224659183077038637509587129269882773923582972255229421957142526769338738144432079931404865165563644489001006087183425359628216360070864079090155235494504146372614927945176847310340624403139479234055638276159958828281500549711863628250210153607577679936062865412870919681657486462065980519319579967469166273646872898284590489302133193932914551698251756706330658750808626632405310520027746496438510583221602720733547990430586478721548644306309741149437184404599499240502999800654954956536186778070952385920186161578780579215266738431588139514743197597700770827308989813225424156412103766037562050342970234139628012039729475099314710023734194900980447130494485905542918862496527544869745741931288578657523266101758093647220194303556240755722540794535064764381221410127995404067554202622549031112036833961828252781289171211410390609716875302386227306675351262991736850330445466446915179677821124658938548001777464937024883896093100538213803950917561468330218920711300673031366116720251235486379285797786319743065624554695608792925738721256420080344831533402823478783890867871220547764414013204330050663723400879098920557003128699008029060241743428145039581801513305934192464911054159805072644210969425679105506560484371690089194702774921509655944123577982126368398776311286749464784907827152335398544188152734616668775942928624075121421183628148369930441553933320901028497862630402743129459691240655271583863070079186487261203414476234169260492078871080361628050571023618245944864390407228055767388354776032178422708056027691404780471463028526745776895303865487621671746914025598939407801392288618183342542461661532154212800220249789044531418583237037576939636099075396517928764405530558259356865936646778804843363571209705983392163944081336849746803141492936033685332665986331477712293962330288982714439513133096434660755721550417463168380195994100760688398571560977144502613981242859549796213380158431282877378085646028624643840922355175407948976071912285011674474079013737812071670211268095186051450969036242583088263320007031476604052105795730595172203113258686756578144858279839188686811221594191067127596289065734239387110997078955023185517662407260740571329372743820921730718442287560709126535101755879182836516401141776029429114431341369000580371198792264598713872909453963153901381174829973645255987298050685346253061303841330539809192548276142115164591217943305824949422966037501054969702669455231641943484297367713438065157948276324482961792119995975686152637053988811974394289128542140848376434443135423178160582922308011850974639941058810023157654163123209240915636179761782211605783317217403774798261120312560575354670716115589517230733528197968528169183757719780550146066195069164704825996930364169129542196635202444882797111241303645165191654545978194697704400928413719792492555991802927513160841478310348740723073399645580807975165930311731043260356562420116143466199507203832817027538071464396082476233227659080544135542499467559321116595703237668662737491729538239443070058337596963656697808547831901121864768356023463398250281395256148184456735464250713921972281485091570708880817991539470473378974768628521778882093155578274317850735762067677844044166170342452764244206548562371992348685878135669649563006863011793286007135889276472746109214559987033671993732132298608739228770808455875895412673161478841078400173817109010383930152688804142173731984191998470798897991376202949192410802048360503320056087061223375672535439047726223470118311404335937411803260861458483209330046828374284572794117865748440809666926942164590365166327692455571986042748522460761049516528911331222374192049745262640834217435815404059011169927801146304215511862904057461303767262759233352341629007525269090964781610774404856771123826783743467460451274665313676246743844595723434428614978670782689914989612016951815208376256861687586232764656185357964297577091570444793462826737475319478059800175703877399538368033601501380564973839239864350999810174462266578739438253509344613751006893177684513824049131936107604412764283974513663378807048109770989494571308797729343876202468065749227362434097426009950080892583329013430464690393614002731570176118054034252592419747207943860443267156021380801633986728214636848091056356418874209758144278738283074324602272164865497373159989404170784384090170302506428042215850135805954383194639012243244102291481770228722018114048204555132776154542583678726416347718426716830388914009110519659099705652213065491378046818154163713863840924689613620803201449323306964432774472308390295338760347464145101793076059774996869689986973175449708635099468309044299124905586536347456234444394610182697027535282814414716699954913849812878698360966315289166072849315107167881000191734233618634696355532307909745976061318473193376548842914935469705689461277840202375927458197648345560319447613573460919733997666993173242028360002057929829698246053303349552243562200821924724653868946190899634704568989991538386257340633719493242553454751598213054136294567744105653809910422249231080888170475030882032774577618261407714138000701576114439624349637838444388132469796453774033397120144012520967868914706085709083598217704373154956299174639900220234985372048590287098398250329911042519495922623889757755562725962363188774177105303842249420481780724563228089116146526664534649396706532486736633732723135636337927586430962199969358589532823499517463541829567526716371852063524392588847849936026508637040728843067023622684457153001327898552634563197892338921845198160926954534600294418416880247701795930451018383577865942884861659116890779582182252392324209386239382549866573664024939698070700517479045979156885397928374970401997976194596913580675772050812533315412650524550257594390383439864675091176399284336639584905749173001544146255507358538113339141918196386617520901617832779103003217685344257744268165371643674166045034045612406418169108933141364171796681444797435542472361121749785380882423992467756856487086422066962071333552588312987903235680128605469834681644741752878495668817731701724994498050080891541557760666803799625186476604333736846599065068355566573959848099632656455631662730056116652116270054562074631943084604654511049800858374964542566558837646577854015429699044198194582813109231592819976758719741255583304682387806357415991881664280019716023137207949405230373788191236664828428164686514623284020107365423907354037258339503467938451256418240813417121546162111603707214369138820945944305253121830048291835839626840327073723749133582033632951357519221692932252452051507047627643953344294868700204252199084367587373092519835022086711362501789401621781197780619396022661917199995971644448133680135041032834426698197234648215463044555875283528074582270803664592827622928045101025090240409759509935497701174696255014140506632970187377134942756448210541786083249233736607936226111810682956116750481682715351290962176551950119223895697917669717308754756349085705166921751422261974152031532016801609143354254969237438978239627742016737157037002453578491377343879165748061653358791848336937607711670874704723043567907801373671207214474311214633369445715210852741587428839324519844046537832714896495006539721372111800519510309285525368210606322970255978031342885346380654343119303166958353648170829530414823479564018845438601769900476181060005557687293437529144231203097729227417679514915752429293688590872380015177191106110926962470639169063619193530798022794979272032729879710764084329294552461777238790025245054628101080872288100882415315959613860967385313059219956179039980632017721902656152209512567501815677253776997871002545703378003588469225358216525517031612405523019890979158710076562860440151753211902341095342563271277015792310716692065112468940988969151437596540565017936838098763223738119759936714900689125620438452057252898973485179139716454120300141404063660837548359592289566944366873183954563607792872158591005601053345095930373130754596136769179455170200559635340837949188816163164180846142961343254784206326249177507031957348509646366435534930052178505401377903490268691081347587877168826490819147504240178954489079414673127676597145865586836058141453493682367984678974437446378881933879914674630451769987375531373580459492543110189651116922971640537526616819698821318567998313685559463271746336458581711013124399424818519690539327198433023946688630663171072126437689810985102373275461343562919138237443435107452217113193987915874367846335364423848184270682970601019221645618194621506563844721942793819105892532546840170002979380028454570178204748944978499916630543523253736532225425005054439302534322376608489558652245222768010832292477185999921308048615987482062636952876706407668090858899966081948168851634169961833243542709626585758647186264466834766334471176097495727378503460483758954847956376768188919065024686192801485557197399758796747380234978277545579758862031858881585284392737993056956987126356761524211918776002480500836634819362445464980395204634813819948370772129085256883629929807049030076540948653774485877959416990757088656609100477155739994499389047757401417079900607858615357236724123271100464916048644503050790594781237142131125214906095659665430742915493659049885157028222402540884298059742533037402530629957892300785932115369284368965715585457129763226010866266168894201167368166583160829824708033556956487721849886904488693143849072599762673210036220004045263937126546178886223269219321352716805719936319976910429104508675907899016499450028837025244897726313189019617964918804401237021863138081433424856748042909084256675289406545296642148907092630023762521599151777477153753068116029034064743862150375086934986067964504431888883288059190248321096287851645757588420485973163486102630779369283040511267458272485896789903183175988226013550622787310312762368970181430848209033925702834918419572120314982418714540897701975246283302032878925549724874638004706091635554175773720873173379223665059244225104508614203637516083972694668848484623535787097522656694084150586161418322489195880474442194411998620994624634427618234807779953321271469438167069491368603510695287980977199965189873238128301162795656764808272775986673285980135404612479993223434001530382549324032614806235236810955918922845739655638688501362592575930066251404915122552418865313787077764338519167976402270315443641008198768819710930364285278440207694160521459794715879579953923495398771159278975171576384423457682323263259764293831690998825084288993073277834552319289586238285365809923820911139849717597493868206864642395769835324486137845771204673101979557395894771618202989689083683321226288212818869956747142038407757279378315078476543942790972270106437145359203633995939316082331556942540998935396245633946337962642672747507958004555254157988632836652463029243219561777861995559355955954202885371946831762233564357697007885801396443282512485398779269957735941966981853059325639702738334100979897266503447711479601297874330693309655222123022840325626245958088202550926545145650934928107561506742078080143320575317742721329084237590131367030465681850573476672878227702297928033303401503786210415520186190647283295347891003069389873949813059974186727165877419121302534344476534381624594124434516739412120783094020516505121580831699526083575511030349421656644371660572614148242050274804082714127410738059547681054226035268571588847281387514089266166075414290935837728655681227288049447979105859102265762360047316757494114248248088442259360831250422202238467287552775162551344642968210616107915617545629021414169655951364669513507949293350640589330454712734482883205254451088753487969152980636529171607337276728020293968152129020700594220830116560636972457607321454098879394152071646872865144846676392156088683353227422404992177384807326360304463741068025575973201670135205002188980846202114322892802791170291587110327357103449890615334238025480608114317051149237593988161591519524755143543276662982393362949795649002406690301250348912502029478610634683598792552428389510088971377098231216096159345517261042306940760262018877039657148261209776476383644736599822349715624060367824643951610061827381550712794096731256511311837548856918821000637504343957624663171496598410104158864463703986791924795793744317201170882910481335560820281683721827116994900483047256090708578593961216063354994418328433169560082399720056389297826808094612147016683595799484856141816926339948421017138323394268621067904450731329284088657627315270644427605274497107113107211648046289100673450667061550788980845268491118275017434382069659777029029393241627791728169288129297471979416898415839132616142189040569991322881878536653369752684690962058571461932049167031888423521986738588267447404544927708462665697860845997756493077197038285654087827926826501024084687742715883704770945290383893855111405251821220877285432216790751483652120145513923262043168612156140270688865025426289897194662868139405005726133760672200329774520980033362030038110283260486388572871133008136147576646383322745081146839733003532607203373032041769943444857450087328572373616598587978905704323535891203300210812922354512313694460882339708354729859541757772028455343644775605395678131839121703346111652024594922954265101079743989836814082937730413505671264375480982121028054440405030653378226479489942488778557145842901349016191739614843654891860032009190225943021480411538312770073216250070721418616182873621590514792945401741311564933303064023655529259565392031825464848201514670737610073489299886335601510949970130006921584017510873752167623923417633029693692973548964981568957720954905462224953108862548301640856607462283787734330622047387339466656585051541317785886924432304233421672582944115475705480928373714882535362538144640649511229759038331017971641040708316674225043324859766526045058534661917752054293631150946086837986902820943095738936158087053913895332727584016080943403207147375862291555361977050273385064234909237652378611105813639228589570708208948251094922228157273094897042256524149436410447300799780755564058702378256083846778592219877793245021680693489316670475199275189598394811167388638720978035635664348717547350409543458591356476140558204248747002720059210266655852003473007494125591835849097425237296877421744281367275140114819686076218245714905624211908654561319957561804368715645253021724904030150151010753438660017864088593927985887758919537195004067988908040193794243974012335150018298552638608142027223679481079010873700260954931238213900831405913429118265165569761738508069632451084870485182207419712175239809753339996397996348793374925037308325294371653651310431423304946301750747031946052875022879064388143138698072939210347515230338628786939975575905011966301950706774609435952496071075105078519350533037882485087489493023323947302932628792533072900926790640733709137697962993889843651077091037755185130823501370321433411374998970748482921341275820683521035909134929045447419377670466418743313602699670569437075422205156276752693730122495595342909994950749732386980172386890499938933833833187973007589105042620986284999550211303020842323730977405519998981578421193801628624711792273764005372022052756343712945942706581378756960120010487678368622978734869638175618061211737946758530259463201222731198166501452165042239258289903764472241279025531504266125762606559819393942851496860139392502518766942989102380906243292493154084779156995453712931374011810695503540891611718030912308995153784432241985370438455737883841897991743312702254706672966205360387281780829002463386692713826987039830773601941798325241984294655099003564116521968747089954812443255382276340634829943036273945032529679095731541308848542502403075330996332005656070777848817421571772202645231866237087681342208660176448846050244871310253741709598680496958774649777497065731059195073518542006660931817192261004893153932010478871442151495722363121463294415512643547630749800261755898326146726497483791657514574116460262893855547434705200510666904418954111281790185183246868181541548844813213096535849169862099831993640696317407265903317969051516118535830689311854107046800013646088431621582350579817233811202216180475644078816009679085729608596026313704503357062149198174184770022042721943122783115492696440903174381703553266577134693199134599970597245027526288719076918465865526578541785425113337479881810819255517310241369702704948099815557188352090762104182158716550288434282307652860757007278616701175061518731783746592066025767645968812404321363616190614394164829739988171651715314755572733788391602266592919377618885308395094903124224189456785331797709702743539247733451139303257743231694752132883048990859583645986384374597315056248823024283724933372473708798125497245775702455981957809668968921489282089354936653959778650189150576510006655205733522300408180622225036493338302462115132158888333394469214782909516577487033144646188794678009035849182806952088902930407848373437341990924560504282243698426669516259239559628416051866867721667796575572186468487720804723904477042285856390245615452313179695667623268339300478681381719175754313140157430516633663020550902363666230703592131371843413083087521011195463906551365269997283179535620727814587416870079713789468585603723831578065952329687489918069687814415129617365004425360615343189973334725237757493234664759684870088499714056644126665072889497825979835431657958652484620674227508793301725602457435651917286444190855663229038546300514387848092903007452524609656325969363792182586436294410641111854495355261120104614775519735197816251042255782974878075594128188996418051958366828667260154449324016609844024791337866808650755684314349600324278025556356786106111175721773885320466487059132341735632604337419027546786272916710953924062891812679528915050770020772673320447442157651591990634703822661665997400175190838613496674777447778376662541323874822822557938163784241650543391669948358199155919762134465314408870113736098555745196038619281454781195155746415180364038810354009359965867340896318978510779265258644940373072998898657598340567866543982810014205063353196618630284498422673525260707816216998927498306873367071974354786055037777170722678441396547603613186057236850906687718478665691886776636420857228806274295164810783638208619358218963787402952753480565975950167344477886382254534893168647519364840079314225484975708294649539876521695670296796660708200795773440225397705727634992076062550251568162810692141555236039438617628666251993044882960028547082528971054360130268825255819058150515678524011457880034754085547621582936998591906670828117981452523534728194505905717869411842833556594686184949464161423993366375168987648037982295235552873546865443526942131538979911719240065466394874168109924182402641878562408720183878036085891804107590953044755977678846501760760579384301193512598304494669702593030984437694909099201097555872387754150172360362590466268620752782997544794433422992317074639048316095944929096862909157560937617332908265685709209068211543456930016743939711322006930521128404947678562489719856221318314513214481999934730294939782316134731399445271217853345170210339826172449220236422060790291697287425631882159710763822081291365959766126113880808662887403899208712792966156692991812338886242129755901946108566712973734184694373638481716188943800802993427720881408112761998683366821066255686521721782597754744166377368788219515088404511400198620874349202873778204681978891079588690944052279607746419935748877407649071342080270840778737725431159914581544589886226046386915666700740171848896252773526368019449628305072755476299608500435362602393770898124716382776759622940043409596808293071842465854175603253196157878852440588228752333990739514164804706267363632505365631226462004013723932021977788497459418631555015683882773262294170644390976419911379386378305733251098658520664123380322375383767014829075074448354288743388112743106595743840879952871048842283704946493481797196894382253349944583095775648082379213074661026628640815517364764464250356658924002349806466750271050875581790241477974932670335925964159954967579570779893850853425042456337082226321681479560529506999241518868247206090825590905863222516239172781553273600527082610214188576579098799753728512074593766858533719179630910353963482448702512491160003388698002708761739297680175423399441973684157594014042295541467040383580340518663412160788616176219489168483456497630138753770450623825859815056028145417421482856217518372312270051740740600883893871545635092831996825039626518406365532190538831372929484695054279864895889065721293768763608350193778691307972773709267913980142113436685948281592343285278947406246462913078648735312486055312426767809671944024249819839822151466428047281539256363050435757332924013335459562237981459138235699330638348875301151568023943976866170579463410464082966082676303269045969646533161240775190664990661519105659423275739628557147392631760050622454957357923296480220156406731622399124815284543191802159480852278740968326565977830900043062153391879661258789421802767252190065462453246702165346229671636078636956493323420839044569114074027494016242341934281776459049190222608654310204400612921395695113032359234085468265611245567554219725776165981284655044527855092847703619581815978650825607366383521048947348761078816471969429389025158993053978617701775008472714174999452130306869012012857669301737971440569180732322530181098971124764665961266240817675051013372956529868650113092116178329333523406982738196321556457032141362845606742988262466187200864492805446640688438961821196619522618832756455089713121578285269950482364830170504973520354083759950167828150099463768068120158611302247213054470150150456592153343821742155191914964378673025061102267635093217785404786259636870784303440747605352081108250148409419148375078324754404170511230457460271362762575852414526659809540875284669142112471079053316669158461077845949065266970146974555186866813656610881485179645232525648273711583496158863828086461140796967737885786560079324273842250472384996652013309562886240983748251486091204023396702125777797681613128202540697810204003689058849840568335403657603404039448765242027181226803423012419992345614487804575121478407522825415978954287167396927561200316139162014263815616557433670842903897412393919106447641821402245291461705130248149369744675011430067633760799820294076748105165500905808669646845842999000678758947445810005049699579494673956562499784806094721338743184271394367918399004279343314531052363102310701472855205376619563970183024294035178753888258913277673551606718045614649685567283470456890818699717633557452915923438289193250542818398181800505566616769338061470385273247027252597236518186865522410713008908147852892754347362091865611830229534605565591192802433420089687742466737952170163003533218312716350662743267778656938940394052267265116938436017314714698958748243746430724166143883122409269980691408887389175525043333816958023630153561880706463272916275534092069949315267966998388106421738659768666891292275409090031916797422109121667638037248818099221762691208545648080303041035777227320750929673147708700543842203957681749219900700043367341624191174638856608063436073735630430092350954861199485173936093697306877873180899261329769993591768922526134200186968652884751746648815457866779632978879554940796542955777548304593372642916162470695027071861913948224961128469842650591811898714765044545583722624948285979910537428130783918325637963675538924714002852745519301671262262492265050960804969859492224927270180035091681290756280000018927546086134403826032641549217117422401299721961671378517539993950209204641025783970411155778448938541522928128744119610178395505949249033048705767533694067749843705327130512267395047262798071959812778605582973258472584323507649788807806884598625151769764025227284012462605890774705759058632977083497427510593098342889339630262476833797585547309372593315005202386906962555925240025141063728155213271529557454242886971087910638554115730767927420389021049758687427912434308055422588486833712230953691148026561439376376341111886442555874999316473906166605044037686057475110724489217532973844324865361497512151301054453885936953779033582847340701445473964833322345330124835649145153478745075745832893499855320669871891397947527518799484596295079648021325333698622689722736266349394205245431543565039715222839273623513440551896097111092741580443514495838190013640673679339343035374749732125955262608222887413330952822153339023844801222257125437442257365156842654028417309624010396209327177947467746824168161572482075155844696485151874451803010841758622147018066378430913410402924364953059581860245792051093732533156717053232408937970488862508379380655517453761445318834027579438248594595402018339568235905185996444274376617257782498872445722441242729170582385874937907231194868023813404743310278113479285021063639247295223978014642955029771060263291187184389009108761607392088069975507753552736272072396158600703678987861709896618691030350129904945200057983117053008870246268688151530869131611449761715818108421839534006365626206607266710453851697989962219429902142114911044642262590644142141673125228873895508986849926834342589692808377681433234519853697498273725742679668340442471868617079871141833010843942234061536476551161963713981238663493237745424387312904813657150306523885879098548316053940092364894314950043295938713625692337965022539538909370037752151396987436589286239324308796440041485824818370395838985511836393911024694128565647325462627773720242962548170028281497481057908702172966953342935574984234505898638276187982669305055340421255859692468514390208184525542088179586173777403538694890818112782675557471554027733568865529405498453581094873623666456623393870839000987952749071657809233620241456697193654961654535662082231649965438403155670835106797727679838228713059817957897405441272829043326059862977317185001101536576407370385642004466079080647234866519897823304262278937115155343176121651508022505354293803000585285600804902352373104071319551790730531616979364922267812330642985751530232286414887890171105793283374868488191032846362189999798731576548896674084151685053523796449656175567195771855546833816853541295222442070595368397796932528503628452824998538177460085748641122720467128057174734922129543780114734560395058131765787193996150680456828222564514835159190083235858776509603763711694065399685174329924317476035068654727184167458912978108466156619451530417778900587187792454568349910237356392535292590485277421565261932494745343991377123657808533494799119014294876677852479571876182950830578622343168432975388616040973701335016798180887280533921105625122333554075000136038517210110714159041868207251554994771927235557242731038964940397327330683228628624018215435057060527067109478945190324722491766730494495063381627193455955413840293541462437245402263534483789847556020358238288471154804650135036940019825168137851861757888505023555742793370352343964018464323887951475373534618050060966642823733102580487322413489108699757552827473306893969966805010436425939382914098953899024471788545788923684237626792543965340537122195895382125345746357243465552185259037093447465917676013904686989897280689387021127924857563367577980254759185349646058110653564534061004479186173715480017392683798204503207128185861282073548113899535926322462609154311426570983461914830480190497886314586949269342116272073896247479404723490521444032180466541464943608383411090771411332148431861722437185135950879027206797488617349913887759505014559417720589130660710202461569588288099141704468745652142936858104248319852139635999908078253763942539856592100787709256572514250919221860884462994646507614275314679467644187167916189576331362361895721087541505376741648268925830102102555245228625454147460101354740579981511863763900862206467276914962361326265751721237906942377499431943435471945308182319240071885946155030086959705416974191340281331644301767314341568511037850176273661635452315068399310630964000983629573933591916752811768035149224436856454559466769754494917255667333444580343200417811063702499230941833867615482589748334144994107518656667765076977208092083587010281776414571343113170663325256678654682789412265896609007092678730691364563486764267124043678850943515439258951896391260263647797331682959175756001710422654991145939767656331172836748972583461965316019090923298319028957592324073232416375534017318404830519230074904137186411187779930311809121449670483076458589061766985232652557338004323160490184046576648635364448558365139835610205719548312922261833988095301690779816804556803441796616901567279547152110051573493329544132914257286258297354477651295563383001917484130135277294325538535208646676274587315180681803964640143587539381965073379722206440495400974711049314363676057032582352665380492762070460339759290611063385155018527283540007113085339003855089306975893170899340949413717351100898448320745172824272801776858105426193918017620093539313454805077631578754687474615905412106623598186444182285059332914177662069828349936868024550453102362005151210718934372008956328488447686951278874785893470091883772783566835535407599025928871468527441775852150163007239623204298612589868365252591774067900480844662498055597550989520200449995483443167207888420575130241862854401519389372925793007205380186873222851346942618737824460014829503564050060893821991568093823186010866628685898190277579307834555291706568949858991251572260916859601117116242298034175495600470175853353409658841632847516663862767227091936684593367436734097853290508448063934203030089540994423930573739769567704581162311054227635442273702171741153112725954585001412348917617544202030129656188123896241685054580621756010236688365981943616771183929554390363455588688641686668336159735731440432140766755159287723708055291744629333492867673385946525048378434077561264230969726695347594341258418088201829144997423674947615094396602683512400016230967409143262488378727322944739447023648662040819820130455690292805426932905160541792162041914645838467212216097181397468259720830017181216272680591140747526223463630030849269678574492810551706290185703284162184964730648788574833685674414845901066804452513123870885270165156772767320975719279534471733145021061087072648357314796991460680466895415242016993442093601771567158378078423436207726009960117800976660940278413237780436561658945663173118863347457259891660755833352423574769961125140641478518172220114360865779918434705357378409728282522912873641881552397669319326143302944907587905595181743913963100577018740576826886931648069874585817287328508979559321396965314450337345869843156289654411798230466263164443093265669791105813714494508904166236150322167721423049675703998700214870510865041027644211992664488946560835875701233238743499247217582766153690870196734524975010324163452298819020696651451225614809142970132713809467561770806992642965371556321269992665609229102059627618961750023988905165517793458616241429552993585356962580782771982040281747048342923482572534699902908364866470197145331558445624667861098845031205170158143298170183638607259812136184269604092291491571009473243114222045284043402421546196412833318613954820643104009059632761166329930326466313881420408146976469195181463422425603048343377085432194031536270337389522461480171541030636668175828373786515752516748103222224354254508624952109801694340304401844818965192577582400440930327133179532361590996072531487178401784780545712782497991490404813553800592233806490432578832354873129410582897421864770305290561729502160241353290378273578252200711782093468630696217434105287526130146951587816434144670332620706832939235625758701355150271435393442299808061918730756565912440224526785866160523080368324578363281655371849168215936649082159313025527806685069327447699488427629563028309885777897384257190983403928565076484613743293882312027456551212024329455322846422309299954245261325780599717690699735986318999275104369764069307724832543534653946539824315692541630316224442136103620324468438946092799086116841671600076526288969725719472024379884796476193507516550348450982757174941208997151217398734377331959527022053124577384252250008666344478923086223719444187425579338438410433053279752507555553733817396348039403722354410668305146436335025594025290452027431217648304426821185311624233758393603301213974541482129845504699038272814197590434417115402746840992861202950100430265084228974389626837392816622762672286999077579431588941460303965620712862365550890509885272069749396964789934103593598321548552328016471737077494803179543333440169937553776417751030647519640965298820539450875975567253445645741052863728716979672135827032116783628745086009025380837364989888442748926840601230974908343449318847653219054563729623819227719436159976872404361470353744791595334897222407471001104459212359931545918063932658277016258437879100041486642599156277852136898411424097501650288307860791578468146075939373042685493302938193604776369951015578025205184215747389008100721610383378701498563927697307068861740146756944581040098194681237268633996740617825146210621974099898980272736910303888987538878397658517204181158456432891144459761821371762684357437057941238637329176057907566858076900600525929048129994953473535525672656871180035835196368079894274586110805203167078776220661980529988514031045765509817701459081777833306444943794058102170129379203163943622613080285557504084353439291034163354146918971977105695592824492365356718886722658590297424662808357208867232203191784982127431626742011920907671464957554759704294419336913612016474846288980843041274690527530870673922253398773382720111809174246983157265437623427261155813908753827760333316966959154444577199424387211803224118502769421404907574489199838358669867145484468149018958683077862177794386783205865814733488092207440485476810703769264983628505015562789890602429587929339127938903082657497755807670065504041253255022534906312905401378991810539465135534986650636310582939265898292367034908809682104266578643363458697531940985218881539760966057332882639569812812102521186977767386737538078293599272195344915859321459444197259100750829645692157021571059351630172769875437772893588981580058121882809428389749539551082420296839248578940192347341705233848551668317316603386084990480561986934842548791655125488195274490538527247526453064007459928448629457386518232606214799279972748774362085328033065977391404752063766427400245988147190463455003763272018235415161460115221286088024541070482348730500734489384551790909329125012617857926041375309819411791126570255914956563542851306014774038731237723507199723418183112086150645736152756287262247190970437955410801212899857672394875108540469266914877650323146743019374257976456863822984976895167094660913009270562737967700099769042625485757267721758196784930496937174505468845112304869089425047498278383253466136048855065940043714262232523235105052185030664347963566689956850260978177110266741755745925339101001562875367483841881537255107893687585279796649548735789584443536152014899051965268304563436506986032527059508894145589855964114902085911578196975041237055910597130774532996624638436636423442888412644691047974801801934134082362541670311708791224401585014640669574704283027358044994898343762707541915771914573395719233535795251910399528848705185761675739598290686618069601075788040400880428603665156995691712026974603835110289159146511942499179924351171813898018601354291597170958096453429490030232310859071336378289827785168833347438033962335297576809368753638938309621316095243083940300779885934762835636205808374944280697961323375536733256629822466814589884892771560600252181939005100802945928397487363855389154379516865403351862493858986060493705053450549276212839638016708810971536308466123042952268227192183861721311352638167717497391276098945038031971457301072653787158737937881256055683963485300130448739894849244001927828784553226586454200278838378062327030805185952276891480764814088585540007255664947351060257216642264179763196635152253731741259097857005909053966408231474779436233039302439268890605672808842017909391676941507649488118966520782306698686823380791181463171158207839630798206215988601447254230150698805620019730700413140089277409437227830880901496914214732973464269085181025123688921085792148673052652117571394897427790873245392035939107556274602022028323789473951897110581180713074816803358550816677454361269797464692218604914610198343521670805383374922472877443536033666658861452124813639173938015706253917109803746843880966136861722724490934059914532372415284398729397112466853920142964232332575956411123920418889598945279629113818347296498291952644173844103984676183182014703840042114285095891071474879559704815323001061944158165717206068918474929024316902200305017038120350991318902074330613811916138771738325464182406556293155074530571919899350272411521509899798865225511206488270739702600353248583889645566720358017999007025005529590042674788720368665950677063338867167891294678930590641071273440321167315667137151504767534085282917761693035028363145268845782139846072225924974232568427690491086376247563988563100681530643950290399609027306269714649090447316424173525281146932710036868289689354560712006207183234213883365042549277849321511006816172865576078189459701347670157864535037474222839841139540516851421048691812784959618122806577814691712510320064171248462998468657505840547638152174475854518443248794655111979144680114636321243497054504566874566001458643158414590580685845117493003632587368710424208693004401838788620663740372050109240851248497492776851965880602860234825316736160103341939835882751238752242814140984872642172011565488786661563409919350815387402480227557163479083537811825697092998294386074960843244538463252000234210242103028721965181648042912138543119971577782363413103775273283622909428144880826306756380892020364342574972169907184577098440650611385783413343098273331169858508233962505043580101952094094001474435483507723071642752389501393368162031486998562956088609611777589543427083318887200801442482932481377578052755144129176856195087035939819684852697882521134466147988912709518304087078448826076614753349956440115331288232803440215699600843266917539725476691425433911239313349251263328567646727453792346288383028274243079204632969317606041273842378766912608397029268866290322830772973993307871247956026600133608754669398587306617634192756835724463701075615268222338601806015519547585750340590903723904401503355087207417988739488169615280607937031179751889260911748163737685454172637076653089365644171606917144158682878700114607705382964872770927426120334862766682257144552089782965232686173194079082864385402647375855389771058500912665881130811104831737849552969806648273256716452791055790218793165212133078705137125704880848839064905425517066433599660895330338241237332957693583559412662697376751516355562441504931936244688425304822235658112745798962866133531978880056440456144461090133235309017479626041474690068565922438928461131519008468478131055888601545452173086525643942631619567867865923663505799909340880671446703911699286949742489651406620005083069326745388773165435039947558241203290953832266449732955021817379683768562442514919699429396432519839853559253645427963660139836190363555420744690322716443774758673649594575198299282248326056088212331426504375163494419819841929616101610158609909634711221463104339821812221548577169498528207722857224083261293990986358034279168906865307588397430046473358296752242889718418395728016610227848457024038747772497519774885756276404520797979330484639275137495741557485392636153610418437588766100986300166762531157425856894600662868009988450930216790815807299103827459644491713585958496903306745252474386657924783291500099860431581578218335616726767435288174475037572583781003088253632198939208415298101090313883881265174864695350432051955478954236996418838524682705637562556316207440312992715070957861832267827727899541035472433832033970456644612947662728761762037950362356677010058621943705978417075247526621440459689636753586316174133031822819559615054123709217093856793884734205756060153963684229383294173970881289389887715413096621210189353636277861214086397103886349947553479147058130204181786416451527530542940500525417016489734884108497208334767166319282773450273516620866245441525960117534018235763933786152442653362806011431414737460287396485685490077646344827667658704314364670423567644106388334110804869767975997167371610470953662358272229806552605414709224008518789663294562901962012752779843670934804514037932559416414332670569170364962103313654357922371098685931801197805881467903785844894586981490653570524592002977266158032403632950405527021789342736453675632898470877931649789375664833188299367184332725629330261611667692132147103147594022415166693618724085786609418231167832106418265746084773792272410969341808899194413188916769130929106410106290031223958296483209030876677719237169843351655625997189616787439365398506121677778351483473862792344931392037518235457198496049496902367565120786334584069609430429433025562499964370107874996183910721135340722899446098072477918864989298846803818320929422148395317015821661110488856751502993624031569545040989516570483600228552092838314139344452228930217874349205895301298757998447830225205263898386250756479275004147019325120965622788048600581673431245345978235329361582776633598509651254314599405390220726386375695121299163119113019542834774336742167469927240836324697717502228283837248319999855426942793011849894189743397245757623595499599079749549655844467650379828336054161787093580839127942014368607913617441278286031701424588598839635600633004510893478427633219724637744587089541176186398535330931991286389591730163138929126382370865170573617775241241630571719975515723676691041650093831244812905691685011877514139977575807290672165350532527027567537544226839549168196657617261423568197955773527283051008746932525475227028583861337443456747433071926575219310957965292878925238424743016308541004159941052133634301879367203910949688292853092593588097760218695912473394749430243059898450810811369839082010500845407301275408131638677221503223349206448853936779661930308523477580099265008117820621245595012097683022951075422853209365141278956760190623714458249378550505049300813853647757186339338266265826336236167413061420209839953386793778830904323129052883836208199545772790773742473082227190236185437965353567180995380557419059386193447577968121797526175629344858850121342453261145158487716827617339159832586689843739722357534711872277693623207188010947192574776086674363566450817223586848795135096387137136988035517067655721158308543072254674205054082386729406420959769047072242085688663242599953957724173668447047123238460006341871030190332219334374359236608825674087926852306680331093616084384147369466822785197852892466705545217545712387389359034769478310953605873375211353147544624828352018943733862579731052587592147327713186065238666806183637156005428325619919196272568397296222237358576400945454083354072442068408830421237215340458394980886144882573069319567606216865150213315750380049915178157330526518788987554114209729698537120800057228343544369648445918664224377651904872927612953241790848919211816891191096373163516677404589131651247880249025471876257339698935321711781862136380602800524224621738931402378810244234190972399643198691113108378917025793386294083686382944270131013039263160642787799593544419624392217919251994708027122167649365832964839190148524550478684605272888335838691144847295234558170686185574287788866903571229447795603576982635064433011384122534356283304370931403502245040734245181541909588833001215010048748751253153001501180619043556226586122123391357311618361131921468940155475850993753571395873070676784309830751322361828022756150284216716747742355135278938565247389624864972765363335215088085810333850533649994560368893435573378463890927663382362380481207464971102580372267742114926742805015725081547778285480437908766580348458557263418631933285018620444803307423503897863934476197856739836431312639332006898357822529691203765625255588464613318436993054653563022192092386772298308348730138207016110112222428709254654657391041761020821994572651027812433292896124051958948086232480199047452378347572306488573024176737475302209368489293548378397948740425975744963710914661844654391224575817667043159632525910819248911705731921102419318130990836390096751596576427191011306381659483373269473744020352731319824500917204537539616964263915830590170905391968445736531164480085713665563360213863547612003095723419055027419246876900638614094252310521323443876666494112246027620123216528225572984918817179436613092221526048752113375476485482886156895223008373586969977249169469959814751509770737294068244404460625898460871546895456211694986675392864423283841006129236656299890180923194612102537208057925169712449125930381405233459227254321432085901161040555856724683852850759898230792179721228545324129189939559439590264903795438071014165630887622105944875612386582879553586437521490012562962788703757856924971807681062052049092861312209442980118015078964925199516265437148615149092831794060321650462606973018433506041985481521248790941626712411703408939822834304748899413146760584187786387476165943781094623723975503471682490905873438954964033756554892339703085935372793520372613626451132206128681682095756821869071632656410278735206867922741205288633628568849093185808648187267766895132750305169567055349925875571651784142338394419565580905346692454254636129385988388922508210969049494343450255749927242143661701722702534714663930224813200294065116477973737811265812181559869538677315934316672351267427989741223864555345669094302951924092850881403551290512720464693774308149252696646565931960629629193841014357088647682160029391929652342065083236778009676607604670545688356117438338813675737471587106454158573393998606731524332320547841893810739972800815287938832695353299927981116777154247404184205679324233431342359375036935083048489709774803235243431519107698335403666564665200010783835773150940605893355915499152870214330320403023091205773862604687908832482923686018330216441642697106852086550156924337028090960426490353972659924297029759615657722759241522465309055547932622155041010701265756381373473568646133440149966479294863687412730056323957533124956259879191834140237763536392514051906533223836313003478646603164603260448779553609186492985469148906720357153876508941288027264217486978190782320239593357114709412460961805739833827838498842508676295936368633061550549136771384239649354785075244849306866746443499095397308325849357722510414492972763686459935430730131137824026231840485832502875764234699767693758042829880263764055402071207456875435897663664628363759970386230698367204478026078225215264667432591625955122772916663632532241918161126902833492223356974774830320071654380392670467443009497883394705139613804651121994051643891840664139185320065488555608791690576033898973832484939791395909283678482662549742767394470245199679756999151349549078145282453110721963220598050045805362451792239426663211999554313254471982749092162133533186338911906504295865501850294943803017857063902331867566851664128343055083491757435517221052660301378835396319452668429648581114482557683153615449426269883464809982445186920741733921284228016186153671021556366342408167240704430631790295180562845761279754421847512124201344825013589242129911471621037265855907123902763459324511835356172437895560672789466226567050631880914278522412399549024945648013729646551887033087766522999124253360269314388059748227331689132852695389264454752939818480509326293674231944027911250642041443896860457661019358149329848671751440914294196641401101040703345816212070709137294909605964953876662014630301270909062524154479963511764494918712468497769932817253765640625992241034482230419367841668992886260110441433902624534916805270243626442427528620259962181375326423905674633674426611293613549606170295797552285272780980176259219693095001986231750951600125015945240291110442105312424858415139967520106753276094832847736372248332209886388669017413224563393787692389306354804769073269338605942932887550976105098888798230651656009967323661042244120790502660561711701595279024097720522330288213359273968805643920188987053757785769954242437565434723153271700946857243507484549198999381888278481277279792302187628483570574877719930826627705992377158233183952450318956542956751913834326582983124990154486047962095752557925026742923978493959131267592693849705324979586551575106047801220505093703373612649526144978624776573128156186864592462017823957429427712748309007394383416498651444898209956073491938504680673904888493349058676332962487367780026003865268741406234699598605121543546476936591849808016917008601734202304178887969488702708191783768165849055251862218103262653538178280193608803602162723472772069197088792051932315186711499386554261417766403937840234310755478781000035273117776245106429172911624742458800281425765482826392254414592770126411278256999871787788787646758973641428777993770095013529792009227318777747538146297727256438149406812885933633667460696888243327434684648148742308661882900787586482219481430445378753629410922484084147769502517996454894294723323657949589855360626848800411018954063309300089417619845041934358972855851432785399589597243022486232085685957971452794437702420969236402392481066385854106415189858489029099305852887186157838265187780732279055815988255672134327281989298328851362734807516576583052822908456431952413833469645237668162836695587732217671331059638498840731128311047300782422003759667238736889109481088098609931760718932503793891602683332610624268455021191087570689687730125760274976136554123088334930769892327459856243287360947288735296418273449546210472374449425327687341867547000035615723216219091911925373661180079985231530475800795387402728016018411621847663854839637443192479358506789788820894143959500521032330489260026871442572710199801641449029216289994953371765451780521132488310630908220591392601620739509145980030750061715943841279679271144953280170923261080355731386826111068963296389445144858978442342698175573809165901370594539615645839837045408108732620885864090527419680141232559073053171688967497414095914084190391413284967331598870063349469006683866032430889691901437836759196822062508594914308015408603374792801278877074190102982992721157431153347305177687421960447102105522029305690523442401010708133423660288578061848336864820017585482102735327827880950562146793335451735503345457725704748707928705587165797692630968610525643383250435782294410193106541927338326250406094565225534237581382665101269362514119034325882415259572993432515766317905038196828606752060367767281594254971241142919912156019465987699218114364921680893068372677048390953537539693130117451264639764584875203067497083238785380437373657702229936645801666552586032474052618271128890157479934478502179427397948151669262278759804338201165657992184704848678970165891994138917746493199142839341250845556694228638471733962752384057646570044072786449717935555509810742686862865824212671439775921372221898032169408060762290384590622242062721208607978020401838556169762689179609833355514124987718466119227047106874138608171899532983613345608417043039398018512123893051128555340004006728911461892517344004137334373961239033757673003918566676589565047635303186426735503916115061887642947529451833773146548754332108831835516847760232321291912472505679850432864085046715140452045382564118273488252955938338156133354220383707625439906630766502498650880589208278883849611821692716078309014545124207829813536250368048009915999781548318220084485748641149470608509266513597566406595434607884487156185003419773271873941101669583752251877586285100577686637824173806950109818162247589439637179590107887435601683868296616554759089765399945229685998003490370673850207284668204118573297717007207868466586424104099959607838301813437555180853260360127087752144825732019851224416630381288370050956293956190539654637894171498089626867939877737923144416422921057880254295208448516672870775381687026657276101327222788657957976264074939091334998819933922955297391656340094793819071275463816444519324614620375412778530290057178181871698369730051315371448462351113863277643621099234791850689480575595231248550316298072488101245481156272544560702538780796559234127975095051310921366107885855425969301432922158534163997807820487315752808323307426030662106585367630125303217668822194641769967251264036664425454579417205529298814664577834135938710208511995009799258257224798431371837817742867522661795616327721930633012002205157550072825954020685476904385153734630385641580591419872272635407127933117343233741179987370907393141026935490583005127801379903012417875288708994983569112083951712602463437493708673036437705234368746780957125324641828251466934450260813280733980064438185532114327719930747047743992677221302155329588865662728989581285002657426548551788964641393069036402220848418273354842605720549011227225305176064095225960032238801861352973240246549389484321495829258349642789398813387722401581244438800853832155529775718847327734457824282077258255169675945522104510164794945149183204547873444126250867362317812167371867304887255866050306871474458891190295766485789857953255287388834853928836388442642883280576393758461932590738536727550249816515657614492112216008641144845508253576058617957680554413344408611816540926834869473960933136030314305649819768540684876404284238974468119856610245611177726280255523342548202785489241536698614761024909295417113847702007927203115187387625436188941365974922979671678649329205139305748381822936370923439078214601156525769428438999497454444297576050387613612862445660840883728287150926355666153025503534092388314957261237132562117505483643467521051971557952227184172925725368965270873659453593178996387191805000055524947485758545140046355836779539825451534355855777765540357877357742637449460248255509311579755206594091082773471305440924297665641232023428649793429673530819596793666436277505686787908390923615486210747425791790429006663833556321505463549311602162106524577343499345161984034756132482743642568930133084253247934631648838746832187306370949221880936566296172642967144715448871123164540329448329324608844369176253795336521995910896685273828789123971443664294981350241283197423481536413883519613373170507740716219240949911370556996283302988909050249134938085223986845093990690563650724566712418240409727849098357731053423748300817414181495770769649009449215531617138166521410737966040439048203899383167978717810855459878656800012558518168383981049608475947236147825988132111973666020872838723594692422124362562325597130834134848912452566432430056891306838075663851848807111127557724922690986324192662158958552360928145549719650565726713278663928415869323172961554653014757997636334332919591399368715767183765976765640728257499180042683825366027771527127585843739594192276639955782925619028659557343116642237792561263278544571968032698142677389276911246621360488076945398283882000764526589335054938603418454443233344901593849143115786533465026578443873014353825747369341999002676831753730172495979859533313700131713235518443822773641972538615016185733955787499678039087464624109012348887798961095820361613379231263569014000882136991723042450828594439772882571851196700235808674240896550860920973557875451749798239431399015961962004282663216443878807685770669559184812432686769894277562879277612844575851455470543580606992379042140722313861368850911835797549693377896049063825630850672332617779865555123917823621548897333845636250510127157265207848281255862431738677228795622325364508500955542304998604646707281160019513227833754924243087886995694025308688595696202289929708801938767678544756186242997753998508260780025129216610440127935388715448354728895854452537681710454217933770229168004094134072171853996116685006247000101006006083173815291715161298281149017507220343129601379646921023808031242481510313789744006205573293887054891936588243355430009564628794552077192245206194112356335105236901681097188726856887930460422110537712297486249020841398970668870214305987085219788866400539482816387429813389894521408985673703736946768206054664979850096349403347863644778318687840543968274226284137738928768471040095507587497031853363376696146202262333504548371052112769071440960445701266719687741203701514694523031963699577502672920152751585754019021779093009646717480402427447319634154515097062008113654973185425370020653493411110814021292693038928577981351734540801112105187271344518702102744082870108955677620913847657662624787035145881872168358530220003424199543674389623107358743586296039281643449008994836837899912582631487768264988693611334318086870914550211326397591068629235397097136080370876877846275724784685593874742971709789536458909970851912753379046139637643591512439221674278219168593800333596448537730707988557650169295626144900589629925276628629940686126410914719097044435830168077297088606230218802540534540030362447420950692420147589607901977837592707221700100792970983689571133250544181904377080630510172522282181790275881277805852804474972797473656553070404577809517281064745648915196945201401865023491844595029424700396915059135647388991821302425668097810452268502101424015024740111330349758815873481930347255317479159713536952178032481444713580366297013568854256473392723843810095553838325738385893868819021483367056277600196284197814997563516459606146730801231616313853103472659703700481484793688038686479157975038907833399586446972376470104687847673746857185313863690795785990208549256939789265042019742470505582128640435243599141278804004466274139323348499807667964999737407077499663050915127980496541015063814071938515288284182960772767038833057904921837122988677275824039119655547460404124487507728196924352707940010474975654620760803825608926065221136825109411398125430778311836816851677998245899140803351487035877331951919982043078826358666399654837717305353414242036215527165839041416819488750492179162714265525943947402475454720277221649131038612085211187165392943653228977142863760114786068893956289221777452649512029495215535193824757615596483982274429725788241515969319892896815775840952862357359009043894066198920219494881499108369899520757441143012766124421151081595535421340448342860272274051455262665311341119292903992744213081632910898127180479546865201513616458247053854156848222639091050936559241688574508997949782791549617058680451501749801380960449649617386132037399856398616002005641494264238719824400920507091414410006680169861397484690732269707121267432723604289739331996694927926782465216065731785068573931316455950664528592150715549650263873316264061994238760146789896611434022110397745187752662768831726983666280096496535863781130997084907241760865884968342693506020938461462008326029116469038955400569529851418167808314067807883078399501415238484665521769901740976896178028540835528623430633266682284584280698338098711926659734604062327466195168504406368367294975174119845935754006836452922454465469138351802499011345079516640263211198678308518309115667921373007901611122178649205568502425349640072415602251027828337673787464726715301349033286588572132223423242975778772979021687769746971328443171556892097081182875910105376768657986664287383867954945102981933521879808677698503526103003509489896801193562705662635491921467854760940798944184450303525406421486568631755407290508355621553605827531084711506954842939918331351063443147056858092319720588749026803481476039606819358425957624125368583990927495192117336204674541415575487104792699330866059655084012690527467540537632394342690161761710483767069994252354888206131743476578606945028766984489531557249427626043432116909642669740738467267843732095008566420833169140817032762968016106538338586314082907352108863894360624689568672194591702120637047544726011994431498033154112461166342577103983004926484444887321571348637609909698179374122373491112891466249691671743952420616797563968498394638858556275504489266823358938025755571192350722055339645083825049581019134719241395296619138794115519854158468935717673370206242570180075650319554415647858715984813825417488374063652852201371721237868206678745281304822068406656170579633425704188809879174443577285013282051094773811163272403971049937414140957745860005251232941104185768411751822236866300950933329596375080819804822568986247069018632014070926750433948647558420120639950304510581552726394463946524476656198533159087836156486579934117585864744076240941648791401483448780784034142118529810633870405542921928902355400841517930842603143024513913837698343158955604727473201833922323381882781190260307526133677183108117259748982659333236372285939825258865483813980683890223828296141925198097863689735042994995083061120342189164661950898145629755901662632041730456721359228281690610334507652104787831908018407415902847846287151255106830508345425674645457000062979966673878605412897102092278281521346614081685151974314156922394924112396213771289190218193188769950533183021370656872804327544892755660883913671404584646057992652408721086609702658014199176701606774686074582272121532318058618541153171391118817473783349122494560492260614113963575719053638268186620788389612195310146757856480950983990993203660933887798802571934031876836613757256319128326088713174916001061513803921767855473250336747076182904372072279180172123250503219689653713456086267711985533489396903566159806451261071040243194119354471613471748832654671317608439010817997926468049132028342000159394949451442932474575952128745698044165477487901235485512724748284127343545006956662741227164995859560685893866828373807587677090412706804824361305276989688894139283896771161231545197560061504265844431738342633200570279495576737997340306802448492197964564889438732880193176344880818684651243070557084526251144427473832848149046157510649559285053471008585094642277278017736381691035043731840951093775236911991026395105260133016975885106270517868673359909840083629150031222442550100667088347693596813971103069511148786946278654299448669533886619541103462550978389096252548270903268849885577879038686534147272606723175192476126441931573906463269129343728217404125575507454271146844620376528919682289561416340159547350416220936181493547300787414768177105696439677707532363650841255847830445729539473683761740689942156440255181035901339218444209860714898601673213656438295932136165587457562277389710456212704245653288924640661656670669903362813194277397424584484504368369529325765402130564563108265938468800042955153735741373585084681654381192047295976912621511218429411723546971932345507127585272459712778265291949205738386777223745945852855614306927681433030438082325326646809902312639349752581394365139753653643262530590404259933818157496067052748093526689177012844344311356581631924083390325157929395130945113618341313029713534522500341790909203450897750999717412733112297112514771309156686292459832739877571265387184523387826340521216039922491810890623852964431494844569270866266670087678601489396705392191607880695815510294849804772759194271139982197648341411702589698715082144172769613372753421650845194452359567290630833096146381242827935804488597342476803338573918399125369959651476027173840529077986974576867647766092964137281005440733923754056270959817435092875876613224861177160573276302869484555160156339361641657993125278245950455084899200865475822567505284441241587806408001036186438452461823220897123356648368906926922013417145784674653003495270106912287363600253295714282770944781809466342780517069511086062010882693605795903015740805629618934229325167014158929383010545069387824813788296325344262394287465618661830130601686207537734701653814300733576047929349076985679461228284801589052216190139952370244824988642032655064739278813527602246593197418398514477254138052383317173117252511104681420425078894578597900640315712338271449954234275612437957903047990237787152065932381406275779111511250876494818287793203705903063702066810152888122550752972981588000505831743037452481009487186485695946228327212362160373594758043555075042709399619296169946583040775142167179881002885401327937920452699698518287045109413619919129077610908288078393893693956715781773390222586807919848330466777375502609132509375982618161341425585841720047866992656087456347942078133503788192200851529985794296476881032876507902993068112241464458220624939381436112170749243905529742989737468921008492911149507844652873572015725676470281027705870341180102284937732182473419832497441576178362054875718963322578387669579586137265913742734813053085396107564652115369894794691955579715544583516492391652231573085502835786162689187089451029814427300995973595534772074291754519634548292120913742049014647062659466856362883119875098510413658894670930935119073791322984835596139090388879911032253312883631742820588789232061614684394623765726758572598919606115224270574955105805122630201647856727174770500631833806071156000819051460195689603626632108275730838679063132812880376413495346274701998738911561635899231005256196808811869689134152519374396704476588209251161390010165329522335502913557298411757588537165455322171149224159377730659666653248457169102378688919521042624017654205967517125459990859958595406178485122449883009031195516400137738367264918866404593494278144997910978999139087140279845137408177262370711918967191148707969974372486979659046088401463345254934240168939971353520663297929404204880562430272906171638560323742295857185178363177563917656823443099244865761515881520703037668882448059541653754706245083415278672781088892658379674254824020789532313038796166056224951271008356017966489056238845192797731524622286248867363219295599904254494627497758618227934025606426068858767257621369157174434580931160184553392607368210930536616277225289577116320913502772396275473516823224184779413329773987447125301203839687269756950265135453753902824131503217540771359094081485957234563609857077996032042962911790895609970681416363172777134077135467384746875322147466860032451682791913223370906876458698396499422834007110929739857486722424751857405543529886373203128503892344427511226077693363166215319859839614633995432921792020320539629350036030751311113176462165650794196990104796605950793429562041312276685879475121784756514480778801369562539232055394258832095028229607546503097431585996296286673287062514102369974787460637164208539897381814369385585021417428149872066057997117020611673781827571667512948729180819081127437634848463587169621779966523097144724552333348229590410437706584153969295987977055487813490578580494365394277783149427340906984548371058775045197679884470302502012646017455064619866213481278729521086896752374542923107074515614761673626523641290941336128513974743932756690169338998166341038261996710762325752417843090235083948428030820524721840396763122779512944006840378688639723569993080728508098632512644358031255166578931296634996204890455593470361769448477652722090857881465090734067562769915207102077820524168482509516653840239204663889853280198370627751307235955107999114496174805459400039139608195647272229266017384040683980307019380496788068299465025890863239071946860108386302003994069670400354701093691835046383656672735731458990837099677962795000371001800849196110858619794000512423663062972747819281157963296979579059519807714787873320480104280818636084300234144988648325761524907005638317721477788778688825111133993723560717651662710153834236221004841387369856502367170583572015192661697149682306212867786970135079398960065899933848506486015223140266928348344667332837217334442084495436127215251017365676552050906701771922784633192128823422446266971567730517196342902469034184754572782340457008901462498163030879794340338510137514751808713423916400472147139666194165538658587707622033487829770492811142685004413625150946479683241512921206742218039546305458578817066335545634323902272390003103887790013389882886300625741726162551770978685531696973347277699164978282643415655725871284941770727537964682481543221393723731791806415281000199541829291715915118139170793103885682154119578095839696664592056417614744891939778582950407784883146640906326428712410891883852710933762965950371899329402380492434243377564863413868864612940489754492237592131566846879884579987235801072801052295287613450153672498390637450486804923182317340629461957390972557745627959527972174513559751628110728380156108646089161160930592310454683214457521220585679972939567983831996213419078716204192172250531774702738760522561899002024712348913291864478774684977352938655551655054272487026638615647422984685579520166925810877287389870557189999930781676649374782320775727702085603567825149823817280357517611301785139383440121559243092586247862397251176526997802788375008111326081145648274631154570491306304423674287769035918420707510956311094659964670763043256040292451236670862422074525603937965608413478350988700449244576609156657560394285772753311847809922319301914869572842006875118961002380729541241648474967193504211931523461589137784854806202247590489881383130860583657783523509329167135830572696848096320100766536912855062380170725884484823901159396920387721821096025790391690300305706240544710476202195379904507102335775044761839339505193911180241603400593244878898104591768959347158611133371914421866954100224464718292927469694664287848998354492225718580316724415636107447901847948545959136537170887289310979880266635479133395193578400383646257946112717959496482561318276659673734455647193260421106828124472305560664274140108459876629416971043430742321890309144895499543159197074595139192735767246852635760515966464176827702145712158722507396690017238835254341073294529084005246930506827716071958803657205637579153778913039362766070848445635892231088211716165969694638601309867247900236310932211020935567952380768072374372825254973386065746823656981257858632369795911545011463167227010142155451398094591395390554159165112151186975449516710932035918653212473833883336217584650273758995232936452450459178120953624191284266033102398216884440646033864827515539833613010483547326197931639652935424456579421614700229216410032656687937584053240484303765242816392524343923444913349681572881765379612279690322808601509862890013693312971765178129915708634349746623044609721266660753456341623866914524415251736950332132422587176221246615571887025883691633044080502287657833483472668592157225473067271131432208446547635297963088802146850450324996080282885560256418526771239956007384242391423994408487672567659231708633675018679716564494187352545030848446532367186954472752368116600840698145539055995270537694934299543770202292360418265345503048390048243335522498070171285334369089655565664197894144355270944322007472401449260395333998853983707440791431799645719413597805961149033087263622352072747205948637539535086353719466535720352063514196712175188948675455027808395234394947524020855076314289918695682501424383265006207256546944194930288633715301719587998467202470151631604691058261162546421150854874188095216066585221789195578252620246360849077063818841249409682735104580078299398367260096397990376602239272517098051324334909071734503032995079185994421243782736234313185343510986025949819055056518086527783738986884965618663737656746225880369341249460320720540240466677724766904353959360490600255065944235786175062260940139775616329838758538735792835380760213772818937979013389488561460134294274100566806093554982247614084786278796178857400311105064959782521083515986577250156921765416063569660030616187301782189173531336493329054751692761041645852301557970489849518171086037347491726546029159776001486566509995254020228071594820241170640628129312743574819963924969034932277807905295442845123536085256019170263532408891443984118114000753015588853760019658413267978598480347608114247894154561792169275395074292456754952337811193172268033530549050182252496442026156031754541386560681198518022089709593222418108737690080113482708552739953817296110682487285927952635822046138085234801668557423179273712053050725431118054928183964297526646799341675219932861042857657732829264738007708202311599120043474976541086224368421175995525092682350651851482171838658706991336186873578106366403034929011981880354109806273654550190239165366192794749086314697125999206922302172064788786877188257677711217970185037604879258715575533925059177010777682610453099415482640494168224617867488478925349151133766401589217099524132804596188881579385989478820853316405546293931891622641837049023847522035819547289647771866485492485182301531207763924127784660188836231995394732650094416195826925088463166372229619588079021663528206078860244854233277423225063438964249156978831967866774728424195135311371609462235284908562870216403909269397490832900127032809886158715312052415369163313139021405329109873577079768911797194575519291427626645940309669907231777917959096147234496508544965665614111761046690880748886197614660390996058095448373277127832623044613763206120414427310578777659929297294842388406558509789332212895409394960233786455385983416520433184332285253907135570903231686863058233771057125102872624252276135022280823583419673823807854991465768307476605901376177848142845060005412644073538263721783744179020963792396378745466980160549057939436196447175100799299902364298328568652503247138678526882969649471381665315555058227035348482086362839781979109315344044632713771250803098155186036400738610264607260189548457891025368246422571486452009162310240211407392742170534525527010321295907830957870491856003418821133704700669164187806566276800954918296958915607729197010933031130073699604175382500436583209894897742550089059397578158443524951006525381753869913368212355381147822879227230124648424963327735848324589230061914624701535687916972515083561736403655935273953396051125205288253400072868331015070403027327749516269601480181247521905559461127141998871205487336778064770415654556400716717425804885004457718857738221016133339664195305898257234344107565124962560565687804431763683469177963673460486992537980264225089847935232354755291839408189756263333070387316557488686351333057097675983698718404707415056417807220888159588175188052066713533774063700793075470656305051380879184768779932335692176491855342503084981563316201028907221206896397825398672903036305607232545077431466504515383517003714537650170421782245464600080786229123048280909076033261561985308856813488394054606092646542844118959353771098993598353610359052733031286594594415144591772159838768666142934795479484315587133308404492033578559824073806359337695022104889314944665447459085219515890072206676912692740483505169463213006890167850900624739526811592422674121171532892536908288547731000236779992642537452634367642667619233105784850706934947022272998386686565069403894736647366847846058620126714090765210286245298784304019313546791406246876125996766418903974561126296572550653599650755684125364172790480038764871988248370787126548367579000264593212765072839818949076421755665008667473754501037240350514524326554331451823366948533261295608793400612573417145632305494616474430782603802554148878216089300631223100077777340570010808944729079604485068115229988638233456435386613123683808780284963154270410856372450185445407694704686640198679508162431456658237621407503412772785588535369795305401947275859944523312747447890171528321939314096551519867087577651642677564652386488114020043012664967051287116742746746130026758234279892133554870786637559383745128314017799862122260423097064251591949939075359300965228222282189599795876654272188746053175131089668248970814592441980499517485514178301390242744564634522311050670232915266591780223332657572895738394496007477945648749592265865304363280510916471607094841938860430309284817840578829931931144475531172689092366421059413759152284564296336770446912901677874818515304944310996349049635467747874827988749061801395153033800215404988621193169022770432285099413060194653466745843769169793408291275391974832059060559718003475822657590275545612826569298188813767163060183722019509581841030026034518942399643223195431456858890163533528998460777369895672822258174291780737306116370029703011446739854878694273734512468595176761042189199879841096059048474901123762069483112368241593689438481885391619861776132543825545073724991727988886278891475122177404746699516129169493983275064205273086473367780009728234459253901139195893194889073194177558022619257835735673786601644337568540093575751931666118997787630623718985420650672479404263954980650130552561143180878288376460314832181397926781326780088086329516093605165636298418035269508170712632295151494120409783027284632284454651386825454590431494998657619234169701081241669708961738400373153562105772780808592445531756817003357006912189478607677474700586701180230241283210166675530576854544425600664775837697661324187353417754129372569286264103999256486296440855068578628029555795409855344654370190671011163315025498800099483094347462111033562867347956837146332401083838892197583758262220173699030909565192691266598981822734262822216519606636155191517335883547619134481287367546339010404200667666912386804245664968222582058809564146968708808516722877941323263546436162056221039774867493379231143645481204603475058104313883761221360150129130202509990922974037887595249939603206708403460718424737242573791945867604683990805352186397481366044785717922336437937490698831820132596263224304901339361420174320662499623851591198597322396247446063346229900557650079267732887681322902975044198888492934500400478713514263524601696151491371847188899614951774561339815442041325388485850589687050819320882688926574239899782754755435455498737875918232642407654497631584812857340973169522305203012589466038567156560964795060288930809169370608783191698546943178524948896737034417400577537792353428644465546387777898895440741555873247958776627148776634891632463029421771461294159685287424329685025325409116601805674681578846567703436268110866960489423031380893241256026412968964629524893564934339561926424537214233412388812286899733902646927817854984365179296079463518332365550236662279212332512333978663950422978175567227059116763314152723800723778167119318345113789538381492633180785812771758622107756938978704541084816877278836469525875596289128330762155099864557891598589805374467646479717788398656572690833708964475286333438197493577797327051571871051172932584860992366000520611864990675247341841792898916427317973104252864075688827861884173379139968963114958034519162528398445427464619078267884513965485320679641502951033115997536733634608564068608128731410638739633419440416024675892147485054078434905198313698097423679576083836535282402156132117051339291434161749807780196516837877139593239233675003347562998257220413296066608269806404638541228309681253441274397632834422655150737469754914236085246903097585786361062705932655669415604383620871326908767395246886915607385526423098480859518815409131904891485163633586258042705579816094452974619401328234895720952126072575491269540165089732684251030247757334471530148624283733624838904507461820583182398972486451877445121342074895996481679834318030605133089141717476700151071885202847514258487869009215572657090298840840599033842744538143737641235218770746318063671731729059532187320462093096881654982748084613285056616358947542198465262707581395761454071570179015809844527827798812045501335802269420518729024816416067821398204193915924110059117625950136747288012240157036550817931471739978915157872900025144511007397749218072972425511203135839259561651435033040547876881324857641603991820791960766588824559495419734878254101773558889212363236209252541290681618625721037416666488196169875788183391602796626981200683583094076817612675530694333401836848709038022838051031835577480936526964787113363629991061283911706887423681661120426360242027912665582333856747810841300951224013312517331075763286982795529597259183511392965289096896159216942721539029438903733234723173207101171639726252928058982593330423467054381644033372368366914293140966086600562064623262538325113897538328319454647179058103036200236689086987373720814550537465408311051792954091579807520670687247512699388436007752875692017809792098270014495789045822120679857711964803446839071038986388667992314089463439714830079394140679199487982735245760037321588187467761956935828143362697627778682191535668835134794621103951342958141930721457457814999665724769710124568325275523623703489118931031307999026488755994984989675793371613378941224061428796179258217591688767631395436403958816491684715511553528249117448059675988412291401181607974281048255171750207148572777499812123144276143939346458452484227534159697641175293918040890635270877575765377586967072096470200587243412078130073818907734857075850145570262936912027218576290163993077687028066641592085740499679126497312319062546044791716312742039407804192812363063347074662017504172628247461645778000860275265290295081049262817628829184678319687477463162764398849341822366711593805529373133436815908782782007783625073507590671220046101392375692397421730820985056094573790015633940886072636256435781000957760068126770197146240377013635116448027595535783395516237163942721361569041291847770624916429659684893241818636571626641073145395130597631629115902244230449130689267138257496837135469110715501112718191503645883592696770554595703606071245165603100053369088406981099457859444639250857234345173141419416145921104050066925723396277309331332060909457531491228032836336019251112858879762900226456485516721126465447220150800761876669939745953099709200805543963587565365334516496805997405897598703055094350882823158704431150285128753373770565869812095708661397305938890274378825325984385518867173355461437007324589922461127961855885183052955463638571547223484685081412663972399129481474996600657438355066998872599131986361630417392387413448297026532349091585030772798922532388001851849660204609502472307676392695781839839558399520481559419624271165684924381207630659887045877882317869421232817562685381178060686583328841339617777250615260519881395094720217363653990413308437887344910794893135226985073959008250001355973096089830060740694908998513338347410998174046232995646838280867233184264567742056725756390796607803619753912083739997665901618737786544333044972074612111317438328519839242038716982755596719304121322139595497353074673310608080048906754996241022869406593575680431657965594574418586062706250358117041932589022370538878909740519819107220099592677152461948386692490489764932056965857269166804855334129392160638571346410000145679072505294725943171434012567197322663420729888142047592772654961329698301896856141757427608014887930340057081721339770716432138724280131175745216724317569013241691811947345396861075661708544836986948109053591092788795697909891700696361727525122794191091267355773625389432023329779551184155348599860331110820827782324363818451598482723422930462633207793386008997217882826756447105175780265033193050593907670031651845526393718695305339798498155315217791087727672691197964205217046074975315529549296007860032189846883087707460922026577007207396495170575736862890754159344954083136541874167414055052207122845388394100343178463969746705526041940249331079688750028391471255426014578342750149434295356558320250210002829539738618109115489267834175482399898888002680391667847096115583138040145876213369847655291720715123310205579013890770979743251501613135851120918669842886714693898988278026265524696216201977913446440999622303129376729154573701614185212716293751597601070156902731372821465968846129324362578688814389714824364523004556774354070937409486560902858266983306440534299728733585489035347877788657745733444529220102357460282362222987800958660148151102948617412311851188577254467677307401201913237209877964385173016251353466301538914701164698043275701398725514711938656604242840907090678574639806434107171383461530621259201780206561665888042843133220106403865395111584706462879904077267940218470843849356725457732607765167091440296614791355420210439055352250807165547155994746380273082640518912549926846157710527493732559412539858459932580553013004266546062777883690629730330061696506655826361169952182211316650824395889039228226188320994664855688070400486048110453689391244199005858955997169349951635272804370367216868081140707074802485639886269772279436036252900489899198848575238389485326057146113441881546345863975738243592039812722058441396341352516815016225054027454983911606308282735344861403062785401724655901066009679245739830237166014120366139398564945229932691162478020293460636219244318233654389575624773268590380793238235421844576147594476465405410751132205979629472412798658697430604545964912405375937551490393718827664897251636043567967627677724436207831488685757874767528658911762614339988463993464469684821790551678253790074701776879977762564780405076616977838568943601355425671441280522353213523596976694550889409539038420873852115352954512002638396380255605451496321135298909833836879527727788709656727617764904405262608374475532035153697965802506762441842497770537907586089487348586109151089485504909562186795544634548918918919396032679724912807582179032679519309018026997793590249410736675320094095490973157147366243549470380525552276637021575511041654898513703279735201380726163944919713531322976420044180194541391997801122156850557673075713536820233355419066230840277427095819018315785178177362345782356167490900180700720672970509164947028953290613799853147828679362510631840621028003737202425122695713384186577527720559812194463381218712911084716194494077044562922732785727843095652762558897212861590075291107261139927985623129220787304745022376846318021473549466115311992522237274924349780690294945289776801116929405609735485866568905738468186940146329061758966440707072433743144526652066766267590521002216858348185031270676539445654638113433673401711179212027421695202838492803266030649043774895779562104797107039646076287553635616669460913081101413612316367538887769194418899436196323374222468603146776056651848547992349598510332390600263967782670477703750373375995442065866093147440679169134428640852560265805377754650265499756613414338772159410465294997641738312340813231046615135556649921514347558704364954651067519134716541799103030969348800508760467202021570412169968488022763870969886352291922153476757409164829466126148306318202444114607636657560685750203346530096407512694617858585693511965863236494473715817819897482809831092139410969622936310428783981912007972387671121369856581470389078278757224566820287016848610753094177256680372902350876385626034419448738113331656109559533401219346162764707853482796039652506874489778116669397071487550215068147821370616701148928586382169196477561632904960612352770005151399012604375208330188885876709204219172566313673915786848654460390421474889769182545120838845076842532515008263629272252631328104620594159345630627469598871396925948382439979458853888223200515296454391215092212093092943500433664827947303158147189740827387752847093420524370895245803320457300596232154876793457008282496870872124686098123437995070302136886209565877065899336032397869136761160171091090971920527727559038200699768437229755515277116414625428902099593199647499332483065312008514945054345605537762656391852376262885863324033990277003917262620480412416109659000426793831051529543945106479085215678525801185342003965237586896206243831436639768005092259240908665739681858374301403819071780555336909377860840269730854295452394797746159304083918741266564367452466768007673310345249728028030798135489147381991886980890248953238255806347950071941788329084897666234585836991963257085889297302018213912573972178782162122862233919688819079197637282180225696956013929132284282788889366763589541691820800179674085495390016488568741298047993155940672949067738731580813625619649744915815685510309577720429512435770139514900091493325181133784817988836842399888334857770439644625443315189839199950637328437947702847635257693516842055823707279943077590455352986710108893667285165855027487181269806193786958891775232451754078672696965144660147771370919359195442703305496566820357618335206043892028711899994136300181830977647288210347553707571433121503012122936506784438166591775938843095157080674730267198061966484513689416514532239063702759516748864191353857509585439830072441800261211747266422340521140429492833507774927031414754156148436560535324493486834796685363872897009749059808426751613370109793784615018037074331507003051654421407110062535898240451363839886076839568171596825189587981786513227336309036925692687524317897321392538092314883897939720805500708364778925754564566183067312730741275828628838613159961375882922190605049969065148003339678819315822888989784841537610231683240703922306508476011514910484587195007313133614044343712771120017895536838120020459074705482291084248147951902751709623151149339377741474624424194395149816761440150762358307289309887998890603367841627131901369987804644955904925166149438647249562868703908859361485731719937607840921713653451299853718627811885747920651489654416374367983937849208800210795817179545047274269677815515449425815384346428930355955698351172220052487331750674572372901223640457030061548920151444397405160761967761333842811199736697393859614151551854964551045134822845885979467315948027343984759400679610559500026441458410283183679320693718826432797721494060263910447403705621658409483012612698464406284176665208717034415090236359909411339346018513792434669627845042824991091418834244695548746994195125822336959452822856012272908620948887782544817457659129085893936605270771779412096298275470217587988014139449944316678188285978547556120199310367203435664637126112540208447414967180485212138174137353698516070937087796992365433934192918401132509001627829954114168063152400293353784363621370061056701293545468273650123385202446231891190222192379946289043887280778588923507675916919588085554506380392577366757010582967844031180947148753032745117081452288085064685674838365943610280612811261934158999427137914929092332729463175735836458277754550707063400986327722012111740122807001415621767274147344671345257058405534750060702468317723189853747011842374937108863658990299929559119656531361912908973408061355736685487476113731664661792596149255148005445644438630071443103544610674784407405185317171960714049591860625630957388284433673977137590436397141102282529412633424119221358501779994564267644989266874446027482471933065172076518937301417739006139831796360380524874416657956933957849767714878360670073105994586649975181493756841324641809905149128414855365092715772326332632027552126194618122933945176748105208406523876646766083579258974348793428420497343875049188066321446206128939952244729620090396296660471036292543540351351039481469344902210087483232479995895715388923387310872679814159857001564035791777862443250045881319754367198007056965575748302759255506875642688526468147869128098224644721119909708513411034423497905967148286638894190045848166160089975753216323637428148909632154579667068716890783266361051731553868656083720817340021717314116486784445351334495723131370034575782508461118431060277311539207385853628248748402154254874567968384402569262055367056875781490628471546313860224655820421120045881025763706678815674305863598263397659184539367331699169480560627797060281696475613545215864629511114815564447009693475130990852167779282521654453000094339681132776990825060483324919988504431619627036289583779331347599970386023996144442601648457336178022698431397470151390701165859041029757978214815761644417283516844136972837699900832009565983659237080952184227540835507801972386678362181622608028630195606241120308518096750638950614680597565624262859410543331421197262502152753004369619022788590266213478285754372894841126447297245055041175923520996100980134196611175372277121500073154505885971562129877262036050492906255106438511639666225292419447013711391363243928310938788668942094021719472313867424438141780844084972645689443889156070109816705530469166947446092477287316808232656550707604968929067482414714348115421484738885533568903907941099847516117246643209834511186341154496896707539649796520930922034465731735424644288167250633237391135056195942171730923335109557720285764286826665913136992541333433097572133395632067323852516847025476092836132724877157842828640404039664821166971652966591731935259072367581506024425707758476454385692485222440767099757891902570730979541939514710877260719370597478356236118993896324742214252908532603049687122120601972017350444393891114129885276170199067811410621331911413129647260284652913337866714181624469038045000553715356025204500113891018302930345746916302524254198871428659974423686183744784849181189691437415255600344065771111477911084914104268156014630589312674185016997108487538993698230929590427305601384388080778317227599552072482531674119940538288973619459852232555394869573608581351292929182406679620619552077841858854638245937021113345155270915867902810638099542690968101273140910903455338530039531835038391134048445344872596856039547708704255052017051222149328496077631305979980148033898811546803883613528109536849162499955555848801958909109260948167890620899544193472085741171306667596128760602903518237490523410504549459906740290581971006906327151660855283102971858813676739335679634493001806032180031439171824576962368697202531624522186701641658221632773554659049092140592691166717333027599640394822956473518589284844297408953807354949486081898127166859285357203570551027588423837955017147576083818903885478599030342499490056618727162445721082624610800701819338517306251660252876281971595346433763042539670074957961629134903899717620290228072724513731320253625519818708715097783548557127920943150152452110223976294005270223906679217557598029405085470455240300292876368383251346023684827635024752695768355330058358321252902999191190266204067209860120223795544465185738335718548852148703183995302921535735827928946336588846050603228307648072356066138192923726195950014799019506624459676372726434183838266446775640116850410676095334894935807635202186255190130221433351905389846008446013933178471955576485006076727106124906176061491070376660449037113063528055741243919323278796902601186826392239019237450296939715811258993377595771889925888942670346171310265311259474300306741928473364047877829277851223842041326852972912919042089251384119311658973755913028798528272096631644730321925130628786569596241299377801678402302092167177419650397176609742251637265056697889342256742555926701837414204164477869020281621695248635488936872564804138366569505604165138217078631224298784178202045272728365517089728245125815662822637002198963811080125592630274433448614839298899400189386742336614292486804409596293939247829176095334422177423887711456131488201930655705228338016805066068853430425042227737886210833005657695391683078442280128549077412038187631215462477136196819776151954656967640699928355851239923777643555783953243322142488051275717859483577753605172925783028615231348814680856928796075309714487905168131526058969726239782014389431013303379687078583564086894471470143054427048383334790546695787772406579084426930940516595192225146834031925246227056945454230019841646978168200470498784591591295002630206746239774556696909810967778713239299582393595746623807765305904686683310912659272898563268189054290002572159425456055851094902634094655883041977054789336764259324238689402830075578482356223332001979117188512170523138042697765096246057679901782857751054705227202276397530325251639276834371618956472397663364459621721355618840420134106707323045921821687190654463301145864334153752300483296662069547671300991453300132837683124427030477455748299951126697641813136364239674048295422965619275409067079320599478108982296008663200851549978970428865183872783152110159444198386789218905872234284915518043502797792073104860510814278812647452148275867560398814804817940698801256440209523660480036498234044034582558113813988621382476338230835848313613171546975155497993399702957183330795356599307885432197378482719017304660128987445699253570723424265365824625721566676515481499896749770116024257325369104555948020758789393950814858478680339024661111612911250974099941958490393665547559173661439808258027568215747413931271927736102128274362985579814648166371016273343109047700272220524068984039597085002137061408081235765242672747237111680427570216001065649407379866694834320625919033581110172008782433622367263762165352731110013676683215973560770145872210695106001402321929598507081044860859132781688056359037339116153643863580142821941295916684892117289756867281119546176590442771568806469481313046219399223134823566113808416668701443076832053249247846501960210373191033767969861548862349046020199297891718545339492813974192266194488264829654417438309749316303895424597575055269583802859849157386914840998653799963084003849523899848154509453443239034264470948336987966781810043984193767717303832158977635496265973202408813746417234762140391420661980300916317394012372533716386964911298888738584641831837743194360649912463760871038684151696445583873640721437895488299130850745553477854932907411069594250214422096902627836085996534341097541121912434345186377803562095746719722248921835364480932488571246296672486960729168832843204510383475821380400207870301986077815538122529782830424390684727194034769658565045825826132132764862800037401811716653044674403261284928108086017544453779474217823564500078104243784042668220694830825024790150370768098332632989566272394240698293391248928104179866294167125573769861728538620331671779354647198307963192932542493856451143514826872429670372807779293796628574831925497432061700237659003252339761064784175319506212606431192445888300503250464769891879064078419719725890317374254411477452246394468605452666917598509182019913950511689317002401058642137147515299053125934876438518144481348487319574896742359303022301171125572029713156129978412441986464142259634711981190846604373340943041748395007662803731063856517734017540124667704533052591945364177405103740451274156969442505590097124937313752179091691938258032949501066303476224676216978601646587850200985430777259752981208333859477984383246978460585725956194974224439292965740228667742586325911945315367946595526161535671499233333726887654831675447781567211766367228957818935762586696239532499862872818287312082845642319631890998282122197951821341030700386967940952254487801655387800282295992025993298669379650004222888839329056282987757910255296200676215323173602284366347330006188722567999803743948673665604662555153497364471734374821691047167580256428018951029341685991316359537237000273872080251881672625094716878084893899027428679241788001035262006219423871696985692598246941031363363905316131854677151398782169195815596462397430969212876596972739775824425785723830802732882702086524168298705248367514159373225716074138663881515608828910739215063357832783334843382727892136700974657727342225935982478238868154841983304530739919102100885201114860787915628064404090059418266908062484427703604105474572098282094141752405021141946179129786369805174342656428449977317843869910509884783714089538064972249458072185294523403104511015193091017225366869459050624203418526219302770622728141070068818232689871276334697756873223165573692049379256906534356620026306396466563348650836344210923650604994472751588926336442398252041324339126139220011784247687793759689047836946368214599238884751058884893241772994754306583049070651334964009913867068589717988284608037145409134259666821129242778367547456651560576020860743257548251788041115907290695481618837476686791067856910870037639350083324721461864273506275107384361501570867956153084538316670049091283362021406077954929739675092712193170084759301091290708775864530742625331873616480745355395985177703583769319449007006696879757673326593502071308065428866011950813036441337784530199658437888301902923723993885456055588536376268075310534186604482889300194309831635915408399656707988244668679506644016178805681176890203264565774983180587596797453264990186966086525147977148672868476917128759733099879035308937882743990225073480461403274274170090556029160799712619074350669021646527215960047601310186354984547632217096954961248411283321649258698382925943697442016720419954925636173974156955381756635177507912267410994386631362715465963343481307228717678036725339716838092003332501422289062338634490008865153614945452799954807477694745685463337985177114303654949877585505041223617814078655805297772596050203706516227432571567394896208732395834018767145273012216532557567182416107601165426913009862547656288387444028365473474232710333155457583387479539494010451535109494935627976233199984988393925777391988675919891504710773356074466272104047699939745251691957232097481346904871548211842781496320181037595138044531094138565391675852547434407843854802757221281295742628808847679988902123089242182252118023461010706018221335316800319886615394010907826067707043505506750992033263168467180232129140213936504118167686096348642161736642016469250386825563001403184474720043330675696282794991517997631330667074346173823976601885425826889414998048336127769365119340613110356734358426713665257790230589644934267606286416259896462857274751404759198039811358354260476464688416742611538333870966646944482310813321049778557893595195800201103622048183033144402337335333032134156067115359215957731344845367282051680833073086407388548859853798291012333840226100077527171473034248172194843976662314531414840076650631560541745476945272584289640138721110188970289401342893255079268437201835259297174770367900838920632407467482799955584829766075770425399506977059847137767117808479930902731785569794177060953465902426645591211861864176020034253774164746925385471564828147676376783084752007781667142882630495220103726435246811448663076331415387897949390810335625367505890153478826381884749779325237921876577125093176663396544983957228813188543641247482457366054838382495921921696286650520882450595513478809949868779786340170529515654598885096189705804567174987766428728531784690437821341293357970758314414110338672438973083619250551954756603937561191913458855163735825855404300578335361286508533587521572380471538077648298112528037481601623456418400110616067873132240893320399002549478140072624302693574597745162893827974495549386819530551758385060682833200178496582380576734759375210973259986604081515415439279275261583749447763465557737193735236930649224332551304096805066519196410907407910537384555497802541725077382606200315758234834402868807231701479184436647784905924613785035348021711048582747019806514986898519110785771917590717249779886651906828679823634784947441692877929404197959237070100528788852893355413531268454921540854153279915510123852297452178988344678713046110249187780782786978405333150651634621282918545019956597627054904306030672895087485454964815732537619933175123923630113460119264755031035792809216052024681792628876453184408409102113355362671980384736761727033697245019528081545637841982451348867830688691053761701214774944632374132297635821119803075933594998540539725948440880994785277955746625319007039234657848008367077310048242195088118986251646899490013403864933370855111209225227706026389328790991973576830728618849948629147679476459717296448747135280950750145007701153880980875320753568706483903646030342893143990664556773892695585594245927472212479369267171897281723882009732495251451470226530382689834900455486978849632993783824037645691607624672914881017887802092690672115598352761739065838396099379915376595815002835777173207562606889270694473655728940053923433329927159469395300134217719341631712276469589976975138325502656038658063341703934744451311688480581179332191598137200495542435197606000876173149321791074050128685270900110755633309618426346525283368229836619062476875333556052815063530461710598440677509185877193748121131274436210215345911111878161344652862451416497384649228435434762032106586146321287533504197208071466806168385216135407165934325869019091739327004572995497712505782507439050507752338183011738748764659510205923019761881257975867004828821482795161751381485882827752628620414680990892579461375262542642319856546171465621212785129493840919072480675987312586755991676337859597176573441906228832209502058907019051765103522146273814476803010325369615127503349346690086436805445002990122313041156310270474827584424892955787416995405065219277200695226526678831721331935616396287684157263519619020026599976482303657085803024992310677472200853956187894478671684173484907577788151688415299529315972109798485484854498524124105240462481838654837132828392220768923002640829323575183392279535476433189003566818094036841430622798836201534367580900991043795551546813651658031731293293485989793074769151923201947938343242327548867266350969596280701868620583213179744322808462276531881838078491437783211280489702334633436725163495555327356725807817672782968389888323596402742357924015018282016334429246522954822256423287713562282109712957628264328152410641674403036406129992543976938297137524921729938068638921490106879441696624717098342264218378808153235778290493299645650002772166207179443455552265382022208487254373913455830864444881780614382074161560965511343588563422111499552514869007173017701800372922136077461841351101302354759286135401365673909754630178585349456409576877700371839150943322641200358812021612481714435176950165644615002118699141561464975909225219825106086058105028450894770066043550726798756536270934560375272595710714987064603568704924482375610371604863669286834015798959936340310698053058717381831135248806565211107589155883457222523810082111112603294402266120114631006515079456888405183410809396587775743914525040811263780068647661817499009502039389103365597809328749700526449758253178348087853453877102268750667748580490071559218145690383425087678410187953097237332554472029996587337175885595841783237156694136025574768040687791738654108830166059526354482629713872629576121120667663377162969088294827474094574053187549872251091225727885360577119557792176606869821865397949086148953127833919503900911998082164072128770870270871155335413225066711536840195010606263013257390552114058955442566656350333183087967978391819107151940731295091266988419715290851367862546132612860319396486108359141668399472223674934369222347983281987337488474126797933834156773736067788736874505006956083872441836557843078697364612448245280001987511341857649771925560612931840920079230403299007242439372515058176155123671365539235269051439287181889809794930536680048472853721753239037921797072838536679915798061770111348711631981708502474233269292283487851096294026090727476480927009804962320741850417836687784008606954037619647029255262075731108242237244235211400360667386471313072468763694954514643288947751003278106264501692981956532474771053849363618232954750732813433529727608201311918429970747819155145557958603481542158489431406145480185892132271071113532467051049803517507035147107206867329920952942294435801313031005114095142415401215537351615728139650224836921561318160881731706406521154261364495580710707734816889410960136165024774954134983853692248636802787851164284732177916996284572553564747181312591763166104217432799914824699563251216247527686847598100833991446422465630794043368853124138672712312073334980589680020326550245884514075324764922594821106843033506348931157886564268980032281798009469835013345396985376622408910485175377042854635453347272918983292078187273911638343877713937904217856081092615884694296376982194023726483469192413319207287595742438027358391192932892390764319848102180371718347357171115989403248209833747754690554934965048667380896333052806512951134921985943802329005381519406261749126279417055738428059094924949056170011825166636872501368310964520593154396177277059394505048670733436125129227078169434670480496087622167733792523649853874877884215030751325438704021120750220389200335772797773826130026001833317877584416769587602447172214980556048369886830171043864544656261338203073295369956952120174626560926395630912933789689252436964001589421003039686467863498000964182785813930816033687911198487022640753622793705109197149176492551157390639160602778676271294673331094186440138427946823584072163296183259647287759387292754484951686354633052976077737865165390208689143462635635780785690955628366149339537632247771104117872357288348259211219397270642849444889984188937046533528577304073165122735773068051985084098912160989917189561475957680901341123467409401980278061935770664061091497918566076052038821617536815297146139663023274240888722432595602392079409239611419327068812587898474537211651932064931029830171196287189680766239375711690600588395410455550101888457958567010093605391912708829235968061258239723710164439173822133731026154499716158459824362227540821754435423942095426360162056422000048779407031548673799081890113076167323278590257610910540651253305339944643426791688059307535535876912702231756466481887269246847286617194735926109225200940422078740811617012765867406467913939578253290730350424715907528276646675899350131590413019919367783978042039112052522306013565796415030483544410367929895172067225158990814096820480429128840200596871415559020531272688507605046622508969207060713758349918439386373793987338601897094106282753134176619555833911661316041182889095352335222750889410907453801332796792701827819930129834011014287073459981015878632626716487058753663235549998857686230767737587805975368240228742708908994344137193177603724731811387804770345170355294428845607807197031317237327528896047447226137947028395418154287802600003889833859237083955851242098221046923771569690669033522905263655564110136176063174483282032954239299457482005576697960763776423505621663896192770655456407549455316065412303150152138806560242603061879691192865330245482578565355195784248017000404767771666762177198015257466602196096735198586436382908703629804417804027632097403655977071057203411850214781286112303887569070267496529533582511326620068993473137656253831775023790165307879812454121720326421573293829888011918930488969768146604118797289926327538231077726762298493061061444888332534083752099527638286573409130326268089484025169858109387010489999406425553518672805180195308967234780058007493846908652536713022693433522301410524755466250980194708462989092783582589265584238321537481575559527515148404857777548914788100248031913132814612781236478759447362143928026370890593322168470110171177625487404443136750021780562444572683979648031860905842028286187534366759374802971238512459451055534262945483441029935406100791650454310681651970173819246586964517076372391589465048705978546391662690541214476304201903658016693970413787255506381362300895287867198140396831818301848272753994758633128475076237505389898854733922744369146126083165854759897400024375060542904423145723015061240668927091179325708612468835706999203242388106485851748637282810139372282334894156362928181121639362582569650169936607900898117953281558337563778492346821415019642259304087993893266171526899762611411615278662273446075554574265344994601221765911512921110162555160949370225079752048476389474660096143528305429026170682709226667396169730423031071710404145913387920623363497522677981341272402270159304042268756885255525262145826352501531759596490941901351565123933994535675229999785573574966844597979669680243753451134016111830469577104951321008506696211816355683311189673327590115688836983072013727844039254953915709879081948402809605631989856888864635631563822975776711505629382468549663798316570749015756111064206642248855238347518789273270263288776545682967999760120841556454862745620025518988116880417672681886912728332895156570627969886979651446649482726588164996741582226129398741328168656525698721025380134947062294081487235962185763318465071533917855486363228743624457088736721656221750951310535111130705186843956248167283196061624698551089607304375848151054844048363108554913291011683315778821401650866761901941991056486741587709426598817469317009304184415482563112468328275885642880032131532618786208589993933417383949081711150406237128798596143906082930883249318771047092341292424506307811080994763835743497537760400040310911217001622526668066809405574922198789346913948766163957721518716960170652932960656070000036135066036514232112640576243708506302890724611523761414829852097792146501696913837200936438999556479721230182922623483448467852902026989474911816087191103000158338015118918891465084931789737330719498809780998409084220477506030582197958985468548934036043284222156045799687286674453926234603504183027193137643180019249693649654915295676608287344670851905076384448628443741743846732227192940012224864131121778872514739454336625398592788618898857552194430917398779526898082477339889023145216307259272765705952544031186747245248762228549026957201519497814398844525180589012314786834718692792071147965566878581111900818751519994690542562530040721777544871371953970776494883862657257936079729682239445912050895078261008750789459805738955912127013047487486421631992778331169334349062135305690663397014301277220006240695349653452850821285288600954823096738440856254194611584699010493380569191854718409858299443787356723251645755793528262503734436921820267498875843824239293080665508289728223213378864615216893215304991965225881552776091952888511025797373335058063820224335236310736236068257187532924450385005447494664540380318684746088418883038238652799797469654628992268780197532640913847565130830974309218413205679057224594273922075682023031812415963368720787352907859662938790023352022546498666824555429425395794065551839170385196036744704150482070107493910934005286048525794583634987533308926772157367289117622481775630419638615409732957518396371932104965437463487532219202018333513796273897698756859086327848051121053575107806983429503611418840244686174077425361710057320324050803568555409127130054795061856792001392835305037542909631489730352530950742487178556825985530497780945938913905839704601044672293324413838364026037561755202024234982351365399095758554769843222593236821289508140817924349925566229274585330517012504465148855936053431789639393631752090701986289372578487245497415703381702893780461604586733820612165332936508865858982343159838295490719849963296403112733534184301497969558125073684372104251629870947717411744752889788566326653887293667903345453680388338242267144072704625765416065084733172935851068760682694455902892861161752787632877273482838863757669630173727325126392804416027148157400916822094422155264599065879607454995792676258386781684029086811318815977459593521332213485168378109582632452926618531997300978239594094096818871267835063931753402629977836529408647380381221309340052897051937642584986774933039755869720461257537384402475068465422427511267475724686454698277939700289391275739247699535190634055264241087260044130062787288754346617394970664517733830764044496480077198513707682019195060655376583340675794296836983981025397453443993699043147449908225101075571079744828929422752182184912820954182913132963103884506560624367618251793069932421168185813104597008704041686352764005381865850263821586875747317207710258563128584503671427641048220697535926534293911043160871085194335502878427503677991188143495275298709574456121385877194401738752244282996390221952854622958351631592895654230924474519053103441609705766915491290184152292070831355923580315345501345665319653696735106901979112950831597248911673479347029070704528781792792448637022312941596461303982084128996941402075502755376534703765273856099664182903269458811871367060717843493559971117257393243652009632685939093351002809506795443042466106782140933200029845058900073666525717881800256348790196306706127943500058617405609906297492556851229797133224235549826211847545272350370050263219401380227024955815585174716405507532002851229820666378491814050250558389480469826201907701588731266276440965273027530478547405025784274446087666557817406804307369466971613114285229233346984119639991967137331241696900833517680821452887097585829842493248595968530162208463160861073471692898924552062721428607861917220098794155550473824522091058681033797938135708877076348402158852488614981713047418114147710263416471100193761417203783449670634649272290852068996751108419899780792155027116494780477683486123755274401975267795199559429010805320445471095929550034973614023188948235538579670657547217322825387603346695084064637922829038041895578092231946201700885886858271411194859075389641663753667768325698604533552139345951029791876151106239784697893661315914481414580636092957121414567587576435390530156393183214999225051583167516528061267083507640912204417040844779538258422422070344081507525450704471291519103680353431524042186600999192470957301276077530301663164424853025489670031741283220025492777331471206393374735953190811302538392307596538582460599795188615086143328361581895907277125749444285418454500418407856758009502436822365840773926686475331855699427703951581631927598753510253327659566215263095624583576220055037184881304141405904815667838237937449297441132583770350781176570587522725301542986971308015350179849208748409795376477353953031690112085985452903073544269618633072315438257902461456848593342756981394399641810807728292150654131661535477274686905583164726654061375160577678526161385532093627918150336425940265813082255098293153983117442868438601199569800354935929446230786855261731257781846797683918468224502612402178087444723566463465404451105429944980549567477938762875895207936376910320633865418901097242113775953493051877607686830369272174096680567520192579119333719110783998451896034718956077469716263235301114538204431522374518371984332681547239788380347583900782243625681696259785676772353291344247718118248686823673028204574544068020894991793467316794101218535648071607059643892302947890502278265437619414478984306202181432796950085207956954310693490457389493782413014212667126152544390440028768540556826856050501351796907815458519110288077000027321976538218918380920571540629850402241939244568637621234620658180539904941692579565712954894666326899825451586690786299217390020275131087909553138938179730177704221391718456533399884514265087794969404510148769801441602815927875621531545590399594818368323360825948296380759491278008823835885254533571297153577686323244428536968059417940302367660161198011229467143748102208985974271992570092373342787801854763351724794457512559525926253205909288232594983636754541297035516227902222625334223909273241574412455443787092582220237298009067468799787456351840280580553913893954907501742000441113946883053652727078686848812165217377240461183009254958676464758038031060717374485981835074785639966982069242282686154361472794482820415522341655078364884211956643353033687979785258807199655019491844397948410211666053994148703502950280966081883504222423920131858194749610297248925119468474359662761794829155276543526112030925844133064535117710826688551929625907793598292307480047371243696245231130124285141567077796722731051172834441109488973159768832345260900298282491721464031251728571853354956492934350172460006772282038002051837748538514629515460734780587500333679220564774052563013561058315265058730518158126248776613044607054871841384710580506774986919103551357434142941416633725623517443013554848247547992069039586482798151932408073457048965921729413131498479719222415178798984810365383817824370941900123291405211472009943093875772602475245149050300282297708520981184270879502245485243160825788577422072816116585666780362170245106688341627581657724141912747589314472988977070913035716140612168355058863598775955894554559481592987412530694046138626323134419717930552518935120527946867469477381785291208455011577434043793752027984200515224041215321054451947526202350980652776180442793961548276961124695753227216287022630643244958677242211303035838150468981316360828355996378189263213564111724551623997603889732170710248022073107413076127721193436904974006220148005607419536024715863396974556347037123429516582414985398282146970488531409250542635482698530717570718995307266725006228893759098103881470908907622922555796248201570531838946492185789256823654096667957731505145558563900529741363269719303033419519380686349263830003775763963930115970660008856201913116979896988507009146986274183185772768886859334420784961096919453107135118430164746976902903701016296765879218986697796750890532402763519140219202767366725901560720207759043083161089766406321123007078388030261028691488132161980391244120227721311628449514085619106947373758912983829324478666459835935684690127894313656804998425612337133361722384419881738421346351790074579262898165288676818278239661897613102941121459839870742903882873124405976145258768995046908795998441935457025074685246270928475104752926972628344047286371603849666099205381077670234972569294926641167109950532635968490236152157210873269304637722292150078176574662976019984676201501333300919443287322273340544924201198827856453283368953532538634994512665967111924900088613457833475238313329621168776795875890669452504021611517243206583310507578441975263130345660204595808473572099570120158592969176481279502252937203586708230999256733142269685292492021944683678809885393389456415924074369469908391427253593486828814202562493652289187282440826222235666104568810654172684647022114412676286094646075066242550386768450205911302496400646056845993351977979679672768942257540019997235859103479698229546695625086852247539121047517731500431522558625653102487169877630426859387009085477659305674915567383602038323542795305661845130284776481545089276803274353430957416590717715061739977951320437280057618700086911092069160617508346613991110773912602129494444686212435547413777999077153839873978844159609893517730498932403142987553916269207196447889263769290981174413975103595654607341984480465228560252978949674842102224996589948079987374018808329087687899011802072206553623757949395887647033623046145899946532000530329490902961137458399149849006728182937963939053172745413104450043577441194165740305847969901445166660306589573367069024599235958925434327840319166595463988418572689119264321770883067449621795684027146882844945618758142123585735304500129211685786987134800880031077938436159934794887113890788992947380618860916102725155061061265327305848806779700516733006657725001069679762986884371124021736145947174970758775836502962933080918278336814552076133240457474336867299384125656631192899660168342784917424347254054133429322393812105068318216341798483334936330926963956496738159482258572273095782174200040794919093410455633672166595980434709345319586343139275171567019040917656368609830810578848635701857128045456047722520054927797569758314131108936341958809037630360258601356574352857497478416471263003931486441965637549285179536131005007335700139478699172355513315128428926188966020250315795378296419060357317711106359274785703315212039826562355796068241865661468626868541395774626410870563832117837069807288925816788468003203414325376243564986773953476905476155590480659880275593212267202305470277283973728795219782111234104543982984780600476166381562071664442683513522131999885548762465555265410190224038817749468482769990874633864438644022571122333247293915201793133928390403126685513916163973581808823004772955962403223152888009756557550673422742073062240190873539475255070109924199774089973107748242418278892560392832749893459329359654891392188488663976946330469532439303860952604807886479347560725833811265760963536462639854002056718596686696057481135628268447706553980639950819880824120430868940110062853738070497346453803493561190885509428411544170944003194235663406307945683891476748011101881075769261325256782201616939644586618756433980439118712245728042337460381244181056182772087554138367398438915023261596470697924913024174032739180002511693510853173957247002073380842763984355779978420862175962624931275021407719104364674986484319243634551479941657627607314474491684855543872326902178138082528118827061862784860137822975785600285181563076572033035362527672553539569895531016915957030896481973429382545333834282890630336829562130782149058689089899258638164714096482294706913523144807563609480169860769307285730415605949692890062680914569556238360484060323219498521458323171063098438651207192355034798592399912095545790483515550124131740157727925418606869970564295339611400353292435795105510902843944494586119783612821978413340210913147995817851848827542355265650532305820265281804729479661913808670896829845705549812728840073434971477597962713789560939306080523624379432572502742652741708288916481618664159413008643878407629202611155442855971342071839202580544916050757217449140819103185269131266873542369220672626338898990095348209950203969355568375211778835894055499098858956077088764601569561394058971154434581409017502092011169073500945702591602566903662289314839445744219682586732918018912291768948084912070131073233759448477870137359178483561194759515752594025954700327273880798104592456814984632387510475199349698202204535928011903826402913775771482115331799882277910682962806626396314555521046029037836912716520973341865996382277673019483109570483804318886250590213514598073438092538081535213694131704736987592790445113181886986077087364001699201945469161169953651160130013740853849888335139082364491492077628393248034120926077097147604477039748790172557341394724396846817645599800938717558412757003058143666974787471747327354917880687068091509358112159979658809064187383472117789355418096727982274221673893037606244091127597959117548979198764008070200904615418447536153579332248686323563260974774598305296953989737014491573749266134337471150339933208476188236145955490778132633997835945519398845652311146097941704403178005159636894691207202624232395722281150653685879924300546369908018557759597183220946249116755082996806979538987151475245242714172738418582102839360689006538662957190947358812199915040434400865831383223921497219560864950290316569809187705608927798746991183561025686223627659098487409589764449064100736081736629238335914223682919320800240993555898578604869753447927139072830399087479768766533678179881081979111254522994092868600973885467497622436458100933953311398621706952773589911438910125734736199407651596682713662076479316303359668326930404138293361901341432787217102671993952049774346487189769472656229195000867308664619658456328711457409400114023322008904318031751477574977908420508747365443447134186589221141968325690596899170476279987374084716152220736132430843575002337120759214726896000540560445591340932131832720475859673675479103536657983925122879785886657284084682516888288218772047099125677447896847968790248922272409650331976561747830962601775591911145675219257508908057518734848118317344039301539656217493132595136269601371926266671655879202284701917580693005981101285557653262343806181362491533031538840981596005690480214831363253508172150414857715260076801486423990257895524094226556682540774525053151514489235603698424191562637645039809489344038105487887805670107594040322081342106133422441007770857523909627847192514797708626458000106246002833759828538794875534074602951389465907573683057692739981006697708059649614735821816745730691112958748572571462703874418728387947051748890206804299871985065347662723374142985203095296568425288391395608089375761811350015504779235819358608762553418916709075356329644266104754956361612412042145730890634449671007762609791569376047350880665667992543093671326765570255316340924459411439015312624664616338223595060503565615263851214602822919363148460538243516790711483607287461731200472997749650267128085564435442641539018662001483434481114976613483277926027121629406325500945567949833606017594701885611794484674175549551146252285223045899495109828405364582767703265065587436761004272006232147302682836219684754957263480140701016290228939785302238672189330608804094590771033928841799041700585688985653112110304770803495070073670272658610048952510432531443589403056739770411398692329065048091230342398983027769692523190295306716662277175092507912443949003520495380205704573560895811644133994591597016131485227172050959626282826933484788178950632273714645156562370152316845301305991724449242286634788178183289108836736999472082371226065105788165193990083133574869185551451673849356726495554409979083429565631675122531186717450296634230573299277203488096205156223706143576009529145954315606250279876260630834425066706187236170798271205701422477893696986131463469815102012028358386512720931271675388354331459759453545965450252243953261044207737223416493041062700137853652575152440686936886609465798491510969065334123357784102926923950888232984392529965718812822579213684530219683840048481482150898927782703040397486094943836070381741421423902196426187618489484361953994853588389408637873271149630791370109433328583789448691115282487516839675152931392897613682990721078147268705554393362812822363366571900630457554482720663801169063055986936125137899641157434463920454089572809339418521428759441304261497221743601928637425738343693846911741250416199007770354963972090493616181565943494530300788646487608504512422790642011988353056160186655056431624734145298868341257931028671098941769302099394265579631684876506192966003147239685900354406043553239515588636105235202376068945926476416337583011426521319838319961730108014873393711050026364789133251398498261264073826146961042530904627499470817009246817671753527394129642390870692585544611151672983691172433089780080290301139348234385981254163774619447449735950859304967175870965845680180922294659872494420381633138878917780402495608344832933002952309664443328776141405679924242744501977733274118365067186519673879745792742442195190566508072710005614373610502772114846546791352825972123959679027412907567579910733380190460022762248079898468545892163468545585097525584753067297779899753130997758813041657528247106152579388172789979376877662919715687969012469777852228036799700236436916103280040070768039820484264075273873609543264693118246491444887982885603228918456707527296976029662611155797660278991664577046787982530321347880550879482676459680980601767518019881680753981922656431692508378353154884592395437199450392837354069021485680365454197346219210808444818809456710336302945321803338933709538894296342471621807609029894641267570649302847091130414346524628156227301092214026738894804237305953098849134690609065215526305870544775243131581405011586392851818270342677156695347607208053271596261924509562377332565522328324081839981163166684046677057261961206159434597180235271711618058992045231492452458428656025713940668060868860996651382278212346803986047613649308445086739783591408353720089788571355316103591946132240324104665657487642879653413159215202058916971481796232485879653779003408945231788561020802154612898037615179294853979053537086611700343359053614960006465842472075698173622810805530014967419584244837160015516344770282986680603297445731414029531297196656640679509697069198764782217339833941373834645793166981609057590773823634725157680964294511334910930352076338364900233155966730803526766587896777437228777107944816609856646382928765942234211115086755727049130351334590602667704241791458857006455161557167183365704683825145353891282517036406749897972985988824196312263853765658661932863787758356028617915415608799750777698243527993222132189574725061808675977988110963104597037349451172444016691108392667049747133850499422842024419135597072161329469457933269580442660087396900021249590915400761396230342939859670649149659787841337023661472792163278332305131015511182277405265788448789090752014770487183792407259227396342042919039516514325524341526261266729848613223201752858810356731417980394273464646397390493844344854985063852514235186398290320916336293499220525804515420653728142852767769438667017770085956512373309870953175201854166034178540269851029522675030385935878786419460788040813687137912077289615482613382391648936657802803830437702785859355776754019410005821126293086094522656936808168548054107497725179273717528850517437686845860881286867547282244500843648937041088852489018441701105107831356679097695715733443186211462801413481777739226779732419595093863426229457398202670997652278711107921916025347422247490063076117264365251587971996179279858547763649419724286364539639341411966339929364342318840364356280214849381605434819625966028855444654468583618467769172348598166734281477667665965421360478248236119300421284496456826162404925989982965441094621453852373344889050538923869280139847737220367109865369794224238935563879384778363490212292904536483450786607651628896420494087970545629578481691118363555939499155384364009865805169368459000477557125595920394711101572346935404103241884057615392124321771424440910617827320898306562664795839415506317439952359910217462938636031813759962847618896912082776329544131818836536791165345241589837917147918585858948741015086226950598138321025998485389790318797900695197493556891135564850658007329417681708972963468128106846453740317206924332462801111777799046008843251134592538341353936290951654387443629706841843637836887553387042053087924066160842426060233693692611475966778106039149234589900190564234158442503084063392134201097752988479271729612899592872196177825670966489381353796208318427883194589076324834876001866543729781090695233338174982466385532426869035549833326160136243850486802857323685449035632567392684230413266025512983723868076812004598161285013733486988531471749419185394612631203806122076905190553753123745276554295196889986488365884752423850926877929420702999982719456786772605756371247779632979186861408639577263431625487052130306912230185533878851835319246798430902657635681781603926642892108849330098899976652456248148210679763228172428088424848018943063937375804984010281120412553177771291986208236625895531670627757863469656972585084390286040118042285165025564819687990604004403022678546019794661070928199153786504900821821791684049620758989513026039443330980287939025554270814628838012672891804808613999156729268802221438577583875506777605810694133614506169723545566824112150217144992186810244110411583993368186133888280960934499273561296183166589926220489288445263785531736911249412409210209101653507253250267119195424296699159228542419139526373854304014750934527693192692959545432427915022551635106768133867958276179284770713627615826928147643148337709809541379673060238190485351587446164391464838049045345610491692714387620925303594513319783019268508367194277548686892546521767908278404398411243364215872109816830213208578965544552396990797559712435496961807876737668842177663429719076476337925477550954106637357518133549209127022707314930078393439733501190491405437522543184541057837546921653843533151427779981413139714301502526634641286547481717211721438089717874539138877014499996143880908363548069716166764541524516439503599231761679816721799312093158116126794019657385229584716192194767803318405442872303207227898739023879855973919909604428560798140148497049814105023904439058112902982762080193561943314873479181063348611897661055562693502898028509695000656952397962803345794787635547150289659521879752241137055399584499899314336784510083868414448726477766468722614370648073801781696285611048054913479496243352834775436410475425922258021928562259933053838470119419914576737261606119648023189240379996319705906966464329085788713770465869387657076964815830315368695849205087999052766861361811192443020222545171245060995028531409512198591877268646489884304230199020865162791238534882231581592365467518070938355014434259434199887937191784514555282346069418252048271097489739963149311276584911096787167732208000699647975330701003380885450848326665255055429904680889962055902908773648818968087395952483218865186480793514420569056655279724070616268628930380468320790501977696934402378639842896881624922685127002142924632612413867841806282278429716164499412850177976347589336122703616348904433112403169286839123637111578823192458625932761715239484020204616660805279361721784089355543417901045596365339252961120011070205311636737078761950909640852578820323580655700379466663963210623930555842149753759654953669099751107884806913747326762631540151512673827081994206899744185715469363799852050053069924031963185600052433274112835304166493784013875429202350062482312734801387982042659868085301568829388419161014279442825760654889694432427678043478742461105508466800540711441704675790791242482543483800483016170006054221775799002896812982514300405998080019221466259384304613983909400438559012065633058752108807447482557676702481783569256957506414895108595123038349599020645433552324958695592956853068462380863007899491300466770990587435208091563317898967454995431222554457640211354771626515198168673520848978765552590989014195066410677276258816033888504980269071714003620593494501640769592458509287239016527941066583223798295235013413283246932014987912518997850769896700751063444581931874621915803545869114112721678702410661218317188905299629394496465544942500322305306202954346387003106999782889646879289396611721836583322115491702336729496580317182554038128909138249108430026268429533187659886632660276502845120546291041014910714118452949550314258687935371088344445785639623101443999278556157289669730674391936090863438170231941420372348876959408882143705527426632819800175615008164340528305863557450704784023082984387507228073891783053746973595849092919809765878974762727472622370245535036097123224322031717296642354131769433339533508425765621772338193484977668125560839034009324784927045679041810193845412773752949637757502226382583356279064910932195768449152851775996949924459875066119448243799871771760197252863128685770957532520771787766573350566603372566278202841533844600759592871238754500131304832879831005206120876636206052165397749440038059955339282772230152320950547231069476948993907415835076106019500256674738381649451547457589303536234066855364743180486243249545836940170180944268299074862976137963704066118518896345678527644400686965900365484033296931238479761626724187049438553082136743977073178216610379514099877824963352272979284343663808402766257548367782624288691343729703469548170004588671189067257130293035881441351728120842869672499467652729594374774810495178533969454749779444833801091257974249324013790989271313280026378980224004126580981398652229237146074246905756851021848057780962918742657458551493467519131357807329292100117105316522333588427106895238952848262935334792089646528604858188760890486821717482903118946603593039516671916763287982347017634989360235347394563286513021809021477760428838442865589423288694458358095854636730578669635849634630626208052578322689261594176158894671108258847187671644069946861099503624135453963591539198066147402827760462782922663109412357217907807161223824160826951060723994807979334997160941363973258969008545075392710281033063988769893640225055242418255546370008074371059167658421591383113949447184298214951451469782380696064427700751563852218255647969575646577938555725727897397872006762204364813945509323771803681521653355925722622770190292441604181779092931117099949998880242470216650231735262472068080851458033082901365419633995507404437102039875314083475952877534761335524368225431521839466721006661597844759303615681800891709512672933213138891228821016960297370213790363570033481786192650104617189951882994005943095684071636644936206562485353606563546196996807157352013232828106959103126518454928719529735073837130779701777919558905300310957003115026729623039558012670696252895080101468097635505226174325936533531057252232514251220039824401444160457399296755163626119957061106118069581798362434094491509471071336744253922135537479898647979442071558273213018363023820692945562045871623605564958626092251094687332744803818490720430682244475017941322624249392541477850415302809261913855751538132325271227397148498757112453332731122154528200653761613944151065839726555794708118456973382029939539855759947386691979579565970930979080381069064223131275182009268295771224726101413063022043040085586863122417684020941372899969293889391768558136488017141811331914615785554803698902748894633520775605859800133545347864152666949235986304042106076031464032550941023577549168625142489478522236894002470059787930315709735744944427309121588896317000661657939296775724047802080191575043860478100204426760454810632382925472687157277970912642854852213368978038325981400089933372300576205126522804011544259724233271796263301370734602714870982788882875222496297094583544021277389548406620512864577126119271780544049249967121876372540696742800040974641217107623620481184724186423090523512786076083589514700583662381924537142693661084434551985994570599103999722356669945970908952071992738867981941581895050854905379370615158040695333733018294704976965478909503667939335082244080329392380444480193259750364464062408421093111041724695025259511598121068076072444755259859648094088913291532342980916574777208883355587271858998338691767229890446214931951591721550588205703265754168923418188512524473236271464554160869825964975198763081466825830815538859854389033009334425497320097317228745061236764494020589078992984176845977026841502824361674596038800432488650251462178528510396215501784604077137904432288098663447574930939784011059531482936629688747709555692546987951968289012052674728687707955119882498447172936087838767160565550268391504649984805213648246445831758257872452760769657197445828928328659012581497257038327648402035720398567292533165282132774819368971280465771696822043698010595348358696009322313882228695930263215857964859018315316939543237543015511851027869985332810276511542588569059025985439554033890013056549485435722142671914647099221080313399562044985980008559635720743298001415328595011786906570314494918941533718409771646830667890130475085270865228838772530076503228422183569019234449846640176779412390471941676795944738101798532319947606844618909147150889863450058898797269658916368520787708029301914858402384739179057652250784145700272116160995860074588856866711338445442216591902068382324678359063069822925124547649150768714083923777353496571807814744325413305593702044959849892429743031843663686348799119020350600137720462544966991554632903960185111728847212299665147106435478817888154022820348314151537517952156102906261917289016940608078653465217741496876899168204319884620110700728260334050053678726445161271242460193050862647532628736283682888157818784371616487803514869309450956879002830134841871670434084128623935128468580892439626770850685099214316518473686097631565749496077008995204214146105865280602690139630549195294052970715701858538365336244542146830360026417752235190099678046631523922009014246846144239933059962046422347686383674881477507073987916959055687576227178921227021400501826515194590005667797341570264258119415566844322725936849284294379619043032146681511129156999398741619587219555726502152968179567670646602629570323902237169917448534357439401748299225637701471831799996912275127975356989854815087073090221897839027416570816309106321203881329931381612136769199118666885214331008459857923263388747503450822978313357828865299740386655202505786899975360766351270209438716796393853752039038011219132140584888389147442404522398443087597341235364302275693030669602874227952678003043210151144231910459584976027757652651426067629015055774879905958815824914892983280732914464476850495715177758530422729852410735004957585855082592299760085041531536447217535688210581868763773826960614449248107406895646868563794684054844815583898441456394776713330126864684524133418306380704488556108171398477450704498185723191403862836671766754142476122839105235288795986586762611047587603650273093348065040176968954524273143600070289937410921926890766532914105401051848106789801876757606211081156972297583914437945880037125645720111255727998144317285284189451587751807298378546308442178167821165902754075730921131729321241438994270944286828323519512665327701243198565356498172889654467696952205142043343255489217418653297994041718811435680181843782276215423499897957207168976740965733721392969988752365680645763982381136427555803145869983796189342375425103921793448379847267797279727842064823742162916664784188136865566773613707312450169254166652439775167618243234134613272810487191729077132656567867954790203158365160870450558380999988510415500152960016714192866831920380631853940846425546006124941911062776588848092873976391297886792242927947371598737991690141158002263104436339571292037853896968857055897714478778282503583967695376365912488807629794286145152681441584748102347694684352179190130581288415465710661277081481338552276693579798730520766362577482948688144150864775379419755274363833134298993166034183387673368615128655954163401987287289140649722349125478454958053250033030889917683659138313828919475844151368106815426751467854065594255421176715585383604839026369111332140250645909629845947251133184198235095315605197214829003590456816367807682450520932107621967421179518035937498178575441539655811489524470238316949675141537148996036715013672957872915984927701369343151999697787454996073424862710507972208254419788203495593979546497218204687774351014342454212398158687303379069999650426104657134825108824983512304537696481589138932749558252243143551936825552826325589884057980518645507775568938627965409417552898555917547458645168974758398116947173122636097987911283044840224236383615950505482567664054308304529337286438443783529343834896832535829936173621713804211780717254750229766946943023776499281727783239425011863890224256189890542428030878004506911797731507066888579037364774959746375395863314034733099975468188913623991865517750323326125595747312413134424828207512815092785747181426513724452274318423882338462943682142011176508293313048298616725594178334616066851747280839559979126579994179445972762050891798843694941450620342107121740138303776464673220283111044024240053053636353434573881768993580908488459859784825981408891506758254146291650947161210284710458264389504889297690375213625077542374292962365845602110409996893010605809255369409863134525817195762448626488389571944614962591696747930174739956882083567831255363677434237591183398912487540047260221480449803104233685033596363171091869853626208611145358293164768667086974648529285318881689566117253721461060700716722814672600728210696108837584328685998743334714404759090196086833568897273821805222947930642803796334810702523493293908639766214972161181432204375621099616583023434435165610185870583958701928626129459710022227073600811992064010804080721837015464436211621584503498084078253707813519988842778125487123229574132466561340722003027726947244524254375736948608268115065113654539662012272436035985177500840357772709662311569286959481219783546476198740844937354538612358492696184416213769275595401058443471574585048774134012419271435515905054523241248224555155620038003513254494717158724472691349834012315492224301882598635537596889582114094727032540312487394711589062708577318364635196844274689859185752595111092183398229827549565290685750699505721060794868965586618588916881614274240737949123577392037534922286203726300730906912846845024013475263960848617862425098861130691569786104466337838404756884525160329189530006565117956331415335487486400374500160885871798482722296474345510271724896340263996198773729939172318578307641057243133400614982755747621394741647596486353467374140281554761162738956418455349396203439019034571680799680006426659466319447949031955804942222339259743865681633789497512181042208173730429083828019201527659626301130889874133833846387597655187105327739333869486015514780235745279636619050301123756821415899211277770584947174081524739367993886419704558847837197810567963696035086009319140175262809967107929682526595679862344636144799322942180845627132583328859730737877056292713278820259908498499093604394146202937161056282183351339650647096062512910507965893903395918910245856910385770955419703602473376222187379880734036064048448233102252129796098993689745128888776579352960297825712164104347583352785794395772313835945327776166782633841967805221152051375002925046229642207944122721886043684404684941409644669038704839988635115972617124527957147342099707666905077972816810030529471294855400298856276230707935206508686829920506081687391605664144643667427872589302815837089335679371331785155137290919007990328791057261767495836221783895677628632900201554736701984670250515060720488420179193734155958980211708239593104919513271642395522402214087449296907873304721619120163513950661332263767730798738499355825178715743820917313746256329659469600354055345270157161732867154853282257292476790221461373995904781862429262944379443287307098059149158844626280194540083666564665701110476417645314715174864352553615007898957610411669596305356263443658114352319093262339402544143514119131434487100210065158806686895334722285909033956178579246750838950661002767448102247183934088597081883055237852614280812370519466395171345450854748308347963855846844816906076584990117541208516758581487848854921789855857888173738706744348125739544596906766811523554027033506465796872001398110321972311796222879329979463133425775592420148819146611188257645909194764116420407013137006705970414193452317263486308258610457357480302843447087173485555555466571401213399064370115248470540270560714636067916250647289269789552178652129016373960689854174260543648678750037047892071263464121587585523463759171594592287779469891389485375053849748775750330977773335698655586351156054317091091409812114297783233038702925922743458263005092871291942408852954839470173839556208761954600775726055409547596250335815300019047677533201422998636892281820330329534977408497985173511021250467510182857362643794700218052957516036701873715092015713572933895598060714354146656699515697646895627959007261689318661175113292679103618823982491342306002313026993972521697905099152728548755615416941609296456683178894850790302205259682027730513454972820971442591625557037545714372187140539312989547155892236955036941872372749861121003516833106718956304805161379936972340243342534245808955173586307666272765100737359860828170628487151241340833279990056576363839170158554708143533975382732161353721474167873209061748347166182807810338243672176691479054575930508824568566105898844931266248550710645642795679266235460611660532477269510869528797607987542806737632676469621705717502982360258729315140333162203324214118386494533220316410726351101761282930969411755299180085867563726253128363763810375494683487831198795836541202153456778249418952799392570945656540719065452898048519465909725094070111796470449891579052036961636790504824587236166140627565615697363321233838106161589590878890216872744198660253282544318125390735867935378706136640637879243983491534028269529522831758884957134801917506662438848696649086801066133007657066569684515805676394437578887962203497932738955877807006252603590279414973012665661766840890627110631005812767778565805424456037197647611427638352280189906146478691236506479985032061135964699495910228113750451342459386848231421821088036671196668656881907831338691482893181448711247651511432673094573164981814185417112201975054441582023825324406932347931741066509629223297329780136954272776452101994470950981720891713226795238831700090449178883058500484773653663715751961806580195650781404921118202257994844664646628337377737028776899616145225131416965823346018476413015411622925229004761243225574332326610993967394038514507910224659191436439710977032883250210188631957110598088701963642795471116063614929278799562907113283186143714199690306469070144688575299521205266869763606506242415002234215254088309846062036850216816687901186842184974593808057662575427978463988815043259917988511637534745645804207571643203383309831306364592651268480953443327266709250517207328644461633933119721569329873572142437445977292145998682167644647919302752689160208743183155717806835705152728972363632006555843578836557574392045814891754213100803256454266502531996381181980058123733439237316484257536829052150426676020421592887030606841878759787605646069199323583281215910415138395876692909913102623355805216004711732170151900946588896765910177178460801455356257208631760188851959244742503485851930583412137076999107317781224824312085951333931475137019721712160211596286227383203011444129371351479098525438877019656505030844316744556479744838619208461697979326475698962988491168923260631270329821972492126073600511998079139057675684120504684384945055346037646594805688199620190609372084299657211678522430316886749722339956113883187851341518028781927062202312693588383390311475298982991863455367630780305056028735164606554529251178019450065444270696675219864730548933759798419072809342646115069307872332147773501912695732602095692936050551055282925149937712874688364915631464560145187765058683274874378334862054526471835704559935028138664605868611727556747269417981239966189496478283866055056479033642985363262176723453402088214098982031281335132080420853448883549980255257373176588204674724261214678876771000308268251312447288034437729099943180642775700659600706576661563835499892566954970063292997883484571086066470596087708152203197720540323041311975300971158278342893706014131351413215578647758460101461067798942839356289459244655024421241196989523691106960616790013854942001373041785078475059298800439025824886500861179112930205324191927392057371734331775150149897294025790600668421706356857989889003805895446584518919569357456527605761058474267464077794632685118035134778258046825565936411043952086253681348966913246224933126010735469077879394550577712638659548424105202593893084489274649526498878878346976555718935640358207405463323794192018577484042772414799080815323433511340579975591550528717845920982773132015708202274589043478692369446984344570955970021905490755561942594674778583579264349054146890394497929682393692473698230388673621168815201363260821666690724584679638002279141102689023170765104118325439660153097741687222296939720219996567440767239243119408424611335424512343750604773586351063766498584214238261882853379338084462884270675467067090109174747081328883157752004598137690182087738744981129630036993455613528121291196631904209014342038883166098548286642356318049031523768896304272068830597054416788628351303713087536064322863741531725819318849276998340312454662053553747940299878628864193096627986620981731985479710420805973573226618848937016744707583008770307142707302950649947976443364842375531977825696436294165987120115674738857876379323512439976044288743593617825728580929923360778388092087951919759610515649540931852057792779052050905433788403163613172875502553829003548403103895694487356386809067028362173829679126509844418957324319801387897395042868956192988879318029828057381198674647274868819340872572321439989458753820089302972120037348162520532428852007919626019563206667428883827452962048493018373343310996654017215462816752062000944905722250797227892166611392752197235926958144195396176286412166318157732786776761696358366682685622763480704864512351551957586353768258542316148584815809911547010709805449820077311080343809455843215750490431875052133312034636573306394392030552474499961443979078525229560641856167117591393787879494592195354776921380525177530181230630281252337565427945820178741295319132713448226655639609640047656267577713501255428437628193094176087359084549025928869681409911372670702504615078946257814800707043599132650584863552133921252194143727873483434187490239843735247059165360557440771050875516201314787225193528111438595100691809008217295976242702939914917046017561359215463939121261905668277733548157237066117808842522718548578698402297775847319337098122599108847457946725099954239444454622868903721417576091299887890216137306970555256144523150977903892191703317263617176907210634267464649363535429203898943286519717069308953247821770246775502179706189075621625593915392051825976607260982882775400312862577349572074191637105927866409234953058133610790611941932982603976319684460539594430072004927936621451593666285516565975680078636126116389656065325822546228283033904653465393640316614039501829578674520478977656666624721975602871517401894654870438341116817602033036207117909204020556276237352662433226580702274409137429944519911403725560199461561491256555892924696802943164451134766266474342242757946369142360084670836585190646386825715773985853513395662313742960139375570668057256166973883214613428632535142288557351315640248238163016307070033828181027121346599796150722078092650098874590160561226770465259388647856941709817887509068762030278808498483364081649219854869525853205098135127237043417932016657350396097571698869238889151673107699122948589215345726814820159681401138898197046807545266509263673312724998176751028600553874985032379412457748468097335169941355179771702801037214616954204239725437315095552960138210779487707744678689241777817883139946342104096912803038293301383662338951768829966936702647977762184604573154489618478965369203326427897923451481212716258890090917462697471331113589185962899502791310043347701349119058789840757725724861451862987799544927962058371680000965310344511321413881556415471013321901979844581830207479654480795694609121731845303749519006512243342214573130107889511929234062160447244162627943994221930854043735142192878191187015597412245891671533402335024228438460701250817365588417006051932468750463419782981852032605879323431977627122435377065813574611505847042777564467999007517587084492920237736716398226370541453472997015096804503312962536063880805403936563932935655298683738574656588645599469285505778741469512620034189545360091898804649697607600926675631206128978283805113080063355520091207900312959075252290040054204774231207686014832790012003156448198497548218609592993163551041580395537187346617934297775430552882093936198946949471442172068740617434022432228534626805682551398243237278633423884849053475825674980474038394626702447448203180538681626749232817669388569045783965598049882065238883830249757574019464936209110070279960813979541274539899927412025131739925531543420056857027045627737410453471794445182260936003133939057679248342006203382770928330775924234923762111595067458163255334603955151788528881334471024228222232556532870510137220909745638765586681205585510222725405088602393915221924487712753613449584384985924241418824184299923290711063557860447749838861411645383729739832672695521525817268622537552530405560847583979903396107432205678641667906707773690544814059340030484930020518028837245248410273519955238069772454626930052487275539963510347589701101410576739713259753950023932584255216990412491804012080706935155833394122956955334363956982375073708707940332993429750014678817931273308659691717383394084514439648002776591171084080807656126997031389752106067504808597312198857888226401667747542496077153189520661830737401059033918186054175705309460227950396962508612957467558346825440506879430574170652406315317081825551102243971840592597382539451441410956897306810078777765047386588670240025193795612620239417727805120162402091638629102147146686925489769322658997718467006740235054304287269914203768778721128078484369617989197231533824325453261326052914905363906839302663636025089309356062291643032517418683343200181161892543415890785408263325015197292011058145344407303195644587231952295840458207409911368804913815680347396966353703058303305387362181721579843651611313043569994581256501525872926626143598549665819748161583700374122307881905765283708358593129945806137214115226534795893780997974673367320389678126689106185765302407902241194065251345113585755283331835207119015340693157471379757709796431019963874684853411971088383921234296634945984055841922475727592004309026375995209156287089853118699869304856169337486652334438104775030087720639019442347590734421642709811541429347149619427943705409087581805978872689866201336505819493512566313211860795799579476847140231119819877808160265871873084942831546252402390628105075926137592437997423580680192623214704769028742182207242368939655969947850670858998572557275616067126632564326357191777423099479785995030878385635550472485446496703333571266855994593178884759050712701102754430099254447656525547421700612350604421385042812892530613695560013395554413557138910655130209373138422367324812019664991732558890581649767622383542810954242535380391348861887084298809389362237411162981765367975588889581116725953184615854785642448852558380803606463383852115667000598518910907917086611438651069970890509781552165216408532354215276525943966640610343289563088240935240533169850091067249324530805629859441796001963282928327501517694242711774984431661463683381036726289199460492742328334394805783220321745289892747205483733055747636732876901478269392683444342289870284148253141683064604765411288988599484083440554894980092432932900110268751389258289302813462232534143714381918417685596850614836306589470996271905956762949475189250847412030752418890181011145184948796664738634517198930057497964474551273803301591935293769982777453912512331112109448765082790534175199841551936024188141232255735707199927506305838852246810295179221363899619516338130027950356006062706622621869940469151085095916858118739236803814680902348369711747002668643091271176772844451188215956773299328729529190484678524698254970131945165360274968372184483502513169999132727059147989150375754282986595785886649712387959988690379479485550653265203469907657138578001427267581334546702208265484904401612685034441036111467942445681050617583379085923682647443264060419485792869828484049946768835693901193748518441604738731081606219907797050669883164603548788009773779709008390328762595671613378904484510837129729319492420969902217910127298770613987164164817463201701235406920097586878964488807209944109840498275079064906095191109581189636323917960496714226241054933573336392630495656745579557705269795900054185587474585454921169461230883395969768925239840943286101059686873922022419075916510587993705108236465270547437865882552037563837030065952275560227012273593944298380402830425642508823136605082421758877517982802719565178405104057811178928425493592660661856193764743767861078978018062338589325185748044458082721362414679687560455577565154432110319855418465792553838786460399243879550243076797490217538087133506801860910435403349660355454310354628107410844999932684714721149383173684322181496507355606560961268096577562001792684531265771474225099689628971227790122034280895135984460609630723235328875932525548908421889390478364276886573348296969619959455461590180920021389911860339573226014608980504487631927571486612260152945092469571489854984278105375830105340654953125200792849212571938205484057763482381261822323196813483672729250185056562776155549416330559666892875148042018089245404848204753602976392653768394009449889376268090562822946196484624919837734333081045705788286463710572630825361411886489318609418016441356258523639255362612778347761474421032876370793563103137814240825544624390112998516425444297011507724955473334512934622423711832100642424649582391720619413699651689800051007703902337366159183760419365241615551213020606372587332758822670192662368053936536573255444112461615559824852522989774179570524873765747071419506324192795738529778414607345635138165466752523854968105129640944069069761634032160757787978104223256879290520154067049820852572679553767502715959486868493682286899747332653160751880455152781773568814110482298565480282803124725112493102381215221439174208564678202073104673404186453881173913637270990398211078412667409569441044549611245863918290012117760747669105390073436716128215104856051981428579557671773181710351464694534291606565517048162065388803714437018248292825612794992061378453431812737588737454005148572093001911253879452519078201523288721010551619354775246729913898994919846722917575788132108608428934885850223511996783720777544864709793904499228842424691144618413138760424727354596625221857358232122158846897438375981924968977873114434269008668435453652036314767424930174463816811925886486866057163495979771774093847174731344509697421853104325154572594275666903298686777011735980868744514079659508337078441710404144653459894816042478991568841932243833059390321876581209011083301109182637764777190954196501402728264220904149649064440761273483379452559765203398991977334437725960732799329979403167829472644744054517880154760003188400440165271788828319787772651815885037645791730186037584440354119512304520034533110802882534034119784968218918569750683953690775461700220759426457364699480247517572396705134716828636901677422210791400858127226520120015359465400735067771263472623162808161587324856065472590688279302477935494420551998335975169149489820850545684971953547260755143010535947405861476646605928661785007511575019940134495562199724604301793546282471891352972048901200844061268310392203362251066053647807281912313318123344207101104328816463933830356130855053633098258717063081281627570664503234605836187056759398967588324026936237715413992094416951135477610358657387401935618733853966522665270737416172621469726332527414505106130082338313535673400020198385350844509711188706531589976476271064778085593259472614528262270903976615247015285433561155342064172722785886026141159564411832888386792273866674243441680889163462804101914974256879165304651573804977896580587392202011627019516451927678816172222496524650680202262275289845336999670020698267817035018384445448565305510404776812271546812817263725959506185892144872741607293742761021163219991549223235526404341649546364589615258615067937600417512736235879541247971168052977834720614777802773217228908452958213599824122964364304328128086880663288925833934428741630642594673932925852146240802419724435194789965697651516153596075748443883907613278747217949609663742168307351425308642968548105254822785322246831573265575302556646550768858565601373040781673610874164212243204193777139908372532733491819152709166091676946877797376219287678246196382012600860117488074964685691326946533886191666865252774507742762104489539758070167753248473821879577420528546298961343093833735080568225812144752295083805068909517331381053847467169467457829409202645445021940599878713037857489245910385501073514960382993767053277983595515126924348272784789235645413514183766982836373410977898315853369759601977522003443391048054291332880353702601533169572705605753251851138753002031217018172825403270716281077351029273025778583152016986343581025409073343865077488598819732612635426203822558788400060772967009344644826476651409920707268810996896825542204439394072265672701404699199008938626239998731947146588841441421252759725865373408470985840662181701930212482739523022700875727815815687947728863492992735711270093092070564912332527794580384164911668467510948008789821197787197619397778866036608775010849607305233066864801475277716416681318962424715615917829812473992126809472766835333821184824778498166119593119403069998341309562559587658281590871723718459259684277268466562919752605266458320897672173243163218346216923938558857861370193251013040117660676582068254343042717067858163533252964039610721112376400485233608167716387320740893996005013167843821798165156404935791959229486112800440686108077145083379936543975978998217973623953578668943104707267392459347004934851154139987088711736528129343329662287514627173209260978569329575313352838994990597897202643137541281092122256164320382580249441948448534673846206475804262844347497652065485944963316447649587465917811656279105236623323779355572232277355784094746355844380091535741420821283105912900897550409518434482975544757160580753519794779133824552109279996518987201453016140528753324935225942722839410401729056226457240481654838394739948250464256854719098372837364802956765116713213133761851221010201942947287338587945609121781946682953904418200637684853637941077957837822889005607018927370701731240499874085936575964016426649011586808080530528350925174085638242472567583819057702642570290376026714303250064051549130814850047159265861560714526250623316936657147445652535235785194053931807175235517378148675625014535803400469491948779127122699120960546471274433330765656707053099928269761960011814663602248087780263283093710700102973622031001872953650330226922993633247153732968268854732802441637654407102532868102951451834293599009084631912592053519719621893039330796886436974427417943517051515077501728944607555937561148992221448065944800799553782691374518922757568981705357630558921454880091152887691399527054320633039228015741288216843943219736821907232841660065435119833905234078713925815017093947574790196914426660619001931292798841977847165913607510955082904295851478113947929337006920104882034279987517628436284711233900721424112658122262264073778316412164702544888583111041811230590439830335926550656550904856245108602469477920717973225637037017990818965587053722846412254091371190902921120819639185554106359962016257431101032697373970870820926537681360466341019076568528186221152862837211731640256214218210345729953739978191382520296394630930641053372768497085260743131461275368619570844166175870662220307729788665625699458614152957401963399674795050532555528405335513017318064040754973268710940205220859783979792829371981600538092735379855027757520242318484293685238753860979065739878990407036141604332629155424008001612341192361078782950780948550709841777481110116775913276878665620424801269056858574576983231218188084763333576034796400636281065156935299414673063784169848937792506509488409266234518117982335442697508832490515823933731460934365162216858732000202872816361616037775360895912266980330520209938764947584644649517938486491900891282454971238803711638036286303576983382623754919021023874117526020861350167690830389790889706361073191630637198038598203375743301233476573170858053047649966763991080896571220929902254082388869480611939868824861362868516719589618435084756748703036389839861209393261106130158252278723493297837636197754067732204778657571066795293835867168607369671102677281309735558282584684283288376865983150866340116877207891879883985876446813822312075875117711622205951655127601519552204282775731183036125513297103266525141160465513549674796266766734699041642739066618790590020085512287828438310666261673666560154680457156471003639492559723245634308158893708399691283696694075300328910469072590479534873544567658323724857648201277213709494856520570918545534048043379461316108747431069738821020780033843338559554869122972266626302413266121887075952779595836830669238640540070673864817737450677468790121342156204886857372864026945752905198456026056146907943694629233023753895689879747438858137784964413327371639034688017263660132941994428492960482217977760989424505828940622137283638653200560136390784642855833634112865425754053064046359285745730446092118425487765931110602066565908833787902685823578439750246865504505342921894723175185924841917927582153551138795868973856428169825518721045357346257005157183342874949752048312272815029945582213840002636032085969294804048860726488331810027077593153579792393247547965614099059759544805031384170831070944554803864997068522568780830139316429500437224303170229684092747459358199659243815326218294967975438763209356170557487337748752420894941301233678105428272676602850918933739747940077170395565134716008443984348517821179110438386519869829828466100674156958324963251782102876458558624285569887752843568805181982070648202431226018367585458145978303225266447255986417364676498013537412967513762707542502103492270315406958511798900682157069211478446547422173937628004569232385354171798658705564614314049818577885698475998276940880856981834365522421951755268267191684793026115349147191727390018998077617721862023809533844643360454647041967904005194105352604053548897180437819771080411952327242046664860737365965409030444156613457020960959959206480512214779637472801722570935151497129976393647295886937878147213214892172520481937440578656784244139656076218727095482911374790507019110763816967383325223576118343635487535366715436101975446700979687599623733201226451191746497925572365243118360897330627479637423703369048144592768953695832217496167383670589770904096225858202276501454676458935907759684806194676846636625298913602782426283644185957773358906471135133337286389818778215181330828765090241582790208427391629804248222289747388354738457602783102834895966135613374368732926580990670222386561555039953031961782806410696797239070851697514802351084928983794293340224510836380753851887891634610401874027273773424442966740904068393784425433958102997096186687007974519454210784152225865622143721614473091442404001571427513967524086866837684685403279255748843518288695128031046825270413354919358595151052762464374537454285063691098996705891278188443460276469082882646131894984487899184180430809040064530442011573367411084016880005389102254966369822138339343364997963813762362086462259724225224880249230309117158846724986500234293863926969508954541623911709589853730703253030478380853738324040768826870506164776047303603692574111945861130806503215459065529745814265543040388450587689618948061342499485692407286786701085963389211727149384524875183531654424591734178512678626720000561418922263503053053257280889879230704120553428763763286984659866455817886337779372522664609997289865393229680639936315060806541437719923683185144941281683317163815428141913297353249788503348008517201887403305934331842932359905875351969982130607016385915338358646963711149246922353120817844400418613811050894221930157523349307185546819548506214198591646105741545858100104490045332300005364641346497439743070481113394477682876560107036900863085746151787230969463702230493107226189585280273024326741328270055202581690017285936283042884235370223597645079853093382580207867815569003300489007439357559478372428841045843123903330643057882563097044421832665407999453050659477592513934758904797752399721635680323265816849219111038837477937488859514766325500328052788567266287125546772877769692758516745894136099551232919808586245604576295936012007679465590485212942448368659037096647024896473998729481695600101430570795302770747067960032872107989674640076532568190559449327648029234503049802717977414269771148408275914625785628884983897431056919225631408908268769373208340099949368727076145194948974222598332471121689449325028900089169200063103513111505221264558016118278693176509209294347169214476489780959651247344138039155487122120165210790230585315866057925531609652653787823525801326529717766371203510799798422205889391975029586908627711319108187646222485815440204399468179151878747442412641975254883548400394855436789244451583575700769138419873562227400065488766015067089184043265497312240107852394419256853068771537452276765813529832691094249049060732168848128932137180110042660591375144450121129399167397185408726893843159194362764682316310344811446715233332853688039761925590783030260000119952172077994509957447660178453644393911007418965061501570083599321041418960667291775382583180161019362266562552668034325850719435118720177452695697470189323873704181998361315064995527201836686925231755554484759975162863893600294223581186707599551382428422844797249468147388240807787222935354395292831552890182280129776018273040580919452005516623256157220668611070757904901875332261564267969098226018339690394846785072829390482855051914303246803386547035491861927228085728553731583960216569263543946555183017133677773370795230905864376807957697307421825677529862233347149987851889701428866057412547457352365333077603636769569663324091282612983083956733150857087787423832393858334203795467076717548713992680354978683527543246631482328494853099732403001323036332229802556421354116565444300880254061559011492615049027634155013016860492639098379212369212619161269753762671767762306046926601733780524766522688014092812554800227764661860832225146637898852858016211241449322577369063596921969145945322005409770435958348400709875225129824684590172263988794270706644959483268367950723402089998584519782282069291260764261651512935615643993605843890930444667689038150274713478840994220793151534745849394256262895809191051425569852336757007054074104004632110468618211661548361374986165065413720854582133984603425204010946654166843461038248063452324094730740660601987443951402896176533651771047489018212336067742837742451678354333719503644104039296143703217289279484098561706647704269183497625498535069549726058435496958485189491876325261670927444301409095129048622907925944903996012196847754573614104091042822185426898462982878631538726829474046422917400633272000201395489373713443624201537135276531345109417239998973961863880865246851145219657206230004105129603191850403714432256360783225219872137838219715381586983967069550367298417882442563455199424554354865286530432309720919041569057232621097852953317815446815797340135716353065456981170884143074645566107621798158201618630421114221951693050141705565621317806942474059077081673267945315702335356650903391190137734053320937834712636954479580378302548228925459617856593604952267174359137232779660303715810082264083980358546736297137336895721456685703785391733364305036745669300039688388301546882597531553962863104799020580547313532391856837361927414433703199777455673045251043834516315070820163446268521638651248709782173018526747203590486470943382309049518321526706529245452287003055735372628680434645882260399285483345260935376593682400965389747234947494588102187528331144341378145637771524349527516293169621356812954882232761914265132950214157534349363033949421452129614674495421942281611576829954907309380862802357184121468631834257003417770185093532477244643373435792476341712681924757240194374777738358943301815747706406875993097489357953578347538764148806550054297636949828136581092257972898047886467824838224250111632766796146799335456532858784855486627771436068125576441061992292499464680629322445430359923358654454028527038709031964569778714334537086568468315305768017433343561328654460889968697785879599855194516978164936855684133030181378531415775672961419609613114803888777988476606429991473999256481847246254701710066071687148402693347585426541004246866441608138416519564466663612135027552602381495981592961799045980648727190169002285497231075749587620473754831944929173989467108130744781293044842037641460599325423969345962722522139954949725795201801264414849249395968097099933079061566543117586024705928300501221943944772756111379550153073066586393681706666074502332863006952052165529554906054490299596137198785268494897246271599539151813420305464719361209622044738387035263763143369853295937824194426189727993926286015462476395222434954393699618778831116809046560734610969981799514236859868918815530344722401286540767772826077553699184846076924391496296832651582184921813526978442067028508337334323721557334574796609134024850084222991036027502024949820526541074947830715719279045723869082112286212332899559714349225775141181264838881543250237996100322851585035517777098858775236356351700542627969781434438859965076997398972652193899598301121927464968690951465912590533043130671954414254204740556144873268523649344391445425575715425032205832777037828875728989273234147802932424908339356771144566620903064702933433328689923985485606605384289892915182948504718678174023853073942463854522681140180027975226932105647443627211129615115983060583791327247748220452046045693024668344625481619445529458444587544757843227779306604898686672297636579274616490184817462060247711525975455298568079099312316417336468596929294815294186490758946240754842868547635919052197142828069928606531897834860855420020409085945167767567008570744332829098991851366907388128163310496711335625994762113637246160703634223578614462959499386407003194563812948266387926196737182087100709457344058221578271608958304383412961174062030438649193241189196158753921812393005021081378408574213228884182487429404856932138124432193278682328167935574628685119049932847001044381558138782102696986297177025998025052105681871797215949285405897890925787716845416817420411203990893628675077791663484408323909793645668824586226492793296288918418345370111897472908904677453924457495893273063184028575569828146922199389933053459811570691570719996780842962662077788512788789711633628996168758106839139223306791166649190747150772596379578936531570395107198744250949842732462693687497617374186884787813428695751528347720523258925859147287566062528102927450906590157327945535659391098622177819198467643567174382763067730709843549739129520570532423371724628359152495938606570931466561458355308922098598398474566429930843398769158653238092630509801696871849870998917173135729367677002928438110466408674714263322301871398626451574266881540532446071081398261923305578492838384678115047433624165383210874509629817569494291316434417027453867957377144610690276228062829596474776780093252608774943482945915979787310956518290900706900192377942353601697066295021440182601041159612270972248235344395804022197230823960799139327790033419425290523996812835401615728840186439004587984329228623226462797118485620688032658901784638038765365040130447442174269391168581644863421595290192307807858786021878338397241773919476448755736257330799352892287483591402075173291832216701990604203797238235938466865307007086455571980110801753975251617833945006102474210401687853472408658335205418248542357979753375231671406452567372907999859785900691561862602490866002801427603259971880397878437220967549507711957277060882939921912272680960534073576019832683179631720131093024185854228217094035228903604271340892838265391025551548518347774090267330545393712582297451481153605167670464042540150384488574801475793642978571909297121368978587166366143979770796229118820121128844404629656781255952575269895097819928552870597678913292365738710728311492109895920907283877082022383350736474524054111123198260287652766277648556111386378641270737314804512445408105196277470662150091034895942724937952711038312713725467540542650792353888340671331070183805406470061685241073105335342636936314875999202983120759222040732388484380702997147121044477208813162796895868855808628275610132532699386588072910951791753777584768506517072136238563671629333973256078575724832458331731286639099444690852777886503004770280331493939653790682647801142112692485713792229257674539801573352597242330292115603661268896705825368995824717136862763404720307488161873574718590809982459737362607117801541212582556490594217237688970433618421162259121398398575432232023374574818716379443875641422770208508205452182891609157527819162766129388280266454627193752588277674025353819407835653095710829137253790822763476987005743001124479836272842510868009498008597064263459165195425340346268632990985334358982804107803275000832020559474583794001337622530719869094133378410486964457103313365714352634516230647627307025154173518847018419889355254377888952299159738561252748813661582716377202603012328347401059898668015011999063627480500853820505920696334991423097430159897127200510822522380452372639149119653817531861064120596550245270565915994031549055168203622975084543261791225971035852015023561878835312033692103083019930244259180582239257316366607749268399262847973774984749788928572062609169176629684917287113452775891468739003250353351888305275521957121603214686989367118208255118869930305732061127068888245269949764484845068601027973424442398536151181448676251985660366445987458943187877549325511473678973325685700790381867994776150965606557694410614349909278959353885631598368239451796923388232837528622418558889570061087394236177818924772144709145752298887105009877244857964278925855369790433133735781279754159058672386192557045013526511445857122731060098702342287205223331545440664877583294490308420252418170802212226062927757475184892566930405289217851652837540017677748072613339416890984326643804434650369395645156497818910856729640528388928990521525039367209571382330463713656129587519466054150391368220338012152525655534265130496949398168852242749328432932846556062080101089074978963498888602550025456556934223184903980078355557118784113047894179446470581698683587334039728924397749500749758853262098802749791136846023650153598049747731837363412364803943841447354076297342408320352288784845063673722340643471445941780171436162500493814927005468609275555531348817546012803304296405425612744730900437485851424016451443585480627218041782021195735654943032045972421385065161555464599516441930870780451478569688517407470335385314799960137055721547105540607062650113798929796885871019270739483781312685864636006174763152710192164807760395812072025657516166831465083492459649125293755258851811197459444947637899517488125553876464575056172786677434175190702195389992897014629893647745123440702239971881247025861060363816999766455219198817563831513954990691862249390021009516134448473923975957272626451847749420529215524443952269280915012134694846381321289657878514224575433789757974782667881062488773793991682531549586280152810112628734504570406282201757332156680786802333035350834369861468842004736739089383069522846141811937663819067748145109289471571224650008523245823287776868189450387333781474720336556864406255367205686649467187423233753464579421762724120521501777717872528495974031513653404933004974604663610385761334953295838451895348000345428490916349397198636419299441530450740858398113664993701015772446655024401982919304330379315954522030804018018285468062604299407907256389937723112413802903679675763698630095582339564581973437070700558650558655803703058817561537623941523726624950259832988398577830870353382946570716276517601081758438641040047161364607267582582289683416901946584490230820331353762725047735679570398978298649687212200009534146984212406270084633757890043747879618283773810197264414875880030245138575134491969057486976622822564845739732275695435453370067738598865741721996341408150274095082601631128337530413058453355829950181415007548150726339964693157623879324833966468341436953311693805010407947078507618096554660707408909656065773437906941052507562267758571956243234737009962693678398041208502174419238878875106619963106788082935619686172923800861350327170496769479140064591333603153116913766428897058534170550790360220857891822703860997018953647971194465123573358029016227083833779847101752210834413037046810809099854371577013445095216255963713089730955515948096059259804864546514813017237481105343427657243704802345601353637639015201809600035530473086570833904408055033074823231554169928625471503088834740716574345802363392632452806657009957041603773114135136450362659879891614613279941083051705501287175251126229366613782653222027832349033107394051811406419162916040733224446123830459341486278629580009054987567357382491399458737543022531873045264146890458116166820982149872049208839861597614051148346603257115123127055349741114884498906799123870679855561935846798836698528398127296993472731690541993039870866156312339224036134120668675401767206297613140231970640237599004304571022459270705894832176152704921851780860852719916730519682216045918005093006372968569118643234342053168369605698349370265413763563511415027280727747618155553146146593263912532503137271603439955774892381486147454792198721514505308958916320181892956936651243395769119759187486455307378213256711783336166757422862877633566686251994953456969734475275696449899362065099686942532464133439742431194315752643413532693294815992175934876623314597934200062801039523246806588253825298876009163183876653179898140128437051750046527663769612020645281792157562454729403354749959156905140780294852551009601993623498750011637385876816322658048576649747084669691387471398869868245649660535220999553987241699856319954432560403534821742461910509836299013109518828210514573937591192070222396325042039963028376231177722846253717017850959582938555990362011769505910387165208456810925496562123368195994134246707035609180932499302509908436421948915450104853854636188460517832589484889264452535120314788188813124339575376790783592421840179946575186330966480108633816512892644294504915373934636168564871887490577948611753482826251498120902972256369922032317253957102703547641487886039158672516878597766656732303966716970883152383522351428167385237020783763341302352990579856663206552431357551704736620530727189015271255452558374245385866234122041442729634333383808424521249694181254249641600001377269648816273961110749554291505880875538918528346038519389206622568780462004367814986723519273524003879379655662174528097540263895384595367995427228322178182722273714880515897519003672924790320969736182097089219001261181952971437671850894008694037059284755083146104746055628081929422058749891365352608347975802794012761844234467118302212274023004607383633886271553850718806438958595852129762223322101884038496857584077997690772764518142521369605882529114361638391713698938883585905596808541146927398349366691786928004799586063826561204458135575094139909854242467228611145074759164834462644742819820135001910903469741177648577207329865034566015151210610574456655003708945212228799311293768024876968096823848632094932171393929538066765907131179122295298629944733280361955017788565048582740317852404847018647349338226638626667985528626886122569796667253113680574151465563993493722203605460787160915472280995889555183207049125251361951163354506066300629600768945091773574889738904069616096864108064936929794380677607274255094497078891538851214042970277096016251437709280006517675224931443136924191693815998083443353565491885330215071206379016079021496635778384458651884775215038569921474450507047147038917422551094315594415519703068966546189850524505917991271021869724181355425762326791983426908472101355379986798673354650502142770939474242683723543061231910792355716754249065697970066805532337327119482725105067391610446744024163697612939799628794740238587942133349990343035272315809574316874677330103684114107390568923541720812120608422489839011959427313615673960535369429116345309568661169310313944702628842178725363945728722442849014188599949725653955825335423815304608123996723041385793445862833720220300577880123606270184528791540337936017936468009945603842574067612580615727929354990102630218876863630214708367202443974973351344329983197490191735621437844398817645663290533883741549527801591544372255383481097671371516572462629936358679040936314345061017766663244425743001628472369439238205014190367576669834028765041004888241256795620382593886977686025366565149349439467035355114080819867371039006830492457571176021882191728260123721284678713976235328852657137951056438292189484814988088565794823105570097254016733157961610144922419112329780653120057248964441906948155896376460342255699970101967520976040749524874396528926246508303065975750994089715175316477726307340954892171265364777022467413120403151185434141389620843604718788494766051511495241148077182164518445959865167989638381532884221648795708692341891863485276762846838280942419838531309194705502700572051705771431269205956664162547652955615004244856971269088619610158958725946235021703333309253676800404272292560882290630992253259826101131038690980123697638367435706654380906491812939485938109605460496914669419222993716560078321972123206319704624486170952263042096555469986029708166948516882823173662237369132821875964041740472297890653163547094417251786753725449841369829763888311310220476518538050382415754460920482231356371991832147128608537875802204838965819858414880564967039979994301109836243355831916485500278191741756461621522323102268413872488773296054747498282163915936165564635427118895070662466365447106028574883411126707488821046809933363749053113157911031001989471732420268108063188447076865774361082741766667181099164856008827212798227123114898400274547579291208883709490071563950817269666186359461083769441490980461798626210923815050289887614995032822390380183080299246155691720274181069234203695515567514379566540332181045402364016324814988554532676256512571063093528127969754283382362959666707572534509106361468134268320227595544552715611982077087780686562559769775476866389718274092748414339623809720083280484687411392660014432014230220315695999469399205989570862501712615658530859298117377201224905479518169025523645859179696799360816512622726139481210753020431378430608234946064461306482027789307068127654349001327223047903244881493410107562137170097908209429375084517147448802829710549754495223959610745513804656541230719199168607236971733991933831564773493756399395667041444140049165748434614014428795013723267906576993003811461256366987365387498913468936934841269439609195981599856409945156800798916079338522759788351613266368519133200984315004102012280094405619412010961724902710549278729245757775034760862189042608476307772029195341108598283257163818590984931949361423025104989954685831664940543890216639759066435747469913643664028173897180876082006097637921743486798345207335967740527965487946797005026178570800587114575071174355313716492432275463698335489250219854550973009872473614633466595626556567182345217711640945984658585178343249962966921872993317760053510926904901448391134469837214119344319060077196992373268761639212923806021170229262517705777396340841722002641552339521567750747360987450454675076923162228374112296769231255456915411054482837886009291210112590301574903105441955474185535702296244004943726685133873105012275223475723149757216158744789108086351238994836170884174622671206860606272869254304104493203131241207953928352775071724037777479447978907003841246062839333410369200644168296923590178744636704995185944329729061785961253781294349941199164683093234975056994595686944412398022925794652149551807836634834494739864272162776349723223516148584455159393546020108732286739225020703398486705991066957221663684893952138030588859556509933406748603733977568727248289819021599675595831867791346676435212233357744783922236173641312908271925181039974547089186842862250931335428524561822207419838526962778295961648305397443489868225692331421442799554563752736718271634150537392641769364327250405949830579457153139423525662487027722901054582363229839785792530757719604739050321752132541490268463800530734183012241553638652588084984915268930279179763571247003193467748637618137564676684236742514562537234771583789630242950202611803567354469525649667470537402229532192016376360035548786698729847972719391129533141243761602367136362291207837843116174521892494362573024376925812586465511030821594724817852239508916125610765282229207945015687577099304699300827626438851464430270206721550473806871338814912738760135128338867986190713928220644685982984484757767159214984711198224005106882398665402606302832540386110326578367894012271238289558593930366195330143070351912274053186776301800875866048042072405831031196683004112590708822279227726230691964543968907347485671422289310143056390340257015107519977692021126759801913767536481796504347800461475463327241481246135825065293622306869162180172757918323254191970997700226701633356130014469661522839208115682457869711262338860573171315824677950442693161378048923995015801500145110583730324891320227333086784729948644794467344880552438587549279912911991386610840329461311913884162762017396354489560704367102465349205080069854141162479650162160093887175094631714851224783792271919754909777686194483053165616412026115042038010201317908266013656008855357552699755103831123546296616888813142591325516443902708164644034844987511183098880829224869038212873931620437844501782974030855760330782407620790282582410686163000518115171255271497437174458452705470860634772717037061709680606635893339352246611827096160871485978204216954167965405660741591445136527892622679682336553938720088002151874644127518116115974710360290460177287912561480014834078695087044426186665602422138196071742224790253997603291597695163702672637901370655501499741884839127640341029665576993538204733251573389355088569595127161305678086909061041590513047678988121990667529262669051380302651657943274418737027126729554302272782109938305947943279302755495898732401571929173037719866501324429135523138826510236600718250134554337808992529418072464566432069157560993937392889323912531506227003074300778225667019919119877393402414803338603485694410625890272832802138609472491397573555494956716694428024654892084528662726238263687859315314690990004996079890266002614121262608308393213173184095010787088636305624351342880541646195833017555293741928625029646936568281628716740120506393284340084439116039365378386581992876046492072863829104038613867862943291053756185493029397324789240992707859800534531637285110223821869035868551750761667252137944084338603270414157060158959305303449167419524519546857958593806707038837551807295677273435403527024642723258707668646920499475848424511397197679112761646147860053585122509495546612508009027159454970741726822560011372241877210203059195828736436305315871787459564562952993579768227969387727220138510478597444757202369455192830976787830600818273785069105771976948620446740703313650010300469525232223914476792644892837432427750708052286016686408017133147437246600080108589345113361110282520736034141733164975406434085451101055230822412350979389323380930009760481000338331259632874169779469302936094547010979892310464365006601236620030134547815726230900132463971220053378650776663548025304326624049783911737055849390590106078306446673282256093188457401510585772983917365933516643405926953540011377520833477901372512267528648094245849354363015568860389492664161740916855446094284803161315538302706682857219219200011243941972947424345245382676308167011883300702386613409423232733957511353020277560805217214548014042461050567150647762396999430272592951429451650669693963897752028764999386133365817368908223404333962070095281012750762237104981841457696178792445986107075706835737114570850377760580963612357997156510669809153490293145222101925570594438786700030937138341234084484679928736885940867139629978818932598278429627623078861656986724677451857107842527667539242910435789945483617456943276093408619880335605295682107648747455425897745222798696633537535817971133447976853763631326883101973755380470917767298311279247376566686018266305561388921487909714545191742442148284031380995242332467209806292853011406382641989275364419958642962529997020962235982015965518595223449725314772822410149502083810185596889049418943414602460463167049363393922787070708614735122844990360485046274427720580940492844735640494136537359823280745828940331143460627705207729006417303158331758906939130415443352186150105444134904935916590685690775482594431779335714922654103858437843036220209140092723897030868106259545394949065221691874588011248097632771762828370506276943446163183007742296508802545041222380686902729991569590614680566376176451998184868860226208588135860944539593164838941520892609693565275984505245873577218682094206295213804964502498858045770057423077293616349351619888206399389967843916069634187504080910304656775361939869902485738822476728495330851853459517701096411484536986877089329210398639814895658411202377841797722628160990479331584631654525348121897780098942266031134116566637414015469315296913203253410335500259240098984527026805280260166212415318779433180616612673214788165660054519101622495644311883942834938481955258973095600853666909494282972921477205610841525160045885493871810199220320864732221966829224938939074286415015412469277636345442081922004318391838181691115887845970291116283590914971573399369963755788150444078846304631539931715801384357414005964988230933156935277612462720608152000564307457957029553174033075101720836277660270602663663624223926217068989105481365459585947753044023558988380170449635516220757776831306552447767225105747799929985648967670034118521560141728947899540067760684118697707677761804347800636822042850021084885376045823924453156804803717726304400720405318863403647367024480283275810183129940217809762090343727625500571186370818249575792575865743661546661397256701600644242604807351599940004627115213980945714664443750630659481852260150583551194353029569325213633970714984538034682091770401317531682534993157594005649051715132536075151454459012226540080424922535462705837742323274678899767329136757517755189023448900641629056553333965274280665691733276675021497684728872447236231081164478573410833789684028428309345237335797958213647370930602528689091213429916157872022147219326541845047503236608975871575405728731260064939649966642469007652818303291819134201669416578476542784540259028184502832701359803196860640953565041588993944905801448067889697111605644518411293488129082027070909796411780087088219006593506686597386429387452804547770209733372688008424038815740382148561891885933019595359217919405050132406541371786179699080526492368700978544925257347288906922717557350813041381593893607994798320301940530367457593472242534952743113517559113521953022442288252689387072206843522774706642064137312099558608818545939945963938741846745539113304543409444718284324389028065286767145662663140550896396933152222246294327670324949048324620116589869987641030546966214222304996483262534904312206803309923337891290986679014386225877931396347326396748260401341863572932938715517016257806813006494734020786720616100555284737788537752988798079729793479694283566693035809920408299731462701505320107116502561981851165794770061324842608196600063700756447673162932054004741278262722105734534949456868109646494792396474909502421201143301873884333398242207319507502292191269906457702309207955593925780452932383682796891676869710333178504298468097859519889671686785803935361613643403323660055679541295263324301218805607361536791184022308465135744546269469626702439940119247733621171785123929199153836265394633559810102864570555541788046911570811587501275025353239922605904103737806743277008444307591042325586760938702149734452050913210986817370892456480369499359717715506790069945686097792402327418119570401809321027916559234435936414320345024123627209598768854342176361904588672415330301013508641620293693395333837281921623565009272436683887115957912855264177587036498772419460582260717587264874621401908225835328650953627792222443497128393480931217624403294471489010244763837999718492796187665417019411862068673867305294103721817356248649971690339053345443623717775314214378414141064967912343944297315007818025502477572367117683036405170709177389013082440265069040604122116859887686032963350474791996400824348064114650977449665762929777744671210494098136000051298314462886351619355933913764863235459015560932109513312943512458541117344509340971110803687101207322508865857267142363208470925594249624232420579948415393316222718945141229958813315191759411646712586737538048067243245157884992320825635606118244511868935891411586235106098925284950823789221145821686836407979093074654949634760443158313250481252559631645769486102119686058450762261915775640553734832451544511348726572370140833982681314575905226779412588126330179602360265576525494079141205760298818247746733301982802416647977522092107464175654245119712718048836857051462030376182664879047434031547407762269725269903474225959276083143821589248459077390645347861714432670776941123109314913649270037994478439517558760294582661842300784108009524855033629790211310327985061136378559940795753454723059802661502960894340566249328827219555520777215974352291475022558987668571161609488258367212071751569559462069942109269982512722205762261617293072839051194941126073360957488578184821581488695278141008362543626594499169999219271687480113486800268684454290270474498652729113572322016342457524214783186413585325754298522638419781447663109254125728274435678530243346061879837806583338739094743289810513411297450202523058639606314670148721431033627800014345501684150114932848045599502151441245391411990590531583584305730262851167899292996148711001353205427340716807631177665800720733734302600466525187721130611679257731660708252130358313893495972370115059907235707104690333745462762510536589380978300284545546085919632210914554182365861976011997182094642363907466507703908291587008274341165478478142701835201633185361259399998588647712745250815600746947350105919330582038221625391327797726805062079931432415591388732598219851701624299970501164802063592417340576706453855346519621061645428999356048735180132201258694122891067634978147463916485119048351837057474524624536974278324012766429562345839106631318782748894977833172062658565811122835722707732647737614234237372019145881620281371111224729235923122196629128799388199165997296963201912907857243775339832793559820451562715653318285149025057864275050635445118485413984438130905350745493212601931331519179746886575481246443973412033658192269560788912645287936808608804344850055494233573947203226066789509516803017110016939091306461325389791692600818963417029460923636726872216428109965182026720282652635252227735507645582077917374561907031952218583622774453438446109456149180724091886350292297734642412374773264836344532879441215718362895325440280659344503051836913214369581108853493557462742148340783893374137777372318500980932610853313112629255900453801608998153864285108165045215789659412908166095997298427555229549185021536948166411049192649577663655114178597796289314367477577249264301501362856032200871791671520497491548906649833159207548301569355167780271536069709278286821448297291270113773092727773021969645529237724003356858680064531592250448226497876412922515085569074310316483345167341135507949100017615879461186253987592146723722704837655472322501673770776148411535586423348913490553289340510569396853974256458961319239006443788675915869824137370144090647838181267505191555766861754147539691454463074162964674895859986665926311882470067536613692311456140786996143659702259944681215804916838819237276877669367245236454958029973755971888377912398340895224291476060689498973101326929665745324649998600628289031707660103720157365946978110673750634703019904358737297825238247718378596609246341743104408005192115278126125141653468896244688066628378096518139128617601081661190900623772459602398462663620338528402224541436865003875949085351598062163387193943163435782883044630448364580618271725359156219767919070209219408907898421090962658891793330917459986271957867500501872518686629188982824155041294631993572791984294327925432518397402701712321668001239950745698441558017785477905087960581159455827105628635972018934878461223712755537757323934555253890532249644855897069604913973564651693788670368505369003056466995673277911346880631148295738438570502394634287506308883311939069216765900411002875185862327298684083270961678885326564398070142674709595735103814392537640917027190656504299097257228534660552059157874251918391703309615897186745042482126990168432315050068775609408183366185444412222694234108444629061954129240585360023622777034830076253486367998242927712876254478371781008249368607007614456696384761873641359629791207908599380014706507913916717881645663777167206310519487705576349418372678915048888936893941682276126395263185438118313070727456402038427308358302996299083320747508496433935296154222342739023863666573276049036991787751869305183844781870062829901327140013509197583162962474936928783272153033707432299657271285078657916362537372813403346472609225282532327823424958276237332833974995583951307472164880356551917893724995595077545035790066907022131666636722358059590097506381605754215395125034641895253476627861443158458130816852549055609089064394562541611202198191119668161904513237498917643966221749540197337633996471067687125870462360036976878299706332021223091047496225082682469702131135567385820366401041319040711346191965091266014601019885458071923725268557669809786266632902954096076164323010679723591856797173760534734820177329138499533790944425458991950577323105023863399140276924841529581325180535053349457958060737875836717528700194090705108830804219096236365338673861827832608329280075207376227160290925372522459790424702733967097053258951983014717724519213479258854989528389491739941074714731065157832121856279573251901221486806105789665243943052492489882670320065853974583795769849443196179794703423139856780831305124279391168121343841954517301654536991203704649002600981630310535626905251689277333966825354640565822688985534386430206392892249224902447518564921209070896474607268619980580087877097420260656464032557266836896083203183400851328626883807110671431536570600404437493100430103270137962519772671142158362417682604304049814276703186086516811862139264982883358216115485226617176954530686945864296160843520854094612966572771998389307259728098165319757185812379715019345796143309578542966982303843601423982458301729275224501650490306833160205697578960550904829395649962403997735683858379054053598587768836252046071577825027259688537140527593637557333107388303812376492839127042331333409856163244899364030064190772929787005571506596827507824366500369030172529173352637896891472619931212571082243347041422464974505631049818894098240615669993592305285678647450372199682154892190089355665147929125489773250237819734204449799511272834851496098008006338862844164793565889843631349474104650494765432026849912619399066318287829795629438733770365034355779862040379570290482602288009226707170236020015795172401786845832044857213484032004903250330636890975253719033262102981062094683032525088666748167651823162990832604578385319753090757019714982989582577299235025414338108990323906157775063695137762335717773300763031687423954840564896808054691770607992854217374073049322362959008087770539797082760776741556299410766775840368323843617460991273986330862071498824008137689387499590056743142583934137763671132491413437614107853496727026681998130968362829987590869967382305363854092525683571476866717346900615739331601313313952334187645429269229593670439078562394340435931887816504738923598556494857442261888020192894922830341283767607427454918506784690837306203286634156594869719979930115433316727657446585980280748908804482325810597158578719822486772702746940452735753447728037402581992647813265944637343847388226115761371844681999829677114995200719371508801527700311799950786503767967105378182999412677954143051449613202008410683814311321825660938511354400405638945858878286520766187012975952263889721664603320925850116070534823569114703075482105446957457417033376234870961681847697991918144686822529658825118430416282469242598176980898670887659820732587824747828958489156124069759391943446514677963751549350822397167266160796092470126420658513737446536566681712132947786860164275873236788947303362993582888187222594173716037931823245525491442833820645256344370719682176564465584842691843354886717423626011433833049812165639284803249176476707928657291594269657218515366897179483763076916084105654647224881389366805375217158871511167787787946395857337253992722001011464956567560845635251954019891465578613903944366221450125469718447163022558328687512192692953293399434466044123409132415580575070748818205965582613297498955458450243836362792094891345893957499737231763078501470799288542705017394708474071368623133278227274147500343565332591834849204083065662240357190429933937932150887295922164747879340703984939514320123893205426348316819962204426830996663022158723869469634141106105935308902320668927614578061024497604359229276402877533888596461945220440223378804887845146257346190166553290245300559067355397489302176392172275876800587165385723223274197626273081100492408380376491008108773903203009374300612699525069982938851935507077149174288583141673066858130854693599713886164809091934595409613941219978024635106726891962878419903314965300670202152375121124108610869624862847293278416556294033911317845337606137169856996007401040782085037425930153546637802440651258229937792432335732756254427437260663042508371476744004862118457746098270855507681709880662209564319695135102503344680586499974169789297401713783224637052936981478343070378238598066504603643074329138889741250853740921741270487648958945707027442085649818158325373910082011778020045980008229684731510308856403050415368221185103490627828407021461159989183518073264977199067350319213241849142168085158741384887712583392221679683608890965485477815007011334213668251517948252159964884272018112709192365085919439827563596611298791158645165159902507086291879931086050334392421483051864998499640935786519198638082668423280443807668937112996328630074190775238339236645136388416808786972631116837823547821710374558415770879856383345025500290346553380019272109785449745816591387121864628541740966569887296883425280806112414869037938481972709409124923136937052404079697950596143738199733885823157355139207521706906432505921143046992920902423649595021933410488243027602588798888905540571635864989173167513460571533961678341387364327503730394650689879972770882597775096790551565203346160113457619859666581600630189102866824234938032174515004274532035029912729072871954932704186439700006461924134523349873228356516524226455490535961649398939865717280317817651224566084620441739925778366827663112472541459615772831443668647357483143584006635802536014159722781276006529626998552850364596632016167778878540279437143634427321829515865632236706465018326524202916999525288882871127470476353117795089405989805359001953492857967096569717328048942815170844145870761519524751470176244713627170856193301130443145562600034497867171089955375132059617337086096032412085091162802790633568445252357971535523077144893603971635735947610138296953499295323623085831156049820790841055406552376112131656416278360451876507594752418748166695557074210098149131970864037690105373049360709590827646148854306747197074394622616556724510215977300381519686994310976085379803510409855580457237414406552815794628881826699880150588682970897976593136339488600967850657019590209444589548345653293195439720305392642917543423527713257370938638444645283115400760861467609737890240250726996797546997466332394201937765858728802520421287179113481263019147162114458305825248471465869441430443663018763741801557216186757200698398272510782522406765881340950121509128872023902222273605843854809939076073487812662654938262841941620285399153327675391432151206860675299718681942711264393719213623127470293939618542858086053926829816348102198093089165098755040130033094195416362341575044700748599658589438881410399360544678134927410369821613345465386456788061234119182435526494121903659065324377957762279745529682672011509390359235224852161714855767386901770153453874371675784110192053696101387906854404375708759224054496010641997767229098788019681969616711902798128254100380658907914826186884226105959726996736347502477196034949404019799342034803913747774539779814099446905427774227879580014525178822891724889454193567021938683399784738027325234650878085140432472485120780029411579958532737737252150423383384989079698803852182048275486029173296805319571224259293533310795314095355406288027267703592580611087185736788967487524746293504925603112397247120464934335624362075758583429195537704387696638699050164814161164134159499848373881955807113022685156868460135002605048836214257930597924138043972502618524394244373023966476412890547739032412286464522006089585980787097624734344665444057292176246613794582474179207211081159771275364925219951323886954151793458913203728540728742821593049954818699485595316441539819389091888332660626184252064341380282105937328734330839652472183258386716285850920009522962845327467865626706872154197405982517297153015171019265762620022408766919722818032147597999147410364738877399442628783501744885321471537025751856592101510151017977885322926934899428865751394225173524462359603149354048191871381278124555470692194724628185153086658968703461478949239415386154422247508905520961977916376624288314469988818999716106063836146362455650083711929419817623182335373881086003856463334257421323382462873358606165258601737935977944245038424256499698668521570579735987590426360069287841948902831703376073827051632636774464121563915123563364494913602181807119457241213398669164153827577016690263459934634748046197090480508822866077427621116284470071564694792185604384289443065657005411891971004739660202851361312762365917860462995452019935567892212531926754786705533281710619710575426496251669945032096233211985762114446818034957114208708673614945798838566846220382916599789856065617827694159341565438356335470399648575974221280650105303565667834852786006129698660636965948265230408106863881423922955436234341204501485592553997241487232806125813232311552378274542670198314129029411556261143987000760146931323924376533640306412229721775017470791719633464330753936950979053655975531145720239850300116972025673380491682890613663792510070246099078135957772390213986557018493639396272837300265006353986211512950782525347247655520038742903058747820928417373767857653040721330069424723082614606966964658278136091881137582348373628252595059973236347315743401495129032396828890103480772488351129854550959161805158100215255777205047378288280507989196957264963833494747268653111232051011867466132555585570594296734133541498189255863491791650161710204146002781066008228278369349720722594407829956012216790517275320888057763943579404931684970770764713842516794121405830309525935872000341825354236451218519508021676653492133337622953072530061120934193069474981553269870487099979439668450217483794699586628339935074713650594546466563377650832782268480780516056896676403928214740102579340094253848775133063970797396699696299699698047620672376115316035985898070965188983356042417083764361657860366704097705591049011305361339005708310824093893132205198590385030012214592268541137399983520614064945043287293166387129837449489048989531604560386398426918987978168076482274813927155376115538860846431187064130363803572363670860437742429855530130003294125782102252591045374768588071031592250627333361608051292624891693786621845649190127644429205197584220271642494282012129701810204121607868808569964388662439778234446612327376240730106689766184155894921924937202288926534815339966669032313879761022911281693860063186233908600542699482181476834508353975157525072849808006465633240923275912911127300718120580661587885736350666697969651989412617763003538737522179521466865620159052723374650872167744935886189041021541452168722814676759421401541996260990775897944326615296244304639223874902867435166697981951375450166438376833200929335242539498497828927835942572809389759553620698407608592595921131638319616231653865579116378852498521023616181766996232235436262417714077700210906756555402040801177968332104893908167680546866688900214483559868731110893935189472055318886897510239029689640190396454230720673773944285678414788237113187982124618629782066164357654364163035624741200449090056445432148398447233772145248451546214846140813024790306312154617389508865276113822247689639985796948504345839811260451522707919955598219517780887813504562339328409153960328274256823266583891114639079045548963815943645334751703234918992564730050756167177004042899228666773248579991308388994153807685118184012028440293349212387644221515582680809204856958266249869025016543633751247012110204325062888242648287120404154548941457908214611140182275195150693907892106938880287260165047716984607865420220583328373521315850571840846424952843573557600583320355554649136986838738795153321227739440798789803574946029791427781487762766441481153091901178327196931710686142766760437123584883594053024378477781271087111836458785706831075673536296856393020190666071398592146237609884331707214662278326031918510053815867560500916565020896054434561679611475001010822501610679180387472710545937769357516425608372323652964992987628898827479836387553547419495592695012256515967110283337333842101501866746766112245661369745771838356970364726397780889962095569482786167070836905313483204684031662726276523360815169431080813660652193626371159814544678788339660398339836182303460362384555492725892673077083567771460427058579917479606939937439277848466266983537065328493326017149580879561648084123368455802923886296364622838164785800508520170770769740255709294408996551014310447554693528454068015818353160352727257020461007767310529425661309627625984524285672162933705721752097618731217562212406559893388472150897264722851868124110946458603188244191619693488316759846275074053146445374959759881493590103493886606662883062751437556756867862779729881586173568028881388941972410454675244810336791986797125810141293907704704582256238519417725548336167671046516466290036759664745595340168431148419672554147955279942502666040202664100028887502615224638603586695778854940269989957877290338289612935579568883191097229663541367065896500691405614568691351473739758987127566812166494793511887493802931167083263264418386588945902713468579672073273478263372163491619627504680829835575523636131637552552516345131126501046171417644870041752448490962950103607725308038277751462700083283092664356051035425333508930453730134745897984955090106480910459602689441115304591831488039633508935729849127768658455562777184784816952780356450133269036679374341934643452549683172283319219660734513470457516432622326512903546115878078797684054637641400257774828034966694991731291730947674796496703334556170630972093023637488322743215885310890381573968264007987248492919877325266583601353495753759398709969312872521618677327353422440452361080530334540305341829384155092989599949379320846949093019405945553103329352993706738685210507685286684662124688398672209965753005043104250463008972886619256345210601678083121442416305212301275947895104422311901443400551645871212806914684439008572707769248923445897444715091598983670617888169548391025775645104203496292514259407357427064144670559772862296509584872691240497915968923986845230312399861582252306479054592285995925186956997427550386322656886427200476838177242538928331267290770843934659389793616475165916814370519897924670221393670354155217919108300104403969052503553216208206482701567999023263623877067757426791894927070471438151569854225572253757457386418384892981250262690907157345586935779897640791971166543527890702434718930852899647465303214444835566692815071577341943385142690224146623573760686844498761857172992924687242845760584021917143113670161496833810556525839185935641284299322792674816125587007454394032312335604030978135162754816768911051717276119469214758928027339849461170794130725683982628356597835129821102477448610825493173845233069730809281434929692232110929407805336339168785433897152484882675947470055597696363889264973522615018246222378796249412086377689302914124951472397802861822473439027100450514422040790037538378612934281296315976903166236688279569633982781422796261007606377073431900709603012315915762308092934062928419854037251679934613974628970397491015829275716640456189433920781713848341030498423174134125927884773737998126794955720878308633000019696757930141934866668300024973310772948849754921680526239516296177214459972773406407927110114502193313414861622199169495972309971376593557766518762903998164285238181273436967540872350410499480544034487885652035610506510942811643777731982382381554304179335093751257992191988569769534861251482674126874379091916176932132699707227035684839662600912015381308243417503365965783406462378202706252012356797617845947869550311097298919477294732305391123516180846550876003195484826902210083759875722544194334517512770313792389395161887797606948111913877081498461862272928608219954240610548086940860706495839677581162710345840574417729006285399510385676401023872368858192653077705021030328347394726226106429956214525097256040308638343477624239236579209826400129779605471882388188686927879097041471732163004014801329911382527246590088680848678270290397757784120045654828259044549434387066049600183004203035031247895081898147935504352007143435351303366458419147794279834047563884872384300267430641348058784406738835639114263386207611921883313567317595761183652864503639962376577820971304394683025794915390743250943350169030329109584556233399001545814842593467133341795856676962184664866397555771814730577159077379797331378889084925439529122745866854393874913207437174170262660246157276200866561838507376826568039322380978950103016690034978890756327541302449182785524291884160483815053529818701962262618679638249214756782536592970336794082646990426168018748700059779396357526815515317162780832761104110181463731338892063075739475862657026608366366797175417697182136463215706316351712174905945052688645013931339485852988357079941515816609876209545901663491141354051257030317971842739493221236347842679638257534834157404538615962732166706522189543285117651483811557494829793434546255932925427100804568311888401203388214274244062970032693430608486914091855384118997328418059844508208607818853579453384022282006136359637906489275488121462863205371277735319438353211592350141793573305597109901108733001337844746598256047251885203322652205164642734413453358638708711597895950843017361621700429784996961868437757953437441825597705302456843039344255714748842495675840054116563374371597437437213184114902826739599278850033853576946596932011337965386700783769349805831557577129500399011433892024661683060230763913138609963907281018736114668045396976697296932429140895106080875133687265732426636429494852903391843567661953319897553118144605684285756468083145480640319960935361644583086402462309876505902375890367594677546933554400358172610149986696979614748740948971130857590628987149249301369680322548681172689942006621864942034628469872827923635675307285869855280771217166830897351384190835174566596495864252275032022235480284027774979349322910651114148447439532063918120391329862940426727545059050541407562060199410188086944560458925408610693777890536106422244425227929109658838180441652201647347000076241129540439115036547569831185845546541935730661157982574145972078244849989785255764285256890868109188097879453624605757912660904190305216273353345970472270150403575038623347095636040148459593872110093566319767803086975796984333698223270698584648804994717325512525565858862160893390173701051939970152049973311739208465744427286070769729568718237382661214026640530550615359739313926060891957961598034776291423804705767579788099612007947080306853329210281966454271633368832864841801327115894635345982981434740173742204135192270550897831059838512307130959500432355026387155027036099768148809020972440450889778695973289263276061558529261053545328685760370048956221399531252651540290538279434703263655529557444673030906153483094351206144806752172484359153434381640217157812267608998097339511845351588334612767855094751879165312695491894418300405723191165812777282367419280486736491243763675059419529635913535134646961231246205309926110473762249325194350133004006859345439329209157201333857256750812942105518055631991433293630422778550220083307991461695232857462740939430510758818621439203804760559050925292905881865276591690369066762607119293468208668701445823633787000699570863841236909074824168339315795318638776453511460042733612882767081990301066230428529642981375346899416502337978640779502586636788119049791422136489272939013330315869576276998076341664152275693167090819362659165656495728458594999678444565668937465111840395449928928309509803926306423630655776725233815763555052057364828065912735797625277132457139339206934333443588662668455202755630886418449688874007721888944605082928286177437890475142802227784016268690794528355334167741294961670809179306676881905380098981343882944718691295038499522658741186449965938720635849508128079243477629787313700597555459003741543902115652496324863801553059737824399703937050279051882263455598638437337874398124684496429482710768341178441064572666983202862727420026780391035371904093340899180981263151762376722229977908646624561072290006461459934787242970919620812372153690825610578014054008149272993695098126739293252485038705473594769122824094392971957221374330888486007402437178872070338998005288242016277733648750198659361971387222573055078584864838461046659971354909302161220147301844868120913338319699964850188330041733748228888139952741839301315517974831961492017186347603519986381260250578185548953445877229478540362745175739423325090783965623963922148574855562844481228456899141258616244889798473402841900716746949115159376789005747004521881615765582253057747646482665590318966552914529786030910039760685488886381675601612005326394787848263697462811508162562852766642242569954831150416905898842797989790072383020803419321249023907290922381811295968732495332163454949950064600730932920560930683689561155584166670647446361215989709133418612212480205996182663449411015253777618937680045352855326524378700824263370901779672764098039158115913100989824676448892754025827223375498099660161463612035604882844921954068277162507069409755007737824671044405717281333207849393161169098647459532916877258826812674339663328886231212950188418981943151534267197556060357404900137183239659561963293966577505579147805898624322999292595686587147147847612783437772740935494487513911637092305118845711819225996649117605777699431916392975940372017946968435323122581371590127366553348630863453740467765912746941752804965886736849279469552858204900166556532228779701814452068307284833799341212678089982502567178469893388312452958722369819212958706500128937461085961752966479253849485233194373669947058929937163373329487919894349816564137720288546309942020705220793902639365683893987004842746894913756537100359716583854453004463131223957029293919168892462406337842287205985720831342866291881690568078683028264787228083112614220838291999151879130779198395618912750907683611439040060287168800992162591260452057219576702164271308666208789182193060919130874745158025349094693866477922387740239188925611921929101573078866202856443869852730481239828136848450982507622257121362462731640159114874538044147514990032323669346131919882521284481125067565955032739072766364524783436509106348189637547028558215822580424158833418225085558149996683974942524491021987318826988499715913083100821204145246345322415297618606097320191791178866505026312370299787681769907854738440943438513876886518200495008133901176854069489271136759181029363124395506438314233950314490425232047714278547491987310594920185660052133886655421743839821593333703794016489614869861896689653480106740116774625967391419034589172187978270669877141013139641568402445340858269847340978049686516450788893976604973872897511088287885885286373994457781477435647118807876039691627001627248623274541475951548460280448729274458882317353390533876523689172720380561865519003598394286774868917149277785651871983020859773454794039133992596788366689708028972091253627843506042654860970251457472768384929849080755999683813400576109152860255684657231469993501267715950414037154643784838149362173339793130082475888224920337832722962260666226991737306079022341310023701402239317866027377878813058207439292566451685529588468132139952806432598878075850493303077519160804542140070809265440220598573007048622961881048491622953020506653887057472068210026836917484282724865072740389078129401462350041443506204634319004213236233294152165478553690699875053730325166671861550938034222209664621683953560988322405711280486955740481687029060701053709003115521663847724201257106218194628465452750172497963049189980461433051995129857600570901293178142229060742834165718275664487657578158338141996681882770716833397162118282985417161865883951478055431709178696033820689431229260102159104658205884589264779735797581664437823413250170957519931703686065014117487291296672461201900456034108764886746339434112039450862150822593233044061233015264386069846417085634006570570616457954938860178007768884443508577649039110558754149433371096281834480306769494816557596968845326453175176805990629849675941986483158166273502447845253685300822699040439036877933546511503764405129495654945638918295669531020727269735245820866438042820104998741229939419354445732187291916587611195151043078243191507358280070739368608000322107321714831026951262262124645482738187605226406344135369409465894195636837057977371319945728795195304174096516924841977972466836946960698059220456779015744494257947024816568647135657077613138640895499259835128164857830225466400883593433090240529828978856291670027643763021435754349977959562779372118684342925520069691651251200647116409578006270042275172252104606897223026205088722867205596064025745588798277580554781404239396002506861778902581088236666043333178103916898556370084834875668999619302257061587887500092374840475602126703213433480394108098935835967610073920282227824009059484531943027217007252185924148109018113622569760313349182377075478919674764467871042353936615722255204072533807935504226625134005162682631379206036933344019328907506359265639769264535186981738957702558309899988712364039488344568244039014390887668262644740202296412316877030211185128303779094710825513770249125400408600549114491868430402554713582716787016928015806979768834876740950040863961086498824807775677545540300591999087405315827413246664449589855744599388463005577454747896469366685214700114852497461651721074125691009547672346976742029205022267549340103440299391597974666950452808495233743410972000891187873859533600098428825967380334080811336450037981132791744985586625704334591760578309706389715860283280418661908993622386792933126782117834468831939076048924348236737203111028648735825375206733493965404479182799310015137875711112606974426496143712634064525855483262005816310630171105406528116491849603876355049022019498091322231896365061228119248800554449713816737933606617899070212095989599936951756959676021010657425418912485595063372434070224849168371210224831720704759883085105899494106759790681773301916232535320978042716182227424601178613704660504203721201295146063018678136204307280522188670747756866892573427788088862127261013486298999156162330742159693726398913475003973641007630396797235842182944943189547662702719329124294845464425304429941559415936921539301296358302468783081677163380161244620681350592065492890926411918697756256295026167883171857079226819518140350282491469202425540010440617965004723008810341137647889744441795732678462634936441211487094053646704874329727373592858322292485119845388819848277109883181100870185752998495702494443228363064632887985004474474648764747419565450746672117785811321068598507312006329016970614931421135285971177866254505283197886152153369229694629576315485828741511637019760972599745769101863377951957645154163443724003898379623943989567552121417441261240603665012323096057219689289554432922719052219166254752721302020059468588368285531878999490490908875866066523703846001796216177447347454671922107856416050699524922316803006333651042249933923806557949654154901762030039148187688626156614738314837056133126952597735497077213276336639242357619366209334023575305333171216227288355567378709984332367638754414794698941004107328608048797176820719814204488291039421209421795603703051586381473214140850859563312115253299856499874721703145033884201732975920274458473944754533943065604086298448220920475187394345398570426880056608337774679677343248004673580165774882549299420997359689031846261121774450789163480779855189345082150908252383107444297624165647508833935410494536536510835884927790465530304719356372729044961781847734293610906169385431476516225236193744568855306182828347399246247947667803605713017759698195267239489633932435985562886805008384145003273435653024288051076346666773863739411179539137536864151217607568777790852111275007865939214016226412660610433983223338347140372094389301866879018740483294583593553909134533767276632456993265263220784120631628935222106164788702713885387678095873876637033438573543689302578571518893866140486726729845062843674855127801278371126090089285260742640909509288319646767098693462499414362557975734783550356692454445475897075684723686781963482724111182037505348021165337900014678904030184017408669492086467601057952802593840780432040440867450667735856279214588634538090547496690042595818389993715437742609925564782387650890115231280156690466283786989368441558507209344071023162919548964413793924870831277343656207113283479909688373985323453694327955699932971098470254928814126885543960990039996875285374359889039646006727324315154928534284767382448614805916449115719015536732070529300912538183207670713150006539751187665613880281368850560486313864387615392474256493428946360278885605003448760636895920889984309785066469574146767259147111397077735816724567281352521911493137724227732185431902313518758092282304876005884909842953326189272927875949739065773141004850630073166262557767095289777935295497919226749601776350171474222661549282310410051127658893475848270451599197889221652931226363874629699035606856649505757768250902335437403526064925856656754676727430562410137062955131364402915604411895572522825711541136452883818058688826408310906267360458460658409573754765568551588324712917962299246359297975249186416143680533522956477806314215752316113921195603904734651552715184533688433511975142971884486343195171167639505794190822694775990486013462750218555987239530060393976592355746460845105774622778719114684786388914357670898002293367090551848565518787524413432096981633920396683213128159814579123752887322810021035575541211373262990671917514869840740272505253249498876170744084343686720660200314385313830301455720575929571155667120720902684134055533706361732183202721816329448508656270532906539246962425320690674433592514407283992351432541607118486384365778107362402429195137170720496258504672383912929769655932875618051963721343852814292542266557008508011219845108742313731252446148645793966961954208987699999328511153185663192752611191770502146888382725324710701578099144245439731625599512732917423916648512618078151247741382405807489108621985193551132278095596051230025059003402799159958359720658434979768404454300665605601602192716380435675588865033795506766985044492296578784974693564147831500145442682304905621348434938380754099412093398707536023075533830327193428222841750502588988589359824498952832265833734698071536148909826543467543383876273363990619882583536971101316851805913793283753171010689325078947040638710218106030965033227638296744403645469208865032260019702601246926851612903493243093704700238669526371949471798308090575790417929426868912462418156701008121636959056954246293673795079515353483804299342884159091773329797188721693817106836059819136886327531257357808685588438623052444504875628826073607148894883557228036967316522107178372235150099217421994458910772780084300856074917847352238208154355764353994848742835434581985636379948309345851197175458522145515541648130329966639775689700513318301241854522133522676391387603291737577792952855795345387299895606510883709758292807034641627614712945939957655545463277186944659605354688816257300150733996998121454071098382050184624095912888485737230243827989673730003809544384766904440509335735328690327340800199033210869540653497253145447636666769430152560067050304336826815850302972476819526250261259726589829418009688429473172355680448144645701794074533585302193429906939526000366773408717664726066781307909936335501357838090164161950606135647022967601822028470733038103181407561516134892481267985863206650865367524060753145598244584914597960937400604396558231488302655926500838295689842764580230304264469299768243500086868852765160279816803501497541108616209470594735813439311374555503430060330466957693614188931976677843517544954367671955893676079824296185777864672529856300111909719966358316794690760824596475278256464739226549545538659442669282422793450597441849017594997687599764233023042854201072464139912653145304369292144950650779479863815006514319003846264742183123104494580999788114952448496440961480365695510177941334411589020175171510794270619721437425768677451686205391366205372130012411379249926417327835664488552362211325658810077450001601010904741308134901101138058092390401084958497202453607409784067191972639654341034318225185113075443926465707003494494255403119596328265027101741140637842686056147619743456430079305128247832467145373510941815928923198598275297207826506448588306518794481755922224768175076321532942915167443706157108929848826324315232014115057728646082033937174207870101563230199147118732804076083695352410700394510454514712916335363042899657845744099204275133201991872327906633656638624735756710259634840078072008965712581056075128637314348043671363696970980326444318269796938402038887503050668220895465821254127368987644885915006855050440193118924397717690513645446070601718143281922640529811429859373170566777019118910244909440910168032407503162030840742674600257359981403874535431261546627609360514065563616374418652209429313379295522135658720068861889716821942813119487039970350247931517593291769152961856895421149928459903009642015271179873111000631915544311425058454645019695257485946196542977662751692743579883743307120484912018153680465078312326825280296674279056933687181842454484905011539671073884116001792706548060504543958367930998468900601175658390150804763760952527641838437274169216288424129883825533130063724190706788574539055991407482464452683852549186637396376302057176465919204025367047348815274606223254356450468535528126067283170490231684448906454397443152230262780704505248857518190907140355695092910332647536261103006609484104886501070367304810110910896358448279953844292784756864373713482532061030667154147160555033351509647840558127010012136375752459456539305614663967128679224533300984266059337400351493961164233850470316028917952529871111894823454505711388117923759658298568559443203833960446660304176985487901421797213492051934952984602914475445227541285739975757027331593172158513982915411281834444595187113876795726470256797367319396498461012262209477230773531033899250404721503925262520127648160839831913554193262831800162101769946072090332123782352182871872159755513553985635960134271192837005548787011741700376453268021213244604783875763149699137321390958570146642608357378415715037405962937670862435684642550734231462986459564263257574890557836599940610652976533143307156428812500835049850602614907267984348480508054295880539163032576800125606439434883624230089845246987792036977820601587517805951291543484077152482696634408099920597371330095826188698160696454064267650175722666259172397247000785716631683434149169698848041905525521634370079120352491547031321858530587022924142432054326305359857628722129740949992807025793439083018042933297601598203201138874395456618071061861855192549458401083202726775349760501146321867696666114163899055432659528175968298030338115425602977521776954124633053441658499888733682247275697073033090047952430620362807128151961225154874888214459782282866718480404471037806515234675778125357361506265067395343066458333202901843634223750093882397598150612023123644337588281630040159520148078236922816650196131782215926384558156617125027139377291944273540932578672361176106981900885414616471899588725329606384952688770518495500098049250619702737037797040116481188594031477017432649300718192741641665033186534087897657735109514257789110486623905817820554551414297587465122641330527401742034637982423873881849381868953698846521516636055588021030073458764682629254471042346564068859878375871774537865268110911562042800036142868475324882393781638626063403505282384365070166604683509720322170499731606239240887110323788691331373127835231505800725272741142902662496674952728310295237726564712441340035119693823462607406371365431658907096074215346627734291001070549358795133107340543430858093420342649907567421775950350022147321879366758205136126030846357512698253822470143787145340937215548025195686197550574533688251579381011483750914300662892796391888816780562423558637964148627219956204096134512541266183861017441918919136382402751548401277862642224644523253274130425645934125711437059015934942702218070940742307858148850103140847992010552226309431156953448989474826980452812839100926575227882709357297308329672599524096627277492252027290847111434714202712318652499574999519379574632370164167894595104298841194818964636997918451629211217560461131216791699585808549844455243147830864162586324705168829445680588179773673912318111896984309312190870407820889404900757121022053840178228118318074711728148112477454934324181256212236178429945591543290094888797594507837591802791181354856449866605975674823434653646413296191729998401350302914628828839299787187313170893139702976874100636677430299286033262058092126557710910951184264834844877883950600172380200425909984745252433606578291180312367055430709695543077759003651745212547306869088668370205074593898025615678505245313257684738420501908151576185919086601326342636889049502031896969510088360502215696528159906337008143789519286678950475486663585503337398188140008597302901605185213922668139209706131997447360151160860295456687828137818724366709510459732998238705885649949594107376057477156527260602691661887753344548096978218047504143247266623718827442601312031171506887672481748444563476641298518812477176477686802451398789713125100728596848487033381612251756958064351675896898155504174776238811493806951285283148689122216660104724522917613553888249420307076346540685391241744783027100462130982463640381612249540646979687128302714884290052943039719693530611349078713878644991915011863700531701650411064839316418555602046890820535309776437634048011035555788831231472226897173855899828549324549554830590989862628715226213113564565407814187906453212348008378350080625833672373409542093816734667369135456022692222761990856954515248600161800044516411566253112608716691950785546324109035348756241248562108076139324654549996757388776945749196205438591591411420922600285919404880529725751183396717022351218863943830756201145055856721503888922029953013031002295626689138745955002549742831236792287562490545560231501110789659835754901165242726101633452479793609942387890335906285367404119523163730293132950559360656786910297846609822104020595438415957257338213140053710881502004381453379057327419702915094855997153223745344984688394967559858125666062474062393517285862567734595523703218320204009121869831329487166356738052557576695469413137524885301347149366954733428225576993297504667012017495140653696137628458603856487796874796289812681834890584132186154428952182571613516310285324840628800287374255452179791266377489360385999787738789121032673532994161403778161440260758691331278957481632568009133458599723704757565327907594522149250404376731168678112592679561397092222771832813603866432178606139537537244711864519209364387692186911418694891667272563551185523478110873407611845400815853109734192734617324688027343108562943684842923087844563135768053956436102430609305067736525530079970666650735431844088261240037799353016625423338132414295143003956807360214812939889205962154028252269467533619357260983029215918354921734413736947946476437037198506224331208545051249981661555593168981670085690433734000460238563359206446257191065147977892581386218654742463249963099652416422397646801207090799590194297432023247480373933781215814611999114865936652806143290525267977115740626492507496649561237233363305986707411453593830875756360891461679436002661424059793176003144325985230827704215483056720754859719298513618978834958568164088710605953394331275373262251008821533833832538438091115196412210877805938481484029326301336805190237355505250398747703651658917107325371200812669165977823565073385981829381423145263465645180593786772166956068179020932912616635660319436465584904840570664476146991901555780663043906694158409569951093480598487942311859055708214950063161913397366269693018567284480238470113891773764574863246684061705941575553933868639800535930533433169899680484380744361439549315121298213567849795291485460648772696662958818708181423513490327052861908321966181480910947479211260575206323640890656836196834325357289072878037618998755010481608675106315875988606792718341272968265710820770497622461761146138347777528538634673315586153757169843476999206593794161565970054974257395547669690031506789672729007247403789796656826042989657672005337018805104396987316786259685351633081570019129944708727837285758621658513140207756891198145206575956548858627547041053627328980636737055002778476240145403823249242643205565138447326493819888867401093647248848970280641885493543498593793021566027401576382453664804030071810997841626252638052782005776089970343285633156647045394753873932916674188245583170303664211599483424603724210711065679689196202846040385874254820747250046419726123014047335283623890775001919528378713588141724039117699826487315381814482862443162828693520660484135397909297876708834586889339192388486422114297211424946624733463692504160993073154180137306853729631564438289860816614204812126570840489618659696668481606692983037225249545524446568257941365986493953753708463587737373394382851541197430226540805154933720940434222180972134531528523624919341616641597919443457706721325113068855075897224327676966935555477713353915012880606440632957152012160957988048133992909886820557368552086974404758000439623498808235812656080702322056055793673020660830989077665152639718833245644626313800917218298950575224225398122115438347677968802637176598971851104074566468860203925064168128745394801065663283104798207834940528074013549041168413056892113453627484179214615247150616057883549773135316859575066064400654533817170699126320275385553739472533708088153574699415223950399597351257512185691274034472106684688157553672123425928778395993931003630986690757617624772245260585453082190286865397068091620614184608282748145883721588353775156415201930802361847640072751582393026441984898576577774935933867592381842456950668691521591431491320991653061897968181918761099354990225298431571677408627801375214642160017750835199686912918608665727342362195398657659029670585729719985021192155775652001176426872813813374825812446938117062332023213167718967468844082485322840466980632806942559529596433471094947938770005995379854276620669058886693049052166000884314662573444701133822181402842724334728914484945578346775815943243565737729004646170969967198295486659852377754253682935041927239337225833531912922765683504590915670870029116350464564481062901759698084943440850524809072647379458865520830668818413575812009113818923678156831086878798310542948508135220134851052112812914084632229968040317448786755246398018426990156145623266380899612984843828351202935032498321272705751118746863931062533044309056679556085276546483193150813510591742132430753382424934918577381976684487616654364480001195255246059570648428671796988728219948174397738367710512461710605763419809208143058092304865129361179862095469049555294615873796574134424192897199604474017728736193630060012741628527637553734790139026687690422319574004670445376261050887022880211654604657793213217223622483661844787392953465519642338591315411144934174707579062636138174977679999259073365301348315680944948183211140850153981678979403679461421512660520620913781281863795195421488095106496403883632345586455200109959245506579039051804127527999764553856579667464155331400530671372546197551996021877651075628627865277045072589309132228333911446824722171451546899247308123117985972272415321705301527181042351715832127818238208965295792441778537424421619869679650271505406351996402551121167787714715964447653882329796035805766799975675453378557390823445027202564235411020432263508425828243284434408966251818282247095846147530351701850828472747976175046480172109243474783635212410600353915857877753550088700636855029355489681087386758743786655683538716889876388717959986330572514846128436740761762717816268191738830401599658597041088937247912501607196364707612388360026949378955193648634029215638947480565500068064122090597828975284238967093122065888871108352608088878125342587648122085115231292933980158306388751483945325045523234567588513349310486668502395052174106266629195090514063419789767463961302571712306435422531978394155968415462880084858195355622811947144439441011382447609027706132108407920072558312555861208811264300090213181836325255909789405880253025431175933549105360202817291251368423262346955999237140335876608975393858820322910097075250444482042139143450519614686528089757205291724184068668718378074175309519037725720652637914053982995785839772774652185185449153815023791978259187055358703074601320028705788300730832254699700475660957656810001287967546119702840543458920034004179467187941098187342592071611969681182742727892304433633569743534519224346417325061786032747093763950211437693027711430228054609500346158359783939312451857119438863411204841338302807059958983168483601285129862272919163907332626361344681286507931745539419432397999104110356599518702931972923528181904876007234888475199110474539810430594081323845013935413107111268168934099854128972139574971226190726768903911482973244991514179148355210184184181079687340410632866084057055535325148259799639661424856154782314820345446461769052209432769660191364698526934584429067207894178556820878515080229824421493803281019412906995984252871865891357888743262878136087943614490178894035691619400698586589822869429006718166072857844330629523294489501227644905692756323705673663936424108432611544733088518896932547050675308605662629043705633299010327370598803420809449893667536305456042115067797940260299970300470383750362833724476427186981298367017993693393509444121866137847525339729486032896254756779492677463613016764969886485293324201518109946832980158550909990438433268417503488511515318015168920186869904655343137505673780597666482858083901854778095646598520886676273110251632736611128476880792588679261539458755158225934813759850688534188188799451192293061313257381637495143528821524982903588126522296701769187051376189368692181001377345890573127969414959039108992092297322034783443682913973073437261260438000892279770554899205607668266899494549347396482843872502229427596877395194804058343292279270131988012305622904367834124694695922736006134186325698142161030030392098860951597722729405934097393066652757778192160068534788274200900174266957552177660577769974270064134086000143169786200268604147579909778270616781937715377188516290792235406967590272754901755697946981645468373856931571024396721496318209729064268614634872430363180914751186986173651651387104930076441354543259695609001336032592970802048423081014606328772811769974717003333829702589251572786354814312171562798817658183808297200224461829577287013756936940363153561610985908367651885483817783351638866662728096318847855853487702004844174568265652934373048495925289440892607452090611503644795444155102426802536947719517802038293325179813318727111662286693829719533041820656802289394609432986672926177289398791511733515447223974428219896396419412490956675744838593367105645829580368852773278387927503598229447560464024004124336984681444404517009681794176799146786152075488165110886658313472485146543890008537597461947364363228408077872806251390920704137254222780171592500091574182775661615644736089312810521286176100036468778931697356892657009284671729594022834293989293204909827546524608023932528409184955233977996528146697439647539644247136130004747439614870977216644457231827290814398510834594253836416124378079507527312697574752914238412103514765543734322699532694319740656465724858505108909919863270191388511359484013134403438511379782159066330511297391690648052373111084146646483226865304749583538119271393659627539978397103742022379027557265050174810596498917272604682983662309345653963257158366873729000845038719106006393523879676488545856489824095669897769109283697506220098006840719217566524160981954267157897428466714753731582523668857778444162183348384927815690032242863454553069037872690053805210198332946439133787367843796987134761220071075234055290025002465466020906788941424797101352422562106399020174446111860832878583235138677524851125505954180644227217056594729822199206781595558530087707655549742506352763160309259109833862283065599463340999324348715646545337761298336899048333848031793117989014298437787896066308892412529014319417012364210847036767463250355392537519613670117735845576938051627191155477287062161113367627049002891678973680071333931347032689093836393957594087288821206750389041518023563042102885951928826563598169540769507652420350624959352163224380589720377014478059867599432468190178854753407663789662336405533371146410860512094808606261362853107651253616747682338811009677358889325856218785173567362591691105220613552637089477333281644162287226661982885708833182054808647218731378401504493263864299086074481514375422930942903704498071590344606605876203458552713096093313952336058271948373357415991092038068265595892781460262312353688578968301287217914109458822911251589106534214015763199971328399198009230321221994053718889832473954239817663885151725909897263932842401779016564569877605176036794971703699824782161965602325947540215814529937378944739968614341874453100615739539009242992509617373574968372586504822361610249474577066851289076360719984452676889741923513626418936074442915472009558841963298225897957795676322537399324787973650415537803031347626094659433967503657512867517174667337297835549211008789649794698218812173298558948408930704761781755187617694613739338175680511213770356641344393541812696840047461884627390586765951010665158438160859096099312410109272903628585425470722219351404586518505245900302008799528966243018491308885830798119620655889051037622714824204359988914667669473000617961935683442790238284521204912104570465609488352578851729980861989665881104968186114052515903099167979085955001866816194224717257414529297547977785405374169150615272203658123377210632868720991105951521521610510762754358266263906753967313493547241436176912887029855112841808927612210668810655391242807107751520673059630285019761042389717089134704965035014371510913470687964323673040425899546394228962027082909881783789158937543122003742715910792044273655673123129834083904550495934089466146078667049126441376982329396721202818609938731245685439102987208168370953403112982618419512333411617374584646530287890832462585514159699723686050945267839838083527324503456437738187971669460821296990014733526578493322192892218887548919102833187289360987241817023278248133134938945437930610727157193454231902221374298159984146106281306997893602959057459938767059432589313445288170616840890983520862997908427272513200871751030901111018481885256323723213685185066760079855618106001725346020911276896095734522498352500152742015978680182095868054430775054885380924330081149414847525152714207482260491993790463184102737192041834219599939375895139434858716281469630727933959825563609792230266365628736027326962083050822725641551768846910492848438318852555566904161630126896258161959156385001444417714258761597653449559508557775647330342057527104123719129731177884795794568571884151210458763067908579670928564395200883061529841621779151972377198328540117465573556421975622518975821143044492593139717508916821585170475379334514362347877429589433059818217404344340651920220636594853921153265466388496345442309727235525618177611798205163794245801544086999402245493702832587334492701031029853914925488660934212411224888301686479165037093732010125079118678902204495810458868860769118609676934429869265579534199311583829895471869407558393344936922661434152703292577223436498759679484615477726143758611426347627535291978015177493884787388520261571936027475875849641945654976639423183594073245646377781347583514606760487192260267597719993355203020466655808125023204320536078492846306165570919239214032568291887350513106462759995006170932614518404798379156201950645558128853797992830864371514556783404006131405853983000682902107883929868476079945971620321281214089951253330630204832161077275299426108948536283630155449729854416646932818625721208791341358043848977896501521233352966248626534929515585863553832779106645637166111358445533947657330597133398304021083091630928773603225349502962963765865628834165635271924787331120144751476414815721359942889608543131774916750748792526033165074865063354883982310971140544570939475092109991940105403419361615307224790521978810191947289714723288068268904491813497483499522502946274572661352709177559085300689301470165816401222756140575600630819098465528168464357324145400541990959252766720612141450809400029829168614923701484606711391725534936756151624687741264625659632153363162112179430500694475864596776659336704415764639634510515556297599583575916885581733958224050995930622769913802900090630641290499262366466766501371005603772398643922496913529107430020361315639720125172421271973472655168454914367132611573949658808803363998997041807178696689188300964791561440891060831305815218021462847141753007687031003667029662681569213424839906379218288621505833493850086091559644080011627097414910417488777416985650396578253866976294596125355814525989942123056261151224645731186845700123112806940906996044594340454931044024672579016253264405261276273293732127654111584690859299135629911793480801596670452179082959941761944801563809916052052644904617710814171886331084982107863248300636323487103669160389028733544701772460625038350802614488110906281178185919513904920814664462305936163447642238158949411931428107367246381857610107155814684832546550105669281995252356781969694914341472580986874177466098627819784247855310476638755666708129861901224558624896879704696662188934300337046622366359561592613014892964253375841595165038276140637639526822418571805942638999044734124576870309816960623981384235192325978010518627764639740602675201981043625324544831253228454836904610291172966113131385335472772602314993116067060945697982571375329746886581960121302818622716854748646868498533747146727181070543175760086063754458668841176476150511772231010143883734102773750285844607674748064059365977987976025659891330373788197508836256144348169231911667638505790443793237671584537051830058509801400767972818906631212490276126875253416719919339944448036255800883695535941123259850038523863894991818896296083738249945139127528976988821027725468192687823790733487464729197592570102290129972585740878573744097498380192985739964901431233964094409273078838527914560781122626725495498461436179095858391948902761693068966697172838843125804907968017749042784332496474155458480003860517210231627126968913706984138013683967571217613999713305449019558275502539235887600805710607493017044848272543033703480035959037328943045855633996826929279972339635390859457754182449644081204368248721880542278593701840466554374599072906714405334665987768604901049002021738337065164788226454355731940835491450814309006188650011061892940995845619724682661870889226693372373534414715725819772474828611772072162769342875422846213664246291268404296108965725314862662490109850684164998571026584882590392505582629975883239047058758600838359222811745874749189000368164685817919409986238646978015353260143348021979503073981324509135305728211077995237557139848339773931597084617434360932034956371057211262295211083341418471192844005852720656179673486532577848692979001129437144958079020048859531348863417966955353934456102166871405139652030516639010316613767922174248760066819535043687721071993616346508410076428779734832148463067989993455784358256373229380735817490002413681266154627865223224800668709511876711417602237794348938802937447260756071481471948996418554719364624092197051813668224136859063957799767765313358145082803307016892108728546474752535462096011373309940235972608537546963990161236941256443651301626898012541287643540632748152751570920787766076305497924557724392113826024850507430718690517342171984396084432502418526361505049870999874006547293063916149373909308140313205556072252025672034922175979122527917949429585097902808375799644264869808921009585833339956907573459960051882675298540064170691270283409060494161057791311656840885161562300395014169140824253545466789561072805042474000187484903264946702646527831474252610995626514907122916790006973464169009413728047660649973620705925343975181236990043156281638464266305188716140081043082060467281406282989763970296640351106213061995805007833407543452059637945331524736991928349750252934394605300564361666824529319483463008494603985337830193860407667714292268600876974579522380868660224770001628322569582100838899606424883312270461011453711716176560236013362441056855329345435782827367835842310180160999372137132014225458453078172165544843480290202637614076277112409243258010662399658185547673500938172614817801653369641895103569603622292393751459939151092239641067956202334398574173074744971478124422455547281645536536108317539874516467346743373477224299930921557245186145939747374844124004954370780321442584119644461492353910420346010202559716768654367752610166740596087365016452336752105038704543597837532198530954932666775645929465832666128477587750019483934887339052994759658144620504849107504721224757989251061844449746661687851176692056885644851710671764199314788742509951256167378531102754077567290576235519311940872385706905898585374761776328875016071739964505403416488897068494952474611589390547024903137939965690194399803699089093724437393011173452412967127197572518778831407601150489763971250587923159794326174906968149254216717400183100977764680751021476508504773132660138005580715587430240165329552372051554417644357377333423944653860088050472029710865829655394854227751770608782029045201054531012551243760690480297052588152676746430041361511833632929310512771962627730063890201463135643234539862961959305048220154990188431375020048008379785946144817830843757066272542997300778646993243970328063949698970437133086100407335792459764279570277162030521023936420132560701131451169697430587547221824099186447611221857300778570737664499770111217247265721928787437470704637269127043502916961172440119847053466064746305498285056251061249539416145377792443480282300007185527305168333479629519483037642244261134563681457251482382376922702198817038912888515518841133233799317231667922312200021899042978372662715433910618007842044209238662369097475859383213516859324840730521373727039300334291145603084846141018181355177451471410446203820923989273634574015589928524128698601993983310283291628764391042222613340410304118345692902577022668073436914944350832283825329187416444919889814001834183008283777001234030239298259810744748811698479920877335165035303945160531862489370859461643141184660172699133652116943410657756618567363003250890584123773192906368501693806549491003964141490738153925135879451996505550185053110974659750373879881715910248880964952770386112119581761733015895730127685080451649747045434221006038460847447898677432702436674372632278804567012458175519659609782891230162914408260345055663463727088761417813808145030746034245821496014019466628545760683655998480351638285712309354295017020719141723847938582028072374664457454933450503585719398684868835041426968563374775847233343300797060598121947284754868419758973347410857304632146757728615097151876716374671480349036191939421216291318333446174489636776924709959283743200046606312818703104258990579888051897246815140336083212808029981271465729935134966920955801400980527927565608166874884095807063545369187869620364921558706859165876596541486945433003873450017156356706081904184840879974184015100356397741937298217687266622141815239045534349656797827471079259644938714391369245743376944174730103166712320531572648120114362745404669961396570776890824610728071003002228714895343904028891984054872172480209992971014578935729099724129915450351915922912602698872947915877030143335203549341305956931437581618918317923838996551813039563227940314574801353629739876456260931499840648508324817848845354635038322211234925631079173059958668068234962354339023431094855686496389109499630733754094818487896469065231594780513655261366160314852959176255357999603327606970337439454599361396658145155854795686245857945024431433222631009811645906480434389584203988696997874144226468619237614650709524204450871608922710287041665466305848160205440517312095184963185290008920938111526118434272226929003098642656513880613295162802277892482774600792177873790688847631594561394382546758216416162617324949577082785063211035137434329647947278660459038624656043797263677752694521926157679322580692342946607787445656951634202395585140114004570721583106329555475276687671629481158291389778165105514686333380730341761411102287549607998812738747043736418790811103987354644365281948317669681007352620580906258624813072511895773893805558633407648915300485447190479530312705072239806931579013266178787641818643400291314197879816847398237304826406126976209701248615751882125916835453954234850424901954976234079656661325378116516366523213648429304852348249994238980829846730951755821642868648051406237803751331729905477437372762236118441550211222847490883956825056708445690973502351705434884547652106474424961493928555527360540071505168971370627355311212430326763919418448432641752568547961052474227571649919363011462012819528366019243439137264795087370674947013346548441442136707269899131647698528705353147347539734477296731794259793533741627417164227403231370635345253907893704217564153336876671638926230145425197820206444247826691135105794467438507577723323932330683743050807511502052622932951966722484971862667522655584343087453679172733576704913419417266711638788575055237089659537984149539007385039839308165205619174555718838232895340968746899417255059661160574249347812872282236883348791466664781035992031078894820248282229569275106307101589611469988481166249040775111840042882475864445686634386251658215626003642976195384605509330562808924581340557411810318634558802919687839205975191092881985080018732159999141154614341618389570653332564867668329627894018198409320527470880501745422072861417807854493896188415875884788455260020215069174061309613154175720781065559549444901264567669734212802859341177242092120361574244761806856174752386712837538773303127126634090603680046699148164441420986755449947984601416175722257464069106703999819689820212156455579285975573859970442803722011775260195763225144806184683107250049518119065471736772154235135230063333223024320000627727286618106903989487977759994811037452258283384913932559282528034680712807128222241941053705860582296562562480796957100721834524732511454300997520180915615633627061542232895734169804112476673262522212583482184790455706790850831209795643265593249440510785221756848403028349972682562801289576830851328409279702733739802035967372716675397934040101307884672705960998592916104086217456611473749494289108211284892646121434917135017006811489787917157702132965638855446285999740708243258112239033384497871682663925945613134438224389338295301400656787548061601666600990287405401734006011238851244768158663487660000744105785924287627365514546361962848639768622023266974735667169176189683345380757074882693753780253151104550163621490880501438805978988304472627810430796885901282667981613254303389065394512308769830110805983475411636839428345210335394928600144455894961171398773030311977531320768303761131106514387064967670810694431947992936034792448715116722844512017250867175590665476653592369479654426124390799952358369800477625946131698929849294049777286305189947136522534909935444543769447584395794781594809294663007570619399504363456382914395710792929587028700196262811213279270613861797854192081769639892020783693204443346253266467999462108267691389149779864825584762932428772341468866132015961393099661273464802370520307841917569917598649012667516827399309169829368157291637861345730753775905200257689734707816405928607986437497133406949899895522937867062207431253398349569828357433443406843794290954653034836723791616170318341534731534298619479660412709462693623813529127986593759278880905524081461299433991290263295698617511754380838842324891778381618326851279051829084726059208372260559679858741884885518588720468772432987487416699134112675660257807293229953359885474978619248692634352608284734096247855588849950674200450512328061138611124165910958909351499813996131490019028515725729475175476064209675723513222964357663306217872548546586645922908573651088587861856156145126427552018868698515481611026004196590636308825032070608429143050253589189715907282377717318496904753333093324767925693735960895884269868122923874932534351710034132305690343312119598202999135905436642319272892667082477622046785168343844886670122957945818223795571406574002984603224439082863129385833319048827630612426011006308951103263013383373420758526847955162516043932692021279617568892131177227696620080529250574705547189535325056006699327895181000054716461221893477288913041869571460910531193716371424678573920494190462952251355440729272486470948820540621407467573782129784989296731641933061777177808004513788676330177795383956868009866611813278529368454003428830104259991794659072481978786612198173290299823495934288381008317193283567319014921392949258716442259042433563450957614353438284188320094537150412138835842079422187630773859080156119084883223840294302045210682025631137407844893748437093996530561759883875514985992663272440217019980191217682306446871046255163797971198579243061325512887203197874937695409600312575994569121780763066146040808561647768582102499881738865725121203748711449137929006700292706607677754003241701040933362485455924933956926699039598950967407956716763567624466710647968608886226338554159439991909111534359776463914594292162586669188261841220894659891246100868010476908590211595036141616836053728974870807802666365475426380203515078281360116517917102123863174967454365982361922200303010198881978211124584058211920158509892546361949641125540959246428342783011290619380695542402004795047058307258139137594532091994077238436422997810988034616847693540995741636042269543009882799267988083563075452589045906230758802190431683289751255046199526039325903039462515813537681488558281724759158847025377046288981584278031650793521313026772719625780582190702609134236260018017875992003925675506237671854848369422645503546789564256228440034831245193031462237799920813682443907704499123253210678712267690145127487106824728542415434065091050476530135999643947447493612151322428095278125837605306155290105678883471426294882956463677768204082476961914731523788219971500340705723330062395183363391276624574223763137973269000307948115301486043409172727783120006703157060049846105381070766859400134155530487239492117195870526999704146747247477468518852794678621919199706076264076571503343656488325944758030260190484830696289335705179629871592976457131692136613050106681655602251414389189592744588243695909244326776720410261695028774795041995873317098160541898114410847841888149919239114239747641197532860602162754242716089948102565272197825284148191793308450808326465846391378350687604299364307277977931286949093854636197190279307158765052150604091856744886337531341827617856794546095713061906731827397441574296114243488414088649184031302453314610623920403787713333590340927152246159904054858257253897524302181348948322110300728028381636796683693647830873888514145697909234453701839387524976339324198363273110152596331557404907959211459775064636899386412610945057071495457220712072785056363613865351004000667124222636494505258612956955646413142048646775151549622724270026155685808882933591999350868087206812304534767067814526624193066233245022847496836189702655460534701871444798543336155929063470895163242977798339799318301120612234891258800654693111725328979030695850159453876189913820942484995859145326870708212004568270864476530080797957990480596456829393723798743163487832428873463271314359064878441036095323439503463364644945007210333656090555624551750876277576108245176888753556118365943544119607498188327430958657378763480381095710861247487527659304950862317825148889535889611708698695478899626672589862623305024586257073164355490970345651039406721638460630244304521040619031147926682862275511588664010300915298194281654004728103877834053619270938216569472536121671113473801477054259919944842353055592802924285360988768447296616729865290890931151273216543659609087733372318839550153993847447091544454679343769075799625376202053889082637804897497325798811389911468627289951661456141680568884671872157409611816759533545054981116546917362819777225482527701721278549196422188647449964152898143037456509086235068447347029987046243934682870097699635378944000691050879631372861321650655636441084102708377162336980109445091986485644178675767741615454808911832503063410437394387118105998486543481192810881033357179971766690241600922427852200133448032037044266327553909534189591812170469577746159316813622594297367201247555990833033738830564968467643483316897266235359195644718334780727018978220014492129942465859800206838719950007964035317058120029107810269927056144082852637504166456642655686106515668160531672665848380078243062153341637008749860148137346513768624746769219026949255303476487752682212488620505821035544489466666028295861183546596741211778872459264837786280395790788291280165464002290372840056284883055758665363168973704732400703163364668982458730242298349840841275584820249745876540824198664607167692585213781973165938307873892200592557918165669605473597972532208835444502333657822257080957787223103277797438544367299414212474621470281746703778354658385542695649250635340887508581358897527257411343341086125099869886590009869256769619401439847468824791823270296321817094443747857674099514498883272296953573996315245812126527326389982370757798845355434895042170012139944179650981597569226771973801981087763326840908358435103378641441502754758972224862929236637051598988209144893308941056118862407503526764587426013588766292519538232629677003180487872724851261123224089305734895765377133305519022203995496562604666664673355568247659547053140325522016806356302329758645131254828209895424746743217790299003199069315089983694578924593491801579625662139974711415756706797450943183341020867222594421049718033819067775831784456666461930765984920877363774142244746070794127198574650844343658761377623623390516485160290888062283724509077049138872571898382680189137553984238097246426056349380076679840116005850650675767454489026751514826194234194349829626783719147331021097448566976244701172453214350439964115549093673492023187522031517760737098034540771390353964436450598624588526550702423451610161318494442793000853492012648485745405724352531263563097530120943054212521951858446360952613163818978636078452999552860163468037181270180890473645317784032198483474662560889596421870580604892177694737005068678761927602622821516717525746356835505709232991237730466676041348555193430993683851126522737636026142716885335155129822305637063811407554120724081685534691913606628018726481803610287405929910446576600403474714245835267947922841180981595259997767774356191208461720829551842632863768397774982447300763586819855755747151968299469730816731651652973817190695977894745059066098111267747695999149930642731196041051522971441878454678602422804408556346160695444457716059397725979513734497795330599816259092357100483187211070480744725465388823405043830574018201306604957051953785371985497040978872587279306279456039128679680946815524402891214815376803791930422204241434764327903631820325429408369609885721013226003700248365219738432124015197983923597439587937683285028422457578917757892078873029111070022181500634081878323555859501463763095078776762115558516819429718795425058366499466994309456878989513020490585726885101306829394514633475176893221248093874326123883425283815467591176002427847651510879750862230110937826104969644356479692135586822174541775920667554034156519222688557798629518121816083948990707563231454208410400437954013275620601023670621926700078858290400460033928278215004272201820591683412837002475754816650236028121674838493556736222879155464345954221610884382647354676755731042592416096243162105592748862080539892685057725332189446576109194189771760463537926596708386323740083242679679793344810953103617025223417023048190190851987178692835025827550550342160989394961695042321048356923047965101086603142789394691947743331286496937729725887687425850829312931751887338405151237766609755393908988811849725366170499226588720823014579107850288250263308612632944499071710207705774262021093066840688466586527592924078915106491782574255350228012959518954722655727740661657847638839594544108997733675536025403496390848889508467627813376880357415515664362188713650310425912004546650343793561110790768236393997337439631260437386798848736839324768135770593366053880548534893590788510426054073867018027555563791460169490402054902946142337261138025168469281428841831370406086204772672087787504168150242433319206207761347493986782199576756162722467965027483541317493170107064205091105501583486140856992236907487573429681585257617154156660534281246113060925657554315710698949939809706148189166104687738060158533308859583497568508895151107883957275972853666022020763814849784239249066174496637154106346747085721749357880827132287724194267778420518201205624875097980668661027119442125473643323872141943432821621667970983664432491375178497815902857772045658340785361728736297746369768220235002215869878114361808272046998633940901964286474363363621154596493499736670135253636260845543656180776936581524469570108059462108178257420353194995277312033975285330319199567638601298035255998382974082674989487250942686544891878266873462768366618501696402189082809634277250339458497704895919768865744679029257384943271283588284741803342155274378736592850321382150624987036165966516133630563721864159958745989372886589022629032497711958549728630866085925303312945146572203919691789158872992098668067835899316204339636763167348286460902420507930924396374821753309555914321824864758425103896748369686646601246682928513276622462053508079498590287530449532198736280214853501863292640251382476417720440188617540358794515865712898451692472177365183626604098168163975873910872809452780321285251732338101265227737147875581352210778652570102404602711717452519192348654774007433530761187111831052486811723747941516440757908559774427050859457160086451024602913170547883085002978060637821432715201763429696256896940027399881908133415111184015584363853228501525863309267754258423348422307614054883635320266825251674640641710636005576271326052737767731294783842733861991807919906619594462941281330198276486998558100696212154537573321813515671927818257116016918953882317293324339087567294824050448891453098191932835220885024593234739555393947296623341444437001818508889119952765660434873411240190563486356836083449910590431853329157174984013307614136323655763947598670654196450766833885403643563052173558981019532611143534038600441539610072478021140317464979639693767259624035595408633580791241469162655993248339127885393715455881342479348411728497274964382814340426153323246740361659172285876227249885310106186883888114137686425042647528717799222101165409145823907422682253434471924643976142409775135695640363934480495980949457167485742621639675681594406552653520933564763352998208605750299637529791886265454459400793732619217286404072963743799213804805839594298697795938939216970622501666647798450865243917367629106763362825459007956545708167285741186922087888383749199173184328532195686471320349939949245403209653693413794642631956578329535864029878146352040159118298134666687299875360105670222535029522516149134293423831803290067648225940751761443339939804222344842439372710376132507745774645246652016998133322680462986966227839610768459866505633939971303013619963646171795992631870832605310089630023065016587485171856282504887900427195724460943284312477371200573043767413030477818740312934653716290314515877308248080676520741141096003122562018851212507223689233651673833311132199606933405826510077053101222823421322097935087855751972654023536233511681137890439422336491425646099007462942774578232907552872294615862840243528810702870928897325464781784810209717095993268803760409935673886513924274216122432591005588910659666066861431910095997685230326692985480218700760765177552187659109669088773533732825170534144696113052166269910375968246795136622296586063804135355004792136342977889101944544782089838269195417558843572295641450532267715479982095161311319181643221972026111949408974431852699571743311196120249618020524220826649444604868527229807555483798127684787421723559340651634954690572867968478705780205180333041288079454599697181028271767348818508149134643134135336284508615913043693377585070496447090220747586770559032297289795367319481839900398514593647323510854089937654051376865095798151554677258573443055157667164912525147965499467542938256021099918128085060918668349775584381220752689309509472170276238783194519964229240299984460531262535332265895378247355245933060493794736602223224376316707830318664189221831936909850212011286501485049892434381800054438792785504364050198765389728750302639372126778885744780698877998141105972312596455647071501367188279759229708701347189424229766026970907782049876393969232975521973753951408142158182695110011364387590786596804386205093941429638555500324738507377015358647501638613777772821145649345197810980875676869591976202549091787208095406752286498429791430248535341073971207598423201436423067554539443295381460808081561654094798811979451669880707724245768922177330051171132119647757010278020511531166672084508532161990885096406581159365502745974686254153517810191608507606093707448054612754049554225664733785102622579734880046091547597482071515646208927822577939033038793524797145503740027220991701279858453848541835576826382301270170203986985664983606968424197659328877207444588311540450971873504540968066924732590808013542715834263638469718264204528124202548778153620074552039142922701855263042819725579711550803670435694289135388844525857321310288694469963868168930728598844236595693694194756662544540516627143773712196667043844976880405569047443323482807043365456030437781077319245777279622430549480835013240911313410373290537054517519423052705396137517559711887264287149757637917423988896787710252414917317647427991264972457662380134543291498959790230493532555091830446899561713910594651573208891787048608539793026490035706174611770620697843649816694257127319681535751846351522583587250663485489308588447507726713762665124757167044412857106940945326035835466089109885677794601673450188060094267392894359485078960514363391437410947396498418049835419367192903179209781763921144728860512331472817996558493937604456169423341932591303204109886666698211193968717014293300315877753020443222266096442740545366454777814154353165299861168368613761515903090918537428551400711627886172558408015655638401495253108792892629778428663889196311748620620357279384124111969512800512516770565775032158422680579555537435351162997841505836744662267937734682015553228289801699795002703955144192809515159210822532587820675163734268867080390702802568830432142807326701956100384624684598974804740823474857229783997449479414123087611452543244695718111586552137923806449917043581595542381025333959497024276782704268781167224963604285422899656107199937803475447365403610116782028976872796197973767001123579243842799890659570331747072762110235564303837272097996478760464318971617565290566654875738843260364591547879317501749646603285645825812251458370578912054270415566860129327331159631140023394305499991768294180973201411307578814978630180521626678011401853051886937267422745242175878445036187651853273410086374052484682274467483987732222169922858312111976704490775503497784118381850846296812802530047100270800511802015365693153777151390109041011879109404805018022131869306958169645867255007389882165429741518116360937450913349324845327386454592365766122205032818415821805204027280946583078061989088318483695495040415367582033523200909744058368287717474006021569053354231053050233706298826933728877088705087027605472629749560419892088870489606412340370971618724860675101402576205409393520895847189583521944573553537778581110949241771653641409887144631385794070649590238818147022581901721011575656406890183650200795210839405175490258198593050572239378409503957047533253961442170378136956529155550790862255933751207145109933392814291888720376679918756304278463339752122887755345554296956215438197139018926368353381797038052480589425673376678471290339466107436822751539913226600101588901726160312300326473340647434948326767692597220451229036308422830285623164260720909384128171434850971881976633308563950070543435641635396746699882000330582893051594807555945807424096502728472378926044965283371493854330948050978663848543823677572975900174892595330665069433481801659384053257946701556172666614503956514663162294310302699915985502200371660727084526343520599261592151243046393207459295252990172380968563209665025102428734250646002966862471895281755479198263627155962885104891363103670559540610074920530821197219041651938911369404734710146313785429468603001917186213870437541366504510032480043672740882372058796778385554886731844466760347729422181484658762894530006359018298816551731072385318931459296436048603390033887751033247842926561831920491586016640036962695861528456374988665789129751877566611927794714697318850638373767451994199599445856605405001489444444807356076193140271487874900582076714528224113662370138789772688024981465056268832690536907614549037030242341970966112291677706186155890598642927837922929827573174301008130834322112125998191189919029326598608159523430777083201007076830320593162407912379395541004071923587204179802718620152802255469423176165858585654653217337959016951646413863013450733316238292242428968338448031644897826265859751656353968432812597579523692729623264518511738649852599459304094103788083570229008435263711572148512284764602658657446497922950867062415481052920566237885654756158294776262400222540514475022427396053398927279964805197739631647564686776307294757415381005377524456958584711804450863893329231984258799203797928365511956041762087112752574103779921769093264993545994104009472340869983864996047704260730610743726242605503687366051820836223276196771492438402054324240496467105637863512680626045962385013240069738113424648641986835369889179170610173738138851947888934428893596829354531281229604375563800967536138951011987599977946277113706225595596779323249947940352577565653200104953641094740876497035981531839457906924931687504679859225973187579644527099314127072749834420322140463759183493023100787341262775643212431636881258679859891041935955876136092697713751221307741690826180369021836142781099526096020758926751455715400502670248984796172291392877542802193862581772907004426377822107072076921742386415939003368377892218350815889349307770005379048669394483237185190175527300398072058673697120694818628340965027108670977594919252480019614156659148991724380993951618522693461237458982193641409104953879344541036572848170667655523135814384405727548870942241849200573343618120207157149921931036272741942831379775367532812257298416132336507562889739353346792677697045784667922470789484089821818028055712035800262776792910212546870929479739556981534473718109382360115568625706177059699168766266744387854086556848732401356672285137996231299759812703225338937703821067565464590444678422044919865531505227135639939955202924589523262460397434106008088317200572676196074209621665786034069639678920287604823960659384306414109326026210257622705738166038301572198801016413085592562630789883180774946998864656349244085180640977987513399061562585153766104983888367799178787996368054914977408362588476289977502905913846809200251571839285940153879695625352541444401642185450996284481482151970605699447210646460050763334322159859651699057237181138822033059715948920013074466185349492704591549375475361387141721932077560581701129778957060041122268830581792763994967012347496339603290256398661618112128662034647232621052654862676963434113729508884041836912442472552462971956191419903186205241015184680341523944998279601463519987143869112600644407335026096759850992989950509504642385245864283348174526885870475957921891240380068603243769230187063559031182685631610680486301663389204117787442446395787956093663089149859744512239876425124638750138357838280853049663175501459472059381824268592885865724589766608420402147580450304095303580385114999274204829921644181186381365908601524623515259729673682722990367668942815426880993508259265170944001638915250483596418343587507389061255146956780820842567955526330700131478152921370608287916110978074267733099457151055696834061836665675536938524347233537951208828929166923924618918382638006663830567836630130849612167442514627917437171548718445970687640528361635143723367022582952575156902606616983980494665476030580239546615109679744140827816375954736840527369434652738653895139511026757613768211953679454171798240597756792563242936282839200851036378363987807470947330475962392270448437692051635675035346584325941892034873642995785715463863983331655036651027643182429320528159952396207160535760664805888011566323369651930725163934472516809583515097152862216984162938230509409431400158422461061096286981914425780538702091158960492080781587334862819345580331749855330872689133587387423562745393248809120459544627020351722778414655576101718109971151165238618851394701327682506450986111368714527425188631194890027953492986534469769607327800433940834401087293831561589526904982950659839937769191535018974690455798800552728042678863828867416224334800694168041887086573947888099692086441179227394728745053263344471547955455300518153084550752697903946835907965166755158627591685661006038147563224455729586043350193706829430045576022261297984740230332341436355956058199218215788296757018141899844340488508643704963679981754971912472632685387926103802446050513110579304793123119658435680712051382494035551856446280936036567101344504410373907651103507130721303936045956889979465920533293772276984011533445043988283228008053694379504500099522597545146219440004646181710726830030106848275770800931213332591261416589372440191355780395652441185920254346446284613370735156480440302259846694733601373263285499874055485702134963926316474194940429326081878762369935607025891055943210333141685660531966509774085926584855394997104063475458080208770788494033810775730126887209355650778936140883120137468792478312193557802113918796223569817810635100924765460226767151419177322639049125998903825866613566076102854729353857086085574324065323829180605952637445808392859150770206079638866031238969083111064702912237438403518843818289715022657138774323879903900917948970670899458423866181035101650597622473825385110710323221804417243924499922775942346209953483216918256227955438115522295164037978951048035194390901039197008305821502765859961412464240931638388985274223592675118072735175469848691557092345851027142189931127890215436661735424032865598305880022298870508166817163892743705191509095736427884876790752714051960714345494371727529684505414356265852077124144288287091511319875259741240504123973764686150439138367769994334507543701463930345746757092568540414943668578559511919115658479925124601388659494986166298270393022082209491574525517771176021763018392771399000224313689957164227913972841740139885598344431135282906188677943639159890063751002367176246922145099287635925870515004131185348250543310993605406207226035390883484148325879122217030845332540547999475883513024843044093535612871708510297865918215050215203174184682771500090001492585522197777274514085160880848216018466688892957525107615590491394331384120315809063657012523198762143912395380323064459941490768926386461260798912284861130197655787774394072945884602247268767035612605480765826108525300662625393312278109299960787500922898565616984385891284353819714511931090001908715653648542006097824480223563572085190814367432302753053491830336480054066337972090383275305918704100590601082007529904013863468460709925245127755590816271315652076433618169658617361638673575389571355200859950069289376870257643640226974970325678134678924550273985178379503496575613235876232767174061229202335098687738602890662599741868135965477083639661543278905835843346597302157582987200866486455773661488578080188830250964547802410849888653109168479022737345043528229395909991633495050214311768187584425527050548357921461186108893814967439274690327158991449019424935952720347014858184507752791201376136318982326100895677720812745173005778093955517672068552218602094474238798564753824838004679466437892652889088029604266253862036096844966194034829638282013468851034157971195684001590494398762177952547533407175113696953797504233250830423300299399842896057777726588002977009654641184099609074384300646854488629397006006434459070659054671949631460441688932517197420860965675288544363820848885682300688092233216963586341354800622903609911067969344248592500815088608913404790742079694576182561850544298630547380236101983777329840074821978938817203302509502788886703509674605216481646775794965440512656893780347043356250409418753956003490150485426583006508182680397047420742326519059754030591222868333310933201159654150285477603171688237083244266607409996147984759639729960664285848620912285501773292882016733006808258466797975885645281755566172027755604207160097009890074184726638905298784516871086356506279121718421794233103834505279659901159472411699447703668058400434535346991718258037030374205843641905791720521036704109959615642469522574282915468941057120469960241065828736653592054607023198370286298118475835896345321392012714100236948613839997549504390237412556252410340112930513644628072001118393688374407017793530957610686258925912291708010181529508435383243462946135487145170174339611449605111105208830204179643236196791103168288607797106973438509368030871045276616913868552841950607108686008658629440257596453525331698584971044177219891699537656845899305206757878795453328044877163263051864336138957121446296957793593088360083870068626106229034265640847067315208531858727300318819977424715431750125045456009362224410217567141389314432577819897973589761873416957888479346081168702130027975912301259811253328700047453668440883527648154160802406766358511751642648959730711246637023358895888950021743020553213897997395128829395774976349088056372143972006720960357045065823201693570739336967279775323426098408409319707926114461503694847058845301831992501639366952207350628998022798236877018187619933178360717309251279285586202319411159430092637232159565198678549157954845654334606472992633123747505577794604908805655154780054430161222017713110365624617566175966067211768687129532847746265943479661277031110106696992115144512150767240548071246185742979348141167525348288546962912442141824561555007692843735810915683566998742380479518344310754168233326640502584670643742987525192509634232029216470533730202151267534109669372473328333620615929374879113631403916184082793484515888207789009772154866079193869631634796624816394561738799498644408945469095429811597557354277232495922719989540062260197426763461969572265338890787698321981330139952709898407821159087940402788739171749079940348740407017189749460123837411498514148749085777795161608576783469943715892035908934537000266786978430958095171789841716536390852165147095409533530607287810932346298810670894692594454647845411818126160777432709100464571626580704226642762895911165824387571059876759232337691635613114204238014686243724305721526055112518360760577595550813497133695634138945262898808489664736477723838312244087494886244069915856339698801998754373050356488428254348346664103584961461280583896141378536962106669854691308776436065583482667375746407540886954421413965441193585148657184870285325726926438336806957848789561932634294342542257151067597105623833342448940510472652110876718943896217786117713479916000461658993242865488740787174842849884097242746644544934499831452472514117722644291393561150339389997047191720196659382619938824493793937032955492749861854329590274579974413358902554921985714997097487038428305891894393646604039960400573957156842797374074189156543671894781989859373336524264218182440840522583159618608834414653184624847651990370367762444880297702928850916611228693523622939438875948537914785779950546374279690831537067380536377039302824640277710258366783333595567016351936183959984989547476106617358646311133993635130424536451363514320351374770068216217649683435589435969219588577302534621401048064885968928744382359133665528892203500875585699716209773388113645638482192389915946277757548784098751350134228805436217436012107477676857082808317197716492028639460718179068158268942871865793458436727784980228219023621457817368328178384490532466593676958845724269644231505981889134640181098466637360960303111949527783986004837951242016518354292012035524117272844679943661807036453468743969482288203611761544722891064262714579271811377298153884711687064629035150218541871350348599754020691459796415682338275981374417157770726461243128109483878005244579478340614481069276412906216984405869593552801583134424512491948376327072718128422474620305182709089925325689831297498833944969107952980240141940245697612522200867670903410567681550462069994875664970704649863706382915031969897449083372093033902172442702044562634530798670879305734833600282221977273353634512664044517027127517946776981869208832640919253689311399003457571131752936040546090742358664380843613822673032560413218130034035974954746372383437148333535271639292574050570062028120223007559710931266010168364364155932657267563572743622741566440479874794175363296262069507558517714990475586089929341365263569198248258735564548442999368980345116305085179135137719394181867482904751863979281797016223790823190439763319625558923798214294921593353217608735826641542238937354923852058263548868551676073348863981670208710224511723840367816547142536976926077779891935902122774978120093404881828350323878438387570867698912949682718877041707899097249072504598089245361074923975411245232424247720397212705340802779459559439793409706066006987783913732798666640393312630216636157366021206677879692328669087566273164181687809394710759782384372321746694172225500299171596144434873762226087125679015251677577526331069062113023264224517952772962237536670591148814583633612130927916932329923514633216970447295189059927538987679197132487854418971858292680454592165437141936891260299943106913979346265671584504811475080967083711729298616975144098025788628501691142195631329223266588405162459977764075821869551471443849767178583240181930042579820240793598631840135867084704406509809156084795569671143717619210225290680871176852384116098594839107652716012866468494241266142635652188145187841565056722474161907817084188565325149798208652366387724688947789263009142170919054762411570581161915687203604752849076443274871293632621078063110208316796732203693499841239406754449764259607003391259053972627056582047569522826321217909254727291234975169261190266641200481499426373410882305129615984238594565620289663448119325075615301078333214054227772010835015915328446865001290476149716312046273110459646395911639304527468898084583837765170639175047452478394619957788923937657749420401439482085531480826668154822258343640788197597760130193124843017909704025218963724146625498193507086665619429575989297255736381901680246242185382221721379348302425042312947014384100475587646812409157505163235635417864255295015012656681782671552516190277518806012865099434625410811485880170006591753548967564609949956630174365435851923992094126175854404682618466352889190761825452880785687595138263839735126693961250128914331321889185985565055514817689377156051760319455107948326663388895343684853414633756896142563635345473801491906363569003127161417820764105220143190573676418459157122665081727298242026389688279749271073227441286990132356760070076198804711250594820875106446416200273607005455084788334306141859883474116368993489418518598562927294565863653166668937434314776516372186123437637682984145941308791417228492007055448129317981697206699226678680804967721252903124208082765866638756726970068676233527808523102870490628901641805509821849994150759935544250962647782113126811796019808182783980146557127622276723393961249641031707615181175290184944595071101559820110464753912946925414694040490763920794115071694409585077938395998148551301505600279452418193202710895255344409072893128788095358557300296290878393602439050860414040830667115073441242135773620296507060002063584835251952492951913685050359693520804738992675844023917906674868783337519601217747366518059132813469268116180232659739187189814726572637783717086061790991989704877969381809469151783979482329080855930541363409211023215506666574824745795229949587776025660851797636388573782070975311530296249879689674480902177242730830095804788496321197864278819436355928092509605869402866315094227810223102732888431254891329128002910435101262287680758300925732053510472436859505973020895125056961142073722971136865177299394041336997632007554365466985349353665734382238678824450914405621332346589734831610122752775103529586114834537017234289640818852156815538276623601109822928696029035893044578141786605974684728908189614969758605833894926906624530399778023632532448582442804641422830616094396449080097295518287732538410774281834392613957577204891612175291088451522635090794029942634195751924358191925974576867471920319050931739097954989852207066709301073887940792511277665507904421617114623658258855576535131909340033055420132217935244057795957612493329243194905861843992330161664588929546313699526005799898468014337606041014009233742120436503581219097368371894194919908463407426746340644322819969418657867985643919338814545572665043105728783348589239038474428890113718575424665376378347377634182489674613265082409584476339738399472141089118908636758606988610738045757601007132903605769258599304297704290850056828714748376368078360189637589586773141692677854216104067107081430763922636420320974576351155726278772573495124945951686134675329976084457430520762218478154284002533404695006787194913324971498470221262173234829277229249836412862747811831925443279776446803441500834338385698432493710399360009693971733269310517124311577840595377869299663437753453662120898509938314570639053623193127640350362160466056710161790880567315867968939956225403202673770807734589899918972154662264179242690522713762774081188685000508261548386842432964633647837158188550975429060924450746872478895681041953825713703431599810049187516851619318250460327012940046621202740612114050359126060178623918174161940009441596470120297794279395755464158522309629717365880689897102804819223301374691201833311079701294680960056774479274789843289196120403587134182154382003003276391523790024050577814842568519667655390649714719696198290538242961104774004795753862050127979650111239616137719132723821484769183210083083828350878197221661949160319006652630029850618946159826019842249285026589959314103841186714420200501301317079556809422730878995457721213456844732523336379368168853051269694034424956198682380400358594791087832620054291449970670156350405605378784689211017125605244960792668660152683752849754732908535048461129908861212027739481316074054613812377002860648127727756020818276393570798640110743072793915492429534040603255664907201821645071375270155795871996270204552881822457750454895465169542933426573823494322501321911133502059952644599470720343976368756673964725854172537375148989927791659495800653610403745580756897891342024600802443968683626445565816351887027385903121821028301110853562611541237683542355011469033248924338222264807767209768716484420330661114905185862418144369998859842069002234802500404235422448846661081577015862473719499653233442945767021000199873967232790911806634102051248929341403951774869742996932009388151006821270639629124945857415923439292190775110868681156347638913281344543141356621996195987705530662616243219354836776494212122374258448504770025160248103336422613508094958341247098989745029502057818819614325520163804449746529149462222005726249121357721763858426068772910485021837525953801991681246313761292733342862186736158137297150056156304273038887189014143975104335882404632527410148293823734725509247465596002695139573024337813301840309553483757438909680372126138751398736459736867928639655818682858132717062311702296930290175700077713229223359329458848581885573516659235565015723908283416963147483860004119721226574355450896519634787941516887663650287021234303315307911766834753030973385285482307490161487345242613214348347140805477576300665302533495114009943491661317501050033577672530914054068996799129253647312208563337708077619201745989418313662886573785467659632534450321941071288728343122255483299668884976441708888642272667835949587282012699353787265714242459256089066318864285836048893269898610701733908490533551201192495504028211413250014478753388105328644781923544250144983906011193432235152036317853224550904303834641165911506726537050894204274795327479690927098603553001505736181863052511322720826824178415445428252268262876098770179174718128807695730116396923386853938023233612381500596836584855953557790270456065277545513113667004569565005327363976366478836659412858620620165852410445318856907999825816187890796883993222199025285936584006667380753141461592694173149953378150456029180229863160396662761559944602344236153450864985657422777313587744678608353518313271189467902011980591851270186958836172183720063413551223714710075173812921787185475182392970754768553546898563795976044317548831266660229079385417706613419146107617083771249227113152754113472709105737986557581160169955740187725155248947470887322785328763284263482700392388703103992393305372020239687168068341293583864081196408919499028506560134437163642461287048845442278723907572463169220736849402236552353990269731807236414768323137455452706867261360846035369127536315150423184738405025420872767663544294195450727664235694810508399482770791085448435758784272509359791758632173138893989344175144232774208393015544636919242710763979763224003660946714479474600324310901887765760978818924283744809552035877607909155832963506904286846730636472172640578680564308513284858601502085802141958490103456891097951356759778785399827662657365972535244840909840390081789245611743623983797796963933576457862237454493225336001904044755359727897325714617777935557786989389757460314408816038202046276844300133985602807275797337685471238726193891621415738041079402531610459838368633521870210712817537475293120376284557973814142514734935449905531352907913394972185561409593012833347211078630260519931937365371833953890366731146596443379069060111669922336222651128279245849950998528227336070745602725232101873948362460997362226773829697939696342202212348454009793823091539813107002799886379708187711712113058379905168784793155756725565249795510113227091594375941026597867773047738979883521987242331905090660166184935990662612276821052974383224044755091536080526642017944905339704838920614433915557510674989561668338131404720352291949286672684617319265772558189489706194338702027626812846851466543092935124842663709651934465620227454937745706627616249579086200789617756202332953374209739517377078312234089519226770515937355559738933158401232522151974419215657231551056716087008090601551998296984482426228034320277270968384527386564010326635214537446690585838997636568706791504046982948730498438355219760053391942930537300453354392376498874850614403479300278856419767735770521027312056030739720328062159234423619157344554465956456383626764542075598335156856728226122753854180485410150538266396858469950480596892636588543986768507323224860653398822212517671033503646883609585822664713526319676149248328495173871283005532270853450027793757166007443082985485843669689929362676638139973493343592345179229522096471059412787590603558074467784193536691147720355465623531317294313535947781705504539128740934099894847795986289917806037057095733182925913525439206942542323034174660510192123235061611695032856195223316920421781635349936297086526478826956262312600310217284889538157041728192828908651872412834594192814866546057665324140109281919602278255404561558579445752135297071446966556797706771487332040203146735628249840028027541138139722804383668549359833099956475718695879572956878095707645327987743705031750464052595137261006306475799128506188672415098701065181001898693776265537839347940459248432380151672656348182042820973400334838046820489176743608509971232778701036181438792677307934397588408800860924498448423466139918410048253069600153504212356886240481886043415548639638831071649539641233119738713050705868693364398732702173223879409964747646652266343923236170730913838811929750707394645477250547379669205136816442796798065642953583189476596792278731068260008545076049911319491708947955668379028804291279684589109099866683722223243473168602138533511279412780415630045392437161793783686711906235473873774633691242799308292131458019199466300816765770233343432271981814426604976343739173300979038768065105743979148331418560970086368711362281803904351910277999833603446460824360076610677256606425840258603726973983723996187611353419891351824639214529056801663902187622748399023890113825281180279226062468537195462757021734176546751295469986752684281076901830791193191817354928607216628211182874971126652961957202136874688984518006005829442347859211768156647279149055994721363372176497924210125332476586427067640714113428224853134827858475085492659305308650021517283770166234290333514996249043974999142176413998915104448812043866465729058540703565905596653484143982373322315579295335832224648487554836958332597900261925409883046836929308611056486674804402099419424288240359358202306032952933004908308732808939313550233397566437541193777157632631600686205069297306376436992206047876349562837649421609961001234214256396939635626021883567814564806409981795823760614205110684500582637860347579898172926332111802493725676382784144753054966561168751825736521154349689283645325578776433629020234148693467798047563211689762154430724262140741566247460655541336831587188322599678793195579954620484230008122402868638689587741207749830911745610644007300946747360525968708081898089291872684259369735435998047073076304570478195173411861240187015777007873775493308046695004864278470625574069409149656477239795524518282858757202358658177458123653093460480145807864825045539048741576732234297244074998970118697549792758854317138013073273157544418064548854177058813737358259202788995739452789412017131842398498539270303081664397872806246459791244941927882835881407918696624744446049169982534654453014106665053252889627761349599500346543816684885783070266026295961724621873957582404381645608190985675594131852570768701924920408783228561409232297394710840392436389813699274165415326737601908016265882890227753851654216288210921170206631939757098654228600939775499439304628539934574347465758956243523810658967610645404158569705001286571328326011959360132381229597092178552889290553933537746020442447447366197073167995854021467904647605018706457325588599274946869529356046443184140323743436738037867144891049308719637021435950539975932461970363253106143862331082447403136687737583923953689370571329518273149490886118989069081892062391844378069529074462216075599440703382505559096523572264212807340531681345484454162574101204222354905020420026557357180702822591909964295394989060143894605816662728940243948941156475815079928303500247258356043971524382170414035450581541088675558257592766513681156044216263220835107927637531413019237028628355134056184513313813192557600012377082961455926676826534146807604857436314024078575941906572454127768434276122079290087111175947323800963263048854970883971943682550708964300249312486597068533196657546412034893867254414543992842365576776577648399822738172131736382135509813482351255411930891607578175820542833696514132190843216359673895913593223165050228904318548439047475856432865013128602389199904145969862220341048631468052876700871019872441494546486462570682806958673843465350674810863811008087908353081820912738592257909243190585710191808725492132598055324799783199925436172368586153692316094351600359593577903602354059464212427023336913256936300698317383034215587989998332758974912437351985474556108116285582569890104420607528349763476304161641146429864731835056804870674074018300850205478126144505938411082144802701972481429853637009994951326220869529283224488744709716011438937359719858955455391445461728221912935064304149332372297139811676637587074770252888468398215606755408625804613652171430774222723456934306142354199591596056127410803691124751625924778358012888565652064169174401836048459320652588315721260726816758848298796127488762482426998922830425231735625321798501259407445431524384802913275271227753803499910635953690157795453138429104304351425526957908477407724910336048871316853298448163066542555390933096410126166564473845497422523326568590969627541549911951937830232485368951292330236844779224551793472674994435558247697863425331945172244611807282377393312167441048348677801090895458944135945192312978749341171595183470121529392010897179526800687584752674381809304672131240216488110551541834249026669539405494446249865669837031739587637741719087974667808479667119267074153481300393030749029402223112310799096082876110567683760177401699621874498100619170831452589298359397670098405895741690150565896691024887401121053695690939145842573445945652913899005211036316380535668552859692647577942990331920763854579054833512187251477253613027030122803298376403102208325457835855317582832714107194399564813114125732694337769521224412398544409381388437923245474893183663953300730435263478313616777258000709392797300094697064868629507406591440994308516795715033043781771723150624402417818238017365141611216126879117855321455799227156113907061448311869593076598985419789594601668000191868549637682964208386705687322967226286336093860596261436457310591719297065048962792325160167436542630830719847054920617175444918224347393251440273138402559469376086649782553902344359032634046931880042372187723733294301138336753271441843918463040952948311956013938640051515416376501338713701099890906600034920136930202632795857462362997756173871135669627864819523285865600981919227618830041449129356762952784466832631330589563021868505238123199031866146017565927652483700473719336615592363805127220694585219111872902422883166114488699830290176972575297814856300437696613449823330164106749064486207399548276519048330642660812950595793739836712604649852345128348781683720746741748400199365474724141773986354183437696060473506560953516518527546368346096594509616958479389028611594662619892048286769187005070019555794773557532185977816632635689215084161009194335234156826673555976508338393414258413998371616471591329059748594356279315938399194046238505900052488174801258935694103583954841232597505215244987449993291910950874150439018962163427473473175598252977494355619036048828186820025000938455156036756903055105538378800900288739665968347969515494784674069502711998741443818228047507596528883780888605761767108581904701016850214434212126780349835198997175643697392022888364253001251272603324698863306215718766252839468688395588442609992593407578821136817316956946356906894426889561717997210897677507055218765421367687706937714727699835262265977472335113660667625917615608860309613770825966534621409289372251181033298213806366580522819784062220607750039770561891621006971609655762079802520346522866395305770838777426871697063824901451961214967064444420425254151571891646882915722047337741079855688767501846681860084240192210624519400626720506598489901110538663916726461584084740507467874077770729325112316654025009207886387936481995337633508248505258103409871052488764305856458207694083792032036167996357985520620526658676580910180092834664001897713741064491571260994548066399453261989145110921952722434390028626783569696757637696543655520679567075340992378017595472570467183041400260176250427719136970670310424741305865163123313141970980366927182591055625113145555431440000252686241575928644775558061460718755193149636560817023840068941416608282829686406745578226228441841285192959130257551481181295816670821648775010738327853299376671007756290748364654119323152304399932752894629196717070949214339357581109954294813573138079146051807962810773803113138275809351514115292969358005295827842825225138328841577850290324454380268555116351136613373025116978547152147961994224859485862908762415939418734314098591149622080797652592788790240015432484119969272067942684171789481733293333454715450244990186081338277931253031414230337430221916058577250585566430541366649981798760677557484206229343456393957754483417260482998351755455183092514485957886730340954693661737328670578066673295562256272072999797013102096158511391212798001559554778144031434686389366482427910103927496538286439181817556675942661950013279157826764433027311239946484407353961135223353189721303810921943007102387439200743601030496473742311923729616191394739725172650391957389218568369873840302742415995093162018656267273593449186723996099203701837702378346268239511440333967873767224455471500705732844657945901477678678867233537622869898230293441919557356147691380951735870909624815049409536493350388531974793979744400451471354238473525594230930513884654433883284294581471619117982980485695541374024564016714378318828405836946846116294287847435809669349197307031026105224918674703958967122695592943787959990052638348748030405648817220386608124376629648630075225986400467292561136206705358140714766179826113340967756051214119486258286114170103420228412780700246662341953106957213532637855389191475480320486262683121846850830458303186593763231351806877839692311734819609599410148739280525557714642048598289713064647428512180571428178840937989020452494616261350587498627366851488635540043045126032851475066759000098716346496166906977292334308831186130466578184182274739569070194766050063259433706304053224926539508321772332969990587207721162217128413134771126960782417316673901338843277539395979697168189944995525554511585123904186663920532416977853464320214418790155986622296998059968845219856717845107596173707124325518792816040335796850584087960173281191779181859318268486525134709055341787563701066077454240912008602687858353347176299336905700875780534108334157975066448231311378181312640745330370822847433216667643353512546411317201282016233076165358083901438037944293608036991420481039126726665599151455034461822802181995570704982847703641712114827472157868491613078087402537315635675674080043187261511659247025060618398372278759775249184815577839092251848660522980673310136958106376415078191359085737029502798743568670702268809429922146151733808581003699513731909224393656096963838925767533136280258388309248550759266050437494063424481904389529562239280216751801736088324082423515861836228353358518609432643374289401367907600827339908898541363881219221721223338386645180442529342472497682061621918246823909307019030320561971012792731898084955479178424744253358656216382263476840624684189162758382892789988692222999316858590102580903467960407039440376240426274401390362599917972767462100611450966335399856607009693250687660937762754185771640450133422790500561099048692836408043664648892042297081753204523435675407348032047080970621484635898735935352694371706276288306755758539885909156993039802685464262554133937624420067255142981276062789328855232812683815282063494843927837045721608067292737739678813931677413200220228115822801856664620877409185725992743209798832872654632333970005394028744932115720339748224167343904211158035408274601108573655886566233647655538833430345202084932936486000979832461019980566368072668701574910885241852506551295279839402808691938949648353102128676578409091183417855570008070640494237254120397764742162570317421486122918285779663809102448516121618879528925083698463309882520609805935806361986174137330120701686085247895151852344075539038891832539440183931632048064430003799948721549240869650768086532662731819556325787944176358897961554934118864712394175353959632744425429338509433697448604136707913777621979164720997982984686885109185503539001243545511169439804894819643495535834407648955474971345073704706972178944552921560666262204304135713117991584241234502012039933089838797487596611906838713927890884833481501904164802039706583500046065431802714185026748789135191378680979924465701190877974733908005386375121810946854256884382706358278543416628777817816841251580119198463020218737023748486694050433511481375862514130242658993429736635374272099026356400203954407409997426065693204175341853826745002980879137608354852929145409008420111271399653010562904610750475431192081176231370412090994537913691316770479709667583610002165572060141106199030823230685580387858216312493759498894802055320236428679276188460967547694937177596088186338866667715615850338392070853118198010673775865603274557920838899161087856237133051935187356582957705900479925925184866267245059495303561421190185863902172213993124766031022726466661186539951108017738444545088039698163695472643875294186231840562155097171190008755557089666081729629525581501733775026316852553272692688630758187791221654156669779304276861681406602729046566030765884154335173955865460933709578509047807891913412712228397080365269293843738467723833074026113243120418012214288884442534472677082657221119211840061318462382976728738105210506371132807850696313286324212307400183171261000410698250439038356170579843506247432041907004204817600896935699667638339087986060016485348852371625405800546284524667061011293514795271062822942895713699236730379467388186435973561178970198401114188310824414821628542813363326131640308452503824128244007720450853324282741629623210237467819228423909547929987980133622732258431590093254324538557037663426301652203620815649356509025446115343886287579554073760360856253240329440740581623247931215903171082387840573535996647492890308572091430405669934267868731958094811871368204150382200586333063201869410851097364299269779629883370495932759147816667369732248851317467186547345977140643221530685668385931934617099200582020423375170245717684711259934411855805521298410451824243240938138501288678752959079750159594203362885326042190426845043005043684808247947362348452432534079251269259607822833271090722206688772625153566715312352925066059849856851417323107203111096271521475774821080746810263300417158292172052871241629191106585941928577084101813704021365701726435542423325571152030459834270793061731095245996950381416607471937255199023197507618597621232687881182325394784160653978461948561028727695590923008075038304654132807563524898017002089607629705932257915816845172942890856898399814244883858584395029105999047236268878445546813187625184909329466266568507015516022513412882585264742268783938098650514755057458736978591720654573732131407312681162633515232393962551232850573254088587116068395928588433499603808812769951169355528834637858046233114082970820653278443862319915972860113217584950826055347258732026977806718475000555554763573379246946773308711584599684779219889469471635112682429399710558321569086769633168168897795111346919000173730011886944587983530005708967638278552002500453565290044300316224471044082044293732009075847130135487858759073608987915706865013738626041666908151175661667244949512784826877420663428404143578269886154056510313322857503894116074195381328908910859429700747418284039964012038403808335325220155683205633248140643656686258833547861734712394410944441270052738670146134793124388845336354778650415975046327850140668614071771754627614784675476494737087551160322814563564348144077850045489949426953233342524226908725734441002503794817387027358152250376846747221662340882359350701508374713684714462943979451822950975491577814765109621325657868750497647115198581688613218593878556607855857359444892453073604740843303219167168997479318192934334409016505306853332464523377815019179760079406022311359717713601307566116108967338707474267595679383754836711918261163511794387410405306803068660929043522051042349624495391933708818021211628303701242369063320525754125318027377272039353901655815076974294998043378147662786845348144867560432160761407142879953618637307720347450553860024543216826906398173810158171193118591444455854122385259025088324042026370177260138500427006631900750237610239298092210265358538356455744413163046573900501694304001750471266279664002116893307252218055457640119808234260845254122488142133666380379716130881636811124476337618105137742993807417480899798420729160783277901582095893485803015257617798118574641720123854433344564455451951936148964949651414076213736520491133949966387677488065985091917315588551751678041523137034207236570206590023527591977149104088849366551893156924804437165639095582183540643603331486973436619509405646148534129841607393872694580366608564665460590420302702201895886037900462730905155023080801805288168312002916840083982302545527725415382017778736989421168652879485469730685523345800295949180424192189347041779138090431972329453859185432509271297991904038908936940539065496159922743210756185194486680466934222019665875343238376406672248499363666185303511049238729509515108249737530234709410404441604430618997213600115736134944996505480087426518154350013898306424649894723032141124266384371219123468154257642235835596866408573023061149173798389277250608967135256487154517064983331728447538038441707307465022040447634675240624030194585165887547778781399155745427300284260072985318482893387606041863102028475700951258994895582425064161382664339228313141892488452153283788666126623724543576512917793134524671662352070777042718059167261303965620619348659328750029976916531435315829180510759658531029504647732952755226108686941075303698292536589644776426463046877564893220064009682941296327897219708214111586050071588566941372708270119018882760119698020026788367969609265475088848475833531375414041917748875894050586260879695067898362464952884304888476350475126737081316899347068437691393739165267682659403456484083304924392945781198016507233243050737421844831640706155066681379297702406445836955342199294765815116170562558354783715145999867578723235811516913946081535880932015146485949160519431825012214810978168401492513479984274912857222591051567204642738367725423119883602304210942450006688546940440367971062146873226960977518035207236712023821354582674210994130659984669028201219761771809148988629027971378762238949989744275742642659425705390632363570443865255763427759577372200432641872530147752846021875571398972509694204541284396616985443375423019944040155142457895558470313237858605640340677667899378430478195413598179562804516071746974206517892897168186929219680455194256215474534211004211350222493850689647328305762590040982971717318004744251206912003408746403639927603484923973698015662307855876115265026507989769939818902200283862980301992152339027722690822459476252274082323956788714755632157453191636094659472433924952926558886941282188323448738148408946881618516055171978516237551168343886455430411090497210129668573265340028716052914143669197791564122625899445789537187573520439260959352505805794132420567644345972235117804572739188682333902691433226966064033647358869436921555065935419376942012736894519515437117743071403753523310122622043960591376060581264345849234450258933943348565302114614407065811298333097590975924130848083593353868090863111413298773509928122336081236607759605530363559486574479709782781835792868198831640177954070646621512216253135707875643110561328705818154635368085394600682838185784061594766813151603920859729825435217607462897750581236824603418526971237461516686096957779622925077771576914914097365215035709357630983088955194862646855398964968360590443371943768025074480910700584841295224849359314796511572324880313094553322366261332653041975742609193703903355245849189394136440865233288971254348904171335775501687843863832661069613086944584306652774044689945230933272138561901765733683768032734976458122521788197069056575270254911316904250833399650032832726946563655018618430457873980570259103529869496054212402125166007427768140278244300682954828867722837097420149386942106508111657932833266042670562739711234105787135232655185816515556621127816248331723981183453797210071876604263590627515567681807757537409327588070017163803325049907069950524962234156650794933722805170458899206828689362437633274634332981326481585001520254398336720333912619570509105160673839105330328519867401985703557075530073065960694713596504463180515402708930509491579172485164244204558580431553748080965804869725162611999138956762680668909180802059405731295079744306768164182050858973811297023623992278626717236666111477726398130721573032746383119731323738952042769474490805572858200070091248930064538039392590106074928019695821447914220515503414489866530112737285521329318951209116507086195672813233977198882666443595885731301789763164230270091519680557330809292998402228021959768222232298311029603752543981226265876618029281036442328452148638501548832176824862786369014894597177956468335237913925535779795278296240398050024410304298467664622125587022049367697843318096910769066795618035399036273255848124502880562259690819366781292759537951720402063227164708127532376294223117599625259808839298854961020788845581137801793122380481025969266221708237860557723115995655501296450276372370691930452480586298382904023768675428787217897152361904850487540653664461394865144534228267570048308396668586096723414075773359497959826311434518847067818386926381902910490023860773772300303175152475614031804004079937955250910153366974203576716074664488079191386110183487273703657242587845111682681882285804965655336691058371433062986694782894590139861192079643667859849504998248189664570477644204033383966169293738440279006836396184090777609331010112162605206107471472083204270832783467177739035453077618414779805792231690144945815601560707172171670710703991835399131815376032951980731856008745947306596846913546614395926832426615096095924594261132326589988936612016651084123828690006152640663739962061885672549730558093764793134656114589707953475396340071487786300066233025212489111170607336554939792103974378511432990253034732123919674372051382719274748433636972313738613255500702372346867501633305224961376313822756408105681607466512136439822903704650495479179876827611165461071220116387312737215644748079731612396393577185212160062497195192035581560272711934834139318643187104061856827283516219700943723968330783132722408539201180421861027538586575539451411008815990050990837938824458835156317157387838147050974871524528325927549435114694476051042165974737316564669005475615165117198390742596171168177104753560327442456786226585294385395559038607732126822593783431301669135748179224872189343641823295609555465060269105351787708714150965242271665237211865877471905653300039112059034585718339473482191940016451008141913014352893779649692977735121916233960929211413800283744864908715665268856888992795317401256998516546845239841547085137201569116114367973240451867393719299687234123381778271185373225112871188576040364463491609547811731741713837182339160084715476267175281746032762207557347351725172861030681555692563232667915616013176797546358398701399504830304720822518559319650496722493034466058748735702558858710316937842142082891034725341136255534757751452585783807674065304785672075868195320137148351197051500168459893880061015740998231422776696501838145884930596324280240452194472762099791093036423135027334878270061083263878736078234861415004045787162515475348971854216341462860100534824599506860360638794280677606467718679766355932838500058261732892043874183410914853729136965233938187696440277030456552686876909331311636754245604181204842270319989864229917503910446255678716739998346008172783793006817439341368096970923715573285000491787399406467303540092343126182449028725994280872093043436518489493571114323439329752216270322911776021276931729782933000098776676715509745164230402844455432989301802550898984731190958543523359204730069336627507192070525939448953397057486044879936990803978922035587158158675787878092499138181237306122362246888687342665593555322098335014734442229606162823319246761276356389318319970415866646887464493680365807765109380900350676131342592319225887540993892196690855122260414476739561759240420336083109629999427190568659100975712325683602963521043546673616320066003675860913623758605055085745801263796968309709674147461419753345586432538917707406644009624657207900017133277206534934144342361025676661046046328553019066451353193301344219090988825664275045907165029464655198241777942900080989179105113223099190039864758286362890241479030222523904089010019895235843488447363522951855227322108094360470075179642078809848360066052020138096107189657746376015049229045475951437597199465244602266019626788888003131446739244927855973994798266399703072145783432834434388232849160678945868761442315876648724110160887400758059548718156281383737869724409970927205059842428003742554143953304023876708106147166153861459245344566222726302919476355458125324746723090777174699404145323365554450631565859183936019321143342924096915445571467096206477055403059087874742697295224918676215422631055422500456869048102253792918638085918867470820144528705196609185050528830252493483571837714203883835598391683897037433759289605251984328403528035167412630149770812165906729753162287799973307862229383763538100355921470521409727567404788060076013496297902125492014359684309385412630817590954119943736833948390317383834533190179034403985637835733689933801932444964156200876537472438965010524969630761088305188346580867478871900179855556055391191309312847876107392254093422682830602809469675603188518908970856802385976481500228246855275557862634225981561625818189937700857798050962321937756897038240272233368749884132325688529831389340086219140123965659761344157684938782923006665702796594536184124846540487743878229022657760108454252888622254393990073096058714044215307645591755410163925164638872620905165531330345578772353356649295695761781636003688786230428715763946009144398596828681355001742886966750871911993132138295855067615448683153873901843483944514038497953979402487091260881710633182335956441788548716321846231630260735963264737768619206836826905160469028005588750426381722465298562041905128182950708120963457285075303279302442303911947250543273881893977475356250508865810990183105831471624231851242460798874714847862345191566423592589410382322112143134796244322335078240876541346823271680042833777097452510968144910018450468244935616433458188940807349406330531783484292343614392542985306721180123749027549536889564233752416827823484484125816152593458178258854222514801642751416452626205929710757208423382362866681657104350879278863584533724220168839247359818561995289097173288864126721401538352217888561798694799426890501133705580045001196585335035179222903675776887599540581432189630196950798778435473408804428141970739133386174876972048811651349626332184393766568034888821420281542686330424888564672877088891050985877641765047832807539048013979093401365442791988948008651248820309829012978768996256432480397387963817568190264500152353780978392828961686272919517682927895222949668522500547435881262081774594890335659671506026933142745443879076949365909012741747523556111818001190089997412898899213994751521382557730633754955104820922547310587473618579964498380318629191420719997815322136373552031417072783162689308026234926097699311248361220330219952201293596043010346598780918985309601592891993197064224132697075920773582039956379880863525408467124967121418935072435005916524947283721733889181481793584888753178451082801990903785104235859653288038103411253393754872613678689385406152856303918415636182100118787676358403201324133142079318783212135189189485637651972805170313252051521683944537036615192568562266613893470999839983331291159334192644153970849193532610230653435284805945059805134272114029329701614937687108679710816732548473403556585737963239965719830355813938864558257207923710417824007840131077315423922270382609389733210667374619819339737346448223699728730661841038817328464117195645432097554142206782291391088269979764292640556253333465047906874374727848916673041729955428029573334129068322360711238193884537267904379912420343571505187701228657134569723834500570329858255297509096311808070624572509004853848516822099551879454332676769034787440977590123947861625948237259565624109642439026822081099840085600897919177408431772644673603798160276003975305019994177387947084422176123365579520283241779346942055963783063002567630457803798014974204842066877101788528824811275381244460547488200270526478707708765610565734966861804787958709833757688629901027101509498356390387691154707735882584878412688833972991764878064573893551792310671378638413029274271741023998807567860028020849231940335295551300014281307805544378487432358213940993743969876486704824438769521296950296148467121641124997069293323031487668564595241538638975953942748744942722877042780051003158383564058538944330217372472943947253220794515174226885280424494149502174136691804542429917188175021783210044800937500822321546931958475649758571005818479821610374051722685662609051498740543632628321422503050530065822669990651893062921478016856843306983747119827554202839872018127229999568572039485006575586067246662423681355857146419026596041157129234472783541678963449079238941207541756390860978021448725802189546520556832160773421081926512659877357229383022463159478885861789093487455419958988781657091021566851354108513745928569959990649727084070727302562120376285600078505174652782939429850403874014231043337607411707732766115471237481051088680436040640672207206655808211301955302598643382682024841968062380402556512032738531569745976104743959715059892555264784189452282909524935716549669159012617173618787139635223480274426701372130233856283833260151354944701071637850154690357996611369926731866348274930193896736657857990475809669858170260212550273730386753100118483990052440962251473727701107905119249229773360963558993188943310767036792675791405331237256063962129132836276565562053352699122308586868812409813647824430232582406185617525426896762464412525325195039149566997215490949517702902963662453436236921095014030639110276596932821755772949999684663956024664434709605072922810655383719169853040132809800917493182937424574231197040400710697090265672580739096217008085700754811444027137963050826928092730350364610072868555787840054511684456690884753924848588764039149124216510614053577833500664818854430846228105506133729933875751315286356650582124106318192629466734202428468582553812112753559769278426353494613017418764610417110466963046662069302236476787843817166452589678785445554749437721730010615763787587696435980579326713167446783012113298033914432198641268744288291017821361672765993392232222527581719196892563987200113591004500364307918177327538047883366408838693448320246677434050112001017707517171940027841328439504274865286613091704594595881904598532156120089975720374594808502959975296177568993597525144538974066265666633610870832661298069482660630588753145553776826790203453024703134805809733467915780981680319388025432065933946442497781046932524337146196891182187933996924558146728766463822444430379383379043806036732228014978953055438908927768229214864055739443045245332873168867145995135525608131200243735356416457780082582974334720170149380881024147685576723829926709845234190799044981051260649941768395699845990545829751940710200997156579283699313837878683280806601665537687208040159751115665626049107793508228648985560640848026198329127656181659398743679882522947416208883279166943678939278572154889366971272940445110027443431932502937848114444510983241784481395466194747396986822717750168732786015139103612403490891394523548600294951222507332495878248918637338518247426040305215015491984598845632593001094137952336635177336383420152487984275719823485385377630116186009097409957425048503517068609039737479175639182427047261174887269220342125435449690609760734312778237218606865898398002502534479073690256250645435426863910316196670651990113688280886210957457846835841984820313678772594818649262521301207710862766009197677836618560520923379074765431039276232943074081356415284725488912995803604632437694734043164949741372579211103044787266379001864743269804831691489581257145408604722151450408221067844914938932986529052186493562039936005378969910428382873402482945878674456500298213695958668514387591154227627480859460456518437488755821092946448114416054098032423468550533694827969025491484602295912494993572839909712765859054209637059485777979455599570095678409509511262436309437545649067733735296912257898473113568410775930989916061177332414955018140989604827474772539709283401248602725868972124405083536739764369324452521662739221085707129844948087859197719768217502405915120857087434031417046952418260724734577711806588089491795861389225092917800976059903085643643642670300189872063992823171876613682784024407938902406228515642254191289374191002003663987551581231841117056707536819847902448254227747842993337413461978804485921742985090889543648876203364842991690782162131295268495976699200407371741313639571258927585716725534060789178774386031687046312022230417247869155347182150504067654998920121376149429681587336845172821029848184828067145583846153621075055099930252106420377166470522918393156255166791897585520534747176031627302107259814503606550247111786059934558564793688432496043470244433049973477630424642184809611445373839440177327234947115782207393167377674686347416550583983723410808246677258918775916100255249626991217136821385016399861698897243941333784573173734735605769567219648336982765948265551114398041446095438086215066944294256049868081504230234466125268016652300386428329589259174828213699992407778331082703341642206901174854880207580595321702354003229869087027553102925470274776650207831527971992090109596743810865723260588952641588254172499526304264520994090719992348289559178947557836377017370218286614422732886261707321280916240991896745414966912260476699941149137957867073311873443268136987423039793019444700845147859713685153728244345090083501361238052602941272529801784203603926150607105982776239978727370861573472959381667881492824443984531322565632969080666266932024696487912150747365213768752047686155575309363777166920424339312675350018377682639046786695502930444877207396417425724030449785927654935334237276341148639583319602353761593336969643406988391417634499001416913455895616222557173262813755130532393240009007488308020490370092512289092595309963442143585479289628504197349091213591427830334729096727279417678195800804945126681404430619177222500049682033202102555383310482763503749319806515449642986658800062537934162240100648731245676350062995669130171710780825670916332293662836070862574953454462469976199935556605298972876193745815485617898308608454880284986841589778386839236084667037689069583839415535494348779309795425900021528451409195199317901114125155310293814716339907971210847416996393096375088932255570315190718857575665542707985126870948434295955586019053566726038483405933022470429538013408993109213591305250614326414768883768525396248851165471010314870438699890880426434687276180585604663977443292261251827774271295059291756142669562989348910076767047360680737770049026321099474107402881602196432204926317664920015514995817658167046203163286355719457455346494296960186494092336856136857211362835263130491496169490222904319363609524428821716050901980846626917668330929765918231772607977160089605966539662939645622390889206944539242965156515773882752725582561086239262943981105589671407238497650224096989925222302626089311030250586589156761178401660581054512758774482462738937716393702271367455440643280077978189565038190077637229957113742260832580081171513953807586618720344367997955563708256461287859765983191992213766983104859651042849883537781440506788644459869059785399414353100472715257651136023742983950733538878959297266527644302484973645231907722558521149087984305566328024945035191405286578604621274336115741553410185277041599661277639929901473444470233270372783430699894943512986480148815356040014147111692774529840157944316658249216577310245536638940948195050063437739716561574458560558106283600089021708386470327452957290907107900245751844045260567042170805119196073447970695355366463204033710033431208041218816435677663259660578970453695008130919296493067500933923915519378300461319682212949489134322620132643111302330848295924657420551200690405125452575856336950870685950318476344256512810421776260097253209979017573282207905778397338539205533565272158600984737756740917261071180217422396261359168223170745970615547290242056573819105532517375369118281809390950656664765988373961954640809983406001450417513648945088529186867504020747029363708619210066470871921328610297848204511228044205325316818716948006758212302266194257264578340288624349585296807722933727957849561575134821494609175470826982325391407331655302049698415318046558297891187395123887844557543422127553655946054985707384689206496808605571640145304291578348702159619867981150499343775991730288814015801563527140254860974581590145082543001896069503773978951083676766236835451929848958819674288750587676672453225926391120564230821420895230208620576575500854929989126279098705778496319569594074120407070424968328952961964844184797375896773642674311918162979088927980337630235765330639395911324574828433200566127119278012195877787765527057381985675673441597690440465233104686662964188093506012791059791839285594071461684866491320800816932899614600168528162725838881558020208589107351395825550719735143079890805959618272720008325074027263163992697896912159215587174259322480828421245685494401450312593316009733905999448613015359977858998726590662421994949399405696430387457324734193246025275969406245958238103267235143628703231607719724173228720421826351366510310318021561662466987319382831288260584339278671361470387940861187580365810434652760220102589909190876520023540403511701688598914363509901451492796890072889970506900590841355117154104914970239663776229687198691254044570324274007015150695234385196840706772082644789122950437192281845700805054643912082642177823329665959138148338946564434025734428493465096278151716688579133439886074186211625844052031129802870150549575710434333458406404930265465755047370748800964165994847977450403216137971737470152705611432386635917893825457481706029108519622185195634359543519010478919217403184666277814304558653054850584903007741967572996356333898453836299451788396449799953886486824390313895863612693579612717676203311991336345193074692616033508208927119098425946556436518209682858638059432990236521452037129590216380495459171931094139504756079785717947604739199175034546600521897374509174336257960854641414842498332232431682953749259542578487680912565669858350317944530115534546995836134100132192515898503637165036855747278292942707055217297569773283418145778940588173520511850607269348983090825610428480225918507000306295466738000027344086351626446245355444985341096733288751186918632653552821964814865221867692192135319659067753468058953217486614890679333781827871061990189922820043115303459224626941271830512145987496550298027609358596251204733820785392699707821641514486144419088785647116245937916271816318421297324185114135508696994985634175630089005820818641574083812318129950285917378077146617647488377859761756617988614302615903620893197181436457676380946905438514167946881545027381437481667078863189799216041786910353457002485474061967098627740228336872001742452087979577524923422948558061328431871961046465520020154005292154030435489243528303219964868028837209239166992093161588662421408386002292964112819258546222384069598101693677985630087923204334509207973639756344423400125536561951001028066317635214356683498371407159576639734534372922470423518946193490390064527150492078840108297944736819355322445862325657921306066395870785939799531436790285780499678017762516557889063572657229784970181659368559988175348238701042220662284511497563992930630069145627054108769370194763423850296521794457005540404919226584474024917833987273037572869603730207049110968429317167401347936764149207770034555436400424944997787544698850828633481677163800101905349652079436307800963774793824201816723958248556200636616274818575622091023700910429487403204868656753575192601064743691634201203004917520913229700053389499187759112023468289202026380363151997569268425168602737349814489485192974886881550897107558166444196876514324822404442417614494417956011884779168208679816844197434308751777351406015155130412249414560362841507353968169125512564011741936592435144778425871674519738393103527429476130094736143305046027287422639169630563950668289751192769032841112129299903928615987397364054508803870674859764768519807310491991286362803201215657029622403784662687909285194667878826999517226057982899175369564661465331016441454860015389872266508726299066790946719696623728650041866545366024010747843991334526426757313294560734898014885739357295877652182279948929872295423420970464644451228399551810186912272648900825141991559208693475107125304178261675019441757443532340438435665534274193925490694665141009506699520499667152710272597884182999511608209448207167444927871575950384395593284329902261617401013259587002663794666990579658634874437873879198993019082338938345565908597293698305727505739551575589746937013634474685580527049683407745458754008189516548131235621694033199264107460665476359007884429317695736644909184774788031816591523161141448311853677967627462173710354061918735670478368962902308267607781485672540462562097338298637420099474318218665067011074530046033473754278235647212036047484131505257982203442950666245383777147926004995579906614345736776416740018673023639838486667209098406477653569653375432711935761889290163893530073162912812452852097724245812138695643655785669666122521065219882787152860621841410370990847602623966817326707222736908352977981187447706117347398372190352849046160092349872397491370358701715913016058374844845287885268045506844839971996779575601787243060186455016121075884162151653866186803990087458055955750644673319265625675801619088133551734281511213871368571847734690882016559646827085424596530541607087847357974914942681343239180159084849141509244620939551828273470667223726596039035889836984493055283148836976572200550026268409910141371396264331174089816317746500131139063933957532424158604547933205574768544865137839032698993356208932246309886359636833019021993891746691916829974571399679642032457281063327317945621685925863048075139574231319498496627424913714274650293180018402477054942047806141931970654999422321228674476647630357363007128296574153487935126585705317028043200390188474450700827415383517665795950197578905001285727237578424410819604692917075518583741598824968061373565806925356144607329076456749133371478718469505272573167807475115235751475652056437854456824462785052774177895400856567392864485840203542859899412397264794157701529892594669320998713458454764183986673177274902897650208141411851233105361653123150621596698667634788651496071494610833324720899929630730005292796370541955837785126597493563552154216739671351127468129205395801430407660870689177865817819935587215945349980217275152501246034048288872065595319450471196996647814564707090928738980907878307403280592395777736553770491950322571036825983620437339876791560818698150481714526855451446838224179871013247885962826283970212750034822279465884735906946700719009310750350860368792351131331915125159114515203062773071974456504759258892059007035643637940011957056073588990927603436848661760261535050357076827598187842808237207131348138032991532745737858769637727940717394972692004579839241666316315745285955231352793616572772980874665533513176334880122397255486788137991474903377112031195064401027876087084463440533085403033659318366748825582165304878404891925170498887588039873630186898118821543401715927331783398918979398989825025132099896947751330423987629616655851770093429785666088240084356684228018807026144815348791317050153895400527238716647263061009129759418454548901102779998811614353451813451276483906907204893600649230155974262781092302582774359542751872388859853222823260058219399433332126419848265253253965814260010385282322042009013388109404098072097383264433044392748058128721929292098119615718652290799343521203259479647687411540946383026730358930673596485132968814353192079002461485319098550935178948417631120828541124210804674613896474158559271794829534676910416493650236034586861820009334171673235080522696669648846689171730595106774952075828902285099681538364491109242138591812371349784726644766122594976304039835351139838240136687632704241135832103201827983978184026850434744250128180519705652684742036369189167853093041670189387093021933139366469822659599774932363483796393698918223454019421615162062610511537693382591873776736464978780457621307354697525085280393909701080315747971200930846481264451209282085493907437304947678664619247775263393825907716756284629767456659216317192722368599795447607505395555633507846153080219769491099615468683175056629726382102696083190497616876235477883081778360890462202701840417921401510850212737615519914064229886921672910950691948967074224385511466466591803723681744011698055637319911807857372387448288247683738761791913199434516396060990072246874119456504059362404669480235002061469504312214098532443771210169473745628473195715650932225585265573139802474970341921861068292778017837708696389086237760091160907738396870595972603504147303261794633495319621075945976732884737700888458508792187124097860364887449082970934287754328871775879512240815860348048394188588424538465619163843693011382466368728207289353778105839815206704761900330865728421586031405924357309571511644229235868922656304195132517714198523434483137002892836326638302953511580653153815535991984936383959929589796188352725079822326441893662007994161012137568265529375079551952101506624840808308571828683950761753687914407126523485242006751284730070140648244710381978611370198561173494757950496939280222683423145677452881101406046207729998436486494483757713863995932017639499368091373917012535706183152597493602234019153644913301883429388259227637853433444732256960364230410924767461033639896865012955590291577286567165511504421971319547067894397372644056483300252470192158895738514101847773937679543008065022427383146106783533953959245134428830274411072140948601230161441738909296383727534232696564521457585931567981583193440343734599954928894152458975740569487980655244015126552725365305727320120784506794610067487309631544814153853053783251724453473490019131781895855275292321511777454198943769127350616824310920386115868438993393508565799741834105673415797590793779388309643608741713655720473467678295481424516371650795887899976140086953770659777298863027952433772408733376545359173439054648841488826910446054610082510322008230971471634945530913525765105924138426106494545096504731537323780498255836505486821768417668780748492510576332695596638629399584493606641717631965085508127135330937154978626687225395356201111415249245174230055915503369338681711347086863809320940890234870487376013315560064735967600558866739322625272958498235103919029800133119609855090278427086540804995337329351031899404978507503219782923881124984872777875664550909144271988494917706379000139687754804877006592050317786622669961146175416640883469011713718586683264425809952835495031789949195307648754759855935005699144769288541850448438115337465429678951476870734160146604477395480962350802250077715262181588652876997839152952333726051340505253062558300224450116173160026758181382922289787294144034159750985008942912879023757666726862171938629478464343816997653206781405407554132258632789183028885196329850908295614295015464448790774285399973078132955102923018573815896162040721434262767718383360923366377226802756352975787522073392849653301270462147644068840826897680869781106979963919557291192374519265347886808261985929669454372427802957456735842516937163124707010091508114310909174133691149851761753428905175744320136478513320399741899165842020647690100258207689146377171687326281889057303236722403735115975904592522249870723332516798963832446987112517744384862678831705173828805415225267403068990892347132742984900598994731498811146609675525038007900174002447548474157593361238733858372508133456984317533678683255736482956912661185282744566087358773371732990477713416559887666678291729163295758446389593202125888175999957053711218439926035355810020037016290903274188152210337138790863417586613358966186521614445002909784830082201930573335680083577660971605763356930257339642105578794771915987434677966270326875939358668666411319708261351119160938226672724258814000898297152558677515754536163723244039428268360756231507741552216356382500015313198703271269477745050352061746356669850063883006733853928520017568218289330418262302510423765659229506187553243917308470771895172592895275522656158304850457178851995361698616137576477431692707340128017094090748345942661697805619075732257001828153871495713364544114630526514592492125770063815193947556358201048016332212779921723987238703786917455885932612238222450611662600038297018099673248225434601097584074259681186002367412435305852036413289932998461323128559542457792131641064636916731530478856003649331875747631287962640709926143059337143895871873309777420098443621560769682706972893278251447343519177344870232268488187028269262818087610300927460621954650597535676859396403097558622538615941039471698054276156809028077013185103571068081952931583256425774764329332827564674056046329122505247103187807699452693404516070309211508633182172233282485256057652398344999744581569656667250991160721137360467558332140670893326752651814437857816634603751327916733743599474545224805951381897114762192324140605496195496693709050688239796702702932314079246422599295137460492898116709655870191474583085768218684338227206094397107031964948392896646927610072901008794117738032684368357153494614582955378549225702035165395265805713215095854215309891309042677616549440687717951576206907960125345609204187060953778292994779463293646120179878091142093148340918414468522111344885391115583823196569577864581655771009504409130511293643014702959903899006835176933327112806087594813683192953700295233623412113486511652654256296483366542276381802094580204516425932581764368632227936413669572937982764092069645543379314911116160734530010522829875842141755761708467441801093168969892305119904324508265013747413139268077627038005977795515536990978381980868146201976215800548886617510869518025721546301420620813676610720105669984302204048955061494681652046930913157103791504483425991854344192633307293900431330129385005735108171830504299157433855108546103350601107852772038880265273651602499675528419598526693559352579289329254035970963483400359265446006618325268490850236414184375218337235074384680498289085657489019352664094071028789609226179246534279989890908426173060468385806717243545028933734194218610805992567454534670271559116343410021980512961048009986446044583676237057338338789694542509541577209912866972166581867998717083742946571279976676849732536526438798005256384894914093411641817682900385486548268154927710819404936451141290599937085830915278103097412711692788169200150861849361366881687123668549592289887768771081337580162057012970360637153963564548229613229458020015343057924662379487373344269650570640713081899925000180772207641044909505426061875095979579590826806562050156720090160982338834197772555680638840205908006246820238649551236999818975792590437205714447276577105668519990176816132591282782109778169034899992716096477209858795542089294064904129593717459040795484607053185068186087721040582863170019148610232141213282397792971109426579044570469813021544984486058807013154760023337260159479931061195521336670794680413558091122179313169669121914221825669236933872318398247689529616236022972976231703432785384599117475279390640193199773691371843920228977933566871652146377517740899967403370195817122076543979528069321633860561541921291628344191753245097867911247337682357847535374481516408809080504661230524202989049584797591997499207215781096860334764531507824757962581293744927741796299150072613382425358272156444713577840468169427249689079249146889043237810957430560792187029623504894269548435552296085089880843587405554902021291328680912612587213530572007257365904404764586013412333722529870192977936077999070879958470138520459460590499198300577995633826838167561069630407780270612230069150981580385870787274442394186884054115954438900316896479772126936796400326965207527657446457691275416293083987157287273297529154441167836623649368653111290876550885786091142198608773081438270703813985019015244525454313646872875721465775801504267133746715899965609648128372883628220545744819354467617233845169663858034325215794655538125361315333715039756491871669048894258642535075360525200385236246601043158388091000160028889355464574582084718589143004752735436112460978380539797264832267401479527549857681850425372422708878591814886932146839826998448004871008248459945650683198634216896650843028846007426988656428568560989604584691370864535563732648035499889864957749820479002710289380324199679535106839779937372437705849893208718037916871190015377775882944499599563993603832403291266765545098296683029197020733480819090877363534769124654881685490106502563862341280893484724990433000334611183921193111777165126747906914668198071101322705113993350980985245028191550913446623292711458465582152488891360392826872514779504472401984816571168701281515313775547100682800462008233903680745354907888910809817659878539869093979847599805969990168474451170830478925210293423765555433036191625608711275323576364568482072190597777289106420073786117402287224351877141911842746265948744734465775968171603348243717941067546200035655983364129777310314611040827113007543532379196344955911235422468707491303654898473468306308618530191304101319940039980152873778008650859418576620224100751249340958199214961423701863180285489290099366756712282846008724393245005686253426614569484368954962502853044789678940427225400008869606009131530489424514638999515432815461115110067849829208958873175466344861721244294575183486148707635577064121877005089562272813709478390452731087623748597870866926343923237923814567896468026827523744127290850140115396675470204191686591211131826708869790086214936048126723002400525061612216687502037012875956562861514475787607589578868119125031499388382351608562901083603404202419124570343193981666272270532352315664938329673911704279293047428331620557950198501308140561007397021842320724643000792725548848152896589768260988720071967721657370545872435571978551161837477106942598140851682075682348042153964825377774758472353496470598525429865619979359707220049094895564779241831218354935444061890045057600084611662886336255006433246446269812331061828658674839051985115519868478891113770928783781460214404170802719850752946347043143458926155062923501345052681956764783881947472991863024203123245454901701952628236942573943608997665030760123119846361832185682014699797746853019523553607654775402011930877511020654675281020060124674423435159313891317433861557458065307299083145788556742651471574796019762775380861169094176359719541528426303610970636281632625020020697420823930569241676116403432403359597429602082219681555041662180328760941764746922935067429182052772765280117950618574907907652238068641856946668691652536930684346031606624015626488718592573689084676625116913508156674200125241849670350870308072905415030535405027756773367923934612468840026209888572917011923258472263012351454156146040333636768386485578518642585179016652052808668648879025809316291192596592857496870381771108225684202331156692885480176758667487482377799673713041023237100735831081545008665216815211871710899909635029936131071663505125589973817945806628290910756487160513505429717643175277011286516254232123749271573832067022043129582450398270230350293463616534914529388015349303394413563051209336112217671130662588553381314423855791419816748243565731897836375309008157329035424553010855222130284109544223512193907801100940042294563159711412558594203714496378879592397948184828082526032350490356618632743274980811013720993939695501605348266421160800501025021859658780893584990704491847000653188073101200810455493695669306841048660380869158391118086429310572426945302611375666340734244353846427738378961264144411064594215435341138638373409971849134193611031508516429932888447652104043870977887128857647534591062145401070110688030979174327625430635216945061886477416614305426906026153404668974559437520740598772329381079815441930351095014640108605034973330906593828575890890741425994560685041973069391926939322016328254367826256487507275933066564199845302126353258664335403928223214925376487653602031662230319102973116710159139343999764860210909070982684507585727668787979628459980121252170239537037391487117012468914560251144859461641199223963423995402042648971700412377445592424871418656104297607819251009469056416135563278832410887102288819224593883389675527238766871247025852011181305573797818819296829158175507955864258208841730513206308921145977480610212258936477494349212733431718126968574074093268062306189619950801027862812047498895784745968653405428768967776097093964280818075314604203914799452031892859303832064683436864260742220784322871102250968027475764435070745147998994098414036456055311565305932262109105804100992460339706164515945726155297034257226468003676500892366743148752977984285446440759045031196993921108353015054284422986436851241635986677181823499784578027974831637043264739770887686669646034830716787362627481536441205060706003578743508663095342578839035934100435475082795104641659014461552041271139146190113404332505032048778870733678298484971611531265612224226646689567981530313186535195294928134026754816931022910156410801369175760338510320626911027233124768672293073153116523190921955922552195099490068008555308792302826130844168810431162774990831060198443761703839450312730640429161587019259350602813627525226483966301991160885810044038934192946046613857948032015589751972675463296015285392683438017381844719299520618387778863874395128626893550049598410559419223729967169651919290662717420175614461039130357646149499030934420398385472221441835791976448089523289165433171584750945155871333854331115285508273135202422200713263551719760815237268623268099492519485776313163882655808416463229732014328006566988745996080376411288468336343056676920281423482681067757275053483411423043898472243440979017248962688823938727744130657749908243086323125575241471240890531101133915620924625705932549460820837862956952507433630655149031509661942690074343008657173725164600086064291754134958403294681258257858657934876618037136586516371867158368848766022121055789054339656788894792073342507926879182819122859108363194219237556196914790578697234393290965094214441959909012848527064596356706278265461791117616948681760853052913662458307720051816744617482339291469139182830382155937707402206899456700091821374796210603083990446822383927115466257802895834762139263090610299669195889140258429325406397397353247975648337906509444489854033402618824259215113306494866080178031237050883707317972955236135633737572293886928550268912762610113239052715361817749773481732248406973265124315781211318727489721773979940950812266866904468368187555828922469250084984655366529191401062831713451681642977579680357869092484550129789195719732279023078292122928600030365983950414745601163374595549764040824823967525560161585662007118251290023588186865959342635410418040606811404618512050006888033110192801993754861603315299595459474326140243743128420065847368260903611943745902486055780402735912416894764992671138789905292340955783580872900794717303618287356537553625933751428834844422889672199932349741035106390902967634234148169798176809947145830586114679383383385423841202657286743946701537643912460014552508056959066939383879345962336023446562736216554870714879170482286038070757734430701931655044810180756542662529171314060151536215073833663543205225262360545808814626964736770351684675103880676389084704951882276947653999808797892211466466306348207661487706687773113178257845849736116734345921693843434242700668310951055385665772180810785394553460273047678575888636012545458426171941705785170177250927385847568697222986416100100951876917322840317523962238417076138404127980764653034219493171178237611958638732908118139998912646370889524334443031963997387842213147928242862499505593546453128876270553418526382933530987031380954872553560781363744256734811620079013642346801438977742572063092537548374212867158938448518095282428657099597375229364974114591167797660196955274977412700224423664133138717540756400540177887148850579159417215157853855092505981115750550433117619485801455346505236724907287915737079225993447559436931226943150008538801393650309071139538662257465310168592446287918916042027791119503829757748450052618539069630738675881493591561268496025304871326870280137562290567689789529510882983505547934957065514633600889288752427967882746526725378338075609754086192897163307349733584281123991199722705240264675188397182141671714271738462105471914652600693952616994896130408504670708425312823964918820537417314013589734581315332377592149607846839631691362265626457206972797817217813686209986835587861151292045618733013937058063143270017157890306648551564240711022586401339661210920042617129745644359775440775904396382052444475195035693046076282174174488812410972002413521788169713585558134451839415708133837656824028577231097893150956550543498251581156666202812091830023773190056995953727559840017489052761955255511817325819465085789959262075968001962239554961081663537111570834763565254333248090840695491842692057931716506770328829176195421613272010436818119237680360267774589636848796237184131493594737412824559077685646542510929410201590878135179347044273349154874051824762881974161516570678824953503034221501292337279737202129116579068627851801077201869913910296085718878349860878337848799752285238625783599753692023062883143533745727851061087250770704519991771246833731017317092417202264941247136668383791729103098646868420619883641171222668851673276353704535421587079126448181584356342158355227051541385433976631397578036988717771886702353625102382774166858666236951594992222825762592664345978882873021607720875131128532888645481125277617726991495185932906180556220404720820380827932660777276382413873524070546044657009300682338740661387608451265160648853222891511423007823446945771068037077833556413949514507319804371520115491102727756689662232526579807812574901681595984349680026118864858787596917822172390090482618776108244486443608957883584248957020499735775386044902251291840011858898652585634668242493677862976368501354829952847277157037204211182824265974173744560372359394624795271012299475001732338331066696317535039076773290191464691041344517215577754247381146212532825995773559036384483183619757194931635469299109027338314873209287709767488757722735642036697963115849230107045630997522225766718835692824440422099370580078121334210455456352652357194658042142623015060961990347186621581976064367978077947362925240773035475191011110229587338348714684887725934229083373955202041814430986137762690814558769501714643427450578723514848500432898610144985423053243943221532880007182520214334376429523944063554237810175647816706302456250930872544676781085813284629228233936075101002453938041866480023184994206718972118414883587166510294986005960117182022416462278640767933299019807674108398035766133547230676111284824837470732256327295903659294389733496820834969159667331853626416891991292120571093599900841544813883972069675609481143299556722936623420224703149923692019037286562026484529465097556116317907550725552473182275766729017265720016255670379992956321805644284298860008234582636397585894203848537799111714411030076081644353278622963725328024728129499632987399872316860485052783273846450808737202056246157937103998410667570010087834252853986229050770980238841567732220252770723405800798762108290203731566775603816504282913506179350946374548118263531651559070338940530470182981658177823235956579806441582413439882795006499971913095211267779217179215287997529133878018663488241393207871403739284226831122071135761501320226814637585853837140746860082372705100739637826647568999493327744837966575650549389416787416655077340873179458570185171836196006387970632331117284867145736863002346333438481398814093949384950854506887174981211963644057687454485028749000465664983227070471040816152129793981703851553652965909973900249202950518483759326211535728162536176304041094893724783454058419313025107727136440375146102978890058083096745588747745814287644979302666483786949502094581398934154989318136005498843583987164917085147888572230429627329066093008040874946934434144973751989980002908111607070911673883396787516071234232062952041393361938781721240738716693637514593723918498640310336990500055091767046927141423413609097748312037612303211817330898683005282156226562535378627209967272414448299419312459180873573201158890364540504017220924620372467341165655009574544540444975463318757830943853749237929704553124217534837060961847084932198134286390191565744984973384136525969205697797656006088545841245118272391995327903367412609449382493627166313118043753283460849951203067648690355250150869781421508534210984908903252767793043882422418575386123845754794710277039293151743514218329154710838161116340782417217750478363428913333991168259391806156702826282695050580020779716042275669864287153916558303661573620207197748895483788800837656071444163838872164824864616377604463057314454901049217927025847982511751981274374707949987970546136912980785042387791483445196651823458925249848505213685823523235816802995807049911676820968304917620998870219274109730166477731454702818974788559493187460496929723658023544861608353670261944606794057456775075670559862715786795766089209696147889972162719689885863630242421334644145920676296204474748039100133284184150094486195960468061248958573037166511733413004960417556781342902683382783182481336409563007619639331586485806909871645930052250220846672610419027473301622532580950017986890445669301598554672937974929907493329594720947419869068660066674472117363783325958732871707615035221115921335044505308414709985270920635704624620776123231222066087411009354529001018993275978689353112185379018320792379439285017766630299792715897452773743300297331328685911682398431678262203997760581258557925691804410435764819667146688731472589496021795962720725595411419100063507127060823743887564394912237924376525814738524014127625303329703244887759716003998422009460656464374126529266793618539262293845615354615854910939819019182942628753194336376222071995690869498994668278990351942904206438284686308878377398342879896008856360482645037431610571115718022668146046647245077469996543771756590104054378895568946910708961212918294630692996772384304790530113933445664093791451182045217601179848754164656628168844475898183067379760015583495904206063752004868516812483221998238302104693774640896909676723310574253519716903178438008637792857029449560569851379199524595605215521339814214451282273736900554646464861679098236457129472470601194650074094238898863575104078950356535408979488232916649390296537876066283309585028854205513679675979205560591343969395572825803977685488002208628970502062312240034938535862894237989365615625818432359023712579368116749102879347833097705479220706210388478830339478125723586540740125815265558548378409565420240405147950683760751502795113259592801058928165986859336505792928720243170620233310253689800063462758576525049955826857209835053247881295536527907929518542652342699284469742021320695102174724116321485336730922408483903315036755050785394857115200575965312154351659096960437304221944938145501878306392495541621028409313405238240061209748508743446073952938450042050201541308163413527508533948565031785849701424953002042732389876191198045927638791488726655742015183065280604699892598480401616569664056546973062503250657387730777904426723179831354755875269737423003520232716684020199082540449975710135414795718756503907511893802338229675418254154533657564147143941904619606640861141986508352168036013342729300519964163649114692972549940012662729651384971353785244992805059207174764924187222162827343363185375920186682236768302985744885192214544637382564086640894316229034851655312870574891395412840140249687152345069918927429616329926791378554517622940583678151627862961998084356279861077297390132101351661119976426434304852350939880458513204950081937333559231325075195353863437060297467716662138001760208914236300426811078865190735857147224123970519691489381929526553694757236228126320199928297870220325492353148703116097316822395794734327057596386608421201403903252338760415643857918235704373090460903323035570666926262251271466569633105131030166318912364470028976083555688741243478117405783406835206511350902761969790257651528411169089569248043072622936914376788817293164881295514445728486808609774760218409511674593412369231589640924351111268089086467145816794183512023723083578581271974661728916794832175288030023038174390983292261302953169042404271121559363182615785167721696329753284597786478841885751176082414632725579754277877954951159050775883164179625754840508503669678041110440791794644455800073933024099155653446426010566733965668834965772549345169928736227269579638131668043347717571649766501170456937626218418793685939132584016918558948980410348579745135749668996364863239834365862300629071988901705546629506764738115572375889984358656209855328951783742511380503232659871993350622826653169482574108771567065931618239929230275012176204611887335937470234809867558530366711739906931889443986439980001995089911820676371005052359153064954594295276084433108549273337217154033250226916692660513591175758290515820254153287175391051545224032657199430710296974471481950433377389283459858353443109007780614720742821834463187238861419697326523620203783896731675811969238886249706049315041903047384340942109008373519200909423007225055275862680459184222768564092011889706645513294720309266888734491132323370557180995176134178891081110381565216129135254772214706421028896682826101132878783848357180031208874935779542312032527766126951738918888509955063923030388919909578902497964590410806522453735736621674545705161343328245607269639216085138148251096417429646890467893174540069443596075926018383244011089997840657710976478290775890007608457214561332971383492744366134060858368149209762587405718414231977991482075033143917650143182716154692878951969642423800080961394853227429074853799486812872093007773840423845412026750412544356274957236944385036383098524252362272361359412581528607284284839359219815665220774526145620154470264869591486586182581241032252857153135064473069045215380296907001709972391465251110095893854524390524592457444245983506169329205963371541542695424409643643609590320411142465968316761300954966755146178291412325239175121800171681804837183156654895011194231639963060769121219397151631516239043368344178697081265231450398890637396720372325290835328418765432616755758434271381812209962810065070844931652156368957923935704165579076113078334414698873078355583396418999588755669732382767038694358265236848224772455565864717436605728433246167128033227539434593374986962104774516710122612990068769366438472214269917617117917674979470512727170683324990131972758032556496764952290014994440837434795117539434612837169328638069684782568580482449329009972286069215987358598321854535780139465012383618241496251233850055095951803348893877123532350875294436660696447893917712962382882886848335919667037051904739726520469037632583151760277313408103871784385968568385437563548593197749086857466025310496544899661640658570551657750046078221189606460852186174166649726317724392724014531547622094041823903048974226100661041041960160044791899452259547242889203288364261786103884183017302393098787003196783671321725598755277767155682798638833893918558484514217880694384086497400657288801876694711171721178426453634319746171049327677521625678495231215762865972555286942819401872749997429356117264945374939288402813594273132405615762296989767290340473581644698960520119927397560454610382720534759963106932469043800757584731621687281862970019185568959693929184044003367846774893683977618428061207250422581496127280063525159388871765364438932833941882460752909534118680102628674979434780610494029366932088528076223853393956873193521349292353500254838921325976386119517183876945020427284422290539775658982138448023340751546339829339461717134767787682525072134531471760966795191218103411878738853647501776220063322601542006640157875832479286531509053423645996470759521881432381491742177040975262549059881804550283909478747888588778249552272642470892673536114367123820013261776489113499023544286987639810958588386215566593747671942697825836638699285682546983011011785279127114867401193671613979202787342481077705185322933469475476404280887706394443116220302514595088200808304232589177261770046773004510947989816405374378495558536492107422761735296545849846654832415448810667891557569237258798958280188252851867583704363039958140316311013325875203619899669326573582571468800278879198545761175393306898102184710680361593833856325108636896910445946089373330917198470212264075170589915237853716518942116964892541363858839688923616107013292782613008472367612277574005603757709844314083534053445272303531115021959132711823110989302410313115072873268737032726079904089138890050789641177601499845255604129625628867958825422922112995335663417854057414886062201624887140695536357144783116501657312292078923454900391721413328442182733025587055361774507028695038634134669389599297178182302510905813364845117892810433717293058725670244415044388289853448823581897905829234825767774764836628505433223795313852931249370596935076663281910203774416075612987026700457941351030749023853209313440835531789581582787235652308309510143410042676617732227083050756836542075909992653826063834612313863253598044395157316531745673903042942976161220408174306116040475460599445887943371769534017031066697519529615847099217653357699617142670031910654482356682626923039199408386744930457798781927773687231831821201947224947792881998752391437731670636171298552127572024885612758229274721266129909235672558036275618307267819288747217424094028551341435186816886484044134889214148801011784268721288897589796300918839050755560179403947194810900600446709079452377549653580441842828190970990974752637552477028707440944737536929436198161421206363541914603185930599384770918806684197035244962751901171946934300935326710185675349761883742869505617612714953237255969858303748815233791766885185821812255468589422064271587773407356478515459180966503220461727367036239271498553601379511811962868324474689850593307441990164743602714948989927035935769378044551426874620160610073147771299930363952541314349603513624447380856721977359633194870144409677523560601971611460147668321443828634687779781472268229705299164511185260711406993758400289275033461500527447226649393291395154680602401117622885029065913870268232308370130691805204532226126834675477053812359964402258331700192496462546775877595196433741655141831408408660175285663002369835267945349979949657534940937396939146555904400280238894104136223354745434307488027779141393036579016598706499891110428379237664500872781574758904555304196220706823979527940577993602058435983143549631750230453948872262525040976870291966305361384747370178349065934494761096986592457784138071071024628082302615787265110842934437658283218017924777346377137538287089245720518846105443082476234426233468901689281315485925298185444637112085047036888730245650534134233632000867612315729960257095341397120134463347608275866257849300712181691104756696982838554786543714885728630278502934423234529137085663671933441456923541844939459865894772586610653585478964140210140308089625106650739577421003427923082696638540009429850715055916887719774234860120787081775536052611191407849648404464249293622950898396459120740184261477971325769548270609549621947021840396378572253002850226118561665408516269873283986642230426147449605842658909893456745793491369424109845783033596148717446298071121339449485450088166843503100770388754301696579169367280983365359721987283368076559946927392909168864032110384207126196409166888027067688505175537254996547089779929623497533097536927921963523426144152999802482502328476658502094203989106230654886572429555211266252298848681770576892211019056248873202623983520290394397537061449608368595142395940103989441513857592582033866854203186268736027838069824299564059747615414728032967455965408361638274172067868270416891817364475376994876583898897941282713258099239400999064639311396529924053824697092343062745314138437135283618087707481831802912419669848682650770820512328623642350289538747439595763545219740733574600103563907801733033561772223509585601893914193020491011300048165483722972655139680318121367586796871958282272820484054209334072300531728779712406746413634206269239895633093057395310092640202957952837205798780701926650614318499326325915754905829074041752127221494151344921606246446274655717296405606966155784197668532810113764989636949633589389166760285431163358618430061719058211035506666138971038209295405142649990432528499130649072738361882973222377597084227412460035091391037382892481734110276931669445326610529146599017848609862995836752882396234246569563407036987008457687921816897261171552189409511940580366994577416022830926659596641172226788611613396873491742857820704189185111013725771126709153609829674690276465441385112414599719705438334742067676437351505587242887846254323980999706064306668440308292825925491684401217305077646250336606562265896621800167186969625368298804303724357165679531672237142183008451146190454203361013413951501532728064871963452476862835598010890903751223889961464006323591217305111667560756390281808391504773638550968107012614509859926313235997671350287719919361544779691072190816347087498972448741572265723586287680124465085342596877264789354278150764068033220758339294517011794804364083362650301954339495116331969981889894895764530233875635114240229397548297574609826976820833203917201640680625273350391417041167900256163884465257613147806573721368595303467258360508555711414555469864792458267415597312690317254394099328476926388773350986789588670093942938157867419897441448645765829292843274292293500617369587863033012112896905370937066073322149792973550554726928234671280290953189811277824896672546840169407688640965773450804920016469994562879072278569641848594583577694845993408662214477943093746457007440734098871200487202344216991403084596000532617500070177986996606403088066655774278205837926381887001917911125005681691051643751208320482719655406026695317957660459774378594215551165128065183924238080915202539743654951790878023157118458213321083085769469751254834046637312714053707553966617897442776843169355548021774909463963096057335051758131593733117196549023826155307081320043085933753960093961219341956307718066597364062617928273993196828509000458388581408857659021807738326813696794540697640526973922108249217592087137928907646641734886372047033117610278969579847797606955157153257003846258005009306692946494908462437442062860011224537433575029139212964228039177526258274772984145167503422570237009279871694540768719130589957555868016369399324241388007665415405192473866914906738481735422959457015322944682051965362761548792769396119800479897402182040298499465146718099112212929984522503170792308587869709483749587855876850419306228641154047809003764114246803926261071697653365335104189861461246518437857796078212000917363903392836133449546093605713509685185048146649986296335102622894274679194853672082052238125547552168252122640230996741093510392795342146259926347450534911799594150055449925600848561627950486448343968624065542798552014201850711463415796416834166627327643518843253857034549524619574732295587455529874950784745142840430515959902261256049041116579514605169671991322617086804076960729648956074074100098012017626085476406580447741454781024832020674977547092404818854597876533773631533946421692172534243816142372491948829634574685898410705604815314086635661722397474624330524268028291937714856953252428299653282145694858894693269252038655209051253502217862469175305414332580422463905927714022915957375703558908186256037395189293370807770307188987244735075516064538204285120096213490289955301221979330382047313673089204799228267206920793680202833956155706073465264185202473143508814550001043130770731529014154891822171397291068398614358925765403590672682644198241523263530624775780072379493890473285719108259986041850083773494574639425972441540235187520953195286153697491124854663162694654602456402271044060666067689857974037440101839392534391726415238574084909114162156515200669856743555912333102805277621120208918888349697898314062200962965281559200950326078694536337770817926166296812523075493151052894531865607537980160441893333744705197096944123358113748331398462160726649075080420681738765669802191491276589642955295244420097233326126898162216992421227142005980549410371265546114417495569247979844902058364739975641523468028564363946149956348788874258204751478439682108900169318606557171067257398683303924474004149969586167808348416676472043956638770188762437145494603228520911977748000215574989342204177079437126438758805229719441588545663904411153145328729772621843914534219364053726764304947562274450699079609039642708971431823301272269828094275931794807202208942026014836302119209026724252481458770166408337735007965350319808397938326112547021954558288560244232758380125856846521230789124049512238202820418040728544605209892073829799461340677239184177422843668569726498765803391570342005743484292333663226717240331788176203964590516212085559703918833172672827789355545013215536806842052655816811137885481407019974958282586901915128584854680755873666145369249833551396613260930885594133812034263204437057557607698748588692703589856923148629851530493902665289184684032221929436559409932635343538854475300201014703082417090088823552447199480024528497184806760763376204218921524373038948758719968271508509919234662005759869235479338167710713628311336671229129640536686953801783737916047727873291459366135045856097642627970620475438527763367285368911725124020767890505401306615351852785226152652341530669481550862378451348584613251667273621633466053587608798975346986607361114333017436142191698776488902439898566626615336173356506749329192722585907935937248303753959666545713301967351071511349127853866982693271984577106939259142213968461164268541791609583090260303259579033369588228286047665452034189952379220803067505676804907804778697241097191134957723019759868907733448144517694295958796758022695617298332409217401316036062739563311487564430731870708020981871137481833238818903915636679171238696114181968023120620746361345172576332297740447038645478538405927980815792480000774898113954412521539053181984394890102331236397803422141146896791211770072774002378411612978552977336724825117736192073014188517082107665189000042823909781605512454523201183609124661563010703206108736386049460825516888584577586174313709854128956154279481212320720705892235596264615053880425048506118666961126359632029033539222264037245958962971092985975281287311615998628606355660365616347383070985724265496488365137124071615209974245269666270059590295883470631883028140710117194223867345533204679774569102455182003534924484031246411243162346644135945536991036477158668530251511149520832050807927777842583810106799082816147750669397940156377484844788070843753438524128997715191170374869112305583973573576948322360153052449170012663573557178123025100860032067538238216502083321031921934512318903880627338373121362310272257629615686512958230193450575469960921010124541765859537055385589434706637340846444871987611251035047554262497235655607891639964894725351755831202169944634394708931588115915498166036224376033586004191101785354561727169939916756428005607215505505760634458735998416844208107430192707983661201799831813639076566876903414726820429848092734465236377340100627497663546765659231311819625158211208162333068836406038945041476407836868860583605868504356382770526484239252452152833444212988613134815740086090460364094289379303340580919519917084250581445747814868777908007706087703019356192993299485113717072272595311633100612440482526489198794090589182575001266846180927578660989065988692540204124304404543178348479915725750608446080206938751348376817665550573633603471547665367114179231232012095077133835839234875944152268485005409322757772707401421599022172831488219430044257875275612834672946507067456164480866488412632921384190888125467444738119684608358367971892604939350157811078465482046151015381378746095731203318241657458782014221979338215533528258081655265440030442947388018726576173050278484216699717549995365287803398918958763366710086923895075888082817411188896234998526167646008730639774836399490986998713780200790057788623887032816868411979632964935617989472449177467873029386122061262655933394241981763418305443471381495602450943029629177936090011048010225648173892121849767913340989624790624226188590667470227165296802514150491758563404538005066468004866188653528727135552230493858607467169517363214636588060591717897394552233686135978070639802107358585403581690473665728390726534767170281910363101076177017157801833856520483944376056044216090688200904849398786155898662619373036523605106048806648674001107936720843942539079687739611290175904930652376252182957388237026551016443492582177804405773927492723323850179343164615372470688294495042967743587051493265711406346537208163104204986471928413707579438920126246799339735662155647829083633368388935867966132682502287746279228462532478651479589043505339709403535223826794104301801256593955565066594387590522535160424563448385476965818490597179028956194045302918476407149600430921601788160167793033720148688013231332505062059962668665848096420132763129406097957786059008081304224205495587989261745031363745015478410658776973544675075301420197035551284298922506703368613110929194244434605750257602754682776018658687245512148604029961385489116054469284899861836059422965887964069934310030032286694940039764916536577136954880872371094918221530820436422652802758273334410508015743709065052901863502282199515617890134581850278870797504034334578716417740423634681551241170692890961847991021183435896715041896328038060247509918972008115898962813412314955840086782825496343966710532710115513575332369545953107258163536590271825618485988290587952263982018361229574588483163790580639045222220320562102204840594569012613337500058186934690112803000169192160112516486142856791666846601655367554167983259134792613688928401661800491375731585735184403714643776030818326197971202438456711696926376356102344339529317150978284396757679637740968431062492478505456217414875145747909443943948309193837150298175156711635303645362811868718715644145931819855272878687560281105036900916718066806226877201084219202869011347003499563969661385182206364931771954954683659940594060854475760791118115443278161536799466607978762751692643495788280628385325327362452514573818395341929262766662701937315646844193591288886693342197172040908954385986103147175898534189736824834231004700981976285192656727354155677476299386361701107452557130757099791515360766060909779986197228088349211207511115732648273514558718457452784132744003285530644914851479364244294472460898807684193875906423460728144825738350849767343288277955362806422869244724315277909365509925648087888223643541089399535240026290675715588451404567548116813969227144053450581493659976760287056109268883500352609734779609411254901653501918359599757842596926775964655785456070474342963340090365636241929318418409528818041376030724159984153582616258252971184302911980630310461654471071565839645457230520654338207567930970889519547987765895738707559415228017436538473259799581875841199394508265729776582895061198124112346843614242613379978000637061583927602401755170956977506862325505611370220587144796720356893108653503643625130376889091777750245134905079151854585753461105209711527341128312841640312956636623018581326259799061391150516638549438660264816927762452397252432971727737892366710637610317223870341660037009681167008231866687976488803507107291480656174076143503957102487260449436278667965407929906486984249748534244902630586600390209433123491946381949536385910748459778309607987491273511303296040682963797586974622042419614986599798963439022599550826269141789329322738557256757993164753114113137201796789660109613268318281337969367630343843702291212281731919577439499255898579476179807680731851984831433663843891590334727112422215770595735708065505063915945803365311998242647328468512252045054079547294979617348254239581265114502913793446465077463241997817809884130714316606171003348214733547781126279958417631645161298475176158988932637893947427175991016232570188105540558197271489833602611317375829308682385453656219387506346664462122000560311132263337698201312101520976388492755547975531811651668680393257194489221586558547886563410389172022208385698601963520961346279611502711958135594974090241289066647005758747501635165878102307857741377457180625308276413274173058151962257266717063011018112765703429445755741968338981914196989569968766896461488543218158951646802959616232652704214300477703742072474433098270238992484723280670011209364408247473510922668923990580385380825374722477426177738321772586055386216864265329706817054019865972020569520149913191567640163340846138681326820791029521629914755925090580267057603750176636475005295805811369842987085089164620307338078580770134311338026860895081126687260279417156588035170461025377406695543527734122394551055314539160879433337736363978464799302196070639472707218888345319063649877258272831207149251910217907943083096099084543269228297094637256254990234243575596255157408682276071608945519416633805124182951373892056023237657592162242914979566434677905241210636489642182523735201151540501070315637332017548432530985177521475909991768240012716197656456335372985052616793666070290257715222947168576921883021410859580822757118169712331404757234086150196485309168213097460942978888948799718932147603651783203675086780250550741279230590329605112924837329807868605962410573688307537980059913504662933286860441850265580633610015596979636468447193698711813667289555463162754470409714956074865751838864146600094073392633830465736405934512346714919336872540109087017733685183311411959382940226028986662367520094433570069786505408487189535348743897068645800508473071435248359454902193663984322490053205861192800790353469404605852888153672700642056538393114538496540655514360662738462387874903509372327679578629442115790421044281380630558361073899998540688136490200650918510279379206439662132437704200147016624962438354028112247444287383655555102814026338701244478724003145708329684565693138863026211602810878299531934813112515673014257466762932652394904701892844634844259397228281170187608138917715618049931379068958038307581878559923694076968534121967627631025502050055243376513865580849769087113582005449178905365409177490665032294620976437950479072130033900713163218094740767392708795699918770506939597281965974205761923398911949636945365672525246207961115963805115143512478703643441020093537670991362237493691045142770695981020983796896810122935184514236352867655463718755553156346712139580151004742102771671037490381638352323887630131934686550607267807724552764250747154217881058296011453235533159709732059850868643774958624114706901798852415762266032051149085630609635749148012663358473834030775471528879536275564312464126317038337166113203500103832280016429578110879226828078234768140141880669204752363663349793057626324528020242200394819539774941728881838608323357214932091425313621995084230279588933510781668973291872561140480106111636507871898477409035310493187518366913054878731662898754865325552868585846747374056805264969870930233433034805457849968594227601891977693712745032762930575183182509656198824017992751059446445935017684345464180902744160981052123227698372034495884317011541734939870424961351181314381666724480957429788337529915207820574086674966124219940680589028707280191072720854595432481950038434673890123403494761010978974744147403846237133599443473488141498866816114441839467907026036539444479713701286458289980402407309162790139124083830857420202573274646223117675875235801538627827801880056901593499924545484607200943753468295135071059002050920943631735746624944096103516162776324239890238590170207059163970345309369418249811762034929628380039403795182129369903330359115341389970017859145840353711017001547043633461812612516515414235820023034887025024273950040426814425578866811858215367963360277580200335033370551155738053866860142306527875207305995373618330772313187168395096145846291511853328308048349222144322657408420771716446879458759099910752118847204713087725693989406672402796860782655737273263837063197794938082443554254284602566094748889568010085434940194804022863660369575197465948141427664000139423723203943442754611500428698708641719647516778139288019199293113225287481607066086337971710257923879595587487109357562801598907600234710093941718884664959000298590456060887008931660875173584734384904900112793645620493470499351529978449988587493556463617334982713745533428449955484515369714198651001138554973410366930242792916884142614821010402846983104926221396845430717061551339770424276181779552016493186954808206827289542627064551506111667711257349221893070026050787325713797401162180078018677575279988818576355862466579691091100397129274989788648223210415283890501528474357533904582617441688760148931174479133725391378558579029417344627826991914268492021176832260051908112527730067874537485143715204498278848617846267848537750346923758934441932154570191056154009609799667870032341121663028137983217150124088622781427196307614929581982812554231569334314380232958121454605408690818994705552343749703695922042698525561814027931089905346711622987812208339760635798346917535448207925068183231649058475527909647547835423487121877086277598433148016376285438778262869505911181838592224535911769324006029338107981437431381244342162476669096086389636235486178855530635460722489698815599687679646190643535308820676375771430694961552252608132961075146341402706733682021166921423412831805721511769067702747060962010399018966035867919181272926511789619384366038239450942122163617130737711476717179221460033325303165806848554339048276929287543438262199057776614099087297475519579685678760153187813214816739037062412301453473073737022832214477860914078757293011230675975543273686959046738223008668512145032480370250753262400136088102678134617050640827571953101259820696679471804837341563267192707174177150172832205184120485144846479380895995743285687187690266277147220864078980521032233403683988541213670602155066924133663823157468929370915801670311858662153537269606771835111378700201036381933283140898609500644120344865612783633005752969402981719426635544550242703386206351626330312336355954568212277525652862713917653457858109090485267299544924476854764482717636710098951632171067528403211593964574871934465791755331460682288216887268724533697700893475730165404336191987433672941646913956483358804729617122053086775678957757526876814818308478171156934028508003952949568328737876460208560802757545861266607156495923032341998016183478521470694669836937969499187739961966062577967371088990486332665958942251333103574309873111898096224884018975251664041583883640546155276069851365538251749442884953707600148154522499317940114008153600551861655660062578313648687000360877360485840623323760498840866906172889006262405896400493128995973967491546719755737443981231347463503892078688375691627153386695265525601825258434449403238438621690860940682129292660532351195845625011638653499992703249100020145079146990336414189807625690630021075904219919546457032849233177995304463558240597716852732776742138638501716611506691599328385656376982535106213317641438606916652382947905682434931912352906592128036560194608377702428615072160675893851161901289039991037485429994514240152545343830471326766196654426640997268782890171844594411469119176268510446947545993710536488024753166544911682610189070896674428696630617803428311911878196810411143314159376833240442769962666166562046470713535797252326805954751595418430818735368515190939558311971621653739057497987398807828667332623700047419888478717725322596060496480324975302573818988036355340136037037980370241527039783385820391002032524239874410981210565502954337436156389183381338981340887373168703887112327826384220574296526740893570986528197101106999524919149539878743403101309418347835818355827586182111370059388894025429208286234022625026156936428290574852734341656994616151533161285840331523640408656347517776085990370390101531013844526978962780306411760626342226935553697419026322668849183405395164121026893087804475315046386220443553559301121866141382950219488558944043179425773599796628212600932802557626140646185564866050256409251974447552589107783830376341132501183798012950116219067308582231093452569301607654512287293493812584055258591771660851970509676783791205646837425224848241932836031434889512298024242042145664728648247737382370239410155534294351194429171698055290612579839916997246836440956254932035940287401336237299633417319949715531072123486230733798589797554867720986395458714110615295026486647696355854331215933382745298816481069920427739212491840385057704971849153476430336499932464295562647117774340104678071086025387769509182833022067039717423368925147141077299315203136688800419546714195893190997822678803283648908549268432021805157151693787033084969441428054521824976713234149364433318930155393740672099840938756788613784241961582766425474475749589947591824778618883450525135337128050990317023067763067826704763478298193600833019743982084250798694337058503013794287558120539239411591474612864379881288593371135417811529882202685345183260191144870574882248770207717852463052704325120074115342546147476499880936179335753982094154367948360467917368183801717821629071324200947488481691834196002779842762755619248675332360513819004551210162558515583472444304488674957392592377637226044511397254835671049225490910680347399930420818451980589410391275779321280840899080378570333232956720931432184524259649991620907111603193958060544451137808361565792856630636868070538673420030460304525628479486200840336354535446718052761948585310197170123544345735961998918958052686182820783671121274206700091208217549921870756464360489836905498520599750512669750470103159332144214599109796103157556628401654237658177621481649628125125656618838275823684903539935252102946925264788020802945933189041344957713325684198212478341220884427646568903434780932417207243885139650503451478846385153151407724981524903975230303071952680383002975664997004407759086090708207549713615563259818104596756520660328134927154303731543284223092850990150425544117089488860372455412682999313459644286995772450162279541762916655656900069191293493747803619986075861479552893639773557832705911624533677172745298398917901201880401005022547226464737829837949769737177900997917254059231981822751410284738284653657745376855320448446268043124918849050109866036864885939522380900270935409890447231576974167369310750309733485256204936654699669425823236226864838986074070468528254903025065030025225308856964792858158009833237966476482358233577654769518882468369867662306802840577513027193174663982183868342664773719366766725823503495309018866585851911352026662554423099363592426862595621405585385900246052218845508265297966556909917160296615834494360939134690819846471501675305777946552589759805377821427586681635155634209140512420420307909356422307731542164313176049608708300202058372658387765590252606238627576849094324158258612607272460881760707830885854072238716122809560077970045769147004301183944686222880797485187701714630102527207931882498711422448276825543042138508780902848927692137314642083205220270759189993638563079480014939472994553616734272754621616651738062514233788450717343660371096068351204512306669629804683569324723934259291331542845554878854106598273631830320103861201113036296535614821826037313929982174691207508826142862573995521522796503622107401428131037164889254360098631184599444960193454389216154346401274894067061402213292818427522985653174597356180894583862854385106136029376432365577900331061825776927177692384816590926075302001466638903339223611879834068426042186266054557420051361880842672965315728423823469334404779923709804573964071616863991634601351648651576874963453556098044914233472766260313784642400275856166222549104141076078901778307088426090790108483102677297785238364652740504896820319690298349923985970159123217040101569891010712207627861170207145786813006363624556290106820173642081097330539412014948950587016911177670516307716885679340371231050659510608749721281865591649074154933617256059667272485127490730639738277993639228621381896852085160076384950954869294327725784210268377841091441464074984256936594855336465273377488729963729854980486798873006554230972608344481031595693037670718217311858896164761916755869832629995640178580913316815648297297513457438674565941721753571838636579560228959637798146532795796555194481742601298823503087106927752992674106074111801265368116833844746074017768853713288344312498564673134643152312781063612539708422801360026060789955431810065501044217977722259383099507318183007142151310235487872452509649397847388349931609456174550205278160348596518243716768819374409055344418017245544696415171762990946198353836310252861708375651528497372270878337520546637675473203647557255514859004839436234618926624309904543683178895125746947372696264207935304066898633950245186956451319971813040004222459530612400418209606639983083457532351618524725370833099807282526035323378647343527474036464571616142674000549905209253706219896858964065651272247435395931431791974711526096320446398019574492488484043733103742340482572471337171519109502070375130185121394786425167774328498089910097965621129020917708947784712146329662209384388105361791469723902213861875267274296627129359736859481423326386250106036497598660212760946314012705785347743607505090482435125528169730717044123405181342163654731895653376016282804073152455057066399950923563855915177461759242602758913089550742410705799593744279616586142683999218510321690636363847982637601219583425528952180231099249506838002599908817495627882740661658484739780828579038351028809999135630766852944216014676431432273537024755462990578842761166333129768499929948197899463438335242469027360620255458144207995571062536195121722158064280992059684129448745093768784248630370933480042566262165530774482937245602449827965277194323028980825134814076945396815325852362383653721651213418865976353567407609939784541523125220584648889401420378419319390899412818020886025289383523277993727258229408461518402334771550968705210480609979937251115117613428942772839250879368876413696584550696970424890878937000790558958166516275360565207423345104153906985435006056732951792055957314939480129998228849553012213175697986923446974484678000437374496282190924063523821299005190368957687705043152143085270110369732065768661081537321829483102978184518291551375570537316761367476679590782228279447057913096275899991297054966548049897042842434055172277163614029002693719514083407140694405189015040051313273188114916623309308508992099248426417524683953165186823736319135599762856127985924335319173239933647773372680308757280067494219763974882846172844625998440722416360111860597678237246491315602389279441681611112025125429436266086275093295087042090118072238068272018265359361305200539540578246057115993447559561176014918275003360275776307156145418856758507221158373515565670536289886099381496953583155607052655447627750856585109398885030339733817857307566239198578815118908567851864046466278712862691050848668269306950183409600698641828452396725465135975385931547002873225268941752911958653917115379484753343410828345869268495463691484279266668929311756903542560731159648501255917576315910210152212537269843157855669442924020858764198314161681743381838212592996440087297148727436532346503877362025894256721089243855063149099645868644395998649507192484376769762205755435402041080354217810409147892015575872495084578550048727188008911681521624668877905070177339856233678396246401590054229203703591530625031430325579937506445180531251280267979811680560976575634208682529721317780952245531185879470279633583357290018948690886437833786857299929277232177667285970105815022720277479938501603313324776237752070025909551840617868919665848479043920871794892626879786246912555699405259713884586928835190795117842662292245277507298117933784060078670482993431695076226735044842937679825362057724341799998497206919882009486453910684497548085653494628593390182644273098255104636087832844251960625927571139983430692200117690632209519748044166433914425954540481018630803525885711049355763827216549327205773659461690099603039970844267974680913854284840401150361653116007903190955547842391147432014759517426554158312790537889351854028246212938387028505577269825347688998668843822954197815064982158159908098179872590971310140008745484333619144798535286916959380528570758142841720378824738762551493393721125805777931370951214540820120690319046671538327182058204620620628699014854486666606586962431168236455993797717595319626255237474965340477585530397790882193825098591015466533491477604861183135821096800994761275200151362628847045523279632301028424829384983060501888806701214181351092876078646492691292417207763409803965888517084681846314102269882136195129759166207275708276505439616726088193800059042129165087619855448893270060406620471198789374284273371965212863698886694438110635016796444870427697034734111485025078749169554296238604931283845462216130330510193406347006720872940385080358015051632797066246235149441116390373026437199590766575670476365264156765386229989518843735269465332780959892259481287139980571113133317581606711484828979227633928527329987564358353497170292084247347422531983125492597654384272150874919657165627562148586239237957567458105192960241370147187632553850466274343145776428133043811729741991251771495071322783218523865781974557025628009400560726131922555775265476169492302436451191430596961747181327962274538861370356796997229831264587747679265159690758475476465492030548800374015011077112177530336689009766886787528649374059758972309906874934252259478247889858624516889709056190458813319556861305953044085806948102083735114877034572773165612316558001234750253733335551862134453727552262155133918261610828278912479620096859091478785022018543894040829302562562493564631227430722907008428669311817126344169212594769029128668715506625074537630642031952892814603829093272373174672649320474555420509196545395561365250229666721081146442612554783539014126589351677412058645788365704929193806371531661604075079992493319177724516658326878686359846311250084770018700300359740573238945355948410018071805617428056671727593524200223465118983454022168018416282137937670954163375369059620659590404222088685892088381255714235379594050828479316739475817819456404843826445119746329985779175448123493504553055010557514572963562447002811735460775383397496947214844628270049295299417587355373415580114854289945598777278593934111945484637266769147774122041885094953667422482586417411792710209028273245761318974580832686473178293694796470459576164654141055924853282946374669413392976114830839365403985498238922993853275236279094120458399574708859786498842238237100310546253667719106607531476839809364224039510846236022338120731113786893801611743312788373658000084560648214509341018122862740502378099574602127043396599816206513200568018969611832662789123382262036071754520522520795998843600589256079564053097065633447223725129227881446408117640078190181239554878432417480809550846047847658432984910549332586804794016383652961948612343209788516314149798851144574117038191202200688195553501029693371215655826875213886482103241168076117441963267627879524798617731795466339266947425289532236099892889604345964030072155203796807832566117918141239655414158242158973555583414442164736589096451780060639995918701212402911216738393770727725998481899151644321398801327025897478633145856868112238595451117975089326466440967836314899230519355210149049100173823015788708286265162467709129062372744516595565657689099314385946160969449807449146313183035726746570313011905919214049094783890897615197487082228160968262717135534669171665235559555079966742927617343605734478960791795452267780919871275530068982204820447949396432270719028654614095695549745343817421596425831220662995967316391505679433138948224260598177556513577524005807255160568589038087796093785620669605390557528353438959686771372097284370414072994035842323784017718607474744125455373384925154946488372782460822934297773592051039163272604228994092178280295495401221642030677798141111977488714652149707490732651471323529299651556094700521256111113115092971537383041113923745403155934358369681150980427246028283583313541012975009373174034775807723946365396882208545382351036121021571490904490371348357858760332006753722353039257689321799566126369972230269576922617520945893643506959210219640170970318853216337041805005327451929700291384705521828590918477121442573262920611117452747624001207243976757348223880132211521762634672754140512210515199411942353531466195249256900713149679944090586533823727745652552555329339411168040914691439188762293430482964423216297046162012632786839933448718918812056314780651407346910433011258747749945939592100653375679800082533074500192855238313895201841349526933063901627419514150236307473276729990498402288964276532136048439514081177756612777283632312051860164521284290673216640850451460827373615146215547929726762399884437308628174834052120817665045300309661473566390111044112640515214315546847734562058849802617035833988602181264803193636177254300390049287355519597486309839129644864763117699905295724966724005040309275774845919021781584115143331600918559147523217991678346876890638829436327170165166331441053080205622029971322089038311961432475954048100156211817235428694703193356120352811726846838973666774659939086908299209682394657715187148235053754181673168184131131356512845523730695178369609949653837809590929810499541926498865494934359834417725834358627689494930470163263261897980701841118627198292176090129819875318712715727310720319247181552530869274675526737100579589789650108699448938594872991602762987039152576878469967451691621986407743549153699662768810183509661756572544292106994043641109133417269314459440985034579834463291703772627834695127913955990479666110725665623709454697645499734154430409785891746207942017859361303836086142800327535661203756858195008582502537293031271239779424608015642893375911609657392603004144961645826801888196403950935362858212386461106004146454900334951570012848797431070853807377002856371515921869582949191823279663698608074574596374768831572191311064614159063114045554220720852517228407858254292348462026878260933337676454033961306976324452202302083666662283717496281906128646905957734861937082653358996376633074972649589195730188105861646641711250696749543637346917563306368809347122608381087630384899572733600224703131160023512751543985159736374781094322510966972149521192923877712042311443770293867975190022346521020506555906134945704992637212220863912386766822484687871940698049198973093042616014852845358331151600219565864041209918227432163734994097918906696815096688094470669831320337032262335256971680122869440619470985817435400521024081881359905316404364073262305915834592074047979876411819496337180485085083371542523750000291443707741655902657709542980019504202597749741749886189769476488894397869401029763954145749133545278685557703770868356889720739358985222012676441628407236272127579670245217114532145994395432014980865958713037443458085096861481420820409990938119114889740368607229192019802413784748206034829194020375399481110256405710182725052135190814546365938928251053445905265142344529714922374727359274687188562412717095935791238571132078243624867034646822953125851135257118821573842376506997151376646311925651235076933299874629941695999694563088682806361851961596708245280322553455578147550562251409476845441584931312323783691840019003123158931066389210443125442339378598376178976921771556076169780275075061002778984432702607915200297609576831094607490595654678400333768974141903504236537124822070173577074526389610790852603620050372574371146532371562294564014501891404289185020882776754623822071335321785216601807372232204623730697681257366194070022495624300799968611665508144284350479843286601076762786194036783465459571486041367929336957356591787943343383513283652619135724763026137349827585152620985532114659076001259253901065379315211797958746182021274418317164215022557577188435297387269022626328883952165045095009591810075471632991694050944754517033003102475186943355265025763320476541857037522922401034120702782752982930712880185746192565002375798269041649311140729864529857912298385127441675143415687825856133879146449966837819587936015813844543095929394472729272510785831761015150344941817915938741362883746658484622561465244007264318130043545111606002860919017897007556929516530561921376989691545531659209864574430530877817379490788303038611707746206460080579501220705467315224778481690675125562412661494207476341100304256564178965682882586771837982361647532376397480007931045417959840867741213757937554160259231484225790106221688021357128446022380474205080161684538503547596904291347953443091548792921300382549081827913845322412816926456683095277212212845406430140054524471798868597353430610699933954368460417295217613724086016212495798320048057243713522728742409761748124166689746412831939671956533565886039306169215073228527906570196552638746737606123193925917475191958323316336665756293380278707726270121742486390883619657556347496633320373512557458156919300807412417006406268297012258965983624338790528095475798095198141080385901408947826900499928751552224640828625078509597477421650683915249709005719324684561225752326088790706594839180258045442935767186421886325274621096144696289270399701650202475684792528861598203741718021242334586348659641429839124293042169497207474971846777965774602676069451339687381904387540704547852884158921380001978130796256009853128884088878902407873572066137482898947399316517009535877678368664807115176336432824740971981067655529504005700268687541231472905846347352092926506567957776513451305165371204696304688354271629914446860851855618043711536686638687487310549539613874820885476943507641530888021282701569234528737151470791528719340324405549242953786532438692069352541087116287256138480762696350793726979965853892799745758627989859848752101635912824648423097601583650510218037615717324077253166286840304253580032013590408035306280748849745850523261839798486248149664081836455286295059270282534133671541014329047631245788490065202175046218163531638334538778239071849648642198481852659280082206808985634746535250423559624796196879418163454234477900571068395735176532543942552608884674952486310686452252428808221837199917138417517715393514443336873058499969966062846171805361153519327509371393388607194190632096240658023869888771786184822198469536660051045398198665504327111664024149601168067443412568718402785436639992868556183603912893357194458166099698336503983116327943509489214868901309552603771455846841379602432722103225031726217944640113235472232966318479022203003764262490479436740092063301297159601261436995166606122655998059556572603834333455066075282283512248778760359528053723103468667408454411992274596085090018617393587673551904922294285141446570350677969500973082611900356193257897739696874076389921918680473686979924604770536166816975476220076786816487379345356285820714352256661108039036837414322572142514694827771126744929657739558279947079452608782712204625282290530551636080364839952650097901228577221018784663002677799233002502376927014025079944181211161947150234351750793780079780523695661837193863632781969001675184243158182115374006087677131305211556583969159809295508328755938449347454070360399445409297204004450991043006240720057241361028541163614586242673259890913780902011147204209503551862541706935457219243372271108649585737635186531215494526704269766590343446773167735127926874628369224851427761013102697005367878316414873269650507623625344266094697958655290035848985941105603454550107811804974885497568585716220452663973623520948882523563642832193204202891100970218678271707293117890284748105276002692212224702287218599759723221885142729267451982480119150667737565796689279361044000325811967338003547269902090634318506387998153717692236671759853790028626023472577326438614169830445098101520113270007283045658640707820505868196481636815713796724307946161392206531350189206167615493436832197400685158392502527810914735556940833072153667861202373907311033130811499681728131522313646018256015187034014820843314896115559348138447492658999001240609442391519078234703310665504154699180162097303916979410995630667029677445477917668449443679573648307642041950404276698735136279785189697448209356426304967016525544867183555111119021332268825943930627609731762779221252546100080950026958648889023032865018288431026492345054071852919535227911745545824009395929028488633413520726689708739660648103489599512229162507246713186968769016088579793174627680602642318129521474215780990255168452258692848586830689039218854271370897500663439083102304851433350486870897083494892430328170185388893482381294437840743774047932575151293817738989359640398608928448910654128751548891064891568068628756738031335250077398164691922126263953346968487861746467764923662540607167944265811722626758890036789890419525220688992945890228118915677175950208600052468425552314329080564835904755069274735610035789502457050281970269303194753960459397532529288077203992282255524887020122144074091003856858722962774344146481167852694325537819001721706013802549703025969619661589882208580118893019515894431794744953603111671129303639017012883234577311002452818505713981377296369161952511501122631841588988261215470095020437704065288506340931254804845488277840352880354611302700799179441313377215666828105829761225685511107136999883148666108708906310118004614810137702396429312443230497726036956630054167158228812526732757779343809781108228252674229561480218682030276014401204151735416928875401472086228707153739158398547440226764150017143227976732849539729834318938303133484146060548933023604006631274249958567153369320813547750607820586143779797208063684339550236996705860825411844023153864255034516680002939563118178862752657496990930650158135117227232276831253927964590603304917882936874972645467874153398649795713292456828149496305310412083556630848983846262552075439806821380432485772977309234638989340197581967306144032879095176548251236419896399385019418205877053537361341786753906339195864045600460932025048087922365501570357250495247571119937805394336303373257986540779243344235521982904285496234217989343556840743525300120446451856273231832985823138075285024982058505504669126886057985127564371648262846787824720932501901077454483413762673348253495837897209426441838472209625392664217199656907897578116338885993714176466318733806509287766438228051494425136348484557533682463179958353351691073197444030271140316144908953919154460884740683733960443583963206568851400163922761242852010531329282288500197736002729749808569630793435662622702630774699424895198965291753182678242455707469223991165456871117532659064394721910620877140797367306344311733220204010474200750197944828614774895829789949533350609242945780494365600651453658453433223138566759418348991421988177813759569684177228050444320317410012805700664510323510098174213463016628681237867501651800261473176583604171398005901560154137127677245216433789203240047765197427983771086225496540412702041525077813969057968225310901527329297482541541068158944130383440636538788884302761787650022730725825991221230401642593313694228631517160906898334124898942215413731083637095210881668122888685003571059175531270909914497325529190034288883968210431532935803793233635320454367662493368222795546324157958783891682000646237464739640199849232928261040118155962070429456682025328129361383622216926684857265505687311502485836048401210404822738515128448862965065498836387361582103770619350775395649767354194514695039024314603884085501845697407766161757333976082829572435424133318350735924461780041289854738594177279014108715112756301276553210684576697832778408529516434224277202372359898600656684598166136120056135228104302327697974934179685653063348116128264821921758871979934261866449549043071330124360846493581089043261461634987605331569431216346998773485030142787510660053496473765922105377834352564680171085013987904657253668840116661131314747513805393004621709244304685695039797672850460131588480312860941315294790990175759065162954327021810522996804339451983544147598359134041571549953232756420654406241599450661423152075082842402815585969626304361817451673113968494470207981330164350045827590344132626818039553058471474913657762772300132588513738361207043528651256546332260270634029770200187520374622245604654420782421852633970409319809793503403485717877819316150487648484805304086471747319863735468783539610578299113597983323852938065069381747293540249423217480920991179572559989420472394387001919013490206467393482889912500360990130566383364397456755556040248358454745676846125322248239528114707845368744260516238298383694628601319948374200379053429925477899344207188179590418873441363340829021164589905795189348339020914405330751157100136538300232970401169209919959718461591393819222884192336945252832104031517614830889933935766314440054664372978783965024248317295268451850523649347537672516206098934130326507896877865050983921539738240893487953261667074429899453346434341482946223955919467598675608740511923590901451394518315573359114139279177140282094663292814708557630330427465139908259436549179448437484160462428343180481271664401018724225351059029846638836725003627713492316166761832680695253072101121561484845644511201998359331886645722139811002227495239452310412204015841572307564892854760273877471510806006684546533092080531383128957569729512941157942834465222411705536289904498190456740295352912995664870171751491140132154338908275131116208688556211026103650438584633320597601513568653256580570431715139600028717860253766753848994210074900337592221190175809518232406921390558870547162799038247373560510561611608102939493072461833840075424570665819874147159596248571890811687832069778021691322303907956235988066896283770446667166553533269677394170955316588435519972719854477090111087462514994434475236258695531441548455505065529739977542071757247339122680457990071392729018968227585662128039780021190631449970671497894958618568061203987960451734563754898294626115614972323177760830868425423161162770653196466775506715992410601654504427250596359869203174316869190782646419103281730863796376877947779090584462922001533404336077245791502114361702973324892775688438392307666133369511738285474477565359564791599321667661014035646402110119567755277234482021636266283088085526314782514669340768727765718784737922138861244592088309560416191791428571134919892486577986124611095914648739522344857233894262218714026249277194499988414656473514237388696866575220765216838696933243697498307203408614388536804421318867257628394619427232572991486421766850861904171663791656954216309819351738730137325579005168827786533969681042995363824064719862470252863959011053400168237308729742271660576573687373401177017571482580514743635928220537207573161090142722150679211427115316761415145652832868524773882058650118580658480978653538932931870704067582997751951478430582221610549468347398233083227483365438109257125875339852226590183015324697633978896266994131652306446230158387200498523412533289402155514745098837227991542518429883437326808858337414019030696322602286302543309803012551521698047347153299735838695254216699580317541868339409944637647076416067112211752609778776709663106954472013614827058254055676274645675813773944476678323464839001354477275318281585985884837221530800571703403364513540246767237069218341632859209647356702695983887044484535816733465093644336016354430976429326115708355703245777885446463875386308980595009988328499455041219601087124523785906603434467613933710350135998701589775497647664600309326693712889130881642019867827903836002903669124130409111233898152811607018240776541178773118681334825395261202160418642440529879839578478122309330283513183820362142147215366366190929634365371721944776588366080187351867486248189541939829425475685474907889348724921779580883663642789309137431324273959703431412327240370210263903055713828674910141218148871372114480090006871535219174769950584395899440389878730417989696550624650132884168136973375766817124808807883247024083294537489214227757166621701780682674664337207537955617210779100753038610091158232797948239945316906173182631923841442996361898964229418795624254122701736810711280948132856024284932445539029886710691363622189708777182186222373320630449539332479154589849035821180365064538028621736099780983387713001655373123802173947174082250511249570786236020680974037869727111806567497294449370967265555529073604744341850817044027114771255632282713962951147354028787435874217772142236758154286523924309735474421656765091387744611084247652753708513823751027868406843592848986427124419784990995123631510874021417196270346424370892059294926333059042269593455446284331849661613391405620295881657209891383668976842033329187259308162075310072130461507204987883797475148214760157667947689627858671319685830726060677415142759011311376101354373938460496958568832392703293635160670598219036589485622442695303090377877416632210582965346661315442493904302125725780274695438648980744011446165911224862877629251297186066508793272205231133799418099458354425901502558847045162790991608333160005902141658425210093514754307750440061082088243498295620027737076414856224904665653391218349113421767106992223639462291286234052333243112129967511373422707891875312760804263367797553756843471487726835652389457083238198785456518240266842200076876300159921486895285415131635054437290765377053992622449903243631702861926826610262329537416749953018906275946715527362672927072742696415071286504945094243811596713448048651579339022353117545695587799149869477288027300658395226224892223443347739910619466853926013884300184903093350720582355849376289870347187054653394014633411663792935877489297070477482577138285141992583259957931403625817986428424244452569727521480783553205783871541490351565444830232710207227565290702744924040092470088668149456248641910145229024518718283076498826698291753567755239539591013792384607318822667835999025769813911721768530680011126387780472201711454944037264202146850398088733329986828233951094355917572046466436462957436744653937306173064517359064788368778973983527566259597981570229787707792705356229442612366415842869079994500256234093333352846437754453353387162680377177193882426304294503249571834448136386298134458785229663753270843645723204443804327531557684469829641742345685136940917615283826079542832496422853885479093322941602648482428529695769648305478343539240407519082972297620496266034170050470749111709827408145310363068172952308107667593157530182551285561578554339514799162338197341514886213403386322556939713579072795069705560874100714449001627581820632816815269228164093180186844578520739568409391516509299360456646735601789824675535922444421053596369897333808576838716943057135368817413847802260983346016494045804516535288463957204517611260225929368001240143350005276597168200838033421614189129351770823326897980961948514763386964957326680043572539403206997267128025005595763649786298152170454644777820604361951552488375249099256120645369205096679907578447935413710961495935520205787059047335872894584358305208234629303619653260114023424262118510181542808775687356305764616720510534659870074460560134740180073617186374715405430033484836712980300066738677922877008021194527805159017822370415060647605046689928775290063595765244666596540225771453965493542472871009314216675081344074277483018998258028341638537211476544036731604055945604995219773756060116220550272260654159156104462471696973672625676830074572067601821813019423372653766328186697617317309873401320800118035677900706106215222844720255434913454750605523708884455870635394479439913857511340883096486522018340767905232180503463217065353092177873211799587075838201769301928660602550437192609914459035052879141720660451431425213385364216282481925132786753341577964659482820950375785265214241289732241410381510611346463221071304863065360698581076743516076413286826328362037423132875481178514071299133039021356612581789913253736153396438792610542916031004873922590767721660475805641346552755283371951721155996220739394957182546698653474751496408287738291072596411094253303409921283032116037014541546958710177037457881258895720031983273020971171483925261606112011851596645850870258416235156940550707395066034213807936248572707047990547145397352590528805641151862911890942568372460934399559988754472326262691166406148495563461241083565114932707206265906346501802035011682221838736051914515062961177906877283886451104030601636111221571125213361276481813893301591525626200151397690384314639604736777024695353742792259420000402846695992913725881686064217454483134590971185028637896407768660151814628638360232764338054196430615735248533127907607039407035762251497491771145456459080529455736626815138241020677600859886281368722387170039354073306785805563421142830628551828502114085402084632466322903895587796321507195900690244228625045981418713685428674036823865144919019492772538850879125496766363642428993997722453347091553080809484684510885471920382212886434925850519679717603948814990814812912047132683923779568958149245093051126615420840097156475463308909385770079500588363880538441435752727554068572858103224898561748893207589564379525617043612433879331560277617549382064172463986984539724471117046299511028407014007955759757393696769355116134263074468920465198954399329599761101459526701633892497736820622768552801156596321376644646498523350512650453623519061372969073367675797115047969064606791081519564891994270677036358152734054488313559359135201660990090792098748702308978515912335923708678348818622956743562918801693566796606951923023465533296617297821988203090532232607059555309952420259987258075079556159351048976030994209994794477444296611091492612594662815492203085437792558965008624044082759071763745073066077541349524421751221042974535746610086232468857036511371149687225102474675870712381602832517857379307150974794539508453701459555502825864031409914829197327390088316833749520829433669801231978466671294032737360121826352356768939465869147920215313923688340922434434554230134392267141265475999521891894043415965841998531646554649164193785324778462453800387335120752606117289094678507033397414488320058869688330961569758670199260266518332124687938083180259697363674420818203331587239133438337316740597958582006005272403627104342731081681124507959502510992177507812341491583522089092772472300870801454351287583271074722621067240401508799512135591746088357687267575507683358145431159473398846169576534884654476950169265163716030371855649298325165168784997809663091334983159939720108474625682138966585839070597829348454879420423152970283120633243540653025768510536412525376327807546003837553492744345139914297985842902200863704293267949392204309083470437534489299119491882464579212668003238773098900204432863263588163520881835624570427281833542593047716891515143948444652846928015749854618197223708497631975139371096644035717071110728370314621846760284803727428624510534444134596398129185268187043942144396165615941877008412541839026705161287943645309825681857262899037500034398472795410158053346082850792684600045192298287711973644127897053460817306443025295572909124840727958488106735645550541598296417359707836844353564935858996287870576628162821552190839553141790859996610242788645702540195265387000590424217633747791333445476736181853306913789941127833669842648255090106003451159340926861995587671877099549082249824216045484196278272406979591644692452683454210070445732199168649187033935953424045381731610986722531586012254904608822264820034738542390427263188378861772876256612075960933378430966848043701973841146010794164984491425820865192405166847101405536940985646871182848013718072887478575796277182112736727892919401788920960460125660755537105214805022950773565405511506189298587600416885050366502497861029920570888834792723642484691600674735543600558650633631654035970891417292399831804545550353977669152705038161285993693428061914061939220943571592762283865877264027567214513714520574433713168655348013343503337542590037241185226213217486565572823711153197823313787149710707474397953339440508283153966635245651000127072471799195388529897243546246438098381340958712876766013164094110869730193267271006616035948758354127141855014196812425926443062896274267710304891251844791802208357407422280179821955086327707212726389822517084064754204332285130232542521441517049620079200804004676421236846160771798934256258792857546522596496659602891316588639803199786625808848712240206152856120445118143136733262498237282056993121601401964057498456031963147071842354330997324143533218163088868941180886522116850071223743116189397181304468488536201898400461753987895258921845962591523804314617067012421777944446913800287126655958609700827487785778493814704241469317761853211183039379404596180946433972460597132626423769391892864629267307434175114395563255721201621217585785939371679971846915711124813531741165658998481204164672108226678305422931445797471029082704782451626142496967461328524281980343578136025063812438304162189232225252648795803226580091566343543071868683900105607195048796055799062206058408658631338681344302786977255842854501518869958514461786931638971332336872007774197265361382389991252758928831283120673824480730794090897021803184033826396210387764460783925247191454310414207126669471558142825876631418599434128945594530350980086050183249593248885593838884662526137128860129691172361174558258080560397826553186176170235338366003856367906139102758631819922855635459378466448580887812869857143465757598760545096471985243498917377867857573842150941383957652333953606446929708254252637424759544493331218227786977135376903988041893858584427680800384371539101520190832173309761379609986320512367413408197945485689592897389678137181424060298347657957336766673896351459696572311347068274188036562925208998769170692025119308673753791441250502988241232028936917039034634308275433956983085712700183475051673508264046744434105908941029137183528578769239489730089143870357924014618142861356915537826001310323022705577663288447915271349132715892229495288066087819465040001355420053191978611568043942055630076862369526189151537800329143211727943195863529662281980333106872351658166992594173374743367879595712389040208135514789186119185365861895392865833399804770724168050450093081338640555766822910774698885175948335963826968284775962783012789439733164992255867732229215054429546275205772505321169955471922850051295102196487810351770534124537601815044653814750717028656941549618303130475022000769383226560561965561705943655013476992760671598265507997590463417061656886105742641805463486423460973565510212332786722426466822321698758453716505204294589727857179998491958374360536924927264301649908589914248388489852167393300006492748651835107713598099322309131325907260741978697445580639335940343596555725114033964761005745186207681171380401604443456751365518050487749057393149082042930575434590952962344893128379770122011912688393541694199793888968914445905028576894895993929782130890039172876122770972735570916188691533336743015644344537731124733439443981290509349166128685374359020896307985193513931532450150270877778687537772592940142896007071060714876455895254404719174914120977765488159751219984146764717951649150654492994221071082482536559025875815204835345823943455756677317336645220607884636904117218924187197007473207710894822709271102840873378249412538154811052726489915728864568846525929319877203995441747106090301953608201081693965902360893677829799802381826936394946382113670970611418166020268636205260589184922346804959971022630071283072882093561188703839547387104045740634491569888318547268369897468816156708954136622276948013691825401390034362818014216102253869409063253321449711781758646458220376555153854354025839574398340151351646270987006657494305074678908704796922196540526313590107159854009001908793069483036721486723231375915713371557550738452535173323080576599295284739375316468531154648535664414406544601274750107089665537642292294718988591543798392304949957420072750299688741029774733216213426047179124438469068184050865859016392142992932141401789258532142994464922846219765419905203155856075662666781533603244153391483519395292693991280342568131038293300831103805235395422060840738040862264136756128910721706291481529975257539403581626261593949445654008035739328690909038553010148005288506749203686906099551983551108300135300415100307672219522051926577963572045347214606850721366918033796742390522932703581599412284319538656353547682485816306213741326312230831769189753329978718460508733602853436959028292828124933948938003721280913933134816644707952303153120830883331595251070721379973805057945429820323441037666216582391464160880988702994054409026282675235855584308673823637684475567047786198956751477616634319541060536359737426914953354625510569630541875799816189767601685124443415430804649957674326481840095044284562761437853057858835108869930793891132573366657923307469481267471796499140779875800367618224385993532327239970495018243870328735206822726957202851139711699445398597746004677642861933680403742283987796860681520945069786141601786422493328900250524576987552536226118193959456026160338647875764343486193042309939032873702500110978745013735276140597018291563696272297555351351842241151712442307552885397556468939171160982280478717232313350975521504776953416484210803268761634813090610237977598222452168324560247979052412097724442663232630684526541183741761146683532432473500505378358528066937497071718672783023202655837337958871053392461462961269947011571846787125011565157481182221873901307862137718788834723407425685636928432175267506019123732753587482094536464264602561313426588340099394257319420316242097226806851562802929385148186420731874002874283144484539436013732170009469690999166852051642656994221907088752661516855252568455959282454426248381089970399898982051993574238601640928066524991682233439126541588688482309115708911522631238465692254397545229254385729834313758213213744396467982702535615682089853278370539404451821204281280828312951545698329540065916213480470436214474020323055644369715818345964629659271306866522715646370305004231157225384354457288623966107763307858023130054906529273793539201866158526434221146391116217002220462626824860739961245265792757451502694936335416872171181318966459864352090838308289042044090297349567860258734133865473635340527978817958526354532174848275451703420373133749526176053410735661811032668701156523133528162908699015562189013216208418104706574585630688258293631814059147829939803565676405197993329570317922611211834586650175917062302041119518053438152195661883551961621411243501321903018269475178022017907233282541539310475901810559122638716564948268828382588750675949233623282990107390419241014890558892000640295556420918896760461013885526373768737170085842912357988822831182203468609264500718227577777650155322613272856865375082684868580819887490753920515341794461558863000309463741455352261138098361804278137215619400140306908053992097067041387681991289469555022213338195817665730119914918595876127120072581691651847528177433924653929775491549348741548978998794371503500285624824027670223273783865339884127096025308983418007378400965214083697574609468090448038206856235042507619448089494886388704835352937829692482072522767760417931792194467804102793398739165904961411458722533628425470988160512627041813864048816510000525486791428749388697236409284873856712307642897499252272506099556372748342630602749295871380095196248478228324037422971575408830155314239325725770963067438283463404579007900615193265617191447506826333443853782473758532529374183951177202422070534686553767415292878244246242026694771580421410570041620584244790338191112897370419897010038937518085968168429611792707848393291921810373615364171090199827261435421462033094572712682765506461136333756646712341445064675628301801255542125534644458490974218734927262600298178923295426605157362042475848147588230190270386866949853396085435336217511731724386019026530506095998568618731941161724820757548483027397054829566615221353390145640199372770763046401010624674142283115500968850832094135105436481756163197617388492258106442508408658781772795121070816874417756006316152951107147751327136220063946895955421296067395401067971868443490726519694746229244309482404656836036363626492276431255427464800100945816750917733709151761922368461037366899154962347099753897264376244117652954987773648256262650562358938654286528515247753892013512595121217081460788138558665144763937703719385892505447757361251109942173933947917962360650487685068217933767734154099180414584326365245726474617133834605253248116679254420114807778394958610289713691109421959440938287692558174633036096895515563118217045167635062010221496633544718296621911163654637721196317289270067846042883497233437936120992401419823174151729264937006566511139067818115667580267839342237169650728414142608143015679952031964688786703297562735880170330675795773252898225336622439836159367690889741618514514482435049910030817634752198012629772864334424675713805636169382154959662400623912283866622727883125580201281399484034899934893009369218477435813101356732966640875872214361153505421594543931186705375777046988740150650693003356383915828579731219569277663789984257009740596559083962184610629740764418211462283813508915386515074631626271986900828105000745768216580833709344943386249377475709636310790796565659142648641793482179546518125726701955744212639002294864222509892445440097928699120690292724141603038984605147024150278356861425610738095079586221914563952381911278294948616984787201668560135781002746042609461301514890940961384873597967767092341208199288112359838599719513787669665088675377345364891159717346661460171783935116082490013528248400781658934878693796281583081723926199337298663871576988954960083469960655232708306187067240053872413778436345904842865794399235382410822299154772505771742992937591848532701118816881363385485536628963715731080732987974413194188991558317993218622121643674193154527386743338715826793261556592556094052481971256110480180380787719611990009856296784027889854836374750010904634237899081431881915756532898180642944679172226581531572296921800392087531233661735544589709376851682249530044975190807036910704465378648353147032313757513007783388419542444114453604659201878824514555101959536158888395898397061823714739550370077590421795287560712358940495612910047607659986129730646864850224084656681230987851870859852219013927855460398343635129773291658924088961185853507279222022383907330832343067349967017759087632793424949348215445826187270567860901461391826411346826137936950225195217246732610730801650081437727600019829436713488685889127269277398361958537247982107589513576592935612799615377900436264324182626681881325590563991637110105467111380972255534476827270814037479386967207165016316185370027207770704459400616146794883283263220610984464540999854315256324080774693322311209683390924608560253412522355039295654618506024756965504894805617377124374936940682549576442509786290152869552236173121368176722393528415735539213299033880570888891812900649113358618511505100522208124145854320609510803762427849017394901727889072007162391397160684591994199682498947754364302102446976991016508911831198431276471710741297932565857466034176375560777382468492616309143067971545785277573549366480821546649813745800625681944292971509065667646770975894137030899197604903439621454321745462026023005080651107499816966316282668531660231517315120075857459445912545115813082107720849383229795217670194074430327797131268148813105728040748341523827925274081803197157888221763373554460562218757721895598524648607696955521456268767589621100626460972648860131149522800503432227595110207094126568155338905698540290913713501830877305916045156878454710788885787193083735543864981603409029931034713962323240388796052686012345888595146093449610075441289018090532501337883135474550869491832251301371382001297554795505911681925752173011978289586699153168961127718826110128177774834550347447893910363088799840081429525081996701087377154913821097631732399610295044052661617407936156365517402299701340221417652437426570504037747516975619037275584830294803305400194323784716361450619527913775260837498200628073478521784546875364851983779225135926784235142907835679754448798029035821593311742153333163952153608289338807101659668296715603201491957955013750713718945428923034458372289654575544611607867318392062989586650022937691748421808591385299105706112156950093340223520521534579795188146645008176049150305152647270776274225235676407957880821291257861580209714665675078135897167113148409624884914382271717993824983707999346275157784478316779735268155461918585233406236533096415496151967517106640003819190964804907625921544883627579577015377718177189910185964696917211925899177000739935664218769397121225632355061299353187201745256525708736077269060079033577829482202439615500361300039337080695089151249893732970845049458784174404157924860226524167306738211374672313262929646272319291255722099175735496364012222041350862800729551018701429378507145969513304674783313012195106906189283559525319353869007010947383664833587285078071162857287446217095529550997190290547916591183001738031229453399420803295934485440151934728095672425008399787404800151905854651057370713094022806124253379461863636028649104318665649830416196884625109792250518749382922049644319851588034377581683824111257368559751857722216264317124260384396310785970020584914926278585956904064440272775494378627376432812050652675367975441724228104464652015306848180505392697377280622749329168643425212250129201749356171940511906100743907451472974865494389118267188822169854215264135283019409324320090296715957035000800430829305222667120407659002872912893465408400739583634321909009622495547412343999751901409032451451321672777723511493330863766552347995086586858032392374918293974182134397565574919338979969313183916682751930773037835713589717194003887551164357448526202804842443319840319485048748223360791583360437514713600666286889481039339340304773259815467760412904964003513002430657741697861053426767220318715111863329999248461807499377620257773690785500987604176788755046160088281242950484732617177799901875898721274468940798961474759916793752764192359822519910829940916912250253165468482083911668360964489274598958113830991558136772732362601159917085795117417525533107621197351513693665562525985641891605612134998355153556513383118014962973498974851081849515708060676812674411217439322136900073892088709356500316652838850851850641674091750782947258084188279259977286137435317925884002747265773946400488490935586861407438970440164702611775466030196261885325902597376329562265038184035085783776538441737125290544350128882455300783016229297636235396426113028647924421943045797675210462129880704759875606769155071683997097633979202486967253118238589767614648768379633069102427495092081371917353588220215476837671796152896326389692598421425940518577847012479996657813770237001159708943368416864050083068781694939801947512017983621474939435788513128402042251321699233500796343954309705858132183905381948088297667518317493684490839930585763561589678796912915798853801029728481605715217476809911184514095032937525679243104546803590996617646386988932733466246660021477231946413036949940451910485523269583048944638670539098333691088161926205963418269888781717540093934625260068684877463230257691016955482591460758256234621567937481256826937442752350898586074428749407318667608019155143643169311153171319664845952903611779231726509185044380914775383762380244873823267855825231245919530659649495099758586561672915407403338634472522596703723055480307361250016368905546897045514995845034256841054604621218984200915153720053478963007836144141918590847001935299286309498041099214637690082600910882318249229486370344236276704557875282468222196311388748592252660751500463595978551791697623986956515242017081851330899012640119744486483299894864589862914323193343603597868059839938881973773195799182071110681563903924864686357102260178367123096524991175635629696214574829262369073663499326256324171396033886998501171153385472707892569273994545039440599373149209356682010866200073748868319392656271683886083974919821695439319389496941313796925845262377636023817818729173147102957382482431579976964966891983813303354309581801550644796685532956827619279585537932724082109771920856981964319509452808783931157111087538977924399888578266020057896804598181802877635490354574416088857804282765623638392166674561638210934144676513002838468206239525231965716994137868519569507665254074592278291670608640171222831964126508126968429024640274597289840205445088081028493069948112946834096618242361352323780353662734258223036869975173274305965761492598517737176097026502489028724481656527728819583585975772124215083499476316555924752313888155394843454241247552134487389034318659345952553647486285882140201858634515392143634648098426371683090978058425352291104151196215698818118777804279947261789134381364446210115203292340836701637301348607988482399360778292378112014481976318537187725554069633775151644727242792345166240882975415423440495111898657486504360729644830510679967384514742332633528147100162512671785890129554143517980888947219868186161257784882338401923749414182430952540634088392872677582182806749665195171141228159812029657436076859361378347361470035021070573325753396578323943195698975389601325930450481963957592458081621734147869790429598381653559030618201503984297676804653438845597397323414586600024759184747778377309897966666908588398911151745579632816023457482530701890257345477325627087938346610322246321539296657475443261758905734121585255595461258149053009912691299093957240740594813873799742214743742183661983837129303500662247819304115427558602295391713842782238005100661203617457239834035242730843540181326733174889635493566791961518807016609419783348409476950643482027934013777226940790789447585837870654508111276505814292804240193273383643600984456096565165455775336608085199890800068768172639049007686924993746035961338272643626320562856898614078537036774560377089705192418549818530617224610938900634143634040489206034183629405739971789288789230159028379101451536133199099125133705411428564137221630526821331059080902373378158266955385530552221638079652303301476656723975247525966945340566475799107129458742104204386868468824930733347371379813103443058318461495226547370023540224318758784857673192890386701624575225925666145214818117489984537834084751022779567340147540784191140542554228055101237416490779717763055922195360423892672067804762841025628638604027163189661113903513623302684443991115655575196788122418091445633428249041627707520467333908803050926518652526267965508298976753725080047658821773436682228020341684045075848698098524531913837260196421185351544019769487200813317914841408224234430483170245919226442352900068196080469176389416680457552331428438431229785928013689219506163653460458271325936663295509761262991834080455261514192204996361765961238016385281055933875996105588922592100508911712843594538382738286645333507560023046744357258872379978055490550100989298086761645426729281551523951467683910898085031291554050030743544655421218525023948407444792529743145887147792520592364796522833636028703829961986158358917407816332322764167888946535915500188581405707856264130611161998642471804576553731659935987283124819668391389562449809788027638822042811022388382057397483473158128609934097368170481078122558070551410546109897002131261140726664064339766604428908326162843091532247719119194424308990737369698855806701569110398890343942689541100003531287021579669919215543156947550208780784194697109972042583324169457349914592165087870279043509177624630675136638772032526289317668683372206354457748212546953941490373376919661627633453107493987808877934888965711171832299929918062085014992001975415664883849615844297551501870574561007357344585161295327216251151771869401322313676836259158754733515535784185119080224950057820123860993783344190486304565597738643741271007976777589435061891956472557096832484210205974190034407925445738131525315499186494634500987010463915215390411637366900847407033743859922729236943595821604843162418749091759535391748433046558367440011764550328606293512889279945841731002607174289564509640004432212521995710083588468224026633356215234418128263270132732595229740962014375506724798560747904460081298230039524756452824202018921518017220413270243927592338222455450618059778851578916695077670002844382749878467468577875914989164677396105145034871992143419260846206133389152356985379705854779049488626062655841067040455052251032356135052234498026840249468148507218043121035520865639017896917256814780622377767492188508281652024785738377143741786715304498643970628746865405213114364953100296354642962782202045493024072299223848098666907016034036932920873428599066451774148240053433603847743023350890866530564635425386482279798652263963352515984431958220870877427027108345278231980011610985291391693691020126207727810969474793375647485175435647959924926919125014175426360979419686110063168619450559421811256883849053696790622034064745694769453763582665808270942172590962586795187536249196875255733072025694547818299443402435822301729454675507640957477452319909052444324590450545355056270215136602912326493521868456155452002289680780305171441449403913053244153985414125777510517896541993681377092070639627355087269587194962149027667947056506501326416161964643249842630046970086730761607147442282755493582315428156512263497458650201324230324268713795207297562874503172140887559951052826966346362355003511682276243803941259394620557659396703772315115829700074913792719880396990207654051654404864825379736078064730474253819429287434026977017599822334975628797171395207273008771028182714643336611143803154337301762340220725671763481366421128855276572078462355952128288581788802694490851271093660689767556579804058446475181367995236809536335909656403356437019918737292751294306480711977265298659644595731975460877963330193570468441011095209496385214047355771829162324495783770600192814031572376864307677071461421747942863426010916846159768743214651063943464933447170022805592001207572567905264713117126926029629555478668610136346748905072523275040135143913442460744128340467650745172588255942164331517049170115253153025876384582254147309110397439764155975580596355756097082610412116302875809742016069129591700904923465556814458524525795403309508085927296857615430513745337442874777226991610347321661223701455686643296426416549592388971529188891550703326985879588191497421669384442736022149536211406507694992926642417242996026951547798860642211169521746291506445790353121831447881786293909421854276136750479615221701867292436268884988118870091735819987068033236405982977715339161631695423959446464976795877927897611294152572362096992798598602922535799841909756761687327510017778622297610064357921771655891654040811628360924456126917064677931041029456625537079722041814229045047084861285295186412750888317415891012726526049581451423311572604066367848547835239446340646220409994485804391246570880939766126879128184253092587000899402531938172025503814942062808957156271521733843807763355101677200230646992765039547804755620781219675445927527656043701158254237581328229988760630855378776564538776262186040208791875926927045363307510629111097124287191956003612718946707420033837097946788726733302142768824436517918379383425511120201079530881271653318520153467642479041764757167392888470613797697874865053575212381361401828485778738799004317095133229418075223134185312453158122576257967690957608555989669758726137159164665972997650854522773989403911912218358450413827910121344292263198732274641148917400419933952722999808256427035768754871899901983464774334031806837370005195775723556923958002828821147500933737788516688192003803442068933530827352535688917092840049473478522306504085275331781338748294107537446145790358178877877766535108555811205685447840578037110750641893904014296815345406618323845613304581565528800283329102786554961704922726670625330467803539255586521520455674547988416185371532544518340411085577436214298153655514665935472748191603546566682499556704843879423571076503160436335743139729838418249992975108858845297805608251601881264027252913088526758778598356400540819372430587916958532983696182129139986052862460251262479098848579314036566871106299387106212140418437320682762445352379093083812065996008679320880235967049024844212810330820491062706486598923310290384248725257813014545020808664421818470845982708697544681782616958211184994513654458916970762518451880941828790137252832793486260073496954857115964305961171105495382794188011946594927988710956332801049712003563219974361922145825659933993569282447598751693398360875176137237227132777418054840657118475183771835302112752731503954364283209198121410123783544542728306764988324808350521670772494331048931822438515434423930551489894697747956477480068047171647666504397612355095604744975486079420085378188158215352505725096599777849005929323613835471216739050405675422439439167831934429967322171837162923379301833685864165695559478574422043191588046521250869517962654308182309562660370602132338347281677026262672214036487083439631125935342358197818317755973222360729724329967714621534284454417722985931873039619971756777653298618233846850347624644455670739754736402973042209553384023704375599345946490547387958733687746797558161886560501579498879922943890308133818381462270445060603262952636790347271626035687081553068347657931548504329287157869075087239756267326699591924770158651052575599285648467503399565782880195027214254439530203354395296977540282222510728153606639149533814958387121537084761680587113538012935428834957339005998227766733874927641106670469280144646026778414718033468715041815674501242297240512666892630528128277997445890307377679021431682913046096073751537973232220633403457886670074837590510054009372579562883511830348277314295328131371669227787760513619423619212288023145043233844398076421362384754391770452450287336567001238102739289156264246567125710890557843117425647157977417369864405339859863798368094294228084606288991359172974101290757710638100138204082742166778870727624984148345985816331522769921460215000989401481237011429366662432470633587643090187946643533742336075976846289295102177562751664855565772192045260682483144755742193858269683270554077049282709902268336865313267813293220116004261468786937160606402419514782252671563580948411085207643172246759544591334324691276074439103292336552002421641963346608924445175539510101234534088616091577110875913180827468815355149140832541933115490275273641235747868476789629411917286336833781020787975371392511873999455056246403257533893543030716207580666255334094129890837708315632541690846179603348992460584603882131247727217290768996046338936077370139640244519884745756356254459207110882305513091841025948308494419395719550824812612005913805504889000918372267968947477455590020476505660056533630138025460433465444942707039819637692339940042576269520320857594546791765430146158476327229382748164769352242062142782282816249124112090314555835380820520930875740619712342884294734004979160694237818673347482583087164631370031557588186936405811191459633141726577100162742453991915933776654223866258990406395039744493545984602791982579312787939221464420261292799013856839609786745773217176436881363110727571841591026116722399945802404760756025782645549209202323269148578513479221027605749090855249517531431155756890433590918118520946851638565064236596212282976878727676762484226400399898305938544745403019693005325688533633415339109980579251748762529175373806024315748388395261989371292607441148145248726010966105605449596680074574274938017298191621811479982129706903507266683238447130893372639072519925421052700873095466050644951604013082309685600051535696609682152929845738480425787841540715131966602771164620523062114278289821416329758000317686571822804409748896849158324947808245125990925281640889647436578438880978837588383027040115370464922229477450896279615533641084689513007287563756633412594629786678209341283400227644873964187605433730709801477691248631526099028838074353190061108224754136568132974245723161018067261482820162382716120726713377815851723672572718103096158055325388145349631387616179682038578456066482874072596132313788312216099740543591221221209498947589488623349065810670081677403876556527697422805453709583197729048323677606793963983568802221027024999019976769909576001307829039046703359901923273097277854862089150382460447014099297147688620961869643760465733820517521675629986962362777156755115256307090119355108100588121896128343533748546152571378392809285114172575425525420839873997953925751139337942281030944144794884802007916958098929089458634616800527309413894812613467520441148984440026383812320380106273160966899852912228557542428855453478310465018673119302664918572969893864266870680612090854651558807063671406403817739110156987449688695653076650663876733064829751061324775943404794745508937547656471871302774182939644639849117045225010116381828905457997894241782956521193355279254760014232147945793037134195704006170874729710272044914785513862282130540110361106217287668722764488929375542109031804506000504795244316648635650100720078258329420943699343306273190796242016442149876574027398492223048708590995159092954818763956989984785968593141334109738136131264186400293508024750755812305820586530826614237011684512155680609567003887471422990796348237534807424817946416805095557600169420901355385114173694010308706534613823752049877677833526849336515454917470755569450205328236720433028845974819078246596271984327679209278651099072265861997595185848363940558716198546226068091766193049835789870536584146694781460478971564341401967381003626344517390263188478662590924926669735896715066823453199370184062399027226231498230962639745942755342682755401392330759124055816380890268872188156534683963095998051590237312408296128234948217157863234470017856081378857057580260164026373916179240464766757519987968217415539631690626522335909721264731618094278847808507744938345927533315067183025759800754422980173641941329698147319044581308766848305944394357795993417698423105268692506373521192026178846143624024592792899629257578388157472843146703582085244293292282394477202099461450663248914661382114469038850918972373880837003322435027562314543684709665221481861371769031013139830274075929867523260824698142539128947960499801295237744223557858893172803365475000724690086370546536459177564315272300849014764055317870786341002468763592703592013699973599906356053240126174865451929447842148148181137281710014687805845622663259583320943617695114291103224067694481308163138800760055601031955075555900806022561255361757360616858459200564316979786417712217988890645154426429142359164445677171333495779314419423539217917055274452895469429017596330097005443861465787517770363676207893860247670786456266182633086093351746671397947905688763376156094801245135964659497111797386181347691225444434523578417222638159042885809280363461305846925396603592779824572869274277928689288191967275769102411658240397982125224012099994708393715087406864749449947235821342836544565900680424052556705963995040388773935480347402171763017854507620637553658561927386358332244902099367497016374841385214879473234401825873917482619512561784113043762401163502250068373653826383699733200729586546768237517269582097639792275076457468985399460224360425920664797714401351534565942763717203924908176791911026365179886214892073233735611783126382770045033223072263606385497721269900596153465255816361088139496274756732578722341107254128782342973861058735982460020056671168117106748956591872037784623574249972931880589727564927025850481934995914698655028200779050949072740580433208659726846809124414870929552611823121313785946743135502073283675840467436584604956431502046633913034086726503952586211192259916959416771560803843610301665873078569192080904269090955409343696081364557306015591046121888998063127251262300043214979972060073026725999827920011990286369081639961917417353591062186033864397495785399489396634496233311350283592678962068409498796971550869312522199832539736420950504127481421244693107940874975289352978478775569093977747437503762764048304646732641836782121194995216032129761462813421091387411918230650857431759985884272751602208690916549519579375606317242832566432773592956819881959918544346884274790915766040210501275177586906918448605640155019924133345326127916093932207958171780398880862191998764341381271680530562918629271584707526260730065636990730081962115223563670798144739479061485200120223591776205600467218661888270894535843528950874653486389294571667596778158243627958772871881913041074388059914143442232006719483754516024144847295582051669346934580480059985210942742724521220951890822605211999021468454039025286931642589159375174847247562711666207285136828833014800560757119491918506364968182897162904170623808398646923349957529545102250482939082630396407450994039102704595237270757270815176399863409579140810870816960903304459637869956717478522220011265644932031807712362860967677565094947895366337865453442491887216753224722296862594673264381675534603699150181482806491553375370722342404393244180848462022296348167506297739455405737804964912658901808087371377922160498209609291976672453057541130399366114423175410770376504068724913978624731831768417077071501775326201641200680729264486867096018688857153485397138617733254848847844943845573824226128262235553294643510272255491303492725360593885742011403033109982216661944408699938255220120482898996047277514874390311822634798930406398282057815461628006199881661689145467347264728091314467516221322918900381860749340921609958745163335191644644629452400710890859411174583889375048531038533476622371676379739568031630638566420653893856698614569083340089326259616499762548010038902654035503417950496835445162340815898479319348721406259022866073236998862565933573587201650635284829970654878647506735332331682272605280621559378506889537275405644004246817805685945576675698485671324848152214607900130894374972325794662534891350984590424048614359180033264114061408334006900889232541132671972517251766946077636166321150639970075541921061685159085732057047024440372979349762596367856178943770891805858978177628337057575912889059270473834823859901333110995006388071307207434125706407221681134396864361013473561638112505375970214594775599459834609011687111730542963614541302130068215794766471461377409244881503047200197940445950364087262005465690330071538603795880340551392012775020706545076338437708386865135194103859132986295708020281228441794072619826427676382063602253423872129117031082633963649676704415476968489407959715493255026312379386198460911441121725496475843171139433299387185044129142812422510667438249579595308380847903586106284989222473096969832738836580182223928643252486650785604220881735208180795568281575999493392672276429664876714164950980529073034279764077838072311651010264873649294649199048296968175541864870502646933313685677073420169817980985468385048555237208641148414412103147280428234034503688225864265946502948900994691140561638729466616559594693928673126360211686380524818609528359792561559540408198908838031265519163624960473641360630186091908855596985230577560267346105790680447513705401291965900535778885386367483317794764483168077452725954935280054356691924307660070241761287123195930611490874438436275177792377370060260770729233050414458386634334308835682278632421956152376283483881146687278462924050844257097453853818619669930857024718991309887763305750299043683776254201105290208735057615499823167806058319913142350014402216536996333518552013095958549694862674839142880664048992222848857251610214127228300262072879736519161521994725133064550817514227749080397751019815204321866086159636940865336829553808148631157571334604821931430642265070015878576209626572028633690871869990281141613976199388528044843233993850680129110974152415343231859866395596327746602226025931640984635922404941460755634267820094747691059958717010672493091623345208450206580525864808529649067338437897170231178171037230353557394959747191381601339601594722282475480771449427512487686023853030996860966037127060955955414311688262937127073869641068841455473705679665589835427326195789231635526517060659243094382875354416164763665713687672024563456042413450650406954978839394261661831783068397590095269932893152068599549933673663581708254617908411764321692115818898201529846889221663514082346111624931396493881720771310527362026150802475217676905654688522880614741002332618277641042703493489180737921535124606201127522729831321179591354190355890462324062810769201126922774041987156419169262476521090369197324357229188992621856020592669482520112221600489737809494373467802259479824779891083140524569549313112061905857878920482523114291431432723100792706728965198692611635160191695489608569303828530662442556764138074094881308747951478982902258233261694071092032872537200050762031924144937037163524151169166714464574293947342706082039738882689777778707367244092141629586652525181709317746759430508019931082516193380023859375042557908755922176197133778012058485263106605657331234427975853493537883534016422913924706050272240215672704279467825972061962652004963623675772218845964106509829340806021307856486978082871398506111731605961628483622120379059518963321181628799367525599143253088057310268054220741580197340423781095026633674552994543248674130676548173754074870201914161269621246356740276500192444009233872110270834085725529478610371601964866759094048798175813730870286460512412714754305716602972221638263601161951702515720804229276957912970134597032382253684703373380463447233522285137641990182736485593916268056391369942174588094468376635412679727014238552175627641777125784751486120852607002402681303839085135080935723644446668849255792578806215885928226676161647205264322238180786476004293105720489159527504198085264925075991883776306007273787090408601516762725090963449800726210129305372130015313553675104254029285713548526546889384613441083457724711550113892531318743170437882627372740737862369785792717318916674385246184064362346762302222571889945413875127067401305419143436057598027105136178864510108747466505892394423183230235891111526890368299989453508989602587654054023056789183272798448812506045861139297103586717265476646028295724190735398043845733576178148439008213655834813822919328621927286051055873390886148122252579765525706771834433476289374475504068124395078083113738746273524802563065394292214462141933002378027068287517121830039804326359241232803144563652907400372085706239399077740205003236613590537455145559236963946449059032608931740601602890162030067866173893205317009101010351931704599841802545874558598256699661962511920365136205825126707557297232457473108588288782273641194098410983095914944570620461651381528028519731165256108384246655315946996641412001533473042795950377348653817359667092902103874977369299896518908953462778256331143836731259963933195862463419621623469353785990507430239671716092971078719637439071894721065098253010454657970084629744580586208383321319597335690768812048410947934151077304368826469190515967842685267724215100797053753805448499378191460909005675746146567523951337643932646659479979288615346110220747049505948759274944481205565654438011222810616590991048932289203243627474946333551688954878290862492077520165787748993420848920928824136879778588302346776109094011828183829355771416963471151382485300571480355935151738310172138962061576221569599466534628917578724139486849023490453349062815220406491957835447305165030545193624611007322086669739099792647791293294028807513845247569714617127725143787278538121227702905532951628531849924098580307416903841328536308908406927617337061006300894532510954241070501816607789659966992763779104268752485649215829209690397632678736539088606010782356410932611435497545451848199023036057394426897726277462657349478750625491939390476371535660652697872364590199599020422658291108149416721365593728642303960201171002081691199104482804231185769602367412887839790255391967137435169579361109309307415757776276541942831603944465155780394197599001740440480628146582287105996177942418234472089245190683126912171301774780165573087906726690027353813556213888946299704002758722638021064431496174610594867672256312203786390483467041098758726041438433368401417126427173684351175405674003730105445080844935263236651481062290020655406124662326065761296410355018546504021655852055469544090922709062931622144551009582553689684989152097770343353181686170491793977793504904220086954289846581168968571034940028071760222457084784453267981220950534210254735780945982421485502843815364691303119894373202898395449852613215353138191927555579734353107059618914169204293481609723170510240244448629184351734470681874815335738467146355528656268811921853461195538445846752567398811617966562392371800292338166153411446683349462439977590999317940255712786501782885082599165592675163260058125901090910968443018702297397137633993963528091360613406086422883334100373590019259083563618509763947485373933148286384019816323634386475276661931724413379267237217249439191336194524494310279680148594000640795821983916891253028976083385189980786336514190223506981567699052907251136758660450991037966265057697579055963392226748016156092937314004034304995324649726468506475066138378178469957405085925431851449347057757664372740496426775335193145442741604621039521874687890787935069043732283178794958973021070980949797324593903088804803393348188371526854587025458279378824582058310665888820169430134503820953889090687916867650964899952922686296253460402505202631408047177390561690304842204045416219870393518573957458254450526175261571302996671299774086193499316054767571874920411294971340909769079787481371960884412453524874072597373287922456679893354503762268834434988372147531184484505416061186549821574176399871434964902122680881020118316262375078492060191837845540798103857599510780715099387017724359679826062283395580971297881595454879629545908213240115981279071751877021623269520490899364486673256534102060090970983893415724391913787193568467827753419184699430351003953119827977878229626112280245563421053960514329679540886939889152446705690098364469969032471094856447653248422011622574248022001920961150403892904290502156582078947997434628295260225377345754026273421067879410591053765986792399299097780426852711575774496504777858628153857906812107371023691542632363260702920289927268135660315144434880740376218035070147760854796956277182025909199018133909353443225413876001963928135636984482193424958083068975568201643822347036008034427876658692246710428770203858553913306097175434902217692202654179903438050775936535326822833228951537062748589844815033889609029152376806286276707340785040618318932447525962894808246434211552051376193577075165723476683006752437745840521567399021060635363759887652911219904158140603756542000220979723738438046253224742243632583268557960305379329310666330811800563956033183850140080123389797819752546472054108640588066988156657729393411254304865786244478217523479510474708583000488527768996425401434984975438516344114593373343396866721234058914586216895811593679415302620399476527122159356463720105179394306387077725201648159608506287088655497580555202647148863960069042879049232387412346136983746954326503751856382633777937282074567390163675762970682416278214012555691167541200333094073575307504233859353688006390565285512563454583696966166112158243369225900974777243908642005769495992997396775341175203734534150604251702185293293159655264128996709119582271620734259787143091813978933297361703482784003018248440207645242654287737165698317455793263522266552855176380115348755844128784506875147142483849333572315615114378395889416035997491872933377825398300015111918678612679579059246903506993371463641381032438457073676202788786045426236541751590151323103919126542589514013381235971079598354873635009088764820362574564917376990229294640316603276179728486221080924665718775845778096516166637016585793404424112026450673060515021678923953119444177296663533054531167815842235660969899046466738454657701316025120887864280439848205288296521940600433767749335600320196618938754470720047598369456685926449803921425242360679992517245703089349445652998199188368619283924374410757794466404931895184801154496495275966270758549698023314969862145907733307258301308035185283361306075414226342850269986352942448824890329644955120701625711917474876395089328463371700498096924913926798031629080744524427850361252048695417712083294190216493133910695561692424080178836239180958291020024766169955762059164938274573079262809621421641919798140551923301312720307199969600961506282424386296461452295770025846916142802413082545847025278894059612466492251422059302339852083011734099138888304919609616946505771070535530357191726315585756140333261481935223242887633886087852190954919801346703397772116875060616592162097455947256659757012673896744674994580371828143271717385657991963599232513793136672312860469337750861693172606245150296495995210766128768833614264731550217037953338843999974768967536416444889312076744332108174159491914854678698196153651031224658697699782612621609318463425307802090705166323184082036915935449333745115630785002873095006486484746658670962993041273881188535863552563758016338374636849425136224232441515503697486611593074344283431968991352453084351859601057849086658861171837785292573231181602626000301951678661025290748015692735496525604235944967850427386003295637093998541347714945764956172528570266087054156730725454392872525432014856159255000223858523205549127316637670929737528556558438575966504049424086706039309828559043940043950153397422556337739788402742940522848070806763874948385511405446929640939548478686932602231470292713652094293107162719526708814569294554521080932407887591035486005157343155512345208515829417028306075396718887140583320033062124832852625030225845080188859168041982323113305351032377404580138029874903266149643035295349106290679518134264150963836572857807771077785663841179460414878647380323161522232910021287170312457379190904461995962760750073691252359539957995578389241647145545862834745825198080114890122910699567791348073786232166720583295778931188240583217414245515768151751550423233010348664802532687104616560100525506907722739804181976141724334443142147271854725862064345409183922018297340427448260766330521173900166820289324480969104043669952576434265070370210139519135698207124787223705846925382878005747278795536518333209079985175711838941140944117352335550599437825007119477421492972344586958818466591573311633051403287092451025492754750570532582855425596591053875058292214295349141457956720148477967395921196475788965557128407491284329843775592580833368757088264542307714913098530845129764813628722276083607441372655485801847881488184879195646429571651933114681065660922306822821986301824065178512638433935716523230019337465809276201169141757833433517426179928006053321221601473812240438850815777936457389318969818747020631559816357454799405114474794174208919761094480702073818415533625110566008364995665500177619488337660770584169461285342064017987173448883841810582641449896036580603849074916971229908601171506816527282027622647185746261898055252821826114036364790180014549874189280024324827529320824403893732999733394302317049472081646398800069273269213017674044827069591095269987722412788679977574714372131125638620100259042201630398602151123845851104042117640844097156192377792900162300131655194514136021875628695142565689076703862349609031906164339638378794495329336346447529781945618363222076305182908741296408584627804530385888847810516185603895192400869854614195324575457111597414192828860397940556753437288639218847604015577795853772609671950932007763932803709277158799849344407153840043516049607028733859326156801844079694387823444947273293562065638166037324250383991762390585004303129352155906276381394504660694279558147562327705661533386224997354465714882348072881998708773494665019645712750296346616663237251021018717946453583444674039594454977080678711887379247236639758176266112973629928642760480569747088292834901338261535912860760195100416085175215849617449668524920452063270738387548409153393236026332234638717726459672151786746209990435567549584054107414226518161244107037527807083066200191819146667423505332701731332781845564541182601862186128814191253060723948417780995412144442658285305526141166449188464629519323193028090283921428124386370140012615862555293666738772859349957848558754788627834694334731131408312216014678412106726366695664815621129744393586927289688442595775254092276961292814111597843274199643691884661200333539800837524668411003753266423781369845434222602093633192954578325553634713006407344688139835735595359664654754924364988910844489400629058169218904307648790289235739602704343564031390407898984669626052706941627538761387499866437910637255748130251244271375578053050311896349970155092518387617305040725504237941551055051742981001265767464020577855864944612600329771312680765105829151166821728373980136058397162722439987090678295065495148951684519223899193498834362437431419025201825887839716843424530484805860917851515134726101697812477851413517544007994140307494799857023416754301628678075601276889770159432853554336625940893842535349234974808054830216973474553824778121298613269753250618995753971196315247734091205293996656994285981814619311358256032767757706474951888981857926142633778723991612176058301455083570653240093860725356979792931270598430205763127571452075886411607650631202974611412228587183463051878483089033787488324204052888204549216941835680972860714318480644368277823320309678416735318410916186410570784145937653557609729971880206406796720109364483279316996185341391127038275169397167282963553713358503690260914497512346901199427827297536969224295027336728880983990539707555381718592407827947454821552532499481012829645955585260421674345740225110741518968176285709847996518573951344298303199294657405763781873242772034224778821215680883244134308179852376277991629747679447678781344964903139732367224577077477569314901671349583041474314718575348611717964987297912991805006254639600013361096466503119935587014609177884805848775287558272063330204761708915780156466416908612084960472124079292150718957711192673067073457359461387391763464610551096492220883106792780612667551806464102744579491824118541559702331310594292075689169393358950916469015590730134078942382771041158742613798772243992310045576337325652802070191092139824858171527957706409811006417843230667099597032182551325829721722605276578996152563383261533000701750672635329361455434596679641948471317491987045415226501209922696343676963403652128238898170431259278006108052423151284759614058415635806871786761837545971035641958901944318597695654436192930026505780834302812295312813707805398943686299470563045281114145927986005765010027405066857709210120966256409763708724162369450395559372617173434353433133431424723067739774437281132009345359029424572815344219069815166540635508585247561768421443854480612516184194043816613104378775855518813856046971393631157924738745712146949700540078682966325119905632539445658970569975652775275466841015573959948500459971191356829443904265856677808983617206120722240814255013759503973682236923249716788688841637556979870088797571851858832371230488108937615178847607684201862086897368714528413539481346766532442136818121268865410417897043283668116067625578055753803130488838640370684541159081284270004037600266557584622119102115169378054721758504701109375603674515170532275042777761358121727476333916588992083560538631217698343725021250915940200999500019474617363997431580849905742286738378363826089598278385263719968370668489976987378671696306521267331571784111114319102243794061497233802474874957153558553699638322611812596927961878257230363831059215598118607821544407090977035848486089457151799485628876105292274623791644909783696320230719090788776035168842194758627676734966520402784503049181619139126278787660241583177459652650004163861306204975737377568703889160616358274954607233215880709900821734987961244947766816513720597393497829426157315007804118543686613315321787270020381977303218560586604709638109254319196525890930870860351533093825847225734469764261091045726769626294387911155037614337109016087650822072710619879146620436363243993967386666065633166763706434886997014006240167923413994737509644050036018264940814680812920655143253168965732688790758074950366718766354368905241376841541442306705607610600002666414626858102451949361052696820207115772019165051987257052692088120455739254618835989241363680622636421636397483719864388418764591993710776924430195614255915096328631138338107820379733161777116405657014195540431302188470314253864456766387554412575826001362643914070311047421503020858732222012657206723169701940544168581472319766629632931011589930351446603874242818228641826358745780965903796014778302433208242332156154347970507490675495148112763908213907467728021123417623051019060362156638862001919136920482802115637309092158155586083878289743135506348227747947925385916103967810342155112631409261673198824431025527959008683693931741120186246862127294142359535399939819900554470027566955451169504812342438566620205986247100940462657943300621811690908181449863129216544547495023482241484130500790283826178837613497541610034746115933015278652096263665312807425605387289867001621890302528124393077780212681831013894022074029460924206053214133250142523653088518922189199913861701636348442507213712832933886949924804904973451000759627770789489464300131461902372156059270461188717507792824519250386934698351529869502803718605425907117488077295981949662186712113037861543910921033100732411112378143056913613725388395874933495068168512354325854172274423218766068587860808929204479397773760188067242754714797315609610274648929451656756046098394943765236038110240617114012863079331460326780701346811178993496196336836964256225863761790980554152817546136441851320699749737131250903709304019206815204407287936646697579661302101467823312494021133791461292857233137664559115243599911027860082215335973865756808490755364369515129244693217618276872343153122429143446314052822985772965542535097467654103698874566776980743956847894281331286849398826354409306410517892569230395547415293110819521380059459462791134309193890095638268237761482290716094324379411105031666028915079228654733624147995671041797731805870271628272830455949514856813572740881737656446780104249637823177683368977325216907893565705347292461456203267605016388520729536867650025056399939994030000380052699746149261987721422497461474561556482194963959047315030507921373841072187539387197731844616212783160725632539464452677636103779637998499960346051446756315007504880787685584460687835020726649920873282391489626321198976537095372582275173388905257449345401120751964799273808512978907405568392875530469989214257432866211830976679425987580061849985608922033982590077790832351677117513626347179746481372121753623461990836177822173423008653399976273241471190696961155795878073695538565230904809512108076816409624751909258601154374509315550689431891656666714009994826653826006367239578899388770697195591266399031643726900509829689911739720278554225207806737541678046510082990716956899049127305153269993982222842808506720285212070598372934537028689252117412378106322952892097002097139433814562654090951594726807048282641506014438266264346338966997950451883138177267803417310514777237816670782398422260462904356934751260670996629599983567536158207809605243675988088582396184604133870455703139607753202374477870360539454065809557998707849251656739085481343052282803674550923801359848191165815799599009015462287098052621802961393776560689283288391180831701257333240941646078089057595167434604242550975012676044021155469458055062881646871155622198950465661948101462188951879893462051871794195454953814698107797744396405989391969874354649017202504807509226477894076296731513575660415009104478302773245160705907862274397353961519109123554552713543049845671773142506948510701248910758993395172143217109945781683480252994969413142547506953367191082846644416783304909845641882947484972311087825357148327702620522728393306910158051096640396684294143711523816991329783282681997239164290219334090444336340495088359495506873608499771059709777780917236142927747058089511121379442622547592192071824479851819759214555417494257891699385140007842478485111938812674761479683087305398971945701468937062452320195597394286975585333805971540494523104349841928544361293118671290975888464887695748419913472118692554569999773588732685749716211988218238876209805773446554433013397526010280234224775230813813106330748585774800300694758128457244785015656236478679868399839535108237334812192908360873329989450702638309959010429486505467652560096854251175839227855248690159405006307210755504675722900019690960860203642179930817629358567493443416205853164484792445246797901324672432591117395037351944737058049500377939898497697331948882382082884946676670485735754667836787849870747323014996620856268454635090400191090463234887772079546009929828902803953226172379431951505175214883587022919198644930683742032771763418715471908899631388876167257960619235826317431893009878341742281161183812882728862679817938172288224282774721304039734515176410822794266871044038522982572603382813819569677096833673223053276634334701961447368908566310011337017722709743733729312882516001229267304753763354762000672360509346699110456157066605055608535656362231815829598239618361871489700608350766788920315588513334015611079240608887068909929102318814458290416520822232784479508871452237449514497626136753757809115263280973916097141213409332937403881887456071414269539807098802599621768906168345416965216244193681259739649972605039920646250225319785648129003551721578278594170274690816203944155812995772946157342111136279633364771535072497669286845383189937496511361251819425816921141254145555070508916003566200674383755479349690066556748732390202097808936063357656100987888687827849897855726482953154812054055427563541513712652676499089289464446901148522254573814805743598781081303386180013861828874127859954790748113870515449707894417817242828369029755257482889741655683476529282350018510486562042973131271071678839560490394932580547058405534133688567805935628686815633948571085226173466023747385004495968622763043596730712646562568674041412756179076837970923154020706275629962912821818126063418496950658938018946261752692452092812599327244980827766852635803408302824568293935329181293413342168758901673965413548149141458040057309574803929332549302557704533280253212624840989139039888214257975401668894564409930577579261903919913717018210181382452858191047553968090095562031189270176612013416371481175440185951162166783043581220325409851106555832324708963936574057258125910291437493294513290461145869122244618833802871657353543080778338219584683691893980069405725644132038957725022948228618125713065142245925293804951838316404354498907712122656424187571407360206514306576325103516554127239095077151432579510928198676474154984975338250392586210569915562959511938008600176148340035130991505236901755324773898833120171300003521983309263033266479877165529447974216567834689387846428381402764959442185372538028390478678461847983069254676784906020086627793182253828062337722923630777247904766696775918120706493480276288369126387555092728290063235622923198667301678898657490388717791097194782266723600828291379212841558449990916003124758079259161951900463665161938524042072462444310779708227978694039558203544914042405511513177580851063873626700291155836577994089918923245194324765407484054117673900171912653846581835679384011193843391471379708754132319962980096684631836699082035894474260359722226132564948094274072013285007483721999193089550285310530809612321214159436236818567335850101059737663520847797689087534456581387465901555236027799311431506189795134334413450541938637345285176978604113330132121144137749539924610386422750997814815477457689982136251791618453766450155034198136051935826981229270450349905545399490137589569768987531845534516281182769711589580768808252634977491898071426398241234011465836248831162899296555895970513547127560552576044164564448756700320555696856159548880291997894028077779305867771156912024122240960693061650882049268044291034414833345580728079616622078306902638238660806963137965376862652192748826944767868086277450691535691900038338312064379102127291813195386811980974684299697075366189725950384966927566533615378778295258501129006426176890748130942184640896323161081544305668943418318926808604283012990040043554665938081094773567880245538959396935157833312964246081553629244938176660438813799360346027998506628237129723752586827733057466271698179566297006423545266647129922110303358935547155119673892348814621666090057649749480556564290143851812091536554697578521180810509216366630230635637355205490820500447418644868261376774086054368066497360581514410108744294875822021169012443251339593774075181904318456187656128966629806187157532924611360839085996142127314866081454163558989485118488990165881307435852511978409903481471263468985656880673262185094745257409871848800023040832020383862499653361484821261758176496023421654620922542916227365725668354033249263468578117785996587207676117682710869574027184918165160547243591332996996932399270000051610358836203641787261543879691438221413887074776463542403300354764166802300882635886249190557226443454801858135167493263932518255084659170552848314676809469665276616453706909222052114026129416637594590345209374087460064244401958666314920436059624389603313880579142794700260170073726832108746408924138700300628185256639253293192230445950079152860313247019219265153277284690422053840741994335062326745334530059967757525839447184737216600526809331140265494979730665157311796900760240194774082316163871009501877815767136911588597403175355733244611492566740514211693324220440069212363760070378659921640932292926452111837459180851389174449560978753539706964045798363182630920207274229761933421610423117980653401409222512964883893599593260154404564929319306564169371695387311908681608796956310290219218599522477515473475320555050872622746763250367451250081560920706577280611171366840422097787575920989920765759112314855689459782128973397538558797672489673321170519100490402383893379558668469403019306487683817710623853006445586775783736102976096684558331040639815954743436323922172280151468834609692627995554509406799970554754491208529876202782162222875702255515880805462067780671760595470732150066093043906038200552349124578143488736415472379591922565069927160753343935330300035945497311732305930074037080545151807382583277507911146081114503693174702168754723767376935893763376311302350203394458454338997607104018318705412122849123557897690607194847092159803798569046921783322237926548944683333484136051271355829410518967567000982304921183081428347398468670852829589003357803940214169832034674924257467518157064037876413751537191054933546387597284074761809108957665123273242440370946556063488631202177916614869806459913751982471700309419255984530017729550596443774974529943524831164068785373658101156433811147844140203437296489094174508987012928423057441826013128044957302280612858644224113473107846193881787485544292127069411540510618951775304274492619791096439246996610986452333567295730082818240728461122764107975991531218009585935599013221437835713634898837691660353926442816237881957811734331312586423839846353185402045707115454500666625344159516772214732500139288220037311850014391438543146101683122022306598285484852877672836121496733718726432484587601413215916991082493887388454757292890398613420762248216893051130530603155268606948401354307970310107880161346370348799659221779589942467263530657928476822888494414331914742187868420168851611031460467370683270579576092617669856856816019866720901018643904102564572359353084324050236312548143595056959329456399766591980371693717874084794934386548654596772781868367413041065187365327899765900292607344888801902802085101304484223180366139508393030560731926719173316358825418443459801700036448113251130179765834222841362189021042199344458614959466129533185143091397616623512971219998002053532875317293259798459397773493757180755779619658844298403823396581303787997349343344076085609553277763076094207064416960580930623948746170655114928861367110500598111130944834032378052985305016820955448094370472088355340878393370525149460351639911003080920090931364352777884722914835458796436397098614196670370706944641038654693876268390708562182896562093316378487041595670064896716698522114041221782546841819735046240422938794878601394615304905313043108540754315124328349489525856529651649170226466944426420160457635829418511921084697921624350597562393952964117208164151236401093271488307210589887881169294758407621177539784816534766232039667252489301733657916644122305762786930817625736546525900748376353250996763150041286601928738669519046165076340303450306615484467074540694770430224226893195015050852539103010342786078908598418614841160790457546021044392189703287240493025165580176650922607657320493971467272155897050469903663351685216150971918933738232743445972243167937888056683108940311487028514429893282414691756047528177236972422708018504659266678044802732868018143221337041038528377442079345502431048468710621450431946058352269567537456811547401579370624250904585102542987778922342622620751263794405115468850440543769300279138112191086191736368631644046173575200329449501218727588224649626511544462881917928183206363040398885740112417344190174273364981897077208130155150416965575065218480915289300541577162591892001692824503327584392447260282330801627478724071500922965425197151991950911350018202697195196522827184365962427245904756292618245595903781007772936150856206621510449585705042700315027488641990306686814008901702141107265925764111959385196003741529198082571434050581728722206883981407982657786330077946906995518202147681735585782683217907052093935450689276166716953378667158942074768233554558827593660506235628675594136158281303071040426065072844716449918507089953826787796713100271062338502410318915148019931509049878622930900298393619077299643439867717527217547389108198192524356537121104416869432262799528644076370926973551232509504161597300677773101702294593224472513254172423424655250031803343808242732970033206759316998858901396632951114457545073037856723484359022276102159749318709213834637554900222321051302011831890556130638160160988355903484101096327110009357585080132929540329826177260449386435449166160106771025392458182795772376372774658357304364711903221672736942835441628676349543226408009409210280293651254302145123206372701250538058869200125606285346216090558685730376701065747481011999327159869151397198765677064025891262417203224699252862699130802899746913367573217760723329163324724880374965196309146252293853651436731325950245626719971137059189683091838405441941439847475232486211348058598344285767247343158408213081255252236000077187094928380697613355268338814928992463944572679868615117067701146822614227323428820514053057346221822260513173042552436489991862102023007369140281264637200773058082950126408815313865061527237687429779357989599896915924165022650842607435671755232562813111546888033652039605078169315221896815860870451481103642049089784042043935080411062280210237174157416230438571286091093137692886604686855053666190193065720107266069559590835024137604553677413077198561533750268797902816935601221833087645794705058307241305510748324047718356205943865261290386848172369443475205368851541397537310619406131810939056570235874137786524504969612727198141237503867541429366750177911334008378177985619075824977531833559191620734480757035093198284333471282289256463884130296078443734580179566555857734094618035368687561515758518588745464339592389055465505740530739166574248507803017013420832078473244583992157213264841650334182864061142824865321084355059204160407714055770906377528464355966386722098787307730242998528057075296941770154077148352237168875652427075718759949749832274281603326462387236574772108287016078715523816612631945171539539836479541184960751343096724013942455207418461718073613483205176323511776397525248753823131799937790204097883501161669674094623943614822982649058039017089791793981757687627582717457410052132071670273749282349265431752450318876472793082140019740225910170259933362393474243651901127814368732627706252505596975540170770455605986368922178952799223255104870150809472360165335585193628339382640411279697734638103214940929496109206433509162023008688352370587815772521043137878088770724261987763945914567652246788791377319551917290985655507375507858970955188029274627162020919840976083434222415010900985481625889534807986920269302824336047373829573881467685891064859448596168040069126603445128870902232773701441774786371799779685451673295143891947264538224386565268561968984279757504722428966705467206296857474996211615210887910664052152033202388470738954166766414584548875515727417505212261309342380424639693939688803817645356021019685082877998250496590508365065070567573152044473892416170078971444935681105982701163296684319702231307482812390974480015469022603262947527449803043925430075146348608254532939294303029842577504361274438367748673302482069736920356651606730422784153452390984415098302600833592807906984491477513453221669735288200526561842026672935019575358916560196617804612473830163413800344190440147154646726932642565587042858346669713794157073042571553584411940614715598238102239776198608032736527419596702225132042232262615197277474514177294941851873588766973775020773234674803630053774120395114270673784593722697994768096459877843745179566921092029038281837092160174664763625420395629678140618907478158954160285705968971277956591173102300793712631755996384708782402143382987837076699131809398382890287778385516519631005868222300689553227203506070519863376957505028850673893764934886152145822359496043495045821330900997653970680526262387672732944286486240098557576219533491569173426834469085751965675249670540848845659644897939435109536229014347776204076842584484961729213343209552836463258846012353180792347061772777258182006393905879163989401228669790567394046771787123663636887244453506686282334291164553144096478586496042550051235235865823715403749731667182962430483627407406671503887988924192747784568680683057608774025012876868382412030801516844275334973814673877314159758688957015126990807103225373648874605667239254572605964186401922284965897777170926495782482429449215539183148328088051069741807202164629655220707971446505316907653555823999447082818050278283266279154798186549600035025946540208830328657473603694745857148612551776732488540667575425135348671288244658803916265172400425269544107525716070229558066249445059516650709425763571487824281648853261646474982131959051435387682603795387782863455818788873129533618817774655102304043219054842730796248365780035776220408340662032406659137400885617705747545859728601708180318585148058937143767535373003145279079240749733543993902733219396864443107019994478715790309639892729784652242489330370867660361304054193913457125747835436511599460707135471998895896721762597833259624803300356445420811964205123553612869686360243553246906158115374927594227928943175932611462580697623306764441832119087612805014372234536555139800810134204796566791613038556978304762066391722415115000851213761498071521870469340730782940122791059710616311603456349977639604703777670008987333897264944316295461946144422805935277984024028914048716344245946905988278131625324293372481042908276255220318931208593852206965534530675495452214222506057996223930692225836989293044042457177649653094608534253699900370815163622234116959305667595910365519004423830035383284990630344017512163669438989090531541847728131891034801632349697670235650725646734049912523838015287252375837380717832063367221862959332699278076692125983864532364373337928620164365334574209754705991068572065446303575825532355885871029073037749353877089547779403257194017230904559564690306750084637906813299246727163483212235821065129855865301640556079331251643231945072228696732759212302040865032113016510028834826674778452254001958522986657992313618064736848036951516537574724391656623212077217771698631293202669834413143226855648176989260033476725700437821259882585442717084591135854943224298141764192047340860884804150353919540538623022435335055737015945917658677812579285187008905958964265768293840332898945231920873401830474075465748400508351341440560967388709596799755142540037091943725869260702275412730897408198306590437839861998881535374329873144041070719757970631689985331042455320501368676423986159990305927772356665790481522690902425838503341814396013341349786259251966075833995993591867541902923366537549949453024849032818299452916761457438549289239036499152282327964919523458118895380004007940703275289517426495967350338288608818074119416509045144277606869245870241095317378443131373051818316108380912905660997128570221012127191981586526814410640529906259522195155760542060053912703721537141188157340826249018184047152493897562130286977612369327557770909576112821498723328417740799324825625086345812541270652391522276728605421329378337653436777444399351496036135656643997645258046351521141170942313503720292634730819221518550022464147461649156406212353839496796923126145613368802002965444177793518239911695832158517013021075607964474230027544554061702120830802388467090788507160716133750069897951456357132103506462355314632538650115397317599784433589430473954428089955790498382702231471137502259044411272549559636901460565519511498850483831088996869216231700927130276000753959484728558801381632256699403321881585416227892311797149301805426049349552508230332649741880618780383128240299190600034222526858280985392843299204676833344822662465217515125816154958864258353460089895157024255161206492463175859386479838907558147756743329248528332525541805980805991330317076966595798231877563507589055882181336247775119193276164116816737573053370969992652742298910966723983898762204928582027087844617759684923031534258173653515073864732076379762197484074604535555319683694392766347721637295981423320058244394627369598236310516057617485012688446771461014630562224013534516140564606283148242818807381156501879444441703287840660624541356571707442164228254209490448829237066497652629501339687543106481971462290189390325548638683852519171499380481857134399321281018738091795500498621232121147156056330512367297297347429640612660710196793237729005068279709171627973636704958650834832948358717006579537914961146894550888403586553989593827442087824030948210594303949149758520270537343875364117186614145629963126769906854047883785849902647635583455329378010748434377511216322594834605155926964743210993182684299484258027881129558834334974101796984397418998631505748441581707141543305658931396946544998006966347080747381050969182349852551102752027820846715712466098281248372600786421312478186203980355550080970321515054277414545667127941020517294528873537752286802870409038513638978744852084841853193836944094598311124647166871623105287520740279142868806792480257981556838535116773676821739763461151152351883791392115613970039826678923565931187743944005658720402950682678576513682897598467122043901581236530838963943709129594738155848820041383387833525180273544905192943673797325988500486643217581131414382355085585568404339095014447345150912552707886711141469904645601778885299773149536551198459552174321301633905474107200732758482702339961241259100378722655076200135901830756357485197529956265883460688411214625004703671189474919468262755107772213451404071325352735375924551949476820740731628127365724866603024515026753480738856395593840559439275102944334454209541737053117974054284865225412117263597251369294975432420597374739403413246357220830316336677229159180017704195409425168365182460870901115841460132874250184671814556634061341966766583962618911698424281350573295154919179590191123567596047583293421388906633362345855700811028683542366088847229102927992047768717903423073637853195344094216085546076405374510757501011263100162655955374712652027381705715315645543648507659475817232632099663280769927633685227869072399003837429232250040076788849216576447790481382139991475143740140718814398354465079809264442414985183598652125116160941699086834002733257445476634459444251811437368620420335979707860235853315122629222037309491690422497645139477569207910282592467859247777044620621013158745056563360466087103730429974877372058954103494686412899156548468006527369033686704399669496252049823319551595897743193088048539830955046524838974802825752916869348930509290914524579274189942105543581035168541161694203126604504104242976406285703776841104884356783257416964162804943378842366359695136916484026314660357721854056965982477233891356738153409916458647922330028107473761447433179297355801623178357978259442509932469691088704134543009965664882655956314307011961891156799082663329109146798705253338087721171208837708587093362974487401157438465062323345134921455780073264407624807497339064640893998778639608467984718977824510567796361290361068874740678047585983336800679580273637850905777959559132460180584114139683130324537253070961677222510878667871934410685560514715464573697296064700957250056341553428434450208402563228088212060092655711477403105931914415305012073765165616415689497597993488649393492741419475081449438992826174181041941901584945486076347724701057703608493446185023706342019246136135532974210431627500120577545340500985707073446520496340501963497013589662595679349258334446695099389969638070878636883603214671867482114033670914637710971472093136892862066142041339146358933187081547060466248757463846087614327905942735602404653713983532533145473935127045680265435795187250425849324888958095984369959218454561269736764431941509152623425592057555408607212432343739363727204697083260923861116770334640430888189506246644599248195085497944306211922087903889062288868587455152430238424718076027742654152760085339805255606758460308972817357965349686897496534381801445424361298336381124145601792871507566787218679855602122804372948315211977833229394698249640900300241443495103167481584131853468946684257643022989491225968496199283106167719073590539580473286008250599937583269437381115131207750665961391578281030199399722345263230023549737239793426715164850024327105693558327260187763788121231671618847710190040762176917901407948083111556353102987426363286706754669744066588438829806270848739525015712021740484005541445482832172038073053185892165072502169451028686094829850402955197833951284636449023149172956607467173371162887955902105582255284584214448214862012814810026527531729049939517906945594346998188075599997851581473601552803671815661770418051712956657695626413825301134841213128893053951931798895669715540301249150750534157725960574624318113471990571093915977613978685297836254690077606103933642175920663135887770214173845171720958651923573227921927349215747012514013452763462935060408057275130840100216745781971955750045510776065726806812650081127177979284875924034614426329215043578080704216420430661686473778980429582194700310701911953548924839580991910389663108302709295775302902024615564413132257271625407534202376276549148082381332790339999182254054581467626904719806470334669919261686444507958975273937345466646990719484822386268558985805104545278562540149865886020550124931458880563596938130972276977502182507074451500142678537654611249560764715738696863270636204666870158959793047814970260762171869520169507284571736274866875901632868701879553996047065950236232307908168793789158074350642962243941614854576820708738583744169629662780285195038820564205218047744752404637160431193997052405809420361744795419381967750727257729676472275395892617791296593980381606716893185798722582859050129451091669741042844984705967453200504273497736288000512512545690083272593748606222365950664828622700558138708518828009988925353859417418284367036637842081823297371458148476826925785630818124564790484733724110788130211620822843680067917125930239346234755333663950458093407592867933903187874326906795543100838819218082606994598777999438223292785798875790548569563834412448915701809613351825979650034804578961682900345040679818689282782191412952858900972797554211615095934054334372562698918416576737189201221456542043981987513936101573976060982833479313757889061865215280003317538180099217529465728152337441002410142288299178883602010917408642896802816197841834563082985519726805758917874299625756759637944431373610990633985267330702543806966446195323873763095809759936430579526566314517135042446679796636785793971972975953520359594188316305820248183175829449010753368974994747829540294809548384260949335071491441334284710526616709461660284009709446093745231167547217444344742832315661486016189014332289948746492639542575933690714615879690686832322781198703564828942661923602247059039909261017779479719326965374707238742359912229187144432365869779471845032295706126893857036869054349504051099047983343168642731772431430609401415892268162043624712099103550997001866225625452937026631569616241539819970055568069091485684124468810167225778128359830806681035517210123365505568206764574284566195596336274785735777135541441495961314374078322769253194367903107773003062270167909051036874028526493193839378659936420464917392431206750882359659324754045714196161824269471186632160537891059447177217229534182930362573282582752900571311525113573009667980431414745998453016757099787892838849016791875018687349849652245941361689695720448389516195509367478009364313210440944923918268717220683627892242597980460438579245725067305818946632034958439474270961357200459533630711923114371382704357320094991761054737761688086480392720694211843398108449145571144159899296172461184225954012266717292861566409360069594248112598765943700048872568121837679157582685741247519671082296407334768864546048732631365490381867088141520824332501785426872871426037612000399998638066083118261631389694691961871853993631914262839087460930956463213178048860911600541793966660883087133406890656786220725117964184665252994939937004740521273416182372086161259305651692321813485090702201865602808256620747346097989249547785136904133796530037234120504991892789964555770479635488533469416136983459337235866736653473260135375449698647622304665912446552685302390756051324675211651838499868776861725337720406696218450628385955348906826704393724591395705841176188451597281556301789003005451108597435140933260099768875208478055683390477085504883451529099541272254938378742757836506791944901642743576493379743594522819436781025995121359630375459005317365482061933996687684804457198330059300913408439283559652533492528685898420705330573842348455877867640815212191336372692770289378365347793375943490460841430390407156939646825989422323589205216432472885372900254652494988061151024979748605011040402530906218459503137700696500437524920875844662843175681373281804493938523215328006922870702542220258380776286849182271297483415600289778179387554948388507637819242393468041858932501327525834597228988202172075607122389374073564283574507223865591478296744624587171218778965349363841743697643869002774194056711737796463276636536030457610439282224551204874165563723183972215633330953029616019605663789366889523643182213062054161147764911002158938957553542968022030229958279052656537742568627502336513859538296608161481706025938936319951048554058597120520235184924125333926217511812175920890927612166080063311235753647153453204203757336714492983498079054162335776742038200651245986382870514203149301851652472956010856690036955263272244164783223539063360634657250183026286146415567038926286261319676163243853865260468766328629948073917969142124315520712875295206593217794659778061062896208262659305651648997825064762386307300809728130377494697746058276807659692465898793501425198233858528144475370738959922972226508774095567217316232611856879647311428601625757343539226266328693413304549537551608950029240727035367034675719049531031386562501062947961678758990864094440930489538176379805664555186292719286529958003619125114726226712364955099652844663508033475961456669905156386044795684093524336466731161441634074734941893354468706959461160320594735157868964802159506254617276920420909137769046084390752897708288670144384786045316828142111274752838381897096471864502032825531877120598096275218023970054947575911347134198746056148611519359980768666815016880187373177546074152496812525326009466532107046018163585298768114125819868846220276879780867039779524756018648065652062637345606387502998298461828459877905391178599856026460466286179857776462633417140147309121614150135278234499355903772344604427937629811713967812839422237291548773141427059841438708756308071084944188178862820065784965492927060855960032702040014883778876520838586701369065021564787614906589590715502533603484391152758768900046646872960212946995856475167947749456180270086909359868600981556392974866161439848958377064537833861544736654963967155848270216345684116566708819468829344431467322331818614606339928599349660316425509256593038395922738224390107333738187854284844637818475488805855378337870769712854767925216190448475397319972857357994097975620517565029886181257939633517278115535438521152195440407819376922932198177712377014815694201487908982070075587175448412055995938564812064647499386719997082873494687138395905283618303693099678218423023874640574529905066915348186455890729779098746588107328501356033740632115971103901550339112801542218483697980788161772231992308241070594169685938072175798234339151805442749261535267943534672797485756309522683890944652667088179543567799539373984789954179448770151049326474568867420658999025785197117847538067642428554890854212383231947258223328110884574066473204196726188302627091757185335189136684459774061977541375646141006644989381444693878292119699870942591842347898558851456362713774256013802980283823004500653171740429904646631096372955547344244666247847059506784572218290291762517206809051775447723961944478678219037951651569515584631633725998606353594694649224999163065120691063872762748542843926512589469999061626272481245067660777294712723659792402735203708010540993673213373351029436530279479004111667831953274033462161829757866447542694123503328858923750858799464672428151760959910847874034005212357918362823322501108320410092702315537599147412015714530439466884014570752836519292035977195987129694180207787540488637839686859031156185938296087664947829413029578944496053023363249539674324496344331956323101112296961211233244394350318764925576075304815969780708077216295860082618275784135930467489291695747582368611155641327995945768761462437586145381774948187312087988493863399145335593646203714188729109312307796973020688431481313962961404408855296726538567746370332799590444730539307265292404195732260236449784922289041462473300156773578115994823884213297741302110453803520026313779446536805951112941724659387520745231600255405030297711681567448962178893812153369414887031310813459480048320973962739588037055967361869339510482876627766147901977671880305201417248039208109172769838328386316690638280732673798260483764814811718163711193212621729146169957394613202042815331605524230272228304457609027916772726251690272000087943726747830209127495571447932974854403361336197321619062130078800209432870049910279637800944610405932295955402094692989605258873778727157703119434636433215350288041456243721413539405448574158902257858343875089247371877783942663855502634035061639283523233928423143264903651190541808085303377319241374590361886667679342631792338667786588735627413672445432161164564536868751271304106729700795092601401538360939894740660719686199301396731340868348315963846020529056612129777967836493858088130022414187769134182355775483359994403416218078534633680092267485611901605253293778255714301871117409897733989507275192511833205144642939077435762458120818022493279326349797478898507320900684998860290683649419543021344949134042842721824477737330987392045335785887095923685508853440430849236272292304701174566601501048045003188033732939315151928062384892403576148787899639627354155368463388365112138045320060040495234620024519041072034446213822904025649977448184668582367623491903960299452368658033265305991543949508453988325573053324120959041952607053704163443810182874481613494216174398610226428855252276148418187984592387874046607466039234317964962294387185314750993337192916033639618264469460551522487710156774300772857838429749015678037364615077648519568036144204087122107658948296113447147368849537304096755613130131067846810333408351185037019515865029685328630166842189504287721371867509596520601711727218013555252385107884404290415118283542830178041371753357896433654222238042137242923368341299224318289438587368755377597957056794535615888942811246183363118176222424420701247619782400459333134527139926427063346305538962788405566838671781952019328823469433353977186663443481882429363905471094512507697169190736163238892562497684191598446648539325013213812365472575375113466892061944393258775742133677288306262372754384570719955602537891046748365743653141063381159819047886310195015551939189220989554024321591204000023896074266369325366369622020080693145994527627691356077142890675961466547880498005729754805864021337375012673385706488931864614257953500416200294393800106348625488066237928982668473037781237604902460607537140841897392609949572955770923552787103490763974297793953792447915214327098860700845650098023128755111317719610389039063669435397478888978120267823687713692820905880720119427386999732278958369208909513492630898895698438383954536115611770870213776412161211693447879554645577294618769475330119670965175776281622805153506106823449284554978012339296176003954990196562300306698326647672623630387829889936452628383891299091766681739454451466773811861593594443163433553845265896339069375412466471597040267994396133818253055769892653766319428596560776740356619749517423458337816652203379957205002885371504419956762498440910209631337178134164668661914254350610340471891433201376364911487480399386739600016249659636610954164986906550244796372759470869116497338369345827261789535394069088734743534622134697312226679922359502954612342790716128452592169505738508126660472026465250680509193214218726156532849649493700878895690889418693386469245396908785987279875538854842695163097242185389383235265387372730789491349794570180408947294360158499744359779555934798960062500772683104766335459814889137855962513547078446535986358776570489234210032374950474649020804508038466248386571746095176634994387938915790525329633437372319309711264465186950334158491232482978581579915271348333248369381335477540635454043897003926854514271285833136463310636923211306995526401483609160743163899186443440020356492128161563918066010159727812754197356228511885750124009504665240908392001659313256927379135673101990824919166819199847713883437295120767375420352200464970878122525700174443822119865684087305127433196576897828205717688515006330408915026345741322283265940859299693230006623733793831606333195077676510129542678136212478377593734118007116580078826843297241144476381926563681589956372884336722233883121771364792008235727575390768991009346678328596029258295248980727683473796292644017352302342772973118848469351675319064836075978387717889767654733283061203589231636322728800258959295025258658293361509323991608114473302357865165256338321817238932830508136516658494850841993618853282708242670090785368776579854832190715453259791482232832172777595272155460890721192267807335001964639676759958178897764138265526835485097598290785393138370969462383791721516984432662882465179258357533953851658156820302950731005749948511098517132389094618273027544454227966975526802501158404057270837187293129577050282567177673038666086018708845151344773980416724172527060199990229257862020536350919111481525452220391074267680828779758629961685727392608272276389587208852975226687753993440750898839459248921426451718078242055202139100889892835346235587536347638371302111914160406559560807106594985948756220590697483693821549718796844992391830755724372073865614271063515226529991453812295280668045611554173567891449567278482804429769967179379434664286325428790823841879144515838805547607213494392350257006338481974108379453927605404524713386054188988253559787397767872226730857177503467253497795105145241770227980728360229879777667959932405458515781312571147073285539463116941590492551221929543758205212601443296386004615016507013898712759696989268961068800739228617121549012001736258135202399467103213921537808144699871203546674007945656030345527773891099059000231496117663626112637223819802049346099862718359497549224758691634723331100086974642676359737146002169104546650991425288303679657820086607206097189641965530716808189148144368916394280450828272578063692583835753167960550376228888510946534322148178412348974532725235802044495838975389511247431868660652959370448695794852185700571199225329966446931996377324594468409641275860407177061065827227327156513833343230093700804115392146229507644848732706567362379721788582916510937098760273170237641398631308938916705400401895455067512880287554463855402796225593231992522064650408807192565318152808274473764995294660322457254555604105388277569521193363716276872211168121127972491370310650146310217525312998196121017255279443698541768873314353244985588653443785507327752282040408896025487524161358773337585406032854599847478905264999739170133719286468491355300032199615317689951691210110352678212756196881134366285310470463382497617408440244644701369606783447801222409856266956476680298328042662465829033749849608484389637218837401371428113322310086005653830503129559811778013126416059919661432875560015227302659046362784604827416911946552244852697295201909509341426564889996020754234773532509999549519134233772626255349327251789807682890669962756333351672843637782580680106296828817740481039789490632009896728561317797375561528300779314045376343881202467226898772377239681694388512809169095217034515068974797567827598205396556644330583852907686529111874864255925409620489920303068887394911198290411150406246025883425788744092848431570998454738630983151222252027600566068483472817425117532554564155740736258411995983840172950038406294736427476278985454519675979186844651364782136539618041743784419318120908375204039770478729580786269482140300619070013347271178619688512724976551351812121851335390327482706166468365910293555805699040305868959327674560184215098477943072728933311994133326919945173540698754964976401959524231260804003819325800733539774362213727498851509553891615595112706796860325666872193790554909871599801445919159901900486761844695117901310458788472682350290622803683004718637306083659239767343985862048980067594914192593967345684328562538635917847191788024806338081828029375973916832643610621374572148264615414193727120508712088302569489828586499343333478732639284825130034484037807556408387848967899790458019799251750589424595253047442893977260642471324929485356235180890953131382561188566890957755394530692871584653846599995860181240498785327131923538483607919108322041468735226701726985245459021977504695520954182868728968184627401499055661757154039924019803134073907625841076873337598821051701047985227771027886571528017886178756270210176935225975779893797126764194478711101157113929144909727956144548901384669223759818145614238184290816452893204962792428619067307406795195129559046280985567599897247296128100064662593818189014843167968927116616314157954815296946877720916937677514897231122730424874788825781198807211077329035965631749824734986276968977469917396361154499172805614024058301614462920345864967757329347940468291731694681279446445572251937287348160147197805658151814211022254758722331499111754466296507571091467581311332778333049202114450802659682482975725704542386144179140516529748255062253085836235836166066804034229335161983887995722806177180118192657881833895032702478778184740848669366269250109425972037720169554942610813245398868902222430187292798887262533124076077205537017002241457616172228076911817218156961183555928156087312166316130052026619760541561112027458286318409630462030329662012054504584368893026240880921850565710457894789499630530703000133612641302579179889066161783375758953040665687832987263276147620276825913083680171346811623994847871391186387971363581065898375670750668502683879803680555503528506084721557665989134255519239454205042244335260063219627032611125874965328252448107061141367165094785771872025012053019838724892066909491383604898343284671326203674382012506529878720957484719107107145348157562842433276806088908477785758745072004837649741264663950413902209423188778211377860215882932566240398105918152015027438058166667007567638828428409667398983220243542319343377800451621746461962053853154878448150323187656421099298603387687249666427110508133858535676371801667198980031268628723667390343228045315425430523614347468209969150806745782455035582319626808231751142247705355319047547346414122645087326425925096067762178034072598911377956046075575542983099311814034291757525407067360157999314082056826634217986277452368020932163412635534088894038312653893279332554766709866269563053979714772346743264155315232013925665942726126314155288838037582550327158846925216324442300367689154530580848260174329168571664524001207140590439514039045907449244411254022053499308529471160380987990421212400516654586579778387375885641564882930249561014230640310891194212296510634024422937127956322225052826994009728348401631721814433793277156111200426691259910582669534601929880521396987641163963427531870678670496464884959579005358581396894148608612689720345764385186752394264984560165647796251368131640520991268832608314778391516627992573383361235756809115177863514012594220458178662894278221909807667085701081099924575084573541870362361682372559456689400435866663589765853707544382149525230566575026412554986565318855218829338777241510784576368269433140880920756264977500115513712564613068342284742464397086998002114769829055532567396063036559612121937190131510312014492722074490914030229404878188642254035241370798888214226681017287410703327924238484595384779655045173205749925990771857024529447738740993374148172357718294701368289119932856542018547269169965389036348319402078616734589608695731200730680781752008551982229908292312989251458719072670996364367951230104818914469292793280576960899263317757304007222490433859452629041647973362620652328096085158576247707854858176136245665368373228681081965935242763144215461178606985566289061689947330444117106521179178563865190172888062448085256735745248305469097409077521159514781298983290104611221055225206127427688782394911760413697794367298089044348266416899884496979478982901819539110559799209660034152859095855552491650500281162797292836156459571223549610052847715391231289245894023862053485799909775025262673037313064442397959254249612021393412496716341510779501600277519477640152748989375310575836887288805400054681024985547388126524292349981331794681218281894736693738198409328605429108341283144829373713700332053962056432194360425522454071402236136643856134368128647450353010896513365578023877293820250488691039862299217409536590536371182127130128398962720342169733262493642165452822713406493496839151658503702017463190256502830935316292938458365606500468776572334451304036673923186973161376958326104786849402704941202892609567142458098845371509597276951287168208804417829470493600637677637700172730565292049618098980680204338361219824986614742585886068912884336561533549575670726639806898009343596943707589491785119221922382090484010585220382556417176540732254115874298481396658337669231923655925896586136899183052571118608127694332897302465387062105957244136668943594403374623264682091115962845325522349168250211421300515064247256153528810816275508795513229994804628772788034805606081612714343621802267832129449402460349057721478801276332554568792256100906881194157005197129534064800266515026968488347081572709119580840948706108913558972414029140763264642375021806349472410923172993900909615657777931970086055631990479568867268672187456778560636387177329643522974410780312953143752396448575384421349875880205881760072619061830778744293349953062604648129047851562889702881744695141645532089906216033217205179301398681872403671803457556694314175910365366213915291339932390646898356873071118338796203703995720741107263729385704354149654671207127129457170010384446982791913020149533508349233916125673191707790903322395676256537185479336658254234568669761925883538421921001939638424416432331182197058987331140656768734029807910396084121013149710193578249165434900331723633731574234697884037052008133691123979303711334581497180962758209078195594757165277701427138660100230758345565348051785187926608740147220306273629454386744059902055681247570016452077232613984932439993235288911996112906615217290132024262614034051960469153064489440330720051660113961248840791982879862421913634898809101756824778479610673861596677913548838027179293405530520365415381041227385605713691379475355716593398015836972062317462517765758203203833499438660033474534147210972452130066427887312311538999571778732697947050407790659208342371880477417604505031362430153213425760310645058717407658634400030082823518918244280493418106480157026281847606140658920961371250271000005253392609022225279193993966677707708707453415802603379661444598747570642254860312830271292044346872641409739674980082568209573164635299720871221871160426234863830882054503127629546015716660356671434934232392569082070913978585169237220785843328588058198231059171912877574207550981020153713797502789893767108341186460221507225845375520948281870890997111556219870909716265315700853258088054064421789265514139667906602572283401889150321908426178528890294202428521779826203716741358957585166168307894682991936729186223614253066765185533943488866532688108614387890954994500592146152221456309329455019938751093369232899912261522185665425689053113543538941423070150127744978701605920447118289250475101591409978927015287551928870523487577587751678720625317546080373490539273456378068531736195820733871252032197777504326887101827639568160938053548579401179457041204524337220363757040315517912998386920393004303177040225630861291116074505347850046001249173663715967851559460306329125880025708916864980074101535074201221039094448921495439177606574145773375405706413230607327782477712802035781763571033951114405589267778155916852119258303969606854525305228667382156362613758796553709162889208957008170528074429979735214780385567621776541356920934623662763953159579677670365832822787537275035374262339883808147633766311042181395011512020797075462387471771488698944886719876207971307044170609421355817295844787525485066082427474280442859261689573481648064290485786918632220732508636069955143001898487557441534777038143849979894435284349213652285590546265868092396817063862893087635739980546658849687397863097754132932590061011102618846694677126723622722289318999400697859093155106804491978878863877729870662005644716363895300872386619229966195021595852145196250300482535453942580334454216426030053781871719818974439599165409539096134910942486376140195963627580465083955391884168061717810379562868392166173699720807327634782710819994764219282184708483123745524138271291791579860620461326770964522925118075515628532000481785696996840117349534204375075472189117942922291195555905778329303207880512129155314545404777247296679269984894796863547588694700776783160105140818062525836757512121423839210379073166485257153799495052823489438694797095738678539115645014508254486984579152184884911074925178936169275908059183461773468937012323572693221936111555035721896418870111859676018069919815569413490844413291284725175232391212727701410843791094299502791577602043751287326631423377950384301586429728167123711616925611865959582958906110325492794899637745098512805006181753592619854567630282135020598070934237192749406156697148266340207145250178105791433568073678717779913891525305323273599769516982441026551029671040614666236316218533921767041030011953415434590613314610929871604259345371062750204150743489272819310579949882649875131128548487567127757737490439281569585928427103369488940371896508594491598868370516354226274106196573780518318419518870190854021565662876685370520360314912782152012596596753945260010175153620817488982434742568911500859431443455088303759981224251833543490139220466083360976266219897237718875330140962581898906881096177680402571571315024083926103214650241162697565683118850642529372414189281155289408700301431669104908180234502147970071843794146224102335964668416124153284094277238684330119079860464027288604627948124460506831774028241599526943044222795694347139663414684114595379270280223403650879096264543716262680190664335940972453197081271383904048702335108572215003857774481584204341037454331098863710189967950004257890622574447308650977403318909468606323082457740514050211050138162608297939323375405511596839590226093903171385178056117526406007028038659377307509298958053639938652277251624626538364343433987203893167917612746369459703523735055028947689829946363231635499544946751917465717738714233073801560709658141458673035698131901905508572233263381920171011073984701183858924745398555715717405632406656804766226792060833651606385651449483933872742173134055751113606659708132754824920144390540980399614550540571978778145214606679573947460979179835203328790563033475761048866676486399292390058007460082682232133433733868400174100586064904077351919688645470932477214149850176611800190940825889258784885408509291931762800212107471123651360960112702241696974139623714763595899804504026244643742008237812068875126314877715867186492952310249109110612785062772944907603648560944676526012135993896277368707334773297514539376536288323092190804393480038491763021902534909789735045610576162469924688165739394944082023003962008417941497985889583949305880462060999924786049954782784387444594876587505843584202795676057508334407572911101486047883260374478534644321902223802257559366879316939979825969179008174568002270594337608826760106243568513328263459779661927017873646992077346706131832341628682714231983437328681772827847808584207999264130849425621317814591227271647219319273991460641380678771563706291638258117270600750467099403755475482794406019188973530674641816163636149333769000063821537730759448819451343063318490980958295096234835643764765503101572043633981542998640603323906302706008380531190499814033796700419105917779951490198467646203457482130707899410487270723725760383280846540413786665708091031811598451673843732976523932620499105776979406010254183304133294753426506690687277537828017777170394998422415708755743305117969986124102971815636330639240001571294053594341946629055444863133629860705521915335748422440601750414186698976645777584281928597631648687506714132354451319116458977726704364550933315348600957436267009887149580844236454822005888398562022338532851696736153657258689130061430870975286637817144977274809117460831562806326563472439862135304357919609610974021857843836037612176000428839191068127572909182260764116321634403655923536213067127025704206763359336867175859553972761115152759455421865815747468442813730497853594053411032455398127227171016597133374809243798429720507419028578581918924108716267042874393698140944895715555060100923150335420263430617772375793988670943770691096720407155942788549437652559537448449156794028935302100551941014287126788327566509851393280120325946094242618012278669696090597432259670264807284417216783014548229883239610902800974598045186407359735872985587781651735015735259627075507477185803889643240135946312709013724504298068150191009614850410476430202156064461069607892269061846541030361538741171709887866635846491779778636284419579981077830197581985118905926527495957381009264445511286078243319449982693676118496524970916908474548547545162595159618544058198146634989005475348811605334624743353092948153496947596929276853717535840186594231748069381246934147339428909368450775014995135944195638524585642325744912542220112245383923909654306900827896101888297702619824921941716381926637881812590687637822142605894104957588230398098497865795779000511298725359850109374577911732245248716212438070504088653363516129524358258232341976586309205852777656462295410766864396926577538889856860876354730273560152915468795701201798872913035231863105679062312131049756805333589441211762075185981796411211218262222187267083682182048705235574573740263321055723677001655750773405431805895877473139897777496588557552279846217503629335730616801049238546577705200922956972246586958667328750457488537769535040915727037732067329128908098865115775353721652414096480467864443799848489922377073433608501998301495705142619161881908778298060744945794008886130773837331275409193172273781458639364552578734776485647392099005289405947223573267774490331399045720047058376514537684617096568725889977340962482767272120081983124328971485576959917006125615046510654301345542642708019264472311145130124540125246068606947774712493556950457516010534686741089233041771557917675327052374418745576170851229567480349800262045791725762366739992332300218502195865736657229200823287324026513453080270326704840872606118650256017366640719089389494970352137439831706587693554620118814073979476604668029398313353144649848258574548779951908557498358859528703650733711379979990109955197695882851170352506375401068902103072502363063011466380947187841165124436904559672828623770695022570371845959884125434012088827573747742715331881306354307013043586080656748499827652096766262118843206001499250617710476092262132252814363290055504064019889622528924126131285843193939874556197383083846239032396675275677153965648271075147836298682933131443360909403260891792523440235624741146471657363803102378480893526477077378939898704006444253572669658419393047815087045935802800200407710557294948099290735994857494212041016154916251128477674864450554625261523139692068618801596846612770078034958622111556188807154452208543915282119354123282244605143515691927251330554506121718115499375233679440660954700357810547954597228518736035624570738521235644788016995484590334277026414262222769441173770477803069350084067529253771524701541980781459766978087133901655155510065296929680433913868902844493057444914815702997527335130845357656174588965312682309998744994193508632770981967002392527725237050693045710082382130363916001656737255861846395807575702595421887331347572486934462914159741066592250115003472389956006612406926436824170329538541376550647889028272997012762726907867040824626377732024522455106678864570430418802300281503793873231966208870953506144370307192121725130687018895119867834042913006258766969360366492793499033343716536793357169878102911905287746032829754315279385949271674315369233054284141587190235491119353930217736409767193556588291694758264655927695142544250585083047781410072089722728072730098992039071828363653341018644294615703530573587793952874247165281915618248164190903538000971293077103675048811402257038248713828988529135712970632903023816867139611536217077637091088311060871323055093925144486254231562002938932251590440233064759691560927282339758409686851715809484281594609248333955633132552991949094907853688167048053792146522109511260435509934686181724254035599664523736846399424533304178155355433949622197507593705016497573787720365110756283998988097851241298011635154138238295056242571748598628465098576332807752563987060991736169943502256113267717911798611318634525898026229764819574199478093091387064470079514673091892585751478277755402775759332105376220732532809700383683501569881101542762510120052172292120274008109438196273590056816986622828000210508623346781853106414477915218656306399304710304183924660031242913499365802490796880010312566191756450984529149982933974429978427744602013656138488152419646657144613957645455868674890405002792722575513880823343661802829825699232054903884887311581246193134706738397298969012908425557850776596280842665563455349578156547479728092729179828503702732850511185586520193872891806104886604762458962976378003923570668641364216894267603955955000229574816013440647036867777236717905552703784930104792820036491294341269299912838486465625163686970251815744757699232005411608552317380994587500175596486075411744338509287664700191987745798191631311252448461542169943694124425353941181998525037514440918167082711573843060438666802081309101627824210028788851257175525487163008993485505559175534838242183282997794750885603744878390297487833905869920191907765563511520892064159221106080055329901980388684095457618658250242712503233269441875249544994832864728849604942562498973233494026128720579870931012594326275080028934378810340181070576170864972106585600777670787791016982559502187093965104619974418797393647447468333437702369892547317514580904329996175685013777498885872738045213650211418231175039256687635234153264327872611726843389538748798092930439861185113934449241022905480716764710217753814306516983965926597446991877029486506831256913398629638121830770102063559241250431940186941278062085517055594891440609071656746483083628932816142838217707207485475302144529279187752874957013177377926479184398243944540723803205362269962784032983604316641920191133435345261616672275216946147344135772785015831158578616985172595682926097174637189040893649923752808687277058190398939449857760655903663712889180396325340141620777967655717188304645464980009503858589050928669038473088821628222310613705065855944140304167903595932237084098390478043605747088796352920558021858460301587851832202112330895960604983862111598284133990082583330691129601182610124836808777990344533340766287490300764174263291567922279434170812417945733526684799223769451553067168904192258709021216736996970981407945761890737266443855303172548927555533874883079888918753232661460715909646935647407012804542875220895691304531286707169888002769279879227415772186657012784019184467880037386454954195717256236417256456402133028273310227463592478280248351693560416428607727174685719402317508751942552412002156605305549702485493713941826176214981158331481064530098902809569781897613437609184632541908096791028813915771331890075694514964673741742250689936155838603355619931833186617179289411339578534843944511292439780187559363145485216364922359985923676159995196791948751690264296911722000098006782021470676295249740361566958271524723047765864270549381388644219786519499576565799107698235286746739949125686992639193744240230045259004261822293526139004871639678974304388361125675656540356073102734219038535227646295038480621284851730984045065521201593260129278627727098185907416357056757242602726520864025385281548659236508310490141886899172194597980877023998791240615559333751694913026384817043048091076054647906684397109093182662938692466556654534139451590417091009878251876709862123259784535539679184582869932065452615894720570739265943799976220899536759981963662854113544332664084972054319350394617583199284773974330319261661616518436388025924894656513887397619094569575595126279611582316552772772799315820127828067492338989483579955090528270137457318421381015866151230910227630611965674203694476309461620589103777269338477095665709654862457814048277605923062496507230643818889427902082628393193014074431891282958163516050766961552046937107425123662201263339848548059229102352748995908302655440200849581426505191205538002379907750815988928870305842098426262802944451801256204323200057053869243184013833588653094787844051338145706341299027532052411730068404037442809338939831301736697641886195187062512036976201791723099710008728592431387545519551035520085347010206829832236667192040020518637714809589943040586414641197834090212864173203291291477369502925609650083176351245489967488275692615617010437417896057915037497396632467761708331545626159648284821199996398891696662419639514699116935699161678761790805317003612686889947272716345658145533886605215297054456863840576039101417700871440025957303736444816326082249203133068821665673724932181410452898352796308758797659263815254378142868240838532853524815723885716067332436462786228474144278324776518559984695733228645105001355116672397013701841694036708238631572897116298488637102037387470421277009758686151227460673081159484889511322389571399835425280209709683365671239021758254392383988981119052107309677637265596783401070598276243688013860169104330317922015556590014286080408888554625618687368954031954521535173110673902084486317890424049935755202494249564363910724947578880672574923753087365346741100859508719340159873821355254774715587192297166150325276499329942706971167188457316926093402165625618097513645860576523972409627453125717739714743535652530342113239771940856053619323464077883473292985356498947410096476379724383107887350913964030242120825734257890962321874601296173946558457584615713994734156902989788277969031847650167425199060065253520496524947358044198879022718552277195644838100012615789380404384469341954367124727303333131965667315006062062885094800932347079347862641421196122349763971610850570302414469933862022639884027016248378096050071275060190372529440327378282853510295253153433774349646783430806289297621892632609762933544144962508346007488828523194151269053046840587150160586836273933830216479333645299315341914833165758759772980918068514111616899402447878392739091204266390986744102719823830957682554118909536067941238017775560246260513549748163397200602542034541232729948241127291569301006524308231566086767028342161087136476632753996577014767446259565254300905512819440509168288125348092864207620186593569889576141501950147957332377359683049051718958330773356051371850619872248592915839278279599897107819824218336128546233309218905705118850286686134049739505503816086622638048475826556665828615988291841681712693933138954570820495967727149736077451633175628865795480702920390192655433385503470509788969629375289521347817226613537378671351716339165221518261567085155701336710295675091954499538868724826110294126737298507772618146731102834712803302907241063868448268781428380541885840195675986263521799508071524140819694263876136466410971063531555221798426655897023794290478739558492584136208398898120924621559477847304149918064476415490458229509710717060686156558843191852594088130246135335170772644665929341995735980197527945940671149465233126686668584219533506156104831173843279882433328401330202831012445700063359918153772549758241192817007228856174004488172573784169066919799384879880550570694046545267921085432191703323691523325865583820096790011629986911955946178955686278838582691756523826483870246337135331115216189204046815994555933021084828946711799697895365287038519855464741371656786527831830524679691163363130479006226925305773550563873206300771936111331884393976327196173680274285966862963530683528360684796279894948225680570240913445239755861932934148926860173044464746863128474805500038523939116944781436089650011823907005671144664747172115389039463670435464092493328649217923488660510947304247077141927565805840773424114900852229769735562714797908969539134753776864033824005605926284110659457884399058712228897872784158920937046427502879939981875596617784910414194246447005863846275241553200464352908993821627266421922692122799707587348030954680063011666443246943400291514997214125447749485563596991724131285890873324184409271033507253976301543954900371554540837307867209686440211850597573273375280329400179448344190983471991438669738323402774364478880763524226822828479080991788134136383356328432413086237933796451457846586147175805634780088797904947541916245560371197748768142996650338013059101776936725721365249971095271993795489600345682940110252150171367708180618580358731933971296907195132948828639135210425381650546092692428132599361005887240635223504313378187673326279806090866741871501941778977605901938919136506198910491975508453867052284472995816334290215229792215769125942200102376067236191451273381717298437269439792529569310273874893452549158634099078498204247703381805569048574033929527844367247917637535538214942162642474475722765928629672431967601528353334157673816520362170219573816993381468426239804286996184926618129592434224508267001357391284304783852045601000639851377889105778446593546991431350895824283929879114016878803481349003618720287487334074216076263867828980908327106323297240058577379093012318332761571297427358125238627243968796310365902558826667374723711243973795394620031958222911366810441100012013561258570332118067352360714983087674855583110288302513314641021774954656979161656753646645622399621480375736471417614920627139941175533586746985521882972820960361609112235839325843419834770031648344350677856270528824087285609589688153277675433591986754739043563244839178563567293227922401245850048575256151185556385471059387775497595343735473629116196474976284875288089724301769218573007291044208954088235282056696555707177991832458134790913550451957549124381775991572418456605737561501988616777732662056105807640828499554935188080081376864278913129859574547879418460195020179622941924509303501032412421404716902281263368963045818971239332535437738294356230853794554743501533432509582500932462809980060910320641251663892728018999672294404805754695132783481179629684640303423010155403913513996664014220164998116484812015626417525902567110880833990255061352375896967496412937710333964727875357965311211456232954931095154410568676007550878847274408730464490097131737133527649828272729934475342729027330761824323534796825940305601156758179610814332324971205382986492265369977935925369619094580211863666635530354350093279969814919468784231684355226286571769558350574675620645883172997048234297391097148454743515021791498135997244222952725988285345772630398775785111719910072478489432801918734830120308366645271469248512457018812342769056305183757101231682387764659545866462649876622935505254860243987306504215143035265492968576581037302281939777713810854455768275796771828937396695542222590355919530464314656540001346221465480826970929769158853477648050959116485049784066715221506479388804298893849314609058936367101002211607567074282307798580388955534299035837772711842299021236025646276856223233052540221741674056104325178767050784585168143189286757268114286450408947449088908963087410502917321553303986154431466512805038486406506222418549141246057661448844877475305310317057335598184137386883298606525540006409949266215522923459890209899618147017614179818469361652072369026936234150747909203423679844532879975385784391476661705193110447159589680511374062130771090281487210962261012060457762495775928345963220039777332350243051600197519038194838752090231039588288780028587072180283668589643017243910850982642602760837297350652990304525346560998463840660613418996868393975535988107464050549073869289087732479607496897328059369034239407105693093707777579927024382256096512083400858781190634843944980825852062803261156525892809803988433791767494100383431945116927986237770530113114125254228138468085139558937196117017306278585641943286807517512500845505303193845772580963754546336875440175317111523732579282101611027868726231918765953676424163868125214289884611453326045297839923733075165388599306580136019617654896492676517175910635782972614603417972331906965582231470101987356807957003659455666050802442847436895458382667363089384694004002372806680570028970608215748957569054336773599869918940664002137566468051843243751722340033787026006774178722080720020359600602846161426222084031098305310675481129080614463519398545782212177432570366375716710675439660082551860955230783489390583011603723523876368332349807637500297288056537713101249684863887629070988183652701002876601869903425322084023796477044448140555155812453896291102031752655243066498841637040363366359310740102269915189532470784626266560056247953524527600045381034734256466588145792847084013733939345529767802192317068546246970939851644066360093680166302097137199643444781819112567435611420107565132994175658059839634003285997718133744673134438224129017215903224364639284191052825009872857501608398923846462242787577919873912697589158806772898569819075126325574855476108791691738516598131066218105476720083757425297266103470349894347702056323789412793679143464035791219233458573044846739838892380638966089619329874068084373276297646183174290642527241198735146466198930412433126603406585149086062605899950834790352104277166095450153381721011531801071438954529738992449620860157340976868452415877198987620549275140648169476390322267729074977957902534114001118640507897323398707656319016342842304004441646293533926313990164449659991966286925116786788180678069878456215019496539382754274310100896017860132190183694856178327199123602912583726350735273444802352533946757402305854489772851461531497671535259896924681829965658246554639141754284701051723273174565371522594392983019160942461045942269542950037932693099276930763379393672946097973386830267927719922606768099099482254612109015640685160780875810142474124841160439915864657566470749268576244820888657757759738405404781149571241196870792948081527258942853572529779688506272748587852836829497621633214923311191598459220278653820610524289284776728585460357519914559534157663474664512685487710074454007072247392225195624745677903462718332924664523575044126751037007129711424939828358131565220770827176462166382581823462382947393535438652280886370889259619700991838635455081719792109714046629666225447640208639636499769581368196331676708478293364097067343495572085875250246951856313325678234106580235266696799672930856993505137755196423277155823821639731570093677619713241683911444615937126074606864130316735813568386974945432659789405007472737917645092690904646921451232970954428812352987838402352980746170565046375073498627326234589062565544499984971099796456438222551149756924347297855319718349301892537112284985294354556395256342358688910828350494439277583629815415841920986900987624171264314659687283295462580606145924196555148821842274955474692098828778108820652606866096127952184332520844026632189924176788437139990855990372258253584429967230026455603721967979348013134295907695767324175435403383255862616700227148427000875210256724575628141873311062852302677122573167326218603723151981662510523435700867572602933194054657482524695662808536166795492554225151933668112259502756502831979722509528284561731105323351331372462714667655883760140621138896889687481690520810426623829080148257020361316291430021841695863720732927883003381212798496758513565093960817379637827368492809985953013329888525020104881160922352289822663898358927089334122728266248739767323248247377329417313309102558272923557693450064001080062011284348274638043363330439345469638630822190146809780692872423866863133365913791721861614153927020917535441466968875892334715693677656064773903278758892165761028692540893692548972439666171474303903280274201445645826120059703150236150426936167545141805603700566422464187803130249843493664020763359593760226231451439278240412671186854825736103157486664049060438675524918841730587401910476540866087399740023795318971622503117035889646551911705150438042064866234538010552686799742419593779374689541505520951996928686635989602892493218699925954920566810955603607053030218982758168840341868499540671043821801449966875047648058625120408451397642808470940776674468894356513047447215703586122846549717447624857916095987237631804846853969945577731815751799649201570678960083783332753878531957805417060079548668511801884036615939743285821110912655638699274662203463296817744646867932707892731239561699393438034477407009364964333844572931096465257203813878731011128321260726235205726204500135484579676761791203418371457875259134567778807089943122318604387701726379042589433197886546030302051965519203324156857569529689567202187226527753730033479877131730794464855789111758161049462855482323243272772129475820609559161348543717693446022654494734342590430141529734347087897852016939965720254703419640305465525544240558137237632195780085864121774359304407386588528394437892006127402580582136206872270949260480920840759228201611341777026952489000090215370965576049171032880772399741040867331882016849421361284746261729974754242250304589627327227790987759169897432726106380977048381040609042385465823255049689518779493520563405735876915969954746948928059245098221876891608421149074610515646573499847302041911058169139521085136618477325981937016232886242080339271922759317365437440382891227521327003581736302723700567263362357314231835547628071380239119587859353781997540513449539149273435526495646435739963492281358486577418649295683272227211428045819618814326022188240528174554252059496794395349185709722750495957410857074972395906505451249361416511469831698441165949235198996130828421744572328565685181311204696930363981606064408538870290003348648907494454101640635487018693412862263132773270387954930329722232315470151230174930771159589774935308633154252195001954461620043408438259086077362953810682882063962346083615693052716437987295531742644579502501836970591209219444234496477626694353281240469097034604250759781596632587711447332431247438325705114264668814884979251451934502088423675274430747288922255907986454139814774485760060126821532400218066632026867833880514261790311126030998162902928091977038577821001608139821401682237008222656517961536173439179863944535490254880844742757596533765109897966796304044647598194254998998322804834811945344701731413576854395989932238435371898152801183815616481660069982688368271149647497437680779604263861102956807481273666075957049252242494191313623041478754718916874518996671854881010059364570949531288724475881672506302735342110015587382996003110121674792391660318936556159895421614439892797657865459716578104593736959084570044674661328565188252935662254983411976028819076110683173110257405746536603206135099227178084842519636409430634727908658901758444040902267907413447651453214582283971399407187911838056017515859017995842416024451978914510113129565976721671764920921643034352446392685096834916994199561052212299057668515147146733535818290067696740530889617700123603450688470477859826711345534474848885373436965684065425906176190834693001839437686963249163699843203704859994662221511113152790070027755720836378873343256927175355999456515408435711718106475997677516701105177580797646999773969187572746419467917212208599660513914357709975691709577995867034861681973087530719686092332581006571450469595259499866550531894345631132801868234353180043716795043926907902802190659257928400549358566990206444086295536031769427099721508094272438760326300249689433860829775094165295110219537728227406346763511619457249212117908691805818461707265526486545147245072687745075761816608316383410433447158367714464118582153930139729221083762200764055690673557155943838737427517092241172952614781604668354794960726275090754346718738261634680814000396955095870872713982706611036166066204134370558271351598474359205519539588723509416787613832479177214452592748874951576135849006946206647899270636705146136754458493943637733747435575478021613944908726680203072104624306074215756949705849932617734815711369894005715611997235127043649029491985718534982307149351533752444678410698599181526524264344368114081500322868093170850763877567753522240809396533679942190201922289121104049640379014283685402177318730652452462662547140243818044457478394057089841277426745242882481616419410656354140600581309752611220413581171122729050566599362987696117755947521026836785801021930406413937995194108885607148122865621312374989462988084251212187086172681728607007745842581324004841408948019657234379697768418145408001029499604087742620430167913536612715214653919187174020824453318775119340184627990005880546935239006377787177956731817723972572988216596541363019822531625530116245613488599162092283377580793124182196430265013605610460953914640714692989712358074550041454872368154309249594743334903450937677585409344634217862291369669039035931595913905295137797362621416457731058120427090976851507839160880124572347793690660022877115489101834863982344157694502011385459204555977905442992492536830822455547402385853550669744774701494754495209802066669068558515733752006209486705327177063202400598825619049237835208456282002902018535869994742453955542195079635602144225526709896159022187824323099623052620467389798999810268193927512111820784762365846641406448889699094485774011489397682633451108958629723486359051281287421732188989664489419109206396556373912737133314719031274918175503022694622420488214230683446643273737088951295024544713448650609996135596519220603034437152635123151126254287782659280092360325606194286181231731786939192716041492625895896953029135752189000292628396843103245650255762726618551644150709468347083724455067123647663012102684517346796045754207156621661030598687038590687792835961850434150361351576747802758325663216308867990488393303455461457757968438400505575225102660937509272346767396178288452741490408940546290496414567260077093360176143180254739441472542727957571983364682568794578507775043800346625960687055176174432788187370743883545307443304719309896741806149695090170617023499137054901417455691999420801003456577541993623547163890923286557761094922033617366850654225574157947266863479470778693650503404368682755917351920674915367549764282496053199307880293951399266188475994915190420322967622260731366701394501875402455334399989330854500482840841324457392845804517340729687695326847274726092128222999609824142528037960077999558655667027355206339749553659892088559523800748224622654027835150097485930840415414163400529305027634478038421313207146647309926852351136799667996699306910862288793579636831971597613819281024466704575029853241699262169310103098661198785244103983777693025884584512090336386836576614050616541150629966552384759136630850357808595964233603018119941132141698431073157526469747779688602873783191975618686490713432245409332101113997216301654114592208320020778065521155345233064511627232909825255174474970452296879530711803801464369784680015103065842182078995796145991693122824951620067067509990812416332246281445853945533777209701156693851723028022239363686417029756008558927994426756255800153838851404193749385903001230450301815621342217859945965256531071682608138012877025542107289874146716731770988414656855421295105772137797158961377136007139722679554847257084991994627597077104370341113447046304224902091926730174716185419982012551172397424623684373665911214639775497160577005204766662448077784227327192207035138773099547252757423406314012515736390999210030280681483586911023703696448835320346708244672731151579261062972777355719963402664756245360550476921111722807754069966975465199756456407025626269494725974226786392480502839676290397707764027009110340039812381720648444972081604494692806561141658709778203898019111806298879905969806951075326800783039714255168102839487035742493900781980173736393756789873305034604396917707609226321541334961449284815175779346115882781154935661286974508340176873729970255559557998855547526309830209337138040759817759954843331602046322401967785065840012848089063511143715124237548969545846229322910202910989984598639322441589170835786265634307463511246482871862671298174348682019828806537815090713747220663343617993172662457322935316263530654414296581866039284110803381559941896981250502709292417993120668052966894093881035546165278449110061643000847248158558421103540362972753261976962705587048462288975885045405277996016418234893453087534166279910088605953026087701757506645088485048474054021975681293081389181306643588026256837839645454273367082205442025719361275629542185622768583296520624766517772871171259981082094287100533479732262741452801601512585080557168180756810066142319485743824054412586713631514968154746085441762904983803238062969772854731804429394891974928862510018221577556895011049038285288944117239473422213404772514857277129399167747806735237022957310954510259739316137551641422095338457653654287129501699320075137203531570038116751548620167063981082693179994314688031752067978844335958946688138077866703294039407852219249491384065826463026674202193157579300518443355672164577139323653930370511326499684516201631176362598380403575023193756796587751614771661321953412101948270845381789911754133021168933861719570573446944205910200108704973960597460356523379971919077082932760856727524001305623377883846005122032550577725686112273718186133921168479941576183057986017948763332850432835264929514562421317462646647748437867721080055806522426803443161569437994354671261626452021908966403602811386132696810328559879975726861457841905328767132972259916677223800783587797383773087244932611371776403226190440684331635107233561760756113099107909491908674881490236701447121724209827280108059235788220243155214577480181800355781533222991815035448790445209557391629115481152555183352623185741754328403386409037243887532759383937333791357204009524459508975091903892976219436626596657210346586759620716221042511546837700584754884338169228208998696827387186428052723340773699903295727701831818656769437915268847943663272130845236274962021138588819569038168711722689821486673745058833291290667354137198380546397329175827808787973416325613746540487643689464685822732225468845410669550247053486456180437342053389725317400881494664968653111928861524465721773367440998430230236140116329351440606195550143723125325478134554355792516215130109275751295213147458386568680952016986981469004407859167807887850524864827398062446026350075873586820573855485326862847967049146754965657132131761007292065826509790618260005614218752054641752232606142266242598031400023099919178811783025422019196684578944335412260722665004377994294327962359459763974829495266654769146191587336631399803916195145082004714263567633890269764570503727713647922045967874768339934120182638527328726171076675398762904166439733282116329801885101545848720031956613872596390288039251994292052914109257947929250869699157209448004815417901279268651458397741555802624949596112449167602978287544482311230043711662933801118323291338644979402795027008398249614234858359422047640651212400872323663395041447487225192466622272480093956525672975807566577632152957655986300322869451686952597644292858857799731861611653966995856946205684985132121320826164626054039799015619633371236889657574055783380402188265274564878426379214451105194899143711123982587655951643133625223115643720282459176814238527676520051192483327272829592487926532940222827897241534039727088629267919680909328277620029471115571029877021701117103424079632416004029803024933955362142090802409954003863182526303000062468109179264042049861524816272576714835879977306475461484972932123702322211973267395809616201316606056318902850363734655145314733377685817048238442258248753347574759465374844813063105683928528607539985415310854902999694850559318756957171029586734923362020968965735179380545485894037830286926342871091267337939241833874782763805638888577496404423654985055055019058639216739354118498829894339336443774306645209036317244073355690129845935776203669195475087600130648041878518719329931785825440009496644402795549321645182214507075402899179740618036210811014674762915399402866833991386341858589154867563639955214627538704110479551148516017598430879911655520386097808232691448139631587513512841578734835649617297540181714205229775484364914914482184454859990265866951712322043811372585632568669444220711133054731623582865731745483849225495051654940128300856153403182721439982962284959027078984594918735007022052322553049136259448247311863816296279824155319848970738406844738637015617887001797230220983368531062034431258457650168915403581022117479189607392888616287439124895193205400163601598553445958305761381247683372878263407731148389687073298957405752996457487867772993346127056499631902142299097694355686241157637607972041276209179144538292931074243645198132740447692507758831466345742852037918181141474633845019121396655197298139325915157601121537648830952842764027574864807128586661302731969243159014596376244890725324716553490895656982813879547087462142974130870959629620326331099973541712667718872695092021654461282151621917679099350893436051603337892671171401496476765557969007585658512597642497360831018059289382794832109748593986483538660357827398425106528666069110646173340265645090775879503725174092743777118208672898114967491970813021117263042544157393000521183546144802103869921727705261850822335019034763744292241350200411647146206901886488231790745825840787495727069576691181684489130964391447882607775838421041185823263445631467069064549298278177780987612460045150174304876604576648561894594870464301685471345201326238046212181823650838750659268873990890972515181134396303599570961482453525822428021651171926787655236183682740886254367499957104513790764458156490632274676973946038241726531352117734124121647663268868906017685291918397202270436194248397962380806847019928269309377478977296232494616472832633148900643456506903505715368641755365132072756198010542505622283476239347645455407580401230726794852715721747711507334408323380956245973165996065459743394155741323724712555448880506791775097688705320620072504792204820142959293343093475849397866444900410698317086387792845675637097844132481600844816927120599663498791252132819439382786430037591623995196885133446863888600870845335633636162781098913147441896427814420513304976367894037639437995664047495310747900661716744974801217027702096385041340953809422183660259446009121012349456687166227581169049037978077794448508116575292520351177611181289817710881286414501208074521465603863105919416513340349471035733598375797141829898070226216663336061760243584521525005939297679895822688236218176389443181881244585784916436616565433818873825035823775513110637450291932073509303403050446626105340214038154914190154565440771855284295878365981246345927340128016747840520709165089201880391968291106324345237895687047432228243827912399378063729954217905306763276284804452488142684348708857439499978724957809824557354853921961406617066169705628425270792017071077435015862495872859066323892023722216890017826263008749583092239167958343126668542657623248260288374107666269615053604577646423431948759593183660719706460730488910300303767688554843047735327250357121389514402159941922693892085676852093140302111834010492137547640584781651026950047069563563876620381526119067875883005607879072588378520661355573674064712385921759623406780658688012056391848851165075904490692139365900263900715405296972217437806423406552994509939771607486452658875177806260042298823246469688231619707322527636044731390362477464746519821663111323011898418409364379419320134701266524777954572120239010971560634490630964391473417982881140280169254781996072552501514354876725713585440227485964642737540549989898325069649363237825794056880277186933714889448961154533819668410556133287212243278285649454813102402329616366229967893733565506363162957008032216171870528511872622553767460703868093687830202591066684580973614134870715972902660149539264789979042653888015772971352554147400270796205550458843088706688349101326530208063237343204876729026979429761000248449671438963172709482370446744113281279887940883787110837970530901858691613364274635144739975981230552262562438176227915944368848966378432594509065212887255606766171113335094720232958435534689959948252795372892447407665121616214008132973892329291991537882575241148120744315272694201800052429271050270444215251079517679976489342080855677584716521645577719577413061151665716795248855042931292446282679945529323819292367295323684852356664127013522337691896119483916194174468296764454594254796786291575360417246744338677119119867404493530350343440959712346895954316953655481976014905989826403745724284614409535431768728576116084591765949985812768658531698910232024805106795998149930093421069210323068426456170895026636042333698878162297668151363240496470205887428280465986829435837748740056467559657213168709923240738001427475053238606824761569035880812952594505574718191219418001428031646266539770603313998929408107573486613798989513562695538164784239792550817579428756100532806400098308134674900282834123801281502804929012761628901330889709615736683594371881020932132766036145558595078587160780772967543089966155293822228130804080069421438998157280016937455254508951897082109577070357512617793036831760556943946832580368267409645787390257645677869216465173174693726086262563723217786477005672562186719809264790553135205435501752070522143930182390047781021550994317351593984532212017317673881075207544060528713648806452965465057203641023087462351772571581784264240792277449946577200291598681410905281100384827912371627365884410463500216293219355729962272670706241903663557979687213787724034811269128298354825893136206942202521104138852886528032834248057284647647761586604699451307332661844320193247227023445655067410768224443273317974581983542853304011761742626928421118440335365895403203593658970496035265702850926464160813147155450328276658295830239806589439820962548433986922028501650254759931483652615992953656841563540917311001891596426585905488078468211036376489720127937667478861092118846466344717080774323495708857768323309329445063078791614567782892739361133140472628816869506657189642061093529556914553742000762819982311135028642391527249799668401751493413618176644913165761885581830859283879111020341741132737158349029179256564455022662287181044695682278050111201346630954703712692453419146837699010896001379752326783416176984902047460887805181749603522216763985800811299987735965552632382616106469469120560188402418159219105426578610864208414660907692971511229699592254289675560495558092898352408340118562910672265522737626505601474243163094233197800645846973690745264499822908467642552945771854662593228170454952477619862857294889474382848305590537622339135485724264346553247696601463326476105808099728991347011813821531695559803071769980850160754956448538805492644112150973529696905288588737186785301208961030337096342013128757651007024806482918928720122084835659390961174697743198418787755370352052759665013693286259435539160624132498808725308617999030429811166380143933077722748984388799523716384159855983029215991266573290186976580636612354234466105904322379140350939627901381103312453301183125796041187843023993798654979924855782723321740404616579477654508239650847857604314717215651015970126955507990214087855928280977843772655996710821388720263188374988772345641462013436491370288503658111334683785467441040125292319628698292253346157666930845397133204014222056090323165674159571162456111530168065373703540980561458974413226073048303380173608460083726503692829347444972974744974544681246721531157044126352531712252540689979840091020438360534780277423865837967422389549661655117709049668943886349470337720786191832775933125092049748512437941247810403163078601761236468555555048847994958589005982990483482612945925514191269016072655023991084477371929717194899464461119288412228611042162487241991052537751958759077131419211072842558556404580730362349026361164165756678201592711623815573255302084946428192589671218001651775343067836940956180396019276947469860720464704630656856958404731432363879582527572165307987166602392122416696138777669772259749327092294382541123386790516902513745107135381954078568725584027801956055125461717111219651739094065785281663868361842198615856930879846456605191444505958370360019165812460293495469495864658472783156450544633026646034196105720358128491913192176285797504183372460822195373535579744614664643804453444151949486574913637820149394362644226829019958040379081552399171892398656520863869305587905976582739034907677657747408885883163964563567917393361380309290700252203544904393175128272157072499993521783510299019428344080194919540004129284811229409756700029697999423674395858419024325803512805521750310357345135345899930264602087204925742926653823811005636089954079336435587204882012774115653187771723733030622975913765611592335523288075490804935116691493518633401179583887232422775337880825190517109420793105100008202563268345610857435633109701038144805043235108400308813767449638172168239952052256254704793849835612537337901728626172797309010165769010976969422221354703752431919195416008630835190849232643082244494404953558961580857311520191032844501459486110819311804646150830749786538662299757909510261296971247318625543330048884393908266801394762559952677720469904550878648500318668657762480527951093425597745478255660646077577377413128473147978641944533917815067725941210750661617546660203903242965149186418083487523027941968151611958879143541870347620726257506604265571576491189084338578302286818548448668379357250567197108471496462858336234591099273355084588447252820426736661680433065895887561670542496327088132094296905250966035651942400877741698229788883233525682046896860513419128145373071309385893805845581708592205928033794389842447049403821705263166064545547238483366936045584645730359565838905257856673689420101999452359298483970346433957992642460037321585276064616615689985528102140839953157707380936939874240690046009709886397705952845834987398449987025284048022323784012943062139973584687395415074247246278588780967418188984006317633877072852722900035095178945681984241463872779325211033106873437285454722745497447818951134829927645202538150380045105230875816294945383051819779552843797139126915992694250808220253216491925686356477552433101908693429542103058559578928813855716577853527340147248098339347257683552982003509065022281551701795767463292946958601757439633319616688980069765213081154793422687028513133095057523094552180773771335487332888432311243353165299433971615213440773586942985331673687734984631903032573330521788628420166210594842341267054766329362639618438720870872065774672130805200290810791232823684532955732046909394215469497528257385907768965986876306286948006468576625704210471262823273349624319809724152259276369455764421851833108882572162863599629698208976360830118396022157391990201191673583014596441027976073960278210619667448448860939610495306469056842810668151338108802577731260905043887767354953032967010497723467821039258284226347201303711192618734651203538368388892061531248730018036445397514002705539792772096922843383662232130222527238303532515720051911636617137583784255804128107245121845638314951139870415568054244743527210911057095498139340891780748609633275945011326541578320233111784052017004435528351909299840964399859782438910502245964904108038577808570283937299039443824980671060034261106720358283446648662467156964896344681904785347462202035871956313778374847019786538494763012230397112234951418585435705491194448266273163741785139708754505551531023408343582592750050746731286094009858808826410948059253363851531167805882918745722715845373680036113793315819990860266492125682661004391865352478875325186648803748217112689128061895463398512091511888665139705198862371068869546533567492053762002924897846908092603601179188923570948309706647109106236063030958859320734054433222859660243178121072128076704233879945627026966903372334295426429000900678977116241894922263996629843828434748585820428307992108447257151228748566171805156379980125929410098124314541317144457283941383928472871201539936806885095678049758405547106984242866096724787423348376526963490439705293400078040174173151778676749978061057529463598420668086069655809466689270352031591616444349795826322056469283217702975214638947044699826944559312130240038737829423380075272961294235014603694707880870092034696913364459888298977022947340627537935394353579757689504651848992699527190866961486608293642507959527945908837514469633438614743164747169337891357850776655925917480344267882824839157866873691835264625886103833883663870331069597474583959627753105625300511321809556110343087448856525101582510230584712052854853006828780895093445537293627422682000930877904309731302997223777953071881562122929992991760602822954163981943250810416557495372329524292113231992428104044155447084834683120855296408465030412880038490795519115647656769426061272750158081348434904455809548696714058828584260403368136892977911197253188525074660310527425456711067536068571150841721208911671716375883893911581150068974130919738685420458856446648899870923582517737722115754531655362799691987341096950643806445097353747248684195123175689635110681723500679663602475827113134219777586294252525716014057157787279800458777452123979741792844908379417494843654984965699629163718517177913277632619626399055673799222520554897839869335418636944012781011351851903201463839317322759116044977908217496380116207166711539259857706277855206469664060099657878720279253477487397287149433727488575523439975195914065110051747438456851930093618334397973133283300807654252481893202018124409080309629029446245195972169936042252946247624286478390102054981145000676189777471692975216974152382573012912269436145657449954015708816323638048371349857095458681971348145264777673507861687869865480229800767024787588375187156060327482342447914775373732284003270740103116989191521688422188023348342022218710527072124863356785422406169037885618182377081819922428613798178296017038013520762129966679121872840195519229777928285551655367362136951391704617576107242148028473547768963032490023775201419458730216181297623083183239222841171921459411964374120574878037399273228535550041368804161822220985315651851108749592323484250178571880926637397271013958631963329146171816243236354980737899368597027592665455017828414449974616085430261479358630059259216301888355814768209356827063131831794972367373679346706074890086411858230844301177317269303244100477415005242082774768452016643264730171323183547011240205573652682705212159973905244758045738992152341789698575613332557053397286487456138853459821833028205901228825236717974888278092514925101920066689851243654136827989236009562322303133519109898357542806260171934721548601527566735657312430672343378253776497907842228109952194412927114745368088254345557911141373157507238616615442005989438266671481174434590766426262861514762128032779411940396330488204641468541255309518549919081353343992809786572183955529929301407138325357036448497837050782690126011347143203655398549366541063444644515820657604944447295596672001263909078636949378669705913302376655201715811864558773764193040267698734301709703748809972898690419088157166488807504288872697888331330764834596147632475595794104097405666028083761063443820147582359802720672761174988850897030080681537558972821325721723806129312347203305433829655149294631672610490421637138928110435956024357755606558904335296061172898156597491663262866740702382001826026353148569411483384407262257439012412849170919204870565027287979605042912212372635172906485643617649827765482437891550503519853142355949308959546521580389573207628052435811589454054229211873077846356446587174523542991932035525088355150658716483031058982592101950993362798699401876012618769610509517899360298142394108062793647164937411629484224972735203432906464370714961960995341712666373954346155734180692173044468314042258409101475173367149420223860323847270495684193113713555518578457049989406917408011312481382068323299690970631321797060339455691075550378715231688949362257401102536977578868577179899741611126489899549690664893446327321328350320859191279138558132048118150203670533633216777827770352127001960627103693223190594136353955353525998666986803529964793609886860648636744069214293341294370162989571199121254305407744555421814567667448155515369764293911528024881322673134887575389575661576751304827528815256049179264814496325304564050597783144588798597636490487938747995557484818816345006260929339341527104419132913326482620655048088967271798225811594503529806731035712011453787002802489947629797582059574726478449767860913507513923804210641263998197795653289733583697717375183987294325941931977730027421794236240388735849385959168196414236265194527096809373092354413432076344249516470973744766998115826489696868407451492302044609283710633669986005547664996928805229509890585119982946823391875188731683954627265926070025640912749445153859067371048254295451173684860473074951452352387984277641662413334482450215480250863513070446738796289922108340474510811465470534125964696546547524466940161472780512696448547631643057122180413464306986179908759152752854242917665401858250141451124272845255141494731822678056154643659711415189566826705110487781497273276043308091092515401609806997968810522911127139879070704118160240116410747374418251834085949873866756326264421742589791558028007634377686724580178996343117834661242283931769398772244009055345238054753207326430618895904976654521264080285473411570484424045043670250303549728045910109032075841083002160088578333037376828169685631426412373163786598398530705911263567274095582203546499849240178925908064327588177189116521001559875787292241346117639786246012073219279715342966529767706396269652485080445782731816618710373545132386556087353600277070321539189892854136555365853040783540170930871869276175100341409614937494816810950057333100519554980658720759645976930104467234679265971974958556499586182957754757629878097535175636641645837020918958044016381173755480930246167741812256336844984489129996366179836092077654835862610613415996745898227231489710445206262839167228406119831705096144611663270469524648511336916680772548826560990587553234942300762431622808755334054579428421832903852988799601882259168710703238073798723100679335176349353478359170874576352874397502422309841641599249534948079280986378931400749014149391341893186914640944439952612343819468848182542243601770027418324338755724640868830921790171425251203315728793680574896033800658195831720740427625481203950375207935380387134088065539363154576643218260725887481467442878672715889838647832300514903102836605209627101171089635060188645767960803242133367766060420044365676042248065489392714345575878210085299014680719166682507055900316406047540697551881435388141685586581652071948186025113428231362808172266374277267891114460865679972977794442319954975064572035269473771307517053932411843903662749088621109540051651191501686211660057328225907647944787795816677681550829683934759889377399587454922764972118909299203973331390592681545816555130582150393705089407418303706132933949352604610159799160988688234779630867996995794978639328297458642917784012861335179022858121327260307182296870034642339073440197375413909551757166832292581713018057149659594498949083588087180477991190560430275846040987201016211775224746809121099178768617118988844892146593745652743987526819951136646685123601240144794689248598587642485858821106230692359333373268676467660927741894760890769184034579049859512267727388425477018935050794928776268844605178057660155998007643798014642113402441605767078960016996046859910192382477376738830274692782194502773151569061137088557131673145004611878211956874491719382343165182954671577703153562977787081256353479399834254367890363045272862028510170754204022772624472408198812131310814288297183006521466219141252223066368663965724951152005934612311495089785370442532188123676048101917457572956478195981296328624611761431972542503728920284869192638664524437911523640684254810717767554787849686897060273405183408798818321762777688931064168582451129740444264358969697372946765714203658580827828583087872363850699755532567339022511649332326503867151546017754374053143245260678401123229844604940263448977310167790975992128035713357304462564884694711925274042812113709287597054111052101995548203850927715496192683218019525447123254828047017729948705001061322684677299322750817111365293814235826875470952084280640267061994834161019091440284694641560427015864948009944501227642186225714857636624996785489970679604422279824662826277127049246621103517235255109363268606187228839625715183673872394425394561893645982119787428502014561250689626079931816805703313862705504896699669016459378365027986876733656153916075644940376654745743607125050544087606406568623888300967361705696487910609010660883581800349640577337091540633902156323216290642069100582661605629085799335338217933068936103281071616811402624074202915327569994429369114017694881108297543069159699110662507655877918662660198068672961259767853179897347563491339667517059359599378998375289047533237940547685657690387164560942274412361397492269953704280350321918560967193759994463856134280165774279241816869846484871917532635430937777288441566652868733367649988181577523026578643028543007822089632381143692412205035933722214684048646380962483802772743934642552528439605343128590431066402038556695288815819725657577166923481679889853992842778034891606595173551643774920293876121782024959160325464190802161129949876891403291301442144162034645845262278217139815589119722963603739081879472607397671595007314048265338882103111602060552831880378436807858978112834451099515462881125649706458027730510667054523235251111115296098153168616413334125378723800838147111273354262391047805743379559623698697035984937601676023421845124291052642497960905097527765994489729117234379244855655444276878710465769997213302206276299792039396609597770683941491691987858229921047288148666411859422731943807378571651128348295318564174702546992539340261992635280024749693211624504789032951717845860368461113156155560364372282885990553117318618043794913487234540900636290848871145245432446919453759000843229199889821342786900621985552376496247487616807458000381397929840748650697806710792795579023526445140898509612849233028815483498371766646558662909315123808579494740944667116067504299769906094725938173208054259789779938283283019467365453449435148183992970872800916639536935834007672400645900801653730693328417576082941872985440223462819269767607059388596152348981800935137484068974441652428705803229685697987622384999649733018921755700137129065308929226763627879384023456783266354939063082103321409313269820693711328125677205024421594407983511221908964145060675501300805666895619111909112059728133960604594241698964889711410119313714317860876436803103016324241289758847772510282511991909432549367744369679959729377884221729353697314284436714639008472290597695576785681071835489626871815813527698693858252443070148859229727131888932831852037563457397391799498689288917284839671292659406772644855273568896296697771808687761810103711287515885176669539028155788290735322762099282483640382608182035783050690252455823359901349209222978118082507310758220217555737211379223686842663394609507312704612613741592368594857694345162919384611887364503946458421877449202197725870365738794665783560678062072276808714744059299075985129386889391621677605187853256628510984325912423666734827332390677511566467041953124446281275866362803206278204895427361649173348637616312010325588861041449465990117347183641792001590028058736942661247012395262655141623945741235069272365975494160795290943163148467639620223399471247089483019933482193914518393286009415465821248086815864398842531381091704717520781832539093132300992953745335110050528429170026892066060165694856331215364473431788605924724884337493726655686376176133942538659666406793435912509243713339541008596806146128243690011381038019248993290103078404426006875142280270968520937110492184261529810485865505095592847674655809241450356651376054547272525927169044046826139917599871692298036120495455439710597640105893886449730702596288580683776176650521229812867762517011590837031617576199162960390344991577339330681233326060289633939174384460877743785532798734286121161030406800748349753707111465074924492608085584887250462669488133355867860584027205384924540863854784726874697678138235257148435236006243744435776015934209571742676007924047403469825919666413666043535425573319568160650483024139123249982945360135729808847021077986957349363296044957262059534344773086194586106650859660456211619352373419026086564119987788302441042548778707428553630529040910219187393927483743453775590330919073626259605014650892467628329479212946666083914098997388724598674989184063949879970275428865382144014685044024721826222102728960776775190099099417526110475783931587614388050973183609008877840538415227299985546215000106765876577290790930712986055269181600296790287355268112316009966131351297653547427072833736628898319003782528755337545577542565242022069606554013567698564735145601964327427820081223333399386333209911878554943321470412553121143627210581146689124388262436021775673770909896543797142173578045413162507083557461301934723592106101893074366508597378998112935389432998340609628949622025419567666875441310935943552738593368416123488099313421060960854356228894243041426720958404082517954019601491953808603270716614365387642402240206638361714180338496629864368980836863614237106496505545534321245359443326589556645239624759081131074446357956555193142628868247870193731755042989400841530737903874003513310618645117774876110128591071401510011965794055695620894593629304530799209682393896356487543263339343399054912067952800982505443374103802431549318748857881536918208027268925357478146833309250934418772219043790363064966835759558845548453054839870060450044451898089398644493984969722790656825598020361823170873580892414147217685518956875635578415748501824500018224155705194772364134778079860698123006747881880387807550133345138540328828776005126735819556763669022116993312386055130222862218484880587828393899955966799625294867186718006492028062974862386854400697598019214680810014479435222500757080892752414804332441208360196805469415677425424755219187496153435136456862802904286605856980713740059644840318600569644834514252554830274878497935189344702221290628090700780538051822395083594367843843840308690254010356320523790385970025873439422674057255620443606928227322148701949421771026311052968460945772800935677612706552858512532994980223709537762788143153032871799199309673958259421312200386490868152252127791272479426944051883427420533414282211787333839534393098220442039375128013118226878488350266844453568451279984489675193264156790878752369459218929474991417779406606904807325413069976977980892123307321457433119445911081944404760546912359089745871456516673664409893809435678716072434880944791368690139322488877941803634771884721387949235512802161536319215259603223023982586389935506576721260342244954527181134939380501021245191335966674571182384561106558763423111589531531009879356196081747433034160520398557919179751304144270421792660420151460536774024682371601203316219504686687634019050330651529011450372388471283476877070498321650126383470959040200104242510724491719469809194506812193619115849878945943641594543147446616578388207412513124545253590484458143106029557756551461257470405937419871986036284324721532467989201344274200854688352128282661233473728422260507497230469241891158483306685642280196121744298713342615270093147393380493188389422017808333340557452343811962009537907700561108663496103287729438355970983054093172175776210029452106811637014761301918407909296645278727466709294168735769192178052642444845622535739673910772900853256364553428302659721051628620441169184747937659960846286041056412892260866348230665182685351189342612257511204342891561529049010398480943262403127121308046107701151679123999388777294019691474695249636957624858693107127903052687294352452207782657105246358471469851887423596820426274614056798943981194634782199073397411951891008340964045298761670695922149048939523893387890373908975486261110176855674076914603137009675920162617063417599313992836950192328008326155208643584339712663745607124110451439535791075891378472230710837930545133651694748066860669687500561469110585871100508759684765979288355693203787093913667901111680897817858330803800678119966743055446517846869545709800041026756329497854538910132160621815215862166260085596701530724549153152319459114794718252497318083052308630820238612792793534004103967715071607265502252838099140688585409550249021380231873943449023185281051132977682373230064217711544598352157603154712980189749373357410069612255612700219570890350734454337769492149062815005905708801352520066832471389927239498879146677789431667984521443040823831529950843410958476650163384878624155034387554885455363318383769039325805463680414065797364838668449558469471027783704215516332463751205745052311129117232607745271831566673237722981756758859685969412736309959651159343729350327482868795816594439039601161533004766871482587763959976599443344200838226627211337646058384854924012784648980368987896373777303289373204145117246187594536332603115585036846794910926169038313121208813386737557280454189941739170139848032648093978673902457302416631714593210375696159220014351517791335948876355753864614798939364165379719345376620465621397504561290704750085943003104510459091493788062460732187779278313279589735532343375967129595326952662977671639731854358875000893469868445675472512508297846784899196300597863607927811699158637851965700419556146493414979303277049319227758428932740265992575980226399109381604778421926544456111689893759910390757369215914199934074214182045190684421074534381268489848815806791492944880939061718771597202128941708355868658214923353488926144364602761215664132899318416821689045933701754389797388071494903021511390944653952950107475902114500481898886902027773945986400342177954718843218782481706705664926920884617178648818079308108910259370520561097788393818892512552786648136953178282535870438325858389843682701031732305613169767167866364227680507265084499357586436246946310318720532044785830787470556837822322714523887238224689505016491139701361475899127741382068832253599567441805038224957275932847782876768472492637868969040545383898259329483808651253523295528341036296028748235379780768735524390193429341458716038263665410259991333838723155299269565987471454693600626921783221605760014017898532530066751334529006416000026902732552064201547042989385955500710840705438458435006445745997363719412820781220412800755046696001689462084934375133831312346301331470911433352693280216931660910099111429923129085689591062535415147869659530902760511864450517874233799976357606532448345642616232109124539050464351480087674071592560806989924235146042155519417103405401824426184122520222565978685275319570248230422874844088685394787897100573253385001374286571334425204422267646761258883825800636644486967744206509174886793420260644798522482297732845625358873926387677257692600268182890527629604647190070831727432061830502374750140880403058188553866974189564567969807634796938419400360795840118156487480816459183674867069720927845649491135581468824196541582790965231592500745817533573629399585592679416350310693365275396820145773866839653127591070703823363604539086238236828956833471675600561585830758617114031306576675516934629436504411388306251937418719928334108265194403139993336688355346287152874782656339219275133655060980373156910384897532464786425485942376449413601069578417102674441777227547778836083547811209622398811789185281538823091004489243744331807443899675057591588093732754824144622907182720216390225254960573466408044700574479018389239996321388517551941999621173607401743555792583743675288008256822271485710061233615093562391182201171601919177142473323251697859115606099251543585035648766858962012530411605892645886529039646077118473948085680470549589856722421094236384813029901111435096284213937599612100344463924672166350439481112798898919324894165511003579309799053812997532883252249887132365163715027157076915067354987495786231975542461374567937954727967950945429893142504762789104924110979615481534495752268991197823871741011911808891173714920246848546097220384071966797725589441016639223809820993062323335166005094313077724510971980787170322153947314433504719248897604931752740389699177189661991680807970008624411451011229786646235261763676257106915599745181263050957334687988336716719151783105937077420685032393675770041001544735153766021798261349402280209369151618246681725178445762791101008750011762072026648330963558339832746082689668529049392418847472957461135071315967634982653282048447394397106150495983136142609860983542837794562804456231591406563608938493786869317810721981147546906960224063853925091863085265139060934502188643955158761473892072177896511376181601886689636348888826936662915166750384482604391885170194639394595558381935421110862978040918255607228048798620993960767624520228076912509346502335957428023985898271894354709393365679698150223456984810849667559089569813400889959831790485341520349899080288393881636587887222631579678226734654111422239851814656407760986551917011546104982718546868470524975785182440897282382553363474916414344326882797379404483300944993824043536993783782951310713498894444818334356903126266715006844453110032704861786758480863715330271103789335634050398443183452337548306930591269475396314409397646102157291968306475309035082768592712948445499031205856629453323311843247230839841752112958102364855367385525896230831330508211691506795111460870980274664386157999662371504363470255222073210070649151154502189245653153804843355758620724437662928492891597607659500147050555492544753191351507096517621296099982717810347263409069549436266228819944538358642745909719824367392875337188498995871797009653218432847377659034736253422571935827406878734942048197555202401653554466010503777583428304784804824918365003362779305036821589276326989838653514979582550787258864964032975350231441617028891807535047589421875488687650930265667735310408950118791506206712478348358824035126792072182914812082194025709778231596903287980888734357630274399831810431807775123563349669449612143112019009142234677568921398921277409388607644172441835183602170868246189540592787817146616090239772376105361078770848051843458930543998640398379535837856369384407851735134704760166789480832677182556660559937991266439062597083541420715175930594650992558397972688505039876382967865138123889663296361102528102390030403847436511060686012048861347563614827217531293288668198499391526411857034237077574696854968786018516277770757501061093760818280799540880745284730697747472786055166695480687535301568667499518625423961644725745870216231466659028543254159322088479260887470654882755901798628040574268976540958691431088202837215395242481557192059593157415899415936871741425423981517400256302282805749989275009959149874043682976175039649137504706808675354535908149516535582675522447641211636251057480106523529933263904599284953082796917129380677687011814967805376786604536801836415399338200131411736185748908926851760737861354245085132379438427665444045445343650386131622741981275305645944886339832818913651678842557545160559332280772182000810302252498379867253895853658367994413085674685493518184925281860115636927457638337795685736547556304805265610015423984329150541030991714987985257758763374693294683181710618418612241549675465199440073649906981031247079972344432509011155710679407186235599176126177473968936712492890187118361934370290348808053618436328744873166063969924118071992720252018686913395906843404260858535651241818004438674244642454128045672832656405877583137717524557956961373704357319017194895311814204127803332747829707598667101034585612274448354419420515844473804465936864911682890189251100339560312105382048218943072528098865036087102537500487037893974401675870347826606282567467513754682117025066709134741809651689512155598888205851100101764814855446402431801221013068705843979927234437195222213180678253657269481887666451678352142083686752835403098726113952966233502811316373580046338772469931423572329676861567909488673454494224972778871926086040141838233618592500811034888588333713193310254524731271324550949116166304965523567066632396647498890752281150620783898326202064786723345310833958763414824568595153935151567329353535225427723431824861831325237952534384727602954541552528408510849503650696155877034640102274788889765457959108687507427588843235084067654520513065476073038554180189434620206024168119845951654119407647314197062917045817270627759684248853975216684938646382504961876110311956547805502670787262886109101709000514215094067851925180619651939186807140265990938656226755062421891304879846407337713503471430751328371011910076757799136383670939223123196398770150712141674835212444989759878364637486498489583262680475381568093568315673805289220700787401870552752064303029448735987311211200202234737158510872831624432386845277676557414355606914435369561901918497433780384386757630370224689272789437967546284380263841071977649079975026197951642648779546561562249580657501875269826328564426363408982756931770976155772264341487615592015938317337390166259308949908627942642809408670584196732760281663119557929231599977490187714201561356277429860511296422560116679503707661524978688642842569194553903149691949387784940102871418915385038235729997517789522766777152813222842876322946594040435927137235284773948983300076536968644608782694400248686612923036549665800053668887646276027396024120101317908674672039556032116400166372607057683070177292317527503378965512266896887306472448658806580862205932958383473086447774018022834844912984609054172504700771839306972227747529519667144320529786332489856667450005267640013974680941407994037334508227099868794595374002064360230091528730719118021196370982052340446264514279492478579189011423291642936945042090707992188791824426866949570568401053501039222461937651089766851171262223166150143426166567481408387300777548170563833494831140395924020990222320417238054847700837870262133530264365224704855181182720994174059969798228080928676579216698602824167948021747923774496154787839489345312107800724193890482051208501242807260910633912238925308086024283317867705447010896698289711220705981212317198271124409262114253260266386134507195385292557224204334224414757838682875684672129794488225323260556123222977161223008097075098715369161674721270759882326982823112609875246875878523269130988538200339082724450924430159676989713856736938342684492248537494540569361635791450812907789471668795931632669782059274568478815040666887979050245589958543302462806300415701993978234716710043483320324474677306692055523331885020663938806351798801355630482915234923318720879162564122504416293925128232090123059687145738511746547123297530645329897978077782394373070174564407309762399902317458762995449097501838912512903492268565634503280574386168683094805779933141010976717311387128044258583800323304167023556380031859757821508371823734950728921697778251798066744723950571779543615665356070918766269004648284020313737118219568008663020976258067916056483266609900775384231541718942845280704952352778613422347332677458084356036217550306155160849928261660967245572180635090230697439458430371989623901884228781300786698554384484791426049917624635722463451117241255056492219338593030493211969695005060054001597170252306753302626001759180339942702073603297179287284788569811437228734423014589270668497467256186085309541363640532125083397886357461671097553100164327126407321412206967434165732003480392910610693764843027268961529673984064177480882566619687066240571785793640515162924746844676202174093917185214170548433732540461455815216800516687676301874815384003152260616090910479562629219286963229567994583403087095298705567966965270253036303536966950598000962173434101821894476384933972191755743354014662392159646832896591333594465646042252526430024287074578040764176050750430189057943138584379872180705580937443064239411727054051755859376082989194439112758284710243682722991112874362778350508290154920083110524698557550229129765147965444541809214502983162670402161258144122286028431072026901224911278361214228286031994815342112576208027531176663033689989035564562661686250728924611468178594519564266242695942925781029498572137642684878993423198157946331002497060355116330559197099741972903492723929809552034485349419236457103229103481325278145053526098790174393625342163437764248739152023762583467000872550782202704720902823315480576563108545820420497435233311072846662886745810599927951606414454729062138630632833600149897803627804695831115453978383859419272240728246374588460537409956901114446794762087254724076506495967500412568198112252001256009008533154782165859102066938192185767502453984981329434400582691384465327123851484109627441656068432582728608327200053044081666946461460773033526504421460974584005140164643287006911475090904673090553881661661984931677643025401253569975562422654648842923500027801693869575818746599680356849073396591945871223853299296298997888199057162549254079576839587542676190091778999868741332062837650107083489980116641107127956862482214262174503977282090854758007344791197667651373154147489831720975136569626183601482506742248128988328539559715982999394017063580764268098479018047471881045854913587760804604415110615591158967818494982533609312128708293850723529026380186941903086139990004505000599048337426346339880429036206820750731013233254065440331814665948823069959150081527534553885029056995166316268084824580334070926549773978827794004639402724620898812814199058262959516768580592638789017864220688339725403071786849006001682812455361782371333987433455344770509365683414241451601135535967474603581653936548358277719392108486119208163284620314601451743638210894955639887332031169334065928259000861263406066058511764556240639371181636506485424774560523339853352560193446322986423835792796076083232093153901246541419930201184279548274438991706451736355226098464991345737762865308399373388594380648141811592823210678537404559570820284837302666319889617528076653737743279435945570635627030420127856228252609512469314343116688051043304816708326628929917711719395480141033638193443870637046230462106506370054900191884765758026456515724675547062751506645501023489336185428199397072661605312806552172762209065293056321760713810471789931875837145970948607979397237294568302645671068784155644457537023969614440023440207773652654520389627654849942707319851580482565956986587731513571489785038795174500281798108431162373682997666177974178406898407468193521820162923524803295616038980469381355661587372354103795087221562750412929530755620016370195666094414664141327490526025399541762781437458924977782112364819846888570904163246300928866095962059847573204316725284829521443130613738446808063351997624208722174189284819069555241725495156023288160626546481757437761888449053004215343441917267876909771295646803604924814662713676822328811455390522888490185051234596280532700561279185342811699481183499868686005779341309697731541895030615859754097537767365673377424707025904330425197411451438451653787574133549875049388728538641145371033155850851015155985798540568323339778916315885701564741906903146311921857181754610595690336382586178578592120221821117390747005486019785937163904126240362603740017364387037088257881582240291982799287494277665822184235548115906178115798797203325987070916615585211451883093330427701722118444398495059390578456436763297378583601212715165759275026440120740447112048786420171711963783045109774271243078748357849825956694088389873998631244649461169988712485350444764809634867413462497845494798797624678163542397692026065725147328468191398329984803086570264839216751887340179928964884875965255695254353682177032268886427635472078967137108068325921774574914632594888197300080245525943348747925153480914246807958285133683056829800065885145185295965616181050936515055437062863578909958034865048823122766519657962116966563071035235282121677601668405860213637497605092485126020697200357216946649860253029765643690142140495870795182181947963749696066754946318045344558994462734069372814649203058782649300666006978576286325722304617231725671394255502657591623177222325541963644218411401980046862497667279623499761963999403025084798187262459802689787010543527726326358017088739529924793707643802983981544218447062240027601117610545064730105869312383300607585198609478793361542782909855366978626924628526761961726239379533124116376678112371473224441048981225218571385426802744486913222798503199706851250402946723402934235430526552966578971960652714355362790150834005055273332600553467816059387701762840482469949770570606659986445990154628207998130734148968329847199924942368449208490749195261030917816215596211046312707372492317255127620199444430094908415756849842141368363394517657279728382588844796776336281483346291558208217817175173280155292338117746370479037414632639520727640167357778559637246264216318726342698959780963933622465276771480502521818152621809519308784755382275224279943570928892087164707461459655858622638327686701012850286557222513479542788273177215092755234493872146109914675235809801038230297616870215769916961329563920678741345006539780801482447018903911890867861908406035156965178685936717219037674152349652299763023555130349112995652708925038320869496457348463303056394981230104337468443453020146874184654013289948900597939046544898549405147350863528605176700919020360956828082327409797002988068355175805091607170626368096352630720364592541555207693691529520148090080476186901371793308979354579424617721334181248206349349032966539929697839979880482696141284943858373871638635500722084759433478586466925688535090241921545255234721932854968311170165587762986717960113847123679283078321361324238795466759259380156778838142079442250477319829138754014742473204452523947809516689971045412229399834820100194173415004016872441472407697694230221103990407971131561441798270013016071248778212312848554194752139091925352877560347004594736131517211388848521880886711326117225547714972623487949546780002527039166808272906327525537737047513723581238155704470463420400673059052048743935688111284864723911270715814042299205821519969905903999474749178526268700465138300814477970604563983488770226848604272693859988040403142949984800267647087800714599027569668378043246682843056436487140625480067114958612173568943952903977111720939995423366849545845398486521150469925302432075034318968274057895991878137939078973790857340237167352554680205429146787276330008376810749620217065249480628832834112498443624586108598238166875674725363749169432433861773624275724439380813196036807392031855502128498596242465895522843585453148117725338950922024177825657966585796114226910888648294202977387404134607124178742129741394271431432294429781382490179255057161720907472024573470846037657668306698437729687424806023695772972011089369195945426213560458929097937473097422285181356791921730374375344549274384397095364053094677126889052899959855988429381720063502297103242266919122019089604643199807341769754025568174378916107415484612275250036969793717086095845477480633279692875266970494005033545077219943909743189160949773042156153557750153161931423560564521488322881882298395540626828160825117755124217060345393073252745374001773627600798578994338995070701390679899550945528386068517134182893720120925621342446376924606185398840539489967452861492567908878251552926358690625110941889680212138722038561216699488958650424236381761915628858112861820185060707624820604500790671416853816172153243780332566002311193599661588169642810390193201534007587465624346308771463890833208816341156490239037348628543730105119220332973420243543281566941833275167277442226564392955541871526326398461718163831054277968391119930037020426618458372310679137154523285139701476533345814201837450644425620018859137301401793101966131279317786832652656526889399396279423205848294609100426630628435015175432338242904074217843804896639226295591322484554531080150485129609419989270309072027726141196065716582128207244316961436226994890325122551166943550385578798021994544122250024400351387683273584343297393238403534856305710868767662403000891958611426001843745178326396466607190982095196188608678389045883595517814581838270672378033217413293976603402484231273147057095137101223129713358116905631640387735097845955028559227967245094192571734032622744150431743463559986413079775700625331219400472001477494217592067536891526515474600807158792914513933734012783952970415082353890573382537984269662721369959896195838032857769925330581843956918025883895582328289773322293118960972231642266935170225348579811911147600896948389597993918515575411187490293677635362510230443899066250662112474375950135223436271866164501633145227103906062799243784195333598645239270199194410406727384976714983825616895668173084270495867755645559991619068072335269821540060525937963935247545348798411953784672869403934155019373062856162069291000740622952483184578533649069199299142214238846136679172464149849014638498782437792979403487314132561688648332708746758173239867315577317592837659724012548847907912095122747033091673695676557871473718475966347044674289990161271134805146943953981211747045578547031356030135275530833632809708641476335675907144400248994404975799302738523962815699619903713778958772110966535677859796582184425122649907148687354517500084073403547895822028909606234911900559907120989830415465012057235584981990315857661043202433957472657972366032975850309804858320366951283965046825566159035279474708177407329566835985245276713803428401715643073394118683475654845826075544382283388108817277336548852496686982241112338208159811527607417840425300599388118898894210234978698406974902345678163389755767252998562952239710557211598885797984031303168673166636912702575534566109006951262926476272252615807693239359060793466177010706323421382334284990369583813979226575679790619919546704320424892304458134151815971979095505321993978403999999805812651674788295135075879663938622068285551929303239369827362661322157623618407647680577349505612920856301462641483466620153950367163036555201382101423205586473094484802720648264041803829388333586178249870418633976521307347321173713796719448426191777588642602083581857453011197307529584721063359582945539957886544729080236943334646353723067178736513071472211524557409421388636790859858149040960513833079284682408587904463348659697066805285883416348236933463173146532316876561040500289892330124754644594628487434117732443510456431038644600176961905850598831698516437976370022104998349033382047184999873379270562869095442229405594643023672831106281079889933740809351383960032885996099951305497011427799962842415748582471519927355108656627864731640538849629934373800565335632938936590055323118236737828676222385180052995756180468771907645827089888995984872037486246553248620656375766723421323337503334266302859971172610284510373389575479025695607652451891292464226224677128384511730054033600257297836432812186418677200844031767908895528478196606298068856325883661694372272555533063740196232676848936687464378508955437875573389213285433660471217662510191509310598385338223980666388846475874374350749154434338467115981044779004355690278289392021979670589487059953974374167540075960649890537985429725679739269720371331319731732259783946019390513742373238740941034289230482535029236606216778633908971523149006646406572341502076083088152648762365387688813385613081896013093569489286121156396438657797130906555129100437187664329003326233167596308952663602360378108709212137813277832113185445692616081480242024846625295654875347782830782139112435183405562812095678623934541818354683776785909910304602457122551536870134363454254213898226730032759623549499616824672909612246234657188847954042018395787423771472519228245066649824755376918757749732661298554566538789683795632292597218915463284359433980848068373882525395540989313571284818197258233488396618397870724431769491834991218269970366880388787326119914108800141286167935350195757729514580544134955359370873802905082021664001765537946184330531934814428833603407256868287443843978923016712657810483149234767693903846553462197030452075094281154950375277349049091662368308765170128864846841853087778737009511870289282931269759450954904003751177338722177581997249573539232016434670595559717830906106544840013604563629691541343852159327183360252387320829286574563192319951249595114847561239249159905362080887889609379043747475697204377133887554584247050432342228231129398733931867703280328383596161321351342294196748873171499293392761803404852114449898805465539997391241494870260992874414847078991574789676742740116920607981732426700622474726348040666051330601055248824274316078083934263432876311186135215286241939748829496159182766348395153548811499803629068497882459829743154573182022800373302667303528106938706023664331513017610897258625538126528911846614059136391540020215616907134695363862083932223866837754987365686659574371061617031923674201924527197442524761558476513650956141887400636825003800623382333252975108688332413748506755958376072221235147210630238730117532921130764156773464155627208957520198126091715409153048017695331825534490783808314267379169993937022113532803863310562168612676045769354156708140884649993206262058659954722073062165078019882821783012034963673664866796503232752397012736786012351573365209992445518451467724876779838778807918295804520935852207045643842127443960423327809932761133570575213100051493858689862084483558845084419561535580334522778105565990883953246770284474508687959490203812713926844627420537371463497170337361905499381706757202319375242033080752209896007220976128393450646212958190018291166489697989783782964489063232055282039827015722687879946919333459607136837765645989510788982568280636023197112092962210669157157063192118346043667653539409370901855012311401363023381563723110039478665339558706960628155268534931863967302199505664485165727086004713807950050067035924472571155790766913493524709403105343659177615893052635704600949404837681666634095484602993559237463178741059629676658396880915937367053682048368077182595636709823479161609325939778000310688238061225679132984164415827174870209859917382013246009196145469838490333107204875861576385666332965293341584020934394248938618976369609058546393654839285111709800139815647691554988225680880851232999811235768443663230345164116286284904648216218165647139880736485621255288969985523992518174402360504693562535402531604249690075667249261974105604682872282388733598852282161137950813035678696135379610284579330920604762236065769372926463565124548796599960123669709216687110022588489667188993352810135112378241616989516752127384452352726414721931581823210259170628362740742190655634567631576208081403433492650663304097920173048136125603579219006286304066153167959986334588115884686160575132579068403377191394132142676980176630780684813625691047263701477716863202453262502052365440547359458136962441886642045199379617048631103788019725449416865489049509238396505644046215196230648444598998260014750765500981782325820979295116973401574987277620646676735025863754927432223153074410421269101883755332495906006032663217251210764876839982971867125013252855814266757342971157604976800816989674216018886771905997082284228777975924556478013997094941075711460653323582857147725611587703672246844136752211470827889830636794010190971217995903475046367118590372896468722731726422292554109247386467153447064880919718096718636235632518139392307717515495185479037812717450780753846976354523248178663104951914613132791094199638863157738688291405571067321775793022436627657405084527128264336665415974154036544326062062828110880246864292777964109632221455494882389866649550460106706289537375637522360926810601859154491079886259103169058595389830859736443858950782196682580868057854330021833790517915600247005964351089101811455303719494666722570046076101025036283512374406834090027620054431490271097523938855206546941576977816144490923013980317493339304788282514923908270949819146708584480958860832011689468838319565704519093823038407422328058950551279729326061814001283660326223100470549376211469164301682545934539912567339528184313559131460797965012029457846722129337100835432214665098186064803058126020046358055079669257282524643687841395171761012572917322147617625816393249919776327440682925314647822411901409267168018382435505327407892650305514919899172191206119008290916881981950423871717553931383470588106618919984581039100071866373114531496471013854650281932492108149493819155944355199483012776760744008591877293794449223519212488596609539400490366400274962515821632260388237221771025512434644340750650691258920335978558800425275039958878721574397010803609306870890537407792731008234999148989159137811020540825424956000374814204265124698494325962098591953856976461918052278240167030469307593642231297940645815173873059319507387230574313437862826069256578674374389286415847118170512117844591217839649372052762766241521116803986789807108686203488304813360043325903125343459465550112684711078306172704383440405947602769764352990874871129580645784115552151642784424849586862487747171565700101007208112295075394546350623944347074789555824987940017783425741209453301098761002986976940281983694300215901500129736235494340213843300040099700742070131397895953013690156839249469225598022484856148942955392404529946661539312794526360636463416345649104319433677132793116226689176242086848230194982823285754463272214967096226281177408910634668520686344620312047944884412266058896548366235257183046238030090387607419414623003794370143365612674614694137008602759478130665675668071572794493860154838559656374326460309484713685315679367415565592007029761178706737912527922277619190570036269095374934673268710370748257771327527699683882892520444650971827431299068335473647325581691558244150270608671539253379774066565445381936772319938119596177115030736899454831612658102588160884717872533575144763048084015933030801391360288947244455308293304909909533901614249991963702335310335248647154040701706829485740993492641977621587896426568229327065805746521709488018575562720384852923448093222460812692639809627052182748832105611202606297263843704340986045929546342528290473106199606412963945113425766878624743969092015295221999965979606795915944916603345201257164219398947648081010263678624734624020388929076292495751616742142755688296521333829585808779474589314214941666409685885984028455686234164097793126448199129879128515731623759113731213015052350808223022429522906928602219776128625901005570843957495784403536810476123766729970298082989924335285874093905243550306600348951350601801030781472600509172415229909405244237632999347442805443314503377988424123884875451666703005180813003095977104167456191317923481672036986839565095265705495499687656179718087873979487479432600462744914274599265074604188241321055575793571176174005076653791942892872749392816159637245704566442399360105814960039980514028624183242358611522071312040509693774425267064579413427263908004252238328963058231641132845493734806826848957297251806205364131975056712253712491923277677334216424874871776994384960091748401974194054932607044498441630025539381023829958861636549304202648437519283298466347147794697908692011666516071037914040965729506052647670911926150830624603148813754762595956649015896295181541320346966818422390326094002742077135548764911834052853516311665143930225874569144320061501217343420933498718139861875930496436595351539198799605889058333647260020643499438370562564731494560581052569018234532033690778064639047771928717012218621926428798334227354575249216604222322607908136731831792978786434534869315905111757041988028647983844220957927718446640356649286433234741947281357945342931177122061587980282465693532195970255574740601006603615244826107238135720588151137402181440902995726256506144776067839827345373208606308053162823003011561986264604882423600373644737365230762692604840265055389875089306037628639255826315951151629517500536832542777049026497906396468686501646285564909696897381255333710902156231369587053366479623948773542576322350322878846958877360022556829555554715318387709498811869482379009225527696649197346699994307885591321876254611038138801498757900799619030145093507274361940216794310433702133370118547247979613131998912474115432507320567211311243437604038379552918610134528237758539048912451435320530937280499339345230898007191332967747715352165771665793971842093635231827000339439239521358956094372763802294167125048122502944372697530462968188693026003694359032761626546405967320577074121249312650361419380563955543604018410949272135526781503111734136589790051347176359364146991707926227843683708505479734324283966228868013523764148976339543521905536009684429102618763095087857612358960406970743611355347720219278939861294216380234776091768428827966436099822615242153694327027920039766987526806370996614817633221334254166519035485858751066903247733428355596897297946629568996393968322242765457455372243195511474048458380646497632270910259735143318926683382862646317264119968948293316689892692599965842237042187649346916779957283090283983285090113816402143026180559817988581080116215965119188758239220584915689835566120531862371649414876394355193213889690618391356698882824693719888139528282195465145692350364476001402777863686553124457541105284712079873167507506017278746428753085482742765170228544091421064113811485828838783480598390412519031395636465380504672857693104673930383953535062835917633130133871686894445137410291596071384817415692468604884757925871677423371383752265647763214310981531719983837584265140205393153230313974296357238907775877889401027953919704193011387965284412756807806881319436018347028187268004372656129260557495017651064156150635399547086805729765717039306242076781148528019391321463859566977404895024996224386852351625205713015765741279410323756188855051969705654899366264357376728270653826592721236426358458658919662132265332441846811106668497468347941622441607498158330619738353600240702075897251099326776199984463732725928088418617036512966048334385888774391458391051468987211608291388056044287185141345640893400840822717335425586215223380983890044878252627354375387708436140276391722586955051121674728014913728493980337323989901113991859122122411921258815734629283145942899192955221728603238528897599325618648661248203538244363496476028608510702371058698001620418513114603945828705238568155731622361901718792255631365229436475986697254210656160999667238552772242386203301277596576943174953582945887416537257310339062793843981219886070385922786372640982024140584818851738719208807186322672700130445557775508763818398970616278872828353520294545562676776118925364342913603360873982527884982532107960832565941704906460628627009112302160686980198628054838491784812983219447456251330044971190107315510036337692943251780984587796076704926728644510803460277552322541814765923651058038961687028688015981053443919423898473113135702768381221429874599483444413929155026680390233037363418843835107511773590255048346539393519757262384512899976821708663813147850916051338727149891215458227250496145631003085212354896781005630734078363170988646940356778078497059887275765559539048189073875585001790968111089481915399448418511804048041981866827029438139232807053189626075543962135224627955603107008157321810173289189216335346425170896616142993715172599320504157664038693872183239280524858825173685403308418723892792073023985515022824115627529282357170774833512919111352402084155889263804785056485381371966450743413006356214159909093367130212106190794538653162106340592459745190661305516540050970081565591816373123592713099137482008963078431483678058393379358808887823157084554166229841863490546698877328293111263790841151450975860650496762771823213230891166884484522840058924415555961720996789466554706082613563787000338391365676831018067703421819633597246552907653194742776103538483505929852362766518501253533032879053369949362587600563697853031062666698372804006295883304091918203193236201501342029689485741119169854833973171782679419785819782548924529199420655948735610665328217021144719453745674775361746140780856480274279772650301700772873339368046314926723959184124779271880768657468452941327939979859433665986715447389602255399852831644970482406407402381770439084373751867825396779748026105914118335007585464704193271974456503058853082461523434442272309931102793123302278094693459004949917755107157105014847995879599894853463992191903642774560047696837033541100767945811823677813208978015618368196590418056369000921092819632768231451461685731182990188128083578203277455909092237590734698332275544886795822518716297604902345141861292324980854381178862073897662215199048219729832438895565342589643216670910074256961566956529697937245713990796661391807248778311109090039322735714633166037761787537881491214031048861420666162470424124201576661273989415583445354541817826603106724060088972868457305089073878155629892713570065527714670765750598768302819416142809383051406082018704822218468025978144936078438350921115124482975993805887616178214309189298440701998540012437332267246685280164900023200004169185289603336784589174333389021208687006168147426050648933000496306996934259244057571353175382088287917462344526637825663744473905627198251387013143458602766321730115512585345120391255796094786753132420136568316495927302890830882592591290092635507321988727709624150616226036152850034583541796478618059797454520841897904331290619113788727070074467636577825157474472002230668504187367409256835696662145881256465118647032922341145292278921820312597813563401502308145531306020754229081443592841797249430618894232247009213526665072327649736105244271338154558756773961574750637672495780948261951248146010966302733733533513371362133429700599796458677237306188517746448851957888699831408099660181359218869768406956237850532930892217193938670631361834136992668592675559060986010770869008229851626870689915724674843087573647936656753640024715156464850704578652373007828483620837321606384510947257071705805689628748014863899589030286374802829951409004365947018821618950443117623226991848949922543653758500718066104632794694672756027616752653993703673449845029583600097824089915367499954830905733697439981967389177788791731727940423918677257224753010086652649720123953159939569091274052425188857393604784959652377612951036756729055518180430978081164406605522704910343000379205060361618235611048759856381476496745204987319714602706499006942107164773018194147431362065347006884762363297940260179197256586314296293955858789499152388111111589358710899958277896860699282011121120965347936110060777685588498551422741804964536448089987924249991702001948276602971116903934782618426581577968273199381151580438347189476104845526132234145741749121720535186362388791792122786680288679090884922183565407900660344858026630069034133497825437449551191139674130528667207994242419540512907876923128058526263075186510375414432669918131667221635958856021293541315730361575129870725196548408855329714902805085935458842521586937568626381750409732670586102793223469145107167804547111530567278360416007146426781108734003236414163125471008330922215686721328234270030502220686401780366410382222052843772661419720281933566841197467550249211476568297739381979345761069474856279332828741384776229142780677864505323726160852488414748340420823393302895094811495337273870444349243805740825758643602635832090202046684196861526946311198848386417602901486216058676166657395885279019850325032718254458973284137985699484152264096621974730503460353188081690220088672877827229938528026090324599022449743447004297622768110782193722454571712725471547431861151182036579183967520917458374834179369927117125863554012740382592130127062565817176125790222693929408766795757616226114857238920317321036380836217018847836171757855249397778473844664341656690836604728348051735233857789463285052389998310849633279593246109474205034273049187677658822497152430953796203862030692141479488816505587518788813082775180655519660064588049720185932868921727462906228437626990991278163133151635900948047971471490634438198367662961661029399414775405303129908942232605483596095782250164726108926511499841392281910585693467727099028355132373496469134685530255107270706283038085083396761780729578828586827579506712727046800268482384739350477564285630082262631561426157706616542395863490853159154060393933545348843419218117525974661946500809778358451721606000313234981923222528448959114412867022006666142055574707607505628729317443420745335147819276515506210097071617416539334957693616069220507057679384443171239558644727229959188309855587774225710525206781314231566977428001788398964464377465909922183483973862732071348851043959053560311386379178266567793209852967489168575260500880071824486049868820429777406085203486163423595241885978333014502656217036790030595416347797108280177468510321675179187933203110639421070217402845404452079888571464895793688835471706588139340572252685453209420806211166031267814286632544294139902628590798027054605339753706039120335635835520825315262972395355702402385600067901313228497252455718250942827092459233219864450323267163406164628175616186066941072793298277264027846232355921610040402486535741756803806199839632459705963500341119262491701357443849546604945151566738392734070842703085545086788307406057938965031888529639589212712916943803971926404545016340691406330533788234106870235185774300023323227967401969969496605536101991400748773972413688053497631052121331118435979861048250133968848953570455348462405540236158320855813333063911448536615841704183500134356723043231938384603833915819175706206619328005833443653371479932244661935040811619783615428335843297304796802009030674837937031835076144110977792674633960752024933873743877910218263295159777219959991984840780603710997487718511533068630396831359224096183839997976031959288244788202903930262021446212041744202784067554114293600761521552630462557501342877275723576692200937479330407942181592208177543338037225975537666989934154434369471262351138395152848607642984295347922710159409140755362318069462042813261505596741815005423888318442963374263031230299656110469217914663379051035393964460754524442159995309202622905132321276679108778597008987090902281826332864551170739797303562813347524490198044282533221273006981990430042754304159254868982046017824194145621618593122141727097014947020930611054132067390664418887818283885341567379793105135527197162273394346978114064931593121005325487056036915586764025295648247392288194087813714116646837119211486435169976334169889104812982645467422408371508325740683208738446955573807585486906293207523886970852480363833295883090801786150083533917609031045594569697733493089882784513822709831552553613563505070830753132327264532759258924914581326396775246143351035821521074761330705355745319725701942222001166383218882865437148849775460649006337188426931343251171841234909362367784830574349092770998623467407928205078018278916546383757063508912380133182775461441825111706213909870172032674200037494148214776516572957052881960435969237405730041953204605993448832677265071612588142831935935023093896288764948923669314947272668581248905649660031980979404105162108381139225849685211459906662981183161548431482082668621414828430426071637175516185973841794043939645776766539541970448486965749528959350162584769629188051774130957763083453734643238419919063153639822760875750402615238365270815469181055154434701988823329085317316353436937442133883566265860952437544121431935255057388138008005569833499875840172009830696304312234066547632266956936500190428666872332347958467683524008234824118857529128835420654079688164436678445964168059026257495884334741374291233030696224971886236083704877449946137622221393074302689680778463283699240786243537637356222811704183847169269722529531935233065658446786291943288197584560172192497316818902906718598980232966196141985619876221902010133118363048269963503220826314383554791419715316644274611887515401017173095422900741413238655257753227550923204582605284898691795523880416821245764726013502822142924385150104557825788541865897241664762869782131445170563301959490287885917656882018123839536494150340243304827066619725862195977241103062003541806752266930767646411097980355280653388607734344858895814154558042258231074372531169693490142815779316448371962022093713198666701165462047805711269750087282564317481897599523348516366099265973165961837680104353742181912078920692864218558704027575445454326467707850315363689219384838531531732623197564676499407382468831701912902637472563238317552934930384845746615630811899120682620768571360415127975322375594701841640208710692680792670905395964581952063431467302638213193244840341870140722578153894357476527649571134617185758565436705697781023705475782490422365891326639143751514644716278539334868005917025262700389760741001495653383601628654360095708134561836090310302711692238658528411521092930969264615869246476373146923162553196297882724174157681382862209553747041071095122373690142164810909311859804944560364979414701501338173129564780634720489303943768802395150084298068740395974768920955544453730361302914136868051345254881305548465142868592261905615462006450627367953009133592383245095890708472320316528737833605377811231511143057860212419962956321937464754206740410649074496417466005961760865476755891020402560311578082612207136585999366377458679145105219968287800974269197974166830135940185763890272039779384194782011310654673380723567724393993811437494999188516783154809218650873167250344934556977873816383161981813893101885631171394672921286076017110009638916166783128972067646188292305020884760186496311443488012958674856075379886660741673817791454735596383644657567344164229194419998686976538893049527122571170750553054790022855777884941424716921537772665911478761654545303623502790323176786706956529906378306926306122938583452710476869872375057464775966835978342041282136764129152346353037111939477779358095106655438050128397875423908065310837615730351995823136673030036638396253595798972155801683067481393257746348966462256274172724638055086490766214596477653358641226340475318703587457987940555709360323096257453528630764541259401068724099277707113439987352845260543158712716594290767058337792599270976828010645290691136060639598468418572247505384440132489629712982680604403420941961397015815676489573362034281477768953591758132576549819509917668576525848749588667550731505185192140605994311363419043944205748688394328020202469881265850942115305836396225142864840787626092193079372830366796191990221724290862807150887805199181939797368510157621139744986802770075996529415383464113556347098569600533204270864042235203563641093405509671695902915221013069527740748314161536849332212741406579325738699172662770869845571723324731877788160854335392857178931850674161532428721593791696360951568304289140463365526883721000540403615330762056472081470126360277538689635290347642599770178298535907364466426929001072620775335145893408810998266742888284033557014181887662777880202800138377293924806417949185499535220161860544905615835230000561857136375238777713987956623590693809226345488522158200570162952130621735900032700650635130628263566397151274866290429159629392153747526578165472227981066962801067362313010558685647937933783673932216718928990633241263700674916266247031521830654039098523120868322718120979680526161557827073984032397553097584355533691659490600195735173642102191881648812609956026362229496361577938607192654376313363038026198293782144982163314696518133580362193383260697698526155692253585338592057020847144797513532279196346519615814906158162319688236712624187798069232059881646955121479935845480848648983412232925382168266368399346883081886011274253270277636276178337272385178564077946075459873255811601803008673077168801148652518055983318077503582487247866526737139140909419531389605926104296928152456226733281615300705726749786390723708170866786258418192544815907370608736870963115232044579926406387291498849545147355885333715593293419622234348617968038243625261236405050906441733058305802607123415205535336541523274061924704365919853140533430593873697951818972044454616866950421572476057547407774265265176125493415804705694091574670091867225935090798212637929049640045257488887024386370594202481711767314073217637077796532875614187190450868040391735531090857899757870895574969254882996855724423410527561187641705815179996436449216796114113494835818317406764784018211625582071548031303031925270615256728258304786983548755219246466973936289546090600556788489328395952617995441590075209750598948411074486236318514176133367268111274161170478970576951334214118078431452299784866868404208945304939909822650268671578488744733325930729894707861582295954919167631111454528108856726794886187768831934794278725623274273774696866062330758639672333435966215964656948606467778553139891377627712736659054721505403468605403738539068473131260066429823949533934733451506478225508466326033657494589590336023158351725587655662785509445748979794368567695220600498387391374559917239428498516854797311066757622402966080137398088061341854565681217736940809773835730601051917683518136138149673325518156377629495137220642347987064065296902406669732572453749591588935055822163985641702737037250117232539429097347010017027020548824660457241927714852662831222145208094816489029172488581046277785698668919096711408676499362000678132604264694806470927696542953365913178154676731893492039722617383829807692947614443264564828118820502411075577374227157730244128953630914803592590973504699052005244509901971709660765578840578411774404980034236566867556358045785489421758577634880764319163667096712930573278948715755660932590489328123408704459296299877695081526187472581261590953464610311165174890605460876747372659850715887422807264097966456710702297190700365435356044511883566466832565008404354798432750006319478723416781003154011173979160647342189146845619912663428092599436559554661103132292527312293060109509763671141719852617141414792207538207079321057976088722839003461181963939120197764763673917333771284370353673119662220982177410084705773822050153753668316729209783343113265815970581736005599519159511451727435322046696169494945278908450775271771305164105339277785133448581542784740932811129147366954567025462017958793716177691769793737020426124623566610546428280742261493478957688663998361865426432216601686329452362865275594201409389074349498465865088550828584113513777373897378859361502828603248851669628690570536490820227571667511859477680998422668966133576077918003688147214998557852161363761862857203679757343896174132050227329401427045492709876177880519779725552180041957779736019897242804142334226082007118962281192587215358364428079504523460260832561794941926266566737928153791245245048655223670376926793703261339547400754237260953507943469508714754336450831369230437607535055683399555908062227150124963821955641527651850342059166690409938553888984812161275988576120919779411161570985405872136305898902478389059059586049557293349805420013387007296271828910704443786737512402299401428226142626437430601388367276456755228960165140234541362136671675067798960792471349325903579581017734770835327107888461799688299389766531940179446146661530675315765142157217420836499611407678432840246907809670681022561293258990828688820251166117227486470223010923297046316985599317311343163978276673932019295173582597549407038384129238878770414448090504525757935235849499393112845918019658647283163479445302019073208306368193566803638487032197095577226340893412610902419993028196288357221396513045610039732806534948468120874746930519933959476239696574569392480637446502829074932703340787944165041878596373395152085177362458688418679847146604227229308253676098604095458523705087197036816145094988023998424860126923115857980205544811505651541024273332573600233840679610399586624914908971304500931906000295305964622273318878274537111982702965402437389583234614383258994653264038715818158897765233501606521388242834235902450730803884242331128321565301741518108725943975969870695505065957209449403584470062687127428549969794911053248166809438482492827503008059546640776746239468955480790614785443138708486602297256766597764435106340787857820780736113273888054023030416560596478922779312002688846607499521133753419372816210629865133566581588483891898842611995691264665769909287740558238388362756931522862907124336463636220146870657285323461751911977898464936195289620282129623173497472694505752779624886503132615772804354647525629313944055290760250271456897700633154334535059445195966018384317607755609574079329638864893084809064067104337675320203390600628787006033096870589281725282675424804502296957817485646152264696837391814862770565228476843897401281529259750402777603856401631538401003582097546037662083671509323853491545518411466497399941905202453286708146719079868414675007286737021310232697589621479897026603296962009898020015876409597406173866786292824459251913524478728290113694661576551389637701021061637351447625210610952636676008932817779042238279038592539235734669545363913952830155568583144602335886488231804560791582650563462564874194518746187266985951653439718564061124150585166926561010789846142282536177488414817465757619253894736413692679108369639017168186662110410040184717016147676640750856466568233942606059319910701455030319636225386089123541843888736053890480925623769152280215553596075667438540323145084212287582458887569494046989947877813818975857690839352401424191130620274501283114294570821959751836258057604101641904251178469588743170502678780926372979513300485352430684029463695668502619822091790706055770099560341850242254894279440034531541171865563792487823008061399831560043760697187132692513394013303414297509479847507819553414575193245575636272703353106143894251451288172558833305737647924970510514565014666825238978081888613349535039538768953096920595287055793303626133070182570329040892332949044943288081892492188465211049041438483781170465842395600858764925103163198201192599890552272009173351508701982681066351665592936727209576031225672241412250924480822641209587874859034826350437524982351549882607290211789513399774156313030839091468448883557421556989333417349509980164679192517486102681369210922241273335779507912499578792463063044914415045314616312393863833191459482869545950604881845354682771997803100463856447196737096993237388759215602252994393295499219958028103931935895272964600164783617240432361522879517734513139455558012468238183938589736283517132328807040278865058792373428342325217622524760019613355273394918955542252429897841542931748028981762737271111232687301571518593447684974688425520737233056357733934494816445362176313748553328977411536779571978495290497974080321386788501704854416236963635594885769276446309702356239001992223804592441406573111648368443306515509383247546976259659497635512632164589015550866014019281779955750050010008387841885632145374151411971457547653526889839028726159424855219181089057086719455157326170358407840703828217090414414857673704540721524512360800497612382682570195880611366897850781258481545884184585685200132381189293916824023630913444247716785125673044123654757795893204607064551693414195974858717284644982711667981205364129083237712173301837403969575141454596271196999424013756290863028077629051254311996462604525995561721603500841315633385002115277186342362735847755130781924468108433508754429370945910212510226979996179358603316775197984952590658234838383476099312212308506498851032317665433107077267571356154084983689897125904318530012829895194344988668657572317529876196989676030516003745311787226469663002038011948666982556573793407084160216948956894577678181566156470538519927482290982002001758513095949929872228782967703528160206434577667693983933446105190577482935171186506976782629761685384914153339955233787303577296188770083610068460170387803103976861769644517344232358561290239039509692007063412682188660999832635210404885797611177498538782240873263203729038687467752774421477404754188662534616371386473980276400774658506650638698398999194940638833065723461895572445019907842034357579944275342232676358813225702150448914102828476254392458655054501714315330947511318023478274913831737818875098454534893636969943928098465307489869225273218656747839230039396205408883512246734702595816155129247714431166846446500142388137114784049277739672642197012268382631055033767559194541009376096370890289687433686977849157555920877891096235329906500780346790590198356846502831025710259624184124140987152452470984823753732296964480292946476979025912330410003053854325637211244425890650829145235294485334202093277443156137704283564185219632045319866414694009638665537068321273878675763741927218649663591592774146091290916153855255084165880895961958844251907435256009858442569529586148781734998970421821311712509344534525505582109835235003862626220648878137418359463771529782556429885114758804126673925893428699088754143013056843305660729905338286100573747041873324001536114843020891168717436039417176719693698643557848354331495557506111330496007149028193885675168339684259665253162825241196178131732686643844766543971253542585741243151315791745356930890571281059632863964219885076018211944975915143649246623662253422992472336641472411602468106873005335482427744268278063989393379985093093462234654589987026520450848435693748444325864656867938319758313822810888175464469124838675458420517501228383717570649624242814927573077179056443306378767909289696571285106410982050417706334357957854598862698636301397331532770810238444813750960157800855206323539090038280425155925686291514862512338530800564675261218886051644205143578857848199623184621846611500396712783293559587292536086893388351651460767132075685885382103134537301335015624628535727768786680755414507600313316533546426823265745476205892724809481344450312990307318706395476666007294667934923147938001293173703220997143538397855335452048805652897649662976168463813840888647786024308301668124992163668870597161098368039822192102334791271328156479668541304277543944560644048151725547112485050074152883019344898172693223509637618733653852983578265929737350003566284794669541661245177848563609216389744819941607834269585911574463346693231633350885190739549553386763567906542941584080893881739702283040599595532597614100826275203763252723068963839052688279046124448576073781700231050267681943136570276302090852762958260089173856832398505077872437974002245882765801963535462700325268079996041252132113111821666160945332714718971650954238639529835484342794823705004973638010752134893396332335197641041783792833511466760751400366433579003070892614652869971378018180884889906042448203047066302602223779845155284205366572348866847443439608314957071449080297158723483680744515475394991660799380445717621009221110726973978137010185445524971020384512781021383370250652851979169491130118243712349358913270970995922456003633269892462449812634933991634330900385956161502567888099131512430823201533534803952727885545189904827001981166871863747301606578382183063284742472455656758228820712054234076076034331627376346909112583831495177600561432948925092758931215780310595054320854394391270975205875758218995270446027022099127320479023544668501197945219330511577881283969263626806307680110487216213311875845176827947972238145725501880711775366645373300897287995268127161514006580106964138814813669914442653223969448554353501799802129696696740963892152959851195067354521808284570985624707634453937549824234793349473267368376263653008073343419269198492304516234965326133468477380505153828989824300521097657421946120573571355791417519286742111116742046955784057512335111595008594653809164785633237462449300921331003137902028282159003818960426806234471732321152338872830681427996916958697137812069937395484606052867836864279054658895112018282108864495746861542359409100370592678644571996886740097914897101934655168536378480177744891771349439213096908012159051032013288368205443545493008313612916323001089389615927619941672329014187780858150497568301030365507980994684519927799228276487731056215515876848670736326172914021182179449554480691764935740791312740220701447230637308082795090487875714445757639467109285836117009757734321697091498292312687849009122031315529287306116154736677971058600121790374092278571753180914537147236296440761628470640769757161870818496061835763565978647105657147842211222378520713964721143459616984731912374998991217483359787362705415060924591204067372331744674453935076937792695325444119411339394152921198271566196521900001373382448536861040570612252120766378439920001080576174309856295843732001484103795069258583636259830107987206190418226613144037310111964119279313780337932105972497147520236817314141165237476672140684916736349443731133387876333920071258940344264719138508239765921153512868425323040616920066289585899750841919068963229724758980925882327334590017895115177723295301701310218338436864376694425490181716839813006239335472083157132042684172339565510328256822809672393268772715813338811179651315639083358675692577119731878671434634605411947329335586480620155937139945233249967038965684129975268734180627724711708119795588649615806262018004668853137634185122891820556314965258905702204799761533603254209176681265772761138713345821158606966697729401821748253677189032524575327386545954177958350248161469078867117176666791334004977495842905679580525199526731716791515609266729726658462247575880856285468544242765735826014085106569894256368366359446805793405512168243913821226250689969486173430117259453328099562843748395942948698260926618084630041960599001410246410701152627087619668476468703486068812195026131465155887583725377171630715117260978887965573096752469090721873431336198026644858219640453693438766119346149428136784263255295533071132879134833121030324715389317134497768979712389739801656780411451498795733189145699077522686805217942819982153471611080884351943246603658839084560108530820463716761772469450262749810640143607009535457554067117436380225283057377549867700991241986105145627420574751422978492533807329556355030757372628809794239496413152527118789639550652337677674439673212304056461385839831172737699927126641553050041419090196011368352684170262784853068966833905927705750677092811415457861862483981900034591191817170232176487445302274580192408771034335450800294874032665173430646255306410000013793224667518592329846079458855939018104536252777001246647079659459276670837163713849109762803870277033833915493750835232248046700264659877699896369349598654789854236623094386845103106243881212836266257205769361249643441466637155145959239133823313811954657363120134420286807120761240814266936450911435436092456487165951583573272131469752962900077813383297270649020367122089341691102699170983812697412331831889434129146997223990258029117329855390636238549980608132373342512418489900641868117145977683069214703246949298816101009818694587047310086219265313755585305872295376830444173749223557804370762657274755287504495421086349249990761142930214265245149810851196770568608307128567303423876385646837793437618645279478601852068978054507581909865154575377733300009078323894024567382541165856163747960535366979541211857741633831438141253230506216118993005086785823661234450372200473082131260342895173847359920684520390808804704994598270787023382536436911663788042261553035402005340307503511630316711072994023780986864031356283684231303172172005113348563059905711054843494493957674581265778530203378133595938936218219430631738739966615890985298730352097967741083556157112319578104082058464910563500220263127372081388051313649845488230379938574784987618932483130216784216200736318789197094756281287623553951684499439023629640169884780388925109740386252391304664542235511656938570164276699081052729282006884572984575040085713608681291104291938079114634944868934046854820015410338364221796603463419442416972816489257897893301559773833604768597379477029834900961236233966620361444831538811090453291451273727795950975666480607388828792536803875242386789053418099042142037002918502982634504857938658424517909018755840822056498570147512521983914150096227963414286846601359930425650853897029442301281797918376920034122068012218573196675629784875666705578751830534017374994768579354436594141818815955401871748524688821542989162334369435060347832765002645834033125708793708588487071764392271985526017439661260504622151421010299993484987217753416616614865789798653805329493517610566007443308912356286973238321669811109328571529051555757026427035953659862944522916030750635034730042110226587169204231400168061553953786368289405723546021320140517621917921478946493963803839760918560220020947940800018869951093332639448790351247856893556118942790474424553333179379381726293268209204697697867502651599033392074845193454300973688858444441466457837122725564303257742014315422232810371246817223258618028652165931065042454812738013802568046662971027971043383002744908612772017914014077703546474070497965886318966262337791217337117564151321090590622262173986249018193642240595211516459898359079175185748651641756669588133477625064650824256496414232827388175069967355641592327715906731182331380699329499814911315515785305447899624852797437375471548044902769836868332169725788266670126267877274903421267282982104547136734656229185522926571769494106005297462954932095846495841630588649150630146173488759119711898857368051958385373391101924465682081467133020791000602537642230871214935058239262827542978005313126896907570928184946821211014950613739238048508498436211116330784757690338226030647061495425603012411882010348138938616205725754054193349719857541775803746459134553221145262226685389535282570646778721657074780795598977829235218105291382151123945289582430151269420532531739499888608391063927536363556590633972705846419475968939924529542735579139992821245458556188619130292375346764161059616193549132961719167038393384239921602657876645798792751321938909321779718501743642676793164174091711525328432500132895705297314223817794734355789820313772973432517320451409754025588575931565462269221907179198550152527917242605853429836495561934224695303444523738419411910092073127668234366208198798443253016810294293639643892624242245170226187554296132226928713904985957855014415165014959943941253882441307846065483755448667228943604908472496107459842900692060130383129638112427700865727110880306273011473699128475328574415865933932632545515358759672916624934329033978595687899972447045330173392636019907836592406533796637087657070898816239786799046690219259229067333632187999798459351707506823400092245877484431443179491384124116825270485179322070587272458525575825699889833649800706043188640456073370504002205254434190467625212363481992262966981509301233382837961011090121003317788099443306764278689204260992434336071812821009789230670688432123336755612326387695414648708664286698718968275154026038375715144616383661421728107794598470756900619292221707609554755989979247917460054744901359353956806841990573536506876554327688691811158885665686303300750655688272141041739258788560641757132089538899807647040706253557983897762910011719764999643160376562556048530089902268700436692664474103657532108289302723230533481838302414075685191318572282442551381921235944929474258773783344527784637610676441937248590381053631313029873642740007722557987456285909803114820752841528870934637639564873234638719405892857145826949784765766192029822128163602053746028810862287435549978240699193230865455726948757061539799736132779208991863828074217241714303027297463839148348503974976890122850002262137688013073092198577420680426140822254995804839792242035377842320098186277209993482610158663709682029374216184661417518525572060644505933740516536814773743549080878505229035505123733979941723617201380628702151154242477218476073556367098261083214252463657041441258151714431789641268493967010392946090647620490111126343339259479248026469786095016648105457977096293094373242138036345280703806517931927029525079852905136793956034764469924226108554513425272034419229341008141263991416979786373790426767924444467830380030108130298323597531225680084239053503448596647225051756836019491398892390412193879776529306026563396108995843025341714079269807165197532156813427351471567831549947739597513129713225181631515227105943165865000930652073001344335862979245152210063148572865711136419988177960072021524331769984478243912182086636370375900448499338596485079933063449100894918569617268858329242438528973749694163147411723427866619014317863787042378711554169027584231124821023931066295406963507758482684207358514069903171146103471344201749306253143420759242154816673726354860906246806676774569530170664019276614876855051216102530250507737084735942105650463914866608693935539921869394628484698590542841434704157896686976126983433485554258441206568942121759425857889827530733358053726981244428365512935732997512773433274301910538936193702497148347844136731345109636168225200146231382082038837773295865120289532064286666375945670453309212944642985721354312254149523269943891665967738954070170804489057363204644669436988422698326963802090020390810614998153586063366822579287099268603994628150388945337503643672601226040015737169215815468257805403052979786564364181442703721352948906239089475957859363057740582554997554862619362489971594628477851693361627440379246194856649616345411480233290497600854185659934659050663091592478608488861717163140454279204883870692219701780232626621521426764161169742090340811449154691846825422408481315995324923558675098920987951097791210079072057327664511514440607436592968199064764605617605097553506851729829920013165274451275044756576936820279478919924071199290664765752052909658000016887042646252873219755713556297765053732340055102772027067590205277839859616347280568776963904078583579984352788915947106614336645687729035123948720107283917055931910212286455995354685908416819271190872744145101999962007873196916865642231973301258994388838300793385568278750471209402795338337459116455427202637417316977260077767145785331116538145609778991215612273540711810640212783874168720526037610131406725404775395986251855986918108548802447673555120010524132679015220701656059250895058315529595974641338155666138085323402480633230896592973642365654468187834561485623077644510767542023909070409727801352862942818136985788384782324623351381537897649279116153930329148065301407640911688597656129100381683627706309177286040647807602878558546936038526914186169406779648331586199899370279564876086252044993097588628483218031592104826760807330813087102827434355759312937625785215055423338439848122235973293997283236778585975816677866917827809290012360717773616193792247279217481831683267072315776268278881896088464919529087199921715292216259231556126467081838907426362715271610227071496070316065275161921544753543425870180812632845175733691031758562652917433612016854137895629690366728547526162456997056018957629147403509044800656083318063159895552427575404545535416766759669896127600616846555836734755744933592586269568668141395133376438681405270142985329460640307617780790981761822054331931378390557576541113591266312568243703847215148203237097890480679573783508802611541226971580016562492000330677656862742666613654057386985500501217545998750042546497992651018744710768769293130240995344537200953405877240185690746423681511982466860836466346011132912931245601730812079382869490772459859030782024182775635432957411483779056488006757921374730433097639339905315552398754315992970778423307514395317338868698256091905068391280566240453114875360902960303811957975544648972788786524770465697366987724157860877627904606729388138565875700703802998543110598210087305270358641276043739280232064537050543294826802710189943170518326815355541543693183657285525103472677278396640742244526151187866890806533615197440644853923781604612382572897778684798041048288628891104099546346031939227105516030993465891238748839266305905710110811512310463822408559913108919768352880142694194861242472317616805629354403575773964001355961534187656266144721533348068552612937055226495563953856522115815469494712951256305305620022940774250044985905198200739284049064265191437119019016203723869684648028732276433568262605025108036479922452902486562658428368539788937095844112318107309327305560181260792456596470003113288121972524601238019326498261428894549390611767917886747716335992554348520184847300378009053472734313893177124267576910439216490872582066827639786089847229057150419778253662750589962977288337413002898382481754931098831613875003978669744568703008193096220585102616590378112726599702258035314950126741444485580112551597849032403690223225894972189480856765113791062714712187721579837846402872438766092325443604292047110906066685057889019192062005517658572540754485236943385115408894706754227603820135956367892482591837466447258329215879639042904948766703051113146810289996150386807449033295741644242557678937259206097432287964872362541276416142920731832558422822406530022777675988499852668284013424247921138936187268111923489279576046672796166675187868107081702024913262347324828665544134976196799196260217332716242705471238869943255239256761188016399450946797742710631237123715652250995143542796504077389526001685847026647748722472298115987016807900419711964057927237749582924217720522228737858699022295263424177350007405358519227234452572205570655820455302514997436085668016218653942410261771181756508618008574671969338460210767499417991020030537267582382525416956294733525413045155268226096586474415476123457836923583154652399690639839971770644594759361613434057191377885106216188681478767791484955128058880603088671483926754036310662169518767945896194127583998719811877283589333491076232081287667762797019492749587322427442848690448007472592115626415098298399040441171002420675237132376653805404700190772473250230370138583790462633480787160951698224594368781166355269043970877545422477604964117201558469268534610275115956406585936070040301315396230160770183919088226079484131266004363885046707208861304226289249968626766069636964677937042079496355487890210978233289466663747503642932815088168215320744664529118521982505469550716212502775025856171400665816604367979617323472458159222157980356795001038239086953212082105561554786195693992746009340363136321349942390179112232535601428818992060396805431520451269254982077149574820494770199166027722690296490609852525102068389188910762657123177591635119724026566466547117982950744150678611100173356784583978278195505696723142324861136729161879750049444553808867750740601255017796500215798695080892475142288433069146938493705345751251429059697402927292852862177218741212306790092712191348120734530367126876346912860371810022015639716566908799675291190583404994653634214325738369748170144955493614248391103983427428446397223771379202814215875744760514623926753254808479050432462308179572293134271415329495149181720758778051125185439016207627192018518346025695078777396734217188826067925794417034125266813305863046850163964139929624332276020545254664491897078390782302975378689917142574804551391058775219927441936879058360232203040190247959251185579601118152003798233172156274284877684594030520473772105523214751809229225177644935320316546600405240418092218173191175535374249538009130291469112677419038995744056844713106446541877215422507789448113197618562919621562839287442767044989655309251774320303210166301425044022138877190935692377466994422409050625835707898817568531085762829585113114775000171584254236709775871069556532969579546283706218561322693933435543275901956115256178911692309093454491719151001991008108682090883699410253900080712856589273723759607361566801762299870535521826541741522219648490580400299603854029251341176660771698074882974430908164693092977177080980842089553833830255601799376680547195766768628340260196610146480187338679413913368762868944550306760505265392847487976622687036100865992477759326316293209182919196503219915987800699769220242598761693985769140478280078480491204588052113461290903329024444727888074519717442200771815080178775294702589400144654537791142964004310433930026240640667456055602678289972514638942284030064096270211986142806899401168957547380835479749464128903907900057431738054299734531048222000456633517625469214722719058372710455909677463600434639837140348314880019109514627373633794239474554876064386889752583626621522025343458370036060442812805191511848816090049600028924666747678727949304646276026650580249155796840642716549102355161868270093867645492496746264382387749214420230860800689675027267498600638138366693438022133258228909988108215991222346638616186556002120146048434176476585367586223198066177994938413703586811849334226340472191354252358346337898395156296142036405458356147457171481347084600156618461666549510723808394097136379728843953429794552079297408522513569846588790718425756536545797677297443570613662590983415676567753364814265322261811905631333229100914168983171921900697274759129929810347134314189074681864182656701292543959112105887541902114173488846676432906780791530124609393663221839198765105826569023973367438853281489602127174911938937910619657640038039976570277816559271715446486447355548503391785119287147273881922686028189834075587804737144985329554237485869408487038723941876989581259284902476506977550328344089663066960677454013545498439631068809758106175536579982393809157701984284375899331267205694816143893272835265059318364676004060520095553559846015370216944092541315329233529598144650671586546242541649164761164441586031906354665359014570087423058064799000043058255283616241059475744782245136196137002606599326122499489165829249741310476789137939873995688978241360409840335945858296224709745803817487943855524610728917026595181222797586602611705753988642794919404601780177569785328997719349450648688879539516612122983526076224963315910109148039404898314008775232606028624564169314304461689598542225078885490912803259670790862660909887024955675802560963554033094291775282442789417750808046353529401176167910381735474656068486105048715958022049875437689219083423612517136649407098482369981790715197164853533717096058275713134045807221893758247852643293774285239303481887388604576705030271821798355956598630052923920659176232074266689810692486474606961147015919113010399947767846175327285243276416322229700145902180776296649618118484629333387734078958439688116751775662245089019358551663948787021089641970021696243894222681839769097755808781772688482749707904434213789914157888817419195303103994478750190165772909532241637038145646554292035669625944577259739721547734798380768339770100164540019519057330614520070807748440945996357403819568597745300712745196024508233898839593957119071650213737121794022096813721606336536540289244952552825114408110099943200112548941251855461521393308542283585279919733491363470437532053017999502405499450570957139583450552851048235681258028363906245156819421300407801647825007592058008734620935489334481591603082395729940223422574331568501168100038439826996913420438654483762137476473464893607724079061269981523170822227882014095724298169267932302000334392990967254371961907847174048401202242347174375787929166280748678197748868177011775181363173232687257976053271011548530651105315801093450310516914571584463042656197265969020956427640116838234342851470571128410180209646082572133622129701853231393022182141836540110785250884628997186923735735175941312809889613750078033822196055592421580478147407913615762089164161655100563669498956714359758208642682398131249589588563941598652665639124275572099120918335499330728241875085035124590614276893964754768414841559036961381876964010774501642095471731752012523315991947587557757164594243719740366350774208475753548275720328523714306756006633460805280897017964330053546287838858826677646876465425797508374754469233644913286000370982886969477040257359696346656586849457747759746931886907855947929570837337273981703429635674182437185052582579775104853929531384163819540779378903663764247250369519088898340494215354438702804945923786283761764852191520187973046006781975567144650456918769554193067392236502410342875071442896613795380702710195728777166228692783791060986895864929448089697263115155734565506593529905440977264790055920438074134244945908351124159460194776551761856760530431886159595359070794239269759914977528184578551460683656825818769335926864245012818486065401607285390138988547353165788988970646186927746849753390706548517629217834450066693915689811114919728972997943403761546214356865379112982928306056963740216217814483443429905234082784650090645968545518605572603005404634651846831113447964908793795158512288017069806508240741799728983899270186191340196725440854897179021780045718230872231937899578411194993223910171876712959841632124221457917121675998939859835187291604865847370192170398456472566247637131428478323406365388811546160269351271019024762108628367786559764451039682284843954256651505217376852655269490158903573468141713675310519182880019206692174106964370465010051679218652310166277768874022560498616000406523635229796795607406743401707598736823248203257311703260092915194105257743716756896354023527356183767429752440912545001431503320363720538988975447873978016667511377879243105130827274411440010594375760911007838621096515382064444352332150032729479183825921454892167463742342838664241084851245551749106147490747522819400840308772888860793830944134974445163114122849658445535754410534477998746785163034685597342892738496351206760421489379008895828997985833009649479712336821990645017295533819723696552740982655437044474091830768087752392344061437462873155199238616445218387125194004338142929600247409944615219120700524614712575612802826907496106676103380913141334321174354139624040649203072321447613862541745423609202631428555696788704535359970763697439957823346597130091499799762570105407313524524677537537657957816097894216193259225651401739452333288984774635777049745693580679331130451581277823808320460167157069867593347137539453255823153119638380671579548959327204140442506152979492846351502062523196515354206561354528884809688489459099151566816483748876434791744541126628169434852116195356118629626420168060160286371894102638948133333604174829811018878477783936562427786921386638545046915914083256652603908641359934707467222468440805454856475771865327954235383836882601827120897618630398909280907537505092853970388950631317804798686548867138638455953174234252764453094822899071346232567612475322331642665594977823236353646629241887220509123352866466658591705474284319771430777331445506489314155397880551927263555766703026494715151675283555971739706736184191471676392088775341149185249292027444549995141387346208121550405429351263245267328368027622024335337318565616640660785220077966892461472900919223972474963213307740508847921568946135298238960544663614521690258293247302814390137906152592411440943846010170768764653480664664653864808902155731938268229483203309902327636384355078478681304673692009943752751306981349416277509538184813834042112466960362095827179737425243743720886292818152226594015093665839036536833541380086567888793806083807296151482049886894693291942315304293549843947444214753253347349845729897156586792227913657142681639698124800850060615342843596167990610255566140846946052182906115578092218568407281966011399965010228721641438243208330113372409618860006963004978756627742873037296764473476013383692656949452286598265498806659270859494359583960874381970554058269938340628262457544270328003312912405828089045934175607423181500316020537600678418344958251742525113217689663936946762584421282796310526356906817326026463157779807724969494796469076644330067222447783715309847337189261698291949091315389728284910569368060414935233544258609359659709342755780920433949932239706485214918462209292873324942480490908884730094812681470329915246044673098010959453104829271596073089192373933172282606090415514286032104499202834120884286163275868950543762880008956411213796863357727567068371481957762430215216022627852182372432969376184149653437882580891853082531889429214787914659719317924198933718144988995075841506710888098104471965821767001962922506096048955057570681098427598793864302369360634657924785869958134905606899872823977443947603013894559637081331134004688151726177407085726009533631061030853104667885499001837936324129565798730818036811155513651134651770640578155626974593493572744841549801054368280172766142264458903017167175641847132146019854289006331072837101122680971408073898519615636112842617626541565210544218557872483786746022782007353467117142583896662725251020290454004817901639412298033194708159503379727743383495418873630381408066411762386129492437652891191822269608254994181669633283770177951821057587141341460567302370566219411890485422219835936480826822604822610652151761766300982098951068509377724940729295930750605933264375711098191055624139335458983048620488832632187856958742848823327699949123104577544053110154745985883097035697837841810130825716896041030096778800630467450455758847462613263455166742867093401242393638090182887157214698339921628570929105471260333943860305811164304911290257681121648660799904364197705931169014024072239704584393524269608108547068475804804088025821779861090428800024620686752754641429382513944100539123670859845617105392313182223009741772153678053129812241792918174517080624465894931118295298817105326109304028478598527164375798040750447324662532881790663908527762048980190451392875777918892465448086300401426065147948172288937089023917253788650691633215623071279522791451090049137959707022364050961854711232110520507962241389024401990070195125108501793260863859330184836256691468541812940334005970180351420327994845869169373492556700723122145571987060894749036392963904211792506103038835190096761157939160662426652408138808537118779612035822455978293352090154783018565763821547914615654794972564025403272934697328675608349284172449039321419863121708036290932244032098933559960113096825466658142745252818131557419934037658987972408294026046573484871890966026744494914888185944849143325391081864746522823787938408881417768742596149535360449189993698012228783665606110485702864956102929984111647213705384716580342958841033763702662672043965634816498922795067075286972125774569276924460810224341149388336151709017447227892225870367811640302821583733502742548039640149432736644194473042681714758987695238933891439545749567831204523457841829707604987194450101600045387134311654741419997903879194820880752089535440487750446417476563633923367975641798704556801341548954142731654171783252724063907369123180205739592091465844038289495884304857315306914878232403620164226246088098912958453940368139401176149808295623774246747661766958708838335272590680644291203230274460497341843012105273585218577792218427117875637982164637815089459676628371511969422008445794687877688143218185973821338062641885297820105932409787687900228089910617300581878078121405666179599585888921411885290284319345679259658811819100363463420125229085856661135235396509622672546290756486206651848381576898496030643954934158791957029420491618208300022548813629446305810546001268777122091513708845959070874145933708162069968312235475259498732469653132684367665320336440740770888255123042731995982671619877103836874921235794069512532926023578413841795486186425625532909425617622881586155665505680959680793023870552155729573504922748457133467225926902900457362000521620935339766409082969976850812221471918638211256738716139375833877900452146364625093644803628210266975566340967456351429582332507362815428605147931901044648514961163911054380995066226953459072521652713000303610465299931728756747006301068150719549780744481469188042420612550226608210155871895162101401225364038438340981215754257351440790135294866542898998524884434524538475188363044730732539896552448328290929125212701586454015306435008236639685917348328675113476289606482289673735337135973461093901756672137363545280037242484522349181534598820508477660492096014819838079637962516045936341569661904241336437546091411292232625741004366224826229895720024473731875183532834816450571053831088542258139136254895280124888519458045806335657998783028677681415143930890539049370243317385299681568368623751140679342134374732067106870543175844903798388445555826734525491342486050632353620419204372871814725719374235284420622502824807305726638967210848986293935390858249769868553594888023843458966205758347345181987728042249504203215965569223896584256815192005170695145787973117242718056587102324244009259468670117427173729041445365923316112205078411201719926631242155415957743810840099993872291498310785611551665225120123314021111264603291813592189809232101156962894147436528999516110589976288391970330948087760518320640427999411295128387366574778529322649589624399513086078492829692855285937189448834665957532677904116315576808032045865617367339686486017620883320416357776881817323571230147169886501917422036000167072173633848070175064415650306749695565407876460976606697599730352014573110463101179907211917564115507591466750548858161256656542349486018095277762733018439273684267642108193176760209851278985474988232784246240776498141564118628234319360350919557715011974420553964502356983128451551570807638882106297920520658655271009006662341216779907620777963038485524585545565276821031215803198581573368803058700455654427964256796596749786127120126055737525553751410453540211777284706162668175604716149932033080040059122701088118656986386408163533564841276487743899150965676050670735329604095174490147519939446488184804272782508696041271916446240981313550860685743866393153361809119076323757943435702724691492002978932893711469288879468341962401199067153728974215503507627091760093211296753659117116705317264328910919850562697623753276932996889983411638610886204100779230242050815746327100870406035768972755148898674540786775624641713796106930509483053782047829138508311089425428261762603984239136440291371016831415605065599767472387554561906698842377085087109433395325454060716819165638476620984360771012276138187954903918070433735455393290568190416965070600004944004625448575560793777146483649915262307510917923575829487897020134110360369304218370809398660271187818227562700889663288420753320842061530602085939936633058329130458103325215181440861568202211176025945059976359501197565755465880345917318763897613095156048604832336527285696856094753603039864944172701536180890266393718017173439206935291151314838119271004556953350490088439421084184706238287424324588164869696009355459541904732917345996710722178247487395666272193287164000934589775187424844043577681015903369178578290127890003246773256196896829033047513846786175198880322731667101619186456368971134807406996302106478899783106552463146154767884303494467962404772236917296270602888240304794705290260771436012177605255209041858836877246905330596095220036808015737755420372384211687412283768411217856273558251005494997656192088132534341800429375817878048700623413096755236065563207417415574588868304136603959480269097630835828769775694449713723231487649532442579428677260423389003948678706023123851338259992322644322292691617152749808184571329550307400357753304157840144879667632848487236454403708644443527672885984611838357175302264826090651180473213648876928130626543488374431832645566651658254505355994767021453263012411616004309425597905600349928008765996709364057253445784380005444837811309934883322480481105478682706412916979162745620310160355480255942952481372257696328135720036230520521017945455103072403337535584120634211019419519156211308065543623862295223808438116247342370568294851816994650680682813885269234387915482011522259901105189788491674289442331755385294024847095922118840648168158308083802994902146358465036922227309651538084596925360602100821032012613356111488126357500630109211937594713957166028027001690765345127228187468582170016095189615488772861750867856487524596470523779024863799164554110468117592910564032156244424349050685555337229935534637499778965173505908222716090552825953116871731043777473255896794208127688040613580850204284261065259791914650875317453466800209515496530727366694161647881402441964499042139296538869140844684767929860725208447146271046601188030396734191999974044199663108916557482978127273603851289788233781926178768059883601329281565814014180489851021092869178267354602992900670680059579511412565067040017021290368277863615990397898175433491906455975635322957011559747592799523652442430588354805191856246347744313290506785854257363800737611702400324539862333687081684775578143294252075838956326065301370939331775890651831350623392614249606045556526966838053235621112809199625707106336497005059269308797825910570907224159496662705223876767571344452822143649505799546148717067547207053640558376774623334742858832891219352198442340434687340531495045660745313004839667731589599815163232808202184551412488661008214353488541896177387949152597956494378844479739597065001619112970784346816843271427276929567978038230380649150748623172635985614426161983662735405034659496909145815586912783491158008608399511531184783928905581958253096719047184940765568912683266544024435471061263402077328151754638257778785361103706479101053504473222156547406443860260639161887439185209562033416624832310662328376530812986392478096107199062382363063446953397537093995440560975059278781011730073496614309672194260714120075274582223162017736914129128519485003449149965168299420129624907213635097480341895834660714632067703137315578393472706251835461171710625510654494929105131889105440055518602578909078718335100259672827792044153790531229391779913721380437044517694459398993474268182308343025983739295560933495503581722206202871468961856926684131708922355081108713062767341105365904338080974524911831465132828742838249554801114046818090615387451644276483015380723463856520563464334583626258027993210832504989545956783641548606033629712773553150966255359183204697137880348093016476772836526211617794913174661831136234225539434173773220755191689708038468823286263632192602141539619887684200987400741080104440705431448915931629184093418775668345325929748112136724518924747468864810655337843201216377954038110780967536266292784401458772924883677122226606531907119688258034655626545589346655769651177493220208717431042239349760666653313686627818175175483330731342451220884195384331211269426941604917578604997053656501170810469205346077558264415922202526784090580384369883088890266151551952338527786672188567287143044299391582397589212133745752117180477684351224603694630359618232778428501617929925883804490431567809593065349209838774138053183320472900224356192899957856043505299836693404794266533010346993175656655811793215377248756522409353549103758110633601793035815980998099414429423711566168292605248981105615053293596674769078423673968084691768513832748015047177261406307733423990919455311893209180632701405050689918548892416098717042012795462766288846214932939080807372142668510188155936626194189487460282192285352890113946088914008120154265312696021666298905705124961484541912853983969963928141930098503882602957224103636998213303676250407078529672251706332361963126095628265398981238605047350488273872880266402072534091486109429895843730288213324374812243915555260316648029954150290677724808089060574385291547594366198194558036144090547126355776006815743141208848178381973135122657133759232914817754885165132014356365660657198695672107400132641780050662775436849323657785003905436486309926813751248661003113130014152522833874335358874845981257070819296173586599302552340762245476779053628531521477127186648934882768261192715139742632418212683420096975223735435040049745290432770655582624685695592885582346402728153894973256650733580282895593771148252025232453553653614703717117771176987585923383474581494668231857414489702094686504154380291530691861659550824488161808369968999122179105169332311037333251816778748202115645001752510790756735239006921582648208679229700093592876604464074577294344750502670208998853700281738013882406413888807343805397156620119310596576527645595723786861150888336562703401404472570002613912440550840311835782086235456021764906017162820568844656767869686766054985200889040586182772400245821413406665616162597372428219990865985880116326388586535569266508630977032301996416135310281638554291945946559718875332477960005830176016780986842609735541203609745114617499663673522469329787851859765870214235039217948200508087392619819747104345633973947491893040835971138057064492693818525734666774887913806414013929649707672133175171339154566981898743513431437216020798852081238342815413019402803401408508900304349442727792054328775680152912934673669344473014678957457978296862721134060936916056198332532370845995292853642111074456949285446773912113657855077567877192237184564674930194710953783890953183107039700579178936903990263994560584207408754813149730445739918808975459837188943125670024919735993265273661176667222296008943708924270903437927735222129979161745996035591980723863085129583252188862338348459054118028179200492987974955317189555393381004696630853382414697325113638590003580412999777136991662894275097547206143082417184455401202392670958246798061270525469767870162445975293135858873788225254988211844466852087942941832653107820735470232721030408590043016235350774729640681760224479333432802918446869881281194190585266516394659607696497004623896291873447765198311155074218592057949757966104016881940282169531105736622583094980889527644376097152485729614927143762181422975457385070498771965831055429288539456512311164238176619711159098230915068964390919536822904493015006582095935069022816764244960911162507490460614218151082558858721604419614644717575805764546731297172048921971235197284631743410846093170050801932173754197135075522977547755738601721284774847467467403392644043634849656891818447869072193451571904034919334564107676850468575419914214083712495096557464140632572589079071227146831030773195240437120310364322894111117253083075432297305023137954562079188692665221248695423508081650511346643343573003764178985549517926168948306873381110529553813340215146979814515579566397117012582517856295448234517921113226431599911746154691674790646060775811778841450963770484744914648044918624487743312527068381054928929861474851988715855249855318441820369199451580776960298513088912032356865888774170916586670379850704074958531083342941711127315247670532759606649968250944673121174394173431040794229304424758105426760453490963163758818877124210520067092328630927757228926842827223156073846732483973165360673898456538567178735577862560408506478602831348422525420687814628687582533638760102242091847741944361899258163720818263391558856337273907714587713928809397352812232494101953991372105047291829114131921768819313223501392551799859127158418811753216181556671794072971384663150383100627446263088678681708828483699547808091706317997196829844321539623871063787170995466413848116165354267137374466965681125134440228751186524441309105329287992911939541383625910570081965637487885035007730181356943193667793073304178642274344867445878166582315418789486001349599037857720681201870782376477468064105607847749276971718501180501313277621367172575460997238033785690627628583227467616376605069544383227872738320517570004430175055125616701098781243276042698723524863230194115201838149864826627189430648105750461827131301170372120481968757933210505319219727949334701673460025393097750604263202657685329769114943783651064872331945396085346423012809146583203899941823640688799750010251707987945497257710188218090561755663878811097363934740089761468896977454616156423639758374994343356863522084074087146028523494238015634070337944627061669998801045000611189420277336489193289010401390760396743949211729033768967300193158921953711207074962672116408268952861344332040864019173148325232103284292549690638588497660529138841029904699354639166370739904923455688547700505423906425621317005107866045630997288399347159765392323625242570156935838275056770631971882363650704866039092001287931265544990298570577041944799440456478991962765605008408981253091282327798482350720637570529391616238104125232274920919418386290931733482732403117877303327932969952761874851356580076402739127809334767961914139138095857489058599078978129056087962015337897631295831862400401383868343318286769285305117067472753464079560987121520957940483157660780480891624010303335370172113822000645868763825487251321167091764708297565429461131793187054188426656006496752807998830428848749999008403437273318801856078315375991822474951933787628244241489699816696612556639254322721006291024036428460299983025141977874727091204447751286671740086445581153689305956944890562916660046545933643968786140685256096471588239251159533911448831093704351748881454689172093174072504920794312335530824384450866990138315307784765332358822366491008303840481006962774846202672440768317442564340903840172114052693851547170874471391929504737168899815627718500131936556429464944833853196215777674876041489143282170933189200902931708499686183068201041468140314574196784450301404744997242685854838758916550408143379511032582025290960080108309126254449408572935075473313874682616089311895444474990723609988249938204218795019026254252444131888843182290307576697052347998799379279321288585211572957630254231134417502591511126987907357593174185968079605227292136892015678975695408471321893146298091158635931039616228816505012630111937449466847197628000570992210562341608791978227171842197053143015944584759832241537246192222319171635137210589019073223097548161064532016155116021806789005214427975484513328125117248162169549796802911866172223261709454995740013053305513207400150802096703936351988171904941916779204856171368819515491974863107532021564948380344767592767072610076704140929829204915747837886894810020046977902939406210480923527803441768494495868826815598329446587898067094323076677096088084639481495977532790561361825046225641572320191768576519646754100647388806643539983341891071306029225260942319997942343058263547914732250631445710978790294960709762828348831691329344832029663292269677651357388091424400609724843534192451945296411829660053809335896688614785368461415283197375560603018462638212191719180715685827350002048542770186562893528199028085342994630520534565999503821430628668639912952787517361146536028561560416924512214968754645422149316947566526858515629911854322164449228687755953591039773441185070787831488192153234011573360741590055466303088701029074098368108075703979027236586517110579171858309446053687707254723814505799486349170732151187251336698663240224146403801205396245759596266952650227528668136313424745104932449889742780446154726842251278840750252522294713787605303642585407292005953470939551928515228505002773398806444189502091420089440392841754314004849669638817493751840552918529405856556383098081478900890064538702490572098002595244193729973042392871273380286212325113152485140714388433787880108010354142619731769214691299627457841477773888053128873810448385593610301464381791744327372771765242539408816369985248288474346207115465870295599162813109979696548197698858756422668117895634978321092256554357705083989138035288550426787629881316391362834845617416849263097230453444102860343515868160832178052103663377732934182794026483570414277242131297817082450879332715469512117676592553441593450751907610680833750986787927035205941092162373307798411377876901201853571090878080233419375817743625568778322789544835043095242915856533783535875751372630863916528366828373003993846224374600854620309629427030632317357613083910781286773945251608758012965639486787002794059576934320646518926224430486029439003823050405039636259752156590936790388646368208745138418068793375520556484866048412245043689086842739543571140808938442233640934545874410957744158265389719029332626676524260066609916226958996161382979943704210251974646764295748165668364280309398720034853534741227497813870582837978014451573001834219534321270399645795019258466296959025228123736332782504755670466635321745879715469389787185063512273731218161509195314582475813337749111115800235646517608527656701164054160458803485077780428470838763389625132436330492217540134669376328245071311180104110570755664055422213476185582567344514051790161750438654047009281099694419093141532795043374570068910105272497109066072643874062189285715118427225489036835811530740714561571263192703595027511531333164786008870422148508107718018090715175468910146004255762866457830709975885525215611712088221453447916000243948208319598445484696913854413271174297462812682721256039930080140312637580502624125810906151961378750540724111321222106791129804421457345928953447238396225552856857396806408634193862155870663571467149273048326569300556646902088786069561002294688214319799465594687798255913424919213399742929535873577258448682548586184065033534574181937855097235878300855230198020222104611985843438690037017535249862323966541700324352495937484735915408609782676964357152988494077782472148068593402555164428074314557612057588825911016883875963552433944996203544239036062363521371050837202963981761354995495357622704371658659930539418399095380549457558567860649983112223510608907525220172110279711991212348379091248887701801706629078593459739923073056677555130817893204210766505655804881903123020437699635119639039777117289707698260096362793859403349890284874378816404427521476051624360868979150011703726929089983057432793176698215538757057055895544746621877358514632795385790326953749847529417204866602440499465021545478270515231985288041911995820891916347028589569984685463587261930146852673892581201567478683050389887968287767401666537353157597757865554177735046104070558586945342774798583351390090809702474694600942966818485507482437233670269342758189376012560444975992460886697216179116308695161015734002739278404135063044098660929894629590516471594787013627007481848877855622199999388409094318372304409256664562299423774263055986702663115095904933614182052572728783736795876651632402841927848248696013871697395137447319981632006911694977146217226113515406648126561296705085990786945837737640657802180513135506171260612315432851977770636358146483042255405810956395844397918075002920091860176288399144366543510763124373357902812461606652895604037491671541879043448356689689108956453471452514340448918816708040986612320540963897899466382775189513194334361610798998578321602295925488839042711819592382244513945374357868099164535547330104904526396913381717117890022173094710032926095973905798039173270289967308329786519177405765675132291675616237167929111441699778823303516941048387920943693822163183561388590536975060289921963332122773366699818913349037390271426872553844617264306097190588674588246535955167603770545493863912194711635675622311484969221556921691125012782610627398760878769391372669042394282453158432927641466318793835004226803813314432355110752000213465222655774917499044404056248492322609964833877450976743842398391098413465697664335327009145314193911354924022607890938118127443156722075257580236681714729956595108136100053159320528725423350748976921501438647706503720177137880431161626262412144212995507908662971982905803180605102872563730338101448610364872540084581104753589607248142540265165938045456338746531966737692428734963165199268416041530923268113539362950192449526528181527403200411193000115899244062021280598180763496753747948008139109309580597771157120991732745242604627587698980940682702265038484016829643053276437783529637405346795198437773277600525867489041497192102079992719736850000485790859738828305019220275795540453000448891738026392339697049329320297149254499025512748189957465260236337658218937184665533427678528099040066204917242947888368065130656149365026284397577929979289473308419802539999259983408073614427597792832045067264593227877371465845119198438569233089795419853972098884601149515758328975441204930163116204380603488400548569781567883562880982028248249260605379579907223255704019336877278320031087701153889597151240860823780410461782356380222274285179953861446605236641060455591219768575152370328260193290402841742206343298251697702857230230006730999408392035852714620372843556323349254299127288243033657663226747531985913192561502119989366697524153415734450791301846978067507059123950845288981506832313970507291592269557768276044092629954781109880286170876520391607743914531349213908993062914986554097225856359477175867548102337666595971736611659295586006010331578780633544003327725096190412378174395029622276314990774026614862179870967502952290647983861241641072506821173547889407533432284484938113453141402701100741441529697573962401839971299806614015434484354297643523697245794340804819743336395840789685516551818265241726934722730651102915948819511119843307268416706106282276503872530940953100563177196421943072089128839038465937812886209634657757312929061445673259805090259614889190949058243705929080447567699418066508732703610278584979057218678658586269310773611193951000539241872932930289386455434109528702913568024976757455224107745759995145393526746845377462788342722777625326726104116412587783519060523337106106564369682689783017218194034909100124680944405111649030083594091103156407805215366646200668068903750256048504585236208203866891216352622306725268958601346809107414662623227800782808805102345316744809134018458901132479308404252716558064872095866587379256070942449182047148741152328211796638821793115121869972413313127431693440157134050980056335647501833757701073359221022547703533117616703678003934081408443238458508663780288514058699437002976087950562361443459843171028254233061620654068274681698425562651434225078035626816864296799811939786055617798641923785736400875142336239588699670008654703998856605629096794211120077951209358407825157473231082462853022716105514733820161843191603164341775472517241362970766797924915988239452222211838222631599983708877652640388502125271811294195099750386006546881496029408704518773990743311964323368897658005940148379430448359391811847869131584216286426969351841385926958017058989107218954901950322230855705071690767111893830555740435662863239029592955022697057381867392918473826962289305975825219897546995987996868087463111569624147871209345136666146989811328165527242119588746008670852196116489324041861011832400228207756701444433361055292088432792873982438137031981970524482522706936317839099870814670913107126608839691934339850275597121568723236096890045664284826242559573041468305285221848334384527993678937500296907989449787275793449505699201190368409890874508748411739899381783460259922584072017388747597692681655899769262602462769367433121255764189373061735662603260875418445188607034908036703959638145014011594520066976085489739573351664891525983521639832412502537004611343473817085881062208079771092753681404576039658688433770021401726993131706114659870996250854933454613203324512106017759483546848032481306440808102155836272036976726083074014295373453153837359984520765157366836019618432119124161485533099644341043163185994591078264548220470582555485924507962099909785023408215703357530871060359096670244225865163848417749138568824840237312846408592186987790677046903303225383714139360383972456235981514216618092934343427775543114124151380785826482789627450338965943608479801769081465933000631425231498629390716497716032782538697551282999454005922752676026392825116468287621375897830137267287060996594243223019098687127017851843956780979838742571206398838100521833487137625200551410347572838430511238340267710912980368638611644745762765102588770194776718266430623076417341692987107716459736862276077224967291284272877350246211518941353629581664882911412598167796565033787768442759885193975101922535825531566343415730799005242876863072509082463458843142292929265570722522480400205068455480147155045911403851659045136477003946122981425459146189125020753738465396155542956568566808628135918211171944240506596695719038933058564310547846727980359594573702755610995233469278426783066874701964796324718388961437903257089320577067340778471180726036685820446428110859390360402703901663776135729444284393906059510247735127306445131526698927807507127990319511221479063071874884509775668569594269173308198246692729092022342428394172863863922341320401815118524489682026013683114239517854116177317626993671568964057408277020761653197167882846129158744057241854836737607701793601832476629517728534900151838440538053555623030997139453436610376239622850986500102355393156494505221465931615844937642846530370807069306574638650061010323252929048251390956616844965536039571885605496048617611668067898934912780594063321581598538112950309748158661174287457925153619824052864291296674131915057868926856737874676410265607380614273438732232861833595061428572757747643468531060948002953835537299942132691085159093496355483934169315853896514026935735706873985291447608960370612247729655795484844996241307915620825038806552134228820835769669898751321795311888533459310532463978280595362848597885428729975204250591139999487607050727618470772180438779830068323232412407771639605812207982672973897132162020828876863820654385419132075798907074239580788561981304690505950139228399949321172479315184858562863270020970188115923601469849706951496344698929600158632707217293623072384616448302259538182220129260865860912093566539644587531734694490517801250627402397776862345760977196547395305419035737961275252975101022262065003738355108537326753326566748496879672021882420935692683841464915746909239070507455303857069973496444133268866775513610368779202675830248494293437729015725438869502830514111469426693970357947561434699861220515421976329465501535673466243629809717016629287953843716937160021082335548440550900899815300444226142673348593954837187598042057819234404447582984973060180503295767938633452374821732836524592347471205417410846127189846120900168742330870672337799995086319721079551037159728080086294542927121738716453183465568225242816937258023416253185920618943021819520201789733690397783844221320850586176238175164797070504472164265760562685599715808395338131444490445600198165328378755341279595781036812965810824796912924150485838072811006607865865967256197065050286061009682507337122735242984815120150514162418588969272709372343213651543612395227025298989334181923018394267339860811567717003481696451643386361998010310534231064490482045796250766295426605461827614680031939978885802789152776449668699150720571099770527615007416102798973965333637453864721517001488272351291409796554741669628625869854866113054335954706307807916900089256299749617845334074202414219699629655113442128714047306802752472221526823356067233668366106060563566523125051079044193935566600475682320798263498048414199728620457469791182511893406050698838662431361327132467329069680681692170850346199065302278498723804819282605274511567240434318791677631775033954111669106276070174108410904094780114075257816887480033353066445887344790700224679598503915178838571287692056514549989637022055721658314078397812031952759115347232134590685779522057068742649347887454985904938385107120524708194925377316390255963963041480489529648843577047432711433181024718366712287353403876745989557273422665045974700443697742217238160235574176828399988727633935920239513519180225024509769997655536536772416415885475830158274998221507703880799663752743357355263713759229275402666255880213376273744973520835440820069795162239910595968993208437597551931738837783410179443948283524908691262286812997063166310052346792090477773866110585733002513142484174523539398792298679523935721247190200342494431677371963922074011163911874572989834820747475520950570983542056114078274592667529807787918616324649409908002874077501055220180719318182431901143981893501225471159050097124943016948509362395242352288802521781582095190993694412620171843714491834821187966755037815982092974322584190436103950534214667515201238966938638167383627944137207083909420816937090601556978306439949277136811029788099978689991701976478947201431713487503075455893822604787114069650731420759800350732273723644980493570087884461782616056640959241709500535369986624260957142106939446797938493336123996286897328191252612926351061893087288420056939858605232698130367637425840036638572309692545825488920337964159347424127268439500655041292829375837227565743201283056540102571045173218740772316307671135019885573851468341617823828992703194703379049059052003938523395218578157838815138017359321519511030968461880320237449077429818333581019444833940208466587530038694400857127225568740551176151420926081181425242128915053497248916338550356843231787355081162542228560136143628207325050628872789993591473008808241860417801269548007909190296539491017035751142999715056526581008512804027321400946333557993986514701075555301440193127290048629197660910639678390901036539674641338182598957168592228867863419403771074875664701559739173763801170672054014299180278650032672187563148128595455978634526749848782293857036405535020369563875690153240877583624432550273154017582857611625108710773742277060957864082672071661640194145129067522055177145600548800172215886208578706577796050936908052852878168905238428992272559641328946858289246136963525635664083686634598524207007327162677307943168839875306183285927949392464763810656063271354344524751791181418382718576365543368893337449024863302927373043652808443409438235767252802636388019469889691529380518996251759908776850779911226524057908581470950053829455025570982485297474862545111906928415379306289238149678094320522728033351431280810660898828942348658345023364102487459138082965016652738854598565971879743852612648136543405050131741587626355667706778366330676254331970599493952565362343464917048491831631383695189157520972876883542068100054972771904787623361706848534122654795165465699168889396734345908223353504739184193414417466175230282745339119377432985218443757488773864582377907872070289539507068320040574887786467061713980114533358286648908428618919843508726223496472234896315202093655553799281540144290640740987845740723526362249325497735421073988173945917396690940716975604691779448172684623865391153598192882275284398462373722836521870235998907993738217830634614934462784618911496984640076120669549096222854940925773120371639283238665467989327313421205152457117573057335412695111236845469870792878898470171947906780159580648738941478261086964501356405142063097215778354516311597974935631620941123935552038561509898268273966172813173132496361265140267720451997311704430969529492515537740213803503858628024775552319360522301717363790267750826104685991103762989063398426520390715201995839227696595826907969790750596338886027900975455084737795032776951988039912724375582427492110757308552356966209365588603010353771459638612952470999599925438816555236143280926432045278002111591957404252822806955075786708681565662440949267891574654575942678172552727209215828562547043297765218127593375707613251091181652446535303979465067451351849372449932123983340769433975235330102061590839953882989893536464418826170273299194756636174724058398671729595956419628982869535807746194004884166880564268535061578725391485439146543051148800908163816985164254431150415698559341960532005969017839858599959932528748149969499292556461232798939525415971740653553616208592621926349313006894634072130490585046921460521350784490138905435271731799269516032942962081236012941554848973887379044896395864501772020445427502520012825783096613837118797929388908178331341897765557867752847984901372722381108884553999230984515419221149165623078474405696081553557971526534119329157229000916441393407413349436934693889205629053228255922243751856971439846067162559110587700457241607234216794125799937470052698767860400337733257185289535686807136554655736119003959828201269463670620438107855595664391075630977633297484907163798879640831723599507816666258374386946654187176668247513762597776584000044176210582974114049805688571924086644933043866725356035244282781870941923045545010536618932869285119702228321883571386023091231811931684810843914157766258235985888378782749175803227354326092516530933975091880526129374127946975923347436756758750459405497267658714288738623163891924553564905608211353025538861151232430947511434786489581096998859442646174422146225336152141167119902723723441438876307828806828713984741467193272888749648638341260524251178868962483460756755952205797510335065859094296511442974240438191504600852696426434928198939751882118126959645057111016914633855479151349578339545116686762916653557489020181002597265911747044789170449600470602676422347110957650395602222038263009938583963223700937800168960836944033910649172707961615094761123760585091738286207975417210983280281689791636855275777658776847304986670006358942244113227115768114505337910853343110840374246078388623287839696146503325197220348823308670339082059386269650201888684137698351441310098183096322563448227008168601141427068340284455588061449311431683453876106012390479342206649803448924473810968862015772728956577779519333977098764469861442924870856661959090719980548800675061348793025987145046568305003054497988017683651359286400488478849522413930213631001742747785039314902195926997768820793659621137929810183120336328142022020858067233317481640410308692807695248159081544541489173354325792644586979850519517180171529831655407623131183646795041116838046541080232415096839595069555323818811001549232892882404547543245496868032498581160545150280373915993859127287698291216009497238065634725524574434233602077700520246750674607459255309425739312215907273327358510111266070809032620038392800779267064757915037897755427843151817557061561636769463107736986728253805856087240517473934185965663396842046744285295441448050766486281880596470695618654043786546462344807231731740223538707628969201470421223218065837085698247166912090862740071831255336645313480445795482502620697702093128732755994119228445485969043267138920638855123529175670136928009626155464584223167902891770516572891390547618243139052619136842414368303412800366801443730221026674004800378769655341190968878465338242293149802705163405851219952936229254530660875069714233617908968865319209764096666012630358029934991863683225744598952341418726997547207204329721073003696497585888559029833598213670750316831694592186698236838330027043091418815946933648515452289629823257988820109795406754432859487455727547260202709524614490946129157049339669905317083394062785874009548612496154061566556877531919961419562272627082136393709516155213502243690551974220817559463379135269256358374672655180809517553505319673404068576881543671234051344948503299022154259250770711146467105022420990678917169275818734291714866463948532571551515888757185898716272087310032154576653623717590667371871212626895309284033819211798665521033969463271601330628364671038869919325642043637558323576826397041841503202189425569831700587090251411581922934743598363156229007924823453166024430968384552659398607671768092827018735702390517752204613293927982209551245433803066509970828061373326683691239069894887638912213281848613217829523036390462163215571160580250945506373459835194570238926927768277385264554472838921120963987814707956625981540044879234534581874770543086170787618082508616320987258020131461467207493295176870576498884584442930706516254953564090161129228243257061863609314166684886814201666622758324712920351452248036416213156355052365140309453797217208274269319238648589141232775616845173124274696387629567587864308505622908797239029281575791949488623453294877169207997018653011616719013438214690934219431922954290985715530780984813115418006630231627875176629638856666203190439505991643652051732174604941828571354666199183474915246319072943388016730023485584147710588493646104129107771190583096172789429550034768133373165824503371641302281850034270948804621537170011175260323781458865848027334121450777292908803182663375003428259213654939306972475351218806541583690354176519478300154459889110689658187963864313864834508404098811728026966975665205222641001934547199865010431141448564267583201733070582804907409958392755830243716454420806573359211681773081191218272641807639803327619676264641839671003074728978005784059000616899789315025166321345454469883807217816349803819770301059995337315366223050017555316071758509666270145932508035062065030385777312638952943377308795767864601349894139178853834528999313049594025260955143754038447483164913961315431083984075655526539336000818922409944595523436904281056530618663432904862244199480946429021677287844344694575598739796904319036499678667215275959501370279899844623287912546780215432769170122828785685180352953597680159188870849522786278067452213736431933051813447641100352508698657715626999092673884012109773974817959860801487600527446061664837455891202834016443659051017657042064760221435250000214533883473905909258805018062140401219235533935887214776866458419561669590128386225814531287344461840780169316764918026888725101067774070221963561779485472229892695469206468641938231360795194681841841733937097130780171646950438229868455812068774792135579150109984299285452957916600078164180497563031051501595049020979947651691910776039076429557582268699077979572284142222717965522252751844084180044937466576983145186061970787709482307072993365847272554994924187924739740620970062865230325668557277076307053567610212011222296970772920306543460020200873701818467188703613162356118814583867875330517257828228232697050570680322477680835484870262158443122269062552328311612619884679951468647626856177069261379485167485998343861093780338947483175045436142860147367853562994083274907650609120501460508509198010990443714307415919207020264222817298725257512009009342825226153364617760772973511407321094815491411526407649319520646901631207812109484204581909912631927580687676335953752470627905221546771045543922413371325722412756807000919296071092866883538276071914547410241000344869241688262421747506253169045824386990868532832224381158559824716292707229286537723565559006362002708501863618812830665442121437770952128408061621430983833338664667166157851400158527901340066399401827697917943714992139068306849334904014275135960281376915519812409907334601083041123536966250768339479379948899632565602010115541470588465560385732002736834671375231385816737784154143263307563465474327668768240215516547664197339934289906409104979327555249253290201096048644245880668620436697036794072520062844874088358983915329767419133827835013721684122907226248349956708907096583650730365371923145248711442482930288951114640487334367507631377805253714223165920219868056426934770516176496569335367376581152459368816481647311468289826962576384157445470168478194760524632390863335581772325537332388355819437410923980164028874872471508454855295005278044165103422822335057284445867106171767849193485040334332207198850749495678864812417897202940427287163382118165418325431774301425786350756933188029662178329377475685876715703509000697244117987426790554257596723631924106086804120628508011834298227361954586163757828807357709579972291262830769417485105889057394373023803510527403139097997667456050321649049015603617932872583576255848405275890062376990333947644403667839487787933003200447735030400565254510247895809497719105554405382144449892686521570272794969002738619305147350151779993361834022800469156629043113312130968483620606126773206654795820278673989765926071642937873021749632143368988243463770759647606271000704154823348721545035441317485292042713300746377811701217314168839041174972509472556444253478295230198463047036636402807265790711835766716891554390285893427178498403191546928854079484823003688824550319621506343629483357940268485902000665973924307659053177437940928598377841753876336424249180960986907142228230630376615546853928406235576613127763520214732841395672470627492663103349849262817705230820058566864806837861919324500058257146849574003590620927330160901518071410201262859453414955800155416928364831344871536901148640691619215320393598239636096490679058956157439402067032454835976535767878829264829345387757728611962136008338367707847064070214150700012128223935155420128756484230126432794881157932944350552284107026476206429002385682419995041059460157463384304360112606174085753601578678334145485890461652183237801830056061589947437492905745857459084419726134147705227809914206868599894067427122101658995047909936004637032603517031278512079761575520904498183117824465494454209073291460255323476997949306366936050148481929392194166281771628790772635151786107589386261451966450826786269249214045821668119509318789824421926616346369835196490567200181613509443526613419021518926241668039694580405123731621321788202200409971871848663583068919574628513650745705254830768630307470593729566033562079051380660129370232220003930949237679445363104490298044085166766953308220904839144630899564279665423646762355988022626434195609045468789241198799668919555754791525515115866268589534314615258618509454114797266905621907877784919250686285234316362861314053051501202042807622658758347160776264702101889563830470008011862448890200035475272130944249105064358948413348957915018719753108185212628208031298922674188661069823620175184776934551621183975546302847529536156086255119862522477842405240927153248534471772885836364123919005579960582986843568709553723889065129968291229336001005428310400893479531941781837102051088805739115103798349391889511382917330845360025356794540488693422444269457689987348306111260389324226154393484017162865448736485710241473716697478573802785712544885452225601477120583464374272707942736637452997987439043335660164675616234367602381473505875967269205236803093901136109587606974156196731791680203187194655437502493092766979638020733123572832173617437350894283631560311439935945216204438772789771257543955708707127427633437876919984320874660345680385237142196286639355482447503422490417947449672301945431946681597297889606672430882991596016459119406882275817665508657663432682550973606792659269929476040048312895893229065859337213698199605817197043062742812678373594239550229990164505970335089746887747921286295020812011788096303971491581896687456924548195032129871648176030656479124554520926097898882402933009928162305303619415614357961343994154461521786343416051191570687056456945308490674123449753097863289602811291106528842782857244287979364938168326159603788694489384116280125147892000804411033342905269218100439960635467418922477303029544120361598461841272720517737693918599275456105130278690009809509050657675054612595924382542453717811337137821667651770145895800818088731923529416163908270436817229389628145812067852192834114985107082828351637184191076885042369137310462954624531866326956664001872498697084921943781872454136031337878629279372910732173272586962382703901713484861355376889971343069466455958642103731302135379847053604793314792307625743621255866995333986740945463699585971653068165022149226468936367606231565345397791087272785827174542447636167490845634438504318725310183004633784477004890711526878703863475454903221630150984587175348851728002850359431106550832026852317865596597479856549882620651750536539426175516152401922479583069510272413063082657943001823844136421794716351605181318654671076784794169298799332763632114230171188702047209666915877268070261737517365741175789808347749472300589856615401966674601959911242261566234544995685653941854334632989895858756140828640994059642960459245104601428226259609159487233784178501474203981595005301531051766353274433106544026198811689139082658653508479578272856203671214319508635696986166461717268998960410009599272789573674392642182432487037696065615948625332609678693584643787479321977033169843173374836959067415178705081769294482957666620587086619857800695127737050625368460466874245720042537224924637684051058481447095013445386254687236760115132047503155004504292329337207170954271217386282830151911390240000569128967518577067506649277956361902749559257736782840468331266092156987475892990226065178407772190993835726927933684223367969727679406704113780029360885988647574289612599412516907083451660999940404190018696902447122403793804170481730884453971745647372701336882162532930429054987754984276807407673986176668879800866213416745986681899829009236157430981576483302667737792889883494597374322906945558455012283125286025537975705331482725433474004459001517336453438736715204554514700954135461349269448799193231434334409600640542787609649390368074926005411489159329904403717062544859775908967733397431727149023865926122389404021488314800389418013078291981041185594994544573375171790318504201694068929288121963912967064179841966982249326341108469727776698364620885992706600442839145604106526581464510782203861638609365495286792537123753536128863552426187138397284183738887720199980056065570784720631744862319053928790765639892828310076183262647338612857100308067488584821292938376275106206145950863980904316512907213908199065172077674299367186779027526934871268676010360691432692122919961024703441118155589905654292097260530692006363546561649572503795508431877844618727576742688360329485276406887238894753610019379504151915530072974031471565329435809674834917395247863226097397968605484224269093535952978664926680365565239739109407384944956799361462614003127331409087935545544433420516774549467942793198025254154522205353983912998279137161020400429203772066115462229472648156960905856817033961594002099014099475945939939302493516275480190071012635223662192383931569675740500363493642153005978654559859953646867396661031357417608189605209648851505187364614966051734467626127224700954561721256332759674893215082997155393434538513052607002425156901842774022477180769213414700126144604622948757187051657060222730503762864905132796243289383842484968193305657683817962148504347232556215279720458144096644909084963529646581509038161381642460742095101919327684766076611642720223543622599329307660549574282862464591497742414423657354498765646470110052260400422784878849908518160307817630527693228068801431021439025204108154651757035618865186341733929184674308163948624809198577322151272079907090198221182585812616028187244875120848422402547287786182695714063517359904513940217044346962308377591358908377015647611799311878162496594605909209069644102129834150103844819371074921479898855046378315002125808389748812554870414515936565959936302140421821871770455274264383529436826466519989168755015207021515862634136071139407782196184980937239093338874971302877222238646634569684402703600733551200402694190942229982344278877670285829324160379454752167171469305695779320933328540586192704911192190280602362215147949213663137046020446912221761217960401838789204359115093243002831406730537813462038154103504806119737888705122136264570191625411323582458939285079576334582860494835903824758135199420138098720150093054675048852216555158942793710138998703095157522977486819843487950162547756061634005814369996965787069705956041786630629353021441508912835663626940925986950250183394933347793616583646887880408216930902462482666717328202685861929035037607501825767990106600909745423520728032358823007311049761993597362573191954666988836083389698187478121207494049950304102104338246362962938294829195096007168655223832111185595115519828914437990048751987891679520433506395694279012335193641159521050142777204652244014005331628072302844736622043863076017990467811665364626646101090594747479866404164759412849430544389721573686408171698823492732925680314163368517119516855451229010549461415279502740825190627451294656477612652547423846049871319881275462183114387784582177763976521463599350195270713890371064442949319799047818695369300297849642553263218557947616121770950022208799933852844909591210485897132163493351982434336329537858066773905253143354030609824502955057095781088003682318905115271938168883469124818854368731847373220915004349971781648903598841492661949813741619197533661462686163310655171397286106418962236796086480772904535079465909151546014836055067548360274880349786106479525688202752336659762751607406251792708675201327531973919926415330877995982176622823657147763152908268485214086434551031957712488278822947936121018223519405849437762779865069181283289843383539837496030766606490704401186702136721203131840443391378548893596334377825066219059716137014289159681913955977977951643570663190744940721729142014251618605518570937056908932893078829614140539062123528599022995655741731399848000307583374711747258135151736704111620290729842087099331967929222934900812494981058120028306729771473948725085840611245107361107992746235557976180506981262229966435452181341144459448121115215899716975626585833414571118257838255637191055815536177997096415692322053637847447965298482725560224288777629875148092660705424158297773182907086479594369161836870461649249153357279899026608797659403985322636480000991645808007035054134274846972463781048064714448482021207980437123763709338123371647888123235350682849832262852241586291605888433050286342492759512317459793211336911587992192035446705598590653451752068005824066422541914969261359363148742518348366723852439306219453525654372197434405054916235583029241587188943927546512207680267854297179245629228082734406612958251214085285821864044313879446873013612935436426342972890036004666936458294979457524069152797152726798346917201847490335687919921417585547107703578362181381320626823463795115243600468440357850707099616798426743037539175281560326464151798384814971699489136467296246469955105865120507680732293187960388206584161857102312261434995571759767330477087915381145325785306796428346796784440115808538694880802924822959797087960235821284694816349478141020818030049045595863098526797533815622117763442942775985994840407284208152050604403011551024252890200640171691343828192334341401361712332866688034933835596137385040490496671788646974026770648001243356653882383662812649058373749679317402449264585036958908172571951186303827454398855397786885911727557538374111854610668604346105587314256341445767166779042589917106629499535847307212553360695407811422529927653374554642106008449853523711394382424161978294615760475612172003378662428060450710232787592701915387645437034598953561023056085784993897500572293220781364235103844502021990021006240861482650110302629382263877183040451902021203574004717537925450026947869007975376538471290698445357586687540108404245179077473965211710104347732066816236912077614986392097416094947358987783310058125670515035872820135249284382333428632104745671216383824143567566457103213178436346236487318798536326399344356543265181728797654105319880624019422128284350045447166490018999141300310237237060403628799854113989786249036785826793939032012051024851465448018429856985060333108902294349956684081974061605086885627359318155097191929101781839111182172105208138452495060205344538349658865836377376837000147423576145722651806969125380150271670006845615540874175038191011192738775461025574814988712577978668677318596562410075447363786105265325941540983168947810911994512865583942520672053231749093845692312643330928374138922190472429415402358531373082525808649064568278737718886660952208181463378553893157365571416570056158033376693900596939227759800905970418753584742957145051068196684541082788349888781376253177550146082973639060563693478659419042550050301783089025284063905581185232362223413121162469010847777006311549733915239178389897923982489761520273667442253730175691687379976371435579276432528791834820723805304276899280106133388097943536732812999639091798872403909508709749181843533273467800023174496556112876234912358960312376020591558454304354138731216226857701782025284674989843502035375623851391704038224623211504175497406584718085548466761113220091729624678522552166560593388399865461788713829609266862942984995272115596245972662968107454572345192581718973797048732494097588281247545887419884527675542435443089792882265973010302777904939416310832419273314813744819780342395814366729866162721748724416198031723259039393378152179199252464432031712971366281581326861068056573195915354091694864756315528383398397472759060418617509892396392035869980095844591588783181293078966414961750039169934870390035532176511213129511812363704833644856204309515411810291902403096182621707894188808706711581623531196860425089010354551980200377740611722532269767349558316486106802309584691245251013807936102591958813967153933667229763321064630630198707510929944157281219554391131042693904000902553994540294844720000052647609322642745884151655071292352541226706258762799438251385484703525657725065656090371276720804251424177817978042026086091775710431684593083502221950659306219741366889846070884359643071987135141400036638498802707558261638299386601966566768848636691252761760224881935563162782711854357019490097098467699807541497775568476466349829163877244169635786439231901264710218366585553323975559171597279539901396056938264177880365435603913179167355479387585780701949665442429598626750415733939638980222169218581792682133796176414989917950878298835136680811219726944164605316132925433135936102339352653928334089614833221674649063560149306215868028803289616297567509745850774062097803129140072167814924336973316902285927784678011243303549557655587149217737206154368162403434703022653053352134642758335227947411227824740416978680505537035646700192496701287515337506261784489431174929259572347547755507320039168252982860573079789544322625129017175238515577195691599206846181970722736298094082415116542278345702057884702725391577512345515029847702843642083693789896988033885174729066896320601639810485682304372795051041172621655714938970792707797774040227359784362405285131420268804769182190134253397144047030382045152125657023194667182357625887631072495654595846787986791168691220401419292252014689857260551121852121684073421835204609213106518870637202920719480377806627120966013517478601912083553557576217959447292603679865938417716209014260858729117977505529942551614948502280826961396353624031620555797460414305489032164729221153474240037659659326380527048868519773861571511713725362675533649756977569579192769717924921124213555752365552514399127651197231083314771352766740344292060212229918471360582997581219312975335247025710354747142289202908622555637749392198772608628734200106599465055087113827168956465559397767006137511622208194254156106750423996372311890225836809141669487796042613742010299720550065770647037996978766976087026023635044177422685357324725208504516706601388137020044248217092435898452277909566183986557687803087610340115278655222434247869581062535466115329427226200804515512105478826570788808644934148638307138407794552615019894565820219643302246460488138134622457432963645168837822537424507292445563292449995180816766573470544279154924466698171370104072392969473241860830439371635318165363385794609002494114937174633377180020712794743113370296611766753441510727195195055321071485329796160912906047139367556015985612743467821129961469307770560918803209352611404530887875041880467011361489776028521447250241582942894871077204388624859199804076463285447223611815353998182659214649984482895918602310205317257298215406491220421378642640825325811560060587184666622983307490869022033157923257294661001443892104544653971825543680773563396877348941746101136828522894021872132900762984206962244202434372844475746872845520491174477189486529330898183037152972138694246899047277445390508241875378613836852009037683251576338732552658181364078520156626386272612566199935137910884217161839607286297703865692403613312757185836454817208083499029931990180759731127646506741156317089523682681188829386090587791582733177925889876105924465995019098382609085993630484418603633469850948451660344633749731991672107301580272793746977269193261343580292702247670874372892979734853481328188758587286683207349852243753254545002680570330023421979358526467479795479965971893408230632698049156319602978540632381250201574815148828240242358799282692726791890957468635706821951406575567742534471068029685468192501990560104208926472824764235895636174708375447092725917207323612357639376280617889861175506769380235989369733757888288826362622260764784518056711305387022311059247377856114230263119351664353380534405054763941480419523572706069907049802555243083840948835768405809155949753922703225355129724070720132175299761700131167927078369237299991651668679773193330276936099872607799081761359299467805528705279623377283936542776003828684916694318933317409983625598907898953124984300152476681563941193371020111798671454812136718963635232962997080516334642122948558823906618481973865636381731753531852215164251005799329697105417570363153712467679468985483711780675157952127415360085887556515411555754964938751476085750644793659015390960581593445426565666848765274018494521213442318771942281794910932101964549810109778095761513228742990012467862619309804043468845460944324963312216496301200873460760315318520636539541586887493874201550447376340570077585615610552391914556173252868219883456935997694496007160905824027823376992860938245311993520798668185510719096470818611792154530336397803571550821020442975806686269629165385654107393563475336067801921959754758876119764133064853179827321553635644783886065723505195474193512267210892377708997963576525772864288649846074440491173614283949111052519508440281544855459564598609519187079010179006094341870613878333374079561276123492758888894052338434971173931956074090037254330412168791341857366229934704015397596942967584012238576465961308870550499823914557296439068419750806373420190486478059326146789885965527122787092190473698723812709252802517950015085938387499692545464671020601588503436876929618890799632977844616052830837528483947679953792511553887006167317866230687485107517001081075923311277112391467431546107662026685354450137244410053916884942538529004685971278482351008780376742027023807336184017793425625316961069341701532315338913269109174943806910051808288825000212523370129960962398551069117568560212833049465288315008113996287781617315636609139022250723795142103459775269216812599178810854211186795975395380481822946908298107366193354999566714103706231564648337357732808532276610751481638289669841376349548328111861435101642585805205716842855831643951918666453850272845493061245860036273605794938681160204517103286111705222897079169451352509385687433274056125267714476267624809881637816749215447989552709311895782530171623506295726352086250193490107977485121289640551334047112182675464803541569571101548436704980172640566254035416830227312821013945129937380145696542874342522984738852187924150919436465427276810910791811036326122683912415108138780485208775226456346047136874824214526146398303077872239898544561654233032540635373344274713867751097059951577208278013501819574563876909475661501637691431437073481051857957674241696483296950520935316471414340923215855822500937232840723949935090435588706339330415928650178672923896503793050040115932115815065787840012472580924074147272913605310709813303648629693901600310057253922417841238461375316412379857010604396885506278226159926574227887641525312476255491520781495420322591610058200614608295775383033158276520462391408061943499377776221691366960066895587583156112158540456905365634504515263355464054716907042819772885387340585287663437373835392531666359867730455525934241728587048295125760394465190258675500198384839673764764390187598437425691738598205605737314628787799379061575697869246357696806468159059340101598497533660076409848445683012818953535986326087522045627070846351797226301898849554196335399988855392797456610837659934905803172239923754806920945122323727376785512610141864610639330125367868282254397424961811423190203779725796751083725245657866024918798745899668212926086621839825545182934889109436561501544164097559760198180470806601021688617369505537544337271713024627918761233182168486642564557068708356386893783675943930499633046376392787978795976927426889392191583318639006526466320976801900478989186853321522937286716634930328575593521760250623402063424194895198909531233943635113047694074425473737776209526474635212404356638830378137228980142693451823198080933294640216481618495181587159125998797036083589770002183488334697000829442271002306765956520966879521244372130816065852771306402097415472058407984214356153899224416663296378674758145913558174922949648723401560748357410320404997537588557407288606543711149619091750253717045484254387554886547068867526269888861005354017852095409367642354314099964498822876228448855506336081875297347501963034825335340801237837440265383557456323026210228153974823534283348938945198840858442887617965904279280590391186998018679676666138160334726597670104890771157093446719636232945332342547852696748323868669856263685535105179458052558393846701292112196621175010637076263768345812265018739987256641393366409208320479625278836499005152602244684668907222854323630894919992086942689756528757364389732027973419319595603604180374767995173001973782097733556053787811028124415090071009828488396921626923923274150695378107849562872643966837347745608972020230338086186905185094442264277995488903051063138490200276374639871424674943826125231347020846989846894649254042008277331086067500868761165933133692747407225867717992420861264879212511953929030103990877424391691999097130225687894907155872956747958793276990190738828730167536857470954702736470734025586032287214566803585200811229190189674907114615791823950176170850305529821903392331767222299610448913460484042276548809066858222312948565260721239838355321667484381591966179604779828196445611787453609863997960351060858499748239634078238696448718661682084705130438644859171974486569004608132498923396774316444116219870429621438797087971801593856514990137353720627437352364180128498723938231421402600821509718615444482083197913168881666569342220575358950724964387797558812343906836684365366007559412263856700894314139101361385238311740135887433397537348614556855165680708268324796078896401980289927249472627142850360320935206039254304346593226238528350542135105230824782620768737151912665524779752704597556306392243298127429535379732491538943238066306853159315254796669564764186116455576214007481931900745816464902180352881413923601020923500493839941304625331922693528419247709866810099644922759672494736756013147893248864829591014764790220381082864465252392566704159062670344335584247820048370749796414587990880223919805626743478617006568788242249777819957782113144494164767507580859048652275811866551961570298020602246159935805066469443505163366815904420000939458308036332213925734413876322331651374158008487965897728827317650614973420381970928374808796624419187555022025524756365289072103623945354458824560415584614191676189883875025268865493163761664145314721615059310971257826715256082394858481156175883258585462216316283871533888130086070456118824031172995786875369924506509926243011818614873357616422061454975269773151343028490692114503413178444406073585719265355330487791226210792431461640741166238696333374212552068512974891941594069843947441353047251315371710861304061786166273567619129047886306494586182427741448864643702105722809056942399889934932336977303598250220377689561407429974016455250865427067561242581301552694212077191616930287738241236131441508705992245493166919827880961040803441002934592153707082329981583445116600241088712956679174238034652649944847571717360846765564280498991104296529993031741129608501344254051010708628542127110656520543592793524946670766716659655146040496901443010603776342326121338167414574785794596285443472397202459904968839066078851161566501844519013686251506888012543516506468727503346801340440272340795110148943216014345339374631178704957814056385503717056417254444101652513200175313943187470299085337960618452873027992111111184976344608711859846253911969675171407747295946475976519453996382205873132578465167486309338679216341749755267578192344099468116450141235426871704430386901441916781141547615320958840497139375755213279380828856732086755132513614823989053622454382844608566800772804903885785847655971061874898902771196136196384945152286013287064371920355714679823697285689040698999109420275885463482523367048906683146026890483800834476689316809697822802576859400122978967559014854362028326972988315456986332797069716401850013343542765368345151629178849413224067632935984755389550344129818457253627911102939333748647248456248304330938865188659141360180110041768675905033153420161455792536821956239418152811404394604261483932089671188496650412450326567929001728448139714229895464898396324743949445095724608186298902191390817705736232883714761854350702349725073453657381754920578319069039528037376089960574338954921817522007576545633262480851546245575303633420902322771821555095222309569351334732914634928982714735995322060820201050474567940427339460458812632566591684341142264228001812937861347304977249575144082460247727806153241006439261193993621173166539290881939556419083810123179411272604885224154720269423542249119283191885817794070993264187523719906922252382017688475893661285557505836811710154317844266573191951651248065077432470832579730453887260513213101295514539107849019578870325934780266363539548318121391980648863595137091386771798261759466451942497985975982010853123539948578602497372601117059649077362367001982512277715147956549848616683043913893876405078090300535050362325214469444147372225887054351514703132628215998867690808865457372807845240799550722766936855741530050617649667072090058311259524561160999493185824395838190321284870050314546671602268167683376233901600796228502984593908119971133558962344065343462096450269660831561388849214250543323118967599991928393173456685011500205125419226104500224453782423568936160417159727185040957807568904856641877026972093896491819965346827962997890026748354700666790117705218769328577071508034038264406420804380129001460824561755957499239546737061623445687498449686460953608533779821653505036346932094724722295698817578008503901309658211477176368504563746199176149014208933047212615864272113168902207784396678090997503454856991301293403596685227838689566708584937337514417794858065034343318533475280331442228574151432886003043564449721367010987309354791310909415922479834585620535206456407240705011478618437819496360354660874845643094857422865193906325345569896412655018346491649638954381310103852003141698096515363192351779500480354497100757898950509786785178920070453373962984833363912607907515835556906708661814403713078712149834859146444143046272428869790917728358113194426568388816204424096989123308450749795584123928395461160819524034425369403354432693098147635128001997164890582432305892193348792199658011536058446042165623124940144565321659935100473036296596058012216721775292117123309100978381083677007274950160097118423705038879241591556310975692076707136297246315342510146838160307701873045438401650397259424560360481713943813908588886635133913915205252116071231269442569412495688373461626948953860858012100281776999180323139888486271947110423879609899727635718243949118109803233417083533091720124594563920396793798609191992476580705155310708331402533133306466489973297524094064825965000770037100465529809717133883223471053608809584033231276558857440120560721305194125288780601755064482255800489019011569922279269188244637128602656000522632417564464261599151356716703135294899154502312956591584393231592479742358251449645325163139275895365083760433515270960865199007590888136391537916715156304078768988480726255288237568135688562484148642090890237644198218470039139780054423721253463633888184748455233835627880297530436922685972815113646533580037834979153259998616368766702316089112521250326617462543592563301194539319667197598998435500912261278062308284944956873796468740015684501158014415828197967691479993300953716336350847065781821641026190633411378512602543326730659369410816012733647048157556729717633951139826030594459363531533233467670833257524334363027195181785060762372775750007033397446314519538440673766818033712418446320966897786865041020161925894714279909045669365340062111023108494123499588375189795007802705608575212396828448222332178344051069807101961674452540924391090082230410755500013667149885430897643622774010018534767873444501580505115953572216026027277982787738915452885629816819679648541866493711981870198680685889656583295053257766949224580161876193117219778894190225363593318366248264860298294755160304930820970399860692952697513275942761765989459508889621340927999205790048314083951373251585569634461039611649526387270230081350048235338539183094660990155165763759714876309038392290014128177098775293284240325978647481733203854686603419786517785999102562952403280561971892271417752990683211471633914448535791235172689317437923856211682032598337675478204432856538730328440726858422690606277537364811297865566048345822409224153074072606634217089491395608375058547494762224504320802027827173288700402141532547761235052014228586008057364064904664014626319150185583836391635563095371993779698594092725934055328475655583059415534550550033981499595248893192227719863454256022816818541095461064334197879677804509469155691572954731291663719815856696106585593003447649531797036345953876636823070200285412840480671844994585627570909770209963348212676469945767466301686543916921776091820921745133270574419068063260974726622687645035564240921221841724330405009604854056203008392489388437199758745118934081854166293686745375948151845807173212862287416141093629516488491502715431182067555194056893178466927453775901530355231664874516054421182755278288505669272699386059603354284843286072046782585204062561968950501426778787886655528246317920682609421638867110932793932619945730722788378453162869647108390023236711737254479774078852837414233126225354217454680215712135099409370864002607124610980717080815310306828324391972977048707112904277099679146235359478257855857136877910584006650496299806343591408701500440127699043328817977876089139560320957172754525999247241622513108706205041448797794078562549108012634514754397246579365663773238573770438214939412749852950864706210031888883102466569342211330733631974155002462779564534444057181111566603706540018600895394807824903675422307081987787868802158678475761017884215807490693358386462207234472107763506865808442929689992835186168275151997424593673544769943821855298200457850101262827292916285447328401942231799059028416521451801856952352533941696611126791269853456324845099592323502408998777183649111168219290626969663746458984847160239235061053571858035829245201402593513812263053308765912256324076913595979342474076878060115468665625015837907344619858966658911004222119190487603197989856592491837722084106281436833274909118858503462485599784655459004176623291783821271900431156286383250191281169041971956306798179531990324202452309676172584738508042008534176782904948311251449010873208376854777631826058418884975256435036538682670866875901398975076800901061320664363418476557369118298217491031241131306059756113535842092427784669801766391284303984156392150890105063914577863220123300563817110769380633969542233343724638650628533664567547142906837920359043252504740406271893545878522572606066047366215516995392752022513659374865790495803658655428382080523198907575569964520244410306363755788916719286831977931549933375637229881294093113229369369288147163148965678270336227399165520835051515779198769125569078853266042464510102096614535483452725368148097845742776694471364186610296493804334505473342687744816100939284135697752320894634506469503609347430280625861658995950815068445750777439786988813788423325924533373396508321196776110029739831367559997658575887677367518102168863624282242371373623089741871259773893736852249539610705801500107573101546117878213803783085082967066347002726408137020543883176301557457651884600087202700041543422013998059457126425140520448453109283538939265801414549139587872416385039548785220150341797072510349761868863647434288998211830941979852294185872832750515085841460300427790811896435608749960504942622240444837172851183520895566030670362262098791316220645523622266967919209755536531898781750052733275016780947819326666702871086303346479920091693263289937760748097112179425862263660867497964753925518037174311569741807805928566792948368904459634715503847432372186973049598262698866753182486990147091458504085117220553676072825251304455417881020597263229369091133006021952930572813299380345117708776834968117241989566128063211561191797509522680468061800423392815607169262035053942442450829018769441488380649879994158000324942582283115196441774278142177191521428452744564659869544554161755462495538209545658011327112737400507214973510203730392154639687179458999745791825825573287686707388479267294225658503917529472859235652814298177210205654242292075798272601852910436147272168777828759716718469620730175741833718955467748650043517098230353674663751887022208066332834292752939637808171315104859828985746413359955857971002619614285252424350759011407506052018619405473281521428617669809007544157251435090861246924156298372835345698721723365097225174906074770468754801624396541038127596000691120788143416126381125582067187424206999689168871971260466354263633033295082813022635488286272700247558246657147986623927813376789978065786599309290942948555950430307268058974951892662969946537497268935643812988910991084644908768899825005447991538092976200652492764363804331014567688504863213580883949425253825454375168241983128882567575587619874119666998935273118576323316450472235399265245955108495869603549789603854270082709937267817723083325501863582826599848727488070158053560918347754540639696503366141363108202384310271368781683945364108055598741680665571451493852819632878426467854895545643605241036361162319733003965284780524291121257621626190681913819173371614038141110650314875275565962898094125486295273794652708588250621706512633195399999816005704744050317366456832388246938883589738372047547107445792408528702344300307922249701770632695821840802634577172343292805871143894396284688345492169252762155682815858212023131323893351731968669315256743084689452543439242145500931628210523282014549567375737576648018843473154218834208800765411855231779864005634813160732196818063432100736599239873352153278405522329279878289850254562691633846367900859406635980802192958852627703626390736078831653654127570143830178882748312773312863708798845680129101022418684740323013172026911002691231197338728730528019224512654765883383789678094178245392373344142589640460662447105326991998841846928203106060310266029596975674490649323852723948329984841153229425235288110453560746401314482658604613153137941416306360348578722148799405694041826831448537284569511275163260239637526915986261717102998650448155807192882295638947995857947649459043146013260958539760171269396524794367529633321736318830944254420033071524111779721155344206258479389615186084951541834827830092429415308433923862399593959381552526919435746797907696972717961688492962016089744462879744984183640744848638015081456565045088208408806670036892667949167310663487486557118055717024801997934304540185311904054907532138487044758347024478735764775701009280298814678438170727067921609224786187556812054320788166294037176600008859365601908193935527497308930535380412525606103875479818943936554665989196633629162483111194148545020358959067691044164058926003711772724428053646063613821504145246169229628992465253362930812388092628847424029454002416920244252972202074532251447369095111300967111364125937110516091391666574708868917347955462021112156657118396187735791380383900198678896301407409171886263238737836094742144039329542394991197304885249564287120573988275392079006699373898621232532604246973865953095962897171164319592050006579815612442207328263883529766346888220165973972029858298154551595247047875856949137842605089323931451875035356636907463339092739255594087002637470911849215175494429166384797807496973035821324298210061668170801155694144770692019017042895791484087371256116554585947195264197248044646441559037290075220398610079366696098214244787434863547720100327717661316943463993509284222587263045799870142778814848248287285097504686495760012887329102800203243601712504445704610139402732208543140643965343991726360671342880433418645322369280249670576987573596467544202811639605702115720093261427104005493867997189246427346441284660490554068699272604995988961763186679075038490385435744778869466141385214445114776377203088779304463949490193108876598757170417133240741541336692183004743847334366366561871931508339947677159787715036838684508979565790526461612063202628394372015546269463066389908181501825479189805892486770974372971311602518249455602103154925162745985234752747115955808196017302464501686574278032229016735439387756679115269168091890522513922999279132982525171318799035254761774686034420533616871301472262737752566326620554498188444131284176842150805422485479801612422452762492100942857273433924742248085259818433952445209142021713090390291079561928598810747683422294827483077876142566964694885946903394211432983700170986598590336907422520965251039550476300323951543815265151412723631156083372345701599433985762611941043750648481809870990935897990558466775843135228724680188001995341507948896177666331794538809216001726991808639641183181882386605413699925182260570403018386238063407083124553308791022849362647481204682231229641328118916622345818762345999109524175403515478565598845734227626726506383819935668094964144115685787739372951390648105896135910765818878391806256966750918212531355604813280683533260068843970797615884792246670516105752677480853207403853244383881643785924737256831705954901681452392803282374564780842151271157327848979601516092704209220216189969111161968969408083213589819721480373158377486367999907243187248691626117341668277256773221955716598135665024754490570331288150826845537280680994524907542923909332488111906610106160237167699504558641210891144052542571793175842757621002458855781753532149399603040717671469991299950453363193100956906663227600373581692524144800998214865412000436706888843961885670402241284412245671807808365472862228421129966322176855130511285331607892347612853678918975922182490244192463175143206950550444540669336955828965894816824086496253340040735994134994091758471456078707795075120485835310302968886607249030179518274370378231510733158087977615369745409608685278755292898613393170044823087553868821469334560538893015947777339325196600468322355721838979728326581936958225925258475504475461387855447696428531485216282680153991084968946013386124893786371055758402692706239915636722835014006724645188014778474583258691160047791644994359804619022836093500394696216025616073133492924097983710754543462330098870806799096188441505143287128218812638235579629187191255131064715738226711127269757649554574357397046876882155950896945188542767096721475021350139527212571190350778083932936952149393854975940124310726579208937624489284785877026072781254727114726933896959413846513314637820332916581113057243044855383442753396685942208181108953269729963007132917467851088807657138294844193638817668244419788924370053435981757227134576610998245582267367354941427461919236858681786694190394629303603465973683216867741436842110215388338968064747375869137560440448534610602602064124127164133204017534341058966787707384724992444204541624274128100166022481087942394574308603710990316526877270622538192952894127862017471407007436895457063760021782427903514259929150264860265648414760162926747532826967243737654958979383252072801988368657926156326740429940150233411564100623354597449672164258549564278961646357678046479448676727790856140874998301905331804360810209969350209034203019722689425199649335934731515233914361107398230200276648587108498494456690474987841156544104249324112273302003454088554372252658136290120055875858154606167398773148960741586962057892045800269140521431129495493808195482378304656361170815900943103411258688722596380060813590510263063294489486078404737006520585780516142707327939518327091114295804636911741599667105371842706423946634675492580449441593412396512619566436869792994267806686677480307732142449421515717502811970705503838159581779752803575256161554544605921808385146495763105460721595003899625584439019898784568933288254745521664462542967364468105141514068930926917838939071474895801329258045270522742930985550706489165876409462465011524414492174016982102510771663162518175295289703192446669017552671078362809575973302409652701064835557552964395877803299575817647302110407468553124900216651440035979618291926750113231026579302628283114291305808622510614715136163705076388699835100231017072283574140563765232349702949593364180832774325673655042149867411756533268277073122433281051113231718110895742239609527046601113892247950993006764694307021394521503905049842781038089938925561711785413541695838133175620231586938174439992028872512776331888319298718051376301388048804932199694381412412860344334992477979186971937947291081248147820208986185794281378617906864935934587925224107857402454193148842804104150972759075625037961695446836141174307584729417891824886856208753517169022252827660774888130230644974467342146784440460232644510263224457306654855292152606092890707184883381594206449476257110334439452999787096003837546160567721433103539770215476659305796432556723709969004841645394982393271728467136762992591971888763688013544082591658621785633110888926062446689001805097573822962749259827550433585225407864570106640357281802763239087065742569464483131331657426010512587137625020930204240773641185379618395178202030930596435158829495981105429228195340237966734165831056463507873669684207134184589609813871241555935905333629029897810109283397658248153347033272196717396175541993544743360790552764624348449165429831664007616451163325396297279720103351381670987554390760687239989285415830093895635271522169774111089913035965809079771747369366259152102886569000282799420470979141762862226323025815236061938639771760474831741196832607211197444082580065854986287832575734812228070360189594270754513521644545044018516334360740192803143716886699057739418556700044446334070534272249408836907113658937572442571369317715008851610632019976837724304678983965127340046681007285932407970488729542338818031683154157844987765014651395444466428888574448058063639937475329438569034324490660493507995393893957783784671744071682879395228518297656153889709220841950624297205273345358100976654793605320864931325326850995082146888646177657889981834653517460617847203643924632851516225726113973741107023979833589051456979549181172082317405939592020120589701411088681109272724527746356363558979797231727391127622832331564423769855418268363247087124843932618067480918990654239680226068006810237273244702138217770211520689015813368008760623642877488959086777592890427481066617380326575874254167007122936861426268054459108598533754846235591795817412170013061485969259867390380150135005260230682633396897936976322355870554486465316741626122493483737208533516138619553086765515703325819081534127314275099794212686551306799401693070379676694565565307779804961651562566371391445682501535629457704826215413537810459338750091667469644259557662225734366869674456564697772819547168624664802491048579226285057712580842765044883636751961285720841135644322299820484345537322542652822378842820210690138275618765032001168106438582686352913343035206189772154843191178150591408772842706299521442443647486990703412863860434594087513320860308979965467108152302841819259041845649143155427590543736899808893992066129306023075213668305087455836670694900754071175549296226204101979674674438143171322223105446666613343706050116550549157745187468874377661686373941303850446586117409596598072752705687529593686938895680246969948256154268654826391653028320577463055397165045236472605051990832452417558245825721234925261276644604707473462496271254445571776216336483680314820260878581126062647617737067680772881448738067500504807722859476061579291810473615409017746107144979870336575531247285408042325693918316073681900840068988571590496660711694720245408352015947473553551095409436939727792337970131071911627252164865517081055211212071049576206344232248761935278031828677239440541719084716351335057480838301776194021926857844158435395839642362049722067320295656818395651858661076274318253990983340502500494568057698771368671440859640289736479374899308566059427662962640793359582760703461393357635039010337048693811258011795922298912362907685358907179318401471728359704549662075683502720486229728806225067196862832248946738522249400472958003933213677814917058568369330667971315788413400939080274313204360108348840208507661961352033849599328710365299093995598260994776922433028591551999297597913800135846157853240135983448674000080698389856859139121412304383522953602507554537562068179750167038575659116332199438278540893307578133552163807615330596233343830511088718072371323683518750320243806665818953433505459095787589051469140922073258054102411057980710764273852408845817203544000757986490132081295885590607908216792030338778612579596216965962929889419473299912777829778974003702381597981884994830620578104592268532738713436705072889811075425291790901308047075500892734683945914593747757212579851360144631167918525164827028269263357914743417975031213862212135092646172295301215343716590555452577343115035574271587414310976964584598252270657286731823560668380914457811744005621887298602167328233080819135764359588875783627170030027599686583796820401684146617891187107147404582656419626318432364065084591464175052906915039451083972195111539037816964185910216824870424145521880713045698897694466410866080543517181601552933335410312925112566119789703930863826323856323030350299211147992738128319059404782125232424432078850706337240316556166447501883945355981389110074545483323850163999481894743896716958667237619788047404173765085103699835026781319665410371689526531250799471432360788350782211415726340683303790543654123177589995728071060111664923273414280349148982681295539943805179693277022138832948807036628252747202862418191972253487351916091971862715137447125204108711732429223731055810437936397375263085169525738946454307509652261577408704563559059575230629768650402071117879481247636793568553526917261126476481313988964292173577797155587452943842029964594320746361134780492068731581754038095466048305812856335732409737841259447811823313139741152630142528748986269141707283608146696790217697508106399604987717610697041965158992905698181195353010712517422447724802870721461933271744854774235705062211245474616570788567394953556470685320447934543827214909880691652335018490401165302317067194288060970269710520137055005455419804144384911451129662116540017177523927475592672589704364401439151261388886532618597458295512679919511252133374588725352846252307874894363384074987418956316170838999228791334120723209040182179649997529621342557337358889188925228090868726256745295108848603733943273399247339290191864492442504539059675675893253521869721180965787445644748839718945811134799003010896687319390957811543052200030613823907533887579117674568322689965390921820288039406307364582815005443407563936962253394824073923164004215930475335758496252252696952856744104910475743676475978798473703893009703211323790898056235610089668235580144292892199444110017669026530721363722747724260274661802943679239065944816640984266822569886093230741527596669030630502138826373132318699981451576305787500687152869154637289681536929884558431448863808149246507989530910221499049059917529534780615301627990456018480333867263375777010125465839713787160453098513352433102723898932253746667737231109425035653522142613677427445946030600037550880787842076037118206294750223390705732499710445757892273247443545687674761350392150049137976527377594167682990915881464549784851580486512708432478265146127103874919277254970979523758851172320796102071160650378167670550194156567095270196027051770899098932988692461692201876914748024830310126286939500179131741620272987361222874302546374779639503238570264616834464936021744136705549897236694931323073603889467306819367497400595047090494055483993348868854553465937297275037593141434353648836425103335057811711125485088892625345951824316162292653748497255945203755749325778225157220982216389481391588314300555444768888314427787985519953919091709884441792213675509223595109927016659895065389658115742291225208329933032098225736801739995144592197010747247566243758394442099856584490060604571535946259166687010106670124723867609081960551166481434384920261342834526942127053291912007821104045240662889945822709926830461114340481321257435811038415344597680935109981622888579734237044398429002847703009562394689734409746597511805399650196760783992524645550660025953378851757021813411075180805573759369240790839035022568213320349063976799625389349286357285461234347526445116980683947214000207277058276933512287457723865659507062304786099744157133912867754689400801007307800556910880221735871050589392378847002891332313266964128705843658440888671777384825691998469010913925910016830745441150461679358924871562818358170331916372845964493151340013571215693042270274113218266953380317321470255004545721834739483720646031212519180358877704795873851153698606866576753343020957479667066481222295395452454607137105012353004564983722015708715413514184387496917336821051448632585446710741898835847280851204433609462779270588985085617533508961928813793627598969060324328099573805026303594712154955796987717891736673897662325884456455754667938266772256392544453787421350001051569635324084269415747801882772037624464418127640276375556326505812755969011752417642827656834859496887441362577771293781335426980858158065466084948938126956043384452791855395862632177712952349969922839432864798836401252631406218712153274275102511729262175245493807873570256808848675593229406791968010641126606426689920814716617257188044310610497910669411318888611171250641047425172042415390052806424430692992566635191134110300381124002366176037608105424919879783956760538277841845445778187438819830645425332704584832921532448618499997728293890686909465624013903558396805562657491521329584466697375681448282520363745739382565413684197440855362710823428000604955664198668685392667191747980210897156413350871308106538357559408838391384797339605516255454371136676583714644061526792002970887205120165920452311729298458446243104960628309815722173510018551214487728070601317702442523633176143967200220137251236960672003123570245533672439176159543038220878516285525125365047067471540712138325035292771422130444309984074942817833682330572454235399813957663528994090579044715530539770129543208538711861299423548406733773993893209565246368877481707033005314113542019172175503063219281668637035582196469824789807419737998100182699033070297992410578002447222522203535846452808152758974627878630759669189760916061915578217314174629546973541749875049343278214270140202766656492555755915130775394826596354092766765230727438972091704876784588434943343531582308926949663514418087983174098732143237245202733878191237279017816226410669097961520412053128176350109214656260985158354624632780175486031363974184870088731359133731870144608799106564921388343081402432640887499333777290741017873400154629104416284004166282803227046333566790463067595362509501869979479857369204757510222694197403011328758914341024998482155104180546894303736091679211899451604893110121479384388696880982399816681730086389086355396713908200972485944513873298325152090345808601016474918782716541889769849296531752840129620823739348244845599906867220586184109278505224570197507921538657725689281458857851717087600205537971410497578138857524826406007777774682374303647108837045104396866408792460225875434042626093867435986386362965814030501677076472431139255353542168335696923668733024903920436075746879016784399504810499348762920101684490942647048698906620929227981968642185217004065442209019607774751598885392890421471722554562281011332963012808762304264048788493188702570237121932352075972853753540940230895955869909905087486935339941693373019332685564199575790248953641963209255467056527460695955021938182069653220969988827435491083817710943223391417569373266173093099998358507274138657844108954342027952932036352019474911061820328800899680911395919059515525480001956051156516864815196284446796209462697283312604084456876711077137623099812729275139109396141670117056573250609673140598416808582774506463746572620472092039357860780595798283835171468955304811922720632466338084831770858045817023334967774255712913952899197333683478889853850642336288153892991201670232360165554937369731712046611624734965952496399447346419023038570187918391202989266726162974882238354442285825153787738397507012040817936280753516113095516814751719328405745888445173882853224034366533649535363531719621693656347912597415571854856510782046020108146559505905697217247662723658430286862153936468601152080889143438590610409416968402061464946840986783488224285678567185092584479758227977920486900775965337060103270230672591484278106217614393430414895002315561587605875234710168897786253339611926154794638400405002346147550438241798081947498779336727734883673254155720448815237922023556299972804563682397238293057965021026825633456712826927752667282060892419844252064161492803671674018824715325406563071901210510537887215937212460760194359591605801021372476368529473231222243994497515588397539865067103471197534610609406979225421627341265506025599209970683792854759590944555921481749596957753919206574945985510759633367507186077467293588458334939367908231046839418174020034464645349395309904576613260678026856911068329484746208791807761095422304420847238372093452916872171939845931027954584773529155081954317800582808271027081808922608351627339546990992166173668734617512651911145655932981088816276555471831264216994451124955334856022204725086771952312242263740622757268960583816527562609049715709621838671233411305052720396952618862831117175267086712331840543344005879585850654709748929444803719364337531505742812106488468181123078276630679836033500356149135483414949932095709394937612987688810936451344616038180712078657666411327983702966976529640465939145735987988387868427243040375075020327048333819275072962634508842223084199503063576485166881070731139632440340495222139620486498799729967967443287027774287577510931930603516953770681061331662747854368095547411727148956996618868670351083143488429014755867086898666464568015204523491647607634872143446822832009528344751442871571170852881408796453406444320297306883794149049794207805262237992703292680819443627342821009401330447456315402837831967041315450722108941218142861103398119681228435874112985054067565103869448053179390288891796755924216372112296589208643890969538278135865726331444952078312645814743067055063865075590322442038800354695984245170266840211292848602832952745595652535582176561147086696808009059970748097607879850023072666970500192345927228435930718813228673516077010142021878388537022267691886143100052770623810188459493113791121551093192508829729158973773255241517427200290909300144654296635028035239481251035413801993700565805616601710560293564358930266631879078877247083980129856034042947886093629256747649449043079677655009279330620115863642677803671462482666005866609243451986200284074142921609733546921853870194199038685406645445178095576464390675375420031193800561180799344863647485204152559198334512782498320491931546398800027936156364402512713861149164870919222499765051328758921295079702007754806915656632656872522437293554723544944783512483206272111431848762173248111891337232490911999325160365246016680448815651974717822497587507785695543897246327148529089366639617010930748944909335291809164966615165228173481456415920742646220951843916239893628915568551771847456272551060631536973244785397334953021467781348852791376978730344932254161995898759702514280369317320901950536688950758910084735115586493002440379133956341348647775763909190380924447473087241318388228181043566136636677371073414210026099571192840592611564405288064948217032933955561830256147233279055100197649095459359151070331365243666187717324741861384830190473819369082891179488589451256750536102937248607703032859548561264150460421540260761463691123173006334445607650079173281318640718614928614249632497861354562060638036401857301122504721560113144051755938277287177577125360974471535022989011085631894297105300735466897800337764053825013684923958643705816631569435268758837870315372630408203437211614211029673775173630100857054431499187378317056524880284541215285580191042819071789424202325614039558576704712038103880801723537340906195518914454583898887347070391298413476290249489869324780009036927030808184762182579207878308644294393396902119138400885342738739879873625168907882532576929745545131575497383703874349225606994754601098554300542488708789280030074399501019486439038168011459147051298551685372202262874405754099927655981026708543776582699310216223922631377424494401874512290560317279655921448812783448829038552516634336725619729239592941602378449810480198875124372852057164388988019868822908106842987474613641530791719690576733346001137807275969604580180558040238346467129549110931892066440395399103730357377117788453965768447209204654272644658927265951563626893412898449154416629624760191916954521935496153832622487406295589815857346225831634147203430913867373159969825069244722639353705239935362352977444178258188232086998623264192317232767156988862711050101224049238676838144338913198547006460463612578479465266842755475593860957328837447181930916015591483214990525217529573993807020155992081850248125118005851163893296589842168421820260135177265927431075297480521463136656886023212786201989778013070259717311698661153706048533032411992438790474547133602249522237656091599394911877141270980320173739194335717915762790235969379367603647834560391004784398569570436802832834106191342393679064379449312062868098084300357298955734806558529632362926729166685083226923266194796554447496517313921293566804287952380161106830369514717994769478398846240346732994426882308343544054222131409755525024300439614418540176257603253272632398676068523356892274931022399454981527155377356716111036339663323223403863731568278792239048677160502821057801812274387990510890427562200183286796750622783038761347622288088877162386792164396384382857635133811242951631019756906523206001045366944781797433712171191439869845428700776356111909247588477256888400657946950039660896942585358969771598644961199327669774378022347470249459771080742667850820007648165829112832008815627750042596069991550687582701764103810036181193008869314602334210654643322095923940712503630308217202160983536234042145658072844377445793116116279074760598739029494100335625072449190036251981879971921623028579073385160663969028933597582986732671526514274087172062888604259877550521116048819042388634777577611161214747968889508478149811360844699960761560199596882252958842536850424356194445818034409523156149127080211692416055790572367092187431890908602968861659376607814019295891617154420641423854410494316907079678488366117970563812666075617155361457876896506921872759981707064793826601365503459485547595970191096323661827012718765504333686581485470207251226577198515251693588668532065065240642172801623320279690380354733919290834090083246741719467831647392488029825986652798909029186853989795803804499628274600906786278993222646805235046806884571007230108921082360926791697868492920104436091996854405583648364324844449207622971381784597892672829693590805764774095249857242069597339956552846071138833373508379941081846032291050795630912014063617960227077678203527508256290690365484412107610448124597347745877859529854167860974158247129507409318751190811029570171543930105984176753086635424580635035092121580233289772352790732727407108751706336879194020983037921080401392508053214152071365001509075653095708624872778627381003801026804473708273872652778212438452690496328788053569724931229938320079259334660788345893658513707048745491692822001792092727533435615383780889775062155996738296250494863900175243285660570361941902769504526099174622469478276359426437809920785847658936150712515901493967406661230408035220850477257589252258629321578363453316933430129580941719709662356637196890128825427194996984790134858182883170942534543821206487041965080463753998216417753057163308957965417205841660826213805458128283731779179280933644211352233935276553924181513984762089938782195947486457582898018439244154355496451284956448626125443977095489466624676681015210069438981057465286208827112209990376519187829608720135665909680090270615946559383574203681020929093330936724463407122899659053743626620996731493834198934599432494009607420261700148201841258100241395549140167256273812173609243452059635876721038442627143977453973627985057676443492346653105062900143498311166958792474865450415818449946702709981749277762115872175448586029128041683689916958570101282982931155142574000178980557512804253735224716039037527351487409431853773115524894909743781536188204536405140831280673097916170481818644872994674572323804169218998125486190782717364043555149695106086284542582387250170134873155478196775016561683552474585582451179736483193841732597078145164732420461969274092327481386130126183486987193124151658291817105848037301026954320569879397327775845490154607439862920460271642787418480293691720342761290717496389748054193159952602761659228158552761095844544851490559410516786469486727411389245604216559732258463543463545049584939172867365329299171490065400428980408549879725974794665232613943249590419794099469352758758944123980944962736316517658245699156083996995408826426255537625570731610836053359144818326934219673594837206073628910817994610802466252331115927598550612047194957483624016722727697703033873906559469915677331314571119448962496595971935369493295886782527510022043343047810054592970689077752468360001569412768435799322456393004913606259739789338579656699318787482754336250758765036777681471027626544543288456554194058491160589569328453046402022450644536704143581919381525016411893393787089032532170581258381124247604664820423023820601080522110936390347900653476949818654574250019233229872173082588953237851268315628446082698322827933186421851408809198267397808796777600478894444584442763688592745808608883317028195976837794592631853863167713610248586465876868279055059447096050073360558910125003750087242716140221065055871135535698715514148588429261732164110277064451955315660478914857302051966069741956267901178641828180950367798743340875386006519552456117364491734834239002924012581449345001652124646080023977050238470644898172109385205774076317248808595884449866467989282565581809130520533691158392566732906757286762555874145422403159252923313538200005716253814234632732151039214726257754777559212707709627739172910464673227736643391647242345819695937441454687154546717381270077349692939930874270798609241732162226540736117851343167843860342421259439816252357351767354782189443510418728192032697360437505160769212236651477435965124514999329434509771533957703014355133588267847394727898620988627849297031630125740772497035349611784092899661872604374141958066990239208283192697845233860048018738487978243079444439064939684660513264816860970260118682216226867028742076116016802347942311908401728764009249879849272906369782098852169235581935314220632254638379598623862412548822669328015168359316516407096350791763038916205451951853011982321713405731504695780953368459016753384083250149582763750897601548305132735761083421405417051016096498791044293100495543585633363188682416764450353204197569582722143228592637644013198709312573865674735940073008785173764824108070665697456685357823792530658868993047911250980297750693674968293541854724690742471119362261384589641348447066621389520326908516092160204399511280263171791249788483419232910650654746567596170441005187163520282856047228723215097836430752833148609595538433424775356993446917581854180706743400647862589658284441263859879889214470200592563278794329753063947357077084492154045140097659089070210684150337815659484105800896931036096240481680918270446399439707202960287048905414699668785439791198195444676584625145798935135396876208916769057571023354091866244705805700094405999376678675046640901559659080480940853206709222045221285397520455976180789126650405162890725907687322350950118054073941833351706947023281526179416118507786252450641000721104113997499628068839846076582477159825903497531101785472008490900845101419582921448516632918192082065695058211778744305058371709125085234425613494683668871361537179570728730995357675317366354763275120420693490016553450437004658066024135838616080835729286802365815473904710904637024634467668242673207738212920460579767205895720705175519990514093192060323776951985691224187330589477371596488766148324906055815072543797133934218601696214232282030948784796048677936678907854849705081731027333165416977078298254677737236312972235329314063277193573885820290726675434903938518349114925046575844314114328751045522659832071533081217289146670772129439489060722456392360916555209194121436213274377388126807348371680029554035767898102180697349444264073803297894846869563025203013906109890676573903159697409135536778166860242931057611395444520323910963425044877999775351216679521803528753493740285730526229462655965783306688907201646025924971484032321799542932398953883839360724942264342109543194957886513649795958485218054490307758250190567036729352280136900814819929918563400113744824317790047495174116243935268628168880365124562023345196837537345947533513754322667480815732955382135082606134385718863193312923730912360658608484430365828969939224661334971829795516538829931636546998870603390243329680326227227368625667494144195297413146895661350862449190375698166184245460647894078305537681040761494164756620870206547359059249602706229524540344947072697537738168902847155246486313755159953765046186558445616572298961414307902456131902494870927626728917501287624222572514912536991964446716151750145080521362573059903282775928396465018653457137584036483669701326650185033110268595421084560460743915191791066080890912448903503042413974461322970055732207973805363628732213681331190800087780811182700654134420854556584897982452327496909173139767165879778576556865686685591216901797955255705529134591565003709181533329715285042098285649459809807686268223881430914804268404316512889005816969826608197197946783077186748543392191916132670315185766003707681625574996549327742208386632129964666289409819252289719254122220208391931625718213692109433978901788477478606808828794864568860664940804408903282783879787927998571047585458421746321418759961074198747094186563708870709856030425291342843148157558841623934516638249901421733821566649079904058698041558245065776901055591156381754375682689588046670765512199625016357062512693422881032372874354853449370112409753686938003529196366072033746500182063073947293176158163858834893910844240583724243148006762135335811243867271611164781954449679154813795966006104073060647327480555494379009972058884886163992803152967511449698118039455524960967375343503778118562430900211906000908028165235940197659089194326889304058107737685659721701220261992751734096231144418361418265190217635347307114670108169254172368048688999912441593646608821772509000947781928298100585610106261021670797228955709180981668335180167710301997106002413363296510288265005108491086045817956784903178448539757580815812205537773919777995149221490633377337352760902466668609519709579180291072563496528836335644785941636305557368865861590027249388401675853612071576886722807950468283717505507754748406965511627048138805404096970570708407674427690332476264095244042690685587191724053677336827158792872618926564240689111063064620578708650195584846535850016241407757812202801662946650453351958795427689145545994795382771761393541348886855329801617415182883249812463020814400722075978230279864157406133983247680411342078120759296735194438626151732308573168447622793810354660959015008258858858510752366670422664248850744895307112359308311680203551022807934276597268165614669946817533821454443193140058802437364748938904632345702585364114155145592452538932625100911079124384970293444386179777029899257239421463904674239466922298034538137097461088007688345349733974508434158758463353578948961709042676075173706849229896900113058938414835965019878768464390622963117646630287746864737803707186010615038872868890795845836779955417436019945560152209730278921184842243444255784728384455584998845714757356474427225019674533584760114050450819183465268687248863257807925828681623572479271801436644816972134361457935125090310524889187209160112254941221140895711260720651437761150950033106356435761119236822974657807651641408136430868654938027993139972300348067306825170884383716353400398400326856846288823701461269589987752162645192932204206840514288000011019613759609993906969480140846773355449230973018811223295376980524821683619502840160565261753464971847626239127084909052458859139304685099368383876457065477405812365237654216316335889759299986804790758930112822064082472164824690597659184680611533395588288655354018333485087804983999054740619013905988862031390564813744407806164780545211990657398796999379489228073094126046706556742060839266809320874053910412340277944649334104355795416327920136180360486717680497336391105376164499800538923870497886000368738464579348564566587234323432750651238458931525004591490341421105611630577147967153234940489459529111518156669295497588719783150568815548297191645469737289563978579972835215911437883646230783573083892790407895869217549421040972694004138935712226257183387402761510655852234984724430957095024484198687560633180423242385627046309991672837927152963836283827470090856459912914822751709837444380339444412369943180011691272194014098231652170170669039697320854156589753645700434946141807814406182228209381339216115841950053003582348824230537286466324005189936488974719444802122539750532601183211675155538874451845619515924891145252233246623532569647492627370586162497241339720610649277629556856670091636685707942760437907555637338244280494939037275644111399918952965665349877032561408361849713944487391450281352512794239784457436364769252250533741573560968137710988572530083971827039474912094698867103498459252212047632380699302612246226078253218746965724614990683829605399521063959068763460738958906725438935161015381471462263649819279422857857938371608066748271111065219660988670238693330357196360039778579544377505653922006901979764921113751766072685024854783474936749042826588371438666759662695690817842336546027108249536267856395463910732242308439741474024125730482765131551680252930189454452439793788459177800681202391409833777147997490428007613132419481463722755419910010575186564107253244685483323818212573482841665312051691761331204192186721455573679938573979772111309398071814182824547911048627076465328728194606772724733133582567152859760917221651732401627253304677798479673891957729943892702818639400993889188140581906583419644129189305831853295630615429199393304858343893928056746009253432648646333374219948363963932083064701299682572758554629562393535475064242230485910497590895002983445881933209757895912419620326326835197341087804603724318038786659807387581220467208561193320842975195346941218766884838897078699573705072233149879206157751088229220196440799037454576985942124600026197225452448144154163515952400431862892778158496640800643100191807322838715184495599179786428468920433514828580225307596192060175126375223274514354687576727268017541736809554588849871001225194484025326361249453650791443980071520436693685720372166023313260804680040766812832132343519557369589996491971083979654226591290490591553223523037175301303003259384863755466056437899641625800601948201739959081301265047886150090815231207284097030172313248773535551632025210231476865622938549402052487914592800734988247640903259672998128127726911419576176267727540147675828536985599307028742730937204847637234046702629112972322901986166913452055525157860428805866581925987542362028546200319428125427887531122923918994258259747353810323251404551706414596220399132612160179293139545934098137181727483917159585381737995200373234170249459503173566471276546232697977732240895146654255872611684461656745312157675535687208633768876653979791755119531760348340370599381979229326561332956126330644177685935152781179402172369184979752223150775140100086180282815067829774321269887457213065624498460278789888634652573019626055480619636459759216639214003643661379269291874690629532882642090132774261746599718477871894828598647767847493782095365580489122880375539841380029996182459160108357259672279695847201673544797988837891658079706545873061566644986932092512881253970033375174865572064009377359353470397744647395276372017216072141665038892510061292689949799909176761794640076482844766677249112377123153281819557642367040607843597236901800025724562748077887658118349912381603641239741321376162937800264273571273496266790983139868682743618299118251051740000498935732536948269695668021790303018179796890606178268453583171462416999571182263370965753818374912418106563598746902945430257669054399110692315345642749318460112409721765611865585245335352882788353338256868803952186014572524684649779953307486819405777455223612248956643189128362491226931054017053217451457252176640761419223179572070446853686985655497457219249246204531815784767962763831759902611961534129454119265190573986666248951062330967078835367992885852208001649717023864926196841882580364615162192393268962695534552058760861182235244093781198647665381093133501298639493327907893017334062239576710128626126410573911640212656409339471817677480083227469338119760084489817433745719542565786513639324714354872275401817751732625994227188092331154991071113847096697598523427533541556948349623615810046163088202238119274691641864290441244350625244081111427343701192756250993232169228573565712492652261727691877934402497202486583734639496646078174949584641389026221771153861055600496585680489717872134251690015908665550629867994683830524671434860378587112703224930893668702995421568888884208901542954217328684119820898095571082602535360040074826152615341076283373549373563898873272788999096327260050007436907116532955200137601864438270104402288692690623822899352636820559219062620894163268584610764764135011286501679004782197818103673563071281502547916596606538726629284349519176657704136780376057038220882666658130837965188742415778750325264461464302011718720172706918684867497140450794120507650699725043406125021770610489968975428024239719665146102590610427820907063271481497579956593676924606027790707050325019263434272296583738319897331649367723117991139299933511494291434697005921662874759011953723293924180220144088987961691317765410101295013813978391482389766157079660744185713874226715556336291670468835805719880602797091153497978096081109916634324751822919969763051958693240109940248292589201412187076141337987892565669591581125102740631736021429677728874031489990104805008902672839548977231271910841072973186588937134046335164826920613641247022836286664919587748084644938020013147245117837073142585436803484984584865264829030246679198782304755921278786789669997758726923702979611927377777226465868202070364081266022763071591878846275607240500345089891018228148117001266479552022636326486890684439031846562716024342748215654482305368835975995607609012113497475897540017195984025226647789901894138115943527603148581153099351119030102098977678772852826505503925312559771200952611776937366860359897388123144896677455697130922951609296613388244891823982047056714320545179061338106257982093284453843620486540793206525609039400429363313543880411437871867486349615344203804936741290922973774264744303300158724057941511737786726667729971876200005573999364479441540668684090796479504047507245002357698699068389690221793498160971507239110181711671336894422991210013665866269336203511762718983892062214950470058834034225867605220720976642402500228780420689626275619848532407213789290566071685865938577418352937813923093954578033860346199997443096679107902731837713044468864354000413126858295116839131526507613502985710232072768159004217394157571445140592872776717588288485438255731679089246455014073959516536218656264553673023852373238759280503343071324525642636937658920266830008346437791797545883122035693713562586770353520857401395776075158826890840040580001747422663922189630952639799881573639990830955234320341166060932779720248491631850013055965930262612798871824831377888723105436873975439558878107578778099365203621257959824186515360907880365846792123111648380565286113198906604838248737353857842591089930801786772626657891765391416630864481619751584311528474133258506637158836215256650202174871659022095276275861813862364377547953799099405210877304292058266017926670957994648556159361916334164017453593925990426097546052582293833565990876537812017092898544784302170759277380683158475950440712905310374117131881741164831851520969368931071039929234230651896343201118580132507491700869806218884224274056373603281231610774350432704225422960995588475641713368981666512614679987166798641301062927847591455664446619239301502850043953274258099582620985292845738500526745592925167137464442570780929715843063646919877633440329251770218998070232009720333739544603474003401252321098493205921453737655399900390208138866780543077827085451218035923796147377201322536123480617983953328863481047049270021296151452127948104827893136373821772549755527198086132304878580584741313073336527825252137613307786248968167598719123833070971114619346199370413086098806510738753116711031677328758713301303826762621396609277365778890254201180498833508890909973930330027372372088517353444474978549197549928989871655577514618827258248536120446197529232598186760654830055000031216631572329442857662632304523779909426203529060082271026112139747808299703046433939875130938838485223159758334964959427855906822187163616893669167505229830131602957037113994969641173448154240482754990661248424872680180037445867818711667553301995082917903898193338826661128402365644634857355890966558338010263678585338389192609230455043945204542066072593939769289181037647633350135360668621208132909629499997269097365629343942227703788318520708722497156970416310774152243103433139870340607241850338286366206239546289175540515102011160542766888464367068708752587867506964419163872731412642677167916298868785489787882623072467477771520599490163885090186824148776239207632722385804369545207899026821798787306939051662958649042895688839783325105502040165239590228477123646262821746459355950894764983328309086284898247589847995633426934664541112108632506416026590260497615886256374499106501810982412604844716047534466151280789927093353957889052407120059734540392830726277751307791909943180171493910648036112452786069601076657487751760308211188849861003503230814624147931254035654981511258557108486722309994264993945647718638896029447543881069443335338121255365973958245804660184949418638208293929861567657611355610109525575178896498149064992082516134725692415657365012551594385315953819142828665016790463554704431727645297748174588109664878468848847547270936590574550066263752472744765453462585249388987396780713533082183382436859969248238759333616850583923072716623090893987647062515558407960564373458903717377570784971346607299437459499870645395284464024320140534071402050395753194631069745401672897479107764540496965101676137520251945762121945246817263771592676410748044305371727875344794966982843051407906452840579950870781055292956843675541664908344897833211671761461600138543383937237695870936220188719833714070786451135084519653520883703142278944130830343834803459981868976919381294758356148130418922217295167399892459209022741836576300340325938939978576996256359597883514150473035116999162743081191708486025450410620608354637656453340487417137560253389970454093983087453944293997210432503383304849384825360625880859648373874974934349621067566731140476235574498193862258287280913120096119868738313584590986300211145233185761951150512095167314736345154742010505575473686187649139152645884664815470682411874410180671704120696078256046248566959756171200828720962823341410888152945151269876366501002467248735311646920867736607590868488448654683883766069664326234770713785408712857960940914390675312506548051141405347751796751327441176287785433379267168411306967313217791739350870297431786516650357508371290944149075523793334265220531846606656140373828482935794391797340595260598785860478541550413722709133843044139593982552356324448652270558528102370300790328127939487875822428276191798115691545202448769398230385689030299750424285878873813686867146529113509771665529984707638294824690805479136111844141643633374294407647801748145104023458201565722446113264351509139696219900420418333854699746572111425423530215593701747378753742557759014607118099676515873511941787444414068955842278155746871406941391281113166259480062750326500959139031701278546392583865091710558330347930825865860967834002575501577617532405850283990682287011007287789970269254807825804066293419749920582025943505919300913241025026348518162295764111607209025118637318059303559059929787722799101575206409777830753880893292981179372512354398178754483165482562877112938777557246827520213472636946332375473092068295795315862222300178779251671147300668121816352669515891449197361386084483124833550315222258224001947897022127521440377874633316724447289985175733036401155387753060159895426409316194534911657639383549449713062949943961408124047507895829290385461094770032971823177120448265675116728614935195976432539060202774337977466568492779055537361585920387832937800669176192043268040574099914888485270885078975845176243154123689188100796945203020212017382287173685059527896728796346792783570650467245017928468298300062954475150296164600534809643381014285912795294981054738538041272088584225474072639980786476698376025148238004527326870434973883498808062061270704898945792732075006778834081512481550708210149030041671159822559109373933813392867691870416034645116233158909991913893054285103151990350821669408665181815020413803735268072643172606091300405409680281236126878410252008492992587706130127778561452757227369397120918079410000468035371318177599644070504863028882136516478107085677207416994250144532211970079588116028315015748483448075947262797752344904665720252198981377540060996539189423777574810284757756726633474237312911109547224800379839035794947058343507558789665236321292744214464073844232490738135192011170840957153688477520771379650086022432041196917940150742540022906992268670882921661894505891244871944924009046460754120960595097720435420498528230111346072796112587032639966292444373090606935431322876611826485085856205077436870524019668742412224146064331397660358991732744246343478075271298304267400793208983603444012352857042318270980794643536412713062543306737620047054286568092616419728039393703183904912458591981587956771023950349952511163519190429270447259865160684507327195433912734747590920654475235720261562575188891388756808417566301899412259865463329616011037347816498431021118238231215069218445949212600996539669220635897957243104071987267375329947423005206513828380690059547810993745580666347664288094878198006519070333745556177410697813104948236377797922222050521302097929150888636913461193383213426129411522105916886737446473668841713212641468914036285837488435086916034814955250057504568960278207990588223784704673224534585872864154542510624124866879276690529344582087733250237806163151791956353744496382033027302423271662279691720943804440635949022362480782637935125332045656431618928859156123629011078401777407316364793827119081628726481667134479283331310382562869486426850211428273893343739428658218610761025115481947397353931527267596251999739403793726756575064365952269988226641832388595353952728020435199606376424042176186826322809621305758848295347642768527298048163510810256226507381905985847078896827847611513855944748552395036416766666739365724201015692486536854117088113132613354104790494163222299748938791352723285802537060044459858357462995989401236841917358927497198372596991593325295106675373974830208091352940916572872328177030617308419062796957493055923863342101401966311998551010986278407440400653484173716440023729950835003091223094138299695020739405674877448981540354668185011941779080993319117962083020633189781958000095081866415512443411923720063494559995617778324239533701195687783230831244383376337921405687961248095354435750096031690433533358630835711880997227538993611592748767718241505730312216401485688416210377507215891635628118902125731078366978868060964469342362855704382897331642352251400288475037060918776034493951064779459817747753846811723926812257618760102028983477770578228514546768859434112850334641061559438001725376413825063115479926108786142041632066820417648024435331163248280873907734230376091373316192510163816375452162225471896074037421860869533921794971621925840780934229104689712241538744504105309691039910647889057366961532740683278576762684949791878847341385643963740696282510500070566890206628461460063777137560861903826646718747700345318129077446966825267503569990316056074853655795541482102280352973202423783946631895532108353889199165182201143607300335152817391409909885628499747709564868992966701393368018759468463019101397046739758833172822956684307793731323396287225134645559870861604472323593829636972591378256388526455111583681917956399117323460929951866018669440240894774964993528363732065966884691618835620526082865963658794948581515677618460993818915008184723414848501353708137845354932648143566571442652494198335088169163886599999774458371621238968310953525222383518646606901698199816879547377571044808088048472905390217727879214135918246858026826974858173142259543702541334056383565939533496784509077531843706108221127518568269853901580084639164549856186778528088648968480292381994038140804677609454734180280588836094602243801764002731980945137269674855767430856634607574279656698563985551623211620604809324986270879768397342472016600697125267270372834680896448429741370805968065854995427319425484435451847224822451033868199330090112720775106178481147241228022956211419824313682241230821704926964606734810590981140246346801068770778249789005030357907357790474858735141064307654087486170308634170866990008350072081466789480034454036005371642388714997923223958727880380642236779464660477180041781751560126400853208462710775173098232677041515268618981533545556509397960246196093371139981199506413977525796990176081253575095151700204041724798102479994233555083567655376431169868345138005158319267246372357140211426050287946439107325927070693486498254470988763868884091427168398278335367517507992455189844158187439865261845202707756988487978538049513917761346810508675173891474272943478197805237098663645944349177069241741387407490328817544872716380838454494548910931018767063551469549744721483883282912399702168520062748987726467576612126598936089967055669498431900262570703754067978946643508997353862164528643660311440415385553356301108544735154315214508653318866665909734874651488985674384109065001303426103602990400193199286753150060965734231657135570038267529054307707227371391873194628666367943475553097162711755309712213335488549527726494979861231554131898562820160578063194666925293760845327801880276852709971427703880635247652710971700075940541673837873608369325732904782289491635370655156357710921204203791500476190350256415133617368164206379775012624464591503519078258816141562879269282759995843663948852491275661405731857314257214240945352553893439923784517481885656953918433079242553092389296302645383194417759259110023229314993683099091996923369456665506050586473901593147032887073754349480419288376765956208537471440562199064808155363385979577661106752883323894569152543996860230546027673125356136021403397710481406452027749889845024274907326784563682527025937428929922303724528734449087992705273093218085999704295395588266808163545728748678713823447417078898924098269325289224307832890618540117744034822871532533675824523307334022751363751914720083240480355720358614245058362907429939092616591274365652201733316499520099405697565072117868209051729964732326237805538816291960378815180665688678488009740272053716020361695877751979788110397166472820098331890521124704817466693327312711409289640809264040028631674559198683925419501690261785712722698721661024687743382964093822587256912629423921470284649901184358444048114522282646403781965934370571492788183481041904154112127229041942246668793891172537354066677317699712996771882919297499765579977588535753703380194868739251352110861288506155830291130241912132749930234117270820543869002847383505008372876207583840269547627380435125145146402489972272347789923859240857834317582301756606670077184259106283555833116813519354656948913672623611042101408199407818918102467207432570717069558998448619197386911041052979706988176966129288664577414805402368633622299169385081798877912567938592215322215386819755523213463261947070982952832981877951376435812236041509520568576431190943860641972783212832787053022874552157727731138705783264446039506902927845124762314050107979276549615307351758008375984425515465310370748323371827748484586082149409840055920885837380863595796409253743156926508285747525766293801154826696186954344654387792533148722579546326582653003858932902636357352052520759811614837576711077302343045438951269743171172092016216811898760368802201769848293762430077395136784578337765269042826611163400185739606334350975289424707104194413797387517951884206373148565300311885535341783157208004270601212530927186630929694296865236944383375752940203435224711648541135264619741371886026311051772350673954792958557602557859939527318526174423281333460594964005466520359179904976714158779261357852007609171632525121133911642339529704591845260203469877303076083007960610581050729036704579321454515832251235708636524919493824802903356251666503140217590481790755963512878499551541962223118011019476668464754127547534728252487522165265302110449493305505607102507661703737906349978578918587558673996547625187109884104594233309065929965442010647064282221480834790968288793943977009993491945726478130516759385424639493395530976484948403019253980846607682388864675228845781640755690403814078439285009115427871472856687464429905751884914136994979821455323312669208509068475166684738860762222277369235904621714669177647494441550573256101503540363182595886993448982937565151421245626303460813195531441787401664982793843754613585404813117008741982547795532512224780652665604148371852146218180715153134807437930769252661554586382395737266641566257903296515810115146566966054901282835403627547108868087916696004106739927753310950434223768006179475628166122246006061014951939481012709741933992278888915165994540021596635036178377539404697105312350982603574088218926533931333803577903004584890912443763727965591445437512283700358385348425038462810330321866228802542223404194033179090561573615940032773089465147104370096787039107038019147233712370559882829708682402539750662482838222890068953253870234864811085104250871006690510479894085842915974214840867917118832623496034173828160095614689152695897005679736521360156375629639191950045512278113432395463661939239718599438002047572441668672835947479024499024708251497012837123516507616844738407068597881426654047739975051704800903095638066416349243096709255210533911640987386080225795778285902434240548918078014155278481567733535315775713012522995014069621109929341377098070764252164929237205110842796990638764784042911452995189402501455777266361350094128145670023129535667811621066211326668520523914844878069575119948480448601365635176085337637249022999414191248106759595248661770356939248619755833597718851020797929779985329555616193356797142697638728037552210693116690865541753035923295023285275633479319641386673740819017627562070339701519981270118037691425322407761659563060210908579653598382757258055295884652621630302371497616578230295817126994837179551249524041325527752907060485019501052828562043956161667447612324743124082900234226890393293535215905206020710852111898007530841070475002780763722962217438543387239915837944882712768040107888278779188169204711503209043442793173179797074677609638255105791765276895299740599840108597731269218795835627058487219354472027792410077366228130715370641096765635532511469495269880354759366426679689068609474744942551191427322989776531446130121849949163943607414814093075188775033916840522293692802051393647748442278963807411721332627422053734312674574269597912453136429673941096612733823894079366950147998440712895799031423064146841337703587497591412261064581203502064427112970791641121431027952831787572624399539224964020908857543657635186875622890410197035306427542068412482159384312611516270273723039125621699746458939029875068879300844097590871199130679847607281839929986377570249432221566414221597943620433739919500635327318985131731580278216811110742486314858098968675528149020003921133106905478878247550629098996640420944232868632810530001131861576763361560452212534612963270804250069987123337271899426567377055149218043217197652611273533560176095910015740831908456770964363358010265909030001388299852632649945924247258657440631241979622317061568812364591018323396083575581230500254532714784709236472489621459018958548017973363525358621311780766113383814067007138271085753547710351977836598006936180838772344774905474380818832808769649781950275964482284588479871271157524508714629210253940472092361963684100359841477593742171998268005965488710644921785239695364132167750814044371688968230436836360109697522514866868416837006989433703409967656683025303283182320381741857011519842258934861689233943555278527377273503492382428008590756853906145623451836135400222473620663105660084415895342835591261565504309706404280517070012032871754258145742838482763586343526903892144576080087713072618012000299928229229007729773365769370236640958476714211438624169652919247258016187184342750287473969899452638192124409043130257721172097250377671948872339369719180819278552908878507384282622610908210518297609747264906999567170202435750151364109927861827516039854752710560818916089958239984851167915172253291608043329798862437388208512697724411138941608165089228112725749638089270685315391482671780326683460925917502101646277205140173918748808059884821040963026785826516633917574228841221171477396927623879071847264804486992694677684697077793416607749718117401711817586377897676076672244528876868285589706632524278076584819659979884355771912302652080158074640948100577738963236772279219817319444337417156707676346238920805368504252172767840664155675669310841380457979909612904387507191956301763552862405505871978831851249490973370232218981260856170441753060732529934466161559040724587311860063953157994483360798180240423542270460952858987908140672521714357498026447340080923767995790821699818111041275481248476351522571854540511355287859530732690671827833513103346127372557402744128705935373377614945840650753348109002638671608247822129096134512766116240204727272515427241415671283027426896084772505168446083214124625978163520255648620540928900356971567347059031737524061922884749902577612077874673649335674738555282384485693351828752926894796810284961942061308361202153550939629843250137822325999019929892541871688161677728572134996536044743346442648720894774431820758266202295836976761051459338399158017205612419832656110918863512651063177152844603672206013014801535791737443623907723219838864819537038465899751263005321983463987754855937224146758755131616388424673324489110193012864248357143333129779814799013626316788145295921919386157348919811341230619146364866730619648814646168504192822088225535512105008071231851682980946204342043919090143818435419603132278772771712933953214039705280515174905562198417523093433340886533746479751440597431911272993231476125449980761669053933695628122418920648971550894606868922702995980835510217725405327159892819519953103756763192063534161315708889528421892621469490271679848322567411904716258623606374992361485989668111958566338459943650919379553934498932928082787780142407954824799879469382127982493438706440216252304542309447715452281574699331260753656926328378850189118890702015578891661011341238415679310469730944205151938874609441170997028658698981713349975765092621819306195487615533688926861759864304192613276048479631954935858174481824359949825391140216312769060333295600581458485004297919089316651461836286658568876532287491375010505006885157773283559046882937464999866079805697304590257766929183427100897842863299124693341020051272458470545582718972945349694693735584156470042129596492648530081551941744705687597603709342198264409186062724444383298219413957871671377148672759226302076892187267950536810634005675492350137778573329593038698704233395946318357071553264664284458202578460007551454949785191698968203978102003889248524543414483737205693403161416129488117973511346350593852685730208668029120162491798364468573422068731901023273827432061051416886827665178870226416210262690537478069193299596664426061321435219222470345717750002728335371674083593062129233675891260898997404160016844935615547390086537795871085565460546598937699658707506202702230119049259115783479561295676084968133723871518165599381611880083930313244015365112050060356968555136332176859468687731922738978661831865146877990294956012136047118821860412924518597917131153337434172370823955805919992652548302784270341660904760200824502427449815130596457635675340115315953873618629096877675087675399587837398092551390044808043614540985896828963875426225660763348410845397597689074478415299031110270307100119630446211821574816691612041678271716020705426672578076744709266299428922750020362325968030230623227779521176548578511717546679602221678278204032757972032256745459901469009831385761105231022043744714074757890582183093093037864642998216053577763732768762232617494796785355175000099066794246970245039434576197240196588939938908093536229365014510447666898589506969697486560744994480456535133710541550874567272331456845884836496942792741885665261433907802885245146598460655139012107708339801532078291044974099343525398079341857387321788652420748298046970153347712558033470960457641099177230908578889046761931087402410610275575268228226974053461447022208461430912583619001644668520809840863875647985456174458028220922878417351954746254267722119001484355796066854954950289938577741087858221404183949674613804666518927685393030316476226532515277868569532144314979811098222745322628110666103464469422020940649456561732818003323889659193724788476397342993131825408216076468123959849400948187802654058153705073361789023926490907216443212981410660420166313735020363727064561320395990555479360324692328305747783502918040119403631096111245721171557007928102404971545040161714957904674992268668642410021564802262544293169413853394387822080937615980689497508346317745989195518277177851125495830953507755933928209434012796440040451125458362698292753723926390190163726764427672598711113924962298312234605950097930674966472151901785132153547984858702818335563356292460827767892327480411128401906285366921329359153809972896206506683548841249651524524045539002489062063041117751122162291296390701206966572095373678304513711511487377300477125695425215477517706767020887506076462844407013486703605771632179186445313182658984876490126888378516853438651666091965047144307719355073424425986863609603097219450799317147774249046589860737836951429523507520547184650336650903051508916335459502825575814180998171360772312774258825956469931963286937451192542862738376440530638252944534090026809085891206760578484881164058192987217172501979887110005919963497203533666789144284514331522356972802152299037964202494754664129962155786602188397998914730517278671750883278755748460881992372866096377123144667510147467237489710227905007999253953854008213417960767214469814580949518008308298647214111669942595323469234892595277799085440735822787917903728664185113251676958046305156301378596273135935416366555524641252841922145557328770600360261535947332575288877017931100844507539649265048982921628392119227780778238627558355272501853792228833492614581731877933370886600469850934299050779220855880771345107653467358450607148472790912057321868125628492580334643520713974281903680009197150420972726243397281394885145101717355734880552043584062647438464112617494418264894422116145840309171046090827937924463889265692106702096044007533592283824212908233294358248076201272945021223905745852271475793759525718955299423454800219121899905263644314582367493639635076065580761572026377197725129202132000814596831388125801797216572839794426605298656176857269842773514331613058232506586374675620966722260088290452873311538393999812149410556445679820468097299429156059835075625896102768071204996624921341369426833100096490714500753933508563707981251141667708050196215514175252496055684845622578744811975164513540099232180026123498744463451362503912298604987396668605903575238124567116232792765499822474049260996700673442623640649849654235706974818793112601462064219027159660061728382592232093195159659155459753555909373940099916764637692542002483426388850029974766532821746663182190195578005222162340958651439372128473130970568023347406671683589593643880022099911331296093158931559087499527926843194925146376373536522337373290449593300488472701067091544577496935802079913549911132428890759699400636889020773262757247190912761456612492771301985830951936758733693840718141175726809884029251142944084910166325460767704775845348926883293252110835896477731809199133386072804072626314227724815010901218334492121005411868214541016111569440028950440891264710447540038030593429445242646902242089079381326596637294013012901457651732001929325136569160723056367639394287180525215391935111104859021859819056924627678823987196225710104679494390376929440883236742658796658084066041549470435115739800194095488805709971937287831969723804571649700435524405268095836247071786392077720436480421112559116319981501513613282510081617228469295666779081004267886869191937562716942263667576083027493955255331004047797446880800021725503180582053135638140242897801472176240633976265492337139594069401495388671519523905262270918544761184779230751985617920947585123548657460255463192299890731507457331926665922007981113845120696567190132456449977305048328377317718096139490606869701815589297834929241975244795089414194415904113890326385395975913820646896768682664682219861740365289974777818131408808921497345526997105328989603782590949640286069017676874677131047771007772924813840276373188468543257390252794741481758330532965376486484505101284733602710009935569717239044781917488120863391801777636101818313837302379405506220151517334004521805630827356295160446016212863647146993077636818930404116417142895275026455631570449651916951611134563243414381044117795402701599938103854776439543174547568000788489982592915583255298896692670009490958133770557894814394853892181596649612518007393490492932033943262574105903844698610663497494288725959359773626297851343440478592063380257473162670989603692453306104996649237316469328070923707955304201101950501515825668537808378917652092453097718270207370752815416267467958701057791261469134933035370544600224915796531824667713868826578247718845831827074442521541117603518100096787221000093874929223606569239383434439312077020221194225189480017014018963665739423874315381448587108238925321879668210289488243129387285373066146885161198598939899781108318626662136525124841553476835988137667854660187339142690414608110697524223669182437119774162442942464223413759614523927851049168504557076468179551759769231970096036644233983885365009288089184772321143885390847909496480692034163117159569625387157193597395319035938681195396746498187405046688554205239304162486050396291160060449664558505878406945146159961375133754008146244825086219465875119973031279628319599056127517164156495810600413438720718021353897873121106324054653357211884878724916403753776285827387161750474161322051007074109848080765328048220481978605427711390922008546162832796486390142572026973729121394718064394413023622137577247441624222724913030220780209224983255108838800038734391027710583364698358806548496262941506982161839910758217188973147298283215543315315104142254647777252929822884889830057350874367752130151168985443462321324707534891099510857721208736391646135744601774716763008051816833780663940805196205426705854548310621445869769282882180941557086302937998389663200492086008616653273054093597110501176974290686227348900813918411860565414777877552582120219369156599415655787348690675814195450052168543017349956213063767305938341992638649534466177224440281202183141017418420863783350911149394780236515439224342378765370157901755099873752997691262180536647053696961154185424700771100875014441322982386045800748900644808367565017324093033980997601299489005316619353760844351834166504339251777618913606346556805949957613000205732152009113499150795919000246738331749342059393232895382739162877444101754213857348604345434551410993921503281442920049290037991781132643034212412114932528551815725964916102601590324662028051165954303923760444537699689331130516670581156368610357087152350609099623787041115725523789461015096156780532037385691928239669852283508023568456427347732684851210010549902210269228947933295904333364219393377244354553295996115313489235214299410814395540669850598025856387830442227226857048863473527420984032905022512530682838629536542000853153338387436542604051401413252013245811232488403967400190984204933003626648695367489371749885329903466203475938762422640024888252572601861713571438219488871032982338131829214229261857272116038759973446453031341138543211022510536093492831619637224864718264736979329251667957514527563291911149930270803540023574549579029970594486515593612758038157777511579581644786792025842648252431578208882301030356585796161812211519603789771285808740540659077853449669257009105350080081311090923090523166297460401820549211777439420614069802021560093013230209581061053235456574167346668513100213459396277352504739408737427552930432275767828053804771670219060090590349509259209948906740833286783876286788862533886214029400701154236710653359393354601577400379384956689059315899514350530378775870857640196416718150393398704990572655727352997127980903975043601654557803218302299457120092108818367052264164690934807784679002289211949321314301034901105469752376318935464278093908830202732717147339663289912736711372583757336409126680340777273576346719308136797373230360670491501049062162447621906377841192840236339715214105627270526646798460820512739488315396158763573551332835703051229511630631350446496881148005816191133365404133696612251056060384177340866182445781640014772138212573945050813177658825243857415214116224484964851760116359827725134187561709312570767019756226250417911999996233282832186511270258871145484332995194425192991910313615290141633813150383532053881662479326978436779248921803393620716100866438849043518374695292640177337118616965863083165117935591295312584772504704920940744709313715155139574938256389344347324419687018033288244456457016121129528029097373144991294755712202865385135685328628987577109922933903355396366745752158036382292016273992900387918303728519090783261933246545834672344746401787702715707910796532112986852660112590751412489179209858456131751239239602827131038636658408116767889788652449980237611102358867154797643484225524265564863345260771642863940637357801329066276130074885712144172084431227594097010776197093526845877197677867749635243555022406655611102125219754993553431540453923409448619088492595550464198767776730908643757778697669436047145654197698636631864236512515247427280469431858228452594911713990023074589819064916775532082401208181112459477086044124491366844946830764834466334579880588852760412983699654718265340130202166694865792775966460122833980214446503049991164123920504317963164009900817307219425092745270514144670265904947514854059217761218055983610775256836587967379559928684625562916974869681368340579380099253268173026334777152256538898994789667505863431503992374297889267210870288353521001379010040000014727376956629831282132566861655738549471025237178742326481349980719299559454989815727370391094344550787643240168072894372895205490980916797305714304327812331694040406897764425163217410178438776480040762130434521290142142448516166169712795659590692971568307424925220241059035385492547801095869556217173603950123233719470094863885421027080360849214779201639355018513147597826116482879573370056805504674657774356768361033857373910016950886859241378652732721340905638266996180548319221267916763816299349025676427755521482854824856521166605283434543869872779130390096279652499282186369415370201520343710179638901279796009457663748560696788185063641961007415239571098290510339807240124358497193564354025616543045819107169738768405578266503361365822293558920757242470590059909280296142177880342760300877942628299390297899723545987789791838081772332118690978580654163571496735656164115798471667484171717710352705673957123036252583588742931851804906966923074929251933534752259996050583440356118330185815418962893825740583861691205773995305806733210109427017029943757222904790303174194872141982411257983143252927535954056780918893532047250539676032371404117221965704528740430561313419106451176670484192325189279539206774938583242355003875709516410971657409706459822354600403378523440081076126893643939917127991065639070431571471571153371077812980723243844495732964782561174750771112497223946646818245472210919907629440661859739407305660734862119170618775885878387151026874627812608318834024242004575017183799885868934954342661112583339808261028521716734869968214777440597867216983856407488435787181832222986339984352998733641734433143741365130722618345638457827912705939162713315935148963366593656060704512987050890765745351282088859371768816631973417807475224451174463109083880195300307797134241223362794437972124331689249059636208975129613481942487290237910881291206109898982029473347121289160834965935550275415672876201664956201275119235345442875514084939394893964864031560595963092971327731105202151644984630291243948615011118449149104162203870091317239154623003829534539673004770925586582315178793945854285380575459459740897636478633588337335932136144963120337026161072863352695305186956599012553229094364721570252639449068931811376597655026698686685652187629334314809391758101865564967936433485376197412693637881092033873046021992813641777854463163769493807120612358577289287560090033360045344203644484362153806330960090618487349285544386349162396787200760240412996740863050010477204212411770729058683639635979148931052474681184634951020350815747708096223950302766421433184958210818956410487002181651312267206382459651286936961640206180277334503293496652699468293830467849714774025396033268175876634123718423250615268639972535964326282389324727852808614414113316517017649182722444059080079536898218756727697391818435073208593196163672269167191145979988799842742295293857870932055598176702694561316682497207537025779733506129837933992930860113457186491341047083647982094169768625408613921228653983336947257101082425012587636298187815383280503804162128857287379044741136053560824268800599833158449512774779474392769840388109717637310880359861662266094434632732042674630560288054485550012512076167816071567539294172057023196587820690376644788945103677788381711616837569391606938891964490263065034477198355184781925514457561126694131597757403137599184948192865282515835713638878274446120898768367603276546451740122904037565489974325800939091943007506638375902800797203100319009006748327202290033461664993475810754147177926073313201652820847244275043525461239008143012656676931950560283075137041871056401483731548458502715814023917410635074497364784220907697280309939886587539621047010553160384471581820219320699764480671834552899654082114363583556780340328138522190035325887795768418909340915562423121370269120123910065112375192775595824230673569082618706444724140256925193235585361215116246263046437393110534151681155471203822705286474173880534767274514679766374876321393634873882308484548507618534759941338157742882573769219474927010413659350600166820130959331001964608288416977506555603942504066940439501404357498441244602358711958093763373497880191060865681425083219367957375471034240962014083559217063693794827152655211674427427237134944455135522091458099143700024415183532710715543120895236054422477321601112179349716034271369275556593938027048446627561747294210508874010554364256429882851357070460456836538124869923972780290177310522123078690630853593160416996270341612123898740194822859804890106700503516500326494505088180876000686253000511303835605075726031193032321425761971903555930866683793699357888641008726636389110648307735940516374629083035135275171881996382864129241257701894564860251015993586661180284365896696582816666163253267743336404708174036331307839367126266312533061028434416404735964495955417979412028689687547198650992871851617497310370453189265672953651466839430341806347406806793320845109814704414903399952307334531721291598963859828769925942598075337347850930040034701162510283064913970543522765095574058099439723785877796979853217384741375762285305618801465218520485261065276332901714618419576658762056199611648907317049625113697226332285504082705866625524362934771565362707718252466376104170793281632587476384935991522021084726278174171367839889796632909251378977703482343708274581014329979765921580280596426532260794438790460121707235945852760406448552926359425698886516040608263757567178261136105888639093184844739228688043195271249480958774987107456275600647136233769389369724509543676809855998401204740305422562043703670621690704258366619297487793663037096094369084697961683144455741131532415171525794481664095587524740144753800819138698928272917170027743560794444688520006096239678797947718719368412462771291884745140587820580820294703961121645507367721252236691190677843415844190787455788104452969946113433706862362806650589291992930506733495162536422064480901423387994509415527082240359114907298941053521678919257881366349739896639010402154615289152537790555761591061158477835390014279551036562801138811060163301611490089411479441298838254528899813432830952923343567071723706724339645029917395176474467081101734569782637779493049443147299265931199250118869527851850377038391688645572891964304033028433028971003225254173146096588162078308050863226039544848402668710118075184324495384042474867445016410478942377548338479515389786240605103874303808855727798990032301568976671849332629104630397764594004741738846093532662707513270475802822903881666569586330720643868585565703399625871409841946290396590960280732897939747451705475345217893305328952879686812041019248227195951252769974379272483343900277579776575619649693908074238363477856180306701481349223256313868869293336395719969559201602770068309644298581842025375364578500712095476057510502990124410697440068339528900033097502156430660027186167458453939547223732003989253571204087126158162434333720527773345673167745793431352728198716715970491731620527096556511510316045781053808957113797691358357819089352110528092595614705936157735267771373566449395472714774821481836085767088769253458318987143915694880961014498620270709469737278920177620167982926035712060616135028639009031017953758689725544683882849699404673247014767385194648502443317748249467352657569916138802565853417982916073391157365064538992941741350286502000885014691871811758660589614224856166209699019846724995756089248110841535817597938985465704624148906092471610991144095176327240432919044454540108024529948601230229340666068563521247856688656950179987494245728403409712459351298468687203223411722972152004779775651543878708719287781297928196655743848347717044019566934301611856514587161434343269450654339401827491035138200564124044336064666167679194649515363105564371408869528280212221426352518382935505245663990460753445877011639183983982198851926049995725798649759610426186596722906191372090856127150021508004047275794799161136430556677363732371933872672823888067291452029855300204501774057773357657632683705487643037868756654195371279538886032154442395173074733539966577577130327848738520463954119106734869599795668251027138857162015531718363567992724061787695846262111174759439521791920032723605772435116869479756876985754803049161820855653457192592485519975075749626541110288158151777915672743083200231497799508802741573725170117798865796766054962766154081150962404808672749224669873683418408029515861071088198748668766752519341468369898743653847690013373725969407632943418660523714640524523617355096974506614958286476715901210680527944844265412736128766916146190189424584275710321478883252228920673794666707888611769379154664427212649870011445214762313728957616029795599484730858216437726351222667382892664739092009903811534284910524313024517734413992137700346332647634292076361188802634778868960187911931079101491566241534559518822557413491505074463279946165927694901026877809968634673305722418099443182504164185985357944267557945587542208895162384675862202300429480160346601586539394679172086750964292109851576382449226185947233270782869622961379570630877162881688649653413970701172866485663596024422703222778612002684440696525936886438304270888597460624874347439450248873745654830466164279129962463775821164255329478100221173234147694657281109290211494196058238952346232084220444709772952845741168961626288960188806160360389419729843947288260656460262589951582674414863904892870141414867524723726047792654252530231676577487762493634732480723937643856833208049138847092487124105808074937849056269750122846679120769118054287107348213170111113645209811355587588218338338198965158510198654994182478607601631188826225742817877788680884998893674400702403830196259865474796668176971516426522809110191623030736855253485137439579161410170041041497957975056730898581255352973282943332029824260935487785555883803819244148183839388071483940664378076144355368557587794208926347945122527942031161599825944879801797993610291212090209439577801467602842521523988836700437107844941952240962157342975129285250542447184788817497848951163529689408114750998145911830753590563260083392657649176483575780488763759630932934647722752375856307760670028898384800616944924580723358389670347450934051300153100415890472627494243629073211744422355860241242032013157179660358972020896442006167827747417867201852696716125370267895276941561767068286067324970263122521636916195247522237316922749617545310149227842653562760015930210692998936671972786967218140378575266553972127485837457712142048844942983858500945599156966150113730589904625448433361796262648528133736480282479120782357287331750981159655391629849689812695640371751717775478091130796212374876926532992816689302027769604248329650533659546735444203719117370428186803795489131518631148855099268212673225040315278352351096694523736439221923219132940230185318248483006432330695356242638997183349642866447957148327351254546195324357286838340154089710672759306774912043576338974158654727720682142730632804168577254515209589205571524307934630056880920057866166371344353324838983524958676414999250679389082165586743677817435897783936310304978184597799575077243598654674728316563787018717823593770911490276968317351677325265906573735430957594461820790478467491770858480941777676869272709563231591290421875433745581905548056297702440004640969643069885361921307828079450269679999596279857120455044655943542894373207854737734088141490355307193195373309891634932246081171569544306614478200377827299394298258214836228600410218345525822510046872643436147354675331116221437917337132299618775218696414081434645375306805377148999677172065290913067425767213820871744950640307503010360527131733944305836744673968762244638227427034464628147310938683054044884112752506475185793634180974760936169867627367172472156159651799974163644233993763743236986790656794364629658301058783902948470449765066681669039675183160454882758457085968210752596053352610799367428972398533103446299008538544898162768103207880451796058547128620950870866087723871191369469930668754545015816977089711944974616423199624031923578074945452813965858423808802018571227914713695435001957143898779689666543123284821143485417590915198011001397194049636802396605573856647014922756597362634859402942521901689957184956047435768607017686822014220429924554929637426188306266826587295924555237697514373418834042503536972012348934509025500407348452831124548184861466628539671212404391908253713068870852731617058617447764543594568617587375688947861323021585951559154050991401677875367626281336104781552269896621562724297420274393960714412683800745464242606026579600185362674378381928843497114738838158738040946217514849249856961035000942500967821737001256567436092181232950257385344790922000282860006875366549991843770084753042481282576926552058710940031240285700523065923496750561764678935801803352762308984577090440408421268644224950663765610524865629251603743510086808277825327306999562566282381458610296537999221325184257824761952851177999727848606742502296085016716697367501481509112687337094048371509021968955105364008492814097018603376727464334566720737341031473403586715494392941957880244216158169047002476093011233131855050017431868263172080162043836092379421509709513513408129687374392068187619825331504316807521804008650547801884595251275300681121829617882420552498604620892825954394983577008890477915036742831453886915245766892683748168139509632986691226812206668255194979542491105563084371022587705084569069227526624783857115267067540510746060002010948311692806961350911669512895820106812362876302638490303672593537639773602116495268525696971853418778545017323475865992994226870808231012950843069825613444871047963482219370325895505807598445446894741551451438160864357606680272666605276104329389451148654851794751363019221886380178973013697295435677913150117189769983284202434794759427603824263657846801779735714767077975750974115379401307295140745007938568511094824021287889657837510319887701386713424266459177776012917542091351961312708226275638073078411156400882868087463117457789475848356221678723299399786820613943716567625755926856351664488468550816287715426236044462541979464636935522402754495513206337580022826828992213670429374984295174536441598616190600560052711201924732358662520871809007317973869355122280549488698193884127290342270416831167893672852791086332796703655179645968610563132988294210084584662477474185441558849832932445034517086130453053427425593775446596457435919905130082771984625920977841829907861077710807814413469398016369737040284786455615691037811551123665482244788209872386608155134370439848244878135475444965294345405695767471517287502295896770632229206698298692574528164897013514897049709060432207132844804158498970602566411227290103836553127854677726117225702285980857084563267742644019761657532031326239307825992410866122578902934522080636612440483268583087689269029089188297692420292078250026269265177083847351953474717976492789446692745250425900803861668180345369357307665795434967078795825227911484027981567300274868255369009231181856221398973054954634592916126389192770940980235202619701936177810094892187172968329237989705735903465495311910964727231817361336350333256584197759134542261346378829453361308037048168584191169182078432594592961003078584488523567262787539884701316890237204943891783243641423252259129850241770707048562164256616944029092084829150277323818253790954232233530154645130896526800907119368098831328796987624397672602525263673522900236323636879721513069795375703402924603828764821604513145443729259450905981617569388862721917545246505939711474266127895166312980643112532516986142902472147179752348615680557545996454591410207268931628518715990981481908727669916428170312370997705397792738547808431210427160612212233546513738829173609927668275610533378658147788945567848701992596455213243309503888893237589422478441982025199698783225547285130009069694932075965855429059429461797932021703011624277502540867393269811774645640826482113054080983805462117836576003882940579353254610595989368259275853073591810154952273245129216840052172056640437229283901926423536483720989744441738343306329853734561702040950712346017026557122424449000914841799284366765922464672843422681375502100381187829020003742888298092788917057556110727073653223172128141166874969994718237978229423960070761669490139710811285848334516170426609915567969971549939279527087478678736379903582152759879151759775925074856553288959727594885840718348570249710704680957428421679387724199435492488369461909057097044193460950536684624136124246591539642887720498609582634820678870695594235457890611906898807801005235042005466049765008667756737667639112991727176514102501136754404206622474100632912446854690802686247731756909252629371432868654672769336747228877420689419072365778919879926041090327826207133790486906907105696665649084761813165482331196905241282880441775617483255259911404959518669277696267889035624119423281938141223776353765398253659996376734949280850366210793643224302976710904936115781439593950872049602923993433503350426078600622739813792315221956224843206845296785650268158018720549699873702869209424786999601693151587377647880351574226019976067229971979395454233310249920848696654280458519275134248754348132598335701838526150087454184917218446037602053839759947533385500433741596263880757021776318696897635671432168056253887741798694434642035475859078235471350692998474776996365082539654018299154750717153417240338326013048777482416356445729587757220680896771378613768735196564773622465183730912525505047418002146678266337070830263285704423997475382502355307173083861007515630654510916614048648377024178133405059832747826188319608364331576047997610048603649735810001838049509089213089442923788207017885284262212132965222727096971432825099844966627403647549519006187776363201091184401180605505717905979151210951835190130262300151435220391945534758183241837598434929788428813003424732486296226886882349079042284488828641008118654983846276150167570264428694857748081726088555832257812260240553742909668705139925337994267610298558563690102725096961549939315073340662448026331274541736079374763506172034149569016813116199805079393752893692980906305230318693602331531106457005420858567796492096009104846250863217326027821449289840445631754552467174097303141432965769227271750493763403083720411742947485146135993820344071480647047498799292858580178398837551739133612803776616937730005474659172763270369345528231048383274741880643742631804773275304067544178933539638920915044553723062722711027295546119724799814493910031834376982009704148583894388201900852579323448357679849796272660001918454712303161546068133015755241382533527465303272446418438918443410864438198399602456704112165804329437944397500890593096795811046399242186455177624774305604792159420481643308748504722603589121377721165262575022871170346671075074857402926287066900306569229699712544848793001919222147485039111610167634421921653686420652159734340203711046627500153621939300325564299605492763712752425447505717072034603245459720720736226979709023634886262863760029190045637556733832644036485534637221342323403766661803174281355841930581756113023314489732097277824620746894144731041353490457072552549352534452559756653174607260466935490414496479480705743447739111557118587885494522838466186328249327124708334986169231432159002097676555435103198470093471849406147756181168732989326646716170850849178971599573647274562012137498326107732341544843191595500902504499136472072295747133718729280903947666882828478865178169242833625251456435088492094996247584290446604097065665832124213766023833244126094142115482418741892569727755752518849634862232510718184503264403604232617639817220645076109627324285739875939621377238662449383243543279976726983597845208822938669520583525413026254615196816945486134244008126985569220635450811766418610196188759755689385769047563060164331276179096461645764125942485527100722379580278841548950575870984820185963855223479698883242756718828975291118991099424448298409859714255565518643608286620603535599408277974802242693927986984808244967110148963279574840154347618825660279247800919472574883823439175648350317792136085241839575568491947752303477533194378459010140993888214707386333323872989954697451093821454836601169487164263830470048681590161861388258956125626575795200666945193202040805147925882801315125633581162849206440676153974861725160615768312099839275485909171132527837733227084193632308834299582778384849994447698973740353857799979955124021542104127109770332646936121600407244839812860258202868970903579130273419664389393778090909627551931564624716535555602622765784924506308136276008879496682488137246489724510529385603068453538724158501829138159874256043011367634206242113248653709568744025928381146749826070608548388960990791296431554910148044473861856609153379614879066166688744911505438131492498392482740988140042132975239284399619579139035269546797805251588502748388804140570628327656004888861231876848897573068620272999948625572598443106000735319039854815437522316917533495588121367156485784901169878840754146801946835637546258064025622063879848958095758313169075185287660379764997305788779072397427048362414534110377466272143297194740113275814015996272696766814142685212428625636561962205986545978036914921928429736105431427766663764867086901005262831327323820846096407854728547018333848655877357112401682808006064392941074302782566861917680281077818574289384797769315033113271365992886957520698220362465678950300893400260144847621308988653279147714526387698830627435565244811288266578030897677885136273927073680164471514447207285071165372249208401247893994372295552364008017077177158669372788859503245082946425034827600700978428254932294208809713891944427547780343001795499579770084998651945472884711572344510821286879023483942182030596112764003865086480908074820132932947024337122264470090017182209337869098499886925498800241887830765510591209862224902368152571709148962311713053672761175261781665131444358099500490471269711322879291020386250222103266638833335985131170890401442806891452322092430269265398275645227581400320314599665684085783667226022872968959008357830473439318382949649005277055013432761621147947644055950028658028666565811120181007307522661021439320391608969012328741386821582741966750323461040502175916433303291768397879942091900789830245482896642798194565144855962165817722245350655661785963816718274104588254244363483297694795164489808340706707703639028330178348385036799200489824054679474370268650366039324097217563932628170889713205089214964800827078283793568483407659648471190140728946335436520533595192133674943933657345903529065873432617961094961980018927763899471497304022173671758007794893317841380360815667177275087013484192701424302811190542350264334242942956565592855263877241616384291141560263191400724678165792713457399531967606907347058066267616187957286336938654228789065660998417259554338900949213922617834753507903177302566296178194755998887245414025119410911913702696130362057810183623749943604548996665719394686683327693909247875596155479355350781606865551800280482733899349450490107159762941606381152918687958378979290653888926349837605341089397669032263359570403764487040373993276072957937953310953451167453081628397020015001354227617434201838200463836060892377722051794522599911955829144444316466046152600234151106971616362445069501214874626279587369700911452432775584433843527002805705275428825743483011759332024513053558363221016183925081190243998476437727873865574740500051221871387288788140648267128331518278777786098730150398353310885887425017952558971144723768878247565594204839484543150501334291965582671113183228012392021602871575578902096477402151417324689706451797284478813234032380690258197243358668939823957937638898039858795794006078641491425287865055847958624532382983846525616168222097360235118269835191184218888424488759437452120711965069527605283102432091137215779820396752427602751217041518397368376254288934635083606527861640989163695071007953109816327634718079564420298430048032082586606932315924879935376664893805011793527085019948854283890480912901523743763719030286074446070035678488170499561754180856359282322314902014353530576294628561566237082024390072201844475877704859112484456414730359670798785133901270925616732545802603162431271566472513712111716560401565224489872080194349149480698544044753593562107645307156187063352437420553362586649504721255263795614227209859248548804249694551909731213852318108811236317327636933175106393467207736573224656229968502837302229427094730957616624130111415586497650826778430481867167412066871465539874515360745150269681125765188347329161258008012066743350801486157795897964434539546558285683176882317333969129866086986893665035815727794189397776333847823723665889556262185409196319530805335776490195843350388088632119922394914593938293975962761307047914831643072265150849679206663686001672640829976618718995163502379284535034675611897060807143110396281526236394706723901620306591097030942034360517847309139876749736492765566167414810566955380442304153570411705321837684324465756465524011267182828760961646608523032140522046625715080362414621474630066639080135309960917255231350629536364877082465513328223017037301583778519389746246885658003462562452440812837694071441933644499294937117997933186630597765696943402594721352425667389254358300728299137056384006914150021176038785396922084429177760475035409003392376560254990740345798550100016721705273033606521215580782881215807063258360149258671937884965587685653589960213393693933621121323724084994426068646876904681777707255782857922378839891777914841060861494449970020933302779542468806356246460708417802134242127080318484479512918505312466048267543935934240011117115811432917245422769165208315005355575515726422984715008688604721428765282306548351396683447448688386815381828463102703328116757204953612144224196410036579791355499011674322223428051193888361223740143497895571627578502221667011882644078804162349592160858138110881371792951006924861555236595040423314972806344140736401772891321834282018518958951302036974308979334928660501400122493705077572708080912510745055761075961361609170618254193694655771926899239501365425767028241975331375039282117709762553180987621340149026329110569155466657766006129192783895229203242656413844644523463821827485736452190614206544075700635642031285727971284693469624439775131417217332345821642893422354396736101647274304829942229243850620339431795489923911856252322692055090730932365651498427714934116379520209645487749392023609398694448706048419524958260125188911492621060715258837548658329907645945012249913276068211827602971403399746563632073417274597537940550825213390969505089583280755499980764541506336601441186499677449819479628564023628539592472095312234314529168879644768491523867716646888740654384745871441206564851578019487112398868825905767241829926330901531451882693608439060528213488494701048426229809712870708377816655362360085326450401616094167244628966316678211143374302937349280751632898854043770862805283776465009494831290939365437596622580188261171345417191847453525147814053790937230624558618179402259208431991419524654569368485671737113894190828464199401466041293168043180915319963599899459710964189196655918672344042668794779246680438082438461588956669105303954425919153111942892231356169618932739538397223012887093346500696255707785098942507059205238244075004990497029103503639170687325025131149491548640408027527161894291577175330888873116773391839187806692613197771583218718908918522719241279135124379868787935900630648708868991736907667439836173080217549355100035037609433066686488702590102679978660354060024261627881601157180537041332094185696373337534058772065376368911778552834832287637841098519933022026777380247430239233809885806531829298356800704507553228106243151208723064810497657044244832290340404180962015332579642267588252728126992967213139954713750950505517418192977939544115711965751803614796829797618870872548338501680508168006284579084032387903172795756396662037185229423720118661532597373251386029410483209624249979381245242067267132049522391771937348534806200691707385635789545848717236345650394852756145197907022307021267902529636945784586676345918783177277522896842076682272489802857471996727438106752024620344063609486591624483467235201837291967134983908465434589901995792697346704668274190828161081225499296173698307820812552100299550252951287796505092188706605399708740665048088313889747916499719853717279519850847888588894482261226981940531908665592849438010009819760498479896013607243476985325268088559208335122816377606458042403480863927425005293615961491770339509138435587693935165257990112581412475123823683348506434625995452765884194311245643417073237554927548340835673523110863711004549555738149093200996773096086530076815314402719002784990346680751760880627864223493894154819406815753401170308083094258653300949747487643010225019559329788492032021347509961177959875063436732603088559062234045261882813526233917376237713572413210364275135172417715996023503465755383823678335107477115239338505616633871003674020557329253466567797209222746729328352117132290180922305287692887594490134027934908090584269792441120448673233804742794085336649680965728932806254561101496687441643420084855405934076429836061064067860497852538430296978220612407340231757258938795342689162099778841915623456174888656550587365608783628883571686464089645208801873630840065084339511857608459817877335540244400497935741878977924006558318995315871524715366078639548558616414298496756806368775510971296210457194909400800219040022273322963378810423470960301748483119499464260607084146368958241336370481410026268336219966926790585209467122640762934814606421835089109348012132098890365273331694379410012226138183160553705441261210528250318654269634447011699913682269909575669021026169433672220156648516828982410942904664384585812846468018874550494091744160868666188100818683753892117724979779290089793065740394674069271917957649942760606335670668226402228769529726056331136373488781270818439842432342428274855817175591475572853822364947920445299469437751030842073217272140422218437458929244302952500868840981445610445013694812267299056238685168571692455333122619983524432482371644549464900514666476234297301152481045906459177138605376933516723027427410017447895338189572036748869927336070356604560919648845747317572752964625481319657879113244159154561968220667781818578799734671066634460706835163941897244257594981761029746677904274220962564101326417451501483218005907249941276260906853555046118573073744656043270027831416911649449910986632832224196004347052420838703055780439311271884162539586255029717086846277048625752172171146262689110234221373074354780701146347890037564578514788711051604113150190270626850623110907315276282524858988169819378447934232704331706411878420553936946676824499188727001843866784901887722249892731112490716533927379616236496405454550674974929658831052006576317314918865099436259475277893871476845145482554976566365938337166501715325499507362065792945356461468179964551581042562712201685772376524587079379323912078484023154056223760916881512436979323960194858831299892975586786331131960280375420058209986260590145688513402716825597480472908039986252323766879163413841147043451476452213609598379174334444120550160837028664813209570221241168979842361191753094158743207878131510430922893466274382931229298426159654306307299061398459703927910115231440955734891783070341667792906750709168887913250514725013187472253463433455877154686219799780533263201960869359669022975214897595334968017275929455689496624712494364522763521233332379488971697069280848537129179719937237276719011823347108783189407631982289399604168333541973509969878496511736743120144461096388761454172390174253509050361420645921227634100492484527520645747549730729944179940074784132274641001322460117120569309812194474878961788875409980995064742965261867645687511050705398143678206053185527141042348945812580868051357663193669341523656374013161092001656061812627900925970013764334778727468664825869661016257941723039500651902407188396068996749140000832721750056651585639620805160511566587539433102080518326846705914300267142236138560369509270898016901344963877263484721468948972684790367383963367069529632104279416847395274681174361963203908276415701525205057308865531018080473457254137059506336688083505335661472726534100033209240471707531174986343742137623635825570264528218781260356533305635870828439041719348899170995629708897732960664362710299963489155332492028021857303217974503189170472945096459187630306884791481895900059600261882045072738187825951770530448061905017429126385052586161944863511433664900130562129109224288040963822285840697929740781109197976846771579507232210717950367314556001141110320487386338093742569995139150634231284688270838135347240733686106616386077250472718159257151372612172535430700794309649775094734410462647163674502019370003893168522735668711864069881366574209760720730051904211372665416686772032838845153083718001085863146512181387901043297730905153632056809675732275662113240519710900849095139496225905643280836700377701054678106589495946762744839752640487545916872880830149778828450844120500797079680939228005729864517747181718695140483027639786786675506952044650087479153773554120390450022259743061099055799977644241777043719980651384306397360621860964127018271846437439142232644517446605661839047440881894474279109400955957068787501324075628534422353417761438412715117324051540058227279408806830014213303288641710233031052075380299610893561626751805503504500983003024135675887426795430188969065850270153975320992916312210202869529254622556548880880584947408691261523219791999162220087982830393051231749182849259723754741445040885400337801414702160966180169010969309804002453071956802763033904812355933338312426865900721648875379876861719700692383936244012109729367101012769052449498046104301157518539085517017013394326151903752593554883340017702155785614913294397265257602248329821376150808149367976891422260632243031972357668618014618683397328567871618063065731312187154477479272262496344722888369203518916400695482622964329954322340879746653150096618892667175505225664751052468846354785109316066989599508495006963783884993450037425413842624546486548254583007976831375026453342870121159779189622514031390952802036036152639484483467431810235789345369472887691097204583929774090681564860310015554744580617470173872418025744987597967261712940508752719953549899587798726716589313840070315694213445733290679411208301839341096818413756689569406222739779993563877420975624753776735626084820078734284005317849039533796366287393498559875499670655100053016414599695684664576043096971609087330644105805474576602582679025429625375394337201936241396064659801172296383894617685216993242432149806219057673512373133941139148698274034118237735067204267953718240110708969463091963381867656179481429321512522811219898689613343748043201395867259136446600663393862030171593244769420464518416038730488127163736374072317803607406890752021416206102473160515794088986158641297277445549340677609017325382292150276435458414844058303688652752092970824995863808056717708349448196218089361971619852507433760363957641910417303863921119463599304014187667642709245521542016580391816932195860329851820429321827489441026936390029829243076769965614547174815428835471784457093370615300821728732326872237418025209670163952081958555020505106416037118944342033770490366529184218683785825309937018730462514537682320640235908893769012185633932858727438084835685401663556839327964162565147339393656195567471371814032581936641430423416945895959806394496791227036115346767703927361067490403169821557060087754168735614070335460039982731905554873509235399735888151965078798149619904286837848027395982018025256158301386939797078842420278358510558621155587265294434906286387276252447164022828702780834710725879390880665568458824172263846048335738308323198088959880507355372613109359341447546604164571573034640776639996663987707382953049127907370142580977609517402164175225037447617078807761257702161612301702227366933793138848579573065627971676784095412337621257118796612950474850428080234621056061118653058346501152985107329134019976522954418889796125328116912872255667100998770341757235012838482437377466997089828456395459340996821407003501674790714702815213235411776035488476648463828187832012495960481050806616856499527686492011837700160615532380552035466647554569721890326836628653654161447355702507696027747207477131746323223541685163755972586865173325863043876541806923173253069572759208340276211428319712212091090113667591152820465197748202275514447273464703725650391623403464079033852561483720969109441304231516458284102425089293082109562411336497783966963673447910402211681029225779114664585763953678302712463972886429142992196780960398051995816826172997949864918323668801095248920292513964041810497697591338616339627601334544936592824302035046299711297329045688650843058335347151917254850464649156121625564690711638861401158888150908084079637011048928167491493920148832210693808324126917475875413284212227241163773773453029244602587388123220449653440581804463757194519482228098052290252161364156395850351348270784270944892258427287121555835369358382373516416617921106284895670648822998802395028508632687595566129306152733130732499104753363027198342266182375218499652330069216457781150446489946168269218562740052281825220738750553001290266846725463518426977591968665462070923049653247169299832557035602067162021920665129488667851855033851315822556652763237549271042857840567850275919214039400151542951081930516339148035496234226087106986070094314911341247578848391391094809251295415190219635484762468705839733450756658347157370891673167837736002572429440663646296467713821008612608299014108026916134733340814909036769226640807233877476028407291525081723945925216933401288226439416961117764474522851347430538640970054173667503522253862617764168172374569292683803257381175045927624014029465786280708071289263506524514802809437883694535914397802459551023857502886282691957565987316869260414958823747598878289313894756389622104856318252628449097734381422802779561847865238603337332082457098092993323496993377879472287413803010359657636338823454897991811578895247554556438261315456896165074496151394859825676190791628807596550155291179413916903264049531343031564510607091044368468984106592572191829319962546821276028432180335649078537857785132326922804489413502962609112206098716487732256312654325751892136533445032598617980182705816302132187935964987854745449179196588626568984672087227901034965593678594578517657370104102248528205353353326658625925670591406057361083375846078879922992183175053048046530723285037023511977282709268354262339565706504814833510853435608353072971580026554860457889275986008627947805723073045586588294413342533082049729315500336785020105251969665266919000396821566506248670421370871540380104733739646765274022749949460542125499018076897031661241216546081647965841828443583207159945813119923142228612765017436589377615123497894633986784217579528666942961710162582967056757010271273731305235036849852385947019153807675176573421841177692061770106013202105635947080233678678785492120440287653146998310578417347570248815349702110988744606111336888566953424145888626242754704176287229474437480251108165398453108567723663067803059757360439628917098953976225728130363291694256015724644787567066287855343243821572867854385021804313500214551290102239985061535417734360534614247819567566361744801752336250780274295860934134689921136712373578158953835111156529170571706993592231954949321792518724069649603259299198929942592363621279244942526278414888610945416672733485104736597516951202542249482751767266685547206271573181757851261526878912209787299511495997085986655402214623887653773301588761554812127008678045325464780810752966866797625027006522463783418615848553797366529013472357579144906043710130484156543156638979876496053223355805476775506005260048213338330756856019183698181868766908497353968528217006448663039187768325485575989879656414526262801764488292321840662905519839171581999949225339115486899784619911858276941353581561597999796371403902518950263266625699724780525323870035962313497521404153627706818947294841797121300470809474894067506490360879886673424163506893044072954501317795584928046550303190191409462800015992082372817286480781749393267005343185034426233312524396178092292430207439992599335677291166072385805136512515436952773440170861362347604207102957275942288614579153359908087550492665880425749087102113629554373763811315936231017210230470355313985543207093397303700737205503722885433776342935498964676978682975496551304434004039345497873087336326228723210494970648347457978836142925238291744656845286159830640572783871939357613639283848863111644202577283890471320496429103338844651321144682471048212065505115457554143107210733812674090386736632915808982014533531195285655856964820153852247898326176929518183235815031460043892662353342380416117854187600282259737786247341154982827682429746621255497408721015563002621277848032487781562336424052552689532189401860473585212371775157817713102710990412314445767098803390160067025689930019743727787339370413498920061135269691574341787094301385523530004347792769759984457430033390614266176517012947178661336865233643530574652013833853215465264841246520583104180370234209235623626776049709634097453660664754020922875763482568491750117681959222542391150455289527681894893313848646537606220553572733655818800474564374532818377552312206624561708941202187302261945408915134467077130775696152074864965392843194109405709650718956558072642734657664654495695522883283794597001453979779530209061106533968847578872352831612108792012632168058471172549798137166290993982406472101176217268923702674894682032761356917242953944606486104012503757463273161950085054281259750872376558015791255169150520155686937771446141759760000311327705400862697539568429537506564542063038371666605669877402039571869798302196821762099199356076574874794776326842253305807741249521272800671380555851068930054165915832346080535779584850424135079529730641637689822565760022860383646141488890548043788027391723161771460417967559849830792833710252680485727850713646996428942207764713339399407351960500520426339042362542421612237835099773125291088517383280147571656508515145250604962829331395219205144916621934936809783047996655669879381333470862211392892457128653886109084349466287063116055169731229775307057408864292138483680119289511729702487712718053902213879689805028740104389045006715681814497172283588214763548722495948694766404111006617372783615452490538107080665204803234632719765161966834904911714154774969659710815179703816396434834066576012553844559849664235981833049136801053302316981936525413162726295105613743798325548599762043237949281798431592637127320248617482868464132292024273621402728501127503999116331187628675448426645111670264363183419270261040568828107142548988652377176303665918746882156245425425502677776147325076787493123119092942153166643847637649769012522539496356339139448413535013026817040106933391020494517059150540585918303314953541274827079189682531416038099587584710313117016765868727416813936310588650880679761811748935518405310700464412856642451279810459799641607884098125039727300685520245523856996733542668514585156269394557167290932223214240150303304230290686773128431090499526146690919234055257820479652651331327817055786045027687027517972081666213556013909914227780517730633205695535448506730326903461490469175588516877012638059687942823450130643750918665855787935790962319489981257659238520259528567438920840899681602062480470013109805740349975728359882329788981210522127224687576253553046341617948564054025273741729786333513108527376561979515406883635131553863731746209500600849424483997938315619425894582206109385999368466446520811291717978645873781042287280961834942926085927304848128311150891275360991940513335750069804999669527904302061574891770753702705896783792929665977748426749132362525237926343507102544979155212912820754995396201104740521811839329126082719568889648910544095482068496805983860806651961434896341912538406369384736876564970928751616938111031358964528004871533475500854528348748803223431328715217346714130650715404514476505136060482341468950802637290601683662862017958247592750763623978152540474366874303854290710046335300828914067493093855941258348930169886044847139245351165786708878290353493294428004605517089123314167960371471838985948834785735324576712151130298994006972145887336733063710230509568755782978575868896185247773182676209127497420275854430172846731890335088965363680625965968339502088076706947278534519570360715887504201706387050490751297082601808053130801990379935520834977596983082608029335281244275965022302796662432773245449438926454890515214164067480339087271818330085906097704909702467581466195767427966553932287885768452847129753755677641441097349861589672426542491712958334992686353526619973904781887187519642853358828247838810859218416332122294471904549769327525783679407991959127093318044950004921514931526274180042579334216027884164918264363461249097816096290577601146097764282863963135560720936286172817992126093434098941628426774118808341859095422165293242624738483092573421621624231783548788790687232361316711805821201047698605105943753939978654436845066474450858935616770532748637803473449971376353814960827321596155139162742978941535285500081590744220077260462170861188503402490490098727959360882093765931594598869189258542795574965997848411365930430666388056763176319169276282947493551347062771779945455735432218731879031490928882663106936781448742931035979341579285614460375841051164271336168622244529859358532190327746715715408055060931658624242033715132974918243881441162494615289599119459778212317690844519995390864562467800446616496425132269484185110913913419174765061072736616540347277132795251928460738320228600484519941034432101854994665867921879923495541741762804830378347733125202777897445025670725349435309206418575836915631931734766159275845749429030168651317981254193775347887706964833918292473395098517571865884525375583801589559458052916477117697111822122931308452673263313892811322723022260490954445035739319001644586528925149996260778884039456776540154506967622954290646859769254013088117500979488053033905211868616244207292753486743270104829744138268476566225776483948179778232794057523130509095803938360571274275531757816304557720211525694110384994210147745950441262265146564776276607202049749209261810091595597690048546819393732306441160140808567389294066711695353437588556253518085976744343174503811125963785786090137668791000111085702366456299873370873784925044005603820653210945805182715073710291804596654785729389407337972675104208158445502572864253773939211519523218994392881714609970818403732224446797050994517371966607304291171455599171678679253119003089222791042561468729610638930275543100075658972339743174439078474336082990062247550584432522390648063951552413318478639296233605343029029923787307759091216760626616612044136634321786052662682132563349398551659729067576700762531193850185563715327299333372797056894811651052225946185120502027470802801669861588823951600184225356651191432016733894059083247056766733435823462707219668392895012400218571919036184294004389451222506559976734239753809028506345890322250622069823768847675901159498614965472947333639355225226825129342507963804552843924021293271167175105925865396036678184348038312993884576499082079688990089201609680831178816849822913434300894512878908007925612333488185213190360040319241433658601592682137859546708436358324801960450200485378342597969483978848872199104745967295179387177008617591645596027049268478706926189184996115903062445891943950533815116914969463908271951943149813298913762983327955238993812652729212343747260839077648386831547981433636030938416982553088031690302188319582801560280991613004796299960375890396316664747832577438673921442764694354529160587995363614835891871377553671916533941082873311458795523427763373092949763146106829768158949342318657201993392418191922101716109317691618580532217715472278829217945668703492155625813346825057651789444327898586385994625187663046768719882669612969753984769736351719184861615691330959190004180522225139833726733383811023099249281911854773748115994759032707695373399754324738041838701706441217036476620034699098695627732544777714433090953545852122739537126275651458206410675251401841534046003068073728437593075731006858909746509010804887199968973252485271598375790595890223973345344481503652009055690969904176708681308343494854899087496191613889620365492075500010646919601118236352305750764432304943520972021026992350913082099665486377478581794443249005458922980962251987990950185321407084127914469567308681800942554196950540379668418196847084597307280828539751771367319063090153667288799902848171961343720422552631860238750295989124114571612635345436732873988510329995016249602242765049757922642580246261314226610777395412829375867958334570302524842770461886389347511991444291840607710319302043377286253297370485079748327470113434206524168554217808073837386211948607671969257514595021035853126037748967108651069769513116872977030978957608100080469803215768337099184981478045867378297160620351686139616353908625389346644775507284941032015951178010742775822259148336924900979245231458109394654802549240928184846601462469482039975137025445487723153031039616034635457970779449821059684801580967305144061980898057767053898571721779287546088426374969292510534711658244976840278140552640507051510580986756912693701616678698857691057279835185107917179494560474866729277240307037398116596355021133428802177895864766809180334897627632926277956923275940755685446636501423646383464532742475062627847893041032865792758424812831327630589602330341666454702534562437617156111478285276810492999267856011459903954741745748746417245454633535623369358314391815880756857871324453293691518218672955603921691279927078661336088182239095290392824406267048918553551598418461817167989108367137116945729670120731674131021699098615285322056205619878245210846915081763964215129953858191455899904251753809128217268004590579811960705959118351157574223549101644145268976630256755868308659712763496551393147266050289097270435764282420543660994040997511033899975469741072392316915696500894236622886785310924153116411499850037277349681397734643456359161198984191812696820051215374890896992780261703366208465198059401613243952948592981478888380536484158678472843085078726089691505907458496490437016125072504133925448174139101880873143418782681215494014285615802631354770322944332325762754275730266828463630060289713075579876323208908786387182383099223313269131228959037729784977903192861961508433378434071937784586600809991161033400378853117548294828778285932616229091426437621598970078527175572056779672980828205299021711796928163896082760503201857937061996552196711394683265526045827981305311060081303637493231909928772078443526432584777124126888563148184596932451226353352862689143445170903664809443048659737219988898860429427061224745517715653650347502616292698460098320570854219109637854079143079073235195733427015692033870245553776690788381970693418427232001349343932792445596533121275155410222611535774860234472010023363837328960309803263836756106564651948896508589032653309185741844764813226600864153466758448280503309442810547972014326841696162983344855265944938000703910888507186398904154812615581723887709836380631719447511547933732813236999393939437920703832766809039009145053087086183102484759247028672512569090913455949357731620464931233609667099788608356031866598658444457935417598851575188458303806933269269980233311378908253133080889829308198161038021865527851429984313631507539577140955745545096393188588212518448788478308636027705138602048733654758484840349152945413185174721983449097857470312795909253422440411084217666238578016700166583310452972968547093753785305630679898349396640124638287387303107946903266080566331292698680398193123987167992065624530584168204908524926769145719055236167574372925761399290138776121546940809635011072889622272489787151513647312870263435208915823124071192345973986995836025838525222150953826922597696124361516986189424333090011417387838673383651026301233654612955269438974886485447335984350924910536699522014544521283864865737680943056234592973799026346054972787751430176562858531200666744091881645210857430056526802388310530481676247641646361715486218424842945369446686370294600911000355588982003279667142950190278375838600685739012964339931039317381250808907283414774867117795622865972807787250176644796906922693656299678535319146196988621069615881046834824255151721587406404446862440347504144636626375030280480219700814104673925516922894035728393351259492705973168416303015101008449499071844520191184461096879118023928798520209554163883154731116130968565372769696329955456695045909702456824742376774344584537603464847367388197567089419296689157144852939944751046863127190360361750983054532287364677113025927130439129875969574040584228080264377744234529517535153291313725499279838712446768525598866578754642313180308833106181974200348840669028875845771168925576886241069304890953399517006657481784578163998495472431958029195989852141538006066032106265879369522671078139229543021035303319969977609995966689286382121980496882548894236609436718012540396186765984732134764796306391016269859561905283656261564429009021429742312644682684023025973530586322502569494241534062116742898635166426358554509580458822710515383615029797387391995609839086648164022864273589933096667248252418987466852238427277568961822760258551043290037564900944450062466223098190991515965381542722419202265456996026463647573604667622826628836607839096499677081390027341525956107965145590827935362648955772352892063285630788866185652281737342853166761542008000297430112893677099605881051348810923257811017726523933933267470852463432459426688132896389996931713554510965890626112716548436081397546652091181476231738223916468438488728252890918878688642477067948257973579304890601682246897524605571581393500773374606794648552489899602569140813399750929070543146124492817366323626362345258887947807869608630648856631522545215517239125813196140120839427147803693131162966041874417330204009845366432910576098683944753269041949593862277456869828254370680554882008021391182499347019552697004005450299484020642102426398376910489431906383774743546282508857056304537238245844463199858132341597241482011020561274410825075991610569181507882539474288272531246086233498537184494651893963070286985946506984179707336673550525245659350737169355475505885185547099618284073339129568615032033158420746483503610227985242777622027310125022280875878037441103391147308773077406401486017034753009705219039933713763940776677998202522944426390888337756976224912906291080387168784124109396957560655509996995012463264318804817048797741634766916812605077203736276964091299934088733569405604674163230624208225123703336579792291255139226076319125395127877491507741399102832830539686128153805142597505732290503470698346583313402317015597012779485311430347481535861760250377003500379896106455437264884994850296495491594553776297902331800036701781526459958896070894203328553763179119937729302866124885273622639313507050427966702398457535665985769094802161012883669917220140661773046805539164119529187322019252911365965005048057222118507632641603485663513623627237214271960018802501286680738741326936127989759582057721456910946372326731757040470113280579981883552122194233714281280765274501218250815697194799816270160416382461483916278118888060876907790233783456721046561036000745000772076153021861088694854914932663660008927756868022377067289195991137925494863841319828269679956206092059189469223731563951417504594061939644214214351113828375759554001738529258243191533274299419095265193403102224533031137801208636873331911113424556966206281209071039049504457074311539923571216204295903469342172712694285241330837957905024485713095000002523144477976725140694406028020779044227975478341570493520355133964590987671149993454708275670523556321518996187291745856715558713718485782132245979616675917780305553614932108097354869749731034303449743980672857996494378532485642713124601918358674488386180198509215878826383192017491482191682289242705593042475661976674859984229928305944252764215425245436525898214242231079805621915139368155650505841110498425676725389327013547002568586109337098089441329034254924583346767200758073652503410980413707938903641522610343058548753555265171813592726370440655606824241969523775151657176999373199688771676184010596115468605384325370907640243025260689700320038029999939971218697280050702511627061522987183407398737911604608790697963659134529059181351593063907616390731072978456980266832991814281423232681821716333447905883282598515207585001765967997438379473628839245311557794601021283563733913166859258465844048352164810315900018671833296207813569375761104802571513513985914517984678841778525777412513319478127139867329194589838767017365814267280675318092705031054344968245913742759760104504031015295868256387417909881258496900744570355348780347747713462829391256987057398275952311557659147024765901464378359087303979723436494104626286333014746892849753715003463946696275057641950782946551503482514033158431330442741334903953958911482486972513274461428239688424489548906326970680441749100276259248904423230655567522554051865418040445764393211996007949839484686351771579854773282934597720196775992199691007024853921954717206794535662652634953056726693155247606958190792891047885268354477229854633982966281084463289656234052399782000336504712427797568001390127306193101329906768269333935726048089280130334879787914591261114485866511087821471714668945476406726410182221512129857966618270612013519501058320818625891459782554789429254552011768338209914755907078053571568714479596167128977679651388378775642780747272520153874774483794545218936951267373140560039771861277167479649268195278379597909704426296044487766962944501931210781145086092558885567856017588250275615113364009159778917316735100924088099216656059460813427504629447002124794024784606244734296191032341145409488859957282511742848927584957996162292609175206270074505424424216299405085298116965488978121477466410642749046332909111315155287562994716203218203808555786318214586661538069377000320682453237884652566243698126985348239310536223190879635993658344879919154643661930788285642108899427360916372583822574609126555961034023969153240472338148129000891644897611792704811722521254155064841387796525588646071594032590496906095790396708278747785990842103515418652091477577088886475918274842575885874357038953489192664968250737406877223042120918916953853341744499962837904590784606879471754305304226011747182485193688997675634941622218934087592059944062365046036149936872901383832380721214274423305931927569240842317082915446987845536597660296606731801091777885001084437045374834934021357147633563107810216823690070517093925217546305915463326101947084426613990240898056340662560698905433393639183440812479988615031864890114604895882200350923422711003060676845616247765956824613363232156228562434027893305288976901205132256303048977511161482821143748565361948929561874481092038850037731993223980317953392410244604305364784701932990746600635059871316308977039265446179419407854607114444674515858474604004924842469568653036780481206571237294499701714943929085597106194701937333199623094792813249614627901852288247129213643017456784621380394334522607246341043542423708846063301626772827324399550601728682060369668345373081261690618092162872757010496434798211565382229334189030352242312706926933856750373800052445130364611504612866945907228140909487164372889924905430362510709557055678883531361296284512060990569996333946277954618064938944723404897539392533596458212389404558946083473935653614261718715715433435194373213654069572228244699702319803229640289547555972486406799795483597701214039973973990878762644684067819204678836440299753564762843914960151185495557249644941542801323084683780432659622428942251069876578208822597274998025858974233149563214102589900411930275537039144673095076350429781649296692577622132528845694866036922546697756689544921438793153520656590837604319732507085213596469331829058938546779640154446539042172670595650141375584759907196270945631362151631243812764300901825026300374504343058644010242436126722034413217371256212262224101797114838633479553468182188961460201073770405575433763263655870231069118786907082321756153779190536581041265945828010253138969248164299440636200095021663772813170256731286131680529350786136389045242399804150117508709853968126359168926423731755637165550424585001084873195994767976870027728443517429452013251800355015114915457375252988172590615974394576209217050484646694944033797631767513342950612829696152662289038861724013068353551909666313991993286535089355979342405328943770108636701472044454639869790411810161264272628819059317438089574032093067064329208225792012665875135030621414706756715268194725062492254632784814744212063663886899520890277827399120412682305498694226042426078502645683924043874961906289825958751918269974504247396184976142256184763935518454623984751160298758866704791711226168149528659726319513100673946501317308040633933927885480656744342779703657976239016321408908921987464803252065394237297412641535038965925045425259660723343834798601960817010182093525124786138821680837102914495779292973248584989891744297222986299640593305557132686939243453792209104476717877994486647947238196254185807853086700805591096884982491949926296669204643136157713037496163333433530975425469965286733842326784996390572403844742563375248744569624157603551348014978499321899206159812471444245495549154655931472265213517629008529197436246335791319443477161051272024183755538219563433944196009483805028518580689565950853745549115279643457110531898099624029113009188984701061282418638954719306691140695995574620508377409427409720794564659318770929095467791187925890586188383346245454419566565562951838083118745748772907344745531049088687464885659170109119528775209854595006716183557851205532228261043072974304672166773654404762309886439459388255966580322332132201898930132236178964895947170278509589036364186759667324197018324595825186500790716185558582492925371718560625189469478486110361274307562514381678678262405147065622633770707582983323019797349580399887387054064524246968215449072768748669719890098402545026458974336164267638297856506100423018247818908425673746231323541381630474196596324378745532711091851117793198653440926677777560176311755893015779766655480076015741916869017780514523934323349596460118412394945054546405219707947022339667197887259747521531622105160362430656185790644523206795439929858875350218975374344754784316736636865499236360689562345888905573453357662197763219424083213738792013077351992079246669364715294089035482736938480033355535229077670191232937115764825512661236155669122230148290269574329022874255669708647497207804974521932177988624021724872893819270316423685447664041437184689788752254553071771209522267147986202407920906295054472668995857117746542307487893345392836004534992829003600444187868712552513772594594161735051556322555471404930543453747301997407430412021760507359354218545250214400226651803463880018272781258787952827364896956146934869783421269541731879366033531188902844182534689274341532509387149239566166881176038822975527822990188082072750952621462392971457284272896290737273587509513322996601692047983781811859194815434318795088368775318516688774802589921781991757023237565339470393616991877407109684759199495924195339308057351300592193746764176454158181640991923500979258140307390310567560313006791180725591720415388223125499806392879752113556628972497412581041087343965656776568718374271407379254334062383535991354085646021591880315644312594157654911571796420901715541802962157064401449961435156927728533942967233113295700620705107766493395699701098062219075093586205098003455926462777780799892308877029487509726679431585320491081369364474339539463535841103662540925691463531568631020334798509548015599578636979185091705345198548557555079625218364212735460333403850504147978793574297537622055779037254498857898840117261586727389641405713632211743996076426157272066891749308145110607157186664430476667482101328081024071979334479066645954987481687665992180068842650065428509496524977924894853245815875876120974721226907822389633707540993944054812437292863436217858199027251340387765484122389254811908033121502757983751981093658226215940767486827430438656379284669050298776532761001275918701976281173076869847333754794498123152227376631282036455489816084421266320875267596896610370376426930669970139149394073288060508868898459107731995167555220854872074056663702670159387780693357680591499903919114416046884582223451666970089715909122462831002973766809019204621320983680121122782919213851194078211230255754941801355521115043348777790332510843904886884341075117743307252916723470915068270552789016963241721323652918243248034130939693392799575724834193396932594554372419019891770617413114252474547835168946994432598305031136003845493057433058097749102985386541865516615099450893907360381070507241516835193241309034582717100715877429363498299866688648754790131084391427507816293684081808529649290913166745503963822318282330877054759344956533928007502048586515544801896584771931055312161884619074834489001688598568556703333983270761704012755057197343267111255628798190726980949289944506913091383070771059618948354637181520215135782263304818751624095692020849560772631804376331443943846220449243224059317756415850522254324216890034252779246979586434482131395025529650941062202418793236813834647878023104801814682411126311085430785951895963568065548859207246831484144806011887053215623376906389943328972772819928516937236815093512585359231215697391020011374506033377881054033140059897332520649115717939978106291484681302068432922970716726189924348439847354350746240304637541642804839371738588220272727251348880340800823265757062885521244819843035837107767865306448796037565414775639644458261157565323210666484094439448588716799367840805074393074837593763758188542193956480963778920463124357171719289167086621736268335196574901412708212330189016725495655079373132143131345553140092726564511638755347503564730421301982997917016408783019818806206446491399964022987228007173100402903577570173628093803732692951300454544243288212645180991170506351256523437635665884949113319278153655452744090149456862926002749331962728107264463175203161565855470000401406852238037881656638695855883994751714355964437968196294872853050700176981382828157257965540016274799196949907895815772763163944264571469109379385301467364739832207280829640723550896119552334695731574975809832222358068887330392039455338624418498408815319128004257272434743617475468879443885290872267987847009224780902586411816463708228636454445427562999153678030150004430486838186381287272770622201098447950662276696184524524321752129756321908922207465566893826998065522506074015847190360422518123990757026518570578478546921766588404936181106528532160461950170678312814440807037449433925189119036389835577145192693185153625889340841048283884003900116725852018842263906452942601239347102466792109458115504534913476436499954374280825607286934703770681404751268875749385195331771952360646589560296809117495947482572742001879471476343062949470617033593785345274890333424582477430056748947023816376191040513801913659812024581560773646183175297415970767449197258421214954310170252909053926903855035516146340103892122598111002842581836017440507932434704521074851192173712485182363474647665171574072871193377325361008929647376133101470082368651037755632030772104083339175812264008907602466163564204920076596468030690618443112747463196035437305380623575933808254243420580921621183021006755309319470090034715942634881167078212670186299068820830078045445178669532227433803337612772202472416155380725159698716835232480999249099408020064263372534298443779992601834865793490641252840824040896610470365086508577086826069879840354057983406290116499009136730364288978492093912808309367841861468914077681069436588951330392462135159235478605767340580932361048488389446725625940629051765737768730459739673021437695733093525009214226397857267740819220485838757526426405399569945439230664626976505455873107249813871594498856875230198170962408696888106289754899579115746686609928792840829773240778694321602370481050013498955738808606689062658570660013012176757951566578597149256553678231423136071322987291390888608752814835838701407394978115766057379410995791406086707369992384066159464777917025998125369620974010980097786184479682587125695629815330774689392176392435263866499606137930499855596749548424506868338550108655566315154108002113246170289569544690903151319192056792471751016910269528076025347551439696281475527501512720281774486824328075359114852533910087590204208787095051570770857265604296572123887820806639276239609125263651927485086883141265728803595760885375296540827728849911409247028121862374979653767947705269041969143974631078200518220170921569940618174349109140976382906268098837648639444848706516927650175699392876996495692631310071591677010457048373660837888698893944404270126351251019181707860002123916206397247129006192202930690794005817022166621458159060450035306886230066392455614185728373585737949961750503370683196204961178197995656918701521199989535028888104455265425375439078871135616260459825139478288545664555870347421587855418768924815505931182004815629739435480289924886913642405931816001003502385143213924175830595590138145466482332456334479849693477183978204673271105627433936912064592462340809547986292252285252859854052113359445367454854919233883747435623184011878321474437803223566356944557188059650118520387452653254925646494736842161333647942482294988302647146332037513943814728821618318895057923346794913498521555259299423595681784982953337915783618613992203421987028098933695514034212468941067072689617126490502672198921764042969483647445213352125935368536189614578201864419381722103548070477494791867315177687942625867968420117207788142460816503305451947334010399021489811022261105107766263301516282304618268365716211900011834289956647457142755204161668397026948554245079849706183021791203345837918998931466799070991976652350007990112808697550708889781059347468618932827308270380313604034272915897896670725270318129956460789480415033655395819234743653175069300103910138880719402503165310190470851983515864994067989502054605055112561212323318872881657097386249940111180746017524318906248018304409295363305992320744615229086340804651897695354421120211241872368029949585724719930097828591436727019385527131130035945364818079424140585052516278656275407480566362457814757030846813567912209373700359261713900113111656700696572356888927106624200206098861039216908266773553919726462346193833642427039871139222320398532037967023920341281378071093586573712760619529730252785054012142072585077106763647702892366480202323526050131822794551535950943108720500795741170384656446818517148493576771570879792854921573316170289933371544377300861476460190267109031104770868306635933005640883650624172560132010337861405507677081020590165146914989752969155304356138464128898925290629465479698682631677007329505544420986479125702202044770817748178096851842809759631082491210821609160336177111820098761602345667753995255969715112771962218867702891174061649578928564360567653417956904918709705149188461279834113351874345361023036340598076194898275020609809945713175361720009626951685997639181861492422054858778868847092679238211192526318415107544042122617137399741926953149290117611230922656733538075032383530823370221593120312822481769766965018517086864433038537192887742026852222858082838594609509858405820954717795893028311848351312149365432512233220255215782313392705285641355363690261692365970177260323375718756929185526839675920823333900756357882393726533538162571450944551965638080563800064698494974212138410913660736369484238969537673878762992890096448828697215544439759760594899815285947982677737966323559563099439786556535898071659902607523310181164553162407313087829582315518479761778705845769512717544407453862922922614340151758850042711913863948849986962414201149180927924455815687714075693420458658325416231987554548025186562761781516912596150908083174153876676216148144453867060535314346869782811775997633281358981585393030526745800864979196862819790312089436324297469544310481389277965981379802256660196580789625908987323161536938492510563709069291819143910132792812418161025156856497472132732530267274844017151063554014257349697886435875849148056570118333883486854052235414522895597273013692579137277885198275519474911879311053540439584954215305654501064217211550167140946047895742859884076950559398739834589197054433825249285919802003661874098740548086605281402018342902209428680331179545572824714352185496549909260450456796293676753793055880738665305685448402497203812089393724762222584678395358447805957265591395656744099328413557833867491802141132609853967501475794453323918752431552413082436841369148276265525450156883866253599340875560811581305731639324822311844022620287682777242996701946289399789755352192998845697800366230410497190805555934202045260151117743831516845404638155120888622557030082789057642312046950791825743449266378177758908450785708226980530882919643747977037596919258360194397409300913516506991421901276624306533756197364830396788935618763291128134829779652732410264403009062771572653676004996084357854968665048440889651971229571803391641122619196504837741942088879584852634279874738979320435652568517655714219671675278890031685810879719784770030917231912215729009877566828129314700465575205079673899848868945813434659907110693044323921695807808924783676555634618409190409241635190671037263353220786184348441276573057903648277732322585038768279118057040552757729718028702330626573964237918269116658608430893661575253356792621211111119853850315187523898912071750029336942888013971455259886981361458860898590375278642081948189314623871543917721049896220262376999428868146597949477333207045017247753131123189946581559003941817287800186485539274465904030160783619803667478900245445595484360683764718336193268194835225950905160958710391247046053120007949955459183983812809019836285336930769171741542896892447482497735343327889256598163267519258295911047198231805792677402366653878520195284042367857142564399396785100208091454308377518122055872916551722054245979025190484545802494967307642288077187204400426385235637397174118165341430949909427998324031287450939205885235260838846684607657017854577782625247940087956408595618400608064969183997626971563938269205799236545450033495392389856073745969757065839107329121297222342859028259946123543910967669080850981032098475507968929680569704361123053972727977387153187098327858855089214929087839246000286307590900545589986075152103201804567446581265054618090379870993695023649791831195562823750553417402885039915178489313571890756978691161683801559931111083477551808609011188856591100062377532409382817852044077338909683192108238002597465049576022067127205992874133317467064565934982332147941349545715472116071059452731941652958470509880774009598249251868833093142473548261766915564662509983311678544112330731677842277488083881626205127485427134239885129798509288002524701944586442283054170278663477084441294841626157136036432448402182702652451034974881353841164326302204099686762146092681206207864643611365214913923998471177500863661526705732797118654675604408793461964938608094962127983828205109815475640056146304593793642147968630460271524408549573065594508569270514899110877060004344127116127430850808439888874159738458542217113442081890925311196981512323677697880530903422276206166622044063788270355338292597257995635605194444993145270473191024854648718602691452347291587391957505780042823543378690723262265467995436665734283133120172628940406363902925615448122432129867819497511641855326085325991576140123819345246371403753121795372864894866310543500783475437334777714225991828954471942016028548504795297830822549991552278932146703806480910751183299401421822737258214628720889227009541786347525339619431863846571138786825594776515526154255558497107725459173948055088869498905355270504772870538746591965765404377908765889076356196893687274192415585596343876102623047685113658740774698280730999182393705067010560741308623293574409315167688240003145083923702875486596682060244326104539162629696877549020248910898001446528669921864595673004136455538855580323953498065695235511608594244606682441627899466924108477164961216349117559945195404813864001261328044660952213636767958591765762165560970060877842901752144442969412418627612921239258237814287996046959656361613236848465974885785398858209314166329028929123786060325450587543943246810974381938817844118405283267771349456522778225393558348980860749942133799753826984691511264313018985783534247731225196698459644018302575522628951943616398952150082534620752313866635049012719391042310697488898357735785015309269617437684369294305428119482896983557502589943843728220918040596409985171945428026412255545776621853193945257325489795431085986381907155179056356135159876689497530827256842774238746900901202377816804196772193810150584062808310970404316418628398218616942798298941845899799918834598680286302765689819567563014737941519708961437102359409152467680636395098002908123068944019631634164642142404911174075257914370306110040550507969478074171828086894715874255190326702519294963318751121129888065646520879397671948961291792187324653773077659474194448728806384807398162281944359160106099112596099373970337426295423903936718515278950791920000904826498475560512236481784332693035900962016681747521948306190724070223771781291893951922738567970934834965855153588726621309826332120889085018802787520753347489144860173020338955946464002692627093912228280910263752522748528646156826830737839558423465344262589557153979310754652957266465974006224761035415137496485276593612205391543674444197034758402066012878433115532354027651331110763477996895101108254076693394249058724946920323386547246110845859130218341655839618518236310329892635181394055475741455891892114646413702904877123053171600418104638707076774754042638201402358941595278091967384033007231289406322658603336481448052987150805574386467379955370848548279573645980706588171888662309764977546926266803283653792775022974914909752348745817235795839790018325341257678768386982391775615775039000804032659933419174917464234510527906535403282102063836660751700717340536456837867495490800300600326684741393922492801370300566899606308179049277636455155384670172382018430155067550640953278076755307860507183654956693749942180026152069554936969517199635944433461504182138647341876140798833132139068726501718912047467867053162017512137753955962703563015555879022972900952884830904375587595528311775485328693698608515297810586236491968487768353660195143872311291771501374942550801686578708915190557581974518134267531586778583329539860686096740766972070707988025005267355870618962935994810596655682305934025442991466499315945626317327036702671721280331422302563517241332620742359735337523399888986727038881083605349471931063161492351821903667344641651375628519378752546029939663788466410479165495993300115716912604804141819390689046661955162732418939456056452018996482766429437410281044217920017005529768637210087828250255112546800258285084054290149695949479579730616857709364278971941590302572629801944252627646544194701080545864961734307003415237527811030437479289994854836324797998220899266957018032716384602899923892801548332011880153008511589920348135047292272822393759201809575903435435289220136055371771008556160085440122008268760235113314201822769766639829114068574038569253988559254050098902990460508590209789952480412478382751406051131628246542213183161620897245360562646675101251671383039195895564245519275205402247084775387489578370458980330859116932330047201663235126029372627916165611392489040492608283502456161686475080969418627812384225911579484892095492983898530632956695889718790055289091487539376571365717983679972916474156460479024813049029399505670301560443620997521717814279293976886920386416540599313595255673444644741611206819299940322475666831773360103558466769095948949463808143133782242544176542033462882264911046214552919121948986342235460396202948362861764165728482771711902787288489533408970684688066092674046698203407395590569497461513115773023040694806307395753799530595404807719329336684522479547424682518066093814511411827099926365684341753137391421660603571158991347219022568522354891819287161162350461495791994722104272707644163842477269403990480852305607822855080249731335602254864470589254343179266004932446044260912728482901145034047135238673617018524263032724143196364417151387202849235280746571339968257316840122734041649480010009444574283743487258704903534712036267468210872338588554884552246129765861055090792713561365898732886691653308621873258359933933036039222863814551811097525776369683997465864323383154283867651356263501075380584561924972868830561356465374203262494663138655894117458368398234612501741500813037564180037679945689207274615659817674952840461095092955912355537557765750275215943241883354479845987764465308591809470104174860371742802042577957030331195242437349911954212783220691912178620329976070510680117954539353512504225924421913962746449469052727074363077166376808345714747325581193174288601073643134155362290616976268983938073068389492639972203632126981153182838978872864653043643641832006586023209521871900969287779181657441802621921342651991644658283188931682967221469343207475156443681560843795613595714189823689852178752850753806943698069335943753759441759779236300689604848021975400636196189450605648884895501586776696858751959149722973310658050320170235391984887158649128718810300523909165305932615954485895961706479834744911724818004206446001381932224831769652292387365638263112676761938844470858842936541319773671545102998404328871976324262750413540953149367529166172934216730364098575050618640157279272392588188151371861278356704735806750912026331014668487278417382727476555616175052320900352521299454018289231134389640504633205954130389409789915195448900888588172112451547685501218799897164061632337974454569727465056320078383027064142543322060994749835152550445650988970484195442416834545527967687955934794510990332172097988922629716407110241666621062932630088660087566869356462294030563261071674974621081645161539223567497357128695840659725282444497824418183558955413869615410000107315341650162755662736147917876871600339596831881773786800855867989015812778794911167756106878486912559993949874881775066856175719701341430582123014015749299200395152520969516080880878162206754957572733007240529168555720081147900629816103587201340011754401457182694177153191867533385657503895905414791678649039938892873123889327753922618961871541395603616752149252412597563325753340321733440517188711341844988335700864581256587555873941308093866957790532785181194855876663377783922747169352496248930315651014108468968385449531435986090274541598647378615925527072565457610965064890395948357597533278373060795791060284849594589769458316889991520534120758686340987768889925555485505383238461066115155315912761479627357184679903534144443383574174320286556028542457347918059581429608258198543809205427688629963900616135660359889942565634685635720660325285055191915303196479293522115371724860991927037584372166432049743880200554054547308307394757573483987033015476584160740157862479422923387097243133098561686940954619007723918702447176836377312460075237467769381276204745185017381359124870069978423527330491508062890506572471303929545755899227457418253907111217652160286088215402075441149351788461407040183721299574153738457238303583619454471349158894092245363324600163328102953982399068650192906276999112917290551459776928024090569680933618559615294629140453116671521798599717651281802169293607639798473231789445325982021766966817420125392746364036924576999502821173166107595147300814508991402419239583372907287460916099890308998723344958619774814736733083751569436282273690732182940939933892944931648400655045111419917414717182312448259414321716066977648211062865944420287180351206494623512954315360525014557818742781112133361459198705379597135628584495867587446584804835714126077321479946041395264283322099434721645704253159959647411346834690203160906091352829263630527185619270768077289113580662396270710370757894576782995363707587163699068432962413606956179120574948570452783924548062705335040609042778822700172755226418769567172711675573253231788092935821232454072911127047717617709488005076342474859581278586154640416409762765332986506780690145235419722528588756373464184705044308095779727628871903437224167350810106608671549926309342028888761780217688025597101582628452772881706024730254682032615008752266739608218556758125728598497668745655914425340044339789839029865505820077214600697040684797060835874216994661894115454421735251600308219987911715072803201335773887122150768413723815722522125270774293510494599598581590492267098576668604837235343406596544890852566805770278768532136567683021440046947357994460994243868813084759017928036943216299809230891202366818041648218321110502255487225311262634251145964918941105260333483639445635839179732830620668848609110753121126232422482470448107294652679179971808959989792060656956530991315698500083784651848452474886160338072232894587177783419341467784086319863441490450999357157054206810691683546649271210736394394096241830177593703000457610838902875499479892523331559391258171807320330377241443143998470933082652342974367616244081256257534064775721839435867719277474613209520437527597639349986097700453484555356064430734363569333248590207522053794736670599439105174153655693915202536665878218036398065232499458257330627640072005258885433256497392122899445275346938145621688501779049398707091183429215101604252554367793965155995806609632869042648468763143197046254172883977579495922462181249057311190378117076255572872572682433729210037945448713111107462271945490848324385636392077536525298294125072476509349168713556893576831290933349684614892798868548639755540544676855646587197893608151603549416356772640556092659752063315588232251869149055608387090599424777819169554229946911136279499199334628916584654724629830359721605399497817074585156513503098434690053078145193534660482750332055922033151454834019939691675289010222856909357174186770750024861292964806485960420283745021205587844845892437261467032253563383373142031512823531507274620571625626932451300155513248459925125475752519811644155725939045963224223450813774781103864861309747906815477938153087020261041913588353233077424243512297242518648432507732218118893764950694167983295170716478443469467103349911811213342398192150397645663937015731447889241620330593861361187523250764739179082957263151010224552916956157440695763639240152801859583591698508664254821603329522456148533332113004529807691648561716995328637077117221140262975045971877972957024032262704550314736145045393970302266490919320033990979141113794575773315046431020376487567492258306471561789779061813514835157389680610091044944086228007762675577408182223350159385738315558894740515558697305854661850169739859427553897456982751563230806233217049671795932149489712349923635691487178996500461914483328162446571564279905240509708770532573161109636429642851724808033681787923387112973305463564609682012841418958028855037557573459202877942076200085993208203703459893511263211744649211203204963877270913595473287324937657689165890906012571162623577322579683433562006347991095490881955119340731453371791143786791071776120309773337425425384939975041025295686017539416748372514793612544693430223623847343488729886359232394797409407307503942615386643019947238451591941980108977064361321416627835946215408301105017269232710995703659442835239485226430228602796816322631558274266203878670502756509467473394587317286691603801031948019947379516252356581515240070809797673820166457841523886768402834129132925253260996277019593738826880426137094486514126462350990467459409167668442489489171021876721306813270523163286401033372659294806582427841648759157745457943507835441350528418522873748906673781218111990124066343905843446223906078704605931922887401413777557059012698841027373483352475190892380996834848127518613258533875837850666822537536575142569201234509961679890608409475731482751301313444216105353828330860352488541124302338729985357869794267997529757968503361457044029642546752749991264945039883687394717206551972510358414425264442854450081641850215605998604938070797183789944088676257248695176488388380186966566653185890470471686293945283661420543088150440159294390726470909082524900302032343184997238847742047654117552409588230931793660499398803435967287804320912183063278480057633471584698079361518154478580085748131334863570969913840400647295494235014623977851348324962686800827185495782494274189663865539272708986387882450048125080467372614289832299003947107198214254590198758368598829424397834248934366596814284736035002591022617627129729969033055447783447530420380654350893461888723454062916910855776246585631440720413417449854138223052161612267925014948596596182867421361001998840974882490715884008035009159306091628132216210627439865514238605930281122031567138163035816729464898538422915834138520242279125528990004707063216901784611151189925003828216135919803692581941327391967718905262604559538770712604879301936652556972741435654782420879311059518581115709584198234196244119556740857157946659590188317959472696042573965997080597862062445010560571680158277288480915247966927604619166166688039634691802990912054079880621299805004050551153515659596926823985365689809153984608854599593205456468340517087605841311330534866228592867766947245630010597827363933472473569085156414633472503688182956966554823341857870897839219688025600997048258751795691467713625098371896011367359875467605379778061639329853698510960766786039016770322399800100692153907522792800991520639511331755024293039874395593644508292076182310790545409244385153125226076239191589598910278889487958218206244509782206359503992609165595748702963847520424823537363040822194265252498583973435710007941497116756801448580333576433384605538887754563889321799267487328994679861925589562245907315807662855570346028493040883991553104554458593076194626034769659704401342236850949872419644934477832356367578857196170535042191503598308982160612864175148984165981702796848310555583754029588167495157601967173672757370399772165909552801454519256337408613685810404025034772738473124194518277036302311832310845867116161563931034021013854584086368798777119046088895433374621885124657087171960425580693674531700698845530804991146114865514029780716325308047276490394751629075361519446825059081243605506333962863888561606098690607486615136540643126914277059812093302836655703970856528513961259069187794094258059655212286057428940314795980942295359888353418004169648934120734849345174586143869041339421296230855460271020467673248277487043471400861423465065727102931004084823527207071354188958232223878291609064571534908767726734617384327381240526116394149969384229037081411271604468778506148758238808956918775211013767358754338151617149623199650309244458199393726046849360761191279640586541917227255064919193020537667241753127617681356761106571948898800359657637922315917054290854737350654937198775428624523085288519531281780864315699722445690857215415722086056731105955246390046300535923561665745140787278533866807367214810723468103133978155916443430287480660588813148615479584184140247521056607564796592875485039636930608548756141866439570665175360562414197979605444316705316130751759021705022466305641944183639638671003974251878819818016221722631653177668760168913369046703522027649474944810531411553465617341221514580620102979630660339554828949363985157154179744827736236294454447530524003028942466767775621951752067616721049928520419174249276164277985336466491890286323083961827104848946153389811888860443844718516986793630530446163373700913857918075518622995200495193058910198939734075646139519698366333996617648932464263176088653350284727969607353604627147127080485212960698108648756962224583934773129334938861599876996052703101739827651345351798449537397670189581932169280636146124902755093288200903978085876999575669387310924973477081854448386571544126462535966303726925994781280877197484905941895001715488748253337169933229635988430397017743195933511304215948348407295673245083697844181616780569284664860768040615318388029127662129287245741888064973535359588295595103269244573799264946617722528761440873379817885200327773077467460528016729497007272607025581007528680586544337468844617218396679595840156289340312293066008034987845409386989541472818940172324516147983014558642606884070954519548753071677425644951232924841978124454152362573770641273881172669623538129008603754120101030258933329243352725481814226171133193635637853906673462008758343489884257568965294985177518287208654782070396277396139598227864495082426467555616361104686826526490726068661138199326655236382322351602219195455936706706223385888647107681212032923902212298115748718270766428823777780471993756681957166609137497975426977483578221239439275347027378044817409615122131172246765736676649251477707499814334708886111426609958858905689110302064170552045251133359148307297161797454450111995350987048995567912031646657438892248399316931127675376668381869958913833188717713984107870283953005151394136519395186410300714661702132186432697990560400317543459293815968629418463305307354229146540239255268020652314455646302394053942854283138792257665994549038857295798383071131377386378410935465878343227558077154362281260295507842992068639472575493602708209308805212207655535324298747387115977050511872170179662370449460800738398713132377748467564861718488848031683230159714312592146633052974910880366676148157434996252208492566213821164964580727342324136452404544656198670872323715470692021439270073357232842769500036991325258584932635945231490961545828434921350226384453099621599106435102984596503856486006051172920153290233464930626350123942425137928762227061840519568600962871999476303481425834388170716030915063998598926533699114871129839452138059866740151400026654482571688605571869332582723240359597948603237220683605026753067679650928096189147050282518182503212440861901856491131255394246807135788739921131358679947694509709863518669892124391564357748435038698052274721324329334277850300194394545124070709111788916475753555297300052763564467538518968838253037282627824853468737102796483345155028297432611237360020753100184889085101341050622163319378669403637193395557034326062172736195955129105758367797103587693833218564460752282022230157820107830210968278348987118831465961979274743997272449843371699094018011526154699772434362698501092103815335526052566096781349896396212362693057729704984547863181663746004058318130839359960999674623118422842536601348386978495897347285070497887939200862822696462656600193116928130586680040621801199606389332702934134021176353270761302308755906094690010297025436860501068838365431696262977147052720409861406255593488056410230280059164758231816251816348667658541719380458157777765449678386806121124189498924792984970376273477283420081346561521829167898403640479838423414055181612771533410685629397976325510503040861875329287528965491080011926593634519692419166448572601006352769429034554463755171621211339448423227761351653565738491688187426742454188003067724785305239907158209280534261429676590043372171426950945480272971153820465364574183490128525559221234581691632374265038499620744914799708910533591385725275313841675647506995125052947721360162242447168615244314736411112505079044547580831476601312388524259078630054688586414227207594282849196986935483056807900514011123453427745532697622067223668606284881148319944772324005250351128194397296410646616229519486738148242736260039338124981536203788098983841259840435846270927219612762687334803854903495969481308912427081398281905322096279132933788070444807792377553466260583035229390302855512896416079802449973203148508531873745331971660777399920378579325232598385610540774697344327322451183120633051902113831432817112597178794466770457543195466036858525383217070071285295911085971505515244456869692353407313601517272118271166023544974667134616154408700348125961139482895136277023537219950212527579872218727564012962095440068575712220225268308653220875703320244233199932848182477645198045745832265496972854102406323315607068785284703944920492065169310635521763032777319263029984521605808190344711025480602819395920749359954806555805408852696106394839950702695719574303144134987363368418360392147459995061094058012181589066434343066033863266061895800907213992960265394219673465952205905075446169006013502989685956011646530579587072875794274195472907225135088421582550835058941172137295286273517910422695662885212093515944216108673654622862893976822815982215777169529442918368106110278531855236007109857900963075449698638199220628871116809707468753537474523932411247830796154129604327136610019914014306155224809006673411870737874688019146748733075910446960230903940986709377730652697404621921171445083893713160748799858747109179250858168781232871788877301898123635751609873964681211479075180178197524458640469103360700406391834634763722115021367323541678105544885628987021062386735670500263498608208682716428517638921924706208403990459086220168127088867883709047903007514206609778259383166888624124692942270793821047546769275047307159353590314092758527225100260076159105597010113921474149249756146069628216524770007367820251934612326103566070139459857624228163216494847593334979950163428320827055328906685447261410268810169862842828712581998988606451190361597282805061084533240646748915184219482088287030271547615804448925509211915031303371218910562359262435480149215802696834776892224967969591460610492085933157201445244224884411389876330301183770039484372393654193691806811512939402872378866516422705482003430470834860134039314246269732173934864080055798458093100857902557324988665111742185950417792253776877568318040895791321279183932267549007892197147688933461921475789099779870076556744793421370120303316297568353893523093859999096200555051838692998920576469175253144575361003851386052380244152925207774695079656089871741870754713891078494737829320651618555237402908683417021262062001879592889956000397759363241057282439272884261333524457140314819424606494477053097214743250586260730527397657643109441960514699393078761485319503004228891347666350431821649137864610986810631432590887554302997920997740207492687176866627961928661849243406007975083298474062384793849730777478446179117600765077779821057156527041831461169599105933765153281124115841131431186415464996566658578317520618682893212216581075200368629169415395554602505239476149883908547914454167702513535788416009148080095545082298984637021563234357807845581636675089454012279356582154658240559664733974511648121366014955206297771543073456766554323655199902305916024771684716841779546500118733500687937892914156797017817988034877091477221129109363693931538863093949330833997926861967775223556563237386118097166318434743953132554677152635189819226517903812696801640753165380619072932628947209366113058893342593546980736483347817849944819445151036030190803028626636178272928570654255397812219670337640234992284337020954888185495788540096313976169455765663955706620146831184722728805754239517486966797730706827392964475430272838007982163939960574520268687487210070390186759019104473138800458280510755947828834508156700809877781558271216442319245534290546678160287172895721670873012315908157156039131262903873534856464341017084300716244946558506408562729078561688426139072316473492238781588099689329798155752909687904274274791430552437636685816417617120885155044036931850623319403615494781181637806271976049272880394854498914362048670106822739653922662527798747560107547118834338466993329734217408475763713246909537225917188135709134843747375402862687339246162643746451808398673038064243160035895258998742558858288123600872770798526214349346500507339547758892158022306895988224272310743450823507822165488442739189678183965397455109077562478697152755091610181592356589608973154528553824159676749593970497467253141698663982678209001504835531838894902128879512762387297339733302207734170946259858523725429115498143515952395452033981135163959253878541840274172664366746071770646168326120073446404190994652063104151053560184756405347140375831789864691710010258489137242292099260165629976597385358051127024295774190592223537534209501965929393161890566975327499329056019095767506627300486682931910899131721202091441319532044801529771772831164413391143105752375575530689951441216390210181351608531712366734309482250923544196327518073004945531250859440295251570838180316792696179767484360694436625109203648306058989058740065535095587971978467023126218060777098211672078025071188849548968561302232589881567226646953177261181866617843019720051860036922504826558539999650564069058086757157310617483692304368953152071286890529204390087298269532585803187893895369630246177539762496785363005182311947401758828447709273983769206481539422269443990576373793315558443375968169056653309532583803255595368533492579547454399241937857494137432635150530420306946646822304996607614369348757359874355268850941986676210646987330158026486210929756036484369522308298009035349373112399381417953444153756791080477018889965116879159259943756226651497281971608507121018611479646636936416358124907472377292328846502979119059044632514223687793120354719550612108266435491204471124388594028815315944057403963363842399606883370639770253320121523432484892157701882511569435431711676248956972575458614288070860332176746298238566775422559416029760071080731229257379049918270420225639336562855494291918074911528033855755150144207074630152386117669593955390038755016298975505596035402495255079750226834435463467536628564403548066521224179672942930992109960600301764983102281809722622810549371043931571564925362420536220393732585405229489750344466163352701739248909543671759983342953893036669874861905282912672997131211703939787564866851724814462994187212216231333354348531079401008462004261116043858067923083100278595968810445067634598468980730439419918677249450790721003466804585535305982183312995770287235315540074824931210036266181246498265209447636352897609088773089951452565386098152295700754818802739815111032708000017180481959523417632836318890904558986068610261180881365771642240123329383698916764848446051657888512684852370312511419035219598420930986933334541267844456949342291788416631497825342041250493756120877665785664568496440218927775118258193493406678161141105656159097416725305377194053860179672874921862053007792839218990490487719058526715388481925962463132031083573114079277120886228791468509591067114106685238068363442265090435040068275015136983424046296240378646603243675099117577809111770511669997379371550675793088975556432826187855902315905033862265949640665571693791887786147274386358418262086014158114583112947602502887555001912106317968805638056131692855673903398481678872153557513912738890786099271627024629302139264192918791989808092272790410019923764470106352506207234733742183103889477020899995113447701308936535566775017215587046842614368680834894745821906140951879486102747693520357074401181776668923872782005845591400950546440320963776921564832448003834699385692703274777587075910920637321184258965481620992004127976002549290967558267182138337004992204922166694441410528722995738773752384884252995586588498713222857937875940232800477453601278397277821150707266645951191267682825822910674052907401225338371233496605230902165690972709286749603232330783435330880834476948760653018662891344935071200507134084543307188863676777998988838898291912560695981442331146266012801647940633323182785605670006421787635159987756830493055578699080822672480863762094865777120068948413658596354754618722435882643262275989685231042071749919229182381096010820753741903285956728117009994330013637139183194568600337974882927930886352648791666983062656737047550720666213816273143851910536065872175282551451654112281629709875697467588204168173558413526452488511079938867674994957267679253694967821337672839349336397108366411842805932285586632003753315094662564619925601981223438399130752294470663210117485675548672633575394545305236999419427696922712511904128187617511565885272939940673247776406556519498326835171727543965587804845956044251083422474820145494712745405650185047108154953758470952070131889059216021812646884171930408074203122871663846381439011416659826905065576183854712291129240622120117134509873023830748259585662422780030674842110384685063191369717336605305529633284777594782897576465559022582003410694601967752626135258715004258013545617999122945452086201189698991449253076140066681251913661577615271484463653140105143185408439605112863833033529838884888973003568334822930996356456998751773205407017402533024140565174887496091567700023322783843896237253773287536466243717904141932210958125374526278183445554009272237606451205482213541336762712558947531679102851953763671777428054267109550515624538494195740876140896321585030747433081836310289278182220809772287418780390003868187661735162217384545913269469653493280439238809994029031564113715954397306124406505820753927568590235924367851058391645394354973452009601913097088621243541991896437345435893042598098713598813793291851305075009188582574214880156523859358093005973181632898937743518891578341886266211822164622590801770564302496875230137411215964195269965477431748289643383373133794115834107270593589956193601514187704067272892227834073707813606540548565494748783169499724851961349069844081767480346187053507800377847969182980730465965047143513003006923247056881375510142989475802325185570221495855902121531488930108701016987826406910153158585980046795859651783785578479767392884071053257007306341537262918682055027003433734163491559610154380834801798710023335448086555709426717614782869351010612985746649471269155378115900524870552784192134298413700604141867787825798575964706748807899784611920134957151816134621605499669336412459844939718704955022134500576164421654314721367080272997675638446368546971024623708782289915516116777981457918499005067103280442723960374358707821084236051822969237444518937254665549444942800975545721942956647974732555962414627870140352039653680216593873442807823711745247483282791067560726816404989292135271404256167004866154920353525325727668433422507439689946133282991033975171473834562750181084121772859548679808865318136169617246551520262979741926260494426803312325279076730866162947082301522704424126448117276392217907282772766384403384638385512018386827127063031668059614302722457898151937176886893538448854013800998720114099885432814339243424879716726713237066870669749896035013119208224784005403939725019585698788355776685633726799527319549747956332258658799306918037193778340132965499774554824766785579065461133105785711432111337694852861096943445265494009013379446627829949861711511729099155346839078238177823331705097565512575029835032799350491733361205200715390490705609028915946898566421624989794615737055865040993255894168869992986036111434018183925226449871106813759347402748594719859507946042725169277803987583229652872548751347969864998576713943496848101691854566784434139205428126943775457210501419937884517178878395325061886978557653167682879879952931727841633712142925276226124370681515500604885008136644148462135015878935497902239264533274424518185716475769688039235297826269313906224565006839327929486386480343983149341438491188797780044718940393946957505048586817489926222833994021627341076099785931436847577066936704541529845278423834847667123034734673097687017505044957090706537250731532856411326646957216396370026033030829350867474031695344674844605159841774331684956612344585161339007334186230799707372507207219009624819842299019514325836819284522677371227267149365245151024591651835740990878457296840635527540099441638551896930050853810007170347431293867407288165642960598471897460484441179499870755506829758060359435178453733719225133157407650011666974059610416808403170070538093027136801491593439908297103622321637669327511967943777338815949695949627731680107271066548037102221128599779169240827704351867877082762730798418094131614172228245541827359466535316520889607687485763648077353560505931471714044219705230565930306093773610368143413557814229723265756787902229260863144873648038918340091018171955305490443848961264581812532102483478209764953989646932352011293952388324996000189057514746547073415354667170639323130409793777902205370537122615970799361658703734498662718708837183946009623096859633382280628795557658419692443717451568711430091004410207945455761723060008803471490946106573688987377495635939259490007701779712212004461823693170067487317410552928529068951328779305132541612596670493219665661895080456494464718190251676583527156199582832979589819078270808132430980812730285605879117752699399174075174677359788501449227102401477238511864934035486389144037667544139591867532394801184863032116139934957539895841134383194280645668885181590552487368277932235662326876502809963520086015885249271552193798381353247519488657749168817748614260539746129647066519684677427988424172114924303864007418445341519406194350151493728609713702436792037102000771521476618190038977793613950854778926991399793622537186433417456350836567121578354004019621864996276428872095902372959625061045049318131190415590539358980542890051245267624858451789409420835160122900165278899708434900475222402416558988868833346373610033222012420516537083876620002419466761602337192089672958666607972933243597744812169017833484637641736641011921642402143185681638106882068488226218292667327912291737117290799516228804684898099579094797357214150131051400838406194081193435693291307195663846128339534853208653282474456141016766159315595983980059911228568281032396284013628226447965915309747260437008259499255037663003133329148441382638186173821923902777876629972178734650292487349656879539307898703092592747883628978566022301023884537142274554330588857231469462788283011883304782559063976414910259536602739691091996270615028175444936841978234231378497657813943093234275552524721492267851472070493785074470849532869137524802668264052564302346819002328765194763436151932537274268011505913750882796508830137162209529930249817041807951892017261769682149829985546055508216806505263326247876950477137143922381427421974915751714115504802574177302605034230868918473968884818427427424259023562786662546158834931241195955936709905414588914872493091544310538541410337828304137029228086910382365672524399474383687279013413220666975465387714162262236027496728159298767151912525167156337933276442983268833087965095669388077921820515032465167608310510047310224573006426265792002539230247537985794077808024217785817437505450799684672488162795320691177427288273622457895624562996361061773784809786356356175637392466668637459479750347545764054172094800811380268428408778396121754657376911146407737896782270813920292822443502828731208519007773605120489742202517860550704928148965597054766121439673525882206520368142468378112305124639214421847331544070985518081220444959036959852351098722319909921929019642390339780720229443745038298277354865643806291788506565656190470984227875351824020405435637171348116125079697332820694572438869703532193999982994863274235398412742142820862490394625013318899247876140243954309416640308199153153519954581847415266859301424660616000393745484533436964951840600064834801090523724333428643050940507755742230530000889457867649853900126136171843749773046001563457338515224022875442783249370304617724519637869545476411559475539612429035259018205527719641942741460724216462718338444865420195611875563490993044912248963290713269517370214164321971172846873395828562353213538484382304813115894867487343917746481369551326102153052997526634687344115995916786278236353274903977751840687602209592597376930585722420149728229705892885179071137285017511091254297585123380104245154299163431962908465723900857493842377288328592930297770016389840600116906350148334614321538377335096232412525014630163222250711647382161183812701389106059769571459967182018955052643494679843538777447637234881886930294421343792109387440732530703571255800936908332335906814972364687747253750971725356682304387572230542298678997262922328198230606450453761098194938800406007859339601747159243427498653412525373552164850373314817881139086219808861419246528509203325025208060463374140428452821619486061781988033665262832661548587454697619381940703747577340894442212623534131772857184140581505913636578180224910079355733073808170684865547824856042947057394869412855983720548423731450338270681528317176359315825404192911352268821426807052253389335658054104296682755303009767036331633304787812438483083922664919160498507366707290565085187651121590415974542774020239957790533875665250626172052995128091272290733717130945168388415863784987567498293552380855235944108108379944014061551105289347707503813722233962798151798900748983153792451833506537469297847648659570326610355690700921956504821803141585735609032624156980821670632385843500586856445786543512632423128116341907815836369895514101462910121867873971042565847764662641635854488024212300546729063027508921858224574643703983374191979652326735849854004256771496135570023607161450258139665546856744457637643073723988043213258394554541608161212472159209035196410084516529740169090553757585461168879398018548607315431394581867867184510289676113088482891988643365063945481089139402156946547552873672098205825488675823459269608635809002466673157363136761863046309209275980821376737349643570607505303444510530503038927228661504926499204730684397336713290416949680129798509870435371793253319823226064832390105658781667121977661686351523056131969602908311633736678747724875665394637552850837914330060829885861600022286691538613349797357886538225308125387916447922999368117263633703911026075341474698958006866690410212146958217447484121855500171192206328455751914253333932664688808263238762116332827558869548033843495505768046282820804600549486811288281619826001151148278306907660931206304492561606531079657944702529208740010573349544020789668918767607462528670792157952943838004971849441136258231870856740687719441313888724376749550241835034990517264847027382559128415957820025218925460068037071440770220624060283223187786152390926693846768619187679848172889798478541404483760267621029029159674090396136999476062423632186039287199685504668246883945972633315833092215813019140505953183354905787991537601232594067380663789072692303616326119865098530637259920785358922841944142866936138677205827271177212635234234072998920186268784067047971070595737376568151299133708823623605024669067749868443488617245476243179923683351357786997777053557423250563180654570450284990802488824127162895860927665419173099219125380559516192333960339563840847166117273129253464851735031746148181301633989905110432520238562996297440121429445955297998620154275593975005871626298811920945763023757778173402306214463010156164335074048486142628986557572833394241845803396289436131728036289026705055240883491798058232648927424917539903275205306566615632829355260108186525428812013891659383124988491901023979923857690199816016811112066507735222904373122504592864589637129410686166458843343588486840917667318475963661603166897910601629905490516858083806562109695558708371775612998646217490133901123274745582583421199222045305897365312155410052766004125388068377498072225649068982117781158712506879874019878534269026049331448502670877150788114356008267628343194585385393777057468605980251481193285334565594440058163032960613480161723304464562887449223969103958947423716971067172512285921540961171333992975721786519271751919684948598072933365892678694636735231747236965536723710696686501415316103868037705432077187087895866601821634588042446111546749948983212242545731919137953090167758815224151496805115352105272297571910458627037621860795233761483839934780986953002648533194418903283522836200649458341212237662766958744736774628158917743249840113447769846969174536583539493603474009172259712537008708545089140387874775803696271698578298015430016459364112408076776229616111505243641151077793381517960596018415713676405743810828361273943428115896222903189166314827090366858482740118448288612092830399230539364584904890163497580637170102849748754657374360933194126956189641169009699810409784257546987829703889626463580484860520073685329164303855775970743951606990690150171393143745046048281794080134936976448057695529374803780353268158945168901798454399197593904247616948584775186161976120744352091055248036773369592868061318008995768832812225810911449551169949306434174772230659117541303065442086300624155434958163499572723065220853095952161901381368879769582330502726710414937924599036275312593541433764881169462625328406690769361465777792048365969641283625006016109435129074637898784568623182208257011690522176387270591932117947521243849495100558220466999372406488998813751079419832856851841879985417031802756938285549385018333260611951216425091463640411266415892091558762403580579256061741762933370274849880031849810878379263165132051227264468810939995951443686827240156268177939032002709723919364561069723783877500419792414538611162785620646059794235970582182638054375032161347556907027083021625183119153481765663686778288119370727779990944670909128036997143395637405706775432933931166013320429796151788198865403047705958672239367435197637855806974105689486924574751127204196118877022761601372843831429333878728293055062541066263355424766989826463212747298675465228691900189720565444059323943414991714496609162968483804218261927541912131260019661821225753348578876306477713081840040020618362202650791235316772163454871406943488702078772999418237927903911685830462888671681819677380246135203346771643111622666212435810692129284947486916747478295103133123724380546424509100051543942459062177288105243051858988871204827654003452275103301533702704809479764993377666817308164011475793389869938541656993393066273867761995914589354017787129406382470188511448535599833560094556786781695591270423087428639518023167159776802810497343940330118598063362997385228751010470050454511927091353915013300384389799230625634018523647238184927315983432289693970659876375281219593441774650185497181413842381851024162924647894748339348976007296389407491271453421696330701187016948470001492327054712541148553868774470557896217988198238061707305460193451945801216302223294830259683812556054249561214562036472155711435756766054460369922846356646589737367917215670050789567936079857189926580357721535130075228179598771907517248460087184055636016477817813100363993178917735487842475497245778301605534008296708675892679746942263349982252642830440860787053099829737949215733086850329455666391098930330503832507481697956790369789381966647850470474877943553362683268606162414466283895155202333041610816498291725215287353393105946801469971880957675903802276761941947710601009919308089079208585248826264993943166954526533231669133923515571059957310402126515962238207753586722488390696105656680776184397110151467259957985396598999174537829674290627914290181983549267343963967485212652527901595357648472092977170162682789185997096927421184821036513452542300699934481846964460132120143716487972696627374163261610643179683235131787349665352675285494082802161803708571001821769951229606339310702292999342401551988197887737769344128198120166342133674587456570542750362956860804164566679796971718823223791508656155335901833665545158278197820888951321589224951144589016188202775388620003370043935449710622049031825291063974006534262142800777367339339677917082364770450866845971452570811167351935030796578806196475548992061644806521613001932393518223500358219949935767081527411127396396635238570216125109872386888921812653007805136690509817617308934080610035210544551063072307634645551517548657378610605758867522052936413034997337939347065286345816889388495355365933955700060308698146321784547069632468999652482865616333305303517331310110664024418614254855572850721305315488359363425208590770511078520490462616458840169064676876372792874736100489615625552840810882797612529679252374051401968592230415734526997407860437078042506850169025970287924891409718886861125615559981613314248467624141154557165805340960655375815927218969273676411299464022619907945553333861716175535692659021884065307348494774489627748219621025301724131215192573920161462094623121476096621152471986187216686219678813925312241544772971841071710544801894228753024865966525608406740773977373005707841215353433819822835769086823801859782165761713095133269700192978233028882095582082015128040828151523908834957553159936766887623118574227889165549654456880726926011312229025076023008441434256633853179796144022244074125829778323404173504789361603318000884519075205294041935152013674578557923535667856976669993805131860865318116564744683503130608966994900015428291610101986067972738569688825567619377805121565741698529588641689438228055295955240455260515926879798632535855468647599544253497894672772106476268521055544785781169301080430682724030798994672547094139915366368028386709322991082386469851828584051037283077950416946388142558832785601549856909878087682438363087965623921216781094682425348357624897781602161115624995929644275668441256697033017652073246802896386385051540944990578509509361486054174019020609480872528843967285793002463469413970728212670631834042309036188376409245722377231200672803661126546775135807684980934011526832098184765564913042660504582850693589419946327132250344863653576597315229801669011112099879803095060972518086075057086391695920697259275536700632236139060484714726616378153533261804956161936314405912861245490403982450071198787527229719564952935751284621982611610543073708864708847969740244866975746466651467356141565253349945135412441113760109404970419903088222326131852072742795983138521242101297944118632472645741477429643552774254332735502732944157723804441983003583418716081053627238364692482889861914918299057418289718028674974359228306915304164298128400850013768035147060952106410911963948501841931402554449246636413770734949087062876360579567991624971367214922778054712504479950674738534853543624051092320829899300880645909701443389157290511579523156505212772544238496573352917493142396911285774825591492449280554668801900202894580652207086568103372923281232918054642339025679496108483342196654240157450967252044886970870787704400429050980980294531884456567925417728779826664152978570176475262114272581583873257871604283787934793529474555415120987384373580358043297307312379196451808046317849809537626528239336891372396096066522725354067736123908256941182407610586239434234519202049458907256288770738023332880374771709409127966771704431047534336522799683547991819029140637607776844528436816297901951009121836961965920434415764405470850859472332192181238165604695257368122518365539610507424632991979129965657843958229528562633763016839809683398638429957059747123543949880814791542319867456970508477743572015009835070103242850648994333660614573733001082484838233847558834709691837666338107563663718521620927167701943888425979124225602537450652554350579643283892092699167617589553393634034814408454816574270492073101466282437391968650400662880307462558727027153956875617510830139751564034108436326980466265314221396284066552940244896322095226339451245545553332359703098479167543582564558360972368409340198467877210973493486783161179187682175921232548344337962327867459611638986936001934539041367290679825360291428402132002583241874154492505649218341536841273026325743583327994413234471737773048307915035124409849011195012038934332634293545861867437896677150003636214243978852899374009896634775768450983361671875384484142502426480998819687634335079921081292598174538989743842311119342296240629847264804058193829225013065974123488562294952181707961168704808574333575119273657375815742205028349457150571232849140783491316910355993850899372541294741598855508233108527862448923935378546822490792714740002924032515484742064728076440993296403548812055776168542884726423547644386343521323364089055107763675828784484152198993970002392353469618122268481915567609383454858689246444525750360016461439755593350820210402398362256601622190885391319701256910169000873739355400547332475640073345225276655012386310995773613792556688838033047684132233527561341149116376402449319832110777415954325479802879099087592833018670301871944571578285051016809533051966255636381069648043545212336683468443934354250938186909739273562272407586553848398870905699819044545489455914922907398854284218781733591046226078329547672500663325350689402506930996398177707199229550261032805201774047387537262971309436212096884397048663911653794634772584745094606076637206684498697710906861049605424459666349964463939614019935886582743883059750155780679248248483518372403931690518006237399593906964295628262350886981125684426731309546819618760283523457601515563865189796650602696088482550426241964535490962957368307516449837372307894166543264034729060971538104090897460412357666567361856111537886359124277365956003502893303718311547253304183090203496823147468277569874907241172004894429437407721733803589307996564467439285604566630966936961962282947148508683425760297161109494380337215448752746099603701430377019370934486770047974262835369381200756190037479783792345791448314206402248253188116103241197894032692721026848226358529152043276150130970405035410166796205921617219456722954888866202807218838594011933972001575257239682696249282534684986347990187269758398477874895469837017705307092831085296650345887667075374615511279480730107366722472581171878303601814832314645490087298631764645477255111512770107354646726009893348934708212483065832810455213970994433180771154580848794577431839053271458901463811018118665585399981993589004863121983325557128693853352932067431951831865032826784460262520202335198027586832362085493001886165772937712134234650073659733604734026928662543544459226997874389906704872672693100051250090839790579624791119778880447766868309475518222367392659824599052723731776544415892953746058560990900388072183496495587415567635769678980189510097037829735014616390037587176395661009720493487192211649174648827870017645948506719272279760331807795359241284218852219956623960558944099744775194862699279133806347533970129638084447995688852233784211574696582477458913775920662068872259264051942883281385690287828778712974965852193922533232024549972425822235369284210450010233413417241169386806216681502515841872892004390099355628416319577691800782702386652681672940603031957880044982835041840114364553458220627459734723561382934115861010819458814293732812049017983908895964844260060630379079959168716135809789703446540218315134188433465859649886068950642494341586954799593550518349458588666417774289129244598872137018136877232738438848504756495947373272041555143615453812541084871761424642076406778064670558063171204075599987107518327705393963186817664499008029894074591630311661381002801768623280297090635129031433110029851517347192083818363187748055157021452970297312335921267488586739099059599958118521123768783025259729372260808374630539094236557174839398099253248874383452807829768668673739371876093489620985463988718829053417555841758259361347029767136180901847004587131471374475849272512131137265334615152639533486098685040374253802321536139410335198479886758692912388734063528698232803054554075451543827451447005274153120865270406375230851780345944599922142952158490511893240114992948059854115680534734720059760379619794179037029503992185973391177271659788024200312673959856762536295863976778645095020985826818940037457040854127068043519908616777388636672758674806611814180866463203522644296957744474644031832810905460242551815258208817010429927054667884985052803522785579611740107094851846203461014599820007237727278272367920261734474802461686418571388443794186489486161320026526435738152451113400717819683842307603102172713512799813372459526073718357026811387162842371192011110734585269190256128738925968404089982510144190427002204638110290017631564960302955805101606664291281183992045896541853729021438980456499634340478355033873494583459374321391597201871910051643820927857799229654030825681000551590384933673195887059522307137061846601784539532198623072469392047457364082284105075898570462041248623393457292857008928318791292074224161782388334797365678561023834881903088750074658924210560721532555138148599084084663852502493290795220462660637551807199524129832070920229317991707013149202616308665141743316609183484245211820921859530923455388504115581874459156087717072680119160706526285899293594644277528821548533013198129542442585843485356931238767210455759705812654372969785023757571311845589034154205765926418468802543326593962228084236373285520378097692172370464324485693957125199893090621192471926827743382358107600731995030798324332003182422457578737504956365067701076948512996005179712185475847911401280916210692553209489755335168411249097440768575527303895837139007067080272152007623945286581595180287857368799593220629839068650726605298255503486948333733064670203315684188847293898165196088618754499803722214151165124595821223326433139898076861394197590642001101329295131573588152933572560357297105122972492726153766555494046189256374219924914615197538415604597022839243579580702200283143874883820604332123471384231853684776284190274878309229702170170905683143256518016272814302671143852628783684014743122379540182652254855469156780654214426438876631754517204403571751870660261041776615532366895144457127406337628624408448748876877514926604084620972790967979605626616549137248040388147087434771012884721554966597363250658238153750085205044491915890379229029075157833772123938267829292576106542533803387753303495863932265966196107996389655270836923002394877662518035003004537685971398266762685451101383666453958034036383593843300428359762319576210623839676136592200905763828689724111374404178097959336951245949764078488466653847372106303128960385487795806289649482851105012588962611476001297299767316612829030792929413279073707415411331513147365640966311179556746718506840608591010790535990396403403729517534283442127147949039613682304832690918797566631320691884843654159068851470641255802622819728824916755276828355019371888169032271739874033522831908083608648298577464844970855675067863095454728171128293594170198945224862883813265719207503944829215822807828247156878172137589419410766057619695532134950668373196197020984328749012289928715464102919477678039383284131123046546022476312756940924395389978712201903844627542987243077623548744105975041084097544779007982375902207759803897520335357002243616140840386526330134757607770823947843845501297923460566053099188569601041922284361499023756421493146766036913712121445228658361144528178840161366636282073175736070614546028837464672883905024778100714826149552295518878303783726192979345680629870461523337877854058532421071987591096503209273488360916917695940720562350356536174118842779985582289169335710916599907796933355594187876090661538085787439595032186234756288664657964649372311607231615377515516294213542821583379305667994285779262197627609837644713969798829928873651359629118271652993205496690243637812674203748285988303899438184363624948396956336334302802389249856759673134721042685440105736715017576560811065115511697215723768325265635977689581462096455036629242392852266131246781850550052510470166751672948262530547590915642011389859215252826227436001774094247789717913875350496311945285926246431521606590122018048385626314582131778809255729985618137550464439134385540387804518894389664598455808331978867025333595351143545957905257979068462809239980748690902645455797165415292471462475843408063087875741437139259037439149095539221657606075964778887010826446650026612029131047587807069384749350657835024749185514242872447497087669811145932634682188719708063768348807019981156051013456068912622843991453001297482920066196568228680430132877707558624886131318478165788000077367207831118071853727121428894319813074396021184837802199068489135400980220423686452176009872350252473792467561290309419583352845075544898629233820513543754868918081663889435739138325717926867007316541729169553512536214738164614722608573715768341711119511241073343212923643545020472797238016260261289994452542482740234973867484265679582849677415726330899941391592073916103984897140507194031531143444898175516442154989640138010036691666543289479555959817921212500889922943364620712411759628544373886381618314839537391274251870705269730038597970840790881913018550272753627933178769418439058579950196357574282743721338437954765950333474097949953744761782507614549332653661550054688611161861746270242774239328085723679945540924932393276230267082675279787672455857293501865278070671977068570958232490123968436252028585906313444543142598052732060810001633657415259239794119325670838985437319827833358225481942139564732582809779106020026431663815615861655364549315049121443578726303391794835702519112231977825297421720422351735648866580214927480203307384374216565068466799543109312351459656814964895197297829504671699562407746372976914599499997236585717992956577820771829379360776684282592837790147760704435010283210134199981421781094905130350853778346502201657802474694738034658631210785578749694297314684685255741328475000927252415537192145051231174124850197568823295277283315104312869044921121983427625820061654534201572544590988981798500057713634067973812602359043629547888071470810240771559103887169088305027634104527705019432294265429814548802668065306310794289716905643379105005316396721706955281419221552327802318249233045332489759491109556289424461217582188905472084462893566660573779091876166474079217018259876361983172040902254195196115285887682879375364343824547675383933778729554489052332171133046680451978042144661387381065141836203941028697462935812833363854056621632744121911134660821915856245448132894068410907194750195710634683941767745456714647512326113945037697177856932673504431679298072548214428124729104665071051037930656734782652215566895635573644177573783660097041434497846427732328335352103582154115680494001687212466837122891307565932540276002189387942121598066309004698691888302441208951001167166920726660130322379854311439820834533845184043105527268298867812635534181836806704629182848307686683999062959617672517883038262520049502131482993836146390012046116035614269666122153278025715526498384122998293574642451152937338520622695307053435047219583973666128127563801333553381452172135542701791340360111389581982513495740938597823934017019850612941903624702828326896112757920284747852370535812079885636738532571169859471425580302728467033437475500837035887241968331608316119141185881906565811380066666663148243056447247110934798007111887947236864983668308996973603346109316926168631132758544326905029318629817374019710916001697014405728486433608834246615615941942323096526106395646632699406779120814914529748345251790457890164193930325636581870241480752830193100278114395452122221614785256411084024573951414474596059988741826481172028716348452280809644044100417296234128999309104344890676579404136541037965835194640336121483820518857734827424456175099300004533544157372895073275258526942438454586747900514905350568048351236194542734725799674382877212527830508002596648500392373304088376032623901493077929396517315611305907598680738700811050223683962549942325377921195019062659316726669541326839175651267804434025900742316047559943052839915077338121354953879479974898416645560526556825408994364570054597936119585161805934213502110749606563928695392073694459774756904862103343516532511291649728064889610582914658567460948022552325675539472860258750259045900209791592767021195372736219060647669163443356771032456578778544480933806295452589805499519802664728188501298480264859589358810887923551654561020006420458780932667473179282031173030524772677452239163368545591941443758534085700662567417369472354374323785056798103235200135188339398824414775447572762580880777728397841211765418759114022093426735367452818556688077789093807740384878093658262294521234831504726549868480923374665217185628089693396882336997503457971951049271285292713248240349513873132920481263831820911210418413337359872571294416086891415337295626013379715348814760729329986599072056987841792224726170532082082748173876507927415713112727181900216387585356043092075563792319746927824596760387375689513436503353931340185417449524830569957843838477823331918202484085603653455230062028467596755103604505730214791233826733490526901183042624304245725735293060751670970174951085887484873196484328485924617125458457837009683695075150820043280967825232272838390510451882772719657051980658638514044401899646191006622785713353964041904421841948638820858460383659333595618592917497822976244864324164162306329001038180930685590293901202601731690955173425788995252188585984489658850550613377986365131979941495601724049772037419994572499220905077109373793819458272542624128680416568014900682281750434017801183783378522182684537769524313125473024460463808845278319699980252776912357703090355492527431483492415487313460036332736365072391125208948682531610012272105047266116411702130233518279506627761415563901062705893023414367309393898804888465025480118159615165383592629437428984938997197608232588238806310713341497698661156171230166078396888212987321362870004643696155751305718679593429828877816043227124796369467857315209296604393490730294153255347569092729885086932386484229808059382954580653332945343921162549648341143272061204237250453716396682740667268776011478110652480012462257832679575110927096567249083997746599778794109225512455780148421192748633340342947233434990116512748884119217554033374919394159041590133823190284586084727440106797535590312419695598599139770068987059006058210224141808892911796828231237700981752177521646498349763811356478054260004737111625453580193577170065696872152204651255997300142333429703088574863875841091887155011864258618627769346550725139369070364807250458379071672256017451053222984658288655076678181440347087151908035848377089285253778296603099842834734008718129248920440012570965081817459205328019127967450700472058598113328637783189888536501352837667839477908187731674466099074922114313632321348101546444284711581099226085080372602253036730118639399060399583500311417276496396072910194236886109472576100812544756205292182435950087487103422044477607194653802669992370698728534384900694562329267092998596372818861326520748110228586472851611260874450053935015097427056819082785552937173880584128527891156775076591508943006728065009343479869938352002210184706275023863619085714950970193132772048233451884691890136431792246814020397406009445873178978194899694241476448614958557448899070006970039375070317714500614207980885988073091926953999362458003899474311655966826414399001668841335662823712962549309146257298900713955404814484391106192685435443140964469532958517017686427394581339855769071732194999280638696654119887347242361937124359442610069984471902305140921774821986700183063527749408813707375109020736035652179371742860813242363054283051061219551833106806419708778850990884482295305277826422437908955236174481592805507897478575276531234991209366886966668197456430657394196089265767698322231878413340020150851766918876413828594750992156881008641851144310099674248379122326320648091577990015937200157535323503463318416858697599224525092850554203249639168250339981857496370673169437144335256722034081047871748486544151493078507847576291142665912461093104753576166721545581765095182549224074610024879759586704163807192218181617495028095447960255541191544782524532912902718941887326880741984629365199568915336456276839109007833616985479306708619118529090718840447132965431166549960145506393680248030378106097619210421793580063674851905381839430668793004492898384683717124797138161128878332710115203312769443244268948864532855895735557196073442526478832419530293410955912070932302579457430446807539298986307372856221134743690226425763327397726362033211431820879470009976642821892590657910087844937718795699043114962717530783145896504120174661282072431292135301757328048769282016535980197721763603691933622258489483872662897039405311750543086370790635642343942140845809335518165979207866425960715063323145693431242564450153316865770590569525056560782694358384802335670568708695484047845901802984047218764121241687416198154317050554398441919282722171327871036937779458980617537711564953786865955259808452098480180387328099518421143824853142555237177942694465491888158282381313957064045567322385756014266634140191434765950572272671207507374611049632654585329592302210211326053678612847047510199572208826602002261651966494032886283138723557397842788383795801046844667959344994008165113678888444811646061877912446588940346004598803622502397971784277261090178016393081996008335339854036713682084338166076789452247527945727276128656646916453104156433964344259740194756324872528058180441916407547510432383618074884394951527566997308288605332837387668651046575060256624658795186299214194147840605244846722767668202862097927845321642245217759438468138569322367097898327261969257002337481872691506706017893865030499107347309305330705203544357606746430228151575744633627868466602884125506987489052280696401156279231634233066019676750045397269404627265014867417852733038062488537797508966539157614568090776384442657279374276992184328399328577801221457507785579257379663016435620695567953047645181817325899201953578738905208795463363952703729633733145427570175658147649202297724024157469193005000577877017574910058199738183913515322040033806816275100337810213805890873584988751976877620713726878100567414065047470430102035434026724333372533444676386526304892133649335574224724928572784977366283306911885075862094893253409602994647159516792252746510569305012412227046760955587390711724605996108358498967796173069698396347089834888548754967371766021934188061714625823583418829602202848853747782168898398033660731640246194333582849573753070743328659206796666344551304753538045577084529374889622955865981476389254790296524869133863845303688451647709288301933662473515773354001800652262217805276827832130429028376054580655813295278457690399786577455551634985762222727773945415606060592643390868130393964572333976567505871243161590576988819697530890673588029439572073395476790120967020554426352534492269971076302511640430729854110341784940241726875492298462200497551968355663079895605691259909814294448442257215452428890690445677802515862722239154056849961028038068174317196766489737461689202342753261072569419618679519407371064359456764651565056765186261963702718071034397950594742337115216745474799993803048348326141029452486853093534557427525380890400854178877399698624009980741283682564961861245331951269722982176156710095989125269226039715905585803153700333640965891171881582995347322127261905573908484880935210834477096276664859505133130942998828057990310690813130140548131400546838435887691832993734883784531276356900068230563822626942128351570522202728198871920539250561848345685802433524488591125375838912357899007231577795457087903400294740278737268842846224641676563167118821635955174836522028605626838309393117242235626788398154780012863623203493316093632024869543163135254047747849114042040818536176168775857917662033635977509518427530036260995670273495741934308166703051025668937761106820119041769064295398796960008423731951278284400326679447174727087443177577472992551130887923777382015066717879324517569942378221968995379910724668544603794764936846962736576881238900734110089570005100910548949891226002887329385057336024668341558961370495122706546509307146188609951302453066399877928902351006524202001768950948231826605185060261771770838330561180425175883113385907870217293929189260851607177476319174357270325484586803780511284387102024535259538527950615705994101615355194630781105065270193484398218032124547584986246390717270837753439617449476427968113199621119738329150296945089133770047742234508171748633298484375270898737845653947158040980735924228250875907335952984314600388573636027366560715427157928463289732016270247484501510907459797662274727575694097761405489659631543302183834761597350085567784544051095082181488491592348112708265928331150620709899790834432576948660204630905358113907071084243293383235654314169770184137062250764388066261533414335681139833525265263035734203130080770978380854281955385938105344259629410281531730379009950665073994997157329505931483693997578876751841199008142711650655425281390338248857194509171156020627038232076779049089323774879079881752040249904058251259145203766887929884346842435058387833204751800546954883921822328281908935303850616692741054677503957034358236105406524717584477783390417790427245372408313560680301128775880285230414904583589916600814847582726361633207840358646859431561360881803952915266431024804609018221499536742761907755310719328936563540049277048805200480169095220246316369772110147921672743766742198448563068369942902356898042221515508072183089896524705602210741449450313233609249617532044483214101537333118744495042193356829624358488251713695443210483399267720562685853729490932911305947406983837194711090208716613810700866116485645246829229211197955707790210755303737893848928075399934901637468213515643856199601090979947502177244268701286794752230606222048860554094110202760321699888283526922149813243699137777348084550936371222208723010592151443652558503839260838962418607789206520367153970634106710962162349060350558977076403194171733517598719725992755023260554820874462981921320591276371831699529843290283708182721042447654254731115330048927468879000836683220608007629555188377897126181500327770391197517670341780531883493222087989100060260689103661452904725632122201234980561673586189198266451483786582516709810369748393515183699644418800893238175361127369433932423120264116066914015063843637341365337305192702225372769386458941495343164886029645948467890401788039486246363472715118067211553846331946269118320535255674009878095175167959069455910049836106479716518440736731182027067666764847166684670317273236409305840353843214755826884701093354032762045437522675949908135452375559044368150962759646875375028155141158547533668059956713876416859728683102730069625792765932282566519035114179598911494429584662567029365462397465661246495652508261378164156838426236466682640666593575231202475226276590764546417981904831876186760496927650194287376341413713487135388871456624271661021740878288773021377905086593685399697384061353149093773818531978179053048696647840097401306631525752050945993332101754890677778882190334580724208686650664870253373682958766149230205707881315430413037025677866744359592498333374716249409260116339134321220250644288750320440360924950521229866090239733874557905563812737091234833392074883697918825550847932087743363552090110629090863629695602350679193333434628502755686783675560603513840997136232687038348826482698124433132422962535716229966947102721987305307817786726247553006910278131877105175171154958998652307600586498867431026951758494286906208030183555603729427048302754253516845464241953653074298266664702543806055128115954541962683889962192493283134863820231335431603342087990637010324061468651910495443326250643280765324192366570884334299563529966723498993712686791764374075274246009328852677021775218501543613342157534539306451146745813935249883983284480159094198225797590582566531572369974108127504280258227263937279678127410659181980286805793969641423744863172167411667524642902798805178977852830453582576241240496341132638442011380244998247501156161686429766268142283380522755882284495049228685026419296597786063352906418973655568589196391091936249092750007707788320869881512102965702488344708860634328867538763960026321667485221119793208606129242018445560506702129755404589453051091280390335395299516273747426690886375876290939054311440783385454019393313174466903396495448052829901120048916889516219638709564721075118484544630208645681250575858505100479454081530198649236806464373962584891901343658627749831231233842334587746184569261477260064286184635434963112883874161351523575708727347852225893745613135662370891216116631139585095885525041461653037134875013279640677243315916759645945681707971716144419394838164866063797733875541641249034610724638411040397084444893292093209895234487569423791444978416256935522895344747807367108444586358973485726273371223266544720473620741387413573898879616566583475582086676534420590442533739254559969145612617295990950103749816983028720569206152211517915325517044519657843053464392370716178638712796546898378724511762063191128041465870852226808377851837406411639465573518781899689851194740938678490303130860924613585149533951503554802539343384101916239775206331093555235012805646311668825621888548516512281392673968533320010884539054724047547255626135378332053048384077912581153960926245203284889125112148676370330940201602207432337086767338380231031139524112718940517310963559040546276964152567630158108622757455409327384573007184372044036642730067830748540015563202837499790525896946036640088900995930838124848243869383340164101762760757023293247564781921155440134943035486184028182027395948766236710675925514400568771886761046820232742919658093751157156995754393671924259098931231582143378806146582486452451919137846018246754904598077564942012678169533634647078065861960851004777699240108573242121871489749844250123270188973115076486161549139243902799815361103149124979522105361068882599162116574303984766532248644588038925573478519312399017653068155705416479107435260153531343462227271846788117237129306595044056856338902952025620967312790624435870128420592569415886707509894704995004736516585821706620622100408343623082448681754570205758853945451842437040311143481505721979386052877664379271271484265423913161547794422724002272680383456477246808800709375359028780004961958776193350602427054213175809820102998887910062216678532151507684878667976759872447952281746659548032592400336597938970324588790422994143579282624203189868740455321428292694907051635777102091129467943565222056114079285348427102102072000296185681680182095359155953225212280911055727418942055297104922617001314535152895599098005947999776099947078043812909952196584349253451987906801274845465777440606688096164766406910705812380188960692325240720276053632846715551046514323401884592656567499442846243325633075694525266991836293390966052113756290269275129791815434882910568976304838844778872088533824505060402313132120799177472477275720311349690052199374296419370607574108182409113046784922008437859948390775012346193175399644930811703371760759643030576672472821794886053710852042578351540807733562571720570020632742554069784249730106970682652415830838541256524351773604491869358070187449156610882609268790253504877645205968873223578788563194089947995091412573401835982661066804646297113123348414221930400854127236621477951463999649034020827479163003085790888549382149322696863659496940537633844185024102818068601165747399039968634018103479574909977492459314513366599305435971834028641357718109349739570246567314305283640328589459542892903132952002926335186616789745008083980875976493582709644390617861803758916609479870152751085737184420729518876014110341928741664006502996252212127909752472845927360795141258270490191749431407945743846988037024396754824689805826108503434237274924826125290012748542653527749155436635024248627985625081468162539545560536937304066896483186000118383708385288252588794116410438168491907597915451966852547396004473316001962248069888070899841323884341165714382248946790901171735555140756397943579569150013452743273644409849548482702438946982297842173248698800074580805036403774352026989760020295658683186522307076021203634422783818601090330530668620116741236574036897111860931492797073677133126404971235134625104690815629555788649197907535915283364593135961131387080163935303537715750649218464672598557805050268668807769066140153077760640852147701711400196602321300772084754956794157702308091411825795991144272039155368031644674855345851707176731617924813798817338481159206176116823295613573863219116079535251746811337392514605707640862228336434173977843959654755829383315311201177508133708569211633464564836467152048107646964061088999163701359297592393446979630954036764491647591975280317108445770886670081119224945585984146912550740572764681646774852289941039943640377523916730152073977083070061167791562471601441429481861768559747182661307297975824163450133747252056331720232905716778968381735607445189838985163463063515417879423587919278304960312664046774483522630493715662797306058679751380449279198368495714258216433839901919565125203976253441264614546585823263650453072792965685492049334409844146713829864233308674433222978667260634066037783154900115512991799336009649438525648318980301781196490287896518164833946537249581947768085840128022635261814604147136290789804842303979394327836302111415845978244119886426288011616307137462271729816122593853464908014976817693786255028080631365036962071360122596408061100520246085086920794990567922230388551345421422494992952743775934540480811764993149942981373136209573469383791441095010659346317691240279778226124440337964277901054593851738142252156358685034891457500317280935270020292668986163306778937791925408447260222874385967826343147575284680053424290544233213264660493286976942608666162062215407240499786286486895171697218207657888741716626910172741058764930640887236723576703812542606275205703308328327266134767151026683973850607790076029444024834191711765461648767989057739885707435658412537298656441842111020647129007712603891791671822101367750663855603246706415803779194850343410855735788687496942447997466546150407951507473549259151614967694525726320325294144237734685801833543721541187661988294861284187841348986923909386765376007614634576732674822427221999904906134490462245990023252261874962390790745526923593371640530938351770474506142597505993883618124753937279877608039861788210277351699162709767925185195116891815893655766388263841271378084440601970499931319904217265378396100927695399163089219232561243082234531650123877845681386599945297854542729883047162728799993328683587079097213599444032762155308645570565703928972225773593435988262722285328659958574852413006612125955153025564857119800360102322279798854524897872119686216343262602760778681360594736802694835495678642241995429741232564765571299573255896900934225951615361668922761344508386043302423128942006826290975233548858729735593634369514053222704907823255062488860139468423951581061976191905728530095209876700677812541532356272082423549385898484975557422645433622746255839493350667890353687871294616995161905101723117106278090280394268393761924293811559756390740180617743113852683593945435256287312760210714212890682338734362541509761389895173837583196528303801330664876840335422917268920796475228220658270554147250213265235502560646431162814862037612849158263086682980458057624074584721374336136577212625352713503825884476799964689204793965518771383626406568928646418390964091768569578634421759600338743717165919781889965609080446251191832654413618466377811799328827979592273075381194776908173390735581070646784263896352551006545328952079704631709612629760385570126541197363133757801532977399065393006510096071567058325293774138146391145063358594952196364962330654586977369165171145371409255458816862988152571386707143206683066565173573500098070600217155021479368110262837688535381903164891201519167010169980822757893397306582140486007226630228393088745442369074098537338506568832847349726887274454056606176327525746756988123030392504520428799727756978098931367628671500470104221788083679334402173280460591071382425399074081499803798463768171111011432893961292097990242654120765736747286894872248003380759294253922413997244162439539202791091110640483917315941024773351324205583460686320833269566516298041958474815776219475396867960239914284895971952485400463157761607516191555176905667178124870597251979655675681459535642959619009715028684639445055929237078020395178385003011634624378233404455068775603500504142864282847241499523859074745665640847092877169246674671297368268860246290186080982778830709582460587381367445808530020777131378272227944839699629400162291347152976020171428252854579637945975277505493294071303711112450028114094346109874510182769528216477731105720997745633769981755464025128573018337511152729598363366055554672080851117456993412385461540800131360253572973944475963658208592277208080022181205690007448726090627379174258868088624830528420037043337594407562126173225009162434170521802424879065023120940018560689417401349749625847832690518876658686057008894498643139696688221068263365334522802189783358086039620097633128110314880643121473511649964068309541704374137037089689876559453101723778102468817073443774103783461363321974716543962096388792221257657212531438791637761372031753841414414284128879199103426436913361714506591256511685913184459834819314554407207504554869905422265953136552502549910381119991161821198053599997854717215024000637496325915777712523167495853831264927170414856480832562756672832021091847334647295570368977699739721682505355690340816830234474085034875371455425348261131822321721067645365948924879045996362255232834283056848605085355041056289784469026584754356506269167390460612953264587735082203254022532051075461466264459334637865137504146558635420573127048960637411392572708621022107910466633259094385430967242828775867289548792652163765476603343865812007929767413765123399884400308702982958725717276321216237646638217165305701880092873447886764296380901147737733357109878380843086374934087740520430186839870966540162030463126380728776716196943484049755145241890630025877585309679668158370953390941570906056885955860874235760661951345035157749779923711963238182569245197829118377402368381009574549807887127315291224484684263218483725730785573063449401246871697239293179527488661870647742948733581516773089303603560169789185403121747463167752738669586356368477190577196390319016131911103374811306242527787294388228363510878315313665383685604085461096183576907232759187083031779695523061231380653428308488548366230571514127017411296676556699789121639874886683313436790907989827062368853714132611369714082260249825878923672850914323115050585898782463111614372584410962842005807156324064380373372547981438804974707581581025354137762898757445900520618282123934308316409282955654336782514732780980031298663808837850628699784512468770666273153721783293603094804984259395581551900256815964528934846764809975074063199828847632654584949242682806199492585763519796277483878524674594562298390062144292926284866649839773250052832781395424308941959449237886271887619443749997304374191492380149763813120593899729746492532101106816591971322443243068193884246042040352889211622913220047082511162848531163326723161251683769201295416077164839823824705625458124412879005407988957680183636751712806891752673271505459905326409645882018361883538666898868394569470030150386590156273400732418235217371644461970893873977226981250403339144498583609366048691778407407958615432132107653895475375037091233089477455189642734119116456261500138753644302812947392135297089224622536616961754435909544996218929348309378986138349944988163106979085780497657286660451466672849759889122101784225579304160666350019183150186723306196234996342044477629624430499367816489542453569307646721251187869032549242630374541689948571300675009223268919266004600574117780367539047305289440147585906446429810473643312602759944104593824239280863359881779391848286978091367080414044937093493417285168293450670028457940435141033816007238987266423369380929215496956137852258210468446141011893015019156536592214337929790348045708785198131672507840110588016672897680865849966413106900115162230341066171575790074609286056835622433910640600638005170184647805419822693733304392113690031101516565750864636483990058280468808600472155877990010366023715562276201513071183137938299598915938544774426425220096655548404703159607565940775104338066677422631794084483426664540622864278636340136755235349100561278798979772162414339178204473803170451360809016689574281253950494106143563696641140616903305719161970366080616108013052797368379116242667024822592377096697533756331838298570032916739181174576920649801780735364067719354824944492440641656434279437614117510113539013487448176390077036545669281567437606869172688690651786472859550884960783382710751049595757605326382383357482064320957507504861084411200948825190958799777802141482332471160583205142372788889018610351041691693248011804995117211908614557788529693036481378789225837957157674208658356109726322929630904650527940013916172542101637876631589422156008907118339485335503790608252139246886944997128778994907031050360384840287505682235211957536609766957009949101138484374407246299179832705400530221131259297265226121073853521409071576874157619967026524919482997549162218258760613384086719500134255294215182350414836750348773134819870191048571968111643339730623564493459216530826259618455972635622373361387170913410125511779161910629080163756298652827352050088081573385211200108054541318201326699809618397449448066738891696359783812673732020097919698847076786499550902686266261144936474671329087393488454074610079591863328469438106599811489476758797619775579111304621291474715880597209235282451704878249378152982224300231456284171856205678813382866828119323245761854419705073199979963097891039634691211402586653668431883059318451243734615197851266186738162287089263541852230436361924880343762917176061633657502506629854424094728492022564222208169340722228769715958752352802824038844328467508521593891649800848522551619233438870028450074640446286614439100703259045337318735860163957684795728289438034281400613608834654366233541176649564591581978115402737683115914809553399472513297302056142490972165836850565240649478691152799060782172943075633595289387530847769218293937012698386960878540169842570607422695431449105416380649621561335415961624153998206609607366676623865454795564062694843993746329252855838300716125776685669975540076507946643084679325782036757734983826229125083588296558388925562034080240782392114615267030555261889832844228138915012693313166599442822418095573760029905484928521469203170801128099341863436920473005685292572834301230741261327263447921777864729987297210981869906908019429967056503731852350112708885755168796516443938373683241041015581052425480537756663861707131375025570216445819463107871088870194572571861706952992426314077412289641872426548307657077308401664281538321381463465162927339122031089747209857787966824024397926619916605840052689400914295142448179364413736256135361175833636285662505366504621461085890136509956038725900731237228281329657900104087412499798175470680706524327535653234496456615277058415159970997313898041479175002958064348818791582444724778960102560411630883581218596101662718148345594255768924434937221637774971875521637505687030876369757937749707759318642185758093056740843619304408528523049716949646291187172201593643900797216785070970094711865681976056671526792874565680234919200105210948787208294305193563468042917931328894319477241653508967128013937076197474501344435691676941015923003897233803121022297610861920098580560629248052385440110352208554913944495006106760181902791002095548078388087681536454955132313200943046895040147119317087597803248237001169820484458568466710496860326844913382641463755477957925633848640803575798884325970924854814981470820809867455578914559662411043357993648563206708479525866599942791307144022046801602958401484620452293577369455587625913517119537243364956383437136342848601272456589110220329738662780793611008341676113752277922380094484873530726486256630392448443982639274953930624826497631946737618116061048838249294616384881413000068453445408778614530305694517724761932461198149311605029761964120242122486338076486028516870684203978906613023819737557653994290531882893994406881919777172509871226896280081408884064529231042491956010947898585991575464584777175838520534863138478358876251832153104821845580413748513008543053508684442271050294764383032835900581503233422447932086580030962488721614860428421710709861451471696298199429643605540728053144337332455124345605916850258516706250871406915191342094122029360363899660389026667119956507670474562978898104206000700931295474119479808431103516348492258240263503343231256754590200660186581493822148561642845326052880305925882685188882316631231868678495210920259295492271822580580159904021030263823896210344983779966332294623110568728362116234581643014237254202848834900934924197305646693050083439694166683222161004012617452913212001886258423092373821299400300163374570267407426981670941680965077114231050689338350924220523534614247431478244828380055209067793785053466892821691995823405367568112150040114054639076820179399037545093049500279870042082614543225164303850922648532438555595489454219197275741899304171351231274765359062749399637494388377770045778023848342450702565287280919980616336425389051472017378568158780132442257391195616267524075827805201499080983855217587923821205145855565503837747085594519548237760879273269139142123327673817311037566715303424220153361622201657137122413742958264572235989407923969286793692108781490467097213951095282600300328900577363404768197866983406708968070965849492550794955634953963316374208651581447876408326321382366076072651671891948908619297347713712200536008834508689531371267518658691654532440008167311157112638717761440187635088799978392042900699271011459649434089487889453353984932741295967681982839145435091094309072766417390749660438821991851308808695841333272334768445859976378260228803877907561628362660339618494735736387233646245536141536947354149321331014224743870169862473585608779186646074127243741548804519488629224115860724261594387594350365814650817649914705366293615645132830662462628488520236521914614439239037538543178274901942166369688700824213741400833936455151437012793657807150208284839107513029297741098320993479653513787226332987057960552338131748138472967180129619502915352479479748863626099863986865048186709541339607980579525587227544271465318930561364085948646947571783268178717034221956303360876802533652721017351337347670270650401279871056399282078759395916056203564503599330051229826265953461807692355612675844519376274259155084746679369995807107014873134328359010245608865911215706958174157704620233190193862259737297848200662573684834911319427755160492822406231494192184948781333970961036799223247762213278927977848328018316249395649582529152481027995360651961747558255735827258269589085782672997406134474503899911216244956293518078331742513703669284610323112720554544634767542207733393147356482890128189965849087515129453574417386620826693006844132647288582952681371061279235053817579315850124665284903062154484887282900913785241904496411338295374621845491798859214550717927171297969082444263313854757863934252529036016542440007754649183920493234071022500651305114513197710831181966027032554661145060747120307146288114613730152118754486977175095218190588361299189938759328033617080078457799056968401624616347669102334014605767728237083546582304143629978892039040734922353934903241813398072064152331935729521374390367528213753199206517658948183237137635072934419187195924423842833511141582864489572270036519301105761636155056044249667071703878388370453664549541201360521675495597174394322265261538114739113313671464369904206707087583336890517607315215463992152177294131254751437933876253236693033346396906439200283504008661639800736019760695975977407081753065611328657618955927049686763409170850543636596849491083009268537685121539639736959259523209935495141588034244403195882781960477360561400052432104204506956875108205660519716797622401889480260846324559251639687036224111109601807576408430257358812077663392699385368141623952250266220267769386006463044033087091122799147071170775706938079172599348949997418154991827753954030429857131346837348013889371562067887693904211770503448162840378506969201789092880378308681318154929449207539265629754259831110330697834501074598770606688900079301474187764055888601511454159506048844269634685183222512459896094594629862112295205376740499632389067162216480374147757837888726468894044005751390414675206962073164901974521642742528508088288736688473066088806709602257525916017735720204262617440528605112541610966146860020664520596057035971863246341868508557617893172482241442724343513006820905757513791647889381641124237788726476466359673877510709492041651141891335773829174635988821081758678503948366015950759958475815701817116107057476518829443581544396403037211743784411705590246133300684833498402321235995547724288203239120104733489617661532044603727968419463712252986753345818320586398402919281897941810988166698960358399158926078734776567133634544663955989268953288270352469910249598408597841214684549538810519853730860302911908989527001347895707619882423381734941910065611867981453504014204983968277461267192591880338985175389022547848850052876498865375873110428020201271737235448845882371711406776812608186251436810339645630231803889846482845698201156263145828730939087264743921540413948978683217111920937518119320842207279315568081814449826006525918700167438827529982765844942887958360095813047401865797637057175734094400928411113098134319065054584890073950662574217062951253180120631208977890683591376653952098280930248084036969959983224233357172416748102374466260683428412970161703925096318190885308794323739399059284426005907349053734471831134954287758088939821184159102933327952077242394646421196573918212836394533970540934748133110362382344159547443918774381378181581342448100793212828265254556865083407300417319492719617224188246552536204651154624834101427922799417687405949252692612050522670311564384735473736147099496436953969125368528236083363146821107688372111193351296865629954564656810075221581139943964815657986863850175728678313823927280656541609354349724744063249080244734348113567301625587786349938846779682208630800003325775256903382102561524030629811495744576087179362222256404257238901307639826385069243827076251572405619559015122518433007612084686083919593930944815953750974112991386878151433636322624749448990759029628877033698327161613825580699413968772640911811632887514882843270922951132562079320623097039115609036391057142465408017113925704835337188336994353454997992256952162640890380853255674863800097032475423106113493051280785470759834757985616680216449411680748374025915425581323549343891634762854735957869131752207537807202147948961966083601743781949017157925312886100395266597409622282789379844970609383043925843301475977739768275240958958535052298862168932876859229875840205390788216327472693858079967681681591870204126277376392312259771629536530328635843110375752698380117125821557717162323173253913091278208257918481691745619012500898458922440308729365836645684662412858720827588058870833841861208577432857242020259419831461281125999445050353521976401223135876225747405589278801678964165299413414173355633843095105123485425968920394151939770110980489134291680603470431408752491521954264624724006085146849419810613914152404457435673032919898550212453195679741629992987609308107253481912408087055332201238595313398327354092298445399142883637789384270649283447992352234026732672075908959751943315446616268712488935218314736021274954090740792357976236579564433699681822440183872636846705323139746104084794342957254697924873196344323331597980669914728133437752306719036974073960866039172650493042291419487584523807588572028680611578700699252922945853249823013623351693039280854391183580467159672106670526604625717493226993094821912402324886478474100031012884962675870099116748339323480752558216491882007544315792797279319076593364178950960607140749258294153262807910566680482576822303444584712429114831648176022296359036878320172954555208437316990021366492536702826714783170465558569123048340868382544710515927331093674021170395182502335180405896632141597421828771214046805212167099654645562696363014474799749851394370186645605329452643371509836853841319655794419429430069184467349580123695489618722810746413891780926808847064380640274120951501174528822553287416886004626884629745487162283803395895684376761003101056537656449267919091360614974104452060879582232232196398265229542409564901159645332120253898750033132287481449579111816402070603868356176256668039466722349326248769515261972143945731209497068520822533881602255244672180794478117256238216501632311007526098049832637730429377420720395625328555611691094946151525193388487841646929024229711754240066930775822755810120223156542707782781711631401844719666067357929216155617966506104415242083291248631146457333267277839486011067785529822451435429423227488168772134148245093578155550498017384917657718452125792472559499567219266007135652809371954909099840774573943247645499389111749403084911808977604372020950246642023344050481296253320689761693631162082051907863965596171339004422389916709732093628206977627344213215472178714654939865093575225594700818739009980441069381383647469510934206736338950449408173868619421185117935816586324887017470869493382441596755487379716567241462067557842853628670774096883856349988974360350463502108887690062630399925121633390709470748271023982195792726629486077734626331679768209441170668767203750548589381522826324233154014477164498996264164236850931563816156718183207712013576498978063050711482327709990860387625873004433345336988065677297860072161520863701595220495055006837383664917748402082352052470358988067655576132863990056175278748521794283488840333517089117966907530592460543371053022404371347096212589523156655537708941044742162919412342010333100657784121225618656807530699025057054275537085048119521680738143231987788540740524290511348372634578250571275586640831664877209006721519501312558163702839262336370139892288869975097673715711898199266251850032272609465076361289840749552767033874664139309601535123240123936310829322050401107666987646263573601092494761357855502774023301211753605112714886373904166491090063213645751669294200402264359991588695180647446096555871263063047849933527582572046911277218043290006870162349267219117631379076353434715438945809306659673487614055101151376365348128556305499998976865601840368085550324496821635679645470118591871342696592864833343162512383798547109561310292757023082837384020075498730521102756104936075154776362067096395847877777106316925576499948298127588544101224543632051872835847766116015653476669848077440138457303852622347441210590796155234022962767945434882363706394272072308512214152502190135784877434542699946215259017231810191701801851657155172573627733990862368438441981649203604517231364446315740020645682204335794728087171412772165210739550859827816883573039004056529497915860365027130218513339134902763157100967382329816464694090622339065518431840200182018158030941521262143570961658618085112295095032358337097513624139505415788579901178370735116737164121803112342505763547376358557455945143404893669011642867733693900642413373741447593296328506780487613091778149639757680266650782310061285516545944475138769479902413956653652185125525207997102417608144250200048178666738834568402047824832999072605018593783120710545124965429501238769647209037558271610964621179427431840767817092908929040376859780425415214117591318612105679121374936519959967649610023656487927471905470804010661699539106091104688840741262036667115713629873058415266978197739136448685161193940531885235200464344053919964203686518723205576581651878337699527074641123266852812625368771769470632948288693990229771654828294983975519844924697925062439623211304990986093622620651594680609402683460667754645490621564459368668641282504900224782076944595369623464895874249016769715543339200499062210595430736281314844443137562015258734985562594903465649948801516388212446256580167534136923362500960649499149920387357536262705800294920515195200888911853993177629864336016224651056607866407650421082802214108409958629805848565368583731270112323959620639727725536834286799926361770626504664490805028280139550151511477561316358883907145149519190169267658709003930034600350961730829507104850014903755678342467306473197195593724990182402064310417501694361461463283685370131066398964165282038563477576854079786733085365338866505753378230481690302266425411465680994523563129424940367920670194596852790597272318536738571515540903845303984175041234443003572363837360326833089770531611217157379488876641626846593785397413718388890091905374450800085982346231478563564164564738938495264693431705371129206387444089562735233640388398167044776962913492698281019984340102759739288815141379801482917944984360410782132450260422721781101551618442203015992755303520729723488213879141497327978357584761690255143401466673787589872572121220073883327399536722647361851444391286485090216452653398599482601068676770995377672467659683922497661128215023124688240187971847605209907223652709510547266119822182738002236265532563737453381673165720015150500453773050006885839585481354073579679617890156200004723323628766768160211418387775336186938919459908619176239428212130051841960039991265612396744239330749632207700687853272629568032406316208459100592194465989548938389899730838224739997429614384247145779197534711133242656466580142499432812371011540680851413587784623307775617906632101706646121274157214648949355857060855445056535355404580375517479601479090734275349346131213774019785928491628882180667238877655374742756195575225463154565092076335573166433275070881868071881969850995369613352934812559553175325062564082760621296856059043925797476782241519923970024361400565894992143040619748601520285084609747157656913645834195750238149202899242958342578925600526921585425003864880316408353460591038182210812285662157319491501227806420199947562622398650417534474367730804504374120114812053762403259874689321998102327631118735660675380878108017690089995501920523217156976312596562188859394423493333519571914134995763615418572757949646392285112612129249359078225840538087710612502235582836899649701855474960297558670579364305219347985404881770075392628311730806597582103384207862782376263145744271820450440897160290177403904580064572283079559772332495319030543885389849674996099854790805557624803768074309753198795162389298392214602916062428076661713433909803968617976502626185085393956490214551824450632073842255540025106009474181414919113286283101728120469080305423786907746932991581571442276425230046581876840026478555783954699705762890751556043998527528991614291451801894675878298627175248377203369261087069924265444614973242397193208452452492889998608730636308165647553710453823002974032864454993127369212648984398412584425597177932350904264111894974988209810070875023051828384424093367541097427396883123642328591437946304828698536517793392608825212854499675440882215567507656484997221844691663530486247235889561342023108128640854399140505499525263204613764216616983049303900502436004131478485487436683145803194231558873826023617441257935939128874724101904365841247664373143573309938264009212214304831207472749184813832371885360859354116133371809624757801116748365472437237439907284698256415595992206577031402944049874560049676010781225767277599806492383205328591639531016454073654478689188021155372761479469890326865821686622063943966389643681766892514651123705592588639319871154268954613705683961915728866442398241158553201351376301918336851789833446804344420466982903312660702594834019152152043290636239008947253837685797160338585525539035201104128280176438434720398573090928000500938190953308141953286529643270702604604272907070830079650906330639470978284271925939166689616580779091355817813680347684372066507331787917648974052421343265740524157674235423641081525267838314988580626251894346151482494646582946675958295497376942587512216829389650289062624471125619096251770108049583021744818026252541639445369678276337314053480674596046452822910517670611278021426683764099214286758439049960168066639182141562795341083336348528901146361196133084624163179062091594469303454420454710646174623839554440937660707259157596746322707845069512692170796933895373913643174863886077601549601728968167980090355436758550719586127781875208120098753000728101214598818319372722099987566872528746121038380566379491241095433570645823074845265686542667749769038627520815337162028351846561150116346559139347867362804344199666095755525595624742098202725625882906743350096246248233605942907805070908502207906495970671336275061919585324898127744174480972026575090732312481081557879636483590780944497852049674394111144540985827818060787446753596049011408819281707288867674947028388398395772999742907775867499783830563387369258623956814071857601354496377890136927768072940373733432086151436348489486639530776384647222650933488359810161426774959942840056950429655772688143778235406927751733875397338035530535849739055118927813292248522408775821100323763172038362921451734289580970324678830971355825524203926529683622016847628144718627843035439014494189189502779873306049847201471079891359304623646287541990217714270964194008838013579547209039794466340980653573430586189747238633689203322214831454763017572338992987554181336156763573290193730932813794887121042776487274658850144004173226070555041021551007227375257402433744212129118949993345666719609138930436641589148985784708273609997660769675748918202445526948442766939823073990983623852115608314742145307406823160036625475033688442449591859776968478406270248261327162304466775110910580571434539205810076030083693639766990720044622764901771657266386176343774704832284794474678200310461189903890925687379131417620693390388629221136816093223970721713942339737008147094156012380784702171088250482341406062256169993159219789304217451741358541106215974344552839448126108579714111297836364183575679397615194628456935841575016400617368650552513573843176611755981130028758922800303148531165393870950474749830983419300247895345372980976113861810593542388434866450222718029923184849817199472292739712348077705055470850191664117665704320401192753715587028427878220006701344229185306976659967079775966048400685665226826768293725450121034887326665252141121017562133606520868427114337316850152431295897993031481252956483046103348562580139027297280258849342647889771824682158124482615413523240736781159406787608609698877666922213252552867606024379741926101324690088864341412287680412214419239378143935059799194741598138495081381359711725105543106330713683932284127243558906385033629820632010349029406887669009729209457179644683810244341439373565716516698277608077374540839129923237575571158920306035901230418961715599143166042597707381927456776503495019266646123275061939108924640410011446712929031733146017066135196846209483831026963112573472249479741624214293340178623646516345218970091584646391656883027039358462968053081458052574803830930637347165827285586571865411530764957231229151684154480424143452264827346035888095391946131689028971666240222844629118538222236227158043617349415132882109430184793079945656643704587487017973346208518742974685048604684141781792869787007265713458380181976935540209347386972651435893519832277483601412498924702572792613416867270005303929565293297506388061012170299328029701157939093335882540255987915011518767623567893847851477777766451482265900490639897313737430025570318822028845253693901653111544770548288924945328179045100897751529783223685120683960887728459078213759102095803314231826432850348473978411704527018683108800321718578142414422729410981521829513354419579411427808596040489019027833890648545368411523596624887983395194062889148674018014689444230148299447521996063172772611382639300394868591014365415310077154965526309908697488722494668999016942254672566416464641834670050522044931114655748692054023567214593178405169975971993229752563613023846725269370873843367517322710865512086412255626155620290877823673783577390494286394353353466193009530105400775134207547196788061774255478931886367586074738230934964756291235918614864800431666536971626621742750847887969116076869229785983989990927578011295531503055154708870948977155525143934845762266667465406746864642603923349844610965746111398301769289505670281017897601961085234435989992947102043499038395093021458130868626098019362376635258506745527390145771879295858835392423198863287782802922605753958711558398789002219024270371596199457932129592029539423211895237599303015568787095209820048459812527696960872181166570779260351927984700172252846917496941521395343145447979846700853117541974043878525040102475366413881013963244810424706655995297499190877958486945823720905028409544266892923186357212674722796055304121910021369149547632542309079776978999593996765943383548313148111261522945942475568877408435481181307824378098011213778173332378377967913968586760899551732617686134454492053739545693764385359106012761772747395817445802264580431292910858534111160919839623692393660054111301635385557211700534636958139325856318441613987037496715820969162505911407671761408182329762744806431107617960097261592879683957763135676260916259805338295522433343108886404320975962951132149501223213060662008172816220753518301785906944593703094810340209553242948466878176718302197878917957407390322880559246079916797479112294470933255396015616271949325058858176812327680546207615194452476843313885970178084187147439385959929290803439697602929630704702207495074928425728773287126037069652374433047571980523363388444410928852475297585239042398997389348573220485344583982995848821984802639935235330652870784697781939216922230071408821933025493488332296437925974406169113437092285292751038281381074709930859853984314100993707112290293241544040645744501089878862843207289908454254839184915359124078504275080297546406706653839124721675616771322697799261367485000198411869611083719224578112659384502038831873343031305287628336122407360957420515849573647384408909714029839762579820425565130810559191443657757624772593328121333606059187465286437598055828139131837334653791954624165511782496904597578436319304178914704126975332586885395766982186994661075704198911152796906933731128410027990791958660754200805327328485778047396732612654105999472298873379914977524305090290255075155809209945788698855514206811335897695531679975661057281972878182254976065417557777401184404488245381133532385669816294459737780748460510809043395864443440700817627415979622386703025957567891151498721904010926364064891699328975438176937478346765574926515731952218168082322611561428476552494395473790297739908609995008845587989632788278735200477426788382094320546900237520910468029162219036053122018467438110202429535171098787101697486090882603390282551027665443451896885439170446933025879468495780778769057566622117783990030256539230080169688735323926058663699231490635403476509975367018715350696748586782965499353965883683528153129536041763880211903207001121794738455123411607725406283125628872487382830579939795982128439311490865486649949808368682765865907543694081143380283456210435402849342121257498289465260971064546828211433305712917889724536651547438755898064373563066442737696487167038944188148588961873849517143894990491099318953251835690237510663794647283432959046829126044034604592025561303407584522321400445962109178882955889767061202848526514282493497982180083663081673238223088398313167487014283365955902016380513896318346950941406540768871150652664058987225794304111398308945019005346419369095374992569976564793621438712630074314912632316758720156318427219227032090403234533181036486802342480262597613898993557192849543490704070704409755212531843812913549946060495488784686677258063528002701750493067123270800058329398562474622823342072064850104098006140285286599970764081718721778812946039541625693592672624045337705786220893160841848611007364237085316689769607422145749321723745693515766165147757866314575472159974429844803616738507256924338250440223961857436669829555490523693922287478382344834052974686125311741928156922203920588816209499945126730018110290635122046315935983696886302118770373306788766263281640331071463705180146405018365672922293121217628625369968136284431734359012708958086363650471817044821686546208830501293649089189868235467037469392983699751168335056495141174482355552945832768940146210001820196387743346313231428103130238008285143393310165378098182650483415787307660012416807007308400514153860800659984307141293573363145092102361661500911423867548025580643845315477532497301118612954208004070806899539891890565405278599493232906226791920932314301617682915493147928579436954510423127159937161986152955748660235412660418346464835111699497416919349852638460288942292965145061721164783515816440484846286308770384855846268115817035054384613625062678420263813542388067321037493411220798581915780725400558113322437793607126350938046437724289314737680761780111695453276968439815695313501327465124574757779108812902018080217549669351126669124575791056436050726433519246153459852258145895089335031999932504897194511334064451921642111504102465018805376412886824602831478477540311048062466943616711326033968824273930356149928861071908358740110256418356863043845980023190832850447480582704891557285368225628716033914276041113582116623133755877139395935710517920981214906553941138430225850392460564752267816013377940782082055044405968354932566973109711183401334644219584464816230302778227598856403367295600367258997051382006750750672973746169442885636730647356085358451190036511208251355927360876630213180919597748096121879234769751199004037932407639263683963644705386281280668772382408291698323541275021944965676525447420084936958742871186807719703500354743283226248692062527575488350557644313697981379592456175946749579736737651889925398863307685573652812617466583714662242310309320497407524299251872342672715732513319927070694609641268450709741663011570963441893266833796979906966319933387707669076657760442711360569690848028739002412237399779939523288728048668660100654948802655168352111608328098682538137170989957558089774008398159617898691673049761220364626983948470831672898588385020216393852998208970396291389186741286939405541124787475999918160371902365179281114480127489117190698939482257077760112181306128340386232043365322238647270902528594893208896614300904738172736580988672686380831641873023536581057667180918204675858359991670472791085966950406803208856220987887017343401548583493197680573936405329573959410762712609357741193745300244478854604140447220369858618501436240922947336376283541154052675625439676687790448526151029681020436244767244994332136792726967963092523856202959812489410611624406709732574705555566110917471014932036328313259343978314930316681293669452953767751061044548186774508255003298672232193155726387959655886364334153219031539407063086590331071232181799930504219240635845937929198161790903937855620860378336059536248815213324184809522646990299662313551246767304287778980269833886529101524618258202672559113865683419156491531926118967637786244877758267448111529458696547643373856237389731231778871506568558820785515784644404993431799871219575106131445597256789382408064355260265259206693758002871033133737838818290033261908901163804670175771608428899357240039387348538864839875435901451324294794607583776495223014538546332886046096313247123093749840178247042039976296738151116075695250012183465939127582757202725580582106716650736931145727111000127726026634328086986730550319755013263845739017717667072149377798964869267374362538892641063129786355815052461992497065573617910183598218362229174162565472038135899054045064181988885825722300671414497607705275957312415267263579434262937599251204629039675845400264817375024773359522008442354136713575310908419359622994628218884856933696633512271203486438534367429358150623329757414870994076094244554874483891503776994209575407834944532310469235690297166197387542891686823148539142194338925333605013715121099471757978119924778723704336846740517232762915026106056910434657409260077338482078274474924578454296034294267923487123566872732582414090293854461711738944026465216927110586009147137432346420417635246584340730571827524763188056099048785215983264086190526392888031126426599037542268296743284099177803452594228829038065850040374795681944270158743432847258100721907524034899292835676884540956837545406375066436020906463485672889534114359722916974460336046930150174596499990558291939399662411129919178515514337996949257255072157086935086463737295566292845248191839060746477298391293350763847759075964609086330429541250033433192504195466399207237900492365431260070251003992980674442699916404014121242348231989748941441602131141122735380793849232295524168790226703835674092700277348262740248698654958347705715841499602348959108702111213004234747308383277866913141225336655687535621704436979278569840445979864891557894215137777104763559494560245987281809370561263272693646113879239012003556927264868310213125173311247231886663502404747515010399979442030616547082312165922839747837399675568124496034561680211655154807201079287042590824781736889401037099807140894522168531971539597598332236759377293302259256637549904218112740679190900209945508899325917151610967568182294531847341786248480239756178150835162410158911971026385329831320015567411659463525004090248456224423359109926801754504537429331141577012307702223826571705683735398900410987759206059764377398865173928926667637750780518460954996469126819743587171620902772335758253044415223763588045016565448402861779550043338340840647812273789329864113297573709077599043877406539029178179804273662028730710295580784955607746612059535452392218902627630129614382267120476209243886467788860966792961816222809748923025551750567338641097430971151734343845992639720129542226785749033338895980619044424024155805883451962577922803077911456253775190772171687817587964188443043742858282265977241255334715732120986764394176812175380094710956904072022667768264457592829298902380417777187402047759328533511562510783559369281105620281739098811496252219663034971846706739488748810815553361420707990910462406766906477326858961747823903507355247862002790431898110991035101809267156328679454842425293074504509136843392352535565259529998425439527789810172811710382286235765962736011512189351490466062289614240554224172052481207287502054586496237299722839547424312494336295311318382263111841324185366794474638704899570995377002015461626358236252300506663052413426499188791234508300153088941676602590658060648558196180229151613269223313256903272402428438165553029928874601885018960200861416278443350752488255721531082197234570079471467349382358280640217188939773922295519531038717072423001707646975330729045764432586702454651914200883678179905228274245429759250745448000085778382240711814543552398600242036138849436964904572165517245605827097917649723192003431132558803415770553560519216344844011621370812963804518655245785204066715386693137910464232936596970745467984516852548443933459322544116250982846805798393121657820633876543509597194005586135616206437499939702008074140563169127611617039520095560054266762492283106878334995352847018612068980405287127882174079956993319794073617402125965393435993066122679053624471171031599558842913508143759717324153097564274801715273505971855846410261528529561922020403200438610441389982237336082979903962440565516558079949144205457202947960330552869868575230314693760729975932391467037804432708146856571691335528089597016544100552796216349804511401136470826123024810226369258502691313897597602423423361369068135515252249356495927039404264561984449333403206522678934281016148758850165821451185133516158562613167010245548406324158272253605591916960048430188174815199213818702942815221769171242010702764487927762609123523474686221451777598529910890280026563866761492048843602063074365758324673352120814013076114954840722953984217943068828507124533924546124202377703603221164131025140208106300856926030390151721335075330367847032153502513655269238458995874335198548503087201072080603442911042096697739484253999873780827132182282577408610356627697033714806662626056693899851337139445481245635984320942082442144055642045401888641427723088337218389996711680114576574684700358375473431130630150996693324717058928578230141019998716396141716278044733050850647581277102231954377103505870221458890613823753517975672835168029650611267935136070039947895800504580185992495406544656681080564666025123880783126670177401559193546953502960797459281065568888740195571815206414086213715774719117694986636479333539037048992066892349803633778806336738870090291030219117289145171972831327256187114359843990018573273766150421288360361098076160650715746932992779317821580248145904847627364251251886669454226922840216974175020481706453815835860282755303749959595770018244491693543792941410291349582645459165323377128508484920388695306899316524257810464489176372936071124943980750283054567759534599199260523928366015803132389223914023487695349799558454810980725826845600525024169151645423272306360397193166242027897839327181920256588047939701618733298356477976599613196880889885563568451060116006376784448995059562251058116309965640667745373088789941554492765858569462958415576959850968734692242975199624374030032218735276488031624531522855520084714779089446809368353036196786078162242364151426755467026461039056602432699767229600102192724181496443449235030802940443820358899965857188044811345167620679329501218658364268881207989717622780874435816117373109275808887354670904473500104061244312388516276491155978113456396326474024739674939174111959123548684213358314202192336409643096930197266456062930056131779817872680574579027369290036004985403169707509643785398302184916458275686244048420939851623991792696512902918563014169813014282950868465892363492416936232107220213333259495870938725561670763659520390530118319060512279536371470765892160021749801167235029932590243906257629573455782469240482920405113601976493652340374914403423998398909846273001702764007335267684055672961870645467233158946640061274792121335009647164390887256047676677441513399336804278973099964159050294698186469516163694328783897955700195167250643492588388635767404299789441482690310085190536660308960473845567470143319221818841781914405171198153793834979133165221514572464484742771823249394821964893968367172899603106989034638205752131861858075874881700924448415597915225940133780789968863557598141966688136483698352670705796173258840507446927806552001272042669977466878190092711719602476139576711496152958423660534905800863376623130795611966601332885738448094611137209063184540144989399843188266630445853986263639785701322299525221719917520384709230005960468449987962281808144842649589169089041982847289546571369434347135809012648697080754210956165449791004080507450529442739262840967139190789723198160800207724371869766156366685185684901841235384555650496645626273282583971074605123559159363753099488948915246075949377801631471039182547375966424173573213367049321043394413103394203451116563991711212970938088689279770467653116908586041854032933579893343622986700153679150275595691662608702251952103254773612378655429718472875659910468655831135703505592103626649994023460697146593602217055987363911443631646368669261936090758477201622245726378735459979514218898146183133088798137946537279677641380105437824772756370588892485209012905164531755717466971816138324364808299036453504068730653667339328396122309673048628822727283358584240136661716396272640221378468221074171578928069997300153983603481931511804941246582909785348593589681044253214672999538802002794779265139358681429688782595713457625545150127322510373258311542176006962518802191793974765124973255569359226404052856329896224496074927447575997298376095531521337332581966407774009482010886839544693786046151261359907931165634081605143124625347619105921458895946145301820232707313036977838950768669084453905853650572718650068882712042293406772142826870447156254423254866536030542383301036778509318179228522693583582672928237172762016615549599002188269755916398711411439248502906473125338602277415870837543481634059885834058863558207919490116672422621885771486523615878399725974032596498816109248869286340361735017376564493227049005794991536613035256624700228633887650418451377626015447048720795876165715837829194415253432699016889602399550171863809070505159594679059272500085355962788076260914183137464560475999621354081877283392744105156679350708219876655223117358543115994218322142039280204223470520427763990215961613263754091180939237776983418842220390128591702698346901272666398582877294197637453850727138499342666803190680570649827303278397638481688654830693571391665231123203017882063634279046158178777658249192891114415960230146342685313536339979733356011874214978077113804071268814834409138439990306420335508388069353335749332263079782196508069749207688257991447942243987690223734280257220125963423708228349112393720387470695889471887774828222505241250297232705848587179411544829358332744692755444514453697047339467119737366613331814621302505843975138790159183555278790099676040103443173054182813771803332515843476794416311915770426383305862699784246874006612725986330198086445905183117173507055103798484597449984068456140887120205931968131781532187547260891267953686266252622192703490511485907415828571742586153944507670334105697232236712025529208175904716462256309138647863597861763360616814116495077996875749961445807714214964593231253117267799115583900646974121778307440736657782642661538150740022366332762469603046303622464585399618609291449853509737481861426520507164776651494514118716704844703010578572160973145418753270532648845062634922481428263041512848883684060357424591153554053446726250405263794336777987858108426141355878294671327829348164018654484661866078682568482569561909976710631641921282572019794520000050673244213464700614975619105154379933661714701221625728750524901865227476916766670396457253205981503618679985980990504268146211165593526222393565449869263540888494375784925838501606814182313256267773760774147821847162846973328377861614447025026225028808920946449800666264122899473823263143452296445227189288547281535573079616560241735109006384814851253418152990075257827710278958204630096172979539400028706921013402902343953042774713896209984260276620755294344352942402694760103549378404597727469361363197099469339284247276927520524551150485973104040543157599241455606690312949062360011005246631926656006097607918320248927161832412223892348852228940116071572769458611726093372026390258876123309446339344555658018278115891295799974071834422627535396029536938681998406684688133773840698118650366100831395042163123436730742010260926788977778508010683271471946206034656343081369752268373459369347616881069487192888914194503553171584059787231337538349719956600450056878985393643603088156766362058668054633291015708273370796590064243274444389349349306871567798306113414492406063106210670289506400827428184342422921108066906878957570533294630507885696812904802638336938794924839686486591139104014221347680586773828506512589757037411010718748568362250168350124469959106764373510135540315373924905618601156087941531276047936277384975437170146008330648235025044220553472945710902722502647349219562395835119686087113538031615052313111796194558693448784372925101187810902128086629930376527590756577057495941244035603931907745737170232709770198020532959276943625216024807564960917346075860963469453122304782277908644394064766335078348823753439492281615981093773922998396385045681665056142880252529061640597601351971414339890759768309774602187425438198401628122772867160105583979471567485097878693345672029171300420604967537434469507282472669895329465042124248258948463873034216394247441765756607879893631892725687326294615603376985718650361547105230679189040682141200682219470700244670973157149690174002704313692101033703565398642717220347798750673950473046250607794848765174641390092735220729587597933389205781625415321584523774507711018976922715553056146073792259144692960498739604467329987302283939310313819767626195840602443752937052751621899086437207578316123006205265189437088496934791444771447506774385420425877363449772796181540098238994891638599351231277149209337296552509071315063966061413125941752486977047617390627306079884115774894234339136424578540247616259424556083904907027186415654959714279748795885886695832774196289662440269627942641024146135873326979600810297038611537801458156912237974382646513472056689034037224578485039741450083664736294665675962801814779036184730087898837934734155644409817256792295372869474268681479982416369903400118072771580327538515429632394378891134308382293407307068056635683652564443611839096270845033319564470944925356091175892116099169017485983961589589211987056425189896911900896738172010742400415986252468075381508229021898850816416508056165727712486960783286023295847921142151748182517621364490157573738683951752566756180691751348606339506538642456144416978670619816686099012693415285714605375694157112362596424916541128161415557760110477627459274623847302409860548001892792871037569456015216166030006347986754634549009573528746109434991018292060848924749837220188819052554639652706391066606795795396845759986821923348365814691162545346649551792048324074122691375272327317867304053687805318750409703672295288465526668962377301392362419101542241965189440737514155926542702160192712193166895537381801273186378903802698393208260031213907037067184383521367283620589554051540117121755004902255612284447540667618582914452356363320760039723539809918669335715009845914413613023196863312306119211236729326114371102411340708430918434015741945081956001320889154355599765393346813271495145205192338508180660576683962928547082662208448974911656118951782915641531199593634279573917787404693611835980188483896578182502787726000437306568595679448475016534917345838207958417327516317309460033946105110992527818561014929735620804869348813619071694206117365964712280623700300927298110927543873918452961994000954483093366280225222902531736939148619522111095698617609360108442690533113663323743758436911725057523159946714545020170994329165498242494353326133312350988396142900391322123095052632534627789403987788641856947330622651055216006300001309462240402418543916377568117574188914300925596315045055166507687987152858494374542457086560474376588484717534339085834592125558048174717751287000074539927839243404076151882369400036658776209414293119053969849251778316677153378576564765290755131642696326373280389592152356168503415640278276600235040385985236888005154302042035959130885697725742846851425649358894039026902752481879809777474929665593133756329655089493146552658834633928308829603702813237547573552634100999945093020286757753415641408772483684420974995218238859090023788259026176595262781036800298307248721132199045462594857396083128569554143649156854363298317950731521689164428428827852095706867957220369613167753761786777344600149501588029506669111154288312576878490131049904251405541480647941821430467526139658271765344087323633774466577644171905484254344830278861467006664216547367071176948727951669252331052976309418061673984035434373058571771776155510143698310694455380601075272386523274119628447502239468664070033041190866866785434581881581781519526107564587470157132001667482109711475669320990007284928168262200576849079304249919679073650188578252953293202006198340337381428692429781266540458468042306367244627668617687771403572059479777524249172056751135582123941589040189114347655474486719456133280325489832846655239522862554024732233784297259554662352605632319506540149542288432172920676886279317654227684453180266579143032995412635581676690333258870948991812154467116780919061924055781538139615069725490952852911330584815140022177422581116502463768819073449064668767771907596265521088233031433123223891659062491832086251792126858491132443355928930066546158040578498359808892285028959235767510787582220689520783677564618976773764156987763028195865378031138887643990110017055950036873589237500698794039679165989231428019506465781754519911026176381962021248140847393042791379001566950166124114678615353100839825950173029934840271843161775175099386856183278655984758137539403248148231692552322430719427913825049886100242094087706686673532615931629299645708617207916185909641922877635991525678595539307985292429131351087968922510149295299072828043731740170436501111555127596062795750945763902222678983040787604076091217355951472890963756816176048447072345776564068028512142991251944782975299123497392661663859624069371340590375555887457884746149689472206659743893343366339497531158109423048981674501516306800274861164587023662858577633968683758212262126164472697910851749826459559641282230145727776737138845899308085072724210032213193201470485357223265678966831913201307925818086642713300147170519566921433332064053521809869820037709103604352049546505999256862194549070185556487736231230704973384762846345194040534453587448085282179266413648364435642464667589885832094950312428556299227160926211002141488506541808940044303739228434884917680754805809232453379301729637903123340793021121759503711576608343063404473243958779550691155793621805864461395644383624324634469652439233098730217809980476885846427754088825187879176282525401422897708590067501084629804759346510939921332598443304220499171568468069002817639674571313560536014252889759848222411863054613341761381371143225851587706920068505725473029004568357953475459237498565409221286609558397790463684782217457848911515299378479458044383019414660378517727847764757903993286239229335239893561713010483519834732461559227002164247018112544414349565170788793587090312561408456263600329550164860607886986314604389033520508948869315249877109202959805954647621228702078204519192122459961429120721299454491379327511152582203541503345468697598961705357982836567797418579837967354119382300253142892398993204412393501234654519843057304320660200137480309062112864386908157824768668086073631186570392851404194057806521476127255810681985976536803285262299651363912250018312331189648678130916557543185576598834528413221878132259579873478546111448135436864058565584949853444184514172275333483803797613477932954631007016345466117992107223544816958959598811624321264931730057633368982216101847502457457887471333688551204504959662178564319888839699306950721217887516103606797144459470301933202474804496842941257805225759993105126868096344654698205168954110147470328503775244533397307654264161693620385724433572462513836885410633688598190620602419197104946661213297649806836616846860622979968335534925573800732297643587268874537239233188931421569555336620037613244910244278117735958392036586425886433620008796504917785930263248509931369166790645243743399208927989982944219038306428377460465286302999161305943859012002179887637065991810565196671224333666632025415806153159531238644259317529351648810152934921385602411547802363897059900608908878613904127923977790885247532619229095161942147485977961193091076086599963058591373358551542361091949341991709828146114334688576436671818940030104069397269549650484230223180761298092962214490026376839471385352873561433560460963917134771437202005626554994681728474184335269643001627282254958663713777458228718355760058426381248414468448640341472848858445756915015885103023379110618935358268301472285982380078619112048024060296066576047269906549077265764176126170675780310643407178419443505495729324925041901014717753244786323301411015628130756838310191079611623897078084026563706940584390790541991494323369842269016069391980902860871669604410531677112414148583086297874466987112947498879958466492520077029903185647271193414174778928610406037716417448995497133654526058016925527179629319513161418460451643160552422834803979842002376567220926351075018527581537457854703178110508730025747329984349118948303418987841510813351504826570713552868542824613392752382439291094876483887659868610085578991760923353553960680763365346337166063152094227706389591796093650341639713030548239952061969236622261149294156791856093673718836682736055870657919557814793041761279587068497703138033942749496752450527658002795161995900868758085112663096372704014262647031362983921283844182971941579358005324632757851440116310519019154691405912711305494164904118441000660992269643683424110652620104798562681288663669884204230132198110954756495525927342803470815044886825751927602302296786654839220979506164942774692048703894573279157858574595959906986832083321478458853086777450087462694917653644263632003041626498954793507640850651667165878282517584897371601708565377102154254571651272188220536909677502485878323847493097733532635944948194940861266092289784881470674235450099173205716200795432374582403469965084755051057565491023707089760283955511263114089178231027321427542969526227445667978075281012419581015304672972177611317084697925948174764982556801742693011838636855807559869646834620142086156245886823703759444383410332540277126328123810212510020127304993078110061130677751182558042522553045952258532890717828308562882964485392636504793755811846412326733233576184722159958199400477210910738007612484479088107373159158646354666352841686987884849954372928030212556596812461223790357204598464442442111534245791208863077428840891556121705469219381969699141398461069786637054530082167188820550191886579685399413000724893274848731348570591070887446734191445381696766937404370778086880174211580041889631192624814502256544102738105156409603190407411909145907093445589804977850300502529473025505679858247626528220237595570783341366061428322078192630844188390049983048859188963535791828713752648016628334187855660575010650935004068043631646436641455449557500734210075758302126564478114349220120932475451520197989891930379591341756484351180945883196319148291784520797415043812434019810221761243908801619451243423886301100212815831905483298310238316231830307569851045157189476890852397985147801557604031112211657674987420333866801960120568886771109324118750198288804030064356850308732086511812194281641390127149886791389032271330467532704377469017446340867048184502444659578118643922322863235595246257471174310167944081003023159458331997105460743612803889438525124779873950180315453967899734971601274215576826776300478077349910629824779171426888966002030112135537740352015129633610170537673180574895406078918093585943574337848698218219691647693637336944677565094925283198625748518859546145696553463525762357833410013146536862693155486935140512128767220923922590511470250443713088517364289528133102329496131841145606974265739565450580763647348194475451141372262926952472501257915442475143220632622161064452283654657912386729439181081070961482340292480900851138147934151154944728764519100310788289008357494877868099559828905827480779865605303143408452627284472094828963994751599091437071768958329633924793961149411094492185338713772785723775329411823122169394485546229648399862757355776294500273471307845848502397785671109882921000580493156357303996780586962044145474303776589598326017762836570823133488876866413190976723820167524874998573288039864798816355128878332817889524576890428038901693890679965624455689238728942796807266522690873836101829619404376193290296368721339051640111999739965978213010543066317603616414521806189518558564550688339046023640394659867891164780105533186039163377549436204674953765056552307657991895811412650750935078151775067642495164004621367775717455514107387475911653607887399619162014808339244193382709208261774175629567683758973144018874986356758535288682228415943453071209541516781501316649448599876544741391318854770975770291434764357179109231842065552645303960307151458325404236721270381934944716520101325382055647180172468037799524466996517978908220323263295589387556402189700745154886611044487123187660752306366995331859140729780010912760036358804421565148238861998934329185403506739128248000494601082895975207660142309561927746616240714987948267183943778664712688108347037552229737582907100730774896482157478850784261044709351748786171894417136348191801768950652544381337566071994886399353917450897169597471729171981386533756012242297227186525739267624744377918159437968819731738830907985002466684443747536130447633717246326727646792253832010381614514711331700609632075421392753175341600513401872559917831560874578495162854661568626651926993544508441682253649291998471161168437874678223925847759164076894941903580910500884084553236067662227285888779684987099617900208275885806172311781140432641425089122256996311960081080441343730296725000066469882202946693430745052211065970822255024531440412558947051475773860695201412555348704668838801322056366488663960109343721818799234096805971484088140917175331747227528414579269786441899357291897435668702213566225504484164490419648954717086011920936300379211846275286243877329175765510426560918269637937509195299028046064236120903943020287449972438094175445981947057558125690265233356183799240310329319837567536581065048961173223628518163254599092585844947407419407306855585234619205704293760821455493725885955371478511983540708512121349904441640297044973585697627079231189304239445481502066877585261123082228024208216384095472918789593698213184197604598260975042413608456251682278238813950665249467365500024080173563151806545565268188758199691322888654212587392545422109349591971555432661866030765237291834024568069689062060766040487596607520383235646727070525542201100462085079407567202276279583854503867060900115364757749321271901619306361908965098861282543140701976484818672422825581023424935588945440657350404146175502849608528886737621937854806175380886181310742366075844831029909048983281627532015591419966423713022647861331010371974490204359058447244375099604113998471266711586437911437170291193246947348972880074073174484474974685450931479853090005528821095380535655489929384279625898301924203761831966268152166221064567421948250151730121487127041782575785034443961061896565727566175230757106621560531629708491942847435528525066141941808804585919765291599476287307752067265530532804277408883351464336483746138041109645596547837856787819416702043091167242699045155758500257495276304282088967153791195774359166146346948001642156863435582279048979267504596038211478785684127551127383943319365773499352984184032636031876715625251164651890015875400541011685920095317105384467765174326971009236153473935054604319781978545726349478313439462797554528434129836035188823723408633804252379675953882309977978424065721625173607144803965025372845528793547975822866119613666696864546218178108118739113396175248616876359531961149949660003676891314847437829096957361342575811663172856514533683454591739585521410176041513287819785147425182045723800691897646983670258749585664666630762773390375540035184195181594652089127740024402290772286899011680406474625201505376300805627338845294074915019060134652130453597352783659505459610423904487426383070053670578630870601306845222943024029982996310855366967026935520381125325918147848885553303001071664637289334457969478887610990577332006235127513705752385214215745072020331183390160463045934071092329983734210716074238472201410893276452125246834548971405352663111593627524259542680027145782716954508674322099321078749050314199753886283163553991709410518883768065832024995321698611513948439288845928865958671123178667483651867895834399030893186357803519505966410267465054351044257389449266913644006471571096429929964208178807394589299316221324174652976371321580399700572129534195975932396158444683044341312830019615905355388986500282898140378987080068976703478965178452264121547283333271782148695182112721600003687561206407114632295655870816502462181996004961383822568193941906035431620573918300158327568002737513810134544597722433513103766236465084720370344442602739524118064931989114074014261951919729376384518229848767498808272678269097205377306783736054814808641352183021985749073555642076471964309230201174118086558645491475672817169059942465787956219206665812946916462002128923572508450266099498464331149625293335536883328259385665637561823192478520244791642774746801256697379371204172325369716934658752448548180096531750179837363035342340896811599326374511740141630783185927214523024192305808517547859121254112302480446346932524914363537087127371278117820206116521141815484015131482557788841483711194552771792653184436348849487674691795845657909985877950547181032829841090014374703808549001738897608458881750431896750967446538837512263610058245641485748019662321527594049542054119980544614417574442959169498642634660223750774630785480511633211134805597344807924060003328530770023040826037974327606478828130286207227352221162210569126979104248856902992602326162905968838883202817902125322290766820402181039705072990227638537236405821020862312309389167555918818958992495784091240349528708831808606881728104866635210015936683998204839596525627078031953678460657698420381550722768890536307606250922001143796098040595152400445277282214840858107294929017110553311070903776709849774567591322541015501610932342125477970327352495429064465595872054052393962395858421157072545439604518784892565270605287683135938085901434231140677573603571338308369694043810795235387790025607225550984556409912577748584789175516040355865988320895539009099944799996595000777770980461289635413507237761249877635080671363482447447215764591465081956441557085026327899058666080982373705441635695304844384696756067578692339449132219683213797298987908498559951487722358436136670261765976706787311157198332159243664025062336459517242012691590628308542723444868327109306958497546801966983322828999304211376128446937943360344735251537671048919973285258755712358089725577703237017012531682724225165643610983342595839652058848328497342034434265019709928303228165225853277062054808507143329643460797465701944746147054315246091486894583612093157695742239518695713361712481863218192691966367724921063054166346666555769054919242892280815972605809470546592140470421199223885563818286734305554389959584929362688820853951645176641585600868626212066813614801405775853468364709400109558479290386548690873073210041437787645651707093426581181507836333389823160460791112628819098415071491492785256557688382785310026234380960826310097316363053946225935708570040533822646702883468598696539611630731590959448743963637945569265121357331283877184395960264718686593417469778276015545408298813539420427378146837159112208583416846023993415088490777954553649880367517879806669937645677939495835220352904944229631515846166544152530477537512084291566179067560447514991398788842682487262189317588217523975437322092604259118327201145890312367427761369472405310822930295060573359908078499786706487657777024080518963761431316012116049935439036482384108515009884077768237025728848393717532517037648237472232684397076355541362604378187181997249365995353826437814126089458211376747923242536855131813785399354994446759947915615415363471053944722847394938760267885821626342455660739009449549892433246762997085159403577827988771415554450079609769353985959120418384598409319546626676788696220631373334395702582569272718476318255058245168372980549200856742549385140020509427765151938806053930273402812359143159679215623501713753822980493653902239642309963646066661906743383649181570705105123338502029866214259978104532877232202609161934469021508084322230795288331553862050921263208540333551016823160841751642855550714486601289044594163958155244040958458471043400905022436961482745705521848505458668132995782352484953571985226513823407715607564199688894768158907271540561785878249390572054836405897233273966337876486459755442458660560446177598883842273336185993188466935543635248667139033342340058953182804638690988821569195456897521698325196716624485934077204567070091706814527726289207183851375921826320612021252172841637820914915696565289918710521739972483042264778099825532469403785983050566585129652344840153941266808994710492448081709417618649360327854612994965359849163876850455058084234156948508674608264477149351765417862209977333137436497272534683776361720914018063895096458037204285344733000238936193623280030652099280923437225837398130785163850664229581066852866454024540542988885609252743384454806001707972721675166196143408206994862812327784413575782491191016565610183525425244295116681637920986105922856369170556385239299914746255152645070755065615609842677136078422189204368200823041427563113312060556385393591323865033922188729823728109943313735332489492843350230125698399622264987629498525902155653968663366537932760975431082576977783594777517334724988351498684711781546741774250679376821775875169657874154547671172314868806739335808331522536375567064401895584241130756148632949626653834612476303088544585218989492452468015117691536692386079992437002998771980722675597909518544868346077333733920058215735074907130336941478403300299000601042341872619993946257237940193740608562754129286207771890885595197075637421061127474949622387459805803634332456823203459879337465299955034111411319793316834480851009259693897567771688613637372849047694114483847383571929249686002870480925366629747197809047580537040387780807001329390464520523249990005558248543109994024811610361224278357034356031711076050579542359178860781339392931988884363803180195501671605808939651703174846510760803600434263768890168406220743419701751103502617113819139325711608472079709759097668471834626150737837413506425974871042647705008239534286581542498558191411752664219404519197433703773784812650870143504497509966204120659900680013683266432403959071069569850927881261261956248488676484932396638309954337093654039750884083237391389765846115905434495460903931473570712869752984603352944837813826798399408180239227492036603626546514858497733593891824543664243569670521424255952930572434856237195960390686302564560241411236466032240084945726925853377326465706655125219803968620442410373226761192178098335600590169605364742630237154047532146472293067036384663784969908872992689331371053073126757891898827737871626454536818896424191451670506346434425479796663821873448964893701986887332749859114265804355004126393558055378962614384169653294946621759329059423268225149856832533271864173120331812398549708854355460063880938149725618039173989572864388917015153138622846405839736730993121067218588209401558777804550510799326246605643544686735551559412479900247976005047010298027857724187778799759650018149973529009400955728907169032686876426262710582688614792096023300170816112313166265059392540055035256138999499111667894039757845466949732204045960333772358836383750867033086991747133834857256073867972144521967866940895048234914551112729083431348629818722357586119121395054273358712291904693605717627852019813358138971766202352381828487867506464750911920258613480489329194676955811244502463992427574853213998075364818101389644911838686036160165375114219282770097577698696282550362736089113897486017856479876962113795844813296613000832808254418724501582986809220122141317381749844533729379860160137107738117697134915900558468171828106493714776957619984783107463922361772646066860880324565096833014750844270866496480172499997705818605462829384708420292690912224863502957750525074014381176799068421522715181924376464050853730724400956436663268281454580490631501360720925651796928253013507979573919749916651356288618283018191804017903621541370713632394888230815576451100772528470012266837977624621312557681117294067403161661787898983761093707728712909617155383744684562099923653375723039840376682018931958168613156066702010836857561177792648736277213276019510843687118939021121357349182634507149450582912776110254923828759045450678170682582377264091994249078533204581037315456769678016140664329644182044171250444551118887028648240595706560597036542384773163242761267914736265525371665257276801638059011088276029230691850051970146349123032356109542752929630130731816818345993832871226097580276994844197010906106146735975785510628338194141845435973730050594704784756882391835348079258963157870680360899460578881184842309184931902028917366662159073542030442743434398183599569927162361984680870551640955079339238589733265511103798233702157734758762642800652927327311580958244950161158210881938425062185445751084126966812908255963242640552482493533374058305335920622032469676218045307756314506663437917282410758934078170048496621336463309145115513403035485760906230760270076197673770588572920058934450405716665881306189692130431746038258778928678832408618272450976982509395807407093037270316403796368848045969003136866320845590995474916971664546849616379104381657645978634125765301480759054984042267824193886832553971885325479109821650721615615494278621111536414598730965329564489224768125117868926437145373648586427126876714409745974282352430969277123749619151307463859888922003044265210637178725662445609377279624175980201098031191404661178865138367992846473416438790703220855493061745580446021311528683802854451807788949681233730283739738612476686009685385852903621891325570224942291761699696278769944743219528867904895509876653860813420947226484357656304515788938208128311033729917727734342758275541422073804998014876492232732567917477244118935021693529360708531922262929383311557670542269950291793413076078539382683562338881131557438584152306686003956923919028646139699836480398740752962964861580789400764026488282157902489583462413773616375540966056246085856640967883231910636929792694710033098674044370910714373024522849227400123885886641166603554048312678884483566767443466711786480802808704830740252414290851350277311752951776751470694894462564751993721913494128719100719085021432728971543447093174339376595104103581099828694841177734830902881021232906217660016617031108672082631659677039186460309505918059960844401966142551367619827099846203973521271017445021790406538102187420282439996178738202001261573330056109311856880442567509367916206338923496928244140885846185225082599204980361076814238281779924342700473529263462629921912037905699396963027360402394096458740921854123229192978100333963803565329441845696918249324209133085817203136954661804160001257588356679438517708382058592716069926714485005824437447778294686160060140509640440281402811250802155663209067253115984935549330608141986842241972990239762143101086895869947885952853646765668527488922259435176294410650281187522319074022797760682255274937990023030337868260378329442053169487804196678075332184587673182990422916063018762505507827166887383734402572957910519637094414255735213117071565947626298515168720481090930790561031105758830900858381367217614868739630924104050739745926755112881981692515688766182862675709499360782421691597276119833443808065356787627720484798456145454821082049348611990204238647355257298091255666814967684548869378817983852830915773511444777946677843240924212436938546609945651967481982343264453189845847468998676465648326426152809174129073730440569181745162276378148293515943194691592945697417637738492230801455035039489126387607704853814738630577070538137730561367279048881339498607230163722916626610915477165416382620046734971854316016830648401169528745916359101842846363502555433185751254970652207082323620635666756933132921709147276838770839180033973402964463760484315515552001834742111399079072053850389608536581460239329874503679045043387768451055228592467245451610404693013785984306973409668404148446563341056829518489899038749015358013309696280327814886428653567018952437970686005778709056313965423377633342069359834902033718635952359399953450981371645987220485004126790808589150644248467831708457921268581093358701451444554640483297569164251748152820482745702663262203929050475274983924300504105317215751451139048825707745548849013053683200407555480342808517849069213709138713313013298990000697107601142026772456203230442259048418454155011955564383189645600795836057111079839789173468984399667232794545436327806410632270119847348885987252823828294005751155350860078175148922292905155184586067945510423973806830451444709683359281093902697851202187329348518975030386362082821571493811264819093885666964584497648186352465581991307635804980627199134399364825446834178594494285090886132419652528246349682316579080833378257974879969228898845911120646023236154724937247089001674700817041846916405819983120969269198405162154455637816798165141726307146363210818084629595899584221127864580037602488709215872049013234518238632047725505729574426108568799134987602879863523231486817886713387487566108714435319605591555661980685868537229337014451127684954061508843724537803364735538646446242107227722234139840692160451742897338008154423053138959086780152334256532325533841681711848405764777860365782858762549601613024087865428865097065791226346467015797959984800830442435454665734354065777695340000502523232017695682920570802854017275437464036017767612952985809999760483972077274890045006952583769546701836484158098472513544254911856100211016032958799360150394601970871234605634925819795374926392569127686596488831474800317198530993233381646202002026697169567395892990469807277359692923445538748150325990130412640525057840953264499495975283004937571112169197953420252259991338525468808680123683824468347416378167184531249678353922959392815413440742982464077383813458849544195385302972311228823409472503509016999303690271325199982501086230276064735987456111285810225332804902145544701701990988876785071660179585795718952801885003503790075120883536210487821435256878295076167042082902313048280795394239395313439368229396387219717495834916221711863585853280648423403481250807176897954836517445670153241932900221277514750624903359221776194323827174844529785158102830422038551849579789007437528394225890222945628553460434935172043121196354900734818349244360031096315367299249476876647400300027782767724604216449180302331348439909961300921809782215508141385412038539988532548405841609152552526048047500510074171683532456753586984999915551347488964251312029296107621188946454032248231591771261139520367581668455526745812677057307763827872921696834012057943624567731125322388037204813230247961328250317853669605849408909280866546664577579547061185622999088086203650474014719748418564013369265800829796577216241307894504730009163009844950520952007256832574891002342169200922669016436387303862121037938448956209649671320965513809532889271712428100932229421217627067836450625832823825330005269364370826319415035100592502010588161163961573856155507526124526347602008249406795024784345317093526268310434465601588802236227416023264475688863626514972098531763182250400927956437361140476652510921337415548522576269173212495957027635174824030880306946305135698946010424876943263416642581789031965983372989574552570331344879828512069271311435898448063785428177992055579986015817905019911503745639314410345718216953878487001094556907553519046337706086793231290139282165047773219039505757779435854398656125331325060690236521479498105198584917452899545592067160439837741647691291857197005026092203565674328029664456058917150214655451365442024578378507423394823707293625285226783941962518717625546084222336245795217206783672934621914383005155963815670463284391057939127001248002944613368741160320129327628668401359894129248564144702304499296732230907488644016135604341839538230851532592114740618316553708449903197704371274976064614632018805344527239025115157486438813847991539375904951707804469119793744626675626691662027060121813444737687442430339368181666699781734469780792832406340327137174508214017479606060106953307316633843348332357933711857519259169123984369209102288256544872609154461130491003124247187289941935336520627062859615926822042966254742161234520242380613933326385312765865207474704411082416819072109943150596562791428824452734967141273181518690026510906273205819302039377937957080460045729239806969550199156570306662030965423824815898392830151533800982887760739171780365340528621084026713088047767791608821430987755242531263979523784439598674516968756895931170408895249480964874235062676895471780594684972912620947523374772990549957579949212756132691581482014250040009283995310979853739782823701809205786779217698978591120550977417962253911563950898432871582801104641033807701285621437349407057062905898101678442159624484914058854157816600350521048165135579997562952926721023127593433996730958714545297723461196833970875403682720017026626363749311178326134624601682911405506615504214900312111490848845259471401946244763598418942655821440107627001766708088789366192559284009246166270526430774587832260777657102949669225503036291301697039821359075564101234774334818685576110263403789551439529113844964248193626820806965648962765139213687202606366357780180508966060176024524768751373292856392213070227379189328655832900477749701772183119805702122707787281874419851393196717036749609772631099989126754144786686180814313739270909005603367117385999981297030846353665218147038965099039712142952161955244832483653692654094897916408081871046467532251168124666049767957513449247459172849891045172888299830964917406685214031039546946846602297055239645938512152508358391212143253366128815112247741194836137727419552841174612136197594587839070181218510755550734942924121038036392318184637021400009646619135990186353336445581372921347152652516221760894623592383193000863609205457904584054428182145974339043877671662141807487733172088168220853553190053621455862676504225618828143756995521259899580469074372282539027528686453749020759346488637360113093308337898111581006383012114172049071685819304178694730465461396923141667159514452206859617069540895376151071097349212767773361051628339140818092537269599927405327587077066517948841861114555982737644189241508538758099284243125051317303720072427419055878235241276576036077802218607277538219684746001009839376739257101268200004616294432216800978778151689525167750893998245383123411440411232791872712342343662245692287040423433397070511842129940573640617623017111557659281058288251089707265195635706289518994332125236222194137240011771689163901868004360366439917763596159008756168594655316656335292331223494634527346677602547466420211662226522777377088858621351859199250825311440322480450766876397231191871015834137319909894010527848764078104732829074254119695942979061817279498446903757881961465386726560158309384800056299181224857735852571711793546090508212703223156618044602754541705584849135331099189281494561852590677020844347684195076724865330922657390993034723112951672429834482311882749245388594985020297392979253741885606488064128651111573722640623458513525764546882995026662231445044232719567890124364311485909880514142393644877514622453582901335257250539443902461435496659936622090529890803917814345972930098982888908680790334090065803072865194740519093356734660036661647858243100055761246223685845344657529742159157627729838580140478356537245181254622787143518773357258035412572943064562187811149925690390840518136338688533477707288674305214714875301264729290252243639195239268660935296211634139814410098200096694905268864598958804118731476909059569873330864614834425255983196223682881706662055549965251467704291432077338168855027581691991091072241802886428042746989960261903501554957736458539160157875882847112181214274271106688694012520614127412610301934341428771808264459691399775512949179062806096466770608613980706162858634147179330068625495676886861541164585080584907878864628360210891515867592487644980194253161509635438971913556186867753934103040696122792157391147562692348531991553477868138245088777254434986432545859848737158200339660255284420963543574950331827837876485088158706616035565041771029775165557976410130742180829438984642665459030459539740406464015868731266195359842035123764048402128258733579925522954464006318924676850247586489671895216575714127979685546441680949937911304571594149817838637527569546756708674725657893601489993889033464372272614323932798193660022420656465609596952862170781684699027143381780766929889974474169955103424920458952934939031157817615717056975004420847197057649430485168999137554366356892442853568241424204398342540960424771929499900403329288300684860235027004018912455536616874068810153481842815033554847650892503729879046358705958391296508840233454978744994181245621562278714184836246692753148264703986159806131092643328142222485916054785193292460372201355673681097020931210566129180161712518700019392541992935097814210524273725354755112324147423042394410553694007340857372882304339324335214810525974858456362913078407709959511537891478993723921067744871086725900138667315292225619028337221865218403014541239501828418140736576350237513905063065691248102953412752676592226182133930228586200213358494242538244108771757459539803136795651843854383748828615865210039059545338103166171728800066686565908964911638775637447216548885067543970892157504988047907615934514051468773639067334383183315835803862152825171130260631538076018976025975869357774329670290102540062279408453356745793008295542092828088737301450069954304062741551545564446613284182744737196772857317750276293972733040644963556450474444903189945582139078087911404885222292405988989565660962486859048311616769669961925186188794580173067522145097160391490406789095987756460254422251420579180706237645600377659120637508330440035629870554590967553481174017287458950714547598828576950309724151519884169311207502059252903480589171549068269795470671015706240455408573132214799999356854796841566518668484345536654509378427173311339127101703346991183828097239041325600083209592767686663540665846204810240853812453796024671657105108157441184313124170640895629113859570943419690848070821211242751010983305931511122655897774060723684255466912604445991961534879199001147875329517697359569264326219753750606189969775919962667580641278756182799184030101204009429354839177019268390121699070567966397819667404002418051415376046306361047400446486166453298699725740136264349244350299750959662470195564345863913432430007921328661882563350672483124139722796540518448197475915387885480107277986139887123649740894805784618711592972860810068105895539790294774817349281549853990187453501687135982979740033417028096843116868843096853975775333763721280039658421757862798597775474254221551798037792882651298203189748118509081014870929790542665362862573974031160207400308220988683463214143714983726077404546414959294478474437540992948204616207842275413485821685135083219430084402592937243236534835485252807166516441123791921760271325930918975802874522743575481261164858298197951562135715702965245706883226326099334252426471451284645820194714517579206874467356699996044999544494803877124236014928196175739437607250869795845637813780967355784198897238497376269043264005698876314142439058394093699235540032524034979630572692400207669957907198265723012129651027996149114766589791859225803336572124067296589074705152916505205248927892009971855986901569243072067947391012365659332832328695635296122207626290622639116973801145931990600139180426666895548654490199111583327483221328224481246257867166504529570398402585965078613609974906098267870013755469620886876553097912799743443057395566663486364359738655105404216626031946104313738961589603824754135328732987130694959709669679864072403232736650818424832085559804778461553480456002611064486406759230222173598649532732673405800227394578208735092227695792863094475211401021663828708826960834315649832307528177030602781017213905279250438589326950093119622757650545386186063821583407702412221283960138710101686077862412762442671151123612150161307675311868412413718216080931887740456280766209127346972831714385204544366827005691617688565659056701420940514632821232868128625230956863821488151355361718098065227942911534755505200278707760652632878554051421330562865785204903115175595207977795629184339646579639960426965622344755703599924368226812251839883255048894740714830890800391665147580974320027549819711495408350544737572472961899178678661567233395300565875269821572639353075954609850282614366931241495453160810085891666832736248847768061564120976669013441404650590580437431512627363809024841222123364046521274897853995974021219984897643084429328163257147844464312793612776803546355364655721518630636217170411342765884477240921666476702777484384426879287580888825127968917965933793651031024419743918452157324052374057997734288821796391503843118995683556577296403324127230091518910921272923347502886155977180411449625193799646064343374724927528338225795397029136778431609816523388199715833169026118252595611784702647947431783490589410267256996934927012625304230698400261681915064126811818464364727332388789456498134744500068041466587043737261590595836240479180490707767963997055125979326731456652949450167531428279085239924550947513266517149163130554777912878518436397105636328034636722252762695807685244528036840992060970728532399422719851559415601860587228731624818977334027117033895240616949675893741333829592365647584127070536381048648579271789396383342956596884072045555364557193963196631347299235659706856192460621867749632256118098572639216394581483859337211914256864525170945066779953529639629315867317151371595570566257785137641936405953143286583730772138313289148355972074356503899216740816129893884712128888682262834969837084627389012190357904161709224527996370689632411664172034925712322593673229679227251388607642197676658821325034036456808223956726059950877874076852226356641732135228447469297563339049940504584761392447787450216061862168482480805900707902193568869418656638242304468750227132760664812786774327814889849597435290745084807530001668075883763869052047261864096235865689550854542991783650293377506111621814344744268652983326227521432803384576510749406826158510141129759399549051832839119601334034809840810255717364202186457156120276471652654183656692247052487236541960131957807260067739574087813223702274024015509710516198797339123148056614988568441816737922147012938538261081918757109324233679747028893092337151240406276398318852919520476799342733707613283486661009286791847553571314443589176604037191424767802763582463728504729943183447216022835130835948361343559536299318366660241488990183247761957594890713647568256434058838589993691720460868500186709709235702207520586504921725922346591230498652478918894135747254407773168427817147643431662213793835567339695384651899674364606012581600049436888284754283884099712850137081242969473885445750329694272809486523966188795796889744112726287765165320434092281215015139589681732440687543416788488849948460368189380726686908166444845860520520916968898704381781808423289260114293254388786960836959363479722585401643820983386724393971805801387865589137955962524756996327189512737988210172986984503389162392071681798906649261421596542413703048688925569627589785959344858792965665182076574094887461937600986244587712152462069382819494028712661596990471378279020498168444504503769783310160505285349265737550887994220493448647733964492349027793874337036749749835371888337836947139667382819183453777190532258839929035564339422691495985381297348039539999749834740852430460257740707234296641109600177767684960386661033177531308735751422116097500555678003471115702086327541268703502737017249661057120367142683663886528259140150495158422953594915562725461321582502146984993675487309517769697751537346729703375578067147685664504374608590446368729581783545524423017204490561293588473759151960090178684567386439596818521141240510428550531352929867366662606631637493302076758210318883364354835435353038325198119886948347938235787021425021795404145290322379701323354573054748125552891417425227722083113130309381090803370257703914037217543899928172288706846736140460519813268982189819016310560810135647378249285035792845040307755892319790745946954752728916742742695413937130992646372827071829401491318728558832791747750844565093288949971413732004294510799170002390950401290190004249617631644067170463460064477010049945948842128516081995992371274316008811780970159806255215947997635963980218822813981147989497814769806573108747444116204895250411257763902200281018572861596738434938373545413568132501543119396141642762661057190685894012916737383522287599170275165662221602056424013747514968674831792774136651041646356565903115593644362234249369278592024268191704937209965971543822268984951886411863466625076239605512118269175927893327146411064400841650438717514081494378332081939296857268570234401679951912432298065220656057289093498987588712496338233538447397250856877444382219305606206908788906570127667590387415143820697695360788272535485198652521401241562998745040265024744126995539415766737551613170207172925185122242391179016935589166187898969531496644214739492680669393531242454267106130235809898325901021151653642468526519553569841451130390761265335464901899241759378325483929189652853676716045032542068550534645586376054053871031584847681803753271212095089552963213124368149107687875552173994082490835197604428885860475502213206893683030872951939020129904454559189649098119809795157803447097626570139294432907664499544682375330777587841686890009088017034599822553993844684929910282664689036555163511803095951652670551321648708192174836314876271913876489329992686983452762509820154969851864657647450881592782333094353596567225694294356931383370981444282831382280798928226702730316710155574178055966782016207906413188505243585172862831068095546563422113335278735152858694876145519402475016266980667120692149762346420978488390511276055326183436080146389522502829940225128201699893474449229509579216117643448642649065416444918334404177567570066100383019286623473031794836391619922011925012278787271009512326453858045997767728006655587217059340713230427111200946685465021041080944997484550500614202684220821556685194231406900502262584690739117010985460060326251311641075960864628314052435235995647177301009925096596081066918975554842501183467606249136088116898347044641636439738445341007878514321198726396066791637206288075446087853531534822539031011374903174597600945005299190952917437308728393705646870105392607742751424600160201247934021669760336150845865892668117793848995835606166019345334499101960564903070223180090443965888475551340724911248141032969171725680685165439965921204122279816395960140818575604233081445435104023089405823646946552212985312626527334987886831371906321246072547976667669669376602030071709144613721116258069459244351327844983736524600207945507598553458084950481887683320156003639063931253555065730919020483481823170569963409459618771357044915930762469146251283279772639837840502161074349767812160217945284203776198226361270193430024726121915987790933204394901663097321694899064605860716574557942872427272639524897244131303180441857298270782649236319573553278571335739925797254673778530805613370093442293742801845154070040645321217143891620791637751370732489409216113564976600383913273181020570612927524852261586526583734061740859298589702385469476699859328113945179306120462441788512591110836096986678747205147057359885374988212577536449867690996446809762180787437984432586710711046320897159507199513014969080621398785661853110774353010652165268674426541908986029788345554321081670975379132556408267798571393374284896628034119718813814683961487841930397949563196234414854974097259263590949299112901393465499850208385688496243807800239292887806456387350781566465748445553133721108568050990635196051018794906316723746568301601554287597508254482966372670867477385974057473511652455291064731038738668770402455450385062667089353486593846711458683004966098146965016201708809816255757297325200897181647704695828959795557298928594998177311011499752762693495039346245765146460450642580477842683307821596076281000574312599411033300786717675040425019507363742717004185474586758010444843533251163981158012741443232789048938476320242405840639377363532636286440737116350942930591151596944754631287123828339243366155293795407113641145043472415014371326845032287467071493562115252116133624376675553552164861105296814051913835147485918647219344363442662586844160121885693770298563620231682376794855274498083637317727574316827715468427596066365325756048101195741142973275067761125549945390025572961953395527273854403647019808665221687873606236425900151086224268480070645306004862144181105893626810469377304526731050737886410629351355677047367474335475774598946238052984943089819610073733647929208679607784025924748592704390845433837711632187787688794202433428518639637683503948470391342552653364137867992081174959567016441811879623735681758689327452363296541928655893926425147337299056704059923578121130237192245183749372994582048718344550707747355466829552127730496983499974668079483994727766077436128361975043223845521650253368675150989072281077731528746050977975629795432927825030476551603385820672580997697059006766703737711890708492632564417559987354073583787219926960115940378721007639294472207427417952200354275933777153826082266079219016233423589313168805711670899528459374125668009459532262019472129663529519308463988430453156759080617082203130904669614708451938087415539555596911174121616791305213793307511101288700445519666513444557908387040102151778165022514369942163372048847419069958796673335597883827786525077911960711276156094794164275656809221705769405379417031174810900324178163117203947573676071854421269757555332636804450935813482618665855243402219711951125591616209120369736565406698833609811733334671123673324602650507510763605388310261152856698114158522356168658350241396473839618849912551641094896216215991296609853053346686328890181073330755400556110137294173166302186305016939251074343941124389605598387383836766700322068948124235752783478362193005975742458654187866714028281318967528797288392809995707086187628666479250007447742783694987595198762555047057473896831414469973586845280817244189781834865872804173054662095095939735012343527401028174068387990973559077920190348750994087436673222664499933482087923571830002188437556141726412714633151120699452094291879561738369293528851077460721247253298891256990219839987533524276072338334909080414202083408800862625879310973480226222304879155961145255843375607266695549049168719747192293523166537940161474837967039621423150447215861164115681079578595531860275376207510320546913947618992562480892038970291578431339245963167182455232552602744582247174725883842320739726465569140671288774567054507204390433852775145879842677720803729634872932160385166766007378904638352100237907569247577073466114922516433606706574550759603983550604772603919531211237127453000851488605570979357965393080605028611725358316972257815560136827689391906521555083076591007887850387187348748137027478605265032468123174110802293702316472241575946041373512646051155178979480926900945153368468573649413251424900841465652176722571156509715452292556457445031849464419518650658872132798330543253558750889328519866104657269056992834194636248114841543245219636049871609912471751579213087138943774333909798853430625523307029128051967603953096571376120213530569277456897238038887907030061258362167211919986651336999482221946421994657628263858555778845388083841534973259850233919062844457232918922505486427816599823099804656908500180843641522285819528030678706901219700405078839843146322124600371553605380224355185436595596142016294254368793349184872054663497570212016079526908512898074354604884921171448757505659782313783172534584554385232534309366392437530133706549205740041232692042611905017347732056955671914785653484556466168047752758151859410852116865512543191380141952538382139584752895297630317577540252747020298443273163308675908013462042657291540251899030724029771019989505733263479227683952486918504831247266804458778624671851377382593985106121368038851977934962225340650034317427468767063359265137606519110624862889125594322732573797194653090269339453241152353343152351500947601976638369642724257621666710387469138946320560983967681083581432472142126584070270093970414518704244395035581949688082899670065652592056589411407465466035844321609077380320513612960851962045387390155912855983989461453337431612005374793606047828043018995929734411398542979767144255696656459806408833988820767265448429561221163574799105009188279955588386519974068258014710994249814660774604195646051285135839375102233202580544692040320627196568963015787157236503040667133533831051612408249934509399655688880980435798414187215526135280623069307780046746003244647521463947859846654392525226101055212984877157928877592338808703450643753391085326454792531944485464362376406265420665677811123856492817401827799952739885047663496778198902969722872803173362558134332365481044119391967527425073770117152381899504688843076167279341906162607918156255261959341465974551515896752746770492804228376387159906999752999228647743936347318754499866563872191784050175522077477717287778097402885426994134760058923256041823030246195784969791217948513269955191888463768255191340877931124599892033466637784651328331796540909392904869397190062193127802732417866304854262413612998483409617719251510029593052135443447011789506845370776976739427103206546389665702016958448442990157363643779927454678197282241080478686508106372778348316586254686002542082162507582727142767711030367118692405922582960004391120601157830253659105452007979813207950073644519272472893902588461483087130540455749522562453150161370298857161330678442847936014324656039678116945414301118261647411359363089808547684742268479094635557215343695064115016173124984285108125979835274205866432606598750499646441186581600978500579024464636053369590287735823071132039657458639681614418850184152232192018103143897873301270071515231160898855034780608833439356053621390841336585744842564209529599084404914714969800381286441139535712467110092293155895423953396065654289353449031006452055380590498868931585985434713491724593546840828513586447510428075251682126388683495441024356481291612105102683895916791855114149060658869855985169727545198106128836835911827055263716090815992822655944379511143501162930585834120650921558831973199095260194587230465520768100858555267087312204643234832934205224627903669887496379986108289593514466429667507002013270793045693668369025091737864346410749880043125870155584008542840060144758879173976104239509312538375655934342530338550843079934707147378162358610028710108511718697581673007651317136573728401317154099086875322373251637782754522318882634052146787939200823943531060850955044604209907906445620160502505168211013210794284339994472183145794183093960311736014589415630665128764593819023735172728862345061596864542000386546566633392751591383578115132178218060299523045111100812516425965314324777505791888044306781701225228214320804799049185743835306330889635941186155758484853195651759176275652990064023749426756780817865787163236611329954261594963068117956830194963001713158834249111775023059641400963594802704654753877178848885737546901113381688559908257876516921107234121901641173876645410877280919656191750576542177140258684606485026947499978906004835698342137618756845350974728499259253057565858770433473480303756728517084585199099645977777995735759489098754930823063442702687160382960492114337149371733422745088749749713286040871779219724560001381273483595664732981721823545548510059555287844235725727564372628742953560176078833439826370667259512197533395893991672835189786224297297485921164203364036940682712096925760012758276253805376262104874828186241517245377244361515472173188485809434936573509157305050064405315165104614672657699878932924075822044111371738716681549475434133438892389627954004584285966222594795463901664722072258870979654171471132976566680709295437236424538604961668780435615903657620700121671626861726952179917488623568660272033794141062260136714072603282221840718251649318017596596873154864269356252531024903234274571735779101360917829022821744836337749000579649433734790179165246961505978588172302335547961475792567732165067266070511570384845369584808656883125325936678561741116888819410163278733173771834995402530752659758930879637825108718427637901121103121193164032764627923091400846745837052156437989441843055653512956233053018113199024153997565408681507473387340725194884273743439190043339162780104247200076536255134411581105551963537628400939961928461181283992636291027589835290463887477366330839577291349029172665141300863176959452548464794157490865624158554151605005271047232025946463605393963805787366765607419050949715377951254902035564427894710441341704684024873802215643953031425866556136548389131342908541266476374707350392210148817435937681075679084065354601277520147003740442221872500281291115125458451315052766485335732903016998549087395439992530505162080395811613027202492831078207616765352457851177760722056900471226110008115823220731041906784425139814050143785684898039425819735463096380824898614938197290463591985931774305975389801084966380546339556946473692598337342042528340944232530344165671513187951462799340742262509775432219261962305531375842356906107031280962858191340494792774232771652623455196940242540281290937868299598096168951372351118125724560110722543908967057987375513632272555487885783087983678451297832606722780388371296373767092007259936370279316196705712581480675931626721174254180086134408465167381040304007214730126579987798032592626366442928387407737378393915539289318752765938515100228230301201251610877258470834211623737601806835728546013642866066986143791970545545969640241223166440347310817488714293229205647723328431523312194746898228836721965464827702347631147180188702282269033184925788643898537008915069385054610660782817076192259258721461219584994418223149311859998383892566026398347899643425503153392881839252474874108865978715825298725667011838709640889133941500839619273121978609796120164981173612369387138531014349585267205948287628254552494724520224486307519316680163377936791543744871952146743914309212567199644175673122180324471070746489901533919988114326206315705192252714008150654018757794538790230555080882142621867027352205390286939373495150175519140367770245221714007117643559406278188831586849639080749629418459334036697024425182227378452558606008194507061260540195455517452269068043135792372863473045447851384205684766247611608546814600426026893363306278574003435337143224656562522378666022660291448588313259999849728408081056399659719616697487891729535212339094057327427878507922936131364577163681656609128596404632598913941324080685317292423266818068676558351128432606283429761151840049788416496053126381322604920960017295522499631122752291290336935306734944046964588217861976243865941117739156389260865945118160171537274192213540594471081132177301907045436299425575859046169221285601331699776969107686250204019372808942397515561896873391202385571408816556665962722501779700626313547077490532962778392076385337011307174330149668693028267645975241005266239581140886903779031356378543432152249918855032759471076083856051226356298517387538009489493703426149926706447330627485987347655922989837464082583549837525224937063141277180108592066611597530196484643001015532469751053183941703984511308871612306368510799685615362887194662752014151258775973129503385257041109168680892442472217392675535681968202081496476808921923586000148312030710022170373044178803050777802643655041076510296302902707705300496734711806118868745124921243633059123470746745459221816982513234320201209315612215482221212110725491871675659475813860633380500196897914566757877774194394691472615737006305480083369597787344300804175956073825739438930780696592313832381361576980320235699143787143437048518589924717355968345338926602386025568766618971111992070789087400054736509722100463992329093451079410132592806711943934165630599574276985221654702866148854974342325054594530600933562241480868723370580968002213208101745705221687598080743601981254572781892824647654197798511509601031195528333279761919365188244449412772008983162941449080518259414072645172222892781413609511748189457866547422252842986602029570082074770830521881425935057977017866194568939798783065199164243037950220544353100448415058860594921625678968286691603423192252190001373467495400648891565326688875846944275309712995990320147670219761850061655527426580800389587020773837592372344649153366236591622155777610109170911765264148886901572620545719247584796264957579336138839977914593178746448585662862798724559967217490873130987540632575838520136027020728314059858569587786662687743708914629382296114704921218421815874948344032775114516048147483675314422726477252313191231660167815255081375464441037474702375577790277758033861499616046228925525764363924611259691570043196259030724432797974031444181097704487725677593385581699026899470984827751192209079172271738830339639306740398861841743449845552054769899704709770690864644376985426584671990760877209133588251490671941510793225374951062165477885059092561560226439487496122972787926769601069335756188718294540365795602611531074191109588920957046431798195794110065585328434743422878455953212121433305262704110337867746099803943155149505151072356388349510747945706327757867543609162314846821994625442029245837427834024782552254025321660328820617746378771312860129001754966757300160836320296462245303202314533810431814820405238756359200873234644139919925156968673342853336146407186930984522902226813476460587990545324787609277975289391593900030105244980473156143205245786307405745978872781256827180278501654270369241358736874454763912262792822479255197830610497577790256584752182368873528505176009405376504160519157947796258849083429552738621881847801721829545903963444489730841766114215467893142955657130886474901593240823528404235093358999513749914829483399432035348083406030111754792976012717994825763045020163820982507676709596592018227005346242117354676852814235764307109646544162040443153094144853116415270590266537108537551047215282086118990317266545260156374951682583349742288551927116520256735094598634474805115949870558822722166311206572785711114540572814936950365997525327243267766198471632771102460000163559868285599274121349083599267888305353647984198432662388026362082386931325911985270787468576635383874323534863076681384834042659989894580158604831512228250080476345383983719003233138007929890931683776932186755108273098185034090180115543894964537019204051245202693962490114856978250730558991928785657992146294727992835907453938542423525055782174013615468445879800979433202147149710716923596807042531023886407576777355956060183988982886428758991761844491781539429735663447914894347625094324223432801046925045046063625341807520044381633232914159343978303605441772091951977745389710458515473265405208625960940618557086054914997255675581428034377251821957558813914850236199208985863756265491117278738074905894262443442960112611666619921500445305116531240169017366093632353562868616988328049283253046505550898881017276226274680078057340896870728779600924740457944633324510657326236540404460715082908594964590761150478737352283504105940962648678365996426170239365180725653973270718883885866736376636587896512148756846323721511181803375387527395534387929561071399074098114580318584739258433497474362924487683960079875323184912246748539706573898478163739420458095650703779454430872986114311977374986893525447332534835896405766233770263244323656773370804944913185855686024611469185395126397370929066040584717438576618014084319106199960109421459999554357008173737505351244319578245068031056104418232873252270723162749039687990198778491990624283977515201000911661063837898512648066449796739713926535971311570350292447553052892909373400991312240134707487664085698634033882334229147721152586171083113714381610971965754942443120412571521746655757669679588549516256749448686141389513033793167229240364538952268756827858361780645723704458889825139690541856837539220563411744191134018148064152791309571706875217094871720514526277632417298425093501351942696562538659684634465992063891018426217717624533791604807455709066123680788201577186338291210859061651366067305797585354150475123247101805376308135290933285987342645688242151137065863556244593748170307173489426791656665338961724653407772374250238009806711325332570658270260177281894407534005372945654516325255036080238848108889065239220585372814513839919486915882688251064721686520273558588972970470366078103623040463171775706697384234260519829144889700696253341431805852012936467159564563698851689561965162557247719600493054953159080070801500551499518951956557455802530663029624953585561267933370193012867879700084363586787187125844671252962375031267473128987826887682385887416920633488649494609856866304642131103491134300234640127848926744165856124127149184640591767950578906384241359283180170765318914644088706909313047476870553375256362520196804859689124754180804953980693467426746370921760178761977373295118960564479265341970331284685904016321461167360203144942136303983314221539327461627184765879188005029873628388507642680854232703877791447482864549185104349065677968608416190693924244548630271310705969291955157443142408767493776621402479469177386738725507376717873193942800834009993139019446673961240194262384930471676696955710118465814277622159282057610445786070024372878631099185626716660638459766659154613985984500693646772494335140691230738687656649786502609319298602480204046584631445029591211393609231597469559859730864051332559662236523647884857927170795193983893401760080716241609376529401993979025885803773230034082714024894864357002716806395082017938672471793830205601165334291275944902857190202977828258633743324088612642115200886046092858900290310780898431041652755443652686204935980289656851500244286433896769645245413545037685128123461715377169300342488847434295925554258443586733488821080198489624724979848259535244993137669537516299382788351698147047261004778683267077227555609700915998100281829183526108158334949472454757922695957827604132003609761454532031815281095749642296426586118008762294451622254152443161742757440136813273040842060894362658293056899252191161456867264692284525314465252714344916242990609020962019863629200446759207179292710831448719890188878162967496993683701151334032741941639561686934265943357635427297555411581687747182908011780702075941933857069892525668142123452146494569417099455159935365195715154771618853231727309537298064536236047434617564744603768489432573527580624206460158329999186495406121551831098746382643722488374104954104379075783736731671755687262511725054709352699517775729439988217083154951633523638644991186659345711701360576817209474256546781908478694343207345173794106475192966085121305413629281215293958282385638646741003919449740511788011294980040660589872295599305013542842381914038428168969079499036375018012523780297768330349673285090546377344293640150634651604592462205830487647459255721256003872919457219038200487815802326478556469406456264780227156666491730982855565263359028147264711804806026703723343805563229280767635916996007538223033134873507406151355201160980215482421883667465783375875586466243500631496340502857376881684641837276635599810617784074947433906045714753845502114707629545599123639389043506975916927118297813564584215094030814815309814714353544934441704004664394098290289032604904734103780143603580003871371183605254092610875962377090555381643424772926240566476047525257648817332580376107750005452658794088080958365662393529549891676043240359457989545749385698666538736245718109171569660629331254196014534225732448121772498368682926537966733457540524471321748818708556699893336000246325586486400028026847854959157456620374873317030241426437736095309946184898811937461477334470912667404042940070761150417052688013814201311658820650606671527402120229726607987335879056485179174572751067260947469059300000225718230245795881775894442894126467522780168418877909731737269957992989460789324509200956706327758844422936481045115995553117411028165736338382694012530834844945071910057150652201407208456370845430091928197234502849469069100117769581019806067669038995058163860064050552806208233100227134173436948582340658058990913380087002264583738931663852430316248423368934906266169278765778139886621796225708331141169058281333285017842863787430538412552232763421744425730959750868582267102875704624582128866950481945668250304799598871358805421385982772318424156058990024764772767581255814098840364451597675871319577352270439306953257010589674426905856943666307000247367714316799481397894232147124101708424935960185445010849176226111267001152320213991272712641045614230531945454626862830327266152268970665467323778409242517548162015811668548553804683845319900973557020787268666905532132283338525588377728315148748760482544858443720492920022633887980728196843411941235641919514705973823949842339514365714790936164269767914720424154018580499559843672542770473631595993919424311788878982356893245402395064319293877042998716529833333647346694587472716875918984608118908029763463936039353163925202444437523560475254183304350013191641208872420836934860057592627918742531110909591896100840937745750634945800133947357106352196998603355822674726769047289605619536519055525058192402832263552399364489014743541068136040517814990369262156726817029695522510569122673074795828161359140988269153296508249481452581326560048564988798949544825983903431834831007094638153507925468603414106014417040618250597230990291023454673774769971976170713995572053232376192090873613320561550826273839447781953643290755084484447938370841239524159178886788350078491510431701656189412726222734859531520867397380045624531448432353781854048858098813861246470276562663634570535892688822470452116542304175879051895102348463544517701969135245550355225742656164689897886496971140053283099192636259259942305761015400669955945594203829497264688010606733145611180786601705172057292428776469682939431180614847289090312383932160922204652024915513356420439532130242451851109924048921702401499414524832920834654168986971756279831026932129499308297978064777704700695548202238592517838874047634230993739089074423299508438201211224556649187773419852640110645600692444076537068748469672731145747639763940867700340958190505563774330786017588205146425692426182371314973267650793452811470914876337383956476877821146407793606778185612691016779424351734680576504885550164400249960878388222264818713876644449793442499797799793654738105218712225663379057601286047996920206765656544591174755159631170586763929717187416033816765122396838919290805954746716655039861532846603446373258283331670527422084998104555951778735086752843771986216483990633103148831072487368242186254059811372769020962984945665196693519088959426762081217889547486754447636989889156780813285818031170204900215268668983867469472584084819374181269415124631291140788473566589712452071250085355952280878008893837769449977899162669281065765760984481555204805625902418608460730009617236555055758764569855666875276986963664693184481335071362693006158782737025586295427237942148748400981285723637075329886636622787764625296421204311095141396467525057981971316480509752818118170014393938856384116737239870889221394124913570593718504572669482632637437415886543738688019796624038592847477457777647959249885516341350006357319388982562520190409491207746211190350874852356160608834981164730962018607994485895040723477843112585855039508723839842923551496178814527921140829964346662370616826433480108799783062691218472481670405016661753282711403790562250672316427616702019994178481036534957375271659549990556831964249993424416900263857998195916899191596524172425675387816075272684379837300795549071426851928153102621339009054223700292937152704389509724702358927873996860431073507293565327008400323992125650282142326475999609661191531027505370194538669454000810573402650035453852537971505599494164165962153517271306938374395614748304560818823788533089365942969396553710384815129490786911983434634985224419443547336356355321429974104192850054828838671036326123912262406367456453856268392286194700610077248385298110651520323191063567791065728848384043091277864769854950141312701931007759398380223902649223321337956766627933393544067261958169042747499417928918857124257980384674376515253133528537636051236475983317407440207634761184072756148568918685879744404184720521917008929835347733495175505568823890080001658410734000266844207237070715816083749355399503694415803716627295690312227344249072903599661284327738759969380532951273360821958729744725768888023894308478559966091943023294347977433286277367230773331086729874306000273022650184895306916770156250960669382917984551564552297735422427052225557522761071020509662624850803115160537525539083647143790119267062903295442985322274307939711522958944098666950563922303580560122040310775011745162411485413876371519532891777577703867672120287345276760034216354661602622542455824126277142618485111193094330183972940100841322022347592521281944126853534245506398511023142773063839846724955730016272346594584265261800864367168851578470479490623801591393478206462103878508195948129415647866671643258129240938734805018866714622094961332192979304925429473936309910266797810982715099281831196960319850460259992028583706635047164129908236666980859716900193118412716607578143528884650782641172261607333229273317418294559819594445074109285634820837182046801273555903649080191890793750174218549753160209236302759385368732629898161792706986230812257160811961428705614880604214467584613457526330411309869031566374857999994183107888597827746097467783291970931105720008499389869250712240784527445763079435924864702922453793703399226772602161705451752482279491777189735728556185956008544750638864329099943876178826200737722947153710672836435667309531811154497510799152309170897947966142819482115657184816418886732186931751185022315294095623209261729671877587197882292580892972000421649378103147326414225685339722582229384373451608010126395795244056182277298123140388023163240601410097723058125165461590800704297448714061044668627695219759549885490248263797796758428038036196245693722757264308466160799660852804883990131280726207994000786103234762589484413912890187963462692191528309479106819539617073576318835776985852012395844139837661475242755153256055967835665089494428302969779806477256430510902928355538262906853404057604599081460762299638162942885830212393365426628049516718985874787190022825947365930247004734957207988298848494890742694308111185888352632202137932276737520108422520412457193523474315427326986996874736297113381716439065605792839655421648753742976896228387039326622515934093083282173786861209655505175180729348370114263165034086130100391134402395867189407756014658916220927596234047790220288742312435618214468304987090079125362584261805572443548102435962981574321646912994310499517007350609670784211231982651272205983709210691698817953859063464215637056339696681377119779073192404156456252840395196682663510903145919542853015780995766389204288096419958801347066373313077862138692071191850769194698499977028014916531654775478549482546480329552598432136106955220247141139460055154376333658721370626203659541083213215939927942330623994547065318160505624280942312065440695483945477541580692517605509715471457773654548241758437922426374060444234340161648472328975674238433576475739381653674674199899733825944235246887564292643597052701654237752766057211907089676571394924934693008910142260272024691674871113469805072403350843245515972601559344137678113614146564593962122731015963970318405999423025819233789558125872146319917354596023078040869280538619817191199794905918749354210936208385023741600894296373558462292395556671326990191455279460166096236957695147403635854135192111660457144094161733836267081097547923224378920876339453743598920849958763295677891820338982397710742792959148278428052318313391080218992837834411002875572943619245547837774362207249537190634140701425082909686759536763075611801399927442139415289486166893654876322277599200943141770534618781339442030881049119103619273949772152680449193312454517047689751780230561650954915530619430416117397717888065985832167863370543501825046081419895745636677347204651604300219904232752343877096931432374720269591388118163460671101399750755398361579261095617868507283568684579291730814360276669088432229862943762119471176525482093722315529859936165403301917942479699232030157111736290564956053450507847573276604571520655748782792804334582747046414808554391794972716511761234381707222609055277983546665804774682949653357275834365271448744378079407330758681395175804173367358304763410514792975686386413637670037817626801192272569244950761557932148047666040452349591102930038063428094444610220305487351873602075765127755723435995832279022380476518928687016171595270382527884094387141517337062604628680049917997271631162264902265024924931611234516596306282116362089572737021936706541825900568934248069380196918934105546853676840448346893913099787118182223545729419191339167592204243731778935030051593133871556830834580858081787755948427031184520706828720248569207754040620819720561144077302425337316714222453180107561709928526664981417511172283167210148967540362929543131635373781312961551889727731045199816216417776991257255182586618629882278062252962679203973318242336013685280168458717028590006465524348077991484875689191715120816224708835869810789305110884322869759581247469401308330608944249619915292891008249665526003563259794003059683924512231198247333421948039324102463452613168673758799108427392812454539269217819145094741612806787914742054421571363016895573397405092928006563618804261146007309517221010751832786968133188949686607072017446699511366208162539785459977024486580774496185347553768323820882593818682886968197739053256883825153952970355613262707421493629103550350471074257623745469184504956276355076508291758831770238119046216958859437757643787787908853486522751298950959831803242717311174695064949857581835799508627227592895544657086889575085218194688586215196176269727270359141097826738929444621260981465577850601681640493916493036938570183130640236105864405106556310008362625204241785631438114298169894481811672368932610594144233788552316360239061408921714020276891353742930733054655601008020491724247815170439270890563667056202140742331530229241842548482911301437253847444842109967520791488591243352385806477202067355745547366141886170483391416099061690103556782696238730221504934352628615693218084437697086391177578272859985164561051812030746231353629973135865170256528566317057138761656409783054029841177338136640378402384478712093241462837435783659153090700274868543238487399876954991636756919121545976744215643940901691271084069167819106259063001920004962585860894586367254446351776481056988927969671636277662893735171996219818237887882054925652095845094262688016758235465711576601488848436167964309305800600223209909274849345907847020965660043344854457021257124731441499665756514808646414491259399164168651806917159351829780620767848236223641786065850187219027886809496588571601508277894261762206163725680738233103973461256802455158388889525252237412369371556513813459275516125535478092407089183177477012927698069881362284363633944873202401132380812486770432112093353547167422068652015772387823299783754212807005722204598162150204050225345847951209185794937504747370713540501247580669192630712922871768389157961543406002140152216283838314928789599792604180385658617559533706821928177138590906274718211763093271353279329979902307014526583372540099034938343575422124910330914058471791207137002793488445115503294839220833812366269111973282593930838476225420843611474071328131152413489131844116102008953904173738593069525620802232232712973432223245786627836847856136640798606783254890333754004189404961462191930324083351911196182125526508323810365477033497561913811360015010907779573362400064336425562808636340573315228941711309554769452711772823657696829685128499672423206870832981153492377476038988894708177964868104570886611581751892696679175739017817998596391752967824817975939616514404557654401575763282794194643507875990600474779299982668723680333000577693438211475372458703971484548927334539793330435574416963540808327555278308844785941649943396821135062305109039605145717174287631722824149003563010712700094676206882305262857755299105021664330816277990367464159353675174033842482762088483230858014108071218585787249772459033206445423871223489864011379634913160688530304349745623843636523807240588532722760905335638817974174115320799642403771120613271155183994019149574048388039559663787973352365043339125478442904069277887254272214749775997197641517123286343909803247432484083326375027240381608939730033586820141703806973446794872707810979205245821487490841536297175661348172241873833188968725015721166932141412483283928185935257807521967240467600057164946494964332053546754608276302286528301342385864339994973723513940248649099670979087923088711381299562851325694182787817508287924739744488964498004792926205099484628275511689179431927021720347149461245554971203822719053497910033550904468718934552410535348549815549915506595827308382372128545387498421416840204536063717281069628545699300519726312618194026201415941905749406053274412841001983271137628310477242444162161118680983085676686044929560693827335575130666742037500547283954425537608871080984773600142713485541741058052085017970020467747811773575515423353378184613664883963003696813823840281520580513069446650902076939563754572494410615187087573588026114611444799951534887595788259372354972669817691475679845340194688954194981636747524014587654531933507527496289618064059938989503123421618249098685769748036525171099634170517858892165987059667305467653328605168607168789844636909608890986055786257861146689032997376014229465040840525745314771211799607374458017085734692183067037363947119022743009817825623156952401575251364338592069758893405566173963894795974354578568462053387729949570043263348942138088098713483290450535870716775430951138363572872855171632962130936894479296287173591245659634436060595625518848868522948000442728803892072130138398909354931983133106959696944836750595567296422840810682892178736020561316408984294184752773451934086774587072435949340393580501822356869971967066814304807626287783491248628166136966774030681300396523824768788119091927846886595953516157653053824376810496602071550964427763006213858807778675915468417247401036081381759143249135816135512594193689566982317358525092829936377108062313925415714908826448510261100999724726137491768325837947713797998412963896956203499196433746405485333792510318287739562342567383321142562395669892056039733798431637745328230235873550635332791062426510016554980762813892458122040870864357058711188465322995928656418123783108021786222154300869997249443899347422764841144816559423921486636298098073356401979322821845849968209263903373313610115838455353988110140782824542929689661552465899771496019676718403979408679899726949285129663310930135372713690230375776158323866789079736382371148038209672631081792235497129319733164435758964267734053811590918315575266377445769857755093813004774799359725200716652706613277982703087164102991459949338799792267616256012387522975660019423024331468926519311381794538609814047407602655170440075945994274671535275339390758449936207863642052566614178149303684210642114260822518070625209808008271833206663691668920811548513252742934943199574431519489021116145400677863829425779833721743831582477343810220599402724646261080949353613013784479451621556707637033288715503828095817378902914086217620616363398891251256952744883230878504512898818664881589266478650510470171779505722374250854993515471562752108717426936164329982848947656586786999614910673477753300976255677224650260760550019359438557087722448212808872290475290474622304798255922898778149856431344612349859729009248505583525583884255366741912724987421719327906942181414480961588651258412797856408759496471327097397657444578065521523501886540575416240020753335195654186878235163371125633714883224916437863790060285698084913151110866059455555621689581458306809223801848180054744879498659809053175385671358100810554562362289952000650748740826249468529905607202907450754275142110035483471814123292178102011537612164518062365016660712785517596852681735409086219825332168312715172259994092314598526075454453474780973570979195489737421062619209672588608309934507901512219238771690106978632980839237316581914363093194740222795328261993831346112840597656002396746983509838403140642576346845934502385458503503076860957994039458528051303799699365981250374180226770208566124280631494390152712545528014077282815851681657254793376906735298326650860151427546789431521012404711470260937918158184638609460587630610273528080284391077609784242554184905024613590127982210141070216427528519226536794870478624950112412594405962020457456460511687737128023215598751432226643276949570980284049142073982954785283714987489330555086530159191885312967613578644273089623206274184719742033700056508046264335866386630029177022362815216174115037061276143114989903416515387434886570813905002412795031960460366095541853284422777487880240777427405912350169789174376064819580097006839036645644310149277948227749465565062386607480776092510636349124709570173853281413718079103737770499771026135438228331903084624057806807535554469301549130041408531330306844385814370425627052871359527802918733493833136504675399762588255525477095724328698145567910023663529060107149543204777942251444974170169817029272335626987256430720119271003552972569877087397499787976598710634656291498288591959827433623028702259855937981862571650917556884589142747275581487830292231847785401060810943069598900465223030797901279908133805282166499939870153702995166097229830868600785571817395579586167445694117866146343676462199542988772843445690807826900950501385879394239576579320058823924945269728380331621253932736934571218251057443728058834781496087640465091363066060440687369431886107530369107474615731546653795004422725982959066823574484362929958016512870349980164901331603732409621654279076050278189247704612982435497151346923659802494978784971874315193326805779667454164236783444064738100363406780124028938630049537843685229149444564153330288543158050575729184348091966147379741056021195547845357173602274207591679512710090980396865024699267597374871435934087615092664409608427761025449645516169199808178654483797212155949137927064171138710361583033549178919073578679626609639630738024199551305115621821757461474894733861768677836991129734887133648778107680194180787622523119355960556092095790352716821142848430594459044030202296539511548994742389649412304482533915763398766755635735787636479623555994985405230370609552333517937829435221801434016116734976161350145258824008204074499556255925625776320983089613645398574944278948932797461068320138149661320462813400843542817242546935894981274236495772017634618812983043779775840073917527751503732239323267721438671646383115307828914733107961764015056288810629671312375657603392511237994655775740675975042926524800180776738760174709086138909303470865995619810339689724274642662117255954880946203713887154669702572011770998078617971286111657833817427246805310325061059286129242900291085038046685302162086790279034369670290166377066923550582043740981814009008409176596513681432969101908529789646928094891929960284524008115999530657097166207627384900567382063452329657076978863339581945500791300075429477775143834903691532569001054323762943476277250769996878308856197361986182560883261489004070552329176590546341901075387188303052716931920159240398167555074825212919054325774364317121142689333398306808788925197608980861217845957098659542797396279520820682276537925708385628535115849629031198548156564463196096130335962551865991062901392522992176500827279231899103609674185557429427758257239344675796525212724882425974902447101269644302470617390731597967714450914186511843787606569843413907676637726718397308924860576152633732028426120565485545269919413611558096867019438473899270302012147614292374872713876068236127723881866153101087482289174564654022527054993205489393498629757714908004964492012557987160159881356246074421131219984104267704180224130605556021744658886934005897207951288446914005898386082334030819655800492836954545615695305144224688040485179871646337482018003677322051425738652634875596831238979182871384899031644070736508432671217092652100356447069025564994223329288937408675955524265104351201533877967122093781113289622554086311484470845014227428335235989132497431201715292420239923076523771135013159940777592365260989563677490055897918144870051413981784772625775806715946738656338077023357032584198066236415090847891747414203539481955592259021600597476755855841872618563147557079616274928971542386813856250979172997849247981069758645845673609328788501614153128613560708178236695561403426759790076678480803085473799296537498639465934471799218448163829630649165114742510464375607014293086677210185588615148168558765133471682867031030363583501627877388273232453983463284292138260089910468562738835738801376913518234983761348948650641802855885026069015491954861927201179346188601823068090788956272000225651476615365378600230751964707823999890996281387787303764780787307203512797836113346357297717575127506381518632153230392405206927054703060797132117119469892498458537855127094103821305260295727659598603134218763504972039353694477021314949853748194347868334111498027022856135115985184595049260058931245828782077705404621528112940845850231913106652103704049610076693439055215429979888693626667148084767599385841186260246372205167839338385995835259673812078900750959169602120118980415113903917146366319314487981852277395692611241520680826365038324594022608435673160025319651986535082263910557560119294731377669726849141738557633558081666712614757924921127995299784570334408138614870532386369036583438734920463147954064613140503529343722113748726131681806873516408406886312851323042283115343277449284718360355377694847729780336526279578211028856232191979981674683139394380253448199390404529379288216045254467762124919117643588687590505758346560788075102579816719234491535333365865722211335578321771755392867566292744050513551878220235941527051638241014164340523392487005593348065482449935073425061309507431955609316960264992575041200192851003588140073569295856450864498061569475080688025581117424413369439793689071762489537151770992026621016289510660792986398444021780116938789162821862572794872474572739737835262900200600817839845373738191770535872926358755240931102654515816654460311359781161800836569844614402031858396918140160310118484570462131084722107759662127790847109987055974168095193013699010595866397475557644069419486461605940042260970050738984630877104382193125520772626273484062844030914716438250800368303485258177151050493607488502995921364930912909146280713080058498978210542495338681803987579388408312931590393378276707374898117763096289795526353187952159136105073739603491046016059885657258346123690922229368051492982986837363544805094082284858685204724798897799483913450201357007310947860133946633429324795674679907401642754922496796507605553510835637616220929163870453010107655736599651742639594109776188213678220361593525085120894704388747862745602732278819228787591580497505622764671270148793182151027775155228471042366868484682659227230664188100658326696885561009267879445316742614389995664353586450817618175939777348950015308972803604017852866219670447668634493991978128158845628775647598651184941858588342625129535555722517290030960282649396503200332054351134206757740247085456021130967602261082952106178922410506155579872449174972482493570195040699775739797540885386564689778296163736764666120661734137346926255101820268245040767650674212673432367208148962840874289885160088189236959412274428365728045377550717906524141805859646510990272842575903119327866350853639624317986620519714274783008623953710211456039668487521473833529940357019509979531737171434817911109325516178601897846203454599908335040191326092040048309237774876826677220737068526289208834625874378430027431931947529424531719438216774036785940171359551656661626112105891497402116437593119911728703448158088424103546455188281125361169607244330973169235711219688245817750767534660358554889989026068690279935590762549314234783574877833384770496266958729937218417548095016573708491693620610427185140116154173575958274539634065979462318849184631407248441876895816537303188074712218290306230207924236470698235987316277527078971118458541879250798597332766793539939612689477320515789445849467903753019003237938364139947861145780097978583517081273048812226487780177377028443608911209125585475094152538494353517029379963518143115727989644181730841643864483930214040597573516432163315343171110869879265022641598847987887821490716935969001084343913796576628773675620149052829210386369690226653970481816247789752211692813819888776869585105652977327198850271628905736248814698816347970131881388175499168236672359372605071487192944923127818877085739286633853206578529365598972405270046782075369654345451901629622938288058887855104976090480488156678909878009981380505682205455336032473316322713679822321914116506662271163572352329931248723223071112666815269390111444616119838593572556069231854698854573591991852711184244668119349038611939426565637566437249171298482638985021843930011570275943303865833125671094584566274319023629820170387950762685659664922132697745092192854744309207711659650811237646532125095717268327841496867159834022376416994971983521925755532649845100118973299541889603551075711767749932565800125830005626379035998720116897646470139024311843369751363442879144987131583918047950312097640184151507326441751679730239617921665068224393922983673524328339598949528072653580816493375105258516249896194141701257362155108775989995964290055938452217878806765232927201009699834541821248865557166043338024442706929909388922836876603706459686875143666724192544643315804175625811428350586633154629236060521081960942035575419773154080996529842161017608163224538868292333158305943110365802113470958166529214326291953101607940075231124892768903841541652697005717497111045793031519827791498776374712928751474584420806456795156482653092767603611829188956051190790856560052483945420012077471237357871292934275149260805939434016478272484392790304820587349197041074184704712273484646039892935959706951961453089013242522265776800295762692207833446109993107075782229992763796407414286804632040577360598293093022652913539658428944483303116672369954540674405581673665959978740575764192880692182342062741530035760998211436886228562389300572504194568111584847924572712376384808009879694206620696487720917930060011442946890575011042466055495683493710643043604512035904766025202854220531784170522361815446942792167098330500180333298596792253704566044724195688960214956414697771350008703938393112132559348998742053388844301292539519011241903231214167337938560661711217269970848066390770986683140382269922483630710121192448401275440338346887380634894701614019916518022111652835337911348152463544548684342970598453690157462913510905818206623447582833043119674366660273601771963044439195765084287433787504470303194749893018239888020367672091996709979204394154257792784060735808536324842486049814255442986195366209378358912517944255321214121722300183105960434616537096690449177466964365880744277663052476123183919444195909202840852831783834223799607421846598554070074502820570304352055990499906866830836803271386815763683552295020996120988601424381693875270475891097989140255423062554173349084396425871062756798166354824423768833261536456063161458128679772726490636818083999634238942839076496894355075341026753059954149289039963902484954390735497012331511756567757675802574941147773201937832948539375240921582076989923997865596109912852339250409149003572428769186107972803215804416653239387786682866224258072721535443463068653772244622618669126961182836354172610919995177454788963293132048886238848148856816832478636694772542241745262547812324996707601746705747913316302274775979336107487730034647917218246344224885695529516957772659123185084200053832976988178455339406284080488047372645799751903751559879467456630393214699493331444121763214929121952301966756004998235430137035171727319671263192002947191043611747790659223797154339578842667498475184003366438884850074072017563558147371773250160529842111110072124573589769007963833929802420562724943840540453314509563369401290947915029849269120259305580977256994695237587279826583734593509492886063356365728945438530116839356961780443709809159813378885722344298590927727431021918975010074577268735361135519950587105591756176563751421561671125987458454953384302344247116756414653456935876461415483816256785387646993559617047336769469873063191060190141952805052253786325368702840457723786291957978901858176099949138298688201464187864704997089259310648883647728951713109071930072518285178200434752299597501270437294998971421343901866723850306252147405446280757017351351750609673431078539844476544108508291635877401252609837277773552186804608478815961321455917009224077102260292578344544449334029358044225908991987506669822500083367758033386634523785411885952824771467201145523249734131742924298717525812846041590566982418516985650186482838511198660515854629569987428661626767350561805445260049218833981511434214024659342944466754993616555698941412454106219050492255192317326312895972198803078063068761085002264867257729697653096834952094538073004901798471083234090946832539548625329699528560972628824471294967675911939275557254423361103072609935615563572130008399379791140433765196295375461587036214194877839415937113886801446483694974102012453316432901033276225649881038205525202452834327499466773113683041563524220007452749394546711132713032009874123016698186485538882603402176747408134642512282624206550501394230551443200672215075926031446483016858955562176002167451293480853618645554292637663514808822765758002559172638696855984815817062476700029258615058273121120753663125740501969747690149057173954072260029614444042225899316648267864357197439510125457449323921092276361831444467364932671248855180317373309301870620393462933603996573177789612046923179572590732332468491769106440486845754329017780906645435086656276743533318706991701999877258972615351599853492999192123645003340144061975899264690154465106411521819260893436991465235581678317573034921949301107797660807934654017103492702198332797880876043850736433537802127509030885608132424974979586398658451125011335057912035382805575278225921082114462915185104265790688162285453437395974690927602268449784617179359128180112801784259037895349385319486074724103246622116637031084073581652954510830820971645885714728080763571268983777917480107414128770976057949629845455846392568032700156159145577356776978991325742008958673620542099061962456451170653131970911501164332734910314545342522183284700391840766071693401237951263386611595854798907155861640924787869223015024405688540651792061678094636191198632882480374740885160640175315691484624732471984775770834745510977547686122305967877500721123774104962791285044935051173810318020149646986561693123318563054850399692136597269441410310912705303651750410709255139752363856634138748884218214728075953757454343858545378699868591703536745919692029159528853601111771566893726826069975297209174393556988433969878117273858596254348428396801432257452076617199389376629424129306963392747010312820011859623690951717153497560804011259670950439019941060314507414921229346180312742696600377064414379765318971683743418078500041126038282584487081624894026994695890472257672934228459880014267183161491753407900264786111306456423202296176038306266815983866701870258852047365145174302390734497988777621562862871330326132942814457536478507495127654092683631258686809105233891034435219604348516906815352655129691154542866045033916475792093885769297621729342592212506685398973617045622281695985147499014891590552906977965479123538436334734834349041077902750693212296485672881177711691727528566752501635723163678529399552828235568032865641331711153853856685733217074775023703737656604669590787496333291522057246568161823863245208530654080387885602527943856470325761680907784199677841292660091522029864494060374773311235711592963305907164911047342096801757040685049557350010508026163152087922681893792184081723193267433591517715285994854824569018966034996468989285872075706423853720903365244858809905693359354863903458746937297715212302756169227645977949306308547114617593910499315218466410002546612677376150159607364083144465945302923510004074580995846411347857718508285482051305038145294886426444782655482319798149019752957066352570850831456267726007266845306174497235811190809449120681641255602142806895395146686722392577854773990138854032311628155884966878352411481342592526509753214004730180241786916004340433919093096838670229738652539348186669433862254178202983600624641068950180922738177920342821145999289061833325860622296603655774584444191083781869877275309934723624307975314251838681984769985056865282576219837406724746175611038037527334135271040934083654291169213714823753968161203706320986696666885022686886464077108108504446802161155561354223367683984081176739558234424997399214318567988969491605867271467420640509163025518036772507482781514269537373771716805672641516050678521339310258511024780039169745723977824072727550655548235036752205061461286052917312034779830734801975702963314451060828034053213512156222675976638898403012759336282718451952440228868247946844149180275944527987781520409474362611780269182037395688319053708466223117338218227572652788509806618274589323854984430923905994360363725125931012772547607428072666656114377849921778844652509183175711744540625402053400525033118060175991046943152295760356364542913488883452479333818801005442012793674375647573789308144731139473611937303886335586629741345210536329424682500126819569019689585541457592795971968827472437011540440913982911748758029978982673066591855981018889752176168311186738850591263356202260440496287996207288957665835335783577190600213337706765311160644935896997194970971669238880879721438163164444737084697902813349959641659461283631951807135485953526519317814817690626952424703051122538939084856609830206497343300576747631464333314191520167565782287810056211626775747968441776606428166382757988316709977420316700730209167952168500182363836088067305065216930621308325142265069919457789718856201658058759443480539648677683542166198250631648605446043843118658550538133739479799098184239832199968676759620109137684808625840703044306902493770390228375317442743640361270478326396591451283113140967526234700127323735032210994500030312088255135779879369202856590322658291777663263511986539181997381057556973965043036459675590719501051356140780343143799223606044951546985686905926529791537903323403990291310834316053184293954112066953069737947283508127719183057912487234634351994709265692713822777658494623949640624930052047458121801471742502522872017772967774786493579141514746567233380067490774095257845332688539131924960481604947776736632473291981489139922550598207161943796043153490025362241916011636300330114896009757934688381690222363604027871204504835442331548838699093844886340655369628212869500039593473653600668226710954126000770724174494521123869774179560302896438455485233065500632896437162365540955742779125170158504419676391334224267042153830928421749349170602095505052101655563218364300930463106738892358118740085791156728459087514081699289655389240041488384125087292245919100254470884771298957837745718386567692068159095610261373738607428522223151871931297068513085228946667766048643637145838767174508667592932609635236395994915169162819568056655192199764898243785725395041106122341970498694659761504569308341466550132604859924635280115406972991572653476858829965320084141539427157228203008473562390021696012599177617162673271577106432608438509483021032601603792762049539155830326841933997125744756571421712472632192203725967132788283217673775971278493240101376239627627660627176373868211417149254990115186694925412000166344945542450015873174060560143358711531467335428022010468939253783541399556763620431966266942352368388437994473671570764185448206210025555715409928252130788765178735139270508014994809146142025017520379223983324300298518473577795963585536798850151042200815568430183369814768086011882358529350698498691411882254966760188731378136776324850431804260990400415160717599102028447745932557274406585022480132874499351171672999588718050344092131477534540026460605416778136231068147482351867271549714679576761506805763478494634263549313644311831258908370721105482026246054707538847104676929979562601357444506781792610038552744606866083475008693659017217879436865050065872950497133170095119051656095814095811575935491384428916668090341284407262110812420787990857813441812064617550986087188416931728570984560353825490355698578039213270206915374300761441896137066898692022929696103936148406716707841830938619013015520655368315913765877143374858578323816462426496715796986609016685194743267392252107113034315690575592101077956323375389311378798245708979864600154470306924720302775792378561573171781641993079200879447241819166153642483248710717103341128883602802016399480206902223155354109471947487512296587525242288030939868551623982168983005995380424708221646487904145417122438104929498597634514283993917496145190830501047040819294043863953661719327622423848619132910650533060841207966112632912938232487177693873296717520123553893537170860460908189054542603135303374266776814518397223504003579936199323639573296408015046558789755406770585905600647154934952339000536038309533986625822905652490998593721422815421434742284439612673848249299044498470099661636398859638459508579008666822074604947375733070313741957100477957332461788521898472275624284059859599065027992824372271064390617821565594880243904426989702287980313283856942022412178962845701248540737212984383586492526802886757228449035748830488566719455439183093232581444234487364603870003077294852446838894821383706980626303802570376508940283551997232854860977824640333439551765035102803451486650351279777555251903176164638667146043831664216818965231885727744830727209818172722742982185377851557278094631548598598101873770832048410591109781755957702428235993722262396380094237688440791805073203111714521065327731954743219531699077742095849914929867638146803995972054652179292955968957773981505225008270156017015696341099414187968155567395942522937216829069525405400111863405999870934170047299310558987920446964756641418979245857533263968300203397268613382955627432173545351145781544619842871758056387827092457314194442059144286050892041456886104805914621756921907418103851682877521661219996620110152181308825065775341715245427706315117844008727300571290694951641815423241628901525993789870437595780480462932344679962255756434048304081730339189564785701502540175926148623635263103820502483958953083962297041502504439000085782647694596792843242359640656756915407044039589181341438555961740021301960406439241390922137305031046377185091236108150090251455997121375191176284587143626257381668731793684370460608252591605107732196078695012896383132318828336295700591265733842500274142096284661082639626401190422893758167191349477945922188417994862727148730094443959486428415623901933209066520266443654504050608983086830156087974995355238465323873086805465330191524927287162961683525288533739217566387296299515242411030686336072627269699282650785285819589484359950790174482308864708514531800275733055275028191459624546126454950032047784740650035892551162787522506737083793742852363059466262574884365699736073575843131176485469204105995135289973830752468368963569108591439318753933025734166722066479589081466176186381086472257313800890470145004071034531634364230788941792619236303417457993793367655982053372222997233590773452900324786477431043774410497687764453466370118264535447512311520916082151176333879053358344949709011440608869270839491161632678781069976962260602216152300742561685576548883394635179953309331726368134196520251976673308475941763022157555312216705367794730513512735891701690334829652576982516969990636030910842597567766871815814213324914503134019351766772112815115626544389818916361830140415772702484253223843044411308500816823051224334900858050843994274039797225156475518106542403522389429319538506070883765145883619850656520621912255093750370306335763867267889726032083790022300999768228219126307638919742669623181465419917360140198759922556822834291431996307213226382744381001186177911777135099164082737407428109096382116386968316904204596992812563458221402495595076217708195835339408511127066703718809414796226370761980118433665687571802616412598295004148025761549548010013316043669236419788369319006858317939274775785092259469091914343831229187592449155363865137541306620716755407291902904533354641522840337603912147083092427610609133134135489189336683935875493241986637000284541028111841569969616866991133658935036858709578636617671091212900225887701728884953921641334336672006973986906236963947099647488094129545819835918661564304589517589668644766671539348280705004473514447468571878487383569956324757349121951848206044279017406058135582756116693086408313301527520484708252349753198434441135280463616436833087663694853432657552485424987489385930630797162534357450963563842338553720203112079033425916892160336043606643016735179522633789364943332840432292366530326835094351258355561349222216165791653226409872535522468189961392152612348889461163869038120222148271137421479221801498034654684158542762802333497887256021938892813192343503882793749100756493290436216336306339402638905069193714946379683433831256797679397003678124307311041306362365134400666845741689275028733248202956841403478817569710600559608919180212640620565481256830106665066953695245632176453615933457630936831680797496054859281192217739131598163757242294584960216620729312483560928318328609334697628089055145369872302088977514469791224917083336615178629177771848619744733509864433471298096721530613815809310298504451591887364226596844496662294560446855245763285515691023061916971840355359737952827252798596037388360343979931154607702250573527087751942192899220939811134603143681008060064727798227016536493920715941892551732340189534063598043227259585657688945539317512877756357288223821496114916400730936077085771729107587242273996545767158483258547847141170343781876715777176783675653957029477621892343770441184530052056975983929685556959731256562653661099875062377136276135740572918156538334642475991780624722077123136484788179278508129075099519247055452931781726763683288137321027981987423864809030101065158829066267969332923994856461621340954414527476256411581434345484379415810560726093684913625538759245110540639488092879436325615191014174651841564481679490070694732413442715666987350609650333913376469139129596097680537983483359742228912175597694629176559125623853978963936486914900593964710351544954929989566264671034086206932034534213591804132821800478673956127346334302499563672377989550171439167290881722551541555139351085857070198474897240983631337027237246529649708651250977226982208259344916629625267377827759973741630382490412722889875689527620590162806607488253810224585585275258861484604185789468146206146778603536752286715636435225826735494808268974104121171747724318505037079643652776757147784393192392727914250556418471868703507082529690975623595060568939049294862685161498365589773975625113449742337154913922828808984020719406617636040839924598893319409765063045415714306876592267479270711683370926917423968675867995655864044308682771179619152477425582043074222384650013706660927623818058771629802999745370432272407873629598011110466508677498198448602019723088474430510500498803243124319361075012804784426343264812893402615815178187209558225181822191573971804301019968889980838678205617115760845766962034613687405988199046354980717641706125093885016077386739673646507098859122084442231531200705073289841375868765674026388777365647921908050123512814677528804243788952424241448233626335473531569678305384425048367245706689706710915590981688274317511074670931517571238392407020592541468044107308786230622991405377003221903400286539747204362624751512960134454428746257775434879754598043966585445463215962286426749490895656279028200269899547958903093363419038589881756797444521281239468950314230233824046102835956708494205098138878819532512068142150728066981924816420275289573015481054406574877110081256415551448264069735035556995097086807312596286582023305150062058932107019178853031555266663324459474593129997121075823247493811853342276783149361261181567655950294169402810342229747156608128294268528657232582039317652408217484497252218227218309343516075022760909553279361679501374525105630949033046839528030037629351070669503327035489192249411536111699847472142649413887439768821658571130817630121051459871746067405612311290171020859531821774747242141786403047921011203758232431145292680770894134263209205168692965724697022892125580850113429852099519844504295241058888445293109011093228965489568628892746586960890700967512776879378240166655547186363783665550844680204261899472712575805503905879576831761389301835866518165012270940167236457918647908363711358661652811636207330637553890405172895319294957337812867968183560546681658605332280950917866053980865733461900511603740326772724419355698222037556065107382301959492629658498025303670483116685832692497297401260832949033806733680414362960755002410786902315483230031061627084558020537849979153630696920127446730201498925664931771696316788941192094276701021404247052748577531982182811127136792878680295718388586977705661343003689696293859386189875395893059400837679377270997399052400948725480857953884749003008465603238754912134765524967332913080221623343183122807811956364657011391921732311193774269538930100685315145524407317759040546367993811599206114566894109473555482673595656818662619607817663072378204673568510112450501066158903158061704429668934787854169296555431689190134953001600135971908780194590197707404922009246273674754397147245577584981375492041430334213751947720378914108479874923726281921600555681938465664168369640128373522693148362269726523933710343342611703292568052818810195300005641395632575548858634387036325569054427761870771666562474229973380829677971135780668178531749295927231603259014235211341188863061782080462864351763736352404148401590230590461326157593583797304973736327366639005783598801114228605216114317237426271381666935336128055237795612183683507364191731107352171134328301113004094016354449130430562722217220481103365094340708087436839647260098517906343676362125130016631743656892338160706629065157254016155631715945569368086600658882158175488310953261315721730096172807644880596522647982073076738441144019533229485454277918577657794476439839070287459401402225215010367501271942976741055558235147788686699792050714140747353110181587190178532882375482059492538010248162961815592440931969144791166684669631584483900860955607381229930557527270704257879555152086440324733685045646841935573899282966991650212633918450847036374832317362550049427977857663829529848152911650102200338772330421004638879681402488510372097294862747759085754714649540166257140699652106075690840102664082330365091177501095660489653589571304236501550613722732649687382981299948927256623117374552898803659186170334320987286281865307843717780662082773512062396317345548838958347896824056045933019397191084434013009478828583704042022683839210204740521935967731246179653108328500018422256814605926983413953635925619284970142016931236519405133373007289284748944348453439868730996137158839208592981905708548729805299824801387555884486597853009238920932966151915833053327775368158374432046471166642175913378407495709316993310567328748654469217277057981417939468326450507739125977412338180540455116952821568075689867113301802620402444216324879213496022813831134353580421077775250716578424318740951135107293952500321199445681407377215621411160807042538669977173087351689322337876326942862024215212354001233387429834179518667032397861205553368030471192671327601672221026377336330615582788860833074089362548432307722348991231245716411584030574019208381327926714282111464001690417182065147497822216713578375020083848171085252900405279415365144818551446287991470663795750772474336848021577737456535403885133504489970104763308440048721345535783354498532973645356557343210824899484661137808478807883496784939185482242207594284741720768583533197033239582798750717806975495077884483247732552101170939119576454631046648848882517458559485946648239723349745536440145534243147893870478161914977283832601058308825928832258273610032169457802529396327467212559959749313772593460867254606767975301964968588061020124307182288223694033095130564867993395481795375014318710577498393092983253317913177222396201450551025429303858848636575721459261550049385813390293047082646243676137297225278625038784719381716448398729633231306329590527207454833148386681490835425869865791123626102865182721340164601526840947464126827230259201070092498210616377419037026480369670037944210047879535434675406579280704452913263575249004752957307689240285948967640916210387606283313637424819609705684530229678003420585484880774671632806305623526431876684337438002378853926562803995819395161155148219119032657456371373567984702634618844958504925603219936048980913016461168816799364802047538674241785059519534539240376253502793535133876630831791730185522996156636748462248387538045450983299235159576846259496625157203274446838073215068142983116407853996331004305097988592398454855232602703921055742958040094923606076239223279718536167052583303303097914046528812430317638567425404026322052688357880925292049231059055953989105910532532285164504403715455517903632940214084289868788946625270279427567686238415361552334244707566697387947848264748872268987987756473160403765447266641808160640811119172029409569157246371677532095168387262441650221920300495492061841702831481751676994038113222158766276731277898019486917285665423447941549142162330635181104052288535971002916301186496901871250335093097281415394268284938821366929791353754795821376346289649607876613394019495087902686053969947570061878460471605833891402834847190478555002389233573984040249178227436084949571682023408187301837139732835923127037563590478374106135451463012032134149056831724382001161394030624861195172527060910640854818728408769575949044138078350659214935509863510107670155829967237556350443655235717375852391991120514195995149219592347255601119697743418732660194277003103810483588277117152511155408592940210041963894388954304968728943578676994380550382875322962999985076410437951086278423756949689728319914985002900663510305991548910596284251589658290345463869335747001220168536428007559283236759855811335268203631395835984987234248652633933448858345669570271957737684292608564653250821752882142403993497886492053368166463594592799356951603650218518874077306314292950622624015688475218621584152102745665301061357021309656742804453777019518366223626906645546510561919921862524026552332867306024261668078889569172878235072424643733778804102223606822648106372252819205709666703378400668006838221053635923045349466585535599563066694474589417854559585690328568248147367186499570374070404055046569442948112037184091312626688773787182540779688660203946243403646725354512572149702658795469673868985987398226701163121281384216554800988346728595304054334513392077288062736978811661405690674158927691585675433564208386852032916696817750233505868947241014045518261480653462985328329567661390073976543459223887672363925381668713928503102117282472888385503489617958440125609985128135485207705832789331394853473542565178114802167825653175903815822253668839729566154814247582389025848808172118691247278018401352383513144181844424182689719253435286996037736381940406954877920511156500484339187134696431364962129611107890041047727810384384017109622497383747568281706434825960432144055854946090780253837666032615729556533357743686553775124403171971144721873261350590143122691820481045087593598917828783082206659823974947943723605934123962516284360072060540811597302546112666089079499611041268429722427754862896079054399178432081124860330183827271701697014376559065699282149796409135169188871083399177731502120146415025750413859911683134649515445347480573196812996133766127073963859458599276215019151949305421631732577182126287648046339152884199987034913095073610053384783966712427142538952045805842127290419541375125602588790007320549863373980094245401810201538526842091431026249103356569496432606642112860313129885934877094057280112188993531261922180064595553077100969693710658422787838074203010783654350962517535605624673019428433241913311806566934947370879649584696064227416411055404672278987325596931480773040702940740808651296975649406967684287795751611482454031178506672696665772170919302227357869150175355014887057378540357154971567480914848937032332257066558157102129635207987301044487465220794114750270976597021191117344828346653843462311725890028652482412806182691104013332360866059100469345298608562625747903287485700934569052574268921934128494352691675658551049109462063896060360716452619655638792156810637478863411283725203835942457706045154954917012543079294509320874581995874372155532757573277176304538169881807414240892527010503357615215428488288247382280990630782967151337997813672347264518911739888599240525009713554405015063163878704546306444014854101072072526020810398853107304473522437036742661595860953448212110059832749937306802630690725208333523728665173612049836393461179032719675099738128793386665292028919110281877653307483778614681533776993808929094095943846480970618655579016533482936893204466115996668587374220524732962013789887912242730986074025809658995423280942573175900578310978302656545835585355828893554127007533035811664944538977411345635600207436951741025725576447549346315029384634485099898794735112136181507569361717072713777616447199939496715517800199955241081387348202625555402318163856855033235228133243202296613767649889464792963796822538682737714809137104367795177291511491207224196259439001142003530449357268051788730273006868434454212005831389212730440954556659046747808606045985469213447148366527519749172450056213432565470274882192960543689587856277030879147603163691688121215434877046480151093346490636211126526043446639684778735979599744995481596665753957183199470550929334882417819387317462281540823949222296212853781895826883098901011965545488576091113180798497462431526785319442323556442194749668594678850865097546025647661620729415901219861252075292272672083134645936887277062396735212050019888507659822836155644946477031674501189041688554795225355514574143610694484530334146234798548027746206112035300007119678794977679386290832034896798503999536548511856341630056757834689526436990200006179937285275384953867460348305540747828141166111057874139328531021655185212913821804717523337856680653205182630673405944461889972236938348162956356712570716996922930150391889244381520087849155080349167767769411645612516285960201602279185365299317712957092745494751014125772450628368344325044751891460209051210724527260017500520167516132621301516845552099186711877241343145512076948883020430292994440391051539793541851352165350115503452771984783136119649401538625124001573008093298450771939770885430000892550253324306519390425693502423096247768009870120507519361154517109721749643320956605153828831180898317893673538273302069922433531250664026379759764212341077605799609246523400237299660604946909897022945720508445016864447942650612332391957156038019979963381191757763140908151844476720018816110596201086652594830098374408182295144184586946999125671111502652308250256571495481856220362445556708994460977116749759448707471341475751692880860101421311860909231364834004381957105799966899505133440669705609425939547607204015126510826127583197200495496121831246678099136950512877068186131881749262418207257715283065746176924566388490877567261831571279424402548109135658648347334074004722318166283731288236486715731508706671053623672101959859891615777452761528690971822750113349509709071029983612109514958328806558494843871892184323656849691320278850540794820373899944389769544033668746671297756483117431167867920632018844196875466790754159969787238117792204006368506159239866381366821446811331782475203773408381426032277181806368067505708458784379854229125332135961567892261327809856416910688379607501820658058292909494156147435414236811869735126020161568140474849064358974493151121380779879082676455596628203432150218267362155621080184934269280850273200989449598564195088540253676576482496023244193775809477355837830336397989288553107827084827955359215713640087210405000023588552608666975512065918222919163602778400616885390352116949088037044249176596020214619596710549789467119173579195802490630305518355869697638467320179762963027134345180881128967785813871023846503706625854909437459608549356860246056552786061774317648052190485552763516320443356503981906154573457058415961821588652398624358222326901064837739377326617390277086340989878641733920300797445135394994596032739612842164000399247578428942010849909558539530284579992563664902574241746043996665977056751029989058140740597736696483531915289284057725958607361337272199244926851174721006019114062670725795852414010593493952755807294375